[
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_trailing_whitespace = true\n\n[*.md]\ntrim_trailing_whitespace = false\n\n[*.yml]\nindent_size = 2\n"
  },
  {
    "path": ".gitattributes",
    "content": "* text=auto\n*.css linguist-vendored\n*.scss linguist-vendored\n*.js linguist-vendored\nCHANGELOG.md export-ignore\ncore.autocrlf=true\n"
  },
  {
    "path": ".gitignore",
    "content": ""
  },
  {
    "path": ".styleci.yml",
    "content": "php:\n  preset: laravel\n  disabled:\n    - unused_use\n  finder:\n    not-name:\n      - index.php\n      - server.php\njs:\n  finder:\n    not-name:\n      - webpack.mix.js\ncss: true\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 :)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "![Laravel诗词博客](http://qiniu.qqphp.com/uugai.com_1573111132577.png)\n\n> Laravel诗词博客-匠心编程,热爱生活。\n\n> 感謝各位朋友的支持,很开心和你分享我的代码,希望大家也能多写博客,提高自己能力的同时又能以后回顾所学的知识。饮水思源,你的 **Star** 就是对我最好的支持。\n\n> 本博客会一直维护和更新,已有基础上做调整,最大程度上确保原有用户可以 pull 代码,获取最佳体验。如果你在安装过程中遇到了问题,请提交 `Issue` ,我将会为你提供帮助。\n\n![Laravel诗词博客](http://qiniu.qqphp.com/QQ%E6%88%AA%E5%9B%BE20191018102559.png)\n\n#### 简介\n\n1. 采用 Laravel5.8 版本框架搭建\n2. 前端使用 Bootstrap4 框架，适配移动、PC\n3. 管理后台使用 Laravel-admin1.73 版本\n4. 使用 jQuery 的 Pjax 扩展，实现页面无刷新加载\n5. 各个板块可自定义、扩展性强、注重细节且性能优异\n6. 写作支持 MarkDown 语法编辑器、Simditor 富文本编辑器\n7. 完美支持个人音乐播放、图片管理、视频播放\n8. 支持多人邮箱订阅，发布文章进行队列邮件通知\n9. 提供丰富的 Live2D 看板娘动画效果\n10. 文件上传支持七牛云对象存储和其它对象存储\n11. 世界上最漂亮的博客之一（may be）\n\n#### 服务器要求\n\n - 推荐安装Nginx或Apache（其它web服务器也可）\n - 安装 MySQL（推荐5.6版本以上）\n - Redis（非必须，订阅邮箱发信队列使用）\n - 安装 PHP >= 7.1.3 （推荐版本7.2）\n\n > PHP必要扩展\n\n ```\n[root@centos ~]# php -m\n[PHP Modules]\nbcmath\nCore\nctype\ncurl\ndate\ndom\nfilter\nftp\ngd\ngettext\nhash\niconv\nintl\njson\nlibxml\nmbstring\nmcrypt\nmysqli\nmysqlnd\nopenssl\npcntl\npcre\nPDO\npdo_mysql\npdo_sqlite\nPhar\nposix\nReflection\nsession\nshmop\nSimpleXML\nsoap\nsockets\nSPL\nsqlite3\nstandard\nsysvsem\ntokenizer\nxml\nxmlreader\nxmlrpc\nxmlwriter\nzip\nzlib\n ```\n\n#### 如何搭建此博客？\n\n> 博客开源发布以来，受到了很多人的认同和赞美，同时也收到了很多大家给出的有效建议，在此很感谢大家支持。不过在安装过程中由于大家安装环境不同，部分朋友可能遇到个别小问题难以解决，请提交 `Issue` ，我将会为你提供帮助，**安装步骤务必仔细查阅**，已由作者经过多次实际操作验证，确保可用。\n\n- ##### Laravel 诗词博客开源地址\n\n > GitHub项目地址： `https://github.com/qqphp`\n\n > 码云项目地址：`https://gitee.com/qqphp`\n\n > 如果你喜欢此博客，或者对你有帮助，可以 **Star** 支持，十分感谢。\n\n- ##### 在 `.env` 文件中,配置数据库连接等配置\n\n ```\nAPP_DEBUG        = false\nAPP_URL          = https://qqphp.com(你的域名)\nQUEUE_CONNECTION = database\n ```\n\n- 数据库配置\n\n ```\nDB_CONNECTION = mysql\nDB_HOST       = 127.0.0.1\nDB_PORT       = 3306\nDB_DATABASE   = 数据库名\nDB_USERNAME   = 帐号\nDB_PASSWORD   = 密码\n ```\n\n- ##### 导入初始化演示数据\n\n  - 将 `.../laravel_blog/sql/qqphp.sql` 文件数据，导入 MySQL 数据库。\n\n- ##### 设置文件目录软链接\n\n  - 执行命令： php artisan aetherupload:groups 会自动在配置文件的 groups 下新增分组\n  - Linux系统下赋予 `storage`，`public` 目录读写权限，执行 `chmod -R 777 storage` 和 `chmod -R 777 public` 命令\n  - Linux系统下执行创建软链接 `ln -s /www/wwwroot/项目目录/storage/ /www/wwwroot/项目目录/public/`\n\n- 配置文件上传，可保存本地服务器或者七牛云对象存储平台\n\n上传本地存储需在 `.env` 文件中加入 `UPLOAD_TYPE=admin`\n\n上传到七牛云需在 `.env` 文件中加入 `UPLOAD_TYPE=qiniu`，需在 `config/filesystems.php` 文件中添加以下配置。\n\n```\n'qiniu' => [\n        'driver'  => 'qiniu',\n        'domains' => [\n            'default'   => 'qiniu.qqphp.com', // 你的七牛域名【融合CDN加速域名 *必填】\n            'https'     => '',                // 你的HTTPS域名\n            'custom'    => '',                // 你的自定义域名\n        ],\n        'access_key'=> 'Yne-lN5CK1a0**********duEEylaoUjQAI',     //AccessKey【*必填】\n        'secret_key'=> 'I2AecMg_MHUxEj**********zZo9hSWykRx3NO',  //SecretKey【*必填】\n        'bucket'    => 'leiyong-blog',                            //Bucket名字【实例名称 *必填】\n        'notify_url'=> '',  // 持久化处理回调地址\n        'url'       => '',  // 填写文件访问根url\n        'access'    => '',  // 空间访问控制 public 或 private\n    ],\n```\n\n- ##### 登录博客后台，进行个人站点配置\n\n  博客后台访问网址： `域名/admin`，开始愉快博客写作之旅。\n\n  > 默认后台管理账号: `admin`，密码:  `admin` \n\n#### 鸣谢\n\n `Laravel诗词博客` 本博客致谢开源作者们开发的优秀插件或服务。\n\n - [Laravel](https://laravel.com)\n - [Laravel-admin](https://github.com/z-song/laravel-admin)\n - [Jquery-pjax](https://github.com/defunkt/jquery-pjax)\n - [APlayer](http://aplayer.js.org)\n - [DPlayer ](http://dplayer.js.org)\n - [Toc-helper](https://gitee.com/itlangz/toc-helper)\n - [Simditor](https://simditor.tower.im)\n - [Font Awesome](https://fontawesome.com)\n - [Composer](https://getcomposer.org)\n - [Creative-Tim](https://www.creative-tim.com)\n - [Bootstrap](https://getbootstrap.com)\n\n#### 常见问题\n\n- 1.执行 `composer install` 命令,报错无法下载扩展?\n\n > 首先确保MySQL数据库能正常连接,然后检查 PHP 扩展、再次确认 PHP >= 7.1.3 版本。Linux 可以执行 `php -m` 查看已有扩展。\n\n- 2.无法上传大视频或者歌曲文件？\n\n > 确认上传文件目录 `public` 和 `storage` 有增删权限，且在上述安装步骤中设置了软连接。\n >\n > 修改 PHP 配置文件 `php.ini` 的上传文件参数，在配置文件中找到如下参数修改：\n\n```\nfile_uploads         = on;    # 是否允许通过HTTP上传文件的开关。\nupload_max_filesize = 1024m;  # 允许上传文件大小的最大值。\npost_max_size       = 1024m;  # 指通过表单 POST 给 PHP 的所能接收的最大值。\nmax_execution_time  = 300;    # 每个 PHP 页面运行的最大时间值(秒)。\nmemory_limit        = 256m;   # 每个 PHP 页面所吃掉的最大内存。\n```\n\n- 3.音乐和视频无法播放，HTTP 异步请求报 206 或 416 状态码？\n\n > 安装好后，音乐、视频无法播放，HTTP 异步请求出现 **416 、206** 的状态码。是由于缺失 PHP 必要扩展，检查 PHP 扩展是否包含安装教程中所罗列的必要扩展。\n\n- 4.文章内容无法显示或显示后又自动隐藏？\n\n > 是由于 `Composer install` 时执行过程中出现错误，导致部分扩展未能下载造成,如 Pjax 扩展，可以删除 `Vendor` 目录，检查 PHP 扩展，确认操作环境无误后，重新执行 `Composer install` 下载扩展，删除浏览器缓存，重新查看文章。\n\n- 5.以上步骤配置执行完后,访问域名报 500 的错误？\n\n > 确保入口文件，也就是运行目录指向 `.../public/` 目录下。\n >\n > 检查是否已经配置 Laravel 的伪静态设置,确保请求引导至 `index.php` 前端控制器。\n >\n > 参考 Laravel5.8  中文文档配置 : `https://learnku.com/docs/laravel/5.8/installation/3879`。配置好伪静态，重启web服务器访问即可。\n\n- 6.composer install时出现 `Warning: putenv() has been disabled for security reasons` 的问题？\n\n > 是由于 PHP 可能在安装后会自动禁用一些函数，去除禁用函数即可。\n\n- 7.网站安装好后,访问出现 `Warning: require(/www/wwwroot/blog/code/laravel_blog/vendor/autoload.php): failed to open stream: Operation not permitted in /www/wwwroot/blog/code/laravel_blog/public/index.php on line 24`的问题？\n\n > 是由于站点开启了防跨站攻击（open_basedir）的设置，关闭该设置后重启 PHP 服务即可。\n\n- 8.上传文件出现 `stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory` 报错？\n\n > 是由于 PHP 配置中默认上传文件大小为 2M，修改 php.ini 文件中 `upload_max_filesize = 2M` 的配置，调整到您需到的大小即可。\n- 9.浏览器中网页标签中的icon无法显示，引用者策略: strict-origin-when-cross-origin，状态：Mixed Content？\n\n > Nginx站点配置中添加 `add_header Access-Control-Allow-Origin *;` 和 `add_header Content-Security-Policy upgrade-insecure-requests;`，修改配置后重启Nginx服务。\n\n\n#### 执照\n\nLaravel 诗词博客根据 [MIT许可证（MIT）](https://github.com/qqphp-com)获得许可。\n\n#### 博客修复与调整日志\n\n - *2019年10月01日* 博客第一个版本正式上线与开源\n - *2019年11月07日* 新增七牛云存储文件上传功能与配置\n - *2020年01月03日* 修复文章详情刷新后内容不见BUG,修复视频详情刷新后无法再次播放问题。\n - *2020年09月09日* 修复顶级导航下无子导航时页面报错Bug,简化安装逻辑。\n - *2023年05月10日* 优化安装步骤描述。\n"
  },
  {
    "path": "app/Admin/Actions/Post/GoArticle.php",
    "content": "<?php\n\nnamespace App\\Admin\\Actions\\Post;\n\nuse Encore\\Admin\\Actions\\RowAction;\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass GoArticle extends RowAction\n{\n    public $name = '管理';\n\n    /**\n     * @return string\n     */\n    public function href()\n    {\n        return $this->getRow()->getOriginal('nav_action');\n    }\n\n}"
  },
  {
    "path": "app/Admin/Controllers/AuthController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse Encore\\Admin\\Controllers\\AuthController as BaseAuthController;\n\nclass AuthController extends BaseAuthController\n{\n\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogAboutArticleController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogAboutArticle;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogAboutArticleController extends AdminController\n{\n\n    protected $about_type = [];\n\n    public function __construct()\n    {\n        $this->about_type = DB::table('blog_about')->where('about_type', 1)->pluck('about_title', 'id');\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogAboutArticle';\n\n    public function index(Content $content)\n    {\n        return $content->header('关于管理')->description('单页管理')->body($this->grid($this->about_type));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($about_type)\n    {\n        $grid = new Grid(new BlogAboutArticle);\n        $grid->model()->orderBy('article_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', __('ID'));\n        $grid->column('articles_title', __('单页标题'))->editable();\n        $grid->column('article_show', __('是否显示'))->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('article_sort', __('单页排序'));\n        $grid->column('notice_id', __('所属关于'))->using($about_type->toArray());\n        $grid->column('created_at', __('创建时间'));\n        $grid->filter(function ($filter) use ($about_type) {\n            $filter->equal('notice_id', '所属关于')->select($about_type);\n            $filter->like('articles_title', '单页标题');\n            $filter->equal('article_show', '是否显示')->select([1 => '显示', 2 => '隐藏']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogAboutArticle::findOrFail($id));\n\n        $show->field('id', __('Id'));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogAboutArticle);\n\n        $form->select('notice_id', __('关联列表'))->options($this->about_type)->required()->rules('required');\n        $form->text('articles_title', __('单页标题'))->attribute('autocomplete', 'off')->required()->rules('required|max:20');\n        $form->simditor('articles_content', __('单页内容'));\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('article_show', '是否显示')->states($states)->default(1);\n        $form->number('article_sort', __('单页排序'))->default(100)->rules('integer|between:0,999999');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogAboutCardOneController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogAboutCardOne;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogAboutCardOneController extends AdminController\n{\n\n    protected $about_type = [];\n\n    public function __construct()\n    {\n        $this->about_type = DB::table('blog_about')->where('about_type', 2)->pluck('about_title', 'id');\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogAboutCardOne';\n\n    public function index(Content $content)\n    {\n        return $content->header('关于管理')->description('卡片管理')->body($this->grid($this->about_type));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($about_type)\n    {\n        $grid = new Grid(new BlogAboutCardOne);\n\n        $grid->column('id', __('ID'));\n        $grid->model()->orderBy('card_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('card_title', __('卡片标题'));\n        $grid->column('card_icon', __('卡片icon'));\n        $grid->column('card_show', __('是否显示'))->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('card_sort', __('卡片排序'));\n        $grid->column('notice_id', __('所属关于'))->using($about_type->toArray());\n        $grid->column('created_at', __('添加时间'));\n        $grid->filter(function ($filter) use ($about_type) {\n            $filter->equal('notice_id', '所属关于')->select($about_type);\n            $filter->like('card_title', '卡片标题');\n            $filter->equal('card_show', '是否显示')->select([1 => '显示', 2 => '隐藏']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogAboutCardOne::findOrFail($id));\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogAboutCardOne);\n        $form->select('notice_id', __('关联列表'))->options($this->about_type)->required();\n        $form->text('card_title', __('卡片标题'))->attribute('autocomplete', 'off')->required()->rules('required|max:20');\n        $form->icon('card_icon', __('卡片icon'))->help('更多icon图标访问 <a href=\"https://fontawesome.com\" target=\"_blank\">https://fontawesome.com</a>,填写该icon完整引用,示例[fab fa-php、far fa-futbol]')->required()->rules('required');\n        $form->textarea('card_content', __('卡片描述'))->rules('required');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('card_show', '是否显示')->states($states)->default(1);\n        $form->number('card_sort', __('卡片排序'))->default(100)->rules('integer|between:0,999999');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogAboutCardTwoController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogAboutCardTwo;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogAboutCardTwoController extends AdminController\n{\n    protected $about_type = [];\n\n    public function __construct()\n    {\n        $this->about_type = DB::table('blog_about')->where('about_type', 3)->pluck('about_title', 'id');\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogAboutCardTwo';\n\n    public function index(Content $content)\n    {\n        return $content->header('关于管理')->description('图标管理')->body($this->grid($this->about_type));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($about_type)\n    {\n        $grid = new Grid(new BlogAboutCardTwo);\n\n        $grid->column('id', __('ID'));\n        $grid->model()->orderBy('card_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('card_title', __('卡片标题'));\n        $grid->column('card_icon', __('卡片icon'));\n        $grid->column('card_background', __('卡片背景'))->image();\n        $grid->column('card_show', __('是否显示'))->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('card_sort', __('卡片排序'));\n        $grid->column('notice_id', __('所属关于'))->using($about_type->toArray());\n        $grid->column('created_at', __('添加时间'));\n        $grid->filter(function ($filter) use ($about_type) {\n            $filter->equal('notice_id', '所属关于')->select($about_type);\n            $filter->like('card_title', '卡片标题');\n            $filter->equal('card_show', '是否显示')->select([1 => '显示', 2 => '隐藏']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogAboutCardTwo::findOrFail($id));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogAboutCardTwo);\n\n        $form->select('notice_id', __('关联列表'))->options($this->about_type)->required();\n        $form->text('card_title', __('卡片标题'))->attribute('autocomplete', 'off')->required()->rules('required|max:20');\n        $form->image('card_background', '卡片背景')->uniqueName();\n        $form->icon('card_icon', __('卡片icon'))->help('更多icon图标访问 <a href=\"https://fontawesome.com\" target=\"_blank\">https://fontawesome.com</a>,填写该icon完整引用,示例[fab fa-php、far fa-futbol]')->required()->rules('required');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('card_show', '是否显示')->states($states)->default(1);\n        $form->number('card_sort', __('卡片排序'))->default(100)->rules('integer|between:0,999999');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogAboutController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogAbout;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\n\nclass BlogAboutController extends AdminController\n{\n    protected $options = [\n        1 => '单页',\n        2 => '卡片介绍',\n        3 => '卡片图标',\n    ];\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogAbout';\n\n    public function index(Content $content)\n    {\n        return $content->header('关于管理')->description('关于列表')->body($this->grid());\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogAbout);\n\n        $grid->column('id', __('ID'));\n        $grid->model()->orderBy('about_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('about_title', __('关于标题'))->editable();\n        $grid->column('about_type', __('关于类型'))->using($this->options);\n        $grid->column('about_sort', __('关于排序'));\n        $grid->column('about_show', __('是否显示'))->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('created_at', __('添加时间'));\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogAbout::findOrFail($id));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogAbout);\n\n        $form->text('about_title', __('关于标题'))->attribute('autocomplete', 'off')->required()->rules('required|max:20');\n\n        $form->select('about_type', __('关于类型'))->options($this->options)->required(0)->rules('required');\n        $form->number('about_sort', __('关于排序'))->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('about_show', __('是否显示'))->states($states)->default(1);\n        $form->textarea('about_describe', '关于描述');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogFriendsController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogFriends;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Show;\nuse Encore\\Admin\\Layout\\Content;\n\nclass BlogFriendsController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogFriends';\n\n    public function index(Content $content)\n    {\n        return $content->header('友链管理')->description('链接列表')->body($this->grid());\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogFriends);\n        $grid->model()->orderBy('friends_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('friends_title', '博客名称')->editable();\n        $grid->column('friends_link', '博客链接')->link();\n        $grid->column('friends_describe', '博客描述');\n        $grid->column('friends_contact', '联系方式');\n        $grid->column('friends_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('friends_type', '添加方式')->using([1 => '申请添加', 2 => '后台添加']);\n        $grid->column('friends_examine', '审核状态')->using([1 => '通过', 2 => '待审核', 3 => '未通过']);\n        $grid->column('friends_recommend', '是否推荐')->using([1 => '推荐', 2 => '正常']);\n        $grid->column('friends_sort', '友链排序');\n        $grid->column('created_at', '添加时间');\n        $grid->filter(function ($filter) {\n            $filter->like('friends_title', '博客名称');\n            $filter->like('friends_link', '博客链接');\n            $filter->equal('friends_show', '是否显示')->select([1 => '显示', 2 => '隐藏']);\n            $filter->equal('friends_show', '是否推荐')->select([1 => '推荐', 2 => '正常']);\n            $filter->equal('friends_examine', '审核状态')->select([1 => '通过', 2 => '待审核', 3 => '未通过']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogFriends::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogFriends);\n\n        $form->text('friends_title', '博客名称')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->url('friends_link', '博客链接')->attribute('autocomplete', 'off')->required()->rules('required|url')->creationRules(['required' => 'unique:blog_friends']);\n        $form->textarea('friends_describe', '博客描述')->attribute('autocomplete', 'off')->required()->rules('required|max:100');\n        $form->text('friends_contact', '联系方式')->attribute('autocomplete', 'off')->required()->rules('required');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('friends_show', '是否显示')->states($states)->default(1);\n        $form->hidden('friends_type', '添加方式')->value(2);\n        $form->number('friends_sort', '排序')->default(100);\n        $status = [1 => '通过', 2 => '待审核', 3 => '未通过'];\n        $form->radio('friends_examine', '审核状态')->options($status)->default(2);\n        $recommend = [\n            'on'  => ['value' => 1, 'text' => '推荐', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '正常', 'color' => 'danger'],\n        ];\n        $form->switch('friends_recommend', '是否推荐')->states($recommend)->default(2);\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogMessageController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogMessage;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\n\nclass BlogMessageController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogMessage';\n\n    public function index(Content $content)\n    {\n        return $content->header('留言管理')->description('留言列表')->body($this->grid());\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogMessage);\n        $grid->model()->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('msg_blog_name', '博客名称');\n        $grid->column('msg_blog_link', '博客链接')->link();\n        $grid->column('msg_blog_contact', '联系方式');\n        $grid->column('msg_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('msg_type', '留言板块')->using([1 => '文章板块', 2 => '视频板块', 3 => '留言板块']);;\n        $grid->column('msg_ip', '留言人IP');\n        $grid->column('created_at', '添加时间');\n        $grid->filter(function ($filter) {\n            $filter->like('msg_blog_name', '博客名称');\n            $filter->like('msg_blog_link', '博客链接');\n            $filter->equal('msg_show', '是否显示')->select([1 => '显示', 2 => '隐藏']);\n        });\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogMessage::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogMessage);\n        $form->text('msg_blog_name', '留言博客名称')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->text('msg_blog_link', '留言博客链接')->attribute('autocomplete', 'off')->required()->rules('required|url');\n        $form->text('msg_blog_contact', '留言联系方式')->attribute('autocomplete', 'off')->required()->rules('required');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('msg_show', '是否显示')->states($states)->default(1);\n        $form->textarea('msg_content', '留言内容')->required()->rules('required');\n        $form->hidden('msg_type', '留言类型')->default(3);\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavArticleController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavArticle;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavArticleController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 1)->pluck('nav_title', 'id')->toArray();\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavArticle';\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('文章管理')->body($this->grid($this->nav_name));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavArticle);\n        $grid->model()->orderBy('article_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });\n        $grid->column('article_title', '文章标题')->editable();\n        $grid->column('article_tag', '文章标签')->display(function ($article_tag) {\n            $article_tag = empty($article_tag) ? '' : explode(',', $article_tag);\n            return $article_tag;\n        })->label('success');\n        $grid->column('article_click', '点击量');\n        $grid->column('article_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('article_sort', '文章排序');\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('article_title', '文章标题');\n            $filter->equal('article_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n        $grid->column('created_at', '添加时间');\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavArticle::findOrFail($id));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavArticle);\n\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('article_title', '文章标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->tags('article_tag', '文章标签')->help('建议使用标签总数量不超过6个')->attribute('autocomplete', 'off');\n        $form->textarea('article_describe', '文章简介');\n        $form->editormd('article_content', '文章内容')->required()->rules('required');\n        $form->number('article_click', '点击量')->default(0)->rules('integer|between:0,999999');\n        $form->number('article_sort', '文章排序')->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('article_show', '是否显示')->states($states)->default(1);\n        return $form;\n    }\n\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Admin\\Actions\\Post\\GoArticle;\nuse App\\Models\\BlogNav;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Column;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Layout\\Row;\nuse Encore\\Admin\\Show;\n\nclass BlogNavController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNav';\n    protected $navigation = [\n        0 => '顶级分类',\n        1 => '文章',\n        2 => '照片',\n        3 => '音乐',\n        4 => '视频',\n        5 => '卡片1',\n        6 => '卡片2',\n    ];\n\n    public function index(Content $content)\n    {\n        $content->header('导航管理');\n        $content->description('导航列表');\n        return $content->row(function (Row $row) {\n            $row->column(6, BlogNav::tree(function ($tree) {\n                $tree->disableCreate();\n                $tree->branch(function ($branch) {\n                    if ($branch['nav_open'] == 1) {\n                        $lable = '<span class=\"label label-info\" style=\"margin-left: 20px;\">启用</span>';\n                    } else {\n                        $lable = '<span class=\"label label-default\" style=\"margin-left: 20px;\">关闭</span>';\n                    }\n                    return \"{$branch['id']} - {$branch['nav_title']}\" . $lable;\n                });\n            }));\n            $row->column(6, function (Column $column) {\n                $form = new Form(new BlogNav);\n                $form->setAction('blog-navs');\n                $tree_nav   = $form->model()->getTree();\n                $select_nav = array('顶级导航');\n                foreach ($tree_nav as $k => $v) {\n                    $select_nav[$v['id']] = str_repeat('|--------', $v['level']) . $v['nav_title'];\n                }\n                $form->select('nav_pid', '顶级导航')->options($select_nav)->default(0);\n                $form->text('nav_title', '导航标题')->rules('required|max:20');\n\n                $form->select('nav_type', '导航分类')->options($this->navigation);\n                $states = [\n                    'on'  => ['value' => 1, 'text' => '启用', 'color' => 'info'],\n                    'off' => ['value' => 2, 'text' => '关闭', 'color' => 'danger'],\n                ];\n                $form->switch('nav_open', '是否启用')->states($states)->default(1);\n                $form->number('nav_sort', '导航排序')->default(100)->rules('integer|between:1,999999');\n                $column->append($form);\n            });\n        });\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogNav);\n        $grid->model()->orderBy('nav_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_title', '导航标题')->editable();\n        $grid->column('nav_type', '导航类型')->using($this->navigation);\n        $grid->column('nav_open', '是否启用')->using([1 => '启用', 2 => '关闭'])->label([\n            2 => 'default',\n            1 => 'success',\n        ]);\n        $grid->column('nav_sort', '导航排序')->editable();\n        $grid->column('nav_pid', '上级导航')->display(function ($nav_pid) {\n            $blog_model = new BlogNav();\n            $tree_nav   = $blog_model->getTree();\n\n            $select_nav = array('顶级导航');\n            foreach ($tree_nav as $k => $v) {\n                $select_nav[$v['id']] = $v['nav_title'];\n            }\n            return empty($select_nav[$nav_pid]) ? '暂无' : $select_nav[$nav_pid];\n        });\n        $grid->column('created_at', '创建时间');\n\n        $grid->filter(function ($filter) {\n            $filter->like('nav_title', '导航标题');\n        });\n        $grid->actions(function ($actions) {\n            $actions->add(new GoArticle());\n            $actions->disableView();\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNav::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNav);\n        $form->display('id', 'ID');\n        $tree_nav   = $form->model()->getTree();\n        $select_nav = array('顶级导航');\n        foreach ($tree_nav as $k => $v) {\n            $select_nav[$v['id']] = str_repeat('|----', $v['level']) . $v['nav_title'];\n        }\n        $form->select('nav_pid', '顶级导航')->options($select_nav)->default(0);\n        $form->text('nav_title', '导航标题')->attribute('autocomplete', 'off')->rules('required|max:80');\n\n        $form->select('nav_type', '导航分类')->options($this->navigation);\n        $states = [\n            'on'  => ['value' => 1, 'text' => '启用', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '关闭', 'color' => 'danger'],\n        ];\n        $form->switch('nav_open', '是否启用')->states($states)->default(1);\n        $form->number('nav_sort', '导航排序')->default(100)->rules('integer|between:1,999999');\n\n        //保存后回调\n        $form->saved(function (Form $form) {\n            $blog_nav            = new BlogNav();\n            $id                  = $form->model()->id;\n            $blog_nav            = $blog_nav::find($id);\n            $route_home          = [\n                '0' => '',\n                '1' => 'article',\n                '2' => 'photo',\n                '3' => 'music',\n                '4' => 'video',\n                '5' => 'card1',\n                '6' => 'card2',\n            ];\n            $blog_nav->nav_route = $route_home[$form->nav_type];\n            $blog_nav->save();\n        });\n\n        return $form;\n    }\n\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavMusicController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavMusic;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavMusicController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 3)->pluck('nav_title', 'id')->toArray();\n    }\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('歌单管理')->body($this->grid($this->nav_name)); // TODO: Change the autogenerated stub\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavMusic';\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavMusic);\n        $grid->model()->orderBy('music_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });;\n        $grid->column('music_title', '歌单标题');\n        $grid->column('music_tag', '歌单标签')->display(function ($music_tag) {\n            $music_tag = empty($music_tag) ? '' : explode(',', $music_tag);\n            return $music_tag;\n        })->label('success');\n        $grid->column('music_img', '歌单封面')->image();\n        $grid->column('music_click', '点击量');\n        $grid->column('music_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('music_play', '添加播放列表')->using([1 => '是', 2 => '否']);\n        $grid->column('music_sort', '歌单排序');\n\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('music_title', '文章标题');\n            $filter->equal('music_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavMusic::findOrFail($id));\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavMusic);\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('music_title', '歌单标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->tags('music_tag', '歌单标签')->help('建议使用标签总数量不超过6个');\n        $form->textarea('music_describe', '歌单描述')->rules('required');\n        $form->image('music_img', '歌单封面')->uniqueName()->attribute('accept', 'image/*')->required();\n\n        $form->number('music_click', '点击量')->default(0)->rules('integer|between:0,999999');\n        $form->number('music_sort', '歌单排序')->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('music_show', '是否显示')->states($states)->default(1);\n        $play = [\n            'on'  => ['value' => 1, 'text' => '是', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '否', 'color' => 'danger'],\n        ];\n        $form->switch('music_play', '添加播放列表')->states($play)->default(1);\n        $form->multipleFile('music_json', '所属歌曲')->attribute('accept', 'audio/*')->removable()->sortable();\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavPhotoController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavPhoto;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavPhotoController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 2)->pluck('nav_title', 'id')->toArray();\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavPhoto';\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('相册管理')->body($this->grid($this->nav_name));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavPhoto);\n        $grid->model()->orderBy('photo_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });\n        $grid->column('photo_title', '相册标题');\n        $grid->column('photo_img', '相册封面')->image();\n        $grid->column('photo_tag', '相册标签')->display(function ($photo_tag) {\n            $photo_tag = empty($photo_tag) ? '' : explode(',', $photo_tag);\n            return $photo_tag;\n        })->label('success');\n        $grid->column('photo_click', '点击量');\n        $grid->column('photo_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('photo_sort', '相册排序');\n        $grid->column('created_at', '添加时间');\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('article_title', '文章标题');\n            $filter->equal('article_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n        $grid->filter(function ($filter) {\n\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavPhoto::findOrFail($id));\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavPhoto);\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('photo_title', '相册标题')->required()->attribute('autocomplete', 'off')->rules('required|max:80');\n        $form->image('photo_img', '相册封面')->uniqueName()->attribute('accept', 'image/*')->required()->rules('required');\n        $form->tags('photo_tag', '相册标签')->help('建议使用标签总数量不超过6个');\n        $form->number('photo_click', '点击量')->default(0)->rules('required|integer|between:0,999999');\n        $form->number('photo_sort', '相册排序')->default(100)->rules('required|integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('photo_show', '是否显示')->states($states)->default(1);\n        $form->multipleImage('photo_json', '所属照片')->uniqueName()->attribute('accept', 'image/*')->removable()->sortable()->rules('required');\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavShareOneController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavShareOne;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavShareOneController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 5)->pluck('nav_title', 'id')->toArray();\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavShareOne';\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('分享卡片一管理')->body($this->grid($this->nav_name));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavShareOne);\n        $grid->model()->orderBy('share_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });\n        $grid->column('share_title', '分享标题')->editable();\n        $grid->column('share_icon', 'ICON图标');\n        $grid->column('share_src', '分享封面')->image();\n        $grid->column('share_link', '分享链接')->link();\n        $grid->column('share_sort', '分享排序');\n        $grid->column('share_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('share_title', '文章标题');\n            $filter->equal('share_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavShareOne::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavShareOne);\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('share_title', '分享标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->icon('share_icon', 'icon图标')->help('更多icon图标访问 <a href=\"https://fontawesome.com\" target=\"_blank\">https://fontawesome.com</a>,填写该icon完整引用,示例[fab fa-php、far fa-futbol]')->rules('required');\n        $form->text('share_link', '分享链接')->rules('url');\n        $form->image('share_src', '分享封面')->uniqueName()->attribute('accept', 'image/*')->required();\n        $form->number('share_sort', '分享排序')->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('share_show', '是否显示')->states($states)->default(1);\n        $form->textarea('share_intro', '分享描述');\n        $form->simditor('share_describe', '详情内容');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavShareTwoController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavShareTwo;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavShareTwoController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 6)->pluck('nav_title', 'id')->toArray();\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavShareTwo';\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('分享卡片一管理')->body($this->grid($this->nav_name));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavShareTwo);\n        $grid->model()->orderBy('share_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });\n        $grid->column('share_title', '分享标题')->editable();\n        $grid->column('share_note', '分享副标题')->editable();\n        $grid->column('share_src', '分享封面')->image();\n        $grid->column('share_link', '分享链接')->link();\n        $grid->column('share_sort', '分享排序');\n        $grid->column('share_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('share_title', '文章标题');\n            $filter->equal('share_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavShareTwo::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavShareTwo);\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('share_title', '分享标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->text('share_note', '分享副标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->text('share_link', '分享链接')->rules('url');\n        $form->image('share_src', '分享封面')->uniqueName()->attribute('accept', 'image/*')->required();\n        $form->number('share_sort', '分享排序')->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('share_show', '是否显示')->states($states)->default(1);\n        $form->textarea('share_describe', '分享描述');\n\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNavVideoController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNavVideo;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass BlogNavVideoController extends AdminController\n{\n    protected $nav_name = [];\n\n    public function __construct()\n    {\n        $this->nav_name = DB::table('blog_nav')->where('nav_type', 4)->pluck('nav_title', 'id')->toArray();\n    }\n\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNavVideo';\n\n    public function index(Content $content)\n    {\n        return $content->header('内容管理')->description('视频管理')->body($this->grid($this->nav_name));\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid($nav_name)\n    {\n        $grid = new Grid(new BlogNavVideo);\n        $grid->model()->orderBy('video_sort', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', 'ID');\n        $grid->column('nav_id', '所属导航')->display(function ($nav_id) use ($nav_name) {\n            return $nav_name[$nav_id];\n        });\n        $grid->column('video_title', '视频标题')->editable();\n        $grid->column('video_tag', '视频标签')->display(function ($video_tag) {\n            $video_tag = empty($video_tag) ? '' : explode(',', $video_tag);\n            return $video_tag;\n        })->label('success');;\n        $grid->column('video_img', '视频封面')->image();\n        $grid->column('video_link', '视频链接');\n        $grid->column('video_click', '点击量');\n        $grid->column('video_sort', '视频排序');\n        $grid->column('video_recommend', '是否推荐')->using([1 => '推荐', 2 => '关闭']);;\n        $grid->column('video_show', '是否显示')->using([1 => '显示', 2 => '隐藏']);;\n\n        $grid->filter(function ($filter) use ($nav_name) {\n            $filter->equal('nav_id', '所属导航')->select($nav_name);\n            $filter->like('video_title', '文章标题');\n            $filter->equal('video_show', '是否隐藏')->select([1 => '显示', 2 => '隐藏']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNavVideo::findOrFail($id));\n\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNavVideo);\n        $form->select('nav_id', '所属导航')->options($this->nav_name)->rules('required|integer');\n        $form->text('video_title', '视频标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->tags('video_tag', '视频标签')->help('建议使用标签总数量不超过6个');\n        $form->textarea('video_describe', '视频描述')->rules('required');\n        $form->image('video_img', '视频封面')->uniqueName()->attribute('accept', 'image/*')->required();\n        $form->number('video_click', '点击量')->default(0)->rules('integer|between:0,999999');\n        $form->number('video_sort', '视频排序')->default(100)->rules('integer|between:0,999999');\n        $recommend = [\n            'on'  => ['value' => 1, 'text' => '推荐', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '关闭', 'color' => 'danger'],\n        ];\n        $form->switch('video_recommend', '是否推荐')->states($recommend)->default(2);\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('video_show', '是否显示')->states($states)->default(1);\n\n        $form->largefile('video_link', '所属视频')->attribute('accept', 'video/*')->rules('required');\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogNoticeController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogNotice;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\n\nclass BlogNoticeController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogNotice';\n\n    public function index(Content $content)\n    {\n        return $content->header('公告管理')->description('公告列表')->body($this->grid()); // TODO: Change the autogenerated stub\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogNotice);\n        $grid->model()->orderBy('notice_show', 'desc')->orderBy('id', 'desc');\n        $grid->column('id', __('ID'));\n        $grid->column('notice_title', __('公告标题'))->editable();\n        $grid->column('notice_sort', __('公告排序'));\n        $grid->column('notice_show', __('是否显示'))->using([1 => '显示', 2 => '隐藏']);\n        $grid->column('created_at', __('添加时间'));\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogNotice::findOrFail($id));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogNotice);\n\n        $form->text('notice_title', '公告标题')->attribute('autocomplete', 'off')->required()->rules('required|max:80');\n        $form->simditor('notice_content', '公告内容')->rules('required');\n        $form->number('notice_sort', '公告排序')->default(100)->rules('integer|between:0,999999');\n        $states = [\n            'on'  => ['value' => 1, 'text' => '显示', 'color' => 'info'],\n            'off' => ['value' => 2, 'text' => '隐藏', 'color' => 'danger'],\n        ];\n        $form->switch('notice_show', '是否显示')->states($states)->default(1);\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogSubscribeController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Models\\BlogSubscribe;\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Show;\n\nclass BlogSubscribeController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'App\\Models\\BlogSubscribe';\n\n    public function index(Content $content)\n    {\n        return $content->header('订阅管理')->description('订阅列表')->body($this->grid());\n    }\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new BlogSubscribe);\n        $grid->model()->orderBy('id', 'desc');\n        $grid->column('id', __('ID'));\n        $grid->column('email', __('邮箱名称'));\n        $grid->column('ip', __('ip地址'));\n        $grid->column('is_pass', __('审核状态'))->using([1 => '审核中', 2 => '审核通过', 3 => '冻结封禁']);\n        $grid->column('add_mode', __('添加方式'))->using([1 => '申请添加', 2 => '后台添加']);\n        $grid->column('created_at', __('添加时间'));\n        $grid->filter(function ($filter) {\n            $filter->like('email', '邮箱名称');\n            $filter->equal('is_pass', '审核状态')->select([1 => '审核中', 2 => '审核通过', 3 => '冻结封禁']);\n            $filter->equal('add_mode', '添加方式')->select([1 => '申请添加', 2 => '后台添加']);\n        });\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(BlogSubscribe::findOrFail($id));\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new BlogSubscribe);\n        $form->email('email', __('邮箱名称'))->creationRules('required|unique:blog_subscribes,email');\n        $pass_status = [1 => '审核中', 2 => '审核通过', 3 => '冻结封禁'];\n        $form->radio('is_pass', __('审核状态'))->options($pass_status)->default(1);\n        $form->hidden('add_mode')->default(2);\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/BlogUploadFileController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Http\\Request;\nuse App\\Models\\BlogUploadFile;\nuse zgldh\\QiniuStorage\\QiniuStorage;\n\nclass BlogUploadFileController extends Controller\n{\n\n    public function store(Request $request, BlogUploadFile $blogUploadFile)\n    {\n        $upload_type = env('UPLOAD_TYPE');\n        $type = $request->input('type');\n        if($upload_type == 'admin'){\n            if ($type == 1) {\n                if ($request->file('editormd-image-file')) {\n                    $file_data                  = $request->file('editormd-image-file');\n                    $save_src                   = $request->file('editormd-image-file')->store('article' . '/' . date('Y-m-d'), 'admin');\n                    $blogUploadFile->img_title  = $file_data->getClientOriginalName();\n                    $blogUploadFile->img_src    = $save_src;\n                    $blogUploadFile->img_suffix = $file_data->extension();\n                    $blogUploadFile->img_type   = $type;\n                    $blogUploadFile->img_ip     = $request->getClientIp();\n                    $bool1                      = $blogUploadFile->save();\n                    if ($bool1) {\n                        $save_src = 'uploads/' . $save_src;\n                        $result   = array(\n                            'success' => 1,\n                            'message' => '上传成功',\n                            'url'     => asset($save_src)\n                        );\n                    } else {\n                        $result = array(\n                            'success' => 0,\n                            'message' => '上传失败'\n                        );\n                    }\n                    return json_encode($result);\n                }\n            } elseif ($type == 2) {\n                if ($request->file('simditor_file')) {\n                    $file_data                  = $request->file('simditor_file');\n                    $save_src                   = $request->file('simditor_file')->store('simditor' . '/' . date('Y-m-d'), 'admin');\n                    $blogUploadFile->img_title  = $file_data->getClientOriginalName();\n                    $blogUploadFile->img_src    = $save_src;\n                    $blogUploadFile->img_suffix = $file_data->extension();\n                    $blogUploadFile->img_type   = $type;\n                    $blogUploadFile->img_ip     = $request->getClientIp();\n                    $bool1                      = $blogUploadFile->save();\n                    if ($bool1) {\n                        $save_src = 'uploads/' . $save_src;\n                        $result   = array(\n                            'success'   => true,\n                            'file_path' => asset($save_src)\n                        );\n                    } else {\n                        $result = array(\n                            'success' => false\n                        );\n                    }\n                    return json_encode($result);\n                }\n            }\n            $result = array(\n                'success' => 0,\n                'message' => '上传失败'\n            );\n            return json_encode($result);\n        }elseif($upload_type == 'qiniu'){\n            if ($type == 1) {\n                if ($request->file('editormd-image-file')) {\n                    $file_data                  = $request->file('editormd-image-file');\n                    // 初始化\n                    $disk = QiniuStorage::disk('qiniu');\n                    // 重命名文件\n                    $fileName = md5($file_data->getClientOriginalName().time().rand()).'.'.$file_data->getClientOriginalExtension();\n                    // 上传到七牛\n                    $bool = $disk->put('editormd/'.$fileName,file_get_contents($file_data->getRealPath()));\n                    if ($bool) {\n                        $path = $disk->downloadUrl('editormd/'.$fileName);\n                        $save_src = $path;\n                        $blogUploadFile->img_title  = $file_data->getClientOriginalName();\n                        $blogUploadFile->img_src    = $save_src;\n                        $blogUploadFile->img_suffix = $file_data->extension();\n                        $blogUploadFile->img_type   = $type;\n                        $blogUploadFile->img_ip     = $request->getClientIp();\n                        $bool1                      = $blogUploadFile->save();\n                        if ($bool1) {\n                            $result   = array(\n                                'success' => 1,\n                                'message' => '上传成功',\n                                'url'     => $save_src\n                            );\n                        } else {\n                            $result = array(\n                                'success' => 0,\n                                'message' => '上传失败'\n                            );\n                        }\n                        return json_encode($result);\n                    }\n                }\n            } elseif ($type == 2) {\n                if ($request->file('simditor_file')) {\n                    $file_data                  = $request->file('simditor_file');\n                    // 初始化\n                    $disk = QiniuStorage::disk('qiniu');\n                    // 重命名文件\n                    $fileName = md5($file_data->getClientOriginalName().time().rand()).'.'.$file_data->getClientOriginalExtension();\n                    // 上传到七牛\n                    $bool = $disk->put('simditor/'.$fileName,file_get_contents($file_data->getRealPath()));\n\n                    // 判断是否上传成功\n                    if ($bool) {\n                        $path = $disk->downloadUrl('simditor/'.$fileName);\n                        $save_src = $path;\n                        $blogUploadFile->img_title  = $file_data->getClientOriginalName();\n                        $blogUploadFile->img_src    = $save_src;\n                        $blogUploadFile->img_suffix = $file_data->extension();\n                        $blogUploadFile->img_type   = $type;\n                        $blogUploadFile->img_ip     = $request->getClientIp();\n                        $bool1                      = $blogUploadFile->save();\n                        if ($bool1) {\n                            $result   = array(\n                                'success'   => true,\n                                'file_path' => $save_src\n                            );\n                        } else {\n                            $result = array(\n                                'success' => false\n                            );\n                        }\n                        return json_encode($result);\n                    }\n                }\n            }\n            $result = array(\n                'success' => 0,\n                'message' => '上传失败'\n            );\n            return json_encode($result);\n        }\n\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/ExampleController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse Encore\\Admin\\Controllers\\AdminController;\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Grid;\nuse Encore\\Admin\\Show;\n\nclass ExampleController extends AdminController\n{\n    /**\n     * Title for current resource.\n     *\n     * @var string\n     */\n    protected $title = 'Example controller';\n\n    /**\n     * Make a grid builder.\n     *\n     * @return Grid\n     */\n    protected function grid()\n    {\n        $grid = new Grid(new ExampleModel);\n\n        $grid->column('id', __('ID'))->sortable();\n        $grid->column('created_at', __('Created at'));\n        $grid->column('updated_at', __('Updated at'));\n\n        return $grid;\n    }\n\n    /**\n     * Make a show builder.\n     *\n     * @param mixed   $id\n     * @return Show\n     */\n    protected function detail($id)\n    {\n        $show = new Show(ExampleModel::findOrFail($id));\n\n        $show->field('id', __('ID'));\n        $show->field('created_at', __('Created at'));\n        $show->field('updated_at', __('Updated at'));\n\n        return $show;\n    }\n\n    /**\n     * Make a form builder.\n     *\n     * @return Form\n     */\n    protected function form()\n    {\n        $form = new Form(new ExampleModel);\n\n        $form->display('id', __('ID'));\n        $form->display('created_at', __('Created At'));\n        $form->display('updated_at', __('Updated At'));\n\n        return $form;\n    }\n}\n"
  },
  {
    "path": "app/Admin/Controllers/HomeController.php",
    "content": "<?php\n\nnamespace App\\Admin\\Controllers;\n\nuse App\\Http\\Controllers\\Controller;\nuse Encore\\Admin\\Controllers\\Dashboard;\nuse Encore\\Admin\\Layout\\Column;\nuse Encore\\Admin\\Layout\\Content;\nuse Encore\\Admin\\Layout\\Row;\n\nclass HomeController extends Controller\n{\n    public function index(Content $content)\n    {\n        return $content\n            ->title('Dashboard')\n            ->description('Description...')\n            ->row(Dashboard::title())\n            ->row(function (Row $row) {\n\n                $row->column(4, function (Column $column) {\n                    $column->append(Dashboard::environment());\n                });\n\n                $row->column(4, function (Column $column) {\n                    $column->append(Dashboard::extensions());\n                });\n\n                $row->column(4, function (Column $column) {\n                    $column->append(Dashboard::dependencies());\n                });\n            });\n    }\n}\n"
  },
  {
    "path": "app/Admin/bootstrap.php",
    "content": "<?php\n\nuse Encore\\Admin\\Form;\nuse Encore\\Admin\\Admin;\n/**\n * Laravel-admin - admin builder based on Laravel.\n * @author z-song <https://github.com/z-song>\n *\n * Bootstraper for Admin.\n *\n * Here you can remove builtin form field:\n * Encore\\Admin\\Form::forget(['map', 'editor']);\n *\n * Or extend custom form field:\n * Encore\\Admin\\Form::extend('php', PHPEditor::class);\n *\n * Or require js and css assets:\n * Admin::css('/packages/prettydocs/css/styles.css');\n * Admin::js('/packages/prettydocs/js/main.js');\n *\n */\nEncore\\Admin\\Form::forget(['map', 'editor']);\nForm::init(function (Form $form) {\n\n    $form->disableEditingCheck();\n\n    $form->disableCreatingCheck();\n\n    $form->disableViewCheck();\n\n    $form->tools(function (Form\\Tools $tools) {\n        $tools->disableDelete();\n        $tools->disableView();\n    });\n});\n\nuse Encore\\Admin\\Grid;\n\nGrid::init(function (Grid $grid) {\n    $grid->actions(function (Grid\\Displayers\\Actions $actions) {\n        $actions->disableView();\n    });\n    $grid->filter(function ($filter){\n        // 去掉默认的id过滤器\n        $filter->disableIdFilter();\n    });\n    //禁用导出\n    $grid->disableExport();\n});\n\n/*\n * 大文件上传引入\n */\nEncore\\Admin\\Form::extend('largefile', \\Encore\\LargeFileUpload\\LargeFileField::class);"
  },
  {
    "path": "app/Admin/routes.php",
    "content": "<?php\n\nuse Illuminate\\Routing\\Router;\n\nAdmin::routes();\n\nRoute::group([\n    'prefix'        => config('admin.route.prefix'),\n    'namespace'     => config('admin.route.namespace'),\n    'middleware'    => config('admin.route.middleware'),\n], function (Router $router) {\n\n    $router->get('/', 'HomeController@index')->name('admin.home');\n    $router->resource('blog-navs', BlogNavController::class);\n    $router->resource('blog-nav-articles', BlogNavArticleController::class);\n    $router->resource('blog-nav-photos', BlogNavPhotoController::class);\n    $router->resource('blog-nav-musics', BlogNavMusicController::class);\n    $router->resource('blog-nav-videos', BlogNavVideoController::class);\n    $router->resource('blog-nav-share-ones', BlogNavShareOneController::class);\n    $router->resource('blog-nav-share-twos', BlogNavShareTwoController::class);\n    $router->resource('blog-upload-files', BlogUploadFileController::class);\n    $router->resource('blog-messages', BlogMessageController::class);\n    $router->resource('blog-friends', BlogFriendsController::class);\n    $router->resource('blog-notices', BlogNoticeController::class);\n    $router->resource('blog-abouts', BlogAboutController::class);\n    $router->resource('blog-about-articles', BlogAboutArticleController::class);\n    $router->resource('blog-about-card-ones', BlogAboutCardOneController::class);\n    $router->resource('blog-about-card-twos', BlogAboutCardTwoController::class);\n    $router->resource('blog-subscribes', BlogSubscribeController::class);\n});\n"
  },
  {
    "path": "app/Console/Kernel.php",
    "content": "<?php\n\nnamespace App\\Console;\n\nuse Illuminate\\Console\\Scheduling\\Schedule;\nuse Illuminate\\Foundation\\Console\\Kernel as ConsoleKernel;\n\nclass Kernel extends ConsoleKernel\n{\n    /**\n     * The Artisan commands provided by your application.\n     *\n     * @var array\n     */\n    protected $commands = [\n        //\n    ];\n\n    /**\n     * Define the application's command schedule.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Schedule  $schedule\n     * @return void\n     */\n    protected function schedule(Schedule $schedule)\n    {\n        // $schedule->command('inspire')\n        //          ->hourly();\n    }\n\n    /**\n     * Register the commands for the application.\n     *\n     * @return void\n     */\n    protected function commands()\n    {\n        $this->load(__DIR__.'/Commands');\n\n        require base_path('routes/console.php');\n    }\n}\n"
  },
  {
    "path": "app/Exceptions/Handler.php",
    "content": "<?php\n\nnamespace App\\Exceptions;\n\nuse Exception;\nuse Illuminate\\Foundation\\Exceptions\\Handler as ExceptionHandler;\n\nclass Handler extends ExceptionHandler\n{\n    /**\n     * A list of the exception types that are not reported.\n     *\n     * @var array\n     */\n    protected $dontReport = [\n        //\n    ];\n\n    /**\n     * A list of the inputs that are never flashed for validation exceptions.\n     *\n     * @var array\n     */\n    protected $dontFlash = [\n        'password',\n        'password_confirmation',\n    ];\n\n    /**\n     * Report or log an exception.\n     *\n     * @param  \\Exception  $exception\n     * @return void\n     */\n    public function report(Exception $exception)\n    {\n        parent::report($exception);\n    }\n\n    /**\n     * Render an exception into an HTTP response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception  $exception\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function render($request, Exception $exception)\n    {\n        return parent::render($request, $exception);\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Auth/ForgotPasswordController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Foundation\\Auth\\SendsPasswordResetEmails;\n\nclass ForgotPasswordController extends Controller\n{\n    /*\n    |--------------------------------------------------------------------------\n    | Password Reset Controller\n    |--------------------------------------------------------------------------\n    |\n    | This controller is responsible for handling password reset emails and\n    | includes a trait which assists in sending these notifications from\n    | your application to your users. Feel free to explore this trait.\n    |\n    */\n\n    use SendsPasswordResetEmails;\n\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('guest');\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Auth/LoginController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Foundation\\Auth\\AuthenticatesUsers;\n\nclass LoginController extends Controller\n{\n    /*\n    |--------------------------------------------------------------------------\n    | Login Controller\n    |--------------------------------------------------------------------------\n    |\n    | This controller handles authenticating users for the application and\n    | redirecting them to your home screen. The controller uses a trait\n    | to conveniently provide its functionality to your applications.\n    |\n    */\n\n    use AuthenticatesUsers;\n\n    /**\n     * Where to redirect users after login.\n     *\n     * @var string\n     */\n    protected $redirectTo = '/home';\n\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('guest')->except('logout');\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Auth/RegisterController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\User;\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Support\\Facades\\Hash;\nuse Illuminate\\Support\\Facades\\Validator;\nuse Illuminate\\Foundation\\Auth\\RegistersUsers;\n\nclass RegisterController extends Controller\n{\n    /*\n    |--------------------------------------------------------------------------\n    | Register Controller\n    |--------------------------------------------------------------------------\n    |\n    | This controller handles the registration of new users as well as their\n    | validation and creation. By default this controller uses a trait to\n    | provide this functionality without requiring any additional code.\n    |\n    */\n\n    use RegistersUsers;\n\n    /**\n     * Where to redirect users after registration.\n     *\n     * @var string\n     */\n    protected $redirectTo = '/home';\n\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('guest');\n    }\n\n    /**\n     * Get a validator for an incoming registration request.\n     *\n     * @param  array  $data\n     * @return \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    protected function validator(array $data)\n    {\n        return Validator::make($data, [\n            'name' => ['required', 'string', 'max:255'],\n            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],\n            'password' => ['required', 'string', 'min:8', 'confirmed'],\n        ]);\n    }\n\n    /**\n     * Create a new user instance after a valid registration.\n     *\n     * @param  array  $data\n     * @return \\App\\User\n     */\n    protected function create(array $data)\n    {\n        return User::create([\n            'name' => $data['name'],\n            'email' => $data['email'],\n            'password' => Hash::make($data['password']),\n        ]);\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Auth/ResetPasswordController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Foundation\\Auth\\ResetsPasswords;\n\nclass ResetPasswordController extends Controller\n{\n    /*\n    |--------------------------------------------------------------------------\n    | Password Reset Controller\n    |--------------------------------------------------------------------------\n    |\n    | This controller is responsible for handling password reset requests\n    | and uses a simple trait to include this behavior. You're free to\n    | explore this trait and override any methods you wish to tweak.\n    |\n    */\n\n    use ResetsPasswords;\n\n    /**\n     * Where to redirect users after resetting their password.\n     *\n     * @var string\n     */\n    protected $redirectTo = '/home';\n\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('guest');\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Auth/VerificationController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Auth;\n\nuse App\\Http\\Controllers\\Controller;\nuse Illuminate\\Foundation\\Auth\\VerifiesEmails;\n\nclass VerificationController extends Controller\n{\n    /*\n    |--------------------------------------------------------------------------\n    | Email Verification Controller\n    |--------------------------------------------------------------------------\n    |\n    | This controller is responsible for handling email verification for any\n    | user that recently registered with the application. Emails may also\n    | be re-sent if the user didn't receive the original email message.\n    |\n    */\n\n    use VerifiesEmails;\n\n    /**\n     * Where to redirect users after verification.\n     *\n     * @var string\n     */\n    protected $redirectTo = '/home';\n\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('auth');\n        $this->middleware('signed')->only('verify');\n        $this->middleware('throttle:6,1')->only('verify', 'resend');\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Controller.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers;\n\nuse Illuminate\\Foundation\\Bus\\DispatchesJobs;\nuse Illuminate\\Routing\\Controller as BaseController;\nuse Illuminate\\Foundation\\Validation\\ValidatesRequests;\nuse Illuminate\\Foundation\\Auth\\Access\\AuthorizesRequests;\n\nclass Controller extends BaseController\n{\n    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/AboutController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Home;\n\nuse App\\Http\\Controllers\\Controller;\nuse App\\Models\\BlogAbout;\n\nclass AboutController extends Controller\n{\n    /**\n     * Desc:关于我个人信息展示\n     * Date:2019/9/3/003\n     */\n    public function index(BlogAbout $blogAbout)\n    {\n        $about_data = $blogAbout::with([\n            'article' => function ($query) {\n                $query->where('article_show', '=', 1);\n            },\n            'card1'   => function ($query) {\n                $query->where('card_show', '=', 1)->orderBy('card_sort','desc')->orderBy('id', 'desc');\n            },\n            'card2'   => function ($query) {\n                $query->where('card_show', '=', 1)->orderBy('card_sort','desc')->orderBy('id', 'desc');\n            },\n        ])->where('about_show', 1)->get();\n        return view('home.about.index')->with('about_data', $about_data);\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/ArticleController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Home;\n\nuse App\\Http\\Requests\\StoreBlogSubscribePost;\nuse App\\Models\\BlogMessage;\nuse App\\Models\\BlogSubscribe;\nuse App\\Models\\BlogTag;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\nuse App\\Models\\BlogNavArticle;\nuse App\\Models\\BlogNotice;\nuse Illuminate\\Support\\Facades\\DB;\n\nclass ArticleController extends Controller\n{\n    public function index(Request $request)\n    {\n        $random_article = [];\n        $show_article   = [];\n\n        $nav_id       = $request->route('nav_id');\n        $search_title = $request->input('search_title');\n        $tag_content  = $request->input('tag_content');\n\n        $article_model = new BlogNavArticle();\n        $tagModel      = new BlogTag();\n\n        $where_all_article = array(\n            ['article_show', '=', 1]\n        );\n        if (trim($nav_id)) {\n            $where_all_article[] = ['nav_id', '=', $nav_id];\n        }\n        if (trim($search_title)) {\n            $where_all_article[] = ['article_title', 'like', '%' . $search_title . '%'];\n        }\n        $where_tag = array();\n        if ($tag_content) {\n            //点击标签时，该标签自增1\n            $tag_aid = $tagModel::where('tag_content', '=', $tag_content)->pluck('a_id', 'id');\n            if ($tag_aid->count()) {\n                $where_tag = function ($query) use ($tag_aid) {\n                    $query->whereIn('id', $tag_aid->toArray());\n                };\n                //这里自增标签点击量\n                $tag_id = $tag_aid->keys();\n                $tagModel::whereIn('id', $tag_id)->increment('tag_click');\n            }\n        }\n        //获取所有文章\n        $show_article = $article_model::where($where_all_article)->where($where_tag)->orderBy('article_sort', 'desc')->orderBy('id', 'desc')->paginate(6);\n\n        //判断是否传入所属导航id\n        if ($nav_id) {\n            //获取随机4条文章\n            $random_article = $article_model::where('article_show', 1)->where('nav_id', $nav_id)->whereRaw(\"id >= (select floor(rand() * (select max(id) from `blog_nav_article`)))\")->take(4)->get();\n            //获取热门文章\n            $hot_article = $article_model::where('article_show', 1)->where('nav_id', $nav_id)->orderBy('article_click', 'desc')->take(6)->get();\n        } else {\n            //获取随机4条文章\n            $random_article = $article_model::where('article_show', 1)->whereRaw(\"id >= (select floor(rand() * (select max(id) from `blog_nav_article`)))\")->take(4)->get();\n            //获取热门文章\n            $hot_article = $article_model::where('article_show', 1)->orderBy('article_click', 'desc')->take(6)->get();\n        }\n\n        //获取最新的公告2条\n        $notice_model = new BlogNotice();\n        $notice_list  = $notice_model::where('notice_show', 1)->orderBy('notice_sort', 'desc')->orderBy('id', 'desc')->take(2)->get();\n        //背景颜色\n        $background_color = array('blue', 'green', 'yellow', 'brown', 'purple', 'orange');\n        shuffle($background_color);\n        //按钮颜色\n        $button_color = array('btn-primary', 'btn-info', 'btn-success', 'btn-danger', 'btn-warning', 'btn-default');\n        shuffle($button_color);\n        //星期数组\n        $week_list = array('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六');\n\n        //统计多少次阅读\n        $article_click = $article_model::where($where_all_article)->where($where_tag)->sum('article_click');\n        //统计留言条数\n        $message_model = new BlogMessage();\n        $total_msg     = $message_model->count();\n        //标签云\n        $tag_result = $tagModel::select(DB::raw('count(a_id) as article_count, FLOOR(0 + (RAND() * 6)) as tag_color,tag_content,sum(tag_click) as sum_click'))->groupBy('tag_content')->orderBy('sum_click', 'desc')->take(40)->get();\n        $tag_color  = define_badge_color();\n        return view('home.article.index', compact('random_article', 'show_article', 'background_color', 'hot_article', 'button_color', 'notice_list', 'week_list', 'search_title', 'tag_result', 'tag_color', 'article_click', 'total_msg'));\n    }\n\n    /**\n     * 订阅我\n     */\n    public function subscribe(StoreBlogSubscribePost $request)\n    {\n        $email_name          = $request->input('email_name');\n        $blogModel           = new BlogSubscribe();\n        $blogModel->email    = $email_name;\n        $blogModel->ip       = $request->getClientIp();\n        $blogModel->is_pass  = 1;\n        $blogModel->add_mode = 1;\n        $blogModel->save();\n\n        $result = array(\n            'status' => 1,\n            'msg'    => '订阅成功',\n            'result' => []\n        );\n        return response()->json($result);\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/ArticleDetailController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Http\\Requests\\StoreArticleMsgPost;\nuse App\\Models\\BlogMessage;\nuse App\\Models\\BlogNavArticle;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\nclass ArticleDetailController extends Controller\n{\n    /**\n     * 文章详情\n     */\n    public function index(Request $request)\n    {\n        $a_id           = $request->route('aid');\n        $articleModel   = new BlogNavArticle();\n        $article_result = $articleModel::find($a_id);\n        //获取上一篇文章\n        $previousPostID = $articleModel::where('article_show', 1)->where('nav_id', $article_result->nav_id)->where('id', '<', $a_id)->where('article_show', 1)->where('nav_id', $article_result->nav_id)->max('id');\n        $previousPostID = empty($previousPostID) ? $a_id : $previousPostID;\n        //获取下一篇文章\n        $nextPostID = $articleModel::where('article_show', 1)->where('nav_id', $article_result->nav_id)->where('id', '>', $a_id)->where('article_show', 1)->where('nav_id', $article_result->nav_id)->min('id');\n        $nextPostID = empty($nextPostID) ? $a_id : $nextPostID;\n        //获取本篇文章url\n        $article_url = url()->current();\n        //获取本篇文章所属留言\n        $article_message = BlogMessage::where('foreign_id', $a_id)->orderBy('id', 'desc')->paginate(6);\n        //获取留言的背景色\n        $bg_arr = define_background();\n        //获取徽章颜色\n        $badge_arr = define_badge_color();\n        //点击量自增\n        $articleModel::where('id', $a_id)->increment('article_click');\n\n        return view('home.article_details.index', compact('article_result', 'article_url', 'badge_arr', 'previousPostID', 'nextPostID', 'article_message', 'bg_arr'));\n    }\n\n    /**\n     * 文章留言\n     */\n    public function article_msg(StoreArticleMsgPost $request)\n    {\n        $msg_content                 = $request->msg_content;\n        $msg_blog_name               = $request->msg_blog_name;\n        $msg_blog_link               = $request->msg_blog_link;\n        $msg_blog_contact            = $request->msg_blog_contact;\n        $msg_type                    = $request->msg_type;\n        $foreign_id                  = $request->foreign_id;\n        $msgIp = BlogMessage::where('msg_ip', $request->getClientIp())->whereBetween('created_at',[date('Y-m-d'),date('Y-m-d 23:59:59')])->count();\n        if($msgIp > 6){\n            $result = array(\n                'status' => 0,\n                'msg'    => '由于经常遇到恶意留言，特此每个ip限制每日留言数量为6条，十分抱歉。'\n            );\n            return response()->json($result);\n        }\n\n        $blogModel                   = new BlogMessage();\n        $blogModel->msg_content      = $msg_content;\n        $blogModel->msg_blog_name    = $msg_blog_name;\n        $blogModel->msg_blog_link    = $msg_blog_link;\n        $blogModel->msg_blog_contact = $msg_blog_contact;\n        $blogModel->msg_ip           = $request->getClientIp();\n        $blogModel->msg_show         = 1;\n        $blogModel->msg_type         = $msg_type;\n        $blogModel->foreign_id       = $foreign_id;\n        $blogModel->save();\n        //获取留言的背景色\n        $bg_arr = define_background();\n        if ($msg_type == 3) {\n            $mas_div = '<div class=\"card\" data-background=\"color\" data-color=\"' . $bg_arr[rand(0, 5)] . '\"><div class=\"card-body\"><div class=\"author\"><a href=\"' . $msg_blog_link . '\" target=\"_blank\"><img src=\"' . asset(__STATIC_HOME__) . '/assets/img/qqhead.png\" alt=\"...\" class=\"avatar img-raised\"><span>' . $msg_blog_name . '</span></a></div><span class=\"category-social pull-right\"><i class=\"fa fa-quote-right\"></i></span><div class=\"clearfix\"></div><p class=\"card-description\">“' . $msg_content . '”</p></div></div>';\n        } else {\n            $mas_div = '<div class=\"col-sm-12 ml-auto\"><div class=\"card\" data-background=\"color\" data-color=\"' . $bg_arr[rand(0, 5)] . '\"><div class=\"card-body\"><div class=\"author\"><a href=\"' . $msg_blog_link . '\" target=\"_blank\"><img src=\"' . asset(__STATIC_HOME__) . '/assets/img/qqhead.png\" alt=\"...\" class=\"avatar img-raised\"><span>' . $msg_blog_name . '</span></a></div><span class=\"category-social pull-right\"><i class=\"fa fa-quote-right\"></i></span><div class=\"clearfix\"></div><p class=\"card-description\">“' . $msg_content . '”</p></div></div></div>';\n        }\n        $result = array(\n            'status' => 1,\n            'msg'    => '留言成功',\n            'result' => $mas_div\n        );\n        return response()->json($result);\n    }\n\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/CardOneController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogNavShareOne;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\nclass CardOneController extends Controller\n{\n    /**\n     * 卡片列表\n     */\n    public function index(Request $request)\n    {\n        $nav_id    = $request->route('nav_id');\n        $cardModel = new BlogNavShareOne();\n        if ($nav_id) {\n            $result_list = $cardModel::where('share_show', 1)->where('nav_id', $nav_id)->orderBy('share_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        } else {\n            $result_list = $cardModel::where('share_show', 1)->orderBy('share_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        }\n        return view('home.card1.index', compact('result_list'));\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/CardTwoController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogNavShareTwo;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\nclass CardTwoController extends Controller\n{\n    /**\n     * 卡片列表\n     */\n    public function index(Request $request)\n    {\n        $nav_id = $request->route('nav_id');\n\n        $cardModel = new BlogNavShareTwo();\n        if ($nav_id) {\n            $result_list = $cardModel::where('share_show', 1)->where('nav_id', $nav_id)->orderBy('share_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        } else {\n            $result_list = $cardModel::where('share_show', 1)->orderBy('share_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        }\n        return view('home.card2.index', compact('result_list'));\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/FriendsController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Home;\n\nuse App\\Http\\Requests\\StoreBlogFriendsPost;\nuse App\\Models\\BlogFriends;\nuse App\\Http\\Controllers\\Controller;\n\nclass FriendsController extends Controller\n{\n    /**\n     * Desc:友情链接展示\n     * Date:2019/9/3/003\n     */\n    public function index(BlogFriends $blogFriends)\n    {\n        //1.获取友情链接\n        $recommend_link = $blogFriends::where('friends_show', 1)->where('friends_examine', 1)->orderBy('friends_sort', 'desc')->orderBy('id', 'asc')->get();\n        $recommend_list = collect();\n        $normal_list    = collect();\n        foreach ($recommend_link as $item) {\n            $item->friends_img = empty($item->friends_img) ? config('app.default_avatar') : $item->friends_img;\n            if ($item->friends_recommend == 1) {\n                $recommend_list->push($item);\n            } else {\n                $normal_list->push($item);\n            }\n        }\n        return view('home.friends.index')->with('recommend_list', $recommend_list)->with('normal_list', $normal_list);\n    }\n\n    public function store(StoreBlogFriendsPost $request)\n    {\n        $friends_title               = $request->input('friends_title');\n        $friends_link                = $request->input('friends_link');\n        $friends_contact             = $request->input('friends_contact');\n        $blogModel                   = new BlogFriends();\n        $blogModel->friends_title    = $friends_title;\n        $blogModel->friends_link     = $friends_link;\n        $blogModel->friends_describe = '';\n        $blogModel->friends_contact  = $friends_contact;\n        $blogModel->friends_show     = 2;\n        $blogModel->friends_type     = 1;\n        $blogModel->save();\n\n        $result = array(\n            'status' => 1,\n            'msg'    => '申请成功',\n            'result' => []\n        );\n        return json_encode($result, true);\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/IndexController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\Home;\n\nuse App\\Http\\Controllers\\Controller;\n\nclass IndexController extends Controller\n{\n    //进入网站首页\n    public function index()\n    {\n        return view('home.index.index');\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/MessageController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogMessage;\nuse App\\Http\\Controllers\\Controller;\n\nclass MessageController extends Controller\n{\n    /**\n     * 留言列表\n     */\n    public function index()\n    {\n        $blogModel   = new BlogMessage();\n        $result_list = $blogModel::where('msg_show', 1)->where('msg_type', 3)->orderBy('id', 'desc')->paginate(6);\n\n        //获取留言的背景色\n        $bg_arr = define_background();\n        return view('home.message.index', compact('result_list', 'bg_arr'));\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/MusicController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogNavMusic;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\nclass MusicController extends Controller\n{\n    /**\n     * 音乐歌单\n     */\n    public function index(Request $request)\n    {\n        $nav_id = $request->route('nav_id');\n\n        $music_model = new BlogNavMusic();\n        if ($nav_id) {\n            $music_result = $music_model::where('nav_id', $nav_id)->where('music_show', 1)->orderBy('music_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        } else {\n            $music_result = $music_model::where('music_show', 1)->orderBy('music_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        }\n        return view('home.music.index')->with('music_result', $music_result);\n    }\n\n    /**\n     * 音乐歌单详情列表\n     */\n    public function music_details(Request $request, BlogNavMusic $musicModel)\n    {\n        $mid          = $request->route('mid');\n        $music_result = $musicModel::find($mid);\n        //获取徽章颜色\n        $badge_arr = define_badge_color();\n        //点击量自增\n        $musicModel::where('id', $mid)->increment('music_click');\n        return view('home.music.music_details', compact('music_result', 'badge_arr'));\n    }\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/PhotoController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogNavPhoto;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\n/**\n * Class PhotoController\n * @package App\\Http\\Controllers\\home\n */\nclass PhotoController extends Controller\n{\n    /**\n     * 相册列表\n     */\n    public function index(Request $request)\n    {\n        $nav_id      = $request->route('nav_id');\n        $photo_model = new BlogNavPhoto();\n        if ($nav_id) {\n            $photo_result = $photo_model::where('nav_id', $nav_id)->where('photo_show', 1)->orderBy('photo_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        } else {\n            $photo_result = $photo_model::where('photo_show', 1)->orderBy('photo_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        }\n\n        return view('home.photo.index', compact('photo_result'));\n    }\n\n    /**\n     * 相册详情\n     */\n    public function photo_details(Request $request, BlogNavPhoto $photoModel)\n    {\n        $pid            = $request->route('pid');\n        $details_result = $photoModel::find($pid);\n        $photo_result   = empty($details_result->photo_json) ? [] : $details_result->photo_json;\n        //点击量自增\n        $photoModel::where('id', $pid)->increment('photo_click');\n        return view('home.photo.photo_details', compact('photo_result', 'details_result'));\n    }\n\n}\n"
  },
  {
    "path": "app/Http/Controllers/Home/VideoController.php",
    "content": "<?php\n\nnamespace App\\Http\\Controllers\\home;\n\nuse App\\Models\\BlogMessage;\nuse App\\Models\\BlogNavVideo;\nuse Illuminate\\Http\\Request;\nuse App\\Http\\Controllers\\Controller;\n\nclass VideoController extends Controller\n{\n    /**\n     * 视频列表\n     */\n    public function index(Request $request)\n    {\n        $nav_id      = $request->route('nav_id');\n        $video_model = new BlogNavVideo();\n        if ($nav_id) {\n            $recommended_video = $video_model::where('nav_id', $nav_id)->where('video_show', 1)->where('video_recommend', 1)->limit(8)->orderBy('video_sort', 'desc')->orderBy('id', 'desc')->get();\n            //视频数据集\n            $video_result = $video_model::where('nav_id', $nav_id)->where('video_show', 1)->orderBy('video_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        } else {\n            $recommended_video = $video_model::where('video_show', 1)->where('video_recommend', 1)->limit(8)->orderBy('video_sort', 'desc')->orderBy('id', 'desc')->get();\n            //视频数据集\n            $video_result = $video_model::where('video_show', 1)->orderBy('video_sort', 'desc')->orderBy('id', 'desc')->paginate(8);\n        }\n        return view('home.video.index', compact('video_result', 'recommended_video'));\n    }\n\n    /**\n     * 视频详情\n     */\n    public function video_details(Request $request, BlogNavVideo $videoModel)\n    {\n        $vid          = $request->route('vid');\n        $video_result = $videoModel::find($vid);\n        //获取本篇视频所属留言\n        $video_message = BlogMessage::where('foreign_id', $vid)->orderBy('id', 'desc')->paginate(6);\n        //获取留言的背景色\n        $bg_arr = define_background();\n        //获取徽章颜色\n        $badge_arr = define_badge_color();\n        //点击量自增\n        $videoModel::where('id', $vid)->increment('video_click');\n        return view('home.video.video_details', compact('video_result', 'video_message', 'bg_arr', 'badge_arr'));\n    }\n}\n"
  },
  {
    "path": "app/Http/Kernel.php",
    "content": "<?php\n\nnamespace App\\Http;\n\nuse Illuminate\\Foundation\\Http\\Kernel as HttpKernel;\n\nclass Kernel extends HttpKernel\n{\n    /**\n     * The application's global HTTP middleware stack.\n     *\n     * These middleware are run during every request to your application.\n     *\n     * @var array\n     */\n    protected $middleware = [\n        \\App\\Http\\Middleware\\CheckForMaintenanceMode::class,\n        \\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize::class,\n        \\App\\Http\\Middleware\\TrimStrings::class,\n        \\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull::class,\n        \\App\\Http\\Middleware\\TrustProxies::class,\n    ];\n\n    /**\n     * The application's route middleware groups.\n     *\n     * @var array\n     */\n    protected $middlewareGroups = [\n        'web' => [\n            \\App\\Http\\Middleware\\EncryptCookies::class,\n            \\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse::class,\n            \\Illuminate\\Session\\Middleware\\StartSession::class,\n            // \\Illuminate\\Session\\Middleware\\AuthenticateSession::class,\n            \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class,\n            \\App\\Http\\Middleware\\VerifyCsrfToken::class,\n            \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,\n        ],\n\n        'api' => [\n            'throttle:60,1',\n            'bindings',\n        ],\n    ];\n\n    /**\n     * The application's route middleware.\n     *\n     * These middleware may be assigned to groups or used individually.\n     *\n     * @var array\n     */\n    protected $routeMiddleware = [\n        'auth' => \\App\\Http\\Middleware\\Authenticate::class,\n        'auth.basic' => \\Illuminate\\Auth\\Middleware\\AuthenticateWithBasicAuth::class,\n        'bindings' => \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,\n        'cache.headers' => \\Illuminate\\Http\\Middleware\\SetCacheHeaders::class,\n        'can' => \\Illuminate\\Auth\\Middleware\\Authorize::class,\n        'guest' => \\App\\Http\\Middleware\\RedirectIfAuthenticated::class,\n        'signed' => \\Illuminate\\Routing\\Middleware\\ValidateSignature::class,\n        'throttle' => \\Illuminate\\Routing\\Middleware\\ThrottleRequests::class,\n        'verified' => \\Illuminate\\Auth\\Middleware\\EnsureEmailIsVerified::class,\n        'laravel_pjax' =>\\Spatie\\Pjax\\Middleware\\FilterIfPjax::class,\n    ];\n\n    /**\n     * The priority-sorted list of middleware.\n     *\n     * This forces non-global middleware to always be in the given order.\n     *\n     * @var array\n     */\n    protected $middlewarePriority = [\n        \\Illuminate\\Session\\Middleware\\StartSession::class,\n        \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class,\n        \\App\\Http\\Middleware\\Authenticate::class,\n        \\Illuminate\\Session\\Middleware\\AuthenticateSession::class,\n        \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,\n        \\Illuminate\\Auth\\Middleware\\Authorize::class,\n    ];\n}\n"
  },
  {
    "path": "app/Http/Middleware/AetherUploadCORS.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Closure;\nuse AetherUpload\\ConfigMapper;\n\nclass AetherUploadCORS\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request $request\n     * @param  \\Closure $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        $origin = $request->server('HTTP_ORIGIN') ?: '';\n\n        if ( in_array($origin, ConfigMapper::get('distributed_deployment_allow_origin')) ) {\n            $response->header('Access-Control-Allow-Origin', $origin); # 允许的来源域名\n            $response->header('Access-Control-Allow-Headers', 'X-CSRF-TOKEN'); # 允许的请求头部字段\n            $response->header('Access-Control-Allow-Methods', 'POST, OPTIONS'); # 允许的请求方法\n            $response->header('Access-Control-Allow-Credentials', 'true'); # 是否允许携带cookie\n            $response->header('Access-Control-Max-Age', '3600'); # 预检请求缓存时间\n            # 添加其它自定义内容\n        }\n\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "app/Http/Middleware/Authenticate.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Auth\\Middleware\\Authenticate as Middleware;\n\nclass Authenticate extends Middleware\n{\n    /**\n     * Get the path the user should be redirected to when they are not authenticated.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return string\n     */\n    protected function redirectTo($request)\n    {\n        if (! $request->expectsJson()) {\n            return route('login');\n        }\n    }\n}\n"
  },
  {
    "path": "app/Http/Middleware/CheckForMaintenanceMode.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Closure;\nuse Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode as Middleware;\n\nclass CheckForMaintenanceMode extends Middleware\n{\n    /**\n     * The URIs that should be reachable while maintenance mode is enabled.\n     *\n     * @var array\n     */\n    protected $except = [\n        'http://www.qqphp.com/admin',\n        'http://www.qqphp.com/admin/*'\n    ];\n}\n"
  },
  {
    "path": "app/Http/Middleware/EncryptCookies.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Cookie\\Middleware\\EncryptCookies as Middleware;\n\nclass EncryptCookies extends Middleware\n{\n    /**\n     * The names of the cookies that should not be encrypted.\n     *\n     * @var array\n     */\n    protected $except = [\n        //\n    ];\n}\n"
  },
  {
    "path": "app/Http/Middleware/RedirectIfAuthenticated.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Closure;\nuse Illuminate\\Support\\Facades\\Auth;\n\nclass RedirectIfAuthenticated\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string|null  $guard\n     * @return mixed\n     */\n    public function handle($request, Closure $next, $guard = null)\n    {\n        if (Auth::guard($guard)->check()) {\n            return redirect('/home');\n        }\n\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "app/Http/Middleware/TrimStrings.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Foundation\\Http\\Middleware\\TrimStrings as Middleware;\n\nclass TrimStrings extends Middleware\n{\n    /**\n     * The names of the attributes that should not be trimmed.\n     *\n     * @var array\n     */\n    protected $except = [\n        'password',\n        'password_confirmation',\n    ];\n}\n"
  },
  {
    "path": "app/Http/Middleware/TrustProxies.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Http\\Request;\nuse Fideloper\\Proxy\\TrustProxies as Middleware;\n\nclass TrustProxies extends Middleware\n{\n    /**\n     * The trusted proxies for this application.\n     *\n     * @var array|string\n     */\n    protected $proxies;\n\n    /**\n     * The headers that should be used to detect proxies.\n     *\n     * @var int\n     */\n    protected $headers = Request::HEADER_X_FORWARDED_ALL;\n}\n"
  },
  {
    "path": "app/Http/Middleware/VerifyCsrfToken.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken as Middleware;\n\nclass VerifyCsrfToken extends Middleware\n{\n    /**\n     * Indicates whether the XSRF-TOKEN cookie should be set on the response.\n     *\n     * @var bool\n     */\n    protected $addHttpCookie = true;\n\n    /**\n     * The URIs that should be excluded from CSRF verification.\n     *\n     * @var array\n     */\n    protected $except = [\n        'admin/blog-upload-files',\n        'live2d_api/*',\n    ];\n}\n"
  },
  {
    "path": "app/Http/Requests/StoreArticleMsgPost.php",
    "content": "<?php\n\nnamespace App\\Http\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormRequest;\n\nclass StoreArticleMsgPost extends FormRequest\n{\n    /**\n     * Determine if the user is authorized to make this request.\n     *\n     * @return bool\n     */\n    public function authorize()\n    {\n        return true;\n    }\n\n    /**\n     * Get the validation rules that apply to the request.\n     *\n     * @return array\n     */\n    public function rules()\n    {\n        return [\n            'msg_content' => 'required',\n            'msg_blog_name' => 'required|max:40',\n            'msg_blog_link' => 'required|url',\n            'msg_blog_contact' => 'required|max:40',\n            'foreign_id' => 'required|integer',\n            'msg_type' => 'required|integer',\n        ];\n    }\n\n    public function attributes()\n    {\n        return [\n            'msg_content' => '留言内容',\n            'msg_blog_name' => '博客名称',\n            'msg_blog_link' => '博客网址',\n            'msg_blog_contact' => '联系方式',\n            'foreign_id' => '参数ID',\n            'msg_type' => '留言板块'\n        ];\n    }\n}\n"
  },
  {
    "path": "app/Http/Requests/StoreBlogFriendsPost.php",
    "content": "<?php\n\nnamespace App\\Http\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormRequest;\n\nclass StoreBlogFriendsPost extends FormRequest\n{\n    /**\n     * Determine if the user is authorized to make this request.\n     *\n     * @return bool\n     */\n    public function authorize()\n    {\n        return true;\n    }\n\n    /**\n     * Get the validation rules that apply to the request.\n     *\n     * @return array\n     */\n    public function rules()\n    {\n        return [\n            'friends_title' => 'bail|required|max:40',\n            'friends_link' => 'bail|required|url|max:40|unique:blog_friends',\n            'friends_contact' => 'bail|required|max:40',\n        ];\n    }\n\n    public function attributes()\n    {\n        return [\n            'friends_title' => '博客名称',\n            'friends_link' => '博客网址',\n            'friends_contact' => '联系方式',\n        ];\n    }\n}\n"
  },
  {
    "path": "app/Http/Requests/StoreBlogSubscribePost.php",
    "content": "<?php\n\nnamespace App\\Http\\Requests;\n\nuse Illuminate\\Foundation\\Http\\FormRequest;\n\nclass StoreBlogSubscribePost extends FormRequest\n{\n    /**\n     * Determine if the user is authorized to make this request.\n     *\n     * @return bool\n     */\n    public function authorize()\n    {\n        return true;\n    }\n\n    /**\n     * Get the validation rules that apply to the request.\n     *\n     * @return array\n     */\n    public function rules()\n    {\n        return [\n            'email_name' => 'required|email|unique:blog_subscribes,email'\n        ];\n    }\n\n    public function attributes()\n    {\n        return [\n            'email_name' => '订阅邮箱'\n        ];\n    }\n}\n"
  },
  {
    "path": "app/Jobs/ProcessPodcast.php",
    "content": "<?php\n\nnamespace App\\Jobs;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\n\nclass ProcessPodcast implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    /**\n     * 任务可以尝试的最大次数。\n     *\n     * @var int\n     */\n    public $tries = 3;\n\n    /**\n     * 任务可以执行的最大秒数 (超时时间)。\n     *\n     * @var int\n     */\n    public $timeout = 30;\n\n    /**\n     * 创建一个新的任务实例。\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * 运行任务。\n     *\n     * Execute the job.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Jobs/SendReminderEmail.php",
    "content": "<?php\n\nnamespace App\\Jobs;\n\nuse App\\Mail\\ArticleMail;\nuse App\\Models\\BlogNavArticle;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Support\\Facades\\Mail;\n\nclass SendReminderEmail implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    /**\n     * 任务可以尝试的最大次数。\n     *\n     * @var int\n     */\n    private $tries = 3;\n\n    /**\n     * 任务可以执行的最大秒数 (超时时间)。\n     *\n     * @var int\n     */\n    private $timeout = 30;\n\n    /**\n     * 文章内容实例模型\n     */\n    protected $blogNavArticle;\n\n\n    protected $email;\n\n    /**\n     * Create a new job instance.\n     *\n     * @return void\n     */\n    public function __construct(BlogNavArticle $blogNavArticle,$email)\n    {\n        $this->blogNavArticle = $blogNavArticle;\n        $this->email = $email;\n    }\n\n    /**\n     * Execute the job.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        Mail::to($this->email)->send(new ArticleMail($this->blogNavArticle));\n\n//        $email_list = BlogSubscribe::where('is_pass',2)->pluck('email');\n//        Mail::to('1549684884@qq.com')->send(new ArticleMail($this->blogNavArticle));\n//        foreach ($email_list as $k => $v){\n//            Mail::to($v)->send(new ArticleMail($this->blogNavArticle));\n//        }\n    }\n}\n"
  },
  {
    "path": "app/Mail/ArticleMail.php",
    "content": "<?php\n\nnamespace App\\Mail;\n\nuse App\\Models\\BlogNavArticle;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Mail\\Mailable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass ArticleMail extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    //文章实例\n    protected $article;\n\n    /**\n     * Create a new message instance.\n     *\n     * @return void\n     */\n    public function __construct(BlogNavArticle $blogArticle)\n    {\n        $this->article = $blogArticle;\n    }\n\n    /**\n     * Build the message.\n     *\n     * @return $this\n     */\n    public function build()\n    {\n        $article_title = $this->article->getAttributeValue('article_title');\n        $aid           = $this->article->getAttributeValue('id');\n        return $this\n            ->from('1549684884@qq.com', '雷勇')\n            ->subject(config('base.website_title') . '-订阅文章更新-' . date('Y-m-d'))\n            ->view('mail.index')\n            ->with([\n                'title' => $article_title,\n                'url'   => url('/article_details', ['aid' => $aid])\n            ]);\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogAbout.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogAbout extends Model\n{\n    protected $table = 'blog_about';\n\n    public function article()\n    {\n        return $this->hasOne(BlogAboutArticle::class, 'notice_id');\n    }\n\n    public function card1()\n    {\n        return $this->hasMany(BlogAboutCardOne::class, 'notice_id');\n    }\n\n    public function card2()\n    {\n        return $this->hasMany(BlogAboutCardTwo::class, 'notice_id');\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogAboutArticle.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogAboutArticle extends Model\n{\n    protected $table = 'blog_about_articles';\n}\n"
  },
  {
    "path": "app/Models/BlogAboutCardOne.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogAboutCardOne extends Model\n{\n    protected $table = 'blog_about_card_ones';\n}\n"
  },
  {
    "path": "app/Models/BlogAboutCardTwo.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogAboutCardTwo extends Model\n{\n    protected $table = 'blog_about_card_twos';\n}\n"
  },
  {
    "path": "app/Models/BlogFriends.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogFriends extends Model\n{\n    protected $table = 'blog_friends';\n}\n"
  },
  {
    "path": "app/Models/BlogMessage.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogMessage extends Model\n{\n    protected $table = 'blog_message';\n}\n"
  },
  {
    "path": "app/Models/BlogNav.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Encore\\Admin\\Traits\\ModelTree;\nuse Encore\\Admin\\Traits\\AdminBuilder;\n\nclass BlogNav extends Model\n{\n    use ModelTree, AdminBuilder;\n    protected $table = 'blog_nav';\n\n    public function __construct(array $attributes = [])\n    {\n        parent::__construct($attributes);\n\n        $this->setParentColumn('nav_pid');\n        $this->setOrderColumn('nav_sort');\n        $this->setTitleColumn('nav_title');\n    }\n\n    public function getTree()\n    {\n        $get_data = BlogNav::orderBy('id', 'asc')->get()->toArray();\n        return modelTree($get_data);\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogNavArticle.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavArticle extends Model\n{\n    protected $table = 'blog_nav_article';\n\n\n    /**\n     * Desc:关联导航\n     * Date:2019/9/4/004\n     */\n    public function nav_name()\n    {\n        return $this->belongsTo(BlogNav::class, 'nav_id');\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogNavMusic.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavMusic extends Model\n{\n    protected $table = 'blog_nav_music';\n\n    public function setMusicJsonAttribute($pictures)\n    {\n        if (is_array($pictures)) {\n            $this->attributes['music_json'] = json_encode($pictures);\n        }\n    }\n\n    public function getMusicJsonAttribute($pictures)\n    {\n        return json_decode($pictures, true);\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogNavPhoto.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavPhoto extends Model\n{\n    protected $table = 'blog_nav_photo';\n\n    public function setPhotoJsonAttribute($image)\n    {\n        if (is_array($image)) {\n            $this->attributes['photo_json'] = json_encode($image);\n        }\n    }\n\n    public function getPhotoJsonAttribute($image)\n    {\n        return json_decode($image, true);\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogNavShareOne.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavShareOne extends Model\n{\n    protected $table = 'blog_nav_share1';\n\n    /**\n     * Desc:关联导航\n     * Date:2019/9/4/004\n     */\n    public function nav_name()\n    {\n        return $this->belongsTo(BlogNav::class, 'nav_id');\n    }\n}"
  },
  {
    "path": "app/Models/BlogNavShareTwo.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavShareTwo extends Model\n{\n    protected $table = 'blog_nav_share2';\n\n    /**\n     * Desc:关联导航\n     * Date:2019/9/4/004\n     */\n    public function nav_name()\n    {\n        return $this->belongsTo(BlogNav::class, 'nav_id');\n    }\n}\n"
  },
  {
    "path": "app/Models/BlogNavVideo.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNavVideo extends Model\n{\n    protected $table = 'blog_nav_video';\n}\n"
  },
  {
    "path": "app/Models/BlogNotice.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogNotice extends Model\n{\n    protected $table = 'blog_notices';\n}\n"
  },
  {
    "path": "app/Models/BlogSubscribe.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\n\nclass BlogSubscribe extends Model\n{\n    protected $table = 'blog_subscribes';\n}\n"
  },
  {
    "path": "app/Models/BlogTag.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogTag extends Model\n{\n    protected $table = 'blog_tags';\n}\n"
  },
  {
    "path": "app/Models/BlogUploadFile.php",
    "content": "<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass BlogUploadFile extends Model\n{\n    protected $table = 'blog_upload_files';\n}\n"
  },
  {
    "path": "app/Observers/BlogAboutCardTwoObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogAboutCardTwo;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogAboutCardTwoObserver\n{\n    /**\n     * Handle the blog about card two \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogAboutCardTwo  $blogAboutCardTwo\n     * @return void\n     */\n    public function created(BlogAboutCardTwo $blogAboutCardTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog about card two \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogAboutCardTwo  $blogAboutCardTwo\n     * @return void\n     */\n    public function updated(BlogAboutCardTwo $blogAboutCardTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog about card two \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogAboutCardTwo  $blogAboutCardTwo\n     * @return void\n     */\n    public function deleted(BlogAboutCardTwo $blogAboutCardTwo)\n    {\n        $card_background = $blogAboutCardTwo->getOriginal('card_background');\n        if($card_background){\n            Storage::disk('admin')->delete($card_background);\n        }\n    }\n\n    /**\n     * Handle the blog about card two \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogAboutCardTwo  $blogAboutCardTwo\n     * @return void\n     */\n    public function restored(BlogAboutCardTwo $blogAboutCardTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog about card two \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogAboutCardTwo  $blogAboutCardTwo\n     * @return void\n     */\n    public function forceDeleted(BlogAboutCardTwo $blogAboutCardTwo)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogConfigObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse Encore\\Admin\\Config\\ConfigModel;\n\nclass BlogConfigObserver\n{\n    /**\n     * Handle the config model \"created\" event.\n     *\n     * @param  Encore\\Admin\\Config\\ConfigModel  $configModel\n     * @return void\n     */\n    public function created(ConfigModel $configModel)\n    {\n    }\n\n    /**\n     * Handle the config model \"updated\" event.\n     *\n     * @param  Encore\\Admin\\Config\\ConfigModel  $configModel\n     * @return void\n     */\n    public function updated(ConfigModel $configModel)\n    {\n    }\n\n    /**\n     * Handle the config model \"deleted\" event.\n     *\n     * @param  Encore\\Admin\\Config\\ConfigModel  $configModel\n     * @return void\n     */\n    public function deleted(ConfigModel $configModel)\n    {\n    }\n\n    /**\n     * Handle the config model \"restored\" event.\n     *\n     * @param  Encore\\Admin\\Config\\ConfigModel  $configModel\n     * @return void\n     */\n    public function restored(ConfigModel $configModel)\n    {\n    }\n\n    /**\n     * Handle the config model \"force deleted\" event.\n     *\n     * @param  Encore\\Admin\\Config\\ConfigModel  $configModel\n     * @return void\n     */\n    public function forceDeleted(ConfigModel $configModel)\n    {\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogFriendsObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogFriends;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogFriendsObserver\n{\n    /**\n     * Handle the blog friends \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogFriends  $blogFriends\n     * @return void\n     */\n    public function created(BlogFriends $blogFriends)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog friends \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogFriends  $blogFriends\n     * @return void\n     */\n    public function updated(BlogFriends $blogFriends)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog friends \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogFriends  $blogFriends\n     * @return void\n     */\n    public function deleted(BlogFriends $blogFriends)\n    {\n\n    }\n\n    /**\n     * Handle the blog friends \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogFriends  $blogFriends\n     * @return void\n     */\n    public function restored(BlogFriends $blogFriends)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog friends \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogFriends  $blogFriends\n     * @return void\n     */\n    public function forceDeleted(BlogFriends $blogFriends)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavArticleObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Jobs\\SendReminderEmail;\nuse App\\Models\\BlogNavArticle;\nuse App\\Models\\BlogTag;\nuse App\\Models\\BlogSubscribe;\n\nclass BlogNavArticleObserver\n{\n    /**\n     * Handle the blog nav article \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNavArticle  $blogNavArticle\n     * @return void\n     */\n    public function created(BlogNavArticle $blogNavArticle)\n    {\n\n        $a_id = $blogNavArticle->getAttributeValue('id');\n        $article_tag = $blogNavArticle->getAttributeValue('article_tag');\n        if(trim($article_tag)){\n            $tag_array = explode(',',$article_tag);\n\n            foreach ($tag_array as $item) {\n                $tagModel = new BlogTag();\n                $tagModel->tag_content = $item;\n                $tagModel->tag_click = 0;\n                $tagModel->a_id = $a_id;\n                $tagModel->save();\n            }\n            $email_list = BlogSubscribe::where('is_pass',2)->pluck('email');\n            foreach ($email_list as $k => $v){\n                //调用队列\n                SendReminderEmail::dispatch($blogNavArticle,$v);\n            }\n        }\n    }\n\n    /**\n     * Handle the blog nav article \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNavArticle  $blogNavArticle\n     * @return void\n     */\n    public function updated(BlogNavArticle $blogNavArticle)\n    {\n        $a_id = $blogNavArticle->getAttributeValue('id');\n        $tagModel = new BlogTag();\n        $tag_article = $tagModel::where('a_id','=',$a_id)->get();\n        //现在的标签\n        $origin_tag = $blogNavArticle->getAttributeValue('article_tag');\n        $tag_new = empty($origin_tag) ? [] : explode(',',$origin_tag);\n        $tag_old = array();\n        foreach ($tag_article as $item) {\n            //判断旧的标签是否在最新的标签中\n            if(!in_array($item->tag_content,$tag_new)){\n                BlogTag::destroy($item->id);\n            };\n            $tag_old[] = $item->tag_content;\n        }\n        $diff_tag = array_diff($tag_new,$tag_old);\n        foreach ($diff_tag as $item) {\n            $tagModel = new BlogTag();\n            $tagModel->tag_content = $item;\n            $tagModel->tag_click = 0;\n            $tagModel->a_id = $a_id;\n            $tagModel->save();\n        }\n    }\n\n    /**\n     * Handle the blog nav article \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavArticle  $blogNavArticle\n     * @return void\n     */\n    public function deleted(BlogNavArticle $blogNavArticle)\n    {\n        $aid = $blogNavArticle->getOriginal('id');\n        BlogTag::where('a_id',$aid)->delete();\n    }\n\n    /**\n     * Handle the blog nav article \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNavArticle  $blogNavArticle\n     * @return void\n     */\n    public function restored(BlogNavArticle $blogNavArticle)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav article \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavArticle  $blogNavArticle\n     * @return void\n     */\n    public function forceDeleted(BlogNavArticle $blogNavArticle)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavMusicObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNavMusic;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogNavMusicObserver\n{\n    /**\n     * Handle the blog nav music \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNavMusic  $blogNavMusic\n     * @return void\n     */\n    public function created(BlogNavMusic $blogNavMusic)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav music \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNavMusic  $blogNavMusic\n     * @return void\n     */\n    public function updated(BlogNavMusic $blogNavMusic)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav music \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavMusic  $blogNavMusic\n     * @return void\n     */\n    public function deleted(BlogNavMusic $blogNavMusic)\n    {\n        $music_img = $blogNavMusic->getOriginal('music_img');\n        //删除封面图\n        if($music_img){\n            Storage::disk('admin')->delete($music_img);\n        }\n        //删除所属文件\n        $music_json = $blogNavMusic->music_json;\n        if($music_json){\n            Storage::disk('admin')->delete($music_json);\n        }\n    }\n\n    /**\n     * Handle the blog nav music \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNavMusic  $blogNavMusic\n     * @return void\n     */\n    public function restored(BlogNavMusic $blogNavMusic)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav music \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavMusic  $blogNavMusic\n     * @return void\n     */\n    public function forceDeleted(BlogNavMusic $blogNavMusic)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNav;\nuse App\\Models\\BlogNavArticle;\nuse App\\Models\\BlogNavMusic;\nuse App\\Models\\BlogNavPhoto;\nuse App\\Models\\BlogNavShareOne;\nuse App\\Models\\BlogNavShareTwo;\nuse App\\Models\\BlogNavVideo;\n\nclass BlogNavObserver\n{\n    /**\n     * Handle the blog nav \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNav $blogNav\n     * @return void\n     */\n    public function created(BlogNav $blogNav)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNav $blogNav\n     * @return void\n     */\n    public function updated(BlogNav $blogNav)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNav $blogNav\n     * @return void\n     */\n    public function deleted(BlogNav $blogNav)\n    {\n        $nav_id = $blogNav->getOriginal('id');\n        //删除下级导航\n        $data_nav = BlogNav::where('nav_pid', $nav_id)->get();\n        foreach ($data_nav as $k => $v){\n            BlogNav::destroy($v->id);\n        }\n        //删除所属文章、视频、相册、分享等\n        $data_article = BlogNavArticle::where('nav_id', $nav_id)->get();\n        foreach ($data_article as $k =>$v) {\n            BlogNavArticle::destroy($v->id);\n        }\n        $data_music = BlogNavMusic::where('nav_id', $nav_id)->get();\n        foreach ($data_music as $k =>$v) {\n            BlogNavMusic::destroy($v->id);\n        }\n        $data_video = BlogNavVideo::where('nav_id', $nav_id)->get();\n        foreach ($data_video as $k =>$v) {\n            BlogNavVideo::destroy($v->id);\n        }\n        $data_photo = BlogNavPhoto::where('nav_id', $nav_id)->get();\n        foreach ($data_photo as $k =>$v) {\n            BlogNavPhoto::destroy($v->id);\n        }\n        $data_one = BlogNavShareOne::where('nav_id', $nav_id)->get();\n        foreach ($data_one as $k =>$v) {\n            BlogNavShareOne::destroy($v->id);\n        }\n        $data_two = BlogNavShareTwo::where('nav_id', $nav_id)->get();\n        foreach ($data_two as $k =>$v) {\n            BlogNavShareTwo::destroy($v->id);\n        }\n    }\n\n    /**\n     * Handle the blog nav \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNav $blogNav\n     * @return void\n     */\n    public function restored(BlogNav $blogNav)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNav $blogNav\n     * @return void\n     */\n    public function forceDeleted(BlogNav $blogNav)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavPhotoObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNavPhoto;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogNavPhotoObserver\n{\n    /**\n     * Handle the blog nav photo \"created\" event.\n     *\n     * @param  App\\Models\\BlogNavPhoto;\n     * @return void\n     */\n    public function created(BlogNavPhoto $blogNavPhoto)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav photo \"updated\" event.\n     *\n     * @param  App\\Models\\BlogNavPhoto;\n     * @return void\n     */\n    public function updated(BlogNavPhoto $blogNavPhoto)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav photo \"deleted\" event.\n     *\n     * @param  App\\Models\\BlogNavPhoto;\n     * @return void\n     */\n    public function deleted(BlogNavPhoto $blogNavPhoto)\n    {\n        $photo_img = $blogNavPhoto->getOriginal('photo_img');\n        //删除封面图\n        if($photo_img){\n            Storage::disk('admin')->delete($photo_img);\n        }\n        //删除所属相册图片\n        $photo_json = $blogNavPhoto->photo_json;\n        if($photo_json){\n            Storage::disk('admin')->delete($photo_json);\n        }\n    }\n\n    /**\n     * Handle the blog nav photo \"restored\" event.\n     *\n     * @param  \\App\\app\\Models\\BlogNavPhoto  $blogNavPhoto\n     * @return void\n     */\n    public function restored(BlogNavPhoto $blogNavPhoto)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav photo \"force deleted\" event.\n     *\n     * @param  \\App\\app\\Models\\BlogNavPhoto  $blogNavPhoto\n     * @return void\n     */\n    public function forceDeleted(BlogNavPhoto $blogNavPhoto)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavShareOneObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNavShareOne;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogNavShareOneObserver\n{\n    /**\n     * Handle the blog nav share one \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareOne  $blogNavShareOne\n     * @return void\n     */\n    public function created(BlogNavShareOne $blogNavShareOne)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share one \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareOne  $blogNavShareOne\n     * @return void\n     */\n    public function updated(BlogNavShareOne $blogNavShareOne)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share one \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareOne  $blogNavShareOne\n     * @return void\n     */\n    public function deleted(BlogNavShareOne $blogNavShareOne)\n    {\n        $share_src = $blogNavShareOne->getOriginal('share_src');\n        if($share_src){\n            Storage::disk('admin')->delete($share_src);\n        }\n    }\n\n    /**\n     * Handle the blog nav share one \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareOne  $blogNavShareOne\n     * @return void\n     */\n    public function restored(BlogNavShareOne $blogNavShareOne)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share one \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareOne  $blogNavShareOne\n     * @return void\n     */\n    public function forceDeleted(BlogNavShareOne $blogNavShareOne)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavShareTwoObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNavShareTwo;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogNavShareTwoObserver\n{\n    /**\n     * Handle the blog nav share two \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareTwo  $blogNavShareTwo\n     * @return void\n     */\n    public function created(BlogNavShareTwo $blogNavShareTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share two \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareTwo  $blogNavShareTwo\n     * @return void\n     */\n    public function updated(BlogNavShareTwo $blogNavShareTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share two \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareTwo  $blogNavShareTwo\n     * @return void\n     */\n    public function deleted(BlogNavShareTwo $blogNavShareTwo)\n    {\n        $share_src = $blogNavShareTwo->getOriginal('share_src');\n        if($share_src){\n            Storage::disk('admin')->delete($share_src);\n        }\n    }\n\n    /**\n     * Handle the blog nav share two \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareTwo  $blogNavShareTwo\n     * @return void\n     */\n    public function restored(BlogNavShareTwo $blogNavShareTwo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav share two \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavShareTwo  $blogNavShareTwo\n     * @return void\n     */\n    public function forceDeleted(BlogNavShareTwo $blogNavShareTwo)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Observers/BlogNavVideoObserver.php",
    "content": "<?php\n\nnamespace App\\Observers;\n\nuse App\\Models\\BlogNavVideo;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BlogNavVideoObserver\n{\n    /**\n     * Handle the blog nav video \"created\" event.\n     *\n     * @param  \\App\\Models\\BlogNavVideo  $blogNavVideo\n     * @return void\n     */\n    public function created(BlogNavVideo $blogNavVideo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav video \"updated\" event.\n     *\n     * @param  \\App\\Models\\BlogNavVideo  $blogNavVideo\n     * @return void\n     */\n    public function updated(BlogNavVideo $blogNavVideo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav video \"deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavVideo  $blogNavVideo\n     * @return void\n     */\n    public function deleted(BlogNavVideo $blogNavVideo)\n    {\n        $video_img = $blogNavVideo->getOriginal('video_img');\n        if($video_img){\n            Storage::disk('admin')->delete($video_img);\n        }\n        $video_link = $blogNavVideo->getOriginal('video_link');\n        if($video_link){\n            $video_link = str_replace('_','/',$video_link);\n            Storage::disk('public')->delete($video_link);\n        }\n    }\n\n    /**\n     * Handle the blog nav video \"restored\" event.\n     *\n     * @param  \\App\\Models\\BlogNavVideo  $blogNavVideo\n     * @return void\n     */\n    public function restored(BlogNavVideo $blogNavVideo)\n    {\n        //\n    }\n\n    /**\n     * Handle the blog nav video \"force deleted\" event.\n     *\n     * @param  \\App\\Models\\BlogNavVideo  $blogNavVideo\n     * @return void\n     */\n    public function forceDeleted(BlogNavVideo $blogNavVideo)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "app/Providers/AppServiceProvider.php",
    "content": "<?php\n\nnamespace App\\Providers;\n\nuse App\\Models\\BlogAboutCardTwo;\nuse App\\Models\\BlogFriends;\nuse App\\Models\\BlogNav;\nuse App\\Models\\BlogNavArticle;\nuse App\\Models\\BlogNavMusic;\nuse App\\Models\\BlogNavPhoto;\nuse App\\Models\\BlogNavShareOne;\nuse App\\Models\\BlogNavShareTwo;\nuse App\\Models\\BlogNavVideo;\nuse App\\Observers\\BlogAboutCardTwoObserver;\nuse App\\Observers\\BlogConfigObserver;\nuse App\\Observers\\BlogFriendsObserver;\nuse App\\Observers\\BlogNavArticleObserver;\nuse App\\Observers\\BlogNavMusicObserver;\nuse App\\Observers\\BlogNavObserver;\nuse App\\Observers\\BlogNavPhotoObserver;\nuse App\\Observers\\BlogNavShareOneObserver;\nuse App\\Observers\\BlogNavShareTwoObserver;\nuse App\\Observers\\BlogNavVideoObserver;\nuse Encore\\Admin\\Config\\Config;\nuse Encore\\Admin\\Config\\ConfigModel;\nuse Illuminate\\Support\\Facades\\DB;\nuse Illuminate\\Support\\Facades\\View;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Support\\Facades\\Schema;\n\nclass AppServiceProvider extends ServiceProvider\n{\n    /**\n     * Register any application services.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n\n    /**\n     * Bootstrap any application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $table = config('admin.extensions.config.table', 'admin_config');\n        if (Schema::hasTable($table)) {\n            Config::load();\n        }\n        Schema::defaultStringLength(191); //add fixed sql\n        //共享配置信息\n        View::share('configs', $this->system_config());\n        //共享导航栏列表\n        View::share('nav_list', $this->system_nav());\n        //共享音乐列表数据\n        View::share('my_music', $this->my_music());\n\n        BlogNav::observe(BlogNavObserver::class);\n        BlogNavPhoto::observe(BlogNavPhotoObserver::class);\n        BlogNavMusic::observe(BlogNavMusicObserver::class);\n        BlogNavVideo::observe(BlogNavVideoObserver::class);\n        BlogNavShareOne::observe(BlogNavShareOneObserver::class);\n        BlogNavShareTwo::observe(BlogNavShareTwoObserver::class);\n        BlogFriends::observe(BlogFriendsObserver::class);\n        BlogAboutCardTwo::observe(BlogAboutCardTwoObserver::class);\n        BlogNavArticle::observe(BlogNavArticleObserver::class);\n        ConfigModel::observe(BlogConfigObserver::class);\n    }\n\n    public function system_config()\n    {\n        $config_result = DB::table('admin_config')->pluck('value', 'name');\n        return $config_result;\n    }\n\n    public function system_nav()\n    {\n//        $collection = new Collection();\n        $top_data = DB::table('blog_nav')->where('nav_open', '=', 1)->where('nav_pid', '=', 0)->orderBy('nav_sort', 'asc')->get()->keyBy('id');\n        $top_id   = $top_data->keys();\n        $son_data = DB::table('blog_nav')->where('nav_open', '=', '1')->whereIn('nav_pid', $top_id)->orderBy('nav_sort', 'asc')->get();\n        foreach ($son_data as $k => $v) {\n            $top_data->get($v->nav_pid)->son_nav[$v->id] = $v;\n        }\n        return $top_data;\n    }\n\n    public function my_music()\n    {\n        $music_data  = Db::table('blog_nav_music')->select('id', 'music_json', 'music_img', 'music_title')->where('music_play', 1)->orderBy('music_sort', 'desc')->get();\n        $music_array = $music_data->toArray();\n        $music_list  = [];\n        foreach ($music_array as $k => $v) {\n            if ($v->music_json) {\n                $obj_data = json_decode($v->music_json);\n                foreach ($obj_data as $m) {\n                    $music_obj['title']  = str_replace('files/', '', $m);\n                    $music_obj['author'] = $v->music_title;\n                    $music_obj['url']    = processing_files($m);\n                    $music_obj['pic']    = processing_files($v->music_img);\n                    $music_list[]        = $music_obj;\n                }\n            }\n        }\n        return json_encode($music_list);\n    }\n}\n"
  },
  {
    "path": "app/Providers/AuthServiceProvider.php",
    "content": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\Gate;\nuse Illuminate\\Foundation\\Support\\Providers\\AuthServiceProvider as ServiceProvider;\n\nclass AuthServiceProvider extends ServiceProvider\n{\n    /**\n     * The policy mappings for the application.\n     *\n     * @var array\n     */\n    protected $policies = [\n        // 'App\\Model' => 'App\\Policies\\ModelPolicy',\n    ];\n\n    /**\n     * Register any authentication / authorization services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $this->registerPolicies();\n\n        //\n    }\n}\n"
  },
  {
    "path": "app/Providers/BroadcastServiceProvider.php",
    "content": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Support\\Facades\\Broadcast;\n\nclass BroadcastServiceProvider extends ServiceProvider\n{\n    /**\n     * Bootstrap any application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        Broadcast::routes();\n\n        require base_path('routes/channels.php');\n    }\n}\n"
  },
  {
    "path": "app/Providers/EventServiceProvider.php",
    "content": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\Event;\nuse Illuminate\\Auth\\Events\\Registered;\nuse Illuminate\\Auth\\Listeners\\SendEmailVerificationNotification;\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider as ServiceProvider;\n\nclass EventServiceProvider extends ServiceProvider\n{\n    /**\n     * The event listener mappings for the application.\n     *\n     * @var array\n     */\n    protected $listen = [\n        Registered::class => [\n            SendEmailVerificationNotification::class,\n        ],\n    ];\n\n    /**\n     * Register any events for your application.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        parent::boot();\n\n        //\n    }\n}\n"
  },
  {
    "path": "app/Providers/RouteServiceProvider.php",
    "content": "<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\Route;\nuse Illuminate\\Foundation\\Support\\Providers\\RouteServiceProvider as ServiceProvider;\n\nclass RouteServiceProvider extends ServiceProvider\n{\n    /**\n     * This namespace is applied to your controller routes.\n     *\n     * In addition, it is set as the URL generator's root namespace.\n     *\n     * @var string\n     */\n    protected $namespace = 'App\\Http\\Controllers';\n\n    /**\n     * Define your route model bindings, pattern filters, etc.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        //\n\n        parent::boot();\n    }\n\n    /**\n     * Define the routes for the application.\n     *\n     * @return void\n     */\n    public function map()\n    {\n        $this->mapApiRoutes();\n\n        $this->mapWebRoutes();\n\n        //\n    }\n\n    /**\n     * Define the \"web\" routes for the application.\n     *\n     * These routes all receive session state, CSRF protection, etc.\n     *\n     * @return void\n     */\n    protected function mapWebRoutes()\n    {\n        Route::middleware('web')\n             ->namespace($this->namespace)\n             ->group(base_path('routes/web.php'));\n    }\n\n    /**\n     * Define the \"api\" routes for the application.\n     *\n     * These routes are typically stateless.\n     *\n     * @return void\n     */\n    protected function mapApiRoutes()\n    {\n        Route::prefix('api')\n             ->middleware('api')\n             ->namespace($this->namespace)\n             ->group(base_path('routes/api.php'));\n    }\n}\n"
  },
  {
    "path": "app/User.php",
    "content": "<?php\n\nnamespace App;\n\nuse Illuminate\\Notifications\\Notifiable;\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\n\nclass User extends Authenticatable\n{\n    use Notifiable;\n\n    /**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     */\n    protected $fillable = [\n        'name', 'email', 'password',\n    ];\n\n    /**\n     * The attributes that should be hidden for arrays.\n     *\n     * @var array\n     */\n    protected $hidden = [\n        'password', 'remember_token',\n    ];\n\n    /**\n     * The attributes that should be cast to native types.\n     *\n     * @var array\n     */\n    protected $casts = [\n        'email_verified_at' => 'datetime',\n    ];\n}\n"
  },
  {
    "path": "artisan",
    "content": "#!/usr/bin/env php\n<?php\n\ndefine('LARAVEL_START', microtime(true));\n\n/*\n|--------------------------------------------------------------------------\n| Register The Auto Loader\n|--------------------------------------------------------------------------\n|\n| Composer provides a convenient, automatically generated class loader\n| for our application. We just need to utilize it! We'll require it\n| into the script here so that we do not have to worry about the\n| loading of any our classes \"manually\". Feels great to relax.\n|\n*/\n\nrequire __DIR__.'/vendor/autoload.php';\n\n$app = require_once __DIR__.'/bootstrap/app.php';\n\n/*\n|--------------------------------------------------------------------------\n| Run The Artisan Application\n|--------------------------------------------------------------------------\n|\n| When we run the console application, the current CLI command will be\n| executed in this console and the response sent back to a terminal\n| or another output device for the developers. Here goes nothing!\n|\n*/\n\n$kernel = $app->make(Illuminate\\Contracts\\Console\\Kernel::class);\n\n$status = $kernel->handle(\n    $input = new Symfony\\Component\\Console\\Input\\ArgvInput,\n    new Symfony\\Component\\Console\\Output\\ConsoleOutput\n);\n\n/*\n|--------------------------------------------------------------------------\n| Shutdown The Application\n|--------------------------------------------------------------------------\n|\n| Once Artisan has finished running, we will fire off the shutdown events\n| so that any final work may be done by the application before we shut\n| down the process. This is the last thing to happen to the request.\n|\n*/\n\n$kernel->terminate($input, $status);\n\nexit($status);\n"
  },
  {
    "path": "bootstrap/app.php",
    "content": "<?php\nrequire ('common.php');\n/*\n|--------------------------------------------------------------------------\n| Create The Application\n|--------------------------------------------------------------------------\n|\n| The first thing we will do is create a new Laravel application instance\n| which serves as the \"glue\" for all the components of Laravel, and is\n| the IoC container for the system binding all of the various parts.\n|\n*/\n\n$app = new Illuminate\\Foundation\\Application(\n    $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)\n);\n\n/*\n|--------------------------------------------------------------------------\n| Bind Important Interfaces\n|--------------------------------------------------------------------------\n|\n| Next, we need to bind some important interfaces into the container so\n| we will be able to resolve them when needed. The kernels serve the\n| incoming requests to this application from both the web and CLI.\n|\n*/\n\n$app->singleton(\n    Illuminate\\Contracts\\Http\\Kernel::class,\n    App\\Http\\Kernel::class\n);\n\n$app->singleton(\n    Illuminate\\Contracts\\Console\\Kernel::class,\n    App\\Console\\Kernel::class\n);\n\n$app->singleton(\n    Illuminate\\Contracts\\Debug\\ExceptionHandler::class,\n    App\\Exceptions\\Handler::class\n);\n\n/*\n|--------------------------------------------------------------------------\n| Return The Application\n|--------------------------------------------------------------------------\n|\n| This script returns the application instance. The instance is given to\n| the calling script so we can separate the building of the instances\n| from the actual running of the application and sending responses.\n|\n*/\n\nreturn $app;\n"
  },
  {
    "path": "bootstrap/cache/.gitignore",
    "content": "*\n!.gitignore\n"
  },
  {
    "path": "bootstrap/common.php",
    "content": "<?php\n\n/**\n * 递归无限级分类\n */\nfunction modelTree($tree,$pid = 0,$level = 0){\n    if(count($tree) == 0){\n        return [];\n    }\n    $arr = [];\n    foreach ($tree as $k => $v) {\n        if($v['nav_pid'] == $pid){\n            $v['level'] = $level;\n            $arr[$v['id']] = $v;\n            $temp_arr = modelTree($tree,$v['id'],$level+1);\n            $arr  = array_merge($arr,$temp_arr);\n        }\n    }\n    return $arr;\n}\n\n/**\n * 定义的背景色数组\n */\nfunction define_background(){\n    $bg = array('purple','orange','brown','yellow','green','blue');\n    shuffle($bg);\n    return $bg;\n}\n\n/**\n * Desc:定义徽章颜色\n * Date:2019/9/27/027\n */\nfunction define_badge_color(){\n    $bg = array('primary','info','success','warning','danger','default');\n    shuffle($bg);\n    return $bg;\n}\n\n/**\n * 转换日期，比如2019-09-21 11:54:53,只显示2019-09-21\n */\nfunction date_conversion($old_data){\n    $old_time = strtotime($old_data);\n    return $new_time = date('Y-m-d',$old_time);\n}\n\n/**\n * Desc:处理文件是本地上传还是七牛云上传的路径\n * Date:2019/11/6/006\n */\nfunction processing_files($file_src){\n    if(env('UPLOAD_TYPE') == 'admin'){\n        $new_src = asset(__STATIC_UPLOADS__.'/'.$file_src);\n    }elseif (env('UPLOAD_TYPE') == 'qiniu'){\n        $file_setting = config('filesystems');\n        $new_src = 'http://'.$file_setting['disks']['qiniu']['domains']['default'].'/'.$file_src;\n    }\n    return $new_src;\n}\n"
  },
  {
    "path": "composer.json",
    "content": "{\n    \"name\": \"laravel/laravel\",\n    \"type\": \"project\",\n    \"description\": \"The Laravel Framework.\",\n    \"keywords\": [\n        \"framework\",\n        \"laravel\"\n    ],\n    \"license\": \"MIT\",\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"dianwoung/large-file-upload\": \"^0.0.3\",\n        \"encore/laravel-admin\": \"^1.7\",\n        \"fideloper/proxy\": \"^4.0\",\n        \"ichynul/configx\": \"^1.2\",\n        \"ichynul/row-table\": \"^1.1\",\n        \"jxlwqq/simditor\": \"^1.0\",\n        \"laravel-admin-ext/config\": \"^1.0\",\n        \"laravel/framework\": \"5.8.*\",\n        \"laravel/tinker\": \"^1.0\",\n        \"predis/predis\": \"~1.0\",\n        \"sharemant/laravel-admin-ext-editormd\": \"^1.0\",\n        \"spatie/eloquent-sortable\": \"^3.6\",\n        \"spatie/laravel-pjax\": \"^2.0\",\n        \"zgldh/qiniu-laravel-storage\": \"^0.10.3\"\n    },\n    \"require-dev\": {\n        \"beyondcode/laravel-dump-server\": \"^1.0\",\n        \"caouecs/laravel-lang\": \"~4.0\",\n        \"filp/whoops\": \"^2.0\",\n        \"fzaninotto/faker\": \"^1.4\",\n        \"mockery/mockery\": \"^1.0\",\n        \"nunomaduro/collision\": \"^3.0\",\n        \"phpunit/phpunit\": \"^7.5\"\n    },\n    \"config\": {\n        \"optimize-autoloader\": true,\n        \"preferred-install\": \"dist\",\n        \"sort-packages\": true\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"dont-discover\": []\n        }\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"App\\\\\": \"app/\"\n        },\n        \"classmap\": [\n            \"database/seeds\",\n            \"database/factories\"\n        ]\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Tests\\\\\": \"tests/\"\n        }\n    },\n    \"minimum-stability\": \"dev\",\n    \"prefer-stable\": true,\n    \"scripts\": {\n        \"post-autoload-dump\": [\n            \"Illuminate\\\\Foundation\\\\ComposerScripts::postAutoloadDump\",\n            \"@php artisan package:discover --ansi\"\n        ],\n        \"post-root-package-install\": [\n            \"@php -r \\\"file_exists('.env') || copy('.env.example', '.env');\\\"\"\n        ],\n        \"post-create-project-cmd\": [\n            \"@php artisan key:generate --ansi\"\n        ]\n    }\n}\n"
  },
  {
    "path": "config/admin.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin name\n    |--------------------------------------------------------------------------\n    |\n    | This value is the name of laravel-admin, This setting is displayed on the\n    | login page.\n    |\n    */\n    'name' => 'Laravel-admin',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin logo\n    |--------------------------------------------------------------------------\n    |\n    | The logo of all admin pages. You can also set it as an image by using a\n    | `img` tag, eg '<img src=\"http://logo-url\" alt=\"Admin logo\">'.\n    |\n    */\n    'logo' => '<b>Laravel</b> admin',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin mini logo\n    |--------------------------------------------------------------------------\n    |\n    | The logo of all admin pages when the sidebar menu is collapsed. You can\n    | also set it as an image by using a `img` tag, eg\n    | '<img src=\"http://logo-url\" alt=\"Admin logo\">'.\n    |\n    */\n    'logo-mini' => '<b>La</b>',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin bootstrap setting\n    |--------------------------------------------------------------------------\n    |\n    | This value is the path of laravel-admin bootstrap file.\n    |\n    */\n    'bootstrap' => app_path('Admin/bootstrap.php'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin route settings\n    |--------------------------------------------------------------------------\n    |\n    | The routing configuration of the admin page, including the path prefix,\n    | the controller namespace, and the default middleware. If you want to\n    | access through the root path, just set the prefix to empty string.\n    |\n    */\n    'route' => [\n\n        'prefix' => env('ADMIN_ROUTE_PREFIX', 'admin'),\n\n        'namespace' => 'App\\\\Admin\\\\Controllers',\n\n        'middleware' => ['web', 'admin'],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin install directory\n    |--------------------------------------------------------------------------\n    |\n    | The installation directory of the controller and routing configuration\n    | files of the administration page. The default is `app/Admin`, which must\n    | be set before running `artisan admin::install` to take effect.\n    |\n    */\n    'directory' => app_path('Admin'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin html title\n    |--------------------------------------------------------------------------\n    |\n    | Html title for all pages.\n    |\n    */\n    'title' => 'Admin',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Access via `https`\n    |--------------------------------------------------------------------------\n    |\n    | If your page is going to be accessed via https, set it to `true`.\n    |\n    */\n    'https' => env('ADMIN_HTTPS', false),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin auth setting\n    |--------------------------------------------------------------------------\n    |\n    | Authentication settings for all admin pages. Include an authentication\n    | guard and a user provider setting of authentication driver.\n    |\n    | You can specify a controller for `login` `logout` and other auth routes.\n    |\n    */\n    'auth' => [\n\n        'controller' => App\\Admin\\Controllers\\AuthController::class,\n\n        'guard' => 'admin',\n\n        'guards' => [\n            'admin' => [\n                'driver'   => 'session',\n                'provider' => 'admin',\n            ],\n        ],\n\n        'providers' => [\n            'admin' => [\n                'driver' => 'eloquent',\n                'model'  => Encore\\Admin\\Auth\\Database\\Administrator::class,\n            ],\n        ],\n\n        // Add \"remember me\" to login form\n        'remember' => true,\n\n        // Redirect to the specified URI when user is not authorized.\n        'redirect_to' => 'auth/login',\n\n        // The URIs that should be excluded from authorization.\n        'excepts' => [\n            'auth/login',\n            'auth/logout',\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin upload setting\n    |--------------------------------------------------------------------------\n    |\n    | File system configuration for form upload files and images, including\n    | disk and upload path.\n    |\n    */\n    'upload' => [\n\n        // Disk in `config/filesystem.php`.\n        'disk' => env('UPLOAD_TYPE'),\n\n        // Image and file upload path under the disk above.\n        'directory' => [\n            'image' => 'images',\n            'file'  => 'files',\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Laravel-admin database settings\n    |--------------------------------------------------------------------------\n    |\n    | Here are database settings for laravel-admin builtin model & tables.\n    |\n    */\n    'database' => [\n\n        // Database connection for following tables.\n        'connection' => '',\n\n        // User tables and model.\n        'users_table' => 'admin_users',\n        'users_model' => Encore\\Admin\\Auth\\Database\\Administrator::class,\n\n        // Role table and model.\n        'roles_table' => 'admin_roles',\n        'roles_model' => Encore\\Admin\\Auth\\Database\\Role::class,\n\n        // Permission table and model.\n        'permissions_table' => 'admin_permissions',\n        'permissions_model' => Encore\\Admin\\Auth\\Database\\Permission::class,\n\n        // Menu table and model.\n        'menu_table' => 'admin_menu',\n        'menu_model' => Encore\\Admin\\Auth\\Database\\Menu::class,\n\n        // Pivot table for table above.\n        'operation_log_table'    => 'admin_operation_log',\n        'user_permissions_table' => 'admin_user_permissions',\n        'role_users_table'       => 'admin_role_users',\n        'role_permissions_table' => 'admin_role_permissions',\n        'role_menu_table'        => 'admin_role_menu',\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | User operation log setting\n    |--------------------------------------------------------------------------\n    |\n    | By setting this option to open or close operation log in laravel-admin.\n    |\n    */\n    'operation_log' => [\n\n        'enable' => true,\n\n        /*\n         * Only logging allowed methods in the list\n         */\n        'allowed_methods' => ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'],\n\n        /*\n         * Routes that will not log to database.\n         *\n         * All method to path like: admin/auth/logs\n         * or specific method to path like: get:admin/auth/logs.\n         */\n        'except' => [\n            'admin/auth/logs*',\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Indicates whether to check route permission.\n    |--------------------------------------------------------------------------\n    */\n    'check_route_permission' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Indicates whether to check menu roles.\n    |--------------------------------------------------------------------------\n    */\n    'check_menu_roles'       => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | User default avatar\n    |--------------------------------------------------------------------------\n    |\n    | Set a default avatar for newly created users.\n    |\n    */\n    'default_avatar' => '/vendor/laravel-admin/AdminLTE/dist/img/user2-160x160.jpg',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Admin map field provider\n    |--------------------------------------------------------------------------\n    |\n    | Supported: \"tencent\", \"google\", \"yandex\".\n    |\n    */\n    'map_provider' => 'google',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Skin\n    |--------------------------------------------------------------------------\n    |\n    | This value is the skin of admin pages.\n    | @see https://adminlte.io/docs/2.4/layout\n    |\n    | Supported:\n    |    \"skin-blue\", \"skin-blue-light\", \"skin-yellow\", \"skin-yellow-light\",\n    |    \"skin-green\", \"skin-green-light\", \"skin-purple\", \"skin-purple-light\",\n    |    \"skin-red\", \"skin-red-light\", \"skin-black\", \"skin-black-light\".\n    |\n    */\n    'skin' => 'skin-black',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application layout\n    |--------------------------------------------------------------------------\n    |\n    | This value is the layout of admin pages.\n    | @see https://adminlte.io/docs/2.4/layout\n    |\n    | Supported: \"fixed\", \"layout-boxed\", \"layout-top-nav\", \"sidebar-collapse\",\n    | \"sidebar-mini\".\n    |\n    */\n    'layout' => ['sidebar-mini', 'sidebar-collapse'],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Login page background image\n    |--------------------------------------------------------------------------\n    |\n    | This value is used to set the background image of login page.\n    |\n    */\n    'login_background_image' => 'https://img.zcool.cn/community/0135a75b552aa5a8012036be80cf41.jpg@1280w_1l_0o_100sh.jpg',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Show version at footer\n    |--------------------------------------------------------------------------\n    |\n    | Whether to display the version number of laravel-admin at the footer of\n    | each page\n    |\n    */\n    'show_version' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Show environment at footer\n    |--------------------------------------------------------------------------\n    |\n    | Whether to display the environment at the footer of each page\n    |\n    */\n    'show_environment' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Menu bind to permission\n    |--------------------------------------------------------------------------\n    |\n    | whether enable menu bind to a permission\n    */\n    'menu_bind_permission' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Enable default breadcrumb\n    |--------------------------------------------------------------------------\n    |\n    | Whether enable default breadcrumb for every page content.\n    */\n    'enable_default_breadcrumb' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Enable/Disable assets minify\n    |--------------------------------------------------------------------------\n    */\n    'minify_assets' => [\n\n        // Assets will not be minified.\n        'excepts' => [\n\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Enable/Disable sidebar menu search\n    |--------------------------------------------------------------------------\n    */\n    'enable_menu_search' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Alert message that will displayed on top of the page.\n    |--------------------------------------------------------------------------\n    */\n    'top_alert' => '',\n\n    /*\n    |--------------------------------------------------------------------------\n    | The global Grid action display class.\n    |--------------------------------------------------------------------------\n    */\n    'grid_action_class' => \\Encore\\Admin\\Grid\\Displayers\\DropdownActions::class,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Extension Directory\n    |--------------------------------------------------------------------------\n    |\n    | When you use command `php artisan admin:extend` to generate extensions,\n    | the extension files will be generated in this directory.\n    */\n    'extension_dir' => app_path('Admin/Extensions'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Settings for extensions.\n    |--------------------------------------------------------------------------\n    |\n    | You can find all available extensions here\n    | https://github.com/laravel-admin-extensions.\n    |\n    */\n    'extensions' => [\n        'editormd' => [\n            // Set to false if you want to disable this extension\n            'enable' => true,\n            // Set to true if you want to take advantage the screen length for your editormd instance.\n            'wideMode' => false,\n            // Set to true when the instance included in larave-admin tab component.\n            'dynamicMode' => false,\n            // Editor.js configuration (Refer to http://pandao.github.io/editor.md/)\n            'config' =>\n                [\n                    'path' => '/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/',\n                    'width' => '100%',\n                    'height' => 600,\n                    'emoji' => true,\n                    'imageUpload' => true,\n                    'imageFormats' => [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                    'imageUploadURL' => '/admin/blog-upload-files?type=1',\n\n                ]\n        ],\n        'configx' => [\n            // Set to `false` if you want to disable this extension\n            'enable' => true,\n            'tabs' => [\n                'base' => '基本设置',\n                'user_info' => '个人信息',\n//                'image' => '' // if tab name is empty, get from trans : trans('admin.configx.tabs.image'); tab名称留空则从翻译中获取\n            ],\n            //是否检查组权限\n            //if (!Admin::user()->can('confix.tab.base')) {/*hide base tab*/ } .\n            'check_permission' => false\n        ],\n        'simditor' => [\n            // Set to false if you want to disable this extension\n            'enable' => true,\n            // Editor configuration\n            'config' => [\n                'upload' => [\n                    'url' => '/admin/blog-upload-files?type=2', # example api route: admin/api/upload\n                    'fileKey' => 'simditor_file',//服务器端获取文件数据的参数名\n                    'connectionCount' => 3,\n                    'leaveConfirm' => '上传正在进行中，您确定要离开此页面吗？'\n                ],\n                'tabIndent' => true,\n                'toolbar' => ['title', 'bold', 'italic', 'underline', 'strikethrough', 'fontScale', 'color', '|', 'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent', 'alignment'],\n                'toolbarFloat' => true,\n                'toolbarFloatOffset' => 0,\n                'toolbarHidden' => false,\n                'pasteImage' => true,//允许粘贴图片\n                'cleanPaste' => false,\n            ]\n        ]\n    ],\n];\n"
  },
  {
    "path": "config/aetherupload.php",
    "content": "<?php\n\nreturn [\n\n    # 【分布式设置】：如启用分布式部署，此类配置项必须在应用服务器与储存服务器都进行配置。 #\n    # 【一般设置】：只需在储存服务器配置。 #\n\n    /*\n    |--------------------------------------------------------------------------\n    | 分布式部署\n    |--------------------------------------------------------------------------\n    |\n    | 【分布式设置】使应用服务与储存服务分离，启用后资源上传请求将会由储存服务器处理。\n    |\n    */\n\n    'distributed_deployment' => [\n\n        'enable' => false, # 是否启用\n\n        'role' => 'web', # 服务器角色，支持选项: 'web', 'storage'\n\n        'web' => [ # 角色为应用服务器\n            'storage_host' => '', # 储存服务器的host，如'http://storage.example.com'\n        ],\n\n        'storage' => [ # 角色为储存服务器\n            'middleware_cors' => '', # 跨域中间件AetherUploadCORS类在Kernel.php中注册的名称\n            'allow_origin'    => [], # 跨域中间件允许的应用服务器来源host，如['http://www.example.com']\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 启用秒传功能\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】需要安装redis服务和predis扩展包。\n    |\n    */\n\n    'instant_completion' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 上传根目录名\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】位于 storage/app/ 下，修改默认值后需执行artisan命令aetherupload:groups生成对应目录。\n    |\n    */\n\n    'root_dir' => 'public',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 上传分块大小（B）\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】建议1MB～4MB之间，较小值占用内存少、效率低，较大值占用内存多、效率高，需要小于web服务器和php.ini中的上传限值。\n    |\n    */\n\n    'chunk_size' => 1000000,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 子目录生成规则\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】分为按年份、按月份、按日期、常量subdir。\n    |\n    | 支持选项: 'year', 'month', 'date', 'const'\n    |\n    */\n\n    'resource_subdir_rule' => 'month',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 头文件储存方式\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】头文件储存disk的配置名称，如果为\"redis\"，需在config/filesystems.php中添加以下配置。\n    | 'disks' => [\n    |     ...\n    |     'redis' => [\n    |        'driver' => 'redis',\n    |        'disable_asserts'=>true,\n    |     ],\n    |     ...\n    | ]\n    |\n    | 支持选项: 'local', 'redis'\n    |\n    */\n\n    'header_storage_disk' => 'local',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 资源文件后缀名黑名单\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】被禁止资源文件的后缀名集合，凡是匹配成功的资源文件均会被阻止上传，可在一定程度上防范恶意文件上传。\n    |\n    */\n\n    'forbidden_extensions' => ['php', 'part', 'html', 'shtml', 'htm', 'shtm', 'xhtml', 'xml', 'js', 'jsp', 'asp', 'java', 'py', 'sh', 'bat', 'exe', 'dll', 'cgi', 'htaccess', 'reg', 'aspx', 'vbs'],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 额外Mime-Type\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】如上传文件类型在MimeType.php中不存在，可在此额外添加Mime-Type，格式参照'jpg' => 'image/jpeg'。\n    |\n    */\n\n    'extra_mime_types' => [],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 中间件\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】上传预处理、上传分块、文件展示、文件下载时的路由中间件。\n    |\n    */\n\n    'middleware_preprocess' => [], # 上传预处理时的路由中间件\n    'middleware_uploading'  => [], # 上传文件分块时的路由中间件\n    'middleware_display'    => [], # 文件展示时的路由中间件\n    'middleware_download'   => [], # 文件下载时的路由中间件\n\n    /*\n    |--------------------------------------------------------------------------\n    | 路由\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】上传预处理、上传分块、文件展示、文件下载的路由。\n    |\n    */\n\n    'route_preprocess' => '/aetherupload/preprocess', # 上传预处理的路由\n    'route_uploading'  => '/aetherupload/uploading', # 上传文件分块的路由\n    'route_display'    => '/aetherupload/display', # 文件展示的路由\n    'route_download'   => '/aetherupload/download', # 文件下载的路由\n\n    /*\n    |--------------------------------------------------------------------------\n    | 宽松模式\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】在某些特殊场景，通过上传前跳过计算hash，可缩短总耗时。此选项开启后，无法进行秒传和完整性校验。默认不启用。\n    |\n    |   注意：开启后需在前端同时调用setLaxMode(true)方法。\n    |\n    */\n\n    'lax_mode' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 资源分组\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】可设置多个不同分组，各自拥有独立配置。新增分组并配置后，需执行artisan命令aetherupload:groups创建对应目录。\n    |\n    */\n\n    'groups' => [\n\n        'file' => [ # 分组名\n            'group_dir'                    => 'file', # 分组目录名\n            'resource_maxsize'             => 0, # 被允许的资源文件最大值(B)，0为不限制，32位系统最大值为2147483647\n            'resource_extensions'          => [], # 被允许的资源文件扩展名(白名单)，空为不限制\n            'event_before_upload_complete' => '', # 上传完成前触发的事件(完整临时文件)，PartialResource类的实例被注入\n            'event_upload_complete'        => '', # 上传完成后触发的事件(完整资源文件)，Resource类的实例被注入\n        ],\n\n    ],\n];"
  },
  {
    "path": "config/app.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Name\n    |--------------------------------------------------------------------------\n    |\n    | This value is the name of your application. This value is used when the\n    | framework needs to place the application's name in a notification or\n    | any other location as required by the application or its packages.\n    |\n    */\n\n    'name' => env('APP_NAME', 'Laravel'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Environment\n    |--------------------------------------------------------------------------\n    |\n    | This value determines the \"environment\" your application is currently\n    | running in. This may determine how you prefer to configure various\n    | services the application utilizes. Set this in your \".env\" file.\n    |\n    */\n\n    'env' => env('APP_ENV', 'production'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Debug Mode\n    |--------------------------------------------------------------------------\n    |\n    | When your application is in debug mode, detailed error messages with\n    | stack traces will be shown on every error that occurs within your\n    | application. If disabled, a simple generic error page is shown.\n    |\n    */\n\n    'debug' => env('APP_DEBUG', false),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application URL\n    |--------------------------------------------------------------------------\n    |\n    | This URL is used by the console to properly generate URLs when using\n    | the Artisan command line tool. You should set this to the root of\n    | your application so that it is used when running Artisan tasks.\n    |\n    */\n\n    'url' => env('APP_URL', 'http://localhost'),\n\n    'asset_url' => env('ASSET_URL', null),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Timezone\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the default timezone for your application, which\n    | will be used by the PHP date and date-time functions. We have gone\n    | ahead and set this to a sensible default for you out of the box.\n    |\n    */\n\n    'timezone' => 'UTC',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Locale Configuration\n    |--------------------------------------------------------------------------\n    |\n    | The application locale determines the default locale that will be used\n    | by the translation service provider. You are free to set this value\n    | to any of the locales which will be supported by the application.\n    |\n    */\n\n    'locale' => 'zh-CN',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Application Fallback Locale\n    |--------------------------------------------------------------------------\n    |\n    | The fallback locale determines the locale to use when the current one\n    | is not available. You may change the value to correspond to any of\n    | the language folders that are provided through your application.\n    |\n    */\n\n    'fallback_locale' => 'en',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Faker Locale\n    |--------------------------------------------------------------------------\n    |\n    | This locale will be used by the Faker PHP library when generating fake\n    | data for your database seeds. For example, this will be used to get\n    | localized telephone numbers, street address information and more.\n    |\n    */\n\n    'faker_locale' => 'en_US',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Encryption Key\n    |--------------------------------------------------------------------------\n    |\n    | This key is used by the Illuminate encrypter service and should be set\n    | to a random, 32 character string, otherwise these encrypted strings\n    | will not be safe. Please do this before deploying an application!\n    |\n    */\n\n    'key' => env('APP_KEY'),\n\n    'cipher' => 'AES-256-CBC',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Autoloaded Service Providers\n    |--------------------------------------------------------------------------\n    |\n    | The service providers listed here will be automatically loaded on the\n    | request to your application. Feel free to add your own services to\n    | this array to grant expanded functionality to your applications.\n    |\n    */\n\n    'providers' => [\n\n        /*\n         * Laravel Framework Service Providers...\n         */\n        Illuminate\\Auth\\AuthServiceProvider::class,\n        Illuminate\\Broadcasting\\BroadcastServiceProvider::class,\n        Illuminate\\Bus\\BusServiceProvider::class,\n        Illuminate\\Cache\\CacheServiceProvider::class,\n        Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider::class,\n        Illuminate\\Cookie\\CookieServiceProvider::class,\n        Illuminate\\Database\\DatabaseServiceProvider::class,\n        Illuminate\\Encryption\\EncryptionServiceProvider::class,\n        Illuminate\\Filesystem\\FilesystemServiceProvider::class,\n        Illuminate\\Foundation\\Providers\\FoundationServiceProvider::class,\n        Illuminate\\Hashing\\HashServiceProvider::class,\n        Illuminate\\Mail\\MailServiceProvider::class,\n        Illuminate\\Notifications\\NotificationServiceProvider::class,\n        Illuminate\\Pagination\\PaginationServiceProvider::class,\n        Illuminate\\Pipeline\\PipelineServiceProvider::class,\n        Illuminate\\Queue\\QueueServiceProvider::class,\n        Illuminate\\Redis\\RedisServiceProvider::class,\n        Illuminate\\Auth\\Passwords\\PasswordResetServiceProvider::class,\n        Illuminate\\Session\\SessionServiceProvider::class,\n        Illuminate\\Translation\\TranslationServiceProvider::class,\n        Illuminate\\Validation\\ValidationServiceProvider::class,\n        Illuminate\\View\\ViewServiceProvider::class,\n\n        /*\n         * Package Service Providers...\n         */\n\n        /*\n         * Application Service Providers...\n         */\n        App\\Providers\\AppServiceProvider::class,\n        App\\Providers\\AuthServiceProvider::class,\n        // App\\Providers\\BroadcastServiceProvider::class,\n        App\\Providers\\EventServiceProvider::class,\n        App\\Providers\\RouteServiceProvider::class,\n\n        //七牛云\n        zgldh\\QiniuStorage\\QiniuFilesystemServiceProvider::class\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Class Aliases\n    |--------------------------------------------------------------------------\n    |\n    | This array of class aliases will be registered when this application\n    | is started. However, feel free to register as many as you wish as\n    | the aliases are \"lazy\" loaded so they don't hinder performance.\n    |\n    */\n\n    'aliases' => [\n\n        'App' => Illuminate\\Support\\Facades\\App::class,\n        'Arr' => Illuminate\\Support\\Arr::class,\n        'Artisan' => Illuminate\\Support\\Facades\\Artisan::class,\n        'Auth' => Illuminate\\Support\\Facades\\Auth::class,\n        'Blade' => Illuminate\\Support\\Facades\\Blade::class,\n        'Broadcast' => Illuminate\\Support\\Facades\\Broadcast::class,\n        'Bus' => Illuminate\\Support\\Facades\\Bus::class,\n        'Cache' => Illuminate\\Support\\Facades\\Cache::class,\n        'Config' => Illuminate\\Support\\Facades\\Config::class,\n        'Cookie' => Illuminate\\Support\\Facades\\Cookie::class,\n        'Crypt' => Illuminate\\Support\\Facades\\Crypt::class,\n        'DB' => Illuminate\\Support\\Facades\\DB::class,\n        'Eloquent' => Illuminate\\Database\\Eloquent\\Model::class,\n        'Event' => Illuminate\\Support\\Facades\\Event::class,\n        'File' => Illuminate\\Support\\Facades\\File::class,\n        'Gate' => Illuminate\\Support\\Facades\\Gate::class,\n        'Hash' => Illuminate\\Support\\Facades\\Hash::class,\n        'Lang' => Illuminate\\Support\\Facades\\Lang::class,\n        'Log' => Illuminate\\Support\\Facades\\Log::class,\n        'Mail' => Illuminate\\Support\\Facades\\Mail::class,\n        'Notification' => Illuminate\\Support\\Facades\\Notification::class,\n        'Password' => Illuminate\\Support\\Facades\\Password::class,\n        'Queue' => Illuminate\\Support\\Facades\\Queue::class,\n        'Redirect' => Illuminate\\Support\\Facades\\Redirect::class,\n        'Redis' => Illuminate\\Support\\Facades\\Redis::class,\n        'Request' => Illuminate\\Support\\Facades\\Request::class,\n        'Response' => Illuminate\\Support\\Facades\\Response::class,\n        'Route' => Illuminate\\Support\\Facades\\Route::class,\n        'Schema' => Illuminate\\Support\\Facades\\Schema::class,\n        'Session' => Illuminate\\Support\\Facades\\Session::class,\n        'Storage' => Illuminate\\Support\\Facades\\Storage::class,\n        'Str' => Illuminate\\Support\\Str::class,\n        'URL' => Illuminate\\Support\\Facades\\URL::class,\n        'Validator' => Illuminate\\Support\\Facades\\Validator::class,\n        'View' => Illuminate\\Support\\Facades\\View::class,\n\n    ],\n    'default_avatar' => 'default/default_avatar.png',\n\n];\n"
  },
  {
    "path": "config/auth.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Authentication Defaults\n    |--------------------------------------------------------------------------\n    |\n    | This option controls the default authentication \"guard\" and password\n    | reset options for your application. You may change these defaults\n    | as required, but they're a perfect start for most applications.\n    |\n    */\n\n    'defaults' => [\n        'guard' => 'web',\n        'passwords' => 'users',\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Authentication Guards\n    |--------------------------------------------------------------------------\n    |\n    | Next, you may define every authentication guard for your application.\n    | Of course, a great default configuration has been defined for you\n    | here which uses session storage and the Eloquent user provider.\n    |\n    | All authentication drivers have a user provider. This defines how the\n    | users are actually retrieved out of your database or other storage\n    | mechanisms used by this application to persist your user's data.\n    |\n    | Supported: \"session\", \"token\"\n    |\n    */\n\n    'guards' => [\n        'web' => [\n            'driver' => 'session',\n            'provider' => 'users',\n        ],\n\n        'api' => [\n            'driver' => 'token',\n            'provider' => 'users',\n            'hash' => false,\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | User Providers\n    |--------------------------------------------------------------------------\n    |\n    | All authentication drivers have a user provider. This defines how the\n    | users are actually retrieved out of your database or other storage\n    | mechanisms used by this application to persist your user's data.\n    |\n    | If you have multiple user tables or models you may configure multiple\n    | sources which represent each model / table. These sources may then\n    | be assigned to any extra authentication guards you have defined.\n    |\n    | Supported: \"database\", \"eloquent\"\n    |\n    */\n\n    'providers' => [\n        'users' => [\n            'driver' => 'eloquent',\n            'model' => App\\User::class,\n        ],\n\n        // 'users' => [\n        //     'driver' => 'database',\n        //     'table' => 'users',\n        // ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Resetting Passwords\n    |--------------------------------------------------------------------------\n    |\n    | You may specify multiple password reset configurations if you have more\n    | than one user table or model in the application and you want to have\n    | separate password reset settings based on the specific user types.\n    |\n    | The expire time is the number of minutes that the reset token should be\n    | considered valid. This security feature keeps tokens short-lived so\n    | they have less time to be guessed. You may change this as needed.\n    |\n    */\n\n    'passwords' => [\n        'users' => [\n            'provider' => 'users',\n            'table' => 'password_resets',\n            'expire' => 60,\n        ],\n    ],\n\n];\n"
  },
  {
    "path": "config/broadcasting.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Broadcaster\n    |--------------------------------------------------------------------------\n    |\n    | This option controls the default broadcaster that will be used by the\n    | framework when an event needs to be broadcast. You may set this to\n    | any of the connections defined in the \"connections\" array below.\n    |\n    | Supported: \"pusher\", \"redis\", \"log\", \"null\"\n    |\n    */\n\n    'default' => env('BROADCAST_DRIVER', 'null'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Broadcast Connections\n    |--------------------------------------------------------------------------\n    |\n    | Here you may define all of the broadcast connections that will be used\n    | to broadcast events to other systems or over websockets. Samples of\n    | each available type of connection are provided inside this array.\n    |\n    */\n\n    'connections' => [\n\n        'pusher' => [\n            'driver' => 'pusher',\n            'key' => env('PUSHER_APP_KEY'),\n            'secret' => env('PUSHER_APP_SECRET'),\n            'app_id' => env('PUSHER_APP_ID'),\n            'options' => [\n                'cluster' => env('PUSHER_APP_CLUSTER'),\n                'encrypted' => true,\n            ],\n        ],\n\n        'redis' => [\n            'driver' => 'redis',\n            'connection' => 'default',\n        ],\n\n        'log' => [\n            'driver' => 'log',\n        ],\n\n        'null' => [\n            'driver' => 'null',\n        ],\n\n    ],\n\n];\n"
  },
  {
    "path": "config/cache.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Cache Store\n    |--------------------------------------------------------------------------\n    |\n    | This option controls the default cache connection that gets used while\n    | using this caching library. This connection is used when another is\n    | not explicitly specified when executing a given caching function.\n    |\n    | Supported: \"apc\", \"array\", \"database\", \"file\",\n    |            \"memcached\", \"redis\", \"dynamodb\"\n    |\n    */\n\n    'default' => env('CACHE_DRIVER', 'file'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Cache Stores\n    |--------------------------------------------------------------------------\n    |\n    | Here you may define all of the cache \"stores\" for your application as\n    | well as their drivers. You may even define multiple stores for the\n    | same cache driver to group types of items stored in your caches.\n    |\n    */\n\n    'stores' => [\n\n        'apc' => [\n            'driver' => 'apc',\n        ],\n\n        'array' => [\n            'driver' => 'array',\n        ],\n\n        'database' => [\n            'driver' => 'database',\n            'table' => 'cache',\n            'connection' => null,\n        ],\n\n        'file' => [\n            'driver' => 'file',\n            'path' => storage_path('framework/cache/data'),\n        ],\n\n        'memcached' => [\n            'driver' => 'memcached',\n            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),\n            'sasl' => [\n                env('MEMCACHED_USERNAME'),\n                env('MEMCACHED_PASSWORD'),\n            ],\n            'options' => [\n                // Memcached::OPT_CONNECT_TIMEOUT => 2000,\n            ],\n            'servers' => [\n                [\n                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),\n                    'port' => env('MEMCACHED_PORT', 11211),\n                    'weight' => 100,\n                ],\n            ],\n        ],\n\n        'redis' => [\n            'driver' => 'redis',\n            'connection' => 'cache',\n        ],\n\n        'dynamodb' => [\n            'driver' => 'dynamodb',\n            'key' => env('AWS_ACCESS_KEY_ID'),\n            'secret' => env('AWS_SECRET_ACCESS_KEY'),\n            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),\n            'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),\n            'endpoint' => env('DYNAMODB_ENDPOINT'),\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Cache Key Prefix\n    |--------------------------------------------------------------------------\n    |\n    | When utilizing a RAM based store such as APC or Memcached, there might\n    | be other applications utilizing the same cache. So, we'll specify a\n    | value to get prefixed to all our keys so we can avoid collisions.\n    |\n    */\n\n    'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),\n\n];\n"
  },
  {
    "path": "config/database.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Database Connection Name\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify which of the database connections below you wish\n    | to use as your default connection for all database work. Of course\n    | you may use many connections at once using the Database library.\n    |\n    */\n\n    'default' => env('DB_CONNECTION', 'mysql'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Database Connections\n    |--------------------------------------------------------------------------\n    |\n    | Here are each of the database connections setup for your application.\n    | Of course, examples of configuring each database platform that is\n    | supported by Laravel is shown below to make development simple.\n    |\n    |\n    | All database work in Laravel is done through the PHP PDO facilities\n    | so make sure you have the driver for your particular database of\n    | choice installed on your machine before you begin development.\n    |\n    */\n\n    'connections' => [\n\n        'sqlite' => [\n            'driver' => 'sqlite',\n            'url' => env('DATABASE_URL'),\n            'database' => env('DB_DATABASE', database_path('database.sqlite')),\n            'prefix' => '',\n            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),\n        ],\n\n        'mysql' => [\n            'driver' => 'mysql',\n            'url' => env('DATABASE_URL'),\n            'host' => env('DB_HOST', '127.0.0.1'),\n            'port' => env('DB_PORT', '3306'),\n            'database' => env('DB_DATABASE', 'forge'),\n            'username' => env('DB_USERNAME', 'forge'),\n            'password' => env('DB_PASSWORD', ''),\n            'unix_socket' => env('DB_SOCKET', ''),\n            'charset' => 'utf8mb4',\n            'collation' => 'utf8mb4_unicode_ci',\n            'prefix' => '',\n            'prefix_indexes' => true,\n            'strict' => true,\n            'engine' => null,\n            'options' => extension_loaded('pdo_mysql') ? array_filter([\n                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),\n            ]) : [],\n        ],\n\n        'pgsql' => [\n            'driver' => 'pgsql',\n            'url' => env('DATABASE_URL'),\n            'host' => env('DB_HOST', '127.0.0.1'),\n            'port' => env('DB_PORT', '5432'),\n            'database' => env('DB_DATABASE', 'forge'),\n            'username' => env('DB_USERNAME', 'forge'),\n            'password' => env('DB_PASSWORD', ''),\n            'charset' => 'utf8',\n            'prefix' => '',\n            'prefix_indexes' => true,\n            'schema' => 'public',\n            'sslmode' => 'prefer',\n        ],\n\n        'sqlsrv' => [\n            'driver' => 'sqlsrv',\n            'url' => env('DATABASE_URL'),\n            'host' => env('DB_HOST', 'localhost'),\n            'port' => env('DB_PORT', '1433'),\n            'database' => env('DB_DATABASE', 'forge'),\n            'username' => env('DB_USERNAME', 'forge'),\n            'password' => env('DB_PASSWORD', ''),\n            'charset' => 'utf8',\n            'prefix' => '',\n            'prefix_indexes' => true,\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Migration Repository Table\n    |--------------------------------------------------------------------------\n    |\n    | This table keeps track of all the migrations that have already run for\n    | your application. Using this information, we can determine which of\n    | the migrations on disk haven't actually been run in the database.\n    |\n    */\n\n    'migrations' => 'migrations',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Redis Databases\n    |--------------------------------------------------------------------------\n    |\n    | Redis is an open source, fast, and advanced key-value store that also\n    | provides a richer body of commands than a typical key-value system\n    | such as APC or Memcached. Laravel makes it easy to dig right in.\n    |\n    */\n\n    'redis' => [\n\n        'client' => env('REDIS_CLIENT', 'predis'),\n\n        'options' => [\n            'cluster' => env('REDIS_CLUSTER', 'predis'),\n            'prefix' => Str::slug(env('APP_NAME', 'laravel'), '_').'_database_',\n        ],\n\n        'default' => [\n            'url' => env('REDIS_URL'),\n            'host' => env('REDIS_HOST', '127.0.0.1'),\n            'password' => env('REDIS_PASSWORD', null),\n            'port' => env('REDIS_PORT', 6379),\n            'database' => env('REDIS_DB', 0),\n        ],\n\n        'cache' => [\n            'url' => env('REDIS_URL'),\n            'host' => env('REDIS_HOST', '127.0.0.1'),\n            'password' => env('REDIS_PASSWORD', null),\n            'port' => env('REDIS_PORT', 6379),\n            'database' => env('REDIS_CACHE_DB', 1),\n        ],\n\n    ],\n\n];\n"
  },
  {
    "path": "config/filesystems.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Filesystem Disk\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the default filesystem disk that should be used\n    | by the framework. The \"local\" disk, as well as a variety of cloud\n    | based disks are available to your application. Just store away!\n    |\n    */\n\n    'default' => env('FILESYSTEM_DRIVER', 'local'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Cloud Filesystem Disk\n    |--------------------------------------------------------------------------\n    |\n    | Many applications store files both locally and in the cloud. For this\n    | reason, you may specify a default \"cloud\" driver here. This driver\n    | will be bound as the Cloud disk implementation in the container.\n    |\n    */\n\n    'cloud' => env('FILESYSTEM_CLOUD', 's3'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Filesystem Disks\n    |--------------------------------------------------------------------------\n    |\n    | Here you may configure as many filesystem \"disks\" as you wish, and you\n    | may even configure multiple disks of the same driver. Defaults have\n    | been setup for each driver as an example of the required options.\n    |\n    | Supported Drivers: \"local\", \"ftp\", \"sftp\", \"s3\", \"rackspace\"\n    |\n    */\n\n    'disks' => [\n\n        'local' => [\n            'driver' => 'local',\n            'root' => storage_path('app'),\n        ],\n\n        'public' => [\n            'driver' => 'local',\n            'root' => storage_path('app/public'),\n            'url' => env('APP_URL').'/storage',\n            'visibility' => 'public',\n        ],\n\n        's3' => [\n            'driver' => 's3',\n            'key' => env('AWS_ACCESS_KEY_ID'),\n            'secret' => env('AWS_SECRET_ACCESS_KEY'),\n            'region' => env('AWS_DEFAULT_REGION'),\n            'bucket' => env('AWS_BUCKET'),\n            'url' => env('AWS_URL'),\n        ],\n        'admin' => [\n            'driver' => 'local',\n            'root' => public_path('uploads'),\n            'visibility' => 'public',\n            'url' => env('APP_URL').'/uploads',\n        ],\n        'qiniu' => [\n            'driver'  => 'qiniu',\n            'domains' => [\n                'default' => 'qiniu.qqphp.com', //你的七牛域名【融合CDN加速域名 *必填】\n                'https'   => '',                //你的HTTPS域名\n                'custom'  => '',                //你的自定义域名\n            ],\n            'access_key'=> 'Yne-lN5CK1a096l********_duEEylaoUjQAI',  //AccessKey【*必填】\n            'secret_key'=> 'I2AecMg_MHUxE********9hSWykRx3NO',       //SecretKey【*必填】\n            'bucket'    => 'leiyong-blog',  //Bucket名字【*必填】\n            'notify_url'=> '',              //持久化处理回调地址\n            'url'       => '',              //填写文件访问根url\n            'access'    => '',              //空间访问控制 public 或 private\n        ],\n    ],\n\n];\n"
  },
  {
    "path": "config/hashing.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Hash Driver\n    |--------------------------------------------------------------------------\n    |\n    | This option controls the default hash driver that will be used to hash\n    | passwords for your application. By default, the bcrypt algorithm is\n    | used; however, you remain free to modify this option if you wish.\n    |\n    | Supported: \"bcrypt\", \"argon\", \"argon2id\"\n    |\n    */\n\n    'driver' => 'bcrypt',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Bcrypt Options\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the configuration options that should be used when\n    | passwords are hashed using the Bcrypt algorithm. This will allow you\n    | to control the amount of time it takes to hash the given password.\n    |\n    */\n\n    'bcrypt' => [\n        'rounds' => env('BCRYPT_ROUNDS', 10),\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Argon Options\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the configuration options that should be used when\n    | passwords are hashed using the Argon algorithm. These will allow you\n    | to control the amount of time it takes to hash the given password.\n    |\n    */\n\n    'argon' => [\n        'memory' => 1024,\n        'threads' => 2,\n        'time' => 2,\n    ],\n\n];\n"
  },
  {
    "path": "config/logging.php",
    "content": "<?php\n\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\SyslogUdpHandler;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Log Channel\n    |--------------------------------------------------------------------------\n    |\n    | This option defines the default log channel that gets used when writing\n    | messages to the logs. The name specified in this option should match\n    | one of the channels defined in the \"channels\" configuration array.\n    |\n    */\n\n    'default' => env('LOG_CHANNEL', 'stack'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Log Channels\n    |--------------------------------------------------------------------------\n    |\n    | Here you may configure the log channels for your application. Out of\n    | the box, Laravel uses the Monolog PHP logging library. This gives\n    | you a variety of powerful log handlers / formatters to utilize.\n    |\n    | Available Drivers: \"single\", \"daily\", \"slack\", \"syslog\",\n    |                    \"errorlog\", \"monolog\",\n    |                    \"custom\", \"stack\"\n    |\n    */\n\n    'channels' => [\n        'stack' => [\n            'driver' => 'stack',\n            'channels' => ['daily'],\n            'ignore_exceptions' => false,\n        ],\n\n        'single' => [\n            'driver' => 'single',\n            'path' => storage_path('logs/laravel.log'),\n            'level' => 'debug',\n        ],\n\n        'daily' => [\n            'driver' => 'daily',\n            'path' => storage_path('logs/laravel.log'),\n            'level' => 'debug',\n            'days' => 14,\n        ],\n\n        'slack' => [\n            'driver' => 'slack',\n            'url' => env('LOG_SLACK_WEBHOOK_URL'),\n            'username' => 'Laravel Log',\n            'emoji' => ':boom:',\n            'level' => 'critical',\n        ],\n\n        'papertrail' => [\n            'driver' => 'monolog',\n            'level' => 'debug',\n            'handler' => SyslogUdpHandler::class,\n            'handler_with' => [\n                'host' => env('PAPERTRAIL_URL'),\n                'port' => env('PAPERTRAIL_PORT'),\n            ],\n        ],\n\n        'stderr' => [\n            'driver' => 'monolog',\n            'handler' => StreamHandler::class,\n            'formatter' => env('LOG_STDERR_FORMATTER'),\n            'with' => [\n                'stream' => 'php://stderr',\n            ],\n        ],\n\n        'syslog' => [\n            'driver' => 'syslog',\n            'level' => 'debug',\n        ],\n\n        'errorlog' => [\n            'driver' => 'errorlog',\n            'level' => 'debug',\n        ],\n    ],\n\n];\n"
  },
  {
    "path": "config/mail.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Mail Driver\n    |--------------------------------------------------------------------------\n    |\n    | Laravel supports both SMTP and PHP's \"mail\" function as drivers for the\n    | sending of e-mail. You may specify which one you're using throughout\n    | your application here. By default, Laravel is setup for SMTP mail.\n    |\n    | Supported: \"smtp\", \"sendmail\", \"mailgun\", \"mandrill\", \"ses\",\n    |            \"sparkpost\", \"postmark\", \"log\", \"array\"\n    |\n    */\n\n    'driver' => env('MAIL_DRIVER', 'smtp'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | SMTP Host Address\n    |--------------------------------------------------------------------------\n    |\n    | Here you may provide the host address of the SMTP server used by your\n    | applications. A default option is provided that is compatible with\n    | the Mailgun mail service which will provide reliable deliveries.\n    |\n    */\n\n    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | SMTP Host Port\n    |--------------------------------------------------------------------------\n    |\n    | This is the SMTP port used by your application to deliver e-mails to\n    | users of the application. Like the host we have set this value to\n    | stay compatible with the Mailgun e-mail application by default.\n    |\n    */\n\n    'port' => env('MAIL_PORT', 587),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Global \"From\" Address\n    |--------------------------------------------------------------------------\n    |\n    | You may wish for all e-mails sent by your application to be sent from\n    | the same address. Here, you may specify a name and address that is\n    | used globally for all e-mails that are sent by your application.\n    |\n    */\n\n    'from' => [\n        'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),\n        'name' => env('MAIL_FROM_NAME', 'Example'),\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | E-Mail Encryption Protocol\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the encryption protocol that should be used when\n    | the application send e-mail messages. A sensible default using the\n    | transport layer security protocol should provide great security.\n    |\n    */\n\n    'encryption' => env('MAIL_ENCRYPTION', 'tls'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | SMTP Server Username\n    |--------------------------------------------------------------------------\n    |\n    | If your SMTP server requires a username for authentication, you should\n    | set it here. This will get used to authenticate with your server on\n    | connection. You may also set the \"password\" value below this one.\n    |\n    */\n\n    'username' => env('MAIL_USERNAME'),\n\n    'password' => env('MAIL_PASSWORD'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Sendmail System Path\n    |--------------------------------------------------------------------------\n    |\n    | When using the \"sendmail\" driver to send e-mails, we will need to know\n    | the path to where Sendmail lives on this server. A default path has\n    | been provided here, which will work well on most of your systems.\n    |\n    */\n\n    'sendmail' => '/usr/sbin/sendmail -bs',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Markdown Mail Settings\n    |--------------------------------------------------------------------------\n    |\n    | If you are using Markdown based email rendering, you may configure your\n    | theme and component paths here, allowing you to customize the design\n    | of the emails. Or, you may simply stick with the Laravel defaults!\n    |\n    */\n\n    'markdown' => [\n        'theme' => 'default',\n\n        'paths' => [\n            resource_path('views/vendor/mail'),\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Log Channel\n    |--------------------------------------------------------------------------\n    |\n    | If you are using the \"log\" driver, you may specify the logging channel\n    | if you prefer to keep mail messages separate from other log entries\n    | for simpler reading. Otherwise, the default channel will be used.\n    |\n    */\n\n    'log_channel' => env('MAIL_LOG_CHANNEL'),\n\n];\n"
  },
  {
    "path": "config/queue.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Queue Connection Name\n    |--------------------------------------------------------------------------\n    |\n    | Laravel's queue API supports an assortment of back-ends via a single\n    | API, giving you convenient access to each back-end using the same\n    | syntax for every one. Here you may define a default connection.\n    |\n    */\n\n    'default' => env('QUEUE_CONNECTION', 'sync'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Queue Connections\n    |--------------------------------------------------------------------------\n    |\n    | Here you may configure the connection information for each server that\n    | is used by your application. A default configuration has been added\n    | for each back-end shipped with Laravel. You are free to add more.\n    |\n    | Drivers: \"sync\", \"database\", \"beanstalkd\", \"sqs\", \"redis\", \"null\"\n    |\n    */\n\n    'connections' => [\n\n        'sync' => [\n            'driver' => 'sync',\n        ],\n\n        'database' => [\n            'driver' => 'database',\n            'table' => 'jobs',\n            'queue' => 'default',\n            'retry_after' => 90,\n        ],\n\n        'beanstalkd' => [\n            'driver' => 'beanstalkd',\n            'host' => 'localhost',\n            'queue' => 'default',\n            'retry_after' => 90,\n            'block_for' => 0,\n        ],\n\n        'sqs' => [\n            'driver' => 'sqs',\n            'key' => env('AWS_ACCESS_KEY_ID'),\n            'secret' => env('AWS_SECRET_ACCESS_KEY'),\n            'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),\n            'queue' => env('SQS_QUEUE', 'your-queue-name'),\n            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),\n        ],\n\n        'redis' => [\n            'driver' => 'redis',\n            'connection' => 'default',\n            'queue' => env('REDIS_QUEUE', 'default'),\n            'retry_after' => 90,\n            'block_for' => null,\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Failed Queue Jobs\n    |--------------------------------------------------------------------------\n    |\n    | These options configure the behavior of failed queue job logging so you\n    | can control which database and table are used to store the jobs that\n    | have failed. You may change them to any database / table you wish.\n    |\n    */\n\n    'failed' => [\n        'database' => env('DB_CONNECTION', 'mysql'),\n        'table' => 'failed_jobs',\n    ],\n\n];\n"
  },
  {
    "path": "config/services.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Third Party Services\n    |--------------------------------------------------------------------------\n    |\n    | This file is for storing the credentials for third party services such\n    | as Stripe, Mailgun, SparkPost and others. This file provides a sane\n    | default location for this type of information, allowing packages\n    | to have a conventional place to find your various credentials.\n    |\n    */\n\n    'mailgun' => [\n        'domain' => env('MAILGUN_DOMAIN'),\n        'secret' => env('MAILGUN_SECRET'),\n        'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),\n    ],\n\n    'postmark' => [\n        'token' => env('POSTMARK_TOKEN'),\n    ],\n\n    'ses' => [\n        'key' => env('AWS_ACCESS_KEY_ID'),\n        'secret' => env('AWS_SECRET_ACCESS_KEY'),\n        'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),\n    ],\n\n    'sparkpost' => [\n        'secret' => env('SPARKPOST_SECRET'),\n    ],\n\n    'stripe' => [\n        'model' => App\\User::class,\n        'key' => env('STRIPE_KEY'),\n        'secret' => env('STRIPE_SECRET'),\n        'webhook' => [\n            'secret' => env('STRIPE_WEBHOOK_SECRET'),\n            'tolerance' => env('STRIPE_WEBHOOK_TOLERANCE', 300),\n        ],\n    ],\n\n];\n"
  },
  {
    "path": "config/session.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Str;\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Default Session Driver\n    |--------------------------------------------------------------------------\n    |\n    | This option controls the default session \"driver\" that will be used on\n    | requests. By default, we will use the lightweight native driver but\n    | you may specify any of the other wonderful drivers provided here.\n    |\n    | Supported: \"file\", \"cookie\", \"database\", \"apc\",\n    |            \"memcached\", \"redis\", \"dynamodb\", \"array\"\n    |\n    */\n\n    'driver' => env('SESSION_DRIVER', 'file'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Lifetime\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify the number of minutes that you wish the session\n    | to be allowed to remain idle before it expires. If you want them\n    | to immediately expire on the browser closing, set that option.\n    |\n    */\n\n    'lifetime' => env('SESSION_LIFETIME', 120),\n\n    'expire_on_close' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Encryption\n    |--------------------------------------------------------------------------\n    |\n    | This option allows you to easily specify that all of your session data\n    | should be encrypted before it is stored. All encryption will be run\n    | automatically by Laravel and you can use the Session like normal.\n    |\n    */\n\n    'encrypt' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session File Location\n    |--------------------------------------------------------------------------\n    |\n    | When using the native session driver, we need a location where session\n    | files may be stored. A default has been set for you but a different\n    | location may be specified. This is only needed for file sessions.\n    |\n    */\n\n    'files' => storage_path('framework/sessions'),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Database Connection\n    |--------------------------------------------------------------------------\n    |\n    | When using the \"database\" or \"redis\" session drivers, you may specify a\n    | connection that should be used to manage these sessions. This should\n    | correspond to a connection in your database configuration options.\n    |\n    */\n\n    'connection' => env('SESSION_CONNECTION', null),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Database Table\n    |--------------------------------------------------------------------------\n    |\n    | When using the \"database\" session driver, you may specify the table we\n    | should use to manage the sessions. Of course, a sensible default is\n    | provided for you; however, you are free to change this as needed.\n    |\n    */\n\n    'table' => 'sessions',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Cache Store\n    |--------------------------------------------------------------------------\n    |\n    | When using the \"apc\", \"memcached\", or \"dynamodb\" session drivers you may\n    | list a cache store that should be used for these sessions. This value\n    | must match with one of the application's configured cache \"stores\".\n    |\n    */\n\n    'store' => env('SESSION_STORE', null),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Sweeping Lottery\n    |--------------------------------------------------------------------------\n    |\n    | Some session drivers must manually sweep their storage location to get\n    | rid of old sessions from storage. Here are the chances that it will\n    | happen on a given request. By default, the odds are 2 out of 100.\n    |\n    */\n\n    'lottery' => [2, 100],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Cookie Name\n    |--------------------------------------------------------------------------\n    |\n    | Here you may change the name of the cookie used to identify a session\n    | instance by ID. The name specified here will get used every time a\n    | new session cookie is created by the framework for every driver.\n    |\n    */\n\n    'cookie' => env(\n        'SESSION_COOKIE',\n        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'\n    ),\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Cookie Path\n    |--------------------------------------------------------------------------\n    |\n    | The session cookie path determines the path for which the cookie will\n    | be regarded as available. Typically, this will be the root path of\n    | your application but you are free to change this when necessary.\n    |\n    */\n\n    'path' => '/',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Session Cookie Domain\n    |--------------------------------------------------------------------------\n    |\n    | Here you may change the domain of the cookie used to identify a session\n    | in your application. This will determine which domains the cookie is\n    | available to in your application. A sensible default has been set.\n    |\n    */\n\n    'domain' => env('SESSION_DOMAIN', null),\n\n    /*\n    |--------------------------------------------------------------------------\n    | HTTPS Only Cookies\n    |--------------------------------------------------------------------------\n    |\n    | By setting this option to true, session cookies will only be sent back\n    | to the server if the browser has a HTTPS connection. This will keep\n    | the cookie from being sent to you if it can not be done securely.\n    |\n    */\n\n    'secure' => env('SESSION_SECURE_COOKIE', false),\n\n    /*\n    |--------------------------------------------------------------------------\n    | HTTP Access Only\n    |--------------------------------------------------------------------------\n    |\n    | Setting this value to true will prevent JavaScript from accessing the\n    | value of the cookie and the cookie will only be accessible through\n    | the HTTP protocol. You are free to modify this option if needed.\n    |\n    */\n\n    'http_only' => true,\n\n    /*\n    |--------------------------------------------------------------------------\n    | Same-Site Cookies\n    |--------------------------------------------------------------------------\n    |\n    | This option determines how your cookies behave when cross-site requests\n    | take place, and can be used to mitigate CSRF attacks. By default, we\n    | do not enable this as other CSRF protection services are in place.\n    |\n    | Supported: \"lax\", \"strict\"\n    |\n    */\n\n    'same_site' => null,\n\n];\n"
  },
  {
    "path": "config/static.php",
    "content": "<?php\n/**\n * Created by PhpStorm.\n * User: PHP是世界上最好的语言\n * Date: 2019/8/30/030\n * Time: 10:40\n */\n//前台静态资源文件存放目录\ndefine(\"__STATIC_HOME__\",\"/static/home\");\ndefine(\"__STATIC_UPLOADS__\",\"/uploads\");"
  },
  {
    "path": "config/view.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | View Storage Paths\n    |--------------------------------------------------------------------------\n    |\n    | Most templating systems load templates from disk. Here you may specify\n    | an array of paths that should be checked for your views. Of course\n    | the usual Laravel view path has already been registered for you.\n    |\n    */\n\n    'paths' => [\n        resource_path('views'),\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Compiled View Path\n    |--------------------------------------------------------------------------\n    |\n    | This option determines where all the compiled Blade templates will be\n    | stored for your application. Typically, this is within the storage\n    | directory. However, as usual, you are free to change this value.\n    |\n    */\n\n    'compiled' => env(\n        'VIEW_COMPILED_PATH',\n        realpath(storage_path('framework/views'))\n    ),\n\n];\n"
  },
  {
    "path": "database/.gitignore",
    "content": "*.sqlite\n*.sqlite-journal\n"
  },
  {
    "path": "database/factories/UserFactory.php",
    "content": "<?php\n\n/** @var \\Illuminate\\Database\\Eloquent\\Factory $factory */\nuse App\\User;\nuse Illuminate\\Support\\Str;\nuse Faker\\Generator as Faker;\n\n/*\n|--------------------------------------------------------------------------\n| Model Factories\n|--------------------------------------------------------------------------\n|\n| This directory should contain each of the model factory definitions for\n| your application. Factories provide a convenient way to generate new\n| model instances for testing / seeding your application's database.\n|\n*/\n\n$factory->define(User::class, function (Faker $faker) {\n    return [\n        'name' => $faker->name,\n        'email' => $faker->unique()->safeEmail,\n        'email_verified_at' => now(),\n        'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password\n        'remember_token' => Str::random(10),\n    ];\n});\n"
  },
  {
    "path": "database/migrations/2019_08_24_022201_create_blog_nav_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('nav_title',150)->comment('导航名称');\n            $table->integer('nav_type')->default(0)->comment('导航类型【1文章2照片3音乐4视频5软件(分享1)6图书(分享2)】');\n            $table->tinyInteger('nav_open')->default(1)->comment('导航是否启用【1启用2关闭】');\n            $table->integer('nav_sort')->default(100)->comment('导航排序');\n            $table->integer('nav_pid')->default(0)->comment('导航上级id');\n            $table->string('nav_route',100)->nullable(true)->comment('导航前端路由');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025115_create_blog_nav_article_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavArticleTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_article', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('article_title')->comment('文章标题');\n            $table->string('article_tag')->nullable(true)->comment('文章标签');\n            $table->text('article_content')->comment('文章内容');\n            $table->text('article_describe')->nullable(true)->comment('文章描述');\n            $table->integer('article_click')->default(0)->comment('点击量');\n            $table->tinyInteger('article_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('article_sort')->default(100)->comment('文章排序');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_article');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025134_create_blog_nav_photo_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavPhotoTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_photo', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('photo_title')->comment('相册标题');\n            $table->string('photo_img')->comment('相册封面');\n            $table->string('photo_tag')->nullable(true)->comment('相册标签');\n            $table->text('photo_json')->nullable(true)->comment('相册上传图片');\n            $table->integer('photo_click')->default(0)->comment('点击量');\n            $table->tinyInteger('photo_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('photo_sort')->default(100)->comment('相册排序');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_photo');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025151_create_blog_nav_music_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavMusicTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_music', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('music_title')->comment('歌单标题');\n            $table->text('music_describe')->comment('歌单描述');\n            $table->string('music_tag')->nullable(true)->comment('歌单标签');\n            $table->text('music_json')->nullable(true)->comment('歌单上传歌曲');\n            $table->string('music_img')->comment('歌单封面');\n            $table->integer('music_click')->default(0)->comment('点击量');\n            $table->tinyInteger('music_show')->default(1)->comment('是否显示【1是2否】');\n            $table->tinyInteger('music_play')->default(1)->comment('添加播放列表【1是2否】');\n            $table->integer('music_sort')->default(100)->comment('歌单排序');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_music');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025209_create_blog_nav_video_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavVideoTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_video', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('video_title')->comment('视频标题');\n            $table->text('video_describe')->comment('视频描述');\n            $table->string('video_tag')->nullable(true)->comment('视频标签');\n            $table->string('video_img')->comment('视频封面');\n            $table->string('video_link')->comment('视频路径');\n            $table->integer('video_click')->default(0)->comment('点击量');\n            $table->integer('video_sort')->default(100)->comment('视频排序');\n            $table->integer('video_recommend')->default(2)->comment('是否推荐【1是2否】');\n            $table->tinyInteger('video_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_video');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025230_create_blog_nav_share1_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavShare1Table extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_share1', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('share_title')->comment('分享标题');\n            $table->string('share_icon')->comment('icon图标');\n            $table->string('share_src')->comment('分享封面');\n            $table->text('share_intro')->nullable(true)->comment('描述');\n            $table->text('share_describe')->nullable(true)->comment('内容详情');\n            $table->string('share_link')->comment('访问链接');\n            $table->integer('share_sort')->default(100)->comment('排序');\n            $table->tinyInteger('share_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_share1');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_24_025240_create_blog_nav_share2_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNavShare2Table extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_nav_share2', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('share_title')->comment('分享标题');\n            $table->text('share_describe')->comment('分享描述');\n            $table->string('share_note')->nullable(true)->comment('分享副标题');\n            $table->string('share_src')->comment('分享封面');\n            $table->string('share_link')->comment('分享链接');\n            $table->integer('share_sort')->default(100)->comment('排序');\n            $table->tinyInteger('share_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('nav_id')->default(0)->comment('所属导航id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_nav_share2');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_25_102118_create_blog_message_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogMessageTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_message', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->text('msg_content')->comment('留言内容');\n            $table->string('msg_blog_name')->comment('留言博客名称');\n            $table->string('msg_blog_link')->comment('留言博客链接');\n            $table->string('msg_blog_contact')->comment('留言联系方式');\n            $table->string('msg_ip')->nullable(true)->comment('留言人ip');\n            $table->tinyInteger('msg_show')->default(1)->comment('是否显示【1是2否】');\n            $table->tinyInteger('msg_type')->nullable(true)->default(0)->comment('留言类型【1文章2视频3留言板块】');\n            $table->integer('foreign_id')->nullable(true)->default(0)->comment('所属类型主键id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_message');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_25_131502_create_blog_friends_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogFriendsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_friends', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('friends_title')->comment('博客名称');\n            $table->string('friends_link')->comment('博客链接');\n            $table->string('friends_describe')->nullable(true)->comment('博客描述');\n            $table->string('friends_contact')->comment('联系方式');\n            $table->tinyInteger('friends_show')->default(1)->comment('是否显示【1是2否】');\n            $table->tinyInteger('friends_recommend')->default(2)->comment('是否显示【1是2否】');\n            $table->tinyInteger('friends_type')->default(0)->comment('添加方式【1申请添加2后台添加】');\n            $table->integer('friends_sort')->default(100)->comment('排序');\n            $table->tinyInteger('friends_examine')->default(2)->comment('审核状态【1通过2正在审核3审核失败】');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_friends');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_26_021306_create_blog_apply_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogApplyTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_apply', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('apply_title')->comment('申请人博客名称');\n            $table->string('apply_link')->comment('申请人博客网址');\n            $table->string('apply_contact')->comment('申请人联系方式');\n            $table->string('apply_ip')->comment('申请人IP');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_apply');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_26_021945_create_blog_about_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogAboutTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_about', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('about_title')->comment('关于标题');\n            $table->text('about_describe')->nullable(true)->comment('关于描述');\n            $table->string('about_type')->comment('关于类型【1单页2卡片页3图标页】');\n            $table->integer('about_sort')->default(100)->comment('关于排序');\n            $table->tinyInteger('about_show')->default(1)->comment('是否显示【1是2否】');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_about');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_26_104822_create_blog_upload_files_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogUploadFilesTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_upload_files', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('img_title')->comment('文件名称');\n            $table->string('img_src')->comment('文件路径');\n            $table->string('img_suffix',40)->comment('文件后缀');\n            $table->integer('img_type')->comment('文件类型【1文章内容上传】');\n            $table->string('img_ip')->comment('上传ip');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_upload_files');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_29_042857_create_blog_notices_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogNoticesTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_notices', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('notice_title',100)->comment('公告标题');\n            $table->longText('notice_content')->comment('公告内容');\n            $table->integer('notice_sort')->default(100)->comment('公告排序');\n            $table->tinyInteger('notice_show')->default(1)->comment('是否显示【1是2否】');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_notices');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_29_140729_create_blog_about_articles_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogAboutArticlesTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_about_articles', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('articles_title')->comment('单页标题');\n            $table->longText('articles_content')->comment('单页内容');\n            $table->tinyInteger('article_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('article_sort')->default(100)->comment('单页排序');\n            $table->integer('notice_id')->default(0)->comment('所属关于id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_about_articles');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_29_140755_create_blog_about_card_ones_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogAboutCardOnesTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_about_card_ones', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('card_title',100)->comment('卡片标题');\n            $table->string('card_icon',50)->comment('卡片ICON');\n            $table->text('card_content')->comment('卡片描述');\n            $table->tinyInteger('card_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('card_sort')->default(100)->comment('卡片排序');\n            $table->integer('notice_id')->default(0)->comment('所属关于id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_about_card_ones');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_08_29_140807_create_blog_about_card_twos_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogAboutCardTwosTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_about_card_twos', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('card_title',100)->comment('卡片标题');\n            $table->string('card_icon',50)->comment('卡片ICON');\n            $table->string('card_background',100)->nullable(true)->comment('卡片背景');\n            $table->tinyInteger('card_show')->default(1)->comment('是否显示【1是2否】');\n            $table->integer('card_sort')->default(100)->comment('卡片排序');\n            $table->integer('notice_id')->default(0)->comment('所属关于id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_about_card_twos');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_09_15_132631_create_blog_subscribes_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogSubscribesTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_subscribes', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('email',100)->comment('申请邮箱');\n            $table->string('ip',50)->nullable(true)->comment('申请IP');\n            $table->tinyInteger('is_pass')->default(1)->comment('审核状态【1待审核2审核通过3冻结封禁】');\n            $table->tinyInteger('add_mode')->default(1)->comment('申请方式【1申请添加2后台添加】');\n            $table->integer('aid')->default(0)->nullable(true)->comment('文章id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_subscribes');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_09_27_084944_create_blog_tags_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateBlogTagsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('blog_tags', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('tag_content')->comment('标签内容');\n            $table->integer('tag_click')->default(0)->comment('点击量');\n            $table->integer('a_id')->default(0)->comment('文章id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('blog_tags');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_10_07_060955_create_jobs_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateJobsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('jobs', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('queue')->index();\n            $table->longText('payload');\n            $table->unsignedTinyInteger('attempts');\n            $table->unsignedInteger('reserved_at')->nullable();\n            $table->unsignedInteger('available_at');\n            $table->unsignedInteger('created_at');\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('jobs');\n    }\n}\n"
  },
  {
    "path": "database/migrations/2019_10_07_071533_create_failed_jobs_table.php",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateFailedJobsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('failed_jobs', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->text('connection');\n            $table->text('queue');\n            $table->longText('payload');\n            $table->longText('exception');\n            $table->timestamp('failed_at')->useCurrent();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('failed_jobs');\n    }\n}\n"
  },
  {
    "path": "database/seeds/BlogArticleTableSeeder.php",
    "content": "<?php\n\nuse Illuminate\\Database\\Seeder;\n\nclass BlogArticleTableSeeder extends Seeder\n{\n    /**\n     * Run the database seeds.\n     *\n     * @return void\n     */\n    public function run()\n    {\n        $nav_id = [3,4,14];\n        for ($i = 0 ;$i < 100;$i++) {\n            DB::table('blog_nav_article')->insert([\n                'article_title' => Str::random(10),\n                'article_content' => Str::random(200),\n                'article_describe' => Str::random(200),\n                'article_click' => rand(1, 99999),\n                'article_like' => rand(1, 99999),\n                'article_collect' => rand(1, 99999),\n                'article_share' => rand(1, 99999),\n                'article_show' => 1,\n                'article_sort' => rand(1, 99999),\n                'nav_id' => $nav_id[array_rand($nav_id)],\n                'created_at' => date('Y-m-d H:i:s',time()),\n                'updated_at' => date('Y-m-d H:i:s',time())\n            ]);\n        }\n    }\n}\n"
  },
  {
    "path": "database/seeds/BlogSubscribeSeeder.php",
    "content": "<?php\n\nuse Illuminate\\Database\\Seeder;\n\nclass BlogSubscribeSeeder extends Seeder\n{\n    /**\n     * Run the database seeds.\n     *\n     * @return void\n     */\n    public function run()\n    {\n        for ($i = 0;$i < 1000;$i++){\n            DB::table('blog_subscribes')->insert([\n                'is_pass' =>2,\n                'email' => Str::random(10).'@gmail.com',\n                'add_mode' =>2,\n            ]);\n        }\n    }\n}\n"
  },
  {
    "path": "database/seeds/DatabaseSeeder.php",
    "content": "<?php\n\nuse Illuminate\\Database\\Seeder;\n\nclass DatabaseSeeder extends Seeder\n{\n    /**\n     * Seed the application's database.\n     *\n     * @return void\n     */\n    public function run()\n    {\n         $this->call([\n             BlogArticleTableSeeder::class\n         ]);\n\n    }\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n    \"private\": true,\n    \"scripts\": {\n        \"dev\": \"npm run development\",\n        \"development\": \"cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js\",\n        \"watch\": \"npm run development -- --watch\",\n        \"watch-poll\": \"npm run watch -- --watch-poll\",\n        \"hot\": \"cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js\",\n        \"prod\": \"npm run production\",\n        \"production\": \"cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js\"\n    },\n    \"devDependencies\": {\n        \"axios\": \"^0.19\",\n        \"bootstrap\": \"^4.1.0\",\n        \"cross-env\": \"^5.1\",\n        \"jquery\": \"^3.2\",\n        \"laravel-mix\": \"^4.0.7\",\n        \"lodash\": \"^4.17.5\",\n        \"popper.js\": \"^1.12\",\n        \"resolve-url-loader\": \"^2.3.1\",\n        \"sass\": \"^1.15.2\",\n        \"sass-loader\": \"^7.1.0\",\n        \"vue\": \"^2.5.17\"\n    }\n}\n"
  },
  {
    "path": "php",
    "content": ""
  },
  {
    "path": "phpunit.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit backupGlobals=\"false\"\n         backupStaticAttributes=\"false\"\n         bootstrap=\"vendor/autoload.php\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n         processIsolation=\"false\"\n         stopOnFailure=\"false\">\n    <testsuites>\n        <testsuite name=\"Unit\">\n            <directory suffix=\"Test.php\">./tests/Unit</directory>\n        </testsuite>\n\n        <testsuite name=\"Feature\">\n            <directory suffix=\"Test.php\">./tests/Feature</directory>\n        </testsuite>\n    </testsuites>\n    <filter>\n        <whitelist processUncoveredFilesFromWhitelist=\"true\">\n            <directory suffix=\".php\">./app</directory>\n        </whitelist>\n    </filter>\n    <php>\n        <server name=\"APP_ENV\" value=\"testing\"/>\n        <server name=\"BCRYPT_ROUNDS\" value=\"4\"/>\n        <server name=\"CACHE_DRIVER\" value=\"array\"/>\n        <server name=\"MAIL_DRIVER\" value=\"array\"/>\n        <server name=\"QUEUE_CONNECTION\" value=\"sync\"/>\n        <server name=\"SESSION_DRIVER\" value=\"array\"/>\n    </php>\n</phpunit>\n"
  },
  {
    "path": "public/.htaccess",
    "content": "Options +FollowSymLinks -Indexes\nRewriteEngine On\n\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteRule ^ index.php [L]\n\n"
  },
  {
    "path": "public/css/app.css",
    "content": "@import url(https://fonts.googleapis.com/css?family=Nunito);\n\n/*!\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */:root{--blue:#3490dc;--indigo:#6574cd;--purple:#9561e2;--pink:#f66d9b;--red:#e3342f;--orange:#f6993f;--yellow:#ffed4a;--green:#38c172;--teal:#4dc0b5;--cyan:#6cb2eb;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#3490dc;--secondary:#6c757d;--success:#38c172;--info:#6cb2eb;--warning:#ffed4a;--danger:#e3342f;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:\"Nunito\",sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:400;line-height:1.6;color:#212529;text-align:left;background-color:#f8fafc}[tabindex=\"-1\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{font-style:normal;line-height:inherit}address,dl,ol,ul{margin-bottom:1rem}dl,ol,ul{margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#3490dc;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#1d68a7;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}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{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.25rem}.h2,h2{font-size:1.8rem}.h3,h3{font-size:1.575rem}.h4,h4{font-size:1.35rem}.h5,h5{font-size:1.125rem}.h6,h6{font-size:.9rem}.lead{font-size:1.125rem;font-weight:300}.display-1{font-size:6rem}.display-1,.display-2{font-weight:300;line-height:1.2}.display-2{font-size:5.5rem}.display-3{font-size:4.5rem}.display-3,.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.125rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer:before{content:\"\\2014\\A0\"}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#f66d9b;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#f8fafc}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#c6e0f5}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b0d4f1}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c7eed8}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b3e8ca}.table-info,.table-info>td,.table-info>th{background-color:#d6e9f9}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c0ddf6}.table-warning,.table-warning>td,.table-warning>th{background-color:#fffacc}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#fff8b3}.table-danger,.table-danger>td,.table-danger>th{background-color:#f7c6c5}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f4b0af}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#f8fafc;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#f8fafc;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:hsla(0,0%,100%,.05)}.table-dark.table-hover tbody tr:hover{background-color:hsla(0,0%,100%,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.19rem + 2px);padding:.375rem .75rem;font-size:.9rem;line-height:1.6;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#a1cbef;outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.6}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.125rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.7875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.6;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.68125rem + 2px);padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.6875rem + 2px);padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#38c172}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.7875rem;line-height:1.6;color:#fff;background-color:rgba(56,193,114,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#38c172}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#38c172;box-shadow:0 0 0 .2rem rgba(56,193,114,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#38c172}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#38c172}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{background-color:#98e1b7}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .custom-control-input:valid:checked~.custom-control-label:before{background-color:#5cd08d}.custom-control-input.is-valid:focus~.custom-control-label:before,.was-validated .custom-control-input:valid:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(56,193,114,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#38c172}.custom-file-input.is-valid~.custom-file-label:after,.was-validated .custom-file-input:valid~.custom-file-label:after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(56,193,114,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e3342f}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.7875rem;line-height:1.6;color:#fff;background-color:rgba(227,52,47,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#e3342f}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#e3342f;box-shadow:0 0 0 .2rem rgba(227,52,47,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#e3342f}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#e3342f}.custom-control-input.is-invalid~.custom-control-label:before,.was-validated .custom-control-input:invalid~.custom-control-label:before{background-color:#f2a29f}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label:before,.was-validated .custom-control-input:invalid:checked~.custom-control-label:before{background-color:#e9605c}.custom-control-input.is-invalid:focus~.custom-control-label:before,.was-validated .custom-control-input:invalid:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(227,52,47,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#e3342f}.custom-file-input.is-invalid~.custom-file-label:after,.was-validated .custom-file-input:invalid~.custom-file-label:after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(227,52,47,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:.9rem;line-height:1.6;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-primary:hover{color:#fff;background-color:#227dc7;border-color:#2176bd}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#2176bd;border-color:#1f6fb2}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#38c172;border-color:#38c172}.btn-success:hover{color:#fff;background-color:#2fa360;border-color:#2d995b}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#38c172;border-color:#38c172}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#2d995b;border-color:#2a9055}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-info{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-info:hover{color:#fff;background-color:#4aa0e6;border-color:#3f9ae5}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-info.disabled,.btn-info:disabled{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#3f9ae5;border-color:#3495e3}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-warning{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-warning:hover{color:#212529;background-color:#ffe924;border-color:#ffe817}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#ffe817;border-color:#ffe70a}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-danger{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-danger:hover{color:#fff;background-color:#d0211c;border-color:#c51f1a}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c51f1a;border-color:#b91d19}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#3490dc;background-color:transparent;background-image:none;border-color:#3490dc}.btn-outline-primary:hover{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#3490dc;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3490dc;border-color:#3490dc}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,144,220,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#38c172;background-color:transparent;background-image:none;border-color:#38c172}.btn-outline-success:hover{color:#fff;background-color:#38c172;border-color:#38c172}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#38c172;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#38c172;border-color:#38c172}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(56,193,114,.5)}.btn-outline-info{color:#6cb2eb;background-color:transparent;background-image:none;border-color:#6cb2eb}.btn-outline-info:hover{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#6cb2eb;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#212529;background-color:#6cb2eb;border-color:#6cb2eb}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,178,235,.5)}.btn-outline-warning{color:#ffed4a;background-color:transparent;background-image:none;border-color:#ffed4a}.btn-outline-warning:hover{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffed4a;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffed4a;border-color:#ffed4a}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,237,74,.5)}.btn-outline-danger{color:#e3342f;background-color:transparent;background-image:none;border-color:#e3342f}.btn-outline-danger:hover{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#e3342f;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#e3342f;border-color:#e3342f}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(227,52,47,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#3490dc;background-color:transparent}.btn-link:hover{color:#1d68a7;background-color:transparent}.btn-link.focus,.btn-link:focus,.btn-link:hover{text-decoration:underline;border-color:transparent}.btn-link.focus,.btn-link:focus{box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:.9rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty:after{margin-left:0}.dropright .dropdown-toggle:after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle:after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\"\";display:none}.dropleft .dropdown-toggle:before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:\"\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty:after{margin-left:0}.dropleft .dropdown-toggle:before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3490dc}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.7875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:0 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group,.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropright .dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after{margin-left:0}.dropleft .dropdown-toggle-split:before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label:after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:.9rem;font-weight:400;line-height:1.6;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.6875rem + 2px);padding:.5rem 1rem;font-size:1.125rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.68125rem + 2px);padding:.25rem .5rem;font-size:.7875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.44rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label:before{color:#fff;background-color:#3490dc}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-control-input:active~.custom-control-label:before{color:#fff;background-color:#cce3f6}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label:before{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.22rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\"\"}.custom-control-label:after{background-repeat:no-repeat;background-position:50%;background-size:50% 50%}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:before{background-color:#3490dc}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{background-color:#3490dc}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-radio .custom-control-label:before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label:before{background-color:#3490dc}.custom-radio .custom-control-input:checked~.custom-control-label:after{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(52,144,220,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.19rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.6;color:#495057;vertical-align:middle;background:#fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#a1cbef;outline:0;box-shadow:0 0 0 .2rem rgba(161,203,239,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\"1\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.68125rem + 2px);font-size:75%}.custom-select-lg,.custom-select-sm{padding-top:.375rem;padding-bottom:.375rem}.custom-select-lg{height:calc(2.6875rem + 2px);font-size:125%}.custom-file{display:inline-block;margin-bottom:0}.custom-file,.custom-file-input{position:relative;width:100%;height:calc(2.19rem + 2px)}.custom-file-input{z-index:2;margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#a1cbef;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.custom-file-input:focus~.custom-file-label:after{border-color:#a1cbef}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label:after{content:\"Browse\"}.custom-file-label{left:0;z-index:1;height:calc(2.19rem + 2px);background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label,.custom-file-label:after{position:absolute;top:0;right:0;padding:.375rem .75rem;line-height:1.6;color:#495057}.custom-file-label:after{bottom:0;z-index:3;display:block;height:2.19rem;content:\"Browse\";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:none}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #f8fafc,0 0 0 .2rem rgba(52,144,220,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#cce3f6}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#cce3f6}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#3490dc;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#cce3f6}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower,.custom-range::-ms-fill-upper{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px}.custom-control-label:before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label:before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#f8fafc;border-color:#dee2e6 #dee2e6 #f8fafc}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#3490dc}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;padding:.5rem 1rem}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.32rem;padding-bottom:.32rem;margin-right:1rem;font-size:1.125rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.125rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\"\";background:no-repeat 50%;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.5);border-color:hsla(0,0%,100%,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\")}.navbar-dark .navbar-text{color:hsla(0,0%,100%,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem}.card-subtitle,.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.75rem;border-bottom:0}.card-header-pills,.card-header-tabs{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child),.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\"/\"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#3490dc;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#1d68a7;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(52,144,220,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#3490dc;border-color:#3490dc}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.125rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.7875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#3490dc}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#2176bd}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#38c172}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#2d995b}.badge-info{color:#212529;background-color:#6cb2eb}.badge-info[href]:focus,.badge-info[href]:hover{color:#212529;text-decoration:none;background-color:#3f9ae5}.badge-warning{color:#212529;background-color:#ffed4a}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#ffe817}.badge-danger{color:#fff;background-color:#e3342f}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#c51f1a}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.85rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#1b4b72;background-color:#d6e9f8;border-color:#c6e0f5}.alert-primary hr{border-top-color:#b0d4f1}.alert-primary .alert-link{color:#113049}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#1d643b;background-color:#d7f3e3;border-color:#c7eed8}.alert-success hr{border-top-color:#b3e8ca}.alert-success .alert-link{color:#123c24}.alert-info{color:#385d7a;background-color:#e2f0fb;border-color:#d6e9f9}.alert-info hr{border-top-color:#c0ddf6}.alert-info .alert-link{color:#284257}.alert-warning{color:#857b26;background-color:#fffbdb;border-color:#fffacc}.alert-warning hr{border-top-color:#fff8b3}.alert-warning .alert-link{color:#5d561b}.alert-danger{color:#761b18;background-color:#f9d6d5;border-color:#f7c6c5}.alert-danger hr{border-top-color:#f4b0af}.alert-danger .alert-link{color:#4c110f}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.675rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#3490dc;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#3490dc;border-color:#3490dc}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#1b4b72;background-color:#c6e0f5}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#1b4b72;background-color:#b0d4f1}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1b4b72;border-color:#1b4b72}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#1d643b;background-color:#c7eed8}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#1d643b;background-color:#b3e8ca}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#1d643b;border-color:#1d643b}.list-group-item-info{color:#385d7a;background-color:#d6e9f9}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#385d7a;background-color:#c0ddf6}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#385d7a;border-color:#385d7a}.list-group-item-warning{color:#857b26;background-color:#fffacc}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#857b26;background-color:#fff8b3}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#857b26;border-color:#857b26}.list-group-item-danger{color:#761b18;background-color:#f7c6c5}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#761b18;background-color:#f4b0af}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#761b18;border-color:#761b18}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.35rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translateY(-25%);transform:translateY(-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1rem);content:\"\"}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;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}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.6}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered:before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:Nunito,sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow:before,.bs-tooltip-top .arrow:before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow:before,.bs-tooltip-right .arrow:before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow:before,.bs-tooltip-bottom .arrow:before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow:before,.bs-tooltip-left .arrow:before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:Nunito,sans-serif;font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.7875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover,.popover .arrow{position:absolute;display:block}.popover .arrow{width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow:after,.popover .arrow:before{position:absolute;display:block;content:\"\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=top] .arrow:after,.bs-popover-auto[x-placement^=top] .arrow:before,.bs-popover-top .arrow:after,.bs-popover-top .arrow:before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow:before,.bs-popover-top .arrow:before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow:after,.bs-popover-top .arrow:after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow:after,.bs-popover-auto[x-placement^=right] .arrow:before,.bs-popover-right .arrow:after,.bs-popover-right .arrow:before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow:before,.bs-popover-right .arrow:before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow:after,.bs-popover-right .arrow:after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc(-.5rem + -1px)}.bs-popover-auto[x-placement^=bottom] .arrow:after,.bs-popover-auto[x-placement^=bottom] .arrow:before,.bs-popover-bottom .arrow:after,.bs-popover-bottom .arrow:before{border-width:0 .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow:before,.bs-popover-bottom .arrow:before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow:after,.bs-popover-bottom .arrow:after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header:before,.bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\"\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc(-.5rem + -1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow:after,.bs-popover-auto[x-placement^=left] .arrow:before,.bs-popover-left .arrow:after,.bs-popover-left .arrow:before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow:before,.bs-popover-left .arrow:before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow:after,.bs-popover-left .arrow:after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:.9rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateZ(0);transform:translateZ(0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateZ(0);transform:translateZ(0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat 50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\")}.carousel-control-next-icon{background-image:url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:hsla(0,0%,100%,.5)}.carousel-indicators li:before{top:-10px}.carousel-indicators li:after,.carousel-indicators li:before{position:absolute;left:0;display:inline-block;width:100%;height:10px;content:\"\"}.carousel-indicators li:after{bottom:-10px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#3490dc!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#2176bd!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#38c172!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#2d995b!important}.bg-info{background-color:#6cb2eb!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#3f9ae5!important}.bg-warning{background-color:#ffed4a!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#ffe817!important}.bg-danger{background-color:#e3342f!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#c51f1a!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#3490dc!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#38c172!important}.border-info{border-color:#6cb2eb!important}.border-warning{border-color:#ffed4a!important}.border-danger{border-color:#e3342f!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important}.rounded-right,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-right{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-left{border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix:after{display:block;clear:both;content:\"\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive:before{display:block;content:\"\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9:before{padding-top:42.8571428571%}.embed-responsive-16by9:before{padding-top:56.25%}.embed-responsive-4by3:before{padding-top:75%}.embed-responsive-1by1:before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{top:0}.fixed-bottom,.fixed-top{position:fixed;right:0;left:0;z-index:1030}.fixed-bottom{bottom:0}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#3490dc!important}a.text-primary:focus,a.text-primary:hover{color:#2176bd!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#38c172!important}a.text-success:focus,a.text-success:hover{color:#2d995b!important}.text-info{color:#6cb2eb!important}a.text-info:focus,a.text-info:hover{color:#3f9ae5!important}.text-warning{color:#ffed4a!important}a.text-warning:focus,a.text-warning:hover{color:#ffe817!important}.text-danger{color:#e3342f!important}a.text-danger:focus,a.text-danger:hover{color:#c51f1a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:hsla(0,0%,100%,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]:after{content:\" (\" attr(title) \")\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}.navbar-laravel{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.04)}"
  },
  {
    "path": "public/index.php",
    "content": "<?php\n\n/**\n * Laravel - A PHP Framework For Web Artisans\n *\n * @package  Laravel\n * @author   Taylor Otwell <taylor@laravel.com>\n */\n\ndefine('LARAVEL_START', microtime(true));\n\n/*\n|--------------------------------------------------------------------------\n| Register The Auto Loader\n|--------------------------------------------------------------------------\n|\n| Composer provides a convenient, automatically generated class loader for\n| our application. We just need to utilize it! We'll simply require it\n| into the script here so that we don't have to worry about manual\n| loading any of our classes later on. It feels great to relax.\n|\n*/\n\nrequire __DIR__.'/../vendor/autoload.php';\n\n/*\n|--------------------------------------------------------------------------\n| Turn On The Lights\n|--------------------------------------------------------------------------\n|\n| We need to illuminate PHP development, so let us turn on the lights.\n| This bootstraps the framework and gets it ready for use, then it\n| will load up this application so that we can run it and send\n| the responses back to the browser and delight our users.\n|\n*/\n\n$app = require_once __DIR__.'/../bootstrap/app.php';\n\n/*\n|--------------------------------------------------------------------------\n| Run The Application\n|--------------------------------------------------------------------------\n|\n| Once we have the application, we can handle the incoming request\n| through the kernel, and send the associated response back to\n| the client's browser allowing them to enjoy the creative\n| and wonderful application we have prepared for them.\n|\n*/\n\n$kernel = $app->make(Illuminate\\Contracts\\Http\\Kernel::class);\n\n$response = $kernel->handle(\n    $request = Illuminate\\Http\\Request::capture()\n);\n\n$response->send();\n\n$kernel->terminate($request, $response);\n"
  },
  {
    "path": "public/js/app.js",
    "content": "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"/\",n(n.s=11)}([function(e,t,n){\"use strict\";var r=n(5),i=n(19),o=Object.prototype.toString;function a(e){return\"[object Array]\"===o.call(e)}function s(e){return null!==e&&\"object\"==typeof e}function u(e){return\"[object Function]\"===o.call(e)}function c(e,t){if(null!=e)if(\"object\"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}e.exports={isArray:a,isArrayBuffer:function(e){return\"[object ArrayBuffer]\"===o.call(e)},isBuffer:i,isFormData:function(e){return\"undefined\"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return\"string\"==typeof e},isNumber:function(e){return\"number\"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return\"[object Date]\"===o.call(e)},isFile:function(e){return\"[object File]\"===o.call(e)},isBlob:function(e){return\"[object Blob]\"===o.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return\"undefined\"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return(\"undefined\"==typeof navigator||\"ReactNative\"!==navigator.product)&&\"undefined\"!=typeof window&&\"undefined\"!=typeof document},forEach:c,merge:function e(){var t={};function n(n,r){\"object\"==typeof t[r]&&\"object\"==typeof n?t[r]=e(t[r],n):t[r]=n}for(var r=0,i=arguments.length;r<i;r++)c(arguments[r],n);return t},extend:function(e,t,n){return c(t,function(t,i){e[i]=n&&\"function\"==typeof t?r(t,n):t}),e},trim:function(e){return e.replace(/^\\s*/,\"\").replace(/\\s*$/,\"\")}}},function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t,n){\"use strict\";(function(t){var r=n(0),i=n(21),o={\"Content-Type\":\"application/x-www-form-urlencoded\"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e[\"Content-Type\"])&&(e[\"Content-Type\"]=t)}var s,u={adapter:(\"undefined\"!=typeof XMLHttpRequest?s=n(7):void 0!==t&&(s=n(7)),s),transformRequest:[function(e,t){return i(t,\"Content-Type\"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,\"application/x-www-form-urlencoded;charset=utf-8\"),e.toString()):r.isObject(e)?(a(t,\"application/json;charset=utf-8\"),JSON.stringify(e)):e}],transformResponse:[function(e){if(\"string\"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:\"application/json, text/plain, */*\"}},r.forEach([\"delete\",\"get\",\"head\"],function(e){u.headers[e]={}}),r.forEach([\"post\",\"put\",\"patch\"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,n(6))},function(e,t,n){\"use strict\";n.r(t),function(e){for(var n=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,r=[\"Edge\",\"Trident\",\"Firefox\"],i=0,o=0;o<r.length;o+=1)if(n&&navigator.userAgent.indexOf(r[o])>=0){i=1;break}var a=n&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},i))}};function s(e){return e&&\"[object Function]\"==={}.toString.call(e)}function u(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function c(e){return\"HTML\"===e.nodeName?e:e.parentNode||e.host}function l(e){if(!e)return document.body;switch(e.nodeName){case\"HTML\":case\"BODY\":return e.ownerDocument.body;case\"#document\":return e.body}var t=u(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/(auto|scroll|overlay)/.test(n+i+r)?e:l(c(e))}var f=n&&!(!window.MSInputMethodContext||!document.documentMode),p=n&&/MSIE 10/.test(navigator.userAgent);function d(e){return 11===e?f:10===e?p:f||p}function h(e){if(!e)return document.documentElement;for(var t=d(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var r=n&&n.nodeName;return r&&\"BODY\"!==r&&\"HTML\"!==r?-1!==[\"TH\",\"TD\",\"TABLE\"].indexOf(n.nodeName)&&\"static\"===u(n,\"position\")?h(n):n:e?e.ownerDocument.documentElement:document.documentElement}function v(e){return null!==e.parentNode?v(e.parentNode):e}function g(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,r=n?e:t,i=n?t:e,o=document.createRange();o.setStart(r,0),o.setEnd(i,0);var a,s,u=o.commonAncestorContainer;if(e!==u&&t!==u||r.contains(i))return\"BODY\"===(s=(a=u).nodeName)||\"HTML\"!==s&&h(a.firstElementChild)!==a?h(u):u;var c=v(e);return c.host?g(c.host,t):g(e,v(t).host)}function m(e){var t=\"top\"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"top\")?\"scrollTop\":\"scrollLeft\",n=e.nodeName;if(\"BODY\"===n||\"HTML\"===n){var r=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||r)[t]}return e[t]}function y(e,t){var n=\"x\"===t?\"Left\":\"Top\",r=\"Left\"===n?\"Right\":\"Bottom\";return parseFloat(e[\"border\"+n+\"Width\"],10)+parseFloat(e[\"border\"+r+\"Width\"],10)}function _(e,t,n,r){return Math.max(t[\"offset\"+e],t[\"scroll\"+e],n[\"client\"+e],n[\"offset\"+e],n[\"scroll\"+e],d(10)?parseInt(n[\"offset\"+e])+parseInt(r[\"margin\"+(\"Height\"===e?\"Top\":\"Left\")])+parseInt(r[\"margin\"+(\"Height\"===e?\"Bottom\":\"Right\")]):0)}function b(e){var t=e.body,n=e.documentElement,r=d(10)&&getComputedStyle(n);return{height:_(\"Height\",t,n,r),width:_(\"Width\",t,n,r)}}var w=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},T=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),E=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function C(e){return x({},e,{right:e.left+e.width,bottom:e.top+e.height})}function A(e){var t={};try{if(d(10)){t=e.getBoundingClientRect();var n=m(e,\"top\"),r=m(e,\"left\");t.top+=n,t.left+=r,t.bottom+=n,t.right+=r}else t=e.getBoundingClientRect()}catch(e){}var i={left:t.left,top:t.top,width:t.right-t.left,height:t.bottom-t.top},o=\"HTML\"===e.nodeName?b(e.ownerDocument):{},a=o.width||e.clientWidth||i.right-i.left,s=o.height||e.clientHeight||i.bottom-i.top,c=e.offsetWidth-a,l=e.offsetHeight-s;if(c||l){var f=u(e);c-=y(f,\"x\"),l-=y(f,\"y\"),i.width-=c,i.height-=l}return C(i)}function S(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=d(10),i=\"HTML\"===t.nodeName,o=A(e),a=A(t),s=l(e),c=u(t),f=parseFloat(c.borderTopWidth,10),p=parseFloat(c.borderLeftWidth,10);n&&i&&(a.top=Math.max(a.top,0),a.left=Math.max(a.left,0));var h=C({top:o.top-a.top-f,left:o.left-a.left-p,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!r&&i){var v=parseFloat(c.marginTop,10),g=parseFloat(c.marginLeft,10);h.top-=f-v,h.bottom-=f-v,h.left-=p-g,h.right-=p-g,h.marginTop=v,h.marginLeft=g}return(r&&!n?t.contains(s):t===s&&\"BODY\"!==s.nodeName)&&(h=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=m(t,\"top\"),i=m(t,\"left\"),o=n?-1:1;return e.top+=r*o,e.bottom+=r*o,e.left+=i*o,e.right+=i*o,e}(h,t)),h}function O(e){if(!e||!e.parentElement||d())return document.documentElement;for(var t=e.parentElement;t&&\"none\"===u(t,\"transform\");)t=t.parentElement;return t||document.documentElement}function D(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},a=i?O(e):g(e,t);if(\"viewport\"===r)o=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,r=S(e,n),i=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),a=t?0:m(n),s=t?0:m(n,\"left\");return C({top:a-r.top+r.marginTop,left:s-r.left+r.marginLeft,width:i,height:o})}(a,i);else{var s=void 0;\"scrollParent\"===r?\"BODY\"===(s=l(c(t))).nodeName&&(s=e.ownerDocument.documentElement):s=\"window\"===r?e.ownerDocument.documentElement:r;var f=S(s,a,i);if(\"HTML\"!==s.nodeName||function e(t){var n=t.nodeName;return\"BODY\"!==n&&\"HTML\"!==n&&(\"fixed\"===u(t,\"position\")||e(c(t)))}(a))o=f;else{var p=b(e.ownerDocument),d=p.height,h=p.width;o.top+=f.top-f.marginTop,o.bottom=d+f.top,o.left+=f.left-f.marginLeft,o.right=h+f.left}}var v=\"number\"==typeof(n=n||0);return o.left+=v?n:n.left||0,o.top+=v?n:n.top||0,o.right-=v?n:n.right||0,o.bottom-=v?n:n.bottom||0,o}function I(e,t,n,r,i){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf(\"auto\"))return e;var a=D(n,r,o,i),s={top:{width:a.width,height:t.top-a.top},right:{width:a.right-t.right,height:a.height},bottom:{width:a.width,height:a.bottom-t.bottom},left:{width:t.left-a.left,height:a.height}},u=Object.keys(s).map(function(e){return x({key:e},s[e],{area:(t=s[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),c=u.filter(function(e){var t=e.width,r=e.height;return t>=n.clientWidth&&r>=n.clientHeight}),l=c.length>0?c[0].key:u[0].key,f=e.split(\"-\")[1];return l+(f?\"-\"+f:\"\")}function k(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return S(n,r?O(t):g(t,n),r)}function N(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),r=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+r,height:e.offsetHeight+n}}function L(e){var t={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function j(e,t,n){n=n.split(\"-\")[0];var r=N(e),i={width:r.width,height:r.height},o=-1!==[\"right\",\"left\"].indexOf(n),a=o?\"top\":\"left\",s=o?\"left\":\"top\",u=o?\"height\":\"width\",c=o?\"width\":\"height\";return i[a]=t[a]+t[u]/2-r[u]/2,i[s]=n===s?t[s]-r[c]:t[L(s)],i}function P(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function R(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===n});var r=P(e,function(e){return e[t]===n});return e.indexOf(r)}(e,\"name\",n))).forEach(function(e){e.function&&console.warn(\"`modifier.function` is deprecated, use `modifier.fn`!\");var n=e.function||e.fn;e.enabled&&s(n)&&(t.offsets.popper=C(t.offsets.popper),t.offsets.reference=C(t.offsets.reference),t=n(t,e))}),t}function $(e,t){return e.some(function(e){var n=e.name;return e.enabled&&n===t})}function H(e){for(var t=[!1,\"ms\",\"Webkit\",\"Moz\",\"O\"],n=e.charAt(0).toUpperCase()+e.slice(1),r=0;r<t.length;r++){var i=t[r],o=i?\"\"+i+n:e;if(void 0!==document.body.style[o])return o}return null}function M(e){var t=e.ownerDocument;return t?t.defaultView:window}function F(e,t,n,r){n.updateBound=r,M(e).addEventListener(\"resize\",n.updateBound,{passive:!0});var i=l(e);return function e(t,n,r,i){var o=\"BODY\"===t.nodeName,a=o?t.ownerDocument.defaultView:t;a.addEventListener(n,r,{passive:!0}),o||e(l(a.parentNode),n,r,i),i.push(a)}(i,\"scroll\",n.updateBound,n.scrollParents),n.scrollElement=i,n.eventsEnabled=!0,n}function W(){var e,t;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(e=this.reference,t=this.state,M(e).removeEventListener(\"resize\",t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener(\"scroll\",t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t))}function q(e){return\"\"!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function B(e,t){Object.keys(t).forEach(function(n){var r=\"\";-1!==[\"width\",\"height\",\"top\",\"right\",\"bottom\",\"left\"].indexOf(n)&&q(t[n])&&(r=\"px\"),e.style[n]=t[n]+r})}var U=n&&/Firefox/i.test(navigator.userAgent);function V(e,t,n){var r=P(e,function(e){return e.name===t}),i=!!r&&e.some(function(e){return e.name===n&&e.enabled&&e.order<r.order});if(!i){var o=\"`\"+t+\"`\",a=\"`\"+n+\"`\";console.warn(a+\" modifier is required by \"+o+\" modifier in order to work, be sure to include it before \"+o+\"!\")}return i}var z=[\"auto-start\",\"auto\",\"auto-end\",\"top-start\",\"top\",\"top-end\",\"right-start\",\"right\",\"right-end\",\"bottom-end\",\"bottom\",\"bottom-start\",\"left-end\",\"left\",\"left-start\"],K=z.slice(3);function G(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=K.indexOf(e),r=K.slice(n+1).concat(K.slice(0,n));return t?r.reverse():r}var X={FLIP:\"flip\",CLOCKWISE:\"clockwise\",COUNTERCLOCKWISE:\"counterclockwise\"};function Q(e,t,n,r){var i=[0,0],o=-1!==[\"right\",\"left\"].indexOf(r),a=e.split(/(\\+|\\-)/).map(function(e){return e.trim()}),s=a.indexOf(P(a,function(e){return-1!==e.search(/,|\\s/)}));a[s]&&-1===a[s].indexOf(\",\")&&console.warn(\"Offsets separated by white space(s) are deprecated, use a comma (,) instead.\");var u=/\\s*,\\s*|\\s+/,c=-1!==s?[a.slice(0,s).concat([a[s].split(u)[0]]),[a[s].split(u)[1]].concat(a.slice(s+1))]:[a];return(c=c.map(function(e,r){var i=(1===r?!o:o)?\"height\":\"width\",a=!1;return e.reduce(function(e,t){return\"\"===e[e.length-1]&&-1!==[\"+\",\"-\"].indexOf(t)?(e[e.length-1]=t,a=!0,e):a?(e[e.length-1]+=t,a=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,n,r){var i=e.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/),o=+i[1],a=i[2];if(!o)return e;if(0===a.indexOf(\"%\")){var s=void 0;switch(a){case\"%p\":s=n;break;case\"%\":case\"%r\":default:s=r}return C(s)[t]/100*o}if(\"vh\"===a||\"vw\"===a)return(\"vh\"===a?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(e,i,t,n)})})).forEach(function(e,t){e.forEach(function(n,r){q(n)&&(i[t]+=n*(\"-\"===e[r-1]?-1:1))})}),i}var Y={placement:\"bottom\",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split(\"-\")[0],r=t.split(\"-\")[1];if(r){var i=e.offsets,o=i.reference,a=i.popper,s=-1!==[\"bottom\",\"top\"].indexOf(n),u=s?\"left\":\"top\",c=s?\"width\":\"height\",l={start:E({},u,o[u]),end:E({},u,o[u]+o[c]-a[c])};e.offsets.popper=x({},a,l[r])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,r=e.placement,i=e.offsets,o=i.popper,a=i.reference,s=r.split(\"-\")[0],u=void 0;return u=q(+n)?[+n,0]:Q(n,o,a,s),\"left\"===s?(o.top+=u[0],o.left-=u[1]):\"right\"===s?(o.top+=u[0],o.left+=u[1]):\"top\"===s?(o.left+=u[0],o.top-=u[1]):\"bottom\"===s&&(o.left+=u[0],o.top+=u[1]),e.popper=o,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||h(e.instance.popper);e.instance.reference===n&&(n=h(n));var r=H(\"transform\"),i=e.instance.popper.style,o=i.top,a=i.left,s=i[r];i.top=\"\",i.left=\"\",i[r]=\"\";var u=D(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);i.top=o,i.left=a,i[r]=s,t.boundaries=u;var c=t.priority,l=e.offsets.popper,f={primary:function(e){var n=l[e];return l[e]<u[e]&&!t.escapeWithReference&&(n=Math.max(l[e],u[e])),E({},e,n)},secondary:function(e){var n=\"right\"===e?\"left\":\"top\",r=l[n];return l[e]>u[e]&&!t.escapeWithReference&&(r=Math.min(l[n],u[e]-(\"right\"===e?l.width:l.height))),E({},n,r)}};return c.forEach(function(e){var t=-1!==[\"left\",\"top\"].indexOf(e)?\"primary\":\"secondary\";l=x({},l,f[t](e))}),e.offsets.popper=l,e},priority:[\"left\",\"right\",\"top\",\"bottom\"],padding:5,boundariesElement:\"scrollParent\"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split(\"-\")[0],o=Math.floor,a=-1!==[\"top\",\"bottom\"].indexOf(i),s=a?\"right\":\"bottom\",u=a?\"left\":\"top\",c=a?\"width\":\"height\";return n[s]<o(r[u])&&(e.offsets.popper[u]=o(r[u])-n[c]),n[u]>o(r[s])&&(e.offsets.popper[u]=o(r[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!V(e.instance.modifiers,\"arrow\",\"keepTogether\"))return e;var r=t.element;if(\"string\"==typeof r){if(!(r=e.instance.popper.querySelector(r)))return e}else if(!e.instance.popper.contains(r))return console.warn(\"WARNING: `arrow.element` must be child of its popper element!\"),e;var i=e.placement.split(\"-\")[0],o=e.offsets,a=o.popper,s=o.reference,c=-1!==[\"left\",\"right\"].indexOf(i),l=c?\"height\":\"width\",f=c?\"Top\":\"Left\",p=f.toLowerCase(),d=c?\"left\":\"top\",h=c?\"bottom\":\"right\",v=N(r)[l];s[h]-v<a[p]&&(e.offsets.popper[p]-=a[p]-(s[h]-v)),s[p]+v>a[h]&&(e.offsets.popper[p]+=s[p]+v-a[h]),e.offsets.popper=C(e.offsets.popper);var g=s[p]+s[l]/2-v/2,m=u(e.instance.popper),y=parseFloat(m[\"margin\"+f],10),_=parseFloat(m[\"border\"+f+\"Width\"],10),b=g-e.offsets.popper[p]-y-_;return b=Math.max(Math.min(a[l]-v,b),0),e.arrowElement=r,e.offsets.arrow=(E(n={},p,Math.round(b)),E(n,d,\"\"),n),e},element:\"[x-arrow]\"},flip:{order:600,enabled:!0,fn:function(e,t){if($(e.instance.modifiers,\"inner\"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),r=e.placement.split(\"-\")[0],i=L(r),o=e.placement.split(\"-\")[1]||\"\",a=[];switch(t.behavior){case X.FLIP:a=[r,i];break;case X.CLOCKWISE:a=G(r);break;case X.COUNTERCLOCKWISE:a=G(r,!0);break;default:a=t.behavior}return a.forEach(function(s,u){if(r!==s||a.length===u+1)return e;r=e.placement.split(\"-\")[0],i=L(r);var c=e.offsets.popper,l=e.offsets.reference,f=Math.floor,p=\"left\"===r&&f(c.right)>f(l.left)||\"right\"===r&&f(c.left)<f(l.right)||\"top\"===r&&f(c.bottom)>f(l.top)||\"bottom\"===r&&f(c.top)<f(l.bottom),d=f(c.left)<f(n.left),h=f(c.right)>f(n.right),v=f(c.top)<f(n.top),g=f(c.bottom)>f(n.bottom),m=\"left\"===r&&d||\"right\"===r&&h||\"top\"===r&&v||\"bottom\"===r&&g,y=-1!==[\"top\",\"bottom\"].indexOf(r),_=!!t.flipVariations&&(y&&\"start\"===o&&d||y&&\"end\"===o&&h||!y&&\"start\"===o&&v||!y&&\"end\"===o&&g);(p||m||_)&&(e.flipped=!0,(p||m)&&(r=a[u+1]),_&&(o=function(e){return\"end\"===e?\"start\":\"start\"===e?\"end\":e}(o)),e.placement=r+(o?\"-\"+o:\"\"),e.offsets.popper=x({},e.offsets.popper,j(e.instance.popper,e.offsets.reference,e.placement)),e=R(e.instance.modifiers,e,\"flip\"))}),e},behavior:\"flip\",padding:5,boundariesElement:\"viewport\"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split(\"-\")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==[\"left\",\"right\"].indexOf(n),s=-1===[\"top\",\"left\"].indexOf(n);return i[a?\"left\":\"top\"]=o[n]-(s?i[a?\"width\":\"height\"]:0),e.placement=L(t),e.offsets.popper=C(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!V(e.instance.modifiers,\"hide\",\"preventOverflow\"))return e;var t=e.offsets.reference,n=P(e.instance.modifiers,function(e){return\"preventOverflow\"===e.name}).boundaries;if(t.bottom<n.top||t.left>n.right||t.top>n.bottom||t.right<n.left){if(!0===e.hide)return e;e.hide=!0,e.attributes[\"x-out-of-boundaries\"]=\"\"}else{if(!1===e.hide)return e;e.hide=!1,e.attributes[\"x-out-of-boundaries\"]=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var n=t.x,r=t.y,i=e.offsets.popper,o=P(e.instance.modifiers,function(e){return\"applyStyle\"===e.name}).gpuAcceleration;void 0!==o&&console.warn(\"WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!\");var a=void 0!==o?o:t.gpuAcceleration,s=h(e.instance.popper),u=A(s),c={position:i.position},l=function(e,t){var n=e.offsets,r=n.popper,i=n.reference,o=-1!==[\"left\",\"right\"].indexOf(e.placement),a=-1!==e.placement.indexOf(\"-\"),s=i.width%2==r.width%2,u=i.width%2==1&&r.width%2==1,c=function(e){return e},l=t?o||a||s?Math.round:Math.floor:c,f=t?Math.round:c;return{left:l(u&&!a&&t?r.left-1:r.left),top:f(r.top),bottom:f(r.bottom),right:l(r.right)}}(e,window.devicePixelRatio<2||!U),f=\"bottom\"===n?\"top\":\"bottom\",p=\"right\"===r?\"left\":\"right\",d=H(\"transform\"),v=void 0,g=void 0;if(g=\"bottom\"===f?\"HTML\"===s.nodeName?-s.clientHeight+l.bottom:-u.height+l.bottom:l.top,v=\"right\"===p?\"HTML\"===s.nodeName?-s.clientWidth+l.right:-u.width+l.right:l.left,a&&d)c[d]=\"translate3d(\"+v+\"px, \"+g+\"px, 0)\",c[f]=0,c[p]=0,c.willChange=\"transform\";else{var m=\"bottom\"===f?-1:1,y=\"right\"===p?-1:1;c[f]=g*m,c[p]=v*y,c.willChange=f+\", \"+p}var _={\"x-placement\":e.placement};return e.attributes=x({},_,e.attributes),e.styles=x({},c,e.styles),e.arrowStyles=x({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:\"bottom\",y:\"right\"},applyStyle:{order:900,enabled:!0,fn:function(e){var t,n;return B(e.instance.popper,e.styles),t=e.instance.popper,n=e.attributes,Object.keys(n).forEach(function(e){!1!==n[e]?t.setAttribute(e,n[e]):t.removeAttribute(e)}),e.arrowElement&&Object.keys(e.arrowStyles).length&&B(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,n,r,i){var o=k(i,t,e,n.positionFixed),a=I(n.placement,o,t,e,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return t.setAttribute(\"x-placement\",a),B(t,{position:n.positionFixed?\"fixed\":\"absolute\"}),n},gpuAcceleration:void 0}}},J=function(){function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};w(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=a(this.update.bind(this)),this.options=x({},e.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(x({},e.Defaults.modifiers,i.modifiers)).forEach(function(t){r.options.modifiers[t]=x({},e.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return x({name:e},r.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&s(e.onLoad)&&e.onLoad(r.reference,r.popper,r.options,e,r.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return T(e,[{key:\"update\",value:function(){return function(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=k(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=I(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=j(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?\"fixed\":\"absolute\",e=R(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}.call(this)}},{key:\"destroy\",value:function(){return function(){return this.state.isDestroyed=!0,$(this.modifiers,\"applyStyle\")&&(this.popper.removeAttribute(\"x-placement\"),this.popper.style.position=\"\",this.popper.style.top=\"\",this.popper.style.left=\"\",this.popper.style.right=\"\",this.popper.style.bottom=\"\",this.popper.style.willChange=\"\",this.popper.style[H(\"transform\")]=\"\"),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:\"enableEventListeners\",value:function(){return function(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:\"disableEventListeners\",value:function(){return W.call(this)}}]),e}();J.Utils=(\"undefined\"!=typeof window?window:e).PopperUtils,J.placements=z,J.Defaults=Y,t.default=J}.call(this,n(1))},function(e,t,n){var r;!function(t,n){\"use strict\";\"object\"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return n(e)}:n(t)}(\"undefined\"!=typeof window?window:this,function(n,i){\"use strict\";var o=[],a=n.document,s=Object.getPrototypeOf,u=o.slice,c=o.concat,l=o.push,f=o.indexOf,p={},d=p.toString,h=p.hasOwnProperty,v=h.toString,g=v.call(Object),m={},y=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType},_=function(e){return null!=e&&e===e.window},b={type:!0,src:!0,noModule:!0};function w(e,t,n){var r,i=(t=t||a).createElement(\"script\");if(i.text=e,n)for(r in b)n[r]&&(i[r]=n[r]);t.head.appendChild(i).parentNode.removeChild(i)}function T(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?p[d.call(e)]||\"object\":typeof e}var E=function(e,t){return new E.fn.init(e,t)},x=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;function C(e){var t=!!e&&\"length\"in e&&e.length,n=T(e);return!y(e)&&!_(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&t>0&&t-1 in e)}E.fn=E.prototype={jquery:\"3.3.1\",constructor:E,length:0,toArray:function(){return u.call(this)},get:function(e){return null==e?u.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(e){return this.pushStack(E.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(u.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:l,sort:o.sort,splice:o.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,c=!1;for(\"boolean\"==typeof a&&(c=a,a=arguments[s]||{},s++),\"object\"==typeof a||y(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(c&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&E.isPlainObject(n)?n:{},a[t]=E.extend(c,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:\"jQuery\"+(\"3.3.1\"+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==d.call(e))&&(!(t=s(e))||\"function\"==typeof(n=h.call(t,\"constructor\")&&t.constructor)&&v.call(n)===g)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){w(e)},each:function(e,t){var n,r=0;if(C(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?\"\":(e+\"\").replace(x,\"\")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?E.merge(n,\"string\"==typeof e?[e]:e):l.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:f.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return c.apply([],a)},guid:1,support:m}),\"function\"==typeof Symbol&&(E.fn[Symbol.iterator]=o[Symbol.iterator]),E.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),function(e,t){p[\"[object \"+t+\"]\"]=t.toLowerCase()});var A=function(e){var t,n,r,i,o,a,s,u,c,l,f,p,d,h,v,g,m,y,_,b=\"sizzle\"+1*new Date,w=e.document,T=0,E=0,x=ae(),C=ae(),A=ae(),S=function(e,t){return e===t&&(f=!0),0},O={}.hasOwnProperty,D=[],I=D.pop,k=D.push,N=D.push,L=D.slice,j=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",R=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",$=\"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",H=\"\\\\[\"+R+\"*(\"+$+\")(?:\"+R+\"*([*^$|!~]?=)\"+R+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+$+\"))|)\"+R+\"*\\\\]\",M=\":(\"+$+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+H+\")*)|.*)\\\\)|)\",F=new RegExp(R+\"+\",\"g\"),W=new RegExp(\"^\"+R+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+R+\"+$\",\"g\"),q=new RegExp(\"^\"+R+\"*,\"+R+\"*\"),B=new RegExp(\"^\"+R+\"*([>+~]|\"+R+\")\"+R+\"*\"),U=new RegExp(\"=\"+R+\"*([^\\\\]'\\\"]*?)\"+R+\"*\\\\]\",\"g\"),V=new RegExp(M),z=new RegExp(\"^\"+$+\"$\"),K={ID:new RegExp(\"^#(\"+$+\")\"),CLASS:new RegExp(\"^\\\\.(\"+$+\")\"),TAG:new RegExp(\"^(\"+$+\"|[*])\"),ATTR:new RegExp(\"^\"+H),PSEUDO:new RegExp(\"^\"+M),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+R+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+R+\"*(?:([+-]|)\"+R+\"*(\\\\d+)|))\"+R+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+P+\")$\",\"i\"),needsContext:new RegExp(\"^\"+R+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+R+\"*((?:-\\\\d)?\\\\d*)\"+R+\"*\\\\)|)(?=[^-]|$)\",\"i\")},G=/^(?:input|select|textarea|button)$/i,X=/^h\\d$/i,Q=/^[^{]+\\{\\s*\\[native \\w/,Y=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,J=/[+~]/,Z=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+R+\"?|(\"+R+\")|.)\",\"ig\"),ee=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)},te=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ne=function(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},re=function(){p()},ie=ye(function(e){return!0===e.disabled&&(\"form\"in e||\"label\"in e)},{dir:\"parentNode\",next:\"legend\"});try{N.apply(D=L.call(w.childNodes),w.childNodes),D[w.childNodes.length].nodeType}catch(e){N={apply:D.length?function(e,t){k.apply(e,L.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function oe(e,t,r,i){var o,s,c,l,f,h,m,y=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],\"string\"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,v)){if(11!==T&&(f=Y.exec(e)))if(o=f[1]){if(9===T){if(!(c=t.getElementById(o)))return r;if(c.id===o)return r.push(c),r}else if(y&&(c=y.getElementById(o))&&_(t,c)&&c.id===o)return r.push(c),r}else{if(f[2])return N.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return N.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!A[e+\" \"]&&(!g||!g.test(e))){if(1!==T)y=t,m=e;else if(\"object\"!==t.nodeName.toLowerCase()){for((l=t.getAttribute(\"id\"))?l=l.replace(te,ne):t.setAttribute(\"id\",l=b),s=(h=a(e)).length;s--;)h[s]=\"#\"+l+\" \"+me(h[s]);m=h.join(\",\"),y=J.test(e)&&ve(t.parentNode)||t}if(m)try{return N.apply(r,y.querySelectorAll(m)),r}catch(e){}finally{l===b&&t.removeAttribute(\"id\")}}}return u(e.replace(W,\"$1\"),t,r,i)}function ae(){var e=[];return function t(n,i){return e.push(n+\" \")>r.cacheLength&&delete t[e.shift()],t[n+\" \"]=i}}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ce(e,t){for(var n=e.split(\"|\"),i=n.length;i--;)r.attrHandle[n[i]]=t}function le(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 fe(e){return function(t){return\"input\"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return(\"input\"===n||\"button\"===n)&&t.type===e}}function de(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&&ie(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&\"HTML\"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(h=(d=a).documentElement,v=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener(\"unload\",re,!1):i.attachEvent&&i.attachEvent(\"onunload\",re)),n.attributes=ue(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute(\"id\")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&v){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&v){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[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&v)return t.getElementsByClassName(e)},m=[],g=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML=\"<a id='\"+b+\"'></a><select id='\"+b+\"-\\r\\\\' msallowcapture=''><option selected=''></option></select>\",e.querySelectorAll(\"[msallowcapture^='']\").length&&g.push(\"[*^$]=\"+R+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||g.push(\"\\\\[\"+R+\"*(?:value|\"+P+\")\"),e.querySelectorAll(\"[id~=\"+b+\"-]\").length||g.push(\"~=\"),e.querySelectorAll(\":checked\").length||g.push(\":checked\"),e.querySelectorAll(\"a#\"+b+\"+*\").length||g.push(\".#.+[+~]\")}),ue(function(e){e.innerHTML=\"<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>\";var t=d.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&g.push(\"name\"+R+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&g.push(\":enabled\",\":disabled\"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&g.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),g.push(\",.*:\")})),(n.matchesSelector=Q.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=y.call(e,\"*\"),y.call(e,\"[s!='']:x\"),m.push(\"!=\",M)}),g=g.length&&new RegExp(g.join(\"|\")),m=m.length&&new RegExp(m.join(\"|\")),t=Q.test(h.compareDocumentPosition),_=t||Q.test(h.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},S=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&_(w,e)?-1:t===d||t.ownerDocument===w&&_(w,t)?1:l?j(l,e)-j(l,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:l?j(l,e)-j(l,t):0;if(i===o)return le(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?le(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(U,\"='$1']\"),n.matchesSelector&&v&&!A[t+\" \"]&&(!m||!m.test(t))&&(!g||!g.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),_(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&O.call(r.attrHandle,t.toLowerCase())?i(e,t,!v):void 0;return void 0!==o?o:n.attributes||!v?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+\"\").replace(te,ne)},oe.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return l=null,e},i=oe.getText=function(e){var t,n=\"\",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if(\"string\"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:K,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||\"\").replace(Z,ee),\"~=\"===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]||oe.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]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&V.test(n)&&(t=a(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(Z,ee).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=x[e+\" \"];return t||(t=new RegExp(\"(^|\"+R+\")\"+e+\"(\"+R+\"|$)\"))&&x(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?\"!=\"===t:!t||(i+=\"\",\"=\"===t?i===n:\"!=\"===t?i!==n:\"^=\"===t?n&&0===i.indexOf(n):\"*=\"===t?n&&i.indexOf(n)>-1:\"$=\"===t?n&&i.slice(-n.length)===n:\"~=\"===t?(\" \"+i.replace(F,\" \")+\" \").indexOf(n)>-1:\"|=\"===t&&(i===n||i.slice(0,n.length+1)===n+\"-\"))}},CHILD:function(e,t,n,r,i){var o=\"nth\"!==e.slice(0,3),a=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,f,p,d,h,v=o!==a?\"nextSibling\":\"previousSibling\",g=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!u&&!s,_=!1;if(g){if(o){for(;v;){for(p=t;p=p[v];)if(s?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=v=\"only\"===e&&!h&&\"nextSibling\"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(_=(d=(c=(l=(f=(p=g)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&c[1])&&c[2],p=d&&g.childNodes[d];p=++d&&p&&p[v]||(_=d=0)||h.pop();)if(1===p.nodeType&&++_&&p===t){l[e]=[T,d,_];break}}else if(y&&(_=d=(c=(l=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&c[1]),!1===_)for(;(p=++d&&p&&p[v]||(_=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++_||(y&&((l=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,_]),p!==t)););return(_-=i)===r||_%r==0&&_/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error(\"unsupported pseudo: \"+e);return i[b]?i(t):i.length>1?(n=[e,e,\"\",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=j(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(W,\"$1\"));return r[b]?se(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return z.test(e||\"\")||oe.error(\"unsupported lang: \"+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=v?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&!!e.checked||\"option\"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return X.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return\"input\"===t&&\"button\"===e.type||\"button\"===t},text:function(e){var t;return\"input\"===e.nodeName.toLowerCase()&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ge(){}function me(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function ye(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&\"parentNode\"===o,s=E++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var c,l,f,p=[T,s];if(u){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(l=(f=t[b]||(t[b]={}))[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((c=l[o])&&c[0]===T&&c[1]===s)return p[2]=c[2];if(l[o]=p,p[2]=e(t,n,u))return!0}return!1}}function _e(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,c=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),c&&t.push(s)));return a}function we(e,t,n,r,i,o){return r&&!r[b]&&(r=we(r)),i&&!i[b]&&(i=we(i,o)),se(function(o,a,s,u){var c,l,f,p=[],d=[],h=a.length,v=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}(t||\"*\",s.nodeType?[s]:s,[]),g=!e||!o&&t?v:be(v,p,e,s,u),m=n?i||(o?e:h||r)?[]:a:g;if(n&&n(g,m,s,u),r)for(c=be(m,d),r(c,[],s,u),l=c.length;l--;)(f=c[l])&&(m[d[l]]=!(g[d[l]]=f));if(o){if(i||e){if(i){for(c=[],l=m.length;l--;)(f=m[l])&&c.push(g[l]=f);i(null,m=[],c,u)}for(l=m.length;l--;)(f=m[l])&&(c=i?j(o,f):p[l])>-1&&(o[c]=!(a[c]=f))}}else m=be(m===a?m.splice(h,m.length):m),i?i(null,a,m,u):N.apply(a,m)})}function Te(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[\" \"],u=a?1:0,l=ye(function(e){return e===t},s,!0),f=ye(function(e){return j(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==c)||((t=n).nodeType?l(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[ye(_e(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o&&!r.relative[e[i].type];i++);return we(u>1&&_e(p),u>1&&me(e.slice(0,u-1).concat({value:\" \"===e[u-2].type?\"*\":\"\"})).replace(W,\"$1\"),n,u<i&&Te(e.slice(u,i)),i<o&&Te(e=e.slice(i)),i<o&&me(e))}p.push(n)}return _e(p)}return ge.prototype=r.filters=r.pseudos,r.setFilters=new ge,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,c,l=C[e+\" \"];if(l)return t?0:l.slice(0);for(s=e,u=[],c=r.preFilter;s;){for(a in n&&!(i=q.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=B.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(W,\" \")}),s=s.slice(n.length)),r.filter)!(i=K[a].exec(s))||c[a]&&!(i=c[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):C(e,u).slice(0)},s=oe.compile=function(e,t){var n,i=[],o=[],s=A[e+\" \"];if(!s){for(t||(t=a(e)),n=t.length;n--;)(s=Te(t[n]))[b]?i.push(s):o.push(s);(s=A(e,function(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,l){var f,h,g,m=0,y=\"0\",_=o&&[],b=[],w=c,E=o||i&&r.find.TAG(\"*\",l),x=T+=null==w?1:Math.random()||.1,C=E.length;for(l&&(c=a===d||a||l);y!==C&&null!=(f=E[y]);y++){if(i&&f){for(h=0,a||f.ownerDocument===d||(p(f),s=!v);g=e[h++];)if(g(f,a||d,s)){u.push(f);break}l&&(T=x)}n&&((f=!g&&f)&&m--,o&&_.push(f))}if(m+=y,n&&y!==m){for(h=0;g=t[h++];)g(_,b,a,s);if(o){if(m>0)for(;y--;)_[y]||b[y]||(b[y]=I.call(u));b=be(b)}N.apply(u,b),l&&!o&&b.length>0&&m+t.length>1&&oe.uniqueSort(u)}return l&&(T=x,c=w),_};return n?se(o):o}(o,i))).selector=e}return s},u=oe.select=function(e,t,n,i){var o,u,c,l,f,p=\"function\"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&\"ID\"===(c=u[0]).type&&9===t.nodeType&&v&&r.relative[u[1].type]){if(!(t=(r.find.ID(c.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=K.needsContext.test(e)?0:u.length;o--&&(c=u[o],!r.relative[l=c.type]);)if((f=r.find[l])&&(i=f(c.matches[0].replace(Z,ee),J.test(u[0].type)&&ve(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&me(u)))return N.apply(n,i),n;break}}return(p||s(e,d))(i,t,!v,n,!t||J.test(e)&&ve(t.parentNode)||t),n},n.sortStable=b.split(\"\").sort(S).join(\"\")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement(\"fieldset\"))}),ue(function(e){return e.innerHTML=\"<a href='#'></a>\",\"#\"===e.firstChild.getAttribute(\"href\")})||ce(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML=\"<input/>\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||ce(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute(\"disabled\")})||ce(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(n);E.find=A,E.expr=A.selectors,E.expr[\":\"]=E.expr.pseudos,E.uniqueSort=E.unique=A.uniqueSort,E.text=A.getText,E.isXMLDoc=A.isXML,E.contains=A.contains,E.escapeSelector=A.escape;var S=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},O=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=E.expr.match.needsContext;function I(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var k=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function N(e,t,n){return y(t)?E.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?E.grep(e,function(e){return e===t!==n}):\"string\"!=typeof t?E.grep(e,function(e){return f.call(t,e)>-1!==n}):E.filter(t,e,n)}E.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return r>1?E.uniqueSort(n):n},filter:function(e){return this.pushStack(N(this,e||[],!1))},not:function(e){return this.pushStack(N(this,e||[],!0))},is:function(e){return!!N(this,\"string\"==typeof e&&D.test(e)?E(e):e||[],!1).length}});var L,j=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||L,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:j.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 E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:a,!0)),k.test(r[1])&&E.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=a.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,L=E(a);var P=/^(?:parents|prev(?:Until|All))/,R={children:!0,contents:!0,next:!0,prev:!0};function $(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&E(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?E.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?f.call(E(e),this[0]):f.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return S(e,\"parentNode\")},parentsUntil:function(e,t,n){return S(e,\"parentNode\",n)},next:function(e){return $(e,\"nextSibling\")},prev:function(e){return $(e,\"previousSibling\")},nextAll:function(e){return S(e,\"nextSibling\")},prevAll:function(e){return S(e,\"previousSibling\")},nextUntil:function(e,t,n){return S(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return S(e,\"previousSibling\",n)},siblings:function(e){return O((e.parentNode||{}).firstChild,e)},children:function(e){return O(e.firstChild)},contents:function(e){return I(e,\"iframe\")?e.contentDocument:(I(e,\"template\")&&(e=e.content||e),E.merge([],e.childNodes))}},function(e,t){E.fn[e]=function(n,r){var i=E.map(this,t,n);return\"Until\"!==e.slice(-5)&&(r=n),r&&\"string\"==typeof r&&(i=E.filter(r,i)),this.length>1&&(R[e]||E.uniqueSort(i),P.test(e)&&i.reverse()),this.pushStack(i)}});var H=/[^\\x20\\t\\r\\n\\f]+/g;function M(e){return e}function F(e){throw e}function W(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(e){e=\"string\"==typeof e?function(e){var t={};return E.each(e.match(H)||[],function(e,n){t[n]=!0}),t}(e):E.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:\"\")},c={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){E.each(n,function(n,r){y(r)?e.unique&&c.has(r)||o.push(r):r&&r.length&&\"string\"!==T(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return E.each(arguments,function(e,t){for(var n;(n=E.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?E.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=\"\"),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},E.extend({Deferred:function(e){var t=[[\"notify\",\"progress\",E.Callbacks(\"memory\"),E.Callbacks(\"memory\"),2],[\"resolve\",\"done\",E.Callbacks(\"once memory\"),E.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",E.Callbacks(\"once memory\"),E.Callbacks(\"once memory\"),1,\"rejected\"]],r=\"pending\",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return E.Deferred(function(n){E.each(t,function(t,r){var i=y(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&y(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+\"With\"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(e,r,i){var o=0;function a(e,t,r,i){return function(){var s=this,u=arguments,c=function(){var n,c;if(!(e<o)){if((n=r.apply(s,u))===t.promise())throw new TypeError(\"Thenable self-resolution\");c=n&&(\"object\"==typeof n||\"function\"==typeof n)&&n.then,y(c)?i?c.call(n,a(o,t,M,i),a(o,t,F,i)):(o++,c.call(n,a(o,t,M,i),a(o,t,F,i),a(o,t,M,t.notifyWith))):(r!==M&&(s=void 0,u=[n]),(i||t.resolveWith)(s,u))}},l=i?c:function(){try{c()}catch(n){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(n,l.stackTrace),e+1>=o&&(r!==F&&(s=void 0,u=[n]),t.rejectWith(s,u))}};e?l():(E.Deferred.getStackHook&&(l.stackTrace=E.Deferred.getStackHook()),n.setTimeout(l))}}return E.Deferred(function(n){t[0][3].add(a(0,n,y(i)?i:M,n.notifyWith)),t[1][3].add(a(0,n,y(e)?e:M)),t[2][3].add(a(0,n,y(r)?r:F))}).promise()},promise:function(e){return null!=e?E.extend(e,i):i}},o={};return E.each(t,function(e,n){var a=n[2],s=n[5];i[n[1]]=a.add,s&&a.add(function(){r=s},t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(n[3].fire),o[n[0]]=function(){return o[n[0]+\"With\"](this===o?void 0:this,arguments),this},o[n[0]+\"With\"]=a.fireWith}),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=u.call(arguments),o=E.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?u.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(W(e,o.done(a(n)).resolve,o.reject,!t),\"pending\"===o.state()||y(i[n]&&i[n].then)))return o.then();for(;n--;)W(i[n],a(n),o.reject);return o.promise()}});var q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&q.test(e.name)&&n.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},E.readyException=function(e){n.setTimeout(function(){throw e})};var B=E.Deferred();function U(){a.removeEventListener(\"DOMContentLoaded\",U),n.removeEventListener(\"load\",U),E.ready()}E.fn.ready=function(e){return B.then(e).catch(function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0,!0!==e&&--E.readyWait>0||B.resolveWith(a,[E]))}}),E.ready.then=B.then,\"complete\"===a.readyState||\"loading\"!==a.readyState&&!a.documentElement.doScroll?n.setTimeout(E.ready):(a.addEventListener(\"DOMContentLoaded\",U),n.addEventListener(\"load\",U));var V=function(e,t,n,r,i,o,a){var s=0,u=e.length,c=null==n;if(\"object\"===T(n))for(s in i=!0,n)V(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,y(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(E(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):u?t(e[0],n):o},z=/^-ms-/,K=/-([a-z])/g;function G(e,t){return t.toUpperCase()}function X(e){return e.replace(z,\"ms-\").replace(K,G)}var Q=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=E.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Q(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(H)||[]).length;for(;n--;)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var J=new Y,Z=new Y,ee=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,te=/[A-Z]/g;function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(te,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=function(e){return\"true\"===e||\"false\"!==e&&(\"null\"===e?null:e===+e+\"\"?+e:ee.test(e)?JSON.parse(e):e)}(n)}catch(e){}Z.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return Z.hasData(e)||J.hasData(e)},data:function(e,t,n){return Z.access(e,t,n)},removeData:function(e,t){Z.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),E.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=Z.get(o),1===o.nodeType&&!J.get(o,\"hasDataAttrs\"))){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf(\"data-\")&&(r=X(r.slice(5)),ne(o,r,i[r]));J.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof e?this.each(function(){Z.set(this,e)}):V(this,function(t){var n;if(o&&void 0===t)return void 0!==(n=Z.get(o,e))?n:void 0!==(n=ne(o,e))?n:void 0;this.each(function(){Z.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){Z.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return J.get(e,n)||J.access(e,n,{empty:E.Callbacks(\"once memory\").add(function(){J.remove(e,[t+\"queue\",n])})})}}),E.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length<n?E.queue(this[0],e):void 0===t?this:this.each(function(){var n=E.queue(this,e,t);E._queueHooks(this,e),\"fx\"===e&&\"inprogress\"!==n[0]&&E.dequeue(this,e)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for(\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";a--;)(n=J.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,ie=new RegExp(\"^(?:([+-])=|)(\"+re+\")([a-z%]*)$\",\"i\"),oe=[\"Top\",\"Right\",\"Bottom\",\"Left\"],ae=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&E.contains(e.ownerDocument,e)&&\"none\"===E.css(e,\"display\")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,\"\")},u=s(),c=n&&n[3]||(E.cssNumber[t]?\"\":\"px\"),l=(E.cssNumber[t]||\"px\"!==c&&+u)&&ie.exec(E.css(e,t));if(l&&l[3]!==c){for(u/=2,c=c||l[3],l=+u||1;a--;)E.style(e,t,l+c),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),l/=o;l*=2,E.style(e,t,l+c),n=n||[]}return n&&(l=+l||+u||0,i=n[1]?l+(n[1]+1)*n[2]:+n[2],r&&(r.unit=c,r.start=l,r.end=i)),i}var ce={};function le(e){var t,n=e.ownerDocument,r=e.nodeName,i=ce[r];return i||(t=n.body.appendChild(n.createElement(r)),i=E.css(t,\"display\"),t.parentNode.removeChild(t),\"none\"===i&&(i=\"block\"),ce[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?(\"none\"===n&&(i[o]=J.get(r,\"display\")||null,i[o]||(r.style.display=\"\")),\"\"===r.style.display&&ae(r)&&(i[o]=le(r))):\"none\"!==n&&(i[o]=\"none\",J.set(r,\"display\",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}E.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i,he=/^$|^module$|\\/(?:java|ecma)script/i,ve={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&I(e,t)?E.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],\"globalEval\",!t||J.get(t[n],\"globalEval\"))}ve.optgroup=ve.option,ve.tbody=ve.tfoot=ve.colgroup=ve.caption=ve.thead,ve.th=ve.td;var ye,_e,be=/<|&#?\\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,c,l,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if(\"object\"===T(o))E.merge(p,o.nodeType?[o]:o);else if(be.test(o)){for(a=a||f.appendChild(t.createElement(\"div\")),s=(de.exec(o)||[\"\",\"\"])[1].toLowerCase(),u=ve[s]||ve._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],l=u[0];l--;)a=a.lastChild;E.merge(p,a.childNodes),(a=f.firstChild).textContent=\"\"}else p.push(t.createTextNode(o));for(f.textContent=\"\",d=0;o=p[d++];)if(r&&E.inArray(o,r)>-1)i&&i.push(o);else if(c=E.contains(o.ownerDocument,o),a=ge(f.appendChild(o),\"script\"),c&&me(a),n)for(l=0;o=a[l++];)he.test(o.type||\"\")&&n.push(o);return f}ye=a.createDocumentFragment().appendChild(a.createElement(\"div\")),(_e=a.createElement(\"input\")).setAttribute(\"type\",\"radio\"),_e.setAttribute(\"checked\",\"checked\"),_e.setAttribute(\"name\",\"t\"),ye.appendChild(_e),m.checkClone=ye.cloneNode(!0).cloneNode(!0).lastChild.checked,ye.innerHTML=\"<textarea>x</textarea>\",m.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var Te=a.documentElement,Ee=/^key/,xe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\\.(.+)|)/;function Ae(){return!0}function Se(){return!1}function Oe(){try{return a.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}E.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,c,l,f,p,d,h,v,g=J.get(e);if(g)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(Te,i),n.guid||(n.guid=E.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(t){return void 0!==E&&E.event.triggered!==t.type?E.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||\"\").match(H)||[\"\"]).length;c--;)d=v=(s=Ce.exec(t[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},l=E.extend({type:d,origType:v,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,l),l.handler.guid||(l.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,l):p.push(l),E.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,c,l,f,p,d,h,v,g=J.hasData(e)&&J.get(e);if(g&&(u=g.events)){for(c=(t=(t||\"\").match(H)||[\"\"]).length;c--;)if(d=v=(s=Ce.exec(t[c])||[])[1],h=(s[2]||\"\").split(\".\").sort(),d){for(f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=p.length;o--;)l=p[o],!i&&v!==l.origType||n&&n.guid!==l.guid||s&&!s.test(l.namespace)||r&&r!==l.selector&&(\"**\"!==r||!l.selector)||(p.splice(o,1),l.selector&&p.delegateCount--,f.remove&&f.remove.call(e,l));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||E.removeEvent(e,d,g.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[c],n,r,!0);E.isEmptyObject(u)&&J.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=E.event.fix(e),u=new Array(arguments.length),c=(J.get(this,\"events\")||{})[s.type]||[],l=E.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,s)){for(a=E.event.handlers.call(this,s,c),t=0;(i=a[t++])&&!s.isPropagationStopped();)for(s.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!s.isImmediatePropagationStopped();)s.rnamespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,c=e.target;if(u&&c.nodeType&&!(\"click\"===e.type&&e.button>=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&(\"click\"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?E(i,this).index(c)>-1:E.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,u<t.length&&s.push({elem:c,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(E.Event.prototype,e,{enumerable:!0,configurable:!0,get:y(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Oe()&&this.focus)return this.focus(),!1},delegateType:\"focusin\"},blur:{trigger:function(){if(this===Oe()&&this.blur)return this.blur(),!1},delegateType:\"focusout\"},click:{trigger:function(){if(\"checkbox\"===this.type&&this.click&&I(this,\"input\"))return this.click(),!1},_default:function(e){return I(e.target,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ae:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ae,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ae,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ae,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Ee.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&xe.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},E.event.addProp),E.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(e,t){E.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=e.relatedTarget,i=e.handleObj;return r&&(r===this||E.contains(this,r))||(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),E.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){E.event.remove(this,e,n,t)})}});var Ie=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,ke=/<script|<style|<link/i,Ne=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Le=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;function je(e,t){return I(e,\"table\")&&I(11!==t.nodeType?t:t.firstChild,\"tr\")&&E(e).children(\"tbody\")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function Re(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function $e(e,t){var n,r,i,o,a,s,u,c;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),c=o.events))for(i in delete a.handle,a.events={},c)for(n=0,r=c[i].length;n<r;n++)E.event.add(t,i,c[i][n]);Z.hasData(e)&&(s=Z.access(e),u=E.extend({},s),Z.set(t,u))}}function He(e,t,n,r){t=c.apply([],t);var i,o,a,s,u,l,f=0,p=e.length,d=p-1,h=t[0],v=y(h);if(v||p>1&&\"string\"==typeof h&&!m.checkClone&&Ne.test(h))return e.each(function(i){var o=e.eq(i);v&&(t[0]=h.call(this,i,o.html())),He(o,t,n,r)});if(p&&(o=(i=we(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=E.map(ge(i,\"script\"),Pe)).length;f<p;f++)u=i,f!==d&&(u=E.clone(u,!0,!0),s&&E.merge(a,ge(u,\"script\"))),n.call(e[f],u,f);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,Re),f=0;f<s;f++)u=a[f],he.test(u.type||\"\")&&!J.access(u,\"globalEval\")&&E.contains(l,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?E._evalUrl&&E._evalUrl(u.src):w(u.textContent.replace(Le,\"\"),l,u))}return e}function Me(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ge(r)),r.parentNode&&(n&&E.contains(r.ownerDocument,r)&&me(ge(r,\"script\")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e.replace(Ie,\"<$1></$2>\")},clone:function(e,t,n){var r,i,o,a,s,u,c,l=e.cloneNode(!0),f=E.contains(e.ownerDocument,e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ge(l),r=0,i=(o=ge(e)).length;r<i;r++)s=o[r],u=a[r],c=void 0,\"input\"===(c=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:\"input\"!==c&&\"textarea\"!==c||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ge(e),a=a||ge(l),r=0,i=o.length;r<i;r++)$e(o[r],a[r]);else $e(e,l);return(a=ge(l,\"script\")).length>0&&me(a,!f&&ge(e,\"script\")),l},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(Q(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[Z.expando]&&(n[Z.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Me(this,e,!0)},remove:function(e){return Me(this,e)},text:function(e){return V(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ge(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return V(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!ke.test(e)&&!ve[(de.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ge(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return He(this,arguments,function(t){var n=this.parentNode;E.inArray(this,e)<0&&(E.cleanData(ge(this)),n&&n.replaceChild(t,this))},e)}}),E.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(e,t){E.fn[e]=function(e){for(var n,r=[],i=E(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),E(i[a])[t](n),l.apply(r,n.get());return this.pushStack(r)}});var Fe=new RegExp(\"^(\"+re+\")(?!px)[a-z%]+$\",\"i\"),We=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},qe=new RegExp(oe.join(\"|\"),\"i\");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||We(e))&&(\"\"!==(a=n.getPropertyValue(t)||n[t])||E.contains(e.ownerDocument,e)||(a=E.style(e,t)),!m.pixelBoxStyles()&&Fe.test(a)&&qe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+\"\":a}function Ue(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){c.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",l.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",Te.appendChild(c).appendChild(l);var e=n.getComputedStyle(l);r=\"1%\"!==e.top,u=12===t(e.marginLeft),l.style.right=\"60%\",s=36===t(e.right),i=36===t(e.width),l.style.position=\"absolute\",o=36===l.offsetWidth||\"absolute\",Te.removeChild(c),l=null}}function t(e){return Math.round(parseFloat(e))}var r,i,o,s,u,c=a.createElement(\"div\"),l=a.createElement(\"div\");l.style&&(l.style.backgroundClip=\"content-box\",l.cloneNode(!0).style.backgroundClip=\"\",m.clearCloneStyle=\"content-box\"===l.style.backgroundClip,E.extend(m,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),s},pixelPosition:function(){return e(),r},reliableMarginLeft:function(){return e(),u},scrollboxSize:function(){return e(),o}}))}();var Ve=/^(none|table(?!-c[ea]).+)/,ze=/^--/,Ke={position:\"absolute\",visibility:\"hidden\",display:\"block\"},Ge={letterSpacing:\"0\",fontWeight:\"400\"},Xe=[\"Webkit\",\"Moz\",\"ms\"],Qe=a.createElement(\"div\").style;function Ye(e){var t=E.cssProps[e];return t||(t=E.cssProps[e]=function(e){if(e in Qe)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=Xe.length;n--;)if((e=Xe[n]+t)in Qe)return e}(e)||e),t}function Je(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function Ze(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=E.css(e,n+oe[a],!0,i)),r?(\"content\"===n&&(u-=E.css(e,\"padding\"+oe[a],!0,i)),\"margin\"!==n&&(u-=E.css(e,\"border\"+oe[a]+\"Width\",!0,i))):(u+=E.css(e,\"padding\"+oe[a],!0,i),\"padding\"!==n?u+=E.css(e,\"border\"+oe[a]+\"Width\",!0,i):s+=E.css(e,\"border\"+oe[a]+\"Width\",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=We(e),i=Be(e,t,r),o=\"border-box\"===E.css(e,\"boxSizing\",!1,r),a=o;if(Fe.test(i)){if(!n)return i;i=\"auto\"}return a=a&&(m.boxSizingReliable()||i===e.style[t]),(\"auto\"===i||!parseFloat(i)&&\"inline\"===E.css(e,\"display\",!1,r))&&(i=e[\"offset\"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?\"border\":\"content\"),a,r,i)+\"px\"}function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=ze.test(t),c=e.style;if(u||(t=Ye(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];\"string\"===(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"===o&&(n+=i&&i[3]||(E.cssNumber[s]?\"\":\"px\")),m.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(c[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(u?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return ze.test(t)||(t=Ye(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),\"normal\"===i&&t in Ge&&(i=Ge[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each([\"height\",\"width\"],function(e,t){E.cssHooks[t]={get:function(e,n,r){if(n)return!Ve.test(E.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ke,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=We(e),a=\"border-box\"===E.css(e,\"boxSizing\",!1,o),s=r&&Ze(e,t,r,a,o);return a&&m.scrollboxSize()===o.position&&(s-=Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,\"border\",!1,o)-.5)),s&&(i=ie.exec(n))&&\"px\"!==(i[3]||\"px\")&&(e.style[t]=n,n=E.css(e,t)),Je(0,n,s)}}}),E.cssHooks.marginLeft=Ue(m.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,\"marginLeft\"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+\"px\"}),E.each({margin:\"\",padding:\"\",border:\"Width\"},function(e,t){E.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o=\"string\"==typeof n?n.split(\" \"):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},\"margin\"!==e&&(E.cssHooks[e+t].set=Je)}),E.fn.extend({css:function(e,t){return V(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=We(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,arguments.length>1)}}),E.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?\"\":\"px\")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[E.cssProps[e.prop]]&&!E.cssHooks[e.prop]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},E.fx=tt.prototype.init,E.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===a.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(at):n.setTimeout(at,E.fx.interval),E.fx.tick())}function st(){return n.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=oe[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(e,t,n){var r,i,o=0,a=lt.prefilters.length,s=E.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,c.startTime+c.duration-t),r=1-(n/c.duration||0),o=0,a=c.tweens.length;o<a;o++)c.tweens[o].run(r);return s.notifyWith(e,[c,r,n]),r<1&&a?n:(a||s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:E.extend({},t),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=E.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)c.tweens[n].run(1);return t?(s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c,t])):s.rejectWith(e,[c,t]),this}}),l=c.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=E.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(l,c.opts.specialEasing);o<a;o++)if(r=lt.prefilters[o].call(c,e,l,c.opts))return y(r.stop)&&(E._queueHooks(c.elem,c.opts.queue).stop=r.stop.bind(r)),r;return E.map(l,ct,c),y(c.opts.start)&&c.opts.start.call(e,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),E.fx.timer(E.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c}E.Animation=E.extend(lt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){y(e)?(t=e,e=[\"*\"]):e=e.match(H);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,c,l,f=\"width\"in t||\"height\"in t,p=this,d={},h=e.style,v=e.nodeType&&ae(e),g=J.get(e,\"fxshow\");for(r in n.queue||(null==(a=E._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,E.queue(e,\"fx\").length||a.empty.fire()})})),t)if(i=t[r],it.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(v?\"hide\":\"show\")){if(\"show\"!==i||!g||void 0===g[r])continue;v=!0}d[r]=g&&g[r]||E.style(e,r)}if((u=!E.isEmptyObject(t))||!E.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(c=g&&g.display)&&(c=J.get(e,\"display\")),\"none\"===(l=E.css(e,\"display\"))&&(c?l=c:(fe([e],!0),c=e.style.display||c,l=E.css(e,\"display\"),fe([e]))),(\"inline\"===l||\"inline-block\"===l&&null!=c)&&\"none\"===E.css(e,\"float\")&&(u||(p.done(function(){h.display=c}),null==c&&(l=h.display,c=\"none\"===l?\"\":l)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(g?\"hidden\"in g&&(v=g.hidden):g=J.access(e,\"fxshow\",{display:c}),o&&(g.hidden=!v),v&&fe([e],!0),p.done(function(){for(r in v||fe([e]),J.remove(e,\"fxshow\"),d)E.style(e,r,d[r])})),u=ct(v?g[r]:0,r,p),r in g||(g[r]=u.start,v&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&\"object\"==typeof e?E.extend({},e):{complete:n||!n&&t||y(e)&&e,duration:e,easing:n&&t||t&&!y(t)&&t};return E.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in E.fx.speeds?r.duration=E.fx.speeds[r.duration]:r.duration=E.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){y(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=E.isEmptyObject(e),o=E.speed(t,n,r),a=function(){var t=lt(this,E.extend({},e),o);(i||J.get(this,\"finish\"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return\"string\"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||\"fx\",[]),this.each(function(){var t=!0,i=null!=e&&e+\"queueHooks\",o=E.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||E.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||\"fx\"),this.each(function(){var t,n=J.get(this),r=n[e+\"queue\"],i=n[e+\"queueHooks\"],o=E.timers,a=r?r.length:0;for(n.finish=!0,E.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),E.each([\"toggle\",\"show\",\"hide\"],function(e,t){var n=E.fn[t];E.fn[t]=function(e,r,i){return null==e||\"boolean\"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),E.each({slideDown:ut(\"show\"),slideUp:ut(\"hide\"),slideToggle:ut(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(e,t){E.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),nt=void 0},E.fx.timer=function(e){E.timers.push(e),E.fx.start()},E.fx.interval=13,E.fx.start=function(){rt||(rt=!0,at())},E.fx.stop=function(){rt=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(e,t){return e=E.fx&&E.fx.speeds[e]||e,t=t||\"fx\",this.queue(t,function(t,r){var i=n.setTimeout(t,e);r.stop=function(){n.clearTimeout(i)}})},function(){var e=a.createElement(\"input\"),t=a.createElement(\"select\").appendChild(a.createElement(\"option\"));e.type=\"checkbox\",m.checkOn=\"\"!==e.value,m.optSelected=t.selected,(e=a.createElement(\"input\")).value=\"t\",e.type=\"radio\",m.radioValue=\"t\"===e.value}();var ft,pt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return V(this,E.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?ft:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&\"radio\"===t&&I(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(H);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),ft={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\\w+/g),function(e,t){var n=pt[t]||E.find.attr;pt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=pt[a],pt[a]=i,i=null!=n(e,t,r)?a:null,pt[a]=o),i}});var dt=/^(?:input|select|textarea|button)$/i,ht=/^(?:a|area)$/i;function vt(e){return(e.match(H)||[]).join(\" \")}function gt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function mt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(H)||[]}E.fn.extend({prop:function(e,t){return V(this,E.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,\"tabindex\");return t?parseInt(t,10):dt.test(e.nodeName)||ht.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),m.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(y(e))return this.each(function(t){E(this).addClass(e.call(this,t,gt(this)))});if((t=mt(e)).length)for(;n=this[u++];)if(i=gt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){for(a=0;o=t[a++];)r.indexOf(\" \"+o+\" \")<0&&(r+=o+\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(y(e))return this.each(function(t){E(this).removeClass(e.call(this,t,gt(this)))});if(!arguments.length)return this.attr(\"class\",\"\");if((t=mt(e)).length)for(;n=this[u++];)if(i=gt(n),r=1===n.nodeType&&\" \"+vt(i)+\" \"){for(a=0;o=t[a++];)for(;r.indexOf(\" \"+o+\" \")>-1;)r=r.replace(\" \"+o+\" \",\" \");i!==(s=vt(r))&&n.setAttribute(\"class\",s)}return this},toggleClass:function(e,t){var n=typeof e,r=\"string\"===n||Array.isArray(e);return\"boolean\"==typeof t&&r?t?this.addClass(e):this.removeClass(e):y(e)?this.each(function(n){E(this).toggleClass(e.call(this,n,gt(this),t),t)}):this.each(function(){var t,i,o,a;if(r)for(i=0,o=E(this),a=mt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&\"boolean\"!==n||((t=gt(this))&&J.set(this,\"__className__\",t),this.setAttribute&&this.setAttribute(\"class\",t||!1===e?\"\":J.get(this,\"__className__\")||\"\"))})},hasClass:function(e){var t,n,r=0;for(t=\" \"+e+\" \";n=this[r++];)if(1===n.nodeType&&(\" \"+vt(gt(n))+\" \").indexOf(t)>-1)return!0;return!1}});var yt=/\\r/g;E.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,E(this).val()):e)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=E.map(i,function(e){return null==e?\"\":e+\"\"})),(t=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,i,\"value\")||(this.value=i))})):i?(t=E.valHooks[i.type]||E.valHooks[i.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(i,\"value\"))?n:\"string\"==typeof(n=i.value)?n.replace(yt,\"\"):null==n?\"\":n:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,\"value\");return null!=t?t:vt(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!I(n.parentNode,\"optgroup\"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=E.makeArray(t),a=i.length;a--;)((r=i[a]).selected=E.inArray(E.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each([\"radio\",\"checkbox\"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=E.inArray(E(e).val(),t)>-1}},m.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}),m.focusin=\"onfocusin\"in n;var _t=/^(?:focusinfocus|focusoutblur)$/,bt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,r,i){var o,s,u,c,l,f,p,d,v=[r||a],g=h.call(e,\"type\")?e.type:e,m=h.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(s=d=u=r=r||a,3!==r.nodeType&&8!==r.nodeType&&!_t.test(g+E.event.triggered)&&(g.indexOf(\".\")>-1&&(m=g.split(\".\"),g=m.shift(),m.sort()),l=g.indexOf(\":\")<0&&\"on\"+g,(e=e[E.expando]?e:new E.Event(g,\"object\"==typeof e&&e)).isTrigger=i?2:3,e.namespace=m.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+m.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:E.makeArray(t,[e]),p=E.event.special[g]||{},i||!p.trigger||!1!==p.trigger.apply(r,t))){if(!i&&!p.noBubble&&!_(r)){for(c=p.delegateType||g,_t.test(c+g)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(r.ownerDocument||a)&&v.push(u.defaultView||u.parentWindow||n)}for(o=0;(s=v[o++])&&!e.isPropagationStopped();)d=s,e.type=o>1?c:p.bindType||g,(f=(J.get(s,\"events\")||{})[e.type]&&J.get(s,\"handle\"))&&f.apply(s,t),(f=l&&s[l])&&f.apply&&Q(s)&&(e.result=f.apply(s,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||p._default&&!1!==p._default.apply(v.pop(),t)||!Q(r)||l&&y(r[g])&&!_(r)&&((u=r[l])&&(r[l]=null),E.event.triggered=g,e.isPropagationStopped()&&d.addEventListener(g,bt),r[g](),e.isPropagationStopped()&&d.removeEventListener(g,bt),E.event.triggered=void 0,u&&(r[l]=u)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),m.focusin||E.each({focus:\"focusin\",blur:\"focusout\"},function(e,t){var n=function(e){E.event.simulate(t,e.target,E.event.fix(e))};E.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var wt=n.location,Tt=Date.now(),Et=/\\?/;E.parseXML=function(e){var t;if(!e||\"string\"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,\"text/xml\")}catch(e){t=void 0}return t&&!t.getElementsByTagName(\"parsererror\").length||E.error(\"Invalid XML: \"+e),t};var xt=/\\[\\]$/,Ct=/\\r?\\n/g,At=/^(?:submit|button|image|reset|file)$/i,St=/^(?:input|select|textarea|keygen)/i;function Ot(e,t,n,r){var i;if(Array.isArray(t))E.each(t,function(t,i){n||xt.test(e)?r(e,i):Ot(e+\"[\"+(\"object\"==typeof i&&null!=i?t:\"\")+\"]\",i,n,r)});else if(n||\"object\"!==T(t))r(e,t);else for(i in t)Ot(e+\"[\"+i+\"]\",t[i],n,r)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)Ot(n,e[n],t,i);return r.join(\"&\")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,\"elements\");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(\":disabled\")&&St.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(Ct,\"\\r\\n\")}}):{name:t.name,value:n.replace(Ct,\"\\r\\n\")}}).get()}});var Dt=/%20/g,It=/#.*$/,kt=/([?&])_=[^&]*/,Nt=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,jt=/^\\/\\//,Pt={},Rt={},$t=\"*/\".concat(\"*\"),Ht=a.createElement(\"a\");function Mt(e){return function(t,n){\"string\"!=typeof t&&(n=t,t=\"*\");var r,i=0,o=t.toLowerCase().match(H)||[];if(y(n))for(;r=o[i++];)\"+\"===r[0]?(r=r.slice(1)||\"*\",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Ft(e,t,n,r){var i={},o=e===Rt;function a(s){var u;return i[s]=!0,E.each(e[s]||[],function(e,s){var c=s(t,n,r);return\"string\"!=typeof c||o||i[c]?o?!(u=c):void 0:(t.dataTypes.unshift(c),a(c),!1)}),u}return a(t.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function Wt(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&E.extend(!0,e,r),e}Ht.href=wt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:wt.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(wt.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":$t,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Wt(Wt(e,E.ajaxSettings),t):Wt(E.ajaxSettings,e)},ajaxPrefilter:Mt(Pt),ajaxTransport:Mt(Rt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,s,u,c,l,f,p,d,h=E.ajaxSetup({},t),v=h.context||h,g=h.context&&(v.nodeType||v.jquery)?E(v):E.event,m=E.Deferred(),y=E.Callbacks(\"once memory\"),_=h.statusCode||{},b={},w={},T=\"canceled\",x={readyState:0,getResponseHeader:function(e){var t;if(l){if(!s)for(s={};t=Nt.exec(o);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)x.always(e[x.status]);else for(t in e)_[t]=[_[t],e[t]];return this},abort:function(e){var t=e||T;return r&&r.abort(t),C(0,t),this}};if(m.promise(x),h.url=((e||h.url||wt.href)+\"\").replace(jt,wt.protocol+\"//\"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||\"*\").toLowerCase().match(H)||[\"\"],null==h.crossDomain){c=a.createElement(\"a\");try{c.href=h.url,c.href=c.href,h.crossDomain=Ht.protocol+\"//\"+Ht.host!=c.protocol+\"//\"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&\"string\"!=typeof h.data&&(h.data=E.param(h.data,h.traditional)),Ft(Pt,h,t,x),l)return x;for(p in(f=E.event&&h.global)&&0==E.active++&&E.event.trigger(\"ajaxStart\"),h.type=h.type.toUpperCase(),h.hasContent=!Lt.test(h.type),i=h.url.replace(It,\"\"),h.hasContent?h.data&&h.processData&&0===(h.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(h.data=h.data.replace(Dt,\"+\")):(d=h.url.slice(i.length),h.data&&(h.processData||\"string\"==typeof h.data)&&(i+=(Et.test(i)?\"&\":\"?\")+h.data,delete h.data),!1===h.cache&&(i=i.replace(kt,\"$1\"),d=(Et.test(i)?\"&\":\"?\")+\"_=\"+Tt+++d),h.url=i+d),h.ifModified&&(E.lastModified[i]&&x.setRequestHeader(\"If-Modified-Since\",E.lastModified[i]),E.etag[i]&&x.setRequestHeader(\"If-None-Match\",E.etag[i])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&x.setRequestHeader(\"Content-Type\",h.contentType),x.setRequestHeader(\"Accept\",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+(\"*\"!==h.dataTypes[0]?\", \"+$t+\"; q=0.01\":\"\"):h.accepts[\"*\"]),h.headers)x.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(v,x,h)||l))return x.abort();if(T=\"abort\",y.add(h.complete),x.done(h.success),x.fail(h.error),r=Ft(Rt,h,t,x)){if(x.readyState=1,f&&g.trigger(\"ajaxSend\",[x,h]),l)return x;h.async&&h.timeout>0&&(u=n.setTimeout(function(){x.abort(\"timeout\")},h.timeout));try{l=!1,r.send(b,C)}catch(e){if(l)throw e;C(-1,e)}}else C(-1,\"No Transport\");function C(e,t,a,s){var c,p,d,b,w,T=t;l||(l=!0,u&&n.clearTimeout(u),r=void 0,o=s||\"\",x.readyState=e>0?4:0,c=e>=200&&e<300||304===e,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;\"*\"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+\" \"+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(h,x,a)),b=function(e,t,n,r){var i,o,a,s,u,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=l.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=l.shift())if(\"*\"===o)o=u;else if(\"*\"!==u&&u!==o){if(!(a=c[u+\" \"+o]||c[\"* \"+o]))for(i in c)if((s=i.split(\" \"))[1]===o&&(a=c[u+\" \"+s[0]]||c[\"* \"+s[0]])){!0===a?a=c[i]:!0!==c[i]&&(o=s[0],l.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+u+\" to \"+o}}}return{state:\"success\",data:t}}(h,b,x,c),c?(h.ifModified&&((w=x.getResponseHeader(\"Last-Modified\"))&&(E.lastModified[i]=w),(w=x.getResponseHeader(\"etag\"))&&(E.etag[i]=w)),204===e||\"HEAD\"===h.type?T=\"nocontent\":304===e?T=\"notmodified\":(T=b.state,p=b.data,c=!(d=b.error))):(d=T,!e&&T||(T=\"error\",e<0&&(e=0))),x.status=e,x.statusText=(t||T)+\"\",c?m.resolveWith(v,[p,T,x]):m.rejectWith(v,[x,T,d]),x.statusCode(_),_=void 0,f&&g.trigger(c?\"ajaxSuccess\":\"ajaxError\",[x,h,c?p:d]),y.fireWith(v,[x,T]),f&&(g.trigger(\"ajaxComplete\",[x,h]),--E.active||E.event.trigger(\"ajaxStop\")))}return x},getJSON:function(e,t,n){return E.get(e,t,n,\"json\")},getScript:function(e,t){return E.get(e,void 0,t,\"script\")}}),E.each([\"get\",\"post\"],function(e,t){E[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),E.ajax(E.extend({url:e,type:t,dataType:i,data:n,success:r},E.isPlainObject(e)&&e))}}),E._evalUrl=function(e){return E.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,throws:!0})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return y(e)?this.each(function(t){E(this).wrapInner(e.call(this,t))}):this.each(function(){var t=E(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=y(e);return this.each(function(n){E(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not(\"body\").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var qt={0:200,1223:204},Bt=E.ajaxSettings.xhr();m.cors=!!Bt&&\"withCredentials\"in Bt,m.ajax=Bt=!!Bt,E.ajaxTransport(function(e){var t,r;if(m.cors||Bt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?o(0,\"error\"):o(s.status,s.statusText):o(qt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t(\"error\"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout(function(){t&&r()})},t=t(\"abort\");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),E.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),E.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter(\"script\",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")}),E.ajaxTransport(\"script\",function(e){var t,n;if(e.crossDomain)return{send:function(r,i){t=E(\"<script>\").prop({charset:e.scriptCharset,src:e.url}).on(\"load error\",n=function(e){t.remove(),n=null,e&&i(\"error\"===e.type?404:200,e.type)}),a.head.appendChild(t[0])},abort:function(){n&&n()}}});var Ut,Vt=[],zt=/(=)\\?(?=&|$)|\\?\\?/;E.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Vt.pop()||E.expando+\"_\"+Tt++;return this[e]=!0,e}}),E.ajaxPrefilter(\"json jsonp\",function(e,t,r){var i,o,a,s=!1!==e.jsonp&&(zt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&zt.test(e.data)&&\"data\");if(s||\"jsonp\"===e.dataTypes[0])return i=e.jsonpCallback=y(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(zt,\"$1\"+i):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+i),e.converters[\"script json\"]=function(){return a||E.error(i+\" was not called\"),a[0]},e.dataTypes[0]=\"json\",o=n[i],n[i]=function(){a=arguments},r.always(function(){void 0===o?E(n).removeProp(i):n[i]=o,e[i]&&(e.jsonpCallback=t.jsonpCallback,Vt.push(i)),a&&y(o)&&o(a[0]),a=o=void 0}),\"script\"}),m.createHTMLDocument=((Ut=a.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=a.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=a.location.href,t.head.appendChild(r)):t=a),o=!n&&[],(i=k.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),y(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),a.length>0&&E.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done(function(e){o=arguments,a.html(r?E(\"<div>\").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.expr.pseudos.animated=function(e){return E.grep(E.timers,function(t){return e===t.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,c=E.css(e,\"position\"),l=E(e),f={};\"static\"===c&&(e.style.position=\"relative\"),s=l.offset(),o=E.css(e,\"top\"),u=E.css(e,\"left\"),(\"absolute\"===c||\"fixed\"===c)&&(o+u).indexOf(\"auto\")>-1?(a=(r=l.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),y(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):l.css(f)}},E.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){E.offset.setOffset(this,e,t)});var t,n,r=this[0];return r?r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===E.css(r,\"position\"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&\"static\"===E.css(e,\"position\");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,\"borderTopWidth\",!0),i.left+=E.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-E.css(r,\"marginTop\",!0),left:t.left-i.left-E.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&\"static\"===E.css(e,\"position\");)e=e.offsetParent;return e||Te})}}),E.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(e,t){var n=\"pageYOffset\"===t;E.fn[e]=function(r){return V(this,function(e,r,i){var o;if(_(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),E.each([\"top\",\"left\"],function(e,t){E.cssHooks[t]=Ue(m.pixelPosition,function(e,n){if(n)return n=Be(e,t),Fe.test(n)?E(e).position()[t]+\"px\":n})}),E.each({Height:\"height\",Width:\"width\"},function(e,t){E.each({padding:\"inner\"+e,content:t,\"\":\"outer\"+e},function(n,r){E.fn[r]=function(i,o){var a=arguments.length&&(n||\"boolean\"!=typeof i),s=n||(!0===i||!0===o?\"margin\":\"border\");return V(this,function(t,n,i){var o;return _(t)?0===r.indexOf(\"outer\")?t[\"inner\"+e]:t.document.documentElement[\"client\"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body[\"scroll\"+e],o[\"scroll\"+e],t.body[\"offset\"+e],o[\"offset\"+e],o[\"client\"+e])):void 0===i?E.css(t,n,s):E.style(t,n,i,s)},t,a?i:void 0,a)}})}),E.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,t){E.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),E.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)}}),E.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),y(e))return r=u.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(u.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=I,E.isFunction=y,E.isWindow=_,E.camelCase=X,E.type=T,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},void 0===(r=function(){return E}.apply(t,[]))||(e.exports=r);var Kt=n.jQuery,Gt=n.$;return E.noConflict=function(e){return n.$===E&&(n.$=Gt),e&&n.jQuery===E&&(n.jQuery=Kt),E},i||(n.jQuery=n.$=E),E})},function(e,t,n){\"use strict\";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t){var n,r,i=e.exports={};function o(){throw new Error(\"setTimeout has not been defined\")}function a(){throw new Error(\"clearTimeout has not been defined\")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n=\"function\"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r=\"function\"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,c=[],l=!1,f=-1;function p(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var e=s(p);l=!0;for(var t=c.length;t;){for(u=c,c=[];++f<t;)u&&u[f].run();f=-1,t=c.length}u=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function v(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||l||s(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},i.title=\"browser\",i.browser=!0,i.env={},i.argv=[],i.version=\"\",i.versions={},i.on=v,i.addListener=v,i.once=v,i.off=v,i.removeListener=v,i.removeAllListeners=v,i.emit=v,i.prependListener=v,i.prependOnceListener=v,i.listeners=function(e){return[]},i.binding=function(e){throw new Error(\"process.binding is not supported\")},i.cwd=function(){return\"/\"},i.chdir=function(e){throw new Error(\"process.chdir is not supported\")},i.umask=function(){return 0}},function(e,t,n){\"use strict\";var r=n(0),i=n(22),o=n(24),a=n(25),s=n(26),u=n(8),c=\"undefined\"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(27);e.exports=function(e){return new Promise(function(t,l){var f=e.data,p=e.headers;r.isFormData(f)&&delete p[\"Content-Type\"];var d=new XMLHttpRequest,h=\"onreadystatechange\",v=!1;if(\"undefined\"==typeof window||!window.XDomainRequest||\"withCredentials\"in d||s(e.url)||(d=new window.XDomainRequest,h=\"onload\",v=!0,d.onprogress=function(){},d.ontimeout=function(){}),e.auth){var g=e.auth.username||\"\",m=e.auth.password||\"\";p.Authorization=\"Basic \"+c(g+\":\"+m)}if(d.open(e.method.toUpperCase(),o(e.url,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d[h]=function(){if(d&&(4===d.readyState||v)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf(\"file:\"))){var n=\"getAllResponseHeaders\"in d?a(d.getAllResponseHeaders()):null,r={data:e.responseType&&\"text\"!==e.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?\"No Content\":d.statusText,headers:n,config:e,request:d};i(t,l,r),d=null}},d.onerror=function(){l(u(\"Network Error\",e,null,d)),d=null},d.ontimeout=function(){l(u(\"timeout of \"+e.timeout+\"ms exceeded\",e,\"ECONNABORTED\",d)),d=null},r.isStandardBrowserEnv()){var y=n(28),_=(e.withCredentials||s(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;_&&(p[e.xsrfHeaderName]=_)}if(\"setRequestHeader\"in d&&r.forEach(p,function(e,t){void 0===f&&\"content-type\"===t.toLowerCase()?delete p[t]:d.setRequestHeader(t,e)}),e.withCredentials&&(d.withCredentials=!0),e.responseType)try{d.responseType=e.responseType}catch(t){if(\"json\"!==e.responseType)throw t}\"function\"==typeof e.onDownloadProgress&&d.addEventListener(\"progress\",e.onDownloadProgress),\"function\"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener(\"progress\",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){d&&(d.abort(),l(e),d=null)}),void 0===f&&(f=null),d.send(f)})}},function(e,t,n){\"use strict\";var r=n(23);e.exports=function(e,t,n,i,o){var a=new Error(e);return r(a,t,n,i,o)}},function(e,t,n){\"use strict\";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){\"use strict\";function r(e){this.message=e}r.prototype.toString=function(){return\"Cancel\"+(this.message?\": \"+this.message:\"\")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){n(12),e.exports=n(40)},function(e,t,n){n(13),window.Vue=n(36),Vue.component(\"example-component\",n(39).default);new Vue({el:\"#app\"})},function(e,t,n){window._=n(14);try{window.Popper=n(3).default,window.$=window.jQuery=n(4),n(16)}catch(e){}window.axios=n(17),window.axios.defaults.headers.common[\"X-Requested-With\"]=\"XMLHttpRequest\";var r=document.head.querySelector('meta[name=\"csrf-token\"]');r?window.axios.defaults.headers.common[\"X-CSRF-TOKEN\"]=r.content:console.error(\"CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token\")},function(e,t,n){(function(e,r){var i;(function(){var o,a=200,s=\"Unsupported core-js use. Try https://npms.io/search?q=ponyfill.\",u=\"Expected a function\",c=\"__lodash_hash_undefined__\",l=500,f=\"__lodash_placeholder__\",p=1,d=2,h=4,v=1,g=2,m=1,y=2,_=4,b=8,w=16,T=32,E=64,x=128,C=256,A=512,S=30,O=\"...\",D=800,I=16,k=1,N=2,L=1/0,j=9007199254740991,P=1.7976931348623157e308,R=NaN,$=4294967295,H=$-1,M=$>>>1,F=[[\"ary\",x],[\"bind\",m],[\"bindKey\",y],[\"curry\",b],[\"curryRight\",w],[\"flip\",A],[\"partial\",T],[\"partialRight\",E],[\"rearg\",C]],W=\"[object Arguments]\",q=\"[object Array]\",B=\"[object AsyncFunction]\",U=\"[object Boolean]\",V=\"[object Date]\",z=\"[object DOMException]\",K=\"[object Error]\",G=\"[object Function]\",X=\"[object GeneratorFunction]\",Q=\"[object Map]\",Y=\"[object Number]\",J=\"[object Null]\",Z=\"[object Object]\",ee=\"[object Proxy]\",te=\"[object RegExp]\",ne=\"[object Set]\",re=\"[object String]\",ie=\"[object Symbol]\",oe=\"[object Undefined]\",ae=\"[object WeakMap]\",se=\"[object WeakSet]\",ue=\"[object ArrayBuffer]\",ce=\"[object DataView]\",le=\"[object Float32Array]\",fe=\"[object Float64Array]\",pe=\"[object Int8Array]\",de=\"[object Int16Array]\",he=\"[object Int32Array]\",ve=\"[object Uint8Array]\",ge=\"[object Uint8ClampedArray]\",me=\"[object Uint16Array]\",ye=\"[object Uint32Array]\",_e=/\\b__p \\+= '';/g,be=/\\b(__p \\+=) '' \\+/g,we=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,Te=/&(?:amp|lt|gt|quot|#39);/g,Ee=/[&<>\"']/g,xe=RegExp(Te.source),Ce=RegExp(Ee.source),Ae=/<%-([\\s\\S]+?)%>/g,Se=/<%([\\s\\S]+?)%>/g,Oe=/<%=([\\s\\S]+?)%>/g,De=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,Ie=/^\\w*$/,ke=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,Ne=/[\\\\^$.*+?()[\\]{}|]/g,Le=RegExp(Ne.source),je=/^\\s+|\\s+$/g,Pe=/^\\s+/,Re=/\\s+$/,$e=/\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,He=/\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,Me=/,? & /,Fe=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g,We=/\\\\(\\\\)?/g,qe=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Be=/\\w*$/,Ue=/^[-+]0x[0-9a-f]+$/i,Ve=/^0b[01]+$/i,ze=/^\\[object .+?Constructor\\]$/,Ke=/^0o[0-7]+$/i,Ge=/^(?:0|[1-9]\\d*)$/,Xe=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Qe=/($^)/,Ye=/['\\n\\r\\u2028\\u2029\\\\]/g,Je=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\",Ze=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",et=\"[\\\\ud800-\\\\udfff]\",tt=\"[\"+Ze+\"]\",nt=\"[\"+Je+\"]\",rt=\"\\\\d+\",it=\"[\\\\u2700-\\\\u27bf]\",ot=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",at=\"[^\\\\ud800-\\\\udfff\"+Ze+rt+\"\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",st=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",ut=\"[^\\\\ud800-\\\\udfff]\",ct=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",lt=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",ft=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",pt=\"(?:\"+ot+\"|\"+at+\")\",dt=\"(?:\"+ft+\"|\"+at+\")\",ht=\"(?:\"+nt+\"|\"+st+\")\"+\"?\",vt=\"[\\\\ufe0e\\\\ufe0f]?\"+ht+(\"(?:\\\\u200d(?:\"+[ut,ct,lt].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+ht+\")*\"),gt=\"(?:\"+[it,ct,lt].join(\"|\")+\")\"+vt,mt=\"(?:\"+[ut+nt+\"?\",nt,ct,lt,et].join(\"|\")+\")\",yt=RegExp(\"['’]\",\"g\"),_t=RegExp(nt,\"g\"),bt=RegExp(st+\"(?=\"+st+\")|\"+mt+vt,\"g\"),wt=RegExp([ft+\"?\"+ot+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[tt,ft,\"$\"].join(\"|\")+\")\",dt+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[tt,ft+pt,\"$\"].join(\"|\")+\")\",ft+\"?\"+pt+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",ft+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",rt,gt].join(\"|\"),\"g\"),Tt=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\"+Je+\"\\\\ufe0e\\\\ufe0f]\"),Et=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,xt=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"clearTimeout\",\"isFinite\",\"parseInt\",\"setTimeout\"],Ct=-1,At={};At[le]=At[fe]=At[pe]=At[de]=At[he]=At[ve]=At[ge]=At[me]=At[ye]=!0,At[W]=At[q]=At[ue]=At[U]=At[ce]=At[V]=At[K]=At[G]=At[Q]=At[Y]=At[Z]=At[te]=At[ne]=At[re]=At[ae]=!1;var St={};St[W]=St[q]=St[ue]=St[ce]=St[U]=St[V]=St[le]=St[fe]=St[pe]=St[de]=St[he]=St[Q]=St[Y]=St[Z]=St[te]=St[ne]=St[re]=St[ie]=St[ve]=St[ge]=St[me]=St[ye]=!0,St[K]=St[G]=St[ae]=!1;var Ot={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Dt=parseFloat,It=parseInt,kt=\"object\"==typeof e&&e&&e.Object===Object&&e,Nt=\"object\"==typeof self&&self&&self.Object===Object&&self,Lt=kt||Nt||Function(\"return this\")(),jt=t&&!t.nodeType&&t,Pt=jt&&\"object\"==typeof r&&r&&!r.nodeType&&r,Rt=Pt&&Pt.exports===jt,$t=Rt&&kt.process,Ht=function(){try{var e=Pt&&Pt.require&&Pt.require(\"util\").types;return e||$t&&$t.binding&&$t.binding(\"util\")}catch(e){}}(),Mt=Ht&&Ht.isArrayBuffer,Ft=Ht&&Ht.isDate,Wt=Ht&&Ht.isMap,qt=Ht&&Ht.isRegExp,Bt=Ht&&Ht.isSet,Ut=Ht&&Ht.isTypedArray;function Vt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function zt(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(r,a,n(a),e)}return r}function Kt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}function Gt(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function Xt(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Qt(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}function Yt(e,t){return!!(null==e?0:e.length)&&un(e,t,0)>-1}function Jt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}function Zt(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}function en(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function tn(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}function nn(e,t,n,r){var i=null==e?0:e.length;for(r&&i&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}function rn(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var on=pn(\"length\");function an(e,t,n){var r;return n(e,function(e,n,i){if(t(e,n,i))return r=n,!1}),r}function sn(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}function un(e,t,n){return t==t?function(e,t,n){var r=n-1,i=e.length;for(;++r<i;)if(e[r]===t)return r;return-1}(e,t,n):sn(e,ln,n)}function cn(e,t,n,r){for(var i=n-1,o=e.length;++i<o;)if(r(e[i],t))return i;return-1}function ln(e){return e!=e}function fn(e,t){var n=null==e?0:e.length;return n?vn(e,t)/n:R}function pn(e){return function(t){return null==t?o:t[e]}}function dn(e){return function(t){return null==e?o:e[t]}}function hn(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}function vn(e,t){for(var n,r=-1,i=e.length;++r<i;){var a=t(e[r]);a!==o&&(n=n===o?a:n+a)}return n}function gn(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function mn(e){return function(t){return e(t)}}function yn(e,t){return Zt(t,function(t){return e[t]})}function _n(e,t){return e.has(t)}function bn(e,t){for(var n=-1,r=e.length;++n<r&&un(t,e[n],0)>-1;);return n}function wn(e,t){for(var n=e.length;n--&&un(t,e[n],0)>-1;);return n}var Tn=dn({\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ą\":\"A\",\"ā\":\"a\",\"ă\":\"a\",\"ą\":\"a\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"Ď\":\"D\",\"Đ\":\"D\",\"ď\":\"d\",\"đ\":\"d\",\"Ē\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ę\":\"E\",\"Ě\":\"E\",\"ē\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ę\":\"e\",\"ě\":\"e\",\"Ĝ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ģ\":\"G\",\"ĝ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ģ\":\"g\",\"Ĥ\":\"H\",\"Ħ\":\"H\",\"ĥ\":\"h\",\"ħ\":\"h\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Į\":\"I\",\"İ\":\"I\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"į\":\"i\",\"ı\":\"i\",\"Ĵ\":\"J\",\"ĵ\":\"j\",\"Ķ\":\"K\",\"ķ\":\"k\",\"ĸ\":\"k\",\"Ĺ\":\"L\",\"Ļ\":\"L\",\"Ľ\":\"L\",\"Ŀ\":\"L\",\"Ł\":\"L\",\"ĺ\":\"l\",\"ļ\":\"l\",\"ľ\":\"l\",\"ŀ\":\"l\",\"ł\":\"l\",\"Ń\":\"N\",\"Ņ\":\"N\",\"Ň\":\"N\",\"Ŋ\":\"N\",\"ń\":\"n\",\"ņ\":\"n\",\"ň\":\"n\",\"ŋ\":\"n\",\"Ō\":\"O\",\"Ŏ\":\"O\",\"Ő\":\"O\",\"ō\":\"o\",\"ŏ\":\"o\",\"ő\":\"o\",\"Ŕ\":\"R\",\"Ŗ\":\"R\",\"Ř\":\"R\",\"ŕ\":\"r\",\"ŗ\":\"r\",\"ř\":\"r\",\"Ś\":\"S\",\"Ŝ\":\"S\",\"Ş\":\"S\",\"Š\":\"S\",\"ś\":\"s\",\"ŝ\":\"s\",\"ş\":\"s\",\"š\":\"s\",\"Ţ\":\"T\",\"Ť\":\"T\",\"Ŧ\":\"T\",\"ţ\":\"t\",\"ť\":\"t\",\"ŧ\":\"t\",\"Ũ\":\"U\",\"Ū\":\"U\",\"Ŭ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ų\":\"U\",\"ũ\":\"u\",\"ū\":\"u\",\"ŭ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"ź\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"Ĳ\":\"IJ\",\"ĳ\":\"ij\",\"Œ\":\"Oe\",\"œ\":\"oe\",\"ŉ\":\"'n\",\"ſ\":\"s\"}),En=dn({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"});function xn(e){return\"\\\\\"+Ot[e]}function Cn(e){return Tt.test(e)}function An(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function Sn(e,t){return function(n){return e(t(n))}}function On(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var a=e[n];a!==t&&a!==f||(e[n]=f,o[i++]=n)}return o}function Dn(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function In(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=[e,e]}),n}function kn(e){return Cn(e)?function(e){var t=bt.lastIndex=0;for(;bt.test(e);)++t;return t}(e):on(e)}function Nn(e){return Cn(e)?function(e){return e.match(bt)||[]}(e):function(e){return e.split(\"\")}(e)}var Ln=dn({\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"});var jn=function e(t){var n,r=(t=null==t?Lt:jn.defaults(Lt.Object(),t,jn.pick(Lt,xt))).Array,i=t.Date,Je=t.Error,Ze=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,rt=t.String,it=t.TypeError,ot=r.prototype,at=Ze.prototype,st=tt.prototype,ut=t[\"__core-js_shared__\"],ct=at.toString,lt=st.hasOwnProperty,ft=0,pt=(n=/[^.]+$/.exec(ut&&ut.keys&&ut.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+n:\"\",dt=st.toString,ht=ct.call(tt),vt=Lt._,gt=nt(\"^\"+ct.call(lt).replace(Ne,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),mt=Rt?t.Buffer:o,bt=t.Symbol,Tt=t.Uint8Array,Ot=mt?mt.allocUnsafe:o,kt=Sn(tt.getPrototypeOf,tt),Nt=tt.create,jt=st.propertyIsEnumerable,Pt=ot.splice,$t=bt?bt.isConcatSpreadable:o,Ht=bt?bt.iterator:o,on=bt?bt.toStringTag:o,dn=function(){try{var e=Mo(tt,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}(),Pn=t.clearTimeout!==Lt.clearTimeout&&t.clearTimeout,Rn=i&&i.now!==Lt.Date.now&&i.now,$n=t.setTimeout!==Lt.setTimeout&&t.setTimeout,Hn=et.ceil,Mn=et.floor,Fn=tt.getOwnPropertySymbols,Wn=mt?mt.isBuffer:o,qn=t.isFinite,Bn=ot.join,Un=Sn(tt.keys,tt),Vn=et.max,zn=et.min,Kn=i.now,Gn=t.parseInt,Xn=et.random,Qn=ot.reverse,Yn=Mo(t,\"DataView\"),Jn=Mo(t,\"Map\"),Zn=Mo(t,\"Promise\"),er=Mo(t,\"Set\"),tr=Mo(t,\"WeakMap\"),nr=Mo(tt,\"create\"),rr=tr&&new tr,ir={},or=fa(Yn),ar=fa(Jn),sr=fa(Zn),ur=fa(er),cr=fa(tr),lr=bt?bt.prototype:o,fr=lr?lr.valueOf:o,pr=lr?lr.toString:o;function dr(e){if(Os(e)&&!ms(e)&&!(e instanceof mr)){if(e instanceof gr)return e;if(lt.call(e,\"__wrapped__\"))return pa(e)}return new gr(e)}var hr=function(){function e(){}return function(t){if(!Ss(t))return{};if(Nt)return Nt(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function vr(){}function gr(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function mr(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=$,this.__views__=[]}function yr(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function _r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function br(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function wr(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new br;++t<n;)this.add(e[t])}function Tr(e){var t=this.__data__=new _r(e);this.size=t.size}function Er(e,t){var n=ms(e),r=!n&&gs(e),i=!n&&!r&&ws(e),o=!n&&!r&&!i&&Rs(e),a=n||r||i||o,s=a?gn(e.length,rt):[],u=s.length;for(var c in e)!t&&!lt.call(e,c)||a&&(\"length\"==c||i&&(\"offset\"==c||\"parent\"==c)||o&&(\"buffer\"==c||\"byteLength\"==c||\"byteOffset\"==c)||zo(c,u))||s.push(c);return s}function xr(e){var t=e.length;return t?e[wi(0,t-1)]:o}function Cr(e,t){return ua(no(e),jr(t,0,e.length))}function Ar(e){return ua(no(e))}function Sr(e,t,n){(n===o||ds(e[t],n))&&(n!==o||t in e)||Nr(e,t,n)}function Or(e,t,n){var r=e[t];lt.call(e,t)&&ds(r,n)&&(n!==o||t in e)||Nr(e,t,n)}function Dr(e,t){for(var n=e.length;n--;)if(ds(e[n][0],t))return n;return-1}function Ir(e,t,n,r){return Mr(e,function(e,i,o){t(r,e,n(e),o)}),r}function kr(e,t){return e&&ro(t,iu(t),e)}function Nr(e,t,n){\"__proto__\"==t&&dn?dn(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function Lr(e,t){for(var n=-1,i=t.length,a=r(i),s=null==e;++n<i;)a[n]=s?o:Zs(e,t[n]);return a}function jr(e,t,n){return e==e&&(n!==o&&(e=e<=n?e:n),t!==o&&(e=e>=t?e:t)),e}function Pr(e,t,n,r,i,a){var s,u=t&p,c=t&d,l=t&h;if(n&&(s=i?n(e,r,i,a):n(e)),s!==o)return s;if(!Ss(e))return e;var f=ms(e);if(f){if(s=function(e){var t=e.length,n=new e.constructor(t);return t&&\"string\"==typeof e[0]&&lt.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n}(e),!u)return no(e,s)}else{var v=qo(e),g=v==G||v==X;if(ws(e))return Qi(e,u);if(v==Z||v==W||g&&!i){if(s=c||g?{}:Uo(e),!u)return c?function(e,t){return ro(e,Wo(e),t)}(e,function(e,t){return e&&ro(t,ou(t),e)}(s,e)):function(e,t){return ro(e,Fo(e),t)}(e,kr(s,e))}else{if(!St[v])return i?e:{};s=function(e,t,n){var r,i,o,a=e.constructor;switch(t){case ue:return Yi(e);case U:case V:return new a(+e);case ce:return function(e,t){var n=t?Yi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case le:case fe:case pe:case de:case he:case ve:case ge:case me:case ye:return Ji(e,n);case Q:return new a;case Y:case re:return new a(e);case te:return(o=new(i=e).constructor(i.source,Be.exec(i))).lastIndex=i.lastIndex,o;case ne:return new a;case ie:return r=e,fr?tt(fr.call(r)):{}}}(e,v,u)}}a||(a=new Tr);var m=a.get(e);if(m)return m;if(a.set(e,s),Ls(e))return e.forEach(function(r){s.add(Pr(r,t,n,r,e,a))}),s;if(Ds(e))return e.forEach(function(r,i){s.set(i,Pr(r,t,n,i,e,a))}),s;var y=f?o:(l?c?No:ko:c?ou:iu)(e);return Kt(y||e,function(r,i){y&&(r=e[i=r]),Or(s,i,Pr(r,t,n,i,e,a))}),s}function Rr(e,t,n){var r=n.length;if(null==e)return!r;for(e=tt(e);r--;){var i=n[r],a=t[i],s=e[i];if(s===o&&!(i in e)||!a(s))return!1}return!0}function $r(e,t,n){if(\"function\"!=typeof e)throw new it(u);return ia(function(){e.apply(o,n)},t)}function Hr(e,t,n,r){var i=-1,o=Yt,s=!0,u=e.length,c=[],l=t.length;if(!u)return c;n&&(t=Zt(t,mn(n))),r?(o=Jt,s=!1):t.length>=a&&(o=_n,s=!1,t=new wr(t));e:for(;++i<u;){var f=e[i],p=null==n?f:n(f);if(f=r||0!==f?f:0,s&&p==p){for(var d=l;d--;)if(t[d]===p)continue e;c.push(f)}else o(t,p,r)||c.push(f)}return c}dr.templateSettings={escape:Ae,evaluate:Se,interpolate:Oe,variable:\"\",imports:{_:dr}},dr.prototype=vr.prototype,dr.prototype.constructor=dr,gr.prototype=hr(vr.prototype),gr.prototype.constructor=gr,mr.prototype=hr(vr.prototype),mr.prototype.constructor=mr,yr.prototype.clear=function(){this.__data__=nr?nr(null):{},this.size=0},yr.prototype.delete=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},yr.prototype.get=function(e){var t=this.__data__;if(nr){var n=t[e];return n===c?o:n}return lt.call(t,e)?t[e]:o},yr.prototype.has=function(e){var t=this.__data__;return nr?t[e]!==o:lt.call(t,e)},yr.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=nr&&t===o?c:t,this},_r.prototype.clear=function(){this.__data__=[],this.size=0},_r.prototype.delete=function(e){var t=this.__data__,n=Dr(t,e);return!(n<0||(n==t.length-1?t.pop():Pt.call(t,n,1),--this.size,0))},_r.prototype.get=function(e){var t=this.__data__,n=Dr(t,e);return n<0?o:t[n][1]},_r.prototype.has=function(e){return Dr(this.__data__,e)>-1},_r.prototype.set=function(e,t){var n=this.__data__,r=Dr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},br.prototype.clear=function(){this.size=0,this.__data__={hash:new yr,map:new(Jn||_r),string:new yr}},br.prototype.delete=function(e){var t=$o(this,e).delete(e);return this.size-=t?1:0,t},br.prototype.get=function(e){return $o(this,e).get(e)},br.prototype.has=function(e){return $o(this,e).has(e)},br.prototype.set=function(e,t){var n=$o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},wr.prototype.add=wr.prototype.push=function(e){return this.__data__.set(e,c),this},wr.prototype.has=function(e){return this.__data__.has(e)},Tr.prototype.clear=function(){this.__data__=new _r,this.size=0},Tr.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Tr.prototype.get=function(e){return this.__data__.get(e)},Tr.prototype.has=function(e){return this.__data__.has(e)},Tr.prototype.set=function(e,t){var n=this.__data__;if(n instanceof _r){var r=n.__data__;if(!Jn||r.length<a-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new br(r)}return n.set(e,t),this.size=n.size,this};var Mr=ao(Kr),Fr=ao(Gr,!0);function Wr(e,t){var n=!0;return Mr(e,function(e,r,i){return n=!!t(e,r,i)}),n}function qr(e,t,n){for(var r=-1,i=e.length;++r<i;){var a=e[r],s=t(a);if(null!=s&&(u===o?s==s&&!Ps(s):n(s,u)))var u=s,c=a}return c}function Br(e,t){var n=[];return Mr(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function Ur(e,t,n,r,i){var o=-1,a=e.length;for(n||(n=Vo),i||(i=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?Ur(s,t-1,n,r,i):en(i,s):r||(i[i.length]=s)}return i}var Vr=so(),zr=so(!0);function Kr(e,t){return e&&Vr(e,t,iu)}function Gr(e,t){return e&&zr(e,t,iu)}function Xr(e,t){return Qt(t,function(t){return xs(e[t])})}function Qr(e,t){for(var n=0,r=(t=zi(t,e)).length;null!=e&&n<r;)e=e[la(t[n++])];return n&&n==r?e:o}function Yr(e,t,n){var r=t(e);return ms(e)?r:en(r,n(e))}function Jr(e){return null==e?e===o?oe:J:on&&on in tt(e)?function(e){var t=lt.call(e,on),n=e[on];try{e[on]=o;var r=!0}catch(e){}var i=dt.call(e);return r&&(t?e[on]=n:delete e[on]),i}(e):function(e){return dt.call(e)}(e)}function Zr(e,t){return e>t}function ei(e,t){return null!=e&&lt.call(e,t)}function ti(e,t){return null!=e&&t in tt(e)}function ni(e,t,n){for(var i=n?Jt:Yt,a=e[0].length,s=e.length,u=s,c=r(s),l=1/0,f=[];u--;){var p=e[u];u&&t&&(p=Zt(p,mn(t))),l=zn(p.length,l),c[u]=!n&&(t||a>=120&&p.length>=120)?new wr(u&&p):o}p=e[0];var d=-1,h=c[0];e:for(;++d<a&&f.length<l;){var v=p[d],g=t?t(v):v;if(v=n||0!==v?v:0,!(h?_n(h,g):i(f,g,n))){for(u=s;--u;){var m=c[u];if(!(m?_n(m,g):i(e[u],g,n)))continue e}h&&h.push(g),f.push(v)}}return f}function ri(e,t,n){var r=null==(e=ta(e,t=zi(t,e)))?e:e[la(Ea(t))];return null==r?o:Vt(r,e,n)}function ii(e){return Os(e)&&Jr(e)==W}function oi(e,t,n,r,i){return e===t||(null==e||null==t||!Os(e)&&!Os(t)?e!=e&&t!=t:function(e,t,n,r,i,a){var s=ms(e),u=ms(t),c=s?q:qo(e),l=u?q:qo(t),f=(c=c==W?Z:c)==Z,p=(l=l==W?Z:l)==Z,d=c==l;if(d&&ws(e)){if(!ws(t))return!1;s=!0,f=!1}if(d&&!f)return a||(a=new Tr),s||Rs(e)?Do(e,t,n,r,i,a):function(e,t,n,r,i,o,a){switch(n){case ce:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case ue:return!(e.byteLength!=t.byteLength||!o(new Tt(e),new Tt(t)));case U:case V:case Y:return ds(+e,+t);case K:return e.name==t.name&&e.message==t.message;case te:case re:return e==t+\"\";case Q:var s=An;case ne:var u=r&v;if(s||(s=Dn),e.size!=t.size&&!u)return!1;var c=a.get(e);if(c)return c==t;r|=g,a.set(e,t);var l=Do(s(e),s(t),r,i,o,a);return a.delete(e),l;case ie:if(fr)return fr.call(e)==fr.call(t)}return!1}(e,t,c,n,r,i,a);if(!(n&v)){var h=f&&lt.call(e,\"__wrapped__\"),m=p&&lt.call(t,\"__wrapped__\");if(h||m){var y=h?e.value():e,_=m?t.value():t;return a||(a=new Tr),i(y,_,n,r,a)}}return!!d&&(a||(a=new Tr),function(e,t,n,r,i,a){var s=n&v,u=ko(e),c=u.length,l=ko(t).length;if(c!=l&&!s)return!1;for(var f=c;f--;){var p=u[f];if(!(s?p in t:lt.call(t,p)))return!1}var d=a.get(e);if(d&&a.get(t))return d==t;var h=!0;a.set(e,t),a.set(t,e);for(var g=s;++f<c;){p=u[f];var m=e[p],y=t[p];if(r)var _=s?r(y,m,p,t,e,a):r(m,y,p,e,t,a);if(!(_===o?m===y||i(m,y,n,r,a):_)){h=!1;break}g||(g=\"constructor\"==p)}if(h&&!g){var b=e.constructor,w=t.constructor;b!=w&&\"constructor\"in e&&\"constructor\"in t&&!(\"function\"==typeof b&&b instanceof b&&\"function\"==typeof w&&w instanceof w)&&(h=!1)}return a.delete(e),a.delete(t),h}(e,t,n,r,i,a))}(e,t,n,r,oi,i))}function ai(e,t,n,r){var i=n.length,a=i,s=!r;if(null==e)return!a;for(e=tt(e);i--;){var u=n[i];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<a;){var c=(u=n[i])[0],l=e[c],f=u[1];if(s&&u[2]){if(l===o&&!(c in e))return!1}else{var p=new Tr;if(r)var d=r(l,f,c,e,t,p);if(!(d===o?oi(f,l,v|g,r,p):d))return!1}}return!0}function si(e){return!(!Ss(e)||(t=e,pt&&pt in t))&&(xs(e)?gt:ze).test(fa(e));var t}function ui(e){return\"function\"==typeof e?e:null==e?Iu:\"object\"==typeof e?ms(e)?hi(e[0],e[1]):di(e):Mu(e)}function ci(e){if(!Yo(e))return Un(e);var t=[];for(var n in tt(e))lt.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}function li(e){if(!Ss(e))return function(e){var t=[];if(null!=e)for(var n in tt(e))t.push(n);return t}(e);var t=Yo(e),n=[];for(var r in e)(\"constructor\"!=r||!t&&lt.call(e,r))&&n.push(r);return n}function fi(e,t){return e<t}function pi(e,t){var n=-1,i=_s(e)?r(e.length):[];return Mr(e,function(e,r,o){i[++n]=t(e,r,o)}),i}function di(e){var t=Ho(e);return 1==t.length&&t[0][2]?Zo(t[0][0],t[0][1]):function(n){return n===e||ai(n,e,t)}}function hi(e,t){return Go(e)&&Jo(t)?Zo(la(e),t):function(n){var r=Zs(n,e);return r===o&&r===t?eu(n,e):oi(t,r,v|g)}}function vi(e,t,n,r,i){e!==t&&Vr(t,function(a,s){if(Ss(a))i||(i=new Tr),function(e,t,n,r,i,a,s){var u=na(e,n),c=na(t,n),l=s.get(c);if(l)Sr(e,n,l);else{var f=a?a(u,c,n+\"\",e,t,s):o,p=f===o;if(p){var d=ms(c),h=!d&&ws(c),v=!d&&!h&&Rs(c);f=c,d||h||v?ms(u)?f=u:bs(u)?f=no(u):h?(p=!1,f=Qi(c,!0)):v?(p=!1,f=Ji(c,!0)):f=[]:ks(c)||gs(c)?(f=u,gs(u)?f=Us(u):Ss(u)&&!xs(u)||(f=Uo(c))):p=!1}p&&(s.set(c,f),i(f,c,r,a,s),s.delete(c)),Sr(e,n,f)}}(e,t,s,n,vi,r,i);else{var u=r?r(na(e,s),a,s+\"\",e,t,i):o;u===o&&(u=a),Sr(e,s,u)}},ou)}function gi(e,t){var n=e.length;if(n)return zo(t+=t<0?n:0,n)?e[t]:o}function mi(e,t,n){var r=-1;return t=Zt(t.length?t:[Iu],mn(Ro())),function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}(pi(e,function(e,n,i){return{criteria:Zt(t,function(t){return t(e)}),index:++r,value:e}}),function(e,t){return function(e,t,n){for(var r=-1,i=e.criteria,o=t.criteria,a=i.length,s=n.length;++r<a;){var u=Zi(i[r],o[r]);if(u){if(r>=s)return u;var c=n[r];return u*(\"desc\"==c?-1:1)}}return e.index-t.index}(e,t,n)})}function yi(e,t,n){for(var r=-1,i=t.length,o={};++r<i;){var a=t[r],s=Qr(e,a);n(s,a)&&Ai(o,zi(a,e),s)}return o}function _i(e,t,n,r){var i=r?cn:un,o=-1,a=t.length,s=e;for(e===t&&(t=no(t)),n&&(s=Zt(e,mn(n)));++o<a;)for(var u=0,c=t[o],l=n?n(c):c;(u=i(s,l,u,r))>-1;)s!==e&&Pt.call(s,u,1),Pt.call(e,u,1);return e}function bi(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;zo(i)?Pt.call(e,i,1):Hi(e,i)}}return e}function wi(e,t){return e+Mn(Xn()*(t-e+1))}function Ti(e,t){var n=\"\";if(!e||t<1||t>j)return n;do{t%2&&(n+=e),(t=Mn(t/2))&&(e+=e)}while(t);return n}function Ei(e,t){return oa(ea(e,t,Iu),e+\"\")}function xi(e){return xr(du(e))}function Ci(e,t){var n=du(e);return ua(n,jr(t,0,n.length))}function Ai(e,t,n,r){if(!Ss(e))return e;for(var i=-1,a=(t=zi(t,e)).length,s=a-1,u=e;null!=u&&++i<a;){var c=la(t[i]),l=n;if(i!=s){var f=u[c];(l=r?r(f,c,u):o)===o&&(l=Ss(f)?f:zo(t[i+1])?[]:{})}Or(u,c,l),u=u[c]}return e}var Si=rr?function(e,t){return rr.set(e,t),e}:Iu,Oi=dn?function(e,t){return dn(e,\"toString\",{configurable:!0,enumerable:!1,value:Su(t),writable:!0})}:Iu;function Di(e){return ua(du(e))}function Ii(e,t,n){var i=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=r(o);++i<o;)a[i]=e[i+t];return a}function ki(e,t){var n;return Mr(e,function(e,r,i){return!(n=t(e,r,i))}),!!n}function Ni(e,t,n){var r=0,i=null==e?r:e.length;if(\"number\"==typeof t&&t==t&&i<=M){for(;r<i;){var o=r+i>>>1,a=e[o];null!==a&&!Ps(a)&&(n?a<=t:a<t)?r=o+1:i=o}return i}return Li(e,t,Iu,n)}function Li(e,t,n,r){t=n(t);for(var i=0,a=null==e?0:e.length,s=t!=t,u=null===t,c=Ps(t),l=t===o;i<a;){var f=Mn((i+a)/2),p=n(e[f]),d=p!==o,h=null===p,v=p==p,g=Ps(p);if(s)var m=r||v;else m=l?v&&(r||d):u?v&&d&&(r||!h):c?v&&d&&!h&&(r||!g):!h&&!g&&(r?p<=t:p<t);m?i=f+1:a=f}return zn(a,H)}function ji(e,t){for(var n=-1,r=e.length,i=0,o=[];++n<r;){var a=e[n],s=t?t(a):a;if(!n||!ds(s,u)){var u=s;o[i++]=0===a?0:a}}return o}function Pi(e){return\"number\"==typeof e?e:Ps(e)?R:+e}function Ri(e){if(\"string\"==typeof e)return e;if(ms(e))return Zt(e,Ri)+\"\";if(Ps(e))return pr?pr.call(e):\"\";var t=e+\"\";return\"0\"==t&&1/e==-L?\"-0\":t}function $i(e,t,n){var r=-1,i=Yt,o=e.length,s=!0,u=[],c=u;if(n)s=!1,i=Jt;else if(o>=a){var l=t?null:Eo(e);if(l)return Dn(l);s=!1,i=_n,c=new wr}else c=t?[]:u;e:for(;++r<o;){var f=e[r],p=t?t(f):f;if(f=n||0!==f?f:0,s&&p==p){for(var d=c.length;d--;)if(c[d]===p)continue e;t&&c.push(p),u.push(f)}else i(c,p,n)||(c!==u&&c.push(p),u.push(f))}return u}function Hi(e,t){return null==(e=ta(e,t=zi(t,e)))||delete e[la(Ea(t))]}function Mi(e,t,n,r){return Ai(e,t,n(Qr(e,t)),r)}function Fi(e,t,n,r){for(var i=e.length,o=r?i:-1;(r?o--:++o<i)&&t(e[o],o,e););return n?Ii(e,r?0:o,r?o+1:i):Ii(e,r?o+1:0,r?i:o)}function Wi(e,t){var n=e;return n instanceof mr&&(n=n.value()),tn(t,function(e,t){return t.func.apply(t.thisArg,en([e],t.args))},n)}function qi(e,t,n){var i=e.length;if(i<2)return i?$i(e[0]):[];for(var o=-1,a=r(i);++o<i;)for(var s=e[o],u=-1;++u<i;)u!=o&&(a[o]=Hr(a[o]||s,e[u],t,n));return $i(Ur(a,1),t,n)}function Bi(e,t,n){for(var r=-1,i=e.length,a=t.length,s={};++r<i;){var u=r<a?t[r]:o;n(s,e[r],u)}return s}function Ui(e){return bs(e)?e:[]}function Vi(e){return\"function\"==typeof e?e:Iu}function zi(e,t){return ms(e)?e:Go(e,t)?[e]:ca(Vs(e))}var Ki=Ei;function Gi(e,t,n){var r=e.length;return n=n===o?r:n,!t&&n>=r?e:Ii(e,t,n)}var Xi=Pn||function(e){return Lt.clearTimeout(e)};function Qi(e,t){if(t)return e.slice();var n=e.length,r=Ot?Ot(n):new e.constructor(n);return e.copy(r),r}function Yi(e){var t=new e.constructor(e.byteLength);return new Tt(t).set(new Tt(e)),t}function Ji(e,t){var n=t?Yi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Zi(e,t){if(e!==t){var n=e!==o,r=null===e,i=e==e,a=Ps(e),s=t!==o,u=null===t,c=t==t,l=Ps(t);if(!u&&!l&&!a&&e>t||a&&s&&c&&!u&&!l||r&&s&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&e<t||l&&n&&i&&!r&&!a||u&&n&&i||!s&&i||!c)return-1}return 0}function eo(e,t,n,i){for(var o=-1,a=e.length,s=n.length,u=-1,c=t.length,l=Vn(a-s,0),f=r(c+l),p=!i;++u<c;)f[u]=t[u];for(;++o<s;)(p||o<a)&&(f[n[o]]=e[o]);for(;l--;)f[u++]=e[o++];return f}function to(e,t,n,i){for(var o=-1,a=e.length,s=-1,u=n.length,c=-1,l=t.length,f=Vn(a-u,0),p=r(f+l),d=!i;++o<f;)p[o]=e[o];for(var h=o;++c<l;)p[h+c]=t[c];for(;++s<u;)(d||o<a)&&(p[h+n[s]]=e[o++]);return p}function no(e,t){var n=-1,i=e.length;for(t||(t=r(i));++n<i;)t[n]=e[n];return t}function ro(e,t,n,r){var i=!n;n||(n={});for(var a=-1,s=t.length;++a<s;){var u=t[a],c=r?r(n[u],e[u],u,n,e):o;c===o&&(c=e[u]),i?Nr(n,u,c):Or(n,u,c)}return n}function io(e,t){return function(n,r){var i=ms(n)?zt:Ir,o=t?t():{};return i(n,e,Ro(r,2),o)}}function oo(e){return Ei(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:o,s=i>2?n[2]:o;for(a=e.length>3&&\"function\"==typeof a?(i--,a):o,s&&Ko(n[0],n[1],s)&&(a=i<3?o:a,i=1),t=tt(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t})}function ao(e,t){return function(n,r){if(null==n)return n;if(!_s(n))return e(n,r);for(var i=n.length,o=t?i:-1,a=tt(n);(t?o--:++o<i)&&!1!==r(a[o],o,a););return n}}function so(e){return function(t,n,r){for(var i=-1,o=tt(t),a=r(t),s=a.length;s--;){var u=a[e?s:++i];if(!1===n(o[u],u,o))break}return t}}function uo(e){return function(t){var n=Cn(t=Vs(t))?Nn(t):o,r=n?n[0]:t.charAt(0),i=n?Gi(n,1).join(\"\"):t.slice(1);return r[e]()+i}}function co(e){return function(t){return tn(xu(gu(t).replace(yt,\"\")),e,\"\")}}function lo(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=hr(e.prototype),r=e.apply(n,t);return Ss(r)?r:n}}function fo(e){return function(t,n,r){var i=tt(t);if(!_s(t)){var a=Ro(n,3);t=iu(t),n=function(e){return a(i[e],e,i)}}var s=e(t,n,r);return s>-1?i[a?t[s]:s]:o}}function po(e){return Io(function(t){var n=t.length,r=n,i=gr.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if(\"function\"!=typeof a)throw new it(u);if(i&&!s&&\"wrapper\"==jo(a))var s=new gr([],!0)}for(r=s?r:n;++r<n;){var c=jo(a=t[r]),l=\"wrapper\"==c?Lo(a):o;s=l&&Xo(l[0])&&l[1]==(x|b|T|C)&&!l[4].length&&1==l[9]?s[jo(l[0])].apply(s,l[3]):1==a.length&&Xo(a)?s[c]():s.thru(a)}return function(){var e=arguments,r=e[0];if(s&&1==e.length&&ms(r))return s.plant(r).value();for(var i=0,o=n?t[i].apply(this,e):r;++i<n;)o=t[i].call(this,o);return o}})}function ho(e,t,n,i,a,s,u,c,l,f){var p=t&x,d=t&m,h=t&y,v=t&(b|w),g=t&A,_=h?o:lo(e);return function m(){for(var y=arguments.length,b=r(y),w=y;w--;)b[w]=arguments[w];if(v)var T=Po(m),E=function(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}(b,T);if(i&&(b=eo(b,i,a,v)),s&&(b=to(b,s,u,v)),y-=E,v&&y<f){var x=On(b,T);return wo(e,t,ho,m.placeholder,n,b,x,c,l,f-y)}var C=d?n:this,A=h?C[e]:e;return y=b.length,c?b=function(e,t){for(var n=e.length,r=zn(t.length,n),i=no(e);r--;){var a=t[r];e[r]=zo(a,n)?i[a]:o}return e}(b,c):g&&y>1&&b.reverse(),p&&l<y&&(b.length=l),this&&this!==Lt&&this instanceof m&&(A=_||lo(A)),A.apply(C,b)}}function vo(e,t){return function(n,r){return function(e,t,n,r){return Kr(e,function(e,i,o){t(r,n(e),i,o)}),r}(n,e,t(r),{})}}function go(e,t){return function(n,r){var i;if(n===o&&r===o)return t;if(n!==o&&(i=n),r!==o){if(i===o)return r;\"string\"==typeof n||\"string\"==typeof r?(n=Ri(n),r=Ri(r)):(n=Pi(n),r=Pi(r)),i=e(n,r)}return i}}function mo(e){return Io(function(t){return t=Zt(t,mn(Ro())),Ei(function(n){var r=this;return e(t,function(e){return Vt(e,r,n)})})})}function yo(e,t){var n=(t=t===o?\" \":Ri(t)).length;if(n<2)return n?Ti(t,e):t;var r=Ti(t,Hn(e/kn(t)));return Cn(t)?Gi(Nn(r),0,e).join(\"\"):r.slice(0,e)}function _o(e){return function(t,n,i){return i&&\"number\"!=typeof i&&Ko(t,n,i)&&(n=i=o),t=Fs(t),n===o?(n=t,t=0):n=Fs(n),function(e,t,n,i){for(var o=-1,a=Vn(Hn((t-e)/(n||1)),0),s=r(a);a--;)s[i?a:++o]=e,e+=n;return s}(t,n,i=i===o?t<n?1:-1:Fs(i),e)}}function bo(e){return function(t,n){return\"string\"==typeof t&&\"string\"==typeof n||(t=Bs(t),n=Bs(n)),e(t,n)}}function wo(e,t,n,r,i,a,s,u,c,l){var f=t&b;t|=f?T:E,(t&=~(f?E:T))&_||(t&=~(m|y));var p=[e,t,i,f?a:o,f?s:o,f?o:a,f?o:s,u,c,l],d=n.apply(o,p);return Xo(e)&&ra(d,p),d.placeholder=r,aa(d,e,t)}function To(e){var t=et[e];return function(e,n){if(e=Bs(e),n=null==n?0:zn(Ws(n),292)){var r=(Vs(e)+\"e\").split(\"e\");return+((r=(Vs(t(r[0]+\"e\"+(+r[1]+n)))+\"e\").split(\"e\"))[0]+\"e\"+(+r[1]-n))}return t(e)}}var Eo=er&&1/Dn(new er([,-0]))[1]==L?function(e){return new er(e)}:Pu;function xo(e){return function(t){var n=qo(t);return n==Q?An(t):n==ne?In(t):function(e,t){return Zt(t,function(t){return[t,e[t]]})}(t,e(t))}}function Co(e,t,n,i,a,s,c,l){var p=t&y;if(!p&&\"function\"!=typeof e)throw new it(u);var d=i?i.length:0;if(d||(t&=~(T|E),i=a=o),c=c===o?c:Vn(Ws(c),0),l=l===o?l:Ws(l),d-=a?a.length:0,t&E){var h=i,v=a;i=a=o}var g=p?o:Lo(e),A=[e,t,n,i,a,h,v,s,c,l];if(g&&function(e,t){var n=e[1],r=t[1],i=n|r,o=i<(m|y|x),a=r==x&&n==b||r==x&&n==C&&e[7].length<=t[8]||r==(x|C)&&t[7].length<=t[8]&&n==b;if(!o&&!a)return e;r&m&&(e[2]=t[2],i|=n&m?0:_);var s=t[3];if(s){var u=e[3];e[3]=u?eo(u,s,t[4]):s,e[4]=u?On(e[3],f):t[4]}(s=t[5])&&(u=e[5],e[5]=u?to(u,s,t[6]):s,e[6]=u?On(e[5],f):t[6]),(s=t[7])&&(e[7]=s),r&x&&(e[8]=null==e[8]?t[8]:zn(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=i}(A,g),e=A[0],t=A[1],n=A[2],i=A[3],a=A[4],!(l=A[9]=A[9]===o?p?0:e.length:Vn(A[9]-d,0))&&t&(b|w)&&(t&=~(b|w)),t&&t!=m)S=t==b||t==w?function(e,t,n){var i=lo(e);return function a(){for(var s=arguments.length,u=r(s),c=s,l=Po(a);c--;)u[c]=arguments[c];var f=s<3&&u[0]!==l&&u[s-1]!==l?[]:On(u,l);return(s-=f.length)<n?wo(e,t,ho,a.placeholder,o,u,f,o,o,n-s):Vt(this&&this!==Lt&&this instanceof a?i:e,this,u)}}(e,t,l):t!=T&&t!=(m|T)||a.length?ho.apply(o,A):function(e,t,n,i){var o=t&m,a=lo(e);return function t(){for(var s=-1,u=arguments.length,c=-1,l=i.length,f=r(l+u),p=this&&this!==Lt&&this instanceof t?a:e;++c<l;)f[c]=i[c];for(;u--;)f[c++]=arguments[++s];return Vt(p,o?n:this,f)}}(e,t,n,i);else var S=function(e,t,n){var r=t&m,i=lo(e);return function t(){return(this&&this!==Lt&&this instanceof t?i:e).apply(r?n:this,arguments)}}(e,t,n);return aa((g?Si:ra)(S,A),e,t)}function Ao(e,t,n,r){return e===o||ds(e,st[n])&&!lt.call(r,n)?t:e}function So(e,t,n,r,i,a){return Ss(e)&&Ss(t)&&(a.set(t,e),vi(e,t,o,So,a),a.delete(t)),e}function Oo(e){return ks(e)?o:e}function Do(e,t,n,r,i,a){var s=n&v,u=e.length,c=t.length;if(u!=c&&!(s&&c>u))return!1;var l=a.get(e);if(l&&a.get(t))return l==t;var f=-1,p=!0,d=n&g?new wr:o;for(a.set(e,t),a.set(t,e);++f<u;){var h=e[f],m=t[f];if(r)var y=s?r(m,h,f,t,e,a):r(h,m,f,e,t,a);if(y!==o){if(y)continue;p=!1;break}if(d){if(!rn(t,function(e,t){if(!_n(d,t)&&(h===e||i(h,e,n,r,a)))return d.push(t)})){p=!1;break}}else if(h!==m&&!i(h,m,n,r,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function Io(e){return oa(ea(e,o,ya),e+\"\")}function ko(e){return Yr(e,iu,Fo)}function No(e){return Yr(e,ou,Wo)}var Lo=rr?function(e){return rr.get(e)}:Pu;function jo(e){for(var t=e.name+\"\",n=ir[t],r=lt.call(ir,t)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==e)return i.name}return t}function Po(e){return(lt.call(dr,\"placeholder\")?dr:e).placeholder}function Ro(){var e=dr.iteratee||ku;return e=e===ku?ui:e,arguments.length?e(arguments[0],arguments[1]):e}function $o(e,t){var n,r,i=e.__data__;return(\"string\"==(r=typeof(n=t))||\"number\"==r||\"symbol\"==r||\"boolean\"==r?\"__proto__\"!==n:null===n)?i[\"string\"==typeof t?\"string\":\"hash\"]:i.map}function Ho(e){for(var t=iu(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Jo(i)]}return t}function Mo(e,t){var n=function(e,t){return null==e?o:e[t]}(e,t);return si(n)?n:o}var Fo=Fn?function(e){return null==e?[]:(e=tt(e),Qt(Fn(e),function(t){return jt.call(e,t)}))}:qu,Wo=Fn?function(e){for(var t=[];e;)en(t,Fo(e)),e=kt(e);return t}:qu,qo=Jr;function Bo(e,t,n){for(var r=-1,i=(t=zi(t,e)).length,o=!1;++r<i;){var a=la(t[r]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++r!=i?o:!!(i=null==e?0:e.length)&&As(i)&&zo(a,i)&&(ms(e)||gs(e))}function Uo(e){return\"function\"!=typeof e.constructor||Yo(e)?{}:hr(kt(e))}function Vo(e){return ms(e)||gs(e)||!!($t&&e&&e[$t])}function zo(e,t){var n=typeof e;return!!(t=null==t?j:t)&&(\"number\"==n||\"symbol\"!=n&&Ge.test(e))&&e>-1&&e%1==0&&e<t}function Ko(e,t,n){if(!Ss(n))return!1;var r=typeof t;return!!(\"number\"==r?_s(n)&&zo(t,n.length):\"string\"==r&&t in n)&&ds(n[t],e)}function Go(e,t){if(ms(e))return!1;var n=typeof e;return!(\"number\"!=n&&\"symbol\"!=n&&\"boolean\"!=n&&null!=e&&!Ps(e))||Ie.test(e)||!De.test(e)||null!=t&&e in tt(t)}function Xo(e){var t=jo(e),n=dr[t];if(\"function\"!=typeof n||!(t in mr.prototype))return!1;if(e===n)return!0;var r=Lo(n);return!!r&&e===r[0]}(Yn&&qo(new Yn(new ArrayBuffer(1)))!=ce||Jn&&qo(new Jn)!=Q||Zn&&\"[object Promise]\"!=qo(Zn.resolve())||er&&qo(new er)!=ne||tr&&qo(new tr)!=ae)&&(qo=function(e){var t=Jr(e),n=t==Z?e.constructor:o,r=n?fa(n):\"\";if(r)switch(r){case or:return ce;case ar:return Q;case sr:return\"[object Promise]\";case ur:return ne;case cr:return ae}return t});var Qo=ut?xs:Bu;function Yo(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||st)}function Jo(e){return e==e&&!Ss(e)}function Zo(e,t){return function(n){return null!=n&&n[e]===t&&(t!==o||e in tt(n))}}function ea(e,t,n){return t=Vn(t===o?e.length-1:t,0),function(){for(var i=arguments,o=-1,a=Vn(i.length-t,0),s=r(a);++o<a;)s[o]=i[t+o];o=-1;for(var u=r(t+1);++o<t;)u[o]=i[o];return u[t]=n(s),Vt(e,this,u)}}function ta(e,t){return t.length<2?e:Qr(e,Ii(t,0,-1))}function na(e,t){if(\"__proto__\"!=t)return e[t]}var ra=sa(Si),ia=$n||function(e,t){return Lt.setTimeout(e,t)},oa=sa(Oi);function aa(e,t,n){var r=t+\"\";return oa(e,function(e,t){var n=t.length;if(!n)return e;var r=n-1;return t[r]=(n>1?\"& \":\"\")+t[r],t=t.join(n>2?\", \":\" \"),e.replace($e,\"{\\n/* [wrapped with \"+t+\"] */\\n\")}(r,function(e,t){return Kt(F,function(n){var r=\"_.\"+n[0];t&n[1]&&!Yt(e,r)&&e.push(r)}),e.sort()}(function(e){var t=e.match(He);return t?t[1].split(Me):[]}(r),n)))}function sa(e){var t=0,n=0;return function(){var r=Kn(),i=I-(r-n);if(n=r,i>0){if(++t>=D)return arguments[0]}else t=0;return e.apply(o,arguments)}}function ua(e,t){var n=-1,r=e.length,i=r-1;for(t=t===o?r:t;++n<t;){var a=wi(n,i),s=e[a];e[a]=e[n],e[n]=s}return e.length=t,e}var ca=function(e){var t=ss(e,function(e){return n.size===l&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(\"\"),e.replace(ke,function(e,n,r,i){t.push(r?i.replace(We,\"$1\"):n||e)}),t});function la(e){if(\"string\"==typeof e||Ps(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-L?\"-0\":t}function fa(e){if(null!=e){try{return ct.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}function pa(e){if(e instanceof mr)return e.clone();var t=new gr(e.__wrapped__,e.__chain__);return t.__actions__=no(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}var da=Ei(function(e,t){return bs(e)?Hr(e,Ur(t,1,bs,!0)):[]}),ha=Ei(function(e,t){var n=Ea(t);return bs(n)&&(n=o),bs(e)?Hr(e,Ur(t,1,bs,!0),Ro(n,2)):[]}),va=Ei(function(e,t){var n=Ea(t);return bs(n)&&(n=o),bs(e)?Hr(e,Ur(t,1,bs,!0),o,n):[]});function ga(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:Ws(n);return i<0&&(i=Vn(r+i,0)),sn(e,Ro(t,3),i)}function ma(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r-1;return n!==o&&(i=Ws(n),i=n<0?Vn(r+i,0):zn(i,r-1)),sn(e,Ro(t,3),i,!0)}function ya(e){return null!=e&&e.length?Ur(e,1):[]}function _a(e){return e&&e.length?e[0]:o}var ba=Ei(function(e){var t=Zt(e,Ui);return t.length&&t[0]===e[0]?ni(t):[]}),wa=Ei(function(e){var t=Ea(e),n=Zt(e,Ui);return t===Ea(n)?t=o:n.pop(),n.length&&n[0]===e[0]?ni(n,Ro(t,2)):[]}),Ta=Ei(function(e){var t=Ea(e),n=Zt(e,Ui);return(t=\"function\"==typeof t?t:o)&&n.pop(),n.length&&n[0]===e[0]?ni(n,o,t):[]});function Ea(e){var t=null==e?0:e.length;return t?e[t-1]:o}var xa=Ei(Ca);function Ca(e,t){return e&&e.length&&t&&t.length?_i(e,t):e}var Aa=Io(function(e,t){var n=null==e?0:e.length,r=Lr(e,t);return bi(e,Zt(t,function(e){return zo(e,n)?+e:e}).sort(Zi)),r});function Sa(e){return null==e?e:Qn.call(e)}var Oa=Ei(function(e){return $i(Ur(e,1,bs,!0))}),Da=Ei(function(e){var t=Ea(e);return bs(t)&&(t=o),$i(Ur(e,1,bs,!0),Ro(t,2))}),Ia=Ei(function(e){var t=Ea(e);return t=\"function\"==typeof t?t:o,$i(Ur(e,1,bs,!0),o,t)});function ka(e){if(!e||!e.length)return[];var t=0;return e=Qt(e,function(e){if(bs(e))return t=Vn(e.length,t),!0}),gn(t,function(t){return Zt(e,pn(t))})}function Na(e,t){if(!e||!e.length)return[];var n=ka(e);return null==t?n:Zt(n,function(e){return Vt(t,o,e)})}var La=Ei(function(e,t){return bs(e)?Hr(e,t):[]}),ja=Ei(function(e){return qi(Qt(e,bs))}),Pa=Ei(function(e){var t=Ea(e);return bs(t)&&(t=o),qi(Qt(e,bs),Ro(t,2))}),Ra=Ei(function(e){var t=Ea(e);return t=\"function\"==typeof t?t:o,qi(Qt(e,bs),o,t)}),$a=Ei(ka);var Ha=Ei(function(e){var t=e.length,n=t>1?e[t-1]:o;return n=\"function\"==typeof n?(e.pop(),n):o,Na(e,n)});function Ma(e){var t=dr(e);return t.__chain__=!0,t}function Fa(e,t){return t(e)}var Wa=Io(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return Lr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof mr&&zo(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:Fa,args:[i],thisArg:o}),new gr(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(o),e})):this.thru(i)});var qa=io(function(e,t,n){lt.call(e,n)?++e[n]:Nr(e,n,1)});var Ba=fo(ga),Ua=fo(ma);function Va(e,t){return(ms(e)?Kt:Mr)(e,Ro(t,3))}function za(e,t){return(ms(e)?Gt:Fr)(e,Ro(t,3))}var Ka=io(function(e,t,n){lt.call(e,n)?e[n].push(t):Nr(e,n,[t])});var Ga=Ei(function(e,t,n){var i=-1,o=\"function\"==typeof t,a=_s(e)?r(e.length):[];return Mr(e,function(e){a[++i]=o?Vt(t,e,n):ri(e,t,n)}),a}),Xa=io(function(e,t,n){Nr(e,n,t)});function Qa(e,t){return(ms(e)?Zt:pi)(e,Ro(t,3))}var Ya=io(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});var Ja=Ei(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ko(e,t[0],t[1])?t=[]:n>2&&Ko(t[0],t[1],t[2])&&(t=[t[0]]),mi(e,Ur(t,1),[])}),Za=Rn||function(){return Lt.Date.now()};function es(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,Co(e,x,o,o,o,o,t)}function ts(e,t){var n;if(\"function\"!=typeof t)throw new it(u);return e=Ws(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var ns=Ei(function(e,t,n){var r=m;if(n.length){var i=On(n,Po(ns));r|=T}return Co(e,r,t,n,i)}),rs=Ei(function(e,t,n){var r=m|y;if(n.length){var i=On(n,Po(rs));r|=T}return Co(t,r,e,n,i)});function is(e,t,n){var r,i,a,s,c,l,f=0,p=!1,d=!1,h=!0;if(\"function\"!=typeof e)throw new it(u);function v(t){var n=r,a=i;return r=i=o,f=t,s=e.apply(a,n)}function g(e){var n=e-l;return l===o||n>=t||n<0||d&&e-f>=a}function m(){var e=Za();if(g(e))return y(e);c=ia(m,function(e){var n=t-(e-l);return d?zn(n,a-(e-f)):n}(e))}function y(e){return c=o,h&&r?v(e):(r=i=o,s)}function _(){var e=Za(),n=g(e);if(r=arguments,i=this,l=e,n){if(c===o)return function(e){return f=e,c=ia(m,t),p?v(e):s}(l);if(d)return c=ia(m,t),v(l)}return c===o&&(c=ia(m,t)),s}return t=Bs(t)||0,Ss(n)&&(p=!!n.leading,a=(d=\"maxWait\"in n)?Vn(Bs(n.maxWait)||0,t):a,h=\"trailing\"in n?!!n.trailing:h),_.cancel=function(){c!==o&&Xi(c),f=0,r=l=i=c=o},_.flush=function(){return c===o?s:y(Za())},_}var os=Ei(function(e,t){return $r(e,1,t)}),as=Ei(function(e,t,n){return $r(e,Bs(t)||0,n)});function ss(e,t){if(\"function\"!=typeof e||null!=t&&\"function\"!=typeof t)throw new it(u);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(ss.Cache||br),n}function us(e){if(\"function\"!=typeof e)throw new it(u);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ss.Cache=br;var cs=Ki(function(e,t){var n=(t=1==t.length&&ms(t[0])?Zt(t[0],mn(Ro())):Zt(Ur(t,1),mn(Ro()))).length;return Ei(function(r){for(var i=-1,o=zn(r.length,n);++i<o;)r[i]=t[i].call(this,r[i]);return Vt(e,this,r)})}),ls=Ei(function(e,t){var n=On(t,Po(ls));return Co(e,T,o,t,n)}),fs=Ei(function(e,t){var n=On(t,Po(fs));return Co(e,E,o,t,n)}),ps=Io(function(e,t){return Co(e,C,o,o,o,t)});function ds(e,t){return e===t||e!=e&&t!=t}var hs=bo(Zr),vs=bo(function(e,t){return e>=t}),gs=ii(function(){return arguments}())?ii:function(e){return Os(e)&&lt.call(e,\"callee\")&&!jt.call(e,\"callee\")},ms=r.isArray,ys=Mt?mn(Mt):function(e){return Os(e)&&Jr(e)==ue};function _s(e){return null!=e&&As(e.length)&&!xs(e)}function bs(e){return Os(e)&&_s(e)}var ws=Wn||Bu,Ts=Ft?mn(Ft):function(e){return Os(e)&&Jr(e)==V};function Es(e){if(!Os(e))return!1;var t=Jr(e);return t==K||t==z||\"string\"==typeof e.message&&\"string\"==typeof e.name&&!ks(e)}function xs(e){if(!Ss(e))return!1;var t=Jr(e);return t==G||t==X||t==B||t==ee}function Cs(e){return\"number\"==typeof e&&e==Ws(e)}function As(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=j}function Ss(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}function Os(e){return null!=e&&\"object\"==typeof e}var Ds=Wt?mn(Wt):function(e){return Os(e)&&qo(e)==Q};function Is(e){return\"number\"==typeof e||Os(e)&&Jr(e)==Y}function ks(e){if(!Os(e)||Jr(e)!=Z)return!1;var t=kt(e);if(null===t)return!0;var n=lt.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&ct.call(n)==ht}var Ns=qt?mn(qt):function(e){return Os(e)&&Jr(e)==te};var Ls=Bt?mn(Bt):function(e){return Os(e)&&qo(e)==ne};function js(e){return\"string\"==typeof e||!ms(e)&&Os(e)&&Jr(e)==re}function Ps(e){return\"symbol\"==typeof e||Os(e)&&Jr(e)==ie}var Rs=Ut?mn(Ut):function(e){return Os(e)&&As(e.length)&&!!At[Jr(e)]};var $s=bo(fi),Hs=bo(function(e,t){return e<=t});function Ms(e){if(!e)return[];if(_s(e))return js(e)?Nn(e):no(e);if(Ht&&e[Ht])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Ht]());var t=qo(e);return(t==Q?An:t==ne?Dn:du)(e)}function Fs(e){return e?(e=Bs(e))===L||e===-L?(e<0?-1:1)*P:e==e?e:0:0===e?e:0}function Ws(e){var t=Fs(e),n=t%1;return t==t?n?t-n:t:0}function qs(e){return e?jr(Ws(e),0,$):0}function Bs(e){if(\"number\"==typeof e)return e;if(Ps(e))return R;if(Ss(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=Ss(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(je,\"\");var n=Ve.test(e);return n||Ke.test(e)?It(e.slice(2),n?2:8):Ue.test(e)?R:+e}function Us(e){return ro(e,ou(e))}function Vs(e){return null==e?\"\":Ri(e)}var zs=oo(function(e,t){if(Yo(t)||_s(t))ro(t,iu(t),e);else for(var n in t)lt.call(t,n)&&Or(e,n,t[n])}),Ks=oo(function(e,t){ro(t,ou(t),e)}),Gs=oo(function(e,t,n,r){ro(t,ou(t),e,r)}),Xs=oo(function(e,t,n,r){ro(t,iu(t),e,r)}),Qs=Io(Lr);var Ys=Ei(function(e,t){e=tt(e);var n=-1,r=t.length,i=r>2?t[2]:o;for(i&&Ko(t[0],t[1],i)&&(r=1);++n<r;)for(var a=t[n],s=ou(a),u=-1,c=s.length;++u<c;){var l=s[u],f=e[l];(f===o||ds(f,st[l])&&!lt.call(e,l))&&(e[l]=a[l])}return e}),Js=Ei(function(e){return e.push(o,So),Vt(su,o,e)});function Zs(e,t,n){var r=null==e?o:Qr(e,t);return r===o?n:r}function eu(e,t){return null!=e&&Bo(e,t,ti)}var tu=vo(function(e,t,n){null!=t&&\"function\"!=typeof t.toString&&(t=dt.call(t)),e[t]=n},Su(Iu)),nu=vo(function(e,t,n){null!=t&&\"function\"!=typeof t.toString&&(t=dt.call(t)),lt.call(e,t)?e[t].push(n):e[t]=[n]},Ro),ru=Ei(ri);function iu(e){return _s(e)?Er(e):ci(e)}function ou(e){return _s(e)?Er(e,!0):li(e)}var au=oo(function(e,t,n){vi(e,t,n)}),su=oo(function(e,t,n,r){vi(e,t,n,r)}),uu=Io(function(e,t){var n={};if(null==e)return n;var r=!1;t=Zt(t,function(t){return t=zi(t,e),r||(r=t.length>1),t}),ro(e,No(e),n),r&&(n=Pr(n,p|d|h,Oo));for(var i=t.length;i--;)Hi(n,t[i]);return n});var cu=Io(function(e,t){return null==e?{}:function(e,t){return yi(e,t,function(t,n){return eu(e,n)})}(e,t)});function lu(e,t){if(null==e)return{};var n=Zt(No(e),function(e){return[e]});return t=Ro(t),yi(e,n,function(e,n){return t(e,n[0])})}var fu=xo(iu),pu=xo(ou);function du(e){return null==e?[]:yn(e,iu(e))}var hu=co(function(e,t,n){return t=t.toLowerCase(),e+(n?vu(t):t)});function vu(e){return Eu(Vs(e).toLowerCase())}function gu(e){return(e=Vs(e))&&e.replace(Xe,Tn).replace(_t,\"\")}var mu=co(function(e,t,n){return e+(n?\"-\":\"\")+t.toLowerCase()}),yu=co(function(e,t,n){return e+(n?\" \":\"\")+t.toLowerCase()}),_u=uo(\"toLowerCase\");var bu=co(function(e,t,n){return e+(n?\"_\":\"\")+t.toLowerCase()});var wu=co(function(e,t,n){return e+(n?\" \":\"\")+Eu(t)});var Tu=co(function(e,t,n){return e+(n?\" \":\"\")+t.toUpperCase()}),Eu=uo(\"toUpperCase\");function xu(e,t,n){return e=Vs(e),(t=n?o:t)===o?function(e){return Et.test(e)}(e)?function(e){return e.match(wt)||[]}(e):function(e){return e.match(Fe)||[]}(e):e.match(t)||[]}var Cu=Ei(function(e,t){try{return Vt(e,o,t)}catch(e){return Es(e)?e:new Je(e)}}),Au=Io(function(e,t){return Kt(t,function(t){t=la(t),Nr(e,t,ns(e[t],e))}),e});function Su(e){return function(){return e}}var Ou=po(),Du=po(!0);function Iu(e){return e}function ku(e){return ui(\"function\"==typeof e?e:Pr(e,p))}var Nu=Ei(function(e,t){return function(n){return ri(n,e,t)}}),Lu=Ei(function(e,t){return function(n){return ri(e,n,t)}});function ju(e,t,n){var r=iu(t),i=Xr(t,r);null!=n||Ss(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=Xr(t,iu(t)));var o=!(Ss(n)&&\"chain\"in n&&!n.chain),a=xs(e);return Kt(i,function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,en([this.value()],arguments))})}),e}function Pu(){}var Ru=mo(Zt),$u=mo(Xt),Hu=mo(rn);function Mu(e){return Go(e)?pn(la(e)):function(e){return function(t){return Qr(t,e)}}(e)}var Fu=_o(),Wu=_o(!0);function qu(){return[]}function Bu(){return!1}var Uu=go(function(e,t){return e+t},0),Vu=To(\"ceil\"),zu=go(function(e,t){return e/t},1),Ku=To(\"floor\");var Gu,Xu=go(function(e,t){return e*t},1),Qu=To(\"round\"),Yu=go(function(e,t){return e-t},0);return dr.after=function(e,t){if(\"function\"!=typeof t)throw new it(u);return e=Ws(e),function(){if(--e<1)return t.apply(this,arguments)}},dr.ary=es,dr.assign=zs,dr.assignIn=Ks,dr.assignInWith=Gs,dr.assignWith=Xs,dr.at=Qs,dr.before=ts,dr.bind=ns,dr.bindAll=Au,dr.bindKey=rs,dr.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ms(e)?e:[e]},dr.chain=Ma,dr.chunk=function(e,t,n){t=(n?Ko(e,t,n):t===o)?1:Vn(Ws(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var a=0,s=0,u=r(Hn(i/t));a<i;)u[s++]=Ii(e,a,a+=t);return u},dr.compact=function(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var o=e[t];o&&(i[r++]=o)}return i},dr.concat=function(){var e=arguments.length;if(!e)return[];for(var t=r(e-1),n=arguments[0],i=e;i--;)t[i-1]=arguments[i];return en(ms(n)?no(n):[n],Ur(t,1))},dr.cond=function(e){var t=null==e?0:e.length,n=Ro();return e=t?Zt(e,function(e){if(\"function\"!=typeof e[1])throw new it(u);return[n(e[0]),e[1]]}):[],Ei(function(n){for(var r=-1;++r<t;){var i=e[r];if(Vt(i[0],this,n))return Vt(i[1],this,n)}})},dr.conforms=function(e){return function(e){var t=iu(e);return function(n){return Rr(n,e,t)}}(Pr(e,p))},dr.constant=Su,dr.countBy=qa,dr.create=function(e,t){var n=hr(e);return null==t?n:kr(n,t)},dr.curry=function e(t,n,r){var i=Co(t,b,o,o,o,o,o,n=r?o:n);return i.placeholder=e.placeholder,i},dr.curryRight=function e(t,n,r){var i=Co(t,w,o,o,o,o,o,n=r?o:n);return i.placeholder=e.placeholder,i},dr.debounce=is,dr.defaults=Ys,dr.defaultsDeep=Js,dr.defer=os,dr.delay=as,dr.difference=da,dr.differenceBy=ha,dr.differenceWith=va,dr.drop=function(e,t,n){var r=null==e?0:e.length;return r?Ii(e,(t=n||t===o?1:Ws(t))<0?0:t,r):[]},dr.dropRight=function(e,t,n){var r=null==e?0:e.length;return r?Ii(e,0,(t=r-(t=n||t===o?1:Ws(t)))<0?0:t):[]},dr.dropRightWhile=function(e,t){return e&&e.length?Fi(e,Ro(t,3),!0,!0):[]},dr.dropWhile=function(e,t){return e&&e.length?Fi(e,Ro(t,3),!0):[]},dr.fill=function(e,t,n,r){var i=null==e?0:e.length;return i?(n&&\"number\"!=typeof n&&Ko(e,t,n)&&(n=0,r=i),function(e,t,n,r){var i=e.length;for((n=Ws(n))<0&&(n=-n>i?0:i+n),(r=r===o||r>i?i:Ws(r))<0&&(r+=i),r=n>r?0:qs(r);n<r;)e[n++]=t;return e}(e,t,n,r)):[]},dr.filter=function(e,t){return(ms(e)?Qt:Br)(e,Ro(t,3))},dr.flatMap=function(e,t){return Ur(Qa(e,t),1)},dr.flatMapDeep=function(e,t){return Ur(Qa(e,t),L)},dr.flatMapDepth=function(e,t,n){return n=n===o?1:Ws(n),Ur(Qa(e,t),n)},dr.flatten=ya,dr.flattenDeep=function(e){return null!=e&&e.length?Ur(e,L):[]},dr.flattenDepth=function(e,t){return null!=e&&e.length?Ur(e,t=t===o?1:Ws(t)):[]},dr.flip=function(e){return Co(e,A)},dr.flow=Ou,dr.flowRight=Du,dr.fromPairs=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var i=e[t];r[i[0]]=i[1]}return r},dr.functions=function(e){return null==e?[]:Xr(e,iu(e))},dr.functionsIn=function(e){return null==e?[]:Xr(e,ou(e))},dr.groupBy=Ka,dr.initial=function(e){return null!=e&&e.length?Ii(e,0,-1):[]},dr.intersection=ba,dr.intersectionBy=wa,dr.intersectionWith=Ta,dr.invert=tu,dr.invertBy=nu,dr.invokeMap=Ga,dr.iteratee=ku,dr.keyBy=Xa,dr.keys=iu,dr.keysIn=ou,dr.map=Qa,dr.mapKeys=function(e,t){var n={};return t=Ro(t,3),Kr(e,function(e,r,i){Nr(n,t(e,r,i),e)}),n},dr.mapValues=function(e,t){var n={};return t=Ro(t,3),Kr(e,function(e,r,i){Nr(n,r,t(e,r,i))}),n},dr.matches=function(e){return di(Pr(e,p))},dr.matchesProperty=function(e,t){return hi(e,Pr(t,p))},dr.memoize=ss,dr.merge=au,dr.mergeWith=su,dr.method=Nu,dr.methodOf=Lu,dr.mixin=ju,dr.negate=us,dr.nthArg=function(e){return e=Ws(e),Ei(function(t){return gi(t,e)})},dr.omit=uu,dr.omitBy=function(e,t){return lu(e,us(Ro(t)))},dr.once=function(e){return ts(2,e)},dr.orderBy=function(e,t,n,r){return null==e?[]:(ms(t)||(t=null==t?[]:[t]),ms(n=r?o:n)||(n=null==n?[]:[n]),mi(e,t,n))},dr.over=Ru,dr.overArgs=cs,dr.overEvery=$u,dr.overSome=Hu,dr.partial=ls,dr.partialRight=fs,dr.partition=Ya,dr.pick=cu,dr.pickBy=lu,dr.property=Mu,dr.propertyOf=function(e){return function(t){return null==e?o:Qr(e,t)}},dr.pull=xa,dr.pullAll=Ca,dr.pullAllBy=function(e,t,n){return e&&e.length&&t&&t.length?_i(e,t,Ro(n,2)):e},dr.pullAllWith=function(e,t,n){return e&&e.length&&t&&t.length?_i(e,t,o,n):e},dr.pullAt=Aa,dr.range=Fu,dr.rangeRight=Wu,dr.rearg=ps,dr.reject=function(e,t){return(ms(e)?Qt:Br)(e,us(Ro(t,3)))},dr.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,i=[],o=e.length;for(t=Ro(t,3);++r<o;){var a=e[r];t(a,r,e)&&(n.push(a),i.push(r))}return bi(e,i),n},dr.rest=function(e,t){if(\"function\"!=typeof e)throw new it(u);return Ei(e,t=t===o?t:Ws(t))},dr.reverse=Sa,dr.sampleSize=function(e,t,n){return t=(n?Ko(e,t,n):t===o)?1:Ws(t),(ms(e)?Cr:Ci)(e,t)},dr.set=function(e,t,n){return null==e?e:Ai(e,t,n)},dr.setWith=function(e,t,n,r){return r=\"function\"==typeof r?r:o,null==e?e:Ai(e,t,n,r)},dr.shuffle=function(e){return(ms(e)?Ar:Di)(e)},dr.slice=function(e,t,n){var r=null==e?0:e.length;return r?(n&&\"number\"!=typeof n&&Ko(e,t,n)?(t=0,n=r):(t=null==t?0:Ws(t),n=n===o?r:Ws(n)),Ii(e,t,n)):[]},dr.sortBy=Ja,dr.sortedUniq=function(e){return e&&e.length?ji(e):[]},dr.sortedUniqBy=function(e,t){return e&&e.length?ji(e,Ro(t,2)):[]},dr.split=function(e,t,n){return n&&\"number\"!=typeof n&&Ko(e,t,n)&&(t=n=o),(n=n===o?$:n>>>0)?(e=Vs(e))&&(\"string\"==typeof t||null!=t&&!Ns(t))&&!(t=Ri(t))&&Cn(e)?Gi(Nn(e),0,n):e.split(t,n):[]},dr.spread=function(e,t){if(\"function\"!=typeof e)throw new it(u);return t=null==t?0:Vn(Ws(t),0),Ei(function(n){var r=n[t],i=Gi(n,0,t);return r&&en(i,r),Vt(e,this,i)})},dr.tail=function(e){var t=null==e?0:e.length;return t?Ii(e,1,t):[]},dr.take=function(e,t,n){return e&&e.length?Ii(e,0,(t=n||t===o?1:Ws(t))<0?0:t):[]},dr.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Ii(e,(t=r-(t=n||t===o?1:Ws(t)))<0?0:t,r):[]},dr.takeRightWhile=function(e,t){return e&&e.length?Fi(e,Ro(t,3),!1,!0):[]},dr.takeWhile=function(e,t){return e&&e.length?Fi(e,Ro(t,3)):[]},dr.tap=function(e,t){return t(e),e},dr.throttle=function(e,t,n){var r=!0,i=!0;if(\"function\"!=typeof e)throw new it(u);return Ss(n)&&(r=\"leading\"in n?!!n.leading:r,i=\"trailing\"in n?!!n.trailing:i),is(e,t,{leading:r,maxWait:t,trailing:i})},dr.thru=Fa,dr.toArray=Ms,dr.toPairs=fu,dr.toPairsIn=pu,dr.toPath=function(e){return ms(e)?Zt(e,la):Ps(e)?[e]:no(ca(Vs(e)))},dr.toPlainObject=Us,dr.transform=function(e,t,n){var r=ms(e),i=r||ws(e)||Rs(e);if(t=Ro(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:Ss(e)&&xs(o)?hr(kt(e)):{}}return(i?Kt:Kr)(e,function(e,r,i){return t(n,e,r,i)}),n},dr.unary=function(e){return es(e,1)},dr.union=Oa,dr.unionBy=Da,dr.unionWith=Ia,dr.uniq=function(e){return e&&e.length?$i(e):[]},dr.uniqBy=function(e,t){return e&&e.length?$i(e,Ro(t,2)):[]},dr.uniqWith=function(e,t){return t=\"function\"==typeof t?t:o,e&&e.length?$i(e,o,t):[]},dr.unset=function(e,t){return null==e||Hi(e,t)},dr.unzip=ka,dr.unzipWith=Na,dr.update=function(e,t,n){return null==e?e:Mi(e,t,Vi(n))},dr.updateWith=function(e,t,n,r){return r=\"function\"==typeof r?r:o,null==e?e:Mi(e,t,Vi(n),r)},dr.values=du,dr.valuesIn=function(e){return null==e?[]:yn(e,ou(e))},dr.without=La,dr.words=xu,dr.wrap=function(e,t){return ls(Vi(t),e)},dr.xor=ja,dr.xorBy=Pa,dr.xorWith=Ra,dr.zip=$a,dr.zipObject=function(e,t){return Bi(e||[],t||[],Or)},dr.zipObjectDeep=function(e,t){return Bi(e||[],t||[],Ai)},dr.zipWith=Ha,dr.entries=fu,dr.entriesIn=pu,dr.extend=Ks,dr.extendWith=Gs,ju(dr,dr),dr.add=Uu,dr.attempt=Cu,dr.camelCase=hu,dr.capitalize=vu,dr.ceil=Vu,dr.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=Bs(n))==n?n:0),t!==o&&(t=(t=Bs(t))==t?t:0),jr(Bs(e),t,n)},dr.clone=function(e){return Pr(e,h)},dr.cloneDeep=function(e){return Pr(e,p|h)},dr.cloneDeepWith=function(e,t){return Pr(e,p|h,t=\"function\"==typeof t?t:o)},dr.cloneWith=function(e,t){return Pr(e,h,t=\"function\"==typeof t?t:o)},dr.conformsTo=function(e,t){return null==t||Rr(e,t,iu(t))},dr.deburr=gu,dr.defaultTo=function(e,t){return null==e||e!=e?t:e},dr.divide=zu,dr.endsWith=function(e,t,n){e=Vs(e),t=Ri(t);var r=e.length,i=n=n===o?r:jr(Ws(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},dr.eq=ds,dr.escape=function(e){return(e=Vs(e))&&Ce.test(e)?e.replace(Ee,En):e},dr.escapeRegExp=function(e){return(e=Vs(e))&&Le.test(e)?e.replace(Ne,\"\\\\$&\"):e},dr.every=function(e,t,n){var r=ms(e)?Xt:Wr;return n&&Ko(e,t,n)&&(t=o),r(e,Ro(t,3))},dr.find=Ba,dr.findIndex=ga,dr.findKey=function(e,t){return an(e,Ro(t,3),Kr)},dr.findLast=Ua,dr.findLastIndex=ma,dr.findLastKey=function(e,t){return an(e,Ro(t,3),Gr)},dr.floor=Ku,dr.forEach=Va,dr.forEachRight=za,dr.forIn=function(e,t){return null==e?e:Vr(e,Ro(t,3),ou)},dr.forInRight=function(e,t){return null==e?e:zr(e,Ro(t,3),ou)},dr.forOwn=function(e,t){return e&&Kr(e,Ro(t,3))},dr.forOwnRight=function(e,t){return e&&Gr(e,Ro(t,3))},dr.get=Zs,dr.gt=hs,dr.gte=vs,dr.has=function(e,t){return null!=e&&Bo(e,t,ei)},dr.hasIn=eu,dr.head=_a,dr.identity=Iu,dr.includes=function(e,t,n,r){e=_s(e)?e:du(e),n=n&&!r?Ws(n):0;var i=e.length;return n<0&&(n=Vn(i+n,0)),js(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&un(e,t,n)>-1},dr.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:Ws(n);return i<0&&(i=Vn(r+i,0)),un(e,t,i)},dr.inRange=function(e,t,n){return t=Fs(t),n===o?(n=t,t=0):n=Fs(n),function(e,t,n){return e>=zn(t,n)&&e<Vn(t,n)}(e=Bs(e),t,n)},dr.invoke=ru,dr.isArguments=gs,dr.isArray=ms,dr.isArrayBuffer=ys,dr.isArrayLike=_s,dr.isArrayLikeObject=bs,dr.isBoolean=function(e){return!0===e||!1===e||Os(e)&&Jr(e)==U},dr.isBuffer=ws,dr.isDate=Ts,dr.isElement=function(e){return Os(e)&&1===e.nodeType&&!ks(e)},dr.isEmpty=function(e){if(null==e)return!0;if(_s(e)&&(ms(e)||\"string\"==typeof e||\"function\"==typeof e.splice||ws(e)||Rs(e)||gs(e)))return!e.length;var t=qo(e);if(t==Q||t==ne)return!e.size;if(Yo(e))return!ci(e).length;for(var n in e)if(lt.call(e,n))return!1;return!0},dr.isEqual=function(e,t){return oi(e,t)},dr.isEqualWith=function(e,t,n){var r=(n=\"function\"==typeof n?n:o)?n(e,t):o;return r===o?oi(e,t,o,n):!!r},dr.isError=Es,dr.isFinite=function(e){return\"number\"==typeof e&&qn(e)},dr.isFunction=xs,dr.isInteger=Cs,dr.isLength=As,dr.isMap=Ds,dr.isMatch=function(e,t){return e===t||ai(e,t,Ho(t))},dr.isMatchWith=function(e,t,n){return n=\"function\"==typeof n?n:o,ai(e,t,Ho(t),n)},dr.isNaN=function(e){return Is(e)&&e!=+e},dr.isNative=function(e){if(Qo(e))throw new Je(s);return si(e)},dr.isNil=function(e){return null==e},dr.isNull=function(e){return null===e},dr.isNumber=Is,dr.isObject=Ss,dr.isObjectLike=Os,dr.isPlainObject=ks,dr.isRegExp=Ns,dr.isSafeInteger=function(e){return Cs(e)&&e>=-j&&e<=j},dr.isSet=Ls,dr.isString=js,dr.isSymbol=Ps,dr.isTypedArray=Rs,dr.isUndefined=function(e){return e===o},dr.isWeakMap=function(e){return Os(e)&&qo(e)==ae},dr.isWeakSet=function(e){return Os(e)&&Jr(e)==se},dr.join=function(e,t){return null==e?\"\":Bn.call(e,t)},dr.kebabCase=mu,dr.last=Ea,dr.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=Ws(n))<0?Vn(r+i,0):zn(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):sn(e,ln,i,!0)},dr.lowerCase=yu,dr.lowerFirst=_u,dr.lt=$s,dr.lte=Hs,dr.max=function(e){return e&&e.length?qr(e,Iu,Zr):o},dr.maxBy=function(e,t){return e&&e.length?qr(e,Ro(t,2),Zr):o},dr.mean=function(e){return fn(e,Iu)},dr.meanBy=function(e,t){return fn(e,Ro(t,2))},dr.min=function(e){return e&&e.length?qr(e,Iu,fi):o},dr.minBy=function(e,t){return e&&e.length?qr(e,Ro(t,2),fi):o},dr.stubArray=qu,dr.stubFalse=Bu,dr.stubObject=function(){return{}},dr.stubString=function(){return\"\"},dr.stubTrue=function(){return!0},dr.multiply=Xu,dr.nth=function(e,t){return e&&e.length?gi(e,Ws(t)):o},dr.noConflict=function(){return Lt._===this&&(Lt._=vt),this},dr.noop=Pu,dr.now=Za,dr.pad=function(e,t,n){e=Vs(e);var r=(t=Ws(t))?kn(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return yo(Mn(i),n)+e+yo(Hn(i),n)},dr.padEnd=function(e,t,n){e=Vs(e);var r=(t=Ws(t))?kn(e):0;return t&&r<t?e+yo(t-r,n):e},dr.padStart=function(e,t,n){e=Vs(e);var r=(t=Ws(t))?kn(e):0;return t&&r<t?yo(t-r,n)+e:e},dr.parseInt=function(e,t,n){return n||null==t?t=0:t&&(t=+t),Gn(Vs(e).replace(Pe,\"\"),t||0)},dr.random=function(e,t,n){if(n&&\"boolean\"!=typeof n&&Ko(e,t,n)&&(t=n=o),n===o&&(\"boolean\"==typeof t?(n=t,t=o):\"boolean\"==typeof e&&(n=e,e=o)),e===o&&t===o?(e=0,t=1):(e=Fs(e),t===o?(t=e,e=0):t=Fs(t)),e>t){var r=e;e=t,t=r}if(n||e%1||t%1){var i=Xn();return zn(e+i*(t-e+Dt(\"1e-\"+((i+\"\").length-1))),t)}return wi(e,t)},dr.reduce=function(e,t,n){var r=ms(e)?tn:hn,i=arguments.length<3;return r(e,Ro(t,4),n,i,Mr)},dr.reduceRight=function(e,t,n){var r=ms(e)?nn:hn,i=arguments.length<3;return r(e,Ro(t,4),n,i,Fr)},dr.repeat=function(e,t,n){return t=(n?Ko(e,t,n):t===o)?1:Ws(t),Ti(Vs(e),t)},dr.replace=function(){var e=arguments,t=Vs(e[0]);return e.length<3?t:t.replace(e[1],e[2])},dr.result=function(e,t,n){var r=-1,i=(t=zi(t,e)).length;for(i||(i=1,e=o);++r<i;){var a=null==e?o:e[la(t[r])];a===o&&(r=i,a=n),e=xs(a)?a.call(e):a}return e},dr.round=Qu,dr.runInContext=e,dr.sample=function(e){return(ms(e)?xr:xi)(e)},dr.size=function(e){if(null==e)return 0;if(_s(e))return js(e)?kn(e):e.length;var t=qo(e);return t==Q||t==ne?e.size:ci(e).length},dr.snakeCase=bu,dr.some=function(e,t,n){var r=ms(e)?rn:ki;return n&&Ko(e,t,n)&&(t=o),r(e,Ro(t,3))},dr.sortedIndex=function(e,t){return Ni(e,t)},dr.sortedIndexBy=function(e,t,n){return Li(e,t,Ro(n,2))},dr.sortedIndexOf=function(e,t){var n=null==e?0:e.length;if(n){var r=Ni(e,t);if(r<n&&ds(e[r],t))return r}return-1},dr.sortedLastIndex=function(e,t){return Ni(e,t,!0)},dr.sortedLastIndexBy=function(e,t,n){return Li(e,t,Ro(n,2),!0)},dr.sortedLastIndexOf=function(e,t){if(null!=e&&e.length){var n=Ni(e,t,!0)-1;if(ds(e[n],t))return n}return-1},dr.startCase=wu,dr.startsWith=function(e,t,n){return e=Vs(e),n=null==n?0:jr(Ws(n),0,e.length),t=Ri(t),e.slice(n,n+t.length)==t},dr.subtract=Yu,dr.sum=function(e){return e&&e.length?vn(e,Iu):0},dr.sumBy=function(e,t){return e&&e.length?vn(e,Ro(t,2)):0},dr.template=function(e,t,n){var r=dr.templateSettings;n&&Ko(e,t,n)&&(t=o),e=Vs(e),t=Gs({},t,r,Ao);var i,a,s=Gs({},t.imports,r.imports,Ao),u=iu(s),c=yn(s,u),l=0,f=t.interpolate||Qe,p=\"__p += '\",d=nt((t.escape||Qe).source+\"|\"+f.source+\"|\"+(f===Oe?qe:Qe).source+\"|\"+(t.evaluate||Qe).source+\"|$\",\"g\"),h=\"//# sourceURL=\"+(\"sourceURL\"in t?t.sourceURL:\"lodash.templateSources[\"+ ++Ct+\"]\")+\"\\n\";e.replace(d,function(t,n,r,o,s,u){return r||(r=o),p+=e.slice(l,u).replace(Ye,xn),n&&(i=!0,p+=\"' +\\n__e(\"+n+\") +\\n'\"),s&&(a=!0,p+=\"';\\n\"+s+\";\\n__p += '\"),r&&(p+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),l=u+t.length,t}),p+=\"';\\n\";var v=t.variable;v||(p=\"with (obj) {\\n\"+p+\"\\n}\\n\"),p=(a?p.replace(_e,\"\"):p).replace(be,\"$1\").replace(we,\"$1;\"),p=\"function(\"+(v||\"obj\")+\") {\\n\"+(v?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(i?\", __e = _.escape\":\"\")+(a?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+p+\"return __p\\n}\";var g=Cu(function(){return Ze(u,h+\"return \"+p).apply(o,c)});if(g.source=p,Es(g))throw g;return g},dr.times=function(e,t){if((e=Ws(e))<1||e>j)return[];var n=$,r=zn(e,$);t=Ro(t),e-=$;for(var i=gn(r,t);++n<e;)t(n);return i},dr.toFinite=Fs,dr.toInteger=Ws,dr.toLength=qs,dr.toLower=function(e){return Vs(e).toLowerCase()},dr.toNumber=Bs,dr.toSafeInteger=function(e){return e?jr(Ws(e),-j,j):0===e?e:0},dr.toString=Vs,dr.toUpper=function(e){return Vs(e).toUpperCase()},dr.trim=function(e,t,n){if((e=Vs(e))&&(n||t===o))return e.replace(je,\"\");if(!e||!(t=Ri(t)))return e;var r=Nn(e),i=Nn(t);return Gi(r,bn(r,i),wn(r,i)+1).join(\"\")},dr.trimEnd=function(e,t,n){if((e=Vs(e))&&(n||t===o))return e.replace(Re,\"\");if(!e||!(t=Ri(t)))return e;var r=Nn(e);return Gi(r,0,wn(r,Nn(t))+1).join(\"\")},dr.trimStart=function(e,t,n){if((e=Vs(e))&&(n||t===o))return e.replace(Pe,\"\");if(!e||!(t=Ri(t)))return e;var r=Nn(e);return Gi(r,bn(r,Nn(t))).join(\"\")},dr.truncate=function(e,t){var n=S,r=O;if(Ss(t)){var i=\"separator\"in t?t.separator:i;n=\"length\"in t?Ws(t.length):n,r=\"omission\"in t?Ri(t.omission):r}var a=(e=Vs(e)).length;if(Cn(e)){var s=Nn(e);a=s.length}if(n>=a)return e;var u=n-kn(r);if(u<1)return r;var c=s?Gi(s,0,u).join(\"\"):e.slice(0,u);if(i===o)return c+r;if(s&&(u+=c.length-u),Ns(i)){if(e.slice(u).search(i)){var l,f=c;for(i.global||(i=nt(i.source,Vs(Be.exec(i))+\"g\")),i.lastIndex=0;l=i.exec(f);)var p=l.index;c=c.slice(0,p===o?u:p)}}else if(e.indexOf(Ri(i),u)!=u){var d=c.lastIndexOf(i);d>-1&&(c=c.slice(0,d))}return c+r},dr.unescape=function(e){return(e=Vs(e))&&xe.test(e)?e.replace(Te,Ln):e},dr.uniqueId=function(e){var t=++ft;return Vs(e)+t},dr.upperCase=Tu,dr.upperFirst=Eu,dr.each=Va,dr.eachRight=za,dr.first=_a,ju(dr,(Gu={},Kr(dr,function(e,t){lt.call(dr.prototype,t)||(Gu[t]=e)}),Gu),{chain:!1}),dr.VERSION=\"4.17.11\",Kt([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(e){dr[e].placeholder=dr}),Kt([\"drop\",\"take\"],function(e,t){mr.prototype[e]=function(n){n=n===o?1:Vn(Ws(n),0);var r=this.__filtered__&&!t?new mr(this):this.clone();return r.__filtered__?r.__takeCount__=zn(n,r.__takeCount__):r.__views__.push({size:zn(n,$),type:e+(r.__dir__<0?\"Right\":\"\")}),r},mr.prototype[e+\"Right\"]=function(t){return this.reverse()[e](t).reverse()}}),Kt([\"filter\",\"map\",\"takeWhile\"],function(e,t){var n=t+1,r=n==k||3==n;mr.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ro(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),Kt([\"head\",\"last\"],function(e,t){var n=\"take\"+(t?\"Right\":\"\");mr.prototype[e]=function(){return this[n](1).value()[0]}}),Kt([\"initial\",\"tail\"],function(e,t){var n=\"drop\"+(t?\"\":\"Right\");mr.prototype[e]=function(){return this.__filtered__?new mr(this):this[n](1)}}),mr.prototype.compact=function(){return this.filter(Iu)},mr.prototype.find=function(e){return this.filter(e).head()},mr.prototype.findLast=function(e){return this.reverse().find(e)},mr.prototype.invokeMap=Ei(function(e,t){return\"function\"==typeof e?new mr(this):this.map(function(n){return ri(n,e,t)})}),mr.prototype.reject=function(e){return this.filter(us(Ro(e)))},mr.prototype.slice=function(e,t){e=Ws(e);var n=this;return n.__filtered__&&(e>0||t<0)?new mr(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=Ws(t))<0?n.dropRight(-t):n.take(t-e)),n)},mr.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},mr.prototype.toArray=function(){return this.take($)},Kr(mr.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=dr[r?\"take\"+(\"last\"==t?\"Right\":\"\"):t],a=r||/^find/.test(t);i&&(dr.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,u=t instanceof mr,c=s[0],l=u||ms(t),f=function(e){var t=i.apply(dr,en([e],s));return r&&p?t[0]:t};l&&n&&\"function\"==typeof c&&1!=c.length&&(u=l=!1);var p=this.__chain__,d=!!this.__actions__.length,h=a&&!p,v=u&&!d;if(!a&&l){t=v?t:new mr(this);var g=e.apply(t,s);return g.__actions__.push({func:Fa,args:[f],thisArg:o}),new gr(g,p)}return h&&v?e.apply(this,s):(g=this.thru(f),h?r?g.value()[0]:g.value():g)})}),Kt([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?\"tap\":\"thru\",r=/^(?:pop|shift)$/.test(e);dr.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(ms(i)?i:[],e)}return this[n](function(n){return t.apply(ms(n)?n:[],e)})}}),Kr(mr.prototype,function(e,t){var n=dr[t];if(n){var r=n.name+\"\";(ir[r]||(ir[r]=[])).push({name:t,func:n})}}),ir[ho(o,y).name]=[{name:\"wrapper\",func:o}],mr.prototype.clone=function(){var e=new mr(this.__wrapped__);return e.__actions__=no(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=no(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=no(this.__views__),e},mr.prototype.reverse=function(){if(this.__filtered__){var e=new mr(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},mr.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ms(e),r=t<0,i=n?e.length:0,o=function(e,t,n){for(var r=-1,i=n.length;++r<i;){var o=n[r],a=o.size;switch(o.type){case\"drop\":e+=a;break;case\"dropRight\":t-=a;break;case\"take\":t=zn(t,e+a);break;case\"takeRight\":e=Vn(e,t-a)}}return{start:e,end:t}}(0,i,this.__views__),a=o.start,s=o.end,u=s-a,c=r?s:a-1,l=this.__iteratees__,f=l.length,p=0,d=zn(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return Wi(e,this.__actions__);var h=[];e:for(;u--&&p<d;){for(var v=-1,g=e[c+=t];++v<f;){var m=l[v],y=m.iteratee,_=m.type,b=y(g);if(_==N)g=b;else if(!b){if(_==k)continue e;break e}}h[p++]=g}return h},dr.prototype.at=Wa,dr.prototype.chain=function(){return Ma(this)},dr.prototype.commit=function(){return new gr(this.value(),this.__chain__)},dr.prototype.next=function(){this.__values__===o&&(this.__values__=Ms(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},dr.prototype.plant=function(e){for(var t,n=this;n instanceof vr;){var r=pa(n);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},dr.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof mr){var t=e;return this.__actions__.length&&(t=new mr(this)),(t=t.reverse()).__actions__.push({func:Fa,args:[Sa],thisArg:o}),new gr(t,this.__chain__)}return this.thru(Sa)},dr.prototype.toJSON=dr.prototype.valueOf=dr.prototype.value=function(){return Wi(this.__wrapped__,this.__actions__)},dr.prototype.first=dr.prototype.head,Ht&&(dr.prototype[Ht]=function(){return this}),dr}();Lt._=jn,(i=function(){return jn}.call(t,n,t,r))===o||(r.exports=i)}).call(this)}).call(this,n(1),n(15)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){!function(e,t,n){\"use strict\";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){o(e,t,n[t])})}return e}t=t&&t.hasOwnProperty(\"default\")?t.default:t,n=n&&n.hasOwnProperty(\"default\")?n.default:n;var s=function(e){var t=\"transitionend\";function n(t){var n=this,i=!1;return e(this).one(r.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||r.triggerTransitionEnd(n)},t),this}var r={TRANSITION_END:\"bsTransitionEnd\",getUID:function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},getSelectorFromElement:function(e){var t=e.getAttribute(\"data-target\");t&&\"#\"!==t||(t=e.getAttribute(\"href\")||\"\");try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var n=e(t).css(\"transition-duration\"),r=parseFloat(n);return r?(n=n.split(\",\")[0],1e3*parseFloat(n)):0},reflow:function(e){return e.offsetHeight},triggerTransitionEnd:function(n){e(n).trigger(t)},supportsTransitionEnd:function(){return Boolean(t)},isElement:function(e){return(e[0]||e).nodeType},typeCheckConfig:function(e,t,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],a=t[i],s=a&&r.isElement(a)?\"element\":(u=a,{}.toString.call(u).match(/\\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(e.toUpperCase()+': Option \"'+i+'\" provided type \"'+s+'\" but expected type \"'+o+'\".')}var u}};return e.fn.emulateTransitionEnd=n,e.event.special[r.TRANSITION_END]={bindType:t,delegateType:t,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},r}(t),u=function(e){var t=e.fn.alert,n={CLOSE:\"close.bs.alert\",CLOSED:\"closed.bs.alert\",CLICK_DATA_API:\"click.bs.alert.data-api\"},r={ALERT:\"alert\",FADE:\"fade\",SHOW:\"show\"},o=function(){function t(e){this._element=e}var o=t.prototype;return o.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);n.isDefaultPrevented()||this._removeElement(t)},o.dispose=function(){e.removeData(this._element,\"bs.alert\"),this._element=null},o._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(\".\"+r.ALERT)[0]),i},o._triggerCloseEvent=function(t){var r=e.Event(n.CLOSE);return e(t).trigger(r),r},o._removeElement=function(t){var n=this;if(e(t).removeClass(r.SHOW),e(t).hasClass(r.FADE)){var i=s.getTransitionDurationFromElement(t);e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(i)}else this._destroyElement(t)},o._destroyElement=function(t){e(t).detach().trigger(n.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var r=e(this),i=r.data(\"bs.alert\");i||(i=new t(this),r.data(\"bs.alert\",i)),\"close\"===n&&i[n](this)})},t._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},i(t,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}}]),t}();return e(document).on(n.CLICK_DATA_API,'[data-dismiss=\"alert\"]',o._handleDismiss(new o)),e.fn.alert=o._jQueryInterface,e.fn.alert.Constructor=o,e.fn.alert.noConflict=function(){return e.fn.alert=t,o._jQueryInterface},o}(t),c=function(e){var t=\"button\",n=e.fn[t],r={ACTIVE:\"active\",BUTTON:\"btn\",FOCUS:\"focus\"},o={DATA_TOGGLE_CARROT:'[data-toggle^=\"button\"]',DATA_TOGGLE:'[data-toggle=\"buttons\"]',INPUT:\"input\",ACTIVE:\".active\",BUTTON:\".btn\"},a={CLICK_DATA_API:\"click.bs.button.data-api\",FOCUS_BLUR_DATA_API:\"focus.bs.button.data-api blur.bs.button.data-api\"},s=function(){function t(e){this._element=e}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest(o.DATA_TOGGLE)[0];if(i){var a=this._element.querySelector(o.INPUT);if(a){if(\"radio\"===a.type)if(a.checked&&this._element.classList.contains(r.ACTIVE))t=!1;else{var s=i.querySelector(o.ACTIVE);s&&e(s).removeClass(r.ACTIVE)}if(t){if(a.hasAttribute(\"disabled\")||i.hasAttribute(\"disabled\")||a.classList.contains(\"disabled\")||i.classList.contains(\"disabled\"))return;a.checked=!this._element.classList.contains(r.ACTIVE),e(a).trigger(\"change\")}a.focus(),n=!1}}n&&this._element.setAttribute(\"aria-pressed\",!this._element.classList.contains(r.ACTIVE)),t&&e(this._element).toggleClass(r.ACTIVE)},n.dispose=function(){e.removeData(this._element,\"bs.button\"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var r=e(this).data(\"bs.button\");r||(r=new t(this),e(this).data(\"bs.button\",r)),\"toggle\"===n&&r[n]()})},i(t,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}}]),t}();return e(document).on(a.CLICK_DATA_API,o.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(r.BUTTON)||(n=e(n).closest(o.BUTTON)),s._jQueryInterface.call(e(n),\"toggle\")}).on(a.FOCUS_BLUR_DATA_API,o.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(o.BUTTON)[0];e(n).toggleClass(r.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=s._jQueryInterface,e.fn[t].Constructor=s,e.fn[t].noConflict=function(){return e.fn[t]=n,s._jQueryInterface},s}(t),l=function(e){var t=\"carousel\",n=\"bs.carousel\",r=\".\"+n,o=e.fn[t],u={interval:5e3,keyboard:!0,slide:!1,pause:\"hover\",wrap:!0},c={interval:\"(number|boolean)\",keyboard:\"boolean\",slide:\"(boolean|string)\",pause:\"(string|boolean)\",wrap:\"boolean\"},l={NEXT:\"next\",PREV:\"prev\",LEFT:\"left\",RIGHT:\"right\"},f={SLIDE:\"slide\"+r,SLID:\"slid\"+r,KEYDOWN:\"keydown\"+r,MOUSEENTER:\"mouseenter\"+r,MOUSELEAVE:\"mouseleave\"+r,TOUCHEND:\"touchend\"+r,LOAD_DATA_API:\"load.bs.carousel.data-api\",CLICK_DATA_API:\"click.bs.carousel.data-api\"},p={CAROUSEL:\"carousel\",ACTIVE:\"active\",SLIDE:\"slide\",RIGHT:\"carousel-item-right\",LEFT:\"carousel-item-left\",NEXT:\"carousel-item-next\",PREV:\"carousel-item-prev\",ITEM:\"carousel-item\"},d={ACTIVE:\".active\",ACTIVE_ITEM:\".active.carousel-item\",ITEM:\".carousel-item\",NEXT_PREV:\".carousel-item-next, .carousel-item-prev\",INDICATORS:\".carousel-indicators\",DATA_SLIDE:\"[data-slide], [data-slide-to]\",DATA_RIDE:'[data-ride=\"carousel\"]'},h=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=this._element.querySelector(d.INDICATORS),this._addEventListeners()}var h=o.prototype;return h.next=function(){this._isSliding||this._slide(l.NEXT)},h.nextWhenVisible=function(){!document.hidden&&e(this._element).is(\":visible\")&&\"hidden\"!==e(this._element).css(\"visibility\")&&this.next()},h.prev=function(){this._isSliding||this._slide(l.PREV)},h.pause=function(e){e||(this._isPaused=!0),this._element.querySelector(d.NEXT_PREV)&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},h.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},h.to=function(t){var n=this;this._activeElement=this._element.querySelector(d.ACTIVE_ITEM);var r=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(f.SLID,function(){return n.to(t)});else{if(r===t)return this.pause(),void this.cycle();var i=t>r?l.NEXT:l.PREV;this._slide(i,this._items[t])}},h.dispose=function(){e(this._element).off(r),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},h._getConfig=function(e){return e=a({},u,e),s.typeCheckConfig(t,e,c),e},h._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(f.KEYDOWN,function(e){return t._keydown(e)}),\"hover\"===this._config.pause&&(e(this._element).on(f.MOUSEENTER,function(e){return t.pause(e)}).on(f.MOUSELEAVE,function(e){return t.cycle(e)}),\"ontouchstart\"in document.documentElement&&e(this._element).on(f.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},h._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case 37:e.preventDefault(),this.prev();break;case 39:e.preventDefault(),this.next()}},h._getItemIndex=function(e){return this._items=e&&e.parentNode?[].slice.call(e.parentNode.querySelectorAll(d.ITEM)):[],this._items.indexOf(e)},h._getItemByDirection=function(e,t){var n=e===l.NEXT,r=e===l.PREV,i=this._getItemIndex(t),o=this._items.length-1,a=r&&0===i||n&&i===o;if(a&&!this._config.wrap)return t;var s=e===l.PREV?-1:1,u=(i+s)%this._items.length;return-1===u?this._items[this._items.length-1]:this._items[u]},h._triggerSlideEvent=function(t,n){var r=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(d.ACTIVE_ITEM)),o=e.Event(f.SLIDE,{relatedTarget:t,direction:n,from:i,to:r});return e(this._element).trigger(o),o},h._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(d.ACTIVE));e(n).removeClass(p.ACTIVE);var r=this._indicatorsElement.children[this._getItemIndex(t)];r&&e(r).addClass(p.ACTIVE)}},h._slide=function(t,n){var r,i,o,a=this,u=this._element.querySelector(d.ACTIVE_ITEM),c=this._getItemIndex(u),h=n||u&&this._getItemByDirection(t,u),v=this._getItemIndex(h),g=Boolean(this._interval);if(t===l.NEXT?(r=p.LEFT,i=p.NEXT,o=l.LEFT):(r=p.RIGHT,i=p.PREV,o=l.RIGHT),h&&e(h).hasClass(p.ACTIVE))this._isSliding=!1;else{var m=this._triggerSlideEvent(h,o);if(!m.isDefaultPrevented()&&u&&h){this._isSliding=!0,g&&this.pause(),this._setActiveIndicatorElement(h);var y=e.Event(f.SLID,{relatedTarget:h,direction:o,from:c,to:v});if(e(this._element).hasClass(p.SLIDE)){e(h).addClass(i),s.reflow(h),e(u).addClass(r),e(h).addClass(r);var _=s.getTransitionDurationFromElement(u);e(u).one(s.TRANSITION_END,function(){e(h).removeClass(r+\" \"+i).addClass(p.ACTIVE),e(u).removeClass(p.ACTIVE+\" \"+i+\" \"+r),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(y)},0)}).emulateTransitionEnd(_)}else e(u).removeClass(p.ACTIVE),e(h).addClass(p.ACTIVE),this._isSliding=!1,e(this._element).trigger(y);g&&this.cycle()}}},o._jQueryInterface=function(t){return this.each(function(){var r=e(this).data(n),i=a({},u,e(this).data());\"object\"==typeof t&&(i=a({},i,t));var s=\"string\"==typeof t?t:i.slide;if(r||(r=new o(this,i),e(this).data(n,r)),\"number\"==typeof t)r.to(t);else if(\"string\"==typeof s){if(void 0===r[s])throw new TypeError('No method named \"'+s+'\"');r[s]()}else i.interval&&(r.pause(),r.cycle())})},o._dataApiClickHandler=function(t){var r=s.getSelectorFromElement(this);if(r){var i=e(r)[0];if(i&&e(i).hasClass(p.CAROUSEL)){var u=a({},e(i).data(),e(this).data()),c=this.getAttribute(\"data-slide-to\");c&&(u.interval=!1),o._jQueryInterface.call(e(i),u),c&&e(i).data(n).to(c),t.preventDefault()}}},i(o,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return u}}]),o}();return e(document).on(f.CLICK_DATA_API,d.DATA_SLIDE,h._dataApiClickHandler),e(window).on(f.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(d.DATA_RIDE)),n=0,r=t.length;n<r;n++){var i=e(t[n]);h._jQueryInterface.call(i,i.data())}}),e.fn[t]=h._jQueryInterface,e.fn[t].Constructor=h,e.fn[t].noConflict=function(){return e.fn[t]=o,h._jQueryInterface},h}(t),f=function(e){var t=\"collapse\",n=\"bs.collapse\",r=e.fn[t],o={toggle:!0,parent:\"\"},u={toggle:\"boolean\",parent:\"(string|element)\"},c={SHOW:\"show.bs.collapse\",SHOWN:\"shown.bs.collapse\",HIDE:\"hide.bs.collapse\",HIDDEN:\"hidden.bs.collapse\",CLICK_DATA_API:\"click.bs.collapse.data-api\"},l={SHOW:\"show\",COLLAPSE:\"collapse\",COLLAPSING:\"collapsing\",COLLAPSED:\"collapsed\"},f={WIDTH:\"width\",HEIGHT:\"height\"},p={ACTIVES:\".show, .collapsing\",DATA_TOGGLE:'[data-toggle=\"collapse\"]'},d=function(){function r(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(document.querySelectorAll('[data-toggle=\"collapse\"][href=\"#'+t.id+'\"],[data-toggle=\"collapse\"][data-target=\"#'+t.id+'\"]'));for(var r=[].slice.call(document.querySelectorAll(p.DATA_TOGGLE)),i=0,o=r.length;i<o;i++){var a=r[i],u=s.getSelectorFromElement(a),c=[].slice.call(document.querySelectorAll(u)).filter(function(e){return e===t});null!==u&&c.length>0&&(this._selector=u,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var d=r.prototype;return d.toggle=function(){e(this._element).hasClass(l.SHOW)?this.hide():this.show()},d.show=function(){var t,i,o=this;if(!(this._isTransitioning||e(this._element).hasClass(l.SHOW)||(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(p.ACTIVES)).filter(function(e){return e.getAttribute(\"data-parent\")===o._config.parent})).length&&(t=null),t&&(i=e(t).not(this._selector).data(n))&&i._isTransitioning))){var a=e.Event(c.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){t&&(r._jQueryInterface.call(e(t).not(this._selector),\"hide\"),i||e(t).data(n,null));var u=this._getDimension();e(this._element).removeClass(l.COLLAPSE).addClass(l.COLLAPSING),this._element.style[u]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(l.COLLAPSED).attr(\"aria-expanded\",!0),this.setTransitioning(!0);var f=u[0].toUpperCase()+u.slice(1),d=\"scroll\"+f,h=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,function(){e(o._element).removeClass(l.COLLAPSING).addClass(l.COLLAPSE).addClass(l.SHOW),o._element.style[u]=\"\",o.setTransitioning(!1),e(o._element).trigger(c.SHOWN)}).emulateTransitionEnd(h),this._element.style[u]=this._element[d]+\"px\"}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(l.SHOW)){var n=e.Event(c.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var r=this._getDimension();this._element.style[r]=this._element.getBoundingClientRect()[r]+\"px\",s.reflow(this._element),e(this._element).addClass(l.COLLAPSING).removeClass(l.COLLAPSE).removeClass(l.SHOW);var i=this._triggerArray.length;if(i>0)for(var o=0;o<i;o++){var a=this._triggerArray[o],u=s.getSelectorFromElement(a);if(null!==u){var f=e([].slice.call(document.querySelectorAll(u)));f.hasClass(l.SHOW)||e(a).addClass(l.COLLAPSED).attr(\"aria-expanded\",!1)}}this.setTransitioning(!0),this._element.style[r]=\"\";var p=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,function(){t.setTransitioning(!1),e(t._element).removeClass(l.COLLAPSING).addClass(l.COLLAPSE).trigger(c.HIDDEN)}).emulateTransitionEnd(p)}}},d.setTransitioning=function(e){this._isTransitioning=e},d.dispose=function(){e.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},d._getConfig=function(e){return(e=a({},o,e)).toggle=Boolean(e.toggle),s.typeCheckConfig(t,e,u),e},d._getDimension=function(){var t=e(this._element).hasClass(f.WIDTH);return t?f.WIDTH:f.HEIGHT},d._getParent=function(){var t=this,n=null;s.isElement(this._config.parent)?(n=this._config.parent,void 0!==this._config.parent.jquery&&(n=this._config.parent[0])):n=document.querySelector(this._config.parent);var i='[data-toggle=\"collapse\"][data-parent=\"'+this._config.parent+'\"]',o=[].slice.call(n.querySelectorAll(i));return e(o).each(function(e,n){t._addAriaAndCollapsedClass(r._getTargetFromElement(n),[n])}),n},d._addAriaAndCollapsedClass=function(t,n){if(t){var r=e(t).hasClass(l.SHOW);n.length&&e(n).toggleClass(l.COLLAPSED,!r).attr(\"aria-expanded\",r)}},r._getTargetFromElement=function(e){var t=s.getSelectorFromElement(e);return t?document.querySelector(t):null},r._jQueryInterface=function(t){return this.each(function(){var i=e(this),s=i.data(n),u=a({},o,i.data(),\"object\"==typeof t&&t?t:{});if(!s&&u.toggle&&/show|hide/.test(t)&&(u.toggle=!1),s||(s=new r(this,u),i.data(n,s)),\"string\"==typeof t){if(void 0===s[t])throw new TypeError('No method named \"'+t+'\"');s[t]()}})},i(r,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return o}}]),r}();return e(document).on(c.CLICK_DATA_API,p.DATA_TOGGLE,function(t){\"A\"===t.currentTarget.tagName&&t.preventDefault();var r=e(this),i=s.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(i));e(o).each(function(){var t=e(this),i=t.data(n),o=i?\"toggle\":r.data();d._jQueryInterface.call(t,o)})}),e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=r,d._jQueryInterface},d}(t),p=function(e){var t=\"dropdown\",r=\"bs.dropdown\",o=\".\"+r,u=e.fn[t],c=new RegExp(\"38|40|27\"),l={HIDE:\"hide\"+o,HIDDEN:\"hidden\"+o,SHOW:\"show\"+o,SHOWN:\"shown\"+o,CLICK:\"click\"+o,CLICK_DATA_API:\"click.bs.dropdown.data-api\",KEYDOWN_DATA_API:\"keydown.bs.dropdown.data-api\",KEYUP_DATA_API:\"keyup.bs.dropdown.data-api\"},f={DISABLED:\"disabled\",SHOW:\"show\",DROPUP:\"dropup\",DROPRIGHT:\"dropright\",DROPLEFT:\"dropleft\",MENURIGHT:\"dropdown-menu-right\",MENULEFT:\"dropdown-menu-left\",POSITION_STATIC:\"position-static\"},p={DATA_TOGGLE:'[data-toggle=\"dropdown\"]',FORM_CHILD:\".dropdown form\",MENU:\".dropdown-menu\",NAVBAR_NAV:\".navbar-nav\",VISIBLE_ITEMS:\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\"},d={TOP:\"top-start\",TOPEND:\"top-end\",BOTTOM:\"bottom-start\",BOTTOMEND:\"bottom-end\",RIGHT:\"right-start\",RIGHTEND:\"right-end\",LEFT:\"left-start\",LEFTEND:\"left-end\"},h={offset:0,flip:!0,boundary:\"scrollParent\",reference:\"toggle\",display:\"dynamic\"},v={offset:\"(number|string|function)\",flip:\"boolean\",boundary:\"(string|element)\",reference:\"(string|element)\",display:\"string\"},g=function(){function u(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var g=u.prototype;return g.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass(f.DISABLED)){var t=u._getParentFromElement(this._element),r=e(this._menu).hasClass(f.SHOW);if(u._clearMenus(),!r){var i={relatedTarget:this._element},o=e.Event(l.SHOW,i);if(e(t).trigger(o),!o.isDefaultPrevented()){if(!this._inNavbar){if(void 0===n)throw new TypeError(\"Bootstrap dropdown require Popper.js (https://popper.js.org)\");var a=this._element;\"parent\"===this._config.reference?a=t:s.isElement(this._config.reference)&&(a=this._config.reference,void 0!==this._config.reference.jquery&&(a=this._config.reference[0])),\"scrollParent\"!==this._config.boundary&&e(t).addClass(f.POSITION_STATIC),this._popper=new n(a,this._menu,this._getPopperConfig())}\"ontouchstart\"in document.documentElement&&0===e(t).closest(p.NAVBAR_NAV).length&&e(document.body).children().on(\"mouseover\",null,e.noop),this._element.focus(),this._element.setAttribute(\"aria-expanded\",!0),e(this._menu).toggleClass(f.SHOW),e(t).toggleClass(f.SHOW).trigger(e.Event(l.SHOWN,i))}}}},g.dispose=function(){e.removeData(this._element,r),e(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},g.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},g._addEventListeners=function(){var t=this;e(this._element).on(l.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},g._getConfig=function(n){return n=a({},this.constructor.Default,e(this._element).data(),n),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},g._getMenuElement=function(){if(!this._menu){var e=u._getParentFromElement(this._element);e&&(this._menu=e.querySelector(p.MENU))}return this._menu},g._getPlacement=function(){var t=e(this._element.parentNode),n=d.BOTTOM;return t.hasClass(f.DROPUP)?(n=d.TOP,e(this._menu).hasClass(f.MENURIGHT)&&(n=d.TOPEND)):t.hasClass(f.DROPRIGHT)?n=d.RIGHT:t.hasClass(f.DROPLEFT)?n=d.LEFT:e(this._menu).hasClass(f.MENURIGHT)&&(n=d.BOTTOMEND),n},g._detectNavbar=function(){return e(this._element).closest(\".navbar\").length>0},g._getPopperConfig=function(){var e=this,t={};\"function\"==typeof this._config.offset?t.fn=function(t){return t.offsets=a({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return\"static\"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},u._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(r),i=\"object\"==typeof t?t:null;if(n||(n=new u(this,i),e(this).data(r,n)),\"string\"==typeof t){if(void 0===n[t])throw new TypeError('No method named \"'+t+'\"');n[t]()}})},u._clearMenus=function(t){if(!t||3!==t.which&&(\"keyup\"!==t.type||9===t.which))for(var n=[].slice.call(document.querySelectorAll(p.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var a=u._getParentFromElement(n[i]),s=e(n[i]).data(r),c={relatedTarget:n[i]};if(t&&\"click\"===t.type&&(c.clickEvent=t),s){var d=s._menu;if(e(a).hasClass(f.SHOW)&&!(t&&(\"click\"===t.type&&/input|textarea/i.test(t.target.tagName)||\"keyup\"===t.type&&9===t.which)&&e.contains(a,t.target))){var h=e.Event(l.HIDE,c);e(a).trigger(h),h.isDefaultPrevented()||(\"ontouchstart\"in document.documentElement&&e(document.body).children().off(\"mouseover\",null,e.noop),n[i].setAttribute(\"aria-expanded\",\"false\"),e(d).removeClass(f.SHOW),e(a).removeClass(f.SHOW).trigger(e.Event(l.HIDDEN,c)))}}}},u._getParentFromElement=function(e){var t,n=s.getSelectorFromElement(e);return n&&(t=document.querySelector(n)),t||e.parentNode},u._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||e(t.target).closest(p.MENU).length)):c.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!e(this).hasClass(f.DISABLED))){var n=u._getParentFromElement(this),r=e(n).hasClass(f.SHOW);if((r||27===t.which&&32===t.which)&&(!r||27!==t.which&&32!==t.which)){var i=[].slice.call(n.querySelectorAll(p.VISIBLE_ITEMS));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&o>0&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var a=n.querySelector(p.DATA_TOGGLE);e(a).trigger(\"focus\")}e(this).trigger(\"click\")}}},i(u,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return h}},{key:\"DefaultType\",get:function(){return v}}]),u}();return e(document).on(l.KEYDOWN_DATA_API,p.DATA_TOGGLE,g._dataApiKeydownHandler).on(l.KEYDOWN_DATA_API,p.MENU,g._dataApiKeydownHandler).on(l.CLICK_DATA_API+\" \"+l.KEYUP_DATA_API,g._clearMenus).on(l.CLICK_DATA_API,p.DATA_TOGGLE,function(t){t.preventDefault(),t.stopPropagation(),g._jQueryInterface.call(e(this),\"toggle\")}).on(l.CLICK_DATA_API,p.FORM_CHILD,function(e){e.stopPropagation()}),e.fn[t]=g._jQueryInterface,e.fn[t].Constructor=g,e.fn[t].noConflict=function(){return e.fn[t]=u,g._jQueryInterface},g}(t),d=function(e){var t=\"modal\",n=\".bs.modal\",r=e.fn.modal,o={backdrop:!0,keyboard:!0,focus:!0,show:!0},u={backdrop:\"(boolean|string)\",keyboard:\"boolean\",focus:\"boolean\",show:\"boolean\"},c={HIDE:\"hide.bs.modal\",HIDDEN:\"hidden.bs.modal\",SHOW:\"show.bs.modal\",SHOWN:\"shown.bs.modal\",FOCUSIN:\"focusin.bs.modal\",RESIZE:\"resize.bs.modal\",CLICK_DISMISS:\"click.dismiss.bs.modal\",KEYDOWN_DISMISS:\"keydown.dismiss.bs.modal\",MOUSEUP_DISMISS:\"mouseup.dismiss.bs.modal\",MOUSEDOWN_DISMISS:\"mousedown.dismiss.bs.modal\",CLICK_DATA_API:\"click.bs.modal.data-api\"},l={SCROLLBAR_MEASURER:\"modal-scrollbar-measure\",BACKDROP:\"modal-backdrop\",OPEN:\"modal-open\",FADE:\"fade\",SHOW:\"show\"},f={DIALOG:\".modal-dialog\",DATA_TOGGLE:'[data-toggle=\"modal\"]',DATA_DISMISS:'[data-dismiss=\"modal\"]',FIXED_CONTENT:\".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",STICKY_CONTENT:\".sticky-top\"},p=function(){function r(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=e.querySelector(f.DIALOG),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var p=r.prototype;return p.toggle=function(e){return this._isShown?this.hide():this.show(e)},p.show=function(t){var n=this;if(!this._isTransitioning&&!this._isShown){e(this._element).hasClass(l.FADE)&&(this._isTransitioning=!0);var r=e.Event(c.SHOW,{relatedTarget:t});e(this._element).trigger(r),this._isShown||r.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),e(document.body).addClass(l.OPEN),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on(c.CLICK_DISMISS,f.DATA_DISMISS,function(e){return n.hide(e)}),e(this._dialog).on(c.MOUSEDOWN_DISMISS,function(){e(n._element).one(c.MOUSEUP_DISMISS,function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)}))}},p.hide=function(t){var n=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var r=e.Event(c.HIDE);if(e(this._element).trigger(r),this._isShown&&!r.isDefaultPrevented()){this._isShown=!1;var i=e(this._element).hasClass(l.FADE);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off(c.FOCUSIN),e(this._element).removeClass(l.SHOW),e(this._element).off(c.CLICK_DISMISS),e(this._dialog).off(c.MOUSEDOWN_DISMISS),i){var o=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,function(e){return n._hideModal(e)}).emulateTransitionEnd(o)}else this._hideModal()}}},p.dispose=function(){e.removeData(this._element,\"bs.modal\"),e(window,document,this._element,this._backdrop).off(n),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},p.handleUpdate=function(){this._adjustDialog()},p._getConfig=function(e){return e=a({},o,e),s.typeCheckConfig(t,e,u),e},p._showElement=function(t){var n=this,r=e(this._element).hasClass(l.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display=\"block\",this._element.removeAttribute(\"aria-hidden\"),this._element.scrollTop=0,r&&s.reflow(this._element),e(this._element).addClass(l.SHOW),this._config.focus&&this._enforceFocus();var i=e.Event(c.SHOWN,{relatedTarget:t}),o=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(i)};if(r){var a=s.getTransitionDurationFromElement(this._element);e(this._dialog).one(s.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},p._enforceFocus=function(){var t=this;e(document).off(c.FOCUSIN).on(c.FOCUSIN,function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()})},p._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?e(this._element).on(c.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||e(this._element).off(c.KEYDOWN_DISMISS)},p._setResizeEvent=function(){var t=this;this._isShown?e(window).on(c.RESIZE,function(e){return t.handleUpdate(e)}):e(window).off(c.RESIZE)},p._hideModal=function(){var t=this;this._element.style.display=\"none\",this._element.setAttribute(\"aria-hidden\",!0),this._isTransitioning=!1,this._showBackdrop(function(){e(document.body).removeClass(l.OPEN),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger(c.HIDDEN)})},p._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},p._showBackdrop=function(t){var n=this,r=e(this._element).hasClass(l.FADE)?l.FADE:\"\";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement(\"div\"),this._backdrop.className=l.BACKDROP,r&&this._backdrop.classList.add(r),e(this._backdrop).appendTo(document.body),e(this._element).on(c.CLICK_DISMISS,function(e){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:e.target===e.currentTarget&&(\"static\"===n._config.backdrop?n._element.focus():n.hide())}),r&&s.reflow(this._backdrop),e(this._backdrop).addClass(l.SHOW),!t)return;if(!r)return void t();var i=s.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(s.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass(l.SHOW);var o=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass(l.FADE)){var a=s.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(s.TRANSITION_END,o).emulateTransitionEnd(a)}else o()}else t&&t()},p._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+\"px\"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+\"px\")},p._resetAdjustments=function(){this._element.style.paddingLeft=\"\",this._element.style.paddingRight=\"\"},p._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},p._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var n=[].slice.call(document.querySelectorAll(f.FIXED_CONTENT)),r=[].slice.call(document.querySelectorAll(f.STICKY_CONTENT));e(n).each(function(n,r){var i=r.style.paddingRight,o=e(r).css(\"padding-right\");e(r).data(\"padding-right\",i).css(\"padding-right\",parseFloat(o)+t._scrollbarWidth+\"px\")}),e(r).each(function(n,r){var i=r.style.marginRight,o=e(r).css(\"margin-right\");e(r).data(\"margin-right\",i).css(\"margin-right\",parseFloat(o)-t._scrollbarWidth+\"px\")});var i=document.body.style.paddingRight,o=e(document.body).css(\"padding-right\");e(document.body).data(\"padding-right\",i).css(\"padding-right\",parseFloat(o)+this._scrollbarWidth+\"px\")}},p._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(f.FIXED_CONTENT));e(t).each(function(t,n){var r=e(n).data(\"padding-right\");e(n).removeData(\"padding-right\"),n.style.paddingRight=r||\"\"});var n=[].slice.call(document.querySelectorAll(\"\"+f.STICKY_CONTENT));e(n).each(function(t,n){var r=e(n).data(\"margin-right\");void 0!==r&&e(n).css(\"margin-right\",r).removeData(\"margin-right\")});var r=e(document.body).data(\"padding-right\");e(document.body).removeData(\"padding-right\"),document.body.style.paddingRight=r||\"\"},p._getScrollbarWidth=function(){var e=document.createElement(\"div\");e.className=l.SCROLLBAR_MEASURER,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},r._jQueryInterface=function(t,n){return this.each(function(){var i=e(this).data(\"bs.modal\"),s=a({},o,e(this).data(),\"object\"==typeof t&&t?t:{});if(i||(i=new r(this,s),e(this).data(\"bs.modal\",i)),\"string\"==typeof t){if(void 0===i[t])throw new TypeError('No method named \"'+t+'\"');i[t](n)}else s.show&&i.show(n)})},i(r,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return o}}]),r}();return e(document).on(c.CLICK_DATA_API,f.DATA_TOGGLE,function(t){var n,r=this,i=s.getSelectorFromElement(this);i&&(n=document.querySelector(i));var o=e(n).data(\"bs.modal\")?\"toggle\":a({},e(n).data(),e(this).data());\"A\"!==this.tagName&&\"AREA\"!==this.tagName||t.preventDefault();var u=e(n).one(c.SHOW,function(t){t.isDefaultPrevented()||u.one(c.HIDDEN,function(){e(r).is(\":visible\")&&r.focus()})});p._jQueryInterface.call(e(n),o,this)}),e.fn.modal=p._jQueryInterface,e.fn.modal.Constructor=p,e.fn.modal.noConflict=function(){return e.fn.modal=r,p._jQueryInterface},p}(t),h=function(e){var t=\"tooltip\",r=\".bs.tooltip\",o=e.fn[t],u=new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\",\"g\"),c={animation:\"boolean\",template:\"string\",title:\"(string|element|function)\",trigger:\"string\",delay:\"(number|object)\",html:\"boolean\",selector:\"(string|boolean)\",placement:\"(string|function)\",offset:\"(number|string)\",container:\"(string|element|boolean)\",fallbackPlacement:\"(string|array)\",boundary:\"(string|element)\"},l={AUTO:\"auto\",TOP:\"top\",RIGHT:\"right\",BOTTOM:\"bottom\",LEFT:\"left\"},f={animation:!0,template:'<div class=\"tooltip\" role=\"tooltip\"><div class=\"arrow\"></div><div class=\"tooltip-inner\"></div></div>',trigger:\"hover focus\",title:\"\",delay:0,html:!1,selector:!1,placement:\"top\",offset:0,container:!1,fallbackPlacement:\"flip\",boundary:\"scrollParent\"},p={SHOW:\"show\",OUT:\"out\"},d={HIDE:\"hide\"+r,HIDDEN:\"hidden\"+r,SHOW:\"show\"+r,SHOWN:\"shown\"+r,INSERTED:\"inserted\"+r,CLICK:\"click\"+r,FOCUSIN:\"focusin\"+r,FOCUSOUT:\"focusout\"+r,MOUSEENTER:\"mouseenter\"+r,MOUSELEAVE:\"mouseleave\"+r},h={FADE:\"fade\",SHOW:\"show\"},v={TOOLTIP:\".tooltip\",TOOLTIP_INNER:\".tooltip-inner\",ARROW:\".arrow\"},g={HOVER:\"hover\",FOCUS:\"focus\",CLICK:\"click\",MANUAL:\"manual\"},m=function(){function o(e,t){if(void 0===n)throw new TypeError(\"Bootstrap tooltips require Popper.js (https://popper.js.org)\");this._isEnabled=!0,this._timeout=0,this._hoverState=\"\",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners()}var m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,r=e(t.currentTarget).data(n);r||(r=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,r)),r._activeTrigger.click=!r._activeTrigger.click,r._isWithActiveTrigger()?r._enter(null,r):r._leave(null,r)}else{if(e(this.getTipElement()).hasClass(h.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(\".modal\").off(\"hide.bs.modal\"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if(\"none\"===e(this.element).css(\"display\"))throw new Error(\"Please use show on visible elements\");var r=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(r);var i=e.contains(this.element.ownerDocument.documentElement,this.element);if(r.isDefaultPrevented()||!i)return;var o=this.getTipElement(),a=s.getUID(this.constructor.NAME);o.setAttribute(\"id\",a),this.element.setAttribute(\"aria-describedby\",a),this.setContent(),this.config.animation&&e(o).addClass(h.FADE);var u=\"function\"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,c=this._getAttachment(u);this.addAttachmentClass(c);var l=!1===this.config.container?document.body:e(document).find(this.config.container);e(o).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(o).appendTo(l),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,o,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:v.ARROW},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(o).addClass(h.SHOW),\"ontouchstart\"in document.documentElement&&e(document.body).children().on(\"mouseover\",null,e.noop);var f=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===p.OUT&&t._leave(null,t)};if(e(this.tip).hasClass(h.FADE)){var d=s.getTransitionDurationFromElement(this.tip);e(this.tip).one(s.TRANSITION_END,f).emulateTransitionEnd(d)}else f()}},m.hide=function(t){var n=this,r=this.getTipElement(),i=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==p.SHOW&&r.parentNode&&r.parentNode.removeChild(r),n._cleanTipClass(),n.element.removeAttribute(\"aria-describedby\"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(i),!i.isDefaultPrevented()){if(e(r).removeClass(h.SHOW),\"ontouchstart\"in document.documentElement&&e(document.body).children().off(\"mouseover\",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,e(this.tip).hasClass(h.FADE)){var a=s.getTransitionDurationFromElement(r);e(r).one(s.TRANSITION_END,o).emulateTransitionEnd(a)}else o();this._hoverState=\"\"}},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass(\"bs-tooltip-\"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(v.TOOLTIP_INNER)),this.getTitle()),e(t).removeClass(h.FADE+\" \"+h.SHOW)},m.setElementContent=function(t,n){var r=this.config.html;\"object\"==typeof n&&(n.nodeType||n.jquery)?r?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[r?\"html\":\"text\"](n)},m.getTitle=function(){var e=this.element.getAttribute(\"data-original-title\");return e||(e=\"function\"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},m._getAttachment=function(e){return l[e.toUpperCase()]},m._setListeners=function(){var t=this,n=this.config.trigger.split(\" \");n.forEach(function(n){if(\"click\"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var r=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(r,t.config.selector,function(e){return t._enter(e)}).on(i,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(\".modal\").on(\"hide.bs.modal\",function(){return t.hide()})}),this.config.selector?this.config=a({},this.config,{trigger:\"manual\",selector:\"\"}):this._fixTitle()},m._fixTitle=function(){var e=typeof this.element.getAttribute(\"data-original-title\");(this.element.getAttribute(\"title\")||\"string\"!==e)&&(this.element.setAttribute(\"data-original-title\",this.element.getAttribute(\"title\")||\"\"),this.element.setAttribute(\"title\",\"\"))},m._enter=function(t,n){var r=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(r))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(r,n)),t&&(n._activeTrigger[\"focusin\"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(h.SHOW)||n._hoverState===p.SHOW?n._hoverState=p.SHOW:(clearTimeout(n._timeout),n._hoverState=p.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===p.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var r=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(r))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(r,n)),t&&(n._activeTrigger[\"focusout\"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=p.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===p.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},m._getConfig=function(n){return\"number\"==typeof(n=a({},this.constructor.Default,e(this.element).data(),\"object\"==typeof n&&n?n:{})).delay&&(n.delay={show:n.delay,hide:n.delay}),\"number\"==typeof n.title&&(n.title=n.title.toString()),\"number\"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr(\"class\").match(u);null!==n&&n.length&&t.removeClass(n.join(\"\"))},m._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute(\"x-placement\")&&(e(t).removeClass(h.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(\"bs.tooltip\"),r=\"object\"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,r),e(this).data(\"bs.tooltip\",n)),\"string\"==typeof t)){if(void 0===n[t])throw new TypeError('No method named \"'+t+'\"');n[t]()}})},i(o,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return f}},{key:\"NAME\",get:function(){return t}},{key:\"DATA_KEY\",get:function(){return\"bs.tooltip\"}},{key:\"Event\",get:function(){return d}},{key:\"EVENT_KEY\",get:function(){return r}},{key:\"DefaultType\",get:function(){return c}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(t),v=function(e){var t=\"popover\",n=\".bs.popover\",r=e.fn[t],o=new RegExp(\"(^|\\\\s)bs-popover\\\\S+\",\"g\"),s=a({},h.Default,{placement:\"right\",trigger:\"click\",content:\"\",template:'<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-header\"></h3><div class=\"popover-body\"></div></div>'}),u=a({},h.DefaultType,{content:\"(string|element|function)\"}),c={FADE:\"fade\",SHOW:\"show\"},l={TITLE:\".popover-header\",CONTENT:\".popover-body\"},f={HIDE:\"hide\"+n,HIDDEN:\"hidden\"+n,SHOW:\"show\"+n,SHOWN:\"shown\"+n,INSERTED:\"inserted\"+n,CLICK:\"click\"+n,FOCUSIN:\"focusin\"+n,FOCUSOUT:\"focusout\"+n,MOUSEENTER:\"mouseenter\"+n,MOUSELEAVE:\"mouseleave\"+n},p=function(r){var a,p;function d(){return r.apply(this,arguments)||this}p=r,(a=d).prototype=Object.create(p.prototype),a.prototype.constructor=a,a.__proto__=p;var h=d.prototype;return h.isWithContent=function(){return this.getTitle()||this._getContent()},h.addAttachmentClass=function(t){e(this.getTipElement()).addClass(\"bs-popover-\"+t)},h.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},h.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(l.TITLE),this.getTitle());var n=this._getContent();\"function\"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(l.CONTENT),n),t.removeClass(c.FADE+\" \"+c.SHOW)},h._getContent=function(){return this.element.getAttribute(\"data-content\")||this.config.content},h._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr(\"class\").match(o);null!==n&&n.length>0&&t.removeClass(n.join(\"\"))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(\"bs.popover\"),r=\"object\"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,r),e(this).data(\"bs.popover\",n)),\"string\"==typeof t)){if(void 0===n[t])throw new TypeError('No method named \"'+t+'\"');n[t]()}})},i(d,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return s}},{key:\"NAME\",get:function(){return t}},{key:\"DATA_KEY\",get:function(){return\"bs.popover\"}},{key:\"Event\",get:function(){return f}},{key:\"EVENT_KEY\",get:function(){return n}},{key:\"DefaultType\",get:function(){return u}}]),d}(h);return e.fn[t]=p._jQueryInterface,e.fn[t].Constructor=p,e.fn[t].noConflict=function(){return e.fn[t]=r,p._jQueryInterface},p}(t),g=function(e){var t=\"scrollspy\",n=e.fn[t],r={offset:10,method:\"auto\",target:\"\"},o={offset:\"number\",method:\"string\",target:\"(string|element)\"},u={ACTIVATE:\"activate.bs.scrollspy\",SCROLL:\"scroll.bs.scrollspy\",LOAD_DATA_API:\"load.bs.scrollspy.data-api\"},c={DROPDOWN_ITEM:\"dropdown-item\",DROPDOWN_MENU:\"dropdown-menu\",ACTIVE:\"active\"},l={DATA_SPY:'[data-spy=\"scroll\"]',ACTIVE:\".active\",NAV_LIST_GROUP:\".nav, .list-group\",NAV_LINKS:\".nav-link\",NAV_ITEMS:\".nav-item\",LIST_ITEMS:\".list-group-item\",DROPDOWN:\".dropdown\",DROPDOWN_ITEMS:\".dropdown-item\",DROPDOWN_TOGGLE:\".dropdown-toggle\"},f={OFFSET:\"offset\",POSITION:\"position\"},p=function(){function n(t,n){var r=this;this._element=t,this._scrollElement=\"BODY\"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+\" \"+l.NAV_LINKS+\",\"+this._config.target+\" \"+l.LIST_ITEMS+\",\"+this._config.target+\" \"+l.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(u.SCROLL,function(e){return r._process(e)}),this.refresh(),this._process()}var p=n.prototype;return p.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?f.OFFSET:f.POSITION,r=\"auto\"===this._config.method?n:this._config.method,i=r===f.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight();var o=[].slice.call(document.querySelectorAll(this._selector));o.map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=document.querySelector(o)),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[r]().top+i,o]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},p.dispose=function(){e.removeData(this._element,\"bs.scrollspy\"),e(this._scrollElement).off(\".bs.scrollspy\"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},p._getConfig=function(n){if(\"string\"!=typeof(n=a({},r,\"object\"==typeof n&&n?n:{})).target){var i=e(n.target).attr(\"id\");i||(i=s.getUID(t),e(n.target).attr(\"id\",i)),n.target=\"#\"+i}return s.typeCheckConfig(t,n,o),n},p._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},p._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},p._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},p._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var r=this._targets[this._targets.length-1];this._activeTarget!==r&&this._activate(r)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var i=this._offsets.length,o=i;o--;){var a=this._activeTarget!==this._targets[o]&&e>=this._offsets[o]&&(void 0===this._offsets[o+1]||e<this._offsets[o+1]);a&&this._activate(this._targets[o])}}},p._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(\",\");n=n.map(function(e){return e+'[data-target=\"'+t+'\"],'+e+'[href=\"'+t+'\"]'});var r=e([].slice.call(document.querySelectorAll(n.join(\",\"))));r.hasClass(c.DROPDOWN_ITEM)?(r.closest(l.DROPDOWN).find(l.DROPDOWN_TOGGLE).addClass(c.ACTIVE),r.addClass(c.ACTIVE)):(r.addClass(c.ACTIVE),r.parents(l.NAV_LIST_GROUP).prev(l.NAV_LINKS+\", \"+l.LIST_ITEMS).addClass(c.ACTIVE),r.parents(l.NAV_LIST_GROUP).prev(l.NAV_ITEMS).children(l.NAV_LINKS).addClass(c.ACTIVE)),e(this._scrollElement).trigger(u.ACTIVATE,{relatedTarget:t})},p._clear=function(){var t=[].slice.call(document.querySelectorAll(this._selector));e(t).filter(l.ACTIVE).removeClass(c.ACTIVE)},n._jQueryInterface=function(t){return this.each(function(){var r=e(this).data(\"bs.scrollspy\"),i=\"object\"==typeof t&&t;if(r||(r=new n(this,i),e(this).data(\"bs.scrollspy\",r)),\"string\"==typeof t){if(void 0===r[t])throw new TypeError('No method named \"'+t+'\"');r[t]()}})},i(n,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}},{key:\"Default\",get:function(){return r}}]),n}();return e(window).on(u.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(l.DATA_SPY)),n=t.length,r=n;r--;){var i=e(t[r]);p._jQueryInterface.call(i,i.data())}}),e.fn[t]=p._jQueryInterface,e.fn[t].Constructor=p,e.fn[t].noConflict=function(){return e.fn[t]=n,p._jQueryInterface},p}(t),m=function(e){var t=e.fn.tab,n={HIDE:\"hide.bs.tab\",HIDDEN:\"hidden.bs.tab\",SHOW:\"show.bs.tab\",SHOWN:\"shown.bs.tab\",CLICK_DATA_API:\"click.bs.tab.data-api\"},r={DROPDOWN_MENU:\"dropdown-menu\",ACTIVE:\"active\",DISABLED:\"disabled\",FADE:\"fade\",SHOW:\"show\"},o={DROPDOWN:\".dropdown\",NAV_LIST_GROUP:\".nav, .list-group\",ACTIVE:\".active\",ACTIVE_UL:\"> li > .active\",DATA_TOGGLE:'[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',DROPDOWN_TOGGLE:\".dropdown-toggle\",DROPDOWN_ACTIVE_CHILD:\"> .dropdown-menu .active\"},a=function(){function t(e){this._element=e}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(r.ACTIVE)||e(this._element).hasClass(r.DISABLED))){var i,a,u=e(this._element).closest(o.NAV_LIST_GROUP)[0],c=s.getSelectorFromElement(this._element);if(u){var l=\"UL\"===u.nodeName?o.ACTIVE_UL:o.ACTIVE;a=(a=e.makeArray(e(u).find(l)))[a.length-1]}var f=e.Event(n.HIDE,{relatedTarget:this._element}),p=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(f),e(this._element).trigger(p),!p.isDefaultPrevented()&&!f.isDefaultPrevented()){c&&(i=document.querySelector(c)),this._activate(this._element,u);var d=function(){var r=e.Event(n.HIDDEN,{relatedTarget:t._element}),i=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(r),e(t._element).trigger(i)};i?this._activate(i,i.parentNode,d):d()}}},a.dispose=function(){e.removeData(this._element,\"bs.tab\"),this._element=null},a._activate=function(t,n,i){var a=this,u=(\"UL\"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=i&&u&&e(u).hasClass(r.FADE),l=function(){return a._transitionComplete(t,u,i)};if(u&&c){var f=s.getTransitionDurationFromElement(u);e(u).one(s.TRANSITION_END,l).emulateTransitionEnd(f)}else l()},a._transitionComplete=function(t,n,i){if(n){e(n).removeClass(r.SHOW+\" \"+r.ACTIVE);var a=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];a&&e(a).removeClass(r.ACTIVE),\"tab\"===n.getAttribute(\"role\")&&n.setAttribute(\"aria-selected\",!1)}if(e(t).addClass(r.ACTIVE),\"tab\"===t.getAttribute(\"role\")&&t.setAttribute(\"aria-selected\",!0),s.reflow(t),e(t).addClass(r.SHOW),t.parentNode&&e(t.parentNode).hasClass(r.DROPDOWN_MENU)){var u=e(t).closest(o.DROPDOWN)[0];if(u){var c=[].slice.call(u.querySelectorAll(o.DROPDOWN_TOGGLE));e(c).addClass(r.ACTIVE)}t.setAttribute(\"aria-expanded\",!0)}i&&i()},t._jQueryInterface=function(n){return this.each(function(){var r=e(this),i=r.data(\"bs.tab\");if(i||(i=new t(this),r.data(\"bs.tab\",i)),\"string\"==typeof n){if(void 0===i[n])throw new TypeError('No method named \"'+n+'\"');i[n]()}})},i(t,null,[{key:\"VERSION\",get:function(){return\"4.1.3\"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),\"show\")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}(t);(function(e){if(void 0===e)throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");var t=e.fn.jquery.split(\" \")[0].split(\".\");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\")})(t),e.Util=s,e.Alert=u,e.Button=c,e.Carousel=l,e.Collapse=f,e.Dropdown=p,e.Modal=d,e.Popover=v,e.Scrollspy=g,e.Tab=m,e.Tooltip=h,Object.defineProperty(e,\"__esModule\",{value:!0})}(t,n(4),n(3))},function(e,t,n){e.exports=n(18)},function(e,t,n){\"use strict\";var r=n(0),i=n(5),o=n(20),a=n(2);function s(e){var t=new o(e),n=i(o.prototype.request,t);return r.extend(n,o.prototype,t),r.extend(n,t),n}var u=s(a);u.Axios=o,u.create=function(e){return s(r.merge(a,e))},u.Cancel=n(10),u.CancelToken=n(34),u.isCancel=n(9),u.all=function(e){return Promise.all(e)},u.spread=n(35),e.exports=u,e.exports.default=u},function(e,t){function n(e){return!!e.constructor&&\"function\"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(n(e)||function(e){return\"function\"==typeof e.readFloatLE&&\"function\"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){\"use strict\";var r=n(2),i=n(0),o=n(29),a=n(30);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){\"string\"==typeof e&&(e=i.merge({url:arguments[0]},arguments[1])),(e=i.merge(r,{method:\"get\"},this.defaults,e)).method=e.method.toLowerCase();var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},i.forEach([\"delete\",\"get\",\"head\",\"options\"],function(e){s.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))}}),i.forEach([\"post\",\"put\",\"patch\"],function(e){s.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=s},function(e,t,n){\"use strict\";var r=n(0);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){\"use strict\";var r=n(8);e.exports=function(e,t,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(r(\"Request failed with status code \"+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){\"use strict\";e.exports=function(e,t,n,r,i){return e.config=t,n&&(e.code=n),e.request=r,e.response=i,e}},function(e,t,n){\"use strict\";var r=n(0);function i(e){return encodeURIComponent(e).replace(/%40/gi,\"@\").replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(r.isURLSearchParams(t))o=t.toString();else{var a=[];r.forEach(t,function(e,t){null!=e&&(r.isArray(e)?t+=\"[]\":e=[e],r.forEach(e,function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+\"=\"+i(e))}))}),o=a.join(\"&\")}return o&&(e+=(-1===e.indexOf(\"?\")?\"?\":\"&\")+o),e}},function(e,t,n){\"use strict\";var r=n(0),i=[\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"];e.exports=function(e){var t,n,o,a={};return e?(r.forEach(e.split(\"\\n\"),function(e){if(o=e.indexOf(\":\"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]=\"set-cookie\"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+\", \"+n:n}}),a):a}},function(e,t,n){\"use strict\";var r=n(0);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement(\"a\");function i(e){var r=e;return t&&(n.setAttribute(\"href\",r),r=n.href),n.setAttribute(\"href\",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,\"\"):\"\",host:n.host,search:n.search?n.search.replace(/^\\?/,\"\"):\"\",hash:n.hash?n.hash.replace(/^#/,\"\"):\"\",hostname:n.hostname,port:n.port,pathname:\"/\"===n.pathname.charAt(0)?n.pathname:\"/\"+n.pathname}}return e=i(window.location.href),function(t){var n=r.isString(t)?i(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){\"use strict\";var r=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function i(){this.message=\"String contains an invalid character\"}i.prototype=new Error,i.prototype.code=5,i.prototype.name=\"InvalidCharacterError\",e.exports=function(e){for(var t,n,o=String(e),a=\"\",s=0,u=r;o.charAt(0|s)||(u=\"=\",s%1);a+=u.charAt(63&t>>8-s%1*8)){if((n=o.charCodeAt(s+=.75))>255)throw new i;t=t<<8|n}return a}},function(e,t,n){\"use strict\";var r=n(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,i,o,a){var s=[];s.push(e+\"=\"+encodeURIComponent(t)),r.isNumber(n)&&s.push(\"expires=\"+new Date(n).toGMTString()),r.isString(i)&&s.push(\"path=\"+i),r.isString(o)&&s.push(\"domain=\"+o),!0===a&&s.push(\"secure\"),document.cookie=s.join(\"; \")},read:function(e){var t=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+e+\")=([^;]*)\"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,\"\",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){\"use strict\";var r=n(0);function i(){this.handlers=[]}i.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=i},function(e,t,n){\"use strict\";var r=n(0),i=n(31),o=n(9),a=n(2),s=n(32),u=n(33);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],function(t){delete e.headers[t]}),(e.adapter||a.adapter)(e).then(function(t){return c(e),t.data=i(t.data,t.headers,e.transformResponse),t},function(t){return o(t)||(c(e),t&&t.response&&(t.response.data=i(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){\"use strict\";var r=n(0);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t,n){\"use strict\";e.exports=function(e){return/^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(e)}},function(e,t,n){\"use strict\";e.exports=function(e,t){return t?e.replace(/\\/+$/,\"\")+\"/\"+t.replace(/^\\/+/,\"\"):e}},function(e,t,n){\"use strict\";var r=n(10);function i(e){if(\"function\"!=typeof e)throw new TypeError(\"executor must be a function.\");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(t){e=t}),cancel:e}},e.exports=i},function(e,t,n){\"use strict\";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){\"use strict\";(function(t,n){var r=Object.freeze({});function i(e){return null==e}function o(e){return null!=e}function a(e){return!0===e}function s(e){return\"string\"==typeof e||\"number\"==typeof e||\"symbol\"==typeof e||\"boolean\"==typeof e}function u(e){return null!==e&&\"object\"==typeof e}var c=Object.prototype.toString;function l(e){return\"[object Object]\"===c.call(e)}function f(e){return\"[object RegExp]\"===c.call(e)}function p(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function d(e){return null==e?\"\":\"object\"==typeof e?JSON.stringify(e,null,2):String(e)}function h(e){var t=parseFloat(e);return isNaN(t)?e:t}function v(e,t){for(var n=Object.create(null),r=e.split(\",\"),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var g=v(\"slot,component\",!0),m=v(\"key,ref,slot,slot-scope,is\");function y(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function b(e,t){return _.call(e,t)}function w(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var T=/-(\\w)/g,E=w(function(e){return e.replace(T,function(e,t){return t?t.toUpperCase():\"\"})}),x=w(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),C=/\\B([A-Z])/g,A=w(function(e){return e.replace(C,\"-$1\").toLowerCase()});var S=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function O(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function D(e,t){for(var n in t)e[n]=t[n];return e}function I(e){for(var t={},n=0;n<e.length;n++)e[n]&&D(t,e[n]);return t}function k(e,t,n){}var N=function(e,t,n){return!1},L=function(e){return e};function j(e,t){if(e===t)return!0;var n=u(e),r=u(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),o=Array.isArray(t);if(i&&o)return e.length===t.length&&e.every(function(e,n){return j(e,t[n])});if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||o)return!1;var a=Object.keys(e),s=Object.keys(t);return a.length===s.length&&a.every(function(n){return j(e[n],t[n])})}catch(e){return!1}}function P(e,t){for(var n=0;n<e.length;n++)if(j(e[n],t))return n;return-1}function R(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var $=\"data-server-rendered\",H=[\"component\",\"directive\",\"filter\"],M=[\"beforeCreate\",\"created\",\"beforeMount\",\"mounted\",\"beforeUpdate\",\"updated\",\"beforeDestroy\",\"destroyed\",\"activated\",\"deactivated\",\"errorCaptured\"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:N,isReservedAttr:N,isUnknownElement:N,getTagNamespace:k,parsePlatformTagName:L,mustUseProp:N,async:!0,_lifecycleHooks:M};function W(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var q=/[^\\w.$]/;var B,U=\"__proto__\"in{},V=\"undefined\"!=typeof window,z=\"undefined\"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=z&&WXEnvironment.platform.toLowerCase(),G=V&&window.navigator.userAgent.toLowerCase(),X=G&&/msie|trident/.test(G),Q=G&&G.indexOf(\"msie 9.0\")>0,Y=G&&G.indexOf(\"edge/\")>0,J=(G&&G.indexOf(\"android\"),G&&/iphone|ipad|ipod|ios/.test(G)||\"ios\"===K),Z=(G&&/chrome\\/\\d+/.test(G),{}.watch),ee=!1;if(V)try{var te={};Object.defineProperty(te,\"passive\",{get:function(){ee=!0}}),window.addEventListener(\"test-passive\",null,te)}catch(e){}var ne=function(){return void 0===B&&(B=!V&&!z&&void 0!==t&&(t.process&&\"server\"===t.process.env.VUE_ENV)),B},re=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ie(e){return\"function\"==typeof e&&/native code/.test(e.toString())}var oe,ae=\"undefined\"!=typeof Symbol&&ie(Symbol)&&\"undefined\"!=typeof Reflect&&ie(Reflect.ownKeys);oe=\"undefined\"!=typeof Set&&ie(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var se=k,ue=0,ce=function(){this.id=ue++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){y(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t<n;t++)e[t].update()},ce.target=null;var le=[];function fe(e){le.push(e),ce.target=e}function pe(){le.pop(),ce.target=le[le.length-1]}var de=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},he={child:{configurable:!0}};he.child.get=function(){return this.componentInstance},Object.defineProperties(de.prototype,he);var ve=function(e){void 0===e&&(e=\"\");var t=new de;return t.text=e,t.isComment=!0,t};function ge(e){return new de(void 0,void 0,void 0,String(e))}function me(e){var t=new de(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var ye=Array.prototype,_e=Object.create(ye);[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\",\"sort\",\"reverse\"].forEach(function(e){var t=ye[e];W(_e,e,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case\"push\":case\"unshift\":i=n;break;case\"splice\":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o})});var be=Object.getOwnPropertyNames(_e),we=!0;function Te(e){we=e}var Ee=function(e){var t;this.value=e,this.dep=new ce,this.vmCount=0,W(e,\"__ob__\",this),Array.isArray(e)?(U?(t=_e,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];W(e,o,t[o])}}(e,_e,be),this.observeArray(e)):this.walk(e)};function xe(e,t){var n;if(u(e)&&!(e instanceof de))return b(e,\"__ob__\")&&e.__ob__ instanceof Ee?n=e.__ob__:we&&!ne()&&(Array.isArray(e)||l(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new Ee(e)),t&&n&&n.vmCount++,n}function Ce(e,t,n,r,i){var o=new ce,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,u=a&&a.set;s&&!u||2!==arguments.length||(n=e[t]);var c=!i&&xe(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return ce.target&&(o.depend(),c&&(c.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!u||(u?u.call(e,t):n=t,c=!i&&xe(t),o.notify())}})}}function Ae(e,t,n){if(Array.isArray(e)&&p(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Ce(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Se(e,t){if(Array.isArray(e)&&p(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||b(e,t)&&(delete e[t],n&&n.dep.notify())}}Ee.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Ce(e,t[n])},Ee.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)xe(e[t])};var Oe=F.optionMergeStrategies;function De(e,t){if(!t)return e;for(var n,r,i,o=Object.keys(t),a=0;a<o.length;a++)r=e[n=o[a]],i=t[n],b(e,n)?r!==i&&l(r)&&l(i)&&De(r,i):Ae(e,n,i);return e}function Ie(e,t,n){return n?function(){var r=\"function\"==typeof t?t.call(n,n):t,i=\"function\"==typeof e?e.call(n,n):e;return r?De(r,i):i}:t?e?function(){return De(\"function\"==typeof t?t.call(this,this):t,\"function\"==typeof e?e.call(this,this):e)}:t:e}function ke(e,t){return t?e?e.concat(t):Array.isArray(t)?t:[t]:e}function Ne(e,t,n,r){var i=Object.create(e||null);return t?D(i,t):i}Oe.data=function(e,t,n){return n?Ie(e,t,n):t&&\"function\"!=typeof t?e:Ie(e,t)},M.forEach(function(e){Oe[e]=ke}),H.forEach(function(e){Oe[e+\"s\"]=Ne}),Oe.watch=function(e,t,n,r){if(e===Z&&(e=void 0),t===Z&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in D(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Oe.props=Oe.methods=Oe.inject=Oe.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return D(i,e),t&&D(i,t),i},Oe.provide=Ie;var Le=function(e,t){return void 0===t?e:t};function je(e,t,n){if(\"function\"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)\"string\"==typeof(i=n[r])&&(o[E(i)]={type:null});else if(l(n))for(var a in n)i=n[a],o[E(a)]=l(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(l(n))for(var o in n){var a=n[o];r[o]=l(a)?D({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];\"function\"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=je(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=je(e,t.mixins[r],n);var o,a={};for(o in e)s(o);for(o in t)b(e,o)||s(o);function s(r){var i=Oe[r]||Le;a[r]=i(e[r],t[r],n,r)}return a}function Pe(e,t,n,r){if(\"string\"==typeof n){var i=e[t];if(b(i,n))return i[n];var o=E(n);if(b(i,o))return i[o];var a=x(o);return b(i,a)?i[a]:i[n]||i[o]||i[a]}}function Re(e,t,n,r){var i=t[e],o=!b(n,e),a=n[e],s=Me(Boolean,i.type);if(s>-1)if(o&&!b(i,\"default\"))a=!1;else if(\"\"===a||a===A(e)){var u=Me(String,i.type);(u<0||s<u)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(!b(t,\"default\"))return;var r=t.default;0;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return\"function\"==typeof r&&\"Function\"!==$e(t.type)?r.call(e):r}(r,i,e);var c=we;Te(!0),xe(a),Te(c)}return a}function $e(e){var t=e&&e.toString().match(/^\\s*function (\\w+)/);return t?t[1]:\"\"}function He(e,t){return $e(e)===$e(t)}function Me(e,t){if(!Array.isArray(t))return He(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(He(t[n],e))return n;return-1}function Fe(e,t,n){if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){We(e,r,\"errorCaptured hook\")}}We(e,t,n)}function We(e,t,n){if(F.errorHandler)try{return F.errorHandler.call(null,e,t,n)}catch(e){qe(e,null,\"config.errorHandler\")}qe(e,t,n)}function qe(e,t,n){if(!V&&!z||\"undefined\"==typeof console)throw e;console.error(e)}var Be,Ue,Ve=[],ze=!1;function Ke(){ze=!1;var e=Ve.slice(0);Ve.length=0;for(var t=0;t<e.length;t++)e[t]()}var Ge=!1;if(void 0!==n&&ie(n))Ue=function(){n(Ke)};else if(\"undefined\"==typeof MessageChannel||!ie(MessageChannel)&&\"[object MessageChannelConstructor]\"!==MessageChannel.toString())Ue=function(){setTimeout(Ke,0)};else{var Xe=new MessageChannel,Qe=Xe.port2;Xe.port1.onmessage=Ke,Ue=function(){Qe.postMessage(1)}}if(\"undefined\"!=typeof Promise&&ie(Promise)){var Ye=Promise.resolve();Be=function(){Ye.then(Ke),J&&setTimeout(k)}}else Be=Ue;function Je(e,t){var n;if(Ve.push(function(){if(e)try{e.call(t)}catch(e){Fe(e,t,\"nextTick\")}else n&&n(t)}),ze||(ze=!0,Ge?Ue():Be()),!e&&\"undefined\"!=typeof Promise)return new Promise(function(e){n=e})}var Ze=new oe;function et(e){!function e(t,n){var r,i;var o=Array.isArray(t);if(!o&&!u(t)||Object.isFrozen(t)||t instanceof de)return;if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=t.length;r--;)e(t[r],n);else for(i=Object.keys(t),r=i.length;r--;)e(t[i[r]],n)}(e,Ze),Ze.clear()}var tt,nt=w(function(e){var t=\"&\"===e.charAt(0),n=\"~\"===(e=t?e.slice(1):e).charAt(0),r=\"!\"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}});function rt(e){function t(){var e=arguments,n=t.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var r=n.slice(),i=0;i<r.length;i++)r[i].apply(null,e)}return t.fns=e,t}function it(e,t,n,r,o,s){var u,c,l,f;for(u in e)c=e[u],l=t[u],f=nt(u),i(c)||(i(l)?(i(c.fns)&&(c=e[u]=rt(c)),a(f.once)&&(c=e[u]=o(f.name,c,f.capture)),n(f.name,c,f.capture,f.passive,f.params)):c!==l&&(l.fns=c,e[u]=l));for(u in t)i(e[u])&&r((f=nt(u)).name,t[u],f.capture)}function ot(e,t,n){var r;e instanceof de&&(e=e.data.hook||(e.data.hook={}));var s=e[t];function u(){n.apply(this,arguments),y(r.fns,u)}i(s)?r=rt([u]):o(s.fns)&&a(s.merged)?(r=s).fns.push(u):r=rt([s,u]),r.merged=!0,e[t]=r}function at(e,t,n,r,i){if(o(t)){if(b(t,n))return e[n]=t[n],i||delete t[n],!0;if(b(t,r))return e[n]=t[r],i||delete t[r],!0}return!1}function st(e){return s(e)?[ge(e)]:Array.isArray(e)?function e(t,n){var r=[];var u,c,l,f;for(u=0;u<t.length;u++)i(c=t[u])||\"boolean\"==typeof c||(l=r.length-1,f=r[l],Array.isArray(c)?c.length>0&&(ut((c=e(c,(n||\"\")+\"_\"+u))[0])&&ut(f)&&(r[l]=ge(f.text+c[0].text),c.shift()),r.push.apply(r,c)):s(c)?ut(f)?r[l]=ge(f.text+c):\"\"!==c&&r.push(ge(c)):ut(c)&&ut(f)?r[l]=ge(f.text+c.text):(a(t._isVList)&&o(c.tag)&&i(c.key)&&o(n)&&(c.key=\"__vlist\"+n+\"_\"+u+\"__\"),r.push(c)));return r}(e):void 0}function ut(e){return o(e)&&o(e.text)&&!1===e.isComment}function ct(e,t){return(e.__esModule||ae&&\"Module\"===e[Symbol.toStringTag])&&(e=e.default),u(e)?t.extend(e):e}function lt(e){return e.isComment&&e.asyncFactory}function ft(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(o(n)&&(o(n.componentOptions)||lt(n)))return n}}function pt(e,t){tt.$on(e,t)}function dt(e,t){tt.$off(e,t)}function ht(e,t){var n=tt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function vt(e,t,n){tt=e,it(t,n||{},pt,dt,ht),tt=void 0}function gt(e,t){var n={};if(!e)return n;for(var r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,u=n[s]||(n[s]=[]);\"template\"===o.tag?u.push.apply(u,o.children||[]):u.push(o)}}for(var c in n)n[c].every(mt)&&delete n[c];return n}function mt(e){return e.isComment&&!e.asyncFactory||\" \"===e.text}function yt(e,t){t=t||{};for(var n=0;n<e.length;n++)Array.isArray(e[n])?yt(e[n],t):t[e[n].key]=e[n].fn;return t}var _t=null;function bt(e){var t=_t;return _t=e,function(){_t=t}}function wt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Tt(e,t){if(t){if(e._directInactive=!1,wt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Tt(e.$children[n]);Et(e,\"activated\")}}function Et(e,t){fe();var n=e.$options[t];if(n)for(var r=0,i=n.length;r<i;r++)try{n[r].call(e)}catch(n){Fe(n,e,t+\" hook\")}e._hasHookEvent&&e.$emit(\"hook:\"+t),pe()}var xt=[],Ct=[],At={},St=!1,Ot=!1,Dt=0;function It(){var e,t;for(Ot=!0,xt.sort(function(e,t){return e.id-t.id}),Dt=0;Dt<xt.length;Dt++)(e=xt[Dt]).before&&e.before(),t=e.id,At[t]=null,e.run();var n=Ct.slice(),r=xt.slice();Dt=xt.length=Ct.length=0,At={},St=Ot=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Tt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Et(r,\"updated\")}}(r),re&&F.devtools&&re.emit(\"flush\")}var kt=0,Nt=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++kt,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new oe,this.newDepIds=new oe,this.expression=\"\",\"function\"==typeof t?this.getter=t:(this.getter=function(e){if(!q.test(e)){var t=e.split(\".\");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=k)),this.value=this.lazy?void 0:this.get()};Nt.prototype.get=function(){var e;fe(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Fe(e,t,'getter for watcher \"'+this.expression+'\"')}finally{this.deep&&et(e),pe(),this.cleanupDeps()}return e},Nt.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},Nt.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Nt.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==At[t]){if(At[t]=!0,Ot){for(var n=xt.length-1;n>Dt&&xt[n].id>e.id;)n--;xt.splice(n+1,0,e)}else xt.push(e);St||(St=!0,Je(It))}}(this)},Nt.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Fe(e,this.vm,'callback for watcher \"'+this.expression+'\"')}else this.cb.call(this.vm,e,t)}}},Nt.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Nt.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Nt.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Lt={enumerable:!0,configurable:!0,get:k,set:k};function jt(e,t,n){Lt.get=function(){return this[t][n]},Lt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Lt)}function Pt(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&Te(!1);var o=function(o){i.push(o);var a=Re(o,t,n,e);Ce(r,o,a),o in e||jt(e,\"_props\",o)};for(var a in t)o(a);Te(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=\"function\"!=typeof t[n]?k:S(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data=\"function\"==typeof t?function(e,t){fe();try{return e.call(t,t)}catch(e){return Fe(e,t,\"data()\"),{}}finally{pe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&b(r,o)||(a=void 0,36!==(a=(o+\"\").charCodeAt(0))&&95!==a&&jt(e,\"_data\",o))}var a;xe(t,!0)}(e):xe(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=ne();for(var i in t){var o=t[i],a=\"function\"==typeof o?o:o.get;0,r||(n[i]=new Nt(e,a||k,k,Rt)),i in e||$t(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Z&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)Ft(e,n,r[i]);else Ft(e,n,r)}}(e,t.watch)}var Rt={lazy:!0};function $t(e,t,n){var r=!ne();\"function\"==typeof n?(Lt.get=r?Ht(t):Mt(n),Lt.set=k):(Lt.get=n.get?r&&!1!==n.cache?Ht(t):Mt(n.get):k,Lt.set=n.set||k),Object.defineProperty(e,t,Lt)}function Ht(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ce.target&&t.depend(),t.value}}function Mt(e){return function(){return e.call(this,this)}}function Ft(e,t,n,r){return l(n)&&(r=n,n=n.handler),\"string\"==typeof n&&(n=e[n]),e.$watch(t,n,r)}function Wt(e,t){if(e){for(var n=Object.create(null),r=ae?Reflect.ownKeys(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}):Object.keys(e),i=0;i<r.length;i++){for(var o=r[i],a=e[o].from,s=t;s;){if(s._provided&&b(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s)if(\"default\"in e[o]){var u=e[o].default;n[o]=\"function\"==typeof u?u.call(t):u}else 0}return n}}function qt(e,t){var n,r,i,a,s;if(Array.isArray(e)||\"string\"==typeof e)for(n=new Array(e.length),r=0,i=e.length;r<i;r++)n[r]=t(e[r],r);else if(\"number\"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(u(e))for(a=Object.keys(e),n=new Array(a.length),r=0,i=a.length;r<i;r++)s=a[r],n[r]=t(e[s],s,r);return o(n)||(n=[]),n._isVList=!0,n}function Bt(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=D(D({},r),n)),i=o(n)||t):i=this.$slots[e]||t;var a=n&&n.slot;return a?this.$createElement(\"template\",{slot:a},i):i}function Ut(e){return Pe(this.$options,\"filters\",e)||L}function Vt(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function zt(e,t,n,r,i){var o=F.keyCodes[t]||n;return i&&r&&!F.keyCodes[t]?Vt(i,r):o?Vt(o,e):r?A(r)!==t:void 0}function Kt(e,t,n,r,i){if(n)if(u(n)){var o;Array.isArray(n)&&(n=I(n));var a=function(a){if(\"class\"===a||\"style\"===a||m(a))o=e;else{var s=e.attrs&&e.attrs.type;o=r||F.mustUseProp(t,s,a)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var u=E(a);a in o||u in o||(o[a]=n[a],i&&((e.on||(e.on={}))[\"update:\"+u]=function(e){n[a]=e}))};for(var s in n)a(s)}else;return e}function Gt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t?r:(Qt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),\"__static__\"+e,!1),r)}function Xt(e,t,n){return Qt(e,\"__once__\"+t+(n?\"_\"+n:\"\"),!0),e}function Qt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&\"string\"!=typeof e[r]&&Yt(e[r],t+\"_\"+r,n);else Yt(e,t,n)}function Yt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function Jt(e,t){if(t)if(l(t)){var n=e.on=e.on?D({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}else;return e}function Zt(e){e._o=Xt,e._n=h,e._s=d,e._l=qt,e._t=Bt,e._q=j,e._i=P,e._m=Gt,e._f=Ut,e._k=zt,e._b=Kt,e._v=ge,e._e=ve,e._u=yt,e._g=Jt}function en(e,t,n,i,o){var s,u=o.options;b(i,\"_uid\")?(s=Object.create(i))._original=i:(s=i,i=i._original);var c=a(u._compiled),l=!c;this.data=e,this.props=t,this.children=n,this.parent=i,this.listeners=e.on||r,this.injections=Wt(u.inject,i),this.slots=function(){return gt(n,i)},c&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||r),u._scopeId?this._c=function(e,t,n,r){var o=ln(s,e,t,n,r,l);return o&&!Array.isArray(o)&&(o.fnScopeId=u._scopeId,o.fnContext=i),o}:this._c=function(e,t,n,r){return ln(s,e,t,n,r,l)}}function tn(e,t,n,r,i){var o=me(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function nn(e,t){for(var n in t)e[E(n)]=t[n]}Zt(en.prototype);var rn={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var n=e;rn.prepatch(n,n)}else{(e.componentInstance=function(e,t){var n={_isComponent:!0,_parentVnode:e,parent:t},r=e.data.inlineTemplate;o(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new e.componentOptions.Ctor(n)}(e,_t)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var n=t.componentOptions;!function(e,t,n,i,o){var a=!!(o||e.$options._renderChildren||i.data.scopedSlots||e.$scopedSlots!==r);if(e.$options._parentVnode=i,e.$vnode=i,e._vnode&&(e._vnode.parent=i),e.$options._renderChildren=o,e.$attrs=i.data.attrs||r,e.$listeners=n||r,t&&e.$options.props){Te(!1);for(var s=e._props,u=e.$options._propKeys||[],c=0;c<u.length;c++){var l=u[c],f=e.$options.props;s[l]=Re(l,f,t,e)}Te(!0),e.$options.propsData=t}n=n||r;var p=e.$options._parentListeners;e.$options._parentListeners=n,vt(e,n,p),a&&(e.$slots=gt(o,i.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,n.propsData,n.listeners,t,n.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,Et(r,\"mounted\")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,Ct.push(t)):Tt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,wt(t))||t._inactive)){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);Et(t,\"deactivated\")}}(t,!0):t.$destroy())}},on=Object.keys(rn);function an(e,t,n,s,c){if(!i(e)){var l=n.$options._base;if(u(e)&&(e=l.extend(e)),\"function\"==typeof e){var f;if(i(e.cid)&&void 0===(e=function(e,t,n){if(a(e.error)&&o(e.errorComp))return e.errorComp;if(o(e.resolved))return e.resolved;if(a(e.loading)&&o(e.loadingComp))return e.loadingComp;if(!o(e.contexts)){var r=e.contexts=[n],s=!0,c=function(e){for(var t=0,n=r.length;t<n;t++)r[t].$forceUpdate();e&&(r.length=0)},l=R(function(n){e.resolved=ct(n,t),s||c(!0)}),f=R(function(t){o(e.errorComp)&&(e.error=!0,c(!0))}),p=e(l,f);return u(p)&&(\"function\"==typeof p.then?i(e.resolved)&&p.then(l,f):o(p.component)&&\"function\"==typeof p.component.then&&(p.component.then(l,f),o(p.error)&&(e.errorComp=ct(p.error,t)),o(p.loading)&&(e.loadingComp=ct(p.loading,t),0===p.delay?e.loading=!0:setTimeout(function(){i(e.resolved)&&i(e.error)&&(e.loading=!0,c(!1))},p.delay||200)),o(p.timeout)&&setTimeout(function(){i(e.resolved)&&f(null)},p.timeout))),s=!1,e.loading?e.loadingComp:e.resolved}e.contexts.push(n)}(f=e,l,n)))return function(e,t,n,r,i){var o=ve();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(f,t,n,s,c);t=t||{},pn(e),o(t.model)&&function(e,t){var n=e.model&&e.model.prop||\"value\",r=e.model&&e.model.event||\"input\";(t.props||(t.props={}))[n]=t.model.value;var i=t.on||(t.on={}),a=i[r],s=t.model.callback;o(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(i[r]=[s].concat(a)):i[r]=s}(e.options,t);var p=function(e,t,n){var r=t.options.props;if(!i(r)){var a={},s=e.attrs,u=e.props;if(o(s)||o(u))for(var c in r){var l=A(c);at(a,u,c,l,!0)||at(a,s,c,l,!1)}return a}}(t,e);if(a(e.options.functional))return function(e,t,n,i,a){var s=e.options,u={},c=s.props;if(o(c))for(var l in c)u[l]=Re(l,c,t||r);else o(n.attrs)&&nn(u,n.attrs),o(n.props)&&nn(u,n.props);var f=new en(n,u,a,i,e),p=s.render.call(null,f._c,f);if(p instanceof de)return tn(p,n,f.parent,s);if(Array.isArray(p)){for(var d=st(p)||[],h=new Array(d.length),v=0;v<d.length;v++)h[v]=tn(d[v],n,f.parent,s);return h}}(e,p,t,n,s);var d=t.on;if(t.on=t.nativeOn,a(e.options.abstract)){var h=t.slot;t={},h&&(t.slot=h)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<on.length;n++){var r=on[n],i=t[r],o=rn[r];i===o||i&&i._merged||(t[r]=i?sn(o,i):o)}}(t);var v=e.options.name||c;return new de(\"vue-component-\"+e.cid+(v?\"-\"+v:\"\"),t,void 0,void 0,void 0,n,{Ctor:e,propsData:p,listeners:d,tag:c,children:s},f)}}}function sn(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}var un=1,cn=2;function ln(e,t,n,r,c,l){return(Array.isArray(n)||s(n))&&(c=r,r=n,n=void 0),a(l)&&(c=cn),function(e,t,n,r,s){if(o(n)&&o(n.__ob__))return ve();o(n)&&o(n.is)&&(t=n.is);if(!t)return ve();0;Array.isArray(r)&&\"function\"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);s===cn?r=st(r):s===un&&(r=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(r));var c,l;if(\"string\"==typeof t){var f;l=e.$vnode&&e.$vnode.ns||F.getTagNamespace(t),c=F.isReservedTag(t)?new de(F.parsePlatformTagName(t),n,r,void 0,void 0,e):n&&n.pre||!o(f=Pe(e.$options,\"components\",t))?new de(t,n,r,void 0,void 0,e):an(f,n,e,r,t)}else c=an(t,n,e,r);return Array.isArray(c)?c:o(c)?(o(l)&&function e(t,n,r){t.ns=n;\"foreignObject\"===t.tag&&(n=void 0,r=!0);if(o(t.children))for(var s=0,u=t.children.length;s<u;s++){var c=t.children[s];o(c.tag)&&(i(c.ns)||a(r)&&\"svg\"!==c.tag)&&e(c,n,r)}}(c,l),o(n)&&function(e){u(e.style)&&et(e.style);u(e.class)&&et(e.class)}(n),c):ve()}(e,t,n,r,c)}var fn=0;function pn(e){var t=e.options;if(e.super){var n=pn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.extendOptions,i=e.sealedOptions;for(var o in n)n[o]!==i[o]&&(t||(t={}),t[o]=dn(n[o],r[o],i[o]));return t}(e);r&&D(e.extendOptions,r),(t=e.options=je(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function dn(e,t,n){if(Array.isArray(e)){var r=[];n=Array.isArray(n)?n:[n],t=Array.isArray(t)?t:[t];for(var i=0;i<e.length;i++)(t.indexOf(e[i])>=0||n.indexOf(e[i])<0)&&r.push(e[i]);return r}return e}function hn(e){this._init(e)}function vn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name;var a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=je(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)jt(e.prototype,\"_props\",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)$t(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,H.forEach(function(e){a[e]=n[e]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=D({},a.options),i[r]=a,a}}function gn(e){return e&&(e.Ctor.options.name||e.tag)}function mn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:\"string\"==typeof e?e.split(\",\").indexOf(t)>-1:!!f(e)&&e.test(t)}function yn(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=gn(a.componentOptions);s&&!t(s)&&_n(n,o,r,i)}}}function _n(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,y(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=fn++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=je(pn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&vt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,i=n&&n.context;e.$slots=gt(t._renderChildren,i),e.$scopedSlots=r,e._c=function(t,n,r,i){return ln(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return ln(e,t,n,r,i,!0)};var o=n&&n.data;Ce(e,\"$attrs\",o&&o.attrs||r,null,!0),Ce(e,\"$listeners\",t._parentListeners||r,null,!0)}(t),Et(t,\"beforeCreate\"),function(e){var t=Wt(e.$options.inject,e);t&&(Te(!1),Object.keys(t).forEach(function(n){Ce(e,n,t[n])}),Te(!0))}(t),Pt(t),function(e){var t=e.$options.provide;t&&(e._provided=\"function\"==typeof t?t.call(e):t)}(t),Et(t,\"created\"),t.$options.el&&t.$mount(t.$options.el)}}(hn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,\"$data\",t),Object.defineProperty(e.prototype,\"$props\",n),e.prototype.$set=Ae,e.prototype.$delete=Se,e.prototype.$watch=function(e,t,n){if(l(t))return Ft(this,e,t,n);(n=n||{}).user=!0;var r=new Nt(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Fe(e,this,'callback for immediate watcher \"'+r.expression+'\"')}return function(){r.teardown()}}}(hn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o=n._events[e];if(!o)return n;if(!t)return n._events[e]=null,n;if(t)for(var a,s=o.length;s--;)if((a=o[s])===t||a.fn===t){o.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this._events[e];if(t){t=t.length>1?O(t):t;for(var n=O(arguments,1),r=0,i=t.length;r<i;r++)try{t[r].apply(this,n)}catch(t){Fe(t,this,'event handler for \"'+e+'\"')}}return this}}(hn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=bt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Et(e,\"beforeDestroy\"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||y(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Et(e,\"destroyed\"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(hn),function(e){Zt(e.prototype),e.prototype.$nextTick=function(e){return Je(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,i=n.render,o=n._parentVnode;o&&(t.$scopedSlots=o.data.scopedSlots||r),t.$vnode=o;try{e=i.call(t._renderProxy,t.$createElement)}catch(n){Fe(n,t,\"render\"),e=t._vnode}return e instanceof de||(e=ve()),e.parent=o,e}}(hn);var bn=[String,RegExp,Array],wn={KeepAlive:{name:\"keep-alive\",abstract:!0,props:{include:bn,exclude:bn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)_n(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch(\"include\",function(t){yn(e,function(e){return mn(t,e)})}),this.$watch(\"exclude\",function(t){yn(e,function(e){return!mn(t,e)})})},render:function(){var e=this.$slots.default,t=ft(e),n=t&&t.componentOptions;if(n){var r=gn(n),i=this.include,o=this.exclude;if(i&&(!r||!mn(i,r))||o&&r&&mn(o,r))return t;var a=this.cache,s=this.keys,u=null==t.key?n.Ctor.cid+(n.tag?\"::\"+n.tag:\"\"):t.key;a[u]?(t.componentInstance=a[u].componentInstance,y(s,u),s.push(u)):(a[u]=t,s.push(u),this.max&&s.length>parseInt(this.max)&&_n(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,\"config\",t),e.util={warn:se,extend:D,mergeOptions:je,defineReactive:Ce},e.set=Ae,e.delete=Se,e.nextTick=Je,e.options=Object.create(null),H.forEach(function(t){e.options[t+\"s\"]=Object.create(null)}),e.options._base=e,D(e.options.components,wn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=O(arguments,1);return n.unshift(this),\"function\"==typeof e.install?e.install.apply(e,n):\"function\"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=je(this.options,e),this}}(e),vn(e),function(e){H.forEach(function(t){e[t]=function(e,n){return n?(\"component\"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),\"directive\"===t&&\"function\"==typeof n&&(n={bind:n,update:n}),this.options[t+\"s\"][e]=n,n):this.options[t+\"s\"][e]}})}(e)}(hn),Object.defineProperty(hn.prototype,\"$isServer\",{get:ne}),Object.defineProperty(hn.prototype,\"$ssrContext\",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(hn,\"FunctionalRenderContext\",{value:en}),hn.version=\"2.5.21\";var Tn=v(\"style,class\"),En=v(\"input,textarea,option,select,progress\"),xn=function(e,t,n){return\"value\"===n&&En(e)&&\"button\"!==t||\"selected\"===n&&\"option\"===e||\"checked\"===n&&\"input\"===e||\"muted\"===n&&\"video\"===e},Cn=v(\"contenteditable,draggable,spellcheck\"),An=v(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible\"),Sn=\"http://www.w3.org/1999/xlink\",On=function(e){return\":\"===e.charAt(5)&&\"xlink\"===e.slice(0,5)},Dn=function(e){return On(e)?e.slice(6,e.length):\"\"},In=function(e){return null==e||!1===e};function kn(e){for(var t=e.data,n=e,r=e;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Nn(r.data,t));for(;o(n=n.parent);)n&&n.data&&(t=Nn(t,n.data));return function(e,t){if(o(e)||o(t))return Ln(e,jn(t));return\"\"}(t.staticClass,t.class)}function Nn(e,t){return{staticClass:Ln(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function Ln(e,t){return e?t?e+\" \"+t:e:t||\"\"}function jn(e){return Array.isArray(e)?function(e){for(var t,n=\"\",r=0,i=e.length;r<i;r++)o(t=jn(e[r]))&&\"\"!==t&&(n&&(n+=\" \"),n+=t);return n}(e):u(e)?function(e){var t=\"\";for(var n in e)e[n]&&(t&&(t+=\" \"),t+=n);return t}(e):\"string\"==typeof e?e:\"\"}var Pn={svg:\"http://www.w3.org/2000/svg\",math:\"http://www.w3.org/1998/Math/MathML\"},Rn=v(\"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot\"),$n=v(\"svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view\",!0),Hn=function(e){return Rn(e)||$n(e)};function Mn(e){return $n(e)?\"svg\":\"math\"===e?\"math\":void 0}var Fn=Object.create(null);var Wn=v(\"text,number,password,search,email,tel,url\");function qn(e){if(\"string\"==typeof e){var t=document.querySelector(e);return t||document.createElement(\"div\")}return e}var Bn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return\"select\"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute(\"multiple\",\"multiple\"),n)},createElementNS:function(e,t){return document.createElementNS(Pn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,\"\")}}),Un={create:function(e,t){Vn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Vn(e,!0),Vn(t))},destroy:function(e){Vn(e,!0)}};function Vn(e,t){var n=e.data.ref;if(o(n)){var r=e.context,i=e.componentInstance||e.elm,a=r.$refs;t?Array.isArray(a[n])?y(a[n],i):a[n]===i&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var zn=new de(\"\",{},[]),Kn=[\"create\",\"activate\",\"update\",\"remove\",\"destroy\"];function Gn(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&o(e.data)===o(t.data)&&function(e,t){if(\"input\"!==e.tag)return!0;var n,r=o(n=e.data)&&o(n=n.attrs)&&n.type,i=o(n=t.data)&&o(n=n.attrs)&&n.type;return r===i||Wn(r)&&Wn(i)}(e,t)||a(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&i(t.asyncFactory.error))}function Xn(e,t,n){var r,i,a={};for(r=t;r<=n;++r)o(i=e[r].key)&&(a[i]=r);return a}var Qn={create:Yn,update:Yn,destroy:function(e){Yn(e,zn)}};function Yn(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===zn,a=t===zn,s=Zn(e.data.directives,e.context),u=Zn(t.data.directives,t.context),c=[],l=[];for(n in u)r=s[n],i=u[n],r?(i.oldValue=r.value,tr(i,\"update\",t,e),i.def&&i.def.componentUpdated&&l.push(i)):(tr(i,\"bind\",t,e),i.def&&i.def.inserted&&c.push(i));if(c.length){var f=function(){for(var n=0;n<c.length;n++)tr(c[n],\"inserted\",t,e)};o?ot(t,\"insert\",f):f()}l.length&&ot(t,\"postpatch\",function(){for(var n=0;n<l.length;n++)tr(l[n],\"componentUpdated\",t,e)});if(!o)for(n in s)u[n]||tr(s[n],\"unbind\",e,e,a)}(e,t)}var Jn=Object.create(null);function Zn(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=Jn),i[er(r)]=r,r.def=Pe(t.$options,\"directives\",r.name);return i}function er(e){return e.rawName||e.name+\".\"+Object.keys(e.modifiers||{}).join(\".\")}function tr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){Fe(r,n.context,\"directive \"+e.name+\" \"+t+\" hook\")}}var nr=[Un,Qn];function rr(e,t){var n=t.componentOptions;if(!(o(n)&&!1===n.Ctor.options.inheritAttrs||i(e.data.attrs)&&i(t.data.attrs))){var r,a,s=t.elm,u=e.data.attrs||{},c=t.data.attrs||{};for(r in o(c.__ob__)&&(c=t.data.attrs=D({},c)),c)a=c[r],u[r]!==a&&ir(s,r,a);for(r in(X||Y)&&c.value!==u.value&&ir(s,\"value\",c.value),u)i(c[r])&&(On(r)?s.removeAttributeNS(Sn,Dn(r)):Cn(r)||s.removeAttribute(r))}}function ir(e,t,n){e.tagName.indexOf(\"-\")>-1?or(e,t,n):An(t)?In(n)?e.removeAttribute(t):(n=\"allowfullscreen\"===t&&\"EMBED\"===e.tagName?\"true\":t,e.setAttribute(t,n)):Cn(t)?e.setAttribute(t,In(n)||\"false\"===n?\"false\":\"true\"):On(t)?In(n)?e.removeAttributeNS(Sn,Dn(t)):e.setAttributeNS(Sn,t,n):or(e,t,n)}function or(e,t,n){if(In(n))e.removeAttribute(t);else{if(X&&!Q&&(\"TEXTAREA\"===e.tagName||\"INPUT\"===e.tagName)&&\"placeholder\"===t&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener(\"input\",r)};e.addEventListener(\"input\",r),e.__ieph=!0}e.setAttribute(t,n)}}var ar={create:rr,update:rr};function sr(e,t){var n=t.elm,r=t.data,a=e.data;if(!(i(r.staticClass)&&i(r.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=kn(t),u=n._transitionClasses;o(u)&&(s=Ln(s,jn(u))),s!==n._prevClass&&(n.setAttribute(\"class\",s),n._prevClass=s)}}var ur,cr,lr,fr,pr,dr,hr={create:sr,update:sr},vr=/[\\w).+\\-_$\\]]/;function gr(e){var t,n,r,i,o,a=!1,s=!1,u=!1,c=!1,l=0,f=0,p=0,d=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(u)96===t&&92!==n&&(u=!1);else if(c)47===t&&92!==n&&(c=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||l||f||p){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:u=!0;break;case 40:p++;break;case 41:p--;break;case 91:f++;break;case 93:f--;break;case 123:l++;break;case 125:l--}if(47===t){for(var h=r-1,v=void 0;h>=0&&\" \"===(v=e.charAt(h));h--);v&&vr.test(v)||(c=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):g();function g(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&g(),o)for(r=0;r<o.length;r++)i=mr(i,o[r]);return i}function mr(e,t){var n=t.indexOf(\"(\");if(n<0)return'_f(\"'+t+'\")('+e+\")\";var r=t.slice(0,n),i=t.slice(n+1);return'_f(\"'+r+'\")('+e+(\")\"!==i?\",\"+i:i)}function yr(e){console.error(\"[Vue compiler]: \"+e)}function _r(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function br(e,t,n){(e.props||(e.props=[])).push({name:t,value:n}),e.plain=!1}function wr(e,t,n){(e.attrs||(e.attrs=[])).push({name:t,value:n}),e.plain=!1}function Tr(e,t,n){e.attrsMap[t]=n,e.attrsList.push({name:t,value:n})}function Er(e,t,n,r,i,o){(e.directives||(e.directives=[])).push({name:t,rawName:n,value:r,arg:i,modifiers:o}),e.plain=!1}function xr(e,t,n,i,o,a){var s;i=i||r,\"click\"===t&&(i.right?(t=\"contextmenu\",delete i.right):i.middle&&(t=\"mouseup\")),i.capture&&(delete i.capture,t=\"!\"+t),i.once&&(delete i.once,t=\"~\"+t),i.passive&&(delete i.passive,t=\"&\"+t),i.native?(delete i.native,s=e.nativeEvents||(e.nativeEvents={})):s=e.events||(e.events={});var u={value:n.trim()};i!==r&&(u.modifiers=i);var c=s[t];Array.isArray(c)?o?c.unshift(u):c.push(u):s[t]=c?o?[u,c]:[c,u]:u,e.plain=!1}function Cr(e,t,n){var r=Ar(e,\":\"+t)||Ar(e,\"v-bind:\"+t);if(null!=r)return gr(r);if(!1!==n){var i=Ar(e,t);if(null!=i)return JSON.stringify(i)}}function Ar(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Sr(e,t,n){var r=n||{},i=r.number,o=\"$$v\";r.trim&&(o=\"(typeof $$v === 'string'? $$v.trim(): $$v)\"),i&&(o=\"_n(\"+o+\")\");var a=Or(t,o);e.model={value:\"(\"+t+\")\",expression:JSON.stringify(t),callback:\"function ($$v) {\"+a+\"}\"}}function Or(e,t){var n=function(e){if(e=e.trim(),ur=e.length,e.indexOf(\"[\")<0||e.lastIndexOf(\"]\")<ur-1)return(fr=e.lastIndexOf(\".\"))>-1?{exp:e.slice(0,fr),key:'\"'+e.slice(fr+1)+'\"'}:{exp:e,key:null};cr=e,fr=pr=dr=0;for(;!Ir();)kr(lr=Dr())?Lr(lr):91===lr&&Nr(lr);return{exp:e.slice(0,pr),key:e.slice(pr+1,dr)}}(e);return null===n.key?e+\"=\"+t:\"$set(\"+n.exp+\", \"+n.key+\", \"+t+\")\"}function Dr(){return cr.charCodeAt(++fr)}function Ir(){return fr>=ur}function kr(e){return 34===e||39===e}function Nr(e){var t=1;for(pr=fr;!Ir();)if(kr(e=Dr()))Lr(e);else if(91===e&&t++,93===e&&t--,0===t){dr=fr;break}}function Lr(e){for(var t=e;!Ir()&&(e=Dr())!==t;);}var jr,Pr=\"__r\",Rr=\"__c\";function $r(e,t,n){var r=jr;return function i(){null!==t.apply(null,arguments)&&Mr(e,i,n,r)}}function Hr(e,t,n,r){var i;t=(i=t)._withTask||(i._withTask=function(){Ge=!0;try{return i.apply(null,arguments)}finally{Ge=!1}}),jr.addEventListener(e,t,ee?{capture:n,passive:r}:n)}function Mr(e,t,n,r){(r||jr).removeEventListener(e,t._withTask||t,n)}function Fr(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},r=e.data.on||{};jr=t.elm,function(e){if(o(e[Pr])){var t=X?\"change\":\"input\";e[t]=[].concat(e[Pr],e[t]||[]),delete e[Pr]}o(e[Rr])&&(e.change=[].concat(e[Rr],e.change||[]),delete e[Rr])}(n),it(n,r,Hr,Mr,$r,t.context),jr=void 0}}var Wr={create:Fr,update:Fr};function qr(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,r,a=t.elm,s=e.data.domProps||{},u=t.data.domProps||{};for(n in o(u.__ob__)&&(u=t.data.domProps=D({},u)),s)i(u[n])&&(a[n]=\"\");for(n in u){if(r=u[n],\"textContent\"===n||\"innerHTML\"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if(\"value\"===n){a._value=r;var c=i(r)?\"\":String(r);Br(a,c)&&(a.value=c)}else a[n]=r}}}function Br(e,t){return!e.composing&&(\"OPTION\"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(o(r)){if(r.lazy)return!1;if(r.number)return h(n)!==h(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var Ur={create:qr,update:qr},Vr=w(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function zr(e){var t=Kr(e.style);return e.staticStyle?D(e.staticStyle,t):t}function Kr(e){return Array.isArray(e)?I(e):\"string\"==typeof e?Vr(e):e}var Gr,Xr=/^--/,Qr=/\\s*!important$/,Yr=function(e,t,n){if(Xr.test(t))e.style.setProperty(t,n);else if(Qr.test(n))e.style.setProperty(t,n.replace(Qr,\"\"),\"important\");else{var r=Zr(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},Jr=[\"Webkit\",\"Moz\",\"ms\"],Zr=w(function(e){if(Gr=Gr||document.createElement(\"div\").style,\"filter\"!==(e=E(e))&&e in Gr)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<Jr.length;n++){var r=Jr[n]+t;if(r in Gr)return r}});function ei(e,t){var n=t.data,r=e.data;if(!(i(n.staticStyle)&&i(n.style)&&i(r.staticStyle)&&i(r.style))){var a,s,u=t.elm,c=r.staticStyle,l=r.normalizedStyle||r.style||{},f=c||l,p=Kr(t.data.style)||{};t.data.normalizedStyle=o(p.__ob__)?D({},p):p;var d=function(e,t){var n,r={};if(t)for(var i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=zr(i.data))&&D(r,n);(n=zr(e.data))&&D(r,n);for(var o=e;o=o.parent;)o.data&&(n=zr(o.data))&&D(r,n);return r}(t,!0);for(s in f)i(d[s])&&Yr(u,s,\"\");for(s in d)(a=d[s])!==f[s]&&Yr(u,s,null==a?\"\":a)}}var ti={create:ei,update:ei},ni=/\\s+/;function ri(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(\" \")>-1?t.split(ni).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \";n.indexOf(\" \"+t+\" \")<0&&e.setAttribute(\"class\",(n+t).trim())}}function ii(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(\" \")>-1?t.split(ni).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute(\"class\");else{for(var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \",r=\" \"+t+\" \";n.indexOf(r)>=0;)n=n.replace(r,\" \");(n=n.trim())?e.setAttribute(\"class\",n):e.removeAttribute(\"class\")}}function oi(e){if(e){if(\"object\"==typeof e){var t={};return!1!==e.css&&D(t,ai(e.name||\"v\")),D(t,e),t}return\"string\"==typeof e?ai(e):void 0}}var ai=w(function(e){return{enterClass:e+\"-enter\",enterToClass:e+\"-enter-to\",enterActiveClass:e+\"-enter-active\",leaveClass:e+\"-leave\",leaveToClass:e+\"-leave-to\",leaveActiveClass:e+\"-leave-active\"}}),si=V&&!Q,ui=\"transition\",ci=\"animation\",li=\"transition\",fi=\"transitionend\",pi=\"animation\",di=\"animationend\";si&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(li=\"WebkitTransition\",fi=\"webkitTransitionEnd\"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(pi=\"WebkitAnimation\",di=\"webkitAnimationEnd\"));var hi=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function vi(e){hi(function(){hi(e)})}function gi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),ri(e,t))}function mi(e,t){e._transitionClasses&&y(e._transitionClasses,t),ii(e,t)}function yi(e,t,n){var r=bi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===ui?fi:di,u=0,c=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++u>=a&&c()};setTimeout(function(){u<a&&c()},o+1),e.addEventListener(s,l)}var _i=/\\b(transform|all)(,|$)/;function bi(e,t){var n,r=window.getComputedStyle(e),i=(r[li+\"Delay\"]||\"\").split(\", \"),o=(r[li+\"Duration\"]||\"\").split(\", \"),a=wi(i,o),s=(r[pi+\"Delay\"]||\"\").split(\", \"),u=(r[pi+\"Duration\"]||\"\").split(\", \"),c=wi(s,u),l=0,f=0;return t===ui?a>0&&(n=ui,l=a,f=o.length):t===ci?c>0&&(n=ci,l=c,f=u.length):f=(n=(l=Math.max(a,c))>0?a>c?ui:ci:null)?n===ui?o.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===ui&&_i.test(r[li+\"Property\"])}}function wi(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return Ti(t)+Ti(e[n])}))}function Ti(e){return 1e3*Number(e.slice(0,-1).replace(\",\",\".\"))}function Ei(e,t){var n=e.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=oi(e.data.transition);if(!i(r)&&!o(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,c=r.enterClass,l=r.enterToClass,f=r.enterActiveClass,p=r.appearClass,d=r.appearToClass,v=r.appearActiveClass,g=r.beforeEnter,m=r.enter,y=r.afterEnter,_=r.enterCancelled,b=r.beforeAppear,w=r.appear,T=r.afterAppear,E=r.appearCancelled,x=r.duration,C=_t,A=_t.$vnode;A&&A.parent;)C=(A=A.parent).context;var S=!C._isMounted||!e.isRootInsert;if(!S||w||\"\"===w){var O=S&&p?p:c,D=S&&v?v:f,I=S&&d?d:l,k=S&&b||g,N=S&&\"function\"==typeof w?w:m,L=S&&T||y,j=S&&E||_,P=h(u(x)?x.enter:x);0;var $=!1!==a&&!Q,H=Ai(N),M=n._enterCb=R(function(){$&&(mi(n,I),mi(n,D)),M.cancelled?($&&mi(n,O),j&&j(n)):L&&L(n),n._enterCb=null});e.data.show||ot(e,\"insert\",function(){var t=n.parentNode,r=t&&t._pending&&t._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),N&&N(n,M)}),k&&k(n),$&&(gi(n,O),gi(n,D),vi(function(){mi(n,O),M.cancelled||(gi(n,I),H||(Ci(P)?setTimeout(M,P):yi(n,s,M)))})),e.data.show&&(t&&t(),N&&N(n,M)),$||H||M()}}}function xi(e,t){var n=e.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=oi(e.data.transition);if(i(r)||1!==n.nodeType)return t();if(!o(n._leaveCb)){var a=r.css,s=r.type,c=r.leaveClass,l=r.leaveToClass,f=r.leaveActiveClass,p=r.beforeLeave,d=r.leave,v=r.afterLeave,g=r.leaveCancelled,m=r.delayLeave,y=r.duration,_=!1!==a&&!Q,b=Ai(d),w=h(u(y)?y.leave:y);0;var T=n._leaveCb=R(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),_&&(mi(n,l),mi(n,f)),T.cancelled?(_&&mi(n,c),g&&g(n)):(t(),v&&v(n)),n._leaveCb=null});m?m(E):E()}function E(){T.cancelled||(!e.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),p&&p(n),_&&(gi(n,c),gi(n,f),vi(function(){mi(n,c),T.cancelled||(gi(n,l),b||(Ci(w)?setTimeout(T,w):yi(n,s,T)))})),d&&d(n,T),_||b||T())}}function Ci(e){return\"number\"==typeof e&&!isNaN(e)}function Ai(e){if(i(e))return!1;var t=e.fns;return o(t)?Ai(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function Si(e,t){!0!==t.data.show&&Ei(t)}var Oi=function(e){var t,n,r={},u=e.modules,c=e.nodeOps;for(t=0;t<Kn.length;++t)for(r[Kn[t]]=[],n=0;n<u.length;++n)o(u[n][Kn[t]])&&r[Kn[t]].push(u[n][Kn[t]]);function l(e){var t=c.parentNode(e);o(t)&&c.removeChild(t,e)}function f(e,t,n,i,s,u,l){if(o(e.elm)&&o(u)&&(e=u[l]=me(e)),e.isRootInsert=!s,!function(e,t,n,i){var s=e.data;if(o(s)){var u=o(e.componentInstance)&&s.keepAlive;if(o(s=s.hook)&&o(s=s.init)&&s(e,!1),o(e.componentInstance))return p(e,t),d(n,e.elm,i),a(u)&&function(e,t,n,i){for(var a,s=e;s.componentInstance;)if(s=s.componentInstance._vnode,o(a=s.data)&&o(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](zn,s);t.push(s);break}d(n,e.elm,i)}(e,t,n,i),!0}}(e,t,n,i)){var f=e.data,v=e.children,g=e.tag;o(g)?(e.elm=e.ns?c.createElementNS(e.ns,g):c.createElement(g,e),y(e),h(e,v,t),o(f)&&m(e,t),d(n,e.elm,i)):a(e.isComment)?(e.elm=c.createComment(e.text),d(n,e.elm,i)):(e.elm=c.createTextNode(e.text),d(n,e.elm,i))}}function p(e,t){o(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,g(e)?(m(e,t),y(e)):(Vn(e),t.push(e))}function d(e,t,n){o(e)&&(o(n)?c.parentNode(n)===e&&c.insertBefore(e,t,n):c.appendChild(e,t))}function h(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else s(e.text)&&c.appendChild(e.elm,c.createTextNode(String(e.text)))}function g(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return o(e.tag)}function m(e,n){for(var i=0;i<r.create.length;++i)r.create[i](zn,e);o(t=e.data.hook)&&(o(t.create)&&t.create(zn,e),o(t.insert)&&n.push(e))}function y(e){var t;if(o(t=e.fnScopeId))c.setStyleScope(e.elm,t);else for(var n=e;n;)o(t=n.context)&&o(t=t.$options._scopeId)&&c.setStyleScope(e.elm,t),n=n.parent;o(t=_t)&&t!==e.context&&t!==e.fnContext&&o(t=t.$options._scopeId)&&c.setStyleScope(e.elm,t)}function _(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function b(e){var t,n,i=e.data;if(o(i))for(o(t=i.hook)&&o(t=t.destroy)&&t(e),t=0;t<r.destroy.length;++t)r.destroy[t](e);if(o(t=e.children))for(n=0;n<e.children.length;++n)b(e.children[n])}function w(e,t,n,r){for(;n<=r;++n){var i=t[n];o(i)&&(o(i.tag)?(T(i),b(i)):l(i.elm))}}function T(e,t){if(o(t)||o(e.data)){var n,i=r.remove.length+1;for(o(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&l(e)}return n.listeners=t,n}(e.elm,i),o(n=e.componentInstance)&&o(n=n._vnode)&&o(n.data)&&T(n,t),n=0;n<r.remove.length;++n)r.remove[n](e,t);o(n=e.data.hook)&&o(n=n.remove)?n(e,t):t()}else l(e.elm)}function E(e,t,n,r){for(var i=n;i<r;i++){var a=t[i];if(o(a)&&Gn(e,a))return i}}function x(e,t,n,s,u,l){if(e!==t){o(t.elm)&&o(s)&&(t=s[u]=me(t));var p=t.elm=e.elm;if(a(e.isAsyncPlaceholder))o(t.asyncFactory.resolved)?S(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(a(t.isStatic)&&a(e.isStatic)&&t.key===e.key&&(a(t.isCloned)||a(t.isOnce)))t.componentInstance=e.componentInstance;else{var d,h=t.data;o(h)&&o(d=h.hook)&&o(d=d.prepatch)&&d(e,t);var v=e.children,m=t.children;if(o(h)&&g(t)){for(d=0;d<r.update.length;++d)r.update[d](e,t);o(d=h.hook)&&o(d=d.update)&&d(e,t)}i(t.text)?o(v)&&o(m)?v!==m&&function(e,t,n,r,a){for(var s,u,l,p=0,d=0,h=t.length-1,v=t[0],g=t[h],m=n.length-1,y=n[0],b=n[m],T=!a;p<=h&&d<=m;)i(v)?v=t[++p]:i(g)?g=t[--h]:Gn(v,y)?(x(v,y,r,n,d),v=t[++p],y=n[++d]):Gn(g,b)?(x(g,b,r,n,m),g=t[--h],b=n[--m]):Gn(v,b)?(x(v,b,r,n,m),T&&c.insertBefore(e,v.elm,c.nextSibling(g.elm)),v=t[++p],b=n[--m]):Gn(g,y)?(x(g,y,r,n,d),T&&c.insertBefore(e,g.elm,v.elm),g=t[--h],y=n[++d]):(i(s)&&(s=Xn(t,p,h)),i(u=o(y.key)?s[y.key]:E(y,t,p,h))?f(y,r,e,v.elm,!1,n,d):Gn(l=t[u],y)?(x(l,y,r,n,d),t[u]=void 0,T&&c.insertBefore(e,l.elm,v.elm)):f(y,r,e,v.elm,!1,n,d),y=n[++d]);p>h?_(e,i(n[m+1])?null:n[m+1].elm,n,d,m,r):d>m&&w(0,t,p,h)}(p,v,m,n,l):o(m)?(o(e.text)&&c.setTextContent(p,\"\"),_(p,null,m,0,m.length-1,n)):o(v)?w(0,v,0,v.length-1):o(e.text)&&c.setTextContent(p,\"\"):e.text!==t.text&&c.setTextContent(p,t.text),o(h)&&o(d=h.hook)&&o(d=d.postpatch)&&d(e,t)}}}function C(e,t,n){if(a(n)&&o(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var A=v(\"attrs,class,staticClass,staticStyle,key\");function S(e,t,n,r){var i,s=t.tag,u=t.data,c=t.children;if(r=r||u&&u.pre,t.elm=e,a(t.isComment)&&o(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(o(u)&&(o(i=u.hook)&&o(i=i.init)&&i(t,!0),o(i=t.componentInstance)))return p(t,n),!0;if(o(s)){if(o(c))if(e.hasChildNodes())if(o(i=u)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==e.innerHTML)return!1}else{for(var l=!0,f=e.firstChild,d=0;d<c.length;d++){if(!f||!S(f,c[d],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(t,c,n);if(o(u)){var v=!1;for(var g in u)if(!A(g)){v=!0,m(t,n);break}!v&&u.class&&et(u.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,s){if(!i(t)){var u,l=!1,p=[];if(i(e))l=!0,f(t,p);else{var d=o(e.nodeType);if(!d&&Gn(e,t))x(e,t,p,null,null,s);else{if(d){if(1===e.nodeType&&e.hasAttribute($)&&(e.removeAttribute($),n=!0),a(n)&&S(e,t,p))return C(t,p,!0),e;u=e,e=new de(c.tagName(u).toLowerCase(),{},[],void 0,u)}var h=e.elm,v=c.parentNode(h);if(f(t,p,h._leaveCb?null:v,c.nextSibling(h)),o(t.parent))for(var m=t.parent,y=g(t);m;){for(var _=0;_<r.destroy.length;++_)r.destroy[_](m);if(m.elm=t.elm,y){for(var T=0;T<r.create.length;++T)r.create[T](zn,m);var E=m.data.hook.insert;if(E.merged)for(var A=1;A<E.fns.length;A++)E.fns[A]()}else Vn(m);m=m.parent}o(v)?w(0,[e],0,0):o(e.tag)&&b(e)}}return C(t,p,l),t.elm}o(e)&&b(e)}}({nodeOps:Bn,modules:[ar,hr,Wr,Ur,ti,V?{create:Si,activate:Si,remove:function(e,t){!0!==e.data.show?xi(e,t):t()}}:{}].concat(nr)});Q&&document.addEventListener(\"selectionchange\",function(){var e=document.activeElement;e&&e.vmodel&&Ri(e,\"input\")});var Di={inserted:function(e,t,n,r){\"select\"===n.tag?(r.elm&&!r.elm._vOptions?ot(n,\"postpatch\",function(){Di.componentUpdated(e,t,n)}):Ii(e,t,n.context),e._vOptions=[].map.call(e.options,Li)):(\"textarea\"===n.tag||Wn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener(\"compositionstart\",ji),e.addEventListener(\"compositionend\",Pi),e.addEventListener(\"change\",Pi),Q&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if(\"select\"===n.tag){Ii(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Li);if(i.some(function(e,t){return!j(e,r[t])}))(e.multiple?t.value.some(function(e){return Ni(e,i)}):t.value!==t.oldValue&&Ni(t.value,i))&&Ri(e,\"change\")}}};function Ii(e,t,n){ki(e,t,n),(X||Y)&&setTimeout(function(){ki(e,t,n)},0)}function ki(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,u=e.options.length;s<u;s++)if(a=e.options[s],i)o=P(r,Li(a))>-1,a.selected!==o&&(a.selected=o);else if(j(Li(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Ni(e,t){return t.every(function(t){return!j(t,e)})}function Li(e){return\"_value\"in e?e._value:e.value}function ji(e){e.target.composing=!0}function Pi(e){e.target.composing&&(e.target.composing=!1,Ri(e.target,\"input\"))}function Ri(e,t){var n=document.createEvent(\"HTMLEvents\");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function $i(e){return!e.componentInstance||e.data&&e.data.transition?e:$i(e.componentInstance._vnode)}var Hi={model:Di,show:{bind:function(e,t,n){var r=t.value,i=(n=$i(n)).data&&n.data.transition,o=e.__vOriginalDisplay=\"none\"===e.style.display?\"\":e.style.display;r&&i?(n.data.show=!0,Ei(n,function(){e.style.display=o})):e.style.display=r?o:\"none\"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=$i(n)).data&&n.data.transition?(n.data.show=!0,r?Ei(n,function(){e.style.display=e.__vOriginalDisplay}):xi(n,function(){e.style.display=\"none\"})):e.style.display=r?e.__vOriginalDisplay:\"none\")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Mi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Fi(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Fi(ft(t.children)):e}function Wi(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[E(o)]=i[o];return t}function qi(e,t){if(/\\d-keep-alive$/.test(t.tag))return e(\"keep-alive\",{props:t.componentOptions.propsData})}var Bi=function(e){return e.tag||lt(e)},Ui=function(e){return\"show\"===e.name},Vi={name:\"transition\",props:Mi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Bi)).length){0;var r=this.mode;0;var i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=Fi(i);if(!o)return i;if(this._leaving)return qi(e,i);var a=\"__transition-\"+this._uid+\"-\";o.key=null==o.key?o.isComment?a+\"comment\":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var u=(o.data||(o.data={})).transition=Wi(this),c=this._vnode,l=Fi(c);if(o.data.directives&&o.data.directives.some(Ui)&&(o.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,l)&&!lt(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=D({},u);if(\"out-in\"===r)return this._leaving=!0,ot(f,\"afterLeave\",function(){t._leaving=!1,t.$forceUpdate()}),qi(e,i);if(\"in-out\"===r){if(lt(o))return c;var p,d=function(){p()};ot(u,\"afterEnter\",d),ot(u,\"enterCancelled\",d),ot(f,\"delayLeave\",function(e){p=e})}}return i}}},zi=D({tag:String,moveClass:String},Mi);function Ki(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Gi(e){e.data.newPos=e.elm.getBoundingClientRect()}function Xi(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform=\"translate(\"+r+\"px,\"+i+\"px)\",o.transitionDuration=\"0s\"}}delete zi.mode;var Qi={Transition:Vi,TransitionGroup:{props:zi,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=bt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||\"span\",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Wi(this),s=0;s<i.length;s++){var u=i[s];if(u.tag)if(null!=u.key&&0!==String(u.key).indexOf(\"__vlist\"))o.push(u),n[u.key]=u,(u.data||(u.data={})).transition=a;else;}if(r){for(var c=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?c.push(p):l.push(p)}this.kept=e(t,null,c),this.removed=l}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||\"v\")+\"-move\";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(Ki),e.forEach(Gi),e.forEach(Xi),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,r=n.style;gi(n,t),r.transform=r.WebkitTransform=r.transitionDuration=\"\",n.addEventListener(fi,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(fi,e),n._moveCb=null,mi(n,t))})}}))},methods:{hasMove:function(e,t){if(!si)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){ii(n,e)}),ri(n,t),n.style.display=\"none\",this.$el.appendChild(n);var r=bi(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};hn.config.mustUseProp=xn,hn.config.isReservedTag=Hn,hn.config.isReservedAttr=Tn,hn.config.getTagNamespace=Mn,hn.config.isUnknownElement=function(e){if(!V)return!0;if(Hn(e))return!1;if(e=e.toLowerCase(),null!=Fn[e])return Fn[e];var t=document.createElement(e);return e.indexOf(\"-\")>-1?Fn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Fn[e]=/HTMLUnknownElement/.test(t.toString())},D(hn.options.directives,Hi),D(hn.options.components,Qi),hn.prototype.__patch__=V?Oi:k,hn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Et(e,\"beforeMount\"),r=function(){e._update(e._render(),n)},new Nt(e,r,k,{before:function(){e._isMounted&&!e._isDestroyed&&Et(e,\"beforeUpdate\")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Et(e,\"mounted\")),e}(this,e=e&&V?qn(e):void 0,t)},V&&setTimeout(function(){F.devtools&&re&&re.emit(\"init\",hn)},0);var Yi=/\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g,Ji=/[-.*+?^${}()|[\\]\\/\\\\]/g,Zi=w(function(e){var t=e[0].replace(Ji,\"\\\\$&\"),n=e[1].replace(Ji,\"\\\\$&\");return new RegExp(t+\"((?:.|\\\\n)+?)\"+n,\"g\")});var eo={staticKeys:[\"staticClass\"],transformNode:function(e,t){t.warn;var n=Ar(e,\"class\");n&&(e.staticClass=JSON.stringify(n));var r=Cr(e,\"class\",!1);r&&(e.classBinding=r)},genData:function(e){var t=\"\";return e.staticClass&&(t+=\"staticClass:\"+e.staticClass+\",\"),e.classBinding&&(t+=\"class:\"+e.classBinding+\",\"),t}};var to,no={staticKeys:[\"staticStyle\"],transformNode:function(e,t){t.warn;var n=Ar(e,\"style\");n&&(e.staticStyle=JSON.stringify(Vr(n)));var r=Cr(e,\"style\",!1);r&&(e.styleBinding=r)},genData:function(e){var t=\"\";return e.staticStyle&&(t+=\"staticStyle:\"+e.staticStyle+\",\"),e.styleBinding&&(t+=\"style:(\"+e.styleBinding+\"),\"),t}},ro=function(e){return(to=to||document.createElement(\"div\")).innerHTML=e,to.textContent},io=v(\"area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr\"),oo=v(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source\"),ao=v(\"address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track\"),so=/^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,uo=\"[a-zA-Z_][\\\\w\\\\-\\\\.]*\",co=\"((?:\"+uo+\"\\\\:)?\"+uo+\")\",lo=new RegExp(\"^<\"+co),fo=/^\\s*(\\/?)>/,po=new RegExp(\"^<\\\\/\"+co+\"[^>]*>\"),ho=/^<!DOCTYPE [^>]+>/i,vo=/^<!\\--/,go=/^<!\\[/,mo=v(\"script,style,textarea\",!0),yo={},_o={\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&amp;\":\"&\",\"&#10;\":\"\\n\",\"&#9;\":\"\\t\"},bo=/&(?:lt|gt|quot|amp);/g,wo=/&(?:lt|gt|quot|amp|#10|#9);/g,To=v(\"pre,textarea\",!0),Eo=function(e,t){return e&&To(e)&&\"\\n\"===t[0]};function xo(e,t){var n=t?wo:bo;return e.replace(n,function(e){return _o[e]})}var Co,Ao,So,Oo,Do,Io,ko,No,Lo=/^@|^v-on:/,jo=/^v-|^@|^:/,Po=/([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,Ro=/,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,$o=/^\\(|\\)$/g,Ho=/:(.*)$/,Mo=/^:|^v-bind:/,Fo=/\\.[^.]+/g,Wo=w(ro);function qo(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:Go(t),parent:n,children:[]}}function Bo(e,t){Co=t.warn||yr,Io=t.isPreTag||N,ko=t.mustUseProp||N,No=t.getTagNamespace||N,So=_r(t.modules,\"transformNode\"),Oo=_r(t.modules,\"preTransformNode\"),Do=_r(t.modules,\"postTransformNode\"),Ao=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=!1,s=!1;function u(e){e.pre&&(a=!1),Io(e.tag)&&(s=!1);for(var n=0;n<Do.length;n++)Do[n](e,t)}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||N,s=t.canBeLeftOpenTag||N,u=0;e;){if(n=e,r&&mo(r)){var c=0,l=r.toLowerCase(),f=yo[l]||(yo[l]=new RegExp(\"([\\\\s\\\\S]*?)(</\"+l+\"[^>]*>)\",\"i\")),p=e.replace(f,function(e,n,r){return c=r.length,mo(l)||\"noscript\"===l||(n=n.replace(/<!\\--([\\s\\S]*?)-->/g,\"$1\").replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g,\"$1\")),Eo(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),\"\"});u+=e.length-p.length,e=p,A(l,u-c,u)}else{var d=e.indexOf(\"<\");if(0===d){if(vo.test(e)){var h=e.indexOf(\"--\\x3e\");if(h>=0){t.shouldKeepComment&&t.comment(e.substring(4,h)),E(h+3);continue}}if(go.test(e)){var v=e.indexOf(\"]>\");if(v>=0){E(v+2);continue}}var g=e.match(ho);if(g){E(g[0].length);continue}var m=e.match(po);if(m){var y=u;E(m[0].length),A(m[1],y,u);continue}var _=x();if(_){C(_),Eo(_.tagName,e)&&E(1);continue}}var b=void 0,w=void 0,T=void 0;if(d>=0){for(w=e.slice(d);!(po.test(w)||lo.test(w)||vo.test(w)||go.test(w)||(T=w.indexOf(\"<\",1))<0);)d+=T,w=e.slice(d);b=e.substring(0,d),E(d)}d<0&&(b=e,e=\"\"),t.chars&&b&&t.chars(b)}if(e===n){t.chars&&t.chars(e);break}}function E(t){u+=t,e=e.substring(t)}function x(){var t=e.match(lo);if(t){var n,r,i={tagName:t[1],attrs:[],start:u};for(E(t[0].length);!(n=e.match(fo))&&(r=e.match(so));)E(r[0].length),i.attrs.push(r);if(n)return i.unarySlash=n[1],E(n[0].length),i.end=u,i}}function C(e){var n=e.tagName,u=e.unarySlash;o&&(\"p\"===r&&ao(n)&&A(r),s(n)&&r===n&&A(n));for(var c=a(n)||!!u,l=e.attrs.length,f=new Array(l),p=0;p<l;p++){var d=e.attrs[p],h=d[3]||d[4]||d[5]||\"\",v=\"a\"===n&&\"href\"===d[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[p]={name:d[1],value:xo(h,v)}}c||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f}),r=n),t.start&&t.start(n,f,c,e.start,e.end)}function A(e,n,o){var a,s;if(null==n&&(n=u),null==o&&(o=u),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var c=i.length-1;c>=a;c--)t.end&&t.end(i[c].tag,n,o);i.length=a,r=a&&i[a-1].tag}else\"br\"===s?t.start&&t.start(e,[],!0,n,o):\"p\"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Co,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,start:function(e,o,c){var l=r&&r.ns||No(e);X&&\"svg\"===l&&(o=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];Xo.test(r.name)||(r.name=r.name.replace(Qo,\"\"),t.push(r))}return t}(o));var f,p=qo(e,o,r);l&&(p.ns=l),\"style\"!==(f=p).tag&&(\"script\"!==f.tag||f.attrsMap.type&&\"text/javascript\"!==f.attrsMap.type)||ne()||(p.forbidden=!0);for(var d=0;d<Oo.length;d++)p=Oo[d](p,t)||p;function h(e){0}if(a||(!function(e){null!=Ar(e,\"v-pre\")&&(e.pre=!0)}(p),p.pre&&(a=!0)),Io(p.tag)&&(s=!0),a?function(e){var t=e.attrsList.length;if(t)for(var n=e.attrs=new Array(t),r=0;r<t;r++)n[r]={name:e.attrsList[r].name,value:JSON.stringify(e.attrsList[r].value)};else e.pre||(e.plain=!0)}(p):p.processed||(Vo(p),function(e){var t=Ar(e,\"v-if\");if(t)e.if=t,zo(e,{exp:t,block:e});else{null!=Ar(e,\"v-else\")&&(e.else=!0);var n=Ar(e,\"v-else-if\");n&&(e.elseif=n)}}(p),function(e){null!=Ar(e,\"v-once\")&&(e.once=!0)}(p),Uo(p,t)),n?i.length||n.if&&(p.elseif||p.else)&&(h(),zo(n,{exp:p.elseif,block:p})):(n=p,h()),r&&!p.forbidden)if(p.elseif||p.else)!function(e,t){var n=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(t.children);n&&n.if&&zo(n,{exp:e.elseif,block:e})}(p,r);else if(p.slotScope){r.plain=!1;var v=p.slotTarget||'\"default\"';(r.scopedSlots||(r.scopedSlots={}))[v]=p}else r.children.push(p),p.parent=r;c?u(p):(r=p,i.push(p))},end:function(){var e=i[i.length-1],t=e.children[e.children.length-1];t&&3===t.type&&\" \"===t.text&&!s&&e.children.pop(),i.length-=1,r=i[i.length-1],u(e)},chars:function(e){if(r&&(!X||\"textarea\"!==r.tag||r.attrsMap.placeholder!==e)){var t,n,i=r.children;if(e=s||e.trim()?\"script\"===(t=r).tag||\"style\"===t.tag?e:Wo(e):o&&i.length?\" \":\"\")!a&&\" \"!==e&&(n=function(e,t){var n=t?Zi(t):Yi;if(n.test(e)){for(var r,i,o,a=[],s=[],u=n.lastIndex=0;r=n.exec(e);){(i=r.index)>u&&(s.push(o=e.slice(u,i)),a.push(JSON.stringify(o)));var c=gr(r[1].trim());a.push(\"_s(\"+c+\")\"),s.push({\"@binding\":c}),u=i+r[0].length}return u<e.length&&(s.push(o=e.slice(u)),a.push(JSON.stringify(o))),{expression:a.join(\"+\"),tokens:s}}}(e,Ao))?i.push({type:2,expression:n.expression,tokens:n.tokens,text:e}):\" \"===e&&i.length&&\" \"===i[i.length-1].text||i.push({type:3,text:e})}},comment:function(e){r.children.push({type:3,text:e,isComment:!0})}}),n}function Uo(e,t){var n,r;!function(e){var t=Cr(e,\"key\");if(t){e.key=t}}(e),e.plain=!e.key&&!e.attrsList.length,(r=Cr(n=e,\"ref\"))&&(n.ref=r,n.refInFor=function(e){for(var t=e;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(n)),function(e){if(\"slot\"===e.tag)e.slotName=Cr(e,\"name\");else{var t;\"template\"===e.tag?(t=Ar(e,\"scope\"),e.slotScope=t||Ar(e,\"slot-scope\")):(t=Ar(e,\"slot-scope\"))&&(e.slotScope=t);var n=Cr(e,\"slot\");n&&(e.slotTarget='\"\"'===n?'\"default\"':n,\"template\"===e.tag||e.slotScope||wr(e,\"slot\",n))}}(e),function(e){var t;(t=Cr(e,\"is\"))&&(e.component=t);null!=Ar(e,\"inline-template\")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<So.length;i++)e=So[i](e,t)||e;!function(e){var t,n,r,i,o,a,s,u=e.attrsList;for(t=0,n=u.length;t<n;t++){if(r=i=u[t].name,o=u[t].value,jo.test(r))if(e.hasBindings=!0,(a=Ko(r))&&(r=r.replace(Fo,\"\")),Mo.test(r))r=r.replace(Mo,\"\"),o=gr(o),s=!1,a&&(a.prop&&(s=!0,\"innerHtml\"===(r=E(r))&&(r=\"innerHTML\")),a.camel&&(r=E(r)),a.sync&&xr(e,\"update:\"+E(r),Or(o,\"$event\"))),s||!e.component&&ko(e.tag,e.attrsMap.type,r)?br(e,r,o):wr(e,r,o);else if(Lo.test(r))r=r.replace(Lo,\"\"),xr(e,r,o,a,!1);else{var c=(r=r.replace(jo,\"\")).match(Ho),l=c&&c[1];l&&(r=r.slice(0,-(l.length+1))),Er(e,r,i,o,l,a)}else wr(e,r,JSON.stringify(o)),!e.component&&\"muted\"===r&&ko(e.tag,e.attrsMap.type,r)&&br(e,r,\"true\")}}(e)}function Vo(e){var t;if(t=Ar(e,\"v-for\")){var n=function(e){var t=e.match(Po);if(!t)return;var n={};n.for=t[2].trim();var r=t[1].trim().replace($o,\"\"),i=r.match(Ro);i?(n.alias=r.replace(Ro,\"\").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r;return n}(t);n&&D(e,n)}}function zo(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function Ko(e){var t=e.match(Fo);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}function Go(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var Xo=/^xmlns:NS\\d+/,Qo=/^NS\\d+:/;function Yo(e){return qo(e.tag,e.attrsList.slice(),e.parent)}var Jo=[eo,no,{preTransformNode:function(e,t){if(\"input\"===e.tag){var n,r=e.attrsMap;if(!r[\"v-model\"])return;if((r[\":type\"]||r[\"v-bind:type\"])&&(n=Cr(e,\"type\")),r.type||n||!r[\"v-bind\"]||(n=\"(\"+r[\"v-bind\"]+\").type\"),n){var i=Ar(e,\"v-if\",!0),o=i?\"&&(\"+i+\")\":\"\",a=null!=Ar(e,\"v-else\",!0),s=Ar(e,\"v-else-if\",!0),u=Yo(e);Vo(u),Tr(u,\"type\",\"checkbox\"),Uo(u,t),u.processed=!0,u.if=\"(\"+n+\")==='checkbox'\"+o,zo(u,{exp:u.if,block:u});var c=Yo(e);Ar(c,\"v-for\",!0),Tr(c,\"type\",\"radio\"),Uo(c,t),zo(u,{exp:\"(\"+n+\")==='radio'\"+o,block:c});var l=Yo(e);return Ar(l,\"v-for\",!0),Tr(l,\":type\",n),Uo(l,t),zo(u,{exp:i,block:l}),a?u.else=!0:s&&(u.elseif=s),u}}}}];var Zo,ea,ta={expectHTML:!0,modules:Jo,directives:{model:function(e,t,n){n;var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Sr(e,r,i),!1;if(\"select\"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return '+(n&&n.number?\"_n(val)\":\"val\")+\"});\";r=r+\" \"+Or(t,\"$event.target.multiple ? $$selectedVal : $$selectedVal[0]\"),xr(e,\"change\",r,null,!0)}(e,r,i);else if(\"input\"===o&&\"checkbox\"===a)!function(e,t,n){var r=n&&n.number,i=Cr(e,\"value\")||\"null\",o=Cr(e,\"true-value\")||\"true\",a=Cr(e,\"false-value\")||\"false\";br(e,\"checked\",\"Array.isArray(\"+t+\")?_i(\"+t+\",\"+i+\")>-1\"+(\"true\"===o?\":(\"+t+\")\":\":_q(\"+t+\",\"+o+\")\")),xr(e,\"change\",\"var $$a=\"+t+\",$$el=$event.target,$$c=$$el.checked?(\"+o+\"):(\"+a+\");if(Array.isArray($$a)){var $$v=\"+(r?\"_n(\"+i+\")\":i)+\",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(\"+Or(t,\"$$a.concat([$$v])\")+\")}else{$$i>-1&&(\"+Or(t,\"$$a.slice(0,$$i).concat($$a.slice($$i+1))\")+\")}}else{\"+Or(t,\"$$c\")+\"}\",null,!0)}(e,r,i);else if(\"input\"===o&&\"radio\"===a)!function(e,t,n){var r=n&&n.number,i=Cr(e,\"value\")||\"null\";br(e,\"checked\",\"_q(\"+t+\",\"+(i=r?\"_n(\"+i+\")\":i)+\")\"),xr(e,\"change\",Or(t,i),null,!0)}(e,r,i);else if(\"input\"===o||\"textarea\"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,u=!o&&\"range\"!==r,c=o?\"change\":\"range\"===r?Pr:\"input\",l=\"$event.target.value\";s&&(l=\"$event.target.value.trim()\"),a&&(l=\"_n(\"+l+\")\");var f=Or(t,l);u&&(f=\"if($event.target.composing)return;\"+f),br(e,\"value\",\"(\"+t+\")\"),xr(e,c,f,null,!0),(s||a)&&xr(e,\"blur\",\"$forceUpdate()\")}(e,r,i);else if(!F.isReservedTag(o))return Sr(e,r,i),!1;return!0},text:function(e,t){t.value&&br(e,\"textContent\",\"_s(\"+t.value+\")\")},html:function(e,t){t.value&&br(e,\"innerHTML\",\"_s(\"+t.value+\")\")}},isPreTag:function(e){return\"pre\"===e},isUnaryTag:io,mustUseProp:xn,canBeLeftOpenTag:oo,isReservedTag:Hn,getTagNamespace:Mn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(\",\")}(Jo)},na=w(function(e){return v(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs\"+(e?\",\"+e:\"\"))});function ra(e,t){e&&(Zo=na(t.staticKeys||\"\"),ea=t.isReservedTag||N,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||g(e.tag)||!ea(e.tag)||function(e){for(;e.parent;){if(\"template\"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Zo)))}(t);if(1===t.type){if(!ea(t.tag)&&\"slot\"!==t.tag&&null==t.attrsMap[\"inline-template\"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}var ia=/^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/,oa=/^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,aa={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},sa={esc:[\"Esc\",\"Escape\"],tab:\"Tab\",enter:\"Enter\",space:[\" \",\"Spacebar\"],up:[\"Up\",\"ArrowUp\"],left:[\"Left\",\"ArrowLeft\"],right:[\"Right\",\"ArrowRight\"],down:[\"Down\",\"ArrowDown\"],delete:[\"Backspace\",\"Delete\",\"Del\"]},ua=function(e){return\"if(\"+e+\")return null;\"},ca={stop:\"$event.stopPropagation();\",prevent:\"$event.preventDefault();\",self:ua(\"$event.target !== $event.currentTarget\"),ctrl:ua(\"!$event.ctrlKey\"),shift:ua(\"!$event.shiftKey\"),alt:ua(\"!$event.altKey\"),meta:ua(\"!$event.metaKey\"),left:ua(\"'button' in $event && $event.button !== 0\"),middle:ua(\"'button' in $event && $event.button !== 1\"),right:ua(\"'button' in $event && $event.button !== 2\")};function la(e,t){var n=t?\"nativeOn:{\":\"on:{\";for(var r in e)n+='\"'+r+'\":'+fa(r,e[r])+\",\";return n.slice(0,-1)+\"}\"}function fa(e,t){if(!t)return\"function(){}\";if(Array.isArray(t))return\"[\"+t.map(function(t){return fa(e,t)}).join(\",\")+\"]\";var n=oa.test(t.value),r=ia.test(t.value);if(t.modifiers){var i=\"\",o=\"\",a=[];for(var s in t.modifiers)if(ca[s])o+=ca[s],aa[s]&&a.push(s);else if(\"exact\"===s){var u=t.modifiers;o+=ua([\"ctrl\",\"shift\",\"alt\",\"meta\"].filter(function(e){return!u[e]}).map(function(e){return\"$event.\"+e+\"Key\"}).join(\"||\"))}else a.push(s);return a.length&&(i+=function(e){return\"if(!('button' in $event)&&\"+e.map(pa).join(\"&&\")+\")return null;\"}(a)),o&&(i+=o),\"function($event){\"+i+(n?\"return \"+t.value+\"($event)\":r?\"return (\"+t.value+\")($event)\":t.value)+\"}\"}return n||r?t.value:\"function($event){\"+t.value+\"}\"}function pa(e){var t=parseInt(e,10);if(t)return\"$event.keyCode!==\"+t;var n=aa[e],r=sa[e];return\"_k($event.keyCode,\"+JSON.stringify(e)+\",\"+JSON.stringify(n)+\",$event.key,\"+JSON.stringify(r)+\")\"}var da={on:function(e,t){e.wrapListeners=function(e){return\"_g(\"+e+\",\"+t.value+\")\"}},bind:function(e,t){e.wrapData=function(n){return\"_b(\"+n+\",'\"+e.tag+\"',\"+t.value+\",\"+(t.modifiers&&t.modifiers.prop?\"true\":\"false\")+(t.modifiers&&t.modifiers.sync?\",true\":\"\")+\")\"}},cloak:k},ha=function(e){this.options=e,this.warn=e.warn||yr,this.transforms=_r(e.modules,\"transformCode\"),this.dataGenFns=_r(e.modules,\"genData\"),this.directives=D(D({},da),e.directives);var t=e.isReservedTag||N;this.maybeComponent=function(e){return!(t(e.tag)&&!e.component)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function va(e,t){var n=new ha(t);return{render:\"with(this){return \"+(e?ga(e,n):'_c(\"div\")')+\"}\",staticRenderFns:n.staticRenderFns}}function ga(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return ma(e,t);if(e.once&&!e.onceProcessed)return ya(e,t);if(e.for&&!e.forProcessed)return function(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?\",\"+e.iterator1:\"\",s=e.iterator2?\",\"+e.iterator2:\"\";0;return e.forProcessed=!0,(r||\"_l\")+\"((\"+i+\"),function(\"+o+a+s+\"){return \"+(n||ga)(e,t)+\"})\"}(e,t);if(e.if&&!e.ifProcessed)return _a(e,t);if(\"template\"!==e.tag||e.slotTarget||t.pre){if(\"slot\"===e.tag)return function(e,t){var n=e.slotName||'\"default\"',r=Ta(e,t),i=\"_t(\"+n+(r?\",\"+r:\"\"),o=e.attrs&&\"{\"+e.attrs.map(function(e){return E(e.name)+\":\"+e.value}).join(\",\")+\"}\",a=e.attrsMap[\"v-bind\"];!o&&!a||r||(i+=\",null\");o&&(i+=\",\"+o);a&&(i+=(o?\"\":\",null\")+\",\"+a);return i+\")\"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Ta(t,n,!0);return\"_c(\"+e+\",\"+ba(t,n)+(r?\",\"+r:\"\")+\")\"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=ba(e,t));var i=e.inlineTemplate?null:Ta(e,t,!0);n=\"_c('\"+e.tag+\"'\"+(r?\",\"+r:\"\")+(i?\",\"+i:\"\")+\")\"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return Ta(e,t)||\"void 0\"}function ma(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push(\"with(this){return \"+ga(e,t)+\"}\"),t.pre=n,\"_m(\"+(t.staticRenderFns.length-1)+(e.staticInFor?\",true\":\"\")+\")\"}function ya(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return _a(e,t);if(e.staticInFor){for(var n=\"\",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?\"_o(\"+ga(e,t)+\",\"+t.onceId+++\",\"+n+\")\":ga(e,t)}return ma(e,t)}function _a(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||\"_e()\";var o=t.shift();return o.exp?\"(\"+o.exp+\")?\"+a(o.block)+\":\"+e(t,n,r,i):\"\"+a(o.block);function a(e){return r?r(e,n):e.once?ya(e,n):ga(e,n)}}(e.ifConditions.slice(),t,n,r)}function ba(e,t){var n=\"{\",r=function(e,t){var n=e.directives;if(!n)return;var r,i,o,a,s=\"directives:[\",u=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var c=t.directives[o.name];c&&(a=!!c(e,o,t.warn)),a&&(u=!0,s+='{name:\"'+o.name+'\",rawName:\"'+o.rawName+'\"'+(o.value?\",value:(\"+o.value+\"),expression:\"+JSON.stringify(o.value):\"\")+(o.arg?',arg:\"'+o.arg+'\"':\"\")+(o.modifiers?\",modifiers:\"+JSON.stringify(o.modifiers):\"\")+\"},\")}if(u)return s.slice(0,-1)+\"]\"}(e,t);r&&(n+=r+\",\"),e.key&&(n+=\"key:\"+e.key+\",\"),e.ref&&(n+=\"ref:\"+e.ref+\",\"),e.refInFor&&(n+=\"refInFor:true,\"),e.pre&&(n+=\"pre:true,\"),e.component&&(n+='tag:\"'+e.tag+'\",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+=\"attrs:{\"+Ca(e.attrs)+\"},\"),e.props&&(n+=\"domProps:{\"+Ca(e.props)+\"},\"),e.events&&(n+=la(e.events,!1)+\",\"),e.nativeEvents&&(n+=la(e.nativeEvents,!0)+\",\"),e.slotTarget&&!e.slotScope&&(n+=\"slot:\"+e.slotTarget+\",\"),e.scopedSlots&&(n+=function(e,t){return\"scopedSlots:_u([\"+Object.keys(e).map(function(n){return wa(n,e[n],t)}).join(\",\")+\"])\"}(e.scopedSlots,t)+\",\"),e.model&&(n+=\"model:{value:\"+e.model.value+\",callback:\"+e.model.callback+\",expression:\"+e.model.expression+\"},\"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];0;if(1===n.type){var r=va(n,t.options);return\"inlineTemplate:{render:function(){\"+r.render+\"},staticRenderFns:[\"+r.staticRenderFns.map(function(e){return\"function(){\"+e+\"}\"}).join(\",\")+\"]}\"}}(e,t);o&&(n+=o+\",\")}return n=n.replace(/,$/,\"\")+\"}\",e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function wa(e,t,n){return t.for&&!t.forProcessed?function(e,t,n){var r=t.for,i=t.alias,o=t.iterator1?\",\"+t.iterator1:\"\",a=t.iterator2?\",\"+t.iterator2:\"\";return t.forProcessed=!0,\"_l((\"+r+\"),function(\"+i+o+a+\"){return \"+wa(e,t,n)+\"})\"}(e,t,n):\"{key:\"+e+\",fn:\"+(\"function(\"+String(t.slotScope)+\"){return \"+(\"template\"===t.tag?t.if?\"(\"+t.if+\")?\"+(Ta(t,n)||\"undefined\")+\":undefined\":Ta(t,n)||\"undefined\":ga(t,n))+\"}\")+\"}\"}function Ta(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&\"template\"!==a.tag&&\"slot\"!==a.tag){var s=n?t.maybeComponent(a)?\",1\":\",0\":\"\";return\"\"+(r||ga)(a,t)+s}var u=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Ea(i)||i.ifConditions&&i.ifConditions.some(function(e){return Ea(e.block)})){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(o,t.maybeComponent):0,c=i||xa;return\"[\"+o.map(function(e){return c(e,t)}).join(\",\")+\"]\"+(u?\",\"+u:\"\")}}function Ea(e){return void 0!==e.for||\"template\"===e.tag||\"slot\"===e.tag}function xa(e,t){return 1===e.type?ga(e,t):3===e.type&&e.isComment?(r=e,\"_e(\"+JSON.stringify(r.text)+\")\"):\"_v(\"+(2===(n=e).type?n.expression:Aa(JSON.stringify(n.text)))+\")\";var n,r}function Ca(e){for(var t=\"\",n=0;n<e.length;n++){var r=e[n];t+='\"'+r.name+'\":'+Aa(r.value)+\",\"}return t.slice(0,-1)}function Aa(e){return e.replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")}new RegExp(\"\\\\b\"+\"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments\".split(\",\").join(\"\\\\b|\\\\b\")+\"\\\\b\"),new RegExp(\"\\\\b\"+\"delete,typeof,void\".split(\",\").join(\"\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b\")+\"\\\\s*\\\\([^\\\\)]*\\\\)\");function Sa(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),k}}function Oa(e){var t=Object.create(null);return function(n,r,i){(r=D({},r)).warn;delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r);var s={},u=[];return s.render=Sa(a.render,u),s.staticRenderFns=a.staticRenderFns.map(function(e){return Sa(e,u)}),t[o]=s}}var Da,Ia,ka=(Da=function(e,t){var n=Bo(e.trim(),t);!1!==t.optimize&&ra(n,t);var r=va(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[];if(r.warn=function(e,t){(t?o:i).push(e)},n)for(var a in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=D(Object.create(e.directives||null),n.directives)),n)\"modules\"!==a&&\"directives\"!==a&&(r[a]=n[a]);var s=Da(t,r);return s.errors=i,s.tips=o,s}return{compile:t,compileToFunctions:Oa(t)}})(ta),Na=(ka.compile,ka.compileToFunctions);function La(e){return(Ia=Ia||document.createElement(\"div\")).innerHTML=e?'<a href=\"\\n\"/>':'<div a=\"\\n\"/>',Ia.innerHTML.indexOf(\"&#10;\")>0}var ja=!!V&&La(!1),Pa=!!V&&La(!0),Ra=w(function(e){var t=qn(e);return t&&t.innerHTML}),$a=hn.prototype.$mount;hn.prototype.$mount=function(e,t){if((e=e&&qn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(\"string\"==typeof r)\"#\"===r.charAt(0)&&(r=Ra(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement(\"div\");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){0;var i=Na(r,{shouldDecodeNewlines:ja,shouldDecodeNewlinesForHref:Pa,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return $a.call(this,e,t)},hn.compile=Na,e.exports=hn}).call(this,n(1),n(37).setImmediate)},function(e,t,n){(function(e){var r=void 0!==e&&e||\"undefined\"!=typeof self&&self||window,i=Function.prototype.apply;function o(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new o(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new o(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(38),t.setImmediate=\"undefined\"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate=\"undefined\"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(1))},function(e,t,n){(function(e,t){!function(e,n){\"use strict\";if(!e.setImmediate){var r,i,o,a,s,u=1,c={},l=!1,f=e.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(e);p=p&&p.setTimeout?p:e,\"[object process]\"==={}.toString.call(e.process)?r=function(e){t.nextTick(function(){h(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage(\"\",\"*\"),e.onmessage=n,t}}()?e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){o.port2.postMessage(e)}):f&&\"onreadystatechange\"in f.createElement(\"script\")?(i=f.documentElement,r=function(e){var t=f.createElement(\"script\");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):r=function(e){setTimeout(h,0,e)}:(a=\"setImmediate$\"+Math.random()+\"$\",s=function(t){t.source===e&&\"string\"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener(\"message\",s,!1):e.attachEvent(\"onmessage\",s),r=function(t){e.postMessage(a+t,\"*\")}),p.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return c[u]=i,r(u),u++},p.clearImmediate=d}function d(e){delete c[e]}function h(e){if(l)setTimeout(h,0,e);else{var t=c[e];if(t){l=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{d(e),l=!1}}}}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,n(1),n(6))},function(e,t,n){\"use strict\";n.r(t);var r=function(e,t,n,r,i,o,a,s){var u,c=\"function\"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId=\"data-v-\"+o),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),u)if(c.functional){c._injectStyles=u;var l=c.render;c.render=function(e,t){return u.call(t),l(e,t)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,u):[u]}return{exports:e,options:c}}({mounted:function(){console.log(\"Component mounted.\")}},function(){this.$createElement;this._self._c;return this._m(0)},[function(){var e=this.$createElement,t=this._self._c||e;return t(\"div\",{staticClass:\"container\"},[t(\"div\",{staticClass:\"row justify-content-center\"},[t(\"div\",{staticClass:\"col-md-8\"},[t(\"div\",{staticClass:\"card\"},[t(\"div\",{staticClass:\"card-header\"},[this._v(\"Example Component\")]),this._v(\" \"),t(\"div\",{staticClass:\"card-body\"},[this._v(\"\\n                    I'm an example component.\\n                \")])])])])])}],!1,null,null,null);r.options.__file=\"ExampleComponent.vue\";t.default=r.exports},function(e,t){}]);\n"
  },
  {
    "path": "public/robots.txt",
    "content": "User-agent: *\nDisallow:\n"
  },
  {
    "path": "public/static/home/assets/clipboard/clipboard.js",
    "content": "/*!\n * clipboard.js v2.0.4\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clipboardAction = __webpack_require__(1);\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = __webpack_require__(3);\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = __webpack_require__(4);\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\nvar Clipboard = function (_Emitter) {\n    _inherits(Clipboard, _Emitter);\n\n    /**\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     * @param {Object} options\n     */\n    function Clipboard(trigger, options) {\n        _classCallCheck(this, Clipboard);\n\n        var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n        _this.resolveOptions(options);\n        _this.listenClick(trigger);\n        return _this;\n    }\n\n    /**\n     * Defines if attributes would be resolved using internal setter functions\n     * or custom functions that were passed in the constructor.\n     * @param {Object} options\n     */\n\n\n    _createClass(Clipboard, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n            this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n            this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n            this.container = _typeof(options.container) === 'object' ? options.container : document.body;\n        }\n\n        /**\n         * Adds a click event listener to the passed trigger.\n         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n         */\n\n    }, {\n        key: 'listenClick',\n        value: function listenClick(trigger) {\n            var _this2 = this;\n\n            this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {\n                return _this2.onClick(e);\n            });\n        }\n\n        /**\n         * Defines a new `ClipboardAction` on each click event.\n         * @param {Event} e\n         */\n\n    }, {\n        key: 'onClick',\n        value: function onClick(e) {\n            var trigger = e.delegateTarget || e.currentTarget;\n\n            if (this.clipboardAction) {\n                this.clipboardAction = null;\n            }\n\n            this.clipboardAction = new _clipboardAction2.default({\n                action: this.action(trigger),\n                target: this.target(trigger),\n                text: this.text(trigger),\n                container: this.container,\n                trigger: trigger,\n                emitter: this\n            });\n        }\n\n        /**\n         * Default `action` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultAction',\n        value: function defaultAction(trigger) {\n            return getAttributeValue('action', trigger);\n        }\n\n        /**\n         * Default `target` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultTarget',\n        value: function defaultTarget(trigger) {\n            var selector = getAttributeValue('target', trigger);\n\n            if (selector) {\n                return document.querySelector(selector);\n            }\n        }\n\n        /**\n         * Returns the support of the given action, or all actions if no action is\n         * given.\n         * @param {String} [action]\n         */\n\n    }, {\n        key: 'defaultText',\n\n\n        /**\n         * Default `text` lookup function.\n         * @param {Element} trigger\n         */\n        value: function defaultText(trigger) {\n            return getAttributeValue('text', trigger);\n        }\n\n        /**\n         * Destroy lifecycle.\n         */\n\n    }, {\n        key: 'destroy',\n        value: function destroy() {\n            this.listener.destroy();\n\n            if (this.clipboardAction) {\n                this.clipboardAction.destroy();\n                this.clipboardAction = null;\n            }\n        }\n    }], [{\n        key: 'isSupported',\n        value: function isSupported() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n            var actions = typeof action === 'string' ? [action] : action;\n            var support = !!document.queryCommandSupported;\n\n            actions.forEach(function (action) {\n                support = support && !!document.queryCommandSupported(action);\n            });\n\n            return support;\n        }\n    }]);\n\n    return Clipboard;\n}(_tinyEmitter2.default);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n    var attribute = 'data-clipboard-' + suffix;\n\n    if (!element.hasAttribute(attribute)) {\n        return;\n    }\n\n    return element.getAttribute(attribute);\n}\n\nmodule.exports = Clipboard;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _select = __webpack_require__(2);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\nvar ClipboardAction = function () {\n    /**\n     * @param {Object} options\n     */\n    function ClipboardAction(options) {\n        _classCallCheck(this, ClipboardAction);\n\n        this.resolveOptions(options);\n        this.initSelection();\n    }\n\n    /**\n     * Defines base properties passed from constructor.\n     * @param {Object} options\n     */\n\n\n    _createClass(ClipboardAction, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = options.action;\n            this.container = options.container;\n            this.emitter = options.emitter;\n            this.target = options.target;\n            this.text = options.text;\n            this.trigger = options.trigger;\n\n            this.selectedText = '';\n        }\n\n        /**\n         * Decides which selection strategy is going to be applied based\n         * on the existence of `text` and `target` properties.\n         */\n\n    }, {\n        key: 'initSelection',\n        value: function initSelection() {\n            if (this.text) {\n                this.selectFake();\n            } else if (this.target) {\n                this.selectTarget();\n            }\n        }\n\n        /**\n         * Creates a fake textarea element, sets its value from `text` property,\n         * and makes a selection on it.\n         */\n\n    }, {\n        key: 'selectFake',\n        value: function selectFake() {\n            var _this = this;\n\n            var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n            this.removeFake();\n\n            this.fakeHandlerCallback = function () {\n                return _this.removeFake();\n            };\n            this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n            this.fakeElem = document.createElement('textarea');\n            // Prevent zooming on iOS\n            this.fakeElem.style.fontSize = '12pt';\n            // Reset box model\n            this.fakeElem.style.border = '0';\n            this.fakeElem.style.padding = '0';\n            this.fakeElem.style.margin = '0';\n            // Move element out of screen horizontally\n            this.fakeElem.style.position = 'absolute';\n            this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n            // Move element to the same position vertically\n            var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n            this.fakeElem.style.top = yPosition + 'px';\n\n            this.fakeElem.setAttribute('readonly', '');\n            this.fakeElem.value = this.text;\n\n            this.container.appendChild(this.fakeElem);\n\n            this.selectedText = (0, _select2.default)(this.fakeElem);\n            this.copyText();\n        }\n\n        /**\n         * Only removes the fake element after another click event, that way\n         * a user can hit `Ctrl+C` to copy because selection still exists.\n         */\n\n    }, {\n        key: 'removeFake',\n        value: function removeFake() {\n            if (this.fakeHandler) {\n                this.container.removeEventListener('click', this.fakeHandlerCallback);\n                this.fakeHandler = null;\n                this.fakeHandlerCallback = null;\n            }\n\n            if (this.fakeElem) {\n                this.container.removeChild(this.fakeElem);\n                this.fakeElem = null;\n            }\n        }\n\n        /**\n         * Selects the content from element passed on `target` property.\n         */\n\n    }, {\n        key: 'selectTarget',\n        value: function selectTarget() {\n            this.selectedText = (0, _select2.default)(this.target);\n            this.copyText();\n        }\n\n        /**\n         * Executes the copy operation based on the current selection.\n         */\n\n    }, {\n        key: 'copyText',\n        value: function copyText() {\n            var succeeded = void 0;\n\n            try {\n                succeeded = document.execCommand(this.action);\n            } catch (err) {\n                succeeded = false;\n            }\n\n            this.handleResult(succeeded);\n        }\n\n        /**\n         * Fires an event based on the copy operation result.\n         * @param {Boolean} succeeded\n         */\n\n    }, {\n        key: 'handleResult',\n        value: function handleResult(succeeded) {\n            this.emitter.emit(succeeded ? 'success' : 'error', {\n                action: this.action,\n                text: this.selectedText,\n                trigger: this.trigger,\n                clearSelection: this.clearSelection.bind(this)\n            });\n        }\n\n        /**\n         * Moves focus away from `target` and back to the trigger, removes current selection.\n         */\n\n    }, {\n        key: 'clearSelection',\n        value: function clearSelection() {\n            if (this.trigger) {\n                this.trigger.focus();\n            }\n\n            window.getSelection().removeAllRanges();\n        }\n\n        /**\n         * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n         * @param {String} action\n         */\n\n    }, {\n        key: 'destroy',\n\n\n        /**\n         * Destroy lifecycle.\n         */\n        value: function destroy() {\n            this.removeFake();\n        }\n    }, {\n        key: 'action',\n        set: function set() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n            this._action = action;\n\n            if (this._action !== 'copy' && this._action !== 'cut') {\n                throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n            }\n        }\n\n        /**\n         * Gets the `action` property.\n         * @return {String}\n         */\n        ,\n        get: function get() {\n            return this._action;\n        }\n\n        /**\n         * Sets the `target` property using an element\n         * that will be have its content copied.\n         * @param {Element} target\n         */\n\n    }, {\n        key: 'target',\n        set: function set(target) {\n            if (target !== undefined) {\n                if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n                    if (this.action === 'copy' && target.hasAttribute('disabled')) {\n                        throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n                    }\n\n                    if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n                        throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n                    }\n\n                    this._target = target;\n                } else {\n                    throw new Error('Invalid \"target\" value, use a valid Element');\n                }\n            }\n        }\n\n        /**\n         * Gets the `target` property.\n         * @return {String|HTMLElement}\n         */\n        ,\n        get: function get() {\n            return this._target;\n        }\n    }]);\n\n    return ClipboardAction;\n}();\n\nmodule.exports = ClipboardAction;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(5);\nvar delegate = __webpack_require__(6);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(7);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ })\n/******/ ]);\n});"
  },
  {
    "path": "public/static/home/assets/cplayer/cplayer.js",
    "content": "!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"cplayer-umd\",[],t):\"object\"==typeof exports?exports[\"cplayer-umd\"]=t():e[\"cplayer-umd\"]=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=3)}([function(e,t,n){\"use strict\";function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t,n,i){var o=void 0,r=!1;return t.forEach(function(t,n){a.default(t,e)&&(o=n)}),void 0!==o&&(t.splice(o,1),n>o?(n--,r=!1):n===o&&(n=i(n),r=!0)),{playlist:t,nowpoint:n,needupdate:r}}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0});var a=n(10);t.baseRemoveMusic=o;var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(this,e),this.__playlist=[],this.point=0,this.__playlist=t,this.to(n)}return r(e,[{key:\"next\",value:function(){return this.point=this.nextPoint(),this.playlist[this.point]}},{key:\"prev\",value:function(){return this.point=this.prevPoint(),this.playlist[this.point]}},{key:\"now\",value:function(){return this.playlist[this.point]}},{key:\"nowpoint\",value:function(){return this.point}},{key:\"to\",value:function(e){this.point=Math.max(0,Math.min(e,this.__playlist.length-1))}},{key:\"addMusic\",value:function(e){this.__playlist.push(e)}},{key:\"nextPoint\",value:function(){var e=this.point+1;return e>=this.__playlist.length&&(e=0),e}},{key:\"prevPoint\",value:function(){var e=this.point-1;return e<0&&(e=this.__playlist.length-1),e}},{key:\"removeMusic\",value:function(e){var t=this,n=o(e,this.__playlist,this.point,function(e){return Math.max(0,Math.min(e,t.__playlist.length-1))}),i=n.playlist,r=n.nowpoint,a=n.needupdate;return this.__playlist=i,this.point=r,a}},{key:\"playlist\",get:function(){return this.__playlist}}]),e}();t.listloopPlaymode=l},function(e,t){e.exports=\"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAiACIDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAcDBAUG/8QALhAAAgEDAwIFAwMFAAAAAAAAAQIDAAQRBRIhE0EGIjFRkRQzYTI1cXOBocHR/8QAGAEAAwEBAAAAAAAAAAAAAAAAAQIDBAX/xAAiEQACAQMCBwAAAAAAAAAAAAAAAQIDETESFAQhIkFRYWL/2gAMAwEAAhEDEQA/AGBo7mOKMEBjgc4rqLaRWXG1fgUttA1qNbnpPdGV5mIRRhkiKgeTjkE5J5/1W9pniH6jVbuPdiO2gJwHG13B5wcc44+a5tPpNM4N3OwlC45RfgVlXMA2t5E/nFVZ/EEaWVlcmJmjuDHnDAdIP6MR3GSBx71Fe37LbSSKylVIyNwyM002IotGc2N7cr6+1FYTXu5iepKcnP66KzF9AoBfQ2LmzgWWJp3L72A8rNt2kY5x/wBrtfD+oSXkQ6k8iQSRuJVjwr78DcATx6YyfYehNcbsttTkayGoiGcPuh3REo2FG0bt2R6e3fvVW2vulYSSMPND9vk46jcA/Ab/ABXTlBSXsCnpvfAydb8TR3eg7bMrGrStB1c8r0wTsP4PDKe/OeRUXiPxFLBojump6fFcTtGFeCTDHaoJyMe5A70uYte+n097Z7eK6EjA4mJCptXAK7SOcE1S1a9jvbqNoYzFCkSIiFtxGBzk9znvQXD81cV1kkMSAWDQRt9bMuVB272OOPTOKKVu4+5+aKO2+gbleC5bfusf9U1ctlB1RYiAYy/Kn0P9qKKtLIkMGfeKBdkAADjgVFcffYdgcD8UUU6JPuR0UUURT//Z\"},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return\"function\"==typeof e}function o(e){return\"number\"==typeof e}function r(e){return\"object\"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError(\"n must be a positive number\");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,o,l,c,s;if(this._events||(this._events={}),\"error\"===e&&(!this._events.error||r(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var p=new Error('Uncaught, unspecified \"error\" event. ('+t+\")\");throw p.context=t,p}if(n=this._events[e],a(n))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:l=Array.prototype.slice.call(arguments,1),n.apply(this,l)}else if(r(n))for(l=Array.prototype.slice.call(arguments,1),s=n.slice(),o=s.length,c=0;c<o;c++)s[c].apply(this,l);return!0},n.prototype.addListener=function(e,t){var o;if(!i(t))throw TypeError(\"listener must be a function\");return this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",e,i(t.listener)?t.listener:t),this._events[e]?r(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,r(this._events[e])&&!this._events[e].warned&&(o=a(this._maxListeners)?n.defaultMaxListeners:this._maxListeners)&&o>0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[e].length),\"function\"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),o||(o=!0,t.apply(this,arguments))}if(!i(t))throw TypeError(\"listener must be a function\");var o=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,o,a,l;if(!i(t))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,o=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit(\"removeListener\",e,t);else if(r(n)){for(l=a;l-- >0;)if(n[l]===t||n[l].listener&&n[l].listener===t){o=l;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(o,1),this._events.removeListener&&this.emit(\"removeListener\",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)\"removeListener\"!==t&&this.removeAllListeners(t);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){e.exports=n(4)},function(e,t,n){\"use strict\";(function(e){function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function r(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){return e.map(function(e,t){var n=Object.assign({},e);return\"string\"==typeof e.lyric&&e.lyric.replace(/\\n+/gi,\"\\n\").trim()&&(n.lyric=p.decodeLyricStr(e.lyric)),\"string\"==typeof e.sublyric&&e.sublyric.replace(/\\n+/gi,\"\\n\").trim()&&(n.sublyric=p.decodeLyricStr(e.sublyric)),n})}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0}),n(9);var c=n(0),s=n(2),p=n(11),u=n(12),d=n(13),h=n(14),y=void 0;y=n(15).default;var m={playlist:[],point:0,volume:1,playmode:\"listloop\",autoplay:!1},f={listloop:c.listloopPlaymode,singlecycle:u.singlecyclePlaymode,listrandom:d.listrandomPlaymode},v=function(t){function n(t){i(this,n);var r=o(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return r.__paused=!0,r.playmodeName=\"listloop\",r._volume=0,r.eventHandlers={handlePlay:function(){r.__paused&&r.pause()},handlePlaying:function(){0===r.audioElement.currentTime&&r.emit(\"started\")},handleTimeUpdate:function(){var e=r.audioElement.duration,t=r.audioElement.currentTime;r.emit(\"timeupdate\",t,e)},handleCanPlayThrough:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.emit.apply(r,[\"canplaythrough\"].concat(t))},handlePause:function(){r.__paused||r.audioElement.ended||r.play(!0).catch(function(e){console.log(e),r.pause()})},handleEnded:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.emit.apply(r,[\"ended\"].concat(t)),r.__paused||r.next()},handlePlayListChange:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];r.emit.apply(r,[\"playlistchange\"].concat(t))},handlePlaymodeChange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r.mode;r.emit(\"playmodechange\",e)},handleLoadeddata:function(){var e=r.audioElement.duration,t=r.audioElement.currentTime;r.emit(\"timeupdate\",t,e)}},t=Object.assign({},m,t),r.playmode=new f[t.playmode](a(t.playlist),t.point),r.view=new y(r,t),h.cplayerMediaSessionPlugin(r),e(function(){r.openAudio(),r.setVolume(t.volume),t.autoplay&&r.playlist.length>0&&r.play(!0).catch(function(e){console.log(e),r.pause()})}),r}return r(n,t),l(n,[{key:\"initializeEventEmitter\",value:function(e){var t=e.addEventListener.bind(e),n=this.eventHandlers;t(\"timeupdate\",n.handleTimeUpdate),t(\"canplaythrough\",n.handleCanPlayThrough),t(\"pause\",n.handlePause),t(\"play\",n.handlePlay),t(\"playing\",n.handlePlaying),t(\"ended\",n.handleEnded),t(\"loadeddata\",n.handleLoadeddata)}},{key:\"removeEventEmitter\",value:function(e){var t=e.removeEventListener.bind(e),n=this.eventHandlers;t(\"timeupdate\",n.handleTimeUpdate),t(\"canplaythrough\",n.handleCanPlayThrough),t(\"pause\",n.handlePause),t(\"play\",n.handlePlay),t(\"playing\",n.handlePlaying),t(\"ended\",n.handleEnded),t(\"loadeddata\",n.handleLoadeddata)}},{key:\"setCurrentTime\",value:function(e){if(\"string\"==typeof e&&(e.trim(),\"%\"===e[e.length-1])){var t=parseFloat(e);e=this.duration*(t/100)}this.audioElement&&(this.audioElement.currentTime=parseFloat(e.toString()))}},{key:\"isPlaying\",value:function(){return this.audioElement.currentTime>0&&!this.audioElement.paused&&!this.audioElement.ended&&this.audioElement.readyState>2}},{key:\"openAudio\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.nowplay;e&&(\"video\"===e.type?\"HTMLVideoElement\"!==this.audioElementType&&(void 0!==this.audioElement&&(this.removeEventEmitter(this.audioElement),this.audioElement.src=\"\"),this.audioElement=document.createElement(\"video\"),this.audioElement instanceof HTMLVideoElement&&(this.audioElementType=\"HTMLVideoElement\",this.audioElement.loop=!1,this.audioElement.autoplay=!1,this.audioElement.poster=e.poster,this.audioElement.setAttribute(\"playsinline\",\"true\"),this.audioElement.setAttribute(\"webkit-playsinline\",\"true\")),this.initializeEventEmitter(this.audioElement),this.emit(\"audioelementchange\",this.audioElement)):\"HTMLAudioElement\"!==this.audioElementType&&(void 0!==this.audioElement&&(this.removeEventEmitter(this.audioElement),this.audioElement.src=\"\"),this.audioElement=new Audio,this.audioElementType=\"HTMLAudioElement\",this.audioElement.loop=!1,this.audioElement.autoplay=!1,this.initializeEventEmitter(this.audioElement),this.emit(\"audioelementchange\",this.audioElement)),this.setVolume(this.volume),this.audioElement.src=this.nowplay.src,this.emit(\"openaudio\",e),this.__paused||this.play())}},{key:\"toggleMode\",value:function(){switch(this.playmodeName){case\"listloop\":this.setMode(\"singlecycle\");break;case\"singlecycle\":this.setMode(\"listrandom\");break;case\"listrandom\":this.setMode(\"listloop\")}}},{key:\"setMode\",value:function(e){\"string\"==typeof e&&this.playmodeName!==e&&f[e]&&(this.playmode=new f[e](this.playlist,this.nowplaypoint),this.playmodeName=e,this.eventHandlers.handlePlaymodeChange())}},{key:\"getMode\",value:function(){return this.mode}},{key:\"play\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.isPlaying(),n=void 0;return(!t&&this.playlist.length>0||e)&&(n=this.audioElement.play()),this.__paused&&(this.__paused=!1,this.emit(\"playstatechange\",this.__paused),this.emit(\"play\")),n}},{key:\"pause\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(this.isPlaying()&&this.playlist.length>0||e)&&this.audioElement.pause(),this.__paused||(this.__paused=!0,this.emit(\"playstatechange\",this.__paused),this.emit(\"pause\"))}},{key:\"to\",value:function(e){this.playmode.to(e),this.openAudio()}},{key:\"next\",value:function(){this.playmode.next(),this.openAudio()}},{key:\"prev\",value:function(){this.playmode.prev(),this.openAudio()}},{key:\"togglePlayState\",value:function(){this.__paused?this.play():this.pause()}},{key:\"add\",value:function(e){e=a([e])[0],this.playmode.addMusic(e),this.eventHandlers.handlePlayListChange(),1===this.playlist.length&&this.to(0)}},{key:\"remove\",value:function(e){var t=this.playmode.removeMusic(e);this.eventHandlers.handlePlayListChange(),t&&this.openAudio()}},{key:\"setVolume\",value:function(e){this._volume=parseFloat(e),this.audioElement&&(this.audioElement.volume=Math.max(0,Math.min(1,this._volume))),this.emit(\"volumechange\",this.audioElement.volume)}},{key:\"destroy\",value:function(){var e=this;this.audioElement&&(this.audioElement.src=null,this.audioElement.removeEventListener(\"timeupdate\",this.eventHandlers.handleTimeUpdate),this.removeAllListeners()),this.view&&this.view.destroy(),Object.getOwnPropertyNames(this).forEach(function(t){return delete e[t]}),this.__proto__=Object}},{key:\"mode\",set:function(e){this.setMode(e)},get:function(){return this.playmodeName}},{key:\"volume\",set:function(e){this.setVolume(e)},get:function(){return this._volume}},{key:\"playlist\",get:function(){return this.playmode.playlist}},{key:\"nowplay\",get:function(){return this.playmode&&this.playmode.now()}},{key:\"nowplaypoint\",get:function(){return this.playmode&&this.playmode.nowpoint()}},{key:\"played\",get:function(){return!this.__paused}},{key:\"paused\",get:function(){return this.__paused}},{key:\"duration\",get:function(){return this.audioElement?this.audioElement.duration:0}},{key:\"currentTime\",get:function(){return this.audioElement?this.audioElement.currentTime:0}}]),n}(s.EventEmitter);t.default=v;var g=function(){Array.prototype.forEach.call(document.querySelectorAll(\"template[cplayer]\"),function(e){e.attributes.getNamedItem(\"loaded\")||new v(Object.assign({generateBeforeElement:!0,deleteElementAfterGenerate:!0,element:e},JSON.parse(e.innerHTML)))})};window.addEventListener(\"load\",g),window.cplayer=v}).call(t,n(5).setImmediate)},function(e,t,n){function i(e,t){this._id=e,this._clearFn=t}var o=Function.prototype.apply;t.setTimeout=function(){return new i(o.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(6),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){(function(e,t){!function(e,n){\"use strict\";function i(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return s[c]=i,l(c),c++}function o(e){delete s[e]}function r(e){var t=e.callback,i=e.args;switch(i.length){case 0:t();break;case 1:t(i[0]);break;case 2:t(i[0],i[1]);break;case 3:t(i[0],i[1],i[2]);break;default:t.apply(n,i)}}function a(e){if(p)setTimeout(a,0,e);else{var t=s[e];if(t){p=!0;try{r(t)}finally{o(e),p=!1}}}}if(!e.setImmediate){var l,c=1,s={},p=!1,u=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,\"[object process]\"==={}.toString.call(e.process)?function(){l=function(e){t.nextTick(function(){a(e)})}}():function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage(\"\",\"*\"),e.onmessage=n,t}}()?function(){var t=\"setImmediate$\"+Math.random()+\"$\",n=function(n){n.source===e&&\"string\"==typeof n.data&&0===n.data.indexOf(t)&&a(+n.data.slice(t.length))};e.addEventListener?e.addEventListener(\"message\",n,!1):e.attachEvent(\"onmessage\",n),l=function(n){e.postMessage(t+n,\"*\")}}():e.MessageChannel?function(){var e=new MessageChannel;e.port1.onmessage=function(e){a(e.data)},l=function(t){e.port2.postMessage(t)}}():u&&\"onreadystatechange\"in u.createElement(\"script\")?function(){var e=u.documentElement;l=function(t){var n=u.createElement(\"script\");n.onreadystatechange=function(){a(t),n.onreadystatechange=null,e.removeChild(n),n=null},e.appendChild(n)}}():function(){l=function(e){setTimeout(a,0,e)}}(),d.setImmediate=i,d.clearImmediate=o}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(t,n(7),n(8))},function(e,t){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t){function n(){throw new Error(\"setTimeout has not been defined\")}function i(){throw new Error(\"clearTimeout has not been defined\")}function o(e){if(p===setTimeout)return setTimeout(e,0);if((p===n||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function r(e){if(u===clearTimeout)return clearTimeout(e);if((u===i||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{return u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}function a(){m&&h&&(m=!1,h.length?y=h.concat(y):f=-1,y.length&&l())}function l(){if(!m){var e=o(a);m=!0;for(var t=y.length;t;){for(h=y,y=[];++f<t;)h&&h[f].run();f=-1,t=y.length}h=null,m=!1,r(e)}}function c(e,t){this.fun=e,this.array=t}function s(){}var p,u,d=e.exports={};!function(){try{p=\"function\"==typeof setTimeout?setTimeout:n}catch(e){p=n}try{u=\"function\"==typeof clearTimeout?clearTimeout:i}catch(e){u=i}}();var h,y=[],m=!1,f=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new c(e,t)),1!==y.length||m||o(l)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title=\"browser\",d.browser=!0,d.env={},d.argv=[],d.version=\"\",d.versions={},d.on=s,d.addListener=s,d.once=s,d.off=s,d.removeListener=s,d.removeAllListeners=s,d.emit=s,d.prependListener=s,d.prependOnceListener=s,d.listeners=function(e){return[]},d.binding=function(e){throw new Error(\"process.binding is not supported\")},d.cwd=function(){return\"/\"},d.chdir=function(e){throw new Error(\"process.chdir is not supported\")},d.umask=function(){return 0}},function(e,t,n){\"use strict\";\"function\"!=typeof Object.assign&&Object.defineProperty(Object,\"assign\",{value:function(e,t){if(null==e)throw new TypeError(\"Cannot convert undefined or null to object\");for(var n=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(n[r]=o[r])}return n},writable:!0,configurable:!0})},function(e,t,n){\"use strict\";function i(e,t){return e==t?0!=e||0!=t||1/e==1/t:e!=e&&t!=t}function o(e,t){if(i(e,t))return!0;if(\"object\"!==(void 0===e?\"undefined\":r(e))||null===e||\"object\"!==(void 0===t?\"undefined\":r(t))||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var l=0;l<n.length;l++)if(!a.call(t,n[l])||!i(e[n[l]],t[n[l]]))return!1;return!0}var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e};Object.defineProperty(t,\"__esModule\",{value:!0});var a=Object.prototype.hasOwnProperty;t.default=o},function(e,t,n){\"use strict\";function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function r(e,t){if(\"string\"!=typeof e)return e;var n=[];return e.replace(/\\n+/gi,\"\\n\").trim().split(\"\\n\").forEach(function(e){n.push.apply(n,i(a(e)))}),0!=n.length?new c(n,e):void 0}function a(e){var t=[],n=e.match(/\\[\\d+\\:[\\.\\d]+\\]/gi),i=/(?:\\[\\d+\\:[\\.\\d]+\\])*(.*)/gi.exec(e)[1].trim();return n&&i&&n.forEach(function(e){var n=/\\[(\\d+)\\:([\\.\\d]+)\\]/gi.exec(e.trim()),o=60*parseInt(n[1])*1e3+1e3*parseFloat(n[2]);t.push({time:o,word:i})}),t}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(){function e(t,n){o(this,e),this.items=[],this.items=t,this.raw=n}return l(e,[{key:\"getLyric\",value:function(e){return this.items.reduce(function(t,n){return n.time<e&&(!t||t.time<n.time)?n:t},void 0)}},{key:\"getNextLyric\",value:function(e){return this.items.reduce(function(t,n){return n.time>e&&(!t||t.time>n.time)?n:t},void 0)}},{key:\"toString\",value:function(){return this.raw}}]),e}();t.Lyric=c,t.decodeLyricStr=r,t.decodeLyricStrItem=a},function(e,t,n){\"use strict\";function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(0),a=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(this,e),this.__playlist=[],this.__playlist=t,this.to(n)}return o(e,[{key:\"next\",value:function(){return this.__playlist[this.point]}},{key:\"prev\",value:function(){return this.__playlist[this.point]}},{key:\"now\",value:function(){return this.__playlist[this.point]}},{key:\"nowpoint\",value:function(){return this.point}},{key:\"to\",value:function(e){this.point=Math.max(0,Math.min(e,this.__playlist.length-1))}},{key:\"addMusic\",value:function(e){this.__playlist.push(e)}},{key:\"removeMusic\",value:function(e){var t=this,n=r.baseRemoveMusic(e,this.__playlist,this.point,function(e){return Math.max(0,Math.min(e,t.__playlist.length-1))}),i=n.playlist,o=n.nowpoint,a=n.needupdate;return this.__playlist=i,this.point=o,a}},{key:\"playlist\",get:function(){return this.__playlist}}]),e}();t.singlecyclePlaymode=a},function(e,t,n){\"use strict\";function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(0),a=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;i(this,e),this.__playlist=[],this.point=0,this.__playlist=t,this.to(n)}return o(e,[{key:\"next\",value:function(){return this.point=this.randomPoint(),this.__playlist[this.point]}},{key:\"prev\",value:function(){return this.point=this.randomPoint(),this.__playlist[this.point]}},{key:\"now\",value:function(){return this.__playlist[this.point]}},{key:\"nowpoint\",value:function(){return this.point}},{key:\"to\",value:function(e){this.point=Math.max(0,Math.min(e,this.__playlist.length-1))}},{key:\"addMusic\",value:function(e){this.__playlist.push(e)}},{key:\"randomPoint\",value:function(){if(this.__playlist.length>1){var e=Math.floor(this.__playlist.length*Math.random());return e===this.point?this.randomPoint():e}return 0}},{key:\"removeMusic\",value:function(e){var t=this,n=r.baseRemoveMusic(e,this.__playlist,this.point,function(e){return t.randomPoint()}),i=n.playlist,o=n.nowpoint,a=n.needupdate;return this.__playlist=i,this.point=o,a}},{key:\"playlist\",get:function(){return this.__playlist}}]),e}();t.listrandomPlaymode=a},function(e,t,n){\"use strict\";function i(e){\"mediaSession\"in navigator&&(navigator.mediaSession.metadata=o(e.nowplay),navigator.mediaSession.setActionHandler(\"play\",function(){return e.play()}),navigator.mediaSession.setActionHandler(\"pause\",function(){return e.pause()}),navigator.mediaSession.setActionHandler(\"previoustrack\",function(){return e.prev()}),navigator.mediaSession.setActionHandler(\"nexttrack\",function(){return e.next()}),e.on(\"openaudio\",function(){navigator.mediaSession.metadata=o(e.nowplay)}))}function o(e){return new MediaMetadata({title:e.name,artist:e.artist,album:e.album,artwork:[{src:e.poster||r}]})}Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1);t.cplayerMediaSessionPlugin=i,t.mediaMetadata=o},function(e,t,n){\"use strict\";function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function o(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function r(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){for(var t=\"\",n=!1,i=0;i<e.length;i++){var o=e.charAt(i),r=/[ぁ-んァ-ン]/.test(o);r&&!n&&(t+='<span class=\"cp-lyric-text-zoomout\">',n=!0),!r&&n&&(t+=\"</span>\",n=!1),t+=o}return n&&(t+=\"</span>\"),t}function l(e,t){return(arguments.length>2&&void 0!==arguments[2]&&arguments[2]?a(e):e)+(t?'<span class=\"cp-lyric-text-sub\">'+t+\"</span>\":\"\")}function c(e){return parseInt((e/60).toString()).toString().padStart(2,\"0\")+\":\"+parseInt((e%60).toString()).toString().padStart(2,\"0\")}function s(e){var t=document.createElement(\"style\");return t.id=\"cplayer-style\",t.innerHTML=e,t}function p(e,t,n){var i=e.createShadowRoot();return i.innerHTML=t,i.appendChild(s(n)),i.firstChild}function u(e,t,n){var i=document.createElement(\"div\");return i.innerHTML=t,e.parentNode.insertBefore(i,e),document.getElementById(\"cplayer-style\")||document.body.appendChild(s(n)),i.firstChild}function d(e,t,n){var i=document.createElement(\"div\"),o=i.createShadowRoot();return o.innerHTML=t,o.appendChild(s(n)),e.parentNode.insertBefore(i,e),o.firstChild}function h(e,t,n){return e.innerHTML=t,document.getElementById(\"cplayer-style\")||document.body.appendChild(s(n)),e.firstChild}var y=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();Object.defineProperty(t,\"__esModule\",{value:!0});var m=n(16),f=n(2),v=n(1),g=n(17),b=n(18),k=n(19),w={element:document.body,generateBeforeElement:!1,deleteElementAfterGenerate:!1,zoomOutKana:!1,showPlaylist:!1,showPlaylistButton:!0,dropDownMenuMode:\"bottom\",width:\"\",size:\"12px\",style:\"\"},x=function(e){function t(e,n){i(this,t);var r=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.elementLinks=m.default(r.getElementLinks),r.dropDownMenuShowInfo=!0,r.__OldVolume=1,r.__OldLyric=\"\",r.__OldTotalTime=0,r.handlePlaylistchange=function(){r.updatePlaylist()},r.handleClickListButton=function(){r.toggleDropDownMenu()},r.handleClickModeButton=function(){r.player.toggleMode()},r.handleClickPlayList=function(e,t){r.player.nowplaypoint!==e&&(r.player.to(e),r.player.play())},r.handleClickPlayButton=function(){r.player.togglePlayState()},r.handleClickVolumeButton=function(){r.toggleVolumeControllerKeepShow()},r.handleOpenAudio=function(e){\"video\"!==e.type?r.setPoster(e.poster||v):r.setPoster(\"none\"),r.setProgress(0,0,0),r.elementLinks.title.innerText=e.name,r.elementLinks.artist.innerText=e.artist||\"\",r.updateLyric(),r.updatePlaylist()},r.handleModeChange=function(e){r.setMode(e)},r.handleVolumeChange=function(e){r.setVolume(e)},r.handleTimeUpdate=function(e,t){r.setProgress(e/t,e,t),r.updateLyric(e)},r.handleClickPrevButton=function(){r.player.prev(),r.player.play()},r.handleClickNextButton=function(){r.player.next(),r.player.play()},r.handlePlayStateChange=function(e){r.setPlayIcon(e)},r.handleMouseVolumeController=function(e){if(r.removeVolumeControllerKeepShow(),1===e.buttons||void 0===e.buttons&&1===e.which){var t=Math.max(0,Math.min(1,(e.clientX-r.elementLinks.volumeController.getBoundingClientRect().left)/r.elementLinks.volumeController.clientWidth));r.player.setVolume(t),r.setVolume(t)}},r.handleTouchVolumeController=function(e){r.removeVolumeControllerKeepShow();var t=Math.max(0,Math.min(1,(e.targetTouches[0].clientX-r.elementLinks.volumeController.getBoundingClientRect().left)/r.elementLinks.volumeController.clientWidth));r.player.setVolume(t),r.setVolume(t)},r.handleAudioElementChange=function(e){e instanceof HTMLVideoElement?r.elementLinks.poster.appendChild(e):r.elementLinks.poster.innerHTML=\"\"},r.handleMouseProgress=function(e){if(1===e.buttons||void 0===e.buttons&&1===e.which){var t=Math.max(0,Math.min(1,(e.clientX-r.elementLinks.progress.getBoundingClientRect().left)/r.elementLinks.progress.clientWidth));r.player.setCurrentTime(100*t+\"%\")}},r.handleTouchProgress=function(e){var t=Math.max(0,Math.min(1,(e.targetTouches[0].clientX-r.elementLinks.progress.getBoundingClientRect().left)/r.elementLinks.progress.clientWidth));r.player.setCurrentTime(100*t+\"%\")},r.options=Object.assign({},w,n),r.player=e,r.options.generateBeforeElement?r.options.element.createShadowRoot?r.rootElement=d(r.options.element,g,k+r.options.style):r.rootElement=u(r.options.element,g,k+r.options.style):r.options.element.createShadowRoot?r.rootElement=p(r.options.element,g,k+r.options.style):r.rootElement=h(r.options.element,g,k+r.options.style),n.deleteElementAfterGenerate&&n.element.parentElement.removeChild(n.element),r.rootElement.style.width=r.options.width,r.rootElement.style.fontSize=r.options.size,r.elementLinks=r.getElementLinks(),r.injectEventListener(),r.setPlayIcon(r.player.paused),r.dropDownMenuShowInfo=!r.options.showPlaylist,r.dropDownMenuShowInfo?r.showInfo():r.showPlaylist(),r.options.showPlaylistButton?r.elementLinks.button.list.style.display=\"\":r.elementLinks.button.list.style.display=\"none\",r.elementLinks.dropDownMenu.classList.add(\"cp-drop-down-menu-\"+r.options.dropDownMenuMode),r.options.dark&&r.dark(),r.options.big&&r.big(),r.setPoster(r.player.nowplay.poster||v),r.setProgress(r.player.currentTime/r.player.duration,r.player.currentTime,r.player.duration),r.elementLinks.title.innerText=r.player.nowplay.name,r.elementLinks.artist.innerText=r.player.nowplay.artist||\"\",r.updateLyric(),r.updatePlaylist(),r}return r(t,e),y(t,[{key:\"getRootElement\",value:function(){return this.rootElement}},{key:\"dark\",value:function(){this.rootElement.classList.add(\"cp-dark\")}},{key:\"big\",value:function(){this.rootElement.classList.add(\"cp-big\")}},{key:\"getPlayListLinks\",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.rootElement).querySelectorAll(\".cp-playlist li\")}},{key:\"getElementLinks\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.rootElement,t=function(t){return e.getElementsByClassName(t)[0]};return{icon:{play:t(\"cp-play-icon\"),mode:t(\"cp-mode-icon\")},button:{prev:t(\"cp-prev-button\"),play:t(\"cp-play-button\"),next:t(\"cp-next-button\"),volume:t(\"cp-volume-icon\"),list:t(\"cp-list-button\"),mode:t(\"cp-mode-button\")},progress:t(\"cp-progress\"),progressFill:t(\"cp-progress-fill\"),progressButton:t(\"cp-progress-button\"),progressDuration:t(\"cp-progress-duration\"),progressCurrentTime:t(\"cp-progress-current-time\"),poster:t(\"cp-poster\"),title:t(\"cp-audio-title\"),artist:t(\"cp-audio-artist\"),lyric:t(\"cp-lyric-text\"),lyricContainer:t(\"cp-lyric\"),volumeController:t(\"cp-volume-controller\"),volumeFill:t(\"cp-volume-fill\"),volumeControllerButton:t(\"cp-volume-controller-button\"),volumeControllerContainer:t(\"cp-volume-container\"),dropDownMenu:t(\"cp-drop-down-menu\"),playlist:t(\"cp-playlist\"),playlistItems:this.getPlayListLinks(e)}}},{key:\"setPlayIcon\",value:function(e){e?this.elementLinks.icon.play.classList.add(\"cp-play-icon-paused\"):this.elementLinks.icon.play.classList.remove(\"cp-play-icon-paused\")}},{key:\"setProgress\",value:function(e,t,n){this.elementLinks.progressFill.style.width=100*e+\"%\",this.elementLinks.progressButton.style.right=100*(1-e)+\"%\",this.elementLinks.progressCurrentTime.innerText=c(t),this.elementLinks.progressDuration.innerText=c(n)}},{key:\"setPoster\",value:function(e){this.elementLinks.poster.style.backgroundImage='url(\"'+e+'\")'}},{key:\"setVolume\",value:function(e){this.__OldVolume!==e&&(this.elementLinks.volumeFill.style.width=100*e+\"%\",this.elementLinks.volumeControllerButton.style.right=100*(1-e)+\"%\",this.__OldVolume=e)}},{key:\"setMode\",value:function(e){var t=document.createAttribute(\"data-mode\");t.value=e,this.elementLinks.button.mode.attributes.setNamedItem(t)}},{key:\"showInfo\",value:function(){var e=this.elementLinks.dropDownMenu;e.style.height=\"\",e.classList.remove(\"cp-drop-down-menu-playlist\"),e.classList.add(\"cp-drop-down-menu-info\"),this.dropDownMenuShowInfo=!0}},{key:\"showPlaylist\",value:function(){var e=this.elementLinks.dropDownMenu;e.style.height=2.08333*this.player.playlist.length+\"em\",e.classList.remove(\"cp-drop-down-menu-info\"),e.classList.add(\"cp-drop-down-menu-playlist\"),this.dropDownMenuShowInfo=!1}},{key:\"toggleDropDownMenu\",value:function(){this.dropDownMenuShowInfo?this.showPlaylist():this.showInfo()}},{key:\"setVolumeControllerKeepShow\",value:function(){this.elementLinks.volumeControllerContainer.classList.add(\"cp-volume-container-show\")}},{key:\"toggleVolumeControllerKeepShow\",value:function(){this.elementLinks.volumeControllerContainer.classList.toggle(\"cp-volume-container-show\")}},{key:\"removeVolumeControllerKeepShow\",value:function(){this.elementLinks.volumeControllerContainer.classList.remove(\"cp-volume-container-show\")}},{key:\"setLyric\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(this.__OldLyric!==e||this.__OldTotalTime!==n){if(this.elementLinks.lyric.innerHTML=e,this.elementLinks.lyric.style.transition=\"\",this.elementLinks.lyric.style.transform=\"\",0!==n){var i=this.elementLinks.lyric.clientWidth,o=this.elementLinks.lyricContainer.clientWidth;if(i>o){var r=n-t,a=i-o,l=o/i*r,c=Math.min(.6*l,r),s=r-l;this.elementLinks.lyric.style.transition=\"transform \"+s+\"ms linear \"+c+\"ms\",this.elementLinks.lyric.style.transform=\"translateX(-\"+a+\"px)\"}}this.__OldLyric=e,this.__OldTotalTime=n}}},{key:\"updatePlaylist\",value:function(){var e=this,t=this.player.playlist.map(function(t,n){var i=document.createElement(\"li\");return i.innerHTML=\"\\n        \"+(n===e.player.nowplaypoint?b:'<span class=\"cp-play-icon\"></span>')+\"\\n        <span>\"+t.name+\"</span><span class='cp-playlist-artist'>\"+(t.artist?\" - \"+t.artist:\"\")+\"</span>\\n      \",i});this.elementLinks.playlist.innerHTML=\"\",t.forEach(function(t){e.elementLinks.playlist.appendChild(t)}),this.elementLinks.playlistItems=this.getPlayListLinks(),this.injectPlayListEventListener(),this.dropDownMenuShowInfo||(this.elementLinks.dropDownMenu.style.height=2.08333*this.player.playlist.length+\"em\")}},{key:\"injectPlayListEventListener\",value:function(){var e=this;Array.prototype.forEach.call(this.elementLinks.playlistItems,function(t,n){t.addEventListener(\"click\",function(t){e.handleClickPlayList(n,t)})})}},{key:\"injectEventListener\",value:function(){this.elementLinks.button.play.addEventListener(\"click\",this.handleClickPlayButton),this.elementLinks.button.prev.addEventListener(\"click\",this.handleClickPrevButton),this.elementLinks.button.next.addEventListener(\"click\",this.handleClickNextButton),this.elementLinks.button.volume.addEventListener(\"click\",this.handleClickVolumeButton),this.elementLinks.button.list.addEventListener(\"click\",this.handleClickListButton),this.elementLinks.button.mode.addEventListener(\"click\",this.handleClickModeButton),this.elementLinks.volumeController.addEventListener(\"mousemove\",this.handleMouseVolumeController),this.elementLinks.volumeController.addEventListener(\"mousedown\",this.handleMouseVolumeController),this.elementLinks.volumeController.addEventListener(\"touchmove\",this.handleTouchVolumeController,{passive:!0}),this.elementLinks.progress.addEventListener(\"mousemove\",this.handleMouseProgress),this.elementLinks.progress.addEventListener(\"mousedown\",this.handleMouseProgress),this.elementLinks.progress.addEventListener(\"touchmove\",this.handleTouchProgress,{passive:!0}),this.player.addListener(\"playstatechange\",this.handlePlayStateChange),this.player.addListener(\"timeupdate\",this.handleTimeUpdate),this.player.addListener(\"openaudio\",this.handleOpenAudio),this.player.addListener(\"volumechange\",this.handleVolumeChange),this.player.addListener(\"playmodechange\",this.handleModeChange),this.player.addListener(\"playlistchange\",this.handlePlaylistchange),this.player.addListener(\"audioelementchange\",this.handleAudioElementChange),this.injectPlayListEventListener()}},{key:\"updateLyric\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.player.nowplay.lyric&&\"string\"!=typeof this.player.nowplay.lyric&&this.player.played){var t=this.player.nowplay.lyric.getLyric(1e3*e),n=this.player.nowplay.lyric.getNextLyric(1e3*e);if(t){var i=void 0;if(this.player.nowplay.sublyric&&\"string\"!=typeof this.player.nowplay.sublyric&&(i=this.player.nowplay.sublyric.getLyric(1e3*e)),n){var o=n.time-t.time,r=1e3*e-t.time;this.setLyric(l(t.word,i?i.word:void 0,this.options.zoomOutKana),r,o)}else{var a=this.player.duration-t.time,c=1e3*e-t.time;this.setLyric(l(t.word,i?i.word:void 0,this.options.zoomOutKana),c,a)}}else this.setLyric(l(this.player.nowplay.name,this.player.nowplay.artist,!1),1e3*e,n.time)}else this.setLyric(l(this.player.nowplay.name,this.player.nowplay.artist,!1))}},{key:\"destroy\",value:function(){this.rootElement.parentElement.removeChild(this.rootElement)}}]),t}(f.EventEmitter);t.default=x},function(e,t,n){\"use strict\";function i(e){return{}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=i},function(e,t){e.exports='<c-player loaded> <div class=cp-mainbody> <div class=cp-poster> </div> <div class=cp-center-container> <div class=cp-controls> <a class=cp-prev-button> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=cp-prev-icon viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M943.705 11.8c10.321 5.183 17.325 15.601 17.534 27.675l-0.004 938.318c-0.167 12.186-7.229 22.684-17.457 27.782-4.857 2.548-10.527 4.026-16.543 4.026a35.75 35.75 0 0 1-18.217-4.955l-716.617-469c-9.689-5.299-16.151-15.421-16.151-27.053 0-11.63 6.462-21.753 15.991-26.972L909.186 12.666c5.177-3.048 11.404-4.848 18.052-4.848a35.878 35.878 0 0 1 16.665 4.077z\"/> <path d=\"M228.435 77.809v868.712c-3.889 42.573-39.416 75.664-82.673 75.664s-78.784-33.091-82.649-75.34l-0.024-869.036C65.9 34.259 101.911 0 145.924 0s80.024 34.259 82.822 77.564z\"/> </svg> </a> <a class=cp-play-button> <span class=\"cp-play-icon cp-play-icon-paused\"> <div class=cp-play-icon-left></div> <div class=cp-play-icon-right></div> <div class=cp-play-icon-triangle-1></div> <div class=cp-play-icon-triangle-2></div> </span> </a> <a class=cp-next-button> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=cp-next-icon viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M943.705 11.8c10.321 5.183 17.325 15.601 17.534 27.675l-0.004 938.318c-0.167 12.186-7.229 22.684-17.457 27.782-4.857 2.548-10.527 4.026-16.543 4.026a35.75 35.75 0 0 1-18.217-4.955l-716.617-469c-9.689-5.299-16.151-15.421-16.151-27.053 0-11.63 6.462-21.753 15.991-26.972L909.186 12.666c5.177-3.048 11.404-4.848 18.052-4.848a35.878 35.878 0 0 1 16.665 4.077z\"/> <path d=\"M228.435 77.809v868.712c-3.889 42.573-39.416 75.664-82.673 75.664s-78.784-33.091-82.649-75.34l-0.024-869.036C65.9 34.259 101.911 0 145.924 0s80.024 34.259 82.822 77.564z\"/> </svg> </a> </div> <div class=cp-lyric> <span class=cp-lyric-text></span> </div> </div> <a class=cp-volume-button> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=\"cp-volume-icon cp-icon-dark\" viewBox=\"0 200 1024 650\" version=1.1> <path d=\"M607.869008 364.026176l-49.340512 49.340528c25.412064 25.160448 41.150352 60.055392 41.150352 98.637648 0 38.573568-15.738288 73.477184-41.150352 98.62896l49.340512 49.340512c37.836112-37.888176 61.244-90.195872 61.244-147.969488 0-57.782272-23.407888-110.081328-61.244-147.978176z\"/> <path d=\"M807.937968 512c0-96.086912-39.050752-183.055296-102.134064-245.904368L656.95792 314.9416c50.398992 50.45104 81.563248 120.1108 81.563248 197.0584 0 76.938912-31.172944 146.598672-81.563248 197.0584l48.845984 48.845968C768.887216 695.055296 807.937968 608.086896 807.937968 512z\"/> <path d=\"M946.780288 512.004336c0-134.434896-54.598176-256.107376-142.807248-344.082192l-49.088912 49.088896c75.65488 75.411952 122.470672 179.732384 122.470672 294.993296 0 115.252224-46.815792 219.581328-122.470672 294.984608l49.088912 49.088912c88.209072-87.966144 142.807248-209.647312 142.807248-344.07352z\"/> <path d=\"M247.605111 659.304938 458.566804 854.551527 458.566804 169.448479 251.58222 364.704275 53.490893 364.704275 53.490893 659.304938Z\"/> </svg> <div class=cp-volume-container> <div> <span class=cp-volume-controller> <span class=cp-volume-fill></span> <span class=cp-volume-controller-button></span> </span> </div> </div> </a> <a class=cp-list-button> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=\"cp-list-icon cp-icon-dark\" viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M168.57 820.6c0 14.34-9.56 23.89-23.89 23.89H96.89c-14.34 0-23.89-9.55-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89h47.79c14.34 0 23.89 9.56 23.89 23.89z m0-284.33c0 14.34-9.56 23.89-23.89 23.89H96.89c-14.34 0-23.89-9.56-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89h47.79c14.34 0 23.89 9.56 23.89 23.89z m0-286.72c0 14.34-9.56 23.89-23.89 23.89H96.89c-14.34 0-23.89-9.56-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89h47.79c14.34 0 23.89 9.56 23.89 23.89zM969 820.6c0 14.34-7.17 23.89-21.5 23.89H314.32c-14.34 0-23.89-9.56-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89H945.1c14.34 0 23.89 9.56 23.89 23.89z m0-284.33c0 14.34-7.17 23.89-21.5 23.89H314.32c-14.34 0-23.89-9.56-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89H945.1c14.34 0 23.89 9.56 23.89 23.89z m0-286.72c0 14.34-7.17 23.89-21.5 23.89H314.32c-14.34 0-23.89-9.56-23.89-23.89v-47.79c0-14.34 9.56-23.89 23.89-23.89H945.1c14.34 0 23.89 9.56 23.89 23.89z\"/> </svg> </a> <a class=cp-mode-button data-mode=listloop> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=\"cp-loop-icon cp-icon-dark\" viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M157 624c17.3-4.8 27.4-22.7 22.6-40-5.4-19.4-8.1-39.5-8.1-59.9 0-123.1 100.1-223.2 223.2-223.2h302.4v57.6c0 18.5 12.9 25.6 28.6 15.9l138.6-85.8c15.7-9.7 15.9-25.9 0.3-35.9l-139.2-89.9c-15.5-10-28.2-3.1-28.2 15.4V236H394.7c-77 0-149.3 30-203.8 84.4-54.4 54.4-84.4 126.8-84.4 203.8 0 26.2 3.5 52.2 10.5 77.3 4 14.4 17.1 23.8 31.3 23.8 2.9-0.1 5.8-0.4 8.7-1.3z m748.7-202.1c-4-14.4-17.1-23.8-31.3-23.8-2.9 0-5.8 0.4-8.7 1.2-17.3 4.8-27.4 22.7-22.6 40 5.4 19.4 8.1 39.5 8.1 59.9 0 123.1-100.1 223.2-223.2 223.2H325.5v-57.6c0-18.5-12.9-25.6-28.6-15.9l-138.6 85.8c-15.7 9.7-15.9 25.9-0.3 35.9l139.2 89.9c15.5 10 28.2 3.1 28.2-15.4v-57.9h302.4c77 0 149.3-30 203.8-84.4C886 648.4 916 576 916 499c0.1-26-3.4-52-10.3-77.1z\"/> </svg> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=\"cp-single-icon cp-icon-dark\" viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M102.5 653.9c17.3-4.8 27.4-22.7 22.6-40-5.4-19.4-8.1-43.4-8.1-63.8C117 427 217.1 323 340.2 323h132.3c1.4-20 5.4-40 11.7-60h-144c-77 0-149.4 31.4-203.8 85.8C82 403.2 52 476.3 52 553.3c0 26.2 3.5 52.6 10.5 77.6 4 14.4 17.1 24 31.3 24 2.9 0 5.8-0.2 8.7-1z m471 109.1H272v-68.3c0-18.5-13.3-25.6-29-15.9l-138.8 85.8c-15.7 9.7-16 25.9-0.5 35.9l139.7 89.9c15.5 10 28.7 3.1 28.7-15.4v-52h301.5c77 0 149.4-32.9 203.8-87.3 34.7-34.7 59.5-78.2 72.9-124-24 9-49.6 19.4-76.2 21.5-36.5 74-112.7 129.8-200.6 129.8zM752 127.9c-121.5 0-220 98.5-220 220s98.5 220 220 220 220-98.5 220-220-98.5-220-220-220zM792 463h-40V298.7c-20 14-36.2 24.5-60 31.3v-41.8c11.5-2.9 23.8-10.4 36.7-17.6 13-7.9 23.8-7.7 32.4-27.7H792V463z\"/> </svg> <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink class=\"cp-random-icon cp-icon-dark\" viewBox=\"0 0 1024 1024\" version=1.1> <path d=\"M112 405.2h218.2c7.1 0 21 5.8 26 10.8l38 38.6c13.6 13.8 35.7 13.9 49.5 0.4 13.8-13.6 13.9-35.7 0.4-49.5l-38-38.6c-18.1-18.4-50-31.7-75.8-31.7H112c-19.3 0-35 15.7-35 35 0 19.4 15.7 35 35 35z m623.2 0h62.4v42.6c0 10.9 7.5 15 16.7 8.8l125.8-83.9c9.3-6.2 9.2-16.2 0-22.4l-125.8-83.9c-9.3-6.2-16.7-2.2-16.7 8.8v60h-62.4c-53.5 0-123.5 29.3-161 67.4L393.9 585.7c-24.3 24.7-76.4 46.5-111.1 46.5H112c-19.3 0-35 15.7-35 35s15.7 35 35 35h170.7c53.5 0 123.5-29.3 161-67.4L624 451.7c24.4-24.7 76.4-46.5 111.2-46.5z m79.1 161.2c-9.3-6.2-16.7-2.2-16.7 8.8v57H681.9c-6.9 0-20.2-5.6-25-10.4l-37.3-37.9c-13.6-13.8-35.7-13.9-49.5-0.4-13.8 13.6-13.9 35.7-0.4 49.5l37.3 37.9c18 18.2 49.3 31.3 74.9 31.3h115.6v45.6c0 10.9 7.5 15 16.7 8.8L940 672.7c9.3-6.2 9.2-16.2 0-22.4l-125.7-83.9z\"/> </svg> </a> <div class=cp-progress-container> <span class=cp-progress-current-time>07:24</span> <div class=cp-progress> <div class=cp-progress-fill></div> <span class=cp-progress-button></span> </div> <span class=cp-progress-duration>24:50</span> </div> </div> <div class=\"cp-drop-down-menu cp-drop-down-menu-info\"> <div class=cp-audio-info> <span class=cp-audio-title></span> - <span class=cp-audio-artist></span> </div> <ul class=cp-playlist> </ul> </div> </c-player>'},function(e,t){e.exports='<svg class=cp-play-icon viewBox=\"0 0 1024 1024\" version=1.1 xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink width=200 height=200> <path d=\"M64.279417 58.009844c0-21.327148 10.62092-39.540533 29.218194-50.118799a56.858178 56.858178 0 0 1 58.265769 0.255926l779.336659 453.969682c18.341348 10.706229 28.748996 28.748996 28.748996 49.905527 0 21.113877-10.407648 39.156645-28.748996 49.820219L151.76338 1015.854735a56.943486 56.943486 0 0 1-58.265769 0.255926 56.303672 56.303672 0 0 1-29.218194-50.161453V58.009844z\"> </path> </svg>'},function(e,t,n){t=e.exports=n(20)(void 0),t.push([e.i,\"@-webkit-keyframes miss-pointer-event {\\n  0% {\\n    pointer-events: none; }\\n  50% {\\n    pointer-events: none; }\\n  100% {\\n    pointer-events: auto; } }\\n\\n@keyframes miss-pointer-event {\\n  0% {\\n    pointer-events: none; }\\n  50% {\\n    pointer-events: none; }\\n  100% {\\n    pointer-events: auto; } }\\n\\nc-player {\\n  display: -webkit-inline-box;\\n  display: -ms-inline-flexbox;\\n  display: inline-flex;\\n  -webkit-box-orient: vertical;\\n  -webkit-box-direction: normal;\\n      -ms-flex-direction: column;\\n          flex-direction: column;\\n  position: relative;\\n  font-size: 12px;\\n  width: 300px;\\n  text-align: left; }\\n  c-player .cp-mainbody {\\n    display: -webkit-box;\\n    display: -ms-flexbox;\\n    display: flex;\\n    -webkit-box-align: center;\\n        -ms-flex-align: center;\\n            align-items: center;\\n    -webkit-box-orient: horizontal;\\n    -webkit-box-direction: normal;\\n        -ms-flex-direction: row;\\n            flex-direction: row;\\n    min-height: 4.16667em;\\n    min-width: 25em;\\n    -ms-flex-wrap: wrap;\\n        flex-wrap: wrap;\\n    background-color: #fff;\\n    position: relative;\\n    z-index: 1;\\n    border-radius: 0.33333em;\\n    -webkit-box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px;\\n            box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px; }\\n    c-player .cp-mainbody > * {\\n      margin-right: 0.58333em; }\\n    c-player .cp-mainbody:hover + .cp-drop-down-menu.cp-drop-down-menu-info {\\n      height: 2.08333em; }\\n  c-player .cp-drop-down-menu {\\n    margin: 0em 0.16667em 0;\\n    display: block;\\n    text-align: center;\\n    font-size: 1em;\\n    line-height: 2.08333em;\\n    background-color: rgba(255, 255, 255, 0.6);\\n    position: relative;\\n    z-index: 0;\\n    height: 0em;\\n    overflow: hidden;\\n    border-bottom-right-radius: 0.33333em;\\n    border-bottom-left-radius: 0.33333em;\\n    -webkit-box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px;\\n            box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px;\\n    -webkit-transition: height 0.25s ease 0.1s, -webkit-transform 0.25s ease 0.1s;\\n    transition: height 0.25s ease 0.1s, -webkit-transform 0.25s ease 0.1s;\\n    transition: transform 0.25s ease 0.1s, height 0.25s ease 0.1s;\\n    transition: transform 0.25s ease 0.1s, height 0.25s ease 0.1s, -webkit-transform 0.25s ease 0.1s; }\\n    c-player .cp-drop-down-menu span.cp-audio-title {\\n      max-width: 14.16667em;\\n      overflow: hidden;\\n      text-overflow: ellipsis; }\\n    c-player .cp-drop-down-menu span.cp-audio-artist {\\n      opacity: 0.6;\\n      max-width: 8.33333em;\\n      overflow: hidden;\\n      text-overflow: ellipsis; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-top {\\n      -webkit-box-ordinal-group: 0;\\n          -ms-flex-order: -1;\\n              order: -1; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-none {\\n      display: none; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-bottom {\\n      -webkit-box-ordinal-group: 2;\\n          -ms-flex-order: 1;\\n              order: 1; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-info .cp-playlist {\\n      display: none; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-info:hover {\\n      height: 2.08333em; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-playlist .cp-audio-info {\\n      display: none; }\\n    c-player .cp-drop-down-menu.cp-drop-down-menu-playlist {\\n      height: auto; }\\n  c-player .cp-playlist {\\n    margin: 0em;\\n    padding: 0em;\\n    list-style: none;\\n    text-align: left; }\\n    c-player .cp-playlist li {\\n      padding: 0em 0.83333em;\\n      overflow: hidden;\\n      text-overflow: ellipsis;\\n      white-space: nowrap;\\n      cursor: pointer; }\\n      c-player .cp-playlist li .cp-play-icon {\\n        display: inline-block;\\n        width: 1em;\\n        height: 1em;\\n        vertical-align: text-top;\\n        margin: 0px 0.41667em 0 0;\\n        fill: rgba(183, 28, 28, 0.8); }\\n  c-player .cp-playlist-artist {\\n    opacity: 0.46; }\\n  c-player .cp-center-container {\\n    -webkit-box-flex: 1;\\n        -ms-flex-positive: 1;\\n            flex-grow: 1;\\n    position: relative;\\n    height: 4.16667em;\\n    pointer-events: auto; }\\n    c-player .cp-center-container .cp-controls {\\n      opacity: 0; }\\n    c-player .cp-center-container:hover .cp-controls {\\n      opacity: 1;\\n      -webkit-animation: miss-pointer-event 100ms;\\n              animation: miss-pointer-event 100ms;\\n      -webkit-animation-fill-mode: both;\\n              animation-fill-mode: both; }\\n    c-player .cp-center-container:hover .cp-lyric {\\n      opacity: 0; }\\n  c-player .cp-controls {\\n    display: -webkit-box;\\n    display: -ms-flexbox;\\n    display: flex;\\n    -webkit-box-pack: center;\\n        -ms-flex-pack: center;\\n            justify-content: center;\\n    -webkit-box-align: center;\\n        -ms-flex-align: center;\\n            align-items: center;\\n    position: absolute;\\n    width: 100%;\\n    height: 100%;\\n    z-index: 1;\\n    -webkit-transition: opacity 0.25s ease;\\n    transition: opacity 0.25s ease; }\\n    c-player .cp-controls > * {\\n      margin-right: 1.25em;\\n      -webkit-tap-highlight-color: transparent; }\\n  c-player .cp-lyric {\\n    display: -webkit-box;\\n    display: -ms-flexbox;\\n    display: flex;\\n    -webkit-box-align: center;\\n        -ms-flex-align: center;\\n            align-items: center;\\n    position: absolute;\\n    width: calc(100% - 1.66667em);\\n    height: calc(100% - 0.83333em);\\n    overflow: hidden;\\n    margin: 0.41667em 0.83333em;\\n    font-size: 1.16667em;\\n    -webkit-transition: opacity 0.25s ease;\\n    transition: opacity 0.25s ease; }\\n  c-player .cp-lyric-text {\\n    -webkit-box-flex: 1;\\n        -ms-flex-positive: 1;\\n            flex-grow: 1;\\n    white-space: nowrap;\\n    text-align: center;\\n    color: #424242; }\\n    c-player .cp-lyric-text .cp-lyric-text-sub {\\n      display: block;\\n      color: #757575;\\n      font-size: 0.85714em; }\\n    c-player .cp-lyric-text .cp-lyric-text-zoomout {\\n      font-size: 1em;\\n      -webkit-transform: translateY(0.08333em);\\n              transform: translateY(0.08333em);\\n      display: inline-block;\\n      margin: 0px 0.14286em; }\\n  c-player .cp-progress-container {\\n    -ms-flex-preferred-size: 100%;\\n        flex-basis: 100%;\\n    margin: 0em;\\n    opacity: 0.8;\\n    position: absolute;\\n    width: 100%;\\n    bottom: 0px;\\n    border-bottom-left-radius: 0.33333em;\\n    border-bottom-right-radius: 0.33333em;\\n    overflow: hidden;\\n    pointer-events: none; }\\n    c-player .cp-progress-container > span {\\n      display: none; }\\n  c-player.cp-big .cp-progress-container {\\n    position: relative;\\n    border-bottom-left-radius: 0;\\n    border-bottom-right-radius: 0;\\n    height: 2.91667em;\\n    padding: 0 0.41667em;\\n    display: -webkit-box;\\n    display: -ms-flexbox;\\n    display: flex;\\n    -webkit-box-orient: horizontal;\\n    -webkit-box-direction: normal;\\n        -ms-flex-direction: row;\\n            flex-direction: row;\\n    -webkit-box-pack: center;\\n        -ms-flex-pack: center;\\n            justify-content: center;\\n    -webkit-box-align: center;\\n        -ms-flex-align: center;\\n            align-items: center;\\n    -webkit-box-pack: justify;\\n        -ms-flex-pack: justify;\\n            justify-content: space-between;\\n    pointer-events: auto;\\n    color: #424242; }\\n    c-player.cp-big .cp-progress-container > span {\\n      display: inline;\\n      margin: 0 1.25em;\\n      font-size: 0.8em; }\\n  c-player .cp-progress {\\n    overflow: hidden; }\\n    c-player .cp-progress .cp-progress-fill {\\n      display: block;\\n      height: 0.16667em;\\n      background: #F44336; }\\n    c-player .cp-progress .cp-progress-button {\\n      display: none; }\\n  c-player.cp-big .cp-progress {\\n    overflow: visible; }\\n  c-player .cp-poster {\\n    width: 4.16667em;\\n    height: 4.16667em;\\n    background-repeat: repeat;\\n    background-position: 50% 50%;\\n    background-size: cover;\\n    background-color: #fafafa;\\n    background-origin: padding-box;\\n    background-attachment: scroll;\\n    border-right: 0.08333em solid #eee;\\n    background-image: url(\"+n(1)+\");\\n    border-top-left-radius: 0.33333em;\\n    border-bottom-left-radius: 0.33333em;\\n    overflow: hidden; }\\n    c-player .cp-poster video {\\n      width: 100%;\\n      height: 100%; }\\n  c-player.cp-big .cp-poster {\\n    -ms-flex-preferred-size: 100%;\\n        flex-basis: 100%;\\n    width: 25em;\\n    height: 14.0625em;\\n    border-right: none;\\n    border-bottom: 0.08333em solid #eee;\\n    margin: 0;\\n    border-top-left-radius: 0.33333em;\\n    border-bottom-left-radius: 0;\\n    border-top-right-radius: 0.33333em;\\n    border-bottom-right-radius: 0; }\\n  c-player .cp-play-icon {\\n    width: 1.04167em;\\n    height: 1.04167em;\\n    display: block;\\n    overflow: hidden;\\n    position: relative; }\\n    c-player .cp-play-icon .cp-play-icon-left {\\n      height: 100%;\\n      float: left;\\n      background-color: #F44336;\\n      width: 36%;\\n      -webkit-transition: width 0.25s ease;\\n      transition: width 0.25s ease;\\n      overflow: hidden; }\\n    c-player .cp-play-icon .cp-play-icon-right {\\n      height: 100%;\\n      float: right;\\n      background-color: #F44336;\\n      width: 36%;\\n      -webkit-transition: width 0.25s ease;\\n      transition: width 0.25s ease;\\n      overflow: hidden; }\\n    c-player .cp-play-icon .cp-play-icon-triangle-1 {\\n      -webkit-transform: translate(0, -100%);\\n              transform: translate(0, -100%); }\\n    c-player .cp-play-icon .cp-play-icon-triangle-2 {\\n      -webkit-transform: translate(0, 100%);\\n              transform: translate(0, 100%); }\\n    c-player .cp-play-icon .cp-play-icon-triangle-1,\\n    c-player .cp-play-icon .cp-play-icon-triangle-2 {\\n      position: absolute;\\n      top: 0;\\n      right: 0;\\n      background-color: transparent;\\n      width: 0;\\n      height: 0;\\n      border-right: 1.04167em solid #fff;\\n      border-top: 0.52083em solid transparent;\\n      border-bottom: 0.52083em solid transparent;\\n      -webkit-transition: -webkit-transform 0.25s ease;\\n      transition: -webkit-transform 0.25s ease;\\n      transition: transform 0.25s ease;\\n      transition: transform 0.25s ease, -webkit-transform 0.25s ease; }\\n    c-player .cp-play-icon.cp-play-icon-paused .cp-play-icon-left {\\n      width: 50%; }\\n    c-player .cp-play-icon.cp-play-icon-paused .cp-play-icon-right {\\n      width: 50%; }\\n    c-player .cp-play-icon.cp-play-icon-paused .cp-play-icon-triangle-1 {\\n      -webkit-transform: translate(0, -50%);\\n              transform: translate(0, -50%); }\\n    c-player .cp-play-icon.cp-play-icon-paused .cp-play-icon-triangle-2 {\\n      -webkit-transform: translate(0, 50%);\\n              transform: translate(0, 50%); }\\n    c-player .cp-play-icon.cp-play-icon-hover .cp-play-icon-left, c-player .cp-play-button:hover .cp-play-icon-left {\\n      background-color: #B71C1C; }\\n    c-player .cp-play-icon.cp-play-icon-hover .cp-play-icon-right, c-player .cp-play-button:hover .cp-play-icon-right {\\n      background-color: #B71C1C; }\\n  c-player .cp-play-button,\\n  c-player .cp-volume-button,\\n  c-player .cp-prev-button,\\n  c-player .cp-list-button,\\n  c-player .cp-mode-button,\\n  c-player .cp-next-button {\\n    display: inline-block;\\n    width: 1.04167em;\\n    height: 1.04167em;\\n    cursor: pointer; }\\n  c-player .cp-volume-button {\\n    width: 1.66667em;\\n    position: relative; }\\n  c-player .cp-list-button {\\n    width: 1.45833em;\\n    height: 1.45833em; }\\n  c-player .cp-mode-button {\\n    width: 1.58333em;\\n    height: 1.58333em; }\\n  c-player .cp-play-button {\\n    height: 2.5em;\\n    width: 2.5em;\\n    border: #F44336 solid 1px;\\n    border-radius: 50%; }\\n    c-player .cp-play-button .cp-play-icon.cp-play-icon-paused {\\n      margin: 0.6875em; }\\n    c-player .cp-play-button .cp-play-icon {\\n      margin: 0.6875em; }\\n    c-player .cp-play-button:hover {\\n      border-color: #B71C1C; }\\n  c-player .cp-icon, c-player .cp-prev-icon, c-player .cp-next-icon, c-player .cp-volume-icon, c-player .cp-random-icon, c-player .cp-single-icon, c-player .cp-loop-icon, c-player .cp-list-icon {\\n    height: 1.04167em;\\n    width: 1.04167em; }\\n    c-player .cp-icon path, c-player .cp-prev-icon path, c-player .cp-next-icon path, c-player .cp-volume-icon path, c-player .cp-random-icon path, c-player .cp-single-icon path, c-player .cp-loop-icon path, c-player .cp-list-icon path {\\n      fill: #F44336; }\\n    c-player .cp-icon:hover path, c-player .cp-prev-icon:hover path, c-player .cp-next-icon:hover path, c-player .cp-volume-icon:hover path, c-player .cp-random-icon:hover path, c-player .cp-single-icon:hover path, c-player .cp-loop-icon:hover path, c-player .cp-list-icon:hover path {\\n      fill: #B71C1C; }\\n    c-player .cp-icon.cp-icon-dark path, c-player .cp-icon-dark.cp-prev-icon path, c-player .cp-icon-dark.cp-next-icon path, c-player .cp-icon-dark.cp-volume-icon path, c-player .cp-icon-dark.cp-random-icon path, c-player .cp-icon-dark.cp-single-icon path, c-player .cp-icon-dark.cp-loop-icon path, c-player .cp-icon-dark.cp-list-icon path {\\n      fill: #757575; }\\n    c-player .cp-icon.cp-icon-dark:hover path, c-player .cp-icon-dark.cp-prev-icon:hover path, c-player .cp-icon-dark.cp-next-icon:hover path, c-player .cp-icon-dark.cp-volume-icon:hover path, c-player .cp-icon-dark.cp-random-icon:hover path, c-player .cp-icon-dark.cp-single-icon:hover path, c-player .cp-icon-dark.cp-loop-icon:hover path, c-player .cp-icon-dark.cp-list-icon:hover path {\\n      fill: #616161; }\\n  c-player .cp-next-icon {\\n    -webkit-transform: rotateZ(180deg);\\n            transform: rotateZ(180deg); }\\n  c-player .cp-volume-icon {\\n    width: 1.66667em; }\\n  c-player .cp-random-icon,\\n  c-player .cp-single-icon,\\n  c-player .cp-loop-icon {\\n    width: 1.58333em;\\n    height: 1.58333em;\\n    display: none; }\\n  c-player .cp-mode-button[data-mode=listloop] .cp-loop-icon,\\n  c-player .cp-mode-button[data-mode=singlecycle] .cp-single-icon,\\n  c-player .cp-mode-button[data-mode=listrandom] .cp-random-icon {\\n    display: block; }\\n  c-player .cp-list-icon {\\n    width: 1.45833em;\\n    height: 1.45833em; }\\n  c-player .cp-volume-container {\\n    position: absolute;\\n    left: 50%;\\n    top: -7px;\\n    height: 2.08333em;\\n    width: 10.83333em;\\n    -webkit-transform: translateX(-50%) translateY(-120%);\\n            transform: translateX(-50%) translateY(-120%);\\n    z-index: 1;\\n    visibility: hidden;\\n    text-align: left;\\n    border-radius: 0.33333em;\\n    padding: 0 15px;\\n    background: #fff;\\n    -webkit-box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px;\\n            box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px; }\\n    c-player .cp-volume-container.cp-volume-container-show {\\n      visibility: visible; }\\n    c-player .cp-volume-container:hover {\\n      visibility: visible; }\\n    c-player .cp-volume-container:before {\\n      content: '';\\n      width: 0em;\\n      height: 0em;\\n      display: inline-block;\\n      border-top: 0.83333em solid #fff;\\n      border-left: 0.83333em solid transparent;\\n      border-right: 0.83333em solid transparent;\\n      position: absolute;\\n      bottom: 0em;\\n      left: 50%;\\n      -webkit-transform: translate(-50%, 100%);\\n              transform: translate(-50%, 100%); }\\n    c-player .cp-volume-container:after {\\n      content: '';\\n      width: 1.17851em;\\n      height: 1.17851em;\\n      display: inline-block;\\n      position: absolute;\\n      bottom: 0em;\\n      left: 50%;\\n      -webkit-transform: translate(-50%, 50%) rotate(45deg);\\n              transform: translate(-50%, 50%) rotate(45deg);\\n      -webkit-box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px;\\n              box-shadow: rgba(0, 0, 0, 0.117647) 0px 1px 6px, rgba(0, 0, 0, 0.117647) 0px 1px 4px; }\\n    c-player .cp-volume-container > div {\\n      width: 100%;\\n      height: 100%;\\n      background: #fff;\\n      border-radius: 0.33333em;\\n      position: relative;\\n      z-index: 1;\\n      display: -webkit-box;\\n      display: -ms-flexbox;\\n      display: flex;\\n      -webkit-box-pack: center;\\n          -ms-flex-pack: center;\\n              justify-content: center;\\n      -webkit-box-align: center;\\n          -ms-flex-align: center;\\n              align-items: center; }\\n  c-player.cp-big .cp-progress, c-player .cp-volume-controller, c-player.cp-dark.cp-big .cp-progress {\\n    display: inline-block;\\n    height: 0.33333em;\\n    width: 100%;\\n    border-radius: 0.16667em;\\n    background: #BDBDBD;\\n    line-height: 0;\\n    -ms-touch-action: none;\\n        touch-action: none;\\n    position: relative; }\\n    c-player.cp-big .cp-progress .cp-progress-fill, c-player .cp-volume-controller .cp-volume-fill, c-player.cp-dark.cp-big .cp-progress .cp-volume-controller .cp-volume-fill, c-player.cp-dark.cp-big .cp-volume-controller .cp-progress .cp-volume-fill, c-player.cp-dark.cp-big .cp-progress .cp-progress-fill {\\n      display: inline-block;\\n      height: 100%;\\n      width: 100%;\\n      border-radius: 0.16667em;\\n      background: #616161; }\\n    c-player.cp-big .cp-progress .cp-progress-button, c-player .cp-volume-controller .cp-volume-controller-button, c-player.cp-dark.cp-big .cp-progress .cp-volume-controller .cp-volume-controller-button, c-player.cp-dark.cp-big .cp-volume-controller .cp-progress .cp-volume-controller-button, c-player.cp-dark.cp-big .cp-progress .cp-progress-button {\\n      height: 1.25em;\\n      width: 1.25em;\\n      position: absolute;\\n      right: 0em;\\n      top: -0.45833em;\\n      display: inline-block;\\n      border-radius: 50%;\\n      border: 0.16667em solid #fff;\\n      background: #757575;\\n      -webkit-transform: translateX(50%);\\n              transform: translateX(50%); }\\n      c-player.cp-big .cp-progress .cp-progress-button:hover, c-player .cp-volume-controller .cp-volume-controller-button:hover {\\n        background: #616161; }\\n  c-player svg {\\n    vertical-align: top; }\\n  c-player *,\\n  c-player *::before,\\n  c-player *::after {\\n    -webkit-box-sizing: border-box;\\n            box-sizing: border-box; }\\n\\nc-player.cp-dark {\\n  color: #bbb; }\\n  c-player.cp-dark .cp-mainbody {\\n    background-color: #222; }\\n  c-player.cp-dark .cp-drop-down-menu {\\n    background-color: rgba(34, 34, 34, 0.9); }\\n  c-player.cp-dark .cp-playlist li .cp-play-icon {\\n    fill: rgba(189, 189, 189, 0.8); }\\n  c-player.cp-dark .cp-lyric-text {\\n    color: #bbb; }\\n    c-player.cp-dark .cp-lyric-text .cp-lyric-text-sub {\\n      color: #757575; }\\n  c-player.cp-dark .cp-progress .cp-progress-fill {\\n    background: #BDBDBD; }\\n  c-player.cp-dark .cp-poster {\\n    background-color: #333;\\n    border-right-color: #333; }\\n  c-player.cp-dark.cp-big .cp-poster {\\n    border-bottom-color: #333; }\\n  c-player.cp-dark.cp-big .cp-progress-container {\\n    color: #bbb; }\\n  c-player.cp-dark.cp-big .cp-progress {\\n    overflow: visible; }\\n  c-player.cp-dark .cp-play-icon .cp-play-icon-left {\\n    background-color: #a1a1a1; }\\n  c-player.cp-dark .cp-play-icon .cp-play-icon-right {\\n    background-color: #a1a1a1; }\\n  c-player.cp-dark .cp-play-icon .cp-play-icon-triangle-1,\\n  c-player.cp-dark .cp-play-icon .cp-play-icon-triangle-2 {\\n    border-right-color: #222; }\\n  c-player.cp-dark .cp-play-icon.cp-play-icon-hover .cp-play-icon-left, c-player.cp-dark .cp-play-button:hover .cp-play-icon-left {\\n    background-color: #BDBDBD; }\\n  c-player.cp-dark .cp-play-icon.cp-play-icon-hover .cp-play-icon-right, c-player.cp-dark .cp-play-button:hover .cp-play-icon-right {\\n    background-color: #BDBDBD; }\\n  c-player.cp-dark .cp-play-button {\\n    border-color: #a1a1a1; }\\n    c-player.cp-dark .cp-play-button:hover {\\n      border-color: #BDBDBD; }\\n  c-player.cp-dark .cp-icon path, c-player.cp-dark .cp-prev-icon path, c-player.cp-dark .cp-next-icon path, c-player.cp-dark .cp-volume-icon path, c-player.cp-dark .cp-random-icon path, c-player.cp-dark .cp-single-icon path, c-player.cp-dark .cp-loop-icon path, c-player.cp-dark .cp-list-icon path {\\n    fill: #a1a1a1; }\\n  c-player.cp-dark .cp-icon:hover path, c-player.cp-dark .cp-prev-icon:hover path, c-player.cp-dark .cp-next-icon:hover path, c-player.cp-dark .cp-volume-icon:hover path, c-player.cp-dark .cp-random-icon:hover path, c-player.cp-dark .cp-single-icon:hover path, c-player.cp-dark .cp-loop-icon:hover path, c-player.cp-dark .cp-list-icon:hover path {\\n    fill: #BDBDBD; }\\n  c-player.cp-dark .cp-icon.cp-icon-dark path, c-player.cp-dark .cp-icon-dark.cp-prev-icon path, c-player.cp-dark .cp-icon-dark.cp-next-icon path, c-player.cp-dark .cp-icon-dark.cp-volume-icon path, c-player.cp-dark .cp-icon-dark.cp-random-icon path, c-player.cp-dark .cp-icon-dark.cp-single-icon path, c-player.cp-dark .cp-icon-dark.cp-loop-icon path, c-player.cp-dark .cp-icon-dark.cp-list-icon path {\\n    fill: #757575; }\\n  c-player.cp-dark .cp-icon.cp-icon-dark:hover path, c-player.cp-dark .cp-icon-dark.cp-prev-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-next-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-volume-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-random-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-single-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-loop-icon:hover path, c-player.cp-dark .cp-icon-dark.cp-list-icon:hover path {\\n    fill: #616161; }\\n  c-player.cp-dark .cp-volume-container {\\n    background: #222; }\\n    c-player.cp-dark .cp-volume-container:before {\\n      border-top-color: #222; }\\n    c-player.cp-dark .cp-volume-container > div {\\n      background: #222; }\\n  c-player.cp-dark c-player.cp-big .cp-progress, c-player.cp-big c-player.cp-dark .cp-progress, c-player.cp-dark .cp-volume-controller, c-player.cp-dark.cp-big .cp-progress {\\n    background: #616161; }\\n    c-player.cp-dark c-player.cp-big .cp-progress .cp-progress-fill, c-player.cp-big c-player.cp-dark .cp-progress .cp-progress-fill, c-player.cp-big .cp-progress c-player.cp-dark .cp-volume-controller .cp-progress-fill, c-player.cp-dark .cp-volume-controller .cp-volume-fill, c-player.cp-dark.cp-big .cp-progress .cp-progress-fill {\\n      background: #BDBDBD; }\\n    c-player.cp-dark c-player.cp-big .cp-progress .cp-progress-button, c-player.cp-big c-player.cp-dark .cp-progress .cp-progress-button, c-player.cp-big .cp-progress c-player.cp-dark .cp-volume-controller .cp-progress-button, c-player.cp-dark .cp-volume-controller .cp-volume-controller-button, c-player.cp-dark.cp-big .cp-progress .cp-progress-button {\\n      border-color: #222;\\n      background: #757575; }\\n      c-player.cp-dark c-player.cp-big .cp-progress .cp-progress-button:hover, c-player.cp-big c-player.cp-dark .cp-progress .cp-progress-button:hover, c-player.cp-big .cp-progress c-player.cp-dark .cp-volume-controller .cp-progress-button:hover, c-player.cp-dark .cp-volume-controller .cp-volume-controller-button:hover, c-player.cp-dark.cp-big .cp-progress .cp-progress-button:hover {\\n        background: #BDBDBD; }\\n\",\"\"])},function(e,t){function n(e,t){var n=e[1]||\"\",o=e[3];if(!o)return n;if(t&&\"function\"==typeof btoa){var r=i(o);return[n].concat(o.sources.map(function(e){return\"/*# sourceURL=\"+o.sourceRoot+e+\" */\"})).concat([r]).join(\"\\n\")}return[n].join(\"\\n\")}function i(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=n(t,e);return t[2]?\"@media \"+t[2]+\"{\"+i+\"}\":i}).join(\"\")},t.i=function(e,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var i={},o=0;o<this.length;o++){var r=this[o][0];\"number\"==typeof r&&(i[r]=!0)}for(o=0;o<e.length;o++){var a=e[o];\"number\"==typeof a[0]&&i[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]=\"(\"+a[2]+\") and (\"+n+\")\"),t.push(a))}},t}}])});\n//# sourceMappingURL=cplayer.js.map"
  },
  {
    "path": "public/static/home/assets/css/editormd.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n@charset \"UTF-8\";\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n.editormd {\n  width: 90%;\n  height: 640px;\n  margin: 0 auto;\n  text-align: left;\n  overflow: hidden;\n  position: relative;\n  margin-bottom: 15px;\n  border: 1px solid #ddd;\n  font-family: \"Meiryo UI\", \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n}\n.editormd *, .editormd *:before, .editormd *:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.editormd a {\n  text-decoration: none;\n}\n.editormd img {\n  border: none;\n  vertical-align: middle;\n}\n.editormd > textarea,\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  width: 0;\n  height: 0;\n  outline: 0;\n  resize: none;\n}\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  display: none;\n}\n.editormd input[type=\"text\"],\n.editormd input[type=\"button\"],\n.editormd input[type=\"submit\"],\n.editormd select, .editormd textarea, .editormd button {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n}\n.editormd ::-webkit-scrollbar {\n  height: 10px;\n  width: 7px;\n  background: rgba(0, 0, 0, 0.1);\n}\n.editormd ::-webkit-scrollbar:hover {\n  background: rgba(0, 0, 0, 0.2);\n}\n.editormd ::-webkit-scrollbar-thumb {\n  background: rgba(0, 0, 0, 0.3);\n  -webkit-border-radius: 6px;\n  -moz-border-radius: 6px;\n  -ms-border-radius: 6px;\n  -o-border-radius: 6px;\n  border-radius: 6px;\n}\n.editormd ::-webkit-scrollbar-thumb:hover {\n  -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Webkit browsers */\n  -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Firefox */\n  -ms-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9 */\n  -o-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Opera(Old) */\n  box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9+, News */\n  background-color: rgba(0, 0, 0, 0.4);\n}\n\n.editormd-user-unselect {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-toolbar {\n  width: 100%;\n  min-height: 37px;\n  background: #fff;\n  display: none;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  border-bottom: 1px solid #ddd;\n}\n\n.editormd-toolbar-container {\n  padding: 0 8px;\n  min-height: 35px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-menu {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.editormd-menu > li {\n  margin: 0;\n  padding: 5px 1px;\n  display: inline-block;\n  position: relative;\n}\n.editormd-menu > li.divider {\n  display: inline-block;\n  text-indent: -9999px;\n  margin: 0 5px;\n  height: 65%;\n  border-right: 1px solid #ddd;\n}\n.editormd-menu > li > a {\n  outline: 0;\n  color: #666;\n  display: inline-block;\n  min-width: 24px;\n  font-size: 16px;\n  text-decoration: none;\n  text-align: center;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 1px solid #fff;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-menu > li > a:hover, .editormd-menu > li > a.active {\n  border: 1px solid #ddd;\n  background: #eee;\n}\n.editormd-menu > li > a > .fa {\n  text-align: center;\n  display: block;\n  padding: 5px;\n}\n.editormd-menu > li > a > .editormd-bold {\n  padding: 5px 2px;\n  display: inline-block;\n  font-weight: bold;\n}\n.editormd-menu > li:hover .editormd-dropdown-menu {\n  display: block;\n}\n.editormd-menu > li + li > a {\n  margin-left: 3px;\n}\n\n.editormd-dropdown-menu {\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  width: 148px;\n  list-style: none;\n  position: absolute;\n  top: 33px;\n  left: 0;\n  z-index: 100;\n  -webkit-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Webkit browsers */\n  -moz-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Firefox */\n  -ms-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9 */\n  -o-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Opera(Old) */\n  box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9+, News */\n}\n.editormd-dropdown-menu:before, .editormd-dropdown-menu:after {\n  width: 0;\n  height: 0;\n  display: block;\n  content: \"\";\n  position: absolute;\n  top: -11px;\n  left: 8px;\n  border: 5px solid transparent;\n}\n.editormd-dropdown-menu:before {\n  border-bottom-color: #ccc;\n}\n.editormd-dropdown-menu:after {\n  border-bottom-color: #ffffff;\n  top: -10px;\n}\n.editormd-dropdown-menu > li > a {\n  color: #666;\n  display: block;\n  text-decoration: none;\n  padding: 8px 10px;\n}\n.editormd-dropdown-menu > li > a:hover {\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dropdown-menu > li + li {\n  border-top: 1px solid #ddd;\n}\n\n.editormd-container {\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  padding: 35px 0 0;\n  position: relative;\n  background: #fff;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.editormd-dialog {\n  color: #666;\n  position: fixed;\n  z-index: 99999;\n  display: none;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Firefox */\n  -ms-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9 */\n  -o-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Opera(Old) */\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9+, News */\n  background: #fff;\n  font-size: 14px;\n}\n\n.editormd-dialog-container {\n  position: relative;\n  padding: 20px;\n  line-height: 1.4;\n}\n.editormd-dialog-container h1 {\n  font-size: 24px;\n  margin-bottom: 10px;\n}\n.editormd-dialog-container h1 .fa {\n  color: #2C7EEA;\n  padding-right: 5px;\n}\n.editormd-dialog-container h1 small {\n  padding-left: 5px;\n  font-weight: normal;\n  font-size: 12px;\n  color: #999;\n}\n.editormd-dialog-container select {\n  color: #999;\n  padding: 3px 8px;\n  border: 1px solid #ddd;\n}\n\n.editormd-dialog-close {\n  position: absolute;\n  top: 12px;\n  right: 15px;\n  font-size: 18px;\n  color: #ccc;\n  -webkit-transition: color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-close:hover {\n  color: #999;\n}\n\n.editormd-dialog-header {\n  padding: 11px 20px;\n  border-bottom: 1px solid #eee;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-header:hover {\n  background: #f6f6f6;\n}\n\n.editormd-dialog-title {\n  font-size: 14px;\n}\n\n.editormd-dialog-footer {\n  padding: 10px 0 0 0;\n  text-align: right;\n}\n\n.editormd-dialog-info {\n  width: 420px;\n}\n.editormd-dialog-info h1 {\n  font-weight: normal;\n}\n.editormd-dialog-info .editormd-dialog-container {\n  padding: 20px 25px 25px;\n}\n.editormd-dialog-info .editormd-dialog-close {\n  top: 10px;\n  right: 10px;\n}\n.editormd-dialog-info p > a, .editormd-dialog-info .hover-link:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info .hover-link {\n  color: #666;\n}\n.editormd-dialog-info a .fa-external-link {\n  display: none;\n}\n.editormd-dialog-info a:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info a:hover .fa-external-link {\n  display: inline-block;\n}\n\n.editormd-mask,\n.editormd-container-mask,\n.editormd-dialog-mask {\n  display: none;\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.editormd-mask,\n.editormd-dialog-mask-bg {\n  background: #fff;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.editormd-mask {\n  position: fixed;\n  background: #000;\n  opacity: 0.2;\n  /* W3C */\n  filter: alpha(opacity=20);\n  /* IE */\n  z-index: 99998;\n}\n\n.editormd-container-mask,\n.editormd-dialog-mask-con {\n  background: url(../images/loading.gif) no-repeat center center;\n  -webkit-background-size: 32px 32px;\n  /* Chrome, iOS, Safari */\n  -moz-background-size: 32px 32px;\n  /* Firefox 3.6~4.0 */\n  -o-background-size: 32px 32px;\n  /* Opera 9.5 */\n  background-size: 32px 32px;\n  /* IE9+, New */\n}\n\n.editormd-container-mask {\n  z-index: 20;\n  display: block;\n  background-color: #fff;\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@2x.gif);\n  }\n}\n@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@3x.gif);\n  }\n}\n.editormd-code-block-dialog textarea,\n.editormd-preformatted-text-dialog textarea {\n  width: 100%;\n  height: 400px;\n  margin-bottom: 6px;\n  overflow: auto;\n  border: 1px solid #eee;\n  background: #fff;\n  padding: 15px;\n  resize: none;\n}\n\n.editormd-code-toolbar {\n  color: #999;\n  font-size: 14px;\n  margin: -5px 0 10px;\n}\n\n.editormd-grid-table {\n  width: 99%;\n  display: table;\n  border: 1px solid #ddd;\n  border-collapse: collapse;\n}\n\n.editormd-grid-table-row {\n  width: 100%;\n  display: table-row;\n}\n.editormd-grid-table-row a {\n  font-size: 1.4em;\n  width: 5%;\n  height: 36px;\n  color: #999;\n  text-align: center;\n  display: table-cell;\n  vertical-align: middle;\n  border: 1px solid #ddd;\n  text-decoration: none;\n  -webkit-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-grid-table-row a.selected {\n  color: #666;\n  background-color: #eee;\n}\n.editormd-grid-table-row a:hover {\n  color: #777;\n  background-color: #f6f6f6;\n}\n\n.editormd-tab-head {\n  list-style: none;\n  border-bottom: 1px solid #ddd;\n}\n.editormd-tab-head li {\n  display: inline-block;\n}\n.editormd-tab-head li a {\n  color: #999;\n  display: block;\n  padding: 6px 12px 5px;\n  text-align: center;\n  text-decoration: none;\n  margin-bottom: -1px;\n  border: 1px solid #ddd;\n  -webkit-border-top-left-radius: 3px;\n  -moz-border-top-left-radius: 3px;\n  -ms-border-top-left-radius: 3px;\n  -o-border-top-left-radius: 3px;\n  border-top-left-radius: 3px;\n  -webkit-border-top-right-radius: 3px;\n  -moz-border-top-right-radius: 3px;\n  -ms-border-top-right-radius: 3px;\n  -o-border-top-right-radius: 3px;\n  border-top-right-radius: 3px;\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-tab-head li a:hover {\n  color: #666;\n  background: #eee;\n}\n.editormd-tab-head li.active a {\n  color: #666;\n  background: #fff;\n  border-bottom-color: #fff;\n}\n.editormd-tab-head li + li {\n  margin-left: 3px;\n}\n\n.editormd-tab-box {\n  padding: 20px 0;\n}\n\n.editormd-form {\n  color: #666;\n}\n.editormd-form label {\n  float: left;\n  display: block;\n  width: 75px;\n  text-align: left;\n  padding: 7px 0 15px 5px;\n  margin: 0 0 2px;\n  font-weight: normal;\n}\n.editormd-form br {\n  clear: both;\n}\n.editormd-form iframe {\n  display: none;\n}\n.editormd-form input:focus {\n  outline: 0;\n}\n.editormd-form input[type=\"text\"], .editormd-form input[type=\"number\"] {\n  color: #999;\n  padding: 8px;\n  border: 1px solid #ddd;\n}\n.editormd-form input[type=\"number\"] {\n  width: 40px;\n  display: inline-block;\n  padding: 6px 8px;\n}\n.editormd-form input[type=\"text\"] {\n  display: inline-block;\n  width: 264px;\n}\n.editormd-form .fa-btns {\n  display: inline-block;\n}\n.editormd-form .fa-btns a {\n  color: #999;\n  padding: 7px 10px 0 0;\n  display: inline-block;\n  text-decoration: none;\n  text-align: center;\n}\n.editormd-form .fa-btns .fa {\n  font-size: 1.3em;\n}\n.editormd-form .fa-btns label {\n  float: none;\n  display: inline-block;\n  width: auto;\n  text-align: left;\n  padding: 0 0 0 5px;\n  cursor: pointer;\n}\n\n.editormd-form input[type=\"submit\"], .editormd-form .editormd-btn, .editormd-form button,\n.editormd-dialog-container input[type=\"submit\"],\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-container button,\n.editormd-dialog-footer input[type=\"submit\"],\n.editormd-dialog-footer .editormd-btn,\n.editormd-dialog-footer button {\n  color: #666;\n  min-width: 75px;\n  cursor: pointer;\n  background: #fff;\n  padding: 7px 10px;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-form input[type=\"submit\"]:hover, .editormd-form .editormd-btn:hover, .editormd-form button:hover,\n.editormd-dialog-container input[type=\"submit\"]:hover,\n.editormd-dialog-container .editormd-btn:hover,\n.editormd-dialog-container button:hover,\n.editormd-dialog-footer input[type=\"submit\"]:hover,\n.editormd-dialog-footer .editormd-btn:hover,\n.editormd-dialog-footer button:hover {\n  background: #eee;\n}\n.editormd-form .editormd-btn,\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-footer .editormd-btn {\n  padding: 5px 8px 4px\\0;\n}\n.editormd-form .editormd-btn + .editormd-btn,\n.editormd-dialog-container .editormd-btn + .editormd-btn,\n.editormd-dialog-footer .editormd-btn + .editormd-btn {\n  margin-left: 8px;\n}\n\n.editormd-file-input {\n  width: 75px;\n  height: 32px;\n  margin-left: 8px;\n  position: relative;\n  display: inline-block;\n}\n.editormd-file-input input[type=\"file\"] {\n  width: 75px;\n  height: 32px;\n  opacity: 0;\n  cursor: pointer;\n  background: #000;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  right: 0;\n}\n.editormd-file-input input[type=\"file\"]::-webkit-file-upload-button {\n  visibility: hidden;\n}\n.editormd-file-input:hover input[type=\"submit\"] {\n  background: #eee;\n}\n\n.editormd .CodeMirror, .editormd-preview {\n  display: inline-block;\n  width: 50%;\n  height: 100%;\n  vertical-align: top;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  margin: 0;\n}\n\n.editormd-preview {\n  position: absolute;\n  top: 35px;\n  right: 0;\n  right: -1px\\0;\n  overflow: auto;\n  line-height: 1.6;\n  display: none;\n  background: #fff;\n}\n\n.editormd .CodeMirror {\n  z-index: 10;\n  float: left;\n  border-right: 1px solid #ddd;\n  font-size: 14px;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"微软雅黑\", \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", courier, monospace;\n  line-height: 1.6;\n  margin-top: 35px;\n}\n.editormd .CodeMirror pre {\n  font-size: 14px;\n  padding: 0 12px;\n}\n.editormd .CodeMirror-linenumbers {\n  padding: 0 5px;\n}\n.editormd .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror-focused .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror, .editormd .CodeMirror-scroll, .editormd .editormd-preview {\n  -webkit-overflow-scrolling: touch;\n}\n.editormd .styled-background {\n  background-color: #ff7;\n}\n.editormd .CodeMirror-focused .cm-matchhighlight {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);\n  background-position: bottom;\n  background-repeat: repeat-x;\n}\n.editormd .CodeMirror-empty.CodeMirror-focused {\n  outline: none;\n}\n.editormd .CodeMirror pre.CodeMirror-placeholder {\n  color: #999;\n}\n.editormd .cm-trailingspace {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n.editormd .cm-tab {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n  background-position: right;\n  background-repeat: no-repeat;\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url(\"../fonts/fontawesome-webfont.eot?v=4.3.0\");\n  src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.3.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.3.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.3.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.fa.pull-left {\n  margin-right: .3em;\n}\n\n.fa.pull-right {\n  margin-left: .3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.fa-stack-1x {\n  line-height: inherit;\n}\n\n.fa-stack-2x {\n  font-size: 2em;\n}\n\n.fa-inverse {\n  color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n\n.fa-music:before {\n  content: \"\\f001\";\n}\n\n.fa-search:before {\n  content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n\n.fa-heart:before {\n  content: \"\\f004\";\n}\n\n.fa-star:before {\n  content: \"\\f005\";\n}\n\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n\n.fa-user:before {\n  content: \"\\f007\";\n}\n\n.fa-film:before {\n  content: \"\\f008\";\n}\n\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n\n.fa-th:before {\n  content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n\n.fa-check:before {\n  content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n\n.fa-signal:before {\n  content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n\n.fa-home:before {\n  content: \"\\f015\";\n}\n\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n\n.fa-road:before {\n  content: \"\\f018\";\n}\n\n.fa-download:before {\n  content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n\n.fa-lock:before {\n  content: \"\\f023\";\n}\n\n.fa-flag:before {\n  content: \"\\f024\";\n}\n\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n\n.fa-book:before {\n  content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n\n.fa-print:before {\n  content: \"\\f02f\";\n}\n\n.fa-camera:before {\n  content: \"\\f030\";\n}\n\n.fa-font:before {\n  content: \"\\f031\";\n}\n\n.fa-bold:before {\n  content: \"\\f032\";\n}\n\n.fa-italic:before {\n  content: \"\\f033\";\n}\n\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n\n.fa-list:before {\n  content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n\n.fa-tint:before {\n  content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n\n.fa-play:before {\n  content: \"\\f04b\";\n}\n\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n\n.fa-eject:before {\n  content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n\n.fa-expand:before {\n  content: \"\\f065\";\n}\n\n.fa-compress:before {\n  content: \"\\f066\";\n}\n\n.fa-plus:before {\n  content: \"\\f067\";\n}\n\n.fa-minus:before {\n  content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n\n.fa-plane:before {\n  content: \"\\f072\";\n}\n\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n\n.fa-random:before {\n  content: \"\\f074\";\n}\n\n.fa-comment:before {\n  content: \"\\f075\";\n}\n\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n\n.fa-key:before {\n  content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n\n.fa-comments:before {\n  content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n\n.fa-upload:before {\n  content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n\n.fa-phone:before {\n  content: \"\\f095\";\n}\n\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n\n.fa-github:before {\n  content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n\n.fa-circle:before {\n  content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n\n.fa-code:before {\n  content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n\n.fa-crop:before {\n  content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n\n.fa-question:before {\n  content: \"\\f128\";\n}\n\n.fa-info:before {\n  content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n\n.fa-shield:before {\n  content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n\n.fa-file:before {\n  content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n\n.fa-xing:before {\n  content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n\n.fa-adn:before {\n  content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n\n.fa-apple:before {\n  content: \"\\f179\";\n}\n\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n\n.fa-android:before {\n  content: \"\\f17b\";\n}\n\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n\n.fa-trello:before {\n  content: \"\\f181\";\n}\n\n.fa-female:before {\n  content: \"\\f182\";\n}\n\n.fa-male:before {\n  content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n\n.fa-archive:before {\n  content: \"\\f187\";\n}\n\n.fa-bug:before {\n  content: \"\\f188\";\n}\n\n.fa-vk:before {\n  content: \"\\f189\";\n}\n\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n\n.fa-slack:before {\n  content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n\n.fa-history:before {\n  content: \"\\f1da\";\n}\n\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n\n.fa-bus:before {\n  content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n\n.fa-venus:before {\n  content: \"\\f221\";\n}\n\n.fa-mars:before {\n  content: \"\\f222\";\n}\n\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n\n.fa-server:before {\n  content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n\n.fa-train:before {\n  content: \"\\f238\";\n}\n\n.fa-subway:before {\n  content: \"\\f239\";\n}\n\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\"../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\"woff\");\n}\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body > *:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body > *:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li > p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote > :first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote > :last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0, 0, 0, 0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre > code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item + .task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked + .radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n\n.editormd-preview-container, .editormd-html-preview {\n  text-align: left;\n  font-size: 14px;\n  line-height: 1.6;\n  padding: 20px;\n  overflow: auto;\n  width: 100%;\n  background-color: #fff;\n}\n.editormd-preview-container blockquote, .editormd-html-preview blockquote {\n  color: #666;\n  border-left: 4px solid #ddd;\n  padding-left: 20px;\n  margin-left: 0;\n  font-size: 14px;\n  font-style: italic;\n}\n.editormd-preview-container p code, .editormd-html-preview p code {\n  margin-left: 5px;\n  margin-right: 4px;\n}\n.editormd-preview-container abbr, .editormd-html-preview abbr {\n  background: #ffffdd;\n}\n.editormd-preview-container hr, .editormd-html-preview hr {\n  height: 1px;\n  border: none;\n  border-top: 1px solid #ddd;\n  background: none;\n}\n.editormd-preview-container code, .editormd-html-preview code {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 3px;\n  border-radius: 3px;\n  font-size: 14px;\n}\n.editormd-preview-container pre, .editormd-html-preview pre {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 10px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n}\n.editormd-preview-container pre code, .editormd-html-preview pre code {\n  padding: 0;\n}\n.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n}\n.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {\n  background-color: #F8F8F8;\n}\n.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {\n  text-align: center;\n}\n.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {\n  margin: 0 5px;\n}\n.editormd-preview-container .emoji, .editormd-html-preview .emoji {\n  width: 24px;\n  height: 24px;\n}\n.editormd-preview-container .katex, .editormd-html-preview .katex {\n  font-size: 1.4em;\n}\n.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {\n  margin: 0 auto;\n  text-align: center;\n}\n.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {\n  margin: 0 auto;\n}\n.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {\n  font-size: 15px !important;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n}\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n  color: #000;\n}\n\n/* plain text */\n@media screen {\n  .str {\n    color: #080;\n  }\n\n  /* string content */\n  .kwd {\n    color: #008;\n  }\n\n  /* a keyword */\n  .com {\n    color: #800;\n  }\n\n  /* a comment */\n  .typ {\n    color: #606;\n  }\n\n  /* a type name */\n  .lit {\n    color: #066;\n  }\n\n  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo {\n    color: #660;\n  }\n\n  .tag {\n    color: #008;\n  }\n\n  /* a markup tag name */\n  .atn {\n    color: #606;\n  }\n\n  /* a markup attribute name */\n  .atv {\n    color: #080;\n  }\n\n  /* a markup attribute value */\n  .dec, .var {\n    color: #606;\n  }\n\n  /* a declaration; a variable name */\n  .fun {\n    color: red;\n  }\n\n  /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060;\n  }\n\n  .kwd {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .com {\n    color: #600;\n    font-style: italic;\n  }\n\n  .typ {\n    color: #404;\n    font-weight: bold;\n  }\n\n  .lit {\n    color: #044;\n  }\n\n  .pun, .opn, .clo {\n    color: #440;\n  }\n\n  .tag {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .atn {\n    color: #404;\n  }\n\n  .atv {\n    color: #060;\n  }\n}\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint {\n  padding: 2px;\n  border: 1px solid #888;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n  list-style-type: none;\n}\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  background: #eee;\n}\n\n.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {\n  padding: 10px;\n  border: 1px solid #ddd;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {\n  color: #999;\n  padding-left: 2.5em;\n}\n.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {\n  list-style-type: decimal;\n}\n.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {\n  border: none;\n  background: none;\n  padding: 0;\n}\n\n.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {\n  margin: 8px 0 12px 0;\n  display: inline-block;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {\n  position: relative;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  display: inline-block;\n  font-size: 1em;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {\n  width: 160%;\n  min-width: 180px;\n  position: absolute;\n  left: -1px;\n  top: -2px;\n  z-index: 100;\n  padding: 0 10px 10px;\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {\n  width: 100%;\n  min-width: 180px;\n  border: 1px solid #ddd;\n  display: none;\n  background: #fff;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {\n  color: #666;\n  padding: 6px 10px;\n  display: block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {\n  position: relative;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {\n  position: absolute;\n  top: 32px;\n  left: 10%;\n  display: none;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  pointer-events: pointer-events;\n  position: absolute;\n  left: 15px;\n  top: -6px;\n  display: block;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border: 6px solid transparent;\n  border-width: 0 6px 6px;\n  z-index: 10;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {\n  border-bottom-color: #ccc;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  border-bottom-color: #ffffff;\n  top: -5px;\n}\n.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {\n  list-style: none;\n}\n.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {\n  text-decoration: none;\n}\n.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {\n  font-size: 16px;\n  padding: 5px 0 10px 10px;\n  line-height: 1;\n  border-bottom: 1px solid #eee;\n}\n.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {\n  padding-left: 10px;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {\n  color: #666;\n  min-width: 180px;\n  padding: 5px 10px;\n  border-radius: 4px;\n  display: inline-block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {\n  float: right;\n  padding: 3px 0 0 10px;\n  font-size: 1.3em;\n}\n\n.markdown-body .editormd-toc-menu ul {\n  padding-left: 0;\n}\n.markdown-body .highlight pre, .markdown-body pre {\n  line-height: 1.6;\n}\n\nhr.editormd-page-break {\n  border: 1px dotted #ccc;\n  font-size: 0;\n  height: 2px;\n}\n\n@media only print {\n  hr.editormd-page-break {\n    background: none;\n    border: none;\n    height: 0;\n  }\n}\n.editormd-html-preview textarea {\n  display: none;\n}\n.editormd-html-preview hr.editormd-page-break {\n  background: none;\n  border: none;\n  height: 0;\n}\n\n.editormd-preview-close-btn {\n  color: #fff;\n  padding: 4px 6px;\n  font-size: 18px;\n  -webkit-border-radius: 500px;\n  -moz-border-radius: 500px;\n  -ms-border-radius: 500px;\n  -o-border-radius: 500px;\n  border-radius: 500px;\n  display: none;\n  background-color: #ccc;\n  position: absolute;\n  top: 25px;\n  right: 35px;\n  z-index: 19;\n  -webkit-transition: background-color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-close-btn:hover {\n  background-color: #999;\n}\n\n.editormd-preview-active {\n  width: 100%;\n  padding: 40px;\n}\n\n/* Preview dark theme */\n.editormd-preview-theme-dark {\n  color: #777;\n  background: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container {\n  color: #888;\n  background-color: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container blockquote {\n  color: #555;\n  padding: 0.5em;\n  background: #222;\n  border-color: #333;\n}\n.editormd-preview-theme-dark .editormd-preview-container abbr {\n  color: #fff;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #ff9900;\n}\n.editormd-preview-theme-dark .editormd-preview-container code {\n  color: #fff;\n  border: none;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #5A9600;\n}\n.editormd-preview-theme-dark .editormd-preview-container table {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container .fa-emoji {\n  color: #B4BF42;\n}\n.editormd-preview-theme-dark .editormd-preview-container .katex {\n  color: #FEC93F;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc {\n  background: #fff;\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc h1 {\n  border-color: #ddd;\n}\n.editormd-preview-theme-dark .markdown-body h1, .editormd-preview-theme-dark .markdown-body h2, .editormd-preview-theme-dark .markdown-body hr {\n  border-color: #222;\n}\n.editormd-preview-theme-dark pre {\n  color: #999;\n  background-color: #111;\n  background-color: rgba(0, 0, 0, 0.4);\n  /* plain text */\n}\n.editormd-preview-theme-dark pre .pln {\n  color: #999;\n}\n.editormd-preview-theme-dark li.L1, .editormd-preview-theme-dark li.L3, .editormd-preview-theme-dark li.L5, .editormd-preview-theme-dark li.L7, .editormd-preview-theme-dark li.L9 {\n  background: none;\n}\n.editormd-preview-theme-dark [class*=editormd-logo] {\n  color: #2196F3;\n}\n.editormd-preview-theme-dark .sequence-diagram text {\n  fill: #fff;\n}\n.editormd-preview-theme-dark .sequence-diagram rect, .editormd-preview-theme-dark .sequence-diagram path {\n  color: #fff;\n  fill: #64D1CB;\n  stroke: #64D1CB;\n}\n.editormd-preview-theme-dark .flowchart rect, .editormd-preview-theme-dark .flowchart path {\n  stroke: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart rect {\n  fill: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart text {\n  fill: #5879B4;\n}\n\n@media screen {\n  .editormd-preview-theme-dark {\n    /* string content */\n    /* a keyword */\n    /* a comment */\n    /* a type name */\n    /* a literal value */\n    /* punctuation, lisp open bracket, lisp close bracket */\n    /* a markup tag name */\n    /* a markup attribute name */\n    /* a markup attribute value */\n    /* a declaration; a variable name */\n    /* a function name */\n  }\n  .editormd-preview-theme-dark .str {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .kwd {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .com {\n    color: #444444;\n  }\n  .editormd-preview-theme-dark .typ {\n    color: #606;\n  }\n  .editormd-preview-theme-dark .lit {\n    color: #066;\n  }\n  .editormd-preview-theme-dark .pun, .editormd-preview-theme-dark .opn, .editormd-preview-theme-dark .clo {\n    color: #660;\n  }\n  .editormd-preview-theme-dark .tag {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .atn {\n    color: #6C95F5;\n  }\n  .editormd-preview-theme-dark .atv {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .dec, .editormd-preview-theme-dark .var {\n    color: #008BA7;\n  }\n  .editormd-preview-theme-dark .fun {\n    color: red;\n  }\n}\n.editormd-onlyread .editormd-toolbar {\n  display: none;\n}\n.editormd-onlyread .CodeMirror {\n  margin-top: 0;\n}\n.editormd-onlyread .editormd-preview {\n  top: 0;\n}\n\n.editormd-fullscreen {\n  position: fixed;\n  top: 0;\n  left: 0;\n  border: none;\n  margin: 0 auto;\n}\n\n/* Editor.md Dark theme */\n.editormd-theme-dark {\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-toolbar {\n  background: #1A1A17;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a {\n  color: #777;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a:hover, .editormd-theme-dark .editormd-menu > li > a.active {\n  border-color: #333;\n  background: #333;\n}\n.editormd-theme-dark .editormd-menu > li.divider {\n  border-right: 1px solid #111;\n}\n.editormd-theme-dark .CodeMirror {\n  border-right: 1px solid rgba(0, 0, 0, 0.1);\n}\n"
  },
  {
    "path": "public/static/home/assets/css/fonts-googleapis.css",
    "content": "/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
  },
  {
    "path": "public/static/home/assets/css/google-fonts/fonts-googleapis.css",
    "content": "/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(./JTURjIg1_i6t8kCHKm45_aZA3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(./JTURjIg1_i6t8kCHKm45_aZA3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(./JTURjIg1_i6t8kCHKm45_aZA3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(./JTURjIg1_i6t8kCHKm45_aZA3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(./JTURjIg1_i6t8kCHKm45_aZA3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(./JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(./JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(./JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(./JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(./JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(./JTURjIg1_i6t8kCHKm45_dJE3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(./JTURjIg1_i6t8kCHKm45_dJE3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(./JTURjIg1_i6t8kCHKm45_dJE3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(./JTURjIg1_i6t8kCHKm45_dJE3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(./JTURjIg1_i6t8kCHKm45_dJE3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
  },
  {
    "path": "public/static/home/assets/css/my_settings.css",
    "content": "::-webkit-scrollbar {\n    /*隐藏滚轮*/\n    display: none;\n}\n\n.bd-callout-info {}\n\n.bd-callout {\n    padding: 1.25rem;\n    margin-top: 1.25rem;\n    margin-bottom: 1.25rem;\n    border: 1px solid #eee;\n    border-left-width: .25rem;\n    border-radius: .25rem;\n    text-align: left;\n    border-left-color: #5bc0de;\n}\n\n.bd-callout-info h4 {\n    color: #5bc0de;\n}\n\n.bd-callout h4 {\n    margin-top: 0;\n    margin-bottom: .25rem;\n}\n\n.bd-callout p:last-child {\n    margin-bottom: 0;\n}\n\n.video-img {\n    height: 220px;\n    background-position: 50%;\n    background-size: cover;\n    text-align: center;\n    border-radius: 12px 12px 0 0;\n}\n\n.photo-img {\n    height: 160px;\n    background-position: 50%;\n    background-size: cover;\n    text-align: center;\n    border-radius: 12px 12px 0 0;\n}\n.sentence {\n    margin-bottom: 20px;\n    position: relative;\n    padding: 30px 10px 10px 10px;\n    border: 1px solid #EEE;\n    cursor: default;\n}\n\n.sentence strong {\n    background: #3399CC;\n    color: #FFF;\n    font-size: 14px;\n    font-weight: 100;\n    padding: 5px 10px;\n    position: absolute;\n    left: 0;\n    top: 0;\n}\n\n.sentence h2 {\n    color: #3399CC;\n    font-size: 20px;\n    margin: 10px 0px;\n}\n\n.sidebar .sentence p {\n    font-size: 12px;\n    color: #AAA;\n}\n\n.subscribe-line {\n    background-color: #fffcf5;\n    padding: 35px 0;\n    background-position: 50%;\n    background-size: cover;\n    background-attachment: fixed;\n    margin-top: 0;\n}\n\n/*pjax 动画*/\n.loading {\n    display:none\n}\n.loading{height:100%;width:100%;position:fixed;top:0;left:0;z-index:999999;background-color:rgba(250,250,250,.9)}\n.loading img{width: 280px;height:210px;position: relative;top: 45%;left: 50%;margin-left:-140px;margin-top: -105px;}\n#loader{display: block; position: relative; left: 50%; top: 50%; width: 150px; height: 150px; margin: -75px 0 0 -75px; border-radius: 50%; border: 3px solid transparent; border-top-color: #ff5a5a; -webkit-animation: spin 1s linear infinite; animation: spin 1s linear infinite;}\n#loader:before{content: \"\"; position: absolute; top: 5px; left: 5px; right: 5px; bottom: 5px; border-radius: 50%; border: 3px solid transparent; border-top-color: #5af33f; -webkit-animation: spin 3s linear infinite; animation: spin 3s linear infinite;}\n#loader:after{content: \"\"; position: absolute; top: 15px; left: 15px; right: 15px; bottom: 15px; border-radius: 50%; border: 3px solid transparent; border-top-color: #6dc9ff; -webkit-animation: spin 2s linear infinite; animation: spin 2s linear infinite;}\n@-webkit-keyframes spin{0%{-webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);} 100%{-webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg);}}\n@keyframes spin{0%{-webkit-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg);} 100%{-webkit-transform: rotate(360deg); -ms-transform: rotate(360deg); transform: rotate(360deg);}}"
  },
  {
    "path": "public/static/home/assets/css/paper-kit.css",
    "content": "/*!\n\n =========================================================\n * Paper Kit - v2.2.0\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/paper-kit-2\n * Copyright 2019 Creative Tim (http://www.creative-tim.com)\n\n * Designed by www.invisionapp.com Coded by www.creative-tim.com\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n/*      light colors - used for select dropdown         */\n\n/* ========================================================================\n * bootstrap-switch - v3.3.2\n * http://www.bootstrap-switch.org\n * ========================================================================\n * Copyright 2012-2013 Mattia Larentis\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\n.bootstrap-switch {\n  display: inline-block;\n  direction: ltr;\n  cursor: pointer;\n  border-radius: 30px;\n  border: 0;\n  position: relative;\n  text-align: left;\n  overflow: hidden;\n  margin-bottom: 5px;\n  line-height: 8px;\n  width: 61px !important;\n  height: 26px;\n  outline: none;\n  z-index: 0;\n  margin-right: 1px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  vertical-align: middle;\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n\n.bootstrap-switch .bootstrap-switch-container {\n  display: inline-flex;\n  top: 0;\n  height: 26px;\n  border-radius: 4px;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n  width: 100px !important;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off,\n.bootstrap-switch .bootstrap-switch-label {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  cursor: pointer;\n  display: inline-block !important;\n  height: 100%;\n  color: #fff;\n  padding: 6px 12px;\n  font-size: 11px;\n  text-indent: -5px;\n  line-height: 15px;\n  -webkit-transition: 0.25s ease-out;\n  transition: 0.25s ease-out;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on i,\n.bootstrap-switch .bootstrap-switch-handle-off i,\n.bootstrap-switch .bootstrap-switch-label i {\n  font-size: 12px;\n  line-height: 14px;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on,\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-align: center;\n  z-index: 1;\n  float: left;\n  width: 50% !important;\n  background-color: #66615B;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n  color: #fff;\n  background: #51cbce;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n  color: #fff;\n  background: #51bcda;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n  color: #fff;\n  background: #6bd098;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n  background: #fbc658;\n  color: #fff;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n  color: #fff;\n  background: #f5593d;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n  color: #fff;\n  background: #66615B;\n}\n\n.bootstrap-switch .bootstrap-switch-label {\n  text-align: center;\n  z-index: 100;\n  color: #333333;\n  background: #ffffff;\n  width: 22px !important;\n  height: 22px;\n  margin: 2px -11px;\n  border-radius: 12px;\n  position: relative;\n  float: left;\n  padding: 0;\n  background-color: #FFFFFF;\n  box-shadow: 0 1px 1px #FFFFFF inset, 0 1px 1px rgba(0, 0, 0, 0.25);\n}\n\n.bootstrap-switch .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n\n.bootstrap-switch .bootstrap-switch-handle-off {\n  text-indent: 6px;\n}\n\n.bootstrap-switch input[type='radio'],\n.bootstrap-switch input[type='checkbox'] {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  z-index: -1;\n}\n\n.bootstrap-switch input[type='radio'].form-control,\n.bootstrap-switch input[type='checkbox'].form-control {\n  height: auto;\n}\n\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n  padding: 6px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled,\n.bootstrap-switch.bootstrap-switch-readonly,\n.bootstrap-switch.bootstrap-switch-indeterminate {\n  cursor: default !important;\n}\n\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n\n.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n  -webkit-transition: margin-left 0.5s;\n  transition: margin-left 0.5s;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n\n.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container {\n  margin-left: -2px !important;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container {\n  margin-left: -37px !important;\n}\n\n.bootstrap-switch.bootstrap-switch-on:hover .bootstrap-switch-label {\n  width: 26px !important;\n  margin: 2px -15px;\n}\n\n.bootstrap-switch.bootstrap-switch-off:hover .bootstrap-switch-label {\n  width: 26px !important;\n  margin: 2px -15px -13px -11px;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-handle-off {\n  background-color: #66615B;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-handle-on {\n  background-color: #cfcfca;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-danger {\n  background-color: #f5593d;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-warning {\n  background-color: #fbc658;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-success {\n  background-color: #6bd098;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-primary {\n  background-color: #51cbce;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-info {\n  background-color: #51bcda;\n}\n\n.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-default {\n  background-color: #66615B;\n}\n\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-danger,\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-primary,\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-info,\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-warning,\n.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-success {\n  background-color: #cfcfca;\n}\n\n/* Functional styling;\n * These styles are required for noUiSlider to function.\n * You don't need to change these rules to apply your design.\n */\n\n.noUi-target,\n.noUi-target * {\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -ms-touch-action: none;\n  touch-action: none;\n  -ms-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.noUi-target {\n  position: relative;\n  direction: ltr;\n}\n\n.noUi-base {\n  width: 100%;\n  height: 100%;\n  position: relative;\n  z-index: 1;\n  /* Fix 401 */\n}\n\n.noUi-connect {\n  position: absolute;\n  right: 0;\n  top: 0;\n  left: 0;\n  bottom: 0;\n}\n\n.noUi-origin {\n  position: absolute;\n  height: 0;\n  width: 0;\n  margin: 0;\n  border-radius: 0;\n  height: 2px;\n  background: #c8c8c8;\n}\n\n.noUi-origin[style^=\"left: 0\"] .noUi-handle {\n  background-color: #fff;\n  border: 2px solid #c8c8c8;\n}\n\n.noUi-origin[style^=\"left: 0\"] .noUi-handle.noUi-active {\n  border-width: 1px;\n}\n\n.noUi-handle {\n  position: relative;\n  z-index: 1;\n}\n\n.noUi-state-tap .noUi-connect,\n.noUi-state-tap .noUi-origin {\n  -webkit-transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n  transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n}\n\n.noUi-state-drag * {\n  cursor: inherit !important;\n}\n\n/* Painting and performance;\n * Browsers can paint handles in their own layer.\n */\n\n.noUi-base,\n.noUi-handle {\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n/* Slider size and handle placement;\n */\n\n.noUi-horizontal {\n  height: 2px;\n  margin: 15px 0;\n}\n\n.noUi-vertical {\n  width: 18px;\n}\n\n.noUi-vertical .noUi-handle {\n  width: 28px;\n  height: 34px;\n  left: -6px;\n  top: -17px;\n}\n\n/* Styling;\n */\n\n.noUi-target {\n  background: #c8c8c8;\n  border-radius: 4px;\n}\n\n.noUi-connect {\n  background: #3FB8AF;\n  -webkit-transition: background 450ms;\n  transition: background 450ms;\n}\n\n/* Handles and cursors;\n */\n\n.noUi-draggable {\n  cursor: w-resize;\n}\n\n.noUi-vertical .noUi-draggable {\n  cursor: n-resize;\n}\n\n.noUi-handle {\n  box-sizing: border-box;\n  width: 14px;\n  height: 14px;\n  left: -10px;\n  top: -6px;\n  cursor: pointer;\n  border-radius: 100%;\n  transition: all 0.2s ease-out;\n  border: 1px solid;\n  background: #FFFFFF;\n}\n\n.noUi-handle.noUi-active {\n  transform: scale3d(1.5, 1.5, 1);\n}\n\n.noUi-vertical .noUi-handle:before,\n.noUi-vertical .noUi-handle:after {\n  width: 14px;\n  height: 1px;\n  left: 6px;\n  top: 14px;\n}\n\n.noUi-vertical .noUi-handle:after {\n  top: 17px;\n}\n\n/* Disabled state;\n */\n\n[disabled] .noUi-connect {\n  background: #B8B8B8;\n}\n\n[disabled].noUi-target,\n[disabled].noUi-handle,\n[disabled] .noUi-handle {\n  cursor: not-allowed;\n}\n\n.slider {\n  background: #c8c8c8;\n}\n\n.slider .noUi-connect {\n  background-color: #51cbce;\n  border-radius: 4px;\n}\n\n.slider .noUi-handle {\n  border-color: #51cbce;\n}\n\n.slider.slider-info .noUi-connect {\n  background-color: #51bcda;\n}\n\n.slider.slider-info .noUi-handle {\n  border-color: #51bcda;\n}\n\n.slider.slider-success .noUi-connect {\n  background-color: #6bd098;\n}\n\n.slider.slider-success .noUi-handle {\n  border-color: #6bd098;\n}\n\n.slider.slider-warning .noUi-connect {\n  background-color: #fbc658;\n}\n\n.slider.slider-warning .noUi-handle {\n  border-color: #fbc658;\n}\n\n.slider.slider-danger .noUi-connect {\n  background-color: #f5593d;\n}\n\n.slider.slider-danger .noUi-handle {\n  border-color: #f5593d;\n}\n\n/*!\n * Datetimepicker for Bootstrap 3\n * ! version : 4.7.14\n * https://github.com/Eonasdan/bootstrap-datetimepicker/\n */\n\n.sr-only,\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"showHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"showMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"togglePeriod\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"clear\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"today\"]::after,\n.bootstrap-datetimepicker-widget .picker-switch::after,\n.bootstrap-datetimepicker-widget table th.prev::after,\n.bootstrap-datetimepicker-widget table th.next::after {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n.bootstrap-datetimepicker-widget {\n  list-style: none;\n}\n\n.bootstrap-datetimepicker-widget a .btn:hover {\n  background-color: transparent;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu {\n  padding: 4px;\n  width: 16em;\n}\n\n@media (min-width: 768px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n\n@media (min-width: 992px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n\n@media (min-width: 1200px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {\n  border-bottom: 11px solid #F1EAE0;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  left: auto;\n  top: -12px;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {\n  border-bottom: 11px solid #FFFFFF;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  left: auto;\n  top: -11px;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.top {\n  margin-top: auto;\n  margin-bottom: -20px;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.top.open {\n  margin-top: auto;\n  margin-bottom: 5px;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {\n  left: auto;\n  right: 6px;\n}\n\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {\n  left: auto;\n  right: 7px;\n}\n\n.bootstrap-datetimepicker-widget .list-unstyled {\n  margin: 0;\n}\n\n.bootstrap-datetimepicker-widget a[data-action] {\n  padding: 6px 0;\n  border-width: 0;\n  color: #66615B;\n  background-color: transparent;\n}\n\n.bootstrap-datetimepicker-widget a[data-action=\"togglePicker\"],\n.bootstrap-datetimepicker-widget a[data-action=\"togglePicker\"]:hover {\n  color: #429cb6 !important;\n}\n\n.bootstrap-datetimepicker-widget a[data-action]:hover {\n  background-color: transparent;\n  color: rgba(255, 255, 255, 0.85);\n}\n\n.bootstrap-datetimepicker-widget a[data-action]:active {\n  box-shadow: none;\n}\n\n.bootstrap-datetimepicker-widget .timepicker-hour,\n.bootstrap-datetimepicker-widget .timepicker-minute,\n.bootstrap-datetimepicker-widget .timepicker-second {\n  width: 40px;\n  height: 40px;\n  line-height: 40px;\n  font-weight: 300;\n  font-size: 1.5em;\n  margin: 3px;\n  border-radius: 50%;\n}\n\n.bootstrap-datetimepicker-widget button[data-action] {\n  width: 38px;\n  height: 38px;\n  padding: 0;\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementHours\"]::after {\n  content: \"Increment Hours\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementMinutes\"]::after {\n  content: \"Increment Minutes\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementHours\"]::after {\n  content: \"Decrement Hours\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementMinutes\"]::after {\n  content: \"Decrement Minutes\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"showHours\"]::after {\n  content: \"Show Hours\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"showMinutes\"]::after {\n  content: \"Show Minutes\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"togglePeriod\"]::after {\n  content: \"Toggle AM/PM\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"clear\"]::after {\n  content: \"Clear the picker\";\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"today\"]::after {\n  content: \"Set the date to today\";\n}\n\n.bootstrap-datetimepicker-widget .picker-switch {\n  text-align: center;\n  border-radius: 4px;\n}\n\n.bootstrap-datetimepicker-widget .picker-switch::after {\n  content: \"Toggle Date and Time Screens\";\n}\n\n.bootstrap-datetimepicker-widget .picker-switch td {\n  padding: 0;\n  margin: 0;\n  height: auto;\n  width: auto;\n  line-height: inherit;\n}\n\n.bootstrap-datetimepicker-widget .picker-switch td span {\n  line-height: 2.5;\n  height: 2.5em;\n  width: 100%;\n  border-radius: 4px;\n  margin: 2px 0px !important;\n}\n\n.bootstrap-datetimepicker-widget table {\n  width: 100%;\n  margin: 0;\n}\n\n.bootstrap-datetimepicker-widget table td>div,\n.bootstrap-datetimepicker-widget table th>div {\n  text-align: center;\n}\n\n.bootstrap-datetimepicker-widget table th {\n  height: 20px;\n  line-height: 20px;\n  width: 20px;\n}\n\n.bootstrap-datetimepicker-widget table th.picker-switch {\n  width: 145px;\n}\n\n.bootstrap-datetimepicker-widget table th.disabled,\n.bootstrap-datetimepicker-widget table th.disabled:hover {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n\n.bootstrap-datetimepicker-widget table th.prev span,\n.bootstrap-datetimepicker-widget table th.next span {\n  border-radius: 4px;\n  height: 27px;\n  width: 27px;\n  line-height: 28px;\n  font-size: 12px;\n  border-radius: 50%;\n  text-align: center;\n}\n\n.bootstrap-datetimepicker-widget table th.prev::after {\n  content: \"Previous Month\";\n}\n\n.bootstrap-datetimepicker-widget table th.next::after {\n  content: \"Next Month\";\n}\n\n.bootstrap-datetimepicker-widget table th.dow {\n  text-align: center;\n  border-bottom: 1px solid #E3E3E3;\n  font-size: 12px;\n  text-transform: uppercase;\n  color: #9A9A9A;\n  font-weight: 400;\n  padding-bottom: 5px;\n  padding-top: 10px;\n}\n\n.bootstrap-datetimepicker-widget table thead tr:first-child th {\n  cursor: pointer;\n}\n\n.bootstrap-datetimepicker-widget table thead tr:first-child th:hover span,\n.bootstrap-datetimepicker-widget table thead tr:first-child th.picker-switch:hover {\n  background: #E3E3E3;\n}\n\n.bootstrap-datetimepicker-widget table td>div {\n  border-radius: 4px;\n  height: 54px;\n  line-height: 54px;\n  width: 54px;\n  text-align: center;\n}\n\n.bootstrap-datetimepicker-widget table td.cw>div {\n  font-size: .8em;\n  height: 20px;\n  line-height: 20px;\n  color: #cfcfca;\n}\n\n.bootstrap-datetimepicker-widget table td.day>div {\n  height: 30px;\n  line-height: 31px;\n  width: 30px;\n  text-align: center;\n  padding: 0px;\n  border-radius: 50%;\n  margin: 0 auto;\n  z-index: -1;\n  position: relative;\n}\n\n.table-condensed .day:hover div {\n  -webkit-transition: all 150ms linear;\n  -moz-transition: all 150ms linear;\n  -o-transition: all 150ms linear;\n  -ms-transition: all 150ms linear;\n  transition: all 150ms linear;\n}\n\n.bootstrap-datetimepicker-widget table td.minute>div,\n.bootstrap-datetimepicker-widget table td.hour>div {\n  border-radius: 50%;\n}\n\n.bootstrap-datetimepicker-widget table td.day:hover>div,\n.bootstrap-datetimepicker-widget table td.hour:hover>div,\n.bootstrap-datetimepicker-widget table td.minute:hover>div,\n.bootstrap-datetimepicker-widget table td.second:hover>div {\n  background: #E3E3E3;\n  cursor: pointer;\n}\n\n.bootstrap-datetimepicker-widget table td.old>div,\n.bootstrap-datetimepicker-widget table td.new>div {\n  color: #cfcfca;\n}\n\n.bootstrap-datetimepicker-widget table td.active>div,\n.bootstrap-datetimepicker-widget table td.active:hover>div {\n  background-color: #68B3C8;\n  color: #FFFFFF;\n}\n\n.bootstrap-datetimepicker-widget table td.active.today:before>div {\n  border-bottom-color: #FFFFFF;\n}\n\n.bootstrap-datetimepicker-widget table td.disabled>div,\n.bootstrap-datetimepicker-widget table td.disabled:hover>div {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n\n.bootstrap-datetimepicker-widget table td span {\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  line-height: 40px;\n  margin: 3px 3px;\n  cursor: pointer;\n  border-radius: 50%;\n  text-align: center;\n}\n\n.bootstrap-datetimepicker-widget table td span:hover {\n  background: #E3E3E3;\n}\n\n.bootstrap-datetimepicker-widget table td span.active {\n  background-color: #68B3C8;\n  color: #FFFFFF;\n}\n\n.bootstrap-datetimepicker-widget table td span.old {\n  color: #cfcfca;\n}\n\n.bootstrap-datetimepicker-widget table td span.disabled,\n.bootstrap-datetimepicker-widget table td span.disabled:hover {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n\n.bootstrap-datetimepicker-widget .timepicker-picker span,\n.bootstrap-datetimepicker-widget .timepicker-hours span,\n.bootstrap-datetimepicker-widget .timepicker-minutes span {\n  border-radius: 50% !important;\n}\n\n.bootstrap-datetimepicker-widget.usetwentyfour td.hour {\n  height: 27px;\n  line-height: 27px;\n}\n\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n\n.table-condensed>tbody>tr>td,\n.table-condensed>tbody>tr>th,\n.table-condensed>tfoot>tr>td,\n.table-condensed>tfoot>tr>th,\n.table-condensed>thead>tr>td,\n.table-condensed>thead>tr>th {\n  padding: 1px;\n  text-align: center;\n  z-index: 1;\n  cursor: pointer;\n}\n\n.bootstrap-datetimepicker-widget {\n  opacity: 0;\n  -webkit-transform: translate3d(0px, -10px, 0px);\n  -moz-transform: translate3d(0, -10px, 0);\n  -o-transform: translate3d(0, -10px, 0);\n  -ms-transform: translate3d(0, -10px, 0);\n  transform: translate3d(0px, -10px, 0px);\n  -webkit-box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n  box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n}\n\n.bootstrap-datetimepicker-widget.top {\n  -webkit-transform: translate3d(0px, 0px, 0px);\n  -moz-transform: translate3d(0, 0px, 0);\n  -o-transform: translate3d(0, 0px, 0);\n  -ms-transform: translate3d(0, 0px, 0);\n  transform: translate3d(0px, 0px, 0px);\n}\n\n.bootstrap-datetimepicker-widget.open {\n  opacity: 1;\n  -webkit-transform: translate3d(0, 5px, 0);\n  -moz-transform: translate3d(0, 5px, 0);\n  -o-transform: translate3d(0, 5px, 0);\n  -ms-transform: translate3d(0, 5px, 0);\n  transform: translate3d(0, 5px, 0);\n  transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n}\n\n.bootstrap-datetimepicker-widget.open.top {\n  -webkit-transform: translate3d(0, -10px, 0);\n  -moz-transform: translate3d(0, -10px, 0);\n  -o-transform: translate3d(0, -10px, 0);\n  -ms-transform: translate3d(0, -10px, 0);\n  transform: translate3d(0, -10px, 0);\n}\n\n.bootstrap-datetimepicker-widget.open.top:before {\n  border-top: 11px solid #DCD9D1;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  bottom: -12px;\n}\n\n.bootstrap-datetimepicker-widget.open.top:after {\n  border-top: 11px solid #FFFFFF;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  bottom: -11px;\n}\n\n.btn {\n  box-sizing: border-box;\n  border-width: 2px;\n  font-size: 12px;\n  font-weight: 600;\n  padding: 0.5rem 18px;\n  line-height: 1.75;\n  cursor: pointer;\n  background-color: #66615B;\n  border-color: #66615B;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  -webkit-transition: all 150ms linear;\n  -moz-transition: all 150ms linear;\n  -o-transition: all 150ms linear;\n  -ms-transition: all 150ms linear;\n  transition: all 150ms linear;\n}\n\n.btn.btn-border,\n.btn.btn-link {\n  background-color: transparent;\n}\n\n.btn:hover,\n.btn:focus,\n.btn:active,\n.btn.active,\n.btn:active:focus,\n.btn:active:hover,\n.btn.active:focus,\n.btn:not(:disabled):not(.disabled):active:focus,\n.btn:not(:disabled):not(.disabled):active,\n.btn:not(:disabled):not(.disabled).active,\n.btn:not(:disabled):not(.disabled).active:focus,\n.show>.btn.dropdown-toggle {\n  background-color: #403D39;\n  color: #FFFFFF;\n  border-color: #403D39;\n  box-shadow: none;\n}\n\n.btn .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn.disabled,\n.btn.disabled:hover,\n.btn.disabled:focus,\n.btn.disabled.focus,\n.btn.disabled:active,\n.btn.disabled.active,\n.btn:disabled,\n.btn:disabled:hover,\n.btn:disabled:focus,\n.btn:disabled.focus,\n.btn:disabled:active,\n.btn:disabled.active,\n.btn[disabled],\n.btn[disabled]:hover,\n.btn[disabled]:focus,\n.btn[disabled].focus,\n.btn[disabled]:active,\n.btn[disabled].active,\nfieldset[disabled] .btn,\nfieldset[disabled] .btn:hover,\nfieldset[disabled] .btn:focus,\nfieldset[disabled] .btn.focus,\nfieldset[disabled] .btn:active,\nfieldset[disabled] .btn.active {\n  background-color: #403D39;\n  border-color: #403D39;\n}\n\n.btn.btn-link {\n  color: #66615B;\n}\n\n.btn.btn-link:hover,\n.btn.btn-link:focus,\n.btn.btn-link:active,\n.btn.btn-link.active,\n.btn.btn-link:focus:active,\n.open>.btn.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #403D39 !important;\n}\n\n.btn.btn-link .caret {\n  border-top-color: #66615B;\n}\n\n.btn .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn:hover,\n.btn:focus {\n  outline: 0 !important;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n\n.btn:active,\n.btn.active,\n.open>.btn.dropdown-toggle {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  outline: 0 !important;\n}\n\n.btn[class*=\"btn-outline-\"] {\n  background-image: none;\n  background-color: transparent;\n}\n\n.btn .nc-icon {\n  position: relative;\n  top: 2px;\n}\n\n.btn-just-icon {\n  border-radius: 50px;\n  height: 40px;\n  width: 40px;\n  min-width: 40px;\n  padding: 8px;\n}\n\n.btn-just-icon.btn-sm {\n  padding: 4px !important;\n}\n\n.btn-just-icon i {\n  font-size: 16px;\n  padding: 2px 0px;\n}\n\n.btn-group .btn+.btn,\n.btn-group .btn+.btn-group,\n.btn-group .btn-group+.btn,\n.btn-group .btn-group+.btn-group {\n  margin-left: -2px;\n}\n\n.btn-primary {\n  background-color: #51cbce;\n  border-color: #51cbce;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.btn-primary:active:focus,\n.btn-primary:active:hover,\n.btn-primary.active:focus,\n.btn-primary:not(:disabled):not(.disabled):active:focus,\n.btn-primary:not(:disabled):not(.disabled):active,\n.btn-primary:not(:disabled):not(.disabled).active,\n.btn-primary:not(:disabled):not(.disabled).active:focus,\n.show>.btn-primary.dropdown-toggle {\n  background-color: #34b5b8;\n  color: #FFFFFF;\n  border-color: #34b5b8;\n  box-shadow: none;\n}\n\n.btn-primary .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-primary.disabled,\n.btn-primary.disabled:hover,\n.btn-primary.disabled:focus,\n.btn-primary.disabled.focus,\n.btn-primary.disabled:active,\n.btn-primary.disabled.active,\n.btn-primary:disabled,\n.btn-primary:disabled:hover,\n.btn-primary:disabled:focus,\n.btn-primary:disabled.focus,\n.btn-primary:disabled:active,\n.btn-primary:disabled.active,\n.btn-primary[disabled],\n.btn-primary[disabled]:hover,\n.btn-primary[disabled]:focus,\n.btn-primary[disabled].focus,\n.btn-primary[disabled]:active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-primary:hover,\nfieldset[disabled] .btn-primary:focus,\nfieldset[disabled] .btn-primary.focus,\nfieldset[disabled] .btn-primary:active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #34b5b8;\n  border-color: #34b5b8;\n}\n\n.btn-primary.btn-link {\n  color: #51cbce;\n}\n\n.btn-primary.btn-link:hover,\n.btn-primary.btn-link:focus,\n.btn-primary.btn-link:active,\n.btn-primary.btn-link.active,\n.btn-primary.btn-link:focus:active,\n.open>.btn-primary.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #34b5b8 !important;\n}\n\n.btn-primary.btn-link .caret {\n  border-top-color: #51cbce;\n}\n\n.btn-primary .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-success {\n  background-color: #6bd098;\n  border-color: #6bd098;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.btn-success:active:focus,\n.btn-success:active:hover,\n.btn-success.active:focus,\n.btn-success:not(:disabled):not(.disabled):active:focus,\n.btn-success:not(:disabled):not(.disabled):active,\n.btn-success:not(:disabled):not(.disabled).active,\n.btn-success:not(:disabled):not(.disabled).active:focus,\n.show>.btn-success.dropdown-toggle {\n  background-color: #44c47d;\n  color: #FFFFFF;\n  border-color: #44c47d;\n  box-shadow: none;\n}\n\n.btn-success .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-success.disabled,\n.btn-success.disabled:hover,\n.btn-success.disabled:focus,\n.btn-success.disabled.focus,\n.btn-success.disabled:active,\n.btn-success.disabled.active,\n.btn-success:disabled,\n.btn-success:disabled:hover,\n.btn-success:disabled:focus,\n.btn-success:disabled.focus,\n.btn-success:disabled:active,\n.btn-success:disabled.active,\n.btn-success[disabled],\n.btn-success[disabled]:hover,\n.btn-success[disabled]:focus,\n.btn-success[disabled].focus,\n.btn-success[disabled]:active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-success:hover,\nfieldset[disabled] .btn-success:focus,\nfieldset[disabled] .btn-success.focus,\nfieldset[disabled] .btn-success:active,\nfieldset[disabled] .btn-success.active {\n  background-color: #44c47d;\n  border-color: #44c47d;\n}\n\n.btn-success.btn-link {\n  color: #6bd098;\n}\n\n.btn-success.btn-link:hover,\n.btn-success.btn-link:focus,\n.btn-success.btn-link:active,\n.btn-success.btn-link.active,\n.btn-success.btn-link:focus:active,\n.open>.btn-success.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #44c47d !important;\n}\n\n.btn-success.btn-link .caret {\n  border-top-color: #6bd098;\n}\n\n.btn-success .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-info {\n  background-color: #51bcda;\n  border-color: #51bcda;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.btn-info:active:focus,\n.btn-info:active:hover,\n.btn-info.active:focus,\n.btn-info:not(:disabled):not(.disabled):active:focus,\n.btn-info:not(:disabled):not(.disabled):active,\n.btn-info:not(:disabled):not(.disabled).active,\n.btn-info:not(:disabled):not(.disabled).active:focus,\n.show>.btn-info.dropdown-toggle {\n  background-color: #2ba9cd;\n  color: #FFFFFF;\n  border-color: #2ba9cd;\n  box-shadow: none;\n}\n\n.btn-info .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-info.disabled,\n.btn-info.disabled:hover,\n.btn-info.disabled:focus,\n.btn-info.disabled.focus,\n.btn-info.disabled:active,\n.btn-info.disabled.active,\n.btn-info:disabled,\n.btn-info:disabled:hover,\n.btn-info:disabled:focus,\n.btn-info:disabled.focus,\n.btn-info:disabled:active,\n.btn-info:disabled.active,\n.btn-info[disabled],\n.btn-info[disabled]:hover,\n.btn-info[disabled]:focus,\n.btn-info[disabled].focus,\n.btn-info[disabled]:active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-info:hover,\nfieldset[disabled] .btn-info:focus,\nfieldset[disabled] .btn-info.focus,\nfieldset[disabled] .btn-info:active,\nfieldset[disabled] .btn-info.active {\n  background-color: #2ba9cd;\n  border-color: #2ba9cd;\n}\n\n.btn-info.btn-link {\n  color: #51bcda;\n}\n\n.btn-info.btn-link:hover,\n.btn-info.btn-link:focus,\n.btn-info.btn-link:active,\n.btn-info.btn-link.active,\n.btn-info.btn-link:focus:active,\n.open>.btn-info.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #2ba9cd !important;\n}\n\n.btn-info.btn-link .caret {\n  border-top-color: #51bcda;\n}\n\n.btn-info .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-warning {\n  background-color: #fbc658;\n  border-color: #fbc658;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.btn-warning:active:focus,\n.btn-warning:active:hover,\n.btn-warning.active:focus,\n.btn-warning:not(:disabled):not(.disabled):active:focus,\n.btn-warning:not(:disabled):not(.disabled):active,\n.btn-warning:not(:disabled):not(.disabled).active,\n.btn-warning:not(:disabled):not(.disabled).active:focus,\n.show>.btn-warning.dropdown-toggle {\n  background-color: #fab526;\n  color: #FFFFFF;\n  border-color: #fab526;\n  box-shadow: none;\n}\n\n.btn-warning .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-warning.disabled,\n.btn-warning.disabled:hover,\n.btn-warning.disabled:focus,\n.btn-warning.disabled.focus,\n.btn-warning.disabled:active,\n.btn-warning.disabled.active,\n.btn-warning:disabled,\n.btn-warning:disabled:hover,\n.btn-warning:disabled:focus,\n.btn-warning:disabled.focus,\n.btn-warning:disabled:active,\n.btn-warning:disabled.active,\n.btn-warning[disabled],\n.btn-warning[disabled]:hover,\n.btn-warning[disabled]:focus,\n.btn-warning[disabled].focus,\n.btn-warning[disabled]:active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-warning:hover,\nfieldset[disabled] .btn-warning:focus,\nfieldset[disabled] .btn-warning.focus,\nfieldset[disabled] .btn-warning:active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #fab526;\n  border-color: #fab526;\n}\n\n.btn-warning.btn-link {\n  color: #fbc658;\n}\n\n.btn-warning.btn-link:hover,\n.btn-warning.btn-link:focus,\n.btn-warning.btn-link:active,\n.btn-warning.btn-link.active,\n.btn-warning.btn-link:focus:active,\n.open>.btn-warning.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #fab526 !important;\n}\n\n.btn-warning.btn-link .caret {\n  border-top-color: #fbc658;\n}\n\n.btn-warning .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-danger {\n  background-color: #f5593d;\n  border-color: #f5593d;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.btn-danger:active:focus,\n.btn-danger:active:hover,\n.btn-danger.active:focus,\n.btn-danger:not(:disabled):not(.disabled):active:focus,\n.btn-danger:not(:disabled):not(.disabled):active,\n.btn-danger:not(:disabled):not(.disabled).active,\n.btn-danger:not(:disabled):not(.disabled).active:focus,\n.show>.btn-danger.dropdown-toggle {\n  background-color: #f33816;\n  color: #FFFFFF;\n  border-color: #f33816;\n  box-shadow: none;\n}\n\n.btn-danger .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-danger.disabled,\n.btn-danger.disabled:hover,\n.btn-danger.disabled:focus,\n.btn-danger.disabled.focus,\n.btn-danger.disabled:active,\n.btn-danger.disabled.active,\n.btn-danger:disabled,\n.btn-danger:disabled:hover,\n.btn-danger:disabled:focus,\n.btn-danger:disabled.focus,\n.btn-danger:disabled:active,\n.btn-danger:disabled.active,\n.btn-danger[disabled],\n.btn-danger[disabled]:hover,\n.btn-danger[disabled]:focus,\n.btn-danger[disabled].focus,\n.btn-danger[disabled]:active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger,\nfieldset[disabled] .btn-danger:hover,\nfieldset[disabled] .btn-danger:focus,\nfieldset[disabled] .btn-danger.focus,\nfieldset[disabled] .btn-danger:active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #f33816;\n  border-color: #f33816;\n}\n\n.btn-danger.btn-link {\n  color: #f5593d;\n}\n\n.btn-danger.btn-link:hover,\n.btn-danger.btn-link:focus,\n.btn-danger.btn-link:active,\n.btn-danger.btn-link.active,\n.btn-danger.btn-link:focus:active,\n.open>.btn-danger.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #f33816 !important;\n}\n\n.btn-danger.btn-link .caret {\n  border-top-color: #f5593d;\n}\n\n.btn-danger .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral {\n  background-color: #FFFFFF;\n  border-color: #FFFFFF;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-neutral:hover,\n.btn-neutral:focus,\n.btn-neutral:active,\n.btn-neutral.active,\n.btn-neutral:active:focus,\n.btn-neutral:active:hover,\n.btn-neutral.active:focus,\n.btn-neutral:not(:disabled):not(.disabled):active:focus,\n.btn-neutral:not(:disabled):not(.disabled):active,\n.btn-neutral:not(:disabled):not(.disabled).active,\n.btn-neutral:not(:disabled):not(.disabled).active:focus,\n.show>.btn-neutral.dropdown-toggle {\n  background-color: #403D39;\n  color: #FFFFFF;\n  border-color: #403D39;\n  box-shadow: none;\n}\n\n.btn-neutral .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral.disabled,\n.btn-neutral.disabled:hover,\n.btn-neutral.disabled:focus,\n.btn-neutral.disabled.focus,\n.btn-neutral.disabled:active,\n.btn-neutral.disabled.active,\n.btn-neutral:disabled,\n.btn-neutral:disabled:hover,\n.btn-neutral:disabled:focus,\n.btn-neutral:disabled.focus,\n.btn-neutral:disabled:active,\n.btn-neutral:disabled.active,\n.btn-neutral[disabled],\n.btn-neutral[disabled]:hover,\n.btn-neutral[disabled]:focus,\n.btn-neutral[disabled].focus,\n.btn-neutral[disabled]:active,\n.btn-neutral[disabled].active,\nfieldset[disabled] .btn-neutral,\nfieldset[disabled] .btn-neutral:hover,\nfieldset[disabled] .btn-neutral:focus,\nfieldset[disabled] .btn-neutral.focus,\nfieldset[disabled] .btn-neutral:active,\nfieldset[disabled] .btn-neutral.active {\n  background-color: #403D39;\n  border-color: #403D39;\n}\n\n.btn-neutral.btn-link {\n  color: #FFFFFF;\n}\n\n.btn-neutral.btn-link:hover,\n.btn-neutral.btn-link:focus,\n.btn-neutral.btn-link:active,\n.btn-neutral.btn-link.active,\n.btn-neutral.btn-link:focus:active,\n.open>.btn-neutral.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #403D39 !important;\n}\n\n.btn-neutral.btn-link .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-default {\n  border-color: #66615B;\n  color: #66615B;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-default:hover,\n.btn-outline-default:focus,\n.btn-outline-default:active,\n.btn-outline-default.active,\n.btn-outline-default:active:focus,\n.btn-outline-default:active:hover,\n.btn-outline-default.active:focus,\n.show>.btn-outline-default.dropdown-toggle {\n  background-color: #66615B !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #66615B !important;\n}\n\n.btn-outline-default:hover .caret,\n.btn-outline-default:focus .caret,\n.btn-outline-default:active .caret,\n.btn-outline-default.active .caret,\n.btn-outline-default:active:focus .caret,\n.btn-outline-default:active:hover .caret,\n.btn-outline-default.active:focus .caret,\n.show>.btn-outline-default.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-default .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-default.disabled,\n.btn-outline-default.disabled:hover,\n.btn-outline-default.disabled:focus,\n.btn-outline-default.disabled.focus,\n.btn-outline-default.disabled:active,\n.btn-outline-default.disabled.active,\n.btn-outline-default:disabled,\n.btn-outline-default:disabled:hover,\n.btn-outline-default:disabled:focus,\n.btn-outline-default:disabled.focus,\n.btn-outline-default:disabled:active,\n.btn-outline-default:disabled.active,\n.btn-outline-default[disabled],\n.btn-outline-default[disabled]:hover,\n.btn-outline-default[disabled]:focus,\n.btn-outline-default[disabled].focus,\n.btn-outline-default[disabled]:active,\n.btn-outline-default[disabled].active,\nfieldset[disabled] .btn-outline-default,\nfieldset[disabled] .btn-outline-default:hover,\nfieldset[disabled] .btn-outline-default:focus,\nfieldset[disabled] .btn-outline-default.focus,\nfieldset[disabled] .btn-outline-default:active,\nfieldset[disabled] .btn-outline-default.active {\n  background-color: transparent;\n  border-color: #66615B;\n}\n\n.btn-outline-primary {\n  border-color: #51cbce;\n  color: #51cbce;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-primary:hover,\n.btn-outline-primary:focus,\n.btn-outline-primary:active,\n.btn-outline-primary.active,\n.btn-outline-primary:active:focus,\n.btn-outline-primary:active:hover,\n.btn-outline-primary.active:focus,\n.show>.btn-outline-primary.dropdown-toggle {\n  background-color: #51cbce !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #51cbce !important;\n}\n\n.btn-outline-primary:hover .caret,\n.btn-outline-primary:focus .caret,\n.btn-outline-primary:active .caret,\n.btn-outline-primary.active .caret,\n.btn-outline-primary:active:focus .caret,\n.btn-outline-primary:active:hover .caret,\n.btn-outline-primary.active:focus .caret,\n.show>.btn-outline-primary.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-primary .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-primary.disabled,\n.btn-outline-primary.disabled:hover,\n.btn-outline-primary.disabled:focus,\n.btn-outline-primary.disabled.focus,\n.btn-outline-primary.disabled:active,\n.btn-outline-primary.disabled.active,\n.btn-outline-primary:disabled,\n.btn-outline-primary:disabled:hover,\n.btn-outline-primary:disabled:focus,\n.btn-outline-primary:disabled.focus,\n.btn-outline-primary:disabled:active,\n.btn-outline-primary:disabled.active,\n.btn-outline-primary[disabled],\n.btn-outline-primary[disabled]:hover,\n.btn-outline-primary[disabled]:focus,\n.btn-outline-primary[disabled].focus,\n.btn-outline-primary[disabled]:active,\n.btn-outline-primary[disabled].active,\nfieldset[disabled] .btn-outline-primary,\nfieldset[disabled] .btn-outline-primary:hover,\nfieldset[disabled] .btn-outline-primary:focus,\nfieldset[disabled] .btn-outline-primary.focus,\nfieldset[disabled] .btn-outline-primary:active,\nfieldset[disabled] .btn-outline-primary.active {\n  background-color: transparent;\n  border-color: #51cbce;\n}\n\n.btn-outline-success {\n  border-color: #6bd098;\n  color: #6bd098;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-success:hover,\n.btn-outline-success:focus,\n.btn-outline-success:active,\n.btn-outline-success.active,\n.btn-outline-success:active:focus,\n.btn-outline-success:active:hover,\n.btn-outline-success.active:focus,\n.show>.btn-outline-success.dropdown-toggle {\n  background-color: #6bd098 !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #6bd098 !important;\n}\n\n.btn-outline-success:hover .caret,\n.btn-outline-success:focus .caret,\n.btn-outline-success:active .caret,\n.btn-outline-success.active .caret,\n.btn-outline-success:active:focus .caret,\n.btn-outline-success:active:hover .caret,\n.btn-outline-success.active:focus .caret,\n.show>.btn-outline-success.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-success .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-success.disabled,\n.btn-outline-success.disabled:hover,\n.btn-outline-success.disabled:focus,\n.btn-outline-success.disabled.focus,\n.btn-outline-success.disabled:active,\n.btn-outline-success.disabled.active,\n.btn-outline-success:disabled,\n.btn-outline-success:disabled:hover,\n.btn-outline-success:disabled:focus,\n.btn-outline-success:disabled.focus,\n.btn-outline-success:disabled:active,\n.btn-outline-success:disabled.active,\n.btn-outline-success[disabled],\n.btn-outline-success[disabled]:hover,\n.btn-outline-success[disabled]:focus,\n.btn-outline-success[disabled].focus,\n.btn-outline-success[disabled]:active,\n.btn-outline-success[disabled].active,\nfieldset[disabled] .btn-outline-success,\nfieldset[disabled] .btn-outline-success:hover,\nfieldset[disabled] .btn-outline-success:focus,\nfieldset[disabled] .btn-outline-success.focus,\nfieldset[disabled] .btn-outline-success:active,\nfieldset[disabled] .btn-outline-success.active {\n  background-color: transparent;\n  border-color: #6bd098;\n}\n\n.btn-outline-info {\n  border-color: #51bcda;\n  color: #51bcda;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-info:hover,\n.btn-outline-info:focus,\n.btn-outline-info:active,\n.btn-outline-info.active,\n.btn-outline-info:active:focus,\n.btn-outline-info:active:hover,\n.btn-outline-info.active:focus,\n.show>.btn-outline-info.dropdown-toggle {\n  background-color: #51bcda !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #51bcda !important;\n}\n\n.btn-outline-info:hover .caret,\n.btn-outline-info:focus .caret,\n.btn-outline-info:active .caret,\n.btn-outline-info.active .caret,\n.btn-outline-info:active:focus .caret,\n.btn-outline-info:active:hover .caret,\n.btn-outline-info.active:focus .caret,\n.show>.btn-outline-info.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-info .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-info.disabled,\n.btn-outline-info.disabled:hover,\n.btn-outline-info.disabled:focus,\n.btn-outline-info.disabled.focus,\n.btn-outline-info.disabled:active,\n.btn-outline-info.disabled.active,\n.btn-outline-info:disabled,\n.btn-outline-info:disabled:hover,\n.btn-outline-info:disabled:focus,\n.btn-outline-info:disabled.focus,\n.btn-outline-info:disabled:active,\n.btn-outline-info:disabled.active,\n.btn-outline-info[disabled],\n.btn-outline-info[disabled]:hover,\n.btn-outline-info[disabled]:focus,\n.btn-outline-info[disabled].focus,\n.btn-outline-info[disabled]:active,\n.btn-outline-info[disabled].active,\nfieldset[disabled] .btn-outline-info,\nfieldset[disabled] .btn-outline-info:hover,\nfieldset[disabled] .btn-outline-info:focus,\nfieldset[disabled] .btn-outline-info.focus,\nfieldset[disabled] .btn-outline-info:active,\nfieldset[disabled] .btn-outline-info.active {\n  background-color: transparent;\n  border-color: #51bcda;\n}\n\n.btn-outline-warning {\n  border-color: #fbc658;\n  color: #fbc658;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-warning:hover,\n.btn-outline-warning:focus,\n.btn-outline-warning:active,\n.btn-outline-warning.active,\n.btn-outline-warning:active:focus,\n.btn-outline-warning:active:hover,\n.btn-outline-warning.active:focus,\n.show>.btn-outline-warning.dropdown-toggle {\n  background-color: #fbc658 !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #fbc658 !important;\n}\n\n.btn-outline-warning:hover .caret,\n.btn-outline-warning:focus .caret,\n.btn-outline-warning:active .caret,\n.btn-outline-warning.active .caret,\n.btn-outline-warning:active:focus .caret,\n.btn-outline-warning:active:hover .caret,\n.btn-outline-warning.active:focus .caret,\n.show>.btn-outline-warning.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-warning .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-warning.disabled,\n.btn-outline-warning.disabled:hover,\n.btn-outline-warning.disabled:focus,\n.btn-outline-warning.disabled.focus,\n.btn-outline-warning.disabled:active,\n.btn-outline-warning.disabled.active,\n.btn-outline-warning:disabled,\n.btn-outline-warning:disabled:hover,\n.btn-outline-warning:disabled:focus,\n.btn-outline-warning:disabled.focus,\n.btn-outline-warning:disabled:active,\n.btn-outline-warning:disabled.active,\n.btn-outline-warning[disabled],\n.btn-outline-warning[disabled]:hover,\n.btn-outline-warning[disabled]:focus,\n.btn-outline-warning[disabled].focus,\n.btn-outline-warning[disabled]:active,\n.btn-outline-warning[disabled].active,\nfieldset[disabled] .btn-outline-warning,\nfieldset[disabled] .btn-outline-warning:hover,\nfieldset[disabled] .btn-outline-warning:focus,\nfieldset[disabled] .btn-outline-warning.focus,\nfieldset[disabled] .btn-outline-warning:active,\nfieldset[disabled] .btn-outline-warning.active {\n  background-color: transparent;\n  border-color: #fbc658;\n}\n\n.btn-outline-danger {\n  border-color: #f5593d;\n  color: #f5593d;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-danger:hover,\n.btn-outline-danger:focus,\n.btn-outline-danger:active,\n.btn-outline-danger.active,\n.btn-outline-danger:active:focus,\n.btn-outline-danger:active:hover,\n.btn-outline-danger.active:focus,\n.show>.btn-outline-danger.dropdown-toggle {\n  background-color: #f5593d !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #f5593d !important;\n}\n\n.btn-outline-danger:hover .caret,\n.btn-outline-danger:focus .caret,\n.btn-outline-danger:active .caret,\n.btn-outline-danger.active .caret,\n.btn-outline-danger:active:focus .caret,\n.btn-outline-danger:active:hover .caret,\n.btn-outline-danger.active:focus .caret,\n.show>.btn-outline-danger.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-danger .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-danger.disabled,\n.btn-outline-danger.disabled:hover,\n.btn-outline-danger.disabled:focus,\n.btn-outline-danger.disabled.focus,\n.btn-outline-danger.disabled:active,\n.btn-outline-danger.disabled.active,\n.btn-outline-danger:disabled,\n.btn-outline-danger:disabled:hover,\n.btn-outline-danger:disabled:focus,\n.btn-outline-danger:disabled.focus,\n.btn-outline-danger:disabled:active,\n.btn-outline-danger:disabled.active,\n.btn-outline-danger[disabled],\n.btn-outline-danger[disabled]:hover,\n.btn-outline-danger[disabled]:focus,\n.btn-outline-danger[disabled].focus,\n.btn-outline-danger[disabled]:active,\n.btn-outline-danger[disabled].active,\nfieldset[disabled] .btn-outline-danger,\nfieldset[disabled] .btn-outline-danger:hover,\nfieldset[disabled] .btn-outline-danger:focus,\nfieldset[disabled] .btn-outline-danger.focus,\nfieldset[disabled] .btn-outline-danger:active,\nfieldset[disabled] .btn-outline-danger.active {\n  background-color: transparent;\n  border-color: #f5593d;\n}\n\n.btn-outline-neutral {\n  border-color: #FFFFFF;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.btn-outline-neutral:hover,\n.btn-outline-neutral:focus,\n.btn-outline-neutral:active,\n.btn-outline-neutral.active,\n.btn-outline-neutral:active:focus,\n.btn-outline-neutral:active:hover,\n.btn-outline-neutral.active:focus,\n.show>.btn-outline-neutral.dropdown-toggle {\n  background-color: #FFFFFF !important;\n  color: rgba(255, 255, 255, 0.8);\n  border-color: #FFFFFF !important;\n}\n\n.btn-outline-neutral:hover .caret,\n.btn-outline-neutral:focus .caret,\n.btn-outline-neutral:active .caret,\n.btn-outline-neutral.active .caret,\n.btn-outline-neutral:active:focus .caret,\n.btn-outline-neutral:active:hover .caret,\n.btn-outline-neutral.active:focus .caret,\n.show>.btn-outline-neutral.dropdown-toggle .caret {\n  border-top-color: rgba(255, 255, 255, 0.8);\n}\n\n.btn-outline-neutral .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-outline-neutral.disabled,\n.btn-outline-neutral.disabled:hover,\n.btn-outline-neutral.disabled:focus,\n.btn-outline-neutral.disabled.focus,\n.btn-outline-neutral.disabled:active,\n.btn-outline-neutral.disabled.active,\n.btn-outline-neutral:disabled,\n.btn-outline-neutral:disabled:hover,\n.btn-outline-neutral:disabled:focus,\n.btn-outline-neutral:disabled.focus,\n.btn-outline-neutral:disabled:active,\n.btn-outline-neutral:disabled.active,\n.btn-outline-neutral[disabled],\n.btn-outline-neutral[disabled]:hover,\n.btn-outline-neutral[disabled]:focus,\n.btn-outline-neutral[disabled].focus,\n.btn-outline-neutral[disabled]:active,\n.btn-outline-neutral[disabled].active,\nfieldset[disabled] .btn-outline-neutral,\nfieldset[disabled] .btn-outline-neutral:hover,\nfieldset[disabled] .btn-outline-neutral:focus,\nfieldset[disabled] .btn-outline-neutral.focus,\nfieldset[disabled] .btn-outline-neutral:active,\nfieldset[disabled] .btn-outline-neutral.active {\n  background-color: transparent;\n  border-color: #FFFFFF;\n}\n\n.btn-outline-neutral:hover,\n.btn-outline-neutral:focus,\n.btn-outline-neutral:active {\n  color: #403D39 !important;\n  background-color: #FFFFFF;\n}\n\n.btn-neutral {\n  background-color: #FFFFFF;\n  border-color: #FFFFFF;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  color: #66615B;\n}\n\n.btn-neutral:hover,\n.btn-neutral:focus,\n.btn-neutral:active,\n.btn-neutral.active,\n.btn-neutral:active:focus,\n.btn-neutral:active:hover,\n.btn-neutral.active:focus,\n.btn-neutral:not(:disabled):not(.disabled):active:focus,\n.btn-neutral:not(:disabled):not(.disabled):active,\n.btn-neutral:not(:disabled):not(.disabled).active,\n.btn-neutral:not(:disabled):not(.disabled).active:focus,\n.show>.btn-neutral.dropdown-toggle {\n  background-color: #FFFFFF;\n  color: #FFFFFF;\n  border-color: #FFFFFF;\n  box-shadow: none;\n}\n\n.btn-neutral .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral.disabled,\n.btn-neutral.disabled:hover,\n.btn-neutral.disabled:focus,\n.btn-neutral.disabled.focus,\n.btn-neutral.disabled:active,\n.btn-neutral.disabled.active,\n.btn-neutral:disabled,\n.btn-neutral:disabled:hover,\n.btn-neutral:disabled:focus,\n.btn-neutral:disabled.focus,\n.btn-neutral:disabled:active,\n.btn-neutral:disabled.active,\n.btn-neutral[disabled],\n.btn-neutral[disabled]:hover,\n.btn-neutral[disabled]:focus,\n.btn-neutral[disabled].focus,\n.btn-neutral[disabled]:active,\n.btn-neutral[disabled].active,\nfieldset[disabled] .btn-neutral,\nfieldset[disabled] .btn-neutral:hover,\nfieldset[disabled] .btn-neutral:focus,\nfieldset[disabled] .btn-neutral.focus,\nfieldset[disabled] .btn-neutral:active,\nfieldset[disabled] .btn-neutral.active {\n  background-color: #FFFFFF;\n  border-color: #FFFFFF;\n}\n\n.btn-neutral.btn-link {\n  color: #FFFFFF;\n}\n\n.btn-neutral.btn-link:hover,\n.btn-neutral.btn-link:focus,\n.btn-neutral.btn-link:active,\n.btn-neutral.btn-link.active,\n.btn-neutral.btn-link:focus:active,\n.open>.btn-neutral.btn-link.dropdown-toggle {\n  background-color: transparent !important;\n  color: #FFFFFF !important;\n}\n\n.btn-neutral.btn-link .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral .caret {\n  border-top-color: #FFFFFF;\n}\n\n.btn-neutral:hover,\n.btn-neutral:focus,\n.btn-neutral:active {\n  color: #403D39 !important;\n}\n\n.btn-neutral.btn-border:hover,\n.btn-neutral.btn-border:focus {\n  color: #66615B;\n}\n\n.btn-neutral.btn-border:active,\n.btn-neutral.btn-border.active,\n.open>.btn-neutral.btn-border.dropdown-toggle {\n  background-color: #FFFFFF;\n  color: #66615B;\n}\n\n.btn-neutral.btn-link:hover,\n.btn-neutral.btn-link:focus,\n.btn-neutral.btn-link:active {\n  color: #FFFFFF !important;\n}\n\n.btn-neutral.btn-link:focus:active {\n  color: #403D39 !important;\n}\n\n.btn-neutral.btn-link:active,\n.btn-neutral.btn-link.active {\n  background-color: transparent;\n}\n\n.btn:disabled,\n.btn[disabled],\n.btn.disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.btn-link {\n  border-color: transparent !important;\n  padding: 7px 18px;\n}\n\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  text-decoration: none;\n  border-color: transparent;\n}\n\n.btn-link.btn-icon {\n  padding: 7px;\n}\n\n.btn-lg {\n  font-size: 14px;\n  padding: 11px 30px;\n}\n\n.btn-lg.btn-simple {\n  padding: 13px 30px;\n}\n\n.btn-sm {\n  font-size: 12px;\n  padding: 4px 10px;\n}\n\n.btn-sm.btn-simple {\n  padding: 6px 10px;\n}\n\n.btn-wd {\n  min-width: 140px;\n}\n\n.btn-group.select {\n  width: 100%;\n}\n\n.btn-group.select .btn {\n  text-align: left;\n}\n\n.btn-group.select .caret {\n  position: absolute;\n  top: 50%;\n  margin-top: -1px;\n  right: 8px;\n}\n\n.btn-just-icon.btn-sm {\n  height: 30px;\n  width: 30px;\n  min-width: 30px;\n  padding: 0;\n}\n\n.btn-just-icon.btn-sm i {\n  font-size: 12px;\n  top: 1px !important;\n}\n\n.btn-just-icon.btn-lg {\n  height: 50px;\n  width: 50px;\n  min-width: 50px;\n  padding: 13px;\n}\n\n.btn-just-icon.btn-lg i {\n  font-size: 18px;\n  padding: 0;\n}\n\n.btn-just-icon.btn-link {\n  padding: 8px !important;\n}\n\n.btn-round {\n  border-radius: 30px;\n}\n\n.btn.btn-link:focus {\n  box-shadow: none !important;\n  text-decoration: none;\n}\n\n.column .btn-link {\n  padding: 7px 0;\n}\n\n.share-buttons .btn-outline-default {\n  margin-top: 24px;\n}\n\n.btn-group.select {\n  overflow: visible !important;\n}\n\n.media .media-body .media-footer .btn-neutral {\n  margin: 15px 3px;\n  font-size: 14px;\n}\n\n.media .media-body .media-footer .btn-neutral i {\n  margin-right: 0 !important;\n}\n\n::-moz-placeholder {\n  color: #9A9A9A;\n}\n\n:-ms-input-placeholder {\n  color: #9A9A9A;\n}\n\n::-webkit-input-placeholder {\n  color: #9A9A9A;\n}\n\n.form-control:focus+.input-group-text {\n  border: 1px solid black;\n}\n\n.form-control {\n  background-color: #FFFFFF;\n  border: 1px solid #DDDDDD;\n  border-radius: 4px;\n  color: #66615b;\n  font-size: 14px;\n  transition: background-color 0.3s ease 0s;\n  padding-right: 0 !important;\n  padding: 7px 12px;\n  height: 40px;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n\n.form-control:focus {\n  background-color: #FFFFFF;\n  border: 1px solid #ccc;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  outline: 0 !important;\n}\n\n.form-control:focus+.input-group-prepend .input-group-text,\n.form-control:focus+.input-group-append .input-group-text {\n  border: 1px solid #ccc;\n  border-left: none;\n}\n\n.form-control.no-border {\n  border: medium none !important;\n}\n\n.form-control.no-border:focus+.input-group-prepend .input-group-text,\n.form-control.no-border:focus+.input-group-append .input-group-text {\n  border: none;\n}\n\n.has-success .form-control,\n.has-error .form-control,\n.has-success .form-control:focus,\n.has-error .form-control:focus {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n\n.has-success .form-control {\n  border: 1px solid #ccc;\n  color: #66615b;\n}\n\n.has-success .form-control.form-control-success {\n  padding-right: 2.5em !important;\n}\n\n.has-success .form-control:focus {\n  border: 1px solid #6bd098;\n  color: #6bd098;\n}\n\n.has-danger .form-control {\n  background-color: #FFC0A4;\n  border: 1px solid #f5593d;\n  color: #f5593d;\n}\n\n.has-danger .form-control.form-control-danger {\n  padding-right: 2.5em !important;\n}\n\n.has-danger .form-control:focus {\n  background-color: #FFFFFF;\n  border: 1px solid #f5593d;\n}\n\n.form-control+.form-control-feedback {\n  border-radius: 6px;\n  font-size: 14px;\n  color: #f5593d;\n  font-size: .8rem;\n  position: absolute;\n  top: 100%;\n  padding-left: 12px;\n  vertical-align: middle;\n}\n\n.open .form-control {\n  border-radius: 4px 4px 0 0;\n  border-bottom-color: transparent;\n}\n\n.form-control.form-control-lg {\n  height: 55px;\n  padding: 11px 13px;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.form-control.form-control-sm {\n  padding: .25rem .5rem;\n  font-size: .875rem;\n  line-height: 1.5;\n  height: 31px;\n}\n\n.has-error .form-control-feedback,\n.has-error .control-label {\n  color: #f5593d;\n}\n\n.has-success .form-control-feedback,\n.has-success .control-label {\n  color: #6bd098;\n}\n\n.input-group-prepend+.form-control {\n  margin-left: -1px;\n  border-left: none;\n}\n\n.form-control+.input-group-append .input-group-text {\n  border-right: 1px solid #ddd;\n}\n\n.input-group>.custom-select:not(:last-child),\n.input-group>.form-control:not(:last-child) {\n  border-right: none;\n}\n\n.input-group-text {\n  background-color: #FFFFFF;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  border-right: none;\n}\n\n.has-success .input-group-text,\n.has-error .input-group-text {\n  background-color: #FFFFFF;\n}\n\n.has-error .form-control:focus+.input-group-text {\n  color: #f5593d;\n}\n\n.has-success .form-control:focus+.input-group-text {\n  color: #6bd098;\n}\n\n.form-control:focus+.input-group-text,\n.form-control:focus~.input-group-text {\n  background-color: #FFFFFF;\n}\n\n.input-group.no-border .input-group-text {\n  border: 0;\n}\n\ntextarea.form-control {\n  padding: 10px 18px;\n  height: auto;\n}\n\n.form-group {\n  position: relative;\n}\n\n.register-form .form-control {\n  border: 1px solid transparent !important;\n}\n\n.register-form .input-group .form-control {\n  margin-left: -1px;\n}\n\n.register-form .input-group-prepend,\n.register-form .input-group-append {\n  border: 1px solid transparent !important;\n}\n\n#inputs .input-group {\n  margin-bottom: 1rem;\n}\n\n.card-form-horizontal .card-body .form-group {\n  margin-bottom: 0;\n}\n\n.from-check,\n.form-check-radio {\n  margin-bottom: 12px;\n  position: relative;\n}\n\n.form-check {\n  padding-left: 0;\n  margin-bottom: .5rem;\n}\n\n.form-check .form-check-label {\n  display: inline-block;\n  position: relative;\n  cursor: pointer;\n  padding-left: 35px;\n  line-height: 26px;\n  margin-bottom: 0;\n}\n\n.form-check .form-check-sign::before,\n.form-check .form-check-sign::after {\n  content: \" \";\n  display: inline-block;\n  position: absolute;\n  width: 24px;\n  height: 24px;\n  left: 0;\n  cursor: pointer;\n  border-radius: 6px;\n  top: 0;\n  background-color: #AAA7A4;\n  -webkit-transition: opacity 0.3s linear;\n  -moz-transition: opacity 0.3s linear;\n  -o-transition: opacity 0.3s linear;\n  -ms-transition: opacity 0.3s linear;\n  transition: opacity 0.3s linear;\n}\n\n.form-check .form-check-sign::after {\n  font-family: 'FontAwesome';\n  content: \"\\f00c\";\n  top: -1px;\n  text-align: center;\n  font-size: 15px;\n  opacity: 0;\n  color: #FFF;\n  border: 0;\n  background-color: inherit;\n}\n\n.form-check.disabled .form-check-label {\n  color: #9A9A9A;\n  opacity: .5;\n  cursor: not-allowed;\n}\n\n.form-check input[type=\"checkbox\"],\n.form-check-radio input[type=\"radio\"] {\n  opacity: 0;\n  position: absolute;\n  visibility: hidden;\n}\n\n.form-check input[type=\"checkbox\"]:checked+.form-check-sign::after {\n  opacity: 1;\n}\n\n.form-control input[type=\"checkbox\"]:disabled+.form-check-sign::before,\n.checkbox input[type=\"checkbox\"]:disabled+.form-check-sign::after {\n  cursor: not-allowed;\n}\n\n.form-check .form-check-label input[type=\"checkbox\"]:disabled+.form-check-sign,\n.form-check-radio input[type=\"radio\"]:disabled+.form-check-sign {\n  pointer-events: none !important;\n}\n\n.form-check-radio {\n  margin-left: -3px;\n}\n\n.form-check-radio .form-check-label {\n  padding-left: 2rem;\n}\n\n.form-check-radio.disabled .form-check-label {\n  color: #9A9A9A;\n  opacity: .5;\n  cursor: not-allowed;\n}\n\n.form-check-radio .form-check-sign::before {\n  font-family: 'FontAwesome';\n  content: \"\\f10c\";\n  font-size: 22px;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  display: inline-block;\n  position: absolute;\n  opacity: .50;\n  left: 5px;\n  top: -5px;\n}\n\n.form-check-label input[type=\"checkbox\"]:checked+.form-check-sign:before {\n  background-color: #66615B;\n}\n\n.form-check-radio input[type=\"radio\"]+.form-check-sign:after,\n.form-check-radio input[type=\"radio\"] {\n  opacity: 0;\n  -webkit-transition: opacity 0.3s linear;\n  -moz-transition: opacity 0.3s linear;\n  -o-transition: opacity 0.3s linear;\n  -ms-transition: opacity 0.3s linear;\n  transition: opacity 0.3s linear;\n  content: \" \";\n  display: block;\n}\n\n.form-check-radio input[type=\"radio\"]:checked+.form-check-sign::after {\n  font-family: 'FontAwesome';\n  content: \"\\f192\";\n  top: -5px;\n  position: absolute;\n  left: 5px;\n  opacity: 1;\n  font-size: 22px;\n}\n\n.form-check-radio input[type=\"radio\"]:checked+.form-check-sign::after {\n  opacity: 1;\n}\n\n.form-check-radio input[type=\"radio\"]:disabled+.form-check-sign::before,\n.form-check-radio input[type=\"radio\"]:disabled+.form-check-sign::after {\n  color: #9A9A9A;\n}\n\n.progress {\n  background-color: #DDDDDD;\n  border-radius: 3px;\n  box-shadow: none;\n  height: 8px;\n}\n\n.progress-thin {\n  height: 4px;\n}\n\n.progress-bar {\n  background-color: #51cbce;\n}\n\n.progress-bar-primary {\n  background-color: #51cbce;\n}\n\n.progress-bar-info {\n  background-color: #51bcda;\n}\n\n.progress-bar-success {\n  background-color: #6bd098;\n}\n\n.progress-bar-warning {\n  background-color: #fbc658;\n}\n\n.progress-bar-danger {\n  background-color: #f5593d;\n}\n\n/*           badges & Progress-bar              */\n\n.badge {\n  padding: 0.4em 0.9em;\n  color: #FFFFFF;\n  font-weight: 500;\n  font-size: 0.75em;\n  text-transform: uppercase;\n  display: inline-block;\n  margin-bottom: 3px;\n  padding-top: 5px;\n}\n\n.badge:focus {\n  outline: none;\n}\n\n.badge span[data-role=\"remove\"]:focus {\n  outline: none;\n}\n\n.badge-primary {\n  background-color: #51cbce;\n}\n\n.badge-info {\n  background-color: #51bcda;\n}\n\n.badge-success {\n  background-color: #6bd098;\n}\n\n.badge-warning {\n  background-color: #fbc658;\n}\n\n.badge-danger {\n  background-color: #f5593d;\n}\n\n.badge-default {\n  background-color: #66615B;\n}\n\n.pagination>li>a,\n.pagination>li>span,\n.pagination>li:first-child>a,\n.pagination>li:first-child>span,\n.pagination>li:last-child>a,\n.pagination>li:last-child>span {\n  background-color: transparent;\n  border: 2px solid #f5593d;\n  border-radius: 20px;\n  color: #f5593d;\n  height: 36px;\n  margin: 0 2px;\n  min-width: 36px;\n  padding: 8px 12px;\n  font-weight: 600;\n}\n\n.nav-pills-default>li>a,\n.pagination>li>a:hover,\n.pagination>li>a:focus,\n.pagination>li>a:active,\n.pagination>li.active>a,\n.pagination>li.active>span,\n.pagination>li.active>a:hover,\n.pagination>li.active>span:hover,\n.pagination>li.active>a:focus,\n.pagination>li.active>span:focus {\n  background-color: #66615B;\n  border-color: #66615B;\n  color: #FFFFFF;\n}\n\n.nav-pills-primary>li>a,\n.pagination-primary>li>a,\n.pagination-primary>li>span,\n.pagination-primary>li:first-child>a,\n.pagination-primary>li:first-child>span,\n.pagination-primary>li:last-child>a,\n.pagination-primary>li:last-child>span {\n  border: 2px solid #51cbce;\n  color: #51cbce;\n}\n\n.nav-pills-primary>li.active>a,\n.nav-pills-primary>li.active>a:hover,\n.nav-pills-primary>li.active>a:focus,\n.pagination-primary>li>a:hover,\n.pagination-primary>li>a:focus,\n.pagination-primary>li>a:active,\n.pagination-primary>li.active>a,\n.pagination-primary>li.active>span,\n.pagination-primary>li.active>a:hover,\n.pagination-primary>li.active>span:hover,\n.pagination-primary>li.active>a:focus,\n.pagination-primary>li.active>span:focus {\n  background-color: #51cbce !important;\n  border-color: #51cbce !important;\n  color: #FFFFFF;\n}\n\n.nav-pills-info>li>a,\n.pagination-info>li>a,\n.pagination-info>li>span,\n.pagination-info>li:first-child>a,\n.pagination-info>li:first-child>span,\n.pagination-info>li:last-child>a,\n.pagination-info>li:last-child>span {\n  border: 2px solid #51bcda;\n  color: #51bcda;\n}\n\n.nav-pills-info>li.active>a,\n.nav-pills-info>li.active>a:hover,\n.nav-pills-info>li.active>a:focus,\n.pagination-info>li>a:hover,\n.pagination-info>li>a:focus,\n.pagination-info>li>a:active,\n.pagination-info>li.active>a,\n.pagination-info>li.active>span,\n.pagination-info>li.active>a:hover,\n.pagination-info>li.active>span:hover,\n.pagination-info>li.active>a:focus,\n.pagination-info>li.active>span:focus {\n  background-color: #51bcda !important;\n  border-color: #51bcda !important;\n  color: #FFFFFF;\n}\n\n.nav-pills-success>li>a,\n.pagination-success>li>a,\n.pagination-success>li>span,\n.pagination-success>li:first-child>a,\n.pagination-success>li:first-child>span,\n.pagination-success>li:last-child>a,\n.pagination-success>li:last-child>span {\n  border: 2px solid #6bd098;\n  color: #6bd098;\n}\n\n.nav-pills-success>li.active>a,\n.nav-pills-success>li.active>a:hover,\n.nav-pills-success>li.active>a:focus,\n.pagination-success>li>a:hover,\n.pagination-success>li>a:focus,\n.pagination-success>li>a:active,\n.pagination-success>li.active>a,\n.pagination-success>li.active>span,\n.pagination-success>li.active>a:hover,\n.pagination-success>li.active>span:hover,\n.pagination-success>li.active>a:focus,\n.pagination-success>li.active>span:focus {\n  background-color: #6bd098 !important;\n  border-color: #6bd098 !important;\n  color: #FFFFFF;\n}\n\n.nav-pills-warning>li>a,\n.pagination-warning>li>a,\n.pagination-warning>li>span,\n.pagination-warning>li:first-child>a,\n.pagination-warning>li:first-child>span,\n.pagination-warning>li:last-child>a,\n.pagination-warning>li:last-child>span {\n  border: 2px solid #fbc658;\n  color: #fbc658;\n}\n\n.nav-pills-warning>li.active>a,\n.nav-pills-warning>li.active>a:hover,\n.nav-pills-warning>li.active>a:focus,\n.pagination-warning>li>a:hover,\n.pagination-warning>li>a:focus,\n.pagination-warning>li>a:active,\n.pagination-warning>li.active>a,\n.pagination-warning>li.active>span,\n.pagination-warning>li.active>a:hover,\n.pagination-warning>li.active>span:hover,\n.pagination-warning>li.active>a:focus,\n.pagination-warning>li.active>span:focus {\n  background-color: #fbc658 !important;\n  border-color: #fbc658 !important;\n  color: #FFFFFF;\n}\n\n.nav-pills-danger>li>a,\n.pagination-danger>li>a,\n.pagination-danger>li>span,\n.pagination-danger>li:first-child>a,\n.pagination-danger>li:first-child>span,\n.pagination-danger>li:last-child>a,\n.pagination-danger>li:last-child>span {\n  border: 2px solid #f5593d;\n  color: #f5593d;\n}\n\n.nav-pills-danger>li.active>a,\n.nav-pills-danger>li.active>a:hover,\n.nav-pills-danger>li.active>a:focus,\n.pagination-danger>li>a:hover,\n.pagination-danger>li>a:focus,\n.pagination-danger>li>a:active,\n.pagination-danger>li.active>a,\n.pagination-danger>li.active>span,\n.pagination-danger>li.active>a:hover,\n.pagination-danger>li.active>span:hover,\n.pagination-danger>li.active>a:focus,\n.pagination-danger>li.active>span:focus {\n  background-color: #f5593d !important;\n  border-color: #f5593d !important;\n  color: #FFFFFF;\n}\n\n.nav-text,\n.nav-icons {\n  margin: 0 0 10px 0;\n}\n\n.nav-text>li>a,\n.nav-icons>li>a {\n  display: block;\n  padding: 0px 18px;\n  color: #9A9A9A;\n  text-align: center;\n  opacity: 0.8;\n  filter: alpha(opacity=80);\n}\n\n.nav-text>li>a:hover,\n.nav-text>li>a:focus,\n.nav-icons>li>a:hover,\n.nav-icons>li>a:focus {\n  background-color: transparent;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.nav-text>li:first-child a,\n.nav-icons>li:first-child a {\n  padding-left: 0;\n}\n\n.nav-text>li.active a,\n.nav-icons>li.active a {\n  color: #51bcda;\n}\n\n.nav-icons>li {\n  display: inline-block;\n}\n\n.nav-icons>li>a {\n  padding: 0 10px;\n  margin-bottom: 10px;\n}\n\n.nav-icons>li>a i {\n  font-size: 1.6em;\n  margin-bottom: 10px;\n  width: 1.6em;\n}\n\n.nav-icons.nav-stacked>li {\n  display: block;\n}\n\n.nav-icons.nav-stacked>li>a {\n  margin-bottom: 20px;\n}\n\n.nav-blue>li.active a {\n  color: #51cbce;\n}\n\n.nav-azure>li.active a {\n  color: #51bcda;\n}\n\n.nav-green>li.active a {\n  color: #6bd098;\n}\n\n.nav-orange>li.active a {\n  color: #fbc658;\n}\n\n.nav-red>li.active a {\n  color: #f5593d;\n}\n\n.nav-text {\n  margin: 0 0 10px 0;\n}\n\n.nav-text>li>a {\n  font-size: 0.9em;\n  text-transform: uppercase;\n  padding: 3px 0;\n  text-align: left;\n  font-weight: 500;\n}\n\n.nav-text>li:first-child>a {\n  padding-top: 0;\n}\n\n.nav-text h4 {\n  margin-top: 0;\n}\n\n.nav-text:not(.nav-stacked)>li {\n  display: inline-block;\n}\n\n.nav-text:not(.nav-stacked)>li>a {\n  margin-right: 15px;\n}\n\n.page-item:first-child .page-link,\n.page-item:last-child .page-link {\n  border-bottom-left-radius: 20px;\n  border-top-left-radius: 20px;\n  border-bottom-right-radius: 20px;\n  border-top-right-radius: 20px;\n}\n\n.nav-pills-default .nav-item.show .nav-link,\n.nav-pills-default .nav-link.active {\n  background-color: #66615B !important;\n}\n\n.nav-pills-primary .nav-item.show .nav-link,\n.nav-pills-primary .nav-link.active {\n  background-color: #51cbce !important;\n}\n\n.nav-pills-info .nav-item.show .nav-link,\n.nav-pills-info .nav-link.active {\n  background-color: #51bcda !important;\n}\n\n.nav-pills-warning .nav-item.show .nav-link,\n.nav-pills-warning .nav-link.active {\n  background-color: #fbc658 !important;\n}\n\n.nav-pills-success .nav-item.show .nav-link,\n.nav-pills-success .nav-link.active {\n  background-color: #6bd098 !important;\n}\n\n.nav-pills-danger .nav-item.show .nav-link,\n.nav-pills-danger .nav-link.active {\n  background-color: #f5593d !important;\n}\n\n.pagination>li>a:hover,\n.pagination>li>a:focus,\n.pagination>li>a:active,\n.pagination>li.active>a,\n.pagination>li.active>span,\n.pagination>li.active>a:hover,\n.pagination>li.active>span:hover,\n.pagination>li.active>a:focus,\n.pagination>li.active>span:focus {\n  background-color: #f5593d;\n  border-color: #f5593d;\n  color: #FFFFFF;\n}\n\n.page-item.active .page-link {\n  background-color: #f5593d;\n  color: white;\n  border-color: #f5593d;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0;\n}\n\n.pagination .page-link {\n  box-shadow: none;\n}\n\n/*           Font Smoothing      */\n\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3,\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6,\np,\n.navbar,\n.brand,\na,\n.td-name,\ntd,\nbutton,\ninput,\nselect,\ntextarea {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  font-family: \"Montserrat\", \"Helvetica\", Arial, sans-serif;\n  font-weight: 300;\n}\n\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3,\nh4,\n.h4 {\n  margin: 30px 0 0;\n}\n\nh1,\n.h1 {\n  font-size: 3.6em;\n}\n\nh2,\n.h2 {\n  font-size: 2.8em;\n}\n\nh3,\n.h3 {\n  font-size: 1.825em;\n  line-height: 1.4;\n  margin: 20px 0 0px;\n}\n\nh4,\n.h4 {\n  font-size: 1.6em;\n  line-height: 1.2em;\n}\n\nh5,\n.h5 {\n  font-size: 1.35em;\n  line-height: 1.4em;\n}\n\nh6,\n.h6 {\n  font-size: 0.9em;\n  font-weight: 600;\n  line-height: 1.5em;\n}\n\np {\n  font-size: 15px;\n  line-height: 1.5em;\n  margin-bottom: 5px;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  color: #9A9A9A;\n  line-height: 1.5em;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh1 .small,\nh2 .small,\nh3 .small {\n  font-size: 60%;\n}\n\n.title,\n.card-title,\n.info-title,\n.footer-brand,\n.footer-big h5,\n.footer-big h4,\n.media .media-heading {\n  font-family: \"Montserrat\", \"Helvetica\", Arial, sans-serif;\n}\n\n.title,\n.title a,\n.card-title,\n.card-title a,\n.info-title,\n.info-title a,\n.footer-brand,\n.footer-brand a,\n.footer-big h5,\n.footer-big h5 a,\n.footer-big h4,\n.footer-big h4 a,\n.media .media-heading,\n.media .media-heading a {\n  color: #333333;\n  text-decoration: none;\n}\n\n.title-uppercase {\n  text-transform: uppercase;\n}\n\n.description {\n  color: #9A9A9A;\n}\n\nblockquote small {\n  font-style: normal;\n}\n\n.text-muted {\n  color: #DDDDDD;\n}\n\n.text-primary,\n.text-primary:hover {\n  color: #51cbce !important;\n}\n\n.text-info,\n.text-info:hover {\n  color: #51bcda !important;\n}\n\n.text-success,\n.text-success:hover {\n  color: #6bd098 !important;\n}\n\n.text-warning,\n.text-warning:hover {\n  color: #fbc658 !important;\n}\n\n.text-danger,\n.text-danger:hover {\n  color: #f5593d !important;\n}\n\n.glyphicon {\n  line-height: 1;\n}\n\n.heart {\n  color: #EB5E28;\n  animation: heathing 1s ease infinite;\n}\n\n@keyframes heathing {\n  0% {\n    transform: scale(0.75);\n  }\n  20% {\n    transform: scale(1);\n  }\n  40% {\n    transform: scale(0.75);\n  }\n  60% {\n    transform: scale(1);\n  }\n  80% {\n    transform: scale(0.75);\n  }\n  100% {\n    transform: scale(0.75);\n  }\n}\n\n.footer .credits,\n.footer-nav {\n  line-height: 85px;\n}\n\n.footer .btn {\n  margin-bottom: 0;\n}\n\n.blockquote {\n  border-left: 0 none;\n  border-bottom: 1px solid #CCC5B9;\n  border-top: 1px solid #CCC5B9;\n  font-weight: 300;\n  margin: 15px 0 10px;\n  text-align: center;\n}\n\n.title {\n  margin-top: 30px;\n  margin-bottom: 25px;\n  min-height: 32px;\n}\n\n.title.text-center {\n  margin-bottom: 50px;\n}\n\n/*     General overwrite     */\n\nbody {\n  color: #66615b;\n  font-size: 14px;\n  font-weight: 300;\n  font-family: 'Montserrat', \"Helvetica\", Arial, sans-serif;\n}\n\na {\n  color: #51bcda;\n}\n\na:hover,\na:focus {\n  color: #2ba9cd;\n  text-decoration: none;\n}\n\nhr {\n  border-color: #F1EAE0;\n}\n\n.icon {\n  fill: #66615b;\n}\n\n.fa-base {\n  font-size: 1.25em !important;\n}\n\na:focus,\na:active,\nbutton::-moz-focus-inner,\ninput[type=\"reset\"]::-moz-focus-inner,\ninput[type=\"button\"]::-moz-focus-inner,\ninput[type=\"submit\"]::-moz-focus-inner,\nselect::-moz-focus-inner,\ninput[type=\"file\"]>input[type=\"button\"]::-moz-focus-inner {\n  outline: 0;\n}\n\n.ui-slider-handle:focus,\n.navbar-toggle {\n  outline: 0 !important;\n}\n\n/*           Animations              */\n\n.form-control,\n.input-group-addon,\n.tagsinput,\n.navbar,\n.navbar .alert,\n.carousel-control.right,\n.carousel-control.left {\n  -webkit-transition: all 300ms linear;\n  -moz-transition: all 300ms linear;\n  -o-transition: all 300ms linear;\n  -ms-transition: all 300ms linear;\n  transition: all 300ms linear;\n}\n\n.tagsinput .tag,\n.tagsinput-remove-link,\n.filter,\n.btn-hover,\n[data-toggle=\"collapse\"] i,\n.animation-transition-fast,\n.dropdown-menu .dropdown-item {\n  -webkit-transition: all 150ms linear;\n  -moz-transition: all 150ms linear;\n  -o-transition: all 150ms linear;\n  -ms-transition: all 150ms linear;\n  transition: all 150ms linear;\n}\n\n.btn-morphing .fa,\n.btn-morphing .circle,\n.gsdk-collapse {\n  -webkit-transition: all 300ms linear;\n  -moz-transition: all 300ms linear;\n  -o-transition: all 300ms linear;\n  -ms-transition: all 300ms linear;\n  transition: all 300ms linear;\n}\n\n.fa {\n  width: 18px;\n  text-align: center;\n}\n\n.margin-top {\n  margin-top: 50px;\n}\n\n.iframe-container iframe {\n  box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2);\n}\n\n/*       CT colors          */\n\n.ct-blue {\n  color: #51cbce;\n}\n\n.ct-azure {\n  color: #51bcda;\n}\n\n.ct-green {\n  color: #6bd098;\n}\n\n.ct-orange {\n  color: #fbc658;\n}\n\n.ct-red {\n  color: #f5593d;\n}\n\n.pagination .page-item .page-link .fa {\n  width: auto;\n  font-weight: 600;\n}\n\n.bg-primary {\n  background-color: #6dd3d6 !important;\n}\n\n.bg-info {\n  background-color: #6ec7e0 !important;\n}\n\n.bg-success {\n  background-color: #86d9ab !important;\n}\n\n.bg-warning {\n  background-color: #fcd27b !important;\n}\n\n.bg-danger {\n  background-color: #f7765f !important;\n}\n\n.wrapper {\n  -webkit-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  left: 0;\n  background-color: #FFFFFF;\n  position: relative;\n  z-index: 1;\n}\n\n.heart {\n  color: #EB5E28;\n  animation: heathing 1s ease infinite;\n}\n\n@keyframes heathing {\n  0% {\n    transform: scale(0.75);\n  }\n  20% {\n    transform: scale(1);\n  }\n  40% {\n    transform: scale(0.75);\n  }\n  60% {\n    transform: scale(1);\n  }\n  80% {\n    transform: scale(0.75);\n  }\n  100% {\n    transform: scale(0.75);\n  }\n}\n\n.bd-docs .page-header {\n  min-height: 50vh;\n}\n\n.offline-doc .navbar.navbar-transparent {\n  padding-top: 25px;\n  border-bottom: none;\n}\n\n.offline-doc .navbar.navbar-transparent .navbar-minimize {\n  display: none;\n}\n\n.offline-doc .navbar.navbar-transparent .navbar-brand,\n.offline-doc .navbar.navbar-transparent .collapse .navbar-nav .nav-link {\n  color: #FFFFFF !important;\n}\n\n.offline-doc .footer {\n  position: absolute;\n  width: 100%;\n  background: transparent;\n  bottom: 0;\n  z-index: 3;\n}\n\n.offline-doc .footer nav>ul a:not(.btn),\n.offline-doc .footer .copyright {\n  color: #FFFFFF !important;\n}\n\n.offline-doc .page-header .page-header-image {\n  position: absolute;\n  background-size: cover;\n  background-position: center center;\n  width: 100%;\n  height: 100%;\n  z-index: -1;\n}\n\n.offline-doc .page-header .container {\n  z-index: 3;\n}\n\n.offline-doc .page-header:after {\n  background-color: rgba(0, 0, 0, 0.5);\n  content: \"\";\n  display: block;\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 2;\n}\n\n.main .section:first-of-type {\n  position: relative;\n  z-index: 2;\n}\n\n/*           Labels & Progress-bar              */\n\n.label {\n  padding: 0.2em 0.6em;\n  border-radius: 10px;\n  color: #FFFFFF;\n  font-weight: 500;\n  font-size: 0.75em;\n  text-transform: uppercase;\n  display: inline-block;\n  margin-bottom: 3px;\n  line-height: 17px;\n}\n\n.label-primary {\n  background-color: #51cbce;\n}\n\n.label-info {\n  background-color: #51bcda;\n}\n\n.label-success {\n  background-color: #6bd098;\n}\n\n.label-warning {\n  background-color: #fbc658;\n}\n\n.label-danger {\n  background-color: #f5593d;\n}\n\n.label-default {\n  background-color: #66615B;\n}\n\n/*--------------------------------\n\nnucleo-icons Web Font - built using nucleoapp.com\nLicense - nucleoapp.com/license/\n\n-------------------------------- */\n\n@font-face {\n  font-family: 'nucleo-icons';\n  src: url(\"../fonts/nucleo-icons.eot\");\n  src: url(\"../fonts/nucleo-icons.eot\") format(\"embedded-opentype\"), url(\"../fonts/nucleo-icons.woff2\") format(\"woff2\"), url(\"../fonts/nucleo-icons.woff\") format(\"woff\"), url(\"../fonts/nucleo-icons.ttf\") format(\"truetype\"), url(\"../fonts/nucleo-icons.svg\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n\n/*------------------------\n\tbase class definition\n-------------------------*/\n\n.nc-icon {\n  display: inline-block;\n  font: normal normal normal 14px/1 'nucleo-icons';\n  font-size: inherit;\n  speak: none;\n  text-transform: none;\n  /* Better Font Rendering */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n/*------------------------\n  change icon size\n-------------------------*/\n\n.nc-icon.lg {\n  font-size: 1.33333333em;\n  vertical-align: -16%;\n}\n\n.nc-icon.x2 {\n  font-size: 2em;\n}\n\n.nc-icon.x3 {\n  font-size: 3em;\n}\n\n/*----------------------------------\n  add a square/circle background\n-----------------------------------*/\n\n.nc-icon.square,\n.nc-icon.circle {\n  padding: 0.33333333em;\n  vertical-align: -16%;\n  background-color: #eee;\n}\n\n.nc-icon.circle {\n  border-radius: 50%;\n}\n\n/*------------------------\n  list icons\n-------------------------*/\n\n.nc-icon-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.nc-icon-ul>li {\n  position: relative;\n}\n\n.nc-icon-ul>li>.nc-icon {\n  position: absolute;\n  left: -1.57142857em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.nc-icon-ul>li>.nc-icon.lg {\n  top: 0;\n  left: -1.35714286em;\n}\n\n.nc-icon-ul>li>.nc-icon.circle,\n.nc-icon-ul>li>.nc-icon.square {\n  top: -0.19047619em;\n  left: -1.9047619em;\n}\n\n/*------------------------\n  spinning icons\n-------------------------*/\n\n.nc-icon.spin {\n  -webkit-animation: nc-icon-spin 2s infinite linear;\n  -moz-animation: nc-icon-spin 2s infinite linear;\n  animation: nc-icon-spin 2s infinite linear;\n}\n\n@-webkit-keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n  }\n}\n\n@-moz-keyframes nc-icon-spin {\n  0% {\n    -moz-transform: rotate(0deg);\n  }\n  100% {\n    -moz-transform: rotate(360deg);\n  }\n}\n\n@keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    -moz-transform: rotate(0deg);\n    -ms-transform: rotate(0deg);\n    -o-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    -moz-transform: rotate(360deg);\n    -ms-transform: rotate(360deg);\n    -o-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n/*------------------------\n  rotated/flipped icons\n-------------------------*/\n\n.nc-icon.rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -moz-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  -o-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.nc-icon.rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -moz-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  -o-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.nc-icon.rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -moz-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  -o-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.nc-icon.flip-y {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);\n  -webkit-transform: scale(-1, 1);\n  -moz-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  -o-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.nc-icon.flip-x {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: scale(1, -1);\n  -moz-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  -o-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n/*------------------------\n\tfont icons\n-------------------------*/\n\n.nc-air-baloon::before {\n  content: \"\\ea01\";\n}\n\n.nc-album-2::before {\n  content: \"\\ea02\";\n}\n\n.nc-alert-circle-i::before {\n  content: \"\\ea04\";\n}\n\n.nc-align-center::before {\n  content: \"\\ea03\";\n}\n\n.nc-align-left-2::before {\n  content: \"\\ea05\";\n}\n\n.nc-ambulance::before {\n  content: \"\\ea06\";\n}\n\n.nc-app::before {\n  content: \"\\ea07\";\n}\n\n.nc-atom::before {\n  content: \"\\ea08\";\n}\n\n.nc-badge::before {\n  content: \"\\ea09\";\n}\n\n.nc-bag-16::before {\n  content: \"\\ea0a\";\n}\n\n.nc-bank::before {\n  content: \"\\ea0b\";\n}\n\n.nc-basket::before {\n  content: \"\\ea0c\";\n}\n\n.nc-bell-55::before {\n  content: \"\\ea0d\";\n}\n\n.nc-bold::before {\n  content: \"\\ea0e\";\n}\n\n.nc-book-bookmark::before {\n  content: \"\\ea0f\";\n}\n\n.nc-bookmark-2::before {\n  content: \"\\ea10\";\n}\n\n.nc-box-2::before {\n  content: \"\\ea11\";\n}\n\n.nc-box::before {\n  content: \"\\ea12\";\n}\n\n.nc-briefcase-24::before {\n  content: \"\\ea13\";\n}\n\n.nc-bulb-63::before {\n  content: \"\\ea14\";\n}\n\n.nc-bullet-list-67::before {\n  content: \"\\ea15\";\n}\n\n.nc-bus-front-12::before {\n  content: \"\\ea16\";\n}\n\n.nc-button-pause::before {\n  content: \"\\ea17\";\n}\n\n.nc-button-play::before {\n  content: \"\\ea18\";\n}\n\n.nc-button-power::before {\n  content: \"\\ea19\";\n}\n\n.nc-calendar-60::before {\n  content: \"\\ea1a\";\n}\n\n.nc-camera-compact::before {\n  content: \"\\ea1b\";\n}\n\n.nc-caps-small::before {\n  content: \"\\ea1c\";\n}\n\n.nc-cart-simple::before {\n  content: \"\\ea1d\";\n}\n\n.nc-chart-bar-32::before {\n  content: \"\\ea1e\";\n}\n\n.nc-chart-pie-36::before {\n  content: \"\\ea1f\";\n}\n\n.nc-chat-33::before {\n  content: \"\\ea20\";\n}\n\n.nc-check-2::before {\n  content: \"\\ea21\";\n}\n\n.nc-circle-10::before {\n  content: \"\\ea22\";\n}\n\n.nc-cloud-download-93::before {\n  content: \"\\ea23\";\n}\n\n.nc-cloud-upload-94::before {\n  content: \"\\ea24\";\n}\n\n.nc-compass-05::before {\n  content: \"\\ea25\";\n}\n\n.nc-controller-modern::before {\n  content: \"\\ea26\";\n}\n\n.nc-credit-card::before {\n  content: \"\\ea27\";\n}\n\n.nc-delivery-fast::before {\n  content: \"\\ea28\";\n}\n\n.nc-diamond::before {\n  content: \"\\ea29\";\n}\n\n.nc-email-85::before {\n  content: \"\\ea2a\";\n}\n\n.nc-favourite-28::before {\n  content: \"\\ea2b\";\n}\n\n.nc-glasses-2::before {\n  content: \"\\ea2c\";\n}\n\n.nc-globe-2::before {\n  content: \"\\ea2d\";\n}\n\n.nc-globe::before {\n  content: \"\\ea2e\";\n}\n\n.nc-hat-3::before {\n  content: \"\\ea2f\";\n}\n\n.nc-headphones::before {\n  content: \"\\ea30\";\n}\n\n.nc-html5::before {\n  content: \"\\ea31\";\n}\n\n.nc-image::before {\n  content: \"\\ea32\";\n}\n\n.nc-istanbul::before {\n  content: \"\\ea33\";\n}\n\n.nc-key-25::before {\n  content: \"\\ea34\";\n}\n\n.nc-laptop::before {\n  content: \"\\ea35\";\n}\n\n.nc-layout-11::before {\n  content: \"\\ea36\";\n}\n\n.nc-lock-circle-open::before {\n  content: \"\\ea37\";\n}\n\n.nc-map-big::before {\n  content: \"\\ea38\";\n}\n\n.nc-minimal-down::before {\n  content: \"\\ea39\";\n}\n\n.nc-minimal-left::before {\n  content: \"\\ea3a\";\n}\n\n.nc-minimal-right::before {\n  content: \"\\ea3b\";\n}\n\n.nc-minimal-up::before {\n  content: \"\\ea3c\";\n}\n\n.nc-mobile::before {\n  content: \"\\ea3d\";\n}\n\n.nc-money-coins::before {\n  content: \"\\ea3e\";\n}\n\n.nc-note-03::before {\n  content: \"\\ea3f\";\n}\n\n.nc-palette::before {\n  content: \"\\ea40\";\n}\n\n.nc-paper::before {\n  content: \"\\ea41\";\n}\n\n.nc-pin-3::before {\n  content: \"\\ea42\";\n}\n\n.nc-planet::before {\n  content: \"\\ea43\";\n}\n\n.nc-refresh-69::before {\n  content: \"\\ea44\";\n}\n\n.nc-ruler-pencil::before {\n  content: \"\\ea45\";\n}\n\n.nc-satisfied::before {\n  content: \"\\ea46\";\n}\n\n.nc-scissors::before {\n  content: \"\\ea47\";\n}\n\n.nc-send::before {\n  content: \"\\ea48\";\n}\n\n.nc-settings-gear-65::before {\n  content: \"\\ea49\";\n}\n\n.nc-settings::before {\n  content: \"\\ea4a\";\n}\n\n.nc-share-66::before {\n  content: \"\\ea4b\";\n}\n\n.nc-shop::before {\n  content: \"\\ea4c\";\n}\n\n.nc-simple-add::before {\n  content: \"\\ea4d\";\n}\n\n.nc-simple-delete::before {\n  content: \"\\ea4e\";\n}\n\n.nc-simple-remove::before {\n  content: \"\\ea4f\";\n}\n\n.nc-single-02::before {\n  content: \"\\ea50\";\n}\n\n.nc-single-copy-04::before {\n  content: \"\\ea51\";\n}\n\n.nc-sound-wave::before {\n  content: \"\\ea52\";\n}\n\n.nc-spaceship::before {\n  content: \"\\ea53\";\n}\n\n.nc-sun-fog-29::before {\n  content: \"\\ea54\";\n}\n\n.nc-support-17::before {\n  content: \"\\ea55\";\n}\n\n.nc-tablet-2::before {\n  content: \"\\ea56\";\n}\n\n.nc-tag-content::before {\n  content: \"\\ea57\";\n}\n\n.nc-tap-01::before {\n  content: \"\\ea58\";\n}\n\n.nc-tie-bow::before {\n  content: \"\\ea59\";\n}\n\n.nc-tile-56::before {\n  content: \"\\ea5a\";\n}\n\n.nc-time-alarm::before {\n  content: \"\\ea5b\";\n}\n\n.nc-touch-id::before {\n  content: \"\\ea5c\";\n}\n\n.nc-trophy::before {\n  content: \"\\ea5d\";\n}\n\n.nc-tv-2::before {\n  content: \"\\ea5e\";\n}\n\n.nc-umbrella-13::before {\n  content: \"\\ea5f\";\n}\n\n.nc-user-run::before {\n  content: \"\\ea60\";\n}\n\n.nc-vector::before {\n  content: \"\\ea61\";\n}\n\n.nc-watch-time::before {\n  content: \"\\ea62\";\n}\n\n.nc-world-2::before {\n  content: \"\\ea63\";\n}\n\n.nc-zoom-split::before {\n  content: \"\\ea64\";\n}\n\n/* all icon font classes list here */\n\n.btn-twitter {\n  color: #55acee !important;\n}\n\n.btn-twitter:hover,\n.btn-twitter:focus,\n.btn-twitter:active {\n  color: #55acee !important;\n}\n\n.btn-facebook {\n  color: #3b5998 !important;\n}\n\n.btn-facebook:hover,\n.btn-facebook:focus,\n.btn-facebook:active {\n  color: #3b5998 !important;\n}\n\n.btn-google {\n  color: #dd4b39 !important;\n}\n\n.btn-google:hover,\n.btn-google:focus,\n.btn-google:active {\n  color: #dd4b39 !important;\n}\n\n.btn-linkedin {\n  color: #0976b4 !important;\n}\n\n.btn-linkedin:hover,\n.btn-linkedin:focus,\n.btn-linkedin:active {\n  color: #0976b4 !important;\n}\n\n.btn-twitter-bg {\n  background-color: #55acee !important;\n  border-color: #55acee !important;\n}\n\n.btn-twitter-bg:hover {\n  background-color: #3ea1ec !important;\n  border-color: #3ea1ec !important;\n}\n\n.btn-facebook-bg {\n  background-color: #3b5998 !important;\n  border-color: #3b5998 !important;\n}\n\n.btn-facebook-bg:hover {\n  background-color: #344e86 !important;\n  border-color: #344e86 !important;\n}\n\n.btn-google-bg {\n  background-color: #dd4b39 !important;\n  border-color: #dd4b39 !important;\n}\n\n.btn-google-bg:hover {\n  background-color: #d73925 !important;\n  border-color: #d73925 !important;\n}\n\n.btn-github-bg {\n  background-color: #767676 !important;\n  border-color: #767676 !important;\n}\n\n.btn-github-bg:hover {\n  background-color: dimgray !important;\n  border-color: dimgray !important;\n}\n\n/*             Navigation menu                */\n\n/*             Navigation Tabs                 */\n\n.nav-tabs-navigation {\n  text-align: center;\n  border-bottom: 1px solid #F1EAE0;\n  margin-bottom: 30px;\n}\n\n.nav-tabs-navigation .nav>.nav-item>.nav-link {\n  padding-bottom: 20px;\n}\n\n.nav-tabs-wrapper {\n  display: inline-block;\n  margin-bottom: -6px;\n  margin-left: 1.25%;\n  margin-right: 1.25%;\n  position: relative;\n  width: auto;\n}\n\n.nav-tabs {\n  border-bottom: 0 none;\n  font-size: 16px;\n  font-weight: 600;\n}\n\n.info {\n    padding: 30px 0;\n    text-align: center;\n    max-width: 400px;\n    margin: 0 auto;\n}\n.info .icon {\n    margin-top: 0;\n    font-size: 3.4em;\n}\n\n.nc-icon {\n    display: inline-block;\n    font: normal normal normal 14px/1 nucleo-icons;\n    font-size: inherit;\n    speak: none;\n    text-transform: none;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n}\n\n.nav-tabs .nav-item .nav-link {\n  border: 0 none;\n  color: #A49E93;\n  background-color: transparent;\n}\n\n.nav-tabs .nav-item .nav-link:hover {\n  color: #66615b;\n}\n\n.nav-tabs .nav-item .nav-link.active {\n  color: #66615b;\n}\n\n.nav-tabs .nav-item {\n  color: #66615b;\n  position: relative;\n}\n\n.nav-tabs .nav-item .nav-link.active,\n.nav-tabs .nav-item .nav-link.active:hover,\n.nav-tabs .nav-item .nav-link.active:focus {\n  background-color: transparent;\n  border: 0 none;\n}\n\n.nav-tabs .nav-item .nav-link.active:after,\n.nav-tabs .nav-item .nav-link.active:hover:after,\n.nav-tabs .nav-item .nav-link.active:focus:after {\n  border-bottom: 11px solid #FFFFFF;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 40%;\n  bottom: 5px;\n}\n\n.nav-tabs .nav-item .nav-link.active:before,\n.nav-tabs .nav-item .nav-link.active:hover:before,\n.nav-tabs .nav-item .nav-link.active:focus:before {\n  border-bottom: 11px solid #F1EAE0;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 40%;\n  bottom: 6px;\n}\n\n.nav-tabs .nav-item.show .nav-link {\n  background-color: transparent;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -6px;\n  margin-left: -46px;\n  border-radius: 8px;\n}\n\n.nav-tabs .dropdown-menu .dropdown-item:hover,\n.nav-tabs .dropdown-menu .dropdown-item.active {\n  color: #FFFFFF;\n  background-color: #68B3C8;\n}\n\n.nav-tabs .dropdown-menu :before {\n  border-bottom: 11px solid #F1EAE0;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  top: -11px;\n}\n\n.nav-tabs .dropdown-menu :after {\n  border-bottom: 11px solid #FFFCF5;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n  right: 12px;\n  top: -10px;\n}\n\n.profile-content .tab-content .tab-pane {\n  min-height: 200px;\n}\n\n.profile-content .tab-content #tweets,\n.profile-content .tab-content #connections,\n.profile-content .tab-content #media {\n  height: 100%;\n}\n\n/*             Navigation Pills               */\n\n.nav-pills .nav-item+.nav-link {\n  margin-left: 0;\n}\n\n.nav-pills .nav-item .nav-link {\n  border: 1px solid #66615B;\n  border-radius: 0;\n  color: #66615B;\n  font-weight: 600;\n  margin-left: -1px;\n  padding: 10px 25px;\n}\n\n.nav-pills .nav-item.active .nav-link,\n.nav-pills .nav-item.active .nav-link:hover,\n.nav-pills .nav-item.active .nav-link:focus {\n  background-color: #66615B;\n  color: #FFFFFF;\n}\n\n.nav-pills .nav-item:first-child .nav-link {\n  border-radius: 30px 0 0 30px !important;\n  margin: 0;\n}\n\n.nav-pills .nav-item:last-child .nav-link {\n  border-radius: 0 30px 30px 0 !important;\n}\n\n.nav-pills .nav-item .nav-link.active {\n  background-color: #66615B;\n  color: #FFFFFF;\n}\n\n.nav-pills-primary .nav-item .nav-link {\n  border: 1px solid #51cbce !important;\n  color: #51cbce !important;\n}\n\n.nav-pills-primary .nav-item .nav-link.active {\n  border: 1px solid #51cbce !important;\n  color: #FFFFFF !important;\n}\n\n.nav-pills-danger .nav-item .nav-link {\n  border: 1px solid #f5593d !important;\n  color: #f5593d !important;\n}\n\n.nav-pills-danger .nav-item .nav-link.active {\n  border: 1px solid #f5593d !important;\n  color: #FFFFFF !important;\n}\n\n.nav-pills-info .nav-item .nav-link {\n  border: 1px solid #51bcda !important;\n  color: #51bcda !important;\n}\n\n.nav-pills-info .nav-item .nav-link.active {\n  border: 1px solid #51bcda !important;\n  color: #FFFFFF !important;\n}\n\n.nav-pills-success .nav-item .nav-link {\n  border: 1px solid #6bd098 !important;\n  color: #6bd098 !important;\n}\n\n.nav-pills-success .nav-item .nav-link.active {\n  border: 1px solid #6bd098 !important;\n  color: #FFFFFF !important;\n}\n\n.nav-pills-warning .nav-item .nav-link {\n  border: 1px solid #fbc658 !important;\n  color: #fbc658 !important;\n}\n\n.nav-pills-warning .nav-item .nav-link.active {\n  border: 1px solid #fbc658 !important;\n  color: #FFFFFF !important;\n}\n\n.nav .nav-item .nav-link:hover,\n.nav .nav-item .nav-link:focus {\n  background-color: transparent;\n}\n\n.navbar {\n  border: 0;\n  font-size: 14px;\n  transition: all 0.4s;\n  -webkit-transition: all 0.4s;\n  padding: 0;\n  background: #FFFFFF;\n  box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n}\n\n.navbar .navbar-brand {\n  font-weight: 600;\n  margin: 5px 0px;\n  padding: 20px 15px;\n  font-size: 14px;\n  color: #66615B;\n  text-transform: uppercase;\n}\n\n.navbar .navbar-toggler:focus {\n  outline: none;\n}\n\n.navbar .form-control-feedback {\n  padding-left: 0px;\n}\n\n.navbar:not([class*=\"bg\"]) .navbar-toggler .navbar-toggler-bar {\n  background: #66615B !important;\n}\n\n.navbar .navbar-nav .nav-item .nav-link {\n  line-height: 1.6;\n  margin: 15px 3px;\n  padding: 10px 15px;\n  opacity: .8;\n  font-size: 12px;\n  text-transform: uppercase;\n  font-weight: 600;\n  color: #66615B;\n}\n\n.navbar .navbar-nav .nav-item .nav-link p {\n  margin: 0px 0px;\n  text-transform: uppercase;\n  font-weight: 600;\n  font-size: 12px;\n  line-height: 1.5em;\n  padding: 15px 0;\n}\n\n.navbar .navbar-nav .nav-item .nav-link.btn {\n  margin: 15px 3px;\n  padding: 9px;\n}\n\n.navbar .navbar-nav .nav-item .nav-link [class^=\"fa\"] {\n  font-size: 17px;\n  position: relative;\n  right: 5px;\n}\n\n.navbar .navbar-nav .dropdown-menu {\n  border-radius: 12px;\n  margin-top: 1px;\n}\n\n.navbar .navbar-nav .nav-item .btn i {\n  color: #FFFFFF;\n}\n\n.navbar .navbar-collapse .nav-item .nav-link p {\n  display: inline;\n}\n\n.navbar .navbar-collapse .nav-item .dropdown-item i {\n  margin: 0 10px;\n  margin: 0 10px 0px 5px;\n  font-size: 18px;\n  position: relative;\n  top: 3px;\n}\n\n.navbar .navbar-collapse.show .navbar-nav .nav-item {\n  padding-right: 10px;\n}\n\n.navbar .navbar-collapse:after {\n  background-color: #FFFCF5;\n}\n\n.navbar #navbarSupportedContent .nav-item {\n  position: relative;\n}\n\n.navbar .notification-bubble {\n  padding: 0.4em 0.6em;\n  position: absolute;\n  top: 10px;\n  right: -2px;\n}\n\n.navbar .btn {\n  margin: 14px 3px;\n  font-size: 12px;\n}\n\n.navbar .btn i {\n  font-size: 14px;\n  position: relative;\n  top: 2px;\n}\n\n.navbar .btn-simple {\n  font-size: 16px;\n}\n\n.navbar .caret {\n  left: 0;\n  right: 0;\n  margin-right: auto;\n  margin-left: auto;\n  position: absolute;\n}\n\n.navbar.navbar-transparent {\n  background: transparent !important;\n  padding-top: 25px;\n  box-shadow: none;\n}\n\n.navbar.navbar-transparent .navbar-brand {\n  color: #FFFFFF;\n}\n\n.navbar.navbar-transparent .navbar-nav .nav-item .nav-link {\n  color: #FFFFFF;\n}\n\n.navbar.navbar-transparent .navbar-toggler .navbar-toggler-bar {\n  background: #FFFFFF !important;\n}\n\n.navbar .logo-container {\n  margin-top: 5px;\n}\n\n.navbar .logo-container .logo {\n  overflow: hidden;\n  border-radius: 50%;\n  border: 1px solid #333333;\n  width: 50px;\n  float: left;\n}\n\n.navbar .logo-container .logo img {\n  width: 100%;\n}\n\n.navbar .logo-container .brand {\n  font-size: 18px;\n  color: #FFFFFF;\n  line-height: 20px;\n  float: left;\n  margin-left: 10px;\n  margin-top: 5px;\n  width: 75px;\n  height: 50px;\n}\n\n.navbar .navbar-toggler .navbar-toggler-bar+.navbar-toggler-bar,\n.navbar .navbar-toggler .navbar-toggler-icon+.navbar-toggler-icon {\n  margin-top: 4px;\n}\n\n.navbar .navbar-toggler .navbar-toggler-bar {\n  background: #FFFFFF !important;\n  display: block;\n  position: relative;\n  width: 24px;\n  height: 2px;\n  border-radius: 1px;\n  margin: 0 auto;\n}\n\n.navbar-transparent .navbar-brand,\n[class*=\"bg\"] .navbar-brand {\n  color: #FFFFFF;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.navbar-transparent .navbar-brand:focus,\n.navbar-transparent .navbar-brand:hover,\n[class*=\"bg\"] .navbar-brand:focus,\n[class*=\"bg\"] .navbar-brand:hover {\n  background-color: transparent;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  color: #FFFFFF;\n}\n\n.navbar-transparent .navbar-nav .nav-item .nav-link:not(.btn),\n[class*=\"bg\"] .navbar-nav .nav-item .nav-link:not(.btn) {\n  color: #FFFFFF;\n  border-color: #FFFFFF;\n}\n\n.navbar-transparent .navbar-nav .active .nav-link .active .nav-link:hover,\n.navbar-transparent .navbar-nav .active .nav-link:focus,\n.navbar-transparent .navbar-nav .nav-item .nav-link:hover,\n.navbar-transparent .navbar-nav .nav-item .nav-link:focus,\n[class*=\"bg\"] .navbar-nav .active .nav-link .active .nav-link:hover,\n[class*=\"bg\"] .navbar-nav .active .nav-link:focus,\n[class*=\"bg\"] .navbar-nav .nav-item .nav-link:hover,\n[class*=\"bg\"] .navbar-nav .nav-item .nav-link:focus {\n  background-color: transparent;\n  color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.navbar-transparent .navbar-nav .nav .nav-item a.btn:hover,\n[class*=\"bg\"] .navbar-nav .nav .nav-item a.btn:hover {\n  background-color: transparent;\n}\n\n.navbar-transparent .navbar-nav .dropdown .nav-link .caret,\n.navbar-transparent .navbar-nav .dropdown .nav-link:hover .caret,\n.navbar-transparent .navbar-nav .dropdown .nav-link:focus .caret,\n[class*=\"bg\"] .navbar-nav .dropdown .nav-link .caret,\n[class*=\"bg\"] .navbar-nav .dropdown .nav-link:hover .caret,\n[class*=\"bg\"] .navbar-nav .dropdown .nav-link:focus .caret {\n  border-bottom-color: #FFFFFF;\n  border-top-color: #FFFFFF;\n}\n\n.navbar-transparent .navbar-nav .open .nav-link,\n.navbar-transparent .navbar-nav .open .nav-link:hover,\n.navbar-transparent .navbar-nav .open .nav-link:focus,\n[class*=\"bg\"] .navbar-nav .open .nav-link,\n[class*=\"bg\"] .navbar-nav .open .nav-link:hover,\n[class*=\"bg\"] .navbar-nav .open .nav-link:focus {\n  background-color: transparent;\n  color: #66615B;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.navbar-transparent .btn-default.btn-fill,\n[class*=\"bg\"] .btn-default.btn-fill {\n  color: #9A9A9A;\n  background-color: #FFFFFF;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.navbar-transparent .btn-default.btn-fill:hover,\n.navbar-transparent .btn-default.btn-fill:focus,\n.navbar-transparent .btn-default.btn-fill:active,\n.navbar-transparent .btn-default.btn-fill.active,\n.navbar-transparent .open .dropdown-toggle.btn-fill.btn-default,\n[class*=\"bg\"] .btn-default.btn-fill:hover,\n[class*=\"bg\"] .btn-default.btn-fill:focus,\n[class*=\"bg\"] .btn-default.btn-fill:active,\n[class*=\"bg\"] .btn-default.btn-fill.active,\n[class*=\"bg\"] .open .dropdown-toggle.btn-fill.btn-default {\n  border-color: #FFFFFF;\n  opacity: 1;\n  filter: alpha(opacity=100);\n}\n\n.navbar-absolute {\n  position: absolute;\n  width: 100%;\n  padding-top: 10px;\n  z-index: 1029;\n}\n\n.bd-docs .navigation-example .navbar.navbar-transparent {\n  padding-top: 0;\n  padding: 20px 0;\n  margin-top: 20px;\n}\n\n.dropdown>.dropdown-menu:first-of-type {\n  display: block;\n  transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 0.3s ease 0s, height 0s linear 0.35s;\n}\n\n.dropdown .dropdown-menu {\n  opacity: 0;\n  filter: alpha(opacity=0);\n  -webkit-box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n  box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n  visibility: hidden;\n  position: absolute;\n}\n\n.dropdown .dropdown-menu[x-placement=\"top-start\"] {\n  -webkit-transform: translate3d(0, 0px, 0) !important;\n  -moz-transform: translate3d(0, 0px, 0) !important;\n  -o-transform: translate3d(0, 0px, 0) !important;\n  -ms-transform: translate3d(0, 0px, 0) !important;\n  transform: translate3d(0, 0px, 0) !important;\n}\n\n.dropdown .dropdown-menu[x-placement=\"bottom-start\"] {\n  -webkit-transform: translate3d(0, 0px, 0) !important;\n  -moz-transform: translate3d(0, 0px, 0) !important;\n  -o-transform: translate3d(0, 0px, 0) !important;\n  -ms-transform: translate3d(0, 0px, 0) !important;\n  transform: translate3d(0, 0px, 0) !important;\n}\n\n.dropdown.show .dropdown-menu {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  visibility: visible;\n}\n\n.dropdown.show .dropdown-menu[x-placement=\"top-start\"] {\n  -webkit-transform: translate3d(0, -50px, 0) !important;\n  -moz-transform: translate3d(0, -50px, 0) !important;\n  -o-transform: translate3d(0, -50px, 0) !important;\n  -ms-transform: translate3d(0, -50px, 0) !important;\n  transform: translate3d(0, -50px, 0) !important;\n  top: auto !important;\n  bottom: 0 !important;\n}\n\n.dropdown.show .dropdown-menu[x-placement=\"bottom-start\"] {\n  -webkit-transform: translate3d(0, 40px, 0) !important;\n  -moz-transform: translate3d(0, 40px, 0) !important;\n  -o-transform: translate3d(0, 40px, 0) !important;\n  -ms-transform: translate3d(0, 40px, 0) !important;\n  transform: translate3d(0, 40px, 0) !important;\n  bottom: auto !important;\n  top: 0 !important;\n}\n\n.dropdown-menu {\n  background-color: #FFFFFF;\n  border: 0 none;\n  border-radius: 12px;\n  margin-top: 10px;\n  padding: 0px;\n}\n\n.dropdown-menu .divider {\n  background-color: #F1EAE0;\n  margin: 0px;\n}\n\n.dropdown-menu .dropdown-header {\n  color: #9A9A9A;\n  font-size: 12px;\n  padding: 10px 15px;\n}\n\n.dropdown-menu .no-notification {\n  color: #9A9A9A;\n  font-size: 1.2em;\n  padding: 30px 30px;\n  text-align: center;\n}\n\n.dropdown-menu .dropdown-item {\n  color: #66615b;\n  font-size: 14px;\n  padding: 10px 45px 10px 15px;\n  clear: both;\n  white-space: nowrap;\n  width: 100%;\n  display: block;\n}\n\n.dropdown-menu .dropdown-item img {\n  margin-top: -3px;\n}\n\n.dropdown-menu .dropdown-item:focus {\n  outline: 0 !important;\n}\n\n.btn-group.select .dropdown-menu {\n  min-width: 100%;\n}\n\n.dropdown-menu .dropdown-item:first-child {\n  border-top-left-radius: 12px;\n  border-top-right-radius: 12px;\n}\n\n.dropdown-menu .dropdown-item:last-child {\n  border-bottom-left-radius: 12px;\n  border-bottom-right-radius: 12px;\n}\n\n.dropdown-menu .dropdown-item.dropdown-toggle:last-of-type {\n  border-bottom-left-radius: 12px;\n  border-bottom-right-radius: 12px;\n}\n\n.dropdown-menu .dropdown-item.dropdown-toggle:last-of-type+.dropdown-menu.show {\n  left: 100% !important;\n}\n\n.dropdown-menu .dropdown-item.dropdown-toggle:last-of-type+.dropdown-menu .dropdown-item.dropdown-toggle {\n  border-bottom-left-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.dropdown-menu .dropdown-item.dropdown-toggle:last-of-type+.dropdown-menu li .dropdown-item.dropdown-toggle {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 12px;\n  border-bottom-right-radius: 12px;\n}\n\n.select .dropdown-menu .dropdown-item:first-child {\n  border-radius: 0;\n  border-bottom: 0 none;\n}\n\n.dropdown-menu .dropdown-item:hover,\n.dropdown-menu .dropdown-item:focus {\n  color: #FFFFFF !important;\n  opacity: 1;\n  text-decoration: none;\n}\n\n.dropdown-menu .dropdown-item:hover,\n.dropdown-menu .dropdown-item:focus {\n  background-color: #66615B;\n}\n\n.dropdown-menu.dropdown-primary .dropdown-item:hover,\n.dropdown-menu.dropdown-primary .dropdown-item:focus {\n  background-color: #6dd3d6;\n}\n\n.dropdown-menu.dropdown-info .dropdown-item:hover,\n.dropdown-menu.dropdown-info .dropdown-item:focus {\n  background-color: #6ec7e0;\n}\n\n.dropdown-menu.dropdown-success .dropdown-item:hover,\n.dropdown-menu.dropdown-success .dropdown-item:focus {\n  background-color: #86d9ab;\n}\n\n.dropdown-menu.dropdown-warning .dropdown-item:hover,\n.dropdown-menu.dropdown-warning .dropdown-item:focus {\n  background-color: #fcd27b;\n}\n\n.dropdown-menu.dropdown-danger .dropdown-item:hover,\n.dropdown-menu.dropdown-danger .dropdown-item:focus {\n  background-color: #f7765f;\n}\n\n.dropdown-divider {\n  margin: 0 !important;\n}\n\n.btn-group.select.open {\n  overflow: visible;\n}\n\n.dropdown-menu-right {\n  right: -2px;\n  left: auto;\n}\n\n.alert {\n  border: 0;\n  border-radius: 0;\n  color: #FFFFFF;\n  padding: 10px 15px;\n  font-size: 14px;\n}\n\n.alert .close {\n  font-size: 20px;\n  color: #FFFFFF;\n}\n\n.container .alert {\n  border-radius: 4px;\n}\n\n.navbar .alert {\n  border-radius: 0;\n  left: 0;\n  position: absolute;\n  right: 0;\n  top: 85px;\n  width: 100%;\n  z-index: 3;\n}\n\n.navbar:not(.navbar-transparent) .alert {\n  top: 70px;\n}\n\n.alert .alert-icon {\n  display: block;\n  font-size: 30px;\n  left: 15px;\n  position: absolute;\n  top: 50%;\n  margin-top: -22px;\n}\n\n.alert .alert-wrapper.message {\n  padding-right: 60px;\n}\n\n.alert .alert-wrapper i {\n  position: relative;\n  font-size: 20px;\n  top: 5px;\n  margin-top: -5px;\n  font-weight: 600;\n}\n\n.alert-info {\n  background-color: #6ec7e0;\n}\n\n.alert-success {\n  background-color: #86d9ab;\n}\n\n.alert-warning {\n  background-color: #fcd27b;\n}\n\n.alert-danger {\n  background-color: #f7765f;\n}\n\n.img-rounded {\n  border-radius: 12px;\n  transition: opacity 0.5s ease 0s;\n  max-width: 100%;\n}\n\n.img-details {\n  min-height: 50px;\n  padding: 0 4px 0.5em;\n}\n\n.img-details img {\n  width: 50px;\n}\n\n.img-details .author {\n  margin-left: 10px;\n  margin-top: -21px;\n  width: 40px;\n}\n\n.img-circle {\n  background-color: #FFFFFF;\n  margin-bottom: 10px;\n  padding: 4px;\n  border-radius: 50% !important;\n  max-width: 100%;\n}\n\n.img-thumbnail {\n  border: 0 none;\n  border-radius: 12px;\n  box-shadow: 0 1px 2px rgba(164, 158, 147, 0.6);\n  margin-bottom: 10px;\n}\n\n.img-no-padding {\n  padding: 0px;\n}\n\n.example-page .img-rounded {\n  margin: 50px 0 20px;\n}\n\n.img-shadow {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);\n}\n\n.images-title {\n  margin-bottom: 20px;\n  height: 50px;\n}\n\n.nav-link .profile-photo-small {\n  width: 40px;\n  height: 30px;\n  margin: -10px 0 0 -15px;\n}\n\n.profile-picture {\n  margin: 0 auto;\n}\n\n.profile-picture .fileinput-new img {\n  width: 150px;\n  height: 150px;\n  border-radius: 50%;\n  margin-bottom: 10px;\n}\n\n.profile-picture .fileinput-exists img {\n  max-width: 150px;\n  max-height: 150px;\n  border-radius: 50%;\n  margin-bottom: 10px;\n}\n\n.tooltip {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.tooltip-inner {\n  background-color: #FFFFFF;\n  border-radius: 4px;\n  box-shadow: 0 1px 13px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(115, 71, 38, 0.23);\n  color: #66615B;\n  max-width: 200px;\n  padding: 10px 10px;\n  text-align: center;\n  text-decoration: none;\n}\n\n.tooltip-inner:after {\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n\n.tooltip-inner:before {\n  content: \"\";\n  display: inline-block;\n  position: absolute;\n}\n\n.tooltip.fade.bs-tooltip-left,\n.tooltip.fade.bs-tooltip-left.show {\n  left: -5px !important;\n}\n\n.tooltip.fade.bs-tooltip-left .arrow,\n.tooltip.fade.bs-tooltip-left.show .arrow {\n  border-left: 11px solid rgba(0, 0, 0, 0.2);\n  border-top: 11px solid transparent;\n  border-bottom: 11px solid transparent;\n  right: -6px;\n  left: auto;\n  margin-left: 0;\n  top: -8px;\n}\n\n.tooltip.fade.bs-tooltip-left .arrow::before,\n.tooltip.fade.bs-tooltip-left.show .arrow::before {\n  border-left: 11px solid #FFFFFF;\n  border-top: 11px solid transparent;\n  border-bottom: 11px solid transparent;\n  right: 1px;\n  left: auto;\n  margin-left: 0;\n  top: -8px;\n}\n\n.tooltip.fade.bs-tooltip-right,\n.tooltip.fade.bs-tooltip-right.show {\n  left: 6px !important;\n}\n\n.tooltip.fade.bs-tooltip-right .arrow,\n.tooltip.fade.bs-tooltip-right.show .arrow {\n  border-right: 11px solid rgba(0, 0, 0, 0.2);\n  border-top: 11px solid transparent;\n  border-bottom: 11px solid transparent;\n  left: -6px;\n  right: auto;\n  margin-right: 0;\n  top: -8px;\n}\n\n.tooltip.fade.bs-tooltip-right .arrow::before,\n.tooltip.fade.bs-tooltip-right.show .arrow::before {\n  border-right: 11px solid #FFFFFF;\n  border-top: 11px solid transparent;\n  border-bottom: 11px solid transparent;\n  left: 1px;\n  right: auto;\n  margin-right: 0;\n  top: -8px;\n}\n\n.tooltip.fade.bs-tooltip-top,\n.tooltip.fade.bs-tooltip-top.show {\n  top: -6px !important;\n}\n\n.tooltip.fade.bs-tooltip-top .arrow,\n.tooltip.fade.bs-tooltip-top.show .arrow {\n  border-top: 11px solid rgba(0, 0, 0, 0.2);\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  right: auto;\n  margin-right: 0;\n  top: 43px;\n}\n\n.tooltip.fade.bs-tooltip-top .arrow::before,\n.tooltip.fade.bs-tooltip-top.show .arrow::before {\n  border-top: 11px solid #FFFFFF;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  left: -8px;\n  right: auto;\n  top: -12px;\n}\n\n.tooltip.fade.bs-tooltip-bottom,\n.tooltip.fade.bs-tooltip-bottom.show {\n  top: 6px !important;\n}\n\n.tooltip.fade.bs-tooltip-bottom .arrow,\n.tooltip.fade.bs-tooltip-bottom.show .arrow {\n  border-bottom: 11px solid rgba(0, 0, 0, 0.2);\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  right: auto;\n  margin-right: 0;\n  top: -6px;\n}\n\n.tooltip.fade.bs-tooltip-bottom .arrow::before,\n.tooltip.fade.bs-tooltip-bottom.show .arrow::before {\n  border-bottom: 11px solid #FFFFFF;\n  border-left: 11px solid transparent;\n  border-right: 11px solid transparent;\n  left: -8px;\n  right: auto;\n  top: 1px;\n}\n\n.tooltip.show {\n  opacity: 1 !important;\n}\n\n.popover {\n  border: 0;\n  border-radius: 4px;\n  background-color: #FFFFFF;\n  color: #66615b;\n  font-weight: 400;\n  padding: 0;\n  z-index: 1031;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  text-align: center;\n}\n\n.popover-header {\n  background-color: #FFFCF5;\n  border-bottom: 0 none;\n  font-size: 15px;\n  font-weight: normal;\n  line-height: 22px;\n  padding: 15px 15px 0px 15px;\n  margin: 0;\n  color: #66615b;\n  text-align: center;\n  border-radius: 4px 4px 0 0;\n  margin-bottom: -10px;\n}\n\n.popover-header {\n  background-color: #FFFFFF !important;\n  text-align: center;\n}\n\n.popover-body {\n  padding: 15px;\n  text-align: center;\n}\n\n.popover .arrow {\n  border: 0;\n}\n\n.popover.top .arrow {\n  margin-left: 0;\n}\n\n.popover.bottom .arrow:after {\n  border-bottom-color: #f7765f;\n}\n\n.popover-filter {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n  background-color: #000000;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  visibility: hidden;\n  transition: visibility 0s linear 0.3s, opacity 0.3s linear;\n}\n\n.popover-filter.in {\n  visibility: visible;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n  transition-delay: 0s;\n}\n\n.popover.left>.arrow::after {\n  border-left-color: #f7765f;\n  bottom: -20px;\n}\n\n.popover.top>.arrow::after {\n  border-top-color: #f7765f;\n}\n\n.popover.right>.arrow::after {\n  border-right-color: #f7765f;\n}\n\n.popover.left::before {\n  border-left-color: #f7765f;\n  bottom: -20px;\n}\n\n.popover-filter.in {\n  visibility: visible;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n  transition-delay: 0s;\n}\n\n.popover-primary {\n  background-color: #6dd3d6;\n  color: #FFFFFF;\n}\n\n.popover-primary .popover-title {\n  background-color: #6dd3d6;\n  color: rgba(0, 0, 0, 0.56);\n}\n\n.popover-primary.bottom .arrow:after {\n  border-bottom-color: #6dd3d6;\n}\n\n.popover-primary.left>.arrow::after {\n  border-left-color: #6dd3d6;\n}\n\n.popover-primary.top>.arrow::after {\n  border-top-color: #6dd3d6;\n}\n\n.popover-primary.right>.arrow::after {\n  border-right-color: #6dd3d6;\n}\n\n.popover-info {\n  background-color: #6ec7e0;\n  color: #FFFFFF;\n}\n\n.popover-info .popover-title {\n  background-color: #6ec7e0;\n  color: rgba(0, 0, 0, 0.56);\n}\n\n.popover-info.bottom .arrow:after {\n  border-bottom-color: #6ec7e0;\n}\n\n.popover-info.left>.arrow::after {\n  border-left-color: #6ec7e0;\n}\n\n.popover-info.top>.arrow::after {\n  border-top-color: #6ec7e0;\n}\n\n.popover-info.right>.arrow::after {\n  border-right-color: #6ec7e0;\n}\n\n.popover-success {\n  background-color: #86d9ab;\n  color: #FFFFFF;\n}\n\n.popover-success .popover-title {\n  background-color: #86d9ab;\n  color: rgba(0, 0, 0, 0.56);\n}\n\n.popover-success.bottom .arrow:after {\n  border-bottom-color: #86d9ab;\n}\n\n.popover-success.left>.arrow::after {\n  border-left-color: #86d9ab;\n}\n\n.popover-success.top>.arrow::after {\n  border-top-color: #86d9ab;\n}\n\n.popover-success.right>.arrow::after {\n  border-right-color: #86d9ab;\n}\n\n.popover-warning {\n  background-color: #fcd27b;\n  color: #FFFFFF;\n}\n\n.popover-warning .popover-title {\n  background-color: #fcd27b;\n  color: rgba(0, 0, 0, 0.56);\n}\n\n.popover-warning.bottom .arrow:after {\n  border-bottom-color: #fcd27b;\n}\n\n.popover-warning.left>.arrow::after {\n  border-left-color: #fcd27b;\n}\n\n.popover-warning.top>.arrow::after {\n  border-top-color: #fcd27b;\n}\n\n.popover-warning.right>.arrow::after {\n  border-right-color: #fcd27b;\n}\n\n.popover-danger {\n  background-color: #f7765f;\n  color: #FFFFFF;\n}\n\n.popover-danger .popover-title {\n  background-color: #f7765f;\n  color: rgba(0, 0, 0, 0.56);\n}\n\n.popover-danger.bottom .arrow:after {\n  border-bottom-color: #f7765f;\n}\n\n.popover-danger.left>.arrow::after {\n  border-left-color: #f7765f;\n}\n\n.popover-danger.top>.arrow::after {\n  border-top-color: #f7765f;\n}\n\n.popover-danger.right>.arrow::after {\n  border-right-color: #f7765f;\n}\n\n.popover-primary.bs-tether-element-attached-bottom::after,\n.popover-primary.bs-tether-element-attached-bottom::before,\n.popover-primary.popover-top::after,\n.popover-primary.popover-top::before {\n  border-top-color: #6dd3d6 !important;\n}\n\n.popover.popover-info.bs-tether-element-attached-top::after,\n.popover.popover-info.popover-bottom::after,\n.popover.popover-info.bs-tether-element-attached-top::before,\n.popover.popover-info.popover-bottom::before {\n  border-bottom-color: #6ec7e0 !important;\n}\n\n.popover-success.bs-tether-element-attached-left::after,\n.popover-success.bs-tether-element-attached-left::before,\n.popover-success.popover-right::after,\n.popover-success.popover-right::before {\n  border-right-color: #86d9ab !important;\n}\n\n.popover.popover-warning.bs-tether-element-attached-right::after,\n.popover.popover-warning.bs-tether-element-attached-right::before,\n.popover.popover-warning.popover-left::after,\n.popover.popover-warning.popover-left::before {\n  border-left-color: #fcd27b !important;\n}\n\n.popover.popover-danger.bs-tether-element-attached-right::after,\n.popover.popover-danger.bs-tether-element-attached-right::before,\n.popover.popover-danger.popover-left::after,\n.popover.popover-danger.popover-left::before {\n  border-left-color: #f7765f !important;\n}\n\n.popover.bs-tether-element-attached-top::after,\n.popover.popover-bottom::after,\n.popover.bs-tether-element-attached-top::before,\n.popover.popover-bottom::before {\n  border-bottom-color: #fff !important;\n}\n\n.modal-header {\n  border-bottom: 1px solid #DDDDDD;\n  padding: 20px;\n  text-align: center;\n  display: block !important;\n}\n\n.modal-header.no-border-header {\n  border-bottom: 0 none !important;\n}\n\n.modal-header.no-border-header .modal-title {\n  margin-top: 20px;\n}\n\n.modal-header button.close:focus {\n  outline: none;\n}\n\n.modal-dialog.modal-sm .modal-header button.close,\n.modal-dialog.modal-register .modal-header button.close {\n  margin-top: 0;\n}\n\n.modal-content {\n  border: 0 none;\n  border-radius: 10px;\n  box-shadow: 0 0 15px rgba(0, 0, 0, 0.15), 0 0 1px 1px rgba(0, 0, 0, 0.1);\n}\n\n.modal-content .modal-header h6 {\n  margin-top: 10px;\n}\n\n.modal-dialog {\n  padding-top: 60px;\n}\n\n.modal-body {\n  padding: 20px 50px;\n  color: #000;\n}\n\n.modal-footer {\n  border-top: 1px solid #DDDDDD;\n  padding: 0px;\n}\n\n.modal-footer.no-border-footer {\n  border-top: 0 none;\n}\n\n.modal-footer .left-side,\n.modal-footer .right-side {\n  display: inline-block;\n  text-align: center;\n  width: 49%;\n}\n\n.modal-footer .btn-link {\n  padding: 20px;\n  width: 100%;\n}\n\n.modal-footer .divider {\n  background-color: #DDDDDD;\n  display: inline-block;\n  float: inherit;\n  height: 63px;\n  margin: 0px -3px;\n  width: 1px;\n}\n\n.modal-register .modal-footer {\n  text-align: center;\n  margin-bottom: 25px;\n  padding: 20px 0 15px;\n}\n\n.modal-register .modal-footer span {\n  width: 100%;\n}\n\n.modal-header:after {\n  display: table;\n  content: \" \";\n}\n\n.modal-header:before {\n  display: table;\n  content: \" \";\n}\n\n.section-nucleo-icons {\n  padding: 100px 0;\n}\n\n.section-nucleo-icons .icons-container {\n  position: relative;\n  max-width: 450px;\n  height: 300px;\n  max-height: 300px;\n  margin: 0 auto;\n}\n\n.section-nucleo-icons .icons-container i {\n  font-size: 34px;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(1) {\n  top: 5%;\n  left: 7%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(2) {\n  top: 28%;\n  left: 24%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(3) {\n  top: 40%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(4) {\n  top: 18%;\n  left: 62%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(5) {\n  top: 74%;\n  left: 3%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(6) {\n  top: 36%;\n  left: 44%;\n  font-size: 65px;\n  color: #f5593d;\n  padding: 1px;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(7) {\n  top: 59%;\n  left: 26%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(8) {\n  top: 60%;\n  left: 69%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(9) {\n  top: 72%;\n  left: 47%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(10) {\n  top: 88%;\n  left: 27%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(11) {\n  top: 31%;\n  left: 80%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(12) {\n  top: 88%;\n  left: 68%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(13) {\n  top: 5%;\n  left: 81%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(14) {\n  top: 58%;\n  left: 90%;\n}\n\n.section-nucleo-icons .icons-container i:nth-child(15) {\n  top: 6%;\n  left: 40%;\n}\n\n.section-dark .icons-container {\n  color: #FFFFFF;\n}\n\n.info .icon {\n  margin-top: 0;\n  font-size: 3.4em;\n}\n\n.icon-primary {\n  color: #51cbce;\n}\n\n.icon-info {\n  color: #51bcda;\n}\n\n.icon-success {\n  color: #6bd098;\n}\n\n.icon-warning {\n  color: #fbc658;\n}\n\n.icon-danger {\n  color: #f5593d;\n}\n\n.icon-neutral {\n  color: #FFFFFF;\n}\n\n.carousel-control {\n  background-color: #f5593d;\n  border-radius: 50%;\n  opacity: 1;\n  text-shadow: none;\n}\n\n.carousel-control:hover,\n.carousel-control:focus {\n  opacity: 1;\n  background-color: #f33816;\n}\n\n.carousel-control.left {\n  height: 30px;\n  top: 50%;\n  width: 30px;\n  left: 25px;\n  opacity: 0;\n}\n\n.carousel-control.right {\n  height: 30px;\n  right: 25px;\n  top: 50%;\n  width: 30px;\n  opacity: 0;\n}\n\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .fa,\n.carousel-control .fa {\n  display: inline-block;\n  z-index: 5;\n}\n\n.carousel-control .fa {\n  font-size: 26px;\n  margin: 2px;\n}\n\n.carousel-control.left,\n.carousel-control.right {\n  background-image: none;\n}\n\n.page-carousel {\n  border-radius: 12px !important;\n  border: none !important;\n  width: 100%;\n}\n\n.carousel-inner>.carousel-item>img,\n.carousel-inner>.carousel-item>a>img {\n  border-radius: 12px;\n  box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);\n}\n\n.carousel-inner .carousel-item img {\n  width: 100%;\n}\n\n.carousel-indicators>li {\n  background-color: rgba(204, 204, 204, 0.49);\n  border: 0 none;\n}\n\n.carousel-indicators .active {\n  background-color: #f5593d;\n}\n\n.page-carousel:hover .carousel-control.right,\n.page-carousel:hover .carousel-control.left {\n  opacity: 1;\n  z-index: 1;\n}\n\n.card .carousel .carousel-indicators {\n  bottom: 0;\n}\n\n.card .carousel a {\n  position: absolute;\n  color: #FFFFFF !important;\n}\n\n.card .carousel a:hover {\n  color: #FFFFFF !important;\n}\n\n.card .carousel a .fa-angle-left:before {\n  padding-right: 3px;\n}\n\n.card .carousel a .fa-angle-right:before {\n  padding-left: 3px;\n}\n\n.footer {\n  background-attachment: fixed;\n  position: relative;\n  line-height: 20px;\n}\n\n.footer .footer-nav ul {\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.footer nav>ul {\n  list-style: none;\n  font-weight: normal;\n}\n\n.footer nav>ul>li {\n  display: inline-block;\n  padding: 10px 15px;\n  margin: 15px 3px;\n  line-height: 20px;\n  text-align: center;\n}\n\n.footer nav>ul a:not(.btn) {\n  color: #777777;\n  display: block;\n  margin-bottom: 3px;\n  line-height: 1.6;\n  opacity: .8;\n  font-size: 12px;\n  text-transform: uppercase;\n  font-weight: 600;\n}\n\n.footer nav>ul a:not(.btn):hover,\n.footer nav>ul a:not(.btn):focus {\n  color: #777777;\n  opacity: 1;\n}\n\n.footer .copyright {\n  color: #777777;\n  padding: 10px 0px;\n  font-size: 14px;\n  margin: 15px 3px;\n  line-height: 20px;\n  text-align: center;\n}\n\n.footer .heart {\n  color: #EB5E28;\n}\n\n.footer {\n  background-color: #FFFFFF;\n  line-height: 36px;\n}\n\n.footer.footer-black h4 {\n  color: #FFFFFF;\n}\n\n.footer .links {\n  display: inline-block;\n}\n\n.footer .links ul {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  font-weight: 600;\n}\n\n.footer .links ul>li {\n  display: inline-block;\n  padding-right: 20px;\n}\n\n.footer .links ul>li:last-child {\n  padding-right: 0px;\n}\n\n.footer .links ul a:not(.btn) {\n  color: #66615b;\n  display: block;\n  font-size: 0.9em;\n  margin-bottom: 3px;\n}\n\n.footer .links ul a:not(.btn):hover,\n.footer .links ul a:not(.btn):focus {\n  color: #403D39;\n}\n\n.footer .links ul.uppercase-links {\n  text-transform: uppercase;\n}\n\n.footer .links ul.stacked-links {\n  margin-top: 10px;\n}\n\n.footer .links ul.stacked-links>li {\n  display: block;\n  line-height: 26px;\n}\n\n.footer .links ul.stacked-links h4 {\n  margin-top: 0px;\n}\n\n.footer .social-area {\n  padding: 15px 0;\n}\n\n.footer .social-area .btn {\n  margin-bottom: 3px;\n  padding: 8px;\n}\n\n.footer .social-area .btn i {\n  margin-right: 0 !important;\n  color: #fff;\n}\n\n.footer hr {\n  border-color: #DDDDDD;\n  border-width: 1px 0 0;\n  margin-top: 5px;\n  margin-bottom: 5px;\n}\n\n.footer .copyright {\n  color: #A49E9E;\n  font-size: 0.9em;\n}\n\n.footer .copyright ul>li {\n  padding-right: 0px;\n}\n\n.footer .title {\n  color: #403D39;\n}\n\n.card {\n  border-radius: 12px;\n  box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n  background-color: #FFFFFF;\n  color: #333333;\n  margin-bottom: 20px;\n  position: relative;\n  z-index: 1;\n  border: 0 none;\n  -webkit-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n  -moz-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n  -o-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n  -ms-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n  transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n}\n\n.card:not(.card-plain):hover {\n  box-shadow: 0px 12px 19px -7px rgba(0, 0, 0, 0.3);\n  transform: translateY(-10px);\n  -webkit-transform: translateY(-10px);\n  -ms-transform: translateY(-10px);\n  -moz-transform: translateY(-10px);\n}\n\n.card.no-transition:hover,\n.card.page-carousel:hover,\n.card.card-refine:hover,\n.card.card-register:hover {\n  box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n  transform: none;\n  -webkit-transform: none;\n  -ms-transform: none;\n  -moz-transform: none;\n}\n\n.card a:not(.btn) {\n  color: #444444;\n}\n\n.card a:not(.btn):hover,\n.card a:not(.btn):focus {\n  color: #333333;\n}\n\n.card .card-description {\n  color: #9A9A9A;\n  margin-bottom: 5px;\n  margin-top: 15px;\n}\n\n.card img {\n  max-width: 100%;\n  height: auto;\n  border-radius: 12px 12px 0 0;\n}\n\n.card[data-radius=\"none\"] {\n  border-radius: 0px;\n}\n\n.card[data-radius=\"none\"] .header {\n  border-radius: 0px 0px 0 0;\n}\n\n.card[data-radius=\"none\"] .header img {\n  border-radius: 0px 0px 0 0;\n}\n\n.card.card-plain {\n  background-color: transparent;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.card.card-plain .card-body {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n\n.card.card-plain img {\n  border-radius: 12px;\n}\n\n.card .card-link {\n  color: #FFFFFF;\n}\n\n.card .card-background-image ul li {\n  color: #FFF;\n  border-color: rgba(255, 255, 255, 0.3);\n}\n\n.card.card-blog,\n.card.card-testimonial .card-description+.card-title {\n  margin-top: 30px;\n}\n\n.card.card-blog .card-image .img,\n.card.card-testimonial .card-description+.card-title .card-image .img {\n  border-radius: 12px;\n}\n\n.card.card-blog .card-image .card-title,\n.card.card-testimonial .card-description+.card-title .card-image .card-title {\n  text-align: center;\n}\n\n.card.card:not(.card-plain) .card-image .img {\n  border-bottom-left-radius: 0px;\n  border-bottom-right-radius: 0px;\n}\n\n.card.card-blog {\n  margin-top: 5px;\n}\n\n.card.card-blog .btn {\n  margin: 0 auto;\n}\n\n.card .author {\n  display: inline-block;\n}\n\n.card .author .avatar {\n  width: 30px;\n  height: 30px;\n  overflow: hidden;\n  border-radius: 50%;\n  margin-right: 5px;\n}\n\n.card .author .avatar-big {\n  width: 100px;\n  height: 100px;\n  border-radius: 50% !important;\n  position: relative;\n  margin-bottom: 15px;\n}\n\n.card .author .avatar-big.border-white {\n  border: 4px solid #FFFFFF;\n}\n\n.card .author .avatar-big.border-gray {\n  border: 4px solid #ccc;\n}\n\n.card .clearfix+.author {\n  margin-top: 15px;\n}\n\n.card .stats {\n  display: inline-block;\n  float: right;\n  color: #9A9A9A;\n  font-size: 12px;\n  margin-top: 6px;\n}\n\n.card .stats i {\n  font-size: 16px;\n  position: relative;\n  text-align: center;\n  top: 1px;\n  margin-left: 5px;\n  margin-top: -1px;\n  opacity: .6;\n}\n\n.card .card-category {\n  color: #9A9A9A;\n}\n\n.card .category-social .fa {\n  font-size: 24px;\n  position: relative;\n  margin-top: -4px;\n  top: 2px;\n  margin-right: 5px;\n}\n\n.card .card-title-uppercase {\n  text-transform: uppercase;\n}\n\n.card .header {\n  position: relative;\n  border-radius: 3px 3px 0 0;\n  z-index: 3;\n}\n\n.card .header.header-with-icon {\n  height: 150px;\n}\n\n.card .header img {\n  width: 100%;\n}\n\n.card .header .card-category {\n  padding: 15px;\n}\n\n.card .card-body .card-footer {\n  padding: 0;\n}\n\n.card .card-body .card-description+.card-footer {\n  padding-top: 10px;\n}\n\n.card .more {\n  float: right;\n  z-index: 4;\n  display: block;\n  padding-top: 10px;\n  padding-right: 10px;\n  position: relative;\n}\n\n.card .filter,\n.card .header .actions {\n  position: absolute;\n  z-index: 2;\n  background-color: rgba(0, 0, 0, 0.76);\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  text-align: center;\n  opacity: 0;\n}\n\n.card .header .actions {\n  background-color: transparent;\n  z-index: 3;\n}\n\n.card .header .actions .btn {\n  position: relative;\n  top: 50%;\n  -webkit-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  transform: translateY(-50%);\n}\n\n.card:hover .filter {\n  opacity: .7;\n}\n\n.card:hover .header .social-line,\n.card:hover .header .actions {\n  opacity: 1;\n}\n\n.card .card-category i,\n.card .label i {\n  font-size: 15px;\n}\n\n.card>.card-title {\n  margin: 0;\n  padding: 30px 0 0;\n}\n\n.card .card-body {\n  padding: 20px;\n}\n\n.card .card-body .card-title {\n  margin: 5px 0 0 0;\n}\n\n.card .card-body .card-category~.card-title {\n  margin-top: 5px;\n}\n\n.card .card-text {\n  font-size: 15px;\n  color: #66615b;\n  padding-bottom: 15px;\n}\n\n.card h6 {\n  font-size: 12px;\n  margin: 0;\n}\n\n.card .card-footer {\n  padding: 15px;\n  background: transparent;\n  border-top: 0 none;\n}\n\n.card .card-footer .social-line .btn:first-child {\n  border-radius: 0 0 0 6px;\n}\n\n.card .card-footer .social-line .btn:last-child {\n  border-radius: 0 0 6px 0;\n}\n\n.card.card-separator:after {\n  height: 100%;\n  right: -15px;\n  top: 0;\n  width: 1px;\n  background-color: #DDDDDD;\n  content: \"\";\n  position: absolute;\n}\n\n.card .card-icon {\n  display: block;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  padding: 30px 0 10px;\n}\n\n.card .card-icon i {\n  font-size: 40px;\n  width: 105px;\n  border: 2px solid #ccc;\n  border-radius: 50%;\n  height: 105px;\n  line-height: 105px;\n}\n\n.col-lg-4 .card .card-icon i {\n  font-size: 80px;\n  padding: 22px;\n}\n\n.card.card-with-border .card-body {\n  padding: 15px 15px 25px 15px;\n}\n\n.card.card-with-border .card-footer {\n  padding-bottom: 25px;\n}\n\n.card.card-with-border:after {\n  position: absolute;\n  display: block;\n  width: calc(100% - 10px);\n  height: calc(100% - 10px);\n  content: \"\";\n  top: 5px;\n  left: 5px;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  z-index: 1;\n  border-radius: 5px;\n}\n\n.card.card-just-text .card-body {\n  padding: 50px 65px;\n  text-align: center;\n}\n\n.card.card-just-text #dLabel {\n  float: right;\n}\n\n.card.card-just-text #dLabel i {\n  font-size: 20px;\n}\n\n.card.card-just-text .dropdown-menu {\n  margin-top: 55px;\n}\n\n.card[data-background=\"image\"] {\n  background-position: center center;\n  background-size: cover;\n  text-align: center;\n}\n\n.card[data-background=\"image\"] .card-body {\n  position: relative;\n  z-index: 2;\n  min-height: 280px;\n  padding-top: 40px;\n  padding-bottom: 40px;\n  max-width: 440px;\n  margin: 0 auto;\n  text-align: center;\n}\n\n.card[data-background=\"image\"] .card-title {\n  color: #FFF;\n  margin-top: 10px;\n}\n\n.card[data-background=\"image\"]:after {\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  height: 100%;\n  display: block;\n  left: 0;\n  top: 0;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0.56);\n  border-radius: 12px;\n}\n\n.card[data-background=\"image\"] .card-category {\n  color: #FFFFFF;\n}\n\n.card[data-background=\"image\"] .image,\n.card[data-background=\"color\"] .image,\n.card[data-color] .image {\n  border-radius: 6px;\n}\n\n.card[data-background=\"image\"] .filter,\n.card[data-background=\"color\"] .filter,\n.card[data-color] .filter {\n  border-radius: 6px;\n}\n\n.card[data-background=\"image\"] .card-description,\n.card[data-background=\"color\"] .card-description,\n.card[data-color] .card-description {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.card[data-background=\"image\"] .card-title,\n.card[data-background=\"image\"] .card-category,\n.card[data-background=\"image\"] .card-text,\n.card[data-background=\"image\"] .card-body,\n.card[data-background=\"image\"] .card-footer,\n.card[data-background=\"image\"] .stats,\n.card[data-background=\"image\"] small,\n.card[data-background=\"image\"] [class*=\"text-\"],\n.card[data-background=\"image\"] ul li b,\n.card[data-background=\"image\"] a:not(.btn),\n.card[data-background=\"color\"] .card-title,\n.card[data-background=\"color\"] .card-category,\n.card[data-background=\"color\"] .card-text,\n.card[data-background=\"color\"] .card-body,\n.card[data-background=\"color\"] .card-footer,\n.card[data-background=\"color\"] .stats,\n.card[data-background=\"color\"] small,\n.card[data-background=\"color\"] [class*=\"text-\"],\n.card[data-background=\"color\"] ul li b,\n.card[data-background=\"color\"] a:not(.btn),\n.card[data-color] .card-title,\n.card[data-color] .card-category,\n.card[data-color] .card-text,\n.card[data-color] .card-body,\n.card[data-color] .card-footer,\n.card[data-color] .stats,\n.card[data-color] small,\n.card[data-color] [class*=\"text-\"],\n.card[data-color] ul li b,\n.card[data-color] a:not(.btn) {\n  color: #FFFFFF !important;\n}\n\n.card[data-background=\"image\"] a:not(.btn):hover,\n.card[data-background=\"image\"] a:not(.btn):focus,\n.card[data-background=\"color\"] a:not(.btn):hover,\n.card[data-background=\"color\"] a:not(.btn):focus,\n.card[data-color] a:not(.btn):hover,\n.card[data-color] a:not(.btn):focus {\n  color: #FFFFFF;\n}\n\n.card[data-background=\"image\"] .card-icon i,\n.card[data-background=\"color\"] .card-icon i,\n.card[data-color] .card-icon i {\n  color: #FFFFFF;\n  border: 2px solid rgba(255, 255, 255, 0.3);\n}\n\n.card[data-background=\"image\"].card-with-border:after,\n.card[data-background=\"color\"].card-with-border:after,\n.card[data-color].card-with-border:after {\n  border: 1px solid rgba(255, 255, 255, 0.45);\n}\n\n.card[data-background=\"image\"] .filter {\n  opacity: 0.55;\n  filter: alpha(opacity=55);\n}\n\n.card[data-background=\"image\"]:hover .filter {\n  opacity: 0.75;\n  filter: alpha(opacity=75);\n}\n\n.card[data-color=\"blue\"] {\n  background: #6ec7e0;\n}\n\n.card[data-color=\"green\"] {\n  background: #86d9ab;\n}\n\n.card[data-color=\"yellow\"] {\n  background: #fcd27b;\n}\n\n.card[data-color=\"brown\"] {\n  background: #e4c4a1;\n}\n\n.card[data-color=\"purple\"] {\n  background: #cc90cc;\n}\n\n.card[data-color=\"orange\"] {\n  background: #f7765f;\n}\n\n.btn-center {\n  text-align: center;\n}\n\n.card-big-shadow {\n  max-width: 320px;\n  position: relative;\n}\n\n.card-big-shadow:before {\n  /*background-image: url(\"http://static.tumblr.com/i21wc39/coTmrkw40/shadow.png\");*/\n  background-position: center bottom;\n  background-repeat: no-repeat;\n  background-size: 100% 100%;\n  bottom: -12%;\n  content: \"\";\n  display: block;\n  left: -12%;\n  position: absolute;\n  right: 0;\n  top: 0;\n  z-index: 0;\n}\n\n.card-image.card-big-shadow {\n  max-width: 100%;\n}\n\n.card-image .card {\n  background-size: cover;\n  min-height: 430px;\n  width: 100%;\n}\n\n.card-image .img-raised {\n  margin-top: -20px;\n}\n\n.page-header .card-pricing.card-plain .card-category,\n.page-header .card-pricing.card-plain .card-title {\n  color: #FFFFFF;\n}\n\n.card-plain .card-avatar {\n  margin-top: 0;\n}\n\n.card-refine .panel-title {\n  font-size: 1em;\n}\n\n.card-plain {\n  background-color: transparent;\n  box-shadow: none;\n  border-radius: 0;\n}\n\n.card-plain .card-body {\n  padding-left: 5px;\n  padding-right: 5px;\n}\n\n.card-plain img {\n  border-radius: 12px;\n}\n\n.card-register {\n  background-color: #FF8F5E;\n  border-radius: 8px;\n  color: #fff;\n  max-width: 350px;\n  margin: 20px 0 70px;\n  min-height: 400px;\n  padding: 30px;\n}\n\n.card-register label {\n  margin-top: 15px;\n}\n\n.card-register .card-title {\n  color: #B33C12;\n  text-align: center;\n}\n\n.card-register .btn {\n  margin-top: 30px;\n}\n\n.card-register .forgot {\n  text-align: center;\n}\n\n.card-register .input-group-text {\n  border: 1px solid #FFFFFF;\n}\n\n.card-profile {\n  margin-top: 30px;\n  text-align: center;\n}\n\n.card-profile .card-cover {\n  height: 130px;\n  background-position: center center;\n  background-size: cover;\n  border-radius: 12px 12px 0 0;\n}\n\n.card-profile .card-body .card-title {\n  margin-top: 5px !important;\n}\n\n.card-profile .card-body .card-category {\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.card-profile .card-avatar {\n  max-width: 120px;\n  max-height: 120px;\n  margin: -60px auto 0;\n  border-radius: 50%;\n  overflow: hidden;\n}\n\n.card-profile .card-avatar.border-white {\n  border: 4px solid #FFFFFF;\n}\n\n.card-profile .card-avatar.border-gray {\n  border: 4px solid #ccc;\n}\n\n.section .card-profile {\n  margin-top: 100px;\n}\n\n.landing-alert {\n  margin-bottom: 0;\n}\n\n.page-header {\n  background-color: #B2AFAB;\n  background-position: center center;\n  background-size: cover;\n  min-height: 100vh;\n  max-height: 999px;\n  overflow: hidden;\n  position: relative;\n  width: 100%;\n  z-index: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.page-header .filter::after {\n  background-color: rgba(0, 0, 0, 0.5);\n  content: \"\";\n  display: block;\n  height: 100%;\n  left: 0;\n  top: 0;\n  position: absolute;\n  width: 100%;\n  z-index: 1;\n}\n\n.page-header.page-header-small {\n  min-height: 65vh !important;\n  max-height: 700px;\n}\n\n.page-header.page-header-xs {\n  min-height: 40vh !important;\n}\n\n.page-header.section-dark .content-center,\n.page-header.section-dark .category-absolute {\n  z-index: 1;\n}\n\n.page-header .motto {\n  text-align: left;\n  z-index: 3;\n  color: #fff;\n  position: relative;\n}\n\n.landing-section {\n  padding: 100px 0;\n  z-index: 1;\n}\n\n.section-buttons {\n  z-index: 1;\n}\n\n.landing-section .btn-simple {\n  padding: 0;\n}\n\n.landing-section .column {\n  padding: 0 75px 0 25px;\n}\n\n.team-player .img-circle,\n.team-player .img-thumbnail {\n  display: block;\n  margin-top: 50px;\n  margin-left: auto;\n  margin-right: auto;\n  width: 120px;\n}\n\n.contact-form {\n  margin-top: 30px;\n}\n\n.contact-form label {\n  margin-top: 15px;\n}\n\n.contact-form .btn {\n  margin-top: 30px;\n}\n\n.navbar-relative {\n  position: relative;\n  z-index: 2;\n}\n\n#register-navbar a {\n  color: #FFF;\n}\n\n.register-background .container {\n  margin-top: 11%;\n  position: relative;\n  z-index: 3;\n}\n\n.register-footer {\n  bottom: 20px;\n  position: absolute;\n  z-index: 1;\n  width: 100%;\n  background: transparent;\n  color: #FFFFFF;\n}\n\n.register-footer .fa-heart {\n  color: #EB5E28;\n}\n\n.register-card label {\n  margin-top: 15px;\n}\n\n.register-card .title {\n  color: #B33C12;\n  text-align: center;\n}\n\n.register-card .btn {\n  margin-top: 30px;\n}\n\n.register-card .forgot {\n  text-align: center;\n}\n\n.profile-content {\n  position: relative;\n}\n\n.owner {\n  text-align: center;\n}\n\n.owner .avatar {\n  padding: 15px;\n  max-width: 180px;\n  margin: -85px auto 0;\n  display: inline-block;\n}\n\n.owner .name h4 {\n  margin-top: 10px;\n}\n\n.profile-tabs {\n  margin: 50px 0;\n  min-height: 300px;\n}\n\n#following h3 {\n  margin: 20px 0 40px 0;\n}\n\n#follows .follows .unfollow .checkbox {\n  margin-top: -15px;\n}\n\n#follows .follows h6 {\n  margin-top: 15px;\n}\n\n.follows hr {\n  margin-top: 10px;\n}\n\n.title-brand {\n  max-width: 730px;\n  margin: 0 auto;\n  position: relative;\n  text-align: center;\n  color: #FFFFFF;\n  display: block;\n}\n\n.title-brand .type {\n  position: absolute;\n  font-size: 20px;\n  background: #132026;\n  padding: 6px 10px;\n  border-radius: 4px;\n  top: 0;\n  font-weight: 600;\n  margin-top: 10px;\n  right: -15px;\n}\n\n.presentation-title {\n  font-size: 8em;\n  font-weight: 700;\n  margin: 0;\n  color: #FFFFFF;\n  background: #fbf8ec;\n  background: -moz-linear-gradient(top, #FFFFFF 35%, #4e6773 100%);\n  background: -webkit-linear-gradient(top, #FFFFFF 35%, #4e6773 100%);\n  background: -ms-linear-gradient(top, #FFFFFF 35%, #4e6773 100%);\n  background: linear-gradient(to bottom, #FFFFFF 35%, #4e6773 100%);\n  -webkit-background-clip: text;\n  -webkit-text-fill-color: transparent;\n}\n\n.presentation-subtitle {\n  font-size: 1.7em;\n  color: #FFFFFF;\n}\n\n.category-absolute {\n  position: absolute;\n  text-align: center;\n  top: 100vh;\n  margin-top: -60px;\n  padding: 0 15px;\n  width: 100%;\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.category-absolute .creative-tim-logo {\n  max-width: 140px;\n  top: -2px;\n  left: 3px;\n  position: relative;\n}\n\n.fog-low {\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  margin-left: -35%;\n  margin-bottom: -50px;\n  width: 110%;\n  opacity: .85;\n}\n\n.fog-low img {\n  width: 100%;\n}\n\n.fog-low.right {\n  margin-left: 30%;\n  opacity: 1;\n}\n\n.page-header .content-center {\n  margin-top: 85px;\n}\n\n.moving-clouds {\n  position: absolute;\n  z-index: 1;\n  bottom: 0;\n  left: 0;\n  width: 250.625em;\n  height: 43.75em;\n  -webkit-animation: cloudLoop 80s linear infinite;\n  animation: cloudLoop 80s linear infinite;\n}\n\n@keyframes cloudLoop {\n  0% {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n  100% {\n    -webkit-transform: translate3d(-50%, 0, 0);\n    transform: translate3d(-50%, 0, 0);\n  }\n}\n\n.following img {\n  max-width: 70px;\n}\n\n.profile-content .tab-content .tab-pane {\n  min-height: 200px;\n}\n\n.profile-content .tab-content #tweets,\n.profile-content .tab-content #connections,\n.profile-content .tab-content #media {\n  height: 100%;\n}\n\n.section {\n  padding: 70px 0;\n  position: relative;\n  background-color: #FFFFFF;\n}\n\n.section-with-space {\n  padding: 60px 0;\n}\n\n.section-gray {\n  background-color: #EEEEEE;\n}\n\n.section-nude {\n  background-color: #FFFCF5;\n}\n\n.section-gold {\n  background-color: #caac90;\n  color: #FFFFFF;\n}\n\n.section-brown {\n  background-color: #A59E94;\n  color: #FFFFFF;\n}\n\n.section-light-blue {\n  background-color: #51cbce;\n  color: #FFFFFF;\n}\n\n.section-dark-blue {\n  background-color: #506367;\n  color: #FFFFFF;\n}\n\n.section-dark {\n  background-color: #0b1011;\n}\n\n.section-image,\n.section-gold,\n.section-dark {\n  position: relative;\n}\n\n.section-image .title,\n.section-image .info-title,\n.section-image .card-plain .card-title,\n.section-gold .title,\n.section-gold .info-title,\n.section-gold .card-plain .card-title,\n.section-dark .title,\n.section-dark .info-title,\n.section-dark .card-plain .card-title {\n  color: #FFFFFF !important;\n}\n\n.section-image .category,\n.section-image .description,\n.section-image .card-plain .card-description,\n.section-image .card-plain .card-category,\n.section-gold .category,\n.section-gold .description,\n.section-gold .card-plain .card-description,\n.section-gold .card-plain .card-category,\n.section-dark .category,\n.section-dark .description,\n.section-dark .card-plain .card-description,\n.section-dark .card-plain .card-category {\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.section-image hr,\n.section-gold hr,\n.section-dark hr {\n  border-color: rgba(255, 255, 255, 0.19);\n}\n\n.page-header .title,\n.page-header .info-title,\n.carousel-caption .title,\n.carousel-caption .info-title {\n  color: #FFFFFF;\n}\n\n[class*=\"features-\"],\n[class*=\"team-\"],\n[class*=\"projects-\"],\n[class*=\"pricing-\"],\n[class*=\"testimonials-\"],\n[class*=\"contactus-\"] {\n  padding: 80px 0;\n}\n\n.section-image {\n  background-position: center center;\n  background-size: cover;\n}\n\n.section-image:before {\n  background-color: rgba(0, 0, 0, 0.5);\n  content: \"\";\n  display: block;\n  height: 100%;\n  left: 0;\n  top: 0;\n  position: absolute;\n  width: 100%;\n  z-index: 1;\n}\n\n.section-image .container {\n  position: relative;\n  z-index: 2;\n}\n\n.section-login {\n  min-height: 700px;\n}\n\n@media all and (-ms-high-contrast: none),\n(-ms-high-contrast: active) {\n  /* IE10+ CSS styles go here */\n  .page-header .content-center {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -75%);\n  }\n  .page-header .presentation-title {\n    background: none !important;\n  }\n}\n\n[class*=\"features-\"],\n[class*=\"team-\"],\n[class*=\"projects-\"],\n[class*=\"pricing-\"],\n[class*=\"testimonials-\"],\n[class*=\"contactus-\"] {\n  padding: 80px 0;\n}\n\n.section-image {\n  background-position: center center;\n  background-size: cover;\n}\n\n.section-image:before {\n  background-color: rgba(0, 0, 0, 0.5);\n  content: \"\";\n  display: block;\n  height: 100%;\n  left: 0;\n  top: 0;\n  position: absolute;\n  width: 100%;\n  z-index: 1;\n}\n\n.section-image .container {\n  position: relative;\n  z-index: 2;\n}\n\n/*          Changes for small display      */\n\n@media (max-width: 767px) {\n  #cd-vertical-nav {\n    display: none !important;\n  }\n  .coloured-cards .card-big-shadow {\n    margin: 0 auto;\n  }\n  .register-page .page-header {\n    max-height: 2000px;\n  }\n  .section-testimonials .our-clients {\n    margin-top: 0 !important;\n  }\n  .navbar-transparent {\n    background-color: rgba(0, 0, 0, 0.45);\n  }\n  .register .page-header {\n    max-height: fit-content;\n  }\n  .form-group.has-danger {\n    margin-bottom: 30px;\n  }\n  body {\n    position: relative;\n    font-size: 12px;\n  }\n  h6 {\n    font-size: 1em;\n  }\n  .navbar .container {\n    left: 0;\n    width: 100%;\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    position: relative;\n  }\n  .navbar .navbar-nav .dropdown-menu {\n    height: 400px;\n    overflow-y: scroll;\n  }\n  .demo-header .motto {\n    padding-top: 30% !important;\n  }\n  .navbar-toggle .icon-bar {\n    display: block;\n    position: relative;\n    background: #fff;\n    width: 24px;\n    height: 2px;\n    border-radius: 1px;\n    margin: 0 auto;\n  }\n  .navbar-header .navbar-toggle {\n    margin-top: 12px;\n    width: 40px;\n    height: 40px;\n  }\n  .bar1,\n  .bar2,\n  .bar3 {\n    outline: 1px solid transparent;\n  }\n  .bar1 {\n    top: 0px;\n    -webkit-animation: topbar-back 500ms linear 0s;\n    -moz-animation: topbar-back 500ms linear 0s;\n    animation: topbar-back 500ms 0s;\n    -webkit-animation-fill-mode: forwards;\n    -moz-animation-fill-mode: forwards;\n    animation-fill-mode: forwards;\n  }\n  .bar2 {\n    opacity: 1;\n  }\n  .bar3 {\n    bottom: 0px;\n    -webkit-animation: bottombar-back 500ms linear 0s;\n    -moz-animation: bottombar-back 500ms linear 0s;\n    animation: bottombar-back 500ms 0s;\n    -webkit-animation-fill-mode: forwards;\n    -moz-animation-fill-mode: forwards;\n    animation-fill-mode: forwards;\n  }\n  .toggled .bar1 {\n    top: 6px;\n    -webkit-animation: topbar-x 500ms linear 0s;\n    -moz-animation: topbar-x 500ms linear 0s;\n    animation: topbar-x 500ms 0s;\n    -webkit-animation-fill-mode: forwards;\n    -moz-animation-fill-mode: forwards;\n    animation-fill-mode: forwards;\n  }\n  .toggled .bar2 {\n    opacity: 0;\n  }\n  .toggled .bar3 {\n    bottom: 6px;\n    -webkit-animation: bottombar-x 500ms linear 0s;\n    -moz-animation: bottombar-x 500ms linear 0s;\n    animation: bottombar-x 500ms 0s;\n    -webkit-animation-fill-mode: forwards;\n    -moz-animation-fill-mode: forwards;\n    animation-fill-mode: forwards;\n  }\n  @keyframes topbar-x {\n    0% {\n      top: 0px;\n      transform: rotate(0deg);\n    }\n    45% {\n      top: 6px;\n      transform: rotate(145deg);\n    }\n    75% {\n      transform: rotate(130deg);\n    }\n    100% {\n      transform: rotate(135deg);\n    }\n  }\n  @-webkit-keyframes topbar-x {\n    0% {\n      top: 0px;\n      -webkit-transform: rotate(0deg);\n    }\n    45% {\n      top: 6px;\n      -webkit-transform: rotate(145deg);\n    }\n    75% {\n      -webkit-transform: rotate(130deg);\n    }\n    100% {\n      -webkit-transform: rotate(135deg);\n    }\n  }\n  @-moz-keyframes topbar-x {\n    0% {\n      top: 0px;\n      -moz-transform: rotate(0deg);\n    }\n    45% {\n      top: 6px;\n      -moz-transform: rotate(145deg);\n    }\n    75% {\n      -moz-transform: rotate(130deg);\n    }\n    100% {\n      -moz-transform: rotate(135deg);\n    }\n  }\n  @keyframes topbar-back {\n    0% {\n      top: 6px;\n      transform: rotate(135deg);\n    }\n    45% {\n      transform: rotate(-10deg);\n    }\n    75% {\n      transform: rotate(5deg);\n    }\n    100% {\n      top: 0px;\n      transform: rotate(0);\n    }\n  }\n  @-webkit-keyframes topbar-back {\n    0% {\n      top: 6px;\n      -webkit-transform: rotate(135deg);\n    }\n    45% {\n      -webkit-transform: rotate(-10deg);\n    }\n    75% {\n      -webkit-transform: rotate(5deg);\n    }\n    100% {\n      top: 0px;\n      -webkit-transform: rotate(0);\n    }\n  }\n  @-moz-keyframes topbar-back {\n    0% {\n      top: 6px;\n      -moz-transform: rotate(135deg);\n    }\n    45% {\n      -moz-transform: rotate(-10deg);\n    }\n    75% {\n      -moz-transform: rotate(5deg);\n    }\n    100% {\n      top: 0px;\n      -moz-transform: rotate(0);\n    }\n  }\n  @keyframes bottombar-x {\n    0% {\n      bottom: 0px;\n      transform: rotate(0deg);\n    }\n    45% {\n      bottom: 6px;\n      transform: rotate(-145deg);\n    }\n    75% {\n      transform: rotate(-130deg);\n    }\n    100% {\n      transform: rotate(-135deg);\n    }\n  }\n  @-webkit-keyframes bottombar-x {\n    0% {\n      bottom: 0px;\n      -webkit-transform: rotate(0deg);\n    }\n    45% {\n      bottom: 6px;\n      -webkit-transform: rotate(-145deg);\n    }\n    75% {\n      -webkit-transform: rotate(-130deg);\n    }\n    100% {\n      -webkit-transform: rotate(-135deg);\n    }\n  }\n  @-moz-keyframes bottombar-x {\n    0% {\n      bottom: 0px;\n      -moz-transform: rotate(0deg);\n    }\n    45% {\n      bottom: 6px;\n      -moz-transform: rotate(-145deg);\n    }\n    75% {\n      -moz-transform: rotate(-130deg);\n    }\n    100% {\n      -moz-transform: rotate(-135deg);\n    }\n  }\n  @keyframes bottombar-back {\n    0% {\n      bottom: 6px;\n      transform: rotate(-135deg);\n    }\n    45% {\n      transform: rotate(10deg);\n    }\n    75% {\n      transform: rotate(-5deg);\n    }\n    100% {\n      bottom: 0px;\n      transform: rotate(0);\n    }\n  }\n  @-webkit-keyframes bottombar-back {\n    0% {\n      bottom: 6px;\n      -webkit-transform: rotate(-135deg);\n    }\n    45% {\n      -webkit-transform: rotate(10deg);\n    }\n    75% {\n      -webkit-transform: rotate(-5deg);\n    }\n    100% {\n      bottom: 0px;\n      -webkit-transform: rotate(0);\n    }\n  }\n  @-moz-keyframes bottombar-back {\n    0% {\n      bottom: 6px;\n      -moz-transform: rotate(-135deg);\n    }\n    45% {\n      -moz-transform: rotate(10deg);\n    }\n    75% {\n      -moz-transform: rotate(-5deg);\n    }\n    100% {\n      bottom: 0px;\n      -moz-transform: rotate(0);\n    }\n  }\n  @-webkit-keyframes fadeIn {\n    0% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  @-moz-keyframes fadeIn {\n    0% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  @keyframes fadeIn {\n    0% {\n      opacity: 0;\n    }\n    100% {\n      opacity: 1;\n    }\n  }\n  .navbar-nav {\n    margin: 1px -15px;\n  }\n  .navbar-nav .open .dropdown-menu>li>a {\n    padding: 15px 15px 5px 50px;\n  }\n  .navbar-nav .open .dropdown-menu>li:first-child>a {\n    padding: 5px 15px 5px 50px;\n  }\n  .navbar-nav .open .dropdown-menu>li:last-child>a {\n    padding: 15px 15px 25px 50px;\n  }\n  [class*=\"navbar-\"] .navbar-nav>li>a,\n  [class*=\"navbar-\"] .navbar-nav>li>a:hover,\n  [class*=\"navbar-\"] .navbar-nav>li>a:focus,\n  [class*=\"navbar-\"] .navbar-nav .active>a,\n  [class*=\"navbar-\"] .navbar-nav .active>a:hover,\n  [class*=\"navbar-\"] .navbar-nav .active>a:focus,\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a,\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a:hover,\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a:focus,\n  [class*=\"navbar-\"] .navbar-nav .navbar-nav .open .dropdown-menu>li>a:active {\n    color: white;\n  }\n  [class*=\"navbar-\"] .navbar-nav>li>a:not(.btn),\n  [class*=\"navbar-\"] .navbar-nav>li>a:hover,\n  [class*=\"navbar-\"] .navbar-nav>li>a:focus,\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a:not(.btn),\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a:hover,\n  [class*=\"navbar-\"] .navbar-nav .open .dropdown-menu>li>a:focus {\n    opacity: .7;\n    background: transparent;\n  }\n  [class*=\"navbar-\"] .navbar-nav.navbar-nav .open .dropdown-menu>li>a:active {\n    opacity: 1;\n  }\n  [class*=\"navbar-\"] .navbar-nav .dropdown>a:hover .caret {\n    border-bottom-color: #777;\n    border-top-color: #777;\n  }\n  [class*=\"navbar-\"] .navbar-nav .dropdown>a:active .caret {\n    border-bottom-color: white;\n    border-top-color: white;\n  }\n  .footer .footer-nav,\n  .footer .credits {\n    margin: 0 auto;\n  }\n  #typography .typography-line .note {\n    margin-left: 7px !important;\n  }\n  .dropdown-menu {\n    display: none;\n  }\n  .navbar-fixed-top {\n    -webkit-backface-visibility: hidden;\n  }\n  .social-line .btn {\n    margin: 0 0 10px 0;\n  }\n  .subscribe-line .form-control {\n    margin: 0 0 10px 0;\n  }\n  .social-line.pull-right {\n    float: none;\n  }\n  .footer nav.pull-left {\n    float: none !important;\n  }\n  .footer:not(.footer-big) nav>ul li {\n    float: none;\n  }\n  .social-area.pull-right {\n    float: none !important;\n  }\n  .form-control+.form-control-feedback {\n    margin-top: 5px;\n  }\n  .form-control.form-control-danger.no-border {\n    margin-top: 15px;\n  }\n  .navbar-toggle:hover,\n  .navbar-toggle:focus {\n    background-color: transparent !important;\n  }\n  .btn.dropdown-toggle {\n    margin-bottom: 0;\n  }\n  .media-post .author {\n    width: 25%;\n    float: none !important;\n    display: block;\n    margin: 0 auto 10px;\n  }\n  .media-post .media-body {\n    width: 100%;\n  }\n  .modal-footer .btn-simple {\n    padding: 15px;\n  }\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-x: scroll;\n    overflow-y: hidden;\n    border: 1px solid #dddddd;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    -webkit-overflow-scrolling: touch;\n  }\n  .typography-line {\n    padding-left: 100px !important;\n  }\n  .projects-1 .project-pills .nav.nav-pills {\n    display: block !important;\n  }\n  .projects-1 .project-pills .nav.nav-pills .nav-item:first-child .nav-link {\n    border-radius: 12px 12px 0 0 !important;\n    margin-left: -1px;\n  }\n  .projects-1 .project-pills .nav.nav-pills .nav-item.active:first-child .nav-link {\n    border-radius: 12px 12px 0 0 !important;\n    margin-left: -1px;\n  }\n  .projects-1 .project-pills .nav.nav-pills .nav-item:last-child .nav-link {\n    border-radius: 0 0 12px 12px !important;\n    margin-left: -1px;\n  }\n  .testimonials-2 .testimonials-people img,\n  .section-testimonials .testimonials-people img {\n    display: none !important;\n  }\n  .presentation-page .components-container .card {\n    margin-bottom: 40px !important;\n  }\n  .btn-wd {\n    min-width: 280px;\n  }\n  .presentation-page .title-brand .type {\n    font-size: 16px;\n    transform: translateY(-28px);\n    -webkit-transform: translateY(-28px);\n    -moz-transform: translateY(-28px);\n    -o-transform: translateY(-28px);\n  }\n  .presentation-page .section-cards,\n  .presentation-page .section-components {\n    overflow: hidden;\n  }\n  .presentation-page .section-cards .first-card,\n  .presentation-page .section-components .first-card {\n    top: 750px !important;\n  }\n  .presentation-page .section-cards .first-card .grid__link,\n  .presentation-page .section-components .first-card .grid__link {\n    max-width: 200px !important;\n  }\n  .presentation-page .section-cards .fourth-card,\n  .presentation-page .section-components .fourth-card {\n    top: 940px !important;\n  }\n  .presentation-page .section-cards .fourth-card .grid__link,\n  .presentation-page .section-components .fourth-card .grid__link {\n    max-width: 200px !important;\n  }\n  .presentation-page .section-cards .fifth-card,\n  .presentation-page .section-components .fifth-card {\n    top: 950px !important;\n    left: 220px !important;\n  }\n  .presentation-page .section-cards .fifth-card .grid__link,\n  .presentation-page .section-components .fifth-card .grid__link {\n    max-width: 200px !important;\n  }\n  .presentation-page .section-cards .sixth-card,\n  .presentation-page .section-components .sixth-card {\n    top: 1335px !important;\n    left: 220px !important;\n  }\n  .presentation-page .section-cards .sixth-card .grid__link,\n  .presentation-page .section-components .sixth-card .grid__link {\n    max-width: 200px !important;\n  }\n  .presentation-page .section-cards .seventh-card,\n  .presentation-page .section-components .seventh-card {\n    top: 1155px !important;\n  }\n  .presentation-page .section-cards .seventh-card .grid__link,\n  .presentation-page .section-components .seventh-card .grid__link {\n    max-width: 200px !important;\n  }\n  .presentation-page .section-content .image-container .add-animation {\n    max-height: 250px !important;\n    max-width: 180px !important;\n  }\n  .presentation-page .section-components .image-container .components-macbook {\n    max-width: 580px !important;\n    max-height: 400px !important;\n  }\n  .presentation-page .section-components .image-container .social-img,\n  .presentation-page .section-components .image-container .share-btn-img {\n    display: none;\n  }\n  .presentation-page .section-components .title {\n    margin-top: -100px !important;\n  }\n  .presentation-page .section-examples {\n    padding-top: 0 !important;\n    margin-top: 10px !important;\n  }\n  .presentation-page .section-icons .icons-nucleo .nc-icon:not(.ninth-left-icon):not(.seventh-left-icon):not(.third-left-icon) {\n    display: none !important;\n  }\n  .bootstrap-datetimepicker-widget {\n    visibility: visible !important;\n  }\n  .presentation-page .fog-low {\n    margin-bottom: -35px;\n  }\n  .presentation-page .presentation-title {\n    font-size: 5em;\n  }\n  .presentation-page .presentation-subtitle {\n    margin-top: 40px;\n  }\n  .presentation-page .title-brand {\n    max-width: 450px;\n  }\n  .presentation-page .title-brand .type {\n    font-size: 16px;\n  }\n  .demo-icons ul li {\n    width: 20%;\n    float: left;\n  }\n  .info.info-separator:after {\n    display: none;\n  }\n  .pricing-5 .choose-plan {\n    text-align: center;\n  }\n  .pricing-5 .choose-plan .nav.nav-pills {\n    display: inline-flex;\n  }\n  .pricing-5 .description {\n    text-align: center;\n  }\n  .page-carousel .carousel-inner [class*='col-md'] {\n    margin-left: 0 !important;\n  }\n  .page-carousel .right.carousel-control {\n    margin-right: 0 !important;\n  }\n  .page-carousel .left.carousel-control {\n    margin-left: 0 !important;\n  }\n  .subscribe-line .form-control {\n    border: 1px solid #DDDDDD;\n    padding-left: 10px;\n  }\n  .subscribe-line .btn {\n    margin: 0 auto;\n  }\n}\n\n@media screen and (max-width: 991px) {\n  .navbar-collapse {\n    position: fixed;\n    display: block !important;\n    top: 0;\n    height: 100%;\n    width: 230px;\n    right: 0;\n    z-index: 1032;\n    visibility: visible;\n    background-color: #999;\n    overflow-y: visible;\n    border-top: none;\n    text-align: left;\n    border-left: 1px solid #CCC5B9;\n    padding-right: 0px;\n    padding-left: 40px;\n    padding-top: 15px;\n    -webkit-transform: translateX(230px);\n    -moz-transform: translateX(230px);\n    -o-transform: translateX(230px);\n    -ms-transform: translateX(230px);\n    transform: translateX(230px);\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  }\n  .navbar-collapse ul {\n    position: relative;\n    z-index: 3;\n    height: 95%;\n  }\n  .navbar-collapse .navbar-nav>.nav-item:last-child {\n    border-bottom: 0;\n  }\n  .navbar-collapse .navbar-nav>.nav-item>.nav-link {\n    margin: 0px 0px;\n    color: #9A9A9A !important;\n    text-transform: uppercase;\n    font-weight: 600;\n    font-size: 12px;\n    line-height: 1.5em;\n    padding: 15px 0;\n  }\n  .navbar-collapse .navbar-nav>.nav-item>.nav-link:hover,\n  .navbar-collapse .navbar-nav>.nav-item>.nav-link:active {\n    color: #403D39 !important;\n  }\n  .navbar-collapse::after {\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    position: absolute;\n    background-color: #FFFCF5;\n    background-image: linear-gradient(to bottom, transparent 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n    display: block;\n    content: \"\";\n    z-index: 1;\n  }\n  .navbar-collapse.has-image::after {\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    position: absolute;\n    background-color: rgba(17, 17, 17, 0.8);\n    display: block;\n    content: \"\";\n    z-index: 1;\n  }\n  .nav-open .navbar-collapse {\n    -webkit-transform: translateX(0px);\n    -moz-transform: translateX(0px);\n    -o-transform: translateX(0px);\n    -ms-transform: translateX(0px);\n    transform: translateX(0px);\n  }\n  .nav-open .wrapper {\n    left: 0;\n    -webkit-transform: translateX(-230px);\n    -moz-transform: translateX(-230px);\n    -o-transform: translateX(-230px);\n    -ms-transform: translateX(-230px);\n    transform: translateX(-230px);\n  }\n  .nav-open .navbar-translate {\n    -webkit-transform: translateX(-230px);\n    -moz-transform: translateX(-230px);\n    -o-transform: translateX(-230px);\n    -ms-transform: translateX(-230px);\n    transform: translateX(-230px);\n  }\n  .wrapper .navbar-collapse {\n    display: none;\n  }\n  .register-page.full-screen .page-header .container {\n    margin-top: 30%;\n  }\n  .dropdown.show .dropdown-menu,\n  .dropdown .dropdown-menu {\n    border: 0;\n    transition: none;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n    width: auto;\n    height: auto;\n  }\n  .dropdown.show .dropdown-menu .dropdown-item:hover,\n  .dropdown.show .dropdown-menu .dropdown-item:focus,\n  .dropdown .dropdown-menu .dropdown-item:hover,\n  .dropdown .dropdown-menu .dropdown-item:focus {\n    background-color: transparent;\n    border-radius: 0;\n  }\n  .dropdown.show .dropdown-menu .dropdown-item a:hover,\n  .dropdown.show .dropdown-menu .dropdown-item a:focus,\n  .dropdown .dropdown-menu .dropdown-item a:hover,\n  .dropdown .dropdown-menu .dropdown-item a:focus {\n    color: #403D39;\n  }\n  .dropdown.show .dropdown-menu:before,\n  .dropdown.show .dropdown-menu:after,\n  .dropdown .dropdown-menu:before,\n  .dropdown .dropdown-menu:after {\n    display: none;\n  }\n  .dropdown .dropdown-menu {\n    display: none;\n  }\n  .dropdown.show .dropdown-menu {\n    display: block;\n    position: static;\n    float: none;\n    background: transparent !important;\n  }\n  .navbar-translate {\n    width: 100%;\n    position: relative;\n    display: flex;\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n    -ms-flex-align: center;\n    align-items: center;\n    -webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -o-transform: translateX(0);\n    -ms-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  }\n  #bodyClick {\n    height: 100%;\n    width: 100%;\n    position: fixed;\n    opacity: 0;\n    top: 0;\n    left: auto;\n    right: 230px;\n    content: \"\";\n    z-index: 1029;\n    overflow-x: hidden;\n  }\n  .wrapper {\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    left: 0;\n    background-color: white;\n  }\n  .container-cards [class*=\"col-md-\"] {\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n  .container-cards .social-buttons {\n    z-index: 1;\n  }\n  .full-screen.login .page-header {\n    display: grid;\n  }\n  .comments.media-area .media {\n    display: block;\n  }\n  .comments.media-area .media .media-body {\n    margin-left: 2em;\n  }\n  .comments.media-area .media .media-body p {\n    margin-top: 15px;\n  }\n  .section-navbars .navbar-collapse,\n  .section-navigation .navbar-collapse,\n  #navbar-dropdown .navbar-collapse {\n    display: none !important;\n  }\n  .header-4 video {\n    width: auto;\n    height: 100vh;\n  }\n  .subscribe-line .btn.btn-block {\n    width: auto;\n  }\n  .form-control+.form-control-feedback {\n    padding-left: 0 !important;\n  }\n}\n\n@media screen and (min-width: 991px) {\n  .burger-menu .navbar-collapse {\n    position: fixed;\n    display: block;\n    top: 0;\n    height: 100%;\n    width: 230px;\n    right: 0px;\n    z-index: 1032;\n    visibility: visible;\n    background-color: #999;\n    overflow-y: visible;\n    border-top: none;\n    text-align: left;\n    border-left: 1px solid #CCC5B9;\n    padding-right: 0px;\n    padding-left: 40px;\n    padding-top: 15px;\n    -webkit-transform: translateX(230px);\n    -moz-transform: translateX(230px);\n    -o-transform: translateX(230px);\n    -ms-transform: translateX(230px);\n    transform: translateX(230px);\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  }\n  .burger-menu .navbar-collapse .navbar-nav .nav-item:last-child {\n    border-bottom: 0;\n  }\n  .burger-menu .navbar-collapse .navbar-nav {\n    height: 100%;\n    z-index: 2;\n    position: relative;\n    display: -webkit-box;\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-box-orient: vertical;\n    -webkit-box-direction: normal;\n    -webkit-flex-direction: column;\n    -ms-flex-direction: column;\n    flex-direction: column;\n  }\n  .burger-menu .navbar-collapse::after {\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    position: absolute;\n    background-color: #FFFCF5;\n    background-image: linear-gradient(to bottom, transparent 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n    display: block;\n    content: \"\";\n    z-index: 1;\n  }\n  .burger-menu .navbar-collapse.has-image::after {\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    position: absolute;\n    background-color: rgba(17, 17, 17, 0.8);\n    display: block;\n    content: \"\";\n    z-index: 1;\n  }\n  .burger-menu .navbar .container .navbar-toggler {\n    display: block;\n    margin-top: 20px;\n  }\n  .burger-menu .navbar-translate {\n    width: 100%;\n    position: relative;\n    -webkit-transform: translateX(0);\n    -moz-transform: translateX(0);\n    -o-transform: translateX(0);\n    -ms-transform: translateX(0);\n    transform: translateX(0);\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  }\n  .burger-menu .wrapper {\n    -webkit-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -moz-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -o-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    -ms-transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    transition: all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1);\n    left: 0;\n    background-color: white;\n  }\n  .burger-menu .body .navbar-collapse.collapse {\n    height: 100vh !important;\n  }\n  .burger-menu .navbar-collapse:before,\n  .burger-menu .navbar-collapse:after,\n  .burger-menu .navbar-nav:before,\n  .burger-menu .navbar-nav:after {\n    display: table;\n    content: \" \";\n  }\n  .nav-open .burger-menu .navbar-collapse.collapse {\n    -webkit-transform: translateX(0px);\n    -moz-transform: translateX(0px);\n    -o-transform: translateX(0px);\n    -ms-transform: translateX(0px);\n    transform: translateX(0px);\n  }\n  .nav-open .burger-menu .wrapper {\n    left: 0;\n    -webkit-transform: translateX(-230px);\n    -moz-transform: translateX(-230px);\n    -o-transform: translateX(-230px);\n    -ms-transform: translateX(-230px);\n    transform: translateX(-230px);\n  }\n  .nav-open .burger-menu .navbar-translate {\n    -webkit-transform: translateX(-230px);\n    -moz-transform: translateX(-230px);\n    -o-transform: translateX(-230px);\n    -ms-transform: translateX(-230px);\n    transform: translateX(-230px);\n  }\n  .burger-menu .dropdown.show .dropdown-menu,\n  .burger-menu .dropdown .dropdown-menu {\n    border: 0;\n    transition: none;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n    width: auto;\n  }\n  .burger-menu .dropdown.show .dropdown-menu .dropdown-item:hover,\n  .burger-menu .dropdown.show .dropdown-menu .dropdown-item:focus,\n  .burger-menu .dropdown .dropdown-menu .dropdown-item:hover,\n  .burger-menu .dropdown .dropdown-menu .dropdown-item:focus {\n    background-color: transparent;\n    border-radius: 0;\n  }\n  .burger-menu .dropdown.show .dropdown-menu .dropdown-item a:hover,\n  .burger-menu .dropdown.show .dropdown-menu .dropdown-item a:focus,\n  .burger-menu .dropdown .dropdown-menu .dropdown-item a:hover,\n  .burger-menu .dropdown .dropdown-menu .dropdown-item a:focus {\n    color: #403D39;\n  }\n  .burger-menu .dropdown.show .dropdown-menu:before,\n  .burger-menu .dropdown.show .dropdown-menu:after,\n  .burger-menu .dropdown .dropdown-menu:before,\n  .burger-menu .dropdown .dropdown-menu:after {\n    display: none;\n  }\n  .burger-menu .dropdown .dropdown-menu {\n    display: none;\n  }\n  .burger-menu .dropdown.show .dropdown-menu {\n    display: block;\n  }\n  .lightbox .modal-dialog {\n    width: 960px;\n  }\n}\n\n@media screen and (min-width: 767px) {\n  .section-sections .section-cols {\n    position: relative;\n    z-index: 1;\n  }\n  .register-page .page-header .container {\n    margin-top: 150px;\n  }\n}\n\n@media (max-width: 1023px) and (min-width: 767px) {\n  .presentation-page .section-content .image-container .area-img {\n    max-width: 190px;\n    max-height: 270px;\n  }\n  .presentation-page .section-content .image-container .info-img {\n    max-width: 190px;\n    max-height: 270px;\n    left: -20%;\n  }\n  .presentation-page .section-content .section-description {\n    margin-top: 0 !important;\n  }\n  .presentation-page .section-components .components-macbook {\n    left: -75px !important;\n  }\n  .presentation-page .section-cards .codrops-header {\n    margin-top: 10px !important;\n  }\n}\n\n@media (max-width: 1367px) and (min-width: 1024px) {\n  .presentation-page .section-components .basic-container {\n    margin-left: 5em;\n  }\n}\n\n@media (max-width: 500px) {\n  .presentation-page .section-header .card {\n    min-height: 230px;\n  }\n  #cards .card-profile {\n    margin-top: 50px;\n  }\n  .pricing-5 .title {\n    text-align: center;\n  }\n  .presentation-page .presentation-title {\n    font-size: 4em;\n  }\n  .presentation-page .title-brand .type {\n    font-size: 12px;\n    padding: 4px 7px;\n    border-radius: 4px;\n    top: 0;\n    font-weight: 600;\n    margin-top: 20px;\n    right: 2px;\n  }\n  .presentation-page .section-cards .codrops-header .description {\n    max-width: 220px;\n  }\n  .register-page .page-header .container .info:first-of-type {\n    margin-top: 50px;\n  }\n}\n\n@media screen and (max-width: 1367px) {\n  .presentation-page .section-cards,\n  .presentation-page .section-components {\n    overflow: hidden;\n  }\n}\n\n@media screen and (min-width: 1025) {\n  .section-sections .section-cols {\n    position: relative;\n    z-index: 1;\n  }\n  .section-sections .section-cols .row:first-of-type {\n    margin-top: 50px;\n    margin-right: -120px;\n    margin-left: -15px;\n    -webkit-transform: translateX(-80px);\n    -moz-transform: translateX(-80px);\n    -o-transform: translateX(-80px);\n    -ms-transform: translateX(-80px);\n    transform: translateX(-80px);\n  }\n  .section-sections .section-cols .row:nth-of-type(2) {\n    margin-left: -100px;\n    margin-right: -15px;\n    transform: translateX(80px);\n  }\n  .section-sections .section-cols .row:nth-of-type(3) {\n    margin-right: -120px;\n    margin-left: 0px;\n    transform: translateX(-120px);\n  }\n  .section-sections .section-cols .row:nth-of-type(4) {\n    margin-right: -100px;\n    margin-left: -15px;\n    transform: translateX(-50px);\n  }\n}\n\n@media only screen and (min-width: 1024px) {\n  .demo-icons ul li {\n    width: 12.5%;\n    float: left;\n    padding: 32px 0;\n  }\n}\n\n@media (max-width: 1200px) {\n  .presentation-page .presentation-title {\n    font-size: 7em;\n  }\n  .presentation-page .title-brand {\n    max-width: 650px;\n  }\n}\n\n@media (max-width: 1200px) {\n  .presentation .section-images .image img {\n    width: 100%;\n  }\n}\n\n@media screen and (max-width: 374px) {\n  .footer.footer-big .copyright .pull-left,\n  .footer.footer-big .copyright .pull-right {\n    float: none !important;\n  }\n  .full-screen.login .card.card-register {\n    margin-bottom: 20px;\n  }\n  .full-screen.login .demo-footer {\n    margin-left: -15px;\n  }\n  .about-us .header-wrapper {\n    height: auto !important;\n  }\n  .presentation-page .section-content .image-container .area-img {\n    max-width: 170px !important;\n  }\n}\n\n/*# sourceMappingURL=kit-free.css.map */"
  },
  {
    "path": "public/static/home/assets/demo/demo.css",
    "content": ".tim-row {\n  margin-bottom: 20px;\n}\n\n.tim-white-buttons {\n  background-color: #777777;\n}\n\n.typography-line {\n  padding-left: 25%;\n  margin-bottom: 35px;\n  position: relative;\n  display: block;\n  width: 100%;\n}\n\n.typography-line span {\n  bottom: 10px;\n  color: #c0c1c2;\n  display: block;\n  font-weight: 400;\n  font-size: 13px;\n  line-height: 13px;\n  left: 0;\n  margin-left: 20px;\n  position: absolute;\n  width: 260px;\n  text-transform: none;\n}\n\n.tim-row {\n  padding-top: 60px;\n}\n\n.tim-row h3 {\n  margin-top: 0;\n}\n\n.switch {\n  margin-right: 20px;\n}\n\n#navbar-full .navbar {\n  border-radius: 0 !important;\n  margin-bottom: 15px;\n  z-index: 2;\n}\n\n#menu-dropdown .navbar {\n  border-radius: 3px;\n}\n\n#pagination-row .pagination-container {\n  height: 100%;\n  max-height: 100%;\n  display: flex;\n  align-items: center;\n}\n\n/* Nucelo Icons */\n\n#icons-row i.nc-icons {\n  font-size: 30px;\n}\n\n.demo-iconshtml {\n  font-size: 62.5%;\n}\n\n.demo-icons body {\n  font-size: 1.6rem;\n  font-family: sans-serif;\n  color: #333333;\n  background: white;\n}\n\n.demo-icons a {\n  color: #608CEE;\n  text-decoration: none;\n}\n\n.demo-icons header {\n  text-align: center;\n  padding: 100px 0 0;\n}\n\n.demo-icons header h1 {\n  font-size: 2.8rem;\n}\n\n.demo-icons header p {\n  font-size: 1.4rem;\n  margin-top: 1em;\n}\n\n.demo-icons header a:hover {\n  text-decoration: underline;\n}\n\n.demo-icons .nc-icon {\n  font-size: 34px;\n}\n\n.demo-icons section {\n  width: 90%;\n  max-width: 1200px;\n  margin: 50px auto;\n}\n\n.demo-icons section h2 {\n  border-bottom: 1px solid #e2e2e2;\n  padding: 0 0 1em .2em;\n  margin-bottom: 1em;\n}\n\n.demo-icons ul::after {\n  clear: both;\n  content: \"\";\n  display: table;\n}\n\n.demo-icons ul li {\n  width: 20%;\n  float: left;\n  padding: 16px 0;\n  text-align: center;\n  border-radius: .25em;\n  -webkit-transition: background 0.2s;\n  -moz-transition: background 0.2s;\n  transition: background 0.2s;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  overflow: hidden;\n}\n\n.demo-icons ul li:hover {\n  background: #f4f4f4;\n}\n\n.demo-icons ul p,\n.demo-icons ul em,\n.demo-icons ul input {\n  display: inline-block;\n  font-size: 1rem;\n  color: #999999;\n  -webkit-user-select: auto;\n  -moz-user-select: auto;\n  -ms-user-select: auto;\n  user-select: auto;\n  white-space: nowrap;\n  width: 100%;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n}\n\n.demo-icons ul p {\n  padding: 20px 0 0;\n  font-size: 12px;\n  margin: 0;\n}\n\n.demo-icons ul p::selection,\n.demo-icons ul em::selection {\n  background: #608CEE;\n  color: #efefef;\n}\n\n.demo-icons ul em {\n  font-size: 12px;\n}\n\n.demo-icons ul em::before {\n  content: '[';\n}\n\n.demo-icons ul em::after {\n  content: ']';\n}\n\n.demo-icons ul input {\n  text-align: center;\n  background: transparent;\n  border: none;\n  box-shadow: none;\n  outline: none;\n  display: none;\n}\n\n.space {\n  height: 130px;\n  display: block;\n}\n\n.space-110 {\n  height: 110px;\n  display: block;\n}\n\n.space-50 {\n  height: 50px;\n  display: block;\n}\n\n.space-70 {\n  height: 70px;\n  display: block;\n}\n\n.navigation-example {\n  background-attachment: scroll;\n}\n\n.navigation-example {\n  background-position: center center;\n  background-size: cover;\n  margin-top: 0;\n  height: 100%;\n}\n\n#notifications {\n  background-color: #FFFFFF;\n  display: block;\n  width: 100%;\n  position: relative;\n}\n\n.tim-note {\n  text-transform: capitalize;\n}\n\n.download-area {\n  margin-top: 30px;\n}\n\n.sharing-area {\n  margin-top: 50px;\n}\n\n.sharing-area .btn {\n  margin-top: 14px;\n}\n\n.upgrade-pro .btn {\n  margin-top: 30px;\n}\n\n#buttons .btn,\n#javascriptComponents .btn {\n  margin: 0 0px 10px;\n}\n\n.space-100 {\n  height: 100px;\n  display: block;\n  width: 100%;\n}\n\n.be-social {\n  padding-bottom: 20px;\n  /*     border-bottom: 1px solid #aaa; */\n  margin: 0 auto 40px;\n}\n\n.txt-white {\n  color: #FFFFFF;\n}\n\n.txt-gray {\n  color: #ddd !important;\n}\n\n.parallax {\n  width: 100%;\n  height: 570px;\n  display: block;\n  background-attachment: fixed;\n  background-repeat: no-repeat;\n  background-size: cover;\n  background-position: center center;\n}\n\n.profile-content {\n  padding-top: 0;\n  position: relative;\n  z-index: 2;\n}\n\n.logo-container .logo {\n  overflow: hidden;\n  border-radius: 50%;\n  border: 1px solid #333333;\n  width: 50px;\n  float: left;\n}\n\n.logo-container .brand {\n  font-size: 16px;\n  color: #FFFFFF;\n  line-height: 18px;\n  float: left;\n  margin-left: 10px;\n  margin-top: 7px;\n  width: 70px;\n  height: 40px;\n  text-align: left;\n}\n\n.logo-container .brand-material {\n  font-size: 18px;\n  margin-top: 15px;\n  height: 25px;\n  width: auto;\n}\n\n.logo-container .logo img {\n  width: 100%;\n}\n\n.navbar-small .logo-container .brand {\n  color: #333333;\n}\n\n.fixed-section {\n  top: 90px;\n  max-height: 80vh;\n  overflow: scroll;\n  position: sticky;\n}\n\n.fixed-section ul {\n  padding: 0;\n}\n\n.fixed-section ul li {\n  list-style: none;\n}\n\n.fixed-section li a {\n  font-size: 14px;\n  padding: 2px;\n  display: block;\n  color: #666666;\n}\n\n.fixed-section li a.active {\n  color: #00bbff;\n}\n\n.fixed-section.float {\n  position: fixed;\n  top: 100px;\n  width: 200px;\n  margin-top: 0;\n}\n\n.parallax .parallax-image {\n  width: 100%;\n  overflow: hidden;\n  position: absolute;\n}\n\n.parallax .parallax-image img {\n  width: 100%;\n}\n\n@media (max-width: 768px) {\n  .parallax .parallax-image {\n    width: 100%;\n    height: 640px;\n    overflow: hidden;\n  }\n  .parallax .parallax-image img {\n    height: 100%;\n    width: auto;\n  }\n}\n\n/*.separator{\n    content: \"Separator\";\n    color: #FFFFFF;\n    display: block;\n    width: 100%;\n    padding: 20px;\n}\n.separator-line{\n    background-color: #EEE;\n    height: 1px;\n    width: 100%;\n    display: block;\n}\n.separator.separator-gray{\n    background-color: #EEEEEE;\n}*/\n\n.social-buttons-demo .btn {\n  margin-right: 5px;\n  margin-bottom: 7px;\n}\n\n.img-container {\n  width: 100%;\n  overflow: hidden;\n}\n\n.img-container img {\n  width: 100%;\n}\n\n.lightbox img {\n  width: 100%;\n}\n\n.lightbox .modal-content {\n  overflow: hidden;\n}\n\n.lightbox .modal-body {\n  padding: 0;\n}\n\n@media screen and (min-width: 991px) {\n  .lightbox .modal-dialog {\n    width: 960px;\n  }\n}\n\n@media (max-width: 991px) {\n  .fixed-section.affix {\n    position: relative;\n    margin-bottom: 100px;\n  }\n}\n\n@media (max-width: 768px) {\n  .btn,\n  .btn-morphing {\n    margin-bottom: 10px;\n  }\n  .parallax .motto {\n    top: 170px;\n    margin-top: 0;\n    font-size: 60px;\n    width: 270px;\n  }\n}\n\n/*       Loading dots  */\n\n/*      transitions */\n\n.presentation .front,\n.presentation .front:after,\n.presentation .front .btn,\n.logo-container .logo,\n.logo-container .brand {\n  -webkit-transition: all .2s;\n  -moz-transition: all .2s;\n  -o-transition: all .2s;\n  transition: all .2s;\n}\n\n#images h4 {\n  margin-bottom: 30px;\n}\n\n#javascriptComponents {\n  padding-bottom: 0;\n}\n\n/*      layer animation          */\n\n.layers-container {\n  display: block;\n  margin-top: 50px;\n  position: relative;\n}\n\n.layers-container img {\n  position: absolute;\n  width: 100%;\n  height: auto;\n  top: 0;\n  left: 0;\n  text-align: center;\n}\n\n.animate {\n  transition: 1.5s ease-in-out;\n  -moz-transition: 1.5s ease-in-out;\n  -webkit-transition: 1.5s ease-in-out;\n}\n\n.navbar-default.navbar-small .logo-container .brand {\n  color: #333333;\n}\n\n.navbar-transparent.navbar-small .logo-container .brand {\n  color: #FFFFFF;\n}\n\n.navbar-default.navbar-small .logo-container .brand {\n  color: #333333;\n}\n\n.sharing-area {\n  margin-top: 80px;\n}\n\n.sharing-area .btn {\n  margin: 15px 4px 0;\n}\n\n.section-thin,\n.section-notifications {\n  padding: 0;\n}\n\n.section-navbars {\n  padding-top: 0;\n}\n\n.section-tabs {\n  background: #EEEEEE;\n}\n\n.section-pagination {\n  padding-bottom: 0;\n}\n\n.section-download {\n  padding-top: 130px;\n}\n\n.section-download .description {\n  margin-bottom: 60px;\n}\n\n.section-download h4 {\n  margin-bottom: 25px;\n}\n\n.section-examples a {\n  text-decoration: none;\n}\n\n.section-examples a+a {\n  margin-top: 30px;\n}\n\n.section-examples h5 {\n  margin-top: 30px;\n}\n\n.components-page .wrapper>.header,\n.tutorial-page .wrapper>.header {\n  height: 500px;\n  padding-top: 128px;\n  background-size: cover;\n  background-position: center center;\n}\n\n.components-page .title,\n.tutorial-page .title {\n  color: #FFFFFF;\n}\n\n.brand .h1-seo {\n  font-size: 2.8em;\n  text-transform: uppercase;\n  font-weight: 300;\n}\n\n.brand .n-logo {\n  max-width: 100px;\n  margin-bottom: 40px;\n}\n\n.invision-logo {\n  max-width: 70px;\n  top: -2px;\n  position: relative;\n}\n\n.creative-tim-logo {\n  max-width: 140px;\n  top: -2px;\n  position: relative;\n}\n\n.section-javascript .title {\n  margin-bottom: 0;\n}\n\n.navbar .switch-background {\n  display: block;\n}\n\n.navbar-transparent .switch-background {\n  display: none;\n}\n\n.section-signup .col .btn {\n  margin-top: 30px;\n}\n\n#buttons-row .btn {\n  margin-bottom: 10px;\n}\n\n.section-basic {\n  padding-top: 0;\n}\n\n.section-images {\n  padding-bottom: 0;\n}\n\n@media screen and (max-width: 991px) {\n  .section-navbars .navbar-collapse {\n    display: none !important;\n  }\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/.github/ISSUE_TEMPLATE/bug_report.md",
    "content": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the bug**\nA clear and concise description of what the bug is.\n\n**To Reproduce**\nSteps to reproduce the behavior:\n1. Go to '...'\n2. Click on '....'\n3. Scroll down to '....'\n4. See error\n\n**Expected behavior**\nA clear and concise description of what you expected to happen.\n\n**Screenshots**\nIf applicable, add screenshots to help explain your problem.\n\n**Desktop (please complete the following information):**\n - OS: [e.g. iOS]\n - Browser [e.g. chrome, safari]\n - Version [e.g. 22]\n\n**Smartphone (please complete the following information):**\n - Device: [e.g. iPhone6]\n - OS: [e.g. iOS8.1]\n - Browser [e.g. stock browser, safari]\n - Version [e.g. 22]\n\n**Additional context**\nAdd any other context about the problem here.\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/.github/ISSUE_TEMPLATE/feature_request.md",
    "content": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your feature request related to a problem? Please describe.**\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\n\n**Describe the solution you'd like**\nA clear and concise description of what you want to happen.\n\n**Describe alternatives you've considered**\nA clear and concise description of any alternative solutions or features you've considered.\n\n**Additional context**\nAdd any other context or screenshots about the feature request here.\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/.github/ISSUE_TEMPLATE/question.md",
    "content": "---\nname: Question\nabout: Describe your question here.\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\nHow do I ...\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/.gitignore",
    "content": "node_modules/*\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/README.md",
    "content": "# fancyBox\n\njQuery lightbox script for displaying images, videos and more.\nTouch enabled, responsive and fully customizable.\n\nSee the [project page](http://fancyapps.com/fancybox/3/) for documentation and a demonstration.\n\nFollow [@thefancyapps](//twitter.com/thefancyapps) for updates.\n\n\n## Quick start\n\n1\\.  Add latest jQuery and fancyBox files\n\n```html\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\"></script>\n\n<link  href=\"/path/to/jquery.fancybox.min.css\" rel=\"stylesheet\">\n<script src=\"/path/to/jquery.fancybox.min.js\"></script>\n```\n\n\n2\\.  Create links\n\n```html\n<a data-fancybox=\"gallery\" href=\"big_1.jpg\">\n    <img src=\"small_1.jpg\">\n</a>\n\n<a data-fancybox=\"gallery\" href=\"big_2.jpg\">\n    <img src=\"small_2.jpg\">\n</a>\n```\n\n\n3\\. Enjoy!\n\n\n## License\n\nfancyBox is licensed under the [GPLv3](http://choosealicense.com/licenses/gpl-3.0) license for all open source applications.\nA commercial license is required for all commercial applications (including sites, themes and apps you plan to sell).\n\n[Read more about fancyBox license](http://fancyapps.com/fancybox/3/#license).\n\n## Bugs and feature requests\n\nIf you find a bug, please report it [here on Github](https://github.com/fancyapps/fancybox/issues).\n\nGuidelines for bug reports:\n\n1. Use the GitHub issue search — check if the issue has already been reported.\n2. Check if the issue has been fixed — try to reproduce it using the latest master or development branch in the repository.\n3. Isolate the problem — create a reduced test case and a live example. You can use CodePen to fork any demo found on documentation to use it as a template.\n\nA good bug report shouldn't leave others needing to chase you up for more information.\nPlease try to be as detailed as possible in your report.\n\n\nFeature requests are welcome. Please look for existing ones and use GitHub's \"reactions\" feature to vote.\n\nPlease do not use the issue tracker for personal support requests - use Stack Overflow ([fancybox-3](http://stackoverflow.com/questions/tagged/fancybox-3) tag) instead.\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/bower.json",
    "content": "{\n  \"name\": \"fancybox\",\n  \"description\": \"Touch enabled, responsive and fully customizable jQuery lightbox script\",\n  \"keywords\": [\n    \"touch\",\n    \"responsive\",\n    \"lightbox\",\n    \"fancybox\",\n    \"gallery\",\n    \"jQuery\",\n    \"plugin\"\n  ],\n  \"homepage\": \"http://fancyapps.com/fancybox/\",\n  \"license\": \"GPL-3.0\",\n  \"moduleType\": \"globals\",\n  \"main\": [\n    \"dist/jquery.fancybox.min.css\",\n    \"dist/jquery.fancybox.min.js\"\n  ],\n  \"dependencies\": {\n    \"jquery\": \">=1.9.0\"\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/dist/jquery.fancybox.css",
    "content": "body.compensate-for-scrollbar {\n    overflow: hidden;\n}\n\n.fancybox-active {\n    height: auto;\n}\n\n.fancybox-is-hidden {\n    left: -9999px;\n    margin: 0;\n    position: absolute !important;\n    top: -9999px;\n    visibility: hidden;\n}\n\n.fancybox-container {\n    -webkit-backface-visibility: hidden;\n    height: 100%;\n    left: 0;\n    outline: none;\n    position: fixed;\n    -webkit-tap-highlight-color: transparent;\n    top: 0;\n    -ms-touch-action: manipulation;\n    touch-action: manipulation;\n    transform: translateZ(0);\n    width: 100%;\n    z-index: 99992;\n}\n\n.fancybox-container * {\n    box-sizing: border-box;\n}\n\n.fancybox-outer,\n.fancybox-inner,\n.fancybox-bg,\n.fancybox-stage {\n    bottom: 0;\n    left: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n}\n\n.fancybox-outer {\n    -webkit-overflow-scrolling: touch;\n    overflow-y: auto;\n}\n\n.fancybox-bg {\n    background: rgb(30, 30, 30);\n    opacity: 0;\n    transition-duration: inherit;\n    transition-property: opacity;\n    transition-timing-function: cubic-bezier(.47, 0, .74, .71);\n}\n\n.fancybox-is-open .fancybox-bg {\n    opacity: .9;\n    transition-timing-function: cubic-bezier(.22, .61, .36, 1);\n}\n\n.fancybox-infobar,\n.fancybox-toolbar,\n.fancybox-caption,\n.fancybox-navigation .fancybox-button {\n    direction: ltr;\n    opacity: 0;\n    position: absolute;\n    transition: opacity .25s ease, visibility 0s ease .25s;\n    visibility: hidden;\n    z-index: 99997;\n}\n\n.fancybox-show-infobar .fancybox-infobar,\n.fancybox-show-toolbar .fancybox-toolbar,\n.fancybox-show-caption .fancybox-caption,\n.fancybox-show-nav .fancybox-navigation .fancybox-button {\n    opacity: 1;\n    transition: opacity .25s ease 0s, visibility 0s ease 0s;\n    visibility: visible;\n}\n\n.fancybox-infobar {\n    color: #ccc;\n    font-size: 13px;\n    -webkit-font-smoothing: subpixel-antialiased;\n    height: 44px;\n    left: 0;\n    line-height: 44px;\n    min-width: 44px;\n    mix-blend-mode: difference;\n    padding: 0 10px;\n    pointer-events: none;\n    top: 0;\n    -webkit-touch-callout: none;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n}\n\n.fancybox-toolbar {\n    right: 0;\n    top: 0;\n}\n\n.fancybox-stage {\n    direction: ltr;\n    overflow: visible;\n    transform: translateZ(0);\n    z-index: 99994;\n}\n\n.fancybox-is-open .fancybox-stage {\n    overflow: hidden;\n}\n\n.fancybox-slide {\n    -webkit-backface-visibility: hidden;\n    /* Using without prefix would break IE11 */\n    display: none;\n    height: 100%;\n    left: 0;\n    outline: none;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding: 44px;\n    position: absolute;\n    text-align: center;\n    top: 0;\n    transition-property: transform, opacity;\n    white-space: normal;\n    width: 100%;\n    z-index: 99994;\n}\n\n.fancybox-slide::before {\n    content: '';\n    display: inline-block;\n    font-size: 0;\n    height: 100%;\n    vertical-align: middle;\n    width: 0;\n}\n\n.fancybox-is-sliding .fancybox-slide,\n.fancybox-slide--previous,\n.fancybox-slide--current,\n.fancybox-slide--next {\n    display: block;\n}\n\n.fancybox-slide--image {\n    overflow: hidden;\n    padding: 44px 0;\n}\n\n.fancybox-slide--image::before {\n    display: none;\n}\n\n.fancybox-slide--html {\n    padding: 6px;\n}\n\n.fancybox-content {\n    background: #fff;\n    display: inline-block;\n    margin: 0;\n    max-width: 100%;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding: 44px;\n    position: relative;\n    text-align: left;\n    vertical-align: middle;\n}\n\n.fancybox-slide--image .fancybox-content {\n    animation-timing-function: cubic-bezier(.5, 0, .14, 1);\n    -webkit-backface-visibility: hidden;\n    background: transparent;\n    background-repeat: no-repeat;\n    background-size: 100% 100%;\n    left: 0;\n    max-width: none;\n    overflow: visible;\n    padding: 0;\n    position: absolute;\n    top: 0;\n    -ms-transform-origin: top left;\n    transform-origin: top left;\n    transition-property: transform, opacity;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    z-index: 99995;\n}\n\n.fancybox-can-zoomOut .fancybox-content {\n    cursor: zoom-out;\n}\n\n.fancybox-can-zoomIn .fancybox-content {\n    cursor: zoom-in;\n}\n\n.fancybox-can-swipe .fancybox-content,\n.fancybox-can-pan .fancybox-content {\n    cursor: -webkit-grab;\n    cursor: grab;\n}\n\n.fancybox-is-grabbing .fancybox-content {\n    cursor: -webkit-grabbing;\n    cursor: grabbing;\n}\n\n.fancybox-container [data-selectable='true'] {\n    cursor: text;\n}\n\n.fancybox-image,\n.fancybox-spaceball {\n    background: transparent;\n    border: 0;\n    height: 100%;\n    left: 0;\n    margin: 0;\n    max-height: none;\n    max-width: none;\n    padding: 0;\n    position: absolute;\n    top: 0;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    width: 100%;\n}\n\n.fancybox-spaceball {\n    z-index: 1;\n}\n\n.fancybox-slide--video .fancybox-content,\n.fancybox-slide--map .fancybox-content,\n.fancybox-slide--pdf .fancybox-content,\n.fancybox-slide--iframe .fancybox-content {\n    height: 100%;\n    overflow: visible;\n    padding: 0;\n    width: 100%;\n}\n\n.fancybox-slide--video .fancybox-content {\n    background: #000;\n}\n\n.fancybox-slide--map .fancybox-content {\n    background: #e5e3df;\n}\n\n.fancybox-slide--iframe .fancybox-content {\n    background: #fff;\n}\n\n.fancybox-video,\n.fancybox-iframe {\n    background: transparent;\n    border: 0;\n    display: block;\n    height: 100%;\n    margin: 0;\n    overflow: hidden;\n    padding: 0;\n    width: 100%;\n}\n\n/* Fix iOS */\n.fancybox-iframe {\n    left: 0;\n    position: absolute;\n    top: 0;\n}\n\n.fancybox-error {\n    background: #fff;\n    cursor: default;\n    max-width: 400px;\n    padding: 40px;\n    width: 100%;\n}\n\n.fancybox-error p {\n    color: #444;\n    font-size: 16px;\n    line-height: 20px;\n    margin: 0;\n    padding: 0;\n}\n\n/* Buttons */\n\n.fancybox-button {\n    background: rgba(30, 30, 30, .6);\n    border: 0;\n    border-radius: 0;\n    box-shadow: none;\n    cursor: pointer;\n    display: inline-block;\n    height: 44px;\n    margin: 0;\n    padding: 10px;\n    position: relative;\n    transition: color .2s;\n    vertical-align: top;\n    visibility: inherit;\n    width: 44px;\n}\n\n.fancybox-button,\n.fancybox-button:visited,\n.fancybox-button:link {\n    color: #ccc;\n}\n\n.fancybox-button:hover {\n    color: #fff;\n}\n\n.fancybox-button:focus {\n    outline: none;\n}\n\n.fancybox-button.fancybox-focus {\n    outline: 1px dotted;\n}\n\n.fancybox-button[disabled],\n.fancybox-button[disabled]:hover {\n    color: #888;\n    cursor: default;\n    outline: none;\n}\n\n/* Fix IE11 */\n.fancybox-button div {\n    height: 100%;\n}\n\n.fancybox-button svg {\n    display: block;\n    height: 100%;\n    overflow: visible;\n    position: relative;\n    width: 100%;\n}\n\n.fancybox-button svg path {\n    fill: currentColor;\n    stroke-width: 0;\n}\n\n.fancybox-button--play svg:nth-child(2),\n.fancybox-button--fsenter svg:nth-child(2) {\n    display: none;\n}\n\n.fancybox-button--pause svg:nth-child(1),\n.fancybox-button--fsexit svg:nth-child(1) {\n    display: none;\n}\n\n.fancybox-progress {\n    background: #ff5268;\n    height: 2px;\n    left: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n    -ms-transform: scaleX(0);\n    transform: scaleX(0);\n    -ms-transform-origin: 0;\n    transform-origin: 0;\n    transition-property: transform;\n    transition-timing-function: linear;\n    z-index: 99998;\n}\n\n/* Close button on the top right corner of html content */\n\n.fancybox-close-small {\n    background: transparent;\n    border: 0;\n    border-radius: 0;\n    color: #ccc;\n    cursor: pointer;\n    opacity: .8;\n    padding: 8px;\n    position: absolute;\n    right: -12px;\n    top: -44px;\n    z-index: 401;\n}\n\n.fancybox-close-small:hover {\n    color: #fff;\n    opacity: 1;\n}\n\n.fancybox-slide--html .fancybox-close-small {\n    color: currentColor;\n    padding: 10px;\n    right: 0;\n    top: 0;\n}\n\n.fancybox-slide--image.fancybox-is-scaling .fancybox-content {\n    overflow: hidden;\n}\n\n.fancybox-is-scaling .fancybox-close-small,\n.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small {\n    display: none;\n}\n\n/* Navigation arrows */\n\n.fancybox-navigation .fancybox-button {\n    background-clip: content-box;\n    height: 100px;\n    opacity: 0;\n    position: absolute;\n    top: calc(50% - 50px);\n    width: 70px;\n}\n\n.fancybox-navigation .fancybox-button div {\n    padding: 7px;\n}\n\n.fancybox-navigation .fancybox-button--arrow_left {\n    left: 0;\n    left: env(safe-area-inset-left);\n    padding: 31px 26px 31px 6px;\n}\n\n.fancybox-navigation .fancybox-button--arrow_right {\n    padding: 31px 6px 31px 26px;\n    right: 0;\n    right: env(safe-area-inset-right);\n}\n\n/* Caption */\n\n.fancybox-caption {\n    background: linear-gradient(to top,\n        rgba(0, 0, 0, .85) 0%,\n        rgba(0, 0, 0, .3) 50%,\n        rgba(0, 0, 0, .15) 65%,\n        rgba(0, 0, 0, .075) 75.5%,\n        rgba(0, 0, 0, .037) 82.85%,\n        rgba(0, 0, 0, .019) 88%,\n        rgba(0, 0, 0, 0) 100%);\n    bottom: 0;\n    color: #eee;\n    font-size: 14px;\n    font-weight: 400;\n    left: 0;\n    line-height: 1.5;\n    padding: 75px 44px 25px 44px;\n    pointer-events: none;\n    right: 0;\n    text-align: center;\n    z-index: 99996;\n}\n\n@supports (padding: max(0px)) {\n    .fancybox-caption {\n        padding: 75px max(44px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(44px, env(safe-area-inset-left));\n    }\n}\n\n.fancybox-caption--separate {\n    margin-top: -50px;\n}\n\n.fancybox-caption__body {\n    max-height: 50vh;\n    overflow: auto;\n    pointer-events: all;\n}\n\n.fancybox-caption a,\n.fancybox-caption a:link,\n.fancybox-caption a:visited {\n    color: #ccc;\n    text-decoration: none;\n}\n\n.fancybox-caption a:hover {\n    color: #fff;\n    text-decoration: underline;\n}\n\n/* Loading indicator */\n\n.fancybox-loading {\n    animation: fancybox-rotate 1s linear infinite;\n    background: transparent;\n    border: 4px solid #888;\n    border-bottom-color: #fff;\n    border-radius: 50%;\n    height: 50px;\n    left: 50%;\n    margin: -25px 0 0 -25px;\n    opacity: .7;\n    padding: 0;\n    position: absolute;\n    top: 50%;\n    width: 50px;\n    z-index: 99999;\n}\n\n@keyframes fancybox-rotate {\n    100% {\n        transform: rotate(360deg);\n    }\n}\n\n/* Transition effects */\n\n.fancybox-animated {\n    transition-timing-function: cubic-bezier(0, 0, .25, 1);\n}\n\n/* transitionEffect: slide */\n\n.fancybox-fx-slide.fancybox-slide--previous {\n    opacity: 0;\n    transform: translate3d(-100%, 0, 0);\n}\n\n.fancybox-fx-slide.fancybox-slide--next {\n    opacity: 0;\n    transform: translate3d(100%, 0, 0);\n}\n\n.fancybox-fx-slide.fancybox-slide--current {\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n}\n\n/* transitionEffect: fade */\n\n.fancybox-fx-fade.fancybox-slide--previous,\n.fancybox-fx-fade.fancybox-slide--next {\n    opacity: 0;\n    transition-timing-function: cubic-bezier(.19, 1, .22, 1);\n}\n\n.fancybox-fx-fade.fancybox-slide--current {\n    opacity: 1;\n}\n\n/* transitionEffect: zoom-in-out */\n\n.fancybox-fx-zoom-in-out.fancybox-slide--previous {\n    opacity: 0;\n    transform: scale3d(1.5, 1.5, 1.5);\n}\n\n.fancybox-fx-zoom-in-out.fancybox-slide--next {\n    opacity: 0;\n    transform: scale3d(.5, .5, .5);\n}\n\n.fancybox-fx-zoom-in-out.fancybox-slide--current {\n    opacity: 1;\n    transform: scale3d(1, 1, 1);\n}\n\n/* transitionEffect: rotate */\n\n.fancybox-fx-rotate.fancybox-slide--previous {\n    opacity: 0;\n    -ms-transform: rotate(-360deg);\n    transform: rotate(-360deg);\n}\n\n.fancybox-fx-rotate.fancybox-slide--next {\n    opacity: 0;\n    -ms-transform: rotate(360deg);\n    transform: rotate(360deg);\n}\n\n.fancybox-fx-rotate.fancybox-slide--current {\n    opacity: 1;\n    -ms-transform: rotate(0deg);\n    transform: rotate(0deg);\n}\n\n/* transitionEffect: circular */\n\n.fancybox-fx-circular.fancybox-slide--previous {\n    opacity: 0;\n    transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);\n}\n\n.fancybox-fx-circular.fancybox-slide--next {\n    opacity: 0;\n    transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);\n}\n\n.fancybox-fx-circular.fancybox-slide--current {\n    opacity: 1;\n    transform: scale3d(1, 1, 1) translate3d(0, 0, 0);\n}\n\n/* transitionEffect: tube */\n\n.fancybox-fx-tube.fancybox-slide--previous {\n    transform: translate3d(-100%, 0, 0) scale(.1) skew(-10deg);\n}\n\n.fancybox-fx-tube.fancybox-slide--next {\n    transform: translate3d(100%, 0, 0) scale(.1) skew(10deg);\n}\n\n.fancybox-fx-tube.fancybox-slide--current {\n    transform: translate3d(0, 0, 0) scale(1);\n}\n\n/* Styling for Small-Screen Devices */\n@media all and (max-height: 576px) {\n    .fancybox-slide {\n        padding-left: 6px;\n        padding-right: 6px;\n    }\n\n    .fancybox-slide--image {\n        padding: 6px 0;\n    }\n\n    .fancybox-close-small {\n        right: -6px;\n    }\n\n    .fancybox-slide--image .fancybox-close-small {\n        background: #4e4e4e;\n        color: #f2f4f6;\n        height: 36px;\n        opacity: 1;\n        padding: 6px;\n        right: 0;\n        top: 0;\n        width: 36px;\n    }\n\n    .fancybox-caption {\n        padding-left: 12px;\n        padding-right: 12px;\n    }\n\n    @supports (padding: max(0px)) {\n        .fancybox-caption {\n            padding-left: max(12px, env(safe-area-inset-left));\n            padding-right: max(12px, env(safe-area-inset-right));\n        }\n    }\n}\n/* Share */\n\n.fancybox-share {\n    background: #f4f4f4;\n    border-radius: 3px;\n    max-width: 90%;\n    padding: 30px;\n    text-align: center;\n}\n\n.fancybox-share h1 {\n    color: #222;\n    font-size: 35px;\n    font-weight: 700;\n    margin: 0 0 20px 0;\n}\n\n.fancybox-share p {\n    margin: 0;\n    padding: 0;\n}\n\n.fancybox-share__button {\n    border: 0;\n    border-radius: 3px;\n    display: inline-block;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 40px;\n    margin: 0 5px 10px 5px;\n    min-width: 130px;\n    padding: 0 15px;\n    text-decoration: none;\n    transition: all .2s;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    -ms-user-select: none;\n    user-select: none;\n    white-space: nowrap;\n}\n\n.fancybox-share__button:visited,\n.fancybox-share__button:link {\n    color: #fff;\n}\n\n.fancybox-share__button:hover {\n    text-decoration: none;\n}\n\n.fancybox-share__button--fb {\n    background: #3b5998;\n}\n\n.fancybox-share__button--fb:hover {\n    background: #344e86;\n}\n\n.fancybox-share__button--pt {\n    background: #bd081d;\n}\n\n.fancybox-share__button--pt:hover {\n    background: #aa0719;\n}\n\n.fancybox-share__button--tw {\n    background: #1da1f2;\n}\n\n.fancybox-share__button--tw:hover {\n    background: #0d95e8;\n}\n\n.fancybox-share__button svg {\n    height: 25px;\n    margin-right: 7px;\n    position: relative;\n    top: -1px;\n    vertical-align: middle;\n    width: 25px;\n}\n\n.fancybox-share__button svg path {\n    fill: #fff;\n}\n\n.fancybox-share__input {\n    background: transparent;\n    border: 0;\n    border-bottom: 1px solid #d7d7d7;\n    border-radius: 0;\n    color: #5d5b5b;\n    font-size: 14px;\n    margin: 10px 0 0 0;\n    outline: none;\n    padding: 10px 15px;\n    width: 100%;\n}\n/* Thumbs */\n\n.fancybox-thumbs {\n    background: #ddd;\n    bottom: 0;\n    display: none;\n    margin: 0;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    padding: 2px 2px 4px 2px;\n    position: absolute;\n    right: 0;\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n    top: 0;\n    width: 212px;\n    z-index: 99995;\n}\n\n.fancybox-thumbs-x {\n    overflow-x: auto;\n    overflow-y: hidden;\n}\n\n.fancybox-show-thumbs .fancybox-thumbs {\n    display: block;\n}\n\n.fancybox-show-thumbs .fancybox-inner {\n    right: 212px;\n}\n\n.fancybox-thumbs__list {\n    font-size: 0;\n    height: 100%;\n    list-style: none;\n    margin: 0;\n    overflow-x: hidden;\n    overflow-y: auto;\n    padding: 0;\n    position: absolute;\n    position: relative;\n    white-space: nowrap;\n    width: 100%;\n}\n\n.fancybox-thumbs-x .fancybox-thumbs__list {\n    overflow: hidden;\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar {\n    width: 7px;\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {\n    background: #fff;\n    border-radius: 10px;\n    box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {\n    background: #2a2a2a;\n    border-radius: 10px;\n}\n\n.fancybox-thumbs__list a {\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden;\n    background-color: rgba(0, 0, 0, .1);\n    background-position: center center;\n    background-repeat: no-repeat;\n    background-size: cover;\n    cursor: pointer;\n    float: left;\n    height: 75px;\n    margin: 2px;\n    max-height: calc(100% - 8px);\n    max-width: calc(50% - 4px);\n    outline: none;\n    overflow: hidden;\n    padding: 0;\n    position: relative;\n    -webkit-tap-highlight-color: transparent;\n    width: 100px;\n}\n\n.fancybox-thumbs__list a::before {\n    border: 6px solid #ff5268;\n    bottom: 0;\n    content: '';\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n    transition: all .2s cubic-bezier(.25, .46, .45, .94);\n    z-index: 99991;\n}\n\n.fancybox-thumbs__list a:focus::before {\n    opacity: .5;\n}\n\n.fancybox-thumbs__list a.fancybox-thumbs-active::before {\n    opacity: 1;\n}\n\n/* Styling for Small-Screen Devices */\n@media all and (max-width: 576px) {\n    .fancybox-thumbs {\n        width: 110px;\n    }\n\n    .fancybox-show-thumbs .fancybox-inner {\n        right: 110px;\n    }\n\n    .fancybox-thumbs__list a {\n        max-width: calc(100% - 10px);\n    }\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/dist/jquery.fancybox.js",
    "content": "// ==================================================\n// fancyBox v3.5.7\n//\n// Licensed GPLv3 for open source use\n// or fancyBox Commercial License for commercial use\n//\n// http://fancyapps.com/fancybox/\n// Copyright 2019 fancyApps\n//\n// ==================================================\n(function (window, document, $, undefined) {\n  \"use strict\";\n\n  window.console = window.console || {\n    info: function (stuff) {}\n  };\n\n  // If there's no jQuery, fancyBox can't work\n  // =========================================\n\n  if (!$) {\n    return;\n  }\n\n  // Check if fancyBox is already initialized\n  // ========================================\n\n  if ($.fn.fancybox) {\n    console.info(\"fancyBox already initialized\");\n\n    return;\n  }\n\n  // Private default settings\n  // ========================\n\n  var defaults = {\n    // Close existing modals\n    // Set this to false if you do not need to stack multiple instances\n    closeExisting: false,\n\n    // Enable infinite gallery navigation\n    loop: false,\n\n    // Horizontal space between slides\n    gutter: 50,\n\n    // Enable keyboard navigation\n    keyboard: true,\n\n    // Should allow caption to overlap the content\n    preventCaptionOverlap: true,\n\n    // Should display navigation arrows at the screen edges\n    arrows: true,\n\n    // Should display counter at the top left corner\n    infobar: true,\n\n    // Should display close button (using `btnTpl.smallBtn` template) over the content\n    // Can be true, false, \"auto\"\n    // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\n    smallBtn: \"auto\",\n\n    // Should display toolbar (buttons at the top)\n    // Can be true, false, \"auto\"\n    // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\n    toolbar: \"auto\",\n\n    // What buttons should appear in the top right corner.\n    // Buttons will be created using templates from `btnTpl` option\n    // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\n    buttons: [\n      \"zoom\",\n      //\"share\",\n      \"slideShow\",\n      //\"fullScreen\",\n      //\"download\",\n      \"thumbs\",\n      \"close\"\n    ],\n\n    // Detect \"idle\" time in seconds\n    idleTime: 3,\n\n    // Disable right-click and use simple image protection for images\n    protect: false,\n\n    // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\n    modal: false,\n\n    image: {\n      // Wait for images to load before displaying\n      //   true  - wait for image to load and then display;\n      //   false - display thumbnail and load the full-sized image over top,\n      //           requires predefined image dimensions (`data-width` and `data-height` attributes)\n      preload: false\n    },\n\n    ajax: {\n      // Object containing settings for ajax request\n      settings: {\n        // This helps to indicate that request comes from the modal\n        // Feel free to change naming\n        data: {\n          fancybox: true\n        }\n      }\n    },\n\n    iframe: {\n      // Iframe template\n      tpl: '<iframe id=\"fancybox-frame{rnd}\" name=\"fancybox-frame{rnd}\" class=\"fancybox-iframe\" allowfullscreen=\"allowfullscreen\" allow=\"autoplay; fullscreen\" src=\"\"></iframe>',\n\n      // Preload iframe before displaying it\n      // This allows to calculate iframe content width and height\n      // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\n      preload: true,\n\n      // Custom CSS styling for iframe wrapping element\n      // You can use this to set custom iframe dimensions\n      css: {},\n\n      // Iframe tag attributes\n      attr: {\n        scrolling: \"auto\"\n      }\n    },\n\n    // For HTML5 video only\n    video: {\n      tpl: '<video class=\"fancybox-video\" controls controlsList=\"nodownload\" poster=\"{{poster}}\">' +\n        '<source src=\"{{src}}\" type=\"{{format}}\" />' +\n        'Sorry, your browser doesn\\'t support embedded videos, <a href=\"{{src}}\">download</a> and watch with your favorite video player!' +\n        \"</video>\",\n      format: \"\", // custom video format\n      autoStart: true\n    },\n\n    // Default content type if cannot be detected automatically\n    defaultType: \"image\",\n\n    // Open/close animation type\n    // Possible values:\n    //   false            - disable\n    //   \"zoom\"           - zoom images from/to thumbnail\n    //   \"fade\"\n    //   \"zoom-in-out\"\n    //\n    animationEffect: \"zoom\",\n\n    // Duration in ms for open/close animation\n    animationDuration: 366,\n\n    // Should image change opacity while zooming\n    // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\n    zoomOpacity: \"auto\",\n\n    // Transition effect between slides\n    //\n    // Possible values:\n    //   false            - disable\n    //   \"fade'\n    //   \"slide'\n    //   \"circular'\n    //   \"tube'\n    //   \"zoom-in-out'\n    //   \"rotate'\n    //\n    transitionEffect: \"fade\",\n\n    // Duration in ms for transition animation\n    transitionDuration: 366,\n\n    // Custom CSS class for slide element\n    slideClass: \"\",\n\n    // Custom CSS class for layout\n    baseClass: \"\",\n\n    // Base template for layout\n    baseTpl: '<div class=\"fancybox-container\" role=\"dialog\" tabindex=\"-1\">' +\n      '<div class=\"fancybox-bg\"></div>' +\n      '<div class=\"fancybox-inner\">' +\n      '<div class=\"fancybox-infobar\"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div>' +\n      '<div class=\"fancybox-toolbar\">{{buttons}}</div>' +\n      '<div class=\"fancybox-navigation\">{{arrows}}</div>' +\n      '<div class=\"fancybox-stage\"></div>' +\n      '<div class=\"fancybox-caption\"><div class=\"fancybox-caption__body\"></div></div>' +\n      \"</div>\" +\n      \"</div>\",\n\n    // Loading indicator template\n    spinnerTpl: '<div class=\"fancybox-loading\"></div>',\n\n    // Error message template\n    errorTpl: '<div class=\"fancybox-error\"><p>{{ERROR}}</p></div>',\n\n    btnTpl: {\n      download: '<a download data-fancybox-download class=\"fancybox-button fancybox-button--download\" title=\"{{DOWNLOAD}}\" href=\"javascript:;\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z\"/></svg>' +\n        \"</a>\",\n\n      zoom: '<button data-fancybox-zoom class=\"fancybox-button fancybox-button--zoom\" title=\"{{ZOOM}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z\"/></svg>' +\n        \"</button>\",\n\n      close: '<button data-fancybox-close class=\"fancybox-button fancybox-button--close\" title=\"{{CLOSE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z\"/></svg>' +\n        \"</button>\",\n\n      // Arrows\n      arrowLeft: '<button data-fancybox-prev class=\"fancybox-button fancybox-button--arrow_left\" title=\"{{PREV}}\">' +\n        '<div><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z\"/></svg></div>' +\n        \"</button>\",\n\n      arrowRight: '<button data-fancybox-next class=\"fancybox-button fancybox-button--arrow_right\" title=\"{{NEXT}}\">' +\n        '<div><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z\"/></svg></div>' +\n        \"</button>\",\n\n      // This small close button will be appended to your html/inline/ajax content by default,\n      // if \"smallBtn\" option is not set to false\n      smallBtn: '<button type=\"button\" data-fancybox-close class=\"fancybox-button fancybox-close-small\" title=\"{{CLOSE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 24 24\"><path d=\"M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z\"/></svg>' +\n        \"</button>\"\n    },\n\n    // Container is injected into this element\n    parentEl: \"body\",\n\n    // Hide browser vertical scrollbars; use at your own risk\n    hideScrollbar: true,\n\n    // Focus handling\n    // ==============\n\n    // Try to focus on the first focusable element after opening\n    autoFocus: true,\n\n    // Put focus back to active element after closing\n    backFocus: true,\n\n    // Do not let user to focus on element outside modal content\n    trapFocus: true,\n\n    // Module specific options\n    // =======================\n\n    fullScreen: {\n      autoStart: false\n    },\n\n    // Set `touch: false` to disable panning/swiping\n    touch: {\n      vertical: true, // Allow to drag content vertically\n      momentum: true // Continue movement after releasing mouse/touch when panning\n    },\n\n    // Hash value when initializing manually,\n    // set `false` to disable hash change\n    hash: null,\n\n    // Customize or add new media types\n    // Example:\n    /*\n      media : {\n        youtube : {\n          params : {\n            autoplay : 0\n          }\n        }\n      }\n    */\n    media: {},\n\n    slideShow: {\n      autoStart: false,\n      speed: 3000\n    },\n\n    thumbs: {\n      autoStart: false, // Display thumbnails on opening\n      hideOnClose: true, // Hide thumbnail grid when closing animation starts\n      parentEl: \".fancybox-container\", // Container is injected into this element\n      axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n    },\n\n    // Use mousewheel to navigate gallery\n    // If 'auto' - enabled for images only\n    wheel: \"auto\",\n\n    // Callbacks\n    //==========\n\n    // See Documentation/API/Events for more information\n    // Example:\n    /*\n      afterShow: function( instance, current ) {\n        console.info( 'Clicked element:' );\n        console.info( current.opts.$orig );\n      }\n    */\n\n    onInit: $.noop, // When instance has been initialized\n\n    beforeLoad: $.noop, // Before the content of a slide is being loaded\n    afterLoad: $.noop, // When the content of a slide is done loading\n\n    beforeShow: $.noop, // Before open animation starts\n    afterShow: $.noop, // When content is done loading and animating\n\n    beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\n    afterClose: $.noop, // After instance has been closed\n\n    onActivate: $.noop, // When instance is brought to front\n    onDeactivate: $.noop, // When other instance has been activated\n\n    // Interaction\n    // ===========\n\n    // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\n    // each option can be string or method that returns value.\n    //\n    // Possible values:\n    //   \"close\"           - close instance\n    //   \"next\"            - move to next gallery item\n    //   \"nextOrClose\"     - move to next gallery item or close if gallery has only one item\n    //   \"toggleControls\"  - show/hide controls\n    //   \"zoom\"            - zoom image (if loaded)\n    //   false             - do nothing\n\n    // Clicked on the content\n    clickContent: function (current, event) {\n      return current.type === \"image\" ? \"zoom\" : false;\n    },\n\n    // Clicked on the slide\n    clickSlide: \"close\",\n\n    // Clicked on the background (backdrop) element;\n    // if you have not changed the layout, then most likely you need to use `clickSlide` option\n    clickOutside: \"close\",\n\n    // Same as previous two, but for double click\n    dblclickContent: false,\n    dblclickSlide: false,\n    dblclickOutside: false,\n\n    // Custom options when mobile device is detected\n    // =============================================\n\n    mobile: {\n      preventCaptionOverlap: false,\n      idleTime: false,\n      clickContent: function (current, event) {\n        return current.type === \"image\" ? \"toggleControls\" : false;\n      },\n      clickSlide: function (current, event) {\n        return current.type === \"image\" ? \"toggleControls\" : \"close\";\n      },\n      dblclickContent: function (current, event) {\n        return current.type === \"image\" ? \"zoom\" : false;\n      },\n      dblclickSlide: function (current, event) {\n        return current.type === \"image\" ? \"zoom\" : false;\n      }\n    },\n\n    // Internationalization\n    // ====================\n\n    lang: \"en\",\n    i18n: {\n      en: {\n        CLOSE: \"Close\",\n        NEXT: \"Next\",\n        PREV: \"Previous\",\n        ERROR: \"The requested content cannot be loaded. <br/> Please try again later.\",\n        PLAY_START: \"Start slideshow\",\n        PLAY_STOP: \"Pause slideshow\",\n        FULL_SCREEN: \"Full screen\",\n        THUMBS: \"Thumbnails\",\n        DOWNLOAD: \"Download\",\n        SHARE: \"Share\",\n        ZOOM: \"Zoom\"\n      },\n      de: {\n        CLOSE: \"Schlie&szlig;en\",\n        NEXT: \"Weiter\",\n        PREV: \"Zur&uuml;ck\",\n        ERROR: \"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.\",\n        PLAY_START: \"Diaschau starten\",\n        PLAY_STOP: \"Diaschau beenden\",\n        FULL_SCREEN: \"Vollbild\",\n        THUMBS: \"Vorschaubilder\",\n        DOWNLOAD: \"Herunterladen\",\n        SHARE: \"Teilen\",\n        ZOOM: \"Vergr&ouml;&szlig;ern\"\n      }\n    }\n  };\n\n  // Few useful variables and methods\n  // ================================\n\n  var $W = $(window);\n  var $D = $(document);\n\n  var called = 0;\n\n  // Check if an object is a jQuery object and not a native JavaScript object\n  // ========================================================================\n  var isQuery = function (obj) {\n    return obj && obj.hasOwnProperty && obj instanceof $;\n  };\n\n  // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\n  // ===============================================================================\n  var requestAFrame = (function () {\n    return (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      // if all else fails, use setTimeout\n      function (callback) {\n        return window.setTimeout(callback, 1000 / 60);\n      }\n    );\n  })();\n\n  var cancelAFrame = (function () {\n    return (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      window.oCancelAnimationFrame ||\n      function (id) {\n        window.clearTimeout(id);\n      }\n    );\n  })();\n\n  // Detect the supported transition-end event property name\n  // =======================================================\n  var transitionEnd = (function () {\n    var el = document.createElement(\"fakeelement\"),\n      t;\n\n    var transitions = {\n      transition: \"transitionend\",\n      OTransition: \"oTransitionEnd\",\n      MozTransition: \"transitionend\",\n      WebkitTransition: \"webkitTransitionEnd\"\n    };\n\n    for (t in transitions) {\n      if (el.style[t] !== undefined) {\n        return transitions[t];\n      }\n    }\n\n    return \"transitionend\";\n  })();\n\n  // Force redraw on an element.\n  // This helps in cases where the browser doesn't redraw an updated element properly\n  // ================================================================================\n  var forceRedraw = function ($el) {\n    return $el && $el.length && $el[0].offsetHeight;\n  };\n\n  // Exclude array (`buttons`) options from deep merging\n  // ===================================================\n  var mergeOpts = function (opts1, opts2) {\n    var rez = $.extend(true, {}, opts1, opts2);\n\n    $.each(opts2, function (key, value) {\n      if ($.isArray(value)) {\n        rez[key] = value;\n      }\n    });\n\n    return rez;\n  };\n\n  // How much of an element is visible in viewport\n  // =============================================\n\n  var inViewport = function (elem) {\n    var elemCenter, rez;\n\n    if (!elem || elem.ownerDocument !== document) {\n      return false;\n    }\n\n    $(\".fancybox-container\").css(\"pointer-events\", \"none\");\n\n    elemCenter = {\n      x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\n      y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\n    };\n\n    rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\n\n    $(\".fancybox-container\").css(\"pointer-events\", \"\");\n\n    return rez;\n  };\n\n  // Class definition\n  // ================\n\n  var FancyBox = function (content, opts, index) {\n    var self = this;\n\n    self.opts = mergeOpts({\n      index: index\n    }, $.fancybox.defaults);\n\n    if ($.isPlainObject(opts)) {\n      self.opts = mergeOpts(self.opts, opts);\n    }\n\n    if ($.fancybox.isMobile) {\n      self.opts = mergeOpts(self.opts, self.opts.mobile);\n    }\n\n    self.id = self.opts.id || ++called;\n\n    self.currIndex = parseInt(self.opts.index, 10) || 0;\n    self.prevIndex = null;\n\n    self.prevPos = null;\n    self.currPos = 0;\n\n    self.firstRun = true;\n\n    // All group items\n    self.group = [];\n\n    // Existing slides (for current, next and previous gallery items)\n    self.slides = {};\n\n    // Create group elements\n    self.addContent(content);\n\n    if (!self.group.length) {\n      return;\n    }\n\n    self.init();\n  };\n\n  $.extend(FancyBox.prototype, {\n    // Create DOM structure\n    // ====================\n\n    init: function () {\n      var self = this,\n        firstItem = self.group[self.currIndex],\n        firstItemOpts = firstItem.opts,\n        $container,\n        buttonStr;\n\n      if (firstItemOpts.closeExisting) {\n        $.fancybox.close(true);\n      }\n\n      // Hide scrollbars\n      // ===============\n\n      $(\"body\").addClass(\"fancybox-active\");\n\n      if (\n        !$.fancybox.getInstance() &&\n        firstItemOpts.hideScrollbar !== false &&\n        !$.fancybox.isMobile &&\n        document.body.scrollHeight > window.innerHeight\n      ) {\n        $(\"head\").append(\n          '<style id=\"fancybox-style-noscroll\" type=\"text/css\">.compensate-for-scrollbar{margin-right:' +\n          (window.innerWidth - document.documentElement.clientWidth) +\n          \"px;}</style>\"\n        );\n\n        $(\"body\").addClass(\"compensate-for-scrollbar\");\n      }\n\n      // Build html markup and set references\n      // ====================================\n\n      // Build html code for buttons and insert into main template\n      buttonStr = \"\";\n\n      $.each(firstItemOpts.buttons, function (index, value) {\n        buttonStr += firstItemOpts.btnTpl[value] || \"\";\n      });\n\n      // Create markup from base template, it will be initially hidden to\n      // avoid unnecessary work like painting while initializing is not complete\n      $container = $(\n          self.translate(\n            self,\n            firstItemOpts.baseTpl\n            .replace(\"{{buttons}}\", buttonStr)\n            .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\n          )\n        )\n        .attr(\"id\", \"fancybox-container-\" + self.id)\n        .addClass(firstItemOpts.baseClass)\n        .data(\"FancyBox\", self)\n        .appendTo(firstItemOpts.parentEl);\n\n      // Create object holding references to jQuery wrapped nodes\n      self.$refs = {\n        container: $container\n      };\n\n      [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\n        self.$refs[item] = $container.find(\".fancybox-\" + item);\n      });\n\n      self.trigger(\"onInit\");\n\n      // Enable events, deactive previous instances\n      self.activate();\n\n      // Build slides, load and reveal content\n      self.jumpTo(self.currIndex);\n    },\n\n    // Simple i18n support - replaces object keys found in template\n    // with corresponding values\n    // ============================================================\n\n    translate: function (obj, str) {\n      var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\n\n      return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\n        return arr[n] === undefined ? match : arr[n];\n      });\n    },\n\n    // Populate current group with fresh content\n    // Check if each object has valid type and content\n    // ===============================================\n\n    addContent: function (content) {\n      var self = this,\n        items = $.makeArray(content),\n        thumbs;\n\n      $.each(items, function (i, item) {\n        var obj = {},\n          opts = {},\n          $item,\n          type,\n          found,\n          src,\n          srcParts;\n\n        // Step 1 - Make sure we have an object\n        // ====================================\n\n        if ($.isPlainObject(item)) {\n          // We probably have manual usage here, something like\n          // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\n\n          obj = item;\n          opts = item.opts || item;\n        } else if ($.type(item) === \"object\" && $(item).length) {\n          // Here we probably have jQuery collection returned by some selector\n          $item = $(item);\n\n          // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\n          opts = $item.data() || {};\n          opts = $.extend(true, {}, opts, opts.options);\n\n          // Here we store clicked element\n          opts.$orig = $item;\n\n          obj.src = self.opts.src || opts.src || $item.attr(\"href\");\n\n          // Assume that simple syntax is used, for example:\n          //   `$.fancybox.open( $(\"#test\"), {} );`\n          if (!obj.type && !obj.src) {\n            obj.type = \"inline\";\n            obj.src = item;\n          }\n        } else {\n          // Assume we have a simple html code, for example:\n          //   $.fancybox.open( '<div><h1>Hi!</h1></div>' );\n          obj = {\n            type: \"html\",\n            src: item + \"\"\n          };\n        }\n\n        // Each gallery object has full collection of options\n        obj.opts = $.extend(true, {}, self.opts, opts);\n\n        // Do not merge buttons array\n        if ($.isArray(opts.buttons)) {\n          obj.opts.buttons = opts.buttons;\n        }\n\n        if ($.fancybox.isMobile && obj.opts.mobile) {\n          obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\n        }\n\n        // Step 2 - Make sure we have content type, if not - try to guess\n        // ==============================================================\n\n        type = obj.type || obj.opts.type;\n        src = obj.src || \"\";\n\n        if (!type && src) {\n          if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\n            type = \"video\";\n\n            if (!obj.opts.video.format) {\n              obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\n            }\n          } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\n            type = \"image\";\n          } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\n            type = \"iframe\";\n            obj = $.extend(true, obj, {\n              contentType: \"pdf\",\n              opts: {\n                iframe: {\n                  preload: false\n                }\n              }\n            });\n          } else if (src.charAt(0) === \"#\") {\n            type = \"inline\";\n          }\n        }\n\n        if (type) {\n          obj.type = type;\n        } else {\n          self.trigger(\"objectNeedsType\", obj);\n        }\n\n        if (!obj.contentType) {\n          obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\n        }\n\n        // Step 3 - Some adjustments\n        // =========================\n\n        obj.index = self.group.length;\n\n        if (obj.opts.smallBtn == \"auto\") {\n          obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\n        }\n\n        if (obj.opts.toolbar === \"auto\") {\n          obj.opts.toolbar = !obj.opts.smallBtn;\n        }\n\n        // Find thumbnail image, check if exists and if is in the viewport\n        obj.$thumb = obj.opts.$thumb || null;\n\n        if (obj.opts.$trigger && obj.index === self.opts.index) {\n          obj.$thumb = obj.opts.$trigger.find(\"img:first\");\n\n          if (obj.$thumb.length) {\n            obj.opts.$orig = obj.opts.$trigger;\n          }\n        }\n\n        if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\n          obj.$thumb = obj.opts.$orig.find(\"img:first\");\n        }\n\n        if (obj.$thumb && !obj.$thumb.length) {\n          obj.$thumb = null;\n        }\n\n        obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\n\n        // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\n        if ($.type(obj.opts.caption) === \"function\") {\n          obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\n        }\n\n        if ($.type(self.opts.caption) === \"function\") {\n          obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\n        }\n\n        // Make sure we have caption as a string or jQuery object\n        if (!(obj.opts.caption instanceof $)) {\n          obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\n        }\n\n        // Check if url contains \"filter\" used to filter the content\n        // Example: \"ajax.html #something\"\n        if (obj.type === \"ajax\") {\n          srcParts = src.split(/\\s+/, 2);\n\n          if (srcParts.length > 1) {\n            obj.src = srcParts.shift();\n\n            obj.opts.filter = srcParts.shift();\n          }\n        }\n\n        // Hide all buttons and disable interactivity for modal items\n        if (obj.opts.modal) {\n          obj.opts = $.extend(true, obj.opts, {\n            trapFocus: true,\n            // Remove buttons\n            infobar: 0,\n            toolbar: 0,\n\n            smallBtn: 0,\n\n            // Disable keyboard navigation\n            keyboard: 0,\n\n            // Disable some modules\n            slideShow: 0,\n            fullScreen: 0,\n            thumbs: 0,\n            touch: 0,\n\n            // Disable click event handlers\n            clickContent: false,\n            clickSlide: false,\n            clickOutside: false,\n            dblclickContent: false,\n            dblclickSlide: false,\n            dblclickOutside: false\n          });\n        }\n\n        // Step 4 - Add processed object to group\n        // ======================================\n\n        self.group.push(obj);\n      });\n\n      // Update controls if gallery is already opened\n      if (Object.keys(self.slides).length) {\n        self.updateControls();\n\n        // Update thumbnails, if needed\n        thumbs = self.Thumbs;\n\n        if (thumbs && thumbs.isActive) {\n          thumbs.create();\n\n          thumbs.focus();\n        }\n      }\n    },\n\n    // Attach an event handler functions for:\n    //   - navigation buttons\n    //   - browser scrolling, resizing;\n    //   - focusing\n    //   - keyboard\n    //   - detecting inactivity\n    // ======================================\n\n    addEvents: function () {\n      var self = this;\n\n      self.removeEvents();\n\n      // Make navigation elements clickable\n      // ==================================\n\n      self.$refs.container\n        .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.close(e);\n        })\n        .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.previous();\n        })\n        .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.next();\n        })\n        .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\n          // Click handler for zoom button\n          self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\n        });\n\n      // Handle page scrolling and browser resizing\n      // ==========================================\n\n      $W.on(\"orientationchange.fb resize.fb\", function (e) {\n        if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\n          if (self.requestId) {\n            cancelAFrame(self.requestId);\n          }\n\n          self.requestId = requestAFrame(function () {\n            self.update(e);\n          });\n        } else {\n          if (self.current && self.current.type === \"iframe\") {\n            self.$refs.stage.hide();\n          }\n\n          setTimeout(\n            function () {\n              self.$refs.stage.show();\n\n              self.update(e);\n            },\n            $.fancybox.isMobile ? 600 : 250\n          );\n        }\n      });\n\n      $D.on(\"keydown.fb\", function (e) {\n        var instance = $.fancybox ? $.fancybox.getInstance() : null,\n          current = instance.current,\n          keycode = e.keyCode || e.which;\n\n        // Trap keyboard focus inside of the modal\n        // =======================================\n\n        if (keycode == 9) {\n          if (current.opts.trapFocus) {\n            self.focus(e);\n          }\n\n          return;\n        }\n\n        // Enable keyboard navigation\n        // ==========================\n\n        if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\n          return;\n        }\n\n        // Backspace and Esc keys\n        if (keycode === 8 || keycode === 27) {\n          e.preventDefault();\n\n          self.close(e);\n\n          return;\n        }\n\n        // Left arrow and Up arrow\n        if (keycode === 37 || keycode === 38) {\n          e.preventDefault();\n\n          self.previous();\n\n          return;\n        }\n\n        // Righ arrow and Down arrow\n        if (keycode === 39 || keycode === 40) {\n          e.preventDefault();\n\n          self.next();\n\n          return;\n        }\n\n        self.trigger(\"afterKeydown\", e, keycode);\n      });\n\n      // Hide controls after some inactivity period\n      if (self.group[self.currIndex].opts.idleTime) {\n        self.idleSecondsCounter = 0;\n\n        $D.on(\n          \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\n          function (e) {\n            self.idleSecondsCounter = 0;\n\n            if (self.isIdle) {\n              self.showControls();\n            }\n\n            self.isIdle = false;\n          }\n        );\n\n        self.idleInterval = window.setInterval(function () {\n          self.idleSecondsCounter++;\n\n          if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\n            self.isIdle = true;\n            self.idleSecondsCounter = 0;\n\n            self.hideControls();\n          }\n        }, 1000);\n      }\n    },\n\n    // Remove events added by the core\n    // ===============================\n\n    removeEvents: function () {\n      var self = this;\n\n      $W.off(\"orientationchange.fb resize.fb\");\n      $D.off(\"keydown.fb .fb-idle\");\n\n      this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\n\n      if (self.idleInterval) {\n        window.clearInterval(self.idleInterval);\n\n        self.idleInterval = null;\n      }\n    },\n\n    // Change to previous gallery item\n    // ===============================\n\n    previous: function (duration) {\n      return this.jumpTo(this.currPos - 1, duration);\n    },\n\n    // Change to next gallery item\n    // ===========================\n\n    next: function (duration) {\n      return this.jumpTo(this.currPos + 1, duration);\n    },\n\n    // Switch to selected gallery item\n    // ===============================\n\n    jumpTo: function (pos, duration) {\n      var self = this,\n        groupLen = self.group.length,\n        firstRun,\n        isMoved,\n        loop,\n        current,\n        previous,\n        slidePos,\n        stagePos,\n        prop,\n        diff;\n\n      if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\n        return;\n      }\n\n      // Should loop?\n      pos = parseInt(pos, 10);\n      loop = self.current ? self.current.opts.loop : self.opts.loop;\n\n      if (!loop && (pos < 0 || pos >= groupLen)) {\n        return false;\n      }\n\n      // Check if opening for the first time; this helps to speed things up\n      firstRun = self.firstRun = !Object.keys(self.slides).length;\n\n      // Create slides\n      previous = self.current;\n\n      self.prevIndex = self.currIndex;\n      self.prevPos = self.currPos;\n\n      current = self.createSlide(pos);\n\n      if (groupLen > 1) {\n        if (loop || current.index < groupLen - 1) {\n          self.createSlide(pos + 1);\n        }\n\n        if (loop || current.index > 0) {\n          self.createSlide(pos - 1);\n        }\n      }\n\n      self.current = current;\n      self.currIndex = current.index;\n      self.currPos = current.pos;\n\n      self.trigger(\"beforeShow\", firstRun);\n\n      self.updateControls();\n\n      // Validate duration length\n      current.forcedDuration = undefined;\n\n      if ($.isNumeric(duration)) {\n        current.forcedDuration = duration;\n      } else {\n        duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\n      }\n\n      duration = parseInt(duration, 10);\n\n      // Check if user has swiped the slides or if still animating\n      isMoved = self.isMoved(current);\n\n      // Make sure current slide is visible\n      current.$slide.addClass(\"fancybox-slide--current\");\n\n      // Fresh start - reveal container, current slide and start loading content\n      if (firstRun) {\n        if (current.opts.animationEffect && duration) {\n          self.$refs.container.css(\"transition-duration\", duration + \"ms\");\n        }\n\n        self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\n\n        // Attempt to load content into slide\n        // This will later call `afterLoad` -> `revealContent`\n        self.loadSlide(current);\n\n        self.preload(\"image\");\n\n        return;\n      }\n\n      // Get actual slide/stage positions (before cleaning up)\n      slidePos = $.fancybox.getTranslate(previous.$slide);\n      stagePos = $.fancybox.getTranslate(self.$refs.stage);\n\n      // Clean up all slides\n      $.each(self.slides, function (index, slide) {\n        $.fancybox.stop(slide.$slide, true);\n      });\n\n      if (previous.pos !== current.pos) {\n        previous.isComplete = false;\n      }\n\n      previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\n\n      // If slides are out of place, then animate them to correct position\n      if (isMoved) {\n        // Calculate horizontal swipe distance\n        diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\n\n        $.each(self.slides, function (index, slide) {\n          slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\n            return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n          });\n\n          // Make sure that each slide is in equal distance\n          // This is mostly needed for freshly added slides, because they are not yet positioned\n          var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: 0,\n            left: leftPos - stagePos.left + diff\n          });\n\n          if (slide.pos !== current.pos) {\n            slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\n          }\n\n          // Redraw to make sure that transition will start\n          forceRedraw(slide.$slide);\n\n          // Animate the slide\n          $.fancybox.animate(\n            slide.$slide, {\n              top: 0,\n              left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\n            },\n            duration,\n            function () {\n              slide.$slide\n                .css({\n                  transform: \"\",\n                  opacity: \"\"\n                })\n                .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n\n              if (slide.pos === self.currPos) {\n                self.complete();\n              }\n            }\n          );\n        });\n      } else if (duration && current.opts.transitionEffect) {\n        // Set transition effect for previously active slide\n        prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\n\n        previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\n\n        $.fancybox.animate(\n          previous.$slide,\n          prop,\n          duration,\n          function () {\n            previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n          },\n          false\n        );\n      }\n\n      if (current.isLoaded) {\n        self.revealContent(current);\n      } else {\n        self.loadSlide(current);\n      }\n\n      self.preload(\"image\");\n    },\n\n    // Create new \"slide\" element\n    // These are gallery items  that are actually added to DOM\n    // =======================================================\n\n    createSlide: function (pos) {\n      var self = this,\n        $slide,\n        index;\n\n      index = pos % self.group.length;\n      index = index < 0 ? self.group.length + index : index;\n\n      if (!self.slides[pos] && self.group[index]) {\n        $slide = $('<div class=\"fancybox-slide\"></div>').appendTo(self.$refs.stage);\n\n        self.slides[pos] = $.extend(true, {}, self.group[index], {\n          pos: pos,\n          $slide: $slide,\n          isLoaded: false\n        });\n\n        self.updateSlide(self.slides[pos]);\n      }\n\n      return self.slides[pos];\n    },\n\n    // Scale image to the actual size of the image;\n    // x and y values should be relative to the slide\n    // ==============================================\n\n    scaleToActual: function (x, y, duration) {\n      var self = this,\n        current = self.current,\n        $content = current.$content,\n        canvasWidth = $.fancybox.getTranslate(current.$slide).width,\n        canvasHeight = $.fancybox.getTranslate(current.$slide).height,\n        newImgWidth = current.width,\n        newImgHeight = current.height,\n        imgPos,\n        posX,\n        posY,\n        scaleX,\n        scaleY;\n\n      if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n        return;\n      }\n\n      self.isAnimating = true;\n\n      $.fancybox.stop($content);\n\n      x = x === undefined ? canvasWidth * 0.5 : x;\n      y = y === undefined ? canvasHeight * 0.5 : y;\n\n      imgPos = $.fancybox.getTranslate($content);\n\n      imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\n      imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\n\n      scaleX = newImgWidth / imgPos.width;\n      scaleY = newImgHeight / imgPos.height;\n\n      // Get center position for original image\n      posX = canvasWidth * 0.5 - newImgWidth * 0.5;\n      posY = canvasHeight * 0.5 - newImgHeight * 0.5;\n\n      // Make sure image does not move away from edges\n      if (newImgWidth > canvasWidth) {\n        posX = imgPos.left * scaleX - (x * scaleX - x);\n\n        if (posX > 0) {\n          posX = 0;\n        }\n\n        if (posX < canvasWidth - newImgWidth) {\n          posX = canvasWidth - newImgWidth;\n        }\n      }\n\n      if (newImgHeight > canvasHeight) {\n        posY = imgPos.top * scaleY - (y * scaleY - y);\n\n        if (posY > 0) {\n          posY = 0;\n        }\n\n        if (posY < canvasHeight - newImgHeight) {\n          posY = canvasHeight - newImgHeight;\n        }\n      }\n\n      self.updateCursor(newImgWidth, newImgHeight);\n\n      $.fancybox.animate(\n        $content, {\n          top: posY,\n          left: posX,\n          scaleX: scaleX,\n          scaleY: scaleY\n        },\n        duration || 366,\n        function () {\n          self.isAnimating = false;\n        }\n      );\n\n      // Stop slideshow\n      if (self.SlideShow && self.SlideShow.isActive) {\n        self.SlideShow.stop();\n      }\n    },\n\n    // Scale image to fit inside parent element\n    // ========================================\n\n    scaleToFit: function (duration) {\n      var self = this,\n        current = self.current,\n        $content = current.$content,\n        end;\n\n      if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n        return;\n      }\n\n      self.isAnimating = true;\n\n      $.fancybox.stop($content);\n\n      end = self.getFitPos(current);\n\n      self.updateCursor(end.width, end.height);\n\n      $.fancybox.animate(\n        $content, {\n          top: end.top,\n          left: end.left,\n          scaleX: end.width / $content.width(),\n          scaleY: end.height / $content.height()\n        },\n        duration || 366,\n        function () {\n          self.isAnimating = false;\n        }\n      );\n    },\n\n    // Calculate image size to fit inside viewport\n    // ===========================================\n\n    getFitPos: function (slide) {\n      var self = this,\n        $content = slide.$content,\n        $slide = slide.$slide,\n        width = slide.width || slide.opts.width,\n        height = slide.height || slide.opts.height,\n        maxWidth,\n        maxHeight,\n        minRatio,\n        aspectRatio,\n        rez = {};\n\n      if (!slide.isLoaded || !$content || !$content.length) {\n        return false;\n      }\n\n      maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\n      maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\n\n      maxWidth -=\n        parseFloat($slide.css(\"paddingLeft\")) +\n        parseFloat($slide.css(\"paddingRight\")) +\n        parseFloat($content.css(\"marginLeft\")) +\n        parseFloat($content.css(\"marginRight\"));\n\n      maxHeight -=\n        parseFloat($slide.css(\"paddingTop\")) +\n        parseFloat($slide.css(\"paddingBottom\")) +\n        parseFloat($content.css(\"marginTop\")) +\n        parseFloat($content.css(\"marginBottom\"));\n\n      if (!width || !height) {\n        width = maxWidth;\n        height = maxHeight;\n      }\n\n      minRatio = Math.min(1, maxWidth / width, maxHeight / height);\n\n      width = minRatio * width;\n      height = minRatio * height;\n\n      // Adjust width/height to precisely fit into container\n      if (width > maxWidth - 0.5) {\n        width = maxWidth;\n      }\n\n      if (height > maxHeight - 0.5) {\n        height = maxHeight;\n      }\n\n      if (slide.type === \"image\") {\n        rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\n        rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\n      } else if (slide.contentType === \"video\") {\n        // Force aspect ratio for the video\n        // \"I say the whole world must learn of our peaceful ways… by force!\"\n        aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\n\n        if (height > width / aspectRatio) {\n          height = width / aspectRatio;\n        } else if (width > height * aspectRatio) {\n          width = height * aspectRatio;\n        }\n      }\n\n      rez.width = width;\n      rez.height = height;\n\n      return rez;\n    },\n\n    // Update content size and position for all slides\n    // ==============================================\n\n    update: function (e) {\n      var self = this;\n\n      $.each(self.slides, function (key, slide) {\n        self.updateSlide(slide, e);\n      });\n    },\n\n    // Update slide content position and size\n    // ======================================\n\n    updateSlide: function (slide, e) {\n      var self = this,\n        $content = slide && slide.$content,\n        width = slide.width || slide.opts.width,\n        height = slide.height || slide.opts.height,\n        $slide = slide.$slide;\n\n      // First, prevent caption overlap, if needed\n      self.adjustCaption(slide);\n\n      // Then resize content to fit inside the slide\n      if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\n        $.fancybox.stop($content);\n\n        $.fancybox.setTranslate($content, self.getFitPos(slide));\n\n        if (slide.pos === self.currPos) {\n          self.isAnimating = false;\n\n          self.updateCursor();\n        }\n      }\n\n      // Then some adjustments\n      self.adjustLayout(slide);\n\n      if ($slide.length) {\n        $slide.trigger(\"refresh\");\n\n        if (slide.pos === self.currPos) {\n          self.$refs.toolbar\n            .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\n            .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\n        }\n      }\n\n      self.trigger(\"onUpdate\", slide, e);\n    },\n\n    // Horizontally center slide\n    // =========================\n\n    centerSlide: function (duration) {\n      var self = this,\n        current = self.current,\n        $slide = current.$slide;\n\n      if (self.isClosing || !current) {\n        return;\n      }\n\n      $slide.siblings().css({\n        transform: \"\",\n        opacity: \"\"\n      });\n\n      $slide\n        .parent()\n        .children()\n        .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\n\n      $.fancybox.animate(\n        $slide, {\n          top: 0,\n          left: 0,\n          opacity: 1\n        },\n        duration === undefined ? 0 : duration,\n        function () {\n          // Clean up\n          $slide.css({\n            transform: \"\",\n            opacity: \"\"\n          });\n\n          if (!current.isComplete) {\n            self.complete();\n          }\n        },\n        false\n      );\n    },\n\n    // Check if current slide is moved (swiped)\n    // ========================================\n\n    isMoved: function (slide) {\n      var current = slide || this.current,\n        slidePos,\n        stagePos;\n\n      if (!current) {\n        return false;\n      }\n\n      stagePos = $.fancybox.getTranslate(this.$refs.stage);\n      slidePos = $.fancybox.getTranslate(current.$slide);\n\n      return (\n        !current.$slide.hasClass(\"fancybox-animated\") &&\n        (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\n      );\n    },\n\n    // Update cursor style depending if content can be zoomed\n    // ======================================================\n\n    updateCursor: function (nextWidth, nextHeight) {\n      var self = this,\n        current = self.current,\n        $container = self.$refs.container,\n        canPan,\n        isZoomable;\n\n      if (!current || self.isClosing || !self.Guestures) {\n        return;\n      }\n\n      $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\n\n      canPan = self.canPan(nextWidth, nextHeight);\n\n      isZoomable = canPan ? true : self.isZoomable();\n\n      $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\n\n      $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\n\n      if (canPan) {\n        $container.addClass(\"fancybox-can-pan\");\n      } else if (\n        isZoomable &&\n        (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\n      ) {\n        $container.addClass(\"fancybox-can-zoomIn\");\n      } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\n        $container.addClass(\"fancybox-can-swipe\");\n      }\n    },\n\n    // Check if current slide is zoomable\n    // ==================================\n\n    isZoomable: function () {\n      var self = this,\n        current = self.current,\n        fitPos;\n\n      // Assume that slide is zoomable if:\n      //   - image is still loading\n      //   - actual size of the image is smaller than available area\n      if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\n        if (!current.isLoaded) {\n          return true;\n        }\n\n        fitPos = self.getFitPos(current);\n\n        if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n\n    // Check if current image dimensions are smaller than actual\n    // =========================================================\n\n    isScaledDown: function (nextWidth, nextHeight) {\n      var self = this,\n        rez = false,\n        current = self.current,\n        $content = current.$content;\n\n      if (nextWidth !== undefined && nextHeight !== undefined) {\n        rez = nextWidth < current.width && nextHeight < current.height;\n      } else if ($content) {\n        rez = $.fancybox.getTranslate($content);\n        rez = rez.width < current.width && rez.height < current.height;\n      }\n\n      return rez;\n    },\n\n    // Check if image dimensions exceed parent element\n    // ===============================================\n\n    canPan: function (nextWidth, nextHeight) {\n      var self = this,\n        current = self.current,\n        pos = null,\n        rez = false;\n\n      if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\n        rez = self.getFitPos(current);\n\n        if (nextWidth !== undefined && nextHeight !== undefined) {\n          pos = {\n            width: nextWidth,\n            height: nextHeight\n          };\n        } else if (current.isComplete) {\n          pos = $.fancybox.getTranslate(current.$content);\n        }\n\n        if (pos && rez) {\n          rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\n        }\n      }\n\n      return rez;\n    },\n\n    // Load content into the slide\n    // ===========================\n\n    loadSlide: function (slide) {\n      var self = this,\n        type,\n        $slide,\n        ajaxLoad;\n\n      if (slide.isLoading || slide.isLoaded) {\n        return;\n      }\n\n      slide.isLoading = true;\n\n      if (self.trigger(\"beforeLoad\", slide) === false) {\n        slide.isLoading = false;\n\n        return false;\n      }\n\n      type = slide.type;\n      $slide = slide.$slide;\n\n      $slide\n        .off(\"refresh\")\n        .trigger(\"onReset\")\n        .addClass(slide.opts.slideClass);\n\n      // Create content depending on the type\n      switch (type) {\n        case \"image\":\n          self.setImage(slide);\n\n          break;\n\n        case \"iframe\":\n          self.setIframe(slide);\n\n          break;\n\n        case \"html\":\n          self.setContent(slide, slide.src || slide.content);\n\n          break;\n\n        case \"video\":\n          self.setContent(\n            slide,\n            slide.opts.video.tpl\n            .replace(/\\{\\{src\\}\\}/gi, slide.src)\n            .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\n            .replace(\"{{poster}}\", slide.thumb || \"\")\n          );\n\n          break;\n\n        case \"inline\":\n          if ($(slide.src).length) {\n            self.setContent(slide, $(slide.src));\n          } else {\n            self.setError(slide);\n          }\n\n          break;\n\n        case \"ajax\":\n          self.showLoading(slide);\n\n          ajaxLoad = $.ajax(\n            $.extend({}, slide.opts.ajax.settings, {\n              url: slide.src,\n              success: function (data, textStatus) {\n                if (textStatus === \"success\") {\n                  self.setContent(slide, data);\n                }\n              },\n              error: function (jqXHR, textStatus) {\n                if (jqXHR && textStatus !== \"abort\") {\n                  self.setError(slide);\n                }\n              }\n            })\n          );\n\n          $slide.one(\"onReset\", function () {\n            ajaxLoad.abort();\n          });\n\n          break;\n\n        default:\n          self.setError(slide);\n\n          break;\n      }\n\n      return true;\n    },\n\n    // Use thumbnail image, if possible\n    // ================================\n\n    setImage: function (slide) {\n      var self = this,\n        ghost;\n\n      // Check if need to show loading icon\n      setTimeout(function () {\n        var $img = slide.$image;\n\n        if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\n          self.showLoading(slide);\n        }\n      }, 50);\n\n      //Check if image has srcset\n      self.checkSrcset(slide);\n\n      // This will be wrapper containing both ghost and actual image\n      slide.$content = $('<div class=\"fancybox-content\"></div>')\n        .addClass(\"fancybox-is-hidden\")\n        .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\n\n      // If we have a thumbnail, we can display it while actual image is loading\n      // Users will not stare at black screen and actual image will appear gradually\n      if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\n        slide.width = slide.opts.width;\n        slide.height = slide.opts.height;\n\n        ghost = document.createElement(\"img\");\n\n        ghost.onerror = function () {\n          $(this).remove();\n\n          slide.$ghost = null;\n        };\n\n        ghost.onload = function () {\n          self.afterLoad(slide);\n        };\n\n        slide.$ghost = $(ghost)\n          .addClass(\"fancybox-image\")\n          .appendTo(slide.$content)\n          .attr(\"src\", slide.thumb);\n      }\n\n      // Start loading actual image\n      self.setBigImage(slide);\n    },\n\n    // Check if image has srcset and get the source\n    // ============================================\n    checkSrcset: function (slide) {\n      var srcset = slide.opts.srcset || slide.opts.image.srcset,\n        found,\n        temp,\n        pxRatio,\n        windowWidth;\n\n      // If we have \"srcset\", then we need to find first matching \"src\" value.\n      // This is necessary, because when you set an src attribute, the browser will preload the image\n      // before any javascript or even CSS is applied.\n      if (srcset) {\n        pxRatio = window.devicePixelRatio || 1;\n        windowWidth = window.innerWidth * pxRatio;\n\n        temp = srcset.split(\",\").map(function (el) {\n          var ret = {};\n\n          el.trim()\n            .split(/\\s+/)\n            .forEach(function (el, i) {\n              var value = parseInt(el.substring(0, el.length - 1), 10);\n\n              if (i === 0) {\n                return (ret.url = el);\n              }\n\n              if (value) {\n                ret.value = value;\n                ret.postfix = el[el.length - 1];\n              }\n            });\n\n          return ret;\n        });\n\n        // Sort by value\n        temp.sort(function (a, b) {\n          return a.value - b.value;\n        });\n\n        // Ok, now we have an array of all srcset values\n        for (var j = 0; j < temp.length; j++) {\n          var el = temp[j];\n\n          if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\n            found = el;\n            break;\n          }\n        }\n\n        // If not found, take the last one\n        if (!found && temp.length) {\n          found = temp[temp.length - 1];\n        }\n\n        if (found) {\n          slide.src = found.url;\n\n          // If we have default width/height values, we can calculate height for matching source\n          if (slide.width && slide.height && found.postfix == \"w\") {\n            slide.height = (slide.width / slide.height) * found.value;\n            slide.width = found.value;\n          }\n\n          slide.opts.srcset = srcset;\n        }\n      }\n    },\n\n    // Create full-size image\n    // ======================\n\n    setBigImage: function (slide) {\n      var self = this,\n        img = document.createElement(\"img\"),\n        $img = $(img);\n\n      slide.$image = $img\n        .one(\"error\", function () {\n          self.setError(slide);\n        })\n        .one(\"load\", function () {\n          var sizes;\n\n          if (!slide.$ghost) {\n            self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\n\n            self.afterLoad(slide);\n          }\n\n          if (self.isClosing) {\n            return;\n          }\n\n          if (slide.opts.srcset) {\n            sizes = slide.opts.sizes;\n\n            if (!sizes || sizes === \"auto\") {\n              sizes =\n                (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\n                \"vw\";\n            }\n\n            $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\n          }\n\n          // Hide temporary image after some delay\n          if (slide.$ghost) {\n            setTimeout(function () {\n              if (slide.$ghost && !self.isClosing) {\n                slide.$ghost.hide();\n              }\n            }, Math.min(300, Math.max(1000, slide.height / 1600)));\n          }\n\n          self.hideLoading(slide);\n        })\n        .addClass(\"fancybox-image\")\n        .attr(\"src\", slide.src)\n        .appendTo(slide.$content);\n\n      if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\n        $img.trigger(\"load\");\n      } else if (img.error) {\n        $img.trigger(\"error\");\n      }\n    },\n\n    // Computes the slide size from image size and maxWidth/maxHeight\n    // ==============================================================\n\n    resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\n      var maxWidth = parseInt(slide.opts.width, 10),\n        maxHeight = parseInt(slide.opts.height, 10);\n\n      // Sets the default values from the image\n      slide.width = imgWidth;\n      slide.height = imgHeight;\n\n      if (maxWidth > 0) {\n        slide.width = maxWidth;\n        slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\n      }\n\n      if (maxHeight > 0) {\n        slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\n        slide.height = maxHeight;\n      }\n    },\n\n    // Create iframe wrapper, iframe and bindings\n    // ==========================================\n\n    setIframe: function (slide) {\n      var self = this,\n        opts = slide.opts.iframe,\n        $slide = slide.$slide,\n        $iframe;\n\n      slide.$content = $('<div class=\"fancybox-content' + (opts.preload ? \" fancybox-is-hidden\" : \"\") + '\"></div>')\n        .css(opts.css)\n        .appendTo($slide);\n\n      $slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n      slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\n        .attr(opts.attr)\n        .appendTo(slide.$content);\n\n      if (opts.preload) {\n        self.showLoading(slide);\n\n        // Unfortunately, it is not always possible to determine if iframe is successfully loaded\n        // (due to browser security policy)\n\n        $iframe.on(\"load.fb error.fb\", function (e) {\n          this.isReady = 1;\n\n          slide.$slide.trigger(\"refresh\");\n\n          self.afterLoad(slide);\n        });\n\n        // Recalculate iframe content size\n        // ===============================\n\n        $slide.on(\"refresh.fb\", function () {\n          var $content = slide.$content,\n            frameWidth = opts.css.width,\n            frameHeight = opts.css.height,\n            $contents,\n            $body;\n\n          if ($iframe[0].isReady !== 1) {\n            return;\n          }\n\n          try {\n            $contents = $iframe.contents();\n            $body = $contents.find(\"body\");\n          } catch (ignore) {}\n\n          // Calculate content dimensions, if it is accessible\n          if ($body && $body.length && $body.children().length) {\n            // Avoid scrolling to top (if multiple instances)\n            $slide.css(\"overflow\", \"visible\");\n\n            $content.css({\n              width: \"100%\",\n              \"max-width\": \"100%\",\n              height: \"9999px\"\n            });\n\n            if (frameWidth === undefined) {\n              frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\n            }\n\n            $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\n\n            if (frameHeight === undefined) {\n              frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\n            }\n\n            $content.css(\"height\", frameHeight ? frameHeight : \"\");\n\n            $slide.css(\"overflow\", \"auto\");\n          }\n\n          $content.removeClass(\"fancybox-is-hidden\");\n        });\n      } else {\n        self.afterLoad(slide);\n      }\n\n      $iframe.attr(\"src\", slide.src);\n\n      // Remove iframe if closing or changing gallery item\n      $slide.one(\"onReset\", function () {\n        // This helps IE not to throw errors when closing\n        try {\n          $(this)\n            .find(\"iframe\")\n            .hide()\n            .unbind()\n            .attr(\"src\", \"//about:blank\");\n        } catch (ignore) {}\n\n        $(this)\n          .off(\"refresh.fb\")\n          .empty();\n\n        slide.isLoaded = false;\n        slide.isRevealed = false;\n      });\n    },\n\n    // Wrap and append content to the slide\n    // ======================================\n\n    setContent: function (slide, content) {\n      var self = this;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      self.hideLoading(slide);\n\n      if (slide.$content) {\n        $.fancybox.stop(slide.$content);\n      }\n\n      slide.$slide.empty();\n\n      // If content is a jQuery object, then it will be moved to the slide.\n      // The placeholder is created so we will know where to put it back.\n      if (isQuery(content) && content.parent().length) {\n        // Make sure content is not already moved to fancyBox\n        if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\n          content.parents(\".fancybox-slide\").trigger(\"onReset\");\n        }\n\n        // Create temporary element marking original place of the content\n        slide.$placeholder = $(\"<div>\")\n          .hide()\n          .insertAfter(content);\n\n        // Make sure content is visible\n        content.css(\"display\", \"inline-block\");\n      } else if (!slide.hasError) {\n        // If content is just a plain text, try to convert it to html\n        if ($.type(content) === \"string\") {\n          content = $(\"<div>\")\n            .append($.trim(content))\n            .contents();\n        }\n\n        // If \"filter\" option is provided, then filter content\n        if (slide.opts.filter) {\n          content = $(\"<div>\")\n            .html(content)\n            .find(slide.opts.filter);\n        }\n      }\n\n      slide.$slide.one(\"onReset\", function () {\n        // Pause all html5 video/audio\n        $(this)\n          .find(\"video,audio\")\n          .trigger(\"pause\");\n\n        // Put content back\n        if (slide.$placeholder) {\n          slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\n\n          slide.$placeholder = null;\n        }\n\n        // Remove custom close button\n        if (slide.$smallBtn) {\n          slide.$smallBtn.remove();\n\n          slide.$smallBtn = null;\n        }\n\n        // Remove content and mark slide as not loaded\n        if (!slide.hasError) {\n          $(this).empty();\n\n          slide.isLoaded = false;\n          slide.isRevealed = false;\n        }\n      });\n\n      $(content).appendTo(slide.$slide);\n\n      if ($(content).is(\"video,audio\")) {\n        $(content).addClass(\"fancybox-video\");\n\n        $(content).wrap(\"<div></div>\");\n\n        slide.contentType = \"video\";\n\n        slide.opts.width = slide.opts.width || $(content).attr(\"width\");\n        slide.opts.height = slide.opts.height || $(content).attr(\"height\");\n      }\n\n      slide.$content = slide.$slide\n        .children()\n        .filter(\"div,form,main,video,audio,article,.fancybox-content\")\n        .first();\n\n      slide.$content.siblings().hide();\n\n      // Re-check if there is a valid content\n      // (in some cases, ajax response can contain various elements or plain text)\n      if (!slide.$content.length) {\n        slide.$content = slide.$slide\n          .wrapInner(\"<div></div>\")\n          .children()\n          .first();\n      }\n\n      slide.$content.addClass(\"fancybox-content\");\n\n      slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n      self.afterLoad(slide);\n    },\n\n    // Display error message\n    // =====================\n\n    setError: function (slide) {\n      slide.hasError = true;\n\n      slide.$slide\n        .trigger(\"onReset\")\n        .removeClass(\"fancybox-slide--\" + slide.contentType)\n        .addClass(\"fancybox-slide--error\");\n\n      slide.contentType = \"html\";\n\n      this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\n\n      if (slide.pos === this.currPos) {\n        this.isAnimating = false;\n      }\n    },\n\n    // Show loading icon inside the slide\n    // ==================================\n\n    showLoading: function (slide) {\n      var self = this;\n\n      slide = slide || self.current;\n\n      if (slide && !slide.$spinner) {\n        slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\n          .appendTo(slide.$slide)\n          .hide()\n          .fadeIn(\"fast\");\n      }\n    },\n\n    // Remove loading icon from the slide\n    // ==================================\n\n    hideLoading: function (slide) {\n      var self = this;\n\n      slide = slide || self.current;\n\n      if (slide && slide.$spinner) {\n        slide.$spinner.stop().remove();\n\n        delete slide.$spinner;\n      }\n    },\n\n    // Adjustments after slide content has been loaded\n    // ===============================================\n\n    afterLoad: function (slide) {\n      var self = this;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      slide.isLoading = false;\n      slide.isLoaded = true;\n\n      self.trigger(\"afterLoad\", slide);\n\n      self.hideLoading(slide);\n\n      // Add small close button\n      if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\n        slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\n      }\n\n      // Disable right click\n      if (slide.opts.protect && slide.$content && !slide.hasError) {\n        slide.$content.on(\"contextmenu.fb\", function (e) {\n          if (e.button == 2) {\n            e.preventDefault();\n          }\n\n          return true;\n        });\n\n        // Add fake element on top of the image\n        // This makes a bit harder for user to select image\n        if (slide.type === \"image\") {\n          $('<div class=\"fancybox-spaceball\"></div>').appendTo(slide.$content);\n        }\n      }\n\n      self.adjustCaption(slide);\n\n      self.adjustLayout(slide);\n\n      if (slide.pos === self.currPos) {\n        self.updateCursor();\n      }\n\n      self.revealContent(slide);\n    },\n\n    // Prevent caption overlap,\n    // fix css inconsistency across browsers\n    // =====================================\n\n    adjustCaption: function (slide) {\n      var self = this,\n        current = slide || self.current,\n        caption = current.opts.caption,\n        preventOverlap = current.opts.preventCaptionOverlap,\n        $caption = self.$refs.caption,\n        $clone,\n        captionH = false;\n\n      $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\n\n      if (preventOverlap && caption && caption.length) {\n        if (current.pos !== self.currPos) {\n          $clone = $caption.clone().appendTo($caption.parent());\n\n          $clone\n            .children()\n            .eq(0)\n            .empty()\n            .html(caption);\n\n          captionH = $clone.outerHeight(true);\n\n          $clone.empty().remove();\n        } else if (self.$caption) {\n          captionH = self.$caption.outerHeight(true);\n        }\n\n        current.$slide.css(\"padding-bottom\", captionH || \"\");\n      }\n    },\n\n    // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\n    // ====================================================================================\n\n    adjustLayout: function (slide) {\n      var self = this,\n        current = slide || self.current,\n        scrollHeight,\n        marginBottom,\n        inlinePadding,\n        actualPadding;\n\n      if (current.isLoaded && current.opts.disableLayoutFix !== true) {\n        current.$content.css(\"margin-bottom\", \"\");\n\n        // If we would always set margin-bottom for the content,\n        // then it would potentially break vertical align\n        if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\n          inlinePadding = current.$slide[0].style[\"padding-bottom\"];\n          actualPadding = current.$slide.css(\"padding-bottom\");\n\n          if (parseFloat(actualPadding) > 0) {\n            scrollHeight = current.$slide[0].scrollHeight;\n\n            current.$slide.css(\"padding-bottom\", 0);\n\n            if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\n              marginBottom = actualPadding;\n            }\n\n            current.$slide.css(\"padding-bottom\", inlinePadding);\n          }\n        }\n\n        current.$content.css(\"margin-bottom\", marginBottom);\n      }\n    },\n\n    // Make content visible\n    // This method is called right after content has been loaded or\n    // user navigates gallery and transition should start\n    // ============================================================\n\n    revealContent: function (slide) {\n      var self = this,\n        $slide = slide.$slide,\n        end = false,\n        start = false,\n        isMoved = self.isMoved(slide),\n        isRevealed = slide.isRevealed,\n        effect,\n        effectClassName,\n        duration,\n        opacity;\n\n      slide.isRevealed = true;\n\n      effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\n      duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\n\n      duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\n\n      if (isMoved || slide.pos !== self.currPos || !duration) {\n        effect = false;\n      }\n\n      // Check if can zoom\n      if (effect === \"zoom\") {\n        if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\n          end = self.getFitPos(slide);\n        } else {\n          effect = \"fade\";\n        }\n      }\n\n      // Zoom animation\n      // ==============\n      if (effect === \"zoom\") {\n        self.isAnimating = true;\n\n        end.scaleX = end.width / start.width;\n        end.scaleY = end.height / start.height;\n\n        // Check if we need to animate opacity\n        opacity = slide.opts.zoomOpacity;\n\n        if (opacity == \"auto\") {\n          opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\n        }\n\n        if (opacity) {\n          start.opacity = 0.1;\n          end.opacity = 1;\n        }\n\n        // Draw image at start position\n        $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\n\n        forceRedraw(slide.$content);\n\n        // Start animation\n        $.fancybox.animate(slide.$content, end, duration, function () {\n          self.isAnimating = false;\n\n          self.complete();\n        });\n\n        return;\n      }\n\n      self.updateSlide(slide);\n\n      // Simply show content if no effect\n      // ================================\n      if (!effect) {\n        slide.$content.removeClass(\"fancybox-is-hidden\");\n\n        if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\n          slide.$content.hide().fadeIn(\"fast\");\n        }\n\n        if (slide.pos === self.currPos) {\n          self.complete();\n        }\n\n        return;\n      }\n\n      // Prepare for CSS transiton\n      // =========================\n      $.fancybox.stop($slide);\n\n      //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\n      effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\n\n      $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\n\n      slide.$content.removeClass(\"fancybox-is-hidden\");\n\n      // Force reflow\n      forceRedraw($slide);\n\n      if (slide.type !== \"image\") {\n        slide.$content.hide().show(0);\n      }\n\n      $.fancybox.animate(\n        $slide,\n        \"fancybox-slide--current\",\n        duration,\n        function () {\n          $slide.removeClass(effectClassName).css({\n            transform: \"\",\n            opacity: \"\"\n          });\n\n          if (slide.pos === self.currPos) {\n            self.complete();\n          }\n        },\n        true\n      );\n    },\n\n    // Check if we can and have to zoom from thumbnail\n    //================================================\n\n    getThumbPos: function (slide) {\n      var rez = false,\n        $thumb = slide.$thumb,\n        thumbPos,\n        btw,\n        brw,\n        bbw,\n        blw;\n\n      if (!$thumb || !inViewport($thumb[0])) {\n        return false;\n      }\n\n      thumbPos = $.fancybox.getTranslate($thumb);\n\n      btw = parseFloat($thumb.css(\"border-top-width\") || 0);\n      brw = parseFloat($thumb.css(\"border-right-width\") || 0);\n      bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\n      blw = parseFloat($thumb.css(\"border-left-width\") || 0);\n\n      rez = {\n        top: thumbPos.top + btw,\n        left: thumbPos.left + blw,\n        width: thumbPos.width - brw - blw,\n        height: thumbPos.height - btw - bbw,\n        scaleX: 1,\n        scaleY: 1\n      };\n\n      return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\n    },\n\n    // Final adjustments after current gallery item is moved to position\n    // and it`s content is loaded\n    // ==================================================================\n\n    complete: function () {\n      var self = this,\n        current = self.current,\n        slides = {},\n        $el;\n\n      if (self.isMoved() || !current.isLoaded) {\n        return;\n      }\n\n      if (!current.isComplete) {\n        current.isComplete = true;\n\n        current.$slide.siblings().trigger(\"onReset\");\n\n        self.preload(\"inline\");\n\n        // Trigger any CSS transiton inside the slide\n        forceRedraw(current.$slide);\n\n        current.$slide.addClass(\"fancybox-slide--complete\");\n\n        // Remove unnecessary slides\n        $.each(self.slides, function (key, slide) {\n          if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\n            slides[slide.pos] = slide;\n          } else if (slide) {\n            $.fancybox.stop(slide.$slide);\n\n            slide.$slide.off().remove();\n          }\n        });\n\n        self.slides = slides;\n      }\n\n      self.isAnimating = false;\n\n      self.updateCursor();\n\n      self.trigger(\"afterShow\");\n\n      // Autoplay first html5 video/audio\n      if (!!current.opts.video.autoStart) {\n        current.$slide\n          .find(\"video,audio\")\n          .filter(\":visible:first\")\n          .trigger(\"play\")\n          .one(\"ended\", function () {\n            if (Document.exitFullscreen) {\n              Document.exitFullscreen();\n            } else if (this.webkitExitFullscreen) {\n              this.webkitExitFullscreen();\n            }\n\n            self.next();\n          });\n      }\n\n      // Try to focus on the first focusable element\n      if (current.opts.autoFocus && current.contentType === \"html\") {\n        // Look for the first input with autofocus attribute\n        $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\n\n        if ($el.length) {\n          $el.trigger(\"focus\");\n        } else {\n          self.focus(null, true);\n        }\n      }\n\n      // Avoid jumping\n      current.$slide.scrollTop(0).scrollLeft(0);\n    },\n\n    // Preload next and previous slides\n    // ================================\n\n    preload: function (type) {\n      var self = this,\n        prev,\n        next;\n\n      if (self.group.length < 2) {\n        return;\n      }\n\n      next = self.slides[self.currPos + 1];\n      prev = self.slides[self.currPos - 1];\n\n      if (prev && prev.type === type) {\n        self.loadSlide(prev);\n      }\n\n      if (next && next.type === type) {\n        self.loadSlide(next);\n      }\n    },\n\n    // Try to find and focus on the first focusable element\n    // ====================================================\n\n    focus: function (e, firstRun) {\n      var self = this,\n        focusableStr = [\n          \"a[href]\",\n          \"area[href]\",\n          'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n          \"select:not([disabled]):not([aria-hidden])\",\n          \"textarea:not([disabled]):not([aria-hidden])\",\n          \"button:not([disabled]):not([aria-hidden])\",\n          \"iframe\",\n          \"object\",\n          \"embed\",\n          \"video\",\n          \"audio\",\n          \"[contenteditable]\",\n          '[tabindex]:not([tabindex^=\"-\"])'\n        ].join(\",\"),\n        focusableItems,\n        focusedItemIndex;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      if (e || !self.current || !self.current.isComplete) {\n        // Focus on any element inside fancybox\n        focusableItems = self.$refs.container.find(\"*:visible\");\n      } else {\n        // Focus inside current slide\n        focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\n      }\n\n      focusableItems = focusableItems.filter(focusableStr).filter(function () {\n        return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\n      });\n\n      if (focusableItems.length) {\n        focusedItemIndex = focusableItems.index(document.activeElement);\n\n        if (e && e.shiftKey) {\n          // Back tab\n          if (focusedItemIndex < 0 || focusedItemIndex == 0) {\n            e.preventDefault();\n\n            focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\n          }\n        } else {\n          // Outside or Forward tab\n          if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\n            if (e) {\n              e.preventDefault();\n            }\n\n            focusableItems.eq(0).trigger(\"focus\");\n          }\n        }\n      } else {\n        self.$refs.container.trigger(\"focus\");\n      }\n    },\n\n    // Activates current instance - brings container to the front and enables keyboard,\n    // notifies other instances about deactivating\n    // =================================================================================\n\n    activate: function () {\n      var self = this;\n\n      // Deactivate all instances\n      $(\".fancybox-container\").each(function () {\n        var instance = $(this).data(\"FancyBox\");\n\n        // Skip self and closing instances\n        if (instance && instance.id !== self.id && !instance.isClosing) {\n          instance.trigger(\"onDeactivate\");\n\n          instance.removeEvents();\n\n          instance.isVisible = false;\n        }\n      });\n\n      self.isVisible = true;\n\n      if (self.current || self.isIdle) {\n        self.update();\n\n        self.updateControls();\n      }\n\n      self.trigger(\"onActivate\");\n\n      self.addEvents();\n    },\n\n    // Start closing procedure\n    // This will start \"zoom-out\" animation if needed and clean everything up afterwards\n    // =================================================================================\n\n    close: function (e, d) {\n      var self = this,\n        current = self.current,\n        effect,\n        duration,\n        $content,\n        domRect,\n        opacity,\n        start,\n        end;\n\n      var done = function () {\n        self.cleanUp(e);\n      };\n\n      if (self.isClosing) {\n        return false;\n      }\n\n      self.isClosing = true;\n\n      // If beforeClose callback prevents closing, make sure content is centered\n      if (self.trigger(\"beforeClose\", e) === false) {\n        self.isClosing = false;\n\n        requestAFrame(function () {\n          self.update();\n        });\n\n        return false;\n      }\n\n      // Remove all events\n      // If there are multiple instances, they will be set again by \"activate\" method\n      self.removeEvents();\n\n      $content = current.$content;\n      effect = current.opts.animationEffect;\n      duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\n\n      current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\n\n      if (e !== true) {\n        $.fancybox.stop(current.$slide);\n      } else {\n        effect = false;\n      }\n\n      // Remove other slides\n      current.$slide\n        .siblings()\n        .trigger(\"onReset\")\n        .remove();\n\n      // Trigger animations\n      if (duration) {\n        self.$refs.container\n          .removeClass(\"fancybox-is-open\")\n          .addClass(\"fancybox-is-closing\")\n          .css(\"transition-duration\", duration + \"ms\");\n      }\n\n      // Clean up\n      self.hideLoading(current);\n\n      self.hideControls(true);\n\n      self.updateCursor();\n\n      // Check if possible to zoom-out\n      if (\n        effect === \"zoom\" &&\n        !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\n      ) {\n        effect = \"fade\";\n      }\n\n      if (effect === \"zoom\") {\n        $.fancybox.stop($content);\n\n        domRect = $.fancybox.getTranslate($content);\n\n        start = {\n          top: domRect.top,\n          left: domRect.left,\n          scaleX: domRect.width / end.width,\n          scaleY: domRect.height / end.height,\n          width: end.width,\n          height: end.height\n        };\n\n        // Check if we need to animate opacity\n        opacity = current.opts.zoomOpacity;\n\n        if (opacity == \"auto\") {\n          opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\n        }\n\n        if (opacity) {\n          end.opacity = 0;\n        }\n\n        $.fancybox.setTranslate($content, start);\n\n        forceRedraw($content);\n\n        $.fancybox.animate($content, end, duration, done);\n\n        return true;\n      }\n\n      if (effect && duration) {\n        $.fancybox.animate(\n          current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\n          \"fancybox-animated fancybox-fx-\" + effect,\n          duration,\n          done\n        );\n      } else {\n        // If skip animation\n        if (e === true) {\n          setTimeout(done, duration);\n        } else {\n          done();\n        }\n      }\n\n      return true;\n    },\n\n    // Final adjustments after removing the instance\n    // =============================================\n\n    cleanUp: function (e) {\n      var self = this,\n        instance,\n        $focus = self.current.opts.$orig,\n        x,\n        y;\n\n      self.current.$slide.trigger(\"onReset\");\n\n      self.$refs.container.empty().remove();\n\n      self.trigger(\"afterClose\", e);\n\n      // Place back focus\n      if (!!self.current.opts.backFocus) {\n        if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\n          $focus = self.$trigger;\n        }\n\n        if ($focus && $focus.length) {\n          x = window.scrollX;\n          y = window.scrollY;\n\n          $focus.trigger(\"focus\");\n\n          $(\"html, body\")\n            .scrollTop(y)\n            .scrollLeft(x);\n        }\n      }\n\n      self.current = null;\n\n      // Check if there are other instances\n      instance = $.fancybox.getInstance();\n\n      if (instance) {\n        instance.activate();\n      } else {\n        $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\n\n        $(\"#fancybox-style-noscroll\").remove();\n      }\n    },\n\n    // Call callback and trigger an event\n    // ==================================\n\n    trigger: function (name, slide) {\n      var args = Array.prototype.slice.call(arguments, 1),\n        self = this,\n        obj = slide && slide.opts ? slide : self.current,\n        rez;\n\n      if (obj) {\n        args.unshift(obj);\n      } else {\n        obj = self;\n      }\n\n      args.unshift(self);\n\n      if ($.isFunction(obj.opts[name])) {\n        rez = obj.opts[name].apply(obj, args);\n      }\n\n      if (rez === false) {\n        return rez;\n      }\n\n      if (name === \"afterClose\" || !self.$refs) {\n        $D.trigger(name + \".fb\", args);\n      } else {\n        self.$refs.container.trigger(name + \".fb\", args);\n      }\n    },\n\n    // Update infobar values, navigation button states and reveal caption\n    // ==================================================================\n\n    updateControls: function () {\n      var self = this,\n        current = self.current,\n        index = current.index,\n        $container = self.$refs.container,\n        $caption = self.$refs.caption,\n        caption = current.opts.caption;\n\n      // Recalculate content dimensions\n      current.$slide.trigger(\"refresh\");\n\n      // Set caption\n      if (caption && caption.length) {\n        self.$caption = $caption;\n\n        $caption\n          .children()\n          .eq(0)\n          .html(caption);\n      } else {\n        self.$caption = null;\n      }\n\n      if (!self.hasHiddenControls && !self.isIdle) {\n        self.showControls();\n      }\n\n      // Update info and navigation elements\n      $container.find(\"[data-fancybox-count]\").html(self.group.length);\n      $container.find(\"[data-fancybox-index]\").html(index + 1);\n\n      $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\n      $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\n\n      if (current.type === \"image\") {\n        // Re-enable buttons; update download button source\n        $container\n          .find(\"[data-fancybox-zoom]\")\n          .show()\n          .end()\n          .find(\"[data-fancybox-download]\")\n          .attr(\"href\", current.opts.image.src || current.src)\n          .show();\n      } else if (current.opts.toolbar) {\n        $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\n      }\n\n      // Make sure focus is not on disabled button/element\n      if ($(document.activeElement).is(\":hidden,[disabled]\")) {\n        self.$refs.container.trigger(\"focus\");\n      }\n    },\n\n    // Hide toolbar and caption\n    // ========================\n\n    hideControls: function (andCaption) {\n      var self = this,\n        arr = [\"infobar\", \"toolbar\", \"nav\"];\n\n      if (andCaption || !self.current.opts.preventCaptionOverlap) {\n        arr.push(\"caption\");\n      }\n\n      this.$refs.container.removeClass(\n        arr\n        .map(function (i) {\n          return \"fancybox-show-\" + i;\n        })\n        .join(\" \")\n      );\n\n      this.hasHiddenControls = true;\n    },\n\n    showControls: function () {\n      var self = this,\n        opts = self.current ? self.current.opts : self.opts,\n        $container = self.$refs.container;\n\n      self.hasHiddenControls = false;\n      self.idleSecondsCounter = 0;\n\n      $container\n        .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\n        .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\n        .toggleClass(\"fancybox-show-caption\", !!self.$caption)\n        .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\n        .toggleClass(\"fancybox-is-modal\", !!opts.modal);\n    },\n\n    // Toggle toolbar and caption\n    // ==========================\n\n    toggleControls: function () {\n      if (this.hasHiddenControls) {\n        this.showControls();\n      } else {\n        this.hideControls();\n      }\n    }\n  });\n\n  $.fancybox = {\n    version: \"3.5.7\",\n    defaults: defaults,\n\n    // Get current instance and execute a command.\n    //\n    // Examples of usage:\n    //\n    //   $instance = $.fancybox.getInstance();\n    //   $.fancybox.getInstance().jumpTo( 1 );\n    //   $.fancybox.getInstance( 'jumpTo', 1 );\n    //   $.fancybox.getInstance( function() {\n    //       console.info( this.currIndex );\n    //   });\n    // ======================================================\n\n    getInstance: function (command) {\n      var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\n        args = Array.prototype.slice.call(arguments, 1);\n\n      if (instance instanceof FancyBox) {\n        if ($.type(command) === \"string\") {\n          instance[command].apply(instance, args);\n        } else if ($.type(command) === \"function\") {\n          command.apply(instance, args);\n        }\n\n        return instance;\n      }\n\n      return false;\n    },\n\n    // Create new instance\n    // ===================\n\n    open: function (items, opts, index) {\n      return new FancyBox(items, opts, index);\n    },\n\n    // Close current or all instances\n    // ==============================\n\n    close: function (all) {\n      var instance = this.getInstance();\n\n      if (instance) {\n        instance.close();\n\n        // Try to find and close next instance\n        if (all === true) {\n          this.close(all);\n        }\n      }\n    },\n\n    // Close all instances and unbind all events\n    // =========================================\n\n    destroy: function () {\n      this.close(true);\n\n      $D.add(\"body\").off(\"click.fb-start\", \"**\");\n    },\n\n    // Try to detect mobile devices\n    // ============================\n\n    isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n\n    // Detect if 'translate3d' support is available\n    // ============================================\n\n    use3d: (function () {\n      var div = document.createElement(\"div\");\n\n      return (\n        window.getComputedStyle &&\n        window.getComputedStyle(div) &&\n        window.getComputedStyle(div).getPropertyValue(\"transform\") &&\n        !(document.documentMode && document.documentMode < 11)\n      );\n    })(),\n\n    // Helper function to get current visual state of an element\n    // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\n    // =====================================================================\n\n    getTranslate: function ($el) {\n      var domRect;\n\n      if (!$el || !$el.length) {\n        return false;\n      }\n\n      domRect = $el[0].getBoundingClientRect();\n\n      return {\n        top: domRect.top || 0,\n        left: domRect.left || 0,\n        width: domRect.width,\n        height: domRect.height,\n        opacity: parseFloat($el.css(\"opacity\"))\n      };\n    },\n\n    // Shortcut for setting \"translate3d\" properties for element\n    // Can set be used to set opacity, too\n    // ========================================================\n\n    setTranslate: function ($el, props) {\n      var str = \"\",\n        css = {};\n\n      if (!$el || !props) {\n        return;\n      }\n\n      if (props.left !== undefined || props.top !== undefined) {\n        str =\n          (props.left === undefined ? $el.position().left : props.left) +\n          \"px, \" +\n          (props.top === undefined ? $el.position().top : props.top) +\n          \"px\";\n\n        if (this.use3d) {\n          str = \"translate3d(\" + str + \", 0px)\";\n        } else {\n          str = \"translate(\" + str + \")\";\n        }\n      }\n\n      if (props.scaleX !== undefined && props.scaleY !== undefined) {\n        str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\n      } else if (props.scaleX !== undefined) {\n        str += \" scaleX(\" + props.scaleX + \")\";\n      }\n\n      if (str.length) {\n        css.transform = str;\n      }\n\n      if (props.opacity !== undefined) {\n        css.opacity = props.opacity;\n      }\n\n      if (props.width !== undefined) {\n        css.width = props.width;\n      }\n\n      if (props.height !== undefined) {\n        css.height = props.height;\n      }\n\n      return $el.css(css);\n    },\n\n    // Simple CSS transition handler\n    // =============================\n\n    animate: function ($el, to, duration, callback, leaveAnimationName) {\n      var self = this,\n        from;\n\n      if ($.isFunction(duration)) {\n        callback = duration;\n        duration = null;\n      }\n\n      self.stop($el);\n\n      from = self.getTranslate($el);\n\n      $el.on(transitionEnd, function (e) {\n        // Skip events from child elements and z-index change\n        if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\n          return;\n        }\n\n        self.stop($el);\n\n        if ($.isNumeric(duration)) {\n          $el.css(\"transition-duration\", \"\");\n        }\n\n        if ($.isPlainObject(to)) {\n          if (to.scaleX !== undefined && to.scaleY !== undefined) {\n            self.setTranslate($el, {\n              top: to.top,\n              left: to.left,\n              width: from.width * to.scaleX,\n              height: from.height * to.scaleY,\n              scaleX: 1,\n              scaleY: 1\n            });\n          }\n        } else if (leaveAnimationName !== true) {\n          $el.removeClass(to);\n        }\n\n        if ($.isFunction(callback)) {\n          callback(e);\n        }\n      });\n\n      if ($.isNumeric(duration)) {\n        $el.css(\"transition-duration\", duration + \"ms\");\n      }\n\n      // Start animation by changing CSS properties or class name\n      if ($.isPlainObject(to)) {\n        if (to.scaleX !== undefined && to.scaleY !== undefined) {\n          delete to.width;\n          delete to.height;\n\n          if ($el.parent().hasClass(\"fancybox-slide--image\")) {\n            $el.parent().addClass(\"fancybox-is-scaling\");\n          }\n        }\n\n        $.fancybox.setTranslate($el, to);\n      } else {\n        $el.addClass(to);\n      }\n\n      // Make sure that `transitionend` callback gets fired\n      $el.data(\n        \"timer\",\n        setTimeout(function () {\n          $el.trigger(transitionEnd);\n        }, duration + 33)\n      );\n    },\n\n    stop: function ($el, callCallback) {\n      if ($el && $el.length) {\n        clearTimeout($el.data(\"timer\"));\n\n        if (callCallback) {\n          $el.trigger(transitionEnd);\n        }\n\n        $el.off(transitionEnd).css(\"transition-duration\", \"\");\n\n        $el.parent().removeClass(\"fancybox-is-scaling\");\n      }\n    }\n  };\n\n  // Default click handler for \"fancyboxed\" links\n  // ============================================\n\n  function _run(e, opts) {\n    var items = [],\n      index = 0,\n      $target,\n      value,\n      instance;\n\n    // Avoid opening multiple times\n    if (e && e.isDefaultPrevented()) {\n      return;\n    }\n\n    e.preventDefault();\n\n    opts = opts || {};\n\n    if (e && e.data) {\n      opts = mergeOpts(e.data.options, opts);\n    }\n\n    $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\n    instance = $.fancybox.getInstance();\n\n    if (instance && instance.$trigger && instance.$trigger.is($target)) {\n      return;\n    }\n\n    if (opts.selector) {\n      items = $(opts.selector);\n    } else {\n      // Get all related items and find index for clicked one\n      value = $target.attr(\"data-fancybox\") || \"\";\n\n      if (value) {\n        items = e.data ? e.data.items : [];\n        items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\n      } else {\n        items = [$target];\n      }\n    }\n\n    index = $(items).index($target);\n\n    // Sometimes current item can not be found\n    if (index < 0) {\n      index = 0;\n    }\n\n    instance = $.fancybox.open(items, opts, index);\n\n    // Save last active element\n    instance.$trigger = $target;\n  }\n\n  // Create a jQuery plugin\n  // ======================\n\n  $.fn.fancybox = function (options) {\n    var selector;\n\n    options = options || {};\n    selector = options.selector || false;\n\n    if (selector) {\n      // Use body element instead of document so it executes first\n      $(\"body\")\n        .off(\"click.fb-start\", selector)\n        .on(\"click.fb-start\", selector, {\n          options: options\n        }, _run);\n    } else {\n      this.off(\"click.fb-start\").on(\n        \"click.fb-start\", {\n          items: this,\n          options: options\n        },\n        _run\n      );\n    }\n\n    return this;\n  };\n\n  // Self initializing plugin for all elements having `data-fancybox` attribute\n  // ==========================================================================\n\n  $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\n\n  // Enable \"trigger elements\"\n  // =========================\n\n  $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\n    $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\n      .eq($(this).attr(\"data-fancybox-index\") || 0)\n      .trigger(\"click.fb-start\", {\n        $trigger: $(this)\n      });\n  });\n\n  // Track focus event for better accessibility styling\n  // ==================================================\n  (function () {\n    var buttonStr = \".fancybox-button\",\n      focusStr = \"fancybox-focus\",\n      $pressed = null;\n\n    $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\n      switch (e.type) {\n        case \"mousedown\":\n          $pressed = $(this);\n          break;\n        case \"mouseup\":\n          $pressed = null;\n          break;\n        case \"focusin\":\n          $(buttonStr).removeClass(focusStr);\n\n          if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\n            $(this).addClass(focusStr);\n          }\n          break;\n        case \"focusout\":\n          $(buttonStr).removeClass(focusStr);\n          break;\n      }\n    });\n  })();\n})(window, document, jQuery);\n// ==========================================================================\n//\n// Media\n// Adds additional media type support\n//\n// ==========================================================================\n(function ($) {\n  \"use strict\";\n\n  // Object containing properties for each media type\n  var defaults = {\n    youtube: {\n      matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\n      params: {\n        autoplay: 1,\n        autohide: 1,\n        fs: 1,\n        rel: 0,\n        hd: 1,\n        wmode: \"transparent\",\n        enablejsapi: 1,\n        html5: 1\n      },\n      paramPlace: 8,\n      type: \"iframe\",\n      url: \"https://www.youtube-nocookie.com/embed/$4\",\n      thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\n    },\n\n    vimeo: {\n      matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\n      params: {\n        autoplay: 1,\n        hd: 1,\n        show_title: 1,\n        show_byline: 1,\n        show_portrait: 0,\n        fullscreen: 1\n      },\n      paramPlace: 3,\n      type: \"iframe\",\n      url: \"//player.vimeo.com/video/$2\"\n    },\n\n    instagram: {\n      matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\n      type: \"image\",\n      url: \"//$1/p/$2/media/?size=l\"\n    },\n\n    // Examples:\n    // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\n    // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\n    // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\n    // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\n    gmap_place: {\n      matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\n      type: \"iframe\",\n      url: function (rez) {\n        return (\n          \"//maps.google.\" +\n          rez[2] +\n          \"/?ll=\" +\n          (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\n          \"&output=\" +\n          (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\n        );\n      }\n    },\n\n    // Examples:\n    // https://www.google.com/maps/search/Empire+State+Building/\n    // https://www.google.com/maps/search/?api=1&query=centurylink+field\n    // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\n    gmap_search: {\n      matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\n      type: \"iframe\",\n      url: function (rez) {\n        return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\n      }\n    }\n  };\n\n  // Formats matching url to final form\n  var format = function (url, rez, params) {\n    if (!url) {\n      return;\n    }\n\n    params = params || \"\";\n\n    if ($.type(params) === \"object\") {\n      params = $.param(params, true);\n    }\n\n    $.each(rez, function (key, value) {\n      url = url.replace(\"$\" + key, value || \"\");\n    });\n\n    if (params.length) {\n      url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\n    }\n\n    return url;\n  };\n\n  $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\n    var url = item.src || \"\",\n      type = false,\n      media,\n      thumb,\n      rez,\n      params,\n      urlParams,\n      paramObj,\n      provider;\n\n    media = $.extend(true, {}, defaults, item.opts.media);\n\n    // Look for any matching media type\n    $.each(media, function (providerName, providerOpts) {\n      rez = url.match(providerOpts.matcher);\n\n      if (!rez) {\n        return;\n      }\n\n      type = providerOpts.type;\n      provider = providerName;\n      paramObj = {};\n\n      if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\n        urlParams = rez[providerOpts.paramPlace];\n\n        if (urlParams[0] == \"?\") {\n          urlParams = urlParams.substring(1);\n        }\n\n        urlParams = urlParams.split(\"&\");\n\n        for (var m = 0; m < urlParams.length; ++m) {\n          var p = urlParams[m].split(\"=\", 2);\n\n          if (p.length == 2) {\n            paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\n          }\n        }\n      }\n\n      params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\n\n      url =\n        $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\n\n      thumb =\n        $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\n\n      if (providerName === \"youtube\") {\n        url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\n          return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\n        });\n      } else if (providerName === \"vimeo\") {\n        url = url.replace(\"&%23\", \"#\");\n      }\n\n      return false;\n    });\n\n    // If it is found, then change content type and update the url\n\n    if (type) {\n      if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\n        item.opts.thumb = thumb;\n      }\n\n      if (type === \"iframe\") {\n        item.opts = $.extend(true, item.opts, {\n          iframe: {\n            preload: false,\n            attr: {\n              scrolling: \"no\"\n            }\n          }\n        });\n      }\n\n      $.extend(item, {\n        type: type,\n        src: url,\n        origSrc: item.src,\n        contentSource: provider,\n        contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\n      });\n    } else if (url) {\n      item.type = item.opts.defaultType;\n    }\n  });\n\n  // Load YouTube/Video API on request to detect when video finished playing\n  var VideoAPILoader = {\n    youtube: {\n      src: \"https://www.youtube.com/iframe_api\",\n      class: \"YT\",\n      loading: false,\n      loaded: false\n    },\n\n    vimeo: {\n      src: \"https://player.vimeo.com/api/player.js\",\n      class: \"Vimeo\",\n      loading: false,\n      loaded: false\n    },\n\n    load: function (vendor) {\n      var _this = this,\n        script;\n\n      if (this[vendor].loaded) {\n        setTimeout(function () {\n          _this.done(vendor);\n        });\n        return;\n      }\n\n      if (this[vendor].loading) {\n        return;\n      }\n\n      this[vendor].loading = true;\n\n      script = document.createElement(\"script\");\n      script.type = \"text/javascript\";\n      script.src = this[vendor].src;\n\n      if (vendor === \"youtube\") {\n        window.onYouTubeIframeAPIReady = function () {\n          _this[vendor].loaded = true;\n          _this.done(vendor);\n        };\n      } else {\n        script.onload = function () {\n          _this[vendor].loaded = true;\n          _this.done(vendor);\n        };\n      }\n\n      document.body.appendChild(script);\n    },\n    done: function (vendor) {\n      var instance, $el, player;\n\n      if (vendor === \"youtube\") {\n        delete window.onYouTubeIframeAPIReady;\n      }\n\n      instance = $.fancybox.getInstance();\n\n      if (instance) {\n        $el = instance.current.$content.find(\"iframe\");\n\n        if (vendor === \"youtube\" && YT !== undefined && YT) {\n          player = new YT.Player($el.attr(\"id\"), {\n            events: {\n              onStateChange: function (e) {\n                if (e.data == 0) {\n                  instance.next();\n                }\n              }\n            }\n          });\n        } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\n          player = new Vimeo.Player($el);\n\n          player.on(\"ended\", function () {\n            instance.next();\n          });\n        }\n      }\n    }\n  };\n\n  $(document).on({\n    \"afterShow.fb\": function (e, instance, current) {\n      if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\n        VideoAPILoader.load(current.contentSource);\n      }\n    }\n  });\n})(jQuery);\n// ==========================================================================\n//\n// Guestures\n// Adds touch guestures, handles click and tap events\n//\n// ==========================================================================\n(function (window, document, $) {\n  \"use strict\";\n\n  var requestAFrame = (function () {\n    return (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      // if all else fails, use setTimeout\n      function (callback) {\n        return window.setTimeout(callback, 1000 / 60);\n      }\n    );\n  })();\n\n  var cancelAFrame = (function () {\n    return (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      window.oCancelAnimationFrame ||\n      function (id) {\n        window.clearTimeout(id);\n      }\n    );\n  })();\n\n  var getPointerXY = function (e) {\n    var result = [];\n\n    e = e.originalEvent || e || window.e;\n    e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\n\n    for (var key in e) {\n      if (e[key].pageX) {\n        result.push({\n          x: e[key].pageX,\n          y: e[key].pageY\n        });\n      } else if (e[key].clientX) {\n        result.push({\n          x: e[key].clientX,\n          y: e[key].clientY\n        });\n      }\n    }\n\n    return result;\n  };\n\n  var distance = function (point2, point1, what) {\n    if (!point1 || !point2) {\n      return 0;\n    }\n\n    if (what === \"x\") {\n      return point2.x - point1.x;\n    } else if (what === \"y\") {\n      return point2.y - point1.y;\n    }\n\n    return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n  };\n\n  var isClickable = function ($el) {\n    if (\n      $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\n      $.isFunction($el.get(0).onclick) ||\n      $el.data(\"selectable\")\n    ) {\n      return true;\n    }\n\n    // Check for attributes like data-fancybox-next or data-fancybox-close\n    for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\n      if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  var hasScrollbars = function (el) {\n    var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\n      overflowX = window.getComputedStyle(el)[\"overflow-x\"],\n      vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\n      horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\n\n    return vertical || horizontal;\n  };\n\n  var isScrollable = function ($el) {\n    var rez = false;\n\n    while (true) {\n      rez = hasScrollbars($el.get(0));\n\n      if (rez) {\n        break;\n      }\n\n      $el = $el.parent();\n\n      if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\n        break;\n      }\n    }\n\n    return rez;\n  };\n\n  var Guestures = function (instance) {\n    var self = this;\n\n    self.instance = instance;\n\n    self.$bg = instance.$refs.bg;\n    self.$stage = instance.$refs.stage;\n    self.$container = instance.$refs.container;\n\n    self.destroy();\n\n    self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\n  };\n\n  Guestures.prototype.destroy = function () {\n    var self = this;\n\n    self.$container.off(\".fb.touch\");\n\n    $(document).off(\".fb.touch\");\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n      self.requestId = null;\n    }\n\n    if (self.tapped) {\n      clearTimeout(self.tapped);\n      self.tapped = null;\n    }\n  };\n\n  Guestures.prototype.ontouchstart = function (e) {\n    var self = this,\n      $target = $(e.target),\n      instance = self.instance,\n      current = instance.current,\n      $slide = current.$slide,\n      $content = current.$content,\n      isTouchDevice = e.type == \"touchstart\";\n\n    // Do not respond to both (touch and mouse) events\n    if (isTouchDevice) {\n      self.$container.off(\"mousedown.fb.touch\");\n    }\n\n    // Ignore right click\n    if (e.originalEvent && e.originalEvent.button == 2) {\n      return;\n    }\n\n    // Ignore taping on links, buttons, input elements\n    if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\n      return;\n    }\n    // Ignore clicks on the scrollbar\n    if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\n      return;\n    }\n\n    // Ignore clicks while zooming or closing\n    if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\n      e.stopPropagation();\n      e.preventDefault();\n\n      return;\n    }\n\n    self.realPoints = self.startPoints = getPointerXY(e);\n\n    if (!self.startPoints.length) {\n      return;\n    }\n\n    // Allow other scripts to catch touch event if \"touch\" is set to false\n    if (current.touch) {\n      e.stopPropagation();\n    }\n\n    self.startEvent = e;\n\n    self.canTap = true;\n    self.$target = $target;\n    self.$content = $content;\n    self.opts = current.opts.touch;\n\n    self.isPanning = false;\n    self.isSwiping = false;\n    self.isZooming = false;\n    self.isScrolling = false;\n    self.canPan = instance.canPan();\n\n    self.startTime = new Date().getTime();\n    self.distanceX = self.distanceY = self.distance = 0;\n\n    self.canvasWidth = Math.round($slide[0].clientWidth);\n    self.canvasHeight = Math.round($slide[0].clientHeight);\n\n    self.contentLastPos = null;\n    self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\n      top: 0,\n      left: 0\n    };\n    self.sliderStartPos = $.fancybox.getTranslate($slide);\n\n    // Since position will be absolute, but we need to make it relative to the stage\n    self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n    self.sliderStartPos.top -= self.stagePos.top;\n    self.sliderStartPos.left -= self.stagePos.left;\n\n    self.contentStartPos.top -= self.stagePos.top;\n    self.contentStartPos.left -= self.stagePos.left;\n\n    $(document)\n      .off(\".fb.touch\")\n      .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\n      .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\n\n    if ($.fancybox.isMobile) {\n      document.addEventListener(\"scroll\", self.onscroll, true);\n    }\n\n    // Skip if clicked outside the sliding area\n    if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\n      if ($target.is(\".fancybox-image\")) {\n        e.preventDefault();\n      }\n\n      if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\n        return;\n      }\n    }\n\n    self.isScrollable = isScrollable($target) || isScrollable($target.parent());\n\n    // Check if element is scrollable and try to prevent default behavior (scrolling)\n    if (!($.fancybox.isMobile && self.isScrollable)) {\n      e.preventDefault();\n    }\n\n    // One finger or mouse click - swipe or pan an image\n    if (self.startPoints.length === 1 || current.hasError) {\n      if (self.canPan) {\n        $.fancybox.stop(self.$content);\n\n        self.isPanning = true;\n      } else {\n        self.isSwiping = true;\n      }\n\n      self.$container.addClass(\"fancybox-is-grabbing\");\n    }\n\n    // Two fingers - zoom image\n    if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\n      self.canTap = false;\n      self.isSwiping = false;\n      self.isPanning = false;\n\n      self.isZooming = true;\n\n      $.fancybox.stop(self.$content);\n\n      self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\n      self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\n\n      self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\n      self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\n\n      self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\n    }\n  };\n\n  Guestures.prototype.onscroll = function (e) {\n    var self = this;\n\n    self.isScrolling = true;\n\n    document.removeEventListener(\"scroll\", self.onscroll, true);\n  };\n\n  Guestures.prototype.ontouchmove = function (e) {\n    var self = this;\n\n    // Make sure user has not released over iframe or disabled element\n    if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\n      self.ontouchend(e);\n      return;\n    }\n\n    if (self.isScrolling) {\n      self.canTap = false;\n      return;\n    }\n\n    self.newPoints = getPointerXY(e);\n\n    if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\n      return;\n    }\n\n    if (!(self.isSwiping && self.isSwiping === true)) {\n      e.preventDefault();\n    }\n\n    self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\n    self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\n\n    self.distance = distance(self.newPoints[0], self.startPoints[0]);\n\n    // Skip false ontouchmove events (Chrome)\n    if (self.distance > 0) {\n      if (self.isSwiping) {\n        self.onSwipe(e);\n      } else if (self.isPanning) {\n        self.onPan();\n      } else if (self.isZooming) {\n        self.onZoom();\n      }\n    }\n  };\n\n  Guestures.prototype.onSwipe = function (e) {\n    var self = this,\n      instance = self.instance,\n      swiping = self.isSwiping,\n      left = self.sliderStartPos.left || 0,\n      angle;\n\n    // If direction is not yet determined\n    if (swiping === true) {\n      // We need at least 10px distance to correctly calculate an angle\n      if (Math.abs(self.distance) > 10) {\n        self.canTap = false;\n\n        if (instance.group.length < 2 && self.opts.vertical) {\n          self.isSwiping = \"y\";\n        } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\n          self.isSwiping = \"x\";\n        } else {\n          angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\n\n          self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\n        }\n\n        if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\n          self.isScrolling = true;\n\n          return;\n        }\n\n        instance.isDragging = self.isSwiping;\n\n        // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\n        self.startPoints = self.newPoints;\n\n        $.each(instance.slides, function (index, slide) {\n          var slidePos, stagePos;\n\n          $.fancybox.stop(slide.$slide);\n\n          slidePos = $.fancybox.getTranslate(slide.$slide);\n          stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n          slide.$slide\n            .css({\n              transform: \"\",\n              opacity: \"\",\n              \"transition-duration\": \"\"\n            })\n            .removeClass(\"fancybox-animated\")\n            .removeClass(function (index, className) {\n              return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n            });\n\n          if (slide.pos === instance.current.pos) {\n            self.sliderStartPos.top = slidePos.top - stagePos.top;\n            self.sliderStartPos.left = slidePos.left - stagePos.left;\n          }\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: slidePos.top - stagePos.top,\n            left: slidePos.left - stagePos.left\n          });\n        });\n\n        // Stop slideshow\n        if (instance.SlideShow && instance.SlideShow.isActive) {\n          instance.SlideShow.stop();\n        }\n      }\n\n      return;\n    }\n\n    // Sticky edges\n    if (swiping == \"x\") {\n      if (\n        self.distanceX > 0 &&\n        (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\n      ) {\n        left = left + Math.pow(self.distanceX, 0.8);\n      } else if (\n        self.distanceX < 0 &&\n        (self.instance.group.length < 2 ||\n          (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\n      ) {\n        left = left - Math.pow(-self.distanceX, 0.8);\n      } else {\n        left = left + self.distanceX;\n      }\n    }\n\n    self.sliderLastPos = {\n      top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\n      left: left\n    };\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n\n      self.requestId = null;\n    }\n\n    self.requestId = requestAFrame(function () {\n      if (self.sliderLastPos) {\n        $.each(self.instance.slides, function (index, slide) {\n          var pos = slide.pos - self.instance.currPos;\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: self.sliderLastPos.top,\n            left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\n          });\n        });\n\n        self.$container.addClass(\"fancybox-is-sliding\");\n      }\n    });\n  };\n\n  Guestures.prototype.onPan = function () {\n    var self = this;\n\n    // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\n    if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\n      self.startPoints = self.newPoints;\n      return;\n    }\n\n    self.canTap = false;\n\n    self.contentLastPos = self.limitMovement();\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n    }\n\n    self.requestId = requestAFrame(function () {\n      $.fancybox.setTranslate(self.$content, self.contentLastPos);\n    });\n  };\n\n  // Make panning sticky to the edges\n  Guestures.prototype.limitMovement = function () {\n    var self = this;\n\n    var canvasWidth = self.canvasWidth;\n    var canvasHeight = self.canvasHeight;\n\n    var distanceX = self.distanceX;\n    var distanceY = self.distanceY;\n\n    var contentStartPos = self.contentStartPos;\n\n    var currentOffsetX = contentStartPos.left;\n    var currentOffsetY = contentStartPos.top;\n\n    var currentWidth = contentStartPos.width;\n    var currentHeight = contentStartPos.height;\n\n    var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\n\n    if (currentWidth > canvasWidth) {\n      newOffsetX = currentOffsetX + distanceX;\n    } else {\n      newOffsetX = currentOffsetX;\n    }\n\n    newOffsetY = currentOffsetY + distanceY;\n\n    // Slow down proportionally to traveled distance\n    minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\n    minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\n\n    maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\n    maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\n\n    //   ->\n    if (distanceX > 0 && newOffsetX > minTranslateX) {\n      newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\n    }\n\n    //    <-\n    if (distanceX < 0 && newOffsetX < maxTranslateX) {\n      newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\n    }\n\n    //   \\/\n    if (distanceY > 0 && newOffsetY > minTranslateY) {\n      newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\n    }\n\n    //   /\\\n    if (distanceY < 0 && newOffsetY < maxTranslateY) {\n      newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\n    }\n\n    return {\n      top: newOffsetY,\n      left: newOffsetX\n    };\n  };\n\n  Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\n    var self = this;\n\n    var canvasWidth = self.canvasWidth;\n    var canvasHeight = self.canvasHeight;\n\n    if (newWidth > canvasWidth) {\n      newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\n      newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\n    } else {\n      // Center horizontally\n      newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\n    }\n\n    if (newHeight > canvasHeight) {\n      newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\n      newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\n    } else {\n      // Center vertically\n      newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\n    }\n\n    return {\n      top: newOffsetY,\n      left: newOffsetX\n    };\n  };\n\n  Guestures.prototype.onZoom = function () {\n    var self = this;\n\n    // Calculate current distance between points to get pinch ratio and new width and height\n    var contentStartPos = self.contentStartPos;\n\n    var currentWidth = contentStartPos.width;\n    var currentHeight = contentStartPos.height;\n\n    var currentOffsetX = contentStartPos.left;\n    var currentOffsetY = contentStartPos.top;\n\n    var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\n\n    var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\n\n    var newWidth = Math.floor(currentWidth * pinchRatio);\n    var newHeight = Math.floor(currentHeight * pinchRatio);\n\n    // This is the translation due to pinch-zooming\n    var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\n    var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\n\n    // Point between the two touches\n    var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\n    var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\n\n    // And this is the translation due to translation of the centerpoint\n    // between the two fingers\n    var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\n    var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\n\n    // The new offset is the old/current one plus the total translation\n    var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\n    var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\n\n    var newPos = {\n      top: newOffsetY,\n      left: newOffsetX,\n      scaleX: pinchRatio,\n      scaleY: pinchRatio\n    };\n\n    self.canTap = false;\n\n    self.newWidth = newWidth;\n    self.newHeight = newHeight;\n\n    self.contentLastPos = newPos;\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n    }\n\n    self.requestId = requestAFrame(function () {\n      $.fancybox.setTranslate(self.$content, self.contentLastPos);\n    });\n  };\n\n  Guestures.prototype.ontouchend = function (e) {\n    var self = this;\n\n    var swiping = self.isSwiping;\n    var panning = self.isPanning;\n    var zooming = self.isZooming;\n    var scrolling = self.isScrolling;\n\n    self.endPoints = getPointerXY(e);\n    self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\n\n    self.$container.removeClass(\"fancybox-is-grabbing\");\n\n    $(document).off(\".fb.touch\");\n\n    document.removeEventListener(\"scroll\", self.onscroll, true);\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n\n      self.requestId = null;\n    }\n\n    self.isSwiping = false;\n    self.isPanning = false;\n    self.isZooming = false;\n    self.isScrolling = false;\n\n    self.instance.isDragging = false;\n\n    if (self.canTap) {\n      return self.onTap(e);\n    }\n\n    self.speed = 100;\n\n    // Speed in px/ms\n    self.velocityX = (self.distanceX / self.dMs) * 0.5;\n    self.velocityY = (self.distanceY / self.dMs) * 0.5;\n\n    if (panning) {\n      self.endPanning();\n    } else if (zooming) {\n      self.endZooming();\n    } else {\n      self.endSwiping(swiping, scrolling);\n    }\n\n    return;\n  };\n\n  Guestures.prototype.endSwiping = function (swiping, scrolling) {\n    var self = this,\n      ret = false,\n      len = self.instance.group.length,\n      distanceX = Math.abs(self.distanceX),\n      canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\n      speedX = 300;\n\n    self.sliderLastPos = null;\n\n    // Close if swiped vertically / navigate if horizontally\n    if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\n      // Continue vertical movement\n      $.fancybox.animate(\n        self.instance.current.$slide, {\n          top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\n          opacity: 0\n        },\n        200\n      );\n      ret = self.instance.close(true, 250);\n    } else if (canAdvance && self.distanceX > 0) {\n      ret = self.instance.previous(speedX);\n    } else if (canAdvance && self.distanceX < 0) {\n      ret = self.instance.next(speedX);\n    }\n\n    if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\n      self.instance.centerSlide(200);\n    }\n\n    self.$container.removeClass(\"fancybox-is-sliding\");\n  };\n\n  // Limit panning from edges\n  // ========================\n  Guestures.prototype.endPanning = function () {\n    var self = this,\n      newOffsetX,\n      newOffsetY,\n      newPos;\n\n    if (!self.contentLastPos) {\n      return;\n    }\n\n    if (self.opts.momentum === false || self.dMs > 350) {\n      newOffsetX = self.contentLastPos.left;\n      newOffsetY = self.contentLastPos.top;\n    } else {\n      // Continue movement\n      newOffsetX = self.contentLastPos.left + self.velocityX * 500;\n      newOffsetY = self.contentLastPos.top + self.velocityY * 500;\n    }\n\n    newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\n\n    newPos.width = self.contentStartPos.width;\n    newPos.height = self.contentStartPos.height;\n\n    $.fancybox.animate(self.$content, newPos, 366);\n  };\n\n  Guestures.prototype.endZooming = function () {\n    var self = this;\n\n    var current = self.instance.current;\n\n    var newOffsetX, newOffsetY, newPos, reset;\n\n    var newWidth = self.newWidth;\n    var newHeight = self.newHeight;\n\n    if (!self.contentLastPos) {\n      return;\n    }\n\n    newOffsetX = self.contentLastPos.left;\n    newOffsetY = self.contentLastPos.top;\n\n    reset = {\n      top: newOffsetY,\n      left: newOffsetX,\n      width: newWidth,\n      height: newHeight,\n      scaleX: 1,\n      scaleY: 1\n    };\n\n    // Reset scalex/scaleY values; this helps for perfomance and does not break animation\n    $.fancybox.setTranslate(self.$content, reset);\n\n    if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\n      self.instance.scaleToFit(150);\n    } else if (newWidth > current.width || newHeight > current.height) {\n      self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\n    } else {\n      newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\n\n      $.fancybox.animate(self.$content, newPos, 150);\n    }\n  };\n\n  Guestures.prototype.onTap = function (e) {\n    var self = this;\n    var $target = $(e.target);\n\n    var instance = self.instance;\n    var current = instance.current;\n\n    var endPoints = (e && getPointerXY(e)) || self.startPoints;\n\n    var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\n    var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\n\n    var where;\n\n    var process = function (prefix) {\n      var action = current.opts[prefix];\n\n      if ($.isFunction(action)) {\n        action = action.apply(instance, [current, e]);\n      }\n\n      if (!action) {\n        return;\n      }\n\n      switch (action) {\n        case \"close\":\n          instance.close(self.startEvent);\n\n          break;\n\n        case \"toggleControls\":\n          instance.toggleControls();\n\n          break;\n\n        case \"next\":\n          instance.next();\n\n          break;\n\n        case \"nextOrClose\":\n          if (instance.group.length > 1) {\n            instance.next();\n          } else {\n            instance.close(self.startEvent);\n          }\n\n          break;\n\n        case \"zoom\":\n          if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\n            if (instance.canPan()) {\n              instance.scaleToFit();\n            } else if (instance.isScaledDown()) {\n              instance.scaleToActual(tapX, tapY);\n            } else if (instance.group.length < 2) {\n              instance.close(self.startEvent);\n            }\n          }\n\n          break;\n      }\n    };\n\n    // Ignore right click\n    if (e.originalEvent && e.originalEvent.button == 2) {\n      return;\n    }\n\n    // Skip if clicked on the scrollbar\n    if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\n      return;\n    }\n\n    // Check where is clicked\n    if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\n      where = \"Outside\";\n    } else if ($target.is(\".fancybox-slide\")) {\n      where = \"Slide\";\n    } else if (\n      instance.current.$content &&\n      instance.current.$content\n      .find($target)\n      .addBack()\n      .filter($target).length\n    ) {\n      where = \"Content\";\n    } else {\n      return;\n    }\n\n    // Check if this is a double tap\n    if (self.tapped) {\n      // Stop previously created single tap\n      clearTimeout(self.tapped);\n      self.tapped = null;\n\n      // Skip if distance between taps is too big\n      if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\n        return this;\n      }\n\n      // OK, now we assume that this is a double-tap\n      process(\"dblclick\" + where);\n    } else {\n      // Single tap will be processed if user has not clicked second time within 300ms\n      // or there is no need to wait for double-tap\n      self.tapX = tapX;\n      self.tapY = tapY;\n\n      if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\n        self.tapped = setTimeout(function () {\n          self.tapped = null;\n\n          if (!instance.isAnimating) {\n            process(\"click\" + where);\n          }\n        }, 500);\n      } else {\n        process(\"click\" + where);\n      }\n    }\n\n    return this;\n  };\n\n  $(document)\n    .on(\"onActivate.fb\", function (e, instance) {\n      if (instance && !instance.Guestures) {\n        instance.Guestures = new Guestures(instance);\n      }\n    })\n    .on(\"beforeClose.fb\", function (e, instance) {\n      if (instance && instance.Guestures) {\n        instance.Guestures.destroy();\n      }\n    });\n})(window, document, jQuery);\n// ==========================================================================\n//\n// SlideShow\n// Enables slideshow functionality\n//\n// Example of usage:\n// $.fancybox.getInstance().SlideShow.start()\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  $.extend(true, $.fancybox.defaults, {\n    btnTpl: {\n      slideShow: '<button data-fancybox-play class=\"fancybox-button fancybox-button--play\" title=\"{{PLAY_START}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M6.5 5.4v13.2l11-6.6z\"/></svg>' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z\"/></svg>' +\n        \"</button>\"\n    },\n    slideShow: {\n      autoStart: false,\n      speed: 3000,\n      progress: true\n    }\n  });\n\n  var SlideShow = function (instance) {\n    this.instance = instance;\n    this.init();\n  };\n\n  $.extend(SlideShow.prototype, {\n    timer: null,\n    isActive: false,\n    $button: null,\n\n    init: function () {\n      var self = this,\n        instance = self.instance,\n        opts = instance.group[instance.currIndex].opts.slideShow;\n\n      self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\n        self.toggle();\n      });\n\n      if (instance.group.length < 2 || !opts) {\n        self.$button.hide();\n      } else if (opts.progress) {\n        self.$progress = $('<div class=\"fancybox-progress\"></div>').appendTo(instance.$refs.inner);\n      }\n    },\n\n    set: function (force) {\n      var self = this,\n        instance = self.instance,\n        current = instance.current;\n\n      // Check if reached last element\n      if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\n        if (self.isActive && current.contentType !== \"video\") {\n          if (self.$progress) {\n            $.fancybox.animate(self.$progress.show(), {\n              scaleX: 1\n            }, current.opts.slideShow.speed);\n          }\n\n          self.timer = setTimeout(function () {\n            if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\n              instance.jumpTo(0);\n            } else {\n              instance.next();\n            }\n          }, current.opts.slideShow.speed);\n        }\n      } else {\n        self.stop();\n        instance.idleSecondsCounter = 0;\n        instance.showControls();\n      }\n    },\n\n    clear: function () {\n      var self = this;\n\n      clearTimeout(self.timer);\n\n      self.timer = null;\n\n      if (self.$progress) {\n        self.$progress.removeAttr(\"style\").hide();\n      }\n    },\n\n    start: function () {\n      var self = this,\n        current = self.instance.current;\n\n      if (current) {\n        self.$button\n          .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\n          .removeClass(\"fancybox-button--play\")\n          .addClass(\"fancybox-button--pause\");\n\n        self.isActive = true;\n\n        if (current.isComplete) {\n          self.set(true);\n        }\n\n        self.instance.trigger(\"onSlideShowChange\", true);\n      }\n    },\n\n    stop: function () {\n      var self = this,\n        current = self.instance.current;\n\n      self.clear();\n\n      self.$button\n        .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\n        .removeClass(\"fancybox-button--pause\")\n        .addClass(\"fancybox-button--play\");\n\n      self.isActive = false;\n\n      self.instance.trigger(\"onSlideShowChange\", false);\n\n      if (self.$progress) {\n        self.$progress.removeAttr(\"style\").hide();\n      }\n    },\n\n    toggle: function () {\n      var self = this;\n\n      if (self.isActive) {\n        self.stop();\n      } else {\n        self.start();\n      }\n    }\n  });\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      if (instance && !instance.SlideShow) {\n        instance.SlideShow = new SlideShow(instance);\n      }\n    },\n\n    \"beforeShow.fb\": function (e, instance, current, firstRun) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (firstRun) {\n        if (SlideShow && current.opts.slideShow.autoStart) {\n          SlideShow.start();\n        }\n      } else if (SlideShow && SlideShow.isActive) {\n        SlideShow.clear();\n      }\n    },\n\n    \"afterShow.fb\": function (e, instance, current) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (SlideShow && SlideShow.isActive) {\n        SlideShow.set();\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      var SlideShow = instance && instance.SlideShow;\n\n      // \"P\" or Spacebar\n      if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\n        keypress.preventDefault();\n\n        SlideShow.toggle();\n      }\n    },\n\n    \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (SlideShow) {\n        SlideShow.stop();\n      }\n    }\n  });\n\n  // Page Visibility API to pause slideshow when window is not active\n  $(document).on(\"visibilitychange\", function () {\n    var instance = $.fancybox.getInstance(),\n      SlideShow = instance && instance.SlideShow;\n\n    if (SlideShow && SlideShow.isActive) {\n      if (document.hidden) {\n        SlideShow.clear();\n      } else {\n        SlideShow.set();\n      }\n    }\n  });\n})(document, jQuery);\n// ==========================================================================\n//\n// FullScreen\n// Adds fullscreen functionality\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  // Collection of methods supported by user browser\n  var fn = (function () {\n    var fnMap = [\n      [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\n      // new WebKit\n      [\n        \"webkitRequestFullscreen\",\n        \"webkitExitFullscreen\",\n        \"webkitFullscreenElement\",\n        \"webkitFullscreenEnabled\",\n        \"webkitfullscreenchange\",\n        \"webkitfullscreenerror\"\n      ],\n      // old WebKit (Safari 5.1)\n      [\n        \"webkitRequestFullScreen\",\n        \"webkitCancelFullScreen\",\n        \"webkitCurrentFullScreenElement\",\n        \"webkitCancelFullScreen\",\n        \"webkitfullscreenchange\",\n        \"webkitfullscreenerror\"\n      ],\n      [\n        \"mozRequestFullScreen\",\n        \"mozCancelFullScreen\",\n        \"mozFullScreenElement\",\n        \"mozFullScreenEnabled\",\n        \"mozfullscreenchange\",\n        \"mozfullscreenerror\"\n      ],\n      [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\n    ];\n\n    var ret = {};\n\n    for (var i = 0; i < fnMap.length; i++) {\n      var val = fnMap[i];\n\n      if (val && val[1] in document) {\n        for (var j = 0; j < val.length; j++) {\n          ret[fnMap[0][j]] = val[j];\n        }\n\n        return ret;\n      }\n    }\n\n    return false;\n  })();\n\n  if (fn) {\n    var FullScreen = {\n      request: function (elem) {\n        elem = elem || document.documentElement;\n\n        elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\n      },\n      exit: function () {\n        document[fn.exitFullscreen]();\n      },\n      toggle: function (elem) {\n        elem = elem || document.documentElement;\n\n        if (this.isFullscreen()) {\n          this.exit();\n        } else {\n          this.request(elem);\n        }\n      },\n      isFullscreen: function () {\n        return Boolean(document[fn.fullscreenElement]);\n      },\n      enabled: function () {\n        return Boolean(document[fn.fullscreenEnabled]);\n      }\n    };\n\n    $.extend(true, $.fancybox.defaults, {\n      btnTpl: {\n        fullScreen: '<button data-fancybox-fullscreen class=\"fancybox-button fancybox-button--fsenter\" title=\"{{FULL_SCREEN}}\">' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"/></svg>' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z\"/></svg>' +\n          \"</button>\"\n      },\n      fullScreen: {\n        autoStart: false\n      }\n    });\n\n    $(document).on(fn.fullscreenchange, function () {\n      var isFullscreen = FullScreen.isFullscreen(),\n        instance = $.fancybox.getInstance();\n\n      if (instance) {\n        // If image is zooming, then force to stop and reposition properly\n        if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\n          instance.isAnimating = false;\n\n          instance.update(true, true, 0);\n\n          if (!instance.isComplete) {\n            instance.complete();\n          }\n        }\n\n        instance.trigger(\"onFullscreenChange\", isFullscreen);\n\n        instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\n\n        instance.$refs.toolbar\n          .find(\"[data-fancybox-fullscreen]\")\n          .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\n          .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\n      }\n    });\n  }\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      var $container;\n\n      if (!fn) {\n        instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\n\n        return;\n      }\n\n      if (instance && instance.group[instance.currIndex].opts.fullScreen) {\n        $container = instance.$refs.container;\n\n        $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          FullScreen.toggle();\n        });\n\n        if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\n          FullScreen.request();\n        }\n\n        // Expose API\n        instance.FullScreen = FullScreen;\n      } else if (instance) {\n        instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      // \"F\"\n      if (instance && instance.FullScreen && keycode === 70) {\n        keypress.preventDefault();\n\n        instance.FullScreen.toggle();\n      }\n    },\n\n    \"beforeClose.fb\": function (e, instance) {\n      if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\n        FullScreen.exit();\n      }\n    }\n  });\n})(document, jQuery);\n// ==========================================================================\n//\n// Thumbs\n// Displays thumbnails in a grid\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  var CLASS = \"fancybox-thumbs\",\n    CLASS_ACTIVE = CLASS + \"-active\";\n\n  // Make sure there are default values\n  $.fancybox.defaults = $.extend(\n    true, {\n      btnTpl: {\n        thumbs: '<button data-fancybox-thumbs class=\"fancybox-button fancybox-button--thumbs\" title=\"{{THUMBS}}\">' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z\"/></svg>' +\n          \"</button>\"\n      },\n      thumbs: {\n        autoStart: false, // Display thumbnails on opening\n        hideOnClose: true, // Hide thumbnail grid when closing animation starts\n        parentEl: \".fancybox-container\", // Container is injected into this element\n        axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n      }\n    },\n    $.fancybox.defaults\n  );\n\n  var FancyThumbs = function (instance) {\n    this.init(instance);\n  };\n\n  $.extend(FancyThumbs.prototype, {\n    $button: null,\n    $grid: null,\n    $list: null,\n    isVisible: false,\n    isActive: false,\n\n    init: function (instance) {\n      var self = this,\n        group = instance.group,\n        enabled = 0;\n\n      self.instance = instance;\n      self.opts = group[instance.currIndex].opts.thumbs;\n\n      instance.Thumbs = self;\n\n      self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\n\n      // Enable thumbs if at least two group items have thumbnails\n      for (var i = 0, len = group.length; i < len; i++) {\n        if (group[i].thumb) {\n          enabled++;\n        }\n\n        if (enabled > 1) {\n          break;\n        }\n      }\n\n      if (enabled > 1 && !!self.opts) {\n        self.$button.removeAttr(\"style\").on(\"click\", function () {\n          self.toggle();\n        });\n\n        self.isActive = true;\n      } else {\n        self.$button.hide();\n      }\n    },\n\n    create: function () {\n      var self = this,\n        instance = self.instance,\n        parentEl = self.opts.parentEl,\n        list = [],\n        src;\n\n      if (!self.$grid) {\n        // Create main element\n        self.$grid = $('<div class=\"' + CLASS + \" \" + CLASS + \"-\" + self.opts.axis + '\"></div>').appendTo(\n          instance.$refs.container\n          .find(parentEl)\n          .addBack()\n          .filter(parentEl)\n        );\n\n        // Add \"click\" event that performs gallery navigation\n        self.$grid.on(\"click\", \"a\", function () {\n          instance.jumpTo($(this).attr(\"data-index\"));\n        });\n      }\n\n      // Build the list\n      if (!self.$list) {\n        self.$list = $('<div class=\"' + CLASS + '__list\">').appendTo(self.$grid);\n      }\n\n      $.each(instance.group, function (i, item) {\n        src = item.thumb;\n\n        if (!src && item.type === \"image\") {\n          src = item.src;\n        }\n\n        list.push(\n          '<a href=\"javascript:;\" tabindex=\"0\" data-index=\"' +\n          i +\n          '\"' +\n          (src && src.length ? ' style=\"background-image:url(' + src + ')\"' : 'class=\"fancybox-thumbs-missing\"') +\n          \"></a>\"\n        );\n      });\n\n      self.$list[0].innerHTML = list.join(\"\");\n\n      if (self.opts.axis === \"x\") {\n        // Set fixed width for list element to enable horizontal scrolling\n        self.$list.width(\n          parseInt(self.$grid.css(\"padding-right\"), 10) +\n          instance.group.length *\n          self.$list\n          .children()\n          .eq(0)\n          .outerWidth(true)\n        );\n      }\n    },\n\n    focus: function (duration) {\n      var self = this,\n        $list = self.$list,\n        $grid = self.$grid,\n        thumb,\n        thumbPos;\n\n      if (!self.instance.current) {\n        return;\n      }\n\n      thumb = $list\n        .children()\n        .removeClass(CLASS_ACTIVE)\n        .filter('[data-index=\"' + self.instance.current.index + '\"]')\n        .addClass(CLASS_ACTIVE);\n\n      thumbPos = thumb.position();\n\n      // Check if need to scroll to make current thumb visible\n      if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\n        $list.stop().animate({\n            scrollTop: $list.scrollTop() + thumbPos.top\n          },\n          duration\n        );\n      } else if (\n        self.opts.axis === \"x\" &&\n        (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\n      ) {\n        $list\n          .parent()\n          .stop()\n          .animate({\n              scrollLeft: thumbPos.left\n            },\n            duration\n          );\n      }\n    },\n\n    update: function () {\n      var that = this;\n      that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\n\n      if (that.isVisible) {\n        if (!that.$grid) {\n          that.create();\n        }\n\n        that.instance.trigger(\"onThumbsShow\");\n\n        that.focus(0);\n      } else if (that.$grid) {\n        that.instance.trigger(\"onThumbsHide\");\n      }\n\n      // Update content position\n      that.instance.update();\n    },\n\n    hide: function () {\n      this.isVisible = false;\n      this.update();\n    },\n\n    show: function () {\n      this.isVisible = true;\n      this.update();\n    },\n\n    toggle: function () {\n      this.isVisible = !this.isVisible;\n      this.update();\n    }\n  });\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      var Thumbs;\n\n      if (instance && !instance.Thumbs) {\n        Thumbs = new FancyThumbs(instance);\n\n        if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\n          Thumbs.show();\n        }\n      }\n    },\n\n    \"beforeShow.fb\": function (e, instance, item, firstRun) {\n      var Thumbs = instance && instance.Thumbs;\n\n      if (Thumbs && Thumbs.isVisible) {\n        Thumbs.focus(firstRun ? 0 : 250);\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      var Thumbs = instance && instance.Thumbs;\n\n      // \"G\"\n      if (Thumbs && Thumbs.isActive && keycode === 71) {\n        keypress.preventDefault();\n\n        Thumbs.toggle();\n      }\n    },\n\n    \"beforeClose.fb\": function (e, instance) {\n      var Thumbs = instance && instance.Thumbs;\n\n      if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\n        Thumbs.$grid.hide();\n      }\n    }\n  });\n})(document, jQuery);\n//// ==========================================================================\n//\n// Share\n// Displays simple form for sharing current url\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  $.extend(true, $.fancybox.defaults, {\n    btnTpl: {\n      share: '<button data-fancybox-share class=\"fancybox-button fancybox-button--share\" title=\"{{SHARE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z\"/></svg>' +\n        \"</button>\"\n    },\n    share: {\n      url: function (instance, item) {\n        return (\n          (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\n        );\n      },\n      tpl: '<div class=\"fancybox-share\">' +\n        \"<h1>{{SHARE}}</h1>\" +\n        \"<p>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--fb\" href=\"https://www.facebook.com/sharer/sharer.php?u={{url}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196\" /></svg>' +\n        \"<span>Facebook</span>\" +\n        \"</a>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--tw\" href=\"https://twitter.com/intent/tweet?url={{url}}&text={{descr}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z\" /></svg>' +\n        \"<span>Twitter</span>\" +\n        \"</a>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--pt\" href=\"https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z\" fill=\"#fff\"/></svg>' +\n        \"<span>Pinterest</span>\" +\n        \"</a>\" +\n        \"</p>\" +\n        '<p><input class=\"fancybox-share__input\" type=\"text\" value=\"{{url_raw}}\" onclick=\"select()\" /></p>' +\n        \"</div>\"\n    }\n  });\n\n  function escapeHtml(string) {\n    var entityMap = {\n      \"&\": \"&amp;\",\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      '\"': \"&quot;\",\n      \"'\": \"&#39;\",\n      \"/\": \"&#x2F;\",\n      \"`\": \"&#x60;\",\n      \"=\": \"&#x3D;\"\n    };\n\n    return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\n      return entityMap[s];\n    });\n  }\n\n  $(document).on(\"click\", \"[data-fancybox-share]\", function () {\n    var instance = $.fancybox.getInstance(),\n      current = instance.current || null,\n      url,\n      tpl;\n\n    if (!current) {\n      return;\n    }\n\n    if ($.type(current.opts.share.url) === \"function\") {\n      url = current.opts.share.url.apply(current, [instance, current]);\n    }\n\n    tpl = current.opts.share.tpl\n      .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\n      .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\n      .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\n      .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\n\n    $.fancybox.open({\n      src: instance.translate(instance, tpl),\n      type: \"html\",\n      opts: {\n        touch: false,\n        animationEffect: false,\n        afterLoad: function (shareInstance, shareCurrent) {\n          // Close self if parent instance is closing\n          instance.$refs.container.one(\"beforeClose.fb\", function () {\n            shareInstance.close(null, 0);\n          });\n\n          // Opening links in a popup window\n          shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\n            window.open(this.href, \"Share\", \"width=550, height=450\");\n            return false;\n          });\n        },\n        mobile: {\n          autoFocus: false\n        }\n      }\n    });\n  });\n})(document, jQuery);\n// ==========================================================================\n//\n// Hash\n// Enables linking to each modal\n//\n// ==========================================================================\n(function (window, document, $) {\n  \"use strict\";\n\n  // Simple $.escapeSelector polyfill (for jQuery prior v3)\n  if (!$.escapeSelector) {\n    $.escapeSelector = function (sel) {\n      var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n      var fcssescape = function (ch, asCodePoint) {\n        if (asCodePoint) {\n          // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n          if (ch === \"\\0\") {\n            return \"\\uFFFD\";\n          }\n\n          // Control characters and (dependent upon position) numbers get escaped as code points\n          return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n        }\n\n        // Other potentially-special ASCII characters get backslash-escaped\n        return \"\\\\\" + ch;\n      };\n\n      return (sel + \"\").replace(rcssescape, fcssescape);\n    };\n  }\n\n  // Get info about gallery name and current index from url\n  function parseUrl() {\n    var hash = window.location.hash.substr(1),\n      rez = hash.split(\"-\"),\n      index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\n      gallery = rez.join(\"-\");\n\n    return {\n      hash: hash,\n      /* Index is starting from 1 */\n      index: index < 1 ? 1 : index,\n      gallery: gallery\n    };\n  }\n\n  // Trigger click evnt on links to open new fancyBox instance\n  function triggerFromUrl(url) {\n    if (url.gallery !== \"\") {\n      // If we can find element matching 'data-fancybox' atribute,\n      // then triggering click event should start fancyBox\n      $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\n        .eq(url.index - 1)\n        .focus()\n        .trigger(\"click.fb-start\");\n    }\n  }\n\n  // Get gallery name from current instance\n  function getGalleryID(instance) {\n    var opts, ret;\n\n    if (!instance) {\n      return false;\n    }\n\n    opts = instance.current ? instance.current.opts : instance.opts;\n    ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\n\n    return ret === \"\" ? false : ret;\n  }\n\n  // Start when DOM becomes ready\n  $(function () {\n    // Check if user has disabled this module\n    if ($.fancybox.defaults.hash === false) {\n      return;\n    }\n\n    // Update hash when opening/closing fancyBox\n    $(document).on({\n      \"onInit.fb\": function (e, instance) {\n        var url, gallery;\n\n        if (instance.group[instance.currIndex].opts.hash === false) {\n          return;\n        }\n\n        url = parseUrl();\n        gallery = getGalleryID(instance);\n\n        // Make sure gallery start index matches index from hash\n        if (gallery && url.gallery && gallery == url.gallery) {\n          instance.currIndex = url.index - 1;\n        }\n      },\n\n      \"beforeShow.fb\": function (e, instance, current, firstRun) {\n        var gallery;\n\n        if (!current || current.opts.hash === false) {\n          return;\n        }\n\n        // Check if need to update window hash\n        gallery = getGalleryID(instance);\n\n        if (!gallery) {\n          return;\n        }\n\n        // Variable containing last hash value set by fancyBox\n        // It will be used to determine if fancyBox needs to close after hash change is detected\n        instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\n\n        // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\n        if (window.location.hash === \"#\" + instance.currentHash) {\n          return;\n        }\n\n        if (firstRun && !instance.origHash) {\n          instance.origHash = window.location.hash;\n        }\n\n        if (instance.hashTimer) {\n          clearTimeout(instance.hashTimer);\n        }\n\n        // Update hash\n        instance.hashTimer = setTimeout(function () {\n          if (\"replaceState\" in window.history) {\n            window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\n              document.title,\n              window.location.pathname + window.location.search + \"#\" + instance.currentHash\n            );\n\n            if (firstRun) {\n              instance.hasCreatedHistory = true;\n            }\n          } else {\n            window.location.hash = instance.currentHash;\n          }\n\n          instance.hashTimer = null;\n        }, 300);\n      },\n\n      \"beforeClose.fb\": function (e, instance, current) {\n        if (!current || current.opts.hash === false) {\n          return;\n        }\n\n        clearTimeout(instance.hashTimer);\n\n        // Goto previous history entry\n        if (instance.currentHash && instance.hasCreatedHistory) {\n          window.history.back();\n        } else if (instance.currentHash) {\n          if (\"replaceState\" in window.history) {\n            window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\n          } else {\n            window.location.hash = instance.origHash;\n          }\n        }\n\n        instance.currentHash = null;\n      }\n    });\n\n    // Check if need to start/close after url has changed\n    $(window).on(\"hashchange.fb\", function () {\n      var url = parseUrl(),\n        fb = null;\n\n      // Find last fancyBox instance that has \"hash\"\n      $.each(\n        $(\".fancybox-container\")\n        .get()\n        .reverse(),\n        function (index, value) {\n          var tmp = $(value).data(\"FancyBox\");\n\n          if (tmp && tmp.currentHash) {\n            fb = tmp;\n            return false;\n          }\n        }\n      );\n\n      if (fb) {\n        // Now, compare hash values\n        if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\n          fb.currentHash = null;\n\n          fb.close();\n        }\n      } else if (url.gallery !== \"\") {\n        triggerFromUrl(url);\n      }\n    });\n\n    // Check current hash and trigger click event on matching element to start fancyBox, if needed\n    setTimeout(function () {\n      if (!$.fancybox.getInstance()) {\n        triggerFromUrl(parseUrl());\n      }\n    }, 50);\n  });\n})(window, document, jQuery);\n// ==========================================================================\n//\n// Wheel\n// Basic mouse weheel support for gallery navigation\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  var prevTime = new Date().getTime();\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance, current) {\n      instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\n        var current = instance.current,\n          currTime = new Date().getTime();\n\n        if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\n          return;\n        }\n\n        e.preventDefault();\n        e.stopPropagation();\n\n        if (current.$slide.hasClass(\"fancybox-animated\")) {\n          return;\n        }\n\n        e = e.originalEvent || e;\n\n        if (currTime - prevTime < 250) {\n          return;\n        }\n\n        prevTime = currTime;\n\n        instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\n      });\n    }\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/docs/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n\n  <title>fancybox3 · Documentation</title>\n\n  <!-- jQuery -->\n  <script src=\"https://code.jquery.com/jquery-3.3.1.min.js\" integrity=\"sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=\"\n    crossorigin=\"anonymous\"></script>\n\n  <!-- Bootstrap  -->\n  <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css\" integrity=\"sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm\"\n    crossorigin=\"anonymous\">\n  <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js\" integrity=\"sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl\"\n    crossorigin=\"anonymous\"></script>\n\n  <style>\na,\na:hover {\n    color: #ff5268;\n}\n\nh2 {\n    border-bottom: 1px solid rgba(0, 0, 0, .1);\n    margin-bottom: 2rem;\n    padding-bottom: 1rem;\n    padding-top: 2rem;\n}\n\nh3 {\n    font-size: 1.5rem;\n    margin-bottom: 1rem;\n    padding-top: 1.5rem;\n}\n\nh2 + h3 {\n    margin-top: -2rem;\n}\n\nh3 a,\nh3 a:hover {\n    color: currentColor;\n}\n\ncode {\n    background: #f1ecec;\n    color: #555;\n    padding: 2px 5px;\n}\n\npre {\n    background: #f1ecec;\n    color: #555;\n    max-height: 70vh;\n    overflow: auto;\n    padding: 1rem 1.5rem;\n    -moz-tab-size: 4;\n         tab-size: 4;\n}\n\npre code {\n    padding: 0;\n}\n\nsection {\n    margin-bottom: 1rem;\n    margin-bottom: 5vh;\n}\n\n#introduction {\n    background: #fbf9f9;\n    margin-bottom: 2rem;\n    padding-bottom: 1rem;\n    padding-top: 1rem;\n}\n\n.navbar-brand {\n    color: #444;\n    font-size: 1.375rem;\n}\n\n.navbar-brand svg {\n    position: relative;\n    top: -1px;\n    vertical-align: middle;\n}\n\n.navbar-brand svg path {\n    fill: #fff;\n    stroke: #444;\n    stroke-width: 2.5;\n}\n\n.nav-link {\n    color: grey;\n    height: 2.5rem;\n}\n\n.navbar-brand:hover,\n.nav-link:hover {\n    color: #464646;\n}\n\n.nav-link.active {\n    background: #ff5268;\n    border-radius: .25rem;\n    color: #fff;\n}\n\n.sticky {\n    padding-top: 2rem;\n    top: 0;\n}\n\n.sticky ul {\n    line-height: 2;\n    list-style: none;\n}\n\n.sticky > ul {\n    padding-left: 1rem;\n}\n\n.sticky a {\n    color: grey;\n    text-decoration: none;\n}\n\n.sticky a:hover {\n    color: #464646;\n}\n\n.sticky a.active {\n    color: #ff5268;\n}\n\n.demo {\n    font-size: 90%;\n    margin-bottom: 2rem;\n    text-align: right;\n}\n\npre ~ .demo {\n    margin-top: -1rem;\n}\n\n.badge-warning {\n    font-weight: 600;\n}\n\n  </style>\n</head>\n\n<body>\n  <div id=\"introduction\">\n    <div class=\"container\">\n      <nav class=\"navbar navbar-expand\">\n        <a class=\"navbar-brand py-0 mr-auto\" href=\"https://fancyapps.com/fancybox/3/\">\n          fancybox\n        </a>\n\n        <ul class=\"navbar-nav ml-auto\">\n          <li class=\"nav-item px-2 d-none d-md-block\">\n            <a class=\"nav-link\" href=\"https://fancyapps.com/fancybox/3/\">Home</a>\n          </li>\n          <li class=\"nav-item px-2 d-none d-md-block\">\n            <a class=\"nav-link active\" href=\"https://fancyapps.com/fancybox/3/docs/\">Documentation</a>\n          </li>\n          <li class=\"nav-item px-2\">\n            <a class=\"nav-link\" href=\"https://fancyapps.com/store/\">Store</a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" href=\"https://github.com/fancyapps/fancybox\" target=\"_blank\">\n              <svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" aria-label=\"Github\" role=\"img\" viewBox=\"0 0 512 512\">\n                <rect fill=\"#444\" width=\"512\" height=\"512\" rx=\"50%\"></rect>\n                <path fill=\"#fff\" d=\"M335 499c14 0 12 17 12 17H165s-2-17 12-17c13 0 16-6 16-12l-1-50c-71 16-86-28-86-28-12-30-28-37-28-37-24-16 1-16 1-16 26 2 40 26 40 26 22 39 59 28 74 22 2-17 9-28 16-35-57-6-116-28-116-126 0-28 10-51 26-69-3-6-11-32 3-67 0 0 21-7 70 26 42-12 86-12 128 0 49-33 70-26 70-26 14 35 6 61 3 67 16 18 26 41 26 69 0 98-60 120-117 126 10 8 18 24 18 48l-1 70c0 6 3 12 16 12z\"></path>\n              </svg>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" href=\"https://twitter.com/thefancyapps\" target=\"_blank\" title=\"Follow @thefancyapps\">\n              <svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" aria-label=\"Twitter\" role=\"img\" viewBox=\"0 0 512 512\">\n                <rect fill=\"#444\" width=\"512\" height=\"512\" rx=\"50%\"></rect>\n                <path fill=\"#fff\" d=\"M437 152a72 72 0 0 1-40 12 72 72 0 0 0 32-40 72 72 0 0 1-45 17 72 72 0 0 0-122 65 200 200 0 0 1-145-74 72 72 0 0 0 22 94 72 72 0 0 1-32-7 72 72 0 0 0 56 69 72 72 0 0 1-32 1 72 72 0 0 0 67 50 200 200 0 0 1-105 29 200 200 0 0 0 309-179 200 200 0 0 0 35-37\"></path>\n              </svg>\n            </a>\n          </li>\n        </ul>\n      </nav>\n    </div>\n  </div>\n\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-md-2\" id=\"leftCol\">\n        <div class=\"sticky\">\n          <ul>\n            <li>\n              <a href=\"#introduction\">Introduction</a>\n            </li>\n            <li>\n              <a href=\"#setup\">Setup</a>\n            </li>\n            <li>\n              <a href=\"#usage\">How to Use</a>\n            </li>\n            <li>\n              <a href=\"#media_types\">Media types</a>\n\n              <ul>\n                <li>\n                  <a href=\"#images\">Images</a>\n                </li>\n                <li>\n                  <a href=\"#video\">Video</a>\n                </li>\n                <li>\n                  <a href=\"#iframe\">Iframe</a>\n                </li>\n                <li>\n                  <a href=\"#inline\">Inline</a>\n                </li>\n                <li>\n                  <a href=\"#ajax\">Ajax</a>\n                </li>\n              </ul>\n            </li>\n            <li>\n              <a href=\"#options\">Options</a>\n            </li>\n            <li>\n              <a href=\"#api\">Api</a>\n            </li>\n            <li>\n              <a href=\"#modules\">Modules</a>\n            </li>\n            <li>\n              <a href=\"#faq\">FAQ</a>\n            </li>\n          </ul>\n        </div>\n      </div>\n\n      <div class=\"col-md-10 px-2 px-md-5\" id=\"mainCol\">\n\n        <section>\n          <h2>Introduction</h2>\n\n          <p>\n            Get started with fancybox, probably the world’s most popular lightbox script.\n          </p>\n        </section>\n        <section>\n\n          <h3>\n            Dependencies\n          </h3>\n\n          <p>\n            jQuery 3+ is preferred, but fancybox works with jQuery 1.9.1+ and jQuery 2+\n          </p>\n\n          <h3>Compatibility</h3>\n\n          <p>\n            fancybox includes support for touch gestures and even supports pinch gestures for zooming.\n            It is perfectly suited for both mobile and desktop browsers.\n          </p>\n\n          <p>\n            fancybox has been tested in following browsers/devices:\n          </p>\n\n          <ul>\n            <li>Chrome</li>\n            <li>Firefox</li>\n            <li>IE10/11</li>\n            <li>Edge</li>\n            <li>iOS Safari</li>\n            <li>Android 7.0 Tablet</li>\n          </ul>\n\n        </section>\n\n        <section id=\"setup\">\n\n          <h2>Setup</h2>\n\n          <p>\n            You can install fancybox by linking\n            <code>.css</code> and\n            <code>.js</code> files to your html file. Make sure you also load the jQuery library. Below is a basic HTML\n            template to use as an example:\n          </p>\n\n          <pre>&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n&lt;head&gt;\n\t&lt;meta charset=&quot;utf-8&quot;&gt;\n\t&lt;title&gt;My page&lt;/title&gt;\n\n\t&lt;!-- CSS --&gt;\n\t&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;jquery.fancybox.min.css&quot;&gt;\n&lt;/head&gt;\n&lt;body&gt;\n\n\t&lt;!-- Your HTML content goes here --&gt;\n\n\t&lt;!-- JS --&gt;\n\t&lt;script src=&quot;https://code.jquery.com/jquery-3.2.1.min.js&quot;&gt;&lt;/script&gt;\n\t&lt;script src=&quot;jquery.fancybox.min.js&quot;&gt;&lt;/script&gt;\n&lt;/body&gt;\n&lt;/html&gt;\n</pre>\n          <h3>Download fancybox</h3>\n\n          <p>\n            Download the latest version of fancybox on\n            <a href=\"https://github.com/fancyapps/fancybox\" target=\"_blank\">GitHub</a>.\n            <br /> Or just link directly to fancybox files on cdnjs -\n            <a href=\"https://cdnjs.com/libraries/fancybox\" target=\"_blank\">https://cdnjs.com/libraries/fancybox</a>.\n          </p>\n\n          <h3>Package Managers</h3>\n\n          <p>\n            fancybox is also available on npm and Bower.\n          </p>\n\n          <pre><code># NPM\nnpm install @fancyapps/fancybox --save\n\n# Bower\nbower install fancybox --save\n</code></pre>\n\n          <h4 class=\"mt-5\">\n            <span class=\"badge badge-warning\">Important</span>\n          </h4>\n\n          <ul>\n            <li>Make sure you add the jQuery library before the fancybox JS file</li>\n            <li>If you already have jQuery on your page, you shouldn't include it second time</li>\n            <li>Do not include both fancybox.js and fancybox.min.js files</li>\n            <li>\n              Some functionality (ajax, iframes, etc) will not work when you're opening local file directly on your\n              browser, the code must\n              be running on a web server\n            </li>\n          </ul>\n\n        </section>\n\n        <section id=\"usage\">\n          <h2>How to Use</h2>\n\n          <h3>Initialize with data attributes</h3>\n\n          <p>\n            The most basic way to use fancybox is by adding the\n            <code>data-fancybox</code> attribute to your element. This will automatically bind click event that will\n            start\n            fancybox. Use\n            <code>href</code> or\n            <code>data-src</code> attribute to specify source of your content. Example:\n          </p>\n\n          <pre>&lt;a href=\"image.jpg\" data-fancybox data-caption=\"Caption for single image\"&gt;\n\t&lt;img src=\"thumbnail.jpg\" alt=\"\" /&gt;\n&lt;/a&gt;</pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/oPKVea?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            If you have a group of items, you can use the same attribute\n            <code>data-fancybox</code> value for each of them to create a gallery. Each group should have a unique\n            value.\n            Example:\n          </p>\n\n          <pre>&lt;a href=\"image_1.jpg\" data-fancybox=\"gallery\" data-caption=\"Caption #1\"&gt;\n\t&lt;img src=\"thumbnail_1.jpg\" alt=\"\" /&gt;\n&lt;/a&gt;\n\n&lt;a href=\"image_2.jpg\" data-fancybox=\"gallery\" data-caption=\"Caption #2\"&gt;\n\t&lt;img src=\"thumbnail_2.jpg\" alt=\"\" /&gt;\n&lt;/a&gt;\n</pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/wEVOPa?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            If you choose this method, default settings will be applied. See\n            <a href=\"#options\">options</a> section for examples how to customize\n            by changing defaults, using\n            <code>data-options</code> attribute or by <a href=\"#initialize-with-javascript\">initializing with\n              JavaScript</a>.\n          </p>\n\n          <p>\n            <span class=\"badge badge-info\">Info</span>\n            Sometimes you have multiple links pointing to the same source and that creates duplicates in the gallery.\n            To avoid that, simply use\n            <code>data-fancybox-trigger</code> attribute with the same value used for\n            <code>data-fancybox</code> attribute for your other links. Optionally, use\n            <code>data-fancybox-index</code> attribute to specify index of starting element:\n          </p>\n\n          <pre><code>&lt;a data-fancybox-trigger=&quot;gallery&quot; href=&quot;javascript:;&quot;&gt;\n    &lt;img src=\"thumbnail_1.jpg\" alt=\"\" /&gt;\n&lt;/a&gt;\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/VGoRqO?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"initialize-with-javascript\">Initialize with JavaScript</h3>\n\n          <p>\n            Select your elements with a jQuery selector (you can use any valid selector) and call the\n            <code>fancybox</code> method:\n          </p>\n\n          <pre><code>$('[data-fancybox=\"gallery\"]').fancybox({\n\t// Options will go here\n});\n</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/vzoPMB?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            <span class=\"badge badge-info\">Info</span>\n            Sometimes you might need to bind fancybox to dynamically added elements. Use\n            <code>selector</code> option to attach click event listener for elements that exist now or in the future.\n            All selected items will be automatically grouped in the gallery. Example:\n          </p>\n\n          <pre><code>$().fancybox({\n    selector : '.imglist a:visible'\n});</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/NLQJQp?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3>Use with Javascript</h3>\n\n          <p>\n            You can also open and close fancybox programmatically. Here are a couple of examples, visit\n            <a href=\"#api\">API</a> section for more information and demos.\n          </p>\n          <p>\n            Display simple message:\n          </p>\n\n          <pre><code>$.fancybox.open('&lt;div class=&quot;message&quot;&gt;&lt;h2&gt;Hello!&lt;/h2&gt;&lt;p&gt;You are awesome!&lt;/p&gt;&lt;/div&gt;');</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/qMewWv?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Display iframed page:\n          </p>\n\n          <pre><code>$.fancybox.open({\n\tsrc  : 'link-to-your-page.html',\n\ttype : 'iframe',\n\topts : {\n\t\tafterShow : function( instance, current ) {\n\t\t\tconsole.info( 'done!' );\n\t\t}\n\t}\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/GXVLgo?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h4 class=\"mt-4\">\n            <span class=\"badge badge-warning\">Important</span>\n          </h4>\n\n          <p>\n            fancybox attempts to automatically detect the type of content based on the given url. If it cannot be\n            detected, the type can also be set manually using\n            <code>data-type</code> attribute (or\n            <code>type</code> option). Example:\n          </p>\n\n          <pre>&lt;a href=\"images.php?id=123\" data-type=\"image\" data-caption=\"Caption\"&gt;\n\tShow image\n&lt;/a&gt;</pre>\n\n        </section>\n        <section id=\"media_types\">\n\n          <h2>Media types</h2>\n\n          <p>\n            fancybox is designed to display images, video, iframes and any HTML content. For your convenience, there is\n            a built in support for inline content and ajax.\n          </p>\n\n          <h3 id=\"images\">Images</h3>\n\n          <p>\n            The standard way of using fancybox is with a number of thumbnail images that link to larger images:\n          </p>\n\n          <pre><code>&lt;a href=\"image.jpg\" data-fancybox=\"images\" data-caption=\"My caption\"&gt;\n\t&lt;img src=\"thumbnail.jpg\" alt=\"\" /&gt;\n&lt;/a&gt;</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/EeqJPG?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            By default, fancybox fully preloads an image before displaying it. You can choose to display the image\n            right away. It will render and show the full size image while the data is being received. To do so, some\n            attributes are necessary:\n          </p>\n\n          <ul>\n            <li>\n              <code>data-width</code> &nbsp; - the real width of the image</li>\n            <li>\n              <code>data-height</code> - the real height of the image</li>\n          </ul>\n\n          <pre><code>&lt;a href=&quot;image.jpg&quot; data-fancybox=&quot;images&quot; data-width=&quot;2048&quot; data-height=&quot;1365&quot;&gt;\n    &lt;img src=&quot;thumbnail.jpg&quot; /&gt;\n&lt;/a&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/bxXJRr?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            You can also use these\n            <code>width</code> and\n            <code>height</code> properties to control size of the image. This can be used to make images look sharper\n            on retina displays. Example:\n          </p>\n\n          <pre><code>$('[data-fancybox=&quot;images&quot;]').fancybox({\n    afterLoad : function(instance, current) {\n        var pixelRatio = window.devicePixelRatio || 1;\n\n        if ( pixelRatio &gt; 1.5 ) {\n            current.width  = current.width  / pixelRatio;\n            current.height = current.height / pixelRatio;\n        }\n    }\n});</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/gdVyxg?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            fancybox supports \"srcset\" so it can display different images based on viewport width. You can use this to\n            improve download times for mobile users and over time save bandwidth. Example:\n          </p>\n\n          <pre><code>&lt;a href=&quot;medium.jpg&quot; data-fancybox=&quot;images&quot; data-srcset=&quot;large.jpg 1600w, medium.jpg 1200w, small.jpg 640w&quot;&gt;\n\t&lt;img src=&quot;thumbnail.jpg&quot; /&gt;\n&lt;/a&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/LJwvzY?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            It is also possible to protect images from downloading by right-click. While this does not protect from\n            truly determined users, it should discourage the vast majority from ripping off your files.\n            Optionally, put the watermark over image.\n          </p>\n\n          <pre><code>$('[data-fancybox]').fancybox({\n\tprotect: true\n});</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/QVePOQ\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"video\">Video</h3>\n\n          <p>\n            YouTube and Vimeo videos can be used with fancybox by just providing the page URL. Link to MP4 video\n            directly or use trigger element to display hidden <code>&lt;video&gt;</code> element.\n          </p>\n\n          <p>\n            Use\n            <code>data-width</code> and\n            <code>data-height</code> attributes to customize video dimensions and\n            <code>data-ratio</code> for the aspect ratio.\n          </p>\n\n          <pre><code>&lt;a data-fancybox href=\"https://www.youtube.com/watch?v=_sI_Ps7JSEk\"&gt;\n    YouTube video\n&lt;/a&gt;\n\n&lt;a data-fancybox href=\"https://vimeo.com/191947042\"&gt;\n    Vimeo video\n&lt;/a&gt;\n\n&lt;a data-fancybox data-width=&quot;640&quot; data-height=&quot;360&quot; href=&quot;video.mp4&quot;&gt;\n    Direct link to MP4 video\n&lt;/a&gt;\n\n&lt;a data-fancybox href=&quot;#myVideo&quot;&gt;\n    HTML5 video element\n&lt;/a&gt;\n\n&lt;video width=&quot;640&quot; height=&quot;320&quot; controls id=&quot;myVideo&quot; style=&quot;display:none;&quot;&gt;\n    &lt;source src=&quot;https://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.mp4&quot; type=&quot;video/mp4&quot;&gt;\n    &lt;source src=&quot;https://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.webm&quot; type=&quot;video/webm&quot;&gt;\n    &lt;source src=&quot;https://www.html5rocks.com/en/tutorials/video/basics/Chrome_ImF.ogv&quot; type=&quot;video/ogg&quot;&gt;\n    Your browser doesn't support HTML5 video tag.\n&lt;/video&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/GXVLyr?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Controlling YouTube &amp; Vimeo video via URL parameters:\n          </p>\n\n          <pre><code>&lt;a data-fancybox href=&quot;https://www.youtube.com/watch?v=_sI_Ps7JSEk&amp;amp;autoplay=1&amp;amp;rel=0&amp;amp;controls=0&amp;amp;showinfo=0&quot;&gt;\n    YouTube video - hide controls and info\n&lt;/a&gt;\n\n&lt;a data-fancybox href=&quot;https://vimeo.com/191947042?color=f00&quot;&gt;\n    Vimeo video - custom color\n&lt;/a&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/NLQmzy?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Via JavaScript:\n          </p>\n\n          <pre><code>$('[data-fancybox]').fancybox({\n    youtube : {\n        controls : 0,\n        showinfo : 0\n    },\n    vimeo : {\n        color : 'f00'\n    }\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/WgVWKz?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n\n\n          <h3 id=\"iframe\">Iframe</h3>\n\n          <p>\n            If you need to display content from another page, add <code>data-fancybox</code> and <code>data-type=\"iframe\"</code>\n            attributes to your link. This would create <code>&lt;iframe&gt;</iframe></code> element that allows to\n            embed an entire web document inside the modal.\n          </p>\n\n          <pre><code>&lt;a data-fancybox data-type=\"iframe\" data-src=&quot;http://codepen.io/fancyapps/full/jyEGGG/&quot; href=&quot;javascript:;&quot;&gt;\n\tWebpage\n&lt;/a&gt;\n\n&lt;a data-fancybox data-type=\"iframe\" data-src=&quot;https://mozilla.github.io/pdf.js/web/viewer.html&quot; href=&quot;javascript:;&quot;&gt;\n    Sample PDF file \n&lt;/a&gt;\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/RYXOeK?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            If you have not disabled iframe preloading (using\n            <code>preload</code> option), the script will atempt to calculate content dimensions and will adjust\n            width/height of <code>&lt;iframe&gt;</iframe></code> to fit with content in it. Keep in mind, that due to\n            <a href=\"https://en.wikipedia.org/wiki/Same-origin_policy\" target=\"_blank\">same origin policy</a>, there\n            are some limitations.\n          </p>\n\n          <p>\n            This example will disable iframe preloading and will display small close button next to iframe instead of\n            the toolbar:\n          </p>\n\n          <pre><code>$('[data-fancybox]').fancybox({\n\ttoolbar  : false,\n\tsmallBtn : true,\n\tiframe : {\n\t\tpreload : false\n\t}\n})\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/pOMBQx\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n\n          <p>\n            Iframe dimensions can be controlled by CSS:\n          </p>\n\n          <pre><code>.fancybox-slide--iframe .fancybox-content {\n    width  : 800px;\n    height : 600px;\n    max-width  : 80%;\n    max-height : 80%;\n    margin: 0;\n}</code></pre>\n\n          <p>\n            These CSS rules can be overridden by JS, if needed:\n          </p>\n\n          <pre><code>$(&quot;[data-fancybox]&quot;).fancybox({\n    iframe : {\n        css : {\n            width : '600px'\n        }\n    }\n});</code></pre>\n\n          <p>\n            How to access and control fancybox in parent window from inside an iframe:\n          </p>\n\n          <pre><code>// Close current fancybox instance\nparent.jQuery.fancybox.getInstance().close();\n\n// Adjust iframe height according to the contents\nparent.jQuery.fancybox.getInstance().update();\n</code></pre>\n\n          <h3 id=\"inline\">Inline</h3>\n\n          <p>\n            fancybox can be used to display any HTML element on the page.\n            First, create a hidden element with unique ID:\n          </p>\n\n          <pre><code>&lt;div style=&quot;display: none;&quot; id=&quot;hidden-content&quot;&gt;\n\t&lt;h2&gt;Hello&lt;/h2&gt;\n\t&lt;p&gt;You are awesome.&lt;/p&gt;\n&lt;/div&gt;</code></pre>\n\n          <p>\n            Then simply create a link having\n            <code>data-src</code> attribute that matches ID of the element you want to open (preceded by a hash mark\n            (#); in this example - <code>#hidden-content</code>):\n          </p>\n\n          <pre><code>&lt;a data-fancybox data-src=&quot;#hidden-content&quot; href=&quot;javascript:;&quot;&gt;\n\tTrigger the fancybox\n&lt;/a&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/zJgXyg?editors=1100\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            The script will append small close button (if you have not disabled by\n            <code>smallBtn:false</code>) and will not apply any styles except for centering. Therefore you can easily\n            set custom dimensions using CSS.\n          </p>\n\n          <p>\n            <span class=\"badge badge-info\">Info</span> If necessary, you can make your element (and similarly any other\n            html content) scrollable by adding additional wrapping element and some CSS -\n\n            <a href=\"https://codepen.io/fancyapps/pen/yxmrwG?editors=1100\" target=\"_blank\">view demo on CodePen</a>.\n          </p>\n\n\n          <h3 id=\"ajax\">Ajax</h3>\n\n          <p>\n            To load your content via AJAX, you need to add a\n            <code>data-type=\"ajax\"</code> attribute to your link:\n          </p>\n\n          <pre><code>&lt;a data-fancybox data-type=&quot;ajax&quot; data-src=&quot;my_page.com/path/to/ajax/&quot; href=&quot;javascript:;&quot;&gt;\n\tAJAX content\n&lt;/a&gt;</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/yxmrWZ?editors=1100\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Additionally it is possible to define a selector with the\n            <code>data-filter</code> attribute to show only a part of the response. The selector can be any string,\n            that is a valid jQuery selector:\n          </p>\n\n          <pre><code>&lt;a data-fancybox data-type=&quot;ajax&quot; data-src=&quot;my_page.com/path/to/ajax/&quot; data-filter=&quot;#two&quot; href=&quot;javascript:;&quot;&gt;\n\tAJAX content\n&lt;/a&gt;\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/jvgRRe?editors=1100\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n        </section>\n\n\n        <section id=\"options\">\n          <h2>Options</h2>\n\n          <p>\n            Quick reference for all default options as defined in the source:\n          </p>\n\n          <pre>var defaults = {\n  // Close existing modals\n  // Set this to false if you do not need to stack multiple instances\n  closeExisting: false,\n\n  // Enable infinite gallery navigation\n  loop: false,\n\n  // Horizontal space between slides\n  gutter: 50,\n\n  // Enable keyboard navigation\n  keyboard: true,\n\n  // Should allow caption to overlap the content\n  preventCaptionOverlap: true,\n\n  // Should display navigation arrows at the screen edges\n  arrows: true,\n\n  // Should display counter at the top left corner\n  infobar: true,\n\n  // Should display close button (using `btnTpl.smallBtn` template) over the content\n  // Can be true, false, &quot;auto&quot;\n  // If &quot;auto&quot; - will be automatically enabled for &quot;html&quot;, &quot;inline&quot; or &quot;ajax&quot; items\n  smallBtn: &quot;auto&quot;,\n\n  // Should display toolbar (buttons at the top)\n  // Can be true, false, &quot;auto&quot;\n  // If &quot;auto&quot; - will be automatically hidden if &quot;smallBtn&quot; is enabled\n  toolbar: &quot;auto&quot;,\n\n  // What buttons should appear in the top right corner.\n  // Buttons will be created using templates from `btnTpl` option\n  // and they will be placed into toolbar (class=&quot;fancybox-toolbar&quot;` element)\n  buttons: [\n    &quot;zoom&quot;,\n    //&quot;share&quot;,\n    &quot;slideShow&quot;,\n    //&quot;fullScreen&quot;,\n    //&quot;download&quot;,\n    &quot;thumbs&quot;,\n    &quot;close&quot;\n  ],\n\n  // Detect &quot;idle&quot; time in seconds\n  idleTime: 3,\n\n  // Disable right-click and use simple image protection for images\n  protect: false,\n\n  // Shortcut to make content &quot;modal&quot; - disable keyboard navigtion, hide buttons, etc\n  modal: false,\n\n  image: {\n    // Wait for images to load before displaying\n    //   true  - wait for image to load and then display;\n    //   false - display thumbnail and load the full-sized image over top,\n    //           requires predefined image dimensions (`data-width` and `data-height` attributes)\n    preload: false\n  },\n\n  ajax: {\n    // Object containing settings for ajax request\n    settings: {\n      // This helps to indicate that request comes from the modal\n      // Feel free to change naming\n      data: {\n        fancybox: true\n      }\n    }\n  },\n\n  iframe: {\n    // Iframe template\n    tpl:\n      '&lt;iframe id=&quot;fancybox-frame{rnd}&quot; name=&quot;fancybox-frame{rnd}&quot; class=&quot;fancybox-iframe&quot; allowfullscreen allow=&quot;autoplay; fullscreen&quot; src=&quot;&quot;&gt;&lt;/iframe&gt;',\n\n    // Preload iframe before displaying it\n    // This allows to calculate iframe content width and height\n    // (note: Due to &quot;Same Origin Policy&quot;, you can't get cross domain data).\n    preload: true,\n\n    // Custom CSS styling for iframe wrapping element\n    // You can use this to set custom iframe dimensions\n    css: {},\n\n    // Iframe tag attributes\n    attr: {\n      scrolling: &quot;auto&quot;\n    }\n  },\n\n  // For HTML5 video only\n  video: {\n    tpl:\n      '&lt;video class=&quot;fancybox-video&quot; controls controlsList=&quot;nodownload&quot; poster=&quot;{{poster}}&quot;&gt;' +\n      '&lt;source src=&quot;{{src}}&quot; type=&quot;{{format}}&quot; /&gt;' +\n      'Sorry, your browser doesn\\'t support embedded videos, &lt;a href=&quot;{{src}}&quot;&gt;download&lt;/a&gt; and watch with your favorite video player!' +\n      &quot;&lt;/video&gt;&quot;,\n    format: &quot;&quot;, // custom video format\n    autoStart: true\n  },\n\n  // Default content type if cannot be detected automatically\n  defaultType: &quot;image&quot;,\n\n  // Open/close animation type\n  // Possible values:\n  //   false            - disable\n  //   &quot;zoom&quot;           - zoom images from/to thumbnail\n  //   &quot;fade&quot;\n  //   &quot;zoom-in-out&quot;\n  //\n  animationEffect: &quot;zoom&quot;,\n\n  // Duration in ms for open/close animation\n  animationDuration: 366,\n\n  // Should image change opacity while zooming\n  // If opacity is &quot;auto&quot;, then opacity will be changed if image and thumbnail have different aspect ratios\n  zoomOpacity: &quot;auto&quot;,\n\n  // Transition effect between slides\n  //\n  // Possible values:\n  //   false            - disable\n  //   &quot;fade'\n  //   &quot;slide'\n  //   &quot;circular'\n  //   &quot;tube'\n  //   &quot;zoom-in-out'\n  //   &quot;rotate'\n  //\n  transitionEffect: &quot;fade&quot;,\n\n  // Duration in ms for transition animation\n  transitionDuration: 366,\n\n  // Custom CSS class for slide element\n  slideClass: &quot;&quot;,\n\n  // Custom CSS class for layout\n  baseClass: &quot;&quot;,\n\n  // Base template for layout\n  baseTpl:\n    '&lt;div class=&quot;fancybox-container&quot; role=&quot;dialog&quot; tabindex=&quot;-1&quot;&gt;' +\n    '&lt;div class=&quot;fancybox-bg&quot;&gt;&lt;/div&gt;' +\n    '&lt;div class=&quot;fancybox-inner&quot;&gt;' +\n    '&lt;div class=&quot;fancybox-infobar&quot;&gt;&lt;span data-fancybox-index&gt;&lt;/span&gt;&amp;nbsp;/&amp;nbsp;&lt;span data-fancybox-count&gt;&lt;/span&gt;&lt;/div&gt;' +\n    '&lt;div class=&quot;fancybox-toolbar&quot;&gt;{{buttons}}&lt;/div&gt;' +\n    '&lt;div class=&quot;fancybox-navigation&quot;&gt;{{arrows}}&lt;/div&gt;' +\n    '&lt;div class=&quot;fancybox-stage&quot;&gt;&lt;/div&gt;' +\n    '&lt;div class=&quot;fancybox-caption&quot;&gt;&lt;div class=\"&quot;fancybox-caption__body&quot;&gt;&lt;/div&gt;&lt;/div&gt;' +\n    '&lt;/div&gt;'; +\n    '&lt;/div&gt;',\n\n  // Loading indicator template\n  spinnerTpl: '&lt;div class=&quot;fancybox-loading&quot;&gt;&lt;/div&gt;',\n\n  // Error message template\n  errorTpl: '&lt;div class=&quot;fancybox-error&quot;&gt;&lt;p&gt;{{ERROR}}&lt;/p&gt;&lt;/div&gt;',\n\n  btnTpl: {\n    download:\n      '&lt;a download data-fancybox-download class=&quot;fancybox-button fancybox-button--download&quot; title=&quot;{{DOWNLOAD}}&quot; href=&quot;javascript:;&quot;&gt;' +\n      '&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z&quot;/&gt;&lt;/svg&gt;' +\n      &quot;&lt;/a&gt;&quot;,\n\n    zoom:\n      '&lt;button data-fancybox-zoom class=&quot;fancybox-button fancybox-button--zoom&quot; title=&quot;{{ZOOM}}&quot;&gt;' +\n      '&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z&quot;/&gt;&lt;/svg&gt;' +\n      &quot;&lt;/button&gt;&quot;,\n\n    close:\n      '&lt;button data-fancybox-close class=&quot;fancybox-button fancybox-button--close&quot; title=&quot;{{CLOSE}}&quot;&gt;' +\n      '&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z&quot;/&gt;&lt;/svg&gt;' +\n      &quot;&lt;/button&gt;&quot;,\n\n    // Arrows\n    arrowLeft:\n      '&lt;button data-fancybox-prev class=&quot;fancybox-button fancybox-button--arrow_left&quot; title=&quot;{{PREV}}&quot;&gt;' +\n      '&lt;div&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z&quot;/&gt;&lt;/svg&gt;&lt;/div&gt;' +\n      &quot;&lt;/button&gt;&quot;,\n\n    arrowRight:\n      '&lt;button data-fancybox-next class=&quot;fancybox-button fancybox-button--arrow_right&quot; title=&quot;{{NEXT}}&quot;&gt;' +\n      '&lt;div&gt;&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z&quot;/&gt;&lt;/svg&gt;&lt;/div&gt;' +\n      &quot;&lt;/button&gt;&quot;,\n\n    // This small close button will be appended to your html/inline/ajax content by default,\n    // if &quot;smallBtn&quot; option is not set to false\n    smallBtn:\n      '&lt;button type=&quot;button&quot; data-fancybox-close class=&quot;fancybox-button fancybox-close-small&quot; title=&quot;{{CLOSE}}&quot;&gt;' +\n      '&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z&quot;/&gt;&lt;/svg&gt;' +\n      &quot;&lt;/button&gt;&quot;\n  },\n\n  // Container is injected into this element\n  parentEl: &quot;body&quot;,\n\n  // Hide browser vertical scrollbars; use at your own risk\n  hideScrollbar: true,\n\n  // Focus handling\n  // ==============\n\n  // Try to focus on the first focusable element after opening\n  autoFocus: true,\n\n  // Put focus back to active element after closing\n  backFocus: true,\n\n  // Do not let user to focus on element outside modal content\n  trapFocus: true,\n\n  // Module specific options\n  // =======================\n\n  fullScreen: {\n    autoStart: false\n  },\n\n  // Set `touch: false` to disable panning/swiping\n  touch: {\n    vertical: true, // Allow to drag content vertically\n    momentum: true // Continue movement after releasing mouse/touch when panning\n  },\n\n  // Hash value when initializing manually,\n  // set `false` to disable hash change\n  hash: null,\n\n  // Customize or add new media types\n  // Example:\n  /*\n    media : {\n      youtube : {\n        params : {\n          autoplay : 0\n        }\n      }\n    }\n  */\n  media: {},\n\n  slideShow: {\n    autoStart: false,\n    speed: 3000\n  },\n\n  thumbs: {\n    autoStart: false, // Display thumbnails on opening\n    hideOnClose: true, // Hide thumbnail grid when closing animation starts\n    parentEl: &quot;.fancybox-container&quot;, // Container is injected into this element\n    axis: &quot;y&quot; // Vertical (y) or horizontal (x) scrolling\n  },\n\n  // Use mousewheel to navigate gallery\n  // If 'auto' - enabled for images only\n  wheel: &quot;auto&quot;,\n\n  // Callbacks\n  //==========\n\n  // See Documentation/API/Events for more information\n  // Example:\n  /*\n    afterShow: function( instance, current ) {\n      console.info( 'Clicked element:' );\n      console.info( current.opts.$orig );\n    }\n  */\n\n  onInit: $.noop, // When instance has been initialized\n\n  beforeLoad: $.noop, // Before the content of a slide is being loaded\n  afterLoad: $.noop, // When the content of a slide is done loading\n\n  beforeShow: $.noop, // Before open animation starts\n  afterShow: $.noop, // When content is done loading and animating\n\n  beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\n  afterClose: $.noop, // After instance has been closed\n\n  onActivate: $.noop, // When instance is brought to front\n  onDeactivate: $.noop, // When other instance has been activated\n\n  // Interaction\n  // ===========\n\n  // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\n  // each option can be string or method that returns value.\n  //\n  // Possible values:\n  //   &quot;close&quot;           - close instance\n  //   &quot;next&quot;            - move to next gallery item\n  //   &quot;nextOrClose&quot;     - move to next gallery item or close if gallery has only one item\n  //   &quot;toggleControls&quot;  - show/hide controls\n  //   &quot;zoom&quot;            - zoom image (if loaded)\n  //   false             - do nothing\n\n  // Clicked on the content\n  clickContent: function(current, event) {\n    return current.type === &quot;image&quot; ? &quot;zoom&quot; : false;\n  },\n\n  // Clicked on the slide\n  clickSlide: &quot;close&quot;,\n\n  // Clicked on the background (backdrop) element;\n  // if you have not changed the layout, then most likely you need to use `clickSlide` option\n  clickOutside: &quot;close&quot;,\n\n  // Same as previous two, but for double click\n  dblclickContent: false,\n  dblclickSlide: false,\n  dblclickOutside: false,\n\n  // Custom options when mobile device is detected\n  // =============================================\n\n  mobile: {\n    preventCaptionOverlap: false,\n    idleTime: false,\n    clickContent: function(current, event) {\n      return current.type === &quot;image&quot; ? &quot;toggleControls&quot; : false;\n    },\n    clickSlide: function(current, event) {\n      return current.type === &quot;image&quot; ? &quot;toggleControls&quot; : &quot;close&quot;;\n    },\n    dblclickContent: function(current, event) {\n      return current.type === &quot;image&quot; ? &quot;zoom&quot; : false;\n    },\n    dblclickSlide: function(current, event) {\n      return current.type === &quot;image&quot; ? &quot;zoom&quot; : false;\n    }\n  },\n\n  // Internationalization\n  // ====================\n\n  lang: &quot;en&quot;,\n  i18n: {\n    en: {\n      CLOSE: &quot;Close&quot;,\n      NEXT: &quot;Next&quot;,\n      PREV: &quot;Previous&quot;,\n      ERROR: &quot;The requested content cannot be loaded. &lt;br/&gt; Please try again later.&quot;,\n      PLAY_START: &quot;Start slideshow&quot;,\n      PLAY_STOP: &quot;Pause slideshow&quot;,\n      FULL_SCREEN: &quot;Full screen&quot;,\n      THUMBS: &quot;Thumbnails&quot;,\n      DOWNLOAD: &quot;Download&quot;,\n      SHARE: &quot;Share&quot;,\n      ZOOM: &quot;Zoom&quot;\n    },\n    de: {\n      CLOSE: &quot;Schliessen&quot;,\n      NEXT: &quot;Weiter&quot;,\n      PREV: &quot;Zurück&quot;,\n      ERROR: &quot;Die angeforderten Daten konnten nicht geladen werden. &lt;br/&gt; Bitte versuchen Sie es später nochmal.&quot;,\n      PLAY_START: &quot;Diaschau starten&quot;,\n      PLAY_STOP: &quot;Diaschau beenden&quot;,\n      FULL_SCREEN: &quot;Vollbild&quot;,\n      THUMBS: &quot;Vorschaubilder&quot;,\n      DOWNLOAD: &quot;Herunterladen&quot;,\n      SHARE: &quot;Teilen&quot;,\n      ZOOM: &quot;Maßstab&quot;\n    }\n  }\n};\n</pre>\n\n\n          <p>\n            Set instance options by passing a valid object to <code>fancybox()</code> method:\n          </p>\n\n          <pre><code>$('[data-fancybox=\"gallery\"]').fancybox({\n\tthumbs : {\n\t\tautoStart : true\n\t}\n});</code></pre>\n\n\n          <p>\n            Plugin options / defaults are exposed in\n            <code>$.fancybox.defaults</code> namespace so you can easily adjust them globally:\n          </p>\n\n          <pre><code>$.fancybox.defaults.animationEffect = \"fade\";</code></pre>\n\n          <p>\n            Custom options for each element individually can be set by adding a\n            <code>data-options</code> attribute to the element.\n            This attribute should contain the properly formatted JSON object\n            (remember, strings should be wrapped in double quotes).\n          </p>\n          <p>\n            It is also possible to quickly set any option using\n            <em>parameterized</em> name of the selected option, for example,\n            <code>animationEffect</code> would be <code>data-animation-effect</code>:\n          </p>\n\n          <pre><code>&lt;a data-fancybox data-options='{&quot;caption&quot; : &quot;My caption&quot;, &quot;src&quot; : &quot;https://codepen.io/about/&quot;, &quot;type&quot; : &quot;iframe&quot;}' href=&quot;javascript:;&quot; class=&quot;btn btn-primary&quot;&gt;\n    Example #1\n&lt;/a&gt;\n\n&lt;a data-fancybox data-animation-effect=&quot;false&quot; href=&quot;https://source.unsplash.com/0JYgd2QuMfw/1500x1000&quot; class=&quot;btn btn-primary&quot;&gt;\n    Example #2\n&lt;/a&gt;\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/PdMgrO?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n        </section>\n        <section id=\"api\">\n\n          <h2>API</h2>\n\n          <p>\n            The fancybox API offers a couple of methods to control fancybox. This gives you the ability to extend the\n            plugin and to integrate it with other web application components.\n          </p>\n\n          <h3 id=\"core_methods\">Core methods</h3>\n\n          <p>\n            Core methods are methods which affect/handle instances:\n          </p>\n\n\n          <pre><code>// Start new fancybox instance\n$.fancybox.open( items, opts, index );\n\n// Get refrence to currently active fancybox instance\n$.fancybox.getInstance();\n\n// Close currently active fancybox instance (pass `true` to close all instances) \n$.fancybox.close();\n\n// Close all instances and unbind all events\n$.fancybox.destroy();\n</code></pre>\n\n\n          <h3 id=\"api_usage\">Starting fancybox</h3>\n\n          <p>\n            When creating group objects manually, each item should follow this pattern:\n          </p>\n\n          <pre><code>{\n\tsrc  : '' // Source of the content\n\ttype : '' // Content type: image|inline|ajax|iframe|html (optional)\n\topts : {} // Object containing item options (optional)\n}\n</code></pre>\n\n          <p>\n            Example of opening image gallery programmatically:\n          </p>\n\n          <pre><code>$.fancybox.open([\n\t{\n\t\tsrc  : '1_b.jpg',\n\t\topts : {\n\t\t\tcaption : 'First caption',\n\t\t\tthumb   : '1_s.jpg'\n\t\t}\n\t},\n\t{\n\t\tsrc  : '2_b.jpg',\n\t\topts : {\n\t\t\tcaption : 'Second caption',\n\t\t\tthumb   : '2_s.jpg'\n\t\t}\n\t}\n], {\n\tloop : false\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/wEVbdY?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            It is also possible to pass only one object. Example of opening inline content:\n          </p>\n\n          <pre><code>$.fancybox.open({\n\tsrc  : '#hidden-content',\n\ttype : 'inline',\n\topts : {\n\t\tafterShow : function( instance, current ) {\n\t\t\tconsole.info( 'done!' );\n\t\t}\n\t}\n});\n</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/mGNYwX?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            If you wish to quickly display some html content (for example, a message), then you can use a simpler\n            syntax. Do not forget to use a wrapping element around your content.\n          </p>\n\n          <pre><code>$.fancybox.open('&lt;div class=&quot;message&quot;&gt;&lt;h2&gt;Hello!&lt;/h2&gt;&lt;p&gt;You are awesome!&lt;/p&gt;&lt;/div&gt;');</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/qMeGVr\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Group items can be collection of jQuery objects, too.\n            This can be used, for example, to display group of inline elements:\n          </p>\n\n          <pre><code>$('#test').on('click', function() {\n  $.fancybox.open( $('.inline-gallery'), {\n    touch: false\n  });\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/GXVayG?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n\n          <h3 id=\"instance_methods\">Instance methods</h3>\n\n          <p>\n            In order to use these methods, you need an instance of the plugin's object.\n            There are 3 common ways to get the reference.\n          </p>\n\n          <p>\n            1) Using API method to get currently active instance:\n          </p>\n\n          <pre><code>var instance = $.fancybox.getInstance();</code></pre>\n\n          <p>\n            2) While starting fancybox programmatically:\n          </p>\n          <pre><code>var instance = $.fancybox.open(\n\t// Your content and options\n);</code></pre>\n\n          <p>\n            3) From within the callback - first argument is always a reference to current instance:\n          </p>\n\n          <pre><code>$('[data-fancybox=\"gallery\"]').fancybox({\n\tafterShow : function( instance, current ) {\n\t\tconsole.info( instance );\n\t}\n});</code></pre>\n          <p>\n            Once you have a reference to fancybox instance the following methods are available:\n          </p>\n\n          <pre><code>// Go to next gallery item\ninstance.next( duration );\n\n// Go to previous gallery item\ninstance.previous( duration );\n\n// Switch to selected gallery item\ninstance.jumpTo( index, duration );\n\n// Check if current image dimensions are smaller than actual\ninstance.isScaledDown();\n\n// Scale image to the actual size of the image\ninstance.scaleToActual( x, y, duration );\n\n// Check if image dimensions exceed parent element\ninstance.canPan();\n\n// Scale image to fit inside parent element\ninstance.scaleToFit( duration );\n\n// Update position and content of all slides\ninstance.update();\n\n// Update slide position and scale content to fit\ninstance.updateSlide( slide );\n\n// Update infobar values, navigation button states and reveal caption\ninstance.updateControls( force );\n\n// Load custom content into the slide\ninstance.setContent( slide, content );\n\n// Show loading icon inside the slide\ninstance.showLoading( slide );\n\n// Remove loading icon from the slide\ninstance.hideLoading( slide );\n\n// Try to find and focus on the first focusable element\ninstance.focus();\n\n// Activates current instance, brings it to the front\ninstance.activate();\n\n// Close instance\ninstance.close();\n</code></pre>\n\n          <p>\n            You can also do something like this:\n          </p>\n\n          <pre><code>$.fancybox.getInstance().jumpTo(1);</code></pre>\n\n          <p>\n            or simply:\n          </p>\n\n          <pre><code>$.fancybox.getInstance('jumpTo', 1);</code></pre>\n\n          <h3 id=\"events\">Events</h3>\n\n          <p>\n            fancybox fires several events:\n          </p>\n\n          <pre><code>beforeLoad   : Before the content of a slide is being loaded\nafterLoad    : When the content of a slide is done loading\n\nbeforeShow   : Before open animation starts\nafterShow    : When content is done loading and animating\n\nbeforeClose  : Before the instance attempts to close. Return false to cancel the close.\nafterClose   : After instance has been closed\n\nonInit       : When instance has been initialized\nonActivate   : When instance is brought to front\nonDeactivate : When other instance has been activated</code></pre>\n\n          <p>\n            Event callbacks can be set as function properties of the options object passed to fancybox initialization\n            function:\n          </p>\n\n          <pre><code>&lt;script type=&quot;text/javascript&quot;&gt;\n\t$(&quot;[data-fancybox]&quot;).fancybox({\n\t\tafterShow: function( instance, slide ) {\n\n\t\t\t// Tip: Each event passes useful information within the event object:\n\n\t\t\t// Object containing references to interface elements\n\t\t\t// (background, buttons, caption, etc)\n\t\t\t// console.info( instance.$refs );\n\n\t\t\t// Current slide options\n\t\t\t// console.info( slide.opts );\n\n\t\t\t// Clicked element\n\t\t\t// console.info( slide.opts.$orig );\n\n\t\t\t// Reference to DOM element of the slide\n\t\t\t// console.info( slide.$slide );\n\n\t\t}\n\t});\n&lt;/script&gt;</code></pre>\n\n          <p>\n            Each callback receives two parameters - current fancybox instance and current gallery object, if exists.\n          </p>\n\n          <p>\n            It is also possible to attach event handler for all instances. To prevent interfering with other scripts,\n            these events have been namespaced to <code>.fb</code>.\n            These handlers receive 3 parameters - event, current fancybox instance and current gallery object.\n          </p>\n          <p>\n            Here is an example of binding to the\n            <code>afterShow</code> event:\n          </p>\n\n          <pre><code>$(document).on('afterShow.fb', function( e, instance, slide ) {\n\t// Your code goes here\n});</code></pre>\n\n\n          <p>\n            If you wish to prevent closing of the modal (for example, after form submit), you can use\n            <code>beforeClose</code> callback. Simply return\n            <code>false</code>:\n          </p>\n\n          <pre><code>beforeClose : function( instance, current, e ) {\n\tif ( $('#my-field').val() == '' ) {\n\t\treturn false;\n\t}\n}\n</code></pre>\n\n        </section>\n        <section id=\"modules\">\n          <h2>Modules</h2>\n\n          <p>\n            fancybox code is split into several files (modules) that extend core functionality. You can build your own\n            fancybox version by excluding unnecessary modules, if needed.\n            Each one has their own <code>js</code> and/or <code>css</code> files.\n          </p>\n\n          <p>\n            Some modules can be customized and controlled programmatically. List of all possible options:\n          </p>\n\n          <pre><code>fullScreen: {\n  autoStart: false\n},\n\ntouch : {\n  vertical : true,  // Allow to drag content vertically\n  momentum : true   // Continuous movement when panning\n},\n\n// Hash value when initializing manually,\n// set `false` to disable hash change\nhash : null,\n\n// Customize or add new media types\n// Example:\n/*\nmedia : {\n  youtube : {\n    params : {\n      autoplay : 0\n    }\n  }\n}\n*/\nmedia : {},\n\nslideShow : {\n  autoStart : false,\n  speed     : 4000\n},\n\nthumbs : {\n  autoStart   : false,                  // Display thumbnails on opening\n  hideOnClose : true,                   // Hide thumbnail grid when closing animation starts\n  parentEl    : '.fancybox-container',  // Container is injected into this element\n  axis        : 'y'                     // Vertical (y) or horizontal (x) scrolling\n},\n\nshare: {\n  url: function(instance, item) {\n    return (\n      (!instance.currentHash &amp;&amp; !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\n    );\n  },\n  tpl:\n    '&lt;div class=&quot;fancybox-share&quot;&gt;' +\n    &quot;&lt;h1&gt;{{SHARE}}&lt;/h1&gt;&quot; +\n    &quot;&lt;p&gt;&quot; +\n    '&lt;a class=&quot;fancybox-share__button fancybox-share__button--fb&quot; href=&quot;https://www.facebook.com/sharer/sharer.php?u={{url}}&quot;&gt;' +\n    '&lt;svg viewBox=&quot;0 0 512 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196&quot; /&gt;&lt;/svg&gt;' +\n    &quot;&lt;span&gt;Facebook&lt;/span&gt;&quot; +\n    &quot;&lt;/a&gt;&quot; +\n    '&lt;a class=&quot;fancybox-share__button fancybox-share__button--tw&quot; href=&quot;https://twitter.com/intent/tweet?url={{url}}&amp;text={{descr}}&quot;&gt;' +\n    '&lt;svg viewBox=&quot;0 0 512 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z&quot; /&gt;&lt;/svg&gt;' +\n    &quot;&lt;span&gt;Twitter&lt;/span&gt;&quot; +\n    &quot;&lt;/a&gt;&quot; +\n    '&lt;a class=&quot;fancybox-share__button fancybox-share__button--pt&quot; href=&quot;https://www.pinterest.com/pin/create/button/?url={{url}}&amp;description={{descr}}&amp;media={{media}}&quot;&gt;' +\n    '&lt;svg viewBox=&quot;0 0 512 512&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;path d=&quot;m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z&quot; fill=&quot;#fff&quot;/&gt;&lt;/svg&gt;' +\n    &quot;&lt;span&gt;Pinterest&lt;/span&gt;&quot; +\n    &quot;&lt;/a&gt;&quot; +\n    &quot;&lt;/p&gt;&quot; +\n    '&lt;p&gt;&lt;input class=&quot;fancybox-share__input&quot; type=&quot;text&quot; value=&quot;{{url_raw}}&quot; /&gt;&lt;/p&gt;' +\n    &quot;&lt;/div&gt;&quot;\n}\n\n</code></pre>\n\n          <h5 class=\"mt-5\">Couple of examples</h5>\n\n          <p>\n            Show thumbnails on start:\n          </p>\n\n          <pre><code>$('[data-fancybox=\"images\"]').fancybox({\n\tthumbs : {\n\t\tautoStart : true\n\t}\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/xavNjq?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Customize share url if displaying hidden video element:\n          </p>\n\n          <pre><code>$('[data-fancybox=&quot;test-share-url&quot;]').fancybox({\n    buttons : ['share', 'close'],\n    hash : false,\n    share : {\n        url : function( instance, item ) {\n            if (item.type === 'inline' &amp;&amp; item.contentType === 'video') {\n                return item.$content.find('source:first').attr('src');\n            }\n\n            return item.src;\n        }\n    }\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/MqNdqw?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            If you would inspect fancybox instance object, you would find that same keys ar captialized - these are\n            references for each module object.\n            Also, you would notice that fancybox uses common naming convention to prefix jQuery objects with <code>$</code>.\n          </p>\n\n          <p>\n            This is how you, for example, can access thumbnail grid element:\n          </p>\n\n          <pre><code>$.fancybox.getInstance().Thumbs.$grid</code></pre>\n\n          <p>\n            This example shows how to call method that toggles thumbnails:\n          </p>\n\n          <pre><code>$.fancybox.getInstance().Thumbs.toggle();</code></pre>\n\n          <p>\n            List of available methods:\n          </p>\n\n          <pre><code>Thumbs.focus()\nThumbs.update();\nThumbs.hide();\nThumbs.show();\nThumbs.toggle();\n\nFullScreen.request( elem );\nFullScreen.exit();\nFullScreen.toggle( elem );\nFullScreen.isFullscreen();\nFullScreen.enabled();\n\nSlideShow.start();\nSlideShow.stop();\nSlideShow.toggle();\n</code></pre>\n\n          <p>\n            If you wish to disable hash module, use this snippet (after including JS file):\n          </p>\n\n          <pre><code>$.fancybox.defaults.hash = false;</code></pre>\n\n        </section>\n\n        <section id=\"faq\">\n\n          <h2>FAQ</h2>\n\n          <h3 id=\"faq-1\">\n            <a href=\"#faq-1\">#1</a> Opening/closing causes fixed element to jump</h3>\n\n          <p>\n            Simply add <code>compensate-for-scrollbar</code> CSS class to your fixed positioned elements.\n            Example of using Bootstrap navbar component:\n          </p>\n\n          <pre><code>&lt;nav class=&quot;navbar navbar-inverse navbar-fixed-top compensate-for-scrollbar&quot;&gt;\n\t&lt;div class=&quot;container&quot;&gt;\n\t\t..\n\t&lt;/div&gt;\n&lt;/nav&gt;</code></pre>\n\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/MqNdPa?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            The script measures width of the scrollbar and creates\n            <code>compensate-for-scrollbar</code> CSS class that uses this value for\n            <code>margin-right</code> property. Therefore, if your element has\n            <code>width:100%</code>, you should positon it using\n            <code>left</code> and\n            <code>right</code> properties instead. Example:\n          </p>\n\n          <pre><code>.navbar {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n}</code></pre>\n\n          <h3 id=\"faq-2\">\n            <a href=\"#faq-2\">#2</a> How to customize caption</h3>\n\n          <p>\n            You can use\n            <code>caption</code> option that accepts a function and is called for each group element.\n            Example of appending image download link:\n          </p>\n\n          <pre><code>$( '[data-fancybox=&quot;images&quot;]' ).fancybox({\n    caption : function( instance, item ) {\n        var caption = $(this).data('caption') || '';\n\n        if ( item.type === 'image' ) {\n            caption = (caption.length ? caption + '&lt;br /&gt;' : '') + '&lt;a href=&quot;' + item.src + '&quot;&gt;Download image&lt;/a&gt;' ;\n        }\n\n        return caption;\n    }\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/OoKYrd?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Add current image index and image count (the total number of images in the gallery) right in the caption:\n          </p>\n\n          <pre><code>$( '[data-fancybox=&quot;images&quot;]' ).fancybox({\n    infobar : false,\n    caption : function( instance, item ) {\n        var caption = $(this).data('caption') || '';\n\n        return ( caption.length ? caption + '&lt;br /&gt;' : '' ) + 'Image &lt;span data-fancybox-index&gt;&lt;/span&gt; of &lt;span data-fancybox-count&gt;&lt;/span&gt;';\n    }\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/EeqzMW?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <p>\n            Inside\n            <code>caption</code> method,\n            <code>this</code> refers to the clicked element. Example of using different source for caption:\n          </p>\n\n          <pre><code>$( '[data-fancybox]' ).fancybox({\n\tcaption : function( instance, item ) {\n\t\treturn $(this).find('figcaption').html();\n\t}\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/aaerxw\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"faq-3\">\n            <a href=\"#faq-3\">#3</a> How to create custom button in the toolbar</h3>\n\n          <p>\n            Example of creating reusable button:\n          </p>\n\n          <pre><code>// Create template for the button\n$.fancybox.defaults.btnTpl.fb = '&lt;button data-fancybox-fb class=&quot;fancybox-button fancybox-button--fb&quot; title=&quot;Facebook&quot;&gt;' +\n    '&lt;svg viewBox=&quot;0 0 24 24&quot;&gt;' +\n        '&lt;path d=&quot;M22.676 0H1.324C.594 0 0 .593 0 1.324v21.352C0 23.408.593 24 1.324 24h11.494v-9.294h-3.13v-3.62h3.13V8.41c0-3.1 1.894-4.785 4.66-4.785 1.324 0 2.463.097 2.795.14v3.24h-1.92c-1.5 0-1.793.722-1.793 1.772v2.31h3.584l-.465 3.63h-3.12V24h6.115c.733 0 1.325-.592 1.325-1.324V1.324C24 .594 23.408 0 22.676 0&quot;/&gt;' +\n    '&lt;/svg&gt;' +\n'&lt;/button&gt;';\n\n// Make button clickable using event delegation\n$('body').on('click', '[data-fancybox-fb]', function() {\n    window.open(&quot;https://www.facebook.com/sharer/sharer.php?u=&quot;+encodeURIComponent(window.location.href)+&quot;&amp;t=&quot;+encodeURIComponent(document.title), '','left=0,top=0,width=600,height=300,menubar=no,toolbar=no,resizable=yes,scrollbars=yes');\n});\n\n// Customize buttons\n$( '[data-fancybox=&quot;images&quot;]' ).fancybox({\n    buttons : [\n        'fb',\n        'close'\n    ]\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/NLQVZQ\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"faq-4\">\n            <a href=\"#faq-4\">#4</a> How to reposition thumbnail grid\n          </h3>\n\n          <p>\n            There is currenty no JS option to change thumbnail grid position. But fancybox is designed so that you can\n            use CSS to change position or dimension for each block (e.g., content area, caption or thumbnail grid).\n            This gives you freedom to completely change the look and feel of the modal window, if needed.\n\n            <a href=\"https://codepen.io/fancyapps/pen/PdMvML\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"faq-5\">\n            <a href=\"#faq-5\">#5</a> How to disable touch gestures/swiping\n          </h3>\n\n          <p>\n            When you want to make your content selectable or clickable, you have two options:\n          </p>\n\n          <ul>\n            <li>\n              disable touch gestures completely by setting\n              <code>touch:false</code>\n            </li>\n            <li>\n              add\n              <code>data-selectable=\"true\"</code> attribute to your html element\n            </li>\n          </ul>\n\n          <p>\n            <a href=\"https://codepen.io/fancyapps/pen/NLQZWK?editors=1000\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n          <h3 id=\"faq-6\">\n            <a href=\"#faq-6\">#6</a> Slider/carousel add's cloned duplicate items\n          </h3>\n\n          <p>\n            If you are combining fancybox with slider/carousel script and that script clones items to enable infinite\n            navigation, then duplicated items will appear in the gallery.\n            To avoid that -\n            1) initialise fancybox on all items except cloned;\n            2) add custom click event on cloned items and trigger click event on corresponding \"real\" item. Here is an\n            example using Slick slider:\n          </p>\n          <pre><code>// Init fancybox\n// =============\nvar selector = '.slick-slide:not(.slick-cloned)';\n\n// Skip cloned elements\n$().fancybox({\n  selector : selector,\n  backFocus : false\n});\n\n// Attach custom click event on cloned elements, \n// trigger click event on corresponding link\n$(document).on('click', '.slick-cloned', function(e) {\n  $(selector)\n    .eq( ( $(e.currentTarget).attr(\"data-slick-index\") || 0) % $(selector).length )\n    .trigger(\"click.fb-start\", {\n      $trigger: $(this)\n    });\n\n  return false;\n});\n\n// Init Slick\n// ==========\n$(\".main-slider\").slick({\n  slidesToShow   : 3,\n  infinite : true,\n  dots     : false,\n  arrows   : false\n});</code></pre>\n          <p class=\"demo\">\n            <a href=\"https://codepen.io/fancyapps/pen/NLQZBr?editors=1010\" target=\"_blank\">View demo on CodePen</a>\n          </p>\n\n\n        </section>\n\n        <section>\n          <p class=\"text-right mt-5\">\n            <a href=\"#introduction\">Back to Top</a>\n          </p>\n        </section>\n\n      </div>\n    </div>\n  </div>\n\n  <script>\n\n    $(document).ready(function () {\n\n      /* Sticky nvigation */\n\n      var sticky = {\n        $sticky: $('.sticky'),\n        offsets: [],\n        targets: [],\n        stickyTop: null,\n\n        set: function () {\n          var self = this;\n\n          var windowTop = Math.floor($(window).scrollTop());\n\n          self.offsets = [];\n          self.targets = [];\n\n          // Get current top position of sticky element\n          self.stickyTop = self.$sticky.css('position', 'relative').offset().top;\n\n          // Cache all targets and their top positions\n          self.$sticky.find('a').map(function () {\n            var $el = $(this),\n              href = $el.data('target') || $el.attr('href'),\n              $href = /^#./.test(href) && $(href);\n\n            return $href && $href.length && $href.is(':visible') ? [[$href[0].getBoundingClientRect().top + windowTop, href]] : null;\n          })\n            .sort(function (a, b) { return a[0] - b[0] })\n            .each(function () {\n              self.offsets.push(this[0]);\n              self.targets.push(this[1]);\n            });\n        },\n\n        update: function () {\n          var self = this;\n\n          var windowTop = Math.floor($(window).scrollTop());\n          var $stickyLinks = self.$sticky.find('a').removeClass('active');\n          var stickyPosition = 'fixed';\n          var currentIndex = 0;\n\n          // Toggle fixed position depending on visibility\n          if ($(window).width() < 800 || $(window).height() < 500 || self.stickyTop > windowTop) {\n            stickyPosition = 'relative';\n\n          } else {\n\n            for (var i = self.offsets.length; i--;) {\n              if (windowTop >= self.offsets[i] - 2 && (self.offsets[i + 1] === undefined || windowTop <= self.offsets[i + 1] + 2)) {\n                currentIndex = i;\n\n                break;\n              }\n            }\n\n          }\n\n          self.$sticky.css('position', stickyPosition).width($('#leftCol').width());\n\n          $stickyLinks.eq(currentIndex).addClass('active');\n        },\n\n        init: function () {\n          var self = this;\n\n          $(window).on('resize', function () {\n            self.set();\n\n            self.update();\n          });\n\n          $(window).on('scroll', function () {\n            self.update();\n          });\n\n          $(window).trigger('resize');\n        }\n      }\n\n      sticky.init();\n    });\n  </script>\n</body>\n\n</html>\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/gulpfile.js",
    "content": "var gulp = require(\"gulp\"),\n  concat = require(\"gulp-concat\"),\n  uglify = require(\"gulp-uglify\"),\n  rename = require(\"gulp-rename\"),\n  cssnano = require(\"gulp-cssnano\"),\n  autoprefixer = require(\"gulp-autoprefixer\"),\n  header = require(\"gulp-header\"),\n  replace = require(\"gulp-replace\");\n\nvar pkg = require(\"./package.json\");\nvar banner = [\n  \"// ==================================================\",\n  \"// fancyBox v${pkg.version}\",\n  \"//\",\n  \"// Licensed GPLv3 for open source use\",\n  \"// or fancyBox Commercial License for commercial use\",\n  \"//\",\n  \"// http://fancyapps.com/fancybox/\",\n  \"// Copyright ${new Date().getFullYear()} fancyApps\",\n  \"//\",\n  \"// ==================================================\",\n  \"\"\n].join(\"\\n\");\n\n// Concatenate & Minify JS\n\ngulp.task(\"scripts\", function() {\n  return gulp\n    .src([\n      \"src/js/core.js\",\n      \"src/js/media.js\",\n      \"src/js/guestures.js\",\n      \"src/js/slideshow.js\",\n      \"src/js/fullscreen.js\",\n      \"src/js/thumbs.js\",\n      \"src/js/hash.js\",\n      \"src/js/wheel.js\"\n    ])\n    .pipe(concat(\"jquery.fancybox.js\"))\n    .pipe(replace(/({fancybox-version})/g, pkg.version))\n    .pipe(header(banner, {pkg: pkg}))\n    .pipe(gulp.dest(\"dist\"))\n    .pipe(rename({suffix: \".min\"}))\n    .pipe(uglify())\n    .pipe(header(banner, {pkg: pkg}))\n    .pipe(gulp.dest(\"dist\"));\n});\n\n// Compile CSS\n\ngulp.task(\"css\", function() {\n  return gulp\n    .src(\"src/css/*.css\") // Gets all files src/css\n    .pipe(\n      autoprefixer({\n        browsers: [\"last 5 versions\"],\n        cascade: false\n      })\n    )\n    .pipe(concat(\"jquery.fancybox.css\"))\n    .pipe(gulp.dest(\"dist\"))\n    .pipe(rename({suffix: \".min\"}))\n    .pipe(cssnano({zindex: false}))\n    .pipe(gulp.dest(\"dist\"));\n});\n\n// Default Task\ngulp.task(\"default\", [\"scripts\", \"css\"]);\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/package.json",
    "content": "{\n  \"name\": \"@fancyapps/fancybox\",\n  \"description\": \"Touch enabled, responsive and fully customizable jQuery lightbox script\",\n  \"version\": \"3.5.7\",\n  \"homepage\": \"https://fancyapps.com/fancybox/3/\",\n  \"main\": \"dist/jquery.fancybox.js\",\n  \"style\": \"dist/jquery.fancybox.css\",\n  \"author\": \"fancyApps\",\n  \"license\": \"GPL-3.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/fancyapps/fancybox.git\"\n  },\n  \"peerDependencies\": {\n    \"jquery\": \">=1.9.0\"\n  },\n  \"devDependencies\": {\n    \"del\": \"^2.2.2\",\n    \"gulp\": \"^3.9.1\",\n    \"gulp-autoprefixer\": \"^3.1.1\",\n    \"gulp-concat\": \"^2.6.1\",\n    \"gulp-cssnano\": \"^2.1.2\",\n    \"gulp-header\": \"^1.8.8\",\n    \"gulp-jshint\": \"^2.0.4\",\n    \"gulp-livereload\": \"^3.8.1\",\n    \"gulp-notify\": \"^2.2.0\",\n    \"gulp-rename\": \"^1.2.2\",\n    \"gulp-replace\": \"^0.5.4\",\n    \"gulp-uglify\": \"^2.0.0\",\n    \"gulp-util\": \"^3.0.8\",\n    \"jshint\": \"^2.9.4\"\n  },\n  \"keywords\": [\n    \"touch\",\n    \"responsive\",\n    \"lightbox\",\n    \"fancybox\",\n    \"gallery\",\n    \"jQuery\",\n    \"plugin\"\n  ],\n  \"bugs\": {\n    \"url\": \"https://github.com/fancyapps/fancybox/issues\"\n  },\n  \"directories\": {\n    \"doc\": \"docs\"\n  },\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  }\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/css/core.css",
    "content": "body.compensate-for-scrollbar {\n    overflow: hidden;\n}\n\n.fancybox-active {\n    height: auto;\n}\n\n.fancybox-is-hidden {\n    left: -9999px;\n    margin: 0;\n    position: absolute !important;\n    top: -9999px;\n    visibility: hidden;\n}\n\n.fancybox-container {\n    -webkit-backface-visibility: hidden;\n    height: 100%;\n    left: 0;\n    outline: none;\n    position: fixed;\n    -webkit-tap-highlight-color: transparent;\n    top: 0;\n    touch-action: manipulation;\n    transform: translateZ(0);\n    width: 100%;\n    z-index: 99992;\n}\n\n.fancybox-container * {\n    box-sizing: border-box;\n}\n\n.fancybox-outer,\n.fancybox-inner,\n.fancybox-bg,\n.fancybox-stage {\n    bottom: 0;\n    left: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n}\n\n.fancybox-outer {\n    -webkit-overflow-scrolling: touch;\n    overflow-y: auto;\n}\n\n.fancybox-bg {\n    background: rgb(30, 30, 30);\n    opacity: 0;\n    transition-duration: inherit;\n    transition-property: opacity;\n    transition-timing-function: cubic-bezier(.47, 0, .74, .71);\n}\n\n.fancybox-is-open .fancybox-bg {\n    opacity: .9;\n    transition-timing-function: cubic-bezier(.22, .61, .36, 1);\n}\n\n.fancybox-infobar,\n.fancybox-toolbar,\n.fancybox-caption,\n.fancybox-navigation .fancybox-button {\n    direction: ltr;\n    opacity: 0;\n    position: absolute;\n    transition: opacity .25s ease, visibility 0s ease .25s;\n    visibility: hidden;\n    z-index: 99997;\n}\n\n.fancybox-show-infobar .fancybox-infobar,\n.fancybox-show-toolbar .fancybox-toolbar,\n.fancybox-show-caption .fancybox-caption,\n.fancybox-show-nav .fancybox-navigation .fancybox-button {\n    opacity: 1;\n    transition: opacity .25s ease 0s, visibility 0s ease 0s;\n    visibility: visible;\n}\n\n.fancybox-infobar {\n    color: #ccc;\n    font-size: 13px;\n    -webkit-font-smoothing: subpixel-antialiased;\n    height: 44px;\n    left: 0;\n    line-height: 44px;\n    min-width: 44px;\n    mix-blend-mode: difference;\n    padding: 0 10px;\n    pointer-events: none;\n    top: 0;\n    -webkit-touch-callout: none;\n    user-select: none;\n}\n\n.fancybox-toolbar {\n    right: 0;\n    top: 0;\n}\n\n.fancybox-stage {\n    direction: ltr;\n    overflow: visible;\n    transform: translateZ(0);\n    z-index: 99994;\n}\n\n.fancybox-is-open .fancybox-stage {\n    overflow: hidden;\n}\n\n.fancybox-slide {\n    -webkit-backface-visibility: hidden;\n    /* Using without prefix would break IE11 */\n    display: none;\n    height: 100%;\n    left: 0;\n    outline: none;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding: 44px;\n    position: absolute;\n    text-align: center;\n    top: 0;\n    transition-property: transform, opacity;\n    white-space: normal;\n    width: 100%;\n    z-index: 99994;\n}\n\n.fancybox-slide::before {\n    content: '';\n    display: inline-block;\n    font-size: 0;\n    height: 100%;\n    vertical-align: middle;\n    width: 0;\n}\n\n.fancybox-is-sliding .fancybox-slide,\n.fancybox-slide--previous,\n.fancybox-slide--current,\n.fancybox-slide--next {\n    display: block;\n}\n\n.fancybox-slide--image {\n    overflow: hidden;\n    padding: 44px 0;\n}\n\n.fancybox-slide--image::before {\n    display: none;\n}\n\n.fancybox-slide--html {\n    padding: 6px;\n}\n\n.fancybox-content {\n    background: #fff;\n    display: inline-block;\n    margin: 0;\n    max-width: 100%;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding: 44px;\n    position: relative;\n    text-align: left;\n    vertical-align: middle;\n}\n\n.fancybox-slide--image .fancybox-content {\n    animation-timing-function: cubic-bezier(.5, 0, .14, 1);\n    -webkit-backface-visibility: hidden;\n    background: transparent;\n    background-repeat: no-repeat;\n    background-size: 100% 100%;\n    left: 0;\n    max-width: none;\n    overflow: visible;\n    padding: 0;\n    position: absolute;\n    top: 0;\n    transform-origin: top left;\n    transition-property: transform, opacity;\n    user-select: none;\n    z-index: 99995;\n}\n\n.fancybox-can-zoomOut .fancybox-content {\n    cursor: zoom-out;\n}\n\n.fancybox-can-zoomIn .fancybox-content {\n    cursor: zoom-in;\n}\n\n.fancybox-can-swipe .fancybox-content,\n.fancybox-can-pan .fancybox-content {\n    cursor: grab;\n}\n\n.fancybox-is-grabbing .fancybox-content {\n    cursor: grabbing;\n}\n\n.fancybox-container [data-selectable='true'] {\n    cursor: text;\n}\n\n.fancybox-image,\n.fancybox-spaceball {\n    background: transparent;\n    border: 0;\n    height: 100%;\n    left: 0;\n    margin: 0;\n    max-height: none;\n    max-width: none;\n    padding: 0;\n    position: absolute;\n    top: 0;\n    user-select: none;\n    width: 100%;\n}\n\n.fancybox-spaceball {\n    z-index: 1;\n}\n\n.fancybox-slide--video .fancybox-content,\n.fancybox-slide--map .fancybox-content,\n.fancybox-slide--pdf .fancybox-content,\n.fancybox-slide--iframe .fancybox-content {\n    height: 100%;\n    overflow: visible;\n    padding: 0;\n    width: 100%;\n}\n\n.fancybox-slide--video .fancybox-content {\n    background: #000;\n}\n\n.fancybox-slide--map .fancybox-content {\n    background: #e5e3df;\n}\n\n.fancybox-slide--iframe .fancybox-content {\n    background: #fff;\n}\n\n.fancybox-video,\n.fancybox-iframe {\n    background: transparent;\n    border: 0;\n    display: block;\n    height: 100%;\n    margin: 0;\n    overflow: hidden;\n    padding: 0;\n    width: 100%;\n}\n\n/* Fix iOS */\n.fancybox-iframe {\n    left: 0;\n    position: absolute;\n    top: 0;\n}\n\n.fancybox-error {\n    background: #fff;\n    cursor: default;\n    max-width: 400px;\n    padding: 40px;\n    width: 100%;\n}\n\n.fancybox-error p {\n    color: #444;\n    font-size: 16px;\n    line-height: 20px;\n    margin: 0;\n    padding: 0;\n}\n\n/* Buttons */\n\n.fancybox-button {\n    background: rgba(30, 30, 30, .6);\n    border: 0;\n    border-radius: 0;\n    box-shadow: none;\n    cursor: pointer;\n    display: inline-block;\n    height: 44px;\n    margin: 0;\n    padding: 10px;\n    position: relative;\n    transition: color .2s;\n    vertical-align: top;\n    visibility: inherit;\n    width: 44px;\n}\n\n.fancybox-button,\n.fancybox-button:visited,\n.fancybox-button:link {\n    color: #ccc;\n}\n\n.fancybox-button:hover {\n    color: #fff;\n}\n\n.fancybox-button:focus {\n    outline: none;\n}\n\n.fancybox-button.fancybox-focus {\n    outline: 1px dotted;\n}\n\n.fancybox-button[disabled],\n.fancybox-button[disabled]:hover {\n    color: #888;\n    cursor: default;\n    outline: none;\n}\n\n/* Fix IE11 */\n.fancybox-button div {\n    height: 100%;\n}\n\n.fancybox-button svg {\n    display: block;\n    height: 100%;\n    overflow: visible;\n    position: relative;\n    width: 100%;\n}\n\n.fancybox-button svg path {\n    fill: currentColor;\n    stroke-width: 0;\n}\n\n.fancybox-button--play svg:nth-child(2),\n.fancybox-button--fsenter svg:nth-child(2) {\n    display: none;\n}\n\n.fancybox-button--pause svg:nth-child(1),\n.fancybox-button--fsexit svg:nth-child(1) {\n    display: none;\n}\n\n.fancybox-progress {\n    background: #ff5268;\n    height: 2px;\n    left: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n    transform: scaleX(0);\n    transform-origin: 0;\n    transition-property: transform;\n    transition-timing-function: linear;\n    z-index: 99998;\n}\n\n/* Close button on the top right corner of html content */\n\n.fancybox-close-small {\n    background: transparent;\n    border: 0;\n    border-radius: 0;\n    color: #ccc;\n    cursor: pointer;\n    opacity: .8;\n    padding: 8px;\n    position: absolute;\n    right: -12px;\n    top: -44px;\n    z-index: 401;\n}\n\n.fancybox-close-small:hover {\n    color: #fff;\n    opacity: 1;\n}\n\n.fancybox-slide--html .fancybox-close-small {\n    color: currentColor;\n    padding: 10px;\n    right: 0;\n    top: 0;\n}\n\n.fancybox-slide--image.fancybox-is-scaling .fancybox-content {\n    overflow: hidden;\n}\n\n.fancybox-is-scaling .fancybox-close-small,\n.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small {\n    display: none;\n}\n\n/* Navigation arrows */\n\n.fancybox-navigation .fancybox-button {\n    background-clip: content-box;\n    height: 100px;\n    opacity: 0;\n    position: absolute;\n    top: calc(50% - 50px);\n    width: 70px;\n}\n\n.fancybox-navigation .fancybox-button div {\n    padding: 7px;\n}\n\n.fancybox-navigation .fancybox-button--arrow_left {\n    left: 0;\n    left: env(safe-area-inset-left);\n    padding: 31px 26px 31px 6px;\n}\n\n.fancybox-navigation .fancybox-button--arrow_right {\n    padding: 31px 6px 31px 26px;\n    right: 0;\n    right: env(safe-area-inset-right);\n}\n\n/* Caption */\n\n.fancybox-caption {\n    background: linear-gradient(to top,\n        rgba(0, 0, 0, .85) 0%,\n        rgba(0, 0, 0, .3) 50%,\n        rgba(0, 0, 0, .15) 65%,\n        rgba(0, 0, 0, .075) 75.5%,\n        rgba(0, 0, 0, .037) 82.85%,\n        rgba(0, 0, 0, .019) 88%,\n        rgba(0, 0, 0, 0) 100%);\n    bottom: 0;\n    color: #eee;\n    font-size: 14px;\n    font-weight: 400;\n    left: 0;\n    line-height: 1.5;\n    padding: 75px 44px 25px 44px;\n    pointer-events: none;\n    right: 0;\n    text-align: center;\n    z-index: 99996;\n}\n\n@supports (padding: max(0px)) {\n    .fancybox-caption {\n        padding: 75px max(44px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(44px, env(safe-area-inset-left));\n    }\n}\n\n.fancybox-caption--separate {\n    margin-top: -50px;\n}\n\n.fancybox-caption__body {\n    max-height: 50vh;\n    overflow: auto;\n    pointer-events: all;\n}\n\n.fancybox-caption a,\n.fancybox-caption a:link,\n.fancybox-caption a:visited {\n    color: #ccc;\n    text-decoration: none;\n}\n\n.fancybox-caption a:hover {\n    color: #fff;\n    text-decoration: underline;\n}\n\n/* Loading indicator */\n\n.fancybox-loading {\n    animation: fancybox-rotate 1s linear infinite;\n    background: transparent;\n    border: 4px solid #888;\n    border-bottom-color: #fff;\n    border-radius: 50%;\n    height: 50px;\n    left: 50%;\n    margin: -25px 0 0 -25px;\n    opacity: .7;\n    padding: 0;\n    position: absolute;\n    top: 50%;\n    width: 50px;\n    z-index: 99999;\n}\n\n@keyframes fancybox-rotate {\n    100% {\n        transform: rotate(360deg);\n    }\n}\n\n/* Transition effects */\n\n.fancybox-animated {\n    transition-timing-function: cubic-bezier(0, 0, .25, 1);\n}\n\n/* transitionEffect: slide */\n\n.fancybox-fx-slide.fancybox-slide--previous {\n    opacity: 0;\n    transform: translate3d(-100%, 0, 0);\n}\n\n.fancybox-fx-slide.fancybox-slide--next {\n    opacity: 0;\n    transform: translate3d(100%, 0, 0);\n}\n\n.fancybox-fx-slide.fancybox-slide--current {\n    opacity: 1;\n    transform: translate3d(0, 0, 0);\n}\n\n/* transitionEffect: fade */\n\n.fancybox-fx-fade.fancybox-slide--previous,\n.fancybox-fx-fade.fancybox-slide--next {\n    opacity: 0;\n    transition-timing-function: cubic-bezier(.19, 1, .22, 1);\n}\n\n.fancybox-fx-fade.fancybox-slide--current {\n    opacity: 1;\n}\n\n/* transitionEffect: zoom-in-out */\n\n.fancybox-fx-zoom-in-out.fancybox-slide--previous {\n    opacity: 0;\n    transform: scale3d(1.5, 1.5, 1.5);\n}\n\n.fancybox-fx-zoom-in-out.fancybox-slide--next {\n    opacity: 0;\n    transform: scale3d(.5, .5, .5);\n}\n\n.fancybox-fx-zoom-in-out.fancybox-slide--current {\n    opacity: 1;\n    transform: scale3d(1, 1, 1);\n}\n\n/* transitionEffect: rotate */\n\n.fancybox-fx-rotate.fancybox-slide--previous {\n    opacity: 0;\n    transform: rotate(-360deg);\n}\n\n.fancybox-fx-rotate.fancybox-slide--next {\n    opacity: 0;\n    transform: rotate(360deg);\n}\n\n.fancybox-fx-rotate.fancybox-slide--current {\n    opacity: 1;\n    transform: rotate(0deg);\n}\n\n/* transitionEffect: circular */\n\n.fancybox-fx-circular.fancybox-slide--previous {\n    opacity: 0;\n    transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0);\n}\n\n.fancybox-fx-circular.fancybox-slide--next {\n    opacity: 0;\n    transform: scale3d(0, 0, 0) translate3d(100%, 0, 0);\n}\n\n.fancybox-fx-circular.fancybox-slide--current {\n    opacity: 1;\n    transform: scale3d(1, 1, 1) translate3d(0, 0, 0);\n}\n\n/* transitionEffect: tube */\n\n.fancybox-fx-tube.fancybox-slide--previous {\n    transform: translate3d(-100%, 0, 0) scale(.1) skew(-10deg);\n}\n\n.fancybox-fx-tube.fancybox-slide--next {\n    transform: translate3d(100%, 0, 0) scale(.1) skew(10deg);\n}\n\n.fancybox-fx-tube.fancybox-slide--current {\n    transform: translate3d(0, 0, 0) scale(1);\n}\n\n/* Styling for Small-Screen Devices */\n@media all and (max-height: 576px) {\n    .fancybox-slide {\n        padding-left: 6px;\n        padding-right: 6px;\n    }\n\n    .fancybox-slide--image {\n        padding: 6px 0;\n    }\n\n    .fancybox-close-small {\n        right: -6px;\n    }\n\n    .fancybox-slide--image .fancybox-close-small {\n        background: #4e4e4e;\n        color: #f2f4f6;\n        height: 36px;\n        opacity: 1;\n        padding: 6px;\n        right: 0;\n        top: 0;\n        width: 36px;\n    }\n\n    .fancybox-caption {\n        padding-left: 12px;\n        padding-right: 12px;\n    }\n\n    @supports (padding: max(0px)) {\n        .fancybox-caption {\n            padding-left: max(12px, env(safe-area-inset-left));\n            padding-right: max(12px, env(safe-area-inset-right));\n        }\n    }\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/css/fullscreen.css",
    "content": "\n/* Fullscreen  */\n\n.fancybox-button--fullscreen::before {\n\twidth: 15px;\n\theight: 11px;\n\tleft: calc(50% - 7px);\n\ttop: calc(50% - 6px);\n\tborder: 2px solid;\n\tbackground: none;\n}\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/css/share.css",
    "content": "/* Share */\n\n.fancybox-share {\n    background: #f4f4f4;\n    border-radius: 3px;\n    max-width: 90%;\n    padding: 30px;\n    text-align: center;\n}\n\n.fancybox-share h1 {\n    color: #222;\n    font-size: 35px;\n    font-weight: 700;\n    margin: 0 0 20px 0;\n}\n\n.fancybox-share p {\n    margin: 0;\n    padding: 0;\n}\n\n.fancybox-share__button {\n    border: 0;\n    border-radius: 3px;\n    display: inline-block;\n    font-size: 14px;\n    font-weight: 700;\n    line-height: 40px;\n    margin: 0 5px 10px 5px;\n    min-width: 130px;\n    padding: 0 15px;\n    text-decoration: none;\n    transition: all .2s;\n    user-select: none;\n    white-space: nowrap;\n}\n\n.fancybox-share__button:visited,\n.fancybox-share__button:link {\n    color: #fff;\n}\n\n.fancybox-share__button:hover {\n    text-decoration: none;\n}\n\n.fancybox-share__button--fb {\n    background: #3b5998;\n}\n\n.fancybox-share__button--fb:hover {\n    background: #344e86;\n}\n\n.fancybox-share__button--pt {\n    background: #bd081d;\n}\n\n.fancybox-share__button--pt:hover {\n    background: #aa0719;\n}\n\n.fancybox-share__button--tw {\n    background: #1da1f2;\n}\n\n.fancybox-share__button--tw:hover {\n    background: #0d95e8;\n}\n\n.fancybox-share__button svg {\n    height: 25px;\n    margin-right: 7px;\n    position: relative;\n    top: -1px;\n    vertical-align: middle;\n    width: 25px;\n}\n\n.fancybox-share__button svg path {\n    fill: #fff;\n}\n\n.fancybox-share__input {\n    background: transparent;\n    border: 0;\n    border-bottom: 1px solid #d7d7d7;\n    border-radius: 0;\n    color: #5d5b5b;\n    font-size: 14px;\n    margin: 10px 0 0 0;\n    outline: none;\n    padding: 10px 15px;\n    width: 100%;\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/css/slideshow.css",
    "content": "/* Slideshow button */\n\n.fancybox-button--play {}\n\n.fancybox-button--play::before,\n.fancybox-button--pause::before {\n\ttop: calc(50% - 6px);\n\tleft: calc(50% - 4px);\n\tbackground: transparent;\n}\n\n.fancybox-button--play::before {\n\twidth: 0;\n\theight: 0;\n\tborder-top: 6px inset transparent;\n\tborder-bottom: 6px inset transparent;\n\tborder-left: 10px solid;\n\tborder-radius: 1px;\n}\n\n.fancybox-button--pause::before {\n\twidth: 7px;\n\theight: 11px;\n\tborder-style: solid;\n\tborder-width: 0 2px 0 2px;\n}\n"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/css/thumbs.css",
    "content": "/* Thumbs */\n\n.fancybox-thumbs {\n    background: #ddd;\n    bottom: 0;\n    display: none;\n    margin: 0;\n    -webkit-overflow-scrolling: touch;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    padding: 2px 2px 4px 2px;\n    position: absolute;\n    right: 0;\n    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n    top: 0;\n    width: 212px;\n    z-index: 99995;\n}\n\n.fancybox-thumbs-x {\n    overflow-x: auto;\n    overflow-y: hidden;\n}\n\n.fancybox-show-thumbs .fancybox-thumbs {\n    display: block;\n}\n\n.fancybox-show-thumbs .fancybox-inner {\n    right: 212px;\n}\n\n.fancybox-thumbs__list {\n    font-size: 0;\n    height: 100%;\n    list-style: none;\n    margin: 0;\n    overflow-x: hidden;\n    overflow-y: auto;\n    padding: 0;\n    position: absolute;\n    position: relative;\n    white-space: nowrap;\n    width: 100%;\n}\n\n.fancybox-thumbs-x .fancybox-thumbs__list {\n    overflow: hidden;\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar {\n    width: 7px;\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track {\n    background: #fff;\n    border-radius: 10px;\n    box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n}\n\n.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb {\n    background: #2a2a2a;\n    border-radius: 10px;\n}\n\n.fancybox-thumbs__list a {\n    backface-visibility: hidden;\n    background-color: rgba(0, 0, 0, .1);\n    background-position: center center;\n    background-repeat: no-repeat;\n    background-size: cover;\n    cursor: pointer;\n    float: left;\n    height: 75px;\n    margin: 2px;\n    max-height: calc(100% - 8px);\n    max-width: calc(50% - 4px);\n    outline: none;\n    overflow: hidden;\n    padding: 0;\n    position: relative;\n    -webkit-tap-highlight-color: transparent;\n    width: 100px;\n}\n\n.fancybox-thumbs__list a::before {\n    border: 6px solid #ff5268;\n    bottom: 0;\n    content: '';\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    right: 0;\n    top: 0;\n    transition: all .2s cubic-bezier(.25, .46, .45, .94);\n    z-index: 99991;\n}\n\n.fancybox-thumbs__list a:focus::before {\n    opacity: .5;\n}\n\n.fancybox-thumbs__list a.fancybox-thumbs-active::before {\n    opacity: 1;\n}\n\n/* Styling for Small-Screen Devices */\n@media all and (max-width: 576px) {\n    .fancybox-thumbs {\n        width: 110px;\n    }\n\n    .fancybox-show-thumbs .fancybox-inner {\n        right: 110px;\n    }\n\n    .fancybox-thumbs__list a {\n        max-width: calc(100% - 10px);\n    }\n}"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/core.js",
    "content": "(function (window, document, $, undefined) {\n  \"use strict\";\n\n  window.console = window.console || {\n    info: function (stuff) {}\n  };\n\n  // If there's no jQuery, fancyBox can't work\n  // =========================================\n\n  if (!$) {\n    return;\n  }\n\n  // Check if fancyBox is already initialized\n  // ========================================\n\n  if ($.fn.fancybox) {\n    console.info(\"fancyBox already initialized\");\n\n    return;\n  }\n\n  // Private default settings\n  // ========================\n\n  var defaults = {\n    // Close existing modals\n    // Set this to false if you do not need to stack multiple instances\n    closeExisting: false,\n\n    // Enable infinite gallery navigation\n    loop: false,\n\n    // Horizontal space between slides\n    gutter: 50,\n\n    // Enable keyboard navigation\n    keyboard: true,\n\n    // Should allow caption to overlap the content\n    preventCaptionOverlap: true,\n\n    // Should display navigation arrows at the screen edges\n    arrows: true,\n\n    // Should display counter at the top left corner\n    infobar: true,\n\n    // Should display close button (using `btnTpl.smallBtn` template) over the content\n    // Can be true, false, \"auto\"\n    // If \"auto\" - will be automatically enabled for \"html\", \"inline\" or \"ajax\" items\n    smallBtn: \"auto\",\n\n    // Should display toolbar (buttons at the top)\n    // Can be true, false, \"auto\"\n    // If \"auto\" - will be automatically hidden if \"smallBtn\" is enabled\n    toolbar: \"auto\",\n\n    // What buttons should appear in the top right corner.\n    // Buttons will be created using templates from `btnTpl` option\n    // and they will be placed into toolbar (class=\"fancybox-toolbar\"` element)\n    buttons: [\n      \"zoom\",\n      //\"share\",\n      \"slideShow\",\n      //\"fullScreen\",\n      //\"download\",\n      \"thumbs\",\n      \"close\"\n    ],\n\n    // Detect \"idle\" time in seconds\n    idleTime: 3,\n\n    // Disable right-click and use simple image protection for images\n    protect: false,\n\n    // Shortcut to make content \"modal\" - disable keyboard navigtion, hide buttons, etc\n    modal: false,\n\n    image: {\n      // Wait for images to load before displaying\n      //   true  - wait for image to load and then display;\n      //   false - display thumbnail and load the full-sized image over top,\n      //           requires predefined image dimensions (`data-width` and `data-height` attributes)\n      preload: false\n    },\n\n    ajax: {\n      // Object containing settings for ajax request\n      settings: {\n        // This helps to indicate that request comes from the modal\n        // Feel free to change naming\n        data: {\n          fancybox: true\n        }\n      }\n    },\n\n    iframe: {\n      // Iframe template\n      tpl: '<iframe id=\"fancybox-frame{rnd}\" name=\"fancybox-frame{rnd}\" class=\"fancybox-iframe\" allowfullscreen=\"allowfullscreen\" allow=\"autoplay; fullscreen\" src=\"\"></iframe>',\n\n      // Preload iframe before displaying it\n      // This allows to calculate iframe content width and height\n      // (note: Due to \"Same Origin Policy\", you can't get cross domain data).\n      preload: true,\n\n      // Custom CSS styling for iframe wrapping element\n      // You can use this to set custom iframe dimensions\n      css: {},\n\n      // Iframe tag attributes\n      attr: {\n        scrolling: \"auto\"\n      }\n    },\n\n    // For HTML5 video only\n    video: {\n      tpl: '<video class=\"fancybox-video\" controls controlsList=\"nodownload\" poster=\"{{poster}}\">' +\n        '<source src=\"{{src}}\" type=\"{{format}}\" />' +\n        'Sorry, your browser doesn\\'t support embedded videos, <a href=\"{{src}}\">download</a> and watch with your favorite video player!' +\n        \"</video>\",\n      format: \"\", // custom video format\n      autoStart: true\n    },\n\n    // Default content type if cannot be detected automatically\n    defaultType: \"image\",\n\n    // Open/close animation type\n    // Possible values:\n    //   false            - disable\n    //   \"zoom\"           - zoom images from/to thumbnail\n    //   \"fade\"\n    //   \"zoom-in-out\"\n    //\n    animationEffect: \"zoom\",\n\n    // Duration in ms for open/close animation\n    animationDuration: 366,\n\n    // Should image change opacity while zooming\n    // If opacity is \"auto\", then opacity will be changed if image and thumbnail have different aspect ratios\n    zoomOpacity: \"auto\",\n\n    // Transition effect between slides\n    //\n    // Possible values:\n    //   false            - disable\n    //   \"fade'\n    //   \"slide'\n    //   \"circular'\n    //   \"tube'\n    //   \"zoom-in-out'\n    //   \"rotate'\n    //\n    transitionEffect: \"fade\",\n\n    // Duration in ms for transition animation\n    transitionDuration: 366,\n\n    // Custom CSS class for slide element\n    slideClass: \"\",\n\n    // Custom CSS class for layout\n    baseClass: \"\",\n\n    // Base template for layout\n    baseTpl: '<div class=\"fancybox-container\" role=\"dialog\" tabindex=\"-1\">' +\n      '<div class=\"fancybox-bg\"></div>' +\n      '<div class=\"fancybox-inner\">' +\n      '<div class=\"fancybox-infobar\"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div>' +\n      '<div class=\"fancybox-toolbar\">{{buttons}}</div>' +\n      '<div class=\"fancybox-navigation\">{{arrows}}</div>' +\n      '<div class=\"fancybox-stage\"></div>' +\n      '<div class=\"fancybox-caption\"><div class=\"fancybox-caption__body\"></div></div>' +\n      \"</div>\" +\n      \"</div>\",\n\n    // Loading indicator template\n    spinnerTpl: '<div class=\"fancybox-loading\"></div>',\n\n    // Error message template\n    errorTpl: '<div class=\"fancybox-error\"><p>{{ERROR}}</p></div>',\n\n    btnTpl: {\n      download: '<a download data-fancybox-download class=\"fancybox-button fancybox-button--download\" title=\"{{DOWNLOAD}}\" href=\"javascript:;\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z\"/></svg>' +\n        \"</a>\",\n\n      zoom: '<button data-fancybox-zoom class=\"fancybox-button fancybox-button--zoom\" title=\"{{ZOOM}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z\"/></svg>' +\n        \"</button>\",\n\n      close: '<button data-fancybox-close class=\"fancybox-button fancybox-button--close\" title=\"{{CLOSE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z\"/></svg>' +\n        \"</button>\",\n\n      // Arrows\n      arrowLeft: '<button data-fancybox-prev class=\"fancybox-button fancybox-button--arrow_left\" title=\"{{PREV}}\">' +\n        '<div><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z\"/></svg></div>' +\n        \"</button>\",\n\n      arrowRight: '<button data-fancybox-next class=\"fancybox-button fancybox-button--arrow_right\" title=\"{{NEXT}}\">' +\n        '<div><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z\"/></svg></div>' +\n        \"</button>\",\n\n      // This small close button will be appended to your html/inline/ajax content by default,\n      // if \"smallBtn\" option is not set to false\n      smallBtn: '<button type=\"button\" data-fancybox-close class=\"fancybox-button fancybox-close-small\" title=\"{{CLOSE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1\" viewBox=\"0 0 24 24\"><path d=\"M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z\"/></svg>' +\n        \"</button>\"\n    },\n\n    // Container is injected into this element\n    parentEl: \"body\",\n\n    // Hide browser vertical scrollbars; use at your own risk\n    hideScrollbar: true,\n\n    // Focus handling\n    // ==============\n\n    // Try to focus on the first focusable element after opening\n    autoFocus: true,\n\n    // Put focus back to active element after closing\n    backFocus: true,\n\n    // Do not let user to focus on element outside modal content\n    trapFocus: true,\n\n    // Module specific options\n    // =======================\n\n    fullScreen: {\n      autoStart: false\n    },\n\n    // Set `touch: false` to disable panning/swiping\n    touch: {\n      vertical: true, // Allow to drag content vertically\n      momentum: true // Continue movement after releasing mouse/touch when panning\n    },\n\n    // Hash value when initializing manually,\n    // set `false` to disable hash change\n    hash: null,\n\n    // Customize or add new media types\n    // Example:\n    /*\n      media : {\n        youtube : {\n          params : {\n            autoplay : 0\n          }\n        }\n      }\n    */\n    media: {},\n\n    slideShow: {\n      autoStart: false,\n      speed: 3000\n    },\n\n    thumbs: {\n      autoStart: false, // Display thumbnails on opening\n      hideOnClose: true, // Hide thumbnail grid when closing animation starts\n      parentEl: \".fancybox-container\", // Container is injected into this element\n      axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n    },\n\n    // Use mousewheel to navigate gallery\n    // If 'auto' - enabled for images only\n    wheel: \"auto\",\n\n    // Callbacks\n    //==========\n\n    // See Documentation/API/Events for more information\n    // Example:\n    /*\n      afterShow: function( instance, current ) {\n        console.info( 'Clicked element:' );\n        console.info( current.opts.$orig );\n      }\n    */\n\n    onInit: $.noop, // When instance has been initialized\n\n    beforeLoad: $.noop, // Before the content of a slide is being loaded\n    afterLoad: $.noop, // When the content of a slide is done loading\n\n    beforeShow: $.noop, // Before open animation starts\n    afterShow: $.noop, // When content is done loading and animating\n\n    beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close.\n    afterClose: $.noop, // After instance has been closed\n\n    onActivate: $.noop, // When instance is brought to front\n    onDeactivate: $.noop, // When other instance has been activated\n\n    // Interaction\n    // ===========\n\n    // Use options below to customize taken action when user clicks or double clicks on the fancyBox area,\n    // each option can be string or method that returns value.\n    //\n    // Possible values:\n    //   \"close\"           - close instance\n    //   \"next\"            - move to next gallery item\n    //   \"nextOrClose\"     - move to next gallery item or close if gallery has only one item\n    //   \"toggleControls\"  - show/hide controls\n    //   \"zoom\"            - zoom image (if loaded)\n    //   false             - do nothing\n\n    // Clicked on the content\n    clickContent: function (current, event) {\n      return current.type === \"image\" ? \"zoom\" : false;\n    },\n\n    // Clicked on the slide\n    clickSlide: \"close\",\n\n    // Clicked on the background (backdrop) element;\n    // if you have not changed the layout, then most likely you need to use `clickSlide` option\n    clickOutside: \"close\",\n\n    // Same as previous two, but for double click\n    dblclickContent: false,\n    dblclickSlide: false,\n    dblclickOutside: false,\n\n    // Custom options when mobile device is detected\n    // =============================================\n\n    mobile: {\n      preventCaptionOverlap: false,\n      idleTime: false,\n      clickContent: function (current, event) {\n        return current.type === \"image\" ? \"toggleControls\" : false;\n      },\n      clickSlide: function (current, event) {\n        return current.type === \"image\" ? \"toggleControls\" : \"close\";\n      },\n      dblclickContent: function (current, event) {\n        return current.type === \"image\" ? \"zoom\" : false;\n      },\n      dblclickSlide: function (current, event) {\n        return current.type === \"image\" ? \"zoom\" : false;\n      }\n    },\n\n    // Internationalization\n    // ====================\n\n    lang: \"en\",\n    i18n: {\n      en: {\n        CLOSE: \"Close\",\n        NEXT: \"Next\",\n        PREV: \"Previous\",\n        ERROR: \"The requested content cannot be loaded. <br/> Please try again later.\",\n        PLAY_START: \"Start slideshow\",\n        PLAY_STOP: \"Pause slideshow\",\n        FULL_SCREEN: \"Full screen\",\n        THUMBS: \"Thumbnails\",\n        DOWNLOAD: \"Download\",\n        SHARE: \"Share\",\n        ZOOM: \"Zoom\"\n      },\n      de: {\n        CLOSE: \"Schlie&szlig;en\",\n        NEXT: \"Weiter\",\n        PREV: \"Zur&uuml;ck\",\n        ERROR: \"Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.\",\n        PLAY_START: \"Diaschau starten\",\n        PLAY_STOP: \"Diaschau beenden\",\n        FULL_SCREEN: \"Vollbild\",\n        THUMBS: \"Vorschaubilder\",\n        DOWNLOAD: \"Herunterladen\",\n        SHARE: \"Teilen\",\n        ZOOM: \"Vergr&ouml;&szlig;ern\"\n      }\n    }\n  };\n\n  // Few useful variables and methods\n  // ================================\n\n  var $W = $(window);\n  var $D = $(document);\n\n  var called = 0;\n\n  // Check if an object is a jQuery object and not a native JavaScript object\n  // ========================================================================\n  var isQuery = function (obj) {\n    return obj && obj.hasOwnProperty && obj instanceof $;\n  };\n\n  // Handle multiple browsers for \"requestAnimationFrame\" and \"cancelAnimationFrame\"\n  // ===============================================================================\n  var requestAFrame = (function () {\n    return (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      // if all else fails, use setTimeout\n      function (callback) {\n        return window.setTimeout(callback, 1000 / 60);\n      }\n    );\n  })();\n\n  var cancelAFrame = (function () {\n    return (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      window.oCancelAnimationFrame ||\n      function (id) {\n        window.clearTimeout(id);\n      }\n    );\n  })();\n\n  // Detect the supported transition-end event property name\n  // =======================================================\n  var transitionEnd = (function () {\n    var el = document.createElement(\"fakeelement\"),\n      t;\n\n    var transitions = {\n      transition: \"transitionend\",\n      OTransition: \"oTransitionEnd\",\n      MozTransition: \"transitionend\",\n      WebkitTransition: \"webkitTransitionEnd\"\n    };\n\n    for (t in transitions) {\n      if (el.style[t] !== undefined) {\n        return transitions[t];\n      }\n    }\n\n    return \"transitionend\";\n  })();\n\n  // Force redraw on an element.\n  // This helps in cases where the browser doesn't redraw an updated element properly\n  // ================================================================================\n  var forceRedraw = function ($el) {\n    return $el && $el.length && $el[0].offsetHeight;\n  };\n\n  // Exclude array (`buttons`) options from deep merging\n  // ===================================================\n  var mergeOpts = function (opts1, opts2) {\n    var rez = $.extend(true, {}, opts1, opts2);\n\n    $.each(opts2, function (key, value) {\n      if ($.isArray(value)) {\n        rez[key] = value;\n      }\n    });\n\n    return rez;\n  };\n\n  // How much of an element is visible in viewport\n  // =============================================\n\n  var inViewport = function (elem) {\n    var elemCenter, rez;\n\n    if (!elem || elem.ownerDocument !== document) {\n      return false;\n    }\n\n    $(\".fancybox-container\").css(\"pointer-events\", \"none\");\n\n    elemCenter = {\n      x: elem.getBoundingClientRect().left + elem.offsetWidth / 2,\n      y: elem.getBoundingClientRect().top + elem.offsetHeight / 2\n    };\n\n    rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem;\n\n    $(\".fancybox-container\").css(\"pointer-events\", \"\");\n\n    return rez;\n  };\n\n  // Class definition\n  // ================\n\n  var FancyBox = function (content, opts, index) {\n    var self = this;\n\n    self.opts = mergeOpts({\n      index: index\n    }, $.fancybox.defaults);\n\n    if ($.isPlainObject(opts)) {\n      self.opts = mergeOpts(self.opts, opts);\n    }\n\n    if ($.fancybox.isMobile) {\n      self.opts = mergeOpts(self.opts, self.opts.mobile);\n    }\n\n    self.id = self.opts.id || ++called;\n\n    self.currIndex = parseInt(self.opts.index, 10) || 0;\n    self.prevIndex = null;\n\n    self.prevPos = null;\n    self.currPos = 0;\n\n    self.firstRun = true;\n\n    // All group items\n    self.group = [];\n\n    // Existing slides (for current, next and previous gallery items)\n    self.slides = {};\n\n    // Create group elements\n    self.addContent(content);\n\n    if (!self.group.length) {\n      return;\n    }\n\n    self.init();\n  };\n\n  $.extend(FancyBox.prototype, {\n    // Create DOM structure\n    // ====================\n\n    init: function () {\n      var self = this,\n        firstItem = self.group[self.currIndex],\n        firstItemOpts = firstItem.opts,\n        $container,\n        buttonStr;\n\n      if (firstItemOpts.closeExisting) {\n        $.fancybox.close(true);\n      }\n\n      // Hide scrollbars\n      // ===============\n\n      $(\"body\").addClass(\"fancybox-active\");\n\n      if (\n        !$.fancybox.getInstance() &&\n        firstItemOpts.hideScrollbar !== false &&\n        !$.fancybox.isMobile &&\n        document.body.scrollHeight > window.innerHeight\n      ) {\n        $(\"head\").append(\n          '<style id=\"fancybox-style-noscroll\" type=\"text/css\">.compensate-for-scrollbar{margin-right:' +\n          (window.innerWidth - document.documentElement.clientWidth) +\n          \"px;}</style>\"\n        );\n\n        $(\"body\").addClass(\"compensate-for-scrollbar\");\n      }\n\n      // Build html markup and set references\n      // ====================================\n\n      // Build html code for buttons and insert into main template\n      buttonStr = \"\";\n\n      $.each(firstItemOpts.buttons, function (index, value) {\n        buttonStr += firstItemOpts.btnTpl[value] || \"\";\n      });\n\n      // Create markup from base template, it will be initially hidden to\n      // avoid unnecessary work like painting while initializing is not complete\n      $container = $(\n          self.translate(\n            self,\n            firstItemOpts.baseTpl\n            .replace(\"{{buttons}}\", buttonStr)\n            .replace(\"{{arrows}}\", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight)\n          )\n        )\n        .attr(\"id\", \"fancybox-container-\" + self.id)\n        .addClass(firstItemOpts.baseClass)\n        .data(\"FancyBox\", self)\n        .appendTo(firstItemOpts.parentEl);\n\n      // Create object holding references to jQuery wrapped nodes\n      self.$refs = {\n        container: $container\n      };\n\n      [\"bg\", \"inner\", \"infobar\", \"toolbar\", \"stage\", \"caption\", \"navigation\"].forEach(function (item) {\n        self.$refs[item] = $container.find(\".fancybox-\" + item);\n      });\n\n      self.trigger(\"onInit\");\n\n      // Enable events, deactive previous instances\n      self.activate();\n\n      // Build slides, load and reveal content\n      self.jumpTo(self.currIndex);\n    },\n\n    // Simple i18n support - replaces object keys found in template\n    // with corresponding values\n    // ============================================================\n\n    translate: function (obj, str) {\n      var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en;\n\n      return str.replace(/\\{\\{(\\w+)\\}\\}/g, function (match, n) {\n        return arr[n] === undefined ? match : arr[n];\n      });\n    },\n\n    // Populate current group with fresh content\n    // Check if each object has valid type and content\n    // ===============================================\n\n    addContent: function (content) {\n      var self = this,\n        items = $.makeArray(content),\n        thumbs;\n\n      $.each(items, function (i, item) {\n        var obj = {},\n          opts = {},\n          $item,\n          type,\n          found,\n          src,\n          srcParts;\n\n        // Step 1 - Make sure we have an object\n        // ====================================\n\n        if ($.isPlainObject(item)) {\n          // We probably have manual usage here, something like\n          // $.fancybox.open( [ { src : \"image.jpg\", type : \"image\" } ] )\n\n          obj = item;\n          opts = item.opts || item;\n        } else if ($.type(item) === \"object\" && $(item).length) {\n          // Here we probably have jQuery collection returned by some selector\n          $item = $(item);\n\n          // Support attributes like `data-options='{\"touch\" : false}'` and `data-touch='false'`\n          opts = $item.data() || {};\n          opts = $.extend(true, {}, opts, opts.options);\n\n          // Here we store clicked element\n          opts.$orig = $item;\n\n          obj.src = self.opts.src || opts.src || $item.attr(\"href\");\n\n          // Assume that simple syntax is used, for example:\n          //   `$.fancybox.open( $(\"#test\"), {} );`\n          if (!obj.type && !obj.src) {\n            obj.type = \"inline\";\n            obj.src = item;\n          }\n        } else {\n          // Assume we have a simple html code, for example:\n          //   $.fancybox.open( '<div><h1>Hi!</h1></div>' );\n          obj = {\n            type: \"html\",\n            src: item + \"\"\n          };\n        }\n\n        // Each gallery object has full collection of options\n        obj.opts = $.extend(true, {}, self.opts, opts);\n\n        // Do not merge buttons array\n        if ($.isArray(opts.buttons)) {\n          obj.opts.buttons = opts.buttons;\n        }\n\n        if ($.fancybox.isMobile && obj.opts.mobile) {\n          obj.opts = mergeOpts(obj.opts, obj.opts.mobile);\n        }\n\n        // Step 2 - Make sure we have content type, if not - try to guess\n        // ==============================================================\n\n        type = obj.type || obj.opts.type;\n        src = obj.src || \"\";\n\n        if (!type && src) {\n          if ((found = src.match(/\\.(mp4|mov|ogv|webm)((\\?|#).*)?$/i))) {\n            type = \"video\";\n\n            if (!obj.opts.video.format) {\n              obj.opts.video.format = \"video/\" + (found[1] === \"ogv\" ? \"ogg\" : found[1]);\n            }\n          } else if (src.match(/(^data:image\\/[a-z0-9+\\/=]*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\\?|#).*)?$)/i)) {\n            type = \"image\";\n          } else if (src.match(/\\.(pdf)((\\?|#).*)?$/i)) {\n            type = \"iframe\";\n            obj = $.extend(true, obj, {\n              contentType: \"pdf\",\n              opts: {\n                iframe: {\n                  preload: false\n                }\n              }\n            });\n          } else if (src.charAt(0) === \"#\") {\n            type = \"inline\";\n          }\n        }\n\n        if (type) {\n          obj.type = type;\n        } else {\n          self.trigger(\"objectNeedsType\", obj);\n        }\n\n        if (!obj.contentType) {\n          obj.contentType = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1 ? \"html\" : obj.type;\n        }\n\n        // Step 3 - Some adjustments\n        // =========================\n\n        obj.index = self.group.length;\n\n        if (obj.opts.smallBtn == \"auto\") {\n          obj.opts.smallBtn = $.inArray(obj.type, [\"html\", \"inline\", \"ajax\"]) > -1;\n        }\n\n        if (obj.opts.toolbar === \"auto\") {\n          obj.opts.toolbar = !obj.opts.smallBtn;\n        }\n\n        // Find thumbnail image, check if exists and if is in the viewport\n        obj.$thumb = obj.opts.$thumb || null;\n\n        if (obj.opts.$trigger && obj.index === self.opts.index) {\n          obj.$thumb = obj.opts.$trigger.find(\"img:first\");\n\n          if (obj.$thumb.length) {\n            obj.opts.$orig = obj.opts.$trigger;\n          }\n        }\n\n        if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) {\n          obj.$thumb = obj.opts.$orig.find(\"img:first\");\n        }\n\n        if (obj.$thumb && !obj.$thumb.length) {\n          obj.$thumb = null;\n        }\n\n        obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null);\n\n        // \"caption\" is a \"special\" option, it can be used to customize caption per gallery item\n        if ($.type(obj.opts.caption) === \"function\") {\n          obj.opts.caption = obj.opts.caption.apply(item, [self, obj]);\n        }\n\n        if ($.type(self.opts.caption) === \"function\") {\n          obj.opts.caption = self.opts.caption.apply(item, [self, obj]);\n        }\n\n        // Make sure we have caption as a string or jQuery object\n        if (!(obj.opts.caption instanceof $)) {\n          obj.opts.caption = obj.opts.caption === undefined ? \"\" : obj.opts.caption + \"\";\n        }\n\n        // Check if url contains \"filter\" used to filter the content\n        // Example: \"ajax.html #something\"\n        if (obj.type === \"ajax\") {\n          srcParts = src.split(/\\s+/, 2);\n\n          if (srcParts.length > 1) {\n            obj.src = srcParts.shift();\n\n            obj.opts.filter = srcParts.shift();\n          }\n        }\n\n        // Hide all buttons and disable interactivity for modal items\n        if (obj.opts.modal) {\n          obj.opts = $.extend(true, obj.opts, {\n            trapFocus: true,\n            // Remove buttons\n            infobar: 0,\n            toolbar: 0,\n\n            smallBtn: 0,\n\n            // Disable keyboard navigation\n            keyboard: 0,\n\n            // Disable some modules\n            slideShow: 0,\n            fullScreen: 0,\n            thumbs: 0,\n            touch: 0,\n\n            // Disable click event handlers\n            clickContent: false,\n            clickSlide: false,\n            clickOutside: false,\n            dblclickContent: false,\n            dblclickSlide: false,\n            dblclickOutside: false\n          });\n        }\n\n        // Step 4 - Add processed object to group\n        // ======================================\n\n        self.group.push(obj);\n      });\n\n      // Update controls if gallery is already opened\n      if (Object.keys(self.slides).length) {\n        self.updateControls();\n\n        // Update thumbnails, if needed\n        thumbs = self.Thumbs;\n\n        if (thumbs && thumbs.isActive) {\n          thumbs.create();\n\n          thumbs.focus();\n        }\n      }\n    },\n\n    // Attach an event handler functions for:\n    //   - navigation buttons\n    //   - browser scrolling, resizing;\n    //   - focusing\n    //   - keyboard\n    //   - detecting inactivity\n    // ======================================\n\n    addEvents: function () {\n      var self = this;\n\n      self.removeEvents();\n\n      // Make navigation elements clickable\n      // ==================================\n\n      self.$refs.container\n        .on(\"click.fb-close\", \"[data-fancybox-close]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.close(e);\n        })\n        .on(\"touchstart.fb-prev click.fb-prev\", \"[data-fancybox-prev]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.previous();\n        })\n        .on(\"touchstart.fb-next click.fb-next\", \"[data-fancybox-next]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          self.next();\n        })\n        .on(\"click.fb\", \"[data-fancybox-zoom]\", function (e) {\n          // Click handler for zoom button\n          self[self.isScaledDown() ? \"scaleToActual\" : \"scaleToFit\"]();\n        });\n\n      // Handle page scrolling and browser resizing\n      // ==========================================\n\n      $W.on(\"orientationchange.fb resize.fb\", function (e) {\n        if (e && e.originalEvent && e.originalEvent.type === \"resize\") {\n          if (self.requestId) {\n            cancelAFrame(self.requestId);\n          }\n\n          self.requestId = requestAFrame(function () {\n            self.update(e);\n          });\n        } else {\n          if (self.current && self.current.type === \"iframe\") {\n            self.$refs.stage.hide();\n          }\n\n          setTimeout(\n            function () {\n              self.$refs.stage.show();\n\n              self.update(e);\n            },\n            $.fancybox.isMobile ? 600 : 250\n          );\n        }\n      });\n\n      $D.on(\"keydown.fb\", function (e) {\n        var instance = $.fancybox ? $.fancybox.getInstance() : null,\n          current = instance.current,\n          keycode = e.keyCode || e.which;\n\n        // Trap keyboard focus inside of the modal\n        // =======================================\n\n        if (keycode == 9) {\n          if (current.opts.trapFocus) {\n            self.focus(e);\n          }\n\n          return;\n        }\n\n        // Enable keyboard navigation\n        // ==========================\n\n        if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is(\"input,textarea,video,audio,select\")) {\n          return;\n        }\n\n        // Backspace and Esc keys\n        if (keycode === 8 || keycode === 27) {\n          e.preventDefault();\n\n          self.close(e);\n\n          return;\n        }\n\n        // Left arrow and Up arrow\n        if (keycode === 37 || keycode === 38) {\n          e.preventDefault();\n\n          self.previous();\n\n          return;\n        }\n\n        // Righ arrow and Down arrow\n        if (keycode === 39 || keycode === 40) {\n          e.preventDefault();\n\n          self.next();\n\n          return;\n        }\n\n        self.trigger(\"afterKeydown\", e, keycode);\n      });\n\n      // Hide controls after some inactivity period\n      if (self.group[self.currIndex].opts.idleTime) {\n        self.idleSecondsCounter = 0;\n\n        $D.on(\n          \"mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle\",\n          function (e) {\n            self.idleSecondsCounter = 0;\n\n            if (self.isIdle) {\n              self.showControls();\n            }\n\n            self.isIdle = false;\n          }\n        );\n\n        self.idleInterval = window.setInterval(function () {\n          self.idleSecondsCounter++;\n\n          if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) {\n            self.isIdle = true;\n            self.idleSecondsCounter = 0;\n\n            self.hideControls();\n          }\n        }, 1000);\n      }\n    },\n\n    // Remove events added by the core\n    // ===============================\n\n    removeEvents: function () {\n      var self = this;\n\n      $W.off(\"orientationchange.fb resize.fb\");\n      $D.off(\"keydown.fb .fb-idle\");\n\n      this.$refs.container.off(\".fb-close .fb-prev .fb-next\");\n\n      if (self.idleInterval) {\n        window.clearInterval(self.idleInterval);\n\n        self.idleInterval = null;\n      }\n    },\n\n    // Change to previous gallery item\n    // ===============================\n\n    previous: function (duration) {\n      return this.jumpTo(this.currPos - 1, duration);\n    },\n\n    // Change to next gallery item\n    // ===========================\n\n    next: function (duration) {\n      return this.jumpTo(this.currPos + 1, duration);\n    },\n\n    // Switch to selected gallery item\n    // ===============================\n\n    jumpTo: function (pos, duration) {\n      var self = this,\n        groupLen = self.group.length,\n        firstRun,\n        isMoved,\n        loop,\n        current,\n        previous,\n        slidePos,\n        stagePos,\n        prop,\n        diff;\n\n      if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) {\n        return;\n      }\n\n      // Should loop?\n      pos = parseInt(pos, 10);\n      loop = self.current ? self.current.opts.loop : self.opts.loop;\n\n      if (!loop && (pos < 0 || pos >= groupLen)) {\n        return false;\n      }\n\n      // Check if opening for the first time; this helps to speed things up\n      firstRun = self.firstRun = !Object.keys(self.slides).length;\n\n      // Create slides\n      previous = self.current;\n\n      self.prevIndex = self.currIndex;\n      self.prevPos = self.currPos;\n\n      current = self.createSlide(pos);\n\n      if (groupLen > 1) {\n        if (loop || current.index < groupLen - 1) {\n          self.createSlide(pos + 1);\n        }\n\n        if (loop || current.index > 0) {\n          self.createSlide(pos - 1);\n        }\n      }\n\n      self.current = current;\n      self.currIndex = current.index;\n      self.currPos = current.pos;\n\n      self.trigger(\"beforeShow\", firstRun);\n\n      self.updateControls();\n\n      // Validate duration length\n      current.forcedDuration = undefined;\n\n      if ($.isNumeric(duration)) {\n        current.forcedDuration = duration;\n      } else {\n        duration = current.opts[firstRun ? \"animationDuration\" : \"transitionDuration\"];\n      }\n\n      duration = parseInt(duration, 10);\n\n      // Check if user has swiped the slides or if still animating\n      isMoved = self.isMoved(current);\n\n      // Make sure current slide is visible\n      current.$slide.addClass(\"fancybox-slide--current\");\n\n      // Fresh start - reveal container, current slide and start loading content\n      if (firstRun) {\n        if (current.opts.animationEffect && duration) {\n          self.$refs.container.css(\"transition-duration\", duration + \"ms\");\n        }\n\n        self.$refs.container.addClass(\"fancybox-is-open\").trigger(\"focus\");\n\n        // Attempt to load content into slide\n        // This will later call `afterLoad` -> `revealContent`\n        self.loadSlide(current);\n\n        self.preload(\"image\");\n\n        return;\n      }\n\n      // Get actual slide/stage positions (before cleaning up)\n      slidePos = $.fancybox.getTranslate(previous.$slide);\n      stagePos = $.fancybox.getTranslate(self.$refs.stage);\n\n      // Clean up all slides\n      $.each(self.slides, function (index, slide) {\n        $.fancybox.stop(slide.$slide, true);\n      });\n\n      if (previous.pos !== current.pos) {\n        previous.isComplete = false;\n      }\n\n      previous.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--current\");\n\n      // If slides are out of place, then animate them to correct position\n      if (isMoved) {\n        // Calculate horizontal swipe distance\n        diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter);\n\n        $.each(self.slides, function (index, slide) {\n          slide.$slide.removeClass(\"fancybox-animated\").removeClass(function (index, className) {\n            return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n          });\n\n          // Make sure that each slide is in equal distance\n          // This is mostly needed for freshly added slides, because they are not yet positioned\n          var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter;\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: 0,\n            left: leftPos - stagePos.left + diff\n          });\n\n          if (slide.pos !== current.pos) {\n            slide.$slide.addClass(\"fancybox-slide--\" + (slide.pos > current.pos ? \"next\" : \"previous\"));\n          }\n\n          // Redraw to make sure that transition will start\n          forceRedraw(slide.$slide);\n\n          // Animate the slide\n          $.fancybox.animate(\n            slide.$slide, {\n              top: 0,\n              left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter\n            },\n            duration,\n            function () {\n              slide.$slide\n                .css({\n                  transform: \"\",\n                  opacity: \"\"\n                })\n                .removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n\n              if (slide.pos === self.currPos) {\n                self.complete();\n              }\n            }\n          );\n        });\n      } else if (duration && current.opts.transitionEffect) {\n        // Set transition effect for previously active slide\n        prop = \"fancybox-animated fancybox-fx-\" + current.opts.transitionEffect;\n\n        previous.$slide.addClass(\"fancybox-slide--\" + (previous.pos > current.pos ? \"next\" : \"previous\"));\n\n        $.fancybox.animate(\n          previous.$slide,\n          prop,\n          duration,\n          function () {\n            previous.$slide.removeClass(prop).removeClass(\"fancybox-slide--next fancybox-slide--previous\");\n          },\n          false\n        );\n      }\n\n      if (current.isLoaded) {\n        self.revealContent(current);\n      } else {\n        self.loadSlide(current);\n      }\n\n      self.preload(\"image\");\n    },\n\n    // Create new \"slide\" element\n    // These are gallery items  that are actually added to DOM\n    // =======================================================\n\n    createSlide: function (pos) {\n      var self = this,\n        $slide,\n        index;\n\n      index = pos % self.group.length;\n      index = index < 0 ? self.group.length + index : index;\n\n      if (!self.slides[pos] && self.group[index]) {\n        $slide = $('<div class=\"fancybox-slide\"></div>').appendTo(self.$refs.stage);\n\n        self.slides[pos] = $.extend(true, {}, self.group[index], {\n          pos: pos,\n          $slide: $slide,\n          isLoaded: false\n        });\n\n        self.updateSlide(self.slides[pos]);\n      }\n\n      return self.slides[pos];\n    },\n\n    // Scale image to the actual size of the image;\n    // x and y values should be relative to the slide\n    // ==============================================\n\n    scaleToActual: function (x, y, duration) {\n      var self = this,\n        current = self.current,\n        $content = current.$content,\n        canvasWidth = $.fancybox.getTranslate(current.$slide).width,\n        canvasHeight = $.fancybox.getTranslate(current.$slide).height,\n        newImgWidth = current.width,\n        newImgHeight = current.height,\n        imgPos,\n        posX,\n        posY,\n        scaleX,\n        scaleY;\n\n      if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n        return;\n      }\n\n      self.isAnimating = true;\n\n      $.fancybox.stop($content);\n\n      x = x === undefined ? canvasWidth * 0.5 : x;\n      y = y === undefined ? canvasHeight * 0.5 : y;\n\n      imgPos = $.fancybox.getTranslate($content);\n\n      imgPos.top -= $.fancybox.getTranslate(current.$slide).top;\n      imgPos.left -= $.fancybox.getTranslate(current.$slide).left;\n\n      scaleX = newImgWidth / imgPos.width;\n      scaleY = newImgHeight / imgPos.height;\n\n      // Get center position for original image\n      posX = canvasWidth * 0.5 - newImgWidth * 0.5;\n      posY = canvasHeight * 0.5 - newImgHeight * 0.5;\n\n      // Make sure image does not move away from edges\n      if (newImgWidth > canvasWidth) {\n        posX = imgPos.left * scaleX - (x * scaleX - x);\n\n        if (posX > 0) {\n          posX = 0;\n        }\n\n        if (posX < canvasWidth - newImgWidth) {\n          posX = canvasWidth - newImgWidth;\n        }\n      }\n\n      if (newImgHeight > canvasHeight) {\n        posY = imgPos.top * scaleY - (y * scaleY - y);\n\n        if (posY > 0) {\n          posY = 0;\n        }\n\n        if (posY < canvasHeight - newImgHeight) {\n          posY = canvasHeight - newImgHeight;\n        }\n      }\n\n      self.updateCursor(newImgWidth, newImgHeight);\n\n      $.fancybox.animate(\n        $content, {\n          top: posY,\n          left: posX,\n          scaleX: scaleX,\n          scaleY: scaleY\n        },\n        duration || 366,\n        function () {\n          self.isAnimating = false;\n        }\n      );\n\n      // Stop slideshow\n      if (self.SlideShow && self.SlideShow.isActive) {\n        self.SlideShow.stop();\n      }\n    },\n\n    // Scale image to fit inside parent element\n    // ========================================\n\n    scaleToFit: function (duration) {\n      var self = this,\n        current = self.current,\n        $content = current.$content,\n        end;\n\n      if (self.isAnimating || self.isMoved() || !$content || !(current.type == \"image\" && current.isLoaded && !current.hasError)) {\n        return;\n      }\n\n      self.isAnimating = true;\n\n      $.fancybox.stop($content);\n\n      end = self.getFitPos(current);\n\n      self.updateCursor(end.width, end.height);\n\n      $.fancybox.animate(\n        $content, {\n          top: end.top,\n          left: end.left,\n          scaleX: end.width / $content.width(),\n          scaleY: end.height / $content.height()\n        },\n        duration || 366,\n        function () {\n          self.isAnimating = false;\n        }\n      );\n    },\n\n    // Calculate image size to fit inside viewport\n    // ===========================================\n\n    getFitPos: function (slide) {\n      var self = this,\n        $content = slide.$content,\n        $slide = slide.$slide,\n        width = slide.width || slide.opts.width,\n        height = slide.height || slide.opts.height,\n        maxWidth,\n        maxHeight,\n        minRatio,\n        aspectRatio,\n        rez = {};\n\n      if (!slide.isLoaded || !$content || !$content.length) {\n        return false;\n      }\n\n      maxWidth = $.fancybox.getTranslate(self.$refs.stage).width;\n      maxHeight = $.fancybox.getTranslate(self.$refs.stage).height;\n\n      maxWidth -=\n        parseFloat($slide.css(\"paddingLeft\")) +\n        parseFloat($slide.css(\"paddingRight\")) +\n        parseFloat($content.css(\"marginLeft\")) +\n        parseFloat($content.css(\"marginRight\"));\n\n      maxHeight -=\n        parseFloat($slide.css(\"paddingTop\")) +\n        parseFloat($slide.css(\"paddingBottom\")) +\n        parseFloat($content.css(\"marginTop\")) +\n        parseFloat($content.css(\"marginBottom\"));\n\n      if (!width || !height) {\n        width = maxWidth;\n        height = maxHeight;\n      }\n\n      minRatio = Math.min(1, maxWidth / width, maxHeight / height);\n\n      width = minRatio * width;\n      height = minRatio * height;\n\n      // Adjust width/height to precisely fit into container\n      if (width > maxWidth - 0.5) {\n        width = maxWidth;\n      }\n\n      if (height > maxHeight - 0.5) {\n        height = maxHeight;\n      }\n\n      if (slide.type === \"image\") {\n        rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css(\"paddingTop\"));\n        rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css(\"paddingLeft\"));\n      } else if (slide.contentType === \"video\") {\n        // Force aspect ratio for the video\n        // \"I say the whole world must learn of our peaceful ways… by force!\"\n        aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9;\n\n        if (height > width / aspectRatio) {\n          height = width / aspectRatio;\n        } else if (width > height * aspectRatio) {\n          width = height * aspectRatio;\n        }\n      }\n\n      rez.width = width;\n      rez.height = height;\n\n      return rez;\n    },\n\n    // Update content size and position for all slides\n    // ==============================================\n\n    update: function (e) {\n      var self = this;\n\n      $.each(self.slides, function (key, slide) {\n        self.updateSlide(slide, e);\n      });\n    },\n\n    // Update slide content position and size\n    // ======================================\n\n    updateSlide: function (slide, e) {\n      var self = this,\n        $content = slide && slide.$content,\n        width = slide.width || slide.opts.width,\n        height = slide.height || slide.opts.height,\n        $slide = slide.$slide;\n\n      // First, prevent caption overlap, if needed\n      self.adjustCaption(slide);\n\n      // Then resize content to fit inside the slide\n      if ($content && (width || height || slide.contentType === \"video\") && !slide.hasError) {\n        $.fancybox.stop($content);\n\n        $.fancybox.setTranslate($content, self.getFitPos(slide));\n\n        if (slide.pos === self.currPos) {\n          self.isAnimating = false;\n\n          self.updateCursor();\n        }\n      }\n\n      // Then some adjustments\n      self.adjustLayout(slide);\n\n      if ($slide.length) {\n        $slide.trigger(\"refresh\");\n\n        if (slide.pos === self.currPos) {\n          self.$refs.toolbar\n            .add(self.$refs.navigation.find(\".fancybox-button--arrow_right\"))\n            .toggleClass(\"compensate-for-scrollbar\", $slide.get(0).scrollHeight > $slide.get(0).clientHeight);\n        }\n      }\n\n      self.trigger(\"onUpdate\", slide, e);\n    },\n\n    // Horizontally center slide\n    // =========================\n\n    centerSlide: function (duration) {\n      var self = this,\n        current = self.current,\n        $slide = current.$slide;\n\n      if (self.isClosing || !current) {\n        return;\n      }\n\n      $slide.siblings().css({\n        transform: \"\",\n        opacity: \"\"\n      });\n\n      $slide\n        .parent()\n        .children()\n        .removeClass(\"fancybox-slide--previous fancybox-slide--next\");\n\n      $.fancybox.animate(\n        $slide, {\n          top: 0,\n          left: 0,\n          opacity: 1\n        },\n        duration === undefined ? 0 : duration,\n        function () {\n          // Clean up\n          $slide.css({\n            transform: \"\",\n            opacity: \"\"\n          });\n\n          if (!current.isComplete) {\n            self.complete();\n          }\n        },\n        false\n      );\n    },\n\n    // Check if current slide is moved (swiped)\n    // ========================================\n\n    isMoved: function (slide) {\n      var current = slide || this.current,\n        slidePos,\n        stagePos;\n\n      if (!current) {\n        return false;\n      }\n\n      stagePos = $.fancybox.getTranslate(this.$refs.stage);\n      slidePos = $.fancybox.getTranslate(current.$slide);\n\n      return (\n        !current.$slide.hasClass(\"fancybox-animated\") &&\n        (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5)\n      );\n    },\n\n    // Update cursor style depending if content can be zoomed\n    // ======================================================\n\n    updateCursor: function (nextWidth, nextHeight) {\n      var self = this,\n        current = self.current,\n        $container = self.$refs.container,\n        canPan,\n        isZoomable;\n\n      if (!current || self.isClosing || !self.Guestures) {\n        return;\n      }\n\n      $container.removeClass(\"fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan\");\n\n      canPan = self.canPan(nextWidth, nextHeight);\n\n      isZoomable = canPan ? true : self.isZoomable();\n\n      $container.toggleClass(\"fancybox-is-zoomable\", isZoomable);\n\n      $(\"[data-fancybox-zoom]\").prop(\"disabled\", !isZoomable);\n\n      if (canPan) {\n        $container.addClass(\"fancybox-can-pan\");\n      } else if (\n        isZoomable &&\n        (current.opts.clickContent === \"zoom\" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == \"zoom\"))\n      ) {\n        $container.addClass(\"fancybox-can-zoomIn\");\n      } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== \"video\") {\n        $container.addClass(\"fancybox-can-swipe\");\n      }\n    },\n\n    // Check if current slide is zoomable\n    // ==================================\n\n    isZoomable: function () {\n      var self = this,\n        current = self.current,\n        fitPos;\n\n      // Assume that slide is zoomable if:\n      //   - image is still loading\n      //   - actual size of the image is smaller than available area\n      if (current && !self.isClosing && current.type === \"image\" && !current.hasError) {\n        if (!current.isLoaded) {\n          return true;\n        }\n\n        fitPos = self.getFitPos(current);\n\n        if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n\n    // Check if current image dimensions are smaller than actual\n    // =========================================================\n\n    isScaledDown: function (nextWidth, nextHeight) {\n      var self = this,\n        rez = false,\n        current = self.current,\n        $content = current.$content;\n\n      if (nextWidth !== undefined && nextHeight !== undefined) {\n        rez = nextWidth < current.width && nextHeight < current.height;\n      } else if ($content) {\n        rez = $.fancybox.getTranslate($content);\n        rez = rez.width < current.width && rez.height < current.height;\n      }\n\n      return rez;\n    },\n\n    // Check if image dimensions exceed parent element\n    // ===============================================\n\n    canPan: function (nextWidth, nextHeight) {\n      var self = this,\n        current = self.current,\n        pos = null,\n        rez = false;\n\n      if (current.type === \"image\" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) {\n        rez = self.getFitPos(current);\n\n        if (nextWidth !== undefined && nextHeight !== undefined) {\n          pos = {\n            width: nextWidth,\n            height: nextHeight\n          };\n        } else if (current.isComplete) {\n          pos = $.fancybox.getTranslate(current.$content);\n        }\n\n        if (pos && rez) {\n          rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5;\n        }\n      }\n\n      return rez;\n    },\n\n    // Load content into the slide\n    // ===========================\n\n    loadSlide: function (slide) {\n      var self = this,\n        type,\n        $slide,\n        ajaxLoad;\n\n      if (slide.isLoading || slide.isLoaded) {\n        return;\n      }\n\n      slide.isLoading = true;\n\n      if (self.trigger(\"beforeLoad\", slide) === false) {\n        slide.isLoading = false;\n\n        return false;\n      }\n\n      type = slide.type;\n      $slide = slide.$slide;\n\n      $slide\n        .off(\"refresh\")\n        .trigger(\"onReset\")\n        .addClass(slide.opts.slideClass);\n\n      // Create content depending on the type\n      switch (type) {\n        case \"image\":\n          self.setImage(slide);\n\n          break;\n\n        case \"iframe\":\n          self.setIframe(slide);\n\n          break;\n\n        case \"html\":\n          self.setContent(slide, slide.src || slide.content);\n\n          break;\n\n        case \"video\":\n          self.setContent(\n            slide,\n            slide.opts.video.tpl\n            .replace(/\\{\\{src\\}\\}/gi, slide.src)\n            .replace(\"{{format}}\", slide.opts.videoFormat || slide.opts.video.format || \"\")\n            .replace(\"{{poster}}\", slide.thumb || \"\")\n          );\n\n          break;\n\n        case \"inline\":\n          if ($(slide.src).length) {\n            self.setContent(slide, $(slide.src));\n          } else {\n            self.setError(slide);\n          }\n\n          break;\n\n        case \"ajax\":\n          self.showLoading(slide);\n\n          ajaxLoad = $.ajax(\n            $.extend({}, slide.opts.ajax.settings, {\n              url: slide.src,\n              success: function (data, textStatus) {\n                if (textStatus === \"success\") {\n                  self.setContent(slide, data);\n                }\n              },\n              error: function (jqXHR, textStatus) {\n                if (jqXHR && textStatus !== \"abort\") {\n                  self.setError(slide);\n                }\n              }\n            })\n          );\n\n          $slide.one(\"onReset\", function () {\n            ajaxLoad.abort();\n          });\n\n          break;\n\n        default:\n          self.setError(slide);\n\n          break;\n      }\n\n      return true;\n    },\n\n    // Use thumbnail image, if possible\n    // ================================\n\n    setImage: function (slide) {\n      var self = this,\n        ghost;\n\n      // Check if need to show loading icon\n      setTimeout(function () {\n        var $img = slide.$image;\n\n        if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) {\n          self.showLoading(slide);\n        }\n      }, 50);\n\n      //Check if image has srcset\n      self.checkSrcset(slide);\n\n      // This will be wrapper containing both ghost and actual image\n      slide.$content = $('<div class=\"fancybox-content\"></div>')\n        .addClass(\"fancybox-is-hidden\")\n        .appendTo(slide.$slide.addClass(\"fancybox-slide--image\"));\n\n      // If we have a thumbnail, we can display it while actual image is loading\n      // Users will not stare at black screen and actual image will appear gradually\n      if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) {\n        slide.width = slide.opts.width;\n        slide.height = slide.opts.height;\n\n        ghost = document.createElement(\"img\");\n\n        ghost.onerror = function () {\n          $(this).remove();\n\n          slide.$ghost = null;\n        };\n\n        ghost.onload = function () {\n          self.afterLoad(slide);\n        };\n\n        slide.$ghost = $(ghost)\n          .addClass(\"fancybox-image\")\n          .appendTo(slide.$content)\n          .attr(\"src\", slide.thumb);\n      }\n\n      // Start loading actual image\n      self.setBigImage(slide);\n    },\n\n    // Check if image has srcset and get the source\n    // ============================================\n    checkSrcset: function (slide) {\n      var srcset = slide.opts.srcset || slide.opts.image.srcset,\n        found,\n        temp,\n        pxRatio,\n        windowWidth;\n\n      // If we have \"srcset\", then we need to find first matching \"src\" value.\n      // This is necessary, because when you set an src attribute, the browser will preload the image\n      // before any javascript or even CSS is applied.\n      if (srcset) {\n        pxRatio = window.devicePixelRatio || 1;\n        windowWidth = window.innerWidth * pxRatio;\n\n        temp = srcset.split(\",\").map(function (el) {\n          var ret = {};\n\n          el.trim()\n            .split(/\\s+/)\n            .forEach(function (el, i) {\n              var value = parseInt(el.substring(0, el.length - 1), 10);\n\n              if (i === 0) {\n                return (ret.url = el);\n              }\n\n              if (value) {\n                ret.value = value;\n                ret.postfix = el[el.length - 1];\n              }\n            });\n\n          return ret;\n        });\n\n        // Sort by value\n        temp.sort(function (a, b) {\n          return a.value - b.value;\n        });\n\n        // Ok, now we have an array of all srcset values\n        for (var j = 0; j < temp.length; j++) {\n          var el = temp[j];\n\n          if ((el.postfix === \"w\" && el.value >= windowWidth) || (el.postfix === \"x\" && el.value >= pxRatio)) {\n            found = el;\n            break;\n          }\n        }\n\n        // If not found, take the last one\n        if (!found && temp.length) {\n          found = temp[temp.length - 1];\n        }\n\n        if (found) {\n          slide.src = found.url;\n\n          // If we have default width/height values, we can calculate height for matching source\n          if (slide.width && slide.height && found.postfix == \"w\") {\n            slide.height = (slide.width / slide.height) * found.value;\n            slide.width = found.value;\n          }\n\n          slide.opts.srcset = srcset;\n        }\n      }\n    },\n\n    // Create full-size image\n    // ======================\n\n    setBigImage: function (slide) {\n      var self = this,\n        img = document.createElement(\"img\"),\n        $img = $(img);\n\n      slide.$image = $img\n        .one(\"error\", function () {\n          self.setError(slide);\n        })\n        .one(\"load\", function () {\n          var sizes;\n\n          if (!slide.$ghost) {\n            self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight);\n\n            self.afterLoad(slide);\n          }\n\n          if (self.isClosing) {\n            return;\n          }\n\n          if (slide.opts.srcset) {\n            sizes = slide.opts.sizes;\n\n            if (!sizes || sizes === \"auto\") {\n              sizes =\n                (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? \"100\" : Math.round((slide.width / slide.height) * 100)) +\n                \"vw\";\n            }\n\n            $img.attr(\"sizes\", sizes).attr(\"srcset\", slide.opts.srcset);\n          }\n\n          // Hide temporary image after some delay\n          if (slide.$ghost) {\n            setTimeout(function () {\n              if (slide.$ghost && !self.isClosing) {\n                slide.$ghost.hide();\n              }\n            }, Math.min(300, Math.max(1000, slide.height / 1600)));\n          }\n\n          self.hideLoading(slide);\n        })\n        .addClass(\"fancybox-image\")\n        .attr(\"src\", slide.src)\n        .appendTo(slide.$content);\n\n      if ((img.complete || img.readyState == \"complete\") && $img.naturalWidth && $img.naturalHeight) {\n        $img.trigger(\"load\");\n      } else if (img.error) {\n        $img.trigger(\"error\");\n      }\n    },\n\n    // Computes the slide size from image size and maxWidth/maxHeight\n    // ==============================================================\n\n    resolveImageSlideSize: function (slide, imgWidth, imgHeight) {\n      var maxWidth = parseInt(slide.opts.width, 10),\n        maxHeight = parseInt(slide.opts.height, 10);\n\n      // Sets the default values from the image\n      slide.width = imgWidth;\n      slide.height = imgHeight;\n\n      if (maxWidth > 0) {\n        slide.width = maxWidth;\n        slide.height = Math.floor((maxWidth * imgHeight) / imgWidth);\n      }\n\n      if (maxHeight > 0) {\n        slide.width = Math.floor((maxHeight * imgWidth) / imgHeight);\n        slide.height = maxHeight;\n      }\n    },\n\n    // Create iframe wrapper, iframe and bindings\n    // ==========================================\n\n    setIframe: function (slide) {\n      var self = this,\n        opts = slide.opts.iframe,\n        $slide = slide.$slide,\n        $iframe;\n\n      slide.$content = $('<div class=\"fancybox-content' + (opts.preload ? \" fancybox-is-hidden\" : \"\") + '\"></div>')\n        .css(opts.css)\n        .appendTo($slide);\n\n      $slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n      slide.$iframe = $iframe = $(opts.tpl.replace(/\\{rnd\\}/g, new Date().getTime()))\n        .attr(opts.attr)\n        .appendTo(slide.$content);\n\n      if (opts.preload) {\n        self.showLoading(slide);\n\n        // Unfortunately, it is not always possible to determine if iframe is successfully loaded\n        // (due to browser security policy)\n\n        $iframe.on(\"load.fb error.fb\", function (e) {\n          this.isReady = 1;\n\n          slide.$slide.trigger(\"refresh\");\n\n          self.afterLoad(slide);\n        });\n\n        // Recalculate iframe content size\n        // ===============================\n\n        $slide.on(\"refresh.fb\", function () {\n          var $content = slide.$content,\n            frameWidth = opts.css.width,\n            frameHeight = opts.css.height,\n            $contents,\n            $body;\n\n          if ($iframe[0].isReady !== 1) {\n            return;\n          }\n\n          try {\n            $contents = $iframe.contents();\n            $body = $contents.find(\"body\");\n          } catch (ignore) {}\n\n          // Calculate content dimensions, if it is accessible\n          if ($body && $body.length && $body.children().length) {\n            // Avoid scrolling to top (if multiple instances)\n            $slide.css(\"overflow\", \"visible\");\n\n            $content.css({\n              width: \"100%\",\n              \"max-width\": \"100%\",\n              height: \"9999px\"\n            });\n\n            if (frameWidth === undefined) {\n              frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true)));\n            }\n\n            $content.css(\"width\", frameWidth ? frameWidth : \"\").css(\"max-width\", \"\");\n\n            if (frameHeight === undefined) {\n              frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true)));\n            }\n\n            $content.css(\"height\", frameHeight ? frameHeight : \"\");\n\n            $slide.css(\"overflow\", \"auto\");\n          }\n\n          $content.removeClass(\"fancybox-is-hidden\");\n        });\n      } else {\n        self.afterLoad(slide);\n      }\n\n      $iframe.attr(\"src\", slide.src);\n\n      // Remove iframe if closing or changing gallery item\n      $slide.one(\"onReset\", function () {\n        // This helps IE not to throw errors when closing\n        try {\n          $(this)\n            .find(\"iframe\")\n            .hide()\n            .unbind()\n            .attr(\"src\", \"//about:blank\");\n        } catch (ignore) {}\n\n        $(this)\n          .off(\"refresh.fb\")\n          .empty();\n\n        slide.isLoaded = false;\n        slide.isRevealed = false;\n      });\n    },\n\n    // Wrap and append content to the slide\n    // ======================================\n\n    setContent: function (slide, content) {\n      var self = this;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      self.hideLoading(slide);\n\n      if (slide.$content) {\n        $.fancybox.stop(slide.$content);\n      }\n\n      slide.$slide.empty();\n\n      // If content is a jQuery object, then it will be moved to the slide.\n      // The placeholder is created so we will know where to put it back.\n      if (isQuery(content) && content.parent().length) {\n        // Make sure content is not already moved to fancyBox\n        if (content.hasClass(\"fancybox-content\") || content.parent().hasClass(\"fancybox-content\")) {\n          content.parents(\".fancybox-slide\").trigger(\"onReset\");\n        }\n\n        // Create temporary element marking original place of the content\n        slide.$placeholder = $(\"<div>\")\n          .hide()\n          .insertAfter(content);\n\n        // Make sure content is visible\n        content.css(\"display\", \"inline-block\");\n      } else if (!slide.hasError) {\n        // If content is just a plain text, try to convert it to html\n        if ($.type(content) === \"string\") {\n          content = $(\"<div>\")\n            .append($.trim(content))\n            .contents();\n        }\n\n        // If \"filter\" option is provided, then filter content\n        if (slide.opts.filter) {\n          content = $(\"<div>\")\n            .html(content)\n            .find(slide.opts.filter);\n        }\n      }\n\n      slide.$slide.one(\"onReset\", function () {\n        // Pause all html5 video/audio\n        $(this)\n          .find(\"video,audio\")\n          .trigger(\"pause\");\n\n        // Put content back\n        if (slide.$placeholder) {\n          slide.$placeholder.after(content.removeClass(\"fancybox-content\").hide()).remove();\n\n          slide.$placeholder = null;\n        }\n\n        // Remove custom close button\n        if (slide.$smallBtn) {\n          slide.$smallBtn.remove();\n\n          slide.$smallBtn = null;\n        }\n\n        // Remove content and mark slide as not loaded\n        if (!slide.hasError) {\n          $(this).empty();\n\n          slide.isLoaded = false;\n          slide.isRevealed = false;\n        }\n      });\n\n      $(content).appendTo(slide.$slide);\n\n      if ($(content).is(\"video,audio\")) {\n        $(content).addClass(\"fancybox-video\");\n\n        $(content).wrap(\"<div></div>\");\n\n        slide.contentType = \"video\";\n\n        slide.opts.width = slide.opts.width || $(content).attr(\"width\");\n        slide.opts.height = slide.opts.height || $(content).attr(\"height\");\n      }\n\n      slide.$content = slide.$slide\n        .children()\n        .filter(\"div,form,main,video,audio,article,.fancybox-content\")\n        .first();\n\n      slide.$content.siblings().hide();\n\n      // Re-check if there is a valid content\n      // (in some cases, ajax response can contain various elements or plain text)\n      if (!slide.$content.length) {\n        slide.$content = slide.$slide\n          .wrapInner(\"<div></div>\")\n          .children()\n          .first();\n      }\n\n      slide.$content.addClass(\"fancybox-content\");\n\n      slide.$slide.addClass(\"fancybox-slide--\" + slide.contentType);\n\n      self.afterLoad(slide);\n    },\n\n    // Display error message\n    // =====================\n\n    setError: function (slide) {\n      slide.hasError = true;\n\n      slide.$slide\n        .trigger(\"onReset\")\n        .removeClass(\"fancybox-slide--\" + slide.contentType)\n        .addClass(\"fancybox-slide--error\");\n\n      slide.contentType = \"html\";\n\n      this.setContent(slide, this.translate(slide, slide.opts.errorTpl));\n\n      if (slide.pos === this.currPos) {\n        this.isAnimating = false;\n      }\n    },\n\n    // Show loading icon inside the slide\n    // ==================================\n\n    showLoading: function (slide) {\n      var self = this;\n\n      slide = slide || self.current;\n\n      if (slide && !slide.$spinner) {\n        slide.$spinner = $(self.translate(self, self.opts.spinnerTpl))\n          .appendTo(slide.$slide)\n          .hide()\n          .fadeIn(\"fast\");\n      }\n    },\n\n    // Remove loading icon from the slide\n    // ==================================\n\n    hideLoading: function (slide) {\n      var self = this;\n\n      slide = slide || self.current;\n\n      if (slide && slide.$spinner) {\n        slide.$spinner.stop().remove();\n\n        delete slide.$spinner;\n      }\n    },\n\n    // Adjustments after slide content has been loaded\n    // ===============================================\n\n    afterLoad: function (slide) {\n      var self = this;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      slide.isLoading = false;\n      slide.isLoaded = true;\n\n      self.trigger(\"afterLoad\", slide);\n\n      self.hideLoading(slide);\n\n      // Add small close button\n      if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) {\n        slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content);\n      }\n\n      // Disable right click\n      if (slide.opts.protect && slide.$content && !slide.hasError) {\n        slide.$content.on(\"contextmenu.fb\", function (e) {\n          if (e.button == 2) {\n            e.preventDefault();\n          }\n\n          return true;\n        });\n\n        // Add fake element on top of the image\n        // This makes a bit harder for user to select image\n        if (slide.type === \"image\") {\n          $('<div class=\"fancybox-spaceball\"></div>').appendTo(slide.$content);\n        }\n      }\n\n      self.adjustCaption(slide);\n\n      self.adjustLayout(slide);\n\n      if (slide.pos === self.currPos) {\n        self.updateCursor();\n      }\n\n      self.revealContent(slide);\n    },\n\n    // Prevent caption overlap,\n    // fix css inconsistency across browsers\n    // =====================================\n\n    adjustCaption: function (slide) {\n      var self = this,\n        current = slide || self.current,\n        caption = current.opts.caption,\n        preventOverlap = current.opts.preventCaptionOverlap,\n        $caption = self.$refs.caption,\n        $clone,\n        captionH = false;\n\n      $caption.toggleClass(\"fancybox-caption--separate\", preventOverlap);\n\n      if (preventOverlap && caption && caption.length) {\n        if (current.pos !== self.currPos) {\n          $clone = $caption.clone().appendTo($caption.parent());\n\n          $clone\n            .children()\n            .eq(0)\n            .empty()\n            .html(caption);\n\n          captionH = $clone.outerHeight(true);\n\n          $clone.empty().remove();\n        } else if (self.$caption) {\n          captionH = self.$caption.outerHeight(true);\n        }\n\n        current.$slide.css(\"padding-bottom\", captionH || \"\");\n      }\n    },\n\n    // Simple hack to fix inconsistency across browsers, described here (affects Edge, too):\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=748518\n    // ====================================================================================\n\n    adjustLayout: function (slide) {\n      var self = this,\n        current = slide || self.current,\n        scrollHeight,\n        marginBottom,\n        inlinePadding,\n        actualPadding;\n\n      if (current.isLoaded && current.opts.disableLayoutFix !== true) {\n        current.$content.css(\"margin-bottom\", \"\");\n\n        // If we would always set margin-bottom for the content,\n        // then it would potentially break vertical align\n        if (current.$content.outerHeight() > current.$slide.height() + 0.5) {\n          inlinePadding = current.$slide[0].style[\"padding-bottom\"];\n          actualPadding = current.$slide.css(\"padding-bottom\");\n\n          if (parseFloat(actualPadding) > 0) {\n            scrollHeight = current.$slide[0].scrollHeight;\n\n            current.$slide.css(\"padding-bottom\", 0);\n\n            if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) {\n              marginBottom = actualPadding;\n            }\n\n            current.$slide.css(\"padding-bottom\", inlinePadding);\n          }\n        }\n\n        current.$content.css(\"margin-bottom\", marginBottom);\n      }\n    },\n\n    // Make content visible\n    // This method is called right after content has been loaded or\n    // user navigates gallery and transition should start\n    // ============================================================\n\n    revealContent: function (slide) {\n      var self = this,\n        $slide = slide.$slide,\n        end = false,\n        start = false,\n        isMoved = self.isMoved(slide),\n        isRevealed = slide.isRevealed,\n        effect,\n        effectClassName,\n        duration,\n        opacity;\n\n      slide.isRevealed = true;\n\n      effect = slide.opts[self.firstRun ? \"animationEffect\" : \"transitionEffect\"];\n      duration = slide.opts[self.firstRun ? \"animationDuration\" : \"transitionDuration\"];\n\n      duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10);\n\n      if (isMoved || slide.pos !== self.currPos || !duration) {\n        effect = false;\n      }\n\n      // Check if can zoom\n      if (effect === \"zoom\") {\n        if (slide.pos === self.currPos && duration && slide.type === \"image\" && !slide.hasError && (start = self.getThumbPos(slide))) {\n          end = self.getFitPos(slide);\n        } else {\n          effect = \"fade\";\n        }\n      }\n\n      // Zoom animation\n      // ==============\n      if (effect === \"zoom\") {\n        self.isAnimating = true;\n\n        end.scaleX = end.width / start.width;\n        end.scaleY = end.height / start.height;\n\n        // Check if we need to animate opacity\n        opacity = slide.opts.zoomOpacity;\n\n        if (opacity == \"auto\") {\n          opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1;\n        }\n\n        if (opacity) {\n          start.opacity = 0.1;\n          end.opacity = 1;\n        }\n\n        // Draw image at start position\n        $.fancybox.setTranslate(slide.$content.removeClass(\"fancybox-is-hidden\"), start);\n\n        forceRedraw(slide.$content);\n\n        // Start animation\n        $.fancybox.animate(slide.$content, end, duration, function () {\n          self.isAnimating = false;\n\n          self.complete();\n        });\n\n        return;\n      }\n\n      self.updateSlide(slide);\n\n      // Simply show content if no effect\n      // ================================\n      if (!effect) {\n        slide.$content.removeClass(\"fancybox-is-hidden\");\n\n        if (!isRevealed && isMoved && slide.type === \"image\" && !slide.hasError) {\n          slide.$content.hide().fadeIn(\"fast\");\n        }\n\n        if (slide.pos === self.currPos) {\n          self.complete();\n        }\n\n        return;\n      }\n\n      // Prepare for CSS transiton\n      // =========================\n      $.fancybox.stop($slide);\n\n      //effectClassName = \"fancybox-animated fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-fx-\" + effect;\n      effectClassName = \"fancybox-slide--\" + (slide.pos >= self.prevPos ? \"next\" : \"previous\") + \" fancybox-animated fancybox-fx-\" + effect;\n\n      $slide.addClass(effectClassName).removeClass(\"fancybox-slide--current\"); //.addClass(effectClassName);\n\n      slide.$content.removeClass(\"fancybox-is-hidden\");\n\n      // Force reflow\n      forceRedraw($slide);\n\n      if (slide.type !== \"image\") {\n        slide.$content.hide().show(0);\n      }\n\n      $.fancybox.animate(\n        $slide,\n        \"fancybox-slide--current\",\n        duration,\n        function () {\n          $slide.removeClass(effectClassName).css({\n            transform: \"\",\n            opacity: \"\"\n          });\n\n          if (slide.pos === self.currPos) {\n            self.complete();\n          }\n        },\n        true\n      );\n    },\n\n    // Check if we can and have to zoom from thumbnail\n    //================================================\n\n    getThumbPos: function (slide) {\n      var rez = false,\n        $thumb = slide.$thumb,\n        thumbPos,\n        btw,\n        brw,\n        bbw,\n        blw;\n\n      if (!$thumb || !inViewport($thumb[0])) {\n        return false;\n      }\n\n      thumbPos = $.fancybox.getTranslate($thumb);\n\n      btw = parseFloat($thumb.css(\"border-top-width\") || 0);\n      brw = parseFloat($thumb.css(\"border-right-width\") || 0);\n      bbw = parseFloat($thumb.css(\"border-bottom-width\") || 0);\n      blw = parseFloat($thumb.css(\"border-left-width\") || 0);\n\n      rez = {\n        top: thumbPos.top + btw,\n        left: thumbPos.left + blw,\n        width: thumbPos.width - brw - blw,\n        height: thumbPos.height - btw - bbw,\n        scaleX: 1,\n        scaleY: 1\n      };\n\n      return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false;\n    },\n\n    // Final adjustments after current gallery item is moved to position\n    // and it`s content is loaded\n    // ==================================================================\n\n    complete: function () {\n      var self = this,\n        current = self.current,\n        slides = {},\n        $el;\n\n      if (self.isMoved() || !current.isLoaded) {\n        return;\n      }\n\n      if (!current.isComplete) {\n        current.isComplete = true;\n\n        current.$slide.siblings().trigger(\"onReset\");\n\n        self.preload(\"inline\");\n\n        // Trigger any CSS transiton inside the slide\n        forceRedraw(current.$slide);\n\n        current.$slide.addClass(\"fancybox-slide--complete\");\n\n        // Remove unnecessary slides\n        $.each(self.slides, function (key, slide) {\n          if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) {\n            slides[slide.pos] = slide;\n          } else if (slide) {\n            $.fancybox.stop(slide.$slide);\n\n            slide.$slide.off().remove();\n          }\n        });\n\n        self.slides = slides;\n      }\n\n      self.isAnimating = false;\n\n      self.updateCursor();\n\n      self.trigger(\"afterShow\");\n\n      // Autoplay first html5 video/audio\n      if (!!current.opts.video.autoStart) {\n        current.$slide\n          .find(\"video,audio\")\n          .filter(\":visible:first\")\n          .trigger(\"play\")\n          .one(\"ended\", function () {\n            if (Document.exitFullscreen) {\n              Document.exitFullscreen();\n            } else if (this.webkitExitFullscreen) {\n              this.webkitExitFullscreen();\n            }\n\n            self.next();\n          });\n      }\n\n      // Try to focus on the first focusable element\n      if (current.opts.autoFocus && current.contentType === \"html\") {\n        // Look for the first input with autofocus attribute\n        $el = current.$content.find(\"input[autofocus]:enabled:visible:first\");\n\n        if ($el.length) {\n          $el.trigger(\"focus\");\n        } else {\n          self.focus(null, true);\n        }\n      }\n\n      // Avoid jumping\n      current.$slide.scrollTop(0).scrollLeft(0);\n    },\n\n    // Preload next and previous slides\n    // ================================\n\n    preload: function (type) {\n      var self = this,\n        prev,\n        next;\n\n      if (self.group.length < 2) {\n        return;\n      }\n\n      next = self.slides[self.currPos + 1];\n      prev = self.slides[self.currPos - 1];\n\n      if (prev && prev.type === type) {\n        self.loadSlide(prev);\n      }\n\n      if (next && next.type === type) {\n        self.loadSlide(next);\n      }\n    },\n\n    // Try to find and focus on the first focusable element\n    // ====================================================\n\n    focus: function (e, firstRun) {\n      var self = this,\n        focusableStr = [\n          \"a[href]\",\n          \"area[href]\",\n          'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n          \"select:not([disabled]):not([aria-hidden])\",\n          \"textarea:not([disabled]):not([aria-hidden])\",\n          \"button:not([disabled]):not([aria-hidden])\",\n          \"iframe\",\n          \"object\",\n          \"embed\",\n          \"video\",\n          \"audio\",\n          \"[contenteditable]\",\n          '[tabindex]:not([tabindex^=\"-\"])'\n        ].join(\",\"),\n        focusableItems,\n        focusedItemIndex;\n\n      if (self.isClosing) {\n        return;\n      }\n\n      if (e || !self.current || !self.current.isComplete) {\n        // Focus on any element inside fancybox\n        focusableItems = self.$refs.container.find(\"*:visible\");\n      } else {\n        // Focus inside current slide\n        focusableItems = self.current.$slide.find(\"*:visible\" + (firstRun ? \":not(.fancybox-close-small)\" : \"\"));\n      }\n\n      focusableItems = focusableItems.filter(focusableStr).filter(function () {\n        return $(this).css(\"visibility\") !== \"hidden\" && !$(this).hasClass(\"disabled\");\n      });\n\n      if (focusableItems.length) {\n        focusedItemIndex = focusableItems.index(document.activeElement);\n\n        if (e && e.shiftKey) {\n          // Back tab\n          if (focusedItemIndex < 0 || focusedItemIndex == 0) {\n            e.preventDefault();\n\n            focusableItems.eq(focusableItems.length - 1).trigger(\"focus\");\n          }\n        } else {\n          // Outside or Forward tab\n          if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) {\n            if (e) {\n              e.preventDefault();\n            }\n\n            focusableItems.eq(0).trigger(\"focus\");\n          }\n        }\n      } else {\n        self.$refs.container.trigger(\"focus\");\n      }\n    },\n\n    // Activates current instance - brings container to the front and enables keyboard,\n    // notifies other instances about deactivating\n    // =================================================================================\n\n    activate: function () {\n      var self = this;\n\n      // Deactivate all instances\n      $(\".fancybox-container\").each(function () {\n        var instance = $(this).data(\"FancyBox\");\n\n        // Skip self and closing instances\n        if (instance && instance.id !== self.id && !instance.isClosing) {\n          instance.trigger(\"onDeactivate\");\n\n          instance.removeEvents();\n\n          instance.isVisible = false;\n        }\n      });\n\n      self.isVisible = true;\n\n      if (self.current || self.isIdle) {\n        self.update();\n\n        self.updateControls();\n      }\n\n      self.trigger(\"onActivate\");\n\n      self.addEvents();\n    },\n\n    // Start closing procedure\n    // This will start \"zoom-out\" animation if needed and clean everything up afterwards\n    // =================================================================================\n\n    close: function (e, d) {\n      var self = this,\n        current = self.current,\n        effect,\n        duration,\n        $content,\n        domRect,\n        opacity,\n        start,\n        end;\n\n      var done = function () {\n        self.cleanUp(e);\n      };\n\n      if (self.isClosing) {\n        return false;\n      }\n\n      self.isClosing = true;\n\n      // If beforeClose callback prevents closing, make sure content is centered\n      if (self.trigger(\"beforeClose\", e) === false) {\n        self.isClosing = false;\n\n        requestAFrame(function () {\n          self.update();\n        });\n\n        return false;\n      }\n\n      // Remove all events\n      // If there are multiple instances, they will be set again by \"activate\" method\n      self.removeEvents();\n\n      $content = current.$content;\n      effect = current.opts.animationEffect;\n      duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0;\n\n      current.$slide.removeClass(\"fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated\");\n\n      if (e !== true) {\n        $.fancybox.stop(current.$slide);\n      } else {\n        effect = false;\n      }\n\n      // Remove other slides\n      current.$slide\n        .siblings()\n        .trigger(\"onReset\")\n        .remove();\n\n      // Trigger animations\n      if (duration) {\n        self.$refs.container\n          .removeClass(\"fancybox-is-open\")\n          .addClass(\"fancybox-is-closing\")\n          .css(\"transition-duration\", duration + \"ms\");\n      }\n\n      // Clean up\n      self.hideLoading(current);\n\n      self.hideControls(true);\n\n      self.updateCursor();\n\n      // Check if possible to zoom-out\n      if (\n        effect === \"zoom\" &&\n        !($content && duration && current.type === \"image\" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current)))\n      ) {\n        effect = \"fade\";\n      }\n\n      if (effect === \"zoom\") {\n        $.fancybox.stop($content);\n\n        domRect = $.fancybox.getTranslate($content);\n\n        start = {\n          top: domRect.top,\n          left: domRect.left,\n          scaleX: domRect.width / end.width,\n          scaleY: domRect.height / end.height,\n          width: end.width,\n          height: end.height\n        };\n\n        // Check if we need to animate opacity\n        opacity = current.opts.zoomOpacity;\n\n        if (opacity == \"auto\") {\n          opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1;\n        }\n\n        if (opacity) {\n          end.opacity = 0;\n        }\n\n        $.fancybox.setTranslate($content, start);\n\n        forceRedraw($content);\n\n        $.fancybox.animate($content, end, duration, done);\n\n        return true;\n      }\n\n      if (effect && duration) {\n        $.fancybox.animate(\n          current.$slide.addClass(\"fancybox-slide--previous\").removeClass(\"fancybox-slide--current\"),\n          \"fancybox-animated fancybox-fx-\" + effect,\n          duration,\n          done\n        );\n      } else {\n        // If skip animation\n        if (e === true) {\n          setTimeout(done, duration);\n        } else {\n          done();\n        }\n      }\n\n      return true;\n    },\n\n    // Final adjustments after removing the instance\n    // =============================================\n\n    cleanUp: function (e) {\n      var self = this,\n        instance,\n        $focus = self.current.opts.$orig,\n        x,\n        y;\n\n      self.current.$slide.trigger(\"onReset\");\n\n      self.$refs.container.empty().remove();\n\n      self.trigger(\"afterClose\", e);\n\n      // Place back focus\n      if (!!self.current.opts.backFocus) {\n        if (!$focus || !$focus.length || !$focus.is(\":visible\")) {\n          $focus = self.$trigger;\n        }\n\n        if ($focus && $focus.length) {\n          x = window.scrollX;\n          y = window.scrollY;\n\n          $focus.trigger(\"focus\");\n\n          $(\"html, body\")\n            .scrollTop(y)\n            .scrollLeft(x);\n        }\n      }\n\n      self.current = null;\n\n      // Check if there are other instances\n      instance = $.fancybox.getInstance();\n\n      if (instance) {\n        instance.activate();\n      } else {\n        $(\"body\").removeClass(\"fancybox-active compensate-for-scrollbar\");\n\n        $(\"#fancybox-style-noscroll\").remove();\n      }\n    },\n\n    // Call callback and trigger an event\n    // ==================================\n\n    trigger: function (name, slide) {\n      var args = Array.prototype.slice.call(arguments, 1),\n        self = this,\n        obj = slide && slide.opts ? slide : self.current,\n        rez;\n\n      if (obj) {\n        args.unshift(obj);\n      } else {\n        obj = self;\n      }\n\n      args.unshift(self);\n\n      if ($.isFunction(obj.opts[name])) {\n        rez = obj.opts[name].apply(obj, args);\n      }\n\n      if (rez === false) {\n        return rez;\n      }\n\n      if (name === \"afterClose\" || !self.$refs) {\n        $D.trigger(name + \".fb\", args);\n      } else {\n        self.$refs.container.trigger(name + \".fb\", args);\n      }\n    },\n\n    // Update infobar values, navigation button states and reveal caption\n    // ==================================================================\n\n    updateControls: function () {\n      var self = this,\n        current = self.current,\n        index = current.index,\n        $container = self.$refs.container,\n        $caption = self.$refs.caption,\n        caption = current.opts.caption;\n\n      // Recalculate content dimensions\n      current.$slide.trigger(\"refresh\");\n\n      // Set caption\n      if (caption && caption.length) {\n        self.$caption = $caption;\n\n        $caption\n          .children()\n          .eq(0)\n          .html(caption);\n      } else {\n        self.$caption = null;\n      }\n\n      if (!self.hasHiddenControls && !self.isIdle) {\n        self.showControls();\n      }\n\n      // Update info and navigation elements\n      $container.find(\"[data-fancybox-count]\").html(self.group.length);\n      $container.find(\"[data-fancybox-index]\").html(index + 1);\n\n      $container.find(\"[data-fancybox-prev]\").prop(\"disabled\", !current.opts.loop && index <= 0);\n      $container.find(\"[data-fancybox-next]\").prop(\"disabled\", !current.opts.loop && index >= self.group.length - 1);\n\n      if (current.type === \"image\") {\n        // Re-enable buttons; update download button source\n        $container\n          .find(\"[data-fancybox-zoom]\")\n          .show()\n          .end()\n          .find(\"[data-fancybox-download]\")\n          .attr(\"href\", current.opts.image.src || current.src)\n          .show();\n      } else if (current.opts.toolbar) {\n        $container.find(\"[data-fancybox-download],[data-fancybox-zoom]\").hide();\n      }\n\n      // Make sure focus is not on disabled button/element\n      if ($(document.activeElement).is(\":hidden,[disabled]\")) {\n        self.$refs.container.trigger(\"focus\");\n      }\n    },\n\n    // Hide toolbar and caption\n    // ========================\n\n    hideControls: function (andCaption) {\n      var self = this,\n        arr = [\"infobar\", \"toolbar\", \"nav\"];\n\n      if (andCaption || !self.current.opts.preventCaptionOverlap) {\n        arr.push(\"caption\");\n      }\n\n      this.$refs.container.removeClass(\n        arr\n        .map(function (i) {\n          return \"fancybox-show-\" + i;\n        })\n        .join(\" \")\n      );\n\n      this.hasHiddenControls = true;\n    },\n\n    showControls: function () {\n      var self = this,\n        opts = self.current ? self.current.opts : self.opts,\n        $container = self.$refs.container;\n\n      self.hasHiddenControls = false;\n      self.idleSecondsCounter = 0;\n\n      $container\n        .toggleClass(\"fancybox-show-toolbar\", !!(opts.toolbar && opts.buttons))\n        .toggleClass(\"fancybox-show-infobar\", !!(opts.infobar && self.group.length > 1))\n        .toggleClass(\"fancybox-show-caption\", !!self.$caption)\n        .toggleClass(\"fancybox-show-nav\", !!(opts.arrows && self.group.length > 1))\n        .toggleClass(\"fancybox-is-modal\", !!opts.modal);\n    },\n\n    // Toggle toolbar and caption\n    // ==========================\n\n    toggleControls: function () {\n      if (this.hasHiddenControls) {\n        this.showControls();\n      } else {\n        this.hideControls();\n      }\n    }\n  });\n\n  $.fancybox = {\n    version: \"{fancybox-version}\",\n    defaults: defaults,\n\n    // Get current instance and execute a command.\n    //\n    // Examples of usage:\n    //\n    //   $instance = $.fancybox.getInstance();\n    //   $.fancybox.getInstance().jumpTo( 1 );\n    //   $.fancybox.getInstance( 'jumpTo', 1 );\n    //   $.fancybox.getInstance( function() {\n    //       console.info( this.currIndex );\n    //   });\n    // ======================================================\n\n    getInstance: function (command) {\n      var instance = $('.fancybox-container:not(\".fancybox-is-closing\"):last').data(\"FancyBox\"),\n        args = Array.prototype.slice.call(arguments, 1);\n\n      if (instance instanceof FancyBox) {\n        if ($.type(command) === \"string\") {\n          instance[command].apply(instance, args);\n        } else if ($.type(command) === \"function\") {\n          command.apply(instance, args);\n        }\n\n        return instance;\n      }\n\n      return false;\n    },\n\n    // Create new instance\n    // ===================\n\n    open: function (items, opts, index) {\n      return new FancyBox(items, opts, index);\n    },\n\n    // Close current or all instances\n    // ==============================\n\n    close: function (all) {\n      var instance = this.getInstance();\n\n      if (instance) {\n        instance.close();\n\n        // Try to find and close next instance\n        if (all === true) {\n          this.close(all);\n        }\n      }\n    },\n\n    // Close all instances and unbind all events\n    // =========================================\n\n    destroy: function () {\n      this.close(true);\n\n      $D.add(\"body\").off(\"click.fb-start\", \"**\");\n    },\n\n    // Try to detect mobile devices\n    // ============================\n\n    isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n\n    // Detect if 'translate3d' support is available\n    // ============================================\n\n    use3d: (function () {\n      var div = document.createElement(\"div\");\n\n      return (\n        window.getComputedStyle &&\n        window.getComputedStyle(div) &&\n        window.getComputedStyle(div).getPropertyValue(\"transform\") &&\n        !(document.documentMode && document.documentMode < 11)\n      );\n    })(),\n\n    // Helper function to get current visual state of an element\n    // returns array[ top, left, horizontal-scale, vertical-scale, opacity ]\n    // =====================================================================\n\n    getTranslate: function ($el) {\n      var domRect;\n\n      if (!$el || !$el.length) {\n        return false;\n      }\n\n      domRect = $el[0].getBoundingClientRect();\n\n      return {\n        top: domRect.top || 0,\n        left: domRect.left || 0,\n        width: domRect.width,\n        height: domRect.height,\n        opacity: parseFloat($el.css(\"opacity\"))\n      };\n    },\n\n    // Shortcut for setting \"translate3d\" properties for element\n    // Can set be used to set opacity, too\n    // ========================================================\n\n    setTranslate: function ($el, props) {\n      var str = \"\",\n        css = {};\n\n      if (!$el || !props) {\n        return;\n      }\n\n      if (props.left !== undefined || props.top !== undefined) {\n        str =\n          (props.left === undefined ? $el.position().left : props.left) +\n          \"px, \" +\n          (props.top === undefined ? $el.position().top : props.top) +\n          \"px\";\n\n        if (this.use3d) {\n          str = \"translate3d(\" + str + \", 0px)\";\n        } else {\n          str = \"translate(\" + str + \")\";\n        }\n      }\n\n      if (props.scaleX !== undefined && props.scaleY !== undefined) {\n        str += \" scale(\" + props.scaleX + \", \" + props.scaleY + \")\";\n      } else if (props.scaleX !== undefined) {\n        str += \" scaleX(\" + props.scaleX + \")\";\n      }\n\n      if (str.length) {\n        css.transform = str;\n      }\n\n      if (props.opacity !== undefined) {\n        css.opacity = props.opacity;\n      }\n\n      if (props.width !== undefined) {\n        css.width = props.width;\n      }\n\n      if (props.height !== undefined) {\n        css.height = props.height;\n      }\n\n      return $el.css(css);\n    },\n\n    // Simple CSS transition handler\n    // =============================\n\n    animate: function ($el, to, duration, callback, leaveAnimationName) {\n      var self = this,\n        from;\n\n      if ($.isFunction(duration)) {\n        callback = duration;\n        duration = null;\n      }\n\n      self.stop($el);\n\n      from = self.getTranslate($el);\n\n      $el.on(transitionEnd, function (e) {\n        // Skip events from child elements and z-index change\n        if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == \"z-index\")) {\n          return;\n        }\n\n        self.stop($el);\n\n        if ($.isNumeric(duration)) {\n          $el.css(\"transition-duration\", \"\");\n        }\n\n        if ($.isPlainObject(to)) {\n          if (to.scaleX !== undefined && to.scaleY !== undefined) {\n            self.setTranslate($el, {\n              top: to.top,\n              left: to.left,\n              width: from.width * to.scaleX,\n              height: from.height * to.scaleY,\n              scaleX: 1,\n              scaleY: 1\n            });\n          }\n        } else if (leaveAnimationName !== true) {\n          $el.removeClass(to);\n        }\n\n        if ($.isFunction(callback)) {\n          callback(e);\n        }\n      });\n\n      if ($.isNumeric(duration)) {\n        $el.css(\"transition-duration\", duration + \"ms\");\n      }\n\n      // Start animation by changing CSS properties or class name\n      if ($.isPlainObject(to)) {\n        if (to.scaleX !== undefined && to.scaleY !== undefined) {\n          delete to.width;\n          delete to.height;\n\n          if ($el.parent().hasClass(\"fancybox-slide--image\")) {\n            $el.parent().addClass(\"fancybox-is-scaling\");\n          }\n        }\n\n        $.fancybox.setTranslate($el, to);\n      } else {\n        $el.addClass(to);\n      }\n\n      // Make sure that `transitionend` callback gets fired\n      $el.data(\n        \"timer\",\n        setTimeout(function () {\n          $el.trigger(transitionEnd);\n        }, duration + 33)\n      );\n    },\n\n    stop: function ($el, callCallback) {\n      if ($el && $el.length) {\n        clearTimeout($el.data(\"timer\"));\n\n        if (callCallback) {\n          $el.trigger(transitionEnd);\n        }\n\n        $el.off(transitionEnd).css(\"transition-duration\", \"\");\n\n        $el.parent().removeClass(\"fancybox-is-scaling\");\n      }\n    }\n  };\n\n  // Default click handler for \"fancyboxed\" links\n  // ============================================\n\n  function _run(e, opts) {\n    var items = [],\n      index = 0,\n      $target,\n      value,\n      instance;\n\n    // Avoid opening multiple times\n    if (e && e.isDefaultPrevented()) {\n      return;\n    }\n\n    e.preventDefault();\n\n    opts = opts || {};\n\n    if (e && e.data) {\n      opts = mergeOpts(e.data.options, opts);\n    }\n\n    $target = opts.$target || $(e.currentTarget).trigger(\"blur\");\n    instance = $.fancybox.getInstance();\n\n    if (instance && instance.$trigger && instance.$trigger.is($target)) {\n      return;\n    }\n\n    if (opts.selector) {\n      items = $(opts.selector);\n    } else {\n      // Get all related items and find index for clicked one\n      value = $target.attr(\"data-fancybox\") || \"\";\n\n      if (value) {\n        items = e.data ? e.data.items : [];\n        items = items.length ? items.filter('[data-fancybox=\"' + value + '\"]') : $('[data-fancybox=\"' + value + '\"]');\n      } else {\n        items = [$target];\n      }\n    }\n\n    index = $(items).index($target);\n\n    // Sometimes current item can not be found\n    if (index < 0) {\n      index = 0;\n    }\n\n    instance = $.fancybox.open(items, opts, index);\n\n    // Save last active element\n    instance.$trigger = $target;\n  }\n\n  // Create a jQuery plugin\n  // ======================\n\n  $.fn.fancybox = function (options) {\n    var selector;\n\n    options = options || {};\n    selector = options.selector || false;\n\n    if (selector) {\n      // Use body element instead of document so it executes first\n      $(\"body\")\n        .off(\"click.fb-start\", selector)\n        .on(\"click.fb-start\", selector, {\n          options: options\n        }, _run);\n    } else {\n      this.off(\"click.fb-start\").on(\n        \"click.fb-start\", {\n          items: this,\n          options: options\n        },\n        _run\n      );\n    }\n\n    return this;\n  };\n\n  // Self initializing plugin for all elements having `data-fancybox` attribute\n  // ==========================================================================\n\n  $D.on(\"click.fb-start\", \"[data-fancybox]\", _run);\n\n  // Enable \"trigger elements\"\n  // =========================\n\n  $D.on(\"click.fb-start\", \"[data-fancybox-trigger]\", function (e) {\n    $('[data-fancybox=\"' + $(this).attr(\"data-fancybox-trigger\") + '\"]')\n      .eq($(this).attr(\"data-fancybox-index\") || 0)\n      .trigger(\"click.fb-start\", {\n        $trigger: $(this)\n      });\n  });\n\n  // Track focus event for better accessibility styling\n  // ==================================================\n  (function () {\n    var buttonStr = \".fancybox-button\",\n      focusStr = \"fancybox-focus\",\n      $pressed = null;\n\n    $D.on(\"mousedown mouseup focus blur\", buttonStr, function (e) {\n      switch (e.type) {\n        case \"mousedown\":\n          $pressed = $(this);\n          break;\n        case \"mouseup\":\n          $pressed = null;\n          break;\n        case \"focusin\":\n          $(buttonStr).removeClass(focusStr);\n\n          if (!$(this).is($pressed) && !$(this).is(\"[disabled]\")) {\n            $(this).addClass(focusStr);\n          }\n          break;\n        case \"focusout\":\n          $(buttonStr).removeClass(focusStr);\n          break;\n      }\n    });\n  })();\n})(window, document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/fullscreen.js",
    "content": "// ==========================================================================\n//\n// FullScreen\n// Adds fullscreen functionality\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  // Collection of methods supported by user browser\n  var fn = (function () {\n    var fnMap = [\n      [\"requestFullscreen\", \"exitFullscreen\", \"fullscreenElement\", \"fullscreenEnabled\", \"fullscreenchange\", \"fullscreenerror\"],\n      // new WebKit\n      [\n        \"webkitRequestFullscreen\",\n        \"webkitExitFullscreen\",\n        \"webkitFullscreenElement\",\n        \"webkitFullscreenEnabled\",\n        \"webkitfullscreenchange\",\n        \"webkitfullscreenerror\"\n      ],\n      // old WebKit (Safari 5.1)\n      [\n        \"webkitRequestFullScreen\",\n        \"webkitCancelFullScreen\",\n        \"webkitCurrentFullScreenElement\",\n        \"webkitCancelFullScreen\",\n        \"webkitfullscreenchange\",\n        \"webkitfullscreenerror\"\n      ],\n      [\n        \"mozRequestFullScreen\",\n        \"mozCancelFullScreen\",\n        \"mozFullScreenElement\",\n        \"mozFullScreenEnabled\",\n        \"mozfullscreenchange\",\n        \"mozfullscreenerror\"\n      ],\n      [\"msRequestFullscreen\", \"msExitFullscreen\", \"msFullscreenElement\", \"msFullscreenEnabled\", \"MSFullscreenChange\", \"MSFullscreenError\"]\n    ];\n\n    var ret = {};\n\n    for (var i = 0; i < fnMap.length; i++) {\n      var val = fnMap[i];\n\n      if (val && val[1] in document) {\n        for (var j = 0; j < val.length; j++) {\n          ret[fnMap[0][j]] = val[j];\n        }\n\n        return ret;\n      }\n    }\n\n    return false;\n  })();\n\n  if (fn) {\n    var FullScreen = {\n      request: function (elem) {\n        elem = elem || document.documentElement;\n\n        elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT);\n      },\n      exit: function () {\n        document[fn.exitFullscreen]();\n      },\n      toggle: function (elem) {\n        elem = elem || document.documentElement;\n\n        if (this.isFullscreen()) {\n          this.exit();\n        } else {\n          this.request(elem);\n        }\n      },\n      isFullscreen: function () {\n        return Boolean(document[fn.fullscreenElement]);\n      },\n      enabled: function () {\n        return Boolean(document[fn.fullscreenEnabled]);\n      }\n    };\n\n    $.extend(true, $.fancybox.defaults, {\n      btnTpl: {\n        fullScreen: '<button data-fancybox-fullscreen class=\"fancybox-button fancybox-button--fsenter\" title=\"{{FULL_SCREEN}}\">' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"/></svg>' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z\"/></svg>' +\n          \"</button>\"\n      },\n      fullScreen: {\n        autoStart: false\n      }\n    });\n\n    $(document).on(fn.fullscreenchange, function () {\n      var isFullscreen = FullScreen.isFullscreen(),\n        instance = $.fancybox.getInstance();\n\n      if (instance) {\n        // If image is zooming, then force to stop and reposition properly\n        if (instance.current && instance.current.type === \"image\" && instance.isAnimating) {\n          instance.isAnimating = false;\n\n          instance.update(true, true, 0);\n\n          if (!instance.isComplete) {\n            instance.complete();\n          }\n        }\n\n        instance.trigger(\"onFullscreenChange\", isFullscreen);\n\n        instance.$refs.container.toggleClass(\"fancybox-is-fullscreen\", isFullscreen);\n\n        instance.$refs.toolbar\n          .find(\"[data-fancybox-fullscreen]\")\n          .toggleClass(\"fancybox-button--fsenter\", !isFullscreen)\n          .toggleClass(\"fancybox-button--fsexit\", isFullscreen);\n      }\n    });\n  }\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      var $container;\n\n      if (!fn) {\n        instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").remove();\n\n        return;\n      }\n\n      if (instance && instance.group[instance.currIndex].opts.fullScreen) {\n        $container = instance.$refs.container;\n\n        $container.on(\"click.fb-fullscreen\", \"[data-fancybox-fullscreen]\", function (e) {\n          e.stopPropagation();\n          e.preventDefault();\n\n          FullScreen.toggle();\n        });\n\n        if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) {\n          FullScreen.request();\n        }\n\n        // Expose API\n        instance.FullScreen = FullScreen;\n      } else if (instance) {\n        instance.$refs.toolbar.find(\"[data-fancybox-fullscreen]\").hide();\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      // \"F\"\n      if (instance && instance.FullScreen && keycode === 70) {\n        keypress.preventDefault();\n\n        instance.FullScreen.toggle();\n      }\n    },\n\n    \"beforeClose.fb\": function (e, instance) {\n      if (instance && instance.FullScreen && instance.$refs.container.hasClass(\"fancybox-is-fullscreen\")) {\n        FullScreen.exit();\n      }\n    }\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/guestures.js",
    "content": "// ==========================================================================\n//\n// Guestures\n// Adds touch guestures, handles click and tap events\n//\n// ==========================================================================\n(function (window, document, $) {\n  \"use strict\";\n\n  var requestAFrame = (function () {\n    return (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      window.oRequestAnimationFrame ||\n      // if all else fails, use setTimeout\n      function (callback) {\n        return window.setTimeout(callback, 1000 / 60);\n      }\n    );\n  })();\n\n  var cancelAFrame = (function () {\n    return (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      window.oCancelAnimationFrame ||\n      function (id) {\n        window.clearTimeout(id);\n      }\n    );\n  })();\n\n  var getPointerXY = function (e) {\n    var result = [];\n\n    e = e.originalEvent || e || window.e;\n    e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];\n\n    for (var key in e) {\n      if (e[key].pageX) {\n        result.push({\n          x: e[key].pageX,\n          y: e[key].pageY\n        });\n      } else if (e[key].clientX) {\n        result.push({\n          x: e[key].clientX,\n          y: e[key].clientY\n        });\n      }\n    }\n\n    return result;\n  };\n\n  var distance = function (point2, point1, what) {\n    if (!point1 || !point2) {\n      return 0;\n    }\n\n    if (what === \"x\") {\n      return point2.x - point1.x;\n    } else if (what === \"y\") {\n      return point2.y - point1.y;\n    }\n\n    return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n  };\n\n  var isClickable = function ($el) {\n    if (\n      $el.is('a,area,button,[role=\"button\"],input,label,select,summary,textarea,video,audio,iframe') ||\n      $.isFunction($el.get(0).onclick) ||\n      $el.data(\"selectable\")\n    ) {\n      return true;\n    }\n\n    // Check for attributes like data-fancybox-next or data-fancybox-close\n    for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) {\n      if (atts[i].nodeName.substr(0, 14) === \"data-fancybox-\") {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  var hasScrollbars = function (el) {\n    var overflowY = window.getComputedStyle(el)[\"overflow-y\"],\n      overflowX = window.getComputedStyle(el)[\"overflow-x\"],\n      vertical = (overflowY === \"scroll\" || overflowY === \"auto\") && el.scrollHeight > el.clientHeight,\n      horizontal = (overflowX === \"scroll\" || overflowX === \"auto\") && el.scrollWidth > el.clientWidth;\n\n    return vertical || horizontal;\n  };\n\n  var isScrollable = function ($el) {\n    var rez = false;\n\n    while (true) {\n      rez = hasScrollbars($el.get(0));\n\n      if (rez) {\n        break;\n      }\n\n      $el = $el.parent();\n\n      if (!$el.length || $el.hasClass(\"fancybox-stage\") || $el.is(\"body\")) {\n        break;\n      }\n    }\n\n    return rez;\n  };\n\n  var Guestures = function (instance) {\n    var self = this;\n\n    self.instance = instance;\n\n    self.$bg = instance.$refs.bg;\n    self.$stage = instance.$refs.stage;\n    self.$container = instance.$refs.container;\n\n    self.destroy();\n\n    self.$container.on(\"touchstart.fb.touch mousedown.fb.touch\", $.proxy(self, \"ontouchstart\"));\n  };\n\n  Guestures.prototype.destroy = function () {\n    var self = this;\n\n    self.$container.off(\".fb.touch\");\n\n    $(document).off(\".fb.touch\");\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n      self.requestId = null;\n    }\n\n    if (self.tapped) {\n      clearTimeout(self.tapped);\n      self.tapped = null;\n    }\n  };\n\n  Guestures.prototype.ontouchstart = function (e) {\n    var self = this,\n      $target = $(e.target),\n      instance = self.instance,\n      current = instance.current,\n      $slide = current.$slide,\n      $content = current.$content,\n      isTouchDevice = e.type == \"touchstart\";\n\n    // Do not respond to both (touch and mouse) events\n    if (isTouchDevice) {\n      self.$container.off(\"mousedown.fb.touch\");\n    }\n\n    // Ignore right click\n    if (e.originalEvent && e.originalEvent.button == 2) {\n      return;\n    }\n\n    // Ignore taping on links, buttons, input elements\n    if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) {\n      return;\n    }\n    // Ignore clicks on the scrollbar\n    if (!$target.is(\"img\") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) {\n      return;\n    }\n\n    // Ignore clicks while zooming or closing\n    if (!current || instance.isAnimating || current.$slide.hasClass(\"fancybox-animated\")) {\n      e.stopPropagation();\n      e.preventDefault();\n\n      return;\n    }\n\n    self.realPoints = self.startPoints = getPointerXY(e);\n\n    if (!self.startPoints.length) {\n      return;\n    }\n\n    // Allow other scripts to catch touch event if \"touch\" is set to false\n    if (current.touch) {\n      e.stopPropagation();\n    }\n\n    self.startEvent = e;\n\n    self.canTap = true;\n    self.$target = $target;\n    self.$content = $content;\n    self.opts = current.opts.touch;\n\n    self.isPanning = false;\n    self.isSwiping = false;\n    self.isZooming = false;\n    self.isScrolling = false;\n    self.canPan = instance.canPan();\n\n    self.startTime = new Date().getTime();\n    self.distanceX = self.distanceY = self.distance = 0;\n\n    self.canvasWidth = Math.round($slide[0].clientWidth);\n    self.canvasHeight = Math.round($slide[0].clientHeight);\n\n    self.contentLastPos = null;\n    self.contentStartPos = $.fancybox.getTranslate(self.$content) || {\n      top: 0,\n      left: 0\n    };\n    self.sliderStartPos = $.fancybox.getTranslate($slide);\n\n    // Since position will be absolute, but we need to make it relative to the stage\n    self.stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n    self.sliderStartPos.top -= self.stagePos.top;\n    self.sliderStartPos.left -= self.stagePos.left;\n\n    self.contentStartPos.top -= self.stagePos.top;\n    self.contentStartPos.left -= self.stagePos.left;\n\n    $(document)\n      .off(\".fb.touch\")\n      .on(isTouchDevice ? \"touchend.fb.touch touchcancel.fb.touch\" : \"mouseup.fb.touch mouseleave.fb.touch\", $.proxy(self, \"ontouchend\"))\n      .on(isTouchDevice ? \"touchmove.fb.touch\" : \"mousemove.fb.touch\", $.proxy(self, \"ontouchmove\"));\n\n    if ($.fancybox.isMobile) {\n      document.addEventListener(\"scroll\", self.onscroll, true);\n    }\n\n    // Skip if clicked outside the sliding area\n    if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) {\n      if ($target.is(\".fancybox-image\")) {\n        e.preventDefault();\n      }\n\n      if (!($.fancybox.isMobile && $target.parents(\".fancybox-caption\").length)) {\n        return;\n      }\n    }\n\n    self.isScrollable = isScrollable($target) || isScrollable($target.parent());\n\n    // Check if element is scrollable and try to prevent default behavior (scrolling)\n    if (!($.fancybox.isMobile && self.isScrollable)) {\n      e.preventDefault();\n    }\n\n    // One finger or mouse click - swipe or pan an image\n    if (self.startPoints.length === 1 || current.hasError) {\n      if (self.canPan) {\n        $.fancybox.stop(self.$content);\n\n        self.isPanning = true;\n      } else {\n        self.isSwiping = true;\n      }\n\n      self.$container.addClass(\"fancybox-is-grabbing\");\n    }\n\n    // Two fingers - zoom image\n    if (self.startPoints.length === 2 && current.type === \"image\" && (current.isLoaded || current.$ghost)) {\n      self.canTap = false;\n      self.isSwiping = false;\n      self.isPanning = false;\n\n      self.isZooming = true;\n\n      $.fancybox.stop(self.$content);\n\n      self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft();\n      self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop();\n\n      self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width;\n      self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height;\n\n      self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]);\n    }\n  };\n\n  Guestures.prototype.onscroll = function (e) {\n    var self = this;\n\n    self.isScrolling = true;\n\n    document.removeEventListener(\"scroll\", self.onscroll, true);\n  };\n\n  Guestures.prototype.ontouchmove = function (e) {\n    var self = this;\n\n    // Make sure user has not released over iframe or disabled element\n    if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) {\n      self.ontouchend(e);\n      return;\n    }\n\n    if (self.isScrolling) {\n      self.canTap = false;\n      return;\n    }\n\n    self.newPoints = getPointerXY(e);\n\n    if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) {\n      return;\n    }\n\n    if (!(self.isSwiping && self.isSwiping === true)) {\n      e.preventDefault();\n    }\n\n    self.distanceX = distance(self.newPoints[0], self.startPoints[0], \"x\");\n    self.distanceY = distance(self.newPoints[0], self.startPoints[0], \"y\");\n\n    self.distance = distance(self.newPoints[0], self.startPoints[0]);\n\n    // Skip false ontouchmove events (Chrome)\n    if (self.distance > 0) {\n      if (self.isSwiping) {\n        self.onSwipe(e);\n      } else if (self.isPanning) {\n        self.onPan();\n      } else if (self.isZooming) {\n        self.onZoom();\n      }\n    }\n  };\n\n  Guestures.prototype.onSwipe = function (e) {\n    var self = this,\n      instance = self.instance,\n      swiping = self.isSwiping,\n      left = self.sliderStartPos.left || 0,\n      angle;\n\n    // If direction is not yet determined\n    if (swiping === true) {\n      // We need at least 10px distance to correctly calculate an angle\n      if (Math.abs(self.distance) > 10) {\n        self.canTap = false;\n\n        if (instance.group.length < 2 && self.opts.vertical) {\n          self.isSwiping = \"y\";\n        } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === \"auto\" && $(window).width() > 800)) {\n          self.isSwiping = \"x\";\n        } else {\n          angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI);\n\n          self.isSwiping = angle > 45 && angle < 135 ? \"y\" : \"x\";\n        }\n\n        if (self.isSwiping === \"y\" && $.fancybox.isMobile && self.isScrollable) {\n          self.isScrolling = true;\n\n          return;\n        }\n\n        instance.isDragging = self.isSwiping;\n\n        // Reset points to avoid jumping, because we dropped first swipes to calculate the angle\n        self.startPoints = self.newPoints;\n\n        $.each(instance.slides, function (index, slide) {\n          var slidePos, stagePos;\n\n          $.fancybox.stop(slide.$slide);\n\n          slidePos = $.fancybox.getTranslate(slide.$slide);\n          stagePos = $.fancybox.getTranslate(instance.$refs.stage);\n\n          slide.$slide\n            .css({\n              transform: \"\",\n              opacity: \"\",\n              \"transition-duration\": \"\"\n            })\n            .removeClass(\"fancybox-animated\")\n            .removeClass(function (index, className) {\n              return (className.match(/(^|\\s)fancybox-fx-\\S+/g) || []).join(\" \");\n            });\n\n          if (slide.pos === instance.current.pos) {\n            self.sliderStartPos.top = slidePos.top - stagePos.top;\n            self.sliderStartPos.left = slidePos.left - stagePos.left;\n          }\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: slidePos.top - stagePos.top,\n            left: slidePos.left - stagePos.left\n          });\n        });\n\n        // Stop slideshow\n        if (instance.SlideShow && instance.SlideShow.isActive) {\n          instance.SlideShow.stop();\n        }\n      }\n\n      return;\n    }\n\n    // Sticky edges\n    if (swiping == \"x\") {\n      if (\n        self.distanceX > 0 &&\n        (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop))\n      ) {\n        left = left + Math.pow(self.distanceX, 0.8);\n      } else if (\n        self.distanceX < 0 &&\n        (self.instance.group.length < 2 ||\n          (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop))\n      ) {\n        left = left - Math.pow(-self.distanceX, 0.8);\n      } else {\n        left = left + self.distanceX;\n      }\n    }\n\n    self.sliderLastPos = {\n      top: swiping == \"x\" ? 0 : self.sliderStartPos.top + self.distanceY,\n      left: left\n    };\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n\n      self.requestId = null;\n    }\n\n    self.requestId = requestAFrame(function () {\n      if (self.sliderLastPos) {\n        $.each(self.instance.slides, function (index, slide) {\n          var pos = slide.pos - self.instance.currPos;\n\n          $.fancybox.setTranslate(slide.$slide, {\n            top: self.sliderLastPos.top,\n            left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter\n          });\n        });\n\n        self.$container.addClass(\"fancybox-is-sliding\");\n      }\n    });\n  };\n\n  Guestures.prototype.onPan = function () {\n    var self = this;\n\n    // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit)\n    if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) {\n      self.startPoints = self.newPoints;\n      return;\n    }\n\n    self.canTap = false;\n\n    self.contentLastPos = self.limitMovement();\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n    }\n\n    self.requestId = requestAFrame(function () {\n      $.fancybox.setTranslate(self.$content, self.contentLastPos);\n    });\n  };\n\n  // Make panning sticky to the edges\n  Guestures.prototype.limitMovement = function () {\n    var self = this;\n\n    var canvasWidth = self.canvasWidth;\n    var canvasHeight = self.canvasHeight;\n\n    var distanceX = self.distanceX;\n    var distanceY = self.distanceY;\n\n    var contentStartPos = self.contentStartPos;\n\n    var currentOffsetX = contentStartPos.left;\n    var currentOffsetY = contentStartPos.top;\n\n    var currentWidth = contentStartPos.width;\n    var currentHeight = contentStartPos.height;\n\n    var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY;\n\n    if (currentWidth > canvasWidth) {\n      newOffsetX = currentOffsetX + distanceX;\n    } else {\n      newOffsetX = currentOffsetX;\n    }\n\n    newOffsetY = currentOffsetY + distanceY;\n\n    // Slow down proportionally to traveled distance\n    minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5);\n    minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5);\n\n    maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5);\n    maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5);\n\n    //   ->\n    if (distanceX > 0 && newOffsetX > minTranslateX) {\n      newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0;\n    }\n\n    //    <-\n    if (distanceX < 0 && newOffsetX < maxTranslateX) {\n      newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0;\n    }\n\n    //   \\/\n    if (distanceY > 0 && newOffsetY > minTranslateY) {\n      newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0;\n    }\n\n    //   /\\\n    if (distanceY < 0 && newOffsetY < maxTranslateY) {\n      newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0;\n    }\n\n    return {\n      top: newOffsetY,\n      left: newOffsetX\n    };\n  };\n\n  Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) {\n    var self = this;\n\n    var canvasWidth = self.canvasWidth;\n    var canvasHeight = self.canvasHeight;\n\n    if (newWidth > canvasWidth) {\n      newOffsetX = newOffsetX > 0 ? 0 : newOffsetX;\n      newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX;\n    } else {\n      // Center horizontally\n      newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2);\n    }\n\n    if (newHeight > canvasHeight) {\n      newOffsetY = newOffsetY > 0 ? 0 : newOffsetY;\n      newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY;\n    } else {\n      // Center vertically\n      newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2);\n    }\n\n    return {\n      top: newOffsetY,\n      left: newOffsetX\n    };\n  };\n\n  Guestures.prototype.onZoom = function () {\n    var self = this;\n\n    // Calculate current distance between points to get pinch ratio and new width and height\n    var contentStartPos = self.contentStartPos;\n\n    var currentWidth = contentStartPos.width;\n    var currentHeight = contentStartPos.height;\n\n    var currentOffsetX = contentStartPos.left;\n    var currentOffsetY = contentStartPos.top;\n\n    var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]);\n\n    var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers;\n\n    var newWidth = Math.floor(currentWidth * pinchRatio);\n    var newHeight = Math.floor(currentHeight * pinchRatio);\n\n    // This is the translation due to pinch-zooming\n    var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX;\n    var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY;\n\n    // Point between the two touches\n    var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft();\n    var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop();\n\n    // And this is the translation due to translation of the centerpoint\n    // between the two fingers\n    var translateFromTranslatingX = centerPointEndX - self.centerPointStartX;\n    var translateFromTranslatingY = centerPointEndY - self.centerPointStartY;\n\n    // The new offset is the old/current one plus the total translation\n    var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX);\n    var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY);\n\n    var newPos = {\n      top: newOffsetY,\n      left: newOffsetX,\n      scaleX: pinchRatio,\n      scaleY: pinchRatio\n    };\n\n    self.canTap = false;\n\n    self.newWidth = newWidth;\n    self.newHeight = newHeight;\n\n    self.contentLastPos = newPos;\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n    }\n\n    self.requestId = requestAFrame(function () {\n      $.fancybox.setTranslate(self.$content, self.contentLastPos);\n    });\n  };\n\n  Guestures.prototype.ontouchend = function (e) {\n    var self = this;\n\n    var swiping = self.isSwiping;\n    var panning = self.isPanning;\n    var zooming = self.isZooming;\n    var scrolling = self.isScrolling;\n\n    self.endPoints = getPointerXY(e);\n    self.dMs = Math.max(new Date().getTime() - self.startTime, 1);\n\n    self.$container.removeClass(\"fancybox-is-grabbing\");\n\n    $(document).off(\".fb.touch\");\n\n    document.removeEventListener(\"scroll\", self.onscroll, true);\n\n    if (self.requestId) {\n      cancelAFrame(self.requestId);\n\n      self.requestId = null;\n    }\n\n    self.isSwiping = false;\n    self.isPanning = false;\n    self.isZooming = false;\n    self.isScrolling = false;\n\n    self.instance.isDragging = false;\n\n    if (self.canTap) {\n      return self.onTap(e);\n    }\n\n    self.speed = 100;\n\n    // Speed in px/ms\n    self.velocityX = (self.distanceX / self.dMs) * 0.5;\n    self.velocityY = (self.distanceY / self.dMs) * 0.5;\n\n    if (panning) {\n      self.endPanning();\n    } else if (zooming) {\n      self.endZooming();\n    } else {\n      self.endSwiping(swiping, scrolling);\n    }\n\n    return;\n  };\n\n  Guestures.prototype.endSwiping = function (swiping, scrolling) {\n    var self = this,\n      ret = false,\n      len = self.instance.group.length,\n      distanceX = Math.abs(self.distanceX),\n      canAdvance = swiping == \"x\" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50),\n      speedX = 300;\n\n    self.sliderLastPos = null;\n\n    // Close if swiped vertically / navigate if horizontally\n    if (swiping == \"y\" && !scrolling && Math.abs(self.distanceY) > 50) {\n      // Continue vertical movement\n      $.fancybox.animate(\n        self.instance.current.$slide, {\n          top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150,\n          opacity: 0\n        },\n        200\n      );\n      ret = self.instance.close(true, 250);\n    } else if (canAdvance && self.distanceX > 0) {\n      ret = self.instance.previous(speedX);\n    } else if (canAdvance && self.distanceX < 0) {\n      ret = self.instance.next(speedX);\n    }\n\n    if (ret === false && (swiping == \"x\" || swiping == \"y\")) {\n      self.instance.centerSlide(200);\n    }\n\n    self.$container.removeClass(\"fancybox-is-sliding\");\n  };\n\n  // Limit panning from edges\n  // ========================\n  Guestures.prototype.endPanning = function () {\n    var self = this,\n      newOffsetX,\n      newOffsetY,\n      newPos;\n\n    if (!self.contentLastPos) {\n      return;\n    }\n\n    if (self.opts.momentum === false || self.dMs > 350) {\n      newOffsetX = self.contentLastPos.left;\n      newOffsetY = self.contentLastPos.top;\n    } else {\n      // Continue movement\n      newOffsetX = self.contentLastPos.left + self.velocityX * 500;\n      newOffsetY = self.contentLastPos.top + self.velocityY * 500;\n    }\n\n    newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height);\n\n    newPos.width = self.contentStartPos.width;\n    newPos.height = self.contentStartPos.height;\n\n    $.fancybox.animate(self.$content, newPos, 366);\n  };\n\n  Guestures.prototype.endZooming = function () {\n    var self = this;\n\n    var current = self.instance.current;\n\n    var newOffsetX, newOffsetY, newPos, reset;\n\n    var newWidth = self.newWidth;\n    var newHeight = self.newHeight;\n\n    if (!self.contentLastPos) {\n      return;\n    }\n\n    newOffsetX = self.contentLastPos.left;\n    newOffsetY = self.contentLastPos.top;\n\n    reset = {\n      top: newOffsetY,\n      left: newOffsetX,\n      width: newWidth,\n      height: newHeight,\n      scaleX: 1,\n      scaleY: 1\n    };\n\n    // Reset scalex/scaleY values; this helps for perfomance and does not break animation\n    $.fancybox.setTranslate(self.$content, reset);\n\n    if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) {\n      self.instance.scaleToFit(150);\n    } else if (newWidth > current.width || newHeight > current.height) {\n      self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150);\n    } else {\n      newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight);\n\n      $.fancybox.animate(self.$content, newPos, 150);\n    }\n  };\n\n  Guestures.prototype.onTap = function (e) {\n    var self = this;\n    var $target = $(e.target);\n\n    var instance = self.instance;\n    var current = instance.current;\n\n    var endPoints = (e && getPointerXY(e)) || self.startPoints;\n\n    var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0;\n    var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0;\n\n    var where;\n\n    var process = function (prefix) {\n      var action = current.opts[prefix];\n\n      if ($.isFunction(action)) {\n        action = action.apply(instance, [current, e]);\n      }\n\n      if (!action) {\n        return;\n      }\n\n      switch (action) {\n        case \"close\":\n          instance.close(self.startEvent);\n\n          break;\n\n        case \"toggleControls\":\n          instance.toggleControls();\n\n          break;\n\n        case \"next\":\n          instance.next();\n\n          break;\n\n        case \"nextOrClose\":\n          if (instance.group.length > 1) {\n            instance.next();\n          } else {\n            instance.close(self.startEvent);\n          }\n\n          break;\n\n        case \"zoom\":\n          if (current.type == \"image\" && (current.isLoaded || current.$ghost)) {\n            if (instance.canPan()) {\n              instance.scaleToFit();\n            } else if (instance.isScaledDown()) {\n              instance.scaleToActual(tapX, tapY);\n            } else if (instance.group.length < 2) {\n              instance.close(self.startEvent);\n            }\n          }\n\n          break;\n      }\n    };\n\n    // Ignore right click\n    if (e.originalEvent && e.originalEvent.button == 2) {\n      return;\n    }\n\n    // Skip if clicked on the scrollbar\n    if (!$target.is(\"img\") && tapX > $target[0].clientWidth + $target.offset().left) {\n      return;\n    }\n\n    // Check where is clicked\n    if ($target.is(\".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container\")) {\n      where = \"Outside\";\n    } else if ($target.is(\".fancybox-slide\")) {\n      where = \"Slide\";\n    } else if (\n      instance.current.$content &&\n      instance.current.$content\n      .find($target)\n      .addBack()\n      .filter($target).length\n    ) {\n      where = \"Content\";\n    } else {\n      return;\n    }\n\n    // Check if this is a double tap\n    if (self.tapped) {\n      // Stop previously created single tap\n      clearTimeout(self.tapped);\n      self.tapped = null;\n\n      // Skip if distance between taps is too big\n      if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) {\n        return this;\n      }\n\n      // OK, now we assume that this is a double-tap\n      process(\"dblclick\" + where);\n    } else {\n      // Single tap will be processed if user has not clicked second time within 300ms\n      // or there is no need to wait for double-tap\n      self.tapX = tapX;\n      self.tapY = tapY;\n\n      if (current.opts[\"dblclick\" + where] && current.opts[\"dblclick\" + where] !== current.opts[\"click\" + where]) {\n        self.tapped = setTimeout(function () {\n          self.tapped = null;\n\n          if (!instance.isAnimating) {\n            process(\"click\" + where);\n          }\n        }, 500);\n      } else {\n        process(\"click\" + where);\n      }\n    }\n\n    return this;\n  };\n\n  $(document)\n    .on(\"onActivate.fb\", function (e, instance) {\n      if (instance && !instance.Guestures) {\n        instance.Guestures = new Guestures(instance);\n      }\n    })\n    .on(\"beforeClose.fb\", function (e, instance) {\n      if (instance && instance.Guestures) {\n        instance.Guestures.destroy();\n      }\n    });\n})(window, document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/hash.js",
    "content": "// ==========================================================================\n//\n// Hash\n// Enables linking to each modal\n//\n// ==========================================================================\n(function (window, document, $) {\n  \"use strict\";\n\n  // Simple $.escapeSelector polyfill (for jQuery prior v3)\n  if (!$.escapeSelector) {\n    $.escapeSelector = function (sel) {\n      var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n      var fcssescape = function (ch, asCodePoint) {\n        if (asCodePoint) {\n          // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n          if (ch === \"\\0\") {\n            return \"\\uFFFD\";\n          }\n\n          // Control characters and (dependent upon position) numbers get escaped as code points\n          return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n        }\n\n        // Other potentially-special ASCII characters get backslash-escaped\n        return \"\\\\\" + ch;\n      };\n\n      return (sel + \"\").replace(rcssescape, fcssescape);\n    };\n  }\n\n  // Get info about gallery name and current index from url\n  function parseUrl() {\n    var hash = window.location.hash.substr(1),\n      rez = hash.split(\"-\"),\n      index = rez.length > 1 && /^\\+?\\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1,\n      gallery = rez.join(\"-\");\n\n    return {\n      hash: hash,\n      /* Index is starting from 1 */\n      index: index < 1 ? 1 : index,\n      gallery: gallery\n    };\n  }\n\n  // Trigger click evnt on links to open new fancyBox instance\n  function triggerFromUrl(url) {\n    if (url.gallery !== \"\") {\n      // If we can find element matching 'data-fancybox' atribute,\n      // then triggering click event should start fancyBox\n      $(\"[data-fancybox='\" + $.escapeSelector(url.gallery) + \"']\")\n        .eq(url.index - 1)\n        .focus()\n        .trigger(\"click.fb-start\");\n    }\n  }\n\n  // Get gallery name from current instance\n  function getGalleryID(instance) {\n    var opts, ret;\n\n    if (!instance) {\n      return false;\n    }\n\n    opts = instance.current ? instance.current.opts : instance.opts;\n    ret = opts.hash || (opts.$orig ? opts.$orig.data(\"fancybox\") || opts.$orig.data(\"fancybox-trigger\") : \"\");\n\n    return ret === \"\" ? false : ret;\n  }\n\n  // Start when DOM becomes ready\n  $(function () {\n    // Check if user has disabled this module\n    if ($.fancybox.defaults.hash === false) {\n      return;\n    }\n\n    // Update hash when opening/closing fancyBox\n    $(document).on({\n      \"onInit.fb\": function (e, instance) {\n        var url, gallery;\n\n        if (instance.group[instance.currIndex].opts.hash === false) {\n          return;\n        }\n\n        url = parseUrl();\n        gallery = getGalleryID(instance);\n\n        // Make sure gallery start index matches index from hash\n        if (gallery && url.gallery && gallery == url.gallery) {\n          instance.currIndex = url.index - 1;\n        }\n      },\n\n      \"beforeShow.fb\": function (e, instance, current, firstRun) {\n        var gallery;\n\n        if (!current || current.opts.hash === false) {\n          return;\n        }\n\n        // Check if need to update window hash\n        gallery = getGalleryID(instance);\n\n        if (!gallery) {\n          return;\n        }\n\n        // Variable containing last hash value set by fancyBox\n        // It will be used to determine if fancyBox needs to close after hash change is detected\n        instance.currentHash = gallery + (instance.group.length > 1 ? \"-\" + (current.index + 1) : \"\");\n\n        // If current hash is the same (this instance most likely is opened by hashchange), then do nothing\n        if (window.location.hash === \"#\" + instance.currentHash) {\n          return;\n        }\n\n        if (firstRun && !instance.origHash) {\n          instance.origHash = window.location.hash;\n        }\n\n        if (instance.hashTimer) {\n          clearTimeout(instance.hashTimer);\n        }\n\n        // Update hash\n        instance.hashTimer = setTimeout(function () {\n          if (\"replaceState\" in window.history) {\n            window.history[firstRun ? \"pushState\" : \"replaceState\"]({},\n              document.title,\n              window.location.pathname + window.location.search + \"#\" + instance.currentHash\n            );\n\n            if (firstRun) {\n              instance.hasCreatedHistory = true;\n            }\n          } else {\n            window.location.hash = instance.currentHash;\n          }\n\n          instance.hashTimer = null;\n        }, 300);\n      },\n\n      \"beforeClose.fb\": function (e, instance, current) {\n        if (!current || current.opts.hash === false) {\n          return;\n        }\n\n        clearTimeout(instance.hashTimer);\n\n        // Goto previous history entry\n        if (instance.currentHash && instance.hasCreatedHistory) {\n          window.history.back();\n        } else if (instance.currentHash) {\n          if (\"replaceState\" in window.history) {\n            window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || \"\"));\n          } else {\n            window.location.hash = instance.origHash;\n          }\n        }\n\n        instance.currentHash = null;\n      }\n    });\n\n    // Check if need to start/close after url has changed\n    $(window).on(\"hashchange.fb\", function () {\n      var url = parseUrl(),\n        fb = null;\n\n      // Find last fancyBox instance that has \"hash\"\n      $.each(\n        $(\".fancybox-container\")\n        .get()\n        .reverse(),\n        function (index, value) {\n          var tmp = $(value).data(\"FancyBox\");\n\n          if (tmp && tmp.currentHash) {\n            fb = tmp;\n            return false;\n          }\n        }\n      );\n\n      if (fb) {\n        // Now, compare hash values\n        if (fb.currentHash !== url.gallery + \"-\" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) {\n          fb.currentHash = null;\n\n          fb.close();\n        }\n      } else if (url.gallery !== \"\") {\n        triggerFromUrl(url);\n      }\n    });\n\n    // Check current hash and trigger click event on matching element to start fancyBox, if needed\n    setTimeout(function () {\n      if (!$.fancybox.getInstance()) {\n        triggerFromUrl(parseUrl());\n      }\n    }, 50);\n  });\n})(window, document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/media.js",
    "content": "// ==========================================================================\n//\n// Media\n// Adds additional media type support\n//\n// ==========================================================================\n(function ($) {\n  \"use strict\";\n\n  // Object containing properties for each media type\n  var defaults = {\n    youtube: {\n      matcher: /(youtube\\.com|youtu\\.be|youtube\\-nocookie\\.com)\\/(watch\\?(.*&)?v=|v\\/|u\\/|embed\\/?)?(videoseries\\?list=(.*)|[\\w-]{11}|\\?listType=(.*)&list=(.*))(.*)/i,\n      params: {\n        autoplay: 1,\n        autohide: 1,\n        fs: 1,\n        rel: 0,\n        hd: 1,\n        wmode: \"transparent\",\n        enablejsapi: 1,\n        html5: 1\n      },\n      paramPlace: 8,\n      type: \"iframe\",\n      url: \"https://www.youtube-nocookie.com/embed/$4\",\n      thumb: \"https://img.youtube.com/vi/$4/hqdefault.jpg\"\n    },\n\n    vimeo: {\n      matcher: /^.+vimeo.com\\/(.*\\/)?([\\d]+)(.*)?/,\n      params: {\n        autoplay: 1,\n        hd: 1,\n        show_title: 1,\n        show_byline: 1,\n        show_portrait: 0,\n        fullscreen: 1\n      },\n      paramPlace: 3,\n      type: \"iframe\",\n      url: \"//player.vimeo.com/video/$2\"\n    },\n\n    instagram: {\n      matcher: /(instagr\\.am|instagram\\.com)\\/p\\/([a-zA-Z0-9_\\-]+)\\/?/i,\n      type: \"image\",\n      url: \"//$1/p/$2/media/?size=l\"\n    },\n\n    // Examples:\n    // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16\n    // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z\n    // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en\n    // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572\n    gmap_place: {\n      matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(((maps\\/(place\\/(.*)\\/)?\\@(.*),(\\d+.?\\d+?)z))|(\\?ll=))(.*)?/i,\n      type: \"iframe\",\n      url: function (rez) {\n        return (\n          \"//maps.google.\" +\n          rez[2] +\n          \"/?ll=\" +\n          (rez[9] ? rez[9] + \"&z=\" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\\//, \"&\") : \"\") : rez[12] + \"\").replace(/\\?/, \"&\") +\n          \"&output=\" +\n          (rez[12] && rez[12].indexOf(\"layer=c\") > 0 ? \"svembed\" : \"embed\")\n        );\n      }\n    },\n\n    // Examples:\n    // https://www.google.com/maps/search/Empire+State+Building/\n    // https://www.google.com/maps/search/?api=1&query=centurylink+field\n    // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393\n    gmap_search: {\n      matcher: /(maps\\.)?google\\.([a-z]{2,3}(\\.[a-z]{2})?)\\/(maps\\/search\\/)(.*)/i,\n      type: \"iframe\",\n      url: function (rez) {\n        return \"//maps.google.\" + rez[2] + \"/maps?q=\" + rez[5].replace(\"query=\", \"q=\").replace(\"api=1\", \"\") + \"&output=embed\";\n      }\n    }\n  };\n\n  // Formats matching url to final form\n  var format = function (url, rez, params) {\n    if (!url) {\n      return;\n    }\n\n    params = params || \"\";\n\n    if ($.type(params) === \"object\") {\n      params = $.param(params, true);\n    }\n\n    $.each(rez, function (key, value) {\n      url = url.replace(\"$\" + key, value || \"\");\n    });\n\n    if (params.length) {\n      url += (url.indexOf(\"?\") > 0 ? \"&\" : \"?\") + params;\n    }\n\n    return url;\n  };\n\n  $(document).on(\"objectNeedsType.fb\", function (e, instance, item) {\n    var url = item.src || \"\",\n      type = false,\n      media,\n      thumb,\n      rez,\n      params,\n      urlParams,\n      paramObj,\n      provider;\n\n    media = $.extend(true, {}, defaults, item.opts.media);\n\n    // Look for any matching media type\n    $.each(media, function (providerName, providerOpts) {\n      rez = url.match(providerOpts.matcher);\n\n      if (!rez) {\n        return;\n      }\n\n      type = providerOpts.type;\n      provider = providerName;\n      paramObj = {};\n\n      if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) {\n        urlParams = rez[providerOpts.paramPlace];\n\n        if (urlParams[0] == \"?\") {\n          urlParams = urlParams.substring(1);\n        }\n\n        urlParams = urlParams.split(\"&\");\n\n        for (var m = 0; m < urlParams.length; ++m) {\n          var p = urlParams[m].split(\"=\", 2);\n\n          if (p.length == 2) {\n            paramObj[p[0]] = decodeURIComponent(p[1].replace(/\\+/g, \" \"));\n          }\n        }\n      }\n\n      params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj);\n\n      url =\n        $.type(providerOpts.url) === \"function\" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params);\n\n      thumb =\n        $.type(providerOpts.thumb) === \"function\" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez);\n\n      if (providerName === \"youtube\") {\n        url = url.replace(/&t=((\\d+)m)?(\\d+)s/, function (match, p1, m, s) {\n          return \"&start=\" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10));\n        });\n      } else if (providerName === \"vimeo\") {\n        url = url.replace(\"&%23\", \"#\");\n      }\n\n      return false;\n    });\n\n    // If it is found, then change content type and update the url\n\n    if (type) {\n      if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) {\n        item.opts.thumb = thumb;\n      }\n\n      if (type === \"iframe\") {\n        item.opts = $.extend(true, item.opts, {\n          iframe: {\n            preload: false,\n            attr: {\n              scrolling: \"no\"\n            }\n          }\n        });\n      }\n\n      $.extend(item, {\n        type: type,\n        src: url,\n        origSrc: item.src,\n        contentSource: provider,\n        contentType: type === \"image\" ? \"image\" : provider == \"gmap_place\" || provider == \"gmap_search\" ? \"map\" : \"video\"\n      });\n    } else if (url) {\n      item.type = item.opts.defaultType;\n    }\n  });\n\n  // Load YouTube/Video API on request to detect when video finished playing\n  var VideoAPILoader = {\n    youtube: {\n      src: \"https://www.youtube.com/iframe_api\",\n      class: \"YT\",\n      loading: false,\n      loaded: false\n    },\n\n    vimeo: {\n      src: \"https://player.vimeo.com/api/player.js\",\n      class: \"Vimeo\",\n      loading: false,\n      loaded: false\n    },\n\n    load: function (vendor) {\n      var _this = this,\n        script;\n\n      if (this[vendor].loaded) {\n        setTimeout(function () {\n          _this.done(vendor);\n        });\n        return;\n      }\n\n      if (this[vendor].loading) {\n        return;\n      }\n\n      this[vendor].loading = true;\n\n      script = document.createElement(\"script\");\n      script.type = \"text/javascript\";\n      script.src = this[vendor].src;\n\n      if (vendor === \"youtube\") {\n        window.onYouTubeIframeAPIReady = function () {\n          _this[vendor].loaded = true;\n          _this.done(vendor);\n        };\n      } else {\n        script.onload = function () {\n          _this[vendor].loaded = true;\n          _this.done(vendor);\n        };\n      }\n\n      document.body.appendChild(script);\n    },\n    done: function (vendor) {\n      var instance, $el, player;\n\n      if (vendor === \"youtube\") {\n        delete window.onYouTubeIframeAPIReady;\n      }\n\n      instance = $.fancybox.getInstance();\n\n      if (instance) {\n        $el = instance.current.$content.find(\"iframe\");\n\n        if (vendor === \"youtube\" && YT !== undefined && YT) {\n          player = new YT.Player($el.attr(\"id\"), {\n            events: {\n              onStateChange: function (e) {\n                if (e.data == 0) {\n                  instance.next();\n                }\n              }\n            }\n          });\n        } else if (vendor === \"vimeo\" && Vimeo !== undefined && Vimeo) {\n          player = new Vimeo.Player($el);\n\n          player.on(\"ended\", function () {\n            instance.next();\n          });\n        }\n      }\n    }\n  };\n\n  $(document).on({\n    \"afterShow.fb\": function (e, instance, current) {\n      if (instance.group.length > 1 && (current.contentSource === \"youtube\" || current.contentSource === \"vimeo\")) {\n        VideoAPILoader.load(current.contentSource);\n      }\n    }\n  });\n})(jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/share.js",
    "content": "//// ==========================================================================\n//\n// Share\n// Displays simple form for sharing current url\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  $.extend(true, $.fancybox.defaults, {\n    btnTpl: {\n      share: '<button data-fancybox-share class=\"fancybox-button fancybox-button--share\" title=\"{{SHARE}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z\"/></svg>' +\n        \"</button>\"\n    },\n    share: {\n      url: function (instance, item) {\n        return (\n          (!instance.currentHash && !(item.type === \"inline\" || item.type === \"html\") ? item.origSrc || item.src : false) || window.location\n        );\n      },\n      tpl: '<div class=\"fancybox-share\">' +\n        \"<h1>{{SHARE}}</h1>\" +\n        \"<p>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--fb\" href=\"https://www.facebook.com/sharer/sharer.php?u={{url}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196\" /></svg>' +\n        \"<span>Facebook</span>\" +\n        \"</a>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--tw\" href=\"https://twitter.com/intent/tweet?url={{url}}&text={{descr}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z\" /></svg>' +\n        \"<span>Twitter</span>\" +\n        \"</a>\" +\n        '<a class=\"fancybox-share__button fancybox-share__button--pt\" href=\"https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}\">' +\n        '<svg viewBox=\"0 0 512 512\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z\" fill=\"#fff\"/></svg>' +\n        \"<span>Pinterest</span>\" +\n        \"</a>\" +\n        \"</p>\" +\n        '<p><input class=\"fancybox-share__input\" type=\"text\" value=\"{{url_raw}}\" onclick=\"select()\" /></p>' +\n        \"</div>\"\n    }\n  });\n\n  function escapeHtml(string) {\n    var entityMap = {\n      \"&\": \"&amp;\",\n      \"<\": \"&lt;\",\n      \">\": \"&gt;\",\n      '\"': \"&quot;\",\n      \"'\": \"&#39;\",\n      \"/\": \"&#x2F;\",\n      \"`\": \"&#x60;\",\n      \"=\": \"&#x3D;\"\n    };\n\n    return String(string).replace(/[&<>\"'`=\\/]/g, function (s) {\n      return entityMap[s];\n    });\n  }\n\n  $(document).on(\"click\", \"[data-fancybox-share]\", function () {\n    var instance = $.fancybox.getInstance(),\n      current = instance.current || null,\n      url,\n      tpl;\n\n    if (!current) {\n      return;\n    }\n\n    if ($.type(current.opts.share.url) === \"function\") {\n      url = current.opts.share.url.apply(current, [instance, current]);\n    }\n\n    tpl = current.opts.share.tpl\n      .replace(/\\{\\{media\\}\\}/g, current.type === \"image\" ? encodeURIComponent(current.src) : \"\")\n      .replace(/\\{\\{url\\}\\}/g, encodeURIComponent(url))\n      .replace(/\\{\\{url_raw\\}\\}/g, escapeHtml(url))\n      .replace(/\\{\\{descr\\}\\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : \"\");\n\n    $.fancybox.open({\n      src: instance.translate(instance, tpl),\n      type: \"html\",\n      opts: {\n        touch: false,\n        animationEffect: false,\n        afterLoad: function (shareInstance, shareCurrent) {\n          // Close self if parent instance is closing\n          instance.$refs.container.one(\"beforeClose.fb\", function () {\n            shareInstance.close(null, 0);\n          });\n\n          // Opening links in a popup window\n          shareCurrent.$content.find(\".fancybox-share__button\").click(function () {\n            window.open(this.href, \"Share\", \"width=550, height=450\");\n            return false;\n          });\n        },\n        mobile: {\n          autoFocus: false\n        }\n      }\n    });\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/slideshow.js",
    "content": "// ==========================================================================\n//\n// SlideShow\n// Enables slideshow functionality\n//\n// Example of usage:\n// $.fancybox.getInstance().SlideShow.start()\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  $.extend(true, $.fancybox.defaults, {\n    btnTpl: {\n      slideShow: '<button data-fancybox-play class=\"fancybox-button fancybox-button--play\" title=\"{{PLAY_START}}\">' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M6.5 5.4v13.2l11-6.6z\"/></svg>' +\n        '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z\"/></svg>' +\n        \"</button>\"\n    },\n    slideShow: {\n      autoStart: false,\n      speed: 3000,\n      progress: true\n    }\n  });\n\n  var SlideShow = function (instance) {\n    this.instance = instance;\n    this.init();\n  };\n\n  $.extend(SlideShow.prototype, {\n    timer: null,\n    isActive: false,\n    $button: null,\n\n    init: function () {\n      var self = this,\n        instance = self.instance,\n        opts = instance.group[instance.currIndex].opts.slideShow;\n\n      self.$button = instance.$refs.toolbar.find(\"[data-fancybox-play]\").on(\"click\", function () {\n        self.toggle();\n      });\n\n      if (instance.group.length < 2 || !opts) {\n        self.$button.hide();\n      } else if (opts.progress) {\n        self.$progress = $('<div class=\"fancybox-progress\"></div>').appendTo(instance.$refs.inner);\n      }\n    },\n\n    set: function (force) {\n      var self = this,\n        instance = self.instance,\n        current = instance.current;\n\n      // Check if reached last element\n      if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) {\n        if (self.isActive && current.contentType !== \"video\") {\n          if (self.$progress) {\n            $.fancybox.animate(self.$progress.show(), {\n              scaleX: 1\n            }, current.opts.slideShow.speed);\n          }\n\n          self.timer = setTimeout(function () {\n            if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) {\n              instance.jumpTo(0);\n            } else {\n              instance.next();\n            }\n          }, current.opts.slideShow.speed);\n        }\n      } else {\n        self.stop();\n        instance.idleSecondsCounter = 0;\n        instance.showControls();\n      }\n    },\n\n    clear: function () {\n      var self = this;\n\n      clearTimeout(self.timer);\n\n      self.timer = null;\n\n      if (self.$progress) {\n        self.$progress.removeAttr(\"style\").hide();\n      }\n    },\n\n    start: function () {\n      var self = this,\n        current = self.instance.current;\n\n      if (current) {\n        self.$button\n          .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP)\n          .removeClass(\"fancybox-button--play\")\n          .addClass(\"fancybox-button--pause\");\n\n        self.isActive = true;\n\n        if (current.isComplete) {\n          self.set(true);\n        }\n\n        self.instance.trigger(\"onSlideShowChange\", true);\n      }\n    },\n\n    stop: function () {\n      var self = this,\n        current = self.instance.current;\n\n      self.clear();\n\n      self.$button\n        .attr(\"title\", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START)\n        .removeClass(\"fancybox-button--pause\")\n        .addClass(\"fancybox-button--play\");\n\n      self.isActive = false;\n\n      self.instance.trigger(\"onSlideShowChange\", false);\n\n      if (self.$progress) {\n        self.$progress.removeAttr(\"style\").hide();\n      }\n    },\n\n    toggle: function () {\n      var self = this;\n\n      if (self.isActive) {\n        self.stop();\n      } else {\n        self.start();\n      }\n    }\n  });\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      if (instance && !instance.SlideShow) {\n        instance.SlideShow = new SlideShow(instance);\n      }\n    },\n\n    \"beforeShow.fb\": function (e, instance, current, firstRun) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (firstRun) {\n        if (SlideShow && current.opts.slideShow.autoStart) {\n          SlideShow.start();\n        }\n      } else if (SlideShow && SlideShow.isActive) {\n        SlideShow.clear();\n      }\n    },\n\n    \"afterShow.fb\": function (e, instance, current) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (SlideShow && SlideShow.isActive) {\n        SlideShow.set();\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      var SlideShow = instance && instance.SlideShow;\n\n      // \"P\" or Spacebar\n      if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is(\"button,a,input\")) {\n        keypress.preventDefault();\n\n        SlideShow.toggle();\n      }\n    },\n\n    \"beforeClose.fb onDeactivate.fb\": function (e, instance) {\n      var SlideShow = instance && instance.SlideShow;\n\n      if (SlideShow) {\n        SlideShow.stop();\n      }\n    }\n  });\n\n  // Page Visibility API to pause slideshow when window is not active\n  $(document).on(\"visibilitychange\", function () {\n    var instance = $.fancybox.getInstance(),\n      SlideShow = instance && instance.SlideShow;\n\n    if (SlideShow && SlideShow.isActive) {\n      if (document.hidden) {\n        SlideShow.clear();\n      } else {\n        SlideShow.set();\n      }\n    }\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/thumbs.js",
    "content": "// ==========================================================================\n//\n// Thumbs\n// Displays thumbnails in a grid\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  var CLASS = \"fancybox-thumbs\",\n    CLASS_ACTIVE = CLASS + \"-active\";\n\n  // Make sure there are default values\n  $.fancybox.defaults = $.extend(\n    true, {\n      btnTpl: {\n        thumbs: '<button data-fancybox-thumbs class=\"fancybox-button fancybox-button--thumbs\" title=\"{{THUMBS}}\">' +\n          '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z\"/></svg>' +\n          \"</button>\"\n      },\n      thumbs: {\n        autoStart: false, // Display thumbnails on opening\n        hideOnClose: true, // Hide thumbnail grid when closing animation starts\n        parentEl: \".fancybox-container\", // Container is injected into this element\n        axis: \"y\" // Vertical (y) or horizontal (x) scrolling\n      }\n    },\n    $.fancybox.defaults\n  );\n\n  var FancyThumbs = function (instance) {\n    this.init(instance);\n  };\n\n  $.extend(FancyThumbs.prototype, {\n    $button: null,\n    $grid: null,\n    $list: null,\n    isVisible: false,\n    isActive: false,\n\n    init: function (instance) {\n      var self = this,\n        group = instance.group,\n        enabled = 0;\n\n      self.instance = instance;\n      self.opts = group[instance.currIndex].opts.thumbs;\n\n      instance.Thumbs = self;\n\n      self.$button = instance.$refs.toolbar.find(\"[data-fancybox-thumbs]\");\n\n      // Enable thumbs if at least two group items have thumbnails\n      for (var i = 0, len = group.length; i < len; i++) {\n        if (group[i].thumb) {\n          enabled++;\n        }\n\n        if (enabled > 1) {\n          break;\n        }\n      }\n\n      if (enabled > 1 && !!self.opts) {\n        self.$button.removeAttr(\"style\").on(\"click\", function () {\n          self.toggle();\n        });\n\n        self.isActive = true;\n      } else {\n        self.$button.hide();\n      }\n    },\n\n    create: function () {\n      var self = this,\n        instance = self.instance,\n        parentEl = self.opts.parentEl,\n        list = [],\n        src;\n\n      if (!self.$grid) {\n        // Create main element\n        self.$grid = $('<div class=\"' + CLASS + \" \" + CLASS + \"-\" + self.opts.axis + '\"></div>').appendTo(\n          instance.$refs.container\n          .find(parentEl)\n          .addBack()\n          .filter(parentEl)\n        );\n\n        // Add \"click\" event that performs gallery navigation\n        self.$grid.on(\"click\", \"a\", function () {\n          instance.jumpTo($(this).attr(\"data-index\"));\n        });\n      }\n\n      // Build the list\n      if (!self.$list) {\n        self.$list = $('<div class=\"' + CLASS + '__list\">').appendTo(self.$grid);\n      }\n\n      $.each(instance.group, function (i, item) {\n        src = item.thumb;\n\n        if (!src && item.type === \"image\") {\n          src = item.src;\n        }\n\n        list.push(\n          '<a href=\"javascript:;\" tabindex=\"0\" data-index=\"' +\n          i +\n          '\"' +\n          (src && src.length ? ' style=\"background-image:url(' + src + ')\"' : 'class=\"fancybox-thumbs-missing\"') +\n          \"></a>\"\n        );\n      });\n\n      self.$list[0].innerHTML = list.join(\"\");\n\n      if (self.opts.axis === \"x\") {\n        // Set fixed width for list element to enable horizontal scrolling\n        self.$list.width(\n          parseInt(self.$grid.css(\"padding-right\"), 10) +\n          instance.group.length *\n          self.$list\n          .children()\n          .eq(0)\n          .outerWidth(true)\n        );\n      }\n    },\n\n    focus: function (duration) {\n      var self = this,\n        $list = self.$list,\n        $grid = self.$grid,\n        thumb,\n        thumbPos;\n\n      if (!self.instance.current) {\n        return;\n      }\n\n      thumb = $list\n        .children()\n        .removeClass(CLASS_ACTIVE)\n        .filter('[data-index=\"' + self.instance.current.index + '\"]')\n        .addClass(CLASS_ACTIVE);\n\n      thumbPos = thumb.position();\n\n      // Check if need to scroll to make current thumb visible\n      if (self.opts.axis === \"y\" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) {\n        $list.stop().animate({\n            scrollTop: $list.scrollTop() + thumbPos.top\n          },\n          duration\n        );\n      } else if (\n        self.opts.axis === \"x\" &&\n        (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth()))\n      ) {\n        $list\n          .parent()\n          .stop()\n          .animate({\n              scrollLeft: thumbPos.left\n            },\n            duration\n          );\n      }\n    },\n\n    update: function () {\n      var that = this;\n      that.instance.$refs.container.toggleClass(\"fancybox-show-thumbs\", this.isVisible);\n\n      if (that.isVisible) {\n        if (!that.$grid) {\n          that.create();\n        }\n\n        that.instance.trigger(\"onThumbsShow\");\n\n        that.focus(0);\n      } else if (that.$grid) {\n        that.instance.trigger(\"onThumbsHide\");\n      }\n\n      // Update content position\n      that.instance.update();\n    },\n\n    hide: function () {\n      this.isVisible = false;\n      this.update();\n    },\n\n    show: function () {\n      this.isVisible = true;\n      this.update();\n    },\n\n    toggle: function () {\n      this.isVisible = !this.isVisible;\n      this.update();\n    }\n  });\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance) {\n      var Thumbs;\n\n      if (instance && !instance.Thumbs) {\n        Thumbs = new FancyThumbs(instance);\n\n        if (Thumbs.isActive && Thumbs.opts.autoStart === true) {\n          Thumbs.show();\n        }\n      }\n    },\n\n    \"beforeShow.fb\": function (e, instance, item, firstRun) {\n      var Thumbs = instance && instance.Thumbs;\n\n      if (Thumbs && Thumbs.isVisible) {\n        Thumbs.focus(firstRun ? 0 : 250);\n      }\n    },\n\n    \"afterKeydown.fb\": function (e, instance, current, keypress, keycode) {\n      var Thumbs = instance && instance.Thumbs;\n\n      // \"G\"\n      if (Thumbs && Thumbs.isActive && keycode === 71) {\n        keypress.preventDefault();\n\n        Thumbs.toggle();\n      }\n    },\n\n    \"beforeClose.fb\": function (e, instance) {\n      var Thumbs = instance && instance.Thumbs;\n\n      if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) {\n        Thumbs.$grid.hide();\n      }\n    }\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fancybox/fancybox-master/src/js/wheel.js",
    "content": "// ==========================================================================\n//\n// Wheel\n// Basic mouse weheel support for gallery navigation\n//\n// ==========================================================================\n(function (document, $) {\n  \"use strict\";\n\n  var prevTime = new Date().getTime();\n\n  $(document).on({\n    \"onInit.fb\": function (e, instance, current) {\n      instance.$refs.stage.on(\"mousewheel DOMMouseScroll wheel MozMousePixelScroll\", function (e) {\n        var current = instance.current,\n          currTime = new Date().getTime();\n\n        if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === \"auto\" && current.type !== \"image\")) {\n          return;\n        }\n\n        e.preventDefault();\n        e.stopPropagation();\n\n        if (current.$slide.hasClass(\"fancybox-animated\")) {\n          return;\n        }\n\n        e = e.originalEvent || e;\n\n        if (currTime - prevTime < 250) {\n          return;\n        }\n\n        prevTime = currTime;\n\n        instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? \"next\" : \"previous\"]();\n      });\n    }\n  });\n})(document, jQuery);"
  },
  {
    "path": "public/static/home/assets/fonts/font_back.css",
    "content": "/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 200;\n  src: local('Montserrat ExtraLight'), local('Montserrat-ExtraLight'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_aZA3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 400;\n  src: local('Montserrat Regular'), local('Montserrat-Regular'), url(https://fonts.gstatic.com/s/montserrat/v13/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* cyrillic-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gTD_u50.woff2) format('woff2');\n  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3g3D_u50.woff2) format('woff2');\n  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* vietnamese */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gbD_u50.woff2) format('woff2');\n  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gfD_u50.woff2) format('woff2');\n  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n  font-family: 'Montserrat';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Montserrat Bold'), local('Montserrat-Bold'), url(https://fonts.gstatic.com/s/montserrat/v13/JTURjIg1_i6t8kCHKm45_dJE3gnD_g.woff2) format('woff2');\n  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}"
  },
  {
    "path": "public/static/home/assets/fonts/font_css_back.css",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:\"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:\"\\f000\"}.fa-music:before{content:\"\\f001\"}.fa-search:before{content:\"\\f002\"}.fa-envelope-o:before{content:\"\\f003\"}.fa-heart:before{content:\"\\f004\"}.fa-star:before{content:\"\\f005\"}.fa-star-o:before{content:\"\\f006\"}.fa-user:before{content:\"\\f007\"}.fa-film:before{content:\"\\f008\"}.fa-th-large:before{content:\"\\f009\"}.fa-th:before{content:\"\\f00a\"}.fa-th-list:before{content:\"\\f00b\"}.fa-check:before{content:\"\\f00c\"}.fa-remove:before,.fa-close:before,.fa-times:before{content:\"\\f00d\"}.fa-search-plus:before{content:\"\\f00e\"}.fa-search-minus:before{content:\"\\f010\"}.fa-power-off:before{content:\"\\f011\"}.fa-signal:before{content:\"\\f012\"}.fa-gear:before,.fa-cog:before{content:\"\\f013\"}.fa-trash-o:before{content:\"\\f014\"}.fa-home:before{content:\"\\f015\"}.fa-file-o:before{content:\"\\f016\"}.fa-clock-o:before{content:\"\\f017\"}.fa-road:before{content:\"\\f018\"}.fa-download:before{content:\"\\f019\"}.fa-arrow-circle-o-down:before{content:\"\\f01a\"}.fa-arrow-circle-o-up:before{content:\"\\f01b\"}.fa-inbox:before{content:\"\\f01c\"}.fa-play-circle-o:before{content:\"\\f01d\"}.fa-rotate-right:before,.fa-repeat:before{content:\"\\f01e\"}.fa-refresh:before{content:\"\\f021\"}.fa-list-alt:before{content:\"\\f022\"}.fa-lock:before{content:\"\\f023\"}.fa-flag:before{content:\"\\f024\"}.fa-headphones:before{content:\"\\f025\"}.fa-volume-off:before{content:\"\\f026\"}.fa-volume-down:before{content:\"\\f027\"}.fa-volume-up:before{content:\"\\f028\"}.fa-qrcode:before{content:\"\\f029\"}.fa-barcode:before{content:\"\\f02a\"}.fa-tag:before{content:\"\\f02b\"}.fa-tags:before{content:\"\\f02c\"}.fa-book:before{content:\"\\f02d\"}.fa-bookmark:before{content:\"\\f02e\"}.fa-print:before{content:\"\\f02f\"}.fa-camera:before{content:\"\\f030\"}.fa-font:before{content:\"\\f031\"}.fa-bold:before{content:\"\\f032\"}.fa-italic:before{content:\"\\f033\"}.fa-text-height:before{content:\"\\f034\"}.fa-text-width:before{content:\"\\f035\"}.fa-align-left:before{content:\"\\f036\"}.fa-align-center:before{content:\"\\f037\"}.fa-align-right:before{content:\"\\f038\"}.fa-align-justify:before{content:\"\\f039\"}.fa-list:before{content:\"\\f03a\"}.fa-dedent:before,.fa-outdent:before{content:\"\\f03b\"}.fa-indent:before{content:\"\\f03c\"}.fa-video-camera:before{content:\"\\f03d\"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:\"\\f03e\"}.fa-pencil:before{content:\"\\f040\"}.fa-map-marker:before{content:\"\\f041\"}.fa-adjust:before{content:\"\\f042\"}.fa-tint:before{content:\"\\f043\"}.fa-edit:before,.fa-pencil-square-o:before{content:\"\\f044\"}.fa-share-square-o:before{content:\"\\f045\"}.fa-check-square-o:before{content:\"\\f046\"}.fa-arrows:before{content:\"\\f047\"}.fa-step-backward:before{content:\"\\f048\"}.fa-fast-backward:before{content:\"\\f049\"}.fa-backward:before{content:\"\\f04a\"}.fa-play:before{content:\"\\f04b\"}.fa-pause:before{content:\"\\f04c\"}.fa-stop:before{content:\"\\f04d\"}.fa-forward:before{content:\"\\f04e\"}.fa-fast-forward:before{content:\"\\f050\"}.fa-step-forward:before{content:\"\\f051\"}.fa-eject:before{content:\"\\f052\"}.fa-chevron-left:before{content:\"\\f053\"}.fa-chevron-right:before{content:\"\\f054\"}.fa-plus-circle:before{content:\"\\f055\"}.fa-minus-circle:before{content:\"\\f056\"}.fa-times-circle:before{content:\"\\f057\"}.fa-check-circle:before{content:\"\\f058\"}.fa-question-circle:before{content:\"\\f059\"}.fa-info-circle:before{content:\"\\f05a\"}.fa-crosshairs:before{content:\"\\f05b\"}.fa-times-circle-o:before{content:\"\\f05c\"}.fa-check-circle-o:before{content:\"\\f05d\"}.fa-ban:before{content:\"\\f05e\"}.fa-arrow-left:before{content:\"\\f060\"}.fa-arrow-right:before{content:\"\\f061\"}.fa-arrow-up:before{content:\"\\f062\"}.fa-arrow-down:before{content:\"\\f063\"}.fa-mail-forward:before,.fa-share:before{content:\"\\f064\"}.fa-expand:before{content:\"\\f065\"}.fa-compress:before{content:\"\\f066\"}.fa-plus:before{content:\"\\f067\"}.fa-minus:before{content:\"\\f068\"}.fa-asterisk:before{content:\"\\f069\"}.fa-exclamation-circle:before{content:\"\\f06a\"}.fa-gift:before{content:\"\\f06b\"}.fa-leaf:before{content:\"\\f06c\"}.fa-fire:before{content:\"\\f06d\"}.fa-eye:before{content:\"\\f06e\"}.fa-eye-slash:before{content:\"\\f070\"}.fa-warning:before,.fa-exclamation-triangle:before{content:\"\\f071\"}.fa-plane:before{content:\"\\f072\"}.fa-calendar:before{content:\"\\f073\"}.fa-random:before{content:\"\\f074\"}.fa-comment:before{content:\"\\f075\"}.fa-magnet:before{content:\"\\f076\"}.fa-chevron-up:before{content:\"\\f077\"}.fa-chevron-down:before{content:\"\\f078\"}.fa-retweet:before{content:\"\\f079\"}.fa-shopping-cart:before{content:\"\\f07a\"}.fa-folder:before{content:\"\\f07b\"}.fa-folder-open:before{content:\"\\f07c\"}.fa-arrows-v:before{content:\"\\f07d\"}.fa-arrows-h:before{content:\"\\f07e\"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:\"\\f080\"}.fa-twitter-square:before{content:\"\\f081\"}.fa-facebook-square:before{content:\"\\f082\"}.fa-camera-retro:before{content:\"\\f083\"}.fa-key:before{content:\"\\f084\"}.fa-gears:before,.fa-cogs:before{content:\"\\f085\"}.fa-comments:before{content:\"\\f086\"}.fa-thumbs-o-up:before{content:\"\\f087\"}.fa-thumbs-o-down:before{content:\"\\f088\"}.fa-star-half:before{content:\"\\f089\"}.fa-heart-o:before{content:\"\\f08a\"}.fa-sign-out:before{content:\"\\f08b\"}.fa-linkedin-square:before{content:\"\\f08c\"}.fa-thumb-tack:before{content:\"\\f08d\"}.fa-external-link:before{content:\"\\f08e\"}.fa-sign-in:before{content:\"\\f090\"}.fa-trophy:before{content:\"\\f091\"}.fa-github-square:before{content:\"\\f092\"}.fa-upload:before{content:\"\\f093\"}.fa-lemon-o:before{content:\"\\f094\"}.fa-phone:before{content:\"\\f095\"}.fa-square-o:before{content:\"\\f096\"}.fa-bookmark-o:before{content:\"\\f097\"}.fa-phone-square:before{content:\"\\f098\"}.fa-twitter:before{content:\"\\f099\"}.fa-facebook-f:before,.fa-facebook:before{content:\"\\f09a\"}.fa-github:before{content:\"\\f09b\"}.fa-unlock:before{content:\"\\f09c\"}.fa-credit-card:before{content:\"\\f09d\"}.fa-feed:before,.fa-rss:before{content:\"\\f09e\"}.fa-hdd-o:before{content:\"\\f0a0\"}.fa-bullhorn:before{content:\"\\f0a1\"}.fa-bell:before{content:\"\\f0f3\"}.fa-certificate:before{content:\"\\f0a3\"}.fa-hand-o-right:before{content:\"\\f0a4\"}.fa-hand-o-left:before{content:\"\\f0a5\"}.fa-hand-o-up:before{content:\"\\f0a6\"}.fa-hand-o-down:before{content:\"\\f0a7\"}.fa-arrow-circle-left:before{content:\"\\f0a8\"}.fa-arrow-circle-right:before{content:\"\\f0a9\"}.fa-arrow-circle-up:before{content:\"\\f0aa\"}.fa-arrow-circle-down:before{content:\"\\f0ab\"}.fa-globe:before{content:\"\\f0ac\"}.fa-wrench:before{content:\"\\f0ad\"}.fa-tasks:before{content:\"\\f0ae\"}.fa-filter:before{content:\"\\f0b0\"}.fa-briefcase:before{content:\"\\f0b1\"}.fa-arrows-alt:before{content:\"\\f0b2\"}.fa-group:before,.fa-users:before{content:\"\\f0c0\"}.fa-chain:before,.fa-link:before{content:\"\\f0c1\"}.fa-cloud:before{content:\"\\f0c2\"}.fa-flask:before{content:\"\\f0c3\"}.fa-cut:before,.fa-scissors:before{content:\"\\f0c4\"}.fa-copy:before,.fa-files-o:before{content:\"\\f0c5\"}.fa-paperclip:before{content:\"\\f0c6\"}.fa-save:before,.fa-floppy-o:before{content:\"\\f0c7\"}.fa-square:before{content:\"\\f0c8\"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:\"\\f0c9\"}.fa-list-ul:before{content:\"\\f0ca\"}.fa-list-ol:before{content:\"\\f0cb\"}.fa-strikethrough:before{content:\"\\f0cc\"}.fa-underline:before{content:\"\\f0cd\"}.fa-table:before{content:\"\\f0ce\"}.fa-magic:before{content:\"\\f0d0\"}.fa-truck:before{content:\"\\f0d1\"}.fa-pinterest:before{content:\"\\f0d2\"}.fa-pinterest-square:before{content:\"\\f0d3\"}.fa-google-plus-square:before{content:\"\\f0d4\"}.fa-google-plus:before{content:\"\\f0d5\"}.fa-money:before{content:\"\\f0d6\"}.fa-caret-down:before{content:\"\\f0d7\"}.fa-caret-up:before{content:\"\\f0d8\"}.fa-caret-left:before{content:\"\\f0d9\"}.fa-caret-right:before{content:\"\\f0da\"}.fa-columns:before{content:\"\\f0db\"}.fa-unsorted:before,.fa-sort:before{content:\"\\f0dc\"}.fa-sort-down:before,.fa-sort-desc:before{content:\"\\f0dd\"}.fa-sort-up:before,.fa-sort-asc:before{content:\"\\f0de\"}.fa-envelope:before{content:\"\\f0e0\"}.fa-linkedin:before{content:\"\\f0e1\"}.fa-rotate-left:before,.fa-undo:before{content:\"\\f0e2\"}.fa-legal:before,.fa-gavel:before{content:\"\\f0e3\"}.fa-dashboard:before,.fa-tachometer:before{content:\"\\f0e4\"}.fa-comment-o:before{content:\"\\f0e5\"}.fa-comments-o:before{content:\"\\f0e6\"}.fa-flash:before,.fa-bolt:before{content:\"\\f0e7\"}.fa-sitemap:before{content:\"\\f0e8\"}.fa-umbrella:before{content:\"\\f0e9\"}.fa-paste:before,.fa-clipboard:before{content:\"\\f0ea\"}.fa-lightbulb-o:before{content:\"\\f0eb\"}.fa-exchange:before{content:\"\\f0ec\"}.fa-cloud-download:before{content:\"\\f0ed\"}.fa-cloud-upload:before{content:\"\\f0ee\"}.fa-user-md:before{content:\"\\f0f0\"}.fa-stethoscope:before{content:\"\\f0f1\"}.fa-suitcase:before{content:\"\\f0f2\"}.fa-bell-o:before{content:\"\\f0a2\"}.fa-coffee:before{content:\"\\f0f4\"}.fa-cutlery:before{content:\"\\f0f5\"}.fa-file-text-o:before{content:\"\\f0f6\"}.fa-building-o:before{content:\"\\f0f7\"}.fa-hospital-o:before{content:\"\\f0f8\"}.fa-ambulance:before{content:\"\\f0f9\"}.fa-medkit:before{content:\"\\f0fa\"}.fa-fighter-jet:before{content:\"\\f0fb\"}.fa-beer:before{content:\"\\f0fc\"}.fa-h-square:before{content:\"\\f0fd\"}.fa-plus-square:before{content:\"\\f0fe\"}.fa-angle-double-left:before{content:\"\\f100\"}.fa-angle-double-right:before{content:\"\\f101\"}.fa-angle-double-up:before{content:\"\\f102\"}.fa-angle-double-down:before{content:\"\\f103\"}.fa-angle-left:before{content:\"\\f104\"}.fa-angle-right:before{content:\"\\f105\"}.fa-angle-up:before{content:\"\\f106\"}.fa-angle-down:before{content:\"\\f107\"}.fa-desktop:before{content:\"\\f108\"}.fa-laptop:before{content:\"\\f109\"}.fa-tablet:before{content:\"\\f10a\"}.fa-mobile-phone:before,.fa-mobile:before{content:\"\\f10b\"}.fa-circle-o:before{content:\"\\f10c\"}.fa-quote-left:before{content:\"\\f10d\"}.fa-quote-right:before{content:\"\\f10e\"}.fa-spinner:before{content:\"\\f110\"}.fa-circle:before{content:\"\\f111\"}.fa-mail-reply:before,.fa-reply:before{content:\"\\f112\"}.fa-github-alt:before{content:\"\\f113\"}.fa-folder-o:before{content:\"\\f114\"}.fa-folder-open-o:before{content:\"\\f115\"}.fa-smile-o:before{content:\"\\f118\"}.fa-frown-o:before{content:\"\\f119\"}.fa-meh-o:before{content:\"\\f11a\"}.fa-gamepad:before{content:\"\\f11b\"}.fa-keyboard-o:before{content:\"\\f11c\"}.fa-flag-o:before{content:\"\\f11d\"}.fa-flag-checkered:before{content:\"\\f11e\"}.fa-terminal:before{content:\"\\f120\"}.fa-code:before{content:\"\\f121\"}.fa-mail-reply-all:before,.fa-reply-all:before{content:\"\\f122\"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:\"\\f123\"}.fa-location-arrow:before{content:\"\\f124\"}.fa-crop:before{content:\"\\f125\"}.fa-code-fork:before{content:\"\\f126\"}.fa-unlink:before,.fa-chain-broken:before{content:\"\\f127\"}.fa-question:before{content:\"\\f128\"}.fa-info:before{content:\"\\f129\"}.fa-exclamation:before{content:\"\\f12a\"}.fa-superscript:before{content:\"\\f12b\"}.fa-subscript:before{content:\"\\f12c\"}.fa-eraser:before{content:\"\\f12d\"}.fa-puzzle-piece:before{content:\"\\f12e\"}.fa-microphone:before{content:\"\\f130\"}.fa-microphone-slash:before{content:\"\\f131\"}.fa-shield:before{content:\"\\f132\"}.fa-calendar-o:before{content:\"\\f133\"}.fa-fire-extinguisher:before{content:\"\\f134\"}.fa-rocket:before{content:\"\\f135\"}.fa-maxcdn:before{content:\"\\f136\"}.fa-chevron-circle-left:before{content:\"\\f137\"}.fa-chevron-circle-right:before{content:\"\\f138\"}.fa-chevron-circle-up:before{content:\"\\f139\"}.fa-chevron-circle-down:before{content:\"\\f13a\"}.fa-html5:before{content:\"\\f13b\"}.fa-css3:before{content:\"\\f13c\"}.fa-anchor:before{content:\"\\f13d\"}.fa-unlock-alt:before{content:\"\\f13e\"}.fa-bullseye:before{content:\"\\f140\"}.fa-ellipsis-h:before{content:\"\\f141\"}.fa-ellipsis-v:before{content:\"\\f142\"}.fa-rss-square:before{content:\"\\f143\"}.fa-play-circle:before{content:\"\\f144\"}.fa-ticket:before{content:\"\\f145\"}.fa-minus-square:before{content:\"\\f146\"}.fa-minus-square-o:before{content:\"\\f147\"}.fa-level-up:before{content:\"\\f148\"}.fa-level-down:before{content:\"\\f149\"}.fa-check-square:before{content:\"\\f14a\"}.fa-pencil-square:before{content:\"\\f14b\"}.fa-external-link-square:before{content:\"\\f14c\"}.fa-share-square:before{content:\"\\f14d\"}.fa-compass:before{content:\"\\f14e\"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:\"\\f150\"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:\"\\f151\"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:\"\\f152\"}.fa-euro:before,.fa-eur:before{content:\"\\f153\"}.fa-gbp:before{content:\"\\f154\"}.fa-dollar:before,.fa-usd:before{content:\"\\f155\"}.fa-rupee:before,.fa-inr:before{content:\"\\f156\"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:\"\\f157\"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:\"\\f158\"}.fa-won:before,.fa-krw:before{content:\"\\f159\"}.fa-bitcoin:before,.fa-btc:before{content:\"\\f15a\"}.fa-file:before{content:\"\\f15b\"}.fa-file-text:before{content:\"\\f15c\"}.fa-sort-alpha-asc:before{content:\"\\f15d\"}.fa-sort-alpha-desc:before{content:\"\\f15e\"}.fa-sort-amount-asc:before{content:\"\\f160\"}.fa-sort-amount-desc:before{content:\"\\f161\"}.fa-sort-numeric-asc:before{content:\"\\f162\"}.fa-sort-numeric-desc:before{content:\"\\f163\"}.fa-thumbs-up:before{content:\"\\f164\"}.fa-thumbs-down:before{content:\"\\f165\"}.fa-youtube-square:before{content:\"\\f166\"}.fa-youtube:before{content:\"\\f167\"}.fa-xing:before{content:\"\\f168\"}.fa-xing-square:before{content:\"\\f169\"}.fa-youtube-play:before{content:\"\\f16a\"}.fa-dropbox:before{content:\"\\f16b\"}.fa-stack-overflow:before{content:\"\\f16c\"}.fa-instagram:before{content:\"\\f16d\"}.fa-flickr:before{content:\"\\f16e\"}.fa-adn:before{content:\"\\f170\"}.fa-bitbucket:before{content:\"\\f171\"}.fa-bitbucket-square:before{content:\"\\f172\"}.fa-tumblr:before{content:\"\\f173\"}.fa-tumblr-square:before{content:\"\\f174\"}.fa-long-arrow-down:before{content:\"\\f175\"}.fa-long-arrow-up:before{content:\"\\f176\"}.fa-long-arrow-left:before{content:\"\\f177\"}.fa-long-arrow-right:before{content:\"\\f178\"}.fa-apple:before{content:\"\\f179\"}.fa-windows:before{content:\"\\f17a\"}.fa-android:before{content:\"\\f17b\"}.fa-linux:before{content:\"\\f17c\"}.fa-dribbble:before{content:\"\\f17d\"}.fa-skype:before{content:\"\\f17e\"}.fa-foursquare:before{content:\"\\f180\"}.fa-trello:before{content:\"\\f181\"}.fa-female:before{content:\"\\f182\"}.fa-male:before{content:\"\\f183\"}.fa-gittip:before,.fa-gratipay:before{content:\"\\f184\"}.fa-sun-o:before{content:\"\\f185\"}.fa-moon-o:before{content:\"\\f186\"}.fa-archive:before{content:\"\\f187\"}.fa-bug:before{content:\"\\f188\"}.fa-vk:before{content:\"\\f189\"}.fa-weibo:before{content:\"\\f18a\"}.fa-renren:before{content:\"\\f18b\"}.fa-pagelines:before{content:\"\\f18c\"}.fa-stack-exchange:before{content:\"\\f18d\"}.fa-arrow-circle-o-right:before{content:\"\\f18e\"}.fa-arrow-circle-o-left:before{content:\"\\f190\"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:\"\\f191\"}.fa-dot-circle-o:before{content:\"\\f192\"}.fa-wheelchair:before{content:\"\\f193\"}.fa-vimeo-square:before{content:\"\\f194\"}.fa-turkish-lira:before,.fa-try:before{content:\"\\f195\"}.fa-plus-square-o:before{content:\"\\f196\"}.fa-space-shuttle:before{content:\"\\f197\"}.fa-slack:before{content:\"\\f198\"}.fa-envelope-square:before{content:\"\\f199\"}.fa-wordpress:before{content:\"\\f19a\"}.fa-openid:before{content:\"\\f19b\"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:\"\\f19c\"}.fa-mortar-board:before,.fa-graduation-cap:before{content:\"\\f19d\"}.fa-yahoo:before{content:\"\\f19e\"}.fa-google:before{content:\"\\f1a0\"}.fa-reddit:before{content:\"\\f1a1\"}.fa-reddit-square:before{content:\"\\f1a2\"}.fa-stumbleupon-circle:before{content:\"\\f1a3\"}.fa-stumbleupon:before{content:\"\\f1a4\"}.fa-delicious:before{content:\"\\f1a5\"}.fa-digg:before{content:\"\\f1a6\"}.fa-pied-piper-pp:before{content:\"\\f1a7\"}.fa-pied-piper-alt:before{content:\"\\f1a8\"}.fa-drupal:before{content:\"\\f1a9\"}.fa-joomla:before{content:\"\\f1aa\"}.fa-language:before{content:\"\\f1ab\"}.fa-fax:before{content:\"\\f1ac\"}.fa-building:before{content:\"\\f1ad\"}.fa-child:before{content:\"\\f1ae\"}.fa-paw:before{content:\"\\f1b0\"}.fa-spoon:before{content:\"\\f1b1\"}.fa-cube:before{content:\"\\f1b2\"}.fa-cubes:before{content:\"\\f1b3\"}.fa-behance:before{content:\"\\f1b4\"}.fa-behance-square:before{content:\"\\f1b5\"}.fa-steam:before{content:\"\\f1b6\"}.fa-steam-square:before{content:\"\\f1b7\"}.fa-recycle:before{content:\"\\f1b8\"}.fa-automobile:before,.fa-car:before{content:\"\\f1b9\"}.fa-cab:before,.fa-taxi:before{content:\"\\f1ba\"}.fa-tree:before{content:\"\\f1bb\"}.fa-spotify:before{content:\"\\f1bc\"}.fa-deviantart:before{content:\"\\f1bd\"}.fa-soundcloud:before{content:\"\\f1be\"}.fa-database:before{content:\"\\f1c0\"}.fa-file-pdf-o:before{content:\"\\f1c1\"}.fa-file-word-o:before{content:\"\\f1c2\"}.fa-file-excel-o:before{content:\"\\f1c3\"}.fa-file-powerpoint-o:before{content:\"\\f1c4\"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:\"\\f1c5\"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:\"\\f1c6\"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:\"\\f1c7\"}.fa-file-movie-o:before,.fa-file-video-o:before{content:\"\\f1c8\"}.fa-file-code-o:before{content:\"\\f1c9\"}.fa-vine:before{content:\"\\f1ca\"}.fa-codepen:before{content:\"\\f1cb\"}.fa-jsfiddle:before{content:\"\\f1cc\"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:\"\\f1cd\"}.fa-circle-o-notch:before{content:\"\\f1ce\"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:\"\\f1d0\"}.fa-ge:before,.fa-empire:before{content:\"\\f1d1\"}.fa-git-square:before{content:\"\\f1d2\"}.fa-git:before{content:\"\\f1d3\"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:\"\\f1d4\"}.fa-tencent-weibo:before{content:\"\\f1d5\"}.fa-qq:before{content:\"\\f1d6\"}.fa-wechat:before,.fa-weixin:before{content:\"\\f1d7\"}.fa-send:before,.fa-paper-plane:before{content:\"\\f1d8\"}.fa-send-o:before,.fa-paper-plane-o:before{content:\"\\f1d9\"}.fa-history:before{content:\"\\f1da\"}.fa-circle-thin:before{content:\"\\f1db\"}.fa-header:before{content:\"\\f1dc\"}.fa-paragraph:before{content:\"\\f1dd\"}.fa-sliders:before{content:\"\\f1de\"}.fa-share-alt:before{content:\"\\f1e0\"}.fa-share-alt-square:before{content:\"\\f1e1\"}.fa-bomb:before{content:\"\\f1e2\"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:\"\\f1e3\"}.fa-tty:before{content:\"\\f1e4\"}.fa-binoculars:before{content:\"\\f1e5\"}.fa-plug:before{content:\"\\f1e6\"}.fa-slideshare:before{content:\"\\f1e7\"}.fa-twitch:before{content:\"\\f1e8\"}.fa-yelp:before{content:\"\\f1e9\"}.fa-newspaper-o:before{content:\"\\f1ea\"}.fa-wifi:before{content:\"\\f1eb\"}.fa-calculator:before{content:\"\\f1ec\"}.fa-paypal:before{content:\"\\f1ed\"}.fa-google-wallet:before{content:\"\\f1ee\"}.fa-cc-visa:before{content:\"\\f1f0\"}.fa-cc-mastercard:before{content:\"\\f1f1\"}.fa-cc-discover:before{content:\"\\f1f2\"}.fa-cc-amex:before{content:\"\\f1f3\"}.fa-cc-paypal:before{content:\"\\f1f4\"}.fa-cc-stripe:before{content:\"\\f1f5\"}.fa-bell-slash:before{content:\"\\f1f6\"}.fa-bell-slash-o:before{content:\"\\f1f7\"}.fa-trash:before{content:\"\\f1f8\"}.fa-copyright:before{content:\"\\f1f9\"}.fa-at:before{content:\"\\f1fa\"}.fa-eyedropper:before{content:\"\\f1fb\"}.fa-paint-brush:before{content:\"\\f1fc\"}.fa-birthday-cake:before{content:\"\\f1fd\"}.fa-area-chart:before{content:\"\\f1fe\"}.fa-pie-chart:before{content:\"\\f200\"}.fa-line-chart:before{content:\"\\f201\"}.fa-lastfm:before{content:\"\\f202\"}.fa-lastfm-square:before{content:\"\\f203\"}.fa-toggle-off:before{content:\"\\f204\"}.fa-toggle-on:before{content:\"\\f205\"}.fa-bicycle:before{content:\"\\f206\"}.fa-bus:before{content:\"\\f207\"}.fa-ioxhost:before{content:\"\\f208\"}.fa-angellist:before{content:\"\\f209\"}.fa-cc:before{content:\"\\f20a\"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:\"\\f20b\"}.fa-meanpath:before{content:\"\\f20c\"}.fa-buysellads:before{content:\"\\f20d\"}.fa-connectdevelop:before{content:\"\\f20e\"}.fa-dashcube:before{content:\"\\f210\"}.fa-forumbee:before{content:\"\\f211\"}.fa-leanpub:before{content:\"\\f212\"}.fa-sellsy:before{content:\"\\f213\"}.fa-shirtsinbulk:before{content:\"\\f214\"}.fa-simplybuilt:before{content:\"\\f215\"}.fa-skyatlas:before{content:\"\\f216\"}.fa-cart-plus:before{content:\"\\f217\"}.fa-cart-arrow-down:before{content:\"\\f218\"}.fa-diamond:before{content:\"\\f219\"}.fa-ship:before{content:\"\\f21a\"}.fa-user-secret:before{content:\"\\f21b\"}.fa-motorcycle:before{content:\"\\f21c\"}.fa-street-view:before{content:\"\\f21d\"}.fa-heartbeat:before{content:\"\\f21e\"}.fa-venus:before{content:\"\\f221\"}.fa-mars:before{content:\"\\f222\"}.fa-mercury:before{content:\"\\f223\"}.fa-intersex:before,.fa-transgender:before{content:\"\\f224\"}.fa-transgender-alt:before{content:\"\\f225\"}.fa-venus-double:before{content:\"\\f226\"}.fa-mars-double:before{content:\"\\f227\"}.fa-venus-mars:before{content:\"\\f228\"}.fa-mars-stroke:before{content:\"\\f229\"}.fa-mars-stroke-v:before{content:\"\\f22a\"}.fa-mars-stroke-h:before{content:\"\\f22b\"}.fa-neuter:before{content:\"\\f22c\"}.fa-genderless:before{content:\"\\f22d\"}.fa-facebook-official:before{content:\"\\f230\"}.fa-pinterest-p:before{content:\"\\f231\"}.fa-whatsapp:before{content:\"\\f232\"}.fa-server:before{content:\"\\f233\"}.fa-user-plus:before{content:\"\\f234\"}.fa-user-times:before{content:\"\\f235\"}.fa-hotel:before,.fa-bed:before{content:\"\\f236\"}.fa-viacoin:before{content:\"\\f237\"}.fa-train:before{content:\"\\f238\"}.fa-subway:before{content:\"\\f239\"}.fa-medium:before{content:\"\\f23a\"}.fa-yc:before,.fa-y-combinator:before{content:\"\\f23b\"}.fa-optin-monster:before{content:\"\\f23c\"}.fa-opencart:before{content:\"\\f23d\"}.fa-expeditedssl:before{content:\"\\f23e\"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:\"\\f240\"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:\"\\f241\"}.fa-battery-2:before,.fa-battery-half:before{content:\"\\f242\"}.fa-battery-1:before,.fa-battery-quarter:before{content:\"\\f243\"}.fa-battery-0:before,.fa-battery-empty:before{content:\"\\f244\"}.fa-mouse-pointer:before{content:\"\\f245\"}.fa-i-cursor:before{content:\"\\f246\"}.fa-object-group:before{content:\"\\f247\"}.fa-object-ungroup:before{content:\"\\f248\"}.fa-sticky-note:before{content:\"\\f249\"}.fa-sticky-note-o:before{content:\"\\f24a\"}.fa-cc-jcb:before{content:\"\\f24b\"}.fa-cc-diners-club:before{content:\"\\f24c\"}.fa-clone:before{content:\"\\f24d\"}.fa-balance-scale:before{content:\"\\f24e\"}.fa-hourglass-o:before{content:\"\\f250\"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:\"\\f251\"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:\"\\f252\"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:\"\\f253\"}.fa-hourglass:before{content:\"\\f254\"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:\"\\f255\"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:\"\\f256\"}.fa-hand-scissors-o:before{content:\"\\f257\"}.fa-hand-lizard-o:before{content:\"\\f258\"}.fa-hand-spock-o:before{content:\"\\f259\"}.fa-hand-pointer-o:before{content:\"\\f25a\"}.fa-hand-peace-o:before{content:\"\\f25b\"}.fa-trademark:before{content:\"\\f25c\"}.fa-registered:before{content:\"\\f25d\"}.fa-creative-commons:before{content:\"\\f25e\"}.fa-gg:before{content:\"\\f260\"}.fa-gg-circle:before{content:\"\\f261\"}.fa-tripadvisor:before{content:\"\\f262\"}.fa-odnoklassniki:before{content:\"\\f263\"}.fa-odnoklassniki-square:before{content:\"\\f264\"}.fa-get-pocket:before{content:\"\\f265\"}.fa-wikipedia-w:before{content:\"\\f266\"}.fa-safari:before{content:\"\\f267\"}.fa-chrome:before{content:\"\\f268\"}.fa-firefox:before{content:\"\\f269\"}.fa-opera:before{content:\"\\f26a\"}.fa-internet-explorer:before{content:\"\\f26b\"}.fa-tv:before,.fa-television:before{content:\"\\f26c\"}.fa-contao:before{content:\"\\f26d\"}.fa-500px:before{content:\"\\f26e\"}.fa-amazon:before{content:\"\\f270\"}.fa-calendar-plus-o:before{content:\"\\f271\"}.fa-calendar-minus-o:before{content:\"\\f272\"}.fa-calendar-times-o:before{content:\"\\f273\"}.fa-calendar-check-o:before{content:\"\\f274\"}.fa-industry:before{content:\"\\f275\"}.fa-map-pin:before{content:\"\\f276\"}.fa-map-signs:before{content:\"\\f277\"}.fa-map-o:before{content:\"\\f278\"}.fa-map:before{content:\"\\f279\"}.fa-commenting:before{content:\"\\f27a\"}.fa-commenting-o:before{content:\"\\f27b\"}.fa-houzz:before{content:\"\\f27c\"}.fa-vimeo:before{content:\"\\f27d\"}.fa-black-tie:before{content:\"\\f27e\"}.fa-fonticons:before{content:\"\\f280\"}.fa-reddit-alien:before{content:\"\\f281\"}.fa-edge:before{content:\"\\f282\"}.fa-credit-card-alt:before{content:\"\\f283\"}.fa-codiepie:before{content:\"\\f284\"}.fa-modx:before{content:\"\\f285\"}.fa-fort-awesome:before{content:\"\\f286\"}.fa-usb:before{content:\"\\f287\"}.fa-product-hunt:before{content:\"\\f288\"}.fa-mixcloud:before{content:\"\\f289\"}.fa-scribd:before{content:\"\\f28a\"}.fa-pause-circle:before{content:\"\\f28b\"}.fa-pause-circle-o:before{content:\"\\f28c\"}.fa-stop-circle:before{content:\"\\f28d\"}.fa-stop-circle-o:before{content:\"\\f28e\"}.fa-shopping-bag:before{content:\"\\f290\"}.fa-shopping-basket:before{content:\"\\f291\"}.fa-hashtag:before{content:\"\\f292\"}.fa-bluetooth:before{content:\"\\f293\"}.fa-bluetooth-b:before{content:\"\\f294\"}.fa-percent:before{content:\"\\f295\"}.fa-gitlab:before{content:\"\\f296\"}.fa-wpbeginner:before{content:\"\\f297\"}.fa-wpforms:before{content:\"\\f298\"}.fa-envira:before{content:\"\\f299\"}.fa-universal-access:before{content:\"\\f29a\"}.fa-wheelchair-alt:before{content:\"\\f29b\"}.fa-question-circle-o:before{content:\"\\f29c\"}.fa-blind:before{content:\"\\f29d\"}.fa-audio-description:before{content:\"\\f29e\"}.fa-volume-control-phone:before{content:\"\\f2a0\"}.fa-braille:before{content:\"\\f2a1\"}.fa-assistive-listening-systems:before{content:\"\\f2a2\"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:\"\\f2a3\"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:\"\\f2a4\"}.fa-glide:before{content:\"\\f2a5\"}.fa-glide-g:before{content:\"\\f2a6\"}.fa-signing:before,.fa-sign-language:before{content:\"\\f2a7\"}.fa-low-vision:before{content:\"\\f2a8\"}.fa-viadeo:before{content:\"\\f2a9\"}.fa-viadeo-square:before{content:\"\\f2aa\"}.fa-snapchat:before{content:\"\\f2ab\"}.fa-snapchat-ghost:before{content:\"\\f2ac\"}.fa-snapchat-square:before{content:\"\\f2ad\"}.fa-pied-piper:before{content:\"\\f2ae\"}.fa-first-order:before{content:\"\\f2b0\"}.fa-yoast:before{content:\"\\f2b1\"}.fa-themeisle:before{content:\"\\f2b2\"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:\"\\f2b3\"}.fa-fa:before,.fa-font-awesome:before{content:\"\\f2b4\"}.fa-handshake-o:before{content:\"\\f2b5\"}.fa-envelope-open:before{content:\"\\f2b6\"}.fa-envelope-open-o:before{content:\"\\f2b7\"}.fa-linode:before{content:\"\\f2b8\"}.fa-address-book:before{content:\"\\f2b9\"}.fa-address-book-o:before{content:\"\\f2ba\"}.fa-vcard:before,.fa-address-card:before{content:\"\\f2bb\"}.fa-vcard-o:before,.fa-address-card-o:before{content:\"\\f2bc\"}.fa-user-circle:before{content:\"\\f2bd\"}.fa-user-circle-o:before{content:\"\\f2be\"}.fa-user-o:before{content:\"\\f2c0\"}.fa-id-badge:before{content:\"\\f2c1\"}.fa-drivers-license:before,.fa-id-card:before{content:\"\\f2c2\"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:\"\\f2c3\"}.fa-quora:before{content:\"\\f2c4\"}.fa-free-code-camp:before{content:\"\\f2c5\"}.fa-telegram:before{content:\"\\f2c6\"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:\"\\f2c7\"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:\"\\f2c8\"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:\"\\f2c9\"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:\"\\f2ca\"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:\"\\f2cb\"}.fa-shower:before{content:\"\\f2cc\"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:\"\\f2cd\"}.fa-podcast:before{content:\"\\f2ce\"}.fa-window-maximize:before{content:\"\\f2d0\"}.fa-window-minimize:before{content:\"\\f2d1\"}.fa-window-restore:before{content:\"\\f2d2\"}.fa-times-rectangle:before,.fa-window-close:before{content:\"\\f2d3\"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:\"\\f2d4\"}.fa-bandcamp:before{content:\"\\f2d5\"}.fa-grav:before{content:\"\\f2d6\"}.fa-etsy:before{content:\"\\f2d7\"}.fa-imdb:before{content:\"\\f2d8\"}.fa-ravelry:before{content:\"\\f2d9\"}.fa-eercast:before{content:\"\\f2da\"}.fa-microchip:before{content:\"\\f2db\"}.fa-snowflake-o:before{content:\"\\f2dc\"}.fa-superpowers:before{content:\"\\f2dd\"}.fa-wpexplorer:before{content:\"\\f2de\"}.fa-meetup:before{content:\"\\f2e0\"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}"
  },
  {
    "path": "public/static/home/assets/js/iconfont.js",
    "content": "!function(o){var t,a='<svg><symbol id=\"icon-weixinfenxiang\" viewBox=\"0 0 1024 1024\"><path d=\"M1019.471 512.174c0 280.346-227.265 507.611-507.611 507.611S4.248 792.52 4.248 512.174 231.514 4.563 511.86 4.563s507.611 227.265 507.611 507.611z\" fill=\"#5CA3E1\" ></path><path d=\"M322.13 480.67l-1.02-3.178-0.828-4.132-0.55-2.261v-9.321l0.987-3.669 1.003-3.878 1.329-4.07 1.787-4.532 2.353-4.711 3.316-4.714v-3.303l0.324-3.09 0.517-4.203 1.424-4.727 1.307-5.099 1.05-2.34 1.204-2.187 1.557-2.428 1.691-1.807v-11.663l0.979-6.006 0.987-6.981 1.758-8.351 2.419-8.692 1.8-4.778 1.782-5.194 1.954-4.847 2.34-5.198 2.386-5.686 2.74-5.331 3.087-5.685 3.885-5.677 1.8-3.256 1.912-2.666 4.169-6.01 4.286-5.989 4.864-6.169 5.215-6.001 5.66-5.914 5.906-6.077 7.144-6.559 4.536-3.994 5.526-4.302 5.61-3.803 6.059-3.648 5.827-3.249 6.568-2.691 6.981-3.311 6.935-2.27 6.919-2.362 7.475-2.34 7.468-1.783 7.851-1.483 7.968-1.283 7.859-1.049 7.855-1.075 8.376-0.454H541.212l8.246 1.042 8.289 0.987 8.447 0.879 7.842 1.886 8.28 1.767 7.776 2.028 8.513 2.261 7.793 2.757 7.459 3.153 7.967 3.34 7.268 3.64 7.064 4.053 6.926 4.464 5.968 4.149 2.766 2.34 2.903 1.711 5.535 4.699 4.665 4.543 4.656 4.699 4.531 5.189 3.74 5.032 4.453 5.198 3.103 5.581 3.144 4.96 3.336 5.773 2.77 5.023 4.656 10.629 2.287 5.493 1.79 5.094 1.791 5.526 1.608 5.198 1.116 4.474 1.449 5.256 2.545 9.392 1.624 8.217 1.054 7.951 0.907 6.393 1.433 9.738 0.325 1.545 1.145 1.758 3.081 5.039 1.983 3.415 1.757 3.553 2.233 3.812 1.975 4.569 1.287 4.673 1.395 5.126 1.058 5.257 0.48 2.587 0.446 3.186V457l-0.446 2.744v3.415l-0.804 3.306-1.466 6.414-1.687 3.24-1.25 3.64v0.908l0.595 1.128 1.679 2.666 7.3 10.804 5.764 8.114 2.762 5.414 3.72 5.93 3.24 6.498 3.74 6.948 3.735 7.809 4.212 8.838 2.378 5.414 2.166 5.294 1.866 5.581 1.846 5.023 1.407 5.277 1.433 4.953 1.807 9.658 1.433 9.871 0.987 8.751v12.353l-0.666 4.374-0.942 7.555-1.295 6.789-2.008 6.155-0.75 2.508-1.407 3.024-1.171 2.103-1.574 2.595-1.379 1.632-1.754 2.116-1.574 1.703-1.679 1.459-2.007 0.883-1.808 0.883-1.486 0.487h-2.27l-1.45-0.487-2.76-1.366-1.267-0.908-1.324-0.95-1.453-1.303-1.466-1.458-2.42-2.691-2.865-3.798-2.254-3.924-2.253-3.137-2.2-3.648-3.103-6.482-3.486-6.743-0.408-0.237h-0.579l-1.412 1.058-0.821 1.77-1.366 2.203-2.374 6.552-3.581 9.317-4.586 11.217-3.448 5.589-3.616 5.835-4.298 6.559-4.56 6.422-2.333 2.908-2.828 3.17-6.51 6.393 0.571 0.579 0.879 0.916 3.253 1.903 13.536 6.51 5.906 3.328 5.631 3.232 5.573 4.069 4.973 4.19 2.399 1.899 1.812 2.183 1.857 2.532 1.537 2.74 0.833 2.283 1.012 2.733 0.437 2.369 0.479 2.757-0.479 1.853v1.879l-0.437 1.937-1.012 1.774-0.387 1.386-0.925 1.687-2.452 3.345-2.274 2.683-1.754 2.012-1.466 1.482-3.74 2.724-4.227 2.378-4.507 2.27-4.831 2.183-5.39 2.115-2.899 0.884-2.54 0.715-6.264 1.459-6.465 1.386-6.498 1.383-7.068 1.154-7.284 0.305-7.468 0.899H632.842l-8.359-0.487-7.779-0.716-8.397-1.154-8.322-0.891-8.772-1.224-8.496-2.112-8.289-1.599-8.238-2.356-8.447-3.024-8.289-2.499-4.368-1.458-3.878-1.379-2.453-0.954-2.436-0.516h-6.893l-7.968-0.559-4.023-0.407-5.189-0.579-3.328 3.015-4.544 2.836-6.155 2.998-6.814 3.736-4.14 2.029-4.324 1.607-9.546 3.903-5.189 1.303-5.439 1.466-7.548 1.466-4.727 0.367-4.998 0.429-5.214 0.575-6.069 0.229H409.413l-14.002-0.229-13.599-1.37-6.88-0.979-6.648-0.987-6.472-0.966-6.472-1.303-6.036-1.95-6.001-1.386-5.415-2.174-5.118-2.029-4.778-2.277-4.152-2.491-4.111-3.032-1.407-1.466-1.846-1.774-1.395-1.545-1.258-1.783-1.162-1.77-0.899-1.791-1.3-3.803-0.458-1.961-0.575-2.187v-2.016l0.575-2.279v-2.266l0.458-2.261v-4.569l0.216-2.408 1.083-2.76 0.899-2.762 1.633-3.328 1.195-1.283 0.986-1.487 2.578-3.153 2.054-1.624 1.94-1.133 1.787-1.442 2.832-0.899 2.27-1.383 2.833-1.458 3.219-0.971 3.245-0.986 3.753-0.821 3.557-0.47 4.219-0.55 4.577-0.35 1.187-0.396h0.262l0.575-0.487v-0.559l-0.837-1.137-2.428-1.154-6.073-5.256-4.077-3.249-4.715-4.132-4.752-4.622-4.944-5.903-5.697-6.655-2.121-3.599-2.815-3.723-2.429-4.298-2.181-4.699-2.945-4.473-1.92-5.098-2.287-5.093-2.29-5.678-1.658-5.443-1.582-6.723-0.47-0.245h-0.48l-0.245-0.479h-0.587l-0.957 0.479-0.483 0.245-0.663 1.125-0.237 1.37-0.496 1.224-0.867 2.038-2.778 4.943-1.442 2.995-2.286 2.611-2.428 3.144-2.683 3.487-2.832 3.09-3.328 2.995-3.074 2.816-3.408 2.236-3.719 2.333-3.581 1.387-4.219 1.058-4.14 0.4h-0.979l-0.95-0.4-0.754-1.645-1.211-0.8-1.592-3.899-0.995-2.103-1.066-3.024-0.883-3.137-0.471-3.09-1.307-7.039-0.5-4.152v-13.607l0.5-10.158 0.82-5.189 0.959-5.344 0.883-5.755 1.566-5.357 1.753-6.164 1.807-6.01 2.42-6.185 2.279-5.893 3.157-5.985 2.924-6.489 3.581-6.089 4.211-6.568 4.278-5.906 4.473-6.569 3.732-4.576 4.778-5.241 5.032-5.285 2.34-2.515 2.836-2.828 4.123-3.574 4.236-3.64 6.893-6.177 5.198-3.798 1.851-1.381z m0 0\" fill=\"#FFFFFF\" ></path></symbol><symbol id=\"icon-github\" viewBox=\"0 0 1024 1024\"><path d=\"M5.12 512c0 280.064 226.816 506.88 506.88 506.88s506.88-226.816 506.88-506.88-226.816-506.88-506.88-506.88S5.12 231.936 5.12 512z\" fill=\"#2DAAE1\" ></path><path d=\"M433.664 773.632c3.072-5.12 6.656-9.728 6.656-11.264v-66.56c-100.864 20.992-121.856-41.984-121.856-41.984-16.384-41.984-40.448-53.76-40.448-53.76-32.256-22.528 3.072-22.528 3.072-22.528 35.84 3.072 55.296 37.376 55.296 37.376 32.256 55.296 84.48 38.912 105.472 30.72 3.072-22.528 12.8-38.912 22.528-48.64-80.896-9.728-165.376-40.448-165.376-178.688 0-38.912 14.848-71.168 37.376-97.28-3.072-9.728-16.384-45.568 3.072-95.744 0 0 30.72-9.728 98.816 37.376 29.184-8.192 59.904-11.264 90.624-11.264s61.44 5.12 90.624 11.264c69.632-47.104 98.816-37.376 98.816-37.376 19.456 50.176 8.192 86.016 3.072 95.744 22.528 26.112 37.376 56.832 37.376 97.28 0 137.728-84.48 168.96-165.376 178.688 12.8 11.264 24.576 32.256 24.576 66.56v98.816c0 3.072 1.536 6.656 6.656 11.264 5.12 6.656 3.072 17.92-3.072 22.528-3.072 1.536-6.656 3.072-9.728 3.072H446.464c-9.728 0-16.384-6.656-16.384-16.384 0.512-4.096 2.048-7.68 3.584-9.216z\" fill=\"#FFFFFF\" ></path></symbol><symbol id=\"icon-weixinfenxiang1\" viewBox=\"0 0 1024 1024\"><path d=\"M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z\" fill=\"#46CE47\" ></path><path d=\"M615.666036 419.551418a189.2352 189.2352 0 0 1 20.749964 1.293964c-18.618182-86.574545-111.122618-150.881745-216.771491-150.881746-118.104436 0-214.844509 80.467782-214.844509 182.709528 0 58.991709 32.172218 107.436218 85.969455 145.072872l-21.476073 64.605091 75.142982-37.636654a370.064291 370.064291 0 0 0 75.226763 10.733382c6.749091 0 13.433018-0.3072 20.033164-0.800582a161.047273 161.047273 0 0 1-6.637382-45.065309c0.009309-93.854255 80.5888-170.030545 182.607127-170.030546z m-115.488581-58.237673a26.847418 26.847418 0 1 1 0 53.685528c-16.048873 0-32.209455-10.770618-32.209455-26.856728s16.104727-26.8288 32.209455-26.8288z m-150.341819 53.685528c-16.123345 0-32.3584-10.770618-32.3584-26.856728s16.235055-26.819491 32.3584-26.81949a26.847418 26.847418 0 0 1 0 53.685527z\" fill=\"#FFFFFF\" ></path><path d=\"M811.752727 587.003345c0-85.894982-85.969455-155.880727-182.514036-155.880727-102.241745 0-182.709527 70.032291-182.709527 155.880727 0 86.1184 80.505018 155.880727 182.709527 155.880728a269.395782 269.395782 0 0 0 64.456145-10.733382l58.917237 32.321164-16.160582-53.722764c43.175564-32.386327 75.301236-75.291927 75.301236-123.745746z m-241.775709-26.893963a21.476073 21.476073 0 0 1 0-42.942837 22.016 22.016 0 1 1 0 42.942837z m118.178909 0a21.476073 21.476073 0 0 1 0-42.942837 22.016 22.016 0 1 1 0 42.942837z\" fill=\"#FFFFFF\" ></path></symbol><symbol id=\"icon-weibofenxiang\" viewBox=\"0 0 1024 1024\"><path d=\"M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z\" fill=\"#FF6833\" ></path><path d=\"M673.262345 477.784276c-7.662345-1.518345-12.641103-3.813517-14.936276-6.885517-2.295172-3.03669-2.683586-5.861517-1.165241-8.439173l2.295172-3.813517a9.18069 9.18069 0 0 0 1.553655-2.295172c0.529655-1.05931 1.553655-3.177931 3.072-6.532414a53.318621 53.318621 0 0 0 3.460414-9.922207c0.776828-3.319172 1.412414-7.415172 1.906759-12.25269 0.494345-4.872828 0.353103-9.463172-0.388414-13.806345a58.721103 58.721103 0 0 0-4.590345-14.159448 47.315862 47.315862 0 0 0-9.604414-13.806345 50.988138 50.988138 0 0 0-27.965793-13.771034 104.236138 104.236138 0 0 0-34.462896-0.423724c-11.475862 1.765517-22.316138 4.06069-32.556138 6.885517-10.20469 2.824828-18.608552 5.473103-25.246897 8.050759l-9.957517 4.590344a96.750345 96.750345 0 0 1-12.641104 3.072 14.512552 14.512552 0 0 1-7.662344-0.388413 20.374069 20.374069 0 0 1-4.237242-2.295173c-0.98869-0.776828-1.412414-2.577655-1.129931-5.367172 0.247172-2.824828 0.494345-5.261241 0.741517-7.273931 0.247172-2.048 0.918069-5.261241 1.906759-9.604414 1.024-4.343172 1.765517-7.768276 2.295172-10.345931 0-6.10869-0.353103-11.864276-1.129931-17.231448a84.179862 84.179862 0 0 0-4.978758-18.008276 38.664828 38.664828 0 0 0-11.087449-16.030897 57.096828 57.096828 0 0 0-18.396689-9.957517c-7.415172-2.542345-16.948966-3.319172-28.742621-2.330483a168.077241 168.077241 0 0 0-39.794759 9.18069c-17.902345 6.144-36.016552 15.183448-54.377931 27.188965-18.39669 12.005517-34.356966 24.505379-47.880827 37.534897-13.523862 13.029517-25.917793 25.670621-37.146483 37.92331-11.264 12.25269-19.950345 22.210207-26.059034 29.872552l-8.439173 12.25269c-16.843034 21.963034-29.342897 43.926069-37.499586 65.889103-8.192 21.963034-12.005517 38.523586-11.511172 49.787586v16.066207c3.072 24.505379 10.593103 46.468414 22.59862 65.853793a162.427586 162.427586 0 0 0 42.902069 47.104c16.595862 12.005517 36.122483 22.245517 58.615173 30.64938a382.764138 382.764138 0 0 0 64.688551 18.361379c20.691862 3.848828 42.513655 6.532414 65.50069 8.050759 37.782069 3.072 76.976552 0.141241 117.583448-8.792276 40.571586-8.933517 78.353655-24.364138 113.346207-46.327173 34.957241-21.963034 59.603862-48.269241 73.904552-78.91862 8.651034-17.867034 13.135448-34.710069 13.417931-50.564414 0.247172-15.819034-2.471724-28.70731-8.050759-38.664828a98.374621 98.374621 0 0 0-21.857103-26.412138 108.614621 108.614621 0 0 0-25.246897-16.878345 86.651586 86.651586 0 0 0-21.080276-6.885517v0.070621z m-233.613242 238.203586c-55.119448 2.542345-101.976276-8.192-140.535172-32.167724-38.523586-24.011034-57.803034-54.377931-57.803034-91.17131 0-36.228414 19.138207-67.513379 57.449931-93.784276 38.311724-26.306207 85.274483-40.748138 140.923586-43.290483 55.649103-2.577655 102.611862 6.603034 140.888276 27.542069 38.347034 20.974345 57.485241 49.575724 57.485241 85.804138 0 36.758069-19.526621 69.808552-58.615172 99.186758-39.053241 29.342897-85.662897 45.303172-139.758345 47.845518v0.03531z m-22.210206-212.179862c-14.795034 1.553655-28.071724 5.014069-39.794759 10.345931-11.758345 5.367172-20.939034 11.511172-27.577379 18.361379a116.877241 116.877241 0 0 0-16.878345 22.245518c-4.590345 7.909517-7.768276 15.677793-9.569104 23.340138-1.765517 7.662345-2.930759 14.689103-3.460413 21.044965s-0.776828 11.369931-0.776828 14.936276l0.776828 6.144v3.03669c0 1.553655 0.529655 4.590345 1.553655 9.180689 1.024 4.590345 2.436414 8.827586 4.237241 12.676414 1.765517 3.848828 4.696276 8.050759 8.756966 12.641103 4.096 4.590345 8.933517 8.403862 14.583172 11.475863 33.686069 16.34869 65.076966 21.327448 94.208 14.936275a118.74869 118.74869 0 0 0 70.444138-44.032 68.502069 68.502069 0 0 0 14.159448-32.167724c2.295172-12.782345 1.765517-25.670621-1.518345-38.700138a98.409931 98.409931 0 0 0-17.231448-35.592827c-8.192-10.734345-20.303448-19.067586-36.369655-24.893793-16.101517-5.861517-34.604138-7.521103-55.543172-4.978759z m-27.542069 144.772414a35.133793 35.133793 0 0 1-16.489931-1.129931 84.391724 84.391724 0 0 1-6.885518-2.683586 15.748414 15.748414 0 0 1-5.720276-4.237242 77.824 77.824 0 0 1-4.237241-5.331862 23.304828 23.304828 0 0 1-4.237241-13.417931c0-5.649655 1.553655-11.122759 4.625655-16.454621 3.072-5.367172 7.309241-9.957517 12.676414-13.806344a34.85131 34.85131 0 0 1 17.972965-6.532414c4.590345-0.494345 9.074759-0.353103 13.417931 0.388414a33.474207 33.474207 0 0 1 19.138207 9.957517 20.197517 20.197517 0 0 1 4.943448 8.050758c1.05931 3.03669 1.553655 6.355862 1.553656 9.957518 0 5.614345-1.659586 10.946207-4.943449 16.066207-3.319172 5.08469-7.803586 9.427862-13.417931 12.994206-5.649655 3.601655-11.758345 5.649655-18.361379 6.144l-0.03531 0.035311z m65.076965-55.119448a16.948966 16.948966 0 0 1-11.087448 3.460413c-3.848828-0.247172-6.532414-1.906759-8.050759-4.978758l-1.553655-3.072a6.885517 6.885517 0 0 1-0.741517-3.072v-3.072c0-1.518345 0.247172-2.824828 0.741517-3.813518l1.553655-3.072a4.943448 4.943448 0 0 1 2.295173-2.295172l2.295172-3.072c4.096-3.072 8.050759-4.343172 11.864276-3.813517a9.675034 9.675034 0 0 1 8.050759 6.108689 9.463172 9.463172 0 0 1 1.906758 6.920828 18.891034 18.891034 0 0 1-2.295172 7.273931 29.236966 29.236966 0 0 1-4.978759 6.497104z m271.889655-160.097104a16.030897 16.030897 0 0 0 8.439173-2.295172 19.138207 19.138207 0 0 0 9.180689-13.029518c0.529655-0.494345 0.776828-1.271172 0.776828-2.295172 6.10869-58.226759-14.30069-91.418483-61.263448-99.575172a108.190897 108.190897 0 0 0-38.311724-0.776828 15.642483 15.642483 0 0 0-9.18069 2.683586 24.116966 24.116966 0 0 0-6.532414 6.885517 15.924966 15.924966 0 0 0-2.683586 8.827587 17.655172 17.655172 0 0 0 5.367172 12.994207c3.601655 3.531034 7.909517 5.331862 13.029518 5.367172 39.830069-9.18069 61.263448 3.531034 64.335448 38.311724 1.024 8.651034 0.494345 16.843034-1.553655 24.505379a17.655172 17.655172 0 0 0 5.367172 12.994207c3.566345 3.566345 7.909517 5.367172 13.029517 5.367173z m-12.994207-215.958069c-22.49269-5.12-52.612414-4.096-90.394482 3.03669-0.494345 0-1.024 0.282483-1.553656 0.776827l-0.741517 1.553656-0.776827 0.741517a24.893793 24.893793 0 0 0-13.771035 9.604414 25.953103 25.953103 0 0 0-5.402483 15.677793c0 7.662345 2.577655 14.053517 7.697656 19.173517a25.211586 25.211586 0 0 0 18.361379 7.662345h2.295172a17.655172 17.655172 0 0 0 3.460414-0.776828c1.800828-0.494345 3.707586-0.882759 5.755586-1.129931a35.239724 35.239724 0 0 0 6.497104-1.553655c2.330483-0.776828 4.378483-1.553655 6.144-2.295172a30.260966 30.260966 0 0 1 10.345931-1.165242c5.12 0 11.369931 0.388414 18.749793 1.165242 7.415172 0.741517 15.536552 2.683586 24.505379 5.720275 8.968828 3.072 17.902345 6.885517 26.835862 11.511173 8.898207 4.590345 17.867034 10.946207 26.835862 19.138207 8.933517 8.121379 16.701793 17.584552 23.304828 28.318896 13.312 30.119724 15.889655 59.250759 7.697655 87.322483a3.425103 3.425103 0 0 1-0.388414 1.553655 24.717241 24.717241 0 0 0-1.165241 3.813517 157.166345 157.166345 0 0 1-1.553655 5.755587c-0.494345 1.765517-1.024 4.06069-1.518345 6.885517-0.529655 2.789517-0.776828 5.190621-0.776828 7.273931 0 4.590345 1.271172 8.403862 3.813518 11.475862a20.656552 20.656552 0 0 0 9.604413 6.532414c3.848828 1.271172 8.297931 1.906759 13.417931 1.906758 14.265379 0 22.704552-8.686345 25.246897-26.059034a226.974897 226.974897 0 0 0 10.345931-57.061517 174.150621 174.150621 0 0 0-3.813517-47.845518 153.847172 153.847172 0 0 0-14.936276-38.664827 129.765517 129.765517 0 0 0-22.987035-30.649379 186.862345 186.862345 0 0 0-29.131034-22.987035 193.147586 193.147586 0 0 0-31.002483-16.489931 209.531586 209.531586 0 0 0-31.037793-9.922207z\" fill=\"#FFFFFF\" ></path></symbol></svg>',e=(t=document.getElementsByTagName(\"script\"))[t.length-1].getAttribute(\"data-injectcss\");if(e&&!o.__iconfont__svg__cssinject__){o.__iconfont__svg__cssinject__=!0;try{document.write(\"<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>\")}catch(t){console&&console.log(t)}}!function(t){if(document.addEventListener)if(~[\"complete\",\"loaded\",\"interactive\"].indexOf(document.readyState))setTimeout(t,0);else{var e=function(){document.removeEventListener(\"DOMContentLoaded\",e,!1),t()};document.addEventListener(\"DOMContentLoaded\",e,!1)}else document.attachEvent&&(a=t,l=o.document,c=!1,n=function(){c||(c=!0,a())},(i=function(){try{l.documentElement.doScroll(\"left\")}catch(t){return void setTimeout(i,50)}n()})(),l.onreadystatechange=function(){\"complete\"==l.readyState&&(l.onreadystatechange=null,n())});var a,l,c,n,i}(function(){var t,e;(t=document.createElement(\"div\")).innerHTML=a,a=null,(e=t.getElementsByTagName(\"svg\")[0])&&(e.setAttribute(\"aria-hidden\",\"true\"),e.style.position=\"absolute\",e.style.width=0,e.style.height=0,e.style.overflow=\"hidden\",function(t,e){e.firstChild?function(t,e){e.parentNode.insertBefore(t,e)}(t,e.firstChild):e.appendChild(t)}(e,document.body))})}(window);"
  },
  {
    "path": "public/static/home/assets/js/paper-kit.js",
    "content": "\n // =========================================================\n //  Paper Kit 2 PRO - v2.3.0\n // =========================================================\n //\n //  Product Page: https://www.creative-tim.com/product/paper-kit-2-pro\n //  Copyright 2019 Creative Tim (https://www.creative-tim.com)\n //\n //  Coded by Creative Tim\n //\n // =========================================================\n //\n //  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n\nvar navbar_initialized,big_image,transparent=!0,transparentDemo=!0,fixedTop=!1,backgroundOrange=!1,toggle_initialized=!1;function debounce(o,a,n){var l;return function(){var e=this,t=arguments;clearTimeout(l),l=setTimeout(function(){l=null,n||o.apply(e,t)},a),n&&!l&&o.apply(e,t)}}$(document).ready(function(){window_width=$(window).width(),$(\".dropdown-menu a.dropdown-toggle\").on(\"click\",function(e){var t=$(this),o=$(this).offsetParent(\".dropdown-menu\");return $(this).next().hasClass(\"show\")||$(this).parents(\".dropdown-menu\").first().find(\".show\").removeClass(\"show\"),$(this).next(\".dropdown-menu\").toggleClass(\"show\"),$(this).parent(\"li\").toggleClass(\"show\"),$(this).parents(\"li.nav-item.dropdown.show\").on(\"hidden.bs.dropdown\",function(e){$(\".dropdown-menu .show\").removeClass(\"show\")}),o.parent().hasClass(\"navbar-nav\")||t.next().css({top:t[0].offsetTop,left:o.outerWidth()-4}),!1}),0!=$(\".sections-page\").length&&($('a[data-scroll=\"true\"]').click(function(e){var t=$(this).data(\"id\");1==$(this).data(\"scroll\")&&void 0!==t&&(e.preventDefault(),$(\"html, body\").animate({scrollTop:$(t).offset().top-50},1e3))}),$('.navbar-collapse a[data-scroll=\"true\"]').click(function(){setTimeout(function(){1==pk.misc.navbar_menu_visible&&($(\"html\").removeClass(\"nav-open\"),pk.misc.navbar_menu_visible=0,$(\"#bodyClick\").remove(),setTimeout(function(){$toggle.removeClass(\"toggled\")},550))},550)})),0!=$('[data-toggle=\"tooltip\"]').length&&$('[data-toggle=\"tooltip\"]').tooltip(),0!=$(\".switch\").length&&$(\".switch\")[\".bootstrapSwitch\"](),0!=$(\"[data-toggle='switch']\").length&&$(\"[data-toggle='switch']\").bootstrapSwitch(),0!=$(\".selectpicker\").length&&$(\".selectpicker\").selectpicker(),0!=$(\".modal\").length&&$(\".modal\").appendTo(\"body\"),0!=$(\".tagsinput\").length&&$(\".tagsinput\").tagsinput(),$(\".textarea-limited\").keyup(function(){var e=$(this).attr(\"maxlength\"),t=$(this).val().length;if(e<=t)$(\"#textarea-limited-message\").text(\" you have reached the limit\");else{var o=e-t;$(\"#textarea-limited-message\").text(o+\" characters left\")}}),768<=window_width&&0!=(big_image=$('.page-header[data-parallax=\"true\"]')).length&&$(window).on(\"scroll\",pk.checkScrollForPresentationPage),$(\"#navbarToggler\").on(\"show.bs.collapse\",function(){$(\"nav\").hasClass(\"navbar-transparent\")&&$(document).scrollTop()<50&&($(\".navbar\").addClass(\"no-transition\"),$(\"nav\").removeClass(\"navbar-transparent\"))}).on(\"hidden.bs.collapse\",function(){$(document).scrollTop()<50&&($(\".navbar\").removeClass(\"no-transition\"),$(\"nav:first-of-type\").addClass(\"navbar-transparent\"))}),0!=$(\".navbar[color-on-scroll]\").length&&$(window).on(\"scroll\",pk.checkScrollForTransparentNavbar),$(\".btn-tooltip\").tooltip(),$(\".label-tooltip\").tooltip(),$(\".carousel\").carousel({interval:2e4}),$(\".form-control\").on(\"focus\",function(){$(this).parent(\".input-group\").addClass(\"input-group-focus\")}).on(\"blur\",function(){$(this).parent(\".input-group\").removeClass(\"input-group-focus\")}),pk.initPopovers(),pk.initSliders(),pk.initVideoBackground(),0!=$(\".nav-down\").length&&pk.checkScrollForMovingNavbar()}),$(document).on(\"click\",\".navbar-toggler\",function(){$toggle=$(this),1==pk.misc.navbar_menu_visible?($(\"html\").removeClass(\"nav-open\"),pk.misc.navbar_menu_visible=0,$(\"#bodyClick\").remove(),setTimeout(function(){$toggle.removeClass(\"toggled\")},550)):(setTimeout(function(){$toggle.addClass(\"toggled\")},580),div='<div id=\"bodyClick\"></div>',$(div).appendTo(\"body\").click(function(){$(\"html\").removeClass(\"nav-open\"),pk.misc.navbar_menu_visible=0,setTimeout(function(){$toggle.removeClass(\"toggled\"),$(\"#bodyClick\").remove()},550)}),$(\"html\").addClass(\"nav-open\"),pk.misc.navbar_menu_visible=1)}),pk={misc:{navbar_menu_visible:0},checkScrollForTransparentNavbar:debounce(function(){$(document).scrollTop()>$(\".navbar\").attr(\"color-on-scroll\")?transparent&&(transparent=!1,$(\".navbar[color-on-scroll]\").removeClass(\"navbar-transparent\")):transparent||(transparent=!0,$(\".navbar[color-on-scroll]\").addClass(\"navbar-transparent\"))},17),checkScrollForMovingNavbar:function(){navbarHeight=$(\".navbar\").outerHeight(),$(window).scroll(function(e){didScroll=!0}),setInterval(function(){didScroll&&(hasScrolled(),didScroll=!1)},250)},checkScrollForPresentationPage:debounce(function(){oVal=$(window).scrollTop()/3,big_image.css({transform:\"translate3d(0,\"+oVal+\"px,0)\",\"-webkit-transform\":\"translate3d(0,\"+oVal+\"px,0)\",\"-ms-transform\":\"translate3d(0,\"+oVal+\"px,0)\",\"-o-transform\":\"translate3d(0,\"+oVal+\"px,0)\"})},4),initVideoBackground:function(){$('[data-toggle=\"video\"]').click(function(){id_video=$(this).data(\"video\"),video=$(\"#\"+id_video).get(0),parent=$(this).parent(\"div\").parent(\"div\"),video.paused?(video.play(),$(this).html('<i class=\"fa fa-pause\"></i> Pause Video'),parent.addClass(\"state-play\")):(video.pause(),$(this).html('<i class=\"fa fa-play\"></i> Play Video'),parent.removeClass(\"state-play\"))})},initPopovers:function(){0!=$('[data-toggle=\"popover\"]').length&&($(\"body\").append('<div class=\"popover-filter\"></div>'),$('[data-toggle=\"popover\"]').popover().on(\"show.bs.popover\",function(){$(\".popover-filter\").click(function(){$(this).removeClass(\"in\"),$('[data-toggle=\"popover\"]').popover(\"hide\")}),$(\".popover-filter\").addClass(\"in\")}).on(\"hide.bs.popover\",function(){$(\".popover-filter\").removeClass(\"in\")}))},initSliders:function(){if(0!=$(\"#sliderRegular\").length){var e=document.getElementById(\"sliderRegular\");noUiSlider.create(e,{start:[5e3],range:{min:[2e3],max:[1e4]}})}if(0!=$(\"#sliderDouble\").length){var t=document.getElementById(\"sliderDouble\");noUiSlider.create(t,{start:[20,80],connect:!0,range:{min:0,max:100}})}}};var didScroll,searchVisible=0,lastScrollTop=(transparent=!0,transparentDemo=!0,fixedTop=!1,toggle_initialized=!1,0),delta=5,navbarHeight=0;function debounce(o,a,n){var l;return function(){var e=this,t=arguments;clearTimeout(l),l=setTimeout(function(){l=null,n||o.apply(e,t)},a),n&&!l&&o.apply(e,t)}}function hasScrolled(){var e=$(this).scrollTop();Math.abs(lastScrollTop-e)<=delta||(lastScrollTop<e&&navbarHeight<e?$(\".navbar.nav-down\").removeClass(\"nav-down\").addClass(\"nav-up\"):e+$(window).height()<$(document).height()&&$(\".navbar.nav-up\").removeClass(\"nav-up\").addClass(\"nav-down\"),lastScrollTop=e)}demo={initContactUsMap:function(){var e=new google.maps.LatLng(44.445248,26.099672),t={zoom:14,center:e,styles:[{featureType:\"water\",elementType:\"geometry\",stylers:[{color:\"#e9e9e9\"},{lightness:17}]},{featureType:\"landscape\",elementType:\"geometry\",stylers:[{color:\"#f5f5f5\"},{lightness:20}]},{featureType:\"road.highway\",elementType:\"geometry.fill\",stylers:[{color:\"#ffffff\"},{lightness:17}]},{featureType:\"road.highway\",elementType:\"geometry.stroke\",stylers:[{color:\"#ffffff\"},{lightness:29},{weight:.2}]},{featureType:\"road.arterial\",elementType:\"geometry\",stylers:[{color:\"#ffffff\"},{lightness:18}]},{featureType:\"road.local\",elementType:\"geometry\",stylers:[{color:\"#ffffff\"},{lightness:16}]},{featureType:\"poi\",elementType:\"geometry\",stylers:[{color:\"#f5f5f5\"},{lightness:21}]},{featureType:\"poi.park\",elementType:\"geometry\",stylers:[{color:\"#dedede\"},{lightness:21}]},{elementType:\"labels.text.stroke\",stylers:[{visibility:\"on\"},{color:\"#ffffff\"},{lightness:16}]},{elementType:\"labels.text.fill\",stylers:[{saturation:36},{color:\"#333333\"},{lightness:40}]},{elementType:\"labels.icon\",stylers:[{visibility:\"off\"}]},{featureType:\"transit\",elementType:\"geometry\",stylers:[{color:\"#f2f2f2\"},{lightness:19}]},{featureType:\"administrative\",elementType:\"geometry.fill\",stylers:[{color:\"#fefefe\"},{lightness:20}]},{featureType:\"administrative\",elementType:\"geometry.stroke\",stylers:[{color:\"#fefefe\"},{lightness:17},{weight:1.2}]}],scrollwheel:!1},o=new google.maps.Map(document.getElementById(\"contactUsMap\"),t);new google.maps.Marker({position:e,title:\"Creative Tim Office\"}).setMap(o)},initContactUsMap2:function(){var e=new google.maps.LatLng(44.445248,26.099672),t={zoom:14,center:e,styles:[{featureType:\"water\",elementType:\"geometry\",stylers:[{color:\"#e9e9e9\"},{lightness:17}]},{featureType:\"landscape\",elementType:\"geometry\",stylers:[{color:\"#f5f5f5\"},{lightness:20}]},{featureType:\"road.highway\",elementType:\"geometry.fill\",stylers:[{color:\"#ffffff\"},{lightness:17}]},{featureType:\"road.highway\",elementType:\"geometry.stroke\",stylers:[{color:\"#ffffff\"},{lightness:29},{weight:.2}]},{featureType:\"road.arterial\",elementType:\"geometry\",stylers:[{color:\"#ffffff\"},{lightness:18}]},{featureType:\"road.local\",elementType:\"geometry\",stylers:[{color:\"#ffffff\"},{lightness:16}]},{featureType:\"poi\",elementType:\"geometry\",stylers:[{color:\"#f5f5f5\"},{lightness:21}]},{featureType:\"poi.park\",elementType:\"geometry\",stylers:[{color:\"#dedede\"},{lightness:21}]},{elementType:\"labels.text.stroke\",stylers:[{visibility:\"on\"},{color:\"#ffffff\"},{lightness:16}]},{elementType:\"labels.text.fill\",stylers:[{saturation:36},{color:\"#333333\"},{lightness:40}]},{elementType:\"labels.icon\",stylers:[{visibility:\"off\"}]},{featureType:\"transit\",elementType:\"geometry\",stylers:[{color:\"#f2f2f2\"},{lightness:19}]},{featureType:\"administrative\",elementType:\"geometry.fill\",stylers:[{color:\"#fefefe\"},{lightness:20}]},{featureType:\"administrative\",elementType:\"geometry.stroke\",stylers:[{color:\"#fefefe\"},{lightness:17},{weight:1.2}]}],scrollwheel:!1},o=new google.maps.Map(document.getElementById(\"contactUsMap2\"),t);new google.maps.Marker({position:e,title:\"Creative Tim Office\"}).setMap(o)},verticalDots:function(){var e=$(\".cd-section\"),t=$(\"#cd-vertical-nav a\");function o(){e.each(function(){$this=$(this);var e=$('#cd-vertical-nav a[href=\"#'+$this.attr(\"id\")+'\"]').data(\"number\")-1;$this.offset().top-$(window).height()/2<$(window).scrollTop()&&$this.offset().top+$this.height()-$(window).height()/2>$(window).scrollTop()?t.eq(e).addClass(\"is-selected\"):t.eq(e).removeClass(\"is-selected\")})}function a(e){$(\"body,html\").animate({scrollTop:e.offset().top},600)}o(),$(window).on(\"scroll\",function(){o()}),t.on(\"click\",function(e){e.preventDefault(),a($(this.hash))}),$(\".cd-scroll-down\").on(\"click\",function(e){e.preventDefault(),a($(this.hash))}),$(\".touch .cd-nav-trigger\").on(\"click\",function(){$(\".touch #cd-vertical-nav\").toggleClass(\"open\")}),$(\".touch #cd-vertical-nav a\").on(\"click\",function(){$(\".touch #cd-vertical-nav\").removeClass(\"open\")})}},$(document).ready(function(){demo.verticalDots()}),$(\"body\").hasClass(\"presentation-page\")&&$(function(){var o=$(window);function e(){$(\".add-animation:not(.animated)\").each(function(){var e=$(this);e.offset().top<o.scrollTop()+o.height()&&e.addClass(\"animated\")}),$(\".add-animation.animated\").each(function(e){var t=$(this).offset().top;scrolled=o.scrollTop(),win_height_padded=.8*o.height(),scrolled+win_height_padded<t&&$(this).removeClass(\"animated\")})}Modernizr.touch&&$(\".add-animation\").addClass(\"animated\"),o.on(\"scroll\",e),e()});\n//# sourceMappingURL=_site_kit_pro/assets/js/kit-pro.js.map"
  },
  {
    "path": "public/static/home/assets/js/plugins/bootstrap-datepicker.js",
    "content": "/*! version : 4.17.47\n =========================================================\n bootstrap-datetimejs\n https://github.com/Eonasdan/bootstrap-datetimepicker\n Copyright (c) 2015 Jonathan Peterson\n =========================================================\n */\n/*\n The MIT License (MIT)\n\n Copyright (c) 2015 Jonathan Peterson\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n/*global define:false */\n/*global exports:false */\n/*global require:false */\n/*global jQuery:false */\n/*global moment:false */\n(function(factory) {\n  'use strict';\n  if (typeof define === 'function' && define.amd) {\n    // AMD is used - Register as an anonymous module.\n    define(['jquery', 'moment'], factory);\n  } else if (typeof exports === 'object') {\n    module.exports = factory(require('jquery'), require('moment'));\n  } else {\n    // Neither AMD nor CommonJS used. Use global variables.\n    if (typeof jQuery === 'undefined') {\n      throw 'bootstrap-datetimepicker requires jQuery to be loaded first';\n    }\n    if (typeof moment === 'undefined') {\n      throw 'bootstrap-datetimepicker requires Moment.js to be loaded first';\n    }\n    factory(jQuery, moment);\n  }\n}(function($, moment) {\n  'use strict';\n  if (!moment) {\n    throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\n  }\n\n  var dateTimePicker = function(element, options) {\n    var picker = {},\n      date,\n      viewDate,\n      unset = true,\n      input,\n      component = false,\n      widget = false,\n      use24Hours,\n      minViewModeNumber = 0,\n      actualFormat,\n      parseFormats,\n      currentViewMode,\n      datePickerModes = [{\n          clsName: 'days',\n          navFnc: 'M',\n          navStep: 1\n        },\n        {\n          clsName: 'months',\n          navFnc: 'y',\n          navStep: 1\n        },\n        {\n          clsName: 'years',\n          navFnc: 'y',\n          navStep: 10\n        },\n        {\n          clsName: 'decades',\n          navFnc: 'y',\n          navStep: 100\n        }\n      ],\n      viewModes = ['days', 'months', 'years', 'decades'],\n      verticalModes = ['top', 'bottom', 'auto'],\n      horizontalModes = ['left', 'right', 'auto'],\n      toolbarPlacements = ['default', 'top', 'bottom'],\n      keyMap = {\n        'up': 38,\n        38: 'up',\n        'down': 40,\n        40: 'down',\n        'left': 37,\n        37: 'left',\n        'right': 39,\n        39: 'right',\n        'tab': 9,\n        9: 'tab',\n        'escape': 27,\n        27: 'escape',\n        'enter': 13,\n        13: 'enter',\n        'pageUp': 33,\n        33: 'pageUp',\n        'pageDown': 34,\n        34: 'pageDown',\n        'shift': 16,\n        16: 'shift',\n        'control': 17,\n        17: 'control',\n        'space': 32,\n        32: 'space',\n        't': 84,\n        84: 't',\n        'delete': 46,\n        46: 'delete'\n      },\n      keyState = {},\n\n      /********************************************************************************\n       *\n       * Private functions\n       *\n       ********************************************************************************/\n\n      hasTimeZone = function() {\n        return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '';\n      },\n\n      getMoment = function(d) {\n        var returnMoment;\n\n        if (d === undefined || d === null) {\n          returnMoment = moment(); //TODO should this use format? and locale?\n        } else if (moment.isDate(d) || moment.isMoment(d)) {\n          // If the date that is passed in is already a Date() or moment() object,\n          // pass it directly to moment.\n          returnMoment = moment(d);\n        } else if (hasTimeZone()) { // There is a string to parse and a default time zone\n          // parse with the tz function which takes a default time zone if it is not in the format string\n          returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone);\n        } else {\n          returnMoment = moment(d, parseFormats, options.useStrict);\n        }\n\n        if (hasTimeZone()) {\n          returnMoment.tz(options.timeZone);\n        }\n\n        return returnMoment;\n      },\n\n      isEnabled = function(granularity) {\n        if (typeof granularity !== 'string' || granularity.length > 1) {\n          throw new TypeError('isEnabled expects a single character string parameter');\n        }\n        switch (granularity) {\n          case 'y':\n            return actualFormat.indexOf('Y') !== -1;\n          case 'M':\n            return actualFormat.indexOf('M') !== -1;\n          case 'd':\n            return actualFormat.toLowerCase().indexOf('d') !== -1;\n          case 'h':\n          case 'H':\n            return actualFormat.toLowerCase().indexOf('h') !== -1;\n          case 'm':\n            return actualFormat.indexOf('m') !== -1;\n          case 's':\n            return actualFormat.indexOf('s') !== -1;\n          default:\n            return false;\n        }\n      },\n\n      hasTime = function() {\n        return (isEnabled('h') || isEnabled('m') || isEnabled('s'));\n      },\n\n      hasDate = function() {\n        return (isEnabled('y') || isEnabled('M') || isEnabled('d'));\n      },\n\n      getDatePickerTemplate = function() {\n        var headTemplate = $('<thead>')\n          .append($('<tr>')\n            .append($('<th>').addClass('prev').attr('data-action', 'previous')\n              .append($('<span>').addClass(options.icons.previous))\n            )\n            .append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', (options.calendarWeeks ? '6' : '5')))\n            .append($('<th>').addClass('next').attr('data-action', 'next')\n              .append($('<span>').addClass(options.icons.next))\n            )\n          ),\n          contTemplate = $('<tbody>')\n          .append($('<tr>')\n            .append($('<td>').attr('colspan', (options.calendarWeeks ? '8' : '7')))\n          );\n\n        return [\n          $('<div>').addClass('datepicker-days')\n          .append($('<table>').addClass('table-condensed')\n            .append(headTemplate)\n            .append($('<tbody>'))\n          ),\n          $('<div>').addClass('datepicker-months')\n          .append($('<table>').addClass('table-condensed')\n            .append(headTemplate.clone())\n            .append(contTemplate.clone())\n          ),\n          $('<div>').addClass('datepicker-years')\n          .append($('<table>').addClass('table-condensed')\n            .append(headTemplate.clone())\n            .append(contTemplate.clone())\n          ),\n          $('<div>').addClass('datepicker-decades')\n          .append($('<table>').addClass('table-condensed')\n            .append(headTemplate.clone())\n            .append(contTemplate.clone())\n          )\n        ];\n      },\n\n      getTimePickerMainTemplate = function() {\n        var topRow = $('<tr>'),\n          middleRow = $('<tr>'),\n          bottomRow = $('<tr>');\n\n        if (isEnabled('h')) {\n          topRow.append($('<td>')\n            .append($('<a>').attr({\n              href: '#',\n              tabindex: '-1',\n              'title': options.tooltips.incrementHour\n            }).addClass('btn').attr('data-action', 'incrementHours').append($('<span>').addClass(options.icons.up))));\n          middleRow.append($('<td>')\n            .append($('<span>').addClass('timepicker-hour').attr({\n              'data-time-component': 'hours',\n              'title': options.tooltips.pickHour\n            }).attr('data-action', 'showHours')));\n          bottomRow.append($('<td>')\n            .append($('<a>').attr({\n              href: '#',\n              tabindex: '-1',\n              'title': options.tooltips.decrementHour\n            }).addClass('btn').attr('data-action', 'decrementHours').append($('<span>').addClass(options.icons.down))));\n        }\n        if (isEnabled('m')) {\n          if (isEnabled('h')) {\n            topRow.append($('<td>').addClass('separator'));\n            middleRow.append($('<td>').addClass('separator').html(':'));\n            bottomRow.append($('<td>').addClass('separator'));\n          }\n          topRow.append($('<td>')\n            .append($('<a>').attr({\n                href: '#',\n                tabindex: '-1',\n                'title': options.tooltips.incrementMinute\n              }).addClass('btn').attr('data-action', 'incrementMinutes')\n              .append($('<span>').addClass(options.icons.up))));\n          middleRow.append($('<td>')\n            .append($('<span>').addClass('timepicker-minute').attr({\n              'data-time-component': 'minutes',\n              'title': options.tooltips.pickMinute\n            }).attr('data-action', 'showMinutes')));\n          bottomRow.append($('<td>')\n            .append($('<a>').attr({\n                href: '#',\n                tabindex: '-1',\n                'title': options.tooltips.decrementMinute\n              }).addClass('btn').attr('data-action', 'decrementMinutes')\n              .append($('<span>').addClass(options.icons.down))));\n        }\n        if (isEnabled('s')) {\n          if (isEnabled('m')) {\n            topRow.append($('<td>').addClass('separator'));\n            middleRow.append($('<td>').addClass('separator').html(':'));\n            bottomRow.append($('<td>').addClass('separator'));\n          }\n          topRow.append($('<td>')\n            .append($('<a>').attr({\n                href: '#',\n                tabindex: '-1',\n                'title': options.tooltips.incrementSecond\n              }).addClass('btn btn-link').attr('data-action', 'incrementSeconds')\n              .append($('<span>').addClass(options.icons.up))));\n          middleRow.append($('<td>')\n            .append($('<span>').addClass('timepicker-second').attr({\n              'data-time-component': 'seconds',\n              'title': options.tooltips.pickSecond\n            }).attr('data-action', 'showSeconds')));\n          bottomRow.append($('<td>')\n            .append($('<a>').attr({\n                href: '#',\n                tabindex: '-1',\n                'title': options.tooltips.decrementSecond\n              }).addClass('btn btn-link').attr('data-action', 'decrementSeconds')\n              .append($('<span>').addClass(options.icons.down))));\n        }\n\n        if (!use24Hours) {\n          topRow.append($('<td>').addClass('separator'));\n          middleRow.append($('<td>')\n            .append($('<button>').addClass('btn btn-outline-primary btn-round').attr({\n              'data-action': 'togglePeriod',\n              tabindex: '-1',\n              'title': options.tooltips.togglePeriod\n            })));\n          bottomRow.append($('<td>').addClass('separator'));\n        }\n\n        return $('<div>').addClass('timepicker-picker')\n          .append($('<table>').addClass('table-condensed')\n            .append([topRow, middleRow, bottomRow]));\n      },\n\n      getTimePickerTemplate = function() {\n        var hoursView = $('<div>').addClass('timepicker-hours')\n          .append($('<table>').addClass('table-condensed')),\n          minutesView = $('<div>').addClass('timepicker-minutes')\n          .append($('<table>').addClass('table-condensed')),\n          secondsView = $('<div>').addClass('timepicker-seconds')\n          .append($('<table>').addClass('table-condensed')),\n          ret = [getTimePickerMainTemplate()];\n\n        if (isEnabled('h')) {\n          ret.push(hoursView);\n        }\n        if (isEnabled('m')) {\n          ret.push(minutesView);\n        }\n        if (isEnabled('s')) {\n          ret.push(secondsView);\n        }\n\n        return ret;\n      },\n\n      getToolbar = function() {\n        var row = [];\n        if (options.showTodayButton) {\n          row.push($('<td>').append($('<a>').attr({\n            'data-action': 'today',\n            'title': options.tooltips.today\n          }).append($('<span>').addClass(options.icons.today))));\n        }\n        if (!options.sideBySide && hasDate() && hasTime()) {\n          row.push($('<td>').append($('<a>').attr({\n            'data-action': 'togglePicker',\n            'title': options.tooltips.selectTime\n          }).append($('<span>').addClass(options.icons.time))));\n        }\n        if (options.showClear) {\n          row.push($('<td>').append($('<a>').attr({\n            'data-action': 'clear',\n            'title': options.tooltips.clear\n          }).append($('<span>').addClass(options.icons.clear))));\n        }\n        if (options.showClose) {\n          row.push($('<td>').append($('<a>').attr({\n            'data-action': 'close',\n            'title': options.tooltips.close\n          }).append($('<span>').addClass(options.icons.close))));\n        }\n        return $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row)));\n      },\n\n      getTemplate = function() {\n        var template = $('<div>').addClass('bootstrap-datetimepicker-widget dropdown-menu'),\n          dateView = $('<div>').addClass('datepicker').append(getDatePickerTemplate()),\n          timeView = $('<div>').addClass('timepicker').append(getTimePickerTemplate()),\n          content = $('<ul>').addClass('list-unstyled'),\n          toolbar = $('<li>').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\n\n        if (options.inline) {\n          template.removeClass('dropdown-menu');\n        }\n\n        if (use24Hours) {\n          template.addClass('usetwentyfour');\n        }\n\n        if (isEnabled('s') && !use24Hours) {\n          template.addClass('wider');\n        }\n\n        if (options.sideBySide && hasDate() && hasTime()) {\n          template.addClass('timepicker-sbs');\n          if (options.toolbarPlacement === 'top') {\n            template.append(toolbar);\n          }\n          template.append(\n            $('<div>').addClass('row')\n            .append(dateView.addClass('col-md-6'))\n            .append(timeView.addClass('col-md-6'))\n          );\n          if (options.toolbarPlacement === 'bottom') {\n            template.append(toolbar);\n          }\n          return template;\n        }\n\n        if (options.toolbarPlacement === 'top') {\n          content.append(toolbar);\n        }\n        if (hasDate()) {\n          content.append($('<li>').addClass((options.collapse && hasTime() ? 'collapse show' : '')).append(dateView));\n        }\n        if (options.toolbarPlacement === 'default') {\n          content.append(toolbar);\n        }\n        if (hasTime()) {\n          content.append($('<li>').addClass((options.collapse && hasDate() ? 'collapse' : '')).append(timeView));\n        }\n        if (options.toolbarPlacement === 'bottom') {\n          content.append(toolbar);\n        }\n        return template.append(content);\n      },\n\n      dataToOptions = function() {\n        var eData,\n          dataOptions = {};\n\n        if (element.is('input') || options.inline) {\n          eData = element.data();\n        } else {\n          eData = element.find('input').data();\n        }\n\n        if (eData.dateOptions && eData.dateOptions instanceof Object) {\n          dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n        }\n\n        $.each(options, function(key) {\n          var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\n          if (eData[attributeName] !== undefined) {\n            dataOptions[key] = eData[attributeName];\n          }\n        });\n        return dataOptions;\n      },\n\n      place = function() {\n        var position = (component || element).position(),\n          offset = (component || element).offset(),\n          vertical = options.widgetPositioning.vertical,\n          horizontal = options.widgetPositioning.horizontal,\n          parent;\n\n        if (options.widgetParent) {\n          parent = options.widgetParent.append(widget);\n        } else if (element.is('input')) {\n          parent = element.after(widget).parent();\n        } else if (options.inline) {\n          parent = element.append(widget);\n          return;\n        } else {\n          parent = element;\n          element.children().first().after(widget);\n        }\n\n        // Top and bottom logic\n        if (vertical === 'auto') {\n          if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() &&\n            widget.height() + element.outerHeight() < offset.top) {\n            vertical = 'top';\n          } else {\n            vertical = 'bottom';\n          }\n        }\n\n        // Left and right logic\n        if (horizontal === 'auto') {\n          if (parent.width() < offset.left + widget.outerWidth() / 2 &&\n            offset.left + widget.outerWidth() > $(window).width()) {\n            horizontal = 'right';\n          } else {\n            horizontal = 'left';\n          }\n        }\n\n        if (vertical === 'top') {\n          widget.addClass('top').removeClass('bottom');\n        } else {\n          widget.addClass('bottom').removeClass('top');\n        }\n\n        if (horizontal === 'right') {\n          widget.addClass('pull-right');\n        } else {\n          widget.removeClass('pull-right');\n        }\n\n        // find the first parent element that has a non-static css positioning\n        if (parent.css('position') === 'static') {\n          parent = parent.parents().filter(function() {\n            return $(this).css('position') !== 'static';\n          }).first();\n        }\n\n        if (parent.length === 0) {\n          throw new Error('datetimepicker component should be placed within a non-static positioned container');\n        }\n\n        widget.css({\n          top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\n          bottom: vertical === 'top' ? parent.outerHeight() - (parent === element ? 0 : position.top) : 'auto',\n          left: horizontal === 'left' ? (parent === element ? 0 : position.left) : 'auto',\n          right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\n        });\n\n        // Creative Tim Changes - we add after 180 ms the \".open\" class, in this way the animations will be the same with the other dropdowns from the\n        setTimeout(function() {\n          widget.addClass('open');\n        }, 10);\n\n      },\n\n      notifyEvent = function(e) {\n        if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) {\n          return;\n        }\n        element.trigger(e);\n      },\n\n      viewUpdate = function(e) {\n        if (e === 'y') {\n          e = 'YYYY';\n        }\n        notifyEvent({\n          type: 'dp.update',\n          change: e,\n          viewDate: viewDate.clone()\n        });\n      },\n\n      showMode = function(dir) {\n        if (!widget) {\n          return;\n        }\n        if (dir) {\n          currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\n        }\n        widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show();\n      },\n\n      fillDow = function() {\n        var row = $('<tr>'),\n          currentDate = viewDate.clone().startOf('w').startOf('d');\n\n        if (options.calendarWeeks === true) {\n          row.append($('<th>').addClass('cw').text('#'));\n        }\n\n        while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\n          row.append($('<th>').addClass('dow').text(currentDate.format('dd')));\n          currentDate.add(1, 'd');\n        }\n        widget.find('.datepicker-days thead').append(row);\n      },\n\n      isInDisabledDates = function(testDate) {\n        return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n      },\n\n      isInEnabledDates = function(testDate) {\n        return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n      },\n\n      isInDisabledHours = function(testDate) {\n        return options.disabledHours[testDate.format('H')] === true;\n      },\n\n      isInEnabledHours = function(testDate) {\n        return options.enabledHours[testDate.format('H')] === true;\n      },\n\n      isValid = function(targetMoment, granularity) {\n        if (!targetMoment.isValid()) {\n          return false;\n        }\n        if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\n          return false;\n        }\n        if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\n          return false;\n        }\n        if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\n          return false;\n        }\n        if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\n          return false;\n        }\n        if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n          return false;\n        }\n        if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\n          return false;\n        }\n        if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\n          return false;\n        }\n        if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n          var found = false;\n          $.each(options.disabledTimeIntervals, function() {\n            if (targetMoment.isBetween(this[0], this[1])) {\n              found = true;\n              return false;\n            }\n          });\n          if (found) {\n            return false;\n          }\n        }\n        return true;\n      },\n\n      fillMonths = function() {\n        var spans = [],\n          monthsShort = viewDate.clone().startOf('y').startOf('d');\n        while (monthsShort.isSame(viewDate, 'y')) {\n          spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n          monthsShort.add(1, 'M');\n        }\n        widget.find('.datepicker-months td').empty().append(spans);\n      },\n\n      updateMonths = function() {\n        var monthsView = widget.find('.datepicker-months'),\n          monthsViewHeader = monthsView.find('th'),\n          months = monthsView.find('tbody').find('span');\n\n        monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\n        monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\n        monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\n\n        monthsView.find('.disabled').removeClass('disabled');\n\n        if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\n          monthsViewHeader.eq(0).addClass('disabled');\n        }\n\n        monthsViewHeader.eq(1).text(viewDate.year());\n\n        if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\n          monthsViewHeader.eq(2).addClass('disabled');\n        }\n\n        months.removeClass('active');\n        if (date.isSame(viewDate, 'y') && !unset) {\n          months.eq(date.month()).addClass('active');\n        }\n\n        months.each(function(index) {\n          if (!isValid(viewDate.clone().month(index), 'M')) {\n            $(this).addClass('disabled');\n          }\n        });\n      },\n\n      updateYears = function() {\n        var yearsView = widget.find('.datepicker-years'),\n          yearsViewHeader = yearsView.find('th'),\n          startYear = viewDate.clone().subtract(5, 'y'),\n          endYear = viewDate.clone().add(6, 'y'),\n          html = '';\n\n        yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\n        yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\n        yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\n\n        yearsView.find('.disabled').removeClass('disabled');\n\n        if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\n          yearsViewHeader.eq(0).addClass('disabled');\n        }\n\n        yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\n\n        if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\n          yearsViewHeader.eq(2).addClass('disabled');\n        }\n\n        while (!startYear.isAfter(endYear, 'y')) {\n          html += '<span data-action=\"selectYear\" class=\"year' + (startYear.isSame(date, 'y') && !unset ? ' active' : '') + (!isValid(startYear, 'y') ? ' disabled' : '') + '\">' + startYear.year() + '</span>';\n          startYear.add(1, 'y');\n        }\n\n        yearsView.find('td').html(html);\n      },\n\n      updateDecades = function() {\n        var decadesView = widget.find('.datepicker-decades'),\n          decadesViewHeader = decadesView.find('th'),\n          startDecade = moment({\n            y: viewDate.year() - (viewDate.year() % 100) - 1\n          }),\n          endDecade = startDecade.clone().add(100, 'y'),\n          startedAt = startDecade.clone(),\n          minDateDecade = false,\n          maxDateDecade = false,\n          endDecadeYear,\n          html = '';\n\n        decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\n        decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\n\n        decadesView.find('.disabled').removeClass('disabled');\n\n        if (startDecade.isSame(moment({\n            y: 1900\n          })) || (options.minDate && options.minDate.isAfter(startDecade, 'y'))) {\n          decadesViewHeader.eq(0).addClass('disabled');\n        }\n\n        decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\n\n        if (startDecade.isSame(moment({\n            y: 2000\n          })) || (options.maxDate && options.maxDate.isBefore(endDecade, 'y'))) {\n          decadesViewHeader.eq(2).addClass('disabled');\n        }\n\n        while (!startDecade.isAfter(endDecade, 'y')) {\n          endDecadeYear = startDecade.year() + 12;\n          minDateDecade = options.minDate && options.minDate.isAfter(startDecade, 'y') && options.minDate.year() <= endDecadeYear;\n          maxDateDecade = options.maxDate && options.maxDate.isAfter(startDecade, 'y') && options.maxDate.year() <= endDecadeYear;\n          html += '<span data-action=\"selectDecade\" class=\"decade' + (date.isAfter(startDecade) && date.year() <= endDecadeYear ? ' active' : '') +\n            (!isValid(startDecade, 'y') && !minDateDecade && !maxDateDecade ? ' disabled' : '') + '\" data-selection=\"' + (startDecade.year() + 6) + '\">' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '</span>';\n          startDecade.add(12, 'y');\n        }\n        html += '<span></span><span></span><span></span>'; //push the dangling block over, at least this way it's even\n\n        decadesView.find('td').html(html);\n        decadesViewHeader.eq(1).text((startedAt.year() + 1) + '-' + (startDecade.year()));\n      },\n\n      fillDate = function() {\n        var daysView = widget.find('.datepicker-days'),\n          daysViewHeader = daysView.find('th'),\n          currentDate,\n          html = [],\n          row,\n          clsNames = [],\n          i;\n\n        if (!hasDate()) {\n          return;\n        }\n\n        daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\n        daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\n        daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\n\n        daysView.find('.disabled').removeClass('disabled');\n        daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\n\n        if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\n          daysViewHeader.eq(0).addClass('disabled');\n        }\n        if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\n          daysViewHeader.eq(2).addClass('disabled');\n        }\n\n        currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\n\n        for (i = 0; i < 42; i++) { //always display 42 days (should show 6 weeks)\n          if (currentDate.weekday() === 0) {\n            row = $('<tr>');\n            if (options.calendarWeeks) {\n              row.append('<td class=\"cw\">' + currentDate.week() + '</td>');\n            }\n            html.push(row);\n          }\n          clsNames = ['day'];\n          if (currentDate.isBefore(viewDate, 'M')) {\n            clsNames.push('old');\n          }\n          if (currentDate.isAfter(viewDate, 'M')) {\n            clsNames.push('new');\n          }\n          if (currentDate.isSame(date, 'd') && !unset) {\n            clsNames.push('active');\n          }\n          if (!isValid(currentDate, 'd')) {\n            clsNames.push('disabled');\n          }\n          if (currentDate.isSame(getMoment(), 'd')) {\n            clsNames.push('today');\n          }\n          if (currentDate.day() === 0 || currentDate.day() === 6) {\n            clsNames.push('weekend');\n          }\n          notifyEvent({\n            type: 'dp.classify',\n            date: currentDate,\n            classNames: clsNames\n          });\n          // Creative Tim - we added a div inside each td for design purposes\n          row.append('<td data-action=\"selectDay\" data-day=\"' + currentDate.format('L') + '\" class=\"' + clsNames.join(' ') + '\"><div>' + currentDate.date() + '</div></td>');\n          currentDate.add(1, 'd');\n        }\n\n        daysView.find('tbody').empty().append(html);\n\n        updateMonths();\n\n        updateYears();\n\n        updateDecades();\n      },\n\n      fillHours = function() {\n        var table = widget.find('.timepicker-hours table'),\n          currentHour = viewDate.clone().startOf('d'),\n          html = [],\n          row = $('<tr>');\n\n        if (viewDate.hour() > 11 && !use24Hours) {\n          currentHour.hour(12);\n        }\n        while (currentHour.isSame(viewDate, 'd') && (use24Hours || (viewDate.hour() < 12 && currentHour.hour() < 12) || viewDate.hour() > 11)) {\n          if (currentHour.hour() % 4 === 0) {\n            row = $('<tr>');\n            html.push(row);\n          }\n          // Creative Tim - we added a div inside each class hour for design purposes\n          row.append('<td data-action=\"selectHour\" class=\"hour' + (!isValid(currentHour, 'h') ? ' disabled' : '') + '\"><div>' + currentHour.format(use24Hours ? 'HH' : 'hh') + '</div></td>');\n          currentHour.add(1, 'h');\n        }\n        table.empty().append(html);\n      },\n\n      fillMinutes = function() {\n        var table = widget.find('.timepicker-minutes table'),\n          currentMinute = viewDate.clone().startOf('h'),\n          html = [],\n          row = $('<tr>'),\n          step = options.stepping === 1 ? 5 : options.stepping;\n\n        while (viewDate.isSame(currentMinute, 'h')) {\n          if (currentMinute.minute() % (step * 4) === 0) {\n            row = $('<tr>');\n            html.push(row);\n          }\n          // Creative Tim - we added a div inside each class minute for design purposes\n          row.append('<td data-action=\"selectMinute\" class=\"minute' + (!isValid(currentMinute, 'm') ? ' disabled' : '') + '\"><div>' + currentMinute.format('mm') + '</div></td>');\n          currentMinute.add(step, 'm');\n        }\n        table.empty().append(html);\n      },\n\n      fillSeconds = function() {\n        var table = widget.find('.timepicker-seconds table'),\n          currentSecond = viewDate.clone().startOf('m'),\n          html = [],\n          row = $('<tr>');\n\n        while (viewDate.isSame(currentSecond, 'm')) {\n          if (currentSecond.second() % 20 === 0) {\n            row = $('<tr>');\n            html.push(row);\n          }\n          // Creative Tim - we added a div inside each class seconds for design purposes\n          row.append('<td data-action=\"selectSecond\" class=\"second' + (!isValid(currentSecond, 's') ? ' disabled' : '') + '\"><div>' + currentSecond.format('ss') + '</div></td>');\n          currentSecond.add(5, 's');\n        }\n\n        table.empty().append(html);\n      },\n\n      fillTime = function() {\n        var toggle, newDate, timeComponents = widget.find('.timepicker span[data-time-component]');\n\n        if (!use24Hours) {\n          toggle = widget.find('.timepicker [data-action=togglePeriod]');\n          newDate = date.clone().add((date.hours() >= 12) ? -12 : 12, 'h');\n\n          toggle.text(date.format('A'));\n\n          if (isValid(newDate, 'h')) {\n            toggle.removeClass('disabled');\n          } else {\n            toggle.addClass('disabled');\n          }\n        }\n        timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\n        timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\n        timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\n\n        fillHours();\n        fillMinutes();\n        fillSeconds();\n      },\n\n      update = function() {\n        if (!widget) {\n          return;\n        }\n        fillDate();\n        fillTime();\n      },\n\n      setValue = function(targetMoment) {\n        var oldDate = unset ? null : date;\n\n        // case of calling setValue(null or false)\n        if (!targetMoment) {\n          unset = true;\n          input.val('');\n          element.data('date', '');\n          notifyEvent({\n            type: 'dp.change',\n            date: false,\n            oldDate: oldDate\n          });\n          update();\n          return;\n        }\n\n        targetMoment = targetMoment.clone().locale(options.locale);\n\n        if (hasTimeZone()) {\n          targetMoment.tz(options.timeZone);\n        }\n\n        if (options.stepping !== 1) {\n          targetMoment.minutes((Math.round(targetMoment.minutes() / options.stepping) * options.stepping)).seconds(0);\n\n          while (options.minDate && targetMoment.isBefore(options.minDate)) {\n            targetMoment.add(options.stepping, 'minutes');\n          }\n        }\n\n        if (isValid(targetMoment)) {\n          date = targetMoment;\n          viewDate = date.clone();\n          input.val(date.format(actualFormat));\n          element.data('date', date.format(actualFormat));\n          unset = false;\n          update();\n          notifyEvent({\n            type: 'dp.change',\n            date: date.clone(),\n            oldDate: oldDate\n          });\n        } else {\n          if (!options.keepInvalid) {\n            input.val(unset ? '' : date.format(actualFormat));\n          } else {\n            notifyEvent({\n              type: 'dp.change',\n              date: targetMoment,\n              oldDate: oldDate\n            });\n          }\n          notifyEvent({\n            type: 'dp.error',\n            date: targetMoment,\n            oldDate: oldDate\n          });\n        }\n      },\n\n      /**\n       * Hides the widget. Possibly will emit dp.hide\n       */\n      hide = function() {\n        var transitioning = false;\n        if (!widget) {\n          return picker;\n        }\n        // Ignore event if in the middle of a picker transition\n        widget.find('.collapse').each(function() {\n          var collapseData = $(this).data('collapse');\n          if (collapseData && collapseData.transitioning) {\n            transitioning = true;\n            return false;\n          }\n          return true;\n        });\n        if (transitioning) {\n          return picker;\n        }\n        if (component && component.hasClass('btn')) {\n          component.toggleClass('active');\n        }\n\n        $(window).off('resize', place);\n        widget.off('click', '[data-action]');\n        widget.off('mousedown', false);\n\n        // Creative Tim Changes - we remove the \".open\" class, then, fter 400 ms call the .hide() method, in this way the animations will be the same with the other dropdowns from the dashboard\n\n        widget.removeClass('open');\n\n        setTimeout(function() {\n          widget.remove();\n          widget.hide();\n\n          widget = false;\n\n          notifyEvent({\n            type: 'dp.hide',\n            date: date.clone()\n          });\n\n          input.blur();\n\n          currentViewMode = 0;\n          viewDate = date.clone();\n\n          return picker;\n        }, 40);\n      },\n\n      clear = function() {\n        setValue(null);\n      },\n\n      parseInputDate = function(inputDate) {\n        if (options.parseInputDate === undefined) {\n          if (!moment.isMoment(inputDate) || inputDate instanceof Date) {\n            inputDate = getMoment(inputDate);\n          }\n        } else {\n          inputDate = options.parseInputDate(inputDate);\n        }\n        //inputDate.locale(options.locale);\n        return inputDate;\n      },\n\n      /********************************************************************************\n       *\n       * Widget UI interaction functions\n       *\n       ********************************************************************************/\n      actions = {\n        next: function() {\n          var navFnc = datePickerModes[currentViewMode].navFnc;\n          viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\n          fillDate();\n          viewUpdate(navFnc);\n        },\n\n        previous: function() {\n          var navFnc = datePickerModes[currentViewMode].navFnc;\n          viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\n          fillDate();\n          viewUpdate(navFnc);\n        },\n\n        pickerSwitch: function() {\n          showMode(1);\n        },\n\n        selectMonth: function(e) {\n          var month = $(e.target).closest('tbody').find('span').index($(e.target));\n          viewDate.month(month);\n          if (currentViewMode === minViewModeNumber) {\n            setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\n            if (!options.inline) {\n              hide();\n            }\n          } else {\n            showMode(-1);\n            fillDate();\n          }\n          viewUpdate('M');\n        },\n\n        selectYear: function(e) {\n          var year = parseInt($(e.target).text(), 10) || 0;\n          viewDate.year(year);\n          if (currentViewMode === minViewModeNumber) {\n            setValue(date.clone().year(viewDate.year()));\n            if (!options.inline) {\n              hide();\n            }\n          } else {\n            showMode(-1);\n            fillDate();\n          }\n          viewUpdate('YYYY');\n        },\n\n        selectDecade: function(e) {\n          var year = parseInt($(e.target).data('selection'), 10) || 0;\n          viewDate.year(year);\n          if (currentViewMode === minViewModeNumber) {\n            setValue(date.clone().year(viewDate.year()));\n            if (!options.inline) {\n              hide();\n            }\n          } else {\n            showMode(-1);\n            fillDate();\n          }\n          viewUpdate('YYYY');\n        },\n\n        selectDay: function(e) {\n          var day = viewDate.clone();\n          if ($(e.target).is('.old')) {\n            day.subtract(1, 'M');\n          }\n          if ($(e.target).is('.new')) {\n            day.add(1, 'M');\n          }\n          setValue(day.date(parseInt($(e.target).text(), 10)));\n          if (!hasTime() && !options.keepOpen && !options.inline) {\n            hide();\n          }\n        },\n\n        incrementHours: function() {\n          var newDate = date.clone().add(1, 'h');\n          if (isValid(newDate, 'h')) {\n            setValue(newDate);\n          }\n        },\n\n        incrementMinutes: function() {\n          var newDate = date.clone().add(options.stepping, 'm');\n          if (isValid(newDate, 'm')) {\n            setValue(newDate);\n          }\n        },\n\n        incrementSeconds: function() {\n          var newDate = date.clone().add(1, 's');\n          if (isValid(newDate, 's')) {\n            setValue(newDate);\n          }\n        },\n\n        decrementHours: function() {\n          var newDate = date.clone().subtract(1, 'h');\n          if (isValid(newDate, 'h')) {\n            setValue(newDate);\n          }\n        },\n\n        decrementMinutes: function() {\n          var newDate = date.clone().subtract(options.stepping, 'm');\n          if (isValid(newDate, 'm')) {\n            setValue(newDate);\n          }\n        },\n\n        decrementSeconds: function() {\n          var newDate = date.clone().subtract(1, 's');\n          if (isValid(newDate, 's')) {\n            setValue(newDate);\n          }\n        },\n\n        togglePeriod: function() {\n          setValue(date.clone().add((date.hours() >= 12) ? -12 : 12, 'h'));\n        },\n\n        togglePicker: function(e) {\n          var $this = $(e.target),\n            $parent = $this.closest('ul'),\n            expanded = $parent.find('.show'),\n            closed = $parent.find('.collapse:not(.show)'),\n            collapseData;\n\n          if (expanded && expanded.length) {\n            collapseData = expanded.data('collapse');\n            if (collapseData && collapseData.transitioning) {\n              return;\n            }\n            if (expanded.collapse) { // if collapse plugin is available through bootstrap.js then use it\n              expanded.collapse('hide');\n              closed.collapse('show');\n            } else { // otherwise just toggle in class on the two views\n              expanded.removeClass('show');\n              closed.addClass('show');\n            }\n            if ($this.is('span')) {\n              $this.toggleClass(options.icons.time + ' ' + options.icons.date);\n            } else {\n              $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n            }\n\n            // NOTE: uncomment if toggled state will be restored in show()\n            //if (component) {\n            //    component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n            //}\n          }\n        },\n\n        showPicker: function() {\n          widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n          widget.find('.timepicker .timepicker-picker').show();\n        },\n\n        showHours: function() {\n          widget.find('.timepicker .timepicker-picker').hide();\n          widget.find('.timepicker .timepicker-hours').show();\n        },\n\n        showMinutes: function() {\n          widget.find('.timepicker .timepicker-picker').hide();\n          widget.find('.timepicker .timepicker-minutes').show();\n        },\n\n        showSeconds: function() {\n          widget.find('.timepicker .timepicker-picker').hide();\n          widget.find('.timepicker .timepicker-seconds').show();\n        },\n\n        selectHour: function(e) {\n          var hour = parseInt($(e.target).text(), 10);\n\n          if (!use24Hours) {\n            if (date.hours() >= 12) {\n              if (hour !== 12) {\n                hour += 12;\n              }\n            } else {\n              if (hour === 12) {\n                hour = 0;\n              }\n            }\n          }\n          setValue(date.clone().hours(hour));\n          actions.showPicker.call(picker);\n        },\n\n        selectMinute: function(e) {\n          setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\n          actions.showPicker.call(picker);\n        },\n\n        selectSecond: function(e) {\n          setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\n          actions.showPicker.call(picker);\n        },\n\n        clear: clear,\n\n        today: function() {\n          var todaysDate = getMoment();\n          if (isValid(todaysDate, 'd')) {\n            setValue(todaysDate);\n          }\n        },\n\n        close: hide\n      },\n\n      doAction = function(e) {\n        if ($(e.currentTarget).is('.disabled')) {\n          return false;\n        }\n        actions[$(e.currentTarget).data('action')].apply(picker, arguments);\n        return false;\n      },\n\n      /**\n       * Shows the widget. Possibly will emit dp.show and dp.change\n       */\n      show = function() {\n        var currentMoment,\n          useCurrentGranularity = {\n            'year': function(m) {\n              return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n            },\n            'month': function(m) {\n              return m.date(1).hours(0).seconds(0).minutes(0);\n            },\n            'day': function(m) {\n              return m.hours(0).seconds(0).minutes(0);\n            },\n            'hour': function(m) {\n              return m.seconds(0).minutes(0);\n            },\n            'minute': function(m) {\n              return m.seconds(0);\n            }\n          };\n\n        if (input.prop('disabled') || (!options.ignoreReadonly && input.prop('readonly')) || widget) {\n          return picker;\n        }\n        if (input.val() !== undefined && input.val().trim().length !== 0) {\n          setValue(parseInputDate(input.val().trim()));\n        } else if (unset && options.useCurrent && (options.inline || (input.is('input') && input.val().trim().length === 0))) {\n          currentMoment = getMoment();\n          if (typeof options.useCurrent === 'string') {\n            currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\n          }\n          setValue(currentMoment);\n        }\n        widget = getTemplate();\n\n        fillDow();\n        fillMonths();\n\n        widget.find('.timepicker-hours').hide();\n        widget.find('.timepicker-minutes').hide();\n        widget.find('.timepicker-seconds').hide();\n\n        update();\n        showMode();\n\n        $(window).on('resize', place);\n        widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\n        widget.on('mousedown', false);\n\n        if (component && component.hasClass('btn')) {\n          component.toggleClass('active');\n        }\n        place();\n        widget.show();\n        if (options.focusOnShow && !input.is(':focus')) {\n          input.focus();\n        }\n\n        notifyEvent({\n          type: 'dp.show'\n        });\n        return picker;\n      },\n\n      /**\n       * Shows or hides the widget\n       */\n      toggle = function() {\n        return (widget ? hide() : show());\n      },\n\n      keydown = function(e) {\n        var handler = null,\n          index,\n          index2,\n          pressedKeys = [],\n          pressedModifiers = {},\n          currentKey = e.which,\n          keyBindKeys,\n          allModifiersPressed,\n          pressed = 'p';\n\n        keyState[currentKey] = pressed;\n\n        for (index in keyState) {\n          if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n            pressedKeys.push(index);\n            if (parseInt(index, 10) !== currentKey) {\n              pressedModifiers[index] = true;\n            }\n          }\n        }\n\n        for (index in options.keyBinds) {\n          if (options.keyBinds.hasOwnProperty(index) && typeof(options.keyBinds[index]) === 'function') {\n            keyBindKeys = index.split(' ');\n            if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n              allModifiersPressed = true;\n              for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n                if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\n                  allModifiersPressed = false;\n                  break;\n                }\n              }\n              if (allModifiersPressed) {\n                handler = options.keyBinds[index];\n                break;\n              }\n            }\n          }\n        }\n\n        if (handler) {\n          handler.call(picker, widget);\n          e.stopPropagation();\n          e.preventDefault();\n        }\n      },\n\n      keyup = function(e) {\n        keyState[e.which] = 'r';\n        e.stopPropagation();\n        e.preventDefault();\n      },\n\n      change = function(e) {\n        var val = $(e.target).val().trim(),\n          parsedDate = val ? parseInputDate(val) : null;\n        setValue(parsedDate);\n        e.stopImmediatePropagation();\n        return false;\n      },\n\n      attachDatePickerElementEvents = function() {\n        input.on({\n          'change': change,\n          'blur': options.debug ? '' : hide,\n          'keydown': keydown,\n          'keyup': keyup,\n          'focus': options.allowInputToggle ? show : ''\n        });\n\n        if (element.is('input')) {\n          input.on({\n            'focus': show\n          });\n        } else if (component) {\n          component.on('click', toggle);\n          component.on('mousedown', false);\n        }\n      },\n\n      detachDatePickerElementEvents = function() {\n        input.off({\n          'change': change,\n          'blur': blur,\n          'keydown': keydown,\n          'keyup': keyup,\n          'focus': options.allowInputToggle ? hide : ''\n        });\n\n        if (element.is('input')) {\n          input.off({\n            'focus': show\n          });\n        } else if (component) {\n          component.off('click', toggle);\n          component.off('mousedown', false);\n        }\n      },\n\n      indexGivenDates = function(givenDatesArray) {\n        // Store given enabledDates and disabledDates as keys.\n        // This way we can check their existence in O(1) time instead of looping through whole array.\n        // (for example: options.enabledDates['2014-02-27'] === true)\n        var givenDatesIndexed = {};\n        $.each(givenDatesArray, function() {\n          var dDate = parseInputDate(this);\n          if (dDate.isValid()) {\n            givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n          }\n        });\n        return (Object.keys(givenDatesIndexed).length) ? givenDatesIndexed : false;\n      },\n\n      indexGivenHours = function(givenHoursArray) {\n        // Store given enabledHours and disabledHours as keys.\n        // This way we can check their existence in O(1) time instead of looping through whole array.\n        // (for example: options.enabledHours['2014-02-27'] === true)\n        var givenHoursIndexed = {};\n        $.each(givenHoursArray, function() {\n          givenHoursIndexed[this] = true;\n        });\n        return (Object.keys(givenHoursIndexed).length) ? givenHoursIndexed : false;\n      },\n\n      initFormatting = function() {\n        var format = options.format || 'L LT';\n\n        actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(formatInput) {\n          var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\n          return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(formatInput2) { //temp fix for #740\n            return date.localeData().longDateFormat(formatInput2) || formatInput2;\n          });\n        });\n\n\n        parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\n        if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\n          parseFormats.push(actualFormat);\n        }\n\n        use24Hours = (actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1);\n\n        if (isEnabled('y')) {\n          minViewModeNumber = 2;\n        }\n        if (isEnabled('M')) {\n          minViewModeNumber = 1;\n        }\n        if (isEnabled('d')) {\n          minViewModeNumber = 0;\n        }\n\n        currentViewMode = Math.max(minViewModeNumber, currentViewMode);\n\n        if (!unset) {\n          setValue(date);\n        }\n      };\n\n    /********************************************************************************\n     *\n     * Public API functions\n     * =====================\n     *\n     * Important: Do not expose direct references to private objects or the options\n     * object to the outer world. Always return a clone when returning values or make\n     * a clone when setting a private variable.\n     *\n     ********************************************************************************/\n    picker.destroy = function() {\n      ///<summary>Destroys the widget and removes all attached event listeners</summary>\n      hide();\n      detachDatePickerElementEvents();\n      element.removeData('DateTimePicker');\n      element.removeData('date');\n    };\n\n    picker.toggle = toggle;\n\n    picker.show = show;\n\n    picker.hide = hide;\n\n    picker.disable = function() {\n      ///<summary>Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\n      ///If the widget was visible before that call it is hidden. Possibly emits dp.hide</summary>\n      hide();\n      if (component && component.hasClass('btn')) {\n        component.addClass('disabled');\n      }\n      input.prop('disabled', true);\n      return picker;\n    };\n\n    picker.enable = function() {\n      ///<summary>Enables the input element, the component is attached to, by removing disabled attribute from it.</summary>\n      if (component && component.hasClass('btn')) {\n        component.removeClass('disabled');\n      }\n      input.prop('disabled', false);\n      return picker;\n    };\n\n    picker.ignoreReadonly = function(ignoreReadonly) {\n      if (arguments.length === 0) {\n        return options.ignoreReadonly;\n      }\n      if (typeof ignoreReadonly !== 'boolean') {\n        throw new TypeError('ignoreReadonly () expects a boolean parameter');\n      }\n      options.ignoreReadonly = ignoreReadonly;\n      return picker;\n    };\n\n    picker.options = function(newOptions) {\n      if (arguments.length === 0) {\n        return $.extend(true, {}, options);\n      }\n\n      if (!(newOptions instanceof Object)) {\n        throw new TypeError('options() options parameter should be an object');\n      }\n      $.extend(true, options, newOptions);\n      $.each(options, function(key, value) {\n        if (picker[key] !== undefined) {\n          picker[key](value);\n        } else {\n          throw new TypeError('option ' + key + ' is not recognized!');\n        }\n      });\n      return picker;\n    };\n\n    picker.date = function(newDate) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.date\">\n      ///<summary>Returns the component's model current date, a moment object or null if not set.</summary>\n      ///<returns type=\"Moment\">date.clone()</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary>\n      ///<param name=\"newDate\" locid=\"$.fn.datetimepicker.date_p:newDate\">Takes string, Date, moment, null parameter.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        if (unset) {\n          return null;\n        }\n        return date.clone();\n      }\n\n      if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n        throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n      }\n\n      setValue(newDate === null ? null : parseInputDate(newDate));\n      return picker;\n    };\n\n    picker.format = function(newFormat) {\n      ///<summary>test su</summary>\n      ///<param name=\"newFormat\">info about para</param>\n      ///<returns type=\"string|boolean\">returns foo</returns>\n      if (arguments.length === 0) {\n        return options.format;\n      }\n\n      if ((typeof newFormat !== 'string') && ((typeof newFormat !== 'boolean') || (newFormat !== false))) {\n        throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat);\n      }\n\n      options.format = newFormat;\n      if (actualFormat) {\n        initFormatting(); // reinit formatting\n      }\n      return picker;\n    };\n\n    picker.timeZone = function(newZone) {\n      if (arguments.length === 0) {\n        return options.timeZone;\n      }\n\n      if (typeof newZone !== 'string') {\n        throw new TypeError('newZone() expects a string parameter');\n      }\n\n      options.timeZone = newZone;\n\n      return picker;\n    };\n\n    picker.dayViewHeaderFormat = function(newFormat) {\n      if (arguments.length === 0) {\n        return options.dayViewHeaderFormat;\n      }\n\n      if (typeof newFormat !== 'string') {\n        throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n      }\n\n      options.dayViewHeaderFormat = newFormat;\n      return picker;\n    };\n\n    picker.extraFormats = function(formats) {\n      if (arguments.length === 0) {\n        return options.extraFormats;\n      }\n\n      if (formats !== false && !(formats instanceof Array)) {\n        throw new TypeError('extraFormats() expects an array or false parameter');\n      }\n\n      options.extraFormats = formats;\n      if (parseFormats) {\n        initFormatting(); // reinit formatting\n      }\n      return picker;\n    };\n\n    picker.disabledDates = function(dates) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.disabledDates\">\n      ///<summary>Returns an array with the currently set disabled dates on the component.</summary>\n      ///<returns type=\"array\">options.disabledDates</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n      ///options.enabledDates if such exist.</summary>\n      ///<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return (options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates);\n      }\n\n      if (!dates) {\n        options.disabledDates = false;\n        update();\n        return picker;\n      }\n      if (!(dates instanceof Array)) {\n        throw new TypeError('disabledDates() expects an array parameter');\n      }\n      options.disabledDates = indexGivenDates(dates);\n      options.enabledDates = false;\n      update();\n      return picker;\n    };\n\n    picker.enabledDates = function(dates) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.enabledDates\">\n      ///<summary>Returns an array with the currently set enabled dates on the component.</summary>\n      ///<returns type=\"array\">options.enabledDates</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.</summary>\n      ///<param name=\"dates\" locid=\"$.fn.datetimepicker.enabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return (options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates);\n      }\n\n      if (!dates) {\n        options.enabledDates = false;\n        update();\n        return picker;\n      }\n      if (!(dates instanceof Array)) {\n        throw new TypeError('enabledDates() expects an array parameter');\n      }\n      options.enabledDates = indexGivenDates(dates);\n      options.disabledDates = false;\n      update();\n      return picker;\n    };\n\n    picker.daysOfWeekDisabled = function(daysOfWeekDisabled) {\n      if (arguments.length === 0) {\n        return options.daysOfWeekDisabled.splice(0);\n      }\n\n      if ((typeof daysOfWeekDisabled === 'boolean') && !daysOfWeekDisabled) {\n        options.daysOfWeekDisabled = false;\n        update();\n        return picker;\n      }\n\n      if (!(daysOfWeekDisabled instanceof Array)) {\n        throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n      }\n      options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function(previousValue, currentValue) {\n        currentValue = parseInt(currentValue, 10);\n        if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n          return previousValue;\n        }\n        if (previousValue.indexOf(currentValue) === -1) {\n          previousValue.push(currentValue);\n        }\n        return previousValue;\n      }, []).sort();\n      if (options.useCurrent && !options.keepInvalid) {\n        var tries = 0;\n        while (!isValid(date, 'd')) {\n          date.add(1, 'd');\n          if (tries === 31) {\n            throw 'Tried 31 times to find a valid date';\n          }\n          tries++;\n        }\n        setValue(date);\n      }\n      update();\n      return picker;\n    };\n\n    picker.maxDate = function(maxDate) {\n      if (arguments.length === 0) {\n        return options.maxDate ? options.maxDate.clone() : options.maxDate;\n      }\n\n      if ((typeof maxDate === 'boolean') && maxDate === false) {\n        options.maxDate = false;\n        update();\n        return picker;\n      }\n\n      if (typeof maxDate === 'string') {\n        if (maxDate === 'now' || maxDate === 'moment') {\n          maxDate = getMoment();\n        }\n      }\n\n      var parsedDate = parseInputDate(maxDate);\n\n      if (!parsedDate.isValid()) {\n        throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\n      }\n      if (options.minDate && parsedDate.isBefore(options.minDate)) {\n        throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\n      }\n      options.maxDate = parsedDate;\n      if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\n        setValue(options.maxDate);\n      }\n      if (viewDate.isAfter(parsedDate)) {\n        viewDate = parsedDate.clone().subtract(options.stepping, 'm');\n      }\n      update();\n      return picker;\n    };\n\n    picker.minDate = function(minDate) {\n      if (arguments.length === 0) {\n        return options.minDate ? options.minDate.clone() : options.minDate;\n      }\n\n      if ((typeof minDate === 'boolean') && minDate === false) {\n        options.minDate = false;\n        update();\n        return picker;\n      }\n\n      if (typeof minDate === 'string') {\n        if (minDate === 'now' || minDate === 'moment') {\n          minDate = getMoment();\n        }\n      }\n\n      var parsedDate = parseInputDate(minDate);\n\n      if (!parsedDate.isValid()) {\n        throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\n      }\n      if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\n        throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\n      }\n      options.minDate = parsedDate;\n      if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\n        setValue(options.minDate);\n      }\n      if (viewDate.isBefore(parsedDate)) {\n        viewDate = parsedDate.clone().add(options.stepping, 'm');\n      }\n      update();\n      return picker;\n    };\n\n    picker.defaultDate = function(defaultDate) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.defaultDate\">\n      ///<summary>Returns a moment with the options.defaultDate option configuration or false if not set</summary>\n      ///<returns type=\"Moment\">date.clone()</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.</summary>\n      ///<param name=\"defaultDate\" locid=\"$.fn.datetimepicker.defaultDate_p:defaultDate\">Takes a string, Date, moment, boolean:false</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\n      }\n      if (!defaultDate) {\n        options.defaultDate = false;\n        return picker;\n      }\n\n      if (typeof defaultDate === 'string') {\n        if (defaultDate === 'now' || defaultDate === 'moment') {\n          defaultDate = getMoment();\n        } else {\n          defaultDate = getMoment(defaultDate);\n        }\n      }\n\n      var parsedDate = parseInputDate(defaultDate);\n      if (!parsedDate.isValid()) {\n        throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\n      }\n      if (!isValid(parsedDate)) {\n        throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n      }\n\n      options.defaultDate = parsedDate;\n\n      if ((options.defaultDate && options.inline) || input.val().trim() === '') {\n        setValue(options.defaultDate);\n      }\n      return picker;\n    };\n\n    picker.locale = function(locale) {\n      if (arguments.length === 0) {\n        return options.locale;\n      }\n\n      if (!moment.localeData(locale)) {\n        throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\n      }\n\n      options.locale = locale;\n      date.locale(options.locale);\n      viewDate.locale(options.locale);\n\n      if (actualFormat) {\n        initFormatting(); // reinit formatting\n      }\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.stepping = function(stepping) {\n      if (arguments.length === 0) {\n        return options.stepping;\n      }\n\n      stepping = parseInt(stepping, 10);\n      if (isNaN(stepping) || stepping < 1) {\n        stepping = 1;\n      }\n      options.stepping = stepping;\n      return picker;\n    };\n\n    picker.useCurrent = function(useCurrent) {\n      var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n      if (arguments.length === 0) {\n        return options.useCurrent;\n      }\n\n      if ((typeof useCurrent !== 'boolean') && (typeof useCurrent !== 'string')) {\n        throw new TypeError('useCurrent() expects a boolean or string parameter');\n      }\n      if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\n        throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\n      }\n      options.useCurrent = useCurrent;\n      return picker;\n    };\n\n    picker.collapse = function(collapse) {\n      if (arguments.length === 0) {\n        return options.collapse;\n      }\n\n      if (typeof collapse !== 'boolean') {\n        throw new TypeError('collapse() expects a boolean parameter');\n      }\n      if (options.collapse === collapse) {\n        return picker;\n      }\n      options.collapse = collapse;\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.icons = function(icons) {\n      if (arguments.length === 0) {\n        return $.extend({}, options.icons);\n      }\n\n      if (!(icons instanceof Object)) {\n        throw new TypeError('icons() expects parameter to be an Object');\n      }\n      $.extend(options.icons, icons);\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.tooltips = function(tooltips) {\n      if (arguments.length === 0) {\n        return $.extend({}, options.tooltips);\n      }\n\n      if (!(tooltips instanceof Object)) {\n        throw new TypeError('tooltips() expects parameter to be an Object');\n      }\n      $.extend(options.tooltips, tooltips);\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.useStrict = function(useStrict) {\n      if (arguments.length === 0) {\n        return options.useStrict;\n      }\n\n      if (typeof useStrict !== 'boolean') {\n        throw new TypeError('useStrict() expects a boolean parameter');\n      }\n      options.useStrict = useStrict;\n      return picker;\n    };\n\n    picker.sideBySide = function(sideBySide) {\n      if (arguments.length === 0) {\n        return options.sideBySide;\n      }\n\n      if (typeof sideBySide !== 'boolean') {\n        throw new TypeError('sideBySide() expects a boolean parameter');\n      }\n      options.sideBySide = sideBySide;\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.viewMode = function(viewMode) {\n      if (arguments.length === 0) {\n        return options.viewMode;\n      }\n\n      if (typeof viewMode !== 'string') {\n        throw new TypeError('viewMode() expects a string parameter');\n      }\n\n      if (viewModes.indexOf(viewMode) === -1) {\n        throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\n      }\n\n      options.viewMode = viewMode;\n      currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\n\n      showMode();\n      return picker;\n    };\n\n    picker.toolbarPlacement = function(toolbarPlacement) {\n      if (arguments.length === 0) {\n        return options.toolbarPlacement;\n      }\n\n      if (typeof toolbarPlacement !== 'string') {\n        throw new TypeError('toolbarPlacement() expects a string parameter');\n      }\n      if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\n        throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\n      }\n      options.toolbarPlacement = toolbarPlacement;\n\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.widgetPositioning = function(widgetPositioning) {\n      if (arguments.length === 0) {\n        return $.extend({}, options.widgetPositioning);\n      }\n\n      if (({}).toString.call(widgetPositioning) !== '[object Object]') {\n        throw new TypeError('widgetPositioning() expects an object variable');\n      }\n      if (widgetPositioning.horizontal) {\n        if (typeof widgetPositioning.horizontal !== 'string') {\n          throw new TypeError('widgetPositioning() horizontal variable must be a string');\n        }\n        widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\n        if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\n          throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\n        }\n        options.widgetPositioning.horizontal = widgetPositioning.horizontal;\n      }\n      if (widgetPositioning.vertical) {\n        if (typeof widgetPositioning.vertical !== 'string') {\n          throw new TypeError('widgetPositioning() vertical variable must be a string');\n        }\n        widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\n        if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\n          throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\n        }\n        options.widgetPositioning.vertical = widgetPositioning.vertical;\n      }\n      update();\n      return picker;\n    };\n\n    picker.calendarWeeks = function(calendarWeeks) {\n      if (arguments.length === 0) {\n        return options.calendarWeeks;\n      }\n\n      if (typeof calendarWeeks !== 'boolean') {\n        throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n      }\n\n      options.calendarWeeks = calendarWeeks;\n      update();\n      return picker;\n    };\n\n    picker.showTodayButton = function(showTodayButton) {\n      if (arguments.length === 0) {\n        return options.showTodayButton;\n      }\n\n      if (typeof showTodayButton !== 'boolean') {\n        throw new TypeError('showTodayButton() expects a boolean parameter');\n      }\n\n      options.showTodayButton = showTodayButton;\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.showClear = function(showClear) {\n      if (arguments.length === 0) {\n        return options.showClear;\n      }\n\n      if (typeof showClear !== 'boolean') {\n        throw new TypeError('showClear() expects a boolean parameter');\n      }\n\n      options.showClear = showClear;\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.widgetParent = function(widgetParent) {\n      if (arguments.length === 0) {\n        return options.widgetParent;\n      }\n\n      if (typeof widgetParent === 'string') {\n        widgetParent = $(widgetParent);\n      }\n\n      if (widgetParent !== null && (typeof widgetParent !== 'string' && !(widgetParent instanceof $))) {\n        throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n      }\n\n      options.widgetParent = widgetParent;\n      if (widget) {\n        hide();\n        show();\n      }\n      return picker;\n    };\n\n    picker.keepOpen = function(keepOpen) {\n      if (arguments.length === 0) {\n        return options.keepOpen;\n      }\n\n      if (typeof keepOpen !== 'boolean') {\n        throw new TypeError('keepOpen() expects a boolean parameter');\n      }\n\n      options.keepOpen = keepOpen;\n      return picker;\n    };\n\n    picker.focusOnShow = function(focusOnShow) {\n      if (arguments.length === 0) {\n        return options.focusOnShow;\n      }\n\n      if (typeof focusOnShow !== 'boolean') {\n        throw new TypeError('focusOnShow() expects a boolean parameter');\n      }\n\n      options.focusOnShow = focusOnShow;\n      return picker;\n    };\n\n    picker.inline = function(inline) {\n      if (arguments.length === 0) {\n        return options.inline;\n      }\n\n      if (typeof inline !== 'boolean') {\n        throw new TypeError('inline() expects a boolean parameter');\n      }\n\n      options.inline = inline;\n      return picker;\n    };\n\n    picker.clear = function() {\n      clear();\n      return picker;\n    };\n\n    picker.keyBinds = function(keyBinds) {\n      if (arguments.length === 0) {\n        return options.keyBinds;\n      }\n\n      options.keyBinds = keyBinds;\n      return picker;\n    };\n\n    picker.getMoment = function(d) {\n      return getMoment(d);\n    };\n\n    picker.debug = function(debug) {\n      if (typeof debug !== 'boolean') {\n        throw new TypeError('debug() expects a boolean parameter');\n      }\n\n      options.debug = debug;\n      return picker;\n    };\n\n    picker.allowInputToggle = function(allowInputToggle) {\n      if (arguments.length === 0) {\n        return options.allowInputToggle;\n      }\n\n      if (typeof allowInputToggle !== 'boolean') {\n        throw new TypeError('allowInputToggle() expects a boolean parameter');\n      }\n\n      options.allowInputToggle = allowInputToggle;\n      return picker;\n    };\n\n    picker.showClose = function(showClose) {\n      if (arguments.length === 0) {\n        return options.showClose;\n      }\n\n      if (typeof showClose !== 'boolean') {\n        throw new TypeError('showClose() expects a boolean parameter');\n      }\n\n      options.showClose = showClose;\n      return picker;\n    };\n\n    picker.keepInvalid = function(keepInvalid) {\n      if (arguments.length === 0) {\n        return options.keepInvalid;\n      }\n\n      if (typeof keepInvalid !== 'boolean') {\n        throw new TypeError('keepInvalid() expects a boolean parameter');\n      }\n      options.keepInvalid = keepInvalid;\n      return picker;\n    };\n\n    picker.datepickerInput = function(datepickerInput) {\n      if (arguments.length === 0) {\n        return options.datepickerInput;\n      }\n\n      if (typeof datepickerInput !== 'string') {\n        throw new TypeError('datepickerInput() expects a string parameter');\n      }\n\n      options.datepickerInput = datepickerInput;\n      return picker;\n    };\n\n    picker.parseInputDate = function(parseInputDate) {\n      if (arguments.length === 0) {\n        return options.parseInputDate;\n      }\n\n      if (typeof parseInputDate !== 'function') {\n        throw new TypeError('parseInputDate() sholud be as function');\n      }\n\n      options.parseInputDate = parseInputDate;\n\n      return picker;\n    };\n\n    picker.disabledTimeIntervals = function(disabledTimeIntervals) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.disabledTimeIntervals\">\n      ///<summary>Returns an array with the currently set disabled dates on the component.</summary>\n      ///<returns type=\"array\">options.disabledTimeIntervals</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n      ///options.enabledDates if such exist.</summary>\n      ///<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledTimeIntervals_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return (options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals);\n      }\n\n      if (!disabledTimeIntervals) {\n        options.disabledTimeIntervals = false;\n        update();\n        return picker;\n      }\n      if (!(disabledTimeIntervals instanceof Array)) {\n        throw new TypeError('disabledTimeIntervals() expects an array parameter');\n      }\n      options.disabledTimeIntervals = disabledTimeIntervals;\n      update();\n      return picker;\n    };\n\n    picker.disabledHours = function(hours) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.disabledHours\">\n      ///<summary>Returns an array with the currently set disabled hours on the component.</summary>\n      ///<returns type=\"array\">options.disabledHours</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n      ///options.enabledHours if such exist.</summary>\n      ///<param name=\"hours\" locid=\"$.fn.datetimepicker.disabledHours_p:hours\">Takes an [ int ] of values and disallows the user to select only from those hours.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return (options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours);\n      }\n\n      if (!hours) {\n        options.disabledHours = false;\n        update();\n        return picker;\n      }\n      if (!(hours instanceof Array)) {\n        throw new TypeError('disabledHours() expects an array parameter');\n      }\n      options.disabledHours = indexGivenHours(hours);\n      options.enabledHours = false;\n      if (options.useCurrent && !options.keepInvalid) {\n        var tries = 0;\n        while (!isValid(date, 'h')) {\n          date.add(1, 'h');\n          if (tries === 24) {\n            throw 'Tried 24 times to find a valid date';\n          }\n          tries++;\n        }\n        setValue(date);\n      }\n      update();\n      return picker;\n    };\n\n    picker.enabledHours = function(hours) {\n      ///<signature helpKeyword=\"$.fn.datetimepicker.enabledHours\">\n      ///<summary>Returns an array with the currently set enabled hours on the component.</summary>\n      ///<returns type=\"array\">options.enabledHours</returns>\n      ///</signature>\n      ///<signature>\n      ///<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.</summary>\n      ///<param name=\"hours\" locid=\"$.fn.datetimepicker.enabledHours_p:hours\">Takes an [ int ] of values and allows the user to select only from those hours.</param>\n      ///</signature>\n      if (arguments.length === 0) {\n        return (options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours);\n      }\n\n      if (!hours) {\n        options.enabledHours = false;\n        update();\n        return picker;\n      }\n      if (!(hours instanceof Array)) {\n        throw new TypeError('enabledHours() expects an array parameter');\n      }\n      options.enabledHours = indexGivenHours(hours);\n      options.disabledHours = false;\n      if (options.useCurrent && !options.keepInvalid) {\n        var tries = 0;\n        while (!isValid(date, 'h')) {\n          date.add(1, 'h');\n          if (tries === 24) {\n            throw 'Tried 24 times to find a valid date';\n          }\n          tries++;\n        }\n        setValue(date);\n      }\n      update();\n      return picker;\n    };\n    /**\n     * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\n     * @param {Takes string, viewDate, moment, null parameter.} newDate\n     * @returns {viewDate.clone()}\n     */\n    picker.viewDate = function(newDate) {\n      if (arguments.length === 0) {\n        return viewDate.clone();\n      }\n\n      if (!newDate) {\n        viewDate = date.clone();\n        return picker;\n      }\n\n      if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n        throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n      }\n\n      viewDate = parseInputDate(newDate);\n      viewUpdate();\n      return picker;\n    };\n\n    // initializing element and component attributes\n    if (element.is('input')) {\n      input = element;\n    } else {\n      input = element.find(options.datepickerInput);\n      if (input.length === 0) {\n        input = element.find('input');\n      } else if (!input.is('input')) {\n        throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\n      }\n    }\n\n    if (element.hasClass('input-group')) {\n      // in case there is more then one 'input-group-addon' Issue #48\n      if (element.find('.datepickerbutton').length === 0) {\n        component = element.find('.form-control');\n      } else {\n        component = element.find('.datepickerbutton');\n      }\n    }\n\n    if (!options.inline && !input.is('input')) {\n      throw new Error('Could not initialize DateTimePicker without an input element');\n    }\n\n    // Set defaults for date here now instead of in var declaration\n    date = getMoment();\n    viewDate = date.clone();\n\n    $.extend(true, options, dataToOptions());\n\n    picker.options(options);\n\n    initFormatting();\n\n    attachDatePickerElementEvents();\n\n    if (input.prop('disabled')) {\n      picker.disable();\n    }\n    if (input.is('input') && input.val().trim().length !== 0) {\n      setValue(parseInputDate(input.val().trim()));\n    } else if (options.defaultDate && input.attr('placeholder') === undefined) {\n      setValue(options.defaultDate);\n    }\n    if (options.inline) {\n      show();\n    }\n    return picker;\n  };\n\n  /********************************************************************************\n   *\n   * jQuery plugin constructor and defaults object\n   *\n   ********************************************************************************/\n\n  /**\n   * See (http://jquery.com/).\n   * @name jQuery\n   * @class\n   * See the jQuery Library  (http://jquery.com/) for full details.  This just\n   * documents the function and classes that are added to jQuery by this plug-in.\n   */\n  /**\n   * See (http://jquery.com/)\n   * @name fn\n   * @class\n   * See the jQuery Library  (http://jquery.com/) for full details.  This just\n   * documents the function and classes that are added to jQuery by this plug-in.\n   * @memberOf jQuery\n   */\n  /**\n   * Show comments\n   * @class datetimepicker\n   * @memberOf jQuery.fn\n   */\n  $.fn.datetimepicker = function(options) {\n    options = options || {};\n\n    var args = Array.prototype.slice.call(arguments, 1),\n      isInstance = true,\n      thisMethods = ['destroy', 'hide', 'show', 'toggle'],\n      returnValue;\n\n    if (typeof options === 'object') {\n      return this.each(function() {\n        var $this = $(this),\n          _options;\n        if (!$this.data('DateTimePicker')) {\n          // create a private copy of the defaults object\n          _options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\n          $this.data('DateTimePicker', dateTimePicker($this, _options));\n        }\n      });\n    } else if (typeof options === 'string') {\n      this.each(function() {\n        var $this = $(this),\n          instance = $this.data('DateTimePicker');\n        if (!instance) {\n          throw new Error('bootstrap-datetimepicker(\"' + options + '\") method was called on an element that is not using DateTimePicker');\n        }\n\n        returnValue = instance[options].apply(instance, args);\n        isInstance = returnValue === instance;\n      });\n\n      if (isInstance || $.inArray(options, thisMethods) > -1) {\n        return this;\n      }\n\n      return returnValue;\n    }\n\n    throw new TypeError('Invalid arguments for DateTimePicker: ' + options);\n  };\n\n  $.fn.datetimepicker.defaults = {\n    timeZone: '',\n    format: false,\n    dayViewHeaderFormat: 'MMMM YYYY',\n    extraFormats: false,\n    stepping: 1,\n    minDate: false,\n    maxDate: false,\n    useCurrent: true,\n    collapse: true,\n    locale: moment.locale(),\n    defaultDate: false,\n    disabledDates: false,\n    enabledDates: false,\n    icons: {\n      time: 'glyphicon glyphicon-time',\n      date: 'glyphicon glyphicon-calendar',\n      up: 'glyphicon glyphicon-chevron-up',\n      down: 'glyphicon glyphicon-chevron-down',\n      previous: 'glyphicon glyphicon-chevron-left',\n      next: 'glyphicon glyphicon-chevron-right',\n      today: 'glyphicon glyphicon-screenshot',\n      clear: 'glyphicon glyphicon-trash',\n      close: 'glyphicon glyphicon-remove'\n    },\n    tooltips: {\n      today: 'Go to today',\n      clear: 'Clear selection',\n      close: 'Close the picker',\n      selectMonth: 'Select Month',\n      prevMonth: 'Previous Month',\n      nextMonth: 'Next Month',\n      selectYear: 'Select Year',\n      prevYear: 'Previous Year',\n      nextYear: 'Next Year',\n      selectDecade: 'Select Decade',\n      prevDecade: 'Previous Decade',\n      nextDecade: 'Next Decade',\n      prevCentury: 'Previous Century',\n      nextCentury: 'Next Century',\n      pickHour: 'Pick Hour',\n      incrementHour: 'Increment Hour',\n      decrementHour: 'Decrement Hour',\n      pickMinute: 'Pick Minute',\n      incrementMinute: 'Increment Minute',\n      decrementMinute: 'Decrement Minute',\n      pickSecond: 'Pick Second',\n      incrementSecond: 'Increment Second',\n      decrementSecond: 'Decrement Second',\n      togglePeriod: 'Toggle Period',\n      selectTime: 'Select Time'\n    },\n    useStrict: false,\n    sideBySide: false,\n    daysOfWeekDisabled: false,\n    calendarWeeks: false,\n    viewMode: 'days',\n    toolbarPlacement: 'default',\n    showTodayButton: false,\n    showClear: false,\n    showClose: false,\n    widgetPositioning: {\n      horizontal: 'auto',\n      vertical: 'auto'\n    },\n    widgetParent: null,\n    ignoreReadonly: false,\n    keepOpen: false,\n    focusOnShow: true,\n    inline: false,\n    keepInvalid: false,\n    datepickerInput: '.datepickerinput',\n    keyBinds: {\n      up: function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(7, 'd'));\n        } else {\n          this.date(d.clone().add(this.stepping(), 'm'));\n        }\n      },\n      down: function(widget) {\n        if (!widget) {\n          this.show();\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(7, 'd'));\n        } else {\n          this.date(d.clone().subtract(this.stepping(), 'm'));\n        }\n      },\n      'control up': function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'y'));\n        } else {\n          this.date(d.clone().add(1, 'h'));\n        }\n      },\n      'control down': function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'y'));\n        } else {\n          this.date(d.clone().subtract(1, 'h'));\n        }\n      },\n      left: function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'd'));\n        }\n      },\n      right: function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'd'));\n        }\n      },\n      pageUp: function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().subtract(1, 'M'));\n        }\n      },\n      pageDown: function(widget) {\n        if (!widget) {\n          return;\n        }\n        var d = this.date() || this.getMoment();\n        if (widget.find('.datepicker').is(':visible')) {\n          this.date(d.clone().add(1, 'M'));\n        }\n      },\n      enter: function() {\n        this.hide();\n      },\n      escape: function() {\n        this.hide();\n      },\n      //tab: function (widget) { //this break the flow of the form. disabling for now\n      //    var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\n      //    if(toggle.length > 0) toggle.click();\n      //},\n      'control space': function(widget) {\n        if (!widget) {\n          return;\n        }\n        if (widget.find('.timepicker').is(':visible')) {\n          widget.find('.btn[data-action=\"togglePeriod\"]').click();\n        }\n      },\n      t: function() {\n        this.date(this.getMoment());\n      },\n      'delete': function() {\n        this.clear();\n      }\n    },\n    debug: false,\n    allowInputToggle: false,\n    disabledTimeIntervals: false,\n    disabledHours: false,\n    enabledHours: false,\n    viewDate: false\n  };\n\n  return $.fn.datetimepicker;\n}));"
  },
  {
    "path": "public/static/home/assets/js/plugins/bootstrap-switch.js",
    "content": "/**\n * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.\n *\n * @version v3.3.4\n * @homepage https://bttstrp.github.io/bootstrap-switch\n * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)\n * @license Apache-2.0\n */\n\n(function(global, factory) {\n  if (typeof define === \"function\" && define.amd) {\n    define(['jquery'], factory);\n  } else if (typeof exports !== \"undefined\") {\n    factory(require('jquery'));\n  } else {\n    var mod = {\n      exports: {}\n    };\n    factory(global.jquery);\n    global.bootstrapSwitch = mod.exports;\n  }\n})(this, function(_jquery) {\n  'use strict';\n\n  var _jquery2 = _interopRequireDefault(_jquery);\n\n  function _interopRequireDefault(obj) {\n    return obj && obj.__esModule ? obj : {\n      default: obj\n    };\n  }\n\n  var _extends = Object.assign || function(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _createClass = function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function(Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  var $ = _jquery2.default || window.jQuery || window.$;\n\n  var BootstrapSwitch = function() {\n    function BootstrapSwitch(element) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      _classCallCheck(this, BootstrapSwitch);\n\n      this.$element = $(element);\n      this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, this._getElementOptions(), options);\n      this.prevOptions = {};\n      this.$wrapper = $('<div>', {\n        class: function _class() {\n          var classes = [];\n          classes.push(_this.options.state ? 'on' : 'off');\n          if (_this.options.size) {\n            classes.push(_this.options.size);\n          }\n          if (_this.options.disabled) {\n            classes.push('disabled');\n          }\n          if (_this.options.readonly) {\n            classes.push('readonly');\n          }\n          if (_this.options.indeterminate) {\n            classes.push('indeterminate');\n          }\n          if (_this.options.inverse) {\n            classes.push('inverse');\n          }\n          if (_this.$element.attr('id')) {\n            classes.push('id-' + _this.$element.attr('id'));\n          }\n          return classes.map(_this._getClass.bind(_this)).concat([_this.options.baseClass], _this._getClasses(_this.options.wrapperClass)).join(' ');\n        }\n      });\n      this.$container = $('<div>', {\n        class: this._getClass('container')\n      });\n      this.$on = $('<span>', {\n        html: this.options.onText,\n        class: this._getClass('handle-on') + ' ' + this._getClass(this.options.onColor)\n      });\n      this.$off = $('<span>', {\n        html: this.options.offText,\n        class: this._getClass('handle-off') + ' ' + this._getClass(this.options.offColor)\n      });\n      this.$label = $('<span>', {\n        html: this.options.labelText,\n        class: this._getClass('label')\n      });\n\n      this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element));\n      this.$element.on('switchChange.bootstrapSwitch', function() {\n        for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        if (_this.options.onSwitchChange.apply(element, args) === false) {\n          if (_this.$element.is(':radio')) {\n            $('[name=\"' + _this.$element.attr('name') + '\"]').trigger('previousState.bootstrapSwitch', true);\n          } else {\n            _this.$element.trigger('previousState.bootstrapSwitch', true);\n          }\n        }\n      });\n\n      this.$container = this.$element.wrap(this.$container).parent();\n      this.$wrapper = this.$container.wrap(this.$wrapper).parent();\n      this.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);\n\n      if (this.options.indeterminate) {\n        this.$element.prop('indeterminate', true);\n      }\n\n      this._init();\n      this._elementHandlers();\n      this._handleHandlers();\n      this._labelHandlers();\n      this._formHandler();\n      this._externalLabelHandler();\n      this.$element.trigger('init.bootstrapSwitch', this.options.state);\n    }\n\n    _createClass(BootstrapSwitch, [{\n      key: 'setPrevOptions',\n      value: function setPrevOptions() {\n        this.prevOptions = _extends({}, this.options);\n      }\n    }, {\n      key: 'state',\n      value: function state(value, skip) {\n        if (typeof value === 'undefined') {\n          return this.options.state;\n        }\n        if (this.options.disabled || this.options.readonly || this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) {\n          return this.$element;\n        }\n        if (this.$element.is(':radio')) {\n          $('[name=\"' + this.$element.attr('name') + '\"]').trigger('setPreviousOptions.bootstrapSwitch');\n        } else {\n          this.$element.trigger('setPreviousOptions.bootstrapSwitch');\n        }\n        if (this.options.indeterminate) {\n          this.indeterminate(false);\n        }\n        this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip);\n        return this.$element;\n      }\n    }, {\n      key: 'toggleState',\n      value: function toggleState(skip) {\n        if (this.options.disabled || this.options.readonly) {\n          return this.$element;\n        }\n        if (this.options.indeterminate) {\n          this.indeterminate(false);\n          return this.state(true);\n        } else {\n          return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip);\n        }\n      }\n    }, {\n      key: 'size',\n      value: function size(value) {\n        if (typeof value === 'undefined') {\n          return this.options.size;\n        }\n        if (this.options.size != null) {\n          this.$wrapper.removeClass(this._getClass(this.options.size));\n        }\n        if (value) {\n          this.$wrapper.addClass(this._getClass(value));\n        }\n        this._width();\n        this._containerPosition();\n        this.options.size = value;\n        return this.$element;\n      }\n    }, {\n      key: 'animate',\n      value: function animate(value) {\n        if (typeof value === 'undefined') {\n          return this.options.animate;\n        }\n        if (this.options.animate === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleAnimate();\n      }\n    }, {\n      key: 'toggleAnimate',\n      value: function toggleAnimate() {\n        this.options.animate = !this.options.animate;\n        this.$wrapper.toggleClass(this._getClass('animate'));\n        return this.$element;\n      }\n    }, {\n      key: 'disabled',\n      value: function disabled(value) {\n        if (typeof value === 'undefined') {\n          return this.options.disabled;\n        }\n        if (this.options.disabled === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleDisabled();\n      }\n    }, {\n      key: 'toggleDisabled',\n      value: function toggleDisabled() {\n        this.options.disabled = !this.options.disabled;\n        this.$element.prop('disabled', this.options.disabled);\n        this.$wrapper.toggleClass(this._getClass('disabled'));\n        return this.$element;\n      }\n    }, {\n      key: 'readonly',\n      value: function readonly(value) {\n        if (typeof value === 'undefined') {\n          return this.options.readonly;\n        }\n        if (this.options.readonly === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleReadonly();\n      }\n    }, {\n      key: 'toggleReadonly',\n      value: function toggleReadonly() {\n        this.options.readonly = !this.options.readonly;\n        this.$element.prop('readonly', this.options.readonly);\n        this.$wrapper.toggleClass(this._getClass('readonly'));\n        return this.$element;\n      }\n    }, {\n      key: 'indeterminate',\n      value: function indeterminate(value) {\n        if (typeof value === 'undefined') {\n          return this.options.indeterminate;\n        }\n        if (this.options.indeterminate === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleIndeterminate();\n      }\n    }, {\n      key: 'toggleIndeterminate',\n      value: function toggleIndeterminate() {\n        this.options.indeterminate = !this.options.indeterminate;\n        this.$element.prop('indeterminate', this.options.indeterminate);\n        this.$wrapper.toggleClass(this._getClass('indeterminate'));\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'inverse',\n      value: function inverse(value) {\n        if (typeof value === 'undefined') {\n          return this.options.inverse;\n        }\n        if (this.options.inverse === Boolean(value)) {\n          return this.$element;\n        }\n        return this.toggleInverse();\n      }\n    }, {\n      key: 'toggleInverse',\n      value: function toggleInverse() {\n        this.$wrapper.toggleClass(this._getClass('inverse'));\n        var $on = this.$on.clone(true);\n        var $off = this.$off.clone(true);\n        this.$on.replaceWith($off);\n        this.$off.replaceWith($on);\n        this.$on = $off;\n        this.$off = $on;\n        this.options.inverse = !this.options.inverse;\n        return this.$element;\n      }\n    }, {\n      key: 'onColor',\n      value: function onColor(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onColor;\n        }\n        if (this.options.onColor) {\n          this.$on.removeClass(this._getClass(this.options.onColor));\n        }\n        this.$on.addClass(this._getClass(value));\n        this.options.onColor = value;\n        return this.$element;\n      }\n    }, {\n      key: 'offColor',\n      value: function offColor(value) {\n        if (typeof value === 'undefined') {\n          return this.options.offColor;\n        }\n        if (this.options.offColor) {\n          this.$off.removeClass(this._getClass(this.options.offColor));\n        }\n        this.$off.addClass(this._getClass(value));\n        this.options.offColor = value;\n        return this.$element;\n      }\n    }, {\n      key: 'onText',\n      value: function onText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onText;\n        }\n        this.$on.html(value);\n        this._width();\n        this._containerPosition();\n        this.options.onText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'offText',\n      value: function offText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.offText;\n        }\n        this.$off.html(value);\n        this._width();\n        this._containerPosition();\n        this.options.offText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'labelText',\n      value: function labelText(value) {\n        if (typeof value === 'undefined') {\n          return this.options.labelText;\n        }\n        this.$label.html(value);\n        this._width();\n        this.options.labelText = value;\n        return this.$element;\n      }\n    }, {\n      key: 'handleWidth',\n      value: function handleWidth(value) {\n        if (typeof value === 'undefined') {\n          return this.options.handleWidth;\n        }\n        this.options.handleWidth = value;\n        this._width();\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'labelWidth',\n      value: function labelWidth(value) {\n        if (typeof value === 'undefined') {\n          return this.options.labelWidth;\n        }\n        this.options.labelWidth = value;\n        this._width();\n        this._containerPosition();\n        return this.$element;\n      }\n    }, {\n      key: 'baseClass',\n      value: function baseClass(value) {\n        return this.options.baseClass;\n      }\n    }, {\n      key: 'wrapperClass',\n      value: function wrapperClass(value) {\n        if (typeof value === 'undefined') {\n          return this.options.wrapperClass;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.wrapperClass;\n        }\n        this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' '));\n        this.$wrapper.addClass(this._getClasses(value).join(' '));\n        this.options.wrapperClass = value;\n        return this.$element;\n      }\n    }, {\n      key: 'radioAllOff',\n      value: function radioAllOff(value) {\n        if (typeof value === 'undefined') {\n          return this.options.radioAllOff;\n        }\n        var val = Boolean(value);\n        if (this.options.radioAllOff === val) {\n          return this.$element;\n        }\n        this.options.radioAllOff = val;\n        return this.$element;\n      }\n    }, {\n      key: 'onInit',\n      value: function onInit(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onInit;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.onInit;\n        }\n        this.options.onInit = value;\n        return this.$element;\n      }\n    }, {\n      key: 'onSwitchChange',\n      value: function onSwitchChange(value) {\n        if (typeof value === 'undefined') {\n          return this.options.onSwitchChange;\n        }\n        if (!value) {\n          value = $.fn.bootstrapSwitch.defaults.onSwitchChange;\n        }\n        this.options.onSwitchChange = value;\n        return this.$element;\n      }\n    }, {\n      key: 'destroy',\n      value: function destroy() {\n        var $form = this.$element.closest('form');\n        if ($form.length) {\n          $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch');\n        }\n        this.$container.children().not(this.$element).remove();\n        this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch');\n        return this.$element;\n      }\n    }, {\n      key: '_getElementOptions',\n      value: function _getElementOptions() {\n        return {\n          state: this.$element.is(':checked'),\n          size: this.$element.data('size'),\n          animate: this.$element.data('animate'),\n          disabled: this.$element.is(':disabled'),\n          readonly: this.$element.is('[readonly]'),\n          indeterminate: this.$element.data('indeterminate'),\n          inverse: this.$element.data('inverse'),\n          radioAllOff: this.$element.data('radio-all-off'),\n          onColor: this.$element.data('on-color'),\n          offColor: this.$element.data('off-color'),\n          onText: this.$element.data('on-text'),\n          offText: this.$element.data('off-text'),\n          labelText: this.$element.data('label-text'),\n          handleWidth: this.$element.data('handle-width'),\n          labelWidth: this.$element.data('label-width'),\n          baseClass: this.$element.data('base-class'),\n          wrapperClass: this.$element.data('wrapper-class')\n        };\n      }\n    }, {\n      key: '_width',\n      value: function _width() {\n        var _this2 = this;\n\n        var $handles = this.$on.add(this.$off).add(this.$label).css('width', '');\n        var handleWidth = this.options.handleWidth === 'auto' ? Math.round(Math.max(this.$on.width(), this.$off.width())) : this.options.handleWidth;\n        $handles.width(handleWidth);\n        this.$label.width(function(index, width) {\n          if (_this2.options.labelWidth !== 'auto') {\n            return _this2.options.labelWidth;\n          }\n          if (width < handleWidth) {\n            return handleWidth;\n          }\n          return width;\n        });\n        this._handleWidth = this.$on.outerWidth();\n        this._labelWidth = this.$label.outerWidth();\n        this.$container.width(this._handleWidth * 2 + this._labelWidth);\n        return this.$wrapper.width(this._handleWidth + this._labelWidth);\n      }\n    }, {\n      key: '_containerPosition',\n      value: function _containerPosition() {\n        var _this3 = this;\n\n        var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.state;\n        var callback = arguments[1];\n\n        this.$container.css('margin-left', function() {\n          var values = [0, '-' + _this3._handleWidth + 'px'];\n          if (_this3.options.indeterminate) {\n            return '-' + _this3._handleWidth / 2 + 'px';\n          }\n          if (state) {\n            if (_this3.options.inverse) {\n              return values[1];\n            } else {\n              return values[0];\n            }\n          } else {\n            if (_this3.options.inverse) {\n              return values[0];\n            } else {\n              return values[1];\n            }\n          }\n        });\n      }\n    }, {\n      key: '_init',\n      value: function _init() {\n        var _this4 = this;\n\n        var init = function init() {\n          _this4.setPrevOptions();\n          _this4._width();\n          _this4._containerPosition();\n          setTimeout(function() {\n            if (_this4.options.animate) {\n              return _this4.$wrapper.addClass(_this4._getClass('animate'));\n            }\n          }, 50);\n        };\n        if (this.$wrapper.is(':visible')) {\n          init();\n          return;\n        }\n        var initInterval = window.setInterval(function() {\n          if (_this4.$wrapper.is(':visible')) {\n            init();\n            return window.clearInterval(initInterval);\n          }\n        }, 50);\n      }\n    }, {\n      key: '_elementHandlers',\n      value: function _elementHandlers() {\n        var _this5 = this;\n\n        return this.$element.on({\n          'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this),\n\n          'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() {\n            _this5.options = _this5.prevOptions;\n            if (_this5.options.indeterminate) {\n              _this5.$wrapper.addClass(_this5._getClass('indeterminate'));\n            }\n            _this5.$element.prop('checked', _this5.options.state).trigger('change.bootstrapSwitch', true);\n          },\n\n          'change.bootstrapSwitch': function changeBootstrapSwitch(event, skip) {\n            event.preventDefault();\n            event.stopImmediatePropagation();\n            var state = _this5.$element.is(':checked');\n            _this5._containerPosition(state);\n            if (state === _this5.options.state) {\n              return;\n            }\n            _this5.options.state = state;\n            _this5.$wrapper.toggleClass(_this5._getClass('off')).toggleClass(_this5._getClass('on'));\n            if (!skip) {\n              if (_this5.$element.is(':radio')) {\n                $('[name=\"' + _this5.$element.attr('name') + '\"]').not(_this5.$element).prop('checked', false).trigger('change.bootstrapSwitch', true);\n              }\n              _this5.$element.trigger('switchChange.bootstrapSwitch', [state]);\n            }\n          },\n\n          'focus.bootstrapSwitch': function focusBootstrapSwitch(event) {\n            event.preventDefault();\n            _this5.$wrapper.addClass(_this5._getClass('focused'));\n          },\n\n          'blur.bootstrapSwitch': function blurBootstrapSwitch(event) {\n            event.preventDefault();\n            _this5.$wrapper.removeClass(_this5._getClass('focused'));\n          },\n\n          'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) {\n            if (!event.which || _this5.options.disabled || _this5.options.readonly) {\n              return;\n            }\n            if (event.which === 37 || event.which === 39) {\n              event.preventDefault();\n              event.stopImmediatePropagation();\n              _this5.state(event.which === 39);\n            }\n          }\n        });\n      }\n    }, {\n      key: '_handleHandlers',\n      value: function _handleHandlers() {\n        var _this6 = this;\n\n        this.$on.on('click.bootstrapSwitch', function(event) {\n          event.preventDefault();\n          event.stopPropagation();\n          _this6.state(false);\n          return _this6.$element.trigger('focus.bootstrapSwitch');\n        });\n        return this.$off.on('click.bootstrapSwitch', function(event) {\n          event.preventDefault();\n          event.stopPropagation();\n          _this6.state(true);\n          return _this6.$element.trigger('focus.bootstrapSwitch');\n        });\n      }\n    }, {\n      key: '_labelHandlers',\n      value: function _labelHandlers() {\n        var _this7 = this;\n\n        var handlers = {\n          click: function click(event) {\n            event.stopPropagation();\n          },\n\n\n          'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) {\n            if (_this7._dragStart || _this7.options.disabled || _this7.options.readonly) {\n              return;\n            }\n            event.preventDefault();\n            event.stopPropagation();\n            _this7._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(_this7.$container.css('margin-left'), 10);\n            if (_this7.options.animate) {\n              _this7.$wrapper.removeClass(_this7._getClass('animate'));\n            }\n            _this7.$element.trigger('focus.bootstrapSwitch');\n          },\n\n          'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) {\n            if (_this7._dragStart == null) {\n              return;\n            }\n            var difference = (event.pageX || event.originalEvent.touches[0].pageX) - _this7._dragStart;\n            event.preventDefault();\n            if (difference < -_this7._handleWidth || difference > 0) {\n              return;\n            }\n            _this7._dragEnd = difference;\n            _this7.$container.css('margin-left', _this7._dragEnd + 'px');\n          },\n\n          'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) {\n            if (!_this7._dragStart) {\n              return;\n            }\n            event.preventDefault();\n            if (_this7.options.animate) {\n              _this7.$wrapper.addClass(_this7._getClass('animate'));\n            }\n            if (_this7._dragEnd) {\n              var state = _this7._dragEnd > -(_this7._handleWidth / 2);\n              _this7._dragEnd = false;\n              _this7.state(_this7.options.inverse ? !state : state);\n            } else {\n              _this7.state(!_this7.options.state);\n            }\n            _this7._dragStart = false;\n          },\n\n          'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() {\n            _this7.$label.trigger('mouseup.bootstrapSwitch');\n          }\n        };\n        this.$label.on(handlers);\n      }\n    }, {\n      key: '_externalLabelHandler',\n      value: function _externalLabelHandler() {\n        var _this8 = this;\n\n        var $externalLabel = this.$element.closest('label');\n        $externalLabel.on('click', function(event) {\n          event.preventDefault();\n          event.stopImmediatePropagation();\n          if (event.target === $externalLabel[0]) {\n            _this8.toggleState();\n          }\n        });\n      }\n    }, {\n      key: '_formHandler',\n      value: function _formHandler() {\n        var $form = this.$element.closest('form');\n        if ($form.data('bootstrap-switch')) {\n          return;\n        }\n        $form.on('reset.bootstrapSwitch', function() {\n          window.setTimeout(function() {\n            $form.find('input').filter(function() {\n              return $(this).data('bootstrap-switch');\n            }).each(function() {\n              return $(this).bootstrapSwitch('state', this.checked);\n            });\n          }, 1);\n        }).data('bootstrap-switch', true);\n      }\n    }, {\n      key: '_getClass',\n      value: function _getClass(name) {\n        return this.options.baseClass + '-' + name;\n      }\n    }, {\n      key: '_getClasses',\n      value: function _getClasses(classes) {\n        if (!$.isArray(classes)) {\n          return [this._getClass(classes)];\n        }\n        return classes.map(this._getClass.bind(this));\n      }\n    }]);\n\n    return BootstrapSwitch;\n  }();\n\n  $.fn.bootstrapSwitch = function(option) {\n    for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    function reducer(ret, next) {\n      var $this = $(next);\n      var existingData = $this.data('bootstrap-switch');\n      var data = existingData || new BootstrapSwitch(next, option);\n      if (!existingData) {\n        $this.data('bootstrap-switch', data);\n      }\n      if (typeof option === 'string') {\n        return data[option].apply(data, args);\n      }\n      return ret;\n    }\n    return Array.prototype.reduce.call(this, reducer, this);\n  };\n  $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;\n  $.fn.bootstrapSwitch.defaults = {\n    state: true,\n    size: null,\n    animate: true,\n    disabled: false,\n    readonly: false,\n    indeterminate: false,\n    inverse: false,\n    radioAllOff: false,\n    onColor: 'primary',\n    offColor: 'default',\n    onText: 'ON',\n    offText: 'OFF',\n    labelText: '&nbsp',\n    handleWidth: 'auto',\n    labelWidth: 'auto',\n    baseClass: 'bootstrap-switch',\n    wrapperClass: 'wrapper',\n    onInit: function onInit() {},\n    onSwitchChange: function onSwitchChange() {}\n  };\n});"
  },
  {
    "path": "public/static/home/assets/layer/layer.js",
    "content": "/*! layer-v3.1.1 Web弹层组件 MIT License  http://layer.layui.com/  By 贤心 */\n ;!function(e,t){\"use strict\";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if(\"interactive\"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf(\"/\")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:[\"&#x786E;&#x5B9A;\",\"&#x53D6;&#x6D88;\"],type:[\"dialog\",\"page\",\"iframe\",\"loading\",\"tips\"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?\"getPropertyValue\":\"getAttribute\"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName(\"head\")[0],s=document.createElement(\"link\");\"string\"==typeof i&&(n=i);var l=(n||t).replace(/\\.|\\//g,\"\"),f=\"layuicss-\"+l,c=0;s.rel=\"stylesheet\",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),\"function\"==typeof i&&!function u(){return++c>80?e.console&&console.error(\"layer.css: Invalid\"):void(1989===parseInt(o.getStyle(document.getElementById(f),\"width\"))?i():setTimeout(u,100))}()}}},r={v:\"3.1.1\",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||\"ActiveXObject\"in e)&&((t.match(/msie\\s(\\d+)/)||[])[1]||\"11\")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,\"string\"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss(\"modules/layer/\"+e.extend):o.link(\"theme/\"+e.extend),this):this},ready:function(e){var t=\"layer\",i=\"\",n=(a?\"modules/layer/\":\"theme/\")+\"default/layer.css?v=\"+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a=\"function\"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s=\"function\"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s=\"function\"==typeof n,f=o.config.skin,c=(f?f+\" \"+f+\"-msg\":\"\")||\"layui-layer-msg\",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+\" layui-layer-hui\",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+\" \"+(n.skin||\"layui-layer-hui\")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=[\"layui-layer\",\".layui-layer-title\",\".layui-layer-main\",\".layui-layer-dialog\",\"layui-layer-iframe\",\"layui-layer-content\",\"layui-layer-btn\",\"layui-layer-close\"];l.anim=[\"layer-anim-00\",\"layer-anim-01\",\"layer-anim-02\",\"layer-anim-03\",\"layer-anim-04\",\"layer-anim-05\",\"layer-anim-06\"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:\"&#x4FE1;&#x606F;\",offset:\"auto\",area:\"auto\",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f=\"object\"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class=\"layui-layer-title\" style=\"'+(f?r.title[1]:\"\")+'\">'+(f?r.title[0]:r.title)+\"</div>\":\"\";return r.zIndex=s,t([r.shade?'<div class=\"layui-layer-shade\" id=\"layui-layer-shade'+a+'\" times=\"'+a+'\" style=\"'+(\"z-index:\"+(s-1)+\"; \")+'\"></div>':\"\",'<div class=\"'+l[0]+(\" layui-layer-\"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?\"\":\" layui-layer-border\")+\" \"+(r.skin||\"\")+'\" id=\"'+l[0]+a+'\" type=\"'+o.type[r.type]+'\" times=\"'+a+'\" showtime=\"'+r.time+'\" conType=\"'+(e?\"object\":\"string\")+'\" style=\"z-index: '+s+\"; width:\"+r.area[0]+\";height:\"+r.area[1]+(r.fixed?\"\":\";position:absolute;\")+'\">'+(e&&2!=r.type?\"\":u)+'<div id=\"'+(r.id||\"\")+'\" class=\"layui-layer-content'+(0==r.type&&r.icon!==-1?\" layui-layer-padding\":\"\")+(3==r.type?\" layui-layer-loading\"+r.icon:\"\")+'\">'+(0==r.type&&r.icon!==-1?'<i class=\"layui-layer-ico layui-layer-ico'+r.icon+'\"></i>':\"\")+(1==r.type&&e?\"\":r.content||\"\")+'</div><span class=\"layui-layer-setwin\">'+function(){var e=c?'<a class=\"layui-layer-min\" href=\"javascript:;\"><cite></cite></a><a class=\"layui-layer-ico layui-layer-max\" href=\"javascript:;\"></a>':\"\";return r.closeBtn&&(e+='<a class=\"layui-layer-ico '+l[7]+\" \"+l[7]+(r.title?r.closeBtn:4==r.type?\"1\":\"2\")+'\" href=\"javascript:;\"></a>'),e}()+\"</span>\"+(r.btn?function(){var e=\"\";\"string\"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class=\"'+l[6]+t+'\">'+r.btn[t]+\"</a>\";return'<div class=\"'+l[6]+\" layui-layer-btn-\"+(r.btnAlign||\"\")+'\">'+e+\"</div>\"}():\"\")+(r.resize?'<span class=\"layui-layer-resize\"></span>':\"\")+\"</div>\"],u,i('<div class=\"layui-layer-move\"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f=\"object\"==typeof s,c=i(\"body\");if(!t.id||!i(\"#\"+t.id)[0]){switch(\"string\"==typeof t.area&&(t.area=\"auto\"===t.area?[\"\",\"\"]:[t.area,\"\"]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn=\"btn\"in t?t.btn:o.btn[0],r.closeAll(\"dialog\");break;case 2:var s=t.content=f?t.content:[t.content||\"http://layer.layui.com\",\"auto\"];t.content='<iframe scrolling=\"'+(t.content[1]||\"auto\")+'\" allowtransparency=\"true\" id=\"'+l[4]+a+'\" name=\"'+l[4]+a+'\" onload=\"this.className=\\'\\';\" class=\"layui-layer-load\" frameborder=\"0\" src=\"'+t.content[0]+'\"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll(\"loading\");break;case 4:f||(t.content=[t.content,\"body\"]),t.follow=t.content[1],t.content=t.content[0]+'<i class=\"layui-layer-TipsG\"></i>',delete t.title,t.tips=\"object\"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll(\"tips\")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i(\"body\").append(n[1])}():function(){s.parents(\".\"+l[0])[0]||(s.data(\"display\",s.css(\"display\")).show().addClass(\"layui-layer-wrap\").wrap(n[1]),i(\"#\"+l[0]+a).find(\".\"+l[5]).before(r))}()}():c.append(n[1]),i(\".layui-layer-move\")[0]||c.append(o.moveElem=u),e.layero=i(\"#\"+l[0]+a),t.scrollbar||l.html.css(\"overflow\",\"hidden\").attr(\"layer-full\",a)}).auto(a),i(\"#layui-layer-shade\"+e.index).css({\"background-color\":t.shade[1]||\"#000\",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find(\"iframe\").attr(\"src\",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on(\"resize\",function(){e.offset(),(/^\\d+%$/.test(t.area[0])||/^\\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u=\"layer-anim \"+l.anim[t.anim];e.layero.addClass(u).one(\"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend\",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data(\"isOutAnim\",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i(\"#\"+l[0]+e);\"\"===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find(\".\"+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css(\"padding-top\"))))};switch(a.type){case 2:u(\"iframe\");break;default:\"\"===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u(\".\"+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u(\".\"+l[5])):u(\".\"+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o=\"object\"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):\"auto\"!==t.offset&&(\"t\"===t.offset?e.offsetTop=0:\"r\"===t.offset?e.offsetLeft=n.width()-a[0]:\"b\"===t.offset?e.offsetTop=n.height()-a[1]:\"l\"===t.offset?e.offsetLeft=0:\"lt\"===t.offset?(e.offsetTop=0,e.offsetLeft=0):\"lb\"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):\"rt\"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):\"rb\"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr(\"minLeft\")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css(\"left\")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i(\"body\"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(\".layui-layer-TipsG\"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:\"auto\"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass(\"layui-layer-TipsB\").addClass(\"layui-layer-TipsT\").css(\"border-right-color\",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass(\"layui-layer-TipsL\").addClass(\"layui-layer-TipsR\").css(\"border-bottom-color\",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass(\"layui-layer-TipsT\").addClass(\"layui-layer-TipsB\").css(\"border-right-color\",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass(\"layui-layer-TipsR\").addClass(\"layui-layer-TipsL\").css(\"border-bottom-color\",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find(\".\"+l[5]).css({\"background-color\":t.tips[1],\"padding-right\":t.closeBtn?\"30px\":\"\"}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(\".layui-layer-resize\"),c={};return t.move&&l.css(\"cursor\",\"move\"),l.on(\"mousedown\",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css(\"left\")),e.clientY-parseFloat(s.css(\"top\"))],o.moveElem.css(\"cursor\",\"move\").show())}),f.on(\"mousedown\",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css(\"cursor\",\"se-resize\").show()}),a.on(\"mousemove\",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l=\"fixed\"===s.css(\"position\");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on(\"mouseup\",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find(\"iframe\").on(\"load\",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find(\".\"+l[6]).children(\"a\").on(\"click\",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a[\"btn\"+(e+1)]&&a[\"btn\"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find(\".\"+l[7]).on(\"click\",e),a.shadeClose&&i(\"#layui-layer-shade\"+t.index).on(\"click\",function(){r.close(t.index)}),n.find(\".layui-layer-min\").on(\"click\",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(\".layui-layer-max\").on(\"click\",function(){i(this).hasClass(\"layui-layer-maxmin\")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i(\"select\"),function(e,t){var n=i(this);n.parents(\".\"+l[0])[0]||1==n.attr(\"layer\")&&i(\".\"+l[0]).length<1&&n.removeAttr(\"layer\").show(),n=null})},s.pt.IE6=function(e){i(\"select\").each(function(e,t){var n=i(this);n.parents(\".\"+l[0])[0]||\"none\"===n.css(\"display\")||n.attr({layer:\"1\"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css(\"z-index\",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on(\"mousedown\",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css(\"margin-left\"))];e.find(\".layui-layer-max\").addClass(\"layui-layer-maxmin\"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr(\"layer-full\")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty(\"overflow\"):l.html[0].style.removeAttribute(\"overflow\"),l.html.removeAttr(\"layer-full\"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i(\".\"+l[4]).attr(\"times\"),i(\"#\"+l[0]+t).find(\"iframe\").contents().find(e)},r.getFrameIndex=function(e){return i(\"#\"+e).parents(\".\"+l[4]).attr(\"times\")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame(\"html\",e).outerHeight(),n=i(\"#\"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find(\".\"+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find(\"iframe\").css({height:t})}},r.iframeSrc=function(e,t){i(\"#\"+l[0]+e).find(\"iframe\").attr(\"src\",t)},r.style=function(e,t,n){var a=i(\"#\"+l[0]+e),r=a.find(\".layui-layer-content\"),s=a.attr(\"type\"),f=a.find(l[1]).outerHeight()||0,c=a.find(\".\"+l[6]).outerHeight()||0;a.attr(\"minLeft\");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find(\".\"+l[6]).outerHeight(),s===o.type[2]?a.find(\"iframe\").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css(\"padding-top\"))-parseFloat(r.css(\"padding-bottom\"))}))},r.min=function(e,t){var a=i(\"#\"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr(\"minLeft\")||181*o.minIndex+\"px\",c=a.css(\"position\");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr(\"position\",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:\"fixed\",overflow:\"hidden\"},!0),a.find(\".layui-layer-min\").hide(),\"page\"===a.attr(\"type\")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr(\"minLeft\")||o.minIndex++,a.attr(\"minLeft\",f)},r.restore=function(e){var t=i(\"#\"+l[0]+e),n=t.attr(\"area\").split(\",\");t.attr(\"type\");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr(\"position\"),overflow:\"visible\"},!0),t.find(\".layui-layer-max\").removeClass(\"layui-layer-maxmin\"),t.find(\".layui-layer-min\").show(),\"page\"===t.attr(\"type\")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i(\"#\"+l[0]+e);o.record(a),l.html.attr(\"layer-full\")||l.html.css(\"overflow\",\"hidden\").attr(\"layer-full\",e),clearTimeout(t),t=setTimeout(function(){var t=\"fixed\"===a.css(\"position\");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(\".layui-layer-min\").hide()},100)},r.title=function(e,t){var n=i(\"#\"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i(\"#\"+l[0]+e),n=t.attr(\"type\"),a=\"layer-anim-close\";if(t[0]){var s=\"layui-layer-wrap\",f=function(){if(n===o.type[1]&&\"object\"===t.attr(\"conType\")){t.children(\":not(.\"+l[5]+\")\").remove();for(var a=t.find(\".\"+s),r=0;r<2;r++)a.unwrap();a.css(\"display\",a.data(\"display\")).removeClass(s)}else{if(n===o.type[2])try{var f=i(\"#\"+l[4]+e)[0];f.contentWindow.document.write(\"\"),f.contentWindow.close(),t.find(\".\"+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML=\"\",t.remove()}\"function\"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data(\"isOutAnim\")&&t.addClass(\"layer-anim \"+a),i(\"#layui-layer-moves, #layui-layer-shade\"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr(\"minLeft\")&&(o.minIndex--,o.minLeft.push(t.attr(\"minLeft\"))),r.ie&&r.ie<10||!t.data(\"isOutAnim\")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i(\".\"+l[0]),function(){var t=i(this),n=e?t.attr(\"type\")===e:1;n&&r.close(t.attr(\"times\")),n=null})};var f=r.cache||{},c=function(e){return f.skin?\" \"+f.skin+\" \"+f.skin+\"-\"+e:\"\"};r.prompt=function(e,t){var a=\"\";if(e=e||{},\"function\"==typeof e&&(t=e),e.area){var o=e.area;a='style=\"width: '+o[0]+\"; height: \"+o[1]+';\"',delete e.area}var s,l=2==e.formType?'<textarea class=\"layui-layer-input\"'+a+\">\"+(e.value||\"\")+\"</textarea>\":function(){return'<input type=\"'+(1==e.formType?\"password\":\"text\")+'\" class=\"layui-layer-input\" value=\"'+(e.value||\"\")+'\">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:[\"&#x786E;&#x5B9A;\",\"&#x53D6;&#x6D88;\"],content:l,skin:\"layui-layer-prompt\"+c(\"prompt\"),maxWidth:n.width(),success:function(e){s=e.find(\".layui-layer-input\"),s.focus(),\"function\"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();\"\"===n?s.focus():n.length>(e.maxlength||500)?r.tips(\"&#x6700;&#x591A;&#x8F93;&#x5165;\"+(e.maxlength||500)+\"&#x4E2A;&#x5B57;&#x6570;\",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n=\"layui-this\",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:\"layui-layer-tab\"+c(\"tab\"),resize:!1,title:function(){var e=t.length,i=1,a=\"\";if(e>0)for(a='<span class=\"'+n+'\">'+t[0].title+\"</span>\";i<e;i++)a+=\"<span>\"+t[i].title+\"</span>\";return a}(),content:'<ul class=\"layui-layer-tabmain\">'+function(){var e=t.length,i=1,a=\"\";if(e>0)for(a='<li class=\"layui-layer-tabli '+n+'\">'+(t[0].content||\"no content\")+\"</li>\";i<e;i++)a+='<li class=\"layui-layer-tabli\">'+(t[i].content||\"no  content\")+\"</li>\";return a}()+\"</ul>\",success:function(t){var o=t.find(\".layui-layer-title\").children(),r=t.find(\".layui-layer-tabmain\").children();o.on(\"mousedown\",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),\"function\"==typeof e.change&&e.change(o)}),\"function\"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||\"img\";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg(\"&#x6CA1;&#x6709;&#x56FE;&#x7247;\")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr(\"layer-index\",e),u.push({alt:t.attr(\"alt\"),pid:t.attr(\"layer-pid\"),src:t.attr(\"layer-src\")||t.attr(\"src\"),thumb:t.attr(\"src\")})})};if(h(),0===u.length)return;if(n||p.on(\"click\",t.img,function(){var e=i(this),n=e.attr(\"layer-index\");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(\".layui-layer-imgprev\").on(\"click\",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(\".layui-layer-imgnext\").on(\"click\",function(e){e.preventDefault(),s.imgnext()}),i(document).on(\"keyup\",s.keyup)},s.loadi=r.load(1,{shade:!(\"shade\"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:\"layui-layer-photos\",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+\"px\",a[1]+\"px\"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:\".layui-layer-phimg img\",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:\"layui-layer-photos\"+c(\"photos\"),content:'<div class=\"layui-layer-phimg\"><img src=\"'+u[d].src+'\" alt=\"'+(u[d].alt||\"\")+'\" layer-pid=\"'+u[d].pid+'\"><div class=\"layui-layer-imgsee\">'+(u.length>1?'<span class=\"layui-layer-imguide\"><a href=\"javascript:;\" class=\"layui-layer-iconext layui-layer-imgprev\"></a><a href=\"javascript:;\" class=\"layui-layer-iconext layui-layer-imgnext\"></a></span>':\"\")+'<div class=\"layui-layer-imgbar\" style=\"display:'+(a?\"block\":\"\")+'\"><span class=\"layui-layer-imgtit\"><a href=\"javascript:;\">'+(u[d].alt||\"\")+\"</a><em>\"+s.imgIndex+\"/\"+u.length+\"</em></span></div></div></div>\",success:function(e,i){s.bigimg=e.find(\".layui-layer-phimg\"),s.imgsee=e.find(\".layui-layer-imguide,.layui-layer-imgbar\"),s.event(e),t.tab&&t.tab(u[d],e),\"function\"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off(\"keyup\",s.keyup)}},t))},function(){r.close(s.loadi),r.msg(\"&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;\",{time:3e4,btn:[\"&#x4E0B;&#x4E00;&#x5F20;\",\"&#x4E0D;&#x770B;&#x4E86;\"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i(\"html\"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define(\"jquery\",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t(\"layer\",r)})):\"function\"==typeof define&&define.amd?define([\"jquery\"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);"
  },
  {
    "path": "public/static/home/assets/layer/mobile/layer.js",
    "content": "/*! layer mobile-v2.0.0 Web弹层组件 MIT License  http://layer.layui.com/mobile  By 贤心 */\n ;!function(e){\"use strict\";var t=document,n=\"querySelectorAll\",i=\"getElementsByClassName\",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:\"scale\"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener(\"click\",function(e){t.call(this,e)},!1)};var r=0,o=[\"layui-m-layer\"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement(\"div\");e.id=s.id=o[0]+r,s.setAttribute(\"class\",o[0]+\" \"+o[0]+(n.type||0)),s.setAttribute(\"index\",r);var l=function(){var e=\"object\"==typeof n.title;return n.title?'<h3 style=\"'+(e?n.title[1]:\"\")+'\">'+(e?n.title[0]:n.title)+\"</h3>\":\"\"}(),c=function(){\"string\"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type=\"1\">'+n.btn[0]+\"</span>\",2===t&&(e='<span no type=\"0\">'+n.btn[1]+\"</span>\"+e),'<div class=\"layui-m-layerbtn\">'+e+\"</div>\"):\"\"}();if(n.fixed||(n.top=n.hasOwnProperty(\"top\")?n.top:100,n.style=n.style||\"\",n.style+=\" top:\"+(t.body.scrollTop+n.top)+\"px\"),2===n.type&&(n.content='<i></i><i class=\"layui-m-layerload\"></i><i></i><p>'+(n.content||\"\")+\"</p>\"),n.skin&&(n.anim=\"up\"),\"msg\"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?\"<div \"+(\"string\"==typeof n.shade?'style=\"'+n.shade+'\"':\"\")+' class=\"layui-m-layershade\"></div>':\"\")+'<div class=\"layui-m-layermain\" '+(n.fixed?\"\":'style=\"position:static;\"')+'><div class=\"layui-m-layersection\"><div class=\"layui-m-layerchild '+(n.skin?\"layui-m-layer-\"+n.skin+\" \":\"\")+(n.className?n.className:\"\")+\" \"+(n.anim?\"layui-m-anim-\"+n.anim:\"\")+'\" '+(n.style?'style=\"'+n.style+'\"':\"\")+\">\"+l+'<div class=\"layui-m-layercont\">'+n.content+\"</div>\"+c+\"</div></div></div>\",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute(\"index\"))}document.body.appendChild(s);var u=e.elem=a(\"#\"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute(\"type\");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i](\"layui-m-layerbtn\")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i](\"layui-m-layershade\")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:\"2.0\",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a(\"#\"+o[0]+e)[0];n&&(n.innerHTML=\"\",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],\"function\"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute(\"index\"))}},\"function\"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf(\"/\")+1);n.getAttribute(\"merge\")||document.head.appendChild(function(){var e=t.createElement(\"link\");return e.href=a+\"need/layer.css?2.0\",e.type=\"text/css\",e.rel=\"styleSheet\",e.id=\"layermcss\",e}())}()}(window);"
  },
  {
    "path": "public/static/home/assets/layer/mobile/need/layer.css",
    "content": ".layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}"
  },
  {
    "path": "public/static/home/assets/layer/theme/default/layer.css",
    "content": ".layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+\"px\")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}"
  },
  {
    "path": "public/static/home/assets/pjax/jquery.pjax.js",
    "content": "/*!\n * Copyright 2012, Chris Wanstrath\n * Released under the MIT License\n * https://github.com/defunkt/jquery-pjax\n */\n\n(function($){\n\n// When called on a container with a selector, fetches the href with\n// ajax into the container or with the data-pjax attribute on the link\n// itself.\n//\n// Tries to make sure the back button and ctrl+click work the way\n// you'd expect.\n//\n// Exported as $.fn.pjax\n//\n// Accepts a jQuery ajax options object that may include these\n// pjax specific options:\n//\n//\n// container - String selector for the element where to place the response body.\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// For convenience the second parameter can be either the container or\n// the options object.\n//\n// Returns the jQuery object\nfunction fnPjax(selector, container, options) {\n  options = optionsFor(container, options)\n  return this.on('click.pjax', selector, function(event) {\n    var opts = options\n    if (!opts.container) {\n      opts = $.extend({}, options)\n      opts.container = $(this).attr('data-pjax')\n    }\n    handleClick(event, opts)\n  })\n}\n\n// Public: pjax on click handler\n//\n// Exported as $.pjax.click.\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//   $(document).on('click', 'a', $.pjax.click)\n//   // is the same as\n//   $(document).pjax('a')\n//\n// Returns nothing.\nfunction handleClick(event, container, options) {\n  options = optionsFor(container, options)\n\n  var link = event.currentTarget\n  var $link = $(link)\n\n  if (link.tagName.toUpperCase() !== 'A')\n    throw \"$.fn.pjax or $.pjax.click requires an anchor element\"\n\n  // Middle click, cmd click, and ctrl click should open\n  // links in a new tab as normal.\n  if ( event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey )\n    return\n\n  // Ignore cross origin links\n  if ( location.protocol !== link.protocol || location.hostname !== link.hostname )\n    return\n\n  // Ignore case when a hash is being tacked on the current URL\n  if ( link.href.indexOf('#') > -1 && stripHash(link) == stripHash(location) )\n    return\n\n  // Ignore event with default prevented\n  if (event.isDefaultPrevented())\n    return\n\n  var defaults = {\n    url: link.href,\n    container: $link.attr('data-pjax'),\n    target: link\n  }\n\n  var opts = $.extend({}, defaults, options)\n  var clickEvent = $.Event('pjax:click')\n  $link.trigger(clickEvent, [opts])\n\n  if (!clickEvent.isDefaultPrevented()) {\n    pjax(opts)\n    event.preventDefault()\n    $link.trigger('pjax:clicked', [opts])\n  }\n}\n\n// Public: pjax on form submit handler\n//\n// Exported as $.pjax.submit\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//  $(document).on('submit', 'form', function(event) {\n//    $.pjax.submit(event, '[data-pjax-container]')\n//  })\n//\n// Returns nothing.\nfunction handleSubmit(event, container, options) {\n  options = optionsFor(container, options)\n\n  var form = event.currentTarget\n  var $form = $(form)\n\n  if (form.tagName.toUpperCase() !== 'FORM')\n    throw \"$.pjax.submit requires a form element\"\n\n  var defaults = {\n    type: ($form.attr('method') || 'GET').toUpperCase(),\n    url: $form.attr('action'),\n    container: $form.attr('data-pjax'),\n    target: form\n  }\n\n  if (defaults.type !== 'GET' && window.FormData !== undefined) {\n    defaults.data = new FormData(form)\n    defaults.processData = false\n    defaults.contentType = false\n  } else {\n    // Can't handle file uploads, exit\n    if ($form.find(':file').length) {\n      return\n    }\n\n    // Fallback to manually serializing the fields\n    defaults.data = $form.serializeArray()\n  }\n\n  pjax($.extend({}, defaults, options))\n\n  event.preventDefault()\n}\n\n// Loads a URL with ajax, puts the response body inside a container,\n// then pushState()'s the loaded URL.\n//\n// Works just like $.ajax in that it accepts a jQuery ajax\n// settings object (with keys like url, type, data, etc).\n//\n// Accepts these extra keys:\n//\n// container - String selector for where to stick the response body.\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// Use it just like $.ajax:\n//\n//   var xhr = $.pjax({ url: this.href, container: '#main' })\n//   console.log( xhr.readyState )\n//\n// Returns whatever $.ajax returns.\nfunction pjax(options) {\n  options = $.extend(true, {}, $.ajaxSettings, pjax.defaults, options)\n\n  if ($.isFunction(options.url)) {\n    options.url = options.url()\n  }\n\n  var hash = parseURL(options.url).hash\n\n  var containerType = $.type(options.container)\n  if (containerType !== 'string') {\n    throw \"expected string value for 'container' option; got \" + containerType\n  }\n  var context = options.context = $(options.container)\n  if (!context.length) {\n    throw \"the container selector '\" + options.container + \"' did not match anything\"\n  }\n\n  // We want the browser to maintain two separate internal caches: one\n  // for pjax'd partial page loads and one for normal page loads.\n  // Without adding this secret parameter, some browsers will often\n  // confuse the two.\n  if (!options.data) options.data = {}\n  if ($.isArray(options.data)) {\n    options.data.push({name: '_pjax', value: options.container})\n  } else {\n    options.data._pjax = options.container\n  }\n\n  function fire(type, args, props) {\n    if (!props) props = {}\n    props.relatedTarget = options.target\n    var event = $.Event(type, props)\n    context.trigger(event, args)\n    return !event.isDefaultPrevented()\n  }\n\n  var timeoutTimer\n\n  options.beforeSend = function(xhr, settings) {\n    // No timeout for non-GET requests\n    // Its not safe to request the resource again with a fallback method.\n    if (settings.type !== 'GET') {\n      settings.timeout = 0\n    }\n\n    xhr.setRequestHeader('X-PJAX', 'true')\n    xhr.setRequestHeader('X-PJAX-Container', options.container)\n\n    if (!fire('pjax:beforeSend', [xhr, settings]))\n      return false\n\n    if (settings.timeout > 0) {\n      timeoutTimer = setTimeout(function() {\n        if (fire('pjax:timeout', [xhr, options]))\n          xhr.abort('timeout')\n      }, settings.timeout)\n\n      // Clear timeout setting so jquerys internal timeout isn't invoked\n      settings.timeout = 0\n    }\n\n    var url = parseURL(settings.url)\n    if (hash) url.hash = hash\n    options.requestUrl = stripInternalParams(url)\n  }\n\n  options.complete = function(xhr, textStatus) {\n    if (timeoutTimer)\n      clearTimeout(timeoutTimer)\n\n    fire('pjax:complete', [xhr, textStatus, options])\n\n    fire('pjax:end', [xhr, options])\n  }\n\n  options.error = function(xhr, textStatus, errorThrown) {\n    var container = extractContainer(\"\", xhr, options)\n\n    var allowed = fire('pjax:error', [xhr, textStatus, errorThrown, options])\n    if (options.type == 'GET' && textStatus !== 'abort' && allowed) {\n      locationReplace(container.url)\n    }\n  }\n\n  options.success = function(data, status, xhr) {\n    var previousState = pjax.state\n\n    // If $.pjax.defaults.version is a function, invoke it first.\n    // Otherwise it can be a static string.\n    var currentVersion = typeof $.pjax.defaults.version === 'function' ?\n      $.pjax.defaults.version() :\n      $.pjax.defaults.version\n\n    var latestVersion = xhr.getResponseHeader('X-PJAX-Version')\n\n    var container = extractContainer(data, xhr, options)\n\n    var url = parseURL(container.url)\n    if (hash) {\n      url.hash = hash\n      container.url = url.href\n    }\n\n    // If there is a layout version mismatch, hard load the new url\n    if (currentVersion && latestVersion && currentVersion !== latestVersion) {\n      locationReplace(container.url)\n      return\n    }\n\n    // If the new response is missing a body, hard load the page\n    if (!container.contents) {\n      locationReplace(container.url)\n      return\n    }\n\n    pjax.state = {\n      id: options.id || uniqueId(),\n      url: container.url,\n      title: container.title,\n      container: options.container,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n\n    if (options.push || options.replace) {\n      window.history.replaceState(pjax.state, container.title, container.url)\n    }\n\n    // Only blur the focus if the focused element is within the container.\n    var blurFocus = $.contains(context, document.activeElement)\n\n    // Clear out any focused controls before inserting new page contents.\n    if (blurFocus) {\n      try {\n        document.activeElement.blur()\n      } catch (e) { /* ignore */ }\n    }\n\n    if (container.title) document.title = container.title\n\n    fire('pjax:beforeReplace', [container.contents, options], {\n      state: pjax.state,\n      previousState: previousState\n    })\n    context.html(container.contents)\n\n    // FF bug: Won't autofocus fields that are inserted via JS.\n    // This behavior is incorrect. So if theres no current focus, autofocus\n    // the last field.\n    //\n    // http://www.w3.org/html/wg/drafts/html/master/forms.html\n    var autofocusEl = context.find('input[autofocus], textarea[autofocus]').last()[0]\n    if (autofocusEl && document.activeElement !== autofocusEl) {\n      autofocusEl.focus()\n    }\n\n    executeScriptTags(container.scripts)\n\n    var scrollTo = options.scrollTo\n\n    // Ensure browser scrolls to the element referenced by the URL anchor\n    if (hash) {\n      var name = decodeURIComponent(hash.slice(1))\n      var target = document.getElementById(name) || document.getElementsByName(name)[0]\n      if (target) scrollTo = $(target).offset().top\n    }\n\n    if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)\n\n    fire('pjax:success', [data, status, xhr, options])\n  }\n\n\n  // Initialize pjax.state for the initial page load. Assume we're\n  // using the container and options of the link we're loading for the\n  // back button to the initial page. This ensures good back button\n  // behavior.\n  if (!pjax.state) {\n    pjax.state = {\n      id: uniqueId(),\n      url: window.location.href,\n      title: document.title,\n      container: options.container,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n    window.history.replaceState(pjax.state, document.title)\n  }\n\n  // Cancel the current request if we're already pjaxing\n  abortXHR(pjax.xhr)\n\n  pjax.options = options\n  var xhr = pjax.xhr = $.ajax(options)\n\n  if (xhr.readyState > 0) {\n    if (options.push && !options.replace) {\n      // Cache current container element before replacing it\n      cachePush(pjax.state.id, [options.container, cloneContents(context)])\n\n      window.history.pushState(null, \"\", options.requestUrl)\n    }\n\n    fire('pjax:start', [xhr, options])\n    fire('pjax:send', [xhr, options])\n  }\n\n  return pjax.xhr\n}\n\n// Public: Reload current page with pjax.\n//\n// Returns whatever $.pjax returns.\nfunction pjaxReload(container, options) {\n  var defaults = {\n    url: window.location.href,\n    push: false,\n    replace: true,\n    scrollTo: false\n  }\n\n  return pjax($.extend(defaults, optionsFor(container, options)))\n}\n\n// Internal: Hard replace current state with url.\n//\n// Work for around WebKit\n//   https://bugs.webkit.org/show_bug.cgi?id=93506\n//\n// Returns nothing.\nfunction locationReplace(url) {\n  window.history.replaceState(null, \"\", pjax.state.url)\n  window.location.replace(url)\n}\n\n\nvar initialPop = true\nvar initialURL = window.location.href\nvar initialState = window.history.state\n\n// Initialize $.pjax.state if possible\n// Happens when reloading a page and coming forward from a different\n// session history.\nif (initialState && initialState.container) {\n  pjax.state = initialState\n}\n\n// Non-webkit browsers don't fire an initial popstate event\nif ('state' in window.history) {\n  initialPop = false\n}\n\n// popstate handler takes care of the back and forward buttons\n//\n// You probably shouldn't use pjax on pages with other pushState\n// stuff yet.\nfunction onPjaxPopstate(event) {\n\n  // Hitting back or forward should override any pending PJAX request.\n  if (!initialPop) {\n    abortXHR(pjax.xhr)\n  }\n\n  var previousState = pjax.state\n  var state = event.state\n  var direction\n\n  if (state && state.container) {\n    // When coming forward from a separate history session, will get an\n    // initial pop with a state we are already at. Skip reloading the current\n    // page.\n    if (initialPop && initialURL == state.url) return\n\n    if (previousState) {\n      // If popping back to the same state, just skip.\n      // Could be clicking back from hashchange rather than a pushState.\n      if (previousState.id === state.id) return\n\n      // Since state IDs always increase, we can deduce the navigation direction\n      direction = previousState.id < state.id ? 'forward' : 'back'\n    }\n\n    var cache = cacheMapping[state.id] || []\n    var containerSelector = cache[0] || state.container\n    var container = $(containerSelector), contents = cache[1]\n\n    if (container.length) {\n      if (previousState) {\n        // Cache current container before replacement and inform the\n        // cache which direction the history shifted.\n        cachePop(direction, previousState.id, [containerSelector, cloneContents(container)])\n      }\n\n      var popstateEvent = $.Event('pjax:popstate', {\n        state: state,\n        direction: direction\n      })\n      container.trigger(popstateEvent)\n\n      var options = {\n        id: state.id,\n        url: state.url,\n        container: containerSelector,\n        push: false,\n        fragment: state.fragment,\n        timeout: state.timeout,\n        scrollTo: false\n      }\n\n      if (contents) {\n        container.trigger('pjax:start', [null, options])\n\n        pjax.state = state\n        if (state.title) document.title = state.title\n        var beforeReplaceEvent = $.Event('pjax:beforeReplace', {\n          state: state,\n          previousState: previousState\n        })\n        container.trigger(beforeReplaceEvent, [contents, options])\n        container.html(contents)\n\n        container.trigger('pjax:end', [null, options])\n      } else {\n        pjax(options)\n      }\n\n      // Force reflow/relayout before the browser tries to restore the\n      // scroll position.\n      container[0].offsetHeight // eslint-disable-line no-unused-expressions\n    } else {\n      locationReplace(location.href)\n    }\n  }\n  initialPop = false\n}\n\n// Fallback version of main pjax function for browsers that don't\n// support pushState.\n//\n// Returns nothing since it retriggers a hard form submission.\nfunction fallbackPjax(options) {\n  var url = $.isFunction(options.url) ? options.url() : options.url,\n      method = options.type ? options.type.toUpperCase() : 'GET'\n\n  var form = $('<form>', {\n    method: method === 'GET' ? 'GET' : 'POST',\n    action: url,\n    style: 'display:none'\n  })\n\n  if (method !== 'GET' && method !== 'POST') {\n    form.append($('<input>', {\n      type: 'hidden',\n      name: '_method',\n      value: method.toLowerCase()\n    }))\n  }\n\n  var data = options.data\n  if (typeof data === 'string') {\n    $.each(data.split('&'), function(index, value) {\n      var pair = value.split('=')\n      form.append($('<input>', {type: 'hidden', name: pair[0], value: pair[1]}))\n    })\n  } else if ($.isArray(data)) {\n    $.each(data, function(index, value) {\n      form.append($('<input>', {type: 'hidden', name: value.name, value: value.value}))\n    })\n  } else if (typeof data === 'object') {\n    var key\n    for (key in data)\n      form.append($('<input>', {type: 'hidden', name: key, value: data[key]}))\n  }\n\n  $(document.body).append(form)\n  form.submit()\n}\n\n// Internal: Abort an XmlHttpRequest if it hasn't been completed,\n// also removing its event handlers.\nfunction abortXHR(xhr) {\n  if ( xhr && xhr.readyState < 4) {\n    xhr.onreadystatechange = $.noop\n    xhr.abort()\n  }\n}\n\n// Internal: Generate unique id for state object.\n//\n// Use a timestamp instead of a counter since ids should still be\n// unique across page loads.\n//\n// Returns Number.\nfunction uniqueId() {\n  return (new Date).getTime()\n}\n\nfunction cloneContents(container) {\n  var cloned = container.clone()\n  // Unmark script tags as already being eval'd so they can get executed again\n  // when restored from cache. HAXX: Uses jQuery internal method.\n  cloned.find('script').each(function(){\n    if (!this.src) $._data(this, 'globalEval', false)\n  })\n  return cloned.contents()\n}\n\n// Internal: Strip internal query params from parsed URL.\n//\n// Returns sanitized url.href String.\nfunction stripInternalParams(url) {\n  url.search = url.search.replace(/([?&])(_pjax|_)=[^&]*/g, '').replace(/^&/, '')\n  return url.href.replace(/\\?($|#)/, '$1')\n}\n\n// Internal: Parse URL components and returns a Locationish object.\n//\n// url - String URL\n//\n// Returns HTMLAnchorElement that acts like Location.\nfunction parseURL(url) {\n  var a = document.createElement('a')\n  a.href = url\n  return a\n}\n\n// Internal: Return the `href` component of given URL object with the hash\n// portion removed.\n//\n// location - Location or HTMLAnchorElement\n//\n// Returns String\nfunction stripHash(location) {\n  return location.href.replace(/#.*/, '')\n}\n\n// Internal: Build options Object for arguments.\n//\n// For convenience the first parameter can be either the container or\n// the options object.\n//\n// Examples\n//\n//   optionsFor('#container')\n//   // => {container: '#container'}\n//\n//   optionsFor('#container', {push: true})\n//   // => {container: '#container', push: true}\n//\n//   optionsFor({container: '#container', push: true})\n//   // => {container: '#container', push: true}\n//\n// Returns options Object.\nfunction optionsFor(container, options) {\n  if (container && options) {\n    options = $.extend({}, options)\n    options.container = container\n    return options\n  } else if ($.isPlainObject(container)) {\n    return container\n  } else {\n    return {container: container}\n  }\n}\n\n// Internal: Filter and find all elements matching the selector.\n//\n// Where $.fn.find only matches descendants, findAll will test all the\n// top level elements in the jQuery object as well.\n//\n// elems    - jQuery object of Elements\n// selector - String selector to match\n//\n// Returns a jQuery object.\nfunction findAll(elems, selector) {\n  return elems.filter(selector).add(elems.find(selector))\n}\n\nfunction parseHTML(html) {\n  return $.parseHTML(html, document, true)\n}\n\n// Internal: Extracts container and metadata from response.\n//\n// 1. Extracts X-PJAX-URL header if set\n// 2. Extracts inline <title> tags\n// 3. Builds response Element and extracts fragment if set\n//\n// data    - String response data\n// xhr     - XHR response\n// options - pjax options Object\n//\n// Returns an Object with url, title, and contents keys.\nfunction extractContainer(data, xhr, options) {\n  var obj = {}, fullDocument = /<html/i.test(data)\n\n  // Prefer X-PJAX-URL header if it was set, otherwise fallback to\n  // using the original requested url.\n  var serverUrl = xhr.getResponseHeader('X-PJAX-URL')\n  obj.url = serverUrl ? stripInternalParams(parseURL(serverUrl)) : options.requestUrl\n\n  var $head, $body\n  // Attempt to parse response html into elements\n  if (fullDocument) {\n    $body = $(parseHTML(data.match(/<body[^>]*>([\\s\\S.]*)<\\/body>/i)[0]))\n    var head = data.match(/<head[^>]*>([\\s\\S.]*)<\\/head>/i)\n    $head = head != null ? $(parseHTML(head[0])) : $body\n  } else {\n    $head = $body = $(parseHTML(data))\n  }\n\n  // If response data is empty, return fast\n  if ($body.length === 0)\n    return obj\n\n  // If there's a <title> tag in the header, use it as\n  // the page's title.\n  obj.title = findAll($head, 'title').last().text()\n\n  if (options.fragment) {\n    var $fragment = $body\n    // If they specified a fragment, look for it in the response\n    // and pull it out.\n    if (options.fragment !== 'body') {\n      $fragment = findAll($fragment, options.fragment).first()\n    }\n\n    if ($fragment.length) {\n      obj.contents = options.fragment === 'body' ? $fragment : $fragment.contents()\n\n      // If there's no title, look for data-title and title attributes\n      // on the fragment\n      if (!obj.title)\n        obj.title = $fragment.attr('title') || $fragment.data('title')\n    }\n\n  } else if (!fullDocument) {\n    obj.contents = $body\n  }\n\n  // Clean up any <title> tags\n  if (obj.contents) {\n    // Remove any parent title elements\n    obj.contents = obj.contents.not(function() { return $(this).is('title') })\n\n    // Then scrub any titles from their descendants\n    obj.contents.find('title').remove()\n\n    // Gather all script[src] elements\n    obj.scripts = findAll(obj.contents, 'script[src]').remove()\n    obj.contents = obj.contents.not(obj.scripts)\n  }\n\n  // Trim any whitespace off the title\n  if (obj.title) obj.title = $.trim(obj.title)\n\n  return obj\n}\n\n// Load an execute scripts using standard script request.\n//\n// Avoids jQuery's traditional $.getScript which does a XHR request and\n// globalEval.\n//\n// scripts - jQuery object of script Elements\n//\n// Returns nothing.\nfunction executeScriptTags(scripts) {\n  if (!scripts) return\n\n  var existingScripts = $('script[src]')\n\n  scripts.each(function() {\n    var src = this.src\n    var matchedScripts = existingScripts.filter(function() {\n      return this.src === src\n    })\n    if (matchedScripts.length) return\n\n    var script = document.createElement('script')\n    var type = $(this).attr('type')\n    if (type) script.type = type\n    script.src = $(this).attr('src')\n    document.head.appendChild(script)\n  })\n}\n\n// Internal: History DOM caching class.\nvar cacheMapping      = {}\nvar cacheForwardStack = []\nvar cacheBackStack    = []\n\n// Push previous state id and container contents into the history\n// cache. Should be called in conjunction with `pushState` to save the\n// previous container contents.\n//\n// id    - State ID Number\n// value - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePush(id, value) {\n  cacheMapping[id] = value\n  cacheBackStack.push(id)\n\n  // Remove all entries in forward history stack after pushing a new page.\n  trimCacheStack(cacheForwardStack, 0)\n\n  // Trim back history stack to max cache length.\n  trimCacheStack(cacheBackStack, pjax.defaults.maxCacheLength)\n}\n\n// Shifts cache from directional history cache. Should be\n// called on `popstate` with the previous state id and container\n// contents.\n//\n// direction - \"forward\" or \"back\" String\n// id        - State ID Number\n// value     - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePop(direction, id, value) {\n  var pushStack, popStack\n  cacheMapping[id] = value\n\n  if (direction === 'forward') {\n    pushStack = cacheBackStack\n    popStack  = cacheForwardStack\n  } else {\n    pushStack = cacheForwardStack\n    popStack  = cacheBackStack\n  }\n\n  pushStack.push(id)\n  id = popStack.pop()\n  if (id) delete cacheMapping[id]\n\n  // Trim whichever stack we just pushed to to max cache length.\n  trimCacheStack(pushStack, pjax.defaults.maxCacheLength)\n}\n\n// Trim a cache stack (either cacheBackStack or cacheForwardStack) to be no\n// longer than the specified length, deleting cached DOM elements as necessary.\n//\n// stack  - Array of state IDs\n// length - Maximum length to trim to\n//\n// Returns nothing.\nfunction trimCacheStack(stack, length) {\n  while (stack.length > length)\n    delete cacheMapping[stack.shift()]\n}\n\n// Public: Find version identifier for the initial page load.\n//\n// Returns String version or undefined.\nfunction findVersion() {\n  return $('meta').filter(function() {\n    var name = $(this).attr('http-equiv')\n    return name && name.toUpperCase() === 'X-PJAX-VERSION'\n  }).attr('content')\n}\n\n// Install pjax functions on $.pjax to enable pushState behavior.\n//\n// Does nothing if already enabled.\n//\n// Examples\n//\n//     $.pjax.enable()\n//\n// Returns nothing.\nfunction enable() {\n  $.fn.pjax = fnPjax\n  $.pjax = pjax\n  $.pjax.enable = $.noop\n  $.pjax.disable = disable\n  $.pjax.click = handleClick\n  $.pjax.submit = handleSubmit\n  $.pjax.reload = pjaxReload\n  $.pjax.defaults = {\n    timeout: 650,\n    push: true,\n    replace: false,\n    type: 'GET',\n    dataType: 'html',\n    scrollTo: 0,\n    maxCacheLength: 20,\n    version: findVersion\n  }\n  $(window).on('popstate.pjax', onPjaxPopstate)\n}\n\n// Disable pushState behavior.\n//\n// This is the case when a browser doesn't support pushState. It is\n// sometimes useful to disable pushState for debugging on a modern\n// browser.\n//\n// Examples\n//\n//     $.pjax.disable()\n//\n// Returns nothing.\nfunction disable() {\n  $.fn.pjax = function() { return this }\n  $.pjax = fallbackPjax\n  $.pjax.enable = enable\n  $.pjax.disable = $.noop\n  $.pjax.click = $.noop\n  $.pjax.submit = $.noop\n  $.pjax.reload = function() { window.location.reload() }\n\n  $(window).off('popstate.pjax', onPjaxPopstate)\n}\n\n\n// Add the state property to jQuery's event object so we can use it in\n// $(window).bind('popstate')\nif ($.event.props && $.inArray('state', $.event.props) < 0) {\n  $.event.props.push('state')\n} else if (!('state' in $.Event.prototype)) {\n  $.event.addProp('state')\n}\n\n// Is pjax supported by this browser?\n$.support.pjax =\n  window.history && window.history.pushState && window.history.replaceState &&\n  // pushState isn't reliable on iOS until 5.\n  !navigator.userAgent.match(/((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/)\n\nif ($.support.pjax) {\n  enable()\n} else {\n  disable()\n}\n\n})(jQuery)\n"
  },
  {
    "path": "public/static/home/assets/rotating-card/README.md",
    "content": "# rotating-card"
  },
  {
    "path": "public/static/home/assets/rotating-card/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v3.0.2 by @fat and @mdo\n * Copyright 2013 Twitter, Inc.\n * Licensed under https://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world by @mdo and @fat.\n */\n\n/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\naudio,\ncanvas,\nvideo {\n  display: inline-block;\n}\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n[hidden],\ntemplate {\n  display: none;\n}\n\nhtml {\n  font-family: sans-serif;\n  -webkit-text-size-adjust: 100%;\n      -ms-text-size-adjust: 100%;\n}\n\nbody {\n  margin: 0;\n}\n\na {\n  background: transparent;\n}\n\na:focus {\n  outline: thin dotted;\n}\n\na:active,\na:hover {\n  outline: 0;\n}\n\nh1 {\n  margin: 0.67em 0;\n  font-size: 2em;\n}\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\nb,\nstrong {\n  font-weight: bold;\n}\n\ndfn {\n  font-style: italic;\n}\n\nhr {\n  height: 0;\n  -moz-box-sizing: content-box;\n       box-sizing: content-box;\n}\n\nmark {\n  color: #000;\n  background: #ff0;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, serif;\n  font-size: 1em;\n}\n\npre {\n  white-space: pre-wrap;\n}\n\nq {\n  quotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nimg {\n  border: 0;\n}\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\nfigure {\n  margin: 0;\n}\n\nfieldset {\n  padding: 0.35em 0.625em 0.75em;\n  margin: 0 2px;\n  border: 1px solid #c0c0c0;\n}\n\nlegend {\n  padding: 0;\n  border: 0;\n}\n\nbutton,\ninput,\nselect,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: 100%;\n}\n\nbutton,\ninput {\n  line-height: normal;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  cursor: pointer;\n  -webkit-appearance: button;\n}\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  padding: 0;\n  box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: content-box;\n     -moz-box-sizing: content-box;\n          box-sizing: content-box;\n  -webkit-appearance: textfield;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  padding: 0;\n  border: 0;\n}\n\ntextarea {\n  overflow: auto;\n  vertical-align: top;\n}\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n@media print {\n  * {\n    color: #000 !important;\n    text-shadow: none !important;\n    background: transparent !important;\n    box-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"javascript:\"]:after,\n  a[href^=\"#\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  @page  {\n    margin: 2cm .5cm;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  select {\n    background: #fff !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n\n*,\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\nhtml {\n  font-size: 62.5%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #333333;\n  background-color: #ffffff;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\na {\n  color: #428bca;\n  text-decoration: none;\n}\n\na:hover,\na:focus {\n  color: #2a6496;\n  text-decoration: underline;\n}\n\na:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\nimg {\n  vertical-align: middle;\n}\n\n.img-responsive {\n  display: block;\n  height: auto;\n  max-width: 100%;\n}\n\n.img-rounded {\n  border-radius: 6px;\n}\n\n.img-thumbnail {\n  display: inline-block;\n  height: auto;\n  max-width: 100%;\n  padding: 4px;\n  line-height: 1.428571429;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n          transition: all 0.2s ease-in-out;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\np {\n  margin: 0 0 10px;\n}\n\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 200;\n  line-height: 1.4;\n}\n\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\n\nsmall,\n.small {\n  font-size: 85%;\n}\n\ncite {\n  font-style: normal;\n}\n\n.text-muted {\n  color: #999999;\n}\n\n.text-primary {\n  color: #428bca;\n}\n\n.text-primary:hover {\n  color: #3071a9;\n}\n\n.text-warning {\n  color: #c09853;\n}\n\n.text-warning:hover {\n  color: #a47e3c;\n}\n\n.text-danger {\n  color: #b94a48;\n}\n\n.text-danger:hover {\n  color: #953b39;\n}\n\n.text-success {\n  color: #468847;\n}\n\n.text-success:hover {\n  color: #356635;\n}\n\n.text-info {\n  color: #3a87ad;\n}\n\n.text-info:hover {\n  color: #2d6987;\n}\n\n.text-left {\n  text-align: left;\n}\n\n.text-right {\n  text-align: right;\n}\n\n.text-center {\n  text-align: center;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #999999;\n}\n\nh1,\nh2,\nh3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\n\nh1 small,\nh2 small,\nh3 small,\nh1 .small,\nh2 .small,\nh3 .small {\n  font-size: 65%;\n}\n\nh4,\nh5,\nh6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n\nh4 small,\nh5 small,\nh6 small,\nh4 .small,\nh5 .small,\nh6 .small {\n  font-size: 75%;\n}\n\nh1,\n.h1 {\n  font-size: 36px;\n}\n\nh2,\n.h2 {\n  font-size: 30px;\n}\n\nh3,\n.h3 {\n  font-size: 24px;\n}\n\nh4,\n.h4 {\n  font-size: 18px;\n}\n\nh5,\n.h5 {\n  font-size: 14px;\n}\n\nh6,\n.h6 {\n  font-size: 12px;\n}\n\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee;\n}\n\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\n\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline > li {\n  display: inline-block;\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.list-inline > li:first-child {\n  padding-left: 0;\n}\n\ndl {\n  margin-bottom: 20px;\n}\n\ndt,\ndd {\n  line-height: 1.428571429;\n}\n\ndt {\n  font-weight: bold;\n}\n\ndd {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    overflow: hidden;\n    clear: left;\n    text-align: right;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n  .dl-horizontal dd:before,\n  .dl-horizontal dd:after {\n    display: table;\n    content: \" \";\n  }\n  .dl-horizontal dd:after {\n    clear: both;\n  }\n  .dl-horizontal dd:before,\n  .dl-horizontal dd:after {\n    display: table;\n    content: \" \";\n  }\n  .dl-horizontal dd:after {\n    clear: both;\n  }\n}\n\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #999999;\n}\n\nabbr.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  border-left: 5px solid #eeeeee;\n}\n\nblockquote p {\n  font-size: 17.5px;\n  font-weight: 300;\n  line-height: 1.25;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote small {\n  display: block;\n  line-height: 1.428571429;\n  color: #999999;\n}\n\nblockquote small:before {\n  content: '\\2014 \\00A0';\n}\n\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n}\n\nblockquote.pull-right p,\nblockquote.pull-right small,\nblockquote.pull-right .small {\n  text-align: right;\n}\n\nblockquote.pull-right small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n\nblockquote.pull-right small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\n\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.428571429;\n}\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: Monaco, Menlo, Consolas, \"Courier New\", monospace;\n}\n\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  white-space: nowrap;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\n\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.428571429;\n  color: #333333;\n  word-break: break-all;\n  word-wrap: break-word;\n  background-color: #f5f5f5;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\n\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.container:before,\n.container:after {\n  display: table;\n  content: \" \";\n}\n\n.container:after {\n  clear: both;\n}\n\n.container:before,\n.container:after {\n  display: table;\n  content: \" \";\n}\n\n.container:after {\n  clear: both;\n}\n\n.row {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.row:before,\n.row:after {\n  display: table;\n  content: \" \";\n}\n\n.row:after {\n  clear: both;\n}\n\n.row:before,\n.row:after {\n  display: table;\n  content: \" \";\n}\n\n.row:after {\n  clear: both;\n}\n\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11 {\n  float: left;\n}\n\n.col-xs-12 {\n  width: 100%;\n}\n\n.col-xs-11 {\n  width: 91.66666666666666%;\n}\n\n.col-xs-10 {\n  width: 83.33333333333334%;\n}\n\n.col-xs-9 {\n  width: 75%;\n}\n\n.col-xs-8 {\n  width: 66.66666666666666%;\n}\n\n.col-xs-7 {\n  width: 58.333333333333336%;\n}\n\n.col-xs-6 {\n  width: 50%;\n}\n\n.col-xs-5 {\n  width: 41.66666666666667%;\n}\n\n.col-xs-4 {\n  width: 33.33333333333333%;\n}\n\n.col-xs-3 {\n  width: 25%;\n}\n\n.col-xs-2 {\n  width: 16.666666666666664%;\n}\n\n.col-xs-1 {\n  width: 8.333333333333332%;\n}\n\n.col-xs-pull-12 {\n  right: 100%;\n}\n\n.col-xs-pull-11 {\n  right: 91.66666666666666%;\n}\n\n.col-xs-pull-10 {\n  right: 83.33333333333334%;\n}\n\n.col-xs-pull-9 {\n  right: 75%;\n}\n\n.col-xs-pull-8 {\n  right: 66.66666666666666%;\n}\n\n.col-xs-pull-7 {\n  right: 58.333333333333336%;\n}\n\n.col-xs-pull-6 {\n  right: 50%;\n}\n\n.col-xs-pull-5 {\n  right: 41.66666666666667%;\n}\n\n.col-xs-pull-4 {\n  right: 33.33333333333333%;\n}\n\n.col-xs-pull-3 {\n  right: 25%;\n}\n\n.col-xs-pull-2 {\n  right: 16.666666666666664%;\n}\n\n.col-xs-pull-1 {\n  right: 8.333333333333332%;\n}\n\n.col-xs-pull-0 {\n  right: 0;\n}\n\n.col-xs-push-12 {\n  left: 100%;\n}\n\n.col-xs-push-11 {\n  left: 91.66666666666666%;\n}\n\n.col-xs-push-10 {\n  left: 83.33333333333334%;\n}\n\n.col-xs-push-9 {\n  left: 75%;\n}\n\n.col-xs-push-8 {\n  left: 66.66666666666666%;\n}\n\n.col-xs-push-7 {\n  left: 58.333333333333336%;\n}\n\n.col-xs-push-6 {\n  left: 50%;\n}\n\n.col-xs-push-5 {\n  left: 41.66666666666667%;\n}\n\n.col-xs-push-4 {\n  left: 33.33333333333333%;\n}\n\n.col-xs-push-3 {\n  left: 25%;\n}\n\n.col-xs-push-2 {\n  left: 16.666666666666664%;\n}\n\n.col-xs-push-1 {\n  left: 8.333333333333332%;\n}\n\n.col-xs-push-0 {\n  left: 0;\n}\n\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n\n.col-xs-offset-11 {\n  margin-left: 91.66666666666666%;\n}\n\n.col-xs-offset-10 {\n  margin-left: 83.33333333333334%;\n}\n\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n\n.col-xs-offset-8 {\n  margin-left: 66.66666666666666%;\n}\n\n.col-xs-offset-7 {\n  margin-left: 58.333333333333336%;\n}\n\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n\n.col-xs-offset-5 {\n  margin-left: 41.66666666666667%;\n}\n\n.col-xs-offset-4 {\n  margin-left: 33.33333333333333%;\n}\n\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n\n.col-xs-offset-2 {\n  margin-left: 16.666666666666664%;\n}\n\n.col-xs-offset-1 {\n  margin-left: 8.333333333333332%;\n}\n\n.col-xs-offset-0 {\n  margin-left: 0;\n}\n\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n  .col-sm-1,\n  .col-sm-2,\n  .col-sm-3,\n  .col-sm-4,\n  .col-sm-5,\n  .col-sm-6,\n  .col-sm-7,\n  .col-sm-8,\n  .col-sm-9,\n  .col-sm-10,\n  .col-sm-11 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666666666666%;\n  }\n  .col-sm-10 {\n    width: 83.33333333333334%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666666666666%;\n  }\n  .col-sm-7 {\n    width: 58.333333333333336%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666666666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.666666666666664%;\n  }\n  .col-sm-1 {\n    width: 8.333333333333332%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666666666666%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333333334%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666666666666%;\n  }\n  .col-sm-pull-7 {\n    right: 58.333333333333336%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666666666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.666666666666664%;\n  }\n  .col-sm-pull-1 {\n    right: 8.333333333333332%;\n  }\n  .col-sm-pull-0 {\n    right: 0;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666666666666%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333333334%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666666666666%;\n  }\n  .col-sm-push-7 {\n    left: 58.333333333333336%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666666666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.666666666666664%;\n  }\n  .col-sm-push-1 {\n    left: 8.333333333333332%;\n  }\n  .col-sm-push-0 {\n    left: 0;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666666666666%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333333334%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666666666666%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.333333333333336%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666666666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.666666666666664%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.333333333333332%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n  .col-md-1,\n  .col-md-2,\n  .col-md-3,\n  .col-md-4,\n  .col-md-5,\n  .col-md-6,\n  .col-md-7,\n  .col-md-8,\n  .col-md-9,\n  .col-md-10,\n  .col-md-11 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666666666666%;\n  }\n  .col-md-10 {\n    width: 83.33333333333334%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666666666666%;\n  }\n  .col-md-7 {\n    width: 58.333333333333336%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666666666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.666666666666664%;\n  }\n  .col-md-1 {\n    width: 8.333333333333332%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666666666666%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333333334%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666666666666%;\n  }\n  .col-md-pull-7 {\n    right: 58.333333333333336%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666666666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.666666666666664%;\n  }\n  .col-md-pull-1 {\n    right: 8.333333333333332%;\n  }\n  .col-md-pull-0 {\n    right: 0;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666666666666%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333333334%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666666666666%;\n  }\n  .col-md-push-7 {\n    left: 58.333333333333336%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666666666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.666666666666664%;\n  }\n  .col-md-push-1 {\n    left: 8.333333333333332%;\n  }\n  .col-md-push-0 {\n    left: 0;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666666666666%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333333334%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666666666666%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.333333333333336%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666666666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.666666666666664%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.333333333333332%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n  .col-lg-1,\n  .col-lg-2,\n  .col-lg-3,\n  .col-lg-4,\n  .col-lg-5,\n  .col-lg-6,\n  .col-lg-7,\n  .col-lg-8,\n  .col-lg-9,\n  .col-lg-10,\n  .col-lg-11 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666666666666%;\n  }\n  .col-lg-10 {\n    width: 83.33333333333334%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666666666666%;\n  }\n  .col-lg-7 {\n    width: 58.333333333333336%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666666666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.666666666666664%;\n  }\n  .col-lg-1 {\n    width: 8.333333333333332%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666666666666%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333333334%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666666666666%;\n  }\n  .col-lg-pull-7 {\n    right: 58.333333333333336%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666666666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.666666666666664%;\n  }\n  .col-lg-pull-1 {\n    right: 8.333333333333332%;\n  }\n  .col-lg-pull-0 {\n    right: 0;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666666666666%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333333334%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666666666666%;\n  }\n  .col-lg-push-7 {\n    left: 58.333333333333336%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666666666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.666666666666664%;\n  }\n  .col-lg-push-1 {\n    left: 8.333333333333332%;\n  }\n  .col-lg-push-0 {\n    left: 0;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666666666666%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333333334%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666666666666%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.333333333333336%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666666666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.666666666666664%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.333333333333332%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0;\n  }\n}\n\ntable {\n  max-width: 100%;\n  background-color: transparent;\n}\n\nth {\n  text-align: left;\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 20px;\n}\n\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.428571429;\n  vertical-align: top;\n  border-top: 1px solid #dddddd;\n}\n\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dddddd;\n}\n\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n\n.table > tbody + tbody {\n  border-top: 2px solid #dddddd;\n}\n\n.table .table {\n  background-color: #ffffff;\n}\n\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n\n.table-bordered {\n  border: 1px solid #dddddd;\n}\n\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #dddddd;\n}\n\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n\n.table-striped > tbody > tr:nth-child(odd) > td,\n.table-striped > tbody > tr:nth-child(odd) > th {\n  background-color: #f9f9f9;\n}\n\n.table-hover > tbody > tr:hover > td,\n.table-hover > tbody > tr:hover > th {\n  background-color: #f5f5f5;\n}\n\ntable col[class*=\"col-\"] {\n  display: table-column;\n  float: none;\n}\n\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  display: table-cell;\n  float: none;\n}\n\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n\n@media (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-x: scroll;\n    overflow-y: hidden;\n    border: 1px solid #dddddd;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n          box-sizing: border-box;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  /* IE8-9 */\n\n  line-height: normal;\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\nselect optgroup {\n  font-family: inherit;\n  font-size: inherit;\n  font-style: inherit;\n}\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\ninput[type=\"number\"]::-webkit-outer-spin-button,\ninput[type=\"number\"]::-webkit-inner-spin-button {\n  height: auto;\n}\n\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #555555;\n  vertical-align: middle;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.428571429;\n  color: #555555;\n  vertical-align: middle;\n  background-color: #ffffff;\n  background-image: none;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;\n}\n\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n\n.form-control:-moz-placeholder {\n  color: #999999;\n}\n\n.form-control::-moz-placeholder {\n  color: #999999;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #999999;\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #999999;\n}\n\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n  background-color: #eeeeee;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 15px;\n}\n\n.radio,\n.checkbox {\n  display: block;\n  min-height: 20px;\n  padding-left: 20px;\n  margin-top: 10px;\n  margin-bottom: 10px;\n  vertical-align: middle;\n}\n\n.radio label,\n.checkbox label {\n  display: inline;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n\n.radio-inline,\n.checkbox-inline {\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  vertical-align: middle;\n  cursor: pointer;\n}\n\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\n\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\n.radio[disabled],\n.radio-inline[disabled],\n.checkbox[disabled],\n.checkbox-inline[disabled],\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"],\nfieldset[disabled] .radio,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\n\ntextarea.input-sm {\n  height: auto;\n}\n\n.input-lg {\n  height: 45px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\n\nselect.input-lg {\n  height: 45px;\n  line-height: 45px;\n}\n\ntextarea.input-lg {\n  height: auto;\n}\n\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline {\n  color: #c09853;\n}\n\n.has-warning .form-control {\n  border-color: #c09853;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.has-warning .form-control:focus {\n  border-color: #a47e3c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;\n}\n\n.has-warning .input-group-addon {\n  color: #c09853;\n  background-color: #fcf8e3;\n  border-color: #c09853;\n}\n\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline {\n  color: #b94a48;\n}\n\n.has-error .form-control {\n  border-color: #b94a48;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.has-error .form-control:focus {\n  border-color: #953b39;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;\n}\n\n.has-error .input-group-addon {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #b94a48;\n}\n\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline {\n  color: #468847;\n}\n\n.has-success .form-control {\n  border-color: #468847;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n\n.has-success .form-control:focus {\n  border-color: #356635;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;\n}\n\n.has-success .input-group-addon {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #468847;\n}\n\n.form-control-static {\n  margin-bottom: 0;\n}\n\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    padding-left: 0;\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    float: none;\n    margin-left: 0;\n  }\n}\n\n.form-horizontal .control-label,\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  padding-top: 7px;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.form-horizontal .form-group {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n  display: table;\n  content: \" \";\n}\n\n.form-horizontal .form-group:after {\n  clear: both;\n}\n\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after {\n  display: table;\n  content: \" \";\n}\n\n.form-horizontal .form-group:after {\n  clear: both;\n}\n\n.form-horizontal .form-control-static {\n  padding-top: 7px;\n}\n\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n  }\n}\n\n.btn {\n  display: inline-block;\n  padding: 6px 12px;\n  margin-bottom: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.428571429;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: middle;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n       -o-user-select: none;\n          user-select: none;\n}\n\n.btn:focus {\n  outline: thin dotted #333;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n\n.btn:hover,\n.btn:focus {\n  color: #333333;\n  text-decoration: none;\n}\n\n.btn:active,\n.btn.active {\n  background-image: none;\n  outline: 0;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  pointer-events: none;\n  cursor: not-allowed;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-default {\n  color: #333333;\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n\n.btn-default:hover,\n.btn-default:focus,\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n  color: #333333;\n  background-color: #ebebeb;\n  border-color: #adadad;\n}\n\n.btn-default:active,\n.btn-default.active,\n.open .dropdown-toggle.btn-default {\n  background-image: none;\n}\n\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n\n.btn-primary {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n  color: #ffffff;\n  background-color: #3276b1;\n  border-color: #285e8e;\n}\n\n.btn-primary:active,\n.btn-primary.active,\n.open .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #428bca;\n  border-color: #357ebd;\n}\n\n.btn-warning {\n  color: #ffffff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n  color: #ffffff;\n  background-color: #ed9c28;\n  border-color: #d58512;\n}\n\n.btn-warning:active,\n.btn-warning.active,\n.open .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n\n.btn-danger {\n  color: #ffffff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n  color: #ffffff;\n  background-color: #d2322d;\n  border-color: #ac2925;\n}\n\n.btn-danger:active,\n.btn-danger.active,\n.open .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n\n.btn-success {\n  color: #ffffff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n\n.btn-success:hover,\n.btn-success:focus,\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n  color: #ffffff;\n  background-color: #47a447;\n  border-color: #398439;\n}\n\n.btn-success:active,\n.btn-success.active,\n.open .dropdown-toggle.btn-success {\n  background-image: none;\n}\n\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n\n.btn-info {\n  color: #ffffff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n\n.btn-info:hover,\n.btn-info:focus,\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n  color: #ffffff;\n  background-color: #39b3d7;\n  border-color: #269abc;\n}\n\n.btn-info:active,\n.btn-info.active,\n.open .dropdown-toggle.btn-info {\n  background-image: none;\n}\n\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n\n.btn-link {\n  font-weight: normal;\n  color: #428bca;\n  cursor: pointer;\n  border-radius: 0;\n}\n\n.btn-link,\n.btn-link:active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n\n.btn-link:hover,\n.btn-link:focus {\n  color: #2a6496;\n  text-decoration: underline;\n  background-color: transparent;\n}\n\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #999999;\n  text-decoration: none;\n}\n\n.btn-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\n\n.btn-sm,\n.btn-xs {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n\n.btn-xs {\n  padding: 1px 5px;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n          transition: opacity 0.15s linear;\n}\n\n.fade.in {\n  opacity: 1;\n}\n\n.collapse {\n  display: none;\n}\n\n.collapse.in {\n  display: block;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition: height 0.35s ease;\n          transition: height 0.35s ease;\n}\n\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  -webkit-font-smoothing: antialiased;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n.glyphicon:empty {\n  width: 1em;\n}\n\n.glyphicon-asterisk:before {\n  content: \"\\2a\";\n}\n\n.glyphicon-plus:before {\n  content: \"\\2b\";\n}\n\n.glyphicon-euro:before {\n  content: \"\\20ac\";\n}\n\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px solid #000000;\n  border-right: 4px solid transparent;\n  border-bottom: 0 dotted;\n  border-left: 4px solid transparent;\n}\n\n.dropdown {\n  position: relative;\n}\n\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  font-size: 14px;\n  list-style: none;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n          box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box;\n}\n\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.428571429;\n  color: #333333;\n  white-space: nowrap;\n}\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  color: #262626;\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #428bca;\n  outline: 0;\n}\n\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #999999;\n}\n\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n}\n\n.open > .dropdown-menu {\n  display: block;\n}\n\n.open > a {\n  outline: 0;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.428571429;\n  color: #999999;\n}\n\n.dropdown-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 990;\n}\n\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0 dotted;\n  border-bottom: 4px solid #000000;\n  content: \"\";\n}\n\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 1px;\n}\n\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    right: 0;\n    left: auto;\n  }\n}\n\n.btn-default .caret {\n  border-top-color: #333333;\n}\n\n.btn-primary .caret,\n.btn-success .caret,\n.btn-warning .caret,\n.btn-danger .caret,\n.btn-info .caret {\n  border-top-color: #fff;\n}\n\n.dropup .btn-default .caret {\n  border-bottom-color: #333333;\n}\n\n.dropup .btn-primary .caret,\n.dropup .btn-success .caret,\n.dropup .btn-warning .caret,\n.dropup .btn-danger .caret,\n.dropup .btn-info .caret {\n  border-bottom-color: #fff;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus {\n  outline: none;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n\n.btn-toolbar:before,\n.btn-toolbar:after {\n  display: table;\n  content: \" \";\n}\n\n.btn-toolbar:after {\n  clear: both;\n}\n\n.btn-toolbar:before,\n.btn-toolbar:after {\n  display: table;\n  content: \" \";\n}\n\n.btn-toolbar:after {\n  clear: both;\n}\n\n.btn-toolbar .btn-group {\n  float: left;\n}\n\n.btn-toolbar > .btn + .btn,\n.btn-toolbar > .btn-group + .btn,\n.btn-toolbar > .btn + .btn-group,\n.btn-toolbar > .btn-group + .btn-group {\n  margin-left: 5px;\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.btn-group > .btn-group {\n  float: left;\n}\n\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n\n.btn-group > .btn-group:first-child > .btn:last-child,\n.btn-group > .btn-group:first-child > .dropdown-toggle {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn-group:last-child > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n.btn-group-xs > .btn {\n  padding: 5px 10px;\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\n\n.btn-group > .btn + .dropdown-toggle {\n  padding-right: 8px;\n  padding-left: 8px;\n}\n\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-right: 12px;\n  padding-left: 12px;\n}\n\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n          box-shadow: none;\n}\n\n.btn .caret {\n  margin-left: 0;\n}\n\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n  display: table;\n  content: \" \";\n}\n\n.btn-group-vertical > .btn-group:after {\n  clear: both;\n}\n\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after {\n  display: table;\n  content: \" \";\n}\n\n.btn-group-vertical > .btn-group:after {\n  clear: both;\n}\n\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-bottom-left-radius: 4px;\n  border-top-left-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:first-child > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn-group:last-child > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  border-collapse: separate;\n  table-layout: fixed;\n}\n\n.btn-group-justified .btn {\n  display: table-cell;\n  float: none;\n  width: 1%;\n}\n\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n  display: none;\n}\n\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n\n.input-group.col {\n  float: none;\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.input-group .form-control {\n  width: 100%;\n  margin-bottom: 0;\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 45px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\n\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 45px;\n  line-height: 45px;\n}\n\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\n\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\n\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group-addon:first-child {\n  border-right: 0;\n}\n\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n.input-group-btn {\n  position: relative;\n  white-space: nowrap;\n}\n\n.input-group-btn:first-child > .btn {\n  margin-right: -1px;\n}\n\n.input-group-btn:last-child > .btn {\n  margin-left: -1px;\n}\n\n.input-group-btn > .btn {\n  position: relative;\n}\n\n.input-group-btn > .btn + .btn {\n  margin-left: -4px;\n}\n\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n\n.nav {\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav:before,\n.nav:after {\n  display: table;\n  content: \" \";\n}\n\n.nav:after {\n  clear: both;\n}\n\n.nav:before,\n.nav:after {\n  display: table;\n  content: \" \";\n}\n\n.nav:after {\n  clear: both;\n}\n\n.nav > li {\n  position: relative;\n  display: block;\n}\n\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n\n.nav > li.disabled > a {\n  color: #999999;\n}\n\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #999999;\n  text-decoration: none;\n  cursor: not-allowed;\n  background-color: transparent;\n}\n\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eeeeee;\n  border-color: #428bca;\n}\n\n.nav .open > a .caret,\n.nav .open > a:hover .caret,\n.nav .open > a:focus .caret {\n  border-top-color: #2a6496;\n  border-bottom-color: #2a6496;\n}\n\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n\n.nav > li > a > img {\n  max-width: none;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dddddd;\n}\n\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.428571429;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n\n.nav-tabs > li > a:hover {\n  border-color: #eeeeee #eeeeee #dddddd;\n}\n\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555555;\n  cursor: default;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-bottom-color: transparent;\n}\n\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n\n.nav-tabs.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n\n.nav-pills > li {\n  float: left;\n}\n\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #ffffff;\n  background-color: #428bca;\n}\n\n.nav-pills > li.active > a .caret,\n.nav-pills > li.active > a:hover .caret,\n.nav-pills > li.active > a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.nav-stacked > li {\n  float: none;\n}\n\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n\n.nav-justified {\n  width: 100%;\n}\n\n.nav-justified > li {\n  float: none;\n}\n\n.nav-justified > li > a {\n  margin-bottom: 5px;\n  text-align: center;\n}\n\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.nav .caret {\n  border-top-color: #428bca;\n  border-bottom-color: #428bca;\n}\n\n.nav a:hover .caret {\n  border-top-color: #2a6496;\n  border-bottom-color: #2a6496;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n\n.navbar:before,\n.navbar:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar:after {\n  clear: both;\n}\n\n.navbar:before,\n.navbar:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar:after {\n  clear: both;\n}\n\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n\n.navbar-header:before,\n.navbar-header:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar-header:after {\n  clear: both;\n}\n\n.navbar-header:before,\n.navbar-header:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar-header:after {\n  clear: both;\n}\n\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n\n.navbar-collapse {\n  max-height: 340px;\n  padding-right: 15px;\n  padding-left: 15px;\n  overflow-x: visible;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch;\n}\n\n.navbar-collapse:before,\n.navbar-collapse:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar-collapse:after {\n  clear: both;\n}\n\n.navbar-collapse:before,\n.navbar-collapse:after {\n  display: table;\n  content: \" \";\n}\n\n.navbar-collapse:after {\n  clear: both;\n}\n\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: auto;\n  }\n  .navbar-collapse .navbar-nav.navbar-left:first-child {\n    margin-left: -15px;\n  }\n  .navbar-collapse .navbar-nav.navbar-right:last-child {\n    margin-right: -15px;\n  }\n  .navbar-collapse .navbar-text:last-child {\n    margin-right: 0;\n  }\n}\n\n.container > .navbar-header,\n.container > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n}\n\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand {\n    margin-left: -15px;\n  }\n}\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-right: 15px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n  }\n}\n\n.navbar-form {\n  padding: 10px 15px;\n  margin-top: 8px;\n  margin-right: -15px;\n  margin-bottom: 8px;\n  margin-left: -15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    padding-left: 0;\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    float: none;\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    padding-top: 0;\n    padding-bottom: 0;\n    margin-right: 0;\n    margin-left: 0;\n    border: 0;\n    -webkit-box-shadow: none;\n            box-shadow: none;\n  }\n}\n\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.navbar-nav.pull-right > li > .dropdown-menu,\n.navbar-nav > li > .dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n\n.navbar-text {\n  float: left;\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n\n@media (min-width: 768px) {\n  .navbar-text {\n    margin-right: 15px;\n    margin-left: 15px;\n  }\n}\n\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n\n.navbar-default .navbar-brand {\n  color: #777777;\n}\n\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n\n.navbar-default .navbar-text {\n  color: #777777;\n}\n\n.navbar-default .navbar-nav > li > a {\n  color: #777777;\n}\n\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333333;\n  background-color: transparent;\n}\n\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555555;\n  background-color: #e7e7e7;\n}\n\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #cccccc;\n  background-color: transparent;\n}\n\n.navbar-default .navbar-toggle {\n  border-color: #dddddd;\n}\n\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #dddddd;\n}\n\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #cccccc;\n}\n\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n\n.navbar-default .navbar-nav > .dropdown > a:hover .caret,\n.navbar-default .navbar-nav > .dropdown > a:focus .caret {\n  border-top-color: #333333;\n  border-bottom-color: #333333;\n}\n\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  color: #555555;\n  background-color: #e7e7e7;\n}\n\n.navbar-default .navbar-nav > .open > a .caret,\n.navbar-default .navbar-nav > .open > a:hover .caret,\n.navbar-default .navbar-nav > .open > a:focus .caret {\n  border-top-color: #555555;\n  border-bottom-color: #555555;\n}\n\n.navbar-default .navbar-nav > .dropdown > a .caret {\n  border-top-color: #777777;\n  border-bottom-color: #777777;\n}\n\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #cccccc;\n    background-color: transparent;\n  }\n}\n\n.navbar-default .navbar-link {\n  color: #777777;\n}\n\n.navbar-default .navbar-link:hover {\n  color: #333333;\n}\n\n.navbar-inverse {\n  background-color: #222222;\n  border-color: #080808;\n}\n\n.navbar-inverse .navbar-brand {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n\n.navbar-inverse .navbar-text {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-nav > li > a {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #ffffff;\n  background-color: #080808;\n}\n\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444444;\n  background-color: transparent;\n}\n\n.navbar-inverse .navbar-toggle {\n  border-color: #333333;\n}\n\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333333;\n}\n\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #ffffff;\n}\n\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  color: #ffffff;\n  background-color: #080808;\n}\n\n.navbar-inverse .navbar-nav > .dropdown > a:hover .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n.navbar-inverse .navbar-nav > .dropdown > a .caret {\n  border-top-color: #999999;\n  border-bottom-color: #999999;\n}\n\n.navbar-inverse .navbar-nav > .open > a .caret,\n.navbar-inverse .navbar-nav > .open > a:hover .caret,\n.navbar-inverse .navbar-nav > .open > a:focus .caret {\n  border-top-color: #ffffff;\n  border-bottom-color: #ffffff;\n}\n\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #999999;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #ffffff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #ffffff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444444;\n    background-color: transparent;\n  }\n}\n\n.navbar-inverse .navbar-link {\n  color: #999999;\n}\n\n.navbar-inverse .navbar-link:hover {\n  color: #ffffff;\n}\n\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n\n.breadcrumb > li {\n  display: inline-block;\n}\n\n.breadcrumb > li + li:before {\n  padding: 0 5px;\n  color: #cccccc;\n  content: \"/\\00a0\";\n}\n\n.breadcrumb > .active {\n  color: #999999;\n}\n\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n\n.pagination > li {\n  display: inline;\n}\n\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  margin-left: -1px;\n  line-height: 1.428571429;\n  text-decoration: none;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n}\n\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-bottom-left-radius: 4px;\n  border-top-left-radius: 4px;\n}\n\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 4px;\n}\n\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  background-color: #eeeeee;\n}\n\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 2;\n  color: #ffffff;\n  cursor: default;\n  background-color: #428bca;\n  border-color: #428bca;\n}\n\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #999999;\n  cursor: not-allowed;\n  background-color: #ffffff;\n  border-color: #dddddd;\n}\n\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n}\n\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px;\n}\n\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-top-right-radius: 6px;\n  border-bottom-right-radius: 6px;\n}\n\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n}\n\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-top-right-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  text-align: center;\n  list-style: none;\n}\n\n.pager:before,\n.pager:after {\n  display: table;\n  content: \" \";\n}\n\n.pager:after {\n  clear: both;\n}\n\n.pager:before,\n.pager:after {\n  display: table;\n  content: \" \";\n}\n\n.pager:after {\n  clear: both;\n}\n\n.pager li {\n  display: inline;\n}\n\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 15px;\n}\n\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #999999;\n  cursor: not-allowed;\n  background-color: #ffffff;\n}\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #ffffff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\n\n.label[href]:hover,\n.label[href]:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n\n.label:empty {\n  display: none;\n}\n\n.label-default {\n  background-color: #999999;\n}\n\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #808080;\n}\n\n.label-primary {\n  background-color: #428bca;\n}\n\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #3071a9;\n}\n\n.label-success {\n  background-color: #5cb85c;\n}\n\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n\n.label-info {\n  background-color: #5bc0de;\n}\n\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n\n.label-warning {\n  background-color: #f0ad4e;\n}\n\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n\n.label-danger {\n  background-color: #d9534f;\n}\n\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  line-height: 1;\n  color: #ffffff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  background-color: #999999;\n  border-radius: 10px;\n}\n\n.badge:empty {\n  display: none;\n}\n\na.badge:hover,\na.badge:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #428bca;\n  background-color: #ffffff;\n}\n\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n\n.jumbotron {\n  padding: 30px;\n  margin-bottom: 30px;\n  font-size: 21px;\n  font-weight: 200;\n  line-height: 2.1428571435;\n  color: inherit;\n  background-color: #eeeeee;\n}\n\n.jumbotron h1 {\n  line-height: 1;\n  color: inherit;\n}\n\n.jumbotron p {\n  line-height: 1.4;\n}\n\n.container .jumbotron {\n  border-radius: 6px;\n}\n\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron {\n    padding-right: 60px;\n    padding-left: 60px;\n  }\n  .jumbotron h1 {\n    font-size: 63px;\n  }\n}\n\n.thumbnail {\n  display: inline-block;\n  display: block;\n  height: auto;\n  max-width: 100%;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.428571429;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n          transition: all 0.2s ease-in-out;\n}\n\n.thumbnail > img {\n  display: block;\n  height: auto;\n  max-width: 100%;\n  margin-right: auto;\n  margin-left: auto;\n}\n\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #428bca;\n}\n\n.thumbnail .caption {\n  padding: 9px;\n  color: #333333;\n}\n\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n\n.alert .alert-link {\n  font-weight: bold;\n}\n\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n\n.alert > p + p {\n  margin-top: 5px;\n}\n\n.alert-dismissable {\n  padding-right: 35px;\n}\n\n.alert-dismissable .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n\n.alert-success {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n\n.alert-success .alert-link {\n  color: #356635;\n}\n\n.alert-info {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n\n.alert-info .alert-link {\n  color: #2d6987;\n}\n\n.alert-warning {\n  color: #c09853;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n\n.alert-warning .alert-link {\n  color: #a47e3c;\n}\n\n.alert-danger {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n\n.alert-danger .alert-link {\n  color: #953b39;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-moz-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@-o-keyframes progress-bar-stripes {\n  from {\n    background-position: 0 0;\n  }\n  to {\n    background-position: 40px 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  height: 20px;\n  margin-bottom: 20px;\n  overflow: hidden;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  float: left;\n  width: 0;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #ffffff;\n  text-align: center;\n  background-color: #428bca;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n          transition: width 0.6s ease;\n}\n\n.progress-striped .progress-bar {\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px;\n}\n\n.progress.active .progress-bar {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n          animation: progress-bar-stripes 2s linear infinite;\n}\n\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n\n.progress-striped .progress-bar-success {\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n\n.progress-striped .progress-bar-info {\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n.media,\n.media .media {\n  margin-top: 15px;\n}\n\n.media:first-child {\n  margin-top: 0;\n}\n\n.media-object {\n  display: block;\n}\n\n.media-heading {\n  margin: 0 0 5px;\n}\n\n.media > .pull-left {\n  margin-right: 10px;\n}\n\n.media > .pull-right {\n  margin-left: 10px;\n}\n\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-group {\n  padding-left: 0;\n  margin-bottom: 20px;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n}\n\n.list-group-item:first-child {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.list-group-item > .badge {\n  float: right;\n}\n\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n\na.list-group-item {\n  color: #555555;\n}\n\na.list-group-item .list-group-item-heading {\n  color: #333333;\n}\n\na.list-group-item:hover,\na.list-group-item:focus {\n  text-decoration: none;\n  background-color: #f5f5f5;\n}\n\na.list-group-item.active,\na.list-group-item.active:hover,\na.list-group-item.active:focus {\n  z-index: 2;\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #428bca;\n}\n\na.list-group-item.active .list-group-item-heading,\na.list-group-item.active:hover .list-group-item-heading,\na.list-group-item.active:focus .list-group-item-heading {\n  color: inherit;\n}\n\na.list-group-item.active .list-group-item-text,\na.list-group-item.active:hover .list-group-item-text,\na.list-group-item.active:focus .list-group-item-text {\n  color: #e1edf7;\n}\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n\n.panel {\n  margin-bottom: 20px;\n  background-color: #ffffff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n\n.panel-body {\n  padding: 15px;\n}\n\n.panel-body:before,\n.panel-body:after {\n  display: table;\n  content: \" \";\n}\n\n.panel-body:after {\n  clear: both;\n}\n\n.panel-body:before,\n.panel-body:after {\n  display: table;\n  content: \" \";\n}\n\n.panel-body:after {\n  clear: both;\n}\n\n.panel > .list-group {\n  margin-bottom: 0;\n}\n\n.panel > .list-group .list-group-item {\n  border-width: 1px 0;\n}\n\n.panel > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n\n.panel > .list-group .list-group-item:last-child {\n  border-bottom: 0;\n}\n\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n\n.panel > .table,\n.panel > .table-responsive {\n  margin-bottom: 0;\n}\n\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive {\n  border-top: 1px solid #dddddd;\n}\n\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n\n.panel > .table-bordered > thead > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:last-child > th,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-bordered > thead > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n  border-bottom: 0;\n}\n\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n}\n\n.panel-title > a {\n  color: inherit;\n}\n\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #dddddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n\n.panel-group .panel {\n  margin-bottom: 0;\n  overflow: hidden;\n  border-radius: 4px;\n}\n\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n\n.panel-group .panel-heading + .panel-collapse .panel-body {\n  border-top: 1px solid #dddddd;\n}\n\n.panel-group .panel-footer {\n  border-top: 0;\n}\n\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #dddddd;\n}\n\n.panel-default {\n  border-color: #dddddd;\n}\n\n.panel-default > .panel-heading {\n  color: #333333;\n  background-color: #f5f5f5;\n  border-color: #dddddd;\n}\n\n.panel-default > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #dddddd;\n}\n\n.panel-default > .panel-heading > .dropdown .caret {\n  border-color: #333333 transparent;\n}\n\n.panel-default > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #dddddd;\n}\n\n.panel-primary {\n  border-color: #428bca;\n}\n\n.panel-primary > .panel-heading {\n  color: #ffffff;\n  background-color: #428bca;\n  border-color: #428bca;\n}\n\n.panel-primary > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #428bca;\n}\n\n.panel-primary > .panel-heading > .dropdown .caret {\n  border-color: #ffffff transparent;\n}\n\n.panel-primary > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #428bca;\n}\n\n.panel-success {\n  border-color: #d6e9c6;\n}\n\n.panel-success > .panel-heading {\n  color: #468847;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n\n.panel-success > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #d6e9c6;\n}\n\n.panel-success > .panel-heading > .dropdown .caret {\n  border-color: #468847 transparent;\n}\n\n.panel-success > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n\n.panel-warning {\n  border-color: #faebcc;\n}\n\n.panel-warning > .panel-heading {\n  color: #c09853;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n\n.panel-warning > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #faebcc;\n}\n\n.panel-warning > .panel-heading > .dropdown .caret {\n  border-color: #c09853 transparent;\n}\n\n.panel-warning > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #faebcc;\n}\n\n.panel-danger {\n  border-color: #ebccd1;\n}\n\n.panel-danger > .panel-heading {\n  color: #b94a48;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n\n.panel-danger > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #ebccd1;\n}\n\n.panel-danger > .panel-heading > .dropdown .caret {\n  border-color: #b94a48 transparent;\n}\n\n.panel-danger > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #ebccd1;\n}\n\n.panel-info {\n  border-color: #bce8f1;\n}\n\n.panel-info > .panel-heading {\n  color: #3a87ad;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n\n.panel-info > .panel-heading + .panel-collapse .panel-body {\n  border-top-color: #bce8f1;\n}\n\n.panel-info > .panel-heading > .dropdown .caret {\n  border-color: #3a87ad transparent;\n}\n\n.panel-info > .panel-footer + .panel-collapse .panel-body {\n  border-bottom-color: #bce8f1;\n}\n\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n\n.close:hover,\n.close:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  display: none;\n  overflow: auto;\n  overflow-y: scroll;\n}\n\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, -25%);\n      -ms-transform: translate(0, -25%);\n          transform: translate(0, -25%);\n  -webkit-transition: -webkit-transform 0.3s ease-out;\n     -moz-transition: -moz-transform 0.3s ease-out;\n       -o-transition: -o-transform 0.3s ease-out;\n          transition: transform 0.3s ease-out;\n}\n\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n      -ms-transform: translate(0, 0);\n          transform: translate(0, 0);\n}\n\n.modal-dialog {\n  position: relative;\n  z-index: 1050;\n  width: auto;\n  padding: 10px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.modal-content {\n  position: relative;\n  background-color: #ffffff;\n  border: 1px solid #999999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  outline: none;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n          box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n  background-color: #000000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n\n.modal-backdrop.in {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.modal-header {\n  min-height: 16.428571429px;\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n}\n\n.modal-header .close {\n  margin-top: -2px;\n}\n\n.modal-title {\n  margin: 0;\n  line-height: 1.428571429;\n}\n\n.modal-body {\n  position: relative;\n  padding: 20px;\n}\n\n.modal-footer {\n  padding: 19px 20px 20px;\n  margin-top: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  content: \" \";\n}\n\n.modal-footer:after {\n  clear: both;\n}\n\n.modal-footer:before,\n.modal-footer:after {\n  display: table;\n  content: \" \";\n}\n\n.modal-footer:after {\n  clear: both;\n}\n\n.modal-footer .btn + .btn {\n  margin-bottom: 0;\n  margin-left: 5px;\n}\n\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n\n@media screen and (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    padding-top: 30px;\n    padding-bottom: 30px;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1030;\n  display: block;\n  font-size: 12px;\n  line-height: 1.4;\n  opacity: 0;\n  filter: alpha(opacity=0);\n  visibility: visible;\n}\n\n.tooltip.in {\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.tooltip.top {\n  padding: 5px 0;\n  margin-top: -3px;\n}\n\n.tooltip.right {\n  padding: 0 5px;\n  margin-left: 3px;\n}\n\n.tooltip.bottom {\n  padding: 5px 0;\n  margin-top: 3px;\n}\n\n.tooltip.left {\n  padding: 0 5px;\n  margin-left: -3px;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #ffffff;\n  text-align: center;\n  text-decoration: none;\n  background-color: #000000;\n  border-radius: 4px;\n}\n\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-top-color: #000000;\n  border-width: 5px 5px 0;\n}\n\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  border-top-color: #000000;\n  border-width: 5px 5px 0;\n}\n\n.tooltip.top-right .tooltip-arrow {\n  right: 5px;\n  bottom: 0;\n  border-top-color: #000000;\n  border-width: 5px 5px 0;\n}\n\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-right-color: #000000;\n  border-width: 5px 5px 5px 0;\n}\n\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-left-color: #000000;\n  border-width: 5px 0 5px 5px;\n}\n\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-bottom-color: #000000;\n  border-width: 0 5px 5px;\n}\n\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  border-bottom-color: #000000;\n  border-width: 0 5px 5px;\n}\n\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  border-bottom-color: #000000;\n  border-width: 0 5px 5px;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1010;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  text-align: left;\n  white-space: normal;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  background-clip: padding-box;\n}\n\n.popover.top {\n  margin-top: -10px;\n}\n\n.popover.right {\n  margin-left: 10px;\n}\n\n.popover.bottom {\n  margin-top: 10px;\n}\n\n.popover.left {\n  margin-left: -10px;\n}\n\n.popover-title {\n  padding: 8px 14px;\n  margin: 0;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n.popover .arrow,\n.popover .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n\n.popover .arrow {\n  border-width: 11px;\n}\n\n.popover .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n\n.popover.top .arrow {\n  bottom: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  border-bottom-width: 0;\n}\n\n.popover.top .arrow:after {\n  bottom: 1px;\n  margin-left: -10px;\n  border-top-color: #ffffff;\n  border-bottom-width: 0;\n  content: \" \";\n}\n\n.popover.right .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-right-color: #999999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n  border-left-width: 0;\n}\n\n.popover.right .arrow:after {\n  bottom: -10px;\n  left: 1px;\n  border-right-color: #ffffff;\n  border-left-width: 0;\n  content: \" \";\n}\n\n.popover.bottom .arrow {\n  top: -11px;\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  border-top-width: 0;\n}\n\n.popover.bottom .arrow:after {\n  top: 1px;\n  margin-left: -10px;\n  border-bottom-color: #ffffff;\n  border-top-width: 0;\n  content: \" \";\n}\n\n.popover.left .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-left-color: #999999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n  border-right-width: 0;\n}\n\n.popover.left .arrow:after {\n  right: 1px;\n  bottom: -10px;\n  border-left-color: #ffffff;\n  border-right-width: 0;\n  content: \" \";\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner > .item {\n  position: relative;\n  display: none;\n  -webkit-transition: 0.6s ease-in-out left;\n          transition: 0.6s ease-in-out left;\n}\n\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  height: auto;\n  max-width: 100%;\n  line-height: 1;\n}\n\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n\n.carousel-inner > .active {\n  left: 0;\n}\n\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.carousel-inner > .next {\n  left: 100%;\n}\n\n.carousel-inner > .prev {\n  left: -100%;\n}\n\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n\n.carousel-inner > .active.left {\n  left: -100%;\n}\n\n.carousel-inner > .active.right {\n  left: 100%;\n}\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 15%;\n  font-size: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.carousel-control.left {\n  background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));\n  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%));\n  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n\n.carousel-control.right {\n  right: 0;\n  left: auto;\n  background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));\n  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%));\n  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n\n.carousel-control:hover,\n.carousel-control:focus {\n  color: #ffffff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n  display: inline-block;\n}\n\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n}\n\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n}\n\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  margin-top: -10px;\n  margin-left: -10px;\n  font-family: serif;\n}\n\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  padding-left: 0;\n  margin-left: -30%;\n  text-align: center;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n  border: 1px solid #ffffff;\n  border-radius: 10px;\n}\n\n.carousel-indicators .active {\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  background-color: #ffffff;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n\n.carousel-caption .btn {\n  text-shadow: none;\n}\n\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicons-chevron-left,\n  .carousel-control .glyphicons-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -15px;\n    margin-left: -15px;\n    font-size: 30px;\n  }\n  .carousel-caption {\n    right: 20%;\n    left: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n\n.clearfix:before,\n.clearfix:after {\n  display: table;\n  content: \" \";\n}\n\n.clearfix:after {\n  clear: both;\n}\n\n.center-block {\n  display: block;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.pull-right {\n  float: right !important;\n}\n\n.pull-left {\n  float: left !important;\n}\n\n.hide {\n  display: none !important;\n}\n\n.show {\n  display: block !important;\n}\n\n.invisible {\n  visibility: hidden;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.hidden {\n  display: none !important;\n  visibility: hidden !important;\n}\n\n.affix {\n  position: fixed;\n}\n\n@-ms-viewport {\n  width: device-width;\n}\n\n.visible-xs,\ntr.visible-xs,\nth.visible-xs,\ntd.visible-xs {\n  display: none !important;\n}\n\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-xs.visible-sm {\n    display: block !important;\n  }\n  tr.visible-xs.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-xs.visible-sm,\n  td.visible-xs.visible-sm {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-xs.visible-md {\n    display: block !important;\n  }\n  tr.visible-xs.visible-md {\n    display: table-row !important;\n  }\n  th.visible-xs.visible-md,\n  td.visible-xs.visible-md {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .visible-xs.visible-lg {\n    display: block !important;\n  }\n  tr.visible-xs.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-xs.visible-lg,\n  td.visible-xs.visible-lg {\n    display: table-cell !important;\n  }\n}\n\n.visible-sm,\ntr.visible-sm,\nth.visible-sm,\ntd.visible-sm {\n  display: none !important;\n}\n\n@media (max-width: 767px) {\n  .visible-sm.visible-xs {\n    display: block !important;\n  }\n  tr.visible-sm.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-sm.visible-xs,\n  td.visible-sm.visible-xs {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-sm.visible-md {\n    display: block !important;\n  }\n  tr.visible-sm.visible-md {\n    display: table-row !important;\n  }\n  th.visible-sm.visible-md,\n  td.visible-sm.visible-md {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .visible-sm.visible-lg {\n    display: block !important;\n  }\n  tr.visible-sm.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-sm.visible-lg,\n  td.visible-sm.visible-lg {\n    display: table-cell !important;\n  }\n}\n\n.visible-md,\ntr.visible-md,\nth.visible-md,\ntd.visible-md {\n  display: none !important;\n}\n\n@media (max-width: 767px) {\n  .visible-md.visible-xs {\n    display: block !important;\n  }\n  tr.visible-md.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-md.visible-xs,\n  td.visible-md.visible-xs {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-md.visible-sm {\n    display: block !important;\n  }\n  tr.visible-md.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-md.visible-sm,\n  td.visible-md.visible-sm {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .visible-md.visible-lg {\n    display: block !important;\n  }\n  tr.visible-md.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-md.visible-lg,\n  td.visible-md.visible-lg {\n    display: table-cell !important;\n  }\n}\n\n.visible-lg,\ntr.visible-lg,\nth.visible-lg,\ntd.visible-lg {\n  display: none !important;\n}\n\n@media (max-width: 767px) {\n  .visible-lg.visible-xs {\n    display: block !important;\n  }\n  tr.visible-lg.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-lg.visible-xs,\n  td.visible-lg.visible-xs {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-lg.visible-sm {\n    display: block !important;\n  }\n  tr.visible-lg.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-lg.visible-sm,\n  td.visible-lg.visible-sm {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-lg.visible-md {\n    display: block !important;\n  }\n  tr.visible-lg.visible-md {\n    display: table-row !important;\n  }\n  th.visible-lg.visible-md,\n  td.visible-lg.visible-md {\n    display: table-cell !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n\n.hidden-xs {\n  display: block !important;\n}\n\ntr.hidden-xs {\n  display: table-row !important;\n}\n\nth.hidden-xs,\ntd.hidden-xs {\n  display: table-cell !important;\n}\n\n@media (max-width: 767px) {\n  .hidden-xs,\n  tr.hidden-xs,\n  th.hidden-xs,\n  td.hidden-xs {\n    display: none !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-xs.hidden-sm,\n  tr.hidden-xs.hidden-sm,\n  th.hidden-xs.hidden-sm,\n  td.hidden-xs.hidden-sm {\n    display: none !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-xs.hidden-md,\n  tr.hidden-xs.hidden-md,\n  th.hidden-xs.hidden-md,\n  td.hidden-xs.hidden-md {\n    display: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .hidden-xs.hidden-lg,\n  tr.hidden-xs.hidden-lg,\n  th.hidden-xs.hidden-lg,\n  td.hidden-xs.hidden-lg {\n    display: none !important;\n  }\n}\n\n.hidden-sm {\n  display: block !important;\n}\n\ntr.hidden-sm {\n  display: table-row !important;\n}\n\nth.hidden-sm,\ntd.hidden-sm {\n  display: table-cell !important;\n}\n\n@media (max-width: 767px) {\n  .hidden-sm.hidden-xs,\n  tr.hidden-sm.hidden-xs,\n  th.hidden-sm.hidden-xs,\n  td.hidden-sm.hidden-xs {\n    display: none !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm,\n  tr.hidden-sm,\n  th.hidden-sm,\n  td.hidden-sm {\n    display: none !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-sm.hidden-md,\n  tr.hidden-sm.hidden-md,\n  th.hidden-sm.hidden-md,\n  td.hidden-sm.hidden-md {\n    display: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .hidden-sm.hidden-lg,\n  tr.hidden-sm.hidden-lg,\n  th.hidden-sm.hidden-lg,\n  td.hidden-sm.hidden-lg {\n    display: none !important;\n  }\n}\n\n.hidden-md {\n  display: block !important;\n}\n\ntr.hidden-md {\n  display: table-row !important;\n}\n\nth.hidden-md,\ntd.hidden-md {\n  display: table-cell !important;\n}\n\n@media (max-width: 767px) {\n  .hidden-md.hidden-xs,\n  tr.hidden-md.hidden-xs,\n  th.hidden-md.hidden-xs,\n  td.hidden-md.hidden-xs {\n    display: none !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-md.hidden-sm,\n  tr.hidden-md.hidden-sm,\n  th.hidden-md.hidden-sm,\n  td.hidden-md.hidden-sm {\n    display: none !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md,\n  tr.hidden-md,\n  th.hidden-md,\n  td.hidden-md {\n    display: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .hidden-md.hidden-lg,\n  tr.hidden-md.hidden-lg,\n  th.hidden-md.hidden-lg,\n  td.hidden-md.hidden-lg {\n    display: none !important;\n  }\n}\n\n.hidden-lg {\n  display: block !important;\n}\n\ntr.hidden-lg {\n  display: table-row !important;\n}\n\nth.hidden-lg,\ntd.hidden-lg {\n  display: table-cell !important;\n}\n\n@media (max-width: 767px) {\n  .hidden-lg.hidden-xs,\n  tr.hidden-lg.hidden-xs,\n  th.hidden-lg.hidden-xs,\n  td.hidden-lg.hidden-xs {\n    display: none !important;\n  }\n}\n\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-lg.hidden-sm,\n  tr.hidden-lg.hidden-sm,\n  th.hidden-lg.hidden-sm,\n  td.hidden-lg.hidden-sm {\n    display: none !important;\n  }\n}\n\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-lg.hidden-md,\n  tr.hidden-lg.hidden-md,\n  th.hidden-lg.hidden-md,\n  td.hidden-lg.hidden-md {\n    display: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .hidden-lg,\n  tr.hidden-lg,\n  th.hidden-lg,\n  td.hidden-lg {\n    display: none !important;\n  }\n}\n\n.visible-print,\ntr.visible-print,\nth.visible-print,\ntd.visible-print {\n  display: none !important;\n}\n\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n  .hidden-print,\n  tr.hidden-print,\n  th.hidden-print,\n  td.hidden-print {\n    display: none !important;\n  }\n}"
  },
  {
    "path": "public/static/home/assets/rotating-card/css/pe-icon-7-stroke.css",
    "content": "@font-face {\n\tfont-family: 'Pe-icon-7-stroke';\n\tsrc:url('../fonts/Pe-icon-7-stroke.eot?-2irksn');\n\tsrc:url('../fonts/Pe-icon-7-stroke.eot?#iefix-2irksn') format('embedded-opentype'),\n\t\turl('../fonts/Pe-icon-7-stroke.woff?-2irksn') format('woff'),\n\t\turl('../fonts/Pe-icon-7-stroke.ttf?-2irksn') format('truetype'),\n\t\turl('../fonts/Pe-icon-7-stroke.svg?-2irksn#Pe-icon-7-stroke') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n[class^=\"pe-7s-\"], [class*=\" pe-7s-\"] {\n\tdisplay: inline-block;\n\tfont-family: 'Pe-icon-7-stroke';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n\tline-height: 1;\n\n\t/* Better Font Rendering =========== */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\n.pe-7s-cloud-upload:before {\n\tcontent: \"\\e68a\";\n}\n.pe-7s-cash:before {\n\tcontent: \"\\e68c\";\n}\n.pe-7s-close:before {\n\tcontent: \"\\e680\";\n}\n.pe-7s-bluetooth:before {\n\tcontent: \"\\e68d\";\n}\n.pe-7s-cloud-download:before {\n\tcontent: \"\\e68b\";\n}\n.pe-7s-way:before {\n\tcontent: \"\\e68e\";\n}\n.pe-7s-close-circle:before {\n\tcontent: \"\\e681\";\n}\n.pe-7s-id:before {\n\tcontent: \"\\e68f\";\n}\n.pe-7s-angle-up:before {\n\tcontent: \"\\e682\";\n}\n.pe-7s-wristwatch:before {\n\tcontent: \"\\e690\";\n}\n.pe-7s-angle-up-circle:before {\n\tcontent: \"\\e683\";\n}\n.pe-7s-world:before {\n\tcontent: \"\\e691\";\n}\n.pe-7s-angle-right:before {\n\tcontent: \"\\e684\";\n}\n.pe-7s-volume:before {\n\tcontent: \"\\e692\";\n}\n.pe-7s-angle-right-circle:before {\n\tcontent: \"\\e685\";\n}\n.pe-7s-users:before {\n\tcontent: \"\\e693\";\n}\n.pe-7s-angle-left:before {\n\tcontent: \"\\e686\";\n}\n.pe-7s-user-female:before {\n\tcontent: \"\\e694\";\n}\n.pe-7s-angle-left-circle:before {\n\tcontent: \"\\e687\";\n}\n.pe-7s-up-arrow:before {\n\tcontent: \"\\e695\";\n}\n.pe-7s-angle-down:before {\n\tcontent: \"\\e688\";\n}\n.pe-7s-switch:before {\n\tcontent: \"\\e696\";\n}\n.pe-7s-angle-down-circle:before {\n\tcontent: \"\\e689\";\n}\n.pe-7s-scissors:before {\n\tcontent: \"\\e697\";\n}\n.pe-7s-wallet:before {\n\tcontent: \"\\e600\";\n}\n.pe-7s-safe:before {\n\tcontent: \"\\e698\";\n}\n.pe-7s-volume2:before {\n\tcontent: \"\\e601\";\n}\n.pe-7s-volume1:before {\n\tcontent: \"\\e602\";\n}\n.pe-7s-voicemail:before {\n\tcontent: \"\\e603\";\n}\n.pe-7s-video:before {\n\tcontent: \"\\e604\";\n}\n.pe-7s-user:before {\n\tcontent: \"\\e605\";\n}\n.pe-7s-upload:before {\n\tcontent: \"\\e606\";\n}\n.pe-7s-unlock:before {\n\tcontent: \"\\e607\";\n}\n.pe-7s-umbrella:before {\n\tcontent: \"\\e608\";\n}\n.pe-7s-trash:before {\n\tcontent: \"\\e609\";\n}\n.pe-7s-tools:before {\n\tcontent: \"\\e60a\";\n}\n.pe-7s-timer:before {\n\tcontent: \"\\e60b\";\n}\n.pe-7s-ticket:before {\n\tcontent: \"\\e60c\";\n}\n.pe-7s-target:before {\n\tcontent: \"\\e60d\";\n}\n.pe-7s-sun:before {\n\tcontent: \"\\e60e\";\n}\n.pe-7s-study:before {\n\tcontent: \"\\e60f\";\n}\n.pe-7s-stopwatch:before {\n\tcontent: \"\\e610\";\n}\n.pe-7s-star:before {\n\tcontent: \"\\e611\";\n}\n.pe-7s-speaker:before {\n\tcontent: \"\\e612\";\n}\n.pe-7s-signal:before {\n\tcontent: \"\\e613\";\n}\n.pe-7s-shuffle:before {\n\tcontent: \"\\e614\";\n}\n.pe-7s-shopbag:before {\n\tcontent: \"\\e615\";\n}\n.pe-7s-share:before {\n\tcontent: \"\\e616\";\n}\n.pe-7s-server:before {\n\tcontent: \"\\e617\";\n}\n.pe-7s-search:before {\n\tcontent: \"\\e618\";\n}\n.pe-7s-film:before {\n\tcontent: \"\\e6a5\";\n}\n.pe-7s-science:before {\n\tcontent: \"\\e619\";\n}\n.pe-7s-disk:before {\n\tcontent: \"\\e6a6\";\n}\n.pe-7s-ribbon:before {\n\tcontent: \"\\e61a\";\n}\n.pe-7s-repeat:before {\n\tcontent: \"\\e61b\";\n}\n.pe-7s-refresh:before {\n\tcontent: \"\\e61c\";\n}\n.pe-7s-add-user:before {\n\tcontent: \"\\e6a9\";\n}\n.pe-7s-refresh-cloud:before {\n\tcontent: \"\\e61d\";\n}\n.pe-7s-paperclip:before {\n\tcontent: \"\\e69c\";\n}\n.pe-7s-radio:before {\n\tcontent: \"\\e61e\";\n}\n.pe-7s-note2:before {\n\tcontent: \"\\e69d\";\n}\n.pe-7s-print:before {\n\tcontent: \"\\e61f\";\n}\n.pe-7s-network:before {\n\tcontent: \"\\e69e\";\n}\n.pe-7s-prev:before {\n\tcontent: \"\\e620\";\n}\n.pe-7s-mute:before {\n\tcontent: \"\\e69f\";\n}\n.pe-7s-power:before {\n\tcontent: \"\\e621\";\n}\n.pe-7s-medal:before {\n\tcontent: \"\\e6a0\";\n}\n.pe-7s-portfolio:before {\n\tcontent: \"\\e622\";\n}\n.pe-7s-like2:before {\n\tcontent: \"\\e6a1\";\n}\n.pe-7s-plus:before {\n\tcontent: \"\\e623\";\n}\n.pe-7s-left-arrow:before {\n\tcontent: \"\\e6a2\";\n}\n.pe-7s-play:before {\n\tcontent: \"\\e624\";\n}\n.pe-7s-key:before {\n\tcontent: \"\\e6a3\";\n}\n.pe-7s-plane:before {\n\tcontent: \"\\e625\";\n}\n.pe-7s-joy:before {\n\tcontent: \"\\e6a4\";\n}\n.pe-7s-photo-gallery:before {\n\tcontent: \"\\e626\";\n}\n.pe-7s-pin:before {\n\tcontent: \"\\e69b\";\n}\n.pe-7s-phone:before {\n\tcontent: \"\\e627\";\n}\n.pe-7s-plug:before {\n\tcontent: \"\\e69a\";\n}\n.pe-7s-pen:before {\n\tcontent: \"\\e628\";\n}\n.pe-7s-right-arrow:before {\n\tcontent: \"\\e699\";\n}\n.pe-7s-paper-plane:before {\n\tcontent: \"\\e629\";\n}\n.pe-7s-delete-user:before {\n\tcontent: \"\\e6a7\";\n}\n.pe-7s-paint:before {\n\tcontent: \"\\e62a\";\n}\n.pe-7s-bottom-arrow:before {\n\tcontent: \"\\e6a8\";\n}\n.pe-7s-notebook:before {\n\tcontent: \"\\e62b\";\n}\n.pe-7s-note:before {\n\tcontent: \"\\e62c\";\n}\n.pe-7s-next:before {\n\tcontent: \"\\e62d\";\n}\n.pe-7s-news-paper:before {\n\tcontent: \"\\e62e\";\n}\n.pe-7s-musiclist:before {\n\tcontent: \"\\e62f\";\n}\n.pe-7s-music:before {\n\tcontent: \"\\e630\";\n}\n.pe-7s-mouse:before {\n\tcontent: \"\\e631\";\n}\n.pe-7s-more:before {\n\tcontent: \"\\e632\";\n}\n.pe-7s-moon:before {\n\tcontent: \"\\e633\";\n}\n.pe-7s-monitor:before {\n\tcontent: \"\\e634\";\n}\n.pe-7s-micro:before {\n\tcontent: \"\\e635\";\n}\n.pe-7s-menu:before {\n\tcontent: \"\\e636\";\n}\n.pe-7s-map:before {\n\tcontent: \"\\e637\";\n}\n.pe-7s-map-marker:before {\n\tcontent: \"\\e638\";\n}\n.pe-7s-mail:before {\n\tcontent: \"\\e639\";\n}\n.pe-7s-mail-open:before {\n\tcontent: \"\\e63a\";\n}\n.pe-7s-mail-open-file:before {\n\tcontent: \"\\e63b\";\n}\n.pe-7s-magnet:before {\n\tcontent: \"\\e63c\";\n}\n.pe-7s-loop:before {\n\tcontent: \"\\e63d\";\n}\n.pe-7s-look:before {\n\tcontent: \"\\e63e\";\n}\n.pe-7s-lock:before {\n\tcontent: \"\\e63f\";\n}\n.pe-7s-lintern:before {\n\tcontent: \"\\e640\";\n}\n.pe-7s-link:before {\n\tcontent: \"\\e641\";\n}\n.pe-7s-like:before {\n\tcontent: \"\\e642\";\n}\n.pe-7s-light:before {\n\tcontent: \"\\e643\";\n}\n.pe-7s-less:before {\n\tcontent: \"\\e644\";\n}\n.pe-7s-keypad:before {\n\tcontent: \"\\e645\";\n}\n.pe-7s-junk:before {\n\tcontent: \"\\e646\";\n}\n.pe-7s-info:before {\n\tcontent: \"\\e647\";\n}\n.pe-7s-home:before {\n\tcontent: \"\\e648\";\n}\n.pe-7s-help2:before {\n\tcontent: \"\\e649\";\n}\n.pe-7s-help1:before {\n\tcontent: \"\\e64a\";\n}\n.pe-7s-graph3:before {\n\tcontent: \"\\e64b\";\n}\n.pe-7s-graph2:before {\n\tcontent: \"\\e64c\";\n}\n.pe-7s-graph1:before {\n\tcontent: \"\\e64d\";\n}\n.pe-7s-graph:before {\n\tcontent: \"\\e64e\";\n}\n.pe-7s-global:before {\n\tcontent: \"\\e64f\";\n}\n.pe-7s-gleam:before {\n\tcontent: \"\\e650\";\n}\n.pe-7s-glasses:before {\n\tcontent: \"\\e651\";\n}\n.pe-7s-gift:before {\n\tcontent: \"\\e652\";\n}\n.pe-7s-folder:before {\n\tcontent: \"\\e653\";\n}\n.pe-7s-flag:before {\n\tcontent: \"\\e654\";\n}\n.pe-7s-filter:before {\n\tcontent: \"\\e655\";\n}\n.pe-7s-file:before {\n\tcontent: \"\\e656\";\n}\n.pe-7s-expand1:before {\n\tcontent: \"\\e657\";\n}\n.pe-7s-exapnd2:before {\n\tcontent: \"\\e658\";\n}\n.pe-7s-edit:before {\n\tcontent: \"\\e659\";\n}\n.pe-7s-drop:before {\n\tcontent: \"\\e65a\";\n}\n.pe-7s-drawer:before {\n\tcontent: \"\\e65b\";\n}\n.pe-7s-download:before {\n\tcontent: \"\\e65c\";\n}\n.pe-7s-display2:before {\n\tcontent: \"\\e65d\";\n}\n.pe-7s-display1:before {\n\tcontent: \"\\e65e\";\n}\n.pe-7s-diskette:before {\n\tcontent: \"\\e65f\";\n}\n.pe-7s-date:before {\n\tcontent: \"\\e660\";\n}\n.pe-7s-cup:before {\n\tcontent: \"\\e661\";\n}\n.pe-7s-culture:before {\n\tcontent: \"\\e662\";\n}\n.pe-7s-crop:before {\n\tcontent: \"\\e663\";\n}\n.pe-7s-credit:before {\n\tcontent: \"\\e664\";\n}\n.pe-7s-copy-file:before {\n\tcontent: \"\\e665\";\n}\n.pe-7s-config:before {\n\tcontent: \"\\e666\";\n}\n.pe-7s-compass:before {\n\tcontent: \"\\e667\";\n}\n.pe-7s-comment:before {\n\tcontent: \"\\e668\";\n}\n.pe-7s-coffee:before {\n\tcontent: \"\\e669\";\n}\n.pe-7s-cloud:before {\n\tcontent: \"\\e66a\";\n}\n.pe-7s-clock:before {\n\tcontent: \"\\e66b\";\n}\n.pe-7s-check:before {\n\tcontent: \"\\e66c\";\n}\n.pe-7s-chat:before {\n\tcontent: \"\\e66d\";\n}\n.pe-7s-cart:before {\n\tcontent: \"\\e66e\";\n}\n.pe-7s-camera:before {\n\tcontent: \"\\e66f\";\n}\n.pe-7s-call:before {\n\tcontent: \"\\e670\";\n}\n.pe-7s-calculator:before {\n\tcontent: \"\\e671\";\n}\n.pe-7s-browser:before {\n\tcontent: \"\\e672\";\n}\n.pe-7s-box2:before {\n\tcontent: \"\\e673\";\n}\n.pe-7s-box1:before {\n\tcontent: \"\\e674\";\n}\n.pe-7s-bookmarks:before {\n\tcontent: \"\\e675\";\n}\n.pe-7s-bicycle:before {\n\tcontent: \"\\e676\";\n}\n.pe-7s-bell:before {\n\tcontent: \"\\e677\";\n}\n.pe-7s-battery:before {\n\tcontent: \"\\e678\";\n}\n.pe-7s-ball:before {\n\tcontent: \"\\e679\";\n}\n.pe-7s-back:before {\n\tcontent: \"\\e67a\";\n}\n.pe-7s-attention:before {\n\tcontent: \"\\e67b\";\n}\n.pe-7s-anchor:before {\n\tcontent: \"\\e67c\";\n}\n.pe-7s-albums:before {\n\tcontent: \"\\e67d\";\n}\n.pe-7s-alarm:before {\n\tcontent: \"\\e67e\";\n}\n.pe-7s-airplay:before {\n\tcontent: \"\\e67f\";\n}\n"
  },
  {
    "path": "public/static/home/assets/rotating-card/css/rotating-card.css",
    "content": "body {\n\tmargin-top: 60px;\n\tfont-size: 14px;\n\tfont-family: \"Helvetica Nueue\",Arial,Verdana,sans-serif;\n\tbackground-color: #E5E9ED;\n}\n.btn:hover,\n.btn:focus,\n.btn:active{\n    outline: 0 !important;\n}\n/* entire container, keeps perspective */\n.card-container {\n\t  -webkit-perspective: 800px;\n   -moz-perspective: 800px;\n     -o-perspective: 800px;\n        perspective: 800px;\n        margin-bottom: 30px;\n}\n/* flip the pane when hovered */\n.card-container:not(.manual-flip):hover .card,\n.card-container.hover.manual-flip .card{\n\t-webkit-transform: rotateY( 180deg );\n-moz-transform: rotateY( 180deg );\n -o-transform: rotateY( 180deg );\n    transform: rotateY( 180deg );\n}\n\n\n.card-container.static:hover .card,\n.card-container.static.hover .card {\n\t-webkit-transform: none;\n-moz-transform: none;\n -o-transform: none;\n    transform: none;\n}\n/* flip speed goes here */\n.card {\n\t -webkit-transition: -webkit-transform .5s;\n   -moz-transition: -moz-transform .5s;\n     -o-transition: -o-transform .5s;\n        transition: transform .5s;\n-webkit-transform-style: preserve-3d;\n   -moz-transform-style: preserve-3d;\n     -o-transform-style: preserve-3d;\n        transform-style: preserve-3d;\n\tposition: relative;\n}\n\n/* hide back of pane during swap */\n.front, .back {\n\t-webkit-backface-visibility: hidden;\n   -moz-backface-visibility: hidden;\n     -o-backface-visibility: hidden;\n        backface-visibility: hidden;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbackground-color: #FFF;\n    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.14);\n}\n\n/* front pane, placed above back */\n.front {\n\tz-index: 2;\n}\n\n/* back, initially hidden pane */\n.back {\n\t\t-webkit-transform: rotateY( 180deg );\n   -moz-transform: rotateY( 180deg );\n     -o-transform: rotateY( 180deg );\n        transform: rotateY( 180deg );\n        z-index: 3;\n}\n\n.back .btn-simple{\n    position: absolute;\n    left: 0;\n    bottom: 4px;\n}\n/*        Style       */\n\n\n.card{\n    background: none repeat scroll 0 0 #FFFFFF;\n    border-radius: 4px;\n    color: #444444;\n}\n.card-container, .front, .back {\n\twidth: 100%;\n\theight: 420px;\n\tborder-radius: 4px;\n}\n.card .cover{\n    height: 105px;\n    overflow: hidden;\n    border-radius: 4px 4px 0 0;\n}\n.card .cover img{\n    width: 100%;\n}\n.card .user{\n    border-radius: 50%;\n    display: block;\n    height: 120px;\n    margin: -55px auto 0;\n    overflow: hidden;\n    width: 120px;\n}\n.card .user img{\n    background: none repeat scroll 0 0 #FFFFFF;\n    border: 4px solid #FFFFFF;\n    width: 100%;\n}\n\n.card .content{\n    background-color: rgba(0, 0, 0, 0);\n    box-shadow: none;\n    padding: 10px 20px 20px;\n}\n.card .content .main {\n    min-height: 160px;\n}\n.card .back .content .main {\n    height: 215px;\n}\n.card .name {\n    font-size: 22px;\n    line-height: 28px;\n    margin: 10px 0 0;\n    text-align: center;\n    text-transform: capitalize;\n}\n.card h5{\n    margin: 5px 0;\n    font-weight: 400;\n    line-height: 20px;\n}\n.card .profession{\n    color: #999999;\n    text-align: center;\n    margin-bottom: 20px;\n}\n.card .footer {\n    border-top: 1px solid #EEEEEE;\n    color: #999999;\n    margin: 30px 0 0;\n    padding: 10px 0 0;\n    text-align: center;\n}\n.card .footer .social-links{\n    font-size: 18px;\n}\n.card .footer .social-links a{\n    margin: 0 7px;\n}\n.card .footer .btn-simple{\n    margin-top: -6px;\n}\n.card .header {\n    padding: 15px 20px;\n    height: 90px;\n}\n.card .motto{\n    border-bottom: 1px solid #EEEEEE;\n    color: #999999;\n    font-size: 14px;\n    font-weight: 400;\n    padding-bottom: 10px;\n    text-align: center;\n}\n\n.card .stats-container{\n\twidth: 100%;\n\tmargin-top: 50px;\n}\n.card .stats{\n\tdisplay: block;\n\tfloat: left;\n\twidth: 33.333333%;\n\ttext-align: center;\n}\n\n.card .stats:first-child{\n\tborder-right: 1px solid #EEEEEE;\n}\n.card .stats:last-child{\n\tborder-left: 1px solid #EEEEEE;\n}\n.card .stats h4{\n\tfont-weight: 300;\n\tmargin-bottom: 5px;\n}\n.card .stats p{\n\tcolor: #777777;\n}\n/*      Just for presentation        */\n\n.title{\n    color: #506A85;\n    text-align: center;\n    font-weight: 300;\n    font-size: 44px;\n    margin-bottom: 90px;\n    line-height: 90%;\n}\n.title small{\n    font-size: 17px;\n    color: #999;\n    text-transform: uppercase;\n    margin: 0;\n}\n.space-30{\n\theight: 30px;\n\tdisplay: block;\n}\n.space-50{\n    height: 50px;\n    display: block;\n}\n.space-200{\n    height: 200px;\n    display: block;\n}\n.white-board{\n    background-color: #FFFFFF;\n    min-height: 200px;\n    padding: 60px 60px 20px;\n}\n.ct-heart{\n    color: #F74933;\n}\n\n pre.prettyprint{\n    background-color: #ffffff;\n    border: 1px solid #999;\n    margin-top: 20px;\n    padding: 20px;\n    text-align: left;\n}\n.atv, .str{\n    color: #05AE0E;\n}\n.tag, .pln, .kwd{\n     color: #3472F7;\n}\n.atn{\n  color: #2C93FF;\n}\n.pln{\n   color: #333;\n}\n.com{\n    color: #999;\n}\n\n.btn-simple{\n    opacity: .8;\n    color: #666666;\n    background-color: transparent;\n}\n\n.btn-simple:hover,\n.btn-simple:focus{\n    background-color: transparent;\n    box-shadow: none;\n    opacity: 1;\n}\n.btn-simple i{\n    font-size: 16px;\n}\n\n.navbar-brand-logo{\n    padding: 0;\n}\n.navbar-brand-logo .logo{\n    border: 1px solid #333333;\n    border-radius: 50%;\n    float: left;\n    overflow: hidden;\n    width: 60px;\n}\n.navbar .navbar-brand-logo .brand{\n    color: #FFFFFF;\n    float: left;\n    font-size: 18px;\n    font-weight: 400;\n    line-height: 20px;\n    margin-left: 10px;\n    margin-top: 10px;\n    width: 60px;\n}\n.navbar-default .navbar-brand-logo .brand{\n    color: #555;\n}\n\n\n/*       Fix bug for IE      */\n\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n    .front, .back{\n        -ms-backface-visibility: visible;\n        backface-visibility: visible;\n    }\n\n    .back {\n        visibility: hidden;\n        -ms-transition: all 0.2s cubic-bezier(.92,.01,.83,.67);\n    }\n    .front{\n        z-index: 4;\n    }\n    .card-container:not(.manual-flip):hover .back,\n    .card-container.manual-flip.hover .back{\n        z-index: 5;\n        visibility: visible;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/rotating-card/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Rotating CSS Cards by Creative Tim </title>\n\n\t<meta charset=\"utf-8\" />\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n\n    <link href='css/bootstrap.css' rel='stylesheet' />\n\n    <link href=\"css/pe-icon-7-stroke.css\" rel=\"stylesheet\" />\n\n<!--     <link href='css/ct-navbar.css' rel='stylesheet' /> -->\n    <link href='css/rotating-card.css' rel='stylesheet' />\n\n    <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />\n\n    <link href=\"https://netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css\" rel=\"stylesheet\">\n\n    <script src=\"https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js\"></script>\n    <style>\n        body{\n            margin-top: 100px;\n        }\n        .navbar-default .navbar-nav > li > a{\n            padding: 15px 15px;\n            margin: 5px 0;\n        }\n\n        .navbar-default{\n            padding: 10px 0;\n            background-color: rgba(255, 255, 255, 0.95);\n            border-color: transparent;\n            box-shadow: 0 0px 13px rgba(0,0,0,.2);\n        }\n        .btn-info,\n        .btn-info:hover,\n        .btn-info:focus{\n            color: #FFF !important;\n            background-color: #00bbff !important;\n            border-color: #00bbff !important;\n        }\n\n        .btn-info{\n            opacity: .8;\n            transition: all 0.1s;\n            -webkit-transition: all 0.1s;\n        }\n        .btn-info:hover,\n        .btn-info:focus{\n            opacity: 1;\n        }\n    </style>\n</head>\n<div class=\"container\">\n    <nav class=\"navbar navbar-default navbar-fixed-top\" role=\"navigation\">\n\n      <div class=\"container\">\n        <!-- Brand and toggle get grouped for better mobile display -->\n        <div class=\"navbar-header\">\n          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#bs-example-navbar-collapse-1\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n          <a class=\"navbar-brand navbar-brand-logo\" href=\"https://www.creative-tim.com\">\n                <div class=\"logo\">\n                <img src=\"https://s3.amazonaws.com/creativetim_bucket/new_logo.png\">\n                </div>\n                <div class=\"brand\"> Creative Tim </div>\n          </a>\n        </div>\n        <!-- Collect the nav links, forms, and other content for toggling -->\n        <div class=\"collapse navbar-collapse\" id=\"bs-example-navbar-collapse-1\">\n          <ul class=\"nav navbar-nav navbar-right\">\n                <li>\n                    <a href=\"javascript:void(0)\" data-href=\"#howToUse\" class=\"scroll-down\">\n                       How to Use\n                    </a>\n                </li>\n                <li>\n                    <a class=\"btn btn-info\" href=\"https://www.creative-tim.com/product/rotating-css-card\" target=\"_blank\">\n                        Download, it's free!\n                    </a>\n                </li>\n           </ul>\n        </div><!-- /.navbar-collapse -->\n      </div><!-- /.container-fluid -->\n    </nav>\n\n    <div class=\"row\">\n        <h1 class=\"title\">\n            This is our awesome team\n            <br>\n            <small>Present your team in an interesting way</small>\n        </h1>\n        <div class=\"col-sm-10 col-sm-offset-1\">\n         <div class=\"col-md-4 col-sm-6\">\n             <div class=\"card-container\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb2.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile3.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">John Marvel</h3>\n                                <p class=\"profession\">CEO</p>\n                                <p class=\"text-center\">\"I'm the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <i class=\"fa fa-mail-forward\"></i> Auto Rotation\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col sm 3 -->\n<!--         <div class=\"col-sm-1\"></div> -->\n        <div class=\"col-md-4 col-sm-6\">\n             <div class=\"card-container manual-flip\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile2.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">Andrew Mike</h3>\n                                <p class=\"profession\">Web Developer</p>\n                                <p class=\"text-center\">\"Lamborghini Mercy <br>Your chick she so thirsty <br>I'm in that two seat Lambo\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <button class=\"btn btn-simple\" onclick=\"rotateCard(this)\">\n                                    <i class=\"fa fa-mail-forward\"></i> Manual Rotation\n                                </button>\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <button class=\"btn btn-simple\" rel=\"tooltip\" title=\"Flip Card\" onclick=\"rotateCard(this)\">\n                                <i class=\"fa fa-reply\"></i> Back\n                            </button>\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col sm 3 -->\n<!--         <div class=\"col-sm-1\"></div> -->\n        <div class=\"col-md-4 col-sm-6\">\n            <div class=\"card-container\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb3.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">Inna Corman</h3>\n                                <p class=\"profession\">Product Manager</p>\n\n                                <p class=\"text-center\">\"I'm the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <div class=\"rating\">\n                                    <i class=\"fa fa-mail-forward\"></i> Auto Rotation\n                                </div>\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col-sm-3 -->\n        </div> <!-- end col-sm-10 -->\n    </div> <!-- end row -->\n    <div class=\"space-200\"></div>\n</div>\n<div class=\"white-board\">\n   <div class=\"container\">\n        <br>\n        <h4>\n            If you want to use the rotating presentation cards you have to add to your project these files:\n        </h4>\n        <pre class=\"prettyprint\">\n        <br>\n              &lt;link href=&quot;css/bootstrap.css&quot; rel=&quot;stylesheet&quot; /&gt;\n              &lt;link href=&quot;css/rotating-card.css&quot; rel=&quot;stylesheet&quot; /&gt;\n              &lt;link href=&quot;https://netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css&quot; rel=&quot;stylesheet&quot; /&gt;\n        </pre>\n        <br>\n        <h4>\n            Here is the html code for one card:\n        </h4>\n        <pre class=\"prettyprint\">\n        <br>\n        &lt;div class=&quot;card-container&quot;&gt;\n         &lt;div class=&quot;card&quot;&gt;\n             &lt;div class=&quot;front&quot;&gt;\n                 &lt;div class=&quot;cover&quot;&gt;\n                     &lt;img src=&quot;images/rotating_card_thumb3.png&quot;/&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;user&quot;&gt;\n                     &lt;img class=&quot;img-circle&quot; src=&quot;images/rotating_card_profile.png&quot;/&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;content&quot;&gt;\n                     &lt;div class=&quot;main&quot;&gt;\n                         &lt;h3 class=&quot;name&quot;&gt;Inna Corman&lt;/h3&gt;\n                         &lt;p class=&quot;profession&quot;&gt;Product Manager&lt;/p&gt;\n\n                         &lt;p class=&quot;text-center&quot;&gt;&quot;I&#39;m the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere&quot;&lt;/p&gt;\n                     &lt;/div&gt;\n                     &lt;div class=&quot;footer&quot;&gt;\n                         &lt;div class=&quot;rating&quot;&gt;\n                             &lt;i class=&quot;fa fa-mail-forward&quot;&gt;&lt;/i&gt; Auto Rotation\n                         &lt;/div&gt;\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n             &lt;/div&gt; &lt;!-- end front panel --&gt;\n             &lt;div class=&quot;back&quot;&gt;\n                 &lt;div class=&quot;header&quot;&gt;\n                     &lt;h5 class=&quot;motto&quot;&gt;&quot;To be or not to be, this is my awesome motto!&quot;&lt;/h5&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;content&quot;&gt;\n                     &lt;div class=&quot;main&quot;&gt;\n                         &lt;h4 class=&quot;text-center&quot;&gt;Job Description&lt;/h4&gt;\n                         &lt;p class=&quot;text-center&quot;&gt;Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...&lt;/p&gt;\n\n                         &lt;div class=&quot;stats-container&quot;&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;235&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Followers\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;114&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Following\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;35&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Projects\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                         &lt;/div&gt;\n\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;footer&quot;&gt;\n                     &lt;div class=&quot;social-links text-center&quot;&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;facebook&quot;&gt;&lt;i class=&quot;fa fa-facebook fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;google&quot;&gt;&lt;i class=&quot;fa fa-google-plus fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;twitter&quot;&gt;&lt;i class=&quot;fa fa-twitter fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n             &lt;/div&gt; &lt;!-- end back panel --&gt;\n         &lt;/div&gt; &lt;!-- end card --&gt;\n     &lt;/div&gt; &lt;!-- end card-container --&gt;\n\n        </pre>\n        <div class=\"space-50\"></div>\n    <div class=\"row\">\n        <div class=\"col-sm-4\"></div>\n        <div class=\"col-sm-4\">\n            <a href=\"https://creative-tim.com/product/rotating-css-card\" class=\"btn btn-info btn-lg btn-block\">Download</a>\n        </div>\n        <div class=\"col-sm-4\"></div>\n    </div>\n    <div class=\"space-50\"></div>\n    <p class=\"text-center\">Copyright &copy; 2015 <a href=\"https://creative-tim.com\">Creative Tim</a>, made with <i class=\"fa fa-heart ct-heart\"></i> for a better web.</p>\n   </div>\n</div>\n\n\n<script src=\"js/jquery-1.10.2.js\" type=\"text/javascript\"></script>\n<script src=\"js/bootstrap.min.js\" type=\"text/javascript\"></script>\n\n<script type=\"text/javascript\">\n    $().ready(function(){\n        $('[rel=\"tooltip\"]').tooltip();\n\n        $('a.scroll-down').click(function(e){\n            e.preventDefault();\n            scroll_target = $(this).data('href');\n             $('html, body').animate({\n                 scrollTop: $(scroll_target).offset().top - 60\n             }, 1000);\n        });\n\n    });\n\n    function rotateCard(btn){\n        var $card = $(btn).closest('.card-container');\n        console.log($card);\n        if($card.hasClass('hover')){\n            $card.removeClass('hover');\n        } else {\n            $card.addClass('hover');\n        }\n    }\n\n\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "public/static/home/assets/rotating-card/js/jquery-1.10.2.js",
    "content": "/*!\n * jQuery JavaScript Library v1.10.2\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2013-07-03T13:48Z\n */\n(function( window, undefined ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\"use strict\";\nvar\n\t// The deferred used on DOM ready\n\treadyList,\n\n\t// A central reference to the root jQuery(document)\n\trootjQuery,\n\n\t// Support: IE<10\n\t// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`\n\tcore_strundefined = typeof undefined,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tlocation = window.location,\n\tdocument = window.document,\n\tdocElem = document.documentElement,\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$,\n\n\t// [[Class]] -> type pairs\n\tclass2type = {},\n\n\t// List of deleted data cache ids, so we can reuse them\n\tcore_deletedIds = [],\n\n\tcore_version = \"1.10.2\",\n\n\t// Save a reference to some core methods\n\tcore_concat = core_deletedIds.concat,\n\tcore_push = core_deletedIds.push,\n\tcore_slice = core_deletedIds.slice,\n\tcore_indexOf = core_deletedIds.indexOf,\n\tcore_toString = class2type.toString,\n\tcore_hasOwn = class2type.hasOwnProperty,\n\tcore_trim = core_version.trim,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\treturn new jQuery.fn.init( selector, context, rootjQuery );\n\t},\n\n\t// Used for matching numbers\n\tcore_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\n\n\t// Used for splitting on whitespace\n\tcore_rnotwhite = /\\S+/g,\n\n\t// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\t// Match a standalone tag\n\trsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n\n\t// JSON RegExp\n\trvalidchars = /^[\\],:{}\\s]*$/,\n\trvalidbraces = /(?:^|:|,)(?:\\s*\\[)+/g,\n\trvalidescape = /\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,\n\trvalidtokens = /\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d+\\.|)\\d+(?:[eE][+-]?\\d+|)/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t},\n\n\t// The ready event handler\n\tcompleted = function( event ) {\n\n\t\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\t\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\t\tdetach();\n\t\t\tjQuery.ready();\n\t\t}\n\t},\n\t// Clean-up method for dom ready events\n\tdetach = function() {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t\t} else {\n\t\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\t\twindow.detachEvent( \"onload\", completed );\n\t\t}\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: core_version,\n\n\tconstructor: jQuery,\n\tinit: function( selector, context, rootjQuery ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn rootjQuery.ready( selector );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t},\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn core_slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num == null ?\n\n\t\t\t// Return a 'clean' array\n\t\t\tthis.toArray() :\n\n\t\t\t// Return just the object\n\t\t\t( num < 0 ? this[ this.length + num ] : this[ num ] );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tready: function( fn ) {\n\t\t// Add the callback\n\t\tjQuery.ready.promise().done( fn );\n\n\t\treturn this;\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( core_slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: core_push,\n\tsort: [].sort,\n\tsplice: [].splice\n};\n\n// Give the init function the jQuery prototype for later instantiation\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( length === i ) {\n\t\ttarget = this;\n\t\t--i;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\t// Non-digits removed to match rinlinejQuery\n\texpando: \"jQuery\" + ( core_version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\tnoConflict: function( deep ) {\n\t\tif ( window.$ === jQuery ) {\n\t\t\twindow.$ = _$;\n\t\t}\n\n\t\tif ( deep && window.jQuery === jQuery ) {\n\t\t\twindow.jQuery = _jQuery;\n\t\t}\n\n\t\treturn jQuery;\n\t},\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.trigger ) {\n\t\t\tjQuery( document ).trigger(\"ready\").off(\"ready\");\n\t\t}\n\t},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\treturn !isNaN( parseFloat(obj) ) && isFinite( obj );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn String( obj );\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ core_toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!core_hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!core_hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( jQuery.support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn core_hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || core_hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\t// data: string of html\n\t// context (optional): If specified, the fragment will be created in this context, defaults to document\n\t// keepScripts (optional): If true, will include scripts passed in the html string\n\tparseHTML: function( data, context, keepScripts ) {\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof context === \"boolean\" ) {\n\t\t\tkeepScripts = context;\n\t\t\tcontext = false;\n\t\t}\n\t\tcontext = context || document;\n\n\t\tvar parsed = rsingleTag.exec( data ),\n\t\t\tscripts = !keepScripts && [];\n\n\t\t// Single tag\n\t\tif ( parsed ) {\n\t\t\treturn [ context.createElement( parsed[1] ) ];\n\t\t}\n\n\t\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\t\tif ( scripts ) {\n\t\t\tjQuery( scripts ).remove();\n\t\t}\n\t\treturn jQuery.merge( [], parsed.childNodes );\n\t},\n\n\tparseJSON: function( data ) {\n\t\t// Attempt to parse using the native JSON parser first\n\t\tif ( window.JSON && window.JSON.parse ) {\n\t\t\treturn window.JSON.parse( data );\n\t\t}\n\n\t\tif ( data === null ) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif ( typeof data === \"string\" ) {\n\n\t\t\t// Make sure leading/trailing whitespace is removed (IE can't handle it)\n\t\t\tdata = jQuery.trim( data );\n\n\t\t\tif ( data ) {\n\t\t\t\t// Make sure the incoming data is actual JSON\n\t\t\t\t// Logic borrowed from https://json.org/json2.js\n\t\t\t\tif ( rvalidchars.test( data.replace( rvalidescape, \"@\" )\n\t\t\t\t\t.replace( rvalidtokens, \"]\" )\n\t\t\t\t\t.replace( rvalidbraces, \"\")) ) {\n\n\t\t\t\t\treturn ( new Function( \"return \" + data ) )();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n\t},\n\n\t// Cross-browser xml parsing\n\tparseXML: function( data ) {\n\t\tvar xml, tmp;\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\ttry {\n\t\t\tif ( window.DOMParser ) { // Standard\n\t\t\t\ttmp = new DOMParser();\n\t\t\t\txml = tmp.parseFromString( data , \"text/xml\" );\n\t\t\t} else { // IE\n\t\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\t\txml.async = \"false\";\n\t\t\t\txml.loadXML( data );\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\txml = undefined;\n\t\t}\n\t\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\t\tjQuery.error( \"Invalid XML: \" + data );\n\t\t}\n\t\treturn xml;\n\t},\n\n\tnoop: function() {},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// https://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Use native String.trim function wherever possible\n\ttrim: core_trim && !core_trim.call(\"\\uFEFF\\xA0\") ?\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\tcore_trim.call( text );\n\t\t} :\n\n\t\t// Otherwise use our own trimming functionality\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcore_push.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( core_indexOf ) {\n\t\t\t\treturn core_indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar l = second.length,\n\t\t\ti = first.length,\n\t\t\tj = 0;\n\n\t\tif ( typeof l === \"number\" ) {\n\t\t\tfor ( ; j < l; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, inv ) {\n\t\tvar retVal,\n\t\t\tret = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length;\n\t\tinv = !!inv;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tretVal = !!callback( elems[ i ], i );\n\t\t\tif ( inv !== retVal ) {\n\t\t\t\tret.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn core_concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = core_slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\t// Multifunctional method to get and set values of a collection\n\t// The value/s can optionally be executed if it's a function\n\taccess: function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\t\tvar i = 0,\n\t\t\tlength = elems.length,\n\t\t\tbulk = key == null;\n\n\t\t// Sets many values\n\t\tif ( jQuery.type( key ) === \"object\" ) {\n\t\t\tchainable = true;\n\t\t\tfor ( i in key ) {\n\t\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t\t}\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\tchainable = true;\n\n\t\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\t\traw = true;\n\t\t\t}\n\n\t\t\tif ( bulk ) {\n\t\t\t\t// Bulk operations run against the entire set\n\t\t\t\tif ( raw ) {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\n\t\t\t\t// ...except when executing function values\n\t\t\t\t} else {\n\t\t\t\t\tbulk = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn chainable ?\n\t\t\telems :\n\n\t\t\t// Gets\n\t\t\tbulk ?\n\t\t\t\tfn.call( elems ) :\n\t\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n\t},\n\n\tnow: function() {\n\t\treturn ( new Date() ).getTime();\n\t},\n\n\t// A method for quickly swapping in/out CSS properties to get correct calculations.\n\t// Note: this method belongs to the css module but it's needed here for the support module.\n\t// If support gets modularized, this method should be moved back to the css module.\n\tswap: function( elem, options, callback, args ) {\n\t\tvar ret, name,\n\t\t\told = {};\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor ( name in options ) {\n\t\t\told[ name ] = elem.style[ name ];\n\t\t\telem.style[ name ] = options[ name ];\n\t\t}\n\n\t\tret = callback.apply( elem, args || [] );\n\n\t\t// Revert the old values\n\t\tfor ( name in options ) {\n\t\t\telem.style[ name ] = old[ name ];\n\t\t}\n\n\t\treturn ret;\n\t}\n});\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: https://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// https://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || type !== \"function\" &&\n\t\t( length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj );\n}\n\n// All jQuery objects should point back to these\nrootjQuery = jQuery(document);\n/*!\n * Sizzle CSS Selector Engine v1.10.2\n * https://sizzlejs.com/\n *\n * Copyright 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2013-07-03\n */\n(function( window, undefined ) {\n\nvar i,\n\tsupport,\n\tcachedruns,\n\tExpr,\n\tgetText,\n\tisXML,\n\tcompile,\n\toutermostContext,\n\tsortInput,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + -(new Date()),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\thasDuplicate = false,\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tstrundefined = typeof undefined,\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf if we can't use a native one\n\tindexOf = arr.indexOf || function( elem ) {\n\t\tvar i = 0,\n\t\t\tlen = this.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( this[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters https://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// https://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier https://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Acceptable operators https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")\" + whitespace +\n\t\t\"*(?:([*^$|!~]?=)\" + whitespace + \"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\" + identifier + \")|)|)\" + whitespace + \"*\\\\]\",\n\n\t// Prefer arguments quoted,\n\t//   then not containing pseudos/brackets,\n\t//   then attribute selectors/non-parenthetical expressions,\n\t//   then anything else\n\t// These preferences are here to reduce the number of selectors\n\t//   needing tokenize in the PSEUDO preFilter\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes.replace( 3, 8 ) + \")*)|.*)\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trsibling = new RegExp( whitespace + \"*[+~]\" ),\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\t// BMP codepoint\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\n\tif ( !selector || typeof selector !== \"string\" ) {\n\t\treturn results;\n\t}\n\n\tif ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {\n\t\treturn [];\n\t}\n\n\tif ( documentIsHTML && !seed ) {\n\n\t\t// Shortcuts\n\t\tif ( (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType === 9 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && context.parentNode || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key += \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect xml\n * @param {Element|Object} elem An element or a document\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar doc = node ? node.ownerDocument || node : preferredDoc,\n\t\tparent = doc.defaultView;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\n\t// Support tests\n\tdocumentIsHTML = !isXML( doc );\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent.attachEvent && parent !== parent.top ) {\n\t\tparent.attachEvent( \"onbeforeunload\", function() {\n\t\t\tsetDocument();\n\t\t});\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Check if getElementsByClassName can be trusted\n\tsupport.getElementsByClassName = assert(function( div ) {\n\t\tdiv.innerHTML = \"<div class='a'></div><div class='a i'></div>\";\n\n\t\t// Support: Safari<4\n\t\t// Catch class over-caching\n\t\tdiv.firstChild.className = \"i\";\n\t\t// Support: Opera<10\n\t\t// Catch gEBCN failure to find non-leading classes\n\t\treturn div.getElementsByClassName(\"i\").length === 2;\n\t});\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== strundefined && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [m] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== strundefined ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\t\t\t}\n\t\t} :\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdiv.innerHTML = \"<select><option selected=''></option></select>\";\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\n\t\t\t// Support: Opera 10-12/IE8\n\t\t\t// ^= $= *= and empty values\n\t\t\t// Should not select anything\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type attribute is restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"t\", \"\" );\n\n\t\t\tif ( div.querySelectorAll(\"[t^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = docElem.compareDocumentPosition ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );\n\n\t\tif ( compare ) {\n\t\t\t// Disconnected nodes\n\t\t\tif ( compare & 1 ||\n\t\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t\tif ( a === doc || contains(preferredDoc, a) ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( b === doc || contains(preferredDoc, b) ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\t// Maintain original order\n\t\t\t\treturn sortInput ?\n\t\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t\t0;\n\t\t\t}\n\n\t\t\treturn compare & 4 ? -1 : 1;\n\t\t}\n\n\t\t// Not directly comparable, sort on existence of method\n\t\treturn a.compareDocumentPosition ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\t} else if ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch(e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [elem] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val === undefined ?\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull :\n\t\tval;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\tfor ( ; (node = elem[i]); i++ ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (see #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[5] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] && match[4] !== undefined ) {\n\t\t\t\tmatch[2] = match[4];\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\n\t\t\t//   not comment, processing instructions, or others\n\t\t\t// Thanks to Diego Perini for the nodeName shortcut\n\t\t\t//   Greater than \"@\" means alpha characters (specifically not starting with \"#\" or \"?\")\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeName > \"@\" || elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\t// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\n\t\t\t// use getAttribute instead to test this case\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === elem.type );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( tokens = [] );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar data, cache, outerCache,\n\t\t\t\tdirkey = dirruns + \" \" + doneName;\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {\n\t\t\t\t\t\t\tif ( (data = cache[1]) === true || data === cachedruns ) {\n\t\t\t\t\t\t\t\treturn data === true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcache = outerCache[ dir ] = [ dirkey ];\n\t\t\t\t\t\t\tcache[1] = matcher( elem, context, xml ) || cachedruns;\n\t\t\t\t\t\t\tif ( cache[1] === true ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\treturn ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\t// A counter to specify which element is currently being matched\n\tvar matcherCachedRuns = 0,\n\t\tbySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, expandContext ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tsetMatched = [],\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\toutermost = expandContext != null,\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", expandContext && context.parentNode || context ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t\tcachedruns = matcherCachedRuns;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t\tcachedruns = ++matcherCachedRuns;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !group ) {\n\t\t\tgroup = tokenize( selector );\n\t\t}\n\t\ti = group.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( group[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\t}\n\treturn cached;\n};\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tmatch = tokenize( selector );\n\n\tif ( !seed ) {\n\t\t// Try to minimize operations if there is only one group\n\t\tif ( match.length === 1 ) {\n\n\t\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\t\ttokens = match[0] = match[0].slice( 0 );\n\t\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t\t}\n\n\t\t\t// Fetch a seed set for right-to-left matching\n\t\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\ttoken = tokens[i];\n\n\t\t\t\t// Abort if we hit a combinator\n\t\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\t\tif ( (seed = find(\n\t\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\t\trsibling.test( tokens[0].type ) && context.parentNode || context\n\t\t\t\t\t)) ) {\n\n\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\tcompile( selector, match )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector )\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome<14\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn (val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\telem[ name ] === true ? name.toLowerCase() : null;\n\t\t}\n\t});\n}\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n})( window );\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar action = tuple[ 0 ],\n\t\t\t\t\t\t\t\tfn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ action + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = core_slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;\n\t\t\t\t\tif( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\njQuery.support = (function( support ) {\n\n\tvar all, a, input, select, fragment, opt, eventName, isSupported, i,\n\t\tdiv = document.createElement(\"div\");\n\n\t// Setup\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\n\t// Finish early in limited (non-browser) environments\n\tall = div.getElementsByTagName(\"*\") || [];\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\tif ( !a || !a.style || !all.length ) {\n\t\treturn support;\n\t}\n\n\t// First batch of tests\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px;float:left;opacity:.5\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName(\"tbody\").length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName(\"link\").length;\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Make sure that element opacity exists\n\t// (IE uses filter instead)\n\t// Use a regex to work around a WebKit issue. See #5145\n\tsupport.opacity = /^0.5/.test( a.style.opacity );\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!a.style.cssFloat;\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone = document.createElement(\"nav\").cloneNode( true ).outerHTML !== \"<:nav></:nav>\";\n\n\t// Will be defined later\n\tsupport.inlineBlockNeedsLayout = false;\n\tsupport.shrinkWrapBlocks = false;\n\tsupport.pixelPosition = false;\n\tsupport.deleteExpando = true;\n\tsupport.noCloneEvent = true;\n\tsupport.reliableMarginRight = true;\n\tsupport.boxSizingReliable = true;\n\n\t// Make sure checked status is properly cloned\n\tinput.checked = true;\n\tsupport.noCloneChecked = input.cloneNode( true ).checked;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<9\n\ttry {\n\t\tdelete div.test;\n\t} catch( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement(\"input\");\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tinput.setAttribute( \"checked\", \"t\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tfragment = document.createDocumentFragment();\n\tfragment.appendChild( input );\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tsupport.appendChecked = input.checked;\n\n\t// WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)\n\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\tdiv.setAttribute( eventName = \"on\" + i, \"t\" );\n\n\t\tsupport[ i + \"Bubbles\" ] = eventName in window || div.attributes[ eventName ].expando === false;\n\t}\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: IE<9\n\t// Iteration over object's inherited properties before its own.\n\tfor ( i in jQuery( support ) ) {\n\t\tbreak;\n\t}\n\tsupport.ownLast = i !== \"0\";\n\n\t// Run tests that need a body at doc ready\n\tjQuery(function() {\n\t\tvar container, marginDiv, tds,\n\t\t\tdivReset = \"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;\",\n\t\t\tbody = document.getElementsByTagName(\"body\")[0];\n\n\t\tif ( !body ) {\n\t\t\t// Return for frameset docs that don't have a body\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer = document.createElement(\"div\");\n\t\tcontainer.style.cssText = \"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\";\n\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"<table><tr><td></td><td>t</td></tr></table>\";\n\t\ttds = div.getElementsByTagName(\"td\");\n\t\ttds[ 0 ].style.cssText = \"padding:0;margin:0;border:0;display:none\";\n\t\tisSupported = ( tds[ 0 ].offsetHeight === 0 );\n\n\t\ttds[ 0 ].style.display = \"\";\n\t\ttds[ 1 ].style.display = \"none\";\n\n\t\t// Support: IE8\n\t\t// Check if empty table cells still have offsetWidth/Height\n\t\tsupport.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );\n\n\t\t// Check box-sizing and margin behavior.\n\t\tdiv.innerHTML = \"\";\n\t\tdiv.style.cssText = \"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\";\n\n\t\t// Workaround failing boxSizing test due to offsetWidth returning wrong value\n\t\t// with some non-1 values of body zoom, ticket #13543\n\t\tjQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {\n\t\t\tsupport.boxSizing = div.offsetWidth === 4;\n\t\t});\n\n\t\t// Use window.getComputedStyle because jsdom on node.js will break without it.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tsupport.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tsupport.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// Fails in WebKit before Feb 2011 nightlies\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tmarginDiv = div.appendChild( document.createElement(\"div\") );\n\t\t\tmarginDiv.style.cssText = div.style.cssText = divReset;\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\tsupport.reliableMarginRight =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );\n\t\t}\n\n\t\tif ( typeof div.style.zoom !== core_strundefined ) {\n\t\t\t// Support: IE<8\n\t\t\t// Check if natively block-level elements act like inline-block\n\t\t\t// elements when setting their display to 'inline' and giving\n\t\t\t// them layout\n\t\t\tdiv.innerHTML = \"\";\n\t\t\tdiv.style.cssText = divReset + \"width:1px;padding:1px;display:inline;zoom:1\";\n\t\t\tsupport.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );\n\n\t\t\t// Support: IE6\n\t\t\t// Check if elements with layout shrink-wrap their children\n\t\t\tdiv.style.display = \"block\";\n\t\t\tdiv.innerHTML = \"<div></div>\";\n\t\t\tdiv.firstChild.style.width = \"5px\";\n\t\t\tsupport.shrinkWrapBlocks = ( div.offsetWidth !== 3 );\n\n\t\t\tif ( support.inlineBlockNeedsLayout ) {\n\t\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t\t// Support: IE<8\n\t\t\t\tbody.style.zoom = 1;\n\t\t\t}\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\t// Null elements to avoid leaks in IE\n\t\tcontainer = div = tds = marginDiv = null;\n\t});\n\n\t// Null elements to avoid leaks in IE\n\tall = select = fragment = opt = a = input = null;\n\n\treturn support;\n})({});\n\nvar rbrace = /(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ){\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( jQuery.support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements throw uncatchable exceptions if you\n\t// attempt to add expando properties to them.\n\tnoData: {\n\t\t\"applet\": true,\n\t\t\"embed\": true,\n\t\t// Ban all objects except for Flash (which handle expandos)\n\t\t\"object\": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t},\n\n\t// A method for determining if a DOM node can handle the data expando\n\tacceptData: function( elem ) {\n\t\t// Do not set data on non-element because it will not be cleared (#8335).\n\t\tif ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];\n\n\t\t// nodes accept data unless otherwise specified; rejection can be conditional\n\t\treturn !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar attrs, name,\n\t\t\tdata = null,\n\t\t\ti = 0,\n\t\t\telem = this[0];\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\tattrs = elem.attributes;\n\t\t\t\t\tfor ( ; i < attrs.length; i++ ) {\n\t\t\t\t\t\tname = attrs[i].name;\n\n\t\t\t\t\t\tif ( name.indexOf(\"data-\") === 0 ) {\n\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\n\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// https://blindsignals.com/index.php/2009/07/jquery-delay/\n\tdelay: function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || \"fx\";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar nodeHook, boolHook,\n\trclass = /[\\t\\r\\n\\f]/g,\n\trreturn = /\\r/g,\n\trfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = jQuery.support.getSetAttribute,\n\tgetSetInput = jQuery.support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t},\n\n\tprop: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t},\n\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = jQuery.trim( cur );\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( core_rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === core_strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tval: function( value ) {\n\t\tvar ret, hooks, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map(val, function ( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// Use proper attribute retrieval(#6932, #12072)\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\telem.text;\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( jQuery.support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t},\n\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === core_strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( core_rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !jQuery.support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// https://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;\n\n\tjQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar fn = jQuery.expr.attrHandle[ name ],\n\t\t\t\tret = isXML ?\n\t\t\t\t\tundefined :\n\t\t\t\t\t/* jshint eqeqeq: false */\n\t\t\t\t\t(jQuery.expr.attrHandle[ name ] = undefined) !=\n\t\t\t\t\t\tgetter( elem, name, isXML ) ?\n\n\t\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\t\tnull;\n\t\t\tjQuery.expr.attrHandle[ name ] = fn;\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\treturn name === \"value\" || value === elem.getAttribute( name ) ?\n\t\t\t\tvalue :\n\t\t\t\tundefined;\n\t\t}\n\t};\n\tjQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =\n\t\t// Some attributes are constructed with empty-string values when not defined\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\t(ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t};\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\treturn ret && ret.specified ?\n\t\t\t\tret.value :\n\t\t\t\tundefined;\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\n\n// Some attributes require a special call on IE\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !jQuery.support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !jQuery.support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n// Safari mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !jQuery.support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !jQuery.support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !jQuery.support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = core_hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = core_hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = core_slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Even when returnValue equals to undefined Firefox will still show alert\n\t\t\t\tif ( event.result !== undefined ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === core_strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||\n\t\t\tsrc.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !jQuery.support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !jQuery.support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !jQuery.support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler while someone wants focusin/focusout\n\t\tvar attaches = 0,\n\t\t\thandler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tif ( attaches++ === 0 ) {\n\t\t\t\t\tdocument.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( --attaches === 0 ) {\n\t\t\t\t\tdocument.removeEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\nvar isSimple = /^.[^:#\\[\\.,]*$/,\n\trparentsprev = /^(?:parents|prev(?:Until|All))/,\n\trneedsContext = jQuery.expr.match.needsContext,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tret = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tcur = ret.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\tvar set = typeof selector === \"string\" ?\n\t\t\t\tjQuery( selector, context ) :\n\t\t\t\tjQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),\n\t\t\tall = jQuery.merge( this.get(), set );\n\n\t\treturn this.pushStack( jQuery.unique(all) );\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\njQuery.extend({\n\tfilter: function( expr, elems, not ) {\n\t\tvar elem = elems[ 0 ];\n\n\t\tif ( not ) {\n\t\t\texpr = \":not(\" + expr + \")\";\n\t\t}\n\n\t\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\t\treturn elem.nodeType === 1;\n\t\t\t}));\n\t},\n\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( isSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /<tbody/i,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\tmanipulation_rcheckableType = /^(?:checkbox|radio)$/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\t\tlegend: [ 1, \"<fieldset>\", \"</fieldset>\" ],\n\t\tarea: [ 1, \"<map>\", \"</map>\" ],\n\t\tparam: [ 1, \"<object>\", \"</object>\" ],\n\t\tthead: [ 1, \"<table>\", \"</table>\" ],\n\t\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\t\tcol: [ 2, \"<table><tbody></tbody><colgroup>\", \"</colgroup></table>\" ],\n\t\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: jQuery.support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X<div>\", \"</div>\"  ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\t// keepData is for internal use only--do not document\n\tremove: function( selector, keepData ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function () {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\tvar elem = this[0] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&\n\t\t\t\t( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [\"\", \"\"] )[1].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1></$2>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar\n\t\t\t// Snapshot the DOM in case .domManip sweeps something relevant into its fragment\n\t\t\targs = jQuery.map( this, function( elem ) {\n\t\t\t\treturn [ elem.nextSibling, elem.parentNode ];\n\t\t\t}),\n\t\t\ti = 0;\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\tvar next = args[ i++ ],\n\t\t\t\tparent = args[ i++ ];\n\n\t\t\tif ( parent ) {\n\t\t\t\t// Don't use the snapshot next if it has moved (#13810)\n\t\t\t\tif ( next && next.parentNode !== parent ) {\n\t\t\t\t\tnext = this.nextSibling;\n\t\t\t\t}\n\t\t\t\tjQuery( this ).remove();\n\t\t\t\tparent.insertBefore( elem, next );\n\t\t\t}\n\t\t// Allow new content to include elements from the context set\n\t\t}, true );\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn i ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback, allowIntersection ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = core_concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction || !( l <= 1 || typeof value !== \"string\" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback, allowIntersection );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Hope ajax is available...\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && manipulation_rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tcore_push.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( manipulation_rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [\"\", \"\"] )[1].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1></$2>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted <tbody> from table fragments\n\t\t\t\t\tif ( !jQuery.support.tbody ) {\n\n\t\t\t\t\t\t// String was a <table>, *may* have spurious <tbody>\n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare <thead> or <tfoot>\n\t\t\t\t\t\t\twrap[1] === \"<table>\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !jQuery.support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = jQuery.support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== core_strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcore_deletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_evalUrl: function( url ) {\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: \"GET\",\n\t\t\tdataType: \"script\",\n\t\t\tasync: false,\n\t\t\tglobal: false,\n\t\t\t\"throws\": true\n\t\t});\n\t}\n});\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\nvar iframe, getStyles, curCSS,\n\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\trposition = /^(top|right|bottom|left)$/,\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trmargin = /^margin/,\n\trnumsplit = new RegExp( \"^(\" + core_pnum + \")(.*)$\", \"i\" ),\n\trnumnonpx = new RegExp( \"^(\" + core_pnum + \")(?!px)[a-z%]+$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + core_pnum + \")\", \"i\" ),\n\telemdisplay = { BODY: \"block\" },\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: 0,\n\t\tfontWeight: 400\n\t},\n\n\tcssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ],\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction isHidden( elem, el ) {\n\t// isHidden might be called from jQuery#filter function;\n\t// in that case, element will be second argument\n\telem = el || elem;\n\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", css_defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\n\t\t\tif ( !values[ index ] ) {\n\t\t\t\thidden = isHidden( elem );\n\n\t\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn jQuery.access( this, function( elem, name, value ) {\n\t\t\tvar len, styles,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": jQuery.support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that NaN and null values aren't set. See: #7116\n\t\t\tif ( value == null || type === \"number\" && isNaN( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !jQuery.support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Wrapped to prevent IE from throwing errors when 'invalid' values are provided\n\t\t\t\t// Fixes bug #5509\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\n// NOTE: we've included the \"window\" in window.getComputedStyle\n// because jsdom on node.js will break without it.\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar width, minWidth, maxWidth,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\n\t\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: https://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar left, rs, rsLeft,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\t\t\tret = computed ? computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// https://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\treturn ret === \"\" ? \"auto\" : ret;\n\t};\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\n// Try to determine the default display value of an element\nfunction css_defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe ||\n\t\t\t\tjQuery(\"<iframe frameborder='0' width='0' height='0'/>\")\n\t\t\t\t.css( \"cssText\", \"display:block !important\" )\n\t\t\t).appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;\n\t\t\tdoc.write(\"<!doctype html><html><body>\");\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\n\n// Called ONLY from within css_defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\t\tdisplay = jQuery.css( elem[0], \"display\" );\n\telem.remove();\n\treturn display;\n}\n\njQuery.each([ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\t\t\t\t// certain elements can have dimension info if we invisibly show them\n\t\t\t\t// however, it must have a current display style that would benefit from this\n\t\t\t\treturn elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, \"display\" ) ) ?\n\t\t\t\t\tjQuery.swap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t}) :\n\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar styles = extra && getStyles( elem );\n\t\t\treturn setPositiveNumber( elem, value, extra ?\n\t\t\t\taugmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t) : 0\n\t\t\t);\n\t\t}\n\t};\n});\n\nif ( !jQuery.support.opacity ) {\n\tjQuery.cssHooks.opacity = {\n\t\tget: function( elem, computed ) {\n\t\t\t// IE uses filters for opacity\n\t\t\treturn ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || \"\" ) ?\n\t\t\t\t( 0.01 * parseFloat( RegExp.$1 ) ) + \"\" :\n\t\t\t\tcomputed ? \"1\" : \"\";\n\t\t},\n\n\t\tset: function( elem, value ) {\n\t\t\tvar style = elem.style,\n\t\t\t\tcurrentStyle = elem.currentStyle,\n\t\t\t\topacity = jQuery.isNumeric( value ) ? \"alpha(opacity=\" + value * 100 + \")\" : \"\",\n\t\t\t\tfilter = currentStyle && currentStyle.filter || style.filter || \"\";\n\n\t\t\t// IE has trouble with opacity if it does not have layout\n\t\t\t// Force it by setting the zoom level\n\t\t\tstyle.zoom = 1;\n\n\t\t\t// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652\n\t\t\t// if value === \"\", then remove inline opacity #12685\n\t\t\tif ( ( value >= 1 || value === \"\" ) &&\n\t\t\t\t\tjQuery.trim( filter.replace( ralpha, \"\" ) ) === \"\" &&\n\t\t\t\t\tstyle.removeAttribute ) {\n\n\t\t\t\t// Setting style.filter to null, \"\" & \" \" still leave \"filter:\" in the cssText\n\t\t\t\t// if \"filter:\" is present at all, clearType is disabled, we want to avoid this\n\t\t\t\t// style.removeAttribute is IE Only, but so apparently is this code path...\n\t\t\t\tstyle.removeAttribute( \"filter\" );\n\n\t\t\t\t// if there is no filter style applied in a css rule or unset inline opacity, we are done\n\t\t\t\tif ( value === \"\" || currentStyle && !currentStyle.filter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// otherwise, set new filter values\n\t\t\tstyle.filter = ralpha.test( filter ) ?\n\t\t\t\tfilter.replace( ralpha, opacity ) :\n\t\t\t\tfilter + \" \" + opacity;\n\t\t}\n\t};\n}\n\n// These hooks cannot be added until DOM ready because the support test\n// for it is not run until after DOM ready\njQuery(function() {\n\tif ( !jQuery.support.reliableMarginRight ) {\n\t\tjQuery.cssHooks.marginRight = {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t\t\t// Work around by temporarily setting element display to inline-block\n\t\t\t\t\treturn jQuery.swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n\t// getComputedStyle returns percent when specified for top/left/bottom/right\n\t// rather than make the css module depend on the offset module, we just check for it here\n\tif ( !jQuery.support.pixelPosition && jQuery.fn.position ) {\n\t\tjQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\t\t\tjQuery.cssHooks[ prop ] = {\n\t\t\t\tget: function( elem, computed ) {\n\t\t\t\t\tif ( computed ) {\n\t\t\t\t\t\tcomputed = curCSS( elem, prop );\n\t\t\t\t\t\t// if curCSS returns percentage, fallback to offset\n\t\t\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\t\t\tcomputed;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t}\n\n});\n\nif ( jQuery.expr && jQuery.expr.filters ) {\n\tjQuery.expr.filters.hidden = function( elem ) {\n\t\t// Support: Opera <= 12.12\n\t\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\t\treturn elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||\n\t\t\t(!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, \"display\" )) === \"none\");\n\t};\n\n\tjQuery.expr.filters.visible = function( elem ) {\n\t\treturn !jQuery.expr.filters.hidden( elem );\n\t};\n}\n\n// These hooks are used by animate to expand properties\njQuery.each({\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n});\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\njQuery.fn.extend({\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map(function(){\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t})\n\t\t.filter(function(){\n\t\t\tvar type = this.type;\n\t\t\t// Use .is(\":disabled\") so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !manipulation_rcheckableType.test( type ) );\n\t\t})\n\t\t.map(function( i, elem ){\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ){\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t}) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t}).get();\n\t}\n});\n\n//Serialize an array of form elements or a set of\n//key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t});\n\n\t} else {\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams( prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add );\n\t\t\t}\n\t\t});\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n});\n\njQuery.fn.extend({\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t}\n});\nvar\n\t// Document location\n\tajaxLocParts,\n\tajaxLocation,\n\tajax_nonce = jQuery.now(),\n\n\tajax_rquery = /\\?/,\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg, // IE leaves an \\r character at EOL\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\trurl = /^([\\w.+-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/,\n\n\t// Keep a copy of the old load method\n\t_load = jQuery.fn.load,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat(\"*\");\n\n// #8138, IE may throw an exception when accessing\n// a field from window.location if document.domain has been set\ntry {\n\tajaxLocation = location.href;\n} catch( e ) {\n\t// Use the href attribute of an A element\n\t// since IE will modify it given document.location\n\tajaxLocation = document.createElement( \"a\" );\n\tajaxLocation.href = \"\";\n\tajaxLocation = ajaxLocation.href;\n}\n\n// Segment location into parts\najaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( (dataType = dataTypes[i++]) ) {\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[0] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif( typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t});\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar deep, key,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, response, type,\n\t\tself = this,\n\t\toff = url.indexOf(\" \");\n\n\tif ( off >= 0 ) {\n\t\tselector = url.slice( off, url.length );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax({\n\t\t\turl: url,\n\n\t\t\t// if \"type\" variable is undefined, then \"GET\" method will be used\n\t\t\ttype: type,\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t}).done(function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery(\"<div>\").append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t}).complete( callback && function( jqXHR, status ) {\n\t\t\tself.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t});\n\t}\n\n\treturn this;\n};\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [ \"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\" ], function( i, type ){\n\tjQuery.fn[ type ] = function( fn ){\n\t\treturn this.on( type, fn );\n\t};\n});\n\njQuery.extend({\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: ajaxLocation,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /xml/,\n\t\t\thtml: /html/,\n\t\t\tjson: /json/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar // Cross-domain detection vars\n\t\t\tparts,\n\t\t\t// Loop variable\n\t\t\ti,\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\t\t\t// Response headers as string\n\t\t\tresponseHeadersString,\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\ttransport,\n\t\t\t// Response headers\n\t\t\tresponseHeaders,\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( (match = rheaders.exec( responseHeadersString )) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[1].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace( rhash, \"\" ).replace( rprotocol, ajaxLocParts[ 1 ] + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( core_rnotwhite ) || [\"\"];\n\n\t\t// A cross-domain request is in order when we have a protocol:host:port mismatch\n\t\tif ( s.crossDomain == null ) {\n\t\t\tparts = rurl.exec( s.url.toLowerCase() );\n\t\t\ts.crossDomain = !!( parts &&\n\t\t\t\t( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||\n\t\t\t\t\t( parts[ 3 ] || ( parts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) !==\n\t\t\t\t\t\t( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) )\n\t\t\t);\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\tfireGlobals = s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger(\"ajaxStart\");\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + ajax_nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( ajax_rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ajax_nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = setTimeout(function() {\n\t\t\t\t\tjqXHR.abort(\"timeout\");\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\tclearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We extract error from statusText\n\t\t\t\t// then normalize statusText and status for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n});\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\t\t// shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t});\n\t};\n});\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\tvar firstDataType, ct, finalDataType, type,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[0] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s[ \"throws\" ] ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn { state: \"parsererror\", error: conv ? e : \"No conversion from \" + prev + \" to \" + current };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /(?:java|ecma)script/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n});\n\n// Handle cache's special case and global\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t\ts.global = false;\n\t}\n});\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function(s) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\n\t\tvar script,\n\t\t\thead = document.head || jQuery(\"head\")[0] || document.documentElement;\n\n\t\treturn {\n\n\t\t\tsend: function( _, callback ) {\n\n\t\t\t\tscript = document.createElement(\"script\");\n\n\t\t\t\tscript.async = true;\n\n\t\t\t\tif ( s.scriptCharset ) {\n\t\t\t\t\tscript.charset = s.scriptCharset;\n\t\t\t\t}\n\n\t\t\t\tscript.src = s.url;\n\n\t\t\t\t// Attach handlers for all browsers\n\t\t\t\tscript.onload = script.onreadystatechange = function( _, isAbort ) {\n\n\t\t\t\t\tif ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {\n\n\t\t\t\t\t\t// Handle memory leak in IE\n\t\t\t\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\t\t\t\t// Remove the script\n\t\t\t\t\t\tif ( script.parentNode ) {\n\t\t\t\t\t\t\tscript.parentNode.removeChild( script );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Dereference the script\n\t\t\t\t\t\tscript = null;\n\n\t\t\t\t\t\t// Callback if not abort\n\t\t\t\t\t\tif ( !isAbort ) {\n\t\t\t\t\t\t\tcallback( 200, \"success\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\thead.insertBefore( script, head.firstChild );\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( script ) {\n\t\t\t\t\tscript.onload( undefined, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup({\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( ajax_nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n});\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( ajax_rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[\"script json\"] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always(function() {\n\t\t\t// Restore preexisting value\n\t\t\twindow[ callbackName ] = overwritten;\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\t\t\t\t// make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t});\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n});\nvar xhrCallbacks, xhrSupported,\n\txhrId = 0,\n\t// #5280: Internet Explorer will keep connections alive if we don't abort on unload\n\txhrOnUnloadAbort = window.ActiveXObject && function() {\n\t\t// Abort all pending requests\n\t\tvar key;\n\t\tfor ( key in xhrCallbacks ) {\n\t\t\txhrCallbacks[ key ]( undefined, true );\n\t\t}\n\t};\n\n// Functions to create xhrs\nfunction createStandardXHR() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch( e ) {}\n}\n\nfunction createActiveXHR() {\n\ttry {\n\t\treturn new window.ActiveXObject(\"Microsoft.XMLHTTP\");\n\t} catch( e ) {}\n}\n\n// Create the request object\n// (This is still attached to ajaxSettings for backward compatibility)\njQuery.ajaxSettings.xhr = window.ActiveXObject ?\n\t/* Microsoft failed to properly\n\t * implement the XMLHttpRequest in IE7 (can't request local files),\n\t * so we use the ActiveXObject when it is available\n\t * Additionally XMLHttpRequest can be disabled in IE7/IE8 so\n\t * we need a fallback.\n\t */\n\tfunction() {\n\t\treturn !this.isLocal && createStandardXHR() || createActiveXHR();\n\t} :\n\t// For all other browsers, use the standard XMLHttpRequest object\n\tcreateStandardXHR;\n\n// Determine support properties\nxhrSupported = jQuery.ajaxSettings.xhr();\njQuery.support.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nxhrSupported = jQuery.support.ajax = !!xhrSupported;\n\n// Create transport if the browser can provide an xhr\nif ( xhrSupported ) {\n\n\tjQuery.ajaxTransport(function( s ) {\n\t\t// Cross domain only allowed if supported through XMLHttpRequest\n\t\tif ( !s.crossDomain || jQuery.support.cors ) {\n\n\t\t\tvar callback;\n\n\t\t\treturn {\n\t\t\t\tsend: function( headers, complete ) {\n\n\t\t\t\t\t// Get a new xhr\n\t\t\t\t\tvar handle, i,\n\t\t\t\t\t\txhr = s.xhr();\n\n\t\t\t\t\t// Open the socket\n\t\t\t\t\t// Passing null username, generates a login popup on Opera (#2865)\n\t\t\t\t\tif ( s.username ) {\n\t\t\t\t\t\txhr.open( s.type, s.url, s.async, s.username, s.password );\n\t\t\t\t\t} else {\n\t\t\t\t\t\txhr.open( s.type, s.url, s.async );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply custom fields if provided\n\t\t\t\t\tif ( s.xhrFields ) {\n\t\t\t\t\t\tfor ( i in s.xhrFields ) {\n\t\t\t\t\t\t\txhr[ i ] = s.xhrFields[ i ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mime type if needed\n\t\t\t\t\tif ( s.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\t\txhr.overrideMimeType( s.mimeType );\n\t\t\t\t\t}\n\n\t\t\t\t\t// X-Requested-With header\n\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\t\tif ( !s.crossDomain && !headers[\"X-Requested-With\"] ) {\n\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Need an extra try/catch for cross domain requests in Firefox 3\n\t\t\t\t\ttry {\n\t\t\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch( err ) {}\n\n\t\t\t\t\t// Do send the request\n\t\t\t\t\t// This may raise an exception which is actually\n\t\t\t\t\t// handled in jQuery.ajax (so no try/catch here)\n\t\t\t\t\txhr.send( ( s.hasContent && s.data ) || null );\n\n\t\t\t\t\t// Listener\n\t\t\t\t\tcallback = function( _, isAbort ) {\n\t\t\t\t\t\tvar status, responseHeaders, statusText, responses;\n\n\t\t\t\t\t\t// Firefox throws exceptions when accessing properties\n\t\t\t\t\t\t// of an xhr when a network error occurred\n\t\t\t\t\t\t// https://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)\n\t\t\t\t\t\ttry {\n\n\t\t\t\t\t\t\t// Was never called and is aborted or complete\n\t\t\t\t\t\t\tif ( callback && ( isAbort || xhr.readyState === 4 ) ) {\n\n\t\t\t\t\t\t\t\t// Only called once\n\t\t\t\t\t\t\t\tcallback = undefined;\n\n\t\t\t\t\t\t\t\t// Do not keep as active anymore\n\t\t\t\t\t\t\t\tif ( handle ) {\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = jQuery.noop;\n\t\t\t\t\t\t\t\t\tif ( xhrOnUnloadAbort ) {\n\t\t\t\t\t\t\t\t\t\tdelete xhrCallbacks[ handle ];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// If it's an abort\n\t\t\t\t\t\t\t\tif ( isAbort ) {\n\t\t\t\t\t\t\t\t\t// Abort it manually if needed\n\t\t\t\t\t\t\t\t\tif ( xhr.readyState !== 4 ) {\n\t\t\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tresponses = {};\n\t\t\t\t\t\t\t\t\tstatus = xhr.status;\n\t\t\t\t\t\t\t\t\tresponseHeaders = xhr.getAllResponseHeaders();\n\n\t\t\t\t\t\t\t\t\t// When requesting binary data, IE6-9 will throw an exception\n\t\t\t\t\t\t\t\t\t// on any attempt to access responseText (#11426)\n\t\t\t\t\t\t\t\t\tif ( typeof xhr.responseText === \"string\" ) {\n\t\t\t\t\t\t\t\t\t\tresponses.text = xhr.responseText;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Firefox throws an exception when accessing\n\t\t\t\t\t\t\t\t\t// statusText for faulty cross-domain requests\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tstatusText = xhr.statusText;\n\t\t\t\t\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\t\t\t\t\t// We normalize with Webkit giving an empty statusText\n\t\t\t\t\t\t\t\t\t\tstatusText = \"\";\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Filter status for non standard behaviors\n\n\t\t\t\t\t\t\t\t\t// If the request is local and we have data: assume a success\n\t\t\t\t\t\t\t\t\t// (success with no data won't get notified, that's the best we\n\t\t\t\t\t\t\t\t\t// can do given current implementations)\n\t\t\t\t\t\t\t\t\tif ( !status && s.isLocal && !s.crossDomain ) {\n\t\t\t\t\t\t\t\t\t\tstatus = responses.text ? 200 : 404;\n\t\t\t\t\t\t\t\t\t// IE - #1450: sometimes returns 1223 when it should be 204\n\t\t\t\t\t\t\t\t\t} else if ( status === 1223 ) {\n\t\t\t\t\t\t\t\t\t\tstatus = 204;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch( firefoxAccessException ) {\n\t\t\t\t\t\t\tif ( !isAbort ) {\n\t\t\t\t\t\t\t\tcomplete( -1, firefoxAccessException );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Call complete if needed\n\t\t\t\t\t\tif ( responses ) {\n\t\t\t\t\t\t\tcomplete( status, statusText, responses, responseHeaders );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( !s.async ) {\n\t\t\t\t\t\t// if we're in sync mode we fire the callback\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else if ( xhr.readyState === 4 ) {\n\t\t\t\t\t\t// (IE6 & IE7) if it's in cache and has been\n\t\t\t\t\t\t// retrieved directly we need to fire the callback\n\t\t\t\t\t\tsetTimeout( callback );\n\t\t\t\t\t} else {\n\t\t\t\t\t\thandle = ++xhrId;\n\t\t\t\t\t\tif ( xhrOnUnloadAbort ) {\n\t\t\t\t\t\t\t// Create the active xhrs callbacks list if needed\n\t\t\t\t\t\t\t// and attach the unload handler\n\t\t\t\t\t\t\tif ( !xhrCallbacks ) {\n\t\t\t\t\t\t\t\txhrCallbacks = {};\n\t\t\t\t\t\t\t\tjQuery( window ).unload( xhrOnUnloadAbort );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Add to list of active xhrs callbacks\n\t\t\t\t\t\t\txhrCallbacks[ handle ] = callback;\n\t\t\t\t\t\t}\n\t\t\t\t\t\txhr.onreadystatechange = callback;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tabort: function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback( undefined, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n}\nvar fxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trfxnum = new RegExp( \"^(?:([+-])=|)(\" + core_pnum + \")([a-z%]*)$\", \"i\" ),\n\trrun = /queueHooks$/,\n\tanimationPrefilters = [ defaultPrefilter ],\n\ttweeners = {\n\t\t\"*\": [function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value ),\n\t\t\t\ttarget = tween.cur(),\n\t\t\t\tparts = rfxnum.exec( value ),\n\t\t\t\tunit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\t\tstart = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +target ) &&\n\t\t\t\t\trfxnum.exec( jQuery.css( tween.elem, prop ) ),\n\t\t\t\tscale = 1,\n\t\t\t\tmaxIterations = 20;\n\n\t\t\tif ( start && start[ 3 ] !== unit ) {\n\t\t\t\t// Trust units reported by jQuery.css\n\t\t\t\tunit = unit || start[ 3 ];\n\n\t\t\t\t// Make sure we update the tween properties later on\n\t\t\t\tparts = parts || [];\n\n\t\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\t\tstart = +target || 1;\n\n\t\t\t\tdo {\n\t\t\t\t\t// If previous iteration zeroed out, double until we get *something*\n\t\t\t\t\t// Use a string for doubling factor so we don't accidentally see scale as unchanged below\n\t\t\t\t\tscale = scale || \".5\";\n\n\t\t\t\t\t// Adjust and apply\n\t\t\t\t\tstart = start / scale;\n\t\t\t\t\tjQuery.style( tween.elem, prop, start + unit );\n\n\t\t\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t\t\t// And breaking the loop if scale is unchanged or perfect, or if we've just had enough\n\t\t\t\t} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );\n\t\t\t}\n\n\t\t\t// Update tween properties\n\t\t\tif ( parts ) {\n\t\t\t\tstart = tween.start = +start || +target || 0;\n\t\t\t\ttween.unit = unit;\n\t\t\t\t// If a +=/-= token was provided, we're doing a relative animation\n\t\t\t\ttween.end = parts[ 1 ] ?\n\t\t\t\t\tstart + ( parts[ 1 ] + 1 ) * parts[ 2 ] :\n\t\t\t\t\t+parts[ 2 ];\n\t\t\t}\n\n\t\t\treturn tween;\n\t\t}]\n\t};\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\tsetTimeout(function() {\n\t\tfxNow = undefined;\n\t});\n\treturn ( fxNow = jQuery.now() );\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( tweeners[ prop ] || [] ).concat( tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( (tween = collection[ index ].call( animation, prop, value )) ) {\n\n\t\t\t// we're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = animationPrefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\t\t\t// don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t}),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\t\t\t\t// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ]);\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise({\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, { specialEasing: {} }, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\t\t\t\t\t// if we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// resolve when we played the last frame\n\t\t\t\t// otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = animationPrefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t})\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// not quite $.extend, this wont overwrite keys already present.\n\t\t\t// also - reusing 'index' from above because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.split(\" \");\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\ttweeners[ prop ] = tweeners[ prop ] || [];\n\t\t\ttweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tanimationPrefilters.unshift( callback );\n\t\t} else {\n\t\t\tanimationPrefilters.push( callback );\n\t\t}\n\t}\n});\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = jQuery._data( elem, \"fxshow\" );\n\n\t// handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always(function() {\n\t\t\t// doing this makes sure that the complete handler will be called\n\t\t\t// before this completes\n\t\t\tanim.always(function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE does not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tif ( jQuery.css( elem, \"display\" ) === \"inline\" &&\n\t\t\t\tjQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t// inline-level elements accept inline-block;\n\t\t\t// block-level elements need to be inline with layout\n\t\t\tif ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === \"inline\" ) {\n\t\t\t\tstyle.display = \"inline-block\";\n\n\t\t\t} else {\n\t\t\t\tstyle.zoom = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tif ( !jQuery.support.shrinkWrapBlocks ) {\n\t\t\tanim.always(function() {\n\t\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t\t});\n\t\t}\n\t}\n\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = jQuery._data( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done(function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t});\n\t\t}\n\t\tanim.done(function() {\n\t\t\tvar prop;\n\t\t\tjQuery._removeData( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t});\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || \"swing\";\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\tif ( tween.elem[ tween.prop ] != null &&\n\t\t\t\t(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails\n\t\t\t// so, simple values such as \"10px\" are parsed to Float.\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\t\t\t// use step hook for back compat - use cssHook if its there - use .style if its\n\t\t\t// available and use plain properties where available\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9\n// Panic based approach to setting things on disconnected nodes\n\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.each([ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n});\n\njQuery.fn.extend({\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// animate to the value specified\n\t\t\t.end().animate({ opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || jQuery._data( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = jQuery._data( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// start the next in the queue if the last step wasn't forced\n\t\t\t// timers currently will call their complete callbacks, which will dequeue\n\t\t\t// but only if they were gotoEnd\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t});\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tvar index,\n\t\t\t\tdata = jQuery._data( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t});\n\t}\n});\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\tattrs = { height: type },\n\t\ti = 0;\n\n\t// if we include width, step value is 1 to do all cssExpand values,\n\t// if we don't include width, step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth? 1 : 0;\n\tfor( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\n// Generate shortcuts for custom animations\njQuery.each({\n\tslideDown: genFx(\"show\"),\n\tslideUp: genFx(\"hide\"),\n\tslideToggle: genFx(\"toggle\"),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n});\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration :\n\t\topt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p*Math.PI ) / 2;\n\t}\n};\n\njQuery.timers = [];\njQuery.fx = Tween.prototype.init;\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ttimers = jQuery.timers,\n\t\ti = 0;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tif ( timer() && jQuery.timers.push( timer ) ) {\n\t\tjQuery.fx.start();\n\t}\n};\n\njQuery.fx.interval = 13;\n\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tclearInterval( timerId );\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\t// Default speed\n\t_default: 400\n};\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\nif ( jQuery.expr && jQuery.expr.filters ) {\n\tjQuery.expr.filters.animated = function( elem ) {\n\t\treturn jQuery.grep(jQuery.timers, function( fn ) {\n\t\t\treturn elem === fn.elem;\n\t\t}).length;\n\t};\n}\njQuery.fn.offset = function( options ) {\n\tif ( arguments.length ) {\n\t\treturn options === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function( i ) {\n\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t});\n\t}\n\n\tvar docElem, win,\n\t\tbox = { top: 0, left: 0 },\n\t\telem = this[ 0 ],\n\t\tdoc = elem && elem.ownerDocument;\n\n\tif ( !doc ) {\n\t\treturn;\n\t}\n\n\tdocElem = doc.documentElement;\n\n\t// Make sure it's not a disconnected DOM node\n\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\treturn box;\n\t}\n\n\t// If we don't have gBCR, just use 0,0 rather than error\n\t// BlackBerry 5, iOS 3 (original iPhone)\n\tif ( typeof elem.getBoundingClientRect !== core_strundefined ) {\n\t\tbox = elem.getBoundingClientRect();\n\t}\n\twin = getWindow( doc );\n\treturn {\n\t\ttop: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),\n\t\tleft: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )\n\t};\n};\n\njQuery.offset = {\n\n\tsetOffset: function( elem, options, i ) {\n\t\tvar position = jQuery.css( elem, \"position\" );\n\n\t\t// set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tvar curElem = jQuery( elem ),\n\t\t\tcurOffset = curElem.offset(),\n\t\t\tcurCSSTop = jQuery.css( elem, \"top\" ),\n\t\t\tcurCSSLeft = jQuery.css( elem, \"left\" ),\n\t\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) && jQuery.inArray(\"auto\", [curCSSTop, curCSSLeft]) > -1,\n\t\t\tprops = {}, curPosition = {}, curTop, curLeft;\n\n\t\t// need to be able to calculate position if either top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\t\t\toptions = options.call( elem, i, curOffset );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\n\njQuery.fn.extend({\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\tparentOffset = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ];\n\n\t\t// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\t\t\t// we assume that getBoundingClientRect is available when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\t\t} else {\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top  += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\t// note: when an element has margin: auto the offsetLeft and marginLeft\n\t\t// are the same in Safari causing offset.left to incorrectly be 0\n\t\treturn {\n\t\t\ttop:  offset.top  - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true)\n\t\t};\n\t},\n\n\toffsetParent: function() {\n\t\treturn this.map(function() {\n\t\t\tvar offsetParent = this.offsetParent || docElem;\n\t\t\twhile ( offsetParent && ( !jQuery.nodeName( offsetParent, \"html\" ) && jQuery.css( offsetParent, \"position\") === \"static\" ) ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\t\t\treturn offsetParent || docElem;\n\t\t});\n\t}\n});\n\n\n// Create scrollLeft and scrollTop methods\njQuery.each( {scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\"}, function( method, prop ) {\n\tvar top = /Y/.test( prop );\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn jQuery.access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? (prop in win) ? win[ prop ] :\n\t\t\t\t\twin.document.documentElement[ method ] :\n\t\t\t\t\telem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : jQuery( win ).scrollLeft(),\n\t\t\t\t\ttop ? val : jQuery( win ).scrollTop()\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length, null );\n\t};\n});\n\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ?\n\t\telem :\n\t\telem.nodeType === 9 ?\n\t\t\telem.defaultView || elem.parentWindow :\n\t\t\tfalse;\n}\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name }, function( defaultExtra, funcName ) {\n\t\t// margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn jQuery.access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest\n\t\t\t\t\t// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t});\n});\n// Limit scope pollution from any deprecated API\n// (function() {\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\treturn this.length;\n};\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n// })();\nif ( typeof module === \"object\" && module && typeof module.exports === \"object\" ) {\n\t// Expose jQuery as module.exports in loaders that implement the Node\n\t// module pattern (including browserify). Do not create the global, since\n\t// the user will be storing it themselves locally, and globals are frowned\n\t// upon in the Node module world.\n\tmodule.exports = jQuery;\n} else {\n\t// Otherwise expose jQuery to the global object as usual\n\twindow.jQuery = window.$ = jQuery;\n\n\t// Register as a named AMD module, since jQuery can be concatenated with other\n\t// files that may use define, but not via a proper concatenation script that\n\t// understands anonymous AMD modules. A named AMD is safest and most robust\n\t// way to register. Lowercase jquery is used because AMD module names are\n\t// derived from file names, and jQuery is normally delivered in a lowercase\n\t// file name. Do this after creating the global so that if an AMD module wants\n\t// to call noConflict to hide this version of jQuery, it will work.\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( \"jquery\", [], function () { return jQuery; } );\n\t}\n}\n\n})( window );"
  },
  {
    "path": "public/static/home/assets/rotating-card/rotating-card.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n    <title>Rotating CSS Cards by Creative Tim </title>\n\n\t<meta charset=\"utf-8\" />\n\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n\n    <link href='css/bootstrap.css' rel='stylesheet' />\n\n    <link href=\"css/pe-icon-7-stroke.css\" rel=\"stylesheet\" />\n\n<!--     <link href='css/ct-navbar.css' rel='stylesheet' /> -->\n    <link href='css/rotating-card.css' rel='stylesheet' />\n\n    <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' />\n\n    <link href=\"https://netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css\" rel=\"stylesheet\">\n\n    <script src=\"https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js\"></script>\n    <style>\n        body{\n            margin-top: 100px;\n        }\n        .navbar-default .navbar-nav > li > a{\n            padding: 15px 15px;\n            margin: 5px 0;\n        }\n\n        .navbar-default{\n            padding: 10px 0;\n            background-color: rgba(255, 255, 255, 0.95);\n            border-color: transparent;\n            box-shadow: 0 0px 13px rgba(0,0,0,.2);\n        }\n        .btn-info,\n        .btn-info:hover,\n        .btn-info:focus{\n            color: #FFF !important;\n            background-color: #00bbff !important;\n            border-color: #00bbff !important;\n        }\n\n        .btn-info{\n            opacity: .8;\n            transition: all 0.1s;\n            -webkit-transition: all 0.1s;\n        }\n        .btn-info:hover,\n        .btn-info:focus{\n            opacity: 1;\n        }\n    </style>\n</head>\n<div class=\"container\">\n    <nav class=\"navbar navbar-default navbar-fixed-top\" role=\"navigation\">\n\n      <div class=\"container\">\n        <!-- Brand and toggle get grouped for better mobile display -->\n        <div class=\"navbar-header\">\n          <button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#bs-example-navbar-collapse-1\">\n            <span class=\"sr-only\">Toggle navigation</span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n            <span class=\"icon-bar\"></span>\n          </button>\n          <a class=\"navbar-brand navbar-brand-logo\" href=\"https://www.creative-tim.com\">\n                <div class=\"logo\">\n                <img src=\"https://s3.amazonaws.com/creativetim_bucket/new_logo.png\">\n                </div>\n                <div class=\"brand\"> Creative Tim </div>\n          </a>\n        </div>\n        <!-- Collect the nav links, forms, and other content for toggling -->\n        <div class=\"collapse navbar-collapse\" id=\"bs-example-navbar-collapse-1\">\n          <ul class=\"nav navbar-nav navbar-right\">\n                <li>\n                    <a href=\"javascript:void(0)\" data-href=\"#howToUse\" class=\"scroll-down\">\n                       How to Use\n                    </a>\n                </li>\n                <li>\n                    <a class=\"btn btn-info\" href=\"https://www.creative-tim.com/product/rotating-css-card\" target=\"_blank\">\n                        Download, it's free!\n                    </a>\n                </li>\n           </ul>\n        </div><!-- /.navbar-collapse -->\n      </div><!-- /.container-fluid -->\n    </nav>\n\n    <div class=\"row\">\n        <h1 class=\"title\">\n            This is our awesome team\n            <br>\n            <small>Present your team in an interesting way</small>\n        </h1>\n        <div class=\"col-sm-10 col-sm-offset-1\">\n         <div class=\"col-md-3 col-sm-6\">\n             <div class=\"card-container\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb2.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile3.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">John Marvel</h3>\n                                <p class=\"profession\">CEO</p>\n                                <p class=\"text-center\">\"I'm the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <i class=\"fa fa-mail-forward\"></i> Auto Rotation\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col sm 3 -->\n<!--         <div class=\"col-sm-1\"></div> -->\n        <div class=\"col-md-3 col-sm-6\">\n             <div class=\"card-container manual-flip\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile2.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">Andrew Mike</h3>\n                                <p class=\"profession\">Web Developer</p>\n                                <p class=\"text-center\">\"Lamborghini Mercy <br>Your chick she so thirsty <br>I'm in that two seat Lambo\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <button class=\"btn btn-simple\" onclick=\"rotateCard(this)\">\n                                    <i class=\"fa fa-mail-forward\"></i> Manual Rotation\n                                </button>\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <button class=\"btn btn-simple\" rel=\"tooltip\" title=\"Flip Card\" onclick=\"rotateCard(this)\">\n                                <i class=\"fa fa-reply\"></i> Back\n                            </button>\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col sm 3 -->\n<!--         <div class=\"col-sm-1\"></div> -->\n        <div class=\"col-md-3 col-sm-6\">\n            <div class=\"card-container\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb3.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">Inna Corman</h3>\n                                <p class=\"profession\">Product Manager</p>\n\n                                <p class=\"text-center\">\"I'm the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <div class=\"rating\">\n                                    <i class=\"fa fa-mail-forward\"></i> Auto Rotation\n                                </div>\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col-sm-3 -->\n         <div class=\"col-md-3 col-sm-6\">\n            <div class=\"card-container\">\n                <div class=\"card\">\n                    <div class=\"front\">\n                        <div class=\"cover\">\n                            <img src=\"images/rotating_card_thumb3.png\"/>\n                        </div>\n                        <div class=\"user\">\n                            <img class=\"img-circle\" src=\"images/rotating_card_profile.png\"/>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h3 class=\"name\">Inna Corman</h3>\n                                <p class=\"profession\">Product Manager</p>\n\n                                <p class=\"text-center\">\"I'm the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere\"</p>\n                            </div>\n                            <div class=\"footer\">\n                                <div class=\"rating\">\n                                    <i class=\"fa fa-mail-forward\"></i> Auto Rotation\n                                </div>\n                            </div>\n                        </div>\n                    </div> <!-- end front panel -->\n                    <div class=\"back\">\n                        <div class=\"header\">\n                            <h5 class=\"motto\">\"To be or not to be, this is my awesome motto!\"</h5>\n                        </div>\n                        <div class=\"content\">\n                            <div class=\"main\">\n                                <h4 class=\"text-center\">Job Description</h4>\n                                <p class=\"text-center\">Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...</p>\n\n                                <div class=\"stats-container\">\n                                    <div class=\"stats\">\n                                        <h4>235</h4>\n                                        <p>\n                                            Followers\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>114</h4>\n                                        <p>\n                                            Following\n                                        </p>\n                                    </div>\n                                    <div class=\"stats\">\n                                        <h4>35</h4>\n                                        <p>\n                                            Projects\n                                        </p>\n                                    </div>\n                                </div>\n\n                            </div>\n                        </div>\n                        <div class=\"footer\">\n                            <div class=\"social-links text-center\">\n                                <a href=\"https://creative-tim.com\" class=\"facebook\"><i class=\"fa fa-facebook fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"google\"><i class=\"fa fa-google-plus fa-fw\"></i></a>\n                                <a href=\"https://creative-tim.com\" class=\"twitter\"><i class=\"fa fa-twitter fa-fw\"></i></a>\n                            </div>\n                        </div>\n                    </div> <!-- end back panel -->\n                </div> <!-- end card -->\n            </div> <!-- end card-container -->\n        </div> <!-- end col-sm-3 -->\n        </div> <!-- end col-sm-10 -->\n    </div> <!-- end row -->\n    <div class=\"space-200\"></div>\n</div>\n<div class=\"white-board\">\n   <div class=\"container\">\n        <br>\n        <h4>\n            If you want to use the rotating presentation cards you have to add to your project these files:\n        </h4>\n        <pre class=\"prettyprint\">\n        <br>\n              &lt;link href=&quot;css/bootstrap.css&quot; rel=&quot;stylesheet&quot; /&gt;\n              &lt;link href=&quot;css/rotating-card.css&quot; rel=&quot;stylesheet&quot; /&gt;\n              &lt;link href=&quot;https://netdna.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css&quot; rel=&quot;stylesheet&quot; /&gt;\n        </pre>\n        <br>\n        <h4>\n            Here is the html code for one card:\n        </h4>\n        <pre class=\"prettyprint\">\n        <br>\n        &lt;div class=&quot;card-container&quot;&gt;\n         &lt;div class=&quot;card&quot;&gt;\n             &lt;div class=&quot;front&quot;&gt;\n                 &lt;div class=&quot;cover&quot;&gt;\n                     &lt;img src=&quot;images/rotating_card_thumb3.png&quot;/&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;user&quot;&gt;\n                     &lt;img class=&quot;img-circle&quot; src=&quot;images/rotating_card_profile.png&quot;/&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;content&quot;&gt;\n                     &lt;div class=&quot;main&quot;&gt;\n                         &lt;h3 class=&quot;name&quot;&gt;Inna Corman&lt;/h3&gt;\n                         &lt;p class=&quot;profession&quot;&gt;Product Manager&lt;/p&gt;\n\n                         &lt;p class=&quot;text-center&quot;&gt;&quot;I&#39;m the new Sinatra, and since I made it here I can make it anywhere, yeah, they love me everywhere&quot;&lt;/p&gt;\n                     &lt;/div&gt;\n                     &lt;div class=&quot;footer&quot;&gt;\n                         &lt;div class=&quot;rating&quot;&gt;\n                             &lt;i class=&quot;fa fa-mail-forward&quot;&gt;&lt;/i&gt; Auto Rotation\n                         &lt;/div&gt;\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n             &lt;/div&gt; &lt;!-- end front panel --&gt;\n             &lt;div class=&quot;back&quot;&gt;\n                 &lt;div class=&quot;header&quot;&gt;\n                     &lt;h5 class=&quot;motto&quot;&gt;&quot;To be or not to be, this is my awesome motto!&quot;&lt;/h5&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;content&quot;&gt;\n                     &lt;div class=&quot;main&quot;&gt;\n                         &lt;h4 class=&quot;text-center&quot;&gt;Job Description&lt;/h4&gt;\n                         &lt;p class=&quot;text-center&quot;&gt;Web design, Adobe Photoshop, HTML5, CSS3, Corel and many others...&lt;/p&gt;\n\n                         &lt;div class=&quot;stats-container&quot;&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;235&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Followers\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;114&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Following\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                             &lt;div class=&quot;stats&quot;&gt;\n                                 &lt;h4&gt;35&lt;/h4&gt;\n                                 &lt;p&gt;\n                                     Projects\n                                 &lt;/p&gt;\n                             &lt;/div&gt;\n                         &lt;/div&gt;\n\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n                 &lt;div class=&quot;footer&quot;&gt;\n                     &lt;div class=&quot;social-links text-center&quot;&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;facebook&quot;&gt;&lt;i class=&quot;fa fa-facebook fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;google&quot;&gt;&lt;i class=&quot;fa fa-google-plus fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                         &lt;a href=&quot;https://creative-tim.com&quot; class=&quot;twitter&quot;&gt;&lt;i class=&quot;fa fa-twitter fa-fw&quot;&gt;&lt;/i&gt;&lt;/a&gt;\n                     &lt;/div&gt;\n                 &lt;/div&gt;\n             &lt;/div&gt; &lt;!-- end back panel --&gt;\n         &lt;/div&gt; &lt;!-- end card --&gt;\n     &lt;/div&gt; &lt;!-- end card-container --&gt;\n\n        </pre>\n        <div class=\"space-50\"></div>\n    <div class=\"row\">\n        <div class=\"col-sm-4\"></div>\n        <div class=\"col-sm-4\">\n            <a href=\"https://creative-tim.com/product/rotating-css-card\" class=\"btn btn-info btn-lg btn-block\">Download</a>\n        </div>\n        <div class=\"col-sm-4\"></div>\n    </div>\n    <div class=\"space-50\"></div>\n    <p class=\"text-center\">Copyright &copy; 2015 <a href=\"https://creative-tim.com\">Creative Tim</a>, made with <i class=\"fa fa-heart ct-heart\"></i> for a better web.</p>\n   </div>\n</div>\n\n\n<script src=\"js/jquery-1.10.2.js\" type=\"text/javascript\"></script>\n<script src=\"js/bootstrap.min.js\" type=\"text/javascript\"></script>\n\n<script type=\"text/javascript\">\n    $().ready(function(){\n        $('[rel=\"tooltip\"]').tooltip();\n\n        $('a.scroll-down').click(function(e){\n            e.preventDefault();\n            scroll_target = $(this).data('href');\n             $('html, body').animate({\n                 scrollTop: $(scroll_target).offset().top - 60\n             }, 1000);\n        });\n\n    });\n\n    function rotateCard(btn){\n        var $card = $(btn).closest('.card-container');\n        console.log($card);\n        if($card.hasClass('hover')){\n            $card.removeClass('hover');\n        } else {\n            $card.addClass('hover');\n        }\n    }\n\n\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_alerts.scss",
    "content": ".alert{\n    border: 0;\n    border-radius: 0;\n    color: $white-color;\n    padding: 10px 15px;\n    font-size: 14px;\n\n    & .close{\n        font-size: $font-size-large;\n        color: $white-color;\n    }\n\n    .container &{\n        border-radius: 4px;\n\n    }\n    .navbar &{\n        border-radius: 0;\n        left: 0;\n        position: absolute;\n        right: 0;\n        top: 85px;\n        width: 100%;\n        z-index: 3;\n    }\n    .navbar:not(.navbar-transparent) &{\n        top: 70px;\n    }\n    .alert-icon{\n        display: block;\n        font-size: 30px;\n        left: 15px;\n        position: absolute;\n        top: 50%;\n        margin-top: -22px;\n    }\n    .alert-wrapper {\n        &.message{\n            padding-right: 60px;\n        }\n        i{\n            position: relative;\n            font-size: 20px;\n            top: 5px;\n            margin-top: -5px;\n            font-weight: $font-weight-bold;\n        }\n    }\n}\n.alert-info{\n    background-color: $bg-info;\n}\n.alert-success {\n    background-color: $bg-success;\n}\n.alert-warning {\n    background-color: $bg-warning;\n}\n.alert-danger {\n    background-color: $bg-danger;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_badges.scss",
    "content": "/*           badges & Progress-bar              */\n.badge{\n    padding: 0.4em 0.9em;\n    color: $white-color;\n    font-weight: 500;\n    font-size: 0.75em;\n    text-transform: uppercase;\n    display: inline-block;\n    margin-bottom: 3px;\n    padding-top: 5px;\n\n  &:focus {\n    outline: none;\n  }\n  span[data-role=\"remove\"]:focus {\n    outline: none;\n  }\n}\n.badge-primary{\n    background-color: $primary-color;\n}\n.badge-info{\n    background-color: $info-color;\n}\n.badge-success{\n    background-color: $success-color;\n}\n.badge-warning{\n    background-color: $warning-color;\n}\n.badge-danger{\n    background-color: $danger-color;\n}\n.badge-default{\n    background-color: $default-color;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_buttons.scss",
    "content": ".btn{\n    box-sizing: border-box;\n    border-width: $border-thick;\n    font-size: $font-size-small;\n    font-weight: $font-weight-bold;\n    padding: .5rem $padding-base-horizontal;\n    line-height: 1.75;\n    cursor: pointer;\n    text-transform: uppercase;\n\n\n    &.btn-border,\n    &.btn-link{\n        background-color: $transparent-bg;\n    }\n\n    @include btn-styles($default-color, $default-states-color);\n    @include transition($fast-transition-time, linear);\n\n    &:hover,\n    &:focus{\n        outline: 0 !important;\n        @include box-shadow(none);\n    }\n    &:active,\n    &.active,\n    .open > &.dropdown-toggle {\n         @include box-shadow(none);\n         outline: 0 !important;\n    }\n\n    &[class*=\"btn-outline-\"]{\n        background-image: none;\n        background-color: transparent;\n    }\n\n    .nc-icon{\n        position: relative;\n        top: 2px;\n    }\n}\n.btn-just-icon{\n    border-radius: $border-radius-btn-large;\n    height: 40px;\n    width: 40px;\n    min-width: 40px;\n    padding: 8px;\n\n    &.btn-sm{\n        padding: 4px !important;\n    }\n    i{\n        font-size: $font-size-medium;\n        padding: 2px 0px;\n    }\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group{\n    margin-left: -2px;\n}\n\n\n// Apply the mixin to the buttons\n.btn-primary { @include btn-styles($primary-color, $primary-states-color); }\n.btn-success { @include btn-styles($success-color, $success-states-color); }\n.btn-info    { @include btn-styles($info-color, $info-states-color); }\n.btn-warning { @include btn-styles($warning-color, $warning-states-color); }\n.btn-danger  { @include btn-styles($danger-color, $danger-states-color); }\n.btn-neutral  { @include btn-styles($white-color, $default-states-color); }\n\n.btn-outline-default { @include btn-outline-styles($default-color, $default-states-color); }\n.btn-outline-primary { @include btn-outline-styles($primary-color, $primary-states-color); }\n.btn-outline-success { @include btn-outline-styles($success-color, $success-states-color); }\n.btn-outline-info    { @include btn-outline-styles($info-color, $info-states-color); }\n.btn-outline-warning { @include btn-outline-styles($warning-color, $warning-states-color); }\n.btn-outline-danger  { @include btn-outline-styles($danger-color, $danger-states-color); }\n.btn-outline-neutral { @include btn-outline-styles($white-color, $default-states-color);\n    &:hover,\n    &:focus,\n    &:active {\n        color: $default-states-color !important;\n        background-color: $white-color;\n    }\n}\n.btn-neutral {\n    @include btn-styles($white-color, $white-color);\n    color: $default-color;\n\n    &:hover,\n    &:focus,\n    &:active {\n        color: $default-states-color !important;\n    }\n\n    &.btn-border{\n        &:hover,\n        &:focus{\n          color: $default-color;\n        }\n\n        &:active,\n        &.active,\n        .open > &.dropdown-toggle{\n             background-color: $white-color;\n             color: $default-color;\n        }\n    }\n    &.btn-link:hover,\n    &.btn-link:focus,\n    &.btn-link:active {\n      color: $white-color !important;\n    }\n\n    &.btn-link:focus:active {\n      color: $default-states-color !important;\n    }\n\n    &.btn-link:active,\n    &.btn-link.active{\n        background-color: transparent;\n    }\n}\n\n.btn{\n     &:disabled,\n     &[disabled],\n     &.disabled{\n        @include opacity(.5);\n    }\n}\n.btn-link{\n    border-color: transparent !important;\n    padding: $padding-base-vertical $padding-base-horizontal;\n\n    &:hover,\n    &:focus,\n    &:active{\n        text-decoration: none;\n        border-color: transparent;\n    }\n\n    &.btn-icon{\n        padding: $padding-base-vertical;\n    }\n}\n\n.btn-lg{\n   @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-base, $line-height-small);\n}\n.btn-sm{\n    @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small);\n}\n.btn-wd {\n    min-width: 140px;\n}\n\n.btn-group.select{\n    width: 100%;\n}\n.btn-group.select .btn{\n    text-align: left;\n}\n.btn-group.select .caret{\n    position: absolute;\n    top: 50%;\n    margin-top: -1px;\n    right: 8px;\n}\n.btn-just-icon{\n    &.btn-sm{\n        height: 30px;\n        width: 30px;\n        min-width: 30px;\n        padding: 0;\n\n        i{\n            font-size: $font-size-small;\n            top: 1px !important;\n        }\n    }\n    &.btn-lg{\n        height: 50px;\n        width: 50px;\n        min-width: 50px;\n        padding: 13px;\n\n        i{\n            font-size: 18px;\n            padding: 0;\n        }\n    }\n    &.btn-link{\n        padding: 8px !important;\n    }\n}\n.btn-round{\n    border-radius: 30px;\n}\n.btn.btn-link:focus{\n    box-shadow: none !important;\n    text-decoration: none;\n}\n\n.column .btn-link{\n    padding: 7px 0;\n}\n.share-buttons .btn-outline-default{\n    margin-top: 24px;\n}\n.btn-group.select{\n    overflow: visible !important;\n}\n.media{\n    .media-body{\n        .media-footer{\n            .btn-neutral{\n               margin: $navbar-margin-btn;\n               font-size: $font-size-base;\n               i{\n                   margin-right: 0 !important;\n               }\n           }\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_cards.scss",
    "content": ".card {\n    border-radius: $border-radius-extreme;\n    box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n    background-color: #FFFFFF;\n    color: $card-black-color;\n    margin-bottom: 20px;\n    position: relative;\n    z-index: 1;\n    border: 0 none;\n\n    -webkit-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n    -moz-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n    -o-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n    -ms-transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n    transition: transform 300ms cubic-bezier(0.34, 2, 0.6, 1), box-shadow 200ms ease;\n\n    &:not(.card-plain):hover {\n      box-shadow: 0px 12px 19px -7px rgba(0, 0, 0, 0.3);\n      transform: translateY(-10px);\n      -webkit-transform: translateY(-10px);\n      -ms-transform: translateY(-10px);\n      -moz-transform: translateY(-10px);\n    }\n\n    &.no-transition:hover,\n    &.page-carousel:hover,\n    &.card-refine:hover,\n    &.card-register:hover{\n        box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n        transform: none;\n        -webkit-transform: none;\n        -ms-transform: none;\n        -moz-transform: none;\n    }\n\n    a:not(.btn){\n        color: $black-hr;\n\n        &:hover,\n        &:focus{\n            color: $black-color;\n        }\n    }\n    .card-description{\n        color: $dark-gray;\n        margin-bottom: 5px;\n        margin-top: 15px;\n    }\n\n    img{\n        max-width: 100%;\n        height: auto;\n        border-radius: $border-radius-extreme $border-radius-extreme 0 0;\n    }\n\n    &[data-radius=\"none\"]{\n        border-radius: $border-radius-none;\n\n        .header{\n            border-radius: $border-radius-none-top;\n\n            img{\n                border-radius: $border-radius-none-top;\n            }\n        }\n    }\n\n    &.card-plain{\n        background-color: transparent;\n        box-shadow: none;\n        border-radius: 0;\n\n\n        .card-body{\n            padding-left: 5px;\n            padding-right: 5px;\n        }\n\n        img{\n            border-radius: $border-radius-extreme;\n        }\n    }\n\n    .card-link{\n        color: $white-color;\n    }\n\n    .card-background-image ul li{\n        color: #FFF;\n        border-color: rgba(255,255,255,.3);\n    }\n    &.card-blog,\n    &.card-testimonial .card-description + .card-title{\n        margin-top: 30px;\n\n        & .card-image{\n            .img{\n                border-radius: $border-radius-extreme;\n            }\n\n            .card-title{\n                text-align: center;\n            }\n        }\n    }\n    &.card:not(.card-plain){\n        .card-image{\n            .img{\n                border-bottom-left-radius: 0px;\n                border-bottom-right-radius: 0px;\n            }\n        }\n    }\n    &.card-blog{\n        margin-top: 5px;\n\n        .btn{\n            margin: 0 auto;\n        }\n\n    }\n\n    .author{\n        display: inline-block;\n        .avatar{\n            width: 30px;\n            height: 30px;\n            overflow: hidden;\n            border-radius: 50%;\n            margin-right: 5px;\n        }\n\n        .avatar-big{\n            width: 100px;\n            height: 100px;\n            border-radius: 50% !important;\n            position: relative;\n            margin-bottom: 15px;\n\n            &.border-white{\n                border: 4px solid $white-color;\n            }\n            &.border-gray{\n                border: 4px solid $card-muted-color;\n            }\n        }\n\n    }\n\n    .clearfix + .author{\n        margin-top: 15px;\n    }\n\n    .stats{\n        display: inline-block;\n        float: right;\n        color: $dark-gray;\n        font-size: $font-size-small;\n        margin-top: 6px;\n\n        i{\n            font-size: 16px;\n            position: relative;\n            text-align: center;\n            top: 1px;\n            margin-left: 5px;\n            margin-top: -1px;\n            opacity: .6;\n        }\n    }\n    .card-category{\n        color: $dark-gray;\n    }\n    .category-social .fa{\n        font-size: 24px;\n        position: relative;\n        margin-top: -4px;\n        top: 2px;\n        margin-right: 5px;\n    }\n    .card-title-uppercase{\n        text-transform: uppercase;\n    }\n\n    .header{\n        position: relative;\n        border-radius: $border-radius-small-top;\n        z-index: 3;\n\n        &.header-with-icon{\n            height: 150px;\n        }\n        img{\n            width: 100%;\n        }\n\n        .card-category{\n            padding: 15px;\n        }\n\n    }\n\n    .card-body{\n        .card-footer{\n            padding: 0;\n        }\n        .card-description + .card-footer{\n            padding-top: 10px;\n        }\n    }\n    .more{\n        float: right;\n        z-index: 4;\n        display: block;\n        padding-top: 10px;\n        padding-right: 10px;\n        position: relative;\n    }\n\n    .filter,\n    .header .actions{\n        position: absolute;\n        z-index: 2;\n        background-color: rgba(0,0,0,.76);\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        text-align: center;\n\n        opacity: 0;\n    }\n\n    .header .actions{\n        background-color: transparent;\n        z-index: 3;\n\n        .btn{\n            @include vertical-align();\n        }\n    }\n\n    &:hover{\n        .filter{\n            opacity: .7;\n        }\n\n        .header .social-line,\n        .header .actions{\n            opacity: 1;\n        }\n    }\n\n    .card-category,\n    .label{\n        i{\n            font-size: $font-paragraph;\n        }\n    }\n\n    > .card-title{\n       margin: 0;\n       padding: 30px 0 0;\n    }\n\n    .card-body{\n        padding: 20px;\n\n        .card-title{\n            margin: 5px 0 0 0;\n        }\n        .card-category ~ .card-title{\n            margin-top: 5px;\n        }\n    }\n\n    .card-text{\n        font-size: $font-paragraph;\n        color: $font-color;\n        padding-bottom: 15px;\n    }\n\n    h6{\n        font-size: $font-size-small;\n        margin: 0;\n    }\n\n    .card-footer{\n        padding: 15px;\n        background: transparent ;\n        border-top: 0 none;\n\n        .social-line{\n            .btn:first-child{\n                border-radius: 0 0 0 6px;\n            }\n            .btn:last-child{\n                border-radius: 0 0 6px 0;\n            }\n        }\n    }\n\n\n    &.card-separator:after{\n        height: 100%;\n        right: -15px;\n        top: 0;\n        width: 1px;\n        background-color: $medium-gray;\n        content: \"\";\n        position: absolute;\n    }\n\n    .card-icon{\n        display: block;\n        margin: 0 auto;\n        position: relative;\n        text-align: center;\n        padding: 30px 0 10px;\n\n        i{\n            font-size: 40px;\n            width: 105px;\n            border: 2px solid $card-muted-color;\n            border-radius: 50%;\n            height: 105px;\n            line-height: 105px;\n        }\n\n    }\n\n    .col-lg-4 &{\n        .card-icon{\n            i{\n                font-size: 80px;\n                padding: 22px;\n            }\n        }\n    }\n\n    &.card-with-border{\n        .card-body{\n            padding: 15px 15px 25px 15px;\n        }\n\n        .card-footer{\n            padding-bottom: 25px;\n        }\n    }\n\n    &.card-with-border:after{\n        position: absolute;\n        display: block;\n        width: calc(100% - 10px);\n        height: calc(100% - 10px);\n        content: \"\";\n        top: 5px;\n        left: 5px;\n        border: 1px solid rgba(0,0,0, 0.15);\n        z-index: 1;\n        border-radius: 5px;\n    }\n\n    &.card-just-text{\n        .card-body{\n            padding: 50px 65px;\n            text-align: center;\n        }\n        #dLabel{\n            float: right;\n            i{\n                font-size: 20px;\n            }\n        }\n        .dropdown-menu{\n            margin-top: 55px;\n        }\n    }\n\n    &[data-background=\"image\"]{\n        background-position: center center;\n        background-size: cover;\n        text-align: center;\n\n        .card-body{\n            position: relative;\n            z-index: 2;\n            min-height: 280px;\n            padding-top: 40px;\n            padding-bottom: 40px;\n            max-width: 440px;\n            margin: 0 auto;\n            text-align: center;\n        }\n        .card-title{\n            color: #FFF;\n            margin-top: 10px;\n        }\n        &:after{\n            position: absolute;\n            z-index: 1;\n            width: 100%;\n            height: 100%;\n            display: block;\n            left: 0;\n            top: 0;\n            content: \"\";\n            background-color: rgba(0,0,0,.56);\n            border-radius: $border-radius-extreme;\n        }\n        .card-category{\n            color: $white-color;\n        }\n    }\n\n    &[data-background=\"image\"],\n    &[data-background=\"color\"],\n    &[data-color]{\n        .image{\n            border-radius: $border-radius-large;\n        }\n\n        .filter{\n            border-radius: $border-radius-large;\n        }\n        .card-description{\n            color: rgba(255,255,255,.8);\n        }\n\n        .card-title,\n        .card-category,\n        .card-text,\n        .card-body,\n        .card-footer,\n        .stats,\n        small,\n        [class*=\"text-\"],\n        ul li b,\n        a:not(.btn){\n            color: $white-color !important;\n        }\n\n        a:not(.btn):hover,\n        a:not(.btn):focus{\n            color: $white-color;\n        }\n\n        .card-icon{\n            i{\n                color: #FFFFFF;\n                border: 2px solid rgba(255,255,255,.3);\n            }\n        }\n\n        &.card-with-border:after{\n            border: 1px solid rgba(255, 255, 255, 0.45);\n        }\n    }\n\n    &[data-background=\"image\"]{\n\n        .filter{\n            @include opacity(0.55);\n        }\n\n        &:hover .filter{\n            @include opacity(0.75);\n        }\n\n    }\n\n    &[data-color=\"blue\"]{\n        background: $bg-info;\n    }\n\n    &[data-color=\"green\"]{\n        background: $bg-success\n    }\n\n    &[data-color=\"yellow\"]{\n        background: $bg-warning;\n    }\n\n    &[data-color=\"brown\"]{\n        background: $bg-brown;\n    }\n\n    &[data-color=\"purple\"]{\n        background: $bg-purple;\n    }\n\n    &[data-color=\"orange\"]{\n        background: $bg-danger;\n    }\n}\n\n.btn-center{\n    text-align: center;\n}\n\n.card-big-shadow{\n    max-width: 320px;\n    position: relative;\n\n    &:before{\n        //background-image: url(\"http://static.tumblr.com/i21wc39/coTmrkw40/shadow.png\");\n        background-position: center bottom;\n        background-repeat: no-repeat;\n        background-size: 100% 100%;\n        bottom: -12%;\n        content: \"\";\n        display: block;\n        left: -12%;\n        position: absolute;\n        right: 0;\n        top: 0;\n        z-index: 0;\n    }\n}\n.card-image{\n    &.card-big-shadow{\n        max-width: 100%;\n    }\n    .card{\n        background-size: cover;\n        min-height: 430px;\n        width: 100%;\n    }\n    .img-raised{\n        margin-top: -20px;\n    }\n}\n\n\n.page-header{\n    .card-pricing.card-plain{\n        .card-category,\n        .card-title{\n            color: $white-color;\n        }\n    }\n}\n\n.card-plain{\n  .card-avatar{\n      margin-top: 0;\n    }\n}\n\n.card-refine {\n  .panel-title {\n      font-size: 1em;\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_carousel.scss",
    "content": ".carousel-control{\n    background-color: $danger-color;\n    border-radius: 50%;\n    opacity: 1;\n    text-shadow: none;\n\n    &:hover,\n    &:focus{\n        opacity: 1;\n        background-color: $danger-states-color;\n    }\n}\n\n.carousel-control.left{\n    height: 30px;\n    top: 50%;\n    width: 30px;\n    left: 25px;\n    opacity: 0;\n}\n.carousel-control.right{\n    height: 30px;\n    right: 25px;\n    top: 50%;\n    width: 30px;\n    opacity: 0;\n}\n.carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .fa, .carousel-control .fa {\n    display: inline-block;\n    z-index: 5;\n}\n.carousel-control .fa{\n    font-size: 26px;\n    margin: 2px;\n}\n.carousel-control.left, .carousel-control.right {\n    background-image: none;\n}\n\n .page-carousel{\n    border-radius: $border-radius-extreme !important;\n    border: none !important;\n    width: 100%;\n}\n\n.carousel-inner {\n  > .carousel-item > img,\n  > .carousel-item > a > img {\n      border-radius: $border-radius-extreme;\n      box-shadow: 0 2px 2px rgba(204, 197, 185, 0.5);\n  }\n  .carousel-item img {\n    width: 100%;\n  }\n}\n\n.carousel-indicators > li{\n    background-color: rgba(204, 204, 204, 0.49);\n    border: 0 none;\n}\n.carousel-indicators .active{\n    background-color: $danger-color;\n}\n.page-carousel:hover{\n    .carousel-control.right,\n    .carousel-control.left{\n        opacity: 1;\n        z-index: 1;\n    }\n}\n.card {\n    .carousel {\n        .carousel-indicators {\n            bottom: 0;\n        }\n        a {\n            position: absolute;\n            color: $white-color !important;\n        &:hover {\n            color: $white-color !important;\n        }\n        .fa-angle-left:before {\n            padding-right: 3px;\n        }\n        .fa-angle-right:before {\n            padding-left: 3px;\n        }\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_checkbox-radio.scss",
    "content": ".from-check,\n.form-check-radio {\n    margin-bottom: 12px;\n    position: relative;\n}\n\n.form-check {\n  padding-left: 0;\n  margin-bottom: .5rem;\n\n    .form-check-label{\n        display: inline-block;\n        position: relative;\n        cursor: pointer;\n        padding-left: 35px;\n        line-height: 26px;\n        margin-bottom: 0;\n    }\n\n    .form-check-sign::before,\n    .form-check-sign::after {\n        content: \" \";\n        display: inline-block;\n        position: absolute;\n        width: 24px;\n        height: 24px;\n        left: 0;\n        cursor: pointer;\n        border-radius: 6px;\n        top: 0;\n        background-color: #AAA7A4;\n        -webkit-transition: opacity 0.3s linear;\n        -moz-transition: opacity 0.3s linear;\n        -o-transition: opacity 0.3s linear;\n        -ms-transition: opacity 0.3s linear;\n        transition: opacity 0.3s linear;\n    }\n    .form-check-sign::after {\n        font-family: 'FontAwesome';\n        content: \"\\f00c\";\n        top: -1px;\n        text-align: center;\n        font-size: 15px;\n        opacity: 0;\n        color: #FFF;\n        border: 0;\n        background-color: inherit;\n    }\n    &.disabled{\n        .form-check-label{\n            color: $dark-gray;\n            opacity: .5;\n            cursor: not-allowed;\n        }\n    }\n\n}\n\n.form-check.disabled .form-check-label,\n.form-check.disabled .form-check-label {\n\n}\n\n.form-check input[type=\"checkbox\"],\n.form-check-radio input[type=\"radio\"]{\n    opacity: 0;\n    position: absolute;\n    visibility: hidden;\n}\n.form-check input[type=\"checkbox\"]:checked + .form-check-sign::after{\n    opacity: 1;\n}\n\n.form-control input[type=\"checkbox\"]:disabled + .form-check-sign::before,\n.checkbox input[type=\"checkbox\"]:disabled + .form-check-sign::after{\n    cursor: not-allowed;\n}\n\n.form-check .form-check-label input[type=\"checkbox\"]:disabled + .form-check-sign,\n.form-check-radio input[type=\"radio\"]:disabled + .form-check-sign{\n    pointer-events: none !important;\n}\n\n.form-check-radio{\n  margin-left: -3px;\n\n    .form-check-label{\n        padding-left: 2rem;\n    }\n    &.disabled{\n        .form-check-label{\n            color: $dark-gray;\n            opacity: .5;\n            cursor: not-allowed;\n        }\n    }\n}\n\n.form-check-radio .form-check-sign::before{\n    font-family: 'FontAwesome';\n    content: \"\\f10c\";\n    font-size: 22px;\n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n    display: inline-block;\n    position: absolute;\n    opacity: .50;\n    left: 5px;\n    top: -5px;\n}\n\n.form-check-label input[type=\"checkbox\"]:checked + .form-check-sign:before{\n    background-color: #66615B;\n}\n\n.form-check-radio input[type=\"radio\"] + .form-check-sign:after,\n.form-check-radio input[type=\"radio\"] {\n    opacity: 0;\n    @include transition-opacity(0.3s, linear);\n    content:\" \";\n    display: block;\n}\n\n.form-check-radio input[type=\"radio\"]:checked + .form-check-sign::after {\n    font-family: 'FontAwesome';\n    content: \"\\f192\";\n    top: -5px;\n    position: absolute;\n    left: 5px;\n    opacity: 1;\n    font-size: 22px;\n}\n\n.form-check-radio input[type=\"radio\"]:checked + .form-check-sign::after{\n    opacity: 1;\n}\n\n\n.form-check-radio input[type=\"radio\"]:disabled + .form-check-sign::before,\n.form-check-radio input[type=\"radio\"]:disabled + .form-check-sign::after {\n    color: $dark-gray;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_dropdown.scss",
    "content": ".dropdown {\n  > .dropdown-menu:first-of-type {\n    display: block;\n    transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1) 0s, opacity 0.3s ease 0s, height 0s linear 0.35s;\n  }\n  .dropdown-menu{\n      @include opacity(0);\n      @include box-shadow($dropdown-shadow);\n      visibility: hidden;\n      position: absolute;\n      \n      &[x-placement=\"top-start\"]{\n          @include transform-translate-y-dropdown(0px);\n\n      }\n      &[x-placement=\"bottom-start\"]{\n          @include transform-translate-y-dropdown(0px);\n      }\n  }\n\n  &.show .dropdown-menu{\n      @include opacity(1);\n      visibility: visible;\n\n      &[x-placement=\"top-start\"]{\n          @include transform-translate-y-dropdown(-50px);\n          top: auto !important;\n          bottom: 0 !important;\n\n      }\n      &[x-placement=\"bottom-start\"]{\n          @include transform-translate-y-dropdown(40px);\n          bottom: auto !important;\n          top: 0 !important;\n      }\n  }\n}\n\n.dropdown-menu{\n    background-color: $white-color;\n    border: 0 none;\n    border-radius: $border-radius-extreme;\n    margin-top: 10px;\n    padding: 0px;\n\n    .divider{\n        background-color: $medium-pale-bg;\n        margin: 0px;\n    }\n\n    .dropdown-header{\n        color: $dark-gray;\n        font-size: $font-size-small;\n        padding: $padding-dropdown-vertical $padding-dropdown-horizontal;\n    }\n\n    .no-notification{\n        color: #9A9A9A;\n        font-size: 1.2em;\n        padding: 30px 30px;\n        text-align: center;\n    }\n\n    .dropdown-item{\n        color: $font-color;\n        font-size: $font-size-base;\n        padding: 10px 45px 10px 15px;\n        clear: both;\n        white-space: nowrap;\n        width: 100%;\n        display: block;\n\n       img{\n           margin-top: -3px;\n       }\n\n    }\n    .dropdown-item:focus{\n        outline: 0 !important;\n    }\n\n    .btn-group.select &{\n        min-width: 100%;\n    }\n\n    .dropdown-item:first-child {\n       border-top-left-radius: $border-radius-extreme;\n       border-top-right-radius: $border-radius-extreme;\n    }\n\n    .dropdown-item:last-child {\n        border-bottom-left-radius: $border-radius-extreme;\n        border-bottom-right-radius: $border-radius-extreme;\n    }\n\n    .dropdown-item.dropdown-toggle:last-of-type{\n      border-bottom-left-radius: $border-radius-extreme;\n      border-bottom-right-radius: $border-radius-extreme;\n\n      +.dropdown-menu {\n        &.show {\n          left: 100% !important;\n        }\n        .dropdown-item.dropdown-toggle {\n          border-bottom-left-radius: 0;\n          border-bottom-right-radius: 0;\n        }\n        li .dropdown-item.dropdown-toggle {\n          border-top-left-radius: 0;\n          border-top-right-radius: 0;\n          border-bottom-left-radius: $border-radius-extreme;\n          border-bottom-right-radius: $border-radius-extreme;\n        }\n      }\n    }\n\n    .select & .dropdown-item:first-child{\n        border-radius: 0;\n        border-bottom: 0 none;\n    }\n\n    .dropdown-item:hover,\n    .dropdown-item:focus{\n        color: $white-color !important;\n        opacity: 1;\n        text-decoration: none;\n\n    }\n    .dropdown-item:hover,\n    .dropdown-item:focus{\n        background-color: $default-color;\n    }\n\n    &.dropdown-primary .dropdown-item:hover,\n    &.dropdown-primary .dropdown-item:focus{\n        background-color: $bg-primary;\n    }\n    &.dropdown-info .dropdown-item:hover,\n    &.dropdown-info .dropdown-item:focus{\n        background-color: $bg-info;\n    }\n    &.dropdown-success .dropdown-item:hover,\n    &.dropdown-success .dropdown-item:focus{\n        background-color: $bg-success;\n    }\n    &.dropdown-warning .dropdown-item:hover,\n    &.dropdown-warning .dropdown-item:focus{\n        background-color: $bg-warning;\n    }\n    &.dropdown-danger .dropdown-item:hover,\n    &.dropdown-danger .dropdown-item:focus{\n        background-color: $bg-danger;\n    }\n\n}\n.dropdown-divider {\n    margin: 0 !important;\n}\n\n//fixed the bug for the select items in btn-group\n\n.btn-group.select.open {\n  overflow: visible;\n}\n.dropdown-menu-right {\n  right: -2px;\n  left: auto;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_examples.scss",
    "content": ".landing-alert{\n    margin-bottom: 0;\n}\n.page-header{\n    background-color: #B2AFAB;\n    background-position: center center;\n    background-size: cover;\n    min-height: 100vh;\n    max-height: 999px;\n    overflow: hidden;\n    position: relative;\n    width: 100%;\n    z-index: 1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    .filter::after{\n        background-color: rgba(0, 0, 0, 0.5);\n        content: \"\";\n        display: block;\n        height: 100%;\n        left: 0;\n        top: 0;\n        position: absolute;\n        width: 100%;\n        z-index: 1;\n    }\n    &.page-header-small{\n        min-height: 65vh !important;\n        max-height: 700px;\n    }\n    &.page-header-xs{\n        min-height: 40vh !important;\n    }\n\n    &.section-dark{\n        .content-center,\n        .category-absolute{\n            z-index: 1;\n        }\n    }\n}\n.page-header .motto{\n    text-align: left;\n    z-index: 3;\n    color: #fff;\n    position: relative;\n\n}\n.landing-section{\n    padding: 100px 0;\n    z-index: 1;\n}\n.section-buttons{\n    z-index: 1;\n}\n.landing-section .btn-simple{\n    padding: 0;\n}\n.landing-section .column{\n    padding: 0 75px 0 25px;\n}\n.team-player .img-circle, .team-player .img-thumbnail{\n    display: block;\n    margin-top: 50px;\n    margin-left: auto;\n    margin-right: auto;\n    width: 120px;\n}\n.contact-form{\n    margin-top: 30px;\n}\n.contact-form label{\n    margin-top: 15px;\n}\n.contact-form .btn{\n    margin-top: 30px;\n}\n\n.navbar-relative{\n    position: relative;\n    z-index: 2;\n}\n#register-navbar a{\n    color: #FFF;\n}\n.register-background .container{\n    margin-top: 11%;\n    position: relative;\n    z-index: 3;\n}\n.register-footer{\n    bottom: 20px;\n    position: absolute;\n    z-index: 1;\n    width: 100%;\n    background: transparent;\n    color: $white-color;\n}\n.register-footer .fa-heart{\n    color: #EB5E28;\n}\n\n.register-card label{\n    margin-top: 15px;\n}\n.register-card .title{\n    color: #B33C12;\n    text-align: center;\n}\n.register-card .btn{\n    margin-top: 30px;\n}\n.register-card .forgot{\n    text-align: center;\n}\n\n.profile-content{\n    position: relative;\n}\n.owner{\n    text-align: center;\n}\n.owner .avatar{\n    padding: 15px;\n    max-width: 180px;\n    margin: -85px auto 0;\n    display: inline-block;\n}\n.owner .name h4{\n    margin-top: 10px;\n}\n.profile-tabs{\n    margin: 50px 0;\n    min-height: 300px;\n}\n#following h3{\n    margin: 20px 0 40px 0;\n}\n\n#follows .follows .unfollow .checkbox{\n    margin-top: -15px;\n}\n#follows .follows h6{\n    margin-top: 15px;\n}\n.follows hr{\n    margin-top: 10px;\n}\n.alert h5{\n    // margin-bottom: 10px;\n}\n.title-brand{\n    max-width: 730px;\n    margin: 0 auto;\n    position: relative;\n    text-align: center;\n    color: #FFFFFF;\n    display: block;\n\n    .type{\n        position: absolute;\n        font-size: 20px;\n        background: #132026;\n        padding: 6px 10px;\n        border-radius: 4px;\n        top: 0;\n        font-weight: 600;\n        margin-top: 10px;\n        right: -15px;\n    }\n}\n\n.presentation-title{\n    font-size: 8em;\n    font-weight: 700;\n    margin: 0;\n    color: #FFFFFF;\n    background: #fbf8ec;\n    background: -moz-linear-gradient(top, #FFFFFF 35%, #4e6773 100%);\n    background: -webkit-linear-gradient(top, #FFFFFF 35%,#4e6773 100%);\n    background: -ms-linear-gradient(top, #FFFFFF 35%,#4e6773 100%);\n    background: linear-gradient(to bottom, #FFFFFF 35%,#4e6773 100%);\n\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n}\n.presentation-subtitle{\n    font-size: 1.7em;\n    color: #FFFFFF;\n}\n\n.category-absolute{\n    position: absolute;\n    text-align: center;\n    top: 100vh;\n    margin-top: -60px;\n    padding: 0 15px;\n    width: 100%;\n    color: rgba(255, 255, 255, 0.5);\n\n    .creative-tim-logo {\n        max-width: 140px;\n        top: -2px;\n        left: 3px;\n        position: relative;\n    }\n}\n\n.fog-low{\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    margin-left: -35%;\n    margin-bottom: -50px;\n    width: 110%;\n    opacity: .85;\n\n    img{\n        width: 100%;\n    }\n\n    &.right{\n        margin-left: 30%;\n        opacity: 1;\n    }\n}\n.page-header{\n    .content-center{\n        margin-top: 85px;\n    }\n}\n.moving-clouds{\n    position: absolute;\n    z-index: 1;\n    bottom: 0;\n    left: 0;\n    width: 250.625em;\n    height: 43.75em;\n    -webkit-animation: cloudLoop 80s linear infinite;\n    animation: cloudLoop 80s linear infinite;\n}\n\n@keyframes cloudLoop{   0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}\n                        100%{-webkit-transform:translate3d(-50%,0,0);\n                        transform:translate3d(-50%,0,0)}\n                    }\n.following{\n    img{\n        max-width: 70px;\n    }\n}\n\n\n.profile-content{\n    & .tab-content{\n        & .tab-pane{\n            min-height: 200px;\n        }\n        & #tweets, #connections, #media{\n            height: 100%;\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_footers.scss",
    "content": ".footer{\n    background-attachment: fixed;\n    position: relative;\n    line-height: 20px;\n\n    .footer-nav{\n        ul{\n            padding-left: 0;\n            margin-bottom: 0;\n        }\n    }\n}\n.footer nav > ul {\n  list-style: none;\n  font-weight: normal;\n}\n.footer nav > ul > li{\n    display: inline-block;\n    padding: 10px 15px;\n    margin: 15px 3px;\n    line-height: 20px;\n    text-align: center;\n}\n.footer nav > ul a:not(.btn) {\n    color: #777777;\n    display: block;\n    margin-bottom: 3px;\n    line-height: 1.6;\n    opacity: .8;\n    font-size: 12px;\n    text-transform: uppercase;\n    font-weight: 600;\n}\n.footer nav > ul a:not(.btn):hover,\n.footer nav > ul a:not(.btn):focus {\n  color: #777777;\n  opacity: 1;\n}\n.footer .copyright {\n  color: #777777;\n  padding: 10px 0px;\n  font-size: 14px;\n  margin: 15px 3px;\n  line-height: 20px;\n  text-align: center;\n}\n.footer .heart{\n    color: #EB5E28;\n}\n.footer{\n    background-color: $white-color;\n    line-height: $line-height;\n\n    &.footer-black{\n        h4{\n            color: $white-color;\n        }\n    }\n\n    .links{\n        display: inline-block;\n\n        ul{\n            list-style: none;\n            margin: 0;\n            padding: 0;\n            font-weight: $font-weight-bold;\n\n            > li{\n                display: inline-block;\n                padding-right: 20px;\n            }\n            > li:last-child{\n                padding-right: 0px;\n            }\n\n            a:not(.btn){\n                color: $font-color;\n                display: block;\n                font-size: $font-size-h6;\n                margin-bottom: 3px;\n                &:hover,\n                &:focus{\n                    color: $default-states-color;\n                }\n            }\n\n            &.uppercase-links{\n                text-transform: uppercase;\n            }\n            &.stacked-links{\n                margin-top: 10px;\n\n                > li{\n                    display: block;\n                    line-height: 26px;\n                }\n                h4{\n                    margin-top: 0px;\n                }\n            }\n        }\n    }\n    .social-area{\n        padding: 15px 0;\n        .btn{\n            margin-bottom: 3px;\n            padding: 8px;\n            i{\n                margin-right: 0 !important;\n                color: #fff;\n            }\n        }\n    }\n    hr{\n        border-color: $medium-gray;\n        border-width: 1px 0 0;\n        margin-top: 5px;\n        margin-bottom: 5px;\n    }\n    .copyright{\n        color: $brown-font-color;\n        font-size: 0.9em;\n        ul > li{\n            padding-right: 0px;\n        }\n    }\n    .title{\n        color: $default-states-color;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_headers.scss",
    "content": ".page-header{\n    background-color: $header-background;\n    background-position: center center;\n    background-size: cover;\n    min-height: 100vh;\n    max-height: 999px;\n    overflow: hidden;\n    position: relative;\n    width: 100%;\n    z-index: 1;\n\n    &.page-header-small{\n        min-height: 65vh !important;\n        max-height: 700px;\n    }\n    &.page-header-xs{\n        min-height: 40vh !important;\n    }\n\n    .page-header-image{\n        position: absolute;\n        background-size: cover;\n        background-position: center center;\n        width: 100%;\n        height: 100%;\n        z-index: -1;\n    }\n\n\n    .content-center{\n       position: absolute;\n       top: 50%;\n       left: 50%;\n       z-index: 3;\n       -ms-transform: translate(-50%,-50%);\n       -webkit-transform: translate(-50%,-50%);\n       transform: translate(-50%,-50%);\n       text-align: center;\n       color: #FFFFFF;\n       width: 100%;\n   }\n\n    .motto{\n        color: #FFFFFF;\n        text-align: center;\n        z-index: 2;\n        position: relative;\n    }\n\n    .filter{\n      &::after{\n        background-color: rgba(0, 0, 0, 0.5);\n        content: \"\";\n        display: block;\n        height: 100%;\n        left: 0;\n        position: absolute;\n        top: 0;\n        width: 100%;\n        z-index: 2;\n      }\n      &.filter-primary::after{\n          background-color: rgba($filter-primary, 0.5);\n      }\n      &.filter-info::after{\n          background-color: rgba($filter-info, 0.5);\n      }\n      &.filter-success::after{\n          background-color: rgba($filter-success, 0.5);\n      }\n      &.filter-warning::after{\n          background-color: rgba($filter-warning, 0.5);\n      }\n      &.filter-danger::after{\n          background-color: rgba($filter-danger, 0.5);\n      }\n    }\n\n\n    .container{\n        color: $white-color;\n        position: relative;\n        z-index: 3;\n    }\n    .description{\n        color: $white-color;\n    }\n}\n.header-video{\n    &.state-play{\n        .filter::after{\n            opacity: 0;\n        }\n        .video-text{\n            opacity: 0;\n        }\n\n        .btn{\n            opacity: 0;\n        }\n\n        &:hover{\n            .btn{\n                opacity: 1;\n            }\n        }\n    }\n}\nvideo{\n    position: absolute;\n    width: 102%;\n}\n\n// For IE Browser\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n\n    .page-header{\n        .content-center{\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -75%);\n        }\n        .presentation-title{\n            background: none !important;\n        }\n    }\n\n    .subscribe-line{\n        .form-group{\n            .form-control{\n                line-height: 50px !important;\n                height: 50px !important;\n            }\n        }\n    }\n\n    .nav-tabs .nav-item .active.nav-link::before{\n        bottom: 2px !important;\n    }\n\n    .nav-tabs .nav-item .active.nav-link::after{\n        bottom: 1px !important;\n    }\n    .nav-stacked .active.nav-link::before{\n        right: 0 !important;\n        bottom: 7px !important;\n    }\n    .nav-stacked .active.nav-link::after{\n        right: -2px !important;\n        bottom: 0 !important;\n        top: 13px !important;\n    }\n    .buy-product{\n        .page-carousel{\n            .carousel-inner{\n                max-height: 570px !important;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_icons.scss",
    "content": "\n.section-nucleo-icons{\n    padding: 100px 0;\n\n    .icons-container{\n        position: relative;\n        max-width: 450px;\n        height: 300px;\n        max-height: 300px;\n        margin: 0 auto;\n\n        i{\n            font-size: 34px;\n            position: absolute;\n            top: 0;\n            left: 0;\n\n            &:nth-child(1){\n                top: 5%;\n                left: 7%;\n            }\n            &:nth-child(2){\n                top: 28%;\n                left: 24%;\n            }\n            &:nth-child(3){\n                top: 40%;\n            }\n            &:nth-child(4){\n                top: 18%;\n                left: 62%;\n            }\n            &:nth-child(5){\n                top: 74%;\n                left: 3%;\n            }\n            &:nth-child(6){\n                top: 36%;\n                left: 44%;\n                font-size: 65px;\n                color: $danger-color;\n                padding: 1px;\n            }\n            &:nth-child(7){\n                top: 59%;\n                left: 26%;\n            }\n            &:nth-child(8){\n                top: 60%;\n                left: 69%;\n            }\n            &:nth-child(9){\n                top: 72%;\n                left: 47%;\n            }\n            &:nth-child(10){\n                top: 88%;\n                left: 27%;\n            }\n            &:nth-child(11){\n                top: 31%;\n                left: 80%;\n            }\n            &:nth-child(12){\n                top: 88%;\n                left: 68%;\n            }\n            &:nth-child(13){\n                top: 5%;\n                left: 81%;\n            }\n            &:nth-child(14){\n                top: 58%;\n                left: 90%;\n            }\n            &:nth-child(15){\n                top: 6%;\n                left: 40%;\n            }\n        }\n    }\n}\n.section-dark{\n    .icons-container{\n        color: $white-color;\n    }\n}\n.info{\n    .icon{\n        margin-top: 0;\n        font-size: 3.4em;\n    }\n}\n.icon-primary{\n    color: $primary-color;\n}\n.icon-info{\n    color: $info-color;\n}\n.icon-success{\n    color: $success-color;\n}\n.icon-warning{\n    color: $warning-color;\n}\n.icon-danger{\n    color: $danger-color;\n}\n.icon-neutral{\n    color: $white-color;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_images.scss",
    "content": ".img-rounded{\n    border-radius: $border-radius-extreme;\n    transition: opacity 0.5s ease 0s;\n    max-width: 100%;\n}\n.img-details{\n    min-height: 50px;\n    padding: 0 4px 0.5em;\n\n}\n.img-details img{\n    width: 50px;\n}\n.img-details .author{\n    margin-left: 10px;\n    margin-top: -21px;\n    width: 40px;\n}\n.img-circle{\n    background-color: $white-color;\n    margin-bottom: 10px;\n    padding: 4px;\n    border-radius: 50% !important;\n    max-width: 100%;\n}\n.img-thumbnail{\n    border: 0 none;\n    border-radius: $border-radius-extreme;\n    box-shadow: 0 1px 2px rgba(164, 158, 147, 0.6);\n    margin-bottom: 10px;\n}\n.img-no-padding{\n    padding: 0px;\n}\n.example-page .img-rounded{\n    margin: 50px 0 20px;\n}\n.img-shadow{\n    box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),\n                0 3px 14px 2px rgba(0, 0, 0, 0.12),\n                0 5px 5px -3px rgba(0, 0, 0, 0.2)\n}\n.images-title{\n    margin-bottom: 20px;\n    height: 50px;\n}\n.nav-link .profile-photo-small{\n    width: 40px;\n    height: 30px;\n    margin: -10px 0 0 -15px;\n}\n.profile-picture{\n    margin: 0 auto;\n    .fileinput-new img{\n        width: 150px;\n        height: 150px;\n        border-radius: 50%;\n        margin-bottom: 10px;\n    }\n    .fileinput-exists img{\n        max-width: 150px;\n        max-height: 150px;\n        border-radius: 50%;\n        margin-bottom: 10px;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_inputs.scss",
    "content": "@include placeholder() {\n  color: $dark-gray;\n};\n\n.form-control:focus + .input-group-text{\n    border: 1px solid black;\n}\n.form-control {\n    background-color: $white-bg;\n    border: 1px solid $medium-gray;\n    border-radius: $border-radius-base;\n    color: $font-color;\n    font-size: $font-size-base;\n    transition: background-color 0.3s ease 0s;\n    padding-right: 0 !important;\n    @include input-size($padding-base-vertical, $padding-label-horizontal, $height-base);\n    @include box-shadow(none);\n\n    &:focus{\n       background-color: $white-bg;\n       border: 1px solid $table-line-color;\n       @include box-shadow(none);\n       outline: 0 !important;\n\n       + .input-group-prepend,\n       + .input-group-append {\n            .input-group-text {\n              border: 1px solid $table-line-color;\n              border-left: none;\n            }\n       }\n    }\n\n    &.no-border{\n        border: medium none !important;\n\n        &:focus {\n          + .input-group-prepend,\n          + .input-group-append {\n               .input-group-text {\n                 border: none;\n               }\n          }\n        }\n    }\n\n    .has-success &,\n    .has-error &,\n    .has-success &:focus,\n    .has-error &:focus{\n        @include box-shadow(none);\n    }\n\n    .has-success &{\n        border: 1px solid $table-line-color;\n        color: $font-color;\n\n        &.form-control-success{\n            padding-right: 2.5em !important;\n        }\n    }\n    .has-success &:focus{\n        border: 1px solid $success-color;\n        color: $success-color;\n    }\n    .has-danger &{\n        background-color: $danger-input-bg;\n        border: 1px solid $danger-color;\n        color: $danger-color;\n\n        &.form-control-danger{\n            padding-right: 2.5em !important;\n        }\n    }\n    .has-danger &:focus{\n        background-color: $white-color;\n        border: 1px solid $danger-color;\n    }\n\n    & + .form-control-feedback{\n        border-radius: $border-radius-large;\n        font-size: $font-size-base;\n        color: $danger-color;\n        font-size: .8rem;\n        position: absolute;\n        top: 100%;\n        padding-left: $padding-label-horizontal;\n        vertical-align: middle;\n    }\n\n    .open &{\n        border-radius: $border-radius-base $border-radius-base 0 0;\n        border-bottom-color: transparent;\n    }\n\n    &.form-control-lg {\n      height: 55px;\n      padding: $padding-large-vertical 13px;\n      font-size: 1.25rem;\n      line-height: 1.5;\n    }\n\n    &.form-control-sm {\n      padding: .25rem .5rem;\n      font-size: .875rem;\n      line-height: 1.5;\n      height: 31px;\n    }\n}\n\n.has-error{\n    .form-control-feedback, .control-label{\n        color: $danger-color;\n    }\n}\n.has-success{\n    .form-control-feedback, .control-label{\n        color: $success-color;\n    }\n}\n\n.input-group-prepend + .form-control {\n  margin-left: -1px;\n  border-left: none;\n}\n.form-control + .input-group-append .input-group-text {\n  border-right: 1px solid #ddd;\n}\n\n.input-group>.custom-select:not(:last-child),\n.input-group>.form-control:not(:last-child) {\n  border-right: none;\n}\n\n.input-group-text {\n    background-color: $white-bg;\n    border-radius: $border-radius-base;\n    border: 1px solid #ddd;\n    border-right: none;\n\n    .has-success &,\n    .has-error &{\n        background-color: $white-color;\n    }\n    .has-error .form-control:focus + &{\n        color: $danger-color;\n    }\n    .has-success .form-control:focus + &{\n        color: $success-color;\n    }\n    .form-control:focus + &,\n    .form-control:focus ~ &{\n        background-color: $white-color;\n    }\n}\n\n.input-group {\n  &.no-border{\n    .input-group-text {\n      border: 0;\n    }\n  }\n}\n\n\ntextarea.form-control{\n    padding: 10px 18px;\n    height: auto;\n}\n.form-group{\n    position: relative;\n}\n\n.register-form {\n  .form-control {\n    border: 1px solid transparent !important;\n  }\n  .input-group .form-control {\n    margin-left: -1px;\n  }\n\n  .input-group-prepend,\n  .input-group-append {\n    border: 1px solid transparent !important;\n  }\n}\n\n#inputs {\n\n    .input-group{\n        margin-bottom: 1rem;\n    }\n}\n\n.card-form-horizontal{\n    .card-body{\n        .form-group{\n            margin-bottom: 0;\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_labels.scss",
    "content": "/*           Labels & Progress-bar              */\n.label{\n    padding: 0.2em 0.6em;\n    border-radius: 10px;\n    color: #FFFFFF;\n    font-weight: 500;\n    font-size: 0.75em;\n    text-transform: uppercase;\n    display: inline-block;\n    margin-bottom: 3px;\n    line-height: 17px;\n}\n.label-primary{\n    background-color: $primary-color;\n}\n.label-info{\n    background-color: $info-color;\n}\n.label-success{\n    background-color: $success-color;\n}\n.label-warning{\n    background-color: $warning-color;\n}\n.label-danger{\n    background-color: $danger-color;\n}\n.label-default{\n    background-color: $default-color;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_misc.scss",
    "content": "/*     General overwrite     */\nbody{\n    color: $font-color;\n    font-size: $font-size-base;\n    font-weight: $font-weight-light;\n    font-family: 'Montserrat', \"Helvetica\", Arial, sans-serif;\n}\na{\n  color: $info-color;\n\n  &:hover, &:focus{\n     color: $info-states-color;\n     text-decoration: none;\n  }\n\n  // @include transition($fast-transition-time, linear);\n}\nhr{\n    border-color: $medium-pale-bg;\n}\n.icon{\n    fill: $font-color;\n}\n.fa-base{\n    font-size: 1.25em !important;\n}\na:focus, a:active,\nbutton::-moz-focus-inner,\ninput[type=\"reset\"]::-moz-focus-inner,\ninput[type=\"button\"]::-moz-focus-inner,\ninput[type=\"submit\"]::-moz-focus-inner,\nselect::-moz-focus-inner,\ninput[type=\"file\"] > input[type=\"button\"]::-moz-focus-inner {\n    outline : 0;\n}\n.ui-slider-handle:focus,\n.navbar-toggle {\n    outline : 0 !important;\n}\n\n\n/*           Animations              */\n.form-control,\n.input-group-addon,\n.tagsinput,\n.navbar,\n.navbar .alert,\n.carousel-control.right,\n.carousel-control.left\n{\n    @include transition($general-transition-time, linear);\n}\n.tagsinput .tag,\n.tagsinput-remove-link,\n.filter,\n.btn-hover,\n[data-toggle=\"collapse\"] i,\n.animation-transition-fast,\n.dropdown-menu .dropdown-item{\n    @include transition($fast-transition-time, linear);\n}\n\n.btn-morphing .fa,\n.btn-morphing .circle,\n.gsdk-collapse{\n    @include transition($slow-transition-time, linear);\n}\n\n.fa{\n    width: 18px;\n    text-align: center;\n}\n.margin-top{\n    margin-top: 50px;\n}\n\n.iframe-container iframe{\n    box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2);\n}\n\n/*       CT colors          */\n.ct-blue{\n    color: $primary-color;\n}\n.ct-azure{\n    color: $info-color;\n}\n.ct-green{\n    color: $success-color;\n}\n.ct-orange{\n    color: $warning-color;\n}\n.ct-red{\n    color: $danger-color;\n}\n\n//stefan changes\n\n.pagination .page-item .page-link .fa{\n    width: auto;\n    font-weight: $font-weight-bold;\n}\n\n.bg-primary{\n    @include navbar-color($bg-primary !important);\n}\n.bg-info{\n    @include navbar-color($bg-info !important);\n}\n.bg-success{\n    @include navbar-color($bg-success !important);\n}\n.bg-warning{\n    @include navbar-color($bg-warning !important);\n}\n.bg-danger{\n    @include navbar-color($bg-danger !important);\n}\n\n\n.wrapper {\n  -webkit-transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  transition: all 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);\n  left: 0;\n  background-color: $white-color;\n  position: relative;\n  z-index: 1;\n}\n\n// Pulsing Heart (footer)\n.heart {\n  color: #EB5E28;\n  animation: heathing 1s ease infinite,;\n}\n\n@keyframes heathing {\n  0% { transform: scale( .75 ); }\n  20% { transform: scale( 1 ); }\n  40% { transform: scale( .75 ); }\n  60% { transform: scale( 1 ); }\n  80% { transform: scale( .75 ); }\n  100% { transform: scale( .75 ); }\n}\n\n\n.bd-docs {\n  .page-header {\n    min-height: 50vh;\n  }\n}\n\n.offline-doc {\n  .navbar.navbar-transparent{\n    padding-top: 25px;\n    border-bottom: none;\n\n    .navbar-minimize {\n      display: none;\n    }\n    .navbar-brand,\n    .collapse .navbar-nav .nav-link {\n      color: $white-color !important;\n    }\n  }\n\n  .footer{\n    position: absolute;\n    width: 100%;\n    background: transparent;\n    bottom: 0;\n    z-index: 3;\n\n    nav > ul a:not(.btn),\n    .copyright {\n      color: $white-color !important;\n    }\n  }\n\n  .page-header{\n      .page-header-image {\n        position: absolute;\n        background-size: cover;\n        background-position: center center;\n        width: 100%;\n        height: 100%;\n        z-index: -1;\n      }\n    .container {\n      z-index: 3;\n    }\n    &:after {\n      background-color: rgba(0, 0, 0, 0.5);\n      content: \"\";\n      display: block;\n      height: 100%;\n      left: 0;\n      position: absolute;\n      top: 0;\n      width: 100%;\n      z-index: 2;\n    }\n  }\n}\n\n.main .section:first-of-type {\n    position: relative;\n    z-index: 2;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_mixins.scss",
    "content": "//Utilities\n\n@import \"mixins/transparency\";\n@import \"mixins/vendor-prefixes\";\n\n//Components\n\n@import \"mixins/buttons\";\n@import \"mixins/inputs\";\n@import \"mixins/labels\";\n@import \"mixins/tabs\";\n@import \"mixins/navbars\";\n@import \"mixins/alerts\";\n@import \"mixins/popovers\";\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_modal.scss",
    "content": ".modal-header {\n    border-bottom: 1px solid $medium-gray;\n    padding: 20px;\n    text-align: center;\n    display: block !important;\n\n    &.no-border-header{\n        border-bottom: 0 none !important;\n        & .modal-title{\n            margin-top: 20px;\n\n        }\n    }\n    button.close{\n      &:focus {\n        outline: none;\n      }\n    }\n}\n.modal-dialog{\n    &.modal-sm,\n    &.modal-register{\n        .modal-header{\n            button.close{\n                margin-top: 0;\n            }\n        }\n    }\n}\n\n.modal-content {\n    border: 0 none;\n    border-radius: 10px;\n    box-shadow: 0 0 15px rgba(0, 0, 0, 0.15), 0 0 1px 1px rgba(0, 0, 0, 0.1);\n    .modal-header{\n        h6{\n            margin-top: 10px;\n        }\n    }\n}\n\n.modal-dialog {\n    padding-top: 60px;\n}\n.modal-body{\n    padding: 20px 50px;\n    color: #000;\n}\n.modal-footer {\n    border-top: 1px solid $medium-gray;\n    padding: 0px;\n\n    &.no-border-footer{\n        border-top: 0 none;\n    }\n}\n.modal-footer .left-side, .modal-footer .right-side{\n    display: inline-block;\n    text-align: center;\n    width: 49%;\n}\n.modal-footer .btn-link{\n    padding: 20px;\n    width: 100%\n}\n.modal-footer .divider{\n    background-color: $medium-gray;\n    display: inline-block;\n    float: inherit;\n    height: 63px;\n    margin: 0px -3px;\n    // position: absolute;\n    width: 1px;\n}\n\n.modal-register .modal-footer{\n    text-align: center;\n    margin-bottom: 25px;\n    padding: 20px 0 15px;\n    span{\n        width: 100%;\n    }\n}\n.modal-header:after {\n     display: table;\n     content: \" \";\n}\n.modal-header:before{\n    display: table;\n    content: \" \";\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_navbars.scss",
    "content": "\n.nav {\n  .nav-item{\n    .nav-link:hover,\n    .nav-link:focus{\n        background-color: transparent;\n    }\n  }\n}\n.navbar {\n    border: $none;\n    font-size: $font-size-base;\n    transition: all 0.4s;\n    -webkit-transition: all 0.4s;\n    padding: 0;\n    background: $white-color;\n    box-shadow: 0 6px 10px -4px rgba(0, 0, 0, 0.15);\n\n    .navbar-brand {\n        font-weight: $font-weight-bold;\n        margin: $navbar-margin-brand;\n        padding: $navbar-padding-brand;\n        font-size: $font-size-base;\n        color: $default-color;\n        text-transform: uppercase;\n    }\n    .navbar-toggler:focus {\n      outline: none;\n    }\n    .form-control-feedback {\n      padding-left: 0px;\n    }\n\n    &:not([class*=\"bg\"]) {\n      .navbar-toggler {\n        .navbar-toggler-bar {\n          background: $default-color !important;\n        }\n      }\n    }\n\n    .navbar-nav {\n        .nav-item .nav-link {\n            line-height: 1.6;\n            margin: $navbar-margin-a;\n            padding: $navbar-padding-a;\n            opacity: .8;\n            font-size: $font-size-small;\n            text-transform: uppercase;\n            font-weight: 600;\n            color: $default-color;\n\n            p {\n              margin: 0px 0px;\n              text-transform: uppercase;\n              font-weight: 600;\n              font-size: 12px;\n              line-height: 1.5em;\n              padding: 15px 0;\n            }\n         }\n        .nav-item .nav-link.btn {\n            margin: $navbar-margin-a-btn;\n            padding: 9px;\n\n         }\n        .nav-item .nav-link [class^=\"fa\"] {\n            font-size: 17px;\n            position: relative;\n            right: 5px;\n        }\n        .dropdown-menu {\n            border-radius: $border-radius-extreme;\n            margin-top: 1px;\n        }\n        .nav-item {\n          .btn {\n            i {\n              color: $white-color;\n            }\n          }\n        }\n    }\n    .navbar-collapse{\n        & .nav-item{\n            & .nav-link{\n                p{\n                    display: inline;\n                }\n            }\n            & .dropdown-item{\n                i{\n                    margin: 0 10px;\n                    margin: 0 10px 0px 5px;\n                    font-size: 18px;\n                    position: relative;\n                    top: 3px;\n                }\n            }\n        }\n        &.show{\n            & .navbar-nav{\n                & .nav-item{\n                    padding-right: 10px;\n                }\n            }\n        }\n\n        &:after {\n          background-color: #FFFCF5;\n        }\n    }\n    #navbarSupportedContent{\n        .nav-item{\n            position: relative;\n        }\n    }\n    .notification-bubble{\n        padding: 0.4em 0.6em;\n        position: absolute;\n        top: 10px;\n        right: -2px;\n    }\n    .btn{\n       margin: 14px 3px;\n       font-size: $font-size-small;\n       i{\n           font-size: 14px;\n           position: relative;\n           top: 2px;\n       }\n    }\n    .btn-simple{\n        font-size: $font-size-medium;\n    }\n    .caret{\n       @include center-item();\n    }\n    &.navbar-transparent {\n      background: transparent !important;\n      padding-top: 25px;\n      box-shadow: none;\n\n      .navbar-brand {\n        color: $white-color;\n      }\n\n      .navbar-nav {\n        .nav-item .nav-link {\n          color: $white-color;\n        }\n      }\n\n      .navbar-toggler {\n        .navbar-toggler-bar {\n          background: $white-color !important;\n        }\n      }\n    }\n    .logo-container{\n        margin-top: 5px;\n        .logo{\n            overflow: hidden;\n            border-radius: 50%;\n            border: 1px solid #333333;\n            width: 50px;\n            float: left;\n\n            img{\n                width: 100%;\n            }\n        }\n        .brand{\n            font-size: 18px;\n            color: #FFFFFF;\n            line-height: 20px;\n            float: left;\n            margin-left: 10px;\n            margin-top: 5px;\n            width: 75px;\n            height: 50px;\n            }\n    }\n    .navbar-toggler .navbar-toggler-bar + .navbar-toggler-bar,\n    .navbar-toggler .navbar-toggler-icon + .navbar-toggler-icon{\n        margin-top: 4px;\n    }\n    .navbar-toggler {\n      .navbar-toggler-bar {\n        background: $white-color !important;\n        display: block;\n        position: relative;\n        width: 24px;\n        height: 2px;\n        border-radius: 1px;\n        margin: 0 auto;\n      }\n    }\n}\n\n.navbar-transparent, [class*=\"bg\"]{\n    .navbar-brand{\n        color: $white-color;\n        @include opacity(.9);\n\n        &:focus,\n        &:hover{\n            background-color: transparent;\n            @include opacity(1);\n            color: $white-color;\n        }\n    }\n\n    .navbar-nav{\n        .nav-item .nav-link:not(.btn){\n            color: $white-color;\n            border-color: $white-color;\n        }\n        .active .nav-link\n        .active .nav-link:hover,\n        .active .nav-link:focus,\n        .nav-item .nav-link:hover,\n        .nav-item .nav-link:focus{\n            background-color: transparent;\n            color: $white-color;\n            @include opacity(1);\n        }\n        .nav .nav-item a.btn:hover{\n            background-color: transparent;\n        }\n\n        .dropdown .nav-link .caret,\n        .dropdown .nav-link:hover .caret,\n        .dropdown .nav-link:focus .caret{\n            border-bottom-color: $white-color;\n            border-top-color: $white-color;\n        }\n\n        .open .nav-link,\n        .open .nav-link:hover,\n        .open .nav-link:focus {\n            background-color: transparent;\n            color: $default-color;\n            @include opacity(1);\n        }\n    }\n\n    .btn-default.btn-fill{\n        color: $dark-gray;\n        background-color: $white-color;\n        @include opacity(.9);\n    }\n    .btn-default.btn-fill:hover,\n    .btn-default.btn-fill:focus,\n    .btn-default.btn-fill:active,\n    .btn-default.btn-fill.active,\n    .open .dropdown-toggle.btn-fill.btn-default{\n        border-color: $white-color;\n        @include opacity(1);\n    }\n\n}\n\n.navbar-absolute{\n    position: absolute;\n    width: 100%;\n    padding-top: 10px;\n    z-index: 1029;\n}\n\n.bd-docs {\n  .navigation-example {\n    .navbar.navbar-transparent {\n      padding-top: 0;\n      padding: 20px 0;\n      margin-top: 20px;\n    }\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_nucleo-icons.scss",
    "content": "/*--------------------------------\n\nnucleo-icons Web Font - built using nucleoapp.com\nLicense - nucleoapp.com/license/\n\n-------------------------------- */\n@font-face {\n  font-family: 'nucleo-icons';\n  src: url('../fonts/nucleo-icons.eot');\n  src: url('../fonts/nucleo-icons.eot') format('embedded-opentype'), url('../fonts/nucleo-icons.woff2') format('woff2'), url('../fonts/nucleo-icons.woff') format('woff'), url('../fonts/nucleo-icons.ttf') format('truetype'), url('../fonts/nucleo-icons.svg') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n/*------------------------\n\tbase class definition\n-------------------------*/\n.nc-icon {\n  display: inline-block;\n  font: normal normal normal 14px/1 'nucleo-icons';\n  font-size: inherit;\n  speak: none;\n  text-transform: none;\n  /* Better Font Rendering */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/*------------------------\n  change icon size\n-------------------------*/\n.nc-icon.lg {\n  font-size: 1.33333333em;\n  vertical-align: -16%;\n}\n.nc-icon.x2 {\n  font-size: 2em;\n}\n.nc-icon.x3 {\n  font-size: 3em;\n}\n/*----------------------------------\n  add a square/circle background\n-----------------------------------*/\n.nc-icon.square,\n.nc-icon.circle {\n  padding: 0.33333333em;\n  vertical-align: -16%;\n  background-color: #eee;\n}\n.nc-icon.circle {\n  border-radius: 50%;\n}\n/*------------------------\n  list icons\n-------------------------*/\n.nc-icon-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.nc-icon-ul > li {\n  position: relative;\n}\n.nc-icon-ul > li > .nc-icon {\n  position: absolute;\n  left: -1.57142857em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.nc-icon-ul > li > .nc-icon.lg {\n  top: 0;\n  left: -1.35714286em;\n}\n.nc-icon-ul > li > .nc-icon.circle,\n.nc-icon-ul > li > .nc-icon.square {\n  top: -0.19047619em;\n  left: -1.9047619em;\n}\n/*------------------------\n  spinning icons\n-------------------------*/\n.nc-icon.spin {\n  -webkit-animation: nc-icon-spin 2s infinite linear;\n  -moz-animation: nc-icon-spin 2s infinite linear;\n  animation: nc-icon-spin 2s infinite linear;\n}\n@-webkit-keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n  }\n}\n@-moz-keyframes nc-icon-spin {\n  0% {\n    -moz-transform: rotate(0deg);\n  }\n  100% {\n    -moz-transform: rotate(360deg);\n  }\n}\n@keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    -moz-transform: rotate(0deg);\n    -ms-transform: rotate(0deg);\n    -o-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    -moz-transform: rotate(360deg);\n    -ms-transform: rotate(360deg);\n    -o-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n/*------------------------\n  rotated/flipped icons\n-------------------------*/\n.nc-icon.rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -moz-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  -o-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.nc-icon.rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -moz-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  -o-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.nc-icon.rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -moz-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  -o-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.nc-icon.flip-y {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);\n  -webkit-transform: scale(-1, 1);\n  -moz-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  -o-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.nc-icon.flip-x {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: scale(1, -1);\n  -moz-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  -o-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n/*------------------------\n\tfont icons\n-------------------------*/\n\n.nc-air-baloon::before {\n    content: \"\\ea01\";\n}\n\n.nc-album-2::before {\n    content: \"\\ea02\";\n}\n\n.nc-alert-circle-i::before {\n    content: \"\\ea04\";\n}\n\n.nc-align-center::before {\n    content: \"\\ea03\";\n}\n\n.nc-align-left-2::before {\n    content: \"\\ea05\";\n}\n\n.nc-ambulance::before {\n    content: \"\\ea06\";\n}\n\n.nc-app::before {\n    content: \"\\ea07\";\n}\n\n.nc-atom::before {\n    content: \"\\ea08\";\n}\n\n.nc-badge::before {\n    content: \"\\ea09\";\n}\n\n.nc-bag-16::before {\n    content: \"\\ea0a\";\n}\n\n.nc-bank::before {\n    content: \"\\ea0b\";\n}\n\n.nc-basket::before {\n    content: \"\\ea0c\";\n}\n\n.nc-bell-55::before {\n    content: \"\\ea0d\";\n}\n\n.nc-bold::before {\n    content: \"\\ea0e\";\n}\n\n.nc-book-bookmark::before {\n    content: \"\\ea0f\";\n}\n\n.nc-bookmark-2::before {\n    content: \"\\ea10\";\n}\n\n.nc-box-2::before {\n    content: \"\\ea11\";\n}\n\n.nc-box::before {\n    content: \"\\ea12\";\n}\n\n.nc-briefcase-24::before {\n    content: \"\\ea13\";\n}\n\n.nc-bulb-63::before {\n    content: \"\\ea14\";\n}\n\n.nc-bullet-list-67::before {\n    content: \"\\ea15\";\n}\n\n.nc-bus-front-12::before {\n    content: \"\\ea16\";\n}\n\n.nc-button-pause::before {\n    content: \"\\ea17\";\n}\n\n.nc-button-play::before {\n    content: \"\\ea18\";\n}\n\n.nc-button-power::before {\n    content: \"\\ea19\";\n}\n\n.nc-calendar-60::before {\n    content: \"\\ea1a\";\n}\n\n.nc-camera-compact::before {\n    content: \"\\ea1b\";\n}\n\n.nc-caps-small::before {\n    content: \"\\ea1c\";\n}\n\n.nc-cart-simple::before {\n    content: \"\\ea1d\";\n}\n\n.nc-chart-bar-32::before {\n    content: \"\\ea1e\";\n}\n\n.nc-chart-pie-36::before {\n    content: \"\\ea1f\";\n}\n\n.nc-chat-33::before {\n    content: \"\\ea20\";\n}\n\n.nc-check-2::before {\n    content: \"\\ea21\";\n}\n\n.nc-circle-10::before {\n    content: \"\\ea22\";\n}\n\n.nc-cloud-download-93::before {\n    content: \"\\ea23\";\n}\n\n.nc-cloud-upload-94::before {\n    content: \"\\ea24\";\n}\n\n.nc-compass-05::before {\n    content: \"\\ea25\";\n}\n\n.nc-controller-modern::before {\n    content: \"\\ea26\";\n}\n\n.nc-credit-card::before {\n    content: \"\\ea27\";\n}\n\n.nc-delivery-fast::before {\n    content: \"\\ea28\";\n}\n\n.nc-diamond::before {\n    content: \"\\ea29\";\n}\n\n.nc-email-85::before {\n    content: \"\\ea2a\";\n}\n\n.nc-favourite-28::before {\n    content: \"\\ea2b\";\n}\n\n.nc-glasses-2::before {\n    content: \"\\ea2c\";\n}\n\n.nc-globe-2::before {\n    content: \"\\ea2d\";\n}\n\n.nc-globe::before {\n    content: \"\\ea2e\";\n}\n\n.nc-hat-3::before {\n    content: \"\\ea2f\";\n}\n\n.nc-headphones::before {\n    content: \"\\ea30\";\n}\n\n.nc-html5::before {\n    content: \"\\ea31\";\n}\n\n.nc-image::before {\n    content: \"\\ea32\";\n}\n\n.nc-istanbul::before {\n    content: \"\\ea33\";\n}\n\n.nc-key-25::before {\n    content: \"\\ea34\";\n}\n\n.nc-laptop::before {\n    content: \"\\ea35\";\n}\n\n.nc-layout-11::before {\n    content: \"\\ea36\";\n}\n\n.nc-lock-circle-open::before {\n    content: \"\\ea37\";\n}\n\n.nc-map-big::before {\n    content: \"\\ea38\";\n}\n\n.nc-minimal-down::before {\n    content: \"\\ea39\";\n}\n\n.nc-minimal-left::before {\n    content: \"\\ea3a\";\n}\n\n.nc-minimal-right::before {\n    content: \"\\ea3b\";\n}\n\n.nc-minimal-up::before {\n    content: \"\\ea3c\";\n}\n\n.nc-mobile::before {\n    content: \"\\ea3d\";\n}\n\n.nc-money-coins::before {\n    content: \"\\ea3e\";\n}\n\n.nc-note-03::before {\n    content: \"\\ea3f\";\n}\n\n.nc-palette::before {\n    content: \"\\ea40\";\n}\n\n.nc-paper::before {\n    content: \"\\ea41\";\n}\n\n.nc-pin-3::before {\n    content: \"\\ea42\";\n}\n\n.nc-planet::before {\n    content: \"\\ea43\";\n}\n\n.nc-refresh-69::before {\n    content: \"\\ea44\";\n}\n\n.nc-ruler-pencil::before {\n    content: \"\\ea45\";\n}\n\n.nc-satisfied::before {\n    content: \"\\ea46\";\n}\n\n.nc-scissors::before {\n    content: \"\\ea47\";\n}\n\n.nc-send::before {\n    content: \"\\ea48\";\n}\n\n.nc-settings-gear-65::before {\n    content: \"\\ea49\";\n}\n\n.nc-settings::before {\n    content: \"\\ea4a\";\n}\n\n.nc-share-66::before {\n    content: \"\\ea4b\";\n}\n\n.nc-shop::before {\n    content: \"\\ea4c\";\n}\n\n.nc-simple-add::before {\n    content: \"\\ea4d\";\n}\n\n.nc-simple-delete::before {\n    content: \"\\ea4e\";\n}\n\n.nc-simple-remove::before {\n    content: \"\\ea4f\";\n}\n\n.nc-single-02::before {\n    content: \"\\ea50\";\n}\n\n.nc-single-copy-04::before {\n    content: \"\\ea51\";\n}\n\n.nc-sound-wave::before {\n    content: \"\\ea52\";\n}\n\n.nc-spaceship::before {\n    content: \"\\ea53\";\n}\n\n.nc-sun-fog-29::before {\n    content: \"\\ea54\";\n}\n\n.nc-support-17::before {\n    content: \"\\ea55\";\n}\n\n.nc-tablet-2::before {\n    content: \"\\ea56\";\n}\n\n.nc-tag-content::before {\n    content: \"\\ea57\";\n}\n\n.nc-tap-01::before {\n    content: \"\\ea58\";\n}\n\n.nc-tie-bow::before {\n    content: \"\\ea59\";\n}\n\n.nc-tile-56::before {\n    content: \"\\ea5a\";\n}\n\n.nc-time-alarm::before {\n    content: \"\\ea5b\";\n}\n\n.nc-touch-id::before {\n    content: \"\\ea5c\";\n}\n\n.nc-trophy::before {\n    content: \"\\ea5d\";\n}\n\n.nc-tv-2::before {\n    content: \"\\ea5e\";\n}\n\n.nc-umbrella-13::before {\n    content: \"\\ea5f\";\n}\n\n.nc-user-run::before {\n    content: \"\\ea60\";\n}\n\n.nc-vector::before {\n    content: \"\\ea61\";\n}\n\n.nc-watch-time::before {\n    content: \"\\ea62\";\n}\n\n.nc-world-2::before {\n    content: \"\\ea63\";\n}\n\n.nc-zoom-split::before {\n    content: \"\\ea64\";\n}\n\n\n/* all icon font classes list here */\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_nucleo-outline.scss",
    "content": "/*--------------------------------\n\nnucleo-icons Web Font - built using nucleoapp.com\nLicense - nucleoapp.com/license/\n\n-------------------------------- */\n@font-face {\n  font-family: 'nucleo-icons';\n  src: url('../fonts/nucleo-icons.eot');\n  src: url('../fonts/nucleo-icons.eot') format('embedded-opentype'), url('../fonts/nucleo-icons.woff2') format('woff2'), url('../fonts/nucleo-icons.woff') format('woff'), url('../fonts/nucleo-icons.ttf') format('truetype'), url('../fonts/nucleo-icons.svg') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n/*------------------------\n\tbase class definition\n-------------------------*/\n.nc-icon {\n  display: inline-block;\n  font: normal normal normal 14px/1 'nucleo-icons';\n  font-size: inherit;\n  speak: none;\n  text-transform: none;\n  /* Better Font Rendering */\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/*------------------------\n  change icon size\n-------------------------*/\n.nc-icon.lg {\n  font-size: 1.33333333em;\n  vertical-align: -16%;\n}\n.nc-icon.x2 {\n  font-size: 2em;\n}\n.nc-icon.x3 {\n  font-size: 3em;\n}\n/*----------------------------------\n  add a square/circle background\n-----------------------------------*/\n.nc-icon.square,\n.nc-icon.circle {\n  padding: 0.33333333em;\n  vertical-align: -16%;\n  background-color: #eee;\n}\n.nc-icon.circle {\n  border-radius: 50%;\n}\n/*------------------------\n  list icons\n-------------------------*/\n.nc-icon-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.nc-icon-ul > li {\n  position: relative;\n}\n.nc-icon-ul > li > .nc-icon {\n  position: absolute;\n  left: -1.57142857em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.nc-icon-ul > li > .nc-icon.lg {\n  top: 0;\n  left: -1.35714286em;\n}\n.nc-icon-ul > li > .nc-icon.circle,\n.nc-icon-ul > li > .nc-icon.square {\n  top: -0.19047619em;\n  left: -1.9047619em;\n}\n/*------------------------\n  spinning icons\n-------------------------*/\n.nc-icon.spin {\n  -webkit-animation: nc-icon-spin 2s infinite linear;\n  -moz-animation: nc-icon-spin 2s infinite linear;\n  animation: nc-icon-spin 2s infinite linear;\n}\n@-webkit-keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n  }\n}\n@-moz-keyframes nc-icon-spin {\n  0% {\n    -moz-transform: rotate(0deg);\n  }\n  100% {\n    -moz-transform: rotate(360deg);\n  }\n}\n@keyframes nc-icon-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    -moz-transform: rotate(0deg);\n    -ms-transform: rotate(0deg);\n    -o-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    -moz-transform: rotate(360deg);\n    -ms-transform: rotate(360deg);\n    -o-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n/*------------------------\n  rotated/flipped icons\n-------------------------*/\n.nc-icon.rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -moz-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  -o-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.nc-icon.rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -moz-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  -o-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.nc-icon.rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -moz-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  -o-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.nc-icon.flip-y {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0);\n  -webkit-transform: scale(-1, 1);\n  -moz-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  -o-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.nc-icon.flip-x {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: scale(1, -1);\n  -moz-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  -o-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n/*------------------------\n\tfont icons\n-------------------------*/\n\n.nc-air-baloon::before {\n    content: \"\\ea01\";\n}\n\n.nc-album-2::before {\n    content: \"\\ea02\";\n}\n\n.nc-alert-circle-i::before {\n    content: \"\\ea04\";\n}\n\n.nc-align-center::before {\n    content: \"\\ea03\";\n}\n\n.nc-align-left-2::before {\n    content: \"\\ea05\";\n}\n\n.nc-ambulance::before {\n    content: \"\\ea06\";\n}\n\n.nc-app::before {\n    content: \"\\ea07\";\n}\n\n.nc-atom::before {\n    content: \"\\ea08\";\n}\n\n.nc-badge::before {\n    content: \"\\ea09\";\n}\n\n.nc-bag-16::before {\n    content: \"\\ea0a\";\n}\n\n.nc-bank::before {\n    content: \"\\ea0b\";\n}\n\n.nc-basket::before {\n    content: \"\\ea0c\";\n}\n\n.nc-bell-55::before {\n    content: \"\\ea0d\";\n}\n\n.nc-bold::before {\n    content: \"\\ea0e\";\n}\n\n.nc-book-bookmark::before {\n    content: \"\\ea0f\";\n}\n\n.nc-bookmark-2::before {\n    content: \"\\ea10\";\n}\n\n.nc-box-2::before {\n    content: \"\\ea11\";\n}\n\n.nc-box::before {\n    content: \"\\ea12\";\n}\n\n.nc-briefcase-24::before {\n    content: \"\\ea13\";\n}\n\n.nc-bulb-63::before {\n    content: \"\\ea14\";\n}\n\n.nc-bullet-list-67::before {\n    content: \"\\ea15\";\n}\n\n.nc-bus-front-12::before {\n    content: \"\\ea16\";\n}\n\n.nc-button-pause::before {\n    content: \"\\ea17\";\n}\n\n.nc-button-play::before {\n    content: \"\\ea18\";\n}\n\n.nc-button-power::before {\n    content: \"\\ea19\";\n}\n\n.nc-calendar-60::before {\n    content: \"\\ea1a\";\n}\n\n.nc-camera-compact::before {\n    content: \"\\ea1b\";\n}\n\n.nc-caps-small::before {\n    content: \"\\ea1c\";\n}\n\n.nc-cart-simple::before {\n    content: \"\\ea1d\";\n}\n\n.nc-chart-bar-32::before {\n    content: \"\\ea1e\";\n}\n\n.nc-chart-pie-36::before {\n    content: \"\\ea1f\";\n}\n\n.nc-chat-33::before {\n    content: \"\\ea20\";\n}\n\n.nc-check-2::before {\n    content: \"\\ea21\";\n}\n\n.nc-circle-10::before {\n    content: \"\\ea22\";\n}\n\n.nc-cloud-download-93::before {\n    content: \"\\ea23\";\n}\n\n.nc-cloud-upload-94::before {\n    content: \"\\ea24\";\n}\n\n.nc-compass-05::before {\n    content: \"\\ea25\";\n}\n\n.nc-controller-modern::before {\n    content: \"\\ea26\";\n}\n\n.nc-credit-card::before {\n    content: \"\\ea27\";\n}\n\n.nc-delivery-fast::before {\n    content: \"\\ea28\";\n}\n\n.nc-diamond::before {\n    content: \"\\ea29\";\n}\n\n.nc-email-85::before {\n    content: \"\\ea2a\";\n}\n\n.nc-favourite-28::before {\n    content: \"\\ea2b\";\n}\n\n.nc-glasses-2::before {\n    content: \"\\ea2c\";\n}\n\n.nc-globe-2::before {\n    content: \"\\ea2d\";\n}\n\n.nc-globe::before {\n    content: \"\\ea2e\";\n}\n\n.nc-hat-3::before {\n    content: \"\\ea2f\";\n}\n\n.nc-headphones::before {\n    content: \"\\ea30\";\n}\n\n.nc-html5::before {\n    content: \"\\ea31\";\n}\n\n.nc-image::before {\n    content: \"\\ea32\";\n}\n\n.nc-istanbul::before {\n    content: \"\\ea33\";\n}\n\n.nc-key-25::before {\n    content: \"\\ea34\";\n}\n\n.nc-laptop::before {\n    content: \"\\ea35\";\n}\n\n.nc-layout-11::before {\n    content: \"\\ea36\";\n}\n\n.nc-lock-circle-open::before {\n    content: \"\\ea37\";\n}\n\n.nc-map-big::before {\n    content: \"\\ea38\";\n}\n\n.nc-minimal-down::before {\n    content: \"\\ea39\";\n}\n\n.nc-minimal-left::before {\n    content: \"\\ea3a\";\n}\n\n.nc-minimal-right::before {\n    content: \"\\ea3b\";\n}\n\n.nc-minimal-up::before {\n    content: \"\\ea3c\";\n}\n\n.nc-mobile::before {\n    content: \"\\ea3d\";\n}\n\n.nc-money-coins::before {\n    content: \"\\ea3e\";\n}\n\n.nc-note-03::before {\n    content: \"\\ea3f\";\n}\n\n.nc-palette::before {\n    content: \"\\ea40\";\n}\n\n.nc-paper::before {\n    content: \"\\ea41\";\n}\n\n.nc-pin-3::before {\n    content: \"\\ea42\";\n}\n\n.nc-planet::before {\n    content: \"\\ea43\";\n}\n\n.nc-refresh-69::before {\n    content: \"\\ea44\";\n}\n\n.nc-ruler-pencil::before {\n    content: \"\\ea45\";\n}\n\n.nc-satisfied::before {\n    content: \"\\ea46\";\n}\n\n.nc-scissors::before {\n    content: \"\\ea47\";\n}\n\n.nc-send::before {\n    content: \"\\ea48\";\n}\n\n.nc-settings-gear-65::before {\n    content: \"\\ea49\";\n}\n\n.nc-settings::before {\n    content: \"\\ea4a\";\n}\n\n.nc-share-66::before {\n    content: \"\\ea4b\";\n}\n\n.nc-shop::before {\n    content: \"\\ea4c\";\n}\n\n.nc-simple-add::before {\n    content: \"\\ea4d\";\n}\n\n.nc-simple-delete::before {\n    content: \"\\ea4e\";\n}\n\n.nc-simple-remove::before {\n    content: \"\\ea4f\";\n}\n\n.nc-single-02::before {\n    content: \"\\ea50\";\n}\n\n.nc-single-copy-04::before {\n    content: \"\\ea51\";\n}\n\n.nc-sound-wave::before {\n    content: \"\\ea52\";\n}\n\n.nc-spaceship::before {\n    content: \"\\ea53\";\n}\n\n.nc-sun-fog-29::before {\n    content: \"\\ea54\";\n}\n\n.nc-support-17::before {\n    content: \"\\ea55\";\n}\n\n.nc-tablet-2::before {\n    content: \"\\ea56\";\n}\n\n.nc-tag-content::before {\n    content: \"\\ea57\";\n}\n\n.nc-tap-01::before {\n    content: \"\\ea58\";\n}\n\n.nc-tie-bow::before {\n    content: \"\\ea59\";\n}\n\n.nc-tile-56::before {\n    content: \"\\ea5a\";\n}\n\n.nc-time-alarm::before {\n    content: \"\\ea5b\";\n}\n\n.nc-touch-id::before {\n    content: \"\\ea5c\";\n}\n\n.nc-trophy::before {\n    content: \"\\ea5d\";\n}\n\n.nc-tv-2::before {\n    content: \"\\ea5e\";\n}\n\n.nc-umbrella-13::before {\n    content: \"\\ea5f\";\n}\n\n.nc-user-run::before {\n    content: \"\\ea60\";\n}\n\n.nc-vector::before {\n    content: \"\\ea61\";\n}\n\n.nc-watch-time::before {\n    content: \"\\ea62\";\n}\n\n.nc-world-2::before {\n    content: \"\\ea63\";\n}\n\n.nc-zoom-split::before {\n    content: \"\\ea64\";\n}\n\n\n/* all icon font classes list here */\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_pagination.scss",
    "content": "\n.pagination > li > a,\n.pagination > li > span,\n.pagination > li:first-child > a,\n.pagination > li:first-child > span,\n.pagination > li:last-child > a,\n.pagination > li:last-child > span{\n    background-color: transparent;\n    border: 2px solid $danger-color;\n    border-radius: 20px;\n    color: $danger-color;\n    height: $line-height;\n    margin: 0 2px;\n    min-width: 36px;\n    padding: 8px 12px;\n    font-weight: $font-weight-bold;\n}\n.nav-pills-default > li > a,\n.pagination > li > a:hover,\n.pagination > li > a:focus,\n.pagination > li > a:active,\n.pagination > li.active > a,\n.pagination > li.active > span,\n.pagination > li.active > a:hover,\n.pagination > li.active > span:hover,\n.pagination > li.active > a:focus,\n.pagination > li.active > span:focus {\n    background-color: $default-color;\n    border-color: $default-color;\n    color: $white-color;\n}\n\n.nav-pills-primary > li > a,\n.pagination-primary > li > a,\n.pagination-primary > li > span,\n.pagination-primary > li:first-child > a,\n.pagination-primary > li:first-child > span,\n.pagination-primary > li:last-child > a,\n.pagination-primary > li:last-child > span{\n    border: 2px solid $primary-color;\n    color: $primary-color;\n}\n\n.nav-pills-primary > li.active > a,\n.nav-pills-primary > li.active > a:hover,\n.nav-pills-primary > li.active > a:focus,\n.pagination-primary > li > a:hover,\n.pagination-primary > li > a:focus,\n.pagination-primary > li > a:active,\n.pagination-primary > li.active > a,\n.pagination-primary > li.active > span,\n.pagination-primary > li.active > a:hover,\n.pagination-primary > li.active > span:hover,\n.pagination-primary > li.active > a:focus,\n.pagination-primary > li.active > span:focus{\n   background-color: $primary-color !important;\n   border-color: $primary-color !important;\n   color: $white-color;\n}\n\n.nav-pills-info > li > a,\n.pagination-info > li > a,\n.pagination-info > li > span,\n.pagination-info > li:first-child > a,\n.pagination-info > li:first-child > span,\n.pagination-info > li:last-child > a,\n.pagination-info > li:last-child > span{\n    border: 2px solid $info-color;\n    color: $info-color;\n}\n\n.nav-pills-info > li.active > a,\n.nav-pills-info > li.active > a:hover,\n.nav-pills-info > li.active > a:focus,\n.pagination-info > li > a:hover,\n.pagination-info > li > a:focus,\n.pagination-info > li > a:active,\n.pagination-info > li.active > a,\n.pagination-info > li.active > span,\n.pagination-info > li.active > a:hover,\n.pagination-info > li.active > span:hover,\n.pagination-info > li.active > a:focus,\n.pagination-info > li.active > span:focus{\n   background-color: $info-color !important;\n   border-color: $info-color !important;\n   color: $white-color;\n}\n\n.nav-pills-success > li > a,\n.pagination-success > li > a,\n.pagination-success > li > span,\n.pagination-success > li:first-child > a,\n.pagination-success > li:first-child > span,\n.pagination-success > li:last-child > a,\n.pagination-success > li:last-child > span{\n    border: 2px solid $success-color;\n    color: $success-color;\n}\n\n.nav-pills-success > li.active > a,\n.nav-pills-success > li.active > a:hover,\n.nav-pills-success > li.active > a:focus,\n.pagination-success > li > a:hover,\n.pagination-success > li > a:focus,\n.pagination-success > li > a:active,\n.pagination-success > li.active > a,\n.pagination-success > li.active > span,\n.pagination-success > li.active > a:hover,\n.pagination-success > li.active > span:hover,\n.pagination-success > li.active > a:focus,\n.pagination-success > li.active > span:focus{\n   background-color: $success-color !important;\n   border-color: $success-color !important;\n   color: $white-color;\n}\n\n.nav-pills-warning > li > a,\n.pagination-warning > li > a,\n.pagination-warning > li > span,\n.pagination-warning > li:first-child > a,\n.pagination-warning > li:first-child > span,\n.pagination-warning > li:last-child > a,\n.pagination-warning > li:last-child > span{\n    border: 2px solid $warning-color;\n    color: $warning-color;\n}\n\n.nav-pills-warning > li.active > a,\n.nav-pills-warning > li.active > a:hover,\n.nav-pills-warning > li.active > a:focus,\n.pagination-warning > li > a:hover,\n.pagination-warning > li > a:focus,\n.pagination-warning > li > a:active,\n.pagination-warning > li.active > a,\n.pagination-warning > li.active > span,\n.pagination-warning > li.active > a:hover,\n.pagination-warning > li.active > span:hover,\n.pagination-warning > li.active > a:focus,\n.pagination-warning > li.active > span:focus{\n   background-color: $warning-color !important;\n   border-color: $warning-color !important;\n   color: $white-color;\n}\n\n.nav-pills-danger > li > a,\n.pagination-danger > li > a,\n.pagination-danger > li > span,\n.pagination-danger > li:first-child > a,\n.pagination-danger > li:first-child > span,\n.pagination-danger > li:last-child > a,\n.pagination-danger > li:last-child > span{\n    border: 2px solid $danger-color;\n    color: $danger-color;\n}\n\n.nav-pills-danger > li.active > a,\n.nav-pills-danger > li.active > a:hover,\n.nav-pills-danger > li.active > a:focus,\n.pagination-danger > li > a:hover,\n.pagination-danger > li > a:focus,\n.pagination-danger > li > a:active,\n.pagination-danger > li.active > a,\n.pagination-danger > li.active > span,\n.pagination-danger > li.active > a:hover,\n.pagination-danger > li.active > span:hover,\n.pagination-danger > li.active > a:focus,\n.pagination-danger > li.active > span:focus{\n   background-color: $danger-color !important;\n   border-color: $danger-color !important;\n   color: $white-color;\n}\n\n.nav-text, .nav-icons{\n    margin: $margin-bottom;\n\n    > li > a{\n        display: block;\n        padding: 0px $padding-base-horizontal;\n        color: $dark-gray;\n        text-align: center;\n        @include opacity(0.8);\n\n        &:hover,\n        &:focus{\n            background-color: $transparent-bg;\n            @include opacity(1);\n        }\n    }\n    > li:first-child a{\n        padding-left: 0;\n    }\n    > li.active a{\n       color: $info-color;\n    }\n}\n.nav-icons > li{\n    display: inline-block;\n     > a{\n        padding: 0 10px;\n        margin-bottom: 10px;\n    }\n    > a i{\n        font-size: $font-size-h4;\n        margin-bottom: 10px;\n        width: $font-size-h4;\n    }\n}\n.nav-icons.nav-stacked > li{\n    display: block;\n    > a {\n        margin-bottom: 20px;\n    }\n}\n.nav-blue > li.active a{\n    color: $primary-color;\n}\n.nav-azure > li.active a{\n    color: $info-color;\n}\n.nav-green > li.active a{\n    color: $success-color;\n}\n.nav-orange > li.active a{\n    color: $warning-color;\n}\n.nav-red > li.active a{\n    color: $danger-color;\n}\n\n.nav-text{\n    margin: $margin-bottom;\n\n    > li > a{\n        font-size: $font-size-h6;\n        text-transform: uppercase;\n        padding: 3px 0;\n        text-align: left;\n        font-weight: $font-weight-semi;\n\n    }\n    > li:first-child > a{\n        padding-top: 0;\n    }\n    h4{\n        margin-top: 0;\n    }\n}\n\n.nav-text:not(.nav-stacked){\n    > li{\n        display: inline-block;\n    }\n    > li > a{\n        margin-right: 15px;\n    }\n}\n\n// Stefan making edits\n\n\n.page-item:first-child .page-link,\n.page-item:last-child .page-link{\n    border-bottom-left-radius: 20px;\n\tborder-top-left-radius: 20px;\n    border-bottom-right-radius: 20px;\n    border-top-right-radius: 20px;\n}\n.nav-pills-default .nav-item.show .nav-link,\n.nav-pills-default .nav-link.active{\n    background-color: $default-color !important;\n}\n.nav-pills-primary .nav-item.show .nav-link,\n.nav-pills-primary .nav-link.active{\n    background-color: $primary-color !important;\n}\n.nav-pills-info .nav-item.show .nav-link,\n.nav-pills-info .nav-link.active{\n    background-color: $info-color !important;\n}\n.nav-pills-warning .nav-item.show .nav-link,\n.nav-pills-warning .nav-link.active{\n    background-color: $warning-color !important;\n}\n.nav-pills-success .nav-item.show .nav-link,\n.nav-pills-success .nav-link.active{\n    background-color: $success-color !important;\n}\n.nav-pills-danger .nav-item.show .nav-link,\n.nav-pills-danger .nav-link.active{\n    background-color: $danger-color !important;\n}\n.pagination > li > a:hover,\n.pagination > li > a:focus,\n.pagination > li > a:active,\n.pagination > li.active > a,\n.pagination > li.active > span,\n.pagination > li.active > a:hover,\n.pagination > li.active > span:hover,\n.pagination > li.active > a:focus,\n.pagination > li.active > span:focus{\n    background-color: $danger-color;\n    border-color: $danger-color;\n    color: $white-color;\n}\n\n.page-item.active .page-link{\n    background-color: $danger-color;\n    color: white;\n    border-color: $danger-color;\n}\n.nav-pills .nav-link{\n    border-radius: 0;\n}\n\n.pagination {\n  .page-link {\n    box-shadow: none;\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_progress-bars.scss",
    "content": ".progress {\n    background-color: $medium-gray;\n    border-radius: $border-radius-small;\n    box-shadow: none;\n    height: 8px;\n}\n.progress-thin{\n    height: 4px;\n}\n.progress-bar{\n    background-color: $primary-color;\n}\n.progress-bar-primary{\n    background-color: $primary-color;\n}\n.progress-bar-info{\n    background-color: $info-color;\n}\n.progress-bar-success{\n    background-color: $success-color;\n}\n.progress-bar-warning{\n    background-color: $warning-color;\n}\n.progress-bar-danger{\n    background-color: $danger-color;\n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_responsive.scss",
    "content": "/*          Changes for small display      */\n\n@media (max-width: 767px){\n    #cd-vertical-nav {\n        display: none !important;\n    }\n    .coloured-cards {\n      .card-big-shadow {\n        margin: 0 auto;\n      }\n    }\n\n    .register-page {\n      .page-header {\n        max-height: 2000px;\n      }\n    }\n\n    .section-testimonials{\n        .our-clients{\n            margin-top: 0 !important;\n        }\n    }\n    .navbar-transparent{\n        background-color: rgba(0, 0, 0, 0.45);\n    }\n    .register{\n        .page-header{\n            max-height: fit-content;\n        }\n    }\n\n    .form-group.has-danger {\n      margin-bottom: 30px;\n    }\n\n    body {\n         position: relative;\n         font-size: $font-size-small;\n    }\n    h6{\n        font-size: 1em;\n    }\n    .navbar .container{\n         left: 0;\n          width: 100%;\n         @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n         position: relative;\n    }\n    .navbar .navbar-nav .dropdown-menu{\n        height: 400px;\n        overflow-y: scroll;\n    }\n    .demo-header .motto{\n        padding-top: 30% !important;\n    }\n    .navbar-toggle .icon-bar {\n          display: block;\n          position: relative;\n          background: #fff;\n          width: 24px;\n          height: 2px;\n          border-radius: 1px;\n          margin: 0 auto;\n    }\n\n    .navbar-header .navbar-toggle {\n        margin-top: 12px;\n        width: 40px;\n        height: 40px;\n    }\n    .bar1,\n    .bar2,\n    .bar3 {\n      outline: 1px solid transparent;\n    }\n    .bar1 {\n      top: 0px;\n      @include bar-animation($topbar-back);\n    }\n    .bar2 {\n      opacity: 1;\n    }\n    .bar3 {\n      bottom: 0px;\n      @include bar-animation($bottombar-back);\n    }\n    .toggled .bar1 {\n      top: 6px;\n      @include bar-animation($topbar-x);\n    }\n    .toggled .bar2 {\n      opacity: 0;\n    }\n    .toggled .bar3 {\n      bottom: 6px;\n      @include bar-animation($bottombar-x);\n    }\n\n    @include topbar-x-rotation();\n    @include topbar-back-rotation();\n    @include bottombar-x-rotation();\n    @include bottombar-back-rotation();\n\n    @-webkit-keyframes fadeIn {\n      0% {opacity: 0;}\n      100% {opacity: 1;}\n    }\n    @-moz-keyframes fadeIn {\n      0% {opacity: 0;}\n      100% {opacity: 1;}\n    }\n    @keyframes fadeIn {\n      0% {opacity: 0;}\n      100% {opacity: 1;}\n    }\n\n    .navbar-nav {\n        margin: 1px -15px;\n\n        .open .dropdown-menu > li {\n            & > a{\n                padding: 15px 15px 5px 50px;\n            }\n\n            &:first-child > a{\n                padding: 5px 15px 5px 50px;\n            }\n\n            &:last-child > a {\n                padding: 15px 15px 25px 50px;\n            }\n        }\n    }\n\n    [class*=\"navbar-\"] .navbar-nav {\n        & > li > a, > li > a:hover, > li > a:focus, .active > a, .active > a:hover, .active > a:focus, .open .dropdown-menu > li > a, .open .dropdown-menu > li > a:hover, .open .dropdown-menu > li > a:focus, .navbar-nav .open .dropdown-menu > li > a:active {\n            color: white;\n\n        }\n\n        & > li > a:not(.btn),\n        > li > a:hover,\n        > li > a:focus,\n        .open .dropdown-menu > li > a:not(.btn),\n        .open .dropdown-menu > li > a:hover,\n        .open .dropdown-menu > li > a:focus{\n            opacity: .7;\n            background: transparent;\n        }\n\n        &.navbar-nav .open .dropdown-menu > li > a:active {\n            opacity: 1;\n        }\n\n        & .dropdown > a{\n            &:hover .caret {\n                border-bottom-color: #777;\n                border-top-color: #777;\n            }\n            &:active .caret {\n                border-bottom-color: white;\n                border-top-color: white;\n            }\n        }\n\n    }\n\n    .footer{\n        .footer-nav,\n        .credits{\n            margin: 0 auto;\n        }\n    }\n\n    #typography{\n        .typography-line{\n            .note{\n                margin-left: 7px !important;\n            }\n        }\n    }\n    .dropdown-menu {\n        display: none;\n    }\n    .navbar-fixed-top {\n        -webkit-backface-visibility: hidden;\n    }\n\n    .social-line .btn{\n        margin: $margin-bottom;\n    }\n    .subscribe-line .form-control{\n        margin: $margin-bottom;\n    }\n    .social-line.pull-right{\n        float: none;\n    }\n    .footer nav.pull-left{\n        float: none !important;\n    }\n    .footer:not(.footer-big) nav > ul li{\n        float: none;\n    }\n    .social-area.pull-right{\n        float: none !important;\n    }\n    .form-control + .form-control-feedback{\n        margin-top: 5px;\n    }\n    .form-control.form-control-danger.no-border{\n        margin-top: 15px;\n    }\n    .navbar-toggle:hover,.navbar-toggle:focus {\n        background-color: transparent !important;\n    }\n    .btn.dropdown-toggle{\n        margin-bottom: 0;\n    }\n    .media-post .author{\n        width: 25%;\n        float: none !important;\n        display: block;\n        margin: 0 auto 10px;\n    }\n    .media-post .media-body{\n        width: 100%;\n    }\n    .modal-footer .btn-simple {\n        padding: 15px;\n    }\n    .table-responsive {\n        width: 100%;\n        margin-bottom: 15px;\n        overflow-x: scroll;\n        overflow-y: hidden;\n        border: 1px solid #dddddd;\n        -ms-overflow-style: -ms-autohiding-scrollbar;\n        -webkit-overflow-scrolling: touch;\n    }\n    .typography-line{\n        padding-left: 100px !important;\n    }\n\n    .projects-1{\n        & .project-pills{\n            & .nav.nav-pills{\n                display: block !important;\n                .nav-item{\n                    &:first-child .nav-link{\n                        border-radius: 12px 12px 0 0 !important;\n                        margin-left: -1px;\n                    }\n                    &.active:first-child .nav-link{\n                        border-radius: 12px 12px 0 0 !important;\n                        margin-left: -1px;\n                    }\n\n                    &:last-child .nav-link{\n                        border-radius: 0 0 12px 12px !important;\n                        margin-left: -1px;\n                    }\n                }\n            }\n        }\n    }\n    .testimonials-2,\n    .section-testimonials{\n        .testimonials-people{\n            img{\n                display: none !important;\n            }\n        }\n    }\n    .presentation-page .components-container .card{\n        margin-bottom: 40px !important;\n    }\n    .btn-wd{\n        min-width: 280px;\n    }\n    .presentation-page .title-brand .type{\n        font-size: 16px;\n        transform: translateY(-28px);\n        -webkit-transform: translateY(-28px);\n        -moz-transform: translateY(-28px);\n        -o-transform: translateY(-28px);\n    }\n    .presentation-page{\n        .section-cards,\n        .section-components{\n            overflow: hidden;\n            .first-card{\n                top: 750px !important;\n                .grid__link{\n                    max-width: 200px !important;\n                }\n            }\n            .fourth-card{\n                top: 940px !important;\n                .grid__link{\n                    max-width: 200px !important;\n                }\n            }\n            .fifth-card{\n                top: 950px !important;\n                left: 220px !important;\n                .grid__link{\n                    max-width: 200px !important;\n                }\n            }\n            .sixth-card{\n                top: 1335px !important;\n                left: 220px !important;\n                .grid__link{\n                    max-width: 200px !important;\n                }\n            }\n            .seventh-card {\n                top: 1155px !important;\n                .grid__link{\n                    max-width: 200px !important;\n                }\n            }\n        }\n        .section-content{\n            .image-container{\n                .add-animation{\n                    max-height: 250px !important;\n                    max-width: 180px !important;\n                }\n            }\n        }\n\n        .section-components{\n            .image-container{\n                .components-macbook{\n                    max-width: 580px !important;\n                    max-height: 400px !important;\n                }\n                .social-img,\n                .share-btn-img{\n                    display: none;\n                }\n            }\n            .title{\n                margin-top: -100px !important;\n            }\n        }\n\n        .section-examples{\n            padding-top: 0 !important;\n            margin-top: 10px !important;\n        }\n\n        .section-icons{\n            .icons-nucleo{\n                .nc-icon:not(.ninth-left-icon):not(.seventh-left-icon):not(.third-left-icon){\n                    display: none !important;\n                }\n            }\n        }\n    }\n    .bootstrap-datetimepicker-widget{\n        visibility: visible !important;\n    }\n\n    .presentation-page{\n        .fog-low{\n            margin-bottom: -35px;\n        }\n        .presentation-title{\n            font-size: 5em;\n        }\n        .presentation-subtitle{\n            margin-top: 40px;\n        }\n        .title-brand{\n            max-width: 450px;\n            .type{\n                font-size: 16px;\n            }\n        }\n    }\n\n    .demo-icons ul li {\n      width: 20%;\n      float: left;\n    }\n    .info.info-separator:after{\n        display: none;\n    }\n\n    .pricing-5{\n        .choose-plan{\n            text-align: center;\n\n            .nav.nav-pills{\n                display: inline-flex;\n            }\n        }\n        .description{\n            text-align: center;\n        }\n    }\n    .page-carousel{\n        .carousel-inner{\n            [class*='col-md']{\n                margin-left: 0 !important;\n            }\n        }\n        .right.carousel-control{\n            margin-right: 0 !important;\n        }\n        .left.carousel-control{\n            margin-left: 0 !important;\n        }\n    }\n\n    .subscribe-line {\n      .form-control {\n        border: 1px solid $medium-gray;\n        padding-left: 10px;\n      }\n      .btn {\n        margin: 0 auto;\n      }\n    }\n}\n@media screen and (max-width: 991px){\n    .navbar-collapse {\n        position: fixed;\n        display: block !important;\n        top: 0;\n        height: 100%;\n        width: 230px;\n        right: 0;\n        z-index: 1032;\n        visibility: visible;\n        background-color: #999;\n        overflow-y: visible;\n        border-top: none;\n        text-align: left;\n        border-left: 1px solid #CCC5B9;\n        padding-right: 0px;\n        padding-left: 40px;\n        padding-top: 15px;\n\n        @include transform-translate-x(230px);\n        @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n        ul {\n            position: relative;\n            z-index: 3;\n            height: 95%;\n        }\n        .navbar-nav > .nav-item {\n            &:last-child {\n            border-bottom: 0;\n            }\n            & > .nav-link{\n                margin: 0px 0px;\n                color: $dark-gray !important;\n                text-transform: uppercase;\n                font-weight: 600;\n                font-size: $font-size-small;\n                line-height: $line-height-general;\n                padding: 15px 0;\n                &:hover,\n                &:active{\n                    color: $default-states-color !important;\n                }\n            }\n        }\n        &::after{\n            top: 0;\n            left: 0;\n            height: 100%;\n            width: 100%;\n            position: absolute;\n            background-color: $bg-nude;\n            background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n            display: block;\n            content: \"\";\n            z-index: 1;\n        }\n        &.has-image::after{\n            @include black-filter(.8);\n        }\n    }\n\n    .nav-open{\n        & .navbar-collapse{\n            @include transform-translate-x(0px);\n        }\n        & .wrapper{\n            left: 0;\n            @include transform-translate-x(-230px);\n        }\n        & .navbar-translate{\n            @include transform-translate-x(-230px);\n        }\n    }\n    .wrapper .navbar-collapse{\n        display: none;\n    }\n\n    .register-page.full-screen {\n      .page-header .container {\n        margin-top: 30%;\n      }\n    }\n\n\n    .dropdown.show .dropdown-menu,\n    .dropdown .dropdown-menu{\n        border: 0;\n        transition: none;\n        -webkit-box-shadow: none;\n        box-shadow: none;\n        width: auto;\n        height: auto;\n\n        .dropdown-item:hover,\n        .dropdown-item:focus{\n            background-color: transparent;\n            border-radius:0;\n        }\n\n        .dropdown-item a{\n\n            &:hover,\n            &:focus{\n                color: $default-states-color;\n            }\n        }\n\n        &:before,\n        &:after{\n            display: none;\n        }\n    }\n\n    .dropdown{\n        .dropdown-menu{\n           display: none;\n       }\n\n       &.show .dropdown-menu{\n          display: block;\n          position: static;\n          float: none;\n          background: transparent !important;\n       }\n    }\n\n    .navbar-translate{\n        width: 100%;\n        position: relative;\n        display: flex;\n        -ms-flex-pack: justify !important;\n        justify-content: space-between !important;\n        -ms-flex-align: center;\n        align-items: center;\n        @include transform-translate-x(0);\n        @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n    }\n\n    #bodyClick {\n      height: 100%;\n      width: 100%;\n      position: fixed;\n      opacity: 0;\n      top: 0;\n      left: auto;\n      right: 230px;\n      content: \"\";\n      z-index: 1029;\n      overflow-x: hidden;\n    }\n\n    .wrapper{\n    //    @include transform-translate-x(0px);\n       @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n       left: 0;\n       background-color: white;\n    }\n    .container-cards{\n        [class*=\"col-md-\"]{\n            padding-left: 5px;\n            padding-right: 5px;\n        }\n        .social-buttons{\n            z-index: 1;\n        }\n    }\n    .full-screen.login{\n        .page-header{\n            display: grid;\n        }\n    }\n    .comments.media-area{\n        .media{\n            display: block;\n\n            .media-body{\n                margin-left: 2em;\n                p{\n                    margin-top: 15px;\n                }\n            }\n        }\n    }\n    .section-navbars,\n    .section-navigation,\n    #navbar-dropdown{\n        .navbar-collapse{\n            display: none !important;\n        }\n    }\n\n    .header-4{\n        video{\n            width: auto;\n            height: 100vh\n        }\n    }\n\n    .subscribe-line {\n      .btn.btn-block {\n        width: auto;\n      }\n    }\n\n    .form-control + .form-control-feedback {\n      padding-left: 0 !important;\n    }\n\n}\n\n\n\n@media screen and (min-width:991px){\n    .burger-menu{\n        .navbar-collapse {\n            position: fixed;\n            display: block;\n            top: 0;\n            height: 100%;\n            width: 230px;\n            right: 0px;\n            z-index: 1032;\n            visibility: visible;\n            background-color: #999;\n            overflow-y: visible;\n            border-top: none;\n            text-align: left;\n            border-left: 1px solid #CCC5B9;\n            padding-right: 0px;\n            padding-left: 40px;\n            padding-top: 15px;\n            @include transform-translate-x(230px);\n            @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n\n            .navbar-nav .nav-item{\n                &:last-child {\n                    border-bottom: 0;\n                }\n            }\n            .navbar-nav{\n                height: 100%;\n                z-index: 2;\n                position: relative;\n                display: -webkit-box;\n                display: -webkit-flex;\n                display: -ms-flexbox;\n                display: flex;\n                -webkit-box-orient: vertical;\n                -webkit-box-direction: normal;\n                -webkit-flex-direction: column;\n                -ms-flex-direction: column;\n                flex-direction: column;\n            }\n\n            &::after{\n                top: 0;\n                left: 0;\n                height: 100%;\n                width: 100%;\n                position: absolute;\n                background-color: $bg-nude;\n                background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n                display: block;\n                content: \"\";\n                z-index: 1;\n            }\n            &.has-image::after{\n                @include black-filter(.8);\n            }\n        }\n        .navbar{\n            .container{\n                .navbar-toggler{\n                    display: block;\n                    margin-top: 20px;\n                }\n            }\n        }\n\n        .navbar-translate{\n            width: 100%;\n            position: relative;\n            @include transform-translate-x(0);\n            @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n        }\n\n        .wrapper{\n            //    @include transform-translate-x(0px);\n            @include transition (0.33s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n            left: 0;\n            background-color: white;\n        }\n\n        .body{\n            .navbar-collapse.collapse{\n                height: 100vh !important;\n            }\n        }\n        .navbar-collapse,\n        .navbar-nav{\n            &:before,\n            &:after{\n                display: table;\n                content: \" \";\n            }\n        }\n\n        .nav-open &{\n            .navbar-collapse.collapse{\n                @include transform-translate-x(0px);\n            }\n            .wrapper{\n                left: 0;\n                @include transform-translate-x(-230px);\n            }\n            .navbar-translate{\n                @include transform-translate-x(-230px);\n            }\n        }\n\n        .dropdown.show .dropdown-menu,\n        .dropdown .dropdown-menu{\n            border: 0;\n            transition: none;\n            -webkit-box-shadow: none;\n            box-shadow: none;\n            width: auto;\n\n            .dropdown-item:hover,\n            .dropdown-item:focus{\n                background-color: transparent;\n                border-radius:0;\n            }\n\n            .dropdown-item a{\n\n                &:hover,\n                &:focus{\n                    color: $default-states-color;\n                }\n            }\n\n            &:before,\n            &:after{\n                display: none;\n            }\n        }\n\n        .dropdown{\n            .dropdown-menu{\n               display: none;\n           }\n\n           &.show .dropdown-menu{\n               display: block;\n           }\n        }\n    }\n    .lightbox .modal-dialog{\n        width: 960px;\n    }\n}\n@media screen and (min-width: 767px){\n    .section-sections{\n      .section-cols{\n          position: relative;\n          z-index: 1;\n      }\n    }\n\n    .register-page {\n      .page-header .container {\n        margin-top: 150px;\n      }\n    }\n}\n@media (max-width:1023px) and (min-width:767px) {\n    .presentation-page{\n        .section-content{\n            .image-container{\n                .area-img{\n                    max-width: 190px;\n                    max-height: 270px;\n                }\n                .info-img{\n                    max-width: 190px;\n                    max-height: 270px;\n                    left: -20%;\n                }\n            }\n            .section-description{\n                margin-top: 0 !important;\n            }\n        }\n        .section-components{\n            .components-macbook{\n                left: -75px !important;\n            }\n        }\n        .section-cards{\n            .codrops-header{\n                margin-top: 10px !important;\n            }\n        }\n    }\n}\n@media (max-width:1367px) and (min-width:1024px) {\n    .presentation-page{\n        .section-components{\n            .basic-container{\n                margin-left: 5em;\n            }\n        }\n    }\n}\n@media (max-width: 500px){\n    .presentation-page .section-header .card{\n        min-height: 230px;\n    }\n    #cards{\n        .card-profile{\n            margin-top: 50px;\n        }\n    }\n    .pricing-5{\n        .title{\n            text-align: center;\n        }\n    }\n    .presentation-page .presentation-title {\n        font-size: 4em;\n    }\n    .presentation-page .title-brand .type {\n        font-size: 12px;\n        padding: 4px 7px;\n        border-radius: 4px;\n        top: 0;\n        font-weight: 600;\n        margin-top: 20px;\n        right: 2px;\n    }\n    .presentation-page{\n        .section-cards{\n            .codrops-header{\n                .description{\n                    max-width: 220px;\n                }\n            }\n        }\n    }\n\n    .register-page {\n      .page-header .container {\n        .info:first-of-type {\n          margin-top: 50px;\n        }\n      }\n    }\n}\n@media screen and (max-width: 1367px){\n    .presentation-page{\n        .section-cards,\n        .section-components{\n            overflow: hidden;\n        }\n\n    }\n}\n@media screen and (min-width: 1025){\n    .section-sections{\n        .section-cols{\n            position: relative;\n            z-index: 1;\n            .row{\n                &:first-of-type{\n                    margin-top: 50px;\n                    margin-right: -120px;\n                    margin-left: -15px;\n                    @include transform-translate-x(-80px);\n                }\n                &:nth-of-type(2){\n                    margin-left: -100px;\n                    margin-right: -15px;\n                    transform: translateX(80px);\n                }\n                &:nth-of-type(3){\n                    margin-right: -120px;\n                    margin-left: 0px;\n                    transform: translateX(-120px);\n                }\n                &:nth-of-type(4){\n                    margin-right: -100px;\n                    margin-left: -15px;\n                    transform: translateX(-50px);\n                }\n            }\n\n        }\n    }\n}\n\n@media only screen and (min-width: 1024px) {\n  .demo-icons ul li {\n    width: 12.5%;\n    float: left;\n    padding: 32px 0;\n  }\n\n}\n@media (max-width: 1200px){\n    .presentation-page{\n        .presentation-title{\n            font-size: 7em;\n        }\n        .title-brand{\n            max-width: 650px;\n        }\n    }\n}\n\n@media (max-width: 1200px){\n    .presentation .section-images .image img{\n        width: 100%;\n    }\n\n}\n\n\n@media screen and (max-width: 374px){\n    .footer.footer-big{\n        .copyright{\n            .pull-left, .pull-right{\n                float: none !important;\n            }\n        }\n    }\n    .full-screen.login{\n        .card.card-register{\n            margin-bottom: 20px;\n        }\n        .demo-footer{\n            margin-left: -15px;\n        }\n    }\n    .about-us{\n        .header-wrapper{\n            height: auto !important;\n        }\n    }\n    .presentation-page{\n        .section-content{\n            .image-container{\n                .area-img{\n                    max-width: 170px !important;\n                }\n            }\n        }\n    }\n\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_sections.scss",
    "content": ".section{\n    padding: 70px 0;\n    position: relative;\n    background-color: #FFFFFF;\n}\n.section-with-space{\n    padding: 60px 0;\n}\n.section-gray{\n    background-color: #EEEEEE;\n}\n.section-nude{\n    background-color: $bg-nude;\n}\n.section-gold{\n    background-color: #caac90;\n    color: $white-color;\n}\n.section-brown{\n    background-color: #A59E94;\n    color: $white-color;\n}\n.section-light-blue{\n    background-color: $primary-color;\n    color: $white-color;\n}\n.section-dark-blue{\n    background-color: #506367;\n    color: $white-color;\n}\n.section-dark{\n    background-color: #0b1011;\n}\n.section-image,\n.section-gold,\n.section-dark{\n    position: relative;\n\n    .title,\n    .info-title,\n    .card-plain .card-title{\n        color: $white-color !important;\n    }\n    .category,\n    .description,\n    .card-plain .card-description,\n    .card-plain .card-category{\n        color: rgba($white-color, .7);\n    }\n    hr{\n        border-color: rgba(255, 255, 255, 0.19);\n    }\n}\n.page-header,\n.carousel-caption{\n    .title,\n    .info-title{\n        color: $white-color;\n    }\n}\n[class*=\"features-\"],\n[class*=\"team-\"],\n[class*=\"projects-\"],\n[class*=\"pricing-\"],\n[class*=\"testimonials-\"],\n[class*=\"contactus-\"]{\n    padding: 80px 0;\n}\n.section-image{\n    background-position: center center;\n    background-size: cover;\n\n    &:before{\n        background-color: rgba(0, 0, 0, 0.5);\n        content: \"\";\n        display: block;\n        height: 100%;\n        left: 0;\n        top: 0;\n        position: absolute;\n        width: 100%;\n        z-index: 1;\n    }\n    & .container{\n        position: relative;\n        z-index: 2;\n    }\n}\n\n.section-login{\n    min-height: 700px;\n}\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    /* IE10+ CSS styles go here */\n    .page-header{\n        .content-center{\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            transform: translate(-50%, -75%);\n        }\n        .presentation-title{\n            background: none !important;\n        }\n    }\n}\n\n\n[class*=\"features-\"],\n[class*=\"team-\"],\n[class*=\"projects-\"],\n[class*=\"pricing-\"],\n[class*=\"testimonials-\"],\n[class*=\"contactus-\"] {\n    padding: 80px 0;\n}\n.section-image {\n    background-position: center center;\n    background-size: cover;\n\n    &:before {\n        background-color: rgba(0, 0, 0, 0.5);\n        content: \"\";\n        display: block;\n        height: 100%;\n        left: 0;\n        top: 0;\n        position: absolute;\n        width: 100%;\n        z-index: 1;\n    }\n    & .container {\n        position: relative;\n        z-index: 2;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_sidebar.scss",
    "content": "#bodyClick {\n    height: 100%;\n    width: 100%;\n    position: fixed;\n    opacity: 0;\n    top: 0;\n    left: auto;\n    right: 230px;\n    content: \"\";\n    z-index: 1029;\n    overflow-x: hidden;\n}\nbody {\n     position: relative;\n}\nbody > .navbar-collapse {\n    position: fixed;\n    display: block;\n    top: 0;\n    height: 100vh;\n    width: 300px;\n    right: 0;\n    z-index: 1032;\n    visibility: visible;\n    background-color: $white-color;\n    overflow-y: visible;\n    border-top: none;\n    text-align: left;\n    border-left: 1px solid $table-line-color;\n    padding-top: 15px;\n\n    @include transform-translate-x(300px);\n    @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n\n    ul {\n        position: relative;\n        z-index: 3;\n        overflow-y: auto;\n        height: 100%;\n    }\n\n    .nav > li{\n\n        &:last-child {\n            border-bottom: 0;\n        }\n        & > a{\n            margin: 0px 0px;\n            color: $default-color;\n            text-transform: uppercase;\n            font-weight: 600;\n            font-size: $font-size-small;\n            line-height: $line-height-general;\n            padding: 15px;\n\n            &:hover,\n            &.active{\n                color: $default-states-color;\n            }\n\n            span{\n                display: inline-block !important;\n                margin-left: 5px;\n            }\n        }\n\n        &.social-links{\n            text-align: center;\n            margin-left: -40px;\n             > a{\n                font-size: 20px;\n                padding: 15px 15px;\n            }\n        }\n    }\n\n    .scroll-area{\n            max-height: none;\n    }\n\n    &::after{\n        top: 0;\n        left: 0;\n        height: 100%;\n        width: 100%;\n        position: absolute;\n        background-color: $bg-nude;\n        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(112, 112, 112, 0) 60%, rgba(186, 186, 186, 0.15) 100%);\n        display: block;\n        content: \"\";\n        z-index: 1;\n    }\n\n    &.navbar-white-collapse{\n        &::after{\n            background-color: $white-color;\n        }\n    }\n    &.has-image::after{\n        @include black-filter(.8);\n    }\n\n    .dropdown-menu{\n        display: none;\n    }\n    .open .dropdown-menu{\n        position: static;\n        float: none;\n        width: auto;\n        margin-top: 0;\n        background-color: transparent;\n        border: 0;\n        -webkit-box-shadow: none;\n        box-shadow: none;\n        display: block;\n        min-width: auto !important;\n    }\n\n    .caret{\n        border-bottom-color: $default-states-color;\n        border-top-color: $default-states-color;\n    }\n\n    .nav .open > a,\n    .nav .open > a:hover,\n    .nav .open > a:focus{\n        background-color: transparent;\n    }\n\n}\n\nbody > navbar-white-collapse{\n\n}\nbody > .navbar-collapse.collapse{\n    height: 100vh !important;\n}\n\n.wrapper{\n   @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n   left: 0;\n   background-color: white;\n   position: relative;\n   z-index: 1;\n\n   &.transition{\n     @include transform-translate-x(0px);\n   }\n}\n\n.navbar-burger{\n    .navbar-toggle .icon-bar {\n          display: block;\n          position: relative;\n          width: 24px;\n          height: 2px;\n          border-radius: 1px;\n    }\n    &.navbar-transparent .navbar-toggle .icon-bar{\n        background: #fff;\n    }\n\n    .container{\n         @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));\n         position: relative;\n    }\n    .navbar-header .navbar-toggle {\n        margin-top: 12px;\n        margin-bottom: 8px;\n        width: 40px;\n        height: 40px;\n    }\n\n    .bar1,\n    .bar2,\n    .bar3 {\n      outline: 1px solid transparent;\n    }\n    .bar1 {\n      top: 0px;\n      @include bar-animation($topbar-back);\n    }\n    .bar2 {\n      opacity: 1;\n    }\n    .bar3 {\n      bottom: 0px;\n      @include bar-animation($bottombar-back);\n    }\n    .toggled .bar1 {\n      top: 6px;\n      @include bar-animation($topbar-x);\n    }\n    .toggled .bar2 {\n      opacity: 0;\n    }\n    .toggled .bar3 {\n      bottom: 6px;\n      @include bar-animation($bottombar-x);\n    }\n\n    @include topbar-x-rotation();\n    @include topbar-back-rotation();\n    @include bottombar-x-rotation();\n    @include bottombar-back-rotation();\n\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_sliders.scss",
    "content": ".noUi-target,\n.noUi-target * {\n  -webkit-touch-callout: none;\n  -ms-touch-action: none;\n  user-select: none;\n  box-sizing: border-box;\n}\n\n.noUi-base {\n  width: 100%;\n  height: 100%;\n  position: relative;\n}\n\n.noUi-origin {\n  position: absolute;\n  right: 0;\n  top: 0;\n  left: 0;\n  bottom: 0;\n}\n\n.noUi-handle {\n  position: relative;\n  z-index: 1;\n  box-sizing: border-box;\n}\n\n.noUi-stacking .noUi-handle {\n  z-index: 10;\n}\n\n.noUi-state-tap .noUi-origin {\n  transition: left 0.3s, top 0.3s;\n}\n\n.noUi-state-drag * {\n  cursor: inherit !important;\n}\n\n.noUi-horizontal {\n  height: 10px;\n}\n\n.noUi-handle {\n  box-sizing: border-box;\n  width: 14px;\n  height: 14px;\n  left: -10px;\n  top: -6px;\n  cursor: pointer;\n  border-radius: 100%;\n  transition: all 0.2s ease-out;\n  border: 1px solid;\n  background: #FFFFFF;\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n\n.noUi-vertical .noUi-handle {\n  margin-left: 5px;\n  cursor: ns-resize;\n}\n\n.noUi-horizontal.noUi-extended {\n  padding: 0 15px;\n}\n\n.noUi-horizontal.noUi-extended .noUi-origin {\n  right: -15px;\n}\n\n.noUi-background {\n  height: 2px;\n  margin: 20px 0;\n}\n\n.noUi-origin {\n  margin: 0;\n  border-radius: 0;\n  height: 2px;\n  background: #c8c8c8;\n}\n.noUi-origin[style^=\"left: 0\"] .noUi-handle {\n  background-color: #fff;\n  border: 2px solid #c8c8c8;\n}\n.noUi-origin[style^=\"left: 0\"] .noUi-handle.noUi-active {\n  border-width: 1px;\n}\n\n.noUi-target {\n  border-radius: 3px;\n}\n\n.noUi-horizontal {\n  height: 2px;\n  margin: 15px 0;\n}\n\n.noUi-vertical {\n  height: 100%;\n  width: 2px;\n  margin: 0 15px;\n  display: inline-block;\n}\n\n.noUi-handle.noUi-active {\n  transform: scale3d(2, 2, 1);\n}\n\n[disabled].noUi-slider {\n  opacity: 0.5;\n}\n\n[disabled] .noUi-handle {\n  cursor: not-allowed;\n}\n\n.slider {\n  background: #c8c8c8;\n}\n.c-1-color{\n    background-color: blue;\n}\n.c-2-color{\n    background-color: white;\n}\n.slider.noUi-connect {\n  background-color: #7AC29A;\n}\n.slider .noUi-handle {\n  border-color: #7AC29A;\n}\n.slider.slider-info .noUi-origin:first-child{\n  background-color: #68B3C8;\n}\n.slider.slider-info .noUi-handle {\n  border-color: #68B3C8;\n}\n.slider.slider-success .noUi-connect,\n.slider.slider-success.noUi-connect {\n  background-color: #68B3C8;\n}\n.slider.slider-success .noUi-handle {\n  border-color: #68B3C8;\n}\n.slider.slider-warning .noUi-connect,\n.slider.slider-warning.noUi-connect {\n  background-color: #ff9800;\n}\n.slider.slider-warning .noUi-handle {\n  border-color: #ff9800;\n}\n.slider.slider-danger .noUi-connect,\n.slider.slider-danger.noUi-connect {\n  background-color: #f44336;\n}\n.slider.slider-danger .noUi-handle {\n  border-color: #f44336;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_social-buttons.scss",
    "content": ".btn-twitter{\n    color: $social-twitter !important;\n\n    &:hover,\n    &:focus,\n    &:active{\n        color: $social-twitter !important;\n    }\n}\n\n.btn-facebook{\n    color: $social-facebook !important;\n\n    &:hover,\n    &:focus,\n    &:active{\n        color: $social-facebook !important;\n    }\n}\n\n.btn-google{\n    color: $social-google !important;\n\n    &:hover,\n    &:focus,\n    &:active{\n        color: $social-google !important;\n    }\n}\n\n.btn-linkedin{\n    color: $social-linkedin !important;\n\n    &:hover,\n    &:focus,\n    &:active{\n        color: $social-linkedin !important;\n    }\n}\n.btn-twitter-bg{\n    background-color: $social-twitter !important;\n    border-color: $social-twitter !important;\n    &:hover{\n        background-color: darken($social-twitter, 5%) !important;\n        border-color: darken($social-twitter, 5%) !important;\n    }\n}\n.btn-facebook-bg{\n    background-color: $social-facebook !important;\n    border-color: $social-facebook !important;\n    &:hover{\n        background-color: darken($social-facebook, 5%) !important;\n        border-color: darken($social-facebook, 5%) !important;\n    }\n}\n.btn-google-bg{\n    background-color: $social-google !important;\n    border-color: $social-google !important;\n    &:hover{\n        background-color: darken($social-google, 5%) !important;\n        border-color: darken($social-google, 5%) !important;\n    }\n}\n.btn-github-bg{\n    background-color: #767676 !important;\n    border-color: #767676 !important;\n    &:hover{\n        background-color: darken(#767676, 5%) !important;\n        border-color: darken(#767676, 5%) !important;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_switch.scss",
    "content": "/* ============================================================\n * bootstrapSwitch v1.3 by Larentis Mattia @spiritualGuru\n * http://www.larentis.eu/switch/\n * ============================================================\n * Licensed under the Apache License, Version 2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n * ============================================================ */\n.has-switch {\n    border-radius: 30px;\n    cursor: pointer;\n    display: inline-block;\n    line-height: 1.72222;\n    overflow: hidden;\n    position: relative;\n    text-align: left;\n    width: 61px;\n\n   -webkit-user-select: none;\n   -moz-user-select: none;\n   -ms-user-select: none;\n   -o-user-select: none;\n   user-select: none;\n\n    /*   this code is for fixing safari bug with hidden overflow for border-radius   */\n    -webkit-mask: url('../img/mask.png') 0 0 no-repeat;\n    -webkit-mask-size: 61px 28px;\n    mask: url('../img/mask.png') 0 0 no-repeat;\n    mask-size: 61px 28px;\n}\n.has-switch.deactivate {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default !important;\n}\n.has-switch.deactivate label,\n.has-switch.deactivate span {\n  cursor: default !important;\n}\n.has-switch > div {\n   position: relative;\n   top: 0;\n   width: 100px;\n}\n.has-switch > div.switch-animate {\n  -webkit-transition: left 0.25s ease-out;\n  transition: left 0.25s ease-out;\n}\n.has-switch > div.switch-off {\n  left: -35px;\n}\n\n.has-switch > div.switch-on {\n  left: 0;\n}\n.has-switch > div label {\n  background-color: #FFFFFF;\n\n  box-shadow: 0 1px 1px #FFFFFF inset, 0 1px 1px rgba(0, 0, 0, 0.25);\n  cursor: pointer;\n}\n.has-switch input[type=checkbox] {\n  display: none;\n}\n.has-switch span {\n    cursor: pointer;\n    float: left;\n    font-size: 11px;\n    font-weight: 500;\n    height: 26px;\n    line-height: 15px;\n    margin: 0;\n    padding-bottom: 6px;\n    padding-top: 5px;\n    position: relative;\n    text-align: center;\n    text-indent: -10px;\n    width: 50%;\n    z-index: 1;\n  -webkit-transition: 0.25s ease-out;\n  transition: 0.25s ease-out;\n}\n.has-switch span.switch-left {\n    background-color: $font-color;\n    border-left: 1px solid rgba(0, 0, 0, 0);\n    border-radius: 30px 0 0 30px;\n    color: #FFFFFF;\n}\n.has-switch .switch-off span.switch-left{\n    background-color: $medium-gray;\n}\n.has-switch span.switch-right {\n  background-color: $font-color;\n  border-radius: 0 30px 30px 0;\n  color: #ffffff;\n  text-indent: 1px;\n}\n.has-switch .switch-off span.switch-right{\n    background-color: $medium-gray;\n}\n\n.has-switch label {\n    border-radius: 12px;\n    float: left;\n    height: 22px;\n    margin: 2px -13px;\n    padding: 0;\n    position: relative;\n    transition: all 0.25s ease-out 0s;\n    vertical-align: middle;\n    width: 22px;\n    z-index: 100;\n  -webkit-transition: 0.25s ease-out;\n  transition: 0.25s ease-out;\n}\n.has-switch .switch-on .fa-check:before{\n    margin-left: 10px;\n}\n.has-switch:hover .switch-on label{\n    margin: 2px -17px;\n    width: 26px;\n}\n.has-switch:hover .switch-off label{\n    margin: 2px -13px;\n    width: 26px;\n}\ninput.ct-primary + span.switch-left,\ninput.ct-primary + span + label + span.switch-right{\n    background-color:  $primary-color;\n}\ninput.ct-info + span.switch-left,\ninput.ct-info + span + label + span.switch-right{\n    background-color:  $info-color;\n}\ninput.ct-success + span.switch-left,\ninput.ct-success + span + label + span.switch-right{\n    background-color:  $success-color;\n}\ninput.ct-warning + span.switch-left,\ninput.ct-warning + span + label + span.switch-right{\n    background-color:  $warning-color;\n}\ninput.ct-danger + span.switch-left,\ninput.ct-danger + span + label + span.switch-right{\n    background-color:  $danger-color;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_tabs-navs.scss",
    "content": "/*             Navigation menu                */\n\n/*             Navigation Tabs                 */\n.nav-tabs-navigation{\n    text-align: center;\n    border-bottom: 1px solid $medium-pale-bg;\n    margin-bottom: 30px;\n\n    .nav > .nav-item > .nav-link{\n        padding-bottom: 20px;\n    }\n}\n.nav-tabs-wrapper{\n    display: inline-block;\n    margin-bottom: -6px;\n    margin-left: 1.25%;\n    margin-right: 1.25%;\n    position: relative;\n    width: auto;\n}\n.nav-tabs {\n        border-bottom: 0 none;\n        font-size: $font-size-medium;\n        font-weight: $font-weight-bold;\n        .nav-item{\n            .nav-link{\n                border: 0 none;\n                color: $other-medium-gray;\n                background-color: transparent;\n            }\n            .nav-link:hover{\n                color: $font-color;\n            }\n            .nav-link.active{\n                color: $font-color;\n            }\n        }\n\n        .nav-item{\n            color: $font-color;\n            position: relative;\n\n\n            .nav-link.active,\n            .nav-link.active:hover,\n            .nav-link.active:focus{\n                background-color: transparent;\n                border: 0 none;\n                //height: 50px;\n                &:after{\n                    border-bottom: 11px solid $white-color;\n                    border-left: 11px solid rgba(0, 0, 0, 0);\n                    border-right: 11px solid rgba(0, 0, 0, 0);\n                    content: \"\";\n                    display: inline-block;\n                    position: absolute;\n                    right: 40%;\n                    bottom: 5px;\n                }\n\n                &:before{\n                    border-bottom: 11px solid $medium-pale-bg;\n                    border-left: 11px solid rgba(0, 0, 0, 0);\n                    border-right: 11px solid rgba(0, 0, 0, 0);\n                    content: \"\";\n                    display: inline-block;\n                    position: absolute;\n                    right: 40%;\n                    bottom: 6px;\n                }\n            }\n\n        }\n        .nav-item.show .nav-link{\n            background-color: transparent;\n        }\n        .dropdown-menu{\n            margin-top: -6px;\n            margin-left: -46px;\n            border-radius: 8px;\n\n            .dropdown-item:hover,\n            .dropdown-item.active{\n                color: #FFFFFF;\n                background-color: #68B3C8;\n            }\n            :before{\n                border-bottom: 11px solid $medium-pale-bg;\n                border-left: 11px solid rgba(0, 0, 0, 0);\n                border-right: 11px solid rgba(0, 0, 0, 0);\n                content: \"\";\n                display: inline-block;\n                position: absolute;\n                right: 12px;\n                top: -11px;\n            }\n            :after{\n                border-bottom: 11px solid $pale-bg;\n                border-left: 11px solid rgba(0, 0, 0, 0);\n                border-right: 11px solid rgba(0, 0, 0, 0);\n                content: \"\";\n                display: inline-block;\n                position: absolute;\n                right: 12px;\n                top: -10px;\n            }\n        }\n}\n.profile-content{\n    & .tab-content{\n        & .tab-pane{\n            min-height: 200px;\n        }\n        & #tweets, #connections, #media{\n            height: 100%;\n        }\n    }\n}\n/*             Navigation Pills               */\n\n.nav-pills {\n    .nav-item + .nav-link {\n        margin-left: 0;\n    }\n    .nav-item .nav-link {\n        border: 1px solid $default-color;\n        border-radius: 0;\n        color: $default-color;\n        font-weight: $font-weight-bold;\n        margin-left: -1px;\n        padding: 10px 25px;\n\n    }\n    .nav-item.active .nav-link,\n    .nav-item.active .nav-link:hover,\n    .nav-item.active .nav-link:focus {\n        background-color: $default-color;\n        color: #FFFFFF;\n    }\n    .nav-item:first-child .nav-link{\n        border-radius: 30px 0 0 30px !important;\n        margin: 0;\n    }\n    .nav-item:last-child .nav-link{\n        border-radius: 0 30px 30px 0 !important;\n    }\n    .nav-item .nav-link.active{\n        background-color: $default-color;\n        color: $white-color;\n    }\n\n}\n.nav-pills-primary{\n    .nav-item{\n        .nav-link{\n            border: 1px solid $primary-color !important;\n            color: $primary-color !important;\n            &.active{\n                border: 1px solid $primary-color !important;\n                color: $white-color !important;\n            }\n        }\n    }\n}\n.nav-pills-danger{\n    .nav-item{\n        .nav-link{\n            border: 1px solid $danger-color !important;\n            color: $danger-color !important;\n            &.active{\n                border: 1px solid $danger-color !important;\n                color: $white-color !important;\n            }\n        }\n    }\n}\n.nav-pills-info{\n    .nav-item{\n        .nav-link{\n            border: 1px solid $info-color !important;\n            color: $info-color !important;\n            &.active{\n                border: 1px solid $info-color !important;\n                color: $white-color !important;\n            }\n        }\n    }\n}\n.nav-pills-success{\n    .nav-item{\n        .nav-link{\n            border: 1px solid $success-color !important;\n            color: $success-color !important;\n            &.active{\n                border: 1px solid $success-color !important;\n                color: $white-color !important;\n            }\n        }\n    }\n}\n.nav-pills-warning{\n    .nav-item{\n        .nav-link{\n            border: 1px solid $warning-color !important;\n            color: $warning-color !important;\n            &.active{\n                border: 1px solid $warning-color !important;\n                color: $white-color !important;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_tags.scss",
    "content": "//\n// bootstrap-tagsinput v0.8.0 for Bootstrap v4.0.0-alpha.6\n// --------------------------------------------------\n\n.bootstrap-tagsinput {\n    background-color: transparent;\n    display: inline-block;\n    padding: 4px 6px;\n    color: #555;\n    vertical-align: middle;\n    border-radius: 4px;\n    width: 100%;\n    line-height: 22px;\n    cursor: text;\n\n    & input {\n        border: none;\n        box-shadow: none;\n        outline: none;\n        background-color: transparent;\n        padding: 0 6px;\n        margin: 0;\n        width: auto;\n        max-width: inherit;\n\n        &:focus {\n            border: none;\n            box-shadow: none;\n        }\n\n        &::-moz-placeholder {\n            color: $input-color-placeholder;\n            opacity: 1;\n        }\n\n        &:-ms-input-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        &::-webkit-input-placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n    &.form-control {\n        & input::-moz-placeholder {\n            color: $input-color-placeholder;\n            // opacity: 1;\n        }\n\n        & input:-ms-input-placeholder {\n            color: $input-color-placeholder;\n        }\n\n        & input::-webkit-input-placeholder {\n            color: $input-color-placeholder;\n        }\n    }\n\n    .badge{\n        -webkit-transition: all 170ms linear;\n        -moz-transition: all 170ms linear;\n        -o-transition: all 170ms linear;\n        -ms-transition: all 170ms linear;\n        transition: all 170ms linear;\n    }\n\n    & .badge {\n        cursor: pointer;\n        margin: 5px 3px 5px 0;\n        position: relative;\n        padding: 4px 8px 3px .8em;\n        border-radius: 12px;\n        color: #FFF;\n        font-size: .75em;\n        font-weight: 500;\n        display: inline-block;\n        line-height: 1.5em;\n        text-transform: uppercase;\n\n        &:hover{\n            padding-right: 25px;\n        }\n        &:hover [data-role=\"remove\"]{\n            opacity: 1;\n            padding-right: 6px;\n        }\n\n        & [data-role=\"remove\"] {\n            cursor: pointer;\n            position: absolute;\n            top: 3.5px;\n            right: 0;\n            opacity: 0;\n\n            &:after {\n                content: \"\\f00d\";\n                padding: 0px 4px;\n                font-size: 18px;\n                font: normal normal normal 10px/1 FontAwesome;\n            }\n            &:hover {\n                &:active {\n                    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n                    opacity: 1;\n                }\n            }\n        }\n    }\n}\n.badge-success{\n    background-color: #7AC29A;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_tooltips-and-popovers.scss",
    "content": ".tooltip {\n    font-size: $font-size-small;\n    font-weight: $font-weight-normal;\n}\n\n.tooltip-inner {\n    background-color: $white-color;\n    border-radius: $border-radius-base;\n    box-shadow: 0 1px 13px rgba(0, 0, 0, 0.14), 0 0 0 1px rgba(115, 71, 38, 0.23);\n    color: $default-color;\n    max-width: 200px;\n    padding: 10px 10px;\n    text-align: center;\n    text-decoration: none;\n}\n.tooltip-inner:after {\n    content: \"\";\n    display: inline-block;\n    position: absolute;\n}\n.tooltip-inner:before {\n    content: \"\";\n    display: inline-block;\n    position: absolute;\n}\n\n//tooltip arrow positioning\n//onLeft\n.tooltip.fade.bs-tooltip-left,\n.tooltip.fade.bs-tooltip-left.show{\n    left: -5px !important;\n    .arrow{\n        border-left: 11px solid rgba(0, 0, 0, 0.2);\n        border-top: 11px solid transparent;\n        border-bottom: 11px solid transparent;\n        right: -6px;\n        left: auto;\n        margin-left: 0;\n        top: -8px;\n\n        &::before{\n            border-left: 11px solid #FFFFFF;\n            border-top: 11px solid transparent;\n            border-bottom: 11px solid transparent;\n            right: 1px;\n            left: auto;\n            margin-left: 0;\n            top: -8px;\n        }\n    }\n}\n\n//onRight\n.tooltip.fade.bs-tooltip-right,\n.tooltip.fade.bs-tooltip-right.show{\n    left: 6px !important;\n    .arrow{\n        border-right: 11px solid rgba(0, 0, 0, 0.2);\n        border-top: 11px solid transparent;\n        border-bottom: 11px solid transparent;\n        left: -6px;\n        right: auto;\n        margin-right: 0;\n        top: -8px;\n\n        &::before{\n            border-right: 11px solid #FFFFFF;\n            border-top: 11px solid transparent;\n            border-bottom: 11px solid transparent;\n            left: 1px;\n            right: auto;\n            margin-right: 0;\n            top: -8px;\n        }\n    }\n}\n\n//onTop\n.tooltip.fade.bs-tooltip-top,\n.tooltip.fade.bs-tooltip-top.show{\n    top: -6px !important;\n\n    .arrow{\n        border-top: 11px solid rgba(0, 0, 0, 0.2);\n        border-left: 11px solid transparent;\n        border-right: 11px solid transparent;\n        right: auto;\n        margin-right: 0;\n        top: 43px;\n\n        &::before{\n            border-top: 11px solid #FFFFFF;\n            border-left: 11px solid transparent;\n            border-right: 11px solid transparent;\n            left: -8px;\n            right: auto;\n            top: -12px;\n        }\n    }\n }\n\n//onBottom\n.tooltip.fade.bs-tooltip-bottom,\n.tooltip.fade.bs-tooltip-bottom.show{\n    top: 6px!important;\n\n    .arrow{\n        border-bottom: 11px solid rgba(0, 0, 0, 0.2);\n        border-left: 11px solid transparent;\n        border-right: 11px solid transparent;\n        right: auto;\n        margin-right: 0;\n        top: -6px;\n\n        &::before{\n            border-bottom: 11px solid #FFFFFF;\n            border-left: 11px solid transparent;\n            border-right: 11px solid transparent;\n            left: -8px;\n            right: auto;\n            top: 1px;\n        }\n    }\n}\n\n.tooltip.show{\n    opacity: 1 !important;\n}\n\n.popover{\n    border: 0;\n    border-radius: 4px;\n    background-color: $white-color;\n    color: #66615b;\n    font-weight: 400;\n    padding: 0;\n    z-index: 1031;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n    text-align: center;\n}\n.popover-header{\n    background-color: #FFFCF5;\n    border-bottom: 0 none;\n    font-size: $font-paragraph;\n    font-weight: normal;\n    line-height: 22px;\n    padding: 15px 15px 0px 15px;\n    margin: 0;\n    color: #66615b;\n    text-align: center;\n    border-radius: $border-radius-base $border-radius-base 0 0;\n    margin-bottom: -10px;\n}\n.popover-header{\n    background-color: $white-color !important;\n    text-align: center;\n}\n.popover-body{\n    padding: 15px;\n    text-align: center;\n}\n.popover .arrow{\n    border: 0;\n}\n.popover.top .arrow{\n    margin-left: 0;\n}\n.popover.bottom .arrow:after{\n    border-bottom-color: $bg-danger;\n}\n.popover-filter{\n    position: fixed;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1030;\n    background-color: #000000;\n    @include opacity(0);\n    visibility: hidden;\n\n    transition: visibility 0s linear 0.3s,opacity 0.3s linear;\n}\n.popover-filter.in{\n     visibility:visible;\n     @include opacity(0.2);\n     transition-delay: 0s;\n}\n.popover.left > .arrow::after{\n    border-left-color: $bg-danger;\n    bottom: -20px;\n}\n.popover.top > .arrow::after{\n    border-top-color: $bg-danger;\n}\n.popover.right > .arrow::after{\n    border-right-color: $bg-danger;\n}\n\n.popover.left::before{\n    border-left-color: $bg-danger;\n    bottom: -20px;\n}\n\n.popover-filter.in{\n     visibility:visible;\n     @include opacity(0.2);\n     transition-delay: 0s;\n}\n.popover-primary{\n    @include popover-style($bg-primary);\n}\n.popover-info{\n    @include popover-style($bg-info);\n}\n.popover-success {\n    @include popover-style($bg-success);\n}\n.popover-warning {\n    @include popover-style($bg-warning);\n}\n.popover-danger {\n    @include popover-style($bg-danger);\n}\n\n// popover color\n.popover-primary.bs-tether-element-attached-bottom::after,\n.popover-primary.bs-tether-element-attached-bottom::before,\n.popover-primary.popover-top::after,\n.popover-primary.popover-top::before{\n    border-top-color: $bg-primary !important;\n }\n\n.popover.popover-info.bs-tether-element-attached-top::after,\n.popover.popover-info.popover-bottom::after,\n.popover.popover-info.bs-tether-element-attached-top::before,\n.popover.popover-info.popover-bottom::before{\n    border-bottom-color: $bg-info !important;\n}\n\n.popover-success.bs-tether-element-attached-left::after,\n.popover-success.bs-tether-element-attached-left::before,\n.popover-success.popover-right::after,\n.popover-success.popover-right::before{\n    border-right-color: $bg-success !important;\n}\n\n.popover.popover-warning.bs-tether-element-attached-right::after,\n.popover.popover-warning.bs-tether-element-attached-right::before,\n.popover.popover-warning.popover-left::after,\n.popover.popover-warning.popover-left::before{\n    border-left-color: $bg-warning !important;\n}\n\n.popover.popover-danger.bs-tether-element-attached-right::after,\n.popover.popover-danger.bs-tether-element-attached-right::before,\n.popover.popover-danger.popover-left::after,\n.popover.popover-danger.popover-left::before{\n    border-left-color: $bg-danger !important;\n}\n\n.popover.bs-tether-element-attached-top::after, .popover.popover-bottom::after,\n.popover.bs-tether-element-attached-top::before, .popover.popover-bottom::before{\n    border-bottom-color: #fff !important;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_typography.scss",
    "content": "/*           Font Smoothing      */\nh1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, a, .td-name, td, button, input, select, textarea{\n    -moz-osx-font-smoothing: grayscale;\n    -webkit-font-smoothing: antialiased;\n    font-family: $font-family-sans-serif;\n    font-weight: $font-weight-light;\n}\n\nh1, .h1, h2, .h2, h3, .h3, h4, .h4{\n    margin: $margin-large-vertical 0 0;\n}\nh1, .h1 {\n    font-size: $font-size-h1;\n}\nh2, .h2{\n    font-size: $font-size-h2;\n}\nh3, .h3{\n    font-size: $font-size-h3;\n    line-height: 1.4;\n    margin: 20px 0 0px;\n}\nh4, .h4{\n    font-size: $font-size-h4;\n    line-height: 1.2em;\n}\nh5, .h5 {\n    font-size: $font-size-h5;\n    line-height: 1.4em;\n}\nh6, .h6{\n    font-size: $font-size-h6;\n    font-weight: $font-weight-bold;\n    text-transform: uppercase;\n    line-height: 1.5em;\n}\np{\n    font-size: $font-paragraph;\n    line-height: $line-height-general;\n    margin-bottom: 5px;\n}\n\nh1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small {\n    color: $dark-gray;\n    line-height: $line-height-general;\n}\n\nh1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small {\n    font-size: 60%;\n}\n\n.title,\n.card-title,\n.info-title,\n.footer-brand,\n.footer-big h5,\n.footer-big h4,\n.media .media-heading{\n    font-family: $font-family-sans-serif;;\n\n    &,\n    a{\n        color: $card-black-color;\n        text-decoration: none;\n    }\n}\n.title-uppercase{\n    text-transform: uppercase;\n}\n.description{\n    color: $dark-gray;\n}\nblockquote small{\n    font-style: normal;\n}\n.text-muted{\n    color: $medium-gray;\n}\n.text-primary, .text-primary:hover{\n    color: $primary-color !important;\n}\n.text-info, .text-info:hover{\n    color: $info-color !important;\n}\n.text-success, .text-success:hover{\n    color: $success-color !important;\n}\n.text-warning, .text-warning:hover{\n    color: $warning-color !important;\n}\n.text-danger, .text-danger:hover{\n    color: $danger-color !important;\n}\n.glyphicon{\n    line-height: 1;\n}\n\n// Pulsing Heart (footer)\n.heart {\n  color: #EB5E28;\n  animation: heathing 1s ease infinite,;\n}\n\n@keyframes heathing {\n  0% { transform: scale( .75 ); }\n  20% { transform: scale( 1 ); }\n  40% { transform: scale( .75 ); }\n  60% { transform: scale( 1 ); }\n  80% { transform: scale( .75 ); }\n  100% { transform: scale( .75 ); }\n}\n.footer .credits,\n.footer-nav{\n    line-height: 85px;\n}\n.footer .btn{\n    margin-bottom: 0;\n}\n.blockquote{\n    border-left: 0 none;\n    border-bottom: 1px solid #CCC5B9;\n    border-top: 1px solid #CCC5B9;\n    font-weight: 300;\n    margin: 15px 0 10px;\n    text-align: center;\n}\n.title{\n    margin-top: 30px;\n    margin-bottom: 25px;\n    min-height: 32px;\n}\n.title.text-center{\n    margin-bottom: 50px;\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/_variables.scss",
    "content": "$font-color:                 #66615b !default;\n$fill-font-color:            rgba(255, 255, 255, 0.8);\n$font-family-sans-serif:     'Montserrat', \"Helvetica\", Arial, sans-serif;\n\n$none:                       0   !default;\n$border-thin:                1px !default;\n$border-thick:               2px !default;\n\n$white-color:                #FFFFFF !default;\n$white-bg:                   #FFFFFF !default;\n$white-states-color:         rgba($white-color, 0.8);\n\n$smoke-bg:                   #F5F5F5 !default;\n$pale-bg:                    #FFFCF5 !default;\n$medium-pale-bg:             #F1EAE0 !default;\n\n$table-line-color:           #ccc !default;\n$muted-color:                #a49e93 !default;\n\n$black-bg:                   rgba(30,30,30,.97) !default;\n\n$black-color:                #333333 !default;\n$black-hr:                   #444444 !default;\n\n$light-gray:                 #E3E3E3 !default;\n$medium-gray:                #DDDDDD !default;\n$dark-gray:                  #9A9A9A !default;\n\n$placeholder-gray:           rgba(210, 210, 210, 1)  !default;\n\n$gray-input-bg:              #fffcf5 !default;\n$danger-input-bg:            #FFC0A4 !default;\n$success-input-bg:           #ABF3CB !default;\n$other-medium-gray:          #A49E93 !default;\n$transparent-bg:             transparent !default;\n\n$default-color:              #66615B !default;\n$default-bg:                 #66615B !default;\n$default-states-color:       #403D39 !default;\n\n$primary-color:              #51cbce !default;\n$primary-states-color:       darken($primary-color, 10%) !default;\n\n$success-color:              #6bd098 !default;\n$success-states-color:       darken($success-color, 10%) !default;\n\n$info-color:                 #51bcda !default;\n$info-states-color:          darken($info-color, 10%) !default;\n\n$warning-color:              #fbc658 !default;\n$warning-states-color:       darken($warning-color, 10%) !default;\n\n$danger-color:               #f5593d !default;\n$danger-states-color:        darken($danger-color, 8%) !default;\n\n$link-disabled-color:        #666666 !default;\n\n$purple-color:               #c178c1 !default;\n$purple-states-color:        darken($purple-color, 8%) !default;\n\n$brown-color:                #dcb285 !default;\n$brown-states-color:         darken($brown-color, 8%) !default;\n\n\n\n\n/*      light colors - used for select dropdown         */\n\n$light-blue:                 rgba($primary-color, .2);\n$light-azure:                rgba($info-color, .2);\n$light-green:                rgba($success-color, .2);\n$light-orange:               rgba($warning-color, .2);\n$light-red:                  rgba($danger-color, .2);\n\n\n//== Components\n//\n$padding-base-vertical:         7px !default;\n$padding-base-horizontal:       18px !default;\n\n$padding-round-vertical:        9px !default;\n$padding-round-horizontal:     18px !default;\n\n$padding-simple-vertical:      10px !default;\n$padding-simple-horizontal:    18px !default;\n\n$padding-large-vertical:       11px !default;\n$padding-large-horizontal:     30px !default;\n\n$padding-small-vertical:        4px !default;\n$padding-small-horizontal:     10px !default;\n\n$padding-xs-vertical:           2px !default;\n$padding-xs-horizontal:         5px !default;\n\n$padding-label-vertical:        2px !default;\n$padding-label-horizontal:     12px !default;\n\n// padding for links inside dropdown menu\n$padding-dropdown-vertical:     10px !default;\n$padding-dropdown-horizontal:   15px !default;\n\n$margin-large-vertical:        30px !default;\n$margin-base-vertical:         15px !default;\n\n// border radius for buttons\n$border-radius-none:             0px !default;\n$border-radius-btn-small:      26px !default;\n$border-radius-btn-base:       20px !default;\n$border-radius-btn-large:      50px !default;\n\n\n$margin-bottom:                0 0 10px 0 !default;\n$border-radius-small:           3px !default;\n$border-radius-base:            4px !default;\n$border-radius-large:           6px !default;\n$border-radius-x-large:         8px !default;\n$border-radius-extreme:         12px !default;\n\n$border-radius-none-top:      $border-radius-none $border-radius-none 0 0 !default;\n$border-radius-none-bottom:   0 0 $border-radius-none $border-radius-none !default;\n\n$border-radius-small-top:      $border-radius-small $border-radius-small 0 0 !default;\n$border-radius-small-bottom:   0 0 $border-radius-small $border-radius-small !default;\n\n$border-radius-large-top:      $border-radius-large $border-radius-large 0 0 !default;\n$border-radius-large-bottom:   0 0 $border-radius-large $border-radius-large !default;\n\n$btn-round-radius:             30px !default;\n\n$height-base:                  40px !default;\n\n$font-size-base:               14px !default;\n$font-size-small:              12px !default;\n$font-size-medium:             16px !default;\n$font-size-large:              20px !default;\n$font-size-large-navbar:       22px !default;\n\n$font-size-h1:                 3.6em !default;\n$font-size-h2:                 2.8em !default;\n$font-size-h3:                 1.825em !default;\n$font-size-h4:                 1.6em !default;\n$font-size-h5:                 1.35em !default;\n$font-size-h6:                 0.9em !default;\n$font-paragraph:               15px !default;\n$font-size-navbar:             14px !default;\n\n$font-size-info-horizontal:    2.5em !default;\n\n$font-weight-light:          300 !default;\n$font-weight-normal:         400 !default;\n$font-weight-semi:           500 !default;\n$font-weight-bold:           600 !default;\n\n$line-height-small:            20px !default;\n$line-height-general:          1.5em !default;\n$line-height:                 36px !default;\n$line-height-lg:              54px !default;\n\n\n$border-radius-top:        10px 10px 0 0 !default;\n$border-radius-bottom:     0 0 10px 10px !default;\n$border-radius-dropdown:   10px 10px !default;\n\n$dropdown-shadow:          0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n\n$general-transition-time:  300ms !default;\n\n$slow-transition-time:           300ms !default;\n$dropdown-coordinates:      29px -50px !default;\n\n$fast-transition-time:           150ms !default;\n$select-coordinates:         50% -40px !default;\n\n$transition-linear:                                   linear !default;\n$transition-bezier:         cubic-bezier(0.34, 1.61, 0.7, 1) !default;\n$transition-ease:           ease 0s;\n\n$navbar-padding-a:               10px 15px;\n$navbar-margin-a:                15px  3px;\n\n$padding-social-a:               10px  5px;\n\n$navbar-margin-a-btn:            15px 3px;\n$navbar-margin-a-btn-round:      16px 3px;\n\n$navbar-padding-a-icons:         6px 15px;\n$navbar-margin-a-icons:          6px  3px;\n\n$navbar-padding-brand:           20px 15px;\n$navbar-margin-brand:             5px  0px;\n\n$navbar-margin-brand-icons:      12px auto;\n\n$navbar-margin-btn:              15px  3px;\n\n$height-icon:\t\t\t\t\t 64px !default;\n$width-icon:\t\t\t\t\t 64px !default;\n$padding-icon:\t\t\t\t\t 12px !default;\n$border-radius-icon:\t\t     15px !default;\n\n$size-icon: \t\t\t\t\t 64px;\n$size-icon-sm: \t\t\t\t\t 32px;\n\n\n$height-icon-sm:\t\t\t\t 32px;\n$width-icon-sm:\t\t\t\t\t 32px;\n$padding-icon-sm:\t\t\t     4px;\n$border-radius-icon-sm:\t\t\t 7px;\n\n$height-icon-message:\t\t\t 40px;\n$width-icon-message:\t\t\t 40px;\n\n$height-icon-message-sm: \t\t 20px;\n$width-icon-message-sm:\t\t\t 20px;\n\n\n\n$white-navbar:              rgba(#FFFFFF, .96);\n$blue-navbar:               rgba(#34ACDC, .98);\n$azure-navbar:              rgba(#5BCAFF, .98);\n$green-navbar:              rgba(#4CD964, .98);\n$orange-navbar:             rgba(#FF9500, .98);\n$red-navbar:                rgba(#FF4C40, .98);\n\n$bg-nude:               #FFFCF5 !default;\n$bg-primary:            lighten($primary-color, 7%) !default;\n$bg-info:               lighten($info-color, 7%) !default;\n$bg-success:            lighten($success-color, 7%) !default;\n$bg-warning:            lighten($warning-color, 7%) !default;\n$bg-danger:             lighten($danger-color, 7%) !default;\n$bg-brown:              lighten($brown-color, 7%) !default;\n$bg-purple:             lighten($purple-color, 7%) !default;\n\n$preloader-color:          #D8D1C9 !default;\n\n$filter-blue:         darken($primary-color, 10%);\n$filter-azure:        darken($info-color, 10%);\n$filter-green:        darken($success-color, 10%);\n$filter-orange:       darken($warning-color, 10%);\n$filter-red:          darken($danger-color, 10%);\n\n\n$topbar-x:             topbar-x !default;\n$topbar-back:          topbar-back !default;\n$bottombar-x:          bottombar-x !default;\n$bottombar-back:       bottombar-back !default;\n\n$social-facebook: \t\t\t#3b5998;\n$social-twitter: \t\t\t#55acee;\n$social-pinterest: \t\t\t#cc2127;\n$social-google: \t\t\t#dd4b39;\n$social-linkedin: \t\t\t#0976b4;\n$social-dribbble: \t\t\t#ea4c89;\n$social-github: \t\t\t#333333;\n$social-youtube: \t\t\t#e52d27;\n$social-instagram: \t\t    #125688;\n$social-reddit: \t\t\t#ff4500;\n$social-tumblr: \t\t\t#35465c;\n\n$background-light-grey:     #E8E7E3 !default;\n$background-lighter-grey:   #F0EFEB !default;\n$font-background-light-grey: #9C9B99 !default;\n$font-hover-background-light-grey: #5E5E5C !default;\n\n// variables used in headers\n$header-background:         #B2AFAB !default;\n\n$filter-primary:         darken($primary-color, 10%);\n$filter-info:        darken($info-color, 10%);\n$filter-success:        darken($success-color, 10%);\n$filter-warning:       darken($warning-color, 10%);\n$filter-danger:          darken($danger-color, 10%);\n\n// variable used in footers\n$black-footer-bg:            #252422 !default;\n$brown-font-color:           #A49E9E !default;\n$brown-font-color-hover:     #F1EAE0 !default;\n\n//variables used in cards\n$card-black-color:           #333333 !default;\n$card-muted-color:           #ccc !default;\n\n$card-background-blue:      #b8d8d8 !default;\n$card-font-blue:            #506568 !default;\n$card-subtitle-blue:        #7a9e9f !default;\n\n$card-background-green:      #d5e5a3 !default;\n$card-font-green:            #60773d !default;\n$card-subtitle-green:        #92ac56 !default;\n\n$card-background-yellow:      #ffe28c !default;\n$card-font-yellow:            #b25825 !default;\n$card-subtitle-yellow:        #d88715 !default;\n\n$card-background-brown:      #d6c1ab !default;\n$card-font-brown:            #75442e !default;\n$card-subtitle-brown:        #a47e65 !default;\n\n$card-background-purple:      #baa9ba !default;\n$card-font-purple:            #3a283d !default;\n$card-subtitle-purple:        #5a283d !default;\n\n$card-background-orange:      #ff8f5e !default;\n$card-font-orange:            #772510 !default;\n$card-subtitle-orange:        #e95e37 !default;\n\n$card-background-primary:     #427C89 !default;\n$card-border-color:           #427C89 !default;\n\n$color-red-error: rgb(185, 74, 72) !default;\n$color-grey-arrow: rgba(204, 204, 204, 0.2) !default;\n\n$width-default: 220px !default; // 3 960px-grid columns\n\n$zindex-select-dropdown: 1060 !default; // must be higher than a modal background (1050)\n\n//** Placeholder text color\n$input-color-placeholder: #999 !default;\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/cards/_card-plain.scss",
    "content": ".card-plain {\n  background-color: transparent;\n  box-shadow: none;\n  border-radius: 0;\n\n  .card-body {\n      padding-left: 5px;\n      padding-right: 5px;\n  }\n\n  img {\n      border-radius: $border-radius-extreme;\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/cards/_card-profile.scss",
    "content": ".card-profile {\n  margin-top: 30px;\n  text-align: center;\n\n  .card-cover {\n    height: 130px;\n    background-position: center center;\n    background-size: cover;\n    border-radius: $border-radius-extreme $border-radius-extreme 0 0;\n  }\n\n  .card-body {\n    .card-title {\n      margin-top: 5px !important;\n    }\n    .card-category {\n      margin-bottom: 5px;\n      margin-top: 5px;\n    }\n  }\n\n  .card-avatar {\n    max-width: 120px;\n    max-height: 120px;\n    margin: -60px auto 0;\n    border-radius: 50%;\n    overflow: hidden;\n\n    &.border-white {\n        border: 4px solid $white-color;\n    }\n    &.border-gray {\n        border: 4px solid $card-muted-color;\n    }\n  }\n\n}\n\n.section {\n  .card-profile {\n    margin-top: 100px;\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/cards/_card-register.scss",
    "content": ".card-register {\n  background-color: #FF8F5E;\n  border-radius: 8px;\n  color: #fff;\n  max-width: 350px;\n  margin: 20px 0 70px;\n  min-height: 400px;\n  padding: 30px;\n\n  & label {\n    margin-top: 15px;\n  }\n  & .card-title {\n    color: #B33C12;\n    text-align: center;\n  }\n  & .btn {\n    margin-top: 30px;\n  }\n  & .forgot {\n    text-align: center;\n  }\n\n  .input-group-text {\n    border: 1px solid $white-color;\n  }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_alerts.scss",
    "content": "@mixin alert-style($background-color, $color){\n    background-color: $background-color;\n    color: $color;\n    .close{\n        color: $color;\n        opacity: 0.7;\n        &:hover{\n            opacity: 1;\n        }\n    }\n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_buttons.scss",
    "content": "// Mixin for generating new styles\n@mixin btn-styles($btn-color, $btn-states-color) {\n    background-color: $btn-color;\n    border-color: $btn-color;\n    color: $white-color;\n    @include opacity(1);\n\n    &:hover,\n    &:focus,\n    &:active,\n    &.active,\n    &:active:focus,\n    &:active:hover,\n    &.active:focus,\n    &:not(:disabled):not(.disabled):active:focus,\n    &:not(:disabled):not(.disabled):active,\n    &:not(:disabled):not(.disabled).active,\n    &:not(:disabled):not(.disabled).active:focus,\n    .show > &.dropdown-toggle{\n        background-color: $btn-states-color;\n        color: $white-color;\n        border-color: $btn-states-color;\n        box-shadow: none;\n    }\n\n    .caret{\n        border-top-color: $white-color;\n    }\n\n    &.disabled,\n    &:disabled,\n    &[disabled],\n    fieldset[disabled] & {\n      &,\n      &:hover,\n      &:focus,\n      &.focus,\n      &:active,\n      &.active {\n        background-color: $btn-states-color;\n        border-color: $btn-states-color;\n      }\n    }\n\n    &.btn-link {\n        color: $btn-color;\n\n        &:hover,\n        &:focus,\n        &:active,\n        &.active,\n        &:focus:active,\n        .open > &.dropdown-toggle{\n            background-color: $transparent-bg !important;\n            color: $btn-states-color !important;\n        }\n\n        .caret{\n            border-top-color: $btn-color;\n        }\n    }\n\n    .caret{\n      border-top-color: $white-color;\n    }\n}\n\n@mixin btn-outline-styles($btn-color, $btn-states-color){\n    border-color: $btn-color;\n    color: $btn-color;\n    @include opacity(1);\n\n    &:hover,\n    &:focus,\n    &:active,\n    &.active,\n    &:active:focus,\n    &:active:hover,\n    &.active:focus,\n    .show > &.dropdown-toggle {\n      background-color: $btn-color !important;\n      color: $fill-font-color;\n      border-color: $btn-color !important;\n      .caret{\n          border-top-color: $fill-font-color;\n      }\n    }\n\n    .caret{\n        border-top-color: $white-color;\n    }\n\n    &.disabled,\n    &:disabled,\n    &[disabled],\n    fieldset[disabled] & {\n      &,\n      &:hover,\n      &:focus,\n      &.focus,\n      &:active,\n      &.active {\n        background-color: $transparent-bg;\n        border-color: $btn-color;\n      }\n    }\n}\n\n@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $line-height){\n   font-size: $font-size;\n   padding: $padding-vertical $padding-horizontal;\n\n   &.btn-simple{\n       padding: $padding-vertical + 2 $padding-horizontal;\n   }\n\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_inputs.scss",
    "content": "@mixin input-size($padding-vertical, $padding-horizontal, $height){\n    padding: $padding-vertical $padding-horizontal;\n    height: $height;\n}\n\n@mixin light-form(){\n    border-radius: 0;\n    border:0;\n    padding: 0;\n    background-color: transparent;\n\n}\n\n@mixin optional-at-root($sel) {\n@at-root #{if(not &, $sel, selector-append(&, $sel))} {@content;}\n}\n@mixin placeholder() {\n  @include optional-at-root('::-moz-placeholder') {@content;} // Firefox\n  @include optional-at-root(':-ms-input-placeholder') {@content;} // Internet Explorer 10+\n  @include optional-at-root('::-webkit-input-placeholder') {@content;} // Safari and Chrome\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_labels.scss",
    "content": "@mixin label-style(){\n     padding: $padding-label-vertical $padding-label-horizontal;\n     border: 1px solid $default-color;\n     border-radius: $border-radius-small;\n     color: $default-color;\n     font-weight: $font-weight-semi;\n     font-size: $font-size-small;\n     text-transform: uppercase;\n     display: inline-block;\n     vertical-align: middle;\n}\n\n@mixin label-color($color){\n     border-color: $color;\n     color: $color;\n}\n@mixin label-color-fill($color){\n     border-color: $color;\n     color: $white-color;\n     background-color: $color;\n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_navbars.scss",
    "content": "@mixin navbar-color($color){\n    background-color: $color;\n}\n\n@mixin center-item(){\n    left: 0;\n    right: 0;\n    margin-right: auto;\n    margin-left: auto;\n    position: absolute;\n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_popovers.scss",
    "content": "@mixin popover-style($background-color){\n    background-color: $background-color;\n    color: $white-color;\n    .popover-title{\n        background-color: $background-color;\n        color: rgba(0, 0, 0, 0.56);\n    }\n    &.bottom .arrow:after{\n        border-bottom-color: $background-color;\n    }\n    &.left > .arrow::after{\n        border-left-color: $background-color;\n    }\n    &.top > .arrow::after{\n        border-top-color: $background-color;\n    }\n    &.right > .arrow::after{\n        border-right-color: $background-color;\n    }\n\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_tabs.scss",
    "content": "@mixin pill-style($color){\n    border: 1px solid $color;\n    color: $color;\n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_transparency.scss",
    "content": "// Opacity\n\n@mixin opacity($opacity) {\n  opacity: $opacity;\n  // IE8 filter\n  $opacity-ie: ($opacity * 100);\n  filter: #{alpha(opacity=$opacity-ie)};\n}\n\n@mixin black-filter($opacity){\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    position: absolute;\n    background-color: rgba(17,17,17,$opacity);\n    display: block;\n    content: \"\";\n    z-index: 1; \n}"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/mixins/_vendor-prefixes.scss",
    "content": "// User select\n// For selecting text on the page\n\n@mixin user-select($select) {\n  -webkit-user-select: $select;\n     -moz-user-select: $select;\n      -ms-user-select: $select; // IE10+\n          user-select: $select;\n}\n\n@mixin box-shadow($shadow...) {\n  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1\n          box-shadow: $shadow;\n}\n\n// Box sizing\n@mixin box-sizing($boxmodel) {\n  -webkit-box-sizing: $boxmodel;\n     -moz-box-sizing: $boxmodel;\n          box-sizing: $boxmodel;\n}\n\n\n@mixin transition($time, $type){\n    -webkit-transition: all $time $type;\n    -moz-transition: all $time $type;\n    -o-transition: all $time $type;\n    -ms-transition: all $time $type;\n    transition: all $time $type;\n}\n\n@mixin transition-opacity($time, $type){\n    -webkit-transition: opacity $time $type;\n    -moz-transition: opacity $time $type;\n    -o-transition: opacity $time $type;\n    -ms-transition: opacity $time $type;\n    transition: opacity $time $type;\n}\n\n@mixin transition-none(){\n    -webkit-transition: none;\n    -moz-transition: none;\n    -o-transition: none;\n    -ms-transition: none;\n    transition: none;\n}\n\n\n@mixin transform-scale($value){\n     -webkit-transform: scale($value);\n        -moz-transform: scale($value);\n        -o-transform: scale($value);\n        -ms-transform: scale($value);\n        transform: scale($value);\n}\n\n@mixin transform-translate-x($value){\n     -webkit-transform:  translateX($value);\n        -moz-transform: translateX($value);\n        -o-transform: translateX($value);\n        -ms-transform: translateX($value);\n        transform: translateX($value);\n}\n\n@mixin transform-translate-y($value){\n     -webkit-transform:  translate3d(0, $value, 0);\n        -moz-transform: translate3d(0, $value, 0);\n        -o-transform: translate3d(0, $value, 0);\n        -ms-transform: translate3d(0, $value, 0);\n        transform: translate3d(0, $value, 0);\n}\n\n@mixin transform-translate-y-dropdown($value){\n     -webkit-transform:  translate3d(0, $value, 0) !important;\n        -moz-transform: translate3d(0, $value, 0) !important;\n        -o-transform: translate3d(0, $value, 0) !important;\n        -ms-transform: translate3d(0, $value, 0) !important;\n        transform: translate3d(0, $value, 0) !important;\n}\n\n\n@mixin transform-origin($coordinates){\n      -webkit-transform-origin: $coordinates;\n        -moz-transform-origin: $coordinates;\n        -o-transform-origin: $coordinates;\n        -ms-transform-origin: $coordinates;\n        transform-origin: $coordinates;\n}\n\n@mixin icon-gradient ($top-color, $bottom-color){\n    background: $top-color;\n    background: -moz-linear-gradient(top,  $top-color 0%, $bottom-color 100%);\n    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color));\n    background: -webkit-linear-gradient(top,  $top-color 0%,$bottom-color 100%);\n    background: -o-linear-gradient(top,  $top-color 0%,$bottom-color 100%);\n    background: -ms-linear-gradient(top,  $top-color 0%,$bottom-color 100%);\n    background: linear-gradient(to bottom,  $top-color 0%,$bottom-color 100%);\n}\n\n@mixin vertical-align {\n  position: relative;\n  top: 50%;\n  -webkit-transform: translateY(-50%);\n  -ms-transform: translateY(-50%);\n  transform: translateY(-50%);\n}\n\n@mixin rotate-180(){\n    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n    -webkit-transform: rotate(180deg);\n    -ms-transform: rotate(180deg);\n    transform: rotate(180deg);\n}\n@mixin rotate-53(){\n    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n    -webkit-transform: rotate(53deg);\n    -ms-transform: rotate(53deg);\n    transform: rotate(53deg);\n}\n@mixin bar-animation($type){\n     -webkit-animation: $type 500ms linear 0s;\n     -moz-animation: $type 500ms linear 0s;\n     animation: $type 500ms 0s;\n     -webkit-animation-fill-mode: forwards;\n     -moz-animation-fill-mode: forwards;\n     animation-fill-mode: forwards;\n}\n\n@mixin topbar-x-rotation(){\n    @keyframes topbar-x {\n      0% {top: 0px; transform: rotate(0deg); }\n      45% {top: 6px; transform: rotate(145deg); }\n      75% {transform: rotate(130deg); }\n      100% {transform: rotate(135deg); }\n    }\n    @-webkit-keyframes topbar-x {\n      0% {top: 0px; -webkit-transform: rotate(0deg); }\n      45% {top: 6px; -webkit-transform: rotate(145deg); }\n      75% {-webkit-transform: rotate(130deg); }\n      100% { -webkit-transform: rotate(135deg); }\n    }\n    @-moz-keyframes topbar-x {\n      0% {top: 0px; -moz-transform: rotate(0deg); }\n      45% {top: 6px; -moz-transform: rotate(145deg); }\n      75% {-moz-transform: rotate(130deg); }\n      100% { -moz-transform: rotate(135deg); }\n    }\n}\n\n@mixin topbar-back-rotation(){\n    @keyframes topbar-back {\n      0% { top: 6px; transform: rotate(135deg); }\n      45% { transform: rotate(-10deg); }\n      75% { transform: rotate(5deg); }\n      100% { top: 0px; transform: rotate(0); }\n    }\n\n    @-webkit-keyframes topbar-back {\n      0% { top: 6px; -webkit-transform: rotate(135deg); }\n      45% { -webkit-transform: rotate(-10deg); }\n      75% { -webkit-transform: rotate(5deg); }\n      100% { top: 0px; -webkit-transform: rotate(0); }\n    }\n\n    @-moz-keyframes topbar-back {\n      0% { top: 6px; -moz-transform: rotate(135deg); }\n      45% { -moz-transform: rotate(-10deg); }\n      75% { -moz-transform: rotate(5deg); }\n      100% { top: 0px; -moz-transform: rotate(0); }\n    }\n}\n\n@mixin bottombar-x-rotation(){\n    @keyframes bottombar-x {\n      0% {bottom: 0px; transform: rotate(0deg);}\n      45% {bottom: 6px; transform: rotate(-145deg);}\n      75% {transform: rotate(-130deg);}\n      100% {transform: rotate(-135deg);}\n    }\n    @-webkit-keyframes bottombar-x {\n      0% {bottom: 0px; -webkit-transform: rotate(0deg);}\n      45% {bottom: 6px; -webkit-transform: rotate(-145deg);}\n      75% {-webkit-transform: rotate(-130deg);}\n      100% {-webkit-transform: rotate(-135deg);}\n    }\n    @-moz-keyframes bottombar-x {\n      0% {bottom: 0px; -moz-transform: rotate(0deg);}\n      45% {bottom: 6px; -moz-transform: rotate(-145deg);}\n      75% {-moz-transform: rotate(-130deg);}\n      100% {-moz-transform: rotate(-135deg);}\n    }\n}\n\n@mixin bottombar-back-rotation{\n    @keyframes bottombar-back {\n      0% { bottom: 6px;transform: rotate(-135deg);}\n      45% { transform: rotate(10deg);}\n      75% { transform: rotate(-5deg);}\n      100% { bottom: 0px;transform: rotate(0);}\n    }\n    @-webkit-keyframes bottombar-back {\n      0% {bottom: 6px;-webkit-transform: rotate(-135deg);}\n      45% {-webkit-transform: rotate(10deg);}\n      75% {-webkit-transform: rotate(-5deg);}\n      100% {bottom: 0px;-webkit-transform: rotate(0);}\n    }\n    @-moz-keyframes bottombar-back {\n      0% {bottom: 6px;-moz-transform: rotate(-135deg);}\n      45% {-moz-transform: rotate(10deg);}\n      75% {-moz-transform: rotate(-5deg);}\n      100% {bottom: 0px;-moz-transform: rotate(0);}\n    }\n\n}\n\n\n// Styles for switch\n\n@mixin switch-styles($color){\n    .has-switch span.switch-left,\n    .has-switch span.switch-right {\n        background-color: color;\n    }\n}\n\n//For cards\n\n@mixin card-color-style($background-color, $text-color, $subtitle-color){\n    background: $background-color;\n    .category{\n        color: $subtitle-color;\n    }\n    .description{\n        color: $text-color;\n    }\n    .icon{\n        i{\n            color: $text-color;\n            border: 2px solid $subtitle-color;\n        }\n    }\n}\n\n//For filter\n@mixin filter($color){\n    @if $color == #FFFFFF{\n         background-color: rgba($color,.91);\n    } @else {\n         background-color: rgba($color,.69);\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/plugins/_plugin-bootstrap-switch.scss",
    "content": "/* ========================================================================\n * bootstrap-switch - v3.3.2\n * http://www.bootstrap-switch.org\n * ========================================================================\n * Copyright 2012-2013 Mattia Larentis\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\n\n\n //* IMPORTANT! Creative Tim Notice: this file has major changes to fit the Paper Kit's design. If you want to use the plugin as it was before our changes, please get the old files from http://www.bootstrap-switch.org\n\n .bootstrap-switch {\n   display: inline-block;\n   direction: ltr;\n   cursor: pointer;\n   border-radius: 30px;\n   border: 0;\n   position: relative;\n   text-align: left;\n   overflow: hidden;\n   margin-bottom: 5px;\n   line-height: 8px;\n   width: 61px !important;\n   height: 26px;\n   outline: none;\n   z-index: 0;\n   margin-right: 1px;\n   -webkit-user-select: none;\n   -moz-user-select: none;\n   -ms-user-select: none;\n   user-select: none;\n   vertical-align: middle;\n   -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n   transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n }\n\n .bootstrap-switch .bootstrap-switch-container {\n   display: inline-flex;\n   top: 0;\n   height: 26px;\n   border-radius: 4px;\n   -webkit-transform: translate3d(0, 0, 0);\n   transform: translate3d(0, 0, 0);\n   width: 100px !important;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on,\n .bootstrap-switch .bootstrap-switch-handle-off,\n .bootstrap-switch .bootstrap-switch-label {\n     -webkit-box-sizing: border-box;\n     -moz-box-sizing: border-box;\n     box-sizing: border-box;\n     cursor: pointer;\n     display: inline-block !important;\n     height: 100%;\n     color: #fff;\n     padding: 6px 12px;\n     font-size: 11px;\n     text-indent: -5px;\n     line-height: 15px;\n     -webkit-transition: 0.25s ease-out;\n     transition: 0.25s ease-out;\n\n     i{\n         font-size: 12px;\n         line-height: 14px;\n   }\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on,\n .bootstrap-switch .bootstrap-switch-handle-off {\n   text-align: center;\n   z-index: 1;\n   float: left;\n   width: 50% !important;\n   background-color: #66615B;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary,\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {\n   color: #fff;\n   background: $primary-color;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info,\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info {\n   color: #fff;\n   background: $info-color;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {\n   color: #fff;\n   background: $success-color;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning,\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning {\n   background: $warning-color;\n   color: #fff;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger,\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger {\n   color: #fff;\n   background: $danger-color;\n }\n\n\n .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {\n   color: #fff;\n   background: $default-color;\n }\n\n .bootstrap-switch .bootstrap-switch-label {\n   text-align: center;\n   z-index: 100;\n   color: #333333;\n   background: #ffffff;\n   width: 22px !important;\n   height: 22px;\n   margin: 2px -11px;\n   border-radius: 12px;\n   position: relative;\n   float: left;\n   padding: 0;\n   background-color: #FFFFFF;\n   box-shadow: 0 1px 1px #FFFFFF inset, 0 1px 1px rgba(0, 0, 0, 0.25);\n }\n\n .bootstrap-switch .bootstrap-switch-handle-on {\n   border-bottom-left-radius: 3px;\n   border-top-left-radius: 3px;\n }\n\n .bootstrap-switch .bootstrap-switch-handle-off {\n   text-indent: 6px;\n }\n\n .bootstrap-switch input[type='radio'],\n .bootstrap-switch input[type='checkbox'] {\n   position: absolute !important;\n   top: 0;\n   left: 0;\n   opacity: 0;\n   filter: alpha(opacity=0);\n   z-index: -1;\n }\n\n .bootstrap-switch input[type='radio'].form-control,\n .bootstrap-switch input[type='checkbox'].form-control {\n   height: auto;\n }\n\n .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label {\n   padding: 1px 5px;\n   font-size: 12px;\n   line-height: 1.5;\n }\n\n .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label {\n   padding: 5px 10px;\n   font-size: 12px;\n   line-height: 1.5;\n }\n\n .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label {\n   padding: 6px 16px;\n   font-size: 18px;\n   line-height: 1.33;\n }\n\n .bootstrap-switch.bootstrap-switch-disabled,\n .bootstrap-switch.bootstrap-switch-readonly,\n .bootstrap-switch.bootstrap-switch-indeterminate {\n   cursor: default !important;\n }\n\n .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,\n .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,\n .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,\n .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,\n .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {\n   opacity: 0.5;\n   filter: alpha(opacity=50);\n   cursor: default !important;\n }\n\n .bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container {\n   -webkit-transition: margin-left 0.5s;\n   transition: margin-left 0.5s;\n }\n\n .bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on {\n   border-bottom-left-radius: 0;\n   border-top-left-radius: 0;\n   border-bottom-right-radius: 3px;\n   border-top-right-radius: 3px;\n }\n\n .bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off {\n   border-bottom-right-radius: 0;\n   border-top-right-radius: 0;\n   border-bottom-left-radius: 3px;\n   border-top-left-radius: 3px;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-container {\n   margin-left: -2px !important;\n }\n\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-container {\n   margin-left: -37px !important;\n }\n\n .bootstrap-switch.bootstrap-switch-on:hover .bootstrap-switch-label {\n   width: 26px !important;\n   margin: 2px -15px;\n }\n\n .bootstrap-switch.bootstrap-switch-off:hover .bootstrap-switch-label {\n   width: 26px !important;\n   margin: 2px -15px -13px -11px;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-handle-off {\n   background-color: #66615B;\n }\n\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-handle-on {\n   background-color: #cfcfca;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-danger  {\n   background-color: $danger-color;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-warning  {\n   background-color: $warning-color;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-success  {\n   background-color: $success-color;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-primary  {\n   background-color: $primary-color;\n }\n\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-info  {\n   background-color: $info-color;\n }\n .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-default  {\n   background-color: $default-color;\n }\n\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-danger,\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-primary,\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-info,\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-warning,\n .bootstrap-switch.bootstrap-switch-off .bootstrap-switch-success {\n   background-color: #cfcfca;\n }\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/plugins/_plugin-datepicker.scss",
    "content": "/*!\n * Datetimepicker for Bootstrap 3\n * ! version : 4.7.14\n * https://github.com/Eonasdan/bootstrap-datetimepicker/\n */\n.sr-only,\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"showHours\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"showMinutes\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"togglePeriod\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"clear\"]::after,\n.bootstrap-datetimepicker-widget .btn[data-action=\"today\"]::after,\n.bootstrap-datetimepicker-widget .picker-switch::after,\n.bootstrap-datetimepicker-widget table th.prev::after,\n.bootstrap-datetimepicker-widget table th.next::after {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n\n.bootstrap-datetimepicker-widget {\n  list-style: none;\n}\n.bootstrap-datetimepicker-widget a .btn:hover {\n  background-color: transparent;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu {\n  padding: 4px;\n  width: 16em;\n}\n@media (min-width: 768px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n@media (min-width: 992px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n@media (min-width: 1200px) {\n  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {\n    width: 38em;\n  }\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{\n    border-bottom: 11px solid $medium-pale-bg;\n    border-left: 11px solid transparent;\n    border-right: 11px solid transparent;\n    content: \"\";\n    display: inline-block;\n    position: absolute;\n    right: 12px;\n    left: auto;\n    top: -12px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{\n    border-bottom: 11px solid $white-color;\n    border-left: 11px solid transparent;\n    border-right: 11px solid transparent;\n    content: \"\";\n    display: inline-block;\n    position: absolute;\n    right: 12px;\n    left: auto;\n    top: -11px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top {\n  margin-top: auto;\n  margin-bottom: -20px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.top.open {\n  margin-top: auto;\n  margin-bottom: 5px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {\n  left: auto;\n  right: 6px;\n}\n.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {\n  left: auto;\n  right: 7px;\n}\n.bootstrap-datetimepicker-widget .list-unstyled {\n  margin: 0;\n}\n.bootstrap-datetimepicker-widget a[data-action] {\n  padding: 6px 0;\n  border-width: 0;\n  color: #66615B;\n  background-color: transparent;\n}\n.bootstrap-datetimepicker-widget a[data-action=\"togglePicker\"],\n.bootstrap-datetimepicker-widget a[data-action=\"togglePicker\"]:hover {\n    color: #429cb6 !important;\n}\n.bootstrap-datetimepicker-widget a[data-action]:hover {\n  background-color: transparent;\n  color: rgba(255, 255, 255, 0.85);\n}\n.bootstrap-datetimepicker-widget a[data-action]:active {\n  box-shadow: none;\n}\n.bootstrap-datetimepicker-widget .timepicker-hour,\n.bootstrap-datetimepicker-widget .timepicker-minute,\n.bootstrap-datetimepicker-widget .timepicker-second {\n  width: 40px;\n  height: 40px;\n  line-height: 40px;\n  font-weight: 300;\n  font-size: 1.5em;\n  margin: 3px;\n  border-radius: 50%;\n}\n.bootstrap-datetimepicker-widget button[data-action] {\n  width: 38px;\n  height: 38px;\n  padding: 0;\n}\n\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementHours\"]::after {\n  content: \"Increment Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"incrementMinutes\"]::after {\n  content: \"Increment Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementHours\"]::after {\n  content: \"Decrement Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"decrementMinutes\"]::after {\n  content: \"Decrement Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"showHours\"]::after {\n  content: \"Show Hours\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"showMinutes\"]::after {\n  content: \"Show Minutes\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"togglePeriod\"]::after {\n  content: \"Toggle AM/PM\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"clear\"]::after {\n  content: \"Clear the picker\";\n}\n.bootstrap-datetimepicker-widget .btn[data-action=\"today\"]::after {\n  content: \"Set the date to today\";\n}\n.bootstrap-datetimepicker-widget .picker-switch {\n  text-align: center;\n  border-radius: 4px;\n}\n.bootstrap-datetimepicker-widget .picker-switch::after {\n  content: \"Toggle Date and Time Screens\";\n}\n.bootstrap-datetimepicker-widget .picker-switch td {\n  padding: 0;\n  margin: 0;\n  height: auto;\n  width: auto;\n  line-height: inherit;\n}\n.bootstrap-datetimepicker-widget .picker-switch td span {\n  line-height: 2.5;\n  height: 2.5em;\n  width: 100%;\n  border-radius: 4px;\n  margin: 2px 0px !important;\n}\n.bootstrap-datetimepicker-widget table {\n  width: 100%;\n  margin: 0;\n}\n.bootstrap-datetimepicker-widget table td > div, .bootstrap-datetimepicker-widget table th > div {\n  text-align: center;\n}\n.bootstrap-datetimepicker-widget table th {\n  height: 20px;\n  line-height: 20px;\n  width: 20px;\n}\n.bootstrap-datetimepicker-widget table th.picker-switch {\n  width: 145px;\n}\n.bootstrap-datetimepicker-widget table th.disabled, .bootstrap-datetimepicker-widget table th.disabled:hover {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table th.prev span, .bootstrap-datetimepicker-widget table th.next span {\n  border-radius: 4px;\n  height: 27px;\n  width: 27px;\n  line-height: 28px;\n  font-size: 12px;\n  border-radius: 50%;\n  text-align: center;\n}\n.bootstrap-datetimepicker-widget table th.prev::after {\n  content: \"Previous Month\";\n}\n.bootstrap-datetimepicker-widget table th.next::after {\n  content: \"Next Month\";\n}\n.bootstrap-datetimepicker-widget table th.dow {\n  text-align: center;\n  border-bottom: 1px solid #E3E3E3;\n  font-size: 12px;\n  text-transform: uppercase;\n  color: #9A9A9A;\n  font-weight: 400;\n  padding-bottom: 5px;\n  padding-top: 10px;\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th {\n  cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table thead tr:first-child th:hover span, .bootstrap-datetimepicker-widget table thead tr:first-child th.picker-switch:hover {\n  background: #E3E3E3;\n}\n.bootstrap-datetimepicker-widget table td > div {\n  border-radius: 4px;\n  height: 54px;\n  line-height: 54px;\n  width: 54px;\n  text-align: center;\n}\n.bootstrap-datetimepicker-widget table td.cw > div {\n  font-size: .8em;\n  height: 20px;\n  line-height: 20px;\n  color: #cfcfca;\n}\n.bootstrap-datetimepicker-widget table td.day > div {\n  height: 30px;\n  line-height: 31px;\n  width: 30px;\n  text-align: center;\n  padding: 0px;\n  border-radius: 50%;\n  margin: 0 auto;\n  z-index: -1;\n  position: relative;\n}\n.table-condensed{\n    .day:hover{\n        div{\n            @include transition(150ms, linear);\n        }\n    }\n}\n.bootstrap-datetimepicker-widget table td.minute > div, .bootstrap-datetimepicker-widget table td.hour > div {\n  border-radius: 50%;\n}\n.bootstrap-datetimepicker-widget table td.day:hover > div, .bootstrap-datetimepicker-widget table td.hour:hover > div, .bootstrap-datetimepicker-widget table td.minute:hover > div, .bootstrap-datetimepicker-widget table td.second:hover > div {\n  background: #E3E3E3;\n  cursor: pointer;\n}\n.bootstrap-datetimepicker-widget table td.old > div, .bootstrap-datetimepicker-widget table td.new > div {\n  color: #cfcfca;\n}\n\n.bootstrap-datetimepicker-widget table td.active > div, .bootstrap-datetimepicker-widget table td.active:hover > div {\n  background-color: #68B3C8;\n  color: #FFFFFF;\n}\n.bootstrap-datetimepicker-widget table td.active.today:before > div {\n  border-bottom-color: #FFFFFF;\n}\n.bootstrap-datetimepicker-widget table td.disabled > div, .bootstrap-datetimepicker-widget table td.disabled:hover > div {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget table td span {\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  line-height: 40px;\n  margin: 3px 3px;\n  cursor: pointer;\n  border-radius: 50%;\n  text-align: center;\n}\n.bootstrap-datetimepicker-widget table td span:hover {\n  background: #E3E3E3;\n}\n.bootstrap-datetimepicker-widget table td span.active {\n  background-color: #68B3C8;\n  color: #FFFFFF;\n}\n.bootstrap-datetimepicker-widget table td span.old {\n  color: #cfcfca;\n}\n.bootstrap-datetimepicker-widget table td span.disabled, .bootstrap-datetimepicker-widget table td span.disabled:hover {\n  background: none;\n  color: #cfcfca;\n  cursor: not-allowed;\n}\n.bootstrap-datetimepicker-widget .timepicker-picker span,\n.bootstrap-datetimepicker-widget .timepicker-hours span,\n.bootstrap-datetimepicker-widget .timepicker-minutes span {\n  border-radius: 50% !important;\n}\n.bootstrap-datetimepicker-widget.usetwentyfour td.hour {\n  height: 27px;\n  line-height: 27px;\n}\n\n.input-group.date .input-group-addon {\n  cursor: pointer;\n}\n\n.table-condensed > tbody > tr > td,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > td,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > thead > tr > th {\n  padding: 1px;\n  text-align: center;\n  z-index: 1;\n  cursor: pointer;\n}\n.bootstrap-datetimepicker-widget{\n    opacity: 0;\n    -webkit-transform: translate3d(0px, -10px, 0px);\n    -moz-transform: translate3d(0, -10px, 0);\n    -o-transform: translate3d(0, -10px, 0);\n    -ms-transform: translate3d(0, -10px, 0);\n    transform: translate3d(0px, -10px, 0px);\n    -webkit-box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n    box-shadow: 0 2px rgba(17, 16, 15, 0.1), 0 2px 10px rgba(17, 16, 15, 0.1);\n\n    &.top{\n        -webkit-transform: translate3d(0px, 0px, 0px);\n        -moz-transform: translate3d(0, 0px, 0);\n        -o-transform: translate3d(0, 0px, 0);\n        -ms-transform: translate3d(0, 0px, 0);\n        transform: translate3d(0px, 0px, 0px);\n    }\n    &.open{\n        opacity: 1;\n        -webkit-transform: translate3d(0, 5px, 0);\n        -moz-transform: translate3d(0, 5px, 0);\n        -o-transform: translate3d(0, 5px, 0);\n        -ms-transform: translate3d(0, 5px, 0);\n        transform: translate3d(0, 5px, 0);\n        transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;\n    }\n}\n.bootstrap-datetimepicker-widget.open.top{\n    -webkit-transform: translate3d(0, -10px, 0);\n    -moz-transform: translate3d(0, -10px, 0);\n    -o-transform: translate3d(0, -10px, 0);\n    -ms-transform: translate3d(0, -10px, 0);\n    transform: translate3d(0, -10px, 0);\n\n    &:before{\n        border-top: 11px solid #DCD9D1;\n        border-left: 11px solid transparent;\n        border-right: 11px solid transparent;\n        content: \"\";\n        display: inline-block;\n        position: absolute;\n        right: 12px;\n        bottom: -12px;\n    }\n    &:after{\n        border-top: 11px solid $white-color;\n        border-left: 11px solid transparent;\n        border-right: 11px solid transparent;\n        content: \"\";\n        display: inline-block;\n        position: absolute;\n        right: 12px;\n        bottom: -11px;\n    }\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/plugins/_plugin-nouislider.scss",
    "content": "\n/* Functional styling;\n * These styles are required for noUiSlider to function.\n * You don't need to change these rules to apply your design.\n */\n.noUi-target,\n.noUi-target * {\n-webkit-touch-callout: none;\n-webkit-user-select: none;\n-ms-touch-action: none;\n\ttouch-action: none;\n-ms-user-select: none;\n-moz-user-select: none;\n\tuser-select: none;\n-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n}\n.noUi-target {\n\tposition: relative;\n\tdirection: ltr;\n}\n.noUi-base {\n\twidth: 100%;\n\theight: 100%;\n\tposition: relative;\n\tz-index: 1; /* Fix 401 */\n}\n.noUi-connect {\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\tleft: 0;\n\tbottom: 0;\n}\n.noUi-origin {\n\tposition: absolute;\n\theight: 0;\n\twidth: 0;\n\n    margin: 0;\n    border-radius: 0;\n    height: 2px;\n    background: #c8c8c8;\n    &[style^=\"left: 0\"] .noUi-handle {\n        background-color: #fff;\n        border: 2px solid #c8c8c8;\n        &.noUi-active {\n            border-width: 1px;\n        }\n    }\n}\n.noUi-handle {\n\tposition: relative;\n\tz-index: 1;\n}\n.noUi-state-tap .noUi-connect,\n.noUi-state-tap .noUi-origin {\n-webkit-transition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n\ttransition: top 0.3s, right 0.3s, bottom 0.3s, left 0.3s;\n}\n.noUi-state-drag * {\n\tcursor: inherit !important;\n}\n\n/* Painting and performance;\n * Browsers can paint handles in their own layer.\n */\n.noUi-base,\n.noUi-handle {\n\t-webkit-transform: translate3d(0,0,0);\n\ttransform: translate3d(0,0,0);\n}\n\n/* Slider size and handle placement;\n */\n.noUi-horizontal {\n\theight: 2px;\n    margin: 15px 0;\n}\n.noUi-vertical {\n\twidth: 18px;\n}\n.noUi-vertical .noUi-handle {\n\twidth: 28px;\n\theight: 34px;\n\tleft: -6px;\n\ttop: -17px;\n}\n\n/* Styling;\n */\n.noUi-target {\n\tbackground: #c8c8c8;\n\tborder-radius: 4px;\n}\n.noUi-connect {\n\tbackground: #3FB8AF;\n-webkit-transition: background 450ms;\n\ttransition: background 450ms;\n}\n\n/* Handles and cursors;\n */\n.noUi-draggable {\n\tcursor: w-resize;\n}\n.noUi-vertical .noUi-draggable {\n\tcursor: n-resize;\n}\n.noUi-handle {\n    box-sizing: border-box;\n    width: 14px;\n    height: 14px;\n    left: -10px;\n    top: -6px;\n    cursor: pointer;\n    border-radius: 100%;\n    transition: all 0.2s ease-out;\n    border: 1px solid;\n    background: $white-color;\n\n    &.noUi-active {\n        transform: scale3d(1.5, 1.5, 1);\n    }\n}\n.noUi-vertical .noUi-handle:before,\n.noUi-vertical .noUi-handle:after {\n\twidth: 14px;\n\theight: 1px;\n\tleft: 6px;\n\ttop: 14px;\n}\n.noUi-vertical .noUi-handle:after {\n\ttop: 17px;\n}\n\n/* Disabled state;\n */\n\n[disabled] .noUi-connect {\n\tbackground: #B8B8B8;\n}\n[disabled].noUi-target,\n[disabled].noUi-handle,\n[disabled] .noUi-handle {\n\tcursor: not-allowed;\n}\n\n.slider {\n    background: #c8c8c8;\n\n    & .noUi-connect{\n        background-color: $primary-color;\n        border-radius: 4px;\n    }\n\n    .noUi-handle{\n        border-color: $primary-color;\n    }\n\n    &.slider-info{\n        & .noUi-connect{\n            background-color: $info-color;\n        }\n\n        .noUi-handle{\n            border-color: $info-color;\n        }\n    }\n    &.slider-success{\n        & .noUi-connect{\n            background-color: $success-color;\n        }\n\n        .noUi-handle{\n            border-color: $success-color;\n        }\n    }\n    &.slider-warning{\n        & .noUi-connect{\n            background-color: $warning-color;\n        }\n\n        .noUi-handle{\n            border-color: $warning-color;\n        }\n    }\n    &.slider-danger{\n        & .noUi-connect{\n             background-color: $danger-color;\n         }\n\n         .noUi-handle{\n             border-color: $danger-color;\n         }\n    }\n\n}\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit/plugins/_plugin-perfect-scrollbar.scss",
    "content": "/* perfect-scrollbar v0.6.13 */\n.ps-container {\n  -ms-touch-action: auto;\n  touch-action: auto;\n  overflow: hidden !important;\n  -ms-overflow-style: none; }\n  @supports (-ms-overflow-style: none) {\n    .ps-container {\n      overflow: auto !important; } }\n  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n    .ps-container {\n      overflow: auto !important; } }\n  .ps-container.ps-active-x > .ps-scrollbar-x-rail,\n  .ps-container.ps-active-y > .ps-scrollbar-y-rail {\n    display: block;\n    background-color: transparent; }\n  .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {\n      background-color: #999;\n      height: 11px; }\n  .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {\n      background-color: #999;\n      width: 11px; }\n  .ps-container > .ps-scrollbar-x-rail {\n    display: none;\n    position: absolute;\n    /* please don't change 'position' */\n    opacity: 0;\n    -webkit-transition: background-color .2s linear, opacity .2s linear;\n    -o-transition: background-color .2s linear, opacity .2s linear;\n    -moz-transition: background-color .2s linear, opacity .2s linear;\n    transition: background-color .2s linear, opacity .2s linear;\n    bottom: 0px;\n    /* there must be 'bottom' for ps-scrollbar-x-rail */\n    height: 15px; }\n    .ps-container > .ps-scrollbar-x-rail > .ps-scrollbar-x {\n      position: absolute;\n      /* please don't change 'position' */\n      background-color: #aaa;\n      -webkit-border-radius: 6px;\n      -moz-border-radius: 6px;\n      border-radius: 6px;\n      -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;\n      -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;\n      -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;\n      bottom: 2px;\n      /* there must be 'bottom' for ps-scrollbar-x */\n      height: 6px; }\n    .ps-container > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x, .ps-container > .ps-scrollbar-x-rail:active > .ps-scrollbar-x {\n      height: 11px; }\n  .ps-container > .ps-scrollbar-y-rail {\n    display: none;\n    position: absolute;\n    /* please don't change 'position' */\n    opacity: 0;\n    -webkit-transition: background-color .2s linear, opacity .2s linear;\n    -o-transition: background-color .2s linear, opacity .2s linear;\n    -moz-transition: background-color .2s linear, opacity .2s linear;\n    transition: background-color .2s linear, opacity .2s linear;\n    right: 0;\n    /* there must be 'right' for ps-scrollbar-y-rail */\n    width: 15px; }\n    .ps-container > .ps-scrollbar-y-rail > .ps-scrollbar-y {\n      position: absolute;\n      /* please don't change 'position' */\n      background-color: #aaa;\n      -webkit-border-radius: 6px;\n      -moz-border-radius: 6px;\n      border-radius: 6px;\n      -webkit-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, -webkit-border-radius .2s ease-in-out;\n      -o-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;\n      -moz-transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out;\n      transition: background-color .2s linear, height .2s linear, width .2s ease-in-out, border-radius .2s ease-in-out, -webkit-border-radius .2s ease-in-out, -moz-border-radius .2s ease-in-out;\n      right: 2px;\n      /* there must be 'right' for ps-scrollbar-y */\n      width: 6px; }\n    .ps-container > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y, .ps-container > .ps-scrollbar-y-rail:active > .ps-scrollbar-y {\n      width: 11px; }\n  .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container:hover.ps-in-scrolling.ps-x > .ps-scrollbar-x-rail > .ps-scrollbar-x {\n      background-color: #999;\n      height: 11px; }\n  .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container:hover.ps-in-scrolling.ps-y > .ps-scrollbar-y-rail > .ps-scrollbar-y {\n      background-color: #999;\n      width: 11px; }\n  .ps-container:hover > .ps-scrollbar-x-rail,\n  .ps-container:hover > .ps-scrollbar-y-rail {\n    opacity: 0.6; }\n  .ps-container:hover > .ps-scrollbar-x-rail:hover {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container:hover > .ps-scrollbar-x-rail:hover > .ps-scrollbar-x {\n      background-color: #999; }\n  .ps-container:hover > .ps-scrollbar-y-rail:hover {\n    background-color: #eee;\n    opacity: 0.9; }\n    .ps-container:hover > .ps-scrollbar-y-rail:hover > .ps-scrollbar-y {\n      background-color: #999; }\n"
  },
  {
    "path": "public/static/home/assets/scss/paper-kit.scss",
    "content": "/*!\n\n =========================================================\n * Paper Kit - v2.2.0\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/paper-kit-2\n * Copyright 2019 Creative Tim (http://www.creative-tim.com)\n\n * Designed by www.invisionapp.com Coded by www.creative-tim.com\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n@import 'paper-kit/variables';\n@import 'paper-kit/mixins';\n\n// Plugins CSS\n@import \"paper-kit/plugins/plugin-bootstrap-switch\";\n@import \"paper-kit/plugins/plugin-nouislider\";\n@import \"paper-kit/plugins/plugin-datepicker\";\n\n// Core CSS\n@import \"paper-kit/buttons\";\n@import \"paper-kit/inputs\";\n@import \"paper-kit/checkbox-radio\";\n@import \"paper-kit/progress-bars\";\n@import \"paper-kit/badges\";\n@import \"paper-kit/pagination\";\n@import \"paper-kit/typography\";\n@import \"paper-kit/misc\";\n@import \"paper-kit/labels\";\n\n// components\n@import \"paper-kit/nucleo-icons\";\n@import \"paper-kit/social-buttons\";\n@import \"paper-kit/tabs-navs\";\n@import \"paper-kit/navbars\";\n@import \"paper-kit/dropdown\";\n@import \"paper-kit/alerts\";\n@import \"paper-kit/images\";\n@import \"paper-kit/tooltips-and-popovers\";\n@import \"paper-kit/modal\";\n@import \"paper-kit/icons\";\n@import \"paper-kit/carousel\";\n@import \"paper-kit/footers\";\n\n// Cards\n@import \"paper-kit/cards\";\n@import \"paper-kit/cards/card-plain\";\n@import \"paper-kit/cards/card-register\";\n@import \"paper-kit/cards/card-profile\";\n\n// example pages and sections\n@import \"paper-kit/examples\";\n@import \"paper-kit/sections\";\n\n\n@import \"paper-kit/responsive\";\n"
  },
  {
    "path": "public/static/home/docs/documentation.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\" />\n  <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"../assets/img//apple-icon.png\">\n  <link rel=\"icon\" type=\"image/png\" href=\"../assets/img//favicon.png\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n  <title>\n    Components Documentation - Paper Kit by Creative Tim\n  </title>\n  <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n  <!--     Fonts and icons     -->\n  <link href=\"https://fonts.googleapis.com/css?family=Montserrat:400,700,200\" rel=\"stylesheet\" />\n  <link href=\"https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css\" rel=\"stylesheet\">\n  <!-- CSS Files -->\n  <link href=\"../assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n  <link href=\"../assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n  <!-- CSS Just for demo purpose, don't include it in your project -->\n  <link href=\"../assets/demo/demo.css\" rel=\"stylesheet\" />\n</head>\n\n<body class=\"offline-doc\">\n  <!-- Navbar -->\n  <nav class=\"navbar navbar-expand-lg fixed-top navbar-transparent \" color-on-scroll=\"300\">\n    <div class=\"container\">\n      <div class=\"navbar-translate\">\n        <a class=\"navbar-brand\" href=\"https://demos.creative-tim.com/paper-kit/index.html\" rel=\"tooltip\" title=\"Coded by Creative Tim\" data-placement=\"bottom\" target=\"_blank\">\n          Paper Kit 2\n        </a>\n        <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n          <span class=\"navbar-toggler-bar bar1\"></span>\n          <span class=\"navbar-toggler-bar bar2\"></span>\n          <span class=\"navbar-toggler-bar bar3\"></span>\n        </button>\n      </div>\n      <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n        <ul class=\"navbar-nav\">\n        </ul>\n      </div>\n    </div>\n  </nav>\n  <!-- End Navbar -->\n  <div class=\"page-header\">\n    <div class=\"page-header-image\" style=\"background-image: url('../assets/img/daniel-olahh.jpg');\"></div>\n    <div class=\"container text-center\">\n      <div class=\"col-md-8 mx-auto\">\n        <div class=\"brand\">\n          <h1 class=\"title\">\n            Paper Kit\n          </h1>\n          <h3 class=\"description\">Documentation v2.2.0</h3>\n          <br/>\n          <a href=\"https://demos.creative-tim.com/paper-kit-2/docs/1.0/getting-started/introduction.html\" class=\"btn btn-primary btn-round btn-lg\">View documentation</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <footer class=\"footer footer-black  footer-white \">\n    <div class=\"container\">\n      <div class=\"row\">\n        <nav class=\"footer-nav\">\n          <ul>\n            <li>\n              <a href=\"https://www.creative-tim.com\" target=\"_blank\">Creative Tim</a>\n            </li>\n            <li>\n              <a href=\"http://blog.creative-tim.com/\" target=\"_blank\">Blog</a>\n            </li>\n            <li>\n              <a href=\"https://www.creative-tim.com/license\" target=\"_blank\">Licenses</a>\n            </li>\n          </ul>\n        </nav>\n        <div class=\"credits ml-auto\">\n          <span class=\"copyright\">\n            ©\n            <script>\n              document.write(new Date().getFullYear())\n            </script>, made with <i class=\"fa fa-heart heart\"></i> by Creative Tim\n          </span>\n        </div>\n      </div>\n    </div>\n  </footer>\n  <!--   Core JS Files   -->\n  <script src=\"../assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for Switches, full documentation here: http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n  <script src=\"../assets/js/plugins/bootstrap-switch.js\"></script>\n  <!--  Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->\n  <script src=\"../assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for the DatePicker, full documentation here: https://github.com/uxsolutions/bootstrap-datepicker -->\n  <script src=\"../assets/js/plugins/moment.min.js\"></script>\n  <script src=\"../assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n  <!-- Control Center for Paper Kit: parallax effects, scripts for the example pages etc -->\n  <script src=\"../assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n  <!--  Google Maps Plugin    -->\n  <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "public/static/home/editormd/.gitignore",
    "content": "logs\n*.log\n*.pid\n*.seed\nnode_modules/\n.sass-cache/\nresearch/\ntest/\nbackup/\nexamples/uploads/**/*\n*.bat\n*.sh\n.project\n.url\ncss/*.map"
  },
  {
    "path": "public/static/home/editormd/.jshintrc",
    "content": "{\n\t\"esnext\": true,\n\t\"bitwise\": true,\n\t\"camelcase\": true,\n\t\"curly\": true,\n\t\"eqeqeq\": true,\n\t\"immed\": true,\n\t\"indent\": 4,\n\t\"latedef\": true,\n\t\"newcap\": true,\n\t\"noarg\": true,\n\t\"quotmark\": \"double\",\n\t\"regexp\": true,\n\t\"undef\": true,\n\t\"unused\": true,\n\t\"strict\": true,\n\t\"trailing\": true,\n\t\"smarttabs\": true,\n\t\"white\": true\n}"
  },
  {
    "path": "public/static/home/editormd/BUGS.md",
    "content": "#Bugs\n\n> 说明：删除线表示已经解决。\n\n####IE8\n\n- ~~不能加载；~~\n- flowChart（流程图）、sequenceDiagram（序列图）不支持IE8；\n- ~~不支持Markdown转HTML页面解析预览；~~\n\n####IE8 & IE9 & IE10\n\n- KaTeX会出现解析错误，但不影响程序运行；\n\n####Sea.js\n\n- ~~Raphael.js无法加载；~~\n\n####Require.js\n\n- ~~CodeMirror编辑器的代码无法高亮；~~\n- ~~sequenceDiagram不支持: `Uncaught TypeError: Cannot call method 'isArray' of undefined.`~~\n"
  },
  {
    "path": "public/static/home/editormd/CHANGE.md",
    "content": "## 更新日志\n\n### v1.0.x\n\n##### v1.0.0 beta\n\n预览版：基本功能完成；\n\n##### v1.0.0 releases\n\n发布 v1.0.0 正式版。\n\n主要更新：\n\n- 新建分支 `mathjax-version`，但不打算继续对此分支进行开发；\n\n- 移除 MathJax，改用 KaTeX [#2](https://github.com/pandao/editor.md/issues/2)，解析和预览响应速度大幅度提高 [#3](https://github.com/pandao/editor.md/issues/3)；\n    - 移除 `mathjax` 配置项；\n    - 移除 `mathjaxURL` 属性；\n    - 移除 `setMathJaxConfig()` 方法；\n    - 移除 `loadMathJax()` 方法；\n    - 移除MathJax的所有示例；\n    - 新增 `tex` 配置项，表示是否开启支持科学公式 TeX ，基于 KaTeX；\n    - 新增 `katexURL` 属性；\n    - 新增 `loadKaTeX` 方法；\n    - 新增 KaTeX 的示例；\n    \n- `setCodeEditor()` 方法更名为 `setCodeMirror()`；\n\n- 合并 CodeMirror 使用到的多个 JS 模块文件，大幅减少 HTTP 请求，加快下载速度；\n    - 新增合并后的两个模块文件：`./lib/codemirror/modes.min.js`、`./lib/codemirror/addons.min.js` ；\n    - `Gulpfile.js` 新增合并 CodeMirror 模块文件的任务方法 `codemirror-mode` 和 `codemirror-addon` ；\n    - 另外在使用 Require.js 时，因为 CodeMirror 的严格模块依赖的限制，不能使用上述合并的模块文件，仍然采用动态加载多个模块文件；\n    \n- 更新 `README.md` 等相关文档和示例；\n\n- 解决 Sea.js 环境下 Raphael.js 无法运行导致不支持流程图和时序图的问题，即必须先加载 Raphael.js ，后加载 Sea.js ；\n\n### v1.1.x\n\n##### v1.1.0\n\n主要更新：\n\n- 设计并更换了 Logo；\n- 新增添加图片、链接、锚点链接、代码块、预格式文本等操作弹出对话框层及示例；\n- 新增支持图片(跨域)上传；\n- 改用 `<textarea>` 来存放 Markdown 源文档；\n- 新增支持自定义工具栏；\n- 新增支持多语言；\n- 新增支持 Zepto.js；\n- 新增支持多个 Editor.md 并存和动态加载 Editor.md 及示例；\n- 新增支持智能识别和解析 HTML 标签及示例；\n- 新增多个外部操作方法接口及示例；\n- 修复了一些大大小小的 Bug；\n\n具体更新如下：\n\n- 更换 Logo，建立基础 VI；\n    - 创建了全系列 WebFont 字体 `dist/fonts/editormd-logo.*` ；\n    - 新增样式类 `editormd-logo` 等；\n\n- 改用 `<textarea>` 来存放 Markdown 源文档；\n    - 原先使用 `<script type=\"text/markdown\"></script>` 来存放 Markdown 源文档；\n    - 创建 Editor.md 只需要写一个 `<div id=\"xxxx\"></div>` ，如果没有添加 `class=\"editormd\"` 属性会自动添加，另外如果不存在 `<textarea>` 标签，则也会自动添加 `<textarea>` ；\n\n- 新增支持智能识别和解析 HTML 标签，增强了 Markdown 语法的扩展性，几乎无限，例如：插入视频等等；\n    - 新增配置项 `htmlDecode` ，表示是否开启 HTML 标签识别和解析，但是为了安全性，默认不开启；\n    - 新增识别和解析 HTML 标签的示例；\n    \n- 新增插入链接、锚点链接、预格式文本和代码块的弹出对话框层；\n    - 弹出层改为使用固定定位；\n    - 新增动态创建对话框的方法 `createDialog()`；\n    - 新增静态属性 `editormd.codeLanguages` ，用于存放代码语言列表；\n\n- 开始支持图片上传；\n    - 新增添加图片（上传）弹出对话框层；\n    - 支持基于 iframe 的跨域上传，并添加相应的示例（ PHP 版）；\n    \n- 开始支持自定义工具栏图标及操作处理；\n    - 配置项 `toolbarIcons` 类型由数组更改为函数，返回一个图标按钮列表数组；\n    - 新增配置项 `toolbarHandlers` 和 `toolbarIconsTexts` ，分别用于自定义按钮操作处理和按钮内容文本；\n    - 新增方法 `getToolbarHandles()` ，用于可在外部使用默认的操作方法；\n    - 新增成员属性 `activeIcon` ，可获取当前或上次点击的工具栏图标的 jQuery 实例对象；\n    \n- 新增表单取值、自定义工具栏、图片上传、多个 Editor.md 并存和动态加载 Editor.md 等多个示例；\n\n- 新增插入锚点按钮和操作处理；\n\n- 新增预览 HTML 内容窗口的关闭按钮，之前只能按 ESC 才能退出 HTML 全窗口预览；\n\n- 新增多语言（ l18n ）及动态加载语言包支持；\n    - 新增英语 `en` 和繁体中文 `zh-tw` 语言包模块；\n    - 修改一些方法的内部实现以支持动态语言加载:\n        - `toolbarHandler()` 更为 `setToolbarHandler()` ；\n        - `setToolbar()` 方法包含 `setToolbarHandler()` ；\n        - 新建 `createInfoDialog()` 方法；\n\t    - 修改 `showInfoDialog()` 和 `hideInfoDialog()` 方法的内部实现等；\n\n- 修改多次 Bug ，并优化触摸事件，改进对 iPad 的支持；\n\n- 工具栏新增清空按钮和清空方法 `clear()` ，解决工具栏文本会被选中出现蓝底的问题;\n\n- 配置项 `tocStartLevel` 的默认值由 2 改为 1，表示默认从 H1 开始生成 ToC；\n\n- 解决 IE8 下加载出错的问题；\n    - 新增两个静态成员属性 `isIE` 和 `isIE8` ，用于判断 IE8；\n    - 由于 IE8 不支持 FlowChart 和 SequenceDiagram，默认在 IE8 下不加载这两个组件，无论是否开启；\n\n- 新增 Zepto.js 的支持；\n\t- 为了兼容 Zepto.js ，某些元素在操作处理上不再使用 `outerWidth()` 、 `outerHeight()` 、`hover()` 、`is()` 等方法；\n\t- 为了避免修改 flowChart.js 和 sequence-diagram.js 的源码，所以想支持 flowChart 或 sequenceDiagram 得加上这一句： `var jQuery = Zepto;`；\n\n- 新增 `editormd.$name` 属性，修改 `editormd.homePage` 属性的新地址；\n\n- `editormd.markdownToHTML()` 新增方法返回一个 jQuery 实例对象；\n    - 该实例对象定义了一个 `getMarkdown()`方法，用于获取 Markdown 源代码；\n    - 该实例对象定义了一个 `tocContainer` 成员属性，即 ToC 列表的父层的 jQuery 实例对象；\n\n- 新增只读模式；\n    - 新增配置项 `readOnly` ，默认值为 `false` ，即可编辑模式；\n    - 其他相关改动；\n\n- 新增方法 `focus()` 、 `setCursor()` 、 `getCursor()` 、`setSelection()` 、`getSelection()` 、 `replaceSelection()` 和 `insertValue()` 方法，并增加对应的示例；\n\n- 新增配置项 `saveHTMLToTextarea` ，用于将解析后的 HTML 保存到 Textarea，以供提交到后台程序；\n    - `getHTML()` 方法必须在 `saveHTMLToTextarea == true` 的情况下才能使用；\n    - 新增 `getHTML()` 方法的别名 `getTextareaSavedHTML()` 方法；\n    - 新增方法 `getPreviewedHTML()` ，用于获取预览窗口的 HTML ；\n\n- 修复了一些大大小小的 Bugs；\n\n##### v1.1.1\n\n- 接受一个 pull 请求，修复了 `getHTML ()` 和 `getPreviewedHTML()` 方法中的 ３ 处错误；\n\n##### v1.1.2\n\n- 修复 Bug [＃10](https://github.com/pandao/editor.md/issues/10)；\n- 修复 Bug [＃12](https://github.com/pandao/editor.md/issues/12)；\n\n##### v1.1.3\n\n- 修复 Bug [＃14](https://github.com/pandao/editor.md/issues/14)；\n- 修复 Bug [＃15](https://github.com/pandao/editor.md/issues/15)；\n\n##### v1.1.4\n\n- 修复 Bug [＃17](https://github.com/pandao/editor.md/issues/17)；\n    - 修改了 `getToolbarHandles()` 和 `setToolbarHandler()` 方法；\n- 从 `editormd.scss` 中分离出 `editormd.logo.scss` ，并生成 `editormd.logo.css` ，以便单独使用；\n    - 同时修改了 `Gulpfile.js` 的相应任务；\n    \n##### v1.1.5\n\n- 修复 Bug [＃18](https://github.com/pandao/editor.md/issues/18)；\n    - 修改了 `showInfoDialog()` 和 `createInfoDialog()` 方法；\n    - 新增 `infoDialogPosition()` 方法；\n    \n- 修复 Bug [＃20](https://github.com/pandao/editor.md/issues/20)；\n    - 修改了引用的处理函数；\n    - 插入的 headers 的 `#` 号后面都加上了一个空格；\n\n##### v1.1.6\n\n修复多处 Bug，具体如下：\n    \n- 修复 Bug [#23](https://github.com/pandao/editor.md/issues/23)，即 Headers 的 id 属性的重复及中文问题；\n    - 修改了 `editormd.markedRenderer()` 方法；\n\n- 修复 Bug [#24](https://github.com/pandao/editor.md/issues/24)；\n    - 修改了 `setMarkdown()` 、 `clear()` 和 `loadedDisplay()` 方法的内部实现；\n    - 新增了 `katexRender()` 、 `flowChartAndSequenceDiagramRender()` 、 `previewCodeHighlight()` 方法；\n    \n- 修复有些情况下无法保存 Markdown 源文档到 textarea 的问题；\n    - 修改了 `setCodeMirror()` 、 `recreateEditor()` 等方法；\n\n- 修改了以上 Bug 及部分相关示例文件；\n\n##### v1.1.7\n\n修复多处 Bug，具体如下：\n\n- 修复 Bug [#25](https://github.com/pandao/editor.md/issues/25)；\n    - 修改了 `loadedDisplay()` 方法，将 `settings.onload` 移动了 `CodeMirror.on(\"change\")` 事件注册后再触发；\n\n- 修复 Bug [#26](https://github.com/pandao/editor.md/issues/26)；\n    - 修改了 `saveToTextareas()` 方法；\n    - 新增 `state.loaded` 和 `state.watching` 两个属性；\n\n- 修改了以上 Bug 相关示例文件；\n\n##### v1.1.8\n\n改进功能，具体如下：\n\n- 改进 [#27](https://github.com/pandao/editor.md/issues/27)；\n    - 新增配置项 `matchWordHighlight` ，可选值有： `true, false, \"onselected\"` ，默认值为 `true` ，即开启自动匹配和标示相同单词；\n\n- 改进 [#28](https://github.com/pandao/editor.md/issues/28)；\n    - 将 `jquery.min.js` 、 `font-awesome.min.css` 、 `github-markdown.css` 移除（这是一个疏忽，它们不是动态加载的依赖模块或者不需要的，避免不必要的硬盘空间占用）；\n\n- 修改了所有相关的示例文件；\n\n##### v1.1.9\n\n- 修复无法解析 heading link 的 Bug [#29](https://github.com/pandao/editor.md/issues/29)；\n\n    - 修改了 `editormd.markedRenderer()` 方法的内部实现；\n    - 新增了 `editormd.trim()` ，用于清除字符串两边的空格；\n    - 修改了所有相关的示例文件和测试用例 `marked-heading-link-test.html` ；\n    \n- 修改了 `README.md` ，添加了 `Shields.io` 图标；\n\n### v1.2\n\n##### v1.2.0\n\nv1.2.0 主要更新：\n\n- 新增代码折叠、搜索替换、自定义样式主题和自定义快捷键等功能；\n- 新增 Emoji 表情、@Link 、GFM Task Lists 支持；\n- 新增表格插入、Emoji 表情插入、HTML 实体字符插入、使用帮助等对话框；\n- 新增插件扩展机制；\n- 新增手动加载依赖模块方式；\n- 改用 `Prefixes.css` 作 CSS 前缀预处理；\n- 改进和增强工具栏自定义功能，完善事件监听和处理方法；\n- 部分功能改进（更加方便的预格式文本/代码插入、自动闭合标签等）、新增多个方法、改进 Require.js 支持和修复多个 Bug 等等；\n\n**具体更新如下：**\n\n- 新建 v1.1.x 分支；\n    - v1.2 文件结构变动较大；\n\n- 新增代码折叠、自动闭合标签和搜索替换功能；\n    - 搜索快捷键 `Ctrl + F / Command + F` ；\n    - 替换快捷键 `Ctrl + Shift + F / Command + Option + F` ；\n    - 折叠快捷键 `Ctrl + Q / Command + Q` ；\n\n- 新增自定义主题支持；\n    - 新增 3 个成员方法 `setTheme()` 、 `setCodeMirrorOption()` 和 `getCodeMirrorOption()` ；\n\n- 新增 @Link 支持；\n\n- 新增 GFM Task Lists 支持；\n\n- 新增 Emoji 表情支持；\n    - 支持 Github emoji `:emoji-name:` 、FontAwesome icons（`:fa-xxx:`）、Twitter emoji (twemoji) （ `:tw-xxxx:` ）、Editor.md logo icons（ `:editormd-logo:` ）形式的 Emoji；\n    - 新增属性 `editormd.emoji` 、 `editormd.twemoji` 、 `editormd.urls` 和 `editormd.regex`；\n    \n- 新增 HTML 实体字符插入、插入表格和使用帮助对话框；\n    - 修改了 `createDialog()` 等方法；\n    - 新增 `mask` 成员属性和锁屏方法 `editormd.lockScreen()` 、 `editormd.fn.lockScreen()` ；\n\n- 改进插入预格式文本和代码对话框；\n    - 将 `<textarea>` 改为 `CodeMirror` ，输入更加方便和直观；\n\n- 新增自定义键盘快捷键功能；\n    - 新增 2 个方法： `addKeyMap()` 和 `removeKayMap()`；\n\n- 改用 `Prefixes.css` 作CSS前缀预处理；\n    - SCSS前缀预处理mixins改用 [Prefixes.scss](https://github.com/pandao/prefixes.scss \"Prefixes.scss\")；\n\n- 改进和增强工具栏自定义功能；\n\t- 新增配置项 `toolbarCustomIcons` ，用于增加自定义工具栏的功能，可以直接插入 HTML 标签，不使用默认的元素创建图标；\n    - 新增工具栏列表预设值属性 `editormd.toolbarModes` ；\n    - 移除成员属性 `toolbarIconHandlers` ；\n\n- 完善和新增事件处理方法；\n\t- 新增事件回调注册方法 `on()` ；\n\t- 新增事件回调移除方法 `off()` ；\n\t- 新增事件回调处理配置项： `onresize` 、 `onscroll` 、`onpreviewscroll` 、 `onpreviewing` 、 `onpreviewed` 、`onwatch` 和 `onunwatch` ；\n\n- 新增手动加载依赖模块方式，以便可同步使用成员方法；\n    - 新增属性 `autoLoadModules` ，默认值为 `true` ；\n\n- 新增插件及扩展机制；\n    \n    - 新增插件自定义机制，改变整体结构(包括文件结构)，以便更加方便地实现插件扩展；\n\t- 新增对象扩展方法 `extends()` 、 `set()` ；\n\n- 新增成员方法和属性：\n\n    - 新增两个方法： `setValue()` 、`getValue()`；\n\t- 新增 `config()` 方法，用于加载后重新配置；\n\t- 增加两个属性 `cm` ，是 `codeEditor` 的简写， `cmElement` 是 `codeMirror` 的别名;\n\n- 成员方法的改进：\n\n\t- 改进： `showToolbar()` 和 `hideToolbar()` 方法增加一个 `callback` 函数，用于直接回调操作；\n\t- 改进：修改了 `previewCodeHighlight()` 方法；\n\t- 更名： `recreateEditor()` 更名为 `recreate()` ；\n    - 移除 `setMarked()` 方法；\n    \n- 新增 HTML 标签解析过滤机制；\n    - 通过设置 `settings.htmlDecode = \"style,script,iframe\"` 来实现过滤指定标签的解析；\n\n- 改进 Require.js 支持；\n    - 修复 Require.js 下 CodeMirror 编辑器的代码无法高亮的问题；\n    - 更新 `underscore` 版本至 `1.8.2` ；\n    - 移除 `editormd.requirejsInit()` 和 `editormd.requireModules()` 方法；\n    - 新增 `Require.js/AMD` 专用版本文件 `editormd.amd.js` ；\n    - 新建 Gulp 任务 `amd` ；\n\n- 修改和新增以上改进等相关示例；\n\n### v1.3\n\n#### v1.3.0\n\n主要更新：\n\n- 预设键盘快捷键处理（粗体等），插入 Markdown 更加方便；\n- 更新 CodeMirror 版本为 `5.0` ；\n- 更新 Marked 版本为 `0.3.3`；\n- 新增自动高度和工具栏固定定位功能；\n- 改进表格插入对话框；\n- 工具栏新增三个按钮，分别是将所选文本首字母转成大写、转成小写、转成大写；\n- 修改使用帮助文档；\n- 修复多个 Bug；\n\n具体更新如下：\n\n- 新增常用键盘快捷键预设处理；\n    - 新增属性 `editormd.keyMaps` ，预设一些常用操作，例如插入粗体等；\n    - 新增成员方法 `registerKeyMaps()` ；\n    - 退出HTML全屏预览快捷键更改为 `Shift + ESC`；\n    - 新增配置项 `disabledKeyMaps` ，用于屏蔽一些快捷键操作；\n- 更新 CodeMirror 版本为 `5.0`；\n    - 修改无法输入 `/` 的问题；\n- 更新 Marked 版本为 `0.3.3`；\n- 新增自动高度和工具栏固定定位（滚动条拖动时）模式；\n    - 新增配置项 `settings.autoHeight` ；\n    - 新增配置项 `settings.toolbarAutoFixed` ；\n    - 新增方法 `setToolbarAutoFixed(true|false)` ；\n- 新增邮箱地址自动添加链接功能；\n    - 新增配置项 `emailLink` ，默认为 `true` ; \n- 改进表格插入对话框；\n- 工具栏新增三个按钮，分别是将所选文本首字母转成大写、转成小写、转成大写；\n    - 新增方法 `editormd.ucwords()` ，别名 `editormd.wordsFirstUpperCase()` ；\n    - 新增方法 `editormd.ucfirst()` ，别名 `editormd.firstUpperCase()` ；\n    - 新增两个成员方法 `getSelections()` 和 `getSelections()` ；\n\n- 修复 Font awesome 图标 emoji 部分无法解析的 Bug，[#39](https://github.com/pandao/editor.md/issues/39)\n- 改进 @link 功能 [#40](https://github.com/pandao/editor.md/issues/40)；\n    - 新增配置项 `atLink` ，默认为 `true` ; \n- 修复无法输入 `/` 的问题 [#42](https://github.com/pandao/editor.md/issues/42)；\n- 修改使用帮助说明的错误 [#43](https://github.com/pandao/editor.md/issues/43)；\n- 新增配置项 `pluginPath`，默认为空时，等于 `settings.path + \"../plugins/\"` ；\n\n### v1.4\n\n#### v1.4.0\n\n主要更新：\n\n- 新增延迟解析机制，预览更即时；\n- 新增跳转到指定行的功能和对话框；\n- 新增 ToC 下拉菜单、自定义 ToC 容器的功能；\n- 新增跳转到行、搜索的工具栏按钮；\n- 新增支持插入和解析（打印）分页符；\n- 改进快捷键功能和自动高度模式等；\n- 改进：将锚点链接改名为引用链接；\n- 改进编辑器重建和重配置功能；\n- 修复多个 Bug；\n\n具体更新：\n\n- 新增延迟解析预览的机制，解决输入太多太快出现的 “延迟卡顿” 问题；\n    - 新增配置项 `delay` ，默认值为 `300`；\n    - 修复当输入速度太快时，解析Flowchart会抛出错误的问题；\n- 修改 iPad 等移动终端的浏览器无法上传图片的问题 [#48](https://github.com/pandao/editor.md/issues/48)；\n- 修复单独引用 `editormd.preview.css` 时无法显示 Font Awesome 和 Editor.md logo 字体的问题；\n- 更新和修改 Gulp 构建；\n    - 修改了 `Gulpfile.js` ，并且 `gulp-ruby-sass` 升级到最新版本 `1.0.0-alpha.3` ; \n    - 编辑 SCSS 时，不再生成 CSS 的 Source map 文件；\n- 执行 jshint 和更正一些 JS 写法的不规范，精简了代码；\n- 新增配置项 `appendMarkdown` 和 `appendMarkdown()` 方法，用于(初始化前后)追加 Markdown 到 Textarea ；\n- 改进部分预设快捷键功能，包括 F9 (watch)、F10 (preview)、F11 (fullscreen)等;\n- 修复自动高度模式下出现的几个问题；\n    - 全屏退出时高度不正确的问题：修改了 `fullscreenExit()` 方法的内部实现；\n    - 当解析预览后的 HTML 内容高度高于 Markdown 源码编辑器高度时，无法正确预览的问题 [#49](https://github.com/pandao/editor.md/issues/49)；\n- 修改 `onscroll` 和 `onpreviewscroll` 无法访问 `this` 的问题；\n- 修改 `init()` 方法，可以只设置一个参数；\n- 新增插入 TeX (KaTeX) 公式的快捷键 `Ctrl + Shift + K` 和插入方法 `tex()` ；\n- 将锚点链接改为引用链接，引用的链接改为插入到页尾；\n    - 工具栏的名称 `anchor` 改为 `reference-link`；\n    - 工具栏的名称 `htmlEntities` 改名为 `html-entities`；\n- 改进编辑器重建和重配置功能；\n    - 修改了 `loadedDisplay()` 方法；\n    - 修改了 `config()` 和 `recreate()` 方法；\n- 新增跳转到指定行的功能；\n    - 新增方法 `gotoLine()` ；\n    - 新增跳转到行对话框插件 `goto-line-dialog` ；\n    - 新增快捷键 `Ctrl + Alt + G` ；\n    - 改进 `executePlugin()` 方法；\n    - 修改了 `help-dialog/help.md` ；\n- 新增搜索工具栏按钮；\n    - 新增方法 `search()` 、`searchReplace()` 和 `searchReplaceAll()` ；\n    - 原全屏预览 HTML 按钮的图标改为 `fa-desktop`；\n    - 改为默认开启搜索替换功能；\n- 更换了关于 Editor.md 的标语（ slogan ）；\n- 标题按钮 `h` 改为大写的 `H`；\n- `saveToTextareas()` 方法更名为 `save()`；\n- 新增 ToC 下拉菜单、自定义 ToC 容器的功能；\n    - 新增 Markdown 扩展语法 `[TOCM]` ，自动生成 ToC 下拉菜单；\n    - 新增配置项 `tocm` ，默认为 `true`，即可以使用 `[TOCM]` ；\n    - 新增配置项 `tocDropdown` 和 `tocTitle` ；\n    - 新增方法 `editormd.tocDropdownMenu()` ；\n    - 新增配置项 `tocContainer` ，值为 jQuery 选择器，默认为空；\n- 修改了配置项 `placeholder` 的默认值；\n- 改进对 IE8 的兼容支持；\n- 修复 Firefox 下因为 `Object.watch()` 而出现的问题；\n- 新增支持插入和解析（打印）分页符；\n    - 新增配置项 `pageBreak` ，默认值为 `true`；\n    - 新增语法 `[========]` ，即括号内至少 8 个等号；\n    - 新增插入分页符的工具栏图标和方法 `pagebreak()` ；\n    - 新增插入分页符的快捷键 `Shift + Alt + P`；\n- 修复一些 Bug，包括 [#51](https://github.com/pandao/editor.md/issues/51) 等；\n- 新增和修改以上更新的相关示例；\n\n#### v1.4.1\n\n- 新增配置项 `syncScrolling`，即是否开启同步滚动预览，默认值为 `false` ； \n- 修复 Bug [＃64](https://github.com/pandao/editor.md/issues/64)；\n    - 更新 `editormd.katexURL` 资源地址的默认值，即更新版本为 `0.3.0` ； \n    - 新增测试用例`tests/katex-tests.html`；\n    - 修改示例文件`examples/katex.html`； \n- 修复 Bug [＃66](https://github.com/pandao/editor.md/issues/66)；\n- 修复编辑器工具栏按钮 `:hover` CSS3 transition 无效的问题； \n- 修改了 `README.md`；\n\n#### v1.4.2\n\n- 改进和增强自定义工具栏功能，支持图标按钮右对齐 [#69](https://github.com/pandao/editor.md/issues/69)；\n- 改进和增强 HTML 标签的解析过滤功能，支持过滤指定的属性等 [#70](https://github.com/pandao/editor.md/issues/70)；\n- 删除分支 `mathjax-version` 和 `v1.1.9`；\n\n#### v1.4.3\n\n- 改进：可配置是否自动聚焦编辑器 [#74](https://github.com/pandao/editor.md/issues/74)；\n\t- 新增配置项 `autoFocus`，默认值为 `true`; \n- 修复 Bug [#77](https://github.com/pandao/editor.md/issues/77)；\n- 改进：帮助对话框里的链接改为新窗口打开，避免直接跳转到链接，导致编辑内容丢失的问题 [#79](https://github.com/pandao/editor.md/issues/79)；\n- 改进和完善编辑器配置项；\n\t- 新增配置项 `tabSize`、`indentUnit` 和 `lineWrapping`；\n\t- 新增配置项 `autoCloseBrackets` 和 `showTrailingSpace` ；\n\t- 新增配置项 `matchBrackets`、`indentWithTabs` 和 `styleSelectedText`；\n- 改进：修改 CSS `font-family`，改进跨平台中英文字体显示；\n- 修改了 `README.md`；\n\n#### v1.4.4\n\n- 修复 Bug [#81](https://github.com/pandao/editor.md/issues/81)，即不支持 `:+1:` 的问题；\n- 修复 Bug [#85](https://github.com/pandao/editor.md/issues/85)，即图片上传返回结果不支持 `Content-Type=application/json` 的问题；\n- 修复图片上传无法显示 loading 的问题；\n\n#### v1.4.5\n\n- 规范项目的中英文混排；\n- 新增配置项 `name`，用于指定 Markdown textarea 的 `name=\"xxxx\"` 属性；\n- 修复 Bug，即无法正确解析公式的 `<` 和 `>` 的问题 [#87](https://github.com/pandao/editor.md/issues/87);\n- 修复 Bug，即 `getHTML()` 无效的问题 [#95](https://github.com/pandao/editor.md/issues/95);\n- 修复 Bug，即火狐上传图片后无法返回值的问题 [#96](https://github.com/pandao/editor.md/issues/96);\n    - 修改了图片上传插件；\n    - 修改 PHP 上传类及示例；\n- 方法更名：`extends()` 更名为 `extend()`，以兼容 IE8；\n- 修复 IE8 下 Emoji 正则表达式字符集越界的问题；\n- 更新了 `README.md` 和 `CHANGE.md` 等相关文档文件；\n\n\n### v1.5\n\n#### v1.5.0\n\n主要更新：\n\n- 新增：编辑器黑色主题 Dark，改进自定义主题功能（即工具栏、编辑区、预览区可分别设置主题样式）；\n- 新增：多行公式支持；\n- 新增：支持非编辑状态下的 ToC 自定义容器；\n- 新增：支持设置为单向同步滚动；\n- 改进：编辑器样式美化，更换了滚动条样式; \n- 改进：提高同步滚动定位的精确度；\n- 改进：修复和改进 HTML 标签及属性过滤功能；\n- 改进：修复在 Bootstrap 下的兼容性问题；\n- 修复多处 Bug；\n\n具体更新：\n\n- 新增：解析后的代码块自动换行；\n\n- 新增：支持多行公式；\n    - 新增：新增语法：\\`\\`\\`math | latex | katex；\n    - 改进：美化 KaTeX 公式，即加大字号等；\n\n- 新增：支持设置为单向同步滚动，即只是编辑区单向同步滚动，配置项 `syncScrolling : \"single\"`；\n    - 新增：配置同步滚动示例文件 `sync-scrolling.html`；\n\n- 新增：增加了编辑器样式主题 Dark，即工具栏和预览区各自有一个暗黑色主题；\n    - 变更：自 `v1.5.0` 开始，配置项 `theme` 改为指定 Editor.md 本身的主题；\n    - 新增配置项 `editorTheme` ，用于指定编辑区的主题，即 CodeMirror 的主题；\n    - 新增配置项 `previewTheme` ，用于指定预览区的主题；\n    - 新增方法 `setEditorTheme()`，别名： `setCodeMirror()`；\n    - 新增方法 `setPreviewTheme()`；\n    - 修改了方法 `setTheme()` ；\n    - 更换了滚动条样式，Only Webkit；\n    - 改进全屏状态下的样式显示，去掉 JS 操作的部分，改为通过 CSS 样式类 `.editormd-fullscreen` 控制；\n    - 修改和增加相关的方法、SCSS 文件及示例文件 `themes.html`；\n\n- 新增：非编辑状态下 ToC 自定义容器支持；\n    - 新增配置项 `markdownSourceCode`，即解析后是否保留源码，默认为不保留 `false`；\n    - 新增配置项 `tocContainer`，值为自定义 ToC 容器的 ID 选择器 `#xxxxx`，默认为空；\n    - 新增和修改了相关示例文件；\n\n- 新增：新增加了 CSS 样式类 `editormd-preview-active`，可以控制全屏HTML预览时的内容层样式；\n    - 修改了 `previewing()` 和 `previewed()` 方法；\n    - 相关 issues [#103](https://github.com/pandao/editor.md/issues/103)；\n    - 另外也调整了关闭按钮的位置；\n\n- 改进：修复插入 Emoji `:moon:` 无法显示的问题，修改为其是 `:waxing_gibbous_moon:` 的别名 [#94](https://github.com/pandao/editor.md/pull/94)；\n\n- 改进：修改了 CodeMirror 代码行的左右内间距，使其不会挨着左边的行号层；\n    - 相关 issues [#97](https://github.com/pandao/editor.md/issues/97)；\n\n- 改进：修改了同步滚动的定位算法，提高精确度；\n    - 修正问题 [#99](https://github.com/pandao/editor.md/issues/99)；\n    - 修改了 `bindScrollEvent()` 方法；\n\n- 改进：完善 HTML 标签过滤功能，即代码块、`<pre>` 预格式文本和行内代码里的标签及属性不会被过滤；\n    - 修复 Bug [#105](https://github.com/pandao/editor.md/issues/105)；\n- 改进：当不显示行号时 `settings.lineNumbers == false`，CodeMirror 行号层去掉右边框； \n- 改进：根据指针在当前行的位置更合理插入标题和水平线 [#104](https://github.com/pandao/editor.md/pull/104)；\n- 改进：调整了字体，优先显示 `\"YaHei Consolas Hybrid\", Consolas`；\n- 改进：修复在 Bootstrap 下的兼容性问题，即因为 box-sizing 写错位置导致的弹出层宽度等错位问题 [#107](https://github.com/pandao/editor.md/issues/107)；"
  },
  {
    "path": "public/static/home/editormd/Gulpfile.js",
    "content": "\"use strict\";\n\nvar os           = require(\"os\");\nvar gulp         = require(\"gulp\");\nvar gutil        = require(\"gulp-util\");\nvar sass         = require(\"gulp-ruby-sass\");\nvar jshint       = require(\"gulp-jshint\");\nvar uglify       = require(\"gulp-uglifyjs\");\nvar rename       = require(\"gulp-rename\");\nvar concat       = require(\"gulp-concat\");\nvar notify       = require(\"gulp-notify\");\nvar header       = require(\"gulp-header\");\nvar minifycss    = require(\"gulp-minify-css\");\n//var jsdoc        = require(\"gulp-jsdoc\");\n//var jsdoc2md     = require(\"gulp-jsdoc-to-markdown\");\nvar pkg          = require(\"./package.json\");\nvar dateFormat   = require(\"dateformatter\").format;\nvar replace      = require(\"gulp-replace\");\n\npkg.name         = \"Editor.md\";\npkg.today        = dateFormat;\n\nvar headerComment = [\"/*\", \n\t\t\t\t\t\" * <%= pkg.name %>\",\n                    \" *\",\n\t\t\t\t\t\" * @file        <%= fileName(file) %> \",\n\t\t\t\t\t\" * @version     v<%= pkg.version %> \",\n\t\t\t\t\t\" * @description <%= pkg.description %>\",\n\t\t\t\t\t\" * @license     MIT License\",\n\t\t\t\t\t\" * @author      <%= pkg.author %>\",\n\t\t\t\t\t\" * {@link       <%= pkg.homepage %>}\",\n\t\t\t\t\t\" * @updateTime  <%= pkg.today('Y-m-d') %>\",\n\t\t\t\t\t\" */\", \n\t\t\t\t\t\"\\r\\n\"].join(\"\\r\\n\");\n\nvar headerMiniComment = \"/*! <%= pkg.name %> v<%= pkg.version %> | <%= fileName(file) %> | <%= pkg.description %> | MIT License | By: <%= pkg.author %> | <%= pkg.homepage %> | <%=pkg.today('Y-m-d') %> */\\r\\n\";\n\nvar scssTask = function(fileName, path) {\n    \n    path = path || \"scss/\";\n    \n    var distPath = \"css\";\n    \n    return sass(path + fileName + \".scss\", { style: \"expanded\", sourcemap: false, noCache : true })\n        .pipe(gulp.dest(distPath))\n        .pipe(header(headerComment, {pkg : pkg, fileName : function(file) { \n            var name = file.path.split(file.base);\n            return name[1].replace(\"\\\\\", \"\");\n        }}))\n       .pipe(gulp.dest(distPath)) \n       .pipe(rename({ suffix: \".min\" }))\n       .pipe(gulp.dest(distPath))\n       .pipe(minifycss())\n       .pipe(gulp.dest(distPath)) \n        .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) { \n            var name = file.path.split(file.base);\n            return name[1].replace(\"\\\\\", \"\");\n        }}))\n       .pipe(gulp.dest(distPath)) \n       .pipe(notify({ message: fileName + \".scss task completed!\" }));\n};\n\ngulp.task(\"scss\", function() { \n\treturn scssTask(\"editormd\");\n}); \n\ngulp.task(\"scss2\", function() { \n\treturn scssTask(\"editormd.preview\");\n}); \n\ngulp.task(\"scss3\", function() {\n\treturn scssTask(\"editormd.logo\");\n}); \n\ngulp.task(\"js\", function() { \n  return gulp.src(\"./src/editormd.js\")\n            .pipe(jshint(\"./.jshintrc\"))\n            .pipe(jshint.reporter(\"default\"))\n            .pipe(header(headerComment, {pkg : pkg, fileName : function(file) { \n                var name = file.path.split(file.base);\n                return name[1].replace(/[\\\\\\/]?/, \"\");\n            }}))\n            .pipe(gulp.dest(\"./\"))\n            .pipe(rename({ suffix: \".min\" }))\n            .pipe(uglify())  // {outSourceMap: true, sourceRoot: './'}\n            .pipe(gulp.dest(\"./\"))\t\n            .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {\n                var name = file.path.split(file.base + ( (os.platform() === \"win32\") ? \"\\\\\" : \"/\") );\n                return name[1].replace(/[\\\\\\/]?/, \"\");\n            }}))\n            .pipe(gulp.dest(\"./\"))\n            .pipe(notify({ message: \"editormd.js task complete\" }));\n}); \n\ngulp.task(\"amd\", function() {\n    var replaceText1 = [\n        'var cmModePath  = \"codemirror/mode/\";',\n        '            var cmAddonPath = \"codemirror/addon/\";', \n        '',\n        '            var codeMirrorModules = [',\n        '                \"jquery\", \"marked\", \"prettify\",',\n        '                \"katex\", \"raphael\", \"underscore\", \"flowchart\",  \"jqueryflowchart\",  \"sequenceDiagram\",',\n        '',\n        '                \"codemirror/lib/codemirror\",',\n        '                cmModePath + \"css/css\",',\n        '                cmModePath + \"sass/sass\",', \n        '                cmModePath + \"shell/shell\",', \n        '                cmModePath + \"sql/sql\",',\n        '                cmModePath + \"clike/clike\",',\n        '                cmModePath + \"php/php\",',\n        '                cmModePath + \"xml/xml\",',\n        '                cmModePath + \"markdown/markdown\",', \n        '                cmModePath + \"javascript/javascript\",',\n        '                cmModePath + \"htmlmixed/htmlmixed\",',\n        '                cmModePath + \"gfm/gfm\",',\n        '                cmModePath + \"http/http\",',\n        '                cmModePath + \"go/go\",', \n        '                cmModePath + \"dart/dart\",', \n        '                cmModePath + \"coffeescript/coffeescript\",',\n        '                cmModePath + \"nginx/nginx\",',\n        '                cmModePath + \"python/python\",', \n        '                cmModePath + \"perl/perl\",',\n        '                cmModePath + \"lua/lua\",', \n        '                cmModePath + \"r/r\", ',\n        '                cmModePath + \"ruby/ruby\", ',\n        '                cmModePath + \"rst/rst\",',\n        '                cmModePath + \"smartymixed/smartymixed\",', \n        '                cmModePath + \"vb/vb\",',\n        '                cmModePath + \"vbscript/vbscript\",', \n        '                cmModePath + \"velocity/velocity\",',\n        '                cmModePath + \"xquery/xquery\",',\n        '                cmModePath + \"yaml/yaml\",',\n        '                cmModePath + \"erlang/erlang\",', \n        '                cmModePath + \"jade/jade\",',\n        '',\n        '                cmAddonPath + \"edit/trailingspace\", ',\n        '                cmAddonPath + \"dialog/dialog\", ',\n        '                cmAddonPath + \"search/searchcursor\", ',\n        '                cmAddonPath + \"search/search\", ',\n        '                cmAddonPath + \"scroll/annotatescrollbar\", ', \n        '                cmAddonPath + \"search/matchesonscrollbar\", ',\n        '                cmAddonPath + \"display/placeholder\", ',\n        '                cmAddonPath + \"edit/closetag\", ',\n        '                cmAddonPath + \"fold/foldcode\",',\n        '                cmAddonPath + \"fold/foldgutter\",',\n        '                cmAddonPath + \"fold/indent-fold\",',\n        '                cmAddonPath + \"fold/brace-fold\",',\n        '                cmAddonPath + \"fold/xml-fold\", ',\n        '                cmAddonPath + \"fold/markdown-fold\",',\n        '                cmAddonPath + \"fold/comment-fold\", ',\n        '                cmAddonPath + \"mode/overlay\", ',\n        '                cmAddonPath + \"selection/active-line\", ',\n        '                cmAddonPath + \"edit/closebrackets\", ',\n        '                cmAddonPath + \"display/fullscreen\",',\n        '                cmAddonPath + \"search/match-highlighter\"',\n        '            ];',\n        '',\n        '            define(codeMirrorModules, factory);'\n    ].join(\"\\r\\n\");\n    \n    var replaceText2 = [\n        \"if (typeof define == \\\"function\\\" && define.amd) {\",\n        \"       $          = arguments[0];\",\n        \"       marked     = arguments[1];\",\n        \"       prettify   = arguments[2];\",\n        \"       katex      = arguments[3];\",\n        \"       Raphael    = arguments[4];\",\n        \"       _          = arguments[5];\",\n        \"       flowchart  = arguments[6];\",\n        \"       CodeMirror = arguments[9];\",\n        \"   }\"\n    ].join(\"\\r\\n\");\n    \n    gulp.src(\"src/editormd.js\")\n        .pipe(rename({ suffix: \".amd\" }))\n        .pipe(gulp.dest('./'))\n        .pipe(header(headerComment, {pkg : pkg, fileName : function(file) { \n            var name = file.path.split(file.base);\n            return name[1].replace(/[\\\\\\/]?/, \"\");\n        }}))\n        .pipe(gulp.dest(\"./\"))\n        .pipe(replace(\"/* Require.js define replace */\", replaceText1))\n        .pipe(gulp.dest('./'))\n        .pipe(replace(\"/* Require.js assignment replace */\", replaceText2))\n        .pipe(gulp.dest('./'))\n        .pipe(rename({ suffix: \".min\" }))\n        .pipe(uglify()) //{outSourceMap: true, sourceRoot: './'}\n        .pipe(gulp.dest(\"./\"))\n        .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {\n            var name = file.path.split(file.base + ( (os.platform() === \"win32\") ? \"\\\\\" : \"/\") );\n            return name[1].replace(/[\\\\\\/]?/, \"\");\n        }}))\n        .pipe(gulp.dest(\"./\"))\n        .pipe(notify({ message: \"amd version task complete\"}));\n}); \n\n\nvar codeMirror = {\n    path : {\n        src : {\n            mode : \"lib/codemirror/mode\",\n            addon : \"lib/codemirror/addon\"\n        },\n        dist : \"lib/codemirror\"\n    },\n    modes : [\n        \"css\",\n        \"sass\",\n        \"shell\",\n        \"sql\",\n        \"clike\",\n        \"php\",\n        \"xml\",\n        \"markdown\",\n        \"javascript\",\n        \"htmlmixed\",\n        \"gfm\",\n        \"http\",\n        \"go\",\n        \"dart\",\n        \"coffeescript\",\n        \"nginx\",\n        \"python\",\n        \"perl\",\n        \"lua\",\n        \"r\", \n        \"ruby\", \n        \"rst\",\n        \"smartymixed\",\n        \"vb\",\n        \"vbscript\",\n        \"velocity\",\n        \"xquery\",\n        \"yaml\",\n        \"erlang\",\n        \"jade\",\n    ],\n\n    addons : [\n        \"edit/trailingspace\", \n        \"dialog/dialog\", \n        \"search/searchcursor\", \n        \"search/search\",\n        \"scroll/annotatescrollbar\", \n        \"search/matchesonscrollbar\", \n        \"display/placeholder\", \n        \"edit/closetag\", \n        \"fold/foldcode\",\n        \"fold/foldgutter\",\n        \"fold/indent-fold\",\n        \"fold/brace-fold\",\n        \"fold/xml-fold\", \n        \"fold/markdown-fold\",\n        \"fold/comment-fold\", \n        \"mode/overlay\", \n        \"selection/active-line\", \n        \"edit/closebrackets\", \n        \"display/fullscreen\", \n        \"search/match-highlighter\"\n    ]\n};\n\ngulp.task(\"cm-mode\", function() { \n    \n    var modes = [\n        codeMirror.path.src.mode + \"/meta.js\"\n    ];\n    \n    for(var i in codeMirror.modes) {\n        var mode = codeMirror.modes[i];\n        modes.push(codeMirror.path.src.mode + \"/\" + mode + \"/\" + mode + \".js\");\n    }\n    \n    return gulp.src(modes)\n                .pipe(concat(\"modes.min.js\"))\n                .pipe(gulp.dest(codeMirror.path.dist))\n                .pipe(uglify()) // {outSourceMap: true, sourceRoot: codeMirror.path.dist}\n                .pipe(gulp.dest(codeMirror.path.dist))\t\n                .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {\n                    var name = file.path.split(file.base + \"\\\\\"); \n                    return (name[1]?name[1]:name[0]).replace(/\\\\/g, \"\");\n                }}))\n                .pipe(gulp.dest(codeMirror.path.dist))\n                .pipe(notify({ message: \"codemirror-mode task complete!\" }));\n}); \n\ngulp.task(\"cm-addon\", function() { \n    \n    var addons = [];\n    \n    for(var i in codeMirror.addons) {\n        var addon = codeMirror.addons[i];\n        addons.push(codeMirror.path.src.addon + \"/\" + addon + \".js\");\n    }\n    \n    return gulp.src(addons)\n                .pipe(concat(\"addons.min.js\"))\n                .pipe(gulp.dest(codeMirror.path.dist))\n                .pipe(uglify()) //{outSourceMap: true, sourceRoot: codeMirror.path.dist}\n                .pipe(gulp.dest(codeMirror.path.dist))\t\n                .pipe(header(headerMiniComment, {pkg : pkg, fileName : function(file) {\n                    var name = file.path.split(file.base + \"\\\\\");\n                    return (name[1]?name[1]:name[0]).replace(/\\\\/g, \"\");\n                }}))\n                .pipe(gulp.dest(codeMirror.path.dist))\n                .pipe(notify({ message: \"codemirror-addon.js task complete\" }));\n}); \n/*\ngulp.task(\"jsdoc\", function(){\n    return gulp.src([\"./src/editormd.js\", \"README.md\"])\n               .pipe(jsdoc.parser())\n               .pipe(jsdoc.generator(\"./docs/html\"));\n});\n\ngulp.task(\"jsdoc2md\", function() {\n    return gulp.src(\"src/js/editormd.js\")\n            .pipe(jsdoc2md())\n            .on(\"error\", function(err){\n                gutil.log(gutil.colors.red(\"jsdoc2md failed\"), err.message);\n            })\n            .pipe(rename(function(path) {\n                path.extname = \".md\";\n            }))\n            .pipe(gulp.dest(\"docs/markdown\"));\n});\n*/\ngulp.task(\"watch\", function() {\n\tgulp.watch(\"scss/editormd.scss\", [\"scss\"]);\n\tgulp.watch(\"scss/editormd.preview.scss\", [\"scss\", \"scss2\"]);\n\tgulp.watch(\"scss/editormd.logo.scss\", [\"scss\", \"scss3\"]);\n\tgulp.watch(\"src/editormd.js\", [\"js\", \"amd\"]);\n});\n\ngulp.task(\"default\", function() {\n    gulp.run(\"scss\");\n    gulp.run(\"scss2\");\n    gulp.run(\"scss3\");\n    gulp.run(\"js\");\n    gulp.run(\"amd\");\n    gulp.run(\"cm-addon\");\n    gulp.run(\"cm-mode\");\n});"
  },
  {
    "path": "public/static/home/editormd/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 pandao\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "public/static/home/editormd/README.md",
    "content": "# Editor.md\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg)\n![](https://img.shields.io/github/forks/pandao/editor.md.svg)\n![](https://img.shields.io/github/tag/pandao/editor.md.svg)\n![](https://img.shields.io/github/release/pandao/editor.md.svg)\n![](https://img.shields.io/github/issues/pandao/editor.md.svg)\n![](https://img.shields.io/bower/v/editor.md.svg)\n\n**Editor.md** : The open source embeddable online markdown editor (component), based on CodeMirror & jQuery & Marked.\n\n### Features\n\n- Support Standard Markdown / CommonMark and GFM (GitHub Flavored Markdown);\n- Full-featured: Real-time Preview, Image (cross-domain) upload, Preformatted text/Code blocks/Tables insert, Code fold, Search replace, Read only, Themes, Multi-languages, L18n, HTML entities, Code syntax highlighting...;\n- Markdown Extras : Support [ToC (Table of Contents)](https://pandao.github.io/editor.md/examples/toc.html), [Emoji](https://pandao.github.io/editor.md/examples/emoji.html), [Task lists](https://pandao.github.io/editor.md/examples/task-lists.html), [@Links](https://pandao.github.io/editor.md/examples/@links.html)...;\n- Compatible with all major browsers (IE8+), compatible Zepto.js and iPad;\n- Support [decode & fliter of the HTML tags & attributes](https://pandao.github.io/editor.md/examples/html-tags-decode.html);\n- Support [TeX (LaTeX expressions, Based on KaTeX)](https://pandao.github.io/editor.md/examples/katex.html), [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html) and [Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html) of Markdown extended syntax;\n- Support AMD/CMD (Require.js & Sea.js) Module Loader, and Custom/define editor plugins;\n\n[README & Examples (English)](https://pandao.github.io/editor.md/en.html)\n  \n\n--------\n\n**Editor.md** 是一款开源的、可嵌入的 Markdown 在线编辑器（组件），基于 CodeMirror、jQuery 和 Marked 构建。\n\n![editormd-screenshot](https://pandao.github.io/editor.md/examples/images/editormd-screenshot.png \"editormd-screenshot\")\n\n#### 主要特性\n\n- 支持通用 Markdown / CommonMark 和 GFM (GitHub Flavored Markdown) 风格的语法，也可[变身为代码编辑器](https://pandao.github.io/editor.md/examples/change-mode.html)；\n- 支持实时预览、图片（跨域）上传、预格式文本/代码/表格插入、代码折叠、跳转到行、搜索替换、只读模式、自定义样式主题和多语言语法高亮等功能；\n- 支持 [ToC（Table of Contents）](https://pandao.github.io/editor.md/examples/toc.html)、[Emoji表情](https://pandao.github.io/editor.md/examples/emoji.html)、[Task lists](https://pandao.github.io/editor.md/examples/task-lists.html)、[@链接](https://pandao.github.io/editor.md/examples/@links.html)等 Markdown 扩展语法；\n- 支持 TeX 科学公式（基于 [KaTeX](https://pandao.github.io/editor.md/examples/katex.html)）、流程图 [Flowchart](https://pandao.github.io/editor.md/examples/flowchart.html) 和 [时序图 Sequence Diagram](https://pandao.github.io/editor.md/examples/sequence-diagram.html);\n- 支持[识别和解析 HTML 标签，并且支持自定义过滤标签及属性解析](https://pandao.github.io/editor.md/examples/html-tags-decode.html)，具有可靠的安全性和几乎无限的扩展性；\n- 支持 AMD / CMD 模块化加载（支持 [Require.js](https://pandao.github.io/editor.md/examples/use-requirejs.html) & [Sea.js](https://pandao.github.io/editor.md/examples/use-seajs.html)），并且支持[自定义扩展插件](https://pandao.github.io/editor.md/examples/define-plugin.html)；\n- 兼容主流的浏览器（IE8+）和 [Zepto.js](https://pandao.github.io/editor.md/examples/use-zepto.html)，且支持 iPad 等平板设备；\n\n#### Download & install\n\nDownload:\n\n[Github download](https://github.com/pandao/editor.md/archive/master.zip)\n\nNPM install :\n\n```bash\nnpm install editor.md\n```\n\nBower install :\n\n```bash\nbower install editor.md\n```\n\n#### Usages\n\n##### Create a Markdown editor\n\n```html\n<link rel=\"stylesheet\" href=\"editor.md/css/editormd.min.css\" />\n<div id=\"editor\">\n    <!-- Tips: Editor.md can auto append a `<textarea>` tag -->\n    <textarea style=\"display:none;\">### Hello Editor.md !</textarea>\n</div>\n<script src=\"jquery.min.js\"></script>\n<script src=\"editor.md/editormd.min.js\"></script>\n<script type=\"text/javascript\">\n    $(function() {\n        var editor = editormd(\"editor\", {\n            // width: \"100%\",\n            // height: \"100%\",\n            // markdown: \"xxxx\",     // dynamic set Markdown text\n            path : \"editor.md/lib/\"  // Autoload modules mode, codemirror, marked... dependents libs path\n        });\n    });\n</script>\n```\n\nIf you using modular script loader:\n\n- [Using Require.js](https://github.com/pandao/editor.md/tree/master/examples/use-requirejs.html)\n- [Using Sea.js](https://github.com/pandao/editor.md/tree/master/examples/use-seajs.html)\n\n##### Markdown to HTML\n\n```html\n<link rel=\"stylesheet\" href=\"editormd/css/editormd.preview.css\" />\n<div id=\"test-markdown-view\">\n    <!-- Server-side output Markdown text -->\n    <textarea style=\"display:none;\">### Hello world!</textarea>             \n</div>\n<script src=\"jquery.min.js\"></script>\n<script src=\"editormd/editormd.js\"></script>\n<script src=\"editormd/lib/marked.min.js\"></script>\n<script src=\"editormd/lib/prettify.min.js\"></script>\n<script type=\"text/javascript\">\n    $(function() {\n\t    var testView = editormd.markdownToHTML(\"test-markdown-view\", {\n            // markdown : \"[TOC]\\n### Hello world!\\n## Heading 2\", // Also, you can dynamic set Markdown text\n            // htmlDecode : true,  // Enable / disable HTML tag encode.\n            // htmlDecode : \"style,script,iframe\",  // Note: If enabled, you should filter some dangerous HTML tags for website security.\n        });\n    });\n</script>    \n```\n\n> See the full example: [http://editor.md.ipandao.com/examples/html-preview-markdown-to-html.html](http://editor.md.ipandao.com/examples/html-preview-markdown-to-html.html)\n\n##### HTML to Markdown?\n\nSorry, Editor.md not support HTML to Markdown parsing, Maybe In the future.\n\n#### Examples\n\n[https://pandao.github.io/editor.md/examples/index.html](https://pandao.github.io/editor.md/examples/index.html)\n\n#### Options\n\nEditor.md options and default values:\n\n```javascript\n{\n    mode                 : \"gfm\",          // gfm or markdown\n    name                 : \"\",             // Form element name for post\n    value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n    theme                : \"\",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty\n    editorTheme          : \"default\",      // Editor area, this is CodeMirror theme at v1.5.0\n    previewTheme         : \"\",             // Preview area theme, default empty\n    markdown             : \"\",             // Markdown source code\n    appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n    width                : \"100%\",\n    height               : \"100%\",\n    path                 : \"./lib/\",       // Dependents module file directory\n    pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n    delay                : 300,            // Delay parse markdown to html, Uint : ms\n    autoLoadModules      : true,           // Automatic load dependent module files\n    watch                : true,\n    placeholder          : \"Enjoy Markdown! coding now...\",\n    gotoLine             : true,           // Enable / disable goto a line\n    codeFold             : false,\n    autoHeight           : false,\n    autoFocus            : true,           // Enable / disable auto focus editor left input area\n    autoCloseTags        : true,\n    searchReplace        : true,           // Enable / disable (CodeMirror) search and replace function\n    syncScrolling        : true,           // options: true | false | \"single\", default true\n    readOnly             : false,          // Enable / disable readonly mode\n    tabSize              : 4,\n    indentUnit           : 4,\n    lineNumbers          : true,           // Display editor line numbers\n    lineWrapping         : true,\n    autoCloseBrackets    : true,\n    showTrailingSpace    : true,\n    matchBrackets        : true,\n    indentWithTabs       : true,\n    styleSelectedText    : true,\n    matchWordHighlight   : true,           // options: true, false, \"onselected\"\n    styleActiveLine      : true,           // Highlight the current line\n    dialogLockScreen     : true,\n    dialogShowMask       : true,\n    dialogDraggable      : true,\n    dialogMaskBgColor    : \"#fff\",\n    dialogMaskOpacity    : 0.1,\n    fontSize             : \"13px\",\n    saveHTMLToTextarea   : false,          // If enable, Editor will create a <textarea name=\"{editor-id}-html-code\"> tag save HTML code for form post to server-side.\n    disabledKeyMaps      : [],\n    \n    onload               : function() {},\n    onresize             : function() {},\n    onchange             : function() {},\n    onwatch              : null,\n    onunwatch            : null,\n    onpreviewing         : function() {},\n    onpreviewed          : function() {},\n    onfullscreen         : function() {},\n    onfullscreenExit     : function() {},\n    onscroll             : function() {},\n    onpreviewscroll      : function() {},\n    \n    imageUpload          : false,          // Enable/disable upload\n    imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n    imageUploadURL       : \"\",             // Upload url\n    crossDomainUpload    : false,          // Enable/disable Cross-domain upload\n    uploadCallbackURL    : \"\",             // Cross-domain upload callback url\n\n    toc                  : true,           // Table of contents\n    tocm                 : false,          // Using [TOCM], auto create ToC dropdown menu\n    tocTitle             : \"\",             // for ToC dropdown menu button\n    tocDropdown          : false,          // Enable/disable Table Of Contents dropdown menu\n    tocContainer         : \"\",             // Custom Table Of Contents Container Selector\n    tocStartLevel        : 1,              // Said from H1 to create ToC\n    htmlDecode           : false,          // Open the HTML tag identification \n    pageBreak            : true,           // Enable parse page break [========]\n    atLink               : true,           // for @link\n    emailLink            : true,           // for email address auto link\n    taskList             : false,          // Enable Github Flavored Markdown task lists\n    emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                           // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                           // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n    tex                  : false,          // TeX(LaTeX), based on KaTeX\n    flowChart            : false,          // flowChart.js only support IE9+\n    sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n    previewCodeHighlight : true,           // Enable / disable code highlight of editor preview area\n\n    toolbar              : true,           // show or hide toolbar\n    toolbarAutoFixed     : true,           // on window scroll auto fixed position\n    toolbarIcons         : \"full\",         // Toolbar icons mode, options: full, simple, mini, See `editormd.toolbarModes` property.\n    toolbarTitles        : {},\n    toolbarHandlers      : {\n        ucwords : function() {\n            return editormd.toolbarHandlers.ucwords;\n        },\n        lowercase : function() {\n            return editormd.toolbarHandlers.lowercase;\n        }\n    },\n    toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default <a> tag.\n        lowercase        : \"<a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a</i></a>\",\n        \"ucwords\"        : \"<a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa</i></a>\"\n    },\n    toolbarIconTexts     : {},\n    \n    lang : {  // Language data, you can custom your language.\n        name        : \"zh-cn\",\n        description : \"开源在线Markdown编辑器<br/>Open source online Markdown editor.\",\n        tocTitle    : \"目录\",\n        toolbar     : {\n            //...\n        },\n        button: {\n            //...\n        },\n        dialog : {\n            //...\n        }\n        //...\n    }\n}\n```\n\n#### Dependents\n\n- [CodeMirror](http://codemirror.net/ \"CodeMirror\")\n- [marked](https://github.com/markedjs/marked \"marked\")\n- [jQuery](http://jquery.com/ \"jQuery\")\n- [FontAwesome](http://fontawesome.io/ \"FontAwesome\")\n- [github-markdown.css](https://github.com/sindresorhus/github-markdown-css \"github-markdown.css\")\n- [KaTeX](http://khan.github.io/KaTeX/ \"KaTeX\")\n- [prettify.js](http://code.google.com/p/google-code-prettify/ \"prettify.js\")\n- [Rephael.js](http://raphaeljs.com/ \"Rephael.js\")\n- [flowchart.js](http://adrai.github.io/flowchart.js/ \"flowchart.js\")\n- [sequence-diagram.js](http://bramp.github.io/js-sequence-diagrams/ \"sequence-diagram.js\")\n- [Prefixes.scss](https://github.com/pandao/prefixes.scss \"Prefixes.scss\")\n\n#### Changes\n\n[Change logs](https://github.com/pandao/editor.md/blob/master/CHANGE.md)\n\n#### License\n\nThe MIT License.\n\nCopyright (c) 2015-2019 Pandao\n"
  },
  {
    "path": "public/static/home/editormd/bower.json",
    "content": "{\n  \"name\": \"editor.md\",\n  \"version\": \"1.5.0\",\n  \"homepage\": \"https://github.com/pandao/editor.md\",\n  \"authors\": [\n    \"Pandao <pandao@vip.qq.com>\"\n  ],\n  \"description\": \"Open source online markdown editor.\",\n  \"keywords\": [\n    \"editor.md\",\n    \"markdown\",\n    \"editor\"\n  ],\n  \"license\": \"MIT\",\n  \"ignore\": [\n    \"**/.*\",\n    \"research\",\n    \"docs\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\"\n  ]\n}\n"
  },
  {
    "path": "public/static/home/editormd/css/editormd.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n@charset \"UTF-8\";\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n.editormd {\n  width: 90%;\n  height: 640px;\n  margin: 0 auto;\n  text-align: left;\n  overflow: hidden;\n  position: relative;\n  margin-bottom: 15px;\n  border: 1px solid #ddd;\n  font-family: \"Meiryo UI\", \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n}\n.editormd *, .editormd *:before, .editormd *:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.editormd a {\n  text-decoration: none;\n}\n.editormd img {\n  border: none;\n  vertical-align: middle;\n}\n.editormd > textarea,\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  width: 0;\n  height: 0;\n  outline: 0;\n  resize: none;\n}\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  display: none;\n}\n.editormd input[type=\"text\"],\n.editormd input[type=\"button\"],\n.editormd input[type=\"submit\"],\n.editormd select, .editormd textarea, .editormd button {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n}\n.editormd ::-webkit-scrollbar {\n  height: 10px;\n  width: 7px;\n  background: rgba(0, 0, 0, 0.1);\n}\n.editormd ::-webkit-scrollbar:hover {\n  background: rgba(0, 0, 0, 0.2);\n}\n.editormd ::-webkit-scrollbar-thumb {\n  background: rgba(0, 0, 0, 0.3);\n  -webkit-border-radius: 6px;\n  -moz-border-radius: 6px;\n  -ms-border-radius: 6px;\n  -o-border-radius: 6px;\n  border-radius: 6px;\n}\n.editormd ::-webkit-scrollbar-thumb:hover {\n  -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Webkit browsers */\n  -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Firefox */\n  -ms-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9 */\n  -o-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Opera(Old) */\n  box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9+, News */\n  background-color: rgba(0, 0, 0, 0.4);\n}\n\n.editormd-user-unselect {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-toolbar {\n  width: 100%;\n  min-height: 37px;\n  background: #fff;\n  display: none;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  border-bottom: 1px solid #ddd;\n}\n\n.editormd-toolbar-container {\n  padding: 0 8px;\n  min-height: 35px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-menu {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.editormd-menu > li {\n  margin: 0;\n  padding: 5px 1px;\n  display: inline-block;\n  position: relative;\n}\n.editormd-menu > li.divider {\n  display: inline-block;\n  text-indent: -9999px;\n  margin: 0 5px;\n  height: 65%;\n  border-right: 1px solid #ddd;\n}\n.editormd-menu > li > a {\n  outline: 0;\n  color: #666;\n  display: inline-block;\n  min-width: 24px;\n  font-size: 16px;\n  text-decoration: none;\n  text-align: center;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 1px solid #fff;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-menu > li > a:hover, .editormd-menu > li > a.active {\n  border: 1px solid #ddd;\n  background: #eee;\n}\n.editormd-menu > li > a > .fa {\n  text-align: center;\n  display: block;\n  padding: 5px;\n}\n.editormd-menu > li > a > .editormd-bold {\n  padding: 5px 2px;\n  display: inline-block;\n  font-weight: bold;\n}\n.editormd-menu > li:hover .editormd-dropdown-menu {\n  display: block;\n}\n.editormd-menu > li + li > a {\n  margin-left: 3px;\n}\n\n.editormd-dropdown-menu {\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  width: 148px;\n  list-style: none;\n  position: absolute;\n  top: 33px;\n  left: 0;\n  z-index: 100;\n  -webkit-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Webkit browsers */\n  -moz-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Firefox */\n  -ms-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9 */\n  -o-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Opera(Old) */\n  box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9+, News */\n}\n.editormd-dropdown-menu:before, .editormd-dropdown-menu:after {\n  width: 0;\n  height: 0;\n  display: block;\n  content: \"\";\n  position: absolute;\n  top: -11px;\n  left: 8px;\n  border: 5px solid transparent;\n}\n.editormd-dropdown-menu:before {\n  border-bottom-color: #ccc;\n}\n.editormd-dropdown-menu:after {\n  border-bottom-color: #ffffff;\n  top: -10px;\n}\n.editormd-dropdown-menu > li > a {\n  color: #666;\n  display: block;\n  text-decoration: none;\n  padding: 8px 10px;\n}\n.editormd-dropdown-menu > li > a:hover {\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dropdown-menu > li + li {\n  border-top: 1px solid #ddd;\n}\n\n.editormd-container {\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  padding: 35px 0 0;\n  position: relative;\n  background: #fff;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.editormd-dialog {\n  color: #666;\n  position: fixed;\n  z-index: 99999;\n  display: none;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Firefox */\n  -ms-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9 */\n  -o-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Opera(Old) */\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9+, News */\n  background: #fff;\n  font-size: 14px;\n}\n\n.editormd-dialog-container {\n  position: relative;\n  padding: 20px;\n  line-height: 1.4;\n}\n.editormd-dialog-container h1 {\n  font-size: 24px;\n  margin-bottom: 10px;\n}\n.editormd-dialog-container h1 .fa {\n  color: #2C7EEA;\n  padding-right: 5px;\n}\n.editormd-dialog-container h1 small {\n  padding-left: 5px;\n  font-weight: normal;\n  font-size: 12px;\n  color: #999;\n}\n.editormd-dialog-container select {\n  color: #999;\n  padding: 3px 8px;\n  border: 1px solid #ddd;\n}\n\n.editormd-dialog-close {\n  position: absolute;\n  top: 12px;\n  right: 15px;\n  font-size: 18px;\n  color: #ccc;\n  -webkit-transition: color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-close:hover {\n  color: #999;\n}\n\n.editormd-dialog-header {\n  padding: 11px 20px;\n  border-bottom: 1px solid #eee;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-header:hover {\n  background: #f6f6f6;\n}\n\n.editormd-dialog-title {\n  font-size: 14px;\n}\n\n.editormd-dialog-footer {\n  padding: 10px 0 0 0;\n  text-align: right;\n}\n\n.editormd-dialog-info {\n  width: 420px;\n}\n.editormd-dialog-info h1 {\n  font-weight: normal;\n}\n.editormd-dialog-info .editormd-dialog-container {\n  padding: 20px 25px 25px;\n}\n.editormd-dialog-info .editormd-dialog-close {\n  top: 10px;\n  right: 10px;\n}\n.editormd-dialog-info p > a, .editormd-dialog-info .hover-link:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info .hover-link {\n  color: #666;\n}\n.editormd-dialog-info a .fa-external-link {\n  display: none;\n}\n.editormd-dialog-info a:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info a:hover .fa-external-link {\n  display: inline-block;\n}\n\n.editormd-mask,\n.editormd-container-mask,\n.editormd-dialog-mask {\n  display: none;\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.editormd-mask,\n.editormd-dialog-mask-bg {\n  background: #fff;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.editormd-mask {\n  position: fixed;\n  background: #000;\n  opacity: 0.2;\n  /* W3C */\n  filter: alpha(opacity=20);\n  /* IE */\n  z-index: 99998;\n}\n\n.editormd-container-mask,\n.editormd-dialog-mask-con {\n  background: url(../images/loading.gif) no-repeat center center;\n  -webkit-background-size: 32px 32px;\n  /* Chrome, iOS, Safari */\n  -moz-background-size: 32px 32px;\n  /* Firefox 3.6~4.0 */\n  -o-background-size: 32px 32px;\n  /* Opera 9.5 */\n  background-size: 32px 32px;\n  /* IE9+, New */\n}\n\n.editormd-container-mask {\n  z-index: 20;\n  display: block;\n  background-color: #fff;\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@2x.gif);\n  }\n}\n@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@3x.gif);\n  }\n}\n.editormd-code-block-dialog textarea,\n.editormd-preformatted-text-dialog textarea {\n  width: 100%;\n  height: 400px;\n  margin-bottom: 6px;\n  overflow: auto;\n  border: 1px solid #eee;\n  background: #fff;\n  padding: 15px;\n  resize: none;\n}\n\n.editormd-code-toolbar {\n  color: #999;\n  font-size: 14px;\n  margin: -5px 0 10px;\n}\n\n.editormd-grid-table {\n  width: 99%;\n  display: table;\n  border: 1px solid #ddd;\n  border-collapse: collapse;\n}\n\n.editormd-grid-table-row {\n  width: 100%;\n  display: table-row;\n}\n.editormd-grid-table-row a {\n  font-size: 1.4em;\n  width: 5%;\n  height: 36px;\n  color: #999;\n  text-align: center;\n  display: table-cell;\n  vertical-align: middle;\n  border: 1px solid #ddd;\n  text-decoration: none;\n  -webkit-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-grid-table-row a.selected {\n  color: #666;\n  background-color: #eee;\n}\n.editormd-grid-table-row a:hover {\n  color: #777;\n  background-color: #f6f6f6;\n}\n\n.editormd-tab-head {\n  list-style: none;\n  border-bottom: 1px solid #ddd;\n}\n.editormd-tab-head li {\n  display: inline-block;\n}\n.editormd-tab-head li a {\n  color: #999;\n  display: block;\n  padding: 6px 12px 5px;\n  text-align: center;\n  text-decoration: none;\n  margin-bottom: -1px;\n  border: 1px solid #ddd;\n  -webkit-border-top-left-radius: 3px;\n  -moz-border-top-left-radius: 3px;\n  -ms-border-top-left-radius: 3px;\n  -o-border-top-left-radius: 3px;\n  border-top-left-radius: 3px;\n  -webkit-border-top-right-radius: 3px;\n  -moz-border-top-right-radius: 3px;\n  -ms-border-top-right-radius: 3px;\n  -o-border-top-right-radius: 3px;\n  border-top-right-radius: 3px;\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-tab-head li a:hover {\n  color: #666;\n  background: #eee;\n}\n.editormd-tab-head li.active a {\n  color: #666;\n  background: #fff;\n  border-bottom-color: #fff;\n}\n.editormd-tab-head li + li {\n  margin-left: 3px;\n}\n\n.editormd-tab-box {\n  padding: 20px 0;\n}\n\n.editormd-form {\n  color: #666;\n}\n.editormd-form label {\n  float: left;\n  display: block;\n  width: 75px;\n  text-align: left;\n  padding: 7px 0 15px 5px;\n  margin: 0 0 2px;\n  font-weight: normal;\n}\n.editormd-form br {\n  clear: both;\n}\n.editormd-form iframe {\n  display: none;\n}\n.editormd-form input:focus {\n  outline: 0;\n}\n.editormd-form input[type=\"text\"], .editormd-form input[type=\"number\"] {\n  color: #999;\n  padding: 8px;\n  border: 1px solid #ddd;\n}\n.editormd-form input[type=\"number\"] {\n  width: 40px;\n  display: inline-block;\n  padding: 6px 8px;\n}\n.editormd-form input[type=\"text\"] {\n  display: inline-block;\n  width: 264px;\n}\n.editormd-form .fa-btns {\n  display: inline-block;\n}\n.editormd-form .fa-btns a {\n  color: #999;\n  padding: 7px 10px 0 0;\n  display: inline-block;\n  text-decoration: none;\n  text-align: center;\n}\n.editormd-form .fa-btns .fa {\n  font-size: 1.3em;\n}\n.editormd-form .fa-btns label {\n  float: none;\n  display: inline-block;\n  width: auto;\n  text-align: left;\n  padding: 0 0 0 5px;\n  cursor: pointer;\n}\n\n.editormd-form input[type=\"submit\"], .editormd-form .editormd-btn, .editormd-form button,\n.editormd-dialog-container input[type=\"submit\"],\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-container button,\n.editormd-dialog-footer input[type=\"submit\"],\n.editormd-dialog-footer .editormd-btn,\n.editormd-dialog-footer button {\n  color: #666;\n  min-width: 75px;\n  cursor: pointer;\n  background: #fff;\n  padding: 7px 10px;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-form input[type=\"submit\"]:hover, .editormd-form .editormd-btn:hover, .editormd-form button:hover,\n.editormd-dialog-container input[type=\"submit\"]:hover,\n.editormd-dialog-container .editormd-btn:hover,\n.editormd-dialog-container button:hover,\n.editormd-dialog-footer input[type=\"submit\"]:hover,\n.editormd-dialog-footer .editormd-btn:hover,\n.editormd-dialog-footer button:hover {\n  background: #eee;\n}\n.editormd-form .editormd-btn,\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-footer .editormd-btn {\n  padding: 5px 8px 4px\\0;\n}\n.editormd-form .editormd-btn + .editormd-btn,\n.editormd-dialog-container .editormd-btn + .editormd-btn,\n.editormd-dialog-footer .editormd-btn + .editormd-btn {\n  margin-left: 8px;\n}\n\n.editormd-file-input {\n  width: 75px;\n  height: 32px;\n  margin-left: 8px;\n  position: relative;\n  display: inline-block;\n}\n.editormd-file-input input[type=\"file\"] {\n  width: 75px;\n  height: 32px;\n  opacity: 0;\n  cursor: pointer;\n  background: #000;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  right: 0;\n}\n.editormd-file-input input[type=\"file\"]::-webkit-file-upload-button {\n  visibility: hidden;\n}\n.editormd-file-input:hover input[type=\"submit\"] {\n  background: #eee;\n}\n\n.editormd .CodeMirror, .editormd-preview {\n  display: inline-block;\n  width: 50%;\n  height: 100%;\n  vertical-align: top;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  margin: 0;\n}\n\n.editormd-preview {\n  position: absolute;\n  top: 35px;\n  right: 0;\n  right: -1px\\0;\n  overflow: auto;\n  line-height: 1.6;\n  display: none;\n  background: #fff;\n}\n\n.editormd .CodeMirror {\n  z-index: 10;\n  float: left;\n  border-right: 1px solid #ddd;\n  font-size: 14px;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"微软雅黑\", \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", courier, monospace;\n  line-height: 1.6;\n  margin-top: 35px;\n}\n.editormd .CodeMirror pre {\n  font-size: 14px;\n  padding: 0 12px;\n}\n.editormd .CodeMirror-linenumbers {\n  padding: 0 5px;\n}\n.editormd .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror-focused .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror, .editormd .CodeMirror-scroll, .editormd .editormd-preview {\n  -webkit-overflow-scrolling: touch;\n}\n.editormd .styled-background {\n  background-color: #ff7;\n}\n.editormd .CodeMirror-focused .cm-matchhighlight {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);\n  background-position: bottom;\n  background-repeat: repeat-x;\n}\n.editormd .CodeMirror-empty.CodeMirror-focused {\n  outline: none;\n}\n.editormd .CodeMirror pre.CodeMirror-placeholder {\n  color: #999;\n}\n.editormd .cm-trailingspace {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n.editormd .cm-tab {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n  background-position: right;\n  background-repeat: no-repeat;\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url(\"../fonts/fontawesome-webfont.eot?v=4.3.0\");\n  src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.3.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.3.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.3.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.fa.pull-left {\n  margin-right: .3em;\n}\n\n.fa.pull-right {\n  margin-left: .3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.fa-stack-1x {\n  line-height: inherit;\n}\n\n.fa-stack-2x {\n  font-size: 2em;\n}\n\n.fa-inverse {\n  color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n\n.fa-music:before {\n  content: \"\\f001\";\n}\n\n.fa-search:before {\n  content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n\n.fa-heart:before {\n  content: \"\\f004\";\n}\n\n.fa-star:before {\n  content: \"\\f005\";\n}\n\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n\n.fa-user:before {\n  content: \"\\f007\";\n}\n\n.fa-film:before {\n  content: \"\\f008\";\n}\n\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n\n.fa-th:before {\n  content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n\n.fa-check:before {\n  content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n\n.fa-signal:before {\n  content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n\n.fa-home:before {\n  content: \"\\f015\";\n}\n\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n\n.fa-road:before {\n  content: \"\\f018\";\n}\n\n.fa-download:before {\n  content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n\n.fa-lock:before {\n  content: \"\\f023\";\n}\n\n.fa-flag:before {\n  content: \"\\f024\";\n}\n\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n\n.fa-book:before {\n  content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n\n.fa-print:before {\n  content: \"\\f02f\";\n}\n\n.fa-camera:before {\n  content: \"\\f030\";\n}\n\n.fa-font:before {\n  content: \"\\f031\";\n}\n\n.fa-bold:before {\n  content: \"\\f032\";\n}\n\n.fa-italic:before {\n  content: \"\\f033\";\n}\n\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n\n.fa-list:before {\n  content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n\n.fa-tint:before {\n  content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n\n.fa-play:before {\n  content: \"\\f04b\";\n}\n\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n\n.fa-eject:before {\n  content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n\n.fa-expand:before {\n  content: \"\\f065\";\n}\n\n.fa-compress:before {\n  content: \"\\f066\";\n}\n\n.fa-plus:before {\n  content: \"\\f067\";\n}\n\n.fa-minus:before {\n  content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n\n.fa-plane:before {\n  content: \"\\f072\";\n}\n\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n\n.fa-random:before {\n  content: \"\\f074\";\n}\n\n.fa-comment:before {\n  content: \"\\f075\";\n}\n\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n\n.fa-key:before {\n  content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n\n.fa-comments:before {\n  content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n\n.fa-upload:before {\n  content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n\n.fa-phone:before {\n  content: \"\\f095\";\n}\n\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n\n.fa-github:before {\n  content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n\n.fa-circle:before {\n  content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n\n.fa-code:before {\n  content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n\n.fa-crop:before {\n  content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n\n.fa-question:before {\n  content: \"\\f128\";\n}\n\n.fa-info:before {\n  content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n\n.fa-shield:before {\n  content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n\n.fa-file:before {\n  content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n\n.fa-xing:before {\n  content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n\n.fa-adn:before {\n  content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n\n.fa-apple:before {\n  content: \"\\f179\";\n}\n\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n\n.fa-android:before {\n  content: \"\\f17b\";\n}\n\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n\n.fa-trello:before {\n  content: \"\\f181\";\n}\n\n.fa-female:before {\n  content: \"\\f182\";\n}\n\n.fa-male:before {\n  content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n\n.fa-archive:before {\n  content: \"\\f187\";\n}\n\n.fa-bug:before {\n  content: \"\\f188\";\n}\n\n.fa-vk:before {\n  content: \"\\f189\";\n}\n\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n\n.fa-slack:before {\n  content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n\n.fa-history:before {\n  content: \"\\f1da\";\n}\n\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n\n.fa-bus:before {\n  content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n\n.fa-venus:before {\n  content: \"\\f221\";\n}\n\n.fa-mars:before {\n  content: \"\\f222\";\n}\n\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n\n.fa-server:before {\n  content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n\n.fa-train:before {\n  content: \"\\f238\";\n}\n\n.fa-subway:before {\n  content: \"\\f239\";\n}\n\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\"../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\"woff\");\n}\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body > *:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body > *:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li > p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote > :first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote > :last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0, 0, 0, 0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre > code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item + .task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked + .radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n\n.editormd-preview-container, .editormd-html-preview {\n  text-align: left;\n  font-size: 14px;\n  line-height: 1.6;\n  padding: 20px;\n  overflow: auto;\n  width: 100%;\n  background-color: #fff;\n}\n.editormd-preview-container blockquote, .editormd-html-preview blockquote {\n  color: #666;\n  border-left: 4px solid #ddd;\n  padding-left: 20px;\n  margin-left: 0;\n  font-size: 14px;\n  font-style: italic;\n}\n.editormd-preview-container p code, .editormd-html-preview p code {\n  margin-left: 5px;\n  margin-right: 4px;\n}\n.editormd-preview-container abbr, .editormd-html-preview abbr {\n  background: #ffffdd;\n}\n.editormd-preview-container hr, .editormd-html-preview hr {\n  height: 1px;\n  border: none;\n  border-top: 1px solid #ddd;\n  background: none;\n}\n.editormd-preview-container code, .editormd-html-preview code {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 3px;\n  border-radius: 3px;\n  font-size: 14px;\n}\n.editormd-preview-container pre, .editormd-html-preview pre {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 10px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n}\n.editormd-preview-container pre code, .editormd-html-preview pre code {\n  padding: 0;\n}\n.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n}\n.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {\n  background-color: #F8F8F8;\n}\n.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {\n  text-align: center;\n}\n.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {\n  margin: 0 5px;\n}\n.editormd-preview-container .emoji, .editormd-html-preview .emoji {\n  width: 24px;\n  height: 24px;\n}\n.editormd-preview-container .katex, .editormd-html-preview .katex {\n  font-size: 1.4em;\n}\n.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {\n  margin: 0 auto;\n  text-align: center;\n}\n.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {\n  margin: 0 auto;\n}\n.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {\n  font-size: 15px !important;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n}\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n  color: #000;\n}\n\n/* plain text */\n@media screen {\n  .str {\n    color: #080;\n  }\n\n  /* string content */\n  .kwd {\n    color: #008;\n  }\n\n  /* a keyword */\n  .com {\n    color: #800;\n  }\n\n  /* a comment */\n  .typ {\n    color: #606;\n  }\n\n  /* a type name */\n  .lit {\n    color: #066;\n  }\n\n  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo {\n    color: #660;\n  }\n\n  .tag {\n    color: #008;\n  }\n\n  /* a markup tag name */\n  .atn {\n    color: #606;\n  }\n\n  /* a markup attribute name */\n  .atv {\n    color: #080;\n  }\n\n  /* a markup attribute value */\n  .dec, .var {\n    color: #606;\n  }\n\n  /* a declaration; a variable name */\n  .fun {\n    color: red;\n  }\n\n  /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060;\n  }\n\n  .kwd {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .com {\n    color: #600;\n    font-style: italic;\n  }\n\n  .typ {\n    color: #404;\n    font-weight: bold;\n  }\n\n  .lit {\n    color: #044;\n  }\n\n  .pun, .opn, .clo {\n    color: #440;\n  }\n\n  .tag {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .atn {\n    color: #404;\n  }\n\n  .atv {\n    color: #060;\n  }\n}\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint {\n  padding: 2px;\n  border: 1px solid #888;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n  list-style-type: none;\n}\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  background: #eee;\n}\n\n.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {\n  padding: 10px;\n  border: 1px solid #ddd;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {\n  color: #999;\n  padding-left: 2.5em;\n}\n.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {\n  list-style-type: decimal;\n}\n.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {\n  border: none;\n  background: none;\n  padding: 0;\n}\n\n.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {\n  margin: 8px 0 12px 0;\n  display: inline-block;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {\n  position: relative;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  display: inline-block;\n  font-size: 1em;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {\n  width: 160%;\n  min-width: 180px;\n  position: absolute;\n  left: -1px;\n  top: -2px;\n  z-index: 100;\n  padding: 0 10px 10px;\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {\n  width: 100%;\n  min-width: 180px;\n  border: 1px solid #ddd;\n  display: none;\n  background: #fff;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {\n  color: #666;\n  padding: 6px 10px;\n  display: block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {\n  position: relative;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {\n  position: absolute;\n  top: 32px;\n  left: 10%;\n  display: none;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  pointer-events: pointer-events;\n  position: absolute;\n  left: 15px;\n  top: -6px;\n  display: block;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border: 6px solid transparent;\n  border-width: 0 6px 6px;\n  z-index: 10;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {\n  border-bottom-color: #ccc;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  border-bottom-color: #ffffff;\n  top: -5px;\n}\n.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {\n  list-style: none;\n}\n.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {\n  text-decoration: none;\n}\n.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {\n  font-size: 16px;\n  padding: 5px 0 10px 10px;\n  line-height: 1;\n  border-bottom: 1px solid #eee;\n}\n.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {\n  padding-left: 10px;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {\n  color: #666;\n  min-width: 180px;\n  padding: 5px 10px;\n  border-radius: 4px;\n  display: inline-block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {\n  float: right;\n  padding: 3px 0 0 10px;\n  font-size: 1.3em;\n}\n\n.markdown-body .editormd-toc-menu ul {\n  padding-left: 0;\n}\n.markdown-body .highlight pre, .markdown-body pre {\n  line-height: 1.6;\n}\n\nhr.editormd-page-break {\n  border: 1px dotted #ccc;\n  font-size: 0;\n  height: 2px;\n}\n\n@media only print {\n  hr.editormd-page-break {\n    background: none;\n    border: none;\n    height: 0;\n  }\n}\n.editormd-html-preview textarea {\n  display: none;\n}\n.editormd-html-preview hr.editormd-page-break {\n  background: none;\n  border: none;\n  height: 0;\n}\n\n.editormd-preview-close-btn {\n  color: #fff;\n  padding: 4px 6px;\n  font-size: 18px;\n  -webkit-border-radius: 500px;\n  -moz-border-radius: 500px;\n  -ms-border-radius: 500px;\n  -o-border-radius: 500px;\n  border-radius: 500px;\n  display: none;\n  background-color: #ccc;\n  position: absolute;\n  top: 25px;\n  right: 35px;\n  z-index: 19;\n  -webkit-transition: background-color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-close-btn:hover {\n  background-color: #999;\n}\n\n.editormd-preview-active {\n  width: 100%;\n  padding: 40px;\n}\n\n/* Preview dark theme */\n.editormd-preview-theme-dark {\n  color: #777;\n  background: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container {\n  color: #888;\n  background-color: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container blockquote {\n  color: #555;\n  padding: 0.5em;\n  background: #222;\n  border-color: #333;\n}\n.editormd-preview-theme-dark .editormd-preview-container abbr {\n  color: #fff;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #ff9900;\n}\n.editormd-preview-theme-dark .editormd-preview-container code {\n  color: #fff;\n  border: none;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #5A9600;\n}\n.editormd-preview-theme-dark .editormd-preview-container table {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container .fa-emoji {\n  color: #B4BF42;\n}\n.editormd-preview-theme-dark .editormd-preview-container .katex {\n  color: #FEC93F;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc {\n  background: #fff;\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc h1 {\n  border-color: #ddd;\n}\n.editormd-preview-theme-dark .markdown-body h1, .editormd-preview-theme-dark .markdown-body h2, .editormd-preview-theme-dark .markdown-body hr {\n  border-color: #222;\n}\n.editormd-preview-theme-dark pre {\n  color: #999;\n  background-color: #111;\n  background-color: rgba(0, 0, 0, 0.4);\n  /* plain text */\n}\n.editormd-preview-theme-dark pre .pln {\n  color: #999;\n}\n.editormd-preview-theme-dark li.L1, .editormd-preview-theme-dark li.L3, .editormd-preview-theme-dark li.L5, .editormd-preview-theme-dark li.L7, .editormd-preview-theme-dark li.L9 {\n  background: none;\n}\n.editormd-preview-theme-dark [class*=editormd-logo] {\n  color: #2196F3;\n}\n.editormd-preview-theme-dark .sequence-diagram text {\n  fill: #fff;\n}\n.editormd-preview-theme-dark .sequence-diagram rect, .editormd-preview-theme-dark .sequence-diagram path {\n  color: #fff;\n  fill: #64D1CB;\n  stroke: #64D1CB;\n}\n.editormd-preview-theme-dark .flowchart rect, .editormd-preview-theme-dark .flowchart path {\n  stroke: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart rect {\n  fill: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart text {\n  fill: #5879B4;\n}\n\n@media screen {\n  .editormd-preview-theme-dark {\n    /* string content */\n    /* a keyword */\n    /* a comment */\n    /* a type name */\n    /* a literal value */\n    /* punctuation, lisp open bracket, lisp close bracket */\n    /* a markup tag name */\n    /* a markup attribute name */\n    /* a markup attribute value */\n    /* a declaration; a variable name */\n    /* a function name */\n  }\n  .editormd-preview-theme-dark .str {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .kwd {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .com {\n    color: #444444;\n  }\n  .editormd-preview-theme-dark .typ {\n    color: #606;\n  }\n  .editormd-preview-theme-dark .lit {\n    color: #066;\n  }\n  .editormd-preview-theme-dark .pun, .editormd-preview-theme-dark .opn, .editormd-preview-theme-dark .clo {\n    color: #660;\n  }\n  .editormd-preview-theme-dark .tag {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .atn {\n    color: #6C95F5;\n  }\n  .editormd-preview-theme-dark .atv {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .dec, .editormd-preview-theme-dark .var {\n    color: #008BA7;\n  }\n  .editormd-preview-theme-dark .fun {\n    color: red;\n  }\n}\n.editormd-onlyread .editormd-toolbar {\n  display: none;\n}\n.editormd-onlyread .CodeMirror {\n  margin-top: 0;\n}\n.editormd-onlyread .editormd-preview {\n  top: 0;\n}\n\n.editormd-fullscreen {\n  position: fixed;\n  top: 0;\n  left: 0;\n  border: none;\n  margin: 0 auto;\n}\n\n/* Editor.md Dark theme */\n.editormd-theme-dark {\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-toolbar {\n  background: #1A1A17;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a {\n  color: #777;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a:hover, .editormd-theme-dark .editormd-menu > li > a.active {\n  border-color: #333;\n  background: #333;\n}\n.editormd-theme-dark .editormd-menu > li.divider {\n  border-right: 1px solid #111;\n}\n.editormd-theme-dark .CodeMirror {\n  border-right: 1px solid rgba(0, 0, 0, 0.1);\n}\n"
  },
  {
    "path": "public/static/home/editormd/css/editormd.logo.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.logo.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\".../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n"
  },
  {
    "path": "public/static/home/editormd/css/editormd.preview.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.preview.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n@charset \"UTF-8\";\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url(\"../fonts/fontawesome-webfont.eot?v=4.3.0\");\n  src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.3.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.3.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.3.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.fa.pull-left {\n  margin-right: .3em;\n}\n\n.fa.pull-right {\n  margin-left: .3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.fa-stack-1x {\n  line-height: inherit;\n}\n\n.fa-stack-2x {\n  font-size: 2em;\n}\n\n.fa-inverse {\n  color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n\n.fa-music:before {\n  content: \"\\f001\";\n}\n\n.fa-search:before {\n  content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n\n.fa-heart:before {\n  content: \"\\f004\";\n}\n\n.fa-star:before {\n  content: \"\\f005\";\n}\n\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n\n.fa-user:before {\n  content: \"\\f007\";\n}\n\n.fa-film:before {\n  content: \"\\f008\";\n}\n\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n\n.fa-th:before {\n  content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n\n.fa-check:before {\n  content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n\n.fa-signal:before {\n  content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n\n.fa-home:before {\n  content: \"\\f015\";\n}\n\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n\n.fa-road:before {\n  content: \"\\f018\";\n}\n\n.fa-download:before {\n  content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n\n.fa-lock:before {\n  content: \"\\f023\";\n}\n\n.fa-flag:before {\n  content: \"\\f024\";\n}\n\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n\n.fa-book:before {\n  content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n\n.fa-print:before {\n  content: \"\\f02f\";\n}\n\n.fa-camera:before {\n  content: \"\\f030\";\n}\n\n.fa-font:before {\n  content: \"\\f031\";\n}\n\n.fa-bold:before {\n  content: \"\\f032\";\n}\n\n.fa-italic:before {\n  content: \"\\f033\";\n}\n\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n\n.fa-list:before {\n  content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n\n.fa-tint:before {\n  content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n\n.fa-play:before {\n  content: \"\\f04b\";\n}\n\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n\n.fa-eject:before {\n  content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n\n.fa-expand:before {\n  content: \"\\f065\";\n}\n\n.fa-compress:before {\n  content: \"\\f066\";\n}\n\n.fa-plus:before {\n  content: \"\\f067\";\n}\n\n.fa-minus:before {\n  content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n\n.fa-plane:before {\n  content: \"\\f072\";\n}\n\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n\n.fa-random:before {\n  content: \"\\f074\";\n}\n\n.fa-comment:before {\n  content: \"\\f075\";\n}\n\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n\n.fa-key:before {\n  content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n\n.fa-comments:before {\n  content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n\n.fa-upload:before {\n  content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n\n.fa-phone:before {\n  content: \"\\f095\";\n}\n\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n\n.fa-github:before {\n  content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n\n.fa-circle:before {\n  content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n\n.fa-code:before {\n  content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n\n.fa-crop:before {\n  content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n\n.fa-question:before {\n  content: \"\\f128\";\n}\n\n.fa-info:before {\n  content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n\n.fa-shield:before {\n  content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n\n.fa-file:before {\n  content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n\n.fa-xing:before {\n  content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n\n.fa-adn:before {\n  content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n\n.fa-apple:before {\n  content: \"\\f179\";\n}\n\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n\n.fa-android:before {\n  content: \"\\f17b\";\n}\n\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n\n.fa-trello:before {\n  content: \"\\f181\";\n}\n\n.fa-female:before {\n  content: \"\\f182\";\n}\n\n.fa-male:before {\n  content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n\n.fa-archive:before {\n  content: \"\\f187\";\n}\n\n.fa-bug:before {\n  content: \"\\f188\";\n}\n\n.fa-vk:before {\n  content: \"\\f189\";\n}\n\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n\n.fa-slack:before {\n  content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n\n.fa-history:before {\n  content: \"\\f1da\";\n}\n\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n\n.fa-bus:before {\n  content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n\n.fa-venus:before {\n  content: \"\\f221\";\n}\n\n.fa-mars:before {\n  content: \"\\f222\";\n}\n\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n\n.fa-server:before {\n  content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n\n.fa-train:before {\n  content: \"\\f238\";\n}\n\n.fa-subway:before {\n  content: \"\\f239\";\n}\n\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\".../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\"woff\");\n}\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body > *:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body > *:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li > p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote > :first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote > :last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0, 0, 0, 0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre > code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item + .task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked + .radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n\n.editormd-preview-container, .editormd-html-preview {\n  text-align: left;\n  font-size: 14px;\n  line-height: 1.6;\n  padding: 20px;\n  overflow: auto;\n  width: 100%;\n  background-color: #fff;\n}\n.editormd-preview-container blockquote, .editormd-html-preview blockquote {\n  color: #666;\n  border-left: 4px solid #ddd;\n  padding-left: 20px;\n  margin-left: 0;\n  font-size: 14px;\n  font-style: italic;\n}\n.editormd-preview-container p code, .editormd-html-preview p code {\n  margin-left: 5px;\n  margin-right: 4px;\n}\n.editormd-preview-container abbr, .editormd-html-preview abbr {\n  background: #ffffdd;\n}\n.editormd-preview-container hr, .editormd-html-preview hr {\n  height: 1px;\n  border: none;\n  border-top: 1px solid #ddd;\n  background: none;\n}\n.editormd-preview-container code, .editormd-html-preview code {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 3px;\n  border-radius: 3px;\n  font-size: 14px;\n}\n.editormd-preview-container pre, .editormd-html-preview pre {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 10px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n}\n.editormd-preview-container pre code, .editormd-html-preview pre code {\n  padding: 0;\n}\n.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n}\n.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {\n  background-color: #F8F8F8;\n}\n.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {\n  text-align: center;\n}\n.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {\n  margin: 0 5px;\n}\n.editormd-preview-container .emoji, .editormd-html-preview .emoji {\n  width: 24px;\n  height: 24px;\n}\n.editormd-preview-container .katex, .editormd-html-preview .katex {\n  font-size: 1.4em;\n}\n.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {\n  margin: 0 auto;\n  text-align: center;\n}\n.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {\n  margin: 0 auto;\n}\n.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {\n  font-size: 15px !important;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n}\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n  color: #000;\n}\n\n/* plain text */\n@media screen {\n  .str {\n    color: #080;\n  }\n\n  /* string content */\n  .kwd {\n    color: #008;\n  }\n\n  /* a keyword */\n  .com {\n    color: #800;\n  }\n\n  /* a comment */\n  .typ {\n    color: #606;\n  }\n\n  /* a type name */\n  .lit {\n    color: #066;\n  }\n\n  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo {\n    color: #660;\n  }\n\n  .tag {\n    color: #008;\n  }\n\n  /* a markup tag name */\n  .atn {\n    color: #606;\n  }\n\n  /* a markup attribute name */\n  .atv {\n    color: #080;\n  }\n\n  /* a markup attribute value */\n  .dec, .var {\n    color: #606;\n  }\n\n  /* a declaration; a variable name */\n  .fun {\n    color: red;\n  }\n\n  /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060;\n  }\n\n  .kwd {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .com {\n    color: #600;\n    font-style: italic;\n  }\n\n  .typ {\n    color: #404;\n    font-weight: bold;\n  }\n\n  .lit {\n    color: #044;\n  }\n\n  .pun, .opn, .clo {\n    color: #440;\n  }\n\n  .tag {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .atn {\n    color: #404;\n  }\n\n  .atv {\n    color: #060;\n  }\n}\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint {\n  padding: 2px;\n  border: 1px solid #888;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n  list-style-type: none;\n}\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  background: #eee;\n}\n\n.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {\n  padding: 10px;\n  border: 1px solid #ddd;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {\n  color: #999;\n  padding-left: 2.5em;\n}\n.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {\n  list-style-type: decimal;\n}\n.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {\n  border: none;\n  background: none;\n  padding: 0;\n}\n\n.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {\n  margin: 8px 0 12px 0;\n  display: inline-block;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {\n  position: relative;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  display: inline-block;\n  font-size: 1em;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {\n  width: 160%;\n  min-width: 180px;\n  position: absolute;\n  left: -1px;\n  top: -2px;\n  z-index: 100;\n  padding: 0 10px 10px;\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {\n  width: 100%;\n  min-width: 180px;\n  border: 1px solid #ddd;\n  display: none;\n  background: #fff;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {\n  color: #666;\n  padding: 6px 10px;\n  display: block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {\n  position: relative;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {\n  position: absolute;\n  top: 32px;\n  left: 10%;\n  display: none;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  pointer-events: pointer-events;\n  position: absolute;\n  left: 15px;\n  top: -6px;\n  display: block;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border: 6px solid transparent;\n  border-width: 0 6px 6px;\n  z-index: 10;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {\n  border-bottom-color: #ccc;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  border-bottom-color: #ffffff;\n  top: -5px;\n}\n.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {\n  list-style: none;\n}\n.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {\n  text-decoration: none;\n}\n.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {\n  font-size: 16px;\n  padding: 5px 0 10px 10px;\n  line-height: 1;\n  border-bottom: 1px solid #eee;\n}\n.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {\n  padding-left: 10px;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {\n  color: #666;\n  min-width: 180px;\n  padding: 5px 10px;\n  border-radius: 4px;\n  display: inline-block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {\n  float: right;\n  padding: 3px 0 0 10px;\n  font-size: 1.3em;\n}\n\n.markdown-body .editormd-toc-menu ul {\n  padding-left: 0;\n}\n.markdown-body .highlight pre, .markdown-body pre {\n  line-height: 1.6;\n}\n\nhr.editormd-page-break {\n  border: 1px dotted #ccc;\n  font-size: 0;\n  height: 2px;\n}\n\n@media only print {\n  hr.editormd-page-break {\n    background: none;\n    border: none;\n    height: 0;\n  }\n}\n.editormd-html-preview textarea {\n  display: none;\n}\n.editormd-html-preview hr.editormd-page-break {\n  background: none;\n  border: none;\n  height: 0;\n}\n\n.editormd-preview-close-btn {\n  color: #fff;\n  padding: 4px 6px;\n  font-size: 18px;\n  -webkit-border-radius: 500px;\n  -moz-border-radius: 500px;\n  -ms-border-radius: 500px;\n  -o-border-radius: 500px;\n  border-radius: 500px;\n  display: none;\n  background-color: #ccc;\n  position: absolute;\n  top: 25px;\n  right: 35px;\n  z-index: 19;\n  -webkit-transition: background-color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-close-btn:hover {\n  background-color: #999;\n}\n\n.editormd-preview-active {\n  width: 100%;\n  padding: 40px;\n}\n"
  },
  {
    "path": "public/static/home/editormd/docs/editormd.js.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <title>JSDoc: Source: editormd.js</title>\n\n    <script src=\"scripts/prettify/prettify.js\"> </script>\n    <script src=\"scripts/prettify/lang-css.js\"> </script>\n    <!--[if lt IE 9]>\n      <script src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"styles/prettify-tomorrow.css\">\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"styles/jsdoc-default.css\">\n</head>\n\n<body>\n\n<div id=\"main\">\n\n    <h1 class=\"page-title\">Source: editormd.js</h1>\n\n    \n\n\n\n    \n    <section>\n        <article>\n            <pre class=\"prettyprint source linenums\"><code>/*\n * Editor.md\n *\n * @file        editormd.js \n * @version     v1.4.5 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-02\n */\n\n;(function(factory) {\n    \"use strict\";\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" &amp;&amp; typeof exports === \"object\" &amp;&amp; typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n\t{\n        if (define.amd) // for Require.js\n        {\n            /* Require.js define replace */\n        } \n        else \n        {\n\t\t    define([\"jquery\"], factory);  // for Sea.js\n        }\n\t} \n\telse\n\t{ \n        window.editormd = factory();\n\t}\n    \n}(function() {    \n\n    /* Require.js assignment replace */\n    \n    \"use strict\";\n    \n    var $ = (typeof (jQuery) !== \"undefined\") ? jQuery : Zepto;\n\n\tif (typeof ($) === \"undefined\") {\n\t\treturn ;\n\t}\n    \n    /**\n     * editormd\n     * \n     * @param   {String} id           编辑器的ID\n     * @param   {Object} options      配置选项 Key/Value\n     * @returns {Object} editormd     返回editormd对象\n     */\n    \n    var editormd         = function (id, options) {\n        return new editormd.fn.init(id, options);\n    };\n    \n    editormd.title        = editormd.$name = \"Editor.md\";\n    editormd.version      = \"1.4.5\";\n    editormd.homePage     = \"https://pandao.github.io/editor.md/\";\n    editormd.classPrefix  = \"editormd-\";\n    \n    editormd.toolbarModes = {\n        full : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"ucwords\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"link\", \"reference-link\", \"image\", \"code\", \"preformatted-text\", \"code-block\", \"table\", \"datetime\", \"emoji\", \"html-entities\", \"pagebreak\", \"|\",\n            \"goto-line\", \"watch\", \"preview\", \"fullscreen\", \"clear\", \"search\", \"|\",\n            \"help\", \"info\"\n        ],\n        simple : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"watch\", \"preview\", \"fullscreen\", \"|\",\n            \"help\", \"info\"\n        ],\n        mini : [\n            \"undo\", \"redo\", \"|\",\n            \"watch\", \"preview\", \"|\",\n            \"help\", \"info\"\n        ]\n    };\n    \n    editormd.defaults     = {\n        mode                 : \"gfm\",          //gfm or markdown\n        theme                : \"default\",\n        name                 : \"\",\n        value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n        markdown             : \"\",\n        appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n        width                : \"100%\",\n        height               : \"100%\",\n        path                 : \"./lib/\",       // Dependents module file directory\n        pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n        delay                : 300,            // Delay parse markdown to html, Uint : ms\n        autoLoadModules      : true,           // Automatic load dependent module files\n        watch                : true,\n        placeholder          : \"Enjoy Markdown! coding now...\",\n        gotoLine             : true,\n        codeFold             : false,\n        autoHeight           : false,\n\t\tautoFocus            : true,\n        autoCloseTags        : true,\n        searchReplace        : true,\n        syncScrolling        : true,\n        readOnly             : false,\n        tabSize              : 4,\n\t\tindentUnit           : 4,\n        lineNumbers          : true,\n\t\tlineWrapping         : true,\n\t\tautoCloseBrackets    : true,\n\t\tshowTrailingSpace    : true,\n\t\tmatchBrackets        : true,\n\t\tindentWithTabs       : true,\n\t\tstyleSelectedText    : true,\n        matchWordHighlight   : true,           // options: true, false, \"onselected\"\n        styleActiveLine      : true,           // Highlight the current line\n        dialogLockScreen     : true,\n        dialogShowMask       : true,\n        dialogDraggable      : true,\n        dialogMaskBgColor    : \"#fff\",\n        dialogMaskOpacity    : 0.1,\n        fontSize             : \"13px\",\n        saveHTMLToTextarea   : false,\n        disabledKeyMaps      : [],\n        \n        onload               : function() {},\n        onresize             : function() {},\n        onchange             : function() {},\n        onwatch              : null,\n        onunwatch            : null,\n        onpreviewing         : function() {},\n        onpreviewed          : function() {},\n        onfullscreen         : function() {},\n        onfullscreenExit     : function() {},\n        onscroll             : function() {},\n        onpreviewscroll      : function() {},\n        \n        imageUpload          : false,\n        imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n        imageUploadURL       : \"\",\n        crossDomainUpload    : false,\n        uploadCallbackURL    : \"\",\n        \n        toc                  : true,           // Table of contents\n        tocm                 : false,           // Using [TOCM], auto create ToC dropdown menu\n        tocTitle             : \"\",             // for ToC dropdown menu btn\n        tocDropdown          : false,\n        tocContainer         : \"\",\n        tocStartLevel        : 1,              // Said from H1 to create ToC\n        htmlDecode           : false,          // Open the HTML tag identification \n        pageBreak            : true,           // Enable parse page break [========]\n        atLink               : true,           // for @link\n        emailLink            : true,           // for email address auto link\n        taskList             : false,          // Enable Github Flavored Markdown task lists\n        emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                               // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                               // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n        tex                  : false,          // TeX(LaTeX), based on KaTeX\n        flowChart            : false,          // flowChart.js only support IE9+\n        sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        previewCodeHighlight : true,\n                \n        toolbar              : true,           // show/hide toolbar\n        toolbarAutoFixed     : true,           // on window scroll auto fixed position\n        toolbarIcons         : \"full\",\n        toolbarTitles        : {},\n        toolbarHandlers      : {\n            ucwords : function() {\n                return editormd.toolbarHandlers.ucwords;\n            },\n            lowercase : function() {\n                return editormd.toolbarHandlers.lowercase;\n            }\n        },\n        toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default &lt;a> tag.\n            lowercase        : \"&lt;a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\">&lt;i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a&lt;/i>&lt;/a>\",\n            \"ucwords\"        : \"&lt;a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\">&lt;i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa&lt;/i>&lt;/a>\"\n        }, \n        toolbarIconsClass    : {\n            undo             : \"fa-undo\",\n            redo             : \"fa-repeat\",\n            bold             : \"fa-bold\",\n            del              : \"fa-strikethrough\",\n            italic           : \"fa-italic\",\n            quote            : \"fa-quote-left\",\n            uppercase        : \"fa-font\",\n            h1               : editormd.classPrefix + \"bold\",\n            h2               : editormd.classPrefix + \"bold\",\n            h3               : editormd.classPrefix + \"bold\",\n            h4               : editormd.classPrefix + \"bold\",\n            h5               : editormd.classPrefix + \"bold\",\n            h6               : editormd.classPrefix + \"bold\",\n            \"list-ul\"        : \"fa-list-ul\",\n            \"list-ol\"        : \"fa-list-ol\",\n            hr               : \"fa-minus\",\n            link             : \"fa-link\",\n            \"reference-link\" : \"fa-anchor\",\n            image            : \"fa-picture-o\",\n            code             : \"fa-code\",\n            \"preformatted-text\" : \"fa-file-code-o\",\n            \"code-block\"     : \"fa-file-code-o\",\n            table            : \"fa-table\",\n            datetime         : \"fa-clock-o\",\n            emoji            : \"fa-smile-o\",\n            \"html-entities\"  : \"fa-copyright\",\n            pagebreak        : \"fa-newspaper-o\",\n            \"goto-line\"      : \"fa-terminal\", // fa-crosshairs\n            watch            : \"fa-eye-slash\",\n            unwatch          : \"fa-eye\",\n            preview          : \"fa-desktop\",\n            search           : \"fa-search\",\n            fullscreen       : \"fa-arrows-alt\",\n            clear            : \"fa-eraser\",\n            help             : \"fa-question-circle\",\n            info             : \"fa-info-circle\"\n        },        \n        toolbarIconTexts     : {},\n        \n        lang : {\n            name        : \"zh-cn\",\n            description : \"开源在线Markdown编辑器&lt;br/>Open source online Markdown editor.\",\n            tocTitle    : \"目录\",\n            toolbar     : {\n                undo             : \"撤销（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗体\",\n                del              : \"删除线\",\n                italic           : \"斜体\",\n                quote            : \"引用\",\n                ucwords          : \"将每个单词首字母转成大写\",\n                uppercase        : \"将所选转换成大写\",\n                lowercase        : \"将所选转换成小写\",\n                h1               : \"标题1\",\n                h2               : \"标题2\",\n                h3               : \"标题3\",\n                h4               : \"标题4\",\n                h5               : \"标题5\",\n                h6               : \"标题6\",\n                \"list-ul\"        : \"无序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用链接\",\n                image            : \"添加图片\",\n                code             : \"行内代码\",\n                \"preformatted-text\" : \"预格式文本 / 代码块（缩进风格）\",\n                \"code-block\"     : \"代码块（多语言风格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期时间\",\n                emoji            : \"Emoji表情\",\n                \"html-entities\"  : \"HTML实体字符\",\n                pagebreak        : \"插入分页符\",\n                \"goto-line\"      : \"跳转到行\",\n                watch            : \"关闭实时预览\",\n                unwatch          : \"开启实时预览\",\n                preview          : \"全窗口预览HTML（按 Shift + ESC还原）\",\n                fullscreen       : \"全屏（按ESC还原）\",\n                clear            : \"清空\",\n                search           : \"搜索\",\n                help             : \"使用帮助\",\n                info             : \"关于\" + editormd.title\n            },\n            buttons : {\n                enter  : \"确定\",\n                cancel : \"取消\",\n                close  : \"关闭\"\n            },\n            dialog : {\n                link : {\n                    title    : \"添加链接\",\n                    url      : \"链接地址\",\n                    urlTitle : \"链接标题\",\n                    urlEmpty : \"错误：请填写链接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用链接\",\n                    name     : \"引用名称\",\n                    url      : \"链接地址\",\n                    urlId    : \"链接ID\",\n                    urlTitle : \"链接标题\",\n                    nameEmpty: \"错误：引用链接的名称不能为空。\",\n                    idEmpty  : \"错误：请填写引用链接的ID。\",\n                    urlEmpty : \"错误：请填写引用链接的URL地址。\"\n                },\n                image : {\n                    title    : \"添加图片\",\n                    url      : \"图片地址\",\n                    link     : \"图片链接\",\n                    alt      : \"图片描述\",\n                    uploadButton     : \"本地上传\",\n                    imageURLEmpty    : \"错误：图片地址不能为空。\",\n                    uploadFileEmpty  : \"错误：上传的图片不能为空。\",\n                    formatNotAllowed : \"错误：只允许上传图片文件，允许上传的图片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加预格式文本或代码块\", \n                    emptyAlert        : \"错误：请填写预格式文本或代码的内容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代码块\",                    \n                    selectLabel       : \"代码语言：\",\n                    selectDefaultText : \"请选择代码语言\",\n                    otherLanguage     : \"其他语言\",\n                    unselectedLanguageAlert : \"错误：请选择代码所属的语言类型。\",\n                    codeEmptyAlert    : \"错误：请填写代码内容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML 实体字符\"\n                },\n                help : {\n                    title : \"使用帮助\"\n                }\n            }\n        }\n    };\n    \n    editormd.classNames  = {\n        tex : editormd.classPrefix + \"tex\"\n    };\n\n    editormd.dialogZindex = 99999;\n    \n    editormd.$katex       = null;\n    editormd.$marked      = null;\n    editormd.$CodeMirror  = null;\n    editormd.$prettyPrint = null;\n    \n    var timer, flowchartTimer;\n\n    editormd.prototype    = editormd.fn = {\n        state : {\n            watching   : false,\n            loaded     : false,\n            preview    : false,\n            fullscreen : false\n        },\n        \n        /**\n         * 构造函数/实例初始化\n         * Constructor / instance initialization\n         * \n         * @param   {String}   id            编辑器的ID\n         * @param   {Object}   [options={}]  配置选项 Key/Value\n         * @returns {editormd}               返回editormd的实例对象\n         */\n        \n        init : function (id, options) {\n            \n            options              = options || {};\n            \n            if (typeof id === \"object\")\n            {\n                options = id;\n            }\n            \n            var _this            = this;\n            var classPrefix      = this.classPrefix  = editormd.classPrefix; \n            var settings         = this.settings     = $.extend(true, editormd.defaults, options);\n            \n            id                   = (typeof id === \"object\") ? settings.id : id;\n            \n            var editor           = this.editor       = $(\"#\" + id);\n            \n            this.id              = id;\n            this.lang            = settings.lang;\n            \n            var classNames       = this.classNames   = {\n                textarea : {\n                    html     : classPrefix + \"html-textarea\",\n                    markdown : classPrefix + \"markdown-textarea\"\n                }\n            };\n            \n            settings.pluginPath = (settings.pluginPath === \"\") ? settings.path + \"../plugins/\" : settings.pluginPath; \n            \n            this.state.watching = (settings.watch) ? true : false;\n            \n            if ( !editor.hasClass(\"editormd\") ) {\n                editor.addClass(\"editormd\");\n            }\n            \n            editor.css({\n                width  : (typeof settings.width  === \"number\") ? settings.width  + \"px\" : settings.width,\n                height : (typeof settings.height === \"number\") ? settings.height + \"px\" : settings.height\n            });\n            \n            if (settings.autoHeight)\n            {\n                editor.css(\"height\", \"auto\");\n            }\n                        \n            var markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            \n            if (markdownTextarea.length &lt; 1)\n            {\n                editor.append(\"&lt;textarea>&lt;/textarea>\");\n                markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            }\n            \n            markdownTextarea.addClass(classNames.textarea.markdown).attr(\"placeholder\", settings.placeholder);\n            \n            if (typeof markdownTextarea.attr(\"name\") === \"undefined\" || markdownTextarea.attr(\"name\") === \"\")\n            {\n                markdownTextarea.attr(\"name\", (settings.name !== \"\") ? settings.name : id + \"-markdown-doc\");\n            }\n            \n            var appendElements = [\n                (!settings.readOnly) ? \"&lt;a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"preview-close-btn\\\">&lt;/a>\" : \"\",\n                ( (settings.saveHTMLToTextarea) ? \"&lt;textarea class=\\\"\" + classNames.textarea.html + \"\\\" name=\\\"\" + id + \"-html-code\\\">&lt;/textarea>\" : \"\" ),\n                \"&lt;div class=\\\"\" + classPrefix + \"preview\\\">&lt;div class=\\\"markdown-body \" + classPrefix + \"preview-container\\\">&lt;/div>&lt;/div>\",\n                \"&lt;div class=\\\"\" + classPrefix + \"container-mask\\\" style=\\\"display:block;\\\">&lt;/div>\",\n                \"&lt;div class=\\\"\" + classPrefix + \"mask\\\">&lt;/div>\"\n            ].join(\"\\n\");\n            \n            editor.append(appendElements).addClass(classPrefix + \"vertical\");\n            \n            this.mask          = editor.children(\".\" + classPrefix + \"mask\");    \n            this.containerMask = editor.children(\".\" + classPrefix  + \"container-mask\");\n            \n            if (settings.markdown !== \"\")\n            {\n                markdownTextarea.val(settings.markdown);\n            }\n            \n            if (settings.appendMarkdown !== \"\")\n            {\n                markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown);\n            }\n            \n            this.htmlTextarea     = editor.children(\".\" + classNames.textarea.html);            \n            this.preview          = editor.children(\".\" + classPrefix + \"preview\");\n            this.previewContainer = this.preview.children(\".\" + classPrefix + \"preview-container\");\n            \n            if (typeof define === \"function\" &amp;&amp; define.amd)\n            {\n                if (typeof katex !== \"undefined\") \n                {\n                    editormd.$katex = katex;\n                }\n                \n                if (settings.searchReplace &amp;&amp; !settings.readOnly) \n                {\n                    editormd.loadCSS(settings.path + \"codemirror/addon/dialog/dialog\");\n                    editormd.loadCSS(settings.path + \"codemirror/addon/search/matchesonscrollbar\");\n                }\n            }\n            \n            if ((typeof define === \"function\" &amp;&amp; define.amd) || !settings.autoLoadModules)\n            {\n                if (typeof CodeMirror !== \"undefined\") {\n                    editormd.$CodeMirror = CodeMirror;\n                }\n                \n                if (typeof marked     !== \"undefined\") {\n                    editormd.$marked     = marked;\n                }\n                \n                this.setCodeMirror().setToolbar().loadedDisplay();\n            } \n            else \n            {\n                this.loadQueues();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 所需组件加载队列\n         * Required components loading queue\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        loadQueues : function() {\n            var _this        = this;\n            var settings     = this.settings;\n            var loadPath     = settings.path;\n                                \n            var loadFlowChartOrSequenceDiagram = function() {\n                \n                if (editormd.isIE8) \n                {\n                    _this.loadedDisplay();\n                    \n                    return ;\n                }\n\n                if (settings.flowChart || settings.sequenceDiagram) \n                {\n                    editormd.loadScript(loadPath + \"raphael.min\", function() {\n\n                        editormd.loadScript(loadPath + \"underscore.min\", function() {  \n\n                            if (!settings.flowChart &amp;&amp; settings.sequenceDiagram) \n                            {\n                                editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                    _this.loadedDisplay();\n                                });\n                            }\n                            else if (settings.flowChart &amp;&amp; !settings.sequenceDiagram) \n                            {      \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        _this.loadedDisplay();\n                                    });\n                                });\n                            }\n                            else if (settings.flowChart &amp;&amp; settings.sequenceDiagram) \n                            {  \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                            _this.loadedDisplay();\n                                        });\n                                    });\n                                });\n                            }\n                        });\n\n                    });\n                } \n                else\n                {\n                    _this.loadedDisplay();\n                }\n            }; \n\n            editormd.loadCSS(loadPath + \"codemirror/codemirror.min\");\n            \n            if (settings.searchReplace &amp;&amp; !settings.readOnly)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/dialog/dialog\");\n                editormd.loadCSS(loadPath + \"codemirror/addon/search/matchesonscrollbar\");\n            }\n            \n            if (settings.codeFold)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/fold/foldgutter\");            \n            }\n            \n            editormd.loadScript(loadPath + \"codemirror/codemirror.min\", function() {\n                editormd.$CodeMirror = CodeMirror;\n                \n                editormd.loadScript(loadPath + \"codemirror/modes.min\", function() {\n                    \n                    editormd.loadScript(loadPath + \"codemirror/addons.min\", function() {\n                        \n                        _this.setCodeMirror();\n                        \n                        if (settings.mode !== \"gfm\" &amp;&amp; settings.mode !== \"markdown\") \n                        {\n                            _this.loadedDisplay();\n                            \n                            return false;\n                        }\n                        \n                        _this.setToolbar();\n\n                        editormd.loadScript(loadPath + \"marked.min\", function() {\n\n                            editormd.$marked = marked;\n                                \n                            if (settings.previewCodeHighlight) \n                            {\n                                editormd.loadScript(loadPath + \"prettify.min\", function() {\n                                    loadFlowChartOrSequenceDiagram();\n                                });\n                            } \n                            else\n                            {                  \n                                loadFlowChartOrSequenceDiagram();\n                            }\n                        });\n                        \n                    });\n                    \n                });\n                \n            });\n\n            return this;\n        },\n        \n        /**\n         * 设置CodeMirror的主题\n         * Setting CodeMirror theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setTheme : function(theme) {  \n            var settings   = this.settings;  \n            settings.theme = theme;  \n            \n            if (theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.theme);\n            }\n            \n            this.cm.setOption(\"theme\", theme);\n            \n            return this;\n        },\n        \n        /**\n         * 配置和初始化CodeMirror组件\n         * CodeMirror initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirror : function() { \n            var settings         = this.settings;\n            var editor           = this.editor;\n            \n            if (settings.theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.theme);\n            }\n            \n            var codeMirrorConfig = {\n                mode                      : settings.mode,\n                theme                     : settings.theme,\n                tabSize                   : settings.tabSize,\n                dragDrop                  : false,\n                autofocus                 : settings.autoFocus,\n                autoCloseTags             : settings.autoCloseTags,\n                readOnly                  : (settings.readOnly) ? \"nocursor\" : false,\n                indentUnit                : settings.indentUnit,\n                lineNumbers               : settings.lineNumbers,\n                lineWrapping              : settings.lineWrapping,\n                extraKeys                 : {\n                                                \"Ctrl-Q\": function(cm) { \n                                                    cm.foldCode(cm.getCursor()); \n                                                }\n                                            },\n                foldGutter                : settings.codeFold,\n                gutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n                matchBrackets             : settings.matchBrackets,\n                indentWithTabs            : settings.indentWithTabs,\n                styleActiveLine           : settings.styleActiveLine,\n                styleSelectedText         : settings.styleSelectedText,\n                autoCloseBrackets         : settings.autoCloseBrackets,\n                showTrailingSpace         : settings.showTrailingSpace,\n                highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === \"onselected\") ? false : /\\w/ } )\n            };\n            \n            this.codeEditor = this.cm        = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig);\n            this.codeMirror = this.cmElement = editor.children(\".CodeMirror\");\n            \n            if (settings.value !== \"\")\n            {\n                this.cm.setValue(settings.value);\n            }\n\n            this.codeMirror.css({\n                fontSize : settings.fontSize,\n                width    : (!settings.watch) ? \"100%\" : \"50%\"\n            });\n            \n            if (settings.autoHeight)\n            {\n                this.codeMirror.css(\"height\", \"auto\");\n                this.cm.setOption(\"viewportMargin\", Infinity);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 获取CodeMirror的配置选项\n         * Get CodeMirror setting options\n         * \n         * @returns {Mixed}                  return CodeMirror setting option value\n         */\n        \n        getCodeMirrorOption : function(key) {            \n            return this.cm.getOption(key);\n        },\n        \n        /**\n         * 配置和重配置CodeMirror的选项\n         * CodeMirror setting options / resettings\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorOption : function(key, value) {\n            \n            this.cm.setOption(key, value);\n            \n            return this;\n        },\n        \n        /**\n         * 添加 CodeMirror 键盘快捷键\n         * Add CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        addKeyMap : function(map, bottom) {\n            this.cm.addKeyMap(map, bottom);\n            \n            return this;\n        },\n        \n        /**\n         * 移除 CodeMirror 键盘快捷键\n         * Remove CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        removeKeyMap : function(map) {\n            this.cm.removeKeyMap(map);\n            \n            return this;\n        },\n        \n        /**\n         * 跳转到指定的行\n         * Goto CodeMirror line\n         * \n         * @param   {String|Intiger}   line      line number or \"first\"|\"last\"\n         * @returns {editormd}                   返回editormd的实例对象\n         */\n        \n        gotoLine : function (line) {\n            \n            var settings = this.settings;\n            \n            if (!settings.gotoLine)\n            {\n                return this;\n            }\n            \n            var cm       = this.cm;\n            var editor   = this.editor;\n            var count    = cm.lineCount();\n            var preview  = this.preview;\n            \n            if (typeof line === \"string\")\n            {\n                if(line === \"last\")\n                {\n                    line = count;\n                }\n            \n                if (line === \"first\")\n                {\n                    line = 1;\n                }\n            }\n            \n            if (typeof line !== \"number\") \n            {  \n                alert(\"Error: The line number must be an integer.\");\n                return this;\n            }\n            \n            line  = parseInt(line) - 1;\n            \n            if (line > count)\n            {\n                alert(\"Error: The line number range 1-\" + count);\n                \n                return this;\n            }\n            \n            cm.setCursor( {line : line, ch : 0} );\n            \n            var scrollInfo   = cm.getScrollInfo();\n            var clientHeight = scrollInfo.clientHeight; \n            var coords       = cm.charCoords({line : line, ch : 0}, \"local\");\n            \n            cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2);\n            \n            if (settings.watch)\n            {            \n                var cmScroll  = this.codeMirror.find(\".CodeMirror-scroll\")[0];\n                var height    = $(cmScroll).height(); \n                var scrollTop = cmScroll.scrollTop;         \n                var percent   = (scrollTop / cmScroll.scrollHeight);\n\n                if (scrollTop === 0)\n                {\n                    preview.scrollTop(0);\n                } \n                else if (scrollTop + height >= cmScroll.scrollHeight - 16)\n                { \n                    preview.scrollTop(preview[0].scrollHeight);                    \n                } \n                else\n                {                    \n                    preview.scrollTop(preview[0].scrollHeight * percent);\n                }\n            }\n\n            cm.focus();\n            \n            return this;\n        },\n        \n        /**\n         * 扩展当前实例对象，可同时设置多个或者只设置一个\n         * Extend editormd instance object, can mutil setting.\n         * \n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        extend : function() {\n            if (typeof arguments[1] !== \"undefined\")\n            {\n                if (typeof arguments[1] === \"function\")\n                {\n                    arguments[1] = $.proxy(arguments[1], this);\n                }\n\n                this[arguments[0]] = arguments[1];\n            }\n            \n            if (typeof arguments[0] === \"object\" &amp;&amp; typeof arguments[0].length === \"undefined\")\n            {\n                $.extend(true, this, arguments[0]);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 设置或扩展当前实例对象，单个设置\n         * Extend editormd instance object, one by one\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        set : function (key, value) {\n            \n            if (typeof value !== \"undefined\" &amp;&amp; typeof value === \"function\")\n            {\n                value = $.proxy(value, this);\n            }\n            \n            this[key] = value;\n\n            return this;\n        },\n        \n        /**\n         * 重新配置\n         * Resetting editor options\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        config : function(key, value) {\n            var settings = this.settings;\n            \n            if (typeof key === \"object\")\n            {\n                settings = $.extend(true, settings, key);\n            }\n            \n            if (typeof key === \"string\")\n            {\n                settings[key] = value;\n            }\n            \n            this.settings = settings;\n            this.recreate();\n            \n            return this;\n        },\n        \n        /**\n         * 注册事件处理方法\n         * Bind editor event handle\n         * \n         * @param   {String}     eventType      event type\n         * @param   {Function}   callback       回调函数\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        on : function(eventType, callback) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {                \n                settings[\"on\" + eventType] = $.proxy(callback, this);      \n            }\n\n            return this;\n        },\n        \n        /**\n         * 解除事件处理方法\n         * Unbind editor event handle\n         * \n         * @param   {String}   eventType          event type\n         * @returns {editormd}                    this(editormd instance object.)\n         */\n        \n        off : function(eventType) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {\n                settings[\"on\" + eventType] = function(){};\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 显示工具栏\n         * Display toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showToolbar : function(callback) {\n            var settings = this.settings;\n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            if (settings.toolbar &amp;&amp; (this.toolbar.length &lt; 1 || this.toolbar.find(\".\" + this.classPrefix + \"menu\").html() === \"\") )\n            {\n                this.setToolbar();\n            }\n            \n            settings.toolbar = true; \n            \n            this.toolbar.show();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏工具栏\n         * Hide toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}                         this(editormd instance object.)\n         */\n        \n        hideToolbar : function(callback) { \n            var settings = this.settings;\n            \n            settings.toolbar = false;  \n            this.toolbar.hide();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 页面滚动时工具栏的固定定位\n         * Set toolbar in window scroll auto fixed position\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarAutoFixed : function(fixed) {\n            \n            var state    = this.state;\n            var editor   = this.editor;\n            var toolbar  = this.toolbar;\n            var settings = this.settings;\n            \n            if (typeof fixed !== \"undefined\")\n            {\n                settings.toolbarAutoFixed = fixed;\n            }\n            \n            var autoFixedHandle = function(){\n                var $window = $(window);\n                var top     = $window.scrollTop();\n                \n                if (!settings.toolbarAutoFixed)\n                {\n                    return false;\n                }\n\n                if (top - editor.offset().top > 10 &amp;&amp; top &lt; editor.height())\n                {\n                    toolbar.css({\n                        position : \"fixed\",\n                        width    : editor.width() + \"px\",\n                        left     : ($window.width() - editor.width()) / 2 + \"px\"\n                    });\n                }\n                else\n                {\n                    toolbar.css({\n                        position : \"absolute\",\n                        width    : \"100%\",\n                        left     : 0\n                    });\n                }\n            };\n            \n            if (!state.fullscreen &amp;&amp; !state.preview &amp;&amp; settings.toolbar &amp;&amp; settings.toolbarAutoFixed)\n            {\n                $(window).bind(\"scroll\", autoFixedHandle);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 配置和初始化工具栏\n         * Set toolbar and Initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbar : function() {\n            var settings    = this.settings;  \n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            var editor      = this.editor;\n            var preview     = this.preview;\n            var classPrefix = this.classPrefix;\n            \n            var toolbar     = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            \n            if (settings.toolbar &amp;&amp; toolbar.length &lt; 1)\n            {            \n                var toolbarHTML = \"&lt;div class=\\\"\" + classPrefix + \"toolbar\\\">&lt;div class=\\\"\" + classPrefix + \"toolbar-container\\\">&lt;ul class=\\\"\" + classPrefix + \"menu\\\">&lt;/ul>&lt;/div>&lt;/div>\";\n                \n                editor.append(toolbarHTML);\n                toolbar = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            }\n            \n            if (!settings.toolbar) \n            {\n                toolbar.hide();\n                \n                return this;\n            }\n            \n            toolbar.show();\n            \n            var icons       = (typeof settings.toolbarIcons === \"function\") ? settings.toolbarIcons() \n                            : ((typeof settings.toolbarIcons === \"string\")  ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons);\n            \n            var toolbarMenu = toolbar.find(\".\" + this.classPrefix + \"menu\"), menu = \"\";\n            var pullRight   = false;\n            \n            for (var i = 0, len = icons.length; i &lt; len; i++)\n            {\n                var name = icons[i];\n\n                if (name === \"||\") \n                { \n                    pullRight = true;\n                } \n                else if (name === \"|\")\n                {\n                    menu += \"&lt;li class=\\\"divider\\\" unselectable=\\\"on\\\">|&lt;/li>\";\n                }\n                else\n                {\n                    var isHeader = (/h(\\d)/.test(name));\n                    var index    = name;\n                    \n                    if (name === \"watch\" &amp;&amp; !settings.watch) {\n                        index = \"unwatch\";\n                    }\n                    \n                    var title     = settings.lang.toolbar[index];\n                    var iconTexts = settings.toolbarIconTexts[index];\n                    var iconClass = settings.toolbarIconsClass[index];\n                    \n                    title     = (typeof title     === \"undefined\") ? \"\" : title;\n                    iconTexts = (typeof iconTexts === \"undefined\") ? \"\" : iconTexts;\n                    iconClass = (typeof iconClass === \"undefined\") ? \"\" : iconClass;\n\n                    var menuItem = pullRight ? \"&lt;li class=\\\"pull-right\\\">\" : \"&lt;li>\";\n                    \n                    if (typeof settings.toolbarCustomIcons[name] !== \"undefined\" &amp;&amp; typeof settings.toolbarCustomIcons[name] !== \"function\")\n                    {\n                        menuItem += settings.toolbarCustomIcons[name];\n                    }\n                    else \n                    {\n                        menuItem += \"&lt;a href=\\\"javascript:;\\\" title=\\\"\" + title + \"\\\" unselectable=\\\"on\\\">\";\n                        menuItem += \"&lt;i class=\\\"fa \" + iconClass + \"\\\" name=\\\"\"+name+\"\\\" unselectable=\\\"on\\\">\"+((isHeader) ? name.toUpperCase() : ( (iconClass === \"\") ? iconTexts : \"\") ) + \"&lt;/i>\";\n                        menuItem += \"&lt;/a>\";\n                    }\n\n                    menuItem += \"&lt;/li>\";\n\n                    menu = pullRight ? menuItem + menu : menu + menuItem;\n                }\n            }\n\n            toolbarMenu.html(menu);\n            \n            toolbarMenu.find(\"[title=\\\"Lowercase\\\"]\").attr(\"title\", settings.lang.toolbar.lowercase);\n            toolbarMenu.find(\"[title=\\\"ucwords\\\"]\").attr(\"title\", settings.lang.toolbar.ucwords);\n            \n            this.setToolbarHandler();\n            this.setToolbarAutoFixed();\n\n            return this;\n        },\n        \n        /**\n         * 工具栏图标事件处理对象序列\n         * Get toolbar icons event handlers\n         * \n         * @param   {Object}   cm    CodeMirror的实例对象\n         * @param   {String}   name  要获取的事件处理器名称\n         * @returns {Object}         返回处理对象序列\n         */\n            \n        dialogLockScreen : function() {\n            $.proxy(editormd.dialogLockScreen, this)();\n            \n            return this;\n        },\n\n        dialogShowMask : function(dialog) {\n            $.proxy(editormd.dialogShowMask, this)(dialog);\n            \n            return this;\n        },\n        \n        getToolbarHandles : function(name) {  \n            var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers;\n            \n            return (name &amp;&amp; typeof toolbarIconHandlers[name] !== \"undefined\") ? toolbarHandlers[name] : toolbarHandlers;\n        },\n        \n        /**\n         * 工具栏图标事件处理器\n         * Bind toolbar icons event handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarHandler : function() {\n            var _this               = this;\n            var settings            = this.settings;\n            \n            if (!settings.toolbar || settings.readOnly) {\n                return this;\n            }\n            \n            var toolbar             = this.toolbar;\n            var cm                  = this.cm;\n            var classPrefix         = this.classPrefix;           \n            var toolbarIcons        = this.toolbarIcons = toolbar.find(\".\" + classPrefix + \"menu > li > a\");  \n            var toolbarIconHandlers = this.getToolbarHandles();  \n                \n            toolbarIcons.bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(event) {\n\n                var icon                = $(this).children(\".fa\");\n                var name                = icon.attr(\"name\");\n                var cursor              = cm.getCursor();\n                var selection           = cm.getSelection();\n\n                if (name === \"\") {\n                    return ;\n                }\n                \n                _this.activeIcon = icon;\n\n                if (typeof toolbarIconHandlers[name] !== \"undefined\") \n                {\n                    $.proxy(toolbarIconHandlers[name], _this)(cm);\n                }\n                else \n                {\n                    if (typeof settings.toolbarHandlers[name] !== \"undefined\") \n                    {\n                        $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection);\n                    }\n                }\n                \n                if (name !== \"link\" &amp;&amp; name !== \"reference-link\" &amp;&amp; name !== \"image\" &amp;&amp; name !== \"code-block\" &amp;&amp; \n                    name !== \"preformatted-text\" &amp;&amp; name !== \"watch\" &amp;&amp; name !== \"preview\" &amp;&amp; name !== \"search\" &amp;&amp; name !== \"fullscreen\" &amp;&amp; name !== \"info\") \n                {\n                    cm.focus();\n                }\n\n                return false;\n\n            });\n\n            return this;\n        },\n        \n        /**\n         * 动态创建对话框\n         * Creating custom dialogs\n         * \n         * @param   {Object} options  配置项键值对 Key/Value\n         * @returns {dialog}          返回创建的dialog的jQuery实例对象\n         */\n        \n        createDialog : function(options) {            \n            return $.proxy(editormd.createDialog, this)(options);\n        },\n        \n        /**\n         * 创建关于Editor.md的对话框\n         * Create about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        createInfoDialog : function() {\n            var _this        = this;\n\t\t\tvar editor       = this.editor;\n            var classPrefix  = this.classPrefix;  \n            \n            var infoDialogHTML = [\n                \"&lt;div class=\\\"\" + classPrefix + \"dialog \" + classPrefix + \"dialog-info\\\" style=\\\"\\\">\",\n                \"&lt;div class=\\\"\" + classPrefix + \"dialog-container\\\">\",\n                \"&lt;h1>&lt;i class=\\\"editormd-logo editormd-logo-lg editormd-logo-color\\\">&lt;/i> \" + editormd.title + \"&lt;small>v\" + editormd.version + \"&lt;/small>&lt;/h1>\",\n                \"&lt;p>\" + this.lang.description + \"&lt;/p>\",\n                \"&lt;p style=\\\"margin: 10px 0 20px 0;\\\">&lt;a href=\\\"\" + editormd.homePage + \"\\\" target=\\\"_blank\\\">\" + editormd.homePage + \" &lt;i class=\\\"fa fa-external-link\\\">&lt;/i>&lt;/a>&lt;/p>\",\n                \"&lt;p style=\\\"font-size: 0.85em;\\\">Copyright &amp;copy; 2015 &lt;a href=\\\"https://github.com/pandao\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">Pandao&lt;/a>, The &lt;a href=\\\"https://github.com/pandao/editor.md/blob/master/LICENSE\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">MIT&lt;/a> License.&lt;/p>\",\n                \"&lt;/div>\",\n                \"&lt;a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\">&lt;/a>\",\n                \"&lt;/div>\"\n            ].join(\"\\n\");\n\n            editor.append(infoDialogHTML);\n            \n            var infoDialog  = this.infoDialog = editor.children(\".\" + classPrefix + \"dialog-info\");\n\n            infoDialog.find(\".\" + classPrefix + \"dialog-close\").bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function() {\n                _this.hideInfoDialog();\n            });\n            \n            infoDialog.css(\"border\", (editormd.isIE8) ? \"1px solid #ddd\" : \"\").css(\"z-index\", editormd.dialogZindex).show();\n            \n            this.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 关于Editor.md对话居中定位\n         * Editor.md dialog position handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        infoDialogPosition : function() {\n            var infoDialog = this.infoDialog;\n            \n\t\t\tvar _infoDialogPosition = function() {\n\t\t\t\tinfoDialog.css({\n\t\t\t\t\ttop  : ($(window).height() - infoDialog.height()) / 2 + \"px\",\n\t\t\t\t\tleft : ($(window).width()  - infoDialog.width()) / 2  + \"px\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t_infoDialogPosition();\n\n\t\t\t$(window).resize(_infoDialogPosition);\n            \n            return this;\n        },\n        \n        /**\n         * 显示关于Editor.md\n         * Display about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showInfoDialog : function() {\n\n            $(\"html,body\").css(\"overflow-x\", \"hidden\");\n            \n            var _this       = this;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;         \n\t\t\tvar infoDialog  = this.infoDialog = editor.children(\".\" + this.classPrefix + \"dialog-info\");\n            \n            if (infoDialog.length &lt; 1)\n            {\n                this.createInfoDialog();\n            }\n            \n            this.lockScreen(true);\n            \n            this.mask.css({\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t}).show();\n\n\t\t\tinfoDialog.css(\"z-index\", editormd.dialogZindex).show();\n\n\t\t\tthis.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏关于Editor.md\n         * Hide about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        hideInfoDialog : function() {            \n            $(\"html,body\").css(\"overflow-x\", \"\");\n            this.infoDialog.hide();\n            this.mask.hide();\n            this.lockScreen(false);\n\n            return this;\n        },\n        \n        /**\n         * 锁屏\n         * lock screen\n         * \n         * @param   {Boolean}    lock    Boolean 布尔值，是否锁屏\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        lockScreen : function(lock) {\n            editormd.lockScreen(lock);\n\n            return this;\n        },\n        \n        /**\n         * 编辑器界面重建，用于动态语言包或模块加载等\n         * Recreate editor\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        recreate : function() {\n            var _this            = this;\n            var editor           = this.editor;\n            var settings         = this.settings;\n            \n            this.codeMirror.remove();\n            \n            this.setCodeMirror();\n\n            if (!settings.readOnly) \n            {\n                if (editor.find(\".editormd-dialog\").length > 0) {\n                    editor.find(\".editormd-dialog\").remove();\n                }\n                \n                if (settings.toolbar) \n                {  \n                    this.getToolbarHandles();                  \n                    this.setToolbar();\n                }\n            }\n            \n            this.loadedDisplay(true);\n\n            return this;\n        },\n        \n        /**\n         * 高亮预览HTML的pre代码部分\n         * highlight of preview codes\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        previewCodeHighlight : function() {    \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (settings.previewCodeHighlight) \n            {\n                previewContainer.find(\"pre\").addClass(\"prettyprint linenums\");\n                \n                if (typeof prettyPrint !== \"undefined\")\n                {                    \n                    prettyPrint();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析TeX(KaTeX)科学公式\n         * TeX(KaTeX) Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        katexRender : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            this.previewContainer.find(\".\" + editormd.classNames.tex).each(function(){\n                var tex  = $(this);\n                editormd.$katex.render(tex.text(), tex[0]);\n            });   \n\n            return this;\n        },\n        \n        /**\n         * 解析和渲染流程图及时序图\n         * FlowChart and SequenceDiagram Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        flowChartAndSequenceDiagramRender : function() {\n            \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (editormd.isIE8) {\n                return this;\n            }\n\n            if (settings.flowChart) {\n                if (flowchartTimer === null) {\n                    return this;\n                }\n                \n                previewContainer.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                previewContainer.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n\n            return this;\n        },\n        \n        /**\n         * 注册键盘快捷键处理\n         * Register CodeMirror keyMaps (keyboard shortcuts).\n         * \n         * @param   {Object}    keyMap      KeyMap key/value {\"(Ctrl/Shift/Alt)-Key\" : function(){}}\n         * @returns {editormd}              return this\n         */\n        \n        registerKeyMaps : function(keyMap) {\n            \n            var _this           = this;\n            var cm              = this.cm;\n            var settings        = this.settings;\n            var toolbarHandlers = editormd.toolbarHandlers;\n            var disabledKeyMaps = settings.disabledKeyMaps;\n            \n            keyMap              = keyMap || null;\n            \n            if (keyMap)\n            {\n                for (var i in keyMap)\n                {\n                    if ($.inArray(i, disabledKeyMaps) &lt; 0)\n                    {\n                        var map = {};\n                        map[i]  = keyMap[i];\n\n                        cm.addKeyMap(keyMap);\n                    }\n                }\n            }\n            else\n            {\n                for (var k in editormd.keyMaps)\n                {\n                    var _keyMap = editormd.keyMaps[k];\n                    var handle = (typeof _keyMap === \"string\") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this);\n                    \n                    if ($.inArray(k, [\"F9\", \"F10\", \"F11\"]) &lt; 0 &amp;&amp; $.inArray(k, disabledKeyMaps) &lt; 0)\n                    {\n                        var _map = {};\n                        _map[k] = handle;\n\n                        cm.addKeyMap(_map);\n                    }\n                }\n                \n                $(window).keydown(function(event) {\n                    \n                    var keymaps = {\n                        \"120\" : \"F9\",\n                        \"121\" : \"F10\",\n                        \"122\" : \"F11\"\n                    };\n                    \n                    if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) &lt; 0 )\n                    {\n                        switch (event.keyCode)\n                        {\n                            case 120:\n                                    $.proxy(toolbarHandlers[\"watch\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 121:\n                                    $.proxy(toolbarHandlers[\"preview\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 122:\n                                    $.proxy(toolbarHandlers[\"fullscreen\"], _this)();                        \n                                    return false;\n                                break;\n                                \n                            default:\n                                break;\n                        }\n                    }\n                });\n            }\n\n            return this;\n        },\n        \n        bindScrollEvent : function() {\n            \n            var _this            = this;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var mouseOrTouch     = editormd.mouseOrTouch;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n                \n            var cmBindScroll = function() {    \n                codeMirror.find(\".CodeMirror-scroll\").bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();                    \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n\n                    if (scrollTop === 0) \n                    {\n                        preview.scrollTop(0);\n                    } \n                    else if (scrollTop + height >= $(this)[0].scrollHeight - 16)\n                    { \n                        preview.scrollTop(preview[0].scrollHeight);                        \n                    } \n                    else\n                    {                    \n                        preview.scrollTop(preview[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onscroll, _this)(event);\n                });\n            };\n\n            var cmUnbindScroll = function() {\n                codeMirror.find(\".CodeMirror-scroll\").unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            };\n\n            var previewBindScroll = function() {\n                \n                preview.bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();         \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    var codeView  = codeMirror.find(\".CodeMirror-scroll\");\n\n                    if(scrollTop === 0) \n                    {\n                        codeView.scrollTop(0);\n                    }\n                    else if (scrollTop + height >= $(this)[0].scrollHeight)\n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight);                        \n                    }\n                    else \n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onpreviewscroll, _this)(event);\n                });\n\n            };\n\n            var previewUnbindScroll = function() {\n                preview.unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            }; \n\n\t\t\tcodeMirror.bind({\n\t\t\t\tmouseover  : cmBindScroll,\n\t\t\t\tmouseout   : cmUnbindScroll,\n\t\t\t\ttouchstart : cmBindScroll,\n\t\t\t\ttouchend   : cmUnbindScroll\n\t\t\t});\n            \n\t\t\tpreview.bind({\n\t\t\t\tmouseover  : previewBindScroll,\n\t\t\t\tmouseout   : previewUnbindScroll,\n\t\t\t\ttouchstart : previewBindScroll,\n\t\t\t\ttouchend   : previewUnbindScroll\n\t\t\t});\n\n            return this;\n        },\n        \n        bindChangeEvent : function() {\n            \n            var _this            = this;\n            var cm               = this.cm;\n            var settings         = this.settings;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n            \n            cm.on(\"change\", function(_cm, changeObj) {\n                \n                if (settings.watch)\n                {           \n                    _this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                }\n                \n                timer = setTimeout(function() {\n                    clearTimeout(timer);\n                    _this.save();\n                    timer = null;\n                }, settings.delay);\n            });\n\n            return this;\n        },\n        \n        /**\n         * 加载队列完成之后的显示处理\n         * Display handle of the module queues loaded after.\n         * \n         * @param   {Boolean}   recreate   是否为重建编辑器\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        loadedDisplay : function(recreate) {\n            \n            recreate             = recreate || false;\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            \n            this.containerMask.hide();\n            \n            this.save();\n            \n            if (settings.watch) {\n                preview.show();\n            }\n            \n            editor.data(\"oldWidth\", editor.width()).data(\"oldHeight\", editor.height()); // 为了兼容Zepto\n            \n            this.resize();\n            this.registerKeyMaps();\n            \n            $(window).resize(function(){\n                _this.resize();\n            });\n            \n            this.bindScrollEvent().bindChangeEvent();\n            \n            if (!recreate)\n            {\n                $.proxy(settings.onload, this)();\n            }\n            \n            this.state.loaded = true;\n\n            return this;\n        },\n        \n        /**\n         * 设置编辑器的宽度\n         * Set editor width\n         * \n         * @param   {Number|String} width  编辑器宽度值\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        width : function(width) {\n                \n            this.editor.css(\"width\", (typeof width === \"number\") ? width  + \"px\" : width);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 设置编辑器的高度\n         * Set editor height\n         * \n         * @param   {Number|String} height  编辑器高度值\n         * @returns {editormd}              返回editormd的实例对象\n         */\n        \n        height : function(height) {\n                \n            this.editor.css(\"height\", (typeof height === \"number\")  ? height  + \"px\" : height);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 调整编辑器的尺寸和布局\n         * Resize editor layout\n         * \n         * @param   {Number|String} [width=null]  编辑器宽度值\n         * @param   {Number|String} [height=null] 编辑器高度值\n         * @returns {editormd}                    返回editormd的实例对象\n         */\n        \n        resize : function(width, height) {\n            \n            width  = width  || null;\n            height = height || null;\n            \n            var state      = this.state;\n            var editor     = this.editor;\n            var preview    = this.preview;\n            var toolbar    = this.toolbar;\n            var settings   = this.settings;\n            var codeMirror = this.codeMirror;\n            \n            if (width)\n            {\n                editor.css(\"width\", (typeof width  === \"number\") ? width  + \"px\" : width);\n            }\n            \n            if (settings.autoHeight &amp;&amp; !state.fullscreen &amp;&amp; !state.preview)\n            {\n                editor.css(\"height\", \"auto\");\n                codeMirror.css(\"height\", \"auto\");\n            } \n            else \n            {\n                if (height) \n                {\n                    editor.css(\"height\", (typeof height === \"number\") ? height + \"px\" : height);\n                }\n                \n                if (state.fullscreen)\n                {\n                    editor.height($(window).height());\n                }\n\n                if (settings.toolbar &amp;&amp; !settings.readOnly) \n                {\n                    codeMirror.css(\"margin-top\", toolbar.height() + 1).height(editor.height() - toolbar.height());\n                } \n                else\n                {\n                    codeMirror.css(\"margin-top\", 0).height(editor.height());\n                }\n            }\n            \n            if(settings.watch) \n            {\n                codeMirror.width(editor.width() / 2);\n                preview.width((!state.preview) ? editor.width() / 2 : editor.width());\n                \n                this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                \n                if (settings.toolbar &amp;&amp; !settings.readOnly) \n                {\n                    preview.css(\"top\", toolbar.height());\n                } \n                else \n                {\n                    preview.css(\"top\", 0);\n                }\n                \n                if (settings.autoHeight &amp;&amp; !state.fullscreen &amp;&amp; !state.preview)\n                {\n                    preview.height(\"\");\n                }\n                else\n                {                \n                    preview.height((settings.toolbar &amp;&amp; !settings.readOnly) ? editor.height() - toolbar.height() : editor.height());\n                }\n            } \n            else \n            {\n                codeMirror.width(editor.width());\n                preview.hide();\n            }\n            \n            if (state.loaded) \n            {\n                $.proxy(settings.onresize, this)();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析和保存Markdown代码\n         * Parse &amp; Saving Markdown source code\n         * \n         * @returns {editormd}     返回editormd的实例对象\n         */\n        \n        save : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            var _this            = this;\n            var state            = this.state;\n            var settings         = this.settings;\n            var cm               = this.cm;            \n            var cmValue          = cm.getValue();\n            var previewContainer = this.previewContainer;\n\n            if (settings.mode !== \"gfm\" &amp;&amp; settings.mode !== \"markdown\") \n            {\n                this.markdownTextarea.val(cmValue);\n                \n                return this;\n            }\n            \n            var marked          = editormd.$marked;\n            var markdownToC     = this.markdownToC = [];            \n            var rendererOptions = this.markedRendererOptions = {  \n                toc                  : settings.toc,\n                tocm                 : settings.tocm,\n                tocStartLevel        : settings.tocStartLevel,\n                pageBreak            : settings.pageBreak,\n                taskList             : settings.taskList,\n                emoji                : settings.emoji,\n                tex                  : settings.tex,\n                atLink               : settings.atLink,           // for @link\n                emailLink            : settings.emailLink,        // for mail address auto link\n                flowChart            : settings.flowChart,\n                sequenceDiagram      : settings.sequenceDiagram,\n                previewCodeHighlight : settings.previewCodeHighlight,\n            };\n            \n            var markedOptions = this.markedOptions = {\n                renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n                gfm         : true,\n                tables      : true,\n                breaks      : true,\n                pedantic    : false,\n                sanitize    : (settings.htmlDecode) ? false : true,  // 关闭忽略HTML标签，即开启识别HTML标签，默认为false\n                smartLists  : true,\n                smartypants : true\n            };\n            \n            marked.setOptions(markedOptions);\n        \n            cmValue            = editormd.filterHTMLTags(cmValue, settings.htmlDecode);\n            \n            var newMarkdownDoc = editormd.$marked(cmValue, markedOptions);\n            \n            //console.log(\"cmValue\", cmValue, this.markdownTextarea, this.htmlTextarea);\n            \n            this.markdownTextarea.text(cmValue);\n            \n            cm.save();\n            \n            if (settings.saveHTMLToTextarea) \n            {\n                this.htmlTextarea.text(newMarkdownDoc);\n            }\n            \n            if(settings.watch || (!settings.watch &amp;&amp; state.preview))\n            {\n                previewContainer.html(newMarkdownDoc);\n\n                this.previewCodeHighlight();\n                \n                if (settings.toc) \n                {\n                    var tocContainer = (settings.tocContainer === \"\") ? previewContainer : $(settings.tocContainer);\n                    var tocMenu      = tocContainer.find(\".\" + this.classPrefix + \"toc-menu\");\n                    \n                    tocContainer.attr(\"previewContainer\", (settings.tocContainer === \"\") ? \"true\" : \"false\");\n                    \n                    if (settings.tocContainer !== \"\" &amp;&amp; tocMenu.length > 0)\n                    {\n                        tocMenu.remove();\n                    }\n                    \n                    editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n                    if (settings.tocDropdown || tocContainer.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n                    {\n                        editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== \"\") ? settings.tocTitle : this.lang.tocTitle);\n                    }\n            \n                    if (settings.tocContainer !== \"\")\n                    {\n                        previewContainer.find(\".markdown-toc\").css(\"border\", \"none\");\n                    }\n                }\n                \n                if (settings.tex)\n                {\n                    if (!editormd.kaTeXLoaded &amp;&amp; settings.autoLoadModules) \n                    {\n                        editormd.loadKaTeX(function() {\n                            editormd.$katex = katex;\n                            editormd.kaTeXLoaded = true;\n                            _this.katexRender();\n                        });\n                    } \n                    else \n                    {\n                        editormd.$katex = katex;\n                        this.katexRender();\n                    }\n                }                \n                \n                if (settings.flowChart || settings.sequenceDiagram)\n                {\n                    flowchartTimer = setTimeout(function(){\n                        clearTimeout(flowchartTimer);\n                        _this.flowChartAndSequenceDiagramRender();\n                        flowchartTimer = null;\n                    }, 10);\n                }\n\n                if (state.loaded) \n                {\n                    $.proxy(settings.onchange, this)();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 聚焦光标位置\n         * Focusing the cursor position\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        focus : function() {\n            this.cm.focus();\n\n            return this;\n        },\n        \n        /**\n         * 设置光标的位置\n         * Set cursor position\n         * \n         * @param   {Object}    cursor 要设置的光标位置键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setCursor : function(cursor) {\n            this.cm.setCursor(cursor);\n\n            return this;\n        },\n        \n        /**\n         * 获取当前光标的位置\n         * Get the current position of the cursor\n         * \n         * @returns {Cursor}         返回一个光标Cursor对象\n         */\n        \n        getCursor : function() {\n            return this.cm.getCursor();\n        },\n        \n        /**\n         * 设置光标选中的范围\n         * Set cursor selected ranges\n         * \n         * @param   {Object}    from   开始位置的光标键值对象，例：{line:1, ch:0}\n         * @param   {Object}    to     结束位置的光标键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setSelection : function(from, to) {\n        \n            this.cm.setSelection(from, to);\n        \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本\n         * Get the texts from cursor selected\n         * \n         * @returns {String}         返回选中文本的字符串形式\n         */\n        \n        getSelection : function() {\n            return this.cm.getSelection();\n        },\n        \n        /**\n         * 设置光标选中的文本范围\n         * Set the cursor selection ranges\n         * \n         * @param   {Array}    ranges  cursor selection ranges array\n         * @returns {Array}            return this\n         */\n        \n        setSelections : function(ranges) {\n            this.cm.setSelections(ranges);\n            \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本范围\n         * Get the cursor selection ranges\n         * \n         * @returns {Array}         return selection ranges array\n         */\n        \n        getSelections : function() {\n            return this.cm.getSelections();\n        },\n        \n        /**\n         * 替换当前光标选中的文本或在当前光标处插入新字符\n         * Replace the text at the current cursor selected or insert a new character at the current cursor position\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        replaceSelection : function(value) {\n            this.cm.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 在当前光标处插入新字符\n         * Insert a new character at the current cursor position\n         *\n         * 同replaceSelection()方法\n         * With the replaceSelection() method\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        insertValue : function(value) {\n            this.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 追加markdown\n         * append Markdown to editor\n         * \n         * @param   {String}    md     要追加的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        appendMarkdown : function(md) {\n            var settings = this.settings;\n            var cm       = this.cm;\n            \n            cm.setValue(cm.getValue() + md);\n            \n            return this;\n        },\n        \n        /**\n         * 设置和传入编辑器的markdown源文档\n         * Set Markdown source document\n         * \n         * @param   {String}    md     要传入的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setMarkdown : function(md) {\n            this.cm.setValue(md || this.settings.markdown);\n            \n            return this;\n        },\n        \n        /**\n         * 获取编辑器的markdown源文档\n         * Set Editor.md markdown/CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getMarkdown : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 获取编辑器的源文档\n         * Get CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getValue : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 设置编辑器的源文档\n         * Set CodeMirror value\n         * \n         * @param   {String}     value   set code/value/string/text\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        setValue : function(value) {\n            this.cm.setValue(value);\n            \n            return this;\n        },\n        \n        /**\n         * 清空编辑器\n         * Empty CodeMirror editor container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        clear : function() {\n            this.cm.setValue(\"\");\n            \n            return this;\n        },\n        \n        /**\n         * 获取解析后存放在Textarea的HTML源码\n         * Get parsed html code from Textarea\n         * \n         * @returns {String}               返回HTML源码\n         */\n        \n        getHTML : function() {\n            if (!this.settings.saveHTMLToTextarea)\n            {\n                alert(\"Error: settings.saveHTMLToTextarea == false\");\n\n                return false;\n            }\n            \n            return this.htmlTextarea.val();\n        },\n        \n        /**\n         * getHTML()的别名\n         * getHTML (alias)\n         * \n         * @returns {String}           Return html code 返回HTML源码\n         */\n        \n        getTextareaSavedHTML : function() {\n            return this.getHTML();\n        },\n        \n        /**\n         * 获取预览窗口的HTML源码\n         * Get html from preview container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getPreviewedHTML : function() {\n            if (!this.settings.watch)\n            {\n                alert(\"Error: settings.watch == false\");\n\n                return false;\n            }\n            \n            return this.previewContainer.html();\n        },\n        \n        /**\n         * 开启实时预览\n         * Enable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        watch : function(callback) {     \n            var settings        = this.settings;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) &lt; 0)\n            {\n                return this;\n            }\n            \n            this.state.watching = settings.watch = true;\n            this.preview.show();\n            \n            if (this.toolbar)\n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon        = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.watch);\n                icon.removeClass(unWatchIcon).addClass(watchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"1px solid #ddd\").width(this.editor.width() / 2); \n            \n            timer = 0;\n            \n            this.save().resize();\n            \n            if (!settings.onwatch)\n            {\n                settings.onwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 关闭实时预览\n         * Disable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        unwatch : function(callback) {\n            var settings        = this.settings;\n            this.state.watching = settings.watch = false;\n            this.preview.hide();\n            \n            if (this.toolbar) \n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon    = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.unwatch);\n                icon.removeClass(watchIcon).addClass(unWatchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"none\").width(this.editor.width());\n            \n            this.resize();\n            \n            if (!settings.onunwatch)\n            {\n                settings.onunwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onunwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 显示编辑器\n         * Show editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        show : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.show(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器\n         * Hide editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        hide : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.hide(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器部分，只预览HTML\n         * Enter preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewing : function() {\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) &lt; 0) {\n                return this;\n            }\n            \n            if (settings.toolbar &amp;&amp; toolbar) {\n                toolbar.toggle();\n                toolbar.find(\".fa[name=preview]\").toggleClass(\"active\");\n            }\n            \n            codeMirror.toggle();\n            \n            var escHandle = function(event) {\n                if (event.shiftKey &amp;&amp; event.keyCode === 27) {\n                    _this.previewed();\n                }\n            };\n\n            if (codeMirror.css(\"display\") === \"none\") // 为了兼容Zepto，而不使用codeMirror.is(\":hidden\")\n            {\n                this.state.preview = true;\n\n                if (this.state.fullscreen) {\n                    preview.css(\"background\", \"#fff\");\n                }\n                \n                editor.find(\".\" + this.classPrefix + \"preview-close-btn\").show().bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(){\n                    _this.previewed();\n                });\n            \n                if (!settings.watch)\n                {\n                    this.save();\n                }\n\n                preview.show().css({\n                    position  : \"static\",\n                    top       : 0,\n                    width     : editor.width(),\n                    height    : (settings.autoHeight &amp;&amp; !this.state.fullscreen) ? \"auto\" : editor.height()\n                });\n                \n                if (this.state.loaded)\n                {\n                    $.proxy(settings.onpreviewing, this)();\n                }\n\n                $(window).bind(\"keyup\", escHandle);\n            } \n            else \n            {\n                $(window).unbind(\"keyup\", escHandle);\n                this.previewed();\n            }\n        },\n        \n        /**\n         * 显示编辑器部分，退出只预览HTML\n         * Exit preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewed : function() {\n            \n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var previewCloseBtn  = editor.find(\".\" + this.classPrefix + \"preview-close-btn\");\n\n            this.state.preview   = false;\n            \n            this.codeMirror.show();\n            \n            if (settings.toolbar) {\n                toolbar.show();\n            }\n            \n            preview[(settings.watch) ? \"show\" : \"hide\"]();\n            \n            previewCloseBtn.hide().unbind(editormd.mouseOrTouch(\"click\", \"touchend\"));\n            \n            preview.css({ \n                background : null,\n                position   : \"absolute\",\n                width      : editor.width() / 2,\n                height     : (settings.autoHeight &amp;&amp; !this.state.fullscreen) ? \"auto\" : editor.height() - toolbar.height(),\n                top        : (settings.toolbar)    ? toolbar.height() : 0\n            });\n\n            if (this.state.loaded)\n            {\n                $.proxy(settings.onpreviewed, this)();\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 编辑器全屏显示\n         * Fullscreen show\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreen : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var fullscreenClass  = this.classPrefix + \"fullscreen\";\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().toggleClass(\"active\"); \n            }\n            \n            var escHandle = function(event) {\n                if (!event.shiftKey &amp;&amp; event.keyCode === 27) \n                {\n                    if (state.fullscreen)\n                    {\n                        _this.fullscreenExit();\n                    }\n                }\n            };\n\n            if (!editor.hasClass(fullscreenClass)) \n            {\n                state.fullscreen = true;\n\n                $(\"html,body\").css(\"overflow\", \"hidden\");\n                \n                editor.css({\n                    position : \"fixed\", \n                    top      : 0, \n                    left     : 0, \n                    margin   : 0, \n                    border   : \"none\",\n                    width    : $(window).width(),\n                    height   : $(window).height()\n                }).addClass(fullscreenClass);\n\n                this.resize();\n    \n                $.proxy(settings.onfullscreen, this)();\n\n                $(window).bind(\"keyup\", escHandle);\n            }\n            else\n            {           \n                $(window).unbind(\"keyup\", escHandle); \n                this.fullscreenExit();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 编辑器退出全屏显示\n         * Exit fullscreen state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreenExit : function() {\n            \n            var editor            = this.editor;\n            var settings          = this.settings;\n            var toolbar           = this.toolbar;\n            var fullscreenClass   = this.classPrefix + \"fullscreen\";  \n            \n            this.state.fullscreen = false;\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().removeClass(\"active\"); \n            }\n\n            $(\"html,body\").css(\"overflow\", \"\");\n\n            editor.css({\n                position : \"\", \n                top      : \"\",\n                left     : \"\", \n                margin   : \"0 auto 15px\", \n                width    : editor.data(\"oldWidth\"),\n                height   : editor.data(\"oldHeight\"),\n                border   : \"1px solid #ddd\"\n            }).removeClass(fullscreenClass);\n\n            this.resize();\n            \n            $.proxy(settings.onfullscreenExit, this)();\n\n            return this;\n        },\n        \n        /**\n         * 加载并执行插件\n         * Load and execute the plugin\n         * \n         * @param   {String}     name    plugin name / function name\n         * @param   {String}     path    plugin load path\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        executePlugin : function(name, path) {\n            \n            var _this    = this;\n            var cm       = this.cm;\n            var settings = this.settings;\n            \n            path = settings.pluginPath + path;\n            \n            if (typeof define === \"function\") \n            {            \n                if (typeof this[name] === \"undefined\")\n                {\n                    alert(\"Error: \" + name + \" plugin is not found, you are not load this plugin.\");\n                    \n                    return this;\n                }\n                \n                this[name](cm);\n                \n                return this;\n            }\n            \n            if ($.inArray(path, editormd.loadFiles.plugin) &lt; 0)\n            {\n                editormd.loadPlugin(path, function() {\n                    editormd.loadPlugins[name] = _this[name];\n                    _this[name](cm);\n                });\n            }\n            else\n            {\n                $.proxy(editormd.loadPlugins[name], this)(cm);\n            }\n            \n            return this;\n        },\n                \n        /**\n         * 搜索替换\n         * Search &amp; replace\n         * \n         * @param   {String}     command    CodeMirror serach commands, \"find, fintNext, fintPrev, clearSearch, replace, replaceAll\"\n         * @returns {editormd}              return this\n         */\n        \n        search : function(command) {\n            var settings = this.settings;\n            \n            if (!settings.searchReplace)\n            {\n                alert(\"Error: settings.searchReplace == false\");\n                return this;\n            }\n            \n            if (!settings.readOnly)\n            {\n                this.cm.execCommand(command || \"find\");\n            }\n            \n            return this;\n        },\n        \n        searchReplace : function() {            \n            this.search(\"replace\");\n            \n            return this;\n        },\n        \n        searchReplaceAll : function() {          \n            this.search(\"replaceAll\");\n            \n            return this;\n        }\n    };\n    \n    editormd.fn.init.prototype = editormd.fn; \n   \n    /**\n     * 锁屏\n     * lock screen when dialog opening\n     * \n     * @returns {void}\n     */\n\n    editormd.dialogLockScreen = function() {\n        var settings = this.settings || {dialogLockScreen : true};\n        \n        if (settings.dialogLockScreen) \n        {\n            $(\"html,body\").css(\"overflow\", \"hidden\");\n        }\n    };\n   \n    /**\n     * 显示透明背景层\n     * Display mask layer when dialog opening\n     * \n     * @param   {Object}     dialog    dialog jQuery object\n     * @returns {void}\n     */\n    \n    editormd.dialogShowMask = function(dialog) {\n        var editor   = this.editor;\n        var settings = this.settings || {dialogShowMask : true};\n        \n        dialog.css({\n            top  : ($(window).height() - dialog.height()) / 2 + \"px\",\n            left : ($(window).width()  - dialog.width())  / 2 + \"px\"\n        });\n\n        if (settings.dialogShowMask) {\n            editor.children(\".\" + this.classPrefix + \"mask\").css(\"z-index\", parseInt(dialog.css(\"z-index\")) - 1).show();\n        }\n    };\n\n    editormd.toolbarHandlers = {\n        undo : function() {\n            this.cm.undo();\n        },\n        \n        redo : function() {\n            this.cm.redo();\n        },\n        \n        bold : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"**\" + selection + \"**\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n        \n        del : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"~~\" + selection + \"~~\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        italic : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"*\" + selection + \"*\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        quote : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"> \" + selection);\n            cm.setCursor(cursor.line, (selection === \"\") ? cursor.ch + 2 : cursor.ch + selection.length + 2);\n        },\n        \n        ucfirst : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.firstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        ucwords : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.wordsFirstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        uppercase : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(selection.toUpperCase());\n            cm.setSelections(selections);\n        },\n        \n        lowercase : function() {\n            var cm         = this.cm;\n            var cursor     = cm.getCursor();\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n            \n            cm.replaceSelection(selection.toLowerCase());\n            cm.setSelections(selections);\n        },\n\n        h1 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"# \" + selection);\n        },\n\n        h2 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"## \" + selection);\n        },\n\n        h3 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"### \" + selection);\n        },\n\n        h4 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"#### \" + selection);\n        },\n\n        h5 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"##### \" + selection);\n        },\n\n        h6 : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"###### \" + selection);\n        },\n\n        \"list-ul\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (selection === \"\") \n            {\n                cm.replaceSelection(\"- \" + selection);\n            } \n            else \n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i &lt; len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : \"- \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        \"list-ol\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if(selection === \"\") \n            {\n                cm.replaceSelection(\"1. \" + selection);\n            }\n            else\n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i &lt; len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : (i+1) + \". \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        hr : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"------------\");\n        },\n\n        tex : function() {\n            if (!this.settings.tex)\n            {\n                alert(\"settings.tex === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"$$\" + selection + \"$$\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        link : function() {\n            this.executePlugin(\"linkDialog\", \"link-dialog/link-dialog\");\n        },\n\n        \"reference-link\" : function() {\n            this.executePlugin(\"referenceLinkDialog\", \"reference-link-dialog/reference-link-dialog\");\n        },\n\n        pagebreak : function() {\n            if (!this.settings.pageBreak)\n            {\n                alert(\"settings.pageBreak === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"\\r\\n[========]\\r\\n\");\n        },\n\n        image : function() {\n            this.executePlugin(\"imageDialog\", \"image-dialog/image-dialog\");\n        },\n        \n        code : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"`\" + selection + \"`\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        \"code-block\" : function() {\n            this.executePlugin(\"codeBlockDialog\", \"code-block-dialog/code-block-dialog\");            \n        },\n\n        \"preformatted-text\" : function() {\n            this.executePlugin(\"preformattedTextDialog\", \"preformatted-text-dialog/preformatted-text-dialog\");\n        },\n        \n        table : function() {\n            this.executePlugin(\"tableDialog\", \"table-dialog/table-dialog\");         \n        },\n        \n        datetime : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n            var date      = new Date();\n            var langName  = this.settings.lang.name;\n            var datefmt   = editormd.dateFormat() + \" \" + editormd.dateFormat((langName === \"zh-cn\" || langName === \"zh-tw\") ? \"cn-week-day\" : \"week-day\");\n\n            cm.replaceSelection(datefmt);\n        },\n        \n        emoji : function() {\n            this.executePlugin(\"emojiDialog\", \"emoji-dialog/emoji-dialog\");\n        },\n                \n        \"html-entities\" : function() {\n            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\");\n        },\n                \n        \"goto-line\" : function() {\n            this.executePlugin(\"gotoLineDialog\", \"goto-line-dialog/goto-line-dialog\");\n        },\n\n        watch : function() {    \n            this[this.settings.watch ? \"unwatch\" : \"watch\"]();\n        },\n\n        preview : function() {\n            this.previewing();\n        },\n\n        fullscreen : function() {\n            this.fullscreen();\n        },\n\n        clear : function() {\n            this.clear();\n        },\n        \n        search : function() {\n            this.search();\n        },\n\n        help : function() {\n            this.executePlugin(\"helpDialog\", \"help-dialog/help-dialog\");\n        },\n\n        info : function() {\n            this.showInfoDialog();\n        }\n    };\n    \n    editormd.keyMaps = {\n        \"Ctrl-1\"       : \"h1\",\n        \"Ctrl-2\"       : \"h2\",\n        \"Ctrl-3\"       : \"h3\",\n        \"Ctrl-4\"       : \"h4\",\n        \"Ctrl-5\"       : \"h5\",\n        \"Ctrl-6\"       : \"h6\",\n        \"Ctrl-B\"       : \"bold\",  // if this is string ==  editormd.toolbarHandlers.xxxx\n        \"Ctrl-D\"       : \"datetime\",\n        \n        \"Ctrl-E\"       : function() { // emoji\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.emoji)\n            {\n                alert(\"Error: settings.emoji == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\":\" + selection + \":\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-Alt-G\"   : \"goto-line\",\n        \"Ctrl-H\"       : \"hr\",\n        \"Ctrl-I\"       : \"italic\",\n        \"Ctrl-K\"       : \"code\",\n        \n        \"Ctrl-L\"        : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"[\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-U\"         : \"list-ul\",\n        \n        \"Shift-Ctrl-A\"   : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.atLink)\n            {\n                alert(\"Error: settings.atLink == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\"@\" + selection);\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \n        \"Shift-Ctrl-C\"     : \"code\",\n        \"Shift-Ctrl-Q\"     : \"quote\",\n        \"Shift-Ctrl-S\"     : \"del\",\n        \"Shift-Ctrl-K\"     : \"tex\",  // KaTeX\n        \n        \"Shift-Alt-C\"      : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            cm.replaceSelection([\"```\", selection, \"```\"].join(\"\\n\"));\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            } \n        },\n        \n        \"Shift-Ctrl-Alt-C\" : \"code-block\",\n        \"Shift-Ctrl-H\"     : \"html-entities\",\n        \"Shift-Alt-H\"      : \"help\",\n        \"Shift-Ctrl-E\"     : \"emoji\",\n        \"Shift-Ctrl-U\"     : \"uppercase\",\n        \"Shift-Alt-U\"      : \"ucwords\",\n        \"Shift-Ctrl-Alt-U\" : \"ucfirst\",\n        \"Shift-Alt-L\"      : \"lowercase\",\n        \n        \"Shift-Ctrl-I\"     : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"![\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n        },\n        \n        \"Shift-Ctrl-Alt-I\" : \"image\",\n        \"Shift-Ctrl-L\"     : \"link\",\n        \"Shift-Ctrl-O\"     : \"list-ol\",\n        \"Shift-Ctrl-P\"     : \"preformatted-text\",\n        \"Shift-Ctrl-T\"     : \"table\",\n        \"Shift-Alt-P\"      : \"pagebreak\",\n        \"F9\"               : \"watch\",\n        \"F10\"              : \"preview\",\n        \"F11\"              : \"fullscreen\",\n    };\n    \n    /**\n     * 清除字符串两边的空格\n     * Clear the space of strings both sides.\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   trimed string    \n     */\n    \n    var trim = function(str) {\n        return (!String.prototype.trim) ? str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\") : str.trim();\n    };\n    \n    editormd.trim = trim;\n    \n    /**\n     * 所有单词首字母大写\n     * Words first to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var ucwords = function (str) {\n        return str.toLowerCase().replace(/\\b(\\w)|\\s(\\w)/g, function($1) {  \n            return $1.toUpperCase();\n        });\n    };\n    \n    editormd.ucwords = editormd.wordsFirstUpperCase = ucwords;\n    \n    /**\n     * 字符串首字母大写\n     * Only string first char to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var firstUpperCase = function(str) {        \n        return str.toLowerCase().replace(/\\b(\\w)/, function($1){\n            return $1.toUpperCase();\n        });\n    };\n    \n    var ucfirst = firstUpperCase;\n    \n    editormd.firstUpperCase = editormd.ucfirst = firstUpperCase;\n    \n    editormd.urls = {\n        atLinkBase : \"https://github.com/\"\n    };\n    \n    editormd.regexs = {\n        atLink        : /@(\\w+)/g,\n        email         : /(\\w+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emailLink     : /(mailto:)?([\\w\\.\\_]+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emoji         : /:([\\w\\+-]+):/g,\n        emojiDatetime : /(\\d{2}:\\d{2}:\\d{2})/g,\n        twemoji       : /:(tw-([\\w]+)-?(\\w+)?):/g,\n        fontAwesome   : /:(fa-([\\w]+)(-(\\w+)){0,}):/g,\n        editormdLogo  : /:(editormd-logo-?(\\w+)?):/g,\n        pageBreak     : /^\\[[=]{8,}\\]$/\n    };\n\n    // Emoji graphics files url path\n    editormd.emoji     = {\n        path  : \"http://www.emoji-cheat-sheet.com/graphics/emojis/\",\n        ext   : \".png\"\n    };\n\n    // Twitter Emoji (Twemoji)  graphics files url path    \n    editormd.twemoji = {\n        path : \"http://twemoji.maxcdn.com/36x36/\",\n        ext  : \".png\"\n    };\n\n    /**\n     * 自定义marked的解析器\n     * Custom Marked renderer rules\n     * \n     * @param   {Array}    markdownToC     传入用于接收TOC的数组\n     * @returns {Renderer} markedRenderer  返回marked的Renderer自定义对象\n     */\n\n    editormd.markedRenderer = function(markdownToC, options) {\n        var defaults = {\n            toc                  : true,           // Table of contents\n            tocm                 : false,\n            tocStartLevel        : 1,              // Said from H1 to create ToC  \n            pageBreak            : true,\n            atLink               : true,           // for @link\n            emailLink            : true,           // for mail address auto link\n            taskList             : false,          // Enable Github Flavored Markdown task lists\n            emoji                : false,          // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis.\n            tex                  : false,          // TeX(LaTeX), based on KaTeX\n            flowChart            : false,          // flowChart.js only support IE9+\n            sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        };\n        \n        var settings        = $.extend(defaults, options || {});    \n        var marked          = editormd.$marked;\n        var markedRenderer  = new marked.Renderer();\n        markdownToC         = markdownToC || [];        \n            \n        var regexs          = editormd.regexs;\n        var atLinkReg       = regexs.atLink;\n        var emojiReg        = regexs.emoji;\n        var emailReg        = regexs.email;\n        var emailLinkReg    = regexs.emailLink;\n        var twemojiReg      = regexs.twemoji;\n        var faIconReg       = regexs.fontAwesome;\n        var editormdLogoReg = regexs.editormdLogo;\n        var pageBreakReg    = regexs.pageBreak;\n\n        markedRenderer.emoji = function(text) {\n            \n            text = text.replace(editormd.regexs.emojiDatetime, function($1) {           \n                return $1.replace(/:/g, \"&amp;#58;\");\n            });\n            \n            var matchs = text.match(emojiReg);\n\n            if (!matchs || !settings.emoji) {\n                return text;\n            }\n\n            for (var i = 0, len = matchs.length; i &lt; len; i++)\n            {            \n                if (matchs[i] === \":+1:\") {\n                    matchs[i] = \":\\\\+1:\";\n                }\n\n                text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                    var faMatchs = $1.match(faIconReg);\n                    var name     = $1.replace(/:/g, \"\");\n\n                    if (faMatchs)\n                    {                        \n                        for (var fa = 0, len1 = faMatchs.length; fa &lt; len1; fa++)\n                        {\n                            var faName = faMatchs[fa].replace(/:/g, \"\");\n                            \n                            return \"&lt;i class=\\\"fa \" + faName + \" fa-emoji\\\" title=\\\"\" + faName.replace(\"fa-\", \"\") + \"\\\">&lt;/i>\";\n                        }\n                    }\n                    else\n                    {\n                        var emdlogoMathcs = $1.match(editormdLogoReg);\n                        var twemojiMatchs = $1.match(twemojiReg);\n\n                        if (emdlogoMathcs)                                        \n                        {                            \n                            for (var x = 0, len2 = emdlogoMathcs.length; x &lt; len2; x++)\n                            {\n                                var logoName = emdlogoMathcs[x].replace(/:/g, \"\");\n                                return \"&lt;i class=\\\"\" + logoName + \"\\\" title=\\\"Editor.md logo (\" + logoName + \")\\\">&lt;/i>\";\n                            }\n                        }\n                        else if (twemojiMatchs) \n                        {\n                            for (var t = 0, len3 = twemojiMatchs.length; t &lt; len3; t++)\n                            {\n                                var twe = twemojiMatchs[t].replace(/:/g, \"\").replace(\"tw-\", \"\");\n                                return \"&lt;img src=\\\"\" + editormd.twemoji.path + twe + editormd.twemoji.ext + \"\\\" title=\\\"twemoji-\" + twe + \"\\\" alt=\\\"twemoji-\" + twe + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                            }\n                        }\n                        else\n                        {\n                            var src = (name === \"+1\") ? \"plus1\" : name;\n                            src     = (src === \"black_large_square\") ? \"black_square\" : src;\n\n                            return \"&lt;img src=\\\"\" + editormd.emoji.path + src + editormd.emoji.ext + \"\\\" class=\\\"emoji\\\" title=\\\"&amp;#58;\" + name + \"&amp;#58;\\\" alt=\\\"&amp;#58;\" + name + \"&amp;#58;\\\" />\";\n                        }\n                    }\n                });\n            }\n\n            return text;\n        };\n\n        markedRenderer.atLink = function(text) {\n\n            if (atLinkReg.test(text))\n            { \n                if (settings.atLink) \n                {\n                    text = text.replace(emailReg, function($1, $2, $3, $4) {\n                        return $1.replace(/@/g, \"_#_&amp;#64;_#_\");\n                    });\n\n                    text = text.replace(atLinkReg, function($1, $2) {\n                        return \"&lt;a href=\\\"\" + editormd.urls.atLinkBase + \"\" + $2 + \"\\\" title=\\\"&amp;#64;\" + $2 + \"\\\" class=\\\"at-link\\\">\" + $1 + \"&lt;/a>\";\n                    }).replace(/_#_&amp;#64;_#_/g, \"@\");\n                }\n                \n                if (settings.emailLink)\n                {\n                    text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) {\n                        return (!$2 &amp;&amp; $.inArray($5, \"jpg|jpeg|png|gif|webp|ico|icon|pdf\".split(\"|\")) &lt; 0) ? \"&lt;a href=\\\"mailto:\" + $1 + \"\\\">\"+$1+\"&lt;/a>\" : $1;\n                    });\n                }\n\n                return text;\n            }\n\n            return text;\n        };\n                \n        markedRenderer.link = function (href, title, text) {\n\n            if (this.options.sanitize) {\n                try {\n                    var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase();\n                } catch(e) {\n                    return \"\";\n                }\n\n                if (prot.indexOf(\"javascript:\") === 0) {\n                    return \"\";\n                }\n            }\n\n            var out = \"&lt;a href=\\\"\" + href + \"\\\"\";\n            \n            if (atLinkReg.test(title) || atLinkReg.test(text))\n            {\n                if (title)\n                {\n                    out += \" title=\\\"\" + title.replace(/@/g, \"&amp;#64;\");\n                }\n                \n                return out + \"\\\">\" + text.replace(/@/g, \"&amp;#64;\") + \"&lt;/a>\";\n            }\n\n            if (title) {\n                out += \" title=\\\"\" + title + \"\\\"\";\n            }\n\n            out += \">\" + text + \"&lt;/a>\";\n\n            return out;\n        };\n        \n        markedRenderer.heading = function(text, level, raw) {\n                    \n            var linkText       = text;\n            var hasLinkReg     = /\\s*\\&lt;a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\&lt;\\/a\\>\\s*/;\n            var getLinkTextReg = /\\s*\\&lt;a\\s*([^\\>]+)\\>([^\\>]*)\\&lt;\\/a\\>\\s*/g;\n\n            if (hasLinkReg.test(text)) \n            {\n                var tempText = [];\n                text         = text.split(/\\&lt;a\\s*([^\\>]+)\\>([^\\>]*)\\&lt;\\/a\\>/);\n\n                for (var i = 0, len = text.length; i &lt; len; i++)\n                {\n                    tempText.push(text[i].replace(/\\s*href\\=\\\"(.*)\\\"\\s*/g, \"\"));\n                }\n\n                text = tempText.join(\" \");\n            }\n            \n            text = trim(text);\n            \n            var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n            var toc = {\n                text  : text,\n                level : level,\n                slug  : escapedText\n            };\n            \n            var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n            var id        = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n            markdownToC.push(toc);\n            \n            var headingHTML = \"&lt;h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n            \n            headingHTML    += \"&lt;a name=\\\"\" + text + \"\\\" class=\\\"reference-link\\\">&lt;/a>\";\n            headingHTML    += \"&lt;span class=\\\"header-link octicon octicon-link\\\">&lt;/span>\";\n            headingHTML    += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text));\n            headingHTML    += \"&lt;/h\" + level + \">\";\n\n            return headingHTML;\n        };\n        \n        markedRenderer.pageBreak = function(text) {\n            if (pageBreakReg.test(text) &amp;&amp; settings.pageBreak)\n            {\n                text = \"&lt;hr style=\\\"page-break-after:always;\\\" class=\\\"page-break editormd-page-break\\\" />\";\n            }\n            \n            return text;\n        };\n\n        markedRenderer.paragraph = function(text) {\n            var isTeXInline     = /\\$\\$(.*)\\$\\$/g.test(text);\n            var isTeXLine       = /^\\$\\$(.*)\\$\\$$/.test(text);\n            var isTeXAddClass   = (isTeXLine)     ? \" class=\\\"\" + editormd.classNames.tex + \"\\\"\" : \"\";\n            var isToC           = (settings.tocm) ? /^(\\[TOC\\]|\\[TOCM\\])$/.test(text) : /^\\[TOC\\]$/.test(text);\n            var isToCMenu       = /^\\[TOCM\\]$/.test(text);\n            \n            if (!isTeXLine &amp;&amp; isTeXInline) \n            {\n                text = text.replace(/(\\$\\$([^\\$]*)\\$\\$)+/g, function($1, $2) {\n                    return \"&lt;span class=\\\"\" + editormd.classNames.tex + \"\\\">\" + $2.replace(/\\$/g, \"\") + \"&lt;/span>\";\n                });\n            } \n            else \n            {\n                text = (isTeXLine) ? text.replace(/\\$/g, \"\") : text;\n            }\n            \n            var tocHTML = \"&lt;div class=\\\"markdown-toc editormd-markdown-toc\\\">\" + text + \"&lt;/div>\";\n            \n            return (isToC) ? ( (isToCMenu) ? \"&lt;div class=\\\"editormd-toc-menu\\\">\" + tocHTML + \"&lt;/div>&lt;br/>\" : tocHTML )\n                           : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : \"&lt;p\" + isTeXAddClass + \">\" + this.atLink(this.emoji(text)) + \"&lt;/p>\\n\" );\n        };\n\n        markedRenderer.code = function (code, lang, escaped) { \n\n            if (lang === \"seq\" || lang === \"sequence\")\n            {\n                return \"&lt;div class=\\\"sequence-diagram\\\">\" + code + \"&lt;/div>\";\n            } \n            else if ( lang === \"flow\")\n            {\n                return \"&lt;div class=\\\"flowchart\\\">\" + code + \"&lt;/div>\";\n            } \n            else \n            {\n\n                return marked.Renderer.prototype.code.apply(this, arguments);\n            }\n        };\n\n        markedRenderer.tablecell = function(content, flags) {\n            var type = (flags.header) ? \"th\" : \"td\";\n            var tag  = (flags.align)  ? \"&lt;\" + type +\" style=\\\"text-align:\" + flags.align + \"\\\">\" : \"&lt;\" + type + \">\";\n            \n            return tag + this.atLink(this.emoji(content)) + \"&lt;/\" + type + \">\\n\";\n        };\n\n        markedRenderer.listitem = function(text) {\n            if (settings.taskList &amp;&amp; /^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n            {\n                text = text.replace(/^\\s*\\[\\s\\]\\s*/, \"&lt;input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" /> \")\n                           .replace(/^\\s*\\[x\\]\\s*/,  \"&lt;input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" checked disabled /> \");\n\n                return \"&lt;li style=\\\"list-style: none;\\\">\" + this.atLink(this.emoji(text)) + \"&lt;/li>\";\n            }\n            else \n            {\n                return \"&lt;li>\" + this.atLink(this.emoji(text)) + \"&lt;/li>\";\n            }\n        };\n        \n        return markedRenderer;\n    };\n    \n    /**\n     *\n     * 生成TOC(Table of Contents)\n     * Creating ToC (Table of Contents)\n     * \n     * @param   {Array}    toc             从marked获取的TOC数组列表\n     * @param   {Element}  container       插入TOC的容器元素\n     * @param   {Integer}  startLevel      Hx 起始层级\n     * @returns {Object}   tocContainer    返回ToC列表容器层的jQuery对象元素\n     */\n    \n    editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) {\n        \n        var html        = \"\";    \n        var lastLevel   = 0;\n        var classPrefix = this.classPrefix;\n        \n        startLevel      = startLevel  || 1;\n        \n        for (var i = 0, len = toc.length; i &lt; len; i++) \n        {\n            var text  = toc[i].text;\n            var level = toc[i].level;\n            \n            if (level &lt; startLevel) {\n                continue;\n            }\n            \n            if (level > lastLevel) \n            {\n                html += \"\";\n            }\n            else if (level &lt; lastLevel) \n            {\n                html += (new Array(lastLevel - level + 2)).join(\"&lt;/ul>&lt;/li>\");\n            } \n            else \n            {\n                html += \"&lt;/ul>&lt;/li>\";\n            }\n\n            html += \"&lt;li>&lt;a class=\\\"toc-level-\" + level + \"\\\" href=\\\"#\" + text + \"\\\" level=\\\"\" + level + \"\\\">\" + text + \"&lt;/a>&lt;ul>\";\n            lastLevel = level;\n        }\n        \n        var tocContainer = container.find(\".markdown-toc\");\n        \n        if (tocContainer.length &lt; 1 &amp;&amp; container.attr(\"previewContainer\") === \"false\")\n        {\n            var tocHTML = \"&lt;div class=\\\"markdown-toc \" + classPrefix + \"markdown-toc\\\">&lt;/div>\";\n            \n            tocHTML = (tocDropdown) ? \"&lt;div class=\\\"\" + classPrefix + \"toc-menu\\\">\" + tocHTML + \"&lt;/div>\" : tocHTML;\n            \n            container.html(tocHTML);\n            \n            tocContainer = container.find(\".markdown-toc\");\n        }\n        \n        if (tocDropdown)\n        {\n            tocContainer.wrap(\"&lt;div class=\\\"\" + classPrefix + \"toc-menu\\\">&lt;/div>&lt;br/>\");\n        }\n        \n        tocContainer.html(\"&lt;ul class=\\\"markdown-toc-list\\\">&lt;/ul>\").children(\".markdown-toc-list\").html(html.replace(/\\r?\\n?\\&lt;ul\\>\\&lt;\\/ul\\>/g, \"\"));\n        \n        return tocContainer;\n    };\n    \n    /**\n     *\n     * 生成TOC下拉菜单\n     * Creating ToC dropdown menu\n     * \n     * @param   {Object}   container       插入TOC的容器jQuery对象元素\n     * @param   {String}   tocTitle        ToC title\n     * @returns {Object}                   return toc-menu object\n     */\n    \n    editormd.tocDropdownMenu = function(container, tocTitle) {\n        \n        tocTitle      = tocTitle || \"Table of Contents\";\n        \n        var zindex    = 400;\n        var tocMenus  = container.find(\".\" + this.classPrefix + \"toc-menu\");\n\n        tocMenus.each(function() {\n            var $this  = $(this);\n            var toc    = $this.children(\".markdown-toc\");\n            var icon   = \"&lt;i class=\\\"fa fa-angle-down\\\">&lt;/i>\";\n            var btn    = \"&lt;a href=\\\"javascript:;\\\" class=\\\"toc-menu-btn\\\">\" + icon + tocTitle + \"&lt;/a>\";\n            var menu   = toc.children(\"ul\");            \n            var list   = menu.find(\"li\");\n            \n            toc.append(btn);\n            \n            list.first().before(\"&lt;li>&lt;h1>\" + tocTitle + \" \" + icon + \"&lt;/h1>&lt;/li>\");\n            \n            $this.mouseover(function(){\n                menu.show();\n\n                list.each(function(){\n                    var li = $(this);\n                    var ul = li.children(\"ul\");\n\n                    if (ul.html() === \"\")\n                    {\n                        ul.remove();\n                    }\n\n                    if (ul.length > 0 &amp;&amp; ul.html() !== \"\")\n                    {\n                        var firstA = li.children(\"a\").first();\n\n                        if (firstA.children(\".fa\").length &lt; 1)\n                        {\n                            firstA.append( $(icon).css({ float:\"right\", paddingTop:\"4px\" }) );\n                        }\n                    }\n\n                    li.mouseover(function(){\n                        ul.css(\"z-index\", zindex).show();\n                        zindex += 1;\n                    }).mouseleave(function(){\n                        ul.hide();\n                    });\n                });\n            }).mouseleave(function(){\n                menu.hide();\n            }); \n        });       \n        \n        return tocMenus;\n    };\n    \n    /**\n     * 简单地过滤指定的HTML标签\n     * Filter custom html tags\n     * \n     * @param   {String}   html          要过滤HTML\n     * @param   {String}   filters       要过滤的标签\n     * @returns {String}   html          返回过滤的HTML\n     */\n    \n    editormd.filterHTMLTags = function(html, filters) {\n        \n        if (typeof html !== \"string\") {\n            html = new String(html);\n        }\n            \n        if (typeof filters !== \"string\") {\n            return html;\n        }\n\n        var expression = filters.split(\"|\");\n        var filterTags = expression[0].split(\",\");\n        var attrs      = expression[1];\n\n        for (var i = 0, len = filterTags.length; i &lt; len; i++)\n        {\n            var tag = filterTags[i];\n\n            html = html.replace(new RegExp(\"\\&lt;\\s*\" + tag + \"\\s*([^\\>]*)\\>([^\\>]*)\\&lt;\\s*\\/\" + tag + \"\\s*\\>\", \"igm\"), \"\");\n        }\n\n        if (typeof attrs !== \"undefined\")\n        {\n            var htmlTagRegex = /\\&lt;(\\w+)\\s*([^\\>]*)\\>([^\\>]*)\\&lt;\\/(\\w+)\\>/ig;\n\n            if (attrs === \"*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    return \"&lt;\" + $2 + \">\" + $4 + \"&lt;/\" + $5 + \">\";\n                });         \n            }\n            else if (attrs === \"on*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    var el = $(\"&lt;\" + $2 + \">\" + $4 + \"&lt;/\" + $5 + \">\");\n                    var _attrs = $($1)[0].attributes;\n                    var $attrs = {};\n                    \n                    $.each(_attrs, function(i, e) {\n                        $attrs[e.nodeName] = e.nodeValue;\n                    });\n                    \n                    $.each($attrs, function(i) {                \n                        if (i.indexOf(\"on\") === 0) {\n                            delete $attrs[i];\n                        }\n                    });\n                    \n                    el.attr($attrs);\n\n                    return el[0].outerHTML;\n                });\n            }\n            else\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4) {\n                    var filterAttrs = attrs.split(\",\");\n                    var el = $($1);\n                    el.html($4);\n\n                    $.each(filterAttrs, function(i) {\n                        el.attr(filterAttrs[i], null);\n                    });\n\n                    return el[0].outerHTML;\n                });\n            }\n        }\n        \n        return html;\n    };\n    \n    /**\n     * 将Markdown文档解析为HTML用于前台显示\n     * Parse Markdown to HTML for Font-end preview.\n     * \n     * @param   {String}   id            用于显示HTML的对象ID\n     * @param   {Object}   [options={}]  配置选项，可选\n     * @returns {Object}   div           返回jQuery对象元素\n     */\n    \n    editormd.markdownToHTML = function(id, options) {\n        var defaults = {\n            gfm                  : true,\n            toc                  : true,\n            tocm                 : false,\n            tocStartLevel        : 1,\n            tocTitle             : \"目录\",\n            tocDropdown          : false,\n            markdown             : \"\",\n            htmlDecode           : false,\n            autoLoadKaTeX        : true,\n            pageBreak            : true,\n            atLink               : true,    // for @link\n            emailLink            : true,    // for mail address auto link\n            tex                  : false,\n            taskList             : false,   // Github Flavored Markdown task lists\n            emoji                : false,\n            flowChart            : false,\n            sequenceDiagram      : false,\n            previewCodeHighlight : true\n        };\n        \n        editormd.$marked  = marked;\n\n        var div           = $(\"#\" + id);\n        var settings      = div.settings = $.extend(true, defaults, options || {});\n        var saveTo        = div.find(\"textarea\");\n        \n        if (saveTo.length &lt; 1)\n        {\n            div.append(\"&lt;textarea>&lt;/textarea>\");\n            saveTo        = div.find(\"textarea\");\n        }        \n        \n        var markdownDoc   = (settings.markdown === \"\") ? saveTo.val() : settings.markdown; \n        var markdownToC   = [];\n\n        var rendererOptions = {  \n            toc                  : settings.toc,\n            tocm                 : settings.tocm,\n            tocStartLevel        : settings.tocStartLevel,\n            taskList             : settings.taskList,\n            emoji                : settings.emoji,\n            tex                  : settings.tex,\n            pageBreak            : settings.pageBreak,\n            atLink               : settings.atLink,           // for @link\n            emailLink            : settings.emailLink,        // for mail address auto link\n            flowChart            : settings.flowChart,\n            sequenceDiagram      : settings.sequenceDiagram,\n            previewCodeHighlight : settings.previewCodeHighlight,\n        };\n\n        var markedOptions = {\n            renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n            gfm         : settings.gfm,\n            tables      : true,\n            breaks      : true,\n            pedantic    : false,\n            sanitize    : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签，即是否开启HTML标签解析，为了安全性，默认不开启\n            smartLists  : true,\n            smartypants : true\n        };\n        \n\t\tmarkdownDoc = new String(markdownDoc);\n        markdownDoc = editormd.filterHTMLTags(markdownDoc, settings.htmlDecode);\n        \n        var markdownParsed = marked(markdownDoc, markedOptions);\n        \n        saveTo.val(markdownDoc);\n        \n        div.addClass(\"markdown-body \" + this.classPrefix + \"html-preview\").append(markdownParsed);\n         \n        if (settings.toc) \n        {\n            div.tocContainer = this.markdownToCRenderer(markdownToC, div, settings.tocDropdown, settings.tocStartLevel);\n            \n            if (settings.tocDropdown || div.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n            {\n                this.tocDropdownMenu(div, settings.tocTitle);\n            }\n        }\n            \n        if (settings.previewCodeHighlight) \n        {\n            div.find(\"pre\").addClass(\"prettyprint linenums\");\n            prettyPrint();\n        }\n        \n        if (!editormd.isIE8) \n        {\n            if (settings.flowChart) {\n                div.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                div.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n        }\n\n        if (settings.tex)\n        {\n            var katexHandle = function() {\n                div.find(\".\" + editormd.classNames.tex).each(function(){\n                    var tex  = $(this);\n                    katex.render(tex.html().replace(/&amp;lt;/g, \"&lt;\").replace(/&amp;gt;/g, \">\"), tex[0]);\n                });\n            };\n            \n            if (settings.autoLoadKaTeX &amp;&amp; !editormd.$katex &amp;&amp; !editormd.kaTeXLoaded)\n            {\n                this.loadKaTeX(function() {\n                    editormd.$katex      = katex;\n                    editormd.kaTeXLoaded = true;\n                    katexHandle();\n                });\n            }\n            else\n            {\n                katexHandle();\n            }\n        }\n        \n        div.getMarkdown = function() {            \n            return saveTo.val();\n        };\n        \n        return div;\n    };\n    \n    editormd.themes = [\n        \"default\", \"3024-day\", \"3024-night\",\n        \"ambiance\", \"ambiance-mobile\",\n        \"base16-dark\", \"base16-light\", \"blackboard\",\n        \"cobalt\",\n        \"eclipse\", \"elegant\", \"erlang-dark\",\n        \"lesser-dark\",\n        \"mbo\", \"mdn-like\", \"midnight\", \"monokai\",\n        \"neat\", \"neo\", \"night\",\n        \"paraiso-dark\", \"paraiso-light\", \"pastel-on-dark\",\n        \"rubyblue\",\n        \"solarized\",\n        \"the-matrix\", \"tomorrow-night-eighties\", \"twilight\",\n        \"vibrant-ink\",\n        \"xq-dark\", \"xq-light\"\n    ];\n\n    editormd.loadPlugins = {};\n    \n    editormd.loadFiles = {\n        js     : [],\n        css    : [],\n        plugin : []\n    };\n    \n    /**\n     * 动态加载Editor.md插件，但不立即执行\n     * Load editor.md plugins\n     * \n     * @param {String}   fileName              插件文件路径\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadPlugin = function(fileName, callback, into) {\n        callback   = callback || function() {};\n        \n        this.loadScript(fileName, function() {\n            editormd.loadFiles.plugin.push(fileName);\n            callback();\n        }, into);\n    };\n    \n    /**\n     * 动态加载CSS文件的方法\n     * Load css file method\n     * \n     * @param {String}   fileName              CSS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadCSS   = function(fileName, callback, into) {\n        into       = into     || \"head\";        \n        callback   = callback || function() {};\n        \n        var css    = document.createElement(\"link\");\n        css.type   = \"text/css\";\n        css.rel    = \"stylesheet\";\n        css.onload = css.onreadystatechange = function() {\n            editormd.loadFiles.css.push(fileName);\n            callback();\n        };\n\n        css.href   = fileName + \".css\";\n\n        if(into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(css);\n        } else {\n            document.body.appendChild(css);\n        }\n    };\n    \n    editormd.isIE    = (navigator.appName == \"Microsoft Internet Explorer\");\n    editormd.isIE8   = (editormd.isIE &amp;&amp; navigator.appVersion.match(/8./i) == \"8.\");\n\n    /**\n     * 动态加载JS文件的方法\n     * Load javascript file method\n     * \n     * @param {String}   fileName              JS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n\n    editormd.loadScript = function(fileName, callback, into) {\n        \n        into          = into     || \"head\";\n        callback      = callback || function() {};\n        \n        var script    = null; \n        script        = document.createElement(\"script\");\n        script.id     = fileName.replace(/[\\./]+/g, \"-\");\n        script.type   = \"text/javascript\";        \n        script.src    = fileName + \".js\";\n        \n        if (editormd.isIE8) \n        {            \n            script.onreadystatechange = function() {\n                if(script.readyState) \n                {\n                    if (script.readyState === \"loaded\" || script.readyState === \"complete\") \n                    {\n                        script.onreadystatechange = null; \n                        editormd.loadFiles.js.push(fileName);\n                        callback();\n                    }\n                } \n            };\n        }\n        else\n        {\n            script.onload = function() {\n                editormd.loadFiles.js.push(fileName);\n                callback();\n            };\n        }\n\n        if (into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(script);\n        } else {\n            document.body.appendChild(script);\n        }\n    };\n    \n    // 使用国外的CDN，加载速度有时会很慢，或者自定义URL\n    // You can custom KaTeX load url.\n    editormd.katexURL  = {\n        css : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\",\n        js  : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\"\n    };\n    \n    editormd.kaTeXLoaded = false;\n    \n    /**\n     * 加载KaTeX文件\n     * load KaTeX files\n     * \n     * @param {Function} [callback=function()]  加载成功后执行的回调函数\n     */\n    \n    editormd.loadKaTeX = function (callback) {\n        editormd.loadCSS(editormd.katexURL.css, function(){\n            editormd.loadScript(editormd.katexURL.js, callback || function(){});\n        });\n    };\n        \n    /**\n     * 锁屏\n     * lock screen\n     * \n     * @param   {Boolean}   lock   Boolean 布尔值，是否锁屏\n     * @returns {void}\n     */\n    \n    editormd.lockScreen = function(lock) {\n        $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n    };\n        \n    /**\n     * 动态创建对话框\n     * Creating custom dialogs\n     * \n     * @param   {Object} options 配置项键值对 Key/Value\n     * @returns {dialog} 返回创建的dialog的jQuery实例对象\n     */\n\n    editormd.createDialog = function(options) {\n        var defaults = {\n            name : \"\",\n            width : 420,\n            height: 240,\n            title : \"\",\n            drag  : true,\n            closed : true,\n            content : \"\",\n            mask : true,\n            maskStyle : {\n                backgroundColor : \"#fff\",\n                opacity : 0.1\n            },\n            lockScreen : true,\n            footer : true,\n            buttons : false\n        };\n\n        options          = $.extend(true, defaults, options);\n\n        var editor       = this.editor;\n        var classPrefix  = editormd.classPrefix;\n        var guid         = (new Date()).getTime();\n        var dialogName   = ( (options.name === \"\") ? classPrefix + \"dialog-\" + guid : options.name);\n        var mouseOrTouch = editormd.mouseOrTouch;\n\n        var html         = \"&lt;div class=\\\"\" + classPrefix + \"dialog \" + dialogName + \"\\\">\";\n\n        if (options.title !== \"\")\n        {\n            html += \"&lt;div class=\\\"\" + classPrefix + \"dialog-header\\\"\" + ( (options.drag) ? \" style=\\\"cursor: move;\\\"\" : \"\" ) + \">\";\n            html += \"&lt;strong class=\\\"\" + classPrefix + \"dialog-title\\\">\" + options.title + \"&lt;/strong>\";\n            html += \"&lt;/div>\";\n        }\n\n        if (options.closed)\n        {\n            html += \"&lt;a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\">&lt;/a>\";\n        }\n\n        html += \"&lt;div class=\\\"\" + classPrefix + \"dialog-container\\\">\" + options.content;                    \n\n        if (options.footer || typeof options.footer === \"string\") \n        {\n            html += \"&lt;div class=\\\"\" + classPrefix + \"dialog-footer\\\">\" + ( (typeof options.footer === \"boolean\") ? \"\" : options.footer) + \"&lt;/div>\";\n        }\n\n        html += \"&lt;/div>\";\n\n        html += \"&lt;div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-bg\\\">&lt;/div>\";\n        html += \"&lt;div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-con\\\">&lt;/div>\";\n        html += \"&lt;/div>\";\n\n        editor.append(html);\n\n        var dialog = editor.find(\".\" + dialogName);\n\n        dialog.lockScreen = function(lock) {\n            if (options.lockScreen)\n            {                \n                $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n            }\n\n            return dialog;\n        };\n\n        dialog.showMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").css(options.maskStyle).css(\"z-index\", editormd.dialogZindex - 1).show();\n            }\n            return dialog;\n        };\n\n        dialog.hideMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").hide();\n            }\n\n            return dialog;\n        };\n\n        dialog.loading = function(show) {                        \n            var loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n            loading[(show) ? \"show\" : \"hide\"]();\n\n            return dialog;\n        };\n\n        dialog.lockScreen(true).showMask();\n\n        dialog.show().css({\n            zIndex : editormd.dialogZindex,\n            border : (editormd.isIE8) ? \"1px solid #ddd\" : \"\",\n            width  : (typeof options.width  === \"number\") ? options.width + \"px\"  : options.width,\n            height : (typeof options.height === \"number\") ? options.height + \"px\" : options.height\n        });\n\n        var dialogPosition = function(){\n            dialog.css({\n                top    : ($(window).height() - dialog.height()) / 2 + \"px\",\n                left   : ($(window).width() - dialog.width()) / 2 + \"px\"\n            });\n        };\n\n        dialogPosition();\n\n        $(window).resize(dialogPosition);\n\n        dialog.children(\".\" + classPrefix + \"dialog-close\").bind(mouseOrTouch(\"click\", \"touchend\"), function() {\n            dialog.hide().lockScreen(false).hideMask();\n        });\n\n        if (typeof options.buttons === \"object\")\n        {\n            var footer = dialog.footer = dialog.find(\".\" + classPrefix + \"dialog-footer\");\n\n            for (var key in options.buttons)\n            {\n                var btn = options.buttons[key];\n                var btnClassName = classPrefix + key + \"-btn\";\n\n                footer.append(\"&lt;button class=\\\"\" + classPrefix + \"btn \" + btnClassName + \"\\\">\" + btn[0] + \"&lt;/button>\");\n                btn[1] = $.proxy(btn[1], dialog);\n                footer.children(\".\" + btnClassName).bind(mouseOrTouch(\"click\", \"touchend\"), btn[1]);\n            }\n        }\n\n        if (options.title !== \"\" &amp;&amp; options.drag)\n        {                        \n            var posX, posY;\n            var dialogHeader = dialog.children(\".\" + classPrefix + \"dialog-header\");\n\n            if (!options.mask) {\n                dialogHeader.bind(mouseOrTouch(\"click\", \"touchend\"), function(){\n                    editormd.dialogZindex += 2;\n                    dialog.css(\"z-index\", editormd.dialogZindex);\n                });\n            }\n\n            dialogHeader.mousedown(function(e) {\n                e = e || window.event;  //IE\n                posX = e.clientX - parseInt(dialog[0].style.left);\n                posY = e.clientY - parseInt(dialog[0].style.top);\n\n                document.onmousemove = moveAction;                   \n            });\n\n            var userCanSelect = function (obj) {\n                obj.removeClass(classPrefix + \"user-unselect\").off(\"selectstart\");\n            };\n\n            var userUnselect = function (obj) {\n                obj.addClass(classPrefix + \"user-unselect\").on(\"selectstart\", function(event) { // selectstart for IE                        \n                    return false;\n                });\n            };\n\n            var moveAction = function (e) {\n                e = e || window.event;  //IE\n\n                var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top);\n\n                if( nowLeft >= 0 ) {\n                    if( nowLeft + dialog.width() &lt;= $(window).width()) {\n                        left = e.clientX - posX;\n                    } else {\t\n                        left = $(window).width() - dialog.width();\n                        document.onmousemove = null;\n                    }\n                } else {\n                    left = 0;\n                    document.onmousemove = null;\n                }\n\n                if( nowTop >= 0 ) {\n                    top = e.clientY - posY;\n                } else {\n                    top = 0;\n                    document.onmousemove = null;\n                }\n\n\n                document.onselectstart = function() {\n                    return false;\n                };\n\n                userUnselect($(\"body\"));\n                userUnselect(dialog);\n                dialog[0].style.left = left + \"px\";\n                dialog[0].style.top  = top + \"px\";\n            };\n\n            document.onmouseup = function() {                            \n                userCanSelect($(\"body\"));\n                userCanSelect(dialog);\n\n                document.onselectstart = null;         \n                document.onmousemove = null;\n            };\n\n            dialogHeader.touchDraggable = function() {\n                var offset = null;\n                var start  = function(e) {\n                    var orig = e.originalEvent; \n                    var pos  = $(this).parent().position();\n\n                    offset = {\n                        x : orig.changedTouches[0].pageX - pos.left,\n                        y : orig.changedTouches[0].pageY - pos.top\n                    };\n                };\n\n                var move = function(e) {\n                    e.preventDefault();\n                    var orig = e.originalEvent;\n\n                    $(this).parent().css({\n                        top  : orig.changedTouches[0].pageY - offset.y,\n                        left : orig.changedTouches[0].pageX - offset.x\n                    });\n                };\n\n                this.bind(\"touchstart\", start).bind(\"touchmove\", move);\n            };\n\n            dialogHeader.touchDraggable();\n        }\n\n        editormd.dialogZindex += 2;\n\n        return dialog;\n    };\n    \n    /**\n     * 鼠标和触摸事件的判断/选择方法\n     * MouseEvent or TouchEvent type switch\n     * \n     * @param   {String} [mouseEventType=\"click\"]    供选择的鼠标事件\n     * @param   {String} [touchEventType=\"touchend\"] 供选择的触摸事件\n     * @returns {String} EventType                   返回事件类型名称\n     */\n    \n    editormd.mouseOrTouch = function(mouseEventType, touchEventType) {\n        mouseEventType = mouseEventType || \"click\";\n        touchEventType = touchEventType || \"touchend\";\n        \n        var eventType  = mouseEventType;\n\n        try {\n            document.createEvent(\"TouchEvent\");\n            eventType = touchEventType;\n        } catch(e) {}\n\n        return eventType;\n    };\n    \n    /**\n     * 日期时间的格式化方法\n     * Datetime format method\n     * \n     * @param   {String}   [format=\"\"]  日期时间的格式，类似PHP的格式\n     * @returns {String}   datefmt      返回格式化后的日期时间字符串\n     */\n    \n    editormd.dateFormat = function(format) {                \n        format      = format || \"\";\n\n        var addZero = function(d) {\n            return (d &lt; 10) ? \"0\" + d : d;\n        };\n\n        var date    = new Date(); \n        var year    = date.getFullYear();\n        var year2   = year.toString().slice(2, 4);\n        var month   = addZero(date.getMonth() + 1);\n        var day     = addZero(date.getDate());\n        var weekDay = date.getDay();\n        var hour    = addZero(date.getHours());\n        var min     = addZero(date.getMinutes());\n        var second  = addZero(date.getSeconds());\n        var ms      = addZero(date.getMilliseconds()); \n        var datefmt = \"\";\n\n        var ymd     = year2 + \"-\" + month + \"-\" + day;\n        var fymd    = year  + \"-\" + month + \"-\" + day;\n        var hms     = hour  + \":\" + min   + \":\" + second;\n\n        switch (format) \n        {\n            case \"UNIX Time\" :\n                    datefmt = date.getTime();\n                break;\n\n            case \"UTC\" :\n                    datefmt = date.toUTCString();\n                break;\t\n\n            case \"yy\" :\n                    datefmt = year2;\n                break;\t\n\n            case \"year\" :\n            case \"yyyy\" :\n                    datefmt = year;\n                break;\n\n            case \"month\" :\n            case \"mm\" :\n                    datefmt = month;\n                break;                        \n\n            case \"cn-week-day\" :\n            case \"cn-wd\" :\n                    var cnWeekDays = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n                    datefmt = \"星期\" + cnWeekDays[weekDay];\n                break;\n\n            case \"week-day\" :\n            case \"wd\" :\n                    var weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n                    datefmt = weekDays[weekDay];\n                break;\n\n            case \"day\" :\n            case \"dd\" :\n                    datefmt = day;\n                break;\n\n            case \"hour\" :\n            case \"hh\" :\n                    datefmt = hour;\n                break;\n\n            case \"min\" :\n            case \"ii\" :\n                    datefmt = min;\n                break;\n\n            case \"second\" :\n            case \"ss\" :\n                    datefmt = second;\n                break;\n\n            case \"ms\" :\n                    datefmt = ms;\n                break;\n\n            case \"yy-mm-dd\" :\n                    datefmt = ymd;\n                break;\n\n            case \"yyyy-mm-dd\" :\n                    datefmt = fymd;\n                break;\n\n            case \"yyyy-mm-dd h:i:s ms\" :\n            case \"full + ms\" : \n                    datefmt = fymd + \" \" + hms + \" \" + ms;\n                break;\n\n            case \"full\" :\n            case \"yyyy-mm-dd h:i:s\" :\n                default:\n                    datefmt = fymd + \" \" + hms;\n                break;\n        }\n\n        return datefmt;\n    };\n\n    return editormd;\n\n}));\n</code></pre>\n        </article>\n    </section>\n\n\n\n\n</div>\n\n<nav>\n    <h2><a href=\"index.html\">Home</a></h2>\n</nav>\n\n<br class=\"clear\">\n\n<footer>\n    Documentation generated by <a href=\"https://github.com/jsdoc3/jsdoc\">JSDoc 3.3.0</a> on Mon Jun 08 2015 01:07:40 GMT+0800 (中国标准时间)\n</footer>\n\n<script> prettyPrint(); </script>\n<script src=\"scripts/linenumber.js\"> </script>\n</body>\n</html>\n"
  },
  {
    "path": "public/static/home/editormd/docs/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"utf-8\">\n    <title>JSDoc: Home</title>\n\n    <script src=\"scripts/prettify/prettify.js\"> </script>\n    <script src=\"scripts/prettify/lang-css.js\"> </script>\n    <!--[if lt IE 9]>\n      <script src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n    <![endif]-->\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"styles/prettify-tomorrow.css\">\n    <link type=\"text/css\" rel=\"stylesheet\" href=\"styles/jsdoc-default.css\">\n</head>\n\n<body>\n\n<div id=\"main\">\n\n    <h1 class=\"page-title\">Home</h1>\n\n    \n\n\n\n    \n\n\n    <h3> </h3>\n\n\n\n\n\n\n\n\n\n\n    \n\n\n\n\n\n\n\n\n\n</div>\n\n<nav>\n    <h2><a href=\"index.html\">Home</a></h2>\n</nav>\n\n<br class=\"clear\">\n\n<footer>\n    Documentation generated by <a href=\"https://github.com/jsdoc3/jsdoc\">JSDoc 3.3.0</a> on Mon Jun 08 2015 01:07:40 GMT+0800 (中国标准时间)\n</footer>\n\n<script> prettyPrint(); </script>\n<script src=\"scripts/linenumber.js\"> </script>\n</body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/docs/scripts/linenumber.js",
    "content": "/*global document */\n(function() {\n    var source = document.getElementsByClassName('prettyprint source linenums');\n    var i = 0;\n    var lineNumber = 0;\n    var lineId;\n    var lines;\n    var totalLines;\n    var anchorHash;\n\n    if (source && source[0]) {\n        anchorHash = document.location.hash.substring(1);\n        lines = source[0].getElementsByTagName('li');\n        totalLines = lines.length;\n\n        for (; i < totalLines; i++) {\n            lineNumber++;\n            lineId = 'line' + lineNumber;\n            lines[i].id = lineId;\n            if (lineId === anchorHash) {\n                lines[i].className += ' selected';\n            }\n        }\n    }\n})();\n"
  },
  {
    "path": "public/static/home/editormd/docs/scripts/prettify/Apache-License-2.0.txt",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "public/static/home/editormd/docs/scripts/prettify/lang-css.js",
    "content": "PR.registerLangHandler(PR.createSimpleLexer([[\"pln\",/^[\\t\\n\\f\\r ]+/,null,\" \\t\\r\\n\f\"]],[[\"str\",/^\"(?:[^\\n\\f\\r\"\\\\]|\\\\(?:\\r\\n?|\\n|\\f)|\\\\[\\S\\s])*\"/,null],[\"str\",/^'(?:[^\\n\\f\\r'\\\\]|\\\\(?:\\r\\n?|\\n|\\f)|\\\\[\\S\\s])*'/,null],[\"lang-css-str\",/^url\\(([^\"')]*)\\)/i],[\"kwd\",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\\w-]|$)/i,null],[\"lang-css-kw\",/^(-?(?:[_a-z]|\\\\[\\da-f]+ ?)(?:[\\w-]|\\\\\\\\[\\da-f]+ ?)*)\\s*:/i],[\"com\",/^\\/\\*[^*]*\\*+(?:[^*/][^*]*\\*+)*\\//],[\"com\",\n/^(?:<\\!--|--\\>)/],[\"lit\",/^(?:\\d+|\\d*\\.\\d+)(?:%|[a-z]+)?/i],[\"lit\",/^#[\\da-f]{3,6}/i],[\"pln\",/^-?(?:[_a-z]|\\\\[\\da-f]+ ?)(?:[\\w-]|\\\\\\\\[\\da-f]+ ?)*/i],[\"pun\",/^[^\\s\\w\"']+/]]),[\"css\"]);PR.registerLangHandler(PR.createSimpleLexer([],[[\"kwd\",/^-?(?:[_a-z]|\\\\[\\da-f]+ ?)(?:[\\w-]|\\\\\\\\[\\da-f]+ ?)*/i]]),[\"css-kw\"]);PR.registerLangHandler(PR.createSimpleLexer([],[[\"str\",/^[^\"')]+/]]),[\"css-str\"]);\n"
  },
  {
    "path": "public/static/home/editormd/docs/scripts/prettify/prettify.js",
    "content": "var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:\"0\"<=b&&b<=\"7\"?parseInt(a.substring(1),8):b===\"u\"||b===\"x\"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?\"\\\\x0\":\"\\\\x\")+a.toString(16);a=String.fromCharCode(a);if(a===\"\\\\\"||a===\"-\"||a===\"[\"||a===\"]\")a=\"\\\\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\S\\s]|[^\\\\]/g),a=\n[],b=[],o=f[0]===\"^\",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&\"-\"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=[\"[\"];o&&b.push(\"^\");b.push.apply(b,a);for(c=0;c<\nf.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push(\"-\"),b.push(e(i[1])));b.push(\"]\");return b.join(\"\")}function y(a){for(var f=a.source.match(/\\[(?:[^\\\\\\]]|\\\\[\\S\\s])*]|\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\\\d+|\\\\[^\\dux]|\\(\\?[!:=]|[()^]|[^()[\\\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j===\"(\"?++i:\"\\\\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j===\"(\"?(++i,d[i]===void 0&&(f[c]=\"(?:\")):\"\\\\\"===j.charAt(0)&&\n(j=+j.substring(1))&&j<=i&&(f[c]=\"\\\\\"+d[i]);for(i=c=0;c<b;++c)\"^\"===f[c]&&\"^\"!==f[c+1]&&(f[c]=\"\");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a===\"[\"?f[c]=h(j):a!==\"\\\\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return\"[\"+String.fromCharCode(a&-33,a|32)+\"]\"}));return f.join(\"\")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\\\u[\\da-f]{4}|\\\\x[\\da-f]{2}|\\\\[^UXux]/gi,\"\"))){s=!0;l=!1;break}}for(var r=\n{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(\"\"+g);n.push(\"(?:\"+y(g)+\")\")}return RegExp(n.join(\"|\"),l?\"gi\":\"g\")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if(\"BR\"===g||\"LI\"===g)h[s]=\"\\n\",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\\r\\n?/g,\"\\n\"):g.replace(/[\\t\\n\\r ]+/g,\" \"),h[s]=g,t[s<<1]=y,y+=g.length,\nt[s++<<1|1]=a)}}var e=/(?:^|\\s)nocode(?:\\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue(\"white-space\"));var p=l&&\"pre\"===l.substring(0,3);m(a);return{a:h.join(\"\").replace(/\\n$/,\"\"),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,\"pln\"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===\n\"string\")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b=\"pln\")}if((c=b.length>=5&&\"lang-\"===b.substring(0,5))&&!(o&&typeof o[1]===\"string\"))c=!1,b=\"src\";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),\nl=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=\"\"+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\\S\\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push([\"str\",/^(?:'''(?:[^'\\\\]|\\\\[\\S\\s]|''?(?=[^']))*(?:'''|$)|\"\"\"(?:[^\"\\\\]|\\\\[\\S\\s]|\"\"?(?=[^\"]))*(?:\"\"\"|$)|'(?:[^'\\\\]|\\\\[\\S\\s])*(?:'|$)|\"(?:[^\"\\\\]|\\\\[\\S\\s])*(?:\"|$))/,q,\"'\\\"\"]):a.multiLineStrings?m.push([\"str\",/^(?:'(?:[^'\\\\]|\\\\[\\S\\s])*(?:'|$)|\"(?:[^\"\\\\]|\\\\[\\S\\s])*(?:\"|$)|`(?:[^\\\\`]|\\\\[\\S\\s])*(?:`|$))/,\nq,\"'\\\"`\"]):m.push([\"str\",/^(?:'(?:[^\\n\\r'\\\\]|\\\\.)*(?:'|$)|\"(?:[^\\n\\r\"\\\\]|\\\\.)*(?:\"|$))/,q,\"\\\"'\"]);a.verbatimStrings&&e.push([\"str\",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push([\"com\",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,\"#\"]):m.push([\"com\",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\\b|[^\\n\\r]*)/,q,\"#\"]),e.push([\"str\",/^<(?:(?:(?:\\.\\.\\/)*|\\/?)(?:[\\w-]+(?:\\/[\\w-]+)+)?[\\w-]+\\.h|[a-z]\\w*)>/,q])):m.push([\"com\",/^#[^\\n\\r]*/,\nq,\"#\"]));a.cStyleComments&&(e.push([\"com\",/^\\/\\/[^\\n\\r]*/,q]),e.push([\"com\",/^\\/\\*[\\S\\s]*?(?:\\*\\/|$)/,q]));a.regexLiterals&&e.push([\"lang-regex\",/^(?:^^\\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|,|-=|->|\\/|\\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\\^=|\\^\\^|\\^\\^=|{|\\||\\|=|\\|\\||\\|\\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(\\/(?=[^*/])(?:[^/[\\\\]|\\\\[\\S\\s]|\\[(?:[^\\\\\\]]|\\\\[\\S\\s])*(?:]|$))+\\/)/]);(h=a.types)&&e.push([\"typ\",h]);a=(\"\"+a.keywords).replace(/^ | $/g,\n\"\");a.length&&e.push([\"kwd\",RegExp(\"^(?:\"+a.replace(/[\\s,]+/g,\"|\")+\")\\\\b\"),q]);m.push([\"pln\",/^\\s+/,q,\" \\r\\n\\t\\xa0\"]);e.push([\"lit\",/^@[$_a-z][\\w$@]*/i,q],[\"typ\",/^(?:[@_]?[A-Z]+[a-z][\\w$@]*|\\w+_t\\b)/,q],[\"pln\",/^[$_a-z][\\w$@]*/i,q],[\"lit\",/^(?:0x[\\da-f]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+-]?\\d+)?)[a-z]*/i,q,\"0123456789\"],[\"pln\",/^\\\\[\\S\\s]?/,q],[\"pun\",/^.[^\\s\\w\"-$'./@\\\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if(\"BR\"===a.nodeName)h(a),\na.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}\nfor(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\\s)nocode(?:\\s|$)/,t=/\\r\\n?|\\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue(\"white-space\"));var p=l&&\"pre\"===l.substring(0,3);for(l=s.createElement(\"LI\");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute(\"value\",\nm);var r=s.createElement(\"OL\");r.className=\"linenums\";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className=\"L\"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode(\"\\xa0\")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn(\"cannot override language handler %s\",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\\s*</.test(m)?\"default-markup\":\"default-code\";return A[a]}function E(a){var m=\na.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\\bMSIE\\b/.test(navigator.userAgent),m=/\\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,\"\\r\"));i.nodeValue=\nj;var u=i.ownerDocument,v=u.createElement(\"SPAN\");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){\"console\"in window&&console.log(w&&w.stack?w.stack:w)}}var v=[\"break,continue,do,else,for,if,return,while\"],w=[[v,\"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile\"],\n\"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof\"],F=[w,\"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where\"],G=[w,\"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient\"],\nH=[G,\"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var\"],w=[w,\"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN\"],I=[v,\"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None\"],\nJ=[v,\"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END\"],v=[v,\"case,done,elif,esac,eval,fi,function,in,local,set,then,until\"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\\d*)/,N=/\\S/,O=u({keywords:[F,H,w,\"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END\"+\nI,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,[\"default-code\"]);k(x([],[[\"pln\",/^[^<?]+/],[\"dec\",/^<!\\w[^>]*(?:>|$)/],[\"com\",/^<\\!--[\\S\\s]*?(?:--\\>|$)/],[\"lang-\",/^<\\?([\\S\\s]+?)(?:\\?>|$)/],[\"lang-\",/^<%([\\S\\s]+?)(?:%>|$)/],[\"pun\",/^(?:<[%?]|[%?]>)/],[\"lang-\",/^<xmp\\b[^>]*>([\\S\\s]+?)<\\/xmp\\b[^>]*>/i],[\"lang-js\",/^<script\\b[^>]*>([\\S\\s]*?)(<\\/script\\b[^>]*>)/i],[\"lang-css\",/^<style\\b[^>]*>([\\S\\s]*?)(<\\/style\\b[^>]*>)/i],[\"lang-in.tag\",/^(<\\/?[a-z][^<>]*>)/i]]),\n[\"default-markup\",\"htm\",\"html\",\"mxml\",\"xhtml\",\"xml\",\"xsl\"]);k(x([[\"pln\",/^\\s+/,q,\" \\t\\r\\n\"],[\"atv\",/^(?:\"[^\"]*\"?|'[^']*'?)/,q,\"\\\"'\"]],[[\"tag\",/^^<\\/?[a-z](?:[\\w-.:]*\\w)?|\\/?>$/i],[\"atn\",/^(?!style[\\s=]|on)[a-z](?:[\\w:-]*\\w)?/i],[\"lang-uq.val\",/^=\\s*([^\\s\"'>]*(?:[^\\s\"'/>]|\\/(?=\\s)))/],[\"pun\",/^[/<->]+/],[\"lang-js\",/^on\\w+\\s*=\\s*\"([^\"]+)\"/i],[\"lang-js\",/^on\\w+\\s*=\\s*'([^']+)'/i],[\"lang-js\",/^on\\w+\\s*=\\s*([^\\s\"'>]+)/i],[\"lang-css\",/^style\\s*=\\s*\"([^\"]+)\"/i],[\"lang-css\",/^style\\s*=\\s*'([^']+)'/i],[\"lang-css\",\n/^style\\s*=\\s*([^\\s\"'>]+)/i]]),[\"in.tag\"]);k(x([],[[\"atv\",/^[\\S\\s]+/]]),[\"uq.val\"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),[\"c\",\"cc\",\"cpp\",\"cxx\",\"cyc\",\"m\"]);k(u({keywords:\"null,true,false\"}),[\"json\"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),[\"cs\"]);k(u({keywords:G,cStyleComments:!0}),[\"java\"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),[\"bsh\",\"csh\",\"sh\"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),\n[\"cv\",\"py\"]);k(u({keywords:\"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END\",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),[\"perl\",\"pl\",\"pm\"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),[\"rb\"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),[\"js\"]);k(u({keywords:\"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes\",\nhashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),[\"coffee\"]);k(x([],[[\"str\",/^[\\S\\s]+/]]),[\"regex\"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement(\"PRE\");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf(\"prettyprint\")>=0){var k=k.match(g),f,b;if(b=\n!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&\"CODE\"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName===\"pre\"||o.tagName===\"code\"||o.tagName===\"xmp\")&&o.className&&o.className.indexOf(\"prettyprint\")>=0){b=!0;break}b||((b=(b=n.className.match(/\\blinenums\\b(?::(\\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,\n250):a&&a()}for(var e=[document.getElementsByTagName(\"pre\"),document.getElementsByTagName(\"code\"),document.getElementsByTagName(\"xmp\")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\\blang(?:uage)?-([\\w.]+)(?!\\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:\"atn\",PR_ATTRIB_VALUE:\"atv\",PR_COMMENT:\"com\",PR_DECLARATION:\"dec\",PR_KEYWORD:\"kwd\",PR_LITERAL:\"lit\",\nPR_NOCODE:\"nocode\",PR_PLAIN:\"pln\",PR_PUNCTUATION:\"pun\",PR_SOURCE:\"src\",PR_STRING:\"str\",PR_TAG:\"tag\",PR_TYPE:\"typ\"}})();\n"
  },
  {
    "path": "public/static/home/editormd/docs/styles/jsdoc-default.css",
    "content": "@font-face {\n    font-family: 'Open Sans';\n    font-weight: normal;\n    font-style: normal;\n    src: url('../fonts/OpenSans-Regular-webfont.eot');\n    src:\n        local('Open Sans'),\n        local('OpenSans'),\n        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),\n        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),\n        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');\n}\n\n@font-face {\n    font-family: 'Open Sans Light';\n    font-weight: normal;\n    font-style: normal;\n    src: url('../fonts/OpenSans-Light-webfont.eot');\n    src:\n        local('Open Sans Light'),\n        local('OpenSans Light'),\n        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),\n        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),\n        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');\n}\n\nhtml\n{\n    overflow: auto;\n    background-color: #fff;\n    font-size: 14px;\n}\n\nbody\n{\n    font-family: 'Open Sans', sans-serif;\n    line-height: 1.5;\n    color: #4d4e53;\n    background-color: white;\n}\n\na, a:visited, a:active {\n    color: #0095dd;\n    text-decoration: none;\n}\n\na:hover {\n    text-decoration: underline;\n}\n\nheader\n{\n    display: block;\n    padding: 0px 4px;\n}\n\ntt, code, kbd, samp {\n    font-family: Consolas, Monaco, 'Andale Mono', monospace;\n}\n\n.class-description {\n    font-size: 130%;\n    line-height: 140%;\n    margin-bottom: 1em;\n    margin-top: 1em;\n}\n\n.class-description:empty {\n    margin: 0;\n}\n\n#main {\n    float: left;\n    width: 70%;\n}\n\narticle dl {\n    margin-bottom: 40px;\n}\n\nsection\n{\n    display: block;\n    background-color: #fff;\n    padding: 12px 24px;\n    border-bottom: 1px solid #ccc;\n    margin-right: 30px;\n}\n\n.variation {\n    display: none;\n}\n\n.signature-attributes {\n    font-size: 60%;\n    color: #aaa;\n    font-style: italic;\n    font-weight: lighter;\n}\n\nnav\n{\n    display: block;\n    float: right;\n    margin-top: 28px;\n    width: 30%;\n    box-sizing: border-box;\n    border-left: 1px solid #ccc;\n    padding-left: 16px;\n}\n\nnav ul {\n    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;\n    font-size: 100%;\n    line-height: 17px;\n    padding: 0;\n    margin: 0;\n    list-style-type: none;\n}\n\nnav ul a, nav ul a:visited, nav ul a:active {\n    font-family: Consolas, Monaco, 'Andale Mono', monospace;\n    line-height: 18px;\n    color: #4D4E53;\n}\n\nnav h3 {\n    margin-top: 12px;\n}\n\nnav li {\n    margin-top: 6px;\n}\n\nfooter {\n    display: block;\n    padding: 6px;\n    margin-top: 12px;\n    font-style: italic;\n    font-size: 90%;\n}\n\nh1, h2, h3, h4 {\n    font-weight: 200;\n    margin: 0;\n}\n\nh1\n{\n    font-family: 'Open Sans Light', sans-serif;\n    font-size: 48px;\n    letter-spacing: -2px;\n    margin: 12px 24px 20px;\n}\n\nh2, h3\n{\n    font-size: 30px;\n    font-weight: 700;\n    letter-spacing: -1px;\n    margin-bottom: 12px;\n}\n\nh4\n{\n    font-size: 18px;\n    letter-spacing: -0.33px;\n    margin-bottom: 12px;\n    color: #4d4e53;\n}\n\nh5, .container-overview .subsection-title\n{\n    font-size: 120%;\n    font-weight: bold;\n    letter-spacing: -0.01em;\n    margin: 8px 0 3px 0;\n}\n\nh6\n{\n    font-size: 100%;\n    letter-spacing: -0.01em;\n    margin: 6px 0 3px 0;\n    font-style: italic;\n}\n\n.ancestors { color: #999; }\n.ancestors a\n{\n    color: #999 !important;\n    text-decoration: none;\n}\n\n.clear\n{\n    clear: both;\n}\n\n.important\n{\n    font-weight: bold;\n    color: #950B02;\n}\n\n.yes-def {\n    text-indent: -1000px;\n}\n\n.type-signature {\n    color: #aaa;\n}\n\n.name, .signature {\n    font-family: Consolas, Monaco, 'Andale Mono', monospace;\n}\n\n.details { margin-top: 14px; border-left: 2px solid #DDD; }\n.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }\n.details dd { margin-left: 70px; }\n.details ul { margin: 0; }\n.details ul { list-style-type: none; }\n.details li { margin-left: 30px; padding-top: 6px; }\n.details pre.prettyprint { margin: 0 }\n.details .object-value { padding-top: 0; }\n\n.description {\n    margin-bottom: 1em;\n    margin-top: 1em;\n}\n\n.code-caption\n{\n    font-style: italic;\n    font-size: 107%;\n    margin: 0;\n}\n\n.prettyprint\n{\n    border: 1px solid #ddd;\n    width: 80%;\n    overflow: auto;\n}\n\n.prettyprint.source {\n    width: inherit;\n}\n\n.prettyprint code\n{\n    font-size: 100%;\n    line-height: 18px;\n    display: block;\n    padding: 4px 12px;\n    margin: 0;\n    background-color: #fff;\n    color: #4D4E53;\n}\n\n.prettyprint code span.line\n{\n  display: inline-block;\n}\n\n.prettyprint.linenums\n{\n  padding-left: 70px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.prettyprint.linenums ol\n{\n  padding-left: 0;\n}\n\n.prettyprint.linenums li\n{\n  border-left: 3px #ddd solid;\n}\n\n.prettyprint.linenums li.selected,\n.prettyprint.linenums li.selected *\n{\n  background-color: lightyellow;\n}\n\n.prettyprint.linenums li *\n{\n  -webkit-user-select: text;\n  -moz-user-select: text;\n  -ms-user-select: text;\n  user-select: text;\n}\n\n.params, .props\n{\n    border-spacing: 0;\n    border: 0;\n    border-collapse: collapse;\n}\n\n.params .name, .props .name, .name code {\n    color: #4D4E53;\n    font-family: Consolas, Monaco, 'Andale Mono', monospace;\n    font-size: 100%;\n}\n\n.params td, .params th, .props td, .props th\n{\n    border: 1px solid #ddd;\n    margin: 0px;\n    text-align: left;\n    vertical-align: top;\n    padding: 4px 6px;\n    display: table-cell;\n}\n\n.params thead tr, .props thead tr\n{\n    background-color: #ddd;\n    font-weight: bold;\n}\n\n.params .params thead tr, .props .props thead tr\n{\n    background-color: #fff;\n    font-weight: bold;\n}\n\n.params th, .props th { border-right: 1px solid #aaa; }\n.params thead .last, .props thead .last { border-right: 1px solid #ddd; }\n\n.params td.description > p:first-child,\n.props td.description > p:first-child\n{\n    margin-top: 0;\n    padding-top: 0;\n}\n\n.params td.description > p:last-child,\n.props td.description > p:last-child\n{\n    margin-bottom: 0;\n    padding-bottom: 0;\n}\n\n.disabled {\n    color: #454545;\n}\n"
  },
  {
    "path": "public/static/home/editormd/docs/styles/prettify-jsdoc.css",
    "content": "/* JSDoc prettify.js theme */\n\n/* plain text */\n.pln {\n  color: #000000;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* string content */\n.str {\n  color: #006400;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a keyword */\n.kwd {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* a comment */\n.com {\n  font-weight: normal;\n  font-style: italic;\n}\n\n/* a type name */\n.typ {\n  color: #000000;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a literal value */\n.lit {\n  color: #006400;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* punctuation */\n.pun {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* lisp open bracket */\n.opn {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* lisp close bracket */\n.clo {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* a markup tag name */\n.tag {\n  color: #006400;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a markup attribute name */\n.atn {\n  color: #006400;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a markup attribute value */\n.atv {\n  color: #006400;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a declaration */\n.dec {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* a variable name */\n.var {\n  color: #000000;\n  font-weight: normal;\n  font-style: normal;\n}\n\n/* a function name */\n.fun {\n  color: #000000;\n  font-weight: bold;\n  font-style: normal;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n"
  },
  {
    "path": "public/static/home/editormd/docs/styles/prettify-tomorrow.css",
    "content": "/* Tomorrow Theme */\n/* Original theme - https://github.com/chriskempson/tomorrow-theme */\n/* Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n/* plain text */\n.pln {\n  color: #4d4d4c; }\n\n@media screen {\n  /* string content */\n  .str {\n    color: #718c00; }\n\n  /* a keyword */\n  .kwd {\n    color: #8959a8; }\n\n  /* a comment */\n  .com {\n    color: #8e908c; }\n\n  /* a type name */\n  .typ {\n    color: #4271ae; }\n\n  /* a literal value */\n  .lit {\n    color: #f5871f; }\n\n  /* punctuation */\n  .pun {\n    color: #4d4d4c; }\n\n  /* lisp open bracket */\n  .opn {\n    color: #4d4d4c; }\n\n  /* lisp close bracket */\n  .clo {\n    color: #4d4d4c; }\n\n  /* a markup tag name */\n  .tag {\n    color: #c82829; }\n\n  /* a markup attribute name */\n  .atn {\n    color: #f5871f; }\n\n  /* a markup attribute value */\n  .atv {\n    color: #3e999f; }\n\n  /* a declaration */\n  .dec {\n    color: #f5871f; }\n\n  /* a variable name */\n  .var {\n    color: #c82829; }\n\n  /* a function name */\n  .fun {\n    color: #4271ae; } }\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060; }\n\n  .kwd {\n    color: #006;\n    font-weight: bold; }\n\n  .com {\n    color: #600;\n    font-style: italic; }\n\n  .typ {\n    color: #404;\n    font-weight: bold; }\n\n  .lit {\n    color: #044; }\n\n  .pun, .opn, .clo {\n    color: #440; }\n\n  .tag {\n    color: #006;\n    font-weight: bold; }\n\n  .atn {\n    color: #404; }\n\n  .atv {\n    color: #060; } }\n/* Style */\n/*\npre.prettyprint {\n  background: white;\n  font-family: Consolas, Monaco, 'Andale Mono', monospace;\n  font-size: 12px;\n  line-height: 1.5;\n  border: 1px solid #ccc;\n  padding: 10px; }\n*/\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0; }\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L4,\nli.L5,\nli.L6,\nli.L7,\nli.L8,\nli.L9 {\n  /* */ }\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  /* */ }\n"
  },
  {
    "path": "public/static/home/editormd/editormd.amd.js",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.amd.js \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n;(function(factory) {\n    \"use strict\";\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n\t{\n        if (define.amd) // for Require.js\n        {\n            var cmModePath  = \"./lib/codemirror/mode/\";\n            var cmAddonPath = \"./lib/codemirror/addon/\";\n\n            var codeMirrorModules = [\n                \"jquery\", \"marked\", \"prettify\",\n                \"katex\", \"raphael\", \"underscore\", \"flowchart\",  \"jqueryflowchart\",  \"sequenceDiagram\",\n\n                \"./lib/codemirror/lib/codemirror\",\n                cmModePath + \"css/css\",\n                cmModePath + \"sass/sass\",\n                cmModePath + \"shell/shell\",\n                cmModePath + \"sql/sql\",\n                cmModePath + \"clike/clike\",\n                cmModePath + \"php/php\",\n                cmModePath + \"xml/xml\",\n                cmModePath + \"markdown/markdown\",\n                cmModePath + \"javascript/javascript\",\n                cmModePath + \"htmlmixed/htmlmixed\",\n                cmModePath + \"gfm/gfm\",\n                cmModePath + \"http/http\",\n                cmModePath + \"go/go\",\n                cmModePath + \"dart/dart\",\n                cmModePath + \"coffeescript/coffeescript\",\n                cmModePath + \"nginx/nginx\",\n                cmModePath + \"python/python\",\n                cmModePath + \"perl/perl\",\n                cmModePath + \"lua/lua\",\n                cmModePath + \"r/r\", \n                cmModePath + \"ruby/ruby\", \n                cmModePath + \"rst/rst\",\n                cmModePath + \"smartymixed/smartymixed\",\n                cmModePath + \"vb/vb\",\n                cmModePath + \"vbscript/vbscript\",\n                cmModePath + \"velocity/velocity\",\n                cmModePath + \"xquery/xquery\",\n                cmModePath + \"yaml/yaml\",\n                cmModePath + \"erlang/erlang\",\n                cmModePath + \"jade/jade\",\n\n                cmAddonPath + \"edit/trailingspace\", \n                cmAddonPath + \"dialog/dialog\", \n                cmAddonPath + \"search/searchcursor\", \n                cmAddonPath + \"search/search\", \n                cmAddonPath + \"scroll/annotatescrollbar\", \n                cmAddonPath + \"search/matchesonscrollbar\", \n                cmAddonPath + \"display/placeholder\", \n                cmAddonPath + \"edit/closetag\", \n                cmAddonPath + \"fold/foldcode\",\n                cmAddonPath + \"fold/foldgutter\",\n                cmAddonPath + \"fold/indent-fold\",\n                cmAddonPath + \"fold/brace-fold\",\n                cmAddonPath + \"fold/xml-fold\", \n                cmAddonPath + \"fold/markdown-fold\",\n                cmAddonPath + \"fold/comment-fold\", \n                cmAddonPath + \"mode/overlay\", \n                cmAddonPath + \"selection/active-line\", \n                cmAddonPath + \"edit/closebrackets\", \n                cmAddonPath + \"display/fullscreen\",\n                cmAddonPath + \"search/match-highlighter\"\n            ];\n\n            define(codeMirrorModules, factory);\n        } \n        else \n        {\n\t\t    define([\"jquery\"], factory);  // for Sea.js\n        }\n\t} \n\telse\n\t{ \n        window.editormd = factory();\n\t}\n    \n}(function() {    \n\n    if (typeof define == \"function\" && define.amd) {\n       $          = arguments[0];\n       marked     = arguments[1];\n       prettify   = arguments[2];\n       katex      = arguments[3];\n       Raphael    = arguments[4];\n       _          = arguments[5];\n       flowchart  = arguments[6];\n       CodeMirror = arguments[9];\n   }\n    \n    \"use strict\";\n    \n    var $ = (typeof (jQuery) !== \"undefined\") ? jQuery : Zepto;\n\n\tif (typeof ($) === \"undefined\") {\n\t\treturn ;\n\t}\n    \n    /**\n     * editormd\n     * \n     * @param   {String} id           编辑器的ID\n     * @param   {Object} options      配置选项 Key/Value\n     * @returns {Object} editormd     返回editormd对象\n     */\n    \n    var editormd         = function (id, options) {\n        return new editormd.fn.init(id, options);\n    };\n    \n    editormd.title        = editormd.$name = \"Editor.md\";\n    editormd.version      = \"1.5.0\";\n    editormd.homePage     = \"https://pandao.github.io/editor.md/\";\n    editormd.classPrefix  = \"editormd-\";\n    \n    editormd.toolbarModes = {\n        full : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"ucwords\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"link\", \"reference-link\", \"image\", \"code\", \"preformatted-text\", \"code-block\", \"table\", \"datetime\", \"emoji\", \"html-entities\", \"pagebreak\", \"|\",\n            \"goto-line\", \"watch\", \"preview\", \"fullscreen\", \"clear\", \"search\", \"|\",\n            \"help\", \"info\"\n        ],\n        simple : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"watch\", \"preview\", \"fullscreen\", \"|\",\n            \"help\", \"info\"\n        ],\n        mini : [\n            \"undo\", \"redo\", \"|\",\n            \"watch\", \"preview\", \"|\",\n            \"help\", \"info\"\n        ]\n    };\n    \n    editormd.defaults     = {\n        mode                 : \"gfm\",          //gfm or markdown\n        name                 : \"\",             // Form element name\n        value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n        theme                : \"\",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty\n        editorTheme          : \"default\",      // Editor area, this is CodeMirror theme at v1.5.0\n        previewTheme         : \"\",             // Preview area theme, default empty\n        markdown             : \"\",             // Markdown source code\n        appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n        width                : \"100%\",\n        height               : \"100%\",\n        path                 : \"./lib/\",       // Dependents module file directory\n        pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n        delay                : 300,            // Delay parse markdown to html, Uint : ms\n        autoLoadModules      : true,           // Automatic load dependent module files\n        watch                : true,\n        placeholder          : \"Enjoy Markdown! coding now...\",\n        gotoLine             : true,\n        codeFold             : false,\n        autoHeight           : false,\n\t\tautoFocus            : true,\n        autoCloseTags        : true,\n        searchReplace        : true,\n        syncScrolling        : true,           // true | false | \"single\", default true\n        readOnly             : false,\n        tabSize              : 4,\n\t\tindentUnit           : 4,\n        lineNumbers          : true,\n\t\tlineWrapping         : true,\n\t\tautoCloseBrackets    : true,\n\t\tshowTrailingSpace    : true,\n\t\tmatchBrackets        : true,\n\t\tindentWithTabs       : true,\n\t\tstyleSelectedText    : true,\n        matchWordHighlight   : true,           // options: true, false, \"onselected\"\n        styleActiveLine      : true,           // Highlight the current line\n        dialogLockScreen     : true,\n        dialogShowMask       : true,\n        dialogDraggable      : true,\n        dialogMaskBgColor    : \"#fff\",\n        dialogMaskOpacity    : 0.1,\n        fontSize             : \"13px\",\n        saveHTMLToTextarea   : false,\n        disabledKeyMaps      : [],\n        \n        onload               : function() {},\n        onresize             : function() {},\n        onchange             : function() {},\n        onwatch              : null,\n        onunwatch            : null,\n        onpreviewing         : function() {},\n        onpreviewed          : function() {},\n        onfullscreen         : function() {},\n        onfullscreenExit     : function() {},\n        onscroll             : function() {},\n        onpreviewscroll      : function() {},\n        \n        imageUpload          : false,\n        imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n        imageUploadURL       : \"\",\n        crossDomainUpload    : false,\n        uploadCallbackURL    : \"\",\n        \n        toc                  : true,           // Table of contents\n        tocm                 : false,           // Using [TOCM], auto create ToC dropdown menu\n        tocTitle             : \"\",             // for ToC dropdown menu btn\n        tocDropdown          : false,\n        tocContainer         : \"\",\n        tocStartLevel        : 1,              // Said from H1 to create ToC\n        htmlDecode           : false,          // Open the HTML tag identification \n        pageBreak            : true,           // Enable parse page break [========]\n        atLink               : true,           // for @link\n        emailLink            : true,           // for email address auto link\n        taskList             : false,          // Enable Github Flavored Markdown task lists\n        emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                               // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                               // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n        tex                  : false,          // TeX(LaTeX), based on KaTeX\n        flowChart            : false,          // flowChart.js only support IE9+\n        sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        previewCodeHighlight : true,\n                \n        toolbar              : true,           // show/hide toolbar\n        toolbarAutoFixed     : true,           // on window scroll auto fixed position\n        toolbarIcons         : \"full\",\n        toolbarTitles        : {},\n        toolbarHandlers      : {\n            ucwords : function() {\n                return editormd.toolbarHandlers.ucwords;\n            },\n            lowercase : function() {\n                return editormd.toolbarHandlers.lowercase;\n            }\n        },\n        toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default <a> tag.\n            lowercase        : \"<a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a</i></a>\",\n            \"ucwords\"        : \"<a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa</i></a>\"\n        }, \n        toolbarIconsClass    : {\n            undo             : \"fa-undo\",\n            redo             : \"fa-repeat\",\n            bold             : \"fa-bold\",\n            del              : \"fa-strikethrough\",\n            italic           : \"fa-italic\",\n            quote            : \"fa-quote-left\",\n            uppercase        : \"fa-font\",\n            h1               : editormd.classPrefix + \"bold\",\n            h2               : editormd.classPrefix + \"bold\",\n            h3               : editormd.classPrefix + \"bold\",\n            h4               : editormd.classPrefix + \"bold\",\n            h5               : editormd.classPrefix + \"bold\",\n            h6               : editormd.classPrefix + \"bold\",\n            \"list-ul\"        : \"fa-list-ul\",\n            \"list-ol\"        : \"fa-list-ol\",\n            hr               : \"fa-minus\",\n            link             : \"fa-link\",\n            \"reference-link\" : \"fa-anchor\",\n            image            : \"fa-picture-o\",\n            code             : \"fa-code\",\n            \"preformatted-text\" : \"fa-file-code-o\",\n            \"code-block\"     : \"fa-file-code-o\",\n            table            : \"fa-table\",\n            datetime         : \"fa-clock-o\",\n            emoji            : \"fa-smile-o\",\n            \"html-entities\"  : \"fa-copyright\",\n            pagebreak        : \"fa-newspaper-o\",\n            \"goto-line\"      : \"fa-terminal\", // fa-crosshairs\n            watch            : \"fa-eye-slash\",\n            unwatch          : \"fa-eye\",\n            preview          : \"fa-desktop\",\n            search           : \"fa-search\",\n            fullscreen       : \"fa-arrows-alt\",\n            clear            : \"fa-eraser\",\n            help             : \"fa-question-circle\",\n            info             : \"fa-info-circle\"\n        },        \n        toolbarIconTexts     : {},\n        \n        lang : {\n            name        : \"zh-cn\",\n            description : \"开源在线Markdown编辑器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目录\",\n            toolbar     : {\n                undo             : \"撤销（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗体\",\n                del              : \"删除线\",\n                italic           : \"斜体\",\n                quote            : \"引用\",\n                ucwords          : \"将每个单词首字母转成大写\",\n                uppercase        : \"将所选转换成大写\",\n                lowercase        : \"将所选转换成小写\",\n                h1               : \"标题1\",\n                h2               : \"标题2\",\n                h3               : \"标题3\",\n                h4               : \"标题4\",\n                h5               : \"标题5\",\n                h6               : \"标题6\",\n                \"list-ul\"        : \"无序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用链接\",\n                image            : \"添加图片\",\n                code             : \"行内代码\",\n                \"preformatted-text\" : \"预格式文本 / 代码块（缩进风格）\",\n                \"code-block\"     : \"代码块（多语言风格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期时间\",\n                emoji            : \"Emoji表情\",\n                \"html-entities\"  : \"HTML实体字符\",\n                pagebreak        : \"插入分页符\",\n                \"goto-line\"      : \"跳转到行\",\n                watch            : \"关闭实时预览\",\n                unwatch          : \"开启实时预览\",\n                preview          : \"全窗口预览HTML（按 Shift + ESC还原）\",\n                fullscreen       : \"全屏（按ESC还原）\",\n                clear            : \"清空\",\n                search           : \"搜索\",\n                help             : \"使用帮助\",\n                info             : \"关于\" + editormd.title\n            },\n            buttons : {\n                enter  : \"确定\",\n                cancel : \"取消\",\n                close  : \"关闭\"\n            },\n            dialog : {\n                link : {\n                    title    : \"添加链接\",\n                    url      : \"链接地址\",\n                    urlTitle : \"链接标题\",\n                    urlEmpty : \"错误：请填写链接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用链接\",\n                    name     : \"引用名称\",\n                    url      : \"链接地址\",\n                    urlId    : \"链接ID\",\n                    urlTitle : \"链接标题\",\n                    nameEmpty: \"错误：引用链接的名称不能为空。\",\n                    idEmpty  : \"错误：请填写引用链接的ID。\",\n                    urlEmpty : \"错误：请填写引用链接的URL地址。\"\n                },\n                image : {\n                    title    : \"添加图片\",\n                    url      : \"图片地址\",\n                    link     : \"图片链接\",\n                    alt      : \"图片描述\",\n                    uploadButton     : \"本地上传\",\n                    imageURLEmpty    : \"错误：图片地址不能为空。\",\n                    uploadFileEmpty  : \"错误：上传的图片不能为空。\",\n                    formatNotAllowed : \"错误：只允许上传图片文件，允许上传的图片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加预格式文本或代码块\", \n                    emptyAlert        : \"错误：请填写预格式文本或代码的内容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代码块\",                    \n                    selectLabel       : \"代码语言：\",\n                    selectDefaultText : \"请选择代码语言\",\n                    otherLanguage     : \"其他语言\",\n                    unselectedLanguageAlert : \"错误：请选择代码所属的语言类型。\",\n                    codeEmptyAlert    : \"错误：请填写代码内容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML 实体字符\"\n                },\n                help : {\n                    title : \"使用帮助\"\n                }\n            }\n        }\n    };\n    \n    editormd.classNames  = {\n        tex : editormd.classPrefix + \"tex\"\n    };\n\n    editormd.dialogZindex = 99999;\n    \n    editormd.$katex       = null;\n    editormd.$marked      = null;\n    editormd.$CodeMirror  = null;\n    editormd.$prettyPrint = null;\n    \n    var timer, flowchartTimer;\n\n    editormd.prototype    = editormd.fn = {\n        state : {\n            watching   : false,\n            loaded     : false,\n            preview    : false,\n            fullscreen : false\n        },\n        \n        /**\n         * 构造函数/实例初始化\n         * Constructor / instance initialization\n         * \n         * @param   {String}   id            编辑器的ID\n         * @param   {Object}   [options={}]  配置选项 Key/Value\n         * @returns {editormd}               返回editormd的实例对象\n         */\n        \n        init : function (id, options) {\n            \n            options              = options || {};\n            \n            if (typeof id === \"object\")\n            {\n                options = id;\n            }\n            \n            var _this            = this;\n            var classPrefix      = this.classPrefix  = editormd.classPrefix; \n            var settings         = this.settings     = $.extend(true, editormd.defaults, options);\n            \n            id                   = (typeof id === \"object\") ? settings.id : id;\n            \n            var editor           = this.editor       = $(\"#\" + id);\n            \n            this.id              = id;\n            this.lang            = settings.lang;\n            \n            var classNames       = this.classNames   = {\n                textarea : {\n                    html     : classPrefix + \"html-textarea\",\n                    markdown : classPrefix + \"markdown-textarea\"\n                }\n            };\n            \n            settings.pluginPath = (settings.pluginPath === \"\") ? settings.path + \"../plugins/\" : settings.pluginPath; \n            \n            this.state.watching = (settings.watch) ? true : false;\n            \n            if ( !editor.hasClass(\"editormd\") ) {\n                editor.addClass(\"editormd\");\n            }\n            \n            editor.css({\n                width  : (typeof settings.width  === \"number\") ? settings.width  + \"px\" : settings.width,\n                height : (typeof settings.height === \"number\") ? settings.height + \"px\" : settings.height\n            });\n            \n            if (settings.autoHeight)\n            {\n                editor.css(\"height\", \"auto\");\n            }\n                        \n            var markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            \n            if (markdownTextarea.length < 1)\n            {\n                editor.append(\"<textarea></textarea>\");\n                markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            }\n            \n            markdownTextarea.addClass(classNames.textarea.markdown).attr(\"placeholder\", settings.placeholder);\n            \n            if (typeof markdownTextarea.attr(\"name\") === \"undefined\" || markdownTextarea.attr(\"name\") === \"\")\n            {\n                markdownTextarea.attr(\"name\", (settings.name !== \"\") ? settings.name : id + \"-markdown-doc\");\n            }\n            \n            var appendElements = [\n                (!settings.readOnly) ? \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"preview-close-btn\\\"></a>\" : \"\",\n                ( (settings.saveHTMLToTextarea) ? \"<textarea class=\\\"\" + classNames.textarea.html + \"\\\" name=\\\"\" + id + \"-html-code\\\"></textarea>\" : \"\" ),\n                \"<div class=\\\"\" + classPrefix + \"preview\\\"><div class=\\\"markdown-body \" + classPrefix + \"preview-container\\\"></div></div>\",\n                \"<div class=\\\"\" + classPrefix + \"container-mask\\\" style=\\\"display:block;\\\"></div>\",\n                \"<div class=\\\"\" + classPrefix + \"mask\\\"></div>\"\n            ].join(\"\\n\");\n            \n            editor.append(appendElements).addClass(classPrefix + \"vertical\");\n            \n            if (settings.theme !== \"\") \n            {\n                editor.addClass(classPrefix + \"theme-\" + settings.theme);\n            }\n            \n            this.mask          = editor.children(\".\" + classPrefix + \"mask\");    \n            this.containerMask = editor.children(\".\" + classPrefix  + \"container-mask\");\n            \n            if (settings.markdown !== \"\")\n            {\n                markdownTextarea.val(settings.markdown);\n            }\n            \n            if (settings.appendMarkdown !== \"\")\n            {\n                markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown);\n            }\n            \n            this.htmlTextarea     = editor.children(\".\" + classNames.textarea.html);            \n            this.preview          = editor.children(\".\" + classPrefix + \"preview\");\n            this.previewContainer = this.preview.children(\".\" + classPrefix + \"preview-container\");\n            \n            if (settings.previewTheme !== \"\") \n            {\n                this.preview.addClass(classPrefix + \"preview-theme-\" + settings.previewTheme);\n            }\n            \n            if (typeof define === \"function\" && define.amd)\n            {\n                if (typeof katex !== \"undefined\") \n                {\n                    editormd.$katex = katex;\n                }\n                \n                if (settings.searchReplace && !settings.readOnly) \n                {\n                    editormd.loadCSS(settings.path + \"codemirror/addon/dialog/dialog\");\n                    editormd.loadCSS(settings.path + \"codemirror/addon/search/matchesonscrollbar\");\n                }\n            }\n            \n            if ((typeof define === \"function\" && define.amd) || !settings.autoLoadModules)\n            {\n                if (typeof CodeMirror !== \"undefined\") {\n                    editormd.$CodeMirror = CodeMirror;\n                }\n                \n                if (typeof marked     !== \"undefined\") {\n                    editormd.$marked     = marked;\n                }\n                \n                this.setCodeMirror().setToolbar().loadedDisplay();\n            } \n            else \n            {\n                this.loadQueues();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 所需组件加载队列\n         * Required components loading queue\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        loadQueues : function() {\n            var _this        = this;\n            var settings     = this.settings;\n            var loadPath     = settings.path;\n                                \n            var loadFlowChartOrSequenceDiagram = function() {\n                \n                if (editormd.isIE8) \n                {\n                    _this.loadedDisplay();\n                    \n                    return ;\n                }\n\n                if (settings.flowChart || settings.sequenceDiagram) \n                {\n                    editormd.loadScript(loadPath + \"raphael.min\", function() {\n\n                        editormd.loadScript(loadPath + \"underscore.min\", function() {  \n\n                            if (!settings.flowChart && settings.sequenceDiagram) \n                            {\n                                editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                    _this.loadedDisplay();\n                                });\n                            }\n                            else if (settings.flowChart && !settings.sequenceDiagram) \n                            {      \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        _this.loadedDisplay();\n                                    });\n                                });\n                            }\n                            else if (settings.flowChart && settings.sequenceDiagram) \n                            {  \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                            _this.loadedDisplay();\n                                        });\n                                    });\n                                });\n                            }\n                        });\n\n                    });\n                } \n                else\n                {\n                    _this.loadedDisplay();\n                }\n            }; \n\n            editormd.loadCSS(loadPath + \"codemirror/codemirror.min\");\n            \n            if (settings.searchReplace && !settings.readOnly)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/dialog/dialog\");\n                editormd.loadCSS(loadPath + \"codemirror/addon/search/matchesonscrollbar\");\n            }\n            \n            if (settings.codeFold)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/fold/foldgutter\");            \n            }\n            \n            editormd.loadScript(loadPath + \"codemirror/codemirror.min\", function() {\n                editormd.$CodeMirror = CodeMirror;\n                \n                editormd.loadScript(loadPath + \"codemirror/modes.min\", function() {\n                    \n                    editormd.loadScript(loadPath + \"codemirror/addons.min\", function() {\n                        \n                        _this.setCodeMirror();\n                        \n                        if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n                        {\n                            _this.loadedDisplay();\n                            \n                            return false;\n                        }\n                        \n                        _this.setToolbar();\n\n                        editormd.loadScript(loadPath + \"marked.min\", function() {\n\n                            editormd.$marked = marked;\n                                \n                            if (settings.previewCodeHighlight) \n                            {\n                                editormd.loadScript(loadPath + \"prettify.min\", function() {\n                                    loadFlowChartOrSequenceDiagram();\n                                });\n                            } \n                            else\n                            {                  \n                                loadFlowChartOrSequenceDiagram();\n                            }\n                        });\n                        \n                    });\n                    \n                });\n                \n            });\n\n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的整体主题，主要是工具栏\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setTheme : function(theme) {\n            var editor      = this.editor;\n            var oldTheme    = this.settings.theme;\n            var themePrefix = this.classPrefix + \"theme-\";\n            \n            editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.theme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 设置 CodeMirror（编辑区）的主题\n         * Setting CodeMirror (Editor area) theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setEditorTheme : function(theme) {  \n            var settings   = this.settings;  \n            settings.editorTheme = theme;  \n            \n            if (theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            this.cm.setOption(\"theme\", theme);\n            \n            return this;\n        },\n        \n        /**\n         * setEditorTheme() 的别名\n         * setEditorTheme() alias\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorTheme : function (theme) {            \n            this.setEditorTheme(theme);\n            \n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的主题\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setPreviewTheme : function(theme) {  \n            var preview     = this.preview;\n            var oldTheme    = this.settings.previewTheme;\n            var themePrefix = this.classPrefix + \"preview-theme-\";\n            \n            preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.previewTheme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 配置和初始化CodeMirror组件\n         * CodeMirror initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirror : function() { \n            var settings         = this.settings;\n            var editor           = this.editor;\n            \n            if (settings.editorTheme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            var codeMirrorConfig = {\n                mode                      : settings.mode,\n                theme                     : settings.editorTheme,\n                tabSize                   : settings.tabSize,\n                dragDrop                  : false,\n                autofocus                 : settings.autoFocus,\n                autoCloseTags             : settings.autoCloseTags,\n                readOnly                  : (settings.readOnly) ? \"nocursor\" : false,\n                indentUnit                : settings.indentUnit,\n                lineNumbers               : settings.lineNumbers,\n                lineWrapping              : settings.lineWrapping,\n                extraKeys                 : {\n                                                \"Ctrl-Q\": function(cm) { \n                                                    cm.foldCode(cm.getCursor()); \n                                                }\n                                            },\n                foldGutter                : settings.codeFold,\n                gutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n                matchBrackets             : settings.matchBrackets,\n                indentWithTabs            : settings.indentWithTabs,\n                styleActiveLine           : settings.styleActiveLine,\n                styleSelectedText         : settings.styleSelectedText,\n                autoCloseBrackets         : settings.autoCloseBrackets,\n                showTrailingSpace         : settings.showTrailingSpace,\n                highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === \"onselected\") ? false : /\\w/ } )\n            };\n            \n            this.codeEditor = this.cm        = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig);\n            this.codeMirror = this.cmElement = editor.children(\".CodeMirror\");\n            \n            if (settings.value !== \"\")\n            {\n                this.cm.setValue(settings.value);\n            }\n\n            this.codeMirror.css({\n                fontSize : settings.fontSize,\n                width    : (!settings.watch) ? \"100%\" : \"50%\"\n            });\n            \n            if (settings.autoHeight)\n            {\n                this.codeMirror.css(\"height\", \"auto\");\n                this.cm.setOption(\"viewportMargin\", Infinity);\n            }\n            \n            if (!settings.lineNumbers)\n            {\n                this.codeMirror.find(\".CodeMirror-gutters\").css(\"border-right\", \"none\");\n            }\n\n            return this;\n        },\n        \n        /**\n         * 获取CodeMirror的配置选项\n         * Get CodeMirror setting options\n         * \n         * @returns {Mixed}                  return CodeMirror setting option value\n         */\n        \n        getCodeMirrorOption : function(key) {            \n            return this.cm.getOption(key);\n        },\n        \n        /**\n         * 配置和重配置CodeMirror的选项\n         * CodeMirror setting options / resettings\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorOption : function(key, value) {\n            \n            this.cm.setOption(key, value);\n            \n            return this;\n        },\n        \n        /**\n         * 添加 CodeMirror 键盘快捷键\n         * Add CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        addKeyMap : function(map, bottom) {\n            this.cm.addKeyMap(map, bottom);\n            \n            return this;\n        },\n        \n        /**\n         * 移除 CodeMirror 键盘快捷键\n         * Remove CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        removeKeyMap : function(map) {\n            this.cm.removeKeyMap(map);\n            \n            return this;\n        },\n        \n        /**\n         * 跳转到指定的行\n         * Goto CodeMirror line\n         * \n         * @param   {String|Intiger}   line      line number or \"first\"|\"last\"\n         * @returns {editormd}                   返回editormd的实例对象\n         */\n        \n        gotoLine : function (line) {\n            \n            var settings = this.settings;\n            \n            if (!settings.gotoLine)\n            {\n                return this;\n            }\n            \n            var cm       = this.cm;\n            var editor   = this.editor;\n            var count    = cm.lineCount();\n            var preview  = this.preview;\n            \n            if (typeof line === \"string\")\n            {\n                if(line === \"last\")\n                {\n                    line = count;\n                }\n            \n                if (line === \"first\")\n                {\n                    line = 1;\n                }\n            }\n            \n            if (typeof line !== \"number\") \n            {  \n                alert(\"Error: The line number must be an integer.\");\n                return this;\n            }\n            \n            line  = parseInt(line) - 1;\n            \n            if (line > count)\n            {\n                alert(\"Error: The line number range 1-\" + count);\n                \n                return this;\n            }\n            \n            cm.setCursor( {line : line, ch : 0} );\n            \n            var scrollInfo   = cm.getScrollInfo();\n            var clientHeight = scrollInfo.clientHeight; \n            var coords       = cm.charCoords({line : line, ch : 0}, \"local\");\n            \n            cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2);\n            \n            if (settings.watch)\n            {            \n                var cmScroll  = this.codeMirror.find(\".CodeMirror-scroll\")[0];\n                var height    = $(cmScroll).height(); \n                var scrollTop = cmScroll.scrollTop;         \n                var percent   = (scrollTop / cmScroll.scrollHeight);\n\n                if (scrollTop === 0)\n                {\n                    preview.scrollTop(0);\n                } \n                else if (scrollTop + height >= cmScroll.scrollHeight - 16)\n                { \n                    preview.scrollTop(preview[0].scrollHeight);                    \n                } \n                else\n                {                    \n                    preview.scrollTop(preview[0].scrollHeight * percent);\n                }\n            }\n\n            cm.focus();\n            \n            return this;\n        },\n        \n        /**\n         * 扩展当前实例对象，可同时设置多个或者只设置一个\n         * Extend editormd instance object, can mutil setting.\n         * \n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        extend : function() {\n            if (typeof arguments[1] !== \"undefined\")\n            {\n                if (typeof arguments[1] === \"function\")\n                {\n                    arguments[1] = $.proxy(arguments[1], this);\n                }\n\n                this[arguments[0]] = arguments[1];\n            }\n            \n            if (typeof arguments[0] === \"object\" && typeof arguments[0].length === \"undefined\")\n            {\n                $.extend(true, this, arguments[0]);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 设置或扩展当前实例对象，单个设置\n         * Extend editormd instance object, one by one\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        set : function (key, value) {\n            \n            if (typeof value !== \"undefined\" && typeof value === \"function\")\n            {\n                value = $.proxy(value, this);\n            }\n            \n            this[key] = value;\n\n            return this;\n        },\n        \n        /**\n         * 重新配置\n         * Resetting editor options\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        config : function(key, value) {\n            var settings = this.settings;\n            \n            if (typeof key === \"object\")\n            {\n                settings = $.extend(true, settings, key);\n            }\n            \n            if (typeof key === \"string\")\n            {\n                settings[key] = value;\n            }\n            \n            this.settings = settings;\n            this.recreate();\n            \n            return this;\n        },\n        \n        /**\n         * 注册事件处理方法\n         * Bind editor event handle\n         * \n         * @param   {String}     eventType      event type\n         * @param   {Function}   callback       回调函数\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        on : function(eventType, callback) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {                \n                settings[\"on\" + eventType] = $.proxy(callback, this);      \n            }\n\n            return this;\n        },\n        \n        /**\n         * 解除事件处理方法\n         * Unbind editor event handle\n         * \n         * @param   {String}   eventType          event type\n         * @returns {editormd}                    this(editormd instance object.)\n         */\n        \n        off : function(eventType) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {\n                settings[\"on\" + eventType] = function(){};\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 显示工具栏\n         * Display toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showToolbar : function(callback) {\n            var settings = this.settings;\n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find(\".\" + this.classPrefix + \"menu\").html() === \"\") )\n            {\n                this.setToolbar();\n            }\n            \n            settings.toolbar = true; \n            \n            this.toolbar.show();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏工具栏\n         * Hide toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}                         this(editormd instance object.)\n         */\n        \n        hideToolbar : function(callback) { \n            var settings = this.settings;\n            \n            settings.toolbar = false;  \n            this.toolbar.hide();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 页面滚动时工具栏的固定定位\n         * Set toolbar in window scroll auto fixed position\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarAutoFixed : function(fixed) {\n            \n            var state    = this.state;\n            var editor   = this.editor;\n            var toolbar  = this.toolbar;\n            var settings = this.settings;\n            \n            if (typeof fixed !== \"undefined\")\n            {\n                settings.toolbarAutoFixed = fixed;\n            }\n            \n            var autoFixedHandle = function(){\n                var $window = $(window);\n                var top     = $window.scrollTop();\n                \n                if (!settings.toolbarAutoFixed)\n                {\n                    return false;\n                }\n\n                if (top - editor.offset().top > 10 && top < editor.height())\n                {\n                    toolbar.css({\n                        position : \"fixed\",\n                        width    : editor.width() + \"px\",\n                        left     : ($window.width() - editor.width()) / 2 + \"px\"\n                    });\n                }\n                else\n                {\n                    toolbar.css({\n                        position : \"absolute\",\n                        width    : \"100%\",\n                        left     : 0\n                    });\n                }\n            };\n            \n            if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed)\n            {\n                $(window).bind(\"scroll\", autoFixedHandle);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 配置和初始化工具栏\n         * Set toolbar and Initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbar : function() {\n            var settings    = this.settings;  \n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            var editor      = this.editor;\n            var preview     = this.preview;\n            var classPrefix = this.classPrefix;\n            \n            var toolbar     = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            \n            if (settings.toolbar && toolbar.length < 1)\n            {            \n                var toolbarHTML = \"<div class=\\\"\" + classPrefix + \"toolbar\\\"><div class=\\\"\" + classPrefix + \"toolbar-container\\\"><ul class=\\\"\" + classPrefix + \"menu\\\"></ul></div></div>\";\n                \n                editor.append(toolbarHTML);\n                toolbar = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            }\n            \n            if (!settings.toolbar) \n            {\n                toolbar.hide();\n                \n                return this;\n            }\n            \n            toolbar.show();\n            \n            var icons       = (typeof settings.toolbarIcons === \"function\") ? settings.toolbarIcons() \n                            : ((typeof settings.toolbarIcons === \"string\")  ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons);\n            \n            var toolbarMenu = toolbar.find(\".\" + this.classPrefix + \"menu\"), menu = \"\";\n            var pullRight   = false;\n            \n            for (var i = 0, len = icons.length; i < len; i++)\n            {\n                var name = icons[i];\n\n                if (name === \"||\") \n                { \n                    pullRight = true;\n                } \n                else if (name === \"|\")\n                {\n                    menu += \"<li class=\\\"divider\\\" unselectable=\\\"on\\\">|</li>\";\n                }\n                else\n                {\n                    var isHeader = (/h(\\d)/.test(name));\n                    var index    = name;\n                    \n                    if (name === \"watch\" && !settings.watch) {\n                        index = \"unwatch\";\n                    }\n                    \n                    var title     = settings.lang.toolbar[index];\n                    var iconTexts = settings.toolbarIconTexts[index];\n                    var iconClass = settings.toolbarIconsClass[index];\n                    \n                    title     = (typeof title     === \"undefined\") ? \"\" : title;\n                    iconTexts = (typeof iconTexts === \"undefined\") ? \"\" : iconTexts;\n                    iconClass = (typeof iconClass === \"undefined\") ? \"\" : iconClass;\n\n                    var menuItem = pullRight ? \"<li class=\\\"pull-right\\\">\" : \"<li>\";\n                    \n                    if (typeof settings.toolbarCustomIcons[name] !== \"undefined\" && typeof settings.toolbarCustomIcons[name] !== \"function\")\n                    {\n                        menuItem += settings.toolbarCustomIcons[name];\n                    }\n                    else \n                    {\n                        menuItem += \"<a href=\\\"javascript:;\\\" title=\\\"\" + title + \"\\\" unselectable=\\\"on\\\">\";\n                        menuItem += \"<i class=\\\"fa \" + iconClass + \"\\\" name=\\\"\"+name+\"\\\" unselectable=\\\"on\\\">\"+((isHeader) ? name.toUpperCase() : ( (iconClass === \"\") ? iconTexts : \"\") ) + \"</i>\";\n                        menuItem += \"</a>\";\n                    }\n\n                    menuItem += \"</li>\";\n\n                    menu = pullRight ? menuItem + menu : menu + menuItem;\n                }\n            }\n\n            toolbarMenu.html(menu);\n            \n            toolbarMenu.find(\"[title=\\\"Lowercase\\\"]\").attr(\"title\", settings.lang.toolbar.lowercase);\n            toolbarMenu.find(\"[title=\\\"ucwords\\\"]\").attr(\"title\", settings.lang.toolbar.ucwords);\n            \n            this.setToolbarHandler();\n            this.setToolbarAutoFixed();\n\n            return this;\n        },\n        \n        /**\n         * 工具栏图标事件处理对象序列\n         * Get toolbar icons event handlers\n         * \n         * @param   {Object}   cm    CodeMirror的实例对象\n         * @param   {String}   name  要获取的事件处理器名称\n         * @returns {Object}         返回处理对象序列\n         */\n            \n        dialogLockScreen : function() {\n            $.proxy(editormd.dialogLockScreen, this)();\n            \n            return this;\n        },\n\n        dialogShowMask : function(dialog) {\n            $.proxy(editormd.dialogShowMask, this)(dialog);\n            \n            return this;\n        },\n        \n        getToolbarHandles : function(name) {  \n            var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers;\n            \n            return (name && typeof toolbarIconHandlers[name] !== \"undefined\") ? toolbarHandlers[name] : toolbarHandlers;\n        },\n        \n        /**\n         * 工具栏图标事件处理器\n         * Bind toolbar icons event handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarHandler : function() {\n            var _this               = this;\n            var settings            = this.settings;\n            \n            if (!settings.toolbar || settings.readOnly) {\n                return this;\n            }\n            \n            var toolbar             = this.toolbar;\n            var cm                  = this.cm;\n            var classPrefix         = this.classPrefix;           \n            var toolbarIcons        = this.toolbarIcons = toolbar.find(\".\" + classPrefix + \"menu > li > a\");  \n            var toolbarIconHandlers = this.getToolbarHandles();  \n                \n            toolbarIcons.bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(event) {\n\n                var icon                = $(this).children(\".fa\");\n                var name                = icon.attr(\"name\");\n                var cursor              = cm.getCursor();\n                var selection           = cm.getSelection();\n\n                if (name === \"\") {\n                    return ;\n                }\n                \n                _this.activeIcon = icon;\n\n                if (typeof toolbarIconHandlers[name] !== \"undefined\") \n                {\n                    $.proxy(toolbarIconHandlers[name], _this)(cm);\n                }\n                else \n                {\n                    if (typeof settings.toolbarHandlers[name] !== \"undefined\") \n                    {\n                        $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection);\n                    }\n                }\n                \n                if (name !== \"link\" && name !== \"reference-link\" && name !== \"image\" && name !== \"code-block\" && \n                    name !== \"preformatted-text\" && name !== \"watch\" && name !== \"preview\" && name !== \"search\" && name !== \"fullscreen\" && name !== \"info\") \n                {\n                    cm.focus();\n                }\n\n                return false;\n\n            });\n\n            return this;\n        },\n        \n        /**\n         * 动态创建对话框\n         * Creating custom dialogs\n         * \n         * @param   {Object} options  配置项键值对 Key/Value\n         * @returns {dialog}          返回创建的dialog的jQuery实例对象\n         */\n        \n        createDialog : function(options) {            \n            return $.proxy(editormd.createDialog, this)(options);\n        },\n        \n        /**\n         * 创建关于Editor.md的对话框\n         * Create about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        createInfoDialog : function() {\n            var _this        = this;\n\t\t\tvar editor       = this.editor;\n            var classPrefix  = this.classPrefix;  \n            \n            var infoDialogHTML = [\n                \"<div class=\\\"\" + classPrefix + \"dialog \" + classPrefix + \"dialog-info\\\" style=\\\"\\\">\",\n                \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\",\n                \"<h1><i class=\\\"editormd-logo editormd-logo-lg editormd-logo-color\\\"></i> \" + editormd.title + \"<small>v\" + editormd.version + \"</small></h1>\",\n                \"<p>\" + this.lang.description + \"</p>\",\n                \"<p style=\\\"margin: 10px 0 20px 0;\\\"><a href=\\\"\" + editormd.homePage + \"\\\" target=\\\"_blank\\\">\" + editormd.homePage + \" <i class=\\\"fa fa-external-link\\\"></i></a></p>\",\n                \"<p style=\\\"font-size: 0.85em;\\\">Copyright &copy; 2015 <a href=\\\"https://github.com/pandao\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">Pandao</a>, The <a href=\\\"https://github.com/pandao/editor.md/blob/master/LICENSE\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">MIT</a> License.</p>\",\n                \"</div>\",\n                \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\",\n                \"</div>\"\n            ].join(\"\\n\");\n\n            editor.append(infoDialogHTML);\n            \n            var infoDialog  = this.infoDialog = editor.children(\".\" + classPrefix + \"dialog-info\");\n\n            infoDialog.find(\".\" + classPrefix + \"dialog-close\").bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function() {\n                _this.hideInfoDialog();\n            });\n            \n            infoDialog.css(\"border\", (editormd.isIE8) ? \"1px solid #ddd\" : \"\").css(\"z-index\", editormd.dialogZindex).show();\n            \n            this.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 关于Editor.md对话居中定位\n         * Editor.md dialog position handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        infoDialogPosition : function() {\n            var infoDialog = this.infoDialog;\n            \n\t\t\tvar _infoDialogPosition = function() {\n\t\t\t\tinfoDialog.css({\n\t\t\t\t\ttop  : ($(window).height() - infoDialog.height()) / 2 + \"px\",\n\t\t\t\t\tleft : ($(window).width()  - infoDialog.width()) / 2  + \"px\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t_infoDialogPosition();\n\n\t\t\t$(window).resize(_infoDialogPosition);\n            \n            return this;\n        },\n        \n        /**\n         * 显示关于Editor.md\n         * Display about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showInfoDialog : function() {\n\n            $(\"html,body\").css(\"overflow-x\", \"hidden\");\n            \n            var _this       = this;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;         \n\t\t\tvar infoDialog  = this.infoDialog = editor.children(\".\" + this.classPrefix + \"dialog-info\");\n            \n            if (infoDialog.length < 1)\n            {\n                this.createInfoDialog();\n            }\n            \n            this.lockScreen(true);\n            \n            this.mask.css({\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t}).show();\n\n\t\t\tinfoDialog.css(\"z-index\", editormd.dialogZindex).show();\n\n\t\t\tthis.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏关于Editor.md\n         * Hide about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        hideInfoDialog : function() {            \n            $(\"html,body\").css(\"overflow-x\", \"\");\n            this.infoDialog.hide();\n            this.mask.hide();\n            this.lockScreen(false);\n\n            return this;\n        },\n        \n        /**\n         * 锁屏\n         * lock screen\n         * \n         * @param   {Boolean}    lock    Boolean 布尔值，是否锁屏\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        lockScreen : function(lock) {\n            editormd.lockScreen(lock);\n            this.resize();\n\n            return this;\n        },\n        \n        /**\n         * 编辑器界面重建，用于动态语言包或模块加载等\n         * Recreate editor\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        recreate : function() {\n            var _this            = this;\n            var editor           = this.editor;\n            var settings         = this.settings;\n            \n            this.codeMirror.remove();\n            \n            this.setCodeMirror();\n\n            if (!settings.readOnly) \n            {\n                if (editor.find(\".editormd-dialog\").length > 0) {\n                    editor.find(\".editormd-dialog\").remove();\n                }\n                \n                if (settings.toolbar) \n                {  \n                    this.getToolbarHandles();                  \n                    this.setToolbar();\n                }\n            }\n            \n            this.loadedDisplay(true);\n\n            return this;\n        },\n        \n        /**\n         * 高亮预览HTML的pre代码部分\n         * highlight of preview codes\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        previewCodeHighlight : function() {    \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (settings.previewCodeHighlight) \n            {\n                previewContainer.find(\"pre\").addClass(\"prettyprint linenums\");\n                \n                if (typeof prettyPrint !== \"undefined\")\n                {                    \n                    prettyPrint();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析TeX(KaTeX)科学公式\n         * TeX(KaTeX) Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        katexRender : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            this.previewContainer.find(\".\" + editormd.classNames.tex).each(function(){\n                var tex  = $(this);\n                editormd.$katex.render(tex.text(), tex[0]);\n                \n                tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n            });   \n\n            return this;\n        },\n        \n        /**\n         * 解析和渲染流程图及时序图\n         * FlowChart and SequenceDiagram Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        flowChartAndSequenceDiagramRender : function() {\n            var $this            = this;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (editormd.isIE8) {\n                return this;\n            }\n\n            if (settings.flowChart) {\n                if (flowchartTimer === null) {\n                    return this;\n                }\n                \n                previewContainer.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                previewContainer.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n                    \n            var preview    = $this.preview;\n            var codeMirror = $this.codeMirror;\n            var codeView   = codeMirror.find(\".CodeMirror-scroll\");\n\n            var height    = codeView.height();\n            var scrollTop = codeView.scrollTop();                    \n            var percent   = (scrollTop / codeView[0].scrollHeight);\n            var tocHeight = 0;\n\n            preview.find(\".markdown-toc-list\").each(function(){\n                tocHeight += $(this).height();\n            });\n\n            var tocMenuHeight = preview.find(\".editormd-toc-menu\").height(); \n            tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n            if (scrollTop === 0) \n            {\n                preview.scrollTop(0);\n            } \n            else if (scrollTop + height >= codeView[0].scrollHeight - 16)\n            { \n                preview.scrollTop(preview[0].scrollHeight);                        \n            } \n            else\n            {                  \n                preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 注册键盘快捷键处理\n         * Register CodeMirror keyMaps (keyboard shortcuts).\n         * \n         * @param   {Object}    keyMap      KeyMap key/value {\"(Ctrl/Shift/Alt)-Key\" : function(){}}\n         * @returns {editormd}              return this\n         */\n        \n        registerKeyMaps : function(keyMap) {\n            \n            var _this           = this;\n            var cm              = this.cm;\n            var settings        = this.settings;\n            var toolbarHandlers = editormd.toolbarHandlers;\n            var disabledKeyMaps = settings.disabledKeyMaps;\n            \n            keyMap              = keyMap || null;\n            \n            if (keyMap)\n            {\n                for (var i in keyMap)\n                {\n                    if ($.inArray(i, disabledKeyMaps) < 0)\n                    {\n                        var map = {};\n                        map[i]  = keyMap[i];\n\n                        cm.addKeyMap(keyMap);\n                    }\n                }\n            }\n            else\n            {\n                for (var k in editormd.keyMaps)\n                {\n                    var _keyMap = editormd.keyMaps[k];\n                    var handle = (typeof _keyMap === \"string\") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this);\n                    \n                    if ($.inArray(k, [\"F9\", \"F10\", \"F11\"]) < 0 && $.inArray(k, disabledKeyMaps) < 0)\n                    {\n                        var _map = {};\n                        _map[k] = handle;\n\n                        cm.addKeyMap(_map);\n                    }\n                }\n                \n                $(window).keydown(function(event) {\n                    \n                    var keymaps = {\n                        \"120\" : \"F9\",\n                        \"121\" : \"F10\",\n                        \"122\" : \"F11\"\n                    };\n                    \n                    if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 )\n                    {\n                        switch (event.keyCode)\n                        {\n                            case 120:\n                                    $.proxy(toolbarHandlers[\"watch\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 121:\n                                    $.proxy(toolbarHandlers[\"preview\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 122:\n                                    $.proxy(toolbarHandlers[\"fullscreen\"], _this)();                        \n                                    return false;\n                                break;\n                                \n                            default:\n                                break;\n                        }\n                    }\n                });\n            }\n\n            return this;\n        },\n        \n        /**\n         * 绑定同步滚动\n         * \n         * @returns {editormd} return this\n         */\n        \n        bindScrollEvent : function() {\n            \n            var _this            = this;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var mouseOrTouch     = editormd.mouseOrTouch;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n                \n            var cmBindScroll = function() {    \n                codeMirror.find(\".CodeMirror-scroll\").bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();                    \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    \n                    var tocHeight = 0;\n                    \n                    preview.find(\".markdown-toc-list\").each(function(){\n                        tocHeight += $(this).height();\n                    });\n                    \n                    var tocMenuHeight = preview.find(\".editormd-toc-menu\").height();\n                    tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n                    if (scrollTop === 0) \n                    {\n                        preview.scrollTop(0);\n                    } \n                    else if (scrollTop + height >= $(this)[0].scrollHeight - 16)\n                    { \n                        preview.scrollTop(preview[0].scrollHeight);                        \n                    } \n                    else\n                    {\n                        preview.scrollTop((preview[0].scrollHeight  + tocHeight + tocMenuHeight) * percent);\n                    }\n                    \n                    $.proxy(settings.onscroll, _this)(event);\n                });\n            };\n\n            var cmUnbindScroll = function() {\n                codeMirror.find(\".CodeMirror-scroll\").unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            };\n\n            var previewBindScroll = function() {\n                \n                preview.bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();         \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    var codeView  = codeMirror.find(\".CodeMirror-scroll\");\n\n                    if(scrollTop === 0) \n                    {\n                        codeView.scrollTop(0);\n                    }\n                    else if (scrollTop + height >= $(this)[0].scrollHeight)\n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight);                        \n                    }\n                    else \n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onpreviewscroll, _this)(event);\n                });\n\n            };\n\n            var previewUnbindScroll = function() {\n                preview.unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            }; \n\n\t\t\tcodeMirror.bind({\n\t\t\t\tmouseover  : cmBindScroll,\n\t\t\t\tmouseout   : cmUnbindScroll,\n\t\t\t\ttouchstart : cmBindScroll,\n\t\t\t\ttouchend   : cmUnbindScroll\n\t\t\t});\n            \n            if (settings.syncScrolling === \"single\") {\n                return this;\n            }\n            \n\t\t\tpreview.bind({\n\t\t\t\tmouseover  : previewBindScroll,\n\t\t\t\tmouseout   : previewUnbindScroll,\n\t\t\t\ttouchstart : previewBindScroll,\n\t\t\t\ttouchend   : previewUnbindScroll\n\t\t\t});\n\n            return this;\n        },\n        \n        bindChangeEvent : function() {\n            \n            var _this            = this;\n            var cm               = this.cm;\n            var settings         = this.settings;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n            \n            cm.on(\"change\", function(_cm, changeObj) {\n                \n                if (settings.watch)\n                {\n                    _this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                }\n                \n                timer = setTimeout(function() {\n                    clearTimeout(timer);\n                    _this.save();\n                    timer = null;\n                }, settings.delay);\n            });\n\n            return this;\n        },\n        \n        /**\n         * 加载队列完成之后的显示处理\n         * Display handle of the module queues loaded after.\n         * \n         * @param   {Boolean}   recreate   是否为重建编辑器\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        loadedDisplay : function(recreate) {\n            \n            recreate             = recreate || false;\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            \n            this.containerMask.hide();\n            \n            this.save();\n            \n            if (settings.watch) {\n                preview.show();\n            }\n            \n            editor.data(\"oldWidth\", editor.width()).data(\"oldHeight\", editor.height()); // 为了兼容Zepto\n            \n            this.resize();\n            this.registerKeyMaps();\n            \n            $(window).resize(function(){\n                _this.resize();\n            });\n            \n            this.bindScrollEvent().bindChangeEvent();\n            \n            if (!recreate)\n            {\n                $.proxy(settings.onload, this)();\n            }\n            \n            this.state.loaded = true;\n\n            return this;\n        },\n        \n        /**\n         * 设置编辑器的宽度\n         * Set editor width\n         * \n         * @param   {Number|String} width  编辑器宽度值\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        width : function(width) {\n                \n            this.editor.css(\"width\", (typeof width === \"number\") ? width  + \"px\" : width);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 设置编辑器的高度\n         * Set editor height\n         * \n         * @param   {Number|String} height  编辑器高度值\n         * @returns {editormd}              返回editormd的实例对象\n         */\n        \n        height : function(height) {\n                \n            this.editor.css(\"height\", (typeof height === \"number\")  ? height  + \"px\" : height);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 调整编辑器的尺寸和布局\n         * Resize editor layout\n         * \n         * @param   {Number|String} [width=null]  编辑器宽度值\n         * @param   {Number|String} [height=null] 编辑器高度值\n         * @returns {editormd}                    返回editormd的实例对象\n         */\n        \n        resize : function(width, height) {\n            \n            width  = width  || null;\n            height = height || null;\n            \n            var state      = this.state;\n            var editor     = this.editor;\n            var preview    = this.preview;\n            var toolbar    = this.toolbar;\n            var settings   = this.settings;\n            var codeMirror = this.codeMirror;\n            \n            if (width)\n            {\n                editor.css(\"width\", (typeof width  === \"number\") ? width  + \"px\" : width);\n            }\n            \n            if (settings.autoHeight && !state.fullscreen && !state.preview)\n            {\n                editor.css(\"height\", \"auto\");\n                codeMirror.css(\"height\", \"auto\");\n            } \n            else \n            {\n                if (height) \n                {\n                    editor.css(\"height\", (typeof height === \"number\") ? height + \"px\" : height);\n                }\n                \n                if (state.fullscreen)\n                {\n                    editor.height($(window).height());\n                }\n\n                if (settings.toolbar && !settings.readOnly) \n                {\n                    codeMirror.css(\"margin-top\", toolbar.height() + 1).height(editor.height() - toolbar.height());\n                } \n                else\n                {\n                    codeMirror.css(\"margin-top\", 0).height(editor.height());\n                }\n            }\n            \n            if(settings.watch) \n            {\n                codeMirror.width(editor.width() / 2);\n                preview.width((!state.preview) ? editor.width() / 2 : editor.width());\n                \n                this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                \n                if (settings.toolbar && !settings.readOnly) \n                {\n                    preview.css(\"top\", toolbar.height() + 1);\n                } \n                else \n                {\n                    preview.css(\"top\", 0);\n                }\n                \n                if (settings.autoHeight && !state.fullscreen && !state.preview)\n                {\n                    preview.height(\"\");\n                }\n                else\n                {                \n                    var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height();\n                    \n                    preview.height(previewHeight);\n                }\n            } \n            else \n            {\n                codeMirror.width(editor.width());\n                preview.hide();\n            }\n            \n            if (state.loaded) \n            {\n                $.proxy(settings.onresize, this)();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析和保存Markdown代码\n         * Parse & Saving Markdown source code\n         * \n         * @returns {editormd}     返回editormd的实例对象\n         */\n        \n        save : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            var _this            = this;\n            var state            = this.state;\n            var settings         = this.settings;\n            var cm               = this.cm;            \n            var cmValue          = cm.getValue();\n            var previewContainer = this.previewContainer;\n\n            if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n            {\n                this.markdownTextarea.val(cmValue);\n                \n                return this;\n            }\n            \n            var marked          = editormd.$marked;\n            var markdownToC     = this.markdownToC = [];            \n            var rendererOptions = this.markedRendererOptions = {  \n                toc                  : settings.toc,\n                tocm                 : settings.tocm,\n                tocStartLevel        : settings.tocStartLevel,\n                pageBreak            : settings.pageBreak,\n                taskList             : settings.taskList,\n                emoji                : settings.emoji,\n                tex                  : settings.tex,\n                atLink               : settings.atLink,           // for @link\n                emailLink            : settings.emailLink,        // for mail address auto link\n                flowChart            : settings.flowChart,\n                sequenceDiagram      : settings.sequenceDiagram,\n                previewCodeHighlight : settings.previewCodeHighlight,\n            };\n            \n            var markedOptions = this.markedOptions = {\n                renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n                gfm         : true,\n                tables      : true,\n                breaks      : true,\n                pedantic    : false,\n                sanitize    : (settings.htmlDecode) ? false : true,  // 关闭忽略HTML标签，即开启识别HTML标签，默认为false\n                smartLists  : true,\n                smartypants : true\n            };\n            \n            marked.setOptions(markedOptions);\n                    \n            var newMarkdownDoc = editormd.$marked(cmValue, markedOptions);\n            \n            //console.info(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode);\n            \n            //console.error(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            this.markdownTextarea.text(cmValue);\n            \n            cm.save();\n            \n            if (settings.saveHTMLToTextarea) \n            {\n                this.htmlTextarea.text(newMarkdownDoc);\n            }\n            \n            if(settings.watch || (!settings.watch && state.preview))\n            {\n                previewContainer.html(newMarkdownDoc);\n\n                this.previewCodeHighlight();\n                \n                if (settings.toc) \n                {\n                    var tocContainer = (settings.tocContainer === \"\") ? previewContainer : $(settings.tocContainer);\n                    var tocMenu      = tocContainer.find(\".\" + this.classPrefix + \"toc-menu\");\n                    \n                    tocContainer.attr(\"previewContainer\", (settings.tocContainer === \"\") ? \"true\" : \"false\");\n                    \n                    if (settings.tocContainer !== \"\" && tocMenu.length > 0)\n                    {\n                        tocMenu.remove();\n                    }\n                    \n                    editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n                    if (settings.tocDropdown || tocContainer.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n                    {\n                        editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== \"\") ? settings.tocTitle : this.lang.tocTitle);\n                    }\n            \n                    if (settings.tocContainer !== \"\")\n                    {\n                        previewContainer.find(\".markdown-toc\").css(\"border\", \"none\");\n                    }\n                }\n                \n                if (settings.tex)\n                {\n                    if (!editormd.kaTeXLoaded && settings.autoLoadModules) \n                    {\n                        editormd.loadKaTeX(function() {\n                            editormd.$katex = katex;\n                            editormd.kaTeXLoaded = true;\n                            _this.katexRender();\n                        });\n                    } \n                    else \n                    {\n                        editormd.$katex = katex;\n                        this.katexRender();\n                    }\n                }                \n                \n                if (settings.flowChart || settings.sequenceDiagram)\n                {\n                    flowchartTimer = setTimeout(function(){\n                        clearTimeout(flowchartTimer);\n                        _this.flowChartAndSequenceDiagramRender();\n                        flowchartTimer = null;\n                    }, 10);\n                }\n\n                if (state.loaded) \n                {\n                    $.proxy(settings.onchange, this)();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 聚焦光标位置\n         * Focusing the cursor position\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        focus : function() {\n            this.cm.focus();\n\n            return this;\n        },\n        \n        /**\n         * 设置光标的位置\n         * Set cursor position\n         * \n         * @param   {Object}    cursor 要设置的光标位置键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setCursor : function(cursor) {\n            this.cm.setCursor(cursor);\n\n            return this;\n        },\n        \n        /**\n         * 获取当前光标的位置\n         * Get the current position of the cursor\n         * \n         * @returns {Cursor}         返回一个光标Cursor对象\n         */\n        \n        getCursor : function() {\n            return this.cm.getCursor();\n        },\n        \n        /**\n         * 设置光标选中的范围\n         * Set cursor selected ranges\n         * \n         * @param   {Object}    from   开始位置的光标键值对象，例：{line:1, ch:0}\n         * @param   {Object}    to     结束位置的光标键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setSelection : function(from, to) {\n        \n            this.cm.setSelection(from, to);\n        \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本\n         * Get the texts from cursor selected\n         * \n         * @returns {String}         返回选中文本的字符串形式\n         */\n        \n        getSelection : function() {\n            return this.cm.getSelection();\n        },\n        \n        /**\n         * 设置光标选中的文本范围\n         * Set the cursor selection ranges\n         * \n         * @param   {Array}    ranges  cursor selection ranges array\n         * @returns {Array}            return this\n         */\n        \n        setSelections : function(ranges) {\n            this.cm.setSelections(ranges);\n            \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本范围\n         * Get the cursor selection ranges\n         * \n         * @returns {Array}         return selection ranges array\n         */\n        \n        getSelections : function() {\n            return this.cm.getSelections();\n        },\n        \n        /**\n         * 替换当前光标选中的文本或在当前光标处插入新字符\n         * Replace the text at the current cursor selected or insert a new character at the current cursor position\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        replaceSelection : function(value) {\n            this.cm.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 在当前光标处插入新字符\n         * Insert a new character at the current cursor position\n         *\n         * 同replaceSelection()方法\n         * With the replaceSelection() method\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        insertValue : function(value) {\n            this.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 追加markdown\n         * append Markdown to editor\n         * \n         * @param   {String}    md     要追加的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        appendMarkdown : function(md) {\n            var settings = this.settings;\n            var cm       = this.cm;\n            \n            cm.setValue(cm.getValue() + md);\n            \n            return this;\n        },\n        \n        /**\n         * 设置和传入编辑器的markdown源文档\n         * Set Markdown source document\n         * \n         * @param   {String}    md     要传入的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setMarkdown : function(md) {\n            this.cm.setValue(md || this.settings.markdown);\n            \n            return this;\n        },\n        \n        /**\n         * 获取编辑器的markdown源文档\n         * Set Editor.md markdown/CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getMarkdown : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 获取编辑器的源文档\n         * Get CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getValue : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 设置编辑器的源文档\n         * Set CodeMirror value\n         * \n         * @param   {String}     value   set code/value/string/text\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        setValue : function(value) {\n            this.cm.setValue(value);\n            \n            return this;\n        },\n        \n        /**\n         * 清空编辑器\n         * Empty CodeMirror editor container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        clear : function() {\n            this.cm.setValue(\"\");\n            \n            return this;\n        },\n        \n        /**\n         * 获取解析后存放在Textarea的HTML源码\n         * Get parsed html code from Textarea\n         * \n         * @returns {String}               返回HTML源码\n         */\n        \n        getHTML : function() {\n            if (!this.settings.saveHTMLToTextarea)\n            {\n                alert(\"Error: settings.saveHTMLToTextarea == false\");\n\n                return false;\n            }\n            \n            return this.htmlTextarea.val();\n        },\n        \n        /**\n         * getHTML()的别名\n         * getHTML (alias)\n         * \n         * @returns {String}           Return html code 返回HTML源码\n         */\n        \n        getTextareaSavedHTML : function() {\n            return this.getHTML();\n        },\n        \n        /**\n         * 获取预览窗口的HTML源码\n         * Get html from preview container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getPreviewedHTML : function() {\n            if (!this.settings.watch)\n            {\n                alert(\"Error: settings.watch == false\");\n\n                return false;\n            }\n            \n            return this.previewContainer.html();\n        },\n        \n        /**\n         * 开启实时预览\n         * Enable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        watch : function(callback) {     \n            var settings        = this.settings;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0)\n            {\n                return this;\n            }\n            \n            this.state.watching = settings.watch = true;\n            this.preview.show();\n            \n            if (this.toolbar)\n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon        = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.watch);\n                icon.removeClass(unWatchIcon).addClass(watchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"1px solid #ddd\").width(this.editor.width() / 2); \n            \n            timer = 0;\n            \n            this.save().resize();\n            \n            if (!settings.onwatch)\n            {\n                settings.onwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 关闭实时预览\n         * Disable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        unwatch : function(callback) {\n            var settings        = this.settings;\n            this.state.watching = settings.watch = false;\n            this.preview.hide();\n            \n            if (this.toolbar) \n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon    = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.unwatch);\n                icon.removeClass(watchIcon).addClass(unWatchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"none\").width(this.editor.width());\n            \n            this.resize();\n            \n            if (!settings.onunwatch)\n            {\n                settings.onunwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onunwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 显示编辑器\n         * Show editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        show : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.show(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器\n         * Hide editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        hide : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.hide(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器部分，只预览HTML\n         * Enter preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewing : function() {\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var previewContainer = this.previewContainer;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0) {\n                return this;\n            }\n            \n            if (settings.toolbar && toolbar) {\n                toolbar.toggle();\n                toolbar.find(\".fa[name=preview]\").toggleClass(\"active\");\n            }\n            \n            codeMirror.toggle();\n            \n            var escHandle = function(event) {\n                if (event.shiftKey && event.keyCode === 27) {\n                    _this.previewed();\n                }\n            };\n\n            if (codeMirror.css(\"display\") === \"none\") // 为了兼容Zepto，而不使用codeMirror.is(\":hidden\")\n            {\n                this.state.preview = true;\n\n                if (this.state.fullscreen) {\n                    preview.css(\"background\", \"#fff\");\n                }\n                \n                editor.find(\".\" + this.classPrefix + \"preview-close-btn\").show().bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(){\n                    _this.previewed();\n                });\n            \n                if (!settings.watch)\n                {\n                    this.save();\n                } \n                else \n                {\n                    previewContainer.css(\"padding\", \"\");\n                }\n                \n                previewContainer.addClass(this.classPrefix + \"preview-active\");\n\n                preview.show().css({\n                    position  : \"\",\n                    top       : 0,\n                    width     : editor.width(),\n                    height    : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height()\n                });\n                \n                if (this.state.loaded)\n                {\n                    $.proxy(settings.onpreviewing, this)();\n                }\n\n                $(window).bind(\"keyup\", escHandle);\n            } \n            else \n            {\n                $(window).unbind(\"keyup\", escHandle);\n                this.previewed();\n            }\n        },\n        \n        /**\n         * 显示编辑器部分，退出只预览HTML\n         * Exit preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewed : function() {\n            \n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            var previewCloseBtn  = editor.find(\".\" + this.classPrefix + \"preview-close-btn\");\n\n            this.state.preview   = false;\n            \n            this.codeMirror.show();\n            \n            if (settings.toolbar) {\n                toolbar.show();\n            }\n            \n            preview[(settings.watch) ? \"show\" : \"hide\"]();\n            \n            previewCloseBtn.hide().unbind(editormd.mouseOrTouch(\"click\", \"touchend\"));\n                \n            previewContainer.removeClass(this.classPrefix + \"preview-active\");\n                \n            if (settings.watch)\n            {\n                previewContainer.css(\"padding\", \"20px\");\n            }\n            \n            preview.css({ \n                background : null,\n                position   : \"absolute\",\n                width      : editor.width() / 2,\n                height     : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height() - toolbar.height(),\n                top        : (settings.toolbar)    ? toolbar.height() : 0\n            });\n\n            if (this.state.loaded)\n            {\n                $.proxy(settings.onpreviewed, this)();\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 编辑器全屏显示\n         * Fullscreen show\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreen : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var fullscreenClass  = this.classPrefix + \"fullscreen\";\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().toggleClass(\"active\"); \n            }\n            \n            var escHandle = function(event) {\n                if (!event.shiftKey && event.keyCode === 27) \n                {\n                    if (state.fullscreen)\n                    {\n                        _this.fullscreenExit();\n                    }\n                }\n            };\n\n            if (!editor.hasClass(fullscreenClass)) \n            {\n                state.fullscreen = true;\n\n                $(\"html,body\").css(\"overflow\", \"hidden\");\n                \n                editor.css({\n                    width    : $(window).width(),\n                    height   : $(window).height()\n                }).addClass(fullscreenClass);\n\n                this.resize();\n    \n                $.proxy(settings.onfullscreen, this)();\n\n                $(window).bind(\"keyup\", escHandle);\n            }\n            else\n            {           \n                $(window).unbind(\"keyup\", escHandle); \n                this.fullscreenExit();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 编辑器退出全屏显示\n         * Exit fullscreen state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreenExit : function() {\n            \n            var editor            = this.editor;\n            var settings          = this.settings;\n            var toolbar           = this.toolbar;\n            var fullscreenClass   = this.classPrefix + \"fullscreen\";  \n            \n            this.state.fullscreen = false;\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().removeClass(\"active\"); \n            }\n\n            $(\"html,body\").css(\"overflow\", \"\");\n\n            editor.css({\n                width    : editor.data(\"oldWidth\"),\n                height   : editor.data(\"oldHeight\")\n            }).removeClass(fullscreenClass);\n\n            this.resize();\n            \n            $.proxy(settings.onfullscreenExit, this)();\n\n            return this;\n        },\n        \n        /**\n         * 加载并执行插件\n         * Load and execute the plugin\n         * \n         * @param   {String}     name    plugin name / function name\n         * @param   {String}     path    plugin load path\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        executePlugin : function(name, path) {\n            \n            var _this    = this;\n            var cm       = this.cm;\n            var settings = this.settings;\n            \n            path = settings.pluginPath + path;\n            \n            if (typeof define === \"function\") \n            {            \n                if (typeof this[name] === \"undefined\")\n                {\n                    alert(\"Error: \" + name + \" plugin is not found, you are not load this plugin.\");\n                    \n                    return this;\n                }\n                \n                this[name](cm);\n                \n                return this;\n            }\n            \n            if ($.inArray(path, editormd.loadFiles.plugin) < 0)\n            {\n                editormd.loadPlugin(path, function() {\n                    editormd.loadPlugins[name] = _this[name];\n                    _this[name](cm);\n                });\n            }\n            else\n            {\n                $.proxy(editormd.loadPlugins[name], this)(cm);\n            }\n            \n            return this;\n        },\n                \n        /**\n         * 搜索替换\n         * Search & replace\n         * \n         * @param   {String}     command    CodeMirror serach commands, \"find, fintNext, fintPrev, clearSearch, replace, replaceAll\"\n         * @returns {editormd}              return this\n         */\n        \n        search : function(command) {\n            var settings = this.settings;\n            \n            if (!settings.searchReplace)\n            {\n                alert(\"Error: settings.searchReplace == false\");\n                return this;\n            }\n            \n            if (!settings.readOnly)\n            {\n                this.cm.execCommand(command || \"find\");\n            }\n            \n            return this;\n        },\n        \n        searchReplace : function() {            \n            this.search(\"replace\");\n            \n            return this;\n        },\n        \n        searchReplaceAll : function() {          \n            this.search(\"replaceAll\");\n            \n            return this;\n        }\n    };\n    \n    editormd.fn.init.prototype = editormd.fn; \n   \n    /**\n     * 锁屏\n     * lock screen when dialog opening\n     * \n     * @returns {void}\n     */\n\n    editormd.dialogLockScreen = function() {\n        var settings = this.settings || {dialogLockScreen : true};\n        \n        if (settings.dialogLockScreen) \n        {            \n            $(\"html,body\").css(\"overflow\", \"hidden\");\n            this.resize();\n        }\n    };\n   \n    /**\n     * 显示透明背景层\n     * Display mask layer when dialog opening\n     * \n     * @param   {Object}     dialog    dialog jQuery object\n     * @returns {void}\n     */\n    \n    editormd.dialogShowMask = function(dialog) {\n        var editor   = this.editor;\n        var settings = this.settings || {dialogShowMask : true};\n        \n        dialog.css({\n            top  : ($(window).height() - dialog.height()) / 2 + \"px\",\n            left : ($(window).width()  - dialog.width())  / 2 + \"px\"\n        });\n\n        if (settings.dialogShowMask) {\n            editor.children(\".\" + this.classPrefix + \"mask\").css(\"z-index\", parseInt(dialog.css(\"z-index\")) - 1).show();\n        }\n    };\n\n    editormd.toolbarHandlers = {\n        undo : function() {\n            this.cm.undo();\n        },\n        \n        redo : function() {\n            this.cm.redo();\n        },\n        \n        bold : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"**\" + selection + \"**\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n        \n        del : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"~~\" + selection + \"~~\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        italic : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"*\" + selection + \"*\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        quote : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"> \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"> \" + selection);\n            }\n\n            //cm.replaceSelection(\"> \" + selection);\n            //cm.setCursor(cursor.line, (selection === \"\") ? cursor.ch + 2 : cursor.ch + selection.length + 2);\n        },\n        \n        ucfirst : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.firstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        ucwords : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.wordsFirstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        uppercase : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(selection.toUpperCase());\n            cm.setSelections(selections);\n        },\n        \n        lowercase : function() {\n            var cm         = this.cm;\n            var cursor     = cm.getCursor();\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n            \n            cm.replaceSelection(selection.toLowerCase());\n            cm.setSelections(selections);\n        },\n\n        h1 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"# \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"# \" + selection);\n            }\n        },\n\n        h2 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"## \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            }\n            else\n            {\n                cm.replaceSelection(\"## \" + selection);\n            }\n        },\n\n        h3 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n            else\n            {\n                cm.replaceSelection(\"### \" + selection);\n            }\n        },\n\n        h4 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"#### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 5);\n            }\n            else\n            {\n                cm.replaceSelection(\"#### \" + selection);\n            }\n        },\n\n        h5 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"##### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 6);\n            }\n            else\n            {\n                cm.replaceSelection(\"##### \" + selection);\n            }\n        },\n\n        h6 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"###### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 7);\n            }\n            else\n            {\n                cm.replaceSelection(\"###### \" + selection);\n            }\n        },\n\n        \"list-ul\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (selection === \"\") \n            {\n                cm.replaceSelection(\"- \" + selection);\n            } \n            else \n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : \"- \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        \"list-ol\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if(selection === \"\") \n            {\n                cm.replaceSelection(\"1. \" + selection);\n            }\n            else\n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : (i+1) + \". \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        hr : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(((cursor.ch !== 0) ? \"\\n\\n\" : \"\\n\") + \"------------\\n\\n\");\n        },\n\n        tex : function() {\n            if (!this.settings.tex)\n            {\n                alert(\"settings.tex === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"$$\" + selection + \"$$\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        link : function() {\n            this.executePlugin(\"linkDialog\", \"link-dialog/link-dialog\");\n        },\n\n        \"reference-link\" : function() {\n            this.executePlugin(\"referenceLinkDialog\", \"reference-link-dialog/reference-link-dialog\");\n        },\n\n        pagebreak : function() {\n            if (!this.settings.pageBreak)\n            {\n                alert(\"settings.pageBreak === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"\\r\\n[========]\\r\\n\");\n        },\n\n        image : function() {\n            this.executePlugin(\"imageDialog\", \"image-dialog/image-dialog\");\n        },\n        \n        code : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"`\" + selection + \"`\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        \"code-block\" : function() {\n            this.executePlugin(\"codeBlockDialog\", \"code-block-dialog/code-block-dialog\");            \n        },\n\n        \"preformatted-text\" : function() {\n            this.executePlugin(\"preformattedTextDialog\", \"preformatted-text-dialog/preformatted-text-dialog\");\n        },\n        \n        table : function() {\n            this.executePlugin(\"tableDialog\", \"table-dialog/table-dialog\");         \n        },\n        \n        datetime : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n            var date      = new Date();\n            var langName  = this.settings.lang.name;\n            var datefmt   = editormd.dateFormat() + \" \" + editormd.dateFormat((langName === \"zh-cn\" || langName === \"zh-tw\") ? \"cn-week-day\" : \"week-day\");\n\n            cm.replaceSelection(datefmt);\n        },\n        \n        emoji : function() {\n            this.executePlugin(\"emojiDialog\", \"emoji-dialog/emoji-dialog\");\n        },\n                \n        \"html-entities\" : function() {\n            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\");\n        },\n                \n        \"goto-line\" : function() {\n            this.executePlugin(\"gotoLineDialog\", \"goto-line-dialog/goto-line-dialog\");\n        },\n\n        watch : function() {    \n            this[this.settings.watch ? \"unwatch\" : \"watch\"]();\n        },\n\n        preview : function() {\n            this.previewing();\n        },\n\n        fullscreen : function() {\n            this.fullscreen();\n        },\n\n        clear : function() {\n            this.clear();\n        },\n        \n        search : function() {\n            this.search();\n        },\n\n        help : function() {\n            this.executePlugin(\"helpDialog\", \"help-dialog/help-dialog\");\n        },\n\n        info : function() {\n            this.showInfoDialog();\n        }\n    };\n    \n    editormd.keyMaps = {\n        \"Ctrl-1\"       : \"h1\",\n        \"Ctrl-2\"       : \"h2\",\n        \"Ctrl-3\"       : \"h3\",\n        \"Ctrl-4\"       : \"h4\",\n        \"Ctrl-5\"       : \"h5\",\n        \"Ctrl-6\"       : \"h6\",\n        \"Ctrl-B\"       : \"bold\",  // if this is string ==  editormd.toolbarHandlers.xxxx\n        \"Ctrl-D\"       : \"datetime\",\n        \n        \"Ctrl-E\"       : function() { // emoji\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.emoji)\n            {\n                alert(\"Error: settings.emoji == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\":\" + selection + \":\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-Alt-G\"   : \"goto-line\",\n        \"Ctrl-H\"       : \"hr\",\n        \"Ctrl-I\"       : \"italic\",\n        \"Ctrl-K\"       : \"code\",\n        \n        \"Ctrl-L\"        : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"[\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-U\"         : \"list-ul\",\n        \n        \"Shift-Ctrl-A\"   : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.atLink)\n            {\n                alert(\"Error: settings.atLink == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\"@\" + selection);\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \n        \"Shift-Ctrl-C\"     : \"code\",\n        \"Shift-Ctrl-Q\"     : \"quote\",\n        \"Shift-Ctrl-S\"     : \"del\",\n        \"Shift-Ctrl-K\"     : \"tex\",  // KaTeX\n        \n        \"Shift-Alt-C\"      : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            cm.replaceSelection([\"```\", selection, \"```\"].join(\"\\n\"));\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            } \n        },\n        \n        \"Shift-Ctrl-Alt-C\" : \"code-block\",\n        \"Shift-Ctrl-H\"     : \"html-entities\",\n        \"Shift-Alt-H\"      : \"help\",\n        \"Shift-Ctrl-E\"     : \"emoji\",\n        \"Shift-Ctrl-U\"     : \"uppercase\",\n        \"Shift-Alt-U\"      : \"ucwords\",\n        \"Shift-Ctrl-Alt-U\" : \"ucfirst\",\n        \"Shift-Alt-L\"      : \"lowercase\",\n        \n        \"Shift-Ctrl-I\"     : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"![\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n        },\n        \n        \"Shift-Ctrl-Alt-I\" : \"image\",\n        \"Shift-Ctrl-L\"     : \"link\",\n        \"Shift-Ctrl-O\"     : \"list-ol\",\n        \"Shift-Ctrl-P\"     : \"preformatted-text\",\n        \"Shift-Ctrl-T\"     : \"table\",\n        \"Shift-Alt-P\"      : \"pagebreak\",\n        \"F9\"               : \"watch\",\n        \"F10\"              : \"preview\",\n        \"F11\"              : \"fullscreen\",\n    };\n    \n    /**\n     * 清除字符串两边的空格\n     * Clear the space of strings both sides.\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   trimed string    \n     */\n    \n    var trim = function(str) {\n        return (!String.prototype.trim) ? str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\") : str.trim();\n    };\n    \n    editormd.trim = trim;\n    \n    /**\n     * 所有单词首字母大写\n     * Words first to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var ucwords = function (str) {\n        return str.toLowerCase().replace(/\\b(\\w)|\\s(\\w)/g, function($1) {  \n            return $1.toUpperCase();\n        });\n    };\n    \n    editormd.ucwords = editormd.wordsFirstUpperCase = ucwords;\n    \n    /**\n     * 字符串首字母大写\n     * Only string first char to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var firstUpperCase = function(str) {        \n        return str.toLowerCase().replace(/\\b(\\w)/, function($1){\n            return $1.toUpperCase();\n        });\n    };\n    \n    var ucfirst = firstUpperCase;\n    \n    editormd.firstUpperCase = editormd.ucfirst = firstUpperCase;\n    \n    editormd.urls = {\n        atLinkBase : \"https://github.com/\"\n    };\n    \n    editormd.regexs = {\n        atLink        : /@(\\w+)/g,\n        email         : /(\\w+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emailLink     : /(mailto:)?([\\w\\.\\_]+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emoji         : /:([\\w\\+-]+):/g,\n        emojiDatetime : /(\\d{2}:\\d{2}:\\d{2})/g,\n        twemoji       : /:(tw-([\\w]+)-?(\\w+)?):/g,\n        fontAwesome   : /:(fa-([\\w]+)(-(\\w+)){0,}):/g,\n        editormdLogo  : /:(editormd-logo-?(\\w+)?):/g,\n        pageBreak     : /^\\[[=]{8,}\\]$/\n    };\n\n    // Emoji graphics files url path\n    editormd.emoji     = {\n        path  : \"http://www.emoji-cheat-sheet.com/graphics/emojis/\",\n        ext   : \".png\"\n    };\n\n    // Twitter Emoji (Twemoji)  graphics files url path    \n    editormd.twemoji = {\n        path : \"http://twemoji.maxcdn.com/36x36/\",\n        ext  : \".png\"\n    };\n\n    /**\n     * 自定义marked的解析器\n     * Custom Marked renderer rules\n     * \n     * @param   {Array}    markdownToC     传入用于接收TOC的数组\n     * @returns {Renderer} markedRenderer  返回marked的Renderer自定义对象\n     */\n\n    editormd.markedRenderer = function(markdownToC, options) {\n        var defaults = {\n            toc                  : true,           // Table of contents\n            tocm                 : false,\n            tocStartLevel        : 1,              // Said from H1 to create ToC  \n            pageBreak            : true,\n            atLink               : true,           // for @link\n            emailLink            : true,           // for mail address auto link\n            taskList             : false,          // Enable Github Flavored Markdown task lists\n            emoji                : false,          // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis.\n            tex                  : false,          // TeX(LaTeX), based on KaTeX\n            flowChart            : false,          // flowChart.js only support IE9+\n            sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        };\n        \n        var settings        = $.extend(defaults, options || {});    \n        var marked          = editormd.$marked;\n        var markedRenderer  = new marked.Renderer();\n        markdownToC         = markdownToC || [];        \n            \n        var regexs          = editormd.regexs;\n        var atLinkReg       = regexs.atLink;\n        var emojiReg        = regexs.emoji;\n        var emailReg        = regexs.email;\n        var emailLinkReg    = regexs.emailLink;\n        var twemojiReg      = regexs.twemoji;\n        var faIconReg       = regexs.fontAwesome;\n        var editormdLogoReg = regexs.editormdLogo;\n        var pageBreakReg    = regexs.pageBreak;\n\n        markedRenderer.emoji = function(text) {\n            \n            text = text.replace(editormd.regexs.emojiDatetime, function($1) {           \n                return $1.replace(/:/g, \"&#58;\");\n            });\n            \n            var matchs = text.match(emojiReg);\n\n            if (!matchs || !settings.emoji) {\n                return text;\n            }\n\n            for (var i = 0, len = matchs.length; i < len; i++)\n            {            \n                if (matchs[i] === \":+1:\") {\n                    matchs[i] = \":\\\\+1:\";\n                }\n\n                text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                    var faMatchs = $1.match(faIconReg);\n                    var name     = $1.replace(/:/g, \"\");\n\n                    if (faMatchs)\n                    {                        \n                        for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++)\n                        {\n                            var faName = faMatchs[fa].replace(/:/g, \"\");\n                            \n                            return \"<i class=\\\"fa \" + faName + \" fa-emoji\\\" title=\\\"\" + faName.replace(\"fa-\", \"\") + \"\\\"></i>\";\n                        }\n                    }\n                    else\n                    {\n                        var emdlogoMathcs = $1.match(editormdLogoReg);\n                        var twemojiMatchs = $1.match(twemojiReg);\n\n                        if (emdlogoMathcs)                                        \n                        {                            \n                            for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++)\n                            {\n                                var logoName = emdlogoMathcs[x].replace(/:/g, \"\");\n                                return \"<i class=\\\"\" + logoName + \"\\\" title=\\\"Editor.md logo (\" + logoName + \")\\\"></i>\";\n                            }\n                        }\n                        else if (twemojiMatchs) \n                        {\n                            for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++)\n                            {\n                                var twe = twemojiMatchs[t].replace(/:/g, \"\").replace(\"tw-\", \"\");\n                                return \"<img src=\\\"\" + editormd.twemoji.path + twe + editormd.twemoji.ext + \"\\\" title=\\\"twemoji-\" + twe + \"\\\" alt=\\\"twemoji-\" + twe + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                            }\n                        }\n                        else\n                        {\n                            var src = (name === \"+1\") ? \"plus1\" : name;\n                            src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                            src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n\n                            return \"<img src=\\\"\" + editormd.emoji.path + src + editormd.emoji.ext + \"\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + name + \"&#58;\\\" alt=\\\"&#58;\" + name + \"&#58;\\\" />\";\n                        }\n                    }\n                });\n            }\n\n            return text;\n        };\n\n        markedRenderer.atLink = function(text) {\n\n            if (atLinkReg.test(text))\n            { \n                if (settings.atLink) \n                {\n                    text = text.replace(emailReg, function($1, $2, $3, $4) {\n                        return $1.replace(/@/g, \"_#_&#64;_#_\");\n                    });\n\n                    text = text.replace(atLinkReg, function($1, $2) {\n                        return \"<a href=\\\"\" + editormd.urls.atLinkBase + \"\" + $2 + \"\\\" title=\\\"&#64;\" + $2 + \"\\\" class=\\\"at-link\\\">\" + $1 + \"</a>\";\n                    }).replace(/_#_&#64;_#_/g, \"@\");\n                }\n                \n                if (settings.emailLink)\n                {\n                    text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) {\n                        return (!$2 && $.inArray($5, \"jpg|jpeg|png|gif|webp|ico|icon|pdf\".split(\"|\")) < 0) ? \"<a href=\\\"mailto:\" + $1 + \"\\\">\"+$1+\"</a>\" : $1;\n                    });\n                }\n\n                return text;\n            }\n\n            return text;\n        };\n                \n        markedRenderer.link = function (href, title, text) {\n\n            if (this.options.sanitize) {\n                try {\n                    var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase();\n                } catch(e) {\n                    return \"\";\n                }\n\n                if (prot.indexOf(\"javascript:\") === 0) {\n                    return \"\";\n                }\n            }\n\n            var out = \"<a href=\\\"\" + href + \"\\\"\";\n            \n            if (atLinkReg.test(title) || atLinkReg.test(text))\n            {\n                if (title)\n                {\n                    out += \" title=\\\"\" + title.replace(/@/g, \"&#64;\");\n                }\n                \n                return out + \"\\\">\" + text.replace(/@/g, \"&#64;\") + \"</a>\";\n            }\n\n            if (title) {\n                out += \" title=\\\"\" + title + \"\\\"\";\n            }\n\n            out += \">\" + text + \"</a>\";\n\n            return out;\n        };\n        \n        markedRenderer.heading = function(text, level, raw) {\n                    \n            var linkText       = text;\n            var hasLinkReg     = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n            var getLinkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n\n            if (hasLinkReg.test(text)) \n            {\n                var tempText = [];\n                text         = text.split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n\n                for (var i = 0, len = text.length; i < len; i++)\n                {\n                    tempText.push(text[i].replace(/\\s*href\\=\\\"(.*)\\\"\\s*/g, \"\"));\n                }\n\n                text = tempText.join(\" \");\n            }\n            \n            text = trim(text);\n            \n            var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n            var toc = {\n                text  : text,\n                level : level,\n                slug  : escapedText\n            };\n            \n            var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n            var id        = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n            markdownToC.push(toc);\n            \n            var headingHTML = \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n            \n            headingHTML    += \"<a name=\\\"\" + text + \"\\\" class=\\\"reference-link\\\"></a>\";\n            headingHTML    += \"<span class=\\\"header-link octicon octicon-link\\\"></span>\";\n            headingHTML    += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text));\n            headingHTML    += \"</h\" + level + \">\";\n\n            return headingHTML;\n        };\n        \n        markedRenderer.pageBreak = function(text) {\n            if (pageBreakReg.test(text) && settings.pageBreak)\n            {\n                text = \"<hr style=\\\"page-break-after:always;\\\" class=\\\"page-break editormd-page-break\\\" />\";\n            }\n            \n            return text;\n        };\n\n        markedRenderer.paragraph = function(text) {\n            var isTeXInline     = /\\$\\$(.*)\\$\\$/g.test(text);\n            var isTeXLine       = /^\\$\\$(.*)\\$\\$$/.test(text);\n            var isTeXAddClass   = (isTeXLine)     ? \" class=\\\"\" + editormd.classNames.tex + \"\\\"\" : \"\";\n            var isToC           = (settings.tocm) ? /^(\\[TOC\\]|\\[TOCM\\])$/.test(text) : /^\\[TOC\\]$/.test(text);\n            var isToCMenu       = /^\\[TOCM\\]$/.test(text);\n            \n            if (!isTeXLine && isTeXInline) \n            {\n                text = text.replace(/(\\$\\$([^\\$]*)\\$\\$)+/g, function($1, $2) {\n                    return \"<span class=\\\"\" + editormd.classNames.tex + \"\\\">\" + $2.replace(/\\$/g, \"\") + \"</span>\";\n                });\n            } \n            else \n            {\n                text = (isTeXLine) ? text.replace(/\\$/g, \"\") : text;\n            }\n            \n            var tocHTML = \"<div class=\\\"markdown-toc editormd-markdown-toc\\\">\" + text + \"</div>\";\n            \n            return (isToC) ? ( (isToCMenu) ? \"<div class=\\\"editormd-toc-menu\\\">\" + tocHTML + \"</div><br/>\" : tocHTML )\n                           : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : \"<p\" + isTeXAddClass + \">\" + this.atLink(this.emoji(text)) + \"</p>\\n\" );\n        };\n\n        markedRenderer.code = function (code, lang, escaped) { \n\n            if (lang === \"seq\" || lang === \"sequence\")\n            {\n                return \"<div class=\\\"sequence-diagram\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"flow\")\n            {\n                return \"<div class=\\\"flowchart\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"math\" || lang === \"latex\" || lang === \"katex\")\n            {\n                return \"<p class=\\\"\" + editormd.classNames.tex + \"\\\">\" + code + \"</p>\";\n            } \n            else \n            {\n\n                return marked.Renderer.prototype.code.apply(this, arguments);\n            }\n        };\n\n        markedRenderer.tablecell = function(content, flags) {\n            var type = (flags.header) ? \"th\" : \"td\";\n            var tag  = (flags.align)  ? \"<\" + type +\" style=\\\"text-align:\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n            \n            return tag + this.atLink(this.emoji(content)) + \"</\" + type + \">\\n\";\n        };\n\n        markedRenderer.listitem = function(text) {\n            if (settings.taskList && /^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n            {\n                text = text.replace(/^\\s*\\[\\s\\]\\s*/, \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" /> \")\n                           .replace(/^\\s*\\[x\\]\\s*/,  \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" checked disabled /> \");\n\n                return \"<li style=\\\"list-style: none;\\\">\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n            else \n            {\n                return \"<li>\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n        };\n        \n        return markedRenderer;\n    };\n    \n    /**\n     *\n     * 生成TOC(Table of Contents)\n     * Creating ToC (Table of Contents)\n     * \n     * @param   {Array}    toc             从marked获取的TOC数组列表\n     * @param   {Element}  container       插入TOC的容器元素\n     * @param   {Integer}  startLevel      Hx 起始层级\n     * @returns {Object}   tocContainer    返回ToC列表容器层的jQuery对象元素\n     */\n    \n    editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) {\n        \n        var html        = \"\";    \n        var lastLevel   = 0;\n        var classPrefix = this.classPrefix;\n        \n        startLevel      = startLevel  || 1;\n        \n        for (var i = 0, len = toc.length; i < len; i++) \n        {\n            var text  = toc[i].text;\n            var level = toc[i].level;\n            \n            if (level < startLevel) {\n                continue;\n            }\n            \n            if (level > lastLevel) \n            {\n                html += \"\";\n            }\n            else if (level < lastLevel) \n            {\n                html += (new Array(lastLevel - level + 2)).join(\"</ul></li>\");\n            } \n            else \n            {\n                html += \"</ul></li>\";\n            }\n\n            html += \"<li><a class=\\\"toc-level-\" + level + \"\\\" href=\\\"#\" + text + \"\\\" level=\\\"\" + level + \"\\\">\" + text + \"</a><ul>\";\n            lastLevel = level;\n        }\n        \n        var tocContainer = container.find(\".markdown-toc\");\n        \n        if ((tocContainer.length < 1 && container.attr(\"previewContainer\") === \"false\"))\n        {\n            var tocHTML = \"<div class=\\\"markdown-toc \" + classPrefix + \"markdown-toc\\\"></div>\";\n            \n            tocHTML = (tocDropdown) ? \"<div class=\\\"\" + classPrefix + \"toc-menu\\\">\" + tocHTML + \"</div>\" : tocHTML;\n            \n            container.html(tocHTML);\n            \n            tocContainer = container.find(\".markdown-toc\");\n        }\n        \n        if (tocDropdown)\n        {\n            tocContainer.wrap(\"<div class=\\\"\" + classPrefix + \"toc-menu\\\"></div><br/>\");\n        }\n        \n        tocContainer.html(\"<ul class=\\\"markdown-toc-list\\\"></ul>\").children(\".markdown-toc-list\").html(html.replace(/\\r?\\n?\\<ul\\>\\<\\/ul\\>/g, \"\"));\n        \n        return tocContainer;\n    };\n    \n    /**\n     *\n     * 生成TOC下拉菜单\n     * Creating ToC dropdown menu\n     * \n     * @param   {Object}   container       插入TOC的容器jQuery对象元素\n     * @param   {String}   tocTitle        ToC title\n     * @returns {Object}                   return toc-menu object\n     */\n    \n    editormd.tocDropdownMenu = function(container, tocTitle) {\n        \n        tocTitle      = tocTitle || \"Table of Contents\";\n        \n        var zindex    = 400;\n        var tocMenus  = container.find(\".\" + this.classPrefix + \"toc-menu\");\n\n        tocMenus.each(function() {\n            var $this  = $(this);\n            var toc    = $this.children(\".markdown-toc\");\n            var icon   = \"<i class=\\\"fa fa-angle-down\\\"></i>\";\n            var btn    = \"<a href=\\\"javascript:;\\\" class=\\\"toc-menu-btn\\\">\" + icon + tocTitle + \"</a>\";\n            var menu   = toc.children(\"ul\");            \n            var list   = menu.find(\"li\");\n            \n            toc.append(btn);\n            \n            list.first().before(\"<li><h1>\" + tocTitle + \" \" + icon + \"</h1></li>\");\n            \n            $this.mouseover(function(){\n                menu.show();\n\n                list.each(function(){\n                    var li = $(this);\n                    var ul = li.children(\"ul\");\n\n                    if (ul.html() === \"\")\n                    {\n                        ul.remove();\n                    }\n\n                    if (ul.length > 0 && ul.html() !== \"\")\n                    {\n                        var firstA = li.children(\"a\").first();\n\n                        if (firstA.children(\".fa\").length < 1)\n                        {\n                            firstA.append( $(icon).css({ float:\"right\", paddingTop:\"4px\" }) );\n                        }\n                    }\n\n                    li.mouseover(function(){\n                        ul.css(\"z-index\", zindex).show();\n                        zindex += 1;\n                    }).mouseleave(function(){\n                        ul.hide();\n                    });\n                });\n            }).mouseleave(function(){\n                menu.hide();\n            }); \n        });       \n        \n        return tocMenus;\n    };\n    \n    /**\n     * 简单地过滤指定的HTML标签\n     * Filter custom html tags\n     * \n     * @param   {String}   html          要过滤HTML\n     * @param   {String}   filters       要过滤的标签\n     * @returns {String}   html          返回过滤的HTML\n     */\n    \n    editormd.filterHTMLTags = function(html, filters) {\n        \n        if (typeof html !== \"string\") {\n            html = new String(html);\n        }\n            \n        if (typeof filters !== \"string\") {\n            return html;\n        }\n\n        var expression = filters.split(\"|\");\n        var filterTags = expression[0].split(\",\");\n        var attrs      = expression[1];\n\n        for (var i = 0, len = filterTags.length; i < len; i++)\n        {\n            var tag = filterTags[i];\n\n            html = html.replace(new RegExp(\"\\<\\s*\" + tag + \"\\s*([^\\>]*)\\>([^\\>]*)\\<\\s*\\/\" + tag + \"\\s*\\>\", \"igm\"), \"\");\n        }\n        \n        //return html;\n\n        if (typeof attrs !== \"undefined\")\n        {\n            var htmlTagRegex = /\\<(\\w+)\\s*([^\\>]*)\\>([^\\>]*)\\<\\/(\\w+)\\>/ig;\n\n            if (attrs === \"*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    return \"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\";\n                });         \n            }\n            else if (attrs === \"on*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    var el = $(\"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\");\n                    var _attrs = $($1)[0].attributes;\n                    var $attrs = {};\n                    \n                    $.each(_attrs, function(i, e) {\n                        if (e.nodeName !== '\"') $attrs[e.nodeName] = e.nodeValue;\n                    });\n                    \n                    $.each($attrs, function(i) {                        \n                        if (i.indexOf(\"on\") === 0) {\n                            delete $attrs[i];\n                        }\n                    });\n                    \n                    el.attr($attrs);\n                    \n                    var text = (typeof el[1] !== \"undefined\") ? $(el[1]).text() : \"\";\n\n                    return el[0].outerHTML + text;\n                });\n            }\n            else\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4) {\n                    var filterAttrs = attrs.split(\",\");\n                    var el = $($1);\n                    el.html($4);\n\n                    $.each(filterAttrs, function(i) {\n                        el.attr(filterAttrs[i], null);\n                    });\n\n                    return el[0].outerHTML;\n                });\n            }\n        }\n        \n        return html;\n    };\n    \n    /**\n     * 将Markdown文档解析为HTML用于前台显示\n     * Parse Markdown to HTML for Font-end preview.\n     * \n     * @param   {String}   id            用于显示HTML的对象ID\n     * @param   {Object}   [options={}]  配置选项，可选\n     * @returns {Object}   div           返回jQuery对象元素\n     */\n    \n    editormd.markdownToHTML = function(id, options) {\n        var defaults = {\n            gfm                  : true,\n            toc                  : true,\n            tocm                 : false,\n            tocStartLevel        : 1,\n            tocTitle             : \"目录\",\n            tocDropdown          : false,\n            tocContainer         : \"\",\n            markdown             : \"\",\n            markdownSourceCode   : false,\n            htmlDecode           : false,\n            autoLoadKaTeX        : true,\n            pageBreak            : true,\n            atLink               : true,    // for @link\n            emailLink            : true,    // for mail address auto link\n            tex                  : false,\n            taskList             : false,   // Github Flavored Markdown task lists\n            emoji                : false,\n            flowChart            : false,\n            sequenceDiagram      : false,\n            previewCodeHighlight : true\n        };\n        \n        editormd.$marked  = marked;\n\n        var div           = $(\"#\" + id);\n        var settings      = div.settings = $.extend(true, defaults, options || {});\n        var saveTo        = div.find(\"textarea\");\n        \n        if (saveTo.length < 1)\n        {\n            div.append(\"<textarea></textarea>\");\n            saveTo        = div.find(\"textarea\");\n        }        \n        \n        var markdownDoc   = (settings.markdown === \"\") ? saveTo.val() : settings.markdown; \n        var markdownToC   = [];\n\n        var rendererOptions = {  \n            toc                  : settings.toc,\n            tocm                 : settings.tocm,\n            tocStartLevel        : settings.tocStartLevel,\n            taskList             : settings.taskList,\n            emoji                : settings.emoji,\n            tex                  : settings.tex,\n            pageBreak            : settings.pageBreak,\n            atLink               : settings.atLink,           // for @link\n            emailLink            : settings.emailLink,        // for mail address auto link\n            flowChart            : settings.flowChart,\n            sequenceDiagram      : settings.sequenceDiagram,\n            previewCodeHighlight : settings.previewCodeHighlight,\n        };\n\n        var markedOptions = {\n            renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n            gfm         : settings.gfm,\n            tables      : true,\n            breaks      : true,\n            pedantic    : false,\n            sanitize    : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签，即是否开启HTML标签解析，为了安全性，默认不开启\n            smartLists  : true,\n            smartypants : true\n        };\n        \n\t\tmarkdownDoc = new String(markdownDoc);\n        \n        var markdownParsed = marked(markdownDoc, markedOptions);\n        \n        markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode);\n        \n        if (settings.markdownSourceCode) {\n            saveTo.text(markdownDoc);\n        } else {\n            saveTo.remove();\n        }\n        \n        div.addClass(\"markdown-body \" + this.classPrefix + \"html-preview\").append(markdownParsed);\n        \n        var tocContainer = (settings.tocContainer !== \"\") ? $(settings.tocContainer) : div;\n        \n        if (settings.tocContainer !== \"\")\n        {\n            tocContainer.attr(\"previewContainer\", false);\n        }\n         \n        if (settings.toc) \n        {\n            div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n            if (settings.tocDropdown || div.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n            {\n                this.tocDropdownMenu(div, settings.tocTitle);\n            }\n            \n            if (settings.tocContainer !== \"\")\n            {\n                div.find(\".editormd-toc-menu, .editormd-markdown-toc\").remove();\n            }\n        }\n            \n        if (settings.previewCodeHighlight) \n        {\n            div.find(\"pre\").addClass(\"prettyprint linenums\");\n            prettyPrint();\n        }\n        \n        if (!editormd.isIE8) \n        {\n            if (settings.flowChart) {\n                div.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                div.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n        }\n\n        if (settings.tex)\n        {\n            var katexHandle = function() {\n                div.find(\".\" + editormd.classNames.tex).each(function(){\n                    var tex  = $(this);                    \n                    katex.render(tex.html().replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\"), tex[0]);                    \n                    tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n                });\n            };\n            \n            if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded)\n            {\n                this.loadKaTeX(function() {\n                    editormd.$katex      = katex;\n                    editormd.kaTeXLoaded = true;\n                    katexHandle();\n                });\n            }\n            else\n            {\n                katexHandle();\n            }\n        }\n        \n        div.getMarkdown = function() {            \n            return saveTo.val();\n        };\n        \n        return div;\n    };\n    \n    // Editor.md themes, change toolbar themes etc.\n    // added @1.5.0\n    editormd.themes        = [\"default\", \"dark\"];\n    \n    // Preview area themes\n    // added @1.5.0\n    editormd.previewThemes = [\"default\", \"dark\"];\n    \n    // CodeMirror / editor area themes\n    // @1.5.0 rename -> editorThemes, old version -> themes\n    editormd.editorThemes = [\n        \"default\", \"3024-day\", \"3024-night\",\n        \"ambiance\", \"ambiance-mobile\",\n        \"base16-dark\", \"base16-light\", \"blackboard\",\n        \"cobalt\",\n        \"eclipse\", \"elegant\", \"erlang-dark\",\n        \"lesser-dark\",\n        \"mbo\", \"mdn-like\", \"midnight\", \"monokai\",\n        \"neat\", \"neo\", \"night\",\n        \"paraiso-dark\", \"paraiso-light\", \"pastel-on-dark\",\n        \"rubyblue\",\n        \"solarized\",\n        \"the-matrix\", \"tomorrow-night-eighties\", \"twilight\",\n        \"vibrant-ink\",\n        \"xq-dark\", \"xq-light\"\n    ];\n\n    editormd.loadPlugins = {};\n    \n    editormd.loadFiles = {\n        js     : [],\n        css    : [],\n        plugin : []\n    };\n    \n    /**\n     * 动态加载Editor.md插件，但不立即执行\n     * Load editor.md plugins\n     * \n     * @param {String}   fileName              插件文件路径\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadPlugin = function(fileName, callback, into) {\n        callback   = callback || function() {};\n        \n        this.loadScript(fileName, function() {\n            editormd.loadFiles.plugin.push(fileName);\n            callback();\n        }, into);\n    };\n    \n    /**\n     * 动态加载CSS文件的方法\n     * Load css file method\n     * \n     * @param {String}   fileName              CSS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadCSS   = function(fileName, callback, into) {\n        into       = into     || \"head\";        \n        callback   = callback || function() {};\n        \n        var css    = document.createElement(\"link\");\n        css.type   = \"text/css\";\n        css.rel    = \"stylesheet\";\n        css.onload = css.onreadystatechange = function() {\n            editormd.loadFiles.css.push(fileName);\n            callback();\n        };\n\n        css.href   = fileName + \".css\";\n\n        if(into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(css);\n        } else {\n            document.body.appendChild(css);\n        }\n    };\n    \n    editormd.isIE    = (navigator.appName == \"Microsoft Internet Explorer\");\n    editormd.isIE8   = (editormd.isIE && navigator.appVersion.match(/8./i) == \"8.\");\n\n    /**\n     * 动态加载JS文件的方法\n     * Load javascript file method\n     * \n     * @param {String}   fileName              JS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n\n    editormd.loadScript = function(fileName, callback, into) {\n        \n        into          = into     || \"head\";\n        callback      = callback || function() {};\n        \n        var script    = null; \n        script        = document.createElement(\"script\");\n        script.id     = fileName.replace(/[\\./]+/g, \"-\");\n        script.type   = \"text/javascript\";        \n        script.src    = fileName + \".js\";\n        \n        if (editormd.isIE8) \n        {            \n            script.onreadystatechange = function() {\n                if(script.readyState) \n                {\n                    if (script.readyState === \"loaded\" || script.readyState === \"complete\") \n                    {\n                        script.onreadystatechange = null; \n                        editormd.loadFiles.js.push(fileName);\n                        callback();\n                    }\n                } \n            };\n        }\n        else\n        {\n            script.onload = function() {\n                editormd.loadFiles.js.push(fileName);\n                callback();\n            };\n        }\n\n        if (into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(script);\n        } else {\n            document.body.appendChild(script);\n        }\n    };\n    \n    // 使用国外的CDN，加载速度有时会很慢，或者自定义URL\n    // You can custom KaTeX load url.\n    editormd.katexURL  = {\n        css : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\",\n        js  : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\"\n    };\n    \n    editormd.kaTeXLoaded = false;\n    \n    /**\n     * 加载KaTeX文件\n     * load KaTeX files\n     * \n     * @param {Function} [callback=function()]  加载成功后执行的回调函数\n     */\n    \n    editormd.loadKaTeX = function (callback) {\n        editormd.loadCSS(editormd.katexURL.css, function(){\n            editormd.loadScript(editormd.katexURL.js, callback || function(){});\n        });\n    };\n        \n    /**\n     * 锁屏\n     * lock screen\n     * \n     * @param   {Boolean}   lock   Boolean 布尔值，是否锁屏\n     * @returns {void}\n     */\n    \n    editormd.lockScreen = function(lock) {\n        $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n    };\n        \n    /**\n     * 动态创建对话框\n     * Creating custom dialogs\n     * \n     * @param   {Object} options 配置项键值对 Key/Value\n     * @returns {dialog} 返回创建的dialog的jQuery实例对象\n     */\n\n    editormd.createDialog = function(options) {\n        var defaults = {\n            name : \"\",\n            width : 420,\n            height: 240,\n            title : \"\",\n            drag  : true,\n            closed : true,\n            content : \"\",\n            mask : true,\n            maskStyle : {\n                backgroundColor : \"#fff\",\n                opacity : 0.1\n            },\n            lockScreen : true,\n            footer : true,\n            buttons : false\n        };\n\n        options          = $.extend(true, defaults, options);\n        \n        var $this        = this;\n        var editor       = this.editor;\n        var classPrefix  = editormd.classPrefix;\n        var guid         = (new Date()).getTime();\n        var dialogName   = ( (options.name === \"\") ? classPrefix + \"dialog-\" + guid : options.name);\n        var mouseOrTouch = editormd.mouseOrTouch;\n\n        var html         = \"<div class=\\\"\" + classPrefix + \"dialog \" + dialogName + \"\\\">\";\n\n        if (options.title !== \"\")\n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-header\\\"\" + ( (options.drag) ? \" style=\\\"cursor: move;\\\"\" : \"\" ) + \">\";\n            html += \"<strong class=\\\"\" + classPrefix + \"dialog-title\\\">\" + options.title + \"</strong>\";\n            html += \"</div>\";\n        }\n\n        if (options.closed)\n        {\n            html += \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\";\n        }\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\" + options.content;                    \n\n        if (options.footer || typeof options.footer === \"string\") \n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-footer\\\">\" + ( (typeof options.footer === \"boolean\") ? \"\" : options.footer) + \"</div>\";\n        }\n\n        html += \"</div>\";\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-bg\\\"></div>\";\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-con\\\"></div>\";\n        html += \"</div>\";\n\n        editor.append(html);\n\n        var dialog = editor.find(\".\" + dialogName);\n\n        dialog.lockScreen = function(lock) {\n            if (options.lockScreen)\n            {                \n                $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n                $this.resize();\n            }\n\n            return dialog;\n        };\n\n        dialog.showMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").css(options.maskStyle).css(\"z-index\", editormd.dialogZindex - 1).show();\n            }\n            return dialog;\n        };\n\n        dialog.hideMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").hide();\n            }\n\n            return dialog;\n        };\n\n        dialog.loading = function(show) {                        \n            var loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n            loading[(show) ? \"show\" : \"hide\"]();\n\n            return dialog;\n        };\n\n        dialog.lockScreen(true).showMask();\n\n        dialog.show().css({\n            zIndex : editormd.dialogZindex,\n            border : (editormd.isIE8) ? \"1px solid #ddd\" : \"\",\n            width  : (typeof options.width  === \"number\") ? options.width + \"px\"  : options.width,\n            height : (typeof options.height === \"number\") ? options.height + \"px\" : options.height\n        });\n\n        var dialogPosition = function(){\n            dialog.css({\n                top    : ($(window).height() - dialog.height()) / 2 + \"px\",\n                left   : ($(window).width() - dialog.width()) / 2 + \"px\"\n            });\n        };\n\n        dialogPosition();\n\n        $(window).resize(dialogPosition);\n\n        dialog.children(\".\" + classPrefix + \"dialog-close\").bind(mouseOrTouch(\"click\", \"touchend\"), function() {\n            dialog.hide().lockScreen(false).hideMask();\n        });\n\n        if (typeof options.buttons === \"object\")\n        {\n            var footer = dialog.footer = dialog.find(\".\" + classPrefix + \"dialog-footer\");\n\n            for (var key in options.buttons)\n            {\n                var btn = options.buttons[key];\n                var btnClassName = classPrefix + key + \"-btn\";\n\n                footer.append(\"<button class=\\\"\" + classPrefix + \"btn \" + btnClassName + \"\\\">\" + btn[0] + \"</button>\");\n                btn[1] = $.proxy(btn[1], dialog);\n                footer.children(\".\" + btnClassName).bind(mouseOrTouch(\"click\", \"touchend\"), btn[1]);\n            }\n        }\n\n        if (options.title !== \"\" && options.drag)\n        {                        \n            var posX, posY;\n            var dialogHeader = dialog.children(\".\" + classPrefix + \"dialog-header\");\n\n            if (!options.mask) {\n                dialogHeader.bind(mouseOrTouch(\"click\", \"touchend\"), function(){\n                    editormd.dialogZindex += 2;\n                    dialog.css(\"z-index\", editormd.dialogZindex);\n                });\n            }\n\n            dialogHeader.mousedown(function(e) {\n                e = e || window.event;  //IE\n                posX = e.clientX - parseInt(dialog[0].style.left);\n                posY = e.clientY - parseInt(dialog[0].style.top);\n\n                document.onmousemove = moveAction;                   \n            });\n\n            var userCanSelect = function (obj) {\n                obj.removeClass(classPrefix + \"user-unselect\").off(\"selectstart\");\n            };\n\n            var userUnselect = function (obj) {\n                obj.addClass(classPrefix + \"user-unselect\").on(\"selectstart\", function(event) { // selectstart for IE                        \n                    return false;\n                });\n            };\n\n            var moveAction = function (e) {\n                e = e || window.event;  //IE\n\n                var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top);\n\n                if( nowLeft >= 0 ) {\n                    if( nowLeft + dialog.width() <= $(window).width()) {\n                        left = e.clientX - posX;\n                    } else {\t\n                        left = $(window).width() - dialog.width();\n                        document.onmousemove = null;\n                    }\n                } else {\n                    left = 0;\n                    document.onmousemove = null;\n                }\n\n                if( nowTop >= 0 ) {\n                    top = e.clientY - posY;\n                } else {\n                    top = 0;\n                    document.onmousemove = null;\n                }\n\n\n                document.onselectstart = function() {\n                    return false;\n                };\n\n                userUnselect($(\"body\"));\n                userUnselect(dialog);\n                dialog[0].style.left = left + \"px\";\n                dialog[0].style.top  = top + \"px\";\n            };\n\n            document.onmouseup = function() {                            \n                userCanSelect($(\"body\"));\n                userCanSelect(dialog);\n\n                document.onselectstart = null;         \n                document.onmousemove = null;\n            };\n\n            dialogHeader.touchDraggable = function() {\n                var offset = null;\n                var start  = function(e) {\n                    var orig = e.originalEvent; \n                    var pos  = $(this).parent().position();\n\n                    offset = {\n                        x : orig.changedTouches[0].pageX - pos.left,\n                        y : orig.changedTouches[0].pageY - pos.top\n                    };\n                };\n\n                var move = function(e) {\n                    e.preventDefault();\n                    var orig = e.originalEvent;\n\n                    $(this).parent().css({\n                        top  : orig.changedTouches[0].pageY - offset.y,\n                        left : orig.changedTouches[0].pageX - offset.x\n                    });\n                };\n\n                this.bind(\"touchstart\", start).bind(\"touchmove\", move);\n            };\n\n            dialogHeader.touchDraggable();\n        }\n\n        editormd.dialogZindex += 2;\n\n        return dialog;\n    };\n    \n    /**\n     * 鼠标和触摸事件的判断/选择方法\n     * MouseEvent or TouchEvent type switch\n     * \n     * @param   {String} [mouseEventType=\"click\"]    供选择的鼠标事件\n     * @param   {String} [touchEventType=\"touchend\"] 供选择的触摸事件\n     * @returns {String} EventType                   返回事件类型名称\n     */\n    \n    editormd.mouseOrTouch = function(mouseEventType, touchEventType) {\n        mouseEventType = mouseEventType || \"click\";\n        touchEventType = touchEventType || \"touchend\";\n        \n        var eventType  = mouseEventType;\n\n        try {\n            document.createEvent(\"TouchEvent\");\n            eventType = touchEventType;\n        } catch(e) {}\n\n        return eventType;\n    };\n    \n    /**\n     * 日期时间的格式化方法\n     * Datetime format method\n     * \n     * @param   {String}   [format=\"\"]  日期时间的格式，类似PHP的格式\n     * @returns {String}   datefmt      返回格式化后的日期时间字符串\n     */\n    \n    editormd.dateFormat = function(format) {                \n        format      = format || \"\";\n\n        var addZero = function(d) {\n            return (d < 10) ? \"0\" + d : d;\n        };\n\n        var date    = new Date(); \n        var year    = date.getFullYear();\n        var year2   = year.toString().slice(2, 4);\n        var month   = addZero(date.getMonth() + 1);\n        var day     = addZero(date.getDate());\n        var weekDay = date.getDay();\n        var hour    = addZero(date.getHours());\n        var min     = addZero(date.getMinutes());\n        var second  = addZero(date.getSeconds());\n        var ms      = addZero(date.getMilliseconds()); \n        var datefmt = \"\";\n\n        var ymd     = year2 + \"-\" + month + \"-\" + day;\n        var fymd    = year  + \"-\" + month + \"-\" + day;\n        var hms     = hour  + \":\" + min   + \":\" + second;\n\n        switch (format) \n        {\n            case \"UNIX Time\" :\n                    datefmt = date.getTime();\n                break;\n\n            case \"UTC\" :\n                    datefmt = date.toUTCString();\n                break;\t\n\n            case \"yy\" :\n                    datefmt = year2;\n                break;\t\n\n            case \"year\" :\n            case \"yyyy\" :\n                    datefmt = year;\n                break;\n\n            case \"month\" :\n            case \"mm\" :\n                    datefmt = month;\n                break;                        \n\n            case \"cn-week-day\" :\n            case \"cn-wd\" :\n                    var cnWeekDays = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n                    datefmt = \"星期\" + cnWeekDays[weekDay];\n                break;\n\n            case \"week-day\" :\n            case \"wd\" :\n                    var weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n                    datefmt = weekDays[weekDay];\n                break;\n\n            case \"day\" :\n            case \"dd\" :\n                    datefmt = day;\n                break;\n\n            case \"hour\" :\n            case \"hh\" :\n                    datefmt = hour;\n                break;\n\n            case \"min\" :\n            case \"ii\" :\n                    datefmt = min;\n                break;\n\n            case \"second\" :\n            case \"ss\" :\n                    datefmt = second;\n                break;\n\n            case \"ms\" :\n                    datefmt = ms;\n                break;\n\n            case \"yy-mm-dd\" :\n                    datefmt = ymd;\n                break;\n\n            case \"yyyy-mm-dd\" :\n                    datefmt = fymd;\n                break;\n\n            case \"yyyy-mm-dd h:i:s ms\" :\n            case \"full + ms\" : \n                    datefmt = fymd + \" \" + hms + \" \" + ms;\n                break;\n\n            case \"full\" :\n            case \"yyyy-mm-dd h:i:s\" :\n                default:\n                    datefmt = fymd + \" \" + hms;\n                break;\n        }\n\n        return datefmt;\n    };\n\n    return editormd;\n\n}));\n"
  },
  {
    "path": "public/static/home/editormd/editormd.js",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.js \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n;(function(factory) {\n    \"use strict\";\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n\t{\n        if (define.amd) // for Require.js\n        {\n            /* Require.js define replace */\n        } \n        else \n        {\n\t\t    define([\"jquery\"], factory);  // for Sea.js\n        }\n\t} \n\telse\n\t{ \n        window.editormd = factory();\n\t}\n    \n}(function() {    \n\n    /* Require.js assignment replace */\n    \n    \"use strict\";\n    \n    var $ = (typeof (jQuery) !== \"undefined\") ? jQuery : Zepto;\n\n\tif (typeof ($) === \"undefined\") {\n\t\treturn ;\n\t}\n    \n    /**\n     * editormd\n     * \n     * @param   {String} id           编辑器的ID\n     * @param   {Object} options      配置选项 Key/Value\n     * @returns {Object} editormd     返回editormd对象\n     */\n    \n    var editormd         = function (id, options) {\n        return new editormd.fn.init(id, options);\n    };\n    \n    editormd.title        = editormd.$name = \"Editor.md\";\n    editormd.version      = \"1.5.0\";\n    editormd.homePage     = \"https://pandao.github.io/editor.md/\";\n    editormd.classPrefix  = \"editormd-\";\n    \n    editormd.toolbarModes = {\n        full : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"ucwords\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"link\", \"reference-link\", \"image\", \"code\", \"preformatted-text\", \"code-block\", \"table\", \"datetime\", \"emoji\", \"html-entities\", \"pagebreak\", \"|\",\n            \"goto-line\", \"watch\", \"preview\", \"fullscreen\", \"clear\", \"search\", \"|\",\n            \"help\", \"info\"\n        ],\n        simple : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"watch\", \"preview\", \"fullscreen\", \"|\",\n            \"help\", \"info\"\n        ],\n        mini : [\n            \"undo\", \"redo\", \"|\",\n            \"watch\", \"preview\", \"|\",\n            \"help\", \"info\"\n        ]\n    };\n    \n    editormd.defaults     = {\n        mode                 : \"gfm\",          //gfm or markdown\n        name                 : \"\",             // Form element name\n        value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n        theme                : \"\",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty\n        editorTheme          : \"default\",      // Editor area, this is CodeMirror theme at v1.5.0\n        previewTheme         : \"\",             // Preview area theme, default empty\n        markdown             : \"\",             // Markdown source code\n        appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n        width                : \"100%\",\n        height               : \"100%\",\n        path                 : \"./lib/\",       // Dependents module file directory\n        pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n        delay                : 300,            // Delay parse markdown to html, Uint : ms\n        autoLoadModules      : true,           // Automatic load dependent module files\n        watch                : true,\n        placeholder          : \"Enjoy Markdown! coding now...\",\n        gotoLine             : true,\n        codeFold             : false,\n        autoHeight           : false,\n\t\tautoFocus            : true,\n        autoCloseTags        : true,\n        searchReplace        : true,\n        syncScrolling        : true,           // true | false | \"single\", default true\n        readOnly             : false,\n        tabSize              : 4,\n\t\tindentUnit           : 4,\n        lineNumbers          : true,\n\t\tlineWrapping         : true,\n\t\tautoCloseBrackets    : true,\n\t\tshowTrailingSpace    : true,\n\t\tmatchBrackets        : true,\n\t\tindentWithTabs       : true,\n\t\tstyleSelectedText    : true,\n        matchWordHighlight   : true,           // options: true, false, \"onselected\"\n        styleActiveLine      : true,           // Highlight the current line\n        dialogLockScreen     : true,\n        dialogShowMask       : true,\n        dialogDraggable      : true,\n        dialogMaskBgColor    : \"#fff\",\n        dialogMaskOpacity    : 0.1,\n        fontSize             : \"13px\",\n        saveHTMLToTextarea   : false,\n        disabledKeyMaps      : [],\n        \n        onload               : function() {},\n        onresize             : function() {},\n        onchange             : function() {},\n        onwatch              : null,\n        onunwatch            : null,\n        onpreviewing         : function() {},\n        onpreviewed          : function() {},\n        onfullscreen         : function() {},\n        onfullscreenExit     : function() {},\n        onscroll             : function() {},\n        onpreviewscroll      : function() {},\n        \n        imageUpload          : false,\n        imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n        imageUploadURL       : \"\",\n        crossDomainUpload    : false,\n        uploadCallbackURL    : \"\",\n        \n        toc                  : true,           // Table of contents\n        tocm                 : false,           // Using [TOCM], auto create ToC dropdown menu\n        tocTitle             : \"\",             // for ToC dropdown menu btn\n        tocDropdown          : false,\n        tocContainer         : \"\",\n        tocStartLevel        : 1,              // Said from H1 to create ToC\n        htmlDecode           : false,          // Open the HTML tag identification \n        pageBreak            : true,           // Enable parse page break [========]\n        atLink               : true,           // for @link\n        emailLink            : true,           // for email address auto link\n        taskList             : false,          // Enable Github Flavored Markdown task lists\n        emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                               // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                               // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n        tex                  : false,          // TeX(LaTeX), based on KaTeX\n        flowChart            : false,          // flowChart.js only support IE9+\n        sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        previewCodeHighlight : true,\n                \n        toolbar              : true,           // show/hide toolbar\n        toolbarAutoFixed     : true,           // on window scroll auto fixed position\n        toolbarIcons         : \"full\",\n        toolbarTitles        : {},\n        toolbarHandlers      : {\n            ucwords : function() {\n                return editormd.toolbarHandlers.ucwords;\n            },\n            lowercase : function() {\n                return editormd.toolbarHandlers.lowercase;\n            }\n        },\n        toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default <a> tag.\n            lowercase        : \"<a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a</i></a>\",\n            \"ucwords\"        : \"<a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa</i></a>\"\n        }, \n        toolbarIconsClass    : {\n            undo             : \"fa-undo\",\n            redo             : \"fa-repeat\",\n            bold             : \"fa-bold\",\n            del              : \"fa-strikethrough\",\n            italic           : \"fa-italic\",\n            quote            : \"fa-quote-left\",\n            uppercase        : \"fa-font\",\n            h1               : editormd.classPrefix + \"bold\",\n            h2               : editormd.classPrefix + \"bold\",\n            h3               : editormd.classPrefix + \"bold\",\n            h4               : editormd.classPrefix + \"bold\",\n            h5               : editormd.classPrefix + \"bold\",\n            h6               : editormd.classPrefix + \"bold\",\n            \"list-ul\"        : \"fa-list-ul\",\n            \"list-ol\"        : \"fa-list-ol\",\n            hr               : \"fa-minus\",\n            link             : \"fa-link\",\n            \"reference-link\" : \"fa-anchor\",\n            image            : \"fa-picture-o\",\n            code             : \"fa-code\",\n            \"preformatted-text\" : \"fa-file-code-o\",\n            \"code-block\"     : \"fa-file-code-o\",\n            table            : \"fa-table\",\n            datetime         : \"fa-clock-o\",\n            emoji            : \"fa-smile-o\",\n            \"html-entities\"  : \"fa-copyright\",\n            pagebreak        : \"fa-newspaper-o\",\n            \"goto-line\"      : \"fa-terminal\", // fa-crosshairs\n            watch            : \"fa-eye-slash\",\n            unwatch          : \"fa-eye\",\n            preview          : \"fa-desktop\",\n            search           : \"fa-search\",\n            fullscreen       : \"fa-arrows-alt\",\n            clear            : \"fa-eraser\",\n            help             : \"fa-question-circle\",\n            info             : \"fa-info-circle\"\n        },        \n        toolbarIconTexts     : {},\n        \n        lang : {\n            name        : \"zh-cn\",\n            description : \"开源在线Markdown编辑器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目录\",\n            toolbar     : {\n                undo             : \"撤销（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗体\",\n                del              : \"删除线\",\n                italic           : \"斜体\",\n                quote            : \"引用\",\n                ucwords          : \"将每个单词首字母转成大写\",\n                uppercase        : \"将所选转换成大写\",\n                lowercase        : \"将所选转换成小写\",\n                h1               : \"标题1\",\n                h2               : \"标题2\",\n                h3               : \"标题3\",\n                h4               : \"标题4\",\n                h5               : \"标题5\",\n                h6               : \"标题6\",\n                \"list-ul\"        : \"无序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用链接\",\n                image            : \"添加图片\",\n                code             : \"行内代码\",\n                \"preformatted-text\" : \"预格式文本 / 代码块（缩进风格）\",\n                \"code-block\"     : \"代码块（多语言风格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期时间\",\n                emoji            : \"Emoji表情\",\n                \"html-entities\"  : \"HTML实体字符\",\n                pagebreak        : \"插入分页符\",\n                \"goto-line\"      : \"跳转到行\",\n                watch            : \"关闭实时预览\",\n                unwatch          : \"开启实时预览\",\n                preview          : \"全窗口预览HTML（按 Shift + ESC还原）\",\n                fullscreen       : \"全屏（按ESC还原）\",\n                clear            : \"清空\",\n                search           : \"搜索\",\n                help             : \"使用帮助\",\n                info             : \"关于\" + editormd.title\n            },\n            buttons : {\n                enter  : \"确定\",\n                cancel : \"取消\",\n                close  : \"关闭\"\n            },\n            dialog : {\n                link : {\n                    title    : \"添加链接\",\n                    url      : \"链接地址\",\n                    urlTitle : \"链接标题\",\n                    urlEmpty : \"错误：请填写链接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用链接\",\n                    name     : \"引用名称\",\n                    url      : \"链接地址\",\n                    urlId    : \"链接ID\",\n                    urlTitle : \"链接标题\",\n                    nameEmpty: \"错误：引用链接的名称不能为空。\",\n                    idEmpty  : \"错误：请填写引用链接的ID。\",\n                    urlEmpty : \"错误：请填写引用链接的URL地址。\"\n                },\n                image : {\n                    title    : \"添加图片\",\n                    url      : \"图片地址\",\n                    link     : \"图片链接\",\n                    alt      : \"图片描述\",\n                    uploadButton     : \"本地上传\",\n                    imageURLEmpty    : \"错误：图片地址不能为空。\",\n                    uploadFileEmpty  : \"错误：上传的图片不能为空。\",\n                    formatNotAllowed : \"错误：只允许上传图片文件，允许上传的图片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加预格式文本或代码块\", \n                    emptyAlert        : \"错误：请填写预格式文本或代码的内容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代码块\",                    \n                    selectLabel       : \"代码语言：\",\n                    selectDefaultText : \"请选择代码语言\",\n                    otherLanguage     : \"其他语言\",\n                    unselectedLanguageAlert : \"错误：请选择代码所属的语言类型。\",\n                    codeEmptyAlert    : \"错误：请填写代码内容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML 实体字符\"\n                },\n                help : {\n                    title : \"使用帮助\"\n                }\n            }\n        }\n    };\n    \n    editormd.classNames  = {\n        tex : editormd.classPrefix + \"tex\"\n    };\n\n    editormd.dialogZindex = 99999;\n    \n    editormd.$katex       = null;\n    editormd.$marked      = null;\n    editormd.$CodeMirror  = null;\n    editormd.$prettyPrint = null;\n    \n    var timer, flowchartTimer;\n\n    editormd.prototype    = editormd.fn = {\n        state : {\n            watching   : false,\n            loaded     : false,\n            preview    : false,\n            fullscreen : false\n        },\n        \n        /**\n         * 构造函数/实例初始化\n         * Constructor / instance initialization\n         * \n         * @param   {String}   id            编辑器的ID\n         * @param   {Object}   [options={}]  配置选项 Key/Value\n         * @returns {editormd}               返回editormd的实例对象\n         */\n        \n        init : function (id, options) {\n            \n            options              = options || {};\n            \n            if (typeof id === \"object\")\n            {\n                options = id;\n            }\n            \n            var _this            = this;\n            var classPrefix      = this.classPrefix  = editormd.classPrefix; \n            var settings         = this.settings     = $.extend(true, {}, editormd.defaults, options);\n            \n            id                   = (typeof id === \"object\") ? settings.id : id;\n            \n            var editor           = this.editor       = $(\"#\" + id);\n            \n            this.id              = id;\n            this.lang            = settings.lang;\n            \n            var classNames       = this.classNames   = {\n                textarea : {\n                    html     : classPrefix + \"html-textarea\",\n                    markdown : classPrefix + \"markdown-textarea\"\n                }\n            };\n            \n            settings.pluginPath = (settings.pluginPath === \"\") ? settings.path + \"../plugins/\" : settings.pluginPath; \n            \n            this.state.watching = (settings.watch) ? true : false;\n            \n            if ( !editor.hasClass(\"editormd\") ) {\n                editor.addClass(\"editormd\");\n            }\n            \n            editor.css({\n                width  : (typeof settings.width  === \"number\") ? settings.width  + \"px\" : settings.width,\n                height : (typeof settings.height === \"number\") ? settings.height + \"px\" : settings.height\n            });\n            \n            if (settings.autoHeight)\n            {\n                editor.css(\"height\", \"auto\");\n            }\n                        \n            var markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            \n            if (markdownTextarea.length < 1)\n            {\n                editor.append(\"<textarea></textarea>\");\n                markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            }\n            \n            markdownTextarea.addClass(classNames.textarea.markdown).attr(\"placeholder\", settings.placeholder);\n            \n            if (typeof markdownTextarea.attr(\"name\") === \"undefined\" || markdownTextarea.attr(\"name\") === \"\")\n            {\n                markdownTextarea.attr(\"name\", (settings.name !== \"\") ? settings.name : id + \"-markdown-doc\");\n            }\n            \n            var appendElements = [\n                (!settings.readOnly) ? \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"preview-close-btn\\\"></a>\" : \"\",\n                ( (settings.saveHTMLToTextarea) ? \"<textarea class=\\\"\" + classNames.textarea.html + \"\\\" name=\\\"\" + id + \"-html-code\\\"></textarea>\" : \"\" ),\n                \"<div class=\\\"\" + classPrefix + \"preview\\\"><div class=\\\"markdown-body \" + classPrefix + \"preview-container\\\"></div></div>\",\n                \"<div class=\\\"\" + classPrefix + \"container-mask\\\" style=\\\"display:block;\\\"></div>\",\n                \"<div class=\\\"\" + classPrefix + \"mask\\\"></div>\"\n            ].join(\"\\n\");\n            \n            editor.append(appendElements).addClass(classPrefix + \"vertical\");\n            \n            if (settings.theme !== \"\") \n            {\n                editor.addClass(classPrefix + \"theme-\" + settings.theme);\n            }\n            \n            this.mask          = editor.children(\".\" + classPrefix + \"mask\");    \n            this.containerMask = editor.children(\".\" + classPrefix  + \"container-mask\");\n            \n            if (settings.markdown !== \"\")\n            {\n                markdownTextarea.val(settings.markdown);\n            }\n            \n            if (settings.appendMarkdown !== \"\")\n            {\n                markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown);\n            }\n            \n            this.htmlTextarea     = editor.children(\".\" + classNames.textarea.html);            \n            this.preview          = editor.children(\".\" + classPrefix + \"preview\");\n            this.previewContainer = this.preview.children(\".\" + classPrefix + \"preview-container\");\n            \n            if (settings.previewTheme !== \"\") \n            {\n                this.preview.addClass(classPrefix + \"preview-theme-\" + settings.previewTheme);\n            }\n            \n            if (typeof define === \"function\" && define.amd)\n            {\n                if (typeof katex !== \"undefined\") \n                {\n                    editormd.$katex = katex;\n                }\n                \n                if (settings.searchReplace && !settings.readOnly) \n                {\n                    editormd.loadCSS(settings.path + \"codemirror/addon/dialog/dialog\");\n                    editormd.loadCSS(settings.path + \"codemirror/addon/search/matchesonscrollbar\");\n                }\n            }\n            \n            if ((typeof define === \"function\" && define.amd) || !settings.autoLoadModules)\n            {\n                if (typeof CodeMirror !== \"undefined\") {\n                    editormd.$CodeMirror = CodeMirror;\n                }\n                \n                if (typeof marked     !== \"undefined\") {\n                    editormd.$marked     = marked;\n                }\n                \n                this.setCodeMirror().setToolbar().loadedDisplay();\n            } \n            else \n            {\n                this.loadQueues();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 所需组件加载队列\n         * Required components loading queue\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        loadQueues : function() {\n            var _this        = this;\n            var settings     = this.settings;\n            var loadPath     = settings.path;\n                                \n            var loadFlowChartOrSequenceDiagram = function() {\n                \n                if (editormd.isIE8) \n                {\n                    _this.loadedDisplay();\n                    \n                    return ;\n                }\n\n                if (settings.flowChart || settings.sequenceDiagram) \n                {\n                    editormd.loadScript(loadPath + \"raphael.min\", function() {\n\n                        editormd.loadScript(loadPath + \"underscore.min\", function() {  \n\n                            if (!settings.flowChart && settings.sequenceDiagram) \n                            {\n                                editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                    _this.loadedDisplay();\n                                });\n                            }\n                            else if (settings.flowChart && !settings.sequenceDiagram) \n                            {      \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        _this.loadedDisplay();\n                                    });\n                                });\n                            }\n                            else if (settings.flowChart && settings.sequenceDiagram) \n                            {  \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                            _this.loadedDisplay();\n                                        });\n                                    });\n                                });\n                            }\n                        });\n\n                    });\n                } \n                else\n                {\n                    _this.loadedDisplay();\n                }\n            }; \n\n            editormd.loadCSS(loadPath + \"codemirror/codemirror.min\");\n            \n            if (settings.searchReplace && !settings.readOnly)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/dialog/dialog\");\n                editormd.loadCSS(loadPath + \"codemirror/addon/search/matchesonscrollbar\");\n            }\n            \n            if (settings.codeFold)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/fold/foldgutter\");            \n            }\n            \n            editormd.loadScript(loadPath + \"codemirror/codemirror.min\", function() {\n                editormd.$CodeMirror = CodeMirror;\n                \n                editormd.loadScript(loadPath + \"codemirror/modes.min\", function() {\n                    \n                    editormd.loadScript(loadPath + \"codemirror/addons.min\", function() {\n                        \n                        _this.setCodeMirror();\n                        \n                        if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n                        {\n                            _this.loadedDisplay();\n                            \n                            return false;\n                        }\n                        \n                        _this.setToolbar();\n\n                        editormd.loadScript(loadPath + \"marked.min\", function() {\n\n                            editormd.$marked = marked;\n                                \n                            if (settings.previewCodeHighlight) \n                            {\n                                editormd.loadScript(loadPath + \"prettify.min\", function() {\n                                    loadFlowChartOrSequenceDiagram();\n                                });\n                            } \n                            else\n                            {                  \n                                loadFlowChartOrSequenceDiagram();\n                            }\n                        });\n                        \n                    });\n                    \n                });\n                \n            });\n\n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的整体主题，主要是工具栏\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setTheme : function(theme) {\n            var editor      = this.editor;\n            var oldTheme    = this.settings.theme;\n            var themePrefix = this.classPrefix + \"theme-\";\n            \n            editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.theme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 设置 CodeMirror（编辑区）的主题\n         * Setting CodeMirror (Editor area) theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setEditorTheme : function(theme) {  \n            var settings   = this.settings;  \n            settings.editorTheme = theme;  \n            \n            if (theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            this.cm.setOption(\"theme\", theme);\n            \n            return this;\n        },\n        \n        /**\n         * setEditorTheme() 的别名\n         * setEditorTheme() alias\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorTheme : function (theme) {            \n            this.setEditorTheme(theme);\n            \n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的主题\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setPreviewTheme : function(theme) {  \n            var preview     = this.preview;\n            var oldTheme    = this.settings.previewTheme;\n            var themePrefix = this.classPrefix + \"preview-theme-\";\n            \n            preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.previewTheme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 配置和初始化CodeMirror组件\n         * CodeMirror initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirror : function() { \n            var settings         = this.settings;\n            var editor           = this.editor;\n            \n            if (settings.editorTheme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            var codeMirrorConfig = {\n                mode                      : settings.mode,\n                theme                     : settings.editorTheme,\n                tabSize                   : settings.tabSize,\n                dragDrop                  : false,\n                autofocus                 : settings.autoFocus,\n                autoCloseTags             : settings.autoCloseTags,\n                readOnly                  : (settings.readOnly) ? \"nocursor\" : false,\n                indentUnit                : settings.indentUnit,\n                lineNumbers               : settings.lineNumbers,\n                lineWrapping              : settings.lineWrapping,\n                extraKeys                 : {\n                                                \"Ctrl-Q\": function(cm) { \n                                                    cm.foldCode(cm.getCursor()); \n                                                }\n                                            },\n                foldGutter                : settings.codeFold,\n                gutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n                matchBrackets             : settings.matchBrackets,\n                indentWithTabs            : settings.indentWithTabs,\n                styleActiveLine           : settings.styleActiveLine,\n                styleSelectedText         : settings.styleSelectedText,\n                autoCloseBrackets         : settings.autoCloseBrackets,\n                showTrailingSpace         : settings.showTrailingSpace,\n                highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === \"onselected\") ? false : /\\w/ } )\n            };\n            \n            this.codeEditor = this.cm        = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig);\n            this.codeMirror = this.cmElement = editor.children(\".CodeMirror\");\n            \n            if (settings.value !== \"\")\n            {\n                this.cm.setValue(settings.value);\n            }\n\n            this.codeMirror.css({\n                fontSize : settings.fontSize,\n                width    : (!settings.watch) ? \"100%\" : \"50%\"\n            });\n            \n            if (settings.autoHeight)\n            {\n                this.codeMirror.css(\"height\", \"auto\");\n                this.cm.setOption(\"viewportMargin\", Infinity);\n            }\n            \n            if (!settings.lineNumbers)\n            {\n                this.codeMirror.find(\".CodeMirror-gutters\").css(\"border-right\", \"none\");\n            }\n\n            return this;\n        },\n        \n        /**\n         * 获取CodeMirror的配置选项\n         * Get CodeMirror setting options\n         * \n         * @returns {Mixed}                  return CodeMirror setting option value\n         */\n        \n        getCodeMirrorOption : function(key) {            \n            return this.cm.getOption(key);\n        },\n        \n        /**\n         * 配置和重配置CodeMirror的选项\n         * CodeMirror setting options / resettings\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorOption : function(key, value) {\n            \n            this.cm.setOption(key, value);\n            \n            return this;\n        },\n        \n        /**\n         * 添加 CodeMirror 键盘快捷键\n         * Add CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        addKeyMap : function(map, bottom) {\n            this.cm.addKeyMap(map, bottom);\n            \n            return this;\n        },\n        \n        /**\n         * 移除 CodeMirror 键盘快捷键\n         * Remove CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        removeKeyMap : function(map) {\n            this.cm.removeKeyMap(map);\n            \n            return this;\n        },\n        \n        /**\n         * 跳转到指定的行\n         * Goto CodeMirror line\n         * \n         * @param   {String|Intiger}   line      line number or \"first\"|\"last\"\n         * @returns {editormd}                   返回editormd的实例对象\n         */\n        \n        gotoLine : function (line) {\n            \n            var settings = this.settings;\n            \n            if (!settings.gotoLine)\n            {\n                return this;\n            }\n            \n            var cm       = this.cm;\n            var editor   = this.editor;\n            var count    = cm.lineCount();\n            var preview  = this.preview;\n            \n            if (typeof line === \"string\")\n            {\n                if(line === \"last\")\n                {\n                    line = count;\n                }\n            \n                if (line === \"first\")\n                {\n                    line = 1;\n                }\n            }\n            \n            if (typeof line !== \"number\") \n            {  \n                alert(\"Error: The line number must be an integer.\");\n                return this;\n            }\n            \n            line  = parseInt(line) - 1;\n            \n            if (line > count)\n            {\n                alert(\"Error: The line number range 1-\" + count);\n                \n                return this;\n            }\n            \n            cm.setCursor( {line : line, ch : 0} );\n            \n            var scrollInfo   = cm.getScrollInfo();\n            var clientHeight = scrollInfo.clientHeight; \n            var coords       = cm.charCoords({line : line, ch : 0}, \"local\");\n            \n            cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2);\n            \n            if (settings.watch)\n            {            \n                var cmScroll  = this.codeMirror.find(\".CodeMirror-scroll\")[0];\n                var height    = $(cmScroll).height(); \n                var scrollTop = cmScroll.scrollTop;         \n                var percent   = (scrollTop / cmScroll.scrollHeight);\n\n                if (scrollTop === 0)\n                {\n                    preview.scrollTop(0);\n                } \n                else if (scrollTop + height >= cmScroll.scrollHeight - 16)\n                { \n                    preview.scrollTop(preview[0].scrollHeight);                    \n                } \n                else\n                {                    \n                    preview.scrollTop(preview[0].scrollHeight * percent);\n                }\n            }\n\n            cm.focus();\n            \n            return this;\n        },\n        \n        /**\n         * 扩展当前实例对象，可同时设置多个或者只设置一个\n         * Extend editormd instance object, can mutil setting.\n         * \n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        extend : function() {\n            if (typeof arguments[1] !== \"undefined\")\n            {\n                if (typeof arguments[1] === \"function\")\n                {\n                    arguments[1] = $.proxy(arguments[1], this);\n                }\n\n                this[arguments[0]] = arguments[1];\n            }\n            \n            if (typeof arguments[0] === \"object\" && typeof arguments[0].length === \"undefined\")\n            {\n                $.extend(true, this, arguments[0]);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 设置或扩展当前实例对象，单个设置\n         * Extend editormd instance object, one by one\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        set : function (key, value) {\n            \n            if (typeof value !== \"undefined\" && typeof value === \"function\")\n            {\n                value = $.proxy(value, this);\n            }\n            \n            this[key] = value;\n\n            return this;\n        },\n        \n        /**\n         * 重新配置\n         * Resetting editor options\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        config : function(key, value) {\n            var settings = this.settings;\n            \n            if (typeof key === \"object\")\n            {\n                settings = $.extend(true, settings, key);\n            }\n            \n            if (typeof key === \"string\")\n            {\n                settings[key] = value;\n            }\n            \n            this.settings = settings;\n            this.recreate();\n            \n            return this;\n        },\n        \n        /**\n         * 注册事件处理方法\n         * Bind editor event handle\n         * \n         * @param   {String}     eventType      event type\n         * @param   {Function}   callback       回调函数\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        on : function(eventType, callback) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {                \n                settings[\"on\" + eventType] = $.proxy(callback, this);      \n            }\n\n            return this;\n        },\n        \n        /**\n         * 解除事件处理方法\n         * Unbind editor event handle\n         * \n         * @param   {String}   eventType          event type\n         * @returns {editormd}                    this(editormd instance object.)\n         */\n        \n        off : function(eventType) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {\n                settings[\"on\" + eventType] = function(){};\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 显示工具栏\n         * Display toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showToolbar : function(callback) {\n            var settings = this.settings;\n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find(\".\" + this.classPrefix + \"menu\").html() === \"\") )\n            {\n                this.setToolbar();\n            }\n            \n            settings.toolbar = true; \n            \n            this.toolbar.show();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏工具栏\n         * Hide toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}                         this(editormd instance object.)\n         */\n        \n        hideToolbar : function(callback) { \n            var settings = this.settings;\n            \n            settings.toolbar = false;  \n            this.toolbar.hide();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 页面滚动时工具栏的固定定位\n         * Set toolbar in window scroll auto fixed position\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarAutoFixed : function(fixed) {\n            \n            var state    = this.state;\n            var editor   = this.editor;\n            var toolbar  = this.toolbar;\n            var settings = this.settings;\n            \n            if (typeof fixed !== \"undefined\")\n            {\n                settings.toolbarAutoFixed = fixed;\n            }\n            \n            var autoFixedHandle = function(){\n                var $window = $(window);\n                var top     = $window.scrollTop();\n                \n                if (!settings.toolbarAutoFixed)\n                {\n                    return false;\n                }\n\n                if (top - editor.offset().top > 10 && top < editor.height())\n                {\n                    toolbar.css({\n                        position : \"fixed\",\n                        width    : editor.width() + \"px\",\n                        left     : ($window.width() - editor.width()) / 2 + \"px\"\n                    });\n                }\n                else\n                {\n                    toolbar.css({\n                        position : \"absolute\",\n                        width    : \"100%\",\n                        left     : 0\n                    });\n                }\n            };\n            \n            if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed)\n            {\n                $(window).bind(\"scroll\", autoFixedHandle);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 配置和初始化工具栏\n         * Set toolbar and Initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbar : function() {\n            var settings    = this.settings;  \n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            var editor      = this.editor;\n            var preview     = this.preview;\n            var classPrefix = this.classPrefix;\n            \n            var toolbar     = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            \n            if (settings.toolbar && toolbar.length < 1)\n            {            \n                var toolbarHTML = \"<div class=\\\"\" + classPrefix + \"toolbar\\\"><div class=\\\"\" + classPrefix + \"toolbar-container\\\"><ul class=\\\"\" + classPrefix + \"menu\\\"></ul></div></div>\";\n                \n                editor.append(toolbarHTML);\n                toolbar = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            }\n            \n            if (!settings.toolbar) \n            {\n                toolbar.hide();\n                \n                return this;\n            }\n            \n            toolbar.show();\n            \n            var icons       = (typeof settings.toolbarIcons === \"function\") ? settings.toolbarIcons() \n                            : ((typeof settings.toolbarIcons === \"string\")  ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons);\n            \n            var toolbarMenu = toolbar.find(\".\" + this.classPrefix + \"menu\"), menu = \"\";\n            var pullRight   = false;\n            \n            for (var i = 0, len = icons.length; i < len; i++)\n            {\n                var name = icons[i];\n\n                if (name === \"||\") \n                { \n                    pullRight = true;\n                } \n                else if (name === \"|\")\n                {\n                    menu += \"<li class=\\\"divider\\\" unselectable=\\\"on\\\">|</li>\";\n                }\n                else\n                {\n                    var isHeader = (/h(\\d)/.test(name));\n                    var index    = name;\n                    \n                    if (name === \"watch\" && !settings.watch) {\n                        index = \"unwatch\";\n                    }\n                    \n                    var title     = settings.lang.toolbar[index];\n                    var iconTexts = settings.toolbarIconTexts[index];\n                    var iconClass = settings.toolbarIconsClass[index];\n                    \n                    title     = (typeof title     === \"undefined\") ? \"\" : title;\n                    iconTexts = (typeof iconTexts === \"undefined\") ? \"\" : iconTexts;\n                    iconClass = (typeof iconClass === \"undefined\") ? \"\" : iconClass;\n\n                    var menuItem = pullRight ? \"<li class=\\\"pull-right\\\">\" : \"<li>\";\n                    \n                    if (typeof settings.toolbarCustomIcons[name] !== \"undefined\" && typeof settings.toolbarCustomIcons[name] !== \"function\")\n                    {\n                        menuItem += settings.toolbarCustomIcons[name];\n                    }\n                    else \n                    {\n                        menuItem += \"<a href=\\\"javascript:;\\\" title=\\\"\" + title + \"\\\" unselectable=\\\"on\\\">\";\n                        menuItem += \"<i class=\\\"fa \" + iconClass + \"\\\" name=\\\"\"+name+\"\\\" unselectable=\\\"on\\\">\"+((isHeader) ? name.toUpperCase() : ( (iconClass === \"\") ? iconTexts : \"\") ) + \"</i>\";\n                        menuItem += \"</a>\";\n                    }\n\n                    menuItem += \"</li>\";\n\n                    menu = pullRight ? menuItem + menu : menu + menuItem;\n                }\n            }\n\n            toolbarMenu.html(menu);\n            \n            toolbarMenu.find(\"[title=\\\"Lowercase\\\"]\").attr(\"title\", settings.lang.toolbar.lowercase);\n            toolbarMenu.find(\"[title=\\\"ucwords\\\"]\").attr(\"title\", settings.lang.toolbar.ucwords);\n            \n            this.setToolbarHandler();\n            this.setToolbarAutoFixed();\n\n            return this;\n        },\n        \n        /**\n         * 工具栏图标事件处理对象序列\n         * Get toolbar icons event handlers\n         * \n         * @param   {Object}   cm    CodeMirror的实例对象\n         * @param   {String}   name  要获取的事件处理器名称\n         * @returns {Object}         返回处理对象序列\n         */\n            \n        dialogLockScreen : function() {\n            $.proxy(editormd.dialogLockScreen, this)();\n            \n            return this;\n        },\n\n        dialogShowMask : function(dialog) {\n            $.proxy(editormd.dialogShowMask, this)(dialog);\n            \n            return this;\n        },\n        \n        getToolbarHandles : function(name) {  \n            var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers;\n            \n            return (name && typeof toolbarIconHandlers[name] !== \"undefined\") ? toolbarHandlers[name] : toolbarHandlers;\n        },\n        \n        /**\n         * 工具栏图标事件处理器\n         * Bind toolbar icons event handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarHandler : function() {\n            var _this               = this;\n            var settings            = this.settings;\n            \n            if (!settings.toolbar || settings.readOnly) {\n                return this;\n            }\n            \n            var toolbar             = this.toolbar;\n            var cm                  = this.cm;\n            var classPrefix         = this.classPrefix;           \n            var toolbarIcons        = this.toolbarIcons = toolbar.find(\".\" + classPrefix + \"menu > li > a\");  \n            var toolbarIconHandlers = this.getToolbarHandles();  \n                \n            toolbarIcons.bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(event) {\n\n                var icon                = $(this).children(\".fa\");\n                var name                = icon.attr(\"name\");\n                var cursor              = cm.getCursor();\n                var selection           = cm.getSelection();\n\n                if (name === \"\") {\n                    return ;\n                }\n                \n                _this.activeIcon = icon;\n\n                if (typeof toolbarIconHandlers[name] !== \"undefined\") \n                {\n                    $.proxy(toolbarIconHandlers[name], _this)(cm);\n                }\n                else \n                {\n                    if (typeof settings.toolbarHandlers[name] !== \"undefined\") \n                    {\n                        $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection);\n                    }\n                }\n                \n                if (name !== \"link\" && name !== \"reference-link\" && name !== \"image\" && name !== \"code-block\" && \n                    name !== \"preformatted-text\" && name !== \"watch\" && name !== \"preview\" && name !== \"search\" && name !== \"fullscreen\" && name !== \"info\") \n                {\n                    cm.focus();\n                }\n\n                return false;\n\n            });\n\n            return this;\n        },\n        \n        /**\n         * 动态创建对话框\n         * Creating custom dialogs\n         * \n         * @param   {Object} options  配置项键值对 Key/Value\n         * @returns {dialog}          返回创建的dialog的jQuery实例对象\n         */\n        \n        createDialog : function(options) {            \n            return $.proxy(editormd.createDialog, this)(options);\n        },\n        \n        /**\n         * 创建关于Editor.md的对话框\n         * Create about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        createInfoDialog : function() {\n            var _this        = this;\n\t\t\tvar editor       = this.editor;\n            var classPrefix  = this.classPrefix;  \n            \n            var infoDialogHTML = [\n                \"<div class=\\\"\" + classPrefix + \"dialog \" + classPrefix + \"dialog-info\\\" style=\\\"\\\">\",\n                \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\",\n                \"<h1><i class=\\\"editormd-logo editormd-logo-lg editormd-logo-color\\\"></i> \" + editormd.title + \"<small>v\" + editormd.version + \"</small></h1>\",\n                \"<p>\" + this.lang.description + \"</p>\",\n                \"<p style=\\\"margin: 10px 0 20px 0;\\\"><a href=\\\"\" + editormd.homePage + \"\\\" target=\\\"_blank\\\">\" + editormd.homePage + \" <i class=\\\"fa fa-external-link\\\"></i></a></p>\",\n                \"<p style=\\\"font-size: 0.85em;\\\">Copyright &copy; 2015 <a href=\\\"https://github.com/pandao\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">Pandao</a>, The <a href=\\\"https://github.com/pandao/editor.md/blob/master/LICENSE\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">MIT</a> License.</p>\",\n                \"</div>\",\n                \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\",\n                \"</div>\"\n            ].join(\"\\n\");\n\n            editor.append(infoDialogHTML);\n            \n            var infoDialog  = this.infoDialog = editor.children(\".\" + classPrefix + \"dialog-info\");\n\n            infoDialog.find(\".\" + classPrefix + \"dialog-close\").bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function() {\n                _this.hideInfoDialog();\n            });\n            \n            infoDialog.css(\"border\", (editormd.isIE8) ? \"1px solid #ddd\" : \"\").css(\"z-index\", editormd.dialogZindex).show();\n            \n            this.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 关于Editor.md对话居中定位\n         * Editor.md dialog position handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        infoDialogPosition : function() {\n            var infoDialog = this.infoDialog;\n            \n\t\t\tvar _infoDialogPosition = function() {\n\t\t\t\tinfoDialog.css({\n\t\t\t\t\ttop  : ($(window).height() - infoDialog.height()) / 2 + \"px\",\n\t\t\t\t\tleft : ($(window).width()  - infoDialog.width()) / 2  + \"px\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t_infoDialogPosition();\n\n\t\t\t$(window).resize(_infoDialogPosition);\n            \n            return this;\n        },\n        \n        /**\n         * 显示关于Editor.md\n         * Display about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showInfoDialog : function() {\n\n            $(\"html,body\").css(\"overflow-x\", \"hidden\");\n            \n            var _this       = this;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;         \n\t\t\tvar infoDialog  = this.infoDialog = editor.children(\".\" + this.classPrefix + \"dialog-info\");\n            \n            if (infoDialog.length < 1)\n            {\n                this.createInfoDialog();\n            }\n            \n            this.lockScreen(true);\n            \n            this.mask.css({\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t}).show();\n\n\t\t\tinfoDialog.css(\"z-index\", editormd.dialogZindex).show();\n\n\t\t\tthis.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏关于Editor.md\n         * Hide about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        hideInfoDialog : function() {            \n            $(\"html,body\").css(\"overflow-x\", \"\");\n            this.infoDialog.hide();\n            this.mask.hide();\n            this.lockScreen(false);\n\n            return this;\n        },\n        \n        /**\n         * 锁屏\n         * lock screen\n         * \n         * @param   {Boolean}    lock    Boolean 布尔值，是否锁屏\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        lockScreen : function(lock) {\n            editormd.lockScreen(lock);\n            this.resize();\n\n            return this;\n        },\n        \n        /**\n         * 编辑器界面重建，用于动态语言包或模块加载等\n         * Recreate editor\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        recreate : function() {\n            var _this            = this;\n            var editor           = this.editor;\n            var settings         = this.settings;\n            \n            this.codeMirror.remove();\n            \n            this.setCodeMirror();\n\n            if (!settings.readOnly) \n            {\n                if (editor.find(\".editormd-dialog\").length > 0) {\n                    editor.find(\".editormd-dialog\").remove();\n                }\n                \n                if (settings.toolbar) \n                {  \n                    this.getToolbarHandles();                  \n                    this.setToolbar();\n                }\n            }\n            \n            this.loadedDisplay(true);\n\n            return this;\n        },\n        \n        /**\n         * 高亮预览HTML的pre代码部分\n         * highlight of preview codes\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        previewCodeHighlight : function() {    \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (settings.previewCodeHighlight) \n            {\n                previewContainer.find(\"pre\").addClass(\"prettyprint linenums\");\n                \n                if (typeof prettyPrint !== \"undefined\")\n                {                    \n                    prettyPrint();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析TeX(KaTeX)科学公式\n         * TeX(KaTeX) Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        katexRender : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            this.previewContainer.find(\".\" + editormd.classNames.tex).each(function(){\n                var tex  = $(this);\n                editormd.$katex.render(tex.text(), tex[0]);\n                \n                tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n            });   \n\n            return this;\n        },\n        \n        /**\n         * 解析和渲染流程图及时序图\n         * FlowChart and SequenceDiagram Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        flowChartAndSequenceDiagramRender : function() {\n            var $this            = this;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (editormd.isIE8) {\n                return this;\n            }\n\n            if (settings.flowChart) {\n                if (flowchartTimer === null) {\n                    return this;\n                }\n                \n                previewContainer.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                previewContainer.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n                    \n            var preview    = $this.preview;\n            var codeMirror = $this.codeMirror;\n            var codeView   = codeMirror.find(\".CodeMirror-scroll\");\n\n            var height    = codeView.height();\n            var scrollTop = codeView.scrollTop();                    \n            var percent   = (scrollTop / codeView[0].scrollHeight);\n            var tocHeight = 0;\n\n            preview.find(\".markdown-toc-list\").each(function(){\n                tocHeight += $(this).height();\n            });\n\n            var tocMenuHeight = preview.find(\".editormd-toc-menu\").height(); \n            tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n            if (scrollTop === 0) \n            {\n                preview.scrollTop(0);\n            } \n            else if (scrollTop + height >= codeView[0].scrollHeight - 16)\n            { \n                preview.scrollTop(preview[0].scrollHeight);                        \n            } \n            else\n            {                  \n                preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 注册键盘快捷键处理\n         * Register CodeMirror keyMaps (keyboard shortcuts).\n         * \n         * @param   {Object}    keyMap      KeyMap key/value {\"(Ctrl/Shift/Alt)-Key\" : function(){}}\n         * @returns {editormd}              return this\n         */\n        \n        registerKeyMaps : function(keyMap) {\n            \n            var _this           = this;\n            var cm              = this.cm;\n            var settings        = this.settings;\n            var toolbarHandlers = editormd.toolbarHandlers;\n            var disabledKeyMaps = settings.disabledKeyMaps;\n            \n            keyMap              = keyMap || null;\n            \n            if (keyMap)\n            {\n                for (var i in keyMap)\n                {\n                    if ($.inArray(i, disabledKeyMaps) < 0)\n                    {\n                        var map = {};\n                        map[i]  = keyMap[i];\n\n                        cm.addKeyMap(keyMap);\n                    }\n                }\n            }\n            else\n            {\n                for (var k in editormd.keyMaps)\n                {\n                    var _keyMap = editormd.keyMaps[k];\n                    var handle = (typeof _keyMap === \"string\") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this);\n                    \n                    if ($.inArray(k, [\"F9\", \"F10\", \"F11\"]) < 0 && $.inArray(k, disabledKeyMaps) < 0)\n                    {\n                        var _map = {};\n                        _map[k] = handle;\n\n                        cm.addKeyMap(_map);\n                    }\n                }\n                \n                $(window).keydown(function(event) {\n                    \n                    var keymaps = {\n                        \"120\" : \"F9\",\n                        \"121\" : \"F10\",\n                        \"122\" : \"F11\"\n                    };\n                    \n                    if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 )\n                    {\n                        switch (event.keyCode)\n                        {\n                            case 120:\n                                    $.proxy(toolbarHandlers[\"watch\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 121:\n                                    $.proxy(toolbarHandlers[\"preview\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 122:\n                                    $.proxy(toolbarHandlers[\"fullscreen\"], _this)();                        \n                                    return false;\n                                break;\n                                \n                            default:\n                                break;\n                        }\n                    }\n                });\n            }\n\n            return this;\n        },\n        \n        /**\n         * 绑定同步滚动\n         * \n         * @returns {editormd} return this\n         */\n        \n        bindScrollEvent : function() {\n            \n            var _this            = this;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var mouseOrTouch     = editormd.mouseOrTouch;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n                \n            var cmBindScroll = function() {    \n                codeMirror.find(\".CodeMirror-scroll\").bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();                    \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    \n                    var tocHeight = 0;\n                    \n                    preview.find(\".markdown-toc-list\").each(function(){\n                        tocHeight += $(this).height();\n                    });\n                    \n                    var tocMenuHeight = preview.find(\".editormd-toc-menu\").height();\n                    tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n                    if (scrollTop === 0) \n                    {\n                        preview.scrollTop(0);\n                    } \n                    else if (scrollTop + height >= $(this)[0].scrollHeight - 16)\n                    { \n                        preview.scrollTop(preview[0].scrollHeight);                        \n                    } \n                    else\n                    {\n                        preview.scrollTop((preview[0].scrollHeight  + tocHeight + tocMenuHeight) * percent);\n                    }\n                    \n                    $.proxy(settings.onscroll, _this)(event);\n                });\n            };\n\n            var cmUnbindScroll = function() {\n                codeMirror.find(\".CodeMirror-scroll\").unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            };\n\n            var previewBindScroll = function() {\n                \n                preview.bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();         \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    var codeView  = codeMirror.find(\".CodeMirror-scroll\");\n\n                    if(scrollTop === 0) \n                    {\n                        codeView.scrollTop(0);\n                    }\n                    else if (scrollTop + height >= $(this)[0].scrollHeight)\n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight);                        \n                    }\n                    else \n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onpreviewscroll, _this)(event);\n                });\n\n            };\n\n            var previewUnbindScroll = function() {\n                preview.unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            }; \n\n\t\t\tcodeMirror.bind({\n\t\t\t\tmouseover  : cmBindScroll,\n\t\t\t\tmouseout   : cmUnbindScroll,\n\t\t\t\ttouchstart : cmBindScroll,\n\t\t\t\ttouchend   : cmUnbindScroll\n\t\t\t});\n            \n            if (settings.syncScrolling === \"single\") {\n                return this;\n            }\n            \n\t\t\tpreview.bind({\n\t\t\t\tmouseover  : previewBindScroll,\n\t\t\t\tmouseout   : previewUnbindScroll,\n\t\t\t\ttouchstart : previewBindScroll,\n\t\t\t\ttouchend   : previewUnbindScroll\n\t\t\t});\n\n            return this;\n        },\n        \n        bindChangeEvent : function() {\n            \n            var _this            = this;\n            var cm               = this.cm;\n            var settings         = this.settings;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n            \n            cm.on(\"change\", function(_cm, changeObj) {\n                \n                if (settings.watch)\n                {\n                    _this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                }\n                \n                timer = setTimeout(function() {\n                    clearTimeout(timer);\n                    _this.save();\n                    timer = null;\n                }, settings.delay);\n            });\n\n            return this;\n        },\n        \n        /**\n         * 加载队列完成之后的显示处理\n         * Display handle of the module queues loaded after.\n         * \n         * @param   {Boolean}   recreate   是否为重建编辑器\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        loadedDisplay : function(recreate) {\n            \n            recreate             = recreate || false;\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            \n            this.containerMask.hide();\n            \n            this.save();\n            \n            if (settings.watch) {\n                preview.show();\n            }\n            \n            editor.data(\"oldWidth\", editor.width()).data(\"oldHeight\", editor.height()); // 为了兼容Zepto\n            \n            this.resize();\n            this.registerKeyMaps();\n            \n            $(window).resize(function(){\n                _this.resize();\n            });\n            \n            this.bindScrollEvent().bindChangeEvent();\n            \n            if (!recreate)\n            {\n                $.proxy(settings.onload, this)();\n            }\n            \n            this.state.loaded = true;\n\n            return this;\n        },\n        \n        /**\n         * 设置编辑器的宽度\n         * Set editor width\n         * \n         * @param   {Number|String} width  编辑器宽度值\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        width : function(width) {\n                \n            this.editor.css(\"width\", (typeof width === \"number\") ? width  + \"px\" : width);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 设置编辑器的高度\n         * Set editor height\n         * \n         * @param   {Number|String} height  编辑器高度值\n         * @returns {editormd}              返回editormd的实例对象\n         */\n        \n        height : function(height) {\n                \n            this.editor.css(\"height\", (typeof height === \"number\")  ? height  + \"px\" : height);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 调整编辑器的尺寸和布局\n         * Resize editor layout\n         * \n         * @param   {Number|String} [width=null]  编辑器宽度值\n         * @param   {Number|String} [height=null] 编辑器高度值\n         * @returns {editormd}                    返回editormd的实例对象\n         */\n        \n        resize : function(width, height) {\n            \n            width  = width  || null;\n            height = height || null;\n            \n            var state      = this.state;\n            var editor     = this.editor;\n            var preview    = this.preview;\n            var toolbar    = this.toolbar;\n            var settings   = this.settings;\n            var codeMirror = this.codeMirror;\n            \n            if (width)\n            {\n                editor.css(\"width\", (typeof width  === \"number\") ? width  + \"px\" : width);\n            }\n            \n            if (settings.autoHeight && !state.fullscreen && !state.preview)\n            {\n                editor.css(\"height\", \"auto\");\n                codeMirror.css(\"height\", \"auto\");\n            } \n            else \n            {\n                if (height) \n                {\n                    editor.css(\"height\", (typeof height === \"number\") ? height + \"px\" : height);\n                }\n                \n                if (state.fullscreen)\n                {\n                    editor.height($(window).height());\n                }\n\n                if (settings.toolbar && !settings.readOnly) \n                {\n                    codeMirror.css(\"margin-top\", toolbar.height() + 1).height(editor.height() - toolbar.height());\n                } \n                else\n                {\n                    codeMirror.css(\"margin-top\", 0).height(editor.height());\n                }\n            }\n            \n            if(settings.watch) \n            {\n                codeMirror.width(editor.width() / 2);\n                preview.width((!state.preview) ? editor.width() / 2 : editor.width());\n                \n                this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                \n                if (settings.toolbar && !settings.readOnly) \n                {\n                    preview.css(\"top\", toolbar.height() + 1);\n                } \n                else \n                {\n                    preview.css(\"top\", 0);\n                }\n                \n                if (settings.autoHeight && !state.fullscreen && !state.preview)\n                {\n                    preview.height(\"\");\n                }\n                else\n                {                \n                    var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height();\n                    \n                    preview.height(previewHeight);\n                }\n            } \n            else \n            {\n                codeMirror.width(editor.width());\n                preview.hide();\n            }\n            \n            if (state.loaded) \n            {\n                $.proxy(settings.onresize, this)();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析和保存Markdown代码\n         * Parse & Saving Markdown source code\n         * \n         * @returns {editormd}     返回editormd的实例对象\n         */\n        \n        save : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var settings         = this.settings;\n\n            if (timer === null && !(!settings.watch && state.preview))\n            {\n                return this;\n            }\n            \n            var cm               = this.cm;            \n            var cmValue          = cm.getValue();\n            var previewContainer = this.previewContainer;\n\n            if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n            {\n                this.markdownTextarea.val(cmValue);\n                \n                return this;\n            }\n            \n            var marked          = editormd.$marked;\n            var markdownToC     = this.markdownToC = [];            \n            var rendererOptions = this.markedRendererOptions = {  \n                toc                  : settings.toc,\n                tocm                 : settings.tocm,\n                tocStartLevel        : settings.tocStartLevel,\n                pageBreak            : settings.pageBreak,\n                taskList             : settings.taskList,\n                emoji                : settings.emoji,\n                tex                  : settings.tex,\n                atLink               : settings.atLink,           // for @link\n                emailLink            : settings.emailLink,        // for mail address auto link\n                flowChart            : settings.flowChart,\n                sequenceDiagram      : settings.sequenceDiagram,\n                previewCodeHighlight : settings.previewCodeHighlight,\n            };\n            \n            var markedOptions = this.markedOptions = {\n                renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n                gfm         : true,\n                tables      : true,\n                breaks      : true,\n                pedantic    : false,\n                sanitize    : (settings.htmlDecode) ? false : true,  // 关闭忽略HTML标签，即开启识别HTML标签，默认为false\n                smartLists  : true,\n                smartypants : true\n            };\n            \n            marked.setOptions(markedOptions);\n                    \n            var newMarkdownDoc = editormd.$marked(cmValue, markedOptions);\n            \n            //console.info(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode);\n            \n            //console.error(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            this.markdownTextarea.text(cmValue);\n            \n            cm.save();\n            \n            if (settings.saveHTMLToTextarea) \n            {\n                this.htmlTextarea.text(newMarkdownDoc);\n            }\n            \n            if(settings.watch || (!settings.watch && state.preview))\n            {\n                previewContainer.html(newMarkdownDoc);\n\n                this.previewCodeHighlight();\n                \n                if (settings.toc) \n                {\n                    var tocContainer = (settings.tocContainer === \"\") ? previewContainer : $(settings.tocContainer);\n                    var tocMenu      = tocContainer.find(\".\" + this.classPrefix + \"toc-menu\");\n                    \n                    tocContainer.attr(\"previewContainer\", (settings.tocContainer === \"\") ? \"true\" : \"false\");\n                    \n                    if (settings.tocContainer !== \"\" && tocMenu.length > 0)\n                    {\n                        tocMenu.remove();\n                    }\n                    \n                    editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n                    if (settings.tocDropdown || tocContainer.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n                    {\n                        editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== \"\") ? settings.tocTitle : this.lang.tocTitle);\n                    }\n            \n                    if (settings.tocContainer !== \"\")\n                    {\n                        previewContainer.find(\".markdown-toc\").css(\"border\", \"none\");\n                    }\n                }\n                \n                if (settings.tex)\n                {\n                    if (!editormd.kaTeXLoaded && settings.autoLoadModules) \n                    {\n                        editormd.loadKaTeX(function() {\n                            editormd.$katex = katex;\n                            editormd.kaTeXLoaded = true;\n                            _this.katexRender();\n                        });\n                    } \n                    else \n                    {\n                        editormd.$katex = katex;\n                        this.katexRender();\n                    }\n                }                \n                \n                if (settings.flowChart || settings.sequenceDiagram)\n                {\n                    flowchartTimer = setTimeout(function(){\n                        clearTimeout(flowchartTimer);\n                        _this.flowChartAndSequenceDiagramRender();\n                        flowchartTimer = null;\n                    }, 10);\n                }\n\n                if (state.loaded) \n                {\n                    $.proxy(settings.onchange, this)();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 聚焦光标位置\n         * Focusing the cursor position\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        focus : function() {\n            this.cm.focus();\n\n            return this;\n        },\n        \n        /**\n         * 设置光标的位置\n         * Set cursor position\n         * \n         * @param   {Object}    cursor 要设置的光标位置键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setCursor : function(cursor) {\n            this.cm.setCursor(cursor);\n\n            return this;\n        },\n        \n        /**\n         * 获取当前光标的位置\n         * Get the current position of the cursor\n         * \n         * @returns {Cursor}         返回一个光标Cursor对象\n         */\n        \n        getCursor : function() {\n            return this.cm.getCursor();\n        },\n        \n        /**\n         * 设置光标选中的范围\n         * Set cursor selected ranges\n         * \n         * @param   {Object}    from   开始位置的光标键值对象，例：{line:1, ch:0}\n         * @param   {Object}    to     结束位置的光标键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setSelection : function(from, to) {\n        \n            this.cm.setSelection(from, to);\n        \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本\n         * Get the texts from cursor selected\n         * \n         * @returns {String}         返回选中文本的字符串形式\n         */\n        \n        getSelection : function() {\n            return this.cm.getSelection();\n        },\n        \n        /**\n         * 设置光标选中的文本范围\n         * Set the cursor selection ranges\n         * \n         * @param   {Array}    ranges  cursor selection ranges array\n         * @returns {Array}            return this\n         */\n        \n        setSelections : function(ranges) {\n            this.cm.setSelections(ranges);\n            \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本范围\n         * Get the cursor selection ranges\n         * \n         * @returns {Array}         return selection ranges array\n         */\n        \n        getSelections : function() {\n            return this.cm.getSelections();\n        },\n        \n        /**\n         * 替换当前光标选中的文本或在当前光标处插入新字符\n         * Replace the text at the current cursor selected or insert a new character at the current cursor position\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        replaceSelection : function(value) {\n            this.cm.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 在当前光标处插入新字符\n         * Insert a new character at the current cursor position\n         *\n         * 同replaceSelection()方法\n         * With the replaceSelection() method\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        insertValue : function(value) {\n            this.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 追加markdown\n         * append Markdown to editor\n         * \n         * @param   {String}    md     要追加的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        appendMarkdown : function(md) {\n            var settings = this.settings;\n            var cm       = this.cm;\n            \n            cm.setValue(cm.getValue() + md);\n            \n            return this;\n        },\n        \n        /**\n         * 设置和传入编辑器的markdown源文档\n         * Set Markdown source document\n         * \n         * @param   {String}    md     要传入的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setMarkdown : function(md) {\n            this.cm.setValue(md || this.settings.markdown);\n            \n            return this;\n        },\n        \n        /**\n         * 获取编辑器的markdown源文档\n         * Set Editor.md markdown/CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getMarkdown : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 获取编辑器的源文档\n         * Get CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getValue : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 设置编辑器的源文档\n         * Set CodeMirror value\n         * \n         * @param   {String}     value   set code/value/string/text\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        setValue : function(value) {\n            this.cm.setValue(value);\n            \n            return this;\n        },\n        \n        /**\n         * 清空编辑器\n         * Empty CodeMirror editor container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        clear : function() {\n            this.cm.setValue(\"\");\n            \n            return this;\n        },\n        \n        /**\n         * 获取解析后存放在Textarea的HTML源码\n         * Get parsed html code from Textarea\n         * \n         * @returns {String}               返回HTML源码\n         */\n        \n        getHTML : function() {\n            if (!this.settings.saveHTMLToTextarea)\n            {\n                alert(\"Error: settings.saveHTMLToTextarea == false\");\n\n                return false;\n            }\n            \n            return this.htmlTextarea.val();\n        },\n        \n        /**\n         * getHTML()的别名\n         * getHTML (alias)\n         * \n         * @returns {String}           Return html code 返回HTML源码\n         */\n        \n        getTextareaSavedHTML : function() {\n            return this.getHTML();\n        },\n        \n        /**\n         * 获取预览窗口的HTML源码\n         * Get html from preview container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getPreviewedHTML : function() {\n            if (!this.settings.watch)\n            {\n                alert(\"Error: settings.watch == false\");\n\n                return false;\n            }\n            \n            return this.previewContainer.html();\n        },\n        \n        /**\n         * 开启实时预览\n         * Enable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        watch : function(callback) {     \n            var settings        = this.settings;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0)\n            {\n                return this;\n            }\n            \n            this.state.watching = settings.watch = true;\n            this.preview.show();\n            \n            if (this.toolbar)\n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon        = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.watch);\n                icon.removeClass(unWatchIcon).addClass(watchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"1px solid #ddd\").width(this.editor.width() / 2); \n            \n            timer = 0;\n            \n            this.save().resize();\n            \n            if (!settings.onwatch)\n            {\n                settings.onwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 关闭实时预览\n         * Disable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        unwatch : function(callback) {\n            var settings        = this.settings;\n            this.state.watching = settings.watch = false;\n            this.preview.hide();\n            \n            if (this.toolbar) \n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon    = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.unwatch);\n                icon.removeClass(watchIcon).addClass(unWatchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"none\").width(this.editor.width());\n            \n            this.resize();\n            \n            if (!settings.onunwatch)\n            {\n                settings.onunwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onunwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 显示编辑器\n         * Show editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        show : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.show(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器\n         * Hide editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        hide : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.hide(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器部分，只预览HTML\n         * Enter preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewing : function() {\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var previewContainer = this.previewContainer;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0) {\n                return this;\n            }\n            \n            if (settings.toolbar && toolbar) {\n                toolbar.toggle();\n                toolbar.find(\".fa[name=preview]\").toggleClass(\"active\");\n            }\n            \n            codeMirror.toggle();\n            \n            var escHandle = function(event) {\n                if (event.shiftKey && event.keyCode === 27) {\n                    _this.previewed();\n                }\n            };\n\n            if (codeMirror.css(\"display\") === \"none\") // 为了兼容Zepto，而不使用codeMirror.is(\":hidden\")\n            {\n                this.state.preview = true;\n\n                if (this.state.fullscreen) {\n                    preview.css(\"background\", \"#fff\");\n                }\n                \n                editor.find(\".\" + this.classPrefix + \"preview-close-btn\").show().bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(){\n                    _this.previewed();\n                });\n            \n                if (!settings.watch)\n                {\n                    this.save();\n                } \n                else \n                {\n                    previewContainer.css(\"padding\", \"\");\n                }\n                \n                previewContainer.addClass(this.classPrefix + \"preview-active\");\n\n                preview.show().css({\n                    position  : \"\",\n                    top       : 0,\n                    width     : editor.width(),\n                    height    : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height()\n                });\n                \n                if (this.state.loaded)\n                {\n                    $.proxy(settings.onpreviewing, this)();\n                }\n\n                $(window).bind(\"keyup\", escHandle);\n            } \n            else \n            {\n                $(window).unbind(\"keyup\", escHandle);\n                this.previewed();\n            }\n        },\n        \n        /**\n         * 显示编辑器部分，退出只预览HTML\n         * Exit preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewed : function() {\n            \n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            var previewCloseBtn  = editor.find(\".\" + this.classPrefix + \"preview-close-btn\");\n\n            this.state.preview   = false;\n            \n            this.codeMirror.show();\n            \n            if (settings.toolbar) {\n                toolbar.show();\n            }\n            \n            preview[(settings.watch) ? \"show\" : \"hide\"]();\n            \n            previewCloseBtn.hide().unbind(editormd.mouseOrTouch(\"click\", \"touchend\"));\n                \n            previewContainer.removeClass(this.classPrefix + \"preview-active\");\n                \n            if (settings.watch)\n            {\n                previewContainer.css(\"padding\", \"20px\");\n            }\n            \n            preview.css({ \n                background : null,\n                position   : \"absolute\",\n                width      : editor.width() / 2,\n                height     : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height() - toolbar.height(),\n                top        : (settings.toolbar)    ? toolbar.height() : 0\n            });\n\n            if (this.state.loaded)\n            {\n                $.proxy(settings.onpreviewed, this)();\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 编辑器全屏显示\n         * Fullscreen show\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreen : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var fullscreenClass  = this.classPrefix + \"fullscreen\";\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().toggleClass(\"active\"); \n            }\n            \n            var escHandle = function(event) {\n                if (!event.shiftKey && event.keyCode === 27) \n                {\n                    if (state.fullscreen)\n                    {\n                        _this.fullscreenExit();\n                    }\n                }\n            };\n\n            if (!editor.hasClass(fullscreenClass)) \n            {\n                state.fullscreen = true;\n\n                $(\"html,body\").css(\"overflow\", \"hidden\");\n                \n                editor.css({\n                    width    : $(window).width(),\n                    height   : $(window).height()\n                }).addClass(fullscreenClass);\n\n                this.resize();\n    \n                $.proxy(settings.onfullscreen, this)();\n\n                $(window).bind(\"keyup\", escHandle);\n            }\n            else\n            {           \n                $(window).unbind(\"keyup\", escHandle); \n                this.fullscreenExit();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 编辑器退出全屏显示\n         * Exit fullscreen state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreenExit : function() {\n            \n            var editor            = this.editor;\n            var settings          = this.settings;\n            var toolbar           = this.toolbar;\n            var fullscreenClass   = this.classPrefix + \"fullscreen\";  \n            \n            this.state.fullscreen = false;\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().removeClass(\"active\"); \n            }\n\n            $(\"html,body\").css(\"overflow\", \"\");\n\n            editor.css({\n                width    : editor.data(\"oldWidth\"),\n                height   : editor.data(\"oldHeight\")\n            }).removeClass(fullscreenClass);\n\n            this.resize();\n            \n            $.proxy(settings.onfullscreenExit, this)();\n\n            return this;\n        },\n        \n        /**\n         * 加载并执行插件\n         * Load and execute the plugin\n         * \n         * @param   {String}     name    plugin name / function name\n         * @param   {String}     path    plugin load path\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        executePlugin : function(name, path) {\n            \n            var _this    = this;\n            var cm       = this.cm;\n            var settings = this.settings;\n            \n            path = settings.pluginPath + path;\n            \n            if (typeof define === \"function\") \n            {            \n                if (typeof this[name] === \"undefined\")\n                {\n                    alert(\"Error: \" + name + \" plugin is not found, you are not load this plugin.\");\n                    \n                    return this;\n                }\n                \n                this[name](cm);\n                \n                return this;\n            }\n            \n            if ($.inArray(path, editormd.loadFiles.plugin) < 0)\n            {\n                editormd.loadPlugin(path, function() {\n                    editormd.loadPlugins[name] = _this[name];\n                    _this[name](cm);\n                });\n            }\n            else\n            {\n                $.proxy(editormd.loadPlugins[name], this)(cm);\n            }\n            \n            return this;\n        },\n                \n        /**\n         * 搜索替换\n         * Search & replace\n         * \n         * @param   {String}     command    CodeMirror serach commands, \"find, fintNext, fintPrev, clearSearch, replace, replaceAll\"\n         * @returns {editormd}              return this\n         */\n        \n        search : function(command) {\n            var settings = this.settings;\n            \n            if (!settings.searchReplace)\n            {\n                alert(\"Error: settings.searchReplace == false\");\n                return this;\n            }\n            \n            if (!settings.readOnly)\n            {\n                this.cm.execCommand(command || \"find\");\n            }\n            \n            return this;\n        },\n        \n        searchReplace : function() {            \n            this.search(\"replace\");\n            \n            return this;\n        },\n        \n        searchReplaceAll : function() {          \n            this.search(\"replaceAll\");\n            \n            return this;\n        }\n    };\n    \n    editormd.fn.init.prototype = editormd.fn; \n   \n    /**\n     * 锁屏\n     * lock screen when dialog opening\n     * \n     * @returns {void}\n     */\n\n    editormd.dialogLockScreen = function() {\n        var settings = this.settings || {dialogLockScreen : true};\n        \n        if (settings.dialogLockScreen) \n        {            \n            $(\"html,body\").css(\"overflow\", \"hidden\");\n            this.resize();\n        }\n    };\n   \n    /**\n     * 显示透明背景层\n     * Display mask layer when dialog opening\n     * \n     * @param   {Object}     dialog    dialog jQuery object\n     * @returns {void}\n     */\n    \n    editormd.dialogShowMask = function(dialog) {\n        var editor   = this.editor;\n        var settings = this.settings || {dialogShowMask : true};\n        \n        dialog.css({\n            top  : ($(window).height() - dialog.height()) / 2 + \"px\",\n            left : ($(window).width()  - dialog.width())  / 2 + \"px\"\n        });\n\n        if (settings.dialogShowMask) {\n            editor.children(\".\" + this.classPrefix + \"mask\").css(\"z-index\", parseInt(dialog.css(\"z-index\")) - 1).show();\n        }\n    };\n\n    editormd.toolbarHandlers = {\n        undo : function() {\n            this.cm.undo();\n        },\n        \n        redo : function() {\n            this.cm.redo();\n        },\n        \n        bold : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"**\" + selection + \"**\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n        \n        del : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"~~\" + selection + \"~~\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        italic : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"*\" + selection + \"*\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        quote : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"> \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"> \" + selection);\n            }\n\n            //cm.replaceSelection(\"> \" + selection);\n            //cm.setCursor(cursor.line, (selection === \"\") ? cursor.ch + 2 : cursor.ch + selection.length + 2);\n        },\n        \n        ucfirst : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.firstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        ucwords : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.wordsFirstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        uppercase : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(selection.toUpperCase());\n            cm.setSelections(selections);\n        },\n        \n        lowercase : function() {\n            var cm         = this.cm;\n            var cursor     = cm.getCursor();\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n            \n            cm.replaceSelection(selection.toLowerCase());\n            cm.setSelections(selections);\n        },\n\n        h1 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"# \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"# \" + selection);\n            }\n        },\n\n        h2 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"## \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            }\n            else\n            {\n                cm.replaceSelection(\"## \" + selection);\n            }\n        },\n\n        h3 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n            else\n            {\n                cm.replaceSelection(\"### \" + selection);\n            }\n        },\n\n        h4 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"#### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 5);\n            }\n            else\n            {\n                cm.replaceSelection(\"#### \" + selection);\n            }\n        },\n\n        h5 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"##### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 6);\n            }\n            else\n            {\n                cm.replaceSelection(\"##### \" + selection);\n            }\n        },\n\n        h6 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"###### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 7);\n            }\n            else\n            {\n                cm.replaceSelection(\"###### \" + selection);\n            }\n        },\n\n        \"list-ul\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (selection === \"\") \n            {\n                cm.replaceSelection(\"- \" + selection);\n            } \n            else \n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : \"- \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        \"list-ol\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if(selection === \"\") \n            {\n                cm.replaceSelection(\"1. \" + selection);\n            }\n            else\n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : (i+1) + \". \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        hr : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(((cursor.ch !== 0) ? \"\\n\\n\" : \"\\n\") + \"------------\\n\\n\");\n        },\n\n        tex : function() {\n            if (!this.settings.tex)\n            {\n                alert(\"settings.tex === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"$$\" + selection + \"$$\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        link : function() {\n            this.executePlugin(\"linkDialog\", \"link-dialog/link-dialog\");\n        },\n\n        \"reference-link\" : function() {\n            this.executePlugin(\"referenceLinkDialog\", \"reference-link-dialog/reference-link-dialog\");\n        },\n\n        pagebreak : function() {\n            if (!this.settings.pageBreak)\n            {\n                alert(\"settings.pageBreak === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"\\r\\n[========]\\r\\n\");\n        },\n\n        image : function() {\n            this.executePlugin(\"imageDialog\", \"image-dialog/image-dialog\");\n        },\n        \n        code : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"`\" + selection + \"`\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        \"code-block\" : function() {\n            this.executePlugin(\"codeBlockDialog\", \"code-block-dialog/code-block-dialog\");            \n        },\n\n        \"preformatted-text\" : function() {\n            this.executePlugin(\"preformattedTextDialog\", \"preformatted-text-dialog/preformatted-text-dialog\");\n        },\n        \n        table : function() {\n            this.executePlugin(\"tableDialog\", \"table-dialog/table-dialog\");         \n        },\n        \n        datetime : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n            var date      = new Date();\n            var langName  = this.settings.lang.name;\n            var datefmt   = editormd.dateFormat() + \" \" + editormd.dateFormat((langName === \"zh-cn\" || langName === \"zh-tw\") ? \"cn-week-day\" : \"week-day\");\n\n            cm.replaceSelection(datefmt);\n        },\n        \n        emoji : function() {\n            this.executePlugin(\"emojiDialog\", \"emoji-dialog/emoji-dialog\");\n        },\n                \n        \"html-entities\" : function() {\n            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\");\n        },\n                \n        \"goto-line\" : function() {\n            this.executePlugin(\"gotoLineDialog\", \"goto-line-dialog/goto-line-dialog\");\n        },\n\n        watch : function() {    \n            this[this.settings.watch ? \"unwatch\" : \"watch\"]();\n        },\n\n        preview : function() {\n            this.previewing();\n        },\n\n        fullscreen : function() {\n            this.fullscreen();\n        },\n\n        clear : function() {\n            this.clear();\n        },\n        \n        search : function() {\n            this.search();\n        },\n\n        help : function() {\n            this.executePlugin(\"helpDialog\", \"help-dialog/help-dialog\");\n        },\n\n        info : function() {\n            this.showInfoDialog();\n        }\n    };\n    \n    editormd.keyMaps = {\n        \"Ctrl-1\"       : \"h1\",\n        \"Ctrl-2\"       : \"h2\",\n        \"Ctrl-3\"       : \"h3\",\n        \"Ctrl-4\"       : \"h4\",\n        \"Ctrl-5\"       : \"h5\",\n        \"Ctrl-6\"       : \"h6\",\n        \"Ctrl-B\"       : \"bold\",  // if this is string ==  editormd.toolbarHandlers.xxxx\n        \"Ctrl-D\"       : \"datetime\",\n        \n        \"Ctrl-E\"       : function() { // emoji\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.emoji)\n            {\n                alert(\"Error: settings.emoji == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\":\" + selection + \":\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-Alt-G\"   : \"goto-line\",\n        \"Ctrl-H\"       : \"hr\",\n        \"Ctrl-I\"       : \"italic\",\n        \"Ctrl-K\"       : \"code\",\n        \n        \"Ctrl-L\"        : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"[\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-U\"         : \"list-ul\",\n        \n        \"Shift-Ctrl-A\"   : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.atLink)\n            {\n                alert(\"Error: settings.atLink == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\"@\" + selection);\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \n        \"Shift-Ctrl-C\"     : \"code\",\n        \"Shift-Ctrl-Q\"     : \"quote\",\n        \"Shift-Ctrl-S\"     : \"del\",\n        \"Shift-Ctrl-K\"     : \"tex\",  // KaTeX\n        \n        \"Shift-Alt-C\"      : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            cm.replaceSelection([\"```\", selection, \"```\"].join(\"\\n\"));\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            } \n        },\n        \n        \"Shift-Ctrl-Alt-C\" : \"code-block\",\n        \"Shift-Ctrl-H\"     : \"html-entities\",\n        \"Shift-Alt-H\"      : \"help\",\n        \"Shift-Ctrl-E\"     : \"emoji\",\n        \"Shift-Ctrl-U\"     : \"uppercase\",\n        \"Shift-Alt-U\"      : \"ucwords\",\n        \"Shift-Ctrl-Alt-U\" : \"ucfirst\",\n        \"Shift-Alt-L\"      : \"lowercase\",\n        \n        \"Shift-Ctrl-I\"     : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"![\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n        },\n        \n        \"Shift-Ctrl-Alt-I\" : \"image\",\n        \"Shift-Ctrl-L\"     : \"link\",\n        \"Shift-Ctrl-O\"     : \"list-ol\",\n        \"Shift-Ctrl-P\"     : \"preformatted-text\",\n        \"Shift-Ctrl-T\"     : \"table\",\n        \"Shift-Alt-P\"      : \"pagebreak\",\n        \"F9\"               : \"watch\",\n        \"F10\"              : \"preview\",\n        \"F11\"              : \"fullscreen\",\n    };\n    \n    /**\n     * 清除字符串两边的空格\n     * Clear the space of strings both sides.\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   trimed string    \n     */\n    \n    var trim = function(str) {\n        return (!String.prototype.trim) ? str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\") : str.trim();\n    };\n    \n    editormd.trim = trim;\n    \n    /**\n     * 所有单词首字母大写\n     * Words first to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var ucwords = function (str) {\n        return str.toLowerCase().replace(/\\b(\\w)|\\s(\\w)/g, function($1) {  \n            return $1.toUpperCase();\n        });\n    };\n    \n    editormd.ucwords = editormd.wordsFirstUpperCase = ucwords;\n    \n    /**\n     * 字符串首字母大写\n     * Only string first char to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var firstUpperCase = function(str) {        \n        return str.toLowerCase().replace(/\\b(\\w)/, function($1){\n            return $1.toUpperCase();\n        });\n    };\n    \n    var ucfirst = firstUpperCase;\n    \n    editormd.firstUpperCase = editormd.ucfirst = firstUpperCase;\n    \n    editormd.urls = {\n        atLinkBase : \"https://github.com/\"\n    };\n    \n    editormd.regexs = {\n        atLink        : /@(\\w+)/g,\n        email         : /(\\w+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emailLink     : /(mailto:)?([\\w\\.\\_]+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emoji         : /:([\\w\\+-]+):/g,\n        emojiDatetime : /(\\d{2}:\\d{2}:\\d{2})/g,\n        twemoji       : /:(tw-([\\w]+)-?(\\w+)?):/g,\n        fontAwesome   : /:(fa-([\\w]+)(-(\\w+)){0,}):/g,\n        editormdLogo  : /:(editormd-logo-?(\\w+)?):/g,\n        pageBreak     : /^\\[[=]{8,}\\]$/\n    };\n\n    // Emoji graphics files url path\n    editormd.emoji     = {\n        path  : \"https://www.webpagefx.com/tools/emoji-cheat-sheet/graphics/emojis/\",\n        ext   : \".png\"\n    };\n\n    // Twitter Emoji (Twemoji)  graphics files url path    \n    editormd.twemoji = {\n        path : \"http://twemoji.maxcdn.com/36x36/\",\n        ext  : \".png\"\n    };\n\n    /**\n     * 自定义marked的解析器\n     * Custom Marked renderer rules\n     * \n     * @param   {Array}    markdownToC     传入用于接收TOC的数组\n     * @returns {Renderer} markedRenderer  返回marked的Renderer自定义对象\n     */\n\n    editormd.markedRenderer = function(markdownToC, options) {\n        var defaults = {\n            toc                  : true,           // Table of contents\n            tocm                 : false,\n            tocStartLevel        : 1,              // Said from H1 to create ToC  \n            pageBreak            : true,\n            atLink               : true,           // for @link\n            emailLink            : true,           // for mail address auto link\n            taskList             : false,          // Enable Github Flavored Markdown task lists\n            emoji                : false,          // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis.\n            tex                  : false,          // TeX(LaTeX), based on KaTeX\n            flowChart            : false,          // flowChart.js only support IE9+\n            sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        };\n        \n        var settings        = $.extend(defaults, options || {});    \n        var marked          = editormd.$marked;\n        var markedRenderer  = new marked.Renderer();\n        markdownToC         = markdownToC || [];        \n            \n        var regexs          = editormd.regexs;\n        var atLinkReg       = regexs.atLink;\n        var emojiReg        = regexs.emoji;\n        var emailReg        = regexs.email;\n        var emailLinkReg    = regexs.emailLink;\n        var twemojiReg      = regexs.twemoji;\n        var faIconReg       = regexs.fontAwesome;\n        var editormdLogoReg = regexs.editormdLogo;\n        var pageBreakReg    = regexs.pageBreak;\n\n        markedRenderer.emoji = function(text) {\n            \n            text = text.replace(editormd.regexs.emojiDatetime, function($1) {           \n                return $1.replace(/:/g, \"&#58;\");\n            });\n            \n            var matchs = text.match(emojiReg);\n\n            if (!matchs || !settings.emoji) {\n                return text;\n            }\n\n            for (var i = 0, len = matchs.length; i < len; i++)\n            {            \n                if (matchs[i] === \":+1:\") {\n                    matchs[i] = \":\\\\+1:\";\n                }\n\n                text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                    var faMatchs = $1.match(faIconReg);\n                    var name     = $1.replace(/:/g, \"\");\n\n                    if (faMatchs)\n                    {                        \n                        for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++)\n                        {\n                            var faName = faMatchs[fa].replace(/:/g, \"\");\n                            \n                            return \"<i class=\\\"fa \" + faName + \" fa-emoji\\\" title=\\\"\" + faName.replace(\"fa-\", \"\") + \"\\\"></i>\";\n                        }\n                    }\n                    else\n                    {\n                        var emdlogoMathcs = $1.match(editormdLogoReg);\n                        var twemojiMatchs = $1.match(twemojiReg);\n\n                        if (emdlogoMathcs)                                        \n                        {                            \n                            for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++)\n                            {\n                                var logoName = emdlogoMathcs[x].replace(/:/g, \"\");\n                                return \"<i class=\\\"\" + logoName + \"\\\" title=\\\"Editor.md logo (\" + logoName + \")\\\"></i>\";\n                            }\n                        }\n                        else if (twemojiMatchs) \n                        {\n                            for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++)\n                            {\n                                var twe = twemojiMatchs[t].replace(/:/g, \"\").replace(\"tw-\", \"\");\n                                return \"<img src=\\\"\" + editormd.twemoji.path + twe + editormd.twemoji.ext + \"\\\" title=\\\"twemoji-\" + twe + \"\\\" alt=\\\"twemoji-\" + twe + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                            }\n                        }\n                        else\n                        {\n                            var src = (name === \"+1\") ? \"plus1\" : name;\n                            src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                            src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n\n                            return \"<img src=\\\"\" + editormd.emoji.path + src + editormd.emoji.ext + \"\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + name + \"&#58;\\\" alt=\\\"&#58;\" + name + \"&#58;\\\" />\";\n                        }\n                    }\n                });\n            }\n\n            return text;\n        };\n\n        markedRenderer.atLink = function(text) {\n\n            if (atLinkReg.test(text))\n            { \n                if (settings.atLink) \n                {\n                    text = text.replace(emailReg, function($1, $2, $3, $4) {\n                        return $1.replace(/@/g, \"_#_&#64;_#_\");\n                    });\n\n                    text = text.replace(atLinkReg, function($1, $2) {\n                        return \"<a href=\\\"\" + editormd.urls.atLinkBase + \"\" + $2 + \"\\\" title=\\\"&#64;\" + $2 + \"\\\" class=\\\"at-link\\\">\" + $1 + \"</a>\";\n                    }).replace(/_#_&#64;_#_/g, \"@\");\n                }\n                \n                if (settings.emailLink)\n                {\n                    text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) {\n                        return (!$2 && $.inArray($5, \"jpg|jpeg|png|gif|webp|ico|icon|pdf\".split(\"|\")) < 0) ? \"<a href=\\\"mailto:\" + $1 + \"\\\">\"+$1+\"</a>\" : $1;\n                    });\n                }\n\n                return text;\n            }\n\n            return text;\n        };\n                \n        markedRenderer.link = function (href, title, text) {\n\n            if (this.options.sanitize) {\n                try {\n                    var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase();\n                } catch(e) {\n                    return \"\";\n                }\n\n                if (prot.indexOf(\"javascript:\") === 0) {\n                    return \"\";\n                }\n            }\n\n            var out = \"<a href=\\\"\" + href + \"\\\"\";\n            \n            if (atLinkReg.test(title) || atLinkReg.test(text))\n            {\n                if (title)\n                {\n                    out += \" title=\\\"\" + title.replace(/@/g, \"&#64;\");\n                }\n                \n                return out + \"\\\">\" + text.replace(/@/g, \"&#64;\") + \"</a>\";\n            }\n\n            if (title) {\n                out += \" title=\\\"\" + title + \"\\\"\";\n            }\n\n            out += \">\" + text + \"</a>\";\n\n            return out;\n        };\n        \n        markedRenderer.heading = function(text, level, raw) {\n                    \n            var linkText       = text;\n            var hasLinkReg     = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n            var getLinkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n\n            if (hasLinkReg.test(text)) \n            {\n                var tempText = [];\n                text         = text.split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n\n                for (var i = 0, len = text.length; i < len; i++)\n                {\n                    tempText.push(text[i].replace(/\\s*href\\=\\\"(.*)\\\"\\s*/g, \"\"));\n                }\n\n                text = tempText.join(\" \");\n            }\n            \n            text = trim(text);\n            \n            var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n            var toc = {\n                text  : text,\n                level : level,\n                slug  : escapedText\n            };\n            \n            var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n            var id        = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n            markdownToC.push(toc);\n            \n            var headingHTML = \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n            \n            headingHTML    += \"<a name=\\\"\" + text + \"\\\" class=\\\"reference-link\\\"></a>\";\n            headingHTML    += \"<span class=\\\"header-link octicon octicon-link\\\"></span>\";\n            headingHTML    += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text));\n            headingHTML    += \"</h\" + level + \">\";\n\n            return headingHTML;\n        };\n        \n        markedRenderer.pageBreak = function(text) {\n            if (pageBreakReg.test(text) && settings.pageBreak)\n            {\n                text = \"<hr style=\\\"page-break-after:always;\\\" class=\\\"page-break editormd-page-break\\\" />\";\n            }\n            \n            return text;\n        };\n\n        markedRenderer.paragraph = function(text) {\n            var isTeXInline     = /\\$\\$(.*)\\$\\$/g.test(text);\n            var isTeXLine       = /^\\$\\$(.*)\\$\\$$/.test(text);\n            var isTeXAddClass   = (isTeXLine)     ? \" class=\\\"\" + editormd.classNames.tex + \"\\\"\" : \"\";\n            var isToC           = (settings.tocm) ? /^(\\[TOC\\]|\\[TOCM\\])$/.test(text) : /^\\[TOC\\]$/.test(text);\n            var isToCMenu       = /^\\[TOCM\\]$/.test(text);\n            \n            if (!isTeXLine && isTeXInline) \n            {\n                text = text.replace(/(\\$\\$([^\\$]*)\\$\\$)+/g, function($1, $2) {\n                    return \"<span class=\\\"\" + editormd.classNames.tex + \"\\\">\" + $2.replace(/\\$/g, \"\") + \"</span>\";\n                });\n            } \n            else \n            {\n                text = (isTeXLine) ? text.replace(/\\$/g, \"\") : text;\n            }\n            \n            var tocHTML = \"<div class=\\\"markdown-toc editormd-markdown-toc\\\">\" + text + \"</div>\";\n            \n            return (isToC) ? ( (isToCMenu) ? \"<div class=\\\"editormd-toc-menu\\\">\" + tocHTML + \"</div><br/>\" : tocHTML )\n                           : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : \"<p\" + isTeXAddClass + \">\" + this.atLink(this.emoji(text)) + \"</p>\\n\" );\n        };\n\n        markedRenderer.code = function (code, lang, escaped) { \n\n            if (lang === \"seq\" || lang === \"sequence\")\n            {\n                return \"<div class=\\\"sequence-diagram\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"flow\")\n            {\n                return \"<div class=\\\"flowchart\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"math\" || lang === \"latex\" || lang === \"katex\")\n            {\n                return \"<p class=\\\"\" + editormd.classNames.tex + \"\\\">\" + code + \"</p>\";\n            } \n            else \n            {\n\n                return marked.Renderer.prototype.code.apply(this, arguments);\n            }\n        };\n\n        markedRenderer.tablecell = function(content, flags) {\n            var type = (flags.header) ? \"th\" : \"td\";\n            var tag  = (flags.align)  ? \"<\" + type +\" style=\\\"text-align:\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n            \n            return tag + this.atLink(this.emoji(content)) + \"</\" + type + \">\\n\";\n        };\n\n        markedRenderer.listitem = function(text) {\n            if (settings.taskList && /^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n            {\n                text = text.replace(/^\\s*\\[\\s\\]\\s*/, \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" /> \")\n                           .replace(/^\\s*\\[x\\]\\s*/,  \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" checked disabled /> \");\n\n                return \"<li style=\\\"list-style: none;\\\">\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n            else \n            {\n                return \"<li>\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n        };\n        \n        return markedRenderer;\n    };\n    \n    /**\n     *\n     * 生成TOC(Table of Contents)\n     * Creating ToC (Table of Contents)\n     * \n     * @param   {Array}    toc             从marked获取的TOC数组列表\n     * @param   {Element}  container       插入TOC的容器元素\n     * @param   {Integer}  startLevel      Hx 起始层级\n     * @returns {Object}   tocContainer    返回ToC列表容器层的jQuery对象元素\n     */\n    \n    editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) {\n        \n        var html        = \"\";    \n        var lastLevel   = 0;\n        var classPrefix = this.classPrefix;\n        \n        startLevel      = startLevel  || 1;\n        \n        for (var i = 0, len = toc.length; i < len; i++) \n        {\n            var text  = toc[i].text;\n            var level = toc[i].level;\n            \n            if (level < startLevel) {\n                continue;\n            }\n            \n            if (level > lastLevel) \n            {\n                html += \"\";\n            }\n            else if (level < lastLevel) \n            {\n                html += (new Array(lastLevel - level + 2)).join(\"</ul></li>\");\n            } \n            else \n            {\n                html += \"</ul></li>\";\n            }\n\n            html += \"<li><a class=\\\"toc-level-\" + level + \"\\\" href=\\\"#\" + text + \"\\\" level=\\\"\" + level + \"\\\">\" + text + \"</a><ul>\";\n            lastLevel = level;\n        }\n        \n        var tocContainer = container.find(\".markdown-toc\");\n        \n        if ((tocContainer.length < 1 && container.attr(\"previewContainer\") === \"false\"))\n        {\n            var tocHTML = \"<div class=\\\"markdown-toc \" + classPrefix + \"markdown-toc\\\"></div>\";\n            \n            tocHTML = (tocDropdown) ? \"<div class=\\\"\" + classPrefix + \"toc-menu\\\">\" + tocHTML + \"</div>\" : tocHTML;\n            \n            container.html(tocHTML);\n            \n            tocContainer = container.find(\".markdown-toc\");\n        }\n        \n        if (tocDropdown)\n        {\n            tocContainer.wrap(\"<div class=\\\"\" + classPrefix + \"toc-menu\\\"></div><br/>\");\n        }\n        \n        tocContainer.html(\"<ul class=\\\"markdown-toc-list\\\"></ul>\").children(\".markdown-toc-list\").html(html.replace(/\\r?\\n?\\<ul\\>\\<\\/ul\\>/g, \"\"));\n        \n        return tocContainer;\n    };\n    \n    /**\n     *\n     * 生成TOC下拉菜单\n     * Creating ToC dropdown menu\n     * \n     * @param   {Object}   container       插入TOC的容器jQuery对象元素\n     * @param   {String}   tocTitle        ToC title\n     * @returns {Object}                   return toc-menu object\n     */\n    \n    editormd.tocDropdownMenu = function(container, tocTitle) {\n        \n        tocTitle      = tocTitle || \"Table of Contents\";\n        \n        var zindex    = 400;\n        var tocMenus  = container.find(\".\" + this.classPrefix + \"toc-menu\");\n\n        tocMenus.each(function() {\n            var $this  = $(this);\n            var toc    = $this.children(\".markdown-toc\");\n            var icon   = \"<i class=\\\"fa fa-angle-down\\\"></i>\";\n            var btn    = \"<a href=\\\"javascript:;\\\" class=\\\"toc-menu-btn\\\">\" + icon + tocTitle + \"</a>\";\n            var menu   = toc.children(\"ul\");            \n            var list   = menu.find(\"li\");\n            \n            toc.append(btn);\n            \n            list.first().before(\"<li><h1>\" + tocTitle + \" \" + icon + \"</h1></li>\");\n            \n            $this.mouseover(function(){\n                menu.show();\n\n                list.each(function(){\n                    var li = $(this);\n                    var ul = li.children(\"ul\");\n\n                    if (ul.html() === \"\")\n                    {\n                        ul.remove();\n                    }\n\n                    if (ul.length > 0 && ul.html() !== \"\")\n                    {\n                        var firstA = li.children(\"a\").first();\n\n                        if (firstA.children(\".fa\").length < 1)\n                        {\n                            firstA.append( $(icon).css({ float:\"right\", paddingTop:\"4px\" }) );\n                        }\n                    }\n\n                    li.mouseover(function(){\n                        ul.css(\"z-index\", zindex).show();\n                        zindex += 1;\n                    }).mouseleave(function(){\n                        ul.hide();\n                    });\n                });\n            }).mouseleave(function(){\n                menu.hide();\n            }); \n        });       \n        \n        return tocMenus;\n    };\n    \n    /**\n     * 简单地过滤指定的HTML标签\n     * Filter custom html tags\n     * \n     * @param   {String}   html          要过滤HTML\n     * @param   {String}   filters       要过滤的标签\n     * @returns {String}   html          返回过滤的HTML\n     */\n    \n    editormd.filterHTMLTags = function(html, filters) {\n        \n        if (typeof html !== \"string\") {\n            html = new String(html);\n        }\n            \n        if (typeof filters !== \"string\") {\n            return html;\n        }\n\n        var expression = filters.split(\"|\");\n        var filterTags = expression[0].split(\",\");\n        var attrs      = expression[1];\n\n        for (var i = 0, len = filterTags.length; i < len; i++)\n        {\n            var tag = filterTags[i];\n\n            html = html.replace(new RegExp(\"\\<\\s*\" + tag + \"\\s*([^\\>]*)\\>([^\\>]*)\\<\\s*\\/\" + tag + \"\\s*\\>\", \"igm\"), \"\");\n        }\n        \n        //return html;\n\n        if (typeof attrs !== \"undefined\")\n        {\n            var htmlTagRegex = /\\<(\\w+)\\s*([^\\>]*)\\>([^\\>]*)\\<\\/(\\w+)\\>/ig;\n\n            if (attrs === \"*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    return \"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\";\n                });         \n            }\n            else if (attrs === \"on*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    var el = $(\"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\");\n                    var _attrs = $($1)[0].attributes;\n                    var $attrs = {};\n                    \n                    $.each(_attrs, function(i, e) {\n                        if (e.nodeName !== '\"') $attrs[e.nodeName] = e.nodeValue;\n                    });\n                    \n                    $.each($attrs, function(i) {                        \n                        if (i.indexOf(\"on\") === 0) {\n                            delete $attrs[i];\n                        }\n                    });\n                    \n                    el.attr($attrs);\n                    \n                    var text = (typeof el[1] !== \"undefined\") ? $(el[1]).text() : \"\";\n\n                    return el[0].outerHTML + text;\n                });\n            }\n            else\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4) {\n                    var filterAttrs = attrs.split(\",\");\n                    var el = $($1);\n                    el.html($4);\n\n                    $.each(filterAttrs, function(i) {\n                        el.attr(filterAttrs[i], null);\n                    });\n\n                    return el[0].outerHTML;\n                });\n            }\n        }\n        \n        return html;\n    };\n    \n    /**\n     * 将Markdown文档解析为HTML用于前台显示\n     * Parse Markdown to HTML for Font-end preview.\n     * \n     * @param   {String}   id            用于显示HTML的对象ID\n     * @param   {Object}   [options={}]  配置选项，可选\n     * @returns {Object}   div           返回jQuery对象元素\n     */\n    \n    editormd.markdownToHTML = function(id, options) {\n        var defaults = {\n            gfm                  : true,\n            toc                  : true,\n            tocm                 : false,\n            tocStartLevel        : 1,\n            tocTitle             : \"目录\",\n            tocDropdown          : false,\n            tocContainer         : \"\",\n            markdown             : \"\",\n            markdownSourceCode   : false,\n            htmlDecode           : false,\n            autoLoadKaTeX        : true,\n            pageBreak            : true,\n            atLink               : true,    // for @link\n            emailLink            : true,    // for mail address auto link\n            tex                  : false,\n            taskList             : false,   // Github Flavored Markdown task lists\n            emoji                : false,\n            flowChart            : false,\n            sequenceDiagram      : false,\n            previewCodeHighlight : true\n        };\n        \n        editormd.$marked  = marked;\n\n        var div           = $(\"#\" + id);\n        var settings      = div.settings = $.extend(true, defaults, options || {});\n        var saveTo        = div.find(\"textarea\");\n        \n        if (saveTo.length < 1)\n        {\n            div.append(\"<textarea></textarea>\");\n            saveTo        = div.find(\"textarea\");\n        }        \n        \n        var markdownDoc   = (settings.markdown === \"\") ? saveTo.val() : settings.markdown; \n        var markdownToC   = [];\n\n        var rendererOptions = {  \n            toc                  : settings.toc,\n            tocm                 : settings.tocm,\n            tocStartLevel        : settings.tocStartLevel,\n            taskList             : settings.taskList,\n            emoji                : settings.emoji,\n            tex                  : settings.tex,\n            pageBreak            : settings.pageBreak,\n            atLink               : settings.atLink,           // for @link\n            emailLink            : settings.emailLink,        // for mail address auto link\n            flowChart            : settings.flowChart,\n            sequenceDiagram      : settings.sequenceDiagram,\n            previewCodeHighlight : settings.previewCodeHighlight,\n        };\n\n        var markedOptions = {\n            renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n            gfm         : settings.gfm,\n            tables      : true,\n            breaks      : true,\n            pedantic    : false,\n            sanitize    : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签，即是否开启HTML标签解析，为了安全性，默认不开启\n            smartLists  : true,\n            smartypants : true\n        };\n        \n\t\tmarkdownDoc = new String(markdownDoc);\n        \n        var markdownParsed = marked(markdownDoc, markedOptions);\n        \n        markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode);\n        \n        if (settings.markdownSourceCode) {\n            saveTo.text(markdownDoc);\n        } else {\n            saveTo.remove();\n        }\n        \n        div.addClass(\"markdown-body \" + this.classPrefix + \"html-preview\").append(markdownParsed);\n        \n        var tocContainer = (settings.tocContainer !== \"\") ? $(settings.tocContainer) : div;\n        \n        if (settings.tocContainer !== \"\")\n        {\n            tocContainer.attr(\"previewContainer\", false);\n        }\n         \n        if (settings.toc) \n        {\n            div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n            if (settings.tocDropdown || div.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n            {\n                this.tocDropdownMenu(div, settings.tocTitle);\n            }\n            \n            if (settings.tocContainer !== \"\")\n            {\n                div.find(\".editormd-toc-menu, .editormd-markdown-toc\").remove();\n            }\n        }\n            \n        if (settings.previewCodeHighlight) \n        {\n            div.find(\"pre\").addClass(\"prettyprint linenums\");\n            prettyPrint();\n        }\n        \n        if (!editormd.isIE8) \n        {\n            if (settings.flowChart) {\n                div.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                div.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n        }\n\n        if (settings.tex)\n        {\n            var katexHandle = function() {\n                div.find(\".\" + editormd.classNames.tex).each(function(){\n                    var tex  = $(this);                    \n                    katex.render(tex.html().replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\"), tex[0]);                    \n                    tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n                });\n            };\n            \n            if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded)\n            {\n                this.loadKaTeX(function() {\n                    editormd.$katex      = katex;\n                    editormd.kaTeXLoaded = true;\n                    katexHandle();\n                });\n            }\n            else\n            {\n                katexHandle();\n            }\n        }\n        \n        div.getMarkdown = function() {            \n            return saveTo.val();\n        };\n        \n        return div;\n    };\n    \n    // Editor.md themes, change toolbar themes etc.\n    // added @1.5.0\n    editormd.themes        = [\"default\", \"dark\"];\n    \n    // Preview area themes\n    // added @1.5.0\n    editormd.previewThemes = [\"default\", \"dark\"];\n    \n    // CodeMirror / editor area themes\n    // @1.5.0 rename -> editorThemes, old version -> themes\n    editormd.editorThemes = [\n        \"default\", \"3024-day\", \"3024-night\",\n        \"ambiance\", \"ambiance-mobile\",\n        \"base16-dark\", \"base16-light\", \"blackboard\",\n        \"cobalt\",\n        \"eclipse\", \"elegant\", \"erlang-dark\",\n        \"lesser-dark\",\n        \"mbo\", \"mdn-like\", \"midnight\", \"monokai\",\n        \"neat\", \"neo\", \"night\",\n        \"paraiso-dark\", \"paraiso-light\", \"pastel-on-dark\",\n        \"rubyblue\",\n        \"solarized\",\n        \"the-matrix\", \"tomorrow-night-eighties\", \"twilight\",\n        \"vibrant-ink\",\n        \"xq-dark\", \"xq-light\"\n    ];\n\n    editormd.loadPlugins = {};\n    \n    editormd.loadFiles = {\n        js     : [],\n        css    : [],\n        plugin : []\n    };\n    \n    /**\n     * 动态加载Editor.md插件，但不立即执行\n     * Load editor.md plugins\n     * \n     * @param {String}   fileName              插件文件路径\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadPlugin = function(fileName, callback, into) {\n        callback   = callback || function() {};\n        \n        this.loadScript(fileName, function() {\n            editormd.loadFiles.plugin.push(fileName);\n            callback();\n        }, into);\n    };\n    \n    /**\n     * 动态加载CSS文件的方法\n     * Load css file method\n     * \n     * @param {String}   fileName              CSS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadCSS   = function(fileName, callback, into) {\n        into       = into     || \"head\";        \n        callback   = callback || function() {};\n        \n        var css    = document.createElement(\"link\");\n        css.type   = \"text/css\";\n        css.rel    = \"stylesheet\";\n        css.onload = css.onreadystatechange = function() {\n            editormd.loadFiles.css.push(fileName);\n            callback();\n        };\n\n        css.href   = fileName + \".css\";\n\n        if(into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(css);\n        } else {\n            document.body.appendChild(css);\n        }\n    };\n    \n    editormd.isIE    = (navigator.appName == \"Microsoft Internet Explorer\");\n    editormd.isIE8   = (editormd.isIE && navigator.appVersion.match(/8./i) == \"8.\");\n\n    /**\n     * 动态加载JS文件的方法\n     * Load javascript file method\n     * \n     * @param {String}   fileName              JS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n\n    editormd.loadScript = function(fileName, callback, into) {\n        \n        into          = into     || \"head\";\n        callback      = callback || function() {};\n        \n        var script    = null; \n        script        = document.createElement(\"script\");\n        script.id     = fileName.replace(/[\\./]+/g, \"-\");\n        script.type   = \"text/javascript\";        \n        script.src    = fileName + \".js\";\n        \n        if (editormd.isIE8) \n        {            \n            script.onreadystatechange = function() {\n                if(script.readyState) \n                {\n                    if (script.readyState === \"loaded\" || script.readyState === \"complete\") \n                    {\n                        script.onreadystatechange = null; \n                        editormd.loadFiles.js.push(fileName);\n                        callback();\n                    }\n                } \n            };\n        }\n        else\n        {\n            script.onload = function() {\n                editormd.loadFiles.js.push(fileName);\n                callback();\n            };\n        }\n\n        if (into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(script);\n        } else {\n            document.body.appendChild(script);\n        }\n    };\n    \n    // 使用国外的CDN，加载速度有时会很慢，或者自定义URL\n    // You can custom KaTeX load url.\n    editormd.katexURL  = {\n        css : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\",\n        js  : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\"\n    };\n    \n    editormd.kaTeXLoaded = false;\n    \n    /**\n     * 加载KaTeX文件\n     * load KaTeX files\n     * \n     * @param {Function} [callback=function()]  加载成功后执行的回调函数\n     */\n    \n    editormd.loadKaTeX = function (callback) {\n        editormd.loadCSS(editormd.katexURL.css, function(){\n            editormd.loadScript(editormd.katexURL.js, callback || function(){});\n        });\n    };\n        \n    /**\n     * 锁屏\n     * lock screen\n     * \n     * @param   {Boolean}   lock   Boolean 布尔值，是否锁屏\n     * @returns {void}\n     */\n    \n    editormd.lockScreen = function(lock) {\n        $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n    };\n        \n    /**\n     * 动态创建对话框\n     * Creating custom dialogs\n     * \n     * @param   {Object} options 配置项键值对 Key/Value\n     * @returns {dialog} 返回创建的dialog的jQuery实例对象\n     */\n\n    editormd.createDialog = function(options) {\n        var defaults = {\n            name : \"\",\n            width : 420,\n            height: 240,\n            title : \"\",\n            drag  : true,\n            closed : true,\n            content : \"\",\n            mask : true,\n            maskStyle : {\n                backgroundColor : \"#fff\",\n                opacity : 0.1\n            },\n            lockScreen : true,\n            footer : true,\n            buttons : false\n        };\n\n        options          = $.extend(true, defaults, options);\n        \n        var $this        = this;\n        var editor       = this.editor;\n        var classPrefix  = editormd.classPrefix;\n        var guid         = (new Date()).getTime();\n        var dialogName   = ( (options.name === \"\") ? classPrefix + \"dialog-\" + guid : options.name);\n        var mouseOrTouch = editormd.mouseOrTouch;\n\n        var html         = \"<div class=\\\"\" + classPrefix + \"dialog \" + dialogName + \"\\\">\";\n\n        if (options.title !== \"\")\n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-header\\\"\" + ( (options.drag) ? \" style=\\\"cursor: move;\\\"\" : \"\" ) + \">\";\n            html += \"<strong class=\\\"\" + classPrefix + \"dialog-title\\\">\" + options.title + \"</strong>\";\n            html += \"</div>\";\n        }\n\n        if (options.closed)\n        {\n            html += \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\";\n        }\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\" + options.content;                    \n\n        if (options.footer || typeof options.footer === \"string\") \n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-footer\\\">\" + ( (typeof options.footer === \"boolean\") ? \"\" : options.footer) + \"</div>\";\n        }\n\n        html += \"</div>\";\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-bg\\\"></div>\";\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-con\\\"></div>\";\n        html += \"</div>\";\n\n        editor.append(html);\n\n        var dialog = editor.find(\".\" + dialogName);\n\n        dialog.lockScreen = function(lock) {\n            if (options.lockScreen)\n            {                \n                $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n                $this.resize();\n            }\n\n            return dialog;\n        };\n\n        dialog.showMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").css(options.maskStyle).css(\"z-index\", editormd.dialogZindex - 1).show();\n            }\n            return dialog;\n        };\n\n        dialog.hideMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").hide();\n            }\n\n            return dialog;\n        };\n\n        dialog.loading = function(show) {                        \n            var loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n            loading[(show) ? \"show\" : \"hide\"]();\n\n            return dialog;\n        };\n\n        dialog.lockScreen(true).showMask();\n\n        dialog.show().css({\n            zIndex : editormd.dialogZindex,\n            border : (editormd.isIE8) ? \"1px solid #ddd\" : \"\",\n            width  : (typeof options.width  === \"number\") ? options.width + \"px\"  : options.width,\n            height : (typeof options.height === \"number\") ? options.height + \"px\" : options.height\n        });\n\n        var dialogPosition = function(){\n            dialog.css({\n                top    : ($(window).height() - dialog.height()) / 2 + \"px\",\n                left   : ($(window).width() - dialog.width()) / 2 + \"px\"\n            });\n        };\n\n        dialogPosition();\n\n        $(window).resize(dialogPosition);\n\n        dialog.children(\".\" + classPrefix + \"dialog-close\").bind(mouseOrTouch(\"click\", \"touchend\"), function() {\n            dialog.hide().lockScreen(false).hideMask();\n        });\n\n        if (typeof options.buttons === \"object\")\n        {\n            var footer = dialog.footer = dialog.find(\".\" + classPrefix + \"dialog-footer\");\n\n            for (var key in options.buttons)\n            {\n                var btn = options.buttons[key];\n                var btnClassName = classPrefix + key + \"-btn\";\n\n                footer.append(\"<button class=\\\"\" + classPrefix + \"btn \" + btnClassName + \"\\\">\" + btn[0] + \"</button>\");\n                btn[1] = $.proxy(btn[1], dialog);\n                footer.children(\".\" + btnClassName).bind(mouseOrTouch(\"click\", \"touchend\"), btn[1]);\n            }\n        }\n\n        if (options.title !== \"\" && options.drag)\n        {                        \n            var posX, posY;\n            var dialogHeader = dialog.children(\".\" + classPrefix + \"dialog-header\");\n\n            if (!options.mask) {\n                dialogHeader.bind(mouseOrTouch(\"click\", \"touchend\"), function(){\n                    editormd.dialogZindex += 2;\n                    dialog.css(\"z-index\", editormd.dialogZindex);\n                });\n            }\n\n            dialogHeader.mousedown(function(e) {\n                e = e || window.event;  //IE\n                posX = e.clientX - parseInt(dialog[0].style.left);\n                posY = e.clientY - parseInt(dialog[0].style.top);\n\n                document.onmousemove = moveAction;                   \n            });\n\n            var userCanSelect = function (obj) {\n                obj.removeClass(classPrefix + \"user-unselect\").off(\"selectstart\");\n            };\n\n            var userUnselect = function (obj) {\n                obj.addClass(classPrefix + \"user-unselect\").on(\"selectstart\", function(event) { // selectstart for IE                        \n                    return false;\n                });\n            };\n\n            var moveAction = function (e) {\n                e = e || window.event;  //IE\n\n                var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top);\n\n                if( nowLeft >= 0 ) {\n                    if( nowLeft + dialog.width() <= $(window).width()) {\n                        left = e.clientX - posX;\n                    } else {\t\n                        left = $(window).width() - dialog.width();\n                        document.onmousemove = null;\n                    }\n                } else {\n                    left = 0;\n                    document.onmousemove = null;\n                }\n\n                if( nowTop >= 0 ) {\n                    top = e.clientY - posY;\n                } else {\n                    top = 0;\n                    document.onmousemove = null;\n                }\n\n\n                document.onselectstart = function() {\n                    return false;\n                };\n\n                userUnselect($(\"body\"));\n                userUnselect(dialog);\n                dialog[0].style.left = left + \"px\";\n                dialog[0].style.top  = top + \"px\";\n            };\n\n            document.onmouseup = function() {                            \n                userCanSelect($(\"body\"));\n                userCanSelect(dialog);\n\n                document.onselectstart = null;         \n                document.onmousemove = null;\n            };\n\n            dialogHeader.touchDraggable = function() {\n                var offset = null;\n                var start  = function(e) {\n                    var orig = e.originalEvent; \n                    var pos  = $(this).parent().position();\n\n                    offset = {\n                        x : orig.changedTouches[0].pageX - pos.left,\n                        y : orig.changedTouches[0].pageY - pos.top\n                    };\n                };\n\n                var move = function(e) {\n                    e.preventDefault();\n                    var orig = e.originalEvent;\n\n                    $(this).parent().css({\n                        top  : orig.changedTouches[0].pageY - offset.y,\n                        left : orig.changedTouches[0].pageX - offset.x\n                    });\n                };\n\n                this.bind(\"touchstart\", start).bind(\"touchmove\", move);\n            };\n\n            dialogHeader.touchDraggable();\n        }\n\n        editormd.dialogZindex += 2;\n\n        return dialog;\n    };\n    \n    /**\n     * 鼠标和触摸事件的判断/选择方法\n     * MouseEvent or TouchEvent type switch\n     * \n     * @param   {String} [mouseEventType=\"click\"]    供选择的鼠标事件\n     * @param   {String} [touchEventType=\"touchend\"] 供选择的触摸事件\n     * @returns {String} EventType                   返回事件类型名称\n     */\n    \n    editormd.mouseOrTouch = function(mouseEventType, touchEventType) {\n        mouseEventType = mouseEventType || \"click\";\n        touchEventType = touchEventType || \"touchend\";\n        \n        var eventType  = mouseEventType;\n\n        try {\n            document.createEvent(\"TouchEvent\");\n            eventType = touchEventType;\n        } catch(e) {}\n\n        return eventType;\n    };\n    \n    /**\n     * 日期时间的格式化方法\n     * Datetime format method\n     * \n     * @param   {String}   [format=\"\"]  日期时间的格式，类似PHP的格式\n     * @returns {String}   datefmt      返回格式化后的日期时间字符串\n     */\n    \n    editormd.dateFormat = function(format) {                \n        format      = format || \"\";\n\n        var addZero = function(d) {\n            return (d < 10) ? \"0\" + d : d;\n        };\n\n        var date    = new Date(); \n        var year    = date.getFullYear();\n        var year2   = year.toString().slice(2, 4);\n        var month   = addZero(date.getMonth() + 1);\n        var day     = addZero(date.getDate());\n        var weekDay = date.getDay();\n        var hour    = addZero(date.getHours());\n        var min     = addZero(date.getMinutes());\n        var second  = addZero(date.getSeconds());\n        var ms      = addZero(date.getMilliseconds()); \n        var datefmt = \"\";\n\n        var ymd     = year2 + \"-\" + month + \"-\" + day;\n        var fymd    = year  + \"-\" + month + \"-\" + day;\n        var hms     = hour  + \":\" + min   + \":\" + second;\n\n        switch (format) \n        {\n            case \"UNIX Time\" :\n                    datefmt = date.getTime();\n                break;\n\n            case \"UTC\" :\n                    datefmt = date.toUTCString();\n                break;\t\n\n            case \"yy\" :\n                    datefmt = year2;\n                break;\t\n\n            case \"year\" :\n            case \"yyyy\" :\n                    datefmt = year;\n                break;\n\n            case \"month\" :\n            case \"mm\" :\n                    datefmt = month;\n                break;                        \n\n            case \"cn-week-day\" :\n            case \"cn-wd\" :\n                    var cnWeekDays = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n                    datefmt = \"星期\" + cnWeekDays[weekDay];\n                break;\n\n            case \"week-day\" :\n            case \"wd\" :\n                    var weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n                    datefmt = weekDays[weekDay];\n                break;\n\n            case \"day\" :\n            case \"dd\" :\n                    datefmt = day;\n                break;\n\n            case \"hour\" :\n            case \"hh\" :\n                    datefmt = hour;\n                break;\n\n            case \"min\" :\n            case \"ii\" :\n                    datefmt = min;\n                break;\n\n            case \"second\" :\n            case \"ss\" :\n                    datefmt = second;\n                break;\n\n            case \"ms\" :\n                    datefmt = ms;\n                break;\n\n            case \"yy-mm-dd\" :\n                    datefmt = ymd;\n                break;\n\n            case \"yyyy-mm-dd\" :\n                    datefmt = fymd;\n                break;\n\n            case \"yyyy-mm-dd h:i:s ms\" :\n            case \"full + ms\" : \n                    datefmt = fymd + \" \" + hms + \" \" + ms;\n                break;\n\n            case \"full\" :\n            case \"yyyy-mm-dd h:i:s\" :\n                default:\n                    datefmt = fymd + \" \" + hms;\n                break;\n        }\n\n        return datefmt;\n    };\n\n    return editormd;\n\n}));\n"
  },
  {
    "path": "public/static/home/editormd/examples/@links.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>@links - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>@links</h1>   \n                <p>Github Flavored Markdown extras syntax</p>\n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">### Disable @link & email address auto link\n\n> Editor.md default enable @link & email address auto link; \n> Unsupported xxxx@xxxxx, xxxx@localhost  ...\n\n```javascript\nvar testEditor;\n\n$(function() {    \n    // You can custom @link base url.\n    editormd.urls.atLinkBase = \"https://github.com/\";\n\n    testEditor = editormd(\"test-editormd\", {\n        atLink    : false,    // disable @link\n        emailLink : false,    // disable email address auto link\n        path      : '../lib/'\n    });\n});\n```\n\n### @links\n\n[TOC]\n\n~~@mentions~~, #refs @tylerlong `inline code @tylerlong`, [links](), **formatting**, and <del>tags</del> supported @pandao;\nlist syntax required (any unordered or ordered list supported) @pandao;\nthis is @pandao a complete item @pandao xxx.test@gmail.com;\n\nlink [@pandao](https://github.com/pandao \"@pandao\") &#64 xxx.test@gmail.com;\nlink [&#64;pandao](https://github.com/pandao \"&#64;pandao\") \n fsdafds [Gmail](mailto:xxx.test@gmail.com) this is an incomplete item **@pandao**; \n\n*@pandao* this is an incomplete item ___@pandao___;\n\n<xxx.test@gmail.com>\n\n<mailto:xxx.test@gmail.com>\n\nEmail test : [email me](mailto:test@test.com)  [Gmail](mailto:xxx.test@gmail.com)  dsfdfsdfsdfsdf  xxx.test@gmail.com fdfsdfsdf 5956565656565@vip.qq.com\n \n# Github: @pandao\n## Github: @pandao\n### Github: @tylerlong\n#### Github: @tylerlong\n##### Github: @tylerlong\n###### Github: @tylerlong  [Gmail](mailto:xxx.test@gmail.com)\n \n- dafssdfsdaf@chjj dfsdfsdf  [5956565656565@vip.qq.com](mailto:5956565656565@vip.qq.com)\n- dafssdfsdaf@chjj dfsdfsdf     \n    - dafssdfsdaf@chjj dfsdfsdf\n    - dafss@pandao dfsdaf@chjj dfsdfsdf\n- dafssd:  @pandao fsdaf@chjj dfsdfsdf @codemirror  @pandao\n    + dafssdfsdaf@chjj dfsdfsdf\n    + dafss@pandaodfsdaf@chjj dfsdfsdf\n\n\n1. @chjj 第一行@pandao fsdaf@chjj dfsdfsdf :fa-save::  @pandao\n    - dafssdfsdaf@chjj dfsdfsdf\n    - dafss@pandao dfsdaf@chjj dfsdfsdf\n2. @chjj 第二行@pandao fsdaf@chjj dfsdfsdf @codemirror  @pandao\n3. 第三行@pandao fsdaf@chjj dfsdfsdf :fa-save::  @pandao\n\n&gt; Blockquotes @pandao\n\n&gt; dd@pandao引用文本(Blockquotes @pandao)fdasfad @_pandao fdasfad @xxx454xxx fdasfad @xx_x454xxx454\n\n|@pandao First Header  | Second@pandao Header@pandao |\n| ------------- | ------------- |\n| Content@pandao Cell  | @pandao Content Cell @pandao|\n| Con@pandao tent Cell@pandao  | Content@pan-dao Cell dfsdfsdf @pan_dao |\n\ndsfdf@pandao fasdfsdfsfddffd@pandao\n\n    dfasfasdfasdf:bangbang:\n\nThis is an H1 @pandao\n=============\n\nThis @pandao an H2 @pandao\n-------------\n\nhttp://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png\n\nhttp://socialpro.demo.ipandao.com/app/images/welcom-logo@3x.png\n\nhttp://socialpro.demo.ipandao.com/app/images/welcom-logo@4x.png\n\n[![http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png](http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png)](http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png)\n\n\n[http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png](http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png)\n[http://socialpro.demo.ipandao.com/app/images/welcom-logo@3x.png](http://socialpro.demo.ipandao.com/app/images/welcom-logo@3x.png)\n\n![http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png](http://socialpro.demo.ipandao.com/app/images/welcom-logo@2x.png)\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {    \n                // You can custom @link base url.\n                editormd.urls.atLinkBase = \"https://github.com/\";\n                \n                testEditor = editormd(\"test-editormd\", {\n                    width     : \"90%\",\n                    height    : 720,\n                    toc       : true,\n                    //atLink    : false,    // disable @link\n                    //emailLink : false,    // disable email address auto link\n                    todoList  : true,\n                    path      : '../lib/'\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/auto-height.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Auto height - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Auto height test</h1>\n            </header>\n            <div class=\"btns\">\n                <button id=\"append-btn\">Append markdown</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">### Settings\n\n```javascript\nvar testEditor = editormd(\"test-editormd\", {\n    autoHeight : true\n});\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width           : \"90%\",\n                    autoHeight      : true,\n                    path            : \"../lib/\",\n                    htmlDecode      : \"style,script,iframe\", \n                    tex             : true,\n                    emoji           : true,\n                    taskList        : true,\n                    flowChart       : true, \n                    sequenceDiagram : true\n                });\n                \n                $(\"#append-btn\").click(function(){\n                    $.get(\"./test.md\", function(md){\n                        testEditor.appendMarkdown(md);\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/change-mode.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Chnage mode - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            #codes textarea {display: none;}\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Chnage mode</h1>\n                <p>Become to the code editor</p>\n                <p>Modes : <select id=\"modes\">\n                    <option value=\"\">select modes</option>\n                </select>&nbsp;&nbsp;Themes : \n                    <select id=\"themes\">\n                        <option selected=\"selected\" value=\"\">select themes</option>\n                    </select>\n                </p>\n            </header>\n            <div class=\"btns\">\n                <button id=\"get-code-btn\">Get code source</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press F11 into, ESC exit)</button>\n            </div>\n            <div id=\"codes\">\n            <textarea id=\"html-code\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"zh\"&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"utf-8\" /&gt;\n        &lt;title&gt;Chnage mode - Editor.md examples&lt;/title&gt;\n        &lt;link rel=\"stylesheet\" href=\"css/style.css\" /&gt;\n        &lt;link rel=\"stylesheet\" href=\"../css/editormd.css\" /&gt;\n        &lt;link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" /&gt;\n    &lt;/head&gt;\n    &lt;body&gt;\n        &lt;div id=\"layout\"&gt;\n            &lt;header&gt;\n                &lt;h1&gt;Chnage mode&lt;/h1&gt;\n            &lt;/header&gt;\n            &lt;div id=\"test-editormd\"&gt;\n                &lt;textarea style=\"display:none;\"&gt;&lt;/textarea&gt;\n            &lt;/div&gt;\n        &lt;/div&gt;\n        &lt;script src=\"js/jquery.min.js\"&gt;&lt;/script&gt;\n        &lt;script src=\"../editormd.js\"&gt;&lt;/script&gt;\n        &lt;script type=\"text/javascript\"&gt;\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width            : \"90%\",\n                    height           : 720,\n                    watch            : false,\n                    toolbar          : false,\n                    codeFold         : true,\n                    searchReplace    : true,\n                    placeholder      : \"Enjoy coding!\",\n                    value            : (localStorage.mode) ? $(\"#\"+localStorage.mode.replace(\"text/\", \"\")+\"-code\").val() : $(\"#html-code\").val(),\n                    theme            : (localStorage.theme) ? localStorage.theme : \"default\",\n                    mode             : (localStorage.mode) ? localStorage.mode : \"text/html\",\n                    path             : '../lib/'\n                });\n            });\n        &lt;/script&gt;\n    &lt;/body&gt;\n&lt;/html&gt;</textarea>\n<textarea id=\"javascript-code\">$(function() {\n    var testEditor = editormd(\"test-editormd\", {\n        width            : \"90%\",\n        height           : 720,\n        watch            : false,\n        toolbar          : false,\n        codeFold         : true,\n        searchReplace    : true,\n        placeholder      : \"Enjoy coding!\",\n        value            : (localStorage.mode) ? $(\"#\"+localStorage.mode.replace(\"text/\", \"\")+\"-code\").val() : $(\"#html-code\").val(),\n        theme            : (localStorage.theme) ? localStorage.theme : \"default\",\n        mode             : (localStorage.mode) ? localStorage.mode : \"text/html\",\n        path             : '../lib/'\n    });\n});</textarea>\n<textarea id=\"xml-code\">&lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;\n&lt;root&gt;\n\t&lt;photo url=\"https://pandao.github.io/editor.md/examples/images/7.jpg\"&gt;\n\t\t&lt;title&gt;李健首张专辑《似水流年》封面&lt;/title&gt;\n\t\t&lt;width&gt;360&lt;/width&gt;\n\t\t&lt;height&gt;360&lt;/height&gt;\n\t&lt;/photo&gt;\n\t&lt;photo url=\"https://pandao.github.io/editor.md/examples/images/7.jpg\"&gt;\n\t\t&lt;title&gt;李健首张专辑《似水流年》封面&lt;/title&gt;\n\t\t&lt;width&gt;360&lt;/width&gt;\n\t\t&lt;height&gt;360&lt;/height&gt;\n\t&lt;/photo&gt;\n\t&lt;photo url=\"https://pandao.github.io/editor.md/examples/images/7.jpg\"&gt;\n\t\t&lt;title&gt;李健首张专辑《似水流年》封面&lt;/title&gt;\n\t\t&lt;width&gt;360&lt;/width&gt;\n\t\t&lt;height&gt;360&lt;/height&gt;\n\t&lt;/photo&gt;\n&lt;/root&gt;</textarea>\n<textarea id=\"ruby-code\">#!/usr/bin/ruby\n\nputs \"Hello World!\";\n \n# Ruby knows what you\n# mean, even if you\n# want to do math on\n# an entire Array\ncities  = %w[ London\n              Oslo\n              Paris\n              Amsterdam\n              Berlin ]\nvisited = %w[Berlin Oslo]\n\nputs \"I still need \" +\n     \"to visit the \" +\n     \"following cities:\",\n     cities - visited</textarea>\n<textarea id=\"json-code\">{\n    \"employees\": [\n        {\n            \"firstName\" : \"Bill\",\n            \"lastName\" : \"Gates\"\n        },\n        {\n            \"firstName\" : \"George\",\n            \"lastName\" : \"Bush\"\n        },\n        {\n            \"firstName\" : \"Thomas\",\n            \"lastName\" : \"Carter\"\n        }\n    ],\n    \"employees\": [\n        {\n            \"firstName\" : \"Bill\",\n            \"lastName\" : \"Gates\"\n        },\n        {\n            \"firstName\" : \"George\",\n            \"lastName\" : \"Bush\"\n        },\n        {\n            \"firstName\" : \"Thomas\",\n            \"lastName\" : \"Carter\"\n        }\n    ],\n}</textarea>\n<textarea id=\"php-code\">&lt;?php\n    $app = new Phalcon\\Mvc\\Micro();\n\n    //Set a route with the name \"show-post\"\n    $app->get('/blog/{year}/{title}', function ($year, $title) use ($app) {\n\n        //.. show the post here\n        return $year.$title;\n\n    })->setName('show-post');\n\n    $app->get('/', function () {\n        echo \"<h1>Welcome !</h1>\";\n\n        echo $app->url->get(array(\n            'for' => 'show-post',\n            'title' => 'php-is-a-great-framework',\n            'year' => 2012\n        ));\n    });\n\n    $app->get('/posts/{year:[0-9]+}/{title:[a-zA-Z\\-]+}', function ($year, $title) {\n        echo \"<h1>Title: $title</h1>\";\n        echo \"<h2>Year: $year</h2>\";\n    });\n\n    //Requiring another file\n    $app->get('/show/results', function () {\n        require 'views/results.php';\n    });\n\n    //Returning a JSON\n    $app->get('/get/some-json', function () {\n        echo json_encode(array(\"some\", \"important\", \"data\"));\n    });\n\n    //This route makes a redirection to another route\n    $app->post('/old/welcome', function () use ($app) {\n        $app->response->redirect(\"new/welcome\");\n    });\n\n    $app->post('/new/welcome', function () use ($app) {\n        echo 'This is the new Welcome';\n    });\n\n    /*\n    //Matches if the HTTP method is POST\n    $app->post('/api/products/add', \"add_product\");\n\n    //Matches if the HTTP method is PUT\n    $app->put('/api/products/update/{id}', \"update_product\");\n\n    //Matches if the HTTP method is DELETE\n    $app->put('/api/products/remove/{id}', \"delete_product\");\n\n    //Matches if the HTTP method is GET or POST\n    $app->map('/repos/store/refs')->via(array('GET', 'POST'));\n    */\n\n    $app->handle();\n?&gt;</textarea>\n<textarea id=\"cpp-code\">#include \"dialog.h\"\n#include <QApplication>\n\nint main(int argc, char *argv[])\n{\n    QApplication a(argc, argv);\n    Dialog w;\n    w.show();\n\n    return a.exec();\n}</textarea>\n<textarea id=\"java-code\">package com.demo.blog;\n\nimport com.jfinal.aop.Before;\nimport com.jfinal.core.Controller;\n\n@Before(BlogInterceptor.class)\npublic class BlogController extends Controller {\n\tpublic void index() {\n\t\tsetAttr(\"blogPage\", Blog.me.paginate(getParaToInt(0, 1), 10));\n\t\trender(\"blog.html\");\n\t}\n\n\tpublic void add() {\n\t}\n\n\t@Before(BlogValidator.class)\n\tpublic void save() {\n\t\tgetModel(Blog.class).save();\n\t\tredirect(\"/blog\");\n\t}\n\n\tpublic void edit() {\n\t\tsetAttr(\"blog\", Blog.me.findById(getParaToInt()));\n\t}\n\n\t@Before(BlogValidator.class)\n\tpublic void update() {\n\t\tgetModel(Blog.class).update();\n\t\tredirect(\"/blog\");\n\t}\n\n\tpublic void delete() {\n\t\tBlog.me.deleteById(getParaToInt());\n\t\tredirect(\"/blog\");\n\t}\n}\n</textarea>\n<textarea id=\"actionscript-code\">package com.flite\n{\n\timport flash.net.*;\n\timport flash.events.*;\n\timport flash.display.*;\n\n\t/**\n\t * @package com.flite\n\t * @class   XMLLoader\n\t * @author  pandao pandao@vip.qq.com\n\t */\n\n\tpublic class XMLLoder\n\t{\n\t\tpublic var xml:XML;\n\t\tpublic var url:String;\n\t\tpublic var list:XMLList;\n\t\tpublic var percent:Number = 0;\n\t\tpublic var onload:Function;\n\t\tpublic var onerror:Function;\n\t\tpublic var onpreload:Function;\n\t\tpublic var onprogress:Function;\n\n\t\tprivate var loader:URLLoader;\n\n\t\tpublic function XMLLoder(url:String) : void\n\t\t{\n\t\t\tthis.url = url;\n\n\t\t\txml = new XML();\n\t\t\txml.ignoreWhite = true;\n\n            loader = new URLLoader();\n            loader.load(new URLRequest(url));\n\t\t\tloader.addEventListener(Event.OPEN, preloadHandler);\n\t\t\tloader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);\n\t\t\tloader.addEventListener(ProgressEvent.PROGRESS, progressHandler);\n            loader.addEventListener(Event.COMPLETE, loadedHandler);\n\t\t}\n\n\t\tprivate function preloadHandler(event:Event) : void\n        {\n\t\t\tonpreload = onpreload || new Function;\n\t\t\tonpreload(event);\n\t\t}\n\n\t\tprivate function errorHandler(event:IOErrorEvent) : void\n\t\t{\n\t\t\tonerror = onerror || new Function;\n\t\t\tonerror(event);\n\t\t}\n\n\t\tprivate function progressHandler(event:ProgressEvent) : void\n\t\t{\n\t\t\tpercent = Math.round((event.bytesLoaded / event.bytesTotal) * 100);\n\n\t\t\tonprogress = onprogress || new Function;\n\t\t\tonprogress(event, percent);\n\t\t}\n\n\t\tprivate function loadedHandler(event:Event) : void\n\t\t{\n\t\t\txml = XML(loader.data);\n\n\t\t\tonload = onload || new Function;\n\t\t\tonload(xml);\n\t\t}\n\t}\n\n}</textarea><textarea id=\"perl-code\">#!/usr/bin/perl\nuse strict;\nuse warnings;\n\nprint \"Hello, World...\\n\";\n</textarea>\n           <textarea id=\"go-code\">package main\n\nimport (\n    \"github.com/astaxie/beego\"\n)\n\ntype MainController struct {\n    beego.Controller\n}\n\nfunc (this *MainController) Get() {\n    this.Ctx.WriteString(\"hello world\")\n}\n\nfunc main() {\n    beego.Router(\"/\", &MainController{})\n    beego.Run()\n}</textarea><textarea id=\"python-code\">#!/usr/bin/env python\n\nfrom flask import Flask\napp = Flask(__name__)\n\n@app.route('/')\ndef hello_world():\n    return 'Hello World!'\n\nif __name__ == '__main__':\n    app.run()</textarea>\n           <textarea id=\"css-code\">    body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,\n    th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {\n        margin:0;padding:0;\n    }\n\n    article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {\n        display: block;\n    }\n\n    audio, canvas, video {\n        display: inline-block;\n    }\n\n    body, button, input, select, textarea {\n        font:12px/1.5 Tahoma, \"Hiragino Sans GB\", \"Microsoft Yahei\", Arial;\n    }\n\n    body {\n        font-size:12px;\n        color:#666;\n        background:#fff url(../images/) no-repeat left top;\n    }\n\n    a {\n        color:#444;\n        text-decoration: none;\n    }\n\n    a:hover {\n        color:#065BC2;\n        text-decoration: none;\n    }\n\n    .clear {\n        zoom:1;\n    }\n\n    .clear:after {\n        content:\"\";\n        height:0;\n        visibility:hidden;\n        clear:both;\n        display:block;\n    }\n\n    img {\n        border:none;\n        vertical-align: middle;\n    }\n\n    ul {\n        list-style: none;\n    }</textarea></div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\"></textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            function getCodeValue() {\n                return (localStorage.modeName) ? $(\"#\"+localStorage.modeName.replace(\"text/\", \"\").replace(\"c/c++\", \"cpp\")+\"-code\").val() : $(\"#html-code\").val();\n            }\n            \n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width            : \"90%\",\n                    height           : 720,\n                    watch            : false,\n                    toolbar          : false,\n                    codeFold         : true,\n                    searchReplace    : true,\n                    placeholder      : \"Enjoy coding!\",\n                    value            : getCodeValue(),\n                    theme            : (localStorage.theme) ? localStorage.theme : \"default\",\n                    mode             : (localStorage.mode) ? localStorage.mode : \"text/html\",\n                    path             : '../lib/'\n                });\n\n                $(\"#get-code-btn\").bind(\"click\", function() {\n                    alert(testEditor.getValue());\n                });\n\n                $(\"#fullscreen-btn\").bind(\"click\", function() {\n                    testEditor.fullscreen();\n                });\n                \n                var select = $(\"#themes\");\n                \n                for (var i = 0, len = editormd.themes.length; i < len; i ++)\n                {                    \n                    var theme    = editormd.themes[i];\n                    var selected = (localStorage.theme == theme) ? \" selected=\\\"selected\\\"\" : \"\";\n                    select.append(\"<option value=\\\"\" + theme + \"\\\"\" + selected + \">\" + theme + \"</option>\");\n                }\n                \n                select.change(function(){\n                    var theme = $(this).val();\n                    \n                    if (theme == \"\")\n                    {\n                        alert(\"theme == \\\"\\\"\");\n                        return false;\n                    }\n                    \n                    localStorage.theme = theme;\n                    testEditor.setTheme(theme);\n                });   \n                \n                var modesSelect = $(\"#modes\");\n                var modeNames = [\"text/html\", \"javascript\", \"php\", \"text/xml\", \"text/json\", \"java\", \"actionscript\", \"perl\", \"go\", \"python\", \"c/c++\", \"css\", \"ruby\"];\n                var modes     = [\"text/html\", \"javascript\", \"php\", \"text/xml\", \"text/json\", \"clike\", \"javascript\", \"perl\", \"go\", \"python\", \"clike\", \"css\", \"ruby\"];\n                \n                for (var i = 0, len = modes.length; i < len; i ++)\n                {                    \n                    var mode    = modes[i];\n                    var selected = (localStorage.modeName == modeNames[i]) ? \" selected=\\\"selected\\\"\" : \"\";\n                    modesSelect.append(\"<option value=\\\"\" + mode + \"\\\"\" + selected + \" name=\\\"\" + modeNames[i] + \"\\\"\" + selected + \">\" + modeNames[i] + \"</option>\");\n                }\n                \n                modesSelect.change(function(){\n                    var mode = $(this).val();\n                    var modeName = $(this).find(\"option:selected\").attr(\"name\");\n                    \n                    if (mode == \"\")\n                    {\n                        alert(\"mode == \\\"\\\"\");\n                        return false;\n                    }\n                    \n                    localStorage.mode     = mode;\n                    localStorage.modeName = modeName;\n                    \n                    var code = getCodeValue();\n                    \n                    testEditor.setCodeMirrorOption(\"mode\", mode);\n                    //testEditor.setCodeMirrorOption(\"value\", code);\n                    testEditor.setValue(code);\n                });  \n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/code-fold.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Code folding - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Code folding</h1>\n                <p>Switch code folding : Press Ctrl + Q / Command + Q</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\"></textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                $.get(\"./test.md\", function(md) {\n                    testEditor = editormd(\"test-editormd\", {\n                        width  : \"90%\",\n                        height : 720,\n                        markdown : \"#### Setting\\r\\n\\r\\n    {\\n        codeFold : true\\n    }\\r\\n\\r\\n\" + md,\n                        codeFold : true,\n                        htmlDecode : true,\n                        tex : true,\n                        taskList : true,\n                        emoji : true,\n                        flowChart : true,\n                        sequenceDiagram : true,\n                        path   : '../lib/'\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/css/style.css",
    "content": "* {\n    padding: 0;\n    margin: 0;\n}\n\n*, *:before, *:after {\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n}\n\t\tbody,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{\n    margin: 0;\n    padding: 0;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {\n    display: block;\n}\n\naudio, canvas, video {\n    display: inline-block;\n}\n\nimg {\n    border: none;\n    vertical-align: middle;\n}\n\nul, ol {\n    /*list-style: none;*/\n}\n\n.clear {\n    *zoom: 1;           /* for IE 6/7 */\n}\n\n.clear:before, .clear:after {\n    height: 0; \n    content: \"\";\n    font-size: 0;\n    display: table;\n    line-height: 0;     /* for Opera */\n    visibility: hidden;\n}\n\n.clear:after {\n    clear: both;\n}\n\nbody {\n    font-size: 14px;\n    color: #666;\n    font-family: \"Microsoft YaHei\", \"微软雅黑\", Helvetica, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", Helvetica, Tahoma, \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif; \n    background: #fff;\n    text-align: center;\n}\n\n#layout {\n    text-align: left;\n}\n\n#layout > header, .btns {\n    padding: 15px 0;\n    width: 90%;\n    margin: 0 auto;\n}\n\n.btns {\n    padding-top: 0;\n}\n\n.btns button {\n    padding: 2px 8px;\n}\n\n#layout > header > h1 {\n    font-size: 20px;\n    margin-bottom: 10px;\n}\n\n.btns button, .btn {\n    padding: 8px 10px;\n    background: #fff;\n    border: 1px solid #ddd;\n    -webkit-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n    -webkit-transition: background 300ms ease-out;\n    transition: background 300ms ease-out;\n}\n\n.btns button:hover, .btn:hover {\n    background: #f6f6f6;\n}"
  },
  {
    "path": "public/static/home/editormd/examples/custom-keyboard-shortcuts.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Custom keyboard shortcuts - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Custom keyboard shortcuts</h1>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Default\n\n> If Editor.md code editor is on focus, you can use keyboard shortcuts.\n> Editor.md have the default keyboard shortcuts handle. Plaese open the help dialog, can see all default keyboard shortcuts.\n\n#### Example\n\n```javascript\nvar testEditor = editormd(\"test-editormd\", {\n    width: \"90%\",\n    height: 720,\n    path : '../lib/',\n    disabledKeyMaps : [\n        \"Ctrl-B\", \"F11\", \"F10\"  // disable some default keyboard shortcuts handle\n    ],\n    onload : function() {\n        var keyMap = {\n            \"Ctrl-S\": function(cm) {\n                alert(\"Ctrl+S\");\n            },\n            \"Ctrl-A\": function(cm) { // default Ctrl-A selectAll\n                // custom\n                alert(\"Ctrl+A\");\n                cm.execCommand(\"selectAll\");\n            }\n        };\n\n        // setting signle key\n        var keyMap2 = {\n              \"Ctrl-T\": function(cm) {\n                alert(\"Ctrl+T\");\n              }\n        };\n\n        this.addKeyMap(keyMap);\n        this.addKeyMap(keyMap2);\n        this.removeKeyMap(keyMap2);  // remove signle key\n    }\n});\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {   \n                var widgets = [];\n                \n                testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 720,\n                    path : '../lib/',\n                    disabledKeyMaps : [\n                        \"Ctrl-B\", \"F11\", \"F10\"  // disable some default keyboard shortcuts handle\n                    ],\n                    onchange : function() {\n                                $(\"#test\").remove();\n                                var cm = this.cm;\n                                var cursor = cm.getCursor();\n\n                                //cm.replaceSelection(\"@\");\n                                \n                                widgets.push(cm.addWidget({line : cursor.line, ch : cursor.ch}, $(\"<p style='z-index:100000;background:red;color:#fff;padding:5px;' id='test'>fsdfsdfsdf</p>\")[0], true));\n                                console.log(cm.getCursor(), cm.getLine(cursor.line), cm.getLineTokens(cursor.line));   \n                    },\n                    onload : function() {\n                        var keyMap = {\n                            \"Ctrl-S\": function(cm) {\n                                alert(\"Ctrl+S\");\n                                //return false;\n                            },\n                            \"Ctrl-A\": function(cm) { // default Ctrl-A selectAll\n                                // custom\n                                alert(\"Ctrl+A\");\n                                cm.execCommand(\"selectAll\");\n                            },\n                            //\"Shift-2\" : function(cm){\n                            //}\n                        };\n                        \n                        this.cm.on(\"keyup\", function(cm){\n                            //$(\"#test\").remove();\n                        });\n                        \n                        // setting signle key\n                        var keyMap2 = {\n                              \"Ctrl-T\": function(cm) {\n                                alert(\"Ctrl+T\");\n                              }\n                        };\n                        \n                        this.addKeyMap(keyMap);\n                        this.addKeyMap(keyMap2);\n                        this.removeKeyMap(keyMap2);  // remove signle key\n                    }\n                });    \n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/custom-toolbar.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>自定义工具栏 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>自定义工具栏</h1> \n                <p>Custom toolbar (icons handler)</p>   \n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">### Custom toolbar\n\n```javascript\n$(function() {\n    var testEditor = editormd(\"test-editormd\", {\n        width: \"90%\",\n        height: 640,\n        path : '../lib/',\n        toolbarIcons : function() {\n            // Or return editormd.toolbarModes[name]; // full, simple, mini\n            // Using \"||\" set icons align right.\n            return [\"undo\", \"redo\", \"|\", \"bold\", \"hr\", \"|\", \"preview\", \"watch\", \"|\", \"fullscreen\", \"info\", \"testIcon\", \"testIcon2\", \"file\", \"faicon\", \"||\", \"watch\", \"fullscreen\", \"preview\", \"testIcon\"]\n        },\n        toolbarIconsClass : {\n            testIcon : \"fa-gears\"  // 指定一个FontAawsome的图标类\n        },\n        toolbarIconTexts : {\n            testIcon2 : \"测试按钮\"  // 如果没有图标，则可以这样直接插入内容，可以是字符串或HTML标签\n        },\n\n        // 用于增加自定义工具栏的功能，可以直接插入HTML标签，不使用默认的元素创建图标\n        toolbarCustomIcons : {\n            file   : \"&lt;input type=\"file\" accept=\".md\" /&gt;\",\n            faicon : \"&lt;i class=\"fa fa-star\" onclick=\"alert('faicon');\"&gt;&lt;/i&gt;\"\n        },\n\n        // 自定义工具栏按钮的事件处理\n        toolbarHandlers : {\n            /**\n             * @param {Object}      cm         CodeMirror对象\n             * @param {Object}      icon       图标按钮jQuery元素对象\n             * @param {Object}      cursor     CodeMirror的光标对象，可获取光标所在行和位置\n             * @param {String}      selection  编辑器选中的文本\n             */\n            testIcon : function(cm, icon, cursor, selection) {\n\n                //var cursor    = cm.getCursor();     //获取当前光标对象，同cursor参数\n                //var selection = cm.getSelection();  //获取当前选中的文本，同selection参数\n\n                // 替换选中文本，如果没有选中文本，则直接插入\n                cm.replaceSelection(\"[\" + selection + \":testIcon]\");\n\n                // 如果当前没有选中的文本，将光标移到要输入的位置\n                if(selection === \"\") {\n                    cm.setCursor(cursor.line, cursor.ch + 1);\n                }\n\n                // this == 当前editormd实例\n                console.log(\"testIcon =>\", this, cm, icon, cursor, selection);\n            },\n\n            testIcon2 : function(cm, icon, cursor, selection) {\n                cm.replaceSelection(\"[\" + selection + \":testIcon2](\" + icon.html() + \")\");\n                console.log(\"testIcon2 =>\", this, icon.html());\n            }\n        },\n\n        lang : {\n            toolbar : {\n                file : \"上传文件\",\n                testIcon : \"自定义按钮testIcon\",  // 自定义按钮的提示文本，即title属性\n                testIcon2 : \"自定义按钮testIcon2\",  \n                undo : \"撤销 (Ctrl+Z)\"\n            }\n        },\n\n        onload : function(){\n            $(\"[type=\\\"file\\\"]\").bind(\"change\", function(){\n                alert($(this).val());\n                testEditor.cm.replaceSelection($(this).val());\n                console.log($(this).val(), testEditor);\n            });\n        }\n    });\n});\n```\n</textarea>\n            </div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script> \n        <!-- 多语言和自定义工具栏的整合测试 -->\n        <script src=\"../languages/en.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 640,\n                    path : '../lib/',\n                    watch : false,\n                    toolbarIcons : function() {\n                        // Or return editormd.toolbarModes[name]; // full, simple, mini\n                        // Using \"||\" set icons align right.\n                        return [\"undo\", \"redo\", \"|\", \"bold\", \"hr\", \"|\", \"preview\", \"watch\", \"|\", \"fullscreen\", \"info\", \"testIcon\", \"testIcon2\", \"file\", \"faicon\", \"||\", \"watch\", \"fullscreen\", \"preview\", \"testIcon\", \"file\"]\n                    },\n                    // toolbarIcons : \"full\", // You can also use editormd.toolbarModes[name] default list, values: full, simple, mini.\n                    toolbarIconsClass : {\n                        testIcon : \"fa-gears\"  // 指定一个FontAawsome的图标类\n                    },\n                    toolbarIconTexts : {\n                        testIcon2 : \"测试按钮Test button\"  // 如果没有图标，则可以这样直接插入内容，可以是字符串或HTML标签\n                    },\n                    \n                    // 用于增加自定义工具栏的功能，可以直接插入HTML标签，不使用默认的元素创建图标\n                    toolbarCustomIcons : {\n                        file   : \"<input type=\\\"file\\\" accept=\\\".md\\\" />\",\n                        faicon : \"<i class=\\\"fa fa-star\\\" onclick=\\\"alert('faicon');\\\"></i>\"\n                    },\n\n                    // 自定义工具栏按钮的事件处理\n                    toolbarHandlers : {\n                        /**\n                         * @param {Object}      cm         CodeMirror对象\n                         * @param {Object}      icon       图标按钮jQuery元素对象\n                         * @param {Object}      cursor     CodeMirror的光标对象，可获取光标所在行和位置\n                         * @param {String}      selection  编辑器选中的文本\n                         */\n                        testIcon : function(cm, icon, cursor, selection) {\n                            \n                            //var cursor    = cm.getCursor();     //获取当前光标对象，同cursor参数\n                            //var selection = cm.getSelection();  //获取当前选中的文本，同selection参数\n                            \n                            // 替换选中文本，如果没有选中文本，则直接插入\n                            cm.replaceSelection(\"[\" + selection + \":testIcon]\");\n                            \n                            // 如果当前没有选中的文本，将光标移到要输入的位置\n                            if(selection === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 1);\n                            }\n                            \n                            // this == 当前editormd实例\n                            console.log(\"testIcon =>\", this, cm, icon, cursor, selection);\n                        },\n                        \n                        testIcon2 : function(cm, icon, cursor, selection) {\n                            cm.replaceSelection(\"[\" + selection + \":testIcon2](\" + icon.html() + \")\");\n                            console.log(\"testIcon2 =>\", this, icon.html());\n                        }\n                    },\n                    \n                    lang : {\n                        toolbar : {\n                            file : \"上传文件\",\n                            testIcon : \"自定义按钮testIcon\",  // 自定义按钮的提示文本，即title属性\n                            testIcon2 : \"自定义按钮testIcon2\",  \n                            undo : \"撤销 (Ctrl+Z)\"\n                        }\n                    },\n\n                    onload : function(){\n                        $(\"[type=\\\"file\\\"]\").bind(\"change\", function(){\n                            alert($(this).val());\n                            testEditor.cm.replaceSelection($(this).val());\n                            console.log($(this).val(), testEditor);\n                        });\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/define-plugin.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Define extention plugins for Editor.md - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Define extention plugins for Editor.md</h1> \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">[TOC]\n\n### Define plugin\n\n#### Plugin directory\n\n    editor.md/\n        plugins/\n            plugin-name/\n                ....\n\n#### Example\n\n```javascript\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar $ = jQuery;           // if using module loader(Require.js/Sea.js).\n\n\t\texports.customMethod = function() {\n\t\t    //....\n\t\t};\n\n\t\texports.fn.youPluginName = function() {\n\t\t    /*\n\t\t\tvar _this       = this; // this == the current instance object of Editor.md\n\t\t\tvar lang        = this.lang;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\n\t\t\tcm.focus();\n            */\n\n\t\t\t//....\n\t\t};\n\n\t};\n\n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    {\n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n```\n\n#### Usage plugin\n\n```html\n&lt;script src=\"../plugins/you-plugin-name/you-plugin-name.js\"&gt;&lt;/script&gt;\n&lt;script&gt;\n    editormd.customMethod();\n\n    var testEditor = editormd(\"test-editormd\", {\n        path   : '../lib/',\n        onload : function() {\n            this.youPluginName();\n            this.pluginA();\n            this.executePlugin(\"somePluginName\", \"you-plugin-name/you-plugin-name\"); // load and execute plugin\n        }\n    });\n\n    // or\n    $(\"#btn\").click(function(){\n        testEditor.youPluginName();\n    });\n&lt;/script&gt;\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            editormd.fn.customMethod = function() {\n                console.log(\"customMethod\", this);\n            };\n            \n            editormd.fn.pluginA = function() {\n                console.log(\"pluginA\", this);\n            };\n            \n            $(function() {\n                editormd.methodOne = function(){\n                    console.log(\"editormd.methodOne\");\n                };\n                \n                editormd.loadPlugin(\"../plugins/test-plugin/test-plugin\", function(){\n                    editormd.testPlugin();\n                });\n                \n                editormd.loadPlugin(\"../plugins/image-dialog/image-dialog\", function(){\n                \n                    testEditor = editormd(\"test-editormd\", {\n                        width  : \"90%\",\n                        height : 720,\n                        path   : '../lib/',\n                        onload : function() {\n                            this.customMethod();\n                            testEditor.imageDialog();\n                            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\"); // load and execute plugin\n                            this.pluginA();\n                        }\n                    }); // execute plugin\n                });\n                \n                editormd.methodOne();\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/delay-renderer-preview.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Delay Rerender & Preview - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Delay Rerender & Preview</h1>\n                <p>P.S. If you input the content too much and too fast, You can setting the delay value. </p>\n                <p>P.S. 适用于输入内容太多太快的情形，但要是一个合理的值，不然会显得预览太慢。打字慢会相对显得慢，打字快时则相对显得快。</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Setting\n\n    {\n        delay : 300 // Uint : ms, default value is 300, and this example is set value 1000\n    }\n\n\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                \n                $.get(\"test.md\", function(md) {\n                    testEditor = editormd(\"test-editormd\", {\n                        width              : \"90%\",\n                        height             : 640,\n                        path               : \"../lib/\",\n                        delay              : 1000,\n                        appendMarkdown     : md,\n                        codeFold           : true,\n                        saveHTMLToTextarea : true,\n                        searchReplace      : true,\n                        htmlDecode         : \"style,script,iframe\",\n                        emoji              : true,\n                        taskList           : true,\n                        tex                : true,\n                        flowChart          : true,\n                        sequenceDiagram    : true\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/dynamic-create-editormd.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>动态创建 Editor.md - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>动态创建 Editor.md</h1>\n                <p>Dynamic create Editor.md</p>\n                <br/>\n                <div class=\"btns\" style=\"margin:0;\">\n                    <button id=\"create-btn\">动态创建一个 Editor.md</button>\n                    <button id=\"remove-btn\">移除 Editor.md</button>\n                </div>\n            </header>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script> \n        <script type=\"text/javascript\">\n            var testEditormd;\n            \n            $(function() {                \n                $(\"#create-btn\").click(function(){                    \n\t\t\t\t\t$.getScript(\"../editormd.js\", function() {\n                        $(\"#layout\").append(\"<div id=\\\"test-editormd\\\"></div>\");\n                        \n                        testEditormd = editormd(\"test-editormd\", {\n                            width: \"90%\",\n                            height: 640,\n                            markdown : \"### 动态创建 Editor.md\\r\\n\\r\\nDynamic create Editor.md\",\n                            path : '../lib/'\n                        });\n\t\t\t\t\t});\n                });  \n                \n                $(\"#remove-btn\").click(function() {\n                    testEditormd.editor.remove();\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/emoji.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Emoji - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Emoji 表情</h1>\n                <p>Supports:</p>\n                <ul style=\"margin: 10px 0 0 18px;\">\n                    <li>Github emoji : <a href=\"http://www.emoji-cheat-sheet.com/\" target=\"_blank\">http://www.emoji-cheat-sheet.com/</a></li>\n                    <li>Twitter Emoji(Twemoji) : <a href=\"http://twitter.github.io/twemoji/preview.html\" target=\"_blank\">http://twitter.github.io/twemoji/preview.html</a></li>\n                    <li>FontAwesome icon font emoji : <a href=\"http://fortawesome.github.io/Font-Awesome/icons/\" target=\"_blank\">http://fortawesome.github.io/Font-Awesome/icons/</a></li>\n                    <li>Editor.md logo icon font emoji</li>\n                </ul>\n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">### Emoji 表情 :smiley:\n\n[TOC]\n\n### Emoji\n\nEmoji cheat sheet for Campfire and GitHub.\n\n[http://www.emoji-cheat-sheet.com/](http://www.emoji-cheat-sheet.com/)\n\n**Usage:**\n\n    :emoji-name:\n    \n**Examples:**\n\n:heart: :smiley: :+1: :-1: :black_large_square: :waxing_gibbous_moon: :moon: :crescent_moon:\n\n### Twitter Emoji (Twemoji)\n\n**Usage:**\n\n    :tw-xxxx:\n    \n**Examples:**\n\n:tw-1f504: :tw-30-20e3: :tw-31-20e3: :tw-32-20e3: :tw-33-20e3: :tw-34-20e3: :tw-35-20e3: :tw-36-20e3: :tw-37-20e3: :tw-38-20e3: :tw-39-20e3: :tw-1f51f:\n\n[http://twitter.github.io/twemoji/preview.html](http://twitter.github.io/twemoji/preview.html)\n\n### Fortawesome icons\n\n[http://fortawesome.github.io/Font-Awesome/icons/](http://fortawesome.github.io/Font-Awesome/icons/)\n\n**Usage:**\n\n    :fa-xxxx:\n    \n**Examples:**\n\n:fa-wifi: :fa-twitter: :fa-google-plus: :fa-git-square: :fa-github-alt: :fa-external-link-square:\n\n### Editor.md logos\n\n**Usage:**\n\n    :editormd-logo:\n    :editormd-logo-1x:\n    ...\n    :editormd-logo-8x:\n    \n**Examples:**\n\n:editormd-logo: :editormd-logo-1x: :editormd-logo-2x: :editormd-logo-3x: :editormd-logo-4x: :editormd-logo-5x: :editormd-logo-6x: :editormd-logo-7x: :editormd-logo-8x:\n\n### Mixed tests\n\n&gt; Blockquotes :star:\n\n@pandao dasfsadfasdf:fa-edit: :warning: :smiley:dsafsdfsad\\:fdsfdf\\:f dfdf:   :fa-save::fa-star:  :fa-truck:\n**fdfasd:smiley:dsfsdfsfd** ~~fsdfds:smiley:dfsdfsdf :fa-info:~~ @pandao\n\n:fa-weixin: :fa-qq: :fa-weibo: :fa-tencent-weibo: :fa-github: :fa-git:\n\n*dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf*\n\n___Emphasis :fa-gear: Italic:smiley:___  __Emphasis:smiley:__\n \n# H1 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-star:\n## H2 dsfd:fa-star:fsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-star:\n### H3 dsfdfsfd@pandao :smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf @pandao\n#### H4 dsfdfsfd@pandao :smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf\n##### H5 dsfdfsfd:smiley:dsfsfd @pandao sfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf\n###### H6 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-star:dsfsdf\n\n[:smiley:](http://www.emoji-cheat-sheet.com/ \"link + emoji\") link + emoji\n \n- dafs@pandao sdfsdaf:smiley:dfsdfsdf\n- dafssdfsdaf:smiley:dfsdfsdf    @pandao  \n    - dafssdfsdaf:smiley:dfsdfsdf\n    - dafss:fa-truck:dfsdaf:smiley:dfsd @pandao fsdf\n- dafssd:  :fa-truck:fsdaf:smiley:dfsdfsdf :fa-star::  :fa-truck:\n    + dafssdfsdaf:smiley:dfsdfsdf @pandao\n    + dafs@pandao s:fa-truck:dfsdaf:smiley:dfsdfsdf\n\n\n1. :smiley:第一行:fa-truck:fsdaf:smiley:dfs@pandao dfsdf :fa-save::  :fa-truck:\n    - dafssdfsdaf:smiley:dfsdfsdf @pandao\n    - dafss:fa-truck:dfsdaf:smiley:dfsdfsdf\n2. :smiley:第二行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-star::  :fa-truck:\n3. 第三行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-save::  :fa-truck:\n\n&gt; Blockquotes @pandao\n\n&gt; dd:smiley:引用文本(Blockquotes:smiley:)fdasfad :fa-star:: dfd :fa-truck: @pandao\n\n#### Datetime test\n\n02:21:47  \n\n2015-03-12 02:21:47  \n\n### In table\n\n|:100: First Header  | Second:smiley: Header:smiley: |\n| ------------- | ------------- |\n| Content:fa-truck: Cell  | :smiley:Content Cell :smiley: |\n| Con:fa-truck:tent Cell:bangbang:  | Content Cell dfsdfsdf :fa-star: :dfdf  :fa-truck: |\n\n### Editor.md logo emoji\n\n:fa-heart:fasdfsdfsfddffd:editormd-logo: :editormd-logo: :editormd-logo-4x:\n\n    dfasfasdfasdf:bangbang:\n\nThis is an H1 :editormd-logo-4x: @pandao\n=============\n\n@pandao This  :fa-save::  :fa-truck:is an H2 :100:\n-------------\n\n### GFM task lists  :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and <del>tags</del> supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item;\n    - [ ] :smiley: this is an incomplete item [test link](#);\n    - [ ] :smiley: this is an incomplete item [test link](#);\n\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n\n                // You can custom Emoji's graphics files url path\n                editormd.emoji     = {\n                    path  : \"http://www.emoji-cheat-sheet.com/graphics/emojis/\",\n                    ext   : \".png\"\n                };\n    \n                // Twitter Emoji (Twemoji)  graphics files url path    \n                editormd.twemoji = {\n                    path : \"http://twemoji.maxcdn.com/72x72/\",\n                    ext  : \".png\"\n                };\n                \n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    toc : true,\n                    \n                    emoji : true,       // Support Github emoji, Twitter Emoji(Twemoji), fontAwesome, Editor.md logo emojis.\n                    \n                    taskList : true,\n                    path   : '../lib/'\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/extends.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Expanded Editor.md - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Expanded Editor.md</h1>\n                <p>Expanded of member methods and properties</p>\n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">### Expanded Editor.md\n\n```javascript\nvar testEditor;\n\nfunction EditormdExtend() {\n\n    this.extend(\"methodC\", function() {\n        console.log(\"methodC\");\n    });\n\n    // or\n    testEditor.extend(\"methodA\", function() {\n        console.log(\"methodA\");\n    });\n\n    // one by one setting\n    this.set(\"propertyA\", \"propertyA\");\n    this.set(\"methodE\", function() {\n        console.log(\"mothodE\", this);\n    });\n\n    // mutil\n    this.extend({\n        propertyA : \"propertyAAAA\", // override, you can override other default method.\n        propertyB : \"propertyB\",\n        methodD : function() {\n            console.log(\"methodD\");\n        }\n    });\n\n    this.methodB = function() {\n        console.log(\"methodB\");\n    };\n\n    testEditor.methodA();\n    testEditor.methodB();\n    this.methodC();\n    this.methodE();\n    editormd.methodOne();\n\n    console.log(this, this.propertyA);\n}\n\neditormd.fn.customMethod = function(){\n    console.log(\"customMethod\", this);\n};\n\n$(function() {\n    editormd.methodOne = function(){\n        console.log(\"editormd.methodOne\");\n    };\n\n    testEditor = editormd(\"test-editormd\", {\n        width  : \"90%\",\n        height : 720,\n        path   : '../lib/',\n        onload : function() {\n            this.customMethod();\n            $.proxy(EditormdExtend, this)();\n        }\n    });\n\n    editormd.methodOne();\n});\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            function EditormdExtend() {\n\n                this.extend(\"methodC\", function() {\n                    console.log(\"methodC\");\n                });\n\n                // or\n                testEditor.extend(\"methodA\", function() {\n                    console.log(\"methodA\");\n                });\n\n                // one by one setting\n                this.set(\"propertyA\", \"propertyA\");\n                this.set(\"methodE\", function() {\n                    console.log(\"mothodE\", this);\n                });\n\n                // mutil\n                this.extend({\n                    propertyA : \"propertyAAAA\", // override, you can override other default method.\n                    propertyB : \"propertyB\",\n                    methodD : function() {\n                        console.log(\"methodD\");\n                    }\n                });\n\n                this.methodB = function() {\n                    console.log(\"methodB\");\n                };\n\n                testEditor.methodA();\n                testEditor.methodB();\n                this.methodC();\n                this.methodE();\n                editormd.methodOne();\n\n                console.log(this, this.propertyA);\n            }\n            \n            editormd.fn.customMethod = function() {\n                console.log(\"customMethod\", this);\n            };\n            \n            $(function() {\n                editormd.methodOne = function() {\n                    console.log(\"editormd.methodOne\");\n                };\n                \n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onload : function() {\n                        this.customMethod();\n                        $.proxy(EditormdExtend, this)();\n                    }\n                });\n                \n                editormd.methodOne();\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/external-use.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>External use - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>External use</h1> \n                <p>External use of toolbar handlers / modal dialog</p>\n            </header>\n            <div class=\"btns\">\n                <button id=\"undo\">Undo</button>\n                <button id=\"open-link-dialog\">Open link dialog</button>\n                <button id=\"insert-bold\">Insert Bold</button>\n                <button id=\"insert-h6\">Insert Heading 6</button>\n                <button id=\"insert-inline-code\">Insert Inline code</button>\n                <button id=\"open-image-dialog\">Open image dialog</button>\n                <button id=\"open-help-dialog\">Open help dialog</button>\n                <button id=\"open-html-entities-dialog\">Open html entities dialog</button>\n            </div>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">[TOC]\n\n### External use of toolbar handlers / modal dialog\n\n```javascript \ntestEditor = editormd(\"test-editormd\", {\n    width  : \"90%\",\n    height : 720,\n    path   : '../lib/'\n}); \n\n// the first method\n$(\"#undo\").bind('click', function() {\n    $.proxy(testEditor.toolbarHandlers.undo, testEditor)();\n});\n\n// the Second method : using manually loaded dialog plugin\n// &lt;script src=\"../plugins/html-entities/html-entities.js\"&gt;&lt;/script&gt;\n$(\"#open-html-entities-dialog\").bind('click', function() {\n    testEditor.htmlEntities();\n});\n\n// using toolbar dialog plugin\n$(\"#open-link-dialog\").bind('click', function() {\n    $.proxy(testEditor.toolbarHandlers.link, testEditor)();\n});\n\n// or\n$(\"#open-image-dialog\").bind('click', function(){\n    // load and execute plugin\n    testEditor.executePlugin(\"imageDialog\", \"../plugins/image-dialog/image-dialog\");\n});\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        \n        <!-- manually load dialog plugin -->\n        <script src=\"../plugins/html-entities-dialog/html-entities-dialog.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {             \n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/'\n                }); \n                \n                // the first method\n                $(\"#undo\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.undo, testEditor)();\n                });\n                \n                // the Second method : using manually loaded dialog plugin\n                $(\"#open-html-entities-dialog\").bind('click', function() {\n                    testEditor.htmlEntitiesDialog();\n                });\n                \n                $(\"#insert-bold\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.bold, testEditor)();\n                    testEditor.focus();\n                });\n                \n                $(\"#insert-h6\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.h6, testEditor)();\n                    testEditor.focus();\n                });\n                \n                $(\"#insert-inline-code\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.code, testEditor)();\n                    testEditor.focus();\n                });                \n                \n                $(\"#open-help-dialog\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.help, testEditor)();\n                });\n                \n                // using toolbar dialog plugin\n                $(\"#open-link-dialog\").bind('click', function() {\n                    $.proxy(testEditor.toolbarHandlers.link, testEditor)();\n                });\n                \n                // or\n                $(\"#open-image-dialog\").bind('click', function(){\n                    testEditor.executePlugin(\"imageDialog\", \"../plugins/image-dialog/image-dialog\"); // load and execute plugin\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/flowchart.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>FlowChart - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>FlowChart 流程图</h1>\n                <p>Based on flowchart.js：<a href=\"http://adrai.github.io/flowchart.js/\" target=\"_blank\">http://adrai.github.io/flowchart.js/</a></p>        \n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Using FlowChart\n\nsetting:\n\n    {\n        flowChart : true\n    }\n\n#### Example\n\n```flow\nst=>start: User login\nop=>operation: Operation\ncond=>condition: Successful Yes or No?\ne=>end: Into admin\n\nst->op->cond\ncond(yes)->e\ncond(no)->op\n```</textarea>\n            </div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {       \n                var testEditor = editormd(\"test-editormd\", {\n\t\t\t\t\twidth: \"90%\",\n\t\t\t\t\theight: 640,\n\t\t\t\t\tpath : '../lib/',\n\t\t\t\t\tflowChart : true\n\t\t\t\t});\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/form-get-value.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Form get textarea value - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>表单取值</h1>   \n                <p>Form get textarea value.</p>     \n            </header>\n            <form method=\"post\" action=\"http://editormd.ipandao.com/php/post.php\">\n                <div id=\"test-editormd\">\n                    <!-- Custom textarea name attribute <textarea style=\"display:none;\" name=\"test-textarea-name\"> -->\n                    <textarea style=\"display:none;\">#### Get value\n\n每个 Editor.md 的 ID 元素下都有一个保存 Markdown 源码的 Textarea，你也可以通过设置开启另一个保存 HTML 源码的 Textarea，可以按需要获取相应的值，如下：\n\n```html\n&lt;div class=\"editormd\" id=\"$id\"&gt;\n    &lt;textarea class=\"editormd-markdown-textarea\" name=\"$id-markdown-doc\"&gt;&lt;/textarea&gt;\n\n    &lt;!-- html textarea 需要开启配置项 saveHTMLToTextarea == true --&gt;\n    &lt;textarea class=\"editormd-html-textarea\" name=\"$id-html-code\"&gt;&lt;/textarea&gt;\n&lt;/div&gt;\n```\n\n#### Example\n\n```javascript\nvar testEditor = editormd(\"test-editormd\", {\n    width  : \"90%\",\n    height : 640,\n    path   : \"../lib/\",\n    saveHTMLToTextarea : true\n});\n\ntestEditor.getMarkdown();       // 获取 Markdown 源码\ntestEditor.getHTML();           // 获取 Textarea 保存的 HTML 源码\ntestEditor.getPreviewedHTML();  // 获取预览窗口里的 HTML，在开启 watch 且没有开启 saveHTMLToTextarea 时使用\n```\n\n#### Backend get form value\n\n假设编辑器 ID 为 `test-editormd`，以 PHP 为例：\n\n```php\n<?php\n    header(\"Content-Type:text/html; charset=utf-8\");\n\n    if (isset($_POST['submit'])) {\n        echo \"<pre>\";\n        echo htmlspecialchars($_POST[\"test-editormd-markdown-doc\"]);\n        echo \"<br/><br/>\";\n        echo htmlspecialchars($_POST[\"test-editormd-html-code\"]);\n        echo \"</pre>\";\n    }\n?>\n```\n\n</textarea>\n                </div>\n                <div style=\"width:90%;margin: 10px auto;\">\n                    <input type=\"submit\" name=\"submit\" value=\"提交表单 Submit\" style=\"padding: 5px;\" /> \n                </div>               \n            </form>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {\n                $.get(\"./test.md\", function(md) {\n                    var testEditor = editormd(\"test-editormd\", {\n                        width  : \"90%\",\n                        height : 640,\n                        path   : \"../lib/\",\n                        appendMarkdown : md,\n                        saveHTMLToTextarea : true\n                    });\n                });\n\n                //testEditor.getMarkdown();       // 获取 Markdown 源码\n                //testEditor.getHTML();           // 获取 Textarea 保存的 HTML 源码\n                //testEditor.getPreviewedHTML();  // 获取预览窗口里的 HTML，在开启 watch 且没有开启 saveHTMLToTextarea 时使用\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/full.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Full example - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />   \n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>            \n            /*.editormd-preview-theme-dark {\n                color: #777;\n                background:#2C2827;\n            }\n            \n            .editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc {\n                background:#fff;\n                border:none;\n            }\n            \n            .editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc h1{\n                border-color:#ddd;\n            }\n            \n            .editormd-preview-theme-dark .markdown-body h1,\n            .editormd-preview-theme-dark .markdown-body h2,\n            .editormd-preview-theme-dark .markdown-body hr {\n                border-color: #222;\n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container  blockquote {\n                color: #555;\n                border-color: #333;\n                background: #222;\n                padding: 0.5em;\n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container abbr {\n                background:#ff9900;\n                color: #fff;\n                padding: 1px 3px;\n                border-radius: 3px; \n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container code {\n                background: #5A9600;\n                color: #fff;\n                border: none;\n                padding: 1px 3px;\n                border-radius: 3px; \n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container table {\n                border: none;\n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container .fa-emoji {\n                color: #B4BF42;\n            }\n            \n            .editormd-preview-theme-dark .editormd-preview-container .katex {\n                color: #FEC93F;\n            }\n            \n            .editormd-preview-theme-dark [class*=editormd-logo] {\n                color: #2196F3;\n            }\n            \n            .editormd-preview-theme-dark .sequence-diagram text {\n                fill: #fff;\n            }\n            \n            .editormd-preview-theme-dark .sequence-diagram rect, \n            .editormd-preview-theme-dark .sequence-diagram path {\n                color:#fff;\n                fill : #64D1CB;\n                stroke : #64D1CB;\n            }\n            \n            .editormd-preview-theme-dark .flowchart rect, \n            .editormd-preview-theme-dark .flowchart path {\n                stroke : #A6C6FF;\n            }\n            \n            .editormd-preview-theme-dark .flowchart rect {\n                fill: #A6C6FF;\n            }\n            \n            .editormd-preview-theme-dark .flowchart text {\n                fill: #5879B4;\n            }*/\n        </style>     \n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>完整示例</h1>\n                <p>Full example</p>\n                <ul style=\"margin: 10px 0 0 18px;\">\n                    <li>Enable HTML tags decode</li>\n                    <li>Enable TeX, Flowchart, Sequence Diagram, Emoji, FontAwesome, Task lists</li>\n                    <li>Enable Image upload</li>\n                    <li>Enable [TOCM], Search Replace, Code fold</li>\n                </ul>            \n            </header>\n            <div class=\"btns\">\n                <button id=\"goto-line-btn\">Goto line 90</button>\n                <button id=\"show-btn\">Show editor</button>\n                <button id=\"hide-btn\">Hide editor</button>\n                <button id=\"get-md-btn\">Get Markdown</button>\n                <button id=\"get-html-btn\">Get HTML</button>\n                <button id=\"watch-btn\">Watch</button>\n                <button id=\"unwatch-btn\">Unwatch</button>\n                <button id=\"preview-btn\">Preview HTML (Press Shift + ESC cancel)</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press ESC cancel)</button>\n                <button id=\"show-toolbar-btn\">Show toolbar</button>\n                <button id=\"close-toolbar-btn\">Hide toolbar</button>\n                <button id=\"toc-menu-btn\">ToC Dropdown menu</button>\n                <button id=\"toc-default-btn\">ToC default</button>\n            </div>\n            <div id=\"test-editormd\"></div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                \n                $.get('test.md', function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width: \"90%\",\n                        height: 740,\n                        path : '../lib/',\n                        theme : \"dark\",\n                        previewTheme : \"dark\",\n                        editorTheme : \"pastel-on-dark\",\n                        markdown : md,\n                        codeFold : true,\n                        //syncScrolling : false,\n                        saveHTMLToTextarea : true,    // 保存 HTML 到 Textarea\n                        searchReplace : true,\n                        //watch : false,                // 关闭实时预览\n                        htmlDecode : \"style,script,iframe|on*\",            // 开启 HTML 标签解析，为了安全性，默认不开启    \n                        //toolbar  : false,             //关闭工具栏\n                        //previewCodeHighlight : false, // 关闭预览 HTML 的代码块高亮，默认开启\n                        emoji : true,\n                        taskList : true,\n                        tocm            : true,         // Using [TOCM]\n                        tex : true,                   // 开启科学公式TeX语言支持，默认关闭\n                        flowChart : true,             // 开启流程图支持，默认关闭\n                        sequenceDiagram : true,       // 开启时序/序列图支持，默认关闭,\n                        //dialogLockScreen : false,   // 设置弹出层对话框不锁屏，全局通用，默认为true\n                        //dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层，全局通用，默认为true\n                        //dialogDraggable : false,    // 设置弹出层对话框不可拖动，全局通用，默认为true\n                        //dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度，全局通用，默认值为0.1\n                        //dialogMaskBgColor : \"#000\", // 设置透明遮罩层的背景颜色，全局通用，默认为#fff\n                        imageUpload : true,\n                        imageFormats : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                        imageUploadURL : \"./php/upload.php\",\n                        onload : function() {\n                            console.log('onload', this);\n                            //this.fullscreen();\n                            //this.unwatch();\n                            //this.watch().fullscreen();\n\n                            //this.setMarkdown(\"#PHP\");\n                            //this.width(\"100%\");\n                            //this.height(480);\n                            //this.resize(\"100%\", 640);\n                        }\n                    });\n                });\n                \n                $(\"#goto-line-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(90);\n                });\n                \n                $(\"#show-btn\").bind('click', function(){\n                    testEditor.show();\n                });\n                \n                $(\"#hide-btn\").bind('click', function(){\n                    testEditor.hide();\n                });\n                \n                $(\"#get-md-btn\").bind('click', function(){\n                    alert(testEditor.getMarkdown());\n                });\n                \n                $(\"#get-html-btn\").bind('click', function() {\n                    alert(testEditor.getHTML());\n                });                \n                \n                $(\"#watch-btn\").bind('click', function() {\n                    testEditor.watch();\n                });                 \n                \n                $(\"#unwatch-btn\").bind('click', function() {\n                    testEditor.unwatch();\n                });              \n                \n                $(\"#preview-btn\").bind('click', function() {\n                    testEditor.previewing();\n                });\n                \n                $(\"#fullscreen-btn\").bind('click', function() {\n                    testEditor.fullscreen();\n                });\n                \n                $(\"#show-toolbar-btn\").bind('click', function() {\n                    testEditor.showToolbar();\n                });\n                \n                $(\"#close-toolbar-btn\").bind('click', function() {\n                    testEditor.hideToolbar();\n                });\n                \n                $(\"#toc-menu-btn\").click(function(){\n                    testEditor.config({\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents\",\n                    });\n                });\n                \n                $(\"#toc-default-btn\").click(function() {\n                    testEditor.config(\"tocDropdown\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/goto-line.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Goto line - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />   \n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />     \n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Goto line</h1>   \n            </header>\n            <div class=\"btns\">\n                <button id=\"goto-line-btn\">Goto line 90</button>\n                <button id=\"goto-line-150-btn\">Goto line 150</button>\n                <button id=\"goto-line-240-btn\">Goto line 240</button>\n                <button id=\"goto-line-300-btn\">Goto line 300</button>\n                <button id=\"goto-line-400-btn\">Goto line 400</button>\n                <button id=\"goto-first-line-btn\">Goto first line</button>\n                <button id=\"goto-last-line-btn\">Goto last line</button>\n            </div>\n            <div id=\"test-editormd\"></div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                \n                $.get(\"test.md\", function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width           : \"90%\",\n                        height          : 740,\n                        path            : \"../lib/\",\n                        markdown        : md,\n                        codeFold        : true,\n                        htmlDecode      : \"style,script,iframe\",\n                        tex             : true,\n                        emoji           : true,\n                        taskList        : true,\n                        flowChart       : true,\n                        sequenceDiagram : true,\n                        //gotoLine        : false  // disabled\n                    });\n                });\n                \n                $(\"#goto-line-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(90);\n                });\n                \n                $(\"#goto-line-150-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(150);\n                });\n                \n                $(\"#goto-line-240-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(240);\n                });\n                \n                $(\"#goto-line-300-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(300);\n                });\n                \n                $(\"#goto-line-400-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(400);\n                });\n                \n                $(\"#goto-first-line-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(\"first\");\n                    // or\n                    //testEditor.gotoLine(1);\n                });\n                \n                $(\"#goto-last-line-btn\").bind(\"click\", function(){\n                    testEditor.gotoLine(\"last\");\n                    // or\n                    //testEditor.gotoLine(testEditor.cm.lineCount());\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/html-preview-markdown-to-html-custom-toc-container.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>HTML Preview (markdown to html) - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.preview.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            body {padding: 40px;}\n            \n            #layout > header, .btns {\n                width: auto;\n            }\n            \n            #sidebar {\n                width: 400px;\n                height: 100%;\n                position: fixed;\n                top: 0;\n                right: 0;\n                overflow: hidden;\n                background: #fff;\n                z-index: 100;\n                padding: 18px; \n                border: 1px solid #ddd;\n                border-top: none;\n                border-bottom: none;\n            }\n            \n            #sidebar:hover {\n                overflow: auto;\n            }\n            \n            #sidebar h1 {\n                font-size: 16px;\n            }\n            \n            #custom-toc-container {\n                padding-left: 0;\n            }\n            \n            #test-editormd-view, #test-editormd-view2 {\n                padding-left: 0;\n                padding-right: 430px;\n                margin: 0;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Markdown转HTML的显示处理之自定义 ToC 容器</h1> \n                <p>即：非编辑情况下的HTML预览</p>\n                <p>HTML Preview (markdown to html and custom ToC container)</p>       \n            </header>\n            <div class=\"btns\">\n                <button onclick=\"location.href='./html-preview-markdown-to-html.html';\">返回 Back</button>\n            </div>\n            <div id=\"sidebar\">\n                <h1>Table of Contents</h1>\n                <div class=\"markdown-body editormd-preview-container\" id=\"custom-toc-container\">#custom-toc-container</div>\n            </div>\n            <div id=\"test-editormd-view\">\n               <textarea style=\"display:none;\" name=\"test-editormd-markdown-doc\">###Hello world!</textarea>               \n            </div>\n            <div id=\"test-editormd-view2\">\n                <textarea id=\"append-test\" style=\"display:none;\">\n\n###科学公式 TeX(KaTeX)\n                    \n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式，行内的$$E=mc^2$$公式。\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n                    \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n$$X^2 > Y$$\n\n#####上标和下标\n\n上标：X&lt;sup&gt;2&lt;/sup&gt;\n\n下标：O&lt;sub&gt;2&lt;/sub&gt;\n\n##### 代码块里包含的过滤标签及属性不会被过滤\n\n```html\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;iframe height=498 width=510 src=\"http://player.youku.com/embed/XMzA0MzIwMDgw\" frameborder=0 allowfullscreen&gt;&lt;/iframe&gt;\n```\n\n#####Style\n\n&lt;style&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n#####Script\n\n&lt;script&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;</textarea>          \n            </div>\n        </div>\n        <!-- <script src=\"js/zepto.min.js\"></script>\n\t\t<script>\t\t\n\t\t\tvar jQuery = Zepto;  // 为了避免修改flowChart.js和sequence-diagram.js的源码，所以使用Zepto.js时想支持flowChart/sequenceDiagram就得加上这一句\n\t\t</script> -->\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script src=\"../lib/prettify.min.js\"></script>\n        \n        <script src=\"../lib/raphael.min.js\"></script>\n        <script src=\"../lib/underscore.min.js\"></script>\n        <script src=\"../lib/sequence-diagram.min.js\"></script>\n        <script src=\"../lib/flowchart.min.js\"></script>\n        <script src=\"../lib/jquery.flowchart.min.js\"></script>\n\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditormdView, testEditormdView2;\n                \n                $.get(\"test.md\", function(markdown) {\n                    \n\t\t\t\t    testEditormdView = editormd.markdownToHTML(\"test-editormd-view\", {\n                        markdown        : markdown ,//+ \"\\r\\n\" + $(\"#append-test\").text(),\n                        //htmlDecode      : true,       // 开启 HTML 标签解析，为了安全性，默认不开启\n                        htmlDecode      : \"style,script,iframe\",  // you can filter tags decode\n                        //toc             : false,\n                        tocm            : true,    // Using [TOCM]\n                        tocContainer    : \"#custom-toc-container\", // 自定义 ToC 容器层\n                        //gfm             : false,\n                        //tocDropdown     : true,\n                        // markdownSourceCode : true, // 是否保留 Markdown 源码，即是否删除保存源码的 Textarea 标签\n                        emoji           : true,\n                        taskList        : true,\n                        tex             : true,  // 默认不解析\n                        flowChart       : true,  // 默认不解析\n                        sequenceDiagram : true,  // 默认不解析\n                    });\n                    \n                    //console.log(\"返回一个 jQuery 实例 =>\", testEditormdView);\n                    \n                    // 获取Markdown源码\n                    //console.log(testEditormdView.getMarkdown());\n                    \n                    //alert(testEditormdView.getMarkdown());\n                });\n                    \n                testEditormdView2 = editormd.markdownToHTML(\"test-editormd-view2\", {\n                    htmlDecode      : \"style,script,iframe\",  // you can filter tags decode\n                    emoji           : true,\n                    taskList        : true,\n                    tex             : true,  // 默认不解析\n                    flowChart       : true,  // 默认不解析\n                    sequenceDiagram : true,  // 默认不解析\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/html-preview-markdown-to-html.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>HTML Preview(markdown to html) - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.preview.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>            \n            .editormd-html-preview {\n                width: 90%;\n                margin: 0 auto;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Markdown转HTML的显示处理</h1> \n                <p>即：非编辑情况下的HTML预览</p>\n                <p>HTML Preview(markdown to html)</p>       \n            </header>\n            <div class=\"btns\">\n                <button onclick=\"location.href='./html-preview-markdown-to-html-custom-toc-container.html';\">将 ToC 移到自定义容器层</button>\n            </div>\n            <div id=\"test-editormd-view\">\n               <textarea style=\"display:none;\" name=\"test-editormd-markdown-doc\">###Hello world!</textarea>               \n            </div>\n            <div id=\"test-editormd-view2\">\n                <textarea id=\"append-test\" style=\"display:none;\">\n\n###科学公式 TeX(KaTeX)\n                    \n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式，行内的$$E=mc^2$$公式。\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n                    \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n$$X^2 > Y$$\n\n#####上标和下标\n\n上标：X&lt;sup&gt;2&lt;/sup&gt;\n\n下标：O&lt;sub&gt;2&lt;/sub&gt;\n\n##### 代码块里包含的过滤标签及属性不会被过滤\n\n```html\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;iframe height=498 width=510 src=\"http://player.youku.com/embed/XMzA0MzIwMDgw\" frameborder=0 allowfullscreen&gt;&lt;/iframe&gt;\n```\n\n#####Style\n\n&lt;style&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n#####Script\n\n&lt;script&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;</textarea>          \n            </div>\n        </div>\n        <!-- <script src=\"js/zepto.min.js\"></script>\n\t\t<script>\t\t\n\t\t\tvar jQuery = Zepto;  // 为了避免修改flowChart.js和sequence-diagram.js的源码，所以使用Zepto.js时想支持flowChart/sequenceDiagram就得加上这一句\n\t\t</script> -->\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script src=\"../lib/prettify.min.js\"></script>\n        \n        <script src=\"../lib/raphael.min.js\"></script>\n        <script src=\"../lib/underscore.min.js\"></script>\n        <script src=\"../lib/sequence-diagram.min.js\"></script>\n        <script src=\"../lib/flowchart.min.js\"></script>\n        <script src=\"../lib/jquery.flowchart.min.js\"></script>\n\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditormdView, testEditormdView2;\n                \n                $.get(\"test.md\", function(markdown) {\n                    \n\t\t\t\t    testEditormdView = editormd.markdownToHTML(\"test-editormd-view\", {\n                        markdown        : markdown ,//+ \"\\r\\n\" + $(\"#append-test\").text(),\n                        //htmlDecode      : true,       // 开启 HTML 标签解析，为了安全性，默认不开启\n                        htmlDecode      : \"style,script,iframe\",  // you can filter tags decode\n                        //toc             : false,\n                        tocm            : true,    // Using [TOCM]\n                        //tocContainer    : \"#custom-toc-container\", // 自定义 ToC 容器层\n                        //gfm             : false,\n                        //tocDropdown     : true,\n                        // markdownSourceCode : true, // 是否保留 Markdown 源码，即是否删除保存源码的 Textarea 标签\n                        emoji           : true,\n                        taskList        : true,\n                        tex             : true,  // 默认不解析\n                        flowChart       : true,  // 默认不解析\n                        sequenceDiagram : true,  // 默认不解析\n                    });\n                    \n                    //console.log(\"返回一个 jQuery 实例 =>\", testEditormdView);\n                    \n                    // 获取Markdown源码\n                    //console.log(testEditormdView.getMarkdown());\n                    \n                    //alert(testEditormdView.getMarkdown());\n                });\n                    \n                testEditormdView2 = editormd.markdownToHTML(\"test-editormd-view2\", {\n                    htmlDecode      : \"style,script,iframe\",  // you can filter tags decode\n                    emoji           : true,\n                    taskList        : true,\n                    tex             : true,  // 默认不解析\n                    flowChart       : true,  // 默认不解析\n                    sequenceDiagram : true,  // 默认不解析\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/html-tags-decode.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>识别和解析 HTML 标签 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>识别和解析HTML标签</h1>\n                <p>HTML tags (filter) decode, You can increase safety by filtering the danger label.</p>\n                <p>注：虽然此功能能极大地扩展 Markdown 语法，但也面临着安全上的风险，所以默认是不开启的。</p>\n                <p>Update: 可以通过设置 `settings.htmlDecode = \"style,script,iframe|on*\"`来实现过滤指定标签及属性的解析，提高安全性；</p>\n            </header>\n            <div class=\"btns\">\n                <button class=\"filter-btn\" exp=\"true\">Unfilter</button>\n                <button class=\"filter-btn\" exp=\"style,script,iframe|*\">Filter style,script,iframe|*</button>\n                <button class=\"filter-btn\" exp=\"style,script,iframe|on*\">Filter style,script,iframe|on*</button>\n                <button class=\"filter-btn\" exp=\"style,script,iframe|onclick,title,onmouseover,onmouseout,style\">Filter style,script,iframe|onclick,title,onmouseover,onmouseout,style</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### 开启识别和解析 HTML 标签\n\n配置项：\n\n    {\n        htmlDecode : true // Decode all html tags & attributes\n        // Filter tags/attributes expression : tagName,tagName,...|attrName,attrName,...\n        htmlDecode : \"style,script,iframe,sub,sup|on*\"  // Filter tags, and all on* attributes\n        //htmlDecode : \"style,script,iframe,sub,sup|*\"    // Filter tags, and all attributes\n        //htmlDecode : \"style,script,iframe,sub,sup,embed|onclick,title,onmouseover,onmouseout,style\" // Filter tags, and your custom attributes\n    }\n\n#### 示例\n\n##### 上标和下标\n\n上标：X&lt;sup&gt;2&lt;/sup&gt;\n\n下标：O&lt;sub&gt;2&lt;/sub&gt;\n\n##### 代码块里包含的过滤标签及属性不会被过滤\n\n```html\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;iframe height=498 width=510 src=\"http://player.youku.com/embed/XMzA0MzIwMDgw\" frameborder=0 allowfullscreen&gt;&lt;/iframe&gt;\n```\n\n##### Style\n\n&lt;style&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n&lt;style type=\"text/style\"&gt;\nbody{background:red;}\n&lt;/style&gt;\n\n##### Script\n\n&lt;script&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n&lt;script type=\"text/javscript\"&gt;\nalert(\"script\");\n&lt;/script&gt;\n\n##### Events\n\n&lt;div style=\"color:green;\" onclick=\"alert(1233);\" title=\"div xxxxx\"&gt;Events&lt;/div&gt;\n&lt;div style=\"color:red;\" contenteditable onclick=\"alert(1233);\" onmouseover=\"alert(1233);\" onmouseout=\"alert(1233);\" title=\"div xxxxx\"&gt;Events&lt;/div&gt;\n\n##### 插入Flash\n\n&lt;embed src=\"http://player.youku.com/player.php/sid/XMzA0MzIwMDgw/v.swf\" allowFullScreen=\"true\" quality=\"high\" width=\"480\" height=\"400\" align=\"middle\" allowScriptAccess=\"always\" type=\"application/x-shockwave-flash\"&gt;&lt;/embed&gt;\n\n##### 插入视频\n\n李健《最好不相见》\n\n&lt;iframe height=498 width=510 src=\"http://player.youku.com/embed/XMzA0MzIwMDgw\" frameborder=0 allowfullscreen&gt;&lt;/iframe&gt;</textarea>\n            </div>\n        </div>\n\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 720,\n                    path : '../lib/',\n                    htmlDecode : true,   // Decode all html tags & attributes\n                    // Expression : tagName,tagName,...|attrName,attrName,...\n                    //htmlDecode : \"style,script,iframe,sub,sup|on*\"  // Filter tags, and all on* attributes\n                    //htmlDecode : \"style,script,iframe,sub,sup|*\"    // Filter tags, and all attributes\n                    //htmlDecode : \"style,script,iframe,sub,sup,embed|onclick,title,onmouseover,onmouseout,style\" // Filter tags, and your custom attributes\n                });\n                \n                $(\".filter-btn\").click(function(){\n                    testEditor.config(\"htmlDecode\", $(this).attr(\"exp\"));\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/image-cross-domain-upload.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>图片跨域上传示例 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\" style=\"height: 2000px;background: #f6f6f6;\">\n            <header>\n                <h1>图片跨域上传示例</h1>\n                <p>Image cross-domain upload example.</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    imageUpload       : true,\n    imageFormats      : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n    imageUploadURL    : \"http://xxxxxxx/editor.md/examples/php/cross-domain-upload.php?test=dfdf\",\n    crossDomainUpload : true,\n    uploadCallbackURL : \"http://xxxxxx/upload_callback.html?test=dfdf\"\n}\n```\n\n#### 跨域上传原理\n\n利用 iframe 来实现，A 站 POST 到 B 站，B 站处理上传后再跳转回到 A 站的 callback 页面，callback 页面此时在 iframe 内（即同域下），再通过 window.parent 就可以操作父页面的任意元素了。\n\n#### 跨域上传示例 PHP 版\n\n当前域名：blog.xxx.com/post.php\n\n```html\n&lt;form method=\"post\" target=\"upload-iframe\" enctype=\"multipart/form-data\" action=\"http://static.xxx.com/uploader.php?callback=http://blog.xxx.com/upload-callback.html\"&gt;\n    &lt;input type=\"file\" name=\"file\" accept=\"image/*\" /&gt;\n    &lt;input type=\"submit\" id=\"submit\" value=\"开始上传\" /&gt;\n&lt;/form&gt;\n&lt;iframe name=\"upload-iframe\" style=\"display:none;\" frameborder=\"0\"&gt;&lt;/iframe&gt;  \n```     \n\n图片服务器：static.xxx.com/uploader.php\n\n```php\n&lt;?php\nheader(\"Access-Control-Allow-Origin: *\"); // Setting allow domian name\n\n$file = 'uploads/' . $_FILES['file']['name'];\n// 详细过程略\nmove_uploaded_file($_FILES['file']['tmp_name'], $file);\n\n$location = $_GET['callback'].'?success=1&message=xxxxxxx&url=http://static.xxx.com/2015/02/15'.$file.'&temp='.date('ymdhis');\n\nheader('location:' . $location);\nexit;\n?&gt;\n```\n\n当前域名：blog.xxx.com/upload-callback.html\n\n```html\n&lt;script type=\"text/javascript\"&gt; \n    var query = {};\n    var urlParams = window.location.search.split('?')[1];\n    urlParams = urlParams.split(\"&\");\n\n    for (var i = 0; i&lt; urlParams.length; i++) {\n        var param = urlParams[i].split(\"=\"); \n        query[param[0]] = param[1]; \n    }\n\n    var imageDialog = window.parent.document.getElementById(query['dialog_id']);\n    //console.log(imageDialog, window.parent.document, window.parent, query);\n&lt;/script&gt;\n```</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width             : \"90%\",\n                    height            : 640,\n                    markdown          : \"\",\n                    path              : '../lib/',\n                    imageUpload       : true,\n                    imageFormats      : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                    imageUploadURL    : \"http://www.ipandao.com/editor.md/examples/php/cross-domain-upload.php?test=dfdf\",\n                    crossDomainUpload : true,\n                    uploadCallbackURL : \"http://localhost/editor.md/examples/php/upload_callback.html?test=dfdf\"\n                    \n                    /*\n                     跨域时，上传的图片服务器后台只需要返回一个跳转 URL 并跳转到原页面同域下的 callback 页面，结构如下：\n                     {\n                        success   : 0 | 1,   // 0 表示上传失败，1 表示上传成功\n                        message   : \"提示的信息，上传成功或上传失败及错误信息等。\",\n                        dialog_id : $_GET['dialog_id'],\n                        url       : \"远程图片地址\"    // 上传成功时才返回\n                     }\n                     */\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/image-upload.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>图片上传示例 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\" style=\"height: 2000px;background: #f6f6f6;\">\n            <header>\n                <h1>图片上传示例</h1>\n                <p>Image upload example</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    imageUpload    : false,\n    imageFormats   : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n    imageUploadURL : \"./php/upload.php\",\n}\n```\n\n#### JSON data\n\n```json\n{\n    success : 0 | 1,           // 0 表示上传失败，1 表示上传成功\n    message : \"提示的信息，上传成功或上传失败及错误信息等。\",\n    url     : \"图片地址\"        // 上传成功时才返回\n}\n```</textarea>\n        </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {                \n                var testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 640,\n                    markdown : \"\",\n                    path : '../lib/',\n                    //dialogLockScreen : false,   // 设置弹出层对话框不锁屏，全局通用，默认为 true\n                    //dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层，全局通用，默认为 true\n                    //dialogDraggable : false,    // 设置弹出层对话框不可拖动，全局通用，默认为 true\n                    //dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度，全局通用，默认值为 0.1\n                    //dialogMaskBgColor : \"#000\", // 设置透明遮罩层的背景颜色，全局通用，默认为 #fff\n                    imageUpload : true,\n                    imageFormats : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                    imageUploadURL : \"./php/upload.php?test=dfdf\",\n                    \n                    /*\n                     上传的后台只需要返回一个 JSON 数据，结构如下：\n                     {\n                        success : 0 | 1,           // 0 表示上传失败，1 表示上传成功\n                        message : \"提示的信息，上传成功或上传失败及错误信息等。\",\n                        url     : \"图片地址\"        // 上传成功时才返回\n                     }\n                     */\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n\t\t<style>\n            #layout {\n                padding-bottom: 100px;\n            }\n            \n            #header {\n                width: 100%;\n                color: #fff;\n                background: #2196F3;\n                padding: 60px 0;\n                text-align: center;\n                margin-bottom: 30px;\n            }\n            \n            a {\n                color: #2196F3;\n                text-decoration: none;\n            }\n            \n            #header h1 {\n                font-size: 45px; \n                font-weight: normal;\n            }\n            \n\t\t\tul { \n\t\t\t\twidth: 90%;\n                padding-bottom:30px;\n\t\t\t\tmargin: 0 auto;\n\t\t\t\tlist-style: none;\n\t\t\t}\n            \n            ul li {\n                width: 24%;\n                margin-bottom: 4px;\n                display: inline-block;\n            }\n            \n            ul li a {\n                color: #2196F3;\n                display: block;\n                padding: 4px 15px;\n                font-size: 14px;\n                text-align: left;\n                text-decoration: none;\n                -webkit-transition: all 300ms ease-out;\n                transition: all 300ms ease-out;\n            }\n            \n            ul li a span {\n                color: #999;\n                display: block;\n                padding-top: 3px;\n                font-size: 80%;\n            }\n            \n            ul li a:hover {\n                color: #fff;\n                background: #2196F3;\n                border-radius: 8px;\n            }\n            \n            ul li a:hover span {\n                color: #fff;\n            }\n            \n            .category, .footer {\n\t\t\t\twidth: 90%;\n                padding: 15px;\n                font-size: 18px;\n\t\t\t\tmargin: 15px auto 20px;\n                border-bottom: 1px solid #eee;\n            }\n            \n            .footer {\n                border: none;\n                border-top: 1px solid #eee;\n                font-size: 12px;\n                margin-top: 30px;\n                padding-top: 35px;\n                text-align: right;                \n            }\n            \n            .menu {\n                margin-top: 20px;\n                text-align: center;\n            }\n            \n            .menu a {\n                color: #fff;\n                display: inline-block;\n                text-decoration: none;\n                padding: 8px 15px;\n                border-radius: 5px;\n                -webkit-transition: background-color 300ms ease-out;\n                transition: background-color 300ms ease-out;\n            }\n            .menu a:hover {\n                background-color: #1A8BE8;\n            }\n            \n            [href=\"#top\"] {\n                color: #999;\n                float: right;\n                padding-top: 10px;\n                display: block;\n                text-decoration: none;\n                font-size: 12px;\n                font-weight: normal;\n            }\n            \n            [href=\"#top\"] .fa {\n                margin-left: 8px;\n                font-size: 1.4em;\n            }\n\t\t</style>\n    </head>\n    <body>\n        <a name=\"top\"></a>\n        <div id=\"layout\">\n            <div id=\"header\">\n                <h1><i class=\"editormd-logo editormd-logo-3x\"></i></h1>\n                <h1>Editor.md Examples</h1>\n                <p>Open source online markdown editor.</p>\n                <div class=\"menu\">\n                    <a href=\"#basic\">Basic</a>\n                    <a href=\"#customs\">自定义 Customs</a>\n                    <a href=\"#markdown-extras\">Markdown Extras</a>\n                    <a href=\"#image-upload\">Image Upload</a>\n                    <a href=\"#events\">事件处理 Events handle</a>\n                </div>\n            </div>\n\t\t\t<h1 class=\"category\"><a name=\"basic\"></a>Basic</h1>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./simple.html\">简单示例 <span>Simple example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./full.html\">完整示例 <span>Full example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./use-requirejs.html\">使用 Require.js <span>Using Require.js</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./use-seajs.html\">使用 Sea.js <span>Using Seajs</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./use-zepto.html\">使用 Zepto.js <span>Using Zepto.js</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./form-get-value.html\">表单取值 <span>Get textarea value in form</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./html-preview-markdown-to-html.html\">非编辑时 Markdown 转 HTML 的显示处理 <span>Markdown to HTML for preview</span></a>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<h1 class=\"category\">\n\t\t\t    <a href=\"#top\">TOP<i class=\"fa fa-angle-up\"></i></a>\n\t\t\t    <a name=\"customs\"></a>自定义 Customs\n\t\t\t</h1>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./custom-toolbar.html\">自定义工具栏 <span>Custom toolbar</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./multi-languages.html\">多语言 <span>Multi-languages for l18n</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./auto-height.html\">自动高度 <span>Auto height</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./toolbar-auto-fixed.html\">工具栏自动固定定位的开启与禁用 <span>Enable / disable toolbar auto fixed position.</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./dynamic-create-editormd.html\">动态创建 Editor.md <span>Dynamic create Editor.md</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./delay-renderer-preview.html\">延迟解析和预览 <span>Delay Rerender & Preview</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./multi-editormd.html\">多个 Editor.md 并存 <span>Multi Editor.md</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./goto-line.html\">跳转到指定的行 <span>Goto line</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./readonly.html\">只读模式 <span>Read only mode</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./themes.html\">自定义编辑器样式主题 <span>Setting / change editor style theme</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./search-replace.html\">搜索替换功能 <span>Search / Replace</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./code-fold.html\">代码折叠功能 <span>Code fold</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./custom-keyboard-shortcuts.html\">自定义键盘快捷键 <span>Custom keyboard shortcuts</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./define-plugin.html\">自定义插件 <span>Define extention plugins for Editor.md</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./manually-load-modules.html\">手动加载依赖模块文件 <span>Manually loading dependent module files.</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./sync-scrolling.html\">双向、单向或禁用同步滚动 <span>Bisync, Single, Disabled sync scrolling</span></a>\n\t\t\t\t<li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./external-use.html\">外部使用工具栏的操作方法和对话框 <span>External use of toolbar handlers / modal dialog</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./resettings.html\">加载完成且创建成功之后的重配置 <span>loaded resettings</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./change-mode.html\">变身为代码编辑器 <span>Change mode become to the code editor</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./set-get-replace-selection.html\">插入字符 / 设置和获取光标位置 / 设置、获取和替换选中的文本 <span>Insert value & Set / Get cursor & Set / Get / Replace selection</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./extends.html\">扩展成员方法和属性 <span>Expanded of member methods and properties</span></a>\n\t\t\t\t</li>\n            </ul>\n\t\t\t<h1 class=\"category\">\n\t\t\t    <a href=\"#top\">TOP<i class=\"fa fa-angle-up\"></i></a>\n\t\t\t    <a name=\"markdown-extras\"></a>Markdown Extras\n\t\t\t</h1>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./html-tags-decode.html\">识别和（过滤）解析 HTML 标签 <span>HTML tags (fliter) decode</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./toc.html\">自动生成目录(下拉菜单) ToC / ToCM <span>Table of Contents (ToC)</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./task-lists.html\">GFM 任务列表 <span>Github Flavored Markdown (GFM) Task Lists</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./@links.html\">@链接 <span>@links</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./emoji.html\">Emoji / Twemoji 表情 / Font Awesome 图标 <span>Emoji / Twemoji / Font Awesome icons</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./katex.html\">科学公式 TeX <span>TeX / LaTeX (Based on KaTeX)</span> </a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./flowchart.html\">流程图 <span>FlowChart example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./sequence-diagram.html\">时序图 / 序列图 <span>Sequence Diagram example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./page-break.html\">分页符 <span>Page break</span></a>\n\t\t\t\t</li>\n            </ul>\n\t\t\t<h1 class=\"category\">\n\t\t\t    <a href=\"#top\">TOP<i class=\"fa fa-angle-up\"></i></a>\n\t\t\t    <a name=\"image-upload\"></a>Image Upload\n\t\t\t</h1>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./image-upload.html\">图片上传 <span>Image upload</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./image-cross-domain-upload.html\">图片跨域上传 <span>Image cross-domain upload</span></a>\n\t\t\t\t</li>\n            </ul>\n\t\t\t<h1 class=\"category\">\n\t\t\t    <a href=\"#top\">TOP<i class=\"fa fa-angle-up\"></i></a>\n\t\t\t    <a name=\"events\"></a>事件处理 Events handle\n\t\t\t</h1>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./on-off.html\">事件注册和解除方法 <span>On / Off (bind/unbind) event handle</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./onload.html\">加载完成事件处理 <span>Onload event handle example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./onchange.html\">变化监听处理 <span>Onchange event handle example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a href=\"./onfullscreen.html\">全屏事件处理 <span>Onfullscreen / onfullscreenExit event handle example</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./onresize.html\">Onresize<span>Onresize event handle</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./onpreviewing-onpreviewed.html\">Onpreviewing / Onpreviewed<span>Onpreviewing / Onpreviewed event handle</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./onwatch-onunwatch.html\">Onwatch / Onunwatch<span>Onwatch / Onunwatch event handle</span></a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t    <a href=\"./onscroll-onpreviewscroll.html\">Onscroll / Onpreviewscroll<span>Onscroll / Onpreviewscroll event handle</span></a>\n\t\t\t\t</li>\n\t\t\t</ul>\n            <div class=\"clear\"></div>\n            <div class=\"footer\">\n                <p>\n                    <a href=\"https://pandao.github.io/editor.md/\" target=\"_blank\" title=\"Editor.md\">\n                        <img src=\"https://pandao.github.io/editor.md/images/logos/editormd-logo-64x64.png\"/>\n                    </a>\n                </p>\n                <p>Copyright &copy; 2015 <a href=\"https://pandao.github.io/editor.md/\" target=\"_blank\" title=\"Editor.md\">Editor.md</a></p>\n                <p>Open source online markdown editor. <a href=\"https://github.com/pandao/editor.md\" class=\"fa fa-github fa-lg\" target=\"_blank\" title=\"Editor.md in Github\"></a></p>\n                <p>The <a href=\"https://github.com/pandao/editor.md/blob/master/LICENSE\" target=\"_blank\">MIT</a> license</p>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script>\n            var clickOrTouch = function(touchType) {\n                touchType = touchType || \"touchend\";\n                var eventType = \"click\";\n\n                try {\n                    document.createEvent(\"TouchEvent\");\n                    eventType = touchType;\n                } catch(e) {}\n\n                return eventType;\n            };\n            \n            $(function() {\n        \n                $(\"a[href*=#]\").bind(clickOrTouch(), function() {\n                    if (location.pathname.replace(/^\\//, \"\") == this.pathname.replace(/^\\//, \"\") && location.hostname == this.hostname) \n                    {\n                        var hash   = this.hash;\n                        var target = $(hash);\n                        target     = target.length && target || $(\"[name=\" + hash.slice(1) + \"]\");\n\n                        if (target.length) \n                        {                            \n                            $(\"html, body\").animate({\n                                scrollTop: target.offset().top\n                            }, 800);\n\n                            return false;\n                        }\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/js/sea.js",
    "content": "/*! Sea.js 2.3.0 | seajs.org/LICENSE.md */\n!function(a,b){function c(a){return function(b){return{}.toString.call(b)==\"[object \"+a+\"]\"}}function d(){return z++}function e(a){return a.match(C)[0]}function f(a){for(a=a.replace(D,\"/\"),a=a.replace(F,\"$1/\");a.match(E);)a=a.replace(E,\"/\");return a}function g(a){var b=a.length-1,c=a.charAt(b);return\"#\"===c?a.substring(0,b):\".js\"===a.substring(b-2)||a.indexOf(\"?\")>0||\"/\"===c?a:a+\".js\"}function h(a){var b=u.alias;return b&&w(b[a])?b[a]:a}function i(a){var b=u.paths,c;return b&&(c=a.match(G))&&w(b[c[1]])&&(a=b[c[1]]+c[2]),a}function j(a){var b=u.vars;return b&&a.indexOf(\"{\")>-1&&(a=a.replace(H,function(a,c){return w(b[c])?b[c]:a})),a}function k(a){var b=u.map,c=a;if(b)for(var d=0,e=b.length;e>d;d++){var f=b[d];if(c=y(f)?f(a)||a:a.replace(f[0],f[1]),c!==a)break}return c}function l(a,b){var c,d=a.charAt(0);if(I.test(a))c=a;else if(\".\"===d)c=f((b?e(b):u.cwd)+a);else if(\"/\"===d){var g=u.cwd.match(J);c=g?g[0]+a.substring(1):a}else c=u.base+a;return 0===c.indexOf(\"//\")&&(c=location.protocol+c),c}function m(a,b){if(!a)return\"\";a=h(a),a=i(a),a=j(a),a=g(a);var c=l(a,b);return c=k(c)}function n(a){return a.hasAttribute?a.src:a.getAttribute(\"src\",4)}function o(a,b,c){var d=K.createElement(\"script\");if(c){var e=y(c)?c(a):c;e&&(d.charset=e)}p(d,b,a),d.async=!0,d.src=a,R=d,Q?P.insertBefore(d,Q):P.appendChild(d),R=null}function p(a,b,c){function d(){a.onload=a.onerror=a.onreadystatechange=null,u.debug||P.removeChild(a),a=null,b()}var e=\"onload\"in a;e?(a.onload=d,a.onerror=function(){B(\"error\",{uri:c,node:a}),d()}):a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&d()}}function q(){if(R)return R;if(S&&\"interactive\"===S.readyState)return S;for(var a=P.getElementsByTagName(\"script\"),b=a.length-1;b>=0;b--){var c=a[b];if(\"interactive\"===c.readyState)return S=c}}function r(a){var b=[];return a.replace(U,\"\").replace(T,function(a,c,d){d&&b.push(d)}),b}function s(a,b){this.uri=a,this.dependencies=b||[],this.exports=null,this.status=0,this._waitings={},this._remain=0}if(!a.seajs){var t=a.seajs={version:\"2.3.0\"},u=t.data={},v=c(\"Object\"),w=c(\"String\"),x=Array.isArray||c(\"Array\"),y=c(\"Function\"),z=0,A=u.events={};t.on=function(a,b){var c=A[a]||(A[a]=[]);return c.push(b),t},t.off=function(a,b){if(!a&&!b)return A=u.events={},t;var c=A[a];if(c)if(b)for(var d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);else delete A[a];return t};var B=t.emit=function(a,b){var c=A[a],d;if(c){c=c.slice();for(var e=0,f=c.length;f>e;e++)c[e](b)}return t},C=/[^?#]*\\//,D=/\\/\\.\\//g,E=/\\/[^/]+\\/\\.\\.\\//,F=/([^:/])\\/+\\//g,G=/^([^/:]+)(\\/.+)$/,H=/{([^{]+)}/g,I=/^\\/\\/.|:\\//,J=/^.*?\\/\\/.*?\\//,K=document,L=location.href&&0!==location.href.indexOf(\"about:\")?e(location.href):\"\",M=K.scripts,N=K.getElementById(\"seajsnode\")||M[M.length-1],O=e(n(N)||L);t.resolve=m;var P=K.head||K.getElementsByTagName(\"head\")[0]||K.documentElement,Q=P.getElementsByTagName(\"base\")[0],R,S;t.request=o;var T=/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|\\/\\*[\\S\\s]*?\\*\\/|\\/(?:\\\\\\/|[^\\/\\r\\n])+\\/(?=[^\\/])|\\/\\/.*|\\.\\s*require|(?:^|[^$])\\brequire\\s*\\(\\s*([\"'])(.+?)\\1\\s*\\)/g,U=/\\\\\\\\/g,V=t.cache={},W,X={},Y={},Z={},$=s.STATUS={FETCHING:1,SAVED:2,LOADING:3,LOADED:4,EXECUTING:5,EXECUTED:6};s.prototype.resolve=function(){for(var a=this,b=a.dependencies,c=[],d=0,e=b.length;e>d;d++)c[d]=s.resolve(b[d],a.uri);return c},s.prototype.load=function(){var a=this;if(!(a.status>=$.LOADING)){a.status=$.LOADING;var c=a.resolve();B(\"load\",c);for(var d=a._remain=c.length,e,f=0;d>f;f++)e=s.get(c[f]),e.status<$.LOADED?e._waitings[a.uri]=(e._waitings[a.uri]||0)+1:a._remain--;if(0===a._remain)return a.onload(),b;var g={};for(f=0;d>f;f++)e=V[c[f]],e.status<$.FETCHING?e.fetch(g):e.status===$.SAVED&&e.load();for(var h in g)g.hasOwnProperty(h)&&g[h]()}},s.prototype.onload=function(){var a=this;a.status=$.LOADED,a.callback&&a.callback();var b=a._waitings,c,d;for(c in b)b.hasOwnProperty(c)&&(d=V[c],d._remain-=b[c],0===d._remain&&d.onload());delete a._waitings,delete a._remain},s.prototype.fetch=function(a){function c(){t.request(g.requestUri,g.onRequest,g.charset)}function d(){delete X[h],Y[h]=!0,W&&(s.save(f,W),W=null);var a,b=Z[h];for(delete Z[h];a=b.shift();)a.load()}var e=this,f=e.uri;e.status=$.FETCHING;var g={uri:f};B(\"fetch\",g);var h=g.requestUri||f;return!h||Y[h]?(e.load(),b):X[h]?(Z[h].push(e),b):(X[h]=!0,Z[h]=[e],B(\"request\",g={uri:f,requestUri:h,onRequest:d,charset:u.charset}),g.requested||(a?a[g.requestUri]=c:c()),b)},s.prototype.exec=function(){function a(b){return s.get(a.resolve(b)).exec()}var c=this;if(c.status>=$.EXECUTING)return c.exports;c.status=$.EXECUTING;var e=c.uri;a.resolve=function(a){return s.resolve(a,e)},a.async=function(b,c){return s.use(b,c,e+\"_async_\"+d()),a};var f=c.factory,g=y(f)?f(a,c.exports={},c):f;return g===b&&(g=c.exports),delete c.factory,c.exports=g,c.status=$.EXECUTED,B(\"exec\",c),g},s.resolve=function(a,b){var c={id:a,refUri:b};return B(\"resolve\",c),c.uri||t.resolve(c.id,b)},s.define=function(a,c,d){var e=arguments.length;1===e?(d=a,a=b):2===e&&(d=c,x(a)?(c=a,a=b):c=b),!x(c)&&y(d)&&(c=r(\"\"+d));var f={id:a,uri:s.resolve(a),deps:c,factory:d};if(!f.uri&&K.attachEvent){var g=q();g&&(f.uri=g.src)}B(\"define\",f),f.uri?s.save(f.uri,f):W=f},s.save=function(a,b){var c=s.get(a);c.status<$.SAVED&&(c.id=b.id||a,c.dependencies=b.deps||[],c.factory=b.factory,c.status=$.SAVED,B(\"save\",c))},s.get=function(a,b){return V[a]||(V[a]=new s(a,b))},s.use=function(b,c,d){var e=s.get(d,x(b)?b:[b]);e.callback=function(){for(var b=[],d=e.resolve(),f=0,g=d.length;g>f;f++)b[f]=V[d[f]].exec();c&&c.apply(a,b),delete e.callback},e.load()},t.use=function(a,b){return s.use(a,b,u.cwd+\"_use_\"+d()),t},s.define.cmd={},a.define=s.define,t.Module=s,u.fetchedList=Y,u.cid=d,t.require=function(a){var b=s.get(s.resolve(a));return b.status<$.EXECUTING&&(b.onload(),b.exec()),b.exports},u.base=O,u.dir=O,u.cwd=L,u.charset=\"utf-8\",t.config=function(a){for(var b in a){var c=a[b],d=u[b];if(d&&v(d))for(var e in c)d[e]=c[e];else x(d)?c=d.concat(c):\"base\"===b&&(\"/\"!==c.slice(-1)&&(c+=\"/\"),c=l(c)),u[b]=c}return B(\"config\",a),t}}}(this);\n"
  },
  {
    "path": "public/static/home/editormd/examples/js/seajs-main.js",
    "content": "define(function(require){\n\tvar $ = require(\"jquery\");\n\tvar editormd = require(\"editormd\");\n    \n    require(\"../../src/js/languages/en\"); // 加载英语语言包\n    \n    console.log($, editormd);\n                \n    $.get(\"./test.md\", function(md){\n        testEditor = editormd(\"test-editormd\", {\n            width: \"90%\",\n            height: 640,\n            path : '../lib/',\n            markdown : md,\n            //toolbar  : false,             //关闭工具栏\n            htmlDecode : true,            // 开启HTML标签解析，为了安全性，默认不开启\n            tex : true,                   // 开启科学公式TeX语言支持，默认关闭\n            //previewCodeHighlight : false,  // 关闭预览窗口的代码高亮，默认开启\n            flowChart : true,              // 疑似Sea.js与Raphael.js有冲突，必须先加载Raphael.js，Editor.md才能在Sea.js下正常进行；\n            sequenceDiagram : true,        // 同上\n            onload : function() {\n                console.log('onload', this);\n                //this.fullscreen();\n                //this.unwatch();\n                //this.watch().fullscreen();\n\n                //this.setMarkdown(\"#PHP\");\n                //this.width(\"100%\");\n                //this.height(480);\n                //this.resize(\"100%\", 640);\n            }\n        });\n    });\n\n    $(\"#show-btn\").bind('click', function(){\n        testEditor.show();\n    });\n\n    $(\"#hide-btn\").bind('click', function(){\n        testEditor.hide();\n    });\n\n    $(\"#get-md-btn\").bind('click', function(){\n        alert(testEditor.getMarkdown());\n    });\n\n    $(\"#get-html-btn\").bind('click', function() {\n        alert(testEditor.getHTML());\n    });                \n\n    $(\"#watch-btn\").bind('click', function() {\n        testEditor.watch();\n    });                 \n\n    $(\"#unwatch-btn\").bind('click', function() {\n        testEditor.unwatch();\n    });              \n\n    $(\"#preview-btn\").bind('click', function() {\n        testEditor.previewing();\n    });\n\n    $(\"#fullscreen-btn\").bind('click', function() {\n        testEditor.fullscreen();\n    });\n\n    $(\"#show-toolbar-btn\").bind('click', function() {\n        testEditor.showToolbar();\n    });\n\n    $(\"#close-toolbar-btn\").bind('click', function() {\n        testEditor.hideToolbar();\n    });\n});"
  },
  {
    "path": "public/static/home/editormd/examples/katex.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Tex 科学公式语言 (TeX/LaTeX) - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Tex 科学公式语言 (TeX/LaTeX)</h1>\n\t\t\t\t<p>Based on KaTeX.js：<a href=\"http://khan.github.io/KaTeX/\" target=\"_blank\">http://khan.github.io/KaTeX/</a></p>\n                <p>P.S. Default using CloudFlare KaTeX's CDN. (注：默认使用 CloudFlare 的 CDN，有时加载速度会比较慢，可自定义加载地址。)</p>\n                <br/>\n                <p><a href=\"https://jsperf.com/katex-vs-mathjax\" target=\"_blank\">KaTeX vs MathJax</a></p>   \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">[TOC]\n\n#### Setting\n\n    {\n        tex  : true\n    }\n\n#### Custom KaTeX source URL\n\n```javascript\n// Default using CloudFlare KaTeX's CDN\n// You can custom url\neditormd.katexURL = {\n    js  : \"your url\",  // default: //cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\n    css : \"your url\"   // default: //cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\n};\n```\n\n#### Examples\n\n##### 行内的公式 Inline\n \n$$E=mc^2$$\n\nInline 行内的公式 $$E=mc^2$$ 行内的公式，行内的$$E=mc^2$$公式。\n\n$$c = \\\\pm\\\\sqrt{a^2 + b^2}$$\n\n$$x &gt; y$$\n\n$$f(x) = x^2$$\n\n$$\\alpha = \\sqrt{1-e^2}$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n             \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n$$\\\\dfrac{-b \\\\pm \\\\sqrt{b^2 - 4ac}}{2a}$$\n\n$$f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi$$\n\n$$\\displaystyle \\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\cdots} } } }$$\n\n$$\\displaystyle \\left( \\sum\\_{k=1}^n a\\_k b\\_k \\right)^2 \\leq \\left( \\sum\\_{k=1}^n a\\_k^2 \\right) \\left( \\sum\\_{k=1}^n b\\_k^2 \\right)$$\n\n$$a^2$$\n\n$$a^{2+2}$$\n\n$$a_2$$\n\n$${x_2}^3$$\n\n$$x_2^3$$\n\n$$10^{10^{8}}$$\n\n$$a_{i,j}$$\n\n$$_nP_k$$\n\n$$c = \\pm\\sqrt{a^2 + b^2}$$\n\n$$\\frac{1}{2}=0.5$$\n\n$$\\dfrac{k}{k-1} = 0.5$$\n\n$$\\dbinom{n}{k} \\binom{n}{k}$$\n\n$$\\oint_C x^3\\, dx + 4y^2\\, dy$$\n\n$$\\bigcap_1^n p   \\bigcup_1^k p$$\n\n$$e^{i \\pi} + 1 = 0$$\n\n$$\\left ( \\frac{1}{2} \\right )$$\n\n$$x_{1,2}=\\frac{-b\\pm\\sqrt{\\color{Red}b^2-4ac}}{2a}$$\n\n$${\\color{Blue}x^2}+{\\color{YellowOrange}2x}-{\\color{OliveGreen}1}$$\n\n$$\\textstyle \\sum_{k=1}^N k^2$$\n\n$$\\dfrac{ \\tfrac{1}{2}[1-(\\tfrac{1}{2})^n] }{ 1-\\tfrac{1}{2} } = s_n$$\n\n$$\\binom{n}{k}$$\n\n$$0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots$$\n\n$$\\sum_{k=1}^N k^2$$\n\n$$\\textstyle \\sum_{k=1}^N k^2$$\n\n$$\\prod_{i=1}^N x_i$$\n\n$$\\textstyle \\prod_{i=1}^N x_i$$\n\n$$\\coprod_{i=1}^N x_i$$\n\n$$\\textstyle \\coprod_{i=1}^N x_i$$\n\n$$\\int_{1}^{3}\\frac{e^3/x}{x^2}\\, dx$$\n\n$$\\int_C x^3\\, dx + 4y^2\\, dy$$\n\n$${}_1^2\\!\\Omega_3^4$$\n\n##### 多行公式 Multi line\n\n> \\`\\`\\`math or \\`\\`\\`latex or \\`\\`\\`katex\n\n```math\nf(x) = \\int_{-\\infty}^\\infty\n    \\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\n    \\,d\\xi\n```\n\n```math\n\\displaystyle\n\\left( \\sum\\_{k=1}^n a\\_k b\\_k \\right)^2\n\\leq\n\\left( \\sum\\_{k=1}^n a\\_k^2 \\right)\n\\left( \\sum\\_{k=1}^n b\\_k^2 \\right)\n```\n\n```math\n\\dfrac{ \n    \\tfrac{1}{2}[1-(\\tfrac{1}{2})^n] }\n    { 1-\\tfrac{1}{2} } = s_n\n```\n\n```katex\n\\displaystyle \n    \\frac{1}{\n        \\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\n        \\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {\n        1+\\frac{e^{-6\\pi}}\n        {1+\\frac{e^{-8\\pi}}\n         {1+\\cdots} }\n        } \n    }\n```\n\n```latex\nf(x) = \\int_{-\\infty}^\\infty\n    \\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\n    \\,d\\xi\n```\n\n#### KaTeX vs MathJax\n\n[https://jsperf.com/katex-vs-mathjax](https://jsperf.com/katex-vs-mathjax \"KaTeX vs MathJax\")\n\n</textarea>\n            </div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 640,\n                    path : '../lib/',\n                    tex  : true\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/manually-load-modules.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Manually load modules - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>手动加载模式 Manually load modules</h1>\n                <p>在这种模式下，可以同步使用 Editor.md 实例的成员方法。</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Manually load modules exmaple\n\n```html\n&lt;script src=\"js/jquery.min.js\"&gt;&lt;/script&gt;\n&lt;link rel=\"stylesheet\" href=\"../lib/codemirror/codemirror.min.css\" /&gt;\n&lt;link rel=\"stylesheet\" href=\"../lib/codemirror/addon/dialog/dialog.css\" /&gt;\n&lt;link rel=\"stylesheet\" href=\"../lib/codemirror/addon/search/matchesonscrollbar.css\" /&gt;\n&lt;script src=\"../lib/codemirror/codemirror.min.js\"&gt;&lt;/script&gt;\n\n&lt;!-- Or, You can also one by one load CodeMirror modes & addons. --&gt;\n&lt;script src=\"../lib/codemirror/addons.min.js\"&gt;&lt;/script&gt;\n&lt;script src=\"../lib/codemirror/modes.min.js\"&gt;&lt;/script&gt;\n\n&lt;script src=\"../lib/marked.min.js\"&gt;&lt;/script&gt;\n\n&lt;!-- if setting previewCodeHighlight == true --&gt;\n&lt;script src=\"../lib/prettify.min.js\"&gt;&lt;/script&gt;\n\n&lt;!-- if setting flowchart == true, or sequence-diagram == true --&gt;\n&lt;script src=\"../lib/raphael.min.js\"&gt;&lt;/script&gt;\n&lt;script src=\"../lib/underscore.min.js\"&gt;&lt;/script&gt;\n&lt;script src=\"../lib/sequence-diagram.min.js\"&gt;&lt;/script&gt;\n&lt;script src=\"../lib/flowchart.min.js\"&gt;&lt;/script&gt;\n&lt;script src=\"../lib/jquery.flowchart.min.js\"&gt;&lt;/script&gt;\n\n<!-- if setting tex == true -->\n&lt;link rel=\"stylesheet\" href=\"../css/katex.min.css\" /&gt;\n&lt;script src=\"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.1.1/katex.min.js\"&gt;&lt;/script&gt;\n\n&lt;link rel=\"stylesheet\" href=\"../css/editormd.css\" /&gt;\n&lt;script src=\"../editormd.js\"&gt;&lt;/script&gt;\n&lt;script type=\"text/javascript\"&gt;\n\t$(function() {\n\t\tvar testEditor = editormd(\"test-editormd\", {\n\t\t\twidth  : \"90%\",\n\t\t\theight : 720,\n\t\t\tautoLoadModules : false  // Manually load modules\n\t\t});\n\n\t\ttestEditor.fullscreen(); // In Manually load mode, You can be synchronized using the member method.\n\t});\n&lt;/script&gt;\n```\n\n#### KaTeX test\n\n$$E = mc^2$$\n</textarea>\n            </div>\n        </div>\n\n        <script src=\"js/jquery.min.js\"></script>\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/codemirror.min.css\" />\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/dialog/dialog.css\" />\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/search/matchesonscrollbar.css\" />\n        <script src=\"../lib/codemirror/codemirror.min.js\"></script>\n\n        <!-- Or, You can also one by one load CodeMirror modes & addons. -->\n        <script src=\"../lib/codemirror/addons.min.js\"></script>\n        <script src=\"../lib/codemirror/modes.min.js\"></script>\n\n        <script src=\"../lib/marked.min.js\"></script>\n\n        <!-- if setting previewCodeHighlight == true -->\n        <script src=\"../lib/prettify.min.js\"></script>\n\n        <!-- if setting flowchart == true, or sequence-diagram == true -->\n        <script src=\"../lib/raphael.min.js\"></script>\n        <script src=\"../lib/underscore.min.js\"></script>\n        <script src=\"../lib/sequence-diagram.min.js\"></script>\n        <script src=\"../lib/flowchart.min.js\"></script>\n        <script src=\"../lib/jquery.flowchart.min.js\"></script>\n\n        <!-- if setting tex == true -->\n        <link rel=\"stylesheet\" href=\"../css/katex.min.css\" />\n        <script src=\"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.1.1/katex.min.js\"></script>\n\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width           : \"90%\",\n                    height          : 720,\n                    path            : \"../lib/\",\n                    tex             : true,\n                    autoLoadModules : false  // Enable manually load modules\n                });\n\n                testEditor.fullscreen(); // This can be synchronized using the member method\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/multi-editormd.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Multi Editor.md - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>            \n            h3 {\n                width : 90%;\n                margin: 0 auto 15px;\n            }\n            \n            .editormd {\n                margin: 20px auto;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Multi Editor.md</h1>\n                <p>多个 Editor.md 并存</p>\n                <br/>\n            </header>\n            <h3>Editor.md A</h3>\n            <div id=\"test-editormd\"></div>\n            <h3>Editor.md B</h3>\n            <div id=\"test-editormd2\"></div>\n            <h3>Editor.md C</h3>\n            <div id=\"test-editormd3\"></div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script> \n        <script src=\"../editormd.js\"></script> \n        <script type=\"text/javascript\">\n            var testEditormd, testEditormd2;\n            \n            $(function() {                        \n                testEditormd = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 480,\n                    markdown : \"#### Editor.md A\",\n                    path : '../lib/'\n                });\n\n                testEditormd2 = editormd(\"test-editormd2\", {\n                    width: \"90%\",\n                    height: 480,\n                    markdown : \"#### Editor.md B\",\n                    path : '../lib/'\n                });\n\n                testEditormd3 = editormd(\"test-editormd3\", {\n                    width: \"90%\",\n                    height: 480,\n                    markdown : \"#### Editor.md C\",\n                    path : '../lib/'\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/multi-languages.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>多语言支持 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>多语言支持（l18n）</h1> \n                <p>multi-languages for l18n.\n                    <select id=\"lang-select\">\n                        <option selected=\"selected\">Languages</option>\n                        <option value=\"en\">English (en)</option>\n                        <option value=\"zh-tw\">繁體中文 (zh-tw)</option>\n                        <option value=\"zh-cn\">简体中文 (zh-cn)</option>\n                    </select>\n                </p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">###多语言支持（l18n）\n\n目前支持三种语言：简体中文、繁體中文、English，默认为简体中文 (zh-cn default)。\n\n```html\n&lt;!-- English --&gt;\n&lt;script src=\"../dist/js/languages/en.js\"&gt;&lt;/script&gt;\n\n&lt;!-- 繁體中文 --&gt;\n&lt;script src=\"../dist/js/languages/zh-tw.js\"&gt;&lt;/script&gt;\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <!--<script src=\"../languages/en.js\"></script>\n        <script src=\"../languages/zh-tw.js\"></script> -->\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 640,\n                    emoji : true,\n                    path : '../lib/'\n                });\n                \n                //console.log(editormd.defaults.lang); \n                var lang = \"zh-cn\";\n                \n                // 动态加载语言包\n                // Dynamic load language package\n                $(\"#lang-select\").change(function() {\n                    var value = $(this).val();\n                    var path  = \"../languages/\";\n                    \n                    if (value == \"zh-cn\") \n                    {\n                        location.reload();\n                    } \n                    else\n                    {                    \n                        editormd.loadScript(path + value, function() {\n                            testEditor.lang = editormd.defaults.lang;\n                            \n                            // 只重建涉及语言包的部分，如工具栏、弹出对话框等\n                            testEditor.recreate();                \n                                    \n                            // 整个编辑器重建，预览HTML会重新生成，出现闪动\n                            //testEditor = editormd(\"test-editormd\", {\n                                //width: \"90%\",\n                                //height: 640,\n                                //path : '../lib/'\n                            //});\n\n                            lang = value;\n                            console.log(lang, value, editormd.defaults.lang);                        \n                        });\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/on-off.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>On / Off (bind/unbind) event handle - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>On / Off (bind/unbind) event handle</h1>\n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Example\n```javascript\n{\n    onscroll : function(event) {\n        console.clear();\n        console.log(\"onscroll =>\", this, this.id, this.settings, event);\n    },\n\n    onpreviewscroll : function(event) {\n        console.clear();\n        console.log(\"onpreviewscroll =>\", this, this.id, this.settings, event);\n    },\n\n    onload : function() {\n        this.off(\"previewscroll\"); // unbind before handle\n\n        // Override settings.onpreviewscroll\n        this.on(\"previewscroll\", function(){\n            console.clear();\n            console.log(\"on() => Override settings.onpreviewscroll =>\", this, this.id, event, (new Date).getTime());\n        });\n\n        // defined event bind\n        this.on(\"resize\", function(){\n            console.clear();\n            console.log(\"onresize =>\", this, this.id, event, (new Date).getTime());\n        });\n    }\n}\n\n// Or\neditor.on(\"resize\", function(){\n    // ...\n});\n\neditor.off(\"resize\");\n```\n\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                $.get(\"./test.md\", function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width    : \"90%\",\n                        height   : 720,\n                        appendMarkdown : md,\n                        path     : '../lib/',\n                        tex      : true,\n                        htmlDecode : true,\n                        flowChart : true,\n                        taskList  : true,\n                        sequenceDiagram : true,\n                        onscroll : function(event) {\n                            console.clear();\n                            console.log(\"onscroll =>\", this, this.id, this.settings, event);\n                        },\n                        onpreviewscroll : function(event) {\n                            console.clear();\n                            console.log(\"onpreviewscroll =>\", this, this.id, this.settings, event);\n                        },\n                        onload : function() {\n                            this.off(\"previewscroll\");\n                            \n                            // Override settings.onpreviewscroll\n                            this.on(\"previewscroll\", function(){\n                                console.clear();\n                                console.log(\"on() => Override settings.onpreviewscroll =>\", this, this.id, event, (new Date).getTime());\n                            });\n                            \n                            // defined event bind\n                            this.on(\"resize\", function(){\n                                console.clear();\n                                console.log(\"onresize =>\", this, this.id, event, (new Date).getTime());\n                            });\n                        }\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onchange.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onchange - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onchange event</h1>   \n                <p>Plaese press F12, open the develop tools.</p> \n                <p id=\"output\"></p>    \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    onchange : function() {\n        console.log(\"onchange =>\", this, this.id, this.settings, this.state);\n        // ....\n    }\n}\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onchange : function() {\n                        $(\"#output\").html(\"onchange : this.id =>\" + this.id + \", markdown =>\" + this.getValue());\n                        console.log(\"onchange =>\", this, this.id, this.settings, this.state);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onfullscreen.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onfullscreen & onfullscreenExit - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onfullscreen & onfullscreenExit event</h1>   \n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Setting\n\n```javascript\n{\n    onfullscreen : function() {\n        // alert(\"onfullscreen\");\n        // console.log(\"onfullscreen =>\", this, this.id, this.settings);\n    },\n\n    onfullscreenExit : function() {\n        // alert(\"onfullscreenExit\");\n        // console.log(\"onfullscreenExit =>\", this, this.id, this.settings);\n    }\n}\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {\n                var editor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onfullscreen : function() {\n                        alert(\"onfullscreen\");\n                        console.log(\"onfullscreen =>\", this, this.id, this.settings);\n                    },\n                    onfullscreenExit : function() {\n                        alert(\"onfullscreenExit\");\n                        console.log(\"onfullscreenExit =>\", this, this.id, this.settings);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onload.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onload - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onload event</h1>   \n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Setting\n\n```javascript\n{\n    onload : function() {\n        // alert(\"onload\");\n        // this.setMarkdown(\"### onloaded\");\n        // console.log(\"onload =>\", this, this.id, this.settings);\n    }\n}\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    //watch : false,\n                    //matchWordHighlight : \"onselected\",\n                    path   : '../lib/',\n                    onload : function() {\n                        //this.watch();\n                        //this.setMarkdown(\"###test onloaded\");\n                        //testEditor.setMarkdown(\"###Test onloaded\");\n                        alert(\"onloaded\");\n                        console.log(\"onloaded =>\", this, this.id, this.settings);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onpreviewing-onpreviewed.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onpreviewing / Onpreviewed - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            .editormd-preview-active {width: 80%;margin: 0 auto;}\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onpreviewing / Onpreviewed event handle</h1>\n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    onpreviewing : function() {\n        // console.log(\"onpreviewing =>\", this, this.id, this.settings);\n        // on previewing you can custom css .editormd-preview-active\n    },\n\n    onpreviewed : function() {\n        // console.log(\"onpreviewed =>\", this, this.id, this.settings);\n    }\n}\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onpreviewing : function() {\n                        console.log(\"onpreviewing =>\", this, this.id, this.settings);\n                    },\n                    onpreviewed : function() {\n                        console.log(\"onpreviewed =>\", this, this.id, this.settings);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onresize.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onresize - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onresize event handle</h1>\n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    onresize : function() {\n        // console.log(\"onresize =>\", this, this.id, this.settings);\n    }\n}\n```\n\n    state.loaded\n           > bind onresize event\n               > window.onresize, editormd watch/unwatch/fullscreen/fullscreenExit/toolbar show|hide\n                   > trigger onresize event handle</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onresize : function() {\n                        this.setMarkdown(\"state.loaded > bind onresize > window.onresize, editormd watch/unwatch/fullscreen/fullscreenExit/toolbar show|hide \" + (new Date).getTime());\n                        console.log(\"onresize =>\", this, this.id, this.settings);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onscroll-onpreviewscroll.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onscroll / Onpreviewscroll - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onscroll / Onpreviewscroll event handle</h1>\n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    onscroll : function(event) {\n        // console.clear();\n        // console.log(\"onscroll =>\", this, this.id, this.settings, event);\n        // ...\n    },\n\n    onpreviewscroll : function(event) {\n        // console.clear();\n        // console.log(\"onpreviewscroll =>\", this, this.id, this.settings, event);\n        // ...\n    }\n}\n```\n\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                $.get(\"./test.md\", function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width  : \"90%\",\n                        height : 720,\n                        appendMarkdown : md,\n                        path   : '../lib/',\n                        onscroll : function(event) {\n                            console.clear();\n                            console.log(\"onscroll =>\", this, this.id, this.settings, event);\n                        },\n                        onpreviewscroll : function(event) {\n                            console.clear();\n                            console.log(\"onpreviewscroll =>\", this, this.id, this.settings, event);\n                        }\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/onwatch-onunwatch.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Onwatch / Onunwatch - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Onwatch / Onunwatch event handle</h1>\n                <p>Plaese press F12, open the develop tools.</p>     \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Settings\n\n```javascript\n{\n    onwatch : function() {\n        // console.log(\"onwatch =>\", this, this.id, this.settings);\n    },\n\n    onunwatch : function() {\n        // console.log(\"onunwatch =>\", this, this.id, this.settings);\n    }\n}\n```\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                var testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    path   : '../lib/',\n                    onwatch : function() {\n                        console.log(\"onwatch =>\", this, this.id, this.settings);\n                    },\n                    onunwatch : function() {\n                        console.log(\"onunwatch =>\", this, this.id, this.settings);\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/page-break.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Page break - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Page break</h1>\n            </header>\n            <div class=\"btns\">\n                <button id=\"print-btn\">Print Test</button>\n                <button id=\"disabled-btn\">Disabled</button>\n                <button id=\"enabled-btn\">Enabled</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Syntax\n\n    [At least 8 equals]\n\n    [========]\n\n#### Disabled\n\n    {\n        pageBreak : false\n    }\n\n#### Examples\n\n[========]\n\n> page start\n\n#### Editor.md directory\n\n    editor.md/\n            lib/\n            css/\n            scss/\n            tests/\n            fonts/\n            images/\n            plugins/\n            examples/\n            languages/\n            editormd.js\n            ...\n\n> page end\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width   : \"90%\",\n                    height  : 720,\n                    path    : \"../lib/\"\n                });\n                \n                $(\"#print-btn\").click(function(){\n                    var html = testEditor.preview.html();\n                    \n                    document.write('<link rel=\"stylesheet\" href=\"css/style.css\" /><link rel=\"stylesheet\" href=\"../css/editormd.css\" />' + html);\n                    window.print();\n                });\n                \n                $(\"#disabled-btn\").click(function(){\n                    testEditor.config(\"pageBreak\", false);\n                });\n                \n                $(\"#enabled-btn\").click(function(){\n                    testEditor.config(\"pageBreak\", true);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/php/cross-domain-upload.php",
    "content": "<?php\n\n\t/*\n\t * PHP cross-domain upload demo for Editor.md\n     *\n     * @FileName: upload.php\n     * @Auther: Pandao\n     * @E-mail: pandao@vip.qq.com\n     * @CreateTime: 2015-02-15 19:12:11  \n     * @UpdateTime: 2015-02-15 20:47:52  \n     * Copyright@2015 Editor.md all right reserved.\n\t */\n\n    header(\"Content-Type:text/html; charset=utf-8\");\n    header(\"Access-Control-Allow-Origin: *\");\n\n    require(\"editormd.uploader.class.php\");\n\n    error_reporting(E_ALL & ~E_NOTICE);\n\t\n\t$path     = __DIR__ . DIRECTORY_SEPARATOR;\n\t$url      = dirname($_SERVER['PHP_SELF']) . '/';\n\t$savePath = realpath($path . '../uploads/') . DIRECTORY_SEPARATOR;\n\t$saveURL  = '//'. $_SERVER['SERVER_NAME'] . $url . '../uploads/';   // 本例是演示跨域上传所以加上$_SERVER['SERVER_NAME']\n    \n\t$formats  = array(\t\t\n\t\t'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'webp')\n\t);\n\n    $name        = 'editormd-image-file'; // file input name\n    $callbackUrl = $_GET['callback'];\n\n    if (isset($_FILES[$name]))\n    {        \n        $imageUploader = new EditorMdUploader($savePath, $saveURL, $formats['image'], false);  // Ymdhis表示按日期生成文件名，利用date()函数\n        \n        $imageUploader->config(array(\n            'maxSize' => 1024,        // 允许上传的最大文件大小，以KB为单位，默认值为1024\n            'cover'   => true         // 是否覆盖同名文件，默认为true\n        ));\n        \n        $imageUploader->redirect    = true;\n        $imageUploader->redirectURL = $callbackUrl . (empty(parse_url($callbackUrl)['query']) ? '?' : '&') . 'dialog_id=' . $_GET['dialog_id'] . '&temp=' . date('ymdhis');\n        \n        if ($imageUploader->upload($name))\n        {\n            $imageUploader->message('上传成功！', 1);\n        }\n        else\n        {\n            $imageUploader->message('上传失败！', 0);\n        }\n    }\n?>"
  },
  {
    "path": "public/static/home/editormd/examples/php/editormd.uploader.class.php",
    "content": "<?php\n\n   /**\n    *\n    * Editor.md PHP简易上传类（仅供演示用，生产环境使用还需谨慎考虑）\n    *\n    * @FileName: editormd.uploader.class.php\n    * @Auther: Pandao\n    * @E-mail: pandao@vip.qq.com\n    * @CreateTime: 2015-02-13 23:31:32\n    * @UpdateTime: 2015-06-02 15:36:23\n    * Copyright@2015 Editor.md all right reserved.\n    */\n\n    class EditorMdUploader\n    {\n        public $files;                          // $_FILES数组\n        public $fileExit;                       // 文件扩展名\n        public $saveName;                       // 最终保存的文件名\n        public $saveURL;                        // 最终保存URL地址\n        public $savePath;                       // 保存本地文件路径\n        public $randomLength   = '';            // 生成随机文件名的长度，当为日期时为日期的格式\n        public $randomNameType = 1;             // 生成随机的形式, NULL为保留原文件名, 1生成随机字符串, 2生成日期文件名\n        public $formats = array(                // 允许上传的文件格式\n            'gif', 'jpg', 'jpeg', 'png', 'bmp'\n        );\n        public $maxSize        = 1024;          // 最大上传文件大小，单位KB\n        public $cover          = true;          // 是否覆盖同名文件, 1覆盖,0不覆盖\n        public $redirect       = false;         // 是否进行URL跳转\n        public $redirectURL    = \"\";            // 上传成功或出错后要转到的URL        \n        public $errors = array(                 // 错误信息\n            'empty'      => '上传文件不能为空',\n            'format'     =>'上传的文件格式不符合规定',\n            'maxsize'    => '上传的文件太大',\n            'unwritable' => '保存目录不可写，请更改权限',\n            'not_exist'  => '保存目录不存在',\n            'same_file'  => '已经有相同的文件存在'\n        );\n\n        /**\n         * 构造函数，初始化对象\n         *\n         * @access  public\n         * @param   string          $savePath       最终保存的本地路径\n         * @param   string          $saveURL        最终保存的URL地址\n         * @param   string          $formats        允许上传的文件格式\n         * @param   Number          $randomNameType 是否生成随机文件名及形式\n         * @param   Intiger/string  $randomLength   生成随机文件名字符的长度\n         * @param   boolean         $cover          是否覆盖相同文件\n         * @param   Intiger         $maxSize        允许最大的上传文件大小，以KB为单位\n         * @return  viod\n         */\n        \n        public function __construct($savePath, $saveURL, $formats, $randomNameType = 1, $randomLength = '', $cover = true, $maxSize = 1024)\n        {\n            $this->savePath       = $savePath;\n            $this->saveURL        = $saveURL;\n            $this->formats        = $formats;\n            $this->maxSize        = $maxSize;\n            $this->cover          = $cover;\n            $this->randomNameType = $randomNameType;\n            $this->randomLength   = $randomLength;\n        }\n\n        /**\n         * 配置参数函数\n         *\n         * @access  public\n         * @param   array           $configs        配置项数组\n         * @return  void\n         */\n        \n        public function config($configs) \n        {\n            foreach($configs as $key => $value)\n            {\n                $this->$key = $value;\n            }       \n        }\n\n        /**\n         * 执行文件上传\n         *\n         * @access  public\n         * @param   string          $name           fileInput's name\n         * @return  boolean                         返回是否上传成功的布尔值\n         */\n\n        public function upload($name)\n        {            \n            if(empty($_FILES[$name]['name'])) //上传文件为空时\n            {\n               $this->message($this->errors['empty']);\n                \n                return false;\n            }\n            \n            $this->files = $_FILES[$name];\n            \n            if(!file_exists($this->savePath)) //目录不存在\n            {\n                $this->message($this->errors['not_exist']);\n                \n                return false;\n            }\n\n            if(!is_writable($this->savePath)) //目录不可写\n            {\n                $this->message($this->errors['unwritable']);\n                \n                return false;\n            }\n\n            $this->fileExt  = $this->getFileExt($this->files[\"name\"]); //取得扩展名\n            \n            $this->setSeveName();\n            \n            return $this->moveFile();\n        }\n\n        /**\n         * 检查并移动上传文件\n         *\n         * @access  private\n         * @return  boolean\n         */\n\n        private function moveFile()\n        {\n            $files = $this->files;\n            \n            if ($this->formats != \"\" && !in_array($this->fileExt, $this->formats))\n            {\n                $formats = implode(',', $this->formats);\n                $message = \"您上传的文件\" . $files[\"name\"] . \"是\" . $this->fileExt . \"格式的，系统不允许上传，您只能上传\" . $formats . \"格式的文件。\";\n                $this->message($message);\n                \n                return false;\n            }\n\n            if ($files[\"size\"] / 1024 > $this->maxSize)\n            {\n                $message = \"您上传的 \" . $files[\"name\"] . \"，文件大小超出了系统限定值\" . $this->maxSize . \" KB，不能上传。\";\n                $this->message($message);\n                \n                return false;\n            }\n\n            if (!$this->cover) //当不能覆盖时\n            {\n                if(file_exists($this->savePath.$this->saveName)) //有相同的文件存在\n                {\n                    $this->message($this->saveName . $this->errors['same_file']);\n                    \n                    return false;\n                }\n            }\n\n            if (!@move_uploaded_file($files[\"tmp_name\"], iconv(\"utf-8\", \"gbk\", $this->savePath . $this->saveName)))\n            {                \n                switch($files[\"errors\"])\n                {\n                    case '0':\n                        $message = \"文件上传成功\";\n                        break;\n                    \n                    case '1':\n                        $message = \"上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值\";\n                        break;\n                    \n                    case '2':\n                        $message = \"上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值\";\n                        break;\n                    \n                    case '3':\n                        $message = \"文件只有部分被上传\";\n                        break;\n                    \n                    case '4':\n                        $message = \"没有文件被上传\";\n                        break;\n                    \n                    case '6':\n                        $message = \"找不到临时目录\";\n                        break;\n                    \n                    case '7':\n                        $message = \"写文件到硬盘时出错\";\n                        break;\n                    \n                    case '8':\n                        $message = \"某个扩展停止了文件的上传\";\n                        break;\n                    \n                    case '999':\n                    default:\n                        $message = \"未知错误，请检查文件是否损坏、是否超大等原因。\";\n                        break;\n                }\n\n                $this->message($message);\n                \n                return false;\n            }\n            \n            @unlink($files[\"tmp_name\"]); //删除临时文件\n            \n            return true;\n        }\n\n        /**\n         * 生成随机文件名函数\n         *\n         * @access  private\n         * @return  string         $fileName      返回生成的文件名字符串\n         */\n\n        private function randomFileName()\n        {\n            if ($this->randomNameType == 1)        // 生成时间格式文件名\n            {\n                date_default_timezone_set('PRC');  //设置时区\n                \n                $date     = date($this->randomLength);\n                $fileName = $date . \"_\" . mt_rand(10000, 99999);\n            }\n            elseif ($this->randomNameType == 2)    // 生成随机字符文件名\n            {\n                $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';\n                $max   = strlen($chars) - 1;\n                mt_srand((double)microtime() * 1000000);\n                \n                for($i = 0; $i < $this->randomLength; $i++)\n                {\n                    $fileName .= $chars[mt_rand(0, $max)];\n                }\n            }\n            else\n            {\n                $fileName = '';\n            }\n\n            return $fileName;\n        }\n\n        /**\n         * 组成最终保存的完整路径及文件名\n         *\n         * @access  private\n         * @return  void\n         */\n        \n         private function setSeveName()\n         {             \n            $this->saveName = $this->randomFileName().\".\".$this->fileExt;\n             \n            if($this->saveName == '') //如果没生成随机文件名，就保留原文件名\n            {\n                $this->saveName = $this->files['name'];\n            }\n         }\n\n        /**\n         * 取得保存的文件名，用于数据库存储\n         *\n         * @access  public\n         * @return  string\n         */\n        \n         public function getSeveName()\n         {\n             return $this->saveName;\n         }\n\n        /**\n         * 获取文件后缀名函数\n         *\n         * @access  public\n         * @return  string\n         */\n        \n         public function getFileExt($fileName)\n         {\n             return trim(strtolower(substr(strrchr($fileName, '.'), 1)));\n         }\n\n        /**\n         * 上传成功或出错后跳转\n         *\n         * @access  public\n         * @param   array           $configs        配置项数组\n         * @return  void\n         */\n        \n        public function redirect() \n        {            \n            header('location: ' . $this->redirectURL);\n        }\n\n        /**\n         * 错误提示函数\n         *\n         * @access  public\n         * @return  void\n         */\n\n        public function message($message, $success = 0)\n        {\n            $array = array(\n                'success' => $success\n            );\n            \n            $url = $this->saveURL . $this->saveName;\n\n            // 适用于跨域上传时，跳转到中介页面等\n            if ($this->redirect) \n            {\n                $this->redirectURL .= \"&success=\" . $success . \"&message=\" . $message;\n                \n                if ($success == 1)\n                {\n                    $this->redirectURL .= '&url=' . $url;\n                }\n                \n                $this->redirect();\n            }\n            else\n            {\n                if ($success == 1)\n                {\n                    $array['url']    = $url;\n                }\n                else\n                {\n                    $array['message'] = $message; \n                }\n                \n                echo json_encode($array);\n            }\n        }\n    }\n"
  },
  {
    "path": "public/static/home/editormd/examples/php/post.php",
    "content": "<?php\n    header(\"Content-Type:text/html; charset=utf-8\");\n    header(\"Access-Control-Allow-Origin: *\");\n\n    if (isset($_POST['submit'])) {\n        echo \"<pre>\";\n        echo htmlspecialchars($_POST[\"test-editormd-markdown-doc\"]);\n        \n        if(isset($_POST[\"test-editormd-html-code\"])) {\n            echo \"<br/><br/>\";\n            echo htmlspecialchars($_POST[\"test-editormd-html-code\"]);\n        }\n        \n        echo \"</pre>\";\n    }\n\n    exit;\n?>"
  },
  {
    "path": "public/static/home/editormd/examples/php/upload.php",
    "content": "<?php\n\n\t/*\n\t * PHP upload demo for Editor.md\n     *\n     * @FileName: upload.php\n     * @Auther: Pandao\n     * @E-mail: pandao@vip.qq.com\n     * @CreateTime: 2015-02-13 23:20:04\n     * @UpdateTime: 2015-02-14 14:52:50\n     * Copyright@2015 Editor.md all right reserved.\n\t */\n\n    //header(\"Content-Type:application/json; charset=utf-8\"); // Unsupport IE\n    header(\"Content-Type:text/html; charset=utf-8\");\n    header(\"Access-Control-Allow-Origin: *\");\n\n    require(\"editormd.uploader.class.php\");\n\n    error_reporting(E_ALL & ~E_NOTICE);\n\t\n\t$path     = __DIR__ . DIRECTORY_SEPARATOR;\n\t$url      = dirname($_SERVER['PHP_SELF']) . '/';\n\t$savePath = realpath($path . '../uploads/') . DIRECTORY_SEPARATOR;\n\t$saveURL  = $url . '../uploads/';\n\n\t$formats  = array(\n\t\t'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp')\n\t);\n\n    $name = 'editormd-image-file';\n\n    if (isset($_FILES[$name]))\n    {        \n        $imageUploader = new EditorMdUploader($savePath, $saveURL, $formats['image'], false);  // Ymdhis表示按日期生成文件名，利用date()函数\n        \n        $imageUploader->config(array(\n            'maxSize' => 1024,        // 允许上传的最大文件大小，以KB为单位，默认值为1024\n            'cover'   => true         // 是否覆盖同名文件，默认为true\n        ));\n        \n        if ($imageUploader->upload($name))\n        {\n            $imageUploader->message('上传成功！', 1);\n        }\n        else\n        {\n            $imageUploader->message('上传失败！', 0);\n        }\n    }\n?>"
  },
  {
    "path": "public/static/home/editormd/examples/php/upload_callback.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n    </head>\n    <body>\n        <!--\n         这是同域下的callback页面，本页面在iframe内，所以只要通过window.parent就能操作父窗口的元素 \n        -->\n        <script type=\"text/javascript\"> \n            var query = {};\n            var urlParams = window.location.search.split('?')[1];\n            urlParams = urlParams.split(\"&\");\n\n            for (var i = 0; i< urlParams.length; i++) \n            {\n                var param       = urlParams[i].split(\"=\"); \n                query[param[0]] = param[1]; \n            }\n\n            var imageDialog = window.parent.document.getElementById(query['dialog_id']);\n\n            if (parseInt(query['success']) === 1)\n            {\n                imageDialog.querySelector(\"[data-url]\").value = query['url'];\n            }\n            else\n            {\n                alert(query['message']);\n            }\n\n            location.href = \"about:blank\";\n        </script>        \n    </body>   \n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/readonly.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Read only mode - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>只读模式</h1> \n                <p>Read only mode</p> \n            </header>\n            <div class=\"btns\">\n                <button id=\"watch-btn\">Enable watch</button>\n                <button id=\"unwatch-btn\">Disable watch</button>\n            </div>\n            <div id=\"test-editormd\" class=\"editormd-onlyread\">   \n                <textarea style=\"display:none;\">#### Setting\n\n```javascript\n{\n    readOnly        : true,\n    //styleActiveLine : false,       // disable active line\n    //watch           : false,       // disable watch\n    //lineNumbers     : false        // hide line numbers\n}\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width           : \"90%\",\n                    height          : 540,\n                    path            : \"../lib/\",\n                    //watch           : false,           // disable watch\n                    readOnly        : true,\n                    styleActiveLine : false,   // disable active line\n                    //lineNumbers     : false      // hide line numbers\n                });\n                \n                $(\"#watch-btn\").click(function(){\n                    testEditor.watch();\n                });\n                \n                $(\"#unwatch-btn\").click(function(){\n                    testEditor.unwatch();\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/resettings.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Resettings - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />        \n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Resettings</h1>\n                <p>只能设置依赖模块加载完成之后的相关配置或者使用拖动加载模块方式。</p>\n                <p>Only be resetting the relevant configuration of dependent module loaded after, or using manually load modules mode.</p>     \n            </header>\n            <div class=\"btns\">\n                <button id=\"show-btn\">Show editor</button>\n                <button id=\"hide-btn\">Hide editor</button>\n                <button id=\"get-md-btn\">Get Markdown</button>\n                <button id=\"get-html-btn\">Get HTML</button>\n                <button id=\"watch-btn\">Watch</button>\n                <button id=\"unwatch-btn\">Unwatch</button>\n                <button id=\"preview-btn\">Preview HTML(Press ESC cancel)</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press ESC cancel)</button>\n                <button id=\"show-toolbar-btn\">Show toolbar</button>\n                <button id=\"close-toolbar-btn\">Hide toolbar</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">#### Resetting examples\n\n```javascript\nthis.config(\"lineNumbers\", false);\n\nthis.config({\n    toc                  : false,\n    tex                  : false,\n    previewCodeHighlight : true, // before set previewCodeHighlight == false, editor not load pretty.js, so now codes can't highlight and display line numbers.\n    flowChart            : false,\n    sequenceDiagram      : false,\n    dialogLockScreen     : false,\n    dialogDraggable      : false,\n    dialogMaskBgColor    : \"teal\",\n    toolbar              : true\n});\n\nthis.config(\"onresize\", function() {\n    console.log(\"onresize =&gt;\", this);\n});\n```</textarea></div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                \n                $.get(\"test.md\", function(md) {\n                    testEditor = editormd(\"test-editormd\", {\n                        width                : \"90%\",\n                        height               : 740,\n                        path                 : \"../lib/\",\n                        appendMarkdown       : \"\\n\" + md,\n                        saveHTMLToTextarea   : true,\n                        watch                : false,\n                        htmlDecode           : true,  \n                        toolbar              : false,\n                        previewCodeHighlight : false,\n                        tex                  : true,\n                        flowChart            : true,\n                        sequenceDiagram      : true,\n                        emoji                : true,\n                        taskList             : true,\n                        onload               : function() {\n                            console.log('onload', this);\n                            \n                            this.config(\"lineNumbers\", false);\n                            \n                            this.config({\n                                toc                  : false,\n                                tex                  : false,\n                                toolbar              : true,\n                                previewCodeHighlight : true, // before set previewCodeHighlight == false, editor not load pretty.js, so now codes can't highlight and display line numbers.\n                                flowChart            : false,\n                                sequenceDiagram      : false,\n                                dialogLockScreen     : false,\n                                dialogMaskOpacity    : 0.5,       // 设置透明遮罩层的透明度，全局通用，默认值为0.1\n                                dialogDraggable      : false,\n                                dialogMaskBgColor    : \"#000\"\n                            });\n                \n                            this.config(\"onresize\", function() {\n                                console.log(\"onresize =>\", this);\n                            });\n                            \n                            this.watch();\n                        }\n                    });\n                });\n                \n                $(\"#show-btn\").click(function(){\n                    testEditor.show();\n                });\n                \n                $(\"#hide-btn\").click(function(){\n                    testEditor.hide();\n                });\n                \n                $(\"#get-md-btn\").click(function(){\n                    alert(testEditor.getMarkdown());\n                });\n                \n                $(\"#get-html-btn\").click(function() {\n                    alert(testEditor.getHTML());\n                });                \n                \n                $(\"#watch-btn\").click(function() {\n                    testEditor.watch();\n                });                 \n                \n                $(\"#unwatch-btn\").click(function() {\n                    testEditor.unwatch();\n                });              \n                \n                $(\"#preview-btn\").click(function() {\n                    testEditor.previewing();\n                });\n                \n                $(\"#fullscreen-btn\").click(function() {\n                    testEditor.fullscreen();\n                });\n                \n                $(\"#show-toolbar-btn\").click(function() {\n                    testEditor.showToolbar();\n                });\n                \n                $(\"#close-toolbar-btn\").click(function() {\n                    testEditor.hideToolbar();\n                });\n            });          \n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/search-replace.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Search / Replace - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Search / Replace</h1>\n                <p>Search: Press Ctrl + F / Command + F</p>\n                <p>Replace: Press Ctrl + Shift + F / Command + Option + F</p>\n                <p>Replace All: Press Ctrl + Shift + R / Command + Option + R</p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\"></textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {\n                $.get(\"./test.md\", function(md) {\n                    testEditor = editormd(\"test-editormd\", {\n                        width  : \"90%\",\n                        height : 720,\n                        markdown : \"#### Setting\\r\\n\\r\\n    {\\n        searchReplace : true // default true\\n    }\\r\\n\\r\\n\" + md,\n                        searchReplace : true, // default true\n                        htmlDecode : true,\n                        tex : true,\n                        taskList : true,\n                        emoji : true,\n                        flowChart : true,\n                        sequenceDiagram : true,\n                        path   : '../lib/'\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/sequence-diagram.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>SequenceDiagram - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.min.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>SequenceDiagram 时序图/序列图</h1>\n\t\t\t\t<p>Based on SequenceDiagram.js：<a href=\"http://bramp.github.io/js-sequence-diagrams/\" target=\"_blank\">http://bramp.github.io/js-sequence-diagrams/</a></p>            \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">#### Setting\n\n    {\n        sequenceDiagram : true\n    }\n\n#### Syntax\n\n    ```seq\n    .........\n    ```\n\n    # or\n\n    ```sequence\n    .........\n    ```\n\n#### Example\n\n```seq\nA->B: Message\nB->C: Message\nC->A: Message\n```\n\n```sequence\nAndrew->China: Says Hello \nNote right of China: China thinks\\nabout it \nChina-->Andrew: How are you? \nAndrew->>China: I am good thanks!\n```</textarea>\n            </div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n            $(function() {                \n                var testEditor = editormd(\"test-editormd\", {\n\t\t\t\t\twidth: \"90%\",\n\t\t\t\t\theight: 640,\n\t\t\t\t\tpath : '../lib/',\n\t\t\t\t\tsequenceDiagram : true\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/set-get-replace-selection.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>插入字符 / 设置和获取光标位置 / 设置、获取和替换选中的文本 - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>插入字符 / 设置和获取光标位置 / 设置、获取和替换选中的文本</h1> \n                <p>Insert value & Set / Get cursor & Set / Get / Replace selection</p> \n                <br/>\n                <div class=\"btns\" style=\"margin:0\">\n                    <button id=\"btn1\">设置光标位置 (line:1, ch:2)</button>\n                    <button id=\"btn2\">获取光标位置</button>\n                    <button id=\"btn3\">设置选中文本 ({line:1, ch:0}, {line:5, ch:100})</button>\n                    <button id=\"btn4\">获取选中文本</button>\n                    <button id=\"btn5\">替换选中文本为 \"$$$$$$$$$\"</button>\n                    <button id=\"btn6\">在光标处插入 \"????\"</button>                    \n                </div>\n            </header>\n            <div id=\"test-editormd\">  \n                <textarea style=\"display:none;\">### Examples\n\n```javascript\nvar testEditormd;\n\n$(function() {\n    testEditormd = editormd(\"test-editormd\", {\n        width: \"90%\",\n        height: 640,\n        path : '../lib/'\n    });\n});\n\n$(\"#btn1\").click(function(){\n    testEditormd.setCursor({line:1, ch:2});\n});\n\n$(\"#btn2\").click(function(){\n    console.log(\"getCursor =>\", testEditormd.getCursor());\n});\n\n$(\"#btn3\").click(function(){\n    testEditormd.setSelection({line:1, ch:0}, {line:5, ch:100});\n});\n\n$(\"#btn4\").click(function(){\n    console.log(\"getSelection =>\", testEditormd.getSelection());\n});\n\n$(\"#btn5\").click(function(){\n    testEditormd.replaceSelection(\"$$$$$$$$$\");\n});\n\n$(\"#btn6\").click(function(){\n    testEditormd.insertValue(\"????\");\n});\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n\t\t\tvar testEditormd;\n\n            $(function() {\n                testEditormd = editormd(\"test-editormd\", {\n                    width: \"90%\",\n                    height: 640,\n                    path : '../lib/'\n                });\n                \n                $(\"#btn1\").click(function(){\n                    testEditormd.setCursor({line:1, ch:2});\n                    testEditormd.focus();\n                });\n                \n                $(\"#btn2\").click(function(){\n                    console.log(\"getCursor =>\", testEditormd.getCursor());\n                    testEditormd.focus();\n                });\n                \n                $(\"#btn3\").click(function(){\n                    testEditormd.setSelection({line:1, ch:0}, {line:5, ch:100});\n                    testEditormd.focus();\n                });\n                \n                $(\"#btn4\").click(function(){\n                    console.log(\"getSelection =>\", testEditormd.getSelection());\n                    testEditormd.focus();\n                });\n                \n                $(\"#btn5\").click(function(){\n                    testEditormd.replaceSelection(\"$$$$$$$$$\");\n                    testEditormd.focus();\n                });\n                \n                $(\"#btn6\").click(function(){\n                    testEditormd.insertValue(\"????\");\n                    testEditormd.focus();\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/simple.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Simple example - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Simple example</h1>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">[TOC]\n\n#### Disabled options\n\n- TeX (Based on KaTeX);\n- Emoji;\n- Task lists;\n- HTML tags decode;\n- Flowchart and Sequence Diagram;\n\n#### Editor.md directory\n\n    editor.md/\n            lib/\n            css/\n            scss/\n            tests/\n            fonts/\n            images/\n            plugins/\n            examples/\n            languages/     \n            editormd.js\n            ...\n\n```html\n&lt;!-- English --&gt;\n&lt;script src=\"../dist/js/languages/en.js\"&gt;&lt;/script&gt;\n\n&lt;!-- 繁體中文 --&gt;\n&lt;script src=\"../dist/js/languages/zh-tw.js\"&gt;&lt;/script&gt;\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.min.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width   : \"90%\",\n                    height  : 640,\n                    syncScrolling : \"single\",\n                    path    : \"../lib/\"\n                });\n                \n                /*\n                // or\n                testEditor = editormd({\n                    id      : \"test-editormd\",\n                    width   : \"90%\",\n                    height  : 640,\n                    path    : \"../lib/\"\n                });\n                */\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/sync-scrolling.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Sync scrolling - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Sync scrolling</h1>\n            </header>\n            <div class=\"btns\">\n                <button class=\"bisync-btn\">Bisynchronous (Default)</button>\n                <button class=\"single-btn\">Single</button>\n                <button class=\"disabled-btn\">Disabled</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">[TOC]\n\n#### Setting\n\nconfig:\n\n```javascript\n{\n    // true -> bisync, false -> disabled, \"single\" -> Only editor area sync\n    syncScrolling : true | false | \"single\"\n}\n```\n\nfunction:\n\n```javascript\neditor.config(\"syncScrolling\", true);\n//editor.config(\"syncScrolling\", false);\n//editor.config(\"syncScrolling\", \"single\");\n```\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.min.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width   : \"90%\",\n                    height  : 360,\n                    path    : \"../lib/\"\n                });\n                \n                $(\".bisync-btn\").click(function(){\n                    testEditor.config(\"syncScrolling\", true);\n                });\n                \n                $(\".single-btn\").click(function(){\n                    testEditor.config(\"syncScrolling\", \"single\");\n                });\n                \n                $(\".disabled-btn\").click(function(){\n                    testEditor.config(\"syncScrolling\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/task-lists.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Github Flavored Markdown task lists - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Github Flavored Markdown task lists</h1>    \n            </header>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\">### Setting\n\n    {\n        taskList : true\n    }\n\n### Examples\n\n- [x] @mentions, #refs, [links](), **formatting**, and <del>tags</del> supported;\n- [x] list syntax required (any unordered or ordered list supported);\n- [x] this is a complete item;\n- [ ] this is an incomplete item [test link](#);\n- [ ] this is an incomplete item;\n    - [ ] this is an incomplete item [test link](#);\n    - [ ] this is an incomplete item [test link](#);\n- [x] list syntax required (any unordered or ordered list supported);\n- [x] this is a complete item;\n- [ ] this is an incomplete item [test link](#);\n- [ ] this is an incomplete item;\n    - [ ] this is an incomplete item [test link](#);\n- [x] list syntax required (any unordered or ordered list supported);\n- [x] this is a complete item;\n- [ ] this is an incomplete item [test link](#);\n- [ ] this is an incomplete item;\n    - [ ] this is an incomplete item [test link](#);\n    - [ ] this is an incomplete item [test link](#);\n\n> Github Flavored Markdown task lists\n</textarea>\n            </div>\n        </div>        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n            var testEditor;\n            \n            $(function() {         \n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 720,\n                    taskList : true,\n                    path   : '../lib/',\n                    htmlDebode : true,\n                    onload : function() {\n                    }\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/test.md",
    "content": "# Editor.md\n\n![](https://pandao.github.io/editor.md/images/logos/editormd-logo-180x180.png)\n\n![](https://img.shields.io/github/stars/pandao/editor.md.svg) ![](https://img.shields.io/github/forks/pandao/editor.md.svg) ![](https://img.shields.io/github/tag/pandao/editor.md.svg) ![](https://img.shields.io/github/release/pandao/editor.md.svg) ![](https://img.shields.io/github/issues/pandao/editor.md.svg) ![](https://img.shields.io/bower/v/editor.md.svg)\n\n**目录 (Table of Contents)**\n\n[TOCM]\n\n[TOC]\n\n# Heading 1\n## Heading 2               \n### Heading 3\n#### Heading 4\n##### Heading 5\n###### Heading 6\n# Heading 1 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n## Heading 2 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n### Heading 3 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n#### Heading 4 link [Heading link](https://github.com/pandao/editor.md \"Heading link\") Heading link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n##### Heading 5 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n###### Heading 6 link [Heading link](https://github.com/pandao/editor.md \"Heading link\")\n\n#### 标题（用底线的形式）Heading (underline)\n\nThis is an H1\n=============\n\nThis is an H2\n-------------\n\n### 字符效果和横线等\n                \n----\n\n~~删除线~~ <s>删除线（开启识别HTML标签时）</s>\n*斜体字*      _斜体字_\n**粗体**  __粗体__\n***粗斜体*** ___粗斜体___\n\n上标：X<sub>2</sub>，下标：O<sup>2</sup>\n\n**缩写(同HTML的abbr标签)**\n\n> 即更长的单词或短语的缩写形式，前提是开启识别HTML标签时，已默认开启\n\nThe <abbr title=\"Hyper Text Markup Language\">HTML</abbr> specification is maintained by the <abbr title=\"World Wide Web Consortium\">W3C</abbr>.\n\n### 引用 Blockquotes\n\n> 引用文本 Blockquotes\n\n引用的行内混合 Blockquotes\n                    \n> 引用：如果想要插入空白换行`即<br />标签`，在插入处先键入两个以上的空格然后回车即可，[普通链接](http://localhost/)。\n\n### 锚点与链接 Links\n\n[普通链接](http://localhost/)\n\n[普通链接带标题](http://localhost/ \"普通链接带标题\")\n\n直接链接：<https://github.com>\n\n[锚点链接][anchor-id] \n\n[anchor-id]: http://www.this-anchor-link.com/\n\n[mailto:test.test@gmail.com](mailto:test.test@gmail.com)\n\nGFM a-tail link @pandao  邮箱地址自动链接 test.test@gmail.com  www@vip.qq.com\n\n> @pandao\n\n### 多语言代码高亮 Codes\n\n#### 行内代码 Inline code\n\n执行命令：`npm install marked`\n\n#### 缩进风格\n\n即缩进四个空格，也做为实现类似 `<pre>` 预格式化文本 ( Preformatted Text ) 的功能。\n\n    <?php\n        echo \"Hello world!\";\n    ?>\n    \n预格式化文本：\n\n    | First Header  | Second Header |\n    | ------------- | ------------- |\n    | Content Cell  | Content Cell  |\n    | Content Cell  | Content Cell  |\n\n#### JS代码　\n\n```javascript\nfunction test() {\n\tconsole.log(\"Hello world!\");\n}\n \n(function(){\n    var box = function() {\n        return box.fn.init();\n    };\n\n    box.prototype = box.fn = {\n        init : function(){\n            console.log('box.init()');\n\n\t\t\treturn this;\n        },\n\n\t\tadd : function(str) {\n\t\t\talert(\"add\", str);\n\n\t\t\treturn this;\n\t\t},\n\n\t\tremove : function(str) {\n\t\t\talert(\"remove\", str);\n\n\t\t\treturn this;\n\t\t}\n    };\n    \n    box.fn.init.prototype = box.fn;\n    \n    window.box =box;\n})();\n\nvar testBox = box();\ntestBox.add(\"jQuery\").remove(\"jQuery\");\n```\n\n#### HTML 代码 HTML codes\n\n```html\n<!DOCTYPE html>\n<html>\n    <head>\n        <mate charest=\"utf-8\" />\n        <meta name=\"keywords\" content=\"Editor.md, Markdown, Editor\" />\n        <title>Hello world!</title>\n        <style type=\"text/css\">\n            body{font-size:14px;color:#444;font-family: \"Microsoft Yahei\", Tahoma, \"Hiragino Sans GB\", Arial;background:#fff;}\n            ul{list-style: none;}\n            img{border:none;vertical-align: middle;}\n        </style>\n    </head>\n    <body>\n        <h1 class=\"text-xxl\">Hello world!</h1>\n        <p class=\"text-green\">Plain text</p>\n    </body>\n</html>\n```\n\n### 图片 Images\n\nImage:\n\n![](https://pandao.github.io/editor.md/examples/images/4.jpg)\n\n> Follow your heart.\n\n![](https://pandao.github.io/editor.md/examples/images/8.jpg)\n\n> 图为：厦门白城沙滩\n\n图片加链接 (Image + Link)：\n\n[![](https://pandao.github.io/editor.md/examples/images/7.jpg)](https://pandao.github.io/editor.md/images/7.jpg \"李健首张专辑《似水流年》封面\")\n\n> 图为：李健首张专辑《似水流年》封面\n                \n----\n\n### 列表 Lists\n\n#### 无序列表（减号）Unordered Lists (-)\n                \n- 列表一\n- 列表二\n- 列表三\n     \n#### 无序列表（星号）Unordered Lists (*)\n\n* 列表一\n* 列表二\n* 列表三\n\n#### 无序列表（加号和嵌套）Unordered Lists (+)\n                \n+ 列表一\n+ 列表二\n    + 列表二-1\n    + 列表二-2\n    + 列表二-3\n+ 列表三\n    * 列表一\n    * 列表二\n    * 列表三\n\n#### 有序列表 Ordered Lists (-)\n                \n1. 第一行\n2. 第二行\n3. 第三行\n\n#### GFM task list\n\n- [x] GFM task list 1\n- [x] GFM task list 2\n- [ ] GFM task list 3\n    - [ ] GFM task list 3-1\n    - [ ] GFM task list 3-2\n    - [ ] GFM task list 3-3\n- [ ] GFM task list 4\n    - [ ] GFM task list 4-1\n    - [ ] GFM task list 4-2\n                \n----\n                    \n### 绘制表格 Tables\n\n| 项目        | 价格   |  数量  |\n| --------   | -----:  | :----:  |\n| 计算机      | $1600   |   5     |\n| 手机        |   $12   |   12   |\n| 管线        |    $1    |  234  |\n                    \nFirst Header  | Second Header\n------------- | -------------\nContent Cell  | Content Cell\nContent Cell  | Content Cell \n\n| First Header  | Second Header |\n| ------------- | ------------- |\n| Content Cell  | Content Cell  |\n| Content Cell  | Content Cell  |\n\n| Function name | Description                    |\n| ------------- | ------------------------------ |\n| `help()`      | Display the help window.       |\n| `destroy()`   | **Destroy your computer!**     |\n\n| Left-Aligned  | Center Aligned  | Right Aligned |\n| :------------ |:---------------:| -----:|\n| col 3 is      | some wordy text | $1600 |\n| col 2 is      | centered        |   $12 |\n| zebra stripes | are neat        |    $1 |\n\n| Item      | Value |\n| --------- | -----:|\n| Computer  | $1600 |\n| Phone     |   $12 |\n| Pipe      |    $1 |\n                \n----\n\n#### 特殊符号 HTML Entities Codes\n\n&copy; &  &uml; &trade; &iexcl; &pound;\n&amp; &lt; &gt; &yen; &euro; &reg; &plusmn; &para; &sect; &brvbar; &macr; &laquo; &middot; \n\nX&sup2; Y&sup3; &frac34; &frac14;  &times;  &divide;   &raquo;\n\n18&ordm;C  &quot;  &apos;\n\n[========]\n\n### Emoji表情 :smiley:\n\n> Blockquotes :star:\n\n#### GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:\n\n- [x] :smiley: @mentions, :smiley: #refs, [links](), **formatting**, and <del>tags</del> supported :editormd-logo:;\n- [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;\n- [x] [ ] :smiley: this is a complete item :smiley:;\n- [ ] []this is an incomplete item [test link](#) :fa-star: @pandao; \n- [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;\n    - [ ] :smiley: this is an incomplete item [test link](#) :fa-star: :fa-gear:;\n    - [ ] :smiley: this is  :fa-star: :fa-gear: an incomplete item [test link](#);\n \n#### 反斜杠 Escape\n\n\\*literal asterisks\\*\n\n[========]\n            \n### 科学公式 TeX(KaTeX)\n\n$$E=mc^2$$\n\n行内的公式$$E=mc^2$$行内的公式，行内的$$E=mc^2$$公式。\n\n$$x > y$$\n\n$$\\(\\sqrt{3x-1}+(1+x)^2\\)$$\n                    \n$$\\sin(\\alpha)^{\\theta}=\\sum_{i=0}^{n}(x^i + \\cos(f))$$\n\n多行公式：\n\n```math\n\\displaystyle\n\\left( \\sum\\_{k=1}^n a\\_k b\\_k \\right)^2\n\\leq\n\\left( \\sum\\_{k=1}^n a\\_k^2 \\right)\n\\left( \\sum\\_{k=1}^n b\\_k^2 \\right)\n```\n\n```katex\n\\displaystyle \n    \\frac{1}{\n        \\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\n        \\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {\n        1+\\frac{e^{-6\\pi}}\n        {1+\\frac{e^{-8\\pi}}\n         {1+\\cdots} }\n        } \n    }\n```\n\n```latex\nf(x) = \\int_{-\\infty}^\\infty\n    \\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\n    \\,d\\xi\n```\n\n### 分页符 Page break\n\n> Print Test: Ctrl + P\n\n[========]\n\n### 绘制流程图 Flowchart\n\n```flow\nst=>start: 用户登陆\nop=>operation: 登陆操作\ncond=>condition: 登陆成功 Yes or No?\ne=>end: 进入后台\n\nst->op->cond\ncond(yes)->e\ncond(no)->op\n```\n\n[========]\n                    \n### 绘制序列图 Sequence Diagram\n                    \n```seq\nAndrew->China: Says Hello \nNote right of China: China thinks\\nabout it \nChina-->Andrew: How are you? \nAndrew->>China: I am good thanks!\n```\n\n### End"
  },
  {
    "path": "public/static/home/editormd/examples/themes.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Themes - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            /* Custom Editor.md theme css example */\n            /*\n            .editormd-theme-dark {\n                border-color: #1a1a17;\n                \n            }\n            \n            .editormd-theme-dark .editormd-toolbar {\n                background: #1A1A17;\n                border-color: #1a1a17;\n            }\n            \n            .editormd-theme-dark .editormd-menu > li > a {\n                color: #777;\n                border-color: #1a1a17;\n            }\n            \n            .editormd-theme-dark .editormd-menu > li.divider {\n                border-right: 1px solid #111;\n            }\n            \n            .editormd-theme-dark .editormd-menu > li > a:hover, .editormd-menu > li > a.active {\n                border-color: #333;\n                background: #333;\n            }*/\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Themes</h1>\n                <p>\n                    <select id=\"editormd-theme-select\">\n                        <option selected=\"selected\" value=\"\">select Editor.md themes</option>\n                    </select>\n                    <select id=\"editor-area-theme-select\">\n                        <option selected=\"selected\" value=\"\">select editor area themes</option>\n                    </select>\n                    <select id=\"preview-area-theme-select\">\n                        <option selected=\"selected\" value=\"\">select preview area themes</option>\n                    </select>\n                </p>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">[TOC]\n\n### Themes\n\n#### Setting\n\nconfigs:\n\n```javascript\n{\n    // Editor.md theme, default or dark, change at v1.5.0\n    // You can also custom css class .editormd-theme-xxxx\n    theme : \"default | dark\",\n\n    // Preview container theme, added v1.5.0\n    // You can also custom css class .editormd-preview-theme-xxxx\n    previewTheme : \"default | dark\",\n\n    // Added @v1.5.0 & after version this is CodeMirror (editor area) theme\n    editorTheme : editormd.editorThemes['theme-name']\n}\n```\n\nfunctions:\n\n```javascript\neditor.setTheme('theme-name');\neditor.setEditorTheme('theme-name');\neditor.setPreviewTheme('theme-name');\n```\n\n#### Default theme\n\n- Editor.md theme : `default`\n- Preview area theme : `default`\n- Editor area theme : `default`\n\n> Recommend `dark` theme.\n\n#### Recommend editor area themes\n\n- ambiance\n- eclipse\n- mdn-like\n- mbo\n- monokai\n- neat\n- pastel-on-dark\n\n#### Editor area themes\n\n- default\n- 3024-day\n- 3024-night\n- ambiance\n- ambiance-mobile\n- base16-dark\n- base16-light\n- blackboard\n- cobalt\n- eclipse\n- elegant\n- erlang-dark\n- lesser-dark\n- mbo\n- mdn-like\n- midnight\n- monokai\n- neat\n- neo\n- night\n- paraiso-dark\n- paraiso-light\n- pastel-on-dark\n- rubyblue\n- solarized\n- the-matrix\n- tomorrow-night-eighties\n- twilight\n- vibrant-ink\n- xq-dark\n- xq-light\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n            \n            function themeSelect(id, themes, lsKey, callback)\n            {\n                var select = $(\"#\" + id);\n                \n                for (var i = 0, len = themes.length; i < len; i ++)\n                {                    \n                    var theme    = themes[i];\n                    var selected = (localStorage[lsKey] == theme) ? \" selected=\\\"selected\\\"\" : \"\";\n                    \n                    select.append(\"<option value=\\\"\" + theme + \"\\\"\" + selected + \">\" + theme + \"</option>\");\n                }\n                \n                select.bind(\"change\", function(){\n                    var theme = $(this).val();\n                    \n                    if (theme === \"\")\n                    {\n                        alert(\"theme == \\\"\\\"\");\n                        return false;\n                    }\n                    \n                    console.log(\"lsKey =>\", lsKey, theme);\n                    \n                    localStorage[lsKey] = theme;\n                    callback(select, theme);\n                }); \n                \n                return select;\n            }\n\n            $(function() {                \n                testEditor = editormd(\"test-editormd\", {\n                    width        : \"90%\",\n                    height       : 720,\n                    \n                    // Editor.md theme, default or dark, change at v1.5.0\n                    // You can also custom css class .editormd-preview-theme-xxxx\n                    theme        : (localStorage.theme) ? localStorage.theme : \"dark\",\n                    \n                    // Preview container theme, added v1.5.0\n                    // You can also custom css class .editormd-preview-theme-xxxx\n                    previewTheme : (localStorage.previewTheme) ? localStorage.previewTheme : \"dark\", \n                    \n                    // Added @v1.5.0 & after version is CodeMirror (editor area) theme\n                    editorTheme  : (localStorage.editorTheme) ? localStorage.editorTheme : \"pastel-on-dark\", \n                    path         : '../lib/'\n                });\n                \n                themeSelect(\"editormd-theme-select\", editormd.themes, \"theme\", function($this, theme) {\n                    testEditor.setTheme(theme);\n                });\n                \n                themeSelect(\"editor-area-theme-select\", editormd.editorThemes, \"editorTheme\", function($this, theme) {\n                    testEditor.setCodeMirrorTheme(theme); \n                    // or testEditor.setEditorTheme(theme);\n                });\n                \n                themeSelect(\"preview-area-theme-select\", editormd.previewThemes, \"previewTheme\", function($this, theme) {\n                    testEditor.setPreviewTheme(theme);\n                });          \n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/toc.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>TOC - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>            \n            #custom-toc-container {\n                border: 1px solid #ddd;\n                width: 90%;\n                margin: 0 auto 15px;\n                overflow: visible;\n            }\n            \n            #custom-toc-container > .markdown-toc {\n                padding: 10px;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>TOC (Table of Contents) example</h1>\n            </header>\n            <div class=\"btns\">\n                <button id=\"insert-btn\">ToC insert to custom container</button>\n                <button id=\"menu-btn\">ToC Dropdown menu</button>\n                <button id=\"menu2-btn\">ToC Dropdown menu insert to custom container</button>\n                <button id=\"default-btn\">Default</button>\n                <button id=\"tocm-btn\">Enable [TOCM]</button>\n            </div>\n            <div class=\"markdown-body editormd-preview-container\" id=\"custom-toc-container\">#custom-toc-container</div>\n            <div id=\"test-editormd\">                \n                <textarea style=\"display:none;\"># 支撑起整个互联网时代的 7 款开源软件\n\n[TOCM]\n\n[TOC]\n\n开源软件现在成为整个互联网时代的支撑技术，你可能已经无法离开由开源软件构建起来的网络世界了。下面我们就来看看一些最重要的开源技术。\n\n### 为互联网而生的操作系统linux\n\nLinux是一款免费的操作系统，诞生于1991年，用户可以通过网络或其他途径免费获得，并可以任意修改其源代码。\n\n#### linux A\n\n它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想，是一个性能稳 定的多用户网络操作系统。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的 Unix兼容产品。\n\n#### Test link heading [linux B](https://github.com/pandao/editor.md)  Test link heading\n\n#### Test link heading [linux B](https://github.com/pandao/editor.md)   Test link heading [linux B](https://github.com/pandao/editor.md)  Test link heading, Test link heading, [linux B](https://github.com/pandao/editor.md)  Test link heading\n\n##### linux B-1\n\n###### linux B-1-1\n\n###### linux B-1-2\n\n##### linux B-2\n\n###### linux B-2-1\n\n###### linux B-2-2\n\n#支撑起整个互联网时代的 7 款开源软件-2\n\nLinux可以说是已经无处不在，像Android手机就是以Linux为基础开发的，世界上大多的超级计算机也都采用的Linux系统，大多数的 数据中心使用Linux作为其支撑操作系统。谷歌、百度、淘宝等都通过Linuxt提供了我们每天用的互联网服务。Linux在航空控制系统中也扮演着重 要角色。\n\n###加密互联网的安全协议OpenSSL\n\nOpenSSL是套开放源代码的软件库包，实现了SSL与TLS协议。OpenSSL可以说是一个基于密码学的安全开发包，囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议，并提供了丰富的应用程序供测试或其它目的使用。\n\n也可以说OpenSSL是网络通信提供安全及数据完整性的一种安全协议，SSL可以在Internet上提供秘密性传输，能使用户/服务器应用之间的通信不被攻击者窃听。OpenSSL被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用。\n\n去年OpenSSL爆出安全漏洞，因为其应用如此之广，该漏洞爆出让整个互联网都为之震颤。\n\n### 互联网的记忆——MySQL\n\nMySQL是一个开源的小型的数据库管理系统，原开发者为瑞典的MySQL AB公司，该公司于2008年被Sun公司收购。2009年，甲骨文公司（Oracle）收购Sun公司，MySQL成为Oracle旗下产品。\n\n很多信息都是存在数据库里面的，很多工程师在开发一些的小型项目时都会采用这个MySQL数据库。MySQL为C、C++、JAVA、PHP等多重 编程语言提供了API接口。而且支持windows、Mac、Linux等多种系统。这种广泛的支持使其得到更多开发者的青睐，MySQL是开发者需要掌 握的数据库之一。\n\nMysql最初为小型应用而开发，但现在的Mysql已经不是一个小型数据库了。基本上所有的互联网公司都会使用这个数据库系统，一些金融交易也会 采用Mysql作为数据库引擎。Mysql通过相应的调优既可以支撑大规模的访问，又可以保证数据安全性，已经成为威胁传统商业数据库系统的重要力量。\n\n### 万能开发工具Eclipse\n\nEclipse 是一个开放源代码的、基于Java的可扩展开发平台。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建，起始于1999年4月。目前由 IBM牵头，围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟，有150多家软件公司参与到Eclipse项目中，其中包括 Borland、Rational Software、Red Hat及Sybase等。\n\n就其本身而言，它只是一个框架和一组服务，用于通过插件组件构建开发环境。很多Java编程软件都是在Eclipse平台开发的，还有包括 Oracle在内的许多大公司也纷纷加入了该项目，并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者，使用者只需下载各种语言的插件即 可。\n\nEclipse并不是一个直接服务于消费者的产品，它更像一个工匠手中万用工具，用Eclipse开发者可以打造出各种充满创造性的服务来满足最终用户的需求。\n\n### 互联网的门卫Apache\n\nApache HTTP Server（简称Apache）是Apache软件基金会的一个开放源码的网页服务器，可以在大多数计算机操作系统中运行，由于其多平台和安全性被广泛 使用，也是最流行的Web服务器端软件之一，市场占有率达60%左右。它快速、可靠并且可通过简单的API扩展，它可以和各种解释器配合使用，包括 PHP/Perl/Python等。\n\nApache就像一个负责的门卫，管理着服务器数据的进出。每当你在你的地址栏里输入 http://XXX.com 的时候，在遥远的远端，很有可能正是一台跑着Apache的服务器，将你需要的信息传输给浏览器。\n\n###大数据的心脏Hadoop\n\nHadoop 是一个能够对大量数据进行分布式处理的软件框架，由Apache基金会开发。用户可以在不了解分布式底层细节的情况下，开发分布式程序。Hadoop 一 直帮助解决各种问题，包括超大型数据集的排序和大文件的搜索。它还是各种搜索引擎的核心，比如 Amazon 的 A9 和用于查找酒信息 的 Able Grape 垂直搜索引擎。阿里巴巴集团在商品推荐、用户行为分析、信用计算领域也都有hadoop的应用。\n\n在“大数据”已经成为潮流的当下，Hadoop已经成为最主要的一项技术。可以毫不夸张的说，没有Hadoop，就没有大多数的大数据应用。可以说对一个不知道Hadoop的程序员而言，你已经out了。\n\n\n#### Test link heading [linux B](https://github.com/pandao/editor.md)  Test link heading\n\n#### Test link heading [linux B](https://github.com/pandao/editor.md)   Test link heading [linux B](https://github.com/pandao/editor.md)  Test link heading, Test link heading, [linux B](https://github.com/pandao/editor.md)  Test link heading\n\n##### linux B-1\n\n###### linux B-1-1\n\n###### linux B-1-2\n\n##### linux B-2\n\n###### linux B-2-1\n\n###### linux B-2-2\n\n### 互联网的“排版引擎”WebKit\n\n说是浏览器内核，其实“排版引擎”更容易理解一些。通过服务器传输给浏览器的信息只是一串乱糟糟的文本。要看到我们平时看到精美的网友，需要浏览器内核对这些文本进行解析，将枯燥的描述“画”成美丽的浏览界面。\n\nWebKit 是一个开源的浏览器引擎，与之相应的引擎有 Gecko（Mozilla Firefox 等使用的排版引擎）和 Trident（也称为 MSHTML，IE 使用的排版引擎）。根据 StatCounter 的浏览器市场份额调查，于2012年11月，Webkit 市占超过了 40%，它已经成为拥有最大市场份额的 排版引擎，超越了 Internet Explorer 所使用的Trident 及 Firefox 所使用的 Gecko 引擎，并且 WebKit 份额正在逐年增加。\n\n目前几乎所有网站和网银已经逐渐支持 WebKit 。WebKit 内核在手机上的应用也十分广泛，例如苹果的 Safari 、谷歌的 Chrome 浏览器都是基于这个框架来开发的。\n\n### 小结\n\n很多人可能尚未意识到，我们使用的电脑中运行有开源软件，手机中运行有开源软件，家里的电视也运行有开源软件，甚至小小的数码产品中也运行有开源软件，尤其是互联网服务器端软件，几乎全部是开源软件。毫不夸张地说，开源软件已经渗透到了我们日常生活的方方面面。\n\n稿源：[钛媒体](http://www.tmtpost.com/194306.html)\n</textarea>\n            </div>\n        </div>\n        \n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">            \n            var testEditor;\n                \n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width         : \"90%\",\n                    height        : 720,\n                    path          : \"../lib/\",\n                    //toc           : false,         // diable ToC\n                    tocStartLevel : 2      // Parse beginning of H2, Default value 1\n                });\n                \n                $(\"#insert-btn\").click(function() {\n                    testEditor.config({\n                        tocContainer : \"#custom-toc-container\",\n                        tocDropdown   : false\n                    });\n                });\n                \n                $(\"#menu-btn\").click(function(){\n                    testEditor.config({\n                        tocContainer  : \"\",\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents dsfsadfsfdsdf\",\n                    });\n                });\n                \n                $(\"#menu2-btn\").click(function(){\n                    testEditor.config({\n                        tocContainer  : \"#custom-toc-container\",\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents dsfsadfsfdsdf\",\n                    });\n                });\n                \n                $(\"#default-btn\").click(function() {\n                    $(\"#custom-toc-container\").html(\"#custom-toc-container\");\n                    testEditor.config({\n                        tocContainer : \"\",\n                        tocm : false,\n                        tocDropdown  : false\n                    });\n                });\n                \n                $(\"#tocm-btn\").click(function() {\n                    $(\"#custom-toc-container\").html(\"#custom-toc-container\");\n                    testEditor.config({\n                        tocm : true,\n                        tocContainer : \"\",\n                        tocDropdown   : false\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/toolbar-auto-fixed.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Toolbar auto fixed - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\" style=\"height:3000px;\">\n            <header>\n                <h1>工具栏自动固定定位的开启与禁用</h1>\n                <p>Enable / disable toolbar auto fixed position.</p>\n            </header>\n            <div class=\"btns\">\n                <button id=\"enable-btn\">Enable</button>\n                <button id=\"disable-btn\">Disable</button>\n            </div>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">### Hello world!\n\ncodemirror\nIn-browser code editor\n\ncodemirror\t6291\t3 days ago\nangular-ui-codemirror\nThis directive allows you to add CodeMirror to your textarea elements.\n\nangular-ui\t174\t6 weeks ago\nshare-codemirror\nCodemirror bindings for ShareJS\n\nshare\t24\t3 months ago\nrequirejs-codemirror\nLoad codemirror with needed modes and appending codemirror's css only when needed\n\ntuchk4\t14\t2 months ago\ncodemirror-interactive-numbers\nDrag and update literal numbers inside codemirror\n\nfullstackio\t4\t17 months ago\ncm-searchbox\nCodeMirror addon for search and replace\n\ncoderaiser\t3\t4 days ago\nng-codemirror-dictionary-hint\nAngular directive that adds hint support to a Codemirror instance based on a custom dictionary.\n\namarnus\t3\t3 months ago\nopentok-editor\nA real time collaborative editor for OpenTok using CodeMirror and ot.js\n\naullman\t3\t2 weeks ago\ncirru-mode\nCirru mode for CodeMorror\n\nCirru\t2\t12 months ago\nckeditor-codemirror\nA bower wrapper for the ckeditor codemirror plugin\n\nfriedolinfoerder\t1\t2 weeks ago\ncm-show-invisibles\nAddon for CodeMirror that helps to show invisibles.\n\ncoderaiser\t1\t6 days ago\nangular-codemirror\nAdd CodeMirror to your AngularJS app\n\nchouseknecht\t0\t12 months ago\ncodemirror-chord\nCodemirror mode for guitar chords\n\nzabudipar\t0\t3 weeks ago\ncodemirror-states\nExport and import CodeMirror line classes, line widgets and markers\n\nlusever\t0\t12 days ago\nember-cli-codemirror-shim\nES6 module shim for CodeMirror.\n\nIvyApp\t0\t3 months ago\nivy-codemirror\nShim repository for ivy-codemirror.\n\nIvyApp\t0\t2 months ago\nng-codemirror\nAllows you to integrate AngularJS and Codemirror with compatibility for RequireJS 2.x.\n\nVictorQueiroz\t0\t4 months ago\nsml-codemirror-mode\nBower Distribution of the Sparqlification Mapping Language (SML) Syntax Highlighting Mode for CodeMirror\n</textarea>\n            </div>\n        </div>\n        <script src=\"js/jquery.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {\n                testEditor = editormd(\"test-editormd\", {\n                    width  : \"90%\",\n                    height : 1600,\n                    path   : \"../lib/\"\n                });\n                \n                $(\"#enable-btn\").bind(\"click\", function() {\n                    testEditor.setToolbarAutoFixed(true);\n                    // or\n                    //testEditor.config(\"toolbarAutoFixed\", true);\n                });\n                \n                $(\"#disable-btn\").bind(\"click\", function() {\n                    testEditor.setToolbarAutoFixed(false);\n                    // or\n                    //testEditor.config(\"toolbarAutoFixed\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/use-requirejs.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Using require.js - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/codemirror.min.css\" /> \n        <!-- <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/fold/foldgutter.css\" /> -->\n        <link rel=\"stylesheet\" href=\"../css/editormd.min.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Using require.js</h1>\n                <ul style=\"margin: 10px 0 0 18px;\">\n                    <li>Enable HTML tags decode</li>\n                    <li>Enable TeX, Flowchart, Sequence Diagram, Emoji, FontAwesome, Task lists</li>\n                    <li>Enable Image upload</li>\n                    <li>Enable [TOCM], Search Replace, Code fold</li>\n                </ul>        \n            </header>\n            <div class=\"btns\">\n                <button id=\"show-btn\">Show editor</button>\n                <button id=\"hide-btn\">Hide editor</button>\n                <button id=\"get-md-btn\">Get Markdown</button>\n                <button id=\"get-html-btn\">Get HTML</button>\n                <button id=\"watch-btn\">Watch</button>\n                <button id=\"unwatch-btn\">Unwatch</button>\n                <button id=\"preview-btn\">Preview HTML (Press Shift + ESC cancel)</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press ESC cancel)</button>\n                <button id=\"show-toolbar-btn\">Show toolbar</button>\n                <button id=\"close-toolbar-btn\">Hide toolbar</button>\n                <button id=\"toc-menu-btn\">ToC Dropdown menu</button>\n                <button id=\"toc-default-btn\">ToC default</button>\n            </div>\n            <div id=\"test-editormd\"></div>\n        </div>   \n        <script src=\"js/require.min.js\"></script>\n        <script type=\"text/javascript\">            \n            requirejs.config({\n                baseUrl: \"../lib/\",\n                paths: {\n                    jquery          : \"../examples/js/jquery.min\",\n                    marked          : \"marked.min\",\n                    prettify        : \"prettify.min\",\n                    raphael         : \"raphael.min\",\n                    underscore      : \"underscore.min\",\n                    flowchart       : \"flowchart.min\", \n                    jqueryflowchart : \"jquery.flowchart.min\", \n                    sequenceDiagram : \"sequence-diagram.min\",\n                    katex           : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.1.1/katex.min\",\n                    editormd        : \"../editormd.amd\" // Using Editor.md amd version for Require.js\n                },\n                waitSeconds: 30\n            });\n            \n            var deps = [\n                \"editormd\", \n                \"../languages/en\", \n                \"../plugins/link-dialog/link-dialog\",\n                \"../plugins/reference-link-dialog/reference-link-dialog\",\n                \"../plugins/image-dialog/image-dialog\",\n                \"../plugins/code-block-dialog/code-block-dialog\",\n                \"../plugins/table-dialog/table-dialog\",\n                \"../plugins/emoji-dialog/emoji-dialog\",\n                \"../plugins/goto-line-dialog/goto-line-dialog\",\n                \"../plugins/help-dialog/help-dialog\",\n                \"../plugins/html-entities-dialog/html-entities-dialog\", \n                \"../plugins/preformatted-text-dialog/preformatted-text-dialog\"\n            ];\n            \n            var testEditor;\n                \n            require(deps, function(editormd) {\n                \n                // if enable codeFold\n                // or <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/fold/foldgutter.css\" />\n                editormd.loadCSS(\"../lib/codemirror/addon/fold/foldgutter\");\n                \n                $.get('test.md', function(md) {\n                    testEditor = editormd(\"test-editormd\", {\n                        width: \"90%\",\n                        height: 640,\n                        path : '../lib/',\n                        markdown : md,\n                        codeFold : true,\n                        searchReplace : true,\n                        saveHTMLToTextarea : true,                // 保存HTML到Textarea\n                        htmlDecode : \"style,script,iframe|on*\",       // 开启HTML标签解析，为了安全性，默认不开启    \n                        emoji : true,\n                        taskList : true,\n                        tex : true,\n                        tocm            : true,         // Using [TOCM]\n                        autoLoadModules : false,\n                        previewCodeHighlight : true,\n                        flowChart : true,\n                        sequenceDiagram : true,\n                        //dialogLockScreen : false,   // 设置弹出层对话框不锁屏，全局通用，默认为true\n                        //dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层，全局通用，默认为true\n                        //dialogDraggable : false,    // 设置弹出层对话框不可拖动，全局通用，默认为true\n                        //dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度，全局通用，默认值为0.1\n                        //dialogMaskBgColor : \"#000\", // 设置透明遮罩层的背景颜色，全局通用，默认为#fff\n                        imageUpload : true,\n                        imageFormats : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                        imageUploadURL : \"./php/upload.php\",\n                        onload : function() {\n                            console.log('onload', this);\n                            //this.fullscreen();\n                            //this.unwatch();\n                            //this.watch().fullscreen();\n\n                            //this.setMarkdown(\"#PHP\");\n                            //this.width(\"100%\");\n                            //this.height(480);\n                            //this.resize(\"100%\", 640);\n                        }\n                    });\n                });\n\n                $(\"#show-btn\").bind('click', function(){\n                    testEditor.show();\n                });\n\n                $(\"#hide-btn\").bind('click', function(){\n                    testEditor.hide();\n                });\n\n                $(\"#get-md-btn\").bind('click', function(){\n                    alert(testEditor.getMarkdown());\n                });\n\n                $(\"#get-html-btn\").bind('click', function() {\n                    alert(testEditor.getHTML());\n                });                \n\n                $(\"#watch-btn\").bind('click', function() {\n                    testEditor.watch();\n                });                 \n\n                $(\"#unwatch-btn\").bind('click', function() {\n                    testEditor.unwatch();\n                });              \n\n                $(\"#preview-btn\").bind('click', function() {\n                    testEditor.previewing();\n                });\n\n                $(\"#fullscreen-btn\").bind('click', function() {\n                    testEditor.fullscreen();\n                });\n\n                $(\"#show-toolbar-btn\").bind('click', function() {\n                    testEditor.showToolbar();\n                });\n\n                $(\"#close-toolbar-btn\").bind('click', function() {\n                    testEditor.hideToolbar();\n                });\n                \n                $(\"#toc-menu-btn\").click(function(){\n                    testEditor.config({\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents\",\n                    });\n                });\n                \n                $(\"#toc-default-btn\").click(function() {\n                    testEditor.config(\"tocDropdown\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/use-seajs.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Using sea.js - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.min.css\" /> \n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            header p code {\n                padding: 3px;\n                border: 1px solid #ddd;\n                background: #f6f6f6;\n                border-radius: 3px;\n                font-size: 85%;\n                font-family: Consolas, 'Monaco', courier, monospace;\n            }\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Using sea.js</h1>   \n                <p>说明：</p>\n                <p>1、由于Editor.md是依赖jQuery的，所以在使用Sea.js加载Editor.md时，要在jQuery.js文件尾部加上 <code>if(typeof define === \"function\") { define(function () { return $.noConflict(); }); }</code>，使jQuery支持Sea.js；</p>  \n                <p>2、flowChart（流程图）和sequenceDiagram（时序图）基于Raphael.js，由于疑似Sea.js与Raphael.js有冲突，所以必须先加载Raphael.js再加载Sea.js，Editor.md才能在Sea.js下正常进行；</p>      \n                <ul style=\"margin: 10px 0 0 18px;\">\n                    <li>Enable HTML tags decode</li>\n                    <li>Enable TeX, Flowchart, Sequence Diagram, Emoji, FontAwesome, Task lists</li>\n                    <li>Enable Image upload</li>\n                    <li>Enable [TOCM], Search Replace, Code fold</li>\n                </ul>  \n            </header>\n            <div class=\"btns\">\n                <button id=\"show-btn\">Show editor</button>\n                <button id=\"hide-btn\">Hide editor</button>\n                <button id=\"get-md-btn\">Get Markdown</button>\n                <button id=\"get-html-btn\">Get HTML</button>\n                <button id=\"watch-btn\">Watch</button>\n                <button id=\"unwatch-btn\">Unwatch</button>\n                <button id=\"preview-btn\">Preview HTML (Press Shift + ESC cancel)</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press ESC cancel)</button>\n                <button id=\"show-toolbar-btn\">Show toolbar</button>\n                <button id=\"close-toolbar-btn\">Hide toolbar</button>\n                <button id=\"toc-menu-btn\">ToC Dropdown menu</button>\n                <button id=\"toc-default-btn\">ToC default</button>\n            </div>\n            <div id=\"test-editormd\"></div>\n        </div>   \n        <!-- Flowchart & Sequence Diagram based on Raphael.js, and must load Raphael.js of Sea.js before. -->\n        <script src=\"../lib/raphael.min.js\"></script>\n        <script src=\"js/sea.js\"></script>\n        <script type=\"text/javascript\">\n            seajs.config({\n                base  : \"./\",\n                alias : {\n                    jquery   : \"js/jquery.min\",\n                    editormd : \"../editormd\"\n                }\n            });\n                \n            //seajs.use(\"./js/seajs-main\"); //使用main.js时 editormd 路径要改为 \"../../editormd\"\n            \n            var deps = [\n                \"jquery\", \n                \"editormd\", \n                \"../languages/en\", \n                \"../plugins/link-dialog/link-dialog\",\n                \"../plugins/reference-link-dialog/reference-link-dialog\",\n                \"../plugins/image-dialog/image-dialog\",\n                \"../plugins/code-block-dialog/code-block-dialog\",\n                \"../plugins/table-dialog/table-dialog\",\n                \"../plugins/emoji-dialog/emoji-dialog\",\n                \"../plugins/goto-line-dialog/goto-line-dialog\",\n                \"../plugins/help-dialog/help-dialog\",\n                \"../plugins/html-entities-dialog/html-entities-dialog\", \n                \"../plugins/preformatted-text-dialog/preformatted-text-dialog\"\n            ];\n\t\t\t\n            seajs.use(deps, function($, editormd) {\n                var testEditor;\n                \n                $.get(\"./test.md\", function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width: \"90%\",\n                        height: 640,\n                        path : '../lib/',\n                        markdown : md,\n                        //toolbar  : false,             // 关闭工具栏\n                        codeFold : true,\n                        searchReplace : true,\n                        saveHTMLToTextarea : true,      // 保存 HTML 到 Textarea\n                        htmlDecode : \"style,script,iframe|on*\",            // 开启 HTML 标签解析，为了安全性，默认不开启\n                        emoji : true,\n                        taskList : true,\n                        tocm            : true,          // Using [TOCM]\n                        tex : true,                      // 开启科学公式 TeX 语言支持，默认关闭\n                        //previewCodeHighlight : false,  // 关闭预览窗口的代码高亮，默认开启\n                        flowChart : true,                // 疑似 Sea.js与 Raphael.js 有冲突，必须先加载 Raphael.js ，Editor.md 才能在 Sea.js 下正常进行；\n                        sequenceDiagram : true,          // 同上\n                        //dialogLockScreen : false,      // 设置弹出层对话框不锁屏，全局通用，默认为 true\n                        //dialogShowMask : false,     // 设置弹出层对话框显示透明遮罩层，全局通用，默认为 true\n                        //dialogDraggable : false,    // 设置弹出层对话框不可拖动，全局通用，默认为 true\n                        //dialogMaskOpacity : 0.4,    // 设置透明遮罩层的透明度，全局通用，默认值为 0.1\n                        //dialogMaskBgColor : \"#000\", // 设置透明遮罩层的背景颜色，全局通用，默认为 #fff\n                        imageUpload : true,\n                        imageFormats : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                        imageUploadURL : \"./php/upload.php\",\n                        onload : function() {\n                            console.log('onload', this);\n                            //this.fullscreen();\n                            //this.unwatch();\n                            //this.watch().fullscreen();\n\n                            //this.setMarkdown(\"#PHP\");\n                            //this.width(\"100%\");\n                            //this.height(480);\n                            //this.resize(\"100%\", 640);\n                        }\n                    });\n                });\n\n                $(\"#show-btn\").bind('click', function(){\n                    testEditor.show();\n                });\n\n                $(\"#hide-btn\").bind('click', function(){\n                    testEditor.hide();\n                });\n\n                $(\"#get-md-btn\").bind('click', function(){\n                    alert(testEditor.getMarkdown());\n                });\n\n                $(\"#get-html-btn\").bind('click', function() {\n                    alert(testEditor.getHTML());\n                });                \n\n                $(\"#watch-btn\").bind('click', function() {\n                    testEditor.watch();\n                });                 \n\n                $(\"#unwatch-btn\").bind('click', function() {\n                    testEditor.unwatch();\n                });              \n\n                $(\"#preview-btn\").bind('click', function() {\n                    testEditor.previewing();\n                });\n\n                $(\"#fullscreen-btn\").bind('click', function() {\n                    testEditor.fullscreen();\n                });\n                \n                $(\"#show-toolbar-btn\").bind('click', function() {\n                    testEditor.showToolbar();\n                });\n                \n                $(\"#close-toolbar-btn\").bind('click', function() {\n                    testEditor.hideToolbar();\n                });\n                \n                $(\"#toc-menu-btn\").click(function(){\n                    testEditor.config({\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents\",\n                    });\n                });\n                \n                $(\"#toc-default-btn\").click(function() {\n                    testEditor.config(\"tocDropdown\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/examples/use-zepto.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Using Zepto.js - Editor.md examples</title>\n        <link rel=\"stylesheet\" href=\"css/style.css\" />\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Using Zepto.js</h1>\n                <ul style=\"margin: 10px 0 0 18px;\">\n                    <li>Enable HTML tags decode</li>\n                    <li>Enable TeX, Flowchart, Sequence Diagram, Emoji, FontAwesome, Task lists</li>\n                    <li>Enable Image upload</li>\n                    <li>Enable [TOCM], Search Replace, Code fold</li>\n                </ul>  \n            </header>\n            <div class=\"btns\">\n                <button id=\"show-btn\">Show editor</button>\n                <button id=\"hide-btn\">Hide editor</button>\n                <button id=\"get-md-btn\">Get Markdown</button>\n                <button id=\"get-html-btn\">Get HTML</button>\n                <button id=\"watch-btn\">Watch</button>\n                <button id=\"unwatch-btn\">Unwatch</button>\n                <button id=\"preview-btn\">Preview HTML (Press Shift + ESC cancel)</button>\n                <button id=\"fullscreen-btn\">Fullscreen (Press ESC cancel)</button>\n                <button id=\"show-toolbar-btn\">Show toolbar</button>\n                <button id=\"close-toolbar-btn\">Hide toolbar</button>\n                <button id=\"toc-menu-btn\">ToC Dropdown menu</button>\n                <button id=\"toc-default-btn\">ToC default</button>\n            </div>\n            <form action=\"http://editormd.ipandao.com/php/post.php\" method=\"post\">\n                <div class=\"editormd\" id=\"test-editormd\">                \n                    <textarea>### Hello world!</textarea>\n                </div>\n                <br/><input type=\"submit\" name=\"submit\" value=\"Submit\" class=\"btn\" style=\"margin-left: 5%;\" />\n            </form>\n        </div>        \n        <script src=\"js/zepto.min.js\"></script>\n        <script src=\"../editormd.js\"></script>   \n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\t\t\tvar jQuery = Zepto;  // 为了避免修改 flowChart.js 和 sequence-diagram.js 的源码，所以想支持 flowChart / sequenceDiagram 就得加上这一句\n\n            $(function() {\n                $.get(\"./test.md\", function(md){\n\t\t\t\t\ttestEditor = editormd(\"test-editormd\", {\n\t\t\t\t\t\twidth  : \"90%\",\n\t\t\t\t\t\theight : 720,\n\t\t\t\t\t\tpath   : '../lib/',\n\t\t\t\t\t\tmarkdown : md,\n                        codeFold : true,\n                        searchReplace : true,\n                        saveHTMLToTextarea : true,    // 保存 HTML 到 Textarea\n                        //watch : false,\n                        htmlDecode : \"style,script,iframe|on*\",            // 开启 HTML 标签解析，为了安全性，默认不开启\n                        emoji : true,\n                        taskList : true,\n                        tocm            : true,         // Using [TOCM]\n                        tex : true,                     // 开启科学公式 TeX 语言支持，默认关闭\n                        //previewCodeHighlight : false,  // 关闭预览窗口的代码高亮，默认开启\n                        flowChart : true,  \n                        sequenceDiagram : true,         // 同上\n\t\t\t\t\t\tonload : function() {\n\t\t\t\t\t\t\tconsole.log(\"onload =>\", this, this.id, this.settings);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n                $(\"#show-btn\").bind('click', function(){\n                    testEditor.show();\n                });\n\n                $(\"#hide-btn\").bind('click', function(){\n                    testEditor.hide();\n                });\n\n                $(\"#get-md-btn\").bind('click', function(){\n                    alert(testEditor.getMarkdown());\n                });\n\n                $(\"#get-html-btn\").bind('click', function() {\n                    alert(testEditor.getHTML());\n                });                \n\n                $(\"#watch-btn\").bind('click', function() {\n                    testEditor.watch();\n                });                 \n\n                $(\"#unwatch-btn\").bind('click', function() {\n                    testEditor.unwatch();\n                });              \n\n                $(\"#preview-btn\").bind('click', function() {\n                    testEditor.previewing();\n                });\n\n                $(\"#fullscreen-btn\").bind('click', function() {\n                    testEditor.fullscreen();\n                });\n                \n                $(\"#show-toolbar-btn\").bind('click', function() {\n                    testEditor.showToolbar();\n                });\n                \n                $(\"#close-toolbar-btn\").bind('click', function() {\n                    testEditor.hideToolbar();\n                });\n                \n                $(\"#toc-menu-btn\").click(function(){\n                    testEditor.config({\n                        tocDropdown   : true,\n                        tocTitle      : \"目录 Table of Contents\",\n                    });\n                });\n                \n                $(\"#toc-default-btn\").click(function() {\n                    testEditor.config(\"tocDropdown\", false);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/languages/en.js",
    "content": "(function(){\n    var factory = function (exports) {\n        var lang = {\n            name : \"en\",\n            description : \"Open source online Markdown editor.\",\n            tocTitle    : \"Table of Contents\",\n            toolbar : {\n                undo             : \"Undo(Ctrl+Z)\",\n                redo             : \"Redo(Ctrl+Y)\",\n                bold             : \"Bold\",\n                del              : \"Strikethrough\",\n                italic           : \"Italic\",\n                quote            : \"Block quote\",\n                ucwords          : \"Words first letter convert to uppercase\",\n                uppercase        : \"Selection text convert to uppercase\",\n                lowercase        : \"Selection text convert to lowercase\",\n                h1               : \"Heading 1\",\n                h2               : \"Heading 2\",\n                h3               : \"Heading 3\",\n                h4               : \"Heading 4\",\n                h5               : \"Heading 5\",\n                h6               : \"Heading 6\",\n                \"list-ul\"        : \"Unordered list\",\n                \"list-ol\"        : \"Ordered list\",\n                hr               : \"Horizontal rule\",\n                link             : \"Link\",\n                \"reference-link\" : \"Reference link\",\n                image            : \"Image\",\n                code             : \"Code inline\",\n                \"preformatted-text\" : \"Preformatted text / Code block (Tab indent)\",\n                \"code-block\"     : \"Code block (Multi-languages)\",\n                table            : \"Tables\",\n                datetime         : \"Datetime\",\n                emoji            : \"Emoji\",\n                \"html-entities\"  : \"HTML Entities\",\n                pagebreak        : \"Page break\",\n                watch            : \"Unwatch\",\n                unwatch          : \"Watch\",\n                preview          : \"HTML Preview (Press Shift + ESC exit)\",\n                fullscreen       : \"Fullscreen (Press ESC exit)\",\n                clear            : \"Clear\",\n                search           : \"Search\",\n                help             : \"Help\",\n                info             : \"About \" + exports.title\n            },\n            buttons : {\n                enter  : \"Enter\",\n                cancel : \"Cancel\",\n                close  : \"Close\"\n            },\n            dialog : {\n                link : {\n                    title    : \"Link\",\n                    url      : \"Address\",\n                    urlTitle : \"Title\",\n                    urlEmpty : \"Error: Please fill in the link address.\"\n                },\n                referenceLink : {\n                    title    : \"Reference link\",\n                    name     : \"Name\",\n                    url      : \"Address\",\n                    urlId    : \"ID\",\n                    urlTitle : \"Title\",\n                    nameEmpty: \"Error: Reference name can't be empty.\",\n                    idEmpty  : \"Error: Please fill in reference link id.\",\n                    urlEmpty : \"Error: Please fill in reference link url address.\"\n                },\n                image : {\n                    title    : \"Image\",\n                    url      : \"Address\",\n                    link     : \"Link\",\n                    alt      : \"Title\",\n                    uploadButton     : \"Upload\",\n                    imageURLEmpty    : \"Error: picture url address can't be empty.\",\n                    uploadFileEmpty  : \"Error: upload pictures cannot be empty!\",\n                    formatNotAllowed : \"Error: only allows to upload pictures file, upload allowed image file format:\"\n                },\n                preformattedText : {\n                    title             : \"Preformatted text / Codes\", \n                    emptyAlert        : \"Error: Please fill in the Preformatted text or content of the codes.\",\n                    placeholder       : \"coding now....\"\n                },\n                codeBlock : {\n                    title             : \"Code block\",         \n                    selectLabel       : \"Languages: \",\n                    selectDefaultText : \"select a code language...\",\n                    otherLanguage     : \"Other languages\",\n                    unselectedLanguageAlert : \"Error: Please select the code language.\",\n                    codeEmptyAlert    : \"Error: Please fill in the code content.\",\n                    placeholder       : \"coding now....\"\n                },\n                htmlEntities : {\n                    title : \"HTML Entities\"\n                },\n                help : {\n                    title : \"Help\"\n                }\n            }\n        };\n        \n        exports.defaults.lang = lang;\n    };\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n    \n})();"
  },
  {
    "path": "public/static/home/editormd/languages/zh-tw.js",
    "content": "(function(){\n    var factory = function (exports) {\n        var lang = {\n            name : \"zh-tw\",\n            description : \"開源在線Markdown編輯器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目錄\",\n            toolbar     : {\n                undo             : \"撤銷（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗體\",\n                del              : \"刪除線\",\n                italic           : \"斜體\",\n                quote            : \"引用\",\n                ucwords          : \"將所選的每個單詞首字母轉成大寫\",\n                uppercase        : \"將所選文本轉成大寫\",\n                lowercase        : \"將所選文本轉成小寫\",\n                h1               : \"標題1\",\n                h2               : \"標題2\",\n                h3               : \"標題3\",\n                h4               : \"標題4\",\n                h5               : \"標題5\",\n                h6               : \"標題6\",\n                \"list-ul\"        : \"無序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用鏈接\",\n                image            : \"圖片\",\n                code             : \"行內代碼\",\n                \"preformatted-text\" : \"預格式文本 / 代碼塊（縮進風格）\",\n                \"code-block\"     : \"代碼塊（多語言風格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期時間\",\n                emoji            : \"Emoji 表情\",\n                \"html-entities\"  : \"HTML 實體字符\",\n                pagebreak        : \"插入分頁符\",\n                watch            : \"關閉實時預覽\",\n                unwatch          : \"開啟實時預覽\",\n                preview          : \"全窗口預覽HTML（按 Shift + ESC 退出）\",\n                fullscreen       : \"全屏（按 ESC 退出）\",\n                clear            : \"清空\",\n                search           : \"搜尋\",\n                help             : \"使用幫助\",\n                info             : \"關於\" + exports.title\n            },\n            buttons : {\n                enter  : \"確定\",\n                cancel : \"取消\",\n                close  : \"關閉\"\n            },\n            dialog : {\n                link   : {\n                    title    : \"添加鏈接\",\n                    url      : \"鏈接地址\",\n                    urlTitle : \"鏈接標題\",\n                    urlEmpty : \"錯誤：請填寫鏈接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用鏈接\",\n                    name     : \"引用名稱\",\n                    url      : \"鏈接地址\",\n                    urlId    : \"鏈接ID\",\n                    urlTitle : \"鏈接標題\",\n                    nameEmpty: \"錯誤：引用鏈接的名稱不能為空。\",\n                    idEmpty  : \"錯誤：請填寫引用鏈接的ID。\",\n                    urlEmpty : \"錯誤：請填寫引用鏈接的URL地址。\"\n                },\n                image  : {\n                    title    : \"添加圖片\",\n                    url      : \"圖片地址\",\n                    link     : \"圖片鏈接\",\n                    alt      : \"圖片描述\",\n                    uploadButton     : \"本地上傳\",\n                    imageURLEmpty    : \"錯誤：圖片地址不能為空。\",\n                    uploadFileEmpty  : \"錯誤：上傳的圖片不能為空！\",\n                    formatNotAllowed : \"錯誤：只允許上傳圖片文件，允許上傳的圖片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加預格式文本或代碼塊\", \n                    emptyAlert        : \"錯誤：請填寫預格式文本或代碼的內容。\",\n                    placeholder       : \"coding now....\"\n                },\n                codeBlock : {\n                    title             : \"添加代碼塊\",                 \n                    selectLabel       : \"代碼語言：\",\n                    selectDefaultText : \"請語言代碼語言\",\n                    otherLanguage     : \"其他語言\",\n                    unselectedLanguageAlert : \"錯誤：請選擇代碼所屬的語言類型。\",\n                    codeEmptyAlert    : \"錯誤：請填寫代碼內容。\",\n                    placeholder:      : \"coding now....\"\n                },\n                htmlEntities : {\n                    title : \"HTML實體字符\"\n                },\n                help : {\n                    title : \"使用幫助\"\n                }\n            }\n        };\n        \n        exports.defaults.lang = lang;\n    };\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n    \n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/AUTHORS",
    "content": "List of CodeMirror contributors. Updated before every release.\n\n4r2r\nAaron Brooks\nAbdelouahab\nAbe Fettig\nAdam Ahmed\nAdam King\nadanlobato\nAdán Lobato\nAdrian Aichner\naeroson\nAhmad Amireh\nAhmad M. Zawawi\nahoward\nAkeksandr Motsjonov\nAlberto González Palomo\nAlberto Pose\nAlbert Xing\nAlexander Pavlov\nAlexander Schepanovski\nAlexander Shvets\nAlexander Solovyov\nAlexandre Bique\nalexey-k\nAlex Piggott\nAliaksei Chapyzhenka\nAmsul\namuntean\nAmy\nAnanya Sen\nanaran\nAndersMad\nAnders Nawroth\nAnderson Mesquita\nAndrea G\nAndreas Reischuck\nAndre von Houck\nAndrey Fedorov\nAndrey Klyuchnikov\nAndrey Lushnikov\nAndy Joslin\nAndy Kimball\nAndy Li\nangelozerr\nangelo.zerr@gmail.com\nAnkit\nAnkit Ahuja\nAnsel Santosa\nAnthony Grimes\nAnton Kovalyov\nareos\nas3boyan\nAtomicPages LLC\nAtul Bhouraskar\nAurelian Oancea\nBastian Müller\nBem Jones-Bey\nbenbro\nBeni Cherniavsky-Paskin\nBenjamin DeCoste\nBen Keen\nBernhard Sirlinger\nBert Chang\nBilly Moon\nbinny\nB Krishna Chaitanya\nBlaine G\nblukat29\nboomyjee\nborawjm\nBrandon Frohs\nBrandon Wamboldt\nBrett Zamir\nBrian Grinstead\nBrian Sletten\nBruce Mitchener\nChandra Sekhar Pydi\nCharles Skelton\nCheah Chu Yeow\nChris Coyier\nChris Granger\nChris Houseknecht\nChris Morgan\nChristian Oyarzun\nChristian Petrov\nChristopher Brown\nciaranj\nCodeAnimal\nComFreek\nCurtis Gagliardi\ndagsta\ndaines\nDale Jung\nDan Bentley\nDan Heberden\nDaniel, Dao Quang Minh\nDaniele Di Sarli\nDaniel Faust\nDaniel Huigens\nDaniel KJ\nDaniel Neel\nDaniel Parnell\nDanny Yoo\ndarealshinji\nDarius Roberts\nDave Myers\nDavid Mignot\nDavid Pathakjee\nDavid Vázquez\ndeebugger\nDeep Thought\nDevon Carew\ndignifiedquire\nDimage Sapelkin\nDmitry Kiselyov\ndomagoj412\nDominator008\nDomizio Demichelis\nDoug Wikle\nDrew Bratcher\nDrew Hintz\nDrew Khoury\nDror BG\nduralog\neborden\nedsharp\nekhaled\nEnam Mijbah Noor\nEric Allam\neustas\nFabien O'Carroll\nFabio Zendhi Nagao\nFaiza Alsaied\nFauntleroy\nfbuchinger\nfeizhang365\nFelipe Lalanne\nFelix Raab\nFilip Noetzel\nflack\nForbesLindesay\nForbes Lindesay\nFord_Lawnmower\nForrest Oliphant\nFrank Wiegand\nGabriel Gheorghian\nGabriel Horner\nGabriel Nahmias\ngalambalazs\nGautam Mehta\ngekkoe\nGerard Braad\nGergely Hegykozi\nGiovanni Calò\nGlenn Jorde\nGlenn Ruehle\nGolevka\nGordon Smith\nGrant Skinner\ngreengiant\nGregory Koberger\nGuillaume Massé\nGuillaume Massé\nGustavo Rodrigues\nHakan Tunc\nHans Engel\nHardest\nHasan Karahan\nHerculano Campos\nHiroyuki Makino\nhitsthings\nHocdoc\nIan Beck\nIan Dickinson\nIan Wehrman\nIan Wetherbee\nIce White\nICHIKAWA, Yuji\nilvalle\nIngo Richter\nIrakli Gozalishvili\nIvan Kurnosov\nJacob Lee\nJakob Miland\nJakub Vrana\nJakub Vrána\nJames Campos\nJames Thorne\nJamie Hill\nJan Jongboom\njankeromnes\nJan Keromnes\nJan Odvarko\nJan T. Sott\nJared Forsyth\nJason\nJason Barnabe\nJason Grout\nJason Johnston\nJason San Jose\nJason Siefken\nJaydeep Solanki\nJean Boussier\njeffkenton\nJeff Pickhardt\njem (graphite)\nJeremy Parmenter\nJochen Berger\nJohan Ask\nJohn Connor\nJohn Lees-Miller\nJohn Snelson\nJohn Van Der Loo\nJonathan Malmaud\njongalloway\nJon Malmaud\nJon Sangster\nJoost-Wim Boekesteijn\nJoseph Pecoraro\nJoshua Newman\nJosh Watzman\njots\njsoojeon\nJuan Benavides Romero\nJucovschi Constantin\nJuho Vuori\nJustin Hileman\njwallers@gmail.com\nkaniga\nKen Newman\nKen Rockot\nKevin Sawicki\nKevin Ushey\nKlaus Silveira\nKoh Zi Han, Cliff\nkomakino\nKonstantin Lopuhin\nkoops\nks-ifware\nkubelsmieci\nKwanEsq\nLanfei\nLanny\nLaszlo Vidacs\nleaf corcoran\nLeonid Khachaturov\nLeon Sorokin\nLeonya Khachaturov\nLiam Newman\nLM\nlochel\nLorenzo Stoakes\nLuciano Longo\nLuke Stagner\nlynschinzer\nMaksim Lin\nMaksym Taran\nMalay Majithia\nManuel Rego Casasnovas\nMarat Dreizin\nMarcel Gerber\nMarco Aurélio\nMarco Munizaga\nMarcus Bointon\nMarek Rudnicki\nMarijn Haverbeke\nMário Gonçalves\nMario Pietsch\nMark Lentczner\nMarko Bonaci\nMartin Balek\nMartín Gaitán\nMartin Hasoň\nMason Malone\nMateusz Paprocki\nMathias Bynens\nmats cronqvist\nMatthew Beale\nMatthias Bussonnier\nMatthias BUSSONNIER\nMatt McDonald\nMatt Pass\nMatt Sacks\nmauricio\nMaximilian Hils\nMaxim Kraev\nMax Kirsch\nMax Xiantu\nmbarkhau\nMetatheos\nMicah Dubinko\nMichael Lehenbauer\nMichael Zhou\nMighty Guava\nMiguel Castillo\nmihailik\nMike\nMike Brevoort\nMike Diaz\nMike Ivanov\nMike Kadin\nMinRK\nMiraculix87\nmisfo\nmloginov\nMoritz Schwörer\nmps\nmtaran-google\nNarciso Jaramillo\nNathan Williams\nndr\nnerbert\nnextrevision\nngn\nnguillaumin\nNg Zhi An\nNicholas Bollweg\nNicholas Bollweg (Nick)\nNick Small\nNiels van Groningen\nnightwing\nNikita Beloglazov\nNikita Vasilyev\nNikolay Kostov\nnilp0inter\nNisarg Jhaveri\nnlwillia\nNorman Rzepka\npablo\nPage\nPanupong Pasupat\nparis\nPatil Arpith\nPatrick Stoica\nPatrick Strawderman\nPaul Garvin\nPaul Ivanov\nPavel Feldman\nPavel Strashkin\nPaweł Bartkiewicz\npeteguhl\nPeter Flynn\npeterkroon\nPeter Kroon\nprasanthj\nPrasanth J\nRadek Piórkowski\nRahul\nRandall Mason\nRandy Burden\nRandy Edmunds\nRasmus Erik Voel Jensen\nRay Ratchup\nRichard van der Meer\nRichard Z.H. Wang\nRobert Crossfield\nRoberto Abdelkader Martínez Pérez\nrobertop23\nRobert Plummer\nRuslan Osmanov\nRyan Prior\nsabaca\nSamuel Ainsworth\nsandeepshetty\nSander AKA Redsandro\nsantec\nSascha Peilicke\nsatchmorun\nsathyamoorthi\nSCLINIC\\jdecker\nScott Aikin\nScott Goodhew\nSebastian Zaha\nshaund\nshaun gilchrist\nShawn A\nsheopory\nShiv Deepak\nShmuel Englard\nShubham Jain\nsilverwind\nsnasa\nsoliton4\nsonson\nspastorelli\nsrajanpaliwal\nStanislav Oaserele\nStas Kobzar\nStefan Borsje\nSteffen Beyer\nSteve O'Hara\nstoskov\nTaha Jahangir\nTakuji Shimokawa\nTarmil\ntel\ntfjgeorge\nThaddee Tyl\nTheHowl\nthink\nThomas Dvornik\nThomas Schmid\nTim Alby\nTim Baumann\nTimothy Farrell\nTimothy Hatcher\nTobiasBg\nTomas-A\nTomas Varaneckas\nTom Erik Støwer\nTom MacWright\nTony Jian\nTravis Heppe\nTriangle717\ntwifkak\nVestimir Markov\nvf\nVincent Woo\nVolker Mische\nwenli\nWesley Wiser\nWill Binns-Smith\nWilliam Jamieson\nWilliam Stein\nWilly\nWojtek Ptak\nXavier Mendez\nYassin N. Hassan\nYNH Webdev\nYunchi Luo\nYuvi Panda\nZachary Dremann\nZhang Hao\nzziuni\n魏鹏刚\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/LICENSE",
    "content": "Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/README.md",
    "content": "# CodeMirror\n[![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror)\n[![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror)  \n[Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/)\n\nCodeMirror is a JavaScript component that provides a code editor in\nthe browser. When a mode is available for the language you are coding\nin, it will color your code, and optionally help with indentation.\n\nThe project page is http://codemirror.net  \nThe manual is at http://codemirror.net/doc/manual.html  \nThe contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md)\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/comment/comment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var noOptions = {};\n  var nonWS = /[^\\s\\u00a0]/;\n  var Pos = CodeMirror.Pos;\n\n  function firstNonWS(str) {\n    var found = str.search(nonWS);\n    return found == -1 ? 0 : found;\n  }\n\n  CodeMirror.commands.toggleComment = function(cm) {\n    var minLine = Infinity, ranges = cm.listSelections(), mode = null;\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var from = ranges[i].from(), to = ranges[i].to();\n      if (from.line >= minLine) continue;\n      if (to.line >= minLine) to = Pos(minLine, 0);\n      minLine = from.line;\n      if (mode == null) {\n        if (cm.uncomment(from, to)) mode = \"un\";\n        else { cm.lineComment(from, to); mode = \"line\"; }\n      } else if (mode == \"un\") {\n        cm.uncomment(from, to);\n      } else {\n        cm.lineComment(from, to);\n      }\n    }\n  };\n\n  CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var commentString = options.lineComment || mode.lineComment;\n    if (!commentString) {\n      if (options.blockCommentStart || mode.blockCommentStart) {\n        options.fullLines = true;\n        self.blockComment(from, to, options);\n      }\n      return;\n    }\n    var firstLine = self.getLine(from.line);\n    if (firstLine == null) return;\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n    var pad = options.padding == null ? \" \" : options.padding;\n    var blankLines = options.commentBlankLines || from.line == to.line;\n\n    self.operation(function() {\n      if (options.indent) {\n        var baseString = firstLine.slice(0, firstNonWS(firstLine));\n        for (var i = from.line; i < end; ++i) {\n          var line = self.getLine(i), cut = baseString.length;\n          if (!blankLines && !nonWS.test(line)) continue;\n          if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n          self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n        }\n      } else {\n        for (var i = from.line; i < end; ++i) {\n          if (blankLines || nonWS.test(self.getLine(i)))\n            self.replaceRange(commentString + pad, Pos(i, 0));\n        }\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) {\n      if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n        self.lineComment(from, to, options);\n      return;\n    }\n\n    var end = Math.min(to.line, self.lastLine());\n    if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n    var pad = options.padding == null ? \" \" : options.padding;\n    if (from.line > end) return;\n\n    self.operation(function() {\n      if (options.fullLines != false) {\n        var lastLineHasText = nonWS.test(self.getLine(end));\n        self.replaceRange(pad + endString, Pos(end));\n        self.replaceRange(startString + pad, Pos(from.line, 0));\n        var lead = options.blockCommentLead || mode.blockCommentLead;\n        if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n          if (i != end || lastLineHasText)\n            self.replaceRange(lead + pad, Pos(i, 0));\n      } else {\n        self.replaceRange(endString, to);\n        self.replaceRange(startString, from);\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n    // Try finding line comments\n    var lineString = options.lineComment || mode.lineComment, lines = [];\n    var pad = options.padding == null ? \" \" : options.padding, didSomething;\n    lineComment: {\n      if (!lineString) break lineComment;\n      for (var i = start; i <= end; ++i) {\n        var line = self.getLine(i);\n        var found = line.indexOf(lineString);\n        if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n        if (found == -1 && (i != end || i == start) && nonWS.test(line)) break lineComment;\n        if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n        lines.push(line);\n      }\n      self.operation(function() {\n        for (var i = start; i <= end; ++i) {\n          var line = lines[i - start];\n          var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n          if (pos < 0) continue;\n          if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n          didSomething = true;\n          self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n        }\n      });\n      if (didSomething) return true;\n    }\n\n    // Try block comments\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) return false;\n    var lead = options.blockCommentLead || mode.blockCommentLead;\n    var startLine = self.getLine(start), endLine = end == start ? startLine : self.getLine(end);\n    var open = startLine.indexOf(startString), close = endLine.lastIndexOf(endString);\n    if (close == -1 && start != end) {\n      endLine = self.getLine(--end);\n      close = endLine.lastIndexOf(endString);\n    }\n    if (open == -1 || close == -1 ||\n        !/comment/.test(self.getTokenTypeAt(Pos(start, open + 1))) ||\n        !/comment/.test(self.getTokenTypeAt(Pos(end, close + 1))))\n      return false;\n\n    // Avoid killing block comments completely outside the selection.\n    // Positions of the last startString before the start of the selection, and the first endString after it.\n    var lastStart = startLine.lastIndexOf(startString, from.ch);\n    var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n    if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n    // Positions of the first endString after the end of the selection, and the last startString before it.\n    firstEnd = endLine.indexOf(endString, to.ch);\n    var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n    lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n    if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n    self.operation(function() {\n      self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n                        Pos(end, close + endString.length));\n      var openEnd = open + startString.length;\n      if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n      self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n      if (lead) for (var i = start + 1; i <= end; ++i) {\n        var line = self.getLine(i), found = line.indexOf(lead);\n        if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n        var foundEnd = found + lead.length;\n        if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n        self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n      }\n    });\n    return true;\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/comment/continuecomment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var modes = [\"clike\", \"css\", \"javascript\"];\n\n  for (var i = 0; i < modes.length; ++i)\n    CodeMirror.extendMode(modes[i], {blockCommentContinue: \" * \"});\n\n  function continueComment(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), mode, inserts = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head, token = cm.getTokenAt(pos);\n      if (token.type != \"comment\") return CodeMirror.Pass;\n      var modeHere = CodeMirror.innerMode(cm.getMode(), token.state).mode;\n      if (!mode) mode = modeHere;\n      else if (mode != modeHere) return CodeMirror.Pass;\n\n      var insert = null;\n      if (mode.blockCommentStart && mode.blockCommentContinue) {\n        var end = token.string.indexOf(mode.blockCommentEnd);\n        var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found;\n        if (end != -1 && end == token.string.length - mode.blockCommentEnd.length && pos.ch >= end) {\n          // Comment ended, don't continue it\n        } else if (token.string.indexOf(mode.blockCommentStart) == 0) {\n          insert = full.slice(0, token.start);\n          if (!/^\\s*$/.test(insert)) {\n            insert = \"\";\n            for (var j = 0; j < token.start; ++j) insert += \" \";\n          }\n        } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 &&\n                   found + mode.blockCommentContinue.length > token.start &&\n                   /^\\s*$/.test(full.slice(0, found))) {\n          insert = full.slice(0, found);\n        }\n        if (insert != null) insert += mode.blockCommentContinue;\n      }\n      if (insert == null && mode.lineComment && continueLineCommentEnabled(cm)) {\n        var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);\n        if (found > -1) {\n          insert = line.slice(0, found);\n          if (/\\S/.test(insert)) insert = null;\n          else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\\s*/)[0];\n        }\n      }\n      if (insert == null) return CodeMirror.Pass;\n      inserts[i] = \"\\n\" + insert;\n    }\n\n    cm.operation(function() {\n      for (var i = ranges.length - 1; i >= 0; i--)\n        cm.replaceRange(inserts[i], ranges[i].from(), ranges[i].to(), \"+insert\");\n    });\n  }\n\n  function continueLineCommentEnabled(cm) {\n    var opt = cm.getOption(\"continueComments\");\n    if (opt && typeof opt == \"object\")\n      return opt.continueLineComment !== false;\n    return true;\n  }\n\n  CodeMirror.defineOption(\"continueComments\", null, function(cm, val, prev) {\n    if (prev && prev != CodeMirror.Init)\n      cm.removeKeyMap(\"continueComment\");\n    if (val) {\n      var key = \"Enter\";\n      if (typeof val == \"string\")\n        key = val;\n      else if (typeof val == \"object\" && val.key)\n        key = val.key;\n      var map = {name: \"continueComment\"};\n      map[key] = continueComment;\n      cm.addKeyMap(map);\n    }\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/dialog/dialog.css",
    "content": ".CodeMirror-dialog {\n  position: absolute;\n  left: 0; right: 0;\n  background: white;\n  z-index: 15;\n  padding: .1em .8em;\n  overflow: hidden;\n  color: #333;\n}\n\n.CodeMirror-dialog-top {\n  border-bottom: 1px solid #eee;\n  top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n  border-top: 1px solid #eee;\n  bottom: 0;\n}\n\n.CodeMirror-dialog input {\n  border: none;\n  outline: none;\n  background: transparent;\n  width: 20em;\n  color: inherit;\n  font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n  font-size: 70%;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/dialog/dialog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Open simple dialogs on top of an editor. Relies on dialog.css.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  function dialogDiv(cm, template, bottom) {\n    var wrap = cm.getWrapperElement();\n    var dialog;\n    dialog = wrap.appendChild(document.createElement(\"div\"));\n    if (bottom)\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-bottom\";\n    else\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-top\";\n\n    if (typeof template == \"string\") {\n      dialog.innerHTML = template;\n    } else { // Assuming it's a detached DOM element.\n      dialog.appendChild(template);\n    }\n    return dialog;\n  }\n\n  function closeNotification(cm, newVal) {\n    if (cm.state.currentNotificationClose)\n      cm.state.currentNotificationClose();\n    cm.state.currentNotificationClose = newVal;\n  }\n\n  CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n    if (!options) options = {};\n\n    closeNotification(this, null);\n\n    var dialog = dialogDiv(this, template, options.bottom);\n    var closed = false, me = this;\n    function close(newVal) {\n      if (typeof newVal == 'string') {\n        inp.value = newVal;\n      } else {\n        if (closed) return;\n        closed = true;\n        dialog.parentNode.removeChild(dialog);\n        me.focus();\n\n        if (options.onClose) options.onClose(dialog);\n      }\n    }\n\n    var inp = dialog.getElementsByTagName(\"input\")[0], button;\n    if (inp) {\n      if (options.value) {\n        inp.value = options.value;\n        inp.select();\n      }\n\n      if (options.onInput)\n        CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n      if (options.onKeyUp)\n        CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n      CodeMirror.on(inp, \"keydown\", function(e) {\n        if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n        if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n          inp.blur();\n          CodeMirror.e_stop(e);\n          close();\n        }\n        if (e.keyCode == 13) callback(inp.value, e);\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(inp, \"blur\", close);\n\n      inp.focus();\n    } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n      CodeMirror.on(button, \"click\", function() {\n        close();\n        me.focus();\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n      button.focus();\n    }\n    return close;\n  });\n\n  CodeMirror.defineExtension(\"openConfirm\", function(template, callbacks, options) {\n    closeNotification(this, null);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var buttons = dialog.getElementsByTagName(\"button\");\n    var closed = false, me = this, blurring = 1;\n    function close() {\n      if (closed) return;\n      closed = true;\n      dialog.parentNode.removeChild(dialog);\n      me.focus();\n    }\n    buttons[0].focus();\n    for (var i = 0; i < buttons.length; ++i) {\n      var b = buttons[i];\n      (function(callback) {\n        CodeMirror.on(b, \"click\", function(e) {\n          CodeMirror.e_preventDefault(e);\n          close();\n          if (callback) callback(me);\n        });\n      })(callbacks[i]);\n      CodeMirror.on(b, \"blur\", function() {\n        --blurring;\n        setTimeout(function() { if (blurring <= 0) close(); }, 200);\n      });\n      CodeMirror.on(b, \"focus\", function() { ++blurring; });\n    }\n  });\n\n  /*\n   * openNotification\n   * Opens a notification, that can be closed with an optional timer\n   * (default 5000ms timer) and always closes on click.\n   *\n   * If a notification is opened while another is opened, it will close the\n   * currently opened one and open the new one immediately.\n   */\n  CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n    closeNotification(this, close);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var closed = false, doneTimer;\n    var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n    function close() {\n      if (closed) return;\n      closed = true;\n      clearTimeout(doneTimer);\n      dialog.parentNode.removeChild(dialog);\n    }\n\n    CodeMirror.on(dialog, 'click', function(e) {\n      CodeMirror.e_preventDefault(e);\n      close();\n    });\n\n    if (duration)\n      doneTimer = setTimeout(close, duration);\n\n    return close;\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/display/fullscreen.css",
    "content": ".CodeMirror-fullscreen {\n  position: fixed;\n  top: 0; left: 0; right: 0; bottom: 0;\n  height: auto;\n  z-index: 9;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/display/fullscreen.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"fullScreen\", false, function(cm, val, old) {\n    if (old == CodeMirror.Init) old = false;\n    if (!old == !val) return;\n    if (val) setFullscreen(cm);\n    else setNormal(cm);\n  });\n\n  function setFullscreen(cm) {\n    var wrap = cm.getWrapperElement();\n    cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,\n                                  width: wrap.style.width, height: wrap.style.height};\n    wrap.style.width = \"\";\n    wrap.style.height = \"auto\";\n    wrap.className += \" CodeMirror-fullscreen\";\n    document.documentElement.style.overflow = \"hidden\";\n    cm.refresh();\n  }\n\n  function setNormal(cm) {\n    var wrap = cm.getWrapperElement();\n    wrap.className = wrap.className.replace(/\\s*CodeMirror-fullscreen\\b/, \"\");\n    document.documentElement.style.overflow = \"\";\n    var info = cm.state.fullScreenRestore;\n    wrap.style.width = info.width; wrap.style.height = info.height;\n    window.scrollTo(info.scrollLeft, info.scrollTop);\n    cm.refresh();\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/display/panel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineExtension(\"addPanel\", function(node, options) {\n    if (!this.state.panels) initPanels(this);\n\n    var info = this.state.panels;\n    if (options && options.position == \"bottom\")\n      info.wrapper.appendChild(node);\n    else\n      info.wrapper.insertBefore(node, info.wrapper.firstChild);\n    var height = (options && options.height) || node.offsetHeight;\n    this._setSize(null, info.heightLeft -= height);\n    info.panels++;\n    return new Panel(this, node, options, height);\n  });\n\n  function Panel(cm, node, options, height) {\n    this.cm = cm;\n    this.node = node;\n    this.options = options;\n    this.height = height;\n    this.cleared = false;\n  }\n\n  Panel.prototype.clear = function() {\n    if (this.cleared) return;\n    this.cleared = true;\n    var info = this.cm.state.panels;\n    this.cm._setSize(null, info.heightLeft += this.height);\n    info.wrapper.removeChild(this.node);\n    if (--info.panels == 0) removePanels(this.cm);\n  };\n\n  Panel.prototype.changed = function(height) {\n    var newHeight = height == null ? this.node.offsetHeight : height;\n    var info = this.cm.state.panels;\n    this.cm._setSize(null, info.height += (newHeight - this.height));\n    this.height = newHeight;\n  };\n\n  function initPanels(cm) {\n    var wrap = cm.getWrapperElement();\n    var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;\n    var height = parseInt(style.height);\n    var info = cm.state.panels = {\n      setHeight: wrap.style.height,\n      heightLeft: height,\n      panels: 0,\n      wrapper: document.createElement(\"div\")\n    };\n    wrap.parentNode.insertBefore(info.wrapper, wrap);\n    var hasFocus = cm.hasFocus();\n    info.wrapper.appendChild(wrap);\n    if (hasFocus) cm.focus();\n\n    cm._setSize = cm.setSize;\n    if (height != null) cm.setSize = function(width, newHeight) {\n      if (newHeight == null) return this._setSize(width, newHeight);\n      info.setHeight = newHeight;\n      if (typeof newHeight != \"number\") {\n        var px = /^(\\d+\\.?\\d*)px$/.exec(newHeight);\n        if (px) {\n          newHeight = Number(px[1]);\n        } else {\n          info.wrapper.style.height = newHeight;\n          newHeight = info.wrapper.offsetHeight;\n          info.wrapper.style.height = \"\";\n        }\n      }\n      cm._setSize(width, info.heightLeft += (newHeight - height));\n      height = newHeight;\n    };\n  }\n\n  function removePanels(cm) {\n    var info = cm.state.panels;\n    cm.state.panels = null;\n\n    var wrap = cm.getWrapperElement();\n    info.wrapper.parentNode.replaceChild(wrap, info.wrapper);\n    wrap.style.height = info.setHeight;\n    cm.setSize = cm._setSize;\n    cm.setSize();\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/display/placeholder.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"placeholder\", \"\", function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.on(\"blur\", onBlur);\n      cm.on(\"change\", onChange);\n      onChange(cm);\n    } else if (!val && prev) {\n      cm.off(\"blur\", onBlur);\n      cm.off(\"change\", onChange);\n      clearPlaceholder(cm);\n      var wrapper = cm.getWrapperElement();\n      wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\");\n    }\n\n    if (val && !cm.hasFocus()) onBlur(cm);\n  });\n\n  function clearPlaceholder(cm) {\n    if (cm.state.placeholder) {\n      cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);\n      cm.state.placeholder = null;\n    }\n  }\n  function setPlaceholder(cm) {\n    clearPlaceholder(cm);\n    var elt = cm.state.placeholder = document.createElement(\"pre\");\n    elt.style.cssText = \"height: 0; overflow: visible\";\n    elt.className = \"CodeMirror-placeholder\";\n    elt.appendChild(document.createTextNode(cm.getOption(\"placeholder\")));\n    cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);\n  }\n\n  function onBlur(cm) {\n    if (isEmpty(cm)) setPlaceholder(cm);\n  }\n  function onChange(cm) {\n    var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);\n    wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\") + (empty ? \" CodeMirror-empty\" : \"\");\n\n    if (empty) setPlaceholder(cm);\n    else clearPlaceholder(cm);\n  }\n\n  function isEmpty(cm) {\n    return (cm.lineCount() === 1) && (cm.getLine(0) === \"\");\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/display/rulers.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"rulers\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      clearRulers(cm);\n      cm.off(\"refresh\", refreshRulers);\n    }\n    if (val && val.length) {\n      setRulers(cm);\n      cm.on(\"refresh\", refreshRulers);\n    }\n  });\n\n  function clearRulers(cm) {\n    for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) {\n      var node = cm.display.lineSpace.childNodes[i];\n      if (/(^|\\s)CodeMirror-ruler($|\\s)/.test(node.className))\n        node.parentNode.removeChild(node);\n    }\n  }\n\n  function setRulers(cm) {\n    var val = cm.getOption(\"rulers\");\n    var cw = cm.defaultCharWidth();\n    var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), \"div\").left;\n    var minH = cm.display.scroller.offsetHeight + 30;\n    for (var i = 0; i < val.length; i++) {\n      var elt = document.createElement(\"div\");\n      elt.className = \"CodeMirror-ruler\";\n      var col, cls = null, conf = val[i];\n      if (typeof conf == \"number\") {\n        col = conf;\n      } else {\n        col = conf.column;\n        if (conf.className) elt.className += \" \" + conf.className;\n        if (conf.color) elt.style.borderColor = conf.color;\n        if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;\n        if (conf.width) elt.style.borderLeftWidth = conf.width;\n        cls = val[i].className;\n      }\n      elt.style.left = (left + col * cw) + \"px\";\n      elt.style.top = \"-50px\";\n      elt.style.bottom = \"-20px\";\n      elt.style.minHeight = minH + \"px\";\n      cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv);\n    }\n  }\n\n  function refreshRulers(cm) {\n    clearRulers(cm);\n    setRulers(cm);\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/closebrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var DEFAULT_BRACKETS = \"()[]{}''\\\"\\\"\";\n  var DEFAULT_TRIPLES = \"'\\\"\";\n  var DEFAULT_EXPLODE_ON_ENTER = \"[]{}\";\n  var SPACE_CHAR_REGEX = /\\s/;\n\n  var Pos = CodeMirror.Pos;\n\n  CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n    if (old != CodeMirror.Init && old)\n      cm.removeKeyMap(\"autoCloseBrackets\");\n    if (!val) return;\n    var pairs = DEFAULT_BRACKETS, triples = DEFAULT_TRIPLES, explode = DEFAULT_EXPLODE_ON_ENTER;\n    if (typeof val == \"string\") pairs = val;\n    else if (typeof val == \"object\") {\n      if (val.pairs != null) pairs = val.pairs;\n      if (val.triples != null) triples = val.triples;\n      if (val.explode != null) explode = val.explode;\n    }\n    var map = buildKeymap(pairs, triples);\n    if (explode) map.Enter = buildExplodeHandler(explode);\n    cm.addKeyMap(map);\n  });\n\n  function charsAround(cm, pos) {\n    var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n                          Pos(pos.line, pos.ch + 1));\n    return str.length == 2 ? str : null;\n  }\n\n  // Project the token type that will exists after the given char is\n  // typed, and use it to determine whether it would cause the start\n  // of a string token.\n  function enteringString(cm, pos, ch) {\n    var line = cm.getLine(pos.line);\n    var token = cm.getTokenAt(pos);\n    if (/\\bstring2?\\b/.test(token.type)) return false;\n    var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);\n    stream.pos = stream.start = token.start;\n    for (;;) {\n      var type1 = cm.getMode().token(stream, token.state);\n      if (stream.pos >= pos.ch + 1) return /\\bstring2?\\b/.test(type1);\n      stream.start = stream.pos;\n    }\n  }\n\n  function buildKeymap(pairs, triples) {\n    var map = {\n      name : \"autoCloseBrackets\",\n      Backspace: function(cm) {\n        if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n        var ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          if (!ranges[i].empty()) return CodeMirror.Pass;\n          var around = charsAround(cm, ranges[i].head);\n          if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n        }\n        for (var i = ranges.length - 1; i >= 0; i--) {\n          var cur = ranges[i].head;\n          cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));\n        }\n      }\n    };\n    var closingBrackets = \"\";\n    for (var i = 0; i < pairs.length; i += 2) (function(left, right) {\n      closingBrackets += right;\n      map[\"'\" + left + \"'\"] = function(cm) {\n        if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n        var ranges = cm.listSelections(), type, next;\n        for (var i = 0; i < ranges.length; i++) {\n          var range = ranges[i], cur = range.head, curType;\n          var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n          if (!range.empty()) {\n            curType = \"surround\";\n          } else if (left == right && next == right) {\n            if (cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == left + left + left)\n              curType = \"skipThree\";\n            else\n              curType = \"skip\";\n          } else if (left == right && cur.ch > 1 && triples.indexOf(left) >= 0 &&\n                     cm.getRange(Pos(cur.line, cur.ch - 2), cur) == left + left &&\n                     (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != left)) {\n            curType = \"addFour\";\n          } else if (left == '\"' || left == \"'\") {\n            if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, left)) curType = \"both\";\n            else return CodeMirror.Pass;\n          } else if (cm.getLine(cur.line).length == cur.ch || closingBrackets.indexOf(next) >= 0 || SPACE_CHAR_REGEX.test(next)) {\n            curType = \"both\";\n          } else {\n            return CodeMirror.Pass;\n          }\n          if (!type) type = curType;\n          else if (type != curType) return CodeMirror.Pass;\n        }\n\n        cm.operation(function() {\n          if (type == \"skip\") {\n            cm.execCommand(\"goCharRight\");\n          } else if (type == \"skipThree\") {\n            for (var i = 0; i < 3; i++)\n              cm.execCommand(\"goCharRight\");\n          } else if (type == \"surround\") {\n            var sels = cm.getSelections();\n            for (var i = 0; i < sels.length; i++)\n              sels[i] = left + sels[i] + right;\n            cm.replaceSelections(sels, \"around\");\n          } else if (type == \"both\") {\n            cm.replaceSelection(left + right, null);\n            cm.execCommand(\"goCharLeft\");\n          } else if (type == \"addFour\") {\n            cm.replaceSelection(left + left + left + left, \"before\");\n            cm.execCommand(\"goCharRight\");\n          }\n        });\n      };\n      if (left != right) map[\"'\" + right + \"'\"] = function(cm) {\n        var ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          var range = ranges[i];\n          if (!range.empty() ||\n              cm.getRange(range.head, Pos(range.head.line, range.head.ch + 1)) != right)\n            return CodeMirror.Pass;\n        }\n        cm.execCommand(\"goCharRight\");\n      };\n    })(pairs.charAt(i), pairs.charAt(i + 1));\n    return map;\n  }\n\n  function buildExplodeHandler(pairs) {\n    return function(cm) {\n      if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n      var ranges = cm.listSelections();\n      for (var i = 0; i < ranges.length; i++) {\n        if (!ranges[i].empty()) return CodeMirror.Pass;\n        var around = charsAround(cm, ranges[i].head);\n        if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n      }\n      cm.operation(function() {\n        cm.replaceSelection(\"\\n\\n\", null);\n        cm.execCommand(\"goCharLeft\");\n        ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          var line = ranges[i].head.line;\n          cm.indentLine(line, null, true);\n          cm.indentLine(line + 1, null, true);\n        }\n      });\n    };\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/closetag.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Tag-closer extension for CodeMirror.\n *\n * This extension adds an \"autoCloseTags\" option that can be set to\n * either true to get the default behavior, or an object to further\n * configure its behavior.\n *\n * These are supported options:\n *\n * `whenClosing` (default true)\n *   Whether to autoclose when the '/' of a closing tag is typed.\n * `whenOpening` (default true)\n *   Whether to autoclose the tag when the final '>' of an opening\n *   tag is typed.\n * `dontCloseTags` (default is empty tags for HTML, none for XML)\n *   An array of tag names that should not be autoclosed.\n * `indentTags` (default is block tags for HTML, none for XML)\n *   An array of tag names that should, when opened, cause a\n *   blank line to be added inside the tag, and the blank line and\n *   closing line to be indented.\n *\n * See demos/closetag.html for a usage example.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"autoCloseTags\", false, function(cm, val, old) {\n    if (old != CodeMirror.Init && old)\n      cm.removeKeyMap(\"autoCloseTags\");\n    if (!val) return;\n    var map = {name: \"autoCloseTags\"};\n    if (typeof val != \"object\" || val.whenClosing)\n      map[\"'/'\"] = function(cm) { return autoCloseSlash(cm); };\n    if (typeof val != \"object\" || val.whenOpening)\n      map[\"'>'\"] = function(cm) { return autoCloseGT(cm); };\n    cm.addKeyMap(map);\n  });\n\n  var htmlDontClose = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\",\n                       \"source\", \"track\", \"wbr\"];\n  var htmlIndent = [\"applet\", \"blockquote\", \"body\", \"button\", \"div\", \"dl\", \"fieldset\", \"form\", \"frameset\", \"h1\", \"h2\", \"h3\", \"h4\",\n                    \"h5\", \"h6\", \"head\", \"html\", \"iframe\", \"layer\", \"legend\", \"object\", \"ol\", \"p\", \"select\", \"table\", \"ul\"];\n\n  function autoCloseGT(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      if (inner.mode.name != \"xml\" || !state.tagName) return CodeMirror.Pass;\n\n      var opt = cm.getOption(\"autoCloseTags\"), html = inner.mode.configuration == \"html\";\n      var dontCloseTags = (typeof opt == \"object\" && opt.dontCloseTags) || (html && htmlDontClose);\n      var indentTags = (typeof opt == \"object\" && opt.indentTags) || (html && htmlIndent);\n\n      var tagName = state.tagName;\n      if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);\n      var lowerTagName = tagName.toLowerCase();\n      // Don't process the '>' at the end of an end-tag or self-closing tag\n      if (!tagName ||\n          tok.type == \"string\" && (tok.end != pos.ch || !/[\\\"\\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||\n          tok.type == \"tag\" && state.type == \"closeTag\" ||\n          tok.string.indexOf(\"/\") == (tok.string.length - 1) || // match something like <someTagName />\n          dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||\n          closingTagExists(cm, tagName, pos, state, true))\n        return CodeMirror.Pass;\n\n      var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;\n      replacements[i] = {indent: indent,\n                         text: \">\" + (indent ? \"\\n\\n\" : \"\") + \"</\" + tagName + \">\",\n                         newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};\n    }\n\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var info = replacements[i];\n      cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, \"+insert\");\n      var sel = cm.listSelections().slice(0);\n      sel[i] = {head: info.newPos, anchor: info.newPos};\n      cm.setSelections(sel);\n      if (info.indent) {\n        cm.indentLine(info.newPos.line, null, true);\n        cm.indentLine(info.newPos.line + 1, null, true);\n      }\n    }\n  }\n\n  function autoCloseCurrent(cm, typingSlash) {\n    var ranges = cm.listSelections(), replacements = [];\n    var head = typingSlash ? \"/\" : \"</\";\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      if (typingSlash && (tok.type == \"string\" || tok.string.charAt(0) != \"<\" ||\n                          tok.start != pos.ch - 1))\n        return CodeMirror.Pass;\n      // Kludge to get around the fact that we are not in XML mode\n      // when completing in JS/CSS snippet in htmlmixed mode. Does not\n      // work for other XML embedded languages (there is no general\n      // way to go from a mixed mode to its current XML state).\n      if (inner.mode.name != \"xml\") {\n        if (cm.getMode().name == \"htmlmixed\" && inner.mode.name == \"javascript\")\n          replacements[i] = head + \"script>\";\n        else if (cm.getMode().name == \"htmlmixed\" && inner.mode.name == \"css\")\n          replacements[i] = head + \"style>\";\n        else\n          return CodeMirror.Pass;\n      } else {\n        if (!state.context || !state.context.tagName ||\n            closingTagExists(cm, state.context.tagName, pos, state))\n          return CodeMirror.Pass;\n        replacements[i] = head + state.context.tagName + \">\";\n      }\n    }\n    cm.replaceSelections(replacements);\n    ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++)\n      if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)\n        cm.indentLine(ranges[i].head.line);\n  }\n\n  function autoCloseSlash(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    return autoCloseCurrent(cm, true);\n  }\n\n  CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };\n\n  function indexOf(collection, elt) {\n    if (collection.indexOf) return collection.indexOf(elt);\n    for (var i = 0, e = collection.length; i < e; ++i)\n      if (collection[i] == elt) return i;\n    return -1;\n  }\n\n  // If xml-fold is loaded, we use its functionality to try and verify\n  // whether a given tag is actually unclosed.\n  function closingTagExists(cm, tagName, pos, state, newTag) {\n    if (!CodeMirror.scanForClosingTag) return false;\n    var end = Math.min(cm.lastLine() + 1, pos.line + 500);\n    var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);\n    if (!nextClose || nextClose.tag != tagName) return false;\n    var cx = state.context;\n    // If the immediate wrapping context contains onCx instances of\n    // the same tag, a closing tag only exists if there are at least\n    // that many closing tags of that type following.\n    for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;\n    pos = nextClose.to;\n    for (var i = 1; i < onCx; i++) {\n      var next = CodeMirror.scanForClosingTag(cm, pos, null, end);\n      if (!next || next.tag != tagName) return false;\n      pos = next.to;\n    }\n    return true;\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/continuelist.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var listRE = /^(\\s*)(>[> ]*|[*+-]\\s|(\\d+)\\.)(\\s*)/,\n      emptyListRE = /^(\\s*)(>[> ]*|[*+-]|(\\d+)\\.)(\\s*)$/,\n      unorderedListRE = /[*+-]\\s/;\n\n  CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head, match;\n      var eolState = cm.getStateAfter(pos.line);\n      var inList = eolState.list !== false;\n      var inQuote = eolState.quote !== false;\n\n      if (!ranges[i].empty() || (!inList && !inQuote) || !(match = cm.getLine(pos.line).match(listRE))) {\n        cm.execCommand(\"newlineAndIndent\");\n        return;\n      }\n      if (cm.getLine(pos.line).match(emptyListRE)) {\n        cm.replaceRange(\"\", {\n          line: pos.line, ch: 0\n        }, {\n          line: pos.line, ch: pos.ch + 1\n        });\n        replacements[i] = \"\\n\";\n\n      } else {\n        var indent = match[1], after = match[4];\n        var bullet = unorderedListRE.test(match[2]) || match[2].indexOf(\">\") >= 0\n          ? match[2]\n          : (parseInt(match[3], 10) + 1) + \".\";\n\n        replacements[i] = \"\\n\" + indent + bullet + after;\n      }\n    }\n\n    cm.replaceSelections(replacements);\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/matchbrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n    (document.documentMode == null || document.documentMode < 8);\n\n  var Pos = CodeMirror.Pos;\n\n  var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\"};\n\n  function findMatchingBracket(cm, where, strict, config) {\n    var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n    var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];\n    if (!match) return null;\n    var dir = match.charAt(1) == \">\" ? 1 : -1;\n    if (strict && (dir > 0) != (pos == where.ch)) return null;\n    var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n    var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);\n    if (found == null) return null;\n    return {from: Pos(where.line, pos), to: found && found.pos,\n            match: found && found.ch == match.charAt(0), forward: dir > 0};\n  }\n\n  // bracketRegex is used to specify which type of bracket to scan\n  // should be a regexp, e.g. /[[\\]]/\n  //\n  // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n  //\n  // Returns false when no bracket was found, null when it reached\n  // maxScanLines and gave up\n  function scanForBracket(cm, where, dir, style, config) {\n    var maxScanLen = (config && config.maxScanLineLength) || 10000;\n    var maxScanLines = (config && config.maxScanLines) || 1000;\n\n    var stack = [];\n    var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\\]]/;\n    var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n                          : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n    for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n      var line = cm.getLine(lineNo);\n      if (!line) continue;\n      var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n      if (line.length > maxScanLen) continue;\n      if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n      for (; pos != end; pos += dir) {\n        var ch = line.charAt(pos);\n        if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {\n          var match = matching[ch];\n          if ((match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n          else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n          else stack.pop();\n        }\n      }\n    }\n    return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n  }\n\n  function matchBrackets(cm, autoclear, config) {\n    // Disable brace matching in long lines, since it'll cause hugely slow updates\n    var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;\n    var marks = [], ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++) {\n      var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config);\n      if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {\n        var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n        marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n        if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n          marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n      }\n    }\n\n    if (marks.length) {\n      // Kludge to work around the IE bug from issue #1193, where text\n      // input stops going to the textare whever this fires.\n      if (ie_lt8 && cm.state.focused) cm.focus();\n\n      var clear = function() {\n        cm.operation(function() {\n          for (var i = 0; i < marks.length; i++) marks[i].clear();\n        });\n      };\n      if (autoclear) setTimeout(clear, 800);\n      else return clear;\n    }\n  }\n\n  var currentlyHighlighted = null;\n  function doMatchBrackets(cm) {\n    cm.operation(function() {\n      if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}\n      currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n    });\n  }\n\n  CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init)\n      cm.off(\"cursorActivity\", doMatchBrackets);\n    if (val) {\n      cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n      cm.on(\"cursorActivity\", doMatchBrackets);\n    }\n  });\n\n  CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n  CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, strict, config){\n    return findMatchingBracket(this, pos, strict, config);\n  });\n  CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n    return scanForBracket(this, pos, dir, style, config);\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/matchtags.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"matchTags\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"cursorActivity\", doMatchTags);\n      cm.off(\"viewportChange\", maybeUpdateMatch);\n      clear(cm);\n    }\n    if (val) {\n      cm.state.matchBothTags = typeof val == \"object\" && val.bothTags;\n      cm.on(\"cursorActivity\", doMatchTags);\n      cm.on(\"viewportChange\", maybeUpdateMatch);\n      doMatchTags(cm);\n    }\n  });\n\n  function clear(cm) {\n    if (cm.state.tagHit) cm.state.tagHit.clear();\n    if (cm.state.tagOther) cm.state.tagOther.clear();\n    cm.state.tagHit = cm.state.tagOther = null;\n  }\n\n  function doMatchTags(cm) {\n    cm.state.failedTagMatch = false;\n    cm.operation(function() {\n      clear(cm);\n      if (cm.somethingSelected()) return;\n      var cur = cm.getCursor(), range = cm.getViewport();\n      range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);\n      var match = CodeMirror.findMatchingTag(cm, cur, range);\n      if (!match) return;\n      if (cm.state.matchBothTags) {\n        var hit = match.at == \"open\" ? match.open : match.close;\n        if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: \"CodeMirror-matchingtag\"});\n      }\n      var other = match.at == \"close\" ? match.open : match.close;\n      if (other)\n        cm.state.tagOther = cm.markText(other.from, other.to, {className: \"CodeMirror-matchingtag\"});\n      else\n        cm.state.failedTagMatch = true;\n    });\n  }\n\n  function maybeUpdateMatch(cm) {\n    if (cm.state.failedTagMatch) doMatchTags(cm);\n  }\n\n  CodeMirror.commands.toMatchingTag = function(cm) {\n    var found = CodeMirror.findMatchingTag(cm, cm.getCursor());\n    if (found) {\n      var other = found.at == \"close\" ? found.open : found.close;\n      if (other) cm.extendSelection(other.to, other.from);\n    }\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/edit/trailingspace.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"showTrailingSpace\", false, function(cm, val, prev) {\n    if (prev == CodeMirror.Init) prev = false;\n    if (prev && !val)\n      cm.removeOverlay(\"trailingspace\");\n    else if (!prev && val)\n      cm.addOverlay({\n        token: function(stream) {\n          for (var l = stream.string.length, i = l; i && /\\s/.test(stream.string.charAt(i - 1)); --i) {}\n          if (i > stream.pos) { stream.pos = i; return null; }\n          stream.pos = l;\n          return \"trailingspace\";\n        },\n        name: \"trailingspace\"\n      });\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/brace-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n  var line = start.line, lineText = cm.getLine(line);\n  var startCh, tokenType;\n\n  function findOpening(openCh) {\n    for (var at = start.ch, pass = 0;;) {\n      var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n      if (found == -1) {\n        if (pass == 1) break;\n        pass = 1;\n        at = lineText.length;\n        continue;\n      }\n      if (pass == 1 && found < start.ch) break;\n      tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n      if (!/^(comment|string)/.test(tokenType)) return found + 1;\n      at = found - 1;\n    }\n  }\n\n  var startToken = \"{\", endToken = \"}\", startCh = findOpening(\"{\");\n  if (startCh == null) {\n    startToken = \"[\", endToken = \"]\";\n    startCh = findOpening(\"[\");\n  }\n\n  if (startCh == null) return;\n  var count = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n        if (pos == nextOpen) ++count;\n        else if (!--count) { end = i; endCh = pos; break outer; }\n      }\n      ++pos;\n    }\n  }\n  if (end == null || line == end && endCh == startCh) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n  function hasImport(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type != \"keyword\" || start.string != \"import\") return null;\n    // Now find closing semicolon, return its position\n    for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n      var text = cm.getLine(i), semi = text.indexOf(\";\");\n      if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n    }\n  }\n\n  var start = start.line, has = hasImport(start), prev;\n  if (!has || hasImport(start - 1) || ((prev = hasImport(start - 2)) && prev.end.line == start - 1))\n    return null;\n  for (var end = has.end;;) {\n    var next = hasImport(end.line + 1);\n    if (next == null) break;\n    end = next.end;\n  }\n  return {from: cm.clipPos(CodeMirror.Pos(start, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n  function hasInclude(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n  }\n\n  var start = start.line, has = hasInclude(start);\n  if (has == null || hasInclude(start - 1) != null) return null;\n  for (var end = start;;) {\n    var next = hasInclude(end + 1);\n    if (next == null) break;\n    ++end;\n  }\n  return {from: CodeMirror.Pos(start, has + 1),\n          to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/comment-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerGlobalHelper(\"fold\", \"comment\", function(mode) {\n  return mode.blockCommentStart && mode.blockCommentEnd;\n}, function(cm, start) {\n  var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;\n  if (!startToken || !endToken) return;\n  var line = start.line, lineText = cm.getLine(line);\n\n  var startCh;\n  for (var at = start.ch, pass = 0;;) {\n    var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);\n    if (found == -1) {\n      if (pass == 1) return;\n      pass = 1;\n      at = lineText.length;\n      continue;\n    }\n    if (pass == 1 && found < start.ch) return;\n    if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {\n      startCh = found + startToken.length;\n      break;\n    }\n    at = found - 1;\n  }\n\n  var depth = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (pos == nextOpen) ++depth;\n      else if (!--depth) { end = i; endCh = pos; break outer; }\n      ++pos;\n    }\n  }\n  if (end == null || line == end && endCh == startCh) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/foldcode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function doFold(cm, pos, options, force) {\n    if (options && options.call) {\n      var finder = options;\n      options = null;\n    } else {\n      var finder = getOption(cm, options, \"rangeFinder\");\n    }\n    if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n    var minSize = getOption(cm, options, \"minFoldSize\");\n\n    function getRange(allowFolded) {\n      var range = finder(cm, pos);\n      if (!range || range.to.line - range.from.line < minSize) return null;\n      var marks = cm.findMarksAt(range.from);\n      for (var i = 0; i < marks.length; ++i) {\n        if (marks[i].__isFold && force !== \"fold\") {\n          if (!allowFolded) return null;\n          range.cleared = true;\n          marks[i].clear();\n        }\n      }\n      return range;\n    }\n\n    var range = getRange(true);\n    if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n      pos = CodeMirror.Pos(pos.line - 1, 0);\n      range = getRange(false);\n    }\n    if (!range || range.cleared || force === \"unfold\") return;\n\n    var myWidget = makeWidget(cm, options);\n    CodeMirror.on(myWidget, \"mousedown\", function(e) {\n      myRange.clear();\n      CodeMirror.e_preventDefault(e);\n    });\n    var myRange = cm.markText(range.from, range.to, {\n      replacedWith: myWidget,\n      clearOnEnter: true,\n      __isFold: true\n    });\n    myRange.on(\"clear\", function(from, to) {\n      CodeMirror.signal(cm, \"unfold\", cm, from, to);\n    });\n    CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n  }\n\n  function makeWidget(cm, options) {\n    var widget = getOption(cm, options, \"widget\");\n    if (typeof widget == \"string\") {\n      var text = document.createTextNode(widget);\n      widget = document.createElement(\"span\");\n      widget.appendChild(text);\n      widget.className = \"CodeMirror-foldmarker\";\n    }\n    return widget;\n  }\n\n  // Clumsy backwards-compatible interface\n  CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n    return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n  };\n\n  // New-style interface\n  CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n    doFold(this, pos, options, force);\n  });\n\n  CodeMirror.defineExtension(\"isFolded\", function(pos) {\n    var marks = this.findMarksAt(pos);\n    for (var i = 0; i < marks.length; ++i)\n      if (marks[i].__isFold) return true;\n  });\n\n  CodeMirror.commands.toggleFold = function(cm) {\n    cm.foldCode(cm.getCursor());\n  };\n  CodeMirror.commands.fold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"fold\");\n  };\n  CodeMirror.commands.unfold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"unfold\");\n  };\n  CodeMirror.commands.foldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"fold\");\n    });\n  };\n  CodeMirror.commands.unfoldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"unfold\");\n    });\n  };\n\n  CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n    var funcs = Array.prototype.slice.call(arguments, 0);\n    return function(cm, start) {\n      for (var i = 0; i < funcs.length; ++i) {\n        var found = funcs[i](cm, start);\n        if (found) return found;\n      }\n    };\n  });\n\n  CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n    var helpers = cm.getHelpers(start, \"fold\");\n    for (var i = 0; i < helpers.length; i++) {\n      var cur = helpers[i](cm, start);\n      if (cur) return cur;\n    }\n  });\n\n  var defaultOptions = {\n    rangeFinder: CodeMirror.fold.auto,\n    widget: \"\\u2194\",\n    minFoldSize: 0,\n    scanUp: false\n  };\n\n  CodeMirror.defineOption(\"foldOptions\", null);\n\n  function getOption(cm, options, name) {\n    if (options && options[name] !== undefined)\n      return options[name];\n    var editorOptions = cm.options.foldOptions;\n    if (editorOptions && editorOptions[name] !== undefined)\n      return editorOptions[name];\n    return defaultOptions[name];\n  }\n\n  CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n    return getOption(this, options, name);\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/foldgutter.css",
    "content": ".CodeMirror-foldmarker {\n  color: blue;\n  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;\n  font-family: arial;\n  line-height: .3;\n  cursor: pointer;\n}\n.CodeMirror-foldgutter {\n  width: .7em;\n}\n.CodeMirror-foldgutter-open,\n.CodeMirror-foldgutter-folded {\n  cursor: pointer;\n}\n.CodeMirror-foldgutter-open:after {\n  content: \"\\25BE\";\n}\n.CodeMirror-foldgutter-folded:after {\n  content: \"\\25B8\";\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/foldgutter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.clearGutter(cm.state.foldGutter.options.gutter);\n      cm.state.foldGutter = null;\n      cm.off(\"gutterClick\", onGutterClick);\n      cm.off(\"change\", onChange);\n      cm.off(\"viewportChange\", onViewportChange);\n      cm.off(\"fold\", onFold);\n      cm.off(\"unfold\", onFold);\n      cm.off(\"swapDoc\", updateInViewport);\n    }\n    if (val) {\n      cm.state.foldGutter = new State(parseOptions(val));\n      updateInViewport(cm);\n      cm.on(\"gutterClick\", onGutterClick);\n      cm.on(\"change\", onChange);\n      cm.on(\"viewportChange\", onViewportChange);\n      cm.on(\"fold\", onFold);\n      cm.on(\"unfold\", onFold);\n      cm.on(\"swapDoc\", updateInViewport);\n    }\n  });\n\n  var Pos = CodeMirror.Pos;\n\n  function State(options) {\n    this.options = options;\n    this.from = this.to = 0;\n  }\n\n  function parseOptions(opts) {\n    if (opts === true) opts = {};\n    if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n    if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n    if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n    return opts;\n  }\n\n  function isFolded(cm, line) {\n    var marks = cm.findMarksAt(Pos(line));\n    for (var i = 0; i < marks.length; ++i)\n      if (marks[i].__isFold && marks[i].find().from.line == line) return true;\n  }\n\n  function marker(spec) {\n    if (typeof spec == \"string\") {\n      var elt = document.createElement(\"div\");\n      elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n      return elt;\n    } else {\n      return spec.cloneNode(true);\n    }\n  }\n\n  function updateFoldInfo(cm, from, to) {\n    var opts = cm.state.foldGutter.options, cur = from;\n    var minSize = cm.foldOption(opts, \"minFoldSize\");\n    var func = cm.foldOption(opts, \"rangeFinder\");\n    cm.eachLine(from, to, function(line) {\n      var mark = null;\n      if (isFolded(cm, cur)) {\n        mark = marker(opts.indicatorFolded);\n      } else {\n        var pos = Pos(cur, 0);\n        var range = func && func(cm, pos);\n        if (range && range.to.line - range.from.line >= minSize)\n          mark = marker(opts.indicatorOpen);\n      }\n      cm.setGutterMarker(line, opts.gutter, mark);\n      ++cur;\n    });\n  }\n\n  function updateInViewport(cm) {\n    var vp = cm.getViewport(), state = cm.state.foldGutter;\n    if (!state) return;\n    cm.operation(function() {\n      updateFoldInfo(cm, vp.from, vp.to);\n    });\n    state.from = vp.from; state.to = vp.to;\n  }\n\n  function onGutterClick(cm, line, gutter) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    if (gutter != opts.gutter) return;\n    cm.foldCode(Pos(line, 0), opts.rangeFinder);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    state.from = state.to = 0;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n  }\n\n  function onViewportChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() {\n      var vp = cm.getViewport();\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        updateInViewport(cm);\n      } else {\n        cm.operation(function() {\n          if (vp.from < state.from) {\n            updateFoldInfo(cm, vp.from, state.from);\n            state.from = vp.from;\n          }\n          if (vp.to > state.to) {\n            updateFoldInfo(cm, state.to, vp.to);\n            state.to = vp.to;\n          }\n        });\n      }\n    }, opts.updateViewportTimeSpan || 400);\n  }\n\n  function onFold(cm, from) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var line = from.line;\n    if (line >= state.from && line < state.to)\n      updateFoldInfo(cm, line, line + 1);\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/indent-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"indent\", function(cm, start) {\n  var tabSize = cm.getOption(\"tabSize\"), firstLine = cm.getLine(start.line);\n  if (!/\\S/.test(firstLine)) return;\n  var getIndent = function(line) {\n    return CodeMirror.countColumn(line, null, tabSize);\n  };\n  var myIndent = getIndent(firstLine);\n  var lastLineInFold = null;\n  // Go through lines until we find a line that definitely doesn't belong in\n  // the block we're folding, or to the end.\n  for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {\n    var curLine = cm.getLine(i);\n    var curIndent = getIndent(curLine);\n    if (curIndent > myIndent) {\n      // Lines with a greater indent are considered part of the block.\n      lastLineInFold = i;\n    } else if (!/\\S/.test(curLine)) {\n      // Empty lines might be breaks within the block we're trying to fold.\n    } else {\n      // A non-empty line at an indent equal to or less than ours marks the\n      // start of another block.\n      break;\n    }\n  }\n  if (lastLineInFold) return {\n    from: CodeMirror.Pos(start.line, firstLine.length),\n    to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/markdown-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"markdown\", function(cm, start) {\n  var maxDepth = 100;\n\n  function isHeader(lineNo) {\n    var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));\n    return tokentype && /\\bheader\\b/.test(tokentype);\n  }\n\n  function headerLevel(lineNo, line, nextLine) {\n    var match = line && line.match(/^#+/);\n    if (match && isHeader(lineNo)) return match[0].length;\n    match = nextLine && nextLine.match(/^[=\\-]+\\s*$/);\n    if (match && isHeader(lineNo + 1)) return nextLine[0] == \"=\" ? 1 : 2;\n    return maxDepth;\n  }\n\n  var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);\n  var level = headerLevel(start.line, firstLine, nextLine);\n  if (level === maxDepth) return undefined;\n\n  var lastLineNo = cm.lastLine();\n  var end = start.line, nextNextLine = cm.getLine(end + 2);\n  while (end < lastLineNo) {\n    if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;\n    ++end;\n    nextLine = nextNextLine;\n    nextNextLine = cm.getLine(end + 2);\n  }\n\n  return {\n    from: CodeMirror.Pos(start.line, firstLine.length),\n    to: CodeMirror.Pos(end, cm.getLine(end).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/fold/xml-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n  function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }\n\n  var nameStartChar = \"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n  var nameChar = nameStartChar + \"\\-\\:\\.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n  var xmlTagStart = new RegExp(\"<(/?)([\" + nameStartChar + \"][\" + nameChar + \"]*)\", \"g\");\n\n  function Iter(cm, line, ch, range) {\n    this.line = line; this.ch = ch;\n    this.cm = cm; this.text = cm.getLine(line);\n    this.min = range ? range.from : cm.firstLine();\n    this.max = range ? range.to - 1 : cm.lastLine();\n  }\n\n  function tagAt(iter, ch) {\n    var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));\n    return type && /\\btag\\b/.test(type);\n  }\n\n  function nextLine(iter) {\n    if (iter.line >= iter.max) return;\n    iter.ch = 0;\n    iter.text = iter.cm.getLine(++iter.line);\n    return true;\n  }\n  function prevLine(iter) {\n    if (iter.line <= iter.min) return;\n    iter.text = iter.cm.getLine(--iter.line);\n    iter.ch = iter.text.length;\n    return true;\n  }\n\n  function toTagEnd(iter) {\n    for (;;) {\n      var gt = iter.text.indexOf(\">\", iter.ch);\n      if (gt == -1) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n  function toTagStart(iter) {\n    for (;;) {\n      var lt = iter.ch ? iter.text.lastIndexOf(\"<\", iter.ch - 1) : -1;\n      if (lt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }\n      xmlTagStart.lastIndex = lt;\n      iter.ch = lt;\n      var match = xmlTagStart.exec(iter.text);\n      if (match && match.index == lt) return match;\n    }\n  }\n\n  function toNextTag(iter) {\n    for (;;) {\n      xmlTagStart.lastIndex = iter.ch;\n      var found = xmlTagStart.exec(iter.text);\n      if (!found) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }\n      iter.ch = found.index + found[0].length;\n      return found;\n    }\n  }\n  function toPrevTag(iter) {\n    for (;;) {\n      var gt = iter.ch ? iter.text.lastIndexOf(\">\", iter.ch - 1) : -1;\n      if (gt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n\n  function findMatchingClose(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);\n      if (!next || !(end = toTagEnd(iter))) return;\n      if (end == \"selfClose\") continue;\n      if (next[1]) { // closing tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == next[2])) return {\n          tag: next[2],\n          from: Pos(startLine, startCh),\n          to: Pos(iter.line, iter.ch)\n        };\n      } else { // opening tag\n        stack.push(next[2]);\n      }\n    }\n  }\n  function findMatchingOpen(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var prev = toPrevTag(iter);\n      if (!prev) return;\n      if (prev == \"selfClose\") { toTagStart(iter); continue; }\n      var endLine = iter.line, endCh = iter.ch;\n      var start = toTagStart(iter);\n      if (!start) return;\n      if (start[1]) { // closing tag\n        stack.push(start[2]);\n      } else { // opening tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == start[2])) return {\n          tag: start[2],\n          from: Pos(iter.line, iter.ch),\n          to: Pos(endLine, endCh)\n        };\n      }\n    }\n  }\n\n  CodeMirror.registerHelper(\"fold\", \"xml\", function(cm, start) {\n    var iter = new Iter(cm, start.line, 0);\n    for (;;) {\n      var openTag = toNextTag(iter), end;\n      if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;\n      if (!openTag[1] && end != \"selfClose\") {\n        var start = Pos(iter.line, iter.ch);\n        var close = findMatchingClose(iter, openTag[2]);\n        return close && {from: start, to: close.from};\n      }\n    }\n  });\n  CodeMirror.findMatchingTag = function(cm, pos, range) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    if (iter.text.indexOf(\">\") == -1 && iter.text.indexOf(\"<\") == -1) return;\n    var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);\n    var start = end && toTagStart(iter);\n    if (!end || !start || cmp(iter, pos) > 0) return;\n    var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};\n    if (end == \"selfClose\") return {open: here, close: null, at: \"open\"};\n\n    if (start[1]) { // closing tag\n      return {open: findMatchingOpen(iter, start[2]), close: here, at: \"close\"};\n    } else { // opening tag\n      iter = new Iter(cm, to.line, to.ch, range);\n      return {open: here, close: findMatchingClose(iter, start[2]), at: \"open\"};\n    }\n  };\n\n  CodeMirror.findEnclosingTag = function(cm, pos, range) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    for (;;) {\n      var open = findMatchingOpen(iter);\n      if (!open) break;\n      var forward = new Iter(cm, pos.line, pos.ch, range);\n      var close = findMatchingClose(forward, open.tag);\n      if (close) return {open: open, close: close};\n    }\n  };\n\n  // Used by addon/edit/closetag.js\n  CodeMirror.scanForClosingTag = function(cm, pos, name, end) {\n    var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);\n    return findMatchingClose(iter, name);\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/anyword-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var WORD = /[\\w$]+/, RANGE = 500;\n\n  CodeMirror.registerHelper(\"hint\", \"anyword\", function(editor, options) {\n    var word = options && options.word || WORD;\n    var range = options && options.range || RANGE;\n    var cur = editor.getCursor(), curLine = editor.getLine(cur.line);\n    var end = cur.ch, start = end;\n    while (start && word.test(curLine.charAt(start - 1))) --start;\n    var curWord = start != end && curLine.slice(start, end);\n\n    var list = [], seen = {};\n    var re = new RegExp(word.source, \"g\");\n    for (var dir = -1; dir <= 1; dir += 2) {\n      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;\n      for (; line != endLine; line += dir) {\n        var text = editor.getLine(line), m;\n        while (m = re.exec(text)) {\n          if (line == cur.line && m[0] === curWord) continue;\n          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {\n            seen[m[0]] = true;\n            list.push(m[0]);\n          }\n        }\n      }\n    }\n    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/css-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1,\n                       \"first-letter\": 1, \"first-line\": 1, \"first-child\": 1,\n                       before: 1, after: 1, lang: 1};\n\n  CodeMirror.registerHelper(\"hint\", \"css\", function(cm) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (inner.mode.name != \"css\") return;\n\n    var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);\n    if (/[^\\w$_-]/.test(word)) {\n      word = \"\"; start = end = cur.ch;\n    }\n\n    var spec = CodeMirror.resolveMode(\"text/css\");\n\n    var result = [];\n    function add(keywords) {\n      for (var name in keywords)\n        if (!word || name.lastIndexOf(word, 0) == 0)\n          result.push(name);\n    }\n\n    var st = inner.state.state;\n    if (st == \"pseudo\" || token.type == \"variable-3\") {\n      add(pseudoClasses);\n    } else if (st == \"block\" || st == \"maybeprop\") {\n      add(spec.propertyKeywords);\n    } else if (st == \"prop\" || st == \"parens\" || st == \"at\" || st == \"params\") {\n      add(spec.valueKeywords);\n      add(spec.colorKeywords);\n    } else if (st == \"media\" || st == \"media_parens\") {\n      add(spec.mediaTypes);\n      add(spec.mediaFeatures);\n    }\n\n    if (result.length) return {\n      list: result,\n      from: CodeMirror.Pos(cur.line, start),\n      to: CodeMirror.Pos(cur.line, end)\n    };\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/html-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./xml-hint\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./xml-hint\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var langs = \"ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu\".split(\" \");\n  var targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\n  var charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\n  var methods = [\"get\", \"post\", \"put\", \"delete\"];\n  var encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\n  var media = [\"all\", \"screen\", \"print\", \"embossed\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\", \"tty\", \"tv\", \"speech\",\n               \"3d-glasses\", \"resolution [>][<][=] [X]\", \"device-aspect-ratio: X/Y\", \"orientation:portrait\",\n               \"orientation:landscape\", \"device-height: [X]\", \"device-width: [X]\"];\n  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags\n\n  var data = {\n    a: {\n      attrs: {\n        href: null, ping: null, type: null,\n        media: media,\n        target: targets,\n        hreflang: langs\n      }\n    },\n    abbr: s,\n    acronym: s,\n    address: s,\n    applet: s,\n    area: {\n      attrs: {\n        alt: null, coords: null, href: null, target: null, ping: null,\n        media: media, hreflang: langs, type: null,\n        shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n      }\n    },\n    article: s,\n    aside: s,\n    audio: {\n      attrs: {\n        src: null, mediagroup: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"none\", \"metadata\", \"auto\"],\n        autoplay: [\"\", \"autoplay\"],\n        loop: [\"\", \"loop\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    b: s,\n    base: { attrs: { href: null, target: targets } },\n    basefont: s,\n    bdi: s,\n    bdo: s,\n    big: s,\n    blockquote: { attrs: { cite: null } },\n    body: s,\n    br: s,\n    button: {\n      attrs: {\n        form: null, formaction: null, name: null, value: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"autofocus\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        type: [\"submit\", \"reset\", \"button\"]\n      }\n    },\n    canvas: { attrs: { width: null, height: null } },\n    caption: s,\n    center: s,\n    cite: s,\n    code: s,\n    col: { attrs: { span: null } },\n    colgroup: { attrs: { span: null } },\n    command: {\n      attrs: {\n        type: [\"command\", \"checkbox\", \"radio\"],\n        label: null, icon: null, radiogroup: null, command: null, title: null,\n        disabled: [\"\", \"disabled\"],\n        checked: [\"\", \"checked\"]\n      }\n    },\n    data: { attrs: { value: null } },\n    datagrid: { attrs: { disabled: [\"\", \"disabled\"], multiple: [\"\", \"multiple\"] } },\n    datalist: { attrs: { data: null } },\n    dd: s,\n    del: { attrs: { cite: null, datetime: null } },\n    details: { attrs: { open: [\"\", \"open\"] } },\n    dfn: s,\n    dir: s,\n    div: s,\n    dl: s,\n    dt: s,\n    em: s,\n    embed: { attrs: { src: null, type: null, width: null, height: null } },\n    eventsource: { attrs: { src: null } },\n    fieldset: { attrs: { disabled: [\"\", \"disabled\"], form: null, name: null } },\n    figcaption: s,\n    figure: s,\n    font: s,\n    footer: s,\n    form: {\n      attrs: {\n        action: null, name: null,\n        \"accept-charset\": charsets,\n        autocomplete: [\"on\", \"off\"],\n        enctype: encs,\n        method: methods,\n        novalidate: [\"\", \"novalidate\"],\n        target: targets\n      }\n    },\n    frame: s,\n    frameset: s,\n    h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,\n    head: {\n      attrs: {},\n      children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n    },\n    header: s,\n    hgroup: s,\n    hr: s,\n    html: {\n      attrs: { manifest: null },\n      children: [\"head\", \"body\"]\n    },\n    i: s,\n    iframe: {\n      attrs: {\n        src: null, srcdoc: null, name: null, width: null, height: null,\n        sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n        seamless: [\"\", \"seamless\"]\n      }\n    },\n    img: {\n      attrs: {\n        alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"]\n      }\n    },\n    input: {\n      attrs: {\n        alt: null, dirname: null, form: null, formaction: null,\n        height: null, list: null, max: null, maxlength: null, min: null,\n        name: null, pattern: null, placeholder: null, size: null, src: null,\n        step: null, value: null, width: null,\n        accept: [\"audio/*\", \"video/*\", \"image/*\"],\n        autocomplete: [\"on\", \"off\"],\n        autofocus: [\"\", \"autofocus\"],\n        checked: [\"\", \"checked\"],\n        disabled: [\"\", \"disabled\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        multiple: [\"\", \"multiple\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n               \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n               \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n      }\n    },\n    ins: { attrs: { cite: null, datetime: null } },\n    kbd: s,\n    keygen: {\n      attrs: {\n        challenge: null, form: null, name: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        keytype: [\"RSA\"]\n      }\n    },\n    label: { attrs: { \"for\": null, form: null } },\n    legend: s,\n    li: { attrs: { value: null } },\n    link: {\n      attrs: {\n        href: null, type: null,\n        hreflang: langs,\n        media: media,\n        sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n      }\n    },\n    map: { attrs: { name: null } },\n    mark: s,\n    menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n    meta: {\n      attrs: {\n        content: null,\n        charset: charsets,\n        name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n        \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n      }\n    },\n    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n    nav: s,\n    noframes: s,\n    noscript: s,\n    object: {\n      attrs: {\n        data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n        typemustmatch: [\"\", \"typemustmatch\"]\n      }\n    },\n    ol: { attrs: { reversed: [\"\", \"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] } },\n    optgroup: { attrs: { disabled: [\"\", \"disabled\"], label: null } },\n    option: { attrs: { disabled: [\"\", \"disabled\"], label: null, selected: [\"\", \"selected\"], value: null } },\n    output: { attrs: { \"for\": null, form: null, name: null } },\n    p: s,\n    param: { attrs: { name: null, value: null } },\n    pre: s,\n    progress: { attrs: { value: null, max: null } },\n    q: { attrs: { cite: null } },\n    rp: s,\n    rt: s,\n    ruby: s,\n    s: s,\n    samp: s,\n    script: {\n      attrs: {\n        type: [\"text/javascript\"],\n        src: null,\n        async: [\"\", \"async\"],\n        defer: [\"\", \"defer\"],\n        charset: charsets\n      }\n    },\n    section: s,\n    select: {\n      attrs: {\n        form: null, name: null, size: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        multiple: [\"\", \"multiple\"]\n      }\n    },\n    small: s,\n    source: { attrs: { src: null, type: null, media: null } },\n    span: s,\n    strike: s,\n    strong: s,\n    style: {\n      attrs: {\n        type: [\"text/css\"],\n        media: media,\n        scoped: null\n      }\n    },\n    sub: s,\n    summary: s,\n    sup: s,\n    table: s,\n    tbody: s,\n    td: { attrs: { colspan: null, rowspan: null, headers: null } },\n    textarea: {\n      attrs: {\n        dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n        rows: null, cols: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        wrap: [\"soft\", \"hard\"]\n      }\n    },\n    tfoot: s,\n    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n    thead: s,\n    time: { attrs: { datetime: null } },\n    title: s,\n    tr: s,\n    track: {\n      attrs: {\n        src: null, label: null, \"default\": null,\n        kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n        srclang: langs\n      }\n    },\n    tt: s,\n    u: s,\n    ul: s,\n    \"var\": s,\n    video: {\n      attrs: {\n        src: null, poster: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"auto\", \"metadata\", \"none\"],\n        autoplay: [\"\", \"autoplay\"],\n        mediagroup: [\"movie\"],\n        muted: [\"\", \"muted\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    wbr: s\n  };\n\n  var globalAttrs = {\n    accesskey: [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    \"class\": null,\n    contenteditable: [\"true\", \"false\"],\n    contextmenu: null,\n    dir: [\"ltr\", \"rtl\", \"auto\"],\n    draggable: [\"true\", \"false\", \"auto\"],\n    dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n    hidden: [\"hidden\"],\n    id: null,\n    inert: [\"inert\"],\n    itemid: null,\n    itemprop: null,\n    itemref: null,\n    itemscope: [\"itemscope\"],\n    itemtype: null,\n    lang: [\"en\", \"es\"],\n    spellcheck: [\"true\", \"false\"],\n    style: null,\n    tabindex: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    title: null,\n    translate: [\"yes\", \"no\"],\n    onclick: null,\n    rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"]\n  };\n  function populate(obj) {\n    for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))\n      obj.attrs[attr] = globalAttrs[attr];\n  }\n\n  populate(s);\n  for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)\n    populate(data[tag]);\n\n  CodeMirror.htmlSchema = data;\n  function htmlHint(cm, options) {\n    var local = {schemaInfo: data};\n    if (options) for (var opt in options) local[opt] = options[opt];\n    return CodeMirror.hint.xml(cm, local);\n  }\n  CodeMirror.registerHelper(\"hint\", \"html\", htmlHint);\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/javascript-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var Pos = CodeMirror.Pos;\n\n  function forEach(arr, f) {\n    for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);\n  }\n\n  function arrayContains(arr, item) {\n    if (!Array.prototype.indexOf) {\n      var i = arr.length;\n      while (i--) {\n        if (arr[i] === item) {\n          return true;\n        }\n      }\n      return false;\n    }\n    return arr.indexOf(item) != -1;\n  }\n\n  function scriptHint(editor, keywords, getToken, options) {\n    // Find the token at the cursor\n    var cur = editor.getCursor(), token = getToken(editor, cur);\n    if (/\\b(?:string|comment)\\b/.test(token.type)) return;\n    token.state = CodeMirror.innerMode(editor.getMode(), token.state).state;\n\n    // If it's not a 'word-style' token, ignore the token.\n    if (!/^[\\w$_]*$/.test(token.string)) {\n      token = {start: cur.ch, end: cur.ch, string: \"\", state: token.state,\n               type: token.string == \".\" ? \"property\" : null};\n    } else if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    var tprop = token;\n    // If it is a property, find out what it is a property of.\n    while (tprop.type == \"property\") {\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (tprop.string != \".\") return;\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (!context) var context = [];\n      context.push(tprop);\n    }\n    return {list: getCompletions(token, context, keywords, options),\n            from: Pos(cur.line, token.start),\n            to: Pos(cur.line, token.end)};\n  }\n\n  function javascriptHint(editor, options) {\n    return scriptHint(editor, javascriptKeywords,\n                      function (e, cur) {return e.getTokenAt(cur);},\n                      options);\n  };\n  CodeMirror.registerHelper(\"hint\", \"javascript\", javascriptHint);\n\n  function getCoffeeScriptToken(editor, cur) {\n  // This getToken, it is for coffeescript, imitates the behavior of\n  // getTokenAt method in javascript.js, that is, returning \"property\"\n  // type and treat \".\" as indepenent token.\n    var token = editor.getTokenAt(cur);\n    if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {\n      token.end = token.start;\n      token.string = '.';\n      token.type = \"property\";\n    }\n    else if (/^\\.[\\w$_]*$/.test(token.string)) {\n      token.type = \"property\";\n      token.start++;\n      token.string = token.string.replace(/\\./, '');\n    }\n    return token;\n  }\n\n  function coffeescriptHint(editor, options) {\n    return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);\n  }\n  CodeMirror.registerHelper(\"hint\", \"coffeescript\", coffeescriptHint);\n\n  var stringProps = (\"charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight \" +\n                     \"toUpperCase toLowerCase split concat match replace search\").split(\" \");\n  var arrayProps = (\"length concat join splice push pop shift unshift slice reverse sort indexOf \" +\n                    \"lastIndexOf every some filter forEach map reduce reduceRight \").split(\" \");\n  var funcProps = \"prototype apply call bind\".split(\" \");\n  var javascriptKeywords = (\"break case catch continue debugger default delete do else false finally for function \" +\n                  \"if in instanceof new null return switch throw true try typeof var void while with\").split(\" \");\n  var coffeescriptKeywords = (\"and break catch class continue delete do else extends false finally for \" +\n                  \"if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes\").split(\" \");\n\n  function getCompletions(token, context, keywords, options) {\n    var found = [], start = token.string, global = options && options.globalScope || window;\n    function maybeAdd(str) {\n      if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str);\n    }\n    function gatherCompletions(obj) {\n      if (typeof obj == \"string\") forEach(stringProps, maybeAdd);\n      else if (obj instanceof Array) forEach(arrayProps, maybeAdd);\n      else if (obj instanceof Function) forEach(funcProps, maybeAdd);\n      for (var name in obj) maybeAdd(name);\n    }\n\n    if (context && context.length) {\n      // If this is a property, see if it belongs to some object we can\n      // find in the current environment.\n      var obj = context.pop(), base;\n      if (obj.type && obj.type.indexOf(\"variable\") === 0) {\n        if (options && options.additionalContext)\n          base = options.additionalContext[obj.string];\n        if (!options || options.useGlobalScope !== false)\n          base = base || global[obj.string];\n      } else if (obj.type == \"string\") {\n        base = \"\";\n      } else if (obj.type == \"atom\") {\n        base = 1;\n      } else if (obj.type == \"function\") {\n        if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&\n            (typeof global.jQuery == 'function'))\n          base = global.jQuery();\n        else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function'))\n          base = global._();\n      }\n      while (base != null && context.length)\n        base = base[context.pop().string];\n      if (base != null) gatherCompletions(base);\n    } else {\n      // If not, just look in the global object and any local scope\n      // (reading into JS mode internals to get at the local and global variables)\n      for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);\n      for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);\n      if (!options || options.useGlobalScope !== false)\n        gatherCompletions(global);\n      forEach(keywords, maybeAdd);\n    }\n    return found;\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/show-hint.css",
    "content": ".CodeMirror-hints {\n  position: absolute;\n  z-index: 10;\n  overflow: hidden;\n  list-style: none;\n\n  margin: 0;\n  padding: 2px;\n\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  border-radius: 3px;\n  border: 1px solid silver;\n\n  background: white;\n  font-size: 90%;\n  font-family: monospace;\n\n  max-height: 20em;\n  overflow-y: auto;\n}\n\n.CodeMirror-hint {\n  margin: 0;\n  padding: 0 4px;\n  border-radius: 2px;\n  max-width: 19em;\n  overflow: hidden;\n  white-space: pre;\n  color: black;\n  cursor: pointer;\n}\n\nli.CodeMirror-hint-active {\n  background: #08f;\n  color: white;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/show-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var HINT_ELEMENT_CLASS        = \"CodeMirror-hint\";\n  var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n  // This is the old interface, kept around for now to stay\n  // backwards-compatible.\n  CodeMirror.showHint = function(cm, getHints, options) {\n    if (!getHints) return cm.showHint(options);\n    if (options && options.async) getHints.async = true;\n    var newOpts = {hint: getHints};\n    if (options) for (var prop in options) newOpts[prop] = options[prop];\n    return cm.showHint(newOpts);\n  };\n\n  var asyncRunID = 0;\n  function retrieveHints(getter, cm, options, then) {\n    if (getter.async) {\n      var id = ++asyncRunID;\n      getter(cm, function(hints) {\n        if (asyncRunID == id) then(hints);\n      }, options);\n    } else {\n      then(getter(cm, options));\n    }\n  }\n\n  CodeMirror.defineExtension(\"showHint\", function(options) {\n    // We want a single cursor position.\n    if (this.listSelections().length > 1 || this.somethingSelected()) return;\n\n    if (this.state.completionActive) this.state.completionActive.close();\n    var completion = this.state.completionActive = new Completion(this, options);\n    var getHints = completion.options.hint;\n    if (!getHints) return;\n\n    CodeMirror.signal(this, \"startCompletion\", this);\n    return retrieveHints(getHints, this, completion.options, function(hints) { completion.showHints(hints); });\n  });\n\n  function Completion(cm, options) {\n    this.cm = cm;\n    this.options = this.buildOptions(options);\n    this.widget = this.onClose = null;\n  }\n\n  Completion.prototype = {\n    close: function() {\n      if (!this.active()) return;\n      this.cm.state.completionActive = null;\n\n      if (this.widget) this.widget.close();\n      if (this.onClose) this.onClose();\n      CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n    },\n\n    active: function() {\n      return this.cm.state.completionActive == this;\n    },\n\n    pick: function(data, i) {\n      var completion = data.list[i];\n      if (completion.hint) completion.hint(this.cm, data, completion);\n      else this.cm.replaceRange(getText(completion), completion.from || data.from,\n                                completion.to || data.to, \"complete\");\n      CodeMirror.signal(data, \"pick\", completion);\n      this.close();\n    },\n\n    showHints: function(data) {\n      if (!data || !data.list.length || !this.active()) return this.close();\n\n      if (this.options.completeSingle && data.list.length == 1)\n        this.pick(data, 0);\n      else\n        this.showWidget(data);\n    },\n\n    showWidget: function(data) {\n      this.widget = new Widget(this, data);\n      CodeMirror.signal(data, \"shown\");\n\n      var debounce = 0, completion = this, finished;\n      var closeOn = this.options.closeCharacters;\n      var startPos = this.cm.getCursor(), startLen = this.cm.getLine(startPos.line).length;\n\n      var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n        return setTimeout(fn, 1000/60);\n      };\n      var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n      function done() {\n        if (finished) return;\n        finished = true;\n        completion.close();\n        completion.cm.off(\"cursorActivity\", activity);\n        if (data) CodeMirror.signal(data, \"close\");\n      }\n\n      function update() {\n        if (finished) return;\n        CodeMirror.signal(data, \"update\");\n        retrieveHints(completion.options.hint, completion.cm, completion.options, finishUpdate);\n      }\n      function finishUpdate(data_) {\n        data = data_;\n        if (finished) return;\n        if (!data || !data.list.length) return done();\n        if (completion.widget) completion.widget.close();\n        completion.widget = new Widget(completion, data);\n      }\n\n      function clearDebounce() {\n        if (debounce) {\n          cancelAnimationFrame(debounce);\n          debounce = 0;\n        }\n      }\n\n      function activity() {\n        clearDebounce();\n        var pos = completion.cm.getCursor(), line = completion.cm.getLine(pos.line);\n        if (pos.line != startPos.line || line.length - pos.ch != startLen - startPos.ch ||\n            pos.ch < startPos.ch || completion.cm.somethingSelected() ||\n            (pos.ch && closeOn.test(line.charAt(pos.ch - 1)))) {\n          completion.close();\n        } else {\n          debounce = requestAnimationFrame(update);\n          if (completion.widget) completion.widget.close();\n        }\n      }\n      this.cm.on(\"cursorActivity\", activity);\n      this.onClose = done;\n    },\n\n    buildOptions: function(options) {\n      var editor = this.cm.options.hintOptions;\n      var out = {};\n      for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n      if (editor) for (var prop in editor)\n        if (editor[prop] !== undefined) out[prop] = editor[prop];\n      if (options) for (var prop in options)\n        if (options[prop] !== undefined) out[prop] = options[prop];\n      return out;\n    }\n  };\n\n  function getText(completion) {\n    if (typeof completion == \"string\") return completion;\n    else return completion.text;\n  }\n\n  function buildKeyMap(completion, handle) {\n    var baseMap = {\n      Up: function() {handle.moveFocus(-1);},\n      Down: function() {handle.moveFocus(1);},\n      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n      Home: function() {handle.setFocus(0);},\n      End: function() {handle.setFocus(handle.length - 1);},\n      Enter: handle.pick,\n      Tab: handle.pick,\n      Esc: handle.close\n    };\n    var custom = completion.options.customKeys;\n    var ourMap = custom ? {} : baseMap;\n    function addBinding(key, val) {\n      var bound;\n      if (typeof val != \"string\")\n        bound = function(cm) { return val(cm, handle); };\n      // This mechanism is deprecated\n      else if (baseMap.hasOwnProperty(val))\n        bound = baseMap[val];\n      else\n        bound = val;\n      ourMap[key] = bound;\n    }\n    if (custom)\n      for (var key in custom) if (custom.hasOwnProperty(key))\n        addBinding(key, custom[key]);\n    var extra = completion.options.extraKeys;\n    if (extra)\n      for (var key in extra) if (extra.hasOwnProperty(key))\n        addBinding(key, extra[key]);\n    return ourMap;\n  }\n\n  function getHintElement(hintsElement, el) {\n    while (el && el != hintsElement) {\n      if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n      el = el.parentNode;\n    }\n  }\n\n  function Widget(completion, data) {\n    this.completion = completion;\n    this.data = data;\n    var widget = this, cm = completion.cm;\n\n    var hints = this.hints = document.createElement(\"ul\");\n    hints.className = \"CodeMirror-hints\";\n    this.selectedHint = data.selectedHint || 0;\n\n    var completions = data.list;\n    for (var i = 0; i < completions.length; ++i) {\n      var elt = hints.appendChild(document.createElement(\"li\")), cur = completions[i];\n      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n      if (cur.className != null) className = cur.className + \" \" + className;\n      elt.className = className;\n      if (cur.render) cur.render(elt, data, cur);\n      else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));\n      elt.hintId = i;\n    }\n\n    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n    var left = pos.left, top = pos.bottom, below = true;\n    hints.style.left = left + \"px\";\n    hints.style.top = top + \"px\";\n    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n    var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);\n    var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);\n    (completion.options.container || document.body).appendChild(hints);\n    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;\n    if (overlapY > 0) {\n      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n      if (curTop - height > 0) { // Fits above cursor\n        hints.style.top = (top = pos.top - height) + \"px\";\n        below = false;\n      } else if (height > winH) {\n        hints.style.height = (winH - 5) + \"px\";\n        hints.style.top = (top = pos.bottom - box.top) + \"px\";\n        var cursor = cm.getCursor();\n        if (data.from.ch != cursor.ch) {\n          pos = cm.cursorCoords(cursor);\n          hints.style.left = (left = pos.left) + \"px\";\n          box = hints.getBoundingClientRect();\n        }\n      }\n    }\n    var overlapX = box.right - winW;\n    if (overlapX > 0) {\n      if (box.right - box.left > winW) {\n        hints.style.width = (winW - 5) + \"px\";\n        overlapX -= (box.right - box.left) - winW;\n      }\n      hints.style.left = (left = pos.left - overlapX) + \"px\";\n    }\n\n    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n      setFocus: function(n) { widget.changeActive(n); },\n      menuSize: function() { return widget.screenAmount(); },\n      length: completions.length,\n      close: function() { completion.close(); },\n      pick: function() { widget.pick(); },\n      data: data\n    }));\n\n    if (completion.options.closeOnUnfocus) {\n      var closingOnBlur;\n      cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n      cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n    }\n\n    var startScroll = cm.getScrollInfo();\n    cm.on(\"scroll\", this.onScroll = function() {\n      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n      var newTop = top + startScroll.top - curScroll.top;\n      var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);\n      if (!below) point += hints.offsetHeight;\n      if (point <= editor.top || point >= editor.bottom) return completion.close();\n      hints.style.top = newTop + \"px\";\n      hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n    });\n\n    CodeMirror.on(hints, \"dblclick\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n    });\n\n    CodeMirror.on(hints, \"click\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {\n        widget.changeActive(t.hintId);\n        if (completion.options.completeOnSingleClick) widget.pick();\n      }\n    });\n\n    CodeMirror.on(hints, \"mousedown\", function() {\n      setTimeout(function(){cm.focus();}, 20);\n    });\n\n    CodeMirror.signal(data, \"select\", completions[0], hints.firstChild);\n    return true;\n  }\n\n  Widget.prototype = {\n    close: function() {\n      if (this.completion.widget != this) return;\n      this.completion.widget = null;\n      this.hints.parentNode.removeChild(this.hints);\n      this.completion.cm.removeKeyMap(this.keyMap);\n\n      var cm = this.completion.cm;\n      if (this.completion.options.closeOnUnfocus) {\n        cm.off(\"blur\", this.onBlur);\n        cm.off(\"focus\", this.onFocus);\n      }\n      cm.off(\"scroll\", this.onScroll);\n    },\n\n    pick: function() {\n      this.completion.pick(this.data, this.selectedHint);\n    },\n\n    changeActive: function(i, avoidWrap) {\n      if (i >= this.data.list.length)\n        i = avoidWrap ? this.data.list.length - 1 : 0;\n      else if (i < 0)\n        i = avoidWrap ? 0  : this.data.list.length - 1;\n      if (this.selectedHint == i) return;\n      var node = this.hints.childNodes[this.selectedHint];\n      node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n      node = this.hints.childNodes[this.selectedHint = i];\n      node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n      if (node.offsetTop < this.hints.scrollTop)\n        this.hints.scrollTop = node.offsetTop - 3;\n      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;\n      CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n    },\n\n    screenAmount: function() {\n      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n    }\n  };\n\n  CodeMirror.registerHelper(\"hint\", \"auto\", function(cm, options) {\n    var helpers = cm.getHelpers(cm.getCursor(), \"hint\"), words;\n    if (helpers.length) {\n      for (var i = 0; i < helpers.length; i++) {\n        var cur = helpers[i](cm, options);\n        if (cur && cur.list.length) return cur;\n      }\n    } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n      if (words) return CodeMirror.hint.fromList(cm, {words: words});\n    } else if (CodeMirror.hint.anyword) {\n      return CodeMirror.hint.anyword(cm, options);\n    }\n  });\n\n  CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    var found = [];\n    for (var i = 0; i < options.words.length; i++) {\n      var word = options.words[i];\n      if (word.slice(0, token.string.length) == token.string)\n        found.push(word);\n    }\n\n    if (found.length) return {\n      list: found,\n      from: CodeMirror.Pos(cur.line, token.start),\n            to: CodeMirror.Pos(cur.line, token.end)\n    };\n  });\n\n  CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n  var defaultOptions = {\n    hint: CodeMirror.hint.auto,\n    completeSingle: true,\n    alignWithWord: true,\n    closeCharacters: /[\\s()\\[\\]{};:>,]/,\n    closeOnUnfocus: true,\n    completeOnSingleClick: false,\n    container: null,\n    customKeys: null,\n    extraKeys: null\n  };\n\n  CodeMirror.defineOption(\"hintOptions\", null);\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/sql-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/sql/sql\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/sql/sql\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var tables;\n  var defaultTable;\n  var keywords;\n  var CONS = {\n    QUERY_DIV: \";\",\n    ALIAS_KEYWORD: \"AS\"\n  };\n  var Pos = CodeMirror.Pos;\n\n  function getKeywords(editor) {\n    var mode = editor.doc.modeOption;\n    if (mode === \"sql\") mode = \"text/x-sql\";\n    return CodeMirror.resolveMode(mode).keywords;\n  }\n\n  function getText(item) {\n    return typeof item == \"string\" ? item : item.text;\n  }\n\n  function getItem(list, item) {\n    if (!list.slice) return list[item];\n    for (var i = list.length - 1; i >= 0; i--) if (getText(list[i]) == item)\n      return list[i];\n  }\n\n  function shallowClone(object) {\n    var result = {};\n    for (var key in object) if (object.hasOwnProperty(key))\n      result[key] = object[key];\n    return result;\n  }\n\n  function match(string, word) {\n    var len = string.length;\n    var sub = getText(word).substr(0, len);\n    return string.toUpperCase() === sub.toUpperCase();\n  }\n\n  function addMatches(result, search, wordlist, formatter) {\n    for (var word in wordlist) {\n      if (!wordlist.hasOwnProperty(word)) continue;\n      if (Array.isArray(wordlist)) {\n        word = wordlist[word];\n      }\n      if (match(search, word)) {\n        result.push(formatter(word));\n      }\n    }\n  }\n\n  function cleanName(name) {\n    // Get rid name from backticks(`) and preceding dot(.)\n    if (name.charAt(0) == \".\") {\n      name = name.substr(1);\n    }\n    return name.replace(/`/g, \"\");\n  }\n\n  function insertBackticks(name) {\n    var nameParts = getText(name).split(\".\");\n    for (var i = 0; i < nameParts.length; i++)\n      nameParts[i] = \"`\" + nameParts[i] + \"`\";\n    var escaped = nameParts.join(\".\");\n    if (typeof name == \"string\") return escaped;\n    name = shallowClone(name);\n    name.text = escaped;\n    return name;\n  }\n\n  function nameCompletion(cur, token, result, editor) {\n    // Try to complete table, colunm names and return start position of completion\n    var useBacktick = false;\n    var nameParts = [];\n    var start = token.start;\n    var cont = true;\n    while (cont) {\n      cont = (token.string.charAt(0) == \".\");\n      useBacktick = useBacktick || (token.string.charAt(0) == \"`\");\n\n      start = token.start;\n      nameParts.unshift(cleanName(token.string));\n\n      token = editor.getTokenAt(Pos(cur.line, token.start));\n      if (token.string == \".\") {\n        cont = true;\n        token = editor.getTokenAt(Pos(cur.line, token.start));\n      }\n    }\n\n    // Try to complete table names\n    var string = nameParts.join(\".\");\n    addMatches(result, string, tables, function(w) {\n      return useBacktick ? insertBackticks(w) : w;\n    });\n\n    // Try to complete columns from defaultTable\n    addMatches(result, string, defaultTable, function(w) {\n      return useBacktick ? insertBackticks(w) : w;\n    });\n\n    // Try to complete columns\n    string = nameParts.pop();\n    var table = nameParts.join(\".\");\n\n    // Check if table is available. If not, find table by Alias\n    if (!getItem(tables, table))\n      table = findTableByAlias(table, editor);\n\n    var columns = getItem(tables, table);\n    if (columns && Array.isArray(tables) && columns.columns)\n      columns = columns.columns;\n\n    if (columns) {\n      addMatches(result, string, columns, function(w) {\n        if (typeof w == \"string\") {\n          w = table + \".\" + w;\n        } else {\n          w = shallowClone(w);\n          w.text = table + \".\" + w.text;\n        }\n        return useBacktick ? insertBackticks(w) : w;\n      });\n    }\n\n    return start;\n  }\n\n  function eachWord(lineText, f) {\n    if (!lineText) return;\n    var excepted = /[,;]/g;\n    var words = lineText.split(\" \");\n    for (var i = 0; i < words.length; i++) {\n      f(words[i]?words[i].replace(excepted, '') : '');\n    }\n  }\n\n  function convertCurToNumber(cur) {\n    // max characters of a line is 999,999.\n    return cur.line + cur.ch / Math.pow(10, 6);\n  }\n\n  function convertNumberToCur(num) {\n    return Pos(Math.floor(num), +num.toString().split('.').pop());\n  }\n\n  function findTableByAlias(alias, editor) {\n    var doc = editor.doc;\n    var fullQuery = doc.getValue();\n    var aliasUpperCase = alias.toUpperCase();\n    var previousWord = \"\";\n    var table = \"\";\n    var separator = [];\n    var validRange = {\n      start: Pos(0, 0),\n      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)\n    };\n\n    //add separator\n    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);\n    while(indexOfSeparator != -1) {\n      separator.push(doc.posFromIndex(indexOfSeparator));\n      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);\n    }\n    separator.unshift(Pos(0, 0));\n    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));\n\n    //find valid range\n    var prevItem = 0;\n    var current = convertCurToNumber(editor.getCursor());\n    for (var i=0; i< separator.length; i++) {\n      var _v = convertCurToNumber(separator[i]);\n      if (current > prevItem && current <= _v) {\n        validRange = { start: convertNumberToCur(prevItem), end: convertNumberToCur(_v) };\n        break;\n      }\n      prevItem = _v;\n    }\n\n    var query = doc.getRange(validRange.start, validRange.end, false);\n\n    for (var i = 0; i < query.length; i++) {\n      var lineText = query[i];\n      eachWord(lineText, function(word) {\n        var wordUpperCase = word.toUpperCase();\n        if (wordUpperCase === aliasUpperCase && getItem(tables, previousWord))\n          table = previousWord;\n        if (wordUpperCase !== CONS.ALIAS_KEYWORD)\n          previousWord = word;\n      });\n      if (table) break;\n    }\n    return table;\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"sql\", function(editor, options) {\n    tables = (options && options.tables) || {};\n    var defaultTableName = options && options.defaultTable;\n    defaultTable = (defaultTableName && getItem(tables, defaultTableName)) || [];\n    keywords = keywords || getKeywords(editor);\n\n    var cur = editor.getCursor();\n    var result = [];\n    var token = editor.getTokenAt(cur), start, end, search;\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    if (token.string.match(/^[.`\\w@]\\w*$/)) {\n      search = token.string;\n      start = token.start;\n      end = token.end;\n    } else {\n      start = end = cur.ch;\n      search = \"\";\n    }\n    if (search.charAt(0) == \".\" || search.charAt(0) == \"`\") {\n      start = nameCompletion(cur, token, result, editor);\n    } else {\n      addMatches(result, search, tables, function(w) {return w;});\n      addMatches(result, search, defaultTable, function(w) {return w;});\n      addMatches(result, search, keywords, function(w) {return w.toUpperCase();});\n    }\n\n    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/hint/xml-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function getHints(cm, options) {\n    var tags = options && options.schemaInfo;\n    var quote = (options && options.quoteChar) || '\"';\n    if (!tags) return;\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (inner.mode.name != \"xml\") return;\n    var result = [], replaceToken = false, prefix;\n    var tag = /\\btag\\b/.test(token.type) && !/>$/.test(token.string);\n    var tagName = tag && /^\\w/.test(token.string), tagStart;\n\n    if (tagName) {\n      var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start);\n      var tagType = /<\\/$/.test(before) ? \"close\" : /<$/.test(before) ? \"open\" : null;\n      if (tagType) tagStart = token.start - (tagType == \"close\" ? 2 : 1);\n    } else if (tag && token.string == \"<\") {\n      tagType = \"open\";\n    } else if (tag && token.string == \"</\") {\n      tagType = \"close\";\n    }\n\n    if (!tag && !inner.state.tagName || tagType) {\n      if (tagName)\n        prefix = token.string;\n      replaceToken = tagType;\n      var cx = inner.state.context, curTag = cx && tags[cx.tagName];\n      var childList = cx ? curTag && curTag.children : tags[\"!top\"];\n      if (childList && tagType != \"close\") {\n        for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].lastIndexOf(prefix, 0) == 0)\n          result.push(\"<\" + childList[i]);\n      } else if (tagType != \"close\") {\n        for (var name in tags)\n          if (tags.hasOwnProperty(name) && name != \"!top\" && name != \"!attrs\" && (!prefix || name.lastIndexOf(prefix, 0) == 0))\n            result.push(\"<\" + name);\n      }\n      if (cx && (!prefix || tagType == \"close\" && cx.tagName.lastIndexOf(prefix, 0) == 0))\n        result.push(\"</\" + cx.tagName + \">\");\n    } else {\n      // Attribute completion\n      var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs;\n      var globalAttrs = tags[\"!attrs\"];\n      if (!attrs && !globalAttrs) return;\n      if (!attrs) {\n        attrs = globalAttrs;\n      } else if (globalAttrs) { // Combine tag-local and global attributes\n        var set = {};\n        for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm];\n        for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm];\n        attrs = set;\n      }\n      if (token.type == \"string\" || token.string == \"=\") { // A value\n        var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),\n                                 Pos(cur.line, token.type == \"string\" ? token.start : token.end));\n        var atName = before.match(/([^\\s\\u00a0=<>\\\"\\']+)=$/), atValues;\n        if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;\n        if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget\n        if (token.type == \"string\") {\n          prefix = token.string;\n          var n = 0;\n          if (/['\"]/.test(token.string.charAt(0))) {\n            quote = token.string.charAt(0);\n            prefix = token.string.slice(1);\n            n++;\n          }\n          var len = token.string.length;\n          if (/['\"]/.test(token.string.charAt(len - 1))) {\n            quote = token.string.charAt(len - 1);\n            prefix = token.string.substr(n, len - 2);\n          }\n          replaceToken = true;\n        }\n        for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].lastIndexOf(prefix, 0) == 0)\n          result.push(quote + atValues[i] + quote);\n      } else { // An attribute name\n        if (token.type == \"attribute\") {\n          prefix = token.string;\n          replaceToken = true;\n        }\n        for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.lastIndexOf(prefix, 0) == 0))\n          result.push(attr);\n      }\n    }\n    return {\n      list: result,\n      from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur,\n      to: replaceToken ? Pos(cur.line, token.end) : cur\n    };\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"xml\", getHints);\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/coffeescript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js\n\n// declare global: coffeelint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"coffeescript\", function(text) {\n  var found = [];\n  var parseError = function(err) {\n    var loc = err.lineNumber;\n    found.push({from: CodeMirror.Pos(loc-1, 0),\n                to: CodeMirror.Pos(loc, 0),\n                severity: err.level,\n                message: err.message});\n  };\n  try {\n    var res = coffeelint.lint(text);\n    for(var i = 0; i < res.length; i++) {\n      parseError(res[i]);\n    }\n  } catch(e) {\n    found.push({from: CodeMirror.Pos(e.location.first_line, 0),\n                to: CodeMirror.Pos(e.location.last_line, e.location.last_column),\n                severity: 'error',\n                message: e.message});\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/css-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on csslint.js from https://github.com/stubbornella/csslint\n\n// declare global: CSSLint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"css\", function(text) {\n  var found = [];\n  if (!window.CSSLint) return found;\n  var results = CSSLint.verify(text), messages = results.messages, message = null;\n  for ( var i = 0; i < messages.length; i++) {\n    message = messages[i];\n    var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;\n    found.push({\n      from: CodeMirror.Pos(startLine, startCol),\n      to: CodeMirror.Pos(endLine, endCol),\n      message: message.message,\n      severity : message.type\n    });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/javascript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: JSHINT\n\n  var bogus = [ \"Dangerous comment\" ];\n\n  var warnings = [ [ \"Expected '{'\",\n                     \"Statement body should be inside '{ }' braces.\" ] ];\n\n  var errors = [ \"Missing semicolon\", \"Extra comma\", \"Missing property name\",\n                 \"Unmatched \", \" and instead saw\", \" is not defined\",\n                 \"Unclosed string\", \"Stopping, unable to continue\" ];\n\n  function validator(text, options) {\n    if (!window.JSHINT) return [];\n    JSHINT(text, options);\n    var errors = JSHINT.data().errors, result = [];\n    if (errors) parseErrors(errors, result);\n    return result;\n  }\n\n  CodeMirror.registerHelper(\"lint\", \"javascript\", validator);\n\n  function cleanup(error) {\n    // All problems are warnings by default\n    fixWith(error, warnings, \"warning\", true);\n    fixWith(error, errors, \"error\");\n\n    return isBogus(error) ? null : error;\n  }\n\n  function fixWith(error, fixes, severity, force) {\n    var description, fix, find, replace, found;\n\n    description = error.description;\n\n    for ( var i = 0; i < fixes.length; i++) {\n      fix = fixes[i];\n      find = (typeof fix === \"string\" ? fix : fix[0]);\n      replace = (typeof fix === \"string\" ? null : fix[1]);\n      found = description.indexOf(find) !== -1;\n\n      if (force || found) {\n        error.severity = severity;\n      }\n      if (found && replace) {\n        error.description = replace;\n      }\n    }\n  }\n\n  function isBogus(error) {\n    var description = error.description;\n    for ( var i = 0; i < bogus.length; i++) {\n      if (description.indexOf(bogus[i]) !== -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  function parseErrors(errors, output) {\n    for ( var i = 0; i < errors.length; i++) {\n      var error = errors[i];\n      if (error) {\n        var linetabpositions, index;\n\n        linetabpositions = [];\n\n        // This next block is to fix a problem in jshint. Jshint\n        // replaces\n        // all tabs with spaces then performs some checks. The error\n        // positions (character/space) are then reported incorrectly,\n        // not taking the replacement step into account. Here we look\n        // at the evidence line and try to adjust the character position\n        // to the correct value.\n        if (error.evidence) {\n          // Tab positions are computed once per line and cached\n          var tabpositions = linetabpositions[error.line];\n          if (!tabpositions) {\n            var evidence = error.evidence;\n            tabpositions = [];\n            // ugggh phantomjs does not like this\n            // forEachChar(evidence, function(item, index) {\n            Array.prototype.forEach.call(evidence, function(item,\n                                                            index) {\n              if (item === '\\t') {\n                // First col is 1 (not 0) to match error\n                // positions\n                tabpositions.push(index + 1);\n              }\n            });\n            linetabpositions[error.line] = tabpositions;\n          }\n          if (tabpositions.length > 0) {\n            var pos = error.character;\n            tabpositions.forEach(function(tabposition) {\n              if (pos > tabposition) pos -= 1;\n            });\n            error.character = pos;\n          }\n        }\n\n        var start = error.character - 1, end = start + 1;\n        if (error.evidence) {\n          index = error.evidence.substring(start).search(/.\\b/);\n          if (index > -1) {\n            end += index;\n          }\n        }\n\n        // Convert to format expected by validation service\n        error.description = error.reason;// + \"(jshint)\";\n        error.start = error.character;\n        error.end = end;\n        error = cleanup(error);\n\n        if (error)\n          output.push({message: error.description,\n                       severity: error.severity,\n                       from: CodeMirror.Pos(error.line - 1, start),\n                       to: CodeMirror.Pos(error.line - 1, end)});\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/json-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on jsonlint.js from https://github.com/zaach/jsonlint\n\n// declare global: jsonlint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"json\", function(text) {\n  var found = [];\n  jsonlint.parseError = function(str, hash) {\n    var loc = hash.loc;\n    found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),\n                to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),\n                message: str});\n  };\n  try { jsonlint.parse(text); }\n  catch(e) {}\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/lint.css",
    "content": "/* The lint marker gutter */\n.CodeMirror-lint-markers {\n  width: 16px;\n}\n\n.CodeMirror-lint-tooltip {\n  background-color: infobackground;\n  border: 1px solid black;\n  border-radius: 4px 4px 4px 4px;\n  color: infotext;\n  font-family: monospace;\n  font-size: 10pt;\n  overflow: hidden;\n  padding: 2px 5px;\n  position: fixed;\n  white-space: pre;\n  white-space: pre-wrap;\n  z-index: 100;\n  max-width: 600px;\n  opacity: 0;\n  transition: opacity .4s;\n  -moz-transition: opacity .4s;\n  -webkit-transition: opacity .4s;\n  -o-transition: opacity .4s;\n  -ms-transition: opacity .4s;\n}\n\n.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {\n  background-position: left bottom;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-lint-mark-error {\n  background-image:\n  url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==\")\n  ;\n}\n\n.CodeMirror-lint-mark-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {\n  background-position: center center;\n  background-repeat: no-repeat;\n  cursor: pointer;\n  display: inline-block;\n  height: 16px;\n  width: 16px;\n  vertical-align: middle;\n  position: relative;\n}\n\n.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {\n  padding-left: 18px;\n  background-position: top left;\n  background-repeat: no-repeat;\n}\n\n.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-multiple {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\");\n  background-repeat: no-repeat;\n  background-position: right bottom;\n  width: 100%; height: 100%;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var GUTTER_ID = \"CodeMirror-lint-markers\";\n\n  function showTooltip(e, content) {\n    var tt = document.createElement(\"div\");\n    tt.className = \"CodeMirror-lint-tooltip\";\n    tt.appendChild(content.cloneNode(true));\n    document.body.appendChild(tt);\n\n    function position(e) {\n      if (!tt.parentNode) return CodeMirror.off(document, \"mousemove\", position);\n      tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + \"px\";\n      tt.style.left = (e.clientX + 5) + \"px\";\n    }\n    CodeMirror.on(document, \"mousemove\", position);\n    position(e);\n    if (tt.style.opacity != null) tt.style.opacity = 1;\n    return tt;\n  }\n  function rm(elt) {\n    if (elt.parentNode) elt.parentNode.removeChild(elt);\n  }\n  function hideTooltip(tt) {\n    if (!tt.parentNode) return;\n    if (tt.style.opacity == null) rm(tt);\n    tt.style.opacity = 0;\n    setTimeout(function() { rm(tt); }, 600);\n  }\n\n  function showTooltipFor(e, content, node) {\n    var tooltip = showTooltip(e, content);\n    function hide() {\n      CodeMirror.off(node, \"mouseout\", hide);\n      if (tooltip) { hideTooltip(tooltip); tooltip = null; }\n    }\n    var poll = setInterval(function() {\n      if (tooltip) for (var n = node;; n = n.parentNode) {\n        if (n && n.nodeType == 11) n = n.host;\n        if (n == document.body) return;\n        if (!n) { hide(); break; }\n      }\n      if (!tooltip) return clearInterval(poll);\n    }, 400);\n    CodeMirror.on(node, \"mouseout\", hide);\n  }\n\n  function LintState(cm, options, hasGutter) {\n    this.marked = [];\n    this.options = options;\n    this.timeout = null;\n    this.hasGutter = hasGutter;\n    this.onMouseOver = function(e) { onMouseOver(cm, e); };\n  }\n\n  function parseOptions(cm, options) {\n    if (options instanceof Function) return {getAnnotations: options};\n    if (!options || options === true) options = {};\n    if (!options.getAnnotations) options.getAnnotations = cm.getHelper(CodeMirror.Pos(0, 0), \"lint\");\n    if (!options.getAnnotations) throw new Error(\"Required option 'getAnnotations' missing (lint addon)\");\n    return options;\n  }\n\n  function clearMarks(cm) {\n    var state = cm.state.lint;\n    if (state.hasGutter) cm.clearGutter(GUTTER_ID);\n    for (var i = 0; i < state.marked.length; ++i)\n      state.marked[i].clear();\n    state.marked.length = 0;\n  }\n\n  function makeMarker(labels, severity, multiple, tooltips) {\n    var marker = document.createElement(\"div\"), inner = marker;\n    marker.className = \"CodeMirror-lint-marker-\" + severity;\n    if (multiple) {\n      inner = marker.appendChild(document.createElement(\"div\"));\n      inner.className = \"CodeMirror-lint-marker-multiple\";\n    }\n\n    if (tooltips != false) CodeMirror.on(inner, \"mouseover\", function(e) {\n      showTooltipFor(e, labels, inner);\n    });\n\n    return marker;\n  }\n\n  function getMaxSeverity(a, b) {\n    if (a == \"error\") return a;\n    else return b;\n  }\n\n  function groupByLine(annotations) {\n    var lines = [];\n    for (var i = 0; i < annotations.length; ++i) {\n      var ann = annotations[i], line = ann.from.line;\n      (lines[line] || (lines[line] = [])).push(ann);\n    }\n    return lines;\n  }\n\n  function annotationTooltip(ann) {\n    var severity = ann.severity;\n    if (!severity) severity = \"error\";\n    var tip = document.createElement(\"div\");\n    tip.className = \"CodeMirror-lint-message-\" + severity;\n    tip.appendChild(document.createTextNode(ann.message));\n    return tip;\n  }\n\n  function startLinting(cm) {\n    var state = cm.state.lint, options = state.options;\n    var passOptions = options.options || options; // Support deprecated passing of `options` property in options\n    if (options.async || options.getAnnotations.async)\n      options.getAnnotations(cm.getValue(), updateLinting, passOptions, cm);\n    else\n      updateLinting(cm, options.getAnnotations(cm.getValue(), passOptions, cm));\n  }\n\n  function updateLinting(cm, annotationsNotSorted) {\n    clearMarks(cm);\n    var state = cm.state.lint, options = state.options;\n\n    var annotations = groupByLine(annotationsNotSorted);\n\n    for (var line = 0; line < annotations.length; ++line) {\n      var anns = annotations[line];\n      if (!anns) continue;\n\n      var maxSeverity = null;\n      var tipLabel = state.hasGutter && document.createDocumentFragment();\n\n      for (var i = 0; i < anns.length; ++i) {\n        var ann = anns[i];\n        var severity = ann.severity;\n        if (!severity) severity = \"error\";\n        maxSeverity = getMaxSeverity(maxSeverity, severity);\n\n        if (options.formatAnnotation) ann = options.formatAnnotation(ann);\n        if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));\n\n        if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {\n          className: \"CodeMirror-lint-mark-\" + severity,\n          __annotation: ann\n        }));\n      }\n\n      if (state.hasGutter)\n        cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,\n                                                       state.options.tooltips));\n    }\n    if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.lint;\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);\n  }\n\n  function popupSpanTooltip(ann, e) {\n    var target = e.target || e.srcElement;\n    showTooltipFor(e, annotationTooltip(ann), target);\n  }\n\n  function onMouseOver(cm, e) {\n    var target = e.target || e.srcElement;\n    if (!/\\bCodeMirror-lint-mark-/.test(target.className)) return;\n    var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;\n    var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, \"client\"));\n    for (var i = 0; i < spans.length; ++i) {\n      var ann = spans[i].__annotation;\n      if (ann) return popupSpanTooltip(ann, e);\n    }\n  }\n\n  CodeMirror.defineOption(\"lint\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      clearMarks(cm);\n      cm.off(\"change\", onChange);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseover\", cm.state.lint.onMouseOver);\n      delete cm.state.lint;\n    }\n\n    if (val) {\n      var gutters = cm.getOption(\"gutters\"), hasLintGutter = false;\n      for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;\n      var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);\n      cm.on(\"change\", onChange);\n      if (state.options.tooltips != false)\n        CodeMirror.on(cm.getWrapperElement(), \"mouseover\", state.onMouseOver);\n\n      startLinting(cm);\n    }\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/lint/yaml-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n// Depends on js-yaml.js from https://github.com/nodeca/js-yaml\n\n// declare global: jsyaml\n\nCodeMirror.registerHelper(\"lint\", \"yaml\", function(text) {\n  var found = [];\n  try { jsyaml.load(text); }\n  catch(e) {\n      var loc = e.mark;\n      found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/merge/merge.css",
    "content": ".CodeMirror-merge {\n  position: relative;\n  border: 1px solid #ddd;\n  white-space: pre;\n}\n\n.CodeMirror-merge, .CodeMirror-merge .CodeMirror {\n  height: 350px;\n}\n\n.CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }\n.CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }\n\n.CodeMirror-merge-pane {\n  display: inline-block;\n  white-space: normal;\n  vertical-align: top;\n}\n.CodeMirror-merge-pane-rightmost {\n  position: absolute;\n  right: 0px;\n  z-index: 1;\n}\n\n.CodeMirror-merge-gap {\n  z-index: 2;\n  display: inline-block;\n  height: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  overflow: hidden;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #ddd;\n  position: relative;\n  background: #f8f8f8;\n}\n\n.CodeMirror-merge-scrolllock-wrap {\n  position: absolute;\n  bottom: 0; left: 50%;\n}\n.CodeMirror-merge-scrolllock {\n  position: relative;\n  left: -50%;\n  cursor: pointer;\n  color: #555;\n  line-height: 1;\n}\n\n.CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {\n  position: absolute;\n  left: 0; top: 0;\n  right: 0; bottom: 0;\n  line-height: 1;\n}\n\n.CodeMirror-merge-copy {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n}\n\n.CodeMirror-merge-copy-reverse {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n}\n\n.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }\n.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }\n\n.CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-chunk { background: #ffffe0; }\n.CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }\n.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }\n.CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk { background: #eef; }\n.CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }\n.CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }\n.CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }\n.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }\n.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }\n\n.CodeMirror-merge-collapsed-widget:before {\n  content: \"(...)\";\n}\n.CodeMirror-merge-collapsed-widget {\n  cursor: pointer;\n  color: #88b;\n  background: #eef;\n  border: 1px solid #ddf;\n  font-size: 90%;\n  padding: 0 3px;\n  border-radius: 4px;\n}\n.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/merge/merge.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"diff_match_patch\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"diff_match_patch\"], mod);\n  else // Plain browser env\n    mod(CodeMirror, diff_match_patch);\n})(function(CodeMirror, diff_match_patch) {\n  \"use strict\";\n  var Pos = CodeMirror.Pos;\n  var svgNS = \"http://www.w3.org/2000/svg\";\n\n  function DiffView(mv, type) {\n    this.mv = mv;\n    this.type = type;\n    this.classes = type == \"left\"\n      ? {chunk: \"CodeMirror-merge-l-chunk\",\n         start: \"CodeMirror-merge-l-chunk-start\",\n         end: \"CodeMirror-merge-l-chunk-end\",\n         insert: \"CodeMirror-merge-l-inserted\",\n         del: \"CodeMirror-merge-l-deleted\",\n         connect: \"CodeMirror-merge-l-connect\"}\n      : {chunk: \"CodeMirror-merge-r-chunk\",\n         start: \"CodeMirror-merge-r-chunk-start\",\n         end: \"CodeMirror-merge-r-chunk-end\",\n         insert: \"CodeMirror-merge-r-inserted\",\n         del: \"CodeMirror-merge-r-deleted\",\n         connect: \"CodeMirror-merge-r-connect\"};\n  }\n\n  DiffView.prototype = {\n    constructor: DiffView,\n    init: function(pane, orig, options) {\n      this.edit = this.mv.edit;\n      this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));\n\n      this.diff = getDiff(asString(orig), asString(options.value));\n      this.chunks = getChunks(this.diff);\n      this.diffOutOfDate = this.dealigned = false;\n\n      this.showDifferences = options.showDifferences !== false;\n      this.forceUpdate = registerUpdate(this);\n      setScrollLock(this, true, false);\n      registerScroll(this);\n    },\n    setShowDifferences: function(val) {\n      val = val !== false;\n      if (val != this.showDifferences) {\n        this.showDifferences = val;\n        this.forceUpdate(\"full\");\n      }\n    }\n  };\n\n  function ensureDiff(dv) {\n    if (dv.diffOutOfDate) {\n      dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());\n      dv.chunks = getChunks(dv.diff);\n      dv.diffOutOfDate = false;\n      CodeMirror.signal(dv.edit, \"updateDiff\", dv.diff);\n    }\n  }\n\n  var updating = false;\n  function registerUpdate(dv) {\n    var edit = {from: 0, to: 0, marked: []};\n    var orig = {from: 0, to: 0, marked: []};\n    var debounceChange, updatingFast = false;\n    function update(mode) {\n      updating = true;\n      updatingFast = false;\n      if (mode == \"full\") {\n        if (dv.svg) clear(dv.svg);\n        if (dv.copyButtons) clear(dv.copyButtons);\n        clearMarks(dv.edit, edit.marked, dv.classes);\n        clearMarks(dv.orig, orig.marked, dv.classes);\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      ensureDiff(dv);\n      if (dv.showDifferences) {\n        updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);\n        updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);\n      }\n      makeConnections(dv);\n\n      if (dv.mv.options.connect == \"align\")\n        alignChunks(dv);\n      updating = false;\n    }\n    function setDealign(fast) {\n      if (updating) return;\n      dv.dealigned = true;\n      set(fast);\n    }\n    function set(fast) {\n      if (updating || updatingFast) return;\n      clearTimeout(debounceChange);\n      if (fast === true) updatingFast = true;\n      debounceChange = setTimeout(update, fast === true ? 20 : 250);\n    }\n    function change(_cm, change) {\n      if (!dv.diffOutOfDate) {\n        dv.diffOutOfDate = true;\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      // Update faster when a line was added/removed\n      setDealign(change.text.length - 1 != change.to.line - change.from.line);\n    }\n    dv.edit.on(\"change\", change);\n    dv.orig.on(\"change\", change);\n    dv.edit.on(\"markerAdded\", setDealign);\n    dv.edit.on(\"markerCleared\", setDealign);\n    dv.orig.on(\"markerAdded\", setDealign);\n    dv.orig.on(\"markerCleared\", setDealign);\n    dv.edit.on(\"viewportChange\", function() { set(false); });\n    dv.orig.on(\"viewportChange\", function() { set(false); });\n    update();\n    return update;\n  }\n\n  function registerScroll(dv) {\n    dv.edit.on(\"scroll\", function() {\n      syncScroll(dv, DIFF_INSERT) && makeConnections(dv);\n    });\n    dv.orig.on(\"scroll\", function() {\n      syncScroll(dv, DIFF_DELETE) && makeConnections(dv);\n    });\n  }\n\n  function syncScroll(dv, type) {\n    // Change handler will do a refresh after a timeout when diff is out of date\n    if (dv.diffOutOfDate) return false;\n    if (!dv.lockScroll) return true;\n    var editor, other, now = +new Date;\n    if (type == DIFF_INSERT) { editor = dv.edit; other = dv.orig; }\n    else { editor = dv.orig; other = dv.edit; }\n    // Don't take action if the position of this editor was recently set\n    // (to prevent feedback loops)\n    if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 50 > now) return false;\n\n    var sInfo = editor.getScrollInfo();\n    if (dv.mv.options.connect == \"align\") {\n      targetPos = sInfo.top;\n    } else {\n      var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;\n      var mid = editor.lineAtHeight(midY, \"local\");\n      var around = chunkBoundariesAround(dv.chunks, mid, type == DIFF_INSERT);\n      var off = getOffsets(editor, type == DIFF_INSERT ? around.edit : around.orig);\n      var offOther = getOffsets(other, type == DIFF_INSERT ? around.orig : around.edit);\n      var ratio = (midY - off.top) / (off.bot - off.top);\n      var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);\n\n      var botDist, mix;\n      // Some careful tweaking to make sure no space is left out of view\n      // when scrolling to top or bottom.\n      if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {\n        targetPos = targetPos * mix + sInfo.top * (1 - mix);\n      } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {\n        var otherInfo = other.getScrollInfo();\n        var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;\n        if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)\n          targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);\n      }\n    }\n\n    other.scrollTo(sInfo.left, targetPos);\n    other.state.scrollSetAt = now;\n    other.state.scrollSetBy = dv;\n    return true;\n  }\n\n  function getOffsets(editor, around) {\n    var bot = around.after;\n    if (bot == null) bot = editor.lastLine() + 1;\n    return {top: editor.heightAtLine(around.before || 0, \"local\"),\n            bot: editor.heightAtLine(bot, \"local\")};\n  }\n\n  function setScrollLock(dv, val, action) {\n    dv.lockScroll = val;\n    if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);\n    dv.lockButton.innerHTML = val ? \"\\u21db\\u21da\" : \"\\u21db&nbsp;&nbsp;\\u21da\";\n  }\n\n  // Updating the marks for editor content\n\n  function clearMarks(editor, arr, classes) {\n    for (var i = 0; i < arr.length; ++i) {\n      var mark = arr[i];\n      if (mark instanceof CodeMirror.TextMarker) {\n        mark.clear();\n      } else if (mark.parent) {\n        editor.removeLineClass(mark, \"background\", classes.chunk);\n        editor.removeLineClass(mark, \"background\", classes.start);\n        editor.removeLineClass(mark, \"background\", classes.end);\n      }\n    }\n    arr.length = 0;\n  }\n\n  // FIXME maybe add a margin around viewport to prevent too many updates\n  function updateMarks(editor, diff, state, type, classes) {\n    var vp = editor.getViewport();\n    editor.operation(function() {\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        clearMarks(editor, state.marked, classes);\n        markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);\n        state.from = vp.from; state.to = vp.to;\n      } else {\n        if (vp.from < state.from) {\n          markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);\n          state.from = vp.from;\n        }\n        if (vp.to > state.to) {\n          markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);\n          state.to = vp.to;\n        }\n      }\n    });\n  }\n\n  function markChanges(editor, diff, type, marks, from, to, classes) {\n    var pos = Pos(0, 0);\n    var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));\n    var cls = type == DIFF_DELETE ? classes.del : classes.insert;\n    function markChunk(start, end) {\n      var bfrom = Math.max(from, start), bto = Math.min(to, end);\n      for (var i = bfrom; i < bto; ++i) {\n        var line = editor.addLineClass(i, \"background\", classes.chunk);\n        if (i == start) editor.addLineClass(line, \"background\", classes.start);\n        if (i == end - 1) editor.addLineClass(line, \"background\", classes.end);\n        marks.push(line);\n      }\n      // When the chunk is empty, make sure a horizontal line shows up\n      if (start == end && bfrom == end && bto == end) {\n        if (bfrom)\n          marks.push(editor.addLineClass(bfrom - 1, \"background\", classes.end));\n        else\n          marks.push(editor.addLineClass(bfrom, \"background\", classes.start));\n      }\n    }\n\n    var chunkStart = 0;\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0], str = part[1];\n      if (tp == DIFF_EQUAL) {\n        var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);\n        moveOver(pos, str);\n        var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);\n        if (cleanTo > cleanFrom) {\n          if (i) markChunk(chunkStart, cleanFrom);\n          chunkStart = cleanTo;\n        }\n      } else {\n        if (tp == type) {\n          var end = moveOver(pos, str, true);\n          var a = posMax(top, pos), b = posMin(bot, end);\n          if (!posEq(a, b))\n            marks.push(editor.markText(a, b, {className: cls}));\n          pos = end;\n        }\n      }\n    }\n    if (chunkStart <= pos.line) markChunk(chunkStart, pos.line + 1);\n  }\n\n  // Updating the gap between editor and original\n\n  function makeConnections(dv) {\n    if (!dv.showDifferences) return;\n\n    if (dv.svg) {\n      clear(dv.svg);\n      var w = dv.gap.offsetWidth;\n      attrs(dv.svg, \"width\", w, \"height\", dv.gap.offsetHeight);\n    }\n    if (dv.copyButtons) clear(dv.copyButtons);\n\n    var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();\n    var sTopEdit = dv.edit.getScrollInfo().top, sTopOrig = dv.orig.getScrollInfo().top;\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var ch = dv.chunks[i];\n      if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&\n          ch.origFrom <= vpOrig.to && ch.origTo >= vpOrig.from)\n        drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w);\n    }\n  }\n\n  function getMatchingOrigLine(editLine, chunks) {\n    var editStart = 0, origStart = 0;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      if (chunk.editTo > editLine && chunk.editFrom <= editLine) return null;\n      if (chunk.editFrom > editLine) break;\n      editStart = chunk.editTo;\n      origStart = chunk.origTo;\n    }\n    return origStart + (editLine - editStart);\n  }\n\n  function findAlignedLines(dv, other) {\n    var linesToAlign = [];\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var chunk = dv.chunks[i];\n      linesToAlign.push([chunk.origTo, chunk.editTo, other ? getMatchingOrigLine(chunk.editTo, other.chunks) : null]);\n    }\n    if (other) {\n      for (var i = 0; i < other.chunks.length; i++) {\n        var chunk = other.chunks[i];\n        for (var j = 0; j < linesToAlign.length; j++) {\n          var align = linesToAlign[j];\n          if (align[1] == chunk.editTo) {\n            j = -1;\n            break;\n          } else if (align[1] > chunk.editTo) {\n            break;\n          }\n        }\n        if (j > -1)\n          linesToAlign.splice(j - 1, 0, [getMatchingOrigLine(chunk.editTo, dv.chunks), chunk.editTo, chunk.origTo]);\n      }\n    }\n    return linesToAlign;\n  }\n\n  function alignChunks(dv, force) {\n    if (!dv.dealigned && !force) return;\n    if (!dv.orig.curOp) return dv.orig.operation(function() {\n      alignChunks(dv, force);\n    });\n\n    dv.dealigned = false;\n    var other = dv.mv.left == dv ? dv.mv.right : dv.mv.left;\n    if (other) {\n      ensureDiff(other);\n      other.dealigned = false;\n    }\n    var linesToAlign = findAlignedLines(dv, other);\n\n    // Clear old aligners\n    var aligners = dv.mv.aligners;\n    for (var i = 0; i < aligners.length; i++)\n      aligners[i].clear();\n    aligners.length = 0;\n\n    var cm = [dv.orig, dv.edit], scroll = [];\n    if (other) cm.push(other.orig);\n    for (var i = 0; i < cm.length; i++)\n      scroll.push(cm[i].getScrollInfo().top);\n\n    for (var ln = 0; ln < linesToAlign.length; ln++)\n      alignLines(cm, linesToAlign[ln], aligners);\n\n    for (var i = 0; i < cm.length; i++)\n      cm[i].scrollTo(null, scroll[i]);\n  }\n\n  function alignLines(cm, lines, aligners) {\n    var maxOffset = 0, offset = [];\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var off = cm[i].heightAtLine(lines[i], \"local\");\n      offset[i] = off;\n      maxOffset = Math.max(maxOffset, off);\n    }\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var diff = maxOffset - offset[i];\n      if (diff > 1)\n        aligners.push(padAbove(cm[i], lines[i], diff));\n    }\n  }\n\n  function padAbove(cm, line, size) {\n    var above = true;\n    if (line > cm.lastLine()) {\n      line--;\n      above = false;\n    }\n    var elt = document.createElement(\"div\");\n    elt.className = \"CodeMirror-merge-spacer\";\n    elt.style.height = size + \"px\"; elt.style.minWidth = \"1px\";\n    return cm.addLineWidget(line, elt, {height: size, above: above});\n  }\n\n  function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {\n    var flip = dv.type == \"left\";\n    var top = dv.orig.heightAtLine(chunk.origFrom, \"local\") - sTopOrig;\n    if (dv.svg) {\n      var topLpx = top;\n      var topRpx = dv.edit.heightAtLine(chunk.editFrom, \"local\") - sTopEdit;\n      if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }\n      var botLpx = dv.orig.heightAtLine(chunk.origTo, \"local\") - sTopOrig;\n      var botRpx = dv.edit.heightAtLine(chunk.editTo, \"local\") - sTopEdit;\n      if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }\n      var curveTop = \" C \" + w/2 + \" \" + topRpx + \" \" + w/2 + \" \" + topLpx + \" \" + (w + 2) + \" \" + topLpx;\n      var curveBot = \" C \" + w/2 + \" \" + botLpx + \" \" + w/2 + \" \" + botRpx + \" -1 \" + botRpx;\n      attrs(dv.svg.appendChild(document.createElementNS(svgNS, \"path\")),\n            \"d\", \"M -1 \" + topRpx + curveTop + \" L \" + (w + 2) + \" \" + botLpx + curveBot + \" z\",\n            \"class\", dv.classes.connect);\n    }\n    if (dv.copyButtons) {\n      var copy = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"left\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                \"CodeMirror-merge-copy\"));\n      var editOriginals = dv.mv.options.allowEditingOriginals;\n      copy.title = editOriginals ? \"Push to left\" : \"Revert chunk\";\n      copy.chunk = chunk;\n      copy.style.top = top + \"px\";\n\n      if (editOriginals) {\n        var topReverse = dv.orig.heightAtLine(chunk.editFrom, \"local\") - sTopEdit;\n        var copyReverse = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"right\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                         \"CodeMirror-merge-copy-reverse\"));\n        copyReverse.title = \"Push to right\";\n        copyReverse.chunk = {editFrom: chunk.origFrom, editTo: chunk.origTo,\n                             origFrom: chunk.editFrom, origTo: chunk.editTo};\n        copyReverse.style.top = topReverse + \"px\";\n        dv.type == \"right\" ? copyReverse.style.left = \"2px\" : copyReverse.style.right = \"2px\";\n      }\n    }\n  }\n\n  function copyChunk(dv, to, from, chunk) {\n    if (dv.diffOutOfDate) return;\n    to.replaceRange(from.getRange(Pos(chunk.origFrom, 0), Pos(chunk.origTo, 0)),\n                         Pos(chunk.editFrom, 0), Pos(chunk.editTo, 0));\n  }\n\n  // Merge view, containing 0, 1, or 2 diff views.\n\n  var MergeView = CodeMirror.MergeView = function(node, options) {\n    if (!(this instanceof MergeView)) return new MergeView(node, options);\n\n    this.options = options;\n    var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;\n\n    var hasLeft = origLeft != null, hasRight = origRight != null;\n    var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);\n    var wrap = [], left = this.left = null, right = this.right = null;\n    var self = this;\n\n    if (hasLeft) {\n      left = this.left = new DiffView(this, \"left\");\n      var leftPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n      wrap.push(leftPane);\n      wrap.push(buildGap(left));\n    }\n\n    var editPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n    wrap.push(editPane);\n\n    if (hasRight) {\n      right = this.right = new DiffView(this, \"right\");\n      wrap.push(buildGap(right));\n      var rightPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n      wrap.push(rightPane);\n    }\n\n    (hasRight ? rightPane : editPane).className += \" CodeMirror-merge-pane-rightmost\";\n\n    wrap.push(elt(\"div\", null, null, \"height: 0; clear: both;\"));\n\n    var wrapElt = this.wrap = node.appendChild(elt(\"div\", wrap, \"CodeMirror-merge CodeMirror-merge-\" + panes + \"pane\"));\n    this.edit = CodeMirror(editPane, copyObj(options));\n\n    if (left) left.init(leftPane, origLeft, options);\n    if (right) right.init(rightPane, origRight, options);\n\n    if (options.collapseIdentical) {\n      updating = true;\n      this.editor().operation(function() {\n        collapseIdenticalStretches(self, options.collapseIdentical);\n      });\n      updating = false;\n    }\n    if (options.connect == \"align\") {\n      this.aligners = [];\n      alignChunks(this.left || this.right, true);\n    }\n\n    var onResize = function() {\n      if (left) makeConnections(left);\n      if (right) makeConnections(right);\n    };\n    CodeMirror.on(window, \"resize\", onResize);\n    var resizeInterval = setInterval(function() {\n      for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}\n      if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, \"resize\", onResize); }\n    }, 5000);\n  };\n\n  function buildGap(dv) {\n    var lock = dv.lockButton = elt(\"div\", null, \"CodeMirror-merge-scrolllock\");\n    lock.title = \"Toggle locked scrolling\";\n    var lockWrap = elt(\"div\", [lock], \"CodeMirror-merge-scrolllock-wrap\");\n    CodeMirror.on(lock, \"click\", function() { setScrollLock(dv, !dv.lockScroll); });\n    var gapElts = [lockWrap];\n    if (dv.mv.options.revertButtons !== false) {\n      dv.copyButtons = elt(\"div\", null, \"CodeMirror-merge-copybuttons-\" + dv.type);\n      CodeMirror.on(dv.copyButtons, \"click\", function(e) {\n        var node = e.target || e.srcElement;\n        if (!node.chunk) return;\n        if (node.className == \"CodeMirror-merge-copy-reverse\") {\n          copyChunk(dv, dv.orig, dv.edit, node.chunk);\n          return;\n        }\n        copyChunk(dv, dv.edit, dv.orig, node.chunk);\n      });\n      gapElts.unshift(dv.copyButtons);\n    }\n    if (dv.mv.options.connect != \"align\") {\n      var svg = document.createElementNS && document.createElementNS(svgNS, \"svg\");\n      if (svg && !svg.createSVGRect) svg = null;\n      dv.svg = svg;\n      if (svg) gapElts.push(svg);\n    }\n\n    return dv.gap = elt(\"div\", gapElts, \"CodeMirror-merge-gap\");\n  }\n\n  MergeView.prototype = {\n    constuctor: MergeView,\n    editor: function() { return this.edit; },\n    rightOriginal: function() { return this.right && this.right.orig; },\n    leftOriginal: function() { return this.left && this.left.orig; },\n    setShowDifferences: function(val) {\n      if (this.right) this.right.setShowDifferences(val);\n      if (this.left) this.left.setShowDifferences(val);\n    },\n    rightChunks: function() {\n      if (this.right) { ensureDiff(this.right); return this.right.chunks; }\n    },\n    leftChunks: function() {\n      if (this.left) { ensureDiff(this.left); return this.left.chunks; }\n    }\n  };\n\n  function asString(obj) {\n    if (typeof obj == \"string\") return obj;\n    else return obj.getValue();\n  }\n\n  // Operations on diffs\n\n  var dmp = new diff_match_patch();\n  function getDiff(a, b) {\n    var diff = dmp.diff_main(a, b);\n    dmp.diff_cleanupSemantic(diff);\n    // The library sometimes leaves in empty parts, which confuse the algorithm\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i];\n      if (!part[1]) {\n        diff.splice(i--, 1);\n      } else if (i && diff[i - 1][0] == part[0]) {\n        diff.splice(i--, 1);\n        diff[i][1] += part[1];\n      }\n    }\n    return diff;\n  }\n\n  function getChunks(diff) {\n    var chunks = [];\n    var startEdit = 0, startOrig = 0;\n    var edit = Pos(0, 0), orig = Pos(0, 0);\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0];\n      if (tp == DIFF_EQUAL) {\n        var startOff = startOfLineClean(diff, i) ? 0 : 1;\n        var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;\n        moveOver(edit, part[1], null, orig);\n        var endOff = endOfLineClean(diff, i) ? 1 : 0;\n        var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;\n        if (cleanToEdit > cleanFromEdit) {\n          if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,\n                              editFrom: startEdit, editTo: cleanFromEdit});\n          startEdit = cleanToEdit; startOrig = cleanToOrig;\n        }\n      } else {\n        moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);\n      }\n    }\n    if (startEdit <= edit.line || startOrig <= orig.line)\n      chunks.push({origFrom: startOrig, origTo: orig.line + 1,\n                   editFrom: startEdit, editTo: edit.line + 1});\n    return chunks;\n  }\n\n  function endOfLineClean(diff, i) {\n    if (i == diff.length - 1) return true;\n    var next = diff[i + 1][1];\n    if (next.length == 1 || next.charCodeAt(0) != 10) return false;\n    if (i == diff.length - 2) return true;\n    next = diff[i + 2][1];\n    return next.length > 1 && next.charCodeAt(0) == 10;\n  }\n\n  function startOfLineClean(diff, i) {\n    if (i == 0) return true;\n    var last = diff[i - 1][1];\n    if (last.charCodeAt(last.length - 1) != 10) return false;\n    if (i == 1) return true;\n    last = diff[i - 2][1];\n    return last.charCodeAt(last.length - 1) == 10;\n  }\n\n  function chunkBoundariesAround(chunks, n, nInEdit) {\n    var beforeE, afterE, beforeO, afterO;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      var fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom;\n      var toLocal = nInEdit ? chunk.editTo : chunk.origTo;\n      if (afterE == null) {\n        if (fromLocal > n) { afterE = chunk.editFrom; afterO = chunk.origFrom; }\n        else if (toLocal > n) { afterE = chunk.editTo; afterO = chunk.origTo; }\n      }\n      if (toLocal <= n) { beforeE = chunk.editTo; beforeO = chunk.origTo; }\n      else if (fromLocal <= n) { beforeE = chunk.editFrom; beforeO = chunk.origFrom; }\n    }\n    return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};\n  }\n\n  function collapseSingle(cm, from, to) {\n    cm.addLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    var widget = document.createElement(\"span\");\n    widget.className = \"CodeMirror-merge-collapsed-widget\";\n    widget.title = \"Identical text collapsed. Click to expand.\";\n    var mark = cm.markText(Pos(from, 0), Pos(to - 1), {\n      inclusiveLeft: true,\n      inclusiveRight: true,\n      replacedWith: widget,\n      clearOnEnter: true\n    });\n    function clear() {\n      mark.clear();\n      cm.removeLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    }\n    widget.addEventListener(\"click\", clear);\n    return {mark: mark, clear: clear};\n  }\n\n  function collapseStretch(size, editors) {\n    var marks = [];\n    function clear() {\n      for (var i = 0; i < marks.length; i++) marks[i].clear();\n    }\n    for (var i = 0; i < editors.length; i++) {\n      var editor = editors[i];\n      var mark = collapseSingle(editor.cm, editor.line, editor.line + size);\n      marks.push(mark);\n      mark.mark.on(\"clear\", clear);\n    }\n    return marks[0].mark;\n  }\n\n  function unclearNearChunks(dv, margin, off, clear) {\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var chunk = dv.chunks[i];\n      for (var l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) {\n        var pos = l + off;\n        if (pos >= 0 && pos < clear.length) clear[pos] = false;\n      }\n    }\n  }\n\n  function collapseIdenticalStretches(mv, margin) {\n    if (typeof margin != \"number\") margin = 2;\n    var clear = [], edit = mv.editor(), off = edit.firstLine();\n    for (var l = off, e = edit.lastLine(); l <= e; l++) clear.push(true);\n    if (mv.left) unclearNearChunks(mv.left, margin, off, clear);\n    if (mv.right) unclearNearChunks(mv.right, margin, off, clear);\n\n    for (var i = 0; i < clear.length; i++) {\n      if (clear[i]) {\n        var line = i + off;\n        for (var size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {}\n        if (size > margin) {\n          var editors = [{line: line, cm: edit}];\n          if (mv.left) editors.push({line: getMatchingOrigLine(line, mv.left.chunks), cm: mv.left.orig});\n          if (mv.right) editors.push({line: getMatchingOrigLine(line, mv.right.chunks), cm: mv.right.orig});\n          var mark = collapseStretch(size, editors);\n          if (mv.options.onCollapse) mv.options.onCollapse(mv, line, size, mark);\n        }\n      }\n    }\n  }\n\n  // General utilities\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") e.appendChild(document.createTextNode(content));\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  function clear(node) {\n    for (var count = node.childNodes.length; count > 0; --count)\n      node.removeChild(node.firstChild);\n  }\n\n  function attrs(elt) {\n    for (var i = 1; i < arguments.length; i += 2)\n      elt.setAttribute(arguments[i], arguments[i+1]);\n  }\n\n  function copyObj(obj, target) {\n    if (!target) target = {};\n    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];\n    return target;\n  }\n\n  function moveOver(pos, str, copy, other) {\n    var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;\n    for (;;) {\n      var nl = str.indexOf(\"\\n\", at);\n      if (nl == -1) break;\n      ++out.line;\n      if (other) ++other.line;\n      at = nl + 1;\n    }\n    out.ch = (at ? 0 : out.ch) + (str.length - at);\n    if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);\n    return out;\n  }\n\n  function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }\n  function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }\n  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/mode/loadmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), \"cjs\");\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], function(CM) { mod(CM, \"amd\"); });\n  else // Plain browser env\n    mod(CodeMirror, \"plain\");\n})(function(CodeMirror, env) {\n  if (!CodeMirror.modeURL) CodeMirror.modeURL = \"../mode/%N/%N.js\";\n\n  var loading = {};\n  function splitCallback(cont, n) {\n    var countDown = n;\n    return function() { if (--countDown == 0) cont(); };\n  }\n  function ensureDeps(mode, cont) {\n    var deps = CodeMirror.modes[mode].dependencies;\n    if (!deps) return cont();\n    var missing = [];\n    for (var i = 0; i < deps.length; ++i) {\n      if (!CodeMirror.modes.hasOwnProperty(deps[i]))\n        missing.push(deps[i]);\n    }\n    if (!missing.length) return cont();\n    var split = splitCallback(cont, missing.length);\n    for (var i = 0; i < missing.length; ++i)\n      CodeMirror.requireMode(missing[i], split);\n  }\n\n  CodeMirror.requireMode = function(mode, cont) {\n    if (typeof mode != \"string\") mode = mode.name;\n    if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);\n    if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);\n\n    var file = CodeMirror.modeURL.replace(/%N/g, mode);\n    if (env == \"plain\") {\n      var script = document.createElement(\"script\");\n      script.src = file;\n      var others = document.getElementsByTagName(\"script\")[0];\n      var list = loading[mode] = [cont];\n      CodeMirror.on(script, \"load\", function() {\n        ensureDeps(mode, function() {\n          for (var i = 0; i < list.length; ++i) list[i]();\n        });\n      });\n      others.parentNode.insertBefore(script, others);\n    } else if (env == \"cjs\") {\n      require(file);\n      cont();\n    } else if (env == \"amd\") {\n      requirejs([file], cont);\n    }\n  };\n\n  CodeMirror.autoLoadMode = function(instance, mode) {\n    if (!CodeMirror.modes.hasOwnProperty(mode))\n      CodeMirror.requireMode(mode, function() {\n        instance.setOption(\"mode\", instance.getOption(\"mode\"));\n      });\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/mode/multiplex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n  // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects\n  var others = Array.prototype.slice.call(arguments, 1);\n  var n_others = others.length;\n\n  function indexOf(string, pattern, from) {\n    if (typeof pattern == \"string\") return string.indexOf(pattern, from);\n    var m = pattern.exec(from ? string.slice(from) : string);\n    return m ? m.index + from : -1;\n  }\n\n  return {\n    startState: function() {\n      return {\n        outer: CodeMirror.startState(outer),\n        innerActive: null,\n        inner: null\n      };\n    },\n\n    copyState: function(state) {\n      return {\n        outer: CodeMirror.copyState(outer, state.outer),\n        innerActive: state.innerActive,\n        inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)\n      };\n    },\n\n    token: function(stream, state) {\n      if (!state.innerActive) {\n        var cutOff = Infinity, oldContent = stream.string;\n        for (var i = 0; i < n_others; ++i) {\n          var other = others[i];\n          var found = indexOf(oldContent, other.open, stream.pos);\n          if (found == stream.pos) {\n            stream.match(other.open);\n            state.innerActive = other;\n            state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, \"\") : 0);\n            return other.delimStyle;\n          } else if (found != -1 && found < cutOff) {\n            cutOff = found;\n          }\n        }\n        if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n        var outerToken = outer.token(stream, state.outer);\n        if (cutOff != Infinity) stream.string = oldContent;\n        return outerToken;\n      } else {\n        var curInner = state.innerActive, oldContent = stream.string;\n        if (!curInner.close && stream.sol()) {\n          state.innerActive = state.inner = null;\n          return this.token(stream, state);\n        }\n        var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos) : -1;\n        if (found == stream.pos) {\n          stream.match(curInner.close);\n          state.innerActive = state.inner = null;\n          return curInner.delimStyle;\n        }\n        if (found > -1) stream.string = oldContent.slice(0, found);\n        var innerToken = curInner.mode.token(stream, state.inner);\n        if (found > -1) stream.string = oldContent;\n\n        if (curInner.innerStyle) {\n          if (innerToken) innerToken = innerToken + ' ' + curInner.innerStyle;\n          else innerToken = curInner.innerStyle;\n        }\n\n        return innerToken;\n      }\n    },\n\n    indent: function(state, textAfter) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (!mode.indent) return CodeMirror.Pass;\n      return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);\n    },\n\n    blankLine: function(state) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (mode.blankLine) {\n        mode.blankLine(state.innerActive ? state.inner : state.outer);\n      }\n      if (!state.innerActive) {\n        for (var i = 0; i < n_others; ++i) {\n          var other = others[i];\n          if (other.open === \"\\n\") {\n            state.innerActive = other;\n            state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\") : 0);\n          }\n        }\n      } else if (state.innerActive.close === \"\\n\") {\n        state.innerActive = state.inner = null;\n      }\n    },\n\n    electricChars: outer.electricChars,\n\n    innerMode: function(state) {\n      return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/mode/multiplex_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  CodeMirror.defineMode(\"markdown_with_stex\", function(){\n    var inner = CodeMirror.getMode({}, \"stex\");\n    var outer = CodeMirror.getMode({}, \"markdown\");\n\n    var innerOptions = {\n      open: '$',\n      close: '$',\n      mode: inner,\n      delimStyle: 'delim',\n      innerStyle: 'inner'\n    };\n\n    return CodeMirror.multiplexingMode(outer, innerOptions);\n  });\n\n  var mode = CodeMirror.getMode({}, \"markdown_with_stex\");\n\n  function MT(name) {\n    test.mode(\n      name,\n      mode,\n      Array.prototype.slice.call(arguments, 1),\n      'multiplexing');\n  }\n\n  MT(\n    \"stexInsideMarkdown\",\n    \"[strong **Equation:**] [delim $][inner&tag \\\\pi][delim $]\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/mode/overlay.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n  return {\n    startState: function() {\n      return {\n        base: CodeMirror.startState(base),\n        overlay: CodeMirror.startState(overlay),\n        basePos: 0, baseCur: null,\n        overlayPos: 0, overlayCur: null,\n        streamSeen: null\n      };\n    },\n    copyState: function(state) {\n      return {\n        base: CodeMirror.copyState(base, state.base),\n        overlay: CodeMirror.copyState(overlay, state.overlay),\n        basePos: state.basePos, baseCur: null,\n        overlayPos: state.overlayPos, overlayCur: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream != state.streamSeen ||\n          Math.min(state.basePos, state.overlayPos) < stream.start) {\n        state.streamSeen = stream;\n        state.basePos = state.overlayPos = stream.start;\n      }\n\n      if (stream.start == state.basePos) {\n        state.baseCur = base.token(stream, state.base);\n        state.basePos = stream.pos;\n      }\n      if (stream.start == state.overlayPos) {\n        stream.pos = stream.start;\n        state.overlayCur = overlay.token(stream, state.overlay);\n        state.overlayPos = stream.pos;\n      }\n      stream.pos = Math.min(state.basePos, state.overlayPos);\n\n      // state.overlay.combineTokens always takes precedence over combine,\n      // unless set to null\n      if (state.overlayCur == null) return state.baseCur;\n      else if (state.baseCur != null &&\n               state.overlay.combineTokens ||\n               combine && state.overlay.combineTokens == null)\n        return state.baseCur + \" \" + state.overlayCur;\n      else return state.overlayCur;\n    },\n\n    indent: base.indent && function(state, textAfter) {\n      return base.indent(state.base, textAfter);\n    },\n    electricChars: base.electricChars,\n\n    innerMode: function(state) { return {state: state.base, mode: base}; },\n\n    blankLine: function(state) {\n      if (base.blankLine) base.blankLine(state.base);\n      if (overlay.blankLine) overlay.blankLine(state.overlay);\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/mode/simple.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineSimpleMode = function(name, states) {\n    CodeMirror.defineMode(name, function(config) {\n      return CodeMirror.simpleMode(config, states);\n    });\n  };\n\n  CodeMirror.simpleMode = function(config, states) {\n    ensureState(states, \"start\");\n    var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n    for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n      var list = states_[state] = [], orig = states[state];\n      for (var i = 0; i < orig.length; i++) {\n        var data = orig[i];\n        list.push(new Rule(data, states));\n        if (data.indent || data.dedent) hasIndentation = true;\n      }\n    }\n    var mode = {\n      startState: function() {\n        return {state: \"start\", pending: null,\n                local: null, localState: null,\n                indent: hasIndentation ? [] : null};\n      },\n      copyState: function(state) {\n        var s = {state: state.state, pending: state.pending,\n                 local: state.local, localState: null,\n                 indent: state.indent && state.indent.slice(0)};\n        if (state.localState)\n          s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n        if (state.stack)\n          s.stack = state.stack.slice(0);\n        for (var pers = state.persistentStates; pers; pers = pers.next)\n          s.persistentStates = {mode: pers.mode,\n                                spec: pers.spec,\n                                state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n                                next: s.persistentStates};\n        return s;\n      },\n      token: tokenFunction(states_, config),\n      innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n      indent: indentFunction(states_, meta)\n    };\n    if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n      mode[prop] = meta[prop];\n    return mode;\n  };\n\n  function ensureState(states, name) {\n    if (!states.hasOwnProperty(name))\n      throw new Error(\"Undefined state \" + name + \"in simple mode\");\n  }\n\n  function toRegex(val, caret) {\n    if (!val) return /(?:)/;\n    var flags = \"\";\n    if (val instanceof RegExp) {\n      if (val.ignoreCase) flags = \"i\";\n      val = val.source;\n    } else {\n      val = String(val);\n    }\n    return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n  }\n\n  function asToken(val) {\n    if (!val) return null;\n    if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n    var result = [];\n    for (var i = 0; i < val.length; i++)\n      result.push(val[i] && val[i].replace(/\\./g, \" \"));\n    return result;\n  }\n\n  function Rule(data, states) {\n    if (data.next || data.push) ensureState(states, data.next || data.push);\n    this.regex = toRegex(data.regex);\n    this.token = asToken(data.token);\n    this.data = data;\n  }\n\n  function tokenFunction(states, config) {\n    return function(stream, state) {\n      if (state.pending) {\n        var pend = state.pending.shift();\n        if (state.pending.length == 0) state.pending = null;\n        stream.pos += pend.text.length;\n        return pend.token;\n      }\n\n      if (state.local) {\n        if (state.local.end && stream.match(state.local.end)) {\n          var tok = state.local.endToken || null;\n          state.local = state.localState = null;\n          return tok;\n        } else {\n          var tok = state.local.mode.token(stream, state.localState), m;\n          if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n            stream.pos = stream.start + m.index;\n          return tok;\n        }\n      }\n\n      var curState = states[state.state];\n      for (var i = 0; i < curState.length; i++) {\n        var rule = curState[i];\n        var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n        if (matches) {\n          if (rule.data.next) {\n            state.state = rule.data.next;\n          } else if (rule.data.push) {\n            (state.stack || (state.stack = [])).push(state.state);\n            state.state = rule.data.push;\n          } else if (rule.data.pop && state.stack && state.stack.length) {\n            state.state = state.stack.pop();\n          }\n\n          if (rule.data.mode)\n            enterLocalMode(config, state, rule.data.mode, rule.token);\n          if (rule.data.indent)\n            state.indent.push(stream.indentation() + config.indentUnit);\n          if (rule.data.dedent)\n            state.indent.pop();\n          if (matches.length > 2) {\n            state.pending = [];\n            for (var j = 2; j < matches.length; j++)\n              if (matches[j])\n                state.pending.push({text: matches[j], token: rule.token[j - 1]});\n            stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n            return rule.token[0];\n          } else if (rule.token && rule.token.join) {\n            return rule.token[0];\n          } else {\n            return rule.token;\n          }\n        }\n      }\n      stream.next();\n      return null;\n    };\n  }\n\n  function cmp(a, b) {\n    if (a === b) return true;\n    if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n    var props = 0;\n    for (var prop in a) if (a.hasOwnProperty(prop)) {\n      if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n      props++;\n    }\n    for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n    return props == 0;\n  }\n\n  function enterLocalMode(config, state, spec, token) {\n    var pers;\n    if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n      if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n    var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n    var lState = pers ? pers.state : CodeMirror.startState(mode);\n    if (spec.persistent && !pers)\n      state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n    state.localState = lState;\n    state.local = {mode: mode,\n                   end: spec.end && toRegex(spec.end),\n                   endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n                   endToken: token && token.join ? token[token.length - 1] : token};\n  }\n\n  function indexOf(val, arr) {\n    for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n  }\n\n  function indentFunction(states, meta) {\n    return function(state, textAfter, line) {\n      if (state.local && state.local.mode.indent)\n        return state.local.mode.indent(state.localState, textAfter, line);\n      if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n        return CodeMirror.Pass;\n\n      var pos = state.indent.length - 1, rules = states[state.state];\n      scan: for (;;) {\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i];\n          if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n            var m = rule.regex.exec(textAfter);\n            if (m && m[0]) {\n              pos--;\n              if (rule.next || rule.push) rules = states[rule.next || rule.push];\n              textAfter = textAfter.slice(m[0].length);\n              continue scan;\n            }\n          }\n        }\n        break;\n      }\n      return pos < 0 ? 0 : state.indent[pos];\n    };\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/runmode/colorize.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./runmode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./runmode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var isBlock = /^(p|li|div|h\\\\d|pre|blockquote|td)$/;\n\n  function textContent(node, out) {\n    if (node.nodeType == 3) return out.push(node.nodeValue);\n    for (var ch = node.firstChild; ch; ch = ch.nextSibling) {\n      textContent(ch, out);\n      if (isBlock.test(node.nodeType)) out.push(\"\\n\");\n    }\n  }\n\n  CodeMirror.colorize = function(collection, defaultMode) {\n    if (!collection) collection = document.body.getElementsByTagName(\"pre\");\n\n    for (var i = 0; i < collection.length; ++i) {\n      var node = collection[i];\n      var mode = node.getAttribute(\"data-lang\") || defaultMode;\n      if (!mode) continue;\n\n      var text = [];\n      textContent(node, text);\n      node.innerHTML = \"\";\n      CodeMirror.runMode(text.join(\"\"), mode, node);\n\n      node.className += \" cm-s-default\";\n    }\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/runmode/runmode-standalone.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\nwindow.CodeMirror = {};\n\n(function() {\n\"use strict\";\n\nfunction splitLines(string){ return string.split(/\\r?\\n|\\r/); };\n\nfunction StringStream(string) {\n  this.pos = this.start = 0;\n  this.string = string;\n  this.lineStart = 0;\n}\nStringStream.prototype = {\n  eol: function() {return this.pos >= this.string.length;},\n  sol: function() {return this.pos == 0;},\n  peek: function() {return this.string.charAt(this.pos) || null;},\n  next: function() {\n    if (this.pos < this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch && (match.test ? match.test(ch) : match(ch));\n    if (ok) {++this.pos; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start;\n  },\n  eatSpace: function() {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n    return this.pos > start;\n  },\n  skipToEnd: function() {this.pos = this.string.length;},\n  skipTo: function(ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true;}\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.start - this.lineStart;},\n  indentation: function() {return 0;},\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) this.pos += pattern.length;\n        return true;\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) return null;\n      if (match && consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  },\n  current: function(){return this.string.slice(this.start, this.pos);},\n  hideFirstChars: function(n, inner) {\n    this.lineStart += n;\n    try { return inner(); }\n    finally { this.lineStart -= n; }\n  }\n};\nCodeMirror.StringStream = StringStream;\n\nCodeMirror.startState = function (mode, a1, a2) {\n  return mode.startState ? mode.startState(a1, a2) : true;\n};\n\nvar modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\nCodeMirror.defineMode = function (name, mode) {\n  if (arguments.length > 2)\n    mode.dependencies = Array.prototype.slice.call(arguments, 2);\n  modes[name] = mode;\n};\nCodeMirror.defineMIME = function (mime, spec) { mimeModes[mime] = spec; };\nCodeMirror.resolveMode = function(spec) {\n  if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n    spec = mimeModes[spec];\n  } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n    spec = mimeModes[spec.name];\n  }\n  if (typeof spec == \"string\") return {name: spec};\n  else return spec || {name: \"null\"};\n};\nCodeMirror.getMode = function (options, spec) {\n  spec = CodeMirror.resolveMode(spec);\n  var mfactory = modes[spec.name];\n  if (!mfactory) throw new Error(\"Unknown mode: \" + spec);\n  return mfactory(options, spec);\n};\nCodeMirror.registerHelper = CodeMirror.registerGlobalHelper = Math.min;\nCodeMirror.defineMode(\"null\", function() {\n  return {token: function(stream) {stream.skipToEnd();}};\n});\nCodeMirror.defineMIME(\"text/plain\", \"null\");\n\nCodeMirror.runMode = function (string, modespec, callback, options) {\n  var mode = CodeMirror.getMode({ indentUnit: 2 }, modespec);\n\n  if (callback.nodeType == 1) {\n    var tabSize = (options && options.tabSize) || 4;\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function (text, style) {\n      if (text == \"\\n\") {\n        node.appendChild(document.createElement(\"br\"));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0; ;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) content += \" \";\n          pos = idx + 1;\n        }\n      }\n\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new CodeMirror.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/runmode/runmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n  var ie = /MSIE \\d/.test(navigator.userAgent);\n  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n\n  if (callback.nodeType == 1) {\n    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function(text, style) {\n      if (text == \"\\n\") {\n        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n        // Emitting a carriage return makes everything ok.\n        node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0;;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) content += \" \";\n          pos = idx + 1;\n        }\n      }\n\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new CodeMirror.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/runmode/runmode.node.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/* Just enough of CodeMirror to run runMode under node.js */\n\n// declare global: StringStream\n\nfunction splitLines(string){ return string.split(/\\r?\\n|\\r/); };\n\nfunction StringStream(string) {\n  this.pos = this.start = 0;\n  this.string = string;\n  this.lineStart = 0;\n}\nStringStream.prototype = {\n  eol: function() {return this.pos >= this.string.length;},\n  sol: function() {return this.pos == 0;},\n  peek: function() {return this.string.charAt(this.pos) || null;},\n  next: function() {\n    if (this.pos < this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch && (match.test ? match.test(ch) : match(ch));\n    if (ok) {++this.pos; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start;\n  },\n  eatSpace: function() {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n    return this.pos > start;\n  },\n  skipToEnd: function() {this.pos = this.string.length;},\n  skipTo: function(ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true;}\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.start - this.lineStart;},\n  indentation: function() {return 0;},\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) this.pos += pattern.length;\n        return true;\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) return null;\n      if (match && consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  },\n  current: function(){return this.string.slice(this.start, this.pos);},\n  hideFirstChars: function(n, inner) {\n    this.lineStart += n;\n    try { return inner(); }\n    finally { this.lineStart -= n; }\n  }\n};\nexports.StringStream = StringStream;\n\nexports.startState = function(mode, a1, a2) {\n  return mode.startState ? mode.startState(a1, a2) : true;\n};\n\nvar modes = exports.modes = {}, mimeModes = exports.mimeModes = {};\nexports.defineMode = function(name, mode) {\n  if (arguments.length > 2)\n    mode.dependencies = Array.prototype.slice.call(arguments, 2);\n  modes[name] = mode;\n};\nexports.defineMIME = function(mime, spec) { mimeModes[mime] = spec; };\n\nexports.defineMode(\"null\", function() {\n  return {token: function(stream) {stream.skipToEnd();}};\n});\nexports.defineMIME(\"text/plain\", \"null\");\n\nexports.resolveMode = function(spec) {\n  if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n    spec = mimeModes[spec];\n  } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n    spec = mimeModes[spec.name];\n  }\n  if (typeof spec == \"string\") return {name: spec};\n  else return spec || {name: \"null\"};\n};\nexports.getMode = function(options, spec) {\n  spec = exports.resolveMode(spec);\n  var mfactory = modes[spec.name];\n  if (!mfactory) throw new Error(\"Unknown mode: \" + spec);\n  return mfactory(options, spec);\n};\nexports.registerHelper = exports.registerGlobalHelper = Math.min;\n\nexports.runMode = function(string, modespec, callback, options) {\n  var mode = exports.getMode({indentUnit: 2}, modespec);\n  var lines = splitLines(string), state = (options && options.state) || exports.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new exports.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\nrequire.cache[require.resolve(\"../../lib/codemirror\")] = require.cache[require.resolve(\"./runmode.node\")];\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/scroll/annotatescrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"annotateScrollbar\", function(options) {\n    if (typeof options == \"string\") options = {className: options};\n    return new Annotation(this, options);\n  });\n\n  CodeMirror.defineOption(\"scrollButtonHeight\", 0);\n\n  function Annotation(cm, options) {\n    this.cm = cm;\n    this.options = options;\n    this.buttonHeight = options.scrollButtonHeight || cm.getOption(\"scrollButtonHeight\");\n    this.annotations = [];\n    this.doRedraw = this.doUpdate = null;\n    this.div = cm.getWrapperElement().appendChild(document.createElement(\"div\"));\n    this.div.style.cssText = \"position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none\";\n    this.computeScale();\n\n    function scheduleRedraw(delay) {\n      clearTimeout(self.doRedraw);\n      self.doRedraw = setTimeout(function() { self.redraw(); }, delay);\n    }\n\n    var self = this;\n    cm.on(\"refresh\", this.resizeHandler = function() {\n      clearTimeout(self.doUpdate);\n      self.doUpdate = setTimeout(function() {\n        if (self.computeScale()) scheduleRedraw(20);\n      }, 100);\n    });\n    cm.on(\"markerAdded\", this.resizeHandler);\n    cm.on(\"markerCleared\", this.resizeHandler);\n    if (options.listenForChanges !== false)\n      cm.on(\"change\", this.changeHandler = function() {\n        scheduleRedraw(250);\n      });\n  }\n\n  Annotation.prototype.computeScale = function() {\n    var cm = this.cm;\n    var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /\n      cm.heightAtLine(cm.lastLine() + 1, \"local\");\n    if (hScale != this.hScale) {\n      this.hScale = hScale;\n      return true;\n    }\n  };\n\n  Annotation.prototype.update = function(annotations) {\n    this.annotations = annotations;\n    this.redraw();\n  };\n\n  Annotation.prototype.redraw = function(compute) {\n    if (compute !== false) this.computeScale();\n    var cm = this.cm, hScale = this.hScale;\n\n    var frag = document.createDocumentFragment(), anns = this.annotations;\n    if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {\n      var ann = anns[i];\n      var top = nextTop || cm.charCoords(ann.from, \"local\").top * hScale;\n      var bottom = cm.charCoords(ann.to, \"local\").bottom * hScale;\n      while (i < anns.length - 1) {\n        nextTop = cm.charCoords(anns[i + 1].from, \"local\").top * hScale;\n        if (nextTop > bottom + .9) break;\n        ann = anns[++i];\n        bottom = cm.charCoords(ann.to, \"local\").bottom * hScale;\n      }\n      if (bottom == top) continue;\n      var height = Math.max(bottom - top, 3);\n\n      var elt = frag.appendChild(document.createElement(\"div\"));\n      elt.style.cssText = \"position: absolute; right: 0px; width: \" + Math.max(cm.display.barWidth - 1, 2) + \"px; top: \"\n        + (top + this.buttonHeight) + \"px; height: \" + height + \"px\";\n      elt.className = this.options.className;\n    }\n    this.div.textContent = \"\";\n    this.div.appendChild(frag);\n  };\n\n  Annotation.prototype.clear = function() {\n    this.cm.off(\"refresh\", this.resizeHandler);\n    this.cm.off(\"markerAdded\", this.resizeHandler);\n    this.cm.off(\"markerCleared\", this.resizeHandler);\n    if (this.changeHandler) this.cm.off(\"change\", this.changeHandler);\n    this.div.parentNode.removeChild(this.div);\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/scroll/scrollpastend.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"scrollPastEnd\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"change\", onChange);\n      cm.off(\"refresh\", updateBottomMargin);\n      cm.display.lineSpace.parentNode.style.paddingBottom = \"\";\n      cm.state.scrollPastEndPadding = null;\n    }\n    if (val) {\n      cm.on(\"change\", onChange);\n      cm.on(\"refresh\", updateBottomMargin);\n      updateBottomMargin(cm);\n    }\n  });\n\n  function onChange(cm, change) {\n    if (CodeMirror.changeEnd(change).line == cm.lastLine())\n      updateBottomMargin(cm);\n  }\n\n  function updateBottomMargin(cm) {\n    var padding = \"\";\n    if (cm.lineCount() > 1) {\n      var totalH = cm.display.scroller.clientHeight - 30,\n          lastLineH = cm.getLineHandle(cm.lastLine()).height;\n      padding = (totalH - lastLineH) + \"px\";\n    }\n    if (cm.state.scrollPastEndPadding != padding) {\n      cm.state.scrollPastEndPadding = padding;\n      cm.display.lineSpace.parentNode.style.paddingBottom = padding;\n      cm.setSize();\n    }\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/scroll/simplescrollbars.css",
    "content": ".CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {\n  position: absolute;\n  background: #ccc;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  border: 1px solid #bbb;\n  border-radius: 2px;\n}\n\n.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {\n  position: absolute;\n  z-index: 6;\n  background: #eee;\n}\n\n.CodeMirror-simplescroll-horizontal {\n  bottom: 0; left: 0;\n  height: 8px;\n}\n.CodeMirror-simplescroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-simplescroll-vertical {\n  right: 0; top: 0;\n  width: 8px;\n}\n.CodeMirror-simplescroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n\n\n.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {\n  display: none;\n}\n\n.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {\n  position: absolute;\n  background: #bcd;\n  border-radius: 3px;\n}\n\n.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {\n  position: absolute;\n  z-index: 6;\n}\n\n.CodeMirror-overlayscroll-horizontal {\n  bottom: 0; left: 0;\n  height: 6px;\n}\n.CodeMirror-overlayscroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-overlayscroll-vertical {\n  right: 0; top: 0;\n  width: 6px;\n}\n.CodeMirror-overlayscroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/scroll/simplescrollbars.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function Bar(cls, orientation, scroll) {\n    this.orientation = orientation;\n    this.scroll = scroll;\n    this.screen = this.total = this.size = 1;\n    this.pos = 0;\n\n    this.node = document.createElement(\"div\");\n    this.node.className = cls + \"-\" + orientation;\n    this.inner = this.node.appendChild(document.createElement(\"div\"));\n\n    var self = this;\n    CodeMirror.on(this.inner, \"mousedown\", function(e) {\n      if (e.which != 1) return;\n      CodeMirror.e_preventDefault(e);\n      var axis = self.orientation == \"horizontal\" ? \"pageX\" : \"pageY\";\n      var start = e[axis], startpos = self.pos;\n      function done() {\n        CodeMirror.off(document, \"mousemove\", move);\n        CodeMirror.off(document, \"mouseup\", done);\n      }\n      function move(e) {\n        if (e.which != 1) return done();\n        self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));\n      }\n      CodeMirror.on(document, \"mousemove\", move);\n      CodeMirror.on(document, \"mouseup\", done);\n    });\n\n    CodeMirror.on(this.node, \"click\", function(e) {\n      CodeMirror.e_preventDefault(e);\n      var innerBox = self.inner.getBoundingClientRect(), where;\n      if (self.orientation == \"horizontal\")\n        where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;\n      else\n        where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;\n      self.moveTo(self.pos + where * self.screen);\n    });\n\n    function onWheel(e) {\n      var moved = CodeMirror.wheelEventPixels(e)[self.orientation == \"horizontal\" ? \"x\" : \"y\"];\n      var oldPos = self.pos;\n      self.moveTo(self.pos + moved);\n      if (self.pos != oldPos) CodeMirror.e_preventDefault(e);\n    }\n    CodeMirror.on(this.node, \"mousewheel\", onWheel);\n    CodeMirror.on(this.node, \"DOMMouseScroll\", onWheel);\n  }\n\n  Bar.prototype.moveTo = function(pos, update) {\n    if (pos < 0) pos = 0;\n    if (pos > this.total - this.screen) pos = this.total - this.screen;\n    if (pos == this.pos) return;\n    this.pos = pos;\n    this.inner.style[this.orientation == \"horizontal\" ? \"left\" : \"top\"] =\n      (pos * (this.size / this.total)) + \"px\";\n    if (update !== false) this.scroll(pos, this.orientation);\n  };\n\n  Bar.prototype.update = function(scrollSize, clientSize, barSize) {\n    this.screen = clientSize;\n    this.total = scrollSize;\n    this.size = barSize;\n\n    // FIXME clip to min size?\n    this.inner.style[this.orientation == \"horizontal\" ? \"width\" : \"height\"] =\n      this.screen * (this.size / this.total) + \"px\";\n    this.inner.style[this.orientation == \"horizontal\" ? \"left\" : \"top\"] =\n      this.pos * (this.size / this.total) + \"px\";\n  };\n\n  function SimpleScrollbars(cls, place, scroll) {\n    this.addClass = cls;\n    this.horiz = new Bar(cls, \"horizontal\", scroll);\n    place(this.horiz.node);\n    this.vert = new Bar(cls, \"vertical\", scroll);\n    place(this.vert.node);\n    this.width = null;\n  }\n\n  SimpleScrollbars.prototype.update = function(measure) {\n    if (this.width == null) {\n      var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;\n      if (style) this.width = parseInt(style.height);\n    }\n    var width = this.width || 0;\n\n    var needsH = measure.scrollWidth > measure.clientWidth + 1;\n    var needsV = measure.scrollHeight > measure.clientHeight + 1;\n    this.vert.node.style.display = needsV ? \"block\" : \"none\";\n    this.horiz.node.style.display = needsH ? \"block\" : \"none\";\n\n    if (needsV) {\n      this.vert.update(measure.scrollHeight, measure.clientHeight,\n                       measure.viewHeight - (needsH ? width : 0));\n      this.vert.node.style.display = \"block\";\n      this.vert.node.style.bottom = needsH ? width + \"px\" : \"0\";\n    }\n    if (needsH) {\n      this.horiz.update(measure.scrollWidth, measure.clientWidth,\n                        measure.viewWidth - (needsV ? width : 0) - measure.barLeft);\n      this.horiz.node.style.right = needsV ? width + \"px\" : \"0\";\n      this.horiz.node.style.left = measure.barLeft + \"px\";\n    }\n\n    return {right: needsV ? width : 0, bottom: needsH ? width : 0};\n  };\n\n  SimpleScrollbars.prototype.setScrollTop = function(pos) {\n    this.vert.moveTo(pos, false);\n  };\n\n  SimpleScrollbars.prototype.setScrollLeft = function(pos) {\n    this.horiz.moveTo(pos, false);\n  };\n\n  SimpleScrollbars.prototype.clear = function() {\n    var parent = this.horiz.node.parentNode;\n    parent.removeChild(this.horiz.node);\n    parent.removeChild(this.vert.node);\n  };\n\n  CodeMirror.scrollbarModel.simple = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-simplescroll\", place, scroll);\n  };\n  CodeMirror.scrollbarModel.overlay = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-overlayscroll\", place, scroll);\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/search/match-highlighter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Highlighting text that matches the selection\n//\n// Defines an option highlightSelectionMatches, which, when enabled,\n// will style strings that match the selection throughout the\n// document.\n//\n// The option can be set to true to simply enable it, or to a\n// {minChars, style, wordsOnly, showToken, delay} object to explicitly\n// configure it. minChars is the minimum amount of characters that should be\n// selected for the behavior to occur, and style is the token style to\n// apply to the matches. This will be prefixed by \"cm-\" to create an\n// actual CSS class name. If wordsOnly is enabled, the matches will be\n// highlighted only if the selected text is a word. showToken, when enabled,\n// will cause the current token to be highlighted when nothing is selected.\n// delay is used to specify how much time to wait, in milliseconds, before\n// highlighting the matches.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var DEFAULT_MIN_CHARS = 2;\n  var DEFAULT_TOKEN_STYLE = \"matchhighlight\";\n  var DEFAULT_DELAY = 100;\n  var DEFAULT_WORDS_ONLY = false;\n\n  function State(options) {\n    if (typeof options == \"object\") {\n      this.minChars = options.minChars;\n      this.style = options.style;\n      this.showToken = options.showToken;\n      this.delay = options.delay;\n      this.wordsOnly = options.wordsOnly;\n    }\n    if (this.style == null) this.style = DEFAULT_TOKEN_STYLE;\n    if (this.minChars == null) this.minChars = DEFAULT_MIN_CHARS;\n    if (this.delay == null) this.delay = DEFAULT_DELAY;\n    if (this.wordsOnly == null) this.wordsOnly = DEFAULT_WORDS_ONLY;\n    this.overlay = this.timeout = null;\n  }\n\n  CodeMirror.defineOption(\"highlightSelectionMatches\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      var over = cm.state.matchHighlighter.overlay;\n      if (over) cm.removeOverlay(over);\n      clearTimeout(cm.state.matchHighlighter.timeout);\n      cm.state.matchHighlighter = null;\n      cm.off(\"cursorActivity\", cursorActivity);\n    }\n    if (val) {\n      cm.state.matchHighlighter = new State(val);\n      highlightMatches(cm);\n      cm.on(\"cursorActivity\", cursorActivity);\n    }\n  });\n\n  function cursorActivity(cm) {\n    var state = cm.state.matchHighlighter;\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function() {highlightMatches(cm);}, state.delay);\n  }\n\n  function highlightMatches(cm) {\n    cm.operation(function() {\n      var state = cm.state.matchHighlighter;\n      if (state.overlay) {\n        cm.removeOverlay(state.overlay);\n        state.overlay = null;\n      }\n      if (!cm.somethingSelected() && state.showToken) {\n        var re = state.showToken === true ? /[\\w$]/ : state.showToken;\n        var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;\n        while (start && re.test(line.charAt(start - 1))) --start;\n        while (end < line.length && re.test(line.charAt(end))) ++end;\n        if (start < end)\n          cm.addOverlay(state.overlay = makeOverlay(line.slice(start, end), re, state.style));\n        return;\n      }\n      var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n      if (from.line != to.line) return;\n      if (state.wordsOnly && !isWord(cm, from, to)) return;\n      var selection = cm.getRange(from, to).replace(/^\\s+|\\s+$/g, \"\");\n      if (selection.length >= state.minChars)\n        cm.addOverlay(state.overlay = makeOverlay(selection, false, state.style));\n    });\n  }\n\n  function isWord(cm, from, to) {\n    var str = cm.getRange(from, to);\n    if (str.match(/^\\w+$/) !== null) {\n        if (from.ch > 0) {\n            var pos = {line: from.line, ch: from.ch - 1};\n            var chr = cm.getRange(pos, from);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        if (to.ch < cm.getLine(from.line).length) {\n            var pos = {line: to.line, ch: to.ch + 1};\n            var chr = cm.getRange(to, pos);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        return true;\n    } else return false;\n  }\n\n  function boundariesAround(stream, re) {\n    return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&\n      (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));\n  }\n\n  function makeOverlay(query, hasBoundary, style) {\n    return {token: function(stream) {\n      if (stream.match(query) &&\n          (!hasBoundary || boundariesAround(stream, hasBoundary)))\n        return style;\n      stream.next();\n      stream.skipTo(query.charAt(0)) || stream.skipToEnd();\n    }};\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/search/matchesonscrollbar.css",
    "content": ".CodeMirror-search-match {\n  background: gold;\n  border-top: 1px solid orange;\n  border-bottom: 1px solid orange;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  opacity: .5;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/search/matchesonscrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../scroll/annotatescrollbar\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../scroll/annotatescrollbar\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"showMatchesOnScrollbar\", function(query, caseFold, options) {\n    if (typeof options == \"string\") options = {className: options};\n    if (!options) options = {};\n    return new SearchAnnotation(this, query, caseFold, options);\n  });\n\n  function SearchAnnotation(cm, query, caseFold, options) {\n    this.cm = cm;\n    var annotateOptions = {listenForChanges: false};\n    for (var prop in options) annotateOptions[prop] = options[prop];\n    if (!annotateOptions.className) annotateOptions.className = \"CodeMirror-search-match\";\n    this.annotation = cm.annotateScrollbar(annotateOptions);\n    this.query = query;\n    this.caseFold = caseFold;\n    this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};\n    this.matches = [];\n    this.update = null;\n\n    this.findMatches();\n    this.annotation.update(this.matches);\n\n    var self = this;\n    cm.on(\"change\", this.changeHandler = function(_cm, change) { self.onChange(change); });\n  }\n\n  var MAX_MATCHES = 1000;\n\n  SearchAnnotation.prototype.findMatches = function() {\n    if (!this.gap) return;\n    for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      if (match.from.line >= this.gap.to) break;\n      if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);\n    }\n    var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), this.caseFold);\n    while (cursor.findNext()) {\n      var match = {from: cursor.from(), to: cursor.to()};\n      if (match.from.line >= this.gap.to) break;\n      this.matches.splice(i++, 0, match);\n      if (this.matches.length > MAX_MATCHES) break;\n    }\n    this.gap = null;\n  };\n\n  function offsetLine(line, changeStart, sizeChange) {\n    if (line <= changeStart) return line;\n    return Math.max(changeStart, line + sizeChange);\n  }\n\n  SearchAnnotation.prototype.onChange = function(change) {\n    var startLine = change.from.line;\n    var endLine = CodeMirror.changeEnd(change).line;\n    var sizeChange = endLine - change.to.line;\n    if (this.gap) {\n      this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);\n      this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);\n    } else {\n      this.gap = {from: change.from.line, to: endLine + 1};\n    }\n\n    if (sizeChange) for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      var newFrom = offsetLine(match.from.line, startLine, sizeChange);\n      if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);\n      var newTo = offsetLine(match.to.line, startLine, sizeChange);\n      if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);\n    }\n    clearTimeout(this.update);\n    var self = this;\n    this.update = setTimeout(function() { self.updateAfterChange(); }, 250);\n  };\n\n  SearchAnnotation.prototype.updateAfterChange = function() {\n    this.findMatches();\n    this.annotation.update(this.matches);\n  };\n\n  SearchAnnotation.prototype.clear = function() {\n    this.cm.off(\"change\", this.changeHandler);\n    this.annotation.clear();\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/search/search.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  function searchOverlay(query, caseInsensitive) {\n    if (typeof query == \"string\")\n      query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n    else if (!query.global)\n      query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n    return {token: function(stream) {\n      query.lastIndex = stream.pos;\n      var match = query.exec(stream.string);\n      if (match && match.index == stream.pos) {\n        stream.pos += match[0].length;\n        return \"searching\";\n      } else if (match) {\n        stream.pos = match.index;\n      } else {\n        stream.skipToEnd();\n      }\n    }};\n  }\n\n  function SearchState() {\n    this.posFrom = this.posTo = this.query = null;\n    this.overlay = null;\n  }\n  function getSearchState(cm) {\n    return cm.state.search || (cm.state.search = new SearchState());\n  }\n  function queryCaseInsensitive(query) {\n    return typeof query == \"string\" && query == query.toLowerCase();\n  }\n  function getSearchCursor(cm, query, pos) {\n    // Heuristic: if the query string is all lowercase, do a case insensitive search.\n    return cm.getSearchCursor(query, pos, queryCaseInsensitive(query));\n  }\n  function dialog(cm, text, shortText, deflt, f) {\n    if (cm.openDialog) cm.openDialog(text, f, {value: deflt});\n    else f(prompt(shortText, deflt));\n  }\n  function confirmDialog(cm, text, shortText, fs) {\n    if (cm.openConfirm) cm.openConfirm(text, fs);\n    else if (confirm(shortText)) fs[0]();\n  }\n  function parseQuery(query) {\n    var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n    if (isRE) {\n      try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n      catch(e) {} // Not a regular expression after all, do a string search\n    }\n    if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n      query = /x^/;\n    return query;\n  }\n  var queryDialog =\n    'Search: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';\n  function doSearch(cm, rev) {\n    var state = getSearchState(cm);\n    if (state.query) return findNext(cm, rev);\n    dialog(cm, queryDialog, \"Search for:\", cm.getSelection(), function(query) {\n      cm.operation(function() {\n        if (!query || state.query) return;\n        state.query = parseQuery(query);\n        cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n        state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n        cm.addOverlay(state.overlay);\n        if (cm.showMatchesOnScrollbar) {\n          if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n          state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n        }\n        state.posFrom = state.posTo = cm.getCursor();\n        findNext(cm, rev);\n      });\n    });\n  }\n  function findNext(cm, rev) {cm.operation(function() {\n    var state = getSearchState(cm);\n    var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n    if (!cursor.find(rev)) {\n      cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n      if (!cursor.find(rev)) return;\n    }\n    cm.setSelection(cursor.from(), cursor.to());\n    cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n    state.posFrom = cursor.from(); state.posTo = cursor.to();\n  });}\n  function clearSearch(cm) {cm.operation(function() {\n    var state = getSearchState(cm);\n    if (!state.query) return;\n    state.query = null;\n    cm.removeOverlay(state.overlay);\n    if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n  });}\n\n  var replaceQueryDialog =\n    'Replace: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';\n  var replacementQueryDialog = 'With: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>';\n  var doReplaceConfirm = \"Replace? <button>Yes</button> <button>No</button> <button>Stop</button>\";\n  function replace(cm, all) {\n    if (cm.getOption(\"readOnly\")) return;\n    dialog(cm, replaceQueryDialog, \"Replace:\", cm.getSelection(), function(query) {\n      if (!query) return;\n      query = parseQuery(query);\n      dialog(cm, replacementQueryDialog, \"Replace with:\", \"\", function(text) {\n        if (all) {\n          cm.operation(function() {\n            for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n              if (typeof query != \"string\") {\n                var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n                cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n              } else cursor.replace(text);\n            }\n          });\n        } else {\n          clearSearch(cm);\n          var cursor = getSearchCursor(cm, query, cm.getCursor());\n          var advance = function() {\n            var start = cursor.from(), match;\n            if (!(match = cursor.findNext())) {\n              cursor = getSearchCursor(cm, query);\n              if (!(match = cursor.findNext()) ||\n                  (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n            }\n            cm.setSelection(cursor.from(), cursor.to());\n            cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n            confirmDialog(cm, doReplaceConfirm, \"Replace?\",\n                          [function() {doReplace(match);}, advance]);\n          };\n          var doReplace = function(match) {\n            cursor.replace(typeof query == \"string\" ? text :\n                           text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n            advance();\n          };\n          advance();\n        }\n      });\n    });\n  }\n\n  CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n  CodeMirror.commands.findNext = doSearch;\n  CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n  CodeMirror.commands.clearSearch = clearSearch;\n  CodeMirror.commands.replace = replace;\n  CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/search/searchcursor.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var Pos = CodeMirror.Pos;\n\n  function SearchCursor(doc, query, pos, caseFold) {\n    this.atOccurrence = false; this.doc = doc;\n    if (caseFold == null && typeof query == \"string\") caseFold = false;\n\n    pos = pos ? doc.clipPos(pos) : Pos(0, 0);\n    this.pos = {from: pos, to: pos};\n\n    // The matches method is filled in based on the type of query.\n    // It takes a position and a direction, and returns an object\n    // describing the next occurrence of the query, or null if no\n    // more matches were found.\n    if (typeof query != \"string\") { // Regexp match\n      if (!query.global) query = new RegExp(query.source, query.ignoreCase ? \"ig\" : \"g\");\n      this.matches = function(reverse, pos) {\n        if (reverse) {\n          query.lastIndex = 0;\n          var line = doc.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start;\n          for (;;) {\n            query.lastIndex = cutOff;\n            var newMatch = query.exec(line);\n            if (!newMatch) break;\n            match = newMatch;\n            start = match.index;\n            cutOff = match.index + (match[0].length || 1);\n            if (cutOff == line.length) break;\n          }\n          var matchLen = (match && match[0].length) || 0;\n          if (!matchLen) {\n            if (start == 0 && line.length == 0) {match = undefined;}\n            else if (start != doc.getLine(pos.line).length) {\n              matchLen++;\n            }\n          }\n        } else {\n          query.lastIndex = pos.ch;\n          var line = doc.getLine(pos.line), match = query.exec(line);\n          var matchLen = (match && match[0].length) || 0;\n          var start = match && match.index;\n          if (start + matchLen != line.length && !matchLen) matchLen = 1;\n        }\n        if (match && matchLen)\n          return {from: Pos(pos.line, start),\n                  to: Pos(pos.line, start + matchLen),\n                  match: match};\n      };\n    } else { // String query\n      var origQuery = query;\n      if (caseFold) query = query.toLowerCase();\n      var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};\n      var target = query.split(\"\\n\");\n      // Different methods for single-line and multi-line queries\n      if (target.length == 1) {\n        if (!query.length) {\n          // Empty string would match anything and never progress, so\n          // we define it to match nothing instead.\n          this.matches = function() {};\n        } else {\n          this.matches = function(reverse, pos) {\n            if (reverse) {\n              var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig);\n              var match = line.lastIndexOf(query);\n              if (match > -1) {\n                match = adjustPos(orig, line, match);\n                return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};\n              }\n             } else {\n               var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig);\n               var match = line.indexOf(query);\n               if (match > -1) {\n                 match = adjustPos(orig, line, match) + pos.ch;\n                 return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};\n               }\n            }\n          };\n        }\n      } else {\n        var origTarget = origQuery.split(\"\\n\");\n        this.matches = function(reverse, pos) {\n          var last = target.length - 1;\n          if (reverse) {\n            if (pos.line - (target.length - 1) < doc.firstLine()) return;\n            if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return;\n            var to = Pos(pos.line, origTarget[last].length);\n            for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln)\n              if (target[i] != fold(doc.getLine(ln))) return;\n            var line = doc.getLine(ln), cut = line.length - origTarget[0].length;\n            if (fold(line.slice(cut)) != target[0]) return;\n            return {from: Pos(ln, cut), to: to};\n          } else {\n            if (pos.line + (target.length - 1) > doc.lastLine()) return;\n            var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length;\n            if (fold(line.slice(cut)) != target[0]) return;\n            var from = Pos(pos.line, cut);\n            for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln)\n              if (target[i] != fold(doc.getLine(ln))) return;\n            if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return;\n            return {from: from, to: Pos(ln, origTarget[last].length)};\n          }\n        };\n      }\n    }\n  }\n\n  SearchCursor.prototype = {\n    findNext: function() {return this.find(false);},\n    findPrevious: function() {return this.find(true);},\n\n    find: function(reverse) {\n      var self = this, pos = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);\n      function savePosAndFail(line) {\n        var pos = Pos(line, 0);\n        self.pos = {from: pos, to: pos};\n        self.atOccurrence = false;\n        return false;\n      }\n\n      for (;;) {\n        if (this.pos = this.matches(reverse, pos)) {\n          this.atOccurrence = true;\n          return this.pos.match || true;\n        }\n        if (reverse) {\n          if (!pos.line) return savePosAndFail(0);\n          pos = Pos(pos.line-1, this.doc.getLine(pos.line-1).length);\n        }\n        else {\n          var maxLine = this.doc.lineCount();\n          if (pos.line == maxLine - 1) return savePosAndFail(maxLine);\n          pos = Pos(pos.line + 1, 0);\n        }\n      }\n    },\n\n    from: function() {if (this.atOccurrence) return this.pos.from;},\n    to: function() {if (this.atOccurrence) return this.pos.to;},\n\n    replace: function(newText) {\n      if (!this.atOccurrence) return;\n      var lines = CodeMirror.splitLines(newText);\n      this.doc.replaceRange(lines, this.pos.from, this.pos.to);\n      this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n                        lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0));\n    }\n  };\n\n  // Maps a position in a case-folded line back to a position in the original line\n  // (compensating for codepoints increasing in number during folding)\n  function adjustPos(orig, folded, pos) {\n    if (orig.length == folded.length) return pos;\n    for (var pos1 = Math.min(pos, orig.length);;) {\n      var len1 = orig.slice(0, pos1).toLowerCase().length;\n      if (len1 < pos) ++pos1;\n      else if (len1 > pos) --pos1;\n      else return pos1;\n    }\n  }\n\n  CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this.doc, query, pos, caseFold);\n  });\n  CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this, query, pos, caseFold);\n  });\n\n  CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n    var ranges = [], next;\n    var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold);\n    while (next = cur.findNext()) {\n      if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break;\n      ranges.push({anchor: cur.from(), head: cur.to()});\n    }\n    if (ranges.length)\n      this.setSelections(ranges, 0);\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/selection/active-line.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Because sometimes you need to style the cursor's line.\n//\n// Adds an option 'styleActiveLine' which, when enabled, gives the\n// active line's wrapping <div> the CSS class \"CodeMirror-activeline\",\n// and gives its background <div> the class \"CodeMirror-activeline-background\".\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var WRAP_CLASS = \"CodeMirror-activeline\";\n  var BACK_CLASS = \"CodeMirror-activeline-background\";\n\n  CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.state.activeLines = [];\n      updateActiveLines(cm, cm.listSelections());\n      cm.on(\"beforeSelectionChange\", selectionChange);\n    } else if (!val && prev) {\n      cm.off(\"beforeSelectionChange\", selectionChange);\n      clearActiveLines(cm);\n      delete cm.state.activeLines;\n    }\n  });\n\n  function clearActiveLines(cm) {\n    for (var i = 0; i < cm.state.activeLines.length; i++) {\n      cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n      cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n    }\n  }\n\n  function sameArray(a, b) {\n    if (a.length != b.length) return false;\n    for (var i = 0; i < a.length; i++)\n      if (a[i] != b[i]) return false;\n    return true;\n  }\n\n  function updateActiveLines(cm, ranges) {\n    var active = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      if (!range.empty()) continue;\n      var line = cm.getLineHandleVisualStart(range.head.line);\n      if (active[active.length - 1] != line) active.push(line);\n    }\n    if (sameArray(cm.state.activeLines, active)) return;\n    cm.operation(function() {\n      clearActiveLines(cm);\n      for (var i = 0; i < active.length; i++) {\n        cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n        cm.addLineClass(active[i], \"background\", BACK_CLASS);\n      }\n      cm.state.activeLines = active;\n    });\n  }\n\n  function selectionChange(cm, sel) {\n    updateActiveLines(cm, sel.ranges);\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/selection/mark-selection.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.state.markedSelection = [];\n      cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n      reset(cm);\n      cm.on(\"cursorActivity\", onCursorActivity);\n      cm.on(\"change\", onChange);\n    } else if (!val && prev) {\n      cm.off(\"cursorActivity\", onCursorActivity);\n      cm.off(\"change\", onChange);\n      clear(cm);\n      cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n    }\n  });\n\n  function onCursorActivity(cm) {\n    cm.operation(function() { update(cm); });\n  }\n\n  function onChange(cm) {\n    if (cm.state.markedSelection.length)\n      cm.operation(function() { clear(cm); });\n  }\n\n  var CHUNK_SIZE = 8;\n  var Pos = CodeMirror.Pos;\n  var cmp = CodeMirror.cmpPos;\n\n  function coverRange(cm, from, to, addAt) {\n    if (cmp(from, to) == 0) return;\n    var array = cm.state.markedSelection;\n    var cls = cm.state.markedSelectionStyle;\n    for (var line = from.line;;) {\n      var start = line == from.line ? from : Pos(line, 0);\n      var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n      var end = atEnd ? to : Pos(endLine, 0);\n      var mark = cm.markText(start, end, {className: cls});\n      if (addAt == null) array.push(mark);\n      else array.splice(addAt++, 0, mark);\n      if (atEnd) break;\n      line = endLine;\n    }\n  }\n\n  function clear(cm) {\n    var array = cm.state.markedSelection;\n    for (var i = 0; i < array.length; ++i) array[i].clear();\n    array.length = 0;\n  }\n\n  function reset(cm) {\n    clear(cm);\n    var ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++)\n      coverRange(cm, ranges[i].from(), ranges[i].to());\n  }\n\n  function update(cm) {\n    if (!cm.somethingSelected()) return clear(cm);\n    if (cm.listSelections().length > 1) return reset(cm);\n\n    var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n    var array = cm.state.markedSelection;\n    if (!array.length) return coverRange(cm, from, to);\n\n    var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n    if (!coverStart || !coverEnd || to.line - from.line < CHUNK_SIZE ||\n        cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n      return reset(cm);\n\n    while (cmp(from, coverStart.from) > 0) {\n      array.shift().clear();\n      coverStart = array[0].find();\n    }\n    if (cmp(from, coverStart.from) < 0) {\n      if (coverStart.to.line - from.line < CHUNK_SIZE) {\n        array.shift().clear();\n        coverRange(cm, from, coverStart.to, 0);\n      } else {\n        coverRange(cm, from, coverStart.from, 0);\n      }\n    }\n\n    while (cmp(to, coverEnd.to) < 0) {\n      array.pop().clear();\n      coverEnd = array[array.length - 1].find();\n    }\n    if (cmp(to, coverEnd.to) > 0) {\n      if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n        array.pop().clear();\n        coverRange(cm, coverEnd.from, to);\n      } else {\n        coverRange(cm, coverEnd.to, to);\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/selection/selection-pointer.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"selectionPointer\", false, function(cm, val) {\n    var data = cm.state.selectionPointer;\n    if (data) {\n      CodeMirror.off(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.off(window, \"scroll\", data.windowScroll);\n      cm.off(\"cursorActivity\", reset);\n      cm.off(\"scroll\", reset);\n      cm.state.selectionPointer = null;\n      cm.display.lineDiv.style.cursor = \"\";\n    }\n    if (val) {\n      data = cm.state.selectionPointer = {\n        value: typeof val == \"string\" ? val : \"default\",\n        mousemove: function(event) { mousemove(cm, event); },\n        mouseout: function(event) { mouseout(cm, event); },\n        windowScroll: function() { reset(cm); },\n        rects: null,\n        mouseX: null, mouseY: null,\n        willUpdate: false\n      };\n      CodeMirror.on(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.on(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.on(window, \"scroll\", data.windowScroll);\n      cm.on(\"cursorActivity\", reset);\n      cm.on(\"scroll\", reset);\n    }\n  });\n\n  function mousemove(cm, event) {\n    var data = cm.state.selectionPointer;\n    if (event.buttons == null ? event.which : event.buttons) {\n      data.mouseX = data.mouseY = null;\n    } else {\n      data.mouseX = event.clientX;\n      data.mouseY = event.clientY;\n    }\n    scheduleUpdate(cm);\n  }\n\n  function mouseout(cm, event) {\n    if (!cm.getWrapperElement().contains(event.relatedTarget)) {\n      var data = cm.state.selectionPointer;\n      data.mouseX = data.mouseY = null;\n      scheduleUpdate(cm);\n    }\n  }\n\n  function reset(cm) {\n    cm.state.selectionPointer.rects = null;\n    scheduleUpdate(cm);\n  }\n\n  function scheduleUpdate(cm) {\n    if (!cm.state.selectionPointer.willUpdate) {\n      cm.state.selectionPointer.willUpdate = true;\n      setTimeout(function() {\n        update(cm);\n        cm.state.selectionPointer.willUpdate = false;\n      }, 50);\n    }\n  }\n\n  function update(cm) {\n    var data = cm.state.selectionPointer;\n    if (!data) return;\n    if (data.rects == null && data.mouseX != null) {\n      data.rects = [];\n      if (cm.somethingSelected()) {\n        for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)\n          data.rects.push(sel.getBoundingClientRect());\n      }\n    }\n    var inside = false;\n    if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {\n      var rect = data.rects[i];\n      if (rect.left <= data.mouseX && rect.right >= data.mouseX &&\n          rect.top <= data.mouseY && rect.bottom >= data.mouseY)\n        inside = true;\n    }\n    var cursor = inside ? data.value : \"\";\n    if (cm.display.lineDiv.style.cursor != cursor)\n      cm.display.lineDiv.style.cursor = cursor;\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/tern/tern.css",
    "content": ".CodeMirror-Tern-completion {\n  padding-left: 22px;\n  position: relative;\n}\n.CodeMirror-Tern-completion:before {\n  position: absolute;\n  left: 2px;\n  bottom: 2px;\n  border-radius: 50%;\n  font-size: 12px;\n  font-weight: bold;\n  height: 15px;\n  width: 15px;\n  line-height: 16px;\n  text-align: center;\n  color: white;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.CodeMirror-Tern-completion-unknown:before {\n  content: \"?\";\n  background: #4bb;\n}\n.CodeMirror-Tern-completion-object:before {\n  content: \"O\";\n  background: #77c;\n}\n.CodeMirror-Tern-completion-fn:before {\n  content: \"F\";\n  background: #7c7;\n}\n.CodeMirror-Tern-completion-array:before {\n  content: \"A\";\n  background: #c66;\n}\n.CodeMirror-Tern-completion-number:before {\n  content: \"1\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-string:before {\n  content: \"S\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-bool:before {\n  content: \"B\";\n  background: #999;\n}\n\n.CodeMirror-Tern-completion-guess {\n  color: #999;\n}\n\n.CodeMirror-Tern-tooltip {\n  border: 1px solid silver;\n  border-radius: 3px;\n  color: #444;\n  padding: 2px 5px;\n  font-size: 90%;\n  font-family: monospace;\n  background-color: white;\n  white-space: pre-wrap;\n\n  max-width: 40em;\n  position: absolute;\n  z-index: 10;\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n\n  transition: opacity 1s;\n  -moz-transition: opacity 1s;\n  -webkit-transition: opacity 1s;\n  -o-transition: opacity 1s;\n  -ms-transition: opacity 1s;\n}\n\n.CodeMirror-Tern-hint-doc {\n  max-width: 25em;\n  margin-top: -3px;\n}\n\n.CodeMirror-Tern-fname { color: black; }\n.CodeMirror-Tern-farg { color: #70a; }\n.CodeMirror-Tern-farg-current { text-decoration: underline; }\n.CodeMirror-Tern-type { color: #07c; }\n.CodeMirror-Tern-fhint-guess { opacity: .7; }\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/tern/tern.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Glue code between CodeMirror and Tern.\n//\n// Create a CodeMirror.TernServer to wrap an actual Tern server,\n// register open documents (CodeMirror.Doc instances) with it, and\n// call its methods to activate the assisting functions that Tern\n// provides.\n//\n// Options supported (all optional):\n// * defs: An array of JSON definition data structures.\n// * plugins: An object mapping plugin names to configuration\n//   options.\n// * getFile: A function(name, c) that can be used to access files in\n//   the project that haven't been loaded yet. Simply do c(null) to\n//   indicate that a file is not available.\n// * fileFilter: A function(value, docName, doc) that will be applied\n//   to documents before passing them on to Tern.\n// * switchToDoc: A function(name, doc) that should, when providing a\n//   multi-file view, switch the view or focus to the named file.\n// * showError: A function(editor, message) that can be used to\n//   override the way errors are displayed.\n// * completionTip: Customize the content in tooltips for completions.\n//   Is passed a single argument—the completion's data as returned by\n//   Tern—and may return a string, DOM node, or null to indicate that\n//   no tip should be shown. By default the docstring is shown.\n// * typeTip: Like completionTip, but for the tooltips shown for type\n//   queries.\n// * responseFilter: A function(doc, query, request, error, data) that\n//   will be applied to the Tern responses before treating them\n//\n//\n// It is possible to run the Tern server in a web worker by specifying\n// these additional options:\n// * useWorker: Set to true to enable web worker mode. You'll probably\n//   want to feature detect the actual value you use here, for example\n//   !!window.Worker.\n// * workerScript: The main script of the worker. Point this to\n//   wherever you are hosting worker.js from this directory.\n// * workerDeps: An array of paths pointing (relative to workerScript)\n//   to the Acorn and Tern libraries and any Tern plugins you want to\n//   load. Or, if you minified those into a single script and included\n//   them in the workerScript, simply leave this undefined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: tern\n\n  CodeMirror.TernServer = function(options) {\n    var self = this;\n    this.options = options || {};\n    var plugins = this.options.plugins || (this.options.plugins = {});\n    if (!plugins.doc_comment) plugins.doc_comment = true;\n    if (this.options.useWorker) {\n      this.server = new WorkerServer(this);\n    } else {\n      this.server = new tern.Server({\n        getFile: function(name, c) { return getFile(self, name, c); },\n        async: true,\n        defs: this.options.defs || [],\n        plugins: plugins\n      });\n    }\n    this.docs = Object.create(null);\n    this.trackChange = function(doc, change) { trackChange(self, doc, change); };\n\n    this.cachedArgHints = null;\n    this.activeArgHints = null;\n    this.jumpStack = [];\n\n    this.getHint = function(cm, c) { return hint(self, cm, c); };\n    this.getHint.async = true;\n  };\n\n  CodeMirror.TernServer.prototype = {\n    addDoc: function(name, doc) {\n      var data = {doc: doc, name: name, changed: null};\n      this.server.addFile(name, docValue(this, data));\n      CodeMirror.on(doc, \"change\", this.trackChange);\n      return this.docs[name] = data;\n    },\n\n    delDoc: function(id) {\n      var found = resolveDoc(this, id);\n      if (!found) return;\n      CodeMirror.off(found.doc, \"change\", this.trackChange);\n      delete this.docs[found.name];\n      this.server.delFile(found.name);\n    },\n\n    hideDoc: function(id) {\n      closeArgHints(this);\n      var found = resolveDoc(this, id);\n      if (found && found.changed) sendDoc(this, found);\n    },\n\n    complete: function(cm) {\n      cm.showHint({hint: this.getHint});\n    },\n\n    showType: function(cm, pos, c) { showContextInfo(this, cm, pos, \"type\", c); },\n\n    showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, \"documentation\", c); },\n\n    updateArgHints: function(cm) { updateArgHints(this, cm); },\n\n    jumpToDef: function(cm) { jumpToDef(this, cm); },\n\n    jumpBack: function(cm) { jumpBack(this, cm); },\n\n    rename: function(cm) { rename(this, cm); },\n\n    selectName: function(cm) { selectName(this, cm); },\n\n    request: function (cm, query, c, pos) {\n      var self = this;\n      var doc = findDoc(this, cm.getDoc());\n      var request = buildRequest(this, doc, query, pos);\n\n      this.server.request(request, function (error, data) {\n        if (!error && self.options.responseFilter)\n          data = self.options.responseFilter(doc, query, request, error, data);\n        c(error, data);\n      });\n    },\n\n    destroy: function () {\n      if (this.worker) {\n        this.worker.terminate();\n        this.worker = null;\n      }\n    }\n  };\n\n  var Pos = CodeMirror.Pos;\n  var cls = \"CodeMirror-Tern-\";\n  var bigDoc = 250;\n\n  function getFile(ts, name, c) {\n    var buf = ts.docs[name];\n    if (buf)\n      c(docValue(ts, buf));\n    else if (ts.options.getFile)\n      ts.options.getFile(name, c);\n    else\n      c(null);\n  }\n\n  function findDoc(ts, doc, name) {\n    for (var n in ts.docs) {\n      var cur = ts.docs[n];\n      if (cur.doc == doc) return cur;\n    }\n    if (!name) for (var i = 0;; ++i) {\n      n = \"[doc\" + (i || \"\") + \"]\";\n      if (!ts.docs[n]) { name = n; break; }\n    }\n    return ts.addDoc(name, doc);\n  }\n\n  function resolveDoc(ts, id) {\n    if (typeof id == \"string\") return ts.docs[id];\n    if (id instanceof CodeMirror) id = id.getDoc();\n    if (id instanceof CodeMirror.Doc) return findDoc(ts, id);\n  }\n\n  function trackChange(ts, doc, change) {\n    var data = findDoc(ts, doc);\n\n    var argHints = ts.cachedArgHints;\n    if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) <= 0)\n      ts.cachedArgHints = null;\n\n    var changed = data.changed;\n    if (changed == null)\n      data.changed = changed = {from: change.from.line, to: change.from.line};\n    var end = change.from.line + (change.text.length - 1);\n    if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);\n    if (end >= changed.to) changed.to = end + 1;\n    if (changed.from > change.from.line) changed.from = change.from.line;\n\n    if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {\n      if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);\n    }, 200);\n  }\n\n  function sendDoc(ts, doc) {\n    ts.server.request({files: [{type: \"full\", name: doc.name, text: docValue(ts, doc)}]}, function(error) {\n      if (error) window.console.error(error);\n      else doc.changed = null;\n    });\n  }\n\n  // Completion\n\n  function hint(ts, cm, c) {\n    ts.request(cm, {type: \"completions\", types: true, docs: true, urls: true}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var completions = [], after = \"\";\n      var from = data.start, to = data.end;\n      if (cm.getRange(Pos(from.line, from.ch - 2), from) == \"[\\\"\" &&\n          cm.getRange(to, Pos(to.line, to.ch + 2)) != \"\\\"]\")\n        after = \"\\\"]\";\n\n      for (var i = 0; i < data.completions.length; ++i) {\n        var completion = data.completions[i], className = typeToIcon(completion.type);\n        if (data.guess) className += \" \" + cls + \"guess\";\n        completions.push({text: completion.name + after,\n                          displayText: completion.name,\n                          className: className,\n                          data: completion});\n      }\n\n      var obj = {from: from, to: to, list: completions};\n      var tooltip = null;\n      CodeMirror.on(obj, \"close\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"update\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"select\", function(cur, node) {\n        remove(tooltip);\n        var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;\n        if (content) {\n          tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,\n                                node.getBoundingClientRect().top + window.pageYOffset, content);\n          tooltip.className += \" \" + cls + \"hint-doc\";\n        }\n      });\n      c(obj);\n    });\n  }\n\n  function typeToIcon(type) {\n    var suffix;\n    if (type == \"?\") suffix = \"unknown\";\n    else if (type == \"number\" || type == \"string\" || type == \"bool\") suffix = type;\n    else if (/^fn\\(/.test(type)) suffix = \"fn\";\n    else if (/^\\[/.test(type)) suffix = \"array\";\n    else suffix = \"object\";\n    return cls + \"completion \" + cls + \"completion-\" + suffix;\n  }\n\n  // Type queries\n\n  function showContextInfo(ts, cm, pos, queryName, c) {\n    ts.request(cm, queryName, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      if (ts.options.typeTip) {\n        var tip = ts.options.typeTip(data);\n      } else {\n        var tip = elt(\"span\", null, elt(\"strong\", null, data.type || \"not found\"));\n        if (data.doc)\n          tip.appendChild(document.createTextNode(\" — \" + data.doc));\n        if (data.url) {\n          tip.appendChild(document.createTextNode(\" \"));\n          var child = tip.appendChild(elt(\"a\", null, \"[docs]\"));\n          child.href = data.url;\n          child.target = \"_blank\";\n        }\n      }\n      tempTooltip(cm, tip);\n      if (c) c();\n    }, pos);\n  }\n\n  // Maintaining argument hints\n\n  function updateArgHints(ts, cm) {\n    closeArgHints(ts);\n\n    if (cm.somethingSelected()) return;\n    var state = cm.getTokenAt(cm.getCursor()).state;\n    var inner = CodeMirror.innerMode(cm.getMode(), state);\n    if (inner.mode.name != \"javascript\") return;\n    var lex = inner.state.lexical;\n    if (lex.info != \"call\") return;\n\n    var ch, argPos = lex.pos || 0, tabSize = cm.getOption(\"tabSize\");\n    for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {\n      var str = cm.getLine(line), extra = 0;\n      for (var pos = 0;;) {\n        var tab = str.indexOf(\"\\t\", pos);\n        if (tab == -1) break;\n        extra += tabSize - (tab + extra) % tabSize - 1;\n        pos = tab + 1;\n      }\n      ch = lex.column - extra;\n      if (str.charAt(ch) == \"(\") {found = true; break;}\n    }\n    if (!found) return;\n\n    var start = Pos(line, ch);\n    var cache = ts.cachedArgHints;\n    if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)\n      return showArgHints(ts, cm, argPos);\n\n    ts.request(cm, {type: \"type\", preferFunction: true, end: start}, function(error, data) {\n      if (error || !data.type || !(/^fn\\(/).test(data.type)) return;\n      ts.cachedArgHints = {\n        start: pos,\n        type: parseFnType(data.type),\n        name: data.exprName || data.name || \"fn\",\n        guess: data.guess,\n        doc: cm.getDoc()\n      };\n      showArgHints(ts, cm, argPos);\n    });\n  }\n\n  function showArgHints(ts, cm, pos) {\n    closeArgHints(ts);\n\n    var cache = ts.cachedArgHints, tp = cache.type;\n    var tip = elt(\"span\", cache.guess ? cls + \"fhint-guess\" : null,\n                  elt(\"span\", cls + \"fname\", cache.name), \"(\");\n    for (var i = 0; i < tp.args.length; ++i) {\n      if (i) tip.appendChild(document.createTextNode(\", \"));\n      var arg = tp.args[i];\n      tip.appendChild(elt(\"span\", cls + \"farg\" + (i == pos ? \" \" + cls + \"farg-current\" : \"\"), arg.name || \"?\"));\n      if (arg.type != \"?\") {\n        tip.appendChild(document.createTextNode(\":\\u00a0\"));\n        tip.appendChild(elt(\"span\", cls + \"type\", arg.type));\n      }\n    }\n    tip.appendChild(document.createTextNode(tp.rettype ? \") ->\\u00a0\" : \")\"));\n    if (tp.rettype) tip.appendChild(elt(\"span\", cls + \"type\", tp.rettype));\n    var place = cm.cursorCoords(null, \"page\");\n    ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip);\n  }\n\n  function parseFnType(text) {\n    var args = [], pos = 3;\n\n    function skipMatching(upto) {\n      var depth = 0, start = pos;\n      for (;;) {\n        var next = text.charAt(pos);\n        if (upto.test(next) && !depth) return text.slice(start, pos);\n        if (/[{\\[\\(]/.test(next)) ++depth;\n        else if (/[}\\]\\)]/.test(next)) --depth;\n        ++pos;\n      }\n    }\n\n    // Parse arguments\n    if (text.charAt(pos) != \")\") for (;;) {\n      var name = text.slice(pos).match(/^([^, \\(\\[\\{]+): /);\n      if (name) {\n        pos += name[0].length;\n        name = name[1];\n      }\n      args.push({name: name, type: skipMatching(/[\\),]/)});\n      if (text.charAt(pos) == \")\") break;\n      pos += 2;\n    }\n\n    var rettype = text.slice(pos).match(/^\\) -> (.*)$/);\n\n    return {args: args, rettype: rettype && rettype[1]};\n  }\n\n  // Moving to the definition of something\n\n  function jumpToDef(ts, cm) {\n    function inner(varName) {\n      var req = {type: \"definition\", variable: varName || null};\n      var doc = findDoc(ts, cm.getDoc());\n      ts.server.request(buildRequest(ts, doc, req), function(error, data) {\n        if (error) return showError(ts, cm, error);\n        if (!data.file && data.url) { window.open(data.url); return; }\n\n        if (data.file) {\n          var localDoc = ts.docs[data.file], found;\n          if (localDoc && (found = findContext(localDoc.doc, data))) {\n            ts.jumpStack.push({file: doc.name,\n                               start: cm.getCursor(\"from\"),\n                               end: cm.getCursor(\"to\")});\n            moveTo(ts, doc, localDoc, found.start, found.end);\n            return;\n          }\n        }\n        showError(ts, cm, \"Could not find a definition.\");\n      });\n    }\n\n    if (!atInterestingExpression(cm))\n      dialog(cm, \"Jump to variable\", function(name) { if (name) inner(name); });\n    else\n      inner();\n  }\n\n  function jumpBack(ts, cm) {\n    var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];\n    if (!doc) return;\n    moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);\n  }\n\n  function moveTo(ts, curDoc, doc, start, end) {\n    doc.doc.setSelection(start, end);\n    if (curDoc != doc && ts.options.switchToDoc) {\n      closeArgHints(ts);\n      ts.options.switchToDoc(doc.name, doc.doc);\n    }\n  }\n\n  // The {line,ch} representation of positions makes this rather awkward.\n  function findContext(doc, data) {\n    var before = data.context.slice(0, data.contextOffset).split(\"\\n\");\n    var startLine = data.start.line - (before.length - 1);\n    var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);\n\n    var text = doc.getLine(startLine).slice(start.ch);\n    for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)\n      text += \"\\n\" + doc.getLine(cur);\n    if (text.slice(0, data.context.length) == data.context) return data;\n\n    var cursor = doc.getSearchCursor(data.context, 0, false);\n    var nearest, nearestDist = Infinity;\n    while (cursor.findNext()) {\n      var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;\n      if (!dist) dist = Math.abs(from.ch - start.ch);\n      if (dist < nearestDist) { nearest = from; nearestDist = dist; }\n    }\n    if (!nearest) return null;\n\n    if (before.length == 1)\n      nearest.ch += before[0].length;\n    else\n      nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);\n    if (data.start.line == data.end.line)\n      var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));\n    else\n      var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);\n    return {start: nearest, end: end};\n  }\n\n  function atInterestingExpression(cm) {\n    var pos = cm.getCursor(\"end\"), tok = cm.getTokenAt(pos);\n    if (tok.start < pos.ch && (tok.type == \"comment\" || tok.type == \"string\")) return false;\n    return /\\w/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));\n  }\n\n  // Variable renaming\n\n  function rename(ts, cm) {\n    var token = cm.getTokenAt(cm.getCursor());\n    if (!/\\w/.test(token.string)) return showError(ts, cm, \"Not at a variable\");\n    dialog(cm, \"New name for \" + token.string, function(newName) {\n      ts.request(cm, {type: \"rename\", newName: newName, fullDocs: true}, function(error, data) {\n        if (error) return showError(ts, cm, error);\n        applyChanges(ts, data.changes);\n      });\n    });\n  }\n\n  function selectName(ts, cm) {\n    var name = findDoc(ts, cm.doc).name;\n    ts.request(cm, {type: \"refs\"}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var ranges = [], cur = 0;\n      for (var i = 0; i < data.refs.length; i++) {\n        var ref = data.refs[i];\n        if (ref.file == name) {\n          ranges.push({anchor: ref.start, head: ref.end});\n          if (cmpPos(cur, ref.start) >= 0 && cmpPos(cur, ref.end) <= 0)\n            cur = ranges.length - 1;\n        }\n      }\n      cm.setSelections(ranges, cur);\n    });\n  }\n\n  var nextChangeOrig = 0;\n  function applyChanges(ts, changes) {\n    var perFile = Object.create(null);\n    for (var i = 0; i < changes.length; ++i) {\n      var ch = changes[i];\n      (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);\n    }\n    for (var file in perFile) {\n      var known = ts.docs[file], chs = perFile[file];;\n      if (!known) continue;\n      chs.sort(function(a, b) { return cmpPos(b.start, a.start); });\n      var origin = \"*rename\" + (++nextChangeOrig);\n      for (var i = 0; i < chs.length; ++i) {\n        var ch = chs[i];\n        known.doc.replaceRange(ch.text, ch.start, ch.end, origin);\n      }\n    }\n  }\n\n  // Generic request-building helper\n\n  function buildRequest(ts, doc, query, pos) {\n    var files = [], offsetLines = 0, allowFragments = !query.fullDocs;\n    if (!allowFragments) delete query.fullDocs;\n    if (typeof query == \"string\") query = {type: query};\n    query.lineCharPositions = true;\n    if (query.end == null) {\n      query.end = pos || doc.doc.getCursor(\"end\");\n      if (doc.doc.somethingSelected())\n        query.start = doc.doc.getCursor(\"start\");\n    }\n    var startPos = query.start || query.end;\n\n    if (doc.changed) {\n      if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&\n          doc.changed.to - doc.changed.from < 100 &&\n          doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {\n        files.push(getFragmentAround(doc, startPos, query.end));\n        query.file = \"#0\";\n        var offsetLines = files[0].offsetLines;\n        if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);\n        query.end = Pos(query.end.line - offsetLines, query.end.ch);\n      } else {\n        files.push({type: \"full\",\n                    name: doc.name,\n                    text: docValue(ts, doc)});\n        query.file = doc.name;\n        doc.changed = null;\n      }\n    } else {\n      query.file = doc.name;\n    }\n    for (var name in ts.docs) {\n      var cur = ts.docs[name];\n      if (cur.changed && cur != doc) {\n        files.push({type: \"full\", name: cur.name, text: docValue(ts, cur)});\n        cur.changed = null;\n      }\n    }\n\n    return {query: query, files: files};\n  }\n\n  function getFragmentAround(data, start, end) {\n    var doc = data.doc;\n    var minIndent = null, minLine = null, endLine, tabSize = 4;\n    for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {\n      var line = doc.getLine(p), fn = line.search(/\\bfunction\\b/);\n      if (fn < 0) continue;\n      var indent = CodeMirror.countColumn(line, null, tabSize);\n      if (minIndent != null && minIndent <= indent) continue;\n      minIndent = indent;\n      minLine = p;\n    }\n    if (minLine == null) minLine = min;\n    var max = Math.min(doc.lastLine(), end.line + 20);\n    if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))\n      endLine = max;\n    else for (endLine = end.line + 1; endLine < max; ++endLine) {\n      var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);\n      if (indent <= minIndent) break;\n    }\n    var from = Pos(minLine, 0);\n\n    return {type: \"part\",\n            name: data.name,\n            offsetLines: from.line,\n            text: doc.getRange(from, Pos(endLine, 0))};\n  }\n\n  // Generic utilities\n\n  var cmpPos = CodeMirror.cmpPos;\n\n  function elt(tagname, cls /*, ... elts*/) {\n    var e = document.createElement(tagname);\n    if (cls) e.className = cls;\n    for (var i = 2; i < arguments.length; ++i) {\n      var elt = arguments[i];\n      if (typeof elt == \"string\") elt = document.createTextNode(elt);\n      e.appendChild(elt);\n    }\n    return e;\n  }\n\n  function dialog(cm, text, f) {\n    if (cm.openDialog)\n      cm.openDialog(text + \": <input type=text>\", f);\n    else\n      f(prompt(text, \"\"));\n  }\n\n  // Tooltips\n\n  function tempTooltip(cm, content) {\n    if (cm.state.ternTooltip) remove(cm.state.ternTooltip);\n    var where = cm.cursorCoords();\n    var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content);\n    function maybeClear() {\n      old = true;\n      if (!mouseOnTip) clear();\n    }\n    function clear() {\n      cm.state.ternTooltip = null;\n      if (!tip.parentNode) return;\n      cm.off(\"cursorActivity\", clear);\n      cm.off('blur', clear);\n      cm.off('scroll', clear);\n      fadeOut(tip);\n    }\n    var mouseOnTip = false, old = false;\n    CodeMirror.on(tip, \"mousemove\", function() { mouseOnTip = true; });\n    CodeMirror.on(tip, \"mouseout\", function(e) {\n      if (!CodeMirror.contains(tip, e.relatedTarget || e.toElement)) {\n        if (old) clear();\n        else mouseOnTip = false;\n      }\n    });\n    setTimeout(maybeClear, 1700);\n    cm.on(\"cursorActivity\", clear);\n    cm.on('blur', clear);\n    cm.on('scroll', clear);\n  }\n\n  function makeTooltip(x, y, content) {\n    var node = elt(\"div\", cls + \"tooltip\", content);\n    node.style.left = x + \"px\";\n    node.style.top = y + \"px\";\n    document.body.appendChild(node);\n    return node;\n  }\n\n  function remove(node) {\n    var p = node && node.parentNode;\n    if (p) p.removeChild(node);\n  }\n\n  function fadeOut(tooltip) {\n    tooltip.style.opacity = \"0\";\n    setTimeout(function() { remove(tooltip); }, 1100);\n  }\n\n  function showError(ts, cm, msg) {\n    if (ts.options.showError)\n      ts.options.showError(cm, msg);\n    else\n      tempTooltip(cm, String(msg));\n  }\n\n  function closeArgHints(ts) {\n    if (ts.activeArgHints) { remove(ts.activeArgHints); ts.activeArgHints = null; }\n  }\n\n  function docValue(ts, doc) {\n    var val = doc.doc.getValue();\n    if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);\n    return val;\n  }\n\n  // Worker wrapper\n\n  function WorkerServer(ts) {\n    var worker = ts.worker = new Worker(ts.options.workerScript);\n    worker.postMessage({type: \"init\",\n                        defs: ts.options.defs,\n                        plugins: ts.options.plugins,\n                        scripts: ts.options.workerDeps});\n    var msgId = 0, pending = {};\n\n    function send(data, c) {\n      if (c) {\n        data.id = ++msgId;\n        pending[msgId] = c;\n      }\n      worker.postMessage(data);\n    }\n    worker.onmessage = function(e) {\n      var data = e.data;\n      if (data.type == \"getFile\") {\n        getFile(ts, data.name, function(err, text) {\n          send({type: \"getFile\", err: String(err), text: text, id: data.id});\n        });\n      } else if (data.type == \"debug\") {\n        window.console.log(data.message);\n      } else if (data.id && pending[data.id]) {\n        pending[data.id](data.err, data.body);\n        delete pending[data.id];\n      }\n    };\n    worker.onerror = function(e) {\n      for (var id in pending) pending[id](e);\n      pending = {};\n    };\n\n    this.addFile = function(name, text) { send({type: \"add\", name: name, text: text}); };\n    this.delFile = function(name) { send({type: \"del\", name: name}); };\n    this.request = function(body, c) { send({type: \"req\", body: body}, c); };\n  }\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/tern/worker.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// declare global: tern, server\n\nvar server;\n\nthis.onmessage = function(e) {\n  var data = e.data;\n  switch (data.type) {\n  case \"init\": return startServer(data.defs, data.plugins, data.scripts);\n  case \"add\": return server.addFile(data.name, data.text);\n  case \"del\": return server.delFile(data.name);\n  case \"req\": return server.request(data.body, function(err, reqData) {\n    postMessage({id: data.id, body: reqData, err: err && String(err)});\n  });\n  case \"getFile\":\n    var c = pending[data.id];\n    delete pending[data.id];\n    return c(data.err, data.text);\n  default: throw new Error(\"Unknown message type: \" + data.type);\n  }\n};\n\nvar nextId = 0, pending = {};\nfunction getFile(file, c) {\n  postMessage({type: \"getFile\", name: file, id: ++nextId});\n  pending[nextId] = c;\n}\n\nfunction startServer(defs, plugins, scripts) {\n  if (scripts) importScripts.apply(null, scripts);\n\n  server = new tern.Server({\n    getFile: getFile,\n    async: true,\n    defs: defs,\n    plugins: plugins\n  });\n}\n\nvar console = {\n  log: function(v) { postMessage({type: \"debug\", message: v}); }\n};\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/addon/wrap/hardwrap.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function findParagraph(cm, pos, options) {\n    var startRE = options.paragraphStart || cm.getHelper(pos, \"paragraphStart\");\n    for (var start = pos.line, first = cm.firstLine(); start > first; --start) {\n      var line = cm.getLine(start);\n      if (startRE && startRE.test(line)) break;\n      if (!/\\S/.test(line)) { ++start; break; }\n    }\n    var endRE = options.paragraphEnd || cm.getHelper(pos, \"paragraphEnd\");\n    for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) {\n      var line = cm.getLine(end);\n      if (endRE && endRE.test(line)) { ++end; break; }\n      if (!/\\S/.test(line)) break;\n    }\n    return {from: start, to: end};\n  }\n\n  function findBreakPoint(text, column, wrapOn, killTrailingSpace) {\n    for (var at = column; at > 0; --at)\n      if (wrapOn.test(text.slice(at - 1, at + 1))) break;\n    if (at == 0) at = column;\n    var endOfText = at;\n    if (killTrailingSpace)\n      while (text.charAt(endOfText - 1) == \" \") --endOfText;\n    return {from: endOfText, to: at};\n  }\n\n  function wrapRange(cm, from, to, options) {\n    from = cm.clipPos(from); to = cm.clipPos(to);\n    var column = options.column || 80;\n    var wrapOn = options.wrapOn || /\\s\\S|-[^\\.\\d]/;\n    var killTrailing = options.killTrailingSpace !== false;\n    var changes = [], curLine = \"\", curNo = from.line;\n    var lines = cm.getRange(from, to, false);\n    if (!lines.length) return null;\n    var leadingSpace = lines[0].match(/^[ \\t]*/)[0];\n\n    for (var i = 0; i < lines.length; ++i) {\n      var text = lines[i], oldLen = curLine.length, spaceInserted = 0;\n      if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) {\n        curLine += \" \";\n        spaceInserted = 1;\n      }\n      var spaceTrimmed = \"\";\n      if (i) {\n        spaceTrimmed = text.match(/^\\s*/)[0];\n        text = text.slice(spaceTrimmed.length);\n      }\n      curLine += text;\n      if (i) {\n        var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed &&\n          findBreakPoint(curLine, column, wrapOn, killTrailing);\n        // If this isn't broken, or is broken at a different point, remove old break\n        if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) {\n          changes.push({text: [spaceInserted ? \" \" : \"\"],\n                        from: Pos(curNo, oldLen),\n                        to: Pos(curNo + 1, spaceTrimmed.length)});\n        } else {\n          curLine = leadingSpace + text;\n          ++curNo;\n        }\n      }\n      while (curLine.length > column) {\n        var bp = findBreakPoint(curLine, column, wrapOn, killTrailing);\n        changes.push({text: [\"\", leadingSpace],\n                      from: Pos(curNo, bp.from),\n                      to: Pos(curNo, bp.to)});\n        curLine = leadingSpace + curLine.slice(bp.to);\n        ++curNo;\n      }\n    }\n    if (changes.length) cm.operation(function() {\n      for (var i = 0; i < changes.length; ++i) {\n        var change = changes[i];\n        cm.replaceRange(change.text, change.from, change.to);\n      }\n    });\n    return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null;\n  }\n\n  CodeMirror.defineExtension(\"wrapParagraph\", function(pos, options) {\n    options = options || {};\n    if (!pos) pos = this.getCursor();\n    var para = findParagraph(this, pos, options);\n    return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options);\n  });\n\n  CodeMirror.commands.wrapLines = function(cm) {\n    cm.operation(function() {\n      var ranges = cm.listSelections(), at = cm.lastLine() + 1;\n      for (var i = ranges.length - 1; i >= 0; i--) {\n        var range = ranges[i], span;\n        if (range.empty()) {\n          var para = findParagraph(cm, range.head, {});\n          span = {from: Pos(para.from, 0), to: Pos(para.to - 1)};\n        } else {\n          span = {from: range.from(), to: range.to()};\n        }\n        if (span.to.line >= at) continue;\n        at = span.from.line;\n        wrapRange(cm, span.from, span.to, {});\n      }\n    });\n  };\n\n  CodeMirror.defineExtension(\"wrapRange\", function(from, to, options) {\n    return wrapRange(this, from, to, options || {});\n  });\n\n  CodeMirror.defineExtension(\"wrapParagraphsInRange\", function(from, to, options) {\n    options = options || {};\n    var cm = this, paras = [];\n    for (var line = from.line; line <= to.line;) {\n      var para = findParagraph(cm, Pos(line, 0), options);\n      paras.push(para);\n      line = para.to;\n    }\n    var madeChange = false;\n    if (paras.length) cm.operation(function() {\n      for (var i = paras.length - 1; i >= 0; --i)\n        madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options);\n    });\n    return madeChange;\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/bower.json",
    "content": "{\n  \"name\": \"codemirror\",\n  \"version\":\"5.0.0\",\n  \"main\": [\"lib/codemirror.js\", \"lib/codemirror.css\"],\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"components\",\n    \"bin\",\n    \"demo\",\n    \"doc\",\n    \"test\",\n    \"index.html\",\n    \"package.json\"\n  ]\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/lib/codemirror.css",
    "content": "/*!\n// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// This is CodeMirror (http://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n*/\n\n/* BASICS */\n\n.CodeMirror {\n  /* Set height, width, borders, and global font properties here */\n  font-family: monospace;\n  height: 300px;\n  color: black;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n  padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre {\n  padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n  border-right: 1px solid #ddd;\n  background-color: #f7f7f7;\n  white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n  padding: 0 3px 0 5px;\n  min-width: 20px;\n  text-align: right;\n  color: #999;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror div.CodeMirror-cursor {\n  border-left: 1px solid black;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n  border-left: 1px solid silver;\n}\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {\n  width: auto;\n  border: 0;\n  background: #7e7;\n}\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {\n  z-index: 1;\n}\n\n.cm-animate-fat-cursor {\n  width: auto;\n  border: 0;\n  -webkit-animation: blink 1.06s steps(1) infinite;\n  -moz-animation: blink 1.06s steps(1) infinite;\n  animation: blink 1.06s steps(1) infinite;\n}\n@-moz-keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n@-webkit-keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n@keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\ndiv.CodeMirror-overwrite div.CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-ruler {\n  border-left: 1px solid #ccc;\n  position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3 {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n   the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n  position: relative;\n  overflow: hidden;\n  background: white;\n}\n\n.CodeMirror-scroll {\n  overflow: scroll !important; /* Things will break if this is overridden */\n  /* 30px is the magic margin used to hide the element's real scrollbars */\n  /* See overflow: hidden in .CodeMirror */\n  margin-bottom: -30px; margin-right: -30px;\n  padding-bottom: 30px;\n  height: 100%;\n  outline: none; /* Prevent dragging from highlighting the element */\n  position: relative;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n.CodeMirror-sizer {\n  position: relative;\n  border-right: 30px solid transparent;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n   before actuall scrolling happens, thus preventing shaking and\n   flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  position: absolute;\n  z-index: 6;\n  display: none;\n}\n.CodeMirror-vscrollbar {\n  right: 0; top: 0;\n  overflow-x: hidden;\n  overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n  bottom: 0; left: 0;\n  overflow-y: hidden;\n  overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n  right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n  left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n  position: absolute; left: 0; top: 0;\n  z-index: 3;\n}\n.CodeMirror-gutter {\n  white-space: normal;\n  height: 100%;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  display: inline-block;\n  margin-bottom: -30px;\n  /* Hack to make IE7 behave */\n  *zoom:1;\n  *display:inline;\n}\n.CodeMirror-gutter-wrapper {\n  position: absolute;\n  z-index: 4;\n  height: 100%;\n}\n.CodeMirror-gutter-elt {\n  position: absolute;\n  cursor: default;\n  z-index: 4;\n}\n.CodeMirror-gutter-wrapper {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.CodeMirror-lines {\n  cursor: text;\n  min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre {\n  /* Reset some styles that the rest of the page might have set */\n  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n  border-width: 0;\n  background: transparent;\n  font-family: inherit;\n  font-size: inherit;\n  margin: 0;\n  white-space: pre;\n  word-wrap: normal;\n  line-height: inherit;\n  color: inherit;\n  z-index: 2;\n  position: relative;\n  overflow: visible;\n  -webkit-tap-highlight-color: transparent;\n}\n.CodeMirror-wrap pre {\n  word-wrap: break-word;\n  white-space: pre-wrap;\n  word-break: normal;\n}\n\n.CodeMirror-linebackground {\n  position: absolute;\n  left: 0; right: 0; top: 0; bottom: 0;\n  z-index: 0;\n}\n\n.CodeMirror-linewidget {\n  position: relative;\n  z-index: 2;\n  overflow: auto;\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-code {\n  outline: none;\n}\n\n.CodeMirror-measure {\n  position: absolute;\n  width: 100%;\n  height: 0;\n  overflow: hidden;\n  visibility: hidden;\n}\n.CodeMirror-measure pre { position: static; }\n\n.CodeMirror div.CodeMirror-cursor {\n  position: absolute;\n  border-right: none;\n  width: 0;\n}\n\ndiv.CodeMirror-cursors {\n  visibility: hidden;\n  position: relative;\n  z-index: 3;\n}\n.CodeMirror-focused div.CodeMirror-cursors {\n  visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror ::selection { background: #d7d4f0; }\n.CodeMirror ::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n  background: #ffa;\n  background: rgba(255, 255, 0, .4);\n}\n\n/* IE7 hack to prevent it from returning funny offsetTops on the spans */\n.CodeMirror span { *vertical-align: text-bottom; }\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n  /* Hide the cursor when printing */\n  .CodeMirror div.CodeMirror-cursors {\n    visibility: hidden;\n  }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/lib/codemirror.js",
    "content": "// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// This is CodeMirror (http://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    module.exports = mod();\n  else if (typeof define == \"function\" && define.amd) // AMD\n    return define([], mod);\n  else // Plain browser env\n    this.CodeMirror = mod();\n})(function() {\n  \"use strict\";\n\n  // BROWSER SNIFFING\n\n  // Kludges for bugs and behavior differences that can't be feature\n  // detected are enabled based on userAgent etc sniffing.\n\n  var gecko = /gecko\\/\\d/i.test(navigator.userAgent);\n  var ie_upto10 = /MSIE \\d/.test(navigator.userAgent);\n  var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n  var ie = ie_upto10 || ie_11up;\n  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);\n  var webkit = /WebKit\\//.test(navigator.userAgent);\n  var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(navigator.userAgent);\n  var chrome = /Chrome\\//.test(navigator.userAgent);\n  var presto = /Opera\\//.test(navigator.userAgent);\n  var safari = /Apple Computer/.test(navigator.vendor);\n  var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var phantom = /PhantomJS/.test(navigator.userAgent);\n\n  var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent);\n  // This is woefully incomplete. Suggestions for alternative methods welcome.\n  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);\n  var mac = ios || /Mac/.test(navigator.platform);\n  var windows = /win/i.test(navigator.platform);\n\n  var presto_version = presto && navigator.userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n  if (presto_version) presto_version = Number(presto_version[1]);\n  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n  var captureRightClick = gecko || (ie && ie_version >= 9);\n\n  // Optimize some code when these features are not used.\n  var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n  // EDITOR CONSTRUCTOR\n\n  // A CodeMirror instance represents an editor. This is the object\n  // that user code is usually dealing with.\n\n  function CodeMirror(place, options) {\n    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);\n\n    this.options = options = options ? copyObj(options) : {};\n    // Determine effective options based on given values and defaults.\n    copyObj(defaults, options, false);\n    setGuttersForLineNumbers(options);\n\n    var doc = options.value;\n    if (typeof doc == \"string\") doc = new Doc(doc, options.mode);\n    this.doc = doc;\n\n    var input = new CodeMirror.inputStyles[options.inputStyle](this);\n    var display = this.display = new Display(place, doc, input);\n    display.wrapper.CodeMirror = this;\n    updateGutters(this);\n    themeChanged(this);\n    if (options.lineWrapping)\n      this.display.wrapper.className += \" CodeMirror-wrap\";\n    if (options.autofocus && !mobile) display.input.focus();\n    initScrollbars(this);\n\n    this.state = {\n      keyMaps: [],  // stores maps added by addKeyMap\n      overlays: [], // highlighting overlays, as added by addOverlay\n      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info\n      overwrite: false, focused: false,\n      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n      pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll\n      draggingText: false,\n      highlight: new Delayed(), // stores highlight worker timeout\n      keySeq: null  // Unfinished key sequence\n    };\n\n    var cm = this;\n\n    // Override magic textarea content restore that IE sometimes does\n    // on our hidden textarea on reload\n    if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);\n\n    registerEventHandlers(this);\n    ensureGlobalHandlers();\n\n    startOperation(this);\n    this.curOp.forceUpdate = true;\n    attachDoc(this, doc);\n\n    if ((options.autofocus && !mobile) || cm.hasFocus())\n      setTimeout(bind(onFocus, this), 20);\n    else\n      onBlur(this);\n\n    for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))\n      optionHandlers[opt](this, options[opt], Init);\n    maybeUpdateLineNumberWidth(this);\n    if (options.finishInit) options.finishInit(this);\n    for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);\n    endOperation(this);\n    // Suppress optimizelegibility in Webkit, since it breaks text\n    // measuring on line wrapping boundaries.\n    if (webkit && options.lineWrapping &&\n        getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n      display.lineDiv.style.textRendering = \"auto\";\n  }\n\n  // DISPLAY CONSTRUCTOR\n\n  // The display handles the DOM integration, both for input reading\n  // and content drawing. It holds references to DOM nodes and\n  // display-related state.\n\n  function Display(place, doc, input) {\n    var d = this;\n    this.input = input;\n\n    // Covers bottom-right square when both scrollbars are present.\n    d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n    d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Covers bottom of gutter when coverGutterNextToScrollbar is on\n    // and h scrollbar is present.\n    d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n    d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Will contain the actual code, positioned to cover the viewport.\n    d.lineDiv = elt(\"div\", null, \"CodeMirror-code\");\n    // Elements are added to these to represent selection and cursors.\n    d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n    d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n    // A visibility: hidden element used to find the size of things.\n    d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n    // When lines outside of the viewport are measured, they are drawn in this.\n    d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n    // Wraps everything that needs to exist inside the vertically-padded coordinate system\n    d.lineSpace = elt(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n                      null, \"position: relative; outline: none\");\n    // Moved around its parent to cover visible view.\n    d.mover = elt(\"div\", [elt(\"div\", [d.lineSpace], \"CodeMirror-lines\")], null, \"position: relative\");\n    // Set to the height of the document, allowing scrolling.\n    d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n    d.sizerWidth = null;\n    // Behavior of elts with overflow: auto and padding is\n    // inconsistent across browsers. This is used to ensure the\n    // scrollable area is big enough.\n    d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n    // Will contain the gutters, if any.\n    d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n    d.lineGutter = null;\n    // Actual scrollable element.\n    d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n    d.scroller.setAttribute(\"tabIndex\", \"-1\");\n    // The element in which the editor lives.\n    d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n    if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;\n\n    if (place) {\n      if (place.appendChild) place.appendChild(d.wrapper);\n      else place(d.wrapper);\n    }\n\n    // Current rendered range (may be bigger than the view window).\n    d.viewFrom = d.viewTo = doc.first;\n    d.reportedViewFrom = d.reportedViewTo = doc.first;\n    // Information about the rendered lines.\n    d.view = [];\n    d.renderedView = null;\n    // Holds info about a single rendered line when it was rendered\n    // for measurement, while not in view.\n    d.externalMeasured = null;\n    // Empty space (in pixels) above the view\n    d.viewOffset = 0;\n    d.lastWrapHeight = d.lastWrapWidth = 0;\n    d.updateLineNumbers = null;\n\n    d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n    d.scrollbarsClipped = false;\n\n    // Used to only resize the line number gutter when necessary (when\n    // the amount of lines crosses a boundary that makes its width change)\n    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n    // Set to true when a non-horizontal-scrolling line widget is\n    // added. As an optimization, line widget aligning is skipped when\n    // this is false.\n    d.alignWidgets = false;\n\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n    // Tracks the maximum line length so that the horizontal scrollbar\n    // can be kept static when scrolling.\n    d.maxLine = null;\n    d.maxLineLength = 0;\n    d.maxLineChanged = false;\n\n    // Used for measuring wheel scrolling granularity\n    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n    // True when shift is held down.\n    d.shift = false;\n\n    // Used to track whether anything happened since the context menu\n    // was opened.\n    d.selForContextMenu = null;\n\n    d.activeTouch = null;\n\n    input.init(d);\n  }\n\n  // STATE UPDATES\n\n  // Used to get the editor into a consistent state again when options change.\n\n  function loadMode(cm) {\n    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);\n    resetModeState(cm);\n  }\n\n  function resetModeState(cm) {\n    cm.doc.iter(function(line) {\n      if (line.stateAfter) line.stateAfter = null;\n      if (line.styles) line.styles = null;\n    });\n    cm.doc.frontier = cm.doc.first;\n    startWorker(cm, 100);\n    cm.state.modeGen++;\n    if (cm.curOp) regChange(cm);\n  }\n\n  function wrappingChanged(cm) {\n    if (cm.options.lineWrapping) {\n      addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      cm.display.sizer.style.minWidth = \"\";\n      cm.display.sizerWidth = null;\n    } else {\n      rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      findMaxLine(cm);\n    }\n    estimateLineHeights(cm);\n    regChange(cm);\n    clearCaches(cm);\n    setTimeout(function(){updateScrollbars(cm);}, 100);\n  }\n\n  // Returns a function that estimates the height of a line, to use as\n  // first approximation until the line becomes visible (and is thus\n  // properly measurable).\n  function estimateHeight(cm) {\n    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n    return function(line) {\n      if (lineIsHidden(cm.doc, line)) return 0;\n\n      var widgetsHeight = 0;\n      if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {\n        if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;\n      }\n\n      if (wrapping)\n        return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;\n      else\n        return widgetsHeight + th;\n    };\n  }\n\n  function estimateLineHeights(cm) {\n    var doc = cm.doc, est = estimateHeight(cm);\n    doc.iter(function(line) {\n      var estHeight = est(line);\n      if (estHeight != line.height) updateLineHeight(line, estHeight);\n    });\n  }\n\n  function themeChanged(cm) {\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n      cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n    clearCaches(cm);\n  }\n\n  function guttersChanged(cm) {\n    updateGutters(cm);\n    regChange(cm);\n    setTimeout(function(){alignHorizontally(cm);}, 20);\n  }\n\n  // Rebuild the gutter elements, ensure the margin to the left of the\n  // code matches their width.\n  function updateGutters(cm) {\n    var gutters = cm.display.gutters, specs = cm.options.gutters;\n    removeChildren(gutters);\n    for (var i = 0; i < specs.length; ++i) {\n      var gutterClass = specs[i];\n      var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + gutterClass));\n      if (gutterClass == \"CodeMirror-linenumbers\") {\n        cm.display.lineGutter = gElt;\n        gElt.style.width = (cm.display.lineNumWidth || 1) + \"px\";\n      }\n    }\n    gutters.style.display = i ? \"\" : \"none\";\n    updateGutterSpace(cm);\n  }\n\n  function updateGutterSpace(cm) {\n    var width = cm.display.gutters.offsetWidth;\n    cm.display.sizer.style.marginLeft = width + \"px\";\n  }\n\n  // Compute the character length of a line, taking into account\n  // collapsed ranges (see markText) that might hide parts, and join\n  // other lines onto it.\n  function lineLength(line) {\n    if (line.height == 0) return 0;\n    var len = line.text.length, merged, cur = line;\n    while (merged = collapsedSpanAtStart(cur)) {\n      var found = merged.find(0, true);\n      cur = found.from.line;\n      len += found.from.ch - found.to.ch;\n    }\n    cur = line;\n    while (merged = collapsedSpanAtEnd(cur)) {\n      var found = merged.find(0, true);\n      len -= cur.text.length - found.from.ch;\n      cur = found.to.line;\n      len += cur.text.length - found.to.ch;\n    }\n    return len;\n  }\n\n  // Find the longest line in the document.\n  function findMaxLine(cm) {\n    var d = cm.display, doc = cm.doc;\n    d.maxLine = getLine(doc, doc.first);\n    d.maxLineLength = lineLength(d.maxLine);\n    d.maxLineChanged = true;\n    doc.iter(function(line) {\n      var len = lineLength(line);\n      if (len > d.maxLineLength) {\n        d.maxLineLength = len;\n        d.maxLine = line;\n      }\n    });\n  }\n\n  // Make sure the gutters options contains the element\n  // \"CodeMirror-linenumbers\" when the lineNumbers option is true.\n  function setGuttersForLineNumbers(options) {\n    var found = indexOf(options.gutters, \"CodeMirror-linenumbers\");\n    if (found == -1 && options.lineNumbers) {\n      options.gutters = options.gutters.concat([\"CodeMirror-linenumbers\"]);\n    } else if (found > -1 && !options.lineNumbers) {\n      options.gutters = options.gutters.slice(0);\n      options.gutters.splice(found, 1);\n    }\n  }\n\n  // SCROLLBARS\n\n  // Prepare DOM reads needed to update the scrollbars. Done in one\n  // shot to minimize update/measure roundtrips.\n  function measureForScrollbars(cm) {\n    var d = cm.display, gutterW = d.gutters.offsetWidth;\n    var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n    return {\n      clientHeight: d.scroller.clientHeight,\n      viewHeight: d.wrapper.clientHeight,\n      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n      viewWidth: d.wrapper.clientWidth,\n      barLeft: cm.options.fixedGutter ? gutterW : 0,\n      docHeight: docH,\n      scrollHeight: docH + scrollGap(cm) + d.barHeight,\n      nativeBarWidth: d.nativeBarWidth,\n      gutterWidth: gutterW\n    };\n  }\n\n  function NativeScrollbars(place, scroll, cm) {\n    this.cm = cm;\n    var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n    var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n    place(vert); place(horiz);\n\n    on(vert, \"scroll\", function() {\n      if (vert.clientHeight) scroll(vert.scrollTop, \"vertical\");\n    });\n    on(horiz, \"scroll\", function() {\n      if (horiz.clientWidth) scroll(horiz.scrollLeft, \"horizontal\");\n    });\n\n    this.checkedOverlay = false;\n    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n    if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\";\n  }\n\n  NativeScrollbars.prototype = copyObj({\n    update: function(measure) {\n      var needsH = measure.scrollWidth > measure.clientWidth + 1;\n      var needsV = measure.scrollHeight > measure.clientHeight + 1;\n      var sWidth = measure.nativeBarWidth;\n\n      if (needsV) {\n        this.vert.style.display = \"block\";\n        this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n        var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n        // A bug in IE8 can cause this value to be negative, so guard it.\n        this.vert.firstChild.style.height =\n          Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n      } else {\n        this.vert.style.display = \"\";\n        this.vert.firstChild.style.height = \"0\";\n      }\n\n      if (needsH) {\n        this.horiz.style.display = \"block\";\n        this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n        this.horiz.style.left = measure.barLeft + \"px\";\n        var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n        this.horiz.firstChild.style.width =\n          (measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n      } else {\n        this.horiz.style.display = \"\";\n        this.horiz.firstChild.style.width = \"0\";\n      }\n\n      if (!this.checkedOverlay && measure.clientHeight > 0) {\n        if (sWidth == 0) this.overlayHack();\n        this.checkedOverlay = true;\n      }\n\n      return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};\n    },\n    setScrollLeft: function(pos) {\n      if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;\n    },\n    setScrollTop: function(pos) {\n      if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;\n    },\n    overlayHack: function() {\n      var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n      this.horiz.style.minHeight = this.vert.style.minWidth = w;\n      var self = this;\n      var barMouseDown = function(e) {\n        if (e_target(e) != self.vert && e_target(e) != self.horiz)\n          operation(self.cm, onMouseDown)(e);\n      };\n      on(this.vert, \"mousedown\", barMouseDown);\n      on(this.horiz, \"mousedown\", barMouseDown);\n    },\n    clear: function() {\n      var parent = this.horiz.parentNode;\n      parent.removeChild(this.horiz);\n      parent.removeChild(this.vert);\n    }\n  }, NativeScrollbars.prototype);\n\n  function NullScrollbars() {}\n\n  NullScrollbars.prototype = copyObj({\n    update: function() { return {bottom: 0, right: 0}; },\n    setScrollLeft: function() {},\n    setScrollTop: function() {},\n    clear: function() {}\n  }, NullScrollbars.prototype);\n\n  CodeMirror.scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n  function initScrollbars(cm) {\n    if (cm.display.scrollbars) {\n      cm.display.scrollbars.clear();\n      if (cm.display.scrollbars.addClass)\n        rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);\n    }\n\n    cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {\n      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n      // Prevent clicks in the scrollbars from killing focus\n      on(node, \"mousedown\", function() {\n        if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);\n      });\n      node.setAttribute(\"cm-not-content\", \"true\");\n    }, function(pos, axis) {\n      if (axis == \"horizontal\") setScrollLeft(cm, pos);\n      else setScrollTop(cm, pos);\n    }, cm);\n    if (cm.display.scrollbars.addClass)\n      addClass(cm.display.wrapper, cm.display.scrollbars.addClass);\n  }\n\n  function updateScrollbars(cm, measure) {\n    if (!measure) measure = measureForScrollbars(cm);\n    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n    updateScrollbarsInner(cm, measure);\n    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n        updateHeightsInViewport(cm);\n      updateScrollbarsInner(cm, measureForScrollbars(cm));\n      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n    }\n  }\n\n  // Re-synchronize the fake scrollbars with the actual size of the\n  // content.\n  function updateScrollbarsInner(cm, measure) {\n    var d = cm.display;\n    var sizes = d.scrollbars.update(measure);\n\n    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n\n    if (sizes.right && sizes.bottom) {\n      d.scrollbarFiller.style.display = \"block\";\n      d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n      d.scrollbarFiller.style.width = sizes.right + \"px\";\n    } else d.scrollbarFiller.style.display = \"\";\n    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n      d.gutterFiller.style.display = \"block\";\n      d.gutterFiller.style.height = sizes.bottom + \"px\";\n      d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n    } else d.gutterFiller.style.display = \"\";\n  }\n\n  // Compute the lines that are visible in a given viewport (defaults\n  // the the current scroll position). viewport may contain top,\n  // height, and ensure (see op.scrollToPos) properties.\n  function visibleLines(display, doc, viewport) {\n    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n    top = Math.floor(top - paddingTop(display));\n    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n    // forces those lines into the viewport (if possible).\n    if (viewport && viewport.ensure) {\n      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n      if (ensureFrom < from) {\n        from = ensureFrom;\n        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n        to = ensureTo;\n      }\n    }\n    return {from: from, to: Math.max(to, from + 1)};\n  }\n\n  // LINE NUMBERS\n\n  // Re-align line numbers and gutter marks to compensate for\n  // horizontal scrolling.\n  function alignHorizontally(cm) {\n    var display = cm.display, view = display.view;\n    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;\n    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n    var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n    for (var i = 0; i < view.length; i++) if (!view[i].hidden) {\n      if (cm.options.fixedGutter && view[i].gutter)\n        view[i].gutter.style.left = left;\n      var align = view[i].alignable;\n      if (align) for (var j = 0; j < align.length; j++)\n        align[j].style.left = left;\n    }\n    if (cm.options.fixedGutter)\n      display.gutters.style.left = (comp + gutterW) + \"px\";\n  }\n\n  // Used to ensure that the line number gutter is still the right\n  // size for the current document size. Returns true when an update\n  // is needed.\n  function maybeUpdateLineNumberWidth(cm) {\n    if (!cm.options.lineNumbers) return false;\n    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n    if (last.length != display.lineNumChars) {\n      var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n                                                 \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n      display.lineGutter.style.width = \"\";\n      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding);\n      display.lineNumWidth = display.lineNumInnerWidth + padding;\n      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n      display.lineGutter.style.width = display.lineNumWidth + \"px\";\n      updateGutterSpace(cm);\n      return true;\n    }\n    return false;\n  }\n\n  function lineNumberFor(options, i) {\n    return String(options.lineNumberFormatter(i + options.firstLineNumber));\n  }\n\n  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n  // but using getBoundingClientRect to get a sub-pixel-accurate\n  // result.\n  function compensateForHScroll(display) {\n    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;\n  }\n\n  // DISPLAY DRAWING\n\n  function DisplayUpdate(cm, viewport, force) {\n    var display = cm.display;\n\n    this.viewport = viewport;\n    // Store some values that we'll need later (but don't want to force a relayout for)\n    this.visible = visibleLines(display, cm.doc, viewport);\n    this.editorIsHidden = !display.wrapper.offsetWidth;\n    this.wrapperHeight = display.wrapper.clientHeight;\n    this.wrapperWidth = display.wrapper.clientWidth;\n    this.oldDisplayWidth = displayWidth(cm);\n    this.force = force;\n    this.dims = getDimensions(cm);\n    this.events = [];\n  }\n\n  DisplayUpdate.prototype.signal = function(emitter, type) {\n    if (hasHandler(emitter, type))\n      this.events.push(arguments);\n  };\n  DisplayUpdate.prototype.finish = function() {\n    for (var i = 0; i < this.events.length; i++)\n      signal.apply(null, this.events[i]);\n  };\n\n  function maybeClipScrollbars(cm) {\n    var display = cm.display;\n    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n      display.heightForcer.style.height = scrollGap(cm) + \"px\";\n      display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n      display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n      display.scrollbarsClipped = true;\n    }\n  }\n\n  // Does the actual updating of the line display. Bails out\n  // (returning false) when there is nothing to be done and forced is\n  // false.\n  function updateDisplayIfNeeded(cm, update) {\n    var display = cm.display, doc = cm.doc;\n\n    if (update.editorIsHidden) {\n      resetView(cm);\n      return false;\n    }\n\n    // Bail out if the visible area is already rendered and nothing changed.\n    if (!update.force &&\n        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n        display.renderedView == display.view && countDirtyView(cm) == 0)\n      return false;\n\n    if (maybeUpdateLineNumberWidth(cm)) {\n      resetView(cm);\n      update.dims = getDimensions(cm);\n    }\n\n    // Compute a suitable new viewport (from & to)\n    var end = doc.first + doc.size;\n    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n    if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);\n    if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);\n    if (sawCollapsedSpans) {\n      from = visualLineNo(cm.doc, from);\n      to = visualLineEndNo(cm.doc, to);\n    }\n\n    var different = from != display.viewFrom || to != display.viewTo ||\n      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n    adjustView(cm, from, to);\n\n    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n    // Position the mover div to align with the current scroll position\n    cm.display.mover.style.top = display.viewOffset + \"px\";\n\n    var toUpdate = countDirtyView(cm);\n    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n      return false;\n\n    // For big changes, we hide the enclosing element during the\n    // update, since that speeds up the operations on most browsers.\n    var focused = activeElt();\n    if (toUpdate > 4) display.lineDiv.style.display = \"none\";\n    patchDisplay(cm, display.updateLineNumbers, update.dims);\n    if (toUpdate > 4) display.lineDiv.style.display = \"\";\n    display.renderedView = display.view;\n    // There might have been a widget with a focused element that got\n    // hidden or updated, if so re-focus it.\n    if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();\n\n    // Prevent selection and cursors from interfering with the scroll\n    // width and height.\n    removeChildren(display.cursorDiv);\n    removeChildren(display.selectionDiv);\n    display.gutters.style.height = 0;\n\n    if (different) {\n      display.lastWrapHeight = update.wrapperHeight;\n      display.lastWrapWidth = update.wrapperWidth;\n      startWorker(cm, 400);\n    }\n\n    display.updateLineNumbers = null;\n\n    return true;\n  }\n\n  function postUpdateDisplay(cm, update) {\n    var force = update.force, viewport = update.viewport;\n    for (var first = true;; first = false) {\n      if (first && cm.options.lineWrapping && update.oldDisplayWidth != displayWidth(cm)) {\n        force = true;\n      } else {\n        force = false;\n        // Clip forced viewport to actual scrollable area.\n        if (viewport && viewport.top != null)\n          viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};\n        // Updated line heights might result in the drawn area not\n        // actually covering the viewport. Keep looping until it does.\n        update.visible = visibleLines(cm.display, cm.doc, viewport);\n        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n          break;\n      }\n      if (!updateDisplayIfNeeded(cm, update)) break;\n      updateHeightsInViewport(cm);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      setDocumentHeight(cm, barMeasure);\n      updateScrollbars(cm, barMeasure);\n    }\n\n    update.signal(cm, \"update\", cm);\n    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n      update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n    }\n  }\n\n  function updateDisplaySimple(cm, viewport) {\n    var update = new DisplayUpdate(cm, viewport);\n    if (updateDisplayIfNeeded(cm, update)) {\n      updateHeightsInViewport(cm);\n      postUpdateDisplay(cm, update);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      setDocumentHeight(cm, barMeasure);\n      updateScrollbars(cm, barMeasure);\n      update.finish();\n    }\n  }\n\n  function setDocumentHeight(cm, measure) {\n    cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n    var total = measure.docHeight + cm.display.barHeight;\n    cm.display.heightForcer.style.top = total + \"px\";\n    cm.display.gutters.style.height = Math.max(total + scrollGap(cm), measure.clientHeight) + \"px\";\n  }\n\n  // Read the actual heights of the rendered lines, and update their\n  // stored heights to match.\n  function updateHeightsInViewport(cm) {\n    var display = cm.display;\n    var prevBottom = display.lineDiv.offsetTop;\n    for (var i = 0; i < display.view.length; i++) {\n      var cur = display.view[i], height;\n      if (cur.hidden) continue;\n      if (ie && ie_version < 8) {\n        var bot = cur.node.offsetTop + cur.node.offsetHeight;\n        height = bot - prevBottom;\n        prevBottom = bot;\n      } else {\n        var box = cur.node.getBoundingClientRect();\n        height = box.bottom - box.top;\n      }\n      var diff = cur.line.height - height;\n      if (height < 2) height = textHeight(display);\n      if (diff > .001 || diff < -.001) {\n        updateLineHeight(cur.line, height);\n        updateWidgetHeight(cur.line);\n        if (cur.rest) for (var j = 0; j < cur.rest.length; j++)\n          updateWidgetHeight(cur.rest[j]);\n      }\n    }\n  }\n\n  // Read and store the height of line widgets associated with the\n  // given line.\n  function updateWidgetHeight(line) {\n    if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)\n      line.widgets[i].height = line.widgets[i].node.offsetHeight;\n  }\n\n  // Do a bulk-read of the DOM positions and sizes needed to draw the\n  // view, so that we don't interleave reading and writing to the DOM.\n  function getDimensions(cm) {\n    var d = cm.display, left = {}, width = {};\n    var gutterLeft = d.gutters.clientLeft;\n    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n      left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;\n      width[cm.options.gutters[i]] = n.clientWidth;\n    }\n    return {fixedPos: compensateForHScroll(d),\n            gutterTotalWidth: d.gutters.offsetWidth,\n            gutterLeft: left,\n            gutterWidth: width,\n            wrapperWidth: d.wrapper.clientWidth};\n  }\n\n  // Sync the actual display DOM structure with display.view, removing\n  // nodes for lines that are no longer in view, and creating the ones\n  // that are not there yet, and updating the ones that are out of\n  // date.\n  function patchDisplay(cm, updateNumbersFrom, dims) {\n    var display = cm.display, lineNumbers = cm.options.lineNumbers;\n    var container = display.lineDiv, cur = container.firstChild;\n\n    function rm(node) {\n      var next = node.nextSibling;\n      // Works around a throw-scroll bug in OS X Webkit\n      if (webkit && mac && cm.display.currentWheelTarget == node)\n        node.style.display = \"none\";\n      else\n        node.parentNode.removeChild(node);\n      return next;\n    }\n\n    var view = display.view, lineN = display.viewFrom;\n    // Loop over the elements in the view, syncing cur (the DOM nodes\n    // in display.lineDiv) with the view as we go.\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (lineView.hidden) {\n      } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n        var node = buildLineElement(cm, lineView, lineN, dims);\n        container.insertBefore(node, cur);\n      } else { // Already drawn\n        while (cur != lineView.node) cur = rm(cur);\n        var updateNumber = lineNumbers && updateNumbersFrom != null &&\n          updateNumbersFrom <= lineN && lineView.lineNumber;\n        if (lineView.changes) {\n          if (indexOf(lineView.changes, \"gutter\") > -1) updateNumber = false;\n          updateLineForChanges(cm, lineView, lineN, dims);\n        }\n        if (updateNumber) {\n          removeChildren(lineView.lineNumber);\n          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n        }\n        cur = lineView.node.nextSibling;\n      }\n      lineN += lineView.size;\n    }\n    while (cur) cur = rm(cur);\n  }\n\n  // When an aspect of a line changes, a string is added to\n  // lineView.changes. This updates the relevant part of the line's\n  // DOM structure.\n  function updateLineForChanges(cm, lineView, lineN, dims) {\n    for (var j = 0; j < lineView.changes.length; j++) {\n      var type = lineView.changes[j];\n      if (type == \"text\") updateLineText(cm, lineView);\n      else if (type == \"gutter\") updateLineGutter(cm, lineView, lineN, dims);\n      else if (type == \"class\") updateLineClasses(lineView);\n      else if (type == \"widget\") updateLineWidgets(cm, lineView, dims);\n    }\n    lineView.changes = null;\n  }\n\n  // Lines with gutter elements, widgets or a background class need to\n  // be wrapped, and have the extra elements added to the wrapper div\n  function ensureLineWrapped(lineView) {\n    if (lineView.node == lineView.text) {\n      lineView.node = elt(\"div\", null, null, \"position: relative\");\n      if (lineView.text.parentNode)\n        lineView.text.parentNode.replaceChild(lineView.node, lineView.text);\n      lineView.node.appendChild(lineView.text);\n      if (ie && ie_version < 8) lineView.node.style.zIndex = 2;\n    }\n    return lineView.node;\n  }\n\n  function updateLineBackground(lineView) {\n    var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n    if (cls) cls += \" CodeMirror-linebackground\";\n    if (lineView.background) {\n      if (cls) lineView.background.className = cls;\n      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n    } else if (cls) {\n      var wrap = ensureLineWrapped(lineView);\n      lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n    }\n  }\n\n  // Wrapper around buildLineContent which will reuse the structure\n  // in display.externalMeasured when possible.\n  function getLineContent(cm, lineView) {\n    var ext = cm.display.externalMeasured;\n    if (ext && ext.line == lineView.line) {\n      cm.display.externalMeasured = null;\n      lineView.measure = ext.measure;\n      return ext.built;\n    }\n    return buildLineContent(cm, lineView);\n  }\n\n  // Redraw the line's text. Interacts with the background and text\n  // classes because the mode may output tokens that influence these\n  // classes.\n  function updateLineText(cm, lineView) {\n    var cls = lineView.text.className;\n    var built = getLineContent(cm, lineView);\n    if (lineView.text == lineView.node) lineView.node = built.pre;\n    lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n    lineView.text = built.pre;\n    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n      lineView.bgClass = built.bgClass;\n      lineView.textClass = built.textClass;\n      updateLineClasses(lineView);\n    } else if (cls) {\n      lineView.text.className = cls;\n    }\n  }\n\n  function updateLineClasses(lineView) {\n    updateLineBackground(lineView);\n    if (lineView.line.wrapClass)\n      ensureLineWrapped(lineView).className = lineView.line.wrapClass;\n    else if (lineView.node != lineView.text)\n      lineView.node.className = \"\";\n    var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n    lineView.text.className = textClass || \"\";\n  }\n\n  function updateLineGutter(cm, lineView, lineN, dims) {\n    if (lineView.gutter) {\n      lineView.node.removeChild(lineView.gutter);\n      lineView.gutter = null;\n    }\n    var markers = lineView.line.gutterMarkers;\n    if (cm.options.lineNumbers || markers) {\n      var wrap = ensureLineWrapped(lineView);\n      var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", \"left: \" +\n                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +\n                                             \"px; width: \" + dims.gutterTotalWidth + \"px\");\n      cm.display.input.setUneditable(gutterWrap);\n      wrap.insertBefore(gutterWrap, lineView.text);\n      if (lineView.line.gutterClass)\n        gutterWrap.className += \" \" + lineView.line.gutterClass;\n      if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n        lineView.lineNumber = gutterWrap.appendChild(\n          elt(\"div\", lineNumberFor(cm.options, lineN),\n              \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n              \"left: \" + dims.gutterLeft[\"CodeMirror-linenumbers\"] + \"px; width: \"\n              + cm.display.lineNumInnerWidth + \"px\"));\n      if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {\n        var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];\n        if (found)\n          gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\", \"left: \" +\n                                     dims.gutterLeft[id] + \"px; width: \" + dims.gutterWidth[id] + \"px\"));\n      }\n    }\n  }\n\n  function updateLineWidgets(cm, lineView, dims) {\n    if (lineView.alignable) lineView.alignable = null;\n    for (var node = lineView.node.firstChild, next; node; node = next) {\n      var next = node.nextSibling;\n      if (node.className == \"CodeMirror-linewidget\")\n        lineView.node.removeChild(node);\n    }\n    insertLineWidgets(cm, lineView, dims);\n  }\n\n  // Build a line's DOM representation from scratch\n  function buildLineElement(cm, lineView, lineN, dims) {\n    var built = getLineContent(cm, lineView);\n    lineView.text = lineView.node = built.pre;\n    if (built.bgClass) lineView.bgClass = built.bgClass;\n    if (built.textClass) lineView.textClass = built.textClass;\n\n    updateLineClasses(lineView);\n    updateLineGutter(cm, lineView, lineN, dims);\n    insertLineWidgets(cm, lineView, dims);\n    return lineView.node;\n  }\n\n  // A lineView may contain multiple logical lines (when merged by\n  // collapsed spans). The widgets for all of them need to be drawn.\n  function insertLineWidgets(cm, lineView, dims) {\n    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n    if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)\n      insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);\n  }\n\n  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n    if (!line.widgets) return;\n    var wrap = ensureLineWrapped(lineView);\n    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n      var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\");\n      if (!widget.handleMouseEvents) node.setAttribute(\"cm-ignore-events\", \"true\");\n      positionLineWidget(widget, node, lineView, dims);\n      cm.display.input.setUneditable(node);\n      if (allowAbove && widget.above)\n        wrap.insertBefore(node, lineView.gutter || lineView.text);\n      else\n        wrap.appendChild(node);\n      signalLater(widget, \"redraw\");\n    }\n  }\n\n  function positionLineWidget(widget, node, lineView, dims) {\n    if (widget.noHScroll) {\n      (lineView.alignable || (lineView.alignable = [])).push(node);\n      var width = dims.wrapperWidth;\n      node.style.left = dims.fixedPos + \"px\";\n      if (!widget.coverGutter) {\n        width -= dims.gutterTotalWidth;\n        node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n      }\n      node.style.width = width + \"px\";\n    }\n    if (widget.coverGutter) {\n      node.style.zIndex = 5;\n      node.style.position = \"relative\";\n      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + \"px\";\n    }\n  }\n\n  // POSITION OBJECT\n\n  // A Pos instance represents a position within the text.\n  var Pos = CodeMirror.Pos = function(line, ch) {\n    if (!(this instanceof Pos)) return new Pos(line, ch);\n    this.line = line; this.ch = ch;\n  };\n\n  // Compare two positions, return 0 if they are the same, a negative\n  // number when a is less, and a positive number otherwise.\n  var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };\n\n  function copyPos(x) {return Pos(x.line, x.ch);}\n  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }\n  function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }\n\n  // INPUT HANDLING\n\n  function ensureFocus(cm) {\n    if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }\n  }\n\n  function isReadOnly(cm) {\n    return cm.options.readOnly || cm.doc.cantEdit;\n  }\n\n  // This will be set to an array of strings when copying, so that,\n  // when pasting, we know what kind of selections the copied text\n  // was made out of.\n  var lastCopied = null;\n\n  function applyTextInput(cm, inserted, deleted, sel) {\n    var doc = cm.doc;\n    cm.display.shift = false;\n    if (!sel) sel = doc.sel;\n\n    var textLines = splitLines(inserted), multiPaste = null;\n    // When pasing N lines into N selections, insert one line per selection\n    if (cm.state.pasteIncoming && sel.ranges.length > 1) {\n      if (lastCopied && lastCopied.join(\"\\n\") == inserted)\n        multiPaste = sel.ranges.length % lastCopied.length == 0 && map(lastCopied, splitLines);\n      else if (textLines.length == sel.ranges.length)\n        multiPaste = map(textLines, function(l) { return [l]; });\n    }\n\n    // Normal behavior is to insert the new text into every selection\n    for (var i = sel.ranges.length - 1; i >= 0; i--) {\n      var range = sel.ranges[i];\n      var from = range.from(), to = range.to();\n      if (range.empty()) {\n        if (deleted && deleted > 0) // Handle deletion\n          from = Pos(from.line, from.ch - deleted);\n        else if (cm.state.overwrite && !cm.state.pasteIncoming) // Handle overwrite\n          to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));\n      }\n      var updateInput = cm.curOp.updateInput;\n      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,\n                         origin: cm.state.pasteIncoming ? \"paste\" : cm.state.cutIncoming ? \"cut\" : \"+input\"};\n      makeChange(cm.doc, changeEvent);\n      signalLater(cm, \"inputRead\", cm, changeEvent);\n      // When an 'electric' character is inserted, immediately trigger a reindent\n      if (inserted && !cm.state.pasteIncoming && cm.options.electricChars &&\n          cm.options.smartIndent && range.head.ch < 100 &&\n          (!i || sel.ranges[i - 1].head.line != range.head.line)) {\n        var mode = cm.getModeAt(range.head);\n        var end = changeEnd(changeEvent);\n        if (mode.electricChars) {\n          for (var j = 0; j < mode.electricChars.length; j++)\n            if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n              indentLine(cm, end.line, \"smart\");\n              break;\n            }\n        } else if (mode.electricInput) {\n          if (mode.electricInput.test(getLine(doc, end.line).text.slice(0, end.ch)))\n            indentLine(cm, end.line, \"smart\");\n        }\n      }\n    }\n    ensureCursorVisible(cm);\n    cm.curOp.updateInput = updateInput;\n    cm.curOp.typing = true;\n    cm.state.pasteIncoming = cm.state.cutIncoming = false;\n  }\n\n  function copyableRanges(cm) {\n    var text = [], ranges = [];\n    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n      var line = cm.doc.sel.ranges[i].head.line;\n      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n      ranges.push(lineRange);\n      text.push(cm.getRange(lineRange.anchor, lineRange.head));\n    }\n    return {text: text, ranges: ranges};\n  }\n\n  function disableBrowserMagic(field) {\n    field.setAttribute(\"autocorrect\", \"off\");\n    field.setAttribute(\"autocapitalize\", \"off\");\n    field.setAttribute(\"spellcheck\", \"false\");\n  }\n\n  // TEXTAREA INPUT STYLE\n\n  function TextareaInput(cm) {\n    this.cm = cm;\n    // See input.poll and input.reset\n    this.prevInput = \"\";\n\n    // Flag that indicates whether we expect input to appear real soon\n    // now (after some event like 'keypress' or 'input') and are\n    // polling intensively.\n    this.pollingFast = false;\n    // Self-resetting timeout for the poller\n    this.polling = new Delayed();\n    // Tracks when input.reset has punted to just putting a short\n    // string into the textarea instead of the full selection.\n    this.inaccurateSelection = false;\n    // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n    this.hasSelection = false;\n  };\n\n  function hiddenTextarea() {\n    var te = elt(\"textarea\", null, null, \"position: absolute; padding: 0; width: 1px; height: 1em; outline: none\");\n    var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n    // The textarea is kept positioned near the cursor to prevent the\n    // fact that it'll be scrolled into view on input from scrolling\n    // our fake cursor out of view. On webkit, when wrap=off, paste is\n    // very slow. So make the area wide instead.\n    if (webkit) te.style.width = \"1000px\";\n    else te.setAttribute(\"wrap\", \"off\");\n    // If border: 0; -- iOS fails to open keyboard (issue #1287)\n    if (ios) te.style.border = \"1px solid black\";\n    disableBrowserMagic(te);\n    return div;\n  }\n\n  TextareaInput.prototype = copyObj({\n    init: function(display) {\n      var input = this, cm = this.cm;\n\n      // Wraps and hides input textarea\n      var div = this.wrapper = hiddenTextarea();\n      // The semihidden textarea that is focused when the editor is\n      // focused, and receives input.\n      var te = this.textarea = div.firstChild;\n      display.wrapper.insertBefore(div, display.wrapper.firstChild);\n\n      // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n      if (ios) te.style.width = \"0px\";\n\n      on(te, \"input\", function() {\n        if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;\n        input.poll();\n      });\n\n      on(te, \"paste\", function() {\n        // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206\n        // Add a char to the end of textarea before paste occur so that\n        // selection doesn't span to the end of textarea.\n        if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) {\n          var start = te.selectionStart, end = te.selectionEnd;\n          te.value += \"$\";\n          // The selection end needs to be set before the start, otherwise there\n          // can be an intermediate non-empty selection between the two, which\n          // can override the middle-click paste buffer on linux and cause the\n          // wrong thing to get pasted.\n          te.selectionEnd = end;\n          te.selectionStart = start;\n          cm.state.fakedLastChar = true;\n        }\n        cm.state.pasteIncoming = true;\n        input.fastPoll();\n      });\n\n      function prepareCopyCut(e) {\n        if (cm.somethingSelected()) {\n          lastCopied = cm.getSelections();\n          if (input.inaccurateSelection) {\n            input.prevInput = \"\";\n            input.inaccurateSelection = false;\n            te.value = lastCopied.join(\"\\n\");\n            selectInput(te);\n          }\n        } else {\n          var ranges = copyableRanges(cm);\n          lastCopied = ranges.text;\n          if (e.type == \"cut\") {\n            cm.setSelections(ranges.ranges, null, sel_dontScroll);\n          } else {\n            input.prevInput = \"\";\n            te.value = ranges.text.join(\"\\n\");\n            selectInput(te);\n          }\n        }\n        if (e.type == \"cut\") cm.state.cutIncoming = true;\n      }\n      on(te, \"cut\", prepareCopyCut);\n      on(te, \"copy\", prepareCopyCut);\n\n      on(display.scroller, \"paste\", function(e) {\n        if (eventInWidget(display, e)) return;\n        cm.state.pasteIncoming = true;\n        input.focus();\n      });\n\n      // Prevent normal selection in the editor (we handle our own)\n      on(display.lineSpace, \"selectstart\", function(e) {\n        if (!eventInWidget(display, e)) e_preventDefault(e);\n      });\n    },\n\n    prepareSelection: function() {\n      // Redraw the selection and/or cursor\n      var cm = this.cm, display = cm.display, doc = cm.doc;\n      var result = prepareSelection(cm);\n\n      // Move the hidden textarea near the cursor to prevent scrolling artifacts\n      if (cm.options.moveInputWithCursor) {\n        var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n        var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n        result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n                                            headPos.top + lineOff.top - wrapOff.top));\n        result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n                                             headPos.left + lineOff.left - wrapOff.left));\n      }\n\n      return result;\n    },\n\n    showSelection: function(drawn) {\n      var cm = this.cm, display = cm.display;\n      removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n      removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n      if (drawn.teTop != null) {\n        this.wrapper.style.top = drawn.teTop + \"px\";\n        this.wrapper.style.left = drawn.teLeft + \"px\";\n      }\n    },\n\n    // Reset the input to correspond to the selection (or to be empty,\n    // when not typing and nothing is selected)\n    reset: function(typing) {\n      if (this.contextMenuPending) return;\n      var minimal, selected, cm = this.cm, doc = cm.doc;\n      if (cm.somethingSelected()) {\n        this.prevInput = \"\";\n        var range = doc.sel.primary();\n        minimal = hasCopyEvent &&\n          (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);\n        var content = minimal ? \"-\" : selected || cm.getSelection();\n        this.textarea.value = content;\n        if (cm.state.focused) selectInput(this.textarea);\n        if (ie && ie_version >= 9) this.hasSelection = content;\n      } else if (!typing) {\n        this.prevInput = this.textarea.value = \"\";\n        if (ie && ie_version >= 9) this.hasSelection = null;\n      }\n      this.inaccurateSelection = minimal;\n    },\n\n    getField: function() { return this.textarea; },\n\n    supportsTouch: function() { return false; },\n\n    focus: function() {\n      if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n        try { this.textarea.focus(); }\n        catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n      }\n    },\n\n    blur: function() { this.textarea.blur(); },\n\n    resetPosition: function() {\n      this.wrapper.style.top = this.wrapper.style.left = 0;\n    },\n\n    receivedFocus: function() { this.slowPoll(); },\n\n    // Poll for input changes, using the normal rate of polling. This\n    // runs as long as the editor is focused.\n    slowPoll: function() {\n      var input = this;\n      if (input.pollingFast) return;\n      input.polling.set(this.cm.options.pollInterval, function() {\n        input.poll();\n        if (input.cm.state.focused) input.slowPoll();\n      });\n    },\n\n    // When an event has just come in that is likely to add or change\n    // something in the input textarea, we poll faster, to ensure that\n    // the change appears on the screen quickly.\n    fastPoll: function() {\n      var missed = false, input = this;\n      input.pollingFast = true;\n      function p() {\n        var changed = input.poll();\n        if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n        else {input.pollingFast = false; input.slowPoll();}\n      }\n      input.polling.set(20, p);\n    },\n\n    // Read input from the textarea, and update the document to match.\n    // When something is selected, it is present in the textarea, and\n    // selected (unless it is huge, in which case a placeholder is\n    // used). When nothing is selected, the cursor sits after previously\n    // seen text (can be empty), which is stored in prevInput (we must\n    // not reset the textarea when typing, because that breaks IME).\n    poll: function() {\n      var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n      // Since this is called a *lot*, try to bail out as cheaply as\n      // possible when it is clear that nothing happened. hasSelection\n      // will be the case when there is a lot of text in the textarea,\n      // in which case reading its value would be expensive.\n      if (!cm.state.focused || (hasSelection(input) && !prevInput) ||\n          isReadOnly(cm) || cm.options.disableInput || cm.state.keySeq)\n        return false;\n      // See paste handler for more on the fakedLastChar kludge\n      if (cm.state.pasteIncoming && cm.state.fakedLastChar) {\n        input.value = input.value.substring(0, input.value.length - 1);\n        cm.state.fakedLastChar = false;\n      }\n      var text = input.value;\n      // If nothing changed, bail.\n      if (text == prevInput && !cm.somethingSelected()) return false;\n      // Work around nonsensical selection resetting in IE9/10, and\n      // inexplicable appearance of private area unicode characters on\n      // some key combos in Mac (#2689).\n      if (ie && ie_version >= 9 && this.hasSelection === text ||\n          mac && /[\\uf700-\\uf7ff]/.test(text)) {\n        cm.display.input.reset();\n        return false;\n      }\n\n      if (text.charCodeAt(0) == 0x200b && cm.doc.sel == cm.display.selForContextMenu && !prevInput)\n        prevInput = \"\\u200b\";\n      // Find the part of the input that is actually new\n      var same = 0, l = Math.min(prevInput.length, text.length);\n      while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;\n\n      var self = this;\n      runInOp(cm, function() {\n        applyTextInput(cm, text.slice(same), prevInput.length - same);\n\n        // Don't leave long text in the textarea, since it makes further polling slow\n        if (text.length > 1000 || text.indexOf(\"\\n\") > -1) input.value = self.prevInput = \"\";\n        else self.prevInput = text;\n      });\n      return true;\n    },\n\n    ensurePolled: function() {\n      if (this.pollingFast && this.poll()) this.pollingFast = false;\n    },\n\n    onKeyPress: function() {\n      if (ie && ie_version >= 9) this.hasSelection = null;\n      this.fastPoll();\n    },\n\n    onContextMenu: function(e) {\n      var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n      var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n      if (!pos || presto) return; // Opera is difficult.\n\n      // Reset the current text selection only if the click is done outside of the selection\n      // and 'resetSelectionOnContextMenu' option is true.\n      var reset = cm.options.resetSelectionOnContextMenu;\n      if (reset && cm.doc.sel.contains(pos) == -1)\n        operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);\n\n      var oldCSS = te.style.cssText;\n      input.wrapper.style.position = \"absolute\";\n      te.style.cssText = \"position: fixed; width: 30px; height: 30px; top: \" + (e.clientY - 5) +\n        \"px; left: \" + (e.clientX - 5) + \"px; z-index: 1000; background: \" +\n        (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") +\n        \"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)\n      display.input.focus();\n      if (webkit) window.scrollTo(null, oldScrollY);\n      display.input.reset();\n      // Adds \"Select all\" to context menu in FF\n      if (!cm.somethingSelected()) te.value = input.prevInput = \" \";\n      input.contextMenuPending = true;\n      display.selForContextMenu = cm.doc.sel;\n      clearTimeout(display.detectingSelectAll);\n\n      // Select-all will be greyed out if there's nothing to select, so\n      // this adds a zero-width space so that we can later check whether\n      // it got selected.\n      function prepareSelectAllHack() {\n        if (te.selectionStart != null) {\n          var selected = cm.somethingSelected();\n          var extval = te.value = \"\\u200b\" + (selected ? te.value : \"\");\n          input.prevInput = selected ? \"\" : \"\\u200b\";\n          te.selectionStart = 1; te.selectionEnd = extval.length;\n          // Re-set this, in case some other handler touched the\n          // selection in the meantime.\n          display.selForContextMenu = cm.doc.sel;\n        }\n      }\n      function rehide() {\n        input.contextMenuPending = false;\n        input.wrapper.style.position = \"relative\";\n        te.style.cssText = oldCSS;\n        if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);\n\n        // Try to detect the user choosing select-all\n        if (te.selectionStart != null) {\n          if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();\n          var i = 0, poll = function() {\n            if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0)\n              operation(cm, commands.selectAll)(cm);\n            else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);\n            else display.input.reset();\n          };\n          display.detectingSelectAll = setTimeout(poll, 200);\n        }\n      }\n\n      if (ie && ie_version >= 9) prepareSelectAllHack();\n      if (captureRightClick) {\n        e_stop(e);\n        var mouseup = function() {\n          off(window, \"mouseup\", mouseup);\n          setTimeout(rehide, 20);\n        };\n        on(window, \"mouseup\", mouseup);\n      } else {\n        setTimeout(rehide, 50);\n      }\n    },\n\n    setUneditable: nothing,\n\n    needsContentAttribute: false\n  }, TextareaInput.prototype);\n\n  // CONTENTEDITABLE INPUT STYLE\n\n  function ContentEditableInput(cm) {\n    this.cm = cm;\n    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n    this.polling = new Delayed();\n  }\n\n  ContentEditableInput.prototype = copyObj({\n    init: function(display) {\n      var input = this, cm = input.cm;\n      var div = input.div = display.lineDiv;\n      div.contentEditable = \"true\";\n      disableBrowserMagic(div);\n\n      on(div, \"paste\", function(e) {\n        var pasted = e.clipboardData && e.clipboardData.getData(\"text/plain\");\n        if (pasted) {\n          e.preventDefault();\n          cm.replaceSelection(pasted, null, \"paste\");\n        }\n      });\n\n      on(div, \"compositionstart\", function(e) {\n        var data = e.data;\n        input.composing = {sel: cm.doc.sel, data: data, startData: data};\n        if (!data) return;\n        var prim = cm.doc.sel.primary();\n        var line = cm.getLine(prim.head.line);\n        var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));\n        if (found > -1 && found <= prim.head.ch)\n          input.composing.sel = simpleSelection(Pos(prim.head.line, found),\n                                                Pos(prim.head.line, found + data.length));\n      });\n      on(div, \"compositionupdate\", function(e) {\n        input.composing.data = e.data;\n      });\n      on(div, \"compositionend\", function(e) {\n        var ours = input.composing;\n        if (!ours) return;\n        if (e.data != ours.startData && !/\\u200b/.test(e.data))\n          ours.data = e.data;\n        // Need a small delay to prevent other code (input event,\n        // selection polling) from doing damage when fired right after\n        // compositionend.\n        setTimeout(function() {\n          if (!ours.handled)\n            input.applyComposition(ours);\n          if (input.composing == ours)\n            input.composing = null;\n        }, 50);\n      });\n\n      on(div, \"touchstart\", function() {\n        input.forceCompositionEnd();\n      });\n\n      on(div, \"input\", function() {\n        if (input.composing) return;\n        if (!input.pollContent())\n          runInOp(input.cm, function() {regChange(cm);});\n      });\n\n      function onCopyCut(e) {\n        if (cm.somethingSelected()) {\n          lastCopied = cm.getSelections();\n          if (e.type == \"cut\") cm.replaceSelection(\"\", null, \"cut\");\n        } else {\n          var ranges = copyableRanges(cm);\n          lastCopied = ranges.text;\n          if (e.type == \"cut\") {\n            cm.operation(function() {\n              cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n              cm.replaceSelection(\"\", null, \"cut\");\n            });\n          }\n        }\n        // iOS exposes the clipboard API, but seems to discard content inserted into it\n        if (e.clipboardData && !ios) {\n          e.preventDefault();\n          e.clipboardData.clearData();\n          e.clipboardData.setData(\"text/plain\", lastCopied.join(\"\\n\"));\n        } else {\n          // Old-fashioned briefly-focus-a-textarea hack\n          var kludge = hiddenTextarea(), te = kludge.firstChild;\n          cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n          te.value = lastCopied.join(\"\\n\");\n          var hadFocus = document.activeElement;\n          selectInput(te);\n          setTimeout(function() {\n            cm.display.lineSpace.removeChild(kludge);\n            hadFocus.focus();\n          }, 50);\n        }\n      }\n      on(div, \"copy\", onCopyCut);\n      on(div, \"cut\", onCopyCut);\n    },\n\n    prepareSelection: function() {\n      var result = prepareSelection(this.cm, false);\n      result.focus = this.cm.state.focused;\n      return result;\n    },\n\n    showSelection: function(info) {\n      if (!info || !this.cm.display.view.length) return;\n      if (info.focus) this.showPrimarySelection();\n      this.showMultipleSelections(info);\n    },\n\n    showPrimarySelection: function() {\n      var sel = window.getSelection(), prim = this.cm.doc.sel.primary();\n      var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);\n      var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);\n      if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n          cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&\n          cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)\n        return;\n\n      var start = posToDOM(this.cm, prim.from());\n      var end = posToDOM(this.cm, prim.to());\n      if (!start && !end) return;\n\n      var view = this.cm.display.view;\n      var old = sel.rangeCount && sel.getRangeAt(0);\n      if (!start) {\n        start = {node: view[0].measure.map[2], offset: 0};\n      } else if (!end) { // FIXME dangerously hacky\n        var measure = view[view.length - 1].measure;\n        var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n        end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n      }\n\n      try { var rng = range(start.node, start.offset, end.offset, end.node); }\n      catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n      if (rng) {\n        sel.removeAllRanges();\n        sel.addRange(rng);\n        if (old && sel.anchorNode == null) sel.addRange(old);\n      }\n      this.rememberSelection();\n    },\n\n    showMultipleSelections: function(info) {\n      removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n      removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n    },\n\n    rememberSelection: function() {\n      var sel = window.getSelection();\n      this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n      this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n    },\n\n    selectionInEditor: function() {\n      var sel = window.getSelection();\n      if (!sel.rangeCount) return false;\n      var node = sel.getRangeAt(0).commonAncestorContainer;\n      return contains(this.div, node);\n    },\n\n    focus: function() {\n      if (this.cm.options.readOnly != \"nocursor\") this.div.focus();\n    },\n    blur: function() { this.div.blur(); },\n    getField: function() { return this.div; },\n\n    supportsTouch: function() { return true; },\n\n    receivedFocus: function() {\n      var input = this;\n      if (this.selectionInEditor())\n        this.pollSelection();\n      else\n        runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });\n\n      function poll() {\n        if (input.cm.state.focused) {\n          input.pollSelection();\n          input.polling.set(input.cm.options.pollInterval, poll);\n        }\n      }\n      this.polling.set(this.cm.options.pollInterval, poll);\n    },\n\n    pollSelection: function() {\n      if (this.composing) return;\n\n      var sel = window.getSelection(), cm = this.cm;\n      if (sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n          sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset) {\n        this.rememberSelection();\n        var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n        var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n        if (anchor && head) runInOp(cm, function() {\n          setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n          if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;\n        });\n      }\n    },\n\n    pollContent: function() {\n      var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n      var from = sel.from(), to = sel.to();\n      if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;\n\n      var fromIndex;\n      if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n        var fromLine = lineNo(display.view[0].line);\n        var fromNode = display.view[0].node;\n      } else {\n        var fromLine = lineNo(display.view[fromIndex].line);\n        var fromNode = display.view[fromIndex - 1].node.nextSibling;\n      }\n      var toIndex = findViewIndex(cm, to.line);\n      if (toIndex == display.view.length - 1) {\n        var toLine = display.viewTo - 1;\n        var toNode = display.view[toIndex].node;\n      } else {\n        var toLine = lineNo(display.view[toIndex + 1].line) - 1;\n        var toNode = display.view[toIndex + 1].node.previousSibling;\n      }\n\n      var newText = splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n      var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n      while (newText.length > 1 && oldText.length > 1) {\n        if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n        else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n        else break;\n      }\n\n      var cutFront = 0, cutEnd = 0;\n      var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n      while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n        ++cutFront;\n      var newBot = lst(newText), oldBot = lst(oldText);\n      var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n                               oldBot.length - (oldText.length == 1 ? cutFront : 0));\n      while (cutEnd < maxCutEnd &&\n             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n        ++cutEnd;\n\n      newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);\n      newText[0] = newText[0].slice(cutFront);\n\n      var chFrom = Pos(fromLine, cutFront);\n      var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n      if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n        replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n        return true;\n      }\n    },\n\n    ensurePolled: function() {\n      this.forceCompositionEnd();\n    },\n    reset: function() {\n      this.forceCompositionEnd();\n    },\n    forceCompositionEnd: function() {\n      if (!this.composing || this.composing.handled) return;\n      this.applyComposition(this.composing);\n      this.composing.handled = true;\n      this.div.blur();\n      this.div.focus();\n    },\n    applyComposition: function(composing) {\n      if (composing.data && composing.data != composing.startData)\n        operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);\n    },\n\n    setUneditable: function(node) {\n      node.setAttribute(\"contenteditable\", \"false\");\n    },\n\n    onKeyPress: function(e) {\n      e.preventDefault();\n      operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);\n    },\n\n    onContextMenu: nothing,\n    resetPosition: nothing,\n\n    needsContentAttribute: true\n  }, ContentEditableInput.prototype);\n\n  function posToDOM(cm, pos) {\n    var view = findViewForLine(cm, pos.line);\n    if (!view || view.hidden) return null;\n    var line = getLine(cm.doc, pos.line);\n    var info = mapFromLineView(view, line, pos.line);\n\n    var order = getOrder(line), side = \"left\";\n    if (order) {\n      var partPos = getBidiPartAt(order, pos.ch);\n      side = partPos % 2 ? \"right\" : \"left\";\n    }\n    var result = nodeAndOffsetInLineMap(info.map, pos.ch, \"left\");\n    result.offset = result.collapse == \"right\" ? result.end : result.start;\n    return result;\n  }\n\n  function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }\n\n  function domToPos(cm, node, offset) {\n    var lineNode;\n    if (node == cm.display.lineDiv) {\n      lineNode = cm.display.lineDiv.childNodes[offset];\n      if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);\n      node = null; offset = 0;\n    } else {\n      for (lineNode = node;; lineNode = lineNode.parentNode) {\n        if (!lineNode || lineNode == cm.display.lineDiv) return null;\n        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;\n      }\n    }\n    for (var i = 0; i < cm.display.view.length; i++) {\n      var lineView = cm.display.view[i];\n      if (lineView.node == lineNode)\n        return locateNodeInLineView(lineView, node, offset);\n    }\n  }\n\n  function locateNodeInLineView(lineView, node, offset) {\n    var wrapper = lineView.text.firstChild, bad = false;\n    if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);\n    if (node == wrapper) {\n      bad = true;\n      node = wrapper.childNodes[offset];\n      offset = 0;\n      if (!node) {\n        var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n        return badPos(Pos(lineNo(line), line.text.length), bad);\n      }\n    }\n\n    var textNode = node.nodeType == 3 ? node : null, topNode = node;\n    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n      textNode = node.firstChild;\n      if (offset) offset = textNode.nodeValue.length;\n    }\n    while (topNode.parentNode != wrapper) topNode = topNode.parentNode;\n    var measure = lineView.measure, maps = measure.maps;\n\n    function find(textNode, topNode, offset) {\n      for (var i = -1; i < (maps ? maps.length : 0); i++) {\n        var map = i < 0 ? measure.map : maps[i];\n        for (var j = 0; j < map.length; j += 3) {\n          var curNode = map[j + 2];\n          if (curNode == textNode || curNode == topNode) {\n            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n            var ch = map[j] + offset;\n            if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];\n            return Pos(line, ch);\n          }\n        }\n      }\n    }\n    var found = find(textNode, topNode, offset);\n    if (found) return badPos(found, bad);\n\n    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n      found = find(after, after.firstChild, 0);\n      if (found)\n        return badPos(Pos(found.line, found.ch - dist), bad);\n      else\n        dist += after.textContent.length;\n    }\n    for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {\n      found = find(before, before.firstChild, -1);\n      if (found)\n        return badPos(Pos(found.line, found.ch + dist), bad);\n      else\n        dist += after.textContent.length;\n    }\n  }\n\n  function domTextBetween(cm, from, to, fromLine, toLine) {\n    var text = \"\", closing = false;\n    function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }\n    function walk(node) {\n      if (node.nodeType == 1) {\n        var cmText = node.getAttribute(\"cm-text\");\n        if (cmText != null) {\n          if (cmText == \"\") cmText = node.textContent.replace(/\\u200b/g, \"\");\n          text += cmText;\n          return;\n        }\n        var markerID = node.getAttribute(\"cm-marker\"), range;\n        if (markerID) {\n          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n          if (found.length && (range = found[0].find()))\n            text += getBetween(cm.doc, range.from, range.to).join(\"\\n\");\n          return;\n        }\n        if (node.getAttribute(\"contenteditable\") == \"false\") return;\n        for (var i = 0; i < node.childNodes.length; i++)\n          walk(node.childNodes[i]);\n        if (/^(pre|div|p)$/i.test(node.nodeName))\n          closing = true;\n      } else if (node.nodeType == 3) {\n        var val = node.nodeValue;\n        if (!val) return;\n        if (closing) {\n          text += \"\\n\";\n          closing = false;\n        }\n        text += val;\n      }\n    }\n    for (;;) {\n      walk(from);\n      if (from == to) break;\n      from = from.nextSibling;\n    }\n    return text;\n  }\n\n  CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n  // SELECTION / CURSOR\n\n  // Selection objects are immutable. A new one is created every time\n  // the selection changes. A selection is one or more non-overlapping\n  // (and non-touching) ranges, sorted, and an integer that indicates\n  // which one is the primary selection (the one that's scrolled into\n  // view, that getCursor returns, etc).\n  function Selection(ranges, primIndex) {\n    this.ranges = ranges;\n    this.primIndex = primIndex;\n  }\n\n  Selection.prototype = {\n    primary: function() { return this.ranges[this.primIndex]; },\n    equals: function(other) {\n      if (other == this) return true;\n      if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;\n      for (var i = 0; i < this.ranges.length; i++) {\n        var here = this.ranges[i], there = other.ranges[i];\n        if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;\n      }\n      return true;\n    },\n    deepCopy: function() {\n      for (var out = [], i = 0; i < this.ranges.length; i++)\n        out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));\n      return new Selection(out, this.primIndex);\n    },\n    somethingSelected: function() {\n      for (var i = 0; i < this.ranges.length; i++)\n        if (!this.ranges[i].empty()) return true;\n      return false;\n    },\n    contains: function(pos, end) {\n      if (!end) end = pos;\n      for (var i = 0; i < this.ranges.length; i++) {\n        var range = this.ranges[i];\n        if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n          return i;\n      }\n      return -1;\n    }\n  };\n\n  function Range(anchor, head) {\n    this.anchor = anchor; this.head = head;\n  }\n\n  Range.prototype = {\n    from: function() { return minPos(this.anchor, this.head); },\n    to: function() { return maxPos(this.anchor, this.head); },\n    empty: function() {\n      return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;\n    }\n  };\n\n  // Take an unsorted, potentially overlapping set of ranges, and\n  // build a selection out of it. 'Consumes' ranges array (modifying\n  // it).\n  function normalizeSelection(ranges, primIndex) {\n    var prim = ranges[primIndex];\n    ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });\n    primIndex = indexOf(ranges, prim);\n    for (var i = 1; i < ranges.length; i++) {\n      var cur = ranges[i], prev = ranges[i - 1];\n      if (cmp(prev.to(), cur.from()) >= 0) {\n        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n        if (i <= primIndex) --primIndex;\n        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n      }\n    }\n    return new Selection(ranges, primIndex);\n  }\n\n  function simpleSelection(anchor, head) {\n    return new Selection([new Range(anchor, head || anchor)], 0);\n  }\n\n  // Most of the external API clips given positions to make sure they\n  // actually exist within the document.\n  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}\n  function clipPos(doc, pos) {\n    if (pos.line < doc.first) return Pos(doc.first, 0);\n    var last = doc.first + doc.size - 1;\n    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);\n    return clipToLen(pos, getLine(doc, pos.line).text.length);\n  }\n  function clipToLen(pos, linelen) {\n    var ch = pos.ch;\n    if (ch == null || ch > linelen) return Pos(pos.line, linelen);\n    else if (ch < 0) return Pos(pos.line, 0);\n    else return pos;\n  }\n  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}\n  function clipPosArray(doc, array) {\n    for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);\n    return out;\n  }\n\n  // SELECTION UPDATES\n\n  // The 'scroll' parameter given to many of these indicated whether\n  // the new cursor position should be scrolled into view after\n  // modifying the selection.\n\n  // If shift is held or the extend flag is set, extends a range to\n  // include a given position (and optionally a second position).\n  // Otherwise, simply returns the range between the given positions.\n  // Used for cursor motion and such.\n  function extendRange(doc, range, head, other) {\n    if (doc.cm && doc.cm.display.shift || doc.extend) {\n      var anchor = range.anchor;\n      if (other) {\n        var posBefore = cmp(head, anchor) < 0;\n        if (posBefore != (cmp(other, anchor) < 0)) {\n          anchor = head;\n          head = other;\n        } else if (posBefore != (cmp(head, other) < 0)) {\n          head = other;\n        }\n      }\n      return new Range(anchor, head);\n    } else {\n      return new Range(other || head, head);\n    }\n  }\n\n  // Extend the primary selection range, discard the rest.\n  function extendSelection(doc, head, other, options) {\n    setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);\n  }\n\n  // Extend all selections (pos is an array of selections with length\n  // equal the number of selections)\n  function extendSelections(doc, heads, options) {\n    for (var out = [], i = 0; i < doc.sel.ranges.length; i++)\n      out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);\n    var newSel = normalizeSelection(out, doc.sel.primIndex);\n    setSelection(doc, newSel, options);\n  }\n\n  // Updates a single range in the selection.\n  function replaceOneSelection(doc, i, range, options) {\n    var ranges = doc.sel.ranges.slice(0);\n    ranges[i] = range;\n    setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);\n  }\n\n  // Reset the selection to a single range.\n  function setSimpleSelection(doc, anchor, head, options) {\n    setSelection(doc, simpleSelection(anchor, head), options);\n  }\n\n  // Give beforeSelectionChange handlers a change to influence a\n  // selection update.\n  function filterSelectionChange(doc, sel) {\n    var obj = {\n      ranges: sel.ranges,\n      update: function(ranges) {\n        this.ranges = [];\n        for (var i = 0; i < ranges.length; i++)\n          this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n                                     clipPos(doc, ranges[i].head));\n      }\n    };\n    signal(doc, \"beforeSelectionChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj);\n    if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);\n    else return sel;\n  }\n\n  function setSelectionReplaceHistory(doc, sel, options) {\n    var done = doc.history.done, last = lst(done);\n    if (last && last.ranges) {\n      done[done.length - 1] = sel;\n      setSelectionNoUndo(doc, sel, options);\n    } else {\n      setSelection(doc, sel, options);\n    }\n  }\n\n  // Set a new selection.\n  function setSelection(doc, sel, options) {\n    setSelectionNoUndo(doc, sel, options);\n    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n  }\n\n  function setSelectionNoUndo(doc, sel, options) {\n    if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n      sel = filterSelectionChange(doc, sel);\n\n    var bias = options && options.bias ||\n      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n    if (!(options && options.scroll === false) && doc.cm)\n      ensureCursorVisible(doc.cm);\n  }\n\n  function setSelectionInner(doc, sel) {\n    if (sel.equals(doc.sel)) return;\n\n    doc.sel = sel;\n\n    if (doc.cm) {\n      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;\n      signalCursorActivity(doc.cm);\n    }\n    signalLater(doc, \"cursorActivity\", doc);\n  }\n\n  // Verify that the selection does not partially select any atomic\n  // marked ranges.\n  function reCheckSelection(doc) {\n    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);\n  }\n\n  // Return a selection that does not partially select any atomic\n  // ranges.\n  function skipAtomicInSelection(doc, sel, bias, mayClear) {\n    var out;\n    for (var i = 0; i < sel.ranges.length; i++) {\n      var range = sel.ranges[i];\n      var newAnchor = skipAtomic(doc, range.anchor, bias, mayClear);\n      var newHead = skipAtomic(doc, range.head, bias, mayClear);\n      if (out || newAnchor != range.anchor || newHead != range.head) {\n        if (!out) out = sel.ranges.slice(0, i);\n        out[i] = new Range(newAnchor, newHead);\n      }\n    }\n    return out ? normalizeSelection(out, sel.primIndex) : sel;\n  }\n\n  // Ensure a given position is not inside an atomic range.\n  function skipAtomic(doc, pos, bias, mayClear) {\n    var flipped = false, curPos = pos;\n    var dir = bias || 1;\n    doc.cantEdit = false;\n    search: for (;;) {\n      var line = getLine(doc, curPos.line);\n      if (line.markedSpans) {\n        for (var i = 0; i < line.markedSpans.length; ++i) {\n          var sp = line.markedSpans[i], m = sp.marker;\n          if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&\n              (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {\n            if (mayClear) {\n              signal(m, \"beforeCursorEnter\");\n              if (m.explicitlyCleared) {\n                if (!line.markedSpans) break;\n                else {--i; continue;}\n              }\n            }\n            if (!m.atomic) continue;\n            var newPos = m.find(dir < 0 ? -1 : 1);\n            if (cmp(newPos, curPos) == 0) {\n              newPos.ch += dir;\n              if (newPos.ch < 0) {\n                if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));\n                else newPos = null;\n              } else if (newPos.ch > line.text.length) {\n                if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);\n                else newPos = null;\n              }\n              if (!newPos) {\n                if (flipped) {\n                  // Driven in a corner -- no valid cursor position found at all\n                  // -- try again *with* clearing, if we didn't already\n                  if (!mayClear) return skipAtomic(doc, pos, bias, true);\n                  // Otherwise, turn off editing until further notice, and return the start of the doc\n                  doc.cantEdit = true;\n                  return Pos(doc.first, 0);\n                }\n                flipped = true; newPos = pos; dir = -dir;\n              }\n            }\n            curPos = newPos;\n            continue search;\n          }\n        }\n      }\n      return curPos;\n    }\n  }\n\n  // SELECTION DRAWING\n\n  function updateSelection(cm) {\n    cm.display.input.showSelection(cm.display.input.prepareSelection());\n  }\n\n  function prepareSelection(cm, primary) {\n    var doc = cm.doc, result = {};\n    var curFragment = result.cursors = document.createDocumentFragment();\n    var selFragment = result.selection = document.createDocumentFragment();\n\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      if (primary === false && i == doc.sel.primIndex) continue;\n      var range = doc.sel.ranges[i];\n      var collapsed = range.empty();\n      if (collapsed || cm.options.showCursorWhenSelecting)\n        drawSelectionCursor(cm, range, curFragment);\n      if (!collapsed)\n        drawSelectionRange(cm, range, selFragment);\n    }\n    return result;\n  }\n\n  // Draws a cursor for the given range\n  function drawSelectionCursor(cm, range, output) {\n    var pos = cursorCoords(cm, range.head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n    var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n    cursor.style.left = pos.left + \"px\";\n    cursor.style.top = pos.top + \"px\";\n    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n    if (pos.other) {\n      // Secondary cursor, shown when on a 'jump' in bi-directional text\n      var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n      otherCursor.style.display = \"\";\n      otherCursor.style.left = pos.other.left + \"px\";\n      otherCursor.style.top = pos.other.top + \"px\";\n      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n    }\n  }\n\n  // Draws the given range as a highlighted selection\n  function drawSelectionRange(cm, range, output) {\n    var display = cm.display, doc = cm.doc;\n    var fragment = document.createDocumentFragment();\n    var padding = paddingH(cm.display), leftSide = padding.left;\n    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n\n    function add(left, top, width, bottom) {\n      if (top < 0) top = 0;\n      top = Math.round(top);\n      bottom = Math.round(bottom);\n      fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", \"position: absolute; left: \" + left +\n                               \"px; top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) +\n                               \"px; height: \" + (bottom - top) + \"px\"));\n    }\n\n    function drawForLine(line, fromArg, toArg) {\n      var lineObj = getLine(doc, line);\n      var lineLen = lineObj.text.length;\n      var start, end;\n      function coords(ch, bias) {\n        return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias);\n      }\n\n      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {\n        var leftPos = coords(from, \"left\"), rightPos, left, right;\n        if (from == to) {\n          rightPos = leftPos;\n          left = right = leftPos.left;\n        } else {\n          rightPos = coords(to - 1, \"right\");\n          if (dir == \"rtl\") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }\n          left = leftPos.left;\n          right = rightPos.right;\n        }\n        if (fromArg == null && from == 0) left = leftSide;\n        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part\n          add(left, leftPos.top, null, leftPos.bottom);\n          left = leftSide;\n          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);\n        }\n        if (toArg == null && to == lineLen) right = rightSide;\n        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)\n          start = leftPos;\n        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)\n          end = rightPos;\n        if (left < leftSide + 1) left = leftSide;\n        add(left, rightPos.top, right - left, rightPos.bottom);\n      });\n      return {start: start, end: end};\n    }\n\n    var sFrom = range.from(), sTo = range.to();\n    if (sFrom.line == sTo.line) {\n      drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n    } else {\n      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n      var singleVLine = visualLine(fromLine) == visualLine(toLine);\n      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n      if (singleVLine) {\n        if (leftEnd.top < rightStart.top - 2) {\n          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n        } else {\n          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n        }\n      }\n      if (leftEnd.bottom < rightStart.top)\n        add(leftSide, leftEnd.bottom, null, rightStart.top);\n    }\n\n    output.appendChild(fragment);\n  }\n\n  // Cursor-blinking\n  function restartBlink(cm) {\n    if (!cm.state.focused) return;\n    var display = cm.display;\n    clearInterval(display.blinker);\n    var on = true;\n    display.cursorDiv.style.visibility = \"\";\n    if (cm.options.cursorBlinkRate > 0)\n      display.blinker = setInterval(function() {\n        display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n      }, cm.options.cursorBlinkRate);\n    else if (cm.options.cursorBlinkRate < 0)\n      display.cursorDiv.style.visibility = \"hidden\";\n  }\n\n  // HIGHLIGHT WORKER\n\n  function startWorker(cm, time) {\n    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)\n      cm.state.highlight.set(time, bind(highlightWorker, cm));\n  }\n\n  function highlightWorker(cm) {\n    var doc = cm.doc;\n    if (doc.frontier < doc.first) doc.frontier = doc.first;\n    if (doc.frontier >= cm.display.viewTo) return;\n    var end = +new Date + cm.options.workTime;\n    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));\n    var changedLines = [];\n\n    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {\n      if (doc.frontier >= cm.display.viewFrom) { // Visible\n        var oldStyles = line.styles;\n        var highlighted = highlightLine(cm, line, state, true);\n        line.styles = highlighted.styles;\n        var oldCls = line.styleClasses, newCls = highlighted.classes;\n        if (newCls) line.styleClasses = newCls;\n        else if (oldCls) line.styleClasses = null;\n        var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];\n        if (ischange) changedLines.push(doc.frontier);\n        line.stateAfter = copyState(doc.mode, state);\n      } else {\n        processLine(cm, line.text, state);\n        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;\n      }\n      ++doc.frontier;\n      if (+new Date > end) {\n        startWorker(cm, cm.options.workDelay);\n        return true;\n      }\n    });\n    if (changedLines.length) runInOp(cm, function() {\n      for (var i = 0; i < changedLines.length; i++)\n        regLineChange(cm, changedLines[i], \"text\");\n    });\n  }\n\n  // Finds the line to start with when starting a parse. Tries to\n  // find a line with a stateAfter, so that it can start with a\n  // valid state. If that fails, it returns the line with the\n  // smallest indentation, which tends to need the least context to\n  // parse correctly.\n  function findStartLine(cm, n, precise) {\n    var minindent, minline, doc = cm.doc;\n    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n    for (var search = n; search > lim; --search) {\n      if (search <= doc.first) return doc.first;\n      var line = getLine(doc, search - 1);\n      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;\n      var indented = countColumn(line.text, null, cm.options.tabSize);\n      if (minline == null || minindent > indented) {\n        minline = search - 1;\n        minindent = indented;\n      }\n    }\n    return minline;\n  }\n\n  function getStateBefore(cm, n, precise) {\n    var doc = cm.doc, display = cm.display;\n    if (!doc.mode.startState) return true;\n    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;\n    if (!state) state = startState(doc.mode);\n    else state = copyState(doc.mode, state);\n    doc.iter(pos, n, function(line) {\n      processLine(cm, line.text, state);\n      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;\n      line.stateAfter = save ? copyState(doc.mode, state) : null;\n      ++pos;\n    });\n    if (precise) doc.frontier = pos;\n    return state;\n  }\n\n  // POSITION MEASUREMENT\n\n  function paddingTop(display) {return display.lineSpace.offsetTop;}\n  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}\n  function paddingH(display) {\n    if (display.cachedPaddingH) return display.cachedPaddingH;\n    var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\"));\n    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n    if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;\n    return data;\n  }\n\n  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }\n  function displayWidth(cm) {\n    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;\n  }\n  function displayHeight(cm) {\n    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;\n  }\n\n  // Ensure the lineView.wrapping.heights array is populated. This is\n  // an array of bottom offsets for the lines that make up a drawn\n  // line. When lineWrapping is on, there might be more than one\n  // height.\n  function ensureLineHeights(cm, lineView, rect) {\n    var wrapping = cm.options.lineWrapping;\n    var curWidth = wrapping && displayWidth(cm);\n    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n      var heights = lineView.measure.heights = [];\n      if (wrapping) {\n        lineView.measure.width = curWidth;\n        var rects = lineView.text.firstChild.getClientRects();\n        for (var i = 0; i < rects.length - 1; i++) {\n          var cur = rects[i], next = rects[i + 1];\n          if (Math.abs(cur.bottom - next.bottom) > 2)\n            heights.push((cur.bottom + next.top) / 2 - rect.top);\n        }\n      }\n      heights.push(rect.bottom - rect.top);\n    }\n  }\n\n  // Find a line map (mapping character offsets to text nodes) and a\n  // measurement cache for the given line number. (A line view might\n  // contain multiple lines when collapsed ranges are present.)\n  function mapFromLineView(lineView, line, lineN) {\n    if (lineView.line == line)\n      return {map: lineView.measure.map, cache: lineView.measure.cache};\n    for (var i = 0; i < lineView.rest.length; i++)\n      if (lineView.rest[i] == line)\n        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};\n    for (var i = 0; i < lineView.rest.length; i++)\n      if (lineNo(lineView.rest[i]) > lineN)\n        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};\n  }\n\n  // Render a line into the hidden node display.externalMeasured. Used\n  // when measurement is needed for a line that's not in the viewport.\n  function updateExternalMeasurement(cm, line) {\n    line = visualLine(line);\n    var lineN = lineNo(line);\n    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n    view.lineN = lineN;\n    var built = view.built = buildLineContent(cm, view);\n    view.text = built.pre;\n    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n    return view;\n  }\n\n  // Get a {top, bottom, left, right} box (in line-local coordinates)\n  // for a given character.\n  function measureChar(cm, line, ch, bias) {\n    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);\n  }\n\n  // Find a line view that corresponds to the given line number.\n  function findViewForLine(cm, lineN) {\n    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n      return cm.display.view[findViewIndex(cm, lineN)];\n    var ext = cm.display.externalMeasured;\n    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n      return ext;\n  }\n\n  // Measurement can be split in two steps, the set-up work that\n  // applies to the whole line, and the measurement of the actual\n  // character. Functions like coordsChar, that need to do a lot of\n  // measurements in a row, can thus ensure that the set-up work is\n  // only done once.\n  function prepareMeasureForLine(cm, line) {\n    var lineN = lineNo(line);\n    var view = findViewForLine(cm, lineN);\n    if (view && !view.text)\n      view = null;\n    else if (view && view.changes)\n      updateLineForChanges(cm, view, lineN, getDimensions(cm));\n    if (!view)\n      view = updateExternalMeasurement(cm, line);\n\n    var info = mapFromLineView(view, line, lineN);\n    return {\n      line: line, view: view, rect: null,\n      map: info.map, cache: info.cache, before: info.before,\n      hasHeights: false\n    };\n  }\n\n  // Given a prepared measurement object, measures the position of an\n  // actual character (or fetches it from the cache).\n  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n    if (prepared.before) ch = -1;\n    var key = ch + (bias || \"\"), found;\n    if (prepared.cache.hasOwnProperty(key)) {\n      found = prepared.cache[key];\n    } else {\n      if (!prepared.rect)\n        prepared.rect = prepared.view.text.getBoundingClientRect();\n      if (!prepared.hasHeights) {\n        ensureLineHeights(cm, prepared.view, prepared.rect);\n        prepared.hasHeights = true;\n      }\n      found = measureCharInner(cm, prepared, ch, bias);\n      if (!found.bogus) prepared.cache[key] = found;\n    }\n    return {left: found.left, right: found.right,\n            top: varHeight ? found.rtop : found.top,\n            bottom: varHeight ? found.rbottom : found.bottom};\n  }\n\n  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n  function nodeAndOffsetInLineMap(map, ch, bias) {\n    var node, start, end, collapse;\n    // First, search the line map for the text node corresponding to,\n    // or closest to, the target character.\n    for (var i = 0; i < map.length; i += 3) {\n      var mStart = map[i], mEnd = map[i + 1];\n      if (ch < mStart) {\n        start = 0; end = 1;\n        collapse = \"left\";\n      } else if (ch < mEnd) {\n        start = ch - mStart;\n        end = start + 1;\n      } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n        end = mEnd - mStart;\n        start = end - 1;\n        if (ch >= mEnd) collapse = \"right\";\n      }\n      if (start != null) {\n        node = map[i + 2];\n        if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n          collapse = bias;\n        if (bias == \"left\" && start == 0)\n          while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n            node = map[(i -= 3) + 2];\n            collapse = \"left\";\n          }\n        if (bias == \"right\" && start == mEnd - mStart)\n          while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n            node = map[(i += 3) + 2];\n            collapse = \"right\";\n          }\n        break;\n      }\n    }\n    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};\n  }\n\n  function measureCharInner(cm, prepared, ch, bias) {\n    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n    var rect;\n    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n      for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;\n        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;\n        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) {\n          rect = node.parentNode.getBoundingClientRect();\n        } else if (ie && cm.options.lineWrapping) {\n          var rects = range(node, start, end).getClientRects();\n          if (rects.length)\n            rect = rects[bias == \"right\" ? rects.length - 1 : 0];\n          else\n            rect = nullRect;\n        } else {\n          rect = range(node, start, end).getBoundingClientRect() || nullRect;\n        }\n        if (rect.left || rect.right || start == 0) break;\n        end = start;\n        start = start - 1;\n        collapse = \"right\";\n      }\n      if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);\n    } else { // If it is a widget, simply get the box for the whole widget.\n      if (start > 0) collapse = bias = \"right\";\n      var rects;\n      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n        rect = rects[bias == \"right\" ? rects.length - 1 : 0];\n      else\n        rect = node.getBoundingClientRect();\n    }\n    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n      var rSpan = node.parentNode.getClientRects()[0];\n      if (rSpan)\n        rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};\n      else\n        rect = nullRect;\n    }\n\n    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n    var mid = (rtop + rbot) / 2;\n    var heights = prepared.view.measure.heights;\n    for (var i = 0; i < heights.length - 1; i++)\n      if (mid < heights[i]) break;\n    var top = i ? heights[i - 1] : 0, bot = heights[i];\n    var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n                  right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n                  top: top, bottom: bot};\n    if (!rect.left && !rect.right) result.bogus = true;\n    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n    return result;\n  }\n\n  // Work around problem with bounding client rects on ranges being\n  // returned incorrectly when zoomed on IE10 and below.\n  function maybeUpdateRectForZooming(measure, rect) {\n    if (!window.screen || screen.logicalXDPI == null ||\n        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n      return rect;\n    var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n    var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n    return {left: rect.left * scaleX, right: rect.right * scaleX,\n            top: rect.top * scaleY, bottom: rect.bottom * scaleY};\n  }\n\n  function clearLineMeasurementCacheFor(lineView) {\n    if (lineView.measure) {\n      lineView.measure.cache = {};\n      lineView.measure.heights = null;\n      if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)\n        lineView.measure.caches[i] = {};\n    }\n  }\n\n  function clearLineMeasurementCache(cm) {\n    cm.display.externalMeasure = null;\n    removeChildren(cm.display.lineMeasure);\n    for (var i = 0; i < cm.display.view.length; i++)\n      clearLineMeasurementCacheFor(cm.display.view[i]);\n  }\n\n  function clearCaches(cm) {\n    clearLineMeasurementCache(cm);\n    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;\n    cm.display.lineNumChars = null;\n  }\n\n  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }\n  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }\n\n  // Converts a {top, bottom, left, right} box from line-local\n  // coordinates into another coordinate system. Context may be one of\n  // \"line\", \"div\" (display.lineDiv), \"local\"/null (editor), \"window\",\n  // or \"page\".\n  function intoCoordSystem(cm, lineObj, rect, context) {\n    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {\n      var size = widgetHeight(lineObj.widgets[i]);\n      rect.top += size; rect.bottom += size;\n    }\n    if (context == \"line\") return rect;\n    if (!context) context = \"local\";\n    var yOff = heightAtLine(lineObj);\n    if (context == \"local\") yOff += paddingTop(cm.display);\n    else yOff -= cm.display.viewOffset;\n    if (context == \"page\" || context == \"window\") {\n      var lOff = cm.display.lineSpace.getBoundingClientRect();\n      yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n      var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n      rect.left += xOff; rect.right += xOff;\n    }\n    rect.top += yOff; rect.bottom += yOff;\n    return rect;\n  }\n\n  // Coverts a box from \"div\" coords to another coordinate system.\n  // Context may be \"window\", \"page\", \"div\", or \"local\"/null.\n  function fromCoordSystem(cm, coords, context) {\n    if (context == \"div\") return coords;\n    var left = coords.left, top = coords.top;\n    // First move into \"page\" coordinate system\n    if (context == \"page\") {\n      left -= pageScrollX();\n      top -= pageScrollY();\n    } else if (context == \"local\" || !context) {\n      var localBox = cm.display.sizer.getBoundingClientRect();\n      left += localBox.left;\n      top += localBox.top;\n    }\n\n    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};\n  }\n\n  function charCoords(cm, pos, context, lineObj, bias) {\n    if (!lineObj) lineObj = getLine(cm.doc, pos.line);\n    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);\n  }\n\n  // Returns a box for a given cursor position, which may have an\n  // 'other' property containing the position of the secondary cursor\n  // on a bidi boundary.\n  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n    lineObj = lineObj || getLine(cm.doc, pos.line);\n    if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);\n    function get(ch, right) {\n      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n      if (right) m.left = m.right; else m.right = m.left;\n      return intoCoordSystem(cm, lineObj, m, context);\n    }\n    function getBidi(ch, partPos) {\n      var part = order[partPos], right = part.level % 2;\n      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {\n        part = order[--partPos];\n        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);\n        right = true;\n      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {\n        part = order[++partPos];\n        ch = bidiLeft(part) - part.level % 2;\n        right = false;\n      }\n      if (right && ch == part.to && ch > part.from) return get(ch - 1);\n      return get(ch, right);\n    }\n    var order = getOrder(lineObj), ch = pos.ch;\n    if (!order) return get(ch);\n    var partPos = getBidiPartAt(order, ch);\n    var val = getBidi(ch, partPos);\n    if (bidiOther != null) val.other = getBidi(ch, bidiOther);\n    return val;\n  }\n\n  // Used to cheaply estimate the coordinates for a position. Used for\n  // intermediate scroll updates.\n  function estimateCoords(cm, pos) {\n    var left = 0, pos = clipPos(cm.doc, pos);\n    if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;\n    var lineObj = getLine(cm.doc, pos.line);\n    var top = heightAtLine(lineObj) + paddingTop(cm.display);\n    return {left: left, right: left, top: top, bottom: top + lineObj.height};\n  }\n\n  // Positions returned by coordsChar contain some extra information.\n  // xRel is the relative x position of the input coordinates compared\n  // to the found position (so xRel > 0 means the coordinates are to\n  // the right of the character position, for example). When outside\n  // is true, that means the coordinates lie outside the line's\n  // vertical range.\n  function PosWithInfo(line, ch, outside, xRel) {\n    var pos = Pos(line, ch);\n    pos.xRel = xRel;\n    if (outside) pos.outside = true;\n    return pos;\n  }\n\n  // Compute the character position closest to the given coordinates.\n  // Input must be lineSpace-local (\"div\" coordinate system).\n  function coordsChar(cm, x, y) {\n    var doc = cm.doc;\n    y += cm.display.viewOffset;\n    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);\n    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n    if (lineN > last)\n      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);\n    if (x < 0) x = 0;\n\n    var lineObj = getLine(doc, lineN);\n    for (;;) {\n      var found = coordsCharInner(cm, lineObj, lineN, x, y);\n      var merged = collapsedSpanAtEnd(lineObj);\n      var mergedPos = merged && merged.find(0, true);\n      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))\n        lineN = lineNo(lineObj = mergedPos.to.line);\n      else\n        return found;\n    }\n  }\n\n  function coordsCharInner(cm, lineObj, lineNo, x, y) {\n    var innerOff = y - heightAtLine(lineObj);\n    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;\n    var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n\n    function getX(ch) {\n      var sp = cursorCoords(cm, Pos(lineNo, ch), \"line\", lineObj, preparedMeasure);\n      wrongLine = true;\n      if (innerOff > sp.bottom) return sp.left - adjust;\n      else if (innerOff < sp.top) return sp.left + adjust;\n      else wrongLine = false;\n      return sp.left;\n    }\n\n    var bidi = getOrder(lineObj), dist = lineObj.text.length;\n    var from = lineLeft(lineObj), to = lineRight(lineObj);\n    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;\n\n    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);\n    // Do a binary search between these bounds.\n    for (;;) {\n      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {\n        var ch = x < fromX || x - fromX <= toX - x ? from : to;\n        var xDiff = x - (ch == from ? fromX : toX);\n        while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;\n        var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,\n                              xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);\n        return pos;\n      }\n      var step = Math.ceil(dist / 2), middle = from + step;\n      if (bidi) {\n        middle = from;\n        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);\n      }\n      var middleX = getX(middle);\n      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}\n      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}\n    }\n  }\n\n  var measureText;\n  // Compute the default text height.\n  function textHeight(display) {\n    if (display.cachedTextHeight != null) return display.cachedTextHeight;\n    if (measureText == null) {\n      measureText = elt(\"pre\");\n      // Measure a bunch of lines, for browsers that compute\n      // fractional heights.\n      for (var i = 0; i < 49; ++i) {\n        measureText.appendChild(document.createTextNode(\"x\"));\n        measureText.appendChild(elt(\"br\"));\n      }\n      measureText.appendChild(document.createTextNode(\"x\"));\n    }\n    removeChildrenAndAdd(display.measure, measureText);\n    var height = measureText.offsetHeight / 50;\n    if (height > 3) display.cachedTextHeight = height;\n    removeChildren(display.measure);\n    return height || 1;\n  }\n\n  // Compute the default character width.\n  function charWidth(display) {\n    if (display.cachedCharWidth != null) return display.cachedCharWidth;\n    var anchor = elt(\"span\", \"xxxxxxxxxx\");\n    var pre = elt(\"pre\", [anchor]);\n    removeChildrenAndAdd(display.measure, pre);\n    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n    if (width > 2) display.cachedCharWidth = width;\n    return width || 10;\n  }\n\n  // OPERATIONS\n\n  // Operations are used to wrap a series of changes to the editor\n  // state in such a way that each change won't have to update the\n  // cursor and display (which would be awkward, slow, and\n  // error-prone). Instead, display updates are batched and then all\n  // combined and executed at once.\n\n  var operationGroup = null;\n\n  var nextOpId = 0;\n  // Start a new operation.\n  function startOperation(cm) {\n    cm.curOp = {\n      cm: cm,\n      viewChanged: false,      // Flag that indicates that lines might need to be redrawn\n      startHeight: cm.doc.height, // Used to detect need to update scrollbar\n      forceUpdate: false,      // Used to force a redraw\n      updateInput: null,       // Whether to reset the input textarea\n      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)\n      changeObjs: null,        // Accumulated changes, for firing change events\n      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n      selectionChanged: false, // Whether the selection needs to be redrawn\n      updateMaxLine: false,    // Set when the widest line needs to be determined anew\n      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n      scrollToPos: null,       // Used to scroll to a specific position\n      id: ++nextOpId           // Unique ID\n    };\n    if (operationGroup) {\n      operationGroup.ops.push(cm.curOp);\n    } else {\n      cm.curOp.ownsGroup = operationGroup = {\n        ops: [cm.curOp],\n        delayedCallbacks: []\n      };\n    }\n  }\n\n  function fireCallbacksForOps(group) {\n    // Calls delayed callbacks and cursorActivity handlers until no\n    // new ones appear\n    var callbacks = group.delayedCallbacks, i = 0;\n    do {\n      for (; i < callbacks.length; i++)\n        callbacks[i]();\n      for (var j = 0; j < group.ops.length; j++) {\n        var op = group.ops[j];\n        if (op.cursorActivityHandlers)\n          while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n            op.cursorActivityHandlers[op.cursorActivityCalled++](op.cm);\n      }\n    } while (i < callbacks.length);\n  }\n\n  // Finish an operation, updating the display and signalling delayed events\n  function endOperation(cm) {\n    var op = cm.curOp, group = op.ownsGroup;\n    if (!group) return;\n\n    try { fireCallbacksForOps(group); }\n    finally {\n      operationGroup = null;\n      for (var i = 0; i < group.ops.length; i++)\n        group.ops[i].cm.curOp = null;\n      endOperations(group);\n    }\n  }\n\n  // The DOM updates done when an operation finishes are batched so\n  // that the minimum number of relayouts are required.\n  function endOperations(group) {\n    var ops = group.ops;\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_R1(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)\n      endOperation_W1(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_R2(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)\n      endOperation_W2(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_finish(ops[i]);\n  }\n\n  function endOperation_R1(op) {\n    var cm = op.cm, display = cm.display;\n    maybeClipScrollbars(cm);\n    if (op.updateMaxLine) findMaxLine(cm);\n\n    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n                         op.scrollToPos.to.line >= display.viewTo) ||\n      display.maxLineChanged && cm.options.lineWrapping;\n    op.update = op.mustUpdate &&\n      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n  }\n\n  function endOperation_W1(op) {\n    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n  }\n\n  function endOperation_R2(op) {\n    var cm = op.cm, display = cm.display;\n    if (op.updatedDisplay) updateHeightsInViewport(cm);\n\n    op.barMeasure = measureForScrollbars(cm);\n\n    // If the max line changed since it was last measured, measure it,\n    // and ensure the document's width matches it.\n    // updateDisplay_W2 will use these properties to do the actual resizing\n    if (display.maxLineChanged && !cm.options.lineWrapping) {\n      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n      cm.display.sizerWidth = op.adjustWidthTo;\n      op.barMeasure.scrollWidth =\n        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n    }\n\n    if (op.updatedDisplay || op.selectionChanged)\n      op.preparedSelection = display.input.prepareSelection();\n  }\n\n  function endOperation_W2(op) {\n    var cm = op.cm;\n\n    if (op.adjustWidthTo != null) {\n      cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n      if (op.maxScrollLeft < cm.doc.scrollLeft)\n        setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);\n      cm.display.maxLineChanged = false;\n    }\n\n    if (op.preparedSelection)\n      cm.display.input.showSelection(op.preparedSelection);\n    if (op.updatedDisplay)\n      setDocumentHeight(cm, op.barMeasure);\n    if (op.updatedDisplay || op.startHeight != cm.doc.height)\n      updateScrollbars(cm, op.barMeasure);\n\n    if (op.selectionChanged) restartBlink(cm);\n\n    if (cm.state.focused && op.updateInput)\n      cm.display.input.reset(op.typing);\n  }\n\n  function endOperation_finish(op) {\n    var cm = op.cm, display = cm.display, doc = cm.doc;\n\n    if (op.updatedDisplay) postUpdateDisplay(cm, op.update);\n\n    // Abort mouse wheel delta measurement, when scrolling explicitly\n    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n      display.wheelStartX = display.wheelStartY = null;\n\n    // Propagate the scroll position to the actual DOM scroller\n    if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {\n      doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));\n      display.scrollbars.setScrollTop(doc.scrollTop);\n      display.scroller.scrollTop = doc.scrollTop;\n    }\n    if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {\n      doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - displayWidth(cm), op.scrollLeft));\n      display.scrollbars.setScrollLeft(doc.scrollLeft);\n      display.scroller.scrollLeft = doc.scrollLeft;\n      alignHorizontally(cm);\n    }\n    // If we need to scroll a specific position into view, do so.\n    if (op.scrollToPos) {\n      var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n                                     clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n      if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);\n    }\n\n    // Fire events for markers that are hidden/unidden by editing or\n    // undoing\n    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n    if (hidden) for (var i = 0; i < hidden.length; ++i)\n      if (!hidden[i].lines.length) signal(hidden[i], \"hide\");\n    if (unhidden) for (var i = 0; i < unhidden.length; ++i)\n      if (unhidden[i].lines.length) signal(unhidden[i], \"unhide\");\n\n    if (display.wrapper.offsetHeight)\n      doc.scrollTop = cm.display.scroller.scrollTop;\n\n    // Fire change events, and delayed event handlers\n    if (op.changeObjs)\n      signal(cm, \"changes\", cm, op.changeObjs);\n    if (op.update)\n      op.update.finish();\n  }\n\n  // Run the given function in an operation\n  function runInOp(cm, f) {\n    if (cm.curOp) return f();\n    startOperation(cm);\n    try { return f(); }\n    finally { endOperation(cm); }\n  }\n  // Wraps a function in an operation. Returns the wrapped function.\n  function operation(cm, f) {\n    return function() {\n      if (cm.curOp) return f.apply(cm, arguments);\n      startOperation(cm);\n      try { return f.apply(cm, arguments); }\n      finally { endOperation(cm); }\n    };\n  }\n  // Used to add methods to editor and doc instances, wrapping them in\n  // operations.\n  function methodOp(f) {\n    return function() {\n      if (this.curOp) return f.apply(this, arguments);\n      startOperation(this);\n      try { return f.apply(this, arguments); }\n      finally { endOperation(this); }\n    };\n  }\n  function docMethodOp(f) {\n    return function() {\n      var cm = this.cm;\n      if (!cm || cm.curOp) return f.apply(this, arguments);\n      startOperation(cm);\n      try { return f.apply(this, arguments); }\n      finally { endOperation(cm); }\n    };\n  }\n\n  // VIEW TRACKING\n\n  // These objects are used to represent the visible (currently drawn)\n  // part of the document. A LineView may correspond to multiple\n  // logical lines, if those are connected by collapsed ranges.\n  function LineView(doc, line, lineN) {\n    // The starting line\n    this.line = line;\n    // Continuing lines, if any\n    this.rest = visualLineContinued(line);\n    // Number of logical lines in this visual line\n    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n    this.node = this.text = null;\n    this.hidden = lineIsHidden(doc, line);\n  }\n\n  // Create a range of LineView objects for the given lines.\n  function buildViewArray(cm, from, to) {\n    var array = [], nextPos;\n    for (var pos = from; pos < to; pos = nextPos) {\n      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n      nextPos = pos + view.size;\n      array.push(view);\n    }\n    return array;\n  }\n\n  // Updates the display.view data structure for a given change to the\n  // document. From and to are in pre-change coordinates. Lendiff is\n  // the amount of lines added or subtracted by the change. This is\n  // used for changes that span multiple lines, or change the way\n  // lines are divided into visual lines. regLineChange (below)\n  // registers single-line changes.\n  function regChange(cm, from, to, lendiff) {\n    if (from == null) from = cm.doc.first;\n    if (to == null) to = cm.doc.first + cm.doc.size;\n    if (!lendiff) lendiff = 0;\n\n    var display = cm.display;\n    if (lendiff && to < display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers > from))\n      display.updateLineNumbers = from;\n\n    cm.curOp.viewChanged = true;\n\n    if (from >= display.viewTo) { // Change after\n      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n        resetView(cm);\n    } else if (to <= display.viewFrom) { // Change before\n      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n        resetView(cm);\n      } else {\n        display.viewFrom += lendiff;\n        display.viewTo += lendiff;\n      }\n    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n      resetView(cm);\n    } else if (from <= display.viewFrom) { // Top overlap\n      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cut) {\n        display.view = display.view.slice(cut.index);\n        display.viewFrom = cut.lineN;\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    } else if (to >= display.viewTo) { // Bottom overlap\n      var cut = viewCuttingPoint(cm, from, from, -1);\n      if (cut) {\n        display.view = display.view.slice(0, cut.index);\n        display.viewTo = cut.lineN;\n      } else {\n        resetView(cm);\n      }\n    } else { // Gap in the middle\n      var cutTop = viewCuttingPoint(cm, from, from, -1);\n      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cutTop && cutBot) {\n        display.view = display.view.slice(0, cutTop.index)\n          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n          .concat(display.view.slice(cutBot.index));\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    }\n\n    var ext = display.externalMeasured;\n    if (ext) {\n      if (to < ext.lineN)\n        ext.lineN += lendiff;\n      else if (from < ext.lineN + ext.size)\n        display.externalMeasured = null;\n    }\n  }\n\n  // Register a change to a single line. Type must be one of \"text\",\n  // \"gutter\", \"class\", \"widget\"\n  function regLineChange(cm, line, type) {\n    cm.curOp.viewChanged = true;\n    var display = cm.display, ext = cm.display.externalMeasured;\n    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n      display.externalMeasured = null;\n\n    if (line < display.viewFrom || line >= display.viewTo) return;\n    var lineView = display.view[findViewIndex(cm, line)];\n    if (lineView.node == null) return;\n    var arr = lineView.changes || (lineView.changes = []);\n    if (indexOf(arr, type) == -1) arr.push(type);\n  }\n\n  // Clear the view.\n  function resetView(cm) {\n    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n    cm.display.view = [];\n    cm.display.viewOffset = 0;\n  }\n\n  // Find the view element corresponding to a given line. Return null\n  // when the line isn't visible.\n  function findViewIndex(cm, n) {\n    if (n >= cm.display.viewTo) return null;\n    n -= cm.display.viewFrom;\n    if (n < 0) return null;\n    var view = cm.display.view;\n    for (var i = 0; i < view.length; i++) {\n      n -= view[i].size;\n      if (n < 0) return i;\n    }\n  }\n\n  function viewCuttingPoint(cm, oldN, newN, dir) {\n    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n      return {index: index, lineN: newN};\n    for (var i = 0, n = cm.display.viewFrom; i < index; i++)\n      n += view[i].size;\n    if (n != oldN) {\n      if (dir > 0) {\n        if (index == view.length - 1) return null;\n        diff = (n + view[index].size) - oldN;\n        index++;\n      } else {\n        diff = n - oldN;\n      }\n      oldN += diff; newN += diff;\n    }\n    while (visualLineNo(cm.doc, newN) != newN) {\n      if (index == (dir < 0 ? 0 : view.length - 1)) return null;\n      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n      index += dir;\n    }\n    return {index: index, lineN: newN};\n  }\n\n  // Force the view to cover a given range, adding empty view element\n  // or clipping off existing ones as needed.\n  function adjustView(cm, from, to) {\n    var display = cm.display, view = display.view;\n    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n      display.view = buildViewArray(cm, from, to);\n      display.viewFrom = from;\n    } else {\n      if (display.viewFrom > from)\n        display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);\n      else if (display.viewFrom < from)\n        display.view = display.view.slice(findViewIndex(cm, from));\n      display.viewFrom = from;\n      if (display.viewTo < to)\n        display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));\n      else if (display.viewTo > to)\n        display.view = display.view.slice(0, findViewIndex(cm, to));\n    }\n    display.viewTo = to;\n  }\n\n  // Count the number of lines in the view whose DOM representation is\n  // out of date (or nonexistent).\n  function countDirtyView(cm) {\n    var view = cm.display.view, dirty = 0;\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;\n    }\n    return dirty;\n  }\n\n  // EVENT HANDLERS\n\n  // Attach the necessary event handlers when initializing the editor\n  function registerEventHandlers(cm) {\n    var d = cm.display;\n    on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n    // Older IE's will not fire a second mousedown for a double click\n    if (ie && ie_version < 11)\n      on(d.scroller, \"dblclick\", operation(cm, function(e) {\n        if (signalDOMEvent(cm, e)) return;\n        var pos = posFromMouse(cm, e);\n        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;\n        e_preventDefault(e);\n        var word = cm.findWordAt(pos);\n        extendSelection(cm.doc, word.anchor, word.head);\n      }));\n    else\n      on(d.scroller, \"dblclick\", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });\n    // Some browsers fire contextmenu *after* opening the menu, at\n    // which point we can't mess with it anymore. Context menu is\n    // handled in onMouseDown for these browsers.\n    if (!captureRightClick) on(d.scroller, \"contextmenu\", function(e) {onContextMenu(cm, e);});\n\n    // Used to suppress mouse event handling when a touch happens\n    var touchFinished, prevTouch = {end: 0};\n    function finishTouch() {\n      if (d.activeTouch) {\n        touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);\n        prevTouch = d.activeTouch;\n        prevTouch.end = +new Date;\n      }\n    };\n    function isMouseLikeTouchEvent(e) {\n      if (e.touches.length != 1) return false;\n      var touch = e.touches[0];\n      return touch.radiusX <= 1 && touch.radiusY <= 1;\n    }\n    function farAway(touch, other) {\n      if (other.left == null) return true;\n      var dx = other.left - touch.left, dy = other.top - touch.top;\n      return dx * dx + dy * dy > 20 * 20;\n    }\n    on(d.scroller, \"touchstart\", function(e) {\n      if (!isMouseLikeTouchEvent(e)) {\n        clearTimeout(touchFinished);\n        var now = +new Date;\n        d.activeTouch = {start: now, moved: false,\n                         prev: now - prevTouch.end <= 300 ? prevTouch : null};\n        if (e.touches.length == 1) {\n          d.activeTouch.left = e.touches[0].pageX;\n          d.activeTouch.top = e.touches[0].pageY;\n        }\n      }\n    });\n    on(d.scroller, \"touchmove\", function() {\n      if (d.activeTouch) d.activeTouch.moved = true;\n    });\n    on(d.scroller, \"touchend\", function(e) {\n      var touch = d.activeTouch;\n      if (touch && !eventInWidget(d, e) && touch.left != null &&\n          !touch.moved && new Date - touch.start < 300) {\n        var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n        if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n          range = new Range(pos, pos);\n        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n          range = cm.findWordAt(pos);\n        else // Triple tap\n          range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));\n        cm.setSelection(range.anchor, range.head);\n        cm.focus();\n        e_preventDefault(e);\n      }\n      finishTouch();\n    });\n    on(d.scroller, \"touchcancel\", finishTouch);\n\n    // Sync scrolling between fake scrollbars and real scrollable\n    // area, ensure viewport is updated when scrolling.\n    on(d.scroller, \"scroll\", function() {\n      if (d.scroller.clientHeight) {\n        setScrollTop(cm, d.scroller.scrollTop);\n        setScrollLeft(cm, d.scroller.scrollLeft, true);\n        signal(cm, \"scroll\", cm);\n      }\n    });\n\n    // Listen to wheel events in order to try and update the viewport on time.\n    on(d.scroller, \"mousewheel\", function(e){onScrollWheel(cm, e);});\n    on(d.scroller, \"DOMMouseScroll\", function(e){onScrollWheel(cm, e);});\n\n    // Prevent wrapper from ever scrolling\n    on(d.wrapper, \"scroll\", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n    function drag_(e) {\n      if (!signalDOMEvent(cm, e)) e_stop(e);\n    }\n    if (cm.options.dragDrop) {\n      on(d.scroller, \"dragstart\", function(e){onDragStart(cm, e);});\n      on(d.scroller, \"dragenter\", drag_);\n      on(d.scroller, \"dragover\", drag_);\n      on(d.scroller, \"drop\", operation(cm, onDrop));\n    }\n\n    var inp = d.input.getField();\n    on(inp, \"keyup\", function(e) { onKeyUp.call(cm, e); });\n    on(inp, \"keydown\", operation(cm, onKeyDown));\n    on(inp, \"keypress\", operation(cm, onKeyPress));\n    on(inp, \"focus\", bind(onFocus, cm));\n    on(inp, \"blur\", bind(onBlur, cm));\n  }\n\n  // Called when the window resizes\n  function onResize(cm) {\n    var d = cm.display;\n    if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)\n      return;\n    // Might be a text scaling operation, clear size caches.\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n    d.scrollbarsClipped = false;\n    cm.setSize();\n  }\n\n  // MOUSE EVENTS\n\n  // Return true when the given mouse event happened in a widget\n  function eventInWidget(display, e) {\n    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n      if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n          (n.parentNode == display.sizer && n != display.mover))\n        return true;\n    }\n  }\n\n  // Given a mouse event, find the corresponding position. If liberal\n  // is false, it checks whether a gutter or scrollbar was clicked,\n  // and returns null if it was. forRect is used by rectangular\n  // selections, and tries to estimate a character position even for\n  // coordinates beyond the right of the text.\n  function posFromMouse(cm, e, liberal, forRect) {\n    var display = cm.display;\n    if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") return null;\n\n    var x, y, space = display.lineSpace.getBoundingClientRect();\n    // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n    try { x = e.clientX - space.left; y = e.clientY - space.top; }\n    catch (e) { return null; }\n    var coords = coordsChar(cm, x, y), line;\n    if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n    }\n    return coords;\n  }\n\n  // A mouse down can be a single click, double click, triple click,\n  // start of selection drag, start of text drag, new cursor\n  // (ctrl-click), rectangle drag (alt-drag), or xwin\n  // middle-click-paste. Or it might be a click on something we should\n  // not interfere with, such as a scrollbar or widget.\n  function onMouseDown(e) {\n    var cm = this, display = cm.display;\n    if (display.activeTouch && display.input.supportsTouch() || signalDOMEvent(cm, e)) return;\n    display.shift = e.shiftKey;\n\n    if (eventInWidget(display, e)) {\n      if (!webkit) {\n        // Briefly turn off draggability, to allow widgets to do\n        // normal dragging things.\n        display.scroller.draggable = false;\n        setTimeout(function(){display.scroller.draggable = true;}, 100);\n      }\n      return;\n    }\n    if (clickInGutter(cm, e)) return;\n    var start = posFromMouse(cm, e);\n    window.focus();\n\n    switch (e_button(e)) {\n    case 1:\n      if (start)\n        leftButtonDown(cm, e, start);\n      else if (e_target(e) == display.scroller)\n        e_preventDefault(e);\n      break;\n    case 2:\n      if (webkit) cm.state.lastMiddleDown = +new Date;\n      if (start) extendSelection(cm.doc, start);\n      setTimeout(function() {display.input.focus();}, 20);\n      e_preventDefault(e);\n      break;\n    case 3:\n      if (captureRightClick) onContextMenu(cm, e);\n      break;\n    }\n  }\n\n  var lastClick, lastDoubleClick;\n  function leftButtonDown(cm, e, start) {\n    if (ie) setTimeout(bind(ensureFocus, cm), 0);\n    else ensureFocus(cm);\n\n    var now = +new Date, type;\n    if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {\n      type = \"triple\";\n    } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {\n      type = \"double\";\n      lastDoubleClick = {time: now, pos: start};\n    } else {\n      type = \"single\";\n      lastClick = {time: now, pos: start};\n    }\n\n    var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;\n    if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) &&\n        type == \"single\" && (contained = sel.contains(start)) > -1 &&\n        !sel.ranges[contained].empty())\n      leftButtonStartDrag(cm, e, start, modifier);\n    else\n      leftButtonSelect(cm, e, start, type, modifier);\n  }\n\n  // Start a text drag. When it ends, see if any dragging actually\n  // happen, and treat as a click if it didn't.\n  function leftButtonStartDrag(cm, e, start, modifier) {\n    var display = cm.display;\n    var dragEnd = operation(cm, function(e2) {\n      if (webkit) display.scroller.draggable = false;\n      cm.state.draggingText = false;\n      off(document, \"mouseup\", dragEnd);\n      off(display.scroller, \"drop\", dragEnd);\n      if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {\n        e_preventDefault(e2);\n        if (!modifier)\n          extendSelection(cm.doc, start);\n        display.input.focus();\n        // Work around unexplainable focus problem in IE9 (#2127)\n        if (ie && ie_version == 9)\n          setTimeout(function() {document.body.focus(); display.input.focus();}, 20);\n      }\n    });\n    // Let the drag handler handle this.\n    if (webkit) display.scroller.draggable = true;\n    cm.state.draggingText = dragEnd;\n    // IE's approach to draggable\n    if (display.scroller.dragDrop) display.scroller.dragDrop();\n    on(document, \"mouseup\", dragEnd);\n    on(display.scroller, \"drop\", dragEnd);\n  }\n\n  // Normal selection, as opposed to text dragging.\n  function leftButtonSelect(cm, e, start, type, addNew) {\n    var display = cm.display, doc = cm.doc;\n    e_preventDefault(e);\n\n    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n    if (addNew && !e.shiftKey) {\n      ourIndex = doc.sel.contains(start);\n      if (ourIndex > -1)\n        ourRange = ranges[ourIndex];\n      else\n        ourRange = new Range(start, start);\n    } else {\n      ourRange = doc.sel.primary();\n    }\n\n    if (e.altKey) {\n      type = \"rect\";\n      if (!addNew) ourRange = new Range(start, start);\n      start = posFromMouse(cm, e, true, true);\n      ourIndex = -1;\n    } else if (type == \"double\") {\n      var word = cm.findWordAt(start);\n      if (cm.display.shift || doc.extend)\n        ourRange = extendRange(doc, ourRange, word.anchor, word.head);\n      else\n        ourRange = word;\n    } else if (type == \"triple\") {\n      var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));\n      if (cm.display.shift || doc.extend)\n        ourRange = extendRange(doc, ourRange, line.anchor, line.head);\n      else\n        ourRange = line;\n    } else {\n      ourRange = extendRange(doc, ourRange, start);\n    }\n\n    if (!addNew) {\n      ourIndex = 0;\n      setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n      startSel = doc.sel;\n    } else if (ourIndex == -1) {\n      ourIndex = ranges.length;\n      setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),\n                   {scroll: false, origin: \"*mouse\"});\n    } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == \"single\") {\n      setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0));\n      startSel = doc.sel;\n    } else {\n      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n    }\n\n    var lastPos = start;\n    function extendTo(pos) {\n      if (cmp(lastPos, pos) == 0) return;\n      lastPos = pos;\n\n      if (type == \"rect\") {\n        var ranges = [], tabSize = cm.options.tabSize;\n        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n             line <= end; line++) {\n          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n          if (left == right)\n            ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));\n          else if (text.length > leftPos)\n            ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));\n        }\n        if (!ranges.length) ranges.push(new Range(start, start));\n        setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n                     {origin: \"*mouse\", scroll: false});\n        cm.scrollIntoView(pos);\n      } else {\n        var oldRange = ourRange;\n        var anchor = oldRange.anchor, head = pos;\n        if (type != \"single\") {\n          if (type == \"double\")\n            var range = cm.findWordAt(pos);\n          else\n            var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));\n          if (cmp(range.anchor, anchor) > 0) {\n            head = range.head;\n            anchor = minPos(oldRange.from(), range.anchor);\n          } else {\n            head = range.anchor;\n            anchor = maxPos(oldRange.to(), range.head);\n          }\n        }\n        var ranges = startSel.ranges.slice(0);\n        ranges[ourIndex] = new Range(clipPos(doc, anchor), head);\n        setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);\n      }\n    }\n\n    var editorSize = display.wrapper.getBoundingClientRect();\n    // Used to ensure timeout re-tries don't fire when another extend\n    // happened in the meantime (clearTimeout isn't reliable -- at\n    // least on Chrome, the timeouts still happen even when cleared,\n    // if the clear happens after their scheduled firing time).\n    var counter = 0;\n\n    function extend(e) {\n      var curCount = ++counter;\n      var cur = posFromMouse(cm, e, true, type == \"rect\");\n      if (!cur) return;\n      if (cmp(cur, lastPos) != 0) {\n        ensureFocus(cm);\n        extendTo(cur);\n        var visible = visibleLines(display, doc);\n        if (cur.line >= visible.to || cur.line < visible.from)\n          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);\n      } else {\n        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n        if (outside) setTimeout(operation(cm, function() {\n          if (counter != curCount) return;\n          display.scroller.scrollTop += outside;\n          extend(e);\n        }), 50);\n      }\n    }\n\n    function done(e) {\n      counter = Infinity;\n      e_preventDefault(e);\n      display.input.focus();\n      off(document, \"mousemove\", move);\n      off(document, \"mouseup\", up);\n      doc.history.lastSelOrigin = null;\n    }\n\n    var move = operation(cm, function(e) {\n      if (!e_button(e)) done(e);\n      else extend(e);\n    });\n    var up = operation(cm, done);\n    on(document, \"mousemove\", move);\n    on(document, \"mouseup\", up);\n  }\n\n  // Determines whether an event happened in the gutter, and fires the\n  // handlers for the corresponding event.\n  function gutterEvent(cm, e, type, prevent, signalfn) {\n    try { var mX = e.clientX, mY = e.clientY; }\n    catch(e) { return false; }\n    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;\n    if (prevent) e_preventDefault(e);\n\n    var display = cm.display;\n    var lineBox = display.lineDiv.getBoundingClientRect();\n\n    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);\n    mY -= lineBox.top - display.viewOffset;\n\n    for (var i = 0; i < cm.options.gutters.length; ++i) {\n      var g = display.gutters.childNodes[i];\n      if (g && g.getBoundingClientRect().right >= mX) {\n        var line = lineAtHeight(cm.doc, mY);\n        var gutter = cm.options.gutters[i];\n        signalfn(cm, type, cm, line, gutter, e);\n        return e_defaultPrevented(e);\n      }\n    }\n  }\n\n  function clickInGutter(cm, e) {\n    return gutterEvent(cm, e, \"gutterClick\", true, signalLater);\n  }\n\n  // Kludge to work around strange IE behavior where it'll sometimes\n  // re-fire a series of drag-related events right after the drop (#1551)\n  var lastDrop = 0;\n\n  function onDrop(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n      return;\n    e_preventDefault(e);\n    if (ie) lastDrop = +new Date;\n    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n    if (!pos || isReadOnly(cm)) return;\n    // Might be a file drop, in which case we simply extract the text\n    // and insert it.\n    if (files && files.length && window.FileReader && window.File) {\n      var n = files.length, text = Array(n), read = 0;\n      var loadFile = function(file, i) {\n        var reader = new FileReader;\n        reader.onload = operation(cm, function() {\n          text[i] = reader.result;\n          if (++read == n) {\n            pos = clipPos(cm.doc, pos);\n            var change = {from: pos, to: pos, text: splitLines(text.join(\"\\n\")), origin: \"paste\"};\n            makeChange(cm.doc, change);\n            setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));\n          }\n        });\n        reader.readAsText(file);\n      };\n      for (var i = 0; i < n; ++i) loadFile(files[i], i);\n    } else { // Normal drop\n      // Don't do a replace if the drop happened inside of the selected text.\n      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n        cm.state.draggingText(e);\n        // Ensure the editor is re-focused\n        setTimeout(function() {cm.display.input.focus();}, 20);\n        return;\n      }\n      try {\n        var text = e.dataTransfer.getData(\"Text\");\n        if (text) {\n          if (cm.state.draggingText && !(mac ? e.metaKey : e.ctrlKey))\n            var selected = cm.listSelections();\n          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n          if (selected) for (var i = 0; i < selected.length; ++i)\n            replaceRange(cm.doc, \"\", selected[i].anchor, selected[i].head, \"drag\");\n          cm.replaceSelection(text, \"around\", \"paste\");\n          cm.display.input.focus();\n        }\n      }\n      catch(e){}\n    }\n  }\n\n  function onDragStart(cm, e) {\n    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;\n\n    e.dataTransfer.setData(\"Text\", cm.getSelection());\n\n    // Use dummy image instead of default browsers image.\n    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n    if (e.dataTransfer.setDragImage && !safari) {\n      var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n      img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n      if (presto) {\n        img.width = img.height = 1;\n        cm.display.wrapper.appendChild(img);\n        // Force a relayout, or Opera won't use our image for some obscure reason\n        img._top = img.offsetTop;\n      }\n      e.dataTransfer.setDragImage(img, 0, 0);\n      if (presto) img.parentNode.removeChild(img);\n    }\n  }\n\n  // SCROLL EVENTS\n\n  // Sync the scrollable area and scrollbars, ensure the viewport\n  // covers the visible area.\n  function setScrollTop(cm, val) {\n    if (Math.abs(cm.doc.scrollTop - val) < 2) return;\n    cm.doc.scrollTop = val;\n    if (!gecko) updateDisplaySimple(cm, {top: val});\n    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;\n    cm.display.scrollbars.setScrollTop(val);\n    if (gecko) updateDisplaySimple(cm);\n    startWorker(cm, 100);\n  }\n  // Sync scroller and scrollbar, ensure the gutter elements are\n  // aligned.\n  function setScrollLeft(cm, val, isScroller) {\n    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;\n    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);\n    cm.doc.scrollLeft = val;\n    alignHorizontally(cm);\n    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;\n    cm.display.scrollbars.setScrollLeft(val);\n  }\n\n  // Since the delta values reported on mouse wheel events are\n  // unstandardized between browsers and even browser versions, and\n  // generally horribly unpredictable, this code starts by measuring\n  // the scroll effect that the first few mouse wheel events have,\n  // and, from that, detects the way it can convert deltas to pixel\n  // offsets afterwards.\n  //\n  // The reason we want to know the amount a wheel event will scroll\n  // is that it gives us a chance to update the display before the\n  // actual scrolling happens, reducing flickering.\n\n  var wheelSamples = 0, wheelPixelsPerUnit = null;\n  // Fill in a browser-detected starting value on browsers where we\n  // know one. These don't have to be accurate -- the result of them\n  // being wrong would just be a slight flicker on the first wheel\n  // scroll (if it is large enough).\n  if (ie) wheelPixelsPerUnit = -.53;\n  else if (gecko) wheelPixelsPerUnit = 15;\n  else if (chrome) wheelPixelsPerUnit = -.7;\n  else if (safari) wheelPixelsPerUnit = -1/3;\n\n  var wheelEventDelta = function(e) {\n    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;\n    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;\n    else if (dy == null) dy = e.wheelDelta;\n    return {x: dx, y: dy};\n  };\n  CodeMirror.wheelEventPixels = function(e) {\n    var delta = wheelEventDelta(e);\n    delta.x *= wheelPixelsPerUnit;\n    delta.y *= wheelPixelsPerUnit;\n    return delta;\n  };\n\n  function onScrollWheel(cm, e) {\n    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n    var display = cm.display, scroll = display.scroller;\n    // Quit if there's nothing to scroll here\n    if (!(dx && scroll.scrollWidth > scroll.clientWidth ||\n          dy && scroll.scrollHeight > scroll.clientHeight)) return;\n\n    // Webkit browsers on OS X abort momentum scrolls when the target\n    // of the scroll event is removed from the scrollable element.\n    // This hack (see related code in patchDisplay) makes sure the\n    // element is kept around.\n    if (dy && mac && webkit) {\n      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n        for (var i = 0; i < view.length; i++) {\n          if (view[i].node == cur) {\n            cm.display.currentWheelTarget = cur;\n            break outer;\n          }\n        }\n      }\n    }\n\n    // On some browsers, horizontal scrolling will cause redraws to\n    // happen before the gutter has been realigned, causing it to\n    // wriggle around in a most unseemly way. When we have an\n    // estimated pixels/delta value, we just handle horizontal\n    // scrolling entirely here. It'll be slightly off from native, but\n    // better than glitching out.\n    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n      if (dy)\n        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));\n      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));\n      e_preventDefault(e);\n      display.wheelStartX = null; // Abort measurement, if in progress\n      return;\n    }\n\n    // 'Project' the visible viewport to cover the area that is being\n    // scrolled into view (if we know enough to estimate it).\n    if (dy && wheelPixelsPerUnit != null) {\n      var pixels = dy * wheelPixelsPerUnit;\n      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n      if (pixels < 0) top = Math.max(0, top + pixels - 50);\n      else bot = Math.min(cm.doc.height, bot + pixels + 50);\n      updateDisplaySimple(cm, {top: top, bottom: bot});\n    }\n\n    if (wheelSamples < 20) {\n      if (display.wheelStartX == null) {\n        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n        display.wheelDX = dx; display.wheelDY = dy;\n        setTimeout(function() {\n          if (display.wheelStartX == null) return;\n          var movedX = scroll.scrollLeft - display.wheelStartX;\n          var movedY = scroll.scrollTop - display.wheelStartY;\n          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n            (movedX && display.wheelDX && movedX / display.wheelDX);\n          display.wheelStartX = display.wheelStartY = null;\n          if (!sample) return;\n          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n          ++wheelSamples;\n        }, 200);\n      } else {\n        display.wheelDX += dx; display.wheelDY += dy;\n      }\n    }\n  }\n\n  // KEY EVENTS\n\n  // Run a handler that was bound to a key.\n  function doHandleBinding(cm, bound, dropShift) {\n    if (typeof bound == \"string\") {\n      bound = commands[bound];\n      if (!bound) return false;\n    }\n    // Ensure previous input has been read, so that the handler sees a\n    // consistent view of the document\n    cm.display.input.ensurePolled();\n    var prevShift = cm.display.shift, done = false;\n    try {\n      if (isReadOnly(cm)) cm.state.suppressEdits = true;\n      if (dropShift) cm.display.shift = false;\n      done = bound(cm) != Pass;\n    } finally {\n      cm.display.shift = prevShift;\n      cm.state.suppressEdits = false;\n    }\n    return done;\n  }\n\n  function lookupKeyForEditor(cm, name, handle) {\n    for (var i = 0; i < cm.state.keyMaps.length; i++) {\n      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n      if (result) return result;\n    }\n    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n      || lookupKey(name, cm.options.keyMap, handle, cm);\n  }\n\n  var stopSeq = new Delayed;\n  function dispatchKey(cm, name, e, handle) {\n    var seq = cm.state.keySeq;\n    if (seq) {\n      if (isModifierKey(name)) return \"handled\";\n      stopSeq.set(50, function() {\n        if (cm.state.keySeq == seq) {\n          cm.state.keySeq = null;\n          cm.display.input.reset();\n        }\n      });\n      name = seq + \" \" + name;\n    }\n    var result = lookupKeyForEditor(cm, name, handle);\n\n    if (result == \"multi\")\n      cm.state.keySeq = name;\n    if (result == \"handled\")\n      signalLater(cm, \"keyHandled\", cm, name, e);\n\n    if (result == \"handled\" || result == \"multi\") {\n      e_preventDefault(e);\n      restartBlink(cm);\n    }\n\n    if (seq && !result && /\\'$/.test(name)) {\n      e_preventDefault(e);\n      return true;\n    }\n    return !!result;\n  }\n\n  // Handle a key from the keydown event.\n  function handleKeyBinding(cm, e) {\n    var name = keyName(e, true);\n    if (!name) return false;\n\n    if (e.shiftKey && !cm.state.keySeq) {\n      // First try to resolve full name (including 'Shift-'). Failing\n      // that, see if there is a cursor-motion command (starting with\n      // 'go') bound to the keyname without 'Shift-'.\n      return dispatchKey(cm, \"Shift-\" + name, e, function(b) {return doHandleBinding(cm, b, true);})\n          || dispatchKey(cm, name, e, function(b) {\n               if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n                 return doHandleBinding(cm, b);\n             });\n    } else {\n      return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });\n    }\n  }\n\n  // Handle a key from the keypress event\n  function handleCharBinding(cm, e, ch) {\n    return dispatchKey(cm, \"'\" + ch + \"'\", e,\n                       function(b) { return doHandleBinding(cm, b, true); });\n  }\n\n  var lastStoppedKey = null;\n  function onKeyDown(e) {\n    var cm = this;\n    ensureFocus(cm);\n    if (signalDOMEvent(cm, e)) return;\n    // IE does strange things with escape.\n    if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;\n    var code = e.keyCode;\n    cm.display.shift = code == 16 || e.shiftKey;\n    var handled = handleKeyBinding(cm, e);\n    if (presto) {\n      lastStoppedKey = handled ? code : null;\n      // Opera has no cut event... we try to at least catch the key combo\n      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n        cm.replaceSelection(\"\", null, \"cut\");\n    }\n\n    // Turn mouse into crosshair when Alt is held on Mac.\n    if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n      showCrossHair(cm);\n  }\n\n  function showCrossHair(cm) {\n    var lineDiv = cm.display.lineDiv;\n    addClass(lineDiv, \"CodeMirror-crosshair\");\n\n    function up(e) {\n      if (e.keyCode == 18 || !e.altKey) {\n        rmClass(lineDiv, \"CodeMirror-crosshair\");\n        off(document, \"keyup\", up);\n        off(document, \"mouseover\", up);\n      }\n    }\n    on(document, \"keyup\", up);\n    on(document, \"mouseover\", up);\n  }\n\n  function onKeyUp(e) {\n    if (e.keyCode == 16) this.doc.sel.shift = false;\n    signalDOMEvent(this, e);\n  }\n\n  function onKeyPress(e) {\n    var cm = this;\n    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;\n    var keyCode = e.keyCode, charCode = e.charCode;\n    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}\n    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;\n    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n    if (handleCharBinding(cm, e, ch)) return;\n    cm.display.input.onKeyPress(e);\n  }\n\n  // FOCUS/BLUR EVENTS\n\n  function onFocus(cm) {\n    if (cm.options.readOnly == \"nocursor\") return;\n    if (!cm.state.focused) {\n      signal(cm, \"focus\", cm);\n      cm.state.focused = true;\n      addClass(cm.display.wrapper, \"CodeMirror-focused\");\n      // This test prevents this from firing when a context\n      // menu is closed (since the input reset would kill the\n      // select-all detection hack)\n      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n        cm.display.input.reset();\n        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730\n      }\n      cm.display.input.receivedFocus();\n    }\n    restartBlink(cm);\n  }\n  function onBlur(cm) {\n    if (cm.state.focused) {\n      signal(cm, \"blur\", cm);\n      cm.state.focused = false;\n      rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n    }\n    clearInterval(cm.display.blinker);\n    setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);\n  }\n\n  // CONTEXT MENU HANDLING\n\n  // To make the context menu work, we need to briefly unhide the\n  // textarea (making it as unobtrusive as possible) to let the\n  // right-click take effect on it.\n  function onContextMenu(cm, e) {\n    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;\n    cm.display.input.onContextMenu(e);\n  }\n\n  function contextMenuInGutter(cm, e) {\n    if (!hasHandler(cm, \"gutterContextMenu\")) return false;\n    return gutterEvent(cm, e, \"gutterContextMenu\", false, signal);\n  }\n\n  // UPDATING\n\n  // Compute the position of the end of a change (its 'to' property\n  // refers to the pre-change end).\n  var changeEnd = CodeMirror.changeEnd = function(change) {\n    if (!change.text) return change.to;\n    return Pos(change.from.line + change.text.length - 1,\n               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));\n  };\n\n  // Adjust a position to refer to the post-change position of the\n  // same text, or the end of the change if the change covers it.\n  function adjustForChange(pos, change) {\n    if (cmp(pos, change.from) < 0) return pos;\n    if (cmp(pos, change.to) <= 0) return changeEnd(change);\n\n    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n    if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;\n    return Pos(line, ch);\n  }\n\n  function computeSelAfterChange(doc, change) {\n    var out = [];\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      var range = doc.sel.ranges[i];\n      out.push(new Range(adjustForChange(range.anchor, change),\n                         adjustForChange(range.head, change)));\n    }\n    return normalizeSelection(out, doc.sel.primIndex);\n  }\n\n  function offsetPos(pos, old, nw) {\n    if (pos.line == old.line)\n      return Pos(nw.line, pos.ch - old.ch + nw.ch);\n    else\n      return Pos(nw.line + (pos.line - old.line), pos.ch);\n  }\n\n  // Used by replaceSelections to allow moving the selection to the\n  // start or around the replaced test. Hint may be \"start\" or \"around\".\n  function computeReplacedSel(doc, changes, hint) {\n    var out = [];\n    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n    for (var i = 0; i < changes.length; i++) {\n      var change = changes[i];\n      var from = offsetPos(change.from, oldPrev, newPrev);\n      var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n      oldPrev = change.to;\n      newPrev = to;\n      if (hint == \"around\") {\n        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n        out[i] = new Range(inv ? to : from, inv ? from : to);\n      } else {\n        out[i] = new Range(from, from);\n      }\n    }\n    return new Selection(out, doc.sel.primIndex);\n  }\n\n  // Allow \"beforeChange\" event handlers to influence a change\n  function filterChange(doc, change, update) {\n    var obj = {\n      canceled: false,\n      from: change.from,\n      to: change.to,\n      text: change.text,\n      origin: change.origin,\n      cancel: function() { this.canceled = true; }\n    };\n    if (update) obj.update = function(from, to, text, origin) {\n      if (from) this.from = clipPos(doc, from);\n      if (to) this.to = clipPos(doc, to);\n      if (text) this.text = text;\n      if (origin !== undefined) this.origin = origin;\n    };\n    signal(doc, \"beforeChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeChange\", doc.cm, obj);\n\n    if (obj.canceled) return null;\n    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};\n  }\n\n  // Apply a change to a document, and add it to the document's\n  // history, and propagating it to all linked documents.\n  function makeChange(doc, change, ignoreReadOnly) {\n    if (doc.cm) {\n      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);\n      if (doc.cm.state.suppressEdits) return;\n    }\n\n    if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n      change = filterChange(doc, change, true);\n      if (!change) return;\n    }\n\n    // Possibly split or suppress the update based on the presence\n    // of read-only spans in its range.\n    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n    if (split) {\n      for (var i = split.length - 1; i >= 0; --i)\n        makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text});\n    } else {\n      makeChangeInner(doc, change);\n    }\n  }\n\n  function makeChangeInner(doc, change) {\n    if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) return;\n    var selAfter = computeSelAfterChange(doc, change);\n    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n    var rebased = [];\n\n    linkedDocs(doc, function(doc, sharedHist) {\n      if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n        rebaseHist(doc.history, change);\n        rebased.push(doc.history);\n      }\n      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n    });\n  }\n\n  // Revert a change stored in a document's history.\n  function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n    if (doc.cm && doc.cm.state.suppressEdits) return;\n\n    var hist = doc.history, event, selAfter = doc.sel;\n    var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n    // Verify that there is a useable event (so that ctrl-z won't\n    // needlessly clear selection events)\n    for (var i = 0; i < source.length; i++) {\n      event = source[i];\n      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n        break;\n    }\n    if (i == source.length) return;\n    hist.lastOrigin = hist.lastSelOrigin = null;\n\n    for (;;) {\n      event = source.pop();\n      if (event.ranges) {\n        pushSelectionToHistory(event, dest);\n        if (allowSelectionOnly && !event.equals(doc.sel)) {\n          setSelection(doc, event, {clearRedo: false});\n          return;\n        }\n        selAfter = event;\n      }\n      else break;\n    }\n\n    // Build up a reverse change object to add to the opposite history\n    // stack (redo when undoing, and vice versa).\n    var antiChanges = [];\n    pushSelectionToHistory(selAfter, dest);\n    dest.push({changes: antiChanges, generation: hist.generation});\n    hist.generation = event.generation || ++hist.maxGeneration;\n\n    var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n    for (var i = event.changes.length - 1; i >= 0; --i) {\n      var change = event.changes[i];\n      change.origin = type;\n      if (filter && !filterChange(doc, change, false)) {\n        source.length = 0;\n        return;\n      }\n\n      antiChanges.push(historyChangeFromChange(doc, change));\n\n      var after = i ? computeSelAfterChange(doc, change) : lst(source);\n      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n      if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});\n      var rebased = [];\n\n      // Propagate to the linked documents\n      linkedDocs(doc, function(doc, sharedHist) {\n        if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n          rebaseHist(doc.history, change);\n          rebased.push(doc.history);\n        }\n        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n      });\n    }\n  }\n\n  // Sub-views need their line numbers shifted when text is added\n  // above or below them in the parent document.\n  function shiftDoc(doc, distance) {\n    if (distance == 0) return;\n    doc.first += distance;\n    doc.sel = new Selection(map(doc.sel.ranges, function(range) {\n      return new Range(Pos(range.anchor.line + distance, range.anchor.ch),\n                       Pos(range.head.line + distance, range.head.ch));\n    }), doc.sel.primIndex);\n    if (doc.cm) {\n      regChange(doc.cm, doc.first, doc.first - distance, distance);\n      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n        regLineChange(doc.cm, l, \"gutter\");\n    }\n  }\n\n  // More lower-level change function, handling only a single document\n  // (not linked ones).\n  function makeChangeSingleDoc(doc, change, selAfter, spans) {\n    if (doc.cm && !doc.cm.curOp)\n      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);\n\n    if (change.to.line < doc.first) {\n      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n      return;\n    }\n    if (change.from.line > doc.lastLine()) return;\n\n    // Clip the change to the size of this doc\n    if (change.from.line < doc.first) {\n      var shift = change.text.length - 1 - (doc.first - change.from.line);\n      shiftDoc(doc, shift);\n      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n                text: [lst(change.text)], origin: change.origin};\n    }\n    var last = doc.lastLine();\n    if (change.to.line > last) {\n      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n                text: [change.text[0]], origin: change.origin};\n    }\n\n    change.removed = getBetween(doc, change.from, change.to);\n\n    if (!selAfter) selAfter = computeSelAfterChange(doc, change);\n    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);\n    else updateDoc(doc, change, spans);\n    setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n  }\n\n  // Handle the interaction of a change to a document with the editor\n  // that this document is part of.\n  function makeChangeSingleDocInEditor(cm, change, spans) {\n    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n    var recomputeMaxLength = false, checkWidthStart = from.line;\n    if (!cm.options.lineWrapping) {\n      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n      doc.iter(checkWidthStart, to.line + 1, function(line) {\n        if (line == display.maxLine) {\n          recomputeMaxLength = true;\n          return true;\n        }\n      });\n    }\n\n    if (doc.sel.contains(change.from, change.to) > -1)\n      signalCursorActivity(cm);\n\n    updateDoc(doc, change, spans, estimateHeight(cm));\n\n    if (!cm.options.lineWrapping) {\n      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {\n        var len = lineLength(line);\n        if (len > display.maxLineLength) {\n          display.maxLine = line;\n          display.maxLineLength = len;\n          display.maxLineChanged = true;\n          recomputeMaxLength = false;\n        }\n      });\n      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;\n    }\n\n    // Adjust frontier, schedule worker\n    doc.frontier = Math.min(doc.frontier, from.line);\n    startWorker(cm, 400);\n\n    var lendiff = change.text.length - (to.line - from.line) - 1;\n    // Remember that these lines changed, for updating the display\n    if (change.full)\n      regChange(cm);\n    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n      regLineChange(cm, from.line, \"text\");\n    else\n      regChange(cm, from.line, to.line + 1, lendiff);\n\n    var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n    if (changeHandler || changesHandler) {\n      var obj = {\n        from: from, to: to,\n        text: change.text,\n        removed: change.removed,\n        origin: change.origin\n      };\n      if (changeHandler) signalLater(cm, \"change\", cm, obj);\n      if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);\n    }\n    cm.display.selForContextMenu = null;\n  }\n\n  function replaceRange(doc, code, from, to, origin) {\n    if (!to) to = from;\n    if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }\n    if (typeof code == \"string\") code = splitLines(code);\n    makeChange(doc, {from: from, to: to, text: code, origin: origin});\n  }\n\n  // SCROLLING THINGS INTO VIEW\n\n  // If an editor sits on the top or bottom of the window, partially\n  // scrolled out of view, this ensures that the cursor is visible.\n  function maybeScrollWindow(cm, coords) {\n    if (signalDOMEvent(cm, \"scrollCursorIntoView\")) return;\n\n    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n    if (coords.top + box.top < 0) doScroll = true;\n    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;\n    if (doScroll != null && !phantom) {\n      var scrollNode = elt(\"div\", \"\\u200b\", null, \"position: absolute; top: \" +\n                           (coords.top - display.viewOffset - paddingTop(cm.display)) + \"px; height: \" +\n                           (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + \"px; left: \" +\n                           coords.left + \"px; width: 2px;\");\n      cm.display.lineSpace.appendChild(scrollNode);\n      scrollNode.scrollIntoView(doScroll);\n      cm.display.lineSpace.removeChild(scrollNode);\n    }\n  }\n\n  // Scroll a given position into view (immediately), verifying that\n  // it actually became visible (as line heights are accurately\n  // measured, the position of something may 'drift' during drawing).\n  function scrollPosIntoView(cm, pos, end, margin) {\n    if (margin == null) margin = 0;\n    for (var limit = 0; limit < 5; limit++) {\n      var changed = false, coords = cursorCoords(cm, pos);\n      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),\n                                         Math.min(coords.top, endCoords.top) - margin,\n                                         Math.max(coords.left, endCoords.left),\n                                         Math.max(coords.bottom, endCoords.bottom) + margin);\n      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n      if (scrollPos.scrollTop != null) {\n        setScrollTop(cm, scrollPos.scrollTop);\n        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;\n      }\n      if (scrollPos.scrollLeft != null) {\n        setScrollLeft(cm, scrollPos.scrollLeft);\n        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;\n      }\n      if (!changed) break;\n    }\n    return coords;\n  }\n\n  // Scroll a given set of coordinates into view (immediately).\n  function scrollIntoView(cm, x1, y1, x2, y2) {\n    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);\n    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);\n    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);\n  }\n\n  // Calculate a new scroll position needed to scroll the given\n  // rectangle into view. Returns an object with scrollTop and\n  // scrollLeft properties. When these are undefined, the\n  // vertical/horizontal position does not need to be adjusted.\n  function calculateScrollPos(cm, x1, y1, x2, y2) {\n    var display = cm.display, snapMargin = textHeight(cm.display);\n    if (y1 < 0) y1 = 0;\n    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n    var screen = displayHeight(cm), result = {};\n    if (y2 - y1 > screen) y2 = y1 + screen;\n    var docBottom = cm.doc.height + paddingVert(display);\n    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;\n    if (y1 < screentop) {\n      result.scrollTop = atTop ? 0 : y1;\n    } else if (y2 > screentop + screen) {\n      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);\n      if (newTop != screentop) result.scrollTop = newTop;\n    }\n\n    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;\n    var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);\n    var tooWide = x2 - x1 > screenw;\n    if (tooWide) x2 = x1 + screenw;\n    if (x1 < 10)\n      result.scrollLeft = 0;\n    else if (x1 < screenleft)\n      result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));\n    else if (x2 > screenw + screenleft - 3)\n      result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;\n    return result;\n  }\n\n  // Store a relative adjustment to the scroll position in the current\n  // operation (to be applied when the operation finishes).\n  function addToScrollPos(cm, left, top) {\n    if (left != null || top != null) resolveScrollToPos(cm);\n    if (left != null)\n      cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;\n    if (top != null)\n      cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n  }\n\n  // Make sure that at the end of the operation the current cursor is\n  // shown.\n  function ensureCursorVisible(cm) {\n    resolveScrollToPos(cm);\n    var cur = cm.getCursor(), from = cur, to = cur;\n    if (!cm.options.lineWrapping) {\n      from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;\n      to = Pos(cur.line, cur.ch + 1);\n    }\n    cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};\n  }\n\n  // When an operation has its scrollToPos property set, and another\n  // scroll action is applied before the end of the operation, this\n  // 'simulates' scrolling that position into view in a cheap way, so\n  // that the effect of intermediate scroll commands is not ignored.\n  function resolveScrollToPos(cm) {\n    var range = cm.curOp.scrollToPos;\n    if (range) {\n      cm.curOp.scrollToPos = null;\n      var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n      var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),\n                                    Math.min(from.top, to.top) - range.margin,\n                                    Math.max(from.right, to.right),\n                                    Math.max(from.bottom, to.bottom) + range.margin);\n      cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);\n    }\n  }\n\n  // API UTILITIES\n\n  // Indent the given line. The how parameter can be \"smart\",\n  // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n  // (typically set to true for forced single-line indents), empty\n  // lines are not indented, and places where the mode returns Pass\n  // are left alone.\n  function indentLine(cm, n, how, aggressive) {\n    var doc = cm.doc, state;\n    if (how == null) how = \"add\";\n    if (how == \"smart\") {\n      // Fall back to \"prev\" when the mode doesn't have an indentation\n      // method.\n      if (!doc.mode.indent) how = \"prev\";\n      else state = getStateBefore(cm, n);\n    }\n\n    var tabSize = cm.options.tabSize;\n    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n    if (line.stateAfter) line.stateAfter = null;\n    var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n    if (!aggressive && !/\\S/.test(line.text)) {\n      indentation = 0;\n      how = \"not\";\n    } else if (how == \"smart\") {\n      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n      if (indentation == Pass || indentation > 150) {\n        if (!aggressive) return;\n        how = \"prev\";\n      }\n    }\n    if (how == \"prev\") {\n      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);\n      else indentation = 0;\n    } else if (how == \"add\") {\n      indentation = curSpace + cm.options.indentUnit;\n    } else if (how == \"subtract\") {\n      indentation = curSpace - cm.options.indentUnit;\n    } else if (typeof how == \"number\") {\n      indentation = curSpace + how;\n    }\n    indentation = Math.max(0, indentation);\n\n    var indentString = \"\", pos = 0;\n    if (cm.options.indentWithTabs)\n      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";}\n    if (pos < indentation) indentString += spaceStr(indentation - pos);\n\n    if (indentString != curSpaceString) {\n      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n    } else {\n      // Ensure that, if the cursor was in the whitespace at the start\n      // of the line, it is moved to the end of that space.\n      for (var i = 0; i < doc.sel.ranges.length; i++) {\n        var range = doc.sel.ranges[i];\n        if (range.head.line == n && range.head.ch < curSpaceString.length) {\n          var pos = Pos(n, curSpaceString.length);\n          replaceOneSelection(doc, i, new Range(pos, pos));\n          break;\n        }\n      }\n    }\n    line.stateAfter = null;\n  }\n\n  // Utility for applying a change to a line by handle or number,\n  // returning the number and optionally registering the line as\n  // changed.\n  function changeLine(doc, handle, changeType, op) {\n    var no = handle, line = handle;\n    if (typeof handle == \"number\") line = getLine(doc, clipLine(doc, handle));\n    else no = lineNo(handle);\n    if (no == null) return null;\n    if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);\n    return line;\n  }\n\n  // Helper for deleting text near the selection(s), used to implement\n  // backspace, delete, and similar functionality.\n  function deleteNearSelection(cm, compute) {\n    var ranges = cm.doc.sel.ranges, kill = [];\n    // Build up a set of ranges to kill first, merging overlapping\n    // ranges.\n    for (var i = 0; i < ranges.length; i++) {\n      var toKill = compute(ranges[i]);\n      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n        var replaced = kill.pop();\n        if (cmp(replaced.from, toKill.from) < 0) {\n          toKill.from = replaced.from;\n          break;\n        }\n      }\n      kill.push(toKill);\n    }\n    // Next, remove those actual ranges.\n    runInOp(cm, function() {\n      for (var i = kill.length - 1; i >= 0; i--)\n        replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\");\n      ensureCursorVisible(cm);\n    });\n  }\n\n  // Used for horizontal relative motion. Dir is -1 or 1 (left or\n  // right), unit can be \"char\", \"column\" (like char, but doesn't\n  // cross line boundaries), \"word\" (across next word), or \"group\" (to\n  // the start of next group of word or non-word-non-whitespace\n  // chars). The visually param controls whether, in right-to-left\n  // text, direction 1 means to move towards the next index in the\n  // string, or towards the character to the right of the current\n  // position. The resulting position will have a hitSide=true\n  // property if it reached the end of the document.\n  function findPosH(doc, pos, dir, unit, visually) {\n    var line = pos.line, ch = pos.ch, origDir = dir;\n    var lineObj = getLine(doc, line);\n    var possible = true;\n    function findNextLine() {\n      var l = line + dir;\n      if (l < doc.first || l >= doc.first + doc.size) return (possible = false);\n      line = l;\n      return lineObj = getLine(doc, l);\n    }\n    function moveOnce(boundToLine) {\n      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);\n      if (next == null) {\n        if (!boundToLine && findNextLine()) {\n          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);\n          else ch = dir < 0 ? lineObj.text.length : 0;\n        } else return (possible = false);\n      } else ch = next;\n      return true;\n    }\n\n    if (unit == \"char\") moveOnce();\n    else if (unit == \"column\") moveOnce(true);\n    else if (unit == \"word\" || unit == \"group\") {\n      var sawType = null, group = unit == \"group\";\n      var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n      for (var first = true;; first = false) {\n        if (dir < 0 && !moveOnce(!first)) break;\n        var cur = lineObj.text.charAt(ch) || \"\\n\";\n        var type = isWordChar(cur, helper) ? \"w\"\n          : group && cur == \"\\n\" ? \"n\"\n          : !group || /\\s/.test(cur) ? null\n          : \"p\";\n        if (group && !first && !type) type = \"s\";\n        if (sawType && sawType != type) {\n          if (dir < 0) {dir = 1; moveOnce();}\n          break;\n        }\n\n        if (type) sawType = type;\n        if (dir > 0 && !moveOnce(!first)) break;\n      }\n    }\n    var result = skipAtomic(doc, Pos(line, ch), origDir, true);\n    if (!possible) result.hitSide = true;\n    return result;\n  }\n\n  // For relative vertical movement. Dir may be -1 or 1. Unit can be\n  // \"page\" or \"line\". The resulting position will have a hitSide=true\n  // property if it reached the end of the document.\n  function findPosV(cm, pos, dir, unit) {\n    var doc = cm.doc, x = pos.left, y;\n    if (unit == \"page\") {\n      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));\n    } else if (unit == \"line\") {\n      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n    }\n    for (;;) {\n      var target = coordsChar(cm, x, y);\n      if (!target.outside) break;\n      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }\n      y += dir * 5;\n    }\n    return target;\n  }\n\n  // EDITOR METHODS\n\n  // The publicly visible API. Note that methodOp(f) means\n  // 'wrap f in an operation, performed on its `this` parameter'.\n\n  // This is not the complete set of editor methods. Most of the\n  // methods defined on the Doc type are also injected into\n  // CodeMirror.prototype, for backwards compatibility and\n  // convenience.\n\n  CodeMirror.prototype = {\n    constructor: CodeMirror,\n    focus: function(){window.focus(); this.display.input.focus();},\n\n    setOption: function(option, value) {\n      var options = this.options, old = options[option];\n      if (options[option] == value && option != \"mode\") return;\n      options[option] = value;\n      if (optionHandlers.hasOwnProperty(option))\n        operation(this, optionHandlers[option])(this, value, old);\n    },\n\n    getOption: function(option) {return this.options[option];},\n    getDoc: function() {return this.doc;},\n\n    addKeyMap: function(map, bottom) {\n      this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n    },\n    removeKeyMap: function(map) {\n      var maps = this.state.keyMaps;\n      for (var i = 0; i < maps.length; ++i)\n        if (maps[i] == map || maps[i].name == map) {\n          maps.splice(i, 1);\n          return true;\n        }\n    },\n\n    addOverlay: methodOp(function(spec, options) {\n      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n      if (mode.startState) throw new Error(\"Overlays may not be stateful.\");\n      this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});\n      this.state.modeGen++;\n      regChange(this);\n    }),\n    removeOverlay: methodOp(function(spec) {\n      var overlays = this.state.overlays;\n      for (var i = 0; i < overlays.length; ++i) {\n        var cur = overlays[i].modeSpec;\n        if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n          overlays.splice(i, 1);\n          this.state.modeGen++;\n          regChange(this);\n          return;\n        }\n      }\n    }),\n\n    indentLine: methodOp(function(n, dir, aggressive) {\n      if (typeof dir != \"string\" && typeof dir != \"number\") {\n        if (dir == null) dir = this.options.smartIndent ? \"smart\" : \"prev\";\n        else dir = dir ? \"add\" : \"subtract\";\n      }\n      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);\n    }),\n    indentSelection: methodOp(function(how) {\n      var ranges = this.doc.sel.ranges, end = -1;\n      for (var i = 0; i < ranges.length; i++) {\n        var range = ranges[i];\n        if (!range.empty()) {\n          var from = range.from(), to = range.to();\n          var start = Math.max(end, from.line);\n          end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n          for (var j = start; j < end; ++j)\n            indentLine(this, j, how);\n          var newRanges = this.doc.sel.ranges;\n          if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n            replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);\n        } else if (range.head.line > end) {\n          indentLine(this, range.head.line, how, true);\n          end = range.head.line;\n          if (i == this.doc.sel.primIndex) ensureCursorVisible(this);\n        }\n      }\n    }),\n\n    // Fetch the parser token for a given character. Useful for hacks\n    // that want to inspect the mode state (say, for completion).\n    getTokenAt: function(pos, precise) {\n      return takeToken(this, pos, precise);\n    },\n\n    getLineTokens: function(line, precise) {\n      return takeToken(this, Pos(line), precise, true);\n    },\n\n    getTokenTypeAt: function(pos) {\n      pos = clipPos(this.doc, pos);\n      var styles = getLineStyles(this, getLine(this.doc, pos.line));\n      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n      var type;\n      if (ch == 0) type = styles[2];\n      else for (;;) {\n        var mid = (before + after) >> 1;\n        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;\n        else if (styles[mid * 2 + 1] < ch) before = mid + 1;\n        else { type = styles[mid * 2 + 2]; break; }\n      }\n      var cut = type ? type.indexOf(\"cm-overlay \") : -1;\n      return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);\n    },\n\n    getModeAt: function(pos) {\n      var mode = this.doc.mode;\n      if (!mode.innerMode) return mode;\n      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;\n    },\n\n    getHelper: function(pos, type) {\n      return this.getHelpers(pos, type)[0];\n    },\n\n    getHelpers: function(pos, type) {\n      var found = [];\n      if (!helpers.hasOwnProperty(type)) return helpers;\n      var help = helpers[type], mode = this.getModeAt(pos);\n      if (typeof mode[type] == \"string\") {\n        if (help[mode[type]]) found.push(help[mode[type]]);\n      } else if (mode[type]) {\n        for (var i = 0; i < mode[type].length; i++) {\n          var val = help[mode[type][i]];\n          if (val) found.push(val);\n        }\n      } else if (mode.helperType && help[mode.helperType]) {\n        found.push(help[mode.helperType]);\n      } else if (help[mode.name]) {\n        found.push(help[mode.name]);\n      }\n      for (var i = 0; i < help._global.length; i++) {\n        var cur = help._global[i];\n        if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n          found.push(cur.val);\n      }\n      return found;\n    },\n\n    getStateAfter: function(line, precise) {\n      var doc = this.doc;\n      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n      return getStateBefore(this, line + 1, precise);\n    },\n\n    cursorCoords: function(start, mode) {\n      var pos, range = this.doc.sel.primary();\n      if (start == null) pos = range.head;\n      else if (typeof start == \"object\") pos = clipPos(this.doc, start);\n      else pos = start ? range.from() : range.to();\n      return cursorCoords(this, pos, mode || \"page\");\n    },\n\n    charCoords: function(pos, mode) {\n      return charCoords(this, clipPos(this.doc, pos), mode || \"page\");\n    },\n\n    coordsChar: function(coords, mode) {\n      coords = fromCoordSystem(this, coords, mode || \"page\");\n      return coordsChar(this, coords.left, coords.top);\n    },\n\n    lineAtHeight: function(height, mode) {\n      height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n      return lineAtHeight(this.doc, height + this.display.viewOffset);\n    },\n    heightAtLine: function(line, mode) {\n      var end = false, last = this.doc.first + this.doc.size - 1;\n      if (line < this.doc.first) line = this.doc.first;\n      else if (line > last) { line = last; end = true; }\n      var lineObj = getLine(this.doc, line);\n      return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\").top +\n        (end ? this.doc.height - heightAtLine(lineObj) : 0);\n    },\n\n    defaultTextHeight: function() { return textHeight(this.display); },\n    defaultCharWidth: function() { return charWidth(this.display); },\n\n    setGutterMarker: methodOp(function(line, gutterID, value) {\n      return changeLine(this.doc, line, \"gutter\", function(line) {\n        var markers = line.gutterMarkers || (line.gutterMarkers = {});\n        markers[gutterID] = value;\n        if (!value && isEmpty(markers)) line.gutterMarkers = null;\n        return true;\n      });\n    }),\n\n    clearGutter: methodOp(function(gutterID) {\n      var cm = this, doc = cm.doc, i = doc.first;\n      doc.iter(function(line) {\n        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n          line.gutterMarkers[gutterID] = null;\n          regLineChange(cm, i, \"gutter\");\n          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;\n        }\n        ++i;\n      });\n    }),\n\n    addLineWidget: methodOp(function(handle, node, options) {\n      return addLineWidget(this, handle, node, options);\n    }),\n\n    removeLineWidget: function(widget) { widget.clear(); },\n\n    lineInfo: function(line) {\n      if (typeof line == \"number\") {\n        if (!isLine(this.doc, line)) return null;\n        var n = line;\n        line = getLine(this.doc, line);\n        if (!line) return null;\n      } else {\n        var n = lineNo(line);\n        if (n == null) return null;\n      }\n      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n              widgets: line.widgets};\n    },\n\n    getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},\n\n    addWidget: function(pos, node, scroll, vert, horiz) {\n      var display = this.display;\n      pos = cursorCoords(this, clipPos(this.doc, pos));\n      var top = pos.bottom, left = pos.left;\n      node.style.position = \"absolute\";\n      node.setAttribute(\"cm-ignore-events\", \"true\");\n      this.display.input.setUneditable(node);\n      display.sizer.appendChild(node);\n      if (vert == \"over\") {\n        top = pos.top;\n      } else if (vert == \"above\" || vert == \"near\") {\n        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n        // Default to positioning above (if specified and possible); otherwise default to positioning below\n        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n          top = pos.top - node.offsetHeight;\n        else if (pos.bottom + node.offsetHeight <= vspace)\n          top = pos.bottom;\n        if (left + node.offsetWidth > hspace)\n          left = hspace - node.offsetWidth;\n      }\n      node.style.top = top + \"px\";\n      node.style.left = node.style.right = \"\";\n      if (horiz == \"right\") {\n        left = display.sizer.clientWidth - node.offsetWidth;\n        node.style.right = \"0px\";\n      } else {\n        if (horiz == \"left\") left = 0;\n        else if (horiz == \"middle\") left = (display.sizer.clientWidth - node.offsetWidth) / 2;\n        node.style.left = left + \"px\";\n      }\n      if (scroll)\n        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);\n    },\n\n    triggerOnKeyDown: methodOp(onKeyDown),\n    triggerOnKeyPress: methodOp(onKeyPress),\n    triggerOnKeyUp: onKeyUp,\n\n    execCommand: function(cmd) {\n      if (commands.hasOwnProperty(cmd))\n        return commands[cmd](this);\n    },\n\n    findPosH: function(from, amount, unit, visually) {\n      var dir = 1;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        cur = findPosH(this.doc, cur, dir, unit, visually);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveH: methodOp(function(dir, unit) {\n      var cm = this;\n      cm.extendSelectionsBy(function(range) {\n        if (cm.display.shift || cm.doc.extend || range.empty())\n          return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);\n        else\n          return dir < 0 ? range.from() : range.to();\n      }, sel_move);\n    }),\n\n    deleteH: methodOp(function(dir, unit) {\n      var sel = this.doc.sel, doc = this.doc;\n      if (sel.somethingSelected())\n        doc.replaceSelection(\"\", null, \"+delete\");\n      else\n        deleteNearSelection(this, function(range) {\n          var other = findPosH(doc, range.head, dir, unit, false);\n          return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};\n        });\n    }),\n\n    findPosV: function(from, amount, unit, goalColumn) {\n      var dir = 1, x = goalColumn;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        var coords = cursorCoords(this, cur, \"div\");\n        if (x == null) x = coords.left;\n        else coords.left = x;\n        cur = findPosV(this, coords, dir, unit);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveV: methodOp(function(dir, unit) {\n      var cm = this, doc = this.doc, goals = [];\n      var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();\n      doc.extendSelectionsBy(function(range) {\n        if (collapse)\n          return dir < 0 ? range.from() : range.to();\n        var headPos = cursorCoords(cm, range.head, \"div\");\n        if (range.goalColumn != null) headPos.left = range.goalColumn;\n        goals.push(headPos.left);\n        var pos = findPosV(cm, headPos, dir, unit);\n        if (unit == \"page\" && range == doc.sel.primary())\n          addToScrollPos(cm, null, charCoords(cm, pos, \"div\").top - headPos.top);\n        return pos;\n      }, sel_move);\n      if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)\n        doc.sel.ranges[i].goalColumn = goals[i];\n    }),\n\n    // Find the word at the given position (as returned by coordsChar).\n    findWordAt: function(pos) {\n      var doc = this.doc, line = getLine(doc, pos.line).text;\n      var start = pos.ch, end = pos.ch;\n      if (line) {\n        var helper = this.getHelper(pos, \"wordChars\");\n        if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;\n        var startChar = line.charAt(start);\n        var check = isWordChar(startChar, helper)\n          ? function(ch) { return isWordChar(ch, helper); }\n          : /\\s/.test(startChar) ? function(ch) {return /\\s/.test(ch);}\n          : function(ch) {return !/\\s/.test(ch) && !isWordChar(ch);};\n        while (start > 0 && check(line.charAt(start - 1))) --start;\n        while (end < line.length && check(line.charAt(end))) ++end;\n      }\n      return new Range(Pos(pos.line, start), Pos(pos.line, end));\n    },\n\n    toggleOverwrite: function(value) {\n      if (value != null && value == this.state.overwrite) return;\n      if (this.state.overwrite = !this.state.overwrite)\n        addClass(this.display.cursorDiv, \"CodeMirror-overwrite\");\n      else\n        rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\");\n\n      signal(this, \"overwriteToggle\", this, this.state.overwrite);\n    },\n    hasFocus: function() { return this.display.input.getField() == activeElt(); },\n\n    scrollTo: methodOp(function(x, y) {\n      if (x != null || y != null) resolveScrollToPos(this);\n      if (x != null) this.curOp.scrollLeft = x;\n      if (y != null) this.curOp.scrollTop = y;\n    }),\n    getScrollInfo: function() {\n      var scroller = this.display.scroller;\n      return {left: scroller.scrollLeft, top: scroller.scrollTop,\n              height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n              width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n              clientHeight: displayHeight(this), clientWidth: displayWidth(this)};\n    },\n\n    scrollIntoView: methodOp(function(range, margin) {\n      if (range == null) {\n        range = {from: this.doc.sel.primary().head, to: null};\n        if (margin == null) margin = this.options.cursorScrollMargin;\n      } else if (typeof range == \"number\") {\n        range = {from: Pos(range, 0), to: null};\n      } else if (range.from == null) {\n        range = {from: range, to: null};\n      }\n      if (!range.to) range.to = range.from;\n      range.margin = margin || 0;\n\n      if (range.from.line != null) {\n        resolveScrollToPos(this);\n        this.curOp.scrollToPos = range;\n      } else {\n        var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),\n                                      Math.min(range.from.top, range.to.top) - range.margin,\n                                      Math.max(range.from.right, range.to.right),\n                                      Math.max(range.from.bottom, range.to.bottom) + range.margin);\n        this.scrollTo(sPos.scrollLeft, sPos.scrollTop);\n      }\n    }),\n\n    setSize: methodOp(function(width, height) {\n      var cm = this;\n      function interpret(val) {\n        return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val;\n      }\n      if (width != null) cm.display.wrapper.style.width = interpret(width);\n      if (height != null) cm.display.wrapper.style.height = interpret(height);\n      if (cm.options.lineWrapping) clearLineMeasurementCache(this);\n      var lineNo = cm.display.viewFrom;\n      cm.doc.iter(lineNo, cm.display.viewTo, function(line) {\n        if (line.widgets) for (var i = 0; i < line.widgets.length; i++)\n          if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, \"widget\"); break; }\n        ++lineNo;\n      });\n      cm.curOp.forceUpdate = true;\n      signal(cm, \"refresh\", this);\n    }),\n\n    operation: function(f){return runInOp(this, f);},\n\n    refresh: methodOp(function() {\n      var oldHeight = this.display.cachedTextHeight;\n      regChange(this);\n      this.curOp.forceUpdate = true;\n      clearCaches(this);\n      this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);\n      updateGutterSpace(this);\n      if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)\n        estimateLineHeights(this);\n      signal(this, \"refresh\", this);\n    }),\n\n    swapDoc: methodOp(function(doc) {\n      var old = this.doc;\n      old.cm = null;\n      attachDoc(this, doc);\n      clearCaches(this);\n      this.display.input.reset();\n      this.scrollTo(doc.scrollLeft, doc.scrollTop);\n      this.curOp.forceScroll = true;\n      signalLater(this, \"swapDoc\", this, old);\n      return old;\n    }),\n\n    getInputField: function(){return this.display.input.getField();},\n    getWrapperElement: function(){return this.display.wrapper;},\n    getScrollerElement: function(){return this.display.scroller;},\n    getGutterElement: function(){return this.display.gutters;}\n  };\n  eventMixin(CodeMirror);\n\n  // OPTION DEFAULTS\n\n  // The default configuration options.\n  var defaults = CodeMirror.defaults = {};\n  // Functions to run when options are changed.\n  var optionHandlers = CodeMirror.optionHandlers = {};\n\n  function option(name, deflt, handle, notOnInit) {\n    CodeMirror.defaults[name] = deflt;\n    if (handle) optionHandlers[name] =\n      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;\n  }\n\n  // Passed to option handlers when there is no old value.\n  var Init = CodeMirror.Init = {toString: function(){return \"CodeMirror.Init\";}};\n\n  // These two are, on init, called from the constructor because they\n  // have to be initialized before the editor can start at all.\n  option(\"value\", \"\", function(cm, val) {\n    cm.setValue(val);\n  }, true);\n  option(\"mode\", null, function(cm, val) {\n    cm.doc.modeOption = val;\n    loadMode(cm);\n  }, true);\n\n  option(\"indentUnit\", 2, loadMode, true);\n  option(\"indentWithTabs\", false);\n  option(\"smartIndent\", true);\n  option(\"tabSize\", 4, function(cm) {\n    resetModeState(cm);\n    clearCaches(cm);\n    regChange(cm);\n  }, true);\n  option(\"specialChars\", /[\\t\\u0000-\\u0019\\u00ad\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g, function(cm, val) {\n    cm.options.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n    cm.refresh();\n  }, true);\n  option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);\n  option(\"electricChars\", true);\n  option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function() {\n    throw new Error(\"inputStyle can not (yet) be changed in a running editor\"); // FIXME\n  }, true);\n  option(\"rtlMoveVisually\", !windows);\n  option(\"wholeLineUpdateBefore\", true);\n\n  option(\"theme\", \"default\", function(cm) {\n    themeChanged(cm);\n    guttersChanged(cm);\n  }, true);\n  option(\"keyMap\", \"default\", function(cm, val, old) {\n    var next = getKeyMap(val);\n    var prev = old != CodeMirror.Init && getKeyMap(old);\n    if (prev && prev.detach) prev.detach(cm, next);\n    if (next.attach) next.attach(cm, prev || null);\n  });\n  option(\"extraKeys\", null);\n\n  option(\"lineWrapping\", false, wrappingChanged, true);\n  option(\"gutters\", [], function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"fixedGutter\", true, function(cm, val) {\n    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n    cm.refresh();\n  }, true);\n  option(\"coverGutterNextToScrollbar\", false, function(cm) {updateScrollbars(cm);}, true);\n  option(\"scrollbarStyle\", \"native\", function(cm) {\n    initScrollbars(cm);\n    updateScrollbars(cm);\n    cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n    cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n  }, true);\n  option(\"lineNumbers\", false, function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"firstLineNumber\", 1, guttersChanged, true);\n  option(\"lineNumberFormatter\", function(integer) {return integer;}, guttersChanged, true);\n  option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n  option(\"resetSelectionOnContextMenu\", true);\n\n  option(\"readOnly\", false, function(cm, val) {\n    if (val == \"nocursor\") {\n      onBlur(cm);\n      cm.display.input.blur();\n      cm.display.disabled = true;\n    } else {\n      cm.display.disabled = false;\n      if (!val) cm.display.input.reset();\n    }\n  });\n  option(\"disableInput\", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);\n  option(\"dragDrop\", true);\n\n  option(\"cursorBlinkRate\", 530);\n  option(\"cursorScrollMargin\", 0);\n  option(\"cursorHeight\", 1, updateSelection, true);\n  option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n  option(\"workTime\", 100);\n  option(\"workDelay\", 100);\n  option(\"flattenSpans\", true, resetModeState, true);\n  option(\"addModeClass\", false, resetModeState, true);\n  option(\"pollInterval\", 100);\n  option(\"undoDepth\", 200, function(cm, val){cm.doc.history.undoDepth = val;});\n  option(\"historyEventDelay\", 1250);\n  option(\"viewportMargin\", 10, function(cm){cm.refresh();}, true);\n  option(\"maxHighlightLength\", 10000, resetModeState, true);\n  option(\"moveInputWithCursor\", true, function(cm, val) {\n    if (!val) cm.display.input.resetPosition();\n  });\n\n  option(\"tabindex\", null, function(cm, val) {\n    cm.display.input.getField().tabIndex = val || \"\";\n  });\n  option(\"autofocus\", null);\n\n  // MODE DEFINITION AND QUERYING\n\n  // Known modes, by name and by MIME\n  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\n\n  // Extra arguments are stored as the mode's dependencies, which is\n  // used by (legacy) mechanisms like loadmode.js to automatically\n  // load a mode. (Preferred mechanism is the require/define calls.)\n  CodeMirror.defineMode = function(name, mode) {\n    if (!CodeMirror.defaults.mode && name != \"null\") CodeMirror.defaults.mode = name;\n    if (arguments.length > 2)\n      mode.dependencies = Array.prototype.slice.call(arguments, 2);\n    modes[name] = mode;\n  };\n\n  CodeMirror.defineMIME = function(mime, spec) {\n    mimeModes[mime] = spec;\n  };\n\n  // Given a MIME type, a {name, ...options} config object, or a name\n  // string, return a mode config object.\n  CodeMirror.resolveMode = function(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      if (typeof found == \"string\") found = {name: found};\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return CodeMirror.resolveMode(\"application/xml\");\n    }\n    if (typeof spec == \"string\") return {name: spec};\n    else return spec || {name: \"null\"};\n  };\n\n  // Given a mode spec (anything that resolveMode accepts), find and\n  // initialize an actual mode object.\n  CodeMirror.getMode = function(options, spec) {\n    var spec = CodeMirror.resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) return CodeMirror.getMode(options, \"text/plain\");\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) continue;\n        if (modeObj.hasOwnProperty(prop)) modeObj[\"_\" + prop] = modeObj[prop];\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n    if (spec.helperType) modeObj.helperType = spec.helperType;\n    if (spec.modeProps) for (var prop in spec.modeProps)\n      modeObj[prop] = spec.modeProps[prop];\n\n    return modeObj;\n  };\n\n  // Minimal default mode.\n  CodeMirror.defineMode(\"null\", function() {\n    return {token: function(stream) {stream.skipToEnd();}};\n  });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  // This can be used to attach properties to mode objects from\n  // outside the actual mode definition.\n  var modeExtensions = CodeMirror.modeExtensions = {};\n  CodeMirror.extendMode = function(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  };\n\n  // EXTENSIONS\n\n  CodeMirror.defineExtension = function(name, func) {\n    CodeMirror.prototype[name] = func;\n  };\n  CodeMirror.defineDocExtension = function(name, func) {\n    Doc.prototype[name] = func;\n  };\n  CodeMirror.defineOption = option;\n\n  var initHooks = [];\n  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};\n\n  var helpers = CodeMirror.helpers = {};\n  CodeMirror.registerHelper = function(type, name, value) {\n    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};\n    helpers[type][name] = value;\n  };\n  CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n    CodeMirror.registerHelper(type, name, value);\n    helpers[type]._global.push({pred: predicate, val: value});\n  };\n\n  // MODE STATE HANDLING\n\n  // Utility functions for working with state. Exported because nested\n  // modes need to do this for their inner modes.\n\n  var copyState = CodeMirror.copyState = function(mode, state) {\n    if (state === true) return state;\n    if (mode.copyState) return mode.copyState(state);\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) val = val.concat([]);\n      nstate[n] = val;\n    }\n    return nstate;\n  };\n\n  var startState = CodeMirror.startState = function(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true;\n  };\n\n  // Given a mode and a state (for that mode), find the inner mode and\n  // state at the position that the state refers to.\n  CodeMirror.innerMode = function(mode, state) {\n    while (mode.innerMode) {\n      var info = mode.innerMode(state);\n      if (!info || info.mode == mode) break;\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state};\n  };\n\n  // STANDARD COMMANDS\n\n  // Commands are parameter-less actions that can be performed on an\n  // editor, mostly used for keybindings.\n  var commands = CodeMirror.commands = {\n    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},\n    singleSelection: function(cm) {\n      cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll);\n    },\n    killLine: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        if (range.empty()) {\n          var len = getLine(cm.doc, range.head.line).text.length;\n          if (range.head.ch == len && range.head.line < cm.lastLine())\n            return {from: range.head, to: Pos(range.head.line + 1, 0)};\n          else\n            return {from: range.head, to: Pos(range.head.line, len)};\n        } else {\n          return {from: range.from(), to: range.to()};\n        }\n      });\n    },\n    deleteLine: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        return {from: Pos(range.from().line, 0),\n                to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};\n      });\n    },\n    delLineLeft: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        return {from: Pos(range.from().line, 0), to: range.from()};\n      });\n    },\n    delWrappedLineLeft: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n        return {from: leftPos, to: range.from()};\n      });\n    },\n    delWrappedLineRight: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n        return {from: range.from(), to: rightPos };\n      });\n    },\n    undo: function(cm) {cm.undo();},\n    redo: function(cm) {cm.redo();},\n    undoSelection: function(cm) {cm.undoSelection();},\n    redoSelection: function(cm) {cm.redoSelection();},\n    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},\n    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},\n    goLineStart: function(cm) {\n      cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },\n                            {origin: \"+move\", bias: 1});\n    },\n    goLineStartSmart: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        return lineStartSmart(cm, range.head);\n      }, {origin: \"+move\", bias: 1});\n    },\n    goLineEnd: function(cm) {\n      cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },\n                            {origin: \"+move\", bias: -1});\n    },\n    goLineRight: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n      }, sel_move);\n    },\n    goLineLeft: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        return cm.coordsChar({left: 0, top: top}, \"div\");\n      }, sel_move);\n    },\n    goLineLeftSmart: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n        if (pos.ch < cm.getLine(pos.line).search(/\\S/)) return lineStartSmart(cm, range.head);\n        return pos;\n      }, sel_move);\n    },\n    goLineUp: function(cm) {cm.moveV(-1, \"line\");},\n    goLineDown: function(cm) {cm.moveV(1, \"line\");},\n    goPageUp: function(cm) {cm.moveV(-1, \"page\");},\n    goPageDown: function(cm) {cm.moveV(1, \"page\");},\n    goCharLeft: function(cm) {cm.moveH(-1, \"char\");},\n    goCharRight: function(cm) {cm.moveH(1, \"char\");},\n    goColumnLeft: function(cm) {cm.moveH(-1, \"column\");},\n    goColumnRight: function(cm) {cm.moveH(1, \"column\");},\n    goWordLeft: function(cm) {cm.moveH(-1, \"word\");},\n    goGroupRight: function(cm) {cm.moveH(1, \"group\");},\n    goGroupLeft: function(cm) {cm.moveH(-1, \"group\");},\n    goWordRight: function(cm) {cm.moveH(1, \"word\");},\n    delCharBefore: function(cm) {cm.deleteH(-1, \"char\");},\n    delCharAfter: function(cm) {cm.deleteH(1, \"char\");},\n    delWordBefore: function(cm) {cm.deleteH(-1, \"word\");},\n    delWordAfter: function(cm) {cm.deleteH(1, \"word\");},\n    delGroupBefore: function(cm) {cm.deleteH(-1, \"group\");},\n    delGroupAfter: function(cm) {cm.deleteH(1, \"group\");},\n    indentAuto: function(cm) {cm.indentSelection(\"smart\");},\n    indentMore: function(cm) {cm.indentSelection(\"add\");},\n    indentLess: function(cm) {cm.indentSelection(\"subtract\");},\n    insertTab: function(cm) {cm.replaceSelection(\"\\t\");},\n    insertSoftTab: function(cm) {\n      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n      for (var i = 0; i < ranges.length; i++) {\n        var pos = ranges[i].from();\n        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n        spaces.push(new Array(tabSize - col % tabSize + 1).join(\" \"));\n      }\n      cm.replaceSelections(spaces);\n    },\n    defaultTab: function(cm) {\n      if (cm.somethingSelected()) cm.indentSelection(\"add\");\n      else cm.execCommand(\"insertTab\");\n    },\n    transposeChars: function(cm) {\n      runInOp(cm, function() {\n        var ranges = cm.listSelections(), newSel = [];\n        for (var i = 0; i < ranges.length; i++) {\n          var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n          if (line) {\n            if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);\n            if (cur.ch > 0) {\n              cur = new Pos(cur.line, cur.ch + 1);\n              cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n                              Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n            } else if (cur.line > cm.doc.first) {\n              var prev = getLine(cm.doc, cur.line - 1).text;\n              if (prev)\n                cm.replaceRange(line.charAt(0) + \"\\n\" + prev.charAt(prev.length - 1),\n                                Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), \"+transpose\");\n            }\n          }\n          newSel.push(new Range(cur, cur));\n        }\n        cm.setSelections(newSel);\n      });\n    },\n    newlineAndIndent: function(cm) {\n      runInOp(cm, function() {\n        var len = cm.listSelections().length;\n        for (var i = 0; i < len; i++) {\n          var range = cm.listSelections()[i];\n          cm.replaceRange(\"\\n\", range.anchor, range.head, \"+input\");\n          cm.indentLine(range.from().line + 1, null, true);\n          ensureCursorVisible(cm);\n        }\n      });\n    },\n    toggleOverwrite: function(cm) {cm.toggleOverwrite();}\n  };\n\n\n  // STANDARD KEYMAPS\n\n  var keyMap = CodeMirror.keyMap = {};\n\n  keyMap.basic = {\n    \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n    \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n    \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n    \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n    \"Esc\": \"singleSelection\"\n  };\n  // Note that the save and find-related commands aren't defined by\n  // default. User code or addons can define them. Unknown commands\n  // are simply ignored.\n  keyMap.pcDefault = {\n    \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n    \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n    \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n    \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n    \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n    \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n    \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n    fallthrough: \"basic\"\n  };\n  // Very basic readline/emacs-style bindings, which are standard on Mac.\n  keyMap.emacsy = {\n    \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n    \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n    \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\"\n  };\n  keyMap.macDefault = {\n    \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n    \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n    \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n    \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n    \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n    \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n    \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n    fallthrough: [\"basic\", \"emacsy\"]\n  };\n  keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n  // KEYMAP DISPATCH\n\n  function normalizeKeyName(name) {\n    var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];\n    var alt, ctrl, shift, cmd;\n    for (var i = 0; i < parts.length - 1; i++) {\n      var mod = parts[i];\n      if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;\n      else if (/^a(lt)?$/i.test(mod)) alt = true;\n      else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;\n      else if (/^s(hift)$/i.test(mod)) shift = true;\n      else throw new Error(\"Unrecognized modifier name: \" + mod);\n    }\n    if (alt) name = \"Alt-\" + name;\n    if (ctrl) name = \"Ctrl-\" + name;\n    if (cmd) name = \"Cmd-\" + name;\n    if (shift) name = \"Shift-\" + name;\n    return name;\n  }\n\n  // This is a kludge to keep keymaps mostly working as raw objects\n  // (backwards compatibility) while at the same time support features\n  // like normalization and multi-stroke key bindings. It compiles a\n  // new normalized keymap, and then updates the old object to reflect\n  // this.\n  CodeMirror.normalizeKeyMap = function(keymap) {\n    var copy = {};\n    for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {\n      var value = keymap[keyname];\n      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;\n      if (value == \"...\") { delete keymap[keyname]; continue; }\n\n      var keys = map(keyname.split(\" \"), normalizeKeyName);\n      for (var i = 0; i < keys.length; i++) {\n        var val, name;\n        if (i == keys.length - 1) {\n          name = keyname;\n          val = value;\n        } else {\n          name = keys.slice(0, i + 1).join(\" \");\n          val = \"...\";\n        }\n        var prev = copy[name];\n        if (!prev) copy[name] = val;\n        else if (prev != val) throw new Error(\"Inconsistent bindings for \" + name);\n      }\n      delete keymap[keyname];\n    }\n    for (var prop in copy) keymap[prop] = copy[prop];\n    return keymap;\n  };\n\n  var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {\n    map = getKeyMap(map);\n    var found = map.call ? map.call(key, context) : map[key];\n    if (found === false) return \"nothing\";\n    if (found === \"...\") return \"multi\";\n    if (found != null && handle(found)) return \"handled\";\n\n    if (map.fallthrough) {\n      if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n        return lookupKey(key, map.fallthrough, handle, context);\n      for (var i = 0; i < map.fallthrough.length; i++) {\n        var result = lookupKey(key, map.fallthrough[i], handle, context);\n        if (result) return result;\n      }\n    }\n  };\n\n  // Modifier key presses don't count as 'real' key presses for the\n  // purpose of keymap fallthrough.\n  var isModifierKey = CodeMirror.isModifierKey = function(value) {\n    var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n    return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\";\n  };\n\n  // Look up the name of a key as indicated by an event object.\n  var keyName = CodeMirror.keyName = function(event, noShift) {\n    if (presto && event.keyCode == 34 && event[\"char\"]) return false;\n    var base = keyNames[event.keyCode], name = base;\n    if (name == null || event.altGraphKey) return false;\n    if (event.altKey && base != \"Alt\") name = \"Alt-\" + name;\n    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") name = \"Ctrl-\" + name;\n    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Cmd\") name = \"Cmd-\" + name;\n    if (!noShift && event.shiftKey && base != \"Shift\") name = \"Shift-\" + name;\n    return name;\n  };\n\n  function getKeyMap(val) {\n    return typeof val == \"string\" ? keyMap[val] : val;\n  }\n\n  // FROMTEXTAREA\n\n  CodeMirror.fromTextArea = function(textarea, options) {\n    options = options ? copyObj(options) : {};\n    options.value = textarea.value;\n    if (!options.tabindex && textarea.tabIndex)\n      options.tabindex = textarea.tabIndex;\n    if (!options.placeholder && textarea.placeholder)\n      options.placeholder = textarea.placeholder;\n    // Set autofocus to true if this textarea is focused, or if it has\n    // autofocus and no other element is focused.\n    if (options.autofocus == null) {\n      var hasFocus = activeElt();\n      options.autofocus = hasFocus == textarea ||\n        textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n    }\n\n    function save() {textarea.value = cm.getValue();}\n    if (textarea.form) {\n      on(textarea.form, \"submit\", save);\n      // Deplorable hack to make the submit method do the right thing.\n      if (!options.leaveSubmitMethodAlone) {\n        var form = textarea.form, realSubmit = form.submit;\n        try {\n          var wrappedSubmit = form.submit = function() {\n            save();\n            form.submit = realSubmit;\n            form.submit();\n            form.submit = wrappedSubmit;\n          };\n        } catch(e) {}\n      }\n    }\n\n    options.finishInit = function(cm) {\n      cm.save = save;\n      cm.getTextArea = function() { return textarea; };\n      cm.toTextArea = function() {\n        cm.toTextArea = isNaN; // Prevent this from being ran twice\n        save();\n        textarea.parentNode.removeChild(cm.getWrapperElement());\n        textarea.style.display = \"\";\n        if (textarea.form) {\n          off(textarea.form, \"submit\", save);\n          if (typeof textarea.form.submit == \"function\")\n            textarea.form.submit = realSubmit;\n        }\n      };\n    };\n\n    textarea.style.display = \"none\";\n    var cm = CodeMirror(function(node) {\n      textarea.parentNode.insertBefore(node, textarea.nextSibling);\n    }, options);\n    return cm;\n  };\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  var StringStream = CodeMirror.StringStream = function(string, tabSize) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n    this.lineStart = 0;\n  };\n\n  StringStream.prototype = {\n    eol: function() {return this.pos >= this.string.length;},\n    sol: function() {return this.pos == this.lineStart;},\n    peek: function() {return this.string.charAt(this.pos) || undefined;},\n    next: function() {\n      if (this.pos < this.string.length)\n        return this.string.charAt(this.pos++);\n    },\n    eat: function(match) {\n      var ch = this.string.charAt(this.pos);\n      if (typeof match == \"string\") var ok = ch == match;\n      else var ok = ch && (match.test ? match.test(ch) : match(ch));\n      if (ok) {++this.pos; return ch;}\n    },\n    eatWhile: function(match) {\n      var start = this.pos;\n      while (this.eat(match)){}\n      return this.pos > start;\n    },\n    eatSpace: function() {\n      var start = this.pos;\n      while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n      return this.pos > start;\n    },\n    skipToEnd: function() {this.pos = this.string.length;},\n    skipTo: function(ch) {\n      var found = this.string.indexOf(ch, this.pos);\n      if (found > -1) {this.pos = found; return true;}\n    },\n    backUp: function(n) {this.pos -= n;},\n    column: function() {\n      if (this.lastColumnPos < this.start) {\n        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n        this.lastColumnPos = this.start;\n      }\n      return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);\n    },\n    indentation: function() {\n      return countColumn(this.string, null, this.tabSize) -\n        (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);\n    },\n    match: function(pattern, consume, caseInsensitive) {\n      if (typeof pattern == \"string\") {\n        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n        var substr = this.string.substr(this.pos, pattern.length);\n        if (cased(substr) == cased(pattern)) {\n          if (consume !== false) this.pos += pattern.length;\n          return true;\n        }\n      } else {\n        var match = this.string.slice(this.pos).match(pattern);\n        if (match && match.index > 0) return null;\n        if (match && consume !== false) this.pos += match[0].length;\n        return match;\n      }\n    },\n    current: function(){return this.string.slice(this.start, this.pos);},\n    hideFirstChars: function(n, inner) {\n      this.lineStart += n;\n      try { return inner(); }\n      finally { this.lineStart -= n; }\n    }\n  };\n\n  // TEXTMARKERS\n\n  // Created with markText and setBookmark methods. A TextMarker is a\n  // handle that can be used to clear or find a marked position in the\n  // document. Line objects hold arrays (markedSpans) containing\n  // {from, to, marker} object pointing to such marker objects, and\n  // indicating that such a marker is present on that line. Multiple\n  // lines may point to the same marker when it spans across lines.\n  // The spans will have null for their from/to properties when the\n  // marker continues beyond the start/end of the line. Markers have\n  // links back to the lines they currently touch.\n\n  var nextMarkerId = 0;\n\n  var TextMarker = CodeMirror.TextMarker = function(doc, type) {\n    this.lines = [];\n    this.type = type;\n    this.doc = doc;\n    this.id = ++nextMarkerId;\n  };\n  eventMixin(TextMarker);\n\n  // Clear the marker.\n  TextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    var cm = this.doc.cm, withOp = cm && !cm.curOp;\n    if (withOp) startOperation(cm);\n    if (hasHandler(this, \"clear\")) {\n      var found = this.find();\n      if (found) signalLater(this, \"clear\", found.from, found.to);\n    }\n    var min = null, max = null;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (cm && !this.collapsed) regLineChange(cm, lineNo(line), \"text\");\n      else if (cm) {\n        if (span.to != null) max = lineNo(line);\n        if (span.from != null) min = lineNo(line);\n      }\n      line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n      if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n        updateLineHeight(line, textHeight(cm.display));\n    }\n    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {\n      var visual = visualLine(this.lines[i]), len = lineLength(visual);\n      if (len > cm.display.maxLineLength) {\n        cm.display.maxLine = visual;\n        cm.display.maxLineLength = len;\n        cm.display.maxLineChanged = true;\n      }\n    }\n\n    if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);\n    this.lines.length = 0;\n    this.explicitlyCleared = true;\n    if (this.atomic && this.doc.cantEdit) {\n      this.doc.cantEdit = false;\n      if (cm) reCheckSelection(cm.doc);\n    }\n    if (cm) signalLater(cm, \"markerCleared\", cm, this);\n    if (withOp) endOperation(cm);\n    if (this.parent) this.parent.clear();\n  };\n\n  // Find the position of the marker in the document. Returns a {from,\n  // to} object by default. Side can be passed to get a specific side\n  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n  // Pos objects returned contain a line object, rather than a line\n  // number (used to prevent looking up the same line twice).\n  TextMarker.prototype.find = function(side, lineObj) {\n    if (side == null && this.type == \"bookmark\") side = 1;\n    var from, to;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.from != null) {\n        from = Pos(lineObj ? line : lineNo(line), span.from);\n        if (side == -1) return from;\n      }\n      if (span.to != null) {\n        to = Pos(lineObj ? line : lineNo(line), span.to);\n        if (side == 1) return to;\n      }\n    }\n    return from && {from: from, to: to};\n  };\n\n  // Signals that the marker's widget changed, and surrounding layout\n  // should be recomputed.\n  TextMarker.prototype.changed = function() {\n    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n    if (!pos || !cm) return;\n    runInOp(cm, function() {\n      var line = pos.line, lineN = lineNo(pos.line);\n      var view = findViewForLine(cm, lineN);\n      if (view) {\n        clearLineMeasurementCacheFor(view);\n        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n      }\n      cm.curOp.updateMaxLine = true;\n      if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n        var oldHeight = widget.height;\n        widget.height = null;\n        var dHeight = widgetHeight(widget) - oldHeight;\n        if (dHeight)\n          updateLineHeight(line, line.height + dHeight);\n      }\n    });\n  };\n\n  TextMarker.prototype.attachLine = function(line) {\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);\n    }\n    this.lines.push(line);\n  };\n  TextMarker.prototype.detachLine = function(line) {\n    this.lines.splice(indexOf(this.lines, line), 1);\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n    }\n  };\n\n  // Collapsed markers have unique ids, in order to be able to order\n  // them, which is needed for uniquely determining an outer marker\n  // when they overlap (they may nest, but not partially overlap).\n  var nextMarkerId = 0;\n\n  // Create a marker, wire it up to the right lines, and\n  function markText(doc, from, to, options, type) {\n    // Shared markers (across linked documents) are handled separately\n    // (markTextShared will call out to this again, once per\n    // document).\n    if (options && options.shared) return markTextShared(doc, from, to, options, type);\n    // Ensure we are in an operation.\n    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);\n\n    var marker = new TextMarker(doc, type), diff = cmp(from, to);\n    if (options) copyObj(options, marker, false);\n    // Don't connect empty markers unless clearWhenEmpty is false\n    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n      return marker;\n    if (marker.replacedWith) {\n      // Showing up as a widget implies collapsed (widget replaces text)\n      marker.collapsed = true;\n      marker.widgetNode = elt(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n      if (!options.handleMouseEvents) marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\");\n      if (options.insertLeft) marker.widgetNode.insertLeft = true;\n    }\n    if (marker.collapsed) {\n      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n        throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");\n      sawCollapsedSpans = true;\n    }\n\n    if (marker.addToHistory)\n      addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN);\n\n    var curLine = from.line, cm = doc.cm, updateMaxLine;\n    doc.iter(curLine, to.line + 1, function(line) {\n      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n        updateMaxLine = true;\n      if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);\n      addMarkedSpan(line, new MarkedSpan(marker,\n                                         curLine == from.line ? from.ch : null,\n                                         curLine == to.line ? to.ch : null));\n      ++curLine;\n    });\n    // lineIsHidden depends on the presence of the spans, so needs a second pass\n    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {\n      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);\n    });\n\n    if (marker.clearOnEnter) on(marker, \"beforeCursorEnter\", function() { marker.clear(); });\n\n    if (marker.readOnly) {\n      sawReadOnlySpans = true;\n      if (doc.history.done.length || doc.history.undone.length)\n        doc.clearHistory();\n    }\n    if (marker.collapsed) {\n      marker.id = ++nextMarkerId;\n      marker.atomic = true;\n    }\n    if (cm) {\n      // Sync editor state\n      if (updateMaxLine) cm.curOp.updateMaxLine = true;\n      if (marker.collapsed)\n        regChange(cm, from.line, to.line + 1);\n      else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)\n        for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, \"text\");\n      if (marker.atomic) reCheckSelection(cm.doc);\n      signalLater(cm, \"markerAdded\", cm, marker);\n    }\n    return marker;\n  }\n\n  // SHARED TEXTMARKERS\n\n  // A shared marker spans multiple linked documents. It is\n  // implemented as a meta-marker-object controlling multiple normal\n  // markers.\n  var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {\n    this.markers = markers;\n    this.primary = primary;\n    for (var i = 0; i < markers.length; ++i)\n      markers[i].parent = this;\n  };\n  eventMixin(SharedTextMarker);\n\n  SharedTextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    this.explicitlyCleared = true;\n    for (var i = 0; i < this.markers.length; ++i)\n      this.markers[i].clear();\n    signalLater(this, \"clear\");\n  };\n  SharedTextMarker.prototype.find = function(side, lineObj) {\n    return this.primary.find(side, lineObj);\n  };\n\n  function markTextShared(doc, from, to, options, type) {\n    options = copyObj(options);\n    options.shared = false;\n    var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n    var widget = options.widgetNode;\n    linkedDocs(doc, function(doc) {\n      if (widget) options.widgetNode = widget.cloneNode(true);\n      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n      for (var i = 0; i < doc.linked.length; ++i)\n        if (doc.linked[i].isParent) return;\n      primary = lst(markers);\n    });\n    return new SharedTextMarker(markers, primary);\n  }\n\n  function findSharedMarkers(doc) {\n    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),\n                         function(m) { return m.parent; });\n  }\n\n  function copySharedMarkers(doc, markers) {\n    for (var i = 0; i < markers.length; i++) {\n      var marker = markers[i], pos = marker.find();\n      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n      if (cmp(mFrom, mTo)) {\n        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n        marker.markers.push(subMark);\n        subMark.parent = marker;\n      }\n    }\n  }\n\n  function detachSharedMarkers(markers) {\n    for (var i = 0; i < markers.length; i++) {\n      var marker = markers[i], linked = [marker.primary.doc];;\n      linkedDocs(marker.primary.doc, function(d) { linked.push(d); });\n      for (var j = 0; j < marker.markers.length; j++) {\n        var subMarker = marker.markers[j];\n        if (indexOf(linked, subMarker.doc) == -1) {\n          subMarker.parent = null;\n          marker.markers.splice(j--, 1);\n        }\n      }\n    }\n  }\n\n  // TEXTMARKER SPANS\n\n  function MarkedSpan(marker, from, to) {\n    this.marker = marker;\n    this.from = from; this.to = to;\n  }\n\n  // Search an array of spans for a span matching the given marker.\n  function getMarkedSpanFor(spans, marker) {\n    if (spans) for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.marker == marker) return span;\n    }\n  }\n  // Remove a span from an array, returning undefined if no spans are\n  // left (we don't store arrays for lines without spans).\n  function removeMarkedSpan(spans, span) {\n    for (var r, i = 0; i < spans.length; ++i)\n      if (spans[i] != span) (r || (r = [])).push(spans[i]);\n    return r;\n  }\n  // Add a span to a line.\n  function addMarkedSpan(line, span) {\n    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n    span.marker.attachLine(line);\n  }\n\n  // Used for the algorithm that adjusts markers for a change in the\n  // document. These functions cut an array of spans at a given\n  // character position, returning an array of remaining chunks (or\n  // undefined if nothing remains).\n  function markedSpansBefore(old, startCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n      if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);\n        (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n      }\n    }\n    return nw;\n  }\n  function markedSpansAfter(old, endCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n      if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);\n        (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n                                              span.to == null ? null : span.to - endCh));\n      }\n    }\n    return nw;\n  }\n\n  // Given a change object, compute the new set of marker spans that\n  // cover the line in which the change took place. Removes spans\n  // entirely within the change, reconnects spans belonging to the\n  // same marker that appear on both sides of the change, and cuts off\n  // spans partially within the change. Returns an array of span\n  // arrays with one element for each line in (after) the change.\n  function stretchSpansOverChange(doc, change) {\n    if (change.full) return null;\n    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n    if (!oldFirst && !oldLast) return null;\n\n    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n    // Get the spans that 'stick out' on both sides\n    var first = markedSpansBefore(oldFirst, startCh, isInsert);\n    var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n    // Next, merge those two ends\n    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n    if (first) {\n      // Fix up .to properties of first\n      for (var i = 0; i < first.length; ++i) {\n        var span = first[i];\n        if (span.to == null) {\n          var found = getMarkedSpanFor(last, span.marker);\n          if (!found) span.to = startCh;\n          else if (sameLine) span.to = found.to == null ? null : found.to + offset;\n        }\n      }\n    }\n    if (last) {\n      // Fix up .from in last (or move them into first in case of sameLine)\n      for (var i = 0; i < last.length; ++i) {\n        var span = last[i];\n        if (span.to != null) span.to += offset;\n        if (span.from == null) {\n          var found = getMarkedSpanFor(first, span.marker);\n          if (!found) {\n            span.from = offset;\n            if (sameLine) (first || (first = [])).push(span);\n          }\n        } else {\n          span.from += offset;\n          if (sameLine) (first || (first = [])).push(span);\n        }\n      }\n    }\n    // Make sure we didn't create any zero-length spans\n    if (first) first = clearEmptySpans(first);\n    if (last && last != first) last = clearEmptySpans(last);\n\n    var newMarkers = [first];\n    if (!sameLine) {\n      // Fill gap with whole-line-spans\n      var gap = change.text.length - 2, gapMarkers;\n      if (gap > 0 && first)\n        for (var i = 0; i < first.length; ++i)\n          if (first[i].to == null)\n            (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));\n      for (var i = 0; i < gap; ++i)\n        newMarkers.push(gapMarkers);\n      newMarkers.push(last);\n    }\n    return newMarkers;\n  }\n\n  // Remove spans that are empty and don't have a clearWhenEmpty\n  // option of false.\n  function clearEmptySpans(spans) {\n    for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n        spans.splice(i--, 1);\n    }\n    if (!spans.length) return null;\n    return spans;\n  }\n\n  // Used for un/re-doing changes from the history. Combines the\n  // result of computing the existing spans with the set of spans that\n  // existed in the history (so that deleting around a span and then\n  // undoing brings back the span).\n  function mergeOldSpans(doc, change) {\n    var old = getOldSpans(doc, change);\n    var stretched = stretchSpansOverChange(doc, change);\n    if (!old) return stretched;\n    if (!stretched) return old;\n\n    for (var i = 0; i < old.length; ++i) {\n      var oldCur = old[i], stretchCur = stretched[i];\n      if (oldCur && stretchCur) {\n        spans: for (var j = 0; j < stretchCur.length; ++j) {\n          var span = stretchCur[j];\n          for (var k = 0; k < oldCur.length; ++k)\n            if (oldCur[k].marker == span.marker) continue spans;\n          oldCur.push(span);\n        }\n      } else if (stretchCur) {\n        old[i] = stretchCur;\n      }\n    }\n    return old;\n  }\n\n  // Used to 'clip' out readOnly ranges when making a change.\n  function removeReadOnlyRanges(doc, from, to) {\n    var markers = null;\n    doc.iter(from.line, to.line + 1, function(line) {\n      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {\n        var mark = line.markedSpans[i].marker;\n        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n          (markers || (markers = [])).push(mark);\n      }\n    });\n    if (!markers) return null;\n    var parts = [{from: from, to: to}];\n    for (var i = 0; i < markers.length; ++i) {\n      var mk = markers[i], m = mk.find(0);\n      for (var j = 0; j < parts.length; ++j) {\n        var p = parts[j];\n        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;\n        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n          newParts.push({from: p.from, to: m.from});\n        if (dto > 0 || !mk.inclusiveRight && !dto)\n          newParts.push({from: m.to, to: p.to});\n        parts.splice.apply(parts, newParts);\n        j += newParts.length - 1;\n      }\n    }\n    return parts;\n  }\n\n  // Connect or disconnect spans from a line.\n  function detachMarkedSpans(line) {\n    var spans = line.markedSpans;\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.detachLine(line);\n    line.markedSpans = null;\n  }\n  function attachMarkedSpans(line, spans) {\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.attachLine(line);\n    line.markedSpans = spans;\n  }\n\n  // Helpers used when computing which overlapping collapsed span\n  // counts as the larger one.\n  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }\n  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }\n\n  // Returns a number indicating which of two overlapping collapsed\n  // spans is larger (and thus includes the other). Falls back to\n  // comparing ids when the spans cover exactly the same range.\n  function compareCollapsedMarkers(a, b) {\n    var lenDiff = a.lines.length - b.lines.length;\n    if (lenDiff != 0) return lenDiff;\n    var aPos = a.find(), bPos = b.find();\n    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n    if (fromCmp) return -fromCmp;\n    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n    if (toCmp) return toCmp;\n    return b.id - a.id;\n  }\n\n  // Find out whether a line ends or starts in a collapsed span. If\n  // so, return the marker for that span.\n  function collapsedSpanAtSide(line, start) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n          (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n        found = sp.marker;\n    }\n    return found;\n  }\n  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }\n  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }\n\n  // Test whether there exists a collapsed span that partially\n  // overlaps (covers the start or end, but not both) of a new span.\n  // Such overlap is not allowed.\n  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n    var line = getLine(doc, lineNo);\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var i = 0; i < sps.length; ++i) {\n      var sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      var found = sp.marker.find(0);\n      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;\n      if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) ||\n          fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight)))\n        return true;\n    }\n  }\n\n  // A visual line is a line as drawn on the screen. Folding, for\n  // example, can cause multiple logical lines to appear on the same\n  // visual line. This finds the start of the visual line that the\n  // given line is part of (usually that is the line itself).\n  function visualLine(line) {\n    var merged;\n    while (merged = collapsedSpanAtStart(line))\n      line = merged.find(-1, true).line;\n    return line;\n  }\n\n  // Returns an array of logical lines that continue the visual line\n  // started by the argument, or undefined if there are no such lines.\n  function visualLineContinued(line) {\n    var merged, lines;\n    while (merged = collapsedSpanAtEnd(line)) {\n      line = merged.find(1, true).line;\n      (lines || (lines = [])).push(line);\n    }\n    return lines;\n  }\n\n  // Get the line number of the start of the visual line that the\n  // given line number is part of.\n  function visualLineNo(doc, lineN) {\n    var line = getLine(doc, lineN), vis = visualLine(line);\n    if (line == vis) return lineN;\n    return lineNo(vis);\n  }\n  // Get the line number of the start of the next visual line after\n  // the given line.\n  function visualLineEndNo(doc, lineN) {\n    if (lineN > doc.lastLine()) return lineN;\n    var line = getLine(doc, lineN), merged;\n    if (!lineIsHidden(doc, line)) return lineN;\n    while (merged = collapsedSpanAtEnd(line))\n      line = merged.find(1, true).line;\n    return lineNo(line) + 1;\n  }\n\n  // Compute whether a line is hidden. Lines count as hidden when they\n  // are part of a visual line that starts with another line, or when\n  // they are entirely covered by collapsed, non-widget span.\n  function lineIsHidden(doc, line) {\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if (sp.from == null) return true;\n      if (sp.marker.widgetNode) continue;\n      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n        return true;\n    }\n  }\n  function lineIsHiddenInner(doc, line, span) {\n    if (span.to == null) {\n      var end = span.marker.find(1, true);\n      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));\n    }\n    if (span.marker.inclusiveRight && span.to == line.text.length)\n      return true;\n    for (var sp, i = 0; i < line.markedSpans.length; ++i) {\n      sp = line.markedSpans[i];\n      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n          (sp.to == null || sp.to != span.from) &&\n          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n          lineIsHiddenInner(doc, line, sp)) return true;\n    }\n  }\n\n  // LINE WIDGETS\n\n  // Line widgets are block elements displayed above or below a line.\n\n  var LineWidget = CodeMirror.LineWidget = function(cm, node, options) {\n    if (options) for (var opt in options) if (options.hasOwnProperty(opt))\n      this[opt] = options[opt];\n    this.cm = cm;\n    this.node = node;\n  };\n  eventMixin(LineWidget);\n\n  function adjustScrollWhenAboveVisible(cm, line, diff) {\n    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n      addToScrollPos(cm, null, diff);\n  }\n\n  LineWidget.prototype.clear = function() {\n    var cm = this.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n    if (no == null || !ws) return;\n    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);\n    if (!ws.length) line.widgets = null;\n    var height = widgetHeight(this);\n    runInOp(cm, function() {\n      adjustScrollWhenAboveVisible(cm, line, -height);\n      regLineChange(cm, no, \"widget\");\n      updateLineHeight(line, Math.max(0, line.height - height));\n    });\n  };\n  LineWidget.prototype.changed = function() {\n    var oldH = this.height, cm = this.cm, line = this.line;\n    this.height = null;\n    var diff = widgetHeight(this) - oldH;\n    if (!diff) return;\n    runInOp(cm, function() {\n      cm.curOp.forceUpdate = true;\n      adjustScrollWhenAboveVisible(cm, line, diff);\n      updateLineHeight(line, line.height + diff);\n    });\n  };\n\n  function widgetHeight(widget) {\n    if (widget.height != null) return widget.height;\n    if (!contains(document.body, widget.node)) {\n      var parentStyle = \"position: relative;\";\n      if (widget.coverGutter)\n        parentStyle += \"margin-left: -\" + widget.cm.display.gutters.offsetWidth + \"px;\";\n      if (widget.noHScroll)\n        parentStyle += \"width: \" + widget.cm.display.wrapper.clientWidth + \"px;\";\n      removeChildrenAndAdd(widget.cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n    }\n    return widget.height = widget.node.offsetHeight;\n  }\n\n  function addLineWidget(cm, handle, node, options) {\n    var widget = new LineWidget(cm, node, options);\n    if (widget.noHScroll) cm.display.alignWidgets = true;\n    changeLine(cm.doc, handle, \"widget\", function(line) {\n      var widgets = line.widgets || (line.widgets = []);\n      if (widget.insertAt == null) widgets.push(widget);\n      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);\n      widget.line = line;\n      if (!lineIsHidden(cm.doc, line)) {\n        var aboveVisible = heightAtLine(line) < cm.doc.scrollTop;\n        updateLineHeight(line, line.height + widgetHeight(widget));\n        if (aboveVisible) addToScrollPos(cm, null, widget.height);\n        cm.curOp.forceUpdate = true;\n      }\n      return true;\n    });\n    return widget;\n  }\n\n  // LINE DATA STRUCTURE\n\n  // Line objects. These hold state related to a line, including\n  // highlighting info (the styles array).\n  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {\n    this.text = text;\n    attachMarkedSpans(this, markedSpans);\n    this.height = estimateHeight ? estimateHeight(this) : 1;\n  };\n  eventMixin(Line);\n  Line.prototype.lineNo = function() { return lineNo(this); };\n\n  // Change the content (text, markers) of a line. Automatically\n  // invalidates cached information and tries to re-estimate the\n  // line's height.\n  function updateLine(line, text, markedSpans, estimateHeight) {\n    line.text = text;\n    if (line.stateAfter) line.stateAfter = null;\n    if (line.styles) line.styles = null;\n    if (line.order != null) line.order = null;\n    detachMarkedSpans(line);\n    attachMarkedSpans(line, markedSpans);\n    var estHeight = estimateHeight ? estimateHeight(line) : 1;\n    if (estHeight != line.height) updateLineHeight(line, estHeight);\n  }\n\n  // Detach a line from the document tree and its markers.\n  function cleanUpLine(line) {\n    line.parent = null;\n    detachMarkedSpans(line);\n  }\n\n  function extractLineClasses(type, output) {\n    if (type) for (;;) {\n      var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n      if (!lineClass) break;\n      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n      var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n      if (output[prop] == null)\n        output[prop] = lineClass[2];\n      else if (!(new RegExp(\"(?:^|\\s)\" + lineClass[2] + \"(?:$|\\s)\")).test(output[prop]))\n        output[prop] += \" \" + lineClass[2];\n    }\n    return type;\n  }\n\n  function callBlankLine(mode, state) {\n    if (mode.blankLine) return mode.blankLine(state);\n    if (!mode.innerMode) return;\n    var inner = CodeMirror.innerMode(mode, state);\n    if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);\n  }\n\n  function readToken(mode, stream, state, inner) {\n    for (var i = 0; i < 10; i++) {\n      if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;\n      var style = mode.token(stream, state);\n      if (stream.pos > stream.start) return style;\n    }\n    throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\");\n  }\n\n  // Utility for getTokenAt and getLineTokens\n  function takeToken(cm, pos, precise, asArray) {\n    function getObj(copy) {\n      return {start: stream.start, end: stream.pos,\n              string: stream.current(),\n              type: style || null,\n              state: copy ? copyState(doc.mode, state) : state};\n    }\n\n    var doc = cm.doc, mode = doc.mode, style;\n    pos = clipPos(doc, pos);\n    var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);\n    var stream = new StringStream(line.text, cm.options.tabSize), tokens;\n    if (asArray) tokens = [];\n    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n      stream.start = stream.pos;\n      style = readToken(mode, stream, state);\n      if (asArray) tokens.push(getObj(true));\n    }\n    return asArray ? tokens : getObj();\n  }\n\n  // Run the given mode's parser over a line, calling f for each token.\n  function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {\n    var flattenSpans = mode.flattenSpans;\n    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;\n    var curStart = 0, curStyle = null;\n    var stream = new StringStream(text, cm.options.tabSize), style;\n    var inner = cm.options.addModeClass && [null];\n    if (text == \"\") extractLineClasses(callBlankLine(mode, state), lineClasses);\n    while (!stream.eol()) {\n      if (stream.pos > cm.options.maxHighlightLength) {\n        flattenSpans = false;\n        if (forceToEnd) processLine(cm, text, state, stream.pos);\n        stream.pos = text.length;\n        style = null;\n      } else {\n        style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);\n      }\n      if (inner) {\n        var mName = inner[0].name;\n        if (mName) style = \"m-\" + (style ? mName + \" \" + style : mName);\n      }\n      if (!flattenSpans || curStyle != style) {\n        while (curStart < stream.start) {\n          curStart = Math.min(stream.start, curStart + 50000);\n          f(curStart, curStyle);\n        }\n        curStyle = style;\n      }\n      stream.start = stream.pos;\n    }\n    while (curStart < stream.pos) {\n      // Webkit seems to refuse to render text nodes longer than 57444 characters\n      var pos = Math.min(stream.pos, curStart + 50000);\n      f(pos, curStyle);\n      curStart = pos;\n    }\n  }\n\n  // Compute a style array (an array starting with a mode generation\n  // -- for invalidation -- followed by pairs of end positions and\n  // style strings), which is used to highlight the tokens on the\n  // line.\n  function highlightLine(cm, line, state, forceToEnd) {\n    // A styles array always starts with a number identifying the\n    // mode/overlays that it is based on (for easy invalidation).\n    var st = [cm.state.modeGen], lineClasses = {};\n    // Compute the base array of styles\n    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {\n      st.push(end, style);\n    }, lineClasses, forceToEnd);\n\n    // Run overlays, adjust style array.\n    for (var o = 0; o < cm.state.overlays.length; ++o) {\n      var overlay = cm.state.overlays[o], i = 1, at = 0;\n      runMode(cm, line.text, overlay.mode, true, function(end, style) {\n        var start = i;\n        // Ensure there's a token end at the current position, and that i points at it\n        while (at < end) {\n          var i_end = st[i];\n          if (i_end > end)\n            st.splice(i, 1, end, st[i+1], i_end);\n          i += 2;\n          at = Math.min(end, i_end);\n        }\n        if (!style) return;\n        if (overlay.opaque) {\n          st.splice(start, i - start, end, \"cm-overlay \" + style);\n          i = start + 2;\n        } else {\n          for (; start < i; start += 2) {\n            var cur = st[start+1];\n            st[start+1] = (cur ? cur + \" \" : \"\") + \"cm-overlay \" + style;\n          }\n        }\n      }, lineClasses);\n    }\n\n    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};\n  }\n\n  function getLineStyles(cm, line, updateFrontier) {\n    if (!line.styles || line.styles[0] != cm.state.modeGen) {\n      var result = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line)));\n      line.styles = result.styles;\n      if (result.classes) line.styleClasses = result.classes;\n      else if (line.styleClasses) line.styleClasses = null;\n      if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;\n    }\n    return line.styles;\n  }\n\n  // Lightweight form of highlight -- proceed over this line and\n  // update state, but don't save a style array. Used for lines that\n  // aren't currently visible.\n  function processLine(cm, text, state, startAt) {\n    var mode = cm.doc.mode;\n    var stream = new StringStream(text, cm.options.tabSize);\n    stream.start = stream.pos = startAt || 0;\n    if (text == \"\") callBlankLine(mode, state);\n    while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) {\n      readToken(mode, stream, state);\n      stream.start = stream.pos;\n    }\n  }\n\n  // Convert a style as returned by a mode (either null, or a string\n  // containing one or more styles) to a CSS style. This is cached,\n  // and also looks for line-wide styles.\n  var styleToClassCache = {}, styleToClassCacheWithMode = {};\n  function interpretTokenStyle(style, options) {\n    if (!style || /^\\s*$/.test(style)) return null;\n    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n    return cache[style] ||\n      (cache[style] = style.replace(/\\S+/g, \"cm-$&\"));\n  }\n\n  // Render the DOM representation of the text of a line. Also builds\n  // up a 'line map', which points at the DOM nodes that represent\n  // specific stretches of text, and is used by the measuring code.\n  // The returned object contains the DOM node, this map, and\n  // information about line-wide styles that were set by the mode.\n  function buildLineContent(cm, lineView) {\n    // The padding-right forces the element to have a 'border', which\n    // is needed on Webkit to be able to get line-level bounding\n    // rectangles for it (in measureChar).\n    var content = elt(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n    var builder = {pre: elt(\"pre\", [content]), content: content, col: 0, pos: 0, cm: cm};\n    lineView.measure = {};\n\n    // Iterate over the logical lines that make up this visual line.\n    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n      var line = i ? lineView.rest[i - 1] : lineView.line, order;\n      builder.pos = 0;\n      builder.addToken = buildToken;\n      // Optionally wire in some hacks into the token-rendering\n      // algorithm, to deal with browser quirks.\n      if ((ie || webkit) && cm.getOption(\"lineWrapping\"))\n        builder.addToken = buildTokenSplitSpaces(builder.addToken);\n      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))\n        builder.addToken = buildTokenBadBidi(builder.addToken, order);\n      builder.map = [];\n      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n      if (line.styleClasses) {\n        if (line.styleClasses.bgClass)\n          builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\");\n        if (line.styleClasses.textClass)\n          builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\");\n      }\n\n      // Ensure at least a single node is present, for measuring.\n      if (builder.map.length == 0)\n        builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));\n\n      // Store the map and a cache object for the current logical line\n      if (i == 0) {\n        lineView.measure.map = builder.map;\n        lineView.measure.cache = {};\n      } else {\n        (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);\n        (lineView.measure.caches || (lineView.measure.caches = [])).push({});\n      }\n    }\n\n    // See issue #2901\n    if (webkit && /\\bcm-tab\\b/.test(builder.content.lastChild.className))\n      builder.content.className = \"cm-tab-wrap-hack\";\n\n    signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n    if (builder.pre.className)\n      builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\");\n\n    return builder;\n  }\n\n  function defaultSpecialCharPlaceholder(ch) {\n    var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n    token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n    token.setAttribute(\"aria-label\", token.title);\n    return token;\n  }\n\n  // Build up the DOM representation for a single token, and add it to\n  // the line map. Takes care to render special characters separately.\n  function buildToken(builder, text, style, startStyle, endStyle, title, css) {\n    if (!text) return;\n    var special = builder.cm.options.specialChars, mustWrap = false;\n    if (!special.test(text)) {\n      builder.col += text.length;\n      var content = document.createTextNode(text);\n      builder.map.push(builder.pos, builder.pos + text.length, content);\n      if (ie && ie_version < 9) mustWrap = true;\n      builder.pos += text.length;\n    } else {\n      var content = document.createDocumentFragment(), pos = 0;\n      while (true) {\n        special.lastIndex = pos;\n        var m = special.exec(text);\n        var skipped = m ? m.index - pos : text.length - pos;\n        if (skipped) {\n          var txt = document.createTextNode(text.slice(pos, pos + skipped));\n          if (ie && ie_version < 9) content.appendChild(elt(\"span\", [txt]));\n          else content.appendChild(txt);\n          builder.map.push(builder.pos, builder.pos + skipped, txt);\n          builder.col += skipped;\n          builder.pos += skipped;\n        }\n        if (!m) break;\n        pos += skipped + 1;\n        if (m[0] == \"\\t\") {\n          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n          var txt = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n          txt.setAttribute(\"role\", \"presentation\");\n          txt.setAttribute(\"cm-text\", \"\\t\");\n          builder.col += tabWidth;\n        } else {\n          var txt = builder.cm.options.specialCharPlaceholder(m[0]);\n          txt.setAttribute(\"cm-text\", m[0]);\n          if (ie && ie_version < 9) content.appendChild(elt(\"span\", [txt]));\n          else content.appendChild(txt);\n          builder.col += 1;\n        }\n        builder.map.push(builder.pos, builder.pos + 1, txt);\n        builder.pos++;\n      }\n    }\n    if (style || startStyle || endStyle || mustWrap || css) {\n      var fullStyle = style || \"\";\n      if (startStyle) fullStyle += startStyle;\n      if (endStyle) fullStyle += endStyle;\n      var token = elt(\"span\", [content], fullStyle, css);\n      if (title) token.title = title;\n      return builder.content.appendChild(token);\n    }\n    builder.content.appendChild(content);\n  }\n\n  function buildTokenSplitSpaces(inner) {\n    function split(old) {\n      var out = \" \";\n      for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? \" \" : \"\\u00a0\";\n      out += \" \";\n      return out;\n    }\n    return function(builder, text, style, startStyle, endStyle, title) {\n      inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title);\n    };\n  }\n\n  // Work around nonsense dimensions being reported for stretches of\n  // right-to-left text.\n  function buildTokenBadBidi(inner, order) {\n    return function(builder, text, style, startStyle, endStyle, title) {\n      style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n      var start = builder.pos, end = start + text.length;\n      for (;;) {\n        // Find the part that overlaps with the start of this text\n        for (var i = 0; i < order.length; i++) {\n          var part = order[i];\n          if (part.to > start && part.from <= start) break;\n        }\n        if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title);\n        inner(builder, text.slice(0, part.to - start), style, startStyle, null, title);\n        startStyle = null;\n        text = text.slice(part.to - start);\n        start = part.to;\n      }\n    };\n  }\n\n  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n    var widget = !ignoreWidget && marker.widgetNode;\n    if (widget) builder.map.push(builder.pos, builder.pos + size, widget);\n    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n      if (!widget)\n        widget = builder.content.appendChild(document.createElement(\"span\"));\n      widget.setAttribute(\"cm-marker\", marker.id);\n    }\n    if (widget) {\n      builder.cm.display.input.setUneditable(widget);\n      builder.content.appendChild(widget);\n    }\n    builder.pos += size;\n  }\n\n  // Outputs a number of spans to make up a line, taking highlighting\n  // and marked text into account.\n  function insertLineContent(line, builder, styles) {\n    var spans = line.markedSpans, allText = line.text, at = 0;\n    if (!spans) {\n      for (var i = 1; i < styles.length; i+=2)\n        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));\n      return;\n    }\n\n    var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;\n    for (;;) {\n      if (nextChange == pos) { // Update current marker set\n        spanStyle = spanEndStyle = spanStartStyle = title = css = \"\";\n        collapsed = null; nextChange = Infinity;\n        var foundBookmarks = [];\n        for (var j = 0; j < spans.length; ++j) {\n          var sp = spans[j], m = sp.marker;\n          if (sp.from <= pos && (sp.to == null || sp.to > pos)) {\n            if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = \"\"; }\n            if (m.className) spanStyle += \" \" + m.className;\n            if (m.css) css = m.css;\n            if (m.startStyle && sp.from == pos) spanStartStyle += \" \" + m.startStyle;\n            if (m.endStyle && sp.to == nextChange) spanEndStyle += \" \" + m.endStyle;\n            if (m.title && !title) title = m.title;\n            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n              collapsed = sp;\n          } else if (sp.from > pos && nextChange > sp.from) {\n            nextChange = sp.from;\n          }\n          if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) foundBookmarks.push(m);\n        }\n        if (collapsed && (collapsed.from || 0) == pos) {\n          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n                             collapsed.marker, collapsed.from == null);\n          if (collapsed.to == null) return;\n        }\n        if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j)\n          buildCollapsedSpan(builder, 0, foundBookmarks[j]);\n      }\n      if (pos >= len) break;\n\n      var upto = Math.min(len, nextChange);\n      while (true) {\n        if (text) {\n          var end = pos + text.length;\n          if (!collapsed) {\n            var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", title, css);\n          }\n          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}\n          pos = end;\n          spanStartStyle = \"\";\n        }\n        text = allText.slice(at, at = styles[i++]);\n        style = interpretTokenStyle(styles[i++], builder.cm.options);\n      }\n    }\n  }\n\n  // DOCUMENT DATA STRUCTURE\n\n  // By default, updates that start and end at the beginning of a line\n  // are treated specially, in order to make the association of line\n  // widgets and marker elements with the text behave more intuitive.\n  function isWholeLineUpdate(doc, change) {\n    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n      (!doc.cm || doc.cm.options.wholeLineUpdateBefore);\n  }\n\n  // Perform a change on the document data structure.\n  function updateDoc(doc, change, markedSpans, estimateHeight) {\n    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}\n    function update(line, text, spans) {\n      updateLine(line, text, spans, estimateHeight);\n      signalLater(line, \"change\", line, change);\n    }\n    function linesFor(start, end) {\n      for (var i = start, result = []; i < end; ++i)\n        result.push(new Line(text[i], spansFor(i), estimateHeight));\n      return result;\n    }\n\n    var from = change.from, to = change.to, text = change.text;\n    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n    // Adjust the line structure\n    if (change.full) {\n      doc.insert(0, linesFor(0, text.length));\n      doc.remove(text.length, doc.size - text.length);\n    } else if (isWholeLineUpdate(doc, change)) {\n      // This is a whole-line replace. Treated specially to make\n      // sure line objects move the way they are supposed to.\n      var added = linesFor(0, text.length - 1);\n      update(lastLine, lastLine.text, lastSpans);\n      if (nlines) doc.remove(from.line, nlines);\n      if (added.length) doc.insert(from.line, added);\n    } else if (firstLine == lastLine) {\n      if (text.length == 1) {\n        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n      } else {\n        var added = linesFor(1, text.length - 1);\n        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n        doc.insert(from.line + 1, added);\n      }\n    } else if (text.length == 1) {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n      doc.remove(from.line + 1, nlines);\n    } else {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n      var added = linesFor(1, text.length - 1);\n      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);\n      doc.insert(from.line + 1, added);\n    }\n\n    signalLater(doc, \"change\", doc, change);\n  }\n\n  // The document is represented as a BTree consisting of leaves, with\n  // chunk of lines in them, and branches, with up to ten leaves or\n  // other branch nodes below them. The top node is always a branch\n  // node, and is the document object itself (meaning it has\n  // additional methods and properties).\n  //\n  // All nodes have parent links. The tree is used both to go from\n  // line numbers to line objects, and to go from objects to numbers.\n  // It also indexes by height, and is used to convert between height\n  // and line object, and to find the total height of the document.\n  //\n  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n  function LeafChunk(lines) {\n    this.lines = lines;\n    this.parent = null;\n    for (var i = 0, height = 0; i < lines.length; ++i) {\n      lines[i].parent = this;\n      height += lines[i].height;\n    }\n    this.height = height;\n  }\n\n  LeafChunk.prototype = {\n    chunkSize: function() { return this.lines.length; },\n    // Remove the n lines at offset 'at'.\n    removeInner: function(at, n) {\n      for (var i = at, e = at + n; i < e; ++i) {\n        var line = this.lines[i];\n        this.height -= line.height;\n        cleanUpLine(line);\n        signalLater(line, \"delete\");\n      }\n      this.lines.splice(at, n);\n    },\n    // Helper used to collapse a small branch into a single leaf.\n    collapse: function(lines) {\n      lines.push.apply(lines, this.lines);\n    },\n    // Insert the given array of lines at offset 'at', count them as\n    // having the given height.\n    insertInner: function(at, lines, height) {\n      this.height += height;\n      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n      for (var i = 0; i < lines.length; ++i) lines[i].parent = this;\n    },\n    // Used to iterate over a part of the tree.\n    iterN: function(at, n, op) {\n      for (var e = at + n; at < e; ++at)\n        if (op(this.lines[at])) return true;\n    }\n  };\n\n  function BranchChunk(children) {\n    this.children = children;\n    var size = 0, height = 0;\n    for (var i = 0; i < children.length; ++i) {\n      var ch = children[i];\n      size += ch.chunkSize(); height += ch.height;\n      ch.parent = this;\n    }\n    this.size = size;\n    this.height = height;\n    this.parent = null;\n  }\n\n  BranchChunk.prototype = {\n    chunkSize: function() { return this.size; },\n    removeInner: function(at, n) {\n      this.size -= n;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var rm = Math.min(n, sz - at), oldHeight = child.height;\n          child.removeInner(at, rm);\n          this.height -= oldHeight - child.height;\n          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n          if ((n -= rm) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n      // If the result is smaller than 25 lines, ensure that it is a\n      // single leaf node.\n      if (this.size - n < 25 &&\n          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n        var lines = [];\n        this.collapse(lines);\n        this.children = [new LeafChunk(lines)];\n        this.children[0].parent = this;\n      }\n    },\n    collapse: function(lines) {\n      for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);\n    },\n    insertInner: function(at, lines, height) {\n      this.size += lines.length;\n      this.height += height;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at <= sz) {\n          child.insertInner(at, lines, height);\n          if (child.lines && child.lines.length > 50) {\n            while (child.lines.length > 50) {\n              var spilled = child.lines.splice(child.lines.length - 25, 25);\n              var newleaf = new LeafChunk(spilled);\n              child.height -= newleaf.height;\n              this.children.splice(i + 1, 0, newleaf);\n              newleaf.parent = this;\n            }\n            this.maybeSpill();\n          }\n          break;\n        }\n        at -= sz;\n      }\n    },\n    // When a node has grown, check whether it should be split.\n    maybeSpill: function() {\n      if (this.children.length <= 10) return;\n      var me = this;\n      do {\n        var spilled = me.children.splice(me.children.length - 5, 5);\n        var sibling = new BranchChunk(spilled);\n        if (!me.parent) { // Become the parent node\n          var copy = new BranchChunk(me.children);\n          copy.parent = me;\n          me.children = [copy, sibling];\n          me = copy;\n        } else {\n          me.size -= sibling.size;\n          me.height -= sibling.height;\n          var myIndex = indexOf(me.parent.children, me);\n          me.parent.children.splice(myIndex + 1, 0, sibling);\n        }\n        sibling.parent = me.parent;\n      } while (me.children.length > 10);\n      me.parent.maybeSpill();\n    },\n    iterN: function(at, n, op) {\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var used = Math.min(n, sz - at);\n          if (child.iterN(at, used, op)) return true;\n          if ((n -= used) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n    }\n  };\n\n  var nextDocId = 0;\n  var Doc = CodeMirror.Doc = function(text, mode, firstLine) {\n    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine);\n    if (firstLine == null) firstLine = 0;\n\n    BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n    this.first = firstLine;\n    this.scrollTop = this.scrollLeft = 0;\n    this.cantEdit = false;\n    this.cleanGeneration = 1;\n    this.frontier = firstLine;\n    var start = Pos(firstLine, 0);\n    this.sel = simpleSelection(start);\n    this.history = new History(null);\n    this.id = ++nextDocId;\n    this.modeOption = mode;\n\n    if (typeof text == \"string\") text = splitLines(text);\n    updateDoc(this, {from: start, to: start, text: text});\n    setSelection(this, simpleSelection(start), sel_dontScroll);\n  };\n\n  Doc.prototype = createObj(BranchChunk.prototype, {\n    constructor: Doc,\n    // Iterate over the document. Supports two forms -- with only one\n    // argument, it calls that for each line in the document. With\n    // three, it iterates over the range given by the first two (with\n    // the second being non-inclusive).\n    iter: function(from, to, op) {\n      if (op) this.iterN(from - this.first, to - from, op);\n      else this.iterN(this.first, this.first + this.size, from);\n    },\n\n    // Non-public interface for adding and removing lines.\n    insert: function(at, lines) {\n      var height = 0;\n      for (var i = 0; i < lines.length; ++i) height += lines[i].height;\n      this.insertInner(at - this.first, lines, height);\n    },\n    remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n    // From here, the methods are part of the public interface. Most\n    // are also available from CodeMirror (editor) instances.\n\n    getValue: function(lineSep) {\n      var lines = getLines(this, this.first, this.first + this.size);\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n    setValue: docMethodOp(function(code) {\n      var top = Pos(this.first, 0), last = this.first + this.size - 1;\n      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n                        text: splitLines(code), origin: \"setValue\", full: true}, true);\n      setSelection(this, simpleSelection(top));\n    }),\n    replaceRange: function(code, from, to, origin) {\n      from = clipPos(this, from);\n      to = to ? clipPos(this, to) : from;\n      replaceRange(this, code, from, to, origin);\n    },\n    getRange: function(from, to, lineSep) {\n      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n\n    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},\n\n    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},\n    getLineNumber: function(line) {return lineNo(line);},\n\n    getLineHandleVisualStart: function(line) {\n      if (typeof line == \"number\") line = getLine(this, line);\n      return visualLine(line);\n    },\n\n    lineCount: function() {return this.size;},\n    firstLine: function() {return this.first;},\n    lastLine: function() {return this.first + this.size - 1;},\n\n    clipPos: function(pos) {return clipPos(this, pos);},\n\n    getCursor: function(start) {\n      var range = this.sel.primary(), pos;\n      if (start == null || start == \"head\") pos = range.head;\n      else if (start == \"anchor\") pos = range.anchor;\n      else if (start == \"end\" || start == \"to\" || start === false) pos = range.to();\n      else pos = range.from();\n      return pos;\n    },\n    listSelections: function() { return this.sel.ranges; },\n    somethingSelected: function() {return this.sel.somethingSelected();},\n\n    setCursor: docMethodOp(function(line, ch, options) {\n      setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n    }),\n    setSelection: docMethodOp(function(anchor, head, options) {\n      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n    }),\n    extendSelection: docMethodOp(function(head, other, options) {\n      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n    }),\n    extendSelections: docMethodOp(function(heads, options) {\n      extendSelections(this, clipPosArray(this, heads, options));\n    }),\n    extendSelectionsBy: docMethodOp(function(f, options) {\n      extendSelections(this, map(this.sel.ranges, f), options);\n    }),\n    setSelections: docMethodOp(function(ranges, primary, options) {\n      if (!ranges.length) return;\n      for (var i = 0, out = []; i < ranges.length; i++)\n        out[i] = new Range(clipPos(this, ranges[i].anchor),\n                           clipPos(this, ranges[i].head));\n      if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);\n      setSelection(this, normalizeSelection(out, primary), options);\n    }),\n    addSelection: docMethodOp(function(anchor, head, options) {\n      var ranges = this.sel.ranges.slice(0);\n      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n      setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);\n    }),\n\n    getSelection: function(lineSep) {\n      var ranges = this.sel.ranges, lines;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        lines = lines ? lines.concat(sel) : sel;\n      }\n      if (lineSep === false) return lines;\n      else return lines.join(lineSep || \"\\n\");\n    },\n    getSelections: function(lineSep) {\n      var parts = [], ranges = this.sel.ranges;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        if (lineSep !== false) sel = sel.join(lineSep || \"\\n\");\n        parts[i] = sel;\n      }\n      return parts;\n    },\n    replaceSelection: function(code, collapse, origin) {\n      var dup = [];\n      for (var i = 0; i < this.sel.ranges.length; i++)\n        dup[i] = code;\n      this.replaceSelections(dup, collapse, origin || \"+input\");\n    },\n    replaceSelections: docMethodOp(function(code, collapse, origin) {\n      var changes = [], sel = this.sel;\n      for (var i = 0; i < sel.ranges.length; i++) {\n        var range = sel.ranges[i];\n        changes[i] = {from: range.from(), to: range.to(), text: splitLines(code[i]), origin: origin};\n      }\n      var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n      for (var i = changes.length - 1; i >= 0; i--)\n        makeChange(this, changes[i]);\n      if (newSel) setSelectionReplaceHistory(this, newSel);\n      else if (this.cm) ensureCursorVisible(this.cm);\n    }),\n    undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n    redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n    setExtending: function(val) {this.extend = val;},\n    getExtending: function() {return this.extend;},\n\n    historySize: function() {\n      var hist = this.history, done = 0, undone = 0;\n      for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;\n      for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;\n      return {undo: done, redo: undone};\n    },\n    clearHistory: function() {this.history = new History(this.history.maxGeneration);},\n\n    markClean: function() {\n      this.cleanGeneration = this.changeGeneration(true);\n    },\n    changeGeneration: function(forceSplit) {\n      if (forceSplit)\n        this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;\n      return this.history.generation;\n    },\n    isClean: function (gen) {\n      return this.history.generation == (gen || this.cleanGeneration);\n    },\n\n    getHistory: function() {\n      return {done: copyHistoryArray(this.history.done),\n              undone: copyHistoryArray(this.history.undone)};\n    },\n    setHistory: function(histData) {\n      var hist = this.history = new History(this.history.maxGeneration);\n      hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n    },\n\n    addLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function(line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        if (!line[prop]) line[prop] = cls;\n        else if (classTest(cls).test(line[prop])) return false;\n        else line[prop] += \" \" + cls;\n        return true;\n      });\n    }),\n    removeLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function(line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        var cur = line[prop];\n        if (!cur) return false;\n        else if (cls == null) line[prop] = null;\n        else {\n          var found = cur.match(classTest(cls));\n          if (!found) return false;\n          var end = found.index + found[0].length;\n          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n        }\n        return true;\n      });\n    }),\n\n    markText: function(from, to, options) {\n      return markText(this, clipPos(this, from), clipPos(this, to), options, \"range\");\n    },\n    setBookmark: function(pos, options) {\n      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n                      insertLeft: options && options.insertLeft,\n                      clearWhenEmpty: false, shared: options && options.shared};\n      pos = clipPos(this, pos);\n      return markText(this, pos, pos, realOpts, \"bookmark\");\n    },\n    findMarksAt: function(pos) {\n      pos = clipPos(this, pos);\n      var markers = [], spans = getLine(this, pos.line).markedSpans;\n      if (spans) for (var i = 0; i < spans.length; ++i) {\n        var span = spans[i];\n        if ((span.from == null || span.from <= pos.ch) &&\n            (span.to == null || span.to >= pos.ch))\n          markers.push(span.marker.parent || span.marker);\n      }\n      return markers;\n    },\n    findMarks: function(from, to, filter) {\n      from = clipPos(this, from); to = clipPos(this, to);\n      var found = [], lineNo = from.line;\n      this.iter(from.line, to.line + 1, function(line) {\n        var spans = line.markedSpans;\n        if (spans) for (var i = 0; i < spans.length; i++) {\n          var span = spans[i];\n          if (!(lineNo == from.line && from.ch > span.to ||\n                span.from == null && lineNo != from.line||\n                lineNo == to.line && span.from > to.ch) &&\n              (!filter || filter(span.marker)))\n            found.push(span.marker.parent || span.marker);\n        }\n        ++lineNo;\n      });\n      return found;\n    },\n    getAllMarks: function() {\n      var markers = [];\n      this.iter(function(line) {\n        var sps = line.markedSpans;\n        if (sps) for (var i = 0; i < sps.length; ++i)\n          if (sps[i].from != null) markers.push(sps[i].marker);\n      });\n      return markers;\n    },\n\n    posFromIndex: function(off) {\n      var ch, lineNo = this.first;\n      this.iter(function(line) {\n        var sz = line.text.length + 1;\n        if (sz > off) { ch = off; return true; }\n        off -= sz;\n        ++lineNo;\n      });\n      return clipPos(this, Pos(lineNo, ch));\n    },\n    indexFromPos: function (coords) {\n      coords = clipPos(this, coords);\n      var index = coords.ch;\n      if (coords.line < this.first || coords.ch < 0) return 0;\n      this.iter(this.first, coords.line, function (line) {\n        index += line.text.length + 1;\n      });\n      return index;\n    },\n\n    copy: function(copyHistory) {\n      var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first);\n      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n      doc.sel = this.sel;\n      doc.extend = false;\n      if (copyHistory) {\n        doc.history.undoDepth = this.history.undoDepth;\n        doc.setHistory(this.getHistory());\n      }\n      return doc;\n    },\n\n    linkedDoc: function(options) {\n      if (!options) options = {};\n      var from = this.first, to = this.first + this.size;\n      if (options.from != null && options.from > from) from = options.from;\n      if (options.to != null && options.to < to) to = options.to;\n      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from);\n      if (options.sharedHist) copy.history = this.history;\n      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n      copySharedMarkers(copy, findSharedMarkers(this));\n      return copy;\n    },\n    unlinkDoc: function(other) {\n      if (other instanceof CodeMirror) other = other.doc;\n      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {\n        var link = this.linked[i];\n        if (link.doc != other) continue;\n        this.linked.splice(i, 1);\n        other.unlinkDoc(this);\n        detachSharedMarkers(findSharedMarkers(this));\n        break;\n      }\n      // If the histories were shared, split them again\n      if (other.history == this.history) {\n        var splitIds = [other.id];\n        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);\n        other.history = new History(null);\n        other.history.done = copyHistoryArray(this.history.done, splitIds);\n        other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n      }\n    },\n    iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n    getMode: function() {return this.mode;},\n    getEditor: function() {return this.cm;}\n  });\n\n  // Public alias.\n  Doc.prototype.eachLine = Doc.prototype.iter;\n\n  // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n  var dontDelegate = \"iter insert remove copy getEditor\".split(\" \");\n  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n    CodeMirror.prototype[prop] = (function(method) {\n      return function() {return method.apply(this.doc, arguments);};\n    })(Doc.prototype[prop]);\n\n  eventMixin(Doc);\n\n  // Call f for all linked documents.\n  function linkedDocs(doc, f, sharedHistOnly) {\n    function propagate(doc, skip, sharedHist) {\n      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {\n        var rel = doc.linked[i];\n        if (rel.doc == skip) continue;\n        var shared = sharedHist && rel.sharedHist;\n        if (sharedHistOnly && !shared) continue;\n        f(rel.doc, shared);\n        propagate(rel.doc, doc, shared);\n      }\n    }\n    propagate(doc, null, true);\n  }\n\n  // Attach a document to an editor.\n  function attachDoc(cm, doc) {\n    if (doc.cm) throw new Error(\"This document is already in use.\");\n    cm.doc = doc;\n    doc.cm = cm;\n    estimateLineHeights(cm);\n    loadMode(cm);\n    if (!cm.options.lineWrapping) findMaxLine(cm);\n    cm.options.mode = doc.modeOption;\n    regChange(cm);\n  }\n\n  // LINE UTILITIES\n\n  // Find the line object corresponding to the given line number.\n  function getLine(doc, n) {\n    n -= doc.first;\n    if (n < 0 || n >= doc.size) throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\");\n    for (var chunk = doc; !chunk.lines;) {\n      for (var i = 0;; ++i) {\n        var child = chunk.children[i], sz = child.chunkSize();\n        if (n < sz) { chunk = child; break; }\n        n -= sz;\n      }\n    }\n    return chunk.lines[n];\n  }\n\n  // Get the part of a document between two positions, as an array of\n  // strings.\n  function getBetween(doc, start, end) {\n    var out = [], n = start.line;\n    doc.iter(start.line, end.line + 1, function(line) {\n      var text = line.text;\n      if (n == end.line) text = text.slice(0, end.ch);\n      if (n == start.line) text = text.slice(start.ch);\n      out.push(text);\n      ++n;\n    });\n    return out;\n  }\n  // Get the lines between from and to, as array of strings.\n  function getLines(doc, from, to) {\n    var out = [];\n    doc.iter(from, to, function(line) { out.push(line.text); });\n    return out;\n  }\n\n  // Update the height of a line, propagating the height change\n  // upwards to parent nodes.\n  function updateLineHeight(line, height) {\n    var diff = height - line.height;\n    if (diff) for (var n = line; n; n = n.parent) n.height += diff;\n  }\n\n  // Given a line object, find its line number by walking up through\n  // its parent links.\n  function lineNo(line) {\n    if (line.parent == null) return null;\n    var cur = line.parent, no = indexOf(cur.lines, line);\n    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n      for (var i = 0;; ++i) {\n        if (chunk.children[i] == cur) break;\n        no += chunk.children[i].chunkSize();\n      }\n    }\n    return no + cur.first;\n  }\n\n  // Find the line at the given vertical position, using the height\n  // information in the document tree.\n  function lineAtHeight(chunk, h) {\n    var n = chunk.first;\n    outer: do {\n      for (var i = 0; i < chunk.children.length; ++i) {\n        var child = chunk.children[i], ch = child.height;\n        if (h < ch) { chunk = child; continue outer; }\n        h -= ch;\n        n += child.chunkSize();\n      }\n      return n;\n    } while (!chunk.lines);\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i], lh = line.height;\n      if (h < lh) break;\n      h -= lh;\n    }\n    return n + i;\n  }\n\n\n  // Find the height above the given line.\n  function heightAtLine(lineObj) {\n    lineObj = visualLine(lineObj);\n\n    var h = 0, chunk = lineObj.parent;\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i];\n      if (line == lineObj) break;\n      else h += line.height;\n    }\n    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n      for (var i = 0; i < p.children.length; ++i) {\n        var cur = p.children[i];\n        if (cur == chunk) break;\n        else h += cur.height;\n      }\n    }\n    return h;\n  }\n\n  // Get the bidi ordering for the given line (and cache it). Returns\n  // false for lines that are fully left-to-right, and an array of\n  // BidiSpan objects otherwise.\n  function getOrder(line) {\n    var order = line.order;\n    if (order == null) order = line.order = bidiOrdering(line.text);\n    return order;\n  }\n\n  // HISTORY\n\n  function History(startGen) {\n    // Arrays of change events and selections. Doing something adds an\n    // event to done and clears undo. Undoing moves events from done\n    // to undone, redoing moves them in the other direction.\n    this.done = []; this.undone = [];\n    this.undoDepth = Infinity;\n    // Used to track when changes can be merged into a single undo\n    // event\n    this.lastModTime = this.lastSelTime = 0;\n    this.lastOp = this.lastSelOp = null;\n    this.lastOrigin = this.lastSelOrigin = null;\n    // Used by the isClean() method\n    this.generation = this.maxGeneration = startGen || 1;\n  }\n\n  // Create a history change event from an updateDoc-style change\n  // object.\n  function historyChangeFromChange(doc, change) {\n    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);\n    return histChange;\n  }\n\n  // Pop all selection events off the end of a history array. Stop at\n  // a change event.\n  function clearSelectionEvents(array) {\n    while (array.length) {\n      var last = lst(array);\n      if (last.ranges) array.pop();\n      else break;\n    }\n  }\n\n  // Find the top change event in the history. Pop off selection\n  // events that are in the way.\n  function lastChangeEvent(hist, force) {\n    if (force) {\n      clearSelectionEvents(hist.done);\n      return lst(hist.done);\n    } else if (hist.done.length && !lst(hist.done).ranges) {\n      return lst(hist.done);\n    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n      hist.done.pop();\n      return lst(hist.done);\n    }\n  }\n\n  // Register a change in the history. Merges changes that are within\n  // a single operation, ore are close together with an origin that\n  // allows merging (starting with \"+\") into a single event.\n  function addChangeToHistory(doc, change, selAfter, opId) {\n    var hist = doc.history;\n    hist.undone.length = 0;\n    var time = +new Date, cur;\n\n    if ((hist.lastOp == opId ||\n         hist.lastOrigin == change.origin && change.origin &&\n         ((change.origin.charAt(0) == \"+\" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||\n          change.origin.charAt(0) == \"*\")) &&\n        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n      // Merge this change into the last event\n      var last = lst(cur.changes);\n      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n        // Optimized case for simple insertion -- don't want to add\n        // new changesets for every character typed\n        last.to = changeEnd(change);\n      } else {\n        // Add new sub-event\n        cur.changes.push(historyChangeFromChange(doc, change));\n      }\n    } else {\n      // Can not be merged, start a new event.\n      var before = lst(hist.done);\n      if (!before || !before.ranges)\n        pushSelectionToHistory(doc.sel, hist.done);\n      cur = {changes: [historyChangeFromChange(doc, change)],\n             generation: hist.generation};\n      hist.done.push(cur);\n      while (hist.done.length > hist.undoDepth) {\n        hist.done.shift();\n        if (!hist.done[0].ranges) hist.done.shift();\n      }\n    }\n    hist.done.push(selAfter);\n    hist.generation = ++hist.maxGeneration;\n    hist.lastModTime = hist.lastSelTime = time;\n    hist.lastOp = hist.lastSelOp = opId;\n    hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n    if (!last) signal(doc, \"historyAdded\");\n  }\n\n  function selectionEventCanBeMerged(doc, origin, prev, sel) {\n    var ch = origin.charAt(0);\n    return ch == \"*\" ||\n      ch == \"+\" &&\n      prev.ranges.length == sel.ranges.length &&\n      prev.somethingSelected() == sel.somethingSelected() &&\n      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);\n  }\n\n  // Called whenever the selection changes, sets the new selection as\n  // the pending selection in the history, and pushes the old pending\n  // selection into the 'done' array when it was significantly\n  // different (in number of selected ranges, emptiness, or time).\n  function addSelectionToHistory(doc, sel, opId, options) {\n    var hist = doc.history, origin = options && options.origin;\n\n    // A new event is started when the previous origin does not match\n    // the current, or the origins don't allow matching. Origins\n    // starting with * are always merged, those starting with + are\n    // merged when similar and close together in time.\n    if (opId == hist.lastSelOp ||\n        (origin && hist.lastSelOrigin == origin &&\n         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n      hist.done[hist.done.length - 1] = sel;\n    else\n      pushSelectionToHistory(sel, hist.done);\n\n    hist.lastSelTime = +new Date;\n    hist.lastSelOrigin = origin;\n    hist.lastSelOp = opId;\n    if (options && options.clearRedo !== false)\n      clearSelectionEvents(hist.undone);\n  }\n\n  function pushSelectionToHistory(sel, dest) {\n    var top = lst(dest);\n    if (!(top && top.ranges && top.equals(sel)))\n      dest.push(sel);\n  }\n\n  // Used to store marked span information in the history.\n  function attachLocalSpans(doc, change, from, to) {\n    var existing = change[\"spans_\" + doc.id], n = 0;\n    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {\n      if (line.markedSpans)\n        (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans;\n      ++n;\n    });\n  }\n\n  // When un/re-doing restores text containing marked spans, those\n  // that have been explicitly cleared should not be restored.\n  function removeClearedSpans(spans) {\n    if (!spans) return null;\n    for (var i = 0, out; i < spans.length; ++i) {\n      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }\n      else if (out) out.push(spans[i]);\n    }\n    return !out ? spans : out.length ? out : null;\n  }\n\n  // Retrieve and filter the old marked spans stored in a change event.\n  function getOldSpans(doc, change) {\n    var found = change[\"spans_\" + doc.id];\n    if (!found) return null;\n    for (var i = 0, nw = []; i < change.text.length; ++i)\n      nw.push(removeClearedSpans(found[i]));\n    return nw;\n  }\n\n  // Used both to provide a JSON-safe object in .getHistory, and, when\n  // detaching a document, to split the history in two\n  function copyHistoryArray(events, newGroup, instantiateSel) {\n    for (var i = 0, copy = []; i < events.length; ++i) {\n      var event = events[i];\n      if (event.ranges) {\n        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n        continue;\n      }\n      var changes = event.changes, newChanges = [];\n      copy.push({changes: newChanges});\n      for (var j = 0; j < changes.length; ++j) {\n        var change = changes[j], m;\n        newChanges.push({from: change.from, to: change.to, text: change.text});\n        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\\d+)$/)) {\n          if (indexOf(newGroup, Number(m[1])) > -1) {\n            lst(newChanges)[prop] = change[prop];\n            delete change[prop];\n          }\n        }\n      }\n    }\n    return copy;\n  }\n\n  // Rebasing/resetting history to deal with externally-sourced changes\n\n  function rebaseHistSelSingle(pos, from, to, diff) {\n    if (to < pos.line) {\n      pos.line += diff;\n    } else if (from < pos.line) {\n      pos.line = from;\n      pos.ch = 0;\n    }\n  }\n\n  // Tries to rebase an array of history events given a change in the\n  // document. If the change touches the same lines as the event, the\n  // event, and everything 'behind' it, is discarded. If the change is\n  // before the event, the event's positions are updated. Uses a\n  // copy-on-write scheme for the positions, to avoid having to\n  // reallocate them all on every rebase, but also avoid problems with\n  // shared position objects being unsafely updated.\n  function rebaseHistArray(array, from, to, diff) {\n    for (var i = 0; i < array.length; ++i) {\n      var sub = array[i], ok = true;\n      if (sub.ranges) {\n        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n        for (var j = 0; j < sub.ranges.length; j++) {\n          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n        }\n        continue;\n      }\n      for (var j = 0; j < sub.changes.length; ++j) {\n        var cur = sub.changes[j];\n        if (to < cur.from.line) {\n          cur.from = Pos(cur.from.line + diff, cur.from.ch);\n          cur.to = Pos(cur.to.line + diff, cur.to.ch);\n        } else if (from <= cur.to.line) {\n          ok = false;\n          break;\n        }\n      }\n      if (!ok) {\n        array.splice(0, i + 1);\n        i = 0;\n      }\n    }\n  }\n\n  function rebaseHist(hist, change) {\n    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n    rebaseHistArray(hist.done, from, to, diff);\n    rebaseHistArray(hist.undone, from, to, diff);\n  }\n\n  // EVENT UTILITIES\n\n  // Due to the fact that we still support jurassic IE versions, some\n  // compatibility wrappers are needed.\n\n  var e_preventDefault = CodeMirror.e_preventDefault = function(e) {\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n  };\n  var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {\n    if (e.stopPropagation) e.stopPropagation();\n    else e.cancelBubble = true;\n  };\n  function e_defaultPrevented(e) {\n    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;\n  }\n  var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};\n\n  function e_target(e) {return e.target || e.srcElement;}\n  function e_button(e) {\n    var b = e.which;\n    if (b == null) {\n      if (e.button & 1) b = 1;\n      else if (e.button & 2) b = 3;\n      else if (e.button & 4) b = 2;\n    }\n    if (mac && e.ctrlKey && b == 1) b = 3;\n    return b;\n  }\n\n  // EVENT HANDLING\n\n  // Lightweight event framework. on/off also work on DOM nodes,\n  // registering native DOM handlers.\n\n  var on = CodeMirror.on = function(emitter, type, f) {\n    if (emitter.addEventListener)\n      emitter.addEventListener(type, f, false);\n    else if (emitter.attachEvent)\n      emitter.attachEvent(\"on\" + type, f);\n    else {\n      var map = emitter._handlers || (emitter._handlers = {});\n      var arr = map[type] || (map[type] = []);\n      arr.push(f);\n    }\n  };\n\n  var off = CodeMirror.off = function(emitter, type, f) {\n    if (emitter.removeEventListener)\n      emitter.removeEventListener(type, f, false);\n    else if (emitter.detachEvent)\n      emitter.detachEvent(\"on\" + type, f);\n    else {\n      var arr = emitter._handlers && emitter._handlers[type];\n      if (!arr) return;\n      for (var i = 0; i < arr.length; ++i)\n        if (arr[i] == f) { arr.splice(i, 1); break; }\n    }\n  };\n\n  var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args);\n  };\n\n  var orphanDelayedCallbacks = null;\n\n  // Often, we want to signal events at a point where we are in the\n  // middle of some work, but don't want the handler to start calling\n  // other methods on the editor, which might be in an inconsistent\n  // state or simply not expect any other events to happen.\n  // signalLater looks whether there are any handlers, and schedules\n  // them to be executed when the last operation ends, or, if no\n  // operation is active, when a timeout fires.\n  function signalLater(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2), list;\n    if (operationGroup) {\n      list = operationGroup.delayedCallbacks;\n    } else if (orphanDelayedCallbacks) {\n      list = orphanDelayedCallbacks;\n    } else {\n      list = orphanDelayedCallbacks = [];\n      setTimeout(fireOrphanDelayed, 0);\n    }\n    function bnd(f) {return function(){f.apply(null, args);};};\n    for (var i = 0; i < arr.length; ++i)\n      list.push(bnd(arr[i]));\n  }\n\n  function fireOrphanDelayed() {\n    var delayed = orphanDelayedCallbacks;\n    orphanDelayedCallbacks = null;\n    for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  // The DOM events that CodeMirror handles can be overridden by\n  // registering a (non-DOM) handler on the editor for the event name,\n  // and preventDefault-ing the event in that handler.\n  function signalDOMEvent(cm, e, override) {\n    if (typeof e == \"string\")\n      e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};\n    signal(cm, override || e.type, cm, e);\n    return e_defaultPrevented(e) || e.codemirrorIgnore;\n  }\n\n  function signalCursorActivity(cm) {\n    var arr = cm._handlers && cm._handlers.cursorActivity;\n    if (!arr) return;\n    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n    for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)\n      set.push(arr[i]);\n  }\n\n  function hasHandler(emitter, type) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    return arr && arr.length > 0;\n  }\n\n  // Add on and off methods to a constructor's prototype, to make\n  // registering events on such objects more convenient.\n  function eventMixin(ctor) {\n    ctor.prototype.on = function(type, f) {on(this, type, f);};\n    ctor.prototype.off = function(type, f) {off(this, type, f);};\n  }\n\n  // MISC UTILITIES\n\n  // Number of pixels added to scroller and sizer to hide scrollbar\n  var scrollerGap = 30;\n\n  // Returned or thrown by various protocols to signal 'I'm not\n  // handling this'.\n  var Pass = CodeMirror.Pass = {toString: function(){return \"CodeMirror.Pass\";}};\n\n  // Reused option objects for setSelection & friends\n  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n  function Delayed() {this.id = null;}\n  Delayed.prototype.set = function(ms, f) {\n    clearTimeout(this.id);\n    this.id = setTimeout(f, ms);\n  };\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) end = string.length;\n    }\n    for (var i = startIndex || 0, n = startValue || 0;;) {\n      var nextTab = string.indexOf(\"\\t\", i);\n      if (nextTab < 0 || nextTab >= end)\n        return n + (end - i);\n      n += nextTab - i;\n      n += tabSize - (n % tabSize);\n      i = nextTab + 1;\n    }\n  };\n\n  // The inverse of countColumn -- find the offset that corresponds to\n  // a particular column.\n  function findColumn(string, goal, tabSize) {\n    for (var pos = 0, col = 0;;) {\n      var nextTab = string.indexOf(\"\\t\", pos);\n      if (nextTab == -1) nextTab = string.length;\n      var skipped = nextTab - pos;\n      if (nextTab == string.length || col + skipped >= goal)\n        return pos + Math.min(skipped, goal - col);\n      col += nextTab - pos;\n      col += tabSize - (col % tabSize);\n      pos = nextTab + 1;\n      if (col >= goal) return pos;\n    }\n  }\n\n  var spaceStrs = [\"\"];\n  function spaceStr(n) {\n    while (spaceStrs.length <= n)\n      spaceStrs.push(lst(spaceStrs) + \" \");\n    return spaceStrs[n];\n  }\n\n  function lst(arr) { return arr[arr.length-1]; }\n\n  var selectInput = function(node) { node.select(); };\n  if (ios) // Mobile Safari apparently has a bug where select() is broken.\n    selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };\n  else if (ie) // Suppress mysterious IE10 errors\n    selectInput = function(node) { try { node.select(); } catch(_e) {} };\n\n  function indexOf(array, elt) {\n    for (var i = 0; i < array.length; ++i)\n      if (array[i] == elt) return i;\n    return -1;\n  }\n  function map(array, f) {\n    var out = [];\n    for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);\n    return out;\n  }\n\n  function nothing() {}\n\n  function createObj(base, props) {\n    var inst;\n    if (Object.create) {\n      inst = Object.create(base);\n    } else {\n      nothing.prototype = base;\n      inst = new nothing();\n    }\n    if (props) copyObj(props, inst);\n    return inst;\n  };\n\n  function copyObj(obj, target, overwrite) {\n    if (!target) target = {};\n    for (var prop in obj)\n      if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n        target[prop] = obj[prop];\n    return target;\n  }\n\n  function bind(f) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return function(){return f.apply(null, args);};\n  }\n\n  var nonASCIISingleCaseWordChar = /[\\u00df\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n  var isWordCharBasic = CodeMirror.isWordChar = function(ch) {\n    return /\\w/.test(ch) || ch > \"\\x80\" &&\n      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));\n  };\n  function isWordChar(ch, helper) {\n    if (!helper) return isWordCharBasic(ch);\n    if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) return true;\n    return helper.test(ch);\n  }\n\n  function isEmpty(obj) {\n    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;\n    return true;\n  }\n\n  // Extending unicode characters. A series of a non-extending char +\n  // any number of extending chars is treated as a single unit as far\n  // as editing and measuring is concerned. This is not fully correct,\n  // since some scripts/fonts/browsers also treat other configurations\n  // of code points as a group.\n  var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }\n\n  // DOM UTILITIES\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") e.appendChild(document.createTextNode(content));\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  var range;\n  if (document.createRange) range = function(node, start, end, endNode) {\n    var r = document.createRange();\n    r.setEnd(endNode || node, end);\n    r.setStart(node, start);\n    return r;\n  };\n  else range = function(node, start, end) {\n    var r = document.body.createTextRange();\n    try { r.moveToElementText(node.parentNode); }\n    catch(e) { return r; }\n    r.collapse(true);\n    r.moveEnd(\"character\", end);\n    r.moveStart(\"character\", start);\n    return r;\n  };\n\n  function removeChildren(e) {\n    for (var count = e.childNodes.length; count > 0; --count)\n      e.removeChild(e.firstChild);\n    return e;\n  }\n\n  function removeChildrenAndAdd(parent, e) {\n    return removeChildren(parent).appendChild(e);\n  }\n\n  var contains = CodeMirror.contains = function(parent, child) {\n    if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n      child = child.parentNode;\n    if (parent.contains)\n      return parent.contains(child);\n    do {\n      if (child.nodeType == 11) child = child.host;\n      if (child == parent) return true;\n    } while (child = child.parentNode);\n  };\n\n  function activeElt() { return document.activeElement; }\n  // Older versions of IE throws unspecified error when touching\n  // document.activeElement in some cases (during loading, in iframe)\n  if (ie && ie_version < 11) activeElt = function() {\n    try { return document.activeElement; }\n    catch(e) { return document.body; }\n  };\n\n  function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\"); }\n  var rmClass = CodeMirror.rmClass = function(node, cls) {\n    var current = node.className;\n    var match = classTest(cls).exec(current);\n    if (match) {\n      var after = current.slice(match.index + match[0].length);\n      node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n    }\n  };\n  var addClass = CodeMirror.addClass = function(node, cls) {\n    var current = node.className;\n    if (!classTest(cls).test(current)) node.className += (current ? \" \" : \"\") + cls;\n  };\n  function joinClasses(a, b) {\n    var as = a.split(\" \");\n    for (var i = 0; i < as.length; i++)\n      if (as[i] && !classTest(as[i]).test(b)) b += \" \" + as[i];\n    return b;\n  }\n\n  // WINDOW-WIDE EVENTS\n\n  // These must be handled carefully, because naively registering a\n  // handler for each editor will cause the editors to never be\n  // garbage collected.\n\n  function forEachCodeMirror(f) {\n    if (!document.body.getElementsByClassName) return;\n    var byClass = document.body.getElementsByClassName(\"CodeMirror\");\n    for (var i = 0; i < byClass.length; i++) {\n      var cm = byClass[i].CodeMirror;\n      if (cm) f(cm);\n    }\n  }\n\n  var globalsRegistered = false;\n  function ensureGlobalHandlers() {\n    if (globalsRegistered) return;\n    registerGlobalHandlers();\n    globalsRegistered = true;\n  }\n  function registerGlobalHandlers() {\n    // When the window resizes, we need to refresh active editors.\n    var resizeTimer;\n    on(window, \"resize\", function() {\n      if (resizeTimer == null) resizeTimer = setTimeout(function() {\n        resizeTimer = null;\n        forEachCodeMirror(onResize);\n      }, 100);\n    });\n    // When the window loses focus, we want to show the editor as blurred\n    on(window, \"blur\", function() {\n      forEachCodeMirror(onBlur);\n    });\n  }\n\n  // FEATURE DETECTION\n\n  // Detect drag-and-drop\n  var dragAndDrop = function() {\n    // There is *some* kind of drag-and-drop support in IE6-8, but I\n    // couldn't get it to work yet.\n    if (ie && ie_version < 9) return false;\n    var div = elt('div');\n    return \"draggable\" in div || \"dragDrop\" in div;\n  }();\n\n  var zwspSupported;\n  function zeroWidthElement(measure) {\n    if (zwspSupported == null) {\n      var test = elt(\"span\", \"\\u200b\");\n      removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n      if (measure.firstChild.offsetHeight != 0)\n        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);\n    }\n    var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n      elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n    node.setAttribute(\"cm-text\", \"\");\n    return node;\n  }\n\n  // Feature-detect IE's crummy client rect reporting for bidi text\n  var badBidiRects;\n  function hasBadBidiRects(measure) {\n    if (badBidiRects != null) return badBidiRects;\n    var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n    var r0 = range(txt, 0, 1).getBoundingClientRect();\n    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)\n    var r1 = range(txt, 1, 2).getBoundingClientRect();\n    return badBidiRects = (r1.right - r0.right < 3);\n  }\n\n  // See if \"\".split is the broken IE version, if so, provide an\n  // alternative way to split lines.\n  var splitLines = CodeMirror.splitLines = \"\\n\\nb\".split(/\\n/).length != 3 ? function(string) {\n    var pos = 0, result = [], l = string.length;\n    while (pos <= l) {\n      var nl = string.indexOf(\"\\n\", pos);\n      if (nl == -1) nl = string.length;\n      var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n      var rt = line.indexOf(\"\\r\");\n      if (rt != -1) {\n        result.push(line.slice(0, rt));\n        pos += rt + 1;\n      } else {\n        result.push(line);\n        pos = nl + 1;\n      }\n    }\n    return result;\n  } : function(string){return string.split(/\\r\\n?|\\n/);};\n\n  var hasSelection = window.getSelection ? function(te) {\n    try { return te.selectionStart != te.selectionEnd; }\n    catch(e) { return false; }\n  } : function(te) {\n    try {var range = te.ownerDocument.selection.createRange();}\n    catch(e) {}\n    if (!range || range.parentElement() != te) return false;\n    return range.compareEndPoints(\"StartToEnd\", range) != 0;\n  };\n\n  var hasCopyEvent = (function() {\n    var e = elt(\"div\");\n    if (\"oncopy\" in e) return true;\n    e.setAttribute(\"oncopy\", \"return;\");\n    return typeof e.oncopy == \"function\";\n  })();\n\n  var badZoomedRects = null;\n  function hasBadZoomedRects(measure) {\n    if (badZoomedRects != null) return badZoomedRects;\n    var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n    var normal = node.getBoundingClientRect();\n    var fromRange = range(node, 0, 1).getBoundingClientRect();\n    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;\n  }\n\n  // KEY NAMES\n\n  var keyNames = {3: \"Enter\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n                  19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n                  36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n                  46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\", 107: \"=\", 109: \"-\", 127: \"Delete\",\n                  173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n                  221: \"]\", 222: \"'\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n                  63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"};\n  CodeMirror.keyNames = keyNames;\n  (function() {\n    // Number keys\n    for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);\n    // Alphabetic keys\n    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);\n    // Function keys\n    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = \"F\" + i;\n  })();\n\n  // BIDI HELPERS\n\n  function iterateBidiSections(order, from, to, f) {\n    if (!order) return f(from, to, \"ltr\");\n    var found = false;\n    for (var i = 0; i < order.length; ++i) {\n      var part = order[i];\n      if (part.from < to && part.to > from || from == to && part.to == from) {\n        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\");\n        found = true;\n      }\n    }\n    if (!found) f(from, to, \"ltr\");\n  }\n\n  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }\n  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }\n\n  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }\n  function lineRight(line) {\n    var order = getOrder(line);\n    if (!order) return line.text.length;\n    return bidiRight(lst(order));\n  }\n\n  function lineStart(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLine(line);\n    if (visual != line) lineN = lineNo(visual);\n    var order = getOrder(visual);\n    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);\n    return Pos(lineN, ch);\n  }\n  function lineEnd(cm, lineN) {\n    var merged, line = getLine(cm.doc, lineN);\n    while (merged = collapsedSpanAtEnd(line)) {\n      line = merged.find(1, true).line;\n      lineN = null;\n    }\n    var order = getOrder(line);\n    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);\n    return Pos(lineN == null ? lineNo(line) : lineN, ch);\n  }\n  function lineStartSmart(cm, pos) {\n    var start = lineStart(cm, pos.line);\n    var line = getLine(cm.doc, start.line);\n    var order = getOrder(line);\n    if (!order || order[0].level == 0) {\n      var firstNonWS = Math.max(0, line.text.search(/\\S/));\n      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n      return Pos(start.line, inWS ? 0 : firstNonWS);\n    }\n    return start;\n  }\n\n  function compareBidiLevel(order, a, b) {\n    var linedir = order[0].level;\n    if (a == linedir) return true;\n    if (b == linedir) return false;\n    return a < b;\n  }\n  var bidiOther;\n  function getBidiPartAt(order, pos) {\n    bidiOther = null;\n    for (var i = 0, found; i < order.length; ++i) {\n      var cur = order[i];\n      if (cur.from < pos && cur.to > pos) return i;\n      if ((cur.from == pos || cur.to == pos)) {\n        if (found == null) {\n          found = i;\n        } else if (compareBidiLevel(order, cur.level, order[found].level)) {\n          if (cur.from != cur.to) bidiOther = found;\n          return i;\n        } else {\n          if (cur.from != cur.to) bidiOther = i;\n          return found;\n        }\n      }\n    }\n    return found;\n  }\n\n  function moveInLine(line, pos, dir, byUnit) {\n    if (!byUnit) return pos + dir;\n    do pos += dir;\n    while (pos > 0 && isExtendingChar(line.text.charAt(pos)));\n    return pos;\n  }\n\n  // This is needed in order to move 'visually' through bi-directional\n  // text -- i.e., pressing left should make the cursor go left, even\n  // when in RTL text. The tricky part is the 'jumps', where RTL and\n  // LTR text touch each other. This often requires the cursor offset\n  // to move more than one unit, in order to visually move one unit.\n  function moveVisually(line, start, dir, byUnit) {\n    var bidi = getOrder(line);\n    if (!bidi) return moveLogically(line, start, dir, byUnit);\n    var pos = getBidiPartAt(bidi, start), part = bidi[pos];\n    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);\n\n    for (;;) {\n      if (target > part.from && target < part.to) return target;\n      if (target == part.from || target == part.to) {\n        if (getBidiPartAt(bidi, target) == pos) return target;\n        part = bidi[pos += dir];\n        return (dir > 0) == part.level % 2 ? part.to : part.from;\n      } else {\n        part = bidi[pos += dir];\n        if (!part) return null;\n        if ((dir > 0) == part.level % 2)\n          target = moveInLine(line, part.to, -1, byUnit);\n        else\n          target = moveInLine(line, part.from, 1, byUnit);\n      }\n    }\n  }\n\n  function moveLogically(line, start, dir, byUnit) {\n    var target = start + dir;\n    if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;\n    return target < 0 || target > line.text.length ? null : target;\n  }\n\n  // Bidirectional ordering algorithm\n  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n  // that this (partially) implements.\n\n  // One-char codes used for character types:\n  // L (L):   Left-to-Right\n  // R (R):   Right-to-Left\n  // r (AL):  Right-to-Left Arabic\n  // 1 (EN):  European Number\n  // + (ES):  European Number Separator\n  // % (ET):  European Number Terminator\n  // n (AN):  Arabic Number\n  // , (CS):  Common Number Separator\n  // m (NSM): Non-Spacing Mark\n  // b (BN):  Boundary Neutral\n  // s (B):   Paragraph Separator\n  // t (S):   Segment Separator\n  // w (WS):  Whitespace\n  // N (ON):  Other Neutrals\n\n  // Returns null if characters are ordered as they appear\n  // (left-to-right), or an array of sections ({from, to, level}\n  // objects) in the order in which they occur visually.\n  var bidiOrdering = (function() {\n    // Character types for codepoints 0 to 0xff\n    var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n    // Character types for codepoints 0x600 to 0x6ff\n    var arabicTypes = \"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm\";\n    function charType(code) {\n      if (code <= 0xf7) return lowTypes.charAt(code);\n      else if (0x590 <= code && code <= 0x5f4) return \"R\";\n      else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);\n      else if (0x6ee <= code && code <= 0x8ac) return \"r\";\n      else if (0x2000 <= code && code <= 0x200b) return \"w\";\n      else if (code == 0x200c) return \"b\";\n      else return \"L\";\n    }\n\n    var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n    // Browsers seem to always treat the boundaries of block elements as being L.\n    var outerType = \"L\";\n\n    function BidiSpan(level, from, to) {\n      this.level = level;\n      this.from = from; this.to = to;\n    }\n\n    return function(str) {\n      if (!bidiRE.test(str)) return false;\n      var len = str.length, types = [];\n      for (var i = 0, type; i < len; ++i)\n        types.push(type = charType(str.charCodeAt(i)));\n\n      // W1. Examine each non-spacing mark (NSM) in the level run, and\n      // change the type of the NSM to the type of the previous\n      // character. If the NSM is at the start of the level run, it will\n      // get the type of sor.\n      for (var i = 0, prev = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"m\") types[i] = prev;\n        else prev = type;\n      }\n\n      // W2. Search backwards from each instance of a European number\n      // until the first strong type (R, L, AL, or sor) is found. If an\n      // AL is found, change the type of the European number to Arabic\n      // number.\n      // W3. Change all ALs to R.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"1\" && cur == \"r\") types[i] = \"n\";\n        else if (isStrong.test(type)) { cur = type; if (type == \"r\") types[i] = \"R\"; }\n      }\n\n      // W4. A single European separator between two European numbers\n      // changes to a European number. A single common separator between\n      // two numbers of the same type changes to that type.\n      for (var i = 1, prev = types[0]; i < len - 1; ++i) {\n        var type = types[i];\n        if (type == \"+\" && prev == \"1\" && types[i+1] == \"1\") types[i] = \"1\";\n        else if (type == \",\" && prev == types[i+1] &&\n                 (prev == \"1\" || prev == \"n\")) types[i] = prev;\n        prev = type;\n      }\n\n      // W5. A sequence of European terminators adjacent to European\n      // numbers changes to all European numbers.\n      // W6. Otherwise, separators and terminators change to Other\n      // Neutral.\n      for (var i = 0; i < len; ++i) {\n        var type = types[i];\n        if (type == \",\") types[i] = \"N\";\n        else if (type == \"%\") {\n          for (var end = i + 1; end < len && types[end] == \"%\"; ++end) {}\n          var replace = (i && types[i-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // W7. Search backwards from each instance of a European number\n      // until the first strong type (R, L, or sor) is found. If an L is\n      // found, then change the type of the European number to L.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (cur == \"L\" && type == \"1\") types[i] = \"L\";\n        else if (isStrong.test(type)) cur = type;\n      }\n\n      // N1. A sequence of neutrals takes the direction of the\n      // surrounding strong text if the text on both sides has the same\n      // direction. European and Arabic numbers act as if they were R in\n      // terms of their influence on neutrals. Start-of-level-run (sor)\n      // and end-of-level-run (eor) are used at level run boundaries.\n      // N2. Any remaining neutrals take the embedding direction.\n      for (var i = 0; i < len; ++i) {\n        if (isNeutral.test(types[i])) {\n          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}\n          var before = (i ? types[i-1] : outerType) == \"L\";\n          var after = (end < len ? types[end] : outerType) == \"L\";\n          var replace = before || after ? \"L\" : \"R\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // Here we depart from the documented algorithm, in order to avoid\n      // building up an actual levels array. Since there are only three\n      // levels (0, 1, 2) in an implementation that doesn't take\n      // explicit embedding into account, we can build up the order on\n      // the fly, without following the level-based algorithm.\n      var order = [], m;\n      for (var i = 0; i < len;) {\n        if (countsAsLeft.test(types[i])) {\n          var start = i;\n          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}\n          order.push(new BidiSpan(0, start, i));\n        } else {\n          var pos = i, at = order.length;\n          for (++i; i < len && types[i] != \"L\"; ++i) {}\n          for (var j = pos; j < i;) {\n            if (countsAsNum.test(types[j])) {\n              if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));\n              var nstart = j;\n              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}\n              order.splice(at, 0, new BidiSpan(2, nstart, j));\n              pos = j;\n            } else ++j;\n          }\n          if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));\n        }\n      }\n      if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n        order[0].from = m[0].length;\n        order.unshift(new BidiSpan(0, 0, m[0].length));\n      }\n      if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n        lst(order).to -= m[0].length;\n        order.push(new BidiSpan(0, len - m[0].length, len));\n      }\n      if (order[0].level != lst(order).level)\n        order.push(new BidiSpan(order[0].level, len, len));\n\n      return order;\n    };\n  })();\n\n  // THE END\n\n  CodeMirror.version = \"5.0.0\";\n\n  return CodeMirror;\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/apl/apl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"apl\", function() {\n  var builtInOps = {\n    \".\": \"innerProduct\",\n    \"\\\\\": \"scan\",\n    \"/\": \"reduce\",\n    \"⌿\": \"reduce1Axis\",\n    \"⍀\": \"scan1Axis\",\n    \"¨\": \"each\",\n    \"⍣\": \"power\"\n  };\n  var builtInFuncs = {\n    \"+\": [\"conjugate\", \"add\"],\n    \"−\": [\"negate\", \"subtract\"],\n    \"×\": [\"signOf\", \"multiply\"],\n    \"÷\": [\"reciprocal\", \"divide\"],\n    \"⌈\": [\"ceiling\", \"greaterOf\"],\n    \"⌊\": [\"floor\", \"lesserOf\"],\n    \"∣\": [\"absolute\", \"residue\"],\n    \"⍳\": [\"indexGenerate\", \"indexOf\"],\n    \"?\": [\"roll\", \"deal\"],\n    \"⋆\": [\"exponentiate\", \"toThePowerOf\"],\n    \"⍟\": [\"naturalLog\", \"logToTheBase\"],\n    \"○\": [\"piTimes\", \"circularFuncs\"],\n    \"!\": [\"factorial\", \"binomial\"],\n    \"⌹\": [\"matrixInverse\", \"matrixDivide\"],\n    \"<\": [null, \"lessThan\"],\n    \"≤\": [null, \"lessThanOrEqual\"],\n    \"=\": [null, \"equals\"],\n    \">\": [null, \"greaterThan\"],\n    \"≥\": [null, \"greaterThanOrEqual\"],\n    \"≠\": [null, \"notEqual\"],\n    \"≡\": [\"depth\", \"match\"],\n    \"≢\": [null, \"notMatch\"],\n    \"∈\": [\"enlist\", \"membership\"],\n    \"⍷\": [null, \"find\"],\n    \"∪\": [\"unique\", \"union\"],\n    \"∩\": [null, \"intersection\"],\n    \"∼\": [\"not\", \"without\"],\n    \"∨\": [null, \"or\"],\n    \"∧\": [null, \"and\"],\n    \"⍱\": [null, \"nor\"],\n    \"⍲\": [null, \"nand\"],\n    \"⍴\": [\"shapeOf\", \"reshape\"],\n    \",\": [\"ravel\", \"catenate\"],\n    \"⍪\": [null, \"firstAxisCatenate\"],\n    \"⌽\": [\"reverse\", \"rotate\"],\n    \"⊖\": [\"axis1Reverse\", \"axis1Rotate\"],\n    \"⍉\": [\"transpose\", null],\n    \"↑\": [\"first\", \"take\"],\n    \"↓\": [null, \"drop\"],\n    \"⊂\": [\"enclose\", \"partitionWithAxis\"],\n    \"⊃\": [\"diclose\", \"pick\"],\n    \"⌷\": [null, \"index\"],\n    \"⍋\": [\"gradeUp\", null],\n    \"⍒\": [\"gradeDown\", null],\n    \"⊤\": [\"encode\", null],\n    \"⊥\": [\"decode\", null],\n    \"⍕\": [\"format\", \"formatByExample\"],\n    \"⍎\": [\"execute\", null],\n    \"⊣\": [\"stop\", \"left\"],\n    \"⊢\": [\"pass\", \"right\"]\n  };\n\n  var isOperator = /[\\.\\/⌿⍀¨⍣]/;\n  var isNiladic = /⍬/;\n  var isFunction = /[\\+−×÷⌈⌊∣⍳\\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;\n  var isArrow = /←/;\n  var isComment = /[⍝#].*$/;\n\n  var stringEater = function(type) {\n    var prev;\n    prev = false;\n    return function(c) {\n      prev = c;\n      if (c === type) {\n        return prev === \"\\\\\";\n      }\n      return true;\n    };\n  };\n  return {\n    startState: function() {\n      return {\n        prev: false,\n        func: false,\n        op: false,\n        string: false,\n        escape: false\n      };\n    },\n    token: function(stream, state) {\n      var ch, funcName, word;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      ch = stream.next();\n      if (ch === '\"' || ch === \"'\") {\n        stream.eatWhile(stringEater(ch));\n        stream.next();\n        state.prev = true;\n        return \"string\";\n      }\n      if (/[\\[{\\(]/.test(ch)) {\n        state.prev = false;\n        return null;\n      }\n      if (/[\\]}\\)]/.test(ch)) {\n        state.prev = true;\n        return null;\n      }\n      if (isNiladic.test(ch)) {\n        state.prev = false;\n        return \"niladic\";\n      }\n      if (/[¯\\d]/.test(ch)) {\n        if (state.func) {\n          state.func = false;\n          state.prev = false;\n        } else {\n          state.prev = true;\n        }\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperator.test(ch)) {\n        return \"operator apl-\" + builtInOps[ch];\n      }\n      if (isArrow.test(ch)) {\n        return \"apl-arrow\";\n      }\n      if (isFunction.test(ch)) {\n        funcName = \"apl-\";\n        if (builtInFuncs[ch] != null) {\n          if (state.prev) {\n            funcName += builtInFuncs[ch][1];\n          } else {\n            funcName += builtInFuncs[ch][0];\n          }\n        }\n        state.func = true;\n        state.prev = false;\n        return \"function \" + funcName;\n      }\n      if (isComment.test(ch)) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (ch === \"∘\" && stream.peek() === \".\") {\n        stream.next();\n        return \"function jot-dot\";\n      }\n      stream.eatWhile(/[\\w\\$_]/);\n      word = stream.current();\n      state.prev = true;\n      return \"keyword\";\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/apl\", \"apl\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/apl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: APL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"./apl.js\"></script>\n<style>\n\t.CodeMirror { border: 2px inset #dee; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">APL</a>\n  </ul>\n</div>\n\n<article>\n<h2>APL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n⍝ Conway's game of life\n\n⍝ This example was inspired by the impressive demo at\n⍝ http://www.youtube.com/watch?v=a9xAKttWgP4\n\n⍝ Create a matrix:\n⍝     0 1 1\n⍝     1 1 0\n⍝     0 1 0\ncreature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7   ⍝ Original creature from demo\ncreature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8   ⍝ Glider\n\n⍝ Place the creature on a larger board, near the centre\nboard ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature\n\n⍝ A function to move from one generation to the next\nlife ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}\n\n⍝ Compute n-th generation and format it as a\n⍝ character matrix\ngen ← {' #'[(life ⍣ ⍵) board]}\n\n⍝ Show first three generations\n(gen 1) (gen 2) (gen 3)\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/apl\"\n      });\n    </script>\n\n    <p>Simple mode that tries to handle APL as well as it can.</p>\n    <p>It attempts to label functions/operators based upon\n    monadic/dyadic usage (but this is far from fully fleshed out).\n    This means there are meaningful classnames so hover states can\n    have popups etc.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/asterisk/asterisk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n * =====================================================================================\n *\n *       Filename:  mode/asterisk/asterisk.js\n *\n *    Description:  CodeMirror mode for Asterisk dialplan\n *\n *        Created:  05/17/2012 09:20:25 PM\n *       Revision:  none\n *\n *         Author:  Stas Kobzar (stas@modulis.ca),\n *        Company:  Modulis.ca Inc.\n *\n * =====================================================================================\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"asterisk\", function() {\n  var atoms    = [\"exten\", \"same\", \"include\",\"ignorepat\",\"switch\"],\n      dpcmd    = [\"#include\",\"#exec\"],\n      apps     = [\n                  \"addqueuemember\",\"adsiprog\",\"aelsub\",\"agentlogin\",\"agentmonitoroutgoing\",\"agi\",\n                  \"alarmreceiver\",\"amd\",\"answer\",\"authenticate\",\"background\",\"backgrounddetect\",\n                  \"bridge\",\"busy\",\"callcompletioncancel\",\"callcompletionrequest\",\"celgenuserevent\",\n                  \"changemonitor\",\"chanisavail\",\"channelredirect\",\"chanspy\",\"clearhash\",\"confbridge\",\n                  \"congestion\",\"continuewhile\",\"controlplayback\",\"dahdiacceptr2call\",\"dahdibarge\",\n                  \"dahdiras\",\"dahdiscan\",\"dahdisendcallreroutingfacility\",\"dahdisendkeypadfacility\",\n                  \"datetime\",\"dbdel\",\"dbdeltree\",\"deadagi\",\"dial\",\"dictate\",\"directory\",\"disa\",\n                  \"dumpchan\",\"eagi\",\"echo\",\"endwhile\",\"exec\",\"execif\",\"execiftime\",\"exitwhile\",\"extenspy\",\n                  \"externalivr\",\"festival\",\"flash\",\"followme\",\"forkcdr\",\"getcpeid\",\"gosub\",\"gosubif\",\n                  \"goto\",\"gotoif\",\"gotoiftime\",\"hangup\",\"iax2provision\",\"ices\",\"importvar\",\"incomplete\",\n                  \"ivrdemo\",\"jabberjoin\",\"jabberleave\",\"jabbersend\",\"jabbersendgroup\",\"jabberstatus\",\n                  \"jack\",\"log\",\"macro\",\"macroexclusive\",\"macroexit\",\"macroif\",\"mailboxexists\",\"meetme\",\n                  \"meetmeadmin\",\"meetmechanneladmin\",\"meetmecount\",\"milliwatt\",\"minivmaccmess\",\"minivmdelete\",\n                  \"minivmgreet\",\"minivmmwi\",\"minivmnotify\",\"minivmrecord\",\"mixmonitor\",\"monitor\",\"morsecode\",\n                  \"mp3player\",\"mset\",\"musiconhold\",\"nbscat\",\"nocdr\",\"noop\",\"odbc\",\"odbc\",\"odbcfinish\",\n                  \"originate\",\"ospauth\",\"ospfinish\",\"osplookup\",\"ospnext\",\"page\",\"park\",\"parkandannounce\",\n                  \"parkedcall\",\"pausemonitor\",\"pausequeuemember\",\"pickup\",\"pickupchan\",\"playback\",\"playtones\",\n                  \"privacymanager\",\"proceeding\",\"progress\",\"queue\",\"queuelog\",\"raiseexception\",\"read\",\"readexten\",\n                  \"readfile\",\"receivefax\",\"receivefax\",\"receivefax\",\"record\",\"removequeuemember\",\n                  \"resetcdr\",\"retrydial\",\"return\",\"ringing\",\"sayalpha\",\"saycountedadj\",\"saycountednoun\",\n                  \"saycountpl\",\"saydigits\",\"saynumber\",\"sayphonetic\",\"sayunixtime\",\"senddtmf\",\"sendfax\",\n                  \"sendfax\",\"sendfax\",\"sendimage\",\"sendtext\",\"sendurl\",\"set\",\"setamaflags\",\n                  \"setcallerpres\",\"setmusiconhold\",\"sipaddheader\",\"sipdtmfmode\",\"sipremoveheader\",\"skel\",\n                  \"slastation\",\"slatrunk\",\"sms\",\"softhangup\",\"speechactivategrammar\",\"speechbackground\",\n                  \"speechcreate\",\"speechdeactivategrammar\",\"speechdestroy\",\"speechloadgrammar\",\"speechprocessingsound\",\n                  \"speechstart\",\"speechunloadgrammar\",\"stackpop\",\"startmusiconhold\",\"stopmixmonitor\",\"stopmonitor\",\n                  \"stopmusiconhold\",\"stopplaytones\",\"system\",\"testclient\",\"testserver\",\"transfer\",\"tryexec\",\n                  \"trysystem\",\"unpausemonitor\",\"unpausequeuemember\",\"userevent\",\"verbose\",\"vmauthenticate\",\n                  \"vmsayname\",\"voicemail\",\"voicemailmain\",\"wait\",\"waitexten\",\"waitfornoise\",\"waitforring\",\n                  \"waitforsilence\",\"waitmusiconhold\",\"waituntil\",\"while\",\"zapateller\"\n                 ];\n\n  function basicToken(stream,state){\n    var cur = '';\n    var ch  = '';\n    ch = stream.next();\n    // comment\n    if(ch == \";\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // context\n    if(ch == '[') {\n      stream.skipTo(']');\n      stream.eat(']');\n      return \"header\";\n    }\n    // string\n    if(ch == '\"') {\n      stream.skipTo('\"');\n      return \"string\";\n    }\n    if(ch == \"'\") {\n      stream.skipTo(\"'\");\n      return \"string-2\";\n    }\n    // dialplan commands\n    if(ch == '#') {\n      stream.eatWhile(/\\w/);\n      cur = stream.current();\n      if(dpcmd.indexOf(cur) !== -1) {\n        stream.skipToEnd();\n        return \"strong\";\n      }\n    }\n    // application args\n    if(ch == '$'){\n      var ch1 = stream.peek();\n      if(ch1 == '{'){\n        stream.skipTo('}');\n        stream.eat('}');\n        return \"variable-3\";\n      }\n    }\n    // extension\n    stream.eatWhile(/\\w/);\n    cur = stream.current();\n    if(atoms.indexOf(cur) !== -1) {\n      state.extenStart = true;\n      switch(cur) {\n        case 'same': state.extenSame = true; break;\n        case 'include':\n        case 'switch':\n        case 'ignorepat':\n          state.extenInclude = true;break;\n        default:break;\n      }\n      return \"atom\";\n    }\n  }\n\n  return {\n    startState: function() {\n      return {\n        extenStart: false,\n        extenSame:  false,\n        extenInclude: false,\n        extenExten: false,\n        extenPriority: false,\n        extenApplication: false\n      };\n    },\n    token: function(stream, state) {\n\n      var cur = '';\n      var ch  = '';\n      if(stream.eatSpace()) return null;\n      // extension started\n      if(state.extenStart){\n        stream.eatWhile(/[^\\s]/);\n        cur = stream.current();\n        if(/^=>?$/.test(cur)){\n          state.extenExten = true;\n          state.extenStart = false;\n          return \"strong\";\n        } else {\n          state.extenStart = false;\n          stream.skipToEnd();\n          return \"error\";\n        }\n      } else if(state.extenExten) {\n        // set exten and priority\n        state.extenExten = false;\n        state.extenPriority = true;\n        stream.eatWhile(/[^,]/);\n        if(state.extenInclude) {\n          stream.skipToEnd();\n          state.extenPriority = false;\n          state.extenInclude = false;\n        }\n        if(state.extenSame) {\n          state.extenPriority = false;\n          state.extenSame = false;\n          state.extenApplication = true;\n        }\n        return \"tag\";\n      } else if(state.extenPriority) {\n        state.extenPriority = false;\n        state.extenApplication = true;\n        ch = stream.next(); // get comma\n        if(state.extenSame) return null;\n        stream.eatWhile(/[^,]/);\n        return \"number\";\n      } else if(state.extenApplication) {\n        stream.eatWhile(/,/);\n        cur = stream.current();\n        if(cur === ',') return null;\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        state.extenApplication = false;\n        if(apps.indexOf(cur) !== -1){\n          return \"def strong\";\n        }\n      } else{\n        return basicToken(stream,state);\n      }\n\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-asterisk\", \"asterisk\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/asterisk/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Asterisk dialplan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"asterisk.js\"></script>\n<style>\n      .CodeMirror {border: 1px solid #999;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Asterisk dialplan</a>\n  </ul>\n</div>\n\n<article>\n<h2>Asterisk dialplan mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; extensions.conf - the Asterisk dial plan\n;\n\n[general]\n;\n; If static is set to no, or omitted, then the pbx_config will rewrite\n; this file when extensions are modified.  Remember that all comments\n; made in the file will be lost when that happens.\nstatic=yes\n\n#include \"/etc/asterisk/additional_general.conf\n\n[iaxprovider]\nswitch => IAX2/user:[key]@myserver/mycontext\n\n[dynamic]\n#exec /usr/bin/dynamic-peers.pl\n\n[trunkint]\n;\n; International long distance through trunk\n;\nexten => _9011.,1,Macro(dundi-e164,${EXTEN:4})\nexten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})\n\n[local]\n;\n; Master context for local, toll-free, and iaxtel calls only\n;\nignorepat => 9\ninclude => default\n\n[demo]\ninclude => stdexten\n;\n; We start with what to do when a call first comes in.\n;\nexten => s,1,Wait(1)\t\t\t; Wait a second, just for fun\nsame  => n,Answer\t\t\t; Answer the line\nsame  => n,Set(TIMEOUT(digit)=5)\t; Set Digit Timeout to 5 seconds\nsame  => n,Set(TIMEOUT(response)=10)\t; Set Response Timeout to 10 seconds\nsame  => n(restart),BackGround(demo-congrats)\t; Play a congratulatory message\nsame  => n(instruct),BackGround(demo-instruct)\t; Play some instructions\nsame  => n,WaitExten\t\t\t; Wait for an extension to be dialed.\n\nexten => 2,1,BackGround(demo-moreinfo)\t; Give some more information.\nexten => 2,n,Goto(s,instruct)\n\nexten => 3,1,Set(LANGUAGE()=fr)\t\t; Set language to french\nexten => 3,n,Goto(s,restart)\t\t; Start with the congratulations\n\nexten => 1000,1,Goto(default,s,1)\n;\n; We also create an example user, 1234, who is on the console and has\n; voicemail, etc.\n;\nexten => 1234,1,Playback(transfer,skip)\t\t; \"Please hold while...\"\n\t\t\t\t\t; (but skip if channel is not up)\nexten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))\nexten => 1234,n,Goto(default,s,1)\t\t; exited Voicemail\n\nexten => 1235,1,Voicemail(1234,u)\t\t; Right to voicemail\n\nexten => 1236,1,Dial(Console/dsp)\t\t; Ring forever\nexten => 1236,n,Voicemail(1234,b)\t\t; Unless busy\n\n;\n; # for when they're done with the demo\n;\nexten => #,1,Playback(demo-thanks)\t; \"Thanks for trying the demo\"\nexten => #,n,Hangup\t\t\t; Hang them up.\n\n;\n; A timeout and \"invalid extension rule\"\n;\nexten => t,1,Goto(#,1)\t\t\t; If they take too long, give up\nexten => i,1,Playback(invalid)\t\t; \"That's not valid, try again\"\n\n;\n; Create an extension, 500, for dialing the\n; Asterisk demo.\n;\nexten => 500,1,Playback(demo-abouttotry); Let them know what's going on\nexten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default)\t; Call the Asterisk demo\nexten => 500,n,Playback(demo-nogo)\t; Couldn't connect to the demo site\nexten => 500,n,Goto(s,6)\t\t; Return to the start over message.\n\n;\n; Create an extension, 600, for evaluating echo latency.\n;\nexten => 600,1,Playback(demo-echotest)\t; Let them know what's going on\nexten => 600,n,Echo\t\t\t; Do the echo test\nexten => 600,n,Playback(demo-echodone)\t; Let them know it's over\nexten => 600,n,Goto(s,6)\t\t; Start over\n\n;\n;\tYou can use the Macro Page to intercom a individual user\nexten => 76245,1,Macro(page,SIP/Grandstream1)\n; or if your peernames are the same as extensions\nexten => _7XXX,1,Macro(page,SIP/${EXTEN})\n;\n;\n; System Wide Page at extension 7999\n;\nexten => 7999,1,Set(TIMEOUT(absolute)=60)\nexten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)\n\n; Give voicemail at extension 8500\n;\nexten => 8500,1,VoicemailMain\nexten => 8500,n,Goto(s,6)\n\n    </textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-asterisk\",\n        matchBrackets: true,\n        lineNumber: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-asterisk</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/clike/clike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"clike\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings,\n      indentStatements = parserConfig.indentStatements !== false;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (indentStatements &&\n               (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') ||\n                (ctx.type == \"statement\" && curPunc == \"newstatement\")))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align && (!dontAlignCalls || ctx.type != \")\")) return ctx.column + (closing ? 0 : 1);\n      else if (ctx.type == \")\" && !closing) return ctx.indented + statementIndentUnit;\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var cKeywords = \"auto if break int case long char register continue return default short do sizeof \" +\n    \"double static else struct entry switch extern typedef float union for unsigned \" +\n    \"goto while enum void const signed volatile\";\n\n  function cppHook(stream, state) {\n    if (!state.startOfLine) return false;\n    for (;;) {\n      if (stream.skipTo(\"\\\\\")) {\n        stream.next();\n        if (stream.eol()) {\n          state.tokenize = cppHook;\n          break;\n        }\n      } else {\n        stream.skipToEnd();\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"meta\";\n  }\n\n  function cpp11StringHook(stream, state) {\n    stream.backUp(1);\n    // Raw strings.\n    if (stream.match(/(R|u8R|uR|UR|LR)/)) {\n      var match = stream.match(/\"([^\\s\\\\()]{0,16})\\(/);\n      if (!match) {\n        return false;\n      }\n      state.cpp11RawStringDelim = match[1];\n      state.tokenize = tokenRawString;\n      return tokenRawString(stream, state);\n    }\n    // Unicode strings/chars.\n    if (stream.match(/(u8|u|U|L)/)) {\n      if (stream.match(/[\"']/, /* eat */ false)) {\n        return \"string\";\n      }\n      return false;\n    }\n    // Ignore this hook.\n    stream.next();\n    return false;\n  }\n\n  // C#-style strings where \"\" escapes a quote.\n  function tokenAtString(stream, state) {\n    var next;\n    while ((next = stream.next()) != null) {\n      if (next == '\"' && !stream.eat('\"')) {\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"string\";\n  }\n\n  // C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n  // <delim> can be a string up to 16 characters long.\n  function tokenRawString(stream, state) {\n    // Escape characters that have special regex meanings.\n    var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n    var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n    if (match)\n      state.tokenize = null;\n    else\n      stream.skipToEnd();\n    return \"string\";\n  }\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\") mimes = [mimes];\n    var words = [];\n    function add(obj) {\n      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n        words.push(prop);\n    }\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.atoms);\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i = 0; i < mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-csrc\", \"text/x-c\", \"text/x-chdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords),\n    blockKeywords: words(\"case do else for if switch while struct\"),\n    atoms: words(\"null\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def([\"text/x-c++src\", \"text/x-c++hdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords + \" asm dynamic_cast namespace reinterpret_cast try bool explicit new \" +\n                    \"static_cast typeid catch operator template typename class friend private \" +\n                    \"this using const_cast inline public throw virtual delete mutable protected \" +\n                    \"wchar_t alignas alignof constexpr decltype nullptr noexcept thread_local final \" +\n                    \"static_assert override\"),\n    blockKeywords: words(\"catch class do else finally for if struct switch try while\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"#\": cppHook,\n      \"u\": cpp11StringHook,\n      \"U\": cpp11StringHook,\n      \"L\": cpp11StringHook,\n      \"R\": cpp11StringHook\n    },\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-java\", {\n    name: \"clike\",\n    keywords: words(\"abstract assert boolean break byte case catch char class const continue default \" +\n                    \"do double else enum extends final finally float for goto if implements import \" +\n                    \"instanceof int interface long native new package private protected public \" +\n                    \"return short static strictfp super switch synchronized this throw throws transient \" +\n                    \"try void volatile while\"),\n    blockKeywords: words(\"catch class do else finally for if switch try while\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    },\n    modeProps: {fold: [\"brace\", \"import\"]}\n  });\n\n  def(\"text/x-csharp\", {\n    name: \"clike\",\n    keywords: words(\"abstract as base break case catch checked class const continue\" +\n                    \" default delegate do else enum event explicit extern finally fixed for\" +\n                    \" foreach goto if implicit in interface internal is lock namespace new\" +\n                    \" operator out override params private protected public readonly ref return sealed\" +\n                    \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n                    \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n                    \" global group into join let orderby partial remove select set value var yield\"),\n    blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n    builtin: words(\"Boolean Byte Char DateTime DateTimeOffset Decimal Double\" +\n                    \" Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32\" +\n                    \" UInt64 bool byte char decimal double short int long object\"  +\n                    \" sbyte float string ushort uint ulong\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"@\": function(stream, state) {\n        if (stream.eat('\"')) {\n          state.tokenize = tokenAtString;\n          return tokenAtString(stream, state);\n        }\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n  function tokenTripleString(stream, state) {\n    var escaped = false;\n    while (!stream.eol()) {\n      if (!escaped && stream.match('\"\"\"')) {\n        state.tokenize = null;\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  def(\"text/x-scala\", {\n    name: \"clike\",\n    keywords: words(\n\n      /* scala */\n      \"abstract case catch class def do else extends false final finally for forSome if \" +\n      \"implicit import lazy match new null object override package private protected return \" +\n      \"sealed super this throw trait try trye type val var while with yield _ : = => <- <: \" +\n      \"<% >: # @ \" +\n\n      /* package scala */\n      \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n      \"readChar readInt readLong readFloat readDouble \" +\n\n      \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n      \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable \" +\n      \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n      \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n      \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: \" +\n\n      /* package java.lang */\n      \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n      \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n      \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n      \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n    ),\n    multiLineStrings: true,\n    blockKeywords: words(\"catch class do else finally for forSome if match switch try while\"),\n    atoms: words(\"true false null\"),\n    indentStatements: false,\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      },\n      '\"': function(stream, state) {\n        if (!stream.match('\"\"')) return false;\n        state.tokenize = tokenTripleString;\n        return state.tokenize(stream, state);\n      },\n      \"'\": function(stream) {\n        stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n        return \"atom\";\n      }\n    }\n  });\n\n  def([\"x-shader/x-vertex\", \"x-shader/x-fragment\"], {\n    name: \"clike\",\n    keywords: words(\"float int bool void \" +\n                    \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n                    \"mat2 mat3 mat4 \" +\n                    \"sampler1D sampler2D sampler3D samplerCube \" +\n                    \"sampler1DShadow sampler2DShadow \" +\n                    \"const attribute uniform varying \" +\n                    \"break continue discard return \" +\n                    \"for while do if else struct \" +\n                    \"in out inout\"),\n    blockKeywords: words(\"for while do if else struct\"),\n    builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n                    \"pow exp log exp2 sqrt inversesqrt \" +\n                    \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n                    \"length distance dot cross normalize ftransform faceforward \" +\n                    \"reflect refract matrixCompMult \" +\n                    \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n                    \"equal notEqual any all not \" +\n                    \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n                    \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n                    \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n                    \"textureCube textureCubeLod \" +\n                    \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n                    \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n                    \"dFdx dFdy fwidth \" +\n                    \"noise1 noise2 noise3 noise4\"),\n    atoms: words(\"true false \" +\n                \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n                \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n                \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n                \"gl_FogCoord gl_PointCoord \" +\n                \"gl_Position gl_PointSize gl_ClipVertex \" +\n                \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n                \"gl_TexCoord gl_FogFragCoord \" +\n                \"gl_FragCoord gl_FrontFacing \" +\n                \"gl_FragData gl_FragDepth \" +\n                \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n                \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n                \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n                \"gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n                \"gl_ProjectionMatrixInverseTranspose \" +\n                \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n                \"gl_TextureMatrixInverseTranspose \" +\n                \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n                \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n                \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n                \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n                \"gl_FogParameters \" +\n                \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n                \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n                \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n                \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n                \"gl_MaxDrawBuffers\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-nesc\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \"as atomic async call command component components configuration event generic \" +\n                    \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n                    \"signal task uses abstract extends\"),\n    blockKeywords: words(\"case do else for if switch while struct\"),\n    atoms: words(\"null\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-objectivec\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in \" +\n                    \"inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly\"),\n    atoms: words(\"YES NO NULL NILL ON OFF\"),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$]/);\n        return \"keyword\";\n      },\n      \"#\": cppHook\n    },\n    modeProps: {fold: \"brace\"}\n  });\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/clike/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: C-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"clike.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">C-like</a>\n  </ul>\n</div>\n\n<article>\n<h2>C-like mode</h2>\n\n<div><textarea id=\"c-code\">\n/* C demo code */\n\n#include <zmq.h>\n#include <pthread.h>\n#include <semaphore.h>\n#include <time.h>\n#include <stdio.h>\n#include <fcntl.h>\n#include <malloc.h>\n\ntypedef struct {\n  void* arg_socket;\n  zmq_msg_t* arg_msg;\n  char* arg_string;\n  unsigned long arg_len;\n  int arg_int, arg_command;\n\n  int signal_fd;\n  int pad;\n  void* context;\n  sem_t sem;\n} acl_zmq_context;\n\n#define p(X) (context->arg_##X)\n\nvoid* zmq_thread(void* context_pointer) {\n  acl_zmq_context* context = (acl_zmq_context*)context_pointer;\n  char ok = 'K', err = 'X';\n  int res;\n\n  while (1) {\n    while ((res = sem_wait(&amp;context->sem)) == EINTR);\n    if (res) {write(context->signal_fd, &amp;err, 1); goto cleanup;}\n    switch(p(command)) {\n    case 0: goto cleanup;\n    case 1: p(socket) = zmq_socket(context->context, p(int)); break;\n    case 2: p(int) = zmq_close(p(socket)); break;\n    case 3: p(int) = zmq_bind(p(socket), p(string)); break;\n    case 4: p(int) = zmq_connect(p(socket), p(string)); break;\n    case 5: p(int) = zmq_getsockopt(p(socket), p(int), (void*)p(string), &amp;p(len)); break;\n    case 6: p(int) = zmq_setsockopt(p(socket), p(int), (void*)p(string), p(len)); break;\n    case 7: p(int) = zmq_send(p(socket), p(msg), p(int)); break;\n    case 8: p(int) = zmq_recv(p(socket), p(msg), p(int)); break;\n    case 9: p(int) = zmq_poll(p(socket), p(int), p(len)); break;\n    }\n    p(command) = errno;\n    write(context->signal_fd, &amp;ok, 1);\n  }\n cleanup:\n  close(context->signal_fd);\n  free(context_pointer);\n  return 0;\n}\n\nvoid* zmq_thread_init(void* zmq_context, int signal_fd) {\n  acl_zmq_context* context = malloc(sizeof(acl_zmq_context));\n  pthread_t thread;\n\n  context->context = zmq_context;\n  context->signal_fd = signal_fd;\n  sem_init(&amp;context->sem, 1, 0);\n  pthread_create(&amp;thread, 0, &amp;zmq_thread, context);\n  pthread_detach(thread);\n  return context;\n}\n</textarea></div>\n\n<h2>C++ example</h2>\n\n<div><textarea id=\"cpp-code\">\n#include <iostream>\n#include \"mystuff/util.h\"\n\nnamespace {\nenum Enum {\n  VAL1, VAL2, VAL3\n};\n\nchar32_t unicode_string = U\"\\U0010FFFF\";\nstring raw_string = R\"delim(anything\nyou\nwant)delim\";\n\nint Helper(const MyType& param) {\n  return 0;\n}\n} // namespace\n\nclass ForwardDec;\n\ntemplate <class T, class V>\nclass Class : public BaseClass {\n  const MyType<T, V> member_;\n\n public:\n  const MyType<T, V>& Method() const {\n    return member_;\n  }\n\n  void Method2(MyType<T, V>* value);\n}\n\ntemplate <class T, class V>\nvoid Class::Method2(MyType<T, V>* value) {\n  std::out << 1 >> method();\n  value->Method3(member_);\n  member_ = value;\n}\n</textarea></div>\n\n<h2>Objective-C example</h2>\n\n<div><textarea id=\"objectivec-code\">\n/*\nThis is a longer comment\nThat spans two lines\n*/\n\n#import <Test/Test.h>\n@implementation YourAppDelegate\n\n// This is a one-line comment\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{\n  char myString[] = \"This is a C character array\";\n  int test = 5;\n  return YES;\n}\n</textarea></div>\n\n<h2>Java example</h2>\n\n<div><textarea id=\"java-code\">\nimport com.demo.util.MyType;\nimport com.demo.util.MyInterface;\n\npublic enum Enum {\n  VAL1, VAL2, VAL3\n}\n\npublic class Class<T, V> implements MyInterface {\n  public static final MyType<T, V> member;\n  \n  private class InnerClass {\n    public int zero() {\n      return 0;\n    }\n  }\n\n  @Override\n  public MyType method() {\n    return member;\n  }\n\n  public void method2(MyType<T, V> value) {\n    method();\n    value.method3();\n    member = value;\n  }\n}\n</textarea></div>\n\n<h2>Scala example</h2>\n\n<div><textarea id=\"scala-code\">\nobject FilterTest extends App {\n  def filter(xs: List[Int], threshold: Int) = {\n    def process(ys: List[Int]): List[Int] =\n      if (ys.isEmpty) ys\n      else if (ys.head < threshold) ys.head :: process(ys.tail)\n      else process(ys.tail)\n    process(xs)\n  }\n  println(filter(List(1, 9, 2, 8, 3, 7, 4), 5))\n}\n</textarea></div>\n\n    <script>\n      var cEditor = CodeMirror.fromTextArea(document.getElementById(\"c-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-csrc\"\n      });\n      var cppEditor = CodeMirror.fromTextArea(document.getElementById(\"cpp-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-c++src\"\n      });\n      var javaEditor = CodeMirror.fromTextArea(document.getElementById(\"java-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-java\"\n      });\n      var objectivecEditor = CodeMirror.fromTextArea(document.getElementById(\"objectivec-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-objectivec\"\n      });\n      var scalaEditor = CodeMirror.fromTextArea(document.getElementById(\"scala-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-scala\"\n      });\n      var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;\n      CodeMirror.keyMap.default[(mac ? \"Cmd\" : \"Ctrl\") + \"-Space\"] = \"autocomplete\";\n    </script>\n\n    <p>Simple mode that tries to handle C-like languages as well as it\n    can. Takes two configuration parameters: <code>keywords</code>, an\n    object whose property names are the keywords in the language,\n    and <code>useCPP</code>, which determines whether C preprocessor\n    directives are recognized.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-csrc</code>\n    (C), <code>text/x-c++src</code> (C++), <code>text/x-java</code>\n    (Java), <code>text/x-csharp</code> (C#),\n    <code>text/x-objectivec</code> (Objective-C),\n    <code>text/x-scala</code> (Scala), <code>text/x-vertex</code>\n    and <code>x-shader/x-fragment</code> (shader programs).</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/clike/scala.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Scala mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"clike.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Scala</a>\n  </ul>\n</div>\n\n<article>\n<h2>Scala mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\n\n  /*                     __                                               *\\\n  **     ________ ___   / /  ___     Scala API                            **\n  **    / __/ __// _ | / /  / _ |    (c) 2003-2011, LAMP/EPFL             **\n  **  __\\ \\/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **\n  ** /____/\\___/_/ |_/____/_/ | |                                         **\n  **                          |/                                          **\n  \\*                                                                      */\n\n  package scala.collection\n\n  import generic._\n  import mutable.{ Builder, ListBuffer }\n  import annotation.{tailrec, migration, bridge}\n  import annotation.unchecked.{ uncheckedVariance => uV }\n  import parallel.ParIterable\n\n  /** A template trait for traversable collections of type `Traversable[A]`.\n   *  \n   *  $traversableInfo\n   *  @define mutability\n   *  @define traversableInfo\n   *  This is a base trait of all kinds of $mutability Scala collections. It\n   *  implements the behavior common to all collections, in terms of a method\n   *  `foreach` with signature:\n   * {{{\n   *     def foreach[U](f: Elem => U): Unit\n   * }}}\n   *  Collection classes mixing in this trait provide a concrete \n   *  `foreach` method which traverses all the\n   *  elements contained in the collection, applying a given function to each.\n   *  They also need to provide a method `newBuilder`\n   *  which creates a builder for collections of the same kind.\n   *  \n   *  A traversable class might or might not have two properties: strictness\n   *  and orderedness. Neither is represented as a type.\n   *  \n   *  The instances of a strict collection class have all their elements\n   *  computed before they can be used as values. By contrast, instances of\n   *  a non-strict collection class may defer computation of some of their\n   *  elements until after the instance is available as a value.\n   *  A typical example of a non-strict collection class is a\n   *  <a href=\"../immutable/Stream.html\" target=\"ContentFrame\">\n   *  `scala.collection.immutable.Stream`</a>.\n   *  A more general class of examples are `TraversableViews`.\n   *  \n   *  If a collection is an instance of an ordered collection class, traversing\n   *  its elements with `foreach` will always visit elements in the\n   *  same order, even for different runs of the program. If the class is not\n   *  ordered, `foreach` can visit elements in different orders for\n   *  different runs (but it will keep the same order in the same run).'\n   * \n   *  A typical example of a collection class which is not ordered is a\n   *  `HashMap` of objects. The traversal order for hash maps will\n   *  depend on the hash codes of its elements, and these hash codes might\n   *  differ from one run to the next. By contrast, a `LinkedHashMap`\n   *  is ordered because it's `foreach` method visits elements in the\n   *  order they were inserted into the `HashMap`.\n   *\n   *  @author Martin Odersky\n   *  @version 2.8\n   *  @since   2.8\n   *  @tparam A    the element type of the collection\n   *  @tparam Repr the type of the actual collection containing the elements.\n   *\n   *  @define Coll Traversable\n   *  @define coll traversable collection\n   */\n  trait TraversableLike[+A, +Repr] extends HasNewBuilder[A, Repr] \n                                      with FilterMonadic[A, Repr]\n                                      with TraversableOnce[A]\n                                      with GenTraversableLike[A, Repr]\n                                      with Parallelizable[A, ParIterable[A]]\n  {\n    self =>\n\n    import Traversable.breaks._\n\n    /** The type implementing this traversable */\n    protected type Self = Repr\n\n    /** The collection of type $coll underlying this `TraversableLike` object.\n     *  By default this is implemented as the `TraversableLike` object itself,\n     *  but this can be overridden.\n     */\n    def repr: Repr = this.asInstanceOf[Repr]\n\n    /** The underlying collection seen as an instance of `$Coll`.\n     *  By default this is implemented as the current collection object itself,\n     *  but this can be overridden.\n     */\n    protected[this] def thisCollection: Traversable[A] = this.asInstanceOf[Traversable[A]]\n\n    /** A conversion from collections of type `Repr` to `$Coll` objects.\n     *  By default this is implemented as just a cast, but this can be overridden.\n     */\n    protected[this] def toCollection(repr: Repr): Traversable[A] = repr.asInstanceOf[Traversable[A]]\n\n    /** Creates a new builder for this collection type.\n     */\n    protected[this] def newBuilder: Builder[A, Repr]\n\n    protected[this] def parCombiner = ParIterable.newCombiner[A]\n\n    /** Applies a function `f` to all elements of this $coll.\n     *  \n     *    Note: this method underlies the implementation of most other bulk operations.\n     *    It's important to implement this method in an efficient way.\n     *  \n     *\n     *  @param  f   the function that is applied for its side-effect to every element.\n     *              The result of function `f` is discarded.\n     *              \n     *  @tparam  U  the type parameter describing the result of function `f`. \n     *              This result will always be ignored. Typically `U` is `Unit`,\n     *              but this is not necessary.\n     *\n     *  @usecase def foreach(f: A => Unit): Unit\n     */\n    def foreach[U](f: A => U): Unit\n\n    /** Tests whether this $coll is empty.\n     *\n     *  @return    `true` if the $coll contain no elements, `false` otherwise.\n     */\n    def isEmpty: Boolean = {\n      var result = true\n      breakable {\n        for (x <- this) {\n          result = false\n          break\n        }\n      }\n      result\n    }\n\n    /** Tests whether this $coll is known to have a finite size.\n     *  All strict collections are known to have finite size. For a non-strict collection\n     *  such as `Stream`, the predicate returns `true` if all elements have been computed.\n     *  It returns `false` if the stream is not yet evaluated to the end.\n     *\n     *  Note: many collection methods will not work on collections of infinite sizes. \n     *\n     *  @return  `true` if this collection is known to have finite size, `false` otherwise.\n     */\n    def hasDefiniteSize = true\n\n    def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.seq.size)\n      b ++= thisCollection\n      b ++= that.seq\n      b.result\n    }\n\n    @bridge\n    def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =\n      ++(that: GenTraversableOnce[B])(bf)\n\n    /** Concatenates this $coll with the elements of a traversable collection.\n     *  It differs from ++ in that the right operand determines the type of the\n     *  resulting collection rather than the left one.\n     * \n     *  @param that   the traversable to append.\n     *  @tparam B     the element type of the returned collection. \n     *  @tparam That  $thatinfo\n     *  @param bf     $bfinfo\n     *  @return       a new collection of type `That` which contains all elements\n     *                of this $coll followed by all elements of `that`.\n     * \n     *  @usecase def ++:[B](that: TraversableOnce[B]): $Coll[B]\n     *  \n     *  @return       a new $coll which contains all elements of this $coll\n     *                followed by all elements of `that`.\n     */\n    def ++:[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.size)\n      b ++= that\n      b ++= thisCollection\n      b.result\n    }\n\n    /** This overload exists because: for the implementation of ++: we should reuse\n     *  that of ++ because many collections override it with more efficient versions.\n     *  Since TraversableOnce has no '++' method, we have to implement that directly,\n     *  but Traversable and down can use the overload.\n     */\n    def ++:[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =\n      (that ++ seq)(breakOut)\n\n    def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      b.sizeHint(this) \n      for (x <- this) b += f(x)\n      b.result\n    }\n\n    def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) b ++= f(x).seq\n      b.result\n    }\n\n    /** Selects all elements of this $coll which satisfy a predicate.\n     *\n     *  @param p     the predicate used to test elements.\n     *  @return      a new $coll consisting of all elements of this $coll that satisfy the given\n     *               predicate `p`. The order of the elements is preserved.\n     */\n    def filter(p: A => Boolean): Repr = {\n      val b = newBuilder\n      for (x <- this) \n        if (p(x)) b += x\n      b.result\n    }\n\n    /** Selects all elements of this $coll which do not satisfy a predicate.\n     *\n     *  @param p     the predicate used to test elements.\n     *  @return      a new $coll consisting of all elements of this $coll that do not satisfy the given\n     *               predicate `p`. The order of the elements is preserved.\n     */\n    def filterNot(p: A => Boolean): Repr = filter(!p(_))\n\n    def collect[B, That](pf: PartialFunction[A, B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) if (pf.isDefinedAt(x)) b += pf(x)\n      b.result\n    }\n\n    /** Builds a new collection by applying an option-valued function to all\n     *  elements of this $coll on which the function is defined.\n     *\n     *  @param f      the option-valued function which filters and maps the $coll.\n     *  @tparam B     the element type of the returned collection.\n     *  @tparam That  $thatinfo\n     *  @param bf     $bfinfo\n     *  @return       a new collection of type `That` resulting from applying the option-valued function\n     *                `f` to each element and collecting all defined results.\n     *                The order of the elements is preserved.\n     *\n     *  @usecase def filterMap[B](f: A => Option[B]): $Coll[B]\n     *  \n     *  @param pf     the partial function which filters and maps the $coll.\n     *  @return       a new $coll resulting from applying the given option-valued function\n     *                `f` to each element and collecting all defined results.\n     *                The order of the elements is preserved.\n    def filterMap[B, That](f: A => Option[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) \n        f(x) match {\n          case Some(y) => b += y\n          case _ =>\n        }\n      b.result\n    }\n     */\n\n    /** Partitions this $coll in two ${coll}s according to a predicate.\n     *\n     *  @param p the predicate on which to partition.\n     *  @return  a pair of ${coll}s: the first $coll consists of all elements that \n     *           satisfy the predicate `p` and the second $coll consists of all elements\n     *           that don't. The relative order of the elements in the resulting ${coll}s\n     *           is the same as in the original $coll.\n     */\n    def partition(p: A => Boolean): (Repr, Repr) = {\n      val l, r = newBuilder\n      for (x <- this) (if (p(x)) l else r) += x\n      (l.result, r.result)\n    }\n\n    def groupBy[K](f: A => K): immutable.Map[K, Repr] = {\n      val m = mutable.Map.empty[K, Builder[A, Repr]]\n      for (elem <- this) {\n        val key = f(elem)\n        val bldr = m.getOrElseUpdate(key, newBuilder)\n        bldr += elem\n      }\n      val b = immutable.Map.newBuilder[K, Repr]\n      for ((k, v) <- m)\n        b += ((k, v.result))\n\n      b.result\n    }\n\n    /** Tests whether a predicate holds for all elements of this $coll.\n     *\n     *  $mayNotTerminateInf\n     *\n     *  @param   p     the predicate used to test elements.\n     *  @return        `true` if the given predicate `p` holds for all elements\n     *                 of this $coll, otherwise `false`.\n     */\n    def forall(p: A => Boolean): Boolean = {\n      var result = true\n      breakable {\n        for (x <- this)\n          if (!p(x)) { result = false; break }\n      }\n      result\n    }\n\n    /** Tests whether a predicate holds for some of the elements of this $coll.\n     *\n     *  $mayNotTerminateInf\n     *\n     *  @param   p     the predicate used to test elements.\n     *  @return        `true` if the given predicate `p` holds for some of the\n     *                 elements of this $coll, otherwise `false`.\n     */\n    def exists(p: A => Boolean): Boolean = {\n      var result = false\n      breakable {\n        for (x <- this)\n          if (p(x)) { result = true; break }\n      }\n      result\n    }\n\n    /** Finds the first element of the $coll satisfying a predicate, if any.\n     * \n     *  $mayNotTerminateInf\n     *  $orderDependent\n     *\n     *  @param p    the predicate used to test elements.\n     *  @return     an option value containing the first element in the $coll\n     *              that satisfies `p`, or `None` if none exists.\n     */\n    def find(p: A => Boolean): Option[A] = {\n      var result: Option[A] = None\n      breakable {\n        for (x <- this)\n          if (p(x)) { result = Some(x); break }\n      }\n      result\n    }\n\n    def scan[B >: A, That](z: B)(op: (B, B) => B)(implicit cbf: CanBuildFrom[Repr, B, That]): That = scanLeft(z)(op)\n\n    def scanLeft[B, That](z: B)(op: (B, A) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      b.sizeHint(this, 1)\n      var acc = z\n      b += acc\n      for (x <- this) { acc = op(acc, x); b += acc }\n      b.result\n    }\n\n    @migration(2, 9,\n      \"This scanRight definition has changed in 2.9.\\n\" +\n      \"The previous behavior can be reproduced with scanRight.reverse.\"\n    )\n    def scanRight[B, That](z: B)(op: (A, B) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      var scanned = List(z)\n      var acc = z\n      for (x <- reversed) {\n        acc = op(x, acc)\n        scanned ::= acc\n      }\n      val b = bf(repr)\n      for (elem <- scanned) b += elem\n      b.result\n    }\n\n    /** Selects the first element of this $coll.\n     *  $orderDependent\n     *  @return  the first element of this $coll.\n     *  @throws `NoSuchElementException` if the $coll is empty.\n     */\n    def head: A = {\n      var result: () => A = () => throw new NoSuchElementException\n      breakable {\n        for (x <- this) {\n          result = () => x\n          break\n        }\n      }\n      result()\n    }\n\n    /** Optionally selects the first element.\n     *  $orderDependent\n     *  @return  the first element of this $coll if it is nonempty, `None` if it is empty.\n     */\n    def headOption: Option[A] = if (isEmpty) None else Some(head)\n\n    /** Selects all elements except the first.\n     *  $orderDependent\n     *  @return  a $coll consisting of all elements of this $coll\n     *           except the first one.\n     *  @throws `UnsupportedOperationException` if the $coll is empty.\n     */ \n    override def tail: Repr = {\n      if (isEmpty) throw new UnsupportedOperationException(\"empty.tail\")\n      drop(1)\n    }\n\n    /** Selects the last element.\n      * $orderDependent\n      * @return The last element of this $coll.\n      * @throws NoSuchElementException If the $coll is empty.\n      */\n    def last: A = {\n      var lst = head\n      for (x <- this)\n        lst = x\n      lst\n    }\n\n    /** Optionally selects the last element.\n     *  $orderDependent\n     *  @return  the last element of this $coll$ if it is nonempty, `None` if it is empty.\n     */\n    def lastOption: Option[A] = if (isEmpty) None else Some(last)\n\n    /** Selects all elements except the last.\n     *  $orderDependent\n     *  @return  a $coll consisting of all elements of this $coll\n     *           except the last one.\n     *  @throws `UnsupportedOperationException` if the $coll is empty.\n     */\n    def init: Repr = {\n      if (isEmpty) throw new UnsupportedOperationException(\"empty.init\")\n      var lst = head\n      var follow = false\n      val b = newBuilder\n      b.sizeHint(this, -1)\n      for (x <- this.seq) {\n        if (follow) b += lst\n        else follow = true\n        lst = x\n      }\n      b.result\n    }\n\n    def take(n: Int): Repr = slice(0, n)\n\n    def drop(n: Int): Repr = \n      if (n <= 0) {\n        val b = newBuilder\n        b.sizeHint(this)\n        b ++= thisCollection result\n      }\n      else sliceWithKnownDelta(n, Int.MaxValue, -n)\n\n    def slice(from: Int, until: Int): Repr = sliceWithKnownBound(math.max(from, 0), until)\n\n    // Precondition: from >= 0, until > 0, builder already configured for building.\n    private[this] def sliceInternal(from: Int, until: Int, b: Builder[A, Repr]): Repr = {\n      var i = 0\n      breakable {\n        for (x <- this.seq) {\n          if (i >= from) b += x\n          i += 1\n          if (i >= until) break\n        }\n      }\n      b.result\n    }\n    // Precondition: from >= 0\n    private[scala] def sliceWithKnownDelta(from: Int, until: Int, delta: Int): Repr = {\n      val b = newBuilder\n      if (until <= from) b.result\n      else {\n        b.sizeHint(this, delta)\n        sliceInternal(from, until, b)\n      }\n    }\n    // Precondition: from >= 0\n    private[scala] def sliceWithKnownBound(from: Int, until: Int): Repr = {\n      val b = newBuilder\n      if (until <= from) b.result\n      else {\n        b.sizeHintBounded(until - from, this)      \n        sliceInternal(from, until, b)\n      }\n    }\n\n    def takeWhile(p: A => Boolean): Repr = {\n      val b = newBuilder\n      breakable {\n        for (x <- this) {\n          if (!p(x)) break\n          b += x\n        }\n      }\n      b.result\n    }\n\n    def dropWhile(p: A => Boolean): Repr = {\n      val b = newBuilder\n      var go = false\n      for (x <- this) {\n        if (!p(x)) go = true\n        if (go) b += x\n      }\n      b.result\n    }\n\n    def span(p: A => Boolean): (Repr, Repr) = {\n      val l, r = newBuilder\n      var toLeft = true\n      for (x <- this) {\n        toLeft = toLeft && p(x)\n        (if (toLeft) l else r) += x\n      }\n      (l.result, r.result)\n    }\n\n    def splitAt(n: Int): (Repr, Repr) = {\n      val l, r = newBuilder\n      l.sizeHintBounded(n, this)\n      if (n >= 0) r.sizeHint(this, -n)\n      var i = 0\n      for (x <- this) {\n        (if (i < n) l else r) += x\n        i += 1\n      }\n      (l.result, r.result)\n    }\n\n    /** Iterates over the tails of this $coll. The first value will be this\n     *  $coll and the final one will be an empty $coll, with the intervening\n     *  values the results of successive applications of `tail`.\n     *\n     *  @return   an iterator over all the tails of this $coll\n     *  @example  `List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)`\n     */  \n    def tails: Iterator[Repr] = iterateUntilEmpty(_.tail)\n\n    /** Iterates over the inits of this $coll. The first value will be this\n     *  $coll and the final one will be an empty $coll, with the intervening\n     *  values the results of successive applications of `init`.\n     *\n     *  @return  an iterator over all the inits of this $coll\n     *  @example  `List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)`\n     */\n    def inits: Iterator[Repr] = iterateUntilEmpty(_.init)\n\n    /** Copies elements of this $coll to an array.\n     *  Fills the given array `xs` with at most `len` elements of\n     *  this $coll, starting at position `start`.\n     *  Copying will stop once either the end of the current $coll is reached,\n     *  or the end of the array is reached, or `len` elements have been copied.\n     *\n     *  $willNotTerminateInf\n     * \n     *  @param  xs     the array to fill.\n     *  @param  start  the starting index.\n     *  @param  len    the maximal number of elements to copy.\n     *  @tparam B      the type of the elements of the array. \n     * \n     *\n     *  @usecase def copyToArray(xs: Array[A], start: Int, len: Int): Unit\n     */\n    def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) {\n      var i = start\n      val end = (start + len) min xs.length\n      breakable {\n        for (x <- this) {\n          if (i >= end) break\n          xs(i) = x\n          i += 1\n        }\n      }\n    }\n\n    def toTraversable: Traversable[A] = thisCollection\n    def toIterator: Iterator[A] = toStream.iterator\n    def toStream: Stream[A] = toBuffer.toStream\n\n    /** Converts this $coll to a string.\n     *\n     *  @return   a string representation of this collection. By default this\n     *            string consists of the `stringPrefix` of this $coll,\n     *            followed by all elements separated by commas and enclosed in parentheses.\n     */\n    override def toString = mkString(stringPrefix + \"(\", \", \", \")\")\n\n    /** Defines the prefix of this object's `toString` representation.\n     *\n     *  @return  a string representation which starts the result of `toString`\n     *           applied to this $coll. By default the string prefix is the\n     *           simple name of the collection class $coll.\n     */\n    def stringPrefix : String = {\n      var string = repr.asInstanceOf[AnyRef].getClass.getName\n      val idx1 = string.lastIndexOf('.' : Int)\n      if (idx1 != -1) string = string.substring(idx1 + 1)\n      val idx2 = string.indexOf('$')\n      if (idx2 != -1) string = string.substring(0, idx2)\n      string\n    }\n\n    /** Creates a non-strict view of this $coll.\n     * \n     *  @return a non-strict view of this $coll.\n     */\n    def view = new TraversableView[A, Repr] {\n      protected lazy val underlying = self.repr\n      override def foreach[U](f: A => U) = self foreach f\n    }\n\n    /** Creates a non-strict view of a slice of this $coll.\n     *\n     *  Note: the difference between `view` and `slice` is that `view` produces\n     *        a view of the current $coll, whereas `slice` produces a new $coll.\n     * \n     *  Note: `view(from, to)` is equivalent to `view.slice(from, to)`\n     *  $orderDependent\n     * \n     *  @param from   the index of the first element of the view\n     *  @param until  the index of the element following the view\n     *  @return a non-strict view of a slice of this $coll, starting at index `from`\n     *  and extending up to (but not including) index `until`.\n     */\n    def view(from: Int, until: Int): TraversableView[A, Repr] = view.slice(from, until)\n\n    /** Creates a non-strict filter of this $coll.\n     *\n     *  Note: the difference between `c filter p` and `c withFilter p` is that\n     *        the former creates a new collection, whereas the latter only\n     *        restricts the domain of subsequent `map`, `flatMap`, `foreach`,\n     *        and `withFilter` operations.\n     *  $orderDependent\n     * \n     *  @param p   the predicate used to test elements.\n     *  @return    an object of class `WithFilter`, which supports\n     *             `map`, `flatMap`, `foreach`, and `withFilter` operations.\n     *             All these operations apply to those elements of this $coll which\n     *             satisfy the predicate `p`.\n     */\n    def withFilter(p: A => Boolean): FilterMonadic[A, Repr] = new WithFilter(p)\n\n    /** A class supporting filtered operations. Instances of this class are\n     *  returned by method `withFilter`.\n     */\n    class WithFilter(p: A => Boolean) extends FilterMonadic[A, Repr] {\n\n      /** Builds a new collection by applying a function to all elements of the\n       *  outer $coll containing this `WithFilter` instance that satisfy predicate `p`.\n       *\n       *  @param f      the function to apply to each element.\n       *  @tparam B     the element type of the returned collection.\n       *  @tparam That  $thatinfo\n       *  @param bf     $bfinfo\n       *  @return       a new collection of type `That` resulting from applying\n       *                the given function `f` to each element of the outer $coll\n       *                that satisfies predicate `p` and collecting the results.\n       *\n       *  @usecase def map[B](f: A => B): $Coll[B] \n       *  \n       *  @return       a new $coll resulting from applying the given function\n       *                `f` to each element of the outer $coll that satisfies\n       *                predicate `p` and collecting the results.\n       */\n      def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n        val b = bf(repr)\n        for (x <- self) \n          if (p(x)) b += f(x)\n        b.result\n      }\n\n      /** Builds a new collection by applying a function to all elements of the\n       *  outer $coll containing this `WithFilter` instance that satisfy\n       *  predicate `p` and concatenating the results. \n       *\n       *  @param f      the function to apply to each element.\n       *  @tparam B     the element type of the returned collection.\n       *  @tparam That  $thatinfo\n       *  @param bf     $bfinfo\n       *  @return       a new collection of type `That` resulting from applying\n       *                the given collection-valued function `f` to each element\n       *                of the outer $coll that satisfies predicate `p` and\n       *                concatenating the results.\n       *\n       *  @usecase def flatMap[B](f: A => TraversableOnce[B]): $Coll[B]\n       * \n       *  @return       a new $coll resulting from applying the given collection-valued function\n       *                `f` to each element of the outer $coll that satisfies predicate `p` and concatenating the results.\n       */\n      def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n        val b = bf(repr)\n        for (x <- self) \n          if (p(x)) b ++= f(x).seq\n        b.result\n      }\n\n      /** Applies a function `f` to all elements of the outer $coll containing\n       *  this `WithFilter` instance that satisfy predicate `p`.\n       *\n       *  @param  f   the function that is applied for its side-effect to every element.\n       *              The result of function `f` is discarded.\n       *              \n       *  @tparam  U  the type parameter describing the result of function `f`. \n       *              This result will always be ignored. Typically `U` is `Unit`,\n       *              but this is not necessary.\n       *\n       *  @usecase def foreach(f: A => Unit): Unit\n       */   \n      def foreach[U](f: A => U): Unit = \n        for (x <- self) \n          if (p(x)) f(x)\n\n      /** Further refines the filter for this $coll.\n       *\n       *  @param q   the predicate used to test elements.\n       *  @return    an object of class `WithFilter`, which supports\n       *             `map`, `flatMap`, `foreach`, and `withFilter` operations.\n       *             All these operations apply to those elements of this $coll which\n       *             satisfy the predicate `q` in addition to the predicate `p`.\n       */\n      def withFilter(q: A => Boolean): WithFilter = \n        new WithFilter(x => p(x) && q(x))\n    }\n\n    // A helper for tails and inits.\n    private def iterateUntilEmpty(f: Traversable[A @uV] => Traversable[A @uV]): Iterator[Repr] = {\n      val it = Iterator.iterate(thisCollection)(f) takeWhile (x => !x.isEmpty)\n      it ++ Iterator(Nil) map (newBuilder ++= _ result)\n    }\n  }\n\n\n</textarea>\n</form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"ambiance\",\n        mode: \"text/x-scala\"\n      });\n    </script>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/clojure/clojure.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Hans Engel\n * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun)\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"clojure\", function (options) {\n    var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\", CHARACTER = \"string-2\",\n        ATOM = \"atom\", NUMBER = \"number\", BRACKET = \"bracket\", KEYWORD = \"keyword\", VAR = \"variable\";\n    var INDENT_WORD_SKIP = options.indentUnit || 2;\n    var NORMAL_INDENT_UNIT = options.indentUnit || 2;\n\n    function makeKeywords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var atoms = makeKeywords(\"true false nil\");\n\n    var keywords = makeKeywords(\n      \"defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle\");\n\n    var builtins = makeKeywords(\n        \"* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap *default-data-reader-fn* as-> cond-> cond->> reduced reduced? send-via set-agent-send-executor! set-agent-send-off-executor! some-> some->>\");\n\n    var indentKeys = makeKeywords(\n        // Built-ins\n        \"ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch \" +\n\n        // Binding forms\n        \"let letfn binding loop for doseq dotimes when-let if-let \" +\n\n        // Data structures\n        \"defstruct struct-map assoc \" +\n\n        // clojure.test\n        \"testing deftest \" +\n\n        // contrib\n        \"handler-case handle dotrace deftrace\");\n\n    var tests = {\n        digit: /\\d/,\n        digit_or_colon: /[\\d:]/,\n        hex: /[0-9a-f]/i,\n        sign: /[+-]/,\n        exponent: /e/i,\n        keyword_char: /[^\\s\\(\\[\\;\\)\\]]/,\n        symbol: /[\\w*+!\\-\\._?:<>\\/\\xa1-\\uffff]/\n    };\n\n    function stateStack(indent, type, prev) { // represents a state stack object\n        this.indent = indent;\n        this.type = type;\n        this.prev = prev;\n    }\n\n    function pushStack(state, indent, type) {\n        state.indentStack = new stateStack(indent, type, state.indentStack);\n    }\n\n    function popStack(state) {\n        state.indentStack = state.indentStack.prev;\n    }\n\n    function isNumber(ch, stream){\n        // hex\n        if ( ch === '0' && stream.eat(/x/i) ) {\n            stream.eatWhile(tests.hex);\n            return true;\n        }\n\n        // leading sign\n        if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {\n          stream.eat(tests.sign);\n          ch = stream.next();\n        }\n\n        if ( tests.digit.test(ch) ) {\n            stream.eat(ch);\n            stream.eatWhile(tests.digit);\n\n            if ( '.' == stream.peek() ) {\n                stream.eat('.');\n                stream.eatWhile(tests.digit);\n            }\n\n            if ( stream.eat(tests.exponent) ) {\n                stream.eat(tests.sign);\n                stream.eatWhile(tests.digit);\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n\n    // Eat character that starts after backslash \\\n    function eatCharacter(stream) {\n        var first = stream.next();\n        // Read special literals: backspace, newline, space, return.\n        // Just read all lowercase letters.\n        if (first && first.match(/[a-z]/) && stream.match(/[a-z]+/, true)) {\n            return;\n        }\n        // Read unicode character: \\u1000 \\uA0a1\n        if (first === \"u\") {\n            stream.match(/[0-9a-z]{4}/i, true);\n        }\n    }\n\n    return {\n        startState: function () {\n            return {\n                indentStack: null,\n                indentation: 0,\n                mode: false\n            };\n        },\n\n        token: function (stream, state) {\n            if (state.indentStack == null && stream.sol()) {\n                // update indentation, but only if indentStack is empty\n                state.indentation = stream.indentation();\n            }\n\n            // skip spaces\n            if (stream.eatSpace()) {\n                return null;\n            }\n            var returnType = null;\n\n            switch(state.mode){\n                case \"string\": // multi-line string parsing mode\n                    var next, escaped = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"\\\"\" && !escaped) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        escaped = !escaped && next == \"\\\\\";\n                    }\n                    returnType = STRING; // continue on in string mode\n                    break;\n                default: // default parsing mode\n                    var ch = stream.next();\n\n                    if (ch == \"\\\"\") {\n                        state.mode = \"string\";\n                        returnType = STRING;\n                    } else if (ch == \"\\\\\") {\n                        eatCharacter(stream);\n                        returnType = CHARACTER;\n                    } else if (ch == \"'\" && !( tests.digit_or_colon.test(stream.peek()) )) {\n                        returnType = ATOM;\n                    } else if (ch == \";\") { // comment\n                        stream.skipToEnd(); // rest of the line is a comment\n                        returnType = COMMENT;\n                    } else if (isNumber(ch,stream)){\n                        returnType = NUMBER;\n                    } else if (ch == \"(\" || ch == \"[\" || ch == \"{\" ) {\n                        var keyWord = '', indentTemp = stream.column(), letter;\n                        /**\n                        Either\n                        (indent-word ..\n                        (non-indent-word ..\n                        (;something else, bracket, etc.\n                        */\n\n                        if (ch == \"(\") while ((letter = stream.eat(tests.keyword_char)) != null) {\n                            keyWord += letter;\n                        }\n\n                        if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) ||\n                                                   /^(?:def|with)/.test(keyWord))) { // indent-word\n                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);\n                        } else { // non-indent word\n                            // we continue eating the spaces\n                            stream.eatSpace();\n                            if (stream.eol() || stream.peek() == \";\") {\n                                // nothing significant after\n                                // we restart indentation the user defined spaces after\n                                pushStack(state, indentTemp + NORMAL_INDENT_UNIT, ch);\n                            } else {\n                                pushStack(state, indentTemp + stream.current().length, ch); // else we match\n                            }\n                        }\n                        stream.backUp(stream.current().length - 1); // undo all the eating\n\n                        returnType = BRACKET;\n                    } else if (ch == \")\" || ch == \"]\" || ch == \"}\") {\n                        returnType = BRACKET;\n                        if (state.indentStack != null && state.indentStack.type == (ch == \")\" ? \"(\" : (ch == \"]\" ? \"[\" :\"{\"))) {\n                            popStack(state);\n                        }\n                    } else if ( ch == \":\" ) {\n                        stream.eatWhile(tests.symbol);\n                        return ATOM;\n                    } else {\n                        stream.eatWhile(tests.symbol);\n\n                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {\n                            returnType = KEYWORD;\n                        } else if (builtins && builtins.propertyIsEnumerable(stream.current())) {\n                            returnType = BUILTIN;\n                        } else if (atoms && atoms.propertyIsEnumerable(stream.current())) {\n                            returnType = ATOM;\n                        } else {\n                          returnType = VAR;\n                        }\n                    }\n            }\n\n            return returnType;\n        },\n\n        indent: function (state) {\n            if (state.indentStack == null) return state.indentation;\n            return state.indentStack.indent;\n        },\n\n        lineComment: \";;\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/x-clojure\", \"clojure\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/clojure/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Clojure mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"clojure.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Clojure</a>\n  </ul>\n</div>\n\n<article>\n<h2>Clojure mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; Conway's Game of Life, based on the work of:\n;; Laurent Petit https://gist.github.com/1200343\n;; Christophe Grand http://clj-me.cgrand.net/2011/08/19/conways-game-of-life\n\n(ns ^{:doc \"Conway's Game of Life.\"}\n game-of-life)\n\n;; Core game of life's algorithm functions\n\n(defn neighbours\n  \"Given a cell's coordinates, returns the coordinates of its neighbours.\"\n  [[x y]]\n  (for [dx [-1 0 1] dy (if (zero? dx) [-1 1] [-1 0 1])]\n    [(+ dx x) (+ dy y)]))\n\n(defn step\n  \"Given a set of living cells, computes the new set of living cells.\"\n  [cells]\n  (set (for [[cell n] (frequencies (mapcat neighbours cells))\n             :when (or (= n 3) (and (= n 2) (cells cell)))]\n         cell)))\n\n;; Utility methods for displaying game on a text terminal\n\n(defn print-board\n  \"Prints a board on *out*, representing a step in the game.\"\n  [board w h]\n  (doseq [x (range (inc w)) y (range (inc h))]\n    (if (= y 0) (print \"\\n\"))\n    (print (if (board [x y]) \"[X]\" \" . \"))))\n\n(defn display-grids\n  \"Prints a squence of boards on *out*, representing several steps.\"\n  [grids w h]\n  (doseq [board grids]\n    (print-board board w h)\n    (print \"\\n\")))\n\n;; Launches an example board\n\n(def\n  ^{:doc \"board represents the initial set of living cells\"}\n   board #{[2 1] [2 2] [2 3]})\n\n(display-grids (take 3 (iterate step board)) 5 5)\n\n;; Let's play with characters\n(println \\1 \\a \\# \\\\\n         \\\" \\( \\newline\n         \\} \\\" \\space\n         \\tab \\return \\backspace\n         \\u1000 \\uAaAa \\u9F9F)\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-clojure</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/cobol/cobol.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Gautam Mehta\n * Branched from CodeMirror's Scheme mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"cobol\", function () {\n  var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n      ATOM = \"atom\", NUMBER = \"number\", KEYWORD = \"keyword\", MODTAG = \"header\",\n      COBOLLINENUM = \"def\", PERIOD = \"link\";\n  function makeKeywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var atoms = makeKeywords(\"TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES \");\n  var keywords = makeKeywords(\n      \"ACCEPT ACCESS ACQUIRE ADD ADDRESS \" +\n      \"ADVANCING AFTER ALIAS ALL ALPHABET \" +\n      \"ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED \" +\n      \"ALSO ALTER ALTERNATE AND ANY \" +\n      \"ARE AREA AREAS ARITHMETIC ASCENDING \" +\n      \"ASSIGN AT ATTRIBUTE AUTHOR AUTO \" +\n      \"AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS \" +\n      \"B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP \" +\n      \"BEFORE BELL BINARY BIT BITS \" +\n      \"BLANK BLINK BLOCK BOOLEAN BOTTOM \" +\n      \"BY CALL CANCEL CD CF \" +\n      \"CH CHARACTER CHARACTERS CLASS CLOCK-UNITS \" +\n      \"CLOSE COBOL CODE CODE-SET COL \" +\n      \"COLLATING COLUMN COMMA COMMIT COMMITMENT \" +\n      \"COMMON COMMUNICATION COMP COMP-0 COMP-1 \" +\n      \"COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 \" +\n      \"COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 \" +\n      \"COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 \" +\n      \"COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE \" +\n      \"CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS \" +\n      \"CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS \" +\n      \"CONVERTING COPY CORR CORRESPONDING COUNT \" +\n      \"CRT CRT-UNDER CURRENCY CURRENT CURSOR \" +\n      \"DATA DATE DATE-COMPILED DATE-WRITTEN DAY \" +\n      \"DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION \" +\n      \"DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS \" +\n      \"DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE \" +\n      \"DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING \" +\n      \"DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED \" +\n      \"DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION \" +\n      \"DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 \" +\n      \"DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 \" +\n      \"DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION \" +\n      \"DOWN DROP DUPLICATE DUPLICATES DYNAMIC \" +\n      \"EBCDIC EGI EJECT ELSE EMI \" +\n      \"EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. \" +\n      \"END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY \" +\n      \"END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY \" +\n      \"END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN \" +\n      \"END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT \" +\n      \"END-UNSTRING END-WRITE END-XML ENTER ENTRY \" +\n      \"ENVIRONMENT EOP EQUAL EQUALS ERASE \" +\n      \"ERROR ESI EVALUATE EVERY EXCEEDS \" +\n      \"EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL \" +\n      \"EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL \" +\n      \"FILE-STREAM FILES FILLER FINAL FIND \" +\n      \"FINISH FIRST FOOTING FOR FOREGROUND-COLOR \" +\n      \"FOREGROUND-COLOUR FORMAT FREE FROM FULL \" +\n      \"FUNCTION GENERATE GET GIVING GLOBAL \" +\n      \"GO GOBACK GREATER GROUP HEADING \" +\n      \"HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL \" +\n      \"ID IDENTIFICATION IF IN INDEX \" +\n      \"INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 \" +\n      \"INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED \" +\n      \"INDIC INDICATE INDICATOR INDICATORS INITIAL \" +\n      \"INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT \" +\n      \"INSTALLATION INTO INVALID INVOKE IS \" +\n      \"JUST JUSTIFIED KANJI KEEP KEY \" +\n      \"LABEL LAST LD LEADING LEFT \" +\n      \"LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY \" +\n      \"LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER \" +\n      \"LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE \" +\n      \"LOCALE LOCALLY LOCK \" +\n      \"MEMBER MEMORY MERGE MESSAGE METACLASS \" +\n      \"MODE MODIFIED MODIFY MODULES MOVE \" +\n      \"MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE \" +\n      \"NEXT NO NO-ECHO NONE NOT \" +\n      \"NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER \" +\n      \"NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS \" +\n      \"OF OFF OMITTED ON ONLY \" +\n      \"OPEN OPTIONAL OR ORDER ORGANIZATION \" +\n      \"OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL \" +\n      \"PADDING PAGE PAGE-COUNTER PARSE PERFORM \" +\n      \"PF PH PIC PICTURE PLUS \" +\n      \"POINTER POSITION POSITIVE PREFIX PRESENT \" +\n      \"PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES \" +\n      \"PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID \" +\n      \"PROMPT PROTECTED PURGE QUEUE QUOTE \" +\n      \"QUOTES RANDOM RD READ READY \" +\n      \"REALM RECEIVE RECONNECT RECORD RECORD-NAME \" +\n      \"RECORDS RECURSIVE REDEFINES REEL REFERENCE \" +\n      \"REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE \" +\n      \"REMAINDER REMOVAL RENAMES REPEATED REPLACE \" +\n      \"REPLACING REPORT REPORTING REPORTS REPOSITORY \" +\n      \"REQUIRED RERUN RESERVE RESET RETAINING \" +\n      \"RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO \" +\n      \"REVERSED REWIND REWRITE RF RH \" +\n      \"RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED \" +\n      \"RUN SAME SCREEN SD SEARCH \" +\n      \"SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT \" +\n      \"SELECT SEND SENTENCE SEPARATE SEQUENCE \" +\n      \"SEQUENTIAL SET SHARED SIGN SIZE \" +\n      \"SKIP1 SKIP2 SKIP3 SORT SORT-MERGE \" +\n      \"SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL \" +\n      \"SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 \" +\n      \"START STARTING STATUS STOP STORE \" +\n      \"STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA \" +\n      \"SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS \" +\n      \"SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT \" +\n      \"TABLE TALLYING TAPE TENANT TERMINAL \" +\n      \"TERMINATE TEST TEXT THAN THEN \" +\n      \"THROUGH THRU TIME TIMES TITLE \" +\n      \"TO TOP TRAILING TRAILING-SIGN TRANSACTION \" +\n      \"TYPE TYPEDEF UNDERLINE UNEQUAL UNIT \" +\n      \"UNSTRING UNTIL UP UPDATE UPON \" +\n      \"USAGE USAGE-MODE USE USING VALID \" +\n      \"VALIDATE VALUE VALUES VARYING VLR \" +\n      \"WAIT WHEN WHEN-COMPILED WITH WITHIN \" +\n      \"WORDS WORKING-STORAGE WRITE XML XML-CODE \" +\n      \"XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL \" );\n\n  var builtins = makeKeywords(\"- * ** / + < <= = > >= \");\n  var tests = {\n    digit: /\\d/,\n    digit_or_colon: /[\\d:]/,\n    hex: /[0-9a-f]/i,\n    sign: /[+-]/,\n    exponent: /e/i,\n    keyword_char: /[^\\s\\(\\[\\;\\)\\]]/,\n    symbol: /[\\w*+\\-]/\n  };\n  function isNumber(ch, stream){\n    // hex\n    if ( ch === '0' && stream.eat(/x/i) ) {\n      stream.eatWhile(tests.hex);\n      return true;\n    }\n    // leading sign\n    if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {\n      stream.eat(tests.sign);\n      ch = stream.next();\n    }\n    if ( tests.digit.test(ch) ) {\n      stream.eat(ch);\n      stream.eatWhile(tests.digit);\n      if ( '.' == stream.peek()) {\n        stream.eat('.');\n        stream.eatWhile(tests.digit);\n      }\n      if ( stream.eat(tests.exponent) ) {\n        stream.eat(tests.sign);\n        stream.eatWhile(tests.digit);\n      }\n      return true;\n    }\n    return false;\n  }\n  return {\n    startState: function () {\n      return {\n        indentStack: null,\n        indentation: 0,\n        mode: false\n      };\n    },\n    token: function (stream, state) {\n      if (state.indentStack == null && stream.sol()) {\n        // update indentation, but only if indentStack is empty\n        state.indentation = 6 ; //stream.indentation();\n      }\n      // skip spaces\n      if (stream.eatSpace()) {\n        return null;\n      }\n      var returnType = null;\n      switch(state.mode){\n      case \"string\": // multi-line string parsing mode\n        var next = false;\n        while ((next = stream.next()) != null) {\n          if (next == \"\\\"\" || next == \"\\'\") {\n            state.mode = false;\n            break;\n          }\n        }\n        returnType = STRING; // continue on in string mode\n        break;\n      default: // default parsing mode\n        var ch = stream.next();\n        var col = stream.column();\n        if (col >= 0 && col <= 5) {\n          returnType = COBOLLINENUM;\n        } else if (col >= 72 && col <= 79) {\n          stream.skipToEnd();\n          returnType = MODTAG;\n        } else if (ch == \"*\" && col == 6) { // comment\n          stream.skipToEnd(); // rest of the line is a comment\n          returnType = COMMENT;\n        } else if (ch == \"\\\"\" || ch == \"\\'\") {\n          state.mode = \"string\";\n          returnType = STRING;\n        } else if (ch == \"'\" && !( tests.digit_or_colon.test(stream.peek()) )) {\n          returnType = ATOM;\n        } else if (ch == \".\") {\n          returnType = PERIOD;\n        } else if (isNumber(ch,stream)){\n          returnType = NUMBER;\n        } else {\n          if (stream.current().match(tests.symbol)) {\n            while (col < 71) {\n              if (stream.eat(tests.symbol) === undefined) {\n                break;\n              } else {\n                col++;\n              }\n            }\n          }\n          if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = KEYWORD;\n          } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = BUILTIN;\n          } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = ATOM;\n          } else returnType = null;\n        }\n      }\n      return returnType;\n    },\n    indent: function (state) {\n      if (state.indentStack == null) return state.indentation;\n      return state.indentStack.indent;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-cobol\", \"cobol\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/cobol/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: COBOL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<link rel=\"stylesheet\" href=\"../../theme/erlang-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<link rel=\"stylesheet\" href=\"../../theme/monokai.css\">\n<link rel=\"stylesheet\" href=\"../../theme/cobalt.css\">\n<link rel=\"stylesheet\" href=\"../../theme/eclipse.css\">\n<link rel=\"stylesheet\" href=\"../../theme/rubyblue.css\">\n<link rel=\"stylesheet\" href=\"../../theme/lesser-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-light.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<link rel=\"stylesheet\" href=\"../../theme/blackboard.css\">\n<link rel=\"stylesheet\" href=\"../../theme/vibrant-ink.css\">\n<link rel=\"stylesheet\" href=\"../../theme/solarized.css\">\n<link rel=\"stylesheet\" href=\"../../theme/twilight.css\">\n<link rel=\"stylesheet\" href=\"../../theme/midnight.css\">\n<link rel=\"stylesheet\" href=\"../../addon/dialog/dialog.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"cobol.js\"></script>\n<script src=\"../../addon/selection/active-line.js\"></script>\n<script src=\"../../addon/search/search.js\"></script>\n<script src=\"../../addon/dialog/dialog.js\"></script>\n<script src=\"../../addon/search/searchcursor.js\"></script>\n<style>\n        .CodeMirror {\n          border: 1px solid #eee;\n          font-size : 20px;\n          height : auto !important;\n        }\n        .CodeMirror-activeline-background {background: #555555 !important;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">COBOL</a>\n  </ul>\n</div>\n\n<article>\n<h2>COBOL mode</h2>\n\n    <p> Select Theme <select onchange=\"selectTheme()\" id=\"selectTheme\">\n        <option>default</option>\n        <option>ambiance</option>\n        <option>blackboard</option>\n        <option>cobalt</option>\n        <option>eclipse</option>\n        <option>elegant</option>\n        <option>erlang-dark</option>\n        <option>lesser-dark</option>\n        <option>midnight</option>\n        <option>monokai</option>\n        <option>neat</option>\n        <option>night</option>\n        <option>rubyblue</option>\n        <option>solarized dark</option>\n        <option>solarized light</option>\n        <option selected>twilight</option>\n        <option>vibrant-ink</option>\n        <option>xq-dark</option>\n        <option>xq-light</option>\n    </select>    Select Font Size <select onchange=\"selectFontsize()\" id=\"selectFontSize\">\n          <option value=\"13px\">13px</option>\n          <option value=\"14px\">14px</option>\n          <option value=\"16px\">16px</option>\n          <option value=\"18px\">18px</option>\n          <option value=\"20px\" selected=\"selected\">20px</option>\n          <option value=\"24px\">24px</option>\n          <option value=\"26px\">26px</option>\n          <option value=\"28px\">28px</option>\n          <option value=\"30px\">30px</option>\n          <option value=\"32px\">32px</option>\n          <option value=\"34px\">34px</option>\n          <option value=\"36px\">36px</option>\n        </select>\n<label for=\"checkBoxReadOnly\">Read-only</label>\n<input type=\"checkbox\" id=\"checkBoxReadOnly\" onchange=\"selectReadOnly()\">\n<label for=\"id_tabToIndentSpace\">Insert Spaces on Tab</label>\n<input type=\"checkbox\" id=\"id_tabToIndentSpace\" onchange=\"tabToIndentSpace()\">\n</p>\n<textarea id=\"code\" name=\"code\">\n---------1---------2---------3---------4---------5---------6---------7---------8\n12345678911234567892123456789312345678941234567895123456789612345678971234567898\n000010 IDENTIFICATION DIVISION.                                        MODTGHERE\n000020 PROGRAM-ID.       SAMPLE.\n000030 AUTHOR.           TEST SAM. \n000040 DATE-WRITTEN.     5 February 2013\n000041\n000042* A sample program just to show the form.\n000043* The program copies its input to the output,\n000044* and counts the number of records.\n000045* At the end this number is printed.\n000046\n000050 ENVIRONMENT DIVISION.\n000060 INPUT-OUTPUT SECTION.\n000070 FILE-CONTROL.\n000080     SELECT STUDENT-FILE     ASSIGN TO SYSIN\n000090         ORGANIZATION IS LINE SEQUENTIAL.\n000100     SELECT PRINT-FILE       ASSIGN TO SYSOUT\n000110         ORGANIZATION IS LINE SEQUENTIAL.\n000120\n000130 DATA DIVISION.\n000140 FILE SECTION.\n000150 FD  STUDENT-FILE\n000160     RECORD CONTAINS 43 CHARACTERS\n000170     DATA RECORD IS STUDENT-IN.\n000180 01  STUDENT-IN              PIC X(43).\n000190\n000200 FD  PRINT-FILE\n000210     RECORD CONTAINS 80 CHARACTERS\n000220     DATA RECORD IS PRINT-LINE.\n000230 01  PRINT-LINE              PIC X(80).\n000240\n000250 WORKING-STORAGE SECTION.\n000260 01  DATA-REMAINS-SWITCH     PIC X(2)      VALUE SPACES.\n000261 01  RECORDS-WRITTEN         PIC 99.\n000270\n000280 01  DETAIL-LINE.\n000290     05  FILLER              PIC X(7)      VALUE SPACES.\n000300     05  RECORD-IMAGE        PIC X(43).\n000310     05  FILLER              PIC X(30)     VALUE SPACES.\n000311 \n000312 01  SUMMARY-LINE.\n000313     05  FILLER              PIC X(7)      VALUE SPACES.\n000314     05  TOTAL-READ          PIC 99.\n000315     05  FILLER              PIC X         VALUE SPACE.\n000316     05  FILLER              PIC X(17)     \n000317                 VALUE  'Records were read'.\n000318     05  FILLER              PIC X(53)     VALUE SPACES.\n000319\n000320 PROCEDURE DIVISION.\n000321\n000330 PREPARE-SENIOR-REPORT.\n000340     OPEN INPUT  STUDENT-FILE\n000350          OUTPUT PRINT-FILE.\n000351     MOVE ZERO TO RECORDS-WRITTEN.\n000360     READ STUDENT-FILE\n000370         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH\n000380     END-READ.\n000390     PERFORM PROCESS-RECORDS\n000410         UNTIL DATA-REMAINS-SWITCH = 'NO'.\n000411     PERFORM PRINT-SUMMARY.\n000420     CLOSE STUDENT-FILE\n000430           PRINT-FILE.\n000440     STOP RUN.\n000450\n000460 PROCESS-RECORDS.\n000470     MOVE STUDENT-IN TO RECORD-IMAGE.\n000480     MOVE DETAIL-LINE TO PRINT-LINE.\n000490     WRITE PRINT-LINE.\n000500     ADD 1 TO RECORDS-WRITTEN.\n000510     READ STUDENT-FILE\n000520         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH\n000530     END-READ. \n000540\n000550 PRINT-SUMMARY.\n000560     MOVE RECORDS-WRITTEN TO TOTAL-READ.\n000570     MOVE SUMMARY-LINE TO PRINT-LINE.\n000571     WRITE PRINT-LINE. \n000572\n000580\n</textarea>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-cobol\",\n        theme : \"twilight\",\n        styleActiveLine: true,\n        showCursorWhenSelecting : true,  \n      });\n      function selectTheme() {\n        var themeInput = document.getElementById(\"selectTheme\");\n        var theme = themeInput.options[themeInput.selectedIndex].innerHTML;\n        editor.setOption(\"theme\", theme);\n      }\n      function selectFontsize() {\n        var fontSizeInput = document.getElementById(\"selectFontSize\");\n        var fontSize = fontSizeInput.options[fontSizeInput.selectedIndex].innerHTML;\n        editor.getWrapperElement().style.fontSize = fontSize;\n        editor.refresh();\n      }\n      function selectReadOnly() {\n        editor.setOption(\"readOnly\", document.getElementById(\"checkBoxReadOnly\").checked);\n      }\n      function tabToIndentSpace() {\n        if (document.getElementById(\"id_tabToIndentSpace\").checked) {\n            editor.setOption(\"extraKeys\", {Tab: function(cm) { cm.replaceSelection(\"    \", \"end\"); }});\n        } else {\n            editor.setOption(\"extraKeys\", {Tab: function(cm) { cm.replaceSelection(\"    \", \"end\"); }});\n        }\n      }\n    </script>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/coffeescript/coffeescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/pickhardt/coffeescript-codemirror-mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"coffeescript\", function(conf, parserConf) {\n  var ERRORCLASS = \"error\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\n  var delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\n  var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\n  var properties = /^(@|this\\.)[_A-Za-z$][_A-Za-z$0-9]*/;\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n                                  \"is\", \"isnt\", \"in\",\n                                  \"instanceof\", \"typeof\"]);\n  var indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n                        \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\n  var commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n                        \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n                        \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\n  var keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\n  indentKeywords = wordRegexp(indentKeywords);\n\n\n  var stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\n  var regexPrefixes = /^(\\/{3}|\\/)/;\n  var commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\n  var constants = wordRegexp(commonConstants);\n\n  // Tokenizers\n  function tokenBase(stream, state) {\n    // Handle scope changes\n    if (stream.sol()) {\n      if (state.scope.align === null) state.scope.align = false;\n      var scopeOffset = state.scope.offset;\n      if (stream.eatSpace()) {\n        var lineOffset = stream.indentation();\n        if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n          return \"indent\";\n        } else if (lineOffset < scopeOffset) {\n          return \"dedent\";\n        }\n        return null;\n      } else {\n        if (scopeOffset > 0) {\n          dedent(stream, state);\n        }\n      }\n    }\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n\n    // Handle docco title comment (single line)\n    if (stream.match(\"####\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle multi line comments\n    if (stream.match(\"###\")) {\n      state.tokenize = longComment;\n      return state.tokenize(stream, state);\n    }\n\n    // Single line comment\n    if (ch === \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle number literals\n    if (stream.match(/^-?[0-9\\.]/, false)) {\n      var floatLiteral = false;\n      // Floats\n      if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\d+\\.\\d*/)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\.\\d+/)) {\n        floatLiteral = true;\n      }\n\n      if (floatLiteral) {\n        // prevent from getting extra . on 1..\n        if (stream.peek() == \".\"){\n          stream.backUp(1);\n        }\n        return \"number\";\n      }\n      // Integers\n      var intLiteral = false;\n      // Hex\n      if (stream.match(/^-?0x[0-9a-f]+/i)) {\n        intLiteral = true;\n      }\n      // Decimal\n      if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n        intLiteral = true;\n      }\n      // Zero by itself with no other piece of number.\n      if (stream.match(/^-?0(?![\\dx])/i)) {\n        intLiteral = true;\n      }\n      if (intLiteral) {\n        return \"number\";\n      }\n    }\n\n    // Handle strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenFactory(stream.current(), false, \"string\");\n      return state.tokenize(stream, state);\n    }\n    // Handle regex literals\n    if (stream.match(regexPrefixes)) {\n      if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n        state.tokenize = tokenFactory(stream.current(), true, \"string-2\");\n        return state.tokenize(stream, state);\n      } else {\n        stream.backUp(1);\n      }\n    }\n\n    // Handle operators and delimiters\n    if (stream.match(operators) || stream.match(wordOperators)) {\n      return \"operator\";\n    }\n    if (stream.match(delimiters)) {\n      return \"punctuation\";\n    }\n\n    if (stream.match(constants)) {\n      return \"atom\";\n    }\n\n    if (stream.match(keywords)) {\n      return \"keyword\";\n    }\n\n    if (stream.match(identifiers)) {\n      return \"variable\";\n    }\n\n    if (stream.match(properties)) {\n      return \"property\";\n    }\n\n    // Handle non-detected items\n    stream.next();\n    return ERRORCLASS;\n  }\n\n  function tokenFactory(delimiter, singleline, outclass) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        stream.eatWhile(/[^'\"\\/\\\\]/);\n        if (stream.eat(\"\\\\\")) {\n          stream.next();\n          if (singleline && stream.eol()) {\n            return outclass;\n          }\n        } else if (stream.match(delimiter)) {\n          state.tokenize = tokenBase;\n          return outclass;\n        } else {\n          stream.eat(/['\"\\/]/);\n        }\n      }\n      if (singleline) {\n        if (parserConf.singleLineStringErrors) {\n          outclass = ERRORCLASS;\n        } else {\n          state.tokenize = tokenBase;\n        }\n      }\n      return outclass;\n    };\n  }\n\n  function longComment(stream, state) {\n    while (!stream.eol()) {\n      stream.eatWhile(/[^#]/);\n      if (stream.match(\"###\")) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      stream.eatWhile(\"#\");\n    }\n    return \"comment\";\n  }\n\n  function indent(stream, state, type) {\n    type = type || \"coffee\";\n    var offset = 0, align = false, alignOffset = null;\n    for (var scope = state.scope; scope; scope = scope.prev) {\n      if (scope.type === \"coffee\" || scope.type == \"}\") {\n        offset = scope.offset + conf.indentUnit;\n        break;\n      }\n    }\n    if (type !== \"coffee\") {\n      align = null;\n      alignOffset = stream.column() + stream.current().length;\n    } else if (state.scope.align) {\n      state.scope.align = false;\n    }\n    state.scope = {\n      offset: offset,\n      type: type,\n      prev: state.scope,\n      align: align,\n      alignOffset: alignOffset\n    };\n  }\n\n  function dedent(stream, state) {\n    if (!state.scope.prev) return;\n    if (state.scope.type === \"coffee\") {\n      var _indent = stream.indentation();\n      var matched = false;\n      for (var scope = state.scope; scope; scope = scope.prev) {\n        if (_indent === scope.offset) {\n          matched = true;\n          break;\n        }\n      }\n      if (!matched) {\n        return true;\n      }\n      while (state.scope.prev && state.scope.offset !== _indent) {\n        state.scope = state.scope.prev;\n      }\n      return false;\n    } else {\n      state.scope = state.scope.prev;\n      return false;\n    }\n  }\n\n  function tokenLexer(stream, state) {\n    var style = state.tokenize(stream, state);\n    var current = stream.current();\n\n    // Handle \".\" connected identifiers\n    if (current === \".\") {\n      style = state.tokenize(stream, state);\n      current = stream.current();\n      if (/^\\.[\\w$]+$/.test(current)) {\n        return \"variable\";\n      } else {\n        return ERRORCLASS;\n      }\n    }\n\n    // Handle scope changes.\n    if (current === \"return\") {\n      state.dedent = true;\n    }\n    if (((current === \"->\" || current === \"=>\") &&\n         !state.lambda &&\n         !stream.peek())\n        || style === \"indent\") {\n      indent(stream, state);\n    }\n    var delimiter_index = \"[({\".indexOf(current);\n    if (delimiter_index !== -1) {\n      indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n    }\n    if (indentKeywords.exec(current)){\n      indent(stream, state);\n    }\n    if (current == \"then\"){\n      dedent(stream, state);\n    }\n\n\n    if (style === \"dedent\") {\n      if (dedent(stream, state)) {\n        return ERRORCLASS;\n      }\n    }\n    delimiter_index = \"])}\".indexOf(current);\n    if (delimiter_index !== -1) {\n      while (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      if (state.scope.type == current)\n        state.scope = state.scope.prev;\n    }\n    if (state.dedent && stream.eol()) {\n      if (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      state.dedent = false;\n    }\n\n    return style;\n  }\n\n  var external = {\n    startState: function(basecolumn) {\n      return {\n        tokenize: tokenBase,\n        scope: {offset:basecolumn || 0, type:\"coffee\", prev: null, align: false},\n        lastToken: null,\n        lambda: false,\n        dedent: 0\n      };\n    },\n\n    token: function(stream, state) {\n      var fillAlign = state.scope.align === null && state.scope;\n      if (fillAlign && stream.sol()) fillAlign.align = false;\n\n      var style = tokenLexer(stream, state);\n      if (fillAlign && style && style != \"comment\") fillAlign.align = true;\n\n      state.lastToken = {style:style, content: stream.current()};\n\n      if (stream.eol() && stream.lambda) {\n        state.lambda = false;\n      }\n\n      return style;\n    },\n\n    indent: function(state, text) {\n      if (state.tokenize != tokenBase) return 0;\n      var scope = state.scope;\n      var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n      if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n      var closes = closer && scope.type === text.charAt(0);\n      if (scope.align)\n        return scope.alignOffset - (closes ? 1 : 0);\n      else\n        return (closes ? scope.prev : scope).offset;\n    },\n\n    lineComment: \"#\",\n    fold: \"indent\"\n  };\n  return external;\n});\n\nCodeMirror.defineMIME(\"text/x-coffeescript\", \"coffeescript\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/coffeescript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: CoffeeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"coffeescript.js\"></script>\n<style>.CodeMirror {border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">CoffeeScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>CoffeeScript mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# CoffeeScript mode for CodeMirror\n# Copyright (c) 2011 Jeff Pickhardt, released under\n# the MIT License.\n#\n# Modified from the Python CodeMirror mode, which also is \n# under the MIT License Copyright (c) 2010 Timothy Farrell.\n#\n# The following script, Underscore.coffee, is used to \n# demonstrate CoffeeScript mode for CodeMirror.\n#\n# To download CoffeeScript mode for CodeMirror, go to:\n# https://github.com/pickhardt/coffeescript-codemirror-mode\n\n# **Underscore.coffee\n# (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.**\n# Underscore is freely distributable under the terms of the\n# [MIT license](http://en.wikipedia.org/wiki/MIT_License).\n# Portions of Underscore are inspired by or borrowed from\n# [Prototype.js](http://prototypejs.org/api), Oliver Steele's\n# [Functional](http://osteele.com), and John Resig's\n# [Micro-Templating](http://ejohn.org).\n# For all details and documentation:\n# http://documentcloud.github.com/underscore/\n\n\n# Baseline setup\n# --------------\n\n# Establish the root object, `window` in the browser, or `global` on the server.\nroot = this\n\n\n# Save the previous value of the `_` variable.\npreviousUnderscore = root._\n\n### Multiline\n    comment\n###\n\n# Establish the object that gets thrown to break out of a loop iteration.\n# `StopIteration` is SOP on Mozilla.\nbreaker = if typeof(StopIteration) is 'undefined' then '__break__' else StopIteration\n\n\n#### Docco style single line comment (title)\n\n\n# Helper function to escape **RegExp** contents, because JS doesn't have one.\nescapeRegExp = (string) -> string.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1')\n\n\n# Save bytes in the minified (but not gzipped) version:\nArrayProto = Array.prototype\nObjProto = Object.prototype\n\n\n# Create quick reference variables for speed access to core prototypes.\nslice = ArrayProto.slice\nunshift = ArrayProto.unshift\ntoString = ObjProto.toString\nhasOwnProperty = ObjProto.hasOwnProperty\npropertyIsEnumerable = ObjProto.propertyIsEnumerable\n\n\n# All **ECMA5** native implementations we hope to use are declared here.\nnativeForEach = ArrayProto.forEach\nnativeMap = ArrayProto.map\nnativeReduce = ArrayProto.reduce\nnativeReduceRight = ArrayProto.reduceRight\nnativeFilter = ArrayProto.filter\nnativeEvery = ArrayProto.every\nnativeSome = ArrayProto.some\nnativeIndexOf = ArrayProto.indexOf\nnativeLastIndexOf = ArrayProto.lastIndexOf\nnativeIsArray = Array.isArray\nnativeKeys = Object.keys\n\n\n# Create a safe reference to the Underscore object for use below.\n_ = (obj) -> new wrapper(obj)\n\n\n# Export the Underscore object for **CommonJS**.\nif typeof(exports) != 'undefined' then exports._ = _\n\n\n# Export Underscore to global scope.\nroot._ = _\n\n\n# Current version.\n_.VERSION = '1.1.0'\n\n\n# Collection Functions\n# --------------------\n\n# The cornerstone, an **each** implementation.\n# Handles objects implementing **forEach**, arrays, and raw objects.\n_.each = (obj, iterator, context) ->\n  try\n    if nativeForEach and obj.forEach is nativeForEach\n      obj.forEach iterator, context\n    else if _.isNumber obj.length\n      iterator.call context, obj[i], i, obj for i in [0...obj.length]\n    else\n      iterator.call context, val, key, obj for own key, val of obj\n  catch e\n    throw e if e isnt breaker\n  obj\n\n\n# Return the results of applying the iterator to each element. Use JavaScript\n# 1.6's version of **map**, if possible.\n_.map = (obj, iterator, context) ->\n  return obj.map(iterator, context) if nativeMap and obj.map is nativeMap\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push iterator.call context, value, index, list\n  results\n\n\n# **Reduce** builds up a single result from a list of values. Also known as\n# **inject**, or **foldl**. Uses JavaScript 1.8's version of **reduce**, if possible.\n_.reduce = (obj, iterator, memo, context) ->\n  if nativeReduce and obj.reduce is nativeReduce\n    iterator = _.bind iterator, context if context\n    return obj.reduce iterator, memo\n  _.each obj, (value, index, list) ->\n    memo = iterator.call context, memo, value, index, list\n  memo\n\n\n# The right-associative version of **reduce**, also known as **foldr**. Uses\n# JavaScript 1.8's version of **reduceRight**, if available.\n_.reduceRight = (obj, iterator, memo, context) ->\n  if nativeReduceRight and obj.reduceRight is nativeReduceRight\n    iterator = _.bind iterator, context if context\n    return obj.reduceRight iterator, memo\n  reversed = _.clone(_.toArray(obj)).reverse()\n  _.reduce reversed, iterator, memo, context\n\n\n# Return the first value which passes a truth test.\n_.detect = (obj, iterator, context) ->\n  result = null\n  _.each obj, (value, index, list) ->\n    if iterator.call context, value, index, list\n      result = value\n      _.breakLoop()\n  result\n\n\n# Return all the elements that pass a truth test. Use JavaScript 1.6's\n# **filter**, if it exists.\n_.filter = (obj, iterator, context) ->\n  return obj.filter iterator, context if nativeFilter and obj.filter is nativeFilter\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push value if iterator.call context, value, index, list\n  results\n\n\n# Return all the elements for which a truth test fails.\n_.reject = (obj, iterator, context) ->\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push value if not iterator.call context, value, index, list\n  results\n\n\n# Determine whether all of the elements match a truth test. Delegate to\n# JavaScript 1.6's **every**, if it is present.\n_.every = (obj, iterator, context) ->\n  iterator ||= _.identity\n  return obj.every iterator, context if nativeEvery and obj.every is nativeEvery\n  result = true\n  _.each obj, (value, index, list) ->\n    _.breakLoop() unless (result = result and iterator.call(context, value, index, list))\n  result\n\n\n# Determine if at least one element in the object matches a truth test. Use\n# JavaScript 1.6's **some**, if it exists.\n_.some = (obj, iterator, context) ->\n  iterator ||= _.identity\n  return obj.some iterator, context if nativeSome and obj.some is nativeSome\n  result = false\n  _.each obj, (value, index, list) ->\n    _.breakLoop() if (result = iterator.call(context, value, index, list))\n  result\n\n\n# Determine if a given value is included in the array or object,\n# based on `===`.\n_.include = (obj, target) ->\n  return _.indexOf(obj, target) isnt -1 if nativeIndexOf and obj.indexOf is nativeIndexOf\n  return true for own key, val of obj when val is target\n  false\n\n\n# Invoke a method with arguments on every item in a collection.\n_.invoke = (obj, method) ->\n  args = _.rest arguments, 2\n  (if method then val[method] else val).apply(val, args) for val in obj\n\n\n# Convenience version of a common use case of **map**: fetching a property.\n_.pluck = (obj, key) ->\n  _.map(obj, (val) -> val[key])\n\n\n# Return the maximum item or (item-based computation).\n_.max = (obj, iterator, context) ->\n  return Math.max.apply(Math, obj) if not iterator and _.isArray(obj)\n  result = computed: -Infinity\n  _.each obj, (value, index, list) ->\n    computed = if iterator then iterator.call(context, value, index, list) else value\n    computed >= result.computed and (result = {value: value, computed: computed})\n  result.value\n\n\n# Return the minimum element (or element-based computation).\n_.min = (obj, iterator, context) ->\n  return Math.min.apply(Math, obj) if not iterator and _.isArray(obj)\n  result = computed: Infinity\n  _.each obj, (value, index, list) ->\n    computed = if iterator then iterator.call(context, value, index, list) else value\n    computed < result.computed and (result = {value: value, computed: computed})\n  result.value\n\n\n# Sort the object's values by a criterion produced by an iterator.\n_.sortBy = (obj, iterator, context) ->\n  _.pluck(((_.map obj, (value, index, list) ->\n    {value: value, criteria: iterator.call(context, value, index, list)}\n  ).sort((left, right) ->\n    a = left.criteria; b = right.criteria\n    if a < b then -1 else if a > b then 1 else 0\n  )), 'value')\n\n\n# Use a comparator function to figure out at what index an object should\n# be inserted so as to maintain order. Uses binary search.\n_.sortedIndex = (array, obj, iterator) ->\n  iterator ||= _.identity\n  low = 0\n  high = array.length\n  while low < high\n    mid = (low + high) >> 1\n    if iterator(array[mid]) < iterator(obj) then low = mid + 1 else high = mid\n  low\n\n\n# Convert anything iterable into a real, live array.\n_.toArray = (iterable) ->\n  return [] if (!iterable)\n  return iterable.toArray() if (iterable.toArray)\n  return iterable if (_.isArray(iterable))\n  return slice.call(iterable) if (_.isArguments(iterable))\n  _.values(iterable)\n\n\n# Return the number of elements in an object.\n_.size = (obj) -> _.toArray(obj).length\n\n\n# Array Functions\n# ---------------\n\n# Get the first element of an array. Passing `n` will return the first N\n# values in the array. Aliased as **head**. The `guard` check allows it to work\n# with **map**.\n_.first = (array, n, guard) ->\n  if n and not guard then slice.call(array, 0, n) else array[0]\n\n\n# Returns everything but the first entry of the array. Aliased as **tail**.\n# Especially useful on the arguments object. Passing an `index` will return\n# the rest of the values in the array from that index onward. The `guard`\n# check allows it to work with **map**.\n_.rest = (array, index, guard) ->\n  slice.call(array, if _.isUndefined(index) or guard then 1 else index)\n\n\n# Get the last element of an array.\n_.last = (array) -> array[array.length - 1]\n\n\n# Trim out all falsy values from an array.\n_.compact = (array) -> item for item in array when item\n\n\n# Return a completely flattened version of an array.\n_.flatten = (array) ->\n  _.reduce array, (memo, value) ->\n    return memo.concat(_.flatten(value)) if _.isArray value\n    memo.push value\n    memo\n  , []\n\n\n# Return a version of the array that does not contain the specified value(s).\n_.without = (array) ->\n  values = _.rest arguments\n  val for val in _.toArray(array) when not _.include values, val\n\n\n# Produce a duplicate-free version of the array. If the array has already\n# been sorted, you have the option of using a faster algorithm.\n_.uniq = (array, isSorted) ->\n  memo = []\n  for el, i in _.toArray array\n    memo.push el if i is 0 || (if isSorted is true then _.last(memo) isnt el else not _.include(memo, el))\n  memo\n\n\n# Produce an array that contains every item shared between all the\n# passed-in arrays.\n_.intersect = (array) ->\n  rest = _.rest arguments\n  _.select _.uniq(array), (item) ->\n    _.all rest, (other) ->\n      _.indexOf(other, item) >= 0\n\n\n# Zip together multiple lists into a single array -- elements that share\n# an index go together.\n_.zip = ->\n  length = _.max _.pluck arguments, 'length'\n  results = new Array length\n  for i in [0...length]\n    results[i] = _.pluck arguments, String i\n  results\n\n\n# If the browser doesn't supply us with **indexOf** (I'm looking at you, MSIE),\n# we need this function. Return the position of the first occurrence of an\n# item in an array, or -1 if the item is not included in the array.\n_.indexOf = (array, item) ->\n  return array.indexOf item if nativeIndexOf and array.indexOf is nativeIndexOf\n  i = 0; l = array.length\n  while l - i\n    if array[i] is item then return i else i++\n  -1\n\n\n# Provide JavaScript 1.6's **lastIndexOf**, delegating to the native function,\n# if possible.\n_.lastIndexOf = (array, item) ->\n  return array.lastIndexOf(item) if nativeLastIndexOf and array.lastIndexOf is nativeLastIndexOf\n  i = array.length\n  while i\n    if array[i] is item then return i else i--\n  -1\n\n\n# Generate an integer Array containing an arithmetic progression. A port of\n# [the native Python **range** function](http://docs.python.org/library/functions.html#range).\n_.range = (start, stop, step) ->\n  a = arguments\n  solo = a.length <= 1\n  i = start = if solo then 0 else a[0]\n  stop = if solo then a[0] else a[1]\n  step = a[2] or 1\n  len = Math.ceil((stop - start) / step)\n  return [] if len <= 0\n  range = new Array len\n  idx = 0\n  loop\n    return range if (if step > 0 then i - stop else stop - i) >= 0\n    range[idx] = i\n    idx++\n    i+= step\n\n\n# Function Functions\n# ------------------\n\n# Create a function bound to a given object (assigning `this`, and arguments,\n# optionally). Binding with arguments is also known as **curry**.\n_.bind = (func, obj) ->\n  args = _.rest arguments, 2\n  -> func.apply obj or root, args.concat arguments\n\n\n# Bind all of an object's methods to that object. Useful for ensuring that\n# all callbacks defined on an object belong to it.\n_.bindAll = (obj) ->\n  funcs = if arguments.length > 1 then _.rest(arguments) else _.functions(obj)\n  _.each funcs, (f) -> obj[f] = _.bind obj[f], obj\n  obj\n\n\n# Delays a function for the given number of milliseconds, and then calls\n# it with the arguments supplied.\n_.delay = (func, wait) ->\n  args = _.rest arguments, 2\n  setTimeout((-> func.apply(func, args)), wait)\n\n\n# Memoize an expensive function by storing its results.\n_.memoize = (func, hasher) ->\n  memo = {}\n  hasher or= _.identity\n  ->\n    key = hasher.apply this, arguments\n    return memo[key] if key of memo\n    memo[key] = func.apply this, arguments\n\n\n# Defers a function, scheduling it to run after the current call stack has\n# cleared.\n_.defer = (func) ->\n  _.delay.apply _, [func, 1].concat _.rest arguments\n\n\n# Returns the first function passed as an argument to the second,\n# allowing you to adjust arguments, run code before and after, and\n# conditionally execute the original function.\n_.wrap = (func, wrapper) ->\n  -> wrapper.apply wrapper, [func].concat arguments\n\n\n# Returns a function that is the composition of a list of functions, each\n# consuming the return value of the function that follows.\n_.compose = ->\n  funcs = arguments\n  ->\n    args = arguments\n    for i in [funcs.length - 1..0] by -1\n      args = [funcs[i].apply(this, args)]\n    args[0]\n\n\n# Object Functions\n# ----------------\n\n# Retrieve the names of an object's properties.\n_.keys = nativeKeys or (obj) ->\n  return _.range 0, obj.length if _.isArray(obj)\n  key for key, val of obj\n\n\n# Retrieve the values of an object's properties.\n_.values = (obj) ->\n  _.map obj, _.identity\n\n\n# Return a sorted list of the function names available in Underscore.\n_.functions = (obj) ->\n  _.filter(_.keys(obj), (key) -> _.isFunction(obj[key])).sort()\n\n\n# Extend a given object with all of the properties in a source object.\n_.extend = (obj) ->\n  for source in _.rest(arguments)\n    obj[key] = val for key, val of source\n  obj\n\n\n# Create a (shallow-cloned) duplicate of an object.\n_.clone = (obj) ->\n  return obj.slice 0 if _.isArray obj\n  _.extend {}, obj\n\n\n# Invokes interceptor with the obj, and then returns obj.\n# The primary purpose of this method is to \"tap into\" a method chain,\n# in order to perform operations on intermediate results within\n the chain.\n_.tap = (obj, interceptor) ->\n  interceptor obj\n  obj\n\n\n# Perform a deep comparison to check if two objects are equal.\n_.isEqual = (a, b) ->\n  # Check object identity.\n  return true if a is b\n  # Different types?\n  atype = typeof(a); btype = typeof(b)\n  return false if atype isnt btype\n  # Basic equality test (watch out for coercions).\n  return true if `a == b`\n  # One is falsy and the other truthy.\n  return false if (!a and b) or (a and !b)\n  # One of them implements an `isEqual()`?\n  return a.isEqual(b) if a.isEqual\n  # Check dates' integer values.\n  return a.getTime() is b.getTime() if _.isDate(a) and _.isDate(b)\n  # Both are NaN?\n  return false if _.isNaN(a) and _.isNaN(b)\n  # Compare regular expressions.\n  if _.isRegExp(a) and _.isRegExp(b)\n    return a.source is b.source and\n           a.global is b.global and\n           a.ignoreCase is b.ignoreCase and\n           a.multiline is b.multiline\n  # If a is not an object by this point, we can't handle it.\n  return false if atype isnt 'object'\n  # Check for different array lengths before comparing contents.\n  return false if a.length and (a.length isnt b.length)\n  # Nothing else worked, deep compare the contents.\n  aKeys = _.keys(a); bKeys = _.keys(b)\n  # Different object sizes?\n  return false if aKeys.length isnt bKeys.length\n  # Recursive comparison of contents.\n  return false for key, val of a when !(key of b) or !_.isEqual(val, b[key])\n  true\n\n\n# Is a given array or object empty?\n_.isEmpty = (obj) ->\n  return obj.length is 0 if _.isArray(obj) or _.isString(obj)\n  return false for own key of obj\n  true\n\n\n# Is a given value a DOM element?\n_.isElement = (obj) -> obj and obj.nodeType is 1\n\n\n# Is a given value an array?\n_.isArray = nativeIsArray or (obj) -> !!(obj and obj.concat and obj.unshift and not obj.callee)\n\n\n# Is a given variable an arguments object?\n_.isArguments = (obj) -> obj and obj.callee\n\n\n# Is the given value a function?\n_.isFunction = (obj) -> !!(obj and obj.constructor and obj.call and obj.apply)\n\n\n# Is the given value a string?\n_.isString = (obj) -> !!(obj is '' or (obj and obj.charCodeAt and obj.substr))\n\n\n# Is a given value a number?\n_.isNumber = (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'\n\n\n# Is a given value a boolean?\n_.isBoolean = (obj) -> obj is true or obj is false\n\n\n# Is a given value a Date?\n_.isDate = (obj) -> !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)\n\n\n# Is the given value a regular expression?\n_.isRegExp = (obj) -> !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))\n\n\n# Is the given value NaN -- this one is interesting. `NaN != NaN`, and\n# `isNaN(undefined) == true`, so we make sure it's a number first.\n_.isNaN = (obj) -> _.isNumber(obj) and window.isNaN(obj)\n\n\n# Is a given value equal to null?\n_.isNull = (obj) -> obj is null\n\n\n# Is a given variable undefined?\n_.isUndefined = (obj) -> typeof obj is 'undefined'\n\n\n# Utility Functions\n# -----------------\n\n# Run Underscore.js in noConflict mode, returning the `_` variable to its\n# previous owner. Returns a reference to the Underscore object.\n_.noConflict = ->\n  root._ = previousUnderscore\n  this\n\n\n# Keep the identity function around for default iterators.\n_.identity = (value) -> value\n\n\n# Run a function `n` times.\n_.times = (n, iterator, context) ->\n  iterator.call context, i for i in [0...n]\n\n\n# Break out of the middle of an iteration.\n_.breakLoop = -> throw breaker\n\n\n# Add your own custom functions to the Underscore object, ensuring that\n# they're correctly added to the OOP wrapper as well.\n_.mixin = (obj) ->\n  for name in _.functions(obj)\n    addToWrapper name, _[name] = obj[name]\n\n\n# Generate a unique integer id (unique within the entire client session).\n# Useful for temporary DOM ids.\nidCounter = 0\n_.uniqueId = (prefix) ->\n  (prefix or '') + idCounter++\n\n\n# By default, Underscore uses **ERB**-style template delimiters, change the\n# following template settings to use alternative delimiters.\n_.templateSettings = {\n  start: '<%'\n  end: '%>'\n  interpolate: /<%=(.+?)%>/g\n}\n\n\n# JavaScript templating a-la **ERB**, pilfered from John Resig's\n# *Secrets of the JavaScript Ninja*, page 83.\n# Single-quote fix from Rick Strahl.\n# With alterations for arbitrary delimiters, and to preserve whitespace.\n_.template = (str, data) ->\n  c = _.templateSettings\n  endMatch = new RegExp(\"'(?=[^\"+c.end.substr(0, 1)+\"]*\"+escapeRegExp(c.end)+\")\",\"g\")\n  fn = new Function 'obj',\n    'var p=[],print=function(){p.push.apply(p,arguments);};' +\n    'with(obj||{}){p.push(\\'' +\n    str.replace(/\\r/g, '\\\\r')\n       .replace(/\\n/g, '\\\\n')\n       .replace(/\\t/g, '\\\\t')\n       .replace(endMatch,\"���\")\n       .split(\"'\").join(\"\\\\'\")\n       .split(\"���\").join(\"'\")\n       .replace(c.interpolate, \"',$1,'\")\n       .split(c.start).join(\"');\")\n       .split(c.end).join(\"p.push('\") +\n       \"');}return p.join('');\"\n  if data then fn(data) else fn\n\n\n# Aliases\n# -------\n\n_.forEach = _.each\n_.foldl = _.inject = _.reduce\n_.foldr = _.reduceRight\n_.select = _.filter\n_.all = _.every\n_.any = _.some\n_.contains = _.include\n_.head = _.first\n_.tail = _.rest\n_.methods = _.functions\n\n\n# Setup the OOP Wrapper\n# ---------------------\n\n# If Underscore is called as a function, it returns a wrapped object that\n# can be used OO-style. This wrapper holds altered versions of all the\n# underscore functions. Wrapped objects may be chained.\nwrapper = (obj) ->\n  this._wrapped = obj\n  this\n\n\n# Helper function to continue chaining intermediate results.\nresult = (obj, chain) ->\n  if chain then _(obj).chain() else obj\n\n\n# A method to easily add functions to the OOP wrapper.\naddToWrapper = (name, func) ->\n  wrapper.prototype[name] = ->\n    args = _.toArray arguments\n    unshift.call args, this._wrapped\n    result func.apply(_, args), this._chain\n\n\n# Add all ofthe Underscore functions to the wrapper object.\n_.mixin _\n\n\n# Add all mutator Array functions to the wrapper.\n_.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->\n  method = Array.prototype[name]\n  wrapper.prototype[name] = ->\n    method.apply(this._wrapped, arguments)\n    result(this._wrapped, this._chain)\n\n\n# Add all accessor Array functions to the wrapper.\n_.each ['concat', 'join', 'slice'], (name) ->\n  method = Array.prototype[name]\n  wrapper.prototype[name] = ->\n    result(method.apply(this._wrapped, arguments), this._chain)\n\n\n# Start chaining a wrapped Underscore object.\nwrapper::chain = ->\n  this._chain = true\n  this\n\n\n# Extracts the result from a wrapped and chained object.\nwrapper::value = -> this._wrapped\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-coffeescript</code>.</p>\n\n    <p>The CoffeeScript mode was written by Jeff Pickhardt.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/commonlisp/commonlisp.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"commonlisp\", function (config) {\n  var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;\n  var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;\n  var numLiteral = /^(?:[+\\-]?(?:\\d+|\\d*\\.\\d+)(?:[efd][+\\-]?\\d+)?|[+\\-]?\\d+(?:\\/[+\\-]?\\d+)?|#b[+\\-]?[01]+|#o[+\\-]?[0-7]+|#x[+\\-]?[\\da-f]+)/;\n  var symbol = /[^\\s'`,@()\\[\\]\";]/;\n  var type;\n\n  function readSym(stream) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"\\\\\") stream.next();\n      else if (!symbol.test(ch)) { stream.backUp(1); break; }\n    }\n    return stream.current();\n  }\n\n  function base(stream, state) {\n    if (stream.eatSpace()) {type = \"ws\"; return null;}\n    if (stream.match(numLiteral)) return \"number\";\n    var ch = stream.next();\n    if (ch == \"\\\\\") ch = stream.next();\n\n    if (ch == '\"') return (state.tokenize = inString)(stream, state);\n    else if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n    else if (ch == \")\" || ch == \"]\") { type = \"close\"; return \"bracket\"; }\n    else if (ch == \";\") { stream.skipToEnd(); type = \"ws\"; return \"comment\"; }\n    else if (/['`,@]/.test(ch)) return null;\n    else if (ch == \"|\") {\n      if (stream.skipTo(\"|\")) { stream.next(); return \"symbol\"; }\n      else { stream.skipToEnd(); return \"error\"; }\n    } else if (ch == \"#\") {\n      var ch = stream.next();\n      if (ch == \"[\") { type = \"open\"; return \"bracket\"; }\n      else if (/[+\\-=\\.']/.test(ch)) return null;\n      else if (/\\d/.test(ch) && stream.match(/^\\d*#/)) return null;\n      else if (ch == \"|\") return (state.tokenize = inComment)(stream, state);\n      else if (ch == \":\") { readSym(stream); return \"meta\"; }\n      else return \"error\";\n    } else {\n      var name = readSym(stream);\n      if (name == \".\") return null;\n      type = \"symbol\";\n      if (name == \"nil\" || name == \"t\" || name.charAt(0) == \":\") return \"atom\";\n      if (state.lastType == \"open\" && (specialForm.test(name) || assumeBody.test(name))) return \"keyword\";\n      if (name.charAt(0) == \"&\") return \"variable-2\";\n      return \"variable\";\n    }\n  }\n\n  function inString(stream, state) {\n    var escaped = false, next;\n    while (next = stream.next()) {\n      if (next == '\"' && !escaped) { state.tokenize = base; break; }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return \"string\";\n  }\n\n  function inComment(stream, state) {\n    var next, last;\n    while (next = stream.next()) {\n      if (next == \"#\" && last == \"|\") { state.tokenize = base; break; }\n      last = next;\n    }\n    type = \"ws\";\n    return \"comment\";\n  }\n\n  return {\n    startState: function () {\n      return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};\n    },\n\n    token: function (stream, state) {\n      if (stream.sol() && typeof state.ctx.indentTo != \"number\")\n        state.ctx.indentTo = state.ctx.start + 1;\n\n      type = null;\n      var style = state.tokenize(stream, state);\n      if (type != \"ws\") {\n        if (state.ctx.indentTo == null) {\n          if (type == \"symbol\" && assumeBody.test(stream.current()))\n            state.ctx.indentTo = state.ctx.start + config.indentUnit;\n          else\n            state.ctx.indentTo = \"next\";\n        } else if (state.ctx.indentTo == \"next\") {\n          state.ctx.indentTo = stream.column();\n        }\n        state.lastType = type;\n      }\n      if (type == \"open\") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n      else if (type == \"close\") state.ctx = state.ctx.prev || state.ctx;\n      return style;\n    },\n\n    indent: function (state, _textAfter) {\n      var i = state.ctx.indentTo;\n      return typeof i == \"number\" ? i : state.ctx.start + 1;\n    },\n\n    lineComment: \";;\",\n    blockCommentStart: \"#|\",\n    blockCommentEnd: \"|#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-common-lisp\", \"commonlisp\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/commonlisp/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Common Lisp mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"commonlisp.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Common Lisp</a>\n  </ul>\n</div>\n\n<article>\n<h2>Common Lisp mode</h2>\n<form><textarea id=\"code\" name=\"code\">(in-package :cl-postgres)\n\n;; These are used to synthesize reader and writer names for integer\n;; reading/writing functions when the amount of bytes and the\n;; signedness is known. Both the macro that creates the functions and\n;; some macros that use them create names this way.\n(eval-when (:compile-toplevel :load-toplevel :execute)\n  (defun integer-reader-name (bytes signed)\n    (intern (with-standard-io-syntax\n              (format nil \"~a~a~a~a\" '#:read- (if signed \"\" '#:u) '#:int bytes))))\n  (defun integer-writer-name (bytes signed)\n    (intern (with-standard-io-syntax\n              (format nil \"~a~a~a~a\" '#:write- (if signed \"\" '#:u) '#:int bytes)))))\n\n(defmacro integer-reader (bytes)\n  \"Create a function to read integers from a binary stream.\"\n  (let ((bits (* bytes 8)))\n    (labels ((return-form (signed)\n               (if signed\n                   `(if (logbitp ,(1- bits) result)\n                        (dpb result (byte ,(1- bits) 0) -1)\n                        result)\n                   `result))\n             (generate-reader (signed)\n               `(defun ,(integer-reader-name bytes signed) (socket)\n                  (declare (type stream socket)\n                           #.*optimize*)\n                  ,(if (= bytes 1)\n                       `(let ((result (the (unsigned-byte 8) (read-byte socket))))\n                          (declare (type (unsigned-byte 8) result))\n                          ,(return-form signed))\n                       `(let ((result 0))\n                          (declare (type (unsigned-byte ,bits) result))\n                          ,@(loop :for byte :from (1- bytes) :downto 0\n                                   :collect `(setf (ldb (byte 8 ,(* 8 byte)) result)\n                                                   (the (unsigned-byte 8) (read-byte socket))))\n                          ,(return-form signed))))))\n      `(progn\n;; This causes weird errors on SBCL in some circumstances. Disabled for now.\n;;         (declaim (inline ,(integer-reader-name bytes t)\n;;                          ,(integer-reader-name bytes nil)))\n         (declaim (ftype (function (t) (signed-byte ,bits))\n                         ,(integer-reader-name bytes t)))\n         ,(generate-reader t)\n         (declaim (ftype (function (t) (unsigned-byte ,bits))\n                         ,(integer-reader-name bytes nil)))\n         ,(generate-reader nil)))))\n\n(defmacro integer-writer (bytes)\n  \"Create a function to write integers to a binary stream.\"\n  (let ((bits (* 8 bytes)))\n    `(progn\n      (declaim (inline ,(integer-writer-name bytes t)\n                       ,(integer-writer-name bytes nil)))\n      (defun ,(integer-writer-name bytes nil) (socket value)\n        (declare (type stream socket)\n                 (type (unsigned-byte ,bits) value)\n                 #.*optimize*)\n        ,@(if (= bytes 1)\n              `((write-byte value socket))\n              (loop :for byte :from (1- bytes) :downto 0\n                    :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)\n                               socket)))\n        (values))\n      (defun ,(integer-writer-name bytes t) (socket value)\n        (declare (type stream socket)\n                 (type (signed-byte ,bits) value)\n                 #.*optimize*)\n        ,@(if (= bytes 1)\n              `((write-byte (ldb (byte 8 0) value) socket))\n              (loop :for byte :from (1- bytes) :downto 0\n                    :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)\n                               socket)))\n        (values)))))\n\n;; All the instances of the above that we need.\n\n(integer-reader 1)\n(integer-reader 2)\n(integer-reader 4)\n(integer-reader 8)\n\n(integer-writer 1)\n(integer-writer 2)\n(integer-writer 4)\n\n(defun write-bytes (socket bytes)\n  \"Write a byte-array to a stream.\"\n  (declare (type stream socket)\n           (type (simple-array (unsigned-byte 8)) bytes)\n           #.*optimize*)\n  (write-sequence bytes socket))\n\n(defun write-str (socket string)\n  \"Write a null-terminated string to a stream \\(encoding it when UTF-8\nsupport is enabled.).\"\n  (declare (type stream socket)\n           (type string string)\n           #.*optimize*)\n  (enc-write-string string socket)\n  (write-uint1 socket 0))\n\n(declaim (ftype (function (t unsigned-byte)\n                          (simple-array (unsigned-byte 8) (*)))\n                read-bytes))\n(defun read-bytes (socket length)\n  \"Read a byte array of the given length from a stream.\"\n  (declare (type stream socket)\n           (type fixnum length)\n           #.*optimize*)\n  (let ((result (make-array length :element-type '(unsigned-byte 8))))\n    (read-sequence result socket)\n    result))\n\n(declaim (ftype (function (t) string) read-str))\n(defun read-str (socket)\n  \"Read a null-terminated string from a stream. Takes care of encoding\nwhen UTF-8 support is enabled.\"\n  (declare (type stream socket)\n           #.*optimize*)\n  (enc-read-string socket :null-terminated t))\n\n(defun skip-bytes (socket length)\n  \"Skip a given number of bytes in a binary stream.\"\n  (declare (type stream socket)\n           (type (unsigned-byte 32) length)\n           #.*optimize*)\n  (dotimes (i length)\n    (read-byte socket)))\n\n(defun skip-str (socket)\n  \"Skip a null-terminated string.\"\n  (declare (type stream socket)\n           #.*optimize*)\n  (loop :for char :of-type fixnum = (read-byte socket)\n        :until (zerop char)))\n\n(defun ensure-socket-is-closed (socket &amp;key abort)\n  (when (open-stream-p socket)\n    (handler-case\n        (close socket :abort abort)\n      (error (error)\n        (warn \"Ignoring the error which happened while trying to close PostgreSQL socket: ~A\" error)))))\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {lineNumbers: true});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-common-lisp</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/css.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n  if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n  var indentUnit = config.indentUnit,\n      tokenHooks = parserConfig.tokenHooks,\n      documentTypes = parserConfig.documentTypes || {},\n      mediaTypes = parserConfig.mediaTypes || {},\n      mediaFeatures = parserConfig.mediaFeatures || {},\n      propertyKeywords = parserConfig.propertyKeywords || {},\n      nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n      fontProperties = parserConfig.fontProperties || {},\n      counterDescriptors = parserConfig.counterDescriptors || {},\n      colorKeywords = parserConfig.colorKeywords || {},\n      valueKeywords = parserConfig.valueKeywords || {},\n      allowNested = parserConfig.allowNested;\n\n  var type, override;\n  function ret(style, tp) { type = tp; return style; }\n\n  // Tokenizers\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (tokenHooks[ch]) {\n      var result = tokenHooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == \"@\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"def\", stream.current());\n    } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n      return ret(null, \"compare\");\n    } else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \"#\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"atom\", \"hash\");\n    } else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    } else if (ch === \"-\") {\n      if (/[\\d.]/.test(stream.peek())) {\n        stream.eatWhile(/[\\w.%]/);\n        return ret(\"number\", \"unit\");\n      } else if (stream.match(/^-[\\w\\\\\\-]+/)) {\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return ret(\"variable-2\", \"variable-definition\");\n        return ret(\"variable-2\", \"variable\");\n      } else if (stream.match(/^\\w+-/)) {\n        return ret(\"meta\", \"meta\");\n      }\n    } else if (/[,+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n      return ret(\"qualifier\", \"qualifier\");\n    } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n      return ret(null, ch);\n    } else if ((ch == \"u\" && stream.match(/rl(-prefix)?\\(/)) ||\n               (ch == \"d\" && stream.match(\"omain(\")) ||\n               (ch == \"r\" && stream.match(\"egexp(\"))) {\n      stream.backUp(1);\n      state.tokenize = tokenParenthesized;\n      return ret(\"property\", \"word\");\n    } else if (/[\\w\\\\\\-]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"property\", \"word\");\n    } else {\n      return ret(null, null);\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          if (quote == \")\") stream.backUp(1);\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenParenthesized(stream, state) {\n    stream.next(); // Must be '('\n    if (!stream.match(/\\s*[\\\"\\')]/, false))\n      state.tokenize = tokenString(\")\");\n    else\n      state.tokenize = null;\n    return ret(null, \"(\");\n  }\n\n  // Context management\n\n  function Context(type, indent, prev) {\n    this.type = type;\n    this.indent = indent;\n    this.prev = prev;\n  }\n\n  function pushContext(state, stream, type) {\n    state.context = new Context(type, stream.indentation() + indentUnit, state.context);\n    return type;\n  }\n\n  function popContext(state) {\n    state.context = state.context.prev;\n    return state.context.type;\n  }\n\n  function pass(type, stream, state) {\n    return states[state.context.type](type, stream, state);\n  }\n  function popAndPass(type, stream, state, n) {\n    for (var i = n || 1; i > 0; i--)\n      state.context = state.context.prev;\n    return pass(type, stream, state);\n  }\n\n  // Parser\n\n  function wordAsValue(stream) {\n    var word = stream.current().toLowerCase();\n    if (valueKeywords.hasOwnProperty(word))\n      override = \"atom\";\n    else if (colorKeywords.hasOwnProperty(word))\n      override = \"keyword\";\n    else\n      override = \"variable\";\n  }\n\n  var states = {};\n\n  states.top = function(type, stream, state) {\n    if (type == \"{\") {\n      return pushContext(state, stream, \"block\");\n    } else if (type == \"}\" && state.context.prev) {\n      return popContext(state);\n    } else if (/@(media|supports|(-moz-)?document)/.test(type)) {\n      return pushContext(state, stream, \"atBlock\");\n    } else if (/@(font-face|counter-style)/.test(type)) {\n      state.stateArg = type;\n      return \"restricted_atBlock_before\";\n    } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {\n      return \"keyframes\";\n    } else if (type && type.charAt(0) == \"@\") {\n      return pushContext(state, stream, \"at\");\n    } else if (type == \"hash\") {\n      override = \"builtin\";\n    } else if (type == \"word\") {\n      override = \"tag\";\n    } else if (type == \"variable-definition\") {\n      return \"maybeprop\";\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    } else if (type == \":\") {\n      return \"pseudo\";\n    } else if (allowNested && type == \"(\") {\n      return pushContext(state, stream, \"parens\");\n    }\n    return state.context.type;\n  };\n\n  states.block = function(type, stream, state) {\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (propertyKeywords.hasOwnProperty(word)) {\n        override = \"property\";\n        return \"maybeprop\";\n      } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n        override = \"string-2\";\n        return \"maybeprop\";\n      } else if (allowNested) {\n        override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n        return \"block\";\n      } else {\n        override += \" error\";\n        return \"maybeprop\";\n      }\n    } else if (type == \"meta\") {\n      return \"block\";\n    } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n      override = \"error\";\n      return \"block\";\n    } else {\n      return states.top(type, stream, state);\n    }\n  };\n\n  states.maybeprop = function(type, stream, state) {\n    if (type == \":\") return pushContext(state, stream, \"prop\");\n    return pass(type, stream, state);\n  };\n\n  states.prop = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n    if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n    if (type == \"hash\" && !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) {\n      override += \" error\";\n    } else if (type == \"word\") {\n      wordAsValue(stream);\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    }\n    return \"prop\";\n  };\n\n  states.propBlock = function(type, _stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n    return state.context.type;\n  };\n\n  states.parens = function(type, stream, state) {\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \")\") return popContext(state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n    if (type == \"word\") wordAsValue(stream);\n    return \"parens\";\n  };\n\n  states.pseudo = function(type, stream, state) {\n    if (type == \"word\") {\n      override = \"variable-3\";\n      return state.context.type;\n    }\n    return pass(type, stream, state);\n  };\n\n  states.atBlock = function(type, stream, state) {\n    if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n    if (type == \"}\") return popAndPass(type, stream, state);\n    if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n        override = \"keyword\";\n      else if (documentTypes.hasOwnProperty(word))\n        override = \"tag\";\n      else if (mediaTypes.hasOwnProperty(word))\n        override = \"attribute\";\n      else if (mediaFeatures.hasOwnProperty(word))\n        override = \"property\";\n      else if (propertyKeywords.hasOwnProperty(word))\n        override = \"property\";\n      else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n        override = \"string-2\";\n      else if (valueKeywords.hasOwnProperty(word))\n        override = \"atom\";\n      else\n        override = \"error\";\n    }\n    return state.context.type;\n  };\n\n  states.atBlock_parens = function(type, stream, state) {\n    if (type == \")\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n    return states.atBlock(type, stream, state);\n  };\n\n  states.restricted_atBlock_before = function(type, stream, state) {\n    if (type == \"{\")\n      return pushContext(state, stream, \"restricted_atBlock\");\n    if (type == \"word\" && state.stateArg == \"@counter-style\") {\n      override = \"variable\";\n      return \"restricted_atBlock_before\";\n    }\n    return pass(type, stream, state);\n  };\n\n  states.restricted_atBlock = function(type, stream, state) {\n    if (type == \"}\") {\n      state.stateArg = null;\n      return popContext(state);\n    }\n    if (type == \"word\") {\n      if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n          (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n        override = \"error\";\n      else\n        override = \"property\";\n      return \"maybeprop\";\n    }\n    return \"restricted_atBlock\";\n  };\n\n  states.keyframes = function(type, stream, state) {\n    if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n    if (type == \"{\") return pushContext(state, stream, \"top\");\n    return pass(type, stream, state);\n  };\n\n  states.at = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \"word\") override = \"tag\";\n    else if (type == \"hash\") override = \"builtin\";\n    return \"at\";\n  };\n\n  states.interpolation = function(type, stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n    if (type != \"variable\") override = \"error\";\n    return \"interpolation\";\n  };\n\n  return {\n    startState: function(base) {\n      return {tokenize: null,\n              state: \"top\",\n              stateArg: null,\n              context: new Context(\"top\", base || 0, null)};\n    },\n\n    token: function(stream, state) {\n      if (!state.tokenize && stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style && typeof style == \"object\") {\n        type = style[1];\n        style = style[0];\n      }\n      override = style;\n      state.state = states[state.state](type, stream, state);\n      return override;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context, ch = textAfter && textAfter.charAt(0);\n      var indent = cx.indent;\n      if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n      if (cx.prev &&\n          (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" || cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\") ||\n           ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n           ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\"))) {\n        indent = cx.indent - indentUnit;\n        cx = cx.prev;\n      }\n      return indent;\n    },\n\n    electricChars: \"}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    fold: \"brace\"\n  };\n});\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  }\n\n  var documentTypes_ = [\n    \"domain\", \"regexp\", \"url\", \"url-prefix\"\n  ], documentTypes = keySet(documentTypes_);\n\n  var mediaTypes_ = [\n    \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n    \"tty\", \"tv\", \"embossed\"\n  ], mediaTypes = keySet(mediaTypes_);\n\n  var mediaFeatures_ = [\n    \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n    \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n    \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n    \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n    \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n    \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n    \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n    \"min-resolution\", \"max-resolution\", \"scan\", \"grid\"\n  ], mediaFeatures = keySet(mediaFeatures_);\n\n  var propertyKeywords_ = [\n    \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n    \"alignment-baseline\", \"anchor-point\", \"animation\", \"animation-delay\",\n    \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n    \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n    \"animation-timing-function\", \"appearance\", \"azimuth\", \"backface-visibility\",\n    \"background\", \"background-attachment\", \"background-clip\", \"background-color\",\n    \"background-image\", \"background-origin\", \"background-position\",\n    \"background-repeat\", \"background-size\", \"baseline-shift\", \"binding\",\n    \"bleed\", \"bookmark-label\", \"bookmark-level\", \"bookmark-state\",\n    \"bookmark-target\", \"border\", \"border-bottom\", \"border-bottom-color\",\n    \"border-bottom-left-radius\", \"border-bottom-right-radius\",\n    \"border-bottom-style\", \"border-bottom-width\", \"border-collapse\",\n    \"border-color\", \"border-image\", \"border-image-outset\",\n    \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n    \"border-image-width\", \"border-left\", \"border-left-color\",\n    \"border-left-style\", \"border-left-width\", \"border-radius\", \"border-right\",\n    \"border-right-color\", \"border-right-style\", \"border-right-width\",\n    \"border-spacing\", \"border-style\", \"border-top\", \"border-top-color\",\n    \"border-top-left-radius\", \"border-top-right-radius\", \"border-top-style\",\n    \"border-top-width\", \"border-width\", \"bottom\", \"box-decoration-break\",\n    \"box-shadow\", \"box-sizing\", \"break-after\", \"break-before\", \"break-inside\",\n    \"caption-side\", \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\",\n    \"column-fill\", \"column-gap\", \"column-rule\", \"column-rule-color\",\n    \"column-rule-style\", \"column-rule-width\", \"column-span\", \"column-width\",\n    \"columns\", \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\",\n    \"cue-after\", \"cue-before\", \"cursor\", \"direction\", \"display\",\n    \"dominant-baseline\", \"drop-initial-after-adjust\",\n    \"drop-initial-after-align\", \"drop-initial-before-adjust\",\n    \"drop-initial-before-align\", \"drop-initial-size\", \"drop-initial-value\",\n    \"elevation\", \"empty-cells\", \"fit\", \"fit-position\", \"flex\", \"flex-basis\",\n    \"flex-direction\", \"flex-flow\", \"flex-grow\", \"flex-shrink\", \"flex-wrap\",\n    \"float\", \"float-offset\", \"flow-from\", \"flow-into\", \"font\", \"font-feature-settings\",\n    \"font-family\", \"font-kerning\", \"font-language-override\", \"font-size\", \"font-size-adjust\",\n    \"font-stretch\", \"font-style\", \"font-synthesis\", \"font-variant\",\n    \"font-variant-alternates\", \"font-variant-caps\", \"font-variant-east-asian\",\n    \"font-variant-ligatures\", \"font-variant-numeric\", \"font-variant-position\",\n    \"font-weight\", \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\",\n    \"grid-auto-position\", \"grid-auto-rows\", \"grid-column\", \"grid-column-end\",\n    \"grid-column-start\", \"grid-row\", \"grid-row-end\", \"grid-row-start\",\n    \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n    \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\",\n    \"icon\", \"image-orientation\", \"image-rendering\", \"image-resolution\",\n    \"inline-box-align\", \"justify-content\", \"left\", \"letter-spacing\",\n    \"line-break\", \"line-height\", \"line-stacking\", \"line-stacking-ruby\",\n    \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n    \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n    \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\",\n    \"marker-offset\", \"marks\", \"marquee-direction\", \"marquee-loop\",\n    \"marquee-play-count\", \"marquee-speed\", \"marquee-style\", \"max-height\",\n    \"max-width\", \"min-height\", \"min-width\", \"move-to\", \"nav-down\", \"nav-index\",\n    \"nav-left\", \"nav-right\", \"nav-up\", \"object-fit\", \"object-position\",\n    \"opacity\", \"order\", \"orphans\", \"outline\",\n    \"outline-color\", \"outline-offset\", \"outline-style\", \"outline-width\",\n    \"overflow\", \"overflow-style\", \"overflow-wrap\", \"overflow-x\", \"overflow-y\",\n    \"padding\", \"padding-bottom\", \"padding-left\", \"padding-right\", \"padding-top\",\n    \"page\", \"page-break-after\", \"page-break-before\", \"page-break-inside\",\n    \"page-policy\", \"pause\", \"pause-after\", \"pause-before\", \"perspective\",\n    \"perspective-origin\", \"pitch\", \"pitch-range\", \"play-during\", \"position\",\n    \"presentation-level\", \"punctuation-trim\", \"quotes\", \"region-break-after\",\n    \"region-break-before\", \"region-break-inside\", \"region-fragment\",\n    \"rendering-intent\", \"resize\", \"rest\", \"rest-after\", \"rest-before\", \"richness\",\n    \"right\", \"rotation\", \"rotation-point\", \"ruby-align\", \"ruby-overhang\",\n    \"ruby-position\", \"ruby-span\", \"shape-image-threshold\", \"shape-inside\", \"shape-margin\",\n    \"shape-outside\", \"size\", \"speak\", \"speak-as\", \"speak-header\",\n    \"speak-numeral\", \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\",\n    \"tab-size\", \"table-layout\", \"target\", \"target-name\", \"target-new\",\n    \"target-position\", \"text-align\", \"text-align-last\", \"text-decoration\",\n    \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n    \"text-decoration-style\", \"text-emphasis\", \"text-emphasis-color\",\n    \"text-emphasis-position\", \"text-emphasis-style\", \"text-height\",\n    \"text-indent\", \"text-justify\", \"text-outline\", \"text-overflow\", \"text-shadow\",\n    \"text-size-adjust\", \"text-space-collapse\", \"text-transform\", \"text-underline-position\",\n    \"text-wrap\", \"top\", \"transform\", \"transform-origin\", \"transform-style\",\n    \"transition\", \"transition-delay\", \"transition-duration\",\n    \"transition-property\", \"transition-timing-function\", \"unicode-bidi\",\n    \"vertical-align\", \"visibility\", \"voice-balance\", \"voice-duration\",\n    \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\", \"voice-stress\",\n    \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\", \"word-break\",\n    \"word-spacing\", \"word-wrap\", \"z-index\",\n    // SVG-specific\n    \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n    \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n    \"color-interpolation\", \"color-interpolation-filters\",\n    \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n    \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"shape-rendering\", \"stroke\",\n    \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n    \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n    \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n    \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\"\n  ], propertyKeywords = keySet(propertyKeywords_);\n\n  var nonStandardPropertyKeywords_ = [\n    \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n    \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n    \"scrollbar-3d-light-color\", \"scrollbar-track-color\", \"shape-inside\",\n    \"searchfield-cancel-button\", \"searchfield-decoration\", \"searchfield-results-button\",\n    \"searchfield-results-decoration\", \"zoom\"\n  ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n  var fontProperties_ = [\n    \"font-family\", \"src\", \"unicode-range\", \"font-variant\", \"font-feature-settings\",\n    \"font-stretch\", \"font-weight\", \"font-style\"\n  ], fontProperties = keySet(fontProperties_);\n\n  var counterDescriptors_ = [\n    \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n    \"speak-as\", \"suffix\", \"symbols\", \"system\"\n  ], counterDescriptors = keySet(counterDescriptors_);\n\n  var colorKeywords_ = [\n    \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n    \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n    \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n    \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n    \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n    \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n    \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n    \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n    \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n    \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n    \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n    \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n    \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n    \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n    \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n    \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n    \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n    \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n    \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n    \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n    \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n    \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n    \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n    \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n    \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n    \"whitesmoke\", \"yellow\", \"yellowgreen\"\n  ], colorKeywords = keySet(colorKeywords_);\n\n  var valueKeywords_ = [\n    \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n    \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n    \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n    \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"avoid\", \"avoid-column\", \"avoid-page\",\n    \"avoid-region\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n    \"bengali\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n    \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n    \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n    \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n    \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n    \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n    \"col-resize\", \"collapse\", \"column\", \"compact\", \"condensed\", \"contain\", \"content\",\n    \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n    \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"dashed\", \"decimal\",\n    \"decimal-leading-zero\", \"default\", \"default-button\", \"destination-atop\",\n    \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\",\n    \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n    \"dot-dash\", \"dot-dot-dash\",\n    \"dotted\", \"double\", \"down\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n    \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n    \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n    \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n    \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n    \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n    \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n    \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n    \"ethiopic-numeric\", \"ew-resize\", \"expanded\", \"extends\", \"extra-condensed\",\n    \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fixed\", \"flat\", \"flex\", \"footnotes\",\n    \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"graytext\", \"groove\",\n    \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hebrew\",\n    \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n    \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"icon\", \"ignore\",\n    \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n    \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n    \"inline-block\", \"inline-flex\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n    \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n    \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n    \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n    \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\",\n    \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n    \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n    \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n    \"lower-roman\", \"lowercase\", \"ltr\", \"malayalam\", \"match\", \"matrix\", \"matrix3d\",\n    \"media-controls-background\", \"media-current-time-display\",\n    \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n    \"media-return-to-realtime-button\", \"media-rewind-button\",\n    \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n    \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n    \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n    \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n    \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n    \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"myanmar\", \"n-resize\",\n    \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n    \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n    \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"open-quote\",\n    \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n    \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n    \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"plus-darker\", \"plus-lighter\",\n    \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n    \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n    \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n    \"relative\", \"repeat\", \"repeating-linear-gradient\",\n    \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n    \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n    \"rotateZ\", \"round\", \"row-resize\", \"rtl\", \"run-in\", \"running\",\n    \"s-resize\", \"sans-serif\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\",\n    \"scroll\", \"scrollbar\", \"se-resize\", \"searchfield\",\n    \"searchfield-cancel-button\", \"searchfield-decoration\",\n    \"searchfield-results-button\", \"searchfield-results-decoration\",\n    \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\", \"sidama\",\n    \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n    \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n    \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n    \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"solid\", \"somali\",\n    \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"spell-out\", \"square\",\n    \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"sub\",\n    \"subpixel-antialiased\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"table\",\n    \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n    \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n    \"tamil\",\n    \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n    \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n    \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n    \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n    \"trad-chinese-formal\", \"trad-chinese-informal\",\n    \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n    \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"up\",\n    \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n    \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n    \"var\", \"vertical\", \"vertical-text\", \"visible\", \"visibleFill\", \"visiblePainted\",\n    \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n    \"window\", \"windowframe\", \"windowtext\", \"words\", \"x-large\", \"x-small\", \"xor\",\n    \"xx-large\", \"xx-small\"\n  ], valueKeywords = keySet(valueKeywords_);\n\n  var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(propertyKeywords_)\n    .concat(nonStandardPropertyKeywords_).concat(colorKeywords_).concat(valueKeywords_);\n  CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return [\"comment\", \"comment\"];\n  }\n\n  function tokenSGMLComment(stream, state) {\n    if (stream.skipTo(\"-->\")) {\n      stream.match(\"-->\");\n      state.tokenize = null;\n    } else {\n      stream.skipToEnd();\n    }\n    return [\"comment\", \"comment\"];\n  }\n\n  CodeMirror.defineMIME(\"text/css\", {\n    documentTypes: documentTypes,\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    fontProperties: fontProperties,\n    counterDescriptors: counterDescriptors,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    tokenHooks: {\n      \"<\": function(stream, state) {\n        if (!stream.match(\"!--\")) return false;\n        state.tokenize = tokenSGMLComment;\n        return tokenSGMLComment(stream, state);\n      },\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false;\n        state.tokenize = tokenCComment;\n        return tokenCComment(stream, state);\n      }\n    },\n    name: \"css\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-scss\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \":\": function(stream) {\n        if (stream.match(/\\s*\\{/))\n          return [null, \"{\"];\n        return false;\n      },\n      \"$\": function(stream) {\n        stream.match(/^[\\w-]+/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"#\": function(stream) {\n        if (!stream.eat(\"{\")) return false;\n        return [null, \"interpolation\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"scss\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-less\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \"@\": function(stream) {\n        if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/, false)) return false;\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"&\": function() {\n        return [\"atom\", \"atom\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"less\"\n  });\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: CSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"css.js\"></script>\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/css-hint.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">CSS</a>\n  </ul>\n</div>\n\n<article>\n<h2>CSS mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Some example CSS */\n\n@import url(\"something.css\");\n\nbody {\n  margin: 0;\n  padding: 3em 6em;\n  font-family: tahoma, arial, sans-serif;\n  color: #000;\n}\n\n#navigation a {\n  font-weight: bold;\n  text-decoration: none !important;\n}\n\nh1 {\n  font-size: 2.5em;\n}\n\nh2 {\n  font-size: 1.7em;\n}\n\nh1:before, h2:before {\n  content: \"::\";\n}\n\ncode {\n  font-family: courier, monospace;\n  font-size: 80%;\n  color: #418A8A;\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/css</code>, <code>text/x-scss</code> (<a href=\"scss.html\">demo</a>), <code>text/x-less</code> (<a href=\"less.html\">demo</a>).</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#css_*\">normal</a>,  <a href=\"../../test/index.html#verbose,css_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/less.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: LESS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"css.js\"></script>\n<style>.CodeMirror {border: 1px solid #ddd; line-height: 1.2;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">LESS</a>\n  </ul>\n</div>\n\n<article>\n<h2>LESS mode</h2>\n<form><textarea id=\"code\" name=\"code\">@media screen and (device-aspect-ratio: 16/9) { … }\n@media screen and (device-aspect-ratio: 1280/720) { … }\n@media screen and (device-aspect-ratio: 2560/1440) { … }\n\nhtml:lang(fr-be)\n\ntr:nth-child(2n+1) /* represents every odd row of an HTML table */\n\nimg:nth-of-type(2n+1) { float: right; }\nimg:nth-of-type(2n) { float: left; }\n\nbody > h2:not(:first-of-type):not(:last-of-type)\n\nhtml|*:not(:link):not(:visited)\n*|*:not(:hover)\np::first-line { text-transform: uppercase }\n\n@namespace foo url(http://www.example.com);\nfoo|h1 { color: blue }  /* first rule */\n\nspan[hello=\"Ocean\"][goodbye=\"Land\"]\n\nE[foo]{\n  padding:65px;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n  padding: 0;\n  border: 0;\n}\n.btn {\n  // reset here as of 2.0.3 due to Recess property order\n  border-color: #ccc;\n  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);\n}\nfieldset span button, fieldset span input[type=\"file\"] {\n  font-size:12px;\n\tfont-family:Arial, Helvetica, sans-serif;\n}\n\n.rounded-corners (@radius: 5px) {\n  border-radius: @radius;\n  -webkit-border-radius: @radius;\n  -moz-border-radius: @radius;\n}\n\n@import url(\"something.css\");\n\n@light-blue:   hsl(190, 50%, 65%);\n\n#menu {\n  position: absolute;\n  width: 100%;\n  z-index: 3;\n  clear: both;\n  display: block;\n  background-color: @blue;\n  height: 42px;\n  border-top: 2px solid lighten(@alpha-blue, 20%);\n  border-bottom: 2px solid darken(@alpha-blue, 25%);\n  .box-shadow(0, 1px, 8px, 0.6);\n  -moz-box-shadow: 0 0 0 #000; // Because firefox sucks.\n\n  &.docked {\n    background-color: hsla(210, 60%, 40%, 0.4);\n  }\n  &:hover {\n    background-color: @blue;\n  }\n\n  #dropdown {\n    margin: 0 0 0 117px;\n    padding: 0;\n    padding-top: 5px;\n    display: none;\n    width: 190px;\n    border-top: 2px solid @medium;\n    color: @highlight;\n    border: 2px solid darken(@medium, 25%);\n    border-left-color: darken(@medium, 15%);\n    border-right-color: darken(@medium, 15%);\n    border-top-width: 0;\n    background-color: darken(@medium, 10%);\n    ul {\n      padding: 0px;  \n    }\n    li {\n      font-size: 14px;\n      display: block;\n      text-align: left;\n      padding: 0;\n      border: 0;\n      a {\n        display: block;\n        padding: 0px 15px;  \n        text-decoration: none;\n        color: white;  \n        &:hover {\n          background-color: darken(@medium, 15%);\n          text-decoration: none;\n        }\n      }\n    }\n    .border-radius(5px, bottom);\n    .box-shadow(0, 6px, 8px, 0.5);\n  }\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers : true,\n        matchBrackets : true,\n        mode: \"text/x-less\"\n      });\n    </script>\n\n    <p>The LESS mode is a sub-mode of the <a href=\"index.html\">CSS mode</a> (defined in <code>css.js</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#less_*\">normal</a>,  <a href=\"../../test/index.html#verbose,less_*\">verbose</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/less_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  \"use strict\";\n\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"text/x-less\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), \"less\"); }\n\n  MT(\"variable\",\n     \"[variable-2 @base]: [atom #f04615];\",\n     \"[qualifier .class] {\",\n     \"  [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]\",\n     \"  [property color]: [variable saturate]([variable-2 @base], [number 5%]);\",\n     \"}\");\n\n  MT(\"amp\",\n     \"[qualifier .child], [qualifier .sibling] {\",\n     \"  [qualifier .parent] [atom &] {\",\n     \"    [property color]: [keyword black];\",\n     \"  }\",\n     \"  [atom &] + [atom &] {\",\n     \"    [property color]: [keyword red];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"mixin\",\n     \"[qualifier .mixin] ([variable dark]; [variable-2 @color]) {\",\n     \"  [property color]: [variable darken]([variable-2 @color], [number 10%]);\",\n     \"}\",\n     \"[qualifier .mixin] ([variable light]; [variable-2 @color]) {\",\n     \"  [property color]: [variable lighten]([variable-2 @color], [number 10%]);\",\n     \"}\",\n     \"[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {\",\n     \"  [property display]: [atom block];\",\n     \"}\",\n     \"[variable-2 @switch]: [variable light];\",\n     \"[qualifier .class] {\",\n     \"  [qualifier .mixin]([variable-2 @switch]; [atom #888]);\",\n     \"}\");\n\n  MT(\"nest\",\n     \"[qualifier .one] {\",\n     \"  [def @media] ([property width]: [number 400px]) {\",\n     \"    [property font-size]: [number 1.2em];\",\n     \"    [def @media] [attribute print] [keyword and] [property color] {\",\n     \"      [property color]: [keyword blue];\",\n     \"    }\",\n     \"  }\",\n     \"}\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/scss.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SCSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"css.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SCSS</a>\n  </ul>\n</div>\n\n<article>\n<h2>SCSS mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Some example SCSS */\n\n@import \"compass/css3\";\n$variable: #333;\n\n$blue: #3bbfce;\n$margin: 16px;\n\n.content-navigation {\n  #nested {\n    background-color: black;\n  }\n  border-color: $blue;\n  color:\n    darken($blue, 9%);\n}\n\n.border {\n  padding: $margin / 2;\n  margin: $margin / 2;\n  border-color: $blue;\n}\n\n@mixin table-base {\n  th {\n    text-align: center;\n    font-weight: bold;\n  }\n  td, th {padding: 2px}\n}\n\ntable.hl {\n  margin: 2em 0;\n  td.ln {\n    text-align: right;\n  }\n}\n\nli {\n  font: {\n    family: serif;\n    weight: bold;\n    size: 1.2em;\n  }\n}\n\n@mixin left($dist) {\n  float: left;\n  margin-left: $dist;\n}\n\n#data {\n  @include left(10px);\n  @include table-base;\n}\n\n.source {\n  @include flow-into(target);\n  border: 10px solid green;\n  margin: 20px;\n  width: 200px; }\n\n.new-container {\n  @include flow-from(target);\n  border: 10px solid red;\n  margin: 20px;\n  width: 200px; }\n\nbody {\n  margin: 0;\n  padding: 3em 6em;\n  font-family: tahoma, arial, sans-serif;\n  color: #000;\n}\n\n@mixin yellow() {\n  background: yellow;\n}\n\n.big {\n  font-size: 14px;\n}\n\n.nested {\n  @include border-radius(3px);\n  @extend .big;\n  p {\n    background: whitesmoke;\n    a {\n      color: red;\n    }\n  }\n}\n\n#navigation a {\n  font-weight: bold;\n  text-decoration: none !important;\n}\n\nh1 {\n  font-size: 2.5em;\n}\n\nh2 {\n  font-size: 1.7em;\n}\n\nh1:before, h2:before {\n  content: \"::\";\n}\n\ncode {\n  font-family: courier, monospace;\n  font-size: 80%;\n  color: #418A8A;\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-scss\"\n      });\n    </script>\n\n    <p>The SCSS mode is a sub-mode of the <a href=\"index.html\">CSS mode</a> (defined in <code>css.js</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#scss_*\">normal</a>,  <a href=\"../../test/index.html#verbose,scss_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/scss_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"text/x-scss\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), \"scss\"); }\n\n  MT('url_with_quotation',\n    \"[tag foo] { [property background]:[atom url]([string test.jpg]) }\");\n\n  MT('url_with_double_quotes',\n    \"[tag foo] { [property background]:[atom url]([string \\\"test.jpg\\\"]) }\");\n\n  MT('url_with_single_quotes',\n    \"[tag foo] { [property background]:[atom url]([string \\'test.jpg\\']) }\");\n\n  MT('string',\n    \"[def @import] [string \\\"compass/css3\\\"]\");\n\n  MT('important_keyword',\n    \"[tag foo] { [property background]:[atom url]([string \\'test.jpg\\']) [keyword !important] }\");\n\n  MT('variable',\n    \"[variable-2 $blue]:[atom #333]\");\n\n  MT('variable_as_attribute',\n    \"[tag foo] { [property color]:[variable-2 $blue] }\");\n\n  MT('numbers',\n    \"[tag foo] { [property padding]:[number 10px] [number 10] [number 10em] [number 8in] }\");\n\n  MT('number_percentage',\n    \"[tag foo] { [property width]:[number 80%] }\");\n\n  MT('selector',\n    \"[builtin #hello][qualifier .world]{}\");\n\n  MT('singleline_comment',\n    \"[comment // this is a comment]\");\n\n  MT('multiline_comment',\n    \"[comment /*foobar*/]\");\n\n  MT('attribute_with_hyphen',\n    \"[tag foo] { [property font-size]:[number 10px] }\");\n\n  MT('string_after_attribute',\n    \"[tag foo] { [property content]:[string \\\"::\\\"] }\");\n\n  MT('directives',\n    \"[def @include] [qualifier .mixin]\");\n\n  MT('basic_structure',\n    \"[tag p] { [property background]:[keyword red]; }\");\n\n  MT('nested_structure',\n    \"[tag p] { [tag a] { [property color]:[keyword red]; } }\");\n\n  MT('mixin',\n    \"[def @mixin] [tag table-base] {}\");\n\n  MT('number_without_semicolon',\n    \"[tag p] {[property width]:[number 12]}\",\n    \"[tag a] {[property color]:[keyword red];}\");\n\n  MT('atom_in_nested_block',\n    \"[tag p] { [tag a] { [property color]:[atom #000]; } }\");\n\n  MT('interpolation_in_property',\n    \"[tag foo] { #{[variable-2 $hello]}:[number 2]; }\");\n\n  MT('interpolation_in_selector',\n    \"[tag foo]#{[variable-2 $hello]} { [property color]:[atom #000]; }\");\n\n  MT('interpolation_error',\n    \"[tag foo]#{[error foo]} { [property color]:[atom #000]; }\");\n\n  MT(\"divide_operator\",\n    \"[tag foo] { [property width]:[number 4] [operator /] [number 2] }\");\n\n  MT('nested_structure_with_id_selector',\n    \"[tag p] { [builtin #hello] { [property color]:[keyword red]; } }\");\n\n  MT('indent_mixin',\n     \"[def @mixin] [tag container] (\",\n     \"  [variable-2 $a]: [number 10],\",\n     \"  [variable-2 $b]: [number 10])\",\n     \"{}\");\n\n  MT('indent_nested',\n     \"[tag foo] {\",\n     \"  [tag bar] {\",\n     \"  }\",\n     \"}\");\n\n  MT('indent_parentheses',\n     \"[tag foo] {\",\n     \"  [property color]: [variable darken]([variable-2 $blue],\",\n     \"    [number 9%]);\",\n     \"}\");\n\n  MT('indent_vardef',\n     \"[variable-2 $name]:\",\n     \"  [string 'val'];\",\n     \"[tag tag] {\",\n     \"  [tag inner] {\",\n     \"    [property margin]: [number 3px];\",\n     \"  }\",\n     \"}\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/css/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"css\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Error, because \"foobarhello\" is neither a known type or property, but\n  // property was expected (after \"and\"), and it should be in parenthese.\n  MT(\"atMediaUnknownType\",\n     \"[def @media] [attribute screen] [keyword and] [error foobarhello] { }\");\n\n  // Soft error, because \"foobarhello\" is not a known property or type.\n  MT(\"atMediaUnknownProperty\",\n     \"[def @media] [attribute screen] [keyword and] ([error foobarhello]) { }\");\n\n  // Make sure nesting works with media queries\n  MT(\"atMediaMaxWidthNested\",\n     \"[def @media] [attribute screen] [keyword and] ([property max-width]: [number 25px]) { [tag foo] { } }\");\n\n  MT(\"tagSelector\",\n     \"[tag foo] { }\");\n\n  MT(\"classSelector\",\n     \"[qualifier .foo-bar_hello] { }\");\n\n  MT(\"idSelector\",\n     \"[builtin #foo] { [error #foo] }\");\n\n  MT(\"tagSelectorUnclosed\",\n     \"[tag foo] { [property margin]: [number 0] } [tag bar] { }\");\n\n  MT(\"tagStringNoQuotes\",\n     \"[tag foo] { [property font-family]: [variable hello] [variable world]; }\");\n\n  MT(\"tagStringDouble\",\n     \"[tag foo] { [property font-family]: [string \\\"hello world\\\"]; }\");\n\n  MT(\"tagStringSingle\",\n     \"[tag foo] { [property font-family]: [string 'hello world']; }\");\n\n  MT(\"tagColorKeyword\",\n     \"[tag foo] {\",\n     \"  [property color]: [keyword black];\",\n     \"  [property color]: [keyword navy];\",\n     \"  [property color]: [keyword yellow];\",\n     \"}\");\n\n  MT(\"tagColorHex3\",\n     \"[tag foo] { [property background]: [atom #fff]; }\");\n\n  MT(\"tagColorHex6\",\n     \"[tag foo] { [property background]: [atom #ffffff]; }\");\n\n  MT(\"tagColorHex4\",\n     \"[tag foo] { [property background]: [atom&error #ffff]; }\");\n\n  MT(\"tagColorHexInvalid\",\n     \"[tag foo] { [property background]: [atom&error #ffg]; }\");\n\n  MT(\"tagNegativeNumber\",\n     \"[tag foo] { [property margin]: [number -5px]; }\");\n\n  MT(\"tagPositiveNumber\",\n     \"[tag foo] { [property padding]: [number 5px]; }\");\n\n  MT(\"tagVendor\",\n     \"[tag foo] { [meta -foo-][property box-sizing]: [meta -foo-][atom border-box]; }\");\n\n  MT(\"tagBogusProperty\",\n     \"[tag foo] { [property&error barhelloworld]: [number 0]; }\");\n\n  MT(\"tagTwoProperties\",\n     \"[tag foo] { [property margin]: [number 0]; [property padding]: [number 0]; }\");\n\n  MT(\"tagTwoPropertiesURL\",\n     \"[tag foo] { [property background]: [atom url]([string //example.com/foo.png]); [property padding]: [number 0]; }\");\n\n  MT(\"commentSGML\",\n     \"[comment <!--comment-->]\");\n\n  MT(\"commentSGML2\",\n     \"[comment <!--comment]\",\n     \"[comment -->] [tag div] {}\");\n\n  MT(\"indent_tagSelector\",\n     \"[tag strong], [tag em] {\",\n     \"  [property background]: [atom rgba](\",\n     \"    [number 255], [number 255], [number 0], [number .2]\",\n     \"  );\",\n     \"}\");\n\n  MT(\"indent_atMedia\",\n     \"[def @media] {\",\n     \"  [tag foo] {\",\n     \"    [property color]:\",\n     \"      [keyword yellow];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"indent_comma\",\n     \"[tag foo] {\",\n     \"  [property font-family]: [variable verdana],\",\n     \"    [atom sans-serif];\",\n     \"}\");\n\n  MT(\"indent_parentheses\",\n     \"[tag foo]:[variable-3 before] {\",\n     \"  [property background]: [atom url](\",\n     \"[string     blahblah]\",\n     \"[string     etc]\",\n     \"[string   ]) [keyword !important];\",\n     \"}\");\n\n  MT(\"font_face\",\n     \"[def @font-face] {\",\n     \"  [property font-family]: [string 'myfont'];\",\n     \"  [error nonsense]: [string 'abc'];\",\n     \"  [property src]: [atom url]([string http://blah]),\",\n     \"    [atom url]([string http://foo]);\",\n     \"}\");\n\n  MT(\"empty_url\",\n     \"[def @import] [tag url]() [tag screen];\");\n\n  MT(\"parens\",\n     \"[qualifier .foo] {\",\n     \"  [property background-image]: [variable fade]([atom #000], [number 20%]);\",\n     \"  [property border-image]: [atom linear-gradient](\",\n     \"    [atom to] [atom bottom],\",\n     \"    [variable fade]([atom #000], [number 20%]) [number 0%],\",\n     \"    [variable fade]([atom #000], [number 20%]) [number 100%]\",\n     \"  );\",\n     \"}\");\n\n  MT(\"css_variable\",\n     \":[variable-3 root] {\",\n     \"  [variable-2 --main-color]: [atom #06c];\",\n     \"}\",\n     \"[tag h1][builtin #foo] {\",\n     \"  [property color]: [atom var]([variable-2 --main-color]);\",\n     \"}\");\n\n  MT(\"supports\",\n     \"[def @supports] ([keyword not] (([property text-align-last]: [atom justify]) [keyword or] ([meta -moz-][property text-align-last]: [atom justify])) {\",\n     \"  [property text-align-last]: [atom justify];\",\n     \"}\");\n\n   MT(\"document\",\n      \"[def @document] [tag url]([string http://blah]),\",\n      \"  [tag url-prefix]([string https://]),\",\n      \"  [tag domain]([string blah.com]),\",\n      \"  [tag regexp]([string \\\".*blah.+\\\"]) {\",\n      \"    [builtin #id] {\",\n      \"      [property background-color]: [keyword white];\",\n      \"    }\",\n      \"    [tag foo] {\",\n      \"      [property font-family]: [variable Verdana], [atom sans-serif];\",\n      \"    }\",\n      \"  }\");\n\n   MT(\"document_url\",\n      \"[def @document] [tag url]([string http://blah]) { [qualifier .class] { } }\");\n\n   MT(\"document_urlPrefix\",\n      \"[def @document] [tag url-prefix]([string https://]) { [builtin #id] { } }\");\n\n   MT(\"document_domain\",\n      \"[def @document] [tag domain]([string blah.com]) { [tag foo] { } }\");\n\n   MT(\"document_regexp\",\n      \"[def @document] [tag regexp]([string \\\".*blah.+\\\"]) { [builtin #id] { } }\");\n\n   MT(\"counter-style\",\n      \"[def @counter-style] [variable binary] {\",\n      \"  [property system]: [atom numeric];\",\n      \"  [property symbols]: [number 0] [number 1];\",\n      \"  [property suffix]: [string \\\".\\\"];\",\n      \"  [property range]: [atom infinite];\",\n      \"  [property speak-as]: [atom numeric];\",\n      \"}\");\n\n   MT(\"counter-style-additive-symbols\",\n      \"[def @counter-style] [variable simple-roman] {\",\n      \"  [property system]: [atom additive];\",\n      \"  [property additive-symbols]: [number 10] [variable X], [number 5] [variable V], [number 1] [variable I];\",\n      \"  [property range]: [number 1] [number 49];\",\n      \"}\");\n\n   MT(\"counter-style-use\",\n      \"[tag ol][qualifier .roman] { [property list-style]: [variable simple-roman]; }\");\n\n   MT(\"counter-style-symbols\",\n      \"[tag ol] { [property list-style]: [atom symbols]([atom cyclic] [string \\\"*\\\"] [string \\\"\\\\2020\\\"] [string \\\"\\\\2021\\\"] [string \\\"\\\\A7\\\"]); }\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/cypher/cypher.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// By the Neo4j Team and contributors.\n// https://github.com/neo4j-contrib/CodeMirror\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var wordRegexp = function(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  };\n\n  CodeMirror.defineMode(\"cypher\", function(config) {\n    var tokenBase = function(stream/*, state*/) {\n      var ch = stream.next(), curPunc = null;\n      if (ch === \"\\\"\" || ch === \"'\") {\n        stream.match(/.+?[\"']/);\n        return \"string\";\n      }\n      if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n        curPunc = ch;\n        return \"node\";\n      } else if (ch === \"/\" && stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (operatorChars.test(ch)) {\n        stream.eatWhile(operatorChars);\n        return null;\n      } else {\n        stream.eatWhile(/[_\\w\\d]/);\n        if (stream.eat(\":\")) {\n          stream.eatWhile(/[\\w\\d_\\-]/);\n          return \"atom\";\n        }\n        var word = stream.current();\n        if (funcs.test(word)) return \"builtin\";\n        if (preds.test(word)) return \"def\";\n        if (keywords.test(word)) return \"keyword\";\n        return \"variable\";\n      }\n    };\n    var pushContext = function(state, type, col) {\n      return state.context = {\n        prev: state.context,\n        indent: state.indent,\n        col: col,\n        type: type\n      };\n    };\n    var popContext = function(state) {\n      state.indent = state.context.indent;\n      return state.context = state.context.prev;\n    };\n    var indentUnit = config.indentUnit;\n    var curPunc;\n    var funcs = wordRegexp([\"abs\", \"acos\", \"allShortestPaths\", \"asin\", \"atan\", \"atan2\", \"avg\", \"ceil\", \"coalesce\", \"collect\", \"cos\", \"cot\", \"count\", \"degrees\", \"e\", \"endnode\", \"exp\", \"extract\", \"filter\", \"floor\", \"haversin\", \"head\", \"id\", \"keys\", \"labels\", \"last\", \"left\", \"length\", \"log\", \"log10\", \"lower\", \"ltrim\", \"max\", \"min\", \"node\", \"nodes\", \"percentileCont\", \"percentileDisc\", \"pi\", \"radians\", \"rand\", \"range\", \"reduce\", \"rel\", \"relationship\", \"relationships\", \"replace\", \"right\", \"round\", \"rtrim\", \"shortestPath\", \"sign\", \"sin\", \"split\", \"sqrt\", \"startnode\", \"stdev\", \"stdevp\", \"str\", \"substring\", \"sum\", \"tail\", \"tan\", \"timestamp\", \"toFloat\", \"toInt\", \"trim\", \"type\", \"upper\"]);\n    var preds = wordRegexp([\"all\", \"and\", \"any\", \"has\", \"in\", \"none\", \"not\", \"or\", \"single\", \"xor\"]);\n    var keywords = wordRegexp([\"as\", \"asc\", \"ascending\", \"assert\", \"by\", \"case\", \"commit\", \"constraint\", \"create\", \"csv\", \"cypher\", \"delete\", \"desc\", \"descending\", \"distinct\", \"drop\", \"else\", \"end\", \"explain\", \"false\", \"fieldterminator\", \"foreach\", \"from\", \"headers\", \"in\", \"index\", \"is\", \"limit\", \"load\", \"match\", \"merge\", \"null\", \"on\", \"optional\", \"order\", \"periodic\", \"profile\", \"remove\", \"return\", \"scan\", \"set\", \"skip\", \"start\", \"then\", \"true\", \"union\", \"unique\", \"unwind\", \"using\", \"when\", \"where\", \"with\"]);\n    var operatorChars = /[*+\\-<>=&|~%^]/;\n\n    return {\n      startState: function(/*base*/) {\n        return {\n          tokenize: tokenBase,\n          context: null,\n          indent: 0,\n          col: 0\n        };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) {\n          if (state.context && (state.context.align == null)) {\n            state.context.align = false;\n          }\n          state.indent = stream.indentation();\n        }\n        if (stream.eatSpace()) {\n          return null;\n        }\n        var style = state.tokenize(stream, state);\n        if (style !== \"comment\" && state.context && (state.context.align == null) && state.context.type !== \"pattern\") {\n          state.context.align = true;\n        }\n        if (curPunc === \"(\") {\n          pushContext(state, \")\", stream.column());\n        } else if (curPunc === \"[\") {\n          pushContext(state, \"]\", stream.column());\n        } else if (curPunc === \"{\") {\n          pushContext(state, \"}\", stream.column());\n        } else if (/[\\]\\}\\)]/.test(curPunc)) {\n          while (state.context && state.context.type === \"pattern\") {\n            popContext(state);\n          }\n          if (state.context && curPunc === state.context.type) {\n            popContext(state);\n          }\n        } else if (curPunc === \".\" && state.context && state.context.type === \"pattern\") {\n          popContext(state);\n        } else if (/atom|string|variable/.test(style) && state.context) {\n          if (/[\\}\\]]/.test(state.context.type)) {\n            pushContext(state, \"pattern\", stream.column());\n          } else if (state.context.type === \"pattern\" && !state.context.align) {\n            state.context.align = true;\n            state.context.col = stream.column();\n          }\n        }\n        return style;\n      },\n      indent: function(state, textAfter) {\n        var firstChar = textAfter && textAfter.charAt(0);\n        var context = state.context;\n        if (/[\\]\\}]/.test(firstChar)) {\n          while (context && context.type === \"pattern\") {\n            context = context.prev;\n          }\n        }\n        var closing = context && firstChar === context.type;\n        if (!context) return 0;\n        if (context.type === \"keywords\") return CodeMirror.commands.newlineAndIndent;\n        if (context.align) return context.col + (closing ? 0 : 1);\n        return context.indent + (closing ? 0 : indentUnit);\n      }\n    };\n  });\n\n  CodeMirror.modeExtensions[\"cypher\"] = {\n    autoFormatLineBreaks: function(text) {\n      var i, lines, reProcessedPortion;\n      var lines = text.split(\"\\n\");\n      var reProcessedPortion = /\\s+\\b(return|where|order by|match|with|skip|limit|create|delete|set)\\b\\s/g;\n      for (var i = 0; i < lines.length; i++)\n        lines[i] = lines[i].replace(reProcessedPortion, \" \\n$1 \").trim();\n      return lines.join(\"\\n\");\n    }\n  };\n\n  CodeMirror.defineMIME(\"application/x-cypher-query\", \"cypher\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/cypher/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Cypher Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\" />\n<link rel=\"stylesheet\" href=\"../../theme/neo.css\" />\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"cypher.js\"></script>\n<style>\n.CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n}\n        </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Cypher Mode for CodeMirror</a>\n  </ul>\n</div>\n\n<article>\n<h2>Cypher Mode for CodeMirror</h2>\n<form>\n            <textarea id=\"code\" name=\"code\">// Cypher Mode for CodeMirror, using the neo theme\nMATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)\nWHERE NOT (joe)-[:knows]-(friend_of_friend)\nRETURN friend_of_friend.name, COUNT(*)\nORDER BY COUNT(*) DESC , friend_of_friend.name\n</textarea>\n            </form>\n            <p><strong>MIME types defined:</strong> \n            <code><a href=\"?mime=application/x-cypher-query\">application/x-cypher-query</a></code>\n        </p>\n<script>\nwindow.onload = function() {\n  var mime = 'application/x-cypher-query';\n  // get mime type\n  if (window.location.href.indexOf('mime=') > -1) {\n    mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);\n  }\n  window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: mime,\n    indentWithTabs: true,\n    smartIndent: true,\n    lineNumbers: true,\n    matchBrackets : true,\n    autofocus: true,\n    theme: 'neo'\n  });\n};\n</script>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/d/d.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"d\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"+\")) {\n        state.tokenize = tokenComment;\n        return tokenNestedComment(stream, state);\n      }\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenNestedComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"+\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var blockKeywords = \"body catch class do else enum for foreach foreach_reverse if in interface mixin \" +\n                      \"out scope struct switch try union unittest version while with\";\n\n  CodeMirror.defineMIME(\"text/x-d\", {\n    name: \"d\",\n    keywords: words(\"abstract alias align asm assert auto break case cast cdouble cent cfloat const continue \" +\n                    \"debug default delegate delete deprecated export extern final finally function goto immutable \" +\n                    \"import inout invariant is lazy macro module new nothrow override package pragma private \" +\n                    \"protected public pure ref return shared short static super synchronized template this \" +\n                    \"throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters \" +\n                    blockKeywords),\n    blockKeywords: words(blockKeywords),\n    builtin: words(\"bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte \" +\n                   \"ucent uint ulong ushort wchar wstring void size_t sizediff_t\"),\n    atoms: words(\"exit failure success true false null\"),\n    hooks: {\n      \"@\": function(stream, _state) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/d/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: D mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"d.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">D</a>\n  </ul>\n</div>\n\n<article>\n<h2>D mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* D demo code // copied from phobos/sd/metastrings.d */\n// Written in the D programming language.\n\n/**\nTemplates with which to do compile-time manipulation of strings.\n\nMacros:\n WIKI = Phobos/StdMetastrings\n\nCopyright: Copyright Digital Mars 2007 - 2009.\nLicense:   <a href=\"http://www.boost.org/LICENSE_1_0.txt\">Boost License 1.0</a>.\nAuthors:   $(WEB digitalmars.com, Walter Bright),\n           Don Clugston\nSource:    $(PHOBOSSRC std/_metastrings.d)\n*/\n/*\n         Copyright Digital Mars 2007 - 2009.\nDistributed under the Boost Software License, Version 1.0.\n   (See accompanying file LICENSE_1_0.txt or copy at\n         http://www.boost.org/LICENSE_1_0.txt)\n */\nmodule std.metastrings;\n\n/**\nFormats constants into a string at compile time.  Analogous to $(XREF\nstring,format).\n\nParameters:\n\nA = tuple of constants, which can be strings, characters, or integral\n    values.\n\nFormats:\n *    The formats supported are %s for strings, and %%\n *    for the % character.\nExample:\n---\nimport std.metastrings;\nimport std.stdio;\n\nvoid main()\n{\n  string s = Format!(\"Arg %s = %s\", \"foo\", 27);\n  writefln(s); // \"Arg foo = 27\"\n}\n * ---\n */\n\ntemplate Format(A...)\n{\n    static if (A.length == 0)\n        enum Format = \"\";\n    else static if (is(typeof(A[0]) : const(char)[]))\n        enum Format = FormatString!(A[0], A[1..$]);\n    else\n        enum Format = toStringNow!(A[0]) ~ Format!(A[1..$]);\n}\n\ntemplate FormatString(const(char)[] F, A...)\n{\n    static if (F.length == 0)\n        enum FormatString = Format!(A);\n    else static if (F.length == 1)\n        enum FormatString = F[0] ~ Format!(A);\n    else static if (F[0..2] == \"%s\")\n        enum FormatString\n            = toStringNow!(A[0]) ~ FormatString!(F[2..$],A[1..$]);\n    else static if (F[0..2] == \"%%\")\n        enum FormatString = \"%\" ~ FormatString!(F[2..$],A);\n    else\n    {\n        static assert(F[0] != '%', \"unrecognized format %\" ~ F[1]);\n        enum FormatString = F[0] ~ FormatString!(F[1..$],A);\n    }\n}\n\nunittest\n{\n    auto s = Format!(\"hel%slo\", \"world\", -138, 'c', true);\n    assert(s == \"helworldlo-138ctrue\", \"[\" ~ s ~ \"]\");\n}\n\n/**\n * Convert constant argument to a string.\n */\n\ntemplate toStringNow(ulong v)\n{\n    static if (v < 10)\n        enum toStringNow = \"\" ~ cast(char)(v + '0');\n    else\n        enum toStringNow = toStringNow!(v / 10) ~ toStringNow!(v % 10);\n}\n\nunittest\n{\n    static assert(toStringNow!(1uL << 62) == \"4611686018427387904\");\n}\n\n/// ditto\ntemplate toStringNow(long v)\n{\n    static if (v < 0)\n        enum toStringNow = \"-\" ~ toStringNow!(cast(ulong) -v);\n    else\n        enum toStringNow = toStringNow!(cast(ulong) v);\n}\n\nunittest\n{\n    static assert(toStringNow!(0x100000000) == \"4294967296\");\n    static assert(toStringNow!(-138L) == \"-138\");\n}\n\n/// ditto\ntemplate toStringNow(uint U)\n{\n    enum toStringNow = toStringNow!(cast(ulong)U);\n}\n\n/// ditto\ntemplate toStringNow(int I)\n{\n    enum toStringNow = toStringNow!(cast(long)I);\n}\n\n/// ditto\ntemplate toStringNow(bool B)\n{\n    enum toStringNow = B ? \"true\" : \"false\";\n}\n\n/// ditto\ntemplate toStringNow(string S)\n{\n    enum toStringNow = S;\n}\n\n/// ditto\ntemplate toStringNow(char C)\n{\n    enum toStringNow = \"\" ~ C;\n}\n\n\n/********\n * Parse unsigned integer literal from the start of string s.\n * returns:\n *    .value = the integer literal as a string,\n *    .rest = the string following the integer literal\n * Otherwise:\n *    .value = null,\n *    .rest = s\n */\n\ntemplate parseUinteger(const(char)[] s)\n{\n    static if (s.length == 0)\n    {\n        enum value = \"\";\n        enum rest = \"\";\n    }\n    else static if (s[0] >= '0' && s[0] <= '9')\n    {\n        enum value = s[0] ~ parseUinteger!(s[1..$]).value;\n        enum rest = parseUinteger!(s[1..$]).rest;\n    }\n    else\n    {\n        enum value = \"\";\n        enum rest = s;\n    }\n}\n\n/********\nParse integer literal optionally preceded by $(D '-') from the start\nof string $(D s).\n\nReturns:\n   .value = the integer literal as a string,\n   .rest = the string following the integer literal\n\nOtherwise:\n   .value = null,\n   .rest = s\n*/\n\ntemplate parseInteger(const(char)[] s)\n{\n    static if (s.length == 0)\n    {\n        enum value = \"\";\n        enum rest = \"\";\n    }\n    else static if (s[0] >= '0' && s[0] <= '9')\n    {\n        enum value = s[0] ~ parseUinteger!(s[1..$]).value;\n        enum rest = parseUinteger!(s[1..$]).rest;\n    }\n    else static if (s.length >= 2 &&\n            s[0] == '-' && s[1] >= '0' && s[1] <= '9')\n    {\n        enum value = s[0..2] ~ parseUinteger!(s[2..$]).value;\n        enum rest = parseUinteger!(s[2..$]).rest;\n    }\n    else\n    {\n        enum value = \"\";\n        enum rest = s;\n    }\n}\n\nunittest\n{\n    assert(parseUinteger!(\"1234abc\").value == \"1234\");\n    assert(parseUinteger!(\"1234abc\").rest == \"abc\");\n    assert(parseInteger!(\"-1234abc\").value == \"-1234\");\n    assert(parseInteger!(\"-1234abc\").rest == \"abc\");\n}\n\n/**\nDeprecated aliases held for backward compatibility.\n*/\ndeprecated alias toStringNow ToString;\n/// Ditto\ndeprecated alias parseUinteger ParseUinteger;\n/// Ditto\ndeprecated alias parseUinteger ParseInteger;\n\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        indentUnit: 4,\n        mode: \"text/x-d\"\n      });\n    </script>\n\n    <p>Simple mode that handle D-Syntax (<a href=\"http://www.dlang.org\">DLang Homepage</a>).</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-d</code>\n    .</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dart/dart.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var keywords = (\"this super static final const abstract class extends external factory \" +\n    \"implements get native operator set typedef with enum throw rethrow \" +\n    \"assert break case continue default in return new deferred async await \" +\n    \"try catch finally do else for if switch while import library export \" +\n    \"part of show hide is\").split(\" \");\n  var blockKeywords = \"try catch finally do else for if switch while\".split(\" \");\n  var atoms = \"true false null\".split(\" \");\n  var builtins = \"void bool num int double dynamic var String\".split(\" \");\n\n  function set(words) {\n    var obj = {};\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"application/dart\", {\n    name: \"clike\",\n    keywords: set(keywords),\n    multiLineStrings: true,\n    blockKeywords: set(blockKeywords),\n    builtin: set(builtins),\n    atoms: set(atoms),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n  CodeMirror.registerHelper(\"hintWords\", \"application/dart\", keywords.concat(atoms).concat(builtins));\n\n  // This is needed to make loading through meta.js work.\n  CodeMirror.defineMode(\"dart\", function(conf) {\n    return CodeMirror.getMode(conf, \"application/dart\");\n  }, \"clike\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dart/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dart mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"dart.js\"></script>\n<style>.CodeMirror {border: 1px solid #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dart</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dart mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\nimport 'dart:math' show Random;\n\nvoid main() {\n  print(new Die(n: 12).roll());\n}\n\n// Define a class.\nclass Die {\n  // Define a class variable.\n  static Random shaker = new Random();\n\n  // Define instance variables.\n  int sides, value;\n\n  // Define a method using shorthand syntax.\n  String toString() => '$value';\n\n  // Define a constructor.\n  Die({int n: 6}) {\n    if (4 <= n && n <= 20) {\n      sides = n;\n    } else {\n      // Support for errors and exceptions.\n      throw new ArgumentError(/* */);\n    }\n  }\n\n  // Define an instance method.\n  int roll() {\n    return value = shaker.nextInt(sides) + 1;\n  }\n}\n</textarea>\n</form>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    mode: \"application/dart\"\n  });\n</script>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/diff/diff.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"diff\", function() {\n\n  var TOKEN_NAMES = {\n    '+': 'positive',\n    '-': 'negative',\n    '@': 'meta'\n  };\n\n  return {\n    token: function(stream) {\n      var tw_pos = stream.string.search(/[\\t ]+?$/);\n\n      if (!stream.sol() || tw_pos === 0) {\n        stream.skipToEnd();\n        return (\"error \" + (\n          TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');\n      }\n\n      var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();\n\n      if (tw_pos === -1) {\n        stream.skipToEnd();\n      } else {\n        stream.pos = tw_pos;\n      }\n\n      return token_name;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-diff\", \"diff\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/diff/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Diff mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"diff.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}\n      span.cm-meta {color: #a0b !important;}\n      span.cm-error { background-color: black; opacity: 0.4;}\n      span.cm-error.cm-string { background-color: red; }\n      span.cm-error.cm-tag { background-color: #2b2; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Diff</a>\n  </ul>\n</div>\n\n<article>\n<h2>Diff mode</h2>\n<form><textarea id=\"code\" name=\"code\">\ndiff --git a/index.html b/index.html\nindex c1d9156..7764744 100644\n--- a/index.html\n+++ b/index.html\n@@ -95,7 +95,8 @@ StringStream.prototype = {\n     <script>\n       var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n         lineNumbers: true,\n-        autoMatchBrackets: true\n+        autoMatchBrackets: true,\n+      onGutterClick: function(x){console.log(x);}\n       });\n     </script>\n   </body>\ndiff --git a/lib/codemirror.js b/lib/codemirror.js\nindex 04646a9..9a39cc7 100644\n--- a/lib/codemirror.js\n+++ b/lib/codemirror.js\n@@ -399,10 +399,16 @@ var CodeMirror = (function() {\n     }\n \n     function onMouseDown(e) {\n-      var start = posFromMouse(e), last = start;    \n+      var start = posFromMouse(e), last = start, target = e.target();\n       if (!start) return;\n       setCursor(start.line, start.ch, false);\n       if (e.button() != 1) return;\n+      if (target.parentNode == gutter) {    \n+        if (options.onGutterClick)\n+          options.onGutterClick(indexOf(gutter.childNodes, target) + showingFrom);\n+        return;\n+      }\n+\n       if (!focused) onFocus();\n \n       e.stop();\n@@ -808,7 +814,7 @@ var CodeMirror = (function() {\n       for (var i = showingFrom; i < showingTo; ++i) {\n         var marker = lines[i].gutterMarker;\n         if (marker) html.push('<div class=\"' + marker.style + '\">' + htmlEscape(marker.text) + '</div>');\n-        else html.push(\"<div>\" + (options.lineNumbers ? i + 1 : \"\\u00a0\") + \"</div>\");\n+        else html.push(\"<div>\" + (options.lineNumbers ? i + options.firstLineNumber : \"\\u00a0\") + \"</div>\");\n       }\n       gutter.style.display = \"none\"; // TODO test whether this actually helps\n       gutter.innerHTML = html.join(\"\");\n@@ -1371,10 +1377,8 @@ var CodeMirror = (function() {\n         if (option == \"parser\") setParser(value);\n         else if (option === \"lineNumbers\") setLineNumbers(value);\n         else if (option === \"gutter\") setGutter(value);\n-        else if (option === \"readOnly\") options.readOnly = value;\n-        else if (option === \"indentUnit\") {options.indentUnit = indentUnit = value; setParser(options.parser);}\n-        else if (/^(?:enterMode|tabMode|indentWithTabs|readOnly|autoMatchBrackets|undoDepth)$/.test(option)) options[option] = value;\n-        else throw new Error(\"Can't set option \" + option);\n+        else if (option === \"indentUnit\") {options.indentUnit = value; setParser(options.parser);}\n+        else options[option] = value;\n       },\n       cursorCoords: cursorCoords,\n       undo: operation(undo),\n@@ -1402,7 +1406,8 @@ var CodeMirror = (function() {\n       replaceRange: operation(replaceRange),\n \n       operation: function(f){return operation(f)();},\n-      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);}\n+      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);},\n+      getInputField: function(){return input;}\n     };\n     return instance;\n   }\n@@ -1420,6 +1425,7 @@ var CodeMirror = (function() {\n     readOnly: false,\n     onChange: null,\n     onCursorActivity: null,\n+    onGutterClick: null,\n     autoMatchBrackets: false,\n     workTime: 200,\n     workDelay: 300,\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-diff</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/django/django.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"django:inner\", function() {\n    var keywords = [\"block\", \"endblock\", \"for\", \"endfor\", \"in\", \"true\", \"false\",\n                    \"loop\", \"none\", \"self\", \"super\", \"if\", \"endif\", \"as\", \"not\", \"and\",\n                    \"else\", \"import\", \"with\", \"endwith\", \"without\", \"context\", \"ifequal\", \"endifequal\",\n                    \"ifnotequal\", \"endifnotequal\", \"extends\", \"include\", \"load\", \"length\", \"comment\",\n                    \"endcomment\", \"empty\"];\n    keywords = new RegExp(\"^((\" + keywords.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      stream.eatWhile(/[^\\{]/);\n      var ch = stream.next();\n      if (ch == \"{\") {\n        if (ch = stream.eat(/\\{|%|#/)) {\n          state.tokenize = inTag(ch);\n          return \"tag\";\n        }\n      }\n    }\n    function inTag (close) {\n      if (close == \"{\") {\n        close = \"}\";\n      }\n      return function (stream, state) {\n        var ch = stream.next();\n        if ((ch == close) && stream.eat(\"}\")) {\n          state.tokenize = tokenBase;\n          return \"tag\";\n        }\n        if (stream.match(keywords)) {\n          return \"keyword\";\n        }\n        return close == \"#\" ? \"comment\" : \"string\";\n      };\n    }\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"django\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var djangoInner = CodeMirror.getMode(config, \"django:inner\");\n    return CodeMirror.overlayMode(htmlBase, djangoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-django\", \"django\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/django/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Django template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"django.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Django</a>\n  </ul>\n</div>\n\n<article>\n<h2>Django template mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<!doctype html>\n<html>\n    <head>\n        <title>My Django web application</title>\n    </head>\n    <body>\n        <h1>\n            {{ page.title }}\n        </h1>\n        <ul class=\"my-list\">\n            {% for item in items %}\n                <li>{% item.name %}</li>\n            {% empty %}\n                <li>You have no items in your list.</li>\n            {% endfor %}\n        </ul>\n    </body>\n</html>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"django\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for HTML with embedded Django template markup.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-django</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dockerfile/dockerfile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  // Collect all Dockerfile directives\n  var instructions = [\"from\", \"maintainer\", \"run\", \"cmd\", \"expose\", \"env\",\n                      \"add\", \"copy\", \"entrypoint\", \"volume\", \"user\",\n                      \"workdir\", \"onbuild\"],\n      instructionRegex = \"(\" + instructions.join('|') + \")\",\n      instructionOnlyLine = new RegExp(instructionRegex + \"\\\\s*$\", \"i\"),\n      instructionWithArguments = new RegExp(instructionRegex + \"(\\\\s+)\", \"i\");\n\n  CodeMirror.defineSimpleMode(\"dockerfile\", {\n    start: [\n      // Block comment: This is a line starting with a comment\n      {\n        regex: /#.*$/,\n        token: \"comment\"\n      },\n      // Highlight an instruction without any arguments (for convenience)\n      {\n        regex: instructionOnlyLine,\n        token: \"variable-2\"\n      },\n      // Highlight an instruction followed by arguments\n      {\n        regex: instructionWithArguments,\n        token: [\"variable-2\", null],\n        next: \"arguments\"\n      },\n      {\n        regex: /./,\n        token: null\n      }\n    ],\n    arguments: [\n      {\n        // Line comment without instruction arguments is an error\n        regex: /#.*$/,\n        token: \"error\",\n        next: \"start\"\n      },\n      {\n        regex: /[^#]+\\\\$/,\n        token: null\n      },\n      {\n        // Match everything except for the inline comment\n        regex: /[^#]+/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        regex: /$/,\n        token: null,\n        next: \"start\"\n      },\n      // Fail safe return to start\n      {\n        token: null,\n        next: \"start\"\n      }\n    ]\n  });\n\n  CodeMirror.defineMIME(\"text/x-dockerfile\", \"dockerfile\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dockerfile/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dockerfile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/simple.js\"></script>\n<script src=\"dockerfile.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dockerfile</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dockerfile mode</h2>\n<form><textarea id=\"code\" name=\"code\"># Install Ghost blogging platform and run development environment\n#\n# VERSION 1.0.0\n\nFROM ubuntu:12.10\nMAINTAINER Amer Grgic \"amer@livebyt.es\"\nWORKDIR /data/ghost\n\n# Install dependencies for nginx installation\nRUN apt-get update\nRUN apt-get install -y python g++ make software-properties-common --force-yes\nRUN add-apt-repository ppa:chris-lea/node.js\nRUN apt-get update\n# Install unzip\nRUN apt-get install -y unzip\n# Install curl\nRUN apt-get install -y curl\n# Install nodejs & npm\nRUN apt-get install -y rlwrap\nRUN apt-get install -y nodejs \n# Download Ghost v0.4.1\nRUN curl -L https://ghost.org/zip/ghost-latest.zip -o /tmp/ghost.zip\n# Unzip Ghost zip to /data/ghost\nRUN unzip -uo /tmp/ghost.zip -d /data/ghost\n# Add custom config js to /data/ghost\nADD ./config.example.js /data/ghost/config.js\n# Install Ghost with NPM\nRUN cd /data/ghost/ && npm install --production\n# Expose port 2368\nEXPOSE 2368\n# Run Ghost\nCMD [\"npm\",\"start\"]\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"dockerfile\"\n      });\n    </script>\n\n    <p>Dockerfile syntax highlighting for CodeMirror. Depends on\n    the <a href=\"../../demo/simplemode.html\">simplemode</a> addon.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-dockerfile</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dtd/dtd.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n  DTD mode\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"dtd\", function(config) {\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch == \"<\" && stream.eat(\"!\") ) {\n      if (stream.eatWhile(/[\\-]/)) {\n        state.tokenize = tokenSGMLComment;\n        return tokenSGMLComment(stream, state);\n      } else if (stream.eatWhile(/[\\w]/)) return ret(\"keyword\", \"doindent\");\n    } else if (ch == \"<\" && stream.eat(\"?\")) { //xml declaration\n      state.tokenize = inBlock(\"meta\", \"?>\");\n      return ret(\"meta\", ch);\n    } else if (ch == \"#\" && stream.eatWhile(/[\\w]/)) return ret(\"atom\", \"tag\");\n    else if (ch == \"|\") return ret(\"keyword\", \"seperator\");\n    else if (ch.match(/[\\(\\)\\[\\]\\-\\.,\\+\\?>]/)) return ret(null, ch);//if(ch === \">\") return ret(null, \"endtag\"); else\n    else if (ch.match(/[\\[\\]]/)) return ret(\"rule\", ch);\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (stream.eatWhile(/[a-zA-Z\\?\\+\\d]/)) {\n      var sc = stream.current();\n      if( sc.substr(sc.length-1,sc.length).match(/\\?|\\+/) !== null )stream.backUp(1);\n      return ret(\"tag\", \"tag\");\n    } else if (ch == \"%\" || ch == \"*\" ) return ret(\"number\", \"number\");\n    else {\n      stream.eatWhile(/[\\w\\\\\\-_%.{,]/);\n      return ret(null, null);\n    }\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return ret(\"string\", \"tag\");\n    };\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (stream.current() == \"[\" || type === \"doindent\" || type == \"[\") state.stack.push(\"rule\");\n      else if (type === \"endtag\") state.stack[state.stack.length-1] = \"endtag\";\n      else if (stream.current() == \"]\" || type == \"]\" || (type == \">\" && context == \"rule\")) state.stack.pop();\n      else if (type == \"[\") state.stack.push(\"[\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n\n      if( textAfter.match(/\\]\\s+|\\]/) )n=n-1;\n      else if(textAfter.substr(textAfter.length-1, textAfter.length) === \">\"){\n        if(textAfter.substr(0,1) === \"<\")n;\n        else if( type == \"doindent\" && textAfter.length > 1 )n;\n        else if( type == \"doindent\")n--;\n        else if( type == \">\" && textAfter.length > 1)n;\n        else if( type == \"tag\" && textAfter !== \">\")n;\n        else if( type == \"tag\" && state.stack[state.stack.length-1] == \"rule\")n--;\n        else if( type == \"tag\")n++;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\" && type === \">\")n--;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\")n;\n        else if( textAfter.substr(0,1) !== \"<\" && textAfter.substr(0,1) === \">\" )n=n-1;\n        else if( textAfter === \">\")n;\n        else n=n-1;\n        //over rule them all\n        if(type == null || type == \"]\")n--;\n      }\n\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"]>\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/xml-dtd\", \"dtd\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dtd/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: DTD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"dtd.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">DTD</a>\n  </ul>\n</div>\n\n<article>\n<h2>DTD mode</h2>\n<form><textarea id=\"code\" name=\"code\"><?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!ATTLIST title\n  xmlns\tCDATA\t#FIXED\t\"http://docbook.org/ns/docbook\"\n  role\tCDATA\t#IMPLIED\n  %db.common.attributes;\n  %db.common.linking.attributes;\n>\n\n<!--\n  Try: http://docbook.org/xml/5.0/dtd/docbook.dtd\n-->\n\n<!DOCTYPE xsl:stylesheet\n  [\n    <!ENTITY nbsp   \"&amp;#160;\">\n    <!ENTITY copy   \"&amp;#169;\">\n    <!ENTITY reg    \"&amp;#174;\">\n    <!ENTITY trade  \"&amp;#8482;\">\n    <!ENTITY mdash  \"&amp;#8212;\">\n    <!ENTITY ldquo  \"&amp;#8220;\">\n    <!ENTITY rdquo  \"&amp;#8221;\">\n    <!ENTITY pound  \"&amp;#163;\">\n    <!ENTITY yen    \"&amp;#165;\">\n    <!ENTITY euro   \"&amp;#8364;\">\n    <!ENTITY mathml \"http://www.w3.org/1998/Math/MathML\">\n  ]\n>\n\n<!ELEMENT title (#PCDATA|inlinemediaobject|remark|superscript|subscript|xref|link|olink|anchor|biblioref|alt|annotation|indexterm|abbrev|acronym|date|emphasis|footnote|footnoteref|foreignphrase|phrase|quote|wordasword|firstterm|glossterm|coref|trademark|productnumber|productname|database|application|hardware|citation|citerefentry|citetitle|citebiblioid|author|person|personname|org|orgname|editor|jobtitle|replaceable|package|parameter|termdef|nonterminal|systemitem|option|optional|property|inlineequation|tag|markup|token|symbol|literal|code|constant|email|uri|guiicon|guibutton|guimenuitem|guimenu|guisubmenu|guilabel|menuchoice|mousebutton|keycombo|keycap|keycode|keysym|shortcut|accel|prompt|envar|filename|command|computeroutput|userinput|function|varname|returnvalue|type|classname|exceptionname|interfacename|methodname|modifier|initializer|ooclass|ooexception|oointerface|errorcode|errortext|errorname|errortype)*>\n\n<!ENTITY % db.common.attributes \"\n  xml:id\tID\t#IMPLIED\n  version\tCDATA\t#IMPLIED\n  xml:lang\tCDATA\t#IMPLIED\n  xml:base\tCDATA\t#IMPLIED\n  remap\tCDATA\t#IMPLIED\n  xreflabel\tCDATA\t#IMPLIED\n  revisionflag\t(changed|added|deleted|off)\t#IMPLIED\n  dir\t(ltr|rtl|lro|rlo)\t#IMPLIED\n  arch\tCDATA\t#IMPLIED\n  audience\tCDATA\t#IMPLIED\n  condition\tCDATA\t#IMPLIED\n  conformance\tCDATA\t#IMPLIED\n  os\tCDATA\t#IMPLIED\n  revision\tCDATA\t#IMPLIED\n  security\tCDATA\t#IMPLIED\n  userlevel\tCDATA\t#IMPLIED\n  vendor\tCDATA\t#IMPLIED\n  wordsize\tCDATA\t#IMPLIED\n  annotations\tCDATA\t#IMPLIED\n\n\"></textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"dtd\", alignCDATA: true},\n        lineNumbers: true,\n        lineWrapping: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/xml-dtd</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dylan/dylan.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"dylan\", function(_config) {\n  // Words\n  var words = {\n    // Words that introduce unnamed definitions like \"define interface\"\n    unnamedDefinition: [\"interface\"],\n\n    // Words that introduce simple named definitions like \"define library\"\n    namedDefinition: [\"module\", \"library\", \"macro\",\n                      \"C-struct\", \"C-union\",\n                      \"C-function\", \"C-callable-wrapper\"\n                     ],\n\n    // Words that introduce type definitions like \"define class\".\n    // These are also parameterized like \"define method\" and are\n    // appended to otherParameterizedDefinitionWords\n    typeParameterizedDefinition: [\"class\", \"C-subtype\", \"C-mapped-subtype\"],\n\n    // Words that introduce trickier definitions like \"define method\".\n    // These require special definitions to be added to startExpressions\n    otherParameterizedDefinition: [\"method\", \"function\",\n                                   \"C-variable\", \"C-address\"\n                                  ],\n\n    // Words that introduce module constant definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    constantSimpleDefinition: [\"constant\"],\n\n    // Words that introduce module variable definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    variableSimpleDefinition: [\"variable\"],\n\n    // Other words that introduce simple definitions\n    // (without implicit bodies).\n    otherSimpleDefinition: [\"generic\", \"domain\",\n                            \"C-pointer-type\",\n                            \"table\"\n                           ],\n\n    // Words that begin statements with implicit bodies.\n    statement: [\"if\", \"block\", \"begin\", \"method\", \"case\",\n                \"for\", \"select\", \"when\", \"unless\", \"until\",\n                \"while\", \"iterate\", \"profiling\", \"dynamic-bind\"\n               ],\n\n    // Patterns that act as separators in compound statements.\n    // This may include any general pattern that must be indented\n    // specially.\n    separator: [\"finally\", \"exception\", \"cleanup\", \"else\",\n                \"elseif\", \"afterwards\"\n               ],\n\n    // Keywords that do not require special indentation handling,\n    // but which should be highlighted\n    other: [\"above\", \"below\", \"by\", \"from\", \"handler\", \"in\",\n            \"instance\", \"let\", \"local\", \"otherwise\", \"slot\",\n            \"subclass\", \"then\", \"to\", \"keyed-by\", \"virtual\"\n           ],\n\n    // Condition signaling function calls\n    signalingCalls: [\"signal\", \"error\", \"cerror\",\n                     \"break\", \"check-type\", \"abort\"\n                    ]\n  };\n\n  words[\"otherDefinition\"] =\n    words[\"unnamedDefinition\"]\n    .concat(words[\"namedDefinition\"])\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"definition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherDefinition\"]);\n\n  words[\"parameterizedDefinition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"simpleDefinition\"] =\n    words[\"constantSimpleDefinition\"]\n    .concat(words[\"variableSimpleDefinition\"])\n    .concat(words[\"otherSimpleDefinition\"]);\n\n  words[\"keyword\"] =\n    words[\"statement\"]\n    .concat(words[\"separator\"])\n    .concat(words[\"other\"]);\n\n  // Patterns\n  var symbolPattern = \"[-_a-zA-Z?!*@<>$%]+\";\n  var symbol = new RegExp(\"^\" + symbolPattern);\n  var patterns = {\n    // Symbols with special syntax\n    symbolKeyword: symbolPattern + \":\",\n    symbolClass: \"<\" + symbolPattern + \">\",\n    symbolGlobal: \"\\\\*\" + symbolPattern + \"\\\\*\",\n    symbolConstant: \"\\\\$\" + symbolPattern\n  };\n  var patternStyles = {\n    symbolKeyword: \"atom\",\n    symbolClass: \"tag\",\n    symbolGlobal: \"variable-2\",\n    symbolConstant: \"variable-3\"\n  };\n\n  // Compile all patterns to regular expressions\n  for (var patternName in patterns)\n    if (patterns.hasOwnProperty(patternName))\n      patterns[patternName] = new RegExp(\"^\" + patterns[patternName]);\n\n  // Names beginning \"with-\" and \"without-\" are commonly\n  // used as statement macro\n  patterns[\"keyword\"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];\n\n  var styles = {};\n  styles[\"keyword\"] = \"keyword\";\n  styles[\"definition\"] = \"def\";\n  styles[\"simpleDefinition\"] = \"def\";\n  styles[\"signalingCalls\"] = \"builtin\";\n\n  // protected words lookup table\n  var wordLookup = {};\n  var styleLookup = {};\n\n  [\n    \"keyword\",\n    \"definition\",\n    \"simpleDefinition\",\n    \"signalingCalls\"\n  ].forEach(function(type) {\n    words[type].forEach(function(word) {\n      wordLookup[word] = type;\n      styleLookup[word] = styles[type];\n    });\n  });\n\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  var type, content;\n\n  function ret(_type, style, _content) {\n    type = _type;\n    content = _content;\n    return style;\n  }\n\n  function tokenBase(stream, state) {\n    // String\n    var ch = stream.peek();\n    if (ch == \"'\" || ch == '\"') {\n      stream.next();\n      return chain(stream, state, tokenString(ch, \"string\", \"string\"));\n    }\n    // Comment\n    else if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else {\n        stream.skipTo(\" \");\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // Decimal\n    else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:e[+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    }\n    // Hash\n    else if (ch == \"#\") {\n      stream.next();\n      // Symbol with string syntax\n      ch = stream.peek();\n      if (ch == '\"') {\n        stream.next();\n        return chain(stream, state, tokenString('\"', \"symbol\", \"string-2\"));\n      }\n      // Binary number\n      else if (ch == \"b\") {\n        stream.next();\n        stream.eatWhile(/[01]/);\n        return ret(\"number\", \"number\");\n      }\n      // Hex number\n      else if (ch == \"x\") {\n        stream.next();\n        stream.eatWhile(/[\\da-f]/i);\n        return ret(\"number\", \"number\");\n      }\n      // Octal number\n      else if (ch == \"o\") {\n        stream.next();\n        stream.eatWhile(/[0-7]/);\n        return ret(\"number\", \"number\");\n      }\n      // Hash symbol\n      else {\n        stream.eatWhile(/[-a-zA-Z]/);\n        return ret(\"hash\", \"keyword\");\n      }\n    } else if (stream.match(\"end\")) {\n      return ret(\"end\", \"keyword\");\n    }\n    for (var name in patterns) {\n      if (patterns.hasOwnProperty(name)) {\n        var pattern = patterns[name];\n        if ((pattern instanceof Array && pattern.some(function(p) {\n          return stream.match(p);\n        })) || stream.match(pattern))\n          return ret(name, patternStyles[name], stream.current());\n      }\n    }\n    if (stream.match(\"define\")) {\n      return ret(\"definition\", \"def\");\n    } else {\n      stream.eatWhile(/[\\w\\-]/);\n      // Keyword\n      if (wordLookup[stream.current()]) {\n        return ret(wordLookup[stream.current()], styleLookup[stream.current()], stream.current());\n      } else if (stream.current().match(symbol)) {\n        return ret(\"variable\", \"variable\");\n      } else {\n        stream.next();\n        return ret(\"other\", \"variable-2\");\n      }\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while ((ch = stream.next())) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote, type, style) {\n    return function(stream, state) {\n      var next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote) {\n          end = true;\n          break;\n        }\n      }\n      if (end)\n        state.tokenize = tokenBase;\n      return ret(type, style);\n    };\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        currentIndent: 0\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-dylan\", \"dylan\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/dylan/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dylan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"dylan.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dylan</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dylan mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nModule:       locators-internals\nSynopsis:     Abstract modeling of locations\nAuthor:       Andy Armstrong\nCopyright:    Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.\n              All rights reserved.\nLicense:      See License.txt in this distribution for details.\nWarranty:     Distributed WITHOUT WARRANTY OF ANY KIND\n\ndefine open generic locator-server\n    (locator :: <locator>) => (server :: false-or(<server-locator>));\ndefine open generic locator-host\n    (locator :: <locator>) => (host :: false-or(<string>));\ndefine open generic locator-volume\n    (locator :: <locator>) => (volume :: false-or(<string>));\ndefine open generic locator-directory\n    (locator :: <locator>) => (directory :: false-or(<directory-locator>));\ndefine open generic locator-relative?\n    (locator :: <locator>) => (relative? :: <boolean>);\ndefine open generic locator-path\n    (locator :: <locator>) => (path :: <sequence>);\ndefine open generic locator-base\n    (locator :: <locator>) => (base :: false-or(<string>));\ndefine open generic locator-extension\n    (locator :: <locator>) => (extension :: false-or(<string>));\n\n/// Locator classes\n\ndefine open abstract class <directory-locator> (<physical-locator>)\nend class <directory-locator>;\n\ndefine open abstract class <file-locator> (<physical-locator>)\nend class <file-locator>;\n\ndefine method as\n    (class == <directory-locator>, string :: <string>)\n => (locator :: <directory-locator>)\n  as(<native-directory-locator>, string)\nend method as;\n\ndefine method make\n    (class == <directory-locator>,\n     #key server :: false-or(<server-locator>) = #f,\n          path :: <sequence> = #[],\n          relative? :: <boolean> = #f,\n          name :: false-or(<string>) = #f)\n => (locator :: <directory-locator>)\n  make(<native-directory-locator>,\n       server:    server,\n       path:      path,\n       relative?: relative?,\n       name:      name)\nend method make;\n\ndefine method as\n    (class == <file-locator>, string :: <string>)\n => (locator :: <file-locator>)\n  as(<native-file-locator>, string)\nend method as;\n\ndefine method make\n    (class == <file-locator>,\n     #key directory :: false-or(<directory-locator>) = #f,\n          base :: false-or(<string>) = #f,\n          extension :: false-or(<string>) = #f,\n          name :: false-or(<string>) = #f)\n => (locator :: <file-locator>)\n  make(<native-file-locator>,\n       directory: directory,\n       base:      base,\n       extension: extension,\n       name:      name)\nend method make;\n\n/// Locator coercion\n\n//---*** andrewa: This caching scheme doesn't work yet, so disable it.\ndefine constant $cache-locators?        = #f;\ndefine constant $cache-locator-strings? = #f;\n\ndefine constant $locator-to-string-cache = make(<object-table>, weak: #\"key\");\ndefine constant $string-to-locator-cache = make(<string-table>, weak: #\"value\");\n\ndefine open generic locator-as-string\n    (class :: subclass(<string>), locator :: <locator>)\n => (string :: <string>);\n\ndefine open generic string-as-locator\n    (class :: subclass(<locator>), string :: <string>)\n => (locator :: <locator>);\n\ndefine sealed sideways method as\n    (class :: subclass(<string>), locator :: <locator>)\n => (string :: <string>)\n  let string = element($locator-to-string-cache, locator, default: #f);\n  if (string)\n    as(class, string)\n  else\n    let string = locator-as-string(class, locator);\n    if ($cache-locator-strings?)\n      element($locator-to-string-cache, locator) := string;\n    else\n      string\n    end\n  end\nend method as;\n\ndefine sealed sideways method as\n    (class :: subclass(<locator>), string :: <string>)\n => (locator :: <locator>)\n  let locator = element($string-to-locator-cache, string, default: #f);\n  if (instance?(locator, class))\n    locator\n  else\n    let locator = string-as-locator(class, string);\n    if ($cache-locators?)\n      element($string-to-locator-cache, string) := locator;\n    else\n      locator\n    end\n  end\nend method as;\n\n/// Locator conditions\n\ndefine class <locator-error> (<format-string-condition>, <error>)\nend class <locator-error>;\n\ndefine function locator-error\n    (format-string :: <string>, #rest format-arguments)\n  error(make(<locator-error>, \n             format-string:    format-string,\n             format-arguments: format-arguments))\nend function locator-error;\n\n/// Useful locator protocols\n\ndefine open generic locator-test\n    (locator :: <directory-locator>) => (test :: <function>);\n\ndefine method locator-test\n    (locator :: <directory-locator>) => (test :: <function>)\n  \\=\nend method locator-test;\n\ndefine open generic locator-might-have-links?\n    (locator :: <directory-locator>) => (links? :: <boolean>);\n\ndefine method locator-might-have-links?\n    (locator :: <directory-locator>) => (links? :: singleton(#f))\n  #f\nend method locator-might-have-links?;\n\ndefine method locator-relative?\n    (locator :: <file-locator>) => (relative? :: <boolean>)\n  let directory = locator.locator-directory;\n  ~directory | directory.locator-relative?\nend method locator-relative?;\n\ndefine method current-directory-locator?\n    (locator :: <directory-locator>) => (current-directory? :: <boolean>)\n  locator.locator-relative?\n    & locator.locator-path = #[#\"self\"]\nend method current-directory-locator?;\n\ndefine method locator-directory\n    (locator :: <directory-locator>) => (parent :: false-or(<directory-locator>))\n  let path = locator.locator-path;\n  unless (empty?(path))\n    make(object-class(locator),\n         server:    locator.locator-server,\n         path:      copy-sequence(path, end: path.size - 1),\n         relative?: locator.locator-relative?)\n  end\nend method locator-directory;\n\n/// Simplify locator\n\ndefine open generic simplify-locator\n    (locator :: <physical-locator>)\n => (simplified-locator :: <physical-locator>);\n\ndefine method simplify-locator\n    (locator :: <directory-locator>)\n => (simplified-locator :: <directory-locator>)\n  let path = locator.locator-path;\n  let relative? = locator.locator-relative?;\n  let resolve-parent? = ~locator.locator-might-have-links?;\n  let simplified-path\n    = simplify-path(path, \n                    resolve-parent?: resolve-parent?,\n                    relative?: relative?);\n  if (path ~= simplified-path)\n    make(object-class(locator),\n         server:    locator.locator-server,\n         path:      simplified-path,\n         relative?: locator.locator-relative?)\n  else\n    locator\n  end\nend method simplify-locator;\n\ndefine method simplify-locator\n    (locator :: <file-locator>) => (simplified-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let simplified-directory = directory & simplify-locator(directory);\n  if (directory ~= simplified-directory)\n    make(object-class(locator),\n         directory: simplified-directory,\n         base:      locator.locator-base,\n         extension: locator.locator-extension)\n  else\n    locator\n  end\nend method simplify-locator;\n\n/// Subdirectory locator\n\ndefine open generic subdirectory-locator\n    (locator :: <directory-locator>, #rest sub-path)\n => (subdirectory :: <directory-locator>);\n\ndefine method subdirectory-locator\n    (locator :: <directory-locator>, #rest sub-path)\n => (subdirectory :: <directory-locator>)\n  let old-path = locator.locator-path;\n  let new-path = concatenate-as(<simple-object-vector>, old-path, sub-path);\n  make(object-class(locator),\n       server:    locator.locator-server,\n       path:      new-path,\n       relative?: locator.locator-relative?)\nend method subdirectory-locator;\n\n/// Relative locator\n\ndefine open generic relative-locator\n    (locator :: <physical-locator>, from-locator :: <physical-locator>)\n => (relative-locator :: <physical-locator>);\n\ndefine method relative-locator\n    (locator :: <directory-locator>, from-locator :: <directory-locator>)\n => (relative-locator :: <directory-locator>)\n  let path = locator.locator-path;\n  let from-path = from-locator.locator-path;\n  case\n    ~locator.locator-relative? & from-locator.locator-relative? =>\n      locator-error\n        (\"Cannot find relative path of absolute locator %= from relative locator %=\",\n         locator, from-locator);\n    locator.locator-server ~= from-locator.locator-server =>\n      locator;\n    path = from-path =>\n      make(object-class(locator),\n           path: vector(#\"self\"),\n           relative?: #t);\n    otherwise =>\n      make(object-class(locator),\n           path: relative-path(path, from-path, test: locator.locator-test),\n           relative?: #t);\n  end\nend method relative-locator;\n\ndefine method relative-locator\n    (locator :: <file-locator>, from-directory :: <directory-locator>)\n => (relative-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let relative-directory = directory & relative-locator(directory, from-directory);\n  if (relative-directory ~= directory)\n    simplify-locator\n      (make(object-class(locator),\n            directory: relative-directory,\n            base:      locator.locator-base,\n            extension: locator.locator-extension))\n  else\n    locator\n  end\nend method relative-locator;\n\ndefine method relative-locator\n    (locator :: <physical-locator>, from-locator :: <file-locator>)\n => (relative-locator :: <physical-locator>)\n  let from-directory = from-locator.locator-directory;\n  case\n    from-directory =>\n      relative-locator(locator, from-directory);\n    ~locator.locator-relative? =>\n      locator-error\n        (\"Cannot find relative path of absolute locator %= from relative locator %=\",\n         locator, from-locator);\n    otherwise =>\n      locator;\n  end\nend method relative-locator;\n\n/// Merge locators\n\ndefine open generic merge-locators\n    (locator :: <physical-locator>, from-locator :: <physical-locator>)\n => (merged-locator :: <physical-locator>);\n\n/// Merge locators\n\ndefine method merge-locators\n    (locator :: <directory-locator>, from-locator :: <directory-locator>)\n => (merged-locator :: <directory-locator>)\n  if (locator.locator-relative?)\n    let path = concatenate(from-locator.locator-path, locator.locator-path);\n    simplify-locator\n      (make(object-class(locator),\n            server:    from-locator.locator-server,\n            path:      path,\n            relative?: from-locator.locator-relative?))\n  else\n    locator\n  end\nend method merge-locators;\n\ndefine method merge-locators\n    (locator :: <file-locator>, from-locator :: <directory-locator>)\n => (merged-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let merged-directory \n    = if (directory)\n        merge-locators(directory, from-locator)\n      else\n        simplify-locator(from-locator)\n      end;\n  if (merged-directory ~= directory)\n    make(object-class(locator),\n         directory: merged-directory,\n         base:      locator.locator-base,\n         extension: locator.locator-extension)\n  else\n    locator\n  end\nend method merge-locators;\n\ndefine method merge-locators\n    (locator :: <physical-locator>, from-locator :: <file-locator>)\n => (merged-locator :: <physical-locator>)\n  let from-directory = from-locator.locator-directory;\n  if (from-directory)\n    merge-locators(locator, from-directory)\n  else\n    locator\n  end\nend method merge-locators;\n\n/// Locator protocols\n\ndefine sideways method supports-open-locator?\n    (locator :: <file-locator>) => (openable? :: <boolean>)\n  ~locator.locator-relative?\nend method supports-open-locator?;\n\ndefine sideways method open-locator\n    (locator :: <file-locator>, #rest keywords, #key, #all-keys)\n => (stream :: <stream>)\n  apply(open-file-stream, locator, keywords)\nend method open-locator;\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-dylan\",\n        lineNumbers: true,\n        matchBrackets: true,\n        continueComments: \"Enter\",\n        extraKeys: {\"Ctrl-Q\": \"toggleComment\"},\n        tabMode: \"indent\",\n        indentUnit: 2\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-dylan</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ebnf/ebnf.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"ebnf\", function (config) {\n    var commentType = {slash: 0, parenthesis: 1};\n    var stateType = {comment: 0, _string: 1, characterClass: 2};\n    var bracesMode = null;\n\n    if (config.bracesMode)\n      bracesMode = CodeMirror.getMode(config, config.bracesMode);\n\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          commentType: null,\n          braced: 0,\n          lhs: true,\n          localState: null,\n          stack: [],\n          inDefinition: false\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(stateType._string);\n          } else if (stream.match(/^\\/\\*/)) { //comments starting with /*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.slash;\n          } else if (stream.match(/^\\(\\*/)) { //comments starting with (*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.parenthesis;\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case stateType._string:\n          while (state.stack[0] === stateType._string && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return state.lhs ? \"property string\" : \"string\"; // Token style\n\n        case stateType.comment:\n          while (state.stack[0] === stateType.comment && !stream.eol()) {\n            if (state.commentType === commentType.slash && stream.match(/\\*\\//)) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else if (state.commentType === commentType.parenthesis && stream.match(/\\*\\)/)) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else {\n              stream.match(/^.[^\\*]*/);\n            }\n          }\n          return \"comment\";\n\n        case stateType.characterClass:\n          while (state.stack[0] === stateType.characterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./))) {\n              state.stack.shift();\n            }\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        if (bracesMode !== null && (state.braced || peek === \"{\")) {\n          if (state.localState === null)\n            state.localState = bracesMode.startState();\n\n          var token = bracesMode.token(stream, state.localState),\n          text = stream.current();\n\n          if (!token) {\n            for (var i = 0; i < text.length; i++) {\n              if (text[i] === \"{\") {\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n                state.braced++;\n              } else if (text[i] === \"}\") {\n                state.braced--;\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n              }\n            }\n          }\n          return token;\n        }\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(stateType.characterClass);\n          return \"bracket\";\n        case \":\":\n        case \"|\":\n        case \";\":\n          stream.next();\n          return \"operator\";\n        case \"%\":\n          if (stream.match(\"%%\")) {\n            return \"header\";\n          } else if (stream.match(/[%][A-Za-z]+/)) {\n            return \"keyword\";\n          } else if (stream.match(/[%][}]/)) {\n            return \"matchingbracket\";\n          }\n          break;\n        case \"/\":\n          if (stream.match(/[\\/][A-Za-z]+/)) {\n          return \"keyword\";\n        }\n        case \"\\\\\":\n          if (stream.match(/[\\][a-z]+/)) {\n            return \"string-2\";\n          }\n        case \".\":\n          if (stream.match(\".\")) {\n            return \"atom\";\n          }\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n          if (stream.match(peek)) {\n            return \"atom\";\n          }\n        case \"$\":\n          if (stream.match(\"$$\")) {\n            return \"builtin\";\n          } else if (stream.match(/[$][0-9]+/)) {\n            return \"variable-3\";\n          }\n        case \"<\":\n          if (stream.match(/<<[a-zA-Z_]+>>/)) {\n            return \"builtin\";\n          }\n        }\n\n        if (stream.match(/^\\/\\//)) {\n          stream.skipToEnd();\n          return \"comment\";\n        } else if (stream.match(/return/)) {\n          return \"operator\";\n        } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {\n          if (stream.match(/(?=[\\(.])/)) {\n            return \"variable\";\n          } else if (stream.match(/(?=[\\s\\n]*[:=])/)) {\n            return \"def\";\n          }\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\"].indexOf(stream.peek()) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-ebnf\", \"ebnf\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ebnf/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <title>CodeMirror: EBNF Mode</title>\n    <meta charset=\"utf-8\"/>\n    <link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"../javascript/javascript.js\"></script>\n    <script src=\"ebnf.js\"></script>\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n  </head>\n  <body>\n    <div id=nav>\n      <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n      <ul>\n        <li><a href=\"../../index.html\">Home</a>\n        <li><a href=\"../../doc/manual.html\">Manual</a>\n        <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n      </ul>\n      <ul>\n        <li><a href=\"../index.html\">Language modes</a>\n        <li><a class=active href=\"#\">EBNF Mode</a>\n      </ul>\n    </div>\n\n    <article>\n      <h2>EBNF Mode (bracesMode setting = \"javascript\")</h2>\n      <form><textarea id=\"code\" name=\"code\">\n/* description: Parses end executes mathematical expressions. */\n\n/* lexical grammar */\n%lex\n\n%%\n\\s+                   /* skip whitespace */\n[0-9]+(\".\"[0-9]+)?\\b  return 'NUMBER';\n\"*\"                   return '*';\n\"/\"                   return '/';\n\"-\"                   return '-';\n\"+\"                   return '+';\n\"^\"                   return '^';\n\"(\"                   return '(';\n\")\"                   return ')';\n\"PI\"                  return 'PI';\n\"E\"                   return 'E';\n&lt;&lt;EOF&gt;&gt;               return 'EOF';\n\n/lex\n\n/* operator associations and precedence */\n\n%left '+' '-'\n%left '*' '/'\n%left '^'\n%left UMINUS\n\n%start expressions\n\n%% /* language grammar */\n\nexpressions\n: e EOF\n{print($1); return $1;}\n;\n\ne\n: e '+' e\n{$$ = $1+$3;}\n| e '-' e\n{$$ = $1-$3;}\n| e '*' e\n{$$ = $1*$3;}\n| e '/' e\n{$$ = $1/$3;}\n| e '^' e\n{$$ = Math.pow($1, $3);}\n| '-' e %prec UMINUS\n{$$ = -$2;}\n| '(' e ')'\n{$$ = $2;}\n| NUMBER\n{$$ = Number(yytext);}\n| E\n{$$ = Math.E;}\n| PI\n{$$ = Math.PI;}\n;</textarea></form>\n      <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n          mode: {name: \"ebnf\"},\n          lineNumbers: true,\n          bracesMode: 'javascript'\n        });\n      </script>\n      <h3>The EBNF Mode</h3>\n      <p> Created by <a href=\"https://github.com/robertleeplummerjr\">Robert Plummer</a></p>\n    </article>\n  </body>\n</html>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ecl/ecl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ecl\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  function metaHook(stream, state) {\n    if (!state.startOfLine) return false;\n    stream.skipToEnd();\n    return \"meta\";\n  }\n\n  var indentUnit = config.indentUnit;\n  var keyword = words(\"abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode\");\n  var variable = words(\"apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait\");\n  var variable_2 = words(\"__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath\");\n  var variable_3 = words(\"ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode\");\n  var builtin = words(\"checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when\");\n  var blockKeywords = words(\"catch class do else finally for if switch try while\");\n  var atoms = words(\"true false null\");\n  var hooks = {\"#\": metaHook};\n  var multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current().toLowerCase();\n    if (keyword.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    } else if (variable.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable\";\n    } else if (variable_2.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-2\";\n    } else if (variable_3.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-3\";\n    } else if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    } else { //Data types are of from KEYWORD##\n                var i = cur.length - 1;\n                while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_'))\n                        --i;\n\n                if (i > 0) {\n                        var cur2 = cur.substr(0, i + 1);\n                if (variable_3.propertyIsEnumerable(cur2)) {\n                        if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = \"newstatement\";\n                        return \"variable-3\";\n                }\n            }\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ecl\", \"ecl\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ecl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: ECL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"ecl.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">ECL</a>\n  </ul>\n</div>\n\n<article>\n<h2>ECL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/*\nsample useless code to demonstrate ecl syntax highlighting\nthis is a multiline comment!\n*/\n\n//  this is a singleline comment!\n\nimport ut;\nr := \n  record\n   string22 s1 := '123';\n   integer4 i1 := 123;\n  end;\n#option('tmp', true);\nd := dataset('tmp::qb', r, thor);\noutput(d);\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p>Based on CodeMirror's clike mode.  For more information see <a href=\"http://hpccsystems.com\">HPCC Systems</a> web site.</p>\n    <p><strong>MIME types defined:</strong> <code>text/x-ecl</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/eiffel/eiffel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"eiffel\", function() {\n  function wordObj(words) {\n    var o = {};\n    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n    return o;\n  }\n  var keywords = wordObj([\n    'note',\n    'across',\n    'when',\n    'variant',\n    'until',\n    'unique',\n    'undefine',\n    'then',\n    'strip',\n    'select',\n    'retry',\n    'rescue',\n    'require',\n    'rename',\n    'reference',\n    'redefine',\n    'prefix',\n    'once',\n    'old',\n    'obsolete',\n    'loop',\n    'local',\n    'like',\n    'is',\n    'inspect',\n    'infix',\n    'include',\n    'if',\n    'frozen',\n    'from',\n    'external',\n    'export',\n    'ensure',\n    'end',\n    'elseif',\n    'else',\n    'do',\n    'creation',\n    'create',\n    'check',\n    'alias',\n    'agent',\n    'separate',\n    'invariant',\n    'inherit',\n    'indexing',\n    'feature',\n    'expanded',\n    'deferred',\n    'class',\n    'Void',\n    'True',\n    'Result',\n    'Precursor',\n    'False',\n    'Current',\n    'create',\n    'attached',\n    'detachable',\n    'as',\n    'and',\n    'implies',\n    'not',\n    'or'\n  ]);\n  var operators = wordObj([\":=\", \"and then\",\"and\", \"or\",\"<<\",\">>\"]);\n  var curPunc;\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    if (stream.eatSpace()) return null;\n    var ch = stream.next();\n    if (ch == '\"'||ch == \"'\") {\n      return chain(readQuoted(ch, \"string\"), stream, state);\n    } else if (ch == \"-\"&&stream.eat(\"-\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \":\"&&stream.eat(\"=\")) {\n      return \"operator\";\n    } else if (/[0-9]/.test(ch)) {\n      stream.eatWhile(/[xXbBCc0-9\\.]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[a-zA-Z_0-9]/.test(ch)) {\n      stream.eatWhile(/[a-zA-Z_0-9]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[=+\\-\\/*^%<>~]/.test(ch)) {\n      stream.eatWhile(/[=+\\-\\/*^%<>~]/);\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function readQuoted(quote, style,  unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        escaped = !escaped && ch == \"%\";\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase]};\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : operators.propertyIsEnumerable(stream.current()) ? \"operator\"\n          : /^[A-Z][A-Z_0-9]*$/g.test(word) ? \"tag\"\n          : /^0[bB][0-1]+$/g.test(word) ? \"number\"\n          : /^0[cC][0-7]+$/g.test(word) ? \"number\"\n          : /^0[xX][a-fA-F0-9]+$/g.test(word) ? \"number\"\n          : /^([0-9]+\\.[0-9]*)|([0-9]*\\.[0-9]+)$/g.test(word) ? \"number\"\n          : /^[0-9]+$/g.test(word) ? \"number\"\n          : \"variable\";\n      }\n      return style;\n    },\n    lineComment: \"--\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-eiffel\", \"eiffel\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/eiffel/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Eiffel mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"eiffel.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Eiffel</a>\n  </ul>\n</div>\n\n<article>\n<h2>Eiffel mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nnote\n    description: \"[\n        Project-wide universal properties.\n        This class is an ancestor to all developer-written classes.\n        ANY may be customized for individual projects or teams.\n        ]\"\n\n    library: \"Free implementation of ELKS library\"\n    status: \"See notice at end of class.\"\n    legal: \"See notice at end of class.\"\n    date: \"$Date: 2013-01-25 11:49:00 -0800 (Fri, 25 Jan 2013) $\"\n    revision: \"$Revision: 712 $\"\n\nclass\n    ANY\n\nfeature -- Customization\n\nfeature -- Access\n\n    generator: STRING\n            -- Name of current object's generating class\n            -- (base class of the type of which it is a direct instance)\n        external\n            \"built_in\"\n        ensure\n            generator_not_void: Result /= Void\n            generator_not_empty: not Result.is_empty\n        end\n\n    generating_type: TYPE [detachable like Current]\n            -- Type of current object\n            -- (type of which it is a direct instance)\n        do\n            Result := {detachable like Current}\n        ensure\n            generating_type_not_void: Result /= Void\n        end\n\nfeature -- Status report\n\n    conforms_to (other: ANY): BOOLEAN\n            -- Does type of current object conform to type\n            -- of `other' (as per Eiffel: The Language, chapter 13)?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        end\n\n    same_type (other: ANY): BOOLEAN\n            -- Is type of current object identical to type of `other'?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            definition: Result = (conforms_to (other) and\n                                        other.conforms_to (Current))\n        end\n\nfeature -- Comparison\n\n    is_equal (other: like Current): BOOLEAN\n            -- Is `other' attached to an object considered\n            -- equal to current object?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            symmetric: Result implies other ~ Current\n            consistent: standard_is_equal (other) implies Result\n        end\n\n    frozen standard_is_equal (other: like Current): BOOLEAN\n            -- Is `other' attached to an object of the same type\n            -- as current object, and field-by-field identical to it?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            same_type: Result implies same_type (other)\n            symmetric: Result implies other.standard_is_equal (Current)\n        end\n\n    frozen equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void or attached\n            -- to objects considered equal?\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then\n                            a.is_equal (b)\n            end\n        ensure\n            definition: Result = (a = Void and b = Void) or else\n                        ((a /= Void and b /= Void) and then\n                        a.is_equal (b))\n        end\n\n    frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void or attached to\n            -- field-by-field identical objects of the same type?\n            -- Always uses default object comparison criterion.\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then\n                            a.standard_is_equal (b)\n            end\n        ensure\n            definition: Result = (a = Void and b = Void) or else\n                        ((a /= Void and b /= Void) and then\n                        a.standard_is_equal (b))\n        end\n\n    frozen is_deep_equal (other: like Current): BOOLEAN\n            -- Are `Current' and `other' attached to isomorphic object structures?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            shallow_implies_deep: standard_is_equal (other) implies Result\n            same_type: Result implies same_type (other)\n            symmetric: Result implies other.is_deep_equal (Current)\n        end\n\n    frozen deep_equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void\n            -- or attached to isomorphic object structures?\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then a.is_deep_equal (b)\n            end\n        ensure\n            shallow_implies_deep: standard_equal (a, b) implies Result\n            both_or_none_void: (a = Void) implies (Result = (b = Void))\n            same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))\n            symmetric: Result implies deep_equal (b, a)\n        end\n\nfeature -- Duplication\n\n    frozen twin: like Current\n            -- New object equal to `Current'\n            -- `twin' calls `copy'; to change copying/twinning semantics, redefine `copy'.\n        external\n            \"built_in\"\n        ensure\n            twin_not_void: Result /= Void\n            is_equal: Result ~ Current\n        end\n\n    copy (other: like Current)\n            -- Update current object using fields of object attached\n            -- to `other', so as to yield equal objects.\n        require\n            other_not_void: other /= Void\n            type_identity: same_type (other)\n        external\n            \"built_in\"\n        ensure\n            is_equal: Current ~ other\n        end\n\n    frozen standard_copy (other: like Current)\n            -- Copy every field of `other' onto corresponding field\n            -- of current object.\n        require\n            other_not_void: other /= Void\n            type_identity: same_type (other)\n        external\n            \"built_in\"\n        ensure\n            is_standard_equal: standard_is_equal (other)\n        end\n\n    frozen clone (other: detachable ANY): like other\n            -- Void if `other' is void; otherwise new object\n            -- equal to `other'\n            --\n            -- For non-void `other', `clone' calls `copy';\n            -- to change copying/cloning semantics, redefine `copy'.\n        obsolete\n            \"Use `twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.twin\n            end\n        ensure\n            equal: Result ~ other\n        end\n\n    frozen standard_clone (other: detachable ANY): like other\n            -- Void if `other' is void; otherwise new object\n            -- field-by-field identical to `other'.\n            -- Always uses default copying semantics.\n        obsolete\n            \"Use `standard_twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.standard_twin\n            end\n        ensure\n            equal: standard_equal (Result, other)\n        end\n\n    frozen standard_twin: like Current\n            -- New object field-by-field identical to `other'.\n            -- Always uses default copying semantics.\n        external\n            \"built_in\"\n        ensure\n            standard_twin_not_void: Result /= Void\n            equal: standard_equal (Result, Current)\n        end\n\n    frozen deep_twin: like Current\n            -- New object structure recursively duplicated from Current.\n        external\n            \"built_in\"\n        ensure\n            deep_twin_not_void: Result /= Void\n            deep_equal: deep_equal (Current, Result)\n        end\n\n    frozen deep_clone (other: detachable ANY): like other\n            -- Void if `other' is void: otherwise, new object structure\n            -- recursively duplicated from the one attached to `other'\n        obsolete\n            \"Use `deep_twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.deep_twin\n            end\n        ensure\n            deep_equal: deep_equal (other, Result)\n        end\n\n    frozen deep_copy (other: like Current)\n            -- Effect equivalent to that of:\n            --      `copy' (`other' . `deep_twin')\n        require\n            other_not_void: other /= Void\n        do\n            copy (other.deep_twin)\n        ensure\n            deep_equal: deep_equal (Current, other)\n        end\n\nfeature {NONE} -- Retrieval\n\n    frozen internal_correct_mismatch\n            -- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch'\n            -- from MISMATCH_CORRECTOR.\n        local\n            l_msg: STRING\n            l_exc: EXCEPTIONS\n        do\n            if attached {MISMATCH_CORRECTOR} Current as l_corrector then\n                l_corrector.correct_mismatch\n            else\n                create l_msg.make_from_string (\"Mismatch: \")\n                create l_exc\n                l_msg.append (generating_type.name)\n                l_exc.raise_retrieval_exception (l_msg)\n            end\n        end\n\nfeature -- Output\n\n    io: STD_FILES\n            -- Handle to standard file setup\n        once\n            create Result\n            Result.set_output_default\n        ensure\n            io_not_void: Result /= Void\n        end\n\n    out: STRING\n            -- New string containing terse printable representation\n            -- of current object\n        do\n            Result := tagged_out\n        ensure\n            out_not_void: Result /= Void\n        end\n\n    frozen tagged_out: STRING\n            -- New string containing terse printable representation\n            -- of current object\n        external\n            \"built_in\"\n        ensure\n            tagged_out_not_void: Result /= Void\n        end\n\n    print (o: detachable ANY)\n            -- Write terse external representation of `o'\n            -- on standard output.\n        do\n            if o /= Void then\n                io.put_string (o.out)\n            end\n        end\n\nfeature -- Platform\n\n    Operating_environment: OPERATING_ENVIRONMENT\n            -- Objects available from the operating system\n        once\n            create Result\n        ensure\n            operating_environment_not_void: Result /= Void\n        end\n\nfeature {NONE} -- Initialization\n\n    default_create\n            -- Process instances of classes with no creation clause.\n            -- (Default: do nothing.)\n        do\n        end\n\nfeature -- Basic operations\n\n    default_rescue\n            -- Process exception for routines with no Rescue clause.\n            -- (Default: do nothing.)\n        do\n        end\n\n    frozen do_nothing\n            -- Execute a null action.\n        do\n        end\n\n    frozen default: detachable like Current\n            -- Default value of object's type\n        do\n        end\n\n    frozen default_pointer: POINTER\n            -- Default value of type `POINTER'\n            -- (Avoid the need to write `p'.`default' for\n            -- some `p' of type `POINTER'.)\n        do\n        ensure\n            -- Result = Result.default\n        end\n\n    frozen as_attached: attached like Current\n            -- Attached version of Current\n            -- (Can be used during transitional period to convert\n            -- non-void-safe classes to void-safe ones.)\n        do\n            Result := Current\n        end\n\ninvariant\n    reflexive_equality: standard_is_equal (Current)\n    reflexive_conformance: conforms_to (Current)\n\nnote\n    copyright: \"Copyright (c) 1984-2012, Eiffel Software and others\"\n    license:   \"Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)\"\n    source: \"[\n            Eiffel Software\n            5949 Hollister Ave., Goleta, CA 93117 USA\n            Telephone 805-685-1006, Fax 805-685-6869\n            Website http://www.eiffel.com\n            Customer support http://support.eiffel.com\n        ]\"\n\nend\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-eiffel\",\n        indentUnit: 4,\n        lineNumbers: true,\n        theme: \"neat\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-eiffel</code>.</p>\n \n <p> Created by <a href=\"https://github.com/ynh\">YNH</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/erlang/erlang.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*jshint unused:true, eqnull:true, curly:true, bitwise:true */\n/*jshint undef:true, latedef:true, trailing:true */\n/*global CodeMirror:true */\n\n// erlang mode.\n// tokenizer -> token types -> CodeMirror styles\n// tokenizer maintains a parse stack\n// indenter uses the parse stack\n\n// TODO indenter:\n//   bit syntax\n//   old guard/bif/conversion clashes (e.g. \"float/1\")\n//   type/spec/opaque\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/x-erlang\", \"erlang\");\n\nCodeMirror.defineMode(\"erlang\", function(cmCfg) {\n  \"use strict\";\n\n/////////////////////////////////////////////////////////////////////////////\n// constants\n\n  var typeWords = [\n    \"-type\", \"-spec\", \"-export_type\", \"-opaque\"];\n\n  var keywordWords = [\n    \"after\",\"begin\",\"catch\",\"case\",\"cond\",\"end\",\"fun\",\"if\",\n    \"let\",\"of\",\"query\",\"receive\",\"try\",\"when\"];\n\n  var separatorRE    = /[\\->,;]/;\n  var separatorWords = [\n    \"->\",\";\",\",\"];\n\n  var operatorAtomWords = [\n    \"and\",\"andalso\",\"band\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\n    \"div\",\"not\",\"or\",\"orelse\",\"rem\",\"xor\"];\n\n  var operatorSymbolRE    = /[\\+\\-\\*\\/<>=\\|:!]/;\n  var operatorSymbolWords = [\n    \"=\",\"+\",\"-\",\"*\",\"/\",\">\",\">=\",\"<\",\"=<\",\"=:=\",\"==\",\"=/=\",\"/=\",\"||\",\"<-\",\"!\"];\n\n  var openParenRE    = /[<\\(\\[\\{]/;\n  var openParenWords = [\n    \"<<\",\"(\",\"[\",\"{\"];\n\n  var closeParenRE    = /[>\\)\\]\\}]/;\n  var closeParenWords = [\n    \"}\",\"]\",\")\",\">>\"];\n\n  var guardWords = [\n    \"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\"is_float\",\n    \"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"atom\",\"binary\",\"bitstring\",\"boolean\",\"function\",\"integer\",\"list\",\n    \"number\",\"pid\",\"port\",\"record\",\"reference\",\"tuple\"];\n\n  var bifWords = [\n    \"abs\",\"adler32\",\"adler32_combine\",\"alive\",\"apply\",\"atom_to_binary\",\n    \"atom_to_list\",\"binary_to_atom\",\"binary_to_existing_atom\",\n    \"binary_to_list\",\"binary_to_term\",\"bit_size\",\"bitstring_to_list\",\n    \"byte_size\",\"check_process_code\",\"contact_binary\",\"crc32\",\n    \"crc32_combine\",\"date\",\"decode_packet\",\"delete_module\",\n    \"disconnect_node\",\"element\",\"erase\",\"exit\",\"float\",\"float_to_list\",\n    \"garbage_collect\",\"get\",\"get_keys\",\"group_leader\",\"halt\",\"hd\",\n    \"integer_to_list\",\"internal_bif\",\"iolist_size\",\"iolist_to_binary\",\n    \"is_alive\",\"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\n    \"is_float\",\"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_process_alive\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"length\",\"link\",\"list_to_atom\",\"list_to_binary\",\"list_to_bitstring\",\n    \"list_to_existing_atom\",\"list_to_float\",\"list_to_integer\",\n    \"list_to_pid\",\"list_to_tuple\",\"load_module\",\"make_ref\",\"module_loaded\",\n    \"monitor_node\",\"node\",\"node_link\",\"node_unlink\",\"nodes\",\"notalive\",\n    \"now\",\"open_port\",\"pid_to_list\",\"port_close\",\"port_command\",\n    \"port_connect\",\"port_control\",\"pre_loaded\",\"process_flag\",\n    \"process_info\",\"processes\",\"purge_module\",\"put\",\"register\",\n    \"registered\",\"round\",\"self\",\"setelement\",\"size\",\"spawn\",\"spawn_link\",\n    \"spawn_monitor\",\"spawn_opt\",\"split_binary\",\"statistics\",\n    \"term_to_binary\",\"time\",\"throw\",\"tl\",\"trunc\",\"tuple_size\",\n    \"tuple_to_list\",\"unlink\",\"unregister\",\"whereis\"];\n\n// upper case: [A-Z] [Ø-Þ] [À-Ö]\n// lower case: [a-z] [ß-ö] [ø-ÿ]\n  var anumRE       = /[\\w@Ø-ÞÀ-Öß-öø-ÿ]/;\n  var escapesRE    =\n    /[0-7]{1,3}|[bdefnrstv\\\\\"']|\\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;\n\n/////////////////////////////////////////////////////////////////////////////\n// tokenizer\n\n  function tokenizer(stream,state) {\n    // in multi-line string\n    if (state.in_string) {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // in multi-line atom\n    if (state.in_atom) {\n      state.in_atom = (!singleQuote(stream));\n      return rval(state,stream,\"atom\");\n    }\n\n    // whitespace\n    if (stream.eatSpace()) {\n      return rval(state,stream,\"whitespace\");\n    }\n\n    // attributes and type specs\n    if (!peekToken(state) &&\n        stream.match(/-\\s*[a-zß-öø-ÿ][\\wØ-ÞÀ-Öß-öø-ÿ]*/)) {\n      if (is_member(stream.current(),typeWords)) {\n        return rval(state,stream,\"type\");\n      }else{\n        return rval(state,stream,\"attribute\");\n      }\n    }\n\n    var ch = stream.next();\n\n    // comment\n    if (ch == '%') {\n      stream.skipToEnd();\n      return rval(state,stream,\"comment\");\n    }\n\n    // colon\n    if (ch == \":\") {\n      return rval(state,stream,\"colon\");\n    }\n\n    // macro\n    if (ch == '?') {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"macro\");\n    }\n\n    // record\n    if (ch == \"#\") {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"record\");\n    }\n\n    // dollar escape\n    if (ch == \"$\") {\n      if (stream.next() == \"\\\\\" && !stream.match(escapesRE)) {\n        return rval(state,stream,\"error\");\n      }\n      return rval(state,stream,\"number\");\n    }\n\n    // dot\n    if (ch == \".\") {\n      return rval(state,stream,\"dot\");\n    }\n\n    // quoted atom\n    if (ch == '\\'') {\n      if (!(state.in_atom = (!singleQuote(stream)))) {\n        if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n          stream.match(/\\s*\\/\\s*[0-9]/,true);\n          return rval(state,stream,\"fun\");      // 'f'/0 style fun\n        }\n        if (stream.match(/\\s*\\(/,false) || stream.match(/\\s*:/,false)) {\n          return rval(state,stream,\"function\");\n        }\n      }\n      return rval(state,stream,\"atom\");\n    }\n\n    // string\n    if (ch == '\"') {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // variable\n    if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"variable\");\n    }\n\n    // atom/keyword/BIF/function\n    if (/[a-z_ß-öø-ÿ]/.test(ch)) {\n      stream.eatWhile(anumRE);\n\n      if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n        stream.match(/\\s*\\/\\s*[0-9]/,true);\n        return rval(state,stream,\"fun\");      // f/0 style fun\n      }\n\n      var w = stream.current();\n\n      if (is_member(w,keywordWords)) {\n        return rval(state,stream,\"keyword\");\n      }else if (is_member(w,operatorAtomWords)) {\n        return rval(state,stream,\"operator\");\n      }else if (stream.match(/\\s*\\(/,false)) {\n        // 'put' and 'erlang:put' are bifs, 'foo:put' is not\n        if (is_member(w,bifWords) &&\n            ((peekToken(state).token != \":\") ||\n             (peekToken(state,2).token == \"erlang\"))) {\n          return rval(state,stream,\"builtin\");\n        }else if (is_member(w,guardWords)) {\n          return rval(state,stream,\"guard\");\n        }else{\n          return rval(state,stream,\"function\");\n        }\n      }else if (is_member(w,operatorAtomWords)) {\n        return rval(state,stream,\"operator\");\n      }else if (lookahead(stream) == \":\") {\n        if (w == \"erlang\") {\n          return rval(state,stream,\"builtin\");\n        } else {\n          return rval(state,stream,\"function\");\n        }\n      }else if (is_member(w,[\"true\",\"false\"])) {\n        return rval(state,stream,\"boolean\");\n      }else if (is_member(w,[\"true\",\"false\"])) {\n        return rval(state,stream,\"boolean\");\n      }else{\n        return rval(state,stream,\"atom\");\n      }\n    }\n\n    // number\n    var digitRE      = /[0-9]/;\n    var radixRE      = /[0-9a-zA-Z]/;         // 36#zZ style int\n    if (digitRE.test(ch)) {\n      stream.eatWhile(digitRE);\n      if (stream.eat('#')) {                // 36#aZ  style integer\n        if (!stream.eatWhile(radixRE)) {\n          stream.backUp(1);                 //\"36#\" - syntax error\n        }\n      } else if (stream.eat('.')) {       // float\n        if (!stream.eatWhile(digitRE)) {\n          stream.backUp(1);        // \"3.\" - probably end of function\n        } else {\n          if (stream.eat(/[eE]/)) {        // float with exponent\n            if (stream.eat(/[-+]/)) {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(2);            // \"2e-\" - syntax error\n              }\n            } else {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(1);            // \"2e\" - syntax error\n              }\n            }\n          }\n        }\n      }\n      return rval(state,stream,\"number\");   // normal integer\n    }\n\n    // open parens\n    if (nongreedy(stream,openParenRE,openParenWords)) {\n      return rval(state,stream,\"open_paren\");\n    }\n\n    // close parens\n    if (nongreedy(stream,closeParenRE,closeParenWords)) {\n      return rval(state,stream,\"close_paren\");\n    }\n\n    // separators\n    if (greedy(stream,separatorRE,separatorWords)) {\n      return rval(state,stream,\"separator\");\n    }\n\n    // operators\n    if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {\n      return rval(state,stream,\"operator\");\n    }\n\n    return rval(state,stream,null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// utilities\n  function nongreedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      stream.backUp(1);\n      while (re.test(stream.peek())) {\n        stream.next();\n        if (is_member(stream.current(),words)) {\n          return true;\n        }\n      }\n      stream.backUp(stream.current().length-1);\n    }\n    return false;\n  }\n\n  function greedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      while (re.test(stream.peek())) {\n        stream.next();\n      }\n      while (0 < stream.current().length) {\n        if (is_member(stream.current(),words)) {\n          return true;\n        }else{\n          stream.backUp(1);\n        }\n      }\n      stream.next();\n    }\n    return false;\n  }\n\n  function doubleQuote(stream) {\n    return quote(stream, '\"', '\\\\');\n  }\n\n  function singleQuote(stream) {\n    return quote(stream,'\\'','\\\\');\n  }\n\n  function quote(stream,quoteChar,escapeChar) {\n    while (!stream.eol()) {\n      var ch = stream.next();\n      if (ch == quoteChar) {\n        return true;\n      }else if (ch == escapeChar) {\n        stream.next();\n      }\n    }\n    return false;\n  }\n\n  function lookahead(stream) {\n    var m = stream.match(/([\\n\\s]+|%[^\\n]*\\n)*(.)/,false);\n    return m ? m.pop() : \"\";\n  }\n\n  function is_member(element,list) {\n    return (-1 < list.indexOf(element));\n  }\n\n  function rval(state,stream,type) {\n\n    // parse stack\n    pushToken(state,realToken(type,stream));\n\n    // map erlang token type to CodeMirror style class\n    //     erlang             -> CodeMirror tag\n    switch (type) {\n      case \"atom\":        return \"atom\";\n      case \"attribute\":   return \"attribute\";\n      case \"boolean\":     return \"atom\";\n      case \"builtin\":     return \"builtin\";\n      case \"close_paren\": return null;\n      case \"colon\":       return null;\n      case \"comment\":     return \"comment\";\n      case \"dot\":         return null;\n      case \"error\":       return \"error\";\n      case \"fun\":         return \"meta\";\n      case \"function\":    return \"tag\";\n      case \"guard\":       return \"property\";\n      case \"keyword\":     return \"keyword\";\n      case \"macro\":       return \"variable-2\";\n      case \"number\":      return \"number\";\n      case \"open_paren\":  return null;\n      case \"operator\":    return \"operator\";\n      case \"record\":      return \"bracket\";\n      case \"separator\":   return null;\n      case \"string\":      return \"string\";\n      case \"type\":        return \"def\";\n      case \"variable\":    return \"variable\";\n      default:            return null;\n    }\n  }\n\n  function aToken(tok,col,ind,typ) {\n    return {token:  tok,\n            column: col,\n            indent: ind,\n            type:   typ};\n  }\n\n  function realToken(type,stream) {\n    return aToken(stream.current(),\n                 stream.column(),\n                 stream.indentation(),\n                 type);\n  }\n\n  function fakeToken(type) {\n    return aToken(type,0,0,type);\n  }\n\n  function peekToken(state,depth) {\n    var len = state.tokenStack.length;\n    var dep = (depth ? depth : 1);\n\n    if (len < dep) {\n      return false;\n    }else{\n      return state.tokenStack[len-dep];\n    }\n  }\n\n  function pushToken(state,token) {\n\n    if (!(token.type == \"comment\" || token.type == \"whitespace\")) {\n      state.tokenStack = maybe_drop_pre(state.tokenStack,token);\n      state.tokenStack = maybe_drop_post(state.tokenStack);\n    }\n  }\n\n  function maybe_drop_pre(s,token) {\n    var last = s.length-1;\n\n    if (0 < last && s[last].type === \"record\" && token.type === \"dot\") {\n      s.pop();\n    }else if (0 < last && s[last].type === \"group\") {\n      s.pop();\n      s.push(token);\n    }else{\n      s.push(token);\n    }\n    return s;\n  }\n\n  function maybe_drop_post(s) {\n    var last = s.length-1;\n\n    if (s[last].type === \"dot\") {\n      return [];\n    }\n    if (s[last].type === \"fun\" && s[last-1].token === \"fun\") {\n      return s.slice(0,last-1);\n    }\n    switch (s[s.length-1].token) {\n      case \"}\":    return d(s,{g:[\"{\"]});\n      case \"]\":    return d(s,{i:[\"[\"]});\n      case \")\":    return d(s,{i:[\"(\"]});\n      case \">>\":   return d(s,{i:[\"<<\"]});\n      case \"end\":  return d(s,{i:[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]});\n      case \",\":    return d(s,{e:[\"begin\",\"try\",\"when\",\"->\",\n                                  \",\",\"(\",\"[\",\"{\",\"<<\"]});\n      case \"->\":   return d(s,{r:[\"when\"],\n                               m:[\"try\",\"if\",\"case\",\"receive\"]});\n      case \";\":    return d(s,{E:[\"case\",\"fun\",\"if\",\"receive\",\"try\",\"when\"]});\n      case \"catch\":return d(s,{e:[\"try\"]});\n      case \"of\":   return d(s,{e:[\"case\"]});\n      case \"after\":return d(s,{e:[\"receive\",\"try\"]});\n      default:     return s;\n    }\n  }\n\n  function d(stack,tt) {\n    // stack is a stack of Token objects.\n    // tt is an object; {type:tokens}\n    // type is a char, tokens is a list of token strings.\n    // The function returns (possibly truncated) stack.\n    // It will descend the stack, looking for a Token such that Token.token\n    //  is a member of tokens. If it does not find that, it will normally (but\n    //  see \"E\" below) return stack. If it does find a match, it will remove\n    //  all the Tokens between the top and the matched Token.\n    // If type is \"m\", that is all it does.\n    // If type is \"i\", it will also remove the matched Token and the top Token.\n    // If type is \"g\", like \"i\", but add a fake \"group\" token at the top.\n    // If type is \"r\", it will remove the matched Token, but not the top Token.\n    // If type is \"e\", it will keep the matched Token but not the top Token.\n    // If type is \"E\", it behaves as for type \"e\", except if there is no match,\n    //  in which case it will return an empty stack.\n\n    for (var type in tt) {\n      var len = stack.length-1;\n      var tokens = tt[type];\n      for (var i = len-1; -1 < i ; i--) {\n        if (is_member(stack[i].token,tokens)) {\n          var ss = stack.slice(0,i);\n          switch (type) {\n              case \"m\": return ss.concat(stack[i]).concat(stack[len]);\n              case \"r\": return ss.concat(stack[len]);\n              case \"i\": return ss;\n              case \"g\": return ss.concat(fakeToken(\"group\"));\n              case \"E\": return ss.concat(stack[i]);\n              case \"e\": return ss.concat(stack[i]);\n          }\n        }\n      }\n    }\n    return (type == \"E\" ? [] : stack);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// indenter\n\n  function indenter(state,textAfter) {\n    var t;\n    var unit = cmCfg.indentUnit;\n    var wordAfter = wordafter(textAfter);\n    var currT = peekToken(state,1);\n    var prevT = peekToken(state,2);\n\n    if (state.in_string || state.in_atom) {\n      return CodeMirror.Pass;\n    }else if (!prevT) {\n      return 0;\n    }else if (currT.token == \"when\") {\n      return currT.column+unit;\n    }else if (wordAfter === \"when\" && prevT.type === \"function\") {\n      return prevT.indent+unit;\n    }else if (wordAfter === \"(\" && currT.token === \"fun\") {\n      return  currT.column+3;\n    }else if (wordAfter === \"catch\" && (t = getToken(state,[\"try\"]))) {\n      return t.column;\n    }else if (is_member(wordAfter,[\"end\",\"after\",\"of\"])) {\n      t = getToken(state,[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(wordAfter,closeParenWords)) {\n      t = getToken(state,openParenWords);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(currT.token,[\",\",\"|\",\"||\"]) ||\n              is_member(wordAfter,[\",\",\"|\",\"||\"])) {\n      t = postcommaToken(state);\n      return t ? t.column+t.token.length : unit;\n    }else if (currT.token == \"->\") {\n      if (is_member(prevT.token, [\"receive\",\"case\",\"if\",\"try\"])) {\n        return prevT.column+unit+unit;\n      }else{\n        return prevT.column+unit;\n      }\n    }else if (is_member(currT.token,openParenWords)) {\n      return currT.column+currT.token.length;\n    }else{\n      t = defaultToken(state);\n      return truthy(t) ? t.column+unit : 0;\n    }\n  }\n\n  function wordafter(str) {\n    var m = str.match(/,|[a-z]+|\\}|\\]|\\)|>>|\\|+|\\(/);\n\n    return truthy(m) && (m.index === 0) ? m[0] : \"\";\n  }\n\n  function postcommaToken(state) {\n    var objs = state.tokenStack.slice(0,-1);\n    var i = getTokenIndex(objs,\"type\",[\"open_paren\"]);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function defaultToken(state) {\n    var objs = state.tokenStack;\n    var stop = getTokenIndex(objs,\"type\",[\"open_paren\",\"separator\",\"keyword\"]);\n    var oper = getTokenIndex(objs,\"type\",[\"operator\"]);\n\n    if (truthy(stop) && truthy(oper) && stop < oper) {\n      return objs[stop+1];\n    } else if (truthy(stop)) {\n      return objs[stop];\n    } else {\n      return false;\n    }\n  }\n\n  function getToken(state,tokens) {\n    var objs = state.tokenStack;\n    var i = getTokenIndex(objs,\"token\",tokens);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function getTokenIndex(objs,propname,propvals) {\n\n    for (var i = objs.length-1; -1 < i ; i--) {\n      if (is_member(objs[i][propname],propvals)) {\n        return i;\n      }\n    }\n    return false;\n  }\n\n  function truthy(x) {\n    return (x !== false) && (x != null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// this object defines the mode\n\n  return {\n    startState:\n      function() {\n        return {tokenStack: [],\n                in_string:  false,\n                in_atom:    false};\n      },\n\n    token:\n      function(stream, state) {\n        return tokenizer(stream, state);\n      },\n\n    indent:\n      function(state, textAfter) {\n        return indenter(state,textAfter);\n      },\n\n    lineComment: \"%\"\n  };\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/erlang/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Erlang mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/erlang-dark.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"erlang.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Erlang</a>\n  </ul>\n</div>\n\n<article>\n<h2>Erlang mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n%% -*- mode: erlang; erlang-indent-level: 2 -*-\n%%% Created :  7 May 2012 by mats cronqvist <masse@klarna.com>\n\n%% @doc\n%% Demonstrates how to print a record.\n%% @end\n\n-module('ex').\n-author('mats cronqvist').\n-export([demo/0,\n         rec_info/1]).\n\n-record(demo,{a=\"One\",b=\"Two\",c=\"Three\",d=\"Four\"}).\n\nrec_info(demo) -> record_info(fields,demo).\n\ndemo() -> expand_recs(?MODULE,#demo{a=\"A\",b=\"BB\"}).\n\nexpand_recs(M,List) when is_list(List) ->\n  [expand_recs(M,L)||L<-List];\nexpand_recs(M,Tup) when is_tuple(Tup) ->\n  case tuple_size(Tup) of\n    L when L < 1 -> Tup;\n    L ->\n      try\n        Fields = M:rec_info(element(1,Tup)),\n        L = length(Fields)+1,\n        lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))\n      catch\n        _:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))\n      end\n  end;\nexpand_recs(_,Term) ->\n  Term.\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        extraKeys: {\"Tab\":  \"indentAuto\"},\n        theme: \"erlang-dark\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-erlang</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/forth/forth.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Author: Aliaksei Chapyzhenka\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function toWordList(words) {\n    var ret = [];\n    words.split(' ').forEach(function(e){\n      ret.push({name: e});\n    });\n    return ret;\n  }\n\n  var coreWordList = toWordList(\n'INVERT AND OR XOR\\\n 2* 2/ LSHIFT RSHIFT\\\n 0= = 0< < > U< MIN MAX\\\n 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\\\n >R R> R@\\\n + - 1+ 1- ABS NEGATE\\\n S>D * M* UM*\\\n FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\\\n HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\\\n ALIGN ALIGNED +! ALLOT\\\n CHAR [CHAR] [ ] BL\\\n FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\\\n ; DOES> >BODY\\\n EVALUATE\\\n SOURCE >IN\\\n <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\\\n FILL MOVE\\\n . CR EMIT SPACE SPACES TYPE U. .R U.R\\\n ACCEPT\\\n TRUE FALSE\\\n <> U> 0<> 0>\\\n NIP TUCK ROLL PICK\\\n 2>R 2R@ 2R>\\\n WITHIN UNUSED MARKER\\\n I J\\\n TO\\\n COMPILE, [COMPILE]\\\n SAVE-INPUT RESTORE-INPUT\\\n PAD ERASE\\\n 2LITERAL DNEGATE\\\n D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\\\n M+ M*/ D. D.R 2ROT DU<\\\n CATCH THROW\\\n FREE RESIZE ALLOCATE\\\n CS-PICK CS-ROLL\\\n GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\\\n PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\\\n -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');\n\n  var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');\n\n  CodeMirror.defineMode('forth', function() {\n    function searchWordList (wordList, word) {\n      var i;\n      for (i = wordList.length - 1; i >= 0; i--) {\n        if (wordList[i].name === word.toUpperCase()) {\n          return wordList[i];\n        }\n      }\n      return undefined;\n    }\n  return {\n    startState: function() {\n      return {\n        state: '',\n        base: 10,\n        coreWordList: coreWordList,\n        immediateWordList: immediateWordList,\n        wordList: []\n      };\n    },\n    token: function (stream, stt) {\n      var mat;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      if (stt.state === '') { // interpretation\n        if (stream.match(/^(\\]|:NONAME)(\\s|$)/i)) {\n          stt.state = ' compilation';\n          return 'builtin compilation';\n        }\n        mat = stream.match(/^(\\:)\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          stt.state = ' compilation';\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\\s+(\\S+)(\\s|$)+/i);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(\\'|\\[\\'\\])\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          return 'builtin' + stt.state;\n        }\n        } else { // compilation\n        // ; [\n        if (stream.match(/^(\\;|\\[)(\\s)/)) {\n          stt.state = '';\n          stream.backUp(1);\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(\\;|\\[)($)/)) {\n          stt.state = '';\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(POSTPONE)\\s+\\S+(\\s|$)+/)) {\n          return 'builtin';\n        }\n      }\n\n      // dynamic wordlist\n      mat = stream.match(/^(\\S+)(\\s+|$)/);\n      if (mat) {\n        if (searchWordList(stt.wordList, mat[1]) !== undefined) {\n          return 'variable' + stt.state;\n        }\n\n        // comments\n        if (mat[1] === '\\\\') {\n          stream.skipToEnd();\n            return 'comment' + stt.state;\n          }\n\n          // core words\n          if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {\n            return 'builtin' + stt.state;\n          }\n          if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {\n            return 'keyword' + stt.state;\n          }\n\n          if (mat[1] === '(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'comment' + stt.state;\n          }\n\n          // // strings\n          if (mat[1] === '.(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'string' + stt.state;\n          }\n          if (mat[1] === 'S\"' || mat[1] === '.\"' || mat[1] === 'C\"') {\n            stream.eatWhile(function (s) { return s !== '\"'; });\n            stream.eat('\"');\n            return 'string' + stt.state;\n          }\n\n          // numbers\n          if (mat[1] - 0xfffffffff) {\n            return 'number' + stt.state;\n          }\n          // if (mat[1].match(/^[-+]?[0-9]+\\.[0-9]*/)) {\n          //     return 'number' + stt.state;\n          // }\n\n          return 'atom' + stt.state;\n        }\n      }\n    };\n  });\n  CodeMirror.defineMIME(\"text/x-forth\", \"forth\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/forth/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Forth mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=stylesheet href=\"../../theme/colorforth.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"forth.js\"></script>\n<style>\n.CodeMirror {\n    font-family: 'Droid Sans Mono', monospace;\n    font-size: 14px;\n}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Forth</a>\n  </ul>\n</div>\n\n<article>\n\n<h2>Forth mode</h2>\n\n<form><textarea id=\"code\" name=\"code\">\n\\ Insertion sort\n\n: cell-  1 cells - ;\n\n: insert ( start end -- start )\n  dup @ >r ( r: v )\n  begin\n    2dup <\n  while\n    r@ over cell- @ <\n  while\n    cell-\n    dup @ over cell+ !\n  repeat then\n  r> swap ! ;\n\n: sort ( array len -- )\n  1 ?do\n    dup i cells + insert\n  loop drop ;</textarea>\n  </form>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    lineWrapping: true,\n    indentUnit: 2,\n    tabSize: 2,\n    autofocus: true,\n    theme: \"colorforth\",\n    mode: \"text/x-forth\"\n  });\n</script>\n\n<p>Simple mode that handle Forth-Syntax (<a href=\"http://en.wikipedia.org/wiki/Forth_%28programming_language%29\">Forth on WikiPedia</a>).</p>\n\n<p><strong>MIME types defined:</strong> <code>text/x-forth</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/fortran/fortran.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"fortran\", function() {\n  function words(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  }\n\n  var keywords = words([\n                  \"abstract\", \"accept\", \"allocatable\", \"allocate\",\n                  \"array\", \"assign\", \"asynchronous\", \"backspace\",\n                  \"bind\", \"block\", \"byte\", \"call\", \"case\",\n                  \"class\", \"close\", \"common\", \"contains\",\n                  \"continue\", \"cycle\", \"data\", \"deallocate\",\n                  \"decode\", \"deferred\", \"dimension\", \"do\",\n                  \"elemental\", \"else\", \"encode\", \"end\",\n                  \"endif\", \"entry\", \"enumerator\", \"equivalence\",\n                  \"exit\", \"external\", \"extrinsic\", \"final\",\n                  \"forall\", \"format\", \"function\", \"generic\",\n                  \"go\", \"goto\", \"if\", \"implicit\", \"import\", \"include\",\n                  \"inquire\", \"intent\", \"interface\", \"intrinsic\",\n                  \"module\", \"namelist\", \"non_intrinsic\",\n                  \"non_overridable\", \"none\", \"nopass\",\n                  \"nullify\", \"open\", \"optional\", \"options\",\n                  \"parameter\", \"pass\", \"pause\", \"pointer\",\n                  \"print\", \"private\", \"program\", \"protected\",\n                  \"public\", \"pure\", \"read\", \"recursive\", \"result\",\n                  \"return\", \"rewind\", \"save\", \"select\", \"sequence\",\n                  \"stop\", \"subroutine\", \"target\", \"then\", \"to\", \"type\",\n                  \"use\", \"value\", \"volatile\", \"where\", \"while\",\n                  \"write\"]);\n  var builtins = words([\"abort\", \"abs\", \"access\", \"achar\", \"acos\",\n                          \"adjustl\", \"adjustr\", \"aimag\", \"aint\", \"alarm\",\n                          \"all\", \"allocated\", \"alog\", \"amax\", \"amin\",\n                          \"amod\", \"and\", \"anint\", \"any\", \"asin\",\n                          \"associated\", \"atan\", \"besj\", \"besjn\", \"besy\",\n                          \"besyn\", \"bit_size\", \"btest\", \"cabs\", \"ccos\",\n                          \"ceiling\", \"cexp\", \"char\", \"chdir\", \"chmod\",\n                          \"clog\", \"cmplx\", \"command_argument_count\",\n                          \"complex\", \"conjg\", \"cos\", \"cosh\", \"count\",\n                          \"cpu_time\", \"cshift\", \"csin\", \"csqrt\", \"ctime\",\n                          \"c_funloc\", \"c_loc\", \"c_associated\", \"c_null_ptr\",\n                          \"c_null_funptr\", \"c_f_pointer\", \"c_null_char\",\n                          \"c_alert\", \"c_backspace\", \"c_form_feed\",\n                          \"c_new_line\", \"c_carriage_return\",\n                          \"c_horizontal_tab\", \"c_vertical_tab\", \"dabs\",\n                          \"dacos\", \"dasin\", \"datan\", \"date_and_time\",\n                          \"dbesj\", \"dbesj\", \"dbesjn\", \"dbesy\", \"dbesy\",\n                          \"dbesyn\", \"dble\", \"dcos\", \"dcosh\", \"ddim\", \"derf\",\n                          \"derfc\", \"dexp\", \"digits\", \"dim\", \"dint\", \"dlog\",\n                          \"dlog\", \"dmax\", \"dmin\", \"dmod\", \"dnint\",\n                          \"dot_product\", \"dprod\", \"dsign\", \"dsinh\",\n                          \"dsin\", \"dsqrt\", \"dtanh\", \"dtan\", \"dtime\",\n                          \"eoshift\", \"epsilon\", \"erf\", \"erfc\", \"etime\",\n                          \"exit\", \"exp\", \"exponent\", \"extends_type_of\",\n                          \"fdate\", \"fget\", \"fgetc\", \"float\", \"floor\",\n                          \"flush\", \"fnum\", \"fputc\", \"fput\", \"fraction\",\n                          \"fseek\", \"fstat\", \"ftell\", \"gerror\", \"getarg\",\n                          \"get_command\", \"get_command_argument\",\n                          \"get_environment_variable\", \"getcwd\",\n                          \"getenv\", \"getgid\", \"getlog\", \"getpid\",\n                          \"getuid\", \"gmtime\", \"hostnm\", \"huge\", \"iabs\",\n                          \"iachar\", \"iand\", \"iargc\", \"ibclr\", \"ibits\",\n                          \"ibset\", \"ichar\", \"idate\", \"idim\", \"idint\",\n                          \"idnint\", \"ieor\", \"ierrno\", \"ifix\", \"imag\",\n                          \"imagpart\", \"index\", \"int\", \"ior\", \"irand\",\n                          \"isatty\", \"ishft\", \"ishftc\", \"isign\",\n                          \"iso_c_binding\", \"is_iostat_end\", \"is_iostat_eor\",\n                          \"itime\", \"kill\", \"kind\", \"lbound\", \"len\", \"len_trim\",\n                          \"lge\", \"lgt\", \"link\", \"lle\", \"llt\", \"lnblnk\", \"loc\",\n                          \"log\", \"logical\", \"long\", \"lshift\", \"lstat\", \"ltime\",\n                          \"matmul\", \"max\", \"maxexponent\", \"maxloc\", \"maxval\",\n                          \"mclock\", \"merge\", \"move_alloc\", \"min\", \"minexponent\",\n                          \"minloc\", \"minval\", \"mod\", \"modulo\", \"mvbits\",\n                          \"nearest\", \"new_line\", \"nint\", \"not\", \"or\", \"pack\",\n                          \"perror\", \"precision\", \"present\", \"product\", \"radix\",\n                          \"rand\", \"random_number\", \"random_seed\", \"range\",\n                          \"real\", \"realpart\", \"rename\", \"repeat\", \"reshape\",\n                          \"rrspacing\", \"rshift\", \"same_type_as\", \"scale\",\n                          \"scan\", \"second\", \"selected_int_kind\",\n                          \"selected_real_kind\", \"set_exponent\", \"shape\",\n                          \"short\", \"sign\", \"signal\", \"sinh\", \"sin\", \"sleep\",\n                          \"sngl\", \"spacing\", \"spread\", \"sqrt\", \"srand\", \"stat\",\n                          \"sum\", \"symlnk\", \"system\", \"system_clock\", \"tan\",\n                          \"tanh\", \"time\", \"tiny\", \"transfer\", \"transpose\",\n                          \"trim\", \"ttynam\", \"ubound\", \"umask\", \"unlink\",\n                          \"unpack\", \"verify\", \"xor\", \"zabs\", \"zcos\", \"zexp\",\n                          \"zlog\", \"zsin\", \"zsqrt\"]);\n\n    var dataTypes =  words([\"c_bool\", \"c_char\", \"c_double\", \"c_double_complex\",\n                     \"c_float\", \"c_float_complex\", \"c_funptr\", \"c_int\",\n                     \"c_int16_t\", \"c_int32_t\", \"c_int64_t\", \"c_int8_t\",\n                     \"c_int_fast16_t\", \"c_int_fast32_t\", \"c_int_fast64_t\",\n                     \"c_int_fast8_t\", \"c_int_least16_t\", \"c_int_least32_t\",\n                     \"c_int_least64_t\", \"c_int_least8_t\", \"c_intmax_t\",\n                     \"c_intptr_t\", \"c_long\", \"c_long_double\",\n                     \"c_long_double_complex\", \"c_long_long\", \"c_ptr\",\n                     \"c_short\", \"c_signed_char\", \"c_size_t\", \"character\",\n                     \"complex\", \"double\", \"integer\", \"logical\", \"real\"]);\n  var isOperatorChar = /[+\\-*&=<>\\/\\:]/;\n  var litOperator = new RegExp(\"(\\.and\\.|\\.or\\.|\\.eq\\.|\\.lt\\.|\\.le\\.|\\.gt\\.|\\.ge\\.|\\.ne\\.|\\.not\\.|\\.eqv\\.|\\.neqv\\.)\", \"i\");\n\n  function tokenBase(stream, state) {\n\n    if (stream.match(litOperator)){\n        return 'operator';\n    }\n\n    var ch = stream.next();\n    if (ch == \"!\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]\\(\\),]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var word = stream.current().toLowerCase();\n\n    if (keywords.hasOwnProperty(word)){\n            return 'keyword';\n    }\n    if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) {\n            return 'builtin';\n    }\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n            end = true;\n            break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-fortran\", \"fortran\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/fortran/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Fortran mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"fortran.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Fortran</a>\n  </ul>\n</div>\n\n<article>\n<h2>Fortran mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n! Example Fortran code\n  program average\n\n  ! Read in some numbers and take the average\n  ! As written, if there are no data points, an average of zero is returned\n  ! While this may not be desired behavior, it keeps this example simple\n\n  implicit none\n\n  real, dimension(:), allocatable :: points\n  integer                         :: number_of_points\n  real                            :: average_points=0., positive_average=0., negative_average=0.\n\n  write (*,*) \"Input number of points to average:\"\n  read  (*,*) number_of_points\n\n  allocate (points(number_of_points))\n\n  write (*,*) \"Enter the points to average:\"\n  read  (*,*) points\n\n  ! Take the average by summing points and dividing by number_of_points\n  if (number_of_points > 0) average_points = sum(points) / number_of_points\n\n  ! Now form average over positive and negative points only\n  if (count(points > 0.) > 0) then\n     positive_average = sum(points, points > 0.) / count(points > 0.)\n  end if\n\n  if (count(points < 0.) > 0) then\n     negative_average = sum(points, points < 0.) / count(points < 0.)\n  end if\n\n  deallocate (points)\n\n  ! Print result to terminal\n  write (*,'(a,g12.4)') 'Average = ', average_points\n  write (*,'(a,g12.4)') 'Average of positive points = ', positive_average\n  write (*,'(a,g12.4)') 'Average of negative points = ', negative_average\n\n  end program average\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-fortran\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-Fortran</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gas/gas.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gas\", function(_config, parserConfig) {\n  'use strict';\n\n  // If an architecture is specified, its initialization function may\n  // populate this array with custom parsing functions which will be\n  // tried in the event that the standard functions do not find a match.\n  var custom = [];\n\n  // The symbol used to start a line comment changes based on the target\n  // architecture.\n  // If no architecture is pased in \"parserConfig\" then only multiline\n  // comments will have syntax support.\n  var lineCommentStartSymbol = \"\";\n\n  // These directives are architecture independent.\n  // Machine specific directives should go in their respective\n  // architecture initialization function.\n  // Reference:\n  // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops\n  var directives = {\n    \".abort\" : \"builtin\",\n    \".align\" : \"builtin\",\n    \".altmacro\" : \"builtin\",\n    \".ascii\" : \"builtin\",\n    \".asciz\" : \"builtin\",\n    \".balign\" : \"builtin\",\n    \".balignw\" : \"builtin\",\n    \".balignl\" : \"builtin\",\n    \".bundle_align_mode\" : \"builtin\",\n    \".bundle_lock\" : \"builtin\",\n    \".bundle_unlock\" : \"builtin\",\n    \".byte\" : \"builtin\",\n    \".cfi_startproc\" : \"builtin\",\n    \".comm\" : \"builtin\",\n    \".data\" : \"builtin\",\n    \".def\" : \"builtin\",\n    \".desc\" : \"builtin\",\n    \".dim\" : \"builtin\",\n    \".double\" : \"builtin\",\n    \".eject\" : \"builtin\",\n    \".else\" : \"builtin\",\n    \".elseif\" : \"builtin\",\n    \".end\" : \"builtin\",\n    \".endef\" : \"builtin\",\n    \".endfunc\" : \"builtin\",\n    \".endif\" : \"builtin\",\n    \".equ\" : \"builtin\",\n    \".equiv\" : \"builtin\",\n    \".eqv\" : \"builtin\",\n    \".err\" : \"builtin\",\n    \".error\" : \"builtin\",\n    \".exitm\" : \"builtin\",\n    \".extern\" : \"builtin\",\n    \".fail\" : \"builtin\",\n    \".file\" : \"builtin\",\n    \".fill\" : \"builtin\",\n    \".float\" : \"builtin\",\n    \".func\" : \"builtin\",\n    \".global\" : \"builtin\",\n    \".gnu_attribute\" : \"builtin\",\n    \".hidden\" : \"builtin\",\n    \".hword\" : \"builtin\",\n    \".ident\" : \"builtin\",\n    \".if\" : \"builtin\",\n    \".incbin\" : \"builtin\",\n    \".include\" : \"builtin\",\n    \".int\" : \"builtin\",\n    \".internal\" : \"builtin\",\n    \".irp\" : \"builtin\",\n    \".irpc\" : \"builtin\",\n    \".lcomm\" : \"builtin\",\n    \".lflags\" : \"builtin\",\n    \".line\" : \"builtin\",\n    \".linkonce\" : \"builtin\",\n    \".list\" : \"builtin\",\n    \".ln\" : \"builtin\",\n    \".loc\" : \"builtin\",\n    \".loc_mark_labels\" : \"builtin\",\n    \".local\" : \"builtin\",\n    \".long\" : \"builtin\",\n    \".macro\" : \"builtin\",\n    \".mri\" : \"builtin\",\n    \".noaltmacro\" : \"builtin\",\n    \".nolist\" : \"builtin\",\n    \".octa\" : \"builtin\",\n    \".offset\" : \"builtin\",\n    \".org\" : \"builtin\",\n    \".p2align\" : \"builtin\",\n    \".popsection\" : \"builtin\",\n    \".previous\" : \"builtin\",\n    \".print\" : \"builtin\",\n    \".protected\" : \"builtin\",\n    \".psize\" : \"builtin\",\n    \".purgem\" : \"builtin\",\n    \".pushsection\" : \"builtin\",\n    \".quad\" : \"builtin\",\n    \".reloc\" : \"builtin\",\n    \".rept\" : \"builtin\",\n    \".sbttl\" : \"builtin\",\n    \".scl\" : \"builtin\",\n    \".section\" : \"builtin\",\n    \".set\" : \"builtin\",\n    \".short\" : \"builtin\",\n    \".single\" : \"builtin\",\n    \".size\" : \"builtin\",\n    \".skip\" : \"builtin\",\n    \".sleb128\" : \"builtin\",\n    \".space\" : \"builtin\",\n    \".stab\" : \"builtin\",\n    \".string\" : \"builtin\",\n    \".struct\" : \"builtin\",\n    \".subsection\" : \"builtin\",\n    \".symver\" : \"builtin\",\n    \".tag\" : \"builtin\",\n    \".text\" : \"builtin\",\n    \".title\" : \"builtin\",\n    \".type\" : \"builtin\",\n    \".uleb128\" : \"builtin\",\n    \".val\" : \"builtin\",\n    \".version\" : \"builtin\",\n    \".vtable_entry\" : \"builtin\",\n    \".vtable_inherit\" : \"builtin\",\n    \".warning\" : \"builtin\",\n    \".weak\" : \"builtin\",\n    \".weakref\" : \"builtin\",\n    \".word\" : \"builtin\"\n  };\n\n  var registers = {};\n\n  function x86(_parserConfig) {\n    lineCommentStartSymbol = \"#\";\n\n    registers.ax  = \"variable\";\n    registers.eax = \"variable-2\";\n    registers.rax = \"variable-3\";\n\n    registers.bx  = \"variable\";\n    registers.ebx = \"variable-2\";\n    registers.rbx = \"variable-3\";\n\n    registers.cx  = \"variable\";\n    registers.ecx = \"variable-2\";\n    registers.rcx = \"variable-3\";\n\n    registers.dx  = \"variable\";\n    registers.edx = \"variable-2\";\n    registers.rdx = \"variable-3\";\n\n    registers.si  = \"variable\";\n    registers.esi = \"variable-2\";\n    registers.rsi = \"variable-3\";\n\n    registers.di  = \"variable\";\n    registers.edi = \"variable-2\";\n    registers.rdi = \"variable-3\";\n\n    registers.sp  = \"variable\";\n    registers.esp = \"variable-2\";\n    registers.rsp = \"variable-3\";\n\n    registers.bp  = \"variable\";\n    registers.ebp = \"variable-2\";\n    registers.rbp = \"variable-3\";\n\n    registers.ip  = \"variable\";\n    registers.eip = \"variable-2\";\n    registers.rip = \"variable-3\";\n\n    registers.cs  = \"keyword\";\n    registers.ds  = \"keyword\";\n    registers.ss  = \"keyword\";\n    registers.es  = \"keyword\";\n    registers.fs  = \"keyword\";\n    registers.gs  = \"keyword\";\n  }\n\n  function armv6(_parserConfig) {\n    // Reference:\n    // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf\n    // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf\n    lineCommentStartSymbol = \"@\";\n    directives.syntax = \"builtin\";\n\n    registers.r0  = \"variable\";\n    registers.r1  = \"variable\";\n    registers.r2  = \"variable\";\n    registers.r3  = \"variable\";\n    registers.r4  = \"variable\";\n    registers.r5  = \"variable\";\n    registers.r6  = \"variable\";\n    registers.r7  = \"variable\";\n    registers.r8  = \"variable\";\n    registers.r9  = \"variable\";\n    registers.r10 = \"variable\";\n    registers.r11 = \"variable\";\n    registers.r12 = \"variable\";\n\n    registers.sp  = \"variable-2\";\n    registers.lr  = \"variable-2\";\n    registers.pc  = \"variable-2\";\n    registers.r13 = registers.sp;\n    registers.r14 = registers.lr;\n    registers.r15 = registers.pc;\n\n    custom.push(function(ch, stream) {\n      if (ch === '#') {\n        stream.eatWhile(/\\w/);\n        return \"number\";\n      }\n    });\n  }\n\n  var arch = (parserConfig.architecture || \"x86\").toLowerCase();\n  if (arch === \"x86\") {\n    x86(parserConfig);\n  } else if (arch === \"arm\" || arch === \"armv6\") {\n    armv6(parserConfig);\n  }\n\n  function nextUntilUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next === end && !escaped) {\n        return false;\n      }\n      escaped = !escaped && next === \"\\\\\";\n    }\n    return escaped;\n  }\n\n  function clikeComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (ch === \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch === \"*\");\n    }\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (state.tokenize) {\n        return state.tokenize(stream, state);\n      }\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var style, cur, ch = stream.next();\n\n      if (ch === \"/\") {\n        if (stream.eat(\"*\")) {\n          state.tokenize = clikeComment;\n          return clikeComment(stream, state);\n        }\n      }\n\n      if (ch === lineCommentStartSymbol) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (ch === '\"') {\n        nextUntilUnescaped(stream, '\"');\n        return \"string\";\n      }\n\n      if (ch === '.') {\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        style = directives[cur];\n        return style || null;\n      }\n\n      if (ch === '=') {\n        stream.eatWhile(/\\w/);\n        return \"tag\";\n      }\n\n      if (ch === '{') {\n        return \"braket\";\n      }\n\n      if (ch === '}') {\n        return \"braket\";\n      }\n\n      if (/\\d/.test(ch)) {\n        if (ch === \"0\" && stream.eat(\"x\")) {\n          stream.eatWhile(/[0-9a-fA-F]/);\n          return \"number\";\n        }\n        stream.eatWhile(/\\d/);\n        return \"number\";\n      }\n\n      if (/\\w/.test(ch)) {\n        stream.eatWhile(/\\w/);\n        if (stream.eat(\":\")) {\n          return 'tag';\n        }\n        cur = stream.current().toLowerCase();\n        style = registers[cur];\n        return style || null;\n      }\n\n      for (var i = 0; i < custom.length; i++) {\n        style = custom[i](ch, stream, state);\n        if (style) {\n          return style;\n        }\n      }\n    },\n\n    lineComment: lineCommentStartSymbol,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gas/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Gas mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"gas.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Gas</a>\n  </ul>\n</div>\n\n<article>\n<h2>Gas mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\n.syntax unified\n.global main\n\n/* \n *  A\n *  multi-line\n *  comment.\n */\n\n@ A single line comment.\n\nmain:\n        push    {sp, lr}\n        ldr     r0, =message\n        bl      puts\n        mov     r0, #0\n        pop     {sp, pc}\n\nmessage:\n        .asciz \"Hello world!<br />\"\n</textarea>\n        </form>\n\n        <script>\n            var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n                lineNumbers: true,\n                mode: {name: \"gas\", architecture: \"ARMv6\"},\n            });\n        </script>\n\n        <p>Handles AT&amp;T assembler syntax (more specifically this handles\n        the GNU Assembler (gas) syntax.)\n        It takes a single optional configuration parameter:\n        <code>architecture</code>, which can be one of <code>\"ARM\"</code>,\n        <code>\"ARMv6\"</code> or <code>\"x86\"</code>.\n        Including the parameter adds syntax for the registers and special\n        directives for the supplied architecture.\n\n        <p><strong>MIME types defined:</strong> <code>text/x-gas</code></p>\n    </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gfm/gfm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n  var codeDepth = 0;\n  function blankLine(state) {\n    state.code = false;\n    return null;\n  }\n  var gfmOverlay = {\n    startState: function() {\n      return {\n        code: false,\n        codeBlock: false,\n        ateSpace: false\n      };\n    },\n    copyState: function(s) {\n      return {\n        code: s.code,\n        codeBlock: s.codeBlock,\n        ateSpace: s.ateSpace\n      };\n    },\n    token: function(stream, state) {\n      state.combineTokens = null;\n\n      // Hack to prevent formatting override inside code blocks (block and inline)\n      if (state.codeBlock) {\n        if (stream.match(/^```/)) {\n          state.codeBlock = false;\n          return null;\n        }\n        stream.skipToEnd();\n        return null;\n      }\n      if (stream.sol()) {\n        state.code = false;\n      }\n      if (stream.sol() && stream.match(/^```/)) {\n        stream.skipToEnd();\n        state.codeBlock = true;\n        return null;\n      }\n      // If this block is changed, it may need to be updated in Markdown mode\n      if (stream.peek() === '`') {\n        stream.next();\n        var before = stream.pos;\n        stream.eatWhile('`');\n        var difference = 1 + stream.pos - before;\n        if (!state.code) {\n          codeDepth = difference;\n          state.code = true;\n        } else {\n          if (difference === codeDepth) { // Must be exact\n            state.code = false;\n          }\n        }\n        return null;\n      } else if (state.code) {\n        stream.next();\n        return null;\n      }\n      // Check if space. If so, links can be formatted later on\n      if (stream.eatSpace()) {\n        state.ateSpace = true;\n        return null;\n      }\n      if (stream.sol() || state.ateSpace) {\n        state.ateSpace = false;\n        if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?:[a-f0-9]{7,40}\\b)/)) {\n          // User/Project@SHA\n          // User@SHA\n          // SHA\n          state.combineTokens = true;\n          return \"link\";\n        } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n          // User/Project#Num\n          // User#Num\n          // #Num\n          state.combineTokens = true;\n          return \"link\";\n        }\n      }\n      if (stream.match(/^((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i) &&\n         stream.string.slice(stream.start - 2, stream.start) != \"](\") {\n        // URLs\n        // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n        // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n        state.combineTokens = true;\n        return \"link\";\n      }\n      stream.next();\n      return null;\n    },\n    blankLine: blankLine\n  };\n\n  var markdownConfig = {\n    underscoresBreakWords: false,\n    taskLists: true,\n    fencedCodeBlocks: true,\n    strikethrough: true\n  };\n  for (var attr in modeConfig) {\n    markdownConfig[attr] = modeConfig[attr];\n  }\n  markdownConfig.name = \"markdown\";\n  CodeMirror.defineMIME(\"gfmBase\", markdownConfig);\n  return CodeMirror.overlayMode(CodeMirror.getMode(config, \"gfmBase\"), gfmOverlay);\n}, \"markdown\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gfm/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: GFM mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../markdown/markdown.js\"></script>\n<script src=\"gfm.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"../meta.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">GFM</a>\n  </ul>\n</div>\n\n<article>\n<h2>GFM mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nGitHub Flavored Markdown\n========================\n\nEverything from markdown plus GFM features:\n\n## URL autolinking\n\nUnderscores_are_allowed_between_words.\n\n## Strikethrough text\n\nGFM adds syntax to strikethrough text, which is missing from standard Markdown.\n\n~~Mistaken text.~~\n~~**works with other fomatting**~~\n\n~~spans across\nlines~~\n\n## Fenced code blocks (and syntax highlighting)\n\n```javascript\nfor (var i = 0; i &lt; items.length; i++) {\n    console.log(items[i], i); // log them\n}\n```\n\n## Task Lists\n\n- [ ] Incomplete task list item\n- [x] **Completed** task list item\n\n## A bit of GitHub spice\n\n* SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* \\#Num: #1\n* User/#Num: mojombo#1\n* User/Project#Num: mojombo/god#1\n\nSee http://github.github.com/github-flavored-markdown/.\n\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'gfm',\n        lineNumbers: true,\n        theme: \"default\"\n      });\n    </script>\n\n    <p>Optionally depends on other modes for properly highlighted code blocks.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#gfm_*\">normal</a>,  <a href=\"../../test/index.html#verbose,gfm_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gfm/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"gfm\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n  var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: \"gfm\", highlightFormatting: true});\n  function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }\n\n  FT(\"codeBackticks\",\n     \"[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]\");\n\n  FT(\"doubleBackticks\",\n     \"[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]\");\n\n  FT(\"codeBlock\",\n     \"[comment&formatting&formatting-code-block ```css]\",\n     \"[tag foo]\",\n     \"[comment&formatting&formatting-code-block ```]\");\n\n  FT(\"taskList\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][meta&formatting&formatting-task [ ]]][variable-2  foo]\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][property&formatting&formatting-task [x]]][variable-2  foo]\");\n\n  FT(\"formatting_strikethrough\",\n     \"[strikethrough&formatting&formatting-strikethrough ~~][strikethrough foo][strikethrough&formatting&formatting-strikethrough ~~]\");\n\n  FT(\"formatting_strikethrough\",\n     \"foo [strikethrough&formatting&formatting-strikethrough ~~][strikethrough bar][strikethrough&formatting&formatting-strikethrough ~~]\");\n\n  MT(\"emInWordAsterisk\",\n     \"foo[em *bar*]hello\");\n\n  MT(\"emInWordUnderscore\",\n     \"foo_bar_hello\");\n\n  MT(\"emStrongUnderscore\",\n     \"[strong __][em&strong _foo__][em _] bar\");\n\n  MT(\"fencedCodeBlocks\",\n     \"[comment ```]\",\n     \"[comment foo]\",\n     \"\",\n     \"[comment ```]\",\n     \"bar\");\n\n  MT(\"fencedCodeBlockModeSwitching\",\n     \"[comment ```javascript]\",\n     \"[variable foo]\",\n     \"\",\n     \"[comment ```]\",\n     \"bar\");\n\n  MT(\"taskListAsterisk\",\n     \"[variable-2 * []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 * [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 * [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 * ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 * ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListPlus\",\n     \"[variable-2 + []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 + [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 + [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 + ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 + ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListDash\",\n     \"[variable-2 - []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 - [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 - [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 - ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 - ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListNumber\",\n     \"[variable-2 1. []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 2. [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 3. [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 4. ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 1. ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"SHA\",\n     \"foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar\");\n\n  MT(\"SHAEmphasis\",\n     \"[em *foo ][em&link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"shortSHA\",\n     \"foo [link be6a8cc] bar\");\n\n  MT(\"tooShortSHA\",\n     \"foo be6a8c bar\");\n\n  MT(\"longSHA\",\n     \"foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar\");\n\n  MT(\"badSHA\",\n     \"foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar\");\n\n  MT(\"userSHA\",\n     \"foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello\");\n\n  MT(\"userSHAEmphasis\",\n     \"[em *foo ][em&link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"userProjectSHA\",\n     \"foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world\");\n\n  MT(\"userProjectSHAEmphasis\",\n     \"[em *foo ][em&link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"num\",\n     \"foo [link #1] bar\");\n\n  MT(\"numEmphasis\",\n     \"[em *foo ][em&link #1][em *]\");\n\n  MT(\"badNum\",\n     \"foo #1bar hello\");\n\n  MT(\"userNum\",\n     \"foo [link bar#1] hello\");\n\n  MT(\"userNumEmphasis\",\n     \"[em *foo ][em&link bar#1][em *]\");\n\n  MT(\"userProjectNum\",\n     \"foo [link bar/hello#1] world\");\n\n  MT(\"userProjectNumEmphasis\",\n     \"[em *foo ][em&link bar/hello#1][em *]\");\n\n  MT(\"vanillaLink\",\n     \"foo [link http://www.example.com/] bar\");\n\n  MT(\"vanillaLinkPunctuation\",\n     \"foo [link http://www.example.com/]. bar\");\n\n  MT(\"vanillaLinkExtension\",\n     \"foo [link http://www.example.com/index.html] bar\");\n\n  MT(\"vanillaLinkEmphasis\",\n     \"foo [em *][em&link http://www.example.com/index.html][em *] bar\");\n\n  MT(\"notALink\",\n     \"[comment ```css]\",\n     \"[tag foo] {[property color]:[keyword black];}\",\n     \"[comment ```][link http://www.example.com/]\");\n\n  MT(\"notALink\",\n     \"[comment ``foo `bar` http://www.example.com/``] hello\");\n\n  MT(\"notALink\",\n     \"[comment `foo]\",\n     \"[link http://www.example.com/]\",\n     \"[comment `foo]\",\n     \"\",\n     \"[link http://www.example.com/]\");\n\n  MT(\"headerCodeBlockGithub\",\n     \"[header&header-1 # heading]\",\n     \"\",\n     \"[comment ```]\",\n     \"[comment code]\",\n     \"[comment ```]\",\n     \"\",\n     \"Commit: [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2]\",\n     \"Issue: [link #1]\",\n     \"Link: [link http://www.example.com/]\");\n\n  MT(\"strikethrough\",\n     \"[strikethrough ~~foo~~]\");\n\n  MT(\"strikethroughWithStartingSpace\",\n     \"~~ foo~~\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo~~~]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n     \"[strikethrough ~~foo ~~]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo ~~ bar]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo ~~ bar~~]hello\");\n\n  MT(\"strikethroughOneLetter\",\n     \"[strikethrough ~~a~~]\");\n\n  MT(\"strikethroughWrapped\",\n     \"[strikethrough ~~foo]\",\n     \"[strikethrough foo~~]\");\n\n  MT(\"strikethroughParagraph\",\n     \"[strikethrough ~~foo]\",\n     \"\",\n     \"foo[strikethrough ~~bar]\");\n\n  MT(\"strikethroughEm\",\n     \"[strikethrough ~~foo][em&strikethrough *bar*][strikethrough ~~]\");\n\n  MT(\"strikethroughEm\",\n     \"[em *][em&strikethrough ~~foo~~][em *]\");\n\n  MT(\"strikethroughStrong\",\n     \"[strikethrough ~~][strong&strikethrough **foo**][strikethrough ~~]\");\n\n  MT(\"strikethroughStrong\",\n     \"[strong **][strong&strikethrough ~~foo~~][strong **]\");\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gherkin/gherkin.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\nGherkin mode - http://www.cukes.info/\nReport bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n*/\n\n// Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js\n//var Quotes = {\n//  SINGLE: 1,\n//  DOUBLE: 2\n//};\n\n//var regex = {\n//  keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/\n//};\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gherkin\", function () {\n  return {\n    startState: function () {\n      return {\n        lineNumber: 0,\n        tableHeaderLine: false,\n        allowFeature: true,\n        allowBackground: false,\n        allowScenario: false,\n        allowSteps: false,\n        allowPlaceholders: false,\n        allowMultilineArgument: false,\n        inMultilineString: false,\n        inMultilineTable: false,\n        inKeywordLine: false\n      };\n    },\n    token: function (stream, state) {\n      if (stream.sol()) {\n        state.lineNumber++;\n        state.inKeywordLine = false;\n        if (state.inMultilineTable) {\n            state.tableHeaderLine = false;\n            if (!stream.match(/\\s*\\|/, false)) {\n              state.allowMultilineArgument = false;\n              state.inMultilineTable = false;\n            }\n        }\n      }\n\n      stream.eatSpace();\n\n      if (state.allowMultilineArgument) {\n\n        // STRING\n        if (state.inMultilineString) {\n          if (stream.match('\"\"\"')) {\n            state.inMultilineString = false;\n            state.allowMultilineArgument = false;\n          } else {\n            stream.match(/.*/);\n          }\n          return \"string\";\n        }\n\n        // TABLE\n        if (state.inMultilineTable) {\n          if (stream.match(/\\|\\s*/)) {\n            return \"bracket\";\n          } else {\n            stream.match(/[^\\|]*/);\n            return state.tableHeaderLine ? \"header\" : \"string\";\n          }\n        }\n\n        // DETECT START\n        if (stream.match('\"\"\"')) {\n          // String\n          state.inMultilineString = true;\n          return \"string\";\n        } else if (stream.match(\"|\")) {\n          // Table\n          state.inMultilineTable = true;\n          state.tableHeaderLine = true;\n          return \"bracket\";\n        }\n\n      }\n\n      // LINE COMMENT\n      if (stream.match(/#.*/)) {\n        return \"comment\";\n\n      // TAG\n      } else if (!state.inKeywordLine && stream.match(/@\\S+/)) {\n        return \"tag\";\n\n      // FEATURE\n      } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) {\n        state.allowScenario = true;\n        state.allowBackground = true;\n        state.allowPlaceholders = false;\n        state.allowSteps = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // BACKGROUND\n      } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\\-ho\\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // SCENARIO OUTLINE\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) {\n        state.allowPlaceholders = true;\n        state.allowSteps = true;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // EXAMPLES\n      } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = true;\n        return \"keyword\";\n\n      // SCENARIO\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // STEPS\n      } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\\* )/)) {\n        state.inStep = true;\n        state.allowPlaceholders = true;\n        state.allowMultilineArgument = true;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // INLINE STRING\n      } else if (stream.match(/\"[^\"]*\"?/)) {\n        return \"string\";\n\n      // PLACEHOLDER\n      } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) {\n        return \"variable\";\n\n      // Fall through\n      } else {\n        stream.next();\n        stream.eatWhile(/[^@\"<#]/);\n        return null;\n      }\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-feature\", \"gherkin\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/gherkin/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Gherkin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"gherkin.js\"></script>\n<style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Gherkin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Gherkin mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nFeature: Using Google\n  Background: \n    Something something\n    Something else\n  Scenario: Has a homepage\n    When I navigate to the google home page\n    Then the home page should contain the menu and the search form\n  Scenario: Searching for a term \n    When I navigate to the google home page\n    When I search for Tofu\n    Then the search results page is displayed\n    Then the search results page contains 10 individual search results\n    Then the search results contain a link to the wikipedia tofu page\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-feature</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/go/go.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"go\", function(config) {\n  var indentUnit = config.indentUnit;\n\n  var keywords = {\n    \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n    \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n    \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n    \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n    \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n    \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n    \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n    \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n    \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true\n  };\n\n  var atoms = {\n    \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n    \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"imag\":true,\n    \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n    \"println\":true, \"real\":true, \"recover\":true\n  };\n\n  var isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\d\\.]/.test(ch)) {\n      if (ch == \".\") {\n        stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n      } else if (ch == \"0\") {\n        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n      } else {\n        stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n      }\n      return \"number\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || quote == \"`\"))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    if (!state.context.prev) return;\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        if (ctx.type == \"case\") ctx.type = \"}\";\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"case\") ctx.type = \"case\";\n      else if (curPunc == \"}\" && ctx.type == \"}\") ctx = popContext(state);\n      else if (curPunc == ctx.type) popContext(state);\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) {\n        state.context.type = \"}\";\n        return ctx.indented;\n      }\n      var closing = firstChar == ctx.type;\n      if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}):\",\n    fold: \"brace\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-go\", \"go\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/go/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Go mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"go.js\"></script>\n<style>.CodeMirror {border:1px solid #999; background:#ffc}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Go</a>\n  </ul>\n</div>\n\n<article>\n<h2>Go mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n// Prime Sieve in Go.\n// Taken from the Go specification.\n// Copyright © The Go Authors.\n\npackage main\n\nimport \"fmt\"\n\n// Send the sequence 2, 3, 4, ... to channel 'ch'.\nfunc generate(ch chan&lt;- int) {\n\tfor i := 2; ; i++ {\n\t\tch &lt;- i  // Send 'i' to channel 'ch'\n\t}\n}\n\n// Copy the values from channel 'src' to channel 'dst',\n// removing those divisible by 'prime'.\nfunc filter(src &lt;-chan int, dst chan&lt;- int, prime int) {\n\tfor i := range src {    // Loop over values received from 'src'.\n\t\tif i%prime != 0 {\n\t\t\tdst &lt;- i  // Send 'i' to channel 'dst'.\n\t\t}\n\t}\n}\n\n// The prime sieve: Daisy-chain filter processes together.\nfunc sieve() {\n\tch := make(chan int)  // Create a new channel.\n\tgo generate(ch)       // Start generate() as a subprocess.\n\tfor {\n\t\tprime := &lt;-ch\n\t\tfmt.Print(prime, \"\\n\")\n\t\tch1 := make(chan int)\n\t\tgo filter(ch, ch1, prime)\n\t\tch = ch1\n\t}\n}\n\nfunc main() {\n\tsieve()\n}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"elegant\",\n        matchBrackets: true,\n        indentUnit: 8,\n        tabSize: 8,\n        indentWithTabs: true,\n        mode: \"text/x-go\"\n      });\n    </script>\n\n    <p><strong>MIME type:</strong> <code>text/x-go</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/groovy/groovy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"groovy\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\n    \"abstract as assert boolean break byte case catch char class const continue def default \" +\n    \"do double else enum extends final finally float for goto if implements import in \" +\n    \"instanceof int interface long native new package private protected public return \" +\n    \"short static strictfp super switch synchronized threadsafe throw throws transient \" +\n    \"try void volatile while\");\n  var blockKeywords = words(\"catch class do else finally for if switch try while enum interface def\");\n  var atoms = words(\"null true false this\");\n\n  var curPunc;\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return startString(ch, stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      if (stream.eat(/eE/)) { stream.eat(/\\+\\-/); stream.eatWhile(/\\d/); }\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment);\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (expectExpression(state.lastToken)) {\n        return startString(ch, stream, state);\n      }\n    }\n    if (ch == \"-\" && stream.eat(\">\")) {\n      curPunc = \"->\";\n      return null;\n    }\n    if (/[+\\-*&%=<>!?|\\/~]/.test(ch)) {\n      stream.eatWhile(/[+\\-*&%=<>|~]/);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    if (ch == \"@\") { stream.eatWhile(/[\\w\\$_\\.]/); return \"meta\"; }\n    if (state.lastToken == \".\") return \"property\";\n    if (stream.eat(\":\")) { curPunc = \"proplabel\"; return \"property\"; }\n    var cur = stream.current();\n    if (atoms.propertyIsEnumerable(cur)) { return \"atom\"; }\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    return \"variable\";\n  }\n  tokenBase.isBase = true;\n\n  function startString(quote, stream, state) {\n    var tripleQuoted = false;\n    if (quote != \"/\" && stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\";\n    }\n    function t(stream, state) {\n      var escaped = false, next, end = !tripleQuoted;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          if (!tripleQuoted) { break; }\n          if (stream.match(quote + quote)) { end = true; break; }\n        }\n        if (quote == '\"' && next == \"$\" && !escaped && stream.eat(\"{\")) {\n          state.tokenize.push(tokenBaseUntilBrace());\n          return \"string\";\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize.pop();\n      return \"string\";\n    }\n    state.tokenize.push(t);\n    return t(stream, state);\n  }\n\n  function tokenBaseUntilBrace() {\n    var depth = 1;\n    function t(stream, state) {\n      if (stream.peek() == \"}\") {\n        depth--;\n        if (depth == 0) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        }\n      } else if (stream.peek() == \"{\") {\n        depth++;\n      }\n      return tokenBase(stream, state);\n    }\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize.pop();\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function expectExpression(last) {\n    return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n      last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: [tokenBase],\n        context: new Context((basecolumn || 0) - config.indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true,\n        lastToken: null\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        // Automatic semicolon insertion\n        if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) {\n          popContext(state); ctx = state.context;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      // Handle indentation for {x -> \\n ... }\n      else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n        popContext(state);\n        state.context.align = false;\n      }\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      state.lastToken = curPunc || style;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (!state.tokenize[state.tokenize.length-1].isBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n      if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : config.indentUnit);\n    },\n\n    electricChars: \"{}\",\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-groovy\", \"groovy\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/groovy/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Groovy mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"groovy.js\"></script>\n<style>.CodeMirror {border-top: 1px solid #500; border-bottom: 1px solid #500;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Groovy</a>\n  </ul>\n</div>\n\n<article>\n<h2>Groovy mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n//Pattern for groovy script\ndef p = ~/.*\\.groovy/\nnew File( 'd:\\\\scripts' ).eachFileMatch(p) {f ->\n  // imports list\n  def imports = []\n  f.eachLine {\n    // condition to detect an import instruction\n    ln -> if ( ln =~ '^import .*' ) {\n      imports << \"${ln - 'import '}\"\n    }\n  }\n  // print thmen\n  if ( ! imports.empty ) {\n    println f\n    imports.each{ println \"   $it\" }\n  }\n}\n\n/* Coin changer demo code from http://groovy.codehaus.org */\n\nenum UsCoin {\n  quarter(25), dime(10), nickel(5), penny(1)\n  UsCoin(v) { value = v }\n  final value\n}\n\nenum OzzieCoin {\n  fifty(50), twenty(20), ten(10), five(5)\n  OzzieCoin(v) { value = v }\n  final value\n}\n\ndef plural(word, count) {\n  if (count == 1) return word\n  word[-1] == 'y' ? word[0..-2] + \"ies\" : word + \"s\"\n}\n\ndef change(currency, amount) {\n  currency.values().inject([]){ list, coin ->\n     int count = amount / coin.value\n     amount = amount % coin.value\n     list += \"$count ${plural(coin.toString(), count)}\"\n  }\n}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-groovy\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-groovy</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haml/haml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  // full haml mode. This handled embeded ruby and html fragments too\n  CodeMirror.defineMode(\"haml\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n\n    function rubyInQuote(endQuote) {\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = html;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n\n    function ruby(stream, state) {\n      if (stream.match(\"-#\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function html(stream, state) {\n      var ch = stream.peek();\n\n      // handle haml declarations. All declarations that cant be handled here\n      // will be passed to html mode\n      if (state.previousToken.style == \"comment\" ) {\n        if (state.indented > state.previousToken.indented) {\n          stream.skipToEnd();\n          return \"commentLine\";\n        }\n      }\n\n      if (state.startOfLine) {\n        if (ch == \"!\" && stream.match(\"!!\")) {\n          stream.skipToEnd();\n          return \"tag\";\n        } else if (stream.match(/^%[\\w:#\\.]+=/)) {\n          state.tokenize = ruby;\n          return \"hamlTag\";\n        } else if (stream.match(/^%[\\w:]+/)) {\n          return \"hamlTag\";\n        } else if (ch == \"/\" ) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\n      }\n\n      if (state.startOfLine || state.previousToken.style == \"hamlTag\") {\n        if ( ch == \"#\" || ch == \".\") {\n          stream.match(/[\\w-#\\.]*/);\n          return \"hamlAttribute\";\n        }\n      }\n\n      // donot handle --> as valid ruby, make it HTML close comment instead\n      if (state.startOfLine && !stream.match(\"-->\", false) && (ch == \"=\" || ch == \"-\" )) {\n        state.tokenize = ruby;\n        return state.tokenize(stream, state);\n      }\n\n      if (state.previousToken.style == \"hamlTag\" ||\n          state.previousToken.style == \"closeAttributeTag\" ||\n          state.previousToken.style == \"hamlAttribute\") {\n        if (ch == \"(\") {\n          state.tokenize = rubyInQuote(\")\");\n          return state.tokenize(stream, state);\n        } else if (ch == \"{\") {\n          state.tokenize = rubyInQuote(\"}\");\n          return state.tokenize(stream, state);\n        }\n      }\n\n      return htmlMode.token(stream, state.htmlState);\n    }\n\n    return {\n      // default to html mode\n      startState: function() {\n        var htmlState = htmlMode.startState();\n        var rubyState = rubyMode.startState();\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          indented: 0,\n          previousToken: { style: null, indented: 0},\n          tokenize: html\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          indented: state.indented,\n          previousToken: state.previousToken,\n          tokenize: state.tokenize\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        // dont record comment line as we only want to measure comment line with\n        // the opening comment block\n        if (style && style != \"commentLine\") {\n          state.previousToken = { style: style, indented: state.indented };\n        }\n        // if current state is ruby and the previous token is not `,` reset the\n        // tokenize to html\n        if (stream.eol() && state.tokenize == ruby) {\n          stream.backUp(1);\n          var ch = stream.peek();\n          stream.next();\n          if (ch && ch != \",\") {\n            state.tokenize = html;\n          }\n        }\n        // reprocess some of the specific style tag when finish setting previousToken\n        if (style == \"hamlTag\") {\n          style = \"tag\";\n        } else if (style == \"commentLine\") {\n          style = \"comment\";\n        } else if (style == \"hamlAttribute\") {\n          style = \"attribute\";\n        } else if (style == \"closeAttributeTag\") {\n          style = null;\n        }\n        return style;\n      }\n    };\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-haml\", \"haml\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HAML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../ruby/ruby.js\"></script>\n<script src=\"haml.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HAML</a>\n  </ul>\n</div>\n\n<article>\n<h2>HAML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n!!!\n#content\n.left.column(title=\"title\"){:href => \"/hello\", :test => \"#{hello}_#{world}\"}\n    <!-- This is a comment -->\n    %h2 Welcome to our site!\n    %p= puts \"HAML MODE\"\n  .right.column\n    = render :partial => \"sidebar\"\n\n.container\n  .row\n    .span8\n      %h1.title= @page_title\n%p.title= @page_title\n%p\n  /\n    The same as HTML comment\n    Hello multiline comment\n\n  -# haml comment\n      This wont be displayed\n      nor will this\n  Date/Time:\n  - now = DateTime.now\n  %strong= now\n  - if now > DateTime.parse(\"December 31, 2006\")\n    = \"Happy new \" + \"year!\"\n\n%title\n  = @title\n  \\= @title\n  <h1>Title</h1>\n  <h1 title=\"HELLO\">\n    Title\n  </h1>\n    </textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-haml\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haml</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#haml_*\">normal</a>,  <a href=\"../../test/index.html#verbose,haml_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haml/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, \"haml\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Requires at least one media query\n  MT(\"elementName\",\n     \"[tag %h1] Hey There\");\n\n  MT(\"oneElementPerLine\",\n     \"[tag %h1] Hey There %h2\");\n\n  MT(\"idSelector\",\n     \"[tag %h1][attribute #test] Hey There\");\n\n  MT(\"classSelector\",\n     \"[tag %h1][attribute .hello] Hey There\");\n\n  MT(\"docType\",\n     \"[tag !!! XML]\");\n\n  MT(\"comment\",\n     \"[comment / Hello WORLD]\");\n\n  MT(\"notComment\",\n     \"[tag %h1] This is not a / comment \");\n\n  MT(\"attributes\",\n     \"[tag %a]([variable title][operator =][string \\\"test\\\"]){[atom :title] [operator =>] [string \\\"test\\\"]}\");\n\n  MT(\"htmlCode\",\n     \"[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]\");\n\n  MT(\"rubyBlock\",\n     \"[operator =][variable-2 @item]\");\n\n  MT(\"selectorRubyBlock\",\n     \"[tag %a.selector=] [variable-2 @item]\");\n\n  MT(\"nestedRubyBlock\",\n      \"[tag %a]\",\n      \"   [operator =][variable puts] [string \\\"test\\\"]\");\n\n  MT(\"multilinePlaintext\",\n      \"[tag %p]\",\n      \"  Hello,\",\n      \"  World\");\n\n  MT(\"multilineRuby\",\n      \"[tag %p]\",\n      \"  [comment -# this is a comment]\",\n      \"     [comment and this is a comment too]\",\n      \"  Date/Time\",\n      \"  [operator -] [variable now] [operator =] [tag DateTime][operator .][property now]\",\n      \"  [tag %strong=] [variable now]\",\n      \"  [operator -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \\\"December 31, 2006\\\"])\",\n      \"     [operator =][string \\\"Happy\\\"]\",\n      \"     [operator =][string \\\"Belated\\\"]\",\n      \"     [operator =][string \\\"Birthday\\\"]\");\n\n  MT(\"multilineComment\",\n      \"[comment /]\",\n      \"  [comment Multiline]\",\n      \"  [comment Comment]\");\n\n  MT(\"hamlComment\",\n     \"[comment -# this is a comment]\");\n\n  MT(\"multilineHamlComment\",\n     \"[comment -# this is a comment]\",\n     \"   [comment and this is a comment too]\");\n\n  MT(\"multilineHTMLComment\",\n    \"[comment <!--]\",\n    \"  [comment what a comment]\",\n    \"  [comment -->]\");\n\n  MT(\"hamlAfterRubyTag\",\n    \"[attribute .block]\",\n    \"  [tag %strong=] [variable now]\",\n    \"  [attribute .test]\",\n    \"     [operator =][variable now]\",\n    \"  [attribute .right]\");\n\n  MT(\"stretchedRuby\",\n     \"[operator =] [variable puts] [string \\\"Hello\\\"],\",\n     \"   [string \\\"World\\\"]\");\n\n  MT(\"interpolationInHashAttribute\",\n     //\"[tag %div]{[atom :id] [operator =>] [string \\\"#{][variable test][string }_#{][variable ting][string }\\\"]} test\");\n     \"[tag %div]{[atom :id] [operator =>] [string \\\"#{][variable test][string }_#{][variable ting][string }\\\"]} test\");\n\n  MT(\"interpolationInHTMLAttribute\",\n     \"[tag %div]([variable title][operator =][string \\\"#{][variable test][string }_#{][variable ting]()[string }\\\"]) Test\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haskell/haskell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haskell\", function(_config, modeConfig) {\n\n  function switchState(source, setState, f) {\n    setState(f);\n    return f(source, setState);\n  }\n\n  // These should all be Unicode extended, as per the Haskell 2010 report\n  var smallRE = /[a-z_]/;\n  var largeRE = /[A-Z]/;\n  var digitRE = /\\d/;\n  var hexitRE = /[0-9A-Fa-f]/;\n  var octitRE = /[0-7]/;\n  var idRE = /[a-z_A-Z0-9'\\xa1-\\uffff]/;\n  var symbolRE = /[-!#$%&*+.\\/<=>?@\\\\^|~:]/;\n  var specialRE = /[(),;[\\]`{}]/;\n  var whiteCharRE = /[ \\t\\v\\f]/; // newlines are handled in tokenizer\n\n  function normal(source, setState) {\n    if (source.eatWhile(whiteCharRE)) {\n      return null;\n    }\n\n    var ch = source.next();\n    if (specialRE.test(ch)) {\n      if (ch == '{' && source.eat('-')) {\n        var t = \"comment\";\n        if (source.eat('#')) {\n          t = \"meta\";\n        }\n        return switchState(source, setState, ncomment(t, 1));\n      }\n      return null;\n    }\n\n    if (ch == '\\'') {\n      if (source.eat('\\\\')) {\n        source.next();  // should handle other escapes here\n      }\n      else {\n        source.next();\n      }\n      if (source.eat('\\'')) {\n        return \"string\";\n      }\n      return \"error\";\n    }\n\n    if (ch == '\"') {\n      return switchState(source, setState, stringLiteral);\n    }\n\n    if (largeRE.test(ch)) {\n      source.eatWhile(idRE);\n      if (source.eat('.')) {\n        return \"qualifier\";\n      }\n      return \"variable-2\";\n    }\n\n    if (smallRE.test(ch)) {\n      source.eatWhile(idRE);\n      return \"variable\";\n    }\n\n    if (digitRE.test(ch)) {\n      if (ch == '0') {\n        if (source.eat(/[xX]/)) {\n          source.eatWhile(hexitRE); // should require at least 1\n          return \"integer\";\n        }\n        if (source.eat(/[oO]/)) {\n          source.eatWhile(octitRE); // should require at least 1\n          return \"number\";\n        }\n      }\n      source.eatWhile(digitRE);\n      var t = \"number\";\n      if (source.match(/^\\.\\d+/)) {\n        t = \"number\";\n      }\n      if (source.eat(/[eE]/)) {\n        t = \"number\";\n        source.eat(/[-+]/);\n        source.eatWhile(digitRE); // should require at least 1\n      }\n      return t;\n    }\n\n    if (ch == \".\" && source.eat(\".\"))\n      return \"keyword\";\n\n    if (symbolRE.test(ch)) {\n      if (ch == '-' && source.eat(/-/)) {\n        source.eatWhile(/-/);\n        if (!source.eat(symbolRE)) {\n          source.skipToEnd();\n          return \"comment\";\n        }\n      }\n      var t = \"variable\";\n      if (ch == ':') {\n        t = \"variable-2\";\n      }\n      source.eatWhile(symbolRE);\n      return t;\n    }\n\n    return \"error\";\n  }\n\n  function ncomment(type, nest) {\n    if (nest == 0) {\n      return normal;\n    }\n    return function(source, setState) {\n      var currNest = nest;\n      while (!source.eol()) {\n        var ch = source.next();\n        if (ch == '{' && source.eat('-')) {\n          ++currNest;\n        }\n        else if (ch == '-' && source.eat('}')) {\n          --currNest;\n          if (currNest == 0) {\n            setState(normal);\n            return type;\n          }\n        }\n      }\n      setState(ncomment(type, currNest));\n      return type;\n    };\n  }\n\n  function stringLiteral(source, setState) {\n    while (!source.eol()) {\n      var ch = source.next();\n      if (ch == '\"') {\n        setState(normal);\n        return \"string\";\n      }\n      if (ch == '\\\\') {\n        if (source.eol() || source.eat(whiteCharRE)) {\n          setState(stringGap);\n          return \"string\";\n        }\n        if (source.eat('&')) {\n        }\n        else {\n          source.next(); // should handle other escapes here\n        }\n      }\n    }\n    setState(normal);\n    return \"error\";\n  }\n\n  function stringGap(source, setState) {\n    if (source.eat('\\\\')) {\n      return switchState(source, setState, stringLiteral);\n    }\n    source.next();\n    setState(normal);\n    return \"error\";\n  }\n\n\n  var wellKnownWords = (function() {\n    var wkw = {};\n    function setType(t) {\n      return function () {\n        for (var i = 0; i < arguments.length; i++)\n          wkw[arguments[i]] = t;\n      };\n    }\n\n    setType(\"keyword\")(\n      \"case\", \"class\", \"data\", \"default\", \"deriving\", \"do\", \"else\", \"foreign\",\n      \"if\", \"import\", \"in\", \"infix\", \"infixl\", \"infixr\", \"instance\", \"let\",\n      \"module\", \"newtype\", \"of\", \"then\", \"type\", \"where\", \"_\");\n\n    setType(\"keyword\")(\n      \"\\.\\.\", \":\", \"::\", \"=\", \"\\\\\", \"\\\"\", \"<-\", \"->\", \"@\", \"~\", \"=>\");\n\n    setType(\"builtin\")(\n      \"!!\", \"$!\", \"$\", \"&&\", \"+\", \"++\", \"-\", \".\", \"/\", \"/=\", \"<\", \"<=\", \"=<<\",\n      \"==\", \">\", \">=\", \">>\", \">>=\", \"^\", \"^^\", \"||\", \"*\", \"**\");\n\n    setType(\"builtin\")(\n      \"Bool\", \"Bounded\", \"Char\", \"Double\", \"EQ\", \"Either\", \"Enum\", \"Eq\",\n      \"False\", \"FilePath\", \"Float\", \"Floating\", \"Fractional\", \"Functor\", \"GT\",\n      \"IO\", \"IOError\", \"Int\", \"Integer\", \"Integral\", \"Just\", \"LT\", \"Left\",\n      \"Maybe\", \"Monad\", \"Nothing\", \"Num\", \"Ord\", \"Ordering\", \"Rational\", \"Read\",\n      \"ReadS\", \"Real\", \"RealFloat\", \"RealFrac\", \"Right\", \"Show\", \"ShowS\",\n      \"String\", \"True\");\n\n    setType(\"builtin\")(\n      \"abs\", \"acos\", \"acosh\", \"all\", \"and\", \"any\", \"appendFile\", \"asTypeOf\",\n      \"asin\", \"asinh\", \"atan\", \"atan2\", \"atanh\", \"break\", \"catch\", \"ceiling\",\n      \"compare\", \"concat\", \"concatMap\", \"const\", \"cos\", \"cosh\", \"curry\",\n      \"cycle\", \"decodeFloat\", \"div\", \"divMod\", \"drop\", \"dropWhile\", \"either\",\n      \"elem\", \"encodeFloat\", \"enumFrom\", \"enumFromThen\", \"enumFromThenTo\",\n      \"enumFromTo\", \"error\", \"even\", \"exp\", \"exponent\", \"fail\", \"filter\",\n      \"flip\", \"floatDigits\", \"floatRadix\", \"floatRange\", \"floor\", \"fmap\",\n      \"foldl\", \"foldl1\", \"foldr\", \"foldr1\", \"fromEnum\", \"fromInteger\",\n      \"fromIntegral\", \"fromRational\", \"fst\", \"gcd\", \"getChar\", \"getContents\",\n      \"getLine\", \"head\", \"id\", \"init\", \"interact\", \"ioError\", \"isDenormalized\",\n      \"isIEEE\", \"isInfinite\", \"isNaN\", \"isNegativeZero\", \"iterate\", \"last\",\n      \"lcm\", \"length\", \"lex\", \"lines\", \"log\", \"logBase\", \"lookup\", \"map\",\n      \"mapM\", \"mapM_\", \"max\", \"maxBound\", \"maximum\", \"maybe\", \"min\", \"minBound\",\n      \"minimum\", \"mod\", \"negate\", \"not\", \"notElem\", \"null\", \"odd\", \"or\",\n      \"otherwise\", \"pi\", \"pred\", \"print\", \"product\", \"properFraction\",\n      \"putChar\", \"putStr\", \"putStrLn\", \"quot\", \"quotRem\", \"read\", \"readFile\",\n      \"readIO\", \"readList\", \"readLn\", \"readParen\", \"reads\", \"readsPrec\",\n      \"realToFrac\", \"recip\", \"rem\", \"repeat\", \"replicate\", \"return\", \"reverse\",\n      \"round\", \"scaleFloat\", \"scanl\", \"scanl1\", \"scanr\", \"scanr1\", \"seq\",\n      \"sequence\", \"sequence_\", \"show\", \"showChar\", \"showList\", \"showParen\",\n      \"showString\", \"shows\", \"showsPrec\", \"significand\", \"signum\", \"sin\",\n      \"sinh\", \"snd\", \"span\", \"splitAt\", \"sqrt\", \"subtract\", \"succ\", \"sum\",\n      \"tail\", \"take\", \"takeWhile\", \"tan\", \"tanh\", \"toEnum\", \"toInteger\",\n      \"toRational\", \"truncate\", \"uncurry\", \"undefined\", \"unlines\", \"until\",\n      \"unwords\", \"unzip\", \"unzip3\", \"userError\", \"words\", \"writeFile\", \"zip\",\n      \"zip3\", \"zipWith\", \"zipWith3\");\n\n    var override = modeConfig.overrideKeywords;\n    if (override) for (var word in override) if (override.hasOwnProperty(word))\n      wkw[word] = override[word];\n\n    return wkw;\n  })();\n\n\n\n  return {\n    startState: function ()  { return { f: normal }; },\n    copyState:  function (s) { return { f: s.f }; },\n\n    token: function(stream, state) {\n      var t = state.f(stream, function(s) { state.f = s; });\n      var w = stream.current();\n      return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t;\n    },\n\n    blockCommentStart: \"{-\",\n    blockCommentEnd: \"-}\",\n    lineComment: \"--\"\n  };\n\n});\n\nCodeMirror.defineMIME(\"text/x-haskell\", \"haskell\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haskell/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Haskell mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"haskell.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Haskell</a>\n  </ul>\n</div>\n\n<article>\n<h2>Haskell mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nmodule UniquePerms (\n    uniquePerms\n    )\nwhere\n\n-- | Find all unique permutations of a list where there might be duplicates.\nuniquePerms :: (Eq a) => [a] -> [[a]]\nuniquePerms = permBag . makeBag\n\n-- | An unordered collection where duplicate values are allowed,\n-- but represented with a single value and a count.\ntype Bag a = [(a, Int)]\n\nmakeBag :: (Eq a) => [a] -> Bag a\nmakeBag [] = []\nmakeBag (a:as) = mix a $ makeBag as\n  where\n    mix a []                        = [(a,1)]\n    mix a (bn@(b,n):bs) | a == b    = (b,n+1):bs\n                        | otherwise = bn : mix a bs\n\npermBag :: Bag a -> [[a]]\npermBag [] = [[]]\npermBag bs = concatMap (\\(f,cs) -> map (f:) $ permBag cs) . oneOfEach $ bs\n  where\n    oneOfEach [] = []\n    oneOfEach (an@(a,n):bs) =\n        let bs' = if n == 1 then bs else (a,n-1):bs\n        in (a,bs') : mapSnd (an:) (oneOfEach bs)\n    \n    apSnd f (a,b) = (a, f b)\n    mapSnd = map . apSnd\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"elegant\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haskell</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haxe/haxe.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haxe\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  // Tokenizer\n\n  var keywords = function(){\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n    var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"}, attribute = {type:\"attribute\", style: \"attribute\"};\n  var type = kw(\"typedef\");\n    return {\n      \"if\": A, \"while\": A, \"else\": B, \"do\": B, \"try\": B,\n      \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"throw\": C,\n      \"var\": kw(\"var\"), \"inline\":attribute, \"static\": attribute, \"using\":kw(\"import\"),\n    \"public\": attribute, \"private\": attribute, \"cast\": kw(\"cast\"), \"import\": kw(\"import\"), \"macro\": kw(\"macro\"),\n      \"function\": kw(\"function\"), \"catch\": kw(\"catch\"), \"untyped\": kw(\"untyped\"), \"callback\": kw(\"cb\"),\n      \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n      \"in\": operator, \"never\": kw(\"property_access\"), \"trace\":kw(\"trace\"),\n    \"class\": type, \"abstract\":type, \"enum\":type, \"interface\":type, \"typedef\":type, \"extends\":type, \"implements\":type, \"dynamic\":type,\n      \"true\": atom, \"false\": atom, \"null\": atom\n    };\n  }();\n\n  var isOperatorChar = /[+\\-*&%=<>!?|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function nextUntilUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next == end && !escaped)\n        return false;\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return escaped;\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n\n  function haxeTokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, haxeTokenString(ch));\n    else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch))\n      return ret(ch);\n    else if (ch == \"0\" && stream.eat(/x/i)) {\n      stream.eatWhile(/[\\da-f]/i);\n      return ret(\"number\", \"number\");\n    }\n    else if (/\\d/.test(ch) || ch == \"-\" && stream.eat(/\\d/)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    }\n    else if (state.reAllowed && (ch == \"~\" && stream.eat(/\\//))) {\n      nextUntilUnescaped(stream, \"/\");\n      stream.eatWhile(/[gimsu]/);\n      return ret(\"regexp\", \"string-2\");\n    }\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, haxeTokenComment);\n      }\n      else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", null, stream.current());\n      }\n    }\n    else if (ch == \"#\") {\n        stream.skipToEnd();\n        return ret(\"conditional\", \"meta\");\n    }\n    else if (ch == \"@\") {\n      stream.eat(/:/);\n      stream.eatWhile(/[\\w_]/);\n      return ret (\"metadata\", \"meta\");\n    }\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", null, stream.current());\n    }\n    else {\n    var word;\n    if(/[A-Z]/.test(ch))\n    {\n      stream.eatWhile(/[\\w_<>]/);\n      word = stream.current();\n      return ret(\"type\", \"variable-3\", word);\n    }\n    else\n    {\n        stream.eatWhile(/[\\w_]/);\n        var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n        return (known && state.kwAllowed) ? ret(known.type, known.style, word) :\n                       ret(\"variable\", \"variable\", word);\n    }\n    }\n  }\n\n  function haxeTokenString(quote) {\n    return function(stream, state) {\n      if (!nextUntilUnescaped(stream, quote))\n        state.tokenize = haxeTokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function haxeTokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = haxeTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true};\n\n  function HaxeLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n  }\n\n  function parseHaxe(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n    if (type == \"variable\" && imported(state, content)) return \"variable-3\";\n        return style;\n      }\n    }\n  }\n\n  function imported(state, typename)\n  {\n  if (/[a-z]/.test(typename.charAt(0)))\n    return false;\n  var len = state.importedtypes.length;\n  for (var i = 0; i<len; i++)\n    if(state.importedtypes[i]==typename) return true;\n  }\n\n\n  function registerimport(importname) {\n  var state = cx.state;\n  for (var t = state.importedtypes; t; t = t.next)\n    if(t.name == importname) return;\n  state.importedtypes = { name: importname, next: state.importedtypes };\n  }\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function register(varname) {\n    var state = cx.state;\n    if (state.context) {\n      cx.marked = \"def\";\n      for (var v = state.localVars; v; v = v.next)\n        if (v.name == varname) return;\n      state.localVars = {name: varname, next: state.localVars};\n    }\n  }\n\n  // Combinators\n\n  var defaultVars = {name: \"this\", next: null};\n  function pushcontext() {\n    if (!cx.state.context) cx.state.localVars = defaultVars;\n    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars;\n    cx.state.context = cx.state.context.prev;\n  }\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state;\n      state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function f(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\") return pass();\n      else return cont(f);\n    };\n    return f;\n  }\n\n  function statement(type) {\n    if (type == \"@\") return cont(metadef);\n    if (type == \"var\") return cont(pushlex(\"vardef\"), vardef1, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), pushcontext, block, poplex, popcontext);\n    if (type == \";\") return cont();\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), expect(\"(\"), pushlex(\")\"), forspec1, expect(\")\"),\n                                      poplex, statement, poplex);\n    if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n    if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n                                         block, poplex, poplex);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n                                        statement, poplex, popcontext);\n    if (type == \"import\") return cont(importdef, expect(\";\"));\n    if (type == \"typedef\") return cont(typedef);\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function expression(type) {\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"keyword c\") return cont(maybeexpression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeoperator);\n    if (type == \"operator\") return cont(expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(expression, \"]\"), poplex, maybeoperator);\n    if (type == \"{\") return cont(pushlex(\"}\"), commasep(objprop, \"}\"), poplex, maybeoperator);\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n\n  function maybeoperator(type, value) {\n    if (type == \"operator\" && /\\+\\+|--/.test(value)) return cont(maybeoperator);\n    if (type == \"operator\" || type == \":\") return cont(expression);\n    if (type == \";\") return;\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(expression, \")\"), poplex, maybeoperator);\n    if (type == \".\") return cont(property, maybeoperator);\n    if (type == \"[\") return cont(pushlex(\"]\"), expression, expect(\"]\"), poplex, maybeoperator);\n  }\n\n  function maybeattribute(type) {\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"var\") return cont(vardef1);\n  }\n\n  function metadef(type) {\n    if(type == \":\") return cont(metadef);\n    if(type == \"variable\") return cont(metadef);\n    if(type == \"(\") return cont(pushlex(\")\"), commasep(metaargs, \")\"), poplex, statement);\n  }\n  function metaargs(type) {\n    if(type == \"variable\") return cont();\n  }\n\n  function importdef (type, value) {\n  if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n  else if(type == \"variable\" || type == \"property\" || type == \".\" || value == \"*\") return cont(importdef);\n  }\n\n  function typedef (type, value)\n  {\n  if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n  else if (type == \"type\" && /[A-Z]/.test(value.charAt(0))) { return cont(); }\n  }\n\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperator, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type) {\n    if (type == \"variable\") cx.marked = \"property\";\n    if (atomicTypes.hasOwnProperty(type)) return cont(expect(\":\"), expression);\n  }\n  function commasep(what, end) {\n    function proceed(type) {\n      if (type == \",\") return cont(what, proceed);\n      if (type == end) return cont();\n      return cont(expect(end));\n    }\n    return function(type) {\n      if (type == end) return cont();\n      else return pass(what, proceed);\n    };\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function vardef1(type, value) {\n    if (type == \"variable\"){register(value); return cont(typeuse, vardef2);}\n    return cont();\n  }\n  function vardef2(type, value) {\n    if (value == \"=\") return cont(expression, vardef2);\n    if (type == \",\") return cont(vardef1);\n  }\n  function forspec1(type, value) {\n  if (type == \"variable\") {\n    register(value);\n  }\n  return cont(pushlex(\")\"), pushcontext, forin, expression, poplex, statement, popcontext);\n  }\n  function forin(_type, value) {\n    if (value == \"in\") return cont();\n  }\n  function functiondef(type, value) {\n    if (type == \"variable\") {register(value); return cont(functiondef);}\n    if (value == \"new\") return cont(functiondef);\n    if (type == \"(\") return cont(pushlex(\")\"), pushcontext, commasep(funarg, \")\"), poplex, typeuse, statement, popcontext);\n  }\n  function typeuse(type) {\n    if(type == \":\") return cont(typestring);\n  }\n  function typestring(type) {\n    if(type == \"type\") return cont();\n    if(type == \"variable\") return cont();\n    if(type == \"{\") return cont(pushlex(\"}\"), commasep(typeprop, \"}\"), poplex);\n  }\n  function typeprop(type) {\n    if(type == \"variable\") return cont(typeuse);\n  }\n  function funarg(type, value) {\n    if (type == \"variable\") {register(value); return cont(typeuse);}\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n    var defaulttypes = [\"Int\", \"Float\", \"String\", \"Void\", \"Std\", \"Bool\", \"Dynamic\", \"Array\"];\n      return {\n        tokenize: haxeTokenBase,\n        reAllowed: true,\n        kwAllowed: true,\n        cc: [],\n        lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n    importedtypes: defaulttypes,\n        context: parserConfig.localVars && {vars: parserConfig.localVars},\n        indented: 0\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.reAllowed = !!(type == \"operator\" || type == \"keyword c\" || type.match(/^[\\[{}\\(,;:]$/));\n      state.kwAllowed = type != '.';\n      return parseHaxe(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != haxeTokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n      if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n      if (type == \"vardef\") return lexical.indented + 4;\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"stat\" || type == \"form\") return lexical.indented + indentUnit;\n      else if (lexical.info == \"switch\" && !closing)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-haxe\", \"haxe\");\n\nCodeMirror.defineMode(\"hxml\", function () {\n\n  return {\n    startState: function () {\n      return {\n        define: false,\n        inString: false\n      };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      var sol = stream.sol();\n\n      ///* comments */\n      if (ch == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (sol && ch == \"-\") {\n        var style = \"variable-2\";\n\n        stream.eat(/-/);\n\n        if (stream.peek() == \"-\") {\n          stream.eat(/-/);\n          style = \"keyword a\";\n        }\n\n        if (stream.peek() == \"D\") {\n          stream.eat(/[D]/);\n          style = \"keyword c\";\n          state.define = true;\n        }\n\n        stream.eatWhile(/[A-Z]/i);\n        return style;\n      }\n\n      var ch = stream.peek();\n\n      if (state.inString == false && ch == \"'\") {\n        state.inString = true;\n        ch = stream.next();\n      }\n\n      if (state.inString == true) {\n        if (stream.skipTo(\"'\")) {\n\n        } else {\n          stream.skipToEnd();\n        }\n\n        if (stream.peek() == \"'\") {\n          stream.next();\n          state.inString = false;\n        }\n\n        return \"string\";\n      }\n\n      stream.next();\n      return null;\n    },\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-hxml\", \"hxml\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/haxe/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Haxe mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"haxe.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Haxe</a>\n  </ul>\n</div>\n\n<article>\n<h2>Haxe mode</h2>\n\n\n<div><p><textarea id=\"code-haxe\" name=\"code\">\nimport one.two.Three;\n\n@attr(\"test\")\nclass Foo&lt;T&gt; extends Three\n{\n\tpublic function new()\n\t{\n\t\tnoFoo = 12;\n\t}\n\t\n\tpublic static inline function doFoo(obj:{k:Int, l:Float}):Int\n\t{\n\t\tfor(i in 0...10)\n\t\t{\n\t\t\tobj.k++;\n\t\t\ttrace(i);\n\t\t\tvar var1 = new Array();\n\t\t\tif(var1.length > 1)\n\t\t\t\tthrow \"Error\";\n\t\t}\n\t\t// The following line should not be colored, the variable is scoped out\n\t\tvar1;\n\t\t/* Multi line\n\t\t * Comment test\n\t\t */\n\t\treturn obj.k;\n\t}\n\tprivate function bar():Void\n\t{\n\t\t#if flash\n\t\tvar t1:String = \"1.21\";\n\t\t#end\n\t\ttry {\n\t\t\tdoFoo({k:3, l:1.2});\n\t\t}\n\t\tcatch (e : String) {\n\t\t\ttrace(e);\n\t\t}\n\t\tvar t2:Float = cast(3.2);\n\t\tvar t3:haxe.Timer = new haxe.Timer();\n\t\tvar t4 = {k:Std.int(t2), l:Std.parseFloat(t1)};\n\t\tvar t5 = ~/123+.*$/i;\n\t\tdoFoo(t4);\n\t\tuntyped t1 = 4;\n\t\tbob = new Foo&lt;Int&gt;\n\t}\n\tpublic var okFoo(default, never):Float;\n\tvar noFoo(getFoo, null):Int;\n\tfunction getFoo():Int {\n\t\treturn noFoo;\n\t}\n\t\n\tpublic var three:Int;\n}\nenum Color\n{\n\tred;\n\tgreen;\n\tblue;\n\tgrey( v : Int );\n\trgb (r:Int,g:Int,b:Int);\n}\n</textarea></p>\n\n<p>Hxml mode:</p>\n\n<p><textarea id=\"code-hxml\">\n-cp test\n-js path/to/file.js\n#-remap nme:flash\n--next\n-D source-map-content\n-cmd 'test'\n-lib lime\n</textarea></p>\n</div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code-haxe\"), {\n      \tmode: \"haxe\",\n        lineNumbers: true,\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n      \n      editor = CodeMirror.fromTextArea(document.getElementById(\"code-hxml\"), {\n      \tmode: \"hxml\",\n        lineNumbers: true,\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haxe, text/x-hxml</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/htmlembedded/htmlembedded.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"htmlembedded\", function(config, parserConfig) {\n\n  //config settings\n  var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i,\n      scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i;\n\n  //inner modes\n  var scriptingMode, htmlMixedMode;\n\n  //tokenizer when in html mode\n  function htmlDispatch(stream, state) {\n      if (stream.match(scriptStartRegex, false)) {\n          state.token=scriptingDispatch;\n          return scriptingMode.token(stream, state.scriptState);\n          }\n      else\n          return htmlMixedMode.token(stream, state.htmlState);\n    }\n\n  //tokenizer when in scripting mode\n  function scriptingDispatch(stream, state) {\n      if (stream.match(scriptEndRegex, false))  {\n          state.token=htmlDispatch;\n          return htmlMixedMode.token(stream, state.htmlState);\n         }\n      else\n          return scriptingMode.token(stream, state.scriptState);\n         }\n\n\n  return {\n    startState: function() {\n      scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec);\n      htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, \"htmlmixed\");\n      return {\n          token :  parserConfig.startOpen ? scriptingDispatch : htmlDispatch,\n          htmlState : CodeMirror.startState(htmlMixedMode),\n          scriptState : CodeMirror.startState(scriptingMode)\n      };\n    },\n\n    token: function(stream, state) {\n      return state.token(stream, state);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.token == htmlDispatch)\n        return htmlMixedMode.indent(state.htmlState, textAfter);\n      else if (scriptingMode.indent)\n        return scriptingMode.indent(state.scriptState, textAfter);\n    },\n\n    copyState: function(state) {\n      return {\n       token : state.token,\n       htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState),\n       scriptState : CodeMirror.copyState(scriptingMode, state.scriptState)\n      };\n    },\n\n    innerMode: function(state) {\n      if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode};\n      else return {state: state.htmlState, mode: htmlMixedMode};\n    }\n  };\n}, \"htmlmixed\");\n\nCodeMirror.defineMIME(\"application/x-ejs\", { name: \"htmlembedded\", scriptingModeSpec:\"javascript\"});\nCodeMirror.defineMIME(\"application/x-aspx\", { name: \"htmlembedded\", scriptingModeSpec:\"text/x-csharp\"});\nCodeMirror.defineMIME(\"application/x-jsp\", { name: \"htmlembedded\", scriptingModeSpec:\"text/x-java\"});\nCodeMirror.defineMIME(\"application/x-erb\", { name: \"htmlembedded\", scriptingModeSpec:\"ruby\"});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/htmlembedded/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Html Embedded Scripts mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"htmlembedded.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Html Embedded Scripts</a>\n  </ul>\n</div>\n\n<article>\n<h2>Html Embedded Scripts mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<%\nfunction hello(who) {\n\treturn \"Hello \" + who;\n}\n%>\nThis is an example of EJS (embedded javascript)\n<p>The program says <%= hello(\"world\") %>.</p>\n<script>\n\talert(\"And here is some normal JS code\"); // also colored\n</script>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"application/x-ejs\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on\n    JavaScript, CSS and XML.<br />Other dependancies include those of the scriping language chosen.</p>\n\n    <p><strong>MIME types defined:</strong> <code>application/x-aspx</code> (ASP.NET), \n    <code>application/x-ejs</code> (Embedded Javascript), <code>application/x-jsp</code> (JavaServer Pages)</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/htmlmixed/htmlmixed.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"htmlmixed\", function(config, parserConfig) {\n  var htmlMode = CodeMirror.getMode(config, {name: \"xml\",\n                                             htmlMode: true,\n                                             multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n                                             multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag});\n  var cssMode = CodeMirror.getMode(config, \"css\");\n\n  var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes;\n  scriptTypes.push({matches: /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^$/i,\n                    mode: CodeMirror.getMode(config, \"javascript\")});\n  if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) {\n    var conf = scriptTypesConf[i];\n    scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)});\n  }\n  scriptTypes.push({matches: /./,\n                    mode: CodeMirror.getMode(config, \"text/plain\")});\n\n  function html(stream, state) {\n    var tagName = state.htmlState.tagName;\n    if (tagName) tagName = tagName.toLowerCase();\n    var style = htmlMode.token(stream, state.htmlState);\n    if (tagName == \"script\" && /\\btag\\b/.test(style) && stream.current() == \">\") {\n      // Script block: mode to change to depends on type attribute\n      var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\\btype\\s*=\\s*(\"[^\"]+\"|'[^']+'|\\S+)[^<]*$/i);\n      scriptType = scriptType ? scriptType[1] : \"\";\n      if (scriptType && /[\\\"\\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1);\n      for (var i = 0; i < scriptTypes.length; ++i) {\n        var tp = scriptTypes[i];\n        if (typeof tp.matches == \"string\" ? scriptType == tp.matches : tp.matches.test(scriptType)) {\n          if (tp.mode) {\n            state.token = script;\n            state.localMode = tp.mode;\n            state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, \"\"));\n          }\n          break;\n        }\n      }\n    } else if (tagName == \"style\" && /\\btag\\b/.test(style) && stream.current() == \">\") {\n      state.token = css;\n      state.localMode = cssMode;\n      state.localState = cssMode.startState(htmlMode.indent(state.htmlState, \"\"));\n    }\n    return style;\n  }\n  function maybeBackup(stream, pat, style) {\n    var cur = stream.current();\n    var close = cur.search(pat), m;\n    if (close > -1) stream.backUp(cur.length - close);\n    else if (m = cur.match(/<\\/?$/)) {\n      stream.backUp(cur.length);\n      if (!stream.match(pat, false)) stream.match(cur);\n    }\n    return style;\n  }\n  function script(stream, state) {\n    if (stream.match(/^<\\/\\s*script\\s*>/i, false)) {\n      state.token = html;\n      state.localState = state.localMode = null;\n      return null;\n    }\n    return maybeBackup(stream, /<\\/\\s*script\\s*>/,\n                       state.localMode.token(stream, state.localState));\n  }\n  function css(stream, state) {\n    if (stream.match(/^<\\/\\s*style\\s*>/i, false)) {\n      state.token = html;\n      state.localState = state.localMode = null;\n      return null;\n    }\n    return maybeBackup(stream, /<\\/\\s*style\\s*>/,\n                       cssMode.token(stream, state.localState));\n  }\n\n  return {\n    startState: function() {\n      var state = htmlMode.startState();\n      return {token: html, localMode: null, localState: null, htmlState: state};\n    },\n\n    copyState: function(state) {\n      if (state.localState)\n        var local = CodeMirror.copyState(state.localMode, state.localState);\n      return {token: state.token, localMode: state.localMode, localState: local,\n              htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n    },\n\n    token: function(stream, state) {\n      return state.token(stream, state);\n    },\n\n    indent: function(state, textAfter) {\n      if (!state.localMode || /^\\s*<\\//.test(textAfter))\n        return htmlMode.indent(state.htmlState, textAfter);\n      else if (state.localMode.indent)\n        return state.localMode.indent(state.localState, textAfter);\n      else\n        return CodeMirror.Pass;\n    },\n\n    innerMode: function(state) {\n      return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n    }\n  };\n}, \"xml\", \"javascript\", \"css\");\n\nCodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/htmlmixed/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HTML mixed mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/selection/selection-pointer.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../vbscript/vbscript.js\"></script>\n<script src=\"htmlmixed.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HTML mixed</a>\n  </ul>\n</div>\n\n<article>\n<h2>HTML mixed mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<html style=\"color: green\">\n  <!-- this is a comment -->\n  <head>\n    <title>Mixed HTML Example</title>\n    <style type=\"text/css\">\n      h1 {font-family: comic sans; color: #f0f;}\n      div {background: yellow !important;}\n      body {\n        max-width: 50em;\n        margin: 1em 2em 1em 5em;\n      }\n    </style>\n  </head>\n  <body>\n    <h1>Mixed HTML Example</h1>\n    <script>\n      function jsFunc(arg1, arg2) {\n        if (arg1 && arg2) document.body.innerHTML = \"achoo\";\n      }\n    </script>\n  </body>\n</html>\n</textarea></form>\n    <script>\n      // Define an extended mixed-mode that understands vbscript and\n      // leaves mustache/handlebars embedded templates in html mode\n      var mixedMode = {\n        name: \"htmlmixed\",\n        scriptTypes: [{matches: /\\/x-handlebars-template|\\/x-mustache/i,\n                       mode: null},\n                      {matches: /(text|application)\\/(x-)?vb(a|script)/i,\n                       mode: \"vbscript\"}]\n      };\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: mixedMode,\n        selectionPointer: true\n      });\n    </script>\n\n    <p>The HTML mixed mode depends on the XML, JavaScript, and CSS modes.</p>\n\n    <p>It takes an optional mode configuration\n    option, <code>scriptTypes</code>, which can be used to add custom\n    behavior for specific <code>&lt;script type=\"...\"></code> tags. If\n    given, it should hold an array of <code>{matches, mode}</code>\n    objects, where <code>matches</code> is a string or regexp that\n    matches the script type, and <code>mode</code> is\n    either <code>null</code>, for script types that should stay in\n    HTML mode, or a <a href=\"../../doc/manual.html#option_mode\">mode\n    spec</a> corresponding to the mode that should be used for the\n    script.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/html</code>\n    (redefined, only takes effect if you load this parser after the\n    XML parser).</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/http/http.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"http\", function() {\n  function failFirstLine(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return \"error\";\n  }\n\n  function start(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d/)) {\n      state.cur = responseStatusCode;\n      return \"keyword\";\n    } else if (stream.match(/^[A-Z]+/) && /[ \\t]/.test(stream.peek())) {\n      state.cur = requestPath;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function responseStatusCode(stream, state) {\n    var code = stream.match(/^\\d+/);\n    if (!code) return failFirstLine(stream, state);\n\n    state.cur = responseStatusText;\n    var status = Number(code[0]);\n    if (status >= 100 && status < 200) {\n      return \"positive informational\";\n    } else if (status >= 200 && status < 300) {\n      return \"positive success\";\n    } else if (status >= 300 && status < 400) {\n      return \"positive redirect\";\n    } else if (status >= 400 && status < 500) {\n      return \"negative client-error\";\n    } else if (status >= 500 && status < 600) {\n      return \"negative server-error\";\n    } else {\n      return \"error\";\n    }\n  }\n\n  function responseStatusText(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return null;\n  }\n\n  function requestPath(stream, state) {\n    stream.eatWhile(/\\S/);\n    state.cur = requestProtocol;\n    return \"string-2\";\n  }\n\n  function requestProtocol(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d$/)) {\n      state.cur = header;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function header(stream) {\n    if (stream.sol() && !stream.eat(/[ \\t]/)) {\n      if (stream.match(/^.*?:/)) {\n        return \"atom\";\n      } else {\n        stream.skipToEnd();\n        return \"error\";\n      }\n    } else {\n      stream.skipToEnd();\n      return \"string\";\n    }\n  }\n\n  function body(stream) {\n    stream.skipToEnd();\n    return null;\n  }\n\n  return {\n    token: function(stream, state) {\n      var cur = state.cur;\n      if (cur != header && cur != body && stream.eatSpace()) return null;\n      return cur(stream, state);\n    },\n\n    blankLine: function(state) {\n      state.cur = body;\n    },\n\n    startState: function() {\n      return {cur: start};\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"message/http\", \"http\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/http/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HTTP mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"http.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HTTP</a>\n  </ul>\n</div>\n\n<article>\n<h2>HTTP mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nPOST /somewhere HTTP/1.1\nHost: example.com\nIf-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT\nContent-Type: application/x-www-form-urlencoded;\n\tcharset=utf-8\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11\n\nThis is the request body!\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>message/http</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/idl/idl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp('^((' + words.join(')|(') + '))\\\\b', 'i');\n  };\n\n  var builtinArray = [\n    'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog',\n    'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir',\n    'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices',\n    'arrow', 'ascii_template', 'asin', 'assoc', 'atan',\n    'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot',\n    'bar_plot', 'beseli', 'beselj', 'beselk', 'besely',\n    'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template',\n    'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy',\n    'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor',\n    'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr',\n    'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar',\n    'caldat', 'call_external', 'call_function', 'call_method',\n    'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil',\n    'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc',\n    'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close',\n    'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage',\n    'color_convert', 'color_exchange', 'color_quan', 'color_range_map',\n    'colorbar', 'colorize_sample', 'colormap_applicable',\n    'colormap_gradient', 'colormap_rotation', 'colortable',\n    'comfit', 'command_line_args', 'common', 'compile_opt', 'complex',\n    'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid',\n    'conj', 'constrained_min', 'contour', 'contour', 'convert_coord',\n    'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate',\n    'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata',\n    'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength',\n    'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord',\n    'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load',\n    'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index',\n    'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form',\n    'cw_fslider', 'cw_light_editor', 'cw_light_editor_get',\n    'cw_light_editor_set', 'cw_orient', 'cw_palette_editor',\n    'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu',\n    'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists',\n    'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key',\n    'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv',\n    'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig',\n    'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect',\n    'dialog_message', 'dialog_pickfile', 'dialog_printersetup',\n    'dialog_printjob', 'dialog_read_image',\n    'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen',\n    'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register',\n    'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont',\n    'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss',\n    'empty', 'enable_sysrtn', 'eof', 'eos', 'erase',\n    'erf', 'erfc', 'erfcx', 'erode', 'errorplot',\n    'errplot', 'estimator_filter', 'execute', 'exit', 'exp',\n    'expand', 'expand_path', 'expint', 'extrac', 'extract_slice',\n    'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename',\n    'file_chmod', 'file_copy', 'file_delete', 'file_dirname',\n    'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info',\n    'file_lines', 'file_link', 'file_mkdir', 'file_move',\n    'file_poll_input', 'file_readlink', 'file_same',\n    'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip',\n    'file_which', 'file_zip', 'filepath', 'findgen', 'finite',\n    'fix', 'flick', 'float', 'floor', 'flow3',\n    'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun',\n    'fstat', 'fulstr', 'funct', 'function', 'fv_test',\n    'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf',\n    'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit',\n    'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects',\n    'get_kbrd', 'get_login_info',\n    'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul',\n    'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata',\n    'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash',\n    'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave',\n    'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d',\n    'hist_equal', 'histogram', 'hls', 'hough', 'hqr',\n    'hsv', 'i18n_multibytetoutf8',\n    'i18n_multibytetowidechar', 'i18n_utf8tomultibyte',\n    'i18n_widechartomultibyte',\n    'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity',\n    'idl_base64', 'idl_container', 'idl_validname',\n    'idlexbr_assistant', 'idlitsys_createtool',\n    'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata',\n    'igetid', 'igetproperty', 'iimage', 'image', 'image_cont',\n    'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen',\n    'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol',\n    'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen',\n    'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata',\n    'iregister', 'ireset', 'iresolve', 'irotate', 'isa',\n    'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft',\n    'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate',\n    'ivector', 'ivolume', 'izoom', 'journal', 'json_parse',\n    'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d',\n    'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove',\n    'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec',\n    'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert',\n    'la_least_square_equality', 'la_least_squares', 'la_linear_equation',\n    'la_ludc', 'la_lumprove', 'la_lusol',\n    'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired',\n    'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre',\n    'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter',\n    'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen',\n    'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit',\n    'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get',\n    'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr',\n    'long', 'long64', 'lsode', 'lu_complex', 'ludc',\n    'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array',\n    'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid',\n    'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch',\n    'map_proj_forward', 'map_proj_image', 'map_proj_info',\n    'map_proj_init', 'map_proj_inverse',\n    'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test',\n    'mean', 'meanabsdev', 'mean_filter', 'median', 'memory',\n    'mesh_clip', 'mesh_decimate', 'mesh_issolid',\n    'mesh_merge', 'mesh_numtriangles',\n    'mesh_obj', 'mesh_smooth', 'mesh_surfacearea',\n    'mesh_validate', 'mesh_volume',\n    'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct',\n    'moment', 'morph_close', 'morph_distance',\n    'morph_gradient', 'morph_hitormiss',\n    'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements',\n    'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl',\n    'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class',\n    'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid',\n    'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr',\n    'openu', 'openw', 'oplot', 'oploterr', 'orderedhash',\n    'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep',\n    'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox',\n    'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface',\n    'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot',\n    'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv',\n    'polygon', 'polyline', 'polywarp', 'popd', 'powell',\n    'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes',\n    'print', 'printf', 'printd', 'pro', 'product',\n    'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts',\n    'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid',\n    'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb',\n    'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp',\n    'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg',\n    'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm',\n    'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate',\n    'r_test', 'radon', 'randomn', 'randomu', 'ranks',\n    'rdpix', 'read', 'readf', 'read_ascii', 'read_binary',\n    'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image',\n    'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict',\n    'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk',\n    'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap',\n    'read_xwd', 'reads', 'readu', 'real_part', 'rebin',\n    'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow',\n    'register_cursor', 'regress', 'replicate',\n    'replicate_inplace', 'resolve_all',\n    'resolve_routine', 'restore', 'retall', 'return', 'reverse',\n    'rk4', 'roberts', 'rot', 'rotate', 'round',\n    'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save',\n    'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d',\n    'scope_level', 'scope_traceback', 'scope_varfetch',\n    'scope_varname', 'search2d',\n    'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release',\n    'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf',\n    'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug',\n    'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont',\n    'signum', 'simplex', 'sin', 'sindgen', 'sinh',\n    'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image',\n    'smooth', 'sobel', 'socket', 'sort', 'spawn',\n    'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp',\n    'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin',\n    'sprstp', 'sqrt', 'standardize', 'stddev', 'stop',\n    'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline',\n    'stregex', 'stretch', 'string', 'strjoin', 'strlen',\n    'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos',\n    'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide',\n    'strupcase', 'surface', 'surface', 'surfr', 'svdc',\n    'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol',\n    'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',\n    'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',\n    'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',\n    'thread', 'threed', 'tic', 'time_test2', 'timegen',\n    'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',\n    'total', 'trace', 'transpose', 'tri_surf', 'triangulate',\n    'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',\n    'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv',\n    'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename',\n    'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen',\n    'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq',\n    'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector',\n    'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt',\n    'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri',\n    'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base',\n    'widget_button', 'widget_combobox', 'widget_control',\n    'widget_displaycontextmenu', 'widget_draw',\n    'widget_droplist', 'widget_event', 'widget_info',\n    'widget_label', 'widget_list',\n    'widget_propertysheet', 'widget_slider', 'widget_tab',\n    'widget_table', 'widget_text',\n    'widget_tree', 'widget_tree_move', 'widget_window',\n    'wiener_filter', 'window',\n    'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image',\n    'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png',\n    'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff',\n    'write_video', 'write_wav', 'write_wave', 'writeu', 'wset',\n    'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet',\n    'wv_denoise', 'wv_dwt', 'wv_fn_coiflet',\n    'wv_fn_daubechies', 'wv_fn_gaussian',\n    'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul',\n    'wv_fn_symlet', 'wv_import_data',\n    'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires',\n    'wv_pwt', 'wv_tool_denoise',\n    'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate',\n    'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview',\n    'xobjview_rotate', 'xobjview_write_image',\n    'xpalette', 'xpcolor', 'xplot3d',\n    'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit',\n    'xvolume', 'xvolume_rotate', 'xvolume_write_image',\n    'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24'\n  ];\n  var builtins = wordRegexp(builtinArray);\n\n  var keywordArray = [\n    'begin', 'end', 'endcase', 'endfor',\n    'endwhile', 'endif', 'endrep', 'endforeach',\n    'break', 'case', 'continue', 'for',\n    'foreach', 'goto', 'if', 'then', 'else',\n    'repeat', 'until', 'switch', 'while',\n    'do', 'pro', 'function'\n  ];\n  var keywords = wordRegexp(keywordArray);\n\n  CodeMirror.registerHelper(\"hintWords\", \"idl\", builtinArray.concat(keywordArray));\n\n  var identifiers = new RegExp('^[_a-z\\xa1-\\uffff][_a-z0-9\\xa1-\\uffff]*', 'i');\n\n  var singleOperators = /[+\\-*&=<>\\/@#~$]/;\n  var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i');\n\n  function tokenBase(stream) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match(';')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n    }\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return 'string'; }\n    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; }\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; }\n    if (stream.match(builtins)) { return 'builtin'; }\n    if (stream.match(identifiers)) { return 'variable'; }\n\n    if (stream.match(singleOperators) || stream.match(boolOperators)) {\n      return 'operator'; }\n\n    // Handle non-detected items\n    stream.next();\n    return null;\n  };\n\n  CodeMirror.defineMode('idl', function() {\n    return {\n      token: function(stream) {\n        return tokenBase(stream);\n      }\n    };\n  });\n\n  CodeMirror.defineMIME('text/x-idl', 'idl');\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/idl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: IDL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"idl.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">IDL</a>\n  </ul>\n</div>\n\n<article>\n<h2>IDL mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n;; Example IDL code\nFUNCTION mean_and_stddev,array\n  ;; This program reads in an array of numbers\n  ;; and returns a structure containing the\n  ;; average and standard deviation\n\n  ave = 0.0\n  count = 0.0\n\n  for i=0,N_ELEMENTS(array)-1 do begin\n      ave = ave + array[i]\n      count = count + 1\n  endfor\n  \n  ave = ave/count\n\n  std = stddev(array)  \n\n  return, {average:ave,std:std}\n\nEND\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"idl\",\n               version: 1,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-idl</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Language Modes</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.css\">\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../index.html\">Home</a>\n    <li><a href=\"../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a class=active href=\"#\">Language modes</a>\n  </ul>\n</div>\n\n<article>\n\n  <h2>Language modes</h2>\n\n  <p>This is a list of every mode in the distribution. Each mode lives\nin a subdirectory of the <code>mode/</code> directory, and typically\ndefines a single JavaScript file that implements the mode. Loading\nsuch file will make the language available to CodeMirror, through\nthe <a href=\"../doc/manual.html#option_mode\"><code>mode</code></a>\noption.</p>\n\n  <div style=\"-webkit-columns: 100px 2; -moz-columns: 100px 2; columns: 100px 2;\">\n    <ul style=\"margin-top: 0\">\n      <li><a href=\"apl/index.html\">APL</a></li>\n      <li><a href=\"asterisk/index.html\">Asterisk dialplan</a></li>\n      <li><a href=\"clike/index.html\">C, C++, C#</a></li>\n      <li><a href=\"clojure/index.html\">Clojure</a></li>\n      <li><a href=\"cobol/index.html\">COBOL</a></li>\n      <li><a href=\"coffeescript/index.html\">CoffeeScript</a></li>\n      <li><a href=\"commonlisp/index.html\">Common Lisp</a></li>\n      <li><a href=\"css/index.html\">CSS</a></li>\n      <li><a href=\"cypher/index.html\">Cypher</a></li>\n      <li><a href=\"python/index.html\">Cython</a></li>\n      <li><a href=\"d/index.html\">D</a></li>\n      <li><a href=\"dart/index.html\">Dart</a></li>\n      <li><a href=\"django/index.html\">Django</a> (templating language)</li>\n      <li><a href=\"dockerfile/index.html\">Dockerfile</a></li>\n      <li><a href=\"diff/index.html\">diff</a></li>\n      <li><a href=\"dtd/index.html\">DTD</a></li>\n      <li><a href=\"dylan/index.html\">Dylan</a></li>\n      <li><a href=\"ebnf/index.html\">EBNF</a></li>\n      <li><a href=\"ecl/index.html\">ECL</a></li>\n      <li><a href=\"eiffel/index.html\">Eiffel</a></li>\n      <li><a href=\"erlang/index.html\">Erlang</a></li>\n      <li><a href=\"forth/index.html\">Forth</a></li>\n      <li><a href=\"fortran/index.html\">Fortran</a></li>\n      <li><a href=\"mllike/index.html\">F#</a></li>\n      <li><a href=\"gas/index.html\">Gas</a> (AT&amp;T-style assembly)</li>\n      <li><a href=\"gherkin/index.html\">Gherkin</a></li>\n      <li><a href=\"go/index.html\">Go</a></li>\n      <li><a href=\"groovy/index.html\">Groovy</a></li>\n      <li><a href=\"haml/index.html\">HAML</a></li>\n      <li><a href=\"haskell/index.html\">Haskell</a></li>\n      <li><a href=\"haxe/index.html\">Haxe</a></li>\n      <li><a href=\"htmlembedded/index.html\">HTML embedded scripts</a></li>\n      <li><a href=\"htmlmixed/index.html\">HTML mixed-mode</a></li>\n      <li><a href=\"http/index.html\">HTTP</a></li>\n      <li><a href=\"idl/index.html\">IDL</a></li>\n      <li><a href=\"clike/index.html\">Java</a></li>\n      <li><a href=\"jade/index.html\">Jade</a></li>\n      <li><a href=\"javascript/index.html\">JavaScript</a></li>\n      <li><a href=\"jinja2/index.html\">Jinja2</a></li>\n      <li><a href=\"julia/index.html\">Julia</a></li>\n      <li><a href=\"kotlin/index.html\">Kotlin</a></li>\n      <li><a href=\"css/less.html\">LESS</a></li>\n      <li><a href=\"livescript/index.html\">LiveScript</a></li>\n      <li><a href=\"lua/index.html\">Lua</a></li>\n      <li><a href=\"markdown/index.html\">Markdown</a> (<a href=\"gfm/index.html\">GitHub-flavour</a>)</li>\n      <li><a href=\"mirc/index.html\">mIRC</a></li>\n      <li><a href=\"modelica/index.html\">Modelica</a></li>\n      <li><a href=\"nginx/index.html\">Nginx</a></li>\n      <li><a href=\"ntriples/index.html\">NTriples</a></li>\n      <li><a href=\"clike/index.html\">Objective C</a></li>\n      <li><a href=\"mllike/index.html\">OCaml</a></li>\n      <li><a href=\"octave/index.html\">Octave</a> (MATLAB)</li>\n      <li><a href=\"pascal/index.html\">Pascal</a></li>\n      <li><a href=\"pegjs/index.html\">PEG.js</a></li>\n      <li><a href=\"perl/index.html\">Perl</a></li>\n      <li><a href=\"php/index.html\">PHP</a></li>\n      <li><a href=\"pig/index.html\">Pig Latin</a></li>\n      <li><a href=\"properties/index.html\">Properties files</a></li>\n      <li><a href=\"puppet/index.html\">Puppet</a></li>\n      <li><a href=\"python/index.html\">Python</a></li>\n      <li><a href=\"q/index.html\">Q</a></li>\n      <li><a href=\"r/index.html\">R</a></li>\n      <li><a href=\"rpm/index.html\">RPM</a></li>\n      <li><a href=\"rst/index.html\">reStructuredText</a></li>\n      <li><a href=\"ruby/index.html\">Ruby</a></li>\n      <li><a href=\"rust/index.html\">Rust</a></li>\n      <li><a href=\"sass/index.html\">Sass</a></li>\n      <li><a href=\"spreadsheet/index.html\">Spreadsheet</a></li>\n      <li><a href=\"clike/scala.html\">Scala</a></li>\n      <li><a href=\"scheme/index.html\">Scheme</a></li>\n      <li><a href=\"css/scss.html\">SCSS</a></li>\n      <li><a href=\"shell/index.html\">Shell</a></li>\n      <li><a href=\"sieve/index.html\">Sieve</a></li>\n      <li><a href=\"slim/index.html\">Slim</a></li>\n      <li><a href=\"smalltalk/index.html\">Smalltalk</a></li>\n      <li><a href=\"smarty/index.html\">Smarty</a></li>\n      <li><a href=\"smartymixed/index.html\">Smarty/HTML mixed</a></li>\n      <li><a href=\"solr/index.html\">Solr</a></li>\n      <li><a href=\"soy/index.html\">Soy</a></li>\n      <li><a href=\"stylus/index.html\">Stylus</a></li>\n      <li><a href=\"sql/index.html\">SQL</a> (several dialects)</li>\n      <li><a href=\"sparql/index.html\">SPARQL</a></li>\n      <li><a href=\"stex/index.html\">sTeX, LaTeX</a></li>\n      <li><a href=\"tcl/index.html\">Tcl</a></li>\n      <li><a href=\"textile/index.html\">Textile</a></li>\n      <li><a href=\"tiddlywiki/index.html\">Tiddlywiki</a></li>\n      <li><a href=\"tiki/index.html\">Tiki wiki</a></li>\n      <li><a href=\"toml/index.html\">TOML</a></li>\n      <li><a href=\"tornado/index.html\">Tornado</a> (templating language)</li>\n      <li><a href=\"turtle/index.html\">Turtle</a></li>\n      <li><a href=\"vb/index.html\">VB.NET</a></li>\n      <li><a href=\"vbscript/index.html\">VBScript</a></li>\n      <li><a href=\"velocity/index.html\">Velocity</a></li>\n      <li><a href=\"verilog/index.html\">Verilog/SystemVerilog</a></li>\n      <li><a href=\"xml/index.html\">XML/HTML</a></li>\n      <li><a href=\"xquery/index.html\">XQuery</a></li>\n      <li><a href=\"yaml/index.html\">YAML</a></li>\n      <li><a href=\"z80/index.html\">Z80</a></li>\n    </ul>\n  </div>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/jade/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Jade Templating Mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"jade.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Jade Templating Mode</a>\n  </ul>\n</div>\n\n<article>\n<h2>Jade Templating Mode</h2>\n<form><textarea id=\"code\" name=\"code\">\ndoctype html\n  html\n    head\n      title= \"Jade Templating CodeMirror Mode Example\"\n      link(rel='stylesheet', href='/css/bootstrap.min.css')\n      link(rel='stylesheet', href='/css/index.css')\n      script(type='text/javascript', src='/js/jquery-1.9.1.min.js')\n      script(type='text/javascript', src='/js/bootstrap.min.js')\n    body\n      div.header\n        h1 Welcome to this Example\n      div.spots\n        if locals.spots\n          each spot in spots\n            div.spot.well\n         div\n           if spot.logo\n             img.img-rounded.logo(src=spot.logo)\n           else\n             img.img-rounded.logo(src=\"img/placeholder.png\")\n         h3\n           a(href=spot.hash) ##{spot.hash}\n           if spot.title\n             span.title #{spot.title}\n           if spot.desc\n             div #{spot.desc}\n        else\n          h3 There are no spots currently available.\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"jade\", alignCDATA: true},\n        lineNumbers: true\n      });\n    </script>\n    <h3>The Jade Templating Mode</h3>\n      <p> Created by Forbes Lindesay. Managed as part of a Brackets extension at <a href=\"https://github.com/ForbesLindesay/jade-brackets\">https://github.com/ForbesLindesay/jade-brackets</a>.</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-jade</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/jade/jade.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"), require(\"../css/css\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\", \"../css/css\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('jade', function (config) {\n  // token types\n  var KEYWORD = 'keyword';\n  var DOCTYPE = 'meta';\n  var ID = 'builtin';\n  var CLASS = 'qualifier';\n\n  var ATTRS_NEST = {\n    '{': '}',\n    '(': ')',\n    '[': ']'\n  };\n\n  var jsMode = CodeMirror.getMode(config, 'javascript');\n\n  function State() {\n    this.javaScriptLine = false;\n    this.javaScriptLineExcludesColon = false;\n\n    this.javaScriptArguments = false;\n    this.javaScriptArgumentsDepth = 0;\n\n    this.isInterpolating = false;\n    this.interpolationNesting = 0;\n\n    this.jsState = jsMode.startState();\n\n    this.restOfLine = '';\n\n    this.isIncludeFiltered = false;\n    this.isEach = false;\n\n    this.lastTag = '';\n    this.scriptType = '';\n\n    // Attributes Mode\n    this.isAttrs = false;\n    this.attrsNest = [];\n    this.inAttributeName = true;\n    this.attributeIsType = false;\n    this.attrValue = '';\n\n    // Indented Mode\n    this.indentOf = Infinity;\n    this.indentToken = '';\n\n    this.innerMode = null;\n    this.innerState = null;\n\n    this.innerModeForLine = false;\n  }\n  /**\n   * Safely copy a state\n   *\n   * @return {State}\n   */\n  State.prototype.copy = function () {\n    var res = new State();\n    res.javaScriptLine = this.javaScriptLine;\n    res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;\n    res.javaScriptArguments = this.javaScriptArguments;\n    res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;\n    res.isInterpolating = this.isInterpolating;\n    res.interpolationNesting = this.intpolationNesting;\n\n    res.jsState = CodeMirror.copyState(jsMode, this.jsState);\n\n    res.innerMode = this.innerMode;\n    if (this.innerMode && this.innerState) {\n      res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);\n    }\n\n    res.restOfLine = this.restOfLine;\n\n    res.isIncludeFiltered = this.isIncludeFiltered;\n    res.isEach = this.isEach;\n    res.lastTag = this.lastTag;\n    res.scriptType = this.scriptType;\n    res.isAttrs = this.isAttrs;\n    res.attrsNest = this.attrsNest.slice();\n    res.inAttributeName = this.inAttributeName;\n    res.attributeIsType = this.attributeIsType;\n    res.attrValue = this.attrValue;\n    res.indentOf = this.indentOf;\n    res.indentToken = this.indentToken;\n\n    res.innerModeForLine = this.innerModeForLine;\n\n    return res;\n  };\n\n  function javaScript(stream, state) {\n    if (stream.sol()) {\n      // if javaScriptLine was set at end of line, ignore it\n      state.javaScriptLine = false;\n      state.javaScriptLineExcludesColon = false;\n    }\n    if (state.javaScriptLine) {\n      if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n        state.javaScriptLine = false;\n        state.javaScriptLineExcludesColon = false;\n        return;\n      }\n      var tok = jsMode.token(stream, state.jsState);\n      if (stream.eol()) state.javaScriptLine = false;\n      return tok || true;\n    }\n  }\n  function javaScriptArguments(stream, state) {\n    if (state.javaScriptArguments) {\n      if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n        state.javaScriptArguments = false;\n        return;\n      }\n      if (stream.peek() === '(') {\n        state.javaScriptArgumentsDepth++;\n      } else if (stream.peek() === ')') {\n        state.javaScriptArgumentsDepth--;\n      }\n      if (state.javaScriptArgumentsDepth === 0) {\n        state.javaScriptArguments = false;\n        return;\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      return tok || true;\n    }\n  }\n\n  function yieldStatement(stream) {\n    if (stream.match(/^yield\\b/)) {\n        return 'keyword';\n    }\n  }\n\n  function doctype(stream) {\n    if (stream.match(/^(?:doctype) *([^\\n]+)?/)) {\n        return DOCTYPE;\n    }\n  }\n\n  function interpolation(stream, state) {\n    if (stream.match('#{')) {\n      state.isInterpolating = true;\n      state.interpolationNesting = 0;\n      return 'punctuation';\n    }\n  }\n\n  function interpolationContinued(stream, state) {\n    if (state.isInterpolating) {\n      if (stream.peek() === '}') {\n        state.interpolationNesting--;\n        if (state.interpolationNesting < 0) {\n          stream.next();\n          state.isInterpolating = false;\n          return 'puncutation';\n        }\n      } else if (stream.peek() === '{') {\n        state.interpolationNesting++;\n      }\n      return jsMode.token(stream, state.jsState) || true;\n    }\n  }\n\n  function caseStatement(stream, state) {\n    if (stream.match(/^case\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function when(stream, state) {\n    if (stream.match(/^when\\b/)) {\n      state.javaScriptLine = true;\n      state.javaScriptLineExcludesColon = true;\n      return KEYWORD;\n    }\n  }\n\n  function defaultStatement(stream) {\n    if (stream.match(/^default\\b/)) {\n      return KEYWORD;\n    }\n  }\n\n  function extendsStatement(stream, state) {\n    if (stream.match(/^extends?\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function append(stream, state) {\n    if (stream.match(/^append\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function prepend(stream, state) {\n    if (stream.match(/^prepend\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function block(stream, state) {\n    if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n\n  function include(stream, state) {\n    if (stream.match(/^include\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function includeFiltered(stream, state) {\n    if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n      state.isIncludeFiltered = true;\n      return KEYWORD;\n    }\n  }\n\n  function includeFilteredContinued(stream, state) {\n    if (state.isIncludeFiltered) {\n      var tok = filter(stream, state);\n      state.isIncludeFiltered = false;\n      state.restOfLine = 'string';\n      return tok;\n    }\n  }\n\n  function mixin(stream, state) {\n    if (stream.match(/^mixin\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function call(stream, state) {\n    if (stream.match(/^\\+([-\\w]+)/)) {\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return 'variable';\n    }\n    if (stream.match(/^\\+#{/, false)) {\n      stream.next();\n      state.mixinCallAfter = true;\n      return interpolation(stream, state);\n    }\n  }\n  function callArguments(stream, state) {\n    if (state.mixinCallAfter) {\n      state.mixinCallAfter = false;\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return true;\n    }\n  }\n\n  function conditional(stream, state) {\n    if (stream.match(/^(if|unless|else if|else)\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function each(stream, state) {\n    if (stream.match(/^(- *)?(each|for)\\b/)) {\n      state.isEach = true;\n      return KEYWORD;\n    }\n  }\n  function eachContinued(stream, state) {\n    if (state.isEach) {\n      if (stream.match(/^ in\\b/)) {\n        state.javaScriptLine = true;\n        state.isEach = false;\n        return KEYWORD;\n      } else if (stream.sol() || stream.eol()) {\n        state.isEach = false;\n      } else if (stream.next()) {\n        while (!stream.match(/^ in\\b/, false) && stream.next());\n        return 'variable';\n      }\n    }\n  }\n\n  function whileStatement(stream, state) {\n    if (stream.match(/^while\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function tag(stream, state) {\n    var captures;\n    if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n      state.lastTag = captures[1].toLowerCase();\n      if (state.lastTag === 'script') {\n        state.scriptType = 'application/javascript';\n      }\n      return 'tag';\n    }\n  }\n\n  function filter(stream, state) {\n    if (stream.match(/^:([\\w\\-]+)/)) {\n      var innerMode;\n      if (config && config.innerModes) {\n        innerMode = config.innerModes(stream.current().substring(1));\n      }\n      if (!innerMode) {\n        innerMode = stream.current().substring(1);\n      }\n      if (typeof innerMode === 'string') {\n        innerMode = CodeMirror.getMode(config, innerMode);\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'atom';\n    }\n  }\n\n  function code(stream, state) {\n    if (stream.match(/^(!?=|-)/)) {\n      state.javaScriptLine = true;\n      return 'punctuation';\n    }\n  }\n\n  function id(stream) {\n    if (stream.match(/^#([\\w-]+)/)) {\n      return ID;\n    }\n  }\n\n  function className(stream) {\n    if (stream.match(/^\\.([\\w-]+)/)) {\n      return CLASS;\n    }\n  }\n\n  function attrs(stream, state) {\n    if (stream.peek() == '(') {\n      stream.next();\n      state.isAttrs = true;\n      state.attrsNest = [];\n      state.inAttributeName = true;\n      state.attrValue = '';\n      state.attributeIsType = false;\n      return 'punctuation';\n    }\n  }\n\n  function attrsContinued(stream, state) {\n    if (state.isAttrs) {\n      if (ATTRS_NEST[stream.peek()]) {\n        state.attrsNest.push(ATTRS_NEST[stream.peek()]);\n      }\n      if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n        state.attrsNest.pop();\n      } else  if (stream.eat(')')) {\n        state.isAttrs = false;\n        return 'punctuation';\n      }\n      if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n        if (stream.peek() === '=' || stream.peek() === '!') {\n          state.inAttributeName = false;\n          state.jsState = jsMode.startState();\n          if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n            state.attributeIsType = true;\n          } else {\n            state.attributeIsType = false;\n          }\n        }\n        return 'attribute';\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      if (state.attributeIsType && tok === 'string') {\n        state.scriptType = stream.current().toString();\n      }\n      if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n        try {\n          Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''));\n          state.inAttributeName = true;\n          state.attrValue = '';\n          stream.backUp(stream.current().length);\n          return attrsContinued(stream, state);\n        } catch (ex) {\n          //not the end of an attribute\n        }\n      }\n      state.attrValue += stream.current();\n      return tok || true;\n    }\n  }\n\n  function attributesBlock(stream, state) {\n    if (stream.match(/^&attributes\\b/)) {\n      state.javaScriptArguments = true;\n      state.javaScriptArgumentsDepth = 0;\n      return 'keyword';\n    }\n  }\n\n  function indent(stream) {\n    if (stream.sol() && stream.eatSpace()) {\n      return 'indent';\n    }\n  }\n\n  function comment(stream, state) {\n    if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n      state.indentOf = stream.indentation();\n      state.indentToken = 'comment';\n      return 'comment';\n    }\n  }\n\n  function colon(stream) {\n    if (stream.match(/^: */)) {\n      return 'colon';\n    }\n  }\n\n  function text(stream, state) {\n    if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n      return 'string';\n    }\n    if (stream.match(/^(<[^\\n]*)/, false)) {\n      // html string\n      setInnerMode(stream, state, 'htmlmixed');\n      state.innerModeForLine = true;\n      return innerMode(stream, state, true);\n    }\n  }\n\n  function dot(stream, state) {\n    if (stream.eat('.')) {\n      var innerMode = null;\n      if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {\n        innerMode = state.scriptType.toLowerCase().replace(/\"|'/g, '');\n      } else if (state.lastTag === 'style') {\n        innerMode = 'css';\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'dot';\n    }\n  }\n\n  function fail(stream) {\n    stream.next();\n    return null;\n  }\n\n\n  function setInnerMode(stream, state, mode) {\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = config.innerModes ? config.innerModes(mode) || mode : mode;\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = CodeMirror.getMode(config, mode);\n    state.indentOf = stream.indentation();\n\n    if (mode && mode.name !== 'null') {\n      state.innerMode = mode;\n    } else {\n      state.indentToken = 'string';\n    }\n  }\n  function innerMode(stream, state, force) {\n    if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {\n      if (state.innerMode) {\n        if (!state.innerState) {\n          state.innerState = state.innerMode.startState ? state.innerMode.startState(stream.indentation()) : {};\n        }\n        return stream.hideFirstChars(state.indentOf + 2, function () {\n          return state.innerMode.token(stream, state.innerState) || true;\n        });\n      } else {\n        stream.skipToEnd();\n        return state.indentToken;\n      }\n    } else if (stream.sol()) {\n      state.indentOf = Infinity;\n      state.indentToken = null;\n      state.innerMode = null;\n      state.innerState = null;\n    }\n  }\n  function restOfLine(stream, state) {\n    if (stream.sol()) {\n      // if restOfLine was set at end of line, ignore it\n      state.restOfLine = '';\n    }\n    if (state.restOfLine) {\n      stream.skipToEnd();\n      var tok = state.restOfLine;\n      state.restOfLine = '';\n      return tok;\n    }\n  }\n\n\n  function startState() {\n    return new State();\n  }\n  function copyState(state) {\n    return state.copy();\n  }\n  /**\n   * Get the next token in the stream\n   *\n   * @param {Stream} stream\n   * @param {State} state\n   */\n  function nextToken(stream, state) {\n    var tok = innerMode(stream, state)\n      || restOfLine(stream, state)\n      || interpolationContinued(stream, state)\n      || includeFilteredContinued(stream, state)\n      || eachContinued(stream, state)\n      || attrsContinued(stream, state)\n      || javaScript(stream, state)\n      || javaScriptArguments(stream, state)\n      || callArguments(stream, state)\n\n      || yieldStatement(stream, state)\n      || doctype(stream, state)\n      || interpolation(stream, state)\n      || caseStatement(stream, state)\n      || when(stream, state)\n      || defaultStatement(stream, state)\n      || extendsStatement(stream, state)\n      || append(stream, state)\n      || prepend(stream, state)\n      || block(stream, state)\n      || include(stream, state)\n      || includeFiltered(stream, state)\n      || mixin(stream, state)\n      || call(stream, state)\n      || conditional(stream, state)\n      || each(stream, state)\n      || whileStatement(stream, state)\n      || tag(stream, state)\n      || filter(stream, state)\n      || code(stream, state)\n      || id(stream, state)\n      || className(stream, state)\n      || attrs(stream, state)\n      || attributesBlock(stream, state)\n      || indent(stream, state)\n      || text(stream, state)\n      || comment(stream, state)\n      || colon(stream, state)\n      || dot(stream, state)\n      || fail(stream, state);\n\n    return tok === true ? null : tok;\n  }\n  return {\n    startState: startState,\n    copyState: copyState,\n    token: nextToken\n  };\n});\n\nCodeMirror.defineMIME('text/x-jade', 'jade');\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/javascript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: JavaScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">JavaScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>JavaScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n// Demo code (the actual new parser character stream implementation)\n\nfunction StringStream(string) {\n  this.pos = 0;\n  this.string = string;\n}\n\nStringStream.prototype = {\n  done: function() {return this.pos >= this.string.length;},\n  peek: function() {return this.string.charAt(this.pos);},\n  next: function() {\n    if (this.pos &lt; this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch &amp;&amp; match.test ? match.test(ch) : match(ch);\n    if (ok) {this.pos++; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match));\n    if (this.pos > start) return this.string.slice(start, this.pos);\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.pos;},\n  eatSpace: function() {\n    var start = this.pos;\n    while (/\\s/.test(this.string.charAt(this.pos))) this.pos++;\n    return this.pos - start;\n  },\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}\n      if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {\n        if (consume !== false) this.pos += str.length;\n        return true;\n      }\n    }\n    else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match &amp;&amp; consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  }\n};\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        continueComments: \"Enter\",\n        extraKeys: {\"Ctrl-Q\": \"toggleComment\"}\n      });\n    </script>\n\n    <p>\n      JavaScript mode supports several configuration options:\n      <ul>\n        <li><code>json</code> which will set the mode to expect JSON\n        data rather than a JavaScript program.</li>\n        <li><code>jsonld</code> which will set the mode to expect\n        <a href=\"http://json-ld.org\">JSON-LD</a> linked data rather\n        than a JavaScript program (<a href=\"json-ld.html\">demo</a>).</li>\n        <li><code>typescript</code> which will activate additional\n        syntax highlighting and some other things for TypeScript code\n        (<a href=\"typescript.html\">demo</a>).</li>\n        <li><code>statementIndent</code> which (given a number) will\n        determine the amount of indentation to use for statements\n        continued on a new line.</li>\n        <li><code>wordCharacters</code>, a regexp that indicates which\n        characters should be considered part of an identifier.\n        Defaults to <code>/[\\w$]/</code>, which does not handle\n        non-ASCII identifiers. Can be set to something more elaborate\n        to improve Unicode support.</li>\n      </ul>\n    </p>\n\n    <p><strong>MIME types defined:</strong> <code>text/javascript</code>, <code>application/json</code>, <code>application/ld+json</code>, <code>text/typescript</code>, <code>application/typescript</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/javascript/javascript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// TODO actually recognize syntax of TypeScript constructs\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n  var statementIndent = parserConfig.statementIndent;\n  var jsonldMode = parserConfig.jsonld;\n  var jsonMode = parserConfig.json || jsonldMode;\n  var isTS = parserConfig.typescript;\n  var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n  // Tokenizer\n\n  var keywords = function(){\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n    var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n    var jsKeywords = {\n      \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n      \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"delete\": C, \"throw\": C, \"debugger\": C,\n      \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n      \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n      \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n      \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n      \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n      \"this\": kw(\"this\"), \"module\": kw(\"module\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n      \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C\n    };\n\n    // Extend the 'normal' keywords with the TypeScript language extensions\n    if (isTS) {\n      var type = {type: \"variable\", style: \"variable-3\"};\n      var tsKeywords = {\n        // object-like things\n        \"interface\": kw(\"interface\"),\n        \"extends\": kw(\"extends\"),\n        \"constructor\": kw(\"constructor\"),\n\n        // scope modifiers\n        \"public\": kw(\"public\"),\n        \"private\": kw(\"private\"),\n        \"protected\": kw(\"protected\"),\n        \"static\": kw(\"static\"),\n\n        // types\n        \"string\": type, \"number\": type, \"bool\": type, \"any\": type\n      };\n\n      for (var attr in tsKeywords) {\n        jsKeywords[attr] = tsKeywords[attr];\n      }\n    }\n\n    return jsKeywords;\n  }();\n\n  var isOperatorChar = /[+\\-*&%=<>!?|~^]/;\n  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n  function readRegexp(stream) {\n    var escaped = false, next, inSet = false;\n    while ((next = stream.next()) != null) {\n      if (!escaped) {\n        if (next == \"/\" && !inSet) return;\n        if (next == \"[\") inSet = true;\n        else if (inSet && next == \"]\") inSet = false;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \".\" && stream.match(/^\\d+(?:[eE][+\\-]?\\d+)?/)) {\n      return ret(\"number\", \"number\");\n    } else if (ch == \".\" && stream.match(\"..\")) {\n      return ret(\"spread\", \"meta\");\n    } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return ret(ch);\n    } else if (ch == \"=\" && stream.eat(\">\")) {\n      return ret(\"=>\", \"operator\");\n    } else if (ch == \"0\" && stream.eat(/x/i)) {\n      stream.eatWhile(/[\\da-f]/i);\n      return ret(\"number\", \"number\");\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    } else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else if (state.lastType == \"operator\" || state.lastType == \"keyword c\" ||\n               state.lastType == \"sof\" || /^[\\[{}\\(,;:]$/.test(state.lastType)) {\n        readRegexp(stream);\n        stream.match(/^\\b(([gimyu])(?![gimyu]*\\2))+\\b/);\n        return ret(\"regexp\", \"string-2\");\n      } else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\", stream.current());\n      }\n    } else if (ch == \"`\") {\n      state.tokenize = tokenQuasi;\n      return tokenQuasi(stream, state);\n    } else if (ch == \"#\") {\n      stream.skipToEnd();\n      return ret(\"error\", \"error\");\n    } else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", \"operator\", stream.current());\n    } else if (wordRE.test(ch)) {\n      stream.eatWhile(wordRE);\n      var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n      return (known && state.lastType != \".\") ? ret(known.type, known.style, word) :\n                     ret(\"variable\", \"variable\", word);\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n        state.tokenize = tokenBase;\n        return ret(\"jsonld-keyword\", \"meta\");\n      }\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenQuasi(stream, state) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return ret(\"quasi\", \"string-2\", stream.current());\n  }\n\n  var brackets = \"([{}])\";\n  // This is a crude lookahead trick to try and notice that we're\n  // parsing the argument patterns for a fat-arrow function before we\n  // actually hit the arrow token. It only works if the arrow is on\n  // the same line as the arguments and there's no strange noise\n  // (comments) in between. Fallback is to only notice when we hit the\n  // arrow, and not declare the arguments as locals for the arrow\n  // body.\n  function findFatArrow(stream, state) {\n    if (state.fatArrowAt) state.fatArrowAt = null;\n    var arrow = stream.string.indexOf(\"=>\", stream.start);\n    if (arrow < 0) return;\n\n    var depth = 0, sawSomething = false;\n    for (var pos = arrow - 1; pos >= 0; --pos) {\n      var ch = stream.string.charAt(pos);\n      var bracket = brackets.indexOf(ch);\n      if (bracket >= 0 && bracket < 3) {\n        if (!depth) { ++pos; break; }\n        if (--depth == 0) break;\n      } else if (bracket >= 3 && bracket < 6) {\n        ++depth;\n      } else if (wordRE.test(ch)) {\n        sawSomething = true;\n      } else if (/[\"'\\/]/.test(ch)) {\n        return;\n      } else if (sawSomething && !depth) {\n        ++pos;\n        break;\n      }\n    }\n    if (sawSomething && !depth) state.fatArrowAt = pos;\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true, \"this\": true, \"jsonld-keyword\": true};\n\n  function JSLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n    for (var cx = state.context; cx; cx = cx.prev) {\n      for (var v = cx.vars; v; v = v.next)\n        if (v.name == varname) return true;\n    }\n  }\n\n  function parseJS(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n        return style;\n      }\n    }\n  }\n\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function register(varname) {\n    function inList(list) {\n      for (var v = list; v; v = v.next)\n        if (v.name == varname) return true;\n      return false;\n    }\n    var state = cx.state;\n    if (state.context) {\n      cx.marked = \"def\";\n      if (inList(state.localVars)) return;\n      state.localVars = {name: varname, next: state.localVars};\n    } else {\n      if (inList(state.globalVars)) return;\n      if (parserConfig.globalVars)\n        state.globalVars = {name: varname, next: state.globalVars};\n    }\n  }\n\n  // Combinators\n\n  var defaultVars = {name: \"this\", next: {name: \"arguments\"}};\n  function pushcontext() {\n    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n    cx.state.localVars = defaultVars;\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars;\n    cx.state.context = cx.state.context.prev;\n  }\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state, indent = state.indented;\n      if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n      else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n        indent = outer.indented;\n      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function exp(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\") return pass();\n      else return cont(exp);\n    };\n    return exp;\n  }\n\n  function statement(type, value) {\n    if (type == \"var\") return cont(pushlex(\"vardef\", value.length), vardef, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    if (type == \";\") return cont();\n    if (type == \"if\") {\n      if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n        cx.state.cc.pop()();\n      return cont(pushlex(\"form\"), expression, statement, poplex, maybeelse);\n    }\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), forspec, statement, poplex);\n    if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n    if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n                                      block, poplex, poplex);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n                                     statement, poplex, popcontext);\n    if (type == \"module\") return cont(pushlex(\"form\"), pushcontext, afterModule, popcontext, poplex);\n    if (type == \"class\") return cont(pushlex(\"form\"), className, poplex);\n    if (type == \"export\") return cont(pushlex(\"form\"), afterExport, poplex);\n    if (type == \"import\") return cont(pushlex(\"form\"), afterImport, poplex);\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function expression(type) {\n    return expressionInner(type, false);\n  }\n  function expressionNoComma(type) {\n    return expressionInner(type, true);\n  }\n  function expressionInner(type, noComma) {\n    if (cx.state.fatArrowAt == cx.stream.start) {\n      var body = noComma ? arrowBodyNoComma : arrowBody;\n      if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(pattern, \")\"), poplex, expect(\"=>\"), body, popcontext);\n      else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n    }\n\n    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n    if (type == \"function\") return cont(functiondef, maybeop);\n    if (type == \"keyword c\") return cont(noComma ? maybeexpressionNoComma : maybeexpression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, comprehension, expect(\")\"), poplex, maybeop);\n    if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n    if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n    if (type == \"quasi\") { return pass(quasi, maybeop); }\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n  function maybeexpressionNoComma(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expressionNoComma);\n  }\n\n  function maybeoperatorComma(type, value) {\n    if (type == \",\") return cont(expression);\n    return maybeoperatorNoComma(type, value, false);\n  }\n  function maybeoperatorNoComma(type, value, noComma) {\n    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n    var expr = noComma == false ? expression : expressionNoComma;\n    if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n    if (type == \"operator\") {\n      if (/\\+\\+|--/.test(value)) return cont(me);\n      if (value == \"?\") return cont(expression, expect(\":\"), expr);\n      return cont(expr);\n    }\n    if (type == \"quasi\") { return pass(quasi, me); }\n    if (type == \";\") return;\n    if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n    if (type == \".\") return cont(property, me);\n    if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n  }\n  function quasi(type, value) {\n    if (type != \"quasi\") return pass();\n    if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n    return cont(expression, continueQuasi);\n  }\n  function continueQuasi(type) {\n    if (type == \"}\") {\n      cx.marked = \"string-2\";\n      cx.state.tokenize = tokenQuasi;\n      return cont(quasi);\n    }\n  }\n  function arrowBody(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expression);\n  }\n  function arrowBodyNoComma(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expressionNoComma);\n  }\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperatorComma, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type, value) {\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      if (value == \"get\" || value == \"set\") return cont(getterSetter);\n      return cont(afterprop);\n    } else if (type == \"number\" || type == \"string\") {\n      cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n      return cont(afterprop);\n    } else if (type == \"jsonld-keyword\") {\n      return cont(afterprop);\n    } else if (type == \"[\") {\n      return cont(expression, expect(\"]\"), afterprop);\n    }\n  }\n  function getterSetter(type) {\n    if (type != \"variable\") return pass(afterprop);\n    cx.marked = \"property\";\n    return cont(functiondef);\n  }\n  function afterprop(type) {\n    if (type == \":\") return cont(expressionNoComma);\n    if (type == \"(\") return pass(functiondef);\n  }\n  function commasep(what, end) {\n    function proceed(type) {\n      if (type == \",\") {\n        var lex = cx.state.lexical;\n        if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n        return cont(what, proceed);\n      }\n      if (type == end) return cont();\n      return cont(expect(end));\n    }\n    return function(type) {\n      if (type == end) return cont();\n      return pass(what, proceed);\n    };\n  }\n  function contCommasep(what, end, info) {\n    for (var i = 3; i < arguments.length; i++)\n      cx.cc.push(arguments[i]);\n    return cont(pushlex(end, info), commasep(what, end), poplex);\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function maybetype(type) {\n    if (isTS && type == \":\") return cont(typedef);\n  }\n  function typedef(type) {\n    if (type == \"variable\"){cx.marked = \"variable-3\"; return cont();}\n  }\n  function vardef() {\n    return pass(pattern, maybetype, maybeAssign, vardefCont);\n  }\n  function pattern(type, value) {\n    if (type == \"variable\") { register(value); return cont(); }\n    if (type == \"[\") return contCommasep(pattern, \"]\");\n    if (type == \"{\") return contCommasep(proppattern, \"}\");\n  }\n  function proppattern(type, value) {\n    if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n      register(value);\n      return cont(maybeAssign);\n    }\n    if (type == \"variable\") cx.marked = \"property\";\n    return cont(expect(\":\"), pattern, maybeAssign);\n  }\n  function maybeAssign(_type, value) {\n    if (value == \"=\") return cont(expressionNoComma);\n  }\n  function vardefCont(type) {\n    if (type == \",\") return cont(vardef);\n  }\n  function maybeelse(type, value) {\n    if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n  }\n  function forspec(type) {\n    if (type == \"(\") return cont(pushlex(\")\"), forspec1, expect(\")\"), poplex);\n  }\n  function forspec1(type) {\n    if (type == \"var\") return cont(vardef, expect(\";\"), forspec2);\n    if (type == \";\") return cont(forspec2);\n    if (type == \"variable\") return cont(formaybeinof);\n    return pass(expression, expect(\";\"), forspec2);\n  }\n  function formaybeinof(_type, value) {\n    if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression); }\n    return cont(maybeoperatorComma, forspec2);\n  }\n  function forspec2(type, value) {\n    if (type == \";\") return cont(forspec3);\n    if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression); }\n    return pass(expression, expect(\";\"), forspec3);\n  }\n  function forspec3(type) {\n    if (type != \")\") cont(expression);\n  }\n  function functiondef(type, value) {\n    if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n    if (type == \"variable\") {register(value); return cont(functiondef);}\n    if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, statement, popcontext);\n  }\n  function funarg(type) {\n    if (type == \"spread\") return cont(funarg);\n    return pass(pattern, maybetype);\n  }\n  function className(type, value) {\n    if (type == \"variable\") {register(value); return cont(classNameAfter);}\n  }\n  function classNameAfter(type, value) {\n    if (value == \"extends\") return cont(expression, classNameAfter);\n    if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n  }\n  function classBody(type, value) {\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      if (value == \"get\" || value == \"set\") return cont(classGetterSetter, functiondef, classBody);\n      return cont(functiondef, classBody);\n    }\n    if (value == \"*\") {\n      cx.marked = \"keyword\";\n      return cont(classBody);\n    }\n    if (type == \";\") return cont(classBody);\n    if (type == \"}\") return cont();\n  }\n  function classGetterSetter(type) {\n    if (type != \"variable\") return pass();\n    cx.marked = \"property\";\n    return cont();\n  }\n  function afterModule(type, value) {\n    if (type == \"string\") return cont(statement);\n    if (type == \"variable\") { register(value); return cont(maybeFrom); }\n  }\n  function afterExport(_type, value) {\n    if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n    if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n    return pass(statement);\n  }\n  function afterImport(type) {\n    if (type == \"string\") return cont();\n    return pass(importSpec, maybeFrom);\n  }\n  function importSpec(type, value) {\n    if (type == \"{\") return contCommasep(importSpec, \"}\");\n    if (type == \"variable\") register(value);\n    return cont();\n  }\n  function maybeFrom(_type, value) {\n    if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n  }\n  function arrayLiteral(type) {\n    if (type == \"]\") return cont();\n    return pass(expressionNoComma, maybeArrayComprehension);\n  }\n  function maybeArrayComprehension(type) {\n    if (type == \"for\") return pass(comprehension, expect(\"]\"));\n    if (type == \",\") return cont(commasep(maybeexpressionNoComma, \"]\"));\n    return pass(commasep(expressionNoComma, \"]\"));\n  }\n  function comprehension(type) {\n    if (type == \"for\") return cont(forspec, comprehension);\n    if (type == \"if\") return cont(expression, comprehension);\n  }\n\n  function isContinuedStatement(state, textAfter) {\n    return state.lastType == \"operator\" || state.lastType == \",\" ||\n      isOperatorChar.test(textAfter.charAt(0)) ||\n      /[,.]/.test(textAfter.charAt(0));\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: tokenBase,\n        lastType: \"sof\",\n        cc: [],\n        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n        context: parserConfig.localVars && {vars: parserConfig.localVars},\n        indented: 0\n      };\n      if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n        state.globalVars = parserConfig.globalVars;\n      return state;\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n        findFatArrow(stream, state);\n      }\n      if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n      return parseJS(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize == tokenComment) return CodeMirror.Pass;\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n      // Kludge to prevent 'maybelse' from blocking lexical scope pops\n      if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n        var c = state.cc[i];\n        if (c == poplex) lexical = lexical.prev;\n        else if (c != maybeelse) break;\n      }\n      if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n      if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n        lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n\n      if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info + 1 : 0);\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"form\") return lexical.indented + indentUnit;\n      else if (type == \"stat\")\n        return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n      else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n    blockCommentStart: jsonMode ? null : \"/*\",\n    blockCommentEnd: jsonMode ? null : \"*/\",\n    lineComment: jsonMode ? null : \"//\",\n    fold: \"brace\",\n\n    helperType: jsonMode ? \"json\" : \"javascript\",\n    jsonldMode: jsonldMode,\n    jsonMode: jsonMode\n  };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", {name: \"javascript\", json: true});\nCodeMirror.defineMIME(\"application/x-json\", {name: \"javascript\", json: true});\nCodeMirror.defineMIME(\"application/ld+json\", {name: \"javascript\", jsonld: true});\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/javascript/json-ld.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: JSON-LD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=\"nav\">\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"/></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">JSON-LD</a>\n  </ul>\n</div>\n\n<article>\n<h2>JSON-LD mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n{\n  \"@context\": {\n    \"name\": \"http://schema.org/name\",\n    \"description\": \"http://schema.org/description\",\n    \"image\": {\n      \"@id\": \"http://schema.org/image\",\n      \"@type\": \"@id\"\n    },\n    \"geo\": \"http://schema.org/geo\",\n    \"latitude\": {\n      \"@id\": \"http://schema.org/latitude\",\n      \"@type\": \"xsd:float\"\n    },\n    \"longitude\": {\n      \"@id\": \"http://schema.org/longitude\",\n      \"@type\": \"xsd:float\"\n    },\n    \"xsd\": \"http://www.w3.org/2001/XMLSchema#\"\n  },\n  \"name\": \"The Empire State Building\",\n  \"description\": \"The Empire State Building is a 102-story landmark in New York City.\",\n  \"image\": \"http://www.civil.usherbrooke.ca/cours/gci215a/empire-state-building.jpg\",\n  \"geo\": {\n    \"latitude\": \"40.75\",\n    \"longitude\": \"73.98\"\n  }\n}\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        matchBrackets: true,\n        autoCloseBrackets: true,\n        mode: \"application/ld+json\",\n        lineWrapping: true\n      });\n    </script>\n    \n    <p>This is a specialization of the <a href=\"index.html\">JavaScript mode</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/javascript/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"javascript\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"locals\",\n     \"[keyword function] [variable foo]([def a], [def b]) { [keyword var] [def c] [operator =] [number 10]; [keyword return] [variable-2 a] [operator +] [variable-2 c] [operator +] [variable d]; }\");\n\n  MT(\"comma-and-binop\",\n     \"[keyword function](){ [keyword var] [def x] [operator =] [number 1] [operator +] [number 2], [def y]; }\");\n\n  MT(\"destructuring\",\n     \"([keyword function]([def a], [[[def b], [def c] ]]) {\",\n     \"  [keyword let] {[def d], [property foo]: [def c][operator =][number 10], [def x]} [operator =] [variable foo]([variable-2 a]);\",\n     \"  [[[variable-2 c], [variable y] ]] [operator =] [variable-2 c];\",\n     \"})();\");\n\n  MT(\"class_body\",\n     \"[keyword class] [variable Foo] {\",\n     \"  [property constructor]() {}\",\n     \"  [property sayName]() {\",\n     \"    [keyword return] [string-2 `foo${][variable foo][string-2 }oo`];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"class\",\n     \"[keyword class] [variable Point] [keyword extends] [variable SuperThing] {\",\n     \"  [property get] [property prop]() { [keyword return] [number 24]; }\",\n     \"  [property constructor]([def x], [def y]) {\",\n     \"    [keyword super]([string 'something']);\",\n     \"    [keyword this].[property x] [operator =] [variable-2 x];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"module\",\n     \"[keyword module] [string 'foo'] {\",\n     \"  [keyword export] [keyword let] [def x] [operator =] [number 42];\",\n     \"  [keyword export] [keyword *] [keyword from] [string 'somewhere'];\",\n     \"}\");\n\n  MT(\"import\",\n     \"[keyword function] [variable foo]() {\",\n     \"  [keyword import] [def $] [keyword from] [string 'jquery'];\",\n     \"  [keyword module] [def crypto] [keyword from] [string 'crypto'];\",\n     \"  [keyword import] { [def encrypt], [def decrypt] } [keyword from] [string 'crypto'];\",\n     \"}\");\n\n  MT(\"const\",\n     \"[keyword function] [variable f]() {\",\n     \"  [keyword const] [[ [def a], [def b] ]] [operator =] [[ [number 1], [number 2] ]];\",\n     \"}\");\n\n  MT(\"for/of\",\n     \"[keyword for]([keyword let] [variable of] [keyword of] [variable something]) {}\");\n\n  MT(\"generator\",\n     \"[keyword function*] [variable repeat]([def n]) {\",\n     \"  [keyword for]([keyword var] [def i] [operator =] [number 0]; [variable-2 i] [operator <] [variable-2 n]; [operator ++][variable-2 i])\",\n     \"    [keyword yield] [variable-2 i];\",\n     \"}\");\n\n  MT(\"quotedStringAddition\",\n     \"[keyword let] [variable f] [operator =] [variable a] [operator +] [string 'fatarrow'] [operator +] [variable c];\");\n\n  MT(\"quotedFatArrow\",\n     \"[keyword let] [variable f] [operator =] [variable a] [operator +] [string '=>'] [operator +] [variable c];\");\n\n  MT(\"fatArrow\",\n     \"[variable array].[property filter]([def a] [operator =>] [variable-2 a] [operator +] [number 1]);\",\n     \"[variable a];\", // No longer in scope\n     \"[keyword let] [variable f] [operator =] ([[ [def a], [def b] ]], [def c]) [operator =>] [variable-2 a] [operator +] [variable-2 c];\",\n     \"[variable c];\");\n\n  MT(\"spread\",\n     \"[keyword function] [variable f]([def a], [meta ...][def b]) {\",\n     \"  [variable something]([variable-2 a], [meta ...][variable-2 b]);\",\n     \"}\");\n\n  MT(\"comprehension\",\n     \"[keyword function] [variable f]() {\",\n     \"  [[([variable x] [operator +] [number 1]) [keyword for] ([keyword var] [def x] [keyword in] [variable y]) [keyword if] [variable pred]([variable-2 x]) ]];\",\n     \"  ([variable u] [keyword for] ([keyword var] [def u] [keyword of] [variable generateValues]()) [keyword if] ([variable-2 u].[property color] [operator ===] [string 'blue']));\",\n     \"}\");\n\n  MT(\"quasi\",\n     \"[variable re][string-2 `fofdlakj${][variable x] [operator +] ([variable re][string-2 `foo`]) [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]\");\n\n  MT(\"quasi_no_function\",\n     \"[variable x] [operator =] [string-2 `fofdlakj${][variable x] [operator +] [string-2 `foo`] [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]\");\n\n  MT(\"indent_statement\",\n     \"[keyword var] [variable x] [operator =] [number 10]\",\n     \"[variable x] [operator +=] [variable y] [operator +]\",\n     \"  [atom Infinity]\",\n     \"[keyword debugger];\");\n\n  MT(\"indent_if\",\n     \"[keyword if] ([number 1])\",\n     \"  [keyword break];\",\n     \"[keyword else] [keyword if] ([number 2])\",\n     \"  [keyword continue];\",\n     \"[keyword else]\",\n     \"  [number 10];\",\n     \"[keyword if] ([number 1]) {\",\n     \"  [keyword break];\",\n     \"} [keyword else] [keyword if] ([number 2]) {\",\n     \"  [keyword continue];\",\n     \"} [keyword else] {\",\n     \"  [number 10];\",\n     \"}\");\n\n  MT(\"indent_for\",\n     \"[keyword for] ([keyword var] [variable i] [operator =] [number 0];\",\n     \"     [variable i] [operator <] [number 100];\",\n     \"     [variable i][operator ++])\",\n     \"  [variable doSomething]([variable i]);\",\n     \"[keyword debugger];\");\n\n  MT(\"indent_c_style\",\n     \"[keyword function] [variable foo]()\",\n     \"{\",\n     \"  [keyword debugger];\",\n     \"}\");\n\n  MT(\"indent_else\",\n     \"[keyword for] (;;)\",\n     \"  [keyword if] ([variable foo])\",\n     \"    [keyword if] ([variable bar])\",\n     \"      [number 1];\",\n     \"    [keyword else]\",\n     \"      [number 2];\",\n     \"  [keyword else]\",\n     \"    [number 3];\");\n\n  MT(\"indent_funarg\",\n     \"[variable foo]([number 10000],\",\n     \"    [keyword function]([def a]) {\",\n     \"  [keyword debugger];\",\n     \"};\");\n\n  MT(\"indent_below_if\",\n     \"[keyword for] (;;)\",\n     \"  [keyword if] ([variable foo])\",\n     \"    [number 1];\",\n     \"[number 2];\");\n\n  MT(\"multilinestring\",\n     \"[keyword var] [variable x] [operator =] [string 'foo\\\\]\",\n     \"[string bar'];\");\n\n  MT(\"scary_regexp\",\n     \"[string-2 /foo[[/]]bar/];\");\n\n  MT(\"indent_strange_array\",\n     \"[keyword var] [variable x] [operator =] [[\",\n     \"  [number 1],,\",\n     \"  [number 2],\",\n     \"]];\",\n     \"[number 10];\");\n\n  var jsonld_mode = CodeMirror.getMode(\n    {indentUnit: 2},\n    {name: \"javascript\", jsonld: true}\n  );\n  function LD(name) {\n    test.mode(name, jsonld_mode, Array.prototype.slice.call(arguments, 1));\n  }\n\n  LD(\"json_ld_keywords\",\n    '{',\n    '  [meta \"@context\"]: {',\n    '    [meta \"@base\"]: [string \"http://example.com\"],',\n    '    [meta \"@vocab\"]: [string \"http://xmlns.com/foaf/0.1/\"],',\n    '    [property \"likesFlavor\"]: {',\n    '      [meta \"@container\"]: [meta \"@list\"]',\n    '      [meta \"@reverse\"]: [string \"@beFavoriteOf\"]',\n    '    },',\n    '    [property \"nick\"]: { [meta \"@container\"]: [meta \"@set\"] },',\n    '    [property \"nick\"]: { [meta \"@container\"]: [meta \"@index\"] }',\n    '  },',\n    '  [meta \"@graph\"]: [[ {',\n    '    [meta \"@id\"]: [string \"http://dbpedia.org/resource/John_Lennon\"],',\n    '    [property \"name\"]: [string \"John Lennon\"],',\n    '    [property \"modified\"]: {',\n    '      [meta \"@value\"]: [string \"2010-05-29T14:17:39+02:00\"],',\n    '      [meta \"@type\"]: [string \"http://www.w3.org/2001/XMLSchema#dateTime\"]',\n    '    }',\n    '  } ]]',\n    '}');\n\n  LD(\"json_ld_fake\",\n    '{',\n    '  [property \"@fake\"]: [string \"@fake\"],',\n    '  [property \"@contextual\"]: [string \"@identifier\"],',\n    '  [property \"user@domain.com\"]: [string \"@graphical\"],',\n    '  [property \"@ID\"]: [string \"@@ID\"]',\n    '}');\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/javascript/typescript.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TypeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TypeScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>TypeScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nclass Greeter {\n\tgreeting: string;\n\tconstructor (message: string) {\n\t\tthis.greeting = message;\n\t}\n\tgreet() {\n\t\treturn \"Hello, \" + this.greeting;\n\t}\n}   \n\nvar greeter = new Greeter(\"world\");\n\nvar button = document.createElement('button')\nbutton.innerText = \"Say Hello\"\nbutton.onclick = function() {\n\talert(greeter.greet())\n}\n\ndocument.body.appendChild(button)\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/typescript\"\n      });\n    </script>\n\n    <p>This is a specialization of the <a href=\"index.html\">JavaScript mode</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/jinja2/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Jinja2 mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"jinja2.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Jinja2</a>\n  </ul>\n</div>\n\n<article>\n<h2>Jinja2 mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{# this is a comment #}\n{%- for item in li -%}\n  &lt;li&gt;{{ item.label }}&lt;/li&gt;\n{% endfor -%}\n{{ item.sand == true and item.keyword == false ? 1 : 0 }}\n{{ app.get(55, 1.2, true) }}\n{% if app.get(&#39;_route&#39;) == (&#39;_home&#39;) %}home{% endif %}\n{% if app.session.flashbag.has(&#39;message&#39;) %}\n  {% for message in app.session.flashbag.get(&#39;message&#39;) %}\n    {{ message.content }}\n  {% endfor %}\n{% endif %}\n{{ path(&#39;_home&#39;, {&#39;section&#39;: app.request.get(&#39;section&#39;)}) }}\n{{ path(&#39;_home&#39;, {\n    &#39;section&#39;: app.request.get(&#39;section&#39;),\n    &#39;boolean&#39;: true,\n    &#39;number&#39;: 55.33\n  })\n}}\n{% include (&#39;test.incl.html.twig&#39;) %}\n</textarea></form>\n    <script>\n      var editor =\n      CodeMirror.fromTextArea(document.getElementById(\"code\"), {mode:\n        {name: \"jinja2\", htmlMode: true}});\n    </script>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/jinja2/jinja2.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"jinja2\", function() {\n    var keywords = [\"and\", \"as\", \"block\", \"endblock\", \"by\", \"cycle\", \"debug\", \"else\", \"elif\",\n      \"extends\", \"filter\", \"endfilter\", \"firstof\", \"for\",\n      \"endfor\", \"if\", \"endif\", \"ifchanged\", \"endifchanged\",\n      \"ifequal\", \"endifequal\", \"ifnotequal\",\n      \"endifnotequal\", \"in\", \"include\", \"load\", \"not\", \"now\", \"or\",\n      \"parsed\", \"regroup\", \"reversed\", \"spaceless\",\n      \"endspaceless\", \"ssi\", \"templatetag\", \"openblock\",\n      \"closeblock\", \"openvariable\", \"closevariable\",\n      \"openbrace\", \"closebrace\", \"opencomment\",\n      \"closecomment\", \"widthratio\", \"url\", \"with\", \"endwith\",\n      \"get_current_language\", \"trans\", \"endtrans\", \"noop\", \"blocktrans\",\n      \"endblocktrans\", \"get_available_languages\",\n      \"get_current_language_bidi\", \"plural\"],\n    operator = /^[+\\-*&%=<>!?|~^]/,\n    sign = /^[:\\[\\(\\{]/,\n    atom = [\"true\", \"false\"],\n    number = /^(\\d[+\\-\\*\\/])?\\d+(\\.\\d+)?/;\n\n    keywords = new RegExp(\"((\" + keywords.join(\")|(\") + \"))\\\\b\");\n    atom = new RegExp(\"((\" + atom.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      var ch = stream.peek();\n\n      //Comment\n      if (state.incomment) {\n        if(!stream.skipTo(\"#}\")) {\n          stream.skipToEnd();\n        } else {\n          stream.eatWhile(/\\#|}/);\n          state.incomment = false;\n        }\n        return \"comment\";\n      //Tag\n      } else if (state.intag) {\n        //After operator\n        if(state.operator) {\n          state.operator = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n        //After sign\n        if(state.sign) {\n          state.sign = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n\n        if(state.instring) {\n          if(ch == state.instring) {\n            state.instring = false;\n          }\n          stream.next();\n          return \"string\";\n        } else if(ch == \"'\" || ch == '\"') {\n          state.instring = ch;\n          stream.next();\n          return \"string\";\n        } else if(stream.match(state.intag + \"}\") || stream.eat(\"-\") && stream.match(state.intag + \"}\")) {\n          state.intag = false;\n          return \"tag\";\n        } else if(stream.match(operator)) {\n          state.operator = true;\n          return \"operator\";\n        } else if(stream.match(sign)) {\n          state.sign = true;\n        } else {\n          if(stream.eat(\" \") || stream.sol()) {\n            if(stream.match(keywords)) {\n              return \"keyword\";\n            }\n            if(stream.match(atom)) {\n              return \"atom\";\n            }\n            if(stream.match(number)) {\n              return \"number\";\n            }\n            if(stream.sol()) {\n              stream.next();\n            }\n          } else {\n            stream.next();\n          }\n\n        }\n        return \"variable\";\n      } else if (stream.eat(\"{\")) {\n        if (ch = stream.eat(\"#\")) {\n          state.incomment = true;\n          if(!stream.skipTo(\"#}\")) {\n            stream.skipToEnd();\n          } else {\n            stream.eatWhile(/\\#|}/);\n            state.incomment = false;\n          }\n          return \"comment\";\n        //Open tag\n        } else if (ch = stream.eat(/\\{|%/)) {\n          //Cache close tag\n          state.intag = ch;\n          if(ch == \"{\") {\n            state.intag = \"}\";\n          }\n          stream.eat(\"-\");\n          return \"tag\";\n        }\n      }\n      stream.next();\n    };\n\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/julia/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Julia mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"julia.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Julia</a>\n  </ul>\n</div>\n\n<article>\n<h2>Julia mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n#numbers\n1234\n1234im\n.234\n.234im\n2.23im\n2.3f3\n23e2\n0x234\n\n#strings\n'a'\n\"asdf\"\nr\"regex\"\nb\"bytestring\"\n\n\"\"\"\nmultiline string\n\"\"\"\n\n#identifiers\na\nas123\nfunction_name!\n\n#unicode identifiers\n# a = x\\ddot\na⃗ = ẍ\n# a = v\\dot\na⃗ = v̇\n#F\\vec = m \\cdotp a\\vec\nF⃗ = m·a⃗\n\n#literal identifier multiples\n3x\n4[1, 2, 3]\n\n#dicts and indexing\nx=[1, 2, 3]\nx[end-1]\nx={\"julia\"=>\"language of technical computing\"}\n\n\n#exception handling\ntry\n  f()\ncatch\n  @printf \"Error\"\nfinally\n  g()\nend\n\n#types\nimmutable Color{T<:Number}\n  r::T\n  g::T\n  b::T\nend\n\n#functions\nfunction change!(x::Vector{Float64})\n  for i = 1:length(x)\n    x[i] *= 2\n  end\nend\n\n#function invocation\nf('b', (2, 3)...)\n\n#operators\n|=\n&=\n^=\n\\-\n%=\n*=\n+=\n-=\n<=\n>=\n!=\n==\n%\n*\n+\n-\n<\n>\n!\n=\n|\n&\n^\n\\\n?\n~\n:\n$\n<:\n.<\n.>\n<<\n<<=\n>>\n>>>>\n>>=\n>>>=\n<<=\n<<<=\n.<=\n.>=\n.==\n->\n//\nin\n...\n//\n:=\n.//=\n.*=\n./=\n.^=\n.%=\n.+=\n.-=\n\\=\n\\\\=\n||\n===\n&&\n|=\n.|=\n<:\n>:\n|>\n<|\n::\nx ? y : z\n\n#macros\n@spawnat 2 1+1\n@eval(:x)\n\n#keywords and operators\nif else elseif while for\n begin let end do\ntry catch finally return break continue\nglobal local const \nexport import importall using\nfunction macro module baremodule \ntype immutable quote\ntrue false enumerate\n\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"julia\",\n               },\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-julia</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/julia/julia.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"julia\", function(_conf, parserConf) {\n  var ERRORCLASS = 'error';\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var operators = parserConf.operators || /^\\.?[|&^\\\\%*+\\-<>!=\\/]=?|\\?|~|:|\\$|\\.[<>]|<<=?|>>>?=?|\\.[<>=]=|->?|\\/\\/|\\bin\\b/;\n  var delimiters = parserConf.delimiters || /^[;,()[\\]{}]/;\n  var identifiers = parserConf.identifiers|| /^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*!*/;\n  var blockOpeners = [\"begin\", \"function\", \"type\", \"immutable\", \"let\", \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\", \"finally\", \"catch\", \"do\"];\n  var blockClosers = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n  var keywordList = ['if', 'else', 'elseif', 'while', 'for', 'begin', 'let', 'end', 'do', 'try', 'catch', 'finally', 'return', 'break', 'continue', 'global', 'local', 'const', 'export', 'import', 'importall', 'using', 'function', 'macro', 'module', 'baremodule', 'type', 'immutable', 'quote', 'typealias', 'abstract', 'bitstype', 'ccall'];\n  var builtinList = ['true', 'false', 'enumerate', 'open', 'close', 'nothing', 'NaN', 'Inf', 'print', 'println', 'Int', 'Int8', 'Uint8', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Int64', 'Uint64', 'Int128', 'Uint128', 'Bool', 'Char', 'Float16', 'Float32', 'Float64', 'Array', 'Vector', 'Matrix', 'String', 'UTF8String', 'ASCIIString', 'error', 'warn', 'info', '@printf'];\n\n  //var stringPrefixes = new RegExp(\"^[br]?('|\\\")\")\n  var stringPrefixes = /^(`|'|\"{3}|([br]?\"))/;\n  var keywords = wordRegexp(keywordList);\n  var builtins = wordRegexp(builtinList);\n  var openers = wordRegexp(blockOpeners);\n  var closers = wordRegexp(blockClosers);\n  var macro = /^@[_A-Za-z][_A-Za-z0-9]*/;\n  var symbol = /^:[_A-Za-z][_A-Za-z0-9]*/;\n  var indentInfo = null;\n\n  function in_array(state) {\n    var ch = cur_scope(state);\n    if(ch==\"[\" || ch==\"{\") {\n      return true;\n    }\n    else {\n      return false;\n    }\n  }\n\n  function cur_scope(state) {\n    if(state.scopes.length==0) {\n      return null;\n    }\n    return state.scopes[state.scopes.length - 1];\n  }\n\n  // tokenizers\n  function tokenBase(stream, state) {\n    // Handle scope changes\n    var leaving_expr = state.leaving_expr;\n    if(stream.sol()) {\n      leaving_expr = false;\n    }\n    state.leaving_expr = false;\n    if(leaving_expr) {\n      if(stream.match(/^'+/)) {\n        return 'operator';\n      }\n\n    }\n\n    if(stream.match(/^\\.{2,3}/)) {\n      return 'operator';\n    }\n\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n    // Handle Comments\n    if (ch === '#') {\n        stream.skipToEnd();\n        return 'comment';\n    }\n    if(ch==='[') {\n      state.scopes.push(\"[\");\n    }\n\n    if(ch==='{') {\n      state.scopes.push(\"{\");\n    }\n\n    var scope=cur_scope(state);\n\n    if(scope==='[' && ch===']') {\n      state.scopes.pop();\n      state.leaving_expr=true;\n    }\n\n    if(scope==='{' && ch==='}') {\n      state.scopes.pop();\n      state.leaving_expr=true;\n    }\n\n    if(ch===')') {\n      state.leaving_expr = true;\n    }\n\n    var match;\n    if(!in_array(state) && (match=stream.match(openers, false))) {\n      state.scopes.push(match);\n    }\n\n    if(!in_array(state) && stream.match(closers, false)) {\n      state.scopes.pop();\n    }\n\n    if(in_array(state)) {\n      if(stream.match(/^end/)) {\n        return 'number';\n      }\n\n    }\n\n    if(stream.match(/^=>/)) {\n      return 'operator';\n    }\n\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.]/, false)) {\n      var imMatcher = RegExp(/^im\\b/);\n      var floatLiteral = false;\n      // Floats\n      if (stream.match(/^\\d*\\.(?!\\.)\\d+([ef][\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n      if (stream.match(/^\\d+\\.(?!\\.)\\d*/)) { floatLiteral = true; }\n      if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n      if (floatLiteral) {\n          // Float literals may be \"imaginary\"\n          stream.match(imMatcher);\n          state.leaving_expr = true;\n          return 'number';\n      }\n      // Integers\n      var intLiteral = false;\n      // Hex\n      if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; }\n      // Binary\n      if (stream.match(/^0b[01]+/i)) { intLiteral = true; }\n      // Octal\n      if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; }\n      // Decimal\n      if (stream.match(/^[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n          intLiteral = true;\n      }\n      // Zero by itself with no other piece of number.\n      if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n      if (intLiteral) {\n          // Integer literals may be \"long\"\n          stream.match(imMatcher);\n          state.leaving_expr = true;\n          return 'number';\n      }\n    }\n\n    if(stream.match(/^(::)|(<:)/)) {\n      return 'operator';\n    }\n\n    // Handle symbols\n    if(!leaving_expr && stream.match(symbol)) {\n      return 'string';\n    }\n\n    // Handle operators and Delimiters\n    if (stream.match(operators)) {\n      return 'operator';\n    }\n\n\n    // Handle Strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenStringFactory(stream.current());\n      return state.tokenize(stream, state);\n    }\n\n    if (stream.match(macro)) {\n      return 'meta';\n    }\n\n\n    if (stream.match(delimiters)) {\n      return null;\n    }\n\n    if (stream.match(keywords)) {\n      return 'keyword';\n    }\n\n    if (stream.match(builtins)) {\n      return 'builtin';\n    }\n\n\n    if (stream.match(identifiers)) {\n      state.leaving_expr=true;\n      return 'variable';\n    }\n    // Handle non-detected items\n    stream.next();\n    return ERRORCLASS;\n  }\n\n  function tokenStringFactory(delimiter) {\n    while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) {\n      delimiter = delimiter.substr(1);\n    }\n    var singleline = delimiter.length == 1;\n    var OUTCLASS = 'string';\n\n    function tokenString(stream, state) {\n      while (!stream.eol()) {\n        stream.eatWhile(/[^'\"\\\\]/);\n        if (stream.eat('\\\\')) {\n            stream.next();\n            if (singleline && stream.eol()) {\n              return OUTCLASS;\n            }\n        } else if (stream.match(delimiter)) {\n            state.tokenize = tokenBase;\n            return OUTCLASS;\n        } else {\n            stream.eat(/['\"]/);\n        }\n      }\n      if (singleline) {\n        if (parserConf.singleLineStringErrors) {\n            return ERRORCLASS;\n        } else {\n            state.tokenize = tokenBase;\n        }\n      }\n      return OUTCLASS;\n    }\n    tokenString.isString = true;\n    return tokenString;\n  }\n\n  function tokenLexer(stream, state) {\n    indentInfo = null;\n    var style = state.tokenize(stream, state);\n    var current = stream.current();\n\n    // Handle '.' connected identifiers\n    if (current === '.') {\n      style = stream.match(identifiers, false) ? null : ERRORCLASS;\n      if (style === null && state.lastStyle === 'meta') {\n          // Apply 'meta' style to '.' connected identifiers when\n          // appropriate.\n        style = 'meta';\n      }\n      return style;\n    }\n\n    return style;\n  }\n\n  var external = {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        scopes: [],\n        leaving_expr: false\n      };\n    },\n\n    token: function(stream, state) {\n      var style = tokenLexer(stream, state);\n      state.lastStyle = style;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var delta = 0;\n      if(textAfter==\"end\" || textAfter==\"]\" || textAfter==\"}\" || textAfter==\"else\" || textAfter==\"elseif\" || textAfter==\"catch\" || textAfter==\"finally\") {\n        delta = -1;\n      }\n      return (state.scopes.length + delta) * 4;\n    },\n\n    lineComment: \"#\",\n    fold: \"indent\",\n    electricChars: \"edlsifyh]}\"\n  };\n  return external;\n});\n\n\nCodeMirror.defineMIME(\"text/x-julia\", \"julia\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/kotlin/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Kotlin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"kotlin.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Kotlin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Kotlin mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\npackage org.wasabi.http\n\nimport java.util.concurrent.Executors\nimport java.net.InetSocketAddress\nimport org.wasabi.app.AppConfiguration\nimport io.netty.bootstrap.ServerBootstrap\nimport io.netty.channel.nio.NioEventLoopGroup\nimport io.netty.channel.socket.nio.NioServerSocketChannel\nimport org.wasabi.app.AppServer\n\npublic class HttpServer(private val appServer: AppServer) {\n\n    val bootstrap: ServerBootstrap\n    val primaryGroup: NioEventLoopGroup\n    val workerGroup:  NioEventLoopGroup\n\n    {\n        // Define worker groups\n        primaryGroup = NioEventLoopGroup()\n        workerGroup = NioEventLoopGroup()\n\n        // Initialize bootstrap of server\n        bootstrap = ServerBootstrap()\n\n        bootstrap.group(primaryGroup, workerGroup)\n        bootstrap.channel(javaClass<NioServerSocketChannel>())\n        bootstrap.childHandler(NettyPipelineInitializer(appServer))\n    }\n\n    public fun start(wait: Boolean = true) {\n        val channel = bootstrap.bind(appServer.configuration.port)?.sync()?.channel()\n\n        if (wait) {\n            channel?.closeFuture()?.sync()\n        }\n    }\n\n    public fun stop() {\n        // Shutdown all event loops\n        primaryGroup.shutdownGracefully()\n        workerGroup.shutdownGracefully()\n\n        // Wait till all threads are terminated\n        primaryGroup.terminationFuture().sync()\n        workerGroup.terminationFuture().sync()\n    }\n}\n</textarea></div>\n\n    <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n            mode: {name: \"kotlin\"},\n            lineNumbers: true,\n            indentUnit: 4\n        });\n    </script>\n    <h3>Mode for Kotlin (http://kotlin.jetbrains.org/)</h3>\n    <p>Developed by Hadi Hariri (https://github.com/hhariri).</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-kotlin</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/kotlin/kotlin.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"kotlin\", function (config, parserConfig) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var multiLineStrings = parserConfig.multiLineStrings;\n\n  var keywords = words(\n          \"package continue return object while break class data trait throw super\" +\n          \" when type this else This try val var fun for is in if do as true false null get set\");\n  var softKeywords = words(\"import\" +\n      \" where by get set abstract enum open annotation override private public internal\" +\n      \" protected catch out vararg inline finally final ref\");\n  var blockKeywords = words(\"catch class do else finally for if where try while enum\");\n  var atoms = words(\"null true false this\");\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return startString(ch, stream, state);\n    }\n    // Wildcard import w/o trailing semicolon (import smth.*)\n    if (ch == \".\" && stream.eat(\"*\")) {\n      return \"word\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      if (stream.eat(/eE/)) {\n        stream.eat(/\\+\\-/);\n        stream.eatWhile(/\\d/);\n      }\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment);\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (expectExpression(state.lastToken)) {\n        return startString(ch, stream, state);\n      }\n    }\n    // Commented\n    if (ch == \"-\" && stream.eat(\">\")) {\n      curPunc = \"->\";\n      return null;\n    }\n    if (/[\\-+*&%=<>!?|\\/~]/.test(ch)) {\n      stream.eatWhile(/[\\-+*&%=<>|~]/);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n\n    var cur = stream.current();\n    if (atoms.propertyIsEnumerable(cur)) {\n      return \"atom\";\n    }\n    if (softKeywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"softKeyword\";\n    }\n\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    return \"word\";\n  }\n\n  tokenBase.isBase = true;\n\n  function startString(quote, stream, state) {\n    var tripleQuoted = false;\n    if (quote != \"/\" && stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\";\n    }\n    function t(stream, state) {\n      var escaped = false, next, end = !tripleQuoted;\n\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          if (!tripleQuoted) {\n            break;\n          }\n          if (stream.match(quote + quote)) {\n            end = true;\n            break;\n          }\n        }\n\n        if (quote == '\"' && next == \"$\" && !escaped && stream.eat(\"{\")) {\n          state.tokenize.push(tokenBaseUntilBrace());\n          return \"string\";\n        }\n\n        if (next == \"$\" && !escaped && !stream.eat(\" \")) {\n          state.tokenize.push(tokenBaseUntilSpace());\n          return \"string\";\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (multiLineStrings)\n        state.tokenize.push(t);\n      if (end) state.tokenize.pop();\n      return \"string\";\n    }\n\n    state.tokenize.push(t);\n    return t(stream, state);\n  }\n\n  function tokenBaseUntilBrace() {\n    var depth = 1;\n\n    function t(stream, state) {\n      if (stream.peek() == \"}\") {\n        depth--;\n        if (depth == 0) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length - 1](stream, state);\n        }\n      } else if (stream.peek() == \"{\") {\n        depth++;\n      }\n      return tokenBase(stream, state);\n    }\n\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenBaseUntilSpace() {\n    function t(stream, state) {\n      if (stream.eat(/[\\w]/)) {\n        var isWord = stream.eatWhile(/[\\w]/);\n        if (isWord) {\n          state.tokenize.pop();\n          return \"word\";\n        }\n      }\n      state.tokenize.pop();\n      return \"string\";\n    }\n\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize.pop();\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function expectExpression(last) {\n    return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n        last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function (basecolumn) {\n      return {\n        tokenize: [tokenBase],\n        context: new Context((basecolumn || 0) - config.indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true,\n        lastToken: null\n      };\n    },\n\n    token: function (stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        // Automatic semicolon insertion\n        if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) {\n          popContext(state);\n          ctx = state.context;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = state.tokenize[state.tokenize.length - 1](stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      // Handle indentation for {x -> \\n ... }\n      else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n        popContext(state);\n        state.context.align = false;\n      }\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      state.lastToken = curPunc || style;\n      return style;\n    },\n\n    indent: function (state, textAfter) {\n      if (!state.tokenize[state.tokenize.length - 1].isBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n      if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") {\n        return ctx.indented + (firstChar == \"{\" ? 0 : config.indentUnit);\n      }\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : config.indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-kotlin\", \"kotlin\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/livescript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: LiveScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/solarized.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"livescript.js\"></script>\n<style>.CodeMirror {font-size: 80%;border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">LiveScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>LiveScript mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# LiveScript mode for CodeMirror\n# The following script, prelude.ls, is used to\n# demonstrate LiveScript mode for CodeMirror.\n#   https://github.com/gkz/prelude-ls\n\nexport objToFunc = objToFunc = (obj) ->\n  (key) -> obj[key]\n\nexport each = (f, xs) -->\n  if typeof! xs is \\Object\n    for , x of xs then f x\n  else\n    for x in xs then f x\n  xs\n\nexport map = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, f x] for key, x of xs}\n  else\n    result = [f x for x in xs]\n    if type is \\String then result * '' else result\n\nexport filter = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, x] for key, x of xs when f x}\n  else\n    result = [x for x in xs when f x]\n    if type is \\String then result * '' else result\n\nexport reject = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, x] for key, x of xs when not f x}\n  else\n    result = [x for x in xs when not f x]\n    if type is \\String then result * '' else result\n\nexport partition = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    passed = {}\n    failed = {}\n    for key, x of xs\n      (if f x then passed else failed)[key] = x\n  else\n    passed = []\n    failed = []\n    for x in xs\n      (if f x then passed else failed)push x\n    if type is \\String\n      passed *= ''\n      failed *= ''\n  [passed, failed]\n\nexport find = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  if typeof! xs is \\Object\n    for , x of xs when f x then return x\n  else\n    for x in xs when f x then return x\n  void\n\nexport head = export first = (xs) ->\n  return void if not xs.length\n  xs.0\n\nexport tail = (xs) ->\n  return void if not xs.length\n  xs.slice 1\n\nexport last = (xs) ->\n  return void if not xs.length\n  xs[*-1]\n\nexport initial = (xs) ->\n  return void if not xs.length\n  xs.slice 0 xs.length - 1\n\nexport empty = (xs) ->\n  if typeof! xs is \\Object\n    for x of xs then return false\n    return yes\n  not xs.length\n\nexport values = (obj) ->\n  [x for , x of obj]\n\nexport keys = (obj) ->\n  [x for x of obj]\n\nexport len = (xs) ->\n  xs = values xs if typeof! xs is \\Object\n  xs.length\n\nexport cons = (x, xs) -->\n  if typeof! xs is \\String then x + xs else [x] ++ xs\n\nexport append = (xs, ys) -->\n  if typeof! ys is \\String then xs + ys else xs ++ ys\n\nexport join = (sep, xs) -->\n  xs = values xs if typeof! xs is \\Object\n  xs.join sep\n\nexport reverse = (xs) ->\n  if typeof! xs is \\String\n  then (xs / '')reverse! * ''\n  else xs.slice!reverse!\n\nexport fold = export foldl = (f, memo, xs) -->\n  if typeof! xs is \\Object\n    for , x of xs then memo = f memo, x\n  else\n    for x in xs then memo = f memo, x\n  memo\n\nexport fold1 = export foldl1 = (f, xs) --> fold f, xs.0, xs.slice 1\n\nexport foldr = (f, memo, xs) --> fold f, memo, xs.slice!reverse!\n\nexport foldr1 = (f, xs) -->\n  xs.=slice!reverse!\n  fold f, xs.0, xs.slice 1\n\nexport unfoldr = export unfold = (f, b) -->\n  if (f b)?\n    [that.0] ++ unfoldr f, that.1\n  else\n    []\n\nexport andList = (xs) ->\n  for x in xs when not x\n    return false\n  true\n\nexport orList = (xs) ->\n  for x in xs when x\n    return true\n  false\n\nexport any = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  for x in xs when f x\n    return yes\n  no\n\nexport all = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  for x in xs when not f x\n    return no\n  yes\n\nexport unique = (xs) ->\n  result = []\n  if typeof! xs is \\Object\n    for , x of xs when x not in result then result.push x\n  else\n    for x   in xs when x not in result then result.push x\n  if typeof! xs is \\String then result * '' else result\n\nexport sort = (xs) ->\n  xs.concat!sort (x, y) ->\n    | x > y =>  1\n    | x < y => -1\n    | _     =>  0\n\nexport sortBy = (f, xs) -->\n  return [] unless xs.length\n  xs.concat!sort f\n\nexport compare = (f, x, y) -->\n  | (f x) > (f y) =>  1\n  | (f x) < (f y) => -1\n  | otherwise     =>  0\n\nexport sum = (xs) ->\n  result = 0\n  if typeof! xs is \\Object\n    for , x of xs then result += x\n  else\n    for x   in xs then result += x\n  result\n\nexport product = (xs) ->\n  result = 1\n  if typeof! xs is \\Object\n    for , x of xs then result *= x\n  else\n    for x   in xs then result *= x\n  result\n\nexport mean = export average = (xs) -> (sum xs) / len xs\n\nexport concat = (xss) -> fold append, [], xss\n\nexport concatMap = (f, xs) --> fold ((memo, x) -> append memo, f x), [], xs\n\nexport listToObj = (xs) ->\n  {[x.0, x.1] for x in xs}\n\nexport maximum = (xs) -> fold1 (>?), xs\n\nexport minimum = (xs) -> fold1 (<?), xs\n\nexport scan = export scanl = (f, memo, xs) -->\n  last = memo\n  if typeof! xs is \\Object\n  then [memo] ++ [last = f last, x for , x of xs]\n  else [memo] ++ [last = f last, x for x in xs]\n\nexport scan1 = export scanl1 = (f, xs) --> scan f, xs.0, xs.slice 1\n\nexport scanr = (f, memo, xs) -->\n  xs.=slice!reverse!\n  scan f, memo, xs .reverse!\n\nexport scanr1 = (f, xs) -->\n  xs.=slice!reverse!\n  scan f, xs.0, xs.slice 1 .reverse!\n\nexport replicate = (n, x) -->\n  result = []\n  i = 0\n  while i < n, ++i then result.push x\n  result\n\nexport take = (n, xs) -->\n  | n <= 0\n    if typeof! xs is \\String then '' else []\n  | not xs.length => xs\n  | otherwise     => xs.slice 0, n\n\nexport drop = (n, xs) -->\n  | n <= 0        => xs\n  | not xs.length => xs\n  | otherwise     => xs.slice n\n\nexport splitAt = (n, xs) --> [(take n, xs), (drop n, xs)]\n\nexport takeWhile = (p, xs) -->\n  return xs if not xs.length\n  p = objToFunc p if typeof! p isnt \\Function\n  result = []\n  for x in xs\n    break if not p x\n    result.push x\n  if typeof! xs is \\String then result * '' else result\n\nexport dropWhile = (p, xs) -->\n  return xs if not xs.length\n  p = objToFunc p if typeof! p isnt \\Function\n  i = 0\n  for x in xs\n    break if not p x\n    ++i\n  drop i, xs\n\nexport span = (p, xs) --> [(takeWhile p, xs), (dropWhile p, xs)]\n\nexport breakIt = (p, xs) --> span (not) << p, xs\n\nexport zip = (xs, ys) -->\n  result = []\n  for zs, i in [xs, ys]\n    for z, j in zs\n      result.push [] if i is 0\n      result[j]?push z\n  result\n\nexport zipWith = (f,xs, ys) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  if not xs.length or not ys.length\n    []\n  else\n    [f.apply this, zs for zs in zip.call this, xs, ys]\n\nexport zipAll = (...xss) ->\n  result = []\n  for xs, i in xss\n    for x, j in xs\n      result.push [] if i is 0\n      result[j]?push x\n  result\n\nexport zipAllWith = (f, ...xss) ->\n  f = objToFunc f if typeof! f isnt \\Function\n  if not xss.0.length or not xss.1.length\n    []\n  else\n    [f.apply this, xs for xs in zipAll.apply this, xss]\n\nexport compose = (...funcs) ->\n  ->\n    args = arguments\n    for f in funcs\n      args = [f.apply this, args]\n    args.0\n\nexport curry = (f) ->\n  curry$ f # using util method curry$ from livescript\n\nexport id = (x) -> x\n\nexport flip = (f, x, y) --> f y, x\n\nexport fix = (f) ->\n  ( (g, x) -> -> f(g g) ...arguments ) do\n    (g, x) -> -> f(g g) ...arguments\n\nexport lines = (str) ->\n  return [] if not str.length\n  str / \\\\n\n\nexport unlines = (strs) -> strs * \\\\n\n\nexport words = (str) ->\n  return [] if not str.length\n  str / /[ ]+/\n\nexport unwords = (strs) -> strs * ' '\n\nexport max = (>?)\n\nexport min = (<?)\n\nexport negate = (x) -> -x\n\nexport abs = Math.abs\n\nexport signum = (x) ->\n  | x < 0     => -1\n  | x > 0     =>  1\n  | otherwise =>  0\n\nexport quot = (x, y) --> ~~(x / y)\n\nexport rem = (%)\n\nexport div = (x, y) --> Math.floor x / y\n\nexport mod = (%%)\n\nexport recip = (1 /)\n\nexport pi = Math.PI\n\nexport tau = pi * 2\n\nexport exp = Math.exp\n\nexport sqrt = Math.sqrt\n\n# changed from log as log is a\n# common function for logging things\nexport ln = Math.log\n\nexport pow = (^)\n\nexport sin = Math.sin\n\nexport tan = Math.tan\n\nexport cos = Math.cos\n\nexport asin = Math.asin\n\nexport acos = Math.acos\n\nexport atan = Math.atan\n\nexport atan2 = (x, y) --> Math.atan2 x, y\n\n# sinh\n# tanh\n# cosh\n# asinh\n# atanh\n# acosh\n\nexport truncate = (x) -> ~~x\n\nexport round = Math.round\n\nexport ceiling = Math.ceil\n\nexport floor = Math.floor\n\nexport isItNaN = (x) -> x isnt x\n\nexport even = (x) -> x % 2 == 0\n\nexport odd = (x) -> x % 2 != 0\n\nexport gcd = (x, y) -->\n  x = Math.abs x\n  y = Math.abs y\n  until y is 0\n    z = x % y\n    x = y\n    y = z\n  x\n\nexport lcm = (x, y) -->\n  Math.abs Math.floor (x / (gcd x, y) * y)\n\n# meta\nexport installPrelude = !(target) ->\n  unless target.prelude?isInstalled\n    target <<< out$ # using out$ generated by livescript\n    target <<< target.prelude.isInstalled = true\n\nexport prelude = out$\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"solarized light\",\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-livescript</code>.</p>\n\n    <p>The LiveScript mode was written by Kenneth Bentley.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/livescript/livescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/duralog/CodeMirror\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode('livescript', function(){\n    var tokenBase = function(stream, state) {\n      var next_rule = state.next || \"start\";\n      if (next_rule) {\n        state.next = state.next;\n        var nr = Rules[next_rule];\n        if (nr.splice) {\n          for (var i$ = 0; i$ < nr.length; ++i$) {\n            var r = nr[i$], m;\n            if (r.regex && (m = stream.match(r.regex))) {\n              state.next = r.next || state.next;\n              return r.token;\n            }\n          }\n          stream.next();\n          return 'error';\n        }\n        if (stream.match(r = Rules[next_rule])) {\n          if (r.regex && stream.match(r.regex)) {\n            state.next = r.next;\n            return r.token;\n          } else {\n            stream.next();\n            return 'error';\n          }\n        }\n      }\n      stream.next();\n      return 'error';\n    };\n    var external = {\n      startState: function(){\n        return {\n          next: 'start',\n          lastToken: null\n        };\n      },\n      token: function(stream, state){\n        while (stream.pos == stream.start)\n          var style = tokenBase(stream, state);\n        state.lastToken = {\n          style: style,\n          indent: stream.indentation(),\n          content: stream.current()\n        };\n        return style.replace(/\\./g, ' ');\n      },\n      indent: function(state){\n        var indentation = state.lastToken.indent;\n        if (state.lastToken.content.match(indenter)) {\n          indentation += 2;\n        }\n        return indentation;\n      }\n    };\n    return external;\n  });\n\n  var identifier = '(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*';\n  var indenter = RegExp('(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*' + identifier + ')?))\\\\s*$');\n  var keywordend = '(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))';\n  var stringfill = {\n    token: 'string',\n    regex: '.+'\n  };\n  var Rules = {\n    start: [\n      {\n        token: 'comment.doc',\n        regex: '/\\\\*',\n        next: 'comment'\n      }, {\n        token: 'comment',\n        regex: '#.*'\n      }, {\n        token: 'keyword',\n        regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend\n      }, {\n        token: 'constant.language',\n        regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend\n      }, {\n        token: 'invalid.illegal',\n        regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend\n      }, {\n        token: 'language.support.class',\n        regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend\n      }, {\n        token: 'language.support.function',\n        regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend\n      }, {\n        token: 'variable.language',\n        regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend\n      }, {\n        token: 'identifier',\n        regex: identifier + '\\\\s*:(?![:=])'\n      }, {\n        token: 'variable',\n        regex: identifier\n      }, {\n        token: 'keyword.operator',\n        regex: '(?:\\\\.{3}|\\\\s+\\\\?)'\n      }, {\n        token: 'keyword.variable',\n        regex: '(?:@+|::|\\\\.\\\\.)',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\.\\\\s*',\n        next: 'key'\n      }, {\n        token: 'string',\n        regex: '\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*'\n      }, {\n        token: 'string.doc',\n        regex: '\\'\\'\\'',\n        next: 'qdoc'\n      }, {\n        token: 'string.doc',\n        regex: '\"\"\"',\n        next: 'qqdoc'\n      }, {\n        token: 'string',\n        regex: '\\'',\n        next: 'qstring'\n      }, {\n        token: 'string',\n        regex: '\"',\n        next: 'qqstring'\n      }, {\n        token: 'string',\n        regex: '`',\n        next: 'js'\n      }, {\n        token: 'string',\n        regex: '<\\\\[',\n        next: 'words'\n      }, {\n        token: 'string.regex',\n        regex: '//',\n        next: 'heregex'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}',\n        next: 'key'\n      }, {\n        token: 'constant.numeric',\n        regex: '(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)'\n      }, {\n        token: 'lparen',\n        regex: '[({[]'\n      }, {\n        token: 'rparen',\n        regex: '[)}\\\\]]',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\S+'\n      }, {\n        token: 'text',\n        regex: '\\\\s+'\n      }\n    ],\n    heregex: [\n      {\n        token: 'string.regex',\n        regex: '.*?//[gimy$?]{0,4}',\n        next: 'start'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\s*#{'\n      }, {\n        token: 'comment.regex',\n        regex: '\\\\s+(?:#.*)?'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\S+'\n      }\n    ],\n    key: [\n      {\n        token: 'keyword.operator',\n        regex: '[.?@!]+'\n      }, {\n        token: 'identifier',\n        regex: identifier,\n        next: 'start'\n      }, {\n        token: 'text',\n        regex: '',\n        next: 'start'\n      }\n    ],\n    comment: [\n      {\n        token: 'comment.doc',\n        regex: '.*?\\\\*/',\n        next: 'start'\n      }, {\n        token: 'comment.doc',\n        regex: '.+'\n      }\n    ],\n    qdoc: [\n      {\n        token: 'string',\n        regex: \".*?'''\",\n        next: 'key'\n      }, stringfill\n    ],\n    qqdoc: [\n      {\n        token: 'string',\n        regex: '.*?\"\"\"',\n        next: 'key'\n      }, stringfill\n    ],\n    qstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\\\']*)*\\'',\n        next: 'key'\n      }, stringfill\n    ],\n    qqstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',\n        next: 'key'\n      }, stringfill\n    ],\n    js: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`',\n        next: 'key'\n      }, stringfill\n    ],\n    words: [\n      {\n        token: 'string',\n        regex: '.*?\\\\]>',\n        next: 'key'\n      }, stringfill\n    ]\n  };\n  for (var idx in Rules) {\n    var r = Rules[idx];\n    if (r.splice) {\n      for (var i = 0, len = r.length; i < len; ++i) {\n        var rr = r[i];\n        if (typeof rr.regex === 'string') {\n          Rules[idx][i].regex = new RegExp('^' + rr.regex);\n        }\n      }\n    } else if (typeof rr.regex === 'string') {\n      Rules[idx].regex = new RegExp('^' + r.regex);\n    }\n  }\n\n  CodeMirror.defineMIME('text/x-livescript', 'livescript');\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/lua/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Lua mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"lua.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Lua</a>\n  </ul>\n</div>\n\n<article>\n<h2>Lua mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n--[[\nexample useless code to show lua syntax highlighting\nthis is multiline comment\n]]\n\nfunction blahblahblah(x)\n\n  local table = {\n    \"asd\" = 123,\n    \"x\" = 0.34,  \n  }\n  if x ~= 3 then\n    print( x )\n  elseif x == \"string\"\n    my_custom_function( 0x34 )\n  else\n    unknown_function( \"some string\" )\n  end\n\n  --single line comment\n  \nend\n\nfunction blablabla3()\n\n  for k,v in ipairs( table ) do\n    --abcde..\n    y=[=[\n  x=[[\n      x is a multi line string\n   ]]\n  but its definition is iside a highest level string!\n  ]=]\n    print(\" \\\"\\\" \")\n\n    s = math.sin( x )\n  end\n\nend\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        matchBrackets: true,\n        theme: \"neat\"\n      });\n    </script>\n\n    <p>Loosely based on Franciszek\n    Wawrzak's <a href=\"http://codemirror.net/1/contrib/lua\">CodeMirror\n    1 mode</a>. One configuration parameter is\n    supported, <code>specials</code>, to which you can provide an\n    array of strings to have those identifiers highlighted with\n    the <code>lua-special</code> style.</p>\n    <p><strong>MIME types defined:</strong> <code>text/x-lua</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/lua/lua.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's\n// CodeMirror 1 mode.\n// highlights keywords, strings, comments (no leveling supported! (\"[==[\")), tokens, basic indenting\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"lua\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  function prefixRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")\", \"i\");\n  }\n  function wordRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var specials = wordRE(parserConfig.specials || []);\n\n  // long list of standard functions from lua manual\n  var builtins = wordRE([\n    \"_G\",\"_VERSION\",\"assert\",\"collectgarbage\",\"dofile\",\"error\",\"getfenv\",\"getmetatable\",\"ipairs\",\"load\",\n    \"loadfile\",\"loadstring\",\"module\",\"next\",\"pairs\",\"pcall\",\"print\",\"rawequal\",\"rawget\",\"rawset\",\"require\",\n    \"select\",\"setfenv\",\"setmetatable\",\"tonumber\",\"tostring\",\"type\",\"unpack\",\"xpcall\",\n\n    \"coroutine.create\",\"coroutine.resume\",\"coroutine.running\",\"coroutine.status\",\"coroutine.wrap\",\"coroutine.yield\",\n\n    \"debug.debug\",\"debug.getfenv\",\"debug.gethook\",\"debug.getinfo\",\"debug.getlocal\",\"debug.getmetatable\",\n    \"debug.getregistry\",\"debug.getupvalue\",\"debug.setfenv\",\"debug.sethook\",\"debug.setlocal\",\"debug.setmetatable\",\n    \"debug.setupvalue\",\"debug.traceback\",\n\n    \"close\",\"flush\",\"lines\",\"read\",\"seek\",\"setvbuf\",\"write\",\n\n    \"io.close\",\"io.flush\",\"io.input\",\"io.lines\",\"io.open\",\"io.output\",\"io.popen\",\"io.read\",\"io.stderr\",\"io.stdin\",\n    \"io.stdout\",\"io.tmpfile\",\"io.type\",\"io.write\",\n\n    \"math.abs\",\"math.acos\",\"math.asin\",\"math.atan\",\"math.atan2\",\"math.ceil\",\"math.cos\",\"math.cosh\",\"math.deg\",\n    \"math.exp\",\"math.floor\",\"math.fmod\",\"math.frexp\",\"math.huge\",\"math.ldexp\",\"math.log\",\"math.log10\",\"math.max\",\n    \"math.min\",\"math.modf\",\"math.pi\",\"math.pow\",\"math.rad\",\"math.random\",\"math.randomseed\",\"math.sin\",\"math.sinh\",\n    \"math.sqrt\",\"math.tan\",\"math.tanh\",\n\n    \"os.clock\",\"os.date\",\"os.difftime\",\"os.execute\",\"os.exit\",\"os.getenv\",\"os.remove\",\"os.rename\",\"os.setlocale\",\n    \"os.time\",\"os.tmpname\",\n\n    \"package.cpath\",\"package.loaded\",\"package.loaders\",\"package.loadlib\",\"package.path\",\"package.preload\",\n    \"package.seeall\",\n\n    \"string.byte\",\"string.char\",\"string.dump\",\"string.find\",\"string.format\",\"string.gmatch\",\"string.gsub\",\n    \"string.len\",\"string.lower\",\"string.match\",\"string.rep\",\"string.reverse\",\"string.sub\",\"string.upper\",\n\n    \"table.concat\",\"table.insert\",\"table.maxn\",\"table.remove\",\"table.sort\"\n  ]);\n  var keywords = wordRE([\"and\",\"break\",\"elseif\",\"false\",\"nil\",\"not\",\"or\",\"return\",\n                         \"true\",\"function\", \"end\", \"if\", \"then\", \"else\", \"do\",\n                         \"while\", \"repeat\", \"until\", \"for\", \"in\", \"local\" ]);\n\n  var indentTokens = wordRE([\"function\", \"if\",\"repeat\",\"do\", \"\\\\(\", \"{\"]);\n  var dedentTokens = wordRE([\"end\", \"until\", \"\\\\)\", \"}\"]);\n  var dedentPartial = prefixRE([\"end\", \"until\", \"\\\\)\", \"}\", \"else\", \"elseif\"]);\n\n  function readBracket(stream) {\n    var level = 0;\n    while (stream.eat(\"=\")) ++level;\n    stream.eat(\"[\");\n    return level;\n  }\n\n  function normal(stream, state) {\n    var ch = stream.next();\n    if (ch == \"-\" && stream.eat(\"-\")) {\n      if (stream.eat(\"[\") && stream.eat(\"[\"))\n        return (state.cur = bracketed(readBracket(stream), \"comment\"))(stream, state);\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == \"\\\"\" || ch == \"'\")\n      return (state.cur = string(ch))(stream, state);\n    if (ch == \"[\" && /[\\[=]/.test(stream.peek()))\n      return (state.cur = bracketed(readBracket(stream), \"string\"))(stream, state);\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return \"number\";\n    }\n    if (/[\\w_]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-_.]/);\n      return \"variable\";\n    }\n    return null;\n  }\n\n  function bracketed(level, style) {\n    return function(stream, state) {\n      var curlev = null, ch;\n      while ((ch = stream.next()) != null) {\n        if (curlev == null) {if (ch == \"]\") curlev = 0;}\n        else if (ch == \"=\") ++curlev;\n        else if (ch == \"]\" && curlev == level) { state.cur = normal; break; }\n        else curlev = null;\n      }\n      return style;\n    };\n  }\n\n  function string(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.cur = normal;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(basecol) {\n      return {basecol: basecol || 0, indentDepth: 0, cur: normal};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.cur(stream, state);\n      var word = stream.current();\n      if (style == \"variable\") {\n        if (keywords.test(word)) style = \"keyword\";\n        else if (builtins.test(word)) style = \"builtin\";\n        else if (specials.test(word)) style = \"variable-2\";\n      }\n      if ((style != \"comment\") && (style != \"string\")){\n        if (indentTokens.test(word)) ++state.indentDepth;\n        else if (dedentTokens.test(word)) --state.indentDepth;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var closing = dedentPartial.test(textAfter);\n      return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));\n    },\n\n    lineComment: \"--\",\n    blockCommentStart: \"--[[\",\n    blockCommentEnd: \"]]\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-lua\", \"lua\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/markdown/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Markdown mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/continuelist.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"markdown.js\"></script>\n<style type=\"text/css\">\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default .cm-trailing-space-a:before,\n      .cm-s-default .cm-trailing-space-b:before {position: absolute; content: \"\\00B7\"; color: #777;}\n      .cm-s-default .cm-trailing-space-new-line:before {position: absolute; content: \"\\21B5\"; color: #777;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Markdown</a>\n  </ul>\n</div>\n\n<article>\n<h2>Markdown mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nMarkdown: Basics\n================\n\n&lt;ul id=\"ProjectSubmenu\"&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/\" title=\"Markdown Project Page\"&gt;Main&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a class=\"selected\" title=\"Markdown Basics\"&gt;Basics&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/syntax\" title=\"Markdown Syntax Documentation\"&gt;Syntax&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/license\" title=\"Pricing and License Information\"&gt;License&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/dingus\" title=\"Online Markdown Web Form\"&gt;Dingus&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n\n\nGetting the Gist of Markdown's Formatting Syntax\n------------------------------------------------\n\nThis page offers a brief overview of what it's like to use Markdown.\nThe [syntax page] [s] provides complete, detailed documentation for\nevery feature, but Markdown should be very easy to pick up simply by\nlooking at a few examples of it in action. The examples on this page\nare written in a before/after style, showing example syntax and the\nHTML output produced by Markdown.\n\nIt's also helpful to simply try Markdown out; the [Dingus] [d] is a\nweb application that allows you type your own Markdown-formatted text\nand translate it to XHTML.\n\n**Note:** This document is itself written using Markdown; you\ncan [see the source for it by adding '.text' to the URL] [src].\n\n  [s]: /projects/markdown/syntax  \"Markdown Syntax\"\n  [d]: /projects/markdown/dingus  \"Markdown Dingus\"\n  [src]: /projects/markdown/basics.text\n\n\n## Paragraphs, Headers, Blockquotes ##\n\nA paragraph is simply one or more consecutive lines of text, separated\nby one or more blank lines. (A blank line is any line that looks like\na blank line -- a line containing nothing but spaces or tabs is\nconsidered blank.) Normal paragraphs should not be indented with\nspaces or tabs.\n\nMarkdown offers two styles of headers: *Setext* and *atx*.\nSetext-style headers for `&lt;h1&gt;` and `&lt;h2&gt;` are created by\n\"underlining\" with equal signs (`=`) and hyphens (`-`), respectively.\nTo create an atx-style header, you put 1-6 hash marks (`#`) at the\nbeginning of the line -- the number of hashes equals the resulting\nHTML header level.\n\nBlockquotes are indicated using email-style '`&gt;`' angle brackets.\n\nMarkdown:\n\n    A First Level Header\n    ====================\n    \n    A Second Level Header\n    ---------------------\n\n    Now is the time for all good men to come to\n    the aid of their country. This is just a\n    regular paragraph.\n\n    The quick brown fox jumped over the lazy\n    dog's back.\n    \n    ### Header 3\n\n    &gt; This is a blockquote.\n    &gt; \n    &gt; This is the second paragraph in the blockquote.\n    &gt;\n    &gt; ## This is an H2 in a blockquote\n\n\nOutput:\n\n    &lt;h1&gt;A First Level Header&lt;/h1&gt;\n    \n    &lt;h2&gt;A Second Level Header&lt;/h2&gt;\n    \n    &lt;p&gt;Now is the time for all good men to come to\n    the aid of their country. This is just a\n    regular paragraph.&lt;/p&gt;\n    \n    &lt;p&gt;The quick brown fox jumped over the lazy\n    dog's back.&lt;/p&gt;\n    \n    &lt;h3&gt;Header 3&lt;/h3&gt;\n    \n    &lt;blockquote&gt;\n        &lt;p&gt;This is a blockquote.&lt;/p&gt;\n        \n        &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;\n        \n        &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;\n    &lt;/blockquote&gt;\n\n\n\n### Phrase Emphasis ###\n\nMarkdown uses asterisks and underscores to indicate spans of emphasis.\n\nMarkdown:\n\n    Some of these words *are emphasized*.\n    Some of these words _are emphasized also_.\n    \n    Use two asterisks for **strong emphasis**.\n    Or, if you prefer, __use two underscores instead__.\n\nOutput:\n\n    &lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\n    Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\n    \n    &lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\n    Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\n   \n\n\n## Lists ##\n\nUnordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,\n`+`, and `-`) as list markers. These three markers are\ninterchangable; this:\n\n    *   Candy.\n    *   Gum.\n    *   Booze.\n\nthis:\n\n    +   Candy.\n    +   Gum.\n    +   Booze.\n\nand this:\n\n    -   Candy.\n    -   Gum.\n    -   Booze.\n\nall produce the same output:\n\n    &lt;ul&gt;\n    &lt;li&gt;Candy.&lt;/li&gt;\n    &lt;li&gt;Gum.&lt;/li&gt;\n    &lt;li&gt;Booze.&lt;/li&gt;\n    &lt;/ul&gt;\n\nOrdered (numbered) lists use regular numbers, followed by periods, as\nlist markers:\n\n    1.  Red\n    2.  Green\n    3.  Blue\n\nOutput:\n\n    &lt;ol&gt;\n    &lt;li&gt;Red&lt;/li&gt;\n    &lt;li&gt;Green&lt;/li&gt;\n    &lt;li&gt;Blue&lt;/li&gt;\n    &lt;/ol&gt;\n\nIf you put blank lines between items, you'll get `&lt;p&gt;` tags for the\nlist item text. You can create multi-paragraph list items by indenting\nthe paragraphs by 4 spaces or 1 tab:\n\n    *   A list item.\n    \n        With multiple paragraphs.\n\n    *   Another item in the list.\n\nOutput:\n\n    &lt;ul&gt;\n    &lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;\n    &lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;\n    &lt;/ul&gt;\n    \n\n\n### Links ###\n\nMarkdown supports two styles for creating links: *inline* and\n*reference*. With both styles, you use square brackets to delimit the\ntext you want to turn into a link.\n\nInline-style links use parentheses immediately after the link text.\nFor example:\n\n    This is an [example link](http://example.com/).\n\nOutput:\n\n    &lt;p&gt;This is an &lt;a href=\"http://example.com/\"&gt;\n    example link&lt;/a&gt;.&lt;/p&gt;\n\nOptionally, you may include a title attribute in the parentheses:\n\n    This is an [example link](http://example.com/ \"With a Title\").\n\nOutput:\n\n    &lt;p&gt;This is an &lt;a href=\"http://example.com/\" title=\"With a Title\"&gt;\n    example link&lt;/a&gt;.&lt;/p&gt;\n\nReference-style links allow you to refer to your links by names, which\nyou define elsewhere in your document:\n\n    I get 10 times more traffic from [Google][1] than from\n    [Yahoo][2] or [MSN][3].\n\n    [1]: http://google.com/        \"Google\"\n    [2]: http://search.yahoo.com/  \"Yahoo Search\"\n    [3]: http://search.msn.com/    \"MSN Search\"\n\nOutput:\n\n    &lt;p&gt;I get 10 times more traffic from &lt;a href=\"http://google.com/\"\n    title=\"Google\"&gt;Google&lt;/a&gt; than from &lt;a href=\"http://search.yahoo.com/\"\n    title=\"Yahoo Search\"&gt;Yahoo&lt;/a&gt; or &lt;a href=\"http://search.msn.com/\"\n    title=\"MSN Search\"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\n\nThe title attribute is optional. Link names may contain letters,\nnumbers and spaces, but are *not* case sensitive:\n\n    I start my morning with a cup of coffee and\n    [The New York Times][NY Times].\n\n    [ny times]: http://www.nytimes.com/\n\nOutput:\n\n    &lt;p&gt;I start my morning with a cup of coffee and\n    &lt;a href=\"http://www.nytimes.com/\"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;\n\n\n### Images ###\n\nImage syntax is very much like link syntax.\n\nInline (titles are optional):\n\n    ![alt text](/path/to/img.jpg \"Title\")\n\nReference-style:\n\n    ![alt text][id]\n\n    [id]: /path/to/img.jpg \"Title\"\n\nBoth of the above examples produce the same output:\n\n    &lt;img src=\"/path/to/img.jpg\" alt=\"alt text\" title=\"Title\" /&gt;\n\n\n\n### Code ###\n\nIn a regular paragraph, you can create code span by wrapping text in\nbacktick quotes. Any ampersands (`&amp;`) and angle brackets (`&lt;` or\n`&gt;`) will automatically be translated into HTML entities. This makes\nit easy to use Markdown to write about HTML example code:\n\n    I strongly recommend against using any `&lt;blink&gt;` tags.\n\n    I wish SmartyPants used named entities like `&amp;mdash;`\n    instead of decimal-encoded entites like `&amp;#8212;`.\n\nOutput:\n\n    &lt;p&gt;I strongly recommend against using any\n    &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\n    \n    &lt;p&gt;I wish SmartyPants used named entities like\n    &lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded\n    entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;\n\n\nTo specify an entire block of pre-formatted code, indent every line of\nthe block by 4 spaces or 1 tab. Just like with code spans, `&amp;`, `&lt;`,\nand `&gt;` characters will be escaped automatically.\n\nMarkdown:\n\n    If you want your page to validate under XHTML 1.0 Strict,\n    you've got to put paragraph tags in your blockquotes:\n\n        &lt;blockquote&gt;\n            &lt;p&gt;For example.&lt;/p&gt;\n        &lt;/blockquote&gt;\n\nOutput:\n\n    &lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,\n    you've got to put paragraph tags in your blockquotes:&lt;/p&gt;\n    \n    &lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;\n        &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;\n    &amp;lt;/blockquote&amp;gt;\n    &lt;/code&gt;&lt;/pre&gt;\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'markdown',\n        lineNumbers: true,\n        theme: \"default\",\n        extraKeys: {\"Enter\": \"newlineAndIndentContinueMarkdownList\"}\n      });\n    </script>\n\n    <p>Optionally depends on the XML mode for properly highlighted inline XML blocks.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-markdown</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#markdown_*\">normal</a>,  <a href=\"../../test/index.html#verbose,markdown_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/markdown/markdown.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n  var htmlFound = CodeMirror.modes.hasOwnProperty(\"xml\");\n  var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? {name: \"xml\", htmlMode: true} : \"text/plain\");\n\n  function getMode(name) {\n    if (CodeMirror.findModeByName) {\n      var found = CodeMirror.findModeByName(name);\n      if (found) name = found.mime || found.mimes[0];\n    }\n    var mode = CodeMirror.getMode(cmCfg, name);\n    return mode.name == \"null\" ? null : mode;\n  }\n\n  // Should characters that affect highlighting be highlighted separate?\n  // Does not include characters that will be output (such as `1.` and `-` for lists)\n  if (modeCfg.highlightFormatting === undefined)\n    modeCfg.highlightFormatting = false;\n\n  // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n  // Excess `>` will emit `error` token.\n  if (modeCfg.maxBlockquoteDepth === undefined)\n    modeCfg.maxBlockquoteDepth = 0;\n\n  // Should underscores in words open/close em/strong?\n  if (modeCfg.underscoresBreakWords === undefined)\n    modeCfg.underscoresBreakWords = true;\n\n  // Turn on fenced code blocks? (\"```\" to start/end)\n  if (modeCfg.fencedCodeBlocks === undefined) modeCfg.fencedCodeBlocks = false;\n\n  // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n  if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n  // Turn on strikethrough syntax\n  if (modeCfg.strikethrough === undefined)\n    modeCfg.strikethrough = false;\n\n  var codeDepth = 0;\n\n  var header   = 'header'\n  ,   code     = 'comment'\n  ,   quote    = 'quote'\n  ,   list1    = 'variable-2'\n  ,   list2    = 'variable-3'\n  ,   list3    = 'keyword'\n  ,   hr       = 'hr'\n  ,   image    = 'tag'\n  ,   formatting = 'formatting'\n  ,   linkinline = 'link'\n  ,   linkemail = 'link'\n  ,   linktext = 'link'\n  ,   linkhref = 'string'\n  ,   em       = 'em'\n  ,   strong   = 'strong'\n  ,   strikethrough = 'strikethrough';\n\n  var hrRE = /^([*\\-=_])(?:\\s*\\1){2,}\\s*$/\n  ,   ulRE = /^[*\\-+]\\s+/\n  ,   olRE = /^[0-9]+\\.\\s+/\n  ,   taskListRE = /^\\[(x| )\\](?=\\s)/ // Must follow ulRE or olRE\n  ,   atxHeaderRE = /^#+/\n  ,   setextHeaderRE = /^(?:\\={1,}|-{1,})$/\n  ,   textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~]+/;\n\n  function switchInline(stream, state, f) {\n    state.f = state.inline = f;\n    return f(stream, state);\n  }\n\n  function switchBlock(stream, state, f) {\n    state.f = state.block = f;\n    return f(stream, state);\n  }\n\n\n  // Blocks\n\n  function blankLine(state) {\n    // Reset linkTitle state\n    state.linkTitle = false;\n    // Reset EM state\n    state.em = false;\n    // Reset STRONG state\n    state.strong = false;\n    // Reset strikethrough state\n    state.strikethrough = false;\n    // Reset state.quote\n    state.quote = 0;\n    if (!htmlFound && state.f == htmlBlock) {\n      state.f = inlineNormal;\n      state.block = blockNormal;\n    }\n    // Reset state.trailingSpace\n    state.trailingSpace = 0;\n    state.trailingSpaceNewLine = false;\n    // Mark this line as blank\n    state.thisLineHasContent = false;\n    return null;\n  }\n\n  function blockNormal(stream, state) {\n\n    var sol = stream.sol();\n\n    var prevLineIsList = (state.list !== false);\n    if (state.list !== false && state.indentationDiff >= 0) { // Continued list\n      if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block\n        state.indentation -= state.indentationDiff;\n      }\n      state.list = null;\n    } else if (state.list !== false && state.indentation > 0) {\n      state.list = null;\n      state.listDepth = Math.floor(state.indentation / 4);\n    } else if (state.list !== false) { // No longer a list\n      state.list = false;\n      state.listDepth = 0;\n    }\n\n    var match = null;\n    if (state.indentationDiff >= 4) {\n      state.indentation -= 4;\n      stream.skipToEnd();\n      return code;\n    } else if (stream.eatSpace()) {\n      return null;\n    } else if (match = stream.match(atxHeaderRE)) {\n      state.header = match[0].length <= 6 ? match[0].length : 6;\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      state.f = state.inline;\n      return getType(state);\n    } else if (state.prevLineHasContent && (match = stream.match(setextHeaderRE))) {\n      state.header = match[0].charAt(0) == '=' ? 1 : 2;\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      state.f = state.inline;\n      return getType(state);\n    } else if (stream.eat('>')) {\n      state.indentation++;\n      state.quote = sol ? 1 : state.quote + 1;\n      if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n      stream.eatSpace();\n      return getType(state);\n    } else if (stream.peek() === '[') {\n      return switchInline(stream, state, footnoteLink);\n    } else if (stream.match(hrRE, true)) {\n      return hr;\n    } else if ((!state.prevLineHasContent || prevLineIsList) && (stream.match(ulRE, false) || stream.match(olRE, false))) {\n      var listType = null;\n      if (stream.match(ulRE, true)) {\n        listType = 'ul';\n      } else {\n        stream.match(olRE, true);\n        listType = 'ol';\n      }\n      state.indentation += 4;\n      state.list = true;\n      state.listDepth++;\n      if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n        state.taskList = true;\n      }\n      state.f = state.inline;\n      if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n      return getType(state);\n    } else if (modeCfg.fencedCodeBlocks && stream.match(/^```[ \\t]*([\\w+#]*)/, true)) {\n      // try switching mode\n      state.localMode = getMode(RegExp.$1);\n      if (state.localMode) state.localState = state.localMode.startState();\n      state.f = state.block = local;\n      if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n      state.code = true;\n      return getType(state);\n    }\n\n    return switchInline(stream, state, state.inline);\n  }\n\n  function htmlBlock(stream, state) {\n    var style = htmlMode.token(stream, state.htmlState);\n    if ((htmlFound && state.htmlState.tagStart === null && !state.htmlState.context) ||\n        (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n      state.f = inlineNormal;\n      state.block = blockNormal;\n      state.htmlState = null;\n    }\n    return style;\n  }\n\n  function local(stream, state) {\n    if (stream.sol() && stream.match(\"```\", false)) {\n      state.localMode = state.localState = null;\n      state.f = state.block = leavingLocal;\n      return null;\n    } else if (state.localMode) {\n      return state.localMode.token(stream, state.localState);\n    } else {\n      stream.skipToEnd();\n      return code;\n    }\n  }\n\n  function leavingLocal(stream, state) {\n    stream.match(\"```\");\n    state.block = blockNormal;\n    state.f = inlineNormal;\n    if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n    state.code = true;\n    var returnType = getType(state);\n    state.code = false;\n    return returnType;\n  }\n\n  // Inline\n  function getType(state) {\n    var styles = [];\n\n    if (state.formatting) {\n      styles.push(formatting);\n\n      if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n      for (var i = 0; i < state.formatting.length; i++) {\n        styles.push(formatting + \"-\" + state.formatting[i]);\n\n        if (state.formatting[i] === \"header\") {\n          styles.push(formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n        }\n\n        // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n        // Add `error` instead if the maximum blockquote nesting depth is passed\n        if (state.formatting[i] === \"quote\") {\n          if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n            styles.push(formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n          } else {\n            styles.push(\"error\");\n          }\n        }\n      }\n    }\n\n    if (state.taskOpen) {\n      styles.push(\"meta\");\n      return styles.length ? styles.join(' ') : null;\n    }\n    if (state.taskClosed) {\n      styles.push(\"property\");\n      return styles.length ? styles.join(' ') : null;\n    }\n\n    if (state.linkHref) {\n      styles.push(linkhref);\n      return styles.length ? styles.join(' ') : null;\n    }\n\n    if (state.strong) { styles.push(strong); }\n    if (state.em) { styles.push(em); }\n    if (state.strikethrough) { styles.push(strikethrough); }\n\n    if (state.linkText) { styles.push(linktext); }\n\n    if (state.code) { styles.push(code); }\n\n    if (state.header) { styles.push(header); styles.push(header + \"-\" + state.header); }\n\n    if (state.quote) {\n      styles.push(quote);\n\n      // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n      if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n        styles.push(quote + \"-\" + state.quote);\n      } else {\n        styles.push(quote + \"-\" + modeCfg.maxBlockquoteDepth);\n      }\n    }\n\n    if (state.list !== false) {\n      var listMod = (state.listDepth - 1) % 3;\n      if (!listMod) {\n        styles.push(list1);\n      } else if (listMod === 1) {\n        styles.push(list2);\n      } else {\n        styles.push(list3);\n      }\n    }\n\n    if (state.trailingSpaceNewLine) {\n      styles.push(\"trailing-space-new-line\");\n    } else if (state.trailingSpace) {\n      styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n    }\n\n    return styles.length ? styles.join(' ') : null;\n  }\n\n  function handleText(stream, state) {\n    if (stream.match(textRE, true)) {\n      return getType(state);\n    }\n    return undefined;\n  }\n\n  function inlineNormal(stream, state) {\n    var style = state.text(stream, state);\n    if (typeof style !== 'undefined')\n      return style;\n\n    if (state.list) { // List marker (*, +, -, 1., etc)\n      state.list = null;\n      return getType(state);\n    }\n\n    if (state.taskList) {\n      var taskOpen = stream.match(taskListRE, true)[1] !== \"x\";\n      if (taskOpen) state.taskOpen = true;\n      else state.taskClosed = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"task\";\n      state.taskList = false;\n      return getType(state);\n    }\n\n    state.taskOpen = false;\n    state.taskClosed = false;\n\n    if (state.header && stream.match(/^#+$/, true)) {\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      return getType(state);\n    }\n\n    // Get sol() value now, before character is consumed\n    var sol = stream.sol();\n\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      stream.next();\n      if (modeCfg.highlightFormatting) {\n        var type = getType(state);\n        return type ? type + \" formatting-escape\" : \"formatting-escape\";\n      }\n    }\n\n    // Matches link titles present on next line\n    if (state.linkTitle) {\n      state.linkTitle = false;\n      var matchCh = ch;\n      if (ch === '(') {\n        matchCh = ')';\n      }\n      matchCh = (matchCh+'').replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n      var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n      if (stream.match(new RegExp(regex), true)) {\n        return linkhref;\n      }\n    }\n\n    // If this block is changed, it may need to be updated in GFM mode\n    if (ch === '`') {\n      var previousFormatting = state.formatting;\n      if (modeCfg.highlightFormatting) state.formatting = \"code\";\n      var t = getType(state);\n      var before = stream.pos;\n      stream.eatWhile('`');\n      var difference = 1 + stream.pos - before;\n      if (!state.code) {\n        codeDepth = difference;\n        state.code = true;\n        return getType(state);\n      } else {\n        if (difference === codeDepth) { // Must be exact\n          state.code = false;\n          return t;\n        }\n        state.formatting = previousFormatting;\n        return getType(state);\n      }\n    } else if (state.code) {\n      return getType(state);\n    }\n\n    if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n      stream.match(/\\[[^\\]]*\\]/);\n      state.inline = state.f = linkHref;\n      return image;\n    }\n\n    if (ch === '[' && stream.match(/.*\\](\\(.*\\)| ?\\[.*\\])/, false)) {\n      state.linkText = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      return getType(state);\n    }\n\n    if (ch === ']' && state.linkText && stream.match(/\\(.*\\)| ?\\[.*\\]/, false)) {\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      state.linkText = false;\n      state.inline = state.f = linkHref;\n      return type;\n    }\n\n    if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkinline;\n    }\n\n    if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkemail;\n    }\n\n    if (ch === '<' && stream.match(/^\\w/, false)) {\n      if (stream.string.indexOf(\">\") != -1) {\n        var atts = stream.string.substring(1,stream.string.indexOf(\">\"));\n        if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) {\n          state.md_inside = true;\n        }\n      }\n      stream.backUp(1);\n      state.htmlState = CodeMirror.startState(htmlMode);\n      return switchBlock(stream, state, htmlBlock);\n    }\n\n    if (ch === '<' && stream.match(/^\\/\\w*?>/)) {\n      state.md_inside = false;\n      return \"tag\";\n    }\n\n    var ignoreUnderscore = false;\n    if (!modeCfg.underscoresBreakWords) {\n      if (ch === '_' && stream.peek() !== '_' && stream.match(/(\\w)/, false)) {\n        var prevPos = stream.pos - 2;\n        if (prevPos >= 0) {\n          var prevCh = stream.string.charAt(prevPos);\n          if (prevCh !== '_' && prevCh.match(/(\\w)/, false)) {\n            ignoreUnderscore = true;\n          }\n        }\n      }\n    }\n    if (ch === '*' || (ch === '_' && !ignoreUnderscore)) {\n      if (sol && stream.peek() === ' ') {\n        // Do nothing, surrounded by newline and space\n      } else if (state.strong === ch && stream.eat(ch)) { // Remove STRONG\n        if (modeCfg.highlightFormatting) state.formatting = \"strong\";\n        var t = getType(state);\n        state.strong = false;\n        return t;\n      } else if (!state.strong && stream.eat(ch)) { // Add STRONG\n        state.strong = ch;\n        if (modeCfg.highlightFormatting) state.formatting = \"strong\";\n        return getType(state);\n      } else if (state.em === ch) { // Remove EM\n        if (modeCfg.highlightFormatting) state.formatting = \"em\";\n        var t = getType(state);\n        state.em = false;\n        return t;\n      } else if (!state.em) { // Add EM\n        state.em = ch;\n        if (modeCfg.highlightFormatting) state.formatting = \"em\";\n        return getType(state);\n      }\n    } else if (ch === ' ') {\n      if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n        if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n          return getType(state);\n        } else { // Not surrounded by spaces, back up pointer\n          stream.backUp(1);\n        }\n      }\n    }\n\n    if (modeCfg.strikethrough) {\n      if (ch === '~' && stream.eatWhile(ch)) {\n        if (state.strikethrough) {// Remove strikethrough\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          var t = getType(state);\n          state.strikethrough = false;\n          return t;\n        } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n          state.strikethrough = true;\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          return getType(state);\n        }\n      } else if (ch === ' ') {\n        if (stream.match(/^~~/, true)) { // Probably surrounded by space\n          if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n            return getType(state);\n          } else { // Not surrounded by spaces, back up pointer\n            stream.backUp(2);\n          }\n        }\n      }\n    }\n\n    if (ch === ' ') {\n      if (stream.match(/ +$/, false)) {\n        state.trailingSpace++;\n      } else if (state.trailingSpace) {\n        state.trailingSpaceNewLine = true;\n      }\n    }\n\n    return getType(state);\n  }\n\n  function linkInline(stream, state) {\n    var ch = stream.next();\n\n    if (ch === \">\") {\n      state.f = state.inline = inlineNormal;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkinline;\n    }\n\n    stream.match(/^[^>]+/, true);\n\n    return linkinline;\n  }\n\n  function linkHref(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    var ch = stream.next();\n    if (ch === '(' || ch === '[') {\n      state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n      if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n      state.linkHref = true;\n      return getType(state);\n    }\n    return 'error';\n  }\n\n  function getLinkHrefInside(endChar) {\n    return function(stream, state) {\n      var ch = stream.next();\n\n      if (ch === endChar) {\n        state.f = state.inline = inlineNormal;\n        if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n        var returnState = getType(state);\n        state.linkHref = false;\n        return returnState;\n      }\n\n      if (stream.match(inlineRE(endChar), true)) {\n        stream.backUp(1);\n      }\n\n      state.linkHref = true;\n      return getType(state);\n    };\n  }\n\n  function footnoteLink(stream, state) {\n    if (stream.match(/^[^\\]]*\\]:/, false)) {\n      state.f = footnoteLinkInside;\n      stream.next(); // Consume [\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      state.linkText = true;\n      return getType(state);\n    }\n    return switchInline(stream, state, inlineNormal);\n  }\n\n  function footnoteLinkInside(stream, state) {\n    if (stream.match(/^\\]:/, true)) {\n      state.f = state.inline = footnoteUrl;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var returnType = getType(state);\n      state.linkText = false;\n      return returnType;\n    }\n\n    stream.match(/^[^\\]]+/, true);\n\n    return linktext;\n  }\n\n  function footnoteUrl(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    // Match URL\n    stream.match(/^[^\\s]+/, true);\n    // Check for link title\n    if (stream.peek() === undefined) { // End of line, set flag to check next line\n      state.linkTitle = true;\n    } else { // More content on line, check if link title\n      stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\\\\\|\\\\.)+\"|'(?:[^'\\\\]|\\\\\\\\|\\\\.)+'|\\((?:[^)\\\\]|\\\\\\\\|\\\\.)+\\)))?/, true);\n    }\n    state.f = state.inline = inlineNormal;\n    return linkhref;\n  }\n\n  var savedInlineRE = [];\n  function inlineRE(endChar) {\n    if (!savedInlineRE[endChar]) {\n      // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741)\n      endChar = (endChar+'').replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n      // Match any non-endChar, escaped character, as well as the closing\n      // endChar.\n      savedInlineRE[endChar] = new RegExp('^(?:[^\\\\\\\\]|\\\\\\\\.)*?(' + endChar + ')');\n    }\n    return savedInlineRE[endChar];\n  }\n\n  var mode = {\n    startState: function() {\n      return {\n        f: blockNormal,\n\n        prevLineHasContent: false,\n        thisLineHasContent: false,\n\n        block: blockNormal,\n        htmlState: null,\n        indentation: 0,\n\n        inline: inlineNormal,\n        text: handleText,\n\n        formatting: false,\n        linkText: false,\n        linkHref: false,\n        linkTitle: false,\n        em: false,\n        strong: false,\n        header: 0,\n        taskList: false,\n        list: false,\n        listDepth: 0,\n        quote: 0,\n        trailingSpace: 0,\n        trailingSpaceNewLine: false,\n        strikethrough: false\n      };\n    },\n\n    copyState: function(s) {\n      return {\n        f: s.f,\n\n        prevLineHasContent: s.prevLineHasContent,\n        thisLineHasContent: s.thisLineHasContent,\n\n        block: s.block,\n        htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n        indentation: s.indentation,\n\n        localMode: s.localMode,\n        localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n        inline: s.inline,\n        text: s.text,\n        formatting: false,\n        linkTitle: s.linkTitle,\n        em: s.em,\n        strong: s.strong,\n        strikethrough: s.strikethrough,\n        header: s.header,\n        taskList: s.taskList,\n        list: s.list,\n        listDepth: s.listDepth,\n        quote: s.quote,\n        trailingSpace: s.trailingSpace,\n        trailingSpaceNewLine: s.trailingSpaceNewLine,\n        md_inside: s.md_inside\n      };\n    },\n\n    token: function(stream, state) {\n\n      // Reset state.formatting\n      state.formatting = false;\n\n      if (stream.sol()) {\n        var forceBlankLine = !!state.header;\n\n        // Reset state.header\n        state.header = 0;\n\n        if (stream.match(/^\\s*$/, true) || forceBlankLine) {\n          state.prevLineHasContent = false;\n          blankLine(state);\n          return forceBlankLine ? this.token(stream, state) : null;\n        } else {\n          state.prevLineHasContent = state.thisLineHasContent;\n          state.thisLineHasContent = true;\n        }\n\n        // Reset state.taskList\n        state.taskList = false;\n\n        // Reset state.code\n        state.code = false;\n\n        // Reset state.trailingSpace\n        state.trailingSpace = 0;\n        state.trailingSpaceNewLine = false;\n\n        state.f = state.block;\n        var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, '    ').length;\n        var difference = Math.floor((indentation - state.indentation) / 4) * 4;\n        if (difference > 4) difference = 4;\n        var adjustedIndentation = state.indentation + difference;\n        state.indentationDiff = adjustedIndentation - state.indentation;\n        state.indentation = adjustedIndentation;\n        if (indentation > 0) return null;\n      }\n      return state.f(stream, state);\n    },\n\n    innerMode: function(state) {\n      if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n      if (state.localState) return {state: state.localState, mode: state.localMode};\n      return {state: state, mode: mode};\n    },\n\n    blankLine: blankLine,\n\n    getType: getType,\n\n    fold: \"markdown\"\n  };\n  return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/markdown/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"markdown\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n  var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: \"markdown\", highlightFormatting: true});\n  function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }\n\n  FT(\"formatting_emAsterisk\",\n     \"[em&formatting&formatting-em *][em foo][em&formatting&formatting-em *]\");\n\n  FT(\"formatting_emUnderscore\",\n     \"[em&formatting&formatting-em _][em foo][em&formatting&formatting-em _]\");\n\n  FT(\"formatting_strongAsterisk\",\n     \"[strong&formatting&formatting-strong **][strong foo][strong&formatting&formatting-strong **]\");\n\n  FT(\"formatting_strongUnderscore\",\n     \"[strong&formatting&formatting-strong __][strong foo][strong&formatting&formatting-strong __]\");\n\n  FT(\"formatting_codeBackticks\",\n     \"[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]\");\n\n  FT(\"formatting_doubleBackticks\",\n     \"[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]\");\n\n  FT(\"formatting_atxHeader\",\n     \"[header&header-1&formatting&formatting-header&formatting-header-1 #][header&header-1  foo # bar ][header&header-1&formatting&formatting-header&formatting-header-1 #]\");\n\n  FT(\"formatting_setextHeader\",\n     \"foo\",\n     \"[header&header-1&formatting&formatting-header&formatting-header-1 =]\");\n\n  FT(\"formatting_blockquote\",\n     \"[quote&quote-1&formatting&formatting-quote&formatting-quote-1 > ][quote&quote-1 foo]\");\n\n  FT(\"formatting_list\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][variable-2 foo]\");\n  FT(\"formatting_list\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ol 1. ][variable-2 foo]\");\n\n  FT(\"formatting_link\",\n     \"[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string (][string http://example.com/][string&formatting&formatting-link-string )]\");\n\n  FT(\"formatting_linkReference\",\n     \"[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string [][string bar][string&formatting&formatting-link-string ]]]\",\n     \"[link&formatting&formatting-link [][link bar][link&formatting&formatting-link ]]:] [string http://example.com/]\");\n\n  FT(\"formatting_linkWeb\",\n     \"[link&formatting&formatting-link <][link http://example.com/][link&formatting&formatting-link >]\");\n\n  FT(\"formatting_linkEmail\",\n     \"[link&formatting&formatting-link <][link user@example.com][link&formatting&formatting-link >]\");\n\n  FT(\"formatting_escape\",\n     \"[formatting-escape \\\\*]\");\n\n  MT(\"plainText\",\n     \"foo\");\n\n  // Don't style single trailing space\n  MT(\"trailingSpace1\",\n     \"foo \");\n\n  // Two or more trailing spaces should be styled with line break character\n  MT(\"trailingSpace2\",\n     \"foo[trailing-space-a  ][trailing-space-new-line  ]\");\n\n  MT(\"trailingSpace3\",\n     \"foo[trailing-space-a  ][trailing-space-b  ][trailing-space-new-line  ]\");\n\n  MT(\"trailingSpace4\",\n     \"foo[trailing-space-a  ][trailing-space-b  ][trailing-space-a  ][trailing-space-new-line  ]\");\n\n  // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value)\n  MT(\"codeBlocksUsing4Spaces\",\n     \"    [comment foo]\");\n\n  // Code blocks using 4 spaces with internal indentation\n  MT(\"codeBlocksUsing4SpacesIndentation\",\n     \"    [comment bar]\",\n     \"        [comment hello]\",\n     \"            [comment world]\",\n     \"    [comment foo]\",\n     \"bar\");\n\n  // Code blocks using 4 spaces with internal indentation\n  MT(\"codeBlocksUsing4SpacesIndentation\",\n     \" foo\",\n     \"    [comment bar]\",\n     \"        [comment hello]\",\n     \"    [comment world]\");\n\n  // Code blocks should end even after extra indented lines\n  MT(\"codeBlocksWithTrailingIndentedLine\",\n     \"    [comment foo]\",\n     \"        [comment bar]\",\n     \"    [comment baz]\",\n     \"    \",\n     \"hello\");\n\n  // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value)\n  MT(\"codeBlocksUsing1Tab\",\n     \"\\t[comment foo]\");\n\n  // Inline code using backticks\n  MT(\"inlineCodeUsingBackticks\",\n     \"foo [comment `bar`]\");\n\n  // Block code using single backtick (shouldn't work)\n  MT(\"blockCodeSingleBacktick\",\n     \"[comment `]\",\n     \"foo\",\n     \"[comment `]\");\n\n  // Unclosed backticks\n  // Instead of simply marking as CODE, it would be nice to have an\n  // incomplete flag for CODE, that is styled slightly different.\n  MT(\"unclosedBackticks\",\n     \"foo [comment `bar]\");\n\n  // Per documentation: \"To include a literal backtick character within a\n  // code span, you can use multiple backticks as the opening and closing\n  // delimiters\"\n  MT(\"doubleBackticks\",\n     \"[comment ``foo ` bar``]\");\n\n  // Tests based on Dingus\n  // http://daringfireball.net/projects/markdown/dingus\n  //\n  // Multiple backticks within an inline code block\n  MT(\"consecutiveBackticks\",\n     \"[comment `foo```bar`]\");\n\n  // Multiple backticks within an inline code block with a second code block\n  MT(\"consecutiveBackticks\",\n     \"[comment `foo```bar`] hello [comment `world`]\");\n\n  // Unclosed with several different groups of backticks\n  MT(\"unclosedBackticks\",\n     \"[comment ``foo ``` bar` hello]\");\n\n  // Closed with several different groups of backticks\n  MT(\"closedBackticks\",\n     \"[comment ``foo ``` bar` hello``] world\");\n\n  // atx headers\n  // http://daringfireball.net/projects/markdown/syntax#header\n\n  MT(\"atxH1\",\n     \"[header&header-1 # foo]\");\n\n  MT(\"atxH2\",\n     \"[header&header-2 ## foo]\");\n\n  MT(\"atxH3\",\n     \"[header&header-3 ### foo]\");\n\n  MT(\"atxH4\",\n     \"[header&header-4 #### foo]\");\n\n  MT(\"atxH5\",\n     \"[header&header-5 ##### foo]\");\n\n  MT(\"atxH6\",\n     \"[header&header-6 ###### foo]\");\n\n  // H6 - 7x '#' should still be H6, per Dingus\n  // http://daringfireball.net/projects/markdown/dingus\n  MT(\"atxH6NotH7\",\n     \"[header&header-6 ####### foo]\");\n\n  // Inline styles should be parsed inside headers\n  MT(\"atxH1inline\",\n     \"[header&header-1 # foo ][header&header-1&em *bar*]\");\n\n  // Setext headers - H1, H2\n  // Per documentation, \"Any number of underlining =’s or -’s will work.\"\n  // http://daringfireball.net/projects/markdown/syntax#header\n  // Ideally, the text would be marked as `header` as well, but this is\n  // not really feasible at the moment. So, instead, we're testing against\n  // what works today, to avoid any regressions.\n  //\n  // Check if single underlining = works\n  MT(\"setextH1\",\n     \"foo\",\n     \"[header&header-1 =]\");\n\n  // Check if 3+ ='s work\n  MT(\"setextH1\",\n     \"foo\",\n     \"[header&header-1 ===]\");\n\n  // Check if single underlining - works\n  MT(\"setextH2\",\n     \"foo\",\n     \"[header&header-2 -]\");\n\n  // Check if 3+ -'s work\n  MT(\"setextH2\",\n     \"foo\",\n     \"[header&header-2 ---]\");\n\n  // Single-line blockquote with trailing space\n  MT(\"blockquoteSpace\",\n     \"[quote&quote-1 > foo]\");\n\n  // Single-line blockquote\n  MT(\"blockquoteNoSpace\",\n     \"[quote&quote-1 >foo]\");\n\n  // No blank line before blockquote\n  MT(\"blockquoteNoBlankLine\",\n     \"foo\",\n     \"[quote&quote-1 > bar]\");\n\n  // Nested blockquote\n  MT(\"blockquoteSpace\",\n     \"[quote&quote-1 > foo]\",\n     \"[quote&quote-1 >][quote&quote-2 > foo]\",\n     \"[quote&quote-1 >][quote&quote-2 >][quote&quote-3 > foo]\");\n\n  // Single-line blockquote followed by normal paragraph\n  MT(\"blockquoteThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"\",\n     \"bar\");\n\n  // Multi-line blockquote (lazy mode)\n  MT(\"multiBlockquoteLazy\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 bar]\");\n\n  // Multi-line blockquote followed by normal paragraph (lazy mode)\n  MT(\"multiBlockquoteLazyThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 bar]\",\n     \"\",\n     \"hello\");\n\n  // Multi-line blockquote (non-lazy mode)\n  MT(\"multiBlockquote\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 >bar]\");\n\n  // Multi-line blockquote followed by normal paragraph (non-lazy mode)\n  MT(\"multiBlockquoteThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 >bar]\",\n     \"\",\n     \"hello\");\n\n  // Check list types\n\n  MT(\"listAsterisk\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 * foo]\",\n     \"[variable-2 * bar]\");\n\n  MT(\"listPlus\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 + foo]\",\n     \"[variable-2 + bar]\");\n\n  MT(\"listDash\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 - foo]\",\n     \"[variable-2 - bar]\");\n\n  MT(\"listNumber\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 1. foo]\",\n     \"[variable-2 2. bar]\");\n\n  // Lists require a preceding blank line (per Dingus)\n  MT(\"listBogus\",\n     \"foo\",\n     \"1. bar\",\n     \"2. hello\");\n\n  // List after header\n  MT(\"listAfterHeader\",\n     \"[header&header-1 # foo]\",\n     \"[variable-2 - bar]\");\n\n  // Formatting in lists (*)\n  MT(\"listAsteriskFormatting\",\n     \"[variable-2 * ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (+)\n  MT(\"listPlusFormatting\",\n     \"[variable-2 + ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (-)\n  MT(\"listDashFormatting\",\n     \"[variable-2 - ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (1.)\n  MT(\"listNumberFormatting\",\n     \"[variable-2 1. ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 2. ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 3. ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 4. ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Paragraph lists\n  MT(\"listParagraph\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\");\n\n  // Multi-paragraph lists\n  //\n  // 4 spaces\n  MT(\"listMultiParagraph\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"    [variable-2 hello]\");\n\n  // 4 spaces, extra blank lines (should still be list, per Dingus)\n  MT(\"listMultiParagraphExtra\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"\",\n     \"    [variable-2 hello]\");\n\n  // 4 spaces, plus 1 space (should still be list, per Dingus)\n  MT(\"listMultiParagraphExtraSpace\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"     [variable-2 hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // 1 tab\n  MT(\"listTab\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"\\t[variable-2 hello]\");\n\n  // No indent\n  MT(\"listNoIndent\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"hello\");\n\n  // Blockquote\n  MT(\"blockquote\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"    [variable-2&quote&quote-1 > hello]\");\n\n  // Code block\n  MT(\"blockquoteCode\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"        [comment > hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // Code block followed by text\n  MT(\"blockquoteCodeText\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-2 bar]\",\n     \"\",\n     \"        [comment hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // Nested list\n\n  MT(\"listAsteriskNested\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 * bar]\");\n\n  MT(\"listPlusNested\",\n     \"[variable-2 + foo]\",\n     \"\",\n     \"    [variable-3 + bar]\");\n\n  MT(\"listDashNested\",\n     \"[variable-2 - foo]\",\n     \"\",\n     \"    [variable-3 - bar]\");\n\n  MT(\"listNumberNested\",\n     \"[variable-2 1. foo]\",\n     \"\",\n     \"    [variable-3 2. bar]\");\n\n  MT(\"listMixed\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"        [keyword - hello]\",\n     \"\",\n     \"            [variable-2 1. world]\");\n\n  MT(\"listBlockquote\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"        [quote&quote-1&variable-3 > hello]\");\n\n  MT(\"listCode\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"            [comment hello]\");\n\n  // Code with internal indentation\n  MT(\"listCodeIndentation\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"        [comment bar]\",\n     \"            [comment hello]\",\n     \"                [comment world]\",\n     \"        [comment foo]\",\n     \"    [variable-2 bar]\");\n\n  // List nesting edge cases\n  MT(\"listNested\",\n    \"[variable-2 * foo]\",\n    \"\",\n    \"    [variable-3 * bar]\",\n    \"\",\n    \"       [variable-2 hello]\"\n  );\n  MT(\"listNested\",\n    \"[variable-2 * foo]\",\n    \"\",\n    \"    [variable-3 * bar]\",\n    \"\",\n    \"      [variable-3 * foo]\"\n  );\n\n  // Code followed by text\n  MT(\"listCodeText\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"        [comment bar]\",\n     \"\",\n     \"hello\");\n\n  // Following tests directly from official Markdown documentation\n  // http://daringfireball.net/projects/markdown/syntax#hr\n\n  MT(\"hrSpace\",\n     \"[hr * * *]\");\n\n  MT(\"hr\",\n     \"[hr ***]\");\n\n  MT(\"hrLong\",\n     \"[hr *****]\");\n\n  MT(\"hrSpaceDash\",\n     \"[hr - - -]\");\n\n  MT(\"hrDashLong\",\n     \"[hr ---------------------------------------]\");\n\n  // Inline link with title\n  MT(\"linkTitle\",\n     \"[link [[foo]]][string (http://example.com/ \\\"bar\\\")] hello\");\n\n  // Inline link without title\n  MT(\"linkNoTitle\",\n     \"[link [[foo]]][string (http://example.com/)] bar\");\n\n  // Inline link with image\n  MT(\"linkImage\",\n     \"[link [[][tag ![[foo]]][string (http://example.com/)][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with Em\n  MT(\"linkEm\",\n     \"[link [[][link&em *foo*][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with Strong\n  MT(\"linkStrong\",\n     \"[link [[][link&strong **foo**][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with EmStrong\n  MT(\"linkEmStrong\",\n     \"[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string (http://example.com/)] bar\");\n\n  // Image with title\n  MT(\"imageTitle\",\n     \"[tag ![[foo]]][string (http://example.com/ \\\"bar\\\")] hello\");\n\n  // Image without title\n  MT(\"imageNoTitle\",\n     \"[tag ![[foo]]][string (http://example.com/)] bar\");\n\n  // Image with asterisks\n  MT(\"imageAsterisks\",\n     \"[tag ![[*foo*]]][string (http://example.com/)] bar\");\n\n  // Not a link. Should be normal text due to square brackets being used\n  // regularly in text, especially in quoted material, and no space is allowed\n  // between square brackets and parentheses (per Dingus).\n  MT(\"notALink\",\n     \"[[foo]] (bar)\");\n\n  // Reference-style links\n  MT(\"linkReference\",\n     \"[link [[foo]]][string [[bar]]] hello\");\n\n  // Reference-style links with Em\n  MT(\"linkReferenceEm\",\n     \"[link [[][link&em *foo*][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with Strong\n  MT(\"linkReferenceStrong\",\n     \"[link [[][link&strong **foo**][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with EmStrong\n  MT(\"linkReferenceEmStrong\",\n     \"[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with optional space separator (per docuentation)\n  // \"You can optionally use a space to separate the sets of brackets\"\n  MT(\"linkReferenceSpace\",\n     \"[link [[foo]]] [string [[bar]]] hello\");\n\n  // Should only allow a single space (\"...use *a* space...\")\n  MT(\"linkReferenceDoubleSpace\",\n     \"[[foo]]  [[bar]] hello\");\n\n  // Reference-style links with implicit link name\n  MT(\"linkImplicit\",\n     \"[link [[foo]]][string [[]]] hello\");\n\n  // @todo It would be nice if, at some point, the document was actually\n  // checked to see if the referenced link exists\n\n  // Link label, for reference-style links (taken from documentation)\n\n  MT(\"labelNoTitle\",\n     \"[link [[foo]]:] [string http://example.com/]\");\n\n  MT(\"labelIndented\",\n     \"   [link [[foo]]:] [string http://example.com/]\");\n\n  MT(\"labelSpaceTitle\",\n     \"[link [[foo bar]]:] [string http://example.com/ \\\"hello\\\"]\");\n\n  MT(\"labelDoubleTitle\",\n     \"[link [[foo bar]]:] [string http://example.com/ \\\"hello\\\"] \\\"world\\\"\");\n\n  MT(\"labelTitleDoubleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/  \\\"bar\\\"]\");\n\n  MT(\"labelTitleSingleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/  'bar']\");\n\n  MT(\"labelTitleParenthese\",\n     \"[link [[foo]]:] [string http://example.com/  (bar)]\");\n\n  MT(\"labelTitleInvalid\",\n     \"[link [[foo]]:] [string http://example.com/] bar\");\n\n  MT(\"labelLinkAngleBrackets\",\n     \"[link [[foo]]:] [string <http://example.com/>  \\\"bar\\\"]\");\n\n  MT(\"labelTitleNextDoubleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string \\\"bar\\\"] hello\");\n\n  MT(\"labelTitleNextSingleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string 'bar'] hello\");\n\n  MT(\"labelTitleNextParenthese\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string (bar)] hello\");\n\n  MT(\"labelTitleNextMixed\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"(bar\\\" hello\");\n\n  MT(\"linkWeb\",\n     \"[link <http://example.com/>] foo\");\n\n  MT(\"linkWebDouble\",\n     \"[link <http://example.com/>] foo [link <http://example.com/>]\");\n\n  MT(\"linkEmail\",\n     \"[link <user@example.com>] foo\");\n\n  MT(\"linkEmailDouble\",\n     \"[link <user@example.com>] foo [link <user@example.com>]\");\n\n  MT(\"emAsterisk\",\n     \"[em *foo*] bar\");\n\n  MT(\"emUnderscore\",\n     \"[em _foo_] bar\");\n\n  MT(\"emInWordAsterisk\",\n     \"foo[em *bar*]hello\");\n\n  MT(\"emInWordUnderscore\",\n     \"foo[em _bar_]hello\");\n\n  // Per documentation: \"...surround an * or _ with spaces, it’ll be\n  // treated as a literal asterisk or underscore.\"\n\n  MT(\"emEscapedBySpaceIn\",\n     \"foo [em _bar _ hello_] world\");\n\n  MT(\"emEscapedBySpaceOut\",\n     \"foo _ bar[em _hello_]world\");\n\n  MT(\"emEscapedByNewline\",\n     \"foo\",\n     \"_ bar[em _hello_]world\");\n\n  // Unclosed emphasis characters\n  // Instead of simply marking as EM / STRONG, it would be nice to have an\n  // incomplete flag for EM and STRONG, that is styled slightly different.\n  MT(\"emIncompleteAsterisk\",\n     \"foo [em *bar]\");\n\n  MT(\"emIncompleteUnderscore\",\n     \"foo [em _bar]\");\n\n  MT(\"strongAsterisk\",\n     \"[strong **foo**] bar\");\n\n  MT(\"strongUnderscore\",\n     \"[strong __foo__] bar\");\n\n  MT(\"emStrongAsterisk\",\n     \"[em *foo][em&strong **bar*][strong hello**] world\");\n\n  MT(\"emStrongUnderscore\",\n     \"[em _foo][em&strong __bar_][strong hello__] world\");\n\n  // \"...same character must be used to open and close an emphasis span.\"\"\n  MT(\"emStrongMixed\",\n     \"[em _foo][em&strong **bar*hello__ world]\");\n\n  MT(\"emStrongMixed\",\n     \"[em *foo][em&strong __bar_hello** world]\");\n\n  // These characters should be escaped:\n  // \\   backslash\n  // `   backtick\n  // *   asterisk\n  // _   underscore\n  // {}  curly braces\n  // []  square brackets\n  // ()  parentheses\n  // #   hash mark\n  // +   plus sign\n  // -   minus sign (hyphen)\n  // .   dot\n  // !   exclamation mark\n\n  MT(\"escapeBacktick\",\n     \"foo \\\\`bar\\\\`\");\n\n  MT(\"doubleEscapeBacktick\",\n     \"foo \\\\\\\\[comment `bar\\\\\\\\`]\");\n\n  MT(\"escapeAsterisk\",\n     \"foo \\\\*bar\\\\*\");\n\n  MT(\"doubleEscapeAsterisk\",\n     \"foo \\\\\\\\[em *bar\\\\\\\\*]\");\n\n  MT(\"escapeUnderscore\",\n     \"foo \\\\_bar\\\\_\");\n\n  MT(\"doubleEscapeUnderscore\",\n     \"foo \\\\\\\\[em _bar\\\\\\\\_]\");\n\n  MT(\"escapeHash\",\n     \"\\\\# foo\");\n\n  MT(\"doubleEscapeHash\",\n     \"\\\\\\\\# foo\");\n\n  MT(\"escapeNewline\",\n     \"\\\\\",\n     \"[em *foo*]\");\n\n\n  // Tests to make sure GFM-specific things aren't getting through\n\n  MT(\"taskList\",\n     \"[variable-2 * [ ]] bar]\");\n\n  MT(\"fencedCodeBlocks\",\n     \"[comment ```]\",\n     \"foo\",\n     \"[comment ```]\");\n\n  // Tests that require XML mode\n\n  MT(\"xmlMode\",\n     \"[tag&bracket <][tag div][tag&bracket >]\",\n     \"*foo*\",\n     \"[tag&bracket <][tag http://github.com][tag&bracket />]\",\n     \"[tag&bracket </][tag div][tag&bracket >]\",\n     \"[link <http://github.com/>]\");\n\n  MT(\"xmlModeWithMarkdownInside\",\n     \"[tag&bracket <][tag div] [attribute markdown]=[string 1][tag&bracket >]\",\n     \"[em *foo*]\",\n     \"[link <http://github.com/>]\",\n     \"[tag </div>]\",\n     \"[link <http://github.com/>]\",\n     \"[tag&bracket <][tag div][tag&bracket >]\",\n     \"[tag&bracket </][tag div][tag&bracket >]\");\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/meta.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.modeInfo = [\n    {name: \"APL\", mime: \"text/apl\", mode: \"apl\", ext: [\"dyalog\", \"apl\"]},\n    {name: \"Asterisk\", mime: \"text/x-asterisk\", mode: \"asterisk\", file: /^extensions\\.conf$/i},\n    {name: \"C\", mime: \"text/x-csrc\", mode: \"clike\", ext: [\"c\", \"h\"]},\n    {name: \"C++\", mime: \"text/x-c++src\", mode: \"clike\", ext: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"], alias: [\"cpp\"]},\n    {name: \"Cobol\", mime: \"text/x-cobol\", mode: \"cobol\", ext: [\"cob\", \"cpy\"]},\n    {name: \"C#\", mime: \"text/x-csharp\", mode: \"clike\", ext: [\"cs\"], alias: [\"csharp\"]},\n    {name: \"Clojure\", mime: \"text/x-clojure\", mode: \"clojure\", ext: [\"clj\"]},\n    {name: \"CoffeeScript\", mime: \"text/x-coffeescript\", mode: \"coffeescript\", ext: [\"coffee\"], alias: [\"coffee\", \"coffee-script\"]},\n    {name: \"Common Lisp\", mime: \"text/x-common-lisp\", mode: \"commonlisp\", ext: [\"cl\", \"lisp\", \"el\"], alias: [\"lisp\"]},\n    {name: \"Cypher\", mime: \"application/x-cypher-query\", mode: \"cypher\", ext: [\"cyp\", \"cypher\"]},\n    {name: \"Cython\", mime: \"text/x-cython\", mode: \"python\", ext: [\"pyx\", \"pxd\", \"pxi\"]},\n    {name: \"CSS\", mime: \"text/css\", mode: \"css\", ext: [\"css\"]},\n    {name: \"CQL\", mime: \"text/x-cassandra\", mode: \"sql\", ext: [\"cql\"]},\n    {name: \"D\", mime: \"text/x-d\", mode: \"d\", ext: [\"d\"]},\n    {name: \"Dart\", mimes: [\"application/dart\", \"text/x-dart\"], mode: \"dart\", ext: [\"dart\"]},\n    {name: \"diff\", mime: \"text/x-diff\", mode: \"diff\", ext: [\"diff\", \"patch\"]},\n    {name: \"Django\", mime: \"text/x-django\", mode: \"django\"},\n    {name: \"Dockerfile\", mime: \"text/x-dockerfile\", mode: \"dockerfile\", file: /^Dockerfile$/},\n    {name: \"DTD\", mime: \"application/xml-dtd\", mode: \"dtd\", ext: [\"dtd\"]},\n    {name: \"Dylan\", mime: \"text/x-dylan\", mode: \"dylan\", ext: [\"dylan\", \"dyl\", \"intr\"]},\n    {name: \"EBNF\", mime: \"text/x-ebnf\", mode: \"ebnf\"},\n    {name: \"ECL\", mime: \"text/x-ecl\", mode: \"ecl\", ext: [\"ecl\"]},\n    {name: \"Eiffel\", mime: \"text/x-eiffel\", mode: \"eiffel\", ext: [\"e\"]},\n    {name: \"Embedded Javascript\", mime: \"application/x-ejs\", mode: \"htmlembedded\", ext: [\"ejs\"]},\n    {name: \"Embedded Ruby\", mime: \"application/x-erb\", mode: \"htmlembedded\", ext: [\"erb\"]},\n    {name: \"Erlang\", mime: \"text/x-erlang\", mode: \"erlang\", ext: [\"erl\"]},\n    {name: \"Forth\", mime: \"text/x-forth\", mode: \"forth\", ext: [\"forth\", \"fth\", \"4th\"]},\n    {name: \"Fortran\", mime: \"text/x-fortran\", mode: \"fortran\", ext: [\"f\", \"for\", \"f77\", \"f90\"]},\n    {name: \"F#\", mime: \"text/x-fsharp\", mode: \"mllike\", ext: [\"fs\"], alias: [\"fsharp\"]},\n    {name: \"Gas\", mime: \"text/x-gas\", mode: \"gas\", ext: [\"s\"]},\n    {name: \"Gherkin\", mime: \"text/x-feature\", mode: \"gherkin\", ext: [\"feature\"]},\n    {name: \"GitHub Flavored Markdown\", mime: \"text/x-gfm\", mode: \"gfm\", file: /^(readme|contributing|history).md$/i},\n    {name: \"Go\", mime: \"text/x-go\", mode: \"go\", ext: [\"go\"]},\n    {name: \"Groovy\", mime: \"text/x-groovy\", mode: \"groovy\", ext: [\"groovy\"]},\n    {name: \"HAML\", mime: \"text/x-haml\", mode: \"haml\", ext: [\"haml\"]},\n    {name: \"Haskell\", mime: \"text/x-haskell\", mode: \"haskell\", ext: [\"hs\"]},\n    {name: \"Haxe\", mime: \"text/x-haxe\", mode: \"haxe\", ext: [\"hx\"]},\n    {name: \"HXML\", mime: \"text/x-hxml\", mode: \"haxe\", ext: [\"hxml\"]},\n    {name: \"ASP.NET\", mime: \"application/x-aspx\", mode: \"htmlembedded\", ext: [\"aspx\"], alias: [\"asp\", \"aspx\"]},\n    {name: \"HTML\", mime: \"text/html\", mode: \"htmlmixed\", ext: [\"html\", \"htm\"], alias: [\"xhtml\"]},\n    {name: \"HTTP\", mime: \"message/http\", mode: \"http\"},\n    {name: \"IDL\", mime: \"text/x-idl\", mode: \"idl\", ext: [\"pro\"]},\n    {name: \"Jade\", mime: \"text/x-jade\", mode: \"jade\", ext: [\"jade\"]},\n    {name: \"Java\", mime: \"text/x-java\", mode: \"clike\", ext: [\"java\"]},\n    {name: \"Java Server Pages\", mime: \"application/x-jsp\", mode: \"htmlembedded\", ext: [\"jsp\"], alias: [\"jsp\"]},\n    {name: \"JavaScript\", mimes: [\"text/javascript\", \"text/ecmascript\", \"application/javascript\", \"application/x-javascript\", \"application/ecmascript\"],\n     mode: \"javascript\", ext: [\"js\"], alias: [\"ecmascript\", \"js\", \"node\"]},\n    {name: \"JSON\", mimes: [\"application/json\", \"application/x-json\"], mode: \"javascript\", ext: [\"json\", \"map\"], alias: [\"json5\"]},\n    {name: \"JSON-LD\", mime: \"application/ld+json\", mode: \"javascript\", ext: [\"jsonld\"], alias: [\"jsonld\"]},\n    {name: \"Jinja2\", mime: \"null\", mode: \"jinja2\"},\n    {name: \"Julia\", mime: \"text/x-julia\", mode: \"julia\", ext: [\"jl\"]},\n    {name: \"Kotlin\", mime: \"text/x-kotlin\", mode: \"kotlin\", ext: [\"kt\"]},\n    {name: \"LESS\", mime: \"text/x-less\", mode: \"css\", ext: [\"less\"]},\n    {name: \"LiveScript\", mime: \"text/x-livescript\", mode: \"livescript\", ext: [\"ls\"], alias: [\"ls\"]},\n    {name: \"Lua\", mime: \"text/x-lua\", mode: \"lua\", ext: [\"lua\"]},\n    {name: \"Markdown\", mime: \"text/x-markdown\", mode: \"markdown\", ext: [\"markdown\", \"md\", \"mkd\"]},\n    {name: \"mIRC\", mime: \"text/mirc\", mode: \"mirc\"},\n    {name: \"MariaDB SQL\", mime: \"text/x-mariadb\", mode: \"sql\"},\n    {name: \"Modelica\", mime: \"text/x-modelica\", mode: \"modelica\", ext: [\"mo\"]},\n    {name: \"MS SQL\", mime: \"text/x-mssql\", mode: \"sql\"},\n    {name: \"MySQL\", mime: \"text/x-mysql\", mode: \"sql\"},\n    {name: \"Nginx\", mime: \"text/x-nginx-conf\", mode: \"nginx\", file: /nginx.*\\.conf$/i},\n    {name: \"NTriples\", mime: \"text/n-triples\", mode: \"ntriples\", ext: [\"nt\"]},\n    {name: \"Objective C\", mime: \"text/x-objectivec\", mode: \"clike\", ext: [\"m\", \"mm\"]},\n    {name: \"OCaml\", mime: \"text/x-ocaml\", mode: \"mllike\", ext: [\"ml\", \"mli\", \"mll\", \"mly\"]},\n    {name: \"Octave\", mime: \"text/x-octave\", mode: \"octave\", ext: [\"m\"]},\n    {name: \"Pascal\", mime: \"text/x-pascal\", mode: \"pascal\", ext: [\"p\", \"pas\"]},\n    {name: \"PEG.js\", mime: \"null\", mode: \"pegjs\", ext: [\"jsonld\"]},\n    {name: \"Perl\", mime: \"text/x-perl\", mode: \"perl\", ext: [\"pl\", \"pm\"]},\n    {name: \"PHP\", mime: \"application/x-httpd-php\", mode: \"php\", ext: [\"php\", \"php3\", \"php4\", \"php5\", \"phtml\"]},\n    {name: \"Pig\", mime: \"text/x-pig\", mode: \"pig\", ext: [\"pig\"]},\n    {name: \"Plain Text\", mime: \"text/plain\", mode: \"null\", ext: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\"]},\n    {name: \"PLSQL\", mime: \"text/x-plsql\", mode: \"sql\", ext: [\"pls\"]},\n    {name: \"Properties files\", mime: \"text/x-properties\", mode: \"properties\", ext: [\"properties\", \"ini\", \"in\"], alias: [\"ini\", \"properties\"]},\n    {name: \"Python\", mime: \"text/x-python\", mode: \"python\", ext: [\"py\", \"pyw\"]},\n    {name: \"Puppet\", mime: \"text/x-puppet\", mode: \"puppet\", ext: [\"pp\"]},\n    {name: \"Q\", mime: \"text/x-q\", mode: \"q\", ext: [\"q\"]},\n    {name: \"R\", mime: \"text/x-rsrc\", mode: \"r\", ext: [\"r\"], alias: [\"rscript\"]},\n    {name: \"reStructuredText\", mime: \"text/x-rst\", mode: \"rst\", ext: [\"rst\"], alias: [\"rst\"]},\n    {name: \"RPM Changes\", mime: \"text/x-rpm-changes\", mode: \"rpm\"},\n    {name: \"RPM Spec\", mime: \"text/x-rpm-spec\", mode: \"rpm\", ext: [\"spec\"]},\n    {name: \"Ruby\", mime: \"text/x-ruby\", mode: \"ruby\", ext: [\"rb\"], alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"]},\n    {name: \"Rust\", mime: \"text/x-rustsrc\", mode: \"rust\", ext: [\"rs\"]},\n    {name: \"Sass\", mime: \"text/x-sass\", mode: \"sass\", ext: [\"sass\"]},\n    {name: \"Scala\", mime: \"text/x-scala\", mode: \"clike\", ext: [\"scala\"]},\n    {name: \"Scheme\", mime: \"text/x-scheme\", mode: \"scheme\", ext: [\"scm\", \"ss\"]},\n    {name: \"SCSS\", mime: \"text/x-scss\", mode: \"css\", ext: [\"scss\"]},\n    {name: \"Shell\", mime: \"text/x-sh\", mode: \"shell\", ext: [\"sh\", \"ksh\", \"bash\"], alias: [\"bash\", \"sh\", \"zsh\"]},\n    {name: \"Sieve\", mime: \"application/sieve\", mode: \"sieve\", ext: [\"siv\", \"sieve\"]},\n    {name: \"Slim\", mimes: [\"text/x-slim\", \"application/x-slim\"], mode: \"slim\", ext: [\"slim\"]},\n    {name: \"Smalltalk\", mime: \"text/x-stsrc\", mode: \"smalltalk\", ext: [\"st\"]},\n    {name: \"Smarty\", mime: \"text/x-smarty\", mode: \"smarty\", ext: [\"tpl\"]},\n    {name: \"SmartyMixed\", mime: \"text/x-smarty\", mode: \"smartymixed\"},\n    {name: \"Solr\", mime: \"text/x-solr\", mode: \"solr\"},\n    {name: \"Soy\", mime: \"text/x-soy\", mode: \"soy\", ext: [\"soy\"], alias: [\"closure template\"]},\n    {name: \"SPARQL\", mime: \"application/sparql-query\", mode: \"sparql\", ext: [\"rq\", \"sparql\"], alias: [\"sparul\"]},\n    {name: \"Spreadsheet\", mime: \"text/x-spreadsheet\", mode: \"spreadsheet\", alias: [\"excel\", \"formula\"]},\n    {name: \"SQL\", mime: \"text/x-sql\", mode: \"sql\", ext: [\"sql\"]},\n    {name: \"MariaDB\", mime: \"text/x-mariadb\", mode: \"sql\"},\n    {name: \"sTeX\", mime: \"text/x-stex\", mode: \"stex\"},\n    {name: \"LaTeX\", mime: \"text/x-latex\", mode: \"stex\", ext: [\"text\", \"ltx\"], alias: [\"tex\"]},\n    {name: \"SystemVerilog\", mime: \"text/x-systemverilog\", mode: \"verilog\", ext: [\"v\"]},\n    {name: \"Tcl\", mime: \"text/x-tcl\", mode: \"tcl\", ext: [\"tcl\"]},\n    {name: \"Textile\", mime: \"text/x-textile\", mode: \"textile\", ext: [\"textile\"]},\n    {name: \"TiddlyWiki \", mime: \"text/x-tiddlywiki\", mode: \"tiddlywiki\"},\n    {name: \"Tiki wiki\", mime: \"text/tiki\", mode: \"tiki\"},\n    {name: \"TOML\", mime: \"text/x-toml\", mode: \"toml\", ext: [\"toml\"]},\n    {name: \"Tornado\", mime: \"text/x-tornado\", mode: \"tornado\"},\n    {name: \"Turtle\", mime: \"text/turtle\", mode: \"turtle\", ext: [\"ttl\"]},\n    {name: \"TypeScript\", mime: \"application/typescript\", mode: \"javascript\", ext: [\"ts\"], alias: [\"ts\"]},\n    {name: \"VB.NET\", mime: \"text/x-vb\", mode: \"vb\", ext: [\"vb\"]},\n    {name: \"VBScript\", mime: \"text/vbscript\", mode: \"vbscript\", ext: [\"vbs\"]},\n    {name: \"Velocity\", mime: \"text/velocity\", mode: \"velocity\", ext: [\"vtl\"]},\n    {name: \"Verilog\", mime: \"text/x-verilog\", mode: \"verilog\", ext: [\"v\"]},\n    {name: \"XML\", mimes: [\"application/xml\", \"text/xml\"], mode: \"xml\", ext: [\"xml\", \"xsl\", \"xsd\"], alias: [\"rss\", \"wsdl\", \"xsd\"]},\n    {name: \"XQuery\", mime: \"application/xquery\", mode: \"xquery\", ext: [\"xy\", \"xquery\"]},\n    {name: \"YAML\", mime: \"text/x-yaml\", mode: \"yaml\", ext: [\"yaml\"], alias: [\"yml\"]},\n    {name: \"Z80\", mime: \"text/x-z80\", mode: \"z80\", ext: [\"z80\"]}\n  ];\n  // Ensure all modes have a mime property for backwards compatibility\n  for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n    var info = CodeMirror.modeInfo[i];\n    if (info.mimes) info.mime = info.mimes[0];\n  }\n\n  CodeMirror.findModeByMIME = function(mime) {\n    mime = mime.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.mime == mime) return info;\n      if (info.mimes) for (var j = 0; j < info.mimes.length; j++)\n        if (info.mimes[j] == mime) return info;\n    }\n  };\n\n  CodeMirror.findModeByExtension = function(ext) {\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.ext) for (var j = 0; j < info.ext.length; j++)\n        if (info.ext[j] == ext) return info;\n    }\n  };\n\n  CodeMirror.findModeByFileName = function(filename) {\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.file && info.file.test(filename)) return info;\n    }\n    var dot = filename.lastIndexOf(\".\");\n    var ext = dot > -1 && filename.substring(dot + 1, filename.length);\n    if (ext) return CodeMirror.findModeByExtension(ext);\n  };\n\n  CodeMirror.findModeByName = function(name) {\n    name = name.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.name.toLowerCase() == name) return info;\n      if (info.alias) for (var j = 0; j < info.alias.length; j++)\n        if (info.alias[j].toLowerCase() == name) return info;\n    }\n  };\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/mirc/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: mIRC mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/twilight.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"mirc.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">mIRC</a>\n  </ul>\n</div>\n\n<article>\n<h2>mIRC mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n;AKA Nick Tracker by Ford_Lawnmower irc.GeekShed.net #Script-Help\n;*****************************************************************************;\n;**Start Setup\n;Change JoinDisplay, below, for On Join AKA Display. On = 1 - Off = 0\nalias -l JoinDisplay { return 1 }\n;Change MaxNicks, below, to the number of nicknames you want to store for each hostmask. I wouldn't go over 400 with this ;/\nalias -l MaxNicks { return 20 }\n;Change AKALogo, below, To the text you want displayed before each AKA result.\nalias -l AKALogo { return \u000306\u0007 \u000305A\u000306K\u000307A \u000306\u0007 }\n;**End Setup\n;*****************************************************************************;\nOn *:Join:#: {\n  if ($nick == $me) { .timer 1 1 ialupdateCheck $chan }\n  NickNamesAdd $nick $+($network,$wildsite)\n  if ($JoinDisplay) { .timerNickNames $+ $nick 1 2 NickNames.display $nick $chan $network $wildsite }\n}\non *:Nick: { NickNamesAdd $newnick $+($network,$wildsite) $nick }\nalias -l NickNames.display {\n  if ($gettok($hget(NickNames,$+($3,$4)),0,126) > 1) {\n    echo -g $2 $AKALogo $+(\u000309,$1) $AKALogo \u000307 $mid($replace($hget(NickNames,$+($3,$4)),$chr(126),$chr(44)),2,-1)\n  }\n}\nalias -l NickNamesAdd {\n  if ($hget(NickNames,$2)) {\n    if (!$regex($hget(NickNames,$2),/~\\Q $+ $replacecs($1,\\E,\\E\\\\E\\Q) $+ \\E~/i)) {\n      if ($gettok($hget(NickNames,$2),0,126) <= $MaxNicks) {\n        hadd NickNames $2 $+($hget(NickNames,$2),$1,~)\n      }\n      else {\n        hadd NickNames $2 $+($mid($hget(NickNames,$2),$pos($hget(NickNames,$2),~,2)),$1,~)\n      }\n    }\n  }\n  else {\n    hadd -m NickNames $2 $+(~,$1,~,$iif($3,$+($3,~)))\n  }\n}\nalias -l Fix.All.MindUser {\n  var %Fix.Count = $hfind(NickNames,/[^~]+[0-9]{4}~/,0,r).data\n  while (%Fix.Count) {\n    if ($Fix.MindUser($hget(NickNames,$hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data))) {\n      echo -ag Record %Fix.Count - $v1 - Was Cleaned\n      hadd NickNames $hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data $v1\n    }\n    dec %Fix.Count\n  }\n}\nalias -l Fix.MindUser { return $regsubex($1,/[^~]+[0-9]{4}~/g,$null) }\nmenu nicklist,query {\n  -\n  .AKA\n  ..Check $$1: {\n    if ($gettok($hget(NickNames,$+($network,$address($1,2))),0,126) > 1) {\n      NickNames.display $1 $active $network $address($1,2)\n    }\n    else { echo -ag $AKALogo $+(\u000309,$1) \u000307has not been known by any other nicknames while I have been watching. }\n  }\n  ..Cleanup $$1:hadd NickNames $+($network,$address($1,2)) $fix.minduser($hget(NickNames,$+($network,$address($1,2))))\n  ..Clear $$1:hadd NickNames $+($network,$address($1,2)) $+(~,$1,~)\n  ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search\n  -\n}\nmenu status,channel {\n  -\n  .AKA\n  ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search\n  ..Clean All Records:Fix.All.Minduser\n  -\n}\ndialog AKA_Search {\n  title \"AKA Search Engine\"\n  size -1 -1 206 221\n  option dbu\n  edit \"\", 1, 8 5 149 10, autohs\n  button \"Search\", 2, 163 4 32 12\n  radio \"Search HostMask\", 4, 61 22 55 10\n  radio \"Search Nicknames\", 5, 123 22 56 10\n  list 6, 8 38 190 169, sort extsel vsbar\n  button \"Check Selected\", 7, 67 206 40 12\n  button \"Close\", 8, 160 206 38 12, cancel\n  box \"Search Type\", 3, 11 17 183 18\n  button \"Copy to Clipboard\", 9, 111 206 46 12\n}\nOn *:Dialog:Aka_Search:init:*: { did -c $dname 5 }\nOn *:Dialog:Aka_Search:Sclick:2,7,9: {\n  if ($did == 2) && ($did($dname,1)) {\n    did -r $dname 6\n    var %search $+(*,$v1,*), %type $iif($did($dname,5).state,data,item), %matches = $hfind(NickNames,%search,0,w). [ $+ [ %type ] ]\n    while (%matches) {\n      did -a $dname 6 $hfind(NickNames,%search,%matches,w). [ $+ [ %type ] ]\n      dec %matches\n    }\n    did -c $dname 6 1\n  }\n  elseif ($did == 7) && ($did($dname,6).seltext) { echo -ga $AKALogo \u000307 $mid($replace($hget(NickNames,$v1),$chr(126),$chr(44)),2,-1) }\n  elseif ($did == 9) && ($did($dname,6).seltext) { clipboard $mid($v1,$pos($v1,*,1)) }\n}\nOn *:Start:{\n  if (!$hget(NickNames)) { hmake NickNames 10 }\n  if ($isfile(NickNames.hsh)) { hload  NickNames NickNames.hsh }\n}\nOn *:Exit: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }\nOn *:Disconnect: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }\nOn *:Unload: { hfree NickNames }\nalias -l ialupdateCheck {\n  inc -z $+(%,ialupdateCheck,$network) $calc($nick($1,0) / 4)\n  ;If your ial is already being updated on join .who $1 out.\n  ;If you are using /names to update ial you will still need this line.\n  .who $1\n}\nRaw 352:*: {\n  if ($($+(%,ialupdateCheck,$network),2)) haltdef\n  NickNamesAdd $6 $+($network,$address($6,2))\n}\nRaw 315:*: {\n  if ($($+(%,ialupdateCheck,$network),2)) haltdef\n}\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"twilight\",\n        lineNumbers: true,\n        matchBrackets: true,\n        indentUnit: 4,\n        mode: \"text/mirc\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/mirc</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/mirc/mirc.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/mirc\", \"mirc\");\nCodeMirror.defineMode(\"mirc\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var specials = parseWords(\"$! $$ $& $? $+ $abook $abs $active $activecid \" +\n                            \"$activewid $address $addtok $agent $agentname $agentstat $agentver \" +\n                            \"$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime \" +\n                            \"$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind \" +\n                            \"$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes \" +\n                            \"$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color \" +\n                            \"$com $comcall $comchan $comerr $compact $compress $comval $cos $count \" +\n                            \"$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight \" +\n                            \"$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress \" +\n                            \"$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll \" +\n                            \"$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error \" +\n                            \"$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir \" +\n                            \"$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve \" +\n                            \"$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt \" +\n                            \"$group $halted $hash $height $hfind $hget $highlight $hnick $hotline \" +\n                            \"$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil \" +\n                            \"$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect \" +\n                            \"$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile \" +\n                            \"$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive \" +\n                            \"$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock \" +\n                            \"$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer \" +\n                            \"$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext \" +\n                            \"$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode \" +\n                            \"$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile \" +\n                            \"$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly \" +\n                            \"$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree \" +\n                            \"$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo \" +\n                            \"$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex \" +\n                            \"$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline \" +\n                            \"$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin \" +\n                            \"$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname \" +\n                            \"$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped \" +\n                            \"$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp \" +\n                            \"$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel \" +\n                            \"$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver \" +\n                            \"$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor\");\n  var keywords = parseWords(\"abook ajinvite alias aline ame amsg anick aop auser autojoin avoice \" +\n                            \"away background ban bcopy beep bread break breplace bset btrunc bunset bwrite \" +\n                            \"channel clear clearall cline clipboard close cnick color comclose comopen \" +\n                            \"comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver \" +\n                            \"debug dec describe dialog did didtok disable disconnect dlevel dline dll \" +\n                            \"dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace \" +\n                            \"drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable \" +\n                            \"events exit fclose filter findtext finger firewall flash flist flood flush \" +\n                            \"flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove \" +\n                            \"gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd \" +\n                            \"halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear \" +\n                            \"ialmark identd if ignore iline inc invite iuser join kick linesep links list \" +\n                            \"load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice \" +\n                            \"notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice \" +\n                            \"qme qmsg query queryn quit raw reload remini remote remove rename renwin \" +\n                            \"reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini \" +\n                            \"say scid scon server set showmirc signam sline sockaccept sockclose socklist \" +\n                            \"socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite \" +\n                            \"sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize \" +\n                            \"toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho \" +\n                            \"var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum \" +\n                            \"isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower \" +\n                            \"isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs \" +\n                            \"elseif else goto menu nicklist status title icon size option text edit \" +\n                            \"button check radio box scroll list combo link tab item\");\n  var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n  var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n  function tokenBase(stream, state) {\n    var beforeParams = state.beforeParams;\n    state.beforeParams = false;\n    var ch = stream.next();\n    if (/[\\[\\]{}\\(\\),\\.]/.test(ch)) {\n      if (ch == \"(\" && beforeParams) state.inParams = true;\n      else if (ch == \")\") state.inParams = false;\n      return null;\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    else if (ch == \"\\\\\") {\n      stream.eat(\"\\\\\");\n      stream.eat(/./);\n      return \"number\";\n    }\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      return chain(stream, state, tokenComment);\n    }\n    else if (ch == \";\" && stream.match(/ *\\( *\\(/)) {\n      return chain(stream, state, tokenUnparsed);\n    }\n    else if (ch == \";\" && !state.inParams) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (ch == '\"') {\n      stream.eat(/\"/);\n      return \"keyword\";\n    }\n    else if (ch == \"$\") {\n      stream.eatWhile(/[$_a-z0-9A-Z\\.:]/);\n      if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {\n        return \"keyword\";\n      }\n      else {\n        state.beforeParams = true;\n        return \"builtin\";\n      }\n    }\n    else if (ch == \"%\") {\n      stream.eatWhile(/[^,^\\s^\\(^\\)]/);\n      state.beforeParams = true;\n      return \"string\";\n    }\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    else {\n      stream.eatWhile(/[\\w\\$_{}]/);\n      var word = stream.current().toLowerCase();\n      if (keywords && keywords.propertyIsEnumerable(word))\n        return \"keyword\";\n      if (functions && functions.propertyIsEnumerable(word)) {\n        state.beforeParams = true;\n        return \"keyword\";\n      }\n      return null;\n    }\n  }\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n  function tokenUnparsed(stream, state) {\n    var maybeEnd = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \";\" && maybeEnd == 2) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      if (ch == \")\")\n        maybeEnd++;\n      else if (ch != \" \")\n        maybeEnd = 0;\n    }\n    return \"meta\";\n  }\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        beforeParams: false,\n        inParams: false\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/mllike/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: ML-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=stylesheet href=../../lib/codemirror.css>\n<script src=../../lib/codemirror.js></script>\n<script src=../../addon/edit/matchbrackets.js></script>\n<script src=mllike.js></script>\n<style type=text/css>\n  .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">ML-like</a>\n  </ul>\n</div>\n\n<article>\n<h2>OCaml mode</h2>\n\n\n<textarea id=\"ocamlCode\">\n(* Summing a list of integers *)\nlet rec sum xs =\n  match xs with\n    | []       -&gt; 0\n    | x :: xs' -&gt; x + sum xs'\n\n(* Quicksort *)\nlet rec qsort = function\n   | [] -&gt; []\n   | pivot :: rest -&gt;\n       let is_less x = x &lt; pivot in\n       let left, right = List.partition is_less rest in\n       qsort left @ [pivot] @ qsort right\n\n(* Fibonacci Sequence *)\nlet rec fib_aux n a b =\n  match n with\n  | 0 -&gt; a\n  | _ -&gt; fib_aux (n - 1) (a + b) a\nlet fib n = fib_aux n 0 1\n\n(* Birthday paradox *)\nlet year_size = 365.\n\nlet rec birthday_paradox prob people =\n    let prob' = (year_size -. float people) /. year_size *. prob  in\n    if prob' &lt; 0.5 then\n        Printf.printf \"answer = %d\\n\" (people+1)\n    else\n        birthday_paradox prob' (people+1) ;;\n\nbirthday_paradox 1.0 1\n\n(* Church numerals *)\nlet zero f x = x\nlet succ n f x = f (n f x)\nlet one = succ zero\nlet two = succ (succ zero)\nlet add n1 n2 f x = n1 f (n2 f x)\nlet to_string n = n (fun k -&gt; \"S\" ^ k) \"0\"\nlet _ = to_string (add (succ two) two)\n\n(* Elementary functions *)\nlet square x = x * x;;\nlet rec fact x =\n  if x &lt;= 1 then 1 else x * fact (x - 1);;\n\n(* Automatic memory management *)\nlet l = 1 :: 2 :: 3 :: [];;\n[1; 2; 3];;\n5 :: l;;\n\n(* Polymorphism: sorting lists *)\nlet rec sort = function\n  | [] -&gt; []\n  | x :: l -&gt; insert x (sort l)\n\nand insert elem = function\n  | [] -&gt; [elem]\n  | x :: l -&gt;\n      if elem &lt; x then elem :: x :: l else x :: insert elem l;;\n\n(* Imperative features *)\nlet add_polynom p1 p2 =\n  let n1 = Array.length p1\n  and n2 = Array.length p2 in\n  let result = Array.create (max n1 n2) 0 in\n  for i = 0 to n1 - 1 do result.(i) &lt;- p1.(i) done;\n  for i = 0 to n2 - 1 do result.(i) &lt;- result.(i) + p2.(i) done;\n  result;;\nadd_polynom [| 1; 2 |] [| 1; 2; 3 |];;\n\n(* We may redefine fact using a reference cell and a for loop *)\nlet fact n =\n  let result = ref 1 in\n  for i = 2 to n do\n    result := i * !result\n   done;\n   !result;;\nfact 5;;\n\n(* Triangle (graphics) *)\nlet () =\n  ignore( Glut.init Sys.argv );\n  Glut.initDisplayMode ~double_buffer:true ();\n  ignore (Glut.createWindow ~title:\"OpenGL Demo\");\n  let angle t = 10. *. t *. t in\n  let render () =\n    GlClear.clear [ `color ];\n    GlMat.load_identity ();\n    GlMat.rotate ~angle: (angle (Sys.time ())) ~z:1. ();\n    GlDraw.begins `triangles;\n    List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.];\n    GlDraw.ends ();\n    Glut.swapBuffers () in\n  GlMat.mode `modelview;\n  Glut.displayFunc ~cb:render;\n  Glut.idleFunc ~cb:(Some Glut.postRedisplay);\n  Glut.mainLoop ()\n\n(* A Hundred Lines of Caml - http://caml.inria.fr/about/taste.en.html *)\n(* OCaml page on Wikipedia - http://en.wikipedia.org/wiki/OCaml *)\n</textarea>\n\n<h2>F# mode</h2>\n<textarea id=\"fsharpCode\">\nmodule CodeMirror.FSharp\n\nlet rec fib = function\n    | 0 -> 0\n    | 1 -> 1\n    | n -> fib (n - 1) + fib (n - 2)\n\ntype Point =\n    {\n        x : int\n        y : int\n    }\n\ntype Color =\n    | Red\n    | Green\n    | Blue\n\n[0 .. 10]\n|> List.map ((+) 2)\n|> List.fold (fun x y -> x + y) 0\n|> printf \"%i\"\n</textarea>\n\n\n<script>\n  var ocamlEditor = CodeMirror.fromTextArea(document.getElementById('ocamlCode'), {\n    mode: 'text/x-ocaml',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n\n  var fsharpEditor = CodeMirror.fromTextArea(document.getElementById('fsharpCode'), {\n    mode: 'text/x-fsharp',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-ocaml</code> (OCaml) and <code>text/x-fsharp</code> (F#).</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/mllike/mllike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('mllike', function(_config, parserConfig) {\n  var words = {\n    'let': 'keyword',\n    'rec': 'keyword',\n    'in': 'keyword',\n    'of': 'keyword',\n    'and': 'keyword',\n    'if': 'keyword',\n    'then': 'keyword',\n    'else': 'keyword',\n    'for': 'keyword',\n    'to': 'keyword',\n    'while': 'keyword',\n    'do': 'keyword',\n    'done': 'keyword',\n    'fun': 'keyword',\n    'function': 'keyword',\n    'val': 'keyword',\n    'type': 'keyword',\n    'mutable': 'keyword',\n    'match': 'keyword',\n    'with': 'keyword',\n    'try': 'keyword',\n    'open': 'builtin',\n    'ignore': 'builtin',\n    'begin': 'keyword',\n    'end': 'keyword'\n  };\n\n  var extraWords = parserConfig.extraWords || {};\n  for (var prop in extraWords) {\n    if (extraWords.hasOwnProperty(prop)) {\n      words[prop] = parserConfig.extraWords[prop];\n    }\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch === '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n    if (ch === '(') {\n      if (stream.eat('*')) {\n        state.commentLevel++;\n        state.tokenize = tokenComment;\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch === '~') {\n      stream.eatWhile(/\\w/);\n      return 'variable-2';\n    }\n    if (ch === '`') {\n      stream.eatWhile(/\\w/);\n      return 'quote';\n    }\n    if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\d]/);\n      if (stream.eat('.')) {\n        stream.eatWhile(/[\\d]/);\n      }\n      return 'number';\n    }\n    if ( /[+\\-*&%=<>!?|]/.test(ch)) {\n      return 'operator';\n    }\n    stream.eatWhile(/\\w/);\n    var cur = stream.current();\n    return words[cur] || 'variable';\n  }\n\n  function tokenString(stream, state) {\n    var next, end = false, escaped = false;\n    while ((next = stream.next()) != null) {\n      if (next === '\"' && !escaped) {\n        end = true;\n        break;\n      }\n      escaped = !escaped && next === '\\\\';\n    }\n    if (end && !escaped) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  };\n\n  function tokenComment(stream, state) {\n    var prev, next;\n    while(state.commentLevel > 0 && (next = stream.next()) != null) {\n      if (prev === '(' && next === '*') state.commentLevel++;\n      if (prev === '*' && next === ')') state.commentLevel--;\n      prev = next;\n    }\n    if (state.commentLevel <= 0) {\n      state.tokenize = tokenBase;\n    }\n    return 'comment';\n  }\n\n  return {\n    startState: function() {return {tokenize: tokenBase, commentLevel: 0};},\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    },\n\n    blockCommentStart: \"(*\",\n    blockCommentEnd: \"*)\",\n    lineComment: parserConfig.slashComments ? \"//\" : null\n  };\n});\n\nCodeMirror.defineMIME('text/x-ocaml', {\n  name: 'mllike',\n  extraWords: {\n    'succ': 'keyword',\n    'trace': 'builtin',\n    'exit': 'builtin',\n    'print_string': 'builtin',\n    'print_endline': 'builtin',\n    'true': 'atom',\n    'false': 'atom',\n    'raise': 'keyword'\n  }\n});\n\nCodeMirror.defineMIME('text/x-fsharp', {\n  name: 'mllike',\n  extraWords: {\n    'abstract': 'keyword',\n    'as': 'keyword',\n    'assert': 'keyword',\n    'base': 'keyword',\n    'class': 'keyword',\n    'default': 'keyword',\n    'delegate': 'keyword',\n    'downcast': 'keyword',\n    'downto': 'keyword',\n    'elif': 'keyword',\n    'exception': 'keyword',\n    'extern': 'keyword',\n    'finally': 'keyword',\n    'global': 'keyword',\n    'inherit': 'keyword',\n    'inline': 'keyword',\n    'interface': 'keyword',\n    'internal': 'keyword',\n    'lazy': 'keyword',\n    'let!': 'keyword',\n    'member' : 'keyword',\n    'module': 'keyword',\n    'namespace': 'keyword',\n    'new': 'keyword',\n    'null': 'keyword',\n    'override': 'keyword',\n    'private': 'keyword',\n    'public': 'keyword',\n    'return': 'keyword',\n    'return!': 'keyword',\n    'select': 'keyword',\n    'static': 'keyword',\n    'struct': 'keyword',\n    'upcast': 'keyword',\n    'use': 'keyword',\n    'use!': 'keyword',\n    'val': 'keyword',\n    'when': 'keyword',\n    'yield': 'keyword',\n    'yield!': 'keyword',\n\n    'List': 'builtin',\n    'Seq': 'builtin',\n    'Map': 'builtin',\n    'Set': 'builtin',\n    'int': 'builtin',\n    'string': 'builtin',\n    'raise': 'builtin',\n    'failwith': 'builtin',\n    'not': 'builtin',\n    'true': 'builtin',\n    'false': 'builtin'\n  },\n  slashComments: true\n});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/modelica/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Modelica mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"modelica.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Modelica</a>\n  </ul>\n</div>\n\n<article>\n<h2>Modelica mode</h2>\n\n<div><textarea id=\"modelica\">\nmodel BouncingBall\n  parameter Real e = 0.7;\n  parameter Real g = 9.81;\n  Real h(start=1);\n  Real v;\n  Boolean flying(start=true);\n  Boolean impact;\n  Real v_new;\nequation\n  impact = h <= 0.0;\n  der(v) = if flying then -g else 0;\n  der(h) = v;\n  when {h <= 0.0 and v <= 0.0, impact} then\n    v_new = if edge(impact) then -e*pre(v) else 0;\n    flying = v_new > 0;\n    reinit(v, v_new);\n  end when;\n  annotation (uses(Modelica(version=\"3.2\")));\nend BouncingBall;\n</textarea></div>\n\n    <script>\n      var modelicaEditor = CodeMirror.fromTextArea(document.getElementById(\"modelica\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-modelica\"\n      });\n      var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;\n      CodeMirror.keyMap.default[(mac ? \"Cmd\" : \"Ctrl\") + \"-Space\"] = \"autocomplete\";\n    </script>\n\n    <p>Simple mode that tries to handle Modelica as well as it can.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-modelica</code>\n    (Modlica code).</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/modelica/modelica.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Modelica support for CodeMirror, copyright (c) by Lennart Ochel\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})\n\n(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"modelica\", function(config, parserConfig) {\n\n    var indentUnit = config.indentUnit;\n    var keywords = parserConfig.keywords || {};\n    var builtin = parserConfig.builtin || {};\n    var atoms = parserConfig.atoms || {};\n\n    var isSingleOperatorChar = /[;=\\(:\\),{}.*<>+\\-\\/^\\[\\]]/;\n    var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\\.\\+|\\.\\-|\\.\\*|\\.\\/|\\.\\^)/;\n    var isDigit = /[0-9]/;\n    var isNonDigit = /[_a-zA-Z]/;\n\n    function tokenLineComment(stream, state) {\n      stream.skipToEnd();\n      state.tokenize = null;\n      return \"comment\";\n    }\n\n    function tokenBlockComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (maybeEnd && ch == \"/\") {\n          state.tokenize = null;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n\n    function tokenString(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == '\"' && !escaped) {\n          state.tokenize = null;\n          state.sol = false;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n\n      return \"string\";\n    }\n\n    function tokenIdent(stream, state) {\n      stream.eatWhile(isDigit);\n      while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }\n\n\n      var cur = stream.current();\n\n      if(state.sol && (cur == \"package\" || cur == \"model\" || cur == \"when\" || cur == \"connector\")) state.level++;\n      else if(state.sol && cur == \"end\" && state.level > 0) state.level--;\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      else if (builtin.propertyIsEnumerable(cur)) return \"builtin\";\n      else if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n      else return \"variable\";\n    }\n\n    function tokenQIdent(stream, state) {\n      while (stream.eat(/[^']/)) { }\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if(stream.eat(\"'\"))\n        return \"variable\";\n      else\n        return \"error\";\n    }\n\n    function tokenUnsignedNuber(stream, state) {\n      stream.eatWhile(isDigit);\n      if (stream.eat('.')) {\n        stream.eatWhile(isDigit);\n      }\n      if (stream.eat('e') || stream.eat('E')) {\n        if (!stream.eat('-'))\n          stream.eat('+');\n        stream.eatWhile(isDigit);\n      }\n\n      state.tokenize = null;\n      state.sol = false;\n      return \"number\";\n    }\n\n    // Interface\n    return {\n      startState: function() {\n        return {\n          tokenize: null,\n          level: 0,\n          sol: true\n        };\n      },\n\n      token: function(stream, state) {\n        if(state.tokenize != null) {\n          return state.tokenize(stream, state);\n        }\n\n        if(stream.sol()) {\n          state.sol = true;\n        }\n\n        // WHITESPACE\n        if(stream.eatSpace()) {\n          state.tokenize = null;\n          return null;\n        }\n\n        var ch = stream.next();\n\n        // LINECOMMENT\n        if(ch == '/' && stream.eat('/')) {\n          state.tokenize = tokenLineComment;\n        }\n        // BLOCKCOMMENT\n        else if(ch == '/' && stream.eat('*')) {\n          state.tokenize = tokenBlockComment;\n        }\n        // TWO SYMBOL TOKENS\n        else if(isDoubleOperatorChar.test(ch+stream.peek())) {\n          stream.next();\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // SINGLE SYMBOL TOKENS\n        else if(isSingleOperatorChar.test(ch)) {\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // IDENT\n        else if(isNonDigit.test(ch)) {\n          state.tokenize = tokenIdent;\n        }\n        // Q-IDENT\n        else if(ch == \"'\" && stream.peek() && stream.peek() != \"'\") {\n          state.tokenize = tokenQIdent;\n        }\n        // STRING\n        else if(ch == '\"') {\n          state.tokenize = tokenString;\n        }\n        // UNSIGNED_NUBER\n        else if(isDigit.test(ch)) {\n          state.tokenize = tokenUnsignedNuber;\n        }\n        // ERROR\n        else {\n          state.tokenize = null;\n          return \"error\";\n        }\n\n        return state.tokenize(stream, state);\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != null) return CodeMirror.Pass;\n\n        var level = state.level;\n        if(/(algorithm)/.test(textAfter)) level--;\n        if(/(equation)/.test(textAfter)) level--;\n        if(/(initial algorithm)/.test(textAfter)) level--;\n        if(/(initial equation)/.test(textAfter)) level--;\n        if(/(end)/.test(textAfter)) level--;\n\n        if(level > 0)\n          return indentUnit*level;\n        else\n          return 0;\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i=0; i<words.length; ++i)\n      obj[words[i]] = true;\n    return obj;\n  }\n\n  var modelicaKeywords = \"algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within\";\n  var modelicaBuiltin = \"abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh\";\n  var modelicaAtoms = \"Real Boolean Integer String\";\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\")\n      mimes = [mimes];\n\n    var words = [];\n\n    function add(obj) {\n      if (obj)\n        for (var prop in obj)\n          if (obj.hasOwnProperty(prop))\n            words.push(prop);\n    }\n\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.atoms);\n\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i=0; i<mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-modelica\"], {\n    name: \"modelica\",\n    keywords: words(modelicaKeywords),\n    builtin: words(modelicaBuiltin),\n    atoms: words(modelicaAtoms)\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/nginx/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: NGINX mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"nginx.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n    <link rel=\"stylesheet\" href=\"../../doc/docs.css\">\n  </head>\n\n  <style>\n    body {\n      margin: 0em auto;\n    }\n\n    .CodeMirror, .CodeMirror-scroll {\n      height: 600px;\n    }\n  </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">NGINX</a>\n  </ul>\n</div>\n\n<article>\n<h2>NGINX mode</h2>\n<form><textarea id=\"code\" name=\"code\" style=\"height: 800px;\">\nserver {\n  listen 173.255.219.235:80;\n  server_name website.com.au;\n  rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n  listen 173.255.219.235:443;\n  server_name website.com.au;\n  rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n\n  listen      173.255.219.235:80;\n  server_name www.website.com.au;\n\n\n\n  root        /data/www;\n  index       index.html index.php;\n\n  location / {\n    index index.html index.php;     ## Allow a static html file to be shown first\n    try_files $uri $uri/ @handler;  ## If missing pass the URI to Magento's front handler\n    expires 30d;                    ## Assume all files are cachable\n  }\n\n  ## These locations would be hidden by .htaccess normally\n  location /app/                { deny all; }\n  location /includes/           { deny all; }\n  location /lib/                { deny all; }\n  location /media/downloadable/ { deny all; }\n  location /pkginfo/            { deny all; }\n  location /report/config.xml   { deny all; }\n  location /var/                { deny all; }\n\n  location /var/export/ { ## Allow admins only to view export folder\n    auth_basic           \"Restricted\"; ## Message shown in login window\n    auth_basic_user_file /rs/passwords/testfile; ## See /etc/nginx/htpassword\n    autoindex            on;\n  }\n\n  location  /. { ## Disable .htaccess and other hidden files\n    return 404;\n  }\n\n  location @handler { ## Magento uses a common front handler\n    rewrite / /index.php;\n  }\n\n  location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n    rewrite ^/(.*.php)/ /$1 last;\n  }\n\n  location ~ \\.php$ {\n    if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss\n\n    fastcgi_pass   127.0.0.1:9000;\n    fastcgi_index  index.php;\n    fastcgi_param PATH_INFO $fastcgi_script_name;\n    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include        /rs/confs/nginx/fastcgi_params;\n  }\n\n}\n\n\nserver {\n\n  listen              173.255.219.235:443;\n  server_name         website.com.au www.website.com.au;\n\n  root   /data/www;\n  index index.html index.php;\n\n  ssl                 on;\n  ssl_certificate     /rs/ssl/ssl.crt;\n  ssl_certificate_key /rs/ssl/ssl.key;\n\n  ssl_session_timeout  5m;\n\n  ssl_protocols  SSLv2 SSLv3 TLSv1;\n  ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n  ssl_prefer_server_ciphers   on;\n\n\n\n  location / {\n    index index.html index.php; ## Allow a static html file to be shown first\n    try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler\n    expires 30d; ## Assume all files are cachable\n  }\n\n  ## These locations would be hidden by .htaccess normally\n  location /app/                { deny all; }\n  location /includes/           { deny all; }\n  location /lib/                { deny all; }\n  location /media/downloadable/ { deny all; }\n  location /pkginfo/            { deny all; }\n  location /report/config.xml   { deny all; }\n  location /var/                { deny all; }\n\n  location /var/export/ { ## Allow admins only to view export folder\n    auth_basic           \"Restricted\"; ## Message shown in login window\n    auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword\n    autoindex            on;\n  }\n\n  location  /. { ## Disable .htaccess and other hidden files\n    return 404;\n  }\n\n  location @handler { ## Magento uses a common front handler\n    rewrite / /index.php;\n  }\n\n  location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n    rewrite ^/(.*.php)/ /$1 last;\n  }\n\n  location ~ .php$ { ## Execute PHP scripts\n    if (!-e $request_filename) { rewrite  /index.php last; } ## Catch 404s that try_files miss\n\n    fastcgi_pass 127.0.0.1:9000;\n    fastcgi_index  index.php;\n    fastcgi_param PATH_INFO $fastcgi_script_name;\n    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include        /rs/confs/nginx/fastcgi_params;\n\n    fastcgi_param HTTPS on;\n  }\n\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/nginx</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/nginx/nginx.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"nginx\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\n    /* ngxDirectiveControl */ \"break return rewrite set\" +\n    /* ngxDirective */ \" accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23\"\n    );\n\n  var keywords_block = words(\n    /* ngxDirectiveBlock */ \"http mail events server types location upstream charset_map limit_except if geo map\"\n    );\n\n  var keywords_important = words(\n    /* ngxDirectiveImportant */ \"include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files\"\n    );\n\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n\n\n    stream.eatWhile(/[\\w\\$_]/);\n\n    var cur = stream.current();\n\n\n    if (keywords.propertyIsEnumerable(cur)) {\n      return \"keyword\";\n    }\n    else if (keywords_block.propertyIsEnumerable(cur)) {\n      return \"variable-2\";\n    }\n    else if (keywords_important.propertyIsEnumerable(cur)) {\n      return \"string-2\";\n    }\n    /**/\n\n    var ch = stream.next();\n    if (ch == \"@\") {stream.eatWhile(/[\\w\\\\\\-]/); return ret(\"meta\", stream.current());}\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n    else if (ch == \"<\" && stream.eat(\"!\")) {\n      state.tokenize = tokenSGMLComment;\n      return tokenSGMLComment(stream, state);\n    }\n    else if (ch == \"=\") ret(null, \"compare\");\n    else if ((ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) return ret(null, \"compare\");\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return ret(\"comment\", \"comment\");\n    }\n    else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    }\n    else if (/[,.+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    }\n    else if (/[;{}:\\[\\]]/.test(ch)) {\n      return ret(null, ch);\n    }\n    else {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"variable\", \"variable\");\n    }\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (type == \"hash\" && context == \"rule\") style = \"atom\";\n      else if (style == \"variable\") {\n        if (context == \"rule\") style = \"number\";\n        else if (!context || context == \"@media{\") style = \"tag\";\n      }\n\n      if (context == \"rule\" && /^[\\{\\};]$/.test(type))\n        state.stack.pop();\n      if (type == \"{\") {\n        if (context == \"@media\") state.stack[state.stack.length-1] = \"@media{\";\n        else state.stack.push(\"{\");\n      }\n      else if (type == \"}\") state.stack.pop();\n      else if (type == \"@media\") state.stack.push(\"@media\");\n      else if (context == \"{\" && type != \"comment\") state.stack.push(\"rule\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n      if (/^\\}/.test(textAfter))\n        n -= state.stack[state.stack.length-1] == \"rule\" ? 2 : 1;\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/nginx\", \"text/x-nginx-conf\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ntriples/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: NTriples mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"ntriples.js\"></script>\n<style type=\"text/css\">\n      .CodeMirror {\n        border: 1px solid #eee;\n      }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">NTriples</a>\n  </ul>\n</div>\n\n<article>\n<h2>NTriples mode</h2>\n<form>\n<textarea id=\"ntriples\" name=\"ntriples\">    \n<http://Sub1>     <http://pred1>     <http://obj> .\n<http://Sub2>     <http://pred2#an2> \"literal 1\" .\n<http://Sub3#an3> <http://pred3>     _:bnode3 .\n_:bnode4          <http://pred4>     \"literal 2\"@lang .\n_:bnode5          <http://pred5>     \"literal 3\"^^<http://type> .\n</textarea>\n</form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"ntriples\"), {});\n    </script>\n    <p><strong>MIME types defined:</strong> <code>text/n-triples</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ntriples/ntriples.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**********************************************************\n* This script provides syntax highlighting support for\n* the Ntriples format.\n* Ntriples format specification:\n*     http://www.w3.org/TR/rdf-testcases/#ntriples\n***********************************************************/\n\n/*\n    The following expression defines the defined ASF grammar transitions.\n\n    pre_subject ->\n        {\n        ( writing_subject_uri | writing_bnode_uri )\n            -> pre_predicate\n                -> writing_predicate_uri\n                    -> pre_object\n                        -> writing_object_uri | writing_object_bnode |\n                          (\n                            writing_object_literal\n                                -> writing_literal_lang | writing_literal_type\n                          )\n                            -> post_object\n                                -> BEGIN\n         } otherwise {\n             -> ERROR\n         }\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ntriples\", function() {\n\n  var Location = {\n    PRE_SUBJECT         : 0,\n    WRITING_SUB_URI     : 1,\n    WRITING_BNODE_URI   : 2,\n    PRE_PRED            : 3,\n    WRITING_PRED_URI    : 4,\n    PRE_OBJ             : 5,\n    WRITING_OBJ_URI     : 6,\n    WRITING_OBJ_BNODE   : 7,\n    WRITING_OBJ_LITERAL : 8,\n    WRITING_LIT_LANG    : 9,\n    WRITING_LIT_TYPE    : 10,\n    POST_OBJ            : 11,\n    ERROR               : 12\n  };\n  function transitState(currState, c) {\n    var currLocation = currState.location;\n    var ret;\n\n    // Opening.\n    if     (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI;\n    else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI;\n    else if(currLocation == Location.PRE_PRED    && c == '<') ret = Location.WRITING_PRED_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '<') ret = Location.WRITING_OBJ_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '_') ret = Location.WRITING_OBJ_BNODE;\n    else if(currLocation == Location.PRE_OBJ     && c == '\"') ret = Location.WRITING_OBJ_LITERAL;\n\n    // Closing.\n    else if(currLocation == Location.WRITING_SUB_URI     && c == '>') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_BNODE_URI   && c == ' ') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_PRED_URI    && c == '>') ret = Location.PRE_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_URI     && c == '>') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_BNODE   && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '\"') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ;\n\n    // Closing typed and language literal.\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE;\n\n    // Spaces.\n    else if( c == ' ' &&\n             (\n               currLocation == Location.PRE_SUBJECT ||\n               currLocation == Location.PRE_PRED    ||\n               currLocation == Location.PRE_OBJ     ||\n               currLocation == Location.POST_OBJ\n             )\n           ) ret = currLocation;\n\n    // Reset.\n    else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT;\n\n    // Error\n    else ret = Location.ERROR;\n\n    currState.location=ret;\n  }\n\n  return {\n    startState: function() {\n       return {\n           location : Location.PRE_SUBJECT,\n           uris     : [],\n           anchors  : [],\n           bnodes   : [],\n           langs    : [],\n           types    : []\n       };\n    },\n    token: function(stream, state) {\n      var ch = stream.next();\n      if(ch == '<') {\n         transitState(state, ch);\n         var parsedURI = '';\n         stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} );\n         state.uris.push(parsedURI);\n         if( stream.match('#', false) ) return 'variable';\n         stream.next();\n         transitState(state, '>');\n         return 'variable';\n      }\n      if(ch == '#') {\n        var parsedAnchor = '';\n        stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;});\n        state.anchors.push(parsedAnchor);\n        return 'variable-2';\n      }\n      if(ch == '>') {\n          transitState(state, '>');\n          return 'variable';\n      }\n      if(ch == '_') {\n          transitState(state, ch);\n          var parsedBNode = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;});\n          state.bnodes.push(parsedBNode);\n          stream.next();\n          transitState(state, ' ');\n          return 'builtin';\n      }\n      if(ch == '\"') {\n          transitState(state, ch);\n          stream.eatWhile( function(c) { return c != '\"'; } );\n          stream.next();\n          if( stream.peek() != '@' && stream.peek() != '^' ) {\n              transitState(state, '\"');\n          }\n          return 'string';\n      }\n      if( ch == '@' ) {\n          transitState(state, '@');\n          var parsedLang = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;});\n          state.langs.push(parsedLang);\n          stream.next();\n          transitState(state, ' ');\n          return 'string-2';\n      }\n      if( ch == '^' ) {\n          stream.next();\n          transitState(state, '^');\n          var parsedType = '';\n          stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} );\n          state.types.push(parsedType);\n          stream.next();\n          transitState(state, '>');\n          return 'variable';\n      }\n      if( ch == ' ' ) {\n          transitState(state, ch);\n      }\n      if( ch == '.' ) {\n          transitState(state, ch);\n      }\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/n-triples\", \"ntriples\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/octave/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Octave mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"octave.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Octave</a>\n  </ul>\n</div>\n\n<article>\n<h2>Octave mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n%numbers\n[1234 1234i 1234j]\n[.234 .234j 2.23i]\n[23e2 12E1j 123D-4 0x234]\n\n%strings\n'asda''a'\n\"asda\"\"a\"\n\n%identifiers\na + as123 - __asd__\n\n%operators\n-\n+\n=\n==\n>\n<\n>=\n<=\n&\n~\n...\nbreak zeros default margin round ones rand\nceil floor size clear zeros eye mean std cov\nerror eval function\nabs acos atan asin cos cosh exp log prod sum\nlog10 max min sign sin sinh sqrt tan reshape\nreturn\ncase switch\nelse elseif end if otherwise\ndo for while\ntry catch\nclassdef properties events methods\nglobal persistent\n\n%one line comment\n%{ multi \nline commment %}\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"octave\",\n               version: 2,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-octave</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/octave/octave.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"octave\", function() {\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&|\\\\^~<>!@'\\\\\\\\]\");\n  var singleDelimiters = new RegExp('^[\\\\(\\\\[\\\\{\\\\},:=;]');\n  var doubleOperators = new RegExp(\"^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\\\.[\\\\+\\\\-\\\\*/\\\\^\\\\\\\\]))\");\n  var doubleDelimiters = new RegExp(\"^((!=)|(\\\\+=)|(\\\\-=)|(\\\\*=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n  var tripleDelimiters = new RegExp(\"^((>>=)|(<<=))\");\n  var expressionEnd = new RegExp(\"^[\\\\]\\\\)]\");\n  var identifiers = new RegExp(\"^[_A-Za-z\\xa1-\\uffff][_A-Za-z0-9\\xa1-\\uffff]*\");\n\n  var builtins = wordRegexp([\n    'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',\n    'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',\n    'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',\n    'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',\n    'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',\n    'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',\n    'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'\n  ]);\n\n  var keywords = wordRegexp([\n    'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',\n    'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',\n    'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',\n    'continue', 'pkg'\n  ]);\n\n\n  // tokenizers\n  function tokenTranspose(stream, state) {\n    if (!stream.sol() && stream.peek() === '\\'') {\n      stream.next();\n      state.tokenize = tokenBase;\n      return 'operator';\n    }\n    state.tokenize = tokenBase;\n    return tokenBase(stream, state);\n  }\n\n\n  function tokenComment(stream, state) {\n    if (stream.match(/^.*%}/)) {\n      state.tokenize = tokenBase;\n      return 'comment';\n    };\n    stream.skipToEnd();\n    return 'comment';\n  }\n\n  function tokenBase(stream, state) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match('%{')){\n      state.tokenize = tokenComment;\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    if (stream.match(/^[%#]/)){\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {\n        stream.tokenize = tokenBase;\n        return 'number'; };\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n    }\n    if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return 'string'; } ;\n    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ;\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; } ;\n    if (stream.match(builtins)) { return 'builtin'; } ;\n    if (stream.match(identifiers)) { return 'variable'; } ;\n\n    if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };\n    if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };\n\n    if (stream.match(expressionEnd)) {\n      state.tokenize = tokenTranspose;\n      return null;\n    };\n\n\n    // Handle non-detected items\n    stream.next();\n    return 'error';\n  };\n\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      if (style === 'number' || style === 'variable'){\n        state.tokenize = tokenTranspose;\n      }\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-octave\", \"octave\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pascal/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Pascal mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"pascal.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Pascal</a>\n  </ul>\n</div>\n\n<article>\n<h2>Pascal mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n(* Example Pascal code *)\n\nwhile a <> b do writeln('Waiting');\n \nif a > b then \n  writeln('Condition met')\nelse \n  writeln('Condition not met');\n \nfor i := 1 to 10 do \n  writeln('Iteration: ', i:1);\n \nrepeat\n  a := a + 1\nuntil a = 10;\n \ncase i of\n  0: write('zero');\n  1: write('one');\n  2: write('two')\nend;\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-pascal\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-pascal</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pascal/pascal.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pascal\", function() {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\"and array begin case const div do downto else end file for forward integer \" +\n                       \"boolean char function goto if in label mod nil not of or packed procedure \" +\n                       \"program record repeat set string then to type until var while with\");\n  var atoms = {\"null\": true};\n\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == \"#\" && state.startOfLine) {\n      stream.skipToEnd();\n      return \"meta\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"(\" && stream.eat(\"*\")) {\n      state.tokenize = tokenComment;\n      return tokenComment(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-pascal\", \"pascal\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pegjs/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <title>CodeMirror: PEG.js Mode</title>\n    <meta charset=\"utf-8\"/>\n    <link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"../javascript/javascript.js\"></script>\n    <script src=\"pegjs.js\"></script>\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n  </head>\n  <body>\n    <div id=nav>\n      <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n      <ul>\n        <li><a href=\"../../index.html\">Home</a>\n        <li><a href=\"../../doc/manual.html\">Manual</a>\n        <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n      </ul>\n      <ul>\n        <li><a href=\"../index.html\">Language modes</a>\n        <li><a class=active href=\"#\">PEG.js Mode</a>\n      </ul>\n    </div>\n\n    <article>\n      <h2>PEG.js Mode</h2>\n      <form><textarea id=\"code\" name=\"code\">\n/*\n * Classic example grammar, which recognizes simple arithmetic expressions like\n * \"2*(3+4)\". The parser generated from this grammar then computes their value.\n */\n\nstart\n  = additive\n\nadditive\n  = left:multiplicative \"+\" right:additive { return left + right; }\n  / multiplicative\n\nmultiplicative\n  = left:primary \"*\" right:multiplicative { return left * right; }\n  / primary\n\nprimary\n  = integer\n  / \"(\" additive:additive \")\" { return additive; }\n\ninteger \"integer\"\n  = digits:[0-9]+ { return parseInt(digits.join(\"\"), 10); }\n\nletter = [a-z]+</textarea></form>\n      <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n          mode: {name: \"pegjs\"},\n          lineNumbers: true\n        });\n      </script>\n      <h3>The PEG.js Mode</h3>\n      <p> Created by Forbes Lindesay.</p>\n    </article>\n  </body>\n</html>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pegjs/pegjs.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pegjs\", function (config) {\n  var jsMode = CodeMirror.getMode(config, \"javascript\");\n\n  function identifier(stream) {\n    return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);\n  }\n\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: null,\n        inComment: false,\n        inChracterClass: false,\n        braced: 0,\n        lhs: true,\n        localState: null\n      };\n    },\n    token: function (stream, state) {\n      if (stream)\n\n      //check for state changes\n      if (!state.inString && !state.inComment && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (!state.inString && !state.inComment && stream.match(/^\\/\\*/)) {\n        state.inComment = true;\n      }\n\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inComment) {\n        while (state.inComment && !stream.eol()) {\n          if (stream.match(/\\*\\//)) {\n            state.inComment = false; // Clear flag\n          } else {\n            stream.match(/^.[^\\*]*/);\n          }\n        }\n        return \"comment\";\n      } else if (state.inChracterClass) {\n          while (state.inChracterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./))) {\n              state.inChracterClass = false;\n            }\n          }\n      } else if (stream.peek() === '[') {\n        stream.next();\n        state.inChracterClass = true;\n        return 'bracket';\n      } else if (stream.match(/^\\/\\//)) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (state.braced || stream.peek() === '{') {\n        if (state.localState === null) {\n          state.localState = jsMode.startState();\n        }\n        var token = jsMode.token(stream, state.localState);\n        var text = stream.current();\n        if (!token) {\n          for (var i = 0; i < text.length; i++) {\n            if (text[i] === '{') {\n              state.braced++;\n            } else if (text[i] === '}') {\n              state.braced--;\n            }\n          };\n        }\n        return token;\n      } else if (identifier(stream)) {\n        if (stream.peek() === ':') {\n          return 'variable';\n        }\n        return 'variable-2';\n      } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {\n        stream.next();\n        return 'bracket';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n}, \"javascript\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/perl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Perl mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"perl.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Perl</a>\n  </ul>\n</div>\n\n<article>\n<h2>Perl mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n#!/usr/bin/perl\n\nuse Something qw(func1 func2);\n\n# strings\nmy $s1 = qq'single line';\nour $s2 = q(multi-\n              line);\n\n=item Something\n\tExample.\n=cut\n\nmy $html=<<'HTML'\n<html>\n<title>hi!</title>\n</html>\nHTML\n\nprint \"first,\".join(',', 'second', qq~third~);\n\nif($s1 =~ m[(?<!\\s)(l.ne)\\z]o) {\n\t$h->{$1}=$$.' predefined variables';\n\t$s2 =~ s/\\-line//ox;\n\t$s1 =~ s[\n\t\t  line ]\n\t\t[\n\t\t  block\n\t\t]ox;\n}\n\n1; # numbers and comments\n\n__END__\nsomething...\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-perl</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/perl/perl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)\n// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"perl\",function(){\n        // http://perldoc.perl.org\n        var PERL={                                      //   null - magic touch\n                                                        //   1 - keyword\n                                                        //   2 - def\n                                                        //   3 - atom\n                                                        //   4 - operator\n                                                        //   5 - variable-2 (predefined)\n                                                        //   [x,y] - x=1,2,3; y=must be defined if x{...}\n                                                //      PERL operators\n                '->'                            :   4,\n                '++'                            :   4,\n                '--'                            :   4,\n                '**'                            :   4,\n                                                        //   ! ~ \\ and unary + and -\n                '=~'                            :   4,\n                '!~'                            :   4,\n                '*'                             :   4,\n                '/'                             :   4,\n                '%'                             :   4,\n                'x'                             :   4,\n                '+'                             :   4,\n                '-'                             :   4,\n                '.'                             :   4,\n                '<<'                            :   4,\n                '>>'                            :   4,\n                                                        //   named unary operators\n                '<'                             :   4,\n                '>'                             :   4,\n                '<='                            :   4,\n                '>='                            :   4,\n                'lt'                            :   4,\n                'gt'                            :   4,\n                'le'                            :   4,\n                'ge'                            :   4,\n                '=='                            :   4,\n                '!='                            :   4,\n                '<=>'                           :   4,\n                'eq'                            :   4,\n                'ne'                            :   4,\n                'cmp'                           :   4,\n                '~~'                            :   4,\n                '&'                             :   4,\n                '|'                             :   4,\n                '^'                             :   4,\n                '&&'                            :   4,\n                '||'                            :   4,\n                '//'                            :   4,\n                '..'                            :   4,\n                '...'                           :   4,\n                '?'                             :   4,\n                ':'                             :   4,\n                '='                             :   4,\n                '+='                            :   4,\n                '-='                            :   4,\n                '*='                            :   4,  //   etc. ???\n                ','                             :   4,\n                '=>'                            :   4,\n                '::'                            :   4,\n                                                        //   list operators (rightward)\n                'not'                           :   4,\n                'and'                           :   4,\n                'or'                            :   4,\n                'xor'                           :   4,\n                                                //      PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)\n                'BEGIN'                         :   [5,1],\n                'END'                           :   [5,1],\n                'PRINT'                         :   [5,1],\n                'PRINTF'                        :   [5,1],\n                'GETC'                          :   [5,1],\n                'READ'                          :   [5,1],\n                'READLINE'                      :   [5,1],\n                'DESTROY'                       :   [5,1],\n                'TIE'                           :   [5,1],\n                'TIEHANDLE'                     :   [5,1],\n                'UNTIE'                         :   [5,1],\n                'STDIN'                         :    5,\n                'STDIN_TOP'                     :    5,\n                'STDOUT'                        :    5,\n                'STDOUT_TOP'                    :    5,\n                'STDERR'                        :    5,\n                'STDERR_TOP'                    :    5,\n                '$ARG'                          :    5,\n                '$_'                            :    5,\n                '@ARG'                          :    5,\n                '@_'                            :    5,\n                '$LIST_SEPARATOR'               :    5,\n                '$\"'                            :    5,\n                '$PROCESS_ID'                   :    5,\n                '$PID'                          :    5,\n                '$$'                            :    5,\n                '$REAL_GROUP_ID'                :    5,\n                '$GID'                          :    5,\n                '$('                            :    5,\n                '$EFFECTIVE_GROUP_ID'           :    5,\n                '$EGID'                         :    5,\n                '$)'                            :    5,\n                '$PROGRAM_NAME'                 :    5,\n                '$0'                            :    5,\n                '$SUBSCRIPT_SEPARATOR'          :    5,\n                '$SUBSEP'                       :    5,\n                '$;'                            :    5,\n                '$REAL_USER_ID'                 :    5,\n                '$UID'                          :    5,\n                '$<'                            :    5,\n                '$EFFECTIVE_USER_ID'            :    5,\n                '$EUID'                         :    5,\n                '$>'                            :    5,\n                '$a'                            :    5,\n                '$b'                            :    5,\n                '$COMPILING'                    :    5,\n                '$^C'                           :    5,\n                '$DEBUGGING'                    :    5,\n                '$^D'                           :    5,\n                '${^ENCODING}'                  :    5,\n                '$ENV'                          :    5,\n                '%ENV'                          :    5,\n                '$SYSTEM_FD_MAX'                :    5,\n                '$^F'                           :    5,\n                '@F'                            :    5,\n                '${^GLOBAL_PHASE}'              :    5,\n                '$^H'                           :    5,\n                '%^H'                           :    5,\n                '@INC'                          :    5,\n                '%INC'                          :    5,\n                '$INPLACE_EDIT'                 :    5,\n                '$^I'                           :    5,\n                '$^M'                           :    5,\n                '$OSNAME'                       :    5,\n                '$^O'                           :    5,\n                '${^OPEN}'                      :    5,\n                '$PERLDB'                       :    5,\n                '$^P'                           :    5,\n                '$SIG'                          :    5,\n                '%SIG'                          :    5,\n                '$BASETIME'                     :    5,\n                '$^T'                           :    5,\n                '${^TAINT}'                     :    5,\n                '${^UNICODE}'                   :    5,\n                '${^UTF8CACHE}'                 :    5,\n                '${^UTF8LOCALE}'                :    5,\n                '$PERL_VERSION'                 :    5,\n                '$^V'                           :    5,\n                '${^WIN32_SLOPPY_STAT}'         :    5,\n                '$EXECUTABLE_NAME'              :    5,\n                '$^X'                           :    5,\n                '$1'                            :    5, // - regexp $1, $2...\n                '$MATCH'                        :    5,\n                '$&'                            :    5,\n                '${^MATCH}'                     :    5,\n                '$PREMATCH'                     :    5,\n                '$`'                            :    5,\n                '${^PREMATCH}'                  :    5,\n                '$POSTMATCH'                    :    5,\n                \"$'\"                            :    5,\n                '${^POSTMATCH}'                 :    5,\n                '$LAST_PAREN_MATCH'             :    5,\n                '$+'                            :    5,\n                '$LAST_SUBMATCH_RESULT'         :    5,\n                '$^N'                           :    5,\n                '@LAST_MATCH_END'               :    5,\n                '@+'                            :    5,\n                '%LAST_PAREN_MATCH'             :    5,\n                '%+'                            :    5,\n                '@LAST_MATCH_START'             :    5,\n                '@-'                            :    5,\n                '%LAST_MATCH_START'             :    5,\n                '%-'                            :    5,\n                '$LAST_REGEXP_CODE_RESULT'      :    5,\n                '$^R'                           :    5,\n                '${^RE_DEBUG_FLAGS}'            :    5,\n                '${^RE_TRIE_MAXBUF}'            :    5,\n                '$ARGV'                         :    5,\n                '@ARGV'                         :    5,\n                'ARGV'                          :    5,\n                'ARGVOUT'                       :    5,\n                '$OUTPUT_FIELD_SEPARATOR'       :    5,\n                '$OFS'                          :    5,\n                '$,'                            :    5,\n                '$INPUT_LINE_NUMBER'            :    5,\n                '$NR'                           :    5,\n                '$.'                            :    5,\n                '$INPUT_RECORD_SEPARATOR'       :    5,\n                '$RS'                           :    5,\n                '$/'                            :    5,\n                '$OUTPUT_RECORD_SEPARATOR'      :    5,\n                '$ORS'                          :    5,\n                '$\\\\'                           :    5,\n                '$OUTPUT_AUTOFLUSH'             :    5,\n                '$|'                            :    5,\n                '$ACCUMULATOR'                  :    5,\n                '$^A'                           :    5,\n                '$FORMAT_FORMFEED'              :    5,\n                '$^L'                           :    5,\n                '$FORMAT_PAGE_NUMBER'           :    5,\n                '$%'                            :    5,\n                '$FORMAT_LINES_LEFT'            :    5,\n                '$-'                            :    5,\n                '$FORMAT_LINE_BREAK_CHARACTERS' :    5,\n                '$:'                            :    5,\n                '$FORMAT_LINES_PER_PAGE'        :    5,\n                '$='                            :    5,\n                '$FORMAT_TOP_NAME'              :    5,\n                '$^'                            :    5,\n                '$FORMAT_NAME'                  :    5,\n                '$~'                            :    5,\n                '${^CHILD_ERROR_NATIVE}'        :    5,\n                '$EXTENDED_OS_ERROR'            :    5,\n                '$^E'                           :    5,\n                '$EXCEPTIONS_BEING_CAUGHT'      :    5,\n                '$^S'                           :    5,\n                '$WARNING'                      :    5,\n                '$^W'                           :    5,\n                '${^WARNING_BITS}'              :    5,\n                '$OS_ERROR'                     :    5,\n                '$ERRNO'                        :    5,\n                '$!'                            :    5,\n                '%OS_ERROR'                     :    5,\n                '%ERRNO'                        :    5,\n                '%!'                            :    5,\n                '$CHILD_ERROR'                  :    5,\n                '$?'                            :    5,\n                '$EVAL_ERROR'                   :    5,\n                '$@'                            :    5,\n                '$OFMT'                         :    5,\n                '$#'                            :    5,\n                '$*'                            :    5,\n                '$ARRAY_BASE'                   :    5,\n                '$['                            :    5,\n                '$OLD_PERL_VERSION'             :    5,\n                '$]'                            :    5,\n                                                //      PERL blocks\n                'if'                            :[1,1],\n                elsif                           :[1,1],\n                'else'                          :[1,1],\n                'while'                         :[1,1],\n                unless                          :[1,1],\n                'for'                           :[1,1],\n                foreach                         :[1,1],\n                                                //      PERL functions\n                'abs'                           :1,     // - absolute value function\n                accept                          :1,     // - accept an incoming socket connect\n                alarm                           :1,     // - schedule a SIGALRM\n                'atan2'                         :1,     // - arctangent of Y/X in the range -PI to PI\n                bind                            :1,     // - binds an address to a socket\n                binmode                         :1,     // - prepare binary files for I/O\n                bless                           :1,     // - create an object\n                bootstrap                       :1,     //\n                'break'                         :1,     // - break out of a \"given\" block\n                caller                          :1,     // - get context of the current subroutine call\n                chdir                           :1,     // - change your current working directory\n                chmod                           :1,     // - changes the permissions on a list of files\n                chomp                           :1,     // - remove a trailing record separator from a string\n                chop                            :1,     // - remove the last character from a string\n                chown                           :1,     // - change the owership on a list of files\n                chr                             :1,     // - get character this number represents\n                chroot                          :1,     // - make directory new root for path lookups\n                close                           :1,     // - close file (or pipe or socket) handle\n                closedir                        :1,     // - close directory handle\n                connect                         :1,     // - connect to a remote socket\n                'continue'                      :[1,1], // - optional trailing block in a while or foreach\n                'cos'                           :1,     // - cosine function\n                crypt                           :1,     // - one-way passwd-style encryption\n                dbmclose                        :1,     // - breaks binding on a tied dbm file\n                dbmopen                         :1,     // - create binding on a tied dbm file\n                'default'                       :1,     //\n                defined                         :1,     // - test whether a value, variable, or function is defined\n                'delete'                        :1,     // - deletes a value from a hash\n                die                             :1,     // - raise an exception or bail out\n                'do'                            :1,     // - turn a BLOCK into a TERM\n                dump                            :1,     // - create an immediate core dump\n                each                            :1,     // - retrieve the next key/value pair from a hash\n                endgrent                        :1,     // - be done using group file\n                endhostent                      :1,     // - be done using hosts file\n                endnetent                       :1,     // - be done using networks file\n                endprotoent                     :1,     // - be done using protocols file\n                endpwent                        :1,     // - be done using passwd file\n                endservent                      :1,     // - be done using services file\n                eof                             :1,     // - test a filehandle for its end\n                'eval'                          :1,     // - catch exceptions or compile and run code\n                'exec'                          :1,     // - abandon this program to run another\n                exists                          :1,     // - test whether a hash key is present\n                exit                            :1,     // - terminate this program\n                'exp'                           :1,     // - raise I to a power\n                fcntl                           :1,     // - file control system call\n                fileno                          :1,     // - return file descriptor from filehandle\n                flock                           :1,     // - lock an entire file with an advisory lock\n                fork                            :1,     // - create a new process just like this one\n                format                          :1,     // - declare a picture format with use by the write() function\n                formline                        :1,     // - internal function used for formats\n                getc                            :1,     // - get the next character from the filehandle\n                getgrent                        :1,     // - get next group record\n                getgrgid                        :1,     // - get group record given group user ID\n                getgrnam                        :1,     // - get group record given group name\n                gethostbyaddr                   :1,     // - get host record given its address\n                gethostbyname                   :1,     // - get host record given name\n                gethostent                      :1,     // - get next hosts record\n                getlogin                        :1,     // - return who logged in at this tty\n                getnetbyaddr                    :1,     // - get network record given its address\n                getnetbyname                    :1,     // - get networks record given name\n                getnetent                       :1,     // - get next networks record\n                getpeername                     :1,     // - find the other end of a socket connection\n                getpgrp                         :1,     // - get process group\n                getppid                         :1,     // - get parent process ID\n                getpriority                     :1,     // - get current nice value\n                getprotobyname                  :1,     // - get protocol record given name\n                getprotobynumber                :1,     // - get protocol record numeric protocol\n                getprotoent                     :1,     // - get next protocols record\n                getpwent                        :1,     // - get next passwd record\n                getpwnam                        :1,     // - get passwd record given user login name\n                getpwuid                        :1,     // - get passwd record given user ID\n                getservbyname                   :1,     // - get services record given its name\n                getservbyport                   :1,     // - get services record given numeric port\n                getservent                      :1,     // - get next services record\n                getsockname                     :1,     // - retrieve the sockaddr for a given socket\n                getsockopt                      :1,     // - get socket options on a given socket\n                given                           :1,     //\n                glob                            :1,     // - expand filenames using wildcards\n                gmtime                          :1,     // - convert UNIX time into record or string using Greenwich time\n                'goto'                          :1,     // - create spaghetti code\n                grep                            :1,     // - locate elements in a list test true against a given criterion\n                hex                             :1,     // - convert a string to a hexadecimal number\n                'import'                        :1,     // - patch a module's namespace into your own\n                index                           :1,     // - find a substring within a string\n                'int'                           :1,     // - get the integer portion of a number\n                ioctl                           :1,     // - system-dependent device control system call\n                'join'                          :1,     // - join a list into a string using a separator\n                keys                            :1,     // - retrieve list of indices from a hash\n                kill                            :1,     // - send a signal to a process or process group\n                last                            :1,     // - exit a block prematurely\n                lc                              :1,     // - return lower-case version of a string\n                lcfirst                         :1,     // - return a string with just the next letter in lower case\n                length                          :1,     // - return the number of bytes in a string\n                'link'                          :1,     // - create a hard link in the filesytem\n                listen                          :1,     // - register your socket as a server\n                local                           : 2,    // - create a temporary value for a global variable (dynamic scoping)\n                localtime                       :1,     // - convert UNIX time into record or string using local time\n                lock                            :1,     // - get a thread lock on a variable, subroutine, or method\n                'log'                           :1,     // - retrieve the natural logarithm for a number\n                lstat                           :1,     // - stat a symbolic link\n                m                               :null,  // - match a string with a regular expression pattern\n                map                             :1,     // - apply a change to a list to get back a new list with the changes\n                mkdir                           :1,     // - create a directory\n                msgctl                          :1,     // - SysV IPC message control operations\n                msgget                          :1,     // - get SysV IPC message queue\n                msgrcv                          :1,     // - receive a SysV IPC message from a message queue\n                msgsnd                          :1,     // - send a SysV IPC message to a message queue\n                my                              : 2,    // - declare and assign a local variable (lexical scoping)\n                'new'                           :1,     //\n                next                            :1,     // - iterate a block prematurely\n                no                              :1,     // - unimport some module symbols or semantics at compile time\n                oct                             :1,     // - convert a string to an octal number\n                open                            :1,     // - open a file, pipe, or descriptor\n                opendir                         :1,     // - open a directory\n                ord                             :1,     // - find a character's numeric representation\n                our                             : 2,    // - declare and assign a package variable (lexical scoping)\n                pack                            :1,     // - convert a list into a binary representation\n                'package'                       :1,     // - declare a separate global namespace\n                pipe                            :1,     // - open a pair of connected filehandles\n                pop                             :1,     // - remove the last element from an array and return it\n                pos                             :1,     // - find or set the offset for the last/next m//g search\n                print                           :1,     // - output a list to a filehandle\n                printf                          :1,     // - output a formatted list to a filehandle\n                prototype                       :1,     // - get the prototype (if any) of a subroutine\n                push                            :1,     // - append one or more elements to an array\n                q                               :null,  // - singly quote a string\n                qq                              :null,  // - doubly quote a string\n                qr                              :null,  // - Compile pattern\n                quotemeta                       :null,  // - quote regular expression magic characters\n                qw                              :null,  // - quote a list of words\n                qx                              :null,  // - backquote quote a string\n                rand                            :1,     // - retrieve the next pseudorandom number\n                read                            :1,     // - fixed-length buffered input from a filehandle\n                readdir                         :1,     // - get a directory from a directory handle\n                readline                        :1,     // - fetch a record from a file\n                readlink                        :1,     // - determine where a symbolic link is pointing\n                readpipe                        :1,     // - execute a system command and collect standard output\n                recv                            :1,     // - receive a message over a Socket\n                redo                            :1,     // - start this loop iteration over again\n                ref                             :1,     // - find out the type of thing being referenced\n                rename                          :1,     // - change a filename\n                require                         :1,     // - load in external functions from a library at runtime\n                reset                           :1,     // - clear all variables of a given name\n                'return'                        :1,     // - get out of a function early\n                reverse                         :1,     // - flip a string or a list\n                rewinddir                       :1,     // - reset directory handle\n                rindex                          :1,     // - right-to-left substring search\n                rmdir                           :1,     // - remove a directory\n                s                               :null,  // - replace a pattern with a string\n                say                             :1,     // - print with newline\n                scalar                          :1,     // - force a scalar context\n                seek                            :1,     // - reposition file pointer for random-access I/O\n                seekdir                         :1,     // - reposition directory pointer\n                select                          :1,     // - reset default output or do I/O multiplexing\n                semctl                          :1,     // - SysV semaphore control operations\n                semget                          :1,     // - get set of SysV semaphores\n                semop                           :1,     // - SysV semaphore operations\n                send                            :1,     // - send a message over a socket\n                setgrent                        :1,     // - prepare group file for use\n                sethostent                      :1,     // - prepare hosts file for use\n                setnetent                       :1,     // - prepare networks file for use\n                setpgrp                         :1,     // - set the process group of a process\n                setpriority                     :1,     // - set a process's nice value\n                setprotoent                     :1,     // - prepare protocols file for use\n                setpwent                        :1,     // - prepare passwd file for use\n                setservent                      :1,     // - prepare services file for use\n                setsockopt                      :1,     // - set some socket options\n                shift                           :1,     // - remove the first element of an array, and return it\n                shmctl                          :1,     // - SysV shared memory operations\n                shmget                          :1,     // - get SysV shared memory segment identifier\n                shmread                         :1,     // - read SysV shared memory\n                shmwrite                        :1,     // - write SysV shared memory\n                shutdown                        :1,     // - close down just half of a socket connection\n                'sin'                           :1,     // - return the sine of a number\n                sleep                           :1,     // - block for some number of seconds\n                socket                          :1,     // - create a socket\n                socketpair                      :1,     // - create a pair of sockets\n                'sort'                          :1,     // - sort a list of values\n                splice                          :1,     // - add or remove elements anywhere in an array\n                'split'                         :1,     // - split up a string using a regexp delimiter\n                sprintf                         :1,     // - formatted print into a string\n                'sqrt'                          :1,     // - square root function\n                srand                           :1,     // - seed the random number generator\n                stat                            :1,     // - get a file's status information\n                state                           :1,     // - declare and assign a state variable (persistent lexical scoping)\n                study                           :1,     // - optimize input data for repeated searches\n                'sub'                           :1,     // - declare a subroutine, possibly anonymously\n                'substr'                        :1,     // - get or alter a portion of a stirng\n                symlink                         :1,     // - create a symbolic link to a file\n                syscall                         :1,     // - execute an arbitrary system call\n                sysopen                         :1,     // - open a file, pipe, or descriptor\n                sysread                         :1,     // - fixed-length unbuffered input from a filehandle\n                sysseek                         :1,     // - position I/O pointer on handle used with sysread and syswrite\n                system                          :1,     // - run a separate program\n                syswrite                        :1,     // - fixed-length unbuffered output to a filehandle\n                tell                            :1,     // - get current seekpointer on a filehandle\n                telldir                         :1,     // - get current seekpointer on a directory handle\n                tie                             :1,     // - bind a variable to an object class\n                tied                            :1,     // - get a reference to the object underlying a tied variable\n                time                            :1,     // - return number of seconds since 1970\n                times                           :1,     // - return elapsed time for self and child processes\n                tr                              :null,  // - transliterate a string\n                truncate                        :1,     // - shorten a file\n                uc                              :1,     // - return upper-case version of a string\n                ucfirst                         :1,     // - return a string with just the next letter in upper case\n                umask                           :1,     // - set file creation mode mask\n                undef                           :1,     // - remove a variable or function definition\n                unlink                          :1,     // - remove one link to a file\n                unpack                          :1,     // - convert binary structure into normal perl variables\n                unshift                         :1,     // - prepend more elements to the beginning of a list\n                untie                           :1,     // - break a tie binding to a variable\n                use                             :1,     // - load in a module at compile time\n                utime                           :1,     // - set a file's last access and modify times\n                values                          :1,     // - return a list of the values in a hash\n                vec                             :1,     // - test or set particular bits in a string\n                wait                            :1,     // - wait for any child process to die\n                waitpid                         :1,     // - wait for a particular child process to die\n                wantarray                       :1,     // - get void vs scalar vs list context of current subroutine call\n                warn                            :1,     // - print debugging info\n                when                            :1,     //\n                write                           :1,     // - print a picture record\n                y                               :null}; // - transliterate a string\n\n        var RXstyle=\"string-2\";\n        var RXmodifiers=/[goseximacplud]/;              // NOTE: \"m\", \"s\", \"y\" and \"tr\" need to correct real modifiers for each regexp type\n\n        function tokenChain(stream,state,chain,style,tail){     // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)\n                state.chain=null;                               //                                                          12   3tail\n                state.style=null;\n                state.tail=null;\n                state.tokenize=function(stream,state){\n                        var e=false,c,i=0;\n                        while(c=stream.next()){\n                                if(c===chain[i]&&!e){\n                                        if(chain[++i]!==undefined){\n                                                state.chain=chain[i];\n                                                state.style=style;\n                                                state.tail=tail;}\n                                        else if(tail)\n                                                stream.eatWhile(tail);\n                                        state.tokenize=tokenPerl;\n                                        return style;}\n                                e=!e&&c==\"\\\\\";}\n                        return style;};\n                return state.tokenize(stream,state);}\n\n        function tokenSOMETHING(stream,state,string){\n                state.tokenize=function(stream,state){\n                        if(stream.string==string)\n                                state.tokenize=tokenPerl;\n                        stream.skipToEnd();\n                        return \"string\";};\n                return state.tokenize(stream,state);}\n\n        function tokenPerl(stream,state){\n                if(stream.eatSpace())\n                        return null;\n                if(state.chain)\n                        return tokenChain(stream,state,state.chain,state.style,state.tail);\n                if(stream.match(/^\\-?[\\d\\.]/,false))\n                        if(stream.match(/^(\\-?(\\d*\\.\\d+(e[+-]?\\d+)?|\\d+\\.\\d*)|0x[\\da-fA-F]+|0b[01]+|\\d+(e[+-]?\\d+)?)/))\n                                return 'number';\n                if(stream.match(/^<<(?=\\w)/)){                  // NOTE: <<SOMETHING\\n...\\nSOMETHING\\n\n                        stream.eatWhile(/\\w/);\n                        return tokenSOMETHING(stream,state,stream.current().substr(2));}\n                if(stream.sol()&&stream.match(/^\\=item(?!\\w)/)){// NOTE: \\n=item...\\n=cut\\n\n                        return tokenSOMETHING(stream,state,'=cut');}\n                var ch=stream.next();\n                if(ch=='\"'||ch==\"'\"){                           // NOTE: ' or \" or <<'SOMETHING'\\n...\\nSOMETHING\\n or <<\"SOMETHING\"\\n...\\nSOMETHING\\n\n                        if(prefix(stream, 3)==\"<<\"+ch){\n                                var p=stream.pos;\n                                stream.eatWhile(/\\w/);\n                                var n=stream.current().substr(1);\n                                if(n&&stream.eat(ch))\n                                        return tokenSOMETHING(stream,state,n);\n                                stream.pos=p;}\n                        return tokenChain(stream,state,[ch],\"string\");}\n                if(ch==\"q\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=look(stream, 0);\n                                if(c==\"x\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(c==\"q\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}\n                                else if(c==\"w\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"bracket\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"bracket\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"bracket\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"bracket\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"bracket\");}}\n                                else if(c==\"r\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(/[\\^'\"!~\\/(\\[{<]/.test(c)){\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}}}\n                if(ch==\"m\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}\n                                        if(c==\"(\"){\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}}}}\n                if(ch==\"s\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"y\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"t\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(\"r\");if(c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}\n                if(ch==\"`\"){\n                        return tokenChain(stream,state,[ch],\"variable-2\");}\n                if(ch==\"/\"){\n                        if(!/~\\s*$/.test(prefix(stream)))\n                                return \"operator\";\n                        else\n                                return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}\n                if(ch==\"$\"){\n                        var p=stream.pos;\n                        if(stream.eatWhile(/\\d/)||stream.eat(\"{\")&&stream.eatWhile(/\\d/)&&stream.eat(\"}\"))\n                                return \"variable-2\";\n                        else\n                                stream.pos=p;}\n                if(/[$@%]/.test(ch)){\n                        var p=stream.pos;\n                        if(stream.eat(\"^\")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\\\\-#?@;:&`~\\^!\\[\\]*'\"$+.,\\/<>()]/)){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";}\n                        stream.pos=p;}\n                if(/[$@%&]/.test(ch)){\n                        if(stream.eatWhile(/[\\w$\\[\\]]/)||stream.eat(\"{\")&&stream.eatWhile(/[\\w$\\[\\]]/)&&stream.eat(\"}\")){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";\n                                else\n                                        return \"variable\";}}\n                if(ch==\"#\"){\n                        if(look(stream, -2)!=\"$\"){\n                                stream.skipToEnd();\n                                return \"comment\";}}\n                if(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/.test(ch)){\n                        var p=stream.pos;\n                        stream.eatWhile(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/);\n                        if(PERL[stream.current()])\n                                return \"operator\";\n                        else\n                                stream.pos=p;}\n                if(ch==\"_\"){\n                        if(stream.pos==1){\n                                if(suffix(stream, 6)==\"_END__\"){\n                                        return tokenChain(stream,state,['\\0'],\"comment\");}\n                                else if(suffix(stream, 7)==\"_DATA__\"){\n                                        return tokenChain(stream,state,['\\0'],\"variable-2\");}\n                                else if(suffix(stream, 7)==\"_C__\"){\n                                        return tokenChain(stream,state,['\\0'],\"string\");}}}\n                if(/\\w/.test(ch)){\n                        var p=stream.pos;\n                        if(look(stream, -2)==\"{\"&&(look(stream, 0)==\"}\"||stream.eatWhile(/\\w/)&&look(stream, 0)==\"}\"))\n                                return \"string\";\n                        else\n                                stream.pos=p;}\n                if(/[A-Z]/.test(ch)){\n                        var l=look(stream, -2);\n                        var p=stream.pos;\n                        stream.eatWhile(/[A-Z_]/);\n                        if(/[\\da-z]/.test(look(stream, 0))){\n                                stream.pos=p;}\n                        else{\n                                var c=PERL[stream.current()];\n                                if(!c)\n                                        return \"meta\";\n                                if(c[1])\n                                        c=c[0];\n                                if(l!=\":\"){\n                                        if(c==1)\n                                                return \"keyword\";\n                                        else if(c==2)\n                                                return \"def\";\n                                        else if(c==3)\n                                                return \"atom\";\n                                        else if(c==4)\n                                                return \"operator\";\n                                        else if(c==5)\n                                                return \"variable-2\";\n                                        else\n                                                return \"meta\";}\n                                else\n                                        return \"meta\";}}\n                if(/[a-zA-Z_]/.test(ch)){\n                        var l=look(stream, -2);\n                        stream.eatWhile(/\\w/);\n                        var c=PERL[stream.current()];\n                        if(!c)\n                                return \"meta\";\n                        if(c[1])\n                                c=c[0];\n                        if(l!=\":\"){\n                                if(c==1)\n                                        return \"keyword\";\n                                else if(c==2)\n                                        return \"def\";\n                                else if(c==3)\n                                        return \"atom\";\n                                else if(c==4)\n                                        return \"operator\";\n                                else if(c==5)\n                                        return \"variable-2\";\n                                else\n                                        return \"meta\";}\n                        else\n                                return \"meta\";}\n                return null;}\n\n        return {\n            startState: function() {\n                return {\n                    tokenize: tokenPerl,\n                    chain: null,\n                    style: null,\n                    tail: null\n                };\n            },\n            token: function(stream, state) {\n                return (state.tokenize || tokenPerl)(stream, state);\n            },\n            lineComment: '#'\n        };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"perl\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/x-perl\", \"perl\");\n\n// it's like \"peek\", but need for look-ahead or look-behind if index < 0\nfunction look(stream, c){\n  return stream.string.charAt(stream.pos+(c||0));\n}\n\n// return a part of prefix of current stream from current position\nfunction prefix(stream, c){\n  if(c){\n    var x=stream.pos-c;\n    return stream.string.substr((x>=0?x:0),c);}\n  else{\n    return stream.string.substr(0,stream.pos-1);\n  }\n}\n\n// return a part of suffix of current stream from current position\nfunction suffix(stream, c){\n  var y=stream.string.length;\n  var x=y-stream.pos+1;\n  return stream.string.substr(stream.pos,(c&&c<y?c:x));\n}\n\n// eating and vomiting a part of stream from current position\nfunction eatSuffix(stream, c){\n  var x=stream.pos+c;\n  var y;\n  if(x<=0)\n    stream.pos=0;\n  else if(x>=(y=stream.string.length-1))\n    stream.pos=y;\n  else\n    stream.pos=x;\n}\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/php/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: PHP mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"php.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">PHP</a>\n  </ul>\n</div>\n\n<article>\n<h2>PHP mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<?php\n$a = array('a' => 1, 'b' => 2, 3 => 'c');\n\necho \"$a[a] ${a[3] /* } comment */} {$a[b]} \\$a[a]\";\n\nfunction hello($who) {\n\treturn \"Hello $who!\";\n}\n?>\n<p>The program says <?= hello(\"World\") ?>.</p>\n<script>\n\talert(\"And here is some JS code\"); // also colored\n</script>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"application/x-httpd-php\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Simple HTML/PHP mode based on\n    the <a href=\"../clike/\">C-like</a> mode. Depends on XML,\n    JavaScript, CSS, HTMLMixed, and C-like modes.</p>\n\n    <p><strong>MIME types defined:</strong> <code>application/x-httpd-php</code> (HTML with PHP code), <code>text/x-php</code> (plain, non-wrapped PHP code).</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/php/php.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // Helper for stringWithEscapes\n  function matchSequence(list, end) {\n    if (list.length == 0) return stringWithEscapes(end);\n    return function (stream, state) {\n      var patterns = list[0];\n      for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {\n        state.tokenize = matchSequence(list.slice(1), end);\n        return patterns[i][1];\n      }\n      state.tokenize = stringWithEscapes(end);\n      return \"string\";\n    };\n  }\n  function stringWithEscapes(closing) {\n    return function(stream, state) { return stringWithEscapes_(stream, state, closing); };\n  }\n  function stringWithEscapes_(stream, state, closing) {\n    // \"Complex\" syntax\n    if (stream.match(\"${\", false) || stream.match(\"{$\", false)) {\n      state.tokenize = null;\n      return \"string\";\n    }\n\n    // Simple syntax\n    if (stream.match(/^\\$[a-zA-Z_][a-zA-Z0-9_]*/)) {\n      // After the variable name there may appear array or object operator.\n      if (stream.match(\"[\", false)) {\n        // Match array operator\n        state.tokenize = matchSequence([\n          [[\"[\", null]],\n          [[/\\d[\\w\\.]*/, \"number\"],\n           [/\\$[a-zA-Z_][a-zA-Z0-9_]*/, \"variable-2\"],\n           [/[\\w\\$]+/, \"variable\"]],\n          [[\"]\", null]]\n        ], closing);\n      }\n      if (stream.match(/\\-\\>\\w/, false)) {\n        // Match object operator\n        state.tokenize = matchSequence([\n          [[\"->\", null]],\n          [[/[\\w]+/, \"variable\"]]\n        ], closing);\n      }\n      return \"variable-2\";\n    }\n\n    var escaped = false;\n    // Normal string\n    while (!stream.eol() &&\n           (escaped || (!stream.match(\"{$\", false) &&\n                        !stream.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*|\\$\\{)/, false)))) {\n      if (!escaped && stream.match(closing)) {\n        state.tokenize = null;\n        state.tokStack.pop(); state.tokStack.pop();\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  var phpKeywords = \"abstract and array as break case catch class clone const continue declare default \" +\n    \"do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final \" +\n    \"for foreach function global goto if implements interface instanceof namespace \" +\n    \"new or private protected public static switch throw trait try use var while xor \" +\n    \"die echo empty exit eval include include_once isset list require require_once return \" +\n    \"print unset __halt_compiler self static parent yield insteadof finally\";\n  var phpAtoms = \"true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__\";\n  var phpBuiltin = \"func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count\";\n  CodeMirror.registerHelper(\"hintWords\", \"php\", [phpKeywords, phpAtoms, phpBuiltin].join(\" \").split(\" \"));\n  CodeMirror.registerHelper(\"wordChars\", \"php\", /[\\w$]/);\n\n  var phpConfig = {\n    name: \"clike\",\n    helperType: \"php\",\n    keywords: keywords(phpKeywords),\n    blockKeywords: keywords(\"catch do else elseif for foreach if switch try while finally\"),\n    atoms: keywords(phpAtoms),\n    builtin: keywords(phpBuiltin),\n    multiLineStrings: true,\n    hooks: {\n      \"$\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"variable-2\";\n      },\n      \"<\": function(stream, state) {\n        if (stream.match(/<</)) {\n          stream.eatWhile(/[\\w\\.]/);\n          var delim = stream.current().slice(3);\n          if (delim) {\n            (state.tokStack || (state.tokStack = [])).push(delim, 0);\n            state.tokenize = stringWithEscapes(delim);\n            return \"string\";\n          }\n        }\n        return false;\n      },\n      \"#\": function(stream) {\n        while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n        return \"comment\";\n      },\n      \"/\": function(stream) {\n        if (stream.eat(\"/\")) {\n          while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n          return \"comment\";\n        }\n        return false;\n      },\n      '\"': function(_stream, state) {\n        (state.tokStack || (state.tokStack = [])).push('\"', 0);\n        state.tokenize = stringWithEscapes('\"');\n        return \"string\";\n      },\n      \"{\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length)\n          state.tokStack[state.tokStack.length - 1]++;\n        return false;\n      },\n      \"}\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length > 0 &&\n            !--state.tokStack[state.tokStack.length - 1]) {\n          state.tokenize = stringWithEscapes(state.tokStack[state.tokStack.length - 2]);\n        }\n        return false;\n      }\n    }\n  };\n\n  CodeMirror.defineMode(\"php\", function(config, parserConfig) {\n    var htmlMode = CodeMirror.getMode(config, \"text/html\");\n    var phpMode = CodeMirror.getMode(config, phpConfig);\n\n    function dispatch(stream, state) {\n      var isPHP = state.curMode == phpMode;\n      if (stream.sol() && state.pending && state.pending != '\"' && state.pending != \"'\") state.pending = null;\n      if (!isPHP) {\n        if (stream.match(/^<\\?\\w*/)) {\n          state.curMode = phpMode;\n          state.curState = state.php;\n          return \"meta\";\n        }\n        if (state.pending == '\"' || state.pending == \"'\") {\n          while (!stream.eol() && stream.next() != state.pending) {}\n          var style = \"string\";\n        } else if (state.pending && stream.pos < state.pending.end) {\n          stream.pos = state.pending.end;\n          var style = state.pending.style;\n        } else {\n          var style = htmlMode.token(stream, state.curState);\n        }\n        if (state.pending) state.pending = null;\n        var cur = stream.current(), openPHP = cur.search(/<\\?/), m;\n        if (openPHP != -1) {\n          if (style == \"string\" && (m = cur.match(/[\\'\\\"]$/)) && !/\\?>/.test(cur)) state.pending = m[0];\n          else state.pending = {end: stream.pos, style: style};\n          stream.backUp(cur.length - openPHP);\n        }\n        return style;\n      } else if (isPHP && state.php.tokenize == null && stream.match(\"?>\")) {\n        state.curMode = htmlMode;\n        state.curState = state.html;\n        return \"meta\";\n      } else {\n        return phpMode.token(stream, state.curState);\n      }\n    }\n\n    return {\n      startState: function() {\n        var html = CodeMirror.startState(htmlMode), php = CodeMirror.startState(phpMode);\n        return {html: html,\n                php: php,\n                curMode: parserConfig.startOpen ? phpMode : htmlMode,\n                curState: parserConfig.startOpen ? php : html,\n                pending: null};\n      },\n\n      copyState: function(state) {\n        var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),\n            php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur;\n        if (state.curMode == htmlMode) cur = htmlNew;\n        else cur = phpNew;\n        return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,\n                pending: state.pending};\n      },\n\n      token: dispatch,\n\n      indent: function(state, textAfter) {\n        if ((state.curMode != phpMode && /^\\s*<\\//.test(textAfter)) ||\n            (state.curMode == phpMode && /^\\?>/.test(textAfter)))\n          return htmlMode.indent(state.html, textAfter);\n        return state.curMode.indent(state.curState, textAfter);\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\",\n\n      innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }\n    };\n  }, \"htmlmixed\", \"clike\");\n\n  CodeMirror.defineMIME(\"application/x-httpd-php\", \"php\");\n  CodeMirror.defineMIME(\"application/x-httpd-php-open\", {name: \"php\", startOpen: true});\n  CodeMirror.defineMIME(\"text/x-php\", phpConfig);\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/php/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"php\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT('simple_test',\n     '[meta <?php] ' +\n     '[keyword echo] [string \"aaa\"]; ' +\n     '[meta ?>]');\n\n  MT('variable_interpolation_non_alphanumeric',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa$~$!$@$#$$$%$^$&$*$($)$.$<$>$/$\\\\$}$\\\\\\\"$:$;$?$|$[[$]]$+$=aaa\"]',\n     '[meta ?>]');\n\n  MT('variable_interpolation_digits',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa$1$2$3$4$5$6$7$8$9$0aaa\"]',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_1',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $aaa][string .aaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_2',\n     '[meta <?php]',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2]',         ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2345]',      ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2.3]',       ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa\"];',\n\n     '[keyword echo] [string \"1aaa][variable-2 $aaaa][[','[number 2]',         ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[number 2345]',      ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[number 2.3]',       ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_3',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string .aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][string ->][variable-2 $aaaaa][string .aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string [[2]].aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string ->aaaa2.aaaaaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_escaping',\n     '[meta <?php] [comment /* Escaping */]',\n     '[keyword echo] [string \"aaa\\\\$aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\$aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\$aaaa[[asd]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\$aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\$aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\aaaaa[[asd]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa[[asd]]aaa.aaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_complex_syntax_1',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable aaaa]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable-2 $aaaa]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable-2 $aaaa][[','  [number 42]',']]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable aaaa][meta ?>]aaaaaa');\n\n  MT('variable_interpolation_complex_syntax_2',\n     '[meta <?php] [comment /* Monsters */]',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*}?>} $aaa<?php } */]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*}?>*/][[','  [string \"aaa][variable-2 $aaa][string {}][variable-2 $]{[variable aaa]}[string \"]',']]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*} } $aaa } */]}[string ->aaa.aaa\"];');\n\n\n  function build_recursive_monsters(nt, t, n){\n    var monsters = [t];\n    for (var i = 1; i <= n; ++i)\n      monsters[i] = nt.join(monsters[i - 1]);\n    return monsters;\n  }\n\n  var m1 = build_recursive_monsters(\n    ['[string \"][variable-2 $]{[variable aaa] [operator +] ', '}[string \"]'],\n    '[comment /* }?>} */] [string \"aaa][variable-2 $aaa][string .aaa\"]',\n    10\n  );\n\n  MT('variable_interpolation_complex_syntax_3_1',\n     '[meta <?php] [comment /* Recursive monsters */]',\n     '[keyword echo] ' + m1[4] + ';',\n     '[keyword echo] ' + m1[7] + ';',\n     '[keyword echo] ' + m1[8] + ';',\n     '[keyword echo] ' + m1[5] + ';',\n     '[keyword echo] ' + m1[1] + ';',\n     '[keyword echo] ' + m1[6] + ';',\n     '[keyword echo] ' + m1[9] + ';',\n     '[keyword echo] ' + m1[0] + ';',\n     '[keyword echo] ' + m1[10] + ';',\n     '[keyword echo] ' + m1[2] + ';',\n     '[keyword echo] ' + m1[3] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  var m2 = build_recursive_monsters(\n    ['[string \"a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', '}[string .a\"]'],\n    '[comment /* }?>{{ */] [string \"a?>}{{aa][variable-2 $aaa][string .a}a?>a\"]',\n    5\n  );\n\n  MT('variable_interpolation_complex_syntax_3_2',\n     '[meta <?php] [comment /* Recursive monsters 2 */]',\n     '[keyword echo] ' + m2[0] + ';',\n     '[keyword echo] ' + m2[1] + ';',\n     '[keyword echo] ' + m2[5] + ';',\n     '[keyword echo] ' + m2[4] + ';',\n     '[keyword echo] ' + m2[2] + ';',\n     '[keyword echo] ' + m2[3] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  function build_recursive_monsters_2(mf1, mf2, nt, t, n){\n    var monsters = [t];\n    for (var i = 1; i <= n; ++i)\n      monsters[i] = nt[0] + mf1[i - 1] + nt[1] + mf2[i - 1] + nt[2] + monsters[i - 1] + nt[3];\n    return monsters;\n  }\n\n  var m3 = build_recursive_monsters_2(\n    m1,\n    m2,\n    ['[string \"a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', ' [operator +] ', '}[string .a\"]'],\n    '[comment /* }?>{{ */] [string \"a?>}{{aa][variable-2 $aaa][string .a}a?>a\"]',\n    4\n  );\n\n  MT('variable_interpolation_complex_syntax_3_3',\n     '[meta <?php] [comment /* Recursive monsters 2 */]',\n     '[keyword echo] ' + m3[4] + ';',\n     '[keyword echo] ' + m3[0] + ';',\n     '[keyword echo] ' + m3[3] + ';',\n     '[keyword echo] ' + m3[1] + ';',\n     '[keyword echo] ' + m3[2] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  MT(\"variable_interpolation_heredoc\",\n     \"[meta <?php]\",\n     \"[string <<<here]\",\n     \"[string doc ][variable-2 $]{[variable yay]}[string more]\",\n     \"[string here]; [comment // normal]\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pig/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Pig Latin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"pig.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Pig Latin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Pig Latin mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n-- Apache Pig (Pig Latin Language) Demo\n/* \nThis is a multiline comment.\n*/\na = LOAD \"\\path\\to\\input\" USING PigStorage('\\t') AS (x:long, y:chararray, z:bytearray);\nb = GROUP a BY (x,y,3+4);\nc = FOREACH b GENERATE flatten(group) as (x,y), SUM(group.$2) as z;\nSTORE c INTO \"\\path\\to\\output\";\n\n--\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        indentUnit: 4,\n        mode: \"text/x-pig\"\n      });\n    </script>\n\n    <p>\n        Simple mode that handles Pig Latin language.\n    </p>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-pig</code>\n    (PIG code)\n</html>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/pig/pig.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n *      Pig Latin Mode for CodeMirror 2\n *      @author Prasanth Jayachandran\n *      @link   https://github.com/prasanthj/pig-codemirror-2\n *  This implementation is adapted from PL/SQL mode in CodeMirror 2.\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pig\", function(_config, parserConfig) {\n  var keywords = parserConfig.keywords,\n  builtins = parserConfig.builtins,\n  types = parserConfig.types,\n  multiLineStrings = parserConfig.multiLineStrings;\n\n  var isOperatorChar = /[*+\\-%<>=&?:\\/!|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  var type;\n  function ret(tp, style) {\n    type = tp;\n    return style;\n  }\n\n  function tokenComment(stream, state) {\n    var isEnd = false;\n    var ch;\n    while(ch = stream.next()) {\n      if(ch == \"/\" && isEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      isEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true; break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return ret(\"string\", \"error\");\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // is a start of string?\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch));\n    // is it one of the special chars\n    else if(/[\\[\\]{}\\(\\),;\\.]/.test(ch))\n      return ret(ch);\n    // is it a number?\n    else if(/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return ret(\"number\", \"number\");\n    }\n    // multi line comment or operator\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // single line comment or operator\n    else if (ch==\"-\") {\n      if(stream.eat(\"-\")){\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // is it an operator\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", \"operator\");\n    }\n    else {\n      // get the while word\n      stream.eatWhile(/[\\w\\$_]/);\n      // is it one of the listed keywords?\n      if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n        if (stream.eat(\")\") || stream.eat(\".\")) {\n          //keywords can be used as variables like flatten(group), group.$0 etc..\n        }\n        else {\n          return (\"keyword\", \"keyword\");\n        }\n      }\n      // is it one of the builtin functions?\n      if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))\n      {\n        return (\"keyword\", \"variable-2\");\n      }\n      // is it one of the listed types?\n      if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))\n        return (\"keyword\", \"variable-3\");\n      // default is a 'variable'\n      return ret(\"variable\", \"pig-word\");\n    }\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      if(stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    }\n  };\n});\n\n(function() {\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // builtin funcs taken from trunk revision 1303237\n  var pBuiltins = \"ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL \"\n    + \"CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS \"\n    + \"DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG \"\n    + \"FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN \"\n    + \"INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER \"\n    + \"ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS \"\n    + \"LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  \"\n    + \"PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE \"\n    + \"SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG \"\n    + \"TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER \";\n\n  // taken from QueryLexer.g\n  var pKeywords = \"VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP \"\n    + \"JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL \"\n    + \"PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE \"\n    + \"SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE \"\n    + \"NEQ MATCHES TRUE FALSE DUMP\";\n\n  // data types\n  var pTypes = \"BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP \";\n\n  CodeMirror.defineMIME(\"text/x-pig\", {\n    name: \"pig\",\n    builtins: keywords(pBuiltins),\n    keywords: keywords(pKeywords),\n    types: keywords(pTypes)\n  });\n\n  CodeMirror.registerHelper(\"hintWords\", \"pig\", (pBuiltins + pTypes + pKeywords).split(\" \"));\n}());\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/properties/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Properties files mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"properties.js\"></script>\n<style>.CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Properties files</a>\n  </ul>\n</div>\n\n<article>\n<h2>Properties files mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# This is a properties file\na.key = A value\nanother.key = http://example.com\n! Exclamation mark as comment\nbut.not=Within ! A value # indeed\n   # Spaces at the beginning of a line\n   spaces.before.key=value\nbackslash=Used for multi\\\n          line entries,\\\n          that's convenient.\n# Unicode sequences\nunicode.key=This is \\u0020 Unicode\nno.multiline=here\n# Colons\ncolons : can be used too\n# Spaces\nspaces\\ in\\ keys=Not very common...\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-properties</code>,\n    <code>text/x-ini</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/properties/properties.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"properties\", function() {\n  return {\n    token: function(stream, state) {\n      var sol = stream.sol() || state.afterSection;\n      var eol = stream.eol();\n\n      state.afterSection = false;\n\n      if (sol) {\n        if (state.nextMultiline) {\n          state.inMultiline = true;\n          state.nextMultiline = false;\n        } else {\n          state.position = \"def\";\n        }\n      }\n\n      if (eol && ! state.nextMultiline) {\n        state.inMultiline = false;\n        state.position = \"def\";\n      }\n\n      if (sol) {\n        while(stream.eatSpace());\n      }\n\n      var ch = stream.next();\n\n      if (sol && (ch === \"#\" || ch === \"!\" || ch === \";\")) {\n        state.position = \"comment\";\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (sol && ch === \"[\") {\n        state.afterSection = true;\n        stream.skipTo(\"]\"); stream.eat(\"]\");\n        return \"header\";\n      } else if (ch === \"=\" || ch === \":\") {\n        state.position = \"quote\";\n        return null;\n      } else if (ch === \"\\\\\" && state.position === \"quote\") {\n        if (stream.next() !== \"u\") {    // u = Unicode sequence \\u1234\n          // Multiline value\n          state.nextMultiline = true;\n        }\n      }\n\n      return state.position;\n    },\n\n    startState: function() {\n      return {\n        position : \"def\",       // Current position, \"def\", \"quote\" or \"comment\"\n        nextMultiline : false,  // Is the next line multiline value\n        inMultiline : false,    // Is the current line a multiline value\n        afterSection : false    // Did we just open a section\n      };\n    }\n\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-properties\", \"properties\");\nCodeMirror.defineMIME(\"text/x-ini\", \"properties\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/puppet/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Puppet mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"puppet.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Puppet</a>\n  </ul>\n</div>\n\n<article>\n<h2>Puppet mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# == Class: automysqlbackup\n#\n# Puppet module to install AutoMySQLBackup for periodic MySQL backups.\n#\n# class { 'automysqlbackup':\n#   backup_dir => '/mnt/backups',\n# }\n#\n\nclass automysqlbackup (\n  $bin_dir = $automysqlbackup::params::bin_dir,\n  $etc_dir = $automysqlbackup::params::etc_dir,\n  $backup_dir = $automysqlbackup::params::backup_dir,\n  $install_multicore = undef,\n  $config = {},\n  $config_defaults = {},\n) inherits automysqlbackup::params {\n\n# Ensure valid paths are assigned\n  validate_absolute_path($bin_dir)\n  validate_absolute_path($etc_dir)\n  validate_absolute_path($backup_dir)\n\n# Create a subdirectory in /etc for config files\n  file { $etc_dir:\n    ensure => directory,\n    owner => 'root',\n    group => 'root',\n    mode => '0750',\n  }\n\n# Create an example backup file, useful for reference\n  file { \"${etc_dir}/automysqlbackup.conf.example\":\n    ensure => file,\n    owner => 'root',\n    group => 'root',\n    mode => '0660',\n    source => 'puppet:///modules/automysqlbackup/automysqlbackup.conf',\n  }\n\n# Add files from the developer\n  file { \"${etc_dir}/AMB_README\":\n    ensure => file,\n    source => 'puppet:///modules/automysqlbackup/AMB_README',\n  }\n  file { \"${etc_dir}/AMB_LICENSE\":\n    ensure => file,\n    source => 'puppet:///modules/automysqlbackup/AMB_LICENSE',\n  }\n\n# Install the actual binary file\n  file { \"${bin_dir}/automysqlbackup\":\n    ensure => file,\n    owner => 'root',\n    group => 'root',\n    mode => '0755',\n    source => 'puppet:///modules/automysqlbackup/automysqlbackup',\n  }\n\n# Create the base backup directory\n  file { $backup_dir:\n    ensure => directory,\n    owner => 'root',\n    group => 'root',\n    mode => '0755',\n  }\n\n# If you'd like to keep your config in hiera and pass it to this class\n  if !empty($config) {\n    create_resources('automysqlbackup::backup', $config, $config_defaults)\n  }\n\n# If using RedHat family, must have the RPMforge repo's enabled\n  if $install_multicore {\n    package { ['pigz', 'pbzip2']: ensure => installed }\n  }\n\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-puppet\",\n        matchBrackets: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-puppet</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/puppet/puppet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"puppet\", function () {\n  // Stores the words from the define method\n  var words = {};\n  // Taken, mostly, from the Puppet official variable standards regex\n  var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;\n\n  // Takes a string of words separated by spaces and adds them as\n  // keys with the value of the first argument 'style'\n  function define(style, string) {\n    var split = string.split(' ');\n    for (var i = 0; i < split.length; i++) {\n      words[split[i]] = style;\n    }\n  }\n\n  // Takes commonly known puppet types/words and classifies them to a style\n  define('keyword', 'class define site node include import inherits');\n  define('keyword', 'case if else in and elsif default or');\n  define('atom', 'false true running present absent file directory undef');\n  define('builtin', 'action augeas burst chain computer cron destination dport exec ' +\n    'file filebucket group host icmp iniface interface jump k5login limit log_level ' +\n    'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' +\n    'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' +\n    'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' +\n    'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' +\n    'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' +\n    'resources router schedule scheduled_task selboolean selmodule service source ' +\n    'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' +\n    'user vlan yumrepo zfs zone zpool');\n\n  // After finding a start of a string ('|\") this function attempts to find the end;\n  // If a variable is encountered along the way, we display it differently when it\n  // is encapsulated in a double-quoted string.\n  function tokenString(stream, state) {\n    var current, prev, found_var = false;\n    while (!stream.eol() && (current = stream.next()) != state.pending) {\n      if (current === '$' && prev != '\\\\' && state.pending == '\"') {\n        found_var = true;\n        break;\n      }\n      prev = current;\n    }\n    if (found_var) {\n      stream.backUp(1);\n    }\n    if (current == state.pending) {\n      state.continueString = false;\n    } else {\n      state.continueString = true;\n    }\n    return \"string\";\n  }\n\n  // Main function\n  function tokenize(stream, state) {\n    // Matches one whole word\n    var word = stream.match(/[\\w]+/, false);\n    // Matches attributes (i.e. ensure => present ; 'ensure' would be matched)\n    var attribute = stream.match(/(\\s+)?\\w+\\s+=>.*/, false);\n    // Matches non-builtin resource declarations\n    // (i.e. \"apache::vhost {\" or \"mycustomclasss {\" would be matched)\n    var resource = stream.match(/(\\s+)?[\\w:_]+(\\s+)?{/, false);\n    // Matches virtual and exported resources (i.e. @@user { ; and the like)\n    var special_resource = stream.match(/(\\s+)?[@]{1,2}[\\w:_]+(\\s+)?{/, false);\n\n    // Finally advance the stream\n    var ch = stream.next();\n\n    // Have we found a variable?\n    if (ch === '$') {\n      if (stream.match(variable_regex)) {\n        // If so, and its in a string, assign it a different color\n        return state.continueString ? 'variable-2' : 'variable';\n      }\n      // Otherwise return an invalid variable\n      return \"error\";\n    }\n    // Should we still be looking for the end of a string?\n    if (state.continueString) {\n      // If so, go through the loop again\n      stream.backUp(1);\n      return tokenString(stream, state);\n    }\n    // Are we in a definition (class, node, define)?\n    if (state.inDefinition) {\n      // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched)\n      if (stream.match(/(\\s+)?[\\w:_]+(\\s+)?/)) {\n        return 'def';\n      }\n      // Match the rest it the next time around\n      stream.match(/\\s+{/);\n      state.inDefinition = false;\n    }\n    // Are we in an 'include' statement?\n    if (state.inInclude) {\n      // Match and return the included class\n      stream.match(/(\\s+)?\\S+(\\s+)?/);\n      state.inInclude = false;\n      return 'def';\n    }\n    // Do we just have a function on our hands?\n    // In 'ensure_resource(\"myclass\")', 'ensure_resource' is matched\n    if (stream.match(/(\\s+)?\\w+\\(/)) {\n      stream.backUp(1);\n      return 'def';\n    }\n    // Have we matched the prior attribute regex?\n    if (attribute) {\n      stream.match(/(\\s+)?\\w+/);\n      return 'tag';\n    }\n    // Do we have Puppet specific words?\n    if (word && words.hasOwnProperty(word)) {\n      // Negates the initial next()\n      stream.backUp(1);\n      // Acutally move the stream\n      stream.match(/[\\w]+/);\n      // We want to process these words differently\n      // do to the importance they have in Puppet\n      if (stream.match(/\\s+\\S+\\s+{/, false)) {\n        state.inDefinition = true;\n      }\n      if (word == 'include') {\n        state.inInclude = true;\n      }\n      // Returns their value as state in the prior define methods\n      return words[word];\n    }\n    // Is there a match on a reference?\n    if (/(^|\\s+)[A-Z][\\w:_]+/.test(word)) {\n      // Negate the next()\n      stream.backUp(1);\n      // Match the full reference\n      stream.match(/(^|\\s+)[A-Z][\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior resource regex?\n    if (resource) {\n      stream.match(/(\\s+)?[\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior special_resource regex?\n    if (special_resource) {\n      stream.match(/(\\s+)?[@]{1,2}/);\n      return 'special';\n    }\n    // Match all the comments. All of them.\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // Have we found a string?\n    if (ch == \"'\" || ch == '\"') {\n      // Store the type (single or double)\n      state.pending = ch;\n      // Perform the looping function to find the end\n      return tokenString(stream, state);\n    }\n    // Match all the brackets\n    if (ch == '{' || ch == '}') {\n      return 'bracket';\n    }\n    // Match characters that we are going to assume\n    // are trying to be regex\n    if (ch == '/') {\n      stream.match(/.*?\\//);\n      return 'variable-3';\n    }\n    // Match all the numbers\n    if (ch.match(/[0-9]/)) {\n      stream.eatWhile(/[0-9]+/);\n      return 'number';\n    }\n    // Match the '=' and '=>' operators\n    if (ch == '=') {\n      if (stream.peek() == '>') {\n          stream.next();\n      }\n      return \"operator\";\n    }\n    // Keep advancing through all the rest\n    stream.eatWhile(/[\\w-]/);\n    // Return a blank line for everything else\n    return null;\n  }\n  // Start it all\n  return {\n    startState: function () {\n      var state = {};\n      state.inDefinition = false;\n      state.inInclude = false;\n      state.continueString = false;\n      state.pending = false;\n      return state;\n    },\n    token: function (stream, state) {\n      // Strip the spaces, but regex will account for them eitherway\n      if (stream.eatSpace()) return null;\n      // Go through the main process\n      return tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-puppet\", \"puppet\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/python/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Python mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"python.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Python</a>\n  </ul>\n</div>\n\n<article>\n<h2>Python mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n# Literals\n1234\n0.0e101\n.123\n0b01010011100\n0o01234567\n0x0987654321abcdef\n7\n2147483647\n3L\n79228162514264337593543950336L\n0x100000000L\n79228162514264337593543950336\n0xdeadbeef\n3.14j\n10.j\n10j\n.001j\n1e100j\n3.14e-10j\n\n\n# String Literals\n'For\\''\n\"God\\\"\"\n\"\"\"so loved\nthe world\"\"\"\n'''that he gave\nhis only begotten\\' '''\n'that whosoever believeth \\\nin him'\n''\n\n# Identifiers\n__a__\na.b\na.b.c\n\n#Unicode identifiers on Python3\n# a = x\\ddot\na⃗ = ẍ\n# a = v\\dot\na⃗ = v̇\n\n#F\\vec = m \\cdot a\\vec\nF⃗ = m•a⃗ \n\n# Operators\n+ - * / % & | ^ ~ < >\n== != <= >= <> << >> // **\nand or not in is\n\n#infix matrix multiplication operator (PEP 465)\nA @ B\n\n# Delimiters\n() [] {} , : ` = ; @ .  # Note that @ and . require the proper context on Python 2.\n+= -= *= /= %= &= |= ^=\n//= >>= <<= **=\n\n# Keywords\nas assert break class continue def del elif else except\nfinally for from global if import lambda pass raise\nreturn try while with yield\n\n# Python 2 Keywords (otherwise Identifiers)\nexec print\n\n# Python 3 Keywords (otherwise Identifiers)\nnonlocal\n\n# Types\nbool classmethod complex dict enumerate float frozenset int list object\nproperty reversed set slice staticmethod str super tuple type\n\n# Python 2 Types (otherwise Identifiers)\nbasestring buffer file long unicode xrange\n\n# Python 3 Types (otherwise Identifiers)\nbytearray bytes filter map memoryview open range zip\n\n# Some Example code\nimport os\nfrom package import ParentClass\n\n@nonsenseDecorator\ndef doesNothing():\n    pass\n\nclass ExampleClass(ParentClass):\n    @staticmethod\n    def example(inputStr):\n        a = list(inputStr)\n        a.reverse()\n        return ''.join(a)\n\n    def __init__(self, mixin = 'Hello'):\n        self.mixin = mixin\n\n</textarea></div>\n\n\n<h2>Cython mode</h2>\n\n<div><textarea id=\"code-cython\" name=\"code-cython\">\n\nimport numpy as np\ncimport cython\nfrom libc.math cimport sqrt\n\n@cython.boundscheck(False)\n@cython.wraparound(False)\ndef pairwise_cython(double[:, ::1] X):\n    cdef int M = X.shape[0]\n    cdef int N = X.shape[1]\n    cdef double tmp, d\n    cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)\n    for i in range(M):\n        for j in range(M):\n            d = 0.0\n            for k in range(N):\n                tmp = X[i, k] - X[j, k]\n                d += tmp * tmp\n            D[i, j] = sqrt(d)\n    return np.asarray(D)\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"python\",\n               version: 3,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n    });\n\n    CodeMirror.fromTextArea(document.getElementById(\"code-cython\"), {\n        mode: {name: \"text/x-cython\",\n               version: 2,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n    <h2>Configuration Options for Python mode:</h2>\n    <ul>\n      <li>version - 2/3 - The version of Python to recognize.  Default is 2.</li>\n      <li>singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.</li>\n      <li>hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.</li>\n    </ul>\n    <h2>Advanced Configuration Options:</h2>\n    <p>Usefull for superset of python syntax like Enthought enaml, IPython magics and  questionmark help</p>\n    <ul>\n      <li>singleOperators - RegEx - Regular Expression for single operator matching,  default : <pre>^[\\\\+\\\\-\\\\*/%&amp;|\\\\^~&lt;&gt;!]</pre> including <pre>@</pre> on Python 3</li>\n      <li>singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :  <pre>^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]</pre></li>\n      <li>doubleOperators - RegEx - Regular Expression for double operators matching, default : <pre>^((==)|(!=)|(&lt;=)|(&gt;=)|(&lt;&gt;)|(&lt;&lt;)|(&gt;&gt;)|(//)|(\\\\*\\\\*))</pre></li>\n      <li>doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : <pre>^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&amp;=)|(\\\\|=)|(\\\\^=))</pre></li>\n      <li>tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : <pre>^((//=)|(&gt;&gt;=)|(&lt;&lt;=)|(\\\\*\\\\*=))</pre></li>\n      <li>identifiers - RegEx - Regular Expression for identifier, default : <pre>^[_A-Za-z][_A-Za-z0-9]*</pre> on Python 2 and <pre>^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*</pre> on Python 3.</li>\n      <li>extra_keywords - list of string - List of extra words ton consider as keywords</li>\n      <li>extra_builtins - list of string - List of extra words ton consider as builtins</li>\n    </ul>\n\n\n    <p><strong>MIME types defined:</strong> <code>text/x-python</code> and <code>text/x-cython</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/python/python.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\", \"is\"]);\n  var commonKeywords = [\"as\", \"assert\", \"break\", \"class\", \"continue\",\n                        \"def\", \"del\", \"elif\", \"else\", \"except\", \"finally\",\n                        \"for\", \"from\", \"global\", \"if\", \"import\",\n                        \"lambda\", \"pass\", \"raise\", \"return\",\n                        \"try\", \"while\", \"with\", \"yield\", \"in\"];\n  var commonBuiltins = [\"abs\", \"all\", \"any\", \"bin\", \"bool\", \"bytearray\", \"callable\", \"chr\",\n                        \"classmethod\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\",\n                        \"enumerate\", \"eval\", \"filter\", \"float\", \"format\", \"frozenset\",\n                        \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"hex\", \"id\",\n                        \"input\", \"int\", \"isinstance\", \"issubclass\", \"iter\", \"len\",\n                        \"list\", \"locals\", \"map\", \"max\", \"memoryview\", \"min\", \"next\",\n                        \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"property\", \"range\",\n                        \"repr\", \"reversed\", \"round\", \"set\", \"setattr\", \"slice\",\n                        \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\",\n                        \"type\", \"vars\", \"zip\", \"__import__\", \"NotImplemented\",\n                        \"Ellipsis\", \"__debug__\"];\n  var py2 = {builtins: [\"apply\", \"basestring\", \"buffer\", \"cmp\", \"coerce\", \"execfile\",\n                        \"file\", \"intern\", \"long\", \"raw_input\", \"reduce\", \"reload\",\n                        \"unichr\", \"unicode\", \"xrange\", \"False\", \"True\", \"None\"],\n             keywords: [\"exec\", \"print\"]};\n  var py3 = {builtins: [\"ascii\", \"bytes\", \"exec\", \"print\"],\n             keywords: [\"nonlocal\", \"False\", \"True\", \"None\"]};\n\n  CodeMirror.registerHelper(\"hintWords\", \"python\", commonKeywords.concat(commonBuiltins));\n\n  function top(state) {\n    return state.scopes[state.scopes.length - 1];\n  }\n\n  CodeMirror.defineMode(\"python\", function(conf, parserConf) {\n    var ERRORCLASS = \"error\";\n\n    var singleDelimiters = parserConf.singleDelimiters || new RegExp(\"^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]\");\n    var doubleOperators = parserConf.doubleOperators || new RegExp(\"^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n    var doubleDelimiters = parserConf.doubleDelimiters || new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n    var tripleDelimiters = parserConf.tripleDelimiters || new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n\n    if (parserConf.version && parseInt(parserConf.version, 10) == 3){\n        // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator\n        var singleOperators = parserConf.singleOperators || new RegExp(\"^[\\\\+\\\\-\\\\*/%&|\\\\^~<>!@]\");\n        var identifiers = parserConf.identifiers|| new RegExp(\"^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*\");\n    } else {\n        var singleOperators = parserConf.singleOperators || new RegExp(\"^[\\\\+\\\\-\\\\*/%&|\\\\^~<>!]\");\n        var identifiers = parserConf.identifiers|| new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n    }\n\n    var hangingIndent = parserConf.hangingIndent || conf.indentUnit;\n\n    var myKeywords = commonKeywords, myBuiltins = commonBuiltins;\n    if(parserConf.extra_keywords != undefined){\n      myKeywords = myKeywords.concat(parserConf.extra_keywords);\n    }\n    if(parserConf.extra_builtins != undefined){\n      myBuiltins = myBuiltins.concat(parserConf.extra_builtins);\n    }\n    if (parserConf.version && parseInt(parserConf.version, 10) == 3) {\n      myKeywords = myKeywords.concat(py3.keywords);\n      myBuiltins = myBuiltins.concat(py3.builtins);\n      var stringPrefixes = new RegExp(\"^(([rb]|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    } else {\n      myKeywords = myKeywords.concat(py2.keywords);\n      myBuiltins = myBuiltins.concat(py2.builtins);\n      var stringPrefixes = new RegExp(\"^(([rub]|(ur)|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    }\n    var keywords = wordRegexp(myKeywords);\n    var builtins = wordRegexp(myBuiltins);\n\n    // tokenizers\n    function tokenBase(stream, state) {\n      // Handle scope changes\n      if (stream.sol() && top(state).type == \"py\") {\n        var scopeOffset = top(state).offset;\n        if (stream.eatSpace()) {\n          var lineOffset = stream.indentation();\n          if (lineOffset > scopeOffset)\n            pushScope(stream, state, \"py\");\n          else if (lineOffset < scopeOffset && dedent(stream, state))\n            state.errorToken = true;\n          return null;\n        } else {\n          var style = tokenBaseInner(stream, state);\n          if (scopeOffset > 0 && dedent(stream, state))\n            style += \" \" + ERRORCLASS;\n          return style;\n        }\n      }\n      return tokenBaseInner(stream, state);\n    }\n\n    function tokenBaseInner(stream, state) {\n      if (stream.eatSpace()) return null;\n\n      var ch = stream.peek();\n\n      // Handle Comments\n      if (ch == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Handle Number Literals\n      if (stream.match(/^[0-9\\.]/, false)) {\n        var floatLiteral = false;\n        // Floats\n        if (stream.match(/^\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n        if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n        if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n        if (floatLiteral) {\n          // Float literals may be \"imaginary\"\n          stream.eat(/J/i);\n          return \"number\";\n        }\n        // Integers\n        var intLiteral = false;\n        // Hex\n        if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true;\n        // Binary\n        if (stream.match(/^0b[01]+/i)) intLiteral = true;\n        // Octal\n        if (stream.match(/^0o[0-7]+/i)) intLiteral = true;\n        // Decimal\n        if (stream.match(/^[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n          // Decimal literals may be \"imaginary\"\n          stream.eat(/J/i);\n          // TODO - Can you have imaginary longs?\n          intLiteral = true;\n        }\n        // Zero by itself with no other piece of number.\n        if (stream.match(/^0(?![\\dx])/i)) intLiteral = true;\n        if (intLiteral) {\n          // Integer literals may be \"long\"\n          stream.eat(/L/i);\n          return \"number\";\n        }\n      }\n\n      // Handle Strings\n      if (stream.match(stringPrefixes)) {\n        state.tokenize = tokenStringFactory(stream.current());\n        return state.tokenize(stream, state);\n      }\n\n      // Handle operators and Delimiters\n      if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters))\n        return null;\n\n      if (stream.match(doubleOperators)\n          || stream.match(singleOperators)\n          || stream.match(wordOperators))\n        return \"operator\";\n\n      if (stream.match(singleDelimiters))\n        return null;\n\n      if (stream.match(keywords))\n        return \"keyword\";\n\n      if (stream.match(builtins))\n        return \"builtin\";\n\n      if (stream.match(/^(self|cls)\\b/))\n        return \"variable-2\";\n\n      if (stream.match(identifiers)) {\n        if (state.lastToken == \"def\" || state.lastToken == \"class\")\n          return \"def\";\n        return \"variable\";\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n      while (\"rub\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n        delimiter = delimiter.substr(1);\n\n      var singleline = delimiter.length == 1;\n      var OUTCLASS = \"string\";\n\n      function tokenString(stream, state) {\n        while (!stream.eol()) {\n          stream.eatWhile(/[^'\"\\\\]/);\n          if (stream.eat(\"\\\\\")) {\n            stream.next();\n            if (singleline && stream.eol())\n              return OUTCLASS;\n          } else if (stream.match(delimiter)) {\n            state.tokenize = tokenBase;\n            return OUTCLASS;\n          } else {\n            stream.eat(/['\"]/);\n          }\n        }\n        if (singleline) {\n          if (parserConf.singleLineStringErrors)\n            return ERRORCLASS;\n          else\n            state.tokenize = tokenBase;\n        }\n        return OUTCLASS;\n      }\n      tokenString.isString = true;\n      return tokenString;\n    }\n\n    function pushScope(stream, state, type) {\n      var offset = 0, align = null;\n      if (type == \"py\") {\n        while (top(state).type != \"py\")\n          state.scopes.pop();\n      }\n      offset = top(state).offset + (type == \"py\" ? conf.indentUnit : hangingIndent);\n      if (type != \"py\" && !stream.match(/^(\\s|#.*)*$/, false))\n        align = stream.column() + 1;\n      state.scopes.push({offset: offset, type: type, align: align});\n    }\n\n    function dedent(stream, state) {\n      var indented = stream.indentation();\n      while (top(state).offset > indented) {\n        if (top(state).type != \"py\") return true;\n        state.scopes.pop();\n      }\n      return top(state).offset != indented;\n    }\n\n    function tokenLexer(stream, state) {\n      var style = state.tokenize(stream, state);\n      var current = stream.current();\n\n      // Handle '.' connected identifiers\n      if (current == \".\") {\n        style = stream.match(identifiers, false) ? null : ERRORCLASS;\n        if (style == null && state.lastStyle == \"meta\") {\n          // Apply 'meta' style to '.' connected identifiers when\n          // appropriate.\n          style = \"meta\";\n        }\n        return style;\n      }\n\n      // Handle decorators\n      if (current == \"@\"){\n        if(parserConf.version && parseInt(parserConf.version, 10) == 3){\n            return stream.match(identifiers, false) ? \"meta\" : \"operator\";\n        } else {\n            return stream.match(identifiers, false) ? \"meta\" : ERRORCLASS;\n        }\n      }\n\n      if ((style == \"variable\" || style == \"builtin\")\n          && state.lastStyle == \"meta\")\n        style = \"meta\";\n\n      // Handle scope changes.\n      if (current == \"pass\" || current == \"return\")\n        state.dedent += 1;\n\n      if (current == \"lambda\") state.lambda = true;\n      if (current == \":\" && !state.lambda && top(state).type == \"py\")\n        pushScope(stream, state, \"py\");\n\n      var delimiter_index = current.length == 1 ? \"[({\".indexOf(current) : -1;\n      if (delimiter_index != -1)\n        pushScope(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n\n      delimiter_index = \"])}\".indexOf(current);\n      if (delimiter_index != -1) {\n        if (top(state).type == current) state.scopes.pop();\n        else return ERRORCLASS;\n      }\n      if (state.dedent > 0 && stream.eol() && top(state).type == \"py\") {\n        if (state.scopes.length > 1) state.scopes.pop();\n        state.dedent -= 1;\n      }\n\n      return style;\n    }\n\n    var external = {\n      startState: function(basecolumn) {\n        return {\n          tokenize: tokenBase,\n          scopes: [{offset: basecolumn || 0, type: \"py\", align: null}],\n          lastStyle: null,\n          lastToken: null,\n          lambda: false,\n          dedent: 0\n        };\n      },\n\n      token: function(stream, state) {\n        var addErr = state.errorToken;\n        if (addErr) state.errorToken = false;\n        var style = tokenLexer(stream, state);\n\n        state.lastStyle = style;\n\n        var current = stream.current();\n        if (current && style)\n          state.lastToken = current;\n\n        if (stream.eol() && state.lambda)\n          state.lambda = false;\n        return addErr ? style + \" \" + ERRORCLASS : style;\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != tokenBase)\n          return state.tokenize.isString ? CodeMirror.Pass : 0;\n\n        var scope = top(state);\n        var closing = textAfter && textAfter.charAt(0) == scope.type;\n        if (scope.align != null)\n          return scope.align - (closing ? 1 : 0);\n        else if (closing && state.scopes.length > 1)\n          return state.scopes[state.scopes.length - 2].offset;\n        else\n          return scope.offset;\n      },\n\n      lineComment: \"#\",\n      fold: \"indent\"\n    };\n    return external;\n  });\n\n  CodeMirror.defineMIME(\"text/x-python\", \"python\");\n\n  var words = function(str) { return str.split(\" \"); };\n\n  CodeMirror.defineMIME(\"text/x-cython\", {\n    name: \"python\",\n    extra_keywords: words(\"by cdef cimport cpdef ctypedef enum except\"+\n                          \"extern gil include nogil property public\"+\n                          \"readonly struct union DEF IF ELIF ELSE\")\n  });\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/q/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Q mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"q.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Q</a>\n  </ul>\n</div>\n\n<article>\n<h2>Q mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n/ utilities to quickly load a csv file - for more exhaustive analysis of the csv contents see csvguess.q\n/ 2009.09.20 - updated to match latest csvguess.q \n\n/ .csv.colhdrs[file] - return a list of colhdrs from file\n/ info:.csv.info[file] - return a table of information about the file\n/ columns are: \n/\tc - column name; ci - column index; t - load type; mw - max width; \n/\tdchar - distinct characters in values; rule - rule that caught the type\n/\tmaybe - needs checking, _could_ be say a date, but perhaps just a float?\n/ .csv.info0[file;onlycols] - like .csv.info except that it only analyses <onlycols>\n/ example:\n/\tinfo:.csv.info0[file;(.csv.colhdrs file)like\"*price\"]\n/\tinfo:.csv.infolike[file;\"*price\"]\n/\tshow delete from info where t=\" \"\n/ .csv.data[file;info] - use the info from .csv.info to read the data\n/ .csv.data10[file;info] - like .csv.data but only returns the first 10 rows\n/ bulkload[file;info] - bulk loads file into table DATA (which must be already defined :: DATA:() )\n/ .csv.read[file]/read10[file] - for when you don't care about checking/tweaking the <info> before reading \n\n\\d .csv\nDELIM:\",\"\nZAPHDRS:0b / lowercase and remove _ from colhdrs (junk characters are always removed)\nWIDTHHDR:25000 / number of characters read to get the header\nREADLINES:222 / number of lines read and used to guess the types\nSYMMAXWIDTH:11 / character columns narrower than this are stored as symbols\nSYMMAXGR:10 / max symbol granularity% before we give up and keep as a * string\nFORCECHARWIDTH:30 / every field (of any type) with values this wide or more is forced to character \"*\"\nDISCARDEMPTY:0b / completely ignore empty columns if true else set them to \"C\"\nCHUNKSIZE:50000000 / used in fs2 (modified .Q.fs)\n\nk)nameltrim:{$[~@x;.z.s'x;~(*x)in aA:.Q.a,.Q.A;(+/&\\~x in aA)_x;x]}\nk)fs2:{[f;s]((-7!s)>){[f;s;x]i:1+last@&0xa=r:1:(s;x;CHUNKSIZE);f@`\\:i#r;x+i}[f;s]/0j}\ncleanhdrs:{{$[ZAPHDRS;lower x except\"_\";x]}x where x in DELIM,.Q.an}\ncancast:{nw:x$\"\";if[not x in\"BXCS\";nw:(min 0#;max 0#;::)@\\:nw];$[not any nw in x$(11&count y)#y;$[11<count y;not any nw in x$y;1b];0b]}\n\nread:{[file]data[file;info[file]]}  \nread10:{[file]data10[file;info[file]]}  \n\ncolhdrs:{[file]\n\t`$nameltrim DELIM vs cleanhdrs first read0(file;0;1+first where 0xa=read1(file;0;WIDTHHDR))}\ndata:{[file;info]\n\t(exec c from info where not t=\" \")xcol(exec t from info;enlist DELIM)0:file}\ndata10:{[file;info]\n\tdata[;info](file;0;1+last 11#where 0xa=read1(file;0;15*WIDTHHDR))}\ninfo0:{[file;onlycols]\n\tcolhdrs:`$nameltrim DELIM vs cleanhdrs first head:read0(file;0;1+last where 0xa=read1(file;0;WIDTHHDR));\n\tloadfmts:(count colhdrs)#\"S\";if[count onlycols;loadfmts[where not colhdrs in onlycols]:\"C\"];\n\tbreaks:where 0xa=read1(file;0;floor(10+READLINES)*WIDTHHDR%count head);\n\tnas:count as:colhdrs xcol(loadfmts;enlist DELIM)0:(file;0;1+last((1+READLINES)&count breaks)#breaks);\n\tinfo:([]c:key flip as;v:value flip as);as:();\n\treserved:key`.q;reserved,:.Q.res;reserved,:`i;\n\tinfo:update res:c in reserved from info;\n\tinfo:update ci:i,t:\"?\",ipa:0b,mdot:0,mw:0,rule:0,gr:0,ndv:0,maybe:0b,empty:0b,j10:0b,j12:0b from info;\n\tinfo:update ci:`s#ci from info;\n\tif[count onlycols;info:update t:\" \",rule:10 from info where not c in onlycols];\n\tinfo:update sdv:{string(distinct x)except`}peach v from info; \n\tinfo:update ndv:count each sdv from info;\n\tinfo:update gr:floor 0.5+100*ndv%nas,mw:{max count each x}peach sdv from info where 0<ndv;\n\tinfo:update t:\"*\",rule:20 from info where mw>.csv.FORCECHARWIDTH; / long values\n\tinfo:update t:\"C \"[.csv.DISCARDEMPTY],rule:30,empty:1b from info where t=\"?\",mw=0; / empty columns\n\tinfo:update dchar:{asc distinct raze x}peach sdv from info where t=\"?\";\n\tinfo:update mdot:{max sum each\".\"=x}peach sdv from info where t=\"?\",{\".\"in x}each dchar;\n\tinfo:update t:\"n\",rule:40 from info where t=\"?\",{any x in\"0123456789\"}each dchar; / vaguely numeric..\n\tinfo:update t:\"I\",rule:50,ipa:1b from info where t=\"n\",mw within 7 15,mdot=3,{all x in\".0123456789\"}each dchar,.csv.cancast[\"I\"]peach sdv; / ip-address\n\tinfo:update t:\"J\",rule:60 from info where t=\"n\",mdot=0,{all x in\"+-0123456789\"}each dchar,.csv.cancast[\"J\"]peach sdv;\n\tinfo:update t:\"I\",rule:70 from info where t=\"J\",mw<12,.csv.cancast[\"I\"]peach sdv;\n\tinfo:update t:\"H\",rule:80 from info where t=\"I\",mw<7,.csv.cancast[\"H\"]peach sdv;\n\tinfo:update t:\"F\",rule:90 from info where t=\"n\",mdot<2,mw>1,.csv.cancast[\"F\"]peach sdv;\n\tinfo:update t:\"E\",rule:100,maybe:1b from info where t=\"F\",mw<9;\n\tinfo:update t:\"M\",rule:110,maybe:1b from info where t in\"nIHEF\",mdot<2,mw within 4 7,.csv.cancast[\"M\"]peach sdv; \n\tinfo:update t:\"D\",rule:120,maybe:1b from info where t in\"nI\",mdot in 0 2,mw within 6 11,.csv.cancast[\"D\"]peach sdv; \n\tinfo:update t:\"V\",rule:130,maybe:1b from info where t=\"I\",mw in 5 6,7<count each dchar,{all x like\"*[0-9][0-5][0-9][0-5][0-9]\"}peach sdv,.csv.cancast[\"V\"]peach sdv; / 235959 12345        \n\tinfo:update t:\"U\",rule:140,maybe:1b from info where t=\"H\",mw in 3 4,7<count each dchar,{all x like\"*[0-9][0-5][0-9]\"}peach sdv,.csv.cancast[\"U\"]peach sdv; /2359\n\tinfo:update t:\"U\",rule:150,maybe:0b from info where t=\"n\",mw in 4 5,mdot=0,{all x like\"*[0-9]:[0-5][0-9]\"}peach sdv,.csv.cancast[\"U\"]peach sdv;\n\tinfo:update t:\"T\",rule:160,maybe:0b from info where t=\"n\",mw within 7 12,mdot<2,{all x like\"*[0-9]:[0-5][0-9]:[0-5][0-9]*\"}peach sdv,.csv.cancast[\"T\"]peach sdv;\n\tinfo:update t:\"V\",rule:170,maybe:0b from info where t=\"T\",mw in 7 8,mdot=0,.csv.cancast[\"V\"]peach sdv;\n\tinfo:update t:\"T\",rule:180,maybe:1b from info where t in\"EF\",mw within 7 10,mdot=1,{all x like\"*[0-9][0-5][0-9][0-5][0-9].*\"}peach sdv,.csv.cancast[\"T\"]peach sdv;\n\tinfo:update t:\"Z\",rule:190,maybe:0b from info where t=\"n\",mw within 11 24,mdot<4,.csv.cancast[\"Z\"]peach sdv;\n\tinfo:update t:\"P\",rule:200,maybe:1b from info where t=\"n\",mw within 12 29,mdot<4,{all x like\"[12]*\"}peach sdv,.csv.cancast[\"P\"]peach sdv;\n\tinfo:update t:\"N\",rule:210,maybe:1b from info where t=\"n\",mw within 3 28,mdot=1,.csv.cancast[\"N\"]peach sdv;\n\tinfo:update t:\"?\",rule:220,maybe:0b from info where t=\"n\"; / reset remaining maybe numeric\n\tinfo:update t:\"C\",rule:230,maybe:0b from info where t=\"?\",mw=1; / char\n\tinfo:update t:\"B\",rule:240,maybe:0b from info where t in\"HC\",mw=1,mdot=0,{$[all x in\"01tTfFyYnN\";(any\"0fFnN\"in x)and any\"1tTyY\"in x;0b]}each dchar; / boolean\n\tinfo:update t:\"B\",rule:250,maybe:1b from info where t in\"HC\",mw=1,mdot=0,{all x in\"01tTfFyYnN\"}each dchar; / boolean\n\tinfo:update t:\"X\",rule:260,maybe:0b from info where t=\"?\",mw=2,{$[all x in\"0123456789abcdefABCDEF\";(any .Q.n in x)and any\"abcdefABCDEF\"in x;0b]}each dchar; /hex\n\tinfo:update t:\"S\",rule:270,maybe:1b from info where t=\"?\",mw<.csv.SYMMAXWIDTH,mw>1,gr<.csv.SYMMAXGR; / symbols (max width permitting)\n\tinfo:update t:\"*\",rule:280,maybe:0b from info where t=\"?\"; / the rest as strings\n\t/ flag those S/* columns which could be encoded to integers (.Q.j10/x10/j12/x12) to avoid symbols\n\tinfo:update j12:1b from info where t in\"S*\",mw<13,{all x in .Q.nA}each dchar;\n\tinfo:update j10:1b from info where t in\"S*\",mw<11,{all x in .Q.b6}each dchar; \n\tselect c,ci,t,maybe,empty,res,j10,j12,ipa,mw,mdot,rule,gr,ndv,dchar from info}\ninfo:info0[;()] / by default don't restrict columns\ninfolike:{[file;pattern] info0[file;{x where x like y}[lower colhdrs[file];pattern]]} / .csv.infolike[file;\"*time\"]\n\n\\d .\n/ DATA:()\nbulkload:{[file;info]\n\tif[not`DATA in system\"v\";'`DATA.not.defined];\n\tif[count DATA;'`DATA.not.empty];\n\tloadhdrs:exec c from info where not t=\" \";loadfmts:exec t from info;\n\t.csv.fs2[{[file;loadhdrs;loadfmts] `DATA insert $[count DATA;flip loadhdrs!(loadfmts;.csv.DELIM)0:file;loadhdrs xcol(loadfmts;enlist .csv.DELIM)0:file]}[file;loadhdrs;loadfmts]];\n\tcount DATA}\n@[.:;\"\\\\l csvutil.custom.q\";::]; / save your custom settings in csvutil.custom.q to override those set at the beginning of the file \n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-q</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/q/q.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"q\",function(config){\n  var indentUnit=config.indentUnit,\n      curPunc,\n      keywords=buildRE([\"abs\",\"acos\",\"aj\",\"aj0\",\"all\",\"and\",\"any\",\"asc\",\"asin\",\"asof\",\"atan\",\"attr\",\"avg\",\"avgs\",\"bin\",\"by\",\"ceiling\",\"cols\",\"cor\",\"cos\",\"count\",\"cov\",\"cross\",\"csv\",\"cut\",\"delete\",\"deltas\",\"desc\",\"dev\",\"differ\",\"distinct\",\"div\",\"do\",\"each\",\"ej\",\"enlist\",\"eval\",\"except\",\"exec\",\"exit\",\"exp\",\"fby\",\"fills\",\"first\",\"fkeys\",\"flip\",\"floor\",\"from\",\"get\",\"getenv\",\"group\",\"gtime\",\"hclose\",\"hcount\",\"hdel\",\"hopen\",\"hsym\",\"iasc\",\"idesc\",\"if\",\"ij\",\"in\",\"insert\",\"inter\",\"inv\",\"key\",\"keys\",\"last\",\"like\",\"list\",\"lj\",\"load\",\"log\",\"lower\",\"lsq\",\"ltime\",\"ltrim\",\"mavg\",\"max\",\"maxs\",\"mcount\",\"md5\",\"mdev\",\"med\",\"meta\",\"min\",\"mins\",\"mmax\",\"mmin\",\"mmu\",\"mod\",\"msum\",\"neg\",\"next\",\"not\",\"null\",\"or\",\"over\",\"parse\",\"peach\",\"pj\",\"plist\",\"prd\",\"prds\",\"prev\",\"prior\",\"rand\",\"rank\",\"ratios\",\"raze\",\"read0\",\"read1\",\"reciprocal\",\"reverse\",\"rload\",\"rotate\",\"rsave\",\"rtrim\",\"save\",\"scan\",\"select\",\"set\",\"setenv\",\"show\",\"signum\",\"sin\",\"sqrt\",\"ss\",\"ssr\",\"string\",\"sublist\",\"sum\",\"sums\",\"sv\",\"system\",\"tables\",\"tan\",\"til\",\"trim\",\"txf\",\"type\",\"uj\",\"ungroup\",\"union\",\"update\",\"upper\",\"upsert\",\"value\",\"var\",\"view\",\"views\",\"vs\",\"wavg\",\"where\",\"where\",\"while\",\"within\",\"wj\",\"wj1\",\"wsum\",\"xasc\",\"xbar\",\"xcol\",\"xcols\",\"xdesc\",\"xexp\",\"xgroup\",\"xkey\",\"xlog\",\"xprev\",\"xrank\"]),\n      E=/[|/&^!+:\\\\\\-*%$=~#;@><,?_\\'\\\"\\[\\(\\]\\)\\s{}]/;\n  function buildRE(w){return new RegExp(\"^(\"+w.join(\"|\")+\")$\");}\n  function tokenBase(stream,state){\n    var sol=stream.sol(),c=stream.next();\n    curPunc=null;\n    if(sol)\n      if(c==\"/\")\n        return(state.tokenize=tokenLineComment)(stream,state);\n      else if(c==\"\\\\\"){\n        if(stream.eol()||/\\s/.test(stream.peek()))\n          return stream.skipToEnd(),/^\\\\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,\"comment\";\n        else\n          return state.tokenize=tokenBase,\"builtin\";\n      }\n    if(/\\s/.test(c))\n      return stream.peek()==\"/\"?(stream.skipToEnd(),\"comment\"):\"whitespace\";\n    if(c=='\"')\n      return(state.tokenize=tokenString)(stream,state);\n    if(c=='`')\n      return stream.eatWhile(/[A-Z|a-z|\\d|_|:|\\/|\\.]/),\"symbol\";\n    if((\".\"==c&&/\\d/.test(stream.peek()))||/\\d/.test(c)){\n      var t=null;\n      stream.backUp(1);\n      if(stream.match(/^\\d{4}\\.\\d{2}(m|\\.\\d{2}([D|T](\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)?)?)/)\n      || stream.match(/^\\d+D(\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)/)\n      || stream.match(/^\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?/)\n      || stream.match(/^\\d+[ptuv]{1}/))\n        t=\"temporal\";\n      else if(stream.match(/^0[NwW]{1}/)\n      || stream.match(/^0x[\\d|a-f|A-F]*/)\n      || stream.match(/^[0|1]+[b]{1}/)\n      || stream.match(/^\\d+[chijn]{1}/)\n      || stream.match(/-?\\d*(\\.\\d*)?(e[+\\-]?\\d+)?(e|f)?/))\n        t=\"number\";\n      return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),\"error\");\n    }\n    if(/[A-Z|a-z]|\\./.test(c))\n      return stream.eatWhile(/[A-Z|a-z|\\.|_|\\d]/),keywords.test(stream.current())?\"keyword\":\"variable\";\n    if(/[|/&^!+:\\\\\\-*%$=~#;@><\\.,?_\\']/.test(c))\n      return null;\n    if(/[{}\\(\\[\\]\\)]/.test(c))\n      return null;\n    return\"error\";\n  }\n  function tokenLineComment(stream,state){\n    return stream.skipToEnd(),/\\/\\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),\"comment\";\n  }\n  function tokenBlockComment(stream,state){\n    var f=stream.sol()&&stream.peek()==\"\\\\\";\n    stream.skipToEnd();\n    if(f&&/^\\\\\\s*$/.test(stream.current()))\n      state.tokenize=tokenBase;\n    return\"comment\";\n  }\n  function tokenCommentToEOF(stream){return stream.skipToEnd(),\"comment\";}\n  function tokenString(stream,state){\n    var escaped=false,next,end=false;\n    while((next=stream.next())){\n      if(next==\"\\\"\"&&!escaped){end=true;break;}\n      escaped=!escaped&&next==\"\\\\\";\n    }\n    if(end)state.tokenize=tokenBase;\n    return\"string\";\n  }\n  function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};}\n  function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;}\n  return{\n    startState:function(){\n      return{tokenize:tokenBase,\n             context:null,\n             indent:0,\n             col:0};\n    },\n    token:function(stream,state){\n      if(stream.sol()){\n        if(state.context&&state.context.align==null)\n          state.context.align=false;\n        state.indent=stream.indentation();\n      }\n      //if (stream.eatSpace()) return null;\n      var style=state.tokenize(stream,state);\n      if(style!=\"comment\"&&state.context&&state.context.align==null&&state.context.type!=\"pattern\"){\n        state.context.align=true;\n      }\n      if(curPunc==\"(\")pushContext(state,\")\",stream.column());\n      else if(curPunc==\"[\")pushContext(state,\"]\",stream.column());\n      else if(curPunc==\"{\")pushContext(state,\"}\",stream.column());\n      else if(/[\\]\\}\\)]/.test(curPunc)){\n        while(state.context&&state.context.type==\"pattern\")popContext(state);\n        if(state.context&&curPunc==state.context.type)popContext(state);\n      }\n      else if(curPunc==\".\"&&state.context&&state.context.type==\"pattern\")popContext(state);\n      else if(/atom|string|variable/.test(style)&&state.context){\n        if(/[\\}\\]]/.test(state.context.type))\n          pushContext(state,\"pattern\",stream.column());\n        else if(state.context.type==\"pattern\"&&!state.context.align){\n          state.context.align=true;\n          state.context.col=stream.column();\n        }\n      }\n      return style;\n    },\n    indent:function(state,textAfter){\n      var firstChar=textAfter&&textAfter.charAt(0);\n      var context=state.context;\n      if(/[\\]\\}]/.test(firstChar))\n        while (context&&context.type==\"pattern\")context=context.prev;\n      var closing=context&&firstChar==context.type;\n      if(!context)\n        return 0;\n      else if(context.type==\"pattern\")\n        return context.col;\n      else if(context.align)\n        return context.col+(closing?0:1);\n      else\n        return context.indent+(closing?0:indentUnit);\n    }\n  };\n});\nCodeMirror.defineMIME(\"text/x-q\",\"q\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/r/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: R mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"r.js\"></script>\n<style>\n      .CodeMirror { border-top: 1px solid silver; border-bottom: 1px solid silver; }\n      .cm-s-default span.cm-semi { color: blue; font-weight: bold; }\n      .cm-s-default span.cm-dollar { color: orange; font-weight: bold; }\n      .cm-s-default span.cm-arrow { color: brown; }\n      .cm-s-default span.cm-arg-is { color: brown; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">R</a>\n  </ul>\n</div>\n\n<article>\n<h2>R mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# Code from http://www.mayin.org/ajayshah/KB/R/\n\n# FIRST LEARN ABOUT LISTS --\nX = list(height=5.4, weight=54)\nprint(\"Use default printing --\")\nprint(X)\nprint(\"Accessing individual elements --\")\ncat(\"Your height is \", X$height, \" and your weight is \", X$weight, \"\\n\")\n\n# FUNCTIONS --\nsquare <- function(x) {\n  return(x*x)\n}\ncat(\"The square of 3 is \", square(3), \"\\n\")\n\n                 # default value of the arg is set to 5.\ncube <- function(x=5) {\n  return(x*x*x);\n}\ncat(\"Calling cube with 2 : \", cube(2), \"\\n\")    # will give 2^3\ncat(\"Calling cube        : \", cube(), \"\\n\")     # will default to 5^3.\n\n# LEARN ABOUT FUNCTIONS THAT RETURN MULTIPLE OBJECTS --\npowers <- function(x) {\n  parcel = list(x2=x*x, x3=x*x*x, x4=x*x*x*x);\n  return(parcel);\n}\n\nX = powers(3);\nprint(\"Showing powers of 3 --\"); print(X);\n\n# WRITING THIS COMPACTLY (4 lines instead of 7)\n\npowerful <- function(x) {\n  return(list(x2=x*x, x3=x*x*x, x4=x*x*x*x));\n}\nprint(\"Showing powers of 3 --\"); print(powerful(3));\n\n# In R, the last expression in a function is, by default, what is\n# returned. So you could equally just say:\npowerful <- function(x) {list(x2=x*x, x3=x*x*x, x4=x*x*x*x)}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rsrc</code>.</p>\n\n    <p>Development of the CodeMirror R mode was kindly sponsored\n    by <a href=\"https://twitter.com/ubalo\">Ubalo</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/r/r.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"r\", function(config) {\n  function wordObj(str) {\n    var words = str.split(\" \"), res = {};\n    for (var i = 0; i < words.length; ++i) res[words[i]] = true;\n    return res;\n  }\n  var atoms = wordObj(\"NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_\");\n  var builtins = wordObj(\"list quote bquote eval return call parse deparse\");\n  var keywords = wordObj(\"if else repeat while function for in next break\");\n  var blockkeywords = wordObj(\"if else repeat while function for\");\n  var opChars = /[+\\-*\\/^<>=!&|~$:]/;\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    var ch = stream.next();\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"0\" && stream.eat(\"x\")) {\n      stream.eatWhile(/[\\da-f]/i);\n      return \"number\";\n    } else if (ch == \".\" && stream.eat(/\\d/)) {\n      stream.match(/\\d*(?:e[+\\-]?\\d+)?/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/\\d*(?:\\.\\d+)?(?:e[+\\-]\\d+)?L?/);\n      return \"number\";\n    } else if (ch == \"'\" || ch == '\"') {\n      state.tokenize = tokenString(ch);\n      return \"string\";\n    } else if (ch == \".\" && stream.match(/.[.\\d]+/)) {\n      return \"keyword\";\n    } else if (/[\\w\\.]/.test(ch) && ch != \"_\") {\n      stream.eatWhile(/[\\w\\.]/);\n      var word = stream.current();\n      if (atoms.propertyIsEnumerable(word)) return \"atom\";\n      if (keywords.propertyIsEnumerable(word)) {\n        // Block keywords start new blocks, except 'else if', which only starts\n        // one new block for the 'if', no block for the 'else'.\n        if (blockkeywords.propertyIsEnumerable(word) &&\n            !stream.match(/\\s*if(\\s+|$)/, false))\n          curPunc = \"block\";\n        return \"keyword\";\n      }\n      if (builtins.propertyIsEnumerable(word)) return \"builtin\";\n      return \"variable\";\n    } else if (ch == \"%\") {\n      if (stream.skipTo(\"%\")) stream.next();\n      return \"variable-2\";\n    } else if (ch == \"<\" && stream.eat(\"-\")) {\n      return \"arrow\";\n    } else if (ch == \"=\" && state.ctx.argList) {\n      return \"arg-is\";\n    } else if (opChars.test(ch)) {\n      if (ch == \"$\") return \"dollar\";\n      stream.eatWhile(opChars);\n      return \"operator\";\n    } else if (/[\\(\\){}\\[\\];]/.test(ch)) {\n      curPunc = ch;\n      if (ch == \";\") return \"semi\";\n      return null;\n    } else {\n      return null;\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      if (stream.eat(\"\\\\\")) {\n        var ch = stream.next();\n        if (ch == \"x\") stream.match(/^[a-f0-9]{2}/i);\n        else if ((ch == \"u\" || ch == \"U\") && stream.eat(\"{\") && stream.skipTo(\"}\")) stream.next();\n        else if (ch == \"u\") stream.match(/^[a-f0-9]{4}/i);\n        else if (ch == \"U\") stream.match(/^[a-f0-9]{8}/i);\n        else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);\n        return \"string-2\";\n      } else {\n        var next;\n        while ((next = stream.next()) != null) {\n          if (next == quote) { state.tokenize = tokenBase; break; }\n          if (next == \"\\\\\") { stream.backUp(1); break; }\n        }\n        return \"string\";\n      }\n    };\n  }\n\n  function push(state, type, stream) {\n    state.ctx = {type: type,\n                 indent: state.indent,\n                 align: null,\n                 column: stream.column(),\n                 prev: state.ctx};\n  }\n  function pop(state) {\n    state.indent = state.ctx.indent;\n    state.ctx = state.ctx.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              ctx: {type: \"top\",\n                    indent: -config.indentUnit,\n                    align: false},\n              indent: 0,\n              afterIdent: false};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.ctx.align == null) state.ctx.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (style != \"comment\" && state.ctx.align == null) state.ctx.align = true;\n\n      var ctype = state.ctx.type;\n      if ((curPunc == \";\" || curPunc == \"{\" || curPunc == \"}\") && ctype == \"block\") pop(state);\n      if (curPunc == \"{\") push(state, \"}\", stream);\n      else if (curPunc == \"(\") {\n        push(state, \")\", stream);\n        if (state.afterIdent) state.ctx.argList = true;\n      }\n      else if (curPunc == \"[\") push(state, \"]\", stream);\n      else if (curPunc == \"block\") push(state, \"block\", stream);\n      else if (curPunc == ctype) pop(state);\n      state.afterIdent = style == \"variable\" || style == \"keyword\";\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,\n          closing = firstChar == ctx.type;\n      if (ctx.type == \"block\") return ctx.indent + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rsrc\", \"r\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rpm/changes/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: RPM changes mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../../lib/codemirror.css\">\n    <script src=\"../../../lib/codemirror.js\"></script>\n    <script src=\"changes.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../../doc/docs.css\">\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../../index.html\">Home</a>\n    <li><a href=\"../../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">RPM changes</a>\n  </ul>\n</div>\n\n<article>\n<h2>RPM changes mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n-------------------------------------------------------------------\nTue Oct 18 13:58:40 UTC 2011 - misterx@example.com\n\n- Update to r60.3\n- Fixes bug in the reflect package\n  * disallow Interface method on Value obtained via unexported name\n\n-------------------------------------------------------------------\nThu Oct  6 08:14:24 UTC 2011 - misterx@example.com\n\n- Update to r60.2\n- Fixes memory leak in certain map types\n\n-------------------------------------------------------------------\nWed Oct  5 14:34:10 UTC 2011 - misterx@example.com\n\n- Tweaks for gdb debugging\n- go.spec changes:\n  - move %go_arch definition to %prep section\n  - pass correct location of go specific gdb pretty printer and\n    functions to cpp as HOST_EXTRA_CFLAGS macro\n  - install go gdb functions & printer\n- gdb-printer.patch\n  - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go\n    gdb functions and pretty printer\n</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"changes\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rpm-changes</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rpm/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: RPM changes mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"rpm.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../doc/docs.css\">\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">RPM</a>\n  </ul>\n</div>\n\n<article>\n<h2>RPM changes mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n-------------------------------------------------------------------\nTue Oct 18 13:58:40 UTC 2011 - misterx@example.com\n\n- Update to r60.3\n- Fixes bug in the reflect package\n  * disallow Interface method on Value obtained via unexported name\n\n-------------------------------------------------------------------\nThu Oct  6 08:14:24 UTC 2011 - misterx@example.com\n\n- Update to r60.2\n- Fixes memory leak in certain map types\n\n-------------------------------------------------------------------\nWed Oct  5 14:34:10 UTC 2011 - misterx@example.com\n\n- Tweaks for gdb debugging\n- go.spec changes:\n  - move %go_arch definition to %prep section\n  - pass correct location of go specific gdb pretty printer and\n    functions to cpp as HOST_EXTRA_CFLAGS macro\n  - install go gdb functions & printer\n- gdb-printer.patch\n  - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go\n    gdb functions and pretty printer\n</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"rpm-changes\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n<h2>RPM spec mode</h2>\n    \n    <div><textarea id=\"code2\" name=\"code2\">\n#\n# spec file for package minidlna\n#\n# Copyright (c) 2011, Sascha Peilicke <saschpe@gmx.de>\n#\n# All modifications and additions to the file contributed by third parties\n# remain the property of their copyright owners, unless otherwise agreed\n# upon. The license for this file, and modifications and additions to the\n# file, is the same license as for the pristine package itself (unless the\n# license for the pristine package is not an Open Source License, in which\n# case the license is the MIT License). An \"Open Source License\" is a\n# license that conforms to the Open Source Definition (Version 1.9)\n# published by the Open Source Initiative.\n\n\nName:           libupnp6\nVersion:        1.6.13\nRelease:        0\nSummary:        Portable Universal Plug and Play (UPnP) SDK\nGroup:          System/Libraries\nLicense:        BSD-3-Clause\nUrl:            http://sourceforge.net/projects/pupnp/\nSource0:        http://downloads.sourceforge.net/pupnp/libupnp-%{version}.tar.bz2\nBuildRoot:      %{_tmppath}/%{name}-%{version}-build\n\n%description\nThe portable Universal Plug and Play (UPnP) SDK provides support for building\nUPnP-compliant control points, devices, and bridges on several operating\nsystems.\n\n%package -n libupnp-devel\nSummary:        Portable Universal Plug and Play (UPnP) SDK\nGroup:          Development/Libraries/C and C++\nProvides:       pkgconfig(libupnp)\nRequires:       %{name} = %{version}\n\n%description -n libupnp-devel\nThe portable Universal Plug and Play (UPnP) SDK provides support for building\nUPnP-compliant control points, devices, and bridges on several operating\nsystems.\n\n%prep\n%setup -n libupnp-%{version}\n\n%build\n%configure --disable-static\nmake %{?_smp_mflags}\n\n%install\n%makeinstall\nfind %{buildroot} -type f -name '*.la' -exec rm -f {} ';'\n\n%post -p /sbin/ldconfig\n\n%postun -p /sbin/ldconfig\n\n%files\n%defattr(-,root,root,-)\n%doc ChangeLog NEWS README TODO\n%{_libdir}/libixml.so.*\n%{_libdir}/libthreadutil.so.*\n%{_libdir}/libupnp.so.*\n\n%files -n libupnp-devel\n%defattr(-,root,root,-)\n%{_libdir}/pkgconfig/libupnp.pc\n%{_libdir}/libixml.so\n%{_libdir}/libthreadutil.so\n%{_libdir}/libupnp.so\n%{_includedir}/upnp/\n\n%changelog</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code2\"), {\n        mode: {name: \"rpm-spec\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rpm-spec</code>, <code>text/x-rpm-changes</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rpm/rpm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rpm-changes\", function() {\n  var headerSeperator = /^-+$/;\n  var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\\d{1,2} \\d{2}:\\d{2}(:\\d{2})? [A-Z]{3,4} \\d{4} - /;\n  var simpleEmail = /^[\\w+.-]+@[\\w.-]+/;\n\n  return {\n    token: function(stream) {\n      if (stream.sol()) {\n        if (stream.match(headerSeperator)) { return 'tag'; }\n        if (stream.match(headerLine)) { return 'tag'; }\n      }\n      if (stream.match(simpleEmail)) { return 'string'; }\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-changes\", \"rpm-changes\");\n\n// Quick and dirty spec file highlighting\n\nCodeMirror.defineMode(\"rpm-spec\", function() {\n  var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;\n\n  var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\\(\\w+\\))?|Obsoletes|Conflicts|Recommends|Source\\d*|Patch\\d*|ExclusiveArch|NoSource|Supplements):/;\n  var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pre|post|triggerin|triggerun|pretrans|posttrans|verifyscript|check|triggerpostun|triggerprein|trigger)/;\n  var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros\n  var control_flow_simple = /^%(else|endif)/; // rpm control flow macros\n  var operators = /^(\\!|\\?|\\<\\=|\\<|\\>\\=|\\>|\\=\\=|\\&\\&|\\|\\|)/; // operators in control flow macros\n\n  return {\n    startState: function () {\n        return {\n          controlFlow: false,\n          macroParameters: false,\n          section: false\n        };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      if (ch == \"#\") { stream.skipToEnd(); return \"comment\"; }\n\n      if (stream.sol()) {\n        if (stream.match(preamble)) { return \"preamble\"; }\n        if (stream.match(section)) { return \"section\"; }\n      }\n\n      if (stream.match(/^\\$\\w+/)) { return \"def\"; } // Variables like '$RPM_BUILD_ROOT'\n      if (stream.match(/^\\$\\{\\w+\\}/)) { return \"def\"; } // Variables like '${RPM_BUILD_ROOT}'\n\n      if (stream.match(control_flow_simple)) { return \"keyword\"; }\n      if (stream.match(control_flow_complex)) {\n        state.controlFlow = true;\n        return \"keyword\";\n      }\n      if (state.controlFlow) {\n        if (stream.match(operators)) { return \"operator\"; }\n        if (stream.match(/^(\\d+)/)) { return \"number\"; }\n        if (stream.eol()) { state.controlFlow = false; }\n      }\n\n      if (stream.match(arch)) { return \"number\"; }\n\n      // Macros like '%make_install' or '%attr(0775,root,root)'\n      if (stream.match(/^%[\\w]+/)) {\n        if (stream.match(/^\\(/)) { state.macroParameters = true; }\n        return \"macro\";\n      }\n      if (state.macroParameters) {\n        if (stream.match(/^\\d+/)) { return \"number\";}\n        if (stream.match(/^\\)/)) {\n          state.macroParameters = false;\n          return \"macro\";\n        }\n      }\n      if (stream.match(/^%\\{\\??[\\w \\-]+\\}/)) { return \"macro\"; } // Macros like '%{defined fedora}'\n\n      //TODO: Include bash script sub-parser (CodeMirror supports that)\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-spec\", \"rpm-spec\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rst/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: reStructuredText mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"rst.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">reStructuredText</a>\n  </ul>\n</div>\n\n<article>\n<h2>reStructuredText mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n.. This is an excerpt from Sphinx documentation: http://sphinx.pocoo.org/_sources/rest.txt\n\n.. highlightlang:: rest\n\n.. _rst-primer:\n\nreStructuredText Primer\n=======================\n\nThis section is a brief introduction to reStructuredText (reST) concepts and\nsyntax, intended to provide authors with enough information to author documents\nproductively.  Since reST was designed to be a simple, unobtrusive markup\nlanguage, this will not take too long.\n\n.. seealso::\n\n   The authoritative `reStructuredText User Documentation\n   &lt;http://docutils.sourceforge.net/rst.html&gt;`_.  The \"ref\" links in this\n   document link to the description of the individual constructs in the reST\n   reference.\n\n\nParagraphs\n----------\n\nThe paragraph (:duref:`ref &lt;paragraphs&gt;`) is the most basic block in a reST\ndocument.  Paragraphs are simply chunks of text separated by one or more blank\nlines.  As in Python, indentation is significant in reST, so all lines of the\nsame paragraph must be left-aligned to the same level of indentation.\n\n\n.. _inlinemarkup:\n\nInline markup\n-------------\n\nThe standard reST inline markup is quite simple: use\n\n* one asterisk: ``*text*`` for emphasis (italics),\n* two asterisks: ``**text**`` for strong emphasis (boldface), and\n* backquotes: ````text```` for code samples.\n\nIf asterisks or backquotes appear in running text and could be confused with\ninline markup delimiters, they have to be escaped with a backslash.\n\nBe aware of some restrictions of this markup:\n\n* it may not be nested,\n* content may not start or end with whitespace: ``* text*`` is wrong,\n* it must be separated from surrounding text by non-word characters.  Use a\n  backslash escaped space to work around that: ``thisis\\ *one*\\ word``.\n\nThese restrictions may be lifted in future versions of the docutils.\n\nreST also allows for custom \"interpreted text roles\"', which signify that the\nenclosed text should be interpreted in a specific way.  Sphinx uses this to\nprovide semantic markup and cross-referencing of identifiers, as described in\nthe appropriate section.  The general syntax is ``:rolename:`content```.\n\nStandard reST provides the following roles:\n\n* :durole:`emphasis` -- alternate spelling for ``*emphasis*``\n* :durole:`strong` -- alternate spelling for ``**strong**``\n* :durole:`literal` -- alternate spelling for ````literal````\n* :durole:`subscript` -- subscript text\n* :durole:`superscript` -- superscript text\n* :durole:`title-reference` -- for titles of books, periodicals, and other\n  materials\n\nSee :ref:`inline-markup` for roles added by Sphinx.\n\n\nLists and Quote-like blocks\n---------------------------\n\nList markup (:duref:`ref &lt;bullet-lists&gt;`) is natural: just place an asterisk at\nthe start of a paragraph and indent properly.  The same goes for numbered lists;\nthey can also be autonumbered using a ``#`` sign::\n\n   * This is a bulleted list.\n   * It has two items, the second\n     item uses two lines.\n\n   1. This is a numbered list.\n   2. It has two items too.\n\n   #. This is a numbered list.\n   #. It has two items too.\n\n\nNested lists are possible, but be aware that they must be separated from the\nparent list items by blank lines::\n\n   * this is\n   * a list\n\n     * with a nested list\n     * and some subitems\n\n   * and here the parent list continues\n\nDefinition lists (:duref:`ref &lt;definition-lists&gt;`) are created as follows::\n\n   term (up to a line of text)\n      Definition of the term, which must be indented\n\n      and can even consist of multiple paragraphs\n\n   next term\n      Description.\n\nNote that the term cannot have more than one line of text.\n\nQuoted paragraphs (:duref:`ref &lt;block-quotes&gt;`) are created by just indenting\nthem more than the surrounding paragraphs.\n\nLine blocks (:duref:`ref &lt;line-blocks&gt;`) are a way of preserving line breaks::\n\n   | These lines are\n   | broken exactly like in\n   | the source file.\n\nThere are also several more special blocks available:\n\n* field lists (:duref:`ref &lt;field-lists&gt;`)\n* option lists (:duref:`ref &lt;option-lists&gt;`)\n* quoted literal blocks (:duref:`ref &lt;quoted-literal-blocks&gt;`)\n* doctest blocks (:duref:`ref &lt;doctest-blocks&gt;`)\n\n\nSource Code\n-----------\n\nLiteral code blocks (:duref:`ref &lt;literal-blocks&gt;`) are introduced by ending a\nparagraph with the special marker ``::``.  The literal block must be indented\n(and, like all paragraphs, separated from the surrounding ones by blank lines)::\n\n   This is a normal text paragraph. The next paragraph is a code sample::\n\n      It is not processed in any way, except\n      that the indentation is removed.\n\n      It can span multiple lines.\n\n   This is a normal text paragraph again.\n\nThe handling of the ``::`` marker is smart:\n\n* If it occurs as a paragraph of its own, that paragraph is completely left\n  out of the document.\n* If it is preceded by whitespace, the marker is removed.\n* If it is preceded by non-whitespace, the marker is replaced by a single\n  colon.\n\nThat way, the second sentence in the above example's first paragraph would be\nrendered as \"The next paragraph is a code sample:\".\n\n\n.. _rst-tables:\n\nTables\n------\n\nTwo forms of tables are supported.  For *grid tables* (:duref:`ref\n&lt;grid-tables&gt;`), you have to \"paint\" the cell grid yourself.  They look like\nthis::\n\n   +------------------------+------------+----------+----------+\n   | Header row, column 1   | Header 2   | Header 3 | Header 4 |\n   | (header rows optional) |            |          |          |\n   +========================+============+==========+==========+\n   | body row 1, column 1   | column 2   | column 3 | column 4 |\n   +------------------------+------------+----------+----------+\n   | body row 2             | ...        | ...      |          |\n   +------------------------+------------+----------+----------+\n\n*Simple tables* (:duref:`ref &lt;simple-tables&gt;`) are easier to write, but\nlimited: they must contain more than one row, and the first column cannot\ncontain multiple lines.  They look like this::\n\n   =====  =====  =======\n   A      B      A and B\n   =====  =====  =======\n   False  False  False\n   True   False  False\n   False  True   False\n   True   True   True\n   =====  =====  =======\n\n\nHyperlinks\n----------\n\nExternal links\n^^^^^^^^^^^^^^\n\nUse ```Link text &lt;http://example.com/&gt;`_`` for inline web links.  If the link\ntext should be the web address, you don't need special markup at all, the parser\nfinds links and mail addresses in ordinary text.\n\nYou can also separate the link and the target definition (:duref:`ref\n&lt;hyperlink-targets&gt;`), like this::\n\n   This is a paragraph that contains `a link`_.\n\n   .. _a link: http://example.com/\n\n\nInternal links\n^^^^^^^^^^^^^^\n\nInternal linking is done via a special reST role provided by Sphinx, see the\nsection on specific markup, :ref:`ref-role`.\n\n\nSections\n--------\n\nSection headers (:duref:`ref &lt;sections&gt;`) are created by underlining (and\noptionally overlining) the section title with a punctuation character, at least\nas long as the text::\n\n   =================\n   This is a heading\n   =================\n\nNormally, there are no heading levels assigned to certain characters as the\nstructure is determined from the succession of headings.  However, for the\nPython documentation, this convention is used which you may follow:\n\n* ``#`` with overline, for parts\n* ``*`` with overline, for chapters\n* ``=``, for sections\n* ``-``, for subsections\n* ``^``, for subsubsections\n* ``\"``, for paragraphs\n\nOf course, you are free to use your own marker characters (see the reST\ndocumentation), and use a deeper nesting level, but keep in mind that most\ntarget formats (HTML, LaTeX) have a limited supported nesting depth.\n\n\nExplicit Markup\n---------------\n\n\"Explicit markup\" (:duref:`ref &lt;explicit-markup-blocks&gt;`) is used in reST for\nmost constructs that need special handling, such as footnotes,\nspecially-highlighted paragraphs, comments, and generic directives.\n\nAn explicit markup block begins with a line starting with ``..`` followed by\nwhitespace and is terminated by the next paragraph at the same level of\nindentation.  (There needs to be a blank line between explicit markup and normal\nparagraphs.  This may all sound a bit complicated, but it is intuitive enough\nwhen you write it.)\n\n\n.. _directives:\n\nDirectives\n----------\n\nA directive (:duref:`ref &lt;directives&gt;`) is a generic block of explicit markup.\nBesides roles, it is one of the extension mechanisms of reST, and Sphinx makes\nheavy use of it.\n\nDocutils supports the following directives:\n\n* Admonitions: :dudir:`attention`, :dudir:`caution`, :dudir:`danger`,\n  :dudir:`error`, :dudir:`hint`, :dudir:`important`, :dudir:`note`,\n  :dudir:`tip`, :dudir:`warning` and the generic :dudir:`admonition`.\n  (Most themes style only \"note\" and \"warning\" specially.)\n\n* Images:\n\n  - :dudir:`image` (see also Images_ below)\n  - :dudir:`figure` (an image with caption and optional legend)\n\n* Additional body elements:\n\n  - :dudir:`contents` (a local, i.e. for the current file only, table of\n    contents)\n  - :dudir:`container` (a container with a custom class, useful to generate an\n    outer ``&lt;div&gt;`` in HTML)\n  - :dudir:`rubric` (a heading without relation to the document sectioning)\n  - :dudir:`topic`, :dudir:`sidebar` (special highlighted body elements)\n  - :dudir:`parsed-literal` (literal block that supports inline markup)\n  - :dudir:`epigraph` (a block quote with optional attribution line)\n  - :dudir:`highlights`, :dudir:`pull-quote` (block quotes with their own\n    class attribute)\n  - :dudir:`compound` (a compound paragraph)\n\n* Special tables:\n\n  - :dudir:`table` (a table with title)\n  - :dudir:`csv-table` (a table generated from comma-separated values)\n  - :dudir:`list-table` (a table generated from a list of lists)\n\n* Special directives:\n\n  - :dudir:`raw` (include raw target-format markup)\n  - :dudir:`include` (include reStructuredText from another file)\n    -- in Sphinx, when given an absolute include file path, this directive takes\n    it as relative to the source directory\n  - :dudir:`class` (assign a class attribute to the next element) [1]_\n\n* HTML specifics:\n\n  - :dudir:`meta` (generation of HTML ``&lt;meta&gt;`` tags)\n  - :dudir:`title` (override document title)\n\n* Influencing markup:\n\n  - :dudir:`default-role` (set a new default role)\n  - :dudir:`role` (create a new role)\n\n  Since these are only per-file, better use Sphinx' facilities for setting the\n  :confval:`default_role`.\n\nDo *not* use the directives :dudir:`sectnum`, :dudir:`header` and\n:dudir:`footer`.\n\nDirectives added by Sphinx are described in :ref:`sphinxmarkup`.\n\nBasically, a directive consists of a name, arguments, options and content. (Keep\nthis terminology in mind, it is used in the next chapter describing custom\ndirectives.)  Looking at this example, ::\n\n   .. function:: foo(x)\n                 foo(y, z)\n      :module: some.module.name\n\n      Return a line of text input from the user.\n\n``function`` is the directive name.  It is given two arguments here, the\nremainder of the first line and the second line, as well as one option\n``module`` (as you can see, options are given in the lines immediately following\nthe arguments and indicated by the colons).  Options must be indented to the\nsame level as the directive content.\n\nThe directive content follows after a blank line and is indented relative to the\ndirective start.\n\n\nImages\n------\n\nreST supports an image directive (:dudir:`ref &lt;image&gt;`), used like so::\n\n   .. image:: gnu.png\n      (options)\n\nWhen used within Sphinx, the file name given (here ``gnu.png``) must either be\nrelative to the source file, or absolute which means that they are relative to\nthe top source directory.  For example, the file ``sketch/spam.rst`` could refer\nto the image ``images/spam.png`` as ``../images/spam.png`` or\n``/images/spam.png``.\n\nSphinx will automatically copy image files over to a subdirectory of the output\ndirectory on building (e.g. the ``_static`` directory for HTML output.)\n\nInterpretation of image size options (``width`` and ``height``) is as follows:\nif the size has no unit or the unit is pixels, the given size will only be\nrespected for output channels that support pixels (i.e. not in LaTeX output).\nOther units (like ``pt`` for points) will be used for HTML and LaTeX output.\n\nSphinx extends the standard docutils behavior by allowing an asterisk for the\nextension::\n\n   .. image:: gnu.*\n\nSphinx then searches for all images matching the provided pattern and determines\ntheir type.  Each builder then chooses the best image out of these candidates.\nFor instance, if the file name ``gnu.*`` was given and two files :file:`gnu.pdf`\nand :file:`gnu.png` existed in the source tree, the LaTeX builder would choose\nthe former, while the HTML builder would prefer the latter.\n\n.. versionchanged:: 0.4\n   Added the support for file names ending in an asterisk.\n\n.. versionchanged:: 0.6\n   Image paths can now be absolute.\n\n\nFootnotes\n---------\n\nFor footnotes (:duref:`ref &lt;footnotes&gt;`), use ``[#name]_`` to mark the footnote\nlocation, and add the footnote body at the bottom of the document after a\n\"Footnotes\" rubric heading, like so::\n\n   Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_\n\n   .. rubric:: Footnotes\n\n   .. [#f1] Text of the first footnote.\n   .. [#f2] Text of the second footnote.\n\nYou can also explicitly number the footnotes (``[1]_``) or use auto-numbered\nfootnotes without names (``[#]_``).\n\n\nCitations\n---------\n\nStandard reST citations (:duref:`ref &lt;citations&gt;`) are supported, with the\nadditional feature that they are \"global\", i.e. all citations can be referenced\nfrom all files.  Use them like so::\n\n   Lorem ipsum [Ref]_ dolor sit amet.\n\n   .. [Ref] Book or article reference, URL or whatever.\n\nCitation usage is similar to footnote usage, but with a label that is not\nnumeric or begins with ``#``.\n\n\nSubstitutions\n-------------\n\nreST supports \"substitutions\" (:duref:`ref &lt;substitution-definitions&gt;`), which\nare pieces of text and/or markup referred to in the text by ``|name|``.  They\nare defined like footnotes with explicit markup blocks, like this::\n\n   .. |name| replace:: replacement *text*\n\nor this::\n\n   .. |caution| image:: warning.png\n                :alt: Warning!\n\nSee the :duref:`reST reference for substitutions &lt;substitution-definitions&gt;`\nfor details.\n\nIf you want to use some substitutions for all documents, put them into\n:confval:`rst_prolog` or put them into a separate file and include it into all\ndocuments you want to use them in, using the :rst:dir:`include` directive.  (Be\nsure to give the include file a file name extension differing from that of other\nsource files, to avoid Sphinx finding it as a standalone document.)\n\nSphinx defines some default substitutions, see :ref:`default-substitutions`.\n\n\nComments\n--------\n\nEvery explicit markup block which isn't a valid markup construct (like the\nfootnotes above) is regarded as a comment (:duref:`ref &lt;comments&gt;`).  For\nexample::\n\n   .. This is a comment.\n\nYou can indent text after a comment start to form multiline comments::\n\n   ..\n      This whole indented block\n      is a comment.\n\n      Still in the comment.\n\n\nSource encoding\n---------------\n\nSince the easiest way to include special characters like em dashes or copyright\nsigns in reST is to directly write them as Unicode characters, one has to\nspecify an encoding.  Sphinx assumes source files to be encoded in UTF-8 by\ndefault; you can change this with the :confval:`source_encoding` config value.\n\n\nGotchas\n-------\n\nThere are some problems one commonly runs into while authoring reST documents:\n\n* **Separation of inline markup:** As said above, inline markup spans must be\n  separated from the surrounding text by non-word characters, you have to use a\n  backslash-escaped space to get around that.  See `the reference\n  &lt;http://docutils.sf.net/docs/ref/rst/restructuredtext.html#inline-markup&gt;`_\n  for the details.\n\n* **No nested inline markup:** Something like ``*see :func:`foo`*`` is not\n  possible.\n\n\n.. rubric:: Footnotes\n\n.. [1] When the default domain contains a :rst:dir:`class` directive, this directive\n       will be shadowed.  Therefore, Sphinx re-exports it as :rst:dir:`rst-class`.\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n      });\n    </script>\n    <p>\n        The <code>python</code> mode will be used for highlighting blocks\n        containing Python/IPython terminal sessions: blocks starting with\n        <code>&gt;&gt;&gt;</code> (for Python) or <code>In [num]:</code> (for\n        IPython).\n\n        Further, the <code>stex</code> mode will be used for highlighting\n        blocks containing LaTex code.\n    </p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rst</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rst/rst.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../python/python\"), require(\"../stex/stex\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../python/python\", \"../stex/stex\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('rst', function (config, options) {\n\n  var rx_strong = /^\\*\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*\\*/;\n  var rx_emphasis = /^\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*/;\n  var rx_literal = /^``[^`\\s](?:[^`]*[^`\\s])``/;\n\n  var rx_number = /^(?:[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_positive = /^(?:\\s\\+[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_negative = /^(?:\\s\\-[\\d]+(?:[\\.,]\\d+)*)/;\n\n  var rx_uri_protocol = \"[Hh][Tt][Tt][Pp][Ss]?://\";\n  var rx_uri_domain = \"(?:[\\\\d\\\\w.-]+)\\\\.(?:\\\\w{2,6})\";\n  var rx_uri_path = \"(?:/[\\\\d\\\\w\\\\#\\\\%\\\\&\\\\-\\\\.\\\\,\\\\/\\\\:\\\\=\\\\?\\\\~]+)*\";\n  var rx_uri = new RegExp(\"^\" + rx_uri_protocol + rx_uri_domain + rx_uri_path);\n\n  var overlay = {\n    token: function (stream) {\n\n      if (stream.match(rx_strong) && stream.match (/\\W+|$/, false))\n        return 'strong';\n      if (stream.match(rx_emphasis) && stream.match (/\\W+|$/, false))\n        return 'em';\n      if (stream.match(rx_literal) && stream.match (/\\W+|$/, false))\n        return 'string-2';\n      if (stream.match(rx_number))\n        return 'number';\n      if (stream.match(rx_positive))\n        return 'positive';\n      if (stream.match(rx_negative))\n        return 'negative';\n      if (stream.match(rx_uri))\n        return 'link';\n\n      while (stream.next() != null) {\n        if (stream.match(rx_strong, false)) break;\n        if (stream.match(rx_emphasis, false)) break;\n        if (stream.match(rx_literal, false)) break;\n        if (stream.match(rx_number, false)) break;\n        if (stream.match(rx_positive, false)) break;\n        if (stream.match(rx_negative, false)) break;\n        if (stream.match(rx_uri, false)) break;\n      }\n\n      return null;\n    }\n  };\n\n  var mode = CodeMirror.getMode(\n    config, options.backdrop || 'rst-base'\n  );\n\n  return CodeMirror.overlayMode(mode, overlay, true); // combine\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMode('rst-base', function (config) {\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function format(string) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return string.replace(/{(\\d+)}/g, function (match, n) {\n      return typeof args[n] != 'undefined' ? args[n] : match;\n    });\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var mode_python = CodeMirror.getMode(config, 'python');\n  var mode_stex = CodeMirror.getMode(config, 'stex');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var SEPA = \"\\\\s+\";\n  var TAIL = \"(?:\\\\s*|\\\\W|$)\",\n  rx_TAIL = new RegExp(format('^{0}', TAIL));\n\n  var NAME =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\",\n  rx_NAME = new RegExp(format('^{0}', NAME));\n  var NAME_WWS =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w\\\\s!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\";\n  var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);\n\n  var TEXT1 = \"(?:[^\\\\s\\\\|](?:[^\\\\|]*[^\\\\s\\\\|])?)\";\n  var TEXT2 = \"(?:[^\\\\`]+)\",\n  rx_TEXT2 = new RegExp(format('^{0}', TEXT2));\n\n  var rx_section = new RegExp(\n    \"^([!'#$%&\\\"()*+,-./:;<=>?@\\\\[\\\\\\\\\\\\]^_`{|}~])\\\\1{3,}\\\\s*$\");\n  var rx_explicit = new RegExp(\n    format('^\\\\.\\\\.{0}', SEPA));\n  var rx_link = new RegExp(\n    format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));\n  var rx_directive = new RegExp(\n    format('^{0}::{1}', REF_NAME, TAIL));\n  var rx_substitution = new RegExp(\n    format('^\\\\|{0}\\\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));\n  var rx_footnote = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]{1}', REF_NAME, TAIL));\n  var rx_citation = new RegExp(\n    format('^\\\\[{0}\\\\]{1}', REF_NAME, TAIL));\n\n  var rx_substitution_ref = new RegExp(\n    format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_footnote_ref = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]_', REF_NAME));\n  var rx_citation_ref = new RegExp(\n    format('^\\\\[{0}\\\\]_', REF_NAME));\n  var rx_link_ref1 = new RegExp(\n    format('^{0}__?', REF_NAME));\n  var rx_link_ref2 = new RegExp(\n    format('^`{0}`_', TEXT2));\n\n  var rx_role_pre = new RegExp(\n    format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));\n  var rx_role_suf = new RegExp(\n    format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));\n  var rx_role = new RegExp(\n    format('^:{0}:{1}', NAME, TAIL));\n\n  var rx_directive_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_directive_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_substitution_text = new RegExp(format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));\n  var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_link_head = new RegExp(\"^_\");\n  var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));\n  var rx_link_tail = new RegExp(format('^:{0}', TAIL));\n\n  var rx_verbatim = new RegExp('^::\\\\s*$');\n  var rx_examples = new RegExp('^\\\\s+(?:>>>|In \\\\[\\\\d+\\\\]:)\\\\s');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_normal(stream, state) {\n    var token = null;\n\n    if (stream.sol() && stream.match(rx_examples, false)) {\n      change(state, to_mode, {\n        mode: mode_python, local: CodeMirror.startState(mode_python)\n      });\n    } else if (stream.sol() && stream.match(rx_explicit)) {\n      change(state, to_explicit);\n      token = 'meta';\n    } else if (stream.sol() && stream.match(rx_section)) {\n      change(state, to_normal);\n      token = 'header';\n    } else if (phase(state) == rx_role_pre ||\n               stream.match(rx_role_pre, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_pre, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_pre, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/)) {\n          state.tmp_stex = true;\n        }\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_pre, 3));\n        stream.match(/^:`/);\n        token = 'meta';\n        break;\n      case 3:\n        if (state.tmp_stex) {\n          state.tmp_stex = undefined; state.tmp = {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          };\n        }\n\n        if (state.tmp) {\n          if (stream.peek() == '`') {\n            change(state, to_normal, context(rx_role_pre, 4));\n            state.tmp = undefined;\n            break;\n          }\n\n          token = state.tmp.mode.token(stream, state.tmp.local);\n          break;\n        }\n\n        change(state, to_normal, context(rx_role_pre, 4));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_pre, 5));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_pre, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role_suf ||\n               stream.match(rx_role_suf, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_suf, 1));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_suf, 2));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_suf, 3));\n        stream.match(/^`:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role_suf, 4));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_suf, 5));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_suf, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role || stream.match(rx_role, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role, 3));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role, 4));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_substitution_ref ||\n               stream.match(rx_substitution_ref, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_substitution_ref, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_substitution_ref, 2));\n        if (stream.match(/^_?_?/)) token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_link_ref1)) {\n      change(state, to_normal);\n      if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n        token = 'link';\n      }\n    } else if (phase(state) == rx_link_ref2 ||\n               stream.match(rx_link_ref2, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n          change(state, to_normal, context(rx_link_ref2, 1));\n        } else {\n          stream.match(rx_link_ref2);\n        }\n        break;\n      case 1:\n        change(state, to_normal, context(rx_link_ref2, 2));\n        stream.match(/^`/);\n        token = 'link';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_link_ref2, 3));\n        stream.match(rx_TEXT2);\n        break;\n      case 3:\n        change(state, to_normal, context(rx_link_ref2, 4));\n        stream.match(/^`_/);\n        token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_verbatim)) {\n      change(state, to_verbatim);\n    }\n\n    else {\n      if (stream.next()) change(state, to_normal);\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_explicit(stream, state) {\n    var token = null;\n\n    if (phase(state) == rx_substitution ||\n        stream.match(rx_substitution, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_substitution, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_substitution, 2));\n        stream.match(rx_substitution_sepa);\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_substitution, 3));\n        stream.match(rx_substitution_name);\n        token = 'keyword';\n        break;\n      case 3:\n        change(state, to_explicit, context(rx_substitution, 4));\n        stream.match(rx_substitution_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_directive ||\n               stream.match(rx_directive, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_directive, 1));\n        stream.match(rx_directive_name);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/))\n          state.tmp_stex = true;\n        else if (stream.current().match(/^python/))\n          state.tmp_py = true;\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_directive, 2));\n        stream.match(rx_directive_tail);\n        token = 'meta';\n\n        if (stream.match(/^latex\\s*$/) || state.tmp_stex) {\n          state.tmp_stex = undefined; change(state, to_mode, {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          });\n        }\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_directive, 3));\n        if (stream.match(/^python\\s*$/) || state.tmp_py) {\n          state.tmp_py = undefined; change(state, to_mode, {\n            mode: mode_python, local: CodeMirror.startState(mode_python)\n          });\n        }\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_link || stream.match(rx_link, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_link, 1));\n        stream.match(rx_link_head);\n        stream.match(rx_link_name);\n        token = 'link';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_link, 2));\n        stream.match(rx_link_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation)) {\n      change(state, to_normal);\n      token = 'quote';\n    }\n\n    else {\n      stream.eatSpace();\n      if (stream.eol()) {\n        change(state, to_normal);\n      } else {\n        stream.skipToEnd();\n        change(state, to_comment);\n        token = 'comment';\n      }\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_comment(stream, state) {\n    return as_block(stream, state, 'comment');\n  }\n\n  function to_verbatim(stream, state) {\n    return as_block(stream, state, 'meta');\n  }\n\n  function as_block(stream, state, token) {\n    if (stream.eol() || stream.eatSpace()) {\n      stream.skipToEnd();\n      return token;\n    } else {\n      change(state, to_normal);\n      return null;\n    }\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_mode(stream, state) {\n\n    if (state.ctx.mode && state.ctx.local) {\n\n      if (stream.sol()) {\n        if (!stream.eatSpace()) change(state, to_normal);\n        return null;\n      }\n\n      return state.ctx.mode.token(stream, state.ctx.local);\n    }\n\n    change(state, to_normal);\n    return null;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function context(phase, stage, mode, local) {\n    return {phase: phase, stage: stage, mode: mode, local: local};\n  }\n\n  function change(state, tok, ctx) {\n    state.tok = tok;\n    state.ctx = ctx || {};\n  }\n\n  function stage(state) {\n    return state.ctx.stage || 0;\n  }\n\n  function phase(state) {\n    return state.ctx.phase;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  return {\n    startState: function () {\n      return {tok: to_normal, ctx: context(undefined, 0)};\n    },\n\n    copyState: function (state) {\n      var ctx = state.ctx, tmp = state.tmp;\n      if (ctx.local)\n        ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};\n      if (tmp)\n        tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};\n      return {tok: state.tok, ctx: ctx, tmp: tmp};\n    },\n\n    innerMode: function (state) {\n      return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}\n      : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}\n      : null;\n    },\n\n    token: function (stream, state) {\n      return state.tok(stream, state);\n    }\n  };\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMIME('text/x-rst', 'rst');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ruby/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Ruby mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"ruby.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Ruby</a>\n  </ul>\n</div>\n\n<article>\n<h2>Ruby mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# Code from http://sandbox.mc.edu/~bennet/ruby/code/poly_rb.html\n#\n# This program evaluates polynomials.  It first asks for the coefficients\n# of a polynomial, which must be entered on one line, highest-order first.\n# It then requests values of x and will compute the value of the poly for\n# each x.  It will repeatly ask for x values, unless you the user enters\n# a blank line.  It that case, it will ask for another polynomial.  If the\n# user types quit for either input, the program immediately exits.\n#\n\n#\n# Function to evaluate a polynomial at x.  The polynomial is given\n# as a list of coefficients, from the greatest to the least.\ndef polyval(x, coef)\n    sum = 0\n    coef = coef.clone           # Don't want to destroy the original\n    while true\n        sum += coef.shift       # Add and remove the next coef\n        break if coef.empty?    # If no more, done entirely.\n        sum *= x                # This happens the right number of times.\n    end\n    return sum\nend\n\n#\n# Function to read a line containing a list of integers and return\n# them as an array of integers.  If the string conversion fails, it\n# throws TypeError.  If the input line is the word 'quit', then it\n# converts it to an end-of-file exception\ndef readints(prompt)\n    # Read a line\n    print prompt\n    line = readline.chomp\n    raise EOFError.new if line == 'quit' # You can also use a real EOF.\n            \n    # Go through each item on the line, converting each one and adding it\n    # to retval.\n    retval = [ ]\n    for str in line.split(/\\s+/)\n        if str =~ /^\\-?\\d+$/\n            retval.push(str.to_i)\n        else\n            raise TypeError.new\n        end\n    end\n\n    return retval\nend\n\n#\n# Take a coeff and an exponent and return the string representation, ignoring\n# the sign of the coefficient.\ndef term_to_str(coef, exp)\n    ret = \"\"\n\n    # Show coeff, unless it's 1 or at the right\n    coef = coef.abs\n    ret = coef.to_s     unless coef == 1 && exp > 0\n    ret += \"x\" if exp > 0                               # x if exponent not 0\n    ret += \"^\" + exp.to_s if exp > 1                    # ^exponent, if > 1.\n\n    return ret\nend\n\n#\n# Create a string of the polynomial in sort-of-readable form.\ndef polystr(p)\n    # Get the exponent of first coefficient, plus 1.\n    exp = p.length\n\n    # Assign exponents to each term, making pairs of coeff and exponent,\n    # Then get rid of the zero terms.\n    p = (p.map { |c| exp -= 1; [ c, exp ] }).select { |p| p[0] != 0 }\n\n    # If there's nothing left, it's a zero\n    return \"0\" if p.empty?\n\n    # *** Now p is a non-empty list of [ coef, exponent ] pairs. ***\n\n    # Convert the first term, preceded by a \"-\" if it's negative.\n    result = (if p[0][0] < 0 then \"-\" else \"\" end) + term_to_str(*p[0])\n\n    # Convert the rest of the terms, in each case adding the appropriate\n    # + or - separating them.  \n    for term in p[1...p.length]\n        # Add the separator then the rep. of the term.\n        result += (if term[0] < 0 then \" - \" else \" + \" end) + \n                term_to_str(*term)\n    end\n\n    return result\nend\n        \n#\n# Run until some kind of endfile.\nbegin\n    # Repeat until an exception or quit gets us out.\n    while true\n        # Read a poly until it works.  An EOF will except out of the\n        # program.\n        print \"\\n\"\n        begin\n            poly = readints(\"Enter a polynomial coefficients: \")\n        rescue TypeError\n            print \"Try again.\\n\"\n            retry\n        end\n        break if poly.empty?\n\n        # Read and evaluate x values until the user types a blank line.\n        # Again, an EOF will except out of the pgm.\n        while true\n            # Request an integer.\n            print \"Enter x value or blank line: \"\n            x = readline.chomp\n            break if x == ''\n            raise EOFError.new if x == 'quit'\n\n            # If it looks bad, let's try again.\n            if x !~ /^\\-?\\d+$/\n                print \"That doesn't look like an integer.  Please try again.\\n\"\n                next\n            end\n\n            # Convert to an integer and print the result.\n            x = x.to_i\n            print \"p(x) = \", polystr(poly), \"\\n\"\n            print \"p(\", x, \") = \", polyval(x, poly), \"\\n\"\n        end\n    end\nrescue EOFError\n    print \"\\n=== EOF ===\\n\"\nrescue Interrupt, SignalException\n    print \"\\n=== Interrupted ===\\n\"\nelse\n    print \"--- Bye ---\\n\"\nend\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-ruby\",\n        matchBrackets: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-ruby</code>.</p>\n\n    <p>Development of the CodeMirror Ruby mode was kindly sponsored\n    by <a href=\"http://ubalo.com/\">Ubalo</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ruby/ruby.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ruby\", function(config) {\n  function wordObj(words) {\n    var o = {};\n    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n    return o;\n  }\n  var keywords = wordObj([\n    \"alias\", \"and\", \"BEGIN\", \"begin\", \"break\", \"case\", \"class\", \"def\", \"defined?\", \"do\", \"else\",\n    \"elsif\", \"END\", \"end\", \"ensure\", \"false\", \"for\", \"if\", \"in\", \"module\", \"next\", \"not\", \"or\",\n    \"redo\", \"rescue\", \"retry\", \"return\", \"self\", \"super\", \"then\", \"true\", \"undef\", \"unless\",\n    \"until\", \"when\", \"while\", \"yield\", \"nil\", \"raise\", \"throw\", \"catch\", \"fail\", \"loop\", \"callcc\",\n    \"caller\", \"lambda\", \"proc\", \"public\", \"protected\", \"private\", \"require\", \"load\",\n    \"require_relative\", \"extend\", \"autoload\", \"__END__\", \"__FILE__\", \"__LINE__\", \"__dir__\"\n  ]);\n  var indentWords = wordObj([\"def\", \"class\", \"case\", \"for\", \"while\", \"module\", \"then\",\n                             \"catch\", \"loop\", \"proc\", \"begin\"]);\n  var dedentWords = wordObj([\"end\", \"until\"]);\n  var matching = {\"[\": \"]\", \"{\": \"}\", \"(\": \")\"};\n  var curPunc;\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    if (stream.sol() && stream.match(\"=begin\") && stream.eol()) {\n      state.tokenize.push(readBlockComment);\n      return \"comment\";\n    }\n    if (stream.eatSpace()) return null;\n    var ch = stream.next(), m;\n    if (ch == \"`\" || ch == \"'\" || ch == '\"') {\n      return chain(readQuoted(ch, \"string\", ch == '\"' || ch == \"`\"), stream, state);\n    } else if (ch == \"/\") {\n      var currentIndex = stream.current().length;\n      if (stream.skipTo(\"/\")) {\n        var search_till = stream.current().length;\n        stream.backUp(stream.current().length - currentIndex);\n        var balance = 0;  // balance brackets\n        while (stream.current().length < search_till) {\n          var chchr = stream.next();\n          if (chchr == \"(\") balance += 1;\n          else if (chchr == \")\") balance -= 1;\n          if (balance < 0) break;\n        }\n        stream.backUp(stream.current().length - currentIndex);\n        if (balance == 0)\n          return chain(readQuoted(ch, \"string-2\", true), stream, state);\n      }\n      return \"operator\";\n    } else if (ch == \"%\") {\n      var style = \"string\", embed = true;\n      if (stream.eat(\"s\")) style = \"atom\";\n      else if (stream.eat(/[WQ]/)) style = \"string\";\n      else if (stream.eat(/[r]/)) style = \"string-2\";\n      else if (stream.eat(/[wxq]/)) { style = \"string\"; embed = false; }\n      var delim = stream.eat(/[^\\w\\s=]/);\n      if (!delim) return \"operator\";\n      if (matching.propertyIsEnumerable(delim)) delim = matching[delim];\n      return chain(readQuoted(delim, style, embed, true), stream, state);\n    } else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"<\" && (m = stream.match(/^<-?[\\`\\\"\\']?([a-zA-Z_?]\\w*)[\\`\\\"\\']?(?:;|$)/))) {\n      return chain(readHereDoc(m[1]), stream, state);\n    } else if (ch == \"0\") {\n      if (stream.eat(\"x\")) stream.eatWhile(/[\\da-fA-F]/);\n      else if (stream.eat(\"b\")) stream.eatWhile(/[01]/);\n      else stream.eatWhile(/[0-7]/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^[\\d_]*(?:\\.[\\d_]+)?(?:[eE][+\\-]?[\\d_]+)?/);\n      return \"number\";\n    } else if (ch == \"?\") {\n      while (stream.match(/^\\\\[CM]-/)) {}\n      if (stream.eat(\"\\\\\")) stream.eatWhile(/\\w/);\n      else stream.next();\n      return \"string\";\n    } else if (ch == \":\") {\n      if (stream.eat(\"'\")) return chain(readQuoted(\"'\", \"atom\", false), stream, state);\n      if (stream.eat('\"')) return chain(readQuoted('\"', \"atom\", true), stream, state);\n\n      // :> :>> :< :<< are valid symbols\n      if (stream.eat(/[\\<\\>]/)) {\n        stream.eat(/[\\<\\>]/);\n        return \"atom\";\n      }\n\n      // :+ :- :/ :* :| :& :! are valid symbols\n      if (stream.eat(/[\\+\\-\\*\\/\\&\\|\\:\\!]/)) {\n        return \"atom\";\n      }\n\n      // Symbols can't start by a digit\n      if (stream.eat(/[a-zA-Z$@_\\xa1-\\uffff]/)) {\n        stream.eatWhile(/[\\w$\\xa1-\\uffff]/);\n        // Only one ? ! = is allowed and only as the last character\n        stream.eat(/[\\?\\!\\=]/);\n        return \"atom\";\n      }\n      return \"operator\";\n    } else if (ch == \"@\" && stream.match(/^@?[a-zA-Z_\\xa1-\\uffff]/)) {\n      stream.eat(\"@\");\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      return \"variable-2\";\n    } else if (ch == \"$\") {\n      if (stream.eat(/[a-zA-Z_]/)) {\n        stream.eatWhile(/[\\w]/);\n      } else if (stream.eat(/\\d/)) {\n        stream.eat(/\\d/);\n      } else {\n        stream.next(); // Must be a special global like $: or $!\n      }\n      return \"variable-3\";\n    } else if (/[a-zA-Z_\\xa1-\\uffff]/.test(ch)) {\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      stream.eat(/[\\?\\!]/);\n      if (stream.eat(\":\")) return \"atom\";\n      return \"ident\";\n    } else if (ch == \"|\" && (state.varList || state.lastTok == \"{\" || state.lastTok == \"do\")) {\n      curPunc = \"|\";\n      return null;\n    } else if (/[\\(\\)\\[\\]{}\\\\;]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    } else if (ch == \"-\" && stream.eat(\">\")) {\n      return \"arrow\";\n    } else if (/[=+\\-\\/*:\\.^%<>~|]/.test(ch)) {\n      var more = stream.eatWhile(/[=+\\-\\/*:\\.^%<>~|]/);\n      if (ch == \".\" && !more) curPunc = \".\";\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function tokenBaseUntilBrace(depth) {\n    if (!depth) depth = 1;\n    return function(stream, state) {\n      if (stream.peek() == \"}\") {\n        if (depth == 1) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        } else {\n          state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1);\n        }\n      } else if (stream.peek() == \"{\") {\n        state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1);\n      }\n      return tokenBase(stream, state);\n    };\n  }\n  function tokenBaseOnce() {\n    var alreadyCalled = false;\n    return function(stream, state) {\n      if (alreadyCalled) {\n        state.tokenize.pop();\n        return state.tokenize[state.tokenize.length-1](stream, state);\n      }\n      alreadyCalled = true;\n      return tokenBase(stream, state);\n    };\n  }\n  function readQuoted(quote, style, embed, unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n\n      if (state.context.type === 'read-quoted-paused') {\n        state.context = state.context.prev;\n        stream.eat(\"}\");\n      }\n\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        if (embed && ch == \"#\" && !escaped) {\n          if (stream.eat(\"{\")) {\n            if (quote == \"}\") {\n              state.context = {prev: state.context, type: 'read-quoted-paused'};\n            }\n            state.tokenize.push(tokenBaseUntilBrace());\n            break;\n          } else if (/[@\\$]/.test(stream.peek())) {\n            state.tokenize.push(tokenBaseOnce());\n            break;\n          }\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return style;\n    };\n  }\n  function readHereDoc(phrase) {\n    return function(stream, state) {\n      if (stream.match(phrase)) state.tokenize.pop();\n      else stream.skipToEnd();\n      return \"string\";\n    };\n  }\n  function readBlockComment(stream, state) {\n    if (stream.sol() && stream.match(\"=end\") && stream.eol())\n      state.tokenize.pop();\n    stream.skipToEnd();\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase],\n              indented: 0,\n              context: {type: \"top\", indented: -config.indentUnit},\n              continuedLine: false,\n              lastTok: null,\n              varList: false};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) state.indented = stream.indentation();\n      var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype;\n      var thisTok = curPunc;\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = state.lastTok == \".\" ? \"property\"\n          : keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : /^[A-Z]/.test(word) ? \"tag\"\n          : (state.lastTok == \"def\" || state.lastTok == \"class\" || state.varList) ? \"def\"\n          : \"variable\";\n        if (style == \"keyword\") {\n          thisTok = word;\n          if (indentWords.propertyIsEnumerable(word)) kwtype = \"indent\";\n          else if (dedentWords.propertyIsEnumerable(word)) kwtype = \"dedent\";\n          else if ((word == \"if\" || word == \"unless\") && stream.column() == stream.indentation())\n            kwtype = \"indent\";\n          else if (word == \"do\" && state.context.indented < state.indented)\n            kwtype = \"indent\";\n        }\n      }\n      if (curPunc || (style && style != \"comment\")) state.lastTok = thisTok;\n      if (curPunc == \"|\") state.varList = !state.varList;\n\n      if (kwtype == \"indent\" || /[\\(\\[\\{]/.test(curPunc))\n        state.context = {prev: state.context, type: curPunc || style, indented: state.indented};\n      else if ((kwtype == \"dedent\" || /[\\)\\]\\}]/.test(curPunc)) && state.context.prev)\n        state.context = state.context.prev;\n\n      if (stream.eol())\n        state.continuedLine = (curPunc == \"\\\\\" || style == \"operator\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0);\n      var ct = state.context;\n      var closing = ct.type == matching[firstChar] ||\n        ct.type == \"keyword\" && /^(?:end|until|else|elsif|when|rescue)\\b/.test(textAfter);\n      return ct.indented + (closing ? 0 : config.indentUnit) +\n        (state.continuedLine ? config.indentUnit : 0);\n    },\n\n    electricChars: \"}de\", // enD and rescuE\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ruby\", \"ruby\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/ruby/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"ruby\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"divide_equal_operator\",\n     \"[variable bar] [operator /=] [variable foo]\");\n\n  MT(\"divide_equal_operator_no_spacing\",\n     \"[variable foo][operator /=][number 42]\");\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rust/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Rust mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"rust.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Rust</a>\n  </ul>\n</div>\n\n<article>\n<h2>Rust mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n// Demo code.\n\ntype foo<T> = int;\nenum bar {\n    some(int, foo<float>),\n    none\n}\n\nfn check_crate(x: int) {\n    let v = 10;\n    alt foo {\n      1 to 3 {\n        print_foo();\n        if x {\n            blah() + 10;\n        }\n      }\n      (x, y) { \"bye\" }\n      _ { \"hi\" }\n    }\n}\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rustsrc</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/rust/rust.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rust\", function() {\n  var indentUnit = 4, altIndentUnit = 2;\n  var valKeywords = {\n    \"if\": \"if-style\", \"while\": \"if-style\", \"loop\": \"else-style\", \"else\": \"else-style\",\n    \"do\": \"else-style\", \"ret\": \"else-style\", \"fail\": \"else-style\",\n    \"break\": \"atom\", \"cont\": \"atom\", \"const\": \"let\", \"resource\": \"fn\",\n    \"let\": \"let\", \"fn\": \"fn\", \"for\": \"for\", \"alt\": \"alt\", \"iface\": \"iface\",\n    \"impl\": \"impl\", \"type\": \"type\", \"enum\": \"enum\", \"mod\": \"mod\",\n    \"as\": \"op\", \"true\": \"atom\", \"false\": \"atom\", \"assert\": \"op\", \"check\": \"op\",\n    \"claim\": \"op\", \"native\": \"ignore\", \"unsafe\": \"ignore\", \"import\": \"else-style\",\n    \"export\": \"else-style\", \"copy\": \"op\", \"log\": \"op\", \"log_err\": \"op\",\n    \"use\": \"op\", \"bind\": \"op\", \"self\": \"atom\", \"struct\": \"enum\"\n  };\n  var typeKeywords = function() {\n    var keywords = {\"fn\": \"fn\", \"block\": \"fn\", \"obj\": \"obj\"};\n    var atoms = \"bool uint int i8 i16 i32 i64 u8 u16 u32 u64 float f32 f64 str char\".split(\" \");\n    for (var i = 0, e = atoms.length; i < e; ++i) keywords[atoms[i]] = \"atom\";\n    return keywords;\n  }();\n  var operatorChar = /[+\\-*&%=<>!?|\\.@]/;\n\n  // Tokenizer\n\n  // Used as scratch variable to communicate multiple values without\n  // consing up tons of objects.\n  var tcat, content;\n  function r(tc, style) {\n    tcat = tc;\n    return style;\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"'\") {\n      tcat = \"atom\";\n      if (stream.eat(\"\\\\\")) {\n        if (stream.skipTo(\"'\")) { stream.next(); return \"string\"; }\n        else { return \"error\"; }\n      } else {\n        stream.next();\n        return stream.eat(\"'\") ? \"string\" : \"error\";\n      }\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) { stream.skipToEnd(); return \"comment\"; }\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment(1);\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch == \"#\") {\n      if (stream.eat(\"[\")) { tcat = \"open-attr\"; return null; }\n      stream.eatWhile(/\\w/);\n      return r(\"macro\", \"meta\");\n    }\n    if (ch == \":\" && stream.match(\":<\")) {\n      return r(\"op\", null);\n    }\n    if (ch.match(/\\d/) || (ch == \".\" && stream.eat(/\\d/))) {\n      var flp = false;\n      if (!stream.match(/^x[\\da-f]+/i) && !stream.match(/^b[01]+/)) {\n        stream.eatWhile(/\\d/);\n        if (stream.eat(\".\")) { flp = true; stream.eatWhile(/\\d/); }\n        if (stream.match(/^e[+\\-]?\\d+/i)) { flp = true; }\n      }\n      if (flp) stream.match(/^f(?:32|64)/);\n      else stream.match(/^[ui](?:8|16|32|64)/);\n      return r(\"atom\", \"number\");\n    }\n    if (ch.match(/[()\\[\\]{}:;,]/)) return r(ch, null);\n    if (ch == \"-\" && stream.eat(\">\")) return r(\"->\", null);\n    if (ch.match(operatorChar)) {\n      stream.eatWhile(operatorChar);\n      return r(\"op\", null);\n    }\n    stream.eatWhile(/\\w/);\n    content = stream.current();\n    if (stream.match(/^::\\w/)) {\n      stream.backUp(1);\n      return r(\"prefix\", \"variable-2\");\n    }\n    if (state.keywords.propertyIsEnumerable(content))\n      return r(state.keywords[content], content.match(/true|false/) ? \"atom\" : \"keyword\");\n    return r(\"name\", \"variable\");\n  }\n\n  function tokenString(stream, state) {\n    var ch, escaped = false;\n    while (ch = stream.next()) {\n      if (ch == '\"' && !escaped) {\n        state.tokenize = tokenBase;\n        return r(\"atom\", \"string\");\n      }\n      escaped = !escaped && ch == \"\\\\\";\n    }\n    // Hack to not confuse the parser when a string is split in\n    // pieces.\n    return r(\"op\", \"string\");\n  }\n\n  function tokenComment(depth) {\n    return function(stream, state) {\n      var lastCh = null, ch;\n      while (ch = stream.next()) {\n        if (ch == \"/\" && lastCh == \"*\") {\n          if (depth == 1) {\n            state.tokenize = tokenBase;\n            break;\n          } else {\n            state.tokenize = tokenComment(depth - 1);\n            return state.tokenize(stream, state);\n          }\n        }\n        if (ch == \"*\" && lastCh == \"/\") {\n          state.tokenize = tokenComment(depth + 1);\n          return state.tokenize(stream, state);\n        }\n        lastCh = ch;\n      }\n      return \"comment\";\n    };\n  }\n\n  // Parser\n\n  var cx = {state: null, stream: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state;\n      state.lexical = {indented: state.indented, column: cx.stream.column(),\n                       type: type, prev: state.lexical, info: info};\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  function typecx() { cx.state.keywords = typeKeywords; }\n  function valcx() { cx.state.keywords = valKeywords; }\n  poplex.lex = typecx.lex = valcx.lex = true;\n\n  function commasep(comb, end) {\n    function more(type) {\n      if (type == \",\") return cont(comb, more);\n      if (type == end) return cont();\n      return cont(more);\n    }\n    return function(type) {\n      if (type == end) return cont();\n      return pass(comb, more);\n    };\n  }\n\n  function stat_of(comb, tag) {\n    return cont(pushlex(\"stat\", tag), comb, poplex, block);\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    if (type == \"let\") return stat_of(letdef1, \"let\");\n    if (type == \"fn\") return stat_of(fndef);\n    if (type == \"type\") return cont(pushlex(\"stat\"), tydef, endstatement, poplex, block);\n    if (type == \"enum\") return stat_of(enumdef);\n    if (type == \"mod\") return stat_of(mod);\n    if (type == \"iface\") return stat_of(iface);\n    if (type == \"impl\") return stat_of(impl);\n    if (type == \"open-attr\") return cont(pushlex(\"]\"), commasep(expression, \"]\"), poplex);\n    if (type == \"ignore\" || type.match(/[\\]\\);,]/)) return cont(block);\n    return pass(pushlex(\"stat\"), expression, poplex, endstatement, block);\n  }\n  function endstatement(type) {\n    if (type == \";\") return cont();\n    return pass();\n  }\n  function expression(type) {\n    if (type == \"atom\" || type == \"name\") return cont(maybeop);\n    if (type == \"{\") return cont(pushlex(\"}\"), exprbrace, poplex);\n    if (type.match(/[\\[\\(]/)) return matchBrackets(type, expression);\n    if (type.match(/[\\]\\)\\};,]/)) return pass();\n    if (type == \"if-style\") return cont(expression, expression);\n    if (type == \"else-style\" || type == \"op\") return cont(expression);\n    if (type == \"for\") return cont(pattern, maybetype, inop, expression, expression);\n    if (type == \"alt\") return cont(expression, altbody);\n    if (type == \"fn\") return cont(fndef);\n    if (type == \"macro\") return cont(macro);\n    return cont();\n  }\n  function maybeop(type) {\n    if (content == \".\") return cont(maybeprop);\n    if (content == \"::<\"){return cont(typarams, maybeop);}\n    if (type == \"op\" || content == \":\") return cont(expression);\n    if (type == \"(\" || type == \"[\") return matchBrackets(type, expression);\n    return pass();\n  }\n  function maybeprop() {\n    if (content.match(/^\\w+$/)) {cx.marked = \"variable\"; return cont(maybeop);}\n    return pass(expression);\n  }\n  function exprbrace(type) {\n    if (type == \"op\") {\n      if (content == \"|\") return cont(blockvars, poplex, pushlex(\"}\", \"block\"), block);\n      if (content == \"||\") return cont(poplex, pushlex(\"}\", \"block\"), block);\n    }\n    if (content == \"mutable\" || (content.match(/^\\w+$/) && cx.stream.peek() == \":\"\n                                 && !cx.stream.match(\"::\", false)))\n      return pass(record_of(expression));\n    return pass(block);\n  }\n  function record_of(comb) {\n    function ro(type) {\n      if (content == \"mutable\" || content == \"with\") {cx.marked = \"keyword\"; return cont(ro);}\n      if (content.match(/^\\w*$/)) {cx.marked = \"variable\"; return cont(ro);}\n      if (type == \":\") return cont(comb, ro);\n      if (type == \"}\") return cont();\n      return cont(ro);\n    }\n    return ro;\n  }\n  function blockvars(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(blockvars);}\n    if (type == \"op\" && content == \"|\") return cont();\n    return cont(blockvars);\n  }\n\n  function letdef1(type) {\n    if (type.match(/[\\]\\)\\};]/)) return cont();\n    if (content == \"=\") return cont(expression, letdef2);\n    if (type == \",\") return cont(letdef1);\n    return pass(pattern, maybetype, letdef1);\n  }\n  function letdef2(type) {\n    if (type.match(/[\\]\\)\\};,]/)) return pass(letdef1);\n    else return pass(expression, letdef2);\n  }\n  function maybetype(type) {\n    if (type == \":\") return cont(typecx, rtype, valcx);\n    return pass();\n  }\n  function inop(type) {\n    if (type == \"name\" && content == \"in\") {cx.marked = \"keyword\"; return cont();}\n    return pass();\n  }\n  function fndef(type) {\n    if (content == \"@\" || content == \"~\") {cx.marked = \"keyword\"; return cont(fndef);}\n    if (type == \"name\") {cx.marked = \"def\"; return cont(fndef);}\n    if (content == \"<\") return cont(typarams, fndef);\n    if (type == \"{\") return pass(expression);\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(argdef, \")\"), poplex, fndef);\n    if (type == \"->\") return cont(typecx, rtype, valcx, fndef);\n    if (type == \";\") return cont();\n    return cont(fndef);\n  }\n  function tydef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(tydef);}\n    if (content == \"<\") return cont(typarams, tydef);\n    if (content == \"=\") return cont(typecx, rtype, valcx);\n    return cont(tydef);\n  }\n  function enumdef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(enumdef);}\n    if (content == \"<\") return cont(typarams, enumdef);\n    if (content == \"=\") return cont(typecx, rtype, valcx, endstatement);\n    if (type == \"{\") return cont(pushlex(\"}\"), typecx, enumblock, valcx, poplex);\n    return cont(enumdef);\n  }\n  function enumblock(type) {\n    if (type == \"}\") return cont();\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(rtype, \")\"), poplex, enumblock);\n    if (content.match(/^\\w+$/)) cx.marked = \"def\";\n    return cont(enumblock);\n  }\n  function mod(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(mod);}\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function iface(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(iface);}\n    if (content == \"<\") return cont(typarams, iface);\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function impl(type) {\n    if (content == \"<\") return cont(typarams, impl);\n    if (content == \"of\" || content == \"for\") {cx.marked = \"keyword\"; return cont(rtype, impl);}\n    if (type == \"name\") {cx.marked = \"def\"; return cont(impl);}\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function typarams() {\n    if (content == \">\") return cont();\n    if (content == \",\") return cont(typarams);\n    if (content == \":\") return cont(rtype, typarams);\n    return pass(rtype, typarams);\n  }\n  function argdef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(argdef);}\n    if (type == \":\") return cont(typecx, rtype, valcx);\n    return pass();\n  }\n  function rtype(type) {\n    if (type == \"name\") {cx.marked = \"variable-3\"; return cont(rtypemaybeparam); }\n    if (content == \"mutable\") {cx.marked = \"keyword\"; return cont(rtype);}\n    if (type == \"atom\") return cont(rtypemaybeparam);\n    if (type == \"op\" || type == \"obj\") return cont(rtype);\n    if (type == \"fn\") return cont(fntype);\n    if (type == \"{\") return cont(pushlex(\"{\"), record_of(rtype), poplex);\n    return matchBrackets(type, rtype);\n  }\n  function rtypemaybeparam() {\n    if (content == \"<\") return cont(typarams);\n    return pass();\n  }\n  function fntype(type) {\n    if (type == \"(\") return cont(pushlex(\"(\"), commasep(rtype, \")\"), poplex, fntype);\n    if (type == \"->\") return cont(rtype);\n    return pass();\n  }\n  function pattern(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(patternmaybeop);}\n    if (type == \"atom\") return cont(patternmaybeop);\n    if (type == \"op\") return cont(pattern);\n    if (type.match(/[\\]\\)\\};,]/)) return pass();\n    return matchBrackets(type, pattern);\n  }\n  function patternmaybeop(type) {\n    if (type == \"op\" && content == \".\") return cont();\n    if (content == \"to\") {cx.marked = \"keyword\"; return cont(pattern);}\n    else return pass();\n  }\n  function altbody(type) {\n    if (type == \"{\") return cont(pushlex(\"}\", \"alt\"), altblock1, poplex);\n    return pass();\n  }\n  function altblock1(type) {\n    if (type == \"}\") return cont();\n    if (type == \"|\") return cont(altblock1);\n    if (content == \"when\") {cx.marked = \"keyword\"; return cont(expression, altblock2);}\n    if (type.match(/[\\]\\);,]/)) return cont(altblock1);\n    return pass(pattern, altblock2);\n  }\n  function altblock2(type) {\n    if (type == \"{\") return cont(pushlex(\"}\", \"alt\"), block, poplex, altblock1);\n    else return pass(altblock1);\n  }\n\n  function macro(type) {\n    if (type.match(/[\\[\\(\\{]/)) return matchBrackets(type, expression);\n    return pass();\n  }\n  function matchBrackets(type, comb) {\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(comb, \"]\"), poplex);\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(comb, \")\"), poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), commasep(comb, \"}\"), poplex);\n    return cont();\n  }\n\n  function parse(state, stream, style) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n    while (true) {\n      var combinator = cc.length ? cc.pop() : block;\n      if (combinator(tcat)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        return cx.marked || style;\n      }\n    }\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        cc: [],\n        lexical: {indented: -indentUnit, column: 0, type: \"top\", align: false},\n        keywords: valKeywords,\n        indented: 0\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      tcat = content = null;\n      var style = state.tokenize(stream, state);\n      if (style == \"comment\") return style;\n      if (!state.lexical.hasOwnProperty(\"align\"))\n        state.lexical.align = true;\n      if (tcat == \"prefix\") return style;\n      if (!content) content = stream.current();\n      return parse(state, stream, style);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical,\n          type = lexical.type, closing = firstChar == type;\n      if (type == \"stat\") return lexical.indented + indentUnit;\n      if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      return lexical.indented + (closing ? 0 : (lexical.info == \"alt\" ? altIndentUnit : indentUnit));\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rustsrc\", \"rust\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sass/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Sass mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"sass.js\"></script>\n<style>.CodeMirror {border: 1px solid #ddd; font-size:12px; height: 400px}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Sass</a>\n  </ul>\n</div>\n\n<article>\n<h2>Sass mode</h2>\n<form><textarea id=\"code\" name=\"code\">// Variable Definitions\n\n$page-width:    800px\n$sidebar-width: 200px\n$primary-color: #eeeeee\n\n// Global Attributes\n\nbody\n  font:\n    family: sans-serif\n    size: 30em\n    weight: bold\n\n// Scoped Styles\n\n#contents\n  width: $page-width\n  #sidebar\n    float: right\n    width: $sidebar-width\n  #main\n    width: $page-width - $sidebar-width\n    background: $primary-color\n    h2\n      color: blue\n\n#footer\n  height: 200px\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers : true,\n        matchBrackets : true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-sass</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sass/sass.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sass\", function(config) {\n  function tokenRegexp(words) {\n    return new RegExp(\"^\" + words.join(\"|\"));\n  }\n\n  var keywords = [\"true\", \"false\", \"null\", \"auto\"];\n  var keywordsRegexp = new RegExp(\"^\" + keywords.join(\"|\"));\n\n  var operators = [\"\\\\(\", \"\\\\)\", \"=\", \">\", \"<\", \"==\", \">=\", \"<=\", \"\\\\+\", \"-\",\n                   \"\\\\!=\", \"/\", \"\\\\*\", \"%\", \"and\", \"or\", \"not\", \";\",\"\\\\{\",\"\\\\}\",\":\"];\n  var opRegexp = tokenRegexp(operators);\n\n  var pseudoElementsRegexp = /^::?[a-zA-Z_][\\w\\-]*/;\n\n  function urlTokens(stream, state) {\n    var ch = stream.peek();\n\n    if (ch === \")\") {\n      stream.next();\n      state.tokenizer = tokenBase;\n      return \"operator\";\n    } else if (ch === \"(\") {\n      stream.next();\n      stream.eatSpace();\n\n      return \"operator\";\n    } else if (ch === \"'\" || ch === '\"') {\n      state.tokenizer = buildStringTokenizer(stream.next());\n      return \"string\";\n    } else {\n      state.tokenizer = buildStringTokenizer(\")\", false);\n      return \"string\";\n    }\n  }\n  function comment(indentation, multiLine) {\n    return function(stream, state) {\n      if (stream.sol() && stream.indentation() <= indentation) {\n        state.tokenizer = tokenBase;\n        return tokenBase(stream, state);\n      }\n\n      if (multiLine && stream.skipTo(\"*/\")) {\n        stream.next();\n        stream.next();\n        state.tokenizer = tokenBase;\n      } else {\n        stream.skipToEnd();\n      }\n\n      return \"comment\";\n    };\n  }\n\n  function buildStringTokenizer(quote, greedy) {\n    if (greedy == null) { greedy = true; }\n\n    function stringTokenizer(stream, state) {\n      var nextChar = stream.next();\n      var peekChar = stream.peek();\n      var previousChar = stream.string.charAt(stream.pos-2);\n\n      var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) || (nextChar === quote && previousChar !== \"\\\\\"));\n\n      if (endingString) {\n        if (nextChar !== quote && greedy) { stream.next(); }\n        state.tokenizer = tokenBase;\n        return \"string\";\n      } else if (nextChar === \"#\" && peekChar === \"{\") {\n        state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n        stream.next();\n        return \"operator\";\n      } else {\n        return \"string\";\n      }\n    }\n\n    return stringTokenizer;\n  }\n\n  function buildInterpolationTokenizer(currentTokenizer) {\n    return function(stream, state) {\n      if (stream.peek() === \"}\") {\n        stream.next();\n        state.tokenizer = currentTokenizer;\n        return \"operator\";\n      } else {\n        return tokenBase(stream, state);\n      }\n    };\n  }\n\n  function indent(state) {\n    if (state.indentCount == 0) {\n      state.indentCount++;\n      var lastScopeOffset = state.scopes[0].offset;\n      var currentOffset = lastScopeOffset + config.indentUnit;\n      state.scopes.unshift({ offset:currentOffset });\n    }\n  }\n\n  function dedent(state) {\n    if (state.scopes.length == 1) return;\n\n    state.scopes.shift();\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek();\n\n    // Comment\n    if (stream.match(\"/*\")) {\n      state.tokenizer = comment(stream.indentation(), true);\n      return state.tokenizer(stream, state);\n    }\n    if (stream.match(\"//\")) {\n      state.tokenizer = comment(stream.indentation(), false);\n      return state.tokenizer(stream, state);\n    }\n\n    // Interpolation\n    if (stream.match(\"#{\")) {\n      state.tokenizer = buildInterpolationTokenizer(tokenBase);\n      return \"operator\";\n    }\n\n    // Strings\n    if (ch === '\"' || ch === \"'\") {\n      stream.next();\n      state.tokenizer = buildStringTokenizer(ch);\n      return \"string\";\n    }\n\n    if(!state.cursorHalf){// state.cursorHalf === 0\n    // first half i.e. before : for key-value pairs\n    // including selectors\n\n      if (ch === \".\") {\n        stream.next();\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"atom\";\n        } else if (stream.peek() === \"#\") {\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      if (ch === \"#\") {\n        stream.next();\n        // ID selectors\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"atom\";\n        }\n        if (stream.peek() === \"#\") {\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"variable-2\";\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/))\n        return \"number\";\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/))\n        return \"unit\";\n\n      if (stream.match(keywordsRegexp))\n        return \"keyword\";\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        return \"atom\";\n      }\n\n      if (ch === \"=\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^=[\\w-]+/)) {\n          indent(state);\n          return \"meta\";\n        }\n      }\n\n      if (ch === \"+\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^\\+[\\w-]+/)){\n          return \"variable-3\";\n        }\n      }\n\n      if(ch === \"@\"){\n        if(stream.match(/@extend/)){\n          if(!stream.match(/\\s*[\\w]/))\n            dedent(state);\n        }\n      }\n\n\n      // Indent Directives\n      if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {\n        indent(state);\n        return \"meta\";\n      }\n\n      // Other Directives\n      if (ch === \"@\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"meta\";\n      }\n\n      if (stream.eatWhile(/[\\w-]/)){\n        if(stream.match(/ *: *[\\w-\\+\\$#!\\(\"']/,false)){\n          return \"propery\";\n        }\n        else if(stream.match(/ *:/,false)){\n          indent(state);\n          state.cursorHalf = 1;\n          return \"atom\";\n        }\n        else if(stream.match(/ *,/,false)){\n          return \"atom\";\n        }\n        else{\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      if(ch === \":\"){\n        if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element\n          return \"keyword\";\n        }\n        stream.next();\n        state.cursorHalf=1;\n        return \"operator\";\n      }\n\n    } // cursorHalf===0 ends here\n    else{\n\n      if (ch === \"#\") {\n        stream.next();\n        // Hex numbers\n        if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){\n          if(!stream.peek()){\n            state.cursorHalf = 0;\n          }\n          return \"number\";\n        }\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"number\";\n      }\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"unit\";\n      }\n\n      if (stream.match(keywordsRegexp)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"keyword\";\n      }\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"atom\";\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"variable-3\";\n      }\n\n      // bang character for !important, !default, etc.\n      if (ch === \"!\") {\n        stream.next();\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n      }\n\n      if (stream.match(opRegexp)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"operator\";\n      }\n\n      // attributes\n      if (stream.eatWhile(/[\\w-]/)) {\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"attribute\";\n      }\n\n      //stream.eatSpace();\n      if(!stream.peek()){\n        state.cursorHalf = 0;\n        return null;\n      }\n\n    } // else ends here\n\n    if (stream.match(opRegexp))\n      return \"operator\";\n\n    // If we haven't returned by now, we move 1 character\n    // and return an error\n    stream.next();\n    return null;\n  }\n\n  function tokenLexer(stream, state) {\n    if (stream.sol()) state.indentCount = 0;\n    var style = state.tokenizer(stream, state);\n    var current = stream.current();\n\n    if (current === \"@return\" || current === \"}\"){\n      dedent(state);\n    }\n\n    if (style !== null) {\n      var startOfToken = stream.pos - current.length;\n\n      var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n      var newScopes = [];\n\n      for (var i = 0; i < state.scopes.length; i++) {\n        var scope = state.scopes[i];\n\n        if (scope.offset <= withCurrentIndent)\n          newScopes.push(scope);\n      }\n\n      state.scopes = newScopes;\n    }\n\n\n    return style;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenizer: tokenBase,\n        scopes: [{offset: 0, type: \"sass\"}],\n        indentCount: 0,\n        cursorHalf: 0,  // cursor half tells us if cursor lies after (1)\n                        // or before (0) colon (well... more or less)\n        definedVars: [],\n        definedMixins: []\n      };\n    },\n    token: function(stream, state) {\n      var style = tokenLexer(stream, state);\n\n      state.lastToken = { style: style, content: stream.current() };\n\n      return style;\n    },\n\n    indent: function(state) {\n      return state.scopes[0].offset;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-sass\", \"sass\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/scheme/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Scheme mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"scheme.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Scheme</a>\n  </ul>\n</div>\n\n<article>\n<h2>Scheme mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; See if the input starts with a given symbol.\n(define (match-symbol input pattern)\n  (cond ((null? (remain input)) #f)\n\t((eqv? (car (remain input)) pattern) (r-cdr input))\n\t(else #f)))\n\n; Allow the input to start with one of a list of patterns.\n(define (match-or input pattern)\n  (cond ((null? pattern) #f)\n\t((match-pattern input (car pattern)))\n\t(else (match-or input (cdr pattern)))))\n\n; Allow a sequence of patterns.\n(define (match-seq input pattern)\n  (if (null? pattern)\n      input\n      (let ((match (match-pattern input (car pattern))))\n\t(if match (match-seq match (cdr pattern)) #f))))\n\n; Match with the pattern but no problem if it does not match.\n(define (match-opt input pattern)\n  (let ((match (match-pattern input (car pattern))))\n    (if match match input)))\n\n; Match anything (other than '()), until pattern is found. The rather\n; clumsy form of requiring an ending pattern is needed to decide where\n; the end of the match is. If none is given, this will match the rest\n; of the sentence.\n(define (match-any input pattern)\n  (cond ((null? (remain input)) #f)\n\t((null? pattern) (f-cons (remain input) (clear-remain input)))\n\t(else\n\t (let ((accum-any (collector)))\n\t   (define (match-pattern-any input pattern)\n\t     (cond ((null? (remain input)) #f)\n\t\t   (else (accum-any (car (remain input)))\n\t\t\t (cond ((match-pattern (r-cdr input) pattern))\n\t\t\t       (else (match-pattern-any (r-cdr input) pattern))))))\n\t   (let ((retval (match-pattern-any input (car pattern))))\n\t     (if retval\n\t\t (f-cons (accum-any) retval)\n\t\t #f))))))\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-scheme</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/scheme/scheme.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Koh Zi Han, based on implementation by Koh Zi Chun\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"scheme\", function () {\n    var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n        ATOM = \"atom\", NUMBER = \"number\", BRACKET = \"bracket\";\n    var INDENT_WORD_SKIP = 2;\n\n    function makeKeywords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = makeKeywords(\"λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?\");\n    var indentKeys = makeKeywords(\"define let letrec let* lambda\");\n\n    function stateStack(indent, type, prev) { // represents a state stack object\n        this.indent = indent;\n        this.type = type;\n        this.prev = prev;\n    }\n\n    function pushStack(state, indent, type) {\n        state.indentStack = new stateStack(indent, type, state.indentStack);\n    }\n\n    function popStack(state) {\n        state.indentStack = state.indentStack.prev;\n    }\n\n    var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\\/[01]+#*)?i|[-+]?[01]+#*(?:\\/[01]+#*)?@[-+]?[01]+#*(?:\\/[01]+#*)?|[-+]?[01]+#*(?:\\/[01]+#*)?[-+](?:[01]+#*(?:\\/[01]+#*)?)?i|[-+]?[01]+#*(?:\\/[01]+#*)?)(?=[()\\s;\"]|$)/i);\n    var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?)(?=[()\\s;\"]|$)/i);\n    var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\\da-f]+#*(?:\\/[\\da-f]+#*)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?@[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?[-+](?:[\\da-f]+#*(?:\\/[\\da-f]+#*)?)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?)(?=[()\\s;\"]|$)/i);\n    var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)i|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)@[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)?i|(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*))(?=[()\\s;\"]|$)/i);\n\n    function isBinaryNumber (stream) {\n        return stream.match(binaryMatcher);\n    }\n\n    function isOctalNumber (stream) {\n        return stream.match(octalMatcher);\n    }\n\n    function isDecimalNumber (stream, backup) {\n        if (backup === true) {\n            stream.backUp(1);\n        }\n        return stream.match(decimalMatcher);\n    }\n\n    function isHexNumber (stream) {\n        return stream.match(hexMatcher);\n    }\n\n    return {\n        startState: function () {\n            return {\n                indentStack: null,\n                indentation: 0,\n                mode: false,\n                sExprComment: false\n            };\n        },\n\n        token: function (stream, state) {\n            if (state.indentStack == null && stream.sol()) {\n                // update indentation, but only if indentStack is empty\n                state.indentation = stream.indentation();\n            }\n\n            // skip spaces\n            if (stream.eatSpace()) {\n                return null;\n            }\n            var returnType = null;\n\n            switch(state.mode){\n                case \"string\": // multi-line string parsing mode\n                    var next, escaped = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"\\\"\" && !escaped) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        escaped = !escaped && next == \"\\\\\";\n                    }\n                    returnType = STRING; // continue on in scheme-string mode\n                    break;\n                case \"comment\": // comment parsing mode\n                    var next, maybeEnd = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"#\" && maybeEnd) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        maybeEnd = (next == \"|\");\n                    }\n                    returnType = COMMENT;\n                    break;\n                case \"s-expr-comment\": // s-expr commenting mode\n                    state.mode = false;\n                    if(stream.peek() == \"(\" || stream.peek() == \"[\"){\n                        // actually start scheme s-expr commenting mode\n                        state.sExprComment = 0;\n                    }else{\n                        // if not we just comment the entire of the next token\n                        stream.eatWhile(/[^/s]/); // eat non spaces\n                        returnType = COMMENT;\n                        break;\n                    }\n                default: // default parsing mode\n                    var ch = stream.next();\n\n                    if (ch == \"\\\"\") {\n                        state.mode = \"string\";\n                        returnType = STRING;\n\n                    } else if (ch == \"'\") {\n                        returnType = ATOM;\n                    } else if (ch == '#') {\n                        if (stream.eat(\"|\")) {                    // Multi-line comment\n                            state.mode = \"comment\"; // toggle to comment mode\n                            returnType = COMMENT;\n                        } else if (stream.eat(/[tf]/i)) {            // #t/#f (atom)\n                            returnType = ATOM;\n                        } else if (stream.eat(';')) {                // S-Expr comment\n                            state.mode = \"s-expr-comment\";\n                            returnType = COMMENT;\n                        } else {\n                            var numTest = null, hasExactness = false, hasRadix = true;\n                            if (stream.eat(/[ei]/i)) {\n                                hasExactness = true;\n                            } else {\n                                stream.backUp(1);       // must be radix specifier\n                            }\n                            if (stream.match(/^#b/i)) {\n                                numTest = isBinaryNumber;\n                            } else if (stream.match(/^#o/i)) {\n                                numTest = isOctalNumber;\n                            } else if (stream.match(/^#x/i)) {\n                                numTest = isHexNumber;\n                            } else if (stream.match(/^#d/i)) {\n                                numTest = isDecimalNumber;\n                            } else if (stream.match(/^[-+0-9.]/, false)) {\n                                hasRadix = false;\n                                numTest = isDecimalNumber;\n                            // re-consume the intial # if all matches failed\n                            } else if (!hasExactness) {\n                                stream.eat('#');\n                            }\n                            if (numTest != null) {\n                                if (hasRadix && !hasExactness) {\n                                    // consume optional exactness after radix\n                                    stream.match(/^#[ei]/i);\n                                }\n                                if (numTest(stream))\n                                    returnType = NUMBER;\n                            }\n                        }\n                    } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal\n                        returnType = NUMBER;\n                    } else if (ch == \";\") { // comment\n                        stream.skipToEnd(); // rest of the line is a comment\n                        returnType = COMMENT;\n                    } else if (ch == \"(\" || ch == \"[\") {\n                      var keyWord = ''; var indentTemp = stream.column(), letter;\n                        /**\n                        Either\n                        (indent-word ..\n                        (non-indent-word ..\n                        (;something else, bracket, etc.\n                        */\n\n                        while ((letter = stream.eat(/[^\\s\\(\\[\\;\\)\\]]/)) != null) {\n                            keyWord += letter;\n                        }\n\n                        if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word\n\n                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);\n                        } else { // non-indent word\n                            // we continue eating the spaces\n                            stream.eatSpace();\n                            if (stream.eol() || stream.peek() == \";\") {\n                                // nothing significant after\n                                // we restart indentation 1 space after\n                                pushStack(state, indentTemp + 1, ch);\n                            } else {\n                                pushStack(state, indentTemp + stream.current().length, ch); // else we match\n                            }\n                        }\n                        stream.backUp(stream.current().length - 1); // undo all the eating\n\n                        if(typeof state.sExprComment == \"number\") state.sExprComment++;\n\n                        returnType = BRACKET;\n                    } else if (ch == \")\" || ch == \"]\") {\n                        returnType = BRACKET;\n                        if (state.indentStack != null && state.indentStack.type == (ch == \")\" ? \"(\" : \"[\")) {\n                            popStack(state);\n\n                            if(typeof state.sExprComment == \"number\"){\n                                if(--state.sExprComment == 0){\n                                    returnType = COMMENT; // final closing bracket\n                                    state.sExprComment = false; // turn off s-expr commenting mode\n                                }\n                            }\n                        }\n                    } else {\n                        stream.eatWhile(/[\\w\\$_\\-!$%&*+\\.\\/:<=>?@\\^~]/);\n\n                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {\n                            returnType = BUILTIN;\n                        } else returnType = \"variable\";\n                    }\n            }\n            return (typeof state.sExprComment == \"number\") ? COMMENT : returnType;\n        },\n\n        indent: function (state) {\n            if (state.indentStack == null) return state.indentation;\n            return state.indentStack.indent;\n        },\n\n        lineComment: \";;\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/x-scheme\", \"scheme\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/shell/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Shell mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=stylesheet href=../../lib/codemirror.css>\n<script src=../../lib/codemirror.js></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=shell.js></script>\n<style type=text/css>\n  .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Shell</a>\n  </ul>\n</div>\n\n<article>\n<h2>Shell mode</h2>\n\n\n<textarea id=code>\n#!/bin/bash\n\n# clone the repository\ngit clone http://github.com/garden/tree\n\n# generate HTTPS credentials\ncd tree\nopenssl genrsa -aes256 -out https.key 1024\nopenssl req -new -nodes -key https.key -out https.csr\nopenssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt\ncp https.key{,.orig}\nopenssl rsa -in https.key.orig -out https.key\n\n# start the server in HTTPS mode\ncd web\nsudo node ../server.js 443 'yes' &gt;&gt; ../node.log &amp;\n\n# here is how to stop the server\nfor pid in `ps aux | grep 'node ../server.js' | awk '{print $2}'` ; do\n  sudo kill -9 $pid 2&gt; /dev/null\ndone\n\nexit 0</textarea>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: 'shell',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-sh</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/shell/shell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('shell', function() {\n\n  var words = {};\n  function define(style, string) {\n    var split = string.split(' ');\n    for(var i = 0; i < split.length; i++) {\n      words[split[i]] = style;\n    }\n  };\n\n  // Atoms\n  define('atom', 'true false');\n\n  // Keywords\n  define('keyword', 'if then do else elif while until for in esac fi fin ' +\n    'fil done exit set unset export function');\n\n  // Commands\n  define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' +\n    'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' +\n    'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' +\n    'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' +\n    'touch vi vim wall wc wget who write yes zsh');\n\n  function tokenBase(stream, state) {\n    if (stream.eatSpace()) return null;\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      stream.next();\n      return null;\n    }\n    if (ch === '\\'' || ch === '\"' || ch === '`') {\n      state.tokens.unshift(tokenString(ch));\n      return tokenize(stream, state);\n    }\n    if (ch === '#') {\n      if (sol && stream.eat('!')) {\n        stream.skipToEnd();\n        return 'meta'; // 'comment'?\n      }\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (ch === '$') {\n      state.tokens.unshift(tokenDollar);\n      return tokenize(stream, state);\n    }\n    if (ch === '+' || ch === '=') {\n      return 'operator';\n    }\n    if (ch === '-') {\n      stream.eat('-');\n      stream.eatWhile(/\\w/);\n      return 'attribute';\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/\\d/);\n      if(stream.eol() || !/\\w/.test(stream.peek())) {\n        return 'number';\n      }\n    }\n    stream.eatWhile(/[\\w-]/);\n    var cur = stream.current();\n    if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n    return words.hasOwnProperty(cur) ? words[cur] : null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var next, end = false, escaped = false;\n      while ((next = stream.next()) != null) {\n        if (next === quote && !escaped) {\n          end = true;\n          break;\n        }\n        if (next === '$' && !escaped && quote !== '\\'') {\n          escaped = true;\n          stream.backUp(1);\n          state.tokens.unshift(tokenDollar);\n          break;\n        }\n        escaped = !escaped && next === '\\\\';\n      }\n      if (end || !escaped) {\n        state.tokens.shift();\n      }\n      return (quote === '`' || quote === ')' ? 'quote' : 'string');\n    };\n  };\n\n  var tokenDollar = function(stream, state) {\n    if (state.tokens.length > 1) stream.eat('$');\n    var ch = stream.next(), hungry = /\\w/;\n    if (ch === '{') hungry = /[^}]/;\n    if (ch === '(') {\n      state.tokens[0] = tokenString(')');\n      return tokenize(stream, state);\n    }\n    if (!/\\d/.test(ch)) {\n      stream.eatWhile(hungry);\n      stream.eat('}');\n    }\n    state.tokens.shift();\n    return 'def';\n  };\n\n  function tokenize(stream, state) {\n    return (state.tokens[0] || tokenBase) (stream, state);\n  };\n\n  return {\n    startState: function() {return {tokens:[]};},\n    token: function(stream, state) {\n      return tokenize(stream, state);\n    },\n    lineComment: '#',\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/shell/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({}, \"shell\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"var\",\n     \"text [def $var] text\");\n  MT(\"varBraces\",\n     \"text[def ${var}]text\");\n  MT(\"varVar\",\n     \"text [def $a$b] text\");\n  MT(\"varBracesVarBraces\",\n     \"text[def ${a}${b}]text\");\n\n  MT(\"singleQuotedVar\",\n     \"[string 'text $var text']\");\n  MT(\"singleQuotedVarBraces\",\n     \"[string 'text ${var} text']\");\n\n  MT(\"doubleQuotedVar\",\n     '[string \"text ][def $var][string  text\"]');\n  MT(\"doubleQuotedVarBraces\",\n     '[string \"text][def ${var}][string text\"]');\n  MT(\"doubleQuotedVarPunct\",\n     '[string \"text ][def $@][string  text\"]');\n  MT(\"doubleQuotedVarVar\",\n     '[string \"][def $a$b][string \"]');\n  MT(\"doubleQuotedVarBracesVarBraces\",\n     '[string \"][def ${a}${b}][string \"]');\n\n  MT(\"notAString\",\n     \"text\\\\'text\");\n  MT(\"escapes\",\n     \"outside\\\\'\\\\\\\"\\\\`\\\\\\\\[string \\\"inside\\\\`\\\\'\\\\\\\"\\\\\\\\`\\\\$notAVar\\\"]outside\\\\$\\\\(notASubShell\\\\)\");\n\n  MT(\"subshell\",\n     \"[builtin echo] [quote $(whoami)] s log, stardate [quote `date`].\");\n  MT(\"doubleQuotedSubshell\",\n     \"[builtin echo] [string \\\"][quote $(whoami)][string 's log, stardate `date`.\\\"]\");\n\n  MT(\"hashbang\",\n     \"[meta #!/bin/bash]\");\n  MT(\"comment\",\n     \"text [comment # Blurb]\");\n\n  MT(\"numbers\",\n     \"[number 0] [number 1] [number 2]\");\n  MT(\"keywords\",\n     \"[keyword while] [atom true]; [keyword do]\",\n     \"  [builtin sleep] [number 3]\",\n     \"[keyword done]\");\n  MT(\"options\",\n     \"[builtin ls] [attribute -l] [attribute --human-readable]\");\n  MT(\"operator\",\n     \"[def var][operator =]value\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sieve/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Sieve (RFC5228) mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"sieve.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Sieve (RFC5228)</a>\n  </ul>\n</div>\n\n<article>\n<h2>Sieve (RFC5228) mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n#\n# Example Sieve Filter\n# Declare any optional features or extension used by the script\n#\n\nrequire [\"fileinto\", \"reject\"];\n\n#\n# Reject any large messages (note that the four leading dots get\n# \"stuffed\" to three)\n#\nif size :over 1M\n{\n  reject text:\nPlease do not send me large attachments.\nPut your file on a server and send me the URL.\nThank you.\n.... Fred\n.\n;\n  stop;\n}\n\n#\n# Handle messages from known mailing lists\n# Move messages from IETF filter discussion list to filter folder\n#\nif header :is \"Sender\" \"owner-ietf-mta-filters@imc.org\"\n{\n  fileinto \"filter\";  # move to \"filter\" folder\n}\n#\n# Keep all messages to or from people in my company\n#\nelsif address :domain :is [\"From\", \"To\"] \"example.com\"\n{\n  keep;               # keep in \"In\" folder\n}\n\n#\n# Try and catch unsolicited email.  If a message is not to me,\n# or it contains a subject known to be spam, file it away.\n#\nelsif anyof (not address :all :contains\n               [\"To\", \"Cc\", \"Bcc\"] \"me@example.com\",\n             header :matches \"subject\"\n               [\"*make*money*fast*\", \"*university*dipl*mas*\"])\n{\n  # If message header does not contain my address,\n  # it's from a list.\n  fileinto \"spam\";   # move to \"spam\" folder\n}\nelse\n{\n  # Move all other (non-company) mail to \"personal\"\n  # folder.\n  fileinto \"personal\";\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/sieve</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sieve/sieve.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sieve\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\"if elsif else stop require\");\n  var atoms = words(\"true false not\");\n  var indentUnit = config.indentUnit;\n\n  function tokenBase(stream, state) {\n\n    var ch = stream.next();\n    if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n\n    if (ch === '#') {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    if (ch == \"\\\"\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n\n    if (ch == \"(\") {\n      state._indent.push(\"(\");\n      // add virtual angel wings so that editor behaves...\n      // ...more sane incase of broken brackets\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch === \"{\") {\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch == \")\")  {\n      state._indent.pop();\n      state._indent.pop();\n    }\n\n    if (ch === \"}\") {\n      state._indent.pop();\n      return null;\n    }\n\n    if (ch == \",\")\n      return null;\n\n    if (ch == \";\")\n      return null;\n\n\n    if (/[{}\\(\\),;]/.test(ch))\n      return null;\n\n    // 1*DIGIT \"K\" / \"M\" / \"G\"\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\d]/);\n      stream.eat(/[KkMmGg]/);\n      return \"number\";\n    }\n\n    // \":\" (ALPHA / \"_\") *(ALPHA / DIGIT / \"_\")\n    if (ch == \":\") {\n      stream.eatWhile(/[a-zA-Z_]/);\n      stream.eatWhile(/[a-zA-Z0-9_]/);\n\n      return \"operator\";\n    }\n\n    stream.eatWhile(/\\w/);\n    var cur = stream.current();\n\n    // \"text:\" *(SP / HTAB) (hash-comment / CRLF)\n    // *(multiline-literal / multiline-dotstart)\n    // \".\" CRLF\n    if ((cur == \"text\") && stream.eat(\":\"))\n    {\n      state.tokenize = tokenMultiLineString;\n      return \"string\";\n    }\n\n    if (keywords.propertyIsEnumerable(cur))\n      return \"keyword\";\n\n    if (atoms.propertyIsEnumerable(cur))\n      return \"atom\";\n\n    return null;\n  }\n\n  function tokenMultiLineString(stream, state)\n  {\n    state._multiLineString = true;\n    // the first line is special it may contain a comment\n    if (!stream.sol()) {\n      stream.eatSpace();\n\n      if (stream.peek() == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      stream.skipToEnd();\n      return \"string\";\n    }\n\n    if ((stream.next() == \".\")  && (stream.eol()))\n    {\n      state._multiLineString = false;\n      state.tokenize = tokenBase;\n    }\n\n    return \"string\";\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              _indent: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n\n      return (state.tokenize || tokenBase)(stream, state);;\n    },\n\n    indent: function(state, _textAfter) {\n      var length = state._indent.length;\n      if (_textAfter && (_textAfter[0] == \"}\"))\n        length--;\n\n      if (length <0)\n        length = 0;\n\n      return length * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/sieve\", \"sieve\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/slim/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SLIM mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<script src=\"https://code.jquery.com/jquery-1.11.1.min.js\"></script>\n<script src=\"https://code.jquery.com/ui/1.11.0/jquery-ui.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlembedded/htmlembedded.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../coffeescript/coffeescript.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../ruby/ruby.js\"></script>\n<script src=\"../markdown/markdown.js\"></script>\n<script src=\"slim.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SLIM</a>\n  </ul>\n</div>\n\n<article>\n  <h2>SLIM mode</h2>\n  <form><textarea id=\"code\" name=\"code\">\nbody\n  table\n    - for user in users\n      td id=\"user_#{user.id}\" class=user.role\n        a href=user_action(user, :edit) Edit #{user.name}\n        a href=(path_to_user user) = user.name\nbody\n  h1(id=\"logo\") = page_logo\n  h2[id=\"tagline\" class=\"small tagline\"] = page_tagline\n\nh2[id=\"tagline\"\n   class=\"small tagline\"] = page_tagline\n\nh1 id = \"logo\" = page_logo\nh2 [ id = \"tagline\" ] = page_tagline\n\n/ comment\n  second line\n/! html comment\n   second line\n<!-- html comment -->\n<a href=\"#{'hello' if set}\">link</a>\na.slim href=\"work\" disabled=false running==:atom Text <b>bold</b>\n.clazz data-id=\"test\" == 'hello' unless quark\n | Text mode #{12}\n   Second line\n= x ||= :ruby_atom\n#menu.left\n  - @env.each do |x|\n    li: a = x\n*@dyntag attr=\"val\"\n.first *{:class => [:second, :third]} Text\n.second class=[\"text\",\"more\"]\n.third class=:text,:symbol\n\n  </textarea></form>\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      lineNumbers: true,\n      theme: \"ambiance\",\n      mode: \"application/x-slim\"\n    });\n    $('.CodeMirror').resizable({\n      resize: function() {\n        editor.setSize($(this).width(), $(this).height());\n        //editor.refresh();\n      }\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>application/x-slim</code>.</p>\n\n  <p>\n    <strong>Parsing/Highlighting Tests:</strong>\n    <a href=\"../../test/index.html#slim_*\">normal</a>,\n    <a href=\"../../test/index.html#verbose,slim_*\">verbose</a>.\n  </p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/slim/slim.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  CodeMirror.defineMode(\"slim\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n    var modes = { html: htmlMode, ruby: rubyMode };\n    var embedded = {\n      ruby: \"ruby\",\n      javascript: \"javascript\",\n      css: \"text/css\",\n      sass: \"text/x-sass\",\n      scss: \"text/x-scss\",\n      less: \"text/x-less\",\n      styl: \"text/x-styl\", // no highlighting so far\n      coffee: \"coffeescript\",\n      asciidoc: \"text/x-asciidoc\",\n      markdown: \"text/x-markdown\",\n      textile: \"text/x-textile\", // no highlighting so far\n      creole: \"text/x-creole\", // no highlighting so far\n      wiki: \"text/x-wiki\", // no highlighting so far\n      mediawiki: \"text/x-mediawiki\", // no highlighting so far\n      rdoc: \"text/x-rdoc\", // no highlighting so far\n      builder: \"text/x-builder\", // no highlighting so far\n      nokogiri: \"text/x-nokogiri\", // no highlighting so far\n      erb: \"application/x-erb\"\n    };\n    var embeddedRegexp = function(map){\n      var arr = [];\n      for(var key in map) arr.push(key);\n      return new RegExp(\"^(\"+arr.join('|')+\"):\");\n    }(embedded);\n\n    var styleMap = {\n      \"commentLine\": \"comment\",\n      \"slimSwitch\": \"operator special\",\n      \"slimTag\": \"tag\",\n      \"slimId\": \"attribute def\",\n      \"slimClass\": \"attribute qualifier\",\n      \"slimAttribute\": \"attribute\",\n      \"slimSubmode\": \"keyword special\",\n      \"closeAttributeTag\": null,\n      \"slimDoctype\": null,\n      \"lineContinuation\": null\n    };\n    var closing = {\n      \"{\": \"}\",\n      \"[\": \"]\",\n      \"(\": \")\"\n    };\n\n    var nameStartChar = \"_a-zA-Z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\n    var nameChar = nameStartChar + \"\\\\-0-9\\xB7\\u0300-\\u036F\\u203F-\\u2040\";\n    var nameRegexp = new RegExp(\"^[:\"+nameStartChar+\"](?::[\"+nameChar+\"]|[\"+nameChar+\"]*)\");\n    var attributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*(?=\\\\s*=)\");\n    var wrappedAttributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*\");\n    var classNameRegexp = /^\\.-?[_a-zA-Z]+[\\w\\-]*/;\n    var classIdRegexp = /^#[_a-zA-Z]+[\\w\\-]*/;\n\n    function backup(pos, tokenize, style) {\n      var restore = function(stream, state) {\n        state.tokenize = tokenize;\n        if (stream.pos < pos) {\n          stream.pos = pos;\n          return style;\n        }\n        return state.tokenize(stream, state);\n      };\n      return function(stream, state) {\n        state.tokenize = restore;\n        return tokenize(stream, state);\n      };\n    }\n\n    function maybeBackup(stream, state, pat, offset, style) {\n      var cur = stream.current();\n      var idx = cur.search(pat);\n      if (idx > -1) {\n        state.tokenize = backup(stream.pos, state.tokenize, style);\n        stream.backUp(cur.length - idx - offset);\n      }\n      return style;\n    }\n\n    function continueLine(state, column) {\n      state.stack = {\n        parent: state.stack,\n        style: \"continuation\",\n        indented: column,\n        tokenize: state.line\n      };\n      state.line = state.tokenize;\n    }\n    function finishContinue(state) {\n      if (state.line == state.tokenize) {\n        state.line = state.stack.tokenize;\n        state.stack = state.stack.parent;\n      }\n    }\n\n    function lineContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        if (stream.match(/^\\\\$/)) {\n          continueLine(state, column);\n          return \"lineContinuation\";\n        }\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/(?:^|[^\\\\])(?:\\\\\\\\)*\\\\$/)) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function commaContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/,$/)) {\n          continueLine(state, column);\n        }\n        return style;\n      };\n    }\n\n    function rubyInQuote(endQuote, tokenize) {\n      // TODO: add multi line support\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = tokenize;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n    function startRubySplat(tokenize) {\n      var rubyState;\n      var runSplat = function(stream, state) {\n        if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {\n          stream.backUp(1);\n          if (stream.eatSpace()) {\n            state.rubyState = rubyState;\n            state.tokenize = tokenize;\n            return tokenize(stream, state);\n          }\n          stream.next();\n        }\n        return ruby(stream, state);\n      };\n      return function(stream, state) {\n        rubyState = state.rubyState;\n        state.rubyState = rubyMode.startState();\n        state.tokenize = runSplat;\n        return ruby(stream, state);\n      };\n    }\n\n    function ruby(stream, state) {\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function htmlLine(stream, state) {\n      if (stream.match(/^\\\\$/)) {\n        return \"lineContinuation\";\n      }\n      return html(stream, state);\n    }\n    function html(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      return maybeBackup(stream, state, /[^\\\\]#\\{/, 1, htmlMode.token(stream, state.htmlState));\n    }\n\n    function startHtmlLine(lastTokenize) {\n      return function(stream, state) {\n        var style = htmlLine(stream, state);\n        if (stream.eol()) state.tokenize = lastTokenize;\n        return style;\n      };\n    }\n\n    function startHtmlMode(stream, state, offset) {\n      state.stack = {\n        parent: state.stack,\n        style: \"html\",\n        indented: stream.column() + offset, // pipe + space\n        tokenize: state.line\n      };\n      state.line = state.tokenize = html;\n      return null;\n    }\n\n    function comment(stream, state) {\n      stream.skipToEnd();\n      return state.stack.style;\n    }\n\n    function commentMode(stream, state) {\n      state.stack = {\n        parent: state.stack,\n        style: \"comment\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = comment;\n      return comment(stream, state);\n    }\n\n    function attributeWrapper(stream, state) {\n      if (stream.eat(state.stack.endQuote)) {\n        state.line = state.stack.line;\n        state.tokenize = state.stack.tokenize;\n        state.stack = state.stack.parent;\n        return null;\n      }\n      if (stream.match(wrappedAttributeNameRegexp)) {\n        state.tokenize = attributeWrapperAssign;\n        return \"slimAttribute\";\n      }\n      stream.next();\n      return null;\n    }\n    function attributeWrapperAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = attributeWrapperValue;\n        return null;\n      }\n      return attributeWrapper(stream, state);\n    }\n    function attributeWrapperValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, attributeWrapper);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(attributeWrapper)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = attributeWrapper;\n        return \"keyword\";\n      }\n      return startRubySplat(attributeWrapper)(stream, state);\n    }\n\n    function startAttributeWrapperMode(state, endQuote, tokenize) {\n      state.stack = {\n        parent: state.stack,\n        style: \"wrapper\",\n        indented: state.indented + 1,\n        tokenize: tokenize,\n        line: state.line,\n        endQuote: endQuote\n      };\n      state.line = state.tokenize = attributeWrapper;\n      return null;\n    }\n\n    function sub(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);\n      subStream.pos = stream.pos - state.stack.indented;\n      subStream.start = stream.start - state.stack.indented;\n      subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;\n      subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;\n      var style = state.subMode.token(subStream, state.subState);\n      stream.pos = subStream.pos + state.stack.indented;\n      return style;\n    }\n    function firstSub(stream, state) {\n      state.stack.indented = stream.column();\n      state.line = state.tokenize = sub;\n      return state.tokenize(stream, state);\n    }\n\n    function createMode(mode) {\n      var query = embedded[mode];\n      var spec = CodeMirror.mimeModes[query];\n      if (spec) {\n        return CodeMirror.getMode(config, spec);\n      }\n      var factory = CodeMirror.modes[query];\n      if (factory) {\n        return factory(config, {name: query});\n      }\n      return CodeMirror.getMode(config, \"null\");\n    }\n\n    function getMode(mode) {\n      if (!modes.hasOwnProperty(mode)) {\n        return modes[mode] = createMode(mode);\n      }\n      return modes[mode];\n    }\n\n    function startSubMode(mode, state) {\n      var subMode = getMode(mode);\n      var subState = subMode.startState && subMode.startState();\n\n      state.subMode = subMode;\n      state.subState = subState;\n\n      state.stack = {\n        parent: state.stack,\n        style: \"sub\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = state.tokenize = firstSub;\n      return \"slimSubmode\";\n    }\n\n    function doctypeLine(stream, _state) {\n      stream.skipToEnd();\n      return \"slimDoctype\";\n    }\n\n    function startLine(stream, state) {\n      var ch = stream.peek();\n      if (ch == '<') {\n        return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);\n      }\n      if (stream.match(/^[|']/)) {\n        return startHtmlMode(stream, state, 1);\n      }\n      if (stream.match(/^\\/(!|\\[\\w+])?/)) {\n        return commentMode(stream, state);\n      }\n      if (stream.match(/^(-|==?[<>]?)/)) {\n        state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^doctype\\b/)) {\n        state.tokenize = doctypeLine;\n        return \"keyword\";\n      }\n\n      var m = stream.match(embeddedRegexp);\n      if (m) {\n        return startSubMode(m[1], state);\n      }\n\n      return slimTag(stream, state);\n    }\n\n    function slim(stream, state) {\n      if (state.startOfLine) {\n        return startLine(stream, state);\n      }\n      return slimTag(stream, state);\n    }\n\n    function slimTag(stream, state) {\n      if (stream.eat('*')) {\n        state.tokenize = startRubySplat(slimTagExtras);\n        return null;\n      }\n      if (stream.match(nameRegexp)) {\n        state.tokenize = slimTagExtras;\n        return \"slimTag\";\n      }\n      return slimClass(stream, state);\n    }\n    function slimTagExtras(stream, state) {\n      if (stream.match(/^(<>?|><?)/)) {\n        state.tokenize = slimClass;\n        return null;\n      }\n      return slimClass(stream, state);\n    }\n    function slimClass(stream, state) {\n      if (stream.match(classIdRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimId\";\n      }\n      if (stream.match(classNameRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimClass\";\n      }\n      return slimAttribute(stream, state);\n    }\n    function slimAttribute(stream, state) {\n      if (stream.match(/^([\\[\\{\\(])/)) {\n        return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);\n      }\n      if (stream.match(attributeNameRegexp)) {\n        state.tokenize = slimAttributeAssign;\n        return \"slimAttribute\";\n      }\n      if (stream.peek() == '*') {\n        stream.next();\n        state.tokenize = startRubySplat(slimContent);\n        return null;\n      }\n      return slimContent(stream, state);\n    }\n    function slimAttributeAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = slimAttributeValue;\n        return null;\n      }\n      // should never happen, because of forward lookup\n      return slimAttribute(stream, state);\n    }\n\n    function slimAttributeValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, slimAttribute);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(slimAttribute)(stream, state);\n      }\n      if (ch == ':') {\n        return startRubySplat(slimAttributeSymbols)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = slimAttribute;\n        return \"keyword\";\n      }\n      return startRubySplat(slimAttribute)(stream, state);\n    }\n    function slimAttributeSymbols(stream, state) {\n      stream.backUp(1);\n      if (stream.match(/^[^\\s],(?=:)/)) {\n        state.tokenize = startRubySplat(slimAttributeSymbols);\n        return null;\n      }\n      stream.next();\n      return slimAttribute(stream, state);\n    }\n    function readQuoted(quote, style, embed, unescaped, nextTokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var fresh = stream.current().length == 0;\n        if (stream.match(/^\\\\$/, fresh)) {\n          if (!fresh) return style;\n          continueLine(state, state.indented);\n          return \"lineContinuation\";\n        }\n        if (stream.match(/^#\\{/, fresh)) {\n          if (!fresh) return style;\n          state.tokenize = rubyInQuote(\"}\", state.tokenize);\n          return null;\n        }\n        var escaped = false, ch;\n        while ((ch = stream.next()) != null) {\n          if (ch == quote && (unescaped || !escaped)) {\n            state.tokenize = nextTokenize;\n            break;\n          }\n          if (embed && ch == \"#\" && !escaped) {\n            if (stream.eat(\"{\")) {\n              stream.backUp(2);\n              break;\n            }\n          }\n          escaped = !escaped && ch == \"\\\\\";\n        }\n        if (stream.eol() && escaped) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function slimContent(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = ruby;\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^\\/$/)) { // tag close hint\n        state.tokenize = slim;\n        return null;\n      }\n      if (stream.match(/^:/)) { // inline tag\n        state.tokenize = slimTag;\n        return \"slimSwitch\";\n      }\n      startHtmlMode(stream, state, 0);\n      return state.tokenize(stream, state);\n    }\n\n    var mode = {\n      // default to html mode\n      startState: function() {\n        var htmlState = htmlMode.startState();\n        var rubyState = rubyMode.startState();\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          stack: null,\n          last: null,\n          tokenize: slim,\n          line: slim,\n          indented: 0\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          subMode: state.subMode,\n          subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),\n          stack: state.stack,\n          last: state.last,\n          tokenize: state.tokenize,\n          line: state.line\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n          state.tokenize = state.line;\n          while (state.stack && state.stack.indented > state.indented && state.last != \"slimSubmode\") {\n            state.line = state.tokenize = state.stack.tokenize;\n            state.stack = state.stack.parent;\n            state.subMode = null;\n            state.subState = null;\n          }\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        if (style) state.last = style;\n        return styleMap.hasOwnProperty(style) ? styleMap[style] : style;\n      },\n\n      blankLine: function(state) {\n        if (state.subMode && state.subMode.blankLine) {\n          return state.subMode.blankLine(state.subState);\n        }\n      },\n\n      innerMode: function(state) {\n        if (state.subMode) return {state: state.subState, mode: state.subMode};\n        return {state: state, mode: mode};\n      }\n\n      //indent: function(state) {\n      //  return state.indented;\n      //}\n    };\n    return mode;\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-slim\", \"slim\");\n  CodeMirror.defineMIME(\"application/x-slim\", \"slim\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/slim/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, \"slim\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Requires at least one media query\n  MT(\"elementName\",\n     \"[tag h1] Hey There\");\n\n  MT(\"oneElementPerLine\",\n     \"[tag h1] Hey There .h2\");\n\n  MT(\"idShortcut\",\n     \"[attribute&def #test] Hey There\");\n\n  MT(\"tagWithIdShortcuts\",\n     \"[tag h1][attribute&def #test] Hey There\");\n\n  MT(\"classShortcut\",\n     \"[attribute&qualifier .hello] Hey There\");\n\n  MT(\"tagWithIdAndClassShortcuts\",\n     \"[tag h1][attribute&def #test][attribute&qualifier .hello] Hey There\");\n\n  MT(\"docType\",\n     \"[keyword doctype] xml\");\n\n  MT(\"comment\",\n     \"[comment / Hello WORLD]\");\n\n  MT(\"notComment\",\n     \"[tag h1] This is not a / comment \");\n\n  MT(\"attributes\",\n     \"[tag a]([attribute title]=[string \\\"test\\\"]) [attribute href]=[string \\\"link\\\"]}\");\n\n  MT(\"multiLineAttributes\",\n     \"[tag a]([attribute title]=[string \\\"test\\\"]\",\n     \"  ) [attribute href]=[string \\\"link\\\"]}\");\n\n  MT(\"htmlCode\",\n     \"[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]\");\n\n  MT(\"rubyBlock\",\n     \"[operator&special =][variable-2 @item]\");\n\n  MT(\"selectorRubyBlock\",\n     \"[tag a][attribute&qualifier .test][operator&special =] [variable-2 @item]\");\n\n  MT(\"nestedRubyBlock\",\n      \"[tag a]\",\n      \"  [operator&special =][variable puts] [string \\\"test\\\"]\");\n\n  MT(\"multilinePlaintext\",\n      \"[tag p]\",\n      \"  | Hello,\",\n      \"    World\");\n\n  MT(\"multilineRuby\",\n      \"[tag p]\",\n      \"  [comment /# this is a comment]\",\n      \"     [comment and this is a comment too]\",\n      \"  | Date/Time\",\n      \"  [operator&special -] [variable now] [operator =] [tag DateTime][operator .][property now]\",\n      \"  [tag strong][operator&special =] [variable now]\",\n      \"  [operator&special -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \\\"December 31, 2006\\\"])\",\n      \"     [operator&special =][string \\\"Happy\\\"]\",\n      \"     [operator&special =][string \\\"Belated\\\"]\",\n      \"     [operator&special =][string \\\"Birthday\\\"]\");\n\n  MT(\"multilineComment\",\n      \"[comment /]\",\n      \"  [comment Multiline]\",\n      \"  [comment Comment]\");\n\n  MT(\"hamlAfterRubyTag\",\n    \"[attribute&qualifier .block]\",\n    \"  [tag strong][operator&special =] [variable now]\",\n    \"  [attribute&qualifier .test]\",\n    \"     [operator&special =][variable now]\",\n    \"  [attribute&qualifier .right]\");\n\n  MT(\"stretchedRuby\",\n     \"[operator&special =] [variable puts] [string \\\"Hello\\\"],\",\n     \"   [string \\\"World\\\"]\");\n\n  MT(\"interpolationInHashAttribute\",\n     \"[tag div]{[attribute id] = [string \\\"]#{[variable test]}[string _]#{[variable ting]}[string \\\"]} test\");\n\n  MT(\"interpolationInHTMLAttribute\",\n     \"[tag div]([attribute title]=[string \\\"]#{[variable test]}[string _]#{[variable ting]()}[string \\\"]) Test\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smalltalk/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smalltalk mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"smalltalk.js\"></script>\n<style>\n      .CodeMirror {border: 2px solid #dee; border-right-width: 10px;}\n      .CodeMirror-gutter {border: none; background: #dee;}\n      .CodeMirror-gutter pre {color: white; font-weight: bold;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smalltalk</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smalltalk mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n\" \n    This is a test of the Smalltalk code\n\"\nSeaside.WAComponent subclass: #MyCounter [\n    | count |\n    MyCounter class &gt;&gt; canBeRoot [ ^true ]\n\n    initialize [\n        super initialize.\n        count := 0.\n    ]\n    states [ ^{ self } ]\n    renderContentOn: html [\n        html heading: count.\n        html anchor callback: [ count := count + 1 ]; with: '++'.\n        html space.\n        html anchor callback: [ count := count - 1 ]; with: '--'.\n    ]\n]\n\nMyCounter registerAsApplication: 'mycounter'\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-stsrc\",\n        indentUnit: 4\n      });\n    </script>\n\n    <p>Simple Smalltalk mode.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-stsrc</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smalltalk/smalltalk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('smalltalk', function(config) {\n\n  var specialChars = /[+\\-\\/\\\\*~<>=@%|&?!.,:;^]/;\n  var keywords = /true|false|nil|self|super|thisContext/;\n\n  var Context = function(tokenizer, parent) {\n    this.next = tokenizer;\n    this.parent = parent;\n  };\n\n  var Token = function(name, context, eos) {\n    this.name = name;\n    this.context = context;\n    this.eos = eos;\n  };\n\n  var State = function() {\n    this.context = new Context(next, null);\n    this.expectVariable = true;\n    this.indentation = 0;\n    this.userIndentationDelta = 0;\n  };\n\n  State.prototype.userIndent = function(indentation) {\n    this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;\n  };\n\n  var next = function(stream, context, state) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '\"') {\n      token = nextComment(stream, new Context(nextComment, context));\n\n    } else if (aChar === '\\'') {\n      token = nextString(stream, new Context(nextString, context));\n\n    } else if (aChar === '#') {\n      if (stream.peek() === '\\'') {\n        stream.next();\n        token = nextSymbol(stream, new Context(nextSymbol, context));\n      } else {\n        if (stream.eatWhile(/[^\\s.{}\\[\\]()]/))\n          token.name = 'string-2';\n        else\n          token.name = 'meta';\n      }\n\n    } else if (aChar === '$') {\n      if (stream.next() === '<') {\n        stream.eatWhile(/[^\\s>]/);\n        stream.next();\n      }\n      token.name = 'string-2';\n\n    } else if (aChar === '|' && state.expectVariable) {\n      token.context = new Context(nextTemporaries, context);\n\n    } else if (/[\\[\\]{}()]/.test(aChar)) {\n      token.name = 'bracket';\n      token.eos = /[\\[{(]/.test(aChar);\n\n      if (aChar === '[') {\n        state.indentation++;\n      } else if (aChar === ']') {\n        state.indentation = Math.max(0, state.indentation - 1);\n      }\n\n    } else if (specialChars.test(aChar)) {\n      stream.eatWhile(specialChars);\n      token.name = 'operator';\n      token.eos = aChar !== ';'; // ; cascaded message expression\n\n    } else if (/\\d/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d]/);\n      token.name = 'number';\n\n    } else if (/[\\w_]/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d_]/);\n      token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;\n\n    } else {\n      token.eos = state.expectVariable;\n    }\n\n    return token;\n  };\n\n  var nextComment = function(stream, context) {\n    stream.eatWhile(/[^\"]/);\n    return new Token('comment', stream.eat('\"') ? context.parent : context, true);\n  };\n\n  var nextString = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextSymbol = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string-2', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextTemporaries = function(stream, context) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '|') {\n      token.context = context.parent;\n      token.eos = true;\n\n    } else {\n      stream.eatWhile(/[^|]/);\n      token.name = 'variable';\n    }\n\n    return token;\n  };\n\n  return {\n    startState: function() {\n      return new State;\n    },\n\n    token: function(stream, state) {\n      state.userIndent(stream.indentation());\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var token = state.context.next(stream, state.context, state);\n      state.context = token.context;\n      state.expectVariable = token.eos;\n\n      return token.name;\n    },\n\n    blankLine: function(state) {\n      state.userIndent(0);\n    },\n\n    indent: function(state, textAfter) {\n      var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;\n      return (state.indentation + i) * config.indentUnit;\n    },\n\n    electricChars: ']'\n  };\n\n});\n\nCodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smarty/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smarty mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"smarty.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smarty</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smarty mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{extends file=\"parent.tpl\"}\n{include file=\"template.tpl\"}\n\n{* some example Smarty content *}\n{if isset($name) && $name == 'Blog'}\n  This is a {$var}.\n  {$integer = 451}, {$array[] = \"a\"}, {$stringvar = \"string\"}\n  {assign var='bob' value=$var.prop}\n{elseif $name == $foo}\n  {function name=menu level=0}\n    {foreach $data as $entry}\n      {if is_array($entry)}\n        - {$entry@key}\n        {menu data=$entry level=$level+1}\n      {else}\n        {$entry}\n      {/if}\n    {/foreach}\n  {/function}\n{/if}</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"smarty\"\n      });\n    </script>\n\n    <br />\n\n\t<h3>Smarty 2, custom delimiters</h3>\n    <form><textarea id=\"code2\" name=\"code2\">\n{--extends file=\"parent.tpl\"--}\n{--include file=\"template.tpl\"--}\n\n{--* some example Smarty content *--}\n{--if isset($name) && $name == 'Blog'--}\n  This is a {--$var--}.\n  {--$integer = 451--}, {--$array[] = \"a\"--}, {--$stringvar = \"string\"--}\n  {--assign var='bob' value=$var.prop--}\n{--elseif $name == $foo--}\n  {--function name=menu level=0--}\n    {--foreach $data as $entry--}\n      {--if is_array($entry)--}\n        - {--$entry@key--}\n        {--menu data=$entry level=$level+1--}\n      {--else--}\n        {--$entry--}\n      {--/if--}\n    {--/foreach--}\n  {--/function--}\n{--/if--}</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code2\"), {\n        lineNumbers: true,\n        mode: {\n          name: \"smarty\",\n          leftDelimiter: \"{--\",\n          rightDelimiter: \"--}\"\n        }\n      });\n    </script>\n\n\t<br />\n\n\t<h3>Smarty 3</h3>\n\n\t<textarea id=\"code3\" name=\"code3\">\nNested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.\n\n<script>\nfunction test() {\n\tconsole.log(\"Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.\");\n}\n</script>\n\n{assign var=foo value=[1,2,3]}\n{assign var=foo value=['y'=>'yellow','b'=>'blue']}\n{assign var=foo value=[1,[9,8],3]}\n\n{$foo=$bar+2} {* a comment *}\n{$foo.bar=1}  {* another comment *}\n{$foo = myfunct(($x+$y)*3)}\n{$foo = strlen($bar)}\n{$foo.bar.baz=1}, {$foo[]=1}\n\nSmarty \"dot\" syntax (note: embedded {} are used to address ambiguities):\n\n{$foo.a.b.c}      => $foo['a']['b']['c']\n{$foo.a.$b.c}     => $foo['a'][$b]['c']\n{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']\n{$foo.a.{$b.c}}   => $foo['a'][$b['c']]\n\n{$object->method1($x)->method2($y)}</textarea>\n\n\t<script>\n\t\tvar editor = CodeMirror.fromTextArea(document.getElementById(\"code3\"), {\n\t\t\tlineNumbers: true,\n\t\t\tmode: \"smarty\",\n\t\t\tsmartyVersion: 3\n\t\t});\n\t</script>\n\n\n    <p>A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smarty/smarty.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Smarty 2 and 3 mode.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"smarty\", function(config) {\n  \"use strict\";\n\n  // our default settings; check to see if they're overridden\n  var settings = {\n    rightDelimiter: '}',\n    leftDelimiter: '{',\n    smartyVersion: 2 // for backward compatibility\n  };\n  if (config.hasOwnProperty(\"leftDelimiter\")) {\n    settings.leftDelimiter = config.leftDelimiter;\n  }\n  if (config.hasOwnProperty(\"rightDelimiter\")) {\n    settings.rightDelimiter = config.rightDelimiter;\n  }\n  if (config.hasOwnProperty(\"smartyVersion\") && config.smartyVersion === 3) {\n    settings.smartyVersion = 3;\n  }\n\n  var keyFunctions = [\"debug\", \"extends\", \"function\", \"include\", \"literal\"];\n  var last;\n  var regs = {\n    operatorChars: /[+\\-*&%=<>!?]/,\n    validIdentifier: /[a-zA-Z0-9_]/,\n    stringChar: /['\"]/\n  };\n\n  var helpers = {\n    cont: function(style, lastType) {\n      last = lastType;\n      return style;\n    },\n    chain: function(stream, state, parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n  };\n\n\n  // our various parsers\n  var parsers = {\n\n    // the main tokenizer\n    tokenizer: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, true)) {\n        if (stream.eat(\"*\")) {\n          return helpers.chain(stream, state, parsers.inBlock(\"comment\", \"*\" + settings.rightDelimiter));\n        } else {\n          // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode\n          state.depth++;\n          var isEol = stream.eol();\n          var isFollowedByWhitespace = /\\s/.test(stream.peek());\n          if (settings.smartyVersion === 3 && settings.leftDelimiter === \"{\" && (isEol || isFollowedByWhitespace)) {\n            state.depth--;\n            return null;\n          } else {\n            state.tokenize = parsers.smarty;\n            last = \"startTag\";\n            return \"tag\";\n          }\n        }\n      } else {\n        stream.next();\n        return null;\n      }\n    },\n\n    // parsing Smarty content\n    smarty: function(stream, state) {\n      if (stream.match(settings.rightDelimiter, true)) {\n        if (settings.smartyVersion === 3) {\n          state.depth--;\n          if (state.depth <= 0) {\n            state.tokenize = parsers.tokenizer;\n          }\n        } else {\n          state.tokenize = parsers.tokenizer;\n        }\n        return helpers.cont(\"tag\", null);\n      }\n\n      if (stream.match(settings.leftDelimiter, true)) {\n        state.depth++;\n        return helpers.cont(\"tag\", \"startTag\");\n      }\n\n      var ch = stream.next();\n      if (ch == \"$\") {\n        stream.eatWhile(regs.validIdentifier);\n        return helpers.cont(\"variable-2\", \"variable\");\n      } else if (ch == \"|\") {\n        return helpers.cont(\"operator\", \"pipe\");\n      } else if (ch == \".\") {\n        return helpers.cont(\"operator\", \"property\");\n      } else if (regs.stringChar.test(ch)) {\n        state.tokenize = parsers.inAttribute(ch);\n        return helpers.cont(\"string\", \"string\");\n      } else if (regs.operatorChars.test(ch)) {\n        stream.eatWhile(regs.operatorChars);\n        return helpers.cont(\"operator\", \"operator\");\n      } else if (ch == \"[\" || ch == \"]\") {\n        return helpers.cont(\"bracket\", \"bracket\");\n      } else if (ch == \"(\" || ch == \")\") {\n        return helpers.cont(\"bracket\", \"operator\");\n      } else if (/\\d/.test(ch)) {\n        stream.eatWhile(/\\d/);\n        return helpers.cont(\"number\", \"number\");\n      } else {\n\n        if (state.last == \"variable\") {\n          if (ch == \"@\") {\n            stream.eatWhile(regs.validIdentifier);\n            return helpers.cont(\"property\", \"property\");\n          } else if (ch == \"|\") {\n            stream.eatWhile(regs.validIdentifier);\n            return helpers.cont(\"qualifier\", \"modifier\");\n          }\n        } else if (state.last == \"pipe\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"qualifier\", \"modifier\");\n        } else if (state.last == \"whitespace\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"attribute\", \"modifier\");\n        } if (state.last == \"property\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"property\", null);\n        } else if (/\\s/.test(ch)) {\n          last = \"whitespace\";\n          return null;\n        }\n\n        var str = \"\";\n        if (ch != \"/\") {\n          str += ch;\n        }\n        var c = null;\n        while (c = stream.eat(regs.validIdentifier)) {\n          str += c;\n        }\n        for (var i=0, j=keyFunctions.length; i<j; i++) {\n          if (keyFunctions[i] == str) {\n            return helpers.cont(\"keyword\", \"keyword\");\n          }\n        }\n        if (/\\s/.test(ch)) {\n          return null;\n        }\n        return helpers.cont(\"tag\", \"tag\");\n      }\n    },\n\n    inAttribute: function(quote) {\n      return function(stream, state) {\n        var prevChar = null;\n        var currChar = null;\n        while (!stream.eol()) {\n          currChar = stream.peek();\n          if (stream.next() == quote && prevChar !== '\\\\') {\n            state.tokenize = parsers.smarty;\n            break;\n          }\n          prevChar = currChar;\n        }\n        return \"string\";\n      };\n    },\n\n    inBlock: function(style, terminator) {\n      return function(stream, state) {\n        while (!stream.eol()) {\n          if (stream.match(terminator)) {\n            state.tokenize = parsers.tokenizer;\n            break;\n          }\n          stream.next();\n        }\n        return style;\n      };\n    }\n  };\n\n\n  // the public API for CodeMirror\n  return {\n    startState: function() {\n      return {\n        tokenize: parsers.tokenizer,\n        mode: \"smarty\",\n        last: null,\n        depth: 0\n      };\n    },\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      state.last = last;\n      return style;\n    },\n    electricChars: \"\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-smarty\", \"smarty\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smartymixed/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smarty mixed mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../mode/xml/xml.js\"></script>\n<script src=\"../../mode/javascript/javascript.js\"></script>\n<script src=\"../../mode/css/css.js\"></script>\n<script src=\"../../mode/htmlmixed/htmlmixed.js\"></script>\n<script src=\"../../mode/smarty/smarty.js\"></script>\n<script src=\"../../mode/smartymixed/smartymixed.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smarty mixed</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smarty mixed mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{**\n* @brief Smarty mixed mode\n* @author Ruslan Osmanov\n* @date 29.06.2013\n*}\n<html>\n<head>\n  <title>{$title|htmlspecialchars|truncate:30}</title>\n</head>\n<body class=\"{$bodyclass}\">\n  {* Multiline smarty\n  * comment, no {$variables} here\n  *}\n  {literal}\n  {literal} is just an HTML text.\n  <script type=\"text/javascript\">//<![CDATA[\n    var a = {$just_a_normal_js_object : \"value\"};\n    var myCodeMirror = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      mode           : \"smartymixed\",\n      tabSize        : 2,\n      indentUnit     : 2,\n      indentWithTabs : false,\n      lineNumbers    : true,\n      smartyVersion  : 3\n    });\n    // ]]>\n  </script>\n  <style>\n    /* CSS content \n    {$no_smarty} */\n    .some-class { font-weight: bolder; color: \"orange\"; }\n  </style>\n  {/literal}\n\n  {extends file=\"parent.tpl\"}\n  {include file=\"template.tpl\"}\n\n  {* some example Smarty content *}\n  {if isset($name) && $name == 'Blog'}\n    This is a {$var}.\n    {$integer = 4511}, {$array[] = \"a\"}, {$stringvar = \"string\"}\n    {$integer = 4512} {$array[] = \"a\"} {$stringvar = \"string\"}\n    {assign var='bob' value=$var.prop}\n  {elseif $name == $foo}\n    {function name=menu level=0}\n    {foreach $data as $entry}\n      {if is_array($entry)}\n      - {$entry@key}\n      {menu data=$entry level=$level+1}\n      {else}\n      {$entry}\n      {* One\n      * Two\n      * Three\n      *}\n      {/if}\n    {/foreach}\n    {/function}\n  {/if}\n  </body>\n  <!-- R.O. -->\n</html>\n</textarea></form>\n\n    <script type=\"text/javascript\">\n      var myCodeMirror = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode           : \"smartymixed\",\n        tabSize        : 2,\n        indentUnit     : 2,\n        indentWithTabs : false,\n        lineNumbers    : true,\n        smartyVersion  : 3,\n        matchBrackets  : true,\n      });\n    </script>\n\n    <p>The Smarty mixed mode depends on the Smarty and HTML mixed modes. HTML\n    mixed mode itself depends on XML, JavaScript, and CSS modes.</p>\n\n    <p>It takes the same options, as Smarty and HTML mixed modes.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-smarty</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/smartymixed/smartymixed.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n* @file smartymixed.js\n* @brief Smarty Mixed Codemirror mode (Smarty + Mixed HTML)\n* @author Ruslan Osmanov <rrosmanov at gmail dot com>\n* @version 3.0\n* @date 05.07.2013\n*/\n\n// Warning: Don't base other modes on this one. This here is a\n// terrible way to write a mixed mode.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../smarty/smarty\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../smarty/smarty\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"smartymixed\", function(config) {\n  var htmlMixedMode = CodeMirror.getMode(config, \"htmlmixed\");\n  var smartyMode = CodeMirror.getMode(config, \"smarty\");\n\n  var settings = {\n    rightDelimiter: '}',\n    leftDelimiter: '{'\n  };\n\n  if (config.hasOwnProperty(\"leftDelimiter\")) {\n    settings.leftDelimiter = config.leftDelimiter;\n  }\n  if (config.hasOwnProperty(\"rightDelimiter\")) {\n    settings.rightDelimiter = config.rightDelimiter;\n  }\n\n  function reEsc(str) { return str.replace(/[^\\s\\w]/g, \"\\\\$&\"); }\n\n  var reLeft = reEsc(settings.leftDelimiter), reRight = reEsc(settings.rightDelimiter);\n  var regs = {\n    smartyComment: new RegExp(\"^\" + reRight + \"\\\\*\"),\n    literalOpen: new RegExp(reLeft + \"literal\" + reRight),\n    literalClose: new RegExp(reLeft + \"\\/literal\" + reRight),\n    hasLeftDelimeter: new RegExp(\".*\" + reLeft),\n    htmlHasLeftDelimeter: new RegExp(\"[^<>]*\" + reLeft)\n  };\n\n  var helpers = {\n    chain: function(stream, state, parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    },\n\n    cleanChain: function(stream, state, parser) {\n      state.tokenize = null;\n      state.localState = null;\n      state.localMode = null;\n      return (typeof parser == \"string\") ? (parser ? parser : null) : parser(stream, state);\n    },\n\n    maybeBackup: function(stream, pat, style) {\n      var cur = stream.current();\n      var close = cur.search(pat),\n      m;\n      if (close > - 1) stream.backUp(cur.length - close);\n      else if (m = cur.match(/<\\/?$/)) {\n        stream.backUp(cur.length);\n        if (!stream.match(pat, false)) stream.match(cur[0]);\n      }\n      return style;\n    }\n  };\n\n  var parsers = {\n    html: function(stream, state) {\n      var htmlTagName = state.htmlMixedState.htmlState.context && state.htmlMixedState.htmlState.context.tagName\n        ? state.htmlMixedState.htmlState.context.tagName\n        : null;\n\n      if (!state.inLiteral && stream.match(regs.htmlHasLeftDelimeter, false) && htmlTagName === null) {\n        state.tokenize = parsers.smarty;\n        state.localMode = smartyMode;\n        state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, \"\"));\n        return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState));\n      } else if (!state.inLiteral && stream.match(settings.leftDelimiter, false)) {\n        state.tokenize = parsers.smarty;\n        state.localMode = smartyMode;\n        state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, \"\"));\n        return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState));\n      }\n      return htmlMixedMode.token(stream, state.htmlMixedState);\n    },\n\n    smarty: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, false)) {\n        if (stream.match(regs.smartyComment, false)) {\n          return helpers.chain(stream, state, parsers.inBlock(\"comment\", \"*\" + settings.rightDelimiter));\n        }\n      } else if (stream.match(settings.rightDelimiter, false)) {\n        stream.eat(settings.rightDelimiter);\n        state.tokenize = parsers.html;\n        state.localMode = htmlMixedMode;\n        state.localState = state.htmlMixedState;\n        return \"tag\";\n      }\n\n      return helpers.maybeBackup(stream, settings.rightDelimiter, smartyMode.token(stream, state.localState));\n    },\n\n    inBlock: function(style, terminator) {\n      return function(stream, state) {\n        while (!stream.eol()) {\n          if (stream.match(terminator)) {\n            helpers.cleanChain(stream, state, \"\");\n            break;\n          }\n          stream.next();\n        }\n        return style;\n      };\n    }\n  };\n\n  return {\n    startState: function() {\n      var state = htmlMixedMode.startState();\n      return {\n        token: parsers.html,\n        localMode: null,\n        localState: null,\n        htmlMixedState: state,\n        tokenize: null,\n        inLiteral: false\n      };\n    },\n\n    copyState: function(state) {\n      var local = null, tok = (state.tokenize || state.token);\n      if (state.localState) {\n        local = CodeMirror.copyState((tok != parsers.html ? smartyMode : htmlMixedMode), state.localState);\n      }\n      return {\n        token: state.token,\n        tokenize: state.tokenize,\n        localMode: state.localMode,\n        localState: local,\n        htmlMixedState: CodeMirror.copyState(htmlMixedMode, state.htmlMixedState),\n        inLiteral: state.inLiteral\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, false)) {\n        if (!state.inLiteral && stream.match(regs.literalOpen, true)) {\n          state.inLiteral = true;\n          return \"keyword\";\n        } else if (state.inLiteral && stream.match(regs.literalClose, true)) {\n          state.inLiteral = false;\n          return \"keyword\";\n        }\n      }\n      if (state.inLiteral && state.localState != state.htmlMixedState) {\n        state.tokenize = parsers.html;\n        state.localMode = htmlMixedMode;\n        state.localState = state.htmlMixedState;\n      }\n\n      var style = (state.tokenize || state.token)(stream, state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.localMode == smartyMode\n          || (state.inLiteral && !state.localMode)\n         || regs.hasLeftDelimeter.test(textAfter)) {\n        return CodeMirror.Pass;\n      }\n      return htmlMixedMode.indent(state.htmlMixedState, textAfter);\n    },\n\n    innerMode: function(state) {\n      return {\n        state: state.localState || state.htmlMixedState,\n        mode: state.localMode || htmlMixedMode\n      };\n    }\n  };\n}, \"htmlmixed\", \"smarty\");\n\nCodeMirror.defineMIME(\"text/x-smarty\", \"smartymixed\");\n// vim: et ts=2 sts=2 sw=2\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/solr/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Solr mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"solr.js\"></script>\n<style type=\"text/css\">\n  .CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n  }\n\n  .CodeMirror .cm-operator {\n    color: orange;\n  }\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Solr</a>\n  </ul>\n</div>\n\n<article>\n  <h2>Solr mode</h2>\n\n  <div>\n    <textarea id=\"code\" name=\"code\">author:Camus\n\ntitle:\"The Rebel\" and author:Camus\n\nphilosophy:Existentialism -author:Kierkegaard\n\nhardToSpell:Dostoevsky~\n\npublished:[194* TO 1960] and author:(Sartre or \"Simone de Beauvoir\")</textarea>\n  </div>\n\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      mode: 'solr',\n      lineNumbers: true\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>text/x-solr</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/solr/solr.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"solr\", function() {\n  \"use strict\";\n\n  var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\^\\\"\\\\]/;\n  var isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\n  var isOperatorString = /^(OR|AND|NOT|TO)$/i;\n\n  function isNumber(word) {\n    return parseFloat(word, 10).toString() === word;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenOperator(operator) {\n    return function(stream, state) {\n      var style = \"operator\";\n      if (operator == \"+\")\n        style += \" positive\";\n      else if (operator == \"-\")\n        style += \" negative\";\n      else if (operator == \"|\")\n        stream.eat(/\\|/);\n      else if (operator == \"&\")\n        stream.eat(/\\&/);\n      else if (operator == \"^\")\n        style += \" boost\";\n\n      state.tokenize = tokenBase;\n      return style;\n    };\n  }\n\n  function tokenWord(ch) {\n    return function(stream, state) {\n      var word = ch;\n      while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n        word += stream.next();\n      }\n\n      state.tokenize = tokenBase;\n      if (isOperatorString.test(word))\n        return \"operator\";\n      else if (isNumber(word))\n        return \"number\";\n      else if (stream.peek() == \":\")\n        return \"field\";\n      else\n        return \"string\";\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"')\n      state.tokenize = tokenString(ch);\n    else if (isOperatorChar.test(ch))\n      state.tokenize = tokenOperator(ch);\n    else if (isStringChar.test(ch))\n      state.tokenize = tokenWord(ch);\n\n    return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-solr\", \"solr\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/soy/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Soy (Closure Template) mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"soy.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Soy (Closure Template)</a>\n  </ul>\n</div>\n\n<article>\n<h2>Soy (Closure Template) mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{namespace example}\n\n/**\n * Says hello to the world.\n */\n{template .helloWorld}\n  {@param name: string}\n  {@param? score: number}\n  Hello <b>{$name}</b>!\n  <div>\n    {if $score}\n      <em>{$score} points</em>\n    {else}\n      no score\n    {/if}\n  </div>\n{/template}\n\n{template .alertHelloWorld kind=\"js\"}\n  alert('Hello World');\n{/template}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-soy\",\n        indentUnit: 2,\n        indentWithTabs: false\n      });\n    </script>\n\n    <p>A mode for <a href=\"https://developers.google.com/closure/templates/\">Closure Templates</a> (Soy).</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-soy</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/soy/soy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var indentingTags = [\"template\", \"literal\", \"msg\", \"fallbackmsg\", \"let\", \"if\", \"elseif\",\n                       \"else\", \"switch\", \"case\", \"default\", \"foreach\", \"ifempty\", \"for\",\n                       \"call\", \"param\", \"deltemplate\", \"delcall\", \"log\"];\n\n  CodeMirror.defineMode(\"soy\", function(config) {\n    var textMode = CodeMirror.getMode(config, \"text/plain\");\n    var modes = {\n      html: CodeMirror.getMode(config, {name: \"text/html\", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}),\n      attributes: textMode,\n      text: textMode,\n      uri: textMode,\n      css: CodeMirror.getMode(config, \"text/css\"),\n      js: CodeMirror.getMode(config, {name: \"text/javascript\", statementIndent: 2 * config.indentUnit})\n    };\n\n    function last(array) {\n      return array[array.length - 1];\n    }\n\n    function tokenUntil(stream, state, untilRegExp) {\n      var oldString = stream.string;\n      var match = untilRegExp.exec(oldString.substr(stream.pos));\n      if (match) {\n        // We don't use backUp because it backs up just the position, not the state.\n        // This uses an undocumented API.\n        stream.string = oldString.substr(0, stream.pos + match.index);\n      }\n      var result = stream.hideFirstChars(state.indent, function() {\n        return state.localMode.token(stream, state.localState);\n      });\n      stream.string = oldString;\n      return result;\n    }\n\n    return {\n      startState: function() {\n        return {\n          kind: [],\n          kindTag: [],\n          soyState: [],\n          indent: 0,\n          localMode: modes.html,\n          localState: CodeMirror.startState(modes.html)\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          tag: state.tag, // Last seen Soy tag.\n          kind: state.kind.concat([]), // Values of kind=\"\" attributes.\n          kindTag: state.kindTag.concat([]), // Opened tags with kind=\"\" attributes.\n          soyState: state.soyState.concat([]),\n          indent: state.indent, // Indentation of the following line.\n          localMode: state.localMode,\n          localState: CodeMirror.copyState(state.localMode, state.localState)\n        };\n      },\n\n      token: function(stream, state) {\n        var match;\n\n        switch (last(state.soyState)) {\n          case \"comment\":\n            if (stream.match(/^.*?\\*\\//)) {\n              state.soyState.pop();\n            } else {\n              stream.skipToEnd();\n            }\n            return \"comment\";\n\n          case \"variable\":\n            if (stream.match(/^}/)) {\n              state.indent -= 2 * config.indentUnit;\n              state.soyState.pop();\n              return \"variable-2\";\n            }\n            stream.next();\n            return null;\n\n          case \"tag\":\n            if (stream.match(/^\\/?}/)) {\n              if (state.tag == \"/template\" || state.tag == \"/deltemplate\") state.indent = 0;\n              else state.indent -= (stream.current() == \"/}\" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1) * config.indentUnit;\n              state.soyState.pop();\n              return \"keyword\";\n            } else if (stream.match(/^(\\w+)(?==)/)) {\n              if (stream.current() == \"kind\" && (match = stream.match(/^=\"([^\"]+)/, false))) {\n                var kind = match[1];\n                state.kind.push(kind);\n                state.kindTag.push(state.tag);\n                state.localMode = modes[kind] || modes.html;\n                state.localState = CodeMirror.startState(state.localMode);\n              }\n              return \"attribute\";\n            } else if (stream.match(/^\"/)) {\n              state.soyState.push(\"string\");\n              return \"string\";\n            }\n            stream.next();\n            return null;\n\n          case \"literal\":\n            if (stream.match(/^(?=\\{\\/literal})/)) {\n              state.indent -= config.indentUnit;\n              state.soyState.pop();\n              return this.token(stream, state);\n            }\n            return tokenUntil(stream, state, /\\{\\/literal}/);\n\n          case \"string\":\n            if (stream.match(/^.*?\"/)) {\n              state.soyState.pop();\n            } else {\n              stream.skipToEnd();\n            }\n            return \"string\";\n        }\n\n        if (stream.match(/^\\/\\*/)) {\n          state.soyState.push(\"comment\");\n          return \"comment\";\n        } else if (stream.match(stream.sol() ? /^\\s*\\/\\/.*/ : /^\\s+\\/\\/.*/)) {\n          return \"comment\";\n        } else if (stream.match(/^\\{\\$\\w*/)) {\n          state.indent += 2 * config.indentUnit;\n          state.soyState.push(\"variable\");\n          return \"variable-2\";\n        } else if (stream.match(/^\\{literal}/)) {\n          state.indent += config.indentUnit;\n          state.soyState.push(\"literal\");\n          return \"keyword\";\n        } else if (match = stream.match(/^\\{([\\/@\\\\]?\\w*)/)) {\n          if (match[1] != \"/switch\")\n            state.indent += (/^(\\/|(else|elseif|case|default)$)/.test(match[1]) && state.tag != \"switch\" ? 1 : 2) * config.indentUnit;\n          state.tag = match[1];\n          if (state.tag == \"/\" + last(state.kindTag)) {\n            // We found the tag that opened the current kind=\"\".\n            state.kind.pop();\n            state.kindTag.pop();\n            state.localMode = modes[last(state.kind)] || modes.html;\n            state.localState = CodeMirror.startState(state.localMode);\n          }\n          state.soyState.push(\"tag\");\n          return \"keyword\";\n        }\n\n        return tokenUntil(stream, state, /\\{|\\s+\\/\\/|\\/\\*/);\n      },\n\n      indent: function(state, textAfter) {\n        var indent = state.indent, top = last(state.soyState);\n        if (top == \"comment\") return CodeMirror.Pass;\n\n        if (top == \"literal\") {\n          if (/^\\{\\/literal}/.test(textAfter)) indent -= config.indentUnit;\n        } else {\n          if (/^\\s*\\{\\/(template|deltemplate)\\b/.test(textAfter)) return 0;\n          if (/^\\{(\\/|(fallbackmsg|elseif|else|ifempty)\\b)/.test(textAfter)) indent -= config.indentUnit;\n          if (state.tag != \"switch\" && /^\\{(case|default)\\b/.test(textAfter)) indent -= config.indentUnit;\n          if (/^\\{\\/switch\\b/.test(textAfter)) indent -= config.indentUnit;\n        }\n        if (indent && state.localMode.indent)\n          indent += state.localMode.indent(state.localState, textAfter);\n        return indent;\n      },\n\n      innerMode: function(state) {\n        if (state.soyState.length && last(state.soyState) != \"literal\") return null;\n        else return {state: state.localState, mode: state.localMode};\n      },\n\n      electricInput: /^\\s*\\{(\\/|\\/template|\\/deltemplate|\\/switch|fallbackmsg|elseif|else|case|default|ifempty|\\/literal\\})$/,\n      lineComment: \"//\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      blockCommentContinue: \" * \",\n      fold: \"indent\"\n    };\n  }, \"htmlmixed\");\n\n  CodeMirror.registerHelper(\"hintWords\", \"soy\", indentingTags.concat(\n      [\"delpackage\", \"namespace\", \"alias\", \"print\", \"css\", \"debugger\"]));\n\n  CodeMirror.defineMIME(\"text/x-soy\", \"soy\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sparql/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SPARQL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"sparql.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SPARQL</a>\n  </ul>\n</div>\n\n<article>\n<h2>SPARQL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nPREFIX a: &lt;http://www.w3.org/2000/10/annotation-ns#>\nPREFIX dc: &lt;http://purl.org/dc/elements/1.1/>\nPREFIX foaf: &lt;http://xmlns.com/foaf/0.1/>\nPREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#>\n\n# Comment!\n\nSELECT ?given ?family\nWHERE {\n  {\n    ?annot a:annotates &lt;http://www.w3.org/TR/rdf-sparql-query/> .\n    ?annot dc:creator ?c .\n    OPTIONAL {?c foaf:givenName ?given ;\n                 foaf:familyName ?family }\n  } UNION {\n    ?c !foaf:knows/foaf:knows? ?thing.\n    ?thing rdfs\n  } MINUS {\n    ?thing rdfs:label \"剛柔流\"@jp\n  }\n  FILTER isBlank(?c)\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"application/sparql-query\",\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/sparql-query</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sparql/sparql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sparql\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([\"str\", \"lang\", \"langmatches\", \"datatype\", \"bound\", \"sameterm\", \"isiri\", \"isuri\",\n                        \"iri\", \"uri\", \"bnode\", \"count\", \"sum\", \"min\", \"max\", \"avg\", \"sample\",\n                        \"group_concat\", \"rand\", \"abs\", \"ceil\", \"floor\", \"round\", \"concat\", \"substr\", \"strlen\",\n                        \"replace\", \"ucase\", \"lcase\", \"encode_for_uri\", \"contains\", \"strstarts\", \"strends\",\n                        \"strbefore\", \"strafter\", \"year\", \"month\", \"day\", \"hours\", \"minutes\", \"seconds\",\n                        \"timezone\", \"tz\", \"now\", \"uuid\", \"struuid\", \"md5\", \"sha1\", \"sha256\", \"sha384\",\n                        \"sha512\", \"coalesce\", \"if\", \"strlang\", \"strdt\", \"isnumeric\", \"regex\", \"exists\",\n                        \"isblank\", \"isliteral\", \"a\"]);\n  var keywords = wordRegexp([\"base\", \"prefix\", \"select\", \"distinct\", \"reduced\", \"construct\", \"describe\",\n                             \"ask\", \"from\", \"named\", \"where\", \"order\", \"limit\", \"offset\", \"filter\", \"optional\",\n                             \"graph\", \"by\", \"asc\", \"desc\", \"as\", \"having\", \"undef\", \"values\", \"group\",\n                             \"minus\", \"in\", \"not\", \"service\", \"silent\", \"using\", \"insert\", \"delete\", \"union\",\n                             \"true\", \"false\", \"with\",\n                             \"data\", \"copy\", \"to\", \"move\", \"add\", \"create\", \"drop\", \"clear\", \"load\"]);\n  var operatorChars = /[*+\\-<>=&|\\^\\/!\\?]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"$\" || ch == \"?\") {\n      if(ch == \"?\" && stream.match(/\\s/, false)){\n        return \"operator\";\n      }\n      stream.match(/^[\\w\\d]*/);\n      return \"variable-2\";\n    }\n    else if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return \"bracket\";\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return \"operator\";\n    }\n    else if (ch == \":\") {\n      stream.eatWhile(/[\\w\\d\\._\\-]/);\n      return \"atom\";\n    }\n    else if (ch == \"@\") {\n      stream.eatWhile(/[a-z\\d\\-]/i);\n      return \"meta\";\n    }\n    else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if (stream.eat(\":\")) {\n        stream.eatWhile(/[\\w\\d_\\-]/);\n        return \"atom\";\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return \"builtin\";\n      else if (keywords.test(word))\n        return \"keyword\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) popContext(state);\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"application/sparql-query\", \"sparql\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/spreadsheet/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Spreadsheet mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"spreadsheet.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Spreadsheet</a>\n  </ul>\n</div>\n\n<article>\n  <h2>Spreadsheet mode</h2>\n  <form><textarea id=\"code\" name=\"code\">=IF(A1:B2, TRUE, FALSE) / 100</textarea></form>\n\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      lineNumbers: true,\n      matchBrackets: true,\n      extraKeys: {\"Tab\":  \"indentAuto\"}\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>text/x-spreadsheet</code>.</p>\n  \n  <h3>The Spreadsheet Mode</h3>\n  <p> Created by <a href=\"https://github.com/robertleeplummerjr\">Robert Plummer</a></p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/spreadsheet/spreadsheet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"spreadsheet\", function () {\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          stack: []\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(\"string\");\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case \"string\":\n          while (state.stack[0] === \"string\" && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return \"string\";\n\n        case \"characterClass\":\n          while (state.stack[0] === \"characterClass\" && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./)))\n              state.stack.shift();\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(\"characterClass\");\n          return \"bracket\";\n        case \":\":\n          stream.next();\n          return \"operator\";\n        case \"\\\\\":\n          if (stream.match(/\\\\[a-z]+/)) return \"string-2\";\n          else return null;\n        case \".\":\n        case \",\":\n        case \";\":\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n        case \"<\":\n        case \"/\":\n        case \"=\":\n          stream.next();\n          return \"atom\";\n        case \"$\":\n          stream.next();\n          return \"builtin\";\n        }\n\n        if (stream.match(/\\d+/)) {\n          if (stream.match(/^\\w+/)) return \"error\";\n          return \"number\";\n        } else if (stream.match(/^[a-zA-Z_]\\w*/)) {\n          if (stream.match(/(?=[\\(.])/, false)) return \"keyword\";\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\", \"{\", \"}\"].indexOf(peek) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-spreadsheet\", \"spreadsheet\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sql/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SQL Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\" />\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"sql.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\" />\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/sql-hint.js\"></script>\n<style>\n.CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n}\n        </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SQL Mode for CodeMirror</a>\n  </ul>\n</div>\n\n<article>\n<h2>SQL Mode for CodeMirror</h2>\n<form>\n            <textarea id=\"code\" name=\"code\">-- SQL Mode for CodeMirror\nSELECT SQL_NO_CACHE DISTINCT\n\t\t@var1 AS `val1`, @'val2', @global.'sql_mode',\n\t\t1.1 AS `float_val`, .14 AS `another_float`, 0.09e3 AS `int_with_esp`,\n\t\t0xFA5 AS `hex`, x'fa5' AS `hex2`, 0b101 AS `bin`, b'101' AS `bin2`,\n\t\tDATE '1994-01-01' AS `sql_date`, { T \"1994-01-01\" } AS `odbc_date`,\n\t\t'my string', _utf8'your string', N'her string',\n        TRUE, FALSE, UNKNOWN\n\tFROM DUAL\n\t-- space needed after '--'\n\t# 1 line comment\n\t/* multiline\n\tcomment! */\n\tLIMIT 1 OFFSET 0;\n</textarea>\n            </form>\n            <p><strong>MIME types defined:</strong> \n            <code><a href=\"?mime=text/x-sql\">text/x-sql</a></code>,\n            <code><a href=\"?mime=text/x-mysql\">text/x-mysql</a></code>,\n            <code><a href=\"?mime=text/x-mariadb\">text/x-mariadb</a></code>,\n            <code><a href=\"?mime=text/x-cassandra\">text/x-cassandra</a></code>,\n            <code><a href=\"?mime=text/x-plsql\">text/x-plsql</a></code>,\n            <code><a href=\"?mime=text/x-mssql\">text/x-mssql</a></code>,\n            <code><a href=\"?mime=text/x-hive\">text/x-hive</a></code>.\n        </p>\n<script>\nwindow.onload = function() {\n  var mime = 'text/x-mariadb';\n  // get mime type\n  if (window.location.href.indexOf('mime=') > -1) {\n    mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);\n  }\n  window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: mime,\n    indentWithTabs: true,\n    smartIndent: true,\n    lineNumbers: true,\n    matchBrackets : true,\n    autofocus: true,\n    extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n    hintOptions: {tables: {\n      users: {name: null, score: null, birthDate: null},\n      countries: {name: null, population: null, size: null}\n    }}\n  });\n};\n</script>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/sql/sql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n  \"use strict\";\n\n  var client         = parserConfig.client || {},\n      atoms          = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n      builtin        = parserConfig.builtin || {},\n      keywords       = parserConfig.keywords || {},\n      operatorChars  = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^]/,\n      support        = parserConfig.support || {},\n      hooks          = parserConfig.hooks || {},\n      dateSQL        = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true};\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // call hooks from the mime type\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n\n    if (support.hexNumber == true &&\n      ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n      || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n      // hex\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n      return \"number\";\n    } else if (support.binaryNumber == true &&\n      (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n      || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n      // bitstring\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n      return \"number\";\n    } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n      // numbers\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n          stream.match(/^[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?/);\n      support.decimallessFloat == true && stream.eat('.');\n      return \"number\";\n    } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n      // placeholders\n      return \"variable-3\";\n    } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n      // strings\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    } else if ((((support.nCharCast == true && (ch == \"n\" || ch == \"N\"))\n        || (support.charsetCast == true && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n        && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n      // charset casting: _utf8'str', N'str', n'str'\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      return \"keyword\";\n    } else if (/^[\\(\\),\\;\\[\\]]/.test(ch)) {\n      // no highlightning\n      return null;\n    } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n      // 1-line comment\n      stream.skipToEnd();\n      return \"comment\";\n    } else if ((support.commentHash && ch == \"#\")\n        || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n      // 1-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"/\" && stream.eat(\"*\")) {\n      // multi-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      state.tokenize = tokenComment;\n      return state.tokenize(stream, state);\n    } else if (ch == \".\") {\n      // .1 for 0.1\n      if (support.zerolessFloat == true && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i)) {\n        return \"number\";\n      }\n      // .table_name (ODBC)\n      // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n      if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) {\n        return \"variable-2\";\n      }\n    } else if (operatorChars.test(ch)) {\n      // operators\n      stream.eatWhile(operatorChars);\n      return null;\n    } else if (ch == '{' &&\n        (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n      // dates (weird ODBC syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      return \"number\";\n    } else {\n      stream.eatWhile(/^[_\\w\\d]/);\n      var word = stream.current().toLowerCase();\n      // dates (standard SQL syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n        return \"number\";\n      if (atoms.hasOwnProperty(word)) return \"atom\";\n      if (builtin.hasOwnProperty(word)) return \"builtin\";\n      if (keywords.hasOwnProperty(word)) return \"keyword\";\n      if (client.hasOwnProperty(word)) return \"string-2\";\n      return null;\n    }\n  }\n\n  // 'string', with char specified in quote escaped by '\\'\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n  function tokenComment(stream, state) {\n    while (true) {\n      if (stream.skipTo(\"*\")) {\n        stream.next();\n        if (stream.eat(\"/\")) {\n          state.tokenize = tokenBase;\n          break;\n        }\n      } else {\n        stream.skipToEnd();\n        break;\n      }\n    }\n    return \"comment\";\n  }\n\n  function pushContext(stream, state, type) {\n    state.context = {\n      prev: state.context,\n      indent: stream.indentation(),\n      col: stream.column(),\n      type: type\n    };\n  }\n\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase, context: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null)\n          state.context.align = false;\n      }\n      if (stream.eatSpace()) return null;\n\n      var style = state.tokenize(stream, state);\n      if (style == \"comment\") return style;\n\n      if (state.context && state.context.align == null)\n        state.context.align = true;\n\n      var tok = stream.current();\n      if (tok == \"(\")\n        pushContext(stream, state, \")\");\n      else if (tok == \"[\")\n        pushContext(stream, state, \"]\");\n      else if (state.context && state.context.type == tok)\n        popContext(state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context;\n      if (!cx) return CodeMirror.Pass;\n      var closing = textAfter.charAt(0) == cx.type;\n      if (cx.align) return cx.col + (closing ? 0 : 1);\n      else return cx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : null\n  };\n});\n\n(function() {\n  \"use strict\";\n\n  // `identifier`\n  function hookIdentifier(stream) {\n    // MySQL/MariaDB identifiers\n    // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n    var ch;\n    while ((ch = stream.next()) != null) {\n      if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n    }\n    stream.backUp(stream.current().length - 1);\n    return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n  }\n\n  // variable token\n  function hookVar(stream) {\n    // variables\n    // @@prefix.varName @varName\n    // varName can be quoted with ` or ' or \"\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n    if (stream.eat(\"@\")) {\n      stream.match(/^session\\./);\n      stream.match(/^local\\./);\n      stream.match(/^global\\./);\n    }\n\n    if (stream.eat(\"'\")) {\n      stream.match(/^.*'/);\n      return \"variable-2\";\n    } else if (stream.eat('\"')) {\n      stream.match(/^.*\"/);\n      return \"variable-2\";\n    } else if (stream.eat(\"`\")) {\n      stream.match(/^.*`/);\n      return \"variable-2\";\n    } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n      return \"variable-2\";\n    }\n    return null;\n  };\n\n  // short client keyword token\n  function hookClient(stream) {\n    // \\N means NULL\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n    if (stream.eat(\"N\")) {\n        return \"atom\";\n    }\n    // \\g, etc\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n    return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n  }\n\n  // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n  var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where \";\n\n  // turn a space-separated list into an array\n  function set(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n  CodeMirror.defineMIME(\"text/x-sql\", {\n    name: \"sql\",\n    keywords: set(sqlKeywords + \"begin\"),\n    builtin: set(\"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n\n  CodeMirror.defineMIME(\"text/x-mssql\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered\"),\n    builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n    hooks: {\n      \"@\":   hookVar\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mysql\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mariadb\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  // the query language used by Apache Cassandra is called CQL, but this mime type\n  // is called Cassandra to avoid confusion with Contextual Query Language\n  CodeMirror.defineMIME(\"text/x-cassandra\", {\n    name: \"sql\",\n    client: { },\n    keywords: set(\"use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum\"),\n    builtin: set(\"ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint\"),\n    atoms: set(\"false true\"),\n    operatorChars: /^[<>=]/,\n    dateSQL: { },\n    support: set(\"commentSlashSlash decimallessFloat\"),\n    hooks: { }\n  });\n\n  // this is based on Peter Raganitsch's 'plsql' mode\n  CodeMirror.defineMIME(\"text/x-plsql\", {\n    name:       \"sql\",\n    client:     set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n    keywords:   set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n    builtin:    set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n    operatorChars: /^[*+\\-%<>!=~]/,\n    dateSQL:    set(\"date time timestamp\"),\n    support:    set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n  });\n\n  // Created to support specific hive keywords\n  CodeMirror.defineMIME(\"text/x-hive\", {\n    name: \"sql\",\n    keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with\"),\n    builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n}());\n\n});\n\n/*\n  How Properties of Mime Types are used by SQL Mode\n  =================================================\n\n  keywords:\n    A list of keywords you want to be highlighted.\n  builtin:\n    A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n  operatorChars:\n    All characters that must be handled as operators.\n  client:\n    Commands parsed and executed by the client (not the server).\n  support:\n    A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n    * ODBCdotTable: .tableName\n    * zerolessFloat: .1\n    * doubleQuote\n    * nCharCast: N'string'\n    * charsetCast: _utf8'string'\n    * commentHash: use # char for comments\n    * commentSlashSlash: use // for comments\n    * commentSpaceRequired: require a space after -- for comments\n  atoms:\n    Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n    UNKNOWN, INFINITY, UNDERFLOW, NaN...\n  dateSQL:\n    Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/stex/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: sTeX mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"stex.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">sTeX</a>\n  </ul>\n</div>\n\n<article>\n<h2>sTeX mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n\\begin{module}[id=bbt-size]\n\\importmodule[balanced-binary-trees]{balanced-binary-trees}\n\\importmodule[\\KWARCslides{dmath/en/cardinality}]{cardinality}\n\n\\begin{frame}\n  \\frametitle{Size Lemma for Balanced Trees}\n  \\begin{itemize}\n  \\item\n    \\begin{assertion}[id=size-lemma,type=lemma] \n    Let $G=\\tup{V,E}$ be a \\termref[cd=binary-trees]{balanced binary tree} \n    of \\termref[cd=graph-depth,name=vertex-depth]{depth}$n>i$, then the set\n     $\\defeq{\\livar{V}i}{\\setst{\\inset{v}{V}}{\\gdepth{v} = i}}$ of\n    \\termref[cd=graphs-intro,name=node]{nodes} at \n    \\termref[cd=graph-depth,name=vertex-depth]{depth} $i$ has\n    \\termref[cd=cardinality,name=cardinality]{cardinality} $\\power2i$.\n   \\end{assertion}\n  \\item\n    \\begin{sproof}[id=size-lemma-pf,proofend=,for=size-lemma]{via induction over the depth $i$.}\n      \\begin{spfcases}{We have to consider two cases}\n        \\begin{spfcase}{$i=0$}\n          \\begin{spfstep}[display=flow]\n            then $\\livar{V}i=\\set{\\livar{v}r}$, where $\\livar{v}r$ is the root, so\n            $\\eq{\\card{\\livar{V}0},\\card{\\set{\\livar{v}r}},1,\\power20}$.\n          \\end{spfstep}\n        \\end{spfcase}\n        \\begin{spfcase}{$i>0$}\n          \\begin{spfstep}[display=flow]\n           then $\\livar{V}{i-1}$ contains $\\power2{i-1}$ vertexes \n           \\begin{justification}[method=byIH](IH)\\end{justification}\n          \\end{spfstep}\n          \\begin{spfstep}\n           By the \\begin{justification}[method=byDef]definition of a binary\n              tree\\end{justification}, each $\\inset{v}{\\livar{V}{i-1}}$ is a leaf or has\n            two children that are at depth $i$.\n          \\end{spfstep}\n          \\begin{spfstep}\n           As $G$ is \\termref[cd=balanced-binary-trees,name=balanced-binary-tree]{balanced} and $\\gdepth{G}=n>i$, $\\livar{V}{i-1}$ cannot contain\n            leaves.\n          \\end{spfstep}\n          \\begin{spfstep}[type=conclusion]\n           Thus $\\eq{\\card{\\livar{V}i},{\\atimes[cdot]{2,\\card{\\livar{V}{i-1}}}},{\\atimes[cdot]{2,\\power2{i-1}}},\\power2i}$.\n          \\end{spfstep}\n        \\end{spfcase}\n      \\end{spfcases}\n    \\end{sproof}\n  \\item \n    \\begin{assertion}[id=fbbt,type=corollary]\t\n      A fully balanced tree of depth $d$ has $\\power2{d+1}-1$ nodes.\n    \\end{assertion}\n  \\item\n      \\begin{sproof}[for=fbbt,id=fbbt-pf]{}\n        \\begin{spfstep}\n          Let $\\defeq{G}{\\tup{V,E}}$ be a fully balanced tree\n        \\end{spfstep}\n        \\begin{spfstep}\n          Then $\\card{V}=\\Sumfromto{i}1d{\\power2i}= \\power2{d+1}-1$.\n        \\end{spfstep}\n      \\end{sproof}\n    \\end{itemize}\n  \\end{frame}\n\\begin{note}\n  \\begin{omtext}[type=conclusion,for=binary-tree]\n    This shows that balanced binary trees grow in breadth very quickly, a consequence of\n    this is that they are very shallow (and this compute very fast), which is the essence of\n    the next result.\n  \\end{omtext}\n\\end{note}\n\\end{module}\n\n%%% Local Variables: \n%%% mode: LaTeX\n%%% TeX-master: \"all\"\n%%% End: \\end{document}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-stex</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#stex_*\">normal</a>,  <a href=\"../../test/index.html#verbose,stex_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/stex/stex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)\n * Licence: MIT\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stex\", function() {\n    \"use strict\";\n\n    function pushCommand(state, command) {\n      state.cmdState.push(command);\n    }\n\n    function peekCommand(state) {\n      if (state.cmdState.length > 0) {\n        return state.cmdState[state.cmdState.length - 1];\n      } else {\n        return null;\n      }\n    }\n\n    function popCommand(state) {\n      var plug = state.cmdState.pop();\n      if (plug) {\n        plug.closeBracket();\n      }\n    }\n\n    // returns the non-default plugin closest to the end of the list\n    function getMostPowerful(state) {\n      var context = state.cmdState;\n      for (var i = context.length - 1; i >= 0; i--) {\n        var plug = context[i];\n        if (plug.name == \"DEFAULT\") {\n          continue;\n        }\n        return plug;\n      }\n      return { styleIdentifier: function() { return null; } };\n    }\n\n    function addPluginPattern(pluginName, cmdStyle, styles) {\n      return function () {\n        this.name = pluginName;\n        this.bracketNo = 0;\n        this.style = cmdStyle;\n        this.styles = styles;\n        this.argument = null;   // \\begin and \\end have arguments that follow. These are stored in the plugin\n\n        this.styleIdentifier = function() {\n          return this.styles[this.bracketNo - 1] || null;\n        };\n        this.openBracket = function() {\n          this.bracketNo++;\n          return \"bracket\";\n        };\n        this.closeBracket = function() {};\n      };\n    }\n\n    var plugins = {};\n\n    plugins[\"importmodule\"] = addPluginPattern(\"importmodule\", \"tag\", [\"string\", \"builtin\"]);\n    plugins[\"documentclass\"] = addPluginPattern(\"documentclass\", \"tag\", [\"\", \"atom\"]);\n    plugins[\"usepackage\"] = addPluginPattern(\"usepackage\", \"tag\", [\"atom\"]);\n    plugins[\"begin\"] = addPluginPattern(\"begin\", \"tag\", [\"atom\"]);\n    plugins[\"end\"] = addPluginPattern(\"end\", \"tag\", [\"atom\"]);\n\n    plugins[\"DEFAULT\"] = function () {\n      this.name = \"DEFAULT\";\n      this.style = \"tag\";\n\n      this.styleIdentifier = this.openBracket = this.closeBracket = function() {};\n    };\n\n    function setState(state, f) {\n      state.f = f;\n    }\n\n    // called when in a normal (no environment) context\n    function normal(source, state) {\n      var plug;\n      // Do we look like '\\command' ?  If so, attempt to apply the plugin 'command'\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        var cmdName = source.current().slice(1);\n        plug = plugins[cmdName] || plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        setState(state, beginParams);\n        return plug.style;\n      }\n\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/\\\\]/)) {\n        return \"tag\";\n      }\n\n      // find if we're starting various math modes\n      if (source.match(\"\\\\[\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"\\\\]\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$$\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$\"); });\n        return \"keyword\";\n      }\n\n      var ch = source.next();\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      } else if (ch == '}' || ch == ']') {\n        plug = peekCommand(state);\n        if (plug) {\n          plug.closeBracket(ch);\n          setState(state, beginParams);\n        } else {\n          return \"error\";\n        }\n        return \"bracket\";\n      } else if (ch == '{' || ch == '[') {\n        plug = plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        return \"bracket\";\n      } else if (/\\d/.test(ch)) {\n        source.eatWhile(/[\\w.%]/);\n        return \"atom\";\n      } else {\n        source.eatWhile(/[\\w\\-_]/);\n        plug = getMostPowerful(state);\n        if (plug.name == 'begin') {\n          plug.argument = source.current();\n        }\n        return plug.styleIdentifier();\n      }\n    }\n\n    function inMathMode(source, state, endModeSeq) {\n      if (source.eatSpace()) {\n        return null;\n      }\n      if (source.match(endModeSeq)) {\n        setState(state, normal);\n        return \"keyword\";\n      }\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        return \"tag\";\n      }\n      if (source.match(/^[a-zA-Z]+/)) {\n        return \"variable-2\";\n      }\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/]/)) {\n        return \"tag\";\n      }\n      // special math-mode characters\n      if (source.match(/^[\\^_&]/)) {\n        return \"tag\";\n      }\n      // non-special characters\n      if (source.match(/^[+\\-<>|=,\\/@!*:;'\"`~#?]/)) {\n        return null;\n      }\n      if (source.match(/^(\\d+\\.\\d*|\\d*\\.\\d+|\\d+)/)) {\n        return \"number\";\n      }\n      var ch = source.next();\n      if (ch == \"{\" || ch == \"}\" || ch == \"[\" || ch == \"]\" || ch == \"(\" || ch == \")\") {\n        return \"bracket\";\n      }\n\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      }\n      return \"error\";\n    }\n\n    function beginParams(source, state) {\n      var ch = source.peek(), lastPlug;\n      if (ch == '{' || ch == '[') {\n        lastPlug = peekCommand(state);\n        lastPlug.openBracket(ch);\n        source.eat(ch);\n        setState(state, normal);\n        return \"bracket\";\n      }\n      if (/[ \\t\\r]/.test(ch)) {\n        source.eat(ch);\n        return null;\n      }\n      setState(state, normal);\n      popCommand(state);\n\n      return normal(source, state);\n    }\n\n    return {\n      startState: function() {\n        return {\n          cmdState: [],\n          f: normal\n        };\n      },\n      copyState: function(s) {\n        return {\n          cmdState: s.cmdState.slice(),\n          f: s.f\n        };\n      },\n      token: function(stream, state) {\n        return state.f(stream, state);\n      },\n      blankLine: function(state) {\n        state.f = normal;\n        state.cmdState.length = 0;\n      },\n      lineComment: \"%\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-stex\", \"stex\");\n  CodeMirror.defineMIME(\"text/x-latex\", \"stex\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/stex/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"stex\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"word\",\n     \"foo\");\n\n  MT(\"twoWords\",\n     \"foo bar\");\n\n  MT(\"beginEndDocument\",\n     \"[tag \\\\begin][bracket {][atom document][bracket }]\",\n     \"[tag \\\\end][bracket {][atom document][bracket }]\");\n\n  MT(\"beginEndEquation\",\n     \"[tag \\\\begin][bracket {][atom equation][bracket }]\",\n     \"  E=mc^2\",\n     \"[tag \\\\end][bracket {][atom equation][bracket }]\");\n\n  MT(\"beginModule\",\n     \"[tag \\\\begin][bracket {][atom module][bracket }[[]]]\");\n\n  MT(\"beginModuleId\",\n     \"[tag \\\\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]\");\n\n  MT(\"importModule\",\n     \"[tag \\\\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]\");\n\n  MT(\"importModulePath\",\n     \"[tag \\\\importmodule][bracket [[][tag \\\\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]\");\n\n  MT(\"psForPDF\",\n     \"[tag \\\\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]\");\n\n  MT(\"comment\",\n     \"[comment % foo]\");\n\n  MT(\"tagComment\",\n     \"[tag \\\\item][comment % bar]\");\n\n  MT(\"commentTag\",\n     \" [comment % \\\\item]\");\n\n  MT(\"commentLineBreak\",\n     \"[comment %]\",\n     \"foo\");\n\n  MT(\"tagErrorCurly\",\n     \"[tag \\\\begin][error }][bracket {]\");\n\n  MT(\"tagErrorSquare\",\n     \"[tag \\\\item][error ]]][bracket {]\");\n\n  MT(\"commentCurly\",\n     \"[comment % }]\");\n\n  MT(\"tagHash\",\n     \"the [tag \\\\#] key\");\n\n  MT(\"tagNumber\",\n     \"a [tag \\\\$][atom 5] stetson\");\n\n  MT(\"tagPercent\",\n     \"[atom 100][tag \\\\%] beef\");\n\n  MT(\"tagAmpersand\",\n     \"L [tag \\\\&] N\");\n\n  MT(\"tagUnderscore\",\n     \"foo[tag \\\\_]bar\");\n\n  MT(\"tagBracketOpen\",\n     \"[tag \\\\emph][bracket {][tag \\\\{][bracket }]\");\n\n  MT(\"tagBracketClose\",\n     \"[tag \\\\emph][bracket {][tag \\\\}][bracket }]\");\n\n  MT(\"tagLetterNumber\",\n     \"section [tag \\\\S][atom 1]\");\n\n  MT(\"textTagNumber\",\n     \"para [tag \\\\P][atom 2]\");\n\n  MT(\"thinspace\",\n     \"x[tag \\\\,]y\");\n\n  MT(\"thickspace\",\n     \"x[tag \\\\;]y\");\n\n  MT(\"negativeThinspace\",\n     \"x[tag \\\\!]y\");\n\n  MT(\"periodNotSentence\",\n     \"J.\\\\ L.\\\\ is\");\n\n  MT(\"periodSentence\",\n     \"X[tag \\\\@]. The\");\n\n  MT(\"italicCorrection\",\n     \"[bracket {][tag \\\\em] If[tag \\\\/][bracket }] I\");\n\n  MT(\"tagBracket\",\n     \"[tag \\\\newcommand][bracket {][tag \\\\pop][bracket }]\");\n\n  MT(\"inlineMathTagFollowedByNumber\",\n     \"[keyword $][tag \\\\pi][number 2][keyword $]\");\n\n  MT(\"inlineMath\",\n     \"[keyword $][number 3][variable-2 x][tag ^][number 2.45]-[tag \\\\sqrt][bracket {][tag \\\\$\\\\alpha][bracket }] = [number 2][keyword $] other text\");\n\n  MT(\"displayMath\",\n     \"More [keyword $$]\\t[variable-2 S][tag ^][variable-2 n][tag \\\\sum] [variable-2 i][keyword $$] other text\");\n\n  MT(\"mathWithComment\",\n     \"[keyword $][variable-2 x] [comment % $]\",\n     \"[variable-2 y][keyword $] other text\");\n\n  MT(\"lineBreakArgument\",\n    \"[tag \\\\\\\\][bracket [[][atom 1cm][bracket ]]]\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/stylus/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Stylus mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"stylus.js\"></script>\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/css-hint.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;} form{margin-bottom: .7em;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Stylus</a>\n  </ul>\n</div>\n\n<article>\n<h2>Stylus mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Stylus mode */\n#id\n.class\narticle\n  font-family Arial, sans-serif\n\n#id,\n.class,\narticle {\n  font-family: Arial, sans-serif;\n}\n\n// Variables\nfont-size-base = 16px\nline-height-base = 1.5\nfont-family-base = \"Helvetica Neue\", Helvetica, Arial, sans-serif\ntext-color = lighten(#000, 20%)\n\nbody\n  font font-size-base/line-height-base font-family-base\n  color text-color\n\nbody {\n  font: 400 16px/1.5 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  color: #333;\n}\n\n// Variables\nlink-color = darken(#428bca, 6.5%)\nlink-hover-color = darken(link-color, 15%)\nlink-decoration = none\nlink-hover-decoration = false\n\n// Mixin\ntab-focus()\n  outline thin dotted\n  outline 5px auto -webkit-focus-ring-color\n  outline-offset -2px\n\na\n  color link-color\n  if link-decoration\n    text-decoration link-decoration\n  &:hover\n  &:focus\n    color link-hover-color\n    if link-hover-decoration\n      text-decoration link-hover-decoration\n  &:focus\n    tab-focus()\n\na {\n  color: #3782c4;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #2f6ea7;\n}\na:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n</textarea>\n</form>\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-styl</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/stylus/stylus.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stylus\", function(config) {\n\n    var operatorsRegexp = /^(\\?:?|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/=?|[=!:\\?]?=|<=?|>=?|%=?|&&|\\|=?|\\~|!|\\^|\\\\)/,\n        delimitersRegexp = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/,\n        wordOperatorsRegexp = wordRegexp(wordOperators),\n        commonKeywordsRegexp = wordRegexp(commonKeywords),\n        commonAtomsRegexp = wordRegexp(commonAtoms),\n        commonDefRegexp = wordRegexp(commonDef),\n        vendorPrefixesRegexp = new RegExp(/^\\-(moz|ms|o|webkit)-/),\n        cssValuesWithBracketsRegexp = new RegExp(\"^(\" + cssValuesWithBrackets_.join(\"|\") + \")\\\\([\\\\w\\-\\\\#\\\\,\\\\.\\\\%\\\\s\\\\(\\\\)]*\\\\)\");\n\n    var tokenBase = function(stream, state) {\n\n      if (stream.eatSpace()) return null;\n\n      var ch = stream.peek();\n\n      // Single line Comment\n      if (stream.match('//')) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Multiline Comment\n      if (stream.match('/*')) {\n        state.tokenizer = multilineComment;\n        return state.tokenizer(stream, state);\n      }\n\n      // Strings\n      if (ch === '\"' || ch === \"'\") {\n        stream.next();\n        state.tokenizer = buildStringTokenizer(ch);\n        return \"string\";\n      }\n\n      // Def\n      if (ch === \"@\") {\n        stream.next();\n        if (stream.match(/extend/)) {\n          dedent(state); // remove indentation after selectors\n        } else if (stream.match(/media[\\w-\\s]*[\\w-]/)) {\n          indent(state);\n        } else if(stream.eatWhile(/[\\w-]/)) {\n          if(stream.current().match(commonDefRegexp)) {\n            indent(state);\n          }\n        }\n        return \"def\";\n      }\n\n      // Number\n      if (stream.match(/^-?[0-9\\.]/, false)) {\n\n        // Floats\n        if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i) || stream.match(/^-?\\d+\\.\\d*/)) {\n\n          // Prevent from getting extra . on 1..\n          if (stream.peek() == \".\") {\n            stream.backUp(1);\n          }\n          // Units\n          stream.eatWhile(/[a-z%]/i);\n          return \"number\";\n        }\n        // Integers\n        if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/) || stream.match(/^-?0(?![\\dx])/i)) {\n          // Units\n          stream.eatWhile(/[a-z%]/i);\n          return \"number\";\n        }\n      }\n\n      // Hex color and id selector\n      if (ch === \"#\") {\n        stream.next();\n\n        // Hex color\n        if (stream.match(/^[0-9a-f]{6}|[0-9a-f]{3}/i)) {\n          return \"atom\";\n        }\n\n        // ID selector\n        if (stream.match(/^[\\w-]+/i)) {\n          indent(state);\n          return \"builtin\";\n        }\n      }\n\n      // Vendor prefixes\n      if (stream.match(vendorPrefixesRegexp)) {\n        return \"meta\";\n      }\n\n      // Gradients and animation as CSS value\n      if (stream.match(cssValuesWithBracketsRegexp)) {\n        return \"atom\";\n      }\n\n      // Mixins / Functions with indentation\n      if (stream.sol() && stream.match(/^\\.?[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        indent(state);\n        return \"keyword\";\n      }\n\n      // Mixins / Functions\n      if (stream.match(/^\\.?[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        return \"keyword\";\n      }\n\n      // +Block mixins\n      if (stream.match(/^(\\+|\\-)[a-z][\\w-]+\\(/i)) {\n        stream.backUp(1);\n        indent(state);\n        return \"keyword\";\n      }\n\n      // url tokens\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        if(!stream.peek()) {\n          state.cursorHalf = 0;\n        }\n        return \"atom\";\n      }\n\n      // Class\n      if (stream.match(/^\\.[a-z][\\w-]*/i)) {\n        indent(state);\n        return \"qualifier\";\n      }\n\n      // & Parent Reference with BEM naming\n      if (stream.match(/^(_|__|-|--)[a-z0-9-]+/)) {\n        return \"qualifier\";\n      }\n\n      // Pseudo elements/classes\n      if (ch == ':' && stream.match(/^::?[\\w-]+/)) {\n        indent(state);\n        return \"variable-3\";\n      }\n\n      // Conditionals\n      if (stream.match(wordRegexp([\"for\", \"if\", \"else\", \"unless\"]))) {\n        indent(state);\n        return \"keyword\";\n      }\n\n      // Keywords\n      if (stream.match(commonKeywordsRegexp)) {\n        return \"keyword\";\n      }\n\n      // Atoms\n      if (stream.match(commonAtomsRegexp)) {\n        return \"atom\";\n      }\n\n      // Variables\n      if (stream.match(/^\\$?[a-z][\\w-]+\\s?=(\\s|[\\w-'\"\\$])/i)) {\n        stream.backUp(2);\n        var cssPropertie = stream.current().toLowerCase().match(/[\\w-]+/)[0];\n        return cssProperties[cssPropertie] === undefined ? \"variable-2\" : \"property\";\n      } else if (stream.match(/\\$[\\w-\\.]+/i)) {\n        return \"variable-2\";\n      } else if (stream.match(/\\$?[\\w-]+\\.[\\w-]+/i)) {\n        var cssTypeSelector = stream.current().toLowerCase().match(/[\\w]+/)[0];\n        if(cssTypeSelectors[cssTypeSelector] === undefined) {\n          return \"variable-2\";\n        } else stream.backUp(stream.current().length);\n      }\n\n      // !important\n      if (ch === \"!\") {\n        stream.next();\n        return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n      }\n\n      // / Root Reference\n      if (stream.match(/^\\/(:|\\.|#|[a-z])/)) {\n        stream.backUp(1);\n        return \"variable-3\";\n      }\n\n      // Operators and delimiters\n      if (stream.match(operatorsRegexp) || stream.match(wordOperatorsRegexp)) {\n        return \"operator\";\n      }\n      if (stream.match(delimitersRegexp)) {\n        return null;\n      }\n\n      // & Parent Reference\n      if (ch === \"&\") {\n        stream.next();\n        return \"variable-3\";\n      }\n\n      // Font family\n      if (stream.match(/^[A-Z][a-z0-9-]+/)) {\n        return \"string\";\n      }\n\n      // CSS rule\n      // NOTE: Some css selectors and property values have the same name\n      // (embed, menu, pre, progress, sub, table),\n      // so they will have the same color (.cm-atom).\n      if (stream.match(/[\\w-]*/i)) {\n\n        var word = stream.current().toLowerCase();\n\n        if(cssProperties[word] !== undefined) {\n          // CSS property\n          if(!stream.eol())\n            return \"property\";\n          else\n            return \"variable-2\";\n\n        } else if(cssValues[word] !== undefined) {\n          // CSS value\n          return \"atom\";\n\n        } else if(cssTypeSelectors[word] !== undefined) {\n          // CSS type selectors\n          indent(state);\n          return \"tag\";\n\n        } else if(word) {\n          // By default variable-2\n          return \"variable-2\";\n        }\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return null;\n\n    };\n\n    var tokenLexer = function(stream, state) {\n\n      if (stream.sol()) {\n        state.indentCount = 0;\n      }\n\n      var style = state.tokenizer(stream, state);\n      var current = stream.current();\n\n      if (stream.eol() && (current === \"}\" || current === \",\")) {\n        dedent(state);\n      }\n\n      if (style !== null) {\n        var startOfToken = stream.pos - current.length;\n        var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n        var newScopes = [];\n\n        for (var i = 0; i < state.scopes.length; i++) {\n          var scope = state.scopes[i];\n\n          if (scope.offset <= withCurrentIndent) {\n            newScopes.push(scope);\n          }\n        }\n\n        state.scopes = newScopes;\n      }\n\n      return style;\n    };\n\n    return {\n      startState: function() {\n        return {\n          tokenizer: tokenBase,\n          scopes: [{offset: 0, type: 'styl'}]\n        };\n      },\n\n      token: function(stream, state) {\n        var style = tokenLexer(stream, state);\n        state.lastToken = { style: style, content: stream.current() };\n        return style;\n      },\n\n      indent: function(state) {\n        return state.scopes[0].offset;\n      },\n\n      lineComment: \"//\",\n      fold: \"indent\"\n\n    };\n\n    function urlTokens(stream, state) {\n      var ch = stream.peek();\n\n      if (ch === \")\") {\n        stream.next();\n        state.tokenizer = tokenBase;\n        return \"operator\";\n      } else if (ch === \"(\") {\n        stream.next();\n        stream.eatSpace();\n\n        return \"operator\";\n      } else if (ch === \"'\" || ch === '\"') {\n        state.tokenizer = buildStringTokenizer(stream.next());\n        return \"string\";\n      } else {\n        state.tokenizer = buildStringTokenizer(\")\", false);\n        return \"string\";\n      }\n    }\n\n    function multilineComment(stream, state) {\n      if (stream.skipTo(\"*/\")) {\n        stream.next();\n        stream.next();\n        state.tokenizer = tokenBase;\n      } else {\n        stream.next();\n      }\n      return \"comment\";\n    }\n\n    function buildStringTokenizer(quote, greedy) {\n\n      if(greedy == null) {\n        greedy = true;\n      }\n\n      function stringTokenizer(stream, state) {\n        var nextChar = stream.next();\n        var peekChar = stream.peek();\n        var previousChar = stream.string.charAt(stream.pos-2);\n\n        var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) ||\n                            (nextChar === quote && previousChar !== \"\\\\\"));\n\n        if (endingString) {\n          if (nextChar !== quote && greedy) {\n            stream.next();\n          }\n          state.tokenizer = tokenBase;\n          return \"string\";\n        } else if (nextChar === \"#\" && peekChar === \"{\") {\n          state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n          stream.next();\n          return \"operator\";\n        } else {\n          return \"string\";\n        }\n      }\n\n      return stringTokenizer;\n    }\n\n    function buildInterpolationTokenizer(currentTokenizer) {\n      return function(stream, state) {\n        if (stream.peek() === \"}\") {\n          stream.next();\n          state.tokenizer = currentTokenizer;\n          return \"operator\";\n        } else {\n          return tokenBase(stream, state);\n        }\n      };\n    }\n\n    function indent(state) {\n      if (state.indentCount == 0) {\n        state.indentCount++;\n        var lastScopeOffset = state.scopes[0].offset;\n        var currentOffset = lastScopeOffset + config.indentUnit;\n        state.scopes.unshift({ offset:currentOffset });\n      }\n    }\n\n    function dedent(state) {\n      if (state.scopes.length == 1) { return true; }\n      state.scopes.shift();\n    }\n\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n  var cssTypeSelectors_ = [\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\", \"b\", \"base\",\"bdi\",\"bdo\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"nobr\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"];\n  // https://github.com/csscomb/csscomb.js/blob/master/config/zen.json\n  var cssProperties_ = [\"position\",\"top\",\"right\",\"bottom\",\"left\",\"z-index\",\"display\",\"visibility\",\"flex-direction\",\"flex-order\",\"flex-pack\",\"float\",\"clear\",\"flex-align\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overflow-scrolling\",\"clip\",\"box-sizing\",\"margin\",\"margin-top\",\"margin-right\",\"margin-bottom\",\"margin-left\",\"padding\",\"padding-top\",\"padding-right\",\"padding-bottom\",\"padding-left\",\"min-width\",\"min-height\",\"max-width\",\"max-height\",\"width\",\"height\",\"outline\",\"outline-width\",\"outline-style\",\"outline-color\",\"outline-offset\",\"border\",\"border-spacing\",\"border-collapse\",\"border-width\",\"border-style\",\"border-color\",\"border-top\",\"border-top-width\",\"border-top-style\",\"border-top-color\",\"border-right\",\"border-right-width\",\"border-right-style\",\"border-right-color\",\"border-bottom\",\"border-bottom-width\",\"border-bottom-style\",\"border-bottom-color\",\"border-left\",\"border-left-width\",\"border-left-style\",\"border-left-color\",\"border-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-bottom-right-radius\",\"border-bottom-left-radius\",\"border-image\",\"border-image-source\",\"border-image-slice\",\"border-image-width\",\"border-image-outset\",\"border-image-repeat\",\"border-top-image\",\"border-right-image\",\"border-bottom-image\",\"border-left-image\",\"border-corner-image\",\"border-top-left-image\",\"border-top-right-image\",\"border-bottom-right-image\",\"border-bottom-left-image\",\"background\",\"filter:progid:DXImageTransform\\\\.Microsoft\\\\.AlphaImageLoader\",\"background-color\",\"background-image\",\"background-attachment\",\"background-position\",\"background-position-x\",\"background-position-y\",\"background-clip\",\"background-origin\",\"background-size\",\"background-repeat\",\"box-decoration-break\",\"box-shadow\",\"color\",\"table-layout\",\"caption-side\",\"empty-cells\",\"list-style\",\"list-style-position\",\"list-style-type\",\"list-style-image\",\"quotes\",\"content\",\"counter-increment\",\"counter-reset\",\"writing-mode\",\"vertical-align\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-emphasis\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-emphasis-color\",\"text-indent\",\"-ms-text-justify\",\"text-justify\",\"text-outline\",\"text-transform\",\"text-wrap\",\"text-overflow\",\"text-overflow-ellipsis\",\"text-overflow-mode\",\"text-size-adjust\",\"text-shadow\",\"white-space\",\"word-spacing\",\"word-wrap\",\"word-break\",\"tab-size\",\"hyphens\",\"letter-spacing\",\"font\",\"font-weight\",\"font-style\",\"font-variant\",\"font-size-adjust\",\"font-stretch\",\"font-size\",\"font-family\",\"src\",\"line-height\",\"opacity\",\"filter:\\\\\\\\\\\\\\\\'progid:DXImageTransform.Microsoft.Alpha\",\"filter:progid:DXImageTransform.Microsoft.Alpha\\\\(Opacity\",\"interpolation-mode\",\"filter\",\"resize\",\"cursor\",\"nav-index\",\"nav-up\",\"nav-right\",\"nav-down\",\"nav-left\",\"transition\",\"transition-delay\",\"transition-timing-function\",\"transition-duration\",\"transition-property\",\"transform\",\"transform-origin\",\"animation\",\"animation-name\",\"animation-duration\",\"animation-play-state\",\"animation-timing-function\",\"animation-delay\",\"animation-iteration-count\",\"animation-direction\",\"pointer-events\",\"unicode-bidi\",\"direction\",\"columns\",\"column-span\",\"column-width\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-width\",\"column-rule-style\",\"column-rule-color\",\"break-before\",\"break-inside\",\"break-after\",\"page-break-before\",\"page-break-inside\",\"page-break-after\",\"orphans\",\"widows\",\"zoom\",\"max-zoom\",\"min-zoom\",\"user-zoom\",\"orientation\",\"text-rendering\",\"speak\",\"animation-fill-mode\",\"backface-visibility\",\"user-drag\",\"user-select\",\"appearance\"];\n  // https://github.com/codemirror/CodeMirror/blob/master/mode/css/css.js#L501\n  var cssValues_ = [\"above\",\"absolute\",\"activeborder\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"auto\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"column\",\"compact\",\"condensed\",\"contain\",\"content\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"disc\",\"discard\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ew-resize\",\"expanded\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"line-through\",\"linear\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"malayalam\",\"match\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"round\",\"row-resize\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"scroll\",\"scrollbar\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"single\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small-caps\",\"small-caption\",\"smaller\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\",\"bicubic\",\"optimizespeed\",\"grayscale\"];\n  var cssColorValues_ = [\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"];\n  var cssValuesWithBrackets_ = [\"gradient\",\"linear-gradient\",\"radial-gradient\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"cubic-bezier\",\"translateX\",\"translateY\",\"translate3d\",\"rotate3d\",\"scale\",\"scale3d\",\"perspective\",\"skewX\"];\n\n  var wordOperators = [\"in\", \"and\", \"or\", \"not\", \"is a\", \"is\", \"isnt\", \"defined\", \"if unless\"],\n      commonKeywords = [\"for\", \"if\", \"else\", \"unless\", \"return\"],\n      commonAtoms = [\"null\", \"true\", \"false\", \"href\", \"title\", \"type\", \"not-allowed\", \"readonly\", \"disabled\"],\n      commonDef = [\"@font-face\", \"@keyframes\", \"@media\", \"@viewport\", \"@page\", \"@host\", \"@supports\", \"@block\", \"@css\"],\n      cssTypeSelectors = keySet(cssTypeSelectors_),\n      cssProperties = keySet(cssProperties_),\n      cssValues = keySet(cssValues_.concat(cssColorValues_)),\n      hintWords = wordOperators.concat(commonKeywords,\n                                       commonAtoms,\n                                       commonDef,\n                                       cssTypeSelectors_,\n                                       cssProperties_,\n                                       cssValues_,\n                                       cssValuesWithBrackets_,\n                                       cssColorValues_);\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  };\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  };\n\n  CodeMirror.registerHelper(\"hintWords\", \"stylus\", hintWords);\n  CodeMirror.defineMIME(\"text/x-styl\", \"stylus\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tcl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tcl mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"tcl.js\"></script>\n<script src=\"../../addon/scroll/scrollpastend.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tcl</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tcl mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n##############################################################################################\n##  ##     whois.tcl for eggdrop by Ford_Lawnmower irc.geekshed.net #Script-Help        ##  ##\n##############################################################################################\n## To use this script you must set channel flag +whois (ie .chanset #chan +whois)           ##\n##############################################################################################\n##      ____                __                 ###########################################  ##\n##     / __/___ _ ___ _ ___/ /____ ___   ___   ###########################################  ##\n##    / _/ / _ `// _ `// _  // __// _ \\ / _ \\  ###########################################  ##\n##   /___/ \\_, / \\_, / \\_,_//_/   \\___// .__/  ###########################################  ##\n##        /___/ /___/                 /_/      ###########################################  ##\n##                                             ###########################################  ##\n##############################################################################################\n##  ##                             Start Setup.                                         ##  ##\n##############################################################################################\nnamespace eval whois {\n## change cmdchar to the trigger you want to use                                        ##  ##\n  variable cmdchar \"!\"\n## change command to the word trigger you would like to use.                            ##  ##\n## Keep in mind, This will also change the .chanset +/-command                          ##  ##\n  variable command \"whois\"\n## change textf to the colors you want for the text.                                    ##  ##\n  variable textf \"\\017\\00304\"\n## change tagf to the colors you want for tags:                                         ##  ##\n  variable tagf \"\\017\\002\"\n## Change logo to the logo you want at the start of the line.                           ##  ##\n  variable logo \"\\017\\00304\\002\\[\\00306W\\003hois\\00304\\]\\017\"\n## Change lineout to the results you want. Valid results are channel users modes topic  ##  ##\n  variable lineout \"channel users modes topic\"\n##############################################################################################\n##  ##                           End Setup.                                              ## ##\n##############################################################################################\n  variable channel \"\"\n  setudef flag $whois::command\n  bind pub -|- [string trimleft $whois::cmdchar]${whois::command} whois::list\n  bind raw -|- \"311\" whois::311\n  bind raw -|- \"312\" whois::312\n  bind raw -|- \"319\" whois::319\n  bind raw -|- \"317\" whois::317\n  bind raw -|- \"313\" whois::multi\n  bind raw -|- \"310\" whois::multi\n  bind raw -|- \"335\" whois::multi\n  bind raw -|- \"301\" whois::301\n  bind raw -|- \"671\" whois::multi\n  bind raw -|- \"320\" whois::multi\n  bind raw -|- \"401\" whois::multi\n  bind raw -|- \"318\" whois::318\n  bind raw -|- \"307\" whois::307\n}\nproc whois::311 {from key text} {\n  if {[regexp -- {^[^\\s]+\\s(.+?)\\s(.+?)\\s(.+?)\\s\\*\\s\\:(.+)$} $text wholematch nick ident host realname]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Host:${whois::textf} \\\n        $nick \\(${ident}@${host}\\) ${whois::tagf}Realname:${whois::textf} $realname\"\n  }\n}\nproc whois::multi {from key text} {\n  if {[regexp {\\:(.*)$} $text match $key]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Note:${whois::textf} [subst $$key]\"\n        return 1\n  }\n}\nproc whois::312 {from key text} {\n  regexp {([^\\s]+)\\s\\:} $text match server\n  putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Server:${whois::textf} $server\"\n}\nproc whois::319 {from key text} {\n  if {[regexp {.+\\:(.+)$} $text match channels]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Channels:${whois::textf} $channels\"\n  }\n}\nproc whois::317 {from key text} {\n  if {[regexp -- {.*\\s(\\d+)\\s(\\d+)\\s\\:} $text wholematch idle signon]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Connected:${whois::textf} \\\n        [ctime $signon] ${whois::tagf}Idle:${whois::textf} [duration $idle]\"\n  }\n}\nproc whois::301 {from key text} {\n  if {[regexp {^.+\\s[^\\s]+\\s\\:(.*)$} $text match awaymsg]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Away:${whois::textf} $awaymsg\"\n  }\n}\nproc whois::318 {from key text} {\n  namespace eval whois {\n        variable channel \"\"\n  }\n  variable whois::channel \"\"\n}\nproc whois::307 {from key text} {\n  putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Services:${whois::textf} Registered Nick\"\n}\nproc whois::list {nick host hand chan text} {\n  if {[lsearch -exact [channel info $chan] \"+${whois::command}\"] != -1} {\n    namespace eval whois {\n          variable channel \"\"\n        }\n    variable whois::channel $chan\n    putserv \"WHOIS $text\"\n  }\n}\nputlog \"\\002*Loaded* \\017\\00304\\002\\[\\00306W\\003hois\\00304\\]\\017 \\002by \\\nFord_Lawnmower irc.GeekShed.net #Script-Help\"\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"night\",\n        lineNumbers: true,\n        indentUnit: 2,\n        scrollPastEnd: true,\n        mode: \"text/x-tcl\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tcl</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tcl/tcl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tcl\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = parseWords(\"Tcl safe after append array auto_execok auto_import auto_load \" +\n        \"auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror \" +\n        \"binary break catch cd close concat continue dde eof encoding error \" +\n        \"eval exec exit expr fblocked fconfigure fcopy file fileevent filename \" +\n        \"filename flush for foreach format gets glob global history http if \" +\n        \"incr info interp join lappend lindex linsert list llength load lrange \" +\n        \"lreplace lsearch lset lsort memory msgcat namespace open package parray \" +\n        \"pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp \" +\n        \"registry regsub rename resource return scan seek set socket source split \" +\n        \"string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord \" +\n        \"tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest \" +\n        \"tclvars tell time trace unknown unset update uplevel upvar variable \" +\n    \"vwait\");\n    var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n    var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n    function chain(stream, state, f) {\n      state.tokenize = f;\n      return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n      var beforeParams = state.beforeParams;\n      state.beforeParams = false;\n      var ch = stream.next();\n      if ((ch == '\"' || ch == \"'\") && state.inParams)\n        return chain(stream, state, tokenString(ch));\n      else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n        if (ch == \"(\" && beforeParams) state.inParams = true;\n        else if (ch == \")\") state.inParams = false;\n          return null;\n      }\n      else if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      else if (ch == \"#\" && stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      }\n      else if (ch == \"#\" && stream.match(/ *\\[ *\\[/)) {\n        return chain(stream, state, tokenUnparsed);\n      }\n      else if (ch == \"#\" && stream.eat(\"#\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      else if (ch == '\"') {\n        stream.skipTo(/\"/);\n        return \"comment\";\n      }\n      else if (ch == \"$\") {\n        stream.eatWhile(/[$_a-z0-9A-Z\\.{:]/);\n        stream.eatWhile(/}/);\n        state.beforeParams = true;\n        return \"builtin\";\n      }\n      else if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"comment\";\n      }\n      else {\n        stream.eatWhile(/[\\w\\$_{}\\xa1-\\uffff]/);\n        var word = stream.current().toLowerCase();\n        if (keywords && keywords.propertyIsEnumerable(word))\n          return \"keyword\";\n        if (functions && functions.propertyIsEnumerable(word)) {\n          state.beforeParams = true;\n          return \"keyword\";\n        }\n        return null;\n      }\n    }\n    function tokenString(quote) {\n      return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize = tokenBase;\n        return \"string\";\n      };\n    }\n    function tokenComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n    function tokenUnparsed(stream, state) {\n      var maybeEnd = 0, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd == 2) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        if (ch == \"]\")\n          maybeEnd++;\n        else if (ch != \" \")\n          maybeEnd = 0;\n      }\n      return \"meta\";\n    }\n    return {\n      startState: function() {\n        return {\n          tokenize: tokenBase,\n          beforeParams: false,\n          inParams: false\n        };\n      },\n      token: function(stream, state) {\n        if (stream.eatSpace()) return null;\n        return state.tokenize(stream, state);\n      }\n    };\n});\nCodeMirror.defineMIME(\"text/x-tcl\", \"tcl\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/textile/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Textile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"textile.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/marijnh/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=\"active\" href=\"#\">Textile</a>\n  </ul>\n</div>\n\n<article>\n    <h2>Textile mode</h2>\n    <form><textarea id=\"code\" name=\"code\">\nh1. Textile Mode\n\nA paragraph without formatting.\n\np. A simple Paragraph.\n\n\nh2. Phrase Modifiers\n\nHere are some simple phrase modifiers: *strong*, _emphasis_, **bold**, and __italic__.\n\nA ??citation??, -deleted text-, +inserted text+, some ^superscript^, and some ~subscript~.\n\nA %span element% and @code element@\n\nA \"link\":http://example.com, a \"link with (alt text)\":urlAlias\n\n[urlAlias]http://example.com/\n\nAn image: !http://example.com/image.png! and an image with a link: !http://example.com/image.png!:http://example.com\n\nA sentence with a footnote.[123]\n\nfn123. The footnote is defined here.\n\nRegistered(r), Trademark(tm), and Copyright(c)\n\n\nh2. Headers\n\nh1. Top level\nh2. Second level\nh3. Third level\nh4. Fourth level\nh5. Fifth level\nh6. Lowest level\n\n\nh2.  Lists\n\n* An unordered list\n** foo bar\n*** foo bar\n**** foo bar\n** foo bar\n\n# An ordered list\n## foo bar\n### foo bar\n#### foo bar\n## foo bar\n\n- definition list := description\n- another item    := foo bar\n- spanning ines   :=\n                     foo bar\n\n                     foo bar =:\n\n\nh2. Attributes\n\nLayouts and phrase modifiers can be modified with various kinds of attributes: alignment, CSS ID, CSS class names, language, padding, and CSS styles.\n\nh3. Alignment\n\ndiv<. left align\ndiv>. right align\n\nh3. CSS ID and class name\n\nYou are a %(my-id#my-classname) rad% person.\n\nh3. Language\n\np[en_CA]. Strange weather, eh?\n\nh3. Horizontal Padding\n\np(())). 2em left padding, 3em right padding\n\nh3. CSS styling\n\np{background: red}. Fire!\n\n\nh2. Table\n\n|_.              Header 1               |_.      Header 2        |\n|{background:#ddd}. Cell with background|         Normal         |\n|\\2.         Cell spanning 2 columns                             |\n|/2.         Cell spanning 2 rows       |(cell-class). one       |\n|                                                two             |\n|>.                  Right aligned cell |<. Left aligned cell    |\n\n\nh3. A table with attributes:\n\ntable(#prices).\n|Adults|$5|\n|Children|$2|\n\n\nh2. Code blocks\n\nbc.\nfunction factorial(n) {\n    if (n === 0) {\n        return 1;\n    }\n    return n * factorial(n - 1);\n}\n\npre..\n                ,,,,,,\n            o#'9MMHb':'-,o,\n         .oH\":HH$' \"' ' -*R&o,\n        dMMM*\"\"'`'      .oM\"HM?.\n       ,MMM'          \"HLbd< ?&H\\\n      .:MH .\"\\          ` MM  MM&b\n     . \"*H    -        &MMMMMMMMMH:\n     .    dboo        MMMMMMMMMMMM.\n     .   dMMMMMMb      *MMMMMMMMMP.\n     .    MMMMMMMP        *MMMMMP .\n          `#MMMMM           MM6P ,\n       '    `MMMP\"           HM*`,\n        '    :MM             .- ,\n         '.   `#?..  .       ..'\n            -.   .         .-\n              ''-.oo,oo.-''\n\n\\. _(9>\n \\==_)\n  -'=\n\nh2. Temporarily disabling textile markup\n\nnotextile. Don't __touch this!__\n\nSurround text with double-equals to disable textile inline. Example: Use ==*asterisks*== for *strong* text.\n\n\nh2. HTML\n\nSome block layouts are simply textile versions of HTML tags with the same name, like @div@, @pre@, and @p@. HTML tags can also exist on their own line:\n\n<section>\n  <h1>Title</h1>\n  <p>Hello!</p>\n</section>\n\n</textarea></form>\n    <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n            lineNumbers: true,\n            mode: \"text/x-textile\"\n        });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-textile</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#textile_*\">normal</a>,  <a href=\"../../test/index.html#verbose,textile_*\">verbose</a>.</p>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/textile/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, 'textile');\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT('simpleParagraphs',\n      'Some text.',\n      '',\n      'Some more text.');\n\n  /*\n   * Phrase Modifiers\n   */\n\n  MT('em',\n      'foo [em _bar_]');\n\n  MT('emBoogus',\n      'code_mirror');\n\n  MT('strong',\n      'foo [strong *bar*]');\n\n  MT('strongBogus',\n      '3 * 3 = 9');\n\n  MT('italic',\n      'foo [em __bar__]');\n\n  MT('italicBogus',\n      'code__mirror');\n\n  MT('bold',\n      'foo [strong **bar**]');\n\n  MT('boldBogus',\n      '3 ** 3 = 27');\n\n  MT('simpleLink',\n      '[link \"CodeMirror\":http://codemirror.net]');\n\n  MT('referenceLink',\n      '[link \"CodeMirror\":code_mirror]',\n      'Normal Text.',\n      '[link [[code_mirror]]http://codemirror.net]');\n\n  MT('footCite',\n      'foo bar[qualifier [[1]]]');\n\n  MT('footCiteBogus',\n      'foo bar[[1a2]]');\n\n  MT('special-characters',\n          'Registered [tag (r)], ' +\n          'Trademark [tag (tm)], and ' +\n          'Copyright [tag (c)] 2008');\n\n  MT('cite',\n      \"A book is [keyword ??The Count of Monte Cristo??] by Dumas.\");\n\n  MT('additionAndDeletion',\n      'The news networks declared [negative -Al Gore-] ' +\n        '[positive +George W. Bush+] the winner in Florida.');\n\n  MT('subAndSup',\n      'f(x, n) = log [builtin ~4~] x [builtin ^n^]');\n\n  MT('spanAndCode',\n      'A [quote %span element%] and [atom @code element@]');\n\n  MT('spanBogus',\n      'Percentage 25% is not a span.');\n\n  MT('citeBogus',\n      'Question? is not a citation.');\n\n  MT('codeBogus',\n      'user@example.com');\n\n  MT('subBogus',\n      '~username');\n\n  MT('supBogus',\n      'foo ^ bar');\n\n  MT('deletionBogus',\n      '3 - 3 = 0');\n\n  MT('additionBogus',\n      '3 + 3 = 6');\n\n  MT('image',\n      'An image: [string !http://www.example.com/image.png!]');\n\n  MT('imageWithAltText',\n      'An image: [string !http://www.example.com/image.png (Alt Text)!]');\n\n  MT('imageWithUrl',\n      'An image: [string !http://www.example.com/image.png!:http://www.example.com/]');\n\n  /*\n   * Headers\n   */\n\n  MT('h1',\n      '[header&header-1 h1. foo]');\n\n  MT('h2',\n      '[header&header-2 h2. foo]');\n\n  MT('h3',\n      '[header&header-3 h3. foo]');\n\n  MT('h4',\n      '[header&header-4 h4. foo]');\n\n  MT('h5',\n      '[header&header-5 h5. foo]');\n\n  MT('h6',\n      '[header&header-6 h6. foo]');\n\n  MT('h7Bogus',\n      'h7. foo');\n\n  MT('multipleHeaders',\n      '[header&header-1 h1. Heading 1]',\n      '',\n      'Some text.',\n      '',\n      '[header&header-2 h2. Heading 2]',\n      '',\n      'More text.');\n\n  MT('h1inline',\n      '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1  baz]');\n\n  /*\n   * Lists\n   */\n\n  MT('ul',\n      'foo',\n      'bar',\n      '',\n      '[variable-2 * foo]',\n      '[variable-2 * bar]');\n\n  MT('ulNoBlank',\n      'foo',\n      'bar',\n      '[variable-2 * foo]',\n      '[variable-2 * bar]');\n\n  MT('ol',\n      'foo',\n      'bar',\n      '',\n      '[variable-2 # foo]',\n      '[variable-2 # bar]');\n\n  MT('olNoBlank',\n      'foo',\n      'bar',\n      '[variable-2 # foo]',\n      '[variable-2 # bar]');\n\n  MT('ulFormatting',\n      '[variable-2 * ][variable-2&em _foo_][variable-2  bar]',\n      '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' +\n        '[variable-2&strong *][variable-2  bar]',\n      '[variable-2 * ][variable-2&strong *foo*][variable-2  bar]');\n\n  MT('olFormatting',\n      '[variable-2 # ][variable-2&em _foo_][variable-2  bar]',\n      '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' +\n        '[variable-2&strong *][variable-2  bar]',\n      '[variable-2 # ][variable-2&strong *foo*][variable-2  bar]');\n\n  MT('ulNested',\n      '[variable-2 * foo]',\n      '[variable-3 ** bar]',\n      '[keyword *** bar]',\n      '[variable-2 **** bar]',\n      '[variable-3 ** bar]');\n\n  MT('olNested',\n      '[variable-2 # foo]',\n      '[variable-3 ## bar]',\n      '[keyword ### bar]',\n      '[variable-2 #### bar]',\n      '[variable-3 ## bar]');\n\n  MT('ulNestedWithOl',\n      '[variable-2 * foo]',\n      '[variable-3 ## bar]',\n      '[keyword *** bar]',\n      '[variable-2 #### bar]',\n      '[variable-3 ** bar]');\n\n  MT('olNestedWithUl',\n      '[variable-2 # foo]',\n      '[variable-3 ** bar]',\n      '[keyword ### bar]',\n      '[variable-2 **** bar]',\n      '[variable-3 ## bar]');\n\n  MT('definitionList',\n      '[number - coffee := Hot ][number&em _and_][number  black]',\n      '',\n      'Normal text.');\n\n  MT('definitionListSpan',\n      '[number - coffee :=]',\n      '',\n      '[number Hot ][number&em _and_][number  black =:]',\n      '',\n      'Normal text.');\n\n  MT('boo',\n      '[number - dog := woof woof]',\n      '[number - cat := meow meow]',\n      '[number - whale :=]',\n      '[number Whale noises.]',\n      '',\n      '[number Also, ][number&em _splashing_][number . =:]');\n\n  /*\n   * Attributes\n   */\n\n  MT('divWithAttribute',\n      '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]');\n\n  MT('divWithAttributeAnd2emRightPadding',\n      '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]');\n\n  MT('divWithClassAndId',\n      '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]');\n\n  MT('paragraphWithCss',\n      'p[attribute {color:red;}]. foo bar');\n\n  MT('paragraphNestedStyles',\n      'p. [strong *foo ][strong&em _bar_][strong *]');\n\n  MT('paragraphWithLanguage',\n      'p[attribute [[fr]]]. Parlez-vous français?');\n\n  MT('paragraphLeftAlign',\n      'p[attribute <]. Left');\n\n  MT('paragraphRightAlign',\n      'p[attribute >]. Right');\n\n  MT('paragraphRightAlign',\n      'p[attribute =]. Center');\n\n  MT('paragraphJustified',\n      'p[attribute <>]. Justified');\n\n  MT('paragraphWithLeftIndent1em',\n      'p[attribute (]. Left');\n\n  MT('paragraphWithRightIndent1em',\n      'p[attribute )]. Right');\n\n  MT('paragraphWithLeftIndent2em',\n      'p[attribute ((]. Left');\n\n  MT('paragraphWithRightIndent2em',\n      'p[attribute ))]. Right');\n\n  MT('paragraphWithLeftIndent3emRightIndent2em',\n      'p[attribute ((())]. Right');\n\n  MT('divFormatting',\n      '[punctuation div. ][punctuation&strong *foo ]' +\n        '[punctuation&strong&em _bar_][punctuation&strong *]');\n\n  MT('phraseModifierAttributes',\n      'p[attribute (my-class)]. This is a paragraph that has a class and' +\n      ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' +\n      ' has an id.');\n\n  MT('linkWithClass',\n      '[link \"(my-class). This is a link with class\":http://redcloth.org]');\n\n  /*\n   * Layouts\n   */\n\n  MT('paragraphLayouts',\n      'p. This is one paragraph.',\n      '',\n      'p. This is another.');\n\n  MT('div',\n      '[punctuation div. foo bar]');\n\n  MT('pre',\n      '[operator pre. Text]');\n\n  MT('bq.',\n      '[bracket bq. foo bar]',\n      '',\n      'Normal text.');\n\n  MT('footnote',\n      '[variable fn123. foo ][variable&strong *bar*]');\n\n  /*\n   * Spanning Layouts\n   */\n\n  MT('bq..ThenParagraph',\n      '[bracket bq.. foo bar]',\n      '',\n      '[bracket More quote.]',\n      'p. Normal Text');\n\n  MT('bq..ThenH1',\n      '[bracket bq.. foo bar]',\n      '',\n      '[bracket More quote.]',\n      '[header&header-1 h1. Header Text]');\n\n  MT('bc..ThenParagraph',\n      '[atom bc.. # Some ruby code]',\n      '[atom obj = {foo: :bar}]',\n      '[atom puts obj]',\n      '',\n      '[atom obj[[:love]] = \"*love*\"]',\n      '[atom puts obj.love.upcase]',\n      '',\n      'p. Normal text.');\n\n  MT('fn1..ThenParagraph',\n      '[variable fn1.. foo bar]',\n      '',\n      '[variable More.]',\n      'p. Normal Text');\n\n  MT('pre..ThenParagraph',\n      '[operator pre.. foo bar]',\n      '',\n      '[operator More.]',\n      'p. Normal Text');\n\n  /*\n   * Tables\n   */\n\n  MT('table',\n      '[variable-3&operator |_. name |_. age|]',\n      '[variable-3 |][variable-3&strong *Walter*][variable-3 |   5  |]',\n      '[variable-3 |Florence|   6  |]',\n      '',\n      'p. Normal text.');\n\n  MT('tableWithAttributes',\n      '[variable-3&operator |_. name |_. age|]',\n      '[variable-3 |][variable-3&attribute /2.][variable-3  Jim |]',\n      '[variable-3 |][variable-3&attribute \\\\2{color: red}.][variable-3  Sam |]');\n\n  /*\n   * HTML\n   */\n\n  MT('html',\n      '[comment <div id=\"wrapper\">]',\n      '[comment <section id=\"introduction\">]',\n      '',\n      '[header&header-1 h1. Welcome]',\n      '',\n      '[variable-2 * Item one]',\n      '[variable-2 * Item two]',\n      '',\n      '[comment <a href=\"http://example.com\">Example</a>]',\n      '',\n      '[comment </section>]',\n      '[comment </div>]');\n\n  MT('inlineHtml',\n      'I can use HTML directly in my [comment <span class=\"youbetcha\">Textile</span>].');\n\n  /*\n   * No-Textile\n   */\n\n  MT('notextile',\n    '[string-2 notextile. *No* formatting]');\n\n  MT('notextileInline',\n      'Use [string-2 ==*asterisks*==] for [strong *strong*] text.');\n\n  MT('notextileWithPre',\n      '[operator pre. *No* formatting]');\n\n  MT('notextileWithSpanningPre',\n      '[operator pre.. *No* formatting]',\n      '',\n      '[operator *No* formatting]');\n\n  /* Only toggling phrases between non-word chars. */\n\n  MT('phrase-in-word',\n     'foo_bar_baz');\n\n  MT('phrase-non-word',\n     '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]');\n\n  MT('phrase-lone-dash',\n     'foo - bar - baz');\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/textile/textile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") { // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  } else if (typeof define == \"function\" && define.amd) { // AMD\n    define([\"../../lib/codemirror\"], mod);\n  } else { // Plain browser env\n    mod(CodeMirror);\n  }\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var TOKEN_STYLES = {\n    addition: \"positive\",\n    attributes: \"attribute\",\n    bold: \"strong\",\n    cite: \"keyword\",\n    code: \"atom\",\n    definitionList: \"number\",\n    deletion: \"negative\",\n    div: \"punctuation\",\n    em: \"em\",\n    footnote: \"variable\",\n    footCite: \"qualifier\",\n    header: \"header\",\n    html: \"comment\",\n    image: \"string\",\n    italic: \"em\",\n    link: \"link\",\n    linkDefinition: \"link\",\n    list1: \"variable-2\",\n    list2: \"variable-3\",\n    list3: \"keyword\",\n    notextile: \"string-2\",\n    pre: \"operator\",\n    p: \"property\",\n    quote: \"bracket\",\n    span: \"quote\",\n    specialChar: \"tag\",\n    strong: \"strong\",\n    sub: \"builtin\",\n    sup: \"builtin\",\n    table: \"variable-3\",\n    tableHeading: \"operator\"\n  };\n\n  function startNewLine(stream, state) {\n    state.mode = Modes.newLayout;\n    state.tableHeading = false;\n\n    if (state.layoutType === \"definitionList\" && state.spanningLayout &&\n        stream.match(RE(\"definitionListEnd\"), false))\n      state.spanningLayout = false;\n  }\n\n  function handlePhraseModifier(stream, state, ch) {\n    if (ch === \"_\") {\n      if (stream.eat(\"_\"))\n        return togglePhraseModifier(stream, state, \"italic\", /__/, 2);\n      else\n        return togglePhraseModifier(stream, state, \"em\", /_/, 1);\n    }\n\n    if (ch === \"*\") {\n      if (stream.eat(\"*\")) {\n        return togglePhraseModifier(stream, state, \"bold\", /\\*\\*/, 2);\n      }\n      return togglePhraseModifier(stream, state, \"strong\", /\\*/, 1);\n    }\n\n    if (ch === \"[\") {\n      if (stream.match(/\\d+\\]/)) state.footCite = true;\n      return tokenStyles(state);\n    }\n\n    if (ch === \"(\") {\n      var spec = stream.match(/^(r|tm|c)\\)/);\n      if (spec)\n        return tokenStylesWith(state, TOKEN_STYLES.specialChar);\n    }\n\n    if (ch === \"<\" && stream.match(/(\\w+)[^>]+>[^<]+<\\/\\1>/))\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n\n    if (ch === \"?\" && stream.eat(\"?\"))\n      return togglePhraseModifier(stream, state, \"cite\", /\\?\\?/, 2);\n\n    if (ch === \"=\" && stream.eat(\"=\"))\n      return togglePhraseModifier(stream, state, \"notextile\", /==/, 2);\n\n    if (ch === \"-\" && !stream.eat(\"-\"))\n      return togglePhraseModifier(stream, state, \"deletion\", /-/, 1);\n\n    if (ch === \"+\")\n      return togglePhraseModifier(stream, state, \"addition\", /\\+/, 1);\n\n    if (ch === \"~\")\n      return togglePhraseModifier(stream, state, \"sub\", /~/, 1);\n\n    if (ch === \"^\")\n      return togglePhraseModifier(stream, state, \"sup\", /\\^/, 1);\n\n    if (ch === \"%\")\n      return togglePhraseModifier(stream, state, \"span\", /%/, 1);\n\n    if (ch === \"@\")\n      return togglePhraseModifier(stream, state, \"code\", /@/, 1);\n\n    if (ch === \"!\") {\n      var type = togglePhraseModifier(stream, state, \"image\", /(?:\\([^\\)]+\\))?!/, 1);\n      stream.match(/^:\\S+/); // optional Url portion\n      return type;\n    }\n    return tokenStyles(state);\n  }\n\n  function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {\n    var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;\n    var charAfter = stream.peek();\n    if (state[phraseModifier]) {\n      if ((!charAfter || /\\W/.test(charAfter)) && charBefore && /\\S/.test(charBefore)) {\n        var type = tokenStyles(state);\n        state[phraseModifier] = false;\n        return type;\n      }\n    } else if ((!charBefore || /\\W/.test(charBefore)) && charAfter && /\\S/.test(charAfter) &&\n               stream.match(new RegExp(\"^.*\\\\S\" + closeRE.source + \"(?:\\\\W|$)\"), false)) {\n      state[phraseModifier] = true;\n      state.mode = Modes.attributes;\n    }\n    return tokenStyles(state);\n  };\n\n  function tokenStyles(state) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var styles = [];\n    if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);\n\n    styles = styles.concat(activeStyles(\n      state, \"addition\", \"bold\", \"cite\", \"code\", \"deletion\", \"em\", \"footCite\",\n      \"image\", \"italic\", \"link\", \"span\", \"strong\", \"sub\", \"sup\", \"table\", \"tableHeading\"));\n\n    if (state.layoutType === \"header\")\n      styles.push(TOKEN_STYLES.header + \"-\" + state.header);\n\n    return styles.length ? styles.join(\" \") : null;\n  }\n\n  function textileDisabled(state) {\n    var type = state.layoutType;\n\n    switch(type) {\n    case \"notextile\":\n    case \"code\":\n    case \"pre\":\n      return TOKEN_STYLES[type];\n    default:\n      if (state.notextile)\n        return TOKEN_STYLES.notextile + (type ? (\" \" + TOKEN_STYLES[type]) : \"\");\n      return null;\n    }\n  }\n\n  function tokenStylesWith(state, extraStyles) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var type = tokenStyles(state);\n    if (extraStyles)\n      return type ? (type + \" \" + extraStyles) : extraStyles;\n    else\n      return type;\n  }\n\n  function activeStyles(state) {\n    var styles = [];\n    for (var i = 1; i < arguments.length; ++i) {\n      if (state[arguments[i]])\n        styles.push(TOKEN_STYLES[arguments[i]]);\n    }\n    return styles;\n  }\n\n  function blankLine(state) {\n    var spanningLayout = state.spanningLayout, type = state.layoutType;\n\n    for (var key in state) if (state.hasOwnProperty(key))\n      delete state[key];\n\n    state.mode = Modes.newLayout;\n    if (spanningLayout) {\n      state.layoutType = type;\n      state.spanningLayout = true;\n    }\n  }\n\n  var REs = {\n    cache: {},\n    single: {\n      bc: \"bc\",\n      bq: \"bq\",\n      definitionList: /- [^(?::=)]+:=+/,\n      definitionListEnd: /.*=:\\s*$/,\n      div: \"div\",\n      drawTable: /\\|.*\\|/,\n      foot: /fn\\d+/,\n      header: /h[1-6]/,\n      html: /\\s*<(?:\\/)?(\\w+)(?:[^>]+)?>(?:[^<]+<\\/\\1>)?/,\n      link: /[^\"]+\":\\S/,\n      linkDefinition: /\\[[^\\s\\]]+\\]\\S+/,\n      list: /(?:#+|\\*+)/,\n      notextile: \"notextile\",\n      para: \"p\",\n      pre: \"pre\",\n      table: \"table\",\n      tableCellAttributes: /[\\/\\\\]\\d+/,\n      tableHeading: /\\|_\\./,\n      tableText: /[^\"_\\*\\[\\(\\?\\+~\\^%@|-]+/,\n      text: /[^!\"_=\\*\\[\\(<\\?\\+~\\^%@-]+/\n    },\n    attributes: {\n      align: /(?:<>|<|>|=)/,\n      selector: /\\([^\\(][^\\)]+\\)/,\n      lang: /\\[[^\\[\\]]+\\]/,\n      pad: /(?:\\(+|\\)+){1,2}/,\n      css: /\\{[^\\}]+\\}/\n    },\n    createRe: function(name) {\n      switch (name) {\n      case \"drawTable\":\n        return REs.makeRe(\"^\", REs.single.drawTable, \"$\");\n      case \"html\":\n        return REs.makeRe(\"^\", REs.single.html, \"(?:\", REs.single.html, \")*\", \"$\");\n      case \"linkDefinition\":\n        return REs.makeRe(\"^\", REs.single.linkDefinition, \"$\");\n      case \"listLayout\":\n        return REs.makeRe(\"^\", REs.single.list, RE(\"allAttributes\"), \"*\\\\s+\");\n      case \"tableCellAttributes\":\n        return REs.makeRe(\"^\", REs.choiceRe(REs.single.tableCellAttributes,\n                                            RE(\"allAttributes\")), \"+\\\\.\");\n      case \"type\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"));\n      case \"typeLayout\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"), RE(\"allAttributes\"),\n                          \"*\\\\.\\\\.?\", \"(\\\\s+|$)\");\n      case \"attributes\":\n        return REs.makeRe(\"^\", RE(\"allAttributes\"), \"+\");\n\n      case \"allTypes\":\n        return REs.choiceRe(REs.single.div, REs.single.foot,\n                            REs.single.header, REs.single.bc, REs.single.bq,\n                            REs.single.notextile, REs.single.pre, REs.single.table,\n                            REs.single.para);\n\n      case \"allAttributes\":\n        return REs.choiceRe(REs.attributes.selector, REs.attributes.css,\n                            REs.attributes.lang, REs.attributes.align, REs.attributes.pad);\n\n      default:\n        return REs.makeRe(\"^\", REs.single[name]);\n      }\n    },\n    makeRe: function() {\n      var pattern = \"\";\n      for (var i = 0; i < arguments.length; ++i) {\n        var arg = arguments[i];\n        pattern += (typeof arg === \"string\") ? arg : arg.source;\n      }\n      return new RegExp(pattern);\n    },\n    choiceRe: function() {\n      var parts = [arguments[0]];\n      for (var i = 1; i < arguments.length; ++i) {\n        parts[i * 2 - 1] = \"|\";\n        parts[i * 2] = arguments[i];\n      }\n\n      parts.unshift(\"(?:\");\n      parts.push(\")\");\n      return REs.makeRe.apply(null, parts);\n    }\n  };\n\n  function RE(name) {\n    return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));\n  }\n\n  var Modes = {\n    newLayout: function(stream, state) {\n      if (stream.match(RE(\"typeLayout\"), false)) {\n        state.spanningLayout = false;\n        return (state.mode = Modes.blockType)(stream, state);\n      }\n      var newMode;\n      if (!textileDisabled(state)) {\n        if (stream.match(RE(\"listLayout\"), false))\n          newMode = Modes.list;\n        else if (stream.match(RE(\"drawTable\"), false))\n          newMode = Modes.table;\n        else if (stream.match(RE(\"linkDefinition\"), false))\n          newMode = Modes.linkDefinition;\n        else if (stream.match(RE(\"definitionList\")))\n          newMode = Modes.definitionList;\n        else if (stream.match(RE(\"html\"), false))\n          newMode = Modes.html;\n      }\n      return (state.mode = (newMode || Modes.text))(stream, state);\n    },\n\n    blockType: function(stream, state) {\n      var match, type;\n      state.layoutType = null;\n\n      if (match = stream.match(RE(\"type\")))\n        type = match[0];\n      else\n        return (state.mode = Modes.text)(stream, state);\n\n      if (match = type.match(RE(\"header\"))) {\n        state.layoutType = \"header\";\n        state.header = parseInt(match[0][1]);\n      } else if (type.match(RE(\"bq\"))) {\n        state.layoutType = \"quote\";\n      } else if (type.match(RE(\"bc\"))) {\n        state.layoutType = \"code\";\n      } else if (type.match(RE(\"foot\"))) {\n        state.layoutType = \"footnote\";\n      } else if (type.match(RE(\"notextile\"))) {\n        state.layoutType = \"notextile\";\n      } else if (type.match(RE(\"pre\"))) {\n        state.layoutType = \"pre\";\n      } else if (type.match(RE(\"div\"))) {\n        state.layoutType = \"div\";\n      } else if (type.match(RE(\"table\"))) {\n        state.layoutType = \"table\";\n      }\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    text: function(stream, state) {\n      if (stream.match(RE(\"text\"))) return tokenStyles(state);\n\n      var ch = stream.next();\n      if (ch === '\"')\n        return (state.mode = Modes.link)(stream, state);\n      return handlePhraseModifier(stream, state, ch);\n    },\n\n    attributes: function(stream, state) {\n      state.mode = Modes.layoutLength;\n\n      if (stream.match(RE(\"attributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    layoutLength: function(stream, state) {\n      if (stream.eat(\".\") && stream.eat(\".\"))\n        state.spanningLayout = true;\n\n      state.mode = Modes.text;\n      return tokenStyles(state);\n    },\n\n    list: function(stream, state) {\n      var match = stream.match(RE(\"list\"));\n      state.listDepth = match[0].length;\n      var listMod = (state.listDepth - 1) % 3;\n      if (!listMod)\n        state.layoutType = \"list1\";\n      else if (listMod === 1)\n        state.layoutType = \"list2\";\n      else\n        state.layoutType = \"list3\";\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    link: function(stream, state) {\n      state.mode = Modes.text;\n      if (stream.match(RE(\"link\"))) {\n        stream.match(/\\S+/);\n        return tokenStylesWith(state, TOKEN_STYLES.link);\n      }\n      return tokenStyles(state);\n    },\n\n    linkDefinition: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.linkDefinition);\n    },\n\n    definitionList: function(stream, state) {\n      stream.match(RE(\"definitionList\"));\n\n      state.layoutType = \"definitionList\";\n\n      if (stream.match(/\\s*$/))\n        state.spanningLayout = true;\n      else\n        state.mode = Modes.attributes;\n\n      return tokenStyles(state);\n    },\n\n    html: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n    },\n\n    table: function(stream, state) {\n      state.layoutType = \"table\";\n      return (state.mode = Modes.tableCell)(stream, state);\n    },\n\n    tableCell: function(stream, state) {\n      if (stream.match(RE(\"tableHeading\")))\n        state.tableHeading = true;\n      else\n        stream.eat(\"|\");\n\n      state.mode = Modes.tableCellAttributes;\n      return tokenStyles(state);\n    },\n\n    tableCellAttributes: function(stream, state) {\n      state.mode = Modes.tableText;\n\n      if (stream.match(RE(\"tableCellAttributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    tableText: function(stream, state) {\n      if (stream.match(RE(\"tableText\")))\n        return tokenStyles(state);\n\n      if (stream.peek() === \"|\") { // end of cell\n        state.mode = Modes.tableCell;\n        return tokenStyles(state);\n      }\n      return handlePhraseModifier(stream, state, stream.next());\n    }\n  };\n\n  CodeMirror.defineMode(\"textile\", function() {\n    return {\n      startState: function() {\n        return { mode: Modes.newLayout };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) startNewLine(stream, state);\n        return state.mode(stream, state);\n      },\n      blankLine: blankLine\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-textile\", \"textile\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiddlywiki/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TiddlyWiki mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"tiddlywiki.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"tiddlywiki.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TiddlyWiki</a>\n  </ul>\n</div>\n\n<article>\n<h2>TiddlyWiki mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n!TiddlyWiki Formatting\n* Rendered versions can be found at: http://www.tiddlywiki.com/#Reference\n\n|!Option            | !Syntax            |\n|bold font          | ''bold''           |\n|italic type        | //italic//         |\n|underlined text    | __underlined__     |\n|strikethrough text | --strikethrough--  |\n|superscript text   | super^^script^^    |\n|subscript text     | sub~~script~~      |\n|highlighted text   | @@highlighted@@    |\n|preformatted text  | {{{preformatted}}} |\n\n!Block Elements\n<<<\n!Heading 1\n\n!!Heading 2\n\n!!!Heading 3\n\n!!!!Heading 4\n\n!!!!!Heading 5\n<<<\n\n!!Lists\n<<<\n* unordered list, level 1\n** unordered list, level 2\n*** unordered list, level 3\n\n# ordered list, level 1\n## ordered list, level 2\n### unordered list, level 3\n\n; definition list, term\n: definition list, description\n<<<\n\n!!Blockquotes\n<<<\n> blockquote, level 1\n>> blockquote, level 2\n>>> blockquote, level 3\n\n> blockquote\n<<<\n\n!!Preformatted Text\n<<<\n{{{\npreformatted (e.g. code)\n}}}\n<<<\n\n!!Code Sections\n<<<\n{{{\nText style code\n}}}\n\n//{{{\nJS styled code. TiddlyWiki mixed mode should support highlighter switching in the future.\n//}}}\n\n<!--{{{-->\nXML styled code. TiddlyWiki mixed mode should support highlighter switching in the future.\n<!--}}}-->\n<<<\n\n!!Tables\n<<<\n|CssClass|k\n|!heading column 1|!heading column 2|\n|row 1, column 1|row 1, column 2|\n|row 2, column 1|row 2, column 2|\n|>|COLSPAN|\n|ROWSPAN| ... |\n|~| ... |\n|CssProperty:value;...| ... |\n|caption|c\n\n''Annotation:''\n* The {{{>}}} marker creates a \"colspan\", causing the current cell to merge with the one to the right.\n* The {{{~}}} marker creates a \"rowspan\", causing the current cell to merge with the one above.\n<<<\n!!Images /% TODO %/\ncf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]\n\n!Hyperlinks\n* [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler\n** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}\n* [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}\n** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>'''N.B.:''' In this case, the target can also be any website (i.e. URL).\n\n!Custom Styling\n* {{{@@CssProperty:value;CssProperty:value;...@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.\n* <html><code>{{customCssClass{...}}}</code></html>\n* raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> ... </html>}}}\n\n!Special Markers\n* {{{<br>}}} forces a manual line break\n* {{{----}}} creates a horizontal ruler\n* [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]\n* [[HTML entities local|HtmlEntities]]\n* {{{<<macroName>>}}} calls the respective [[macro|Macros]]\n* To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.\n* To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{\"\"\"WikiWord\"\"\"}}}.\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'tiddlywiki',      \n        lineNumbers: true,\n        matchBrackets: true\n      });\n    </script>\n\n    <p>TiddlyWiki mode supports a single configuration.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tiddlywiki</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiddlywiki/tiddlywiki.css",
    "content": "span.cm-underlined {\n  text-decoration: underline;\n}\nspan.cm-strikethrough {\n  text-decoration: line-through;\n}\nspan.cm-brace {\n  color: #170;\n  font-weight: bold;\n}\nspan.cm-table {\n  color: blue;\n  font-weight: bold;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiddlywiki/tiddlywiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/***\n    |''Name''|tiddlywiki.js|\n    |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror|\n    |''Author''|PMario|\n    |''Version''|0.1.7|\n    |''Status''|''stable''|\n    |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]|\n    |''Documentation''|http://codemirror.tiddlyspace.com/|\n    |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]|\n    |''CoreVersion''|2.5.0|\n    |''Requires''|codemirror.js|\n    |''Keywords''|syntax highlighting color code mirror codemirror|\n    ! Info\n    CoreVersion parameter is needed for TiddlyWiki only!\n***/\n//{{{\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tiddlywiki\", function () {\n  // Tokenizer\n  var textwords = {};\n\n  var keywords = function () {\n    function kw(type) {\n      return { type: type, style: \"macro\"};\n    }\n    return {\n      \"allTags\": kw('allTags'), \"closeAll\": kw('closeAll'), \"list\": kw('list'),\n      \"newJournal\": kw('newJournal'), \"newTiddler\": kw('newTiddler'),\n      \"permaview\": kw('permaview'), \"saveChanges\": kw('saveChanges'),\n      \"search\": kw('search'), \"slider\": kw('slider'),   \"tabs\": kw('tabs'),\n      \"tag\": kw('tag'), \"tagging\": kw('tagging'),       \"tags\": kw('tags'),\n      \"tiddler\": kw('tiddler'), \"timeline\": kw('timeline'),\n      \"today\": kw('today'), \"version\": kw('version'),   \"option\": kw('option'),\n\n      \"with\": kw('with'),\n      \"filter\": kw('filter')\n    };\n  }();\n\n  var isSpaceName = /[\\w_\\-]/i,\n  reHR = /^\\-\\-\\-\\-+$/,                                 // <hr>\n  reWikiCommentStart = /^\\/\\*\\*\\*$/,            // /***\n  reWikiCommentStop = /^\\*\\*\\*\\/$/,             // ***/\n  reBlockQuote = /^<<<$/,\n\n  reJsCodeStart = /^\\/\\/\\{\\{\\{$/,                       // //{{{ js block start\n  reJsCodeStop = /^\\/\\/\\}\\}\\}$/,                        // //}}} js stop\n  reXmlCodeStart = /^<!--\\{\\{\\{-->$/,           // xml block start\n  reXmlCodeStop = /^<!--\\}\\}\\}-->$/,            // xml stop\n\n  reCodeBlockStart = /^\\{\\{\\{$/,                        // {{{ TW text div block start\n  reCodeBlockStop = /^\\}\\}\\}$/,                 // }}} TW text stop\n\n  reUntilCodeStop = /.*?\\}\\}\\}/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n\n  function ret(tp, style, cont) {\n    type = tp;\n    content = cont;\n    return style;\n  }\n\n  function jsTokenBase(stream, state) {\n    var sol = stream.sol(), ch;\n\n    state.block = false;        // indicates the start of a code block.\n\n    ch = stream.peek();         // don't eat, to make matching simpler\n\n    // check start of  blocks\n    if (sol && /[<\\/\\*{}\\-]/.test(ch)) {\n      if (stream.match(reCodeBlockStart)) {\n        state.block = true;\n        return chain(stream, state, twTokenCode);\n      }\n      if (stream.match(reBlockQuote)) {\n        return ret('quote', 'quote');\n      }\n      if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) {\n        return ret('code', 'comment');\n      }\n      if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) {\n        return ret('code', 'comment');\n      }\n      if (stream.match(reHR)) {\n        return ret('hr', 'hr');\n      }\n    } // sol\n    ch = stream.next();\n\n    if (sol && /[\\/\\*!#;:>|]/.test(ch)) {\n      if (ch == \"!\") { // tw header\n        stream.skipToEnd();\n        return ret(\"header\", \"header\");\n      }\n      if (ch == \"*\") { // tw list\n        stream.eatWhile('*');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \"#\") { // tw numbered list\n        stream.eatWhile('#');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \";\") { // definition list, term\n        stream.eatWhile(';');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \":\") { // definition list, description\n        stream.eatWhile(':');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \">\") { // single line quote\n        stream.eatWhile(\">\");\n        return ret(\"quote\", \"quote\");\n      }\n      if (ch == '|') {\n        return ret('table', 'header');\n      }\n    }\n\n    if (ch == '{' && stream.match(/\\{\\{/)) {\n      return chain(stream, state, twTokenCode);\n    }\n\n    // rudimentary html:// file:// link matching. TW knows much more ...\n    if (/[hf]/i.test(ch)) {\n      if (/[ti]/i.test(stream.peek()) && stream.match(/\\b(ttps?|tp|ile):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|$!:,.;]*[A-Z0-9+&@#\\/%=~_|$]/i)) {\n        return ret(\"link\", \"link\");\n      }\n    }\n    // just a little string indicator, don't want to have the whole string covered\n    if (ch == '\"') {\n      return ret('string', 'string');\n    }\n    if (ch == '~') {    // _no_ CamelCase indicator should be bold\n      return ret('text', 'brace');\n    }\n    if (/[\\[\\]]/.test(ch)) { // check for [[..]]\n      if (stream.peek() == ch) {\n        stream.next();\n        return ret('brace', 'brace');\n      }\n    }\n    if (ch == \"@\") {    // check for space link. TODO fix @@...@@ highlighting\n      stream.eatWhile(isSpaceName);\n      return ret(\"link\", \"link\");\n    }\n    if (/\\d/.test(ch)) {        // numbers\n      stream.eatWhile(/\\d/);\n      return ret(\"number\", \"number\");\n    }\n    if (ch == \"/\") { // tw invisible comment\n      if (stream.eat(\"%\")) {\n        return chain(stream, state, twTokenComment);\n      }\n      else if (stream.eat(\"/\")) { //\n        return chain(stream, state, twTokenEm);\n      }\n    }\n    if (ch == \"_\") { // tw underline\n      if (stream.eat(\"_\")) {\n        return chain(stream, state, twTokenUnderline);\n      }\n    }\n    // strikethrough and mdash handling\n    if (ch == \"-\") {\n      if (stream.eat(\"-\")) {\n        // if strikethrough looks ugly, change CSS.\n        if (stream.peek() != ' ')\n          return chain(stream, state, twTokenStrike);\n        // mdash\n        if (stream.peek() == ' ')\n          return ret('text', 'brace');\n      }\n    }\n    if (ch == \"'\") { // tw bold\n      if (stream.eat(\"'\")) {\n        return chain(stream, state, twTokenStrong);\n      }\n    }\n    if (ch == \"<\") { // tw macro\n      if (stream.eat(\"<\")) {\n        return chain(stream, state, twTokenMacro);\n      }\n    }\n    else {\n      return ret(ch);\n    }\n\n    // core macro handling\n    stream.eatWhile(/[\\w\\$_]/);\n    var word = stream.current(),\n    known = textwords.propertyIsEnumerable(word) && textwords[word];\n\n    return known ? ret(known.type, known.style, word) : ret(\"text\", null, word);\n\n  } // jsTokenBase()\n\n  // tw invisible comment\n  function twTokenComment(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"%\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  // tw strong / bold\n  function twTokenStrong(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"'\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"'\");\n    }\n    return ret(\"text\", \"strong\");\n  }\n\n  // tw code\n  function twTokenCode(stream, state) {\n    var ch, sb = state.block;\n\n    if (sb && stream.current()) {\n      return ret(\"code\", \"comment\");\n    }\n\n    if (!sb && stream.match(reUntilCodeStop)) {\n      state.tokenize = jsTokenBase;\n      return ret(\"code\", \"comment\");\n    }\n\n    if (sb && stream.sol() && stream.match(reCodeBlockStop)) {\n      state.tokenize = jsTokenBase;\n      return ret(\"code\", \"comment\");\n    }\n\n    ch = stream.next();\n    return (sb) ? ret(\"code\", \"comment\") : ret(\"code\", \"comment\");\n  }\n\n  // tw em / italic\n  function twTokenEm(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"/\");\n    }\n    return ret(\"text\", \"em\");\n  }\n\n  // tw underlined text\n  function twTokenUnderline(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"_\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"_\");\n    }\n    return ret(\"text\", \"underlined\");\n  }\n\n  // tw strike through text looks ugly\n  // change CSS if needed\n  function twTokenStrike(stream, state) {\n    var maybeEnd = false, ch;\n\n    while (ch = stream.next()) {\n      if (ch == \"-\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"-\");\n    }\n    return ret(\"text\", \"strikethrough\");\n  }\n\n  // macro\n  function twTokenMacro(stream, state) {\n    var ch, word, known;\n\n    if (stream.current() == '<<') {\n      return ret('brace', 'macro');\n    }\n\n    ch = stream.next();\n    if (!ch) {\n      state.tokenize = jsTokenBase;\n      return ret(ch);\n    }\n    if (ch == \">\") {\n      if (stream.peek() == '>') {\n        stream.next();\n        state.tokenize = jsTokenBase;\n        return ret(\"brace\", \"macro\");\n      }\n    }\n\n    stream.eatWhile(/[\\w\\$_]/);\n    word = stream.current();\n    known = keywords.propertyIsEnumerable(word) && keywords[word];\n\n    if (known) {\n      return ret(known.type, known.style, word);\n    }\n    else {\n      return ret(\"macro\", null, word);\n    }\n  }\n\n  // Interface\n  return {\n    startState: function () {\n      return {\n        tokenize: jsTokenBase,\n        indented: 0,\n        level: 0\n      };\n    },\n\n    token: function (stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n\n    electricChars: \"\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-tiddlywiki\", \"tiddlywiki\");\n});\n\n//}}}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiki/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tiki wiki mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"tiki.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"tiki.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tiki wiki</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tiki wiki mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nHeadings\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n!!!!!!Header 6\n\nStyling\n-=titlebar=-\n^^ Box on multi\nlines\nof content^^\n__bold__\n''italic''\n===underline===\n::center::\n--Line Through--\n\nOperators\n~np~No parse~/np~\n\nLink\n[link|desc|nocache]\n\nWiki\n((Wiki))\n((Wiki|desc))\n((Wiki|desc|timeout))\n\nTable\n||row1 col1|row1 col2|row1 col3\nrow2 col1|row2 col2|row2 col3\nrow3 col1|row3 col2|row3 col3||\n\nLists:\n*bla\n**bla-1\n++continue-bla-1\n***bla-2\n++continue-bla-1\n*bla\n+continue-bla\n#bla\n** tra-la-la\n+continue-bla\n#bla\n\nPlugin (standard):\n{PLUGIN(attr=\"my attr\")}\nPlugin Body\n{PLUGIN}\n\nPlugin (inline):\n{plugin attr=\"my attr\"}\n</textarea></div>\n\n<script type=\"text/javascript\">\n\tvar editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'tiki',      \n        lineNumbers: true\n    });\n</script>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiki/tiki.css",
    "content": ".cm-tw-syntaxerror {\n\tcolor: #FFF;\n\tbackground-color: #900;\n}\n\n.cm-tw-deleted {\n\ttext-decoration: line-through;\n}\n\n.cm-tw-header5 {\n\tfont-weight: bold;\n}\n.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/\n\tpadding-left: 10px;\n}\n\n.cm-tw-box {\n\tborder-top-width: 0px ! important;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-color: inherit;\n}\n\n.cm-tw-underline {\n\ttext-decoration: underline;\n}"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tiki/tiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('tiki', function(config) {\n  function inBlock(style, terminator, returnTokenizer) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n\n      if (returnTokenizer) state.tokenize = returnTokenizer;\n\n      return style;\n    };\n  }\n\n  function inLine(style) {\n    return function(stream, state) {\n      while(!stream.eol()) {\n        stream.next();\n      }\n      state.tokenize = inText;\n      return style;\n    };\n  }\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    //non start of line\n    switch (ch) { //switch is generally much faster than if, so it is used here\n    case \"{\": //plugin\n      stream.eat(\"/\");\n      stream.eatSpace();\n      var tagName = \"\";\n      var c;\n      while ((c = stream.eat(/[^\\s\\u00a0=\\\"\\'\\/?(}]/))) tagName += c;\n      state.tokenize = inPlugin;\n      return \"tag\";\n      break;\n    case \"_\": //bold\n      if (stream.eat(\"_\")) {\n        return chain(inBlock(\"strong\", \"__\", inText));\n      }\n      break;\n    case \"'\": //italics\n      if (stream.eat(\"'\")) {\n        // Italic text\n        return chain(inBlock(\"em\", \"''\", inText));\n      }\n      break;\n    case \"(\":// Wiki Link\n      if (stream.eat(\"(\")) {\n        return chain(inBlock(\"variable-2\", \"))\", inText));\n      }\n      break;\n    case \"[\":// Weblink\n      return chain(inBlock(\"variable-3\", \"]\", inText));\n      break;\n    case \"|\": //table\n      if (stream.eat(\"|\")) {\n        return chain(inBlock(\"comment\", \"||\"));\n      }\n      break;\n    case \"-\":\n      if (stream.eat(\"=\")) {//titleBar\n        return chain(inBlock(\"header string\", \"=-\", inText));\n      } else if (stream.eat(\"-\")) {//deleted\n        return chain(inBlock(\"error tw-deleted\", \"--\", inText));\n      }\n      break;\n    case \"=\": //underline\n      if (stream.match(\"==\")) {\n        return chain(inBlock(\"tw-underline\", \"===\", inText));\n      }\n      break;\n    case \":\":\n      if (stream.eat(\":\")) {\n        return chain(inBlock(\"comment\", \"::\"));\n      }\n      break;\n    case \"^\": //box\n      return chain(inBlock(\"tw-box\", \"^\"));\n      break;\n    case \"~\": //np\n      if (stream.match(\"np~\")) {\n        return chain(inBlock(\"meta\", \"~/np~\"));\n      }\n      break;\n    }\n\n    //start of line types\n    if (sol) {\n      switch (ch) {\n      case \"!\": //header at start of line\n        if (stream.match('!!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!')) {\n          return chain(inLine(\"header string\"));\n        } else {\n          return chain(inLine(\"header string\"));\n        }\n        break;\n      case \"*\": //unordered list line item, or <li /> at start of line\n      case \"#\": //ordered list line item, or <li /> at start of line\n      case \"+\": //ordered list line item, or <li /> at start of line\n        return chain(inLine(\"tw-listitem bracket\"));\n        break;\n      }\n    }\n\n    //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki\n    return null;\n  }\n\n  var indentUnit = config.indentUnit;\n\n  // Return variables for tokenizers\n  var pluginName, type;\n  function inPlugin(stream, state) {\n    var ch = stream.next();\n    var peek = stream.peek();\n\n    if (ch == \"}\") {\n      state.tokenize = inText;\n      //type = ch == \")\" ? \"endPlugin\" : \"selfclosePlugin\"; inPlugin\n      return \"tag\";\n    } else if (ch == \"(\" || ch == \")\") {\n      return \"bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n\n      if (peek == \">\") {\n        ch = stream.next();\n        peek = stream.peek();\n      }\n\n      //here we detect values directly after equal character with no quotes\n      if (!/[\\'\\\"]/.test(peek)) {\n        state.tokenize = inAttributeNoQuote();\n      }\n      //end detect values\n\n      return \"operator\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      return state.tokenize(stream, state);\n    } else {\n      stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?]/);\n      return \"keyword\";\n    }\n  }\n\n  function inAttribute(quote) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inPlugin;\n          break;\n        }\n      }\n      return \"string\";\n    };\n  }\n\n  function inAttributeNoQuote() {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        var ch = stream.next();\n        var peek = stream.peek();\n        if (ch == \" \" || ch == \",\" || /[ )}]/.test(peek)) {\n      state.tokenize = inPlugin;\n      break;\n    }\n  }\n  return \"string\";\n};\n                     }\n\nvar curState, setStyle;\nfunction pass() {\n  for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);\n}\n\nfunction cont() {\n  pass.apply(null, arguments);\n  return true;\n}\n\nfunction pushContext(pluginName, startOfLine) {\n  var noIndent = curState.context && curState.context.noIndent;\n  curState.context = {\n    prev: curState.context,\n    pluginName: pluginName,\n    indent: curState.indented,\n    startOfLine: startOfLine,\n    noIndent: noIndent\n  };\n}\n\nfunction popContext() {\n  if (curState.context) curState.context = curState.context.prev;\n}\n\nfunction element(type) {\n  if (type == \"openPlugin\") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}\n  else if (type == \"closePlugin\") {\n    var err = false;\n    if (curState.context) {\n      err = curState.context.pluginName != pluginName;\n      popContext();\n    } else {\n      err = true;\n    }\n    if (err) setStyle = \"error\";\n    return cont(endcloseplugin(err));\n  }\n  else if (type == \"string\") {\n    if (!curState.context || curState.context.name != \"!cdata\") pushContext(\"!cdata\");\n    if (curState.tokenize == inText) popContext();\n    return cont();\n  }\n  else return cont();\n}\n\nfunction endplugin(startOfLine) {\n  return function(type) {\n    if (\n      type == \"selfclosePlugin\" ||\n        type == \"endPlugin\"\n    )\n      return cont();\n    if (type == \"endPlugin\") {pushContext(curState.pluginName, startOfLine); return cont();}\n    return cont();\n  };\n}\n\nfunction endcloseplugin(err) {\n  return function(type) {\n    if (err) setStyle = \"error\";\n    if (type == \"endPlugin\") return cont();\n    return pass();\n  };\n}\n\nfunction attributes(type) {\n  if (type == \"keyword\") {setStyle = \"attribute\"; return cont(attributes);}\n  if (type == \"equals\") return cont(attvalue, attributes);\n  return pass();\n}\nfunction attvalue(type) {\n  if (type == \"keyword\") {setStyle = \"string\"; return cont();}\n  if (type == \"string\") return cont(attvaluemaybe);\n  return pass();\n}\nfunction attvaluemaybe(type) {\n  if (type == \"string\") return cont(attvaluemaybe);\n  else return pass();\n}\nreturn {\n  startState: function() {\n    return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};\n  },\n  token: function(stream, state) {\n    if (stream.sol()) {\n      state.startOfLine = true;\n      state.indented = stream.indentation();\n    }\n    if (stream.eatSpace()) return null;\n\n    setStyle = type = pluginName = null;\n    var style = state.tokenize(stream, state);\n    if ((style || type) && style != \"comment\") {\n      curState = state;\n      while (true) {\n        var comb = state.cc.pop() || element;\n        if (comb(type || style)) break;\n      }\n    }\n    state.startOfLine = false;\n    return setStyle || style;\n  },\n  indent: function(state, textAfter) {\n    var context = state.context;\n    if (context && context.noIndent) return 0;\n    if (context && /^{\\//.test(textAfter))\n        context = context.prev;\n        while (context && !context.startOfLine)\n          context = context.prev;\n        if (context) return context.indent + indentUnit;\n        else return 0;\n       },\n    electricChars: \"/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/tiki\", \"tiki\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/toml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TOML Mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"toml.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TOML Mode</a>\n  </ul>\n</div>\n\n<article>\n<h2>TOML Mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# This is a TOML document. Boom.\n\ntitle = \"TOML Example\"\n\n[owner]\nname = \"Tom Preston-Werner\"\norganization = \"GitHub\"\nbio = \"GitHub Cofounder &amp; CEO\\nLikes tater tots and beer.\"\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\n\n[database]\nserver = \"192.168.1.1\"\nports = [ 8001, 8001, 8002 ]\nconnection_max = 5000\nenabled = true\n\n[servers]\n\n  # You can indent as you please. Tabs or spaces. TOML don't care.\n  [servers.alpha]\n  ip = \"10.0.0.1\"\n  dc = \"eqdc10\"\n  \n  [servers.beta]\n  ip = \"10.0.0.2\"\n  dc = \"eqdc10\"\n  \n[clients]\ndata = [ [\"gamma\", \"delta\"], [1, 2] ]\n\n# Line breaks are OK when inside arrays\nhosts = [\n  \"alpha\",\n  \"omega\"\n]\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"toml\"},\n        lineNumbers: true\n      });\n    </script>\n    <h3>The TOML Mode</h3>\n      <p> Created by Forbes Lindesay.</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-toml</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/toml/toml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"toml\", function () {\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: \"\",\n        lhs: true,\n        inArray: 0\n      };\n    },\n    token: function (stream, state) {\n      //check for state changes\n      if (!state.inString && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (stream.sol() && state.inArray === 0) {\n        state.lhs = true;\n      }\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inArray && stream.peek() === ']') {\n        stream.next();\n        state.inArray--;\n        return 'bracket';\n      } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) {\n        stream.next();//skip closing ]\n        // array of objects has an extra open & close []\n        if (stream.peek() === ']') stream.next();\n        return \"atom\";\n      } else if (stream.peek() === \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (stream.eatSpace()) {\n        return null;\n      } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) {\n        return \"property\";\n      } else if (state.lhs && stream.peek() === \"=\") {\n        stream.next();\n        state.lhs = false;\n        return null;\n      } else if (!state.lhs && stream.match(/^\\d\\d\\d\\d[\\d\\-\\:\\.T]*Z/)) {\n        return 'atom'; //date\n      } else if (!state.lhs && (stream.match('true') || stream.match('false'))) {\n        return 'atom';\n      } else if (!state.lhs && stream.peek() === '[') {\n        state.inArray++;\n        stream.next();\n        return 'bracket';\n      } else if (!state.lhs && stream.match(/^\\-?\\d+(?:\\.\\d+)?/)) {\n        return 'number';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME('text/x-toml', 'toml');\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tornado/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tornado template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"tornado.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/marijnh/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tornado</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tornado template mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<!doctype html>\n<html>\n    <head>\n        <title>My Tornado web application</title>\n    </head>\n    <body>\n        <h1>\n            {{ title }}\n        </h1>\n        <ul class=\"my-list\">\n            {% for item in items %}\n                <li>{% item.name %}</li>\n            {% empty %}\n                <li>You have no items in your list.</li>\n            {% end %}\n        </ul>\n    </body>\n</html>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"tornado\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for HTML with embedded Tornado template markup.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tornado</code></p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/tornado/tornado.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"tornado:inner\", function() {\n    var keywords = [\"and\",\"as\",\"assert\",\"autoescape\",\"block\",\"break\",\"class\",\"comment\",\"context\",\n                    \"continue\",\"datetime\",\"def\",\"del\",\"elif\",\"else\",\"end\",\"escape\",\"except\",\n                    \"exec\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\n                    \"include\",\"is\",\"json_encode\",\"lambda\",\"length\",\"linkify\",\"load\",\"module\",\n                    \"none\",\"not\",\"or\",\"pass\",\"print\",\"put\",\"raise\",\"raw\",\"return\",\"self\",\"set\",\n                    \"squeeze\",\"super\",\"true\",\"try\",\"url_escape\",\"while\",\"with\",\"without\",\"xhtml_escape\",\"yield\"];\n    keywords = new RegExp(\"^((\" + keywords.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      stream.eatWhile(/[^\\{]/);\n      var ch = stream.next();\n      if (ch == \"{\") {\n        if (ch = stream.eat(/\\{|%|#/)) {\n          state.tokenize = inTag(ch);\n          return \"tag\";\n        }\n      }\n    }\n    function inTag (close) {\n      if (close == \"{\") {\n        close = \"}\";\n      }\n      return function (stream, state) {\n        var ch = stream.next();\n        if ((ch == close) && stream.eat(\"}\")) {\n          state.tokenize = tokenBase;\n          return \"tag\";\n        }\n        if (stream.match(keywords)) {\n          return \"keyword\";\n        }\n        return close == \"#\" ? \"comment\" : \"string\";\n      };\n    }\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"tornado\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var tornadoInner = CodeMirror.getMode(config, \"tornado:inner\");\n    return CodeMirror.overlayMode(htmlBase, tornadoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-tornado\", \"tornado\");\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/turtle/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Turtle mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"turtle.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Turtle</a>\n  </ul>\n</div>\n\n<article>\n<h2>Turtle mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n\n<http://purl.org/net/bsletten> \n    a foaf:Person;\n    foaf:interest <http://www.w3.org/2000/01/sw/>;\n    foaf:based_near [\n        geo:lat \"34.0736111\" ;\n        geo:lon \"-118.3994444\"\n   ]\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/turtle\",\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/turtle</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/turtle/turtle.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"turtle\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([]);\n  var keywords = wordRegexp([\"@prefix\", \"@base\", \"a\"]);\n  var operatorChars = /[*+\\-<>=&|]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return null;\n    }\n    else if (ch == \":\") {\n          return \"operator\";\n        } else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if(stream.peek() == \":\") {\n        return \"variable-3\";\n      } else {\n             var word = stream.current();\n\n             if(keywords.test(word)) {\n                        return \"meta\";\n             }\n\n             if(ch >= \"A\" && ch <= \"Z\") {\n                    return \"comment\";\n                 } else {\n                        return \"keyword\";\n                 }\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return null;\n      else if (keywords.test(word))\n        return \"meta\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) popContext(state);\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/turtle\", \"turtle\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/vb/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: VB.NET mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link href=\"http://fonts.googleapis.com/css?family=Inconsolata\" rel=\"stylesheet\" type=\"text/css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"vb.js\"></script>\n<script type=\"text/javascript\" src=\"../../addon/runmode/runmode.js\"></script>\n<style>\n      .CodeMirror {border: 1px solid #aaa; height:210px; height: auto;}\n      .CodeMirror-scroll { overflow-x: auto; overflow-y: hidden;}\n      .CodeMirror pre { font-family: Inconsolata; font-size: 14px}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">VB.NET</a>\n  </ul>\n</div>\n\n<article>\n<h2>VB.NET mode</h2>\n\n<script type=\"text/javascript\">\nfunction test(golden, text) {\n  var ok = true;\n  var i = 0;\n  function callback(token, style, lineNo, pos){\n\t\t//console.log(String(token) + \" \" + String(style) + \" \" + String(lineNo) + \" \" + String(pos));\n    var result = [String(token), String(style)];\n    if (golden[i][0] != result[0] || golden[i][1] != result[1]){\n      return \"Error, expected: \" + String(golden[i]) + \", got: \" + String(result);\n      ok = false;\n    }\n    i++;\n  }\n  CodeMirror.runMode(text, \"text/x-vb\",callback); \n\n  if (ok) return \"Tests OK\";\n}\nfunction testTypes() {\n  var golden = [['Integer','keyword'],[' ','null'],['Float','keyword']]\n  var text =  \"Integer Float\";\n  return test(golden,text);\n}\nfunction testIf(){\n  var golden = [['If','keyword'],[' ','null'],['True','keyword'],[' ','null'],['End','keyword'],[' ','null'],['If','keyword']];\n  var text = 'If True End If';\n  return test(golden, text);\n}\nfunction testDecl(){\n   var golden = [['Dim','keyword'],[' ','null'],['x','variable'],[' ','null'],['as','keyword'],[' ','null'],['Integer','keyword']];\n   var text = 'Dim x as Integer';\n   return test(golden, text);\n}\nfunction testAll(){\n  var result = \"\";\n\n  result += testTypes() + \"\\n\";\n  result += testIf() + \"\\n\";\n  result += testDecl() + \"\\n\";\n  return result;\n\n}\nfunction initText(editor) {\n  var content = 'Class rocket\\nPrivate quality as Double\\nPublic Sub launch() as String\\nif quality > 0.8\\nlaunch = \"Successful\"\\nElse\\nlaunch = \"Failed\"\\nEnd If\\nEnd sub\\nEnd class\\n';\n  editor.setValue(content);\n  for (var i =0; i< editor.lineCount(); i++) editor.indentLine(i);\n}\nfunction init() {\n    editor = CodeMirror.fromTextArea(document.getElementById(\"solution\"), {\n        lineNumbers: true,\n        mode: \"text/x-vb\",\n        readOnly: false\n    });\n    runTest();\n}\nfunction runTest() {\n\tdocument.getElementById('testresult').innerHTML = testAll();\n  initText(editor);\n\t\n}\ndocument.body.onload = init;\n</script>\n\n  <div id=\"edit\">\n  <textarea style=\"width:95%;height:200px;padding:5px;\" name=\"solution\" id=\"solution\" ></textarea>\n  </div>\n  <pre id=\"testresult\"></pre>\n  <p>MIME type defined: <code>text/x-vb</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/vb/vb.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vb\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\n    var singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\n    var doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n    var doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n    var tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n    var identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','module', 'sub','enum','select','while','if','function',  'get','set','property', 'try'];\n    var middleKeywords = ['else','elseif','case', 'catch'];\n    var endKeywords = ['next','loop'];\n\n    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'in']);\n    var commonkeywords = ['as', 'dim', 'break',  'continue','optional', 'then',  'until',\n                          'goto', 'byval','byref','new','handles','property', 'return',\n                          'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false'];\n    var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single'];\n\n    var keywords = wordRegexp(commonkeywords);\n    var types = wordRegexp(commontypes);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n\n    var indentInfo = null;\n\n\n\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.a-f]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+F?/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*F?/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+F?/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            dedent(stream,state);\n            return 'keyword';\n        }\n\n        if (stream.match(types)) {\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n            current = stream.current();\n            if (style === 'variable') {\n                return 'variable';\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n\n        var delimiter_index = '[({'.indexOf(current);\n        if (delimiter_index !== -1) {\n            indent(stream, state );\n        }\n        if (indentInfo === 'dedent') {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n        delimiter_index = '])}'.indexOf(current);\n        if (delimiter_index !== -1) {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        }\n\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/x-vb\", \"vb\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/vbscript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: VBScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"vbscript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">VBScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>VBScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n' Pete Guhl\n' 03-04-2012\n'\n' Basic VBScript support for codemirror2\n\nConst ForReading = 1, ForWriting = 2, ForAppending = 8\n\nCall Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)\n\nIf Not IsNull(strResponse) AND Len(strResponse) = 0 Then\n\tboolTransmitOkYN = False\nElse\n\t' WScript.Echo \"Oh Happy Day! Oh Happy DAY!\"\n\tboolTransmitOkYN = True\nEnd If\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/vbscript</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/vbscript/vbscript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\nFor extra ASP classic objects, initialize CodeMirror instance with this option:\n    isASP: true\n\nE.G.:\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        isASP: true\n      });\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vbscript\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&\\\\\\\\\\\\^<>=]\");\n    var doubleOperators = new RegExp(\"^((<>)|(<=)|(>=))\");\n    var singleDelimiters = new RegExp('^[\\\\.,]');\n    var brakets = new RegExp('^[\\\\(\\\\)]');\n    var identifiers = new RegExp(\"^[A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];\n    var middleKeywords = ['else','elseif','case'];\n    var endKeywords = ['next','loop','wend'];\n\n    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);\n    var commonkeywords = ['dim', 'redim', 'then',  'until', 'randomize',\n                          'byval','byref','new','property', 'exit', 'in',\n                          'const','private', 'public',\n                          'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx\n    var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx\n    var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',\n                        'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',\n                        'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',\n                        'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',\n                        'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',\n                        'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx\n    var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',\n                         'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',\n                         'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',\n                         'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',\n                         'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',\n                         'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',\n                         'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx\n    var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];\n    var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];\n    var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];\n\n    var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];\n    var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response\n                              'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request\n                              'contents', 'staticobjects', //application\n                              'codepage', 'lcid', 'sessionid', 'timeout', //session\n                              'scripttimeout']; //server\n    var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response\n                           'binaryread', //request\n                           'remove', 'removeall', 'lock', 'unlock', //application\n                           'abandon', //session\n                           'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server\n\n    var knownWords = knownMethods.concat(knownProperties);\n\n    builtinObjsWords = builtinObjsWords.concat(builtinConsts);\n\n    if (conf.isASP){\n        builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);\n        knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);\n    };\n\n    var keywords = wordRegexp(commonkeywords);\n    var atoms = wordRegexp(atomWords);\n    var builtinFuncs = wordRegexp(builtinFuncsWords);\n    var builtinObjs = wordRegexp(builtinObjsWords);\n    var known = wordRegexp(knownWords);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n    var noIndentWords = wordRegexp(['on error resume next', 'exit']);\n    var comment = wordRegexp(['rem']);\n\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return 'space';\n            //return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n        if (stream.match(comment)){\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\\.]+[a-z_]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n\n        if (stream.match(brakets)) {\n            return \"bracket\";\n        }\n\n        if (stream.match(noIndentWords)) {\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            if (! state.doInCurrentLine)\n              dedent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(atoms)) {\n            return 'atom';\n        }\n\n        if (stream.match(known)) {\n            return 'variable-2';\n        }\n\n        if (stream.match(builtinFuncs)) {\n            return 'builtin';\n        }\n\n        if (stream.match(builtinObjs)){\n            return 'variable-2';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n\n            current = stream.current();\n            if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {\n                if (style === 'builtin' || style === 'keyword') style='variable';\n                if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';\n\n                return style;\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false,\n              ignoreKeyword: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n            if (style==='space') style=null;\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        }\n\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/vbscript\", \"vbscript\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/velocity/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Velocity mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"velocity.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Velocity</a>\n  </ul>\n</div>\n\n<article>\n<h2>Velocity mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n## Velocity Code Demo\n#*\n   based on PL/SQL mode by Peter Raganitsch, adapted to Velocity by Steve O'Hara ( http://www.pivotal-solutions.co.uk )\n   August 2011\n*#\n\n#*\n   This is a multiline comment.\n   This is the second line\n*#\n\n#[[ hello steve\n   This has invalid syntax that would normally need \"poor man's escaping\" like:\n\n   #define()\n\n   ${blah\n]]#\n\n#include( \"disclaimer.txt\" \"opinion.txt\" )\n#include( $foo $bar )\n\n#parse( \"lecorbusier.vm\" )\n#parse( $foo )\n\n#evaluate( 'string with VTL #if(true)will be displayed#end' )\n\n#define( $hello ) Hello $who #end #set( $who = \"World!\") $hello ## displays Hello World!\n\n#foreach( $customer in $customerList )\n\n    $foreach.count $customer.Name\n\n    #if( $foo == ${bar})\n        it's true!\n        #break\n    #{else}\n        it's not!\n        #stop\n    #end\n\n    #if ($foreach.parent.hasNext)\n        $velocityCount\n    #end\n#end\n\n$someObject.getValues(\"this is a string split\n        across lines\")\n\n$someObject(\"This plus $something in the middle\").method(7567).property\n\n#macro( tablerows $color $somelist )\n    #foreach( $something in $somelist )\n        <tr><td bgcolor=$color>$something</td></tr>\n        <tr><td bgcolor=$color>$bodyContent</td></tr>\n    #end\n#end\n\n#tablerows(\"red\" [\"dadsdf\",\"dsa\"])\n#@tablerows(\"red\" [\"dadsdf\",\"dsa\"]) some body content #end\n\n   Variable reference: #set( $monkey = $bill )\n   String literal: #set( $monkey.Friend = 'monica' )\n   Property reference: #set( $monkey.Blame = $whitehouse.Leak )\n   Method reference: #set( $monkey.Plan = $spindoctor.weave($web) )\n   Number literal: #set( $monkey.Number = 123 )\n   Range operator: #set( $monkey.Numbers = [1..3] )\n   Object list: #set( $monkey.Say = [\"Not\", $my, \"fault\"] )\n   Object map: #set( $monkey.Map = {\"banana\" : \"good\", \"roast beef\" : \"bad\"})\n\nThe RHS can also be a simple arithmetic expression, such as:\nAddition: #set( $value = $foo + 1 )\n   Subtraction: #set( $value = $bar - 1 )\n   Multiplication: #set( $value = $foo * $bar )\n   Division: #set( $value = $foo / $bar )\n   Remainder: #set( $value = $foo % $bar )\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"night\",\n        lineNumbers: true,\n        indentUnit: 4,\n        mode: \"text/velocity\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/velocity</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/velocity/velocity.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"velocity\", function() {\n    function parseWords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = parseWords(\"#end #else #break #stop #[[ #]] \" +\n                              \"#{end} #{else} #{break} #{stop}\");\n    var functions = parseWords(\"#if #elseif #foreach #set #include #parse #macro #define #evaluate \" +\n                               \"#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}\");\n    var specials = parseWords(\"$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent\");\n    var isOperatorChar = /[+\\-*&%=<>!?:\\/|]/;\n\n    function chain(stream, state, f) {\n        state.tokenize = f;\n        return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n        var beforeParams = state.beforeParams;\n        state.beforeParams = false;\n        var ch = stream.next();\n        // start of unparsed string?\n        if ((ch == \"'\") && state.inParams) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenString(ch));\n        }\n        // start of parsed string?\n        else if ((ch == '\"')) {\n            state.lastTokenWasBuiltin = false;\n            if (state.inString) {\n                state.inString = false;\n                return \"string\";\n            }\n            else if (state.inParams)\n                return chain(stream, state, tokenString(ch));\n        }\n        // is it one of the special signs []{}().,;? Seperator?\n        else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n            if (ch == \"(\" && beforeParams)\n                state.inParams = true;\n            else if (ch == \")\") {\n                state.inParams = false;\n                state.lastTokenWasBuiltin = true;\n            }\n            return null;\n        }\n        // start of a number value?\n        else if (/\\d/.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(/[\\w\\.]/);\n            return \"number\";\n        }\n        // multi line comment?\n        else if (ch == \"#\" && stream.eat(\"*\")) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenComment);\n        }\n        // unparsed content?\n        else if (ch == \"#\" && stream.match(/ *\\[ *\\[/)) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenUnparsed);\n        }\n        // single line comment?\n        else if (ch == \"#\" && stream.eat(\"#\")) {\n            state.lastTokenWasBuiltin = false;\n            stream.skipToEnd();\n            return \"comment\";\n        }\n        // variable?\n        else if (ch == \"$\") {\n            stream.eatWhile(/[\\w\\d\\$_\\.{}]/);\n            // is it one of the specials?\n            if (specials && specials.propertyIsEnumerable(stream.current())) {\n                return \"keyword\";\n            }\n            else {\n                state.lastTokenWasBuiltin = true;\n                state.beforeParams = true;\n                return \"builtin\";\n            }\n        }\n        // is it a operator?\n        else if (isOperatorChar.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(isOperatorChar);\n            return \"operator\";\n        }\n        else {\n            // get the whole word\n            stream.eatWhile(/[\\w\\$_{}@]/);\n            var word = stream.current();\n            // is it one of the listed keywords?\n            if (keywords && keywords.propertyIsEnumerable(word))\n                return \"keyword\";\n            // is it one of the listed functions?\n            if (functions && functions.propertyIsEnumerable(word) ||\n                    (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()==\"(\") &&\n                     !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {\n                state.beforeParams = true;\n                state.lastTokenWasBuiltin = false;\n                return \"keyword\";\n            }\n            if (state.inString) {\n                state.lastTokenWasBuiltin = false;\n                return \"string\";\n            }\n            if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)==\".\" && state.lastTokenWasBuiltin)\n                return \"builtin\";\n            // default: just a \"word\"\n            state.lastTokenWasBuiltin = false;\n            return null;\n        }\n    }\n\n    function tokenString(quote) {\n        return function(stream, state) {\n            var escaped = false, next, end = false;\n            while ((next = stream.next()) != null) {\n                if ((next == quote) && !escaped) {\n                    end = true;\n                    break;\n                }\n                if (quote=='\"' && stream.peek() == '$' && !escaped) {\n                    state.inString = true;\n                    end = true;\n                    break;\n                }\n                escaped = !escaped && next == \"\\\\\";\n            }\n            if (end) state.tokenize = tokenBase;\n            return \"string\";\n        };\n    }\n\n    function tokenComment(stream, state) {\n        var maybeEnd = false, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            maybeEnd = (ch == \"*\");\n        }\n        return \"comment\";\n    }\n\n    function tokenUnparsed(stream, state) {\n        var maybeEnd = 0, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd == 2) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            if (ch == \"]\")\n                maybeEnd++;\n            else if (ch != \" \")\n                maybeEnd = 0;\n        }\n        return \"meta\";\n    }\n    // Interface\n\n    return {\n        startState: function() {\n            return {\n                tokenize: tokenBase,\n                beforeParams: false,\n                inParams: false,\n                inString: false,\n                lastTokenWasBuiltin: false\n            };\n        },\n\n        token: function(stream, state) {\n            if (stream.eatSpace()) return null;\n            return state.tokenize(stream, state);\n        },\n        blockCommentStart: \"#*\",\n        blockCommentEnd: \"*#\",\n        lineComment: \"##\",\n        fold: \"velocity\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/velocity\", \"velocity\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/verilog/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Verilog/SystemVerilog mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"verilog.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Verilog/SystemVerilog</a>\n  </ul>\n</div>\n\n<article>\n<h2>SystemVerilog mode</h2>\n\n<div><textarea id=\"code\" name=\"code\">\n// Literals\n1'b0\n1'bx\n1'bz\n16'hDC78\n'hdeadbeef\n'b0011xxzz\n1234\n32'd5678\n3.4e6\n-128.7\n\n// Macro definition\n`define BUS_WIDTH = 8;\n\n// Module definition\nmodule block(\n  input                   clk,\n  input                   rst_n,\n  input  [`BUS_WIDTH-1:0] data_in,\n  output [`BUS_WIDTH-1:0] data_out\n);\n  \n  always @(posedge clk or negedge rst_n) begin\n\n    if (~rst_n) begin\n      data_out <= 8'b0;\n    end else begin\n      data_out <= data_in;\n    end\n    \n    if (~rst_n)\n      data_out <= 8'b0;\n    else\n      data_out <= data_in;\n    \n    if (~rst_n)\n      begin\n        data_out <= 8'b0;\n      end\n    else\n      begin\n        data_out <= data_in;\n      end\n\n  end\n  \nendmodule\n\n// Class definition\nclass test;\n\n  /**\n   * Sum two integers\n   */\n  function int sum(int a, int b);\n    int result = a + b;\n    string msg = $sformatf(\"%d + %d = %d\", a, b, result);\n    $display(msg);\n    return result;\n  endfunction\n  \n  task delay(int num_cycles);\n    repeat(num_cycles) #1;\n  endtask\n  \nendclass\n\n</textarea></div>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    matchBrackets: true,\n    mode: {\n      name: \"verilog\",\n      noIndentKeywords: [\"package\"]\n    }\n  });\n</script>\n\n<p>\nSyntax highlighting and indentation for the Verilog and SystemVerilog languages (IEEE 1800).\n<h2>Configuration options:</h2>\n  <ul>\n    <li><strong>noIndentKeywords</strong> - List of keywords which should not cause identation to increase. E.g. [\"package\", \"module\"]. Default: None</li>\n  </ul>\n</p>\n\n<p><strong>MIME types defined:</strong> <code>text/x-verilog</code> and <code>text/x-systemverilog</code>.</p>\n</article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/verilog/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 4}, \"verilog\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"binary_literals\",\n     \"[number 1'b0]\",\n     \"[number 1'b1]\",\n     \"[number 1'bx]\",\n     \"[number 1'bz]\",\n     \"[number 1'bX]\",\n     \"[number 1'bZ]\",\n     \"[number 1'B0]\",\n     \"[number 1'B1]\",\n     \"[number 1'Bx]\",\n     \"[number 1'Bz]\",\n     \"[number 1'BX]\",\n     \"[number 1'BZ]\",\n     \"[number 1'b0]\",\n     \"[number 1'b1]\",\n     \"[number 2'b01]\",\n     \"[number 2'bxz]\",\n     \"[number 2'b11]\",\n     \"[number 2'b10]\",\n     \"[number 2'b1Z]\",\n     \"[number 12'b0101_0101_0101]\",\n     \"[number 1'b 0]\",\n     \"[number 'b0101]\"\n  );\n\n  MT(\"octal_literals\",\n     \"[number 3'o7]\",\n     \"[number 3'O7]\",\n     \"[number 3'so7]\",\n     \"[number 3'SO7]\"\n  );\n\n  MT(\"decimal_literals\",\n     \"[number 0]\",\n     \"[number 1]\",\n     \"[number 7]\",\n     \"[number 123_456]\",\n     \"[number 'd33]\",\n     \"[number 8'd255]\",\n     \"[number 8'D255]\",\n     \"[number 8'sd255]\",\n     \"[number 8'SD255]\",\n     \"[number 32'd123]\",\n     \"[number 32 'd123]\",\n     \"[number 32 'd 123]\"\n  );\n\n  MT(\"hex_literals\",\n     \"[number 4'h0]\",\n     \"[number 4'ha]\",\n     \"[number 4'hF]\",\n     \"[number 4'hx]\",\n     \"[number 4'hz]\",\n     \"[number 4'hX]\",\n     \"[number 4'hZ]\",\n     \"[number 32'hdc78]\",\n     \"[number 32'hDC78]\",\n     \"[number 32 'hDC78]\",\n     \"[number 32'h DC78]\",\n     \"[number 32 'h DC78]\",\n     \"[number 32'h44x7]\",\n     \"[number 32'hFFF?]\"\n  );\n\n  MT(\"real_number_literals\",\n     \"[number 1.2]\",\n     \"[number 0.1]\",\n     \"[number 2394.26331]\",\n     \"[number 1.2E12]\",\n     \"[number 1.2e12]\",\n     \"[number 1.30e-2]\",\n     \"[number 0.1e-0]\",\n     \"[number 23E10]\",\n     \"[number 29E-2]\",\n     \"[number 236.123_763_e-12]\"\n  );\n\n  MT(\"operators\",\n     \"[meta ^]\"\n  );\n\n  MT(\"keywords\",\n     \"[keyword logic]\",\n     \"[keyword logic] [variable foo]\",\n     \"[keyword reg] [variable abc]\"\n  );\n\n  MT(\"variables\",\n     \"[variable _leading_underscore]\",\n     \"[variable _if]\",\n     \"[number 12] [variable foo]\",\n     \"[variable foo] [number 14]\"\n  );\n\n  MT(\"tick_defines\",\n     \"[def `FOO]\",\n     \"[def `foo]\",\n     \"[def `FOO_bar]\"\n  );\n\n  MT(\"system_calls\",\n     \"[meta $display]\",\n     \"[meta $vpi_printf]\"\n  );\n\n  MT(\"line_comment\", \"[comment // Hello world]\");\n\n  // Alignment tests\n  MT(\"align_port_map_style1\",\n     /**\n      * mod mod(.a(a),\n      *         .b(b)\n      *        );\n      */\n     \"[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],\",\n     \"        .[variable b][bracket (][variable b][bracket )]\",\n     \"       [bracket )];\",\n     \"\"\n  );\n\n  MT(\"align_port_map_style2\",\n     /**\n      * mod mod(\n      *     .a(a),\n      *     .b(b)\n      * );\n      */\n     \"[variable mod] [variable mod][bracket (]\",\n     \"    .[variable a][bracket (][variable a][bracket )],\",\n     \"    .[variable b][bracket (][variable b][bracket )]\",\n     \"[bracket )];\",\n     \"\"\n  );\n\n  // Indentation tests\n  MT(\"indent_single_statement_if\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword break];\",\n      \"\"\n  );\n\n  MT(\"no_indent_after_single_line_if\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_after_if_begin_same_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_after_if_begin_next_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_single_statement_if_else\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword break];\",\n      \"[keyword else]\",\n      \"    [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_if_else_begin_same_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end] [keyword else] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_if_else_begin_next_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"[keyword else]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_if_nested_without_begin\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword if] [bracket (][variable foo][bracket )]\",\n      \"        [keyword if] [bracket (][variable foo][bracket )]\",\n      \"            [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_case\",\n      \"[keyword case] [bracket (][variable state][bracket )]\",\n      \"    [variable FOO]:\",\n      \"        [keyword break];\",\n      \"    [variable BAR]:\",\n      \"        [keyword break];\",\n      \"[keyword endcase]\",\n      \"\"\n  );\n\n  MT(\"unindent_after_end_with_preceding_text\",\n      \"[keyword begin]\",\n      \"    [keyword break]; [keyword end]\",\n      \"\"\n  );\n\n  MT(\"export_function_one_line_does_not_indent\",\n     \"[keyword export] [string \\\"DPI-C\\\"] [keyword function] [variable helloFromSV];\",\n     \"\"\n  );\n\n  MT(\"export_task_one_line_does_not_indent\",\n     \"[keyword export] [string \\\"DPI-C\\\"] [keyword task] [variable helloFromSV];\",\n     \"\"\n  );\n\n  MT(\"export_function_two_lines_indents_properly\",\n    \"[keyword export]\",\n    \"    [string \\\"DPI-C\\\"] [keyword function] [variable helloFromSV];\",\n    \"\"\n  );\n\n  MT(\"export_task_two_lines_indents_properly\",\n    \"[keyword export]\",\n    \"    [string \\\"DPI-C\\\"] [keyword task] [variable helloFromSV];\",\n    \"\"\n  );\n\n  MT(\"import_function_one_line_does_not_indent\",\n    \"[keyword import] [string \\\"DPI-C\\\"] [keyword function] [variable helloFromC];\",\n    \"\"\n  );\n\n  MT(\"import_task_one_line_does_not_indent\",\n    \"[keyword import] [string \\\"DPI-C\\\"] [keyword task] [variable helloFromC];\",\n    \"\"\n  );\n\n  MT(\"import_package_single_line_does_not_indent\",\n    \"[keyword import] [variable p]::[variable x];\",\n    \"[keyword import] [variable p]::[variable y];\",\n    \"\"\n  );\n\n  MT(\"covergoup_with_function_indents_properly\",\n    \"[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];\",\n    \"    [variable c] : [keyword coverpoint] [variable c];\",\n    \"[keyword endgroup]: [variable cg]\",\n    \"\"\n  );\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/verilog/verilog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"verilog\", function(config, parserConfig) {\n\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      noIndentKeywords = parserConfig.noIndentKeywords || [],\n      multiLineStrings = parserConfig.multiLineStrings,\n      hooks = parserConfig.hooks || {};\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  /**\n   * Keywords from IEEE 1800-2012\n   */\n  var keywords = words(\n    \"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind \" +\n    \"bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config \" +\n    \"const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable \" +\n    \"dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup \" +\n    \"endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask \" +\n    \"enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin \" +\n    \"function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import \" +\n    \"incdir include initial inout input inside instance int integer interconnect interface intersect join join_any \" +\n    \"join_none large let liblist library local localparam logic longint macromodule matches medium modport module \" +\n    \"nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed \" +\n    \"parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup \" +\n    \"pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg \" +\n    \"reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime \" +\n    \"s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify \" +\n    \"specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on \" +\n    \"table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior \" +\n    \"trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void \" +\n    \"wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor\");\n\n  /** Operators from IEEE 1800-2012\n     unary_operator ::=\n       + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_operator ::=\n       + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **\n       | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<\n       | -> | <->\n     inc_or_dec_operator ::= ++ | --\n     unary_module_path_operator ::=\n       ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_module_path_operator ::=\n       == | != | && | || | & | | | ^ | ^~ | ~^\n  */\n  var isOperatorChar = /[\\+\\-\\*\\/!~&|^%=?:]/;\n  var isBracketChar = /[\\[\\]{}()]/;\n\n  var unsignedNumber = /\\d[0-9_]*/;\n  var decimalLiteral = /\\d*\\s*'s?d\\s*\\d[0-9_]*/i;\n  var binaryLiteral = /\\d*\\s*'s?b\\s*[xz01][xz01_]*/i;\n  var octLiteral = /\\d*\\s*'s?o\\s*[xz0-7][xz0-7_]*/i;\n  var hexLiteral = /\\d*\\s*'s?h\\s*[0-9a-fxz?][0-9a-fxz?_]*/i;\n  var realLiteral = /(\\d[\\d_]*(\\.\\d[\\d_]*)?E-?[\\d_]+)|(\\d[\\d_]*\\.\\d[\\d_]*)/i;\n\n  var closingBracketOrWord = /^((\\w+)|[)}\\]])/;\n  var closingBracket = /[)}\\]]/;\n\n  var curPunc;\n  var curKeyword;\n\n  // Block openings which are closed by a matching keyword in the form of (\"end\" + keyword)\n  // E.g. \"task\" => \"endtask\"\n  var blockKeywords = words(\n    \"case checker class clocking config function generate interface module package\" +\n    \"primitive program property specify sequence table task\"\n  );\n\n  // Opening/closing pairs\n  var openClose = {};\n  for (var keyword in blockKeywords) {\n    openClose[keyword] = \"end\" + keyword;\n  }\n  openClose[\"begin\"] = \"end\";\n  openClose[\"casex\"] = \"endcase\";\n  openClose[\"casez\"] = \"endcase\";\n  openClose[\"do\"   ] = \"while\";\n  openClose[\"fork\" ] = \"join;join_any;join_none\";\n  openClose[\"covergroup\"] = \"endgroup\";\n\n  for (var i in noIndentKeywords) {\n    var keyword = noIndentKeywords[i];\n    if (openClose[keyword]) {\n      openClose[keyword] = undefined;\n    }\n  }\n\n  // Keywords which open statements that are ended with a semi-colon\n  var statementKeywords = words(\"always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while\");\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek(), style;\n    if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;\n    if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)\n      return style;\n\n    if (/[,;:\\.]/.test(ch)) {\n      curPunc = stream.next();\n      return null;\n    }\n    if (isBracketChar.test(ch)) {\n      curPunc = stream.next();\n      return \"bracket\";\n    }\n    // Macros (tick-defines)\n    if (ch == '`') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        return \"def\";\n      } else {\n        return null;\n      }\n    }\n    // System calls\n    if (ch == '$') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        return \"meta\";\n      } else {\n        return null;\n      }\n    }\n    // Time literals\n    if (ch == '#') {\n      stream.next();\n      stream.eatWhile(/[\\d_.]/);\n      return \"def\";\n    }\n    // Strings\n    if (ch == '\"') {\n      stream.next();\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    // Comments\n    if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      stream.backUp(1);\n    }\n\n    // Numeric literals\n    if (stream.match(realLiteral) ||\n        stream.match(decimalLiteral) ||\n        stream.match(binaryLiteral) ||\n        stream.match(octLiteral) ||\n        stream.match(hexLiteral) ||\n        stream.match(unsignedNumber) ||\n        stream.match(realLiteral)) {\n      return \"number\";\n    }\n\n    // Operators\n    if (stream.eatWhile(isOperatorChar)) {\n      return \"meta\";\n    }\n\n    // Keywords / plain variables\n    if (stream.eatWhile(/[\\w\\$_]/)) {\n      var cur = stream.current();\n      if (keywords[cur]) {\n        if (openClose[cur]) {\n          curPunc = \"newblock\";\n        }\n        if (statementKeywords[cur]) {\n          curPunc = \"newstatement\";\n        }\n        curKeyword = cur;\n        return \"keyword\";\n      }\n      return \"variable\";\n    }\n\n    stream.next();\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    var c = new Context(indent, col, type, null, state.context);\n    return state.context = c;\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\") {\n      state.indented = state.context.indented;\n    }\n    return state.context = state.context.prev;\n  }\n\n  function isClosing(text, contextClosing) {\n    if (text == contextClosing) {\n      return true;\n    } else {\n      // contextClosing may be mulitple keywords separated by ;\n      var closingKeywords = contextClosing.split(\";\");\n      for (var i in closingKeywords) {\n        if (text == closingKeywords[i]) {\n          return true;\n        }\n      }\n      return false;\n    }\n  }\n\n  function buildElectricInputRegEx() {\n    // Reindentation should occur on any bracket char: {}()[]\n    // or on a match of any of the block closing keywords, at\n    // the end of a line\n    var allClosings = [];\n    for (var i in openClose) {\n      if (openClose[i]) {\n        var closings = openClose[i].split(\";\");\n        for (var j in closings) {\n          allClosings.push(closings[j]);\n        }\n      }\n    }\n    var re = new RegExp(\"[{}()\\\\[\\\\]]|(\" + allClosings.join(\"|\") + \")$\");\n    return re;\n  }\n\n  // Interface\n  return {\n\n    // Regex to force current line to reindent\n    electricInput: buildElectricInputRegEx(),\n\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n      if (hooks.startState) hooks.startState(state);\n      return state;\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (hooks.token) hooks.token(stream, state);\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      curKeyword = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\" || style == \"variable\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == ctx.type) {\n        popContext(state);\n      } else if ((curPunc == \";\" && ctx.type == \"statement\") ||\n               (ctx.type && isClosing(curKeyword, ctx.type))) {\n        ctx = popContext(state);\n        while (ctx && ctx.type == \"statement\") ctx = popContext(state);\n      } else if (curPunc == \"{\") {\n        pushContext(state, stream.column(), \"}\");\n      } else if (curPunc == \"[\") {\n        pushContext(state, stream.column(), \"]\");\n      } else if (curPunc == \"(\") {\n        pushContext(state, stream.column(), \")\");\n      } else if (ctx && ctx.type == \"endcase\" && curPunc == \":\") {\n        pushContext(state, stream.column(), \"statement\");\n      } else if (curPunc == \"newstatement\") {\n        pushContext(state, stream.column(), \"statement\");\n      } else if (curPunc == \"newblock\") {\n        if (curKeyword == \"function\" && ctx && (ctx.type == \"statement\" || ctx.type == \"endgroup\")) {\n          // The 'function' keyword can appear in some other contexts where it actually does not\n          // indicate a function (import/export DPI and covergroup definitions).\n          // Do nothing in this case\n        } else if (curKeyword == \"task\" && ctx && ctx.type == \"statement\") {\n          // Same thing for task\n        } else {\n          var close = openClose[curKeyword];\n          pushContext(state, stream.column(), close);\n        }\n      }\n\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      if (hooks.indent) {\n        var fromHook = hooks.indent(state);\n        if (fromHook >= 0) return fromHook;\n      }\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = false;\n      var possibleClosing = textAfter.match(closingBracketOrWord);\n      if (possibleClosing)\n        closing = isClosing(possibleClosing[0], ctx.type);\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);\n      else if (ctx.type == \")\" && !closing) return ctx.indented + statementIndentUnit;\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\n  CodeMirror.defineMIME(\"text/x-verilog\", {\n    name: \"verilog\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-systemverilog\", {\n    name: \"verilog\"\n  });\n\n  // SVXVerilog mode\n\n  var svxchScopePrefixes = {\n    \">\": \"property\", \"->\": \"property\", \"-\": \"hr\", \"|\": \"link\", \"?$\": \"qualifier\", \"?*\": \"qualifier\",\n    \"@-\": \"variable-3\", \"@\": \"variable-3\", \"?\": \"qualifier\"\n  };\n\n  function svxGenIndent(stream, state) {\n    var svxindentUnit = 2;\n    var rtnIndent = -1, indentUnitRq = 0, curIndent = stream.indentation();\n    switch (state.svxCurCtlFlowChar) {\n    case \"\\\\\":\n      curIndent = 0;\n      break;\n    case \"|\":\n      if (state.svxPrevPrevCtlFlowChar == \"@\") {\n        indentUnitRq = -2; //-2 new pipe rq after cur pipe\n        break;\n      }\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    case \"M\":  // m4\n      if (state.svxPrevPrevCtlFlowChar == \"@\") {\n        indentUnitRq = -2; //-2 new inst rq after  pipe\n        break;\n      }\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    case \"@\":\n      if (state.svxPrevCtlFlowChar == \"S\")\n        indentUnitRq = -1; // new pipe stage after stmts\n      if (state.svxPrevCtlFlowChar == \"|\")\n        indentUnitRq = 1; // 1st pipe stage\n      break;\n    case \"S\":\n      if (state.svxPrevCtlFlowChar == \"@\")\n        indentUnitRq = 1; // flow in pipe stage\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    }\n    var statementIndentUnit = svxindentUnit;\n    rtnIndent = curIndent + (indentUnitRq*statementIndentUnit);\n    return rtnIndent >= 0 ? rtnIndent : curIndent;\n  }\n\n  CodeMirror.defineMIME(\"text/x-svx\", {\n    name: \"verilog\",\n    hooks: {\n      \"\\\\\": function(stream, state) {\n        var vxIndent = 0, style = false;\n        var curPunc  = stream.string;\n        if ((stream.sol()) && (/\\\\SV/.test(stream.string))) {\n          curPunc = (/\\\\SVX_version/.test(stream.string))\n            ? \"\\\\SVX_version\" : stream.string;\n          stream.skipToEnd();\n          if (curPunc == \"\\\\SV\" && state.vxCodeActive) {state.vxCodeActive = false;};\n          if ((/\\\\SVX/.test(curPunc) && !state.vxCodeActive)\n            || (curPunc==\"\\\\SVX_version\" && state.vxCodeActive)) {state.vxCodeActive = true;};\n          style = \"keyword\";\n          state.svxCurCtlFlowChar  = state.svxPrevPrevCtlFlowChar\n            = state.svxPrevCtlFlowChar = \"\";\n          if (state.vxCodeActive == true) {\n            state.svxCurCtlFlowChar  = \"\\\\\";\n            vxIndent = svxGenIndent(stream, state);\n          }\n          state.vxIndentRq = vxIndent;\n        }\n        return style;\n      },\n      tokenBase: function(stream, state) {\n        var vxIndent = 0, style = false;\n        var svxisOperatorChar = /[\\[\\]=:]/;\n        var svxkpScopePrefixs = {\n          \"**\":\"variable-2\", \"*\":\"variable-2\", \"$$\":\"variable\", \"$\":\"variable\",\n          \"^^\":\"attribute\", \"^\":\"attribute\"};\n        var ch = stream.peek();\n        var vxCurCtlFlowCharValueAtStart = state.svxCurCtlFlowChar;\n        if (state.vxCodeActive == true) {\n          if (/[\\[\\]{}\\(\\);\\:]/.test(ch)) {\n            // bypass nesting and 1 char punc\n            style = \"meta\";\n            stream.next();\n          } else if (ch == \"/\") {\n            stream.next();\n            if (stream.eat(\"/\")) {\n              stream.skipToEnd();\n              style = \"comment\";\n              state.svxCurCtlFlowChar = \"S\";\n            } else {\n              stream.backUp(1);\n            }\n          } else if (ch == \"@\") {\n            // pipeline stage\n            style = svxchScopePrefixes[ch];\n            state.svxCurCtlFlowChar = \"@\";\n            stream.next();\n            stream.eatWhile(/[\\w\\$_]/);\n          } else if (stream.match(/\\b[mM]4+/, true)) { // match: function(pattern, consume, caseInsensitive)\n            // m4 pre proc\n            stream.skipTo(\"(\");\n            style = \"def\";\n            state.svxCurCtlFlowChar = \"M\";\n          } else if (ch == \"!\" && stream.sol()) {\n            // v stmt in svx region\n            // state.svxCurCtlFlowChar  = \"S\";\n            style = \"comment\";\n            stream.next();\n          } else if (svxisOperatorChar.test(ch)) {\n            // operators\n            stream.eatWhile(svxisOperatorChar);\n            style = \"operator\";\n          } else if (ch == \"#\") {\n            // phy hier\n            state.svxCurCtlFlowChar  = (state.svxCurCtlFlowChar == \"\")\n              ? ch : state.svxCurCtlFlowChar;\n            stream.next();\n            stream.eatWhile(/[+-]\\d/);\n            style = \"tag\";\n          } else if (svxkpScopePrefixs.propertyIsEnumerable(ch)) {\n            // special SVX operators\n            style = svxkpScopePrefixs[ch];\n            state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == \"\" ? \"S\" : state.svxCurCtlFlowChar;  // stmt\n            stream.next();\n            stream.match(/[a-zA-Z_0-9]+/);\n          } else if (style = svxchScopePrefixes[ch] || false) {\n            // special SVX operators\n            state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == \"\" ? ch : state.svxCurCtlFlowChar;\n            stream.next();\n            stream.match(/[a-zA-Z_0-9]+/);\n          }\n          if (state.svxCurCtlFlowChar != vxCurCtlFlowCharValueAtStart) { // flow change\n            vxIndent = svxGenIndent(stream, state);\n            state.vxIndentRq = vxIndent;\n          }\n        }\n        return style;\n      },\n      token: function(stream, state) {\n        if (state.vxCodeActive == true && stream.sol() && state.svxCurCtlFlowChar != \"\") {\n          state.svxPrevPrevCtlFlowChar = state.svxPrevCtlFlowChar;\n          state.svxPrevCtlFlowChar = state.svxCurCtlFlowChar;\n          state.svxCurCtlFlowChar = \"\";\n        }\n      },\n      indent: function(state) {\n        return (state.vxCodeActive == true) ? state.vxIndentRq : -1;\n      },\n      startState: function(state) {\n        state.svxCurCtlFlowChar = \"\";\n        state.svxPrevCtlFlowChar = \"\";\n        state.svxPrevPrevCtlFlowChar = \"\";\n        state.vxCodeActive = true;\n        state.vxIndentRq = 0;\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: XML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"xml.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">XML</a>\n  </ul>\n</div>\n\n<article>\n<h2>XML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n&lt;html style=\"color: green\"&gt;\n  &lt;!-- this is a comment --&gt;\n  &lt;head&gt;\n    &lt;title&gt;HTML Example&lt;/title&gt;\n  &lt;/head&gt;\n  &lt;body&gt;\n    The indentation tries to be &lt;em&gt;somewhat &amp;quot;do what\n    I mean&amp;quot;&lt;/em&gt;... but might not match your style.\n  &lt;/body&gt;\n&lt;/html&gt;\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/html\",\n        lineNumbers: true\n      });\n    </script>\n    <p>The XML mode supports two configuration parameters:</p>\n    <dl>\n      <dt><code>htmlMode (boolean)</code></dt>\n      <dd>This switches the mode to parse HTML instead of XML. This\n      means attributes do not have to be quoted, and some elements\n      (such as <code>br</code>) do not require a closing tag.</dd>\n      <dt><code>alignCDATA (boolean)</code></dt>\n      <dd>Setting this to true will force the opening tag of CDATA\n      blocks to not be indented.</dd>\n    </dl>\n\n    <p><strong>MIME types defined:</strong> <code>application/xml</code>, <code>text/html</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xml/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"xml\"), mname = \"xml\";\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }\n\n  MT(\"matching\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  text\",\n     \"  [tag&bracket <][tag inner][tag&bracket />]\",\n     \"[tag&bracket </][tag top][tag&bracket >]\");\n\n  MT(\"nonmatching\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  [tag&bracket <][tag inner][tag&bracket />]\",\n     \"  [tag&bracket </][tag&error tip][tag&bracket&error >]\");\n\n  MT(\"doctype\",\n     \"[meta <!doctype foobar>]\",\n     \"[tag&bracket <][tag top][tag&bracket />]\");\n\n  MT(\"cdata\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  [atom <![CDATA[foo]\",\n     \"[atom barbazguh]]]]>]\",\n     \"[tag&bracket </][tag top][tag&bracket >]\");\n\n  // HTML tests\n  mode = CodeMirror.getMode({indentUnit: 2}, \"text/html\");\n\n  MT(\"selfclose\",\n     \"[tag&bracket <][tag html][tag&bracket >]\",\n     \"  [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \\\"/foobar\\\"][tag&bracket >]\",\n     \"[tag&bracket </][tag html][tag&bracket >]\");\n\n  MT(\"list\",\n     \"[tag&bracket <][tag ol][tag&bracket >]\",\n     \"  [tag&bracket <][tag li][tag&bracket >]one\",\n     \"  [tag&bracket <][tag li][tag&bracket >]two\",\n     \"[tag&bracket </][tag ol][tag&bracket >]\");\n\n  MT(\"valueless\",\n     \"[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]\");\n\n  MT(\"pThenArticle\",\n     \"[tag&bracket <][tag p][tag&bracket >]\",\n     \"  foo\",\n     \"[tag&bracket <][tag article][tag&bracket >]bar\");\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xml/xml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"xml\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n  var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1;\n  var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag;\n  if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true;\n\n  var Kludges = parserConfig.htmlMode ? {\n    autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n                      'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n                      'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n                      'track': true, 'wbr': true, 'menuitem': true},\n    implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n                       'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n                       'th': true, 'tr': true},\n    contextGrabbers: {\n      'dd': {'dd': true, 'dt': true},\n      'dt': {'dd': true, 'dt': true},\n      'li': {'li': true},\n      'option': {'option': true, 'optgroup': true},\n      'optgroup': {'optgroup': true},\n      'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n            'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n            'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n            'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n            'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n      'rp': {'rp': true, 'rt': true},\n      'rt': {'rp': true, 'rt': true},\n      'tbody': {'tbody': true, 'tfoot': true},\n      'td': {'td': true, 'th': true},\n      'tfoot': {'tbody': true},\n      'th': {'td': true, 'th': true},\n      'thead': {'tbody': true, 'tfoot': true},\n      'tr': {'tr': true}\n    },\n    doNotIndent: {\"pre\": true},\n    allowUnquoted: true,\n    allowMissing: true,\n    caseFold: true\n  } : {\n    autoSelfClosers: {},\n    implicitlyClosed: {},\n    contextGrabbers: {},\n    doNotIndent: {},\n    allowUnquoted: false,\n    allowMissing: false,\n    caseFold: false\n  };\n  var alignCDATA = parserConfig.alignCDATA;\n\n  // Return variables for tokenizers\n  var type, setStyle;\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var ch = stream.next();\n    if (ch == \"<\") {\n      if (stream.eat(\"!\")) {\n        if (stream.eat(\"[\")) {\n          if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n          else return null;\n        } else if (stream.match(\"--\")) {\n          return chain(inBlock(\"comment\", \"-->\"));\n        } else if (stream.match(\"DOCTYPE\", true, true)) {\n          stream.eatWhile(/[\\w\\._\\-]/);\n          return chain(doctype(1));\n        } else {\n          return null;\n        }\n      } else if (stream.eat(\"?\")) {\n        stream.eatWhile(/[\\w\\._\\-]/);\n        state.tokenize = inBlock(\"meta\", \"?>\");\n        return \"meta\";\n      } else {\n        type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n        state.tokenize = inTag;\n        return \"tag bracket\";\n      }\n    } else if (ch == \"&\") {\n      var ok;\n      if (stream.eat(\"#\")) {\n        if (stream.eat(\"x\")) {\n          ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n        } else {\n          ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n        }\n      } else {\n        ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n      }\n      return ok ? \"atom\" : \"error\";\n    } else {\n      stream.eatWhile(/[^&<]/);\n      return null;\n    }\n  }\n\n  function inTag(stream, state) {\n    var ch = stream.next();\n    if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n      state.tokenize = inText;\n      type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n      return \"tag bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n      return null;\n    } else if (ch == \"<\") {\n      state.tokenize = inText;\n      state.state = baseState;\n      state.tagName = state.tagStart = null;\n      var next = state.tokenize(stream, state);\n      return next ? next + \" tag error\" : \"tag error\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      state.stringStartCol = stream.column();\n      return state.tokenize(stream, state);\n    } else {\n      stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n      return \"word\";\n    }\n  }\n\n  function inAttribute(quote) {\n    var closure = function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inTag;\n          break;\n        }\n      }\n      return \"string\";\n    };\n    closure.isInAttribute = true;\n    return closure;\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    };\n  }\n  function doctype(depth) {\n    return function(stream, state) {\n      var ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == \"<\") {\n          state.tokenize = doctype(depth + 1);\n          return state.tokenize(stream, state);\n        } else if (ch == \">\") {\n          if (depth == 1) {\n            state.tokenize = inText;\n            break;\n          } else {\n            state.tokenize = doctype(depth - 1);\n            return state.tokenize(stream, state);\n          }\n        }\n      }\n      return \"meta\";\n    };\n  }\n\n  function Context(state, tagName, startOfLine) {\n    this.prev = state.context;\n    this.tagName = tagName;\n    this.indent = state.indented;\n    this.startOfLine = startOfLine;\n    if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n      this.noIndent = true;\n  }\n  function popContext(state) {\n    if (state.context) state.context = state.context.prev;\n  }\n  function maybePopContext(state, nextTagName) {\n    var parentTagName;\n    while (true) {\n      if (!state.context) {\n        return;\n      }\n      parentTagName = state.context.tagName;\n      if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) ||\n          !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {\n        return;\n      }\n      popContext(state);\n    }\n  }\n\n  function baseState(type, stream, state) {\n    if (type == \"openTag\") {\n      state.tagStart = stream.column();\n      return tagNameState;\n    } else if (type == \"closeTag\") {\n      return closeTagNameState;\n    } else {\n      return baseState;\n    }\n  }\n  function tagNameState(type, stream, state) {\n    if (type == \"word\") {\n      state.tagName = stream.current();\n      setStyle = \"tag\";\n      return attrState;\n    } else {\n      setStyle = \"error\";\n      return tagNameState;\n    }\n  }\n  function closeTagNameState(type, stream, state) {\n    if (type == \"word\") {\n      var tagName = stream.current();\n      if (state.context && state.context.tagName != tagName &&\n          Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName))\n        popContext(state);\n      if (state.context && state.context.tagName == tagName) {\n        setStyle = \"tag\";\n        return closeState;\n      } else {\n        setStyle = \"tag error\";\n        return closeStateErr;\n      }\n    } else {\n      setStyle = \"error\";\n      return closeStateErr;\n    }\n  }\n\n  function closeState(type, _stream, state) {\n    if (type != \"endTag\") {\n      setStyle = \"error\";\n      return closeState;\n    }\n    popContext(state);\n    return baseState;\n  }\n  function closeStateErr(type, stream, state) {\n    setStyle = \"error\";\n    return closeState(type, stream, state);\n  }\n\n  function attrState(type, _stream, state) {\n    if (type == \"word\") {\n      setStyle = \"attribute\";\n      return attrEqState;\n    } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n      var tagName = state.tagName, tagStart = state.tagStart;\n      state.tagName = state.tagStart = null;\n      if (type == \"selfcloseTag\" ||\n          Kludges.autoSelfClosers.hasOwnProperty(tagName)) {\n        maybePopContext(state, tagName);\n      } else {\n        maybePopContext(state, tagName);\n        state.context = new Context(state, tagName, tagStart == state.indented);\n      }\n      return baseState;\n    }\n    setStyle = \"error\";\n    return attrState;\n  }\n  function attrEqState(type, stream, state) {\n    if (type == \"equals\") return attrValueState;\n    if (!Kludges.allowMissing) setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrValueState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    if (type == \"word\" && Kludges.allowUnquoted) {setStyle = \"string\"; return attrState;}\n    setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrContinuedState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    return attrState(type, stream, state);\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: inText,\n              state: baseState,\n              indented: 0,\n              tagName: null, tagStart: null,\n              context: null};\n    },\n\n    token: function(stream, state) {\n      if (!state.tagName && stream.sol())\n        state.indented = stream.indentation();\n\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n      if ((style || type) && style != \"comment\") {\n        setStyle = null;\n        state.state = state.state(type || style, stream, state);\n        if (setStyle)\n          style = setStyle == \"error\" ? style + \" error\" : setStyle;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter, fullLine) {\n      var context = state.context;\n      // Indent multi-line strings (e.g. css).\n      if (state.tokenize.isInAttribute) {\n        if (state.tagStart == state.indented)\n          return state.stringStartCol + 1;\n        else\n          return state.indented + indentUnit;\n      }\n      if (context && context.noIndent) return CodeMirror.Pass;\n      if (state.tokenize != inTag && state.tokenize != inText)\n        return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n      // Indent the starts of attribute names.\n      if (state.tagName) {\n        if (multilineTagIndentPastTag)\n          return state.tagStart + state.tagName.length + 2;\n        else\n          return state.tagStart + indentUnit * multilineTagIndentFactor;\n      }\n      if (alignCDATA && /<!\\[CDATA\\[/.test(textAfter)) return 0;\n      var tagAfter = textAfter && /^<(\\/)?([\\w_:\\.-]*)/.exec(textAfter);\n      if (tagAfter && tagAfter[1]) { // Closing tag spotted\n        while (context) {\n          if (context.tagName == tagAfter[2]) {\n            context = context.prev;\n            break;\n          } else if (Kludges.implicitlyClosed.hasOwnProperty(context.tagName)) {\n            context = context.prev;\n          } else {\n            break;\n          }\n        }\n      } else if (tagAfter) { // Opening tag spotted\n        while (context) {\n          var grabbers = Kludges.contextGrabbers[context.tagName];\n          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))\n            context = context.prev;\n          else\n            break;\n        }\n      }\n      while (context && !context.startOfLine)\n        context = context.prev;\n      if (context) return context.indent + indentUnit;\n      else return 0;\n    },\n\n    electricInput: /<\\/[\\s\\w:]+>$/,\n    blockCommentStart: \"<!--\",\n    blockCommentEnd: \"-->\",\n\n    configuration: parserConfig.htmlMode ? \"html\" : \"xml\",\n    helperType: parserConfig.htmlMode ? \"html\" : \"xml\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n  CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xquery/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: XQuery mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-dark.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"xquery.js\"></script>\n<style type=\"text/css\">\n\t.CodeMirror {\n\t  border-top: 1px solid black; border-bottom: 1px solid black;\n\t  height:400px;\n\t}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">XQuery</a>\n  </ul>\n</div>\n\n<article>\n<h2>XQuery mode</h2>\n \n \n<div class=\"cm-s-default\"> \n\t<textarea id=\"code\" name=\"code\"> \nxquery version &quot;1.0-ml&quot;;\n(: this is\n : a \n   \"comment\" :)\nlet $let := &lt;x attr=&quot;value&quot;&gt;&quot;test&quot;&lt;func&gt;function() $var {function()} {$var}&lt;/func&gt;&lt;/x&gt;\nlet $joe:=1\nreturn element element {\n\tattribute attribute { 1 },\n\telement test { &#39;a&#39; }, \n\tattribute foo { &quot;bar&quot; },\n\tfn:doc()[ foo/@bar eq $let ],\n\t//x }    \n \n(: a more 'evil' test :)\n(: Modified Blakeley example (: with nested comment :) ... :)\ndeclare private function local:declare() {()};\ndeclare private function local:private() {()};\ndeclare private function local:function() {()};\ndeclare private function local:local() {()};\nlet $let := &lt;let&gt;let $let := &quot;let&quot;&lt;/let&gt;\nreturn element element {\n\tattribute attribute { try { xdmp:version() } catch($e) { xdmp:log($e) } },\n\tattribute fn:doc { &quot;bar&quot; castable as xs:string },\n\telement text { text { &quot;text&quot; } },\n\tfn:doc()[ child::eq/(@bar | attribute::attribute) eq $let ],\n\t//fn:doc\n}\n\n\n\nxquery version &quot;1.0-ml&quot;;\n\n(: Copyright 2006-2010 Mark Logic Corporation. :)\n\n(:\n : Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);\n : you may not use this file except in compliance with the License.\n : You may obtain a copy of the License at\n :\n :     http://www.apache.org/licenses/LICENSE-2.0\n :\n : Unless required by applicable law or agreed to in writing, software\n : distributed under the License is distributed on an &quot;AS IS&quot; BASIS,\n : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n : See the License for the specific language governing permissions and\n : limitations under the License.\n :)\n\nmodule namespace json = &quot;http://marklogic.com/json&quot;;\ndeclare default function namespace &quot;http://www.w3.org/2005/xpath-functions&quot;;\n\n(: Need to backslash escape any double quotes, backslashes, and newlines :)\ndeclare function json:escape($s as xs:string) as xs:string {\n  let $s := replace($s, &quot;\\\\&quot;, &quot;\\\\\\\\&quot;)\n  let $s := replace($s, &quot;&quot;&quot;&quot;, &quot;\\\\&quot;&quot;&quot;)\n  let $s := replace($s, codepoints-to-string((13, 10)), &quot;\\\\n&quot;)\n  let $s := replace($s, codepoints-to-string(13), &quot;\\\\n&quot;)\n  let $s := replace($s, codepoints-to-string(10), &quot;\\\\n&quot;)\n  return $s\n};\n\ndeclare function json:atomize($x as element()) as xs:string {\n  if (count($x/node()) = 0) then 'null'\n  else if ($x/@type = &quot;number&quot;) then\n    let $castable := $x castable as xs:float or\n                     $x castable as xs:double or\n                     $x castable as xs:decimal\n    return\n    if ($castable) then xs:string($x)\n    else error(concat(&quot;Not a number: &quot;, xdmp:describe($x)))\n  else if ($x/@type = &quot;boolean&quot;) then\n    let $castable := $x castable as xs:boolean\n    return\n    if ($castable) then xs:string(xs:boolean($x))\n    else error(concat(&quot;Not a boolean: &quot;, xdmp:describe($x)))\n  else concat('&quot;', json:escape($x), '&quot;')\n};\n\n(: Print the thing that comes after the colon :)\ndeclare function json:print-value($x as element()) as xs:string {\n  if (count($x/*) = 0) then\n    json:atomize($x)\n  else if ($x/@quote = &quot;true&quot;) then\n    concat('&quot;', json:escape(xdmp:quote($x/node())), '&quot;')\n  else\n    string-join(('{',\n      string-join(for $i in $x/* return json:print-name-value($i), &quot;,&quot;),\n    '}'), &quot;&quot;)\n};\n\n(: Print the name and value both :)\ndeclare function json:print-name-value($x as element()) as xs:string? {\n  let $name := name($x)\n  let $first-in-array :=\n    count($x/preceding-sibling::*[name(.) = $name]) = 0 and\n    (count($x/following-sibling::*[name(.) = $name]) &gt; 0 or $x/@array = &quot;true&quot;)\n  let $later-in-array := count($x/preceding-sibling::*[name(.) = $name]) &gt; 0\n  return\n\n  if ($later-in-array) then\n    ()  (: I was handled previously :)\n  else if ($first-in-array) then\n    string-join(('&quot;', json:escape($name), '&quot;:[',\n      string-join((for $i in ($x, $x/following-sibling::*[name(.) = $name]) return json:print-value($i)), &quot;,&quot;),\n    ']'), &quot;&quot;)\n   else\n     string-join(('&quot;', json:escape($name), '&quot;:', json:print-value($x)), &quot;&quot;)\n};\n\n(:~\n  Transforms an XML element into a JSON string representation.  See http://json.org.\n  &lt;p/&gt;\n  Sample usage:\n  &lt;pre&gt;\n    xquery version &quot;1.0-ml&quot;;\n    import module namespace json=&quot;http://marklogic.com/json&quot; at &quot;json.xqy&quot;;\n    json:serialize(&amp;lt;foo&amp;gt;&amp;lt;bar&amp;gt;kid&amp;lt;/bar&amp;gt;&amp;lt;/foo&amp;gt;)\n  &lt;/pre&gt;\n  Sample transformations:\n  &lt;pre&gt;\n  &amp;lt;e/&amp;gt; becomes {&quot;e&quot;:null}\n  &amp;lt;e&amp;gt;text&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;text&quot;}\n  &amp;lt;e&amp;gt;quote &quot; escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;quote \\&quot; escaping&quot;}\n  &amp;lt;e&amp;gt;backslash \\ escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;backslash \\\\ escaping&quot;}\n  &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;text2&amp;lt;/b&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:&quot;text1&quot;,&quot;b&quot;:&quot;text2&quot;}}\n  &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;a&amp;gt;text2&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;,&quot;text2&quot;]}}\n  &amp;lt;e&amp;gt;&amp;lt;a array=&quot;true&quot;&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;]}}\n  &amp;lt;e&amp;gt;&amp;lt;a type=&quot;boolean&quot;&amp;gt;false&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:false}}\n  &amp;lt;e&amp;gt;&amp;lt;a type=&quot;number&quot;&amp;gt;123.5&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:123.5}}\n  &amp;lt;e quote=&quot;true&quot;&amp;gt;&amp;lt;div attrib=&quot;value&quot;/&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;&amp;lt;div attrib=\\&quot;value\\&quot;/&amp;gt;&quot;}\n  &lt;/pre&gt;\n  &lt;p/&gt;\n  Namespace URIs are ignored.  Namespace prefixes are included in the JSON name.\n  &lt;p/&gt;\n  Attributes are ignored, except for the special attribute @array=&quot;true&quot; that\n  indicates the JSON serialization should write the node, even if single, as an\n  array, and the attribute @type that can be set to &quot;boolean&quot; or &quot;number&quot; to\n  dictate the value should be written as that type (unquoted).  There's also\n  an @quote attribute that when set to true writes the inner content as text\n  rather than as structured JSON, useful for sending some XHTML over the\n  wire.\n  &lt;p/&gt;\n  Text nodes within mixed content are ignored.\n\n  @param $x Element node to convert\n  @return String holding JSON serialized representation of $x\n\n  @author Jason Hunter\n  @version 1.0.1\n  \n  Ported to xquery 1.0-ml; double escaped backslashes in json:escape\n:)\ndeclare function json:serialize($x as element())  as xs:string {\n  string-join(('{', json:print-name-value($x), '}'), &quot;&quot;)\n};\n  </textarea> \n</div> \n \n    <script> \n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"xq-dark\"\n      });\n    </script> \n \n    <p><strong>MIME types defined:</strong> <code>application/xquery</code>.</p> \n \n    <p>Development of the CodeMirror XQuery mode was sponsored by \n      <a href=\"http://marklogic.com\">MarkLogic</a> and developed by \n      <a href=\"https://twitter.com/mbrevoort\">Mike Brevoort</a>.\n    </p>\n \n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xquery/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Don't take these too seriously -- the expected results appear to be\n// based on the results of actual runs without any serious manual\n// verification. If a change you made causes them to fail, the test is\n// as likely to wrong as the code.\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"xquery\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"eviltest\",\n     \"[keyword xquery] [keyword version] [variable &quot;1][keyword .][atom 0][keyword -][variable ml&quot;][def&variable ;]      [comment (: this is       : a          \\\"comment\\\" :)]\",\n     \"      [keyword let] [variable $let] [keyword :=] [variable &lt;x] [variable attr][keyword =][variable &quot;value&quot;&gt;&quot;test&quot;&lt;func&gt][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable &lt;][keyword /][variable func&gt;&lt;][keyword /][variable x&gt;]\",\n     \"      [keyword let] [variable $joe][keyword :=][atom 1]\",\n     \"      [keyword return] [keyword element] [variable element] {\",\n     \"          [keyword attribute] [variable attribute] { [atom 1] },\",\n     \"          [keyword element] [variable test] { [variable &#39;a&#39;] },           [keyword attribute] [variable foo] { [variable &quot;bar&quot;] },\",\n     \"          [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],\",\n     \"          [keyword //][variable x] }                 [comment (: a more 'evil' test :)]\",\n     \"      [comment (: Modified Blakeley example (: with nested comment :) ... :)]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]\",\n     \"      [keyword let] [variable $let] [keyword :=] [variable &lt;let&gt;let] [variable $let] [keyword :=] [variable &quot;let&quot;&lt;][keyword /let][variable &gt;]\",\n     \"      [keyword return] [keyword element] [variable element] {\",\n     \"          [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },\",\n     \"          [keyword attribute] [variable fn:doc] { [variable &quot;bar&quot;] [variable castable] [keyword as] [atom xs:string] },\",\n     \"          [keyword element] [variable text] { [keyword text] { [variable &quot;text&quot;] } },\",\n     \"          [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],\",\n     \"          [keyword //][variable fn:doc]\",\n     \"      }\");\n\n  MT(\"testEmptySequenceKeyword\",\n     \"[string \\\"foo\\\"] [keyword instance] [keyword of] [keyword empty-sequence]()\");\n\n  MT(\"testMultiAttr\",\n     \"[tag <p ][attribute a1]=[string \\\"foo\\\"] [attribute a2]=[string \\\"bar\\\"][tag >][variable hello] [variable world][tag </p>]\");\n\n  MT(\"test namespaced variable\",\n     \"[keyword declare] [keyword namespace] [variable e] [keyword =] [string \\\"http://example.com/ANamespace\\\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]\");\n\n  MT(\"test EQName variable\",\n     \"[keyword declare] [keyword variable] [variable $\\\"http://www.example.com/ns/my\\\":var] [keyword :=] [atom 12][variable ;]\",\n     \"[tag <out>]{[variable $\\\"http://www.example.com/ns/my\\\":var]}[tag </out>]\");\n\n  MT(\"test EQName function\",\n     \"[keyword declare] [keyword function] [def&variable \\\"http://www.example.com/ns/my\\\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {\",\n     \"   [variable $a] [keyword +] [atom 2]\",\n     \"}[variable ;]\",\n     \"[tag <out>]{[def&variable \\\"http://www.example.com/ns/my\\\":fn]([atom 12])}[tag </out>]\");\n\n  MT(\"test EQName function with single quotes\",\n     \"[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {\",\n     \"   [variable $a] [keyword +] [atom 2]\",\n     \"}[variable ;]\",\n     \"[tag <out>]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag </out>]\");\n\n  MT(\"testProcessingInstructions\",\n     \"[def&variable data]([comment&meta <?target content?>]) [keyword instance] [keyword of] [atom xs:string]\");\n\n  MT(\"testQuoteEscapeDouble\",\n     \"[keyword let] [variable $rootfolder] [keyword :=] [string \\\"c:\\\\builds\\\\winnt\\\\HEAD\\\\qa\\\\scripts\\\\\\\"]\",\n     \"[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \\\"keys\\\\\\\"])\");\n})();\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/xquery/xquery.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"xquery\", function() {\n\n  // The keywords object is set to the result of this self executing\n  // function. Each keyword is a property of the keywords object whose\n  // value is {type: atype, style: astyle}\n  var keywords = function(){\n    // conveinence functions used to build keywords object\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\")\n      , B = kw(\"keyword b\")\n      , C = kw(\"keyword c\")\n      , operator = kw(\"operator\")\n      , atom = {type: \"atom\", style: \"atom\"}\n      , punctuation = {type: \"punctuation\", style: null}\n      , qualifier = {type: \"axis_specifier\", style: \"qualifier\"};\n\n    // kwObj is what is return from this function at the end\n    var kwObj = {\n      'if': A, 'switch': A, 'while': A, 'for': A,\n      'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B,\n      'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C,\n      'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C,\n      ',': punctuation,\n      'null': atom, 'fn:false()': atom, 'fn:true()': atom\n    };\n\n    // a list of 'basic' keywords. For each add a property to kwObj with the value of\n    // {type: basic[i], style: \"keyword\"} e.g. 'after' --> {type: \"after\", style: \"keyword\"}\n    var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before',\n    'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self',\n    'descending','document','document-node','element','else','eq','every','except','external','following',\n    'following-sibling','follows','for','function','if','import','in','instance','intersect','item',\n    'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding',\n    'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element',\n    'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where',\n    'xquery', 'empty-sequence'];\n    for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);};\n\n    // a list of types. For each add a property to kwObj with the value of\n    // {type: \"atom\", style: \"atom\"}\n    var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime',\n    'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary',\n    'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration'];\n    for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;};\n\n    // each operator will add a property to kwObj with value of {type: \"operator\", style: \"keyword\"}\n    var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-'];\n    for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;};\n\n    // each axis_specifiers will add a property to kwObj with value of {type: \"axis_specifier\", style: \"qualifier\"}\n    var axis_specifiers = [\"self::\", \"attribute::\", \"child::\", \"descendant::\", \"descendant-or-self::\", \"parent::\",\n    \"ancestor::\", \"ancestor-or-self::\", \"following::\", \"preceding::\", \"following-sibling::\", \"preceding-sibling::\"];\n    for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; };\n\n    return kwObj;\n  }();\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  // the primary mode tokenizer\n  function tokenBase(stream, state) {\n    var ch = stream.next(),\n        mightBeFunction = false,\n        isEQName = isEQNameAhead(stream);\n\n    // an XML tag (if not in some sub, chained tokenizer)\n    if (ch == \"<\") {\n      if(stream.match(\"!--\", true))\n        return chain(stream, state, tokenXMLComment);\n\n      if(stream.match(\"![CDATA\", false)) {\n        state.tokenize = tokenCDATA;\n        return ret(\"tag\", \"tag\");\n      }\n\n      if(stream.match(\"?\", false)) {\n        return chain(stream, state, tokenPreProcessing);\n      }\n\n      var isclose = stream.eat(\"/\");\n      stream.eatSpace();\n      var tagName = \"\", c;\n      while ((c = stream.eat(/[^\\s\\u00a0=<>\\\"\\'\\/?]/))) tagName += c;\n\n      return chain(stream, state, tokenTag(tagName, isclose));\n    }\n    // start code block\n    else if(ch == \"{\") {\n      pushStateStack(state,{ type: \"codeblock\"});\n      return ret(\"\", null);\n    }\n    // end code block\n    else if(ch == \"}\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    // if we're in an XML block\n    else if(isInXmlBlock(state)) {\n      if(ch == \">\")\n        return ret(\"tag\", \"tag\");\n      else if(ch == \"/\" && stream.eat(\">\")) {\n        popStateStack(state);\n        return ret(\"tag\", \"tag\");\n      }\n      else\n        return ret(\"word\", \"variable\");\n    }\n    // if a number\n    else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:E[+\\-]?\\d+)?/);\n      return ret(\"number\", \"atom\");\n    }\n    // comment start\n    else if (ch === \"(\" && stream.eat(\":\")) {\n      pushStateStack(state, { type: \"comment\"});\n      return chain(stream, state, tokenComment);\n    }\n    // quoted string\n    else if (  !isEQName && (ch === '\"' || ch === \"'\"))\n      return chain(stream, state, tokenString(ch));\n    // variable\n    else if(ch === \"$\") {\n      return chain(stream, state, tokenVariable);\n    }\n    // assignment\n    else if(ch ===\":\" && stream.eat(\"=\")) {\n      return ret(\"operator\", \"keyword\");\n    }\n    // open paren\n    else if(ch === \"(\") {\n      pushStateStack(state, { type: \"paren\"});\n      return ret(\"\", null);\n    }\n    // close paren\n    else if(ch === \")\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    // open paren\n    else if(ch === \"[\") {\n      pushStateStack(state, { type: \"bracket\"});\n      return ret(\"\", null);\n    }\n    // close paren\n    else if(ch === \"]\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    else {\n      var known = keywords.propertyIsEnumerable(ch) && keywords[ch];\n\n      // if there's a EQName ahead, consume the rest of the string portion, it's likely a function\n      if(isEQName && ch === '\\\"') while(stream.next() !== '\"'){}\n      if(isEQName && ch === '\\'') while(stream.next() !== '\\''){}\n\n      // gobble up a word if the character is not known\n      if(!known) stream.eatWhile(/[\\w\\$_-]/);\n\n      // gobble a colon in the case that is a lib func type call fn:doc\n      var foundColon = stream.eat(\":\");\n\n      // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier\n      // which should get matched as a keyword\n      if(!stream.eat(\":\") && foundColon) {\n        stream.eatWhile(/[\\w\\$_-]/);\n      }\n      // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort)\n      if(stream.match(/^[ \\t]*\\(/, false)) {\n        mightBeFunction = true;\n      }\n      // is the word a keyword?\n      var word = stream.current();\n      known = keywords.propertyIsEnumerable(word) && keywords[word];\n\n      // if we think it's a function call but not yet known,\n      // set style to variable for now for lack of something better\n      if(mightBeFunction && !known) known = {type: \"function_call\", style: \"variable def\"};\n\n      // if the previous word was element, attribute, axis specifier, this word should be the name of that\n      if(isInXmlConstructor(state)) {\n        popStateStack(state);\n        return ret(\"word\", \"variable\", word);\n      }\n      // as previously checked, if the word is element,attribute, axis specifier, call it an \"xmlconstructor\" and\n      // push the stack so we know to look for it on the next word\n      if(word == \"element\" || word == \"attribute\" || known.type == \"axis_specifier\") pushStateStack(state, {type: \"xmlconstructor\"});\n\n      // if the word is known, return the details of that else just call this a generic 'word'\n      return known ? ret(known.type, known.style, word) :\n                     ret(\"word\", \"variable\", word);\n    }\n  }\n\n  // handle comments, including nested\n  function tokenComment(stream, state) {\n    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        if(nestedCount > 0)\n          nestedCount--;\n        else {\n          popStateStack(state);\n          break;\n        }\n      }\n      else if(ch == \":\" && maybeNested) {\n        nestedCount++;\n      }\n      maybeEnd = (ch == \":\");\n      maybeNested = (ch == \"(\");\n    }\n\n    return ret(\"comment\", \"comment\");\n  }\n\n  // tokenizer for string literals\n  // optionally pass a tokenizer function to set state.tokenize back to when finished\n  function tokenString(quote, f) {\n    return function(stream, state) {\n      var ch;\n\n      if(isInString(state) && stream.current() == quote) {\n        popStateStack(state);\n        if(f) state.tokenize = f;\n        return ret(\"string\", \"string\");\n      }\n\n      pushStateStack(state, { type: \"string\", name: quote, tokenize: tokenString(quote, f) });\n\n      // if we're in a string and in an XML block, allow an embedded code block\n      if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n        state.tokenize = tokenBase;\n        return ret(\"string\", \"string\");\n      }\n\n\n      while (ch = stream.next()) {\n        if (ch ==  quote) {\n          popStateStack(state);\n          if(f) state.tokenize = f;\n          break;\n        }\n        else {\n          // if we're in a string and in an XML block, allow an embedded code block in an attribute\n          if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n            state.tokenize = tokenBase;\n            return ret(\"string\", \"string\");\n          }\n\n        }\n      }\n\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  // tokenizer for variables\n  function tokenVariable(stream, state) {\n    var isVariableChar = /[\\w\\$_-]/;\n\n    // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote\n    if(stream.eat(\"\\\"\")) {\n      while(stream.next() !== '\\\"'){};\n      stream.eat(\":\");\n    } else {\n      stream.eatWhile(isVariableChar);\n      if(!stream.match(\":=\", false)) stream.eat(\":\");\n    }\n    stream.eatWhile(isVariableChar);\n    state.tokenize = tokenBase;\n    return ret(\"variable\", \"variable\");\n  }\n\n  // tokenizer for XML tags\n  function tokenTag(name, isclose) {\n    return function(stream, state) {\n      stream.eatSpace();\n      if(isclose && stream.eat(\">\")) {\n        popStateStack(state);\n        state.tokenize = tokenBase;\n        return ret(\"tag\", \"tag\");\n      }\n      // self closing tag without attributes?\n      if(!stream.eat(\"/\"))\n        pushStateStack(state, { type: \"tag\", name: name, tokenize: tokenBase});\n      if(!stream.eat(\">\")) {\n        state.tokenize = tokenAttribute;\n        return ret(\"tag\", \"tag\");\n      }\n      else {\n        state.tokenize = tokenBase;\n      }\n      return ret(\"tag\", \"tag\");\n    };\n  }\n\n  // tokenizer for XML attributes\n  function tokenAttribute(stream, state) {\n    var ch = stream.next();\n\n    if(ch == \"/\" && stream.eat(\">\")) {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      if(isInXmlBlock(state)) popStateStack(state);\n      return ret(\"tag\", \"tag\");\n    }\n    if(ch == \">\") {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      return ret(\"tag\", \"tag\");\n    }\n    if(ch == \"=\")\n      return ret(\"\", null);\n    // quoted string\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch, tokenAttribute));\n\n    if(!isInXmlAttributeBlock(state))\n      pushStateStack(state, { type: \"attribute\", tokenize: tokenAttribute});\n\n    stream.eat(/[a-zA-Z_:]/);\n    stream.eatWhile(/[-a-zA-Z0-9_:.]/);\n    stream.eatSpace();\n\n    // the case where the attribute has not value and the tag was closed\n    if(stream.match(\">\", false) || stream.match(\"/\", false)) {\n      popStateStack(state);\n      state.tokenize = tokenBase;\n    }\n\n    return ret(\"attribute\", \"attribute\");\n  }\n\n  // handle comments, including nested\n  function tokenXMLComment(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"-\" && stream.match(\"->\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment\");\n      }\n    }\n  }\n\n\n  // handle CDATA\n  function tokenCDATA(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"]\" && stream.match(\"]\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment\");\n      }\n    }\n  }\n\n  // handle preprocessing instructions\n  function tokenPreProcessing(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"?\" && stream.match(\">\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment meta\");\n      }\n    }\n  }\n\n\n  // functions to test the current context of the state\n  function isInXmlBlock(state) { return isIn(state, \"tag\"); }\n  function isInXmlAttributeBlock(state) { return isIn(state, \"attribute\"); }\n  function isInXmlConstructor(state) { return isIn(state, \"xmlconstructor\"); }\n  function isInString(state) { return isIn(state, \"string\"); }\n\n  function isEQNameAhead(stream) {\n    // assume we've already eaten a quote (\")\n    if(stream.current() === '\"')\n      return stream.match(/^[^\\\"]+\\\"\\:/, false);\n    else if(stream.current() === '\\'')\n      return stream.match(/^[^\\\"]+\\'\\:/, false);\n    else\n      return false;\n  }\n\n  function isIn(state, type) {\n    return (state.stack.length && state.stack[state.stack.length - 1].type == type);\n  }\n\n  function pushStateStack(state, newState) {\n    state.stack.push(newState);\n  }\n\n  function popStateStack(state) {\n    state.stack.pop();\n    var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize;\n    state.tokenize = reinstateTokenize || tokenBase;\n  }\n\n  // the interface for the mode API\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        cc: [],\n        stack: []\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n\n    blockCommentStart: \"(:\",\n    blockCommentEnd: \":)\"\n\n  };\n\n});\n\nCodeMirror.defineMIME(\"application/xquery\", \"xquery\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/yaml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: YAML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"yaml.js\"></script>\n<style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">YAML</a>\n  </ul>\n</div>\n\n<article>\n<h2>YAML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n--- # Favorite movies\n- Casablanca\n- North by Northwest\n- The Man Who Wasn't There\n--- # Shopping list\n[milk, pumpkin pie, eggs, juice]\n--- # Indented Blocks, common in YAML data files, use indentation and new lines to separate the key: value pairs\n  name: John Smith\n  age: 33\n--- # Inline Blocks, common in YAML data streams, use commas to separate the key: value pairs between braces\n{name: John Smith, age: 33}\n---\nreceipt:     Oz-Ware Purchase Invoice\ndate:        2007-08-06\ncustomer:\n    given:   Dorothy\n    family:  Gale\n\nitems:\n    - part_no:   A4786\n      descrip:   Water Bucket (Filled)\n      price:     1.47\n      quantity:  4\n\n    - part_no:   E1628\n      descrip:   High Heeled \"Ruby\" Slippers\n      size:       8\n      price:     100.27\n      quantity:  1\n\nbill-to:  &id001\n    street: |\n            123 Tornado Alley\n            Suite 16\n    city:   East Centerville\n    state:  KS\n\nship-to:  *id001\n\nspecialDelivery:  >\n    Follow the Yellow Brick\n    Road to the Emerald City.\n    Pay no attention to the\n    man behind the curtain.\n...\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-yaml</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/yaml/yaml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"yaml\", function() {\n\n  var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];\n  var keywordRegex = new RegExp(\"\\\\b((\"+cons.join(\")|(\")+\"))$\", 'i');\n\n  return {\n    token: function(stream, state) {\n      var ch = stream.peek();\n      var esc = state.escaped;\n      state.escaped = false;\n      /* comments */\n      if (ch == \"#\" && (stream.pos == 0 || /\\s/.test(stream.string.charAt(stream.pos - 1)))) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (stream.match(/^('([^']|\\\\.)*'?|\"([^\"]|\\\\.)*\"?)/))\n        return \"string\";\n\n      if (state.literal && stream.indentation() > state.keyCol) {\n        stream.skipToEnd(); return \"string\";\n      } else if (state.literal) { state.literal = false; }\n      if (stream.sol()) {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        /* document start */\n        if(stream.match(/---/)) { return \"def\"; }\n        /* document end */\n        if (stream.match(/\\.\\.\\./)) { return \"def\"; }\n        /* array list item */\n        if (stream.match(/\\s*-\\s+/)) { return 'meta'; }\n      }\n      /* inline pairs/lists */\n      if (stream.match(/^(\\{|\\}|\\[|\\])/)) {\n        if (ch == '{')\n          state.inlinePairs++;\n        else if (ch == '}')\n          state.inlinePairs--;\n        else if (ch == '[')\n          state.inlineList++;\n        else\n          state.inlineList--;\n        return 'meta';\n      }\n\n      /* list seperator */\n      if (state.inlineList > 0 && !esc && ch == ',') {\n        stream.next();\n        return 'meta';\n      }\n      /* pairs seperator */\n      if (state.inlinePairs > 0 && !esc && ch == ',') {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        stream.next();\n        return 'meta';\n      }\n\n      /* start of value of a pair */\n      if (state.pairStart) {\n        /* block literals */\n        if (stream.match(/^\\s*(\\||\\>)\\s*/)) { state.literal = true; return 'meta'; };\n        /* references */\n        if (stream.match(/^\\s*(\\&|\\*)[a-z0-9\\._-]+\\b/i)) { return 'variable-2'; }\n        /* numbers */\n        if (state.inlinePairs == 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?$/)) { return 'number'; }\n        if (state.inlinePairs > 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?(?=(,|}))/)) { return 'number'; }\n        /* keywords */\n        if (stream.match(keywordRegex)) { return 'keyword'; }\n      }\n\n      /* pairs (associative arrays) -> key */\n      if (!state.pair && stream.match(/^\\s*(?:[,\\[\\]{}&*!|>'\"%@`][^\\s'\":]|[^,\\[\\]{}#&*!|>'\"%@`])[^#]*?(?=\\s*:($|\\s))/)) {\n        state.pair = true;\n        state.keyCol = stream.indentation();\n        return \"atom\";\n      }\n      if (state.pair && stream.match(/^:\\s*/)) { state.pairStart = true; return 'meta'; }\n\n      /* nothing found, continue */\n      state.pairStart = false;\n      state.escaped = (ch == '\\\\');\n      stream.next();\n      return null;\n    },\n    startState: function() {\n      return {\n        pair: false,\n        pairStart: false,\n        keyCol: 0,\n        inlinePairs: 0,\n        inlineList: 0,\n        literal: false,\n        escaped: false\n      };\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-yaml\", \"yaml\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/z80/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Z80 assembly mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"z80.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Z80 assembly</a>\n  </ul>\n</div>\n\n<article>\n<h2>Z80 assembly mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n#include    \"ti83plus.inc\"\n#define     progStart   $9D95\n.org        progStart-2\n.db         $BB,$6D\n    bcall(_ClrLCDFull)\n    ld  HL, 0\n    ld  (PenCol),   HL\n    ld  HL, Message\n    bcall(_PutS) ; Displays the string\n    bcall(_NewLine)\n    ret\nMessage:\n.db         \"Hello world!\",0\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-z80</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/mode/z80/z80.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('z80', function() {\n  var keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\\b/i;\n  var keywords2 = /^(call|j[pr]|ret[in]?)\\b/i;\n  var keywords3 = /^b_?(call|jump)\\b/i;\n  var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\\b/i;\n  var variables2 = /^(n?[zc]|p[oe]?|m)\\b/i;\n  var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\\b/i;\n  var numbers = /^([\\da-f]+h|[0-7]+o|[01]+b|\\d+)\\b/i;\n\n  return {\n    startState: function() {\n      return {context: 0};\n    },\n    token: function(stream, state) {\n      if (!stream.column())\n        state.context = 0;\n\n      if (stream.eatSpace())\n        return null;\n\n      var w;\n\n      if (stream.eatWhile(/\\w/)) {\n        w = stream.current();\n\n        if (stream.indentation()) {\n          if (state.context == 1 && variables1.test(w))\n            return 'variable-2';\n\n          if (state.context == 2 && variables2.test(w))\n            return 'variable-3';\n\n          if (keywords1.test(w)) {\n            state.context = 1;\n            return 'keyword';\n          } else if (keywords2.test(w)) {\n            state.context = 2;\n            return 'keyword';\n          } else if (keywords3.test(w)) {\n            state.context = 3;\n            return 'keyword';\n          }\n\n          if (errors.test(w))\n            return 'error';\n        } else if (numbers.test(w)) {\n          return 'number';\n        } else {\n          return null;\n        }\n      } else if (stream.eat(';')) {\n        stream.skipToEnd();\n        return 'comment';\n      } else if (stream.eat('\"')) {\n        while (w = stream.next()) {\n          if (w == '\"')\n            break;\n\n          if (w == '\\\\')\n            stream.next();\n        }\n        return 'string';\n      } else if (stream.eat('\\'')) {\n        if (stream.match(/\\\\?.'/))\n          return 'number';\n      } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {\n        state.context = 4;\n\n        if (stream.eatWhile(/\\w/))\n          return 'def';\n      } else if (stream.eat('$')) {\n        if (stream.eatWhile(/[\\da-f]/i))\n          return 'number';\n      } else if (stream.eat('%')) {\n        if (stream.eatWhile(/[01]/))\n          return 'number';\n      } else {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-z80\", \"z80\");\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/package.json",
    "content": "{\n    \"name\": \"codemirror\",\n    \"version\":\"5.0.0\",\n    \"main\": \"lib/codemirror.js\",\n    \"description\": \"In-browser code editing made bearable\",\n    \"licenses\": [{\"type\": \"MIT\",\n                  \"url\": \"http://codemirror.net/LICENSE\"}],\n    \"directories\": {\"lib\": \"./lib\"},\n    \"scripts\": {\"test\": \"node ./test/run.js\"},\n    \"devDependencies\": {\"node-static\": \"0.6.0\",\n                        \"phantomjs\": \"1.9.2-5\",\n                        \"blint\": \">=0.1.1\"},\n    \"bugs\": \"http://github.com/codemirror/CodeMirror/issues\",\n    \"keywords\": [\"JavaScript\", \"CodeMirror\", \"Editor\"],\n    \"homepage\": \"http://codemirror.net\",\n    \"maintainers\":[{\"name\": \"Marijn Haverbeke\",\n                    \"email\": \"marijnh@gmail.com\",\n                    \"web\": \"http://marijnhaverbeke.nl\"}],\n    \"repository\": {\"type\": \"git\",\n                   \"url\": \"https://github.com/codemirror/CodeMirror.git\"}\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/3024-day.css",
    "content": "/*\n\n    Name:       3024 day\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;}\n.cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;}\n.cm-s-3024-day.CodeMirror ::selection { background: #d6d5d4; }\n.cm-s-3024-day.CodeMirror ::-moz-selection { background: #d9d9d9; }\n\n.cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;}\n.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }\n.cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;}\n\n.cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;}\n\n.cm-s-3024-day span.cm-comment {color: #cdab53;}\n.cm-s-3024-day span.cm-atom {color: #a16a94;}\n.cm-s-3024-day span.cm-number {color: #a16a94;}\n\n.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;}\n.cm-s-3024-day span.cm-keyword {color: #db2d20;}\n.cm-s-3024-day span.cm-string {color: #fded02;}\n\n.cm-s-3024-day span.cm-variable {color: #01a252;}\n.cm-s-3024-day span.cm-variable-2 {color: #01a0e4;}\n.cm-s-3024-day span.cm-def {color: #e8bbd0;}\n.cm-s-3024-day span.cm-bracket {color: #3a3432;}\n.cm-s-3024-day span.cm-tag {color: #db2d20;}\n.cm-s-3024-day span.cm-link {color: #a16a94;}\n.cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;}\n\n.cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/3024-night.css",
    "content": "/*\n\n    Name:       3024 night\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;}\n.cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;}\n.cm-s-3024-night.CodeMirror ::selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night.CodeMirror ::-moz-selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;}\n.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }\n.cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;}\n\n.cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;}\n\n.cm-s-3024-night span.cm-comment {color: #cdab53;}\n.cm-s-3024-night span.cm-atom {color: #a16a94;}\n.cm-s-3024-night span.cm-number {color: #a16a94;}\n\n.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;}\n.cm-s-3024-night span.cm-keyword {color: #db2d20;}\n.cm-s-3024-night span.cm-string {color: #fded02;}\n\n.cm-s-3024-night span.cm-variable {color: #01a252;}\n.cm-s-3024-night span.cm-variable-2 {color: #01a0e4;}\n.cm-s-3024-night span.cm-def {color: #e8bbd0;}\n.cm-s-3024-night span.cm-bracket {color: #d6d5d4;}\n.cm-s-3024-night span.cm-tag {color: #db2d20;}\n.cm-s-3024-night span.cm-link {color: #a16a94;}\n.cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;}\n\n.cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;}\n.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/ambiance-mobile.css",
    "content": ".cm-s-ambiance.CodeMirror {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/ambiance.css",
    "content": "/* ambiance theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-ambiance .cm-keyword { color: #cda869; }\n.cm-s-ambiance .cm-atom { color: #CF7EA9; }\n.cm-s-ambiance .cm-number { color: #78CF8A; }\n.cm-s-ambiance .cm-def { color: #aac6e3; }\n.cm-s-ambiance .cm-variable { color: #ffb795; }\n.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }\n.cm-s-ambiance .cm-variable-3 { color: #faded3; }\n.cm-s-ambiance .cm-property { color: #eed1b3; }\n.cm-s-ambiance .cm-operator {color: #fa8d6a;}\n.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }\n.cm-s-ambiance .cm-string { color: #8f9d6a; }\n.cm-s-ambiance .cm-string-2 { color: #9d937c; }\n.cm-s-ambiance .cm-meta { color: #D2A8A1; }\n.cm-s-ambiance .cm-qualifier { color: yellow; }\n.cm-s-ambiance .cm-builtin { color: #9999cc; }\n.cm-s-ambiance .cm-bracket { color: #24C2C7; }\n.cm-s-ambiance .cm-tag { color: #fee4ff }\n.cm-s-ambiance .cm-attribute {  color: #9B859D; }\n.cm-s-ambiance .cm-header {color: blue;}\n.cm-s-ambiance .cm-quote { color: #24C2C7; }\n.cm-s-ambiance .cm-hr { color: pink; }\n.cm-s-ambiance .cm-link { color: #F4C20B; }\n.cm-s-ambiance .cm-special { color: #FF9D00; }\n.cm-s-ambiance .cm-error { color: #AF2018; }\n\n.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }\n.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }\n\n.cm-s-ambiance .CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }\n.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance.CodeMirror ::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance.CodeMirror ::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n\n/* Editor styling */\n\n.cm-s-ambiance.CodeMirror {\n  line-height: 1.40em;\n  color: #E6E1DC;\n  background-color: #202020;\n  -webkit-box-shadow: inset 0 0 10px black;\n  -moz-box-shadow: inset 0 0 10px black;\n  box-shadow: inset 0 0 10px black;\n}\n\n.cm-s-ambiance .CodeMirror-gutters {\n  background: #3D3D3D;\n  border-right: 1px solid #4D4D4D;\n  box-shadow: 0 10px 20px black;\n}\n\n.cm-s-ambiance .CodeMirror-linenumber {\n  text-shadow: 0px 1px 1px #4d4d4d;\n  color: #111;\n  padding: 0 5px;\n}\n\n.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }\n.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }\n\n.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor {\n  border-left: 1px solid #7991E8;\n}\n\n.cm-s-ambiance .CodeMirror-activeline-background {\n  background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);\n}\n\n.cm-s-ambiance.CodeMirror,\n.cm-s-ambiance .CodeMirror-gutters {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/base16-dark.css",
    "content": "/*\n\n    Name:       Base16 Default Dark\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;}\n.cm-s-base16-dark div.CodeMirror-selected {background: #303030 !important;}\n.cm-s-base16-dark.CodeMirror ::selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark.CodeMirror ::-moz-selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;}\n.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }\n.cm-s-base16-dark .CodeMirror-linenumber {color: #505050;}\n.cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;}\n\n.cm-s-base16-dark span.cm-comment {color: #8f5536;}\n.cm-s-base16-dark span.cm-atom {color: #aa759f;}\n.cm-s-base16-dark span.cm-number {color: #aa759f;}\n\n.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;}\n.cm-s-base16-dark span.cm-keyword {color: #ac4142;}\n.cm-s-base16-dark span.cm-string {color: #f4bf75;}\n\n.cm-s-base16-dark span.cm-variable {color: #90a959;}\n.cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;}\n.cm-s-base16-dark span.cm-def {color: #d28445;}\n.cm-s-base16-dark span.cm-bracket {color: #e0e0e0;}\n.cm-s-base16-dark span.cm-tag {color: #ac4142;}\n.cm-s-base16-dark span.cm-link {color: #aa759f;}\n.cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;}\n\n.cm-s-base16-dark .CodeMirror-activeline-background {background: #202020 !important;}\n.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/base16-light.css",
    "content": "/*\n\n    Name:       Base16 Default Light\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;}\n.cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;}\n.cm-s-base16-light.CodeMirror ::selection { background: #e0e0e0; }\n.cm-s-base16-light.CodeMirror ::-moz-selection { background: #e0e0e0; }\n.cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;}\n.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }\n.cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;}\n.cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;}\n\n.cm-s-base16-light span.cm-comment {color: #8f5536;}\n.cm-s-base16-light span.cm-atom {color: #aa759f;}\n.cm-s-base16-light span.cm-number {color: #aa759f;}\n\n.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;}\n.cm-s-base16-light span.cm-keyword {color: #ac4142;}\n.cm-s-base16-light span.cm-string {color: #f4bf75;}\n\n.cm-s-base16-light span.cm-variable {color: #90a959;}\n.cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;}\n.cm-s-base16-light span.cm-def {color: #d28445;}\n.cm-s-base16-light span.cm-bracket {color: #202020;}\n.cm-s-base16-light span.cm-tag {color: #ac4142;}\n.cm-s-base16-light span.cm-link {color: #aa759f;}\n.cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;}\n\n.cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;}\n.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/blackboard.css",
    "content": "/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }\n.cm-s-blackboard.CodeMirror ::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard.CodeMirror ::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D;}\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}\n.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/cobalt.css",
    "content": ".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; }\n.cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;}\n.cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/colorforth.css",
    "content": ".cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }\n.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }\n.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }\n.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-colorforth span.cm-comment     { color: #ededed; }\n.cm-s-colorforth span.cm-def         { color: #ff1c1c; font-weight:bold; }\n.cm-s-colorforth span.cm-keyword     { color: #ffd900; }\n.cm-s-colorforth span.cm-builtin     { color: #00d95a; }\n.cm-s-colorforth span.cm-variable    { color: #73ff00; }\n.cm-s-colorforth span.cm-string      { color: #007bff; }\n.cm-s-colorforth span.cm-number      { color: #00c4ff; }\n.cm-s-colorforth span.cm-atom        { color: #606060; }\n\n.cm-s-colorforth span.cm-variable-2  { color: #EEE; }\n.cm-s-colorforth span.cm-variable-3  { color: #DDD; }\n.cm-s-colorforth span.cm-property    {}\n.cm-s-colorforth span.cm-operator    {}\n\n.cm-s-colorforth span.cm-meta        { color: yellow; }\n.cm-s-colorforth span.cm-qualifier   { color: #FFF700; }\n.cm-s-colorforth span.cm-bracket     { color: #cc7; }\n.cm-s-colorforth span.cm-tag         { color: #FFBD40; }\n.cm-s-colorforth span.cm-attribute   { color: #FFF700; }\n.cm-s-colorforth span.cm-error       { color: #f00; }\n\n.cm-s-colorforth .CodeMirror-selected { background: #333d53 !important; }\n\n.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }\n\n.cm-s-colorforth .CodeMirror-activeline-background {background: #253540 !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/eclipse.css",
    "content": ".cm-s-eclipse span.cm-meta {color: #FF1717;}\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom {color: #219;}\n.cm-s-eclipse span.cm-number {color: #164;}\n.cm-s-eclipse span.cm-def {color: #00f;}\n.cm-s-eclipse span.cm-variable {color: black;}\n.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}\n.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}\n.cm-s-eclipse span.cm-property {color: black;}\n.cm-s-eclipse span.cm-operator {color: black;}\n.cm-s-eclipse span.cm-comment {color: #3F7F5F;}\n.cm-s-eclipse span.cm-string {color: #2A00FF;}\n.cm-s-eclipse span.cm-string-2 {color: #f50;}\n.cm-s-eclipse span.cm-qualifier {color: #555;}\n.cm-s-eclipse span.cm-builtin {color: #30a;}\n.cm-s-eclipse span.cm-bracket {color: #cc7;}\n.cm-s-eclipse span.cm-tag {color: #170;}\n.cm-s-eclipse span.cm-attribute {color: #00c;}\n.cm-s-eclipse span.cm-link {color: #219;}\n.cm-s-eclipse span.cm-error {color: #f00;}\n\n.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/elegant.css",
    "content": ".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;}\n.cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;}\n.cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;}\n.cm-s-elegant span.cm-variable {color: black;}\n.cm-s-elegant span.cm-variable-2 {color: #b11;}\n.cm-s-elegant span.cm-qualifier {color: #555;}\n.cm-s-elegant span.cm-keyword {color: #730;}\n.cm-s-elegant span.cm-builtin {color: #30a;}\n.cm-s-elegant span.cm-link {color: #762;}\n.cm-s-elegant span.cm-error {background-color: #fdd;}\n\n.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/erlang-dark.css",
    "content": ".cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }\n.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; }\n.cm-s-erlang-dark.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-erlang-dark span.cm-atom       { color: #f133f1; }\n.cm-s-erlang-dark span.cm-attribute  { color: #ff80e1; }\n.cm-s-erlang-dark span.cm-bracket    { color: #ff9d00; }\n.cm-s-erlang-dark span.cm-builtin    { color: #eaa; }\n.cm-s-erlang-dark span.cm-comment    { color: #77f; }\n.cm-s-erlang-dark span.cm-def        { color: #e7a; }\n.cm-s-erlang-dark span.cm-keyword    { color: #ffee80; }\n.cm-s-erlang-dark span.cm-meta       { color: #50fefe; }\n.cm-s-erlang-dark span.cm-number     { color: #ffd0d0; }\n.cm-s-erlang-dark span.cm-operator   { color: #d55; }\n.cm-s-erlang-dark span.cm-property   { color: #ccc; }\n.cm-s-erlang-dark span.cm-qualifier  { color: #ccc; }\n.cm-s-erlang-dark span.cm-quote      { color: #ccc; }\n.cm-s-erlang-dark span.cm-special    { color: #ffbbbb; }\n.cm-s-erlang-dark span.cm-string     { color: #3ad900; }\n.cm-s-erlang-dark span.cm-string-2   { color: #ccc; }\n.cm-s-erlang-dark span.cm-tag        { color: #9effff; }\n.cm-s-erlang-dark span.cm-variable   { color: #50fe50; }\n.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }\n.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }\n.cm-s-erlang-dark span.cm-error      { color: #9d1e15; }\n\n.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;}\n.cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/lesser-dark.css",
    "content": "/*\nhttp://lesscss.org/ dark theme\nPorted to CodeMirror by Peter Kroon\n*/\n.cm-s-lesser-dark {\n  line-height: 1.3em;\n}\n.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }\n.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/\n.cm-s-lesser-dark.CodeMirror ::selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark.CodeMirror ::-moz-selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/\n\n.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/\n\n.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }\n.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }\n.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }\n\n.cm-s-lesser-dark span.cm-keyword { color: #599eff; }\n.cm-s-lesser-dark span.cm-atom { color: #C2B470; }\n.cm-s-lesser-dark span.cm-number { color: #B35E4D; }\n.cm-s-lesser-dark span.cm-def {color: white;}\n.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }\n.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }\n.cm-s-lesser-dark span.cm-variable-3 { color: white; }\n.cm-s-lesser-dark span.cm-property {color: #92A75C;}\n.cm-s-lesser-dark span.cm-operator {color: #92A75C;}\n.cm-s-lesser-dark span.cm-comment { color: #666; }\n.cm-s-lesser-dark span.cm-string { color: #BCD279; }\n.cm-s-lesser-dark span.cm-string-2 {color: #f50;}\n.cm-s-lesser-dark span.cm-meta { color: #738C73; }\n.cm-s-lesser-dark span.cm-qualifier {color: #555;}\n.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }\n.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }\n.cm-s-lesser-dark span.cm-tag { color: #669199; }\n.cm-s-lesser-dark span.cm-attribute {color: #00c;}\n.cm-s-lesser-dark span.cm-header {color: #a0a;}\n.cm-s-lesser-dark span.cm-quote {color: #090;}\n.cm-s-lesser-dark span.cm-hr {color: #999;}\n.cm-s-lesser-dark span.cm-link {color: #00c;}\n.cm-s-lesser-dark span.cm-error { color: #9d1e15; }\n\n.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;}\n.cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/mbo.css",
    "content": "/****************************************************************/\n/*   Based on mbonaci's Brackets mbo theme                      */\n/*   https://github.com/mbonaci/global/blob/master/Mbo.tmTheme  */\n/*   Create your own: http://tmtheme-editor.herokuapp.com       */\n/****************************************************************/\n\n.cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffec;}\n.cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;}\n.cm-s-mbo.CodeMirror ::selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo.CodeMirror ::-moz-selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;}\n.cm-s-mbo .CodeMirror-guttermarker { color: white; }\n.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }\n.cm-s-mbo .CodeMirror-linenumber {color: #dadada;}\n.cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;}\n\n.cm-s-mbo span.cm-comment {color: #95958a;}\n.cm-s-mbo span.cm-atom {color: #00a8c6;}\n.cm-s-mbo span.cm-number {color: #00a8c6;}\n\n.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;}\n.cm-s-mbo span.cm-keyword {color: #ffb928;}\n.cm-s-mbo span.cm-string {color: #ffcf6c;}\n.cm-s-mbo span.cm-string.cm-property {color: #ffffec;}\n\n.cm-s-mbo span.cm-variable {color: #ffffec;}\n.cm-s-mbo span.cm-variable-2 {color: #00a8c6;}\n.cm-s-mbo span.cm-def {color: #ffffec;}\n.cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;}\n.cm-s-mbo span.cm-tag {color: #9ddfe9;}\n.cm-s-mbo span.cm-link {color: #f54b07;}\n.cm-s-mbo span.cm-error {border-bottom: #636363; color: #ffffec;}\n.cm-s-mbo span.cm-qualifier {color: #ffffec;}\n\n.cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;}\n.cm-s-mbo .CodeMirror-matchingbracket {color: #222 !important;}\n.cm-s-mbo .CodeMirror-matchingtag {background: rgba(255, 255, 255, .37);}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/mdn-like.css",
    "content": "/*\n  MDN-LIKE Theme - Mozilla\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n\n  The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation\n\n*/\n.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }\n.cm-s-mdn-like .CodeMirror-selected { background: #cfc !important; }\n.cm-s-mdn-like.CodeMirror ::selection { background: #cfc; }\n.cm-s-mdn-like.CodeMirror ::-moz-selection { background: #cfc; }\n\n.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }\n.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; margin-left: 3px; }\ndiv.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }\n\n.cm-s-mdn-like .cm-keyword {  color: #6262FF; }\n.cm-s-mdn-like .cm-atom { color: #F90; }\n.cm-s-mdn-like .cm-number { color:  #ca7841; }\n.cm-s-mdn-like .cm-def { color: #8DA6CE; }\n.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }\n.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; }\n\n.cm-s-mdn-like .cm-variable { color: #07a; }\n.cm-s-mdn-like .cm-property { color: #905; }\n.cm-s-mdn-like .cm-qualifier { color: #690; }\n\n.cm-s-mdn-like .cm-operator { color: #cda869; }\n.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }\n.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }\n.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/\n.cm-s-mdn-like .cm-meta { color: #000; } /*?*/\n.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/\n.cm-s-mdn-like .cm-tag { color: #997643; }\n.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-mdn-like .cm-header { color: #FF6400; }\n.cm-s-mdn-like .cm-hr { color: #AEAEAE; }\n.cm-s-mdn-like .cm-link {   color:#ad9361; font-style:italic; text-decoration:none; }\n.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }\n\ndiv.cm-s-mdn-like .CodeMirror-activeline-background {background: #efefff;}\ndiv.cm-s-mdn-like span.CodeMirror-matchingbracket {outline:1px solid grey; color: inherit;}\n\n.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/midnight.css",
    "content": "/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */\n\n/*<!--match-->*/\n.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }\n.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }\n\n/*<!--activeline-->*/\n.cm-s-midnight .CodeMirror-activeline-background {background: #253540 !important;}\n\n.cm-s-midnight.CodeMirror {\n    background: #0F192A;\n    color: #D1EDFF;\n}\n\n.cm-s-midnight.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n\n.cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;}\n.cm-s-midnight.CodeMirror ::selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight.CodeMirror ::-moz-selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;}\n.cm-s-midnight .CodeMirror-guttermarker { color: white; }\n.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;}\n.cm-s-midnight .CodeMirror-cursor {\n    border-left: 1px solid #F8F8F0 !important;\n}\n\n.cm-s-midnight span.cm-comment {color: #428BDD;}\n.cm-s-midnight span.cm-atom {color: #AE81FF;}\n.cm-s-midnight span.cm-number {color: #D1EDFF;}\n\n.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute {color: #A6E22E;}\n.cm-s-midnight span.cm-keyword {color: #E83737;}\n.cm-s-midnight span.cm-string {color: #1DC116;}\n\n.cm-s-midnight span.cm-variable {color: #FFAA3E;}\n.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;}\n.cm-s-midnight span.cm-def {color: #4DD;}\n.cm-s-midnight span.cm-bracket {color: #D1EDFF;}\n.cm-s-midnight span.cm-tag {color: #449;}\n.cm-s-midnight span.cm-link {color: #AE81FF;}\n.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}\n\n.cm-s-midnight .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/monokai.css",
    "content": "/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;}\n.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}\n.cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;}\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}\n.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}\n\n.cm-s-monokai span.cm-comment {color: #75715e;}\n.cm-s-monokai span.cm-atom {color: #ae81ff;}\n.cm-s-monokai span.cm-number {color: #ae81ff;}\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}\n.cm-s-monokai span.cm-keyword {color: #f92672;}\n.cm-s-monokai span.cm-string {color: #e6db74;}\n\n.cm-s-monokai span.cm-variable {color: #a6e22e;}\n.cm-s-monokai span.cm-variable-2 {color: #9effff;}\n.cm-s-monokai span.cm-def {color: #fd971f;}\n.cm-s-monokai span.cm-bracket {color: #f8f8f2;}\n.cm-s-monokai span.cm-tag {color: #f92672;}\n.cm-s-monokai span.cm-link {color: #ae81ff;}\n.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}\n\n.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;}\n.cm-s-monokai .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/neat.css",
    "content": ".cm-s-neat span.cm-comment { color: #a86; }\n.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }\n.cm-s-neat span.cm-string { color: #a22; }\n.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }\n.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }\n.cm-s-neat span.cm-variable { color: black; }\n.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }\n.cm-s-neat span.cm-meta {color: #555;}\n.cm-s-neat span.cm-link { color: #3a3; }\n\n.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/neo.css",
    "content": "/* neo theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-neo.CodeMirror {\n  background-color:#ffffff;\n  color:#2e383c;\n  line-height:1.4375;\n}\n.cm-s-neo .cm-comment {color:#75787b}\n.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3}\n.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a}\n.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328}\n.cm-s-neo .cm-string {color:#b35e14}\n.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65}\n\n\n/* Editor styling */\n\n.cm-s-neo pre {\n  padding:0;\n}\n\n.cm-s-neo .CodeMirror-gutters {\n  border:none;\n  border-right:10px solid transparent;\n  background-color:transparent;\n}\n\n.cm-s-neo .CodeMirror-linenumber {\n  padding:0;\n  color:#e0e2e5;\n}\n\n.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }\n.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }\n\n.cm-s-neo div.CodeMirror-cursor {\n  width: auto;\n  border: 0;\n  background: rgba(155,157,162,0.37);\n  z-index: 1;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/night.css",
    "content": "/* Loosely based on the Midnight Textmate theme */\n\n.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-night div.CodeMirror-selected { background: #447 !important; }\n.cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-night .CodeMirror-guttermarker { color: white; }\n.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }\n.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-night span.cm-comment { color: #6900a1; }\n.cm-s-night span.cm-atom { color: #845dc4; }\n.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }\n.cm-s-night span.cm-keyword { color: #599eff; }\n.cm-s-night span.cm-string { color: #37f14a; }\n.cm-s-night span.cm-meta { color: #7678e2; }\n.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }\n.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }\n.cm-s-night span.cm-bracket { color: #8da6ce; }\n.cm-s-night span.cm-comment { color: #6900a1; }\n.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }\n.cm-s-night span.cm-link { color: #845dc4; }\n.cm-s-night span.cm-error { color: #9d1e15; }\n\n.cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;}\n.cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/paraiso-dark.css",
    "content": "/*\n\n    Name:       Paraíso (Dark)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;}\n.cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;}\n.cm-s-paraiso-dark.CodeMirror ::selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark.CodeMirror ::-moz-selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;}\n.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }\n.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }\n.cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;}\n.cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;}\n\n.cm-s-paraiso-dark span.cm-comment {color: #e96ba8;}\n.cm-s-paraiso-dark span.cm-atom {color: #815ba4;}\n.cm-s-paraiso-dark span.cm-number {color: #815ba4;}\n\n.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;}\n.cm-s-paraiso-dark span.cm-keyword {color: #ef6155;}\n.cm-s-paraiso-dark span.cm-string {color: #fec418;}\n\n.cm-s-paraiso-dark span.cm-variable {color: #48b685;}\n.cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;}\n.cm-s-paraiso-dark span.cm-def {color: #f99b15;}\n.cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;}\n.cm-s-paraiso-dark span.cm-tag {color: #ef6155;}\n.cm-s-paraiso-dark span.cm-link {color: #815ba4;}\n.cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;}\n\n.cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;}\n.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/paraiso-light.css",
    "content": "/*\n\n    Name:       Paraíso (Light)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;}\n.cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;}\n.cm-s-paraiso-light.CodeMirror ::selection { background: #b9b6b0; }\n.cm-s-paraiso-light.CodeMirror ::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;}\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;}\n.cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;}\n\n.cm-s-paraiso-light span.cm-comment {color: #e96ba8;}\n.cm-s-paraiso-light span.cm-atom {color: #815ba4;}\n.cm-s-paraiso-light span.cm-number {color: #815ba4;}\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;}\n.cm-s-paraiso-light span.cm-keyword {color: #ef6155;}\n.cm-s-paraiso-light span.cm-string {color: #fec418;}\n\n.cm-s-paraiso-light span.cm-variable {color: #48b685;}\n.cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;}\n.cm-s-paraiso-light span.cm-def {color: #f99b15;}\n.cm-s-paraiso-light span.cm-bracket {color: #41323f;}\n.cm-s-paraiso-light span.cm-tag {color: #ef6155;}\n.cm-s-paraiso-light span.cm-link {color: #815ba4;}\n.cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;}\n\n.cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;}\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/pastel-on-dark.css",
    "content": "/**\n * Pastel On Dark theme ported from ACE editor\n * @license MIT\n * @copyright AtomicPages LLC 2014\n * @author Dennis Thompson, AtomicPages LLC\n * @version 1.1\n * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme\n */\n\n.cm-s-pastel-on-dark.CodeMirror {\n\tbackground: #2c2827;\n\tcolor: #8F938F;\n\tline-height: 1.5;\n\tfont-size: 14px;\n}\n.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2) !important; }\n.cm-s-pastel-on-dark.CodeMirror ::selection { background: rgba(221,240,255,0.2); }\n.cm-s-pastel-on-dark.CodeMirror ::-moz-selection { background: rgba(221,240,255,0.2); }\n\n.cm-s-pastel-on-dark .CodeMirror-gutters {\n\tbackground: #34302f;\n\tborder-right: 0px;\n\tpadding: 0 3px;\n}\n.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }\n.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }\n.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }\n.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }\n.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }\n.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-string { color: #66A968; }\n.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }\n.cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }\n.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }\n.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-error {\n\tbackground: #757aD8;\n\tcolor: #f8f8f0;\n}\n.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031) !important; }\n.cm-s-pastel-on-dark .CodeMirror-matchingbracket {\n\tborder: 1px solid rgba(255,255,255,0.25);\n\tcolor: #8F938F !important;\n\tmargin: -1px -1px 0 -1px;\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/rubyblue.css",
    "content": ".cm-s-rubyblue.CodeMirror { background: #112435; color: white; }\n.cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; }\n.cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }\n.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }\n.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }\n.cm-s-rubyblue .CodeMirror-linenumber { color: white; }\n.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }\n.cm-s-rubyblue span.cm-atom { color: #F4C20B; }\n.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }\n.cm-s-rubyblue span.cm-keyword { color: #F0F; }\n.cm-s-rubyblue span.cm-string { color: #F08047; }\n.cm-s-rubyblue span.cm-meta { color: #F0F; }\n.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }\n.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }\n.cm-s-rubyblue span.cm-bracket { color: #F0F; }\n.cm-s-rubyblue span.cm-link { color: #F4C20B; }\n.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }\n.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }\n.cm-s-rubyblue span.cm-error { color: #AF2018; }\n\n.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/solarized.css",
    "content": "/*\nSolarized theme for code-mirror\nhttp://ethanschoonover.com/solarized\n*/\n\n/*\nSolarized color pallet\nhttp://ethanschoonover.com/solarized/img/solarized-palette.png\n*/\n\n.solarized.base03 { color: #002b36; }\n.solarized.base02 { color: #073642; }\n.solarized.base01 { color: #586e75; }\n.solarized.base00 { color: #657b83; }\n.solarized.base0 { color: #839496; }\n.solarized.base1 { color: #93a1a1; }\n.solarized.base2 { color: #eee8d5; }\n.solarized.base3  { color: #fdf6e3; }\n.solarized.solar-yellow  { color: #b58900; }\n.solarized.solar-orange  { color: #cb4b16; }\n.solarized.solar-red { color: #dc322f; }\n.solarized.solar-magenta { color: #d33682; }\n.solarized.solar-violet  { color: #6c71c4; }\n.solarized.solar-blue { color: #268bd2; }\n.solarized.solar-cyan { color: #2aa198; }\n.solarized.solar-green { color: #859900; }\n\n/* Color scheme for code-mirror */\n\n.cm-s-solarized {\n  line-height: 1.45em;\n  color-profile: sRGB;\n  rendering-intent: auto;\n}\n.cm-s-solarized.cm-s-dark {\n  color: #839496;\n  background-color:  #002b36;\n  text-shadow: #002b36 0 1px;\n}\n.cm-s-solarized.cm-s-light {\n  background-color: #fdf6e3;\n  color: #657b83;\n  text-shadow: #eee8d5 0 1px;\n}\n\n.cm-s-solarized .CodeMirror-widget {\n  text-shadow: none;\n}\n\n\n.cm-s-solarized .cm-keyword { color: #cb4b16 }\n.cm-s-solarized .cm-atom { color: #d33682; }\n.cm-s-solarized .cm-number { color: #d33682; }\n.cm-s-solarized .cm-def { color: #2aa198; }\n\n.cm-s-solarized .cm-variable { color: #268bd2; }\n.cm-s-solarized .cm-variable-2 { color: #b58900; }\n.cm-s-solarized .cm-variable-3 { color: #6c71c4; }\n\n.cm-s-solarized .cm-property { color: #2aa198; }\n.cm-s-solarized .cm-operator {color: #6c71c4;}\n\n.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }\n\n.cm-s-solarized .cm-string { color: #859900; }\n.cm-s-solarized .cm-string-2 { color: #b58900; }\n\n.cm-s-solarized .cm-meta { color: #859900; }\n.cm-s-solarized .cm-qualifier { color: #b58900; }\n.cm-s-solarized .cm-builtin { color: #d33682; }\n.cm-s-solarized .cm-bracket { color: #cb4b16; }\n.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }\n.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }\n.cm-s-solarized .cm-tag { color: #93a1a1 }\n.cm-s-solarized .cm-attribute {  color: #2aa198; }\n.cm-s-solarized .cm-header { color: #586e75; }\n.cm-s-solarized .cm-quote { color: #93a1a1; }\n.cm-s-solarized .cm-hr {\n  color: transparent;\n  border-top: 1px solid #586e75;\n  display: block;\n}\n.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }\n.cm-s-solarized .cm-special { color: #6c71c4; }\n.cm-s-solarized .cm-em {\n  color: #999;\n  text-decoration: underline;\n  text-decoration-style: dotted;\n}\n.cm-s-solarized .cm-strong { color: #eee; }\n.cm-s-solarized .cm-error,\n.cm-s-solarized .cm-invalidchar {\n  color: #586e75;\n  border-bottom: 1px dotted #dc322f;\n}\n\n.cm-s-solarized.cm-s-dark .CodeMirror-selected { background: #073642; }\n.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }\n.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection { background: rgba(7, 54, 66, 0.99); }\n\n.cm-s-solarized.cm-s-light .CodeMirror-selected { background: #eee8d5; }\n.cm-s-solarized.cm-s-light.CodeMirror ::selection { background: #eee8d5; }\n.cm-s-solarized.cm-s-lightCodeMirror ::-moz-selection { background: #eee8d5; }\n\n/* Editor styling */\n\n\n\n/* Little shadow on the view-port of the buffer view */\n.cm-s-solarized.CodeMirror {\n  -moz-box-shadow: inset 7px 0 12px -6px #000;\n  -webkit-box-shadow: inset 7px 0 12px -6px #000;\n  box-shadow: inset 7px 0 12px -6px #000;\n}\n\n/* Gutter border and some shadow from it  */\n.cm-s-solarized .CodeMirror-gutters {\n  border-right: 1px solid;\n}\n\n/* Gutter colors and line number styling based of color scheme (dark / light) */\n\n/* Dark */\n.cm-s-solarized.cm-s-dark .CodeMirror-gutters {\n  background-color:  #002b36;\n  border-color: #00232c;\n}\n\n.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {\n  text-shadow: #021014 0 -1px;\n}\n\n/* Light */\n.cm-s-solarized.cm-s-light .CodeMirror-gutters {\n  background-color: #fdf6e3;\n  border-color: #eee8d5;\n}\n\n/* Common */\n.cm-s-solarized .CodeMirror-linenumber {\n  color: #586e75;\n  padding: 0 5px;\n}\n.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }\n.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }\n.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }\n\n.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {\n  color: #586e75;\n}\n\n.cm-s-solarized .CodeMirror-lines .CodeMirror-cursor {\n  border-left: 1px solid #819090;\n}\n\n/*\nActive line. Negative margin compensates left padding of the text in the\nview-port\n*/\n.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {\n  background: rgba(255, 255, 255, 0.10);\n}\n.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.10);\n}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/the-matrix.css",
    "content": ".cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }\n.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; }\n.cm-s-the-matrix.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }\n.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }\n.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }\n.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }\n.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; }\n\n.cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;}\n.cm-s-the-matrix span.cm-atom {color: #3FF;}\n.cm-s-the-matrix span.cm-number {color: #FFB94F;}\n.cm-s-the-matrix span.cm-def {color: #99C;}\n.cm-s-the-matrix span.cm-variable {color: #F6C;}\n.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}\n.cm-s-the-matrix span.cm-variable-3 {color: #96F;}\n.cm-s-the-matrix span.cm-property {color: #62FFA0;}\n.cm-s-the-matrix span.cm-operator {color: #999}\n.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}\n.cm-s-the-matrix span.cm-string {color: #39C;}\n.cm-s-the-matrix span.cm-meta {color: #C9F;}\n.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}\n.cm-s-the-matrix span.cm-builtin {color: #30a;}\n.cm-s-the-matrix span.cm-bracket {color: #cc7;}\n.cm-s-the-matrix span.cm-tag {color: #FFBD40;}\n.cm-s-the-matrix span.cm-attribute {color: #FFF700;}\n.cm-s-the-matrix span.cm-error {color: #FF0000;}\n\n.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/tomorrow-night-bright.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Bright\n    Author:     Chris Kempson\n\n    Port done by Gerard Braad <me@gbraad.nl>\n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror {background: #000000; color: #eaeaea;}\n.cm-s-tomorrow-night-bright div.CodeMirror-selected {background: #424242 !important;}\n.cm-s-tomorrow-night-bright .CodeMirror-gutters {background: #000000; border-right: 0px;}\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber {color: #424242;}\n.cm-s-tomorrow-night-bright .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}\n\n.cm-s-tomorrow-night-bright span.cm-comment {color: #d27b53;}\n.cm-s-tomorrow-night-bright span.cm-atom {color: #a16a94;}\n.cm-s-tomorrow-night-bright span.cm-number {color: #a16a94;}\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute {color: #99cc99;}\n.cm-s-tomorrow-night-bright span.cm-keyword {color: #d54e53;}\n.cm-s-tomorrow-night-bright span.cm-string {color: #e7c547;}\n\n.cm-s-tomorrow-night-bright span.cm-variable {color: #b9ca4a;}\n.cm-s-tomorrow-night-bright span.cm-variable-2 {color: #7aa6da;}\n.cm-s-tomorrow-night-bright span.cm-def {color: #e78c45;}\n.cm-s-tomorrow-night-bright span.cm-bracket {color: #eaeaea;}\n.cm-s-tomorrow-night-bright span.cm-tag {color: #d54e53;}\n.cm-s-tomorrow-night-bright span.cm-link {color: #a16a94;}\n.cm-s-tomorrow-night-bright span.cm-error {background: #d54e53; color: #6A6A6A;}\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background {background: #2a2a2a !important;}\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/tomorrow-night-eighties.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Eighties\n    Author:     Chris Kempson\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;}\n.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;}\n.cm-s-tomorrow-night-eighties.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;}\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}\n.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}\n\n.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}\n.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}\n.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}\n\n.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}\n.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}\n.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}\n\n.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}\n.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}\n.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}\n.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}\n.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}\n.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}\n.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;}\n\n.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;}\n.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/twilight.css",
    "content": ".cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/\n.cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/\n.cm-s-twilight.CodeMirror ::selection { background: rgba(50, 50, 50, 0.99); }\n.cm-s-twilight.CodeMirror ::-moz-selection { background: rgba(50, 50, 50, 0.99); }\n\n.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }\n.cm-s-twilight .CodeMirror-guttermarker { color: white; }\n.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }\n.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }\n.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-twilight .cm-keyword {  color: #f9ee98; } /**/\n.cm-s-twilight .cm-atom { color: #FC0; }\n.cm-s-twilight .cm-number { color:  #ca7841; } /**/\n.cm-s-twilight .cm-def { color: #8DA6CE; }\n.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/\n.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/\n.cm-s-twilight .cm-operator { color: #cda869; } /**/\n.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/\n.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/\n.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/\n.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/\n.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/\n.cm-s-twilight .cm-tag { color: #997643; } /**/\n.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-twilight .cm-header { color: #FF6400; }\n.cm-s-twilight .cm-hr { color: #AEAEAE; }\n.cm-s-twilight .cm-link {   color:#ad9361; font-style:italic; text-decoration:none; } /**/\n.cm-s-twilight .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/vibrant-ink.css",
    "content": "/* Taken from the popular Visual Studio Vibrant Ink Schema */\n\n.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }\n.cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; }\n.cm-s-vibrant-ink.CodeMirror ::selection { background: rgba(53, 73, 60, 0.99); }\n.cm-s-vibrant-ink.CodeMirror ::-moz-selection { background: rgba(53, 73, 60, 0.99); }\n\n.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-vibrant-ink .cm-keyword {  color: #CC7832; }\n.cm-s-vibrant-ink .cm-atom { color: #FC0; }\n.cm-s-vibrant-ink .cm-number { color:  #FFEE98; }\n.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }\n.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D }\n.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D }\n.cm-s-vibrant-ink .cm-operator { color: #888; }\n.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }\n.cm-s-vibrant-ink .cm-string { color:  #A5C25C }\n.cm-s-vibrant-ink .cm-string-2 { color: red }\n.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }\n.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-header { color: #FF6400; }\n.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }\n.cm-s-vibrant-ink .cm-link { color: blue; }\n.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/xq-dark.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-selected { background: #27007A !important; }\n.cm-s-xq-dark.CodeMirror ::selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark.CodeMirror ::-moz-selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}\n.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}\n.cm-s-xq-dark span.cm-number {color: #164;}\n.cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;}\n.cm-s-xq-dark span.cm-variable {color: #FFF;}\n.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}\n.cm-s-xq-dark span.cm-variable-3 {color: #DDD;}\n.cm-s-xq-dark span.cm-property {}\n.cm-s-xq-dark span.cm-operator {}\n.cm-s-xq-dark span.cm-comment {color: gray;}\n.cm-s-xq-dark span.cm-string {color: #9FEE00;}\n.cm-s-xq-dark span.cm-meta {color: yellow;}\n.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}\n.cm-s-xq-dark span.cm-builtin {color: #30a;}\n.cm-s-xq-dark span.cm-bracket {color: #cc7;}\n.cm-s-xq-dark span.cm-tag {color: #FFBD40;}\n.cm-s-xq-dark span.cm-attribute {color: #FFF700;}\n.cm-s-xq-dark span.cm-error {color: #f00;}\n\n.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-xq-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/xq-light.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-light span.cm-keyword {line-height: 1em; font-weight: bold; color: #5A5CAD; }\n.cm-s-xq-light span.cm-atom {color: #6C8CD5;}\n.cm-s-xq-light span.cm-number {color: #164;}\n.cm-s-xq-light span.cm-def {text-decoration:underline;}\n.cm-s-xq-light span.cm-variable {color: black; }\n.cm-s-xq-light span.cm-variable-2 {color:black;}\n.cm-s-xq-light span.cm-variable-3 {color: black; }\n.cm-s-xq-light span.cm-property {}\n.cm-s-xq-light span.cm-operator {}\n.cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;}\n.cm-s-xq-light span.cm-string {color: red;}\n.cm-s-xq-light span.cm-meta {color: yellow;}\n.cm-s-xq-light span.cm-qualifier {color: grey}\n.cm-s-xq-light span.cm-builtin {color: #7EA656;}\n.cm-s-xq-light span.cm-bracket {color: #cc7;}\n.cm-s-xq-light span.cm-tag {color: #3F7F7F;}\n.cm-s-xq-light span.cm-attribute {color: #7F007F;}\n.cm-s-xq-light span.cm-error {color: #f00;}\n\n.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;}"
  },
  {
    "path": "public/static/home/editormd/lib/codemirror/theme/zenburn.css",
    "content": "/**\n * \"\n *  Using Zenburn color palette from the Emacs Zenburn Theme\n *  https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el\n *\n *  Also using parts of https://github.com/xavi/coderay-lighttable-theme\n * \"\n * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css\n */\n\n.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }\n.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }\n.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white !important; }\n.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }\n.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }\n.cm-s-zenburn span.cm-comment { color: #7f9f7f; }\n.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }\n.cm-s-zenburn span.cm-atom { color: #bfebbf; }\n.cm-s-zenburn span.cm-def { color: #dcdccc; }\n.cm-s-zenburn span.cm-variable { color: #dfaf8f; }\n.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }\n.cm-s-zenburn span.cm-string { color: #cc9393; }\n.cm-s-zenburn span.cm-string-2 { color: #cc9393; }\n.cm-s-zenburn span.cm-number { color: #dcdccc; }\n.cm-s-zenburn span.cm-tag { color: #93e0e3; }\n.cm-s-zenburn span.cm-property { color: #dfaf8f; }\n.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }\n.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }\n.cm-s-zenburn span.cm-meta { color: #f0dfaf; }\n.cm-s-zenburn span.cm-header { color: #f0efd0; }\n.cm-s-zenburn span.cm-operator { color: #f0efd0; }\n.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }\n.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }\n.cm-s-zenburn .CodeMirror-activeline { background: #000000; }\n.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }\n.cm-s-zenburn .CodeMirror-selected { background: #545454; }\n.cm-s-zenburn .CodeMirror-focused .CodeMirror-selected { background: #4f4f4f; }\n"
  },
  {
    "path": "public/static/home/editormd/package.json",
    "content": "{\n  \"name\": \"editor.md\",\n  \"version\": \"1.5.0\",\n  \"description\": \"Open source online markdown editor.\",\n  \"directories\": {\n    \"doc\": \"docs\",\n    \"example\": \"examples\",\n    \"test\": \"tests\"\n  },\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/pandao/editor.md.git\"\n  },\n  \"keywords\": [\n    \"editor.md\",\n    \"markdown\",\n    \"editor\"\n  ],\n  \"author\": \"Pandao\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/pandao/editor.md/issues\"\n  },\n  \"homepage\": \"https://github.com/pandao/editor.md\",\n  \"devDependencies\": {\n    \"dateformatter\": \"^0.1.0\",\n    \"gulp\": \"^3.8.11\",\n    \"gulp-concat\": \"^2.4.2\",\n    \"gulp-header\": \"^1.2.2\",\n    \"gulp-jshint\": \"^1.9.0\",\n    \"gulp-minify-css\": \"^0.4.4\",\n    \"gulp-notify\": \"^2.1.0\",\n    \"gulp-rename\": \"^1.2.0\",\n    \"gulp-replace\": \"^0.5.3\",\n    \"gulp-ruby-sass\": \"^1.0.1\",\n    \"gulp-uglifyjs\": \"^0.6.1\",\n    \"gulp-util\": \"^3.0.1\"\n  }\n}\n"
  },
  {
    "path": "public/static/home/editormd/plugins/code-block-dialog/code-block-dialog.js",
    "content": "/*!\n * Code block dialog plugin for Editor.md\n *\n * @file        code-block-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\t\tvar cmEditor;\n\t\tvar pluginName    = \"code-block-dialog\";\n    \n\t\t// for CodeBlock dialog select\n\t\tvar codeLanguages = exports.codeLanguages = {\n\t\t\tasp           : [\"ASP\", \"vbscript\"],\n\t\t\tactionscript  : [\"ActionScript(3.0)/Flash/Flex\", \"clike\"],\n\t\t\tbash          : [\"Bash/Bat\", \"shell\"],\n\t\t\tcss           : [\"CSS\", \"css\"],\n\t\t\tc             : [\"C\", \"clike\"],\n\t\t\tcpp           : [\"C++\", \"clike\"],\n\t\t\tcsharp        : [\"C#\", \"clike\"],\n\t\t\tcoffeescript  : [\"CoffeeScript\", \"coffeescript\"],\n\t\t\td             : [\"D\", \"d\"],\n\t\t\tdart          : [\"Dart\", \"dart\"],\n\t\t\tdelphi        : [\"Delphi/Pascal\", \"pascal\"],\n\t\t\terlang        : [\"Erlang\", \"erlang\"],\n\t\t\tgo            : [\"Golang\", \"go\"],\n\t\t\tgroovy        : [\"Groovy\", \"groovy\"],\n\t\t\thtml          : [\"HTML\", \"text/html\"],\n\t\t\tjava          : [\"Java\", \"clike\"],\n\t\t\tjson          : [\"JSON\", \"text/json\"],\n\t\t\tjavascript    : [\"Javascript\", \"javascript\"],\n\t\t\tlua           : [\"Lua\", \"lua\"],\n\t\t\tless          : [\"LESS\", \"css\"],\n\t\t\tmarkdown      : [\"Markdown\", \"gfm\"],\n\t\t\t\"objective-c\" : [\"Objective-C\", \"clike\"],\n\t\t\tphp           : [\"PHP\", \"php\"],\n\t\t\tperl          : [\"Perl\", \"perl\"],\n\t\t\tpython        : [\"Python\", \"python\"],\n\t\t\tr             : [\"R\", \"r\"],\n\t\t\trst           : [\"reStructedText\", \"rst\"],\n\t\t\truby          : [\"Ruby\", \"ruby\"],\n\t\t\tsql           : [\"SQL\", \"sql\"],\n\t\t\tsass          : [\"SASS/SCSS\", \"sass\"],\n\t\t\tshell         : [\"Shell\", \"shell\"],\n\t\t\tscala         : [\"Scala\", \"clike\"],\n\t\t\tswift         : [\"Swift\", \"clike\"],\n\t\t\tvb            : [\"VB/VBScript\", \"vb\"],\n\t\t\txml           : [\"XML\", \"text/xml\"],\n\t\t\tyaml          : [\"YAML\", \"yaml\"]\n\t\t};\n\n\t\texports.fn.codeBlockDialog = function() {\n\n\t\t\tvar _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.codeBlock;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"option:first\").attr(\"selected\", \"selected\");\n                dialog.find(\"textarea\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else \n            {      \n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"code-toolbar\\\">\" +\n                                        dialogLang.selectLabel + \"<select><option selected=\\\"selected\\\" value=\\\"\\\">\" + dialogLang.selectDefaultText + \"</option></select>\" +\n                                    \"</div>\" +\n                                    \"<textarea placeholder=\\\"\" + dialogLang.placeholder + \"\\\" style=\\\"display:none;\\\">\" + selection + \"</textarea>\";\n\n                dialog = this.createDialog({\n                    name   : dialogName,\n                    title  : dialogLang.title,\n                    width  : 780,\n                    height : 565,\n                    mask   : settings.dialogShowMask,\n                    drag   : settings.dialogDraggable,\n                    content    : dialogHTML,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var codeTexts  = this.find(\"textarea\").val();\n                            var langName   = this.find(\"select\").val();\n\n                            if (langName === \"\")\n                            {\n                                alert(lang.dialog.codeBlock.unselectedLanguageAlert);\n                                return false;\n                            }\n\n                            if (codeTexts === \"\")\n                            {\n                                alert(lang.dialog.codeBlock.codeEmptyAlert);\n                                return false;\n                            }\n\n                            langName = (langName === \"other\") ? \"\" : langName;\n\n                            cm.replaceSelection([\"```\" + langName, codeTexts, \"```\"].join(\"\\n\"));\n\n                            if (langName === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 3);\n                            }\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\n\t\t\tvar langSelect = dialog.find(\"select\");\n\n\t\t\tif (langSelect.find(\"option\").length === 1) \n\t\t\t{\n\t\t\t\tfor (var key in codeLanguages)\n\t\t\t\t{\n\t\t\t\t\tvar codeLang = codeLanguages[key];\n\t\t\t\t\tlangSelect.append(\"<option value=\\\"\" + key + \"\\\" mode=\\\"\" + codeLang[1] + \"\\\">\" + codeLang[0] + \"</option>\");\n\t\t\t\t}\n\n\t\t\t\tlangSelect.append(\"<option value=\\\"other\\\">\" + dialogLang.otherLanguage + \"</option>\");\n\t\t\t}\n\t\t\t\n\t\t\tvar mode   = langSelect.find(\"option:selected\").attr(\"mode\");\n\t\t\n\t\t\tvar cmConfig = {\n\t\t\t\tmode                      : (mode) ? mode : \"text/html\",\n\t\t\t\ttheme                     : settings.theme,\n\t\t\t\ttabSize                   : 4,\n\t\t\t\tautofocus                 : true,\n\t\t\t\tautoCloseTags             : true,\n\t\t\t\tindentUnit                : 4,\n\t\t\t\tlineNumbers               : true,\n\t\t\t\tlineWrapping              : true,\n\t\t\t\textraKeys                 : {\"Ctrl-Q\": function(cm){ cm.foldCode(cm.getCursor()); }},\n\t\t\t\tfoldGutter                : true,\n\t\t\t\tgutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n\t\t\t\tmatchBrackets             : true,\n\t\t\t\tindentWithTabs            : true,\n\t\t\t\tstyleActiveLine           : true,\n\t\t\t\tstyleSelectedText         : true,\n\t\t\t\tautoCloseBrackets         : true,\n\t\t\t\tshowTrailingSpace         : true,\n\t\t\t\thighlightSelectionMatches : true\n\t\t\t};\n\t\t\t\n\t\t\tvar textarea = dialog.find(\"textarea\");\n\t\t\tvar cmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\tif (dialog.find(\".CodeMirror\").length < 1) \n\t\t\t{\n\t\t\t\tcmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig);\n\t\t\t\tcmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\t\tcmObj.css({\n\t\t\t\t\t\"float\"   : \"none\", \n\t\t\t\t\tmargin    : \"8px 0\",\n\t\t\t\t\tborder    : \"1px solid #ddd\",\n\t\t\t\t\tfontSize  : settings.fontSize,\n\t\t\t\t\twidth     : \"100%\",\n\t\t\t\t\theight    : \"390px\"\n\t\t\t\t});\n\n\t\t\t\tcmEditor.on(\"change\", function(cm) {\n\t\t\t\t\ttextarea.val(cm.getValue());\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\n\t\t\t\tcmEditor.setValue(cm.getSelection());\n\t\t\t}\n\n\t\t\tlangSelect.change(function(){\n\t\t\t\tvar _mode = $(this).find(\"option:selected\").attr(\"mode\");\n\t\t\t\tcmEditor.setOption(\"mode\", _mode);\n\t\t\t});\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/emoji-dialog/emoji-dialog.js",
    "content": "/*!\n * Emoji dialog plugin for Editor.md\n *\n * @file        emoji-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $             = jQuery;\n\t\tvar pluginName    = \"emoji-dialog\";\n\t\tvar emojiTabIndex = 0;\n\t\tvar emojiData     = [];\n        var selecteds     = [];\n\n\t\tvar logoPrefix    = \"editormd-logo\";\n\t\tvar logos         = [\n\t\t\tlogoPrefix,\n\t\t\tlogoPrefix + \"-1x\",\n\t\t\tlogoPrefix + \"-2x\",\n\t\t\tlogoPrefix + \"-3x\",\n\t\t\tlogoPrefix + \"-4x\",\n\t\t\tlogoPrefix + \"-5x\",\n\t\t\tlogoPrefix + \"-6x\",\n\t\t\tlogoPrefix + \"-7x\",\n\t\t\tlogoPrefix + \"-8x\"\n\t\t];\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji 表情\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji 表情\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji 表情\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji 表情\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.emojiDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar settings    = _this.settings;\n            \n            if (!settings.emoji)\n            {\n                alert(\"settings.emoji == false\");\n                return ;\n            }\n            \n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.emoji;\n\t\t\t\n\t\t\tvar dialogContent = [\n\t\t\t\t\"<div class=\\\"\" + classPrefix + \"emoji-dialog-box\\\" style=\\\"width: 760px;height: 334px;margin-bottom: 8px;overflow: hidden;\\\">\",\n\t\t\t\t\"<div class=\\\"\" + classPrefix + \"tab\\\"></div>\",\n\t\t\t\t\"</div>\",\n\t\t\t].join(\"\\n\");\n\n\t\t\tcm.focus();\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tselecteds = [];\n\t\t\t\tdialog.find(\"a\").removeClass(\"selected\");\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 800,\n\t\t\t\t\theight     : 475,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tenter  : [lang.buttons.enter, function() {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcm.replaceSelection(selecteds.join(\" \"));\n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tcancel : [lang.buttons.cancel, function() {                           \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tvar category = [\"Github emoji\", \"Twemoji\", \"Font awesome\", \"Editor.md logo\"];\n\t\t\tvar tab      = dialog.find(\".\" + classPrefix + \"tab\");\n\n\t\t\tif (tab.html() === \"\") \n\t\t\t{\n\t\t\t\tvar head = \"<ul class=\\\"\" + classPrefix + \"tab-head\\\">\";\n\n\t\t\t\tfor (var i = 0; i<4; i++) {\n\t\t\t\t\tvar active = (i === 0) ? \" class=\\\"active\\\"\" : \"\";\n\t\t\t\t\thead += \"<li\" + active + \"><a href=\\\"javascript:;\\\">\" + category[i] + \"</a></li>\";\n\t\t\t\t}\n\n\t\t\t\thead += \"</ul>\";\n\n\t\t\t\ttab.append(head);\n\n\t\t\t\tvar container = \"<div class=\\\"\" + classPrefix + \"tab-container\\\">\";\n\n\t\t\t\tfor (var x = 0; x < 4; x++) \n                {\n\t\t\t\t\tvar display = (x === 0) ? \"\" : \"display:none;\";\n\t\t\t\t\tcontainer += \"<div class=\\\"\" + classPrefix + \"tab-box\\\" style=\\\"height: 260px;overflow: hidden;overflow-y: auto;\" + display + \"\\\"></div>\";\n\t\t\t\t}\n\n\t\t\t\tcontainer += \"</div>\";\n\n\t\t\t\ttab.append(container);  \n\t\t\t}\n            \n\t\t\tvar tabBoxs = tab.find(\".\" + classPrefix + \"tab-box\");\n            var emojiCategories = [\"github-emoji\", \"twemoji\", \"font-awesome\", logoPrefix];\n\n\t\t\tvar drawTable = function() {\n                var cname = emojiCategories[emojiTabIndex];\n\t\t\t\tvar $data = emojiData[cname];\n                var $tab  = tabBoxs.eq(emojiTabIndex);\n\n\t\t\t\tif ($tab.html() !== \"\") {\n                    //console.log(\"break =>\", cname);\n                    return ;\n                }\n                \n                var pagination = function(data, type) {\n                    var rowNumber = (type === \"editormd-logo\") ? \"5\" : 20;\n                    var pageTotal = Math.ceil(data.length / rowNumber);\n                    var table     = \"<div class=\\\"\" + classPrefix + \"grid-table\\\">\";\n\n                    for (var i = 0; i < pageTotal; i++)\n                    {\n                        var row = \"<div class=\\\"\" + classPrefix + \"grid-table-row\\\">\";\n\n                        for (var x = 0; x < rowNumber; x++)\n                        {\n                            var emoji = $.trim(data[(i * rowNumber) + x]);\n                            \n                            if (typeof emoji !== \"undefined\" && emoji !== \"\")\n                            {\n                                var img = \"\", icon = \"\";\n                                \n                                if (type === \"github-emoji\")\n                                {\n                                    var src = (emoji === \"+1\") ? \"plus1\" : emoji;\n                                    src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                                    src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n                                    \n                                    src     = exports.emoji.path + src + exports.emoji.ext;\n                                    img     = \"<img src=\\\"\" + src + \"\\\" width=\\\"24\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + emoji + \"&#58;\\\" alt=\\\"&#58;\" + emoji + \"&#58;\\\" />\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":\" + emoji + \":\\\" title=\\\":\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + img + \"</a>\";\n                                }\n                                else if (type === \"twemoji\")\n                                {\n                                    var twemojiSrc = exports.twemoji.path + emoji + exports.twemoji.ext;\n                                    img = \"<img src=\\\"\" + twemojiSrc + \"\\\" width=\\\"24\\\" title=\\\"twemoji-\" + emoji + \"\\\" alt=\\\"twemoji-\" + emoji + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":tw-\" + emoji + \":\\\" title=\\\":tw-\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + img + \"</a>\";\n                                }\n                                else if (type === \"font-awesome\")\n                                {\n                                    icon = \"<i class=\\\"fa fa-\" + emoji + \" fa-emoji\\\" title=\\\"\" + emoji + \"\\\"></i>\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":fa-\" + emoji + \":\\\" title=\\\":fa-\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + icon + \"</a>\";\n                                }\n                                else if (type === \"editormd-logo\")\n                                {\n                                    icon = \"<i class=\\\"\" + emoji + \"\\\" title=\\\"Editor.md logo (\" + emoji + \")\\\"></i>\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":\" + emoji + \":\\\" title=\\\":\" + emoji + \":\\\" style=\\\"width:20%;\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + icon + \"</a>\";\n                                }\n                            }\n                            else\n                            {\n                                row += \"<a href=\\\"javascript:;\\\" value=\\\"\\\"></a>\";                        \n                            }\n                        }\n\n                        row += \"</div>\";\n\n                        table += row;\n                    }\n\n                    table += \"</div>\";\n                    \n                    return table;\n                };\n                \n                if (emojiTabIndex === 0)\n                {\n                    for (var i = 0, len = $data.length; i < len; i++)\n                    {\n                        var h4Style = (i === 0) ? \" style=\\\"margin: 0 0 10px;\\\"\" : \" style=\\\"margin: 10px 0;\\\"\";\n                        $tab.append(\"<h4\" + h4Style + \">\" + $data[i].category + \"</h4>\");\n                        $tab.append(pagination($data[i].list, cname));\n                    }\n                }\n                else\n                {\n                    $tab.append(pagination($data, cname));\n                }\n\n\t\t\t\t$tab.find(\".\" + classPrefix + \"emoji-btn\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\t\t$(this).toggleClass(\"selected\");\n\n\t\t\t\t\tif ($(this).hasClass(\"selected\")) \n\t\t\t\t\t{\n\t\t\t\t\t\tselecteds.push($(this).attr(\"value\"));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tif (emojiData.length < 1) \n\t\t\t{            \n\t\t\t\tif (typeof dialog.loading === \"function\") {\n                    dialog.loading(true);\n                }\n\n\t\t\t\t$.getJSON(path + \"emoji.json?temp=\" + Math.random(), function(json) {\n\n\t\t\t\t\tif (typeof dialog.loading === \"function\") {\n                        dialog.loading(false);\n                    }\n\n\t\t\t\t\temojiData = json;\n                    emojiData[logoPrefix] = logos;\n\t\t\t\t\tdrawTable();\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\t\t\t\tdrawTable();\n\t\t\t}\n\n\t\t\ttab.find(\"li\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\tvar $this     = $(this);\n\t\t\t\temojiTabIndex = $this.index();\n\n\t\t\t\t$this.addClass(\"active\").siblings().removeClass(\"active\");\n\t\t\t\ttabBoxs.eq(emojiTabIndex).show().siblings().hide();\n\t\t\t\tdrawTable();\n\t\t\t});\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/emoji-dialog/emoji.json",
    "content": "{\n\t\"github-emoji\" : [\n\t\t{\n\t\t\t\"category\" :\"People\",\n\t\t\t\"list\" : [\"bowtie\",\"smile\",\"laughing\",\"blush\",\"smiley\",\"relaxed\",\"smirk\",\"heart_eyes\",\"kissing_heart\",\"kissing_closed_eyes\",\"flushed\",\"relieved\",\"satisfied\",\"grin\",\"wink\",\"stuck_out_tongue_winking_eye\",\"stuck_out_tongue_closed_eyes\",\"grinning\",\"kissing\",\"kissing_smiling_eyes\",\"stuck_out_tongue\",\"sleeping\",\"worried\",\"frowning\",\"anguished\",\"open_mouth\",\"grimacing\",\"confused\",\"hushed\",\"expressionless\",\"unamused\",\"sweat_smile\",\"sweat\",\"disappointed_relieved\",\"weary\",\"pensive\",\"disappointed\",\"confounded\",\"fearful\",\"cold_sweat\",\"persevere\",\"cry\",\"sob\",\"joy\",\"astonished\",\"scream\",\"neckbeard\",\"tired_face\",\"angry\",\"rage\",\"triumph\",\"sleepy\",\"yum\",\"mask\",\"sunglasses\",\"dizzy_face\",\"imp\",\"smiling_imp\",\"neutral_face\",\"no_mouth\",\"innocent\",\"alien\",\"yellow_heart\",\"blue_heart\",\"purple_heart\",\"heart\",\"green_heart\",\"broken_heart\",\"heartbeat\",\"heartpulse\",\"two_hearts\",\"revolving_hearts\",\"cupid\",\"sparkling_heart\",\"sparkles\",\"star\",\"star2\",\"dizzy\",\"boom\",\"collision\",\"anger\",\"exclamation\",\"question\",\"grey_exclamation\",\"grey_question\",\"zzz\",\"dash\",\"sweat_drops\",\"notes\",\"musical_note\",\"fire\",\"hankey\",\"poop\",\"shit\",\"+1\",\"thumbsup\",\"-1\",\"thumbsdown\",\"ok_hand\",\"punch\",\"facepunch\",\"fist\",\"v\",\"wave\",\"hand\",\"raised_hand\",\"open_hands\",\"point_up\",\"point_down\",\"point_left\",\"point_right\",\"raised_hands\",\"pray\",\"point_up_2\",\"clap\",\"muscle\",\"metal\",\"fu\",\"walking\",\"runner\",\"running\",\"couple\",\"family\",\"two_men_holding_hands\",\"two_women_holding_hands\",\"dancer\",\"dancers\",\"ok_woman\",\"no_good\",\"information_desk_person\",\"raising_hand\",\"bride_with_veil\",\"person_with_pouting_face\",\"person_frowning\",\"bow\",\"couplekiss\",\"couple_with_heart\",\"massage\",\"haircut\",\"nail_care\",\"boy\",\"girl\",\"woman\",\"man\",\"baby\",\"older_woman\",\"older_man\",\"person_with_blond_hair\",\"man_with_gua_pi_mao\",\"man_with_turban\",\"construction_worker\",\"cop\",\"angel\",\"princess\",\"smiley_cat\",\"smile_cat\",\"heart_eyes_cat\",\"kissing_cat\",\"smirk_cat\",\"scream_cat\",\"crying_cat_face\",\"joy_cat\",\"pouting_cat\",\"japanese_ogre\",\"japanese_goblin\",\"see_no_evil\",\"hear_no_evil\",\"speak_no_evil\",\"guardsman\",\"skull\",\"feet\",\"lips\",\"kiss\",\"droplet\",\"ear\",\"eyes\",\"nose\",\"tongue\",\"love_letter\",\"bust_in_silhouette\",\"busts_in_silhouette\",\"speech_balloon\",\"thought_balloon\",\"feelsgood\",\"finnadie\",\"goberserk\",\"godmode\",\"hurtrealbad\",\"rage1\",\"rage2\",\"rage3\",\"rage4\",\"suspect\",\"trollface\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Nature\",\n\t\t\t\"list\" : [\"sunny\",\"umbrella\",\"cloud\",\"snowflake\",\"snowman\",\"zap\",\"cyclone\",\"foggy\",\"ocean\",\"cat\",\"dog\",\"mouse\",\"hamster\",\"rabbit\",\"wolf\",\"frog\",\"tiger\",\"koala\",\"bear\",\"pig\",\"pig_nose\",\"cow\",\"boar\",\"monkey_face\",\"monkey\",\"horse\",\"racehorse\",\"camel\",\"sheep\",\"elephant\",\"panda_face\",\"snake\",\"bird\",\"baby_chick\",\"hatched_chick\",\"hatching_chick\",\"chicken\",\"penguin\",\"turtle\",\"bug\",\"honeybee\",\"ant\",\"beetle\",\"snail\",\"octopus\",\"tropical_fish\",\"fish\",\"whale\",\"whale2\",\"dolphin\",\"cow2\",\"ram\",\"rat\",\"water_buffalo\",\"tiger2\",\"rabbit2\",\"dragon\",\"goat\",\"rooster\",\"dog2\",\"pig2\",\"mouse2\",\"ox\",\"dragon_face\",\"blowfish\",\"crocodile\",\"dromedary_camel\",\"leopard\",\"cat2\",\"poodle\",\"paw_prints\",\"bouquet\",\"cherry_blossom\",\"tulip\",\"four_leaf_clover\",\"rose\",\"sunflower\",\"hibiscus\",\"maple_leaf\",\"leaves\",\"fallen_leaf\",\"herb\",\"mushroom\",\"cactus\",\"palm_tree\",\"evergreen_tree\",\"deciduous_tree\",\"chestnut\",\"seedling\",\"blossom\",\"ear_of_rice\",\"shell\",\"globe_with_meridians\",\"sun_with_face\",\"full_moon_with_face\",\"new_moon_with_face\",\"new_moon\",\"waxing_crescent_moon\",\"first_quarter_moon\",\"waxing_gibbous_moon\",\"full_moon\",\"waning_gibbous_moon\",\"last_quarter_moon\",\"waning_crescent_moon\",\"last_quarter_moon_with_face\",\"first_quarter_moon_with_face\",\"moon\",\"earth_africa\",\"earth_americas\",\"earth_asia\",\"volcano\",\"milky_way\",\"partly_sunny\",\"octocat\",\"squirrel\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Objects\",\n\t\t\t\"list\" : [\"bamboo\",\"gift_heart\",\"dolls\",\"school_satchel\",\"mortar_board\",\"flags\",\"fireworks\",\"sparkler\",\"wind_chime\",\"rice_scene\",\"jack_o_lantern\",\"ghost\",\"santa\",\"christmas_tree\",\"gift\",\"bell\",\"no_bell\",\"tanabata_tree\",\"tada\",\"confetti_ball\",\"balloon\",\"crystal_ball\",\"cd\",\"dvd\",\"floppy_disk\",\"camera\",\"video_camera\",\"movie_camera\",\"computer\",\"tv\",\"iphone\",\"phone\",\"telephone\",\"telephone_receiver\",\"pager\",\"fax\",\"minidisc\",\"vhs\",\"sound\",\"speaker\",\"mute\",\"loudspeaker\",\"mega\",\"hourglass\",\"hourglass_flowing_sand\",\"alarm_clock\",\"watch\",\"radio\",\"satellite\",\"loop\",\"mag\",\"mag_right\",\"unlock\",\"lock\",\"lock_with_ink_pen\",\"closed_lock_with_key\",\"key\",\"bulb\",\"flashlight\",\"high_brightness\",\"low_brightness\",\"electric_plug\",\"battery\",\"calling\",\"email\",\"mailbox\",\"postbox\",\"bath\",\"bathtub\",\"shower\",\"toilet\",\"wrench\",\"nut_and_bolt\",\"hammer\",\"seat\",\"moneybag\",\"yen\",\"dollar\",\"pound\",\"euro\",\"credit_card\",\"money_with_wings\",\"e-mail\",\"inbox_tray\",\"outbox_tray\",\"envelope\",\"incoming_envelope\",\"postal_horn\",\"mailbox_closed\",\"mailbox_with_mail\",\"mailbox_with_no_mail\",\"package\",\"door\",\"smoking\",\"bomb\",\"gun\",\"hocho\",\"pill\",\"syringe\",\"page_facing_up\",\"page_with_curl\",\"bookmark_tabs\",\"bar_chart\",\"chart_with_upwards_trend\",\"chart_with_downwards_trend\",\"scroll\",\"clipboard\",\"calendar\",\"date\",\"card_index\",\"file_folder\",\"open_file_folder\",\"scissors\",\"pushpin\",\"paperclip\",\"black_nib\",\"pencil2\",\"straight_ruler\",\"triangular_ruler\",\"closed_book\",\"green_book\",\"blue_book\",\"orange_book\",\"notebook\",\"notebook_with_decorative_cover\",\"ledger\",\"books\",\"bookmark\",\"name_badge\",\"microscope\",\"telescope\",\"newspaper\",\"football\",\"basketball\",\"soccer\",\"baseball\",\"tennis\",\"8ball\",\"rugby_football\",\"bowling\",\"golf\",\"mountain_bicyclist\",\"bicyclist\",\"horse_racing\",\"snowboarder\",\"swimmer\",\"surfer\",\"ski\",\"spades\",\"hearts\",\"clubs\",\"diamonds\",\"gem\",\"ring\",\"trophy\",\"musical_score\",\"musical_keyboard\",\"violin\",\"space_invader\",\"video_game\",\"black_joker\",\"flower_playing_cards\",\"game_die\",\"dart\",\"mahjong\",\"clapper\",\"memo\",\"pencil\",\"book\",\"art\",\"microphone\",\"headphones\",\"trumpet\",\"saxophone\",\"guitar\",\"shoe\",\"sandal\",\"high_heel\",\"lipstick\",\"boot\",\"shirt\",\"tshirt\",\"necktie\",\"womans_clothes\",\"dress\",\"running_shirt_with_sash\",\"jeans\",\"kimono\",\"bikini\",\"ribbon\",\"tophat\",\"crown\",\"womans_hat\",\"mans_shoe\",\"closed_umbrella\",\"briefcase\",\"handbag\",\"pouch\",\"purse\",\"eyeglasses\",\"fishing_pole_and_fish\",\"coffee\",\"tea\",\"sake\",\"baby_bottle\",\"beer\",\"beers\",\"cocktail\",\"tropical_drink\",\"wine_glass\",\"fork_and_knife\",\"pizza\",\"hamburger\",\"fries\",\"poultry_leg\",\"meat_on_bone\",\"spaghetti\",\"curry\",\"fried_shrimp\",\"bento\",\"sushi\",\"fish_cake\",\"rice_ball\",\"rice_cracker\",\"rice\",\"ramen\",\"stew\",\"oden\",\"dango\",\"egg\",\"bread\",\"doughnut\",\"custard\",\"icecream\",\"ice_cream\",\"shaved_ice\",\"birthday\",\"cake\",\"cookie\",\"chocolate_bar\",\"candy\",\"lollipop\",\"honey_pot\",\"apple\",\"green_apple\",\"tangerine\",\"lemon\",\"cherries\",\"grapes\",\"watermelon\",\"strawberry\",\"peach\",\"melon\",\"banana\",\"pear\",\"pineapple\",\"sweet_potato\",\"eggplant\",\"tomato\",\"corn\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Places\",\n\t\t\t\"list\" : [\"house\",\"house_with_garden\",\"school\",\"office\",\"post_office\",\"hospital\",\"bank\",\"convenience_store\",\"love_hotel\",\"hotel\",\"wedding\",\"church\",\"department_store\",\"european_post_office\",\"city_sunrise\",\"city_sunset\",\"japanese_castle\",\"european_castle\",\"tent\",\"factory\",\"tokyo_tower\",\"japan\",\"mount_fuji\",\"sunrise_over_mountains\",\"sunrise\",\"stars\",\"statue_of_liberty\",\"bridge_at_night\",\"carousel_horse\",\"rainbow\",\"ferris_wheel\",\"fountain\",\"roller_coaster\",\"ship\",\"speedboat\",\"boat\",\"sailboat\",\"rowboat\",\"anchor\",\"rocket\",\"airplane\",\"helicopter\",\"steam_locomotive\",\"tram\",\"mountain_railway\",\"bike\",\"aerial_tramway\",\"suspension_railway\",\"mountain_cableway\",\"tractor\",\"blue_car\",\"oncoming_automobile\",\"car\",\"red_car\",\"taxi\",\"oncoming_taxi\",\"articulated_lorry\",\"bus\",\"oncoming_bus\",\"rotating_light\",\"police_car\",\"oncoming_police_car\",\"fire_engine\",\"ambulance\",\"minibus\",\"truck\",\"train\",\"station\",\"train2\",\"bullettrain_front\",\"bullettrain_side\",\"light_rail\",\"monorail\",\"railway_car\",\"trolleybus\",\"ticket\",\"fuelpump\",\"vertical_traffic_light\",\"traffic_light\",\"warning\",\"construction\",\"beginner\",\"atm\",\"slot_machine\",\"busstop\",\"barber\",\"hotsprings\",\"checkered_flag\",\"crossed_flags\",\"izakaya_lantern\",\"moyai\",\"circus_tent\",\"performing_arts\",\"round_pushpin\",\"triangular_flag_on_post\",\"jp\",\"kr\",\"cn\",\"us\",\"fr\",\"es\",\"it\",\"ru\",\"gb\",\"uk\",\"de\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Symbols\",\n\t\t\t\"list\" : [\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"keycap_ten\",\"1234\",\"zero\",\"hash\",\"symbols\",\"arrow_backward\",\"arrow_down\",\"arrow_forward\",\"arrow_left\",\"capital_abcd\",\"abcd\",\"abc\",\"arrow_lower_left\",\"arrow_lower_right\",\"arrow_right\",\"arrow_up\",\"arrow_upper_left\",\"arrow_upper_right\",\"arrow_double_down\",\"arrow_double_up\",\"arrow_down_small\",\"arrow_heading_down\",\"arrow_heading_up\",\"leftwards_arrow_with_hook\",\"arrow_right_hook\",\"left_right_arrow\",\"arrow_up_down\",\"arrow_up_small\",\"arrows_clockwise\",\"arrows_counterclockwise\",\"rewind\",\"fast_forward\",\"information_source\",\"ok\",\"twisted_rightwards_arrows\",\"repeat\",\"repeat_one\",\"new\",\"top\",\"up\",\"cool\",\"free\",\"ng\",\"cinema\",\"koko\",\"signal_strength\",\"u5272\",\"u5408\",\"u55b6\",\"u6307\",\"u6708\",\"u6709\",\"u6e80\",\"u7121\",\"u7533\",\"u7a7a\",\"u7981\",\"sa\",\"restroom\",\"mens\",\"womens\",\"baby_symbol\",\"no_smoking\",\"parking\",\"wheelchair\",\"metro\",\"baggage_claim\",\"accept\",\"wc\",\"potable_water\",\"put_litter_in_its_place\",\"secret\",\"congratulations\",\"m\",\"passport_control\",\"left_luggage\",\"customs\",\"ideograph_advantage\",\"cl\",\"sos\",\"id\",\"no_entry_sign\",\"underage\",\"no_mobile_phones\",\"do_not_litter\",\"non-potable_water\",\"no_bicycles\",\"no_pedestrians\",\"children_crossing\",\"no_entry\",\"eight_spoked_asterisk\",\"sparkle\",\"eight_pointed_black_star\",\"heart_decoration\",\"vs\",\"vibration_mode\",\"mobile_phone_off\",\"chart\",\"currency_exchange\",\"aries\",\"taurus\",\"gemini\",\"cancer\",\"leo\",\"virgo\",\"libra\",\"scorpius\",\"sagittarius\",\"capricorn\",\"aquarius\",\"pisces\",\"ophiuchus\",\"six_pointed_star\",\"negative_squared_cross_mark\",\"a\",\"b\",\"ab\",\"o2\",\"diamond_shape_with_a_dot_inside\",\"recycle\",\"end\",\"back\",\"on\",\"soon\",\"clock1\",\"clock130\",\"clock10\",\"clock1030\",\"clock11\",\"clock1130\",\"clock12\",\"clock1230\",\"clock2\",\"clock230\",\"clock3\",\"clock330\",\"clock4\",\"clock430\",\"clock5\",\"clock530\",\"clock6\",\"clock630\",\"clock7\",\"clock730\",\"clock8\",\"clock830\",\"clock9\",\"clock930\",\"heavy_dollar_sign\",\"copyright\",\"registered\",\"tm\",\"x\",\"heavy_exclamation_mark\",\"bangbang\",\"interrobang\",\"o\",\"heavy_multiplication_x\",\"heavy_plus_sign\",\"heavy_minus_sign\",\"heavy_division_sign\",\"white_flower\",\"100\",\"heavy_check_mark\",\"ballot_box_with_check\",\"radio_button\",\"link\",\"curly_loop\",\"wavy_dash\",\"part_alternation_mark\",\"trident\",\"black_small_square\",\"white_small_square\",\"black_medium_small_square\",\"white_medium_small_square\",\"black_medium_square\",\"white_medium_square\",\"black_large_square\",\"white_large_square\",\"white_check_mark\",\"black_square_button\",\"white_square_button\",\"black_circle\",\"white_circle\",\"red_circle\",\"large_blue_circle\",\"large_blue_diamond\",\"large_orange_diamond\",\"small_blue_diamond\",\"small_orange_diamond\",\"small_red_triangle\",\"small_red_triangle_down\",\"shipit\"]\n\t\t}\n\t],\n\n\t\"twemoji\" : [\"1f004\",\"1f0cf\",\"1f170\",\"1f171\",\"1f17e\",\"1f17f\",\"1f18e\",\"1f191\",\"1f192\",\"1f193\",\"1f194\",\"1f195\",\"1f196\",\"1f197\",\"1f198\",\"1f199\",\"1f19a\",\"1f1e6\",\"1f1e7\",\"1f1e8-1f1f3\",\"1f1e8\",\"1f1e9-1f1ea\",\"1f1e9\",\"1f1ea-1f1f8\",\"1f1ea\",\"1f1eb-1f1f7\",\"1f1eb\",\"1f1ec-1f1e7\",\"1f1ec\",\"1f1ed\",\"1f1ee-1f1f9\",\"1f1ee\",\"1f1ef-1f1f5\",\"1f1ef\",\"1f1f0-1f1f7\",\"1f1f0\",\"1f1f1\",\"1f1f2\",\"1f1f3\",\"1f1f4\",\"1f1f5\",\"1f1f6\",\"1f1f7-1f1fa\",\"1f1f7\",\"1f1f8\",\"1f1f9\",\"1f1fa-1f1f8\",\"1f1fa\",\"1f1fb\",\"1f1fc\",\"1f1fd\",\"1f1fe\",\"1f1ff\",\"1f201\",\"1f202\",\"1f21a\",\"1f22f\",\"1f232\",\"1f233\",\"1f234\",\"1f235\",\"1f236\",\"1f237\",\"1f238\",\"1f239\",\"1f23a\",\"1f250\",\"1f251\",\"1f300\",\"1f301\",\"1f302\",\"1f303\",\"1f304\",\"1f305\",\"1f306\",\"1f307\",\"1f308\",\"1f309\",\"1f30a\",\"1f30b\",\"1f30c\",\"1f30d\",\"1f30e\",\"1f30f\",\"1f310\",\"1f311\",\"1f312\",\"1f313\",\"1f314\",\"1f315\",\"1f316\",\"1f317\",\"1f318\",\"1f319\",\"1f31a\",\"1f31b\",\"1f31c\",\"1f31d\",\"1f31e\",\"1f31f\",\"1f320\",\"1f330\",\"1f331\",\"1f332\",\"1f333\",\"1f334\",\"1f335\",\"1f337\",\"1f338\",\"1f339\",\"1f33a\",\"1f33b\",\"1f33c\",\"1f33d\",\"1f33e\",\"1f33f\",\"1f340\",\"1f341\",\"1f342\",\"1f343\",\"1f344\",\"1f345\",\"1f346\",\"1f347\",\"1f348\",\"1f349\",\"1f34a\",\"1f34b\",\"1f34c\",\"1f34d\",\"1f34e\",\"1f34f\",\"1f350\",\"1f351\",\"1f352\",\"1f353\",\"1f354\",\"1f355\",\"1f356\",\"1f357\",\"1f358\",\"1f359\",\"1f35a\",\"1f35b\",\"1f35c\",\"1f35d\",\"1f35e\",\"1f35f\",\"1f360\",\"1f361\",\"1f362\",\"1f363\",\"1f364\",\"1f365\",\"1f366\",\"1f367\",\"1f368\",\"1f369\",\"1f36a\",\"1f36b\",\"1f36c\",\"1f36d\",\"1f36e\",\"1f36f\",\"1f370\",\"1f371\",\"1f372\",\"1f373\",\"1f374\",\"1f375\",\"1f376\",\"1f377\",\"1f378\",\"1f379\",\"1f37a\",\"1f37b\",\"1f37c\",\"1f380\",\"1f381\",\"1f382\",\"1f383\",\"1f384\",\"1f385\",\"1f386\",\"1f387\",\"1f388\",\"1f389\",\"1f38a\",\"1f38b\",\"1f38c\",\"1f38d\",\"1f38e\",\"1f38f\",\"1f390\",\"1f391\",\"1f392\",\"1f393\",\"1f3a0\",\"1f3a1\",\"1f3a2\",\"1f3a3\",\"1f3a4\",\"1f3a5\",\"1f3a6\",\"1f3a7\",\"1f3a8\",\"1f3a9\",\"1f3aa\",\"1f3ab\",\"1f3ac\",\"1f3ad\",\"1f3ae\",\"1f3af\",\"1f3b0\",\"1f3b1\",\"1f3b2\",\"1f3b3\",\"1f3b4\",\"1f3b5\",\"1f3b6\",\"1f3b7\",\"1f3b8\",\"1f3b9\",\"1f3ba\",\"1f3bb\",\"1f3bc\",\"1f3bd\",\"1f3be\",\"1f3bf\",\"1f3c0\",\"1f3c1\",\"1f3c2\",\"1f3c3\",\"1f3c4\",\"1f3c6\",\"1f3c7\",\"1f3c8\",\"1f3c9\",\"1f3ca\",\"1f3e0\",\"1f3e1\",\"1f3e2\",\"1f3e3\",\"1f3e4\",\"1f3e5\",\"1f3e6\",\"1f3e7\",\"1f3e8\",\"1f3e9\",\"1f3ea\",\"1f3eb\",\"1f3ec\",\"1f3ed\",\"1f3ee\",\"1f3ef\",\"1f3f0\",\"1f400\",\"1f401\",\"1f402\",\"1f403\",\"1f404\",\"1f405\",\"1f406\",\"1f407\",\"1f408\",\"1f409\",\"1f40a\",\"1f40b\",\"1f40c\",\"1f40d\",\"1f40e\",\"1f40f\",\"1f410\",\"1f411\",\"1f412\",\"1f413\",\"1f414\",\"1f415\",\"1f416\",\"1f417\",\"1f418\",\"1f419\",\"1f41a\",\"1f41b\",\"1f41c\",\"1f41d\",\"1f41e\",\"1f41f\",\"1f420\",\"1f421\",\"1f422\",\"1f423\",\"1f424\",\"1f425\",\"1f426\",\"1f427\",\"1f428\",\"1f429\",\"1f42a\",\"1f42b\",\"1f42c\",\"1f42d\",\"1f42e\",\"1f42f\",\"1f430\",\"1f431\",\"1f432\",\"1f433\",\"1f434\",\"1f435\",\"1f436\",\"1f437\",\"1f438\",\"1f439\",\"1f43a\",\"1f43b\",\"1f43c\",\"1f43d\",\"1f43e\",\"1f440\",\"1f442\",\"1f443\",\"1f444\",\"1f445\",\"1f446\",\"1f447\",\"1f448\",\"1f449\",\"1f44a\",\"1f44b\",\"1f44c\",\"1f44d\",\"1f44e\",\"1f44f\",\"1f450\",\"1f451\",\"1f452\",\"1f453\",\"1f454\",\"1f455\",\"1f456\",\"1f457\",\"1f458\",\"1f459\",\"1f45a\",\"1f45b\",\"1f45c\",\"1f45d\",\"1f45e\",\"1f45f\",\"1f460\",\"1f461\",\"1f462\",\"1f463\",\"1f464\",\"1f465\",\"1f466\",\"1f467\",\"1f468\",\"1f469\",\"1f46a\",\"1f46b\",\"1f46c\",\"1f46d\",\"1f46e\",\"1f46f\",\"1f470\",\"1f471\",\"1f472\",\"1f473\",\"1f474\",\"1f475\",\"1f476\",\"1f477\",\"1f478\",\"1f479\",\"1f47a\",\"1f47b\",\"1f47c\",\"1f47d\",\"1f47e\",\"1f47f\",\"1f480\",\"1f481\",\"1f482\",\"1f483\",\"1f484\",\"1f485\",\"1f486\",\"1f487\",\"1f488\",\"1f489\",\"1f48a\",\"1f48b\",\"1f48c\",\"1f48d\",\"1f48e\",\"1f48f\",\"1f490\",\"1f491\",\"1f492\",\"1f493\",\"1f494\",\"1f495\",\"1f496\",\"1f497\",\"1f498\",\"1f499\",\"1f49a\",\"1f49b\",\"1f49c\",\"1f49d\",\"1f49e\",\"1f49f\",\"1f4a0\",\"1f4a1\",\"1f4a2\",\"1f4a3\",\"1f4a4\",\"1f4a5\",\"1f4a6\",\"1f4a7\",\"1f4a8\",\"1f4a9\",\"1f4aa\",\"1f4ab\",\"1f4ac\",\"1f4ad\",\"1f4ae\",\"1f4af\",\"1f4b0\",\"1f4b1\",\"1f4b2\",\"1f4b3\",\"1f4b4\",\"1f4b5\",\"1f4b6\",\"1f4b7\",\"1f4b8\",\"1f4b9\",\"1f4ba\",\"1f4bb\",\"1f4bc\",\"1f4bd\",\"1f4be\",\"1f4bf\",\"1f4c0\",\"1f4c1\",\"1f4c2\",\"1f4c3\",\"1f4c4\",\"1f4c5\",\"1f4c6\",\"1f4c7\",\"1f4c8\",\"1f4c9\",\"1f4ca\",\"1f4cb\",\"1f4cc\",\"1f4cd\",\"1f4ce\",\"1f4cf\",\"1f4d0\",\"1f4d1\",\"1f4d2\",\"1f4d3\",\"1f4d4\",\"1f4d5\",\"1f4d6\",\"1f4d7\",\"1f4d8\",\"1f4d9\",\"1f4da\",\"1f4db\",\"1f4dc\",\"1f4dd\",\"1f4de\",\"1f4df\",\"1f4e0\",\"1f4e1\",\"1f4e2\",\"1f4e3\",\"1f4e4\",\"1f4e5\",\"1f4e6\",\"1f4e7\",\"1f4e8\",\"1f4e9\",\"1f4ea\",\"1f4eb\",\"1f4ec\",\"1f4ed\",\"1f4ee\",\"1f4ef\",\"1f4f0\",\"1f4f1\",\"1f4f2\",\"1f4f3\",\"1f4f4\",\"1f4f5\",\"1f4f6\",\"1f4f7\",\"1f4f9\",\"1f4fa\",\"1f4fb\",\"1f4fc\",\"1f500\",\"1f501\",\"1f502\",\"1f503\",\"1f504\",\"1f505\",\"1f506\",\"1f507\",\"1f508\",\"1f509\",\"1f50a\",\"1f50b\",\"1f50c\",\"1f50d\",\"1f50e\",\"1f50f\",\"1f510\",\"1f511\",\"1f512\",\"1f513\",\"1f514\",\"1f515\",\"1f516\",\"1f517\",\"1f518\",\"1f519\",\"1f51a\",\"1f51b\",\"1f51c\",\"1f51d\",\"1f51e\",\"1f51f\",\"1f520\",\"1f521\",\"1f522\",\"1f523\",\"1f524\",\"1f525\",\"1f526\",\"1f527\",\"1f528\",\"1f529\",\"1f52a\",\"1f52b\",\"1f52c\",\"1f52d\",\"1f52e\",\"1f52f\",\"1f530\",\"1f531\",\"1f532\",\"1f533\",\"1f534\",\"1f535\",\"1f536\",\"1f537\",\"1f538\",\"1f539\",\"1f53a\",\"1f53b\",\"1f53c\",\"1f53d\",\"1f550\",\"1f551\",\"1f552\",\"1f553\",\"1f554\",\"1f555\",\"1f556\",\"1f557\",\"1f558\",\"1f559\",\"1f55a\",\"1f55b\",\"1f55c\",\"1f55d\",\"1f55e\",\"1f55f\",\"1f560\",\"1f561\",\"1f562\",\"1f563\",\"1f564\",\"1f565\",\"1f566\",\"1f567\",\"1f5fb\",\"1f5fc\",\"1f5fd\",\"1f5fe\",\"1f5ff\",\"1f600\",\"1f601\",\"1f602\",\"1f603\",\"1f604\",\"1f605\",\"1f606\",\"1f607\",\"1f608\",\"1f609\",\"1f60a\",\"1f60b\",\"1f60c\",\"1f60d\",\"1f60e\",\"1f60f\",\"1f610\",\"1f611\",\"1f612\",\"1f613\",\"1f614\",\"1f615\",\"1f616\",\"1f617\",\"1f618\",\"1f619\",\"1f61a\",\"1f61b\",\"1f61c\",\"1f61d\",\"1f61e\",\"1f61f\",\"1f620\",\"1f621\",\"1f622\",\"1f623\",\"1f624\",\"1f625\",\"1f626\",\"1f627\",\"1f628\",\"1f629\",\"1f62a\",\"1f62b\",\"1f62c\",\"1f62d\",\"1f62e\",\"1f62f\",\"1f630\",\"1f631\",\"1f632\",\"1f633\",\"1f634\",\"1f635\",\"1f636\",\"1f637\",\"1f638\",\"1f639\",\"1f63a\",\"1f63b\",\"1f63c\",\"1f63d\",\"1f63e\",\"1f63f\",\"1f640\",\"1f645\",\"1f646\",\"1f647\",\"1f648\",\"1f649\",\"1f64a\",\"1f64b\",\"1f64c\",\"1f64d\",\"1f64e\",\"1f64f\",\"1f680\",\"1f681\",\"1f682\",\"1f683\",\"1f684\",\"1f685\",\"1f686\",\"1f687\",\"1f688\",\"1f689\",\"1f68a\",\"1f68b\",\"1f68c\",\"1f68d\",\"1f68e\",\"1f68f\",\"1f690\",\"1f691\",\"1f692\",\"1f693\",\"1f694\",\"1f695\",\"1f696\",\"1f697\",\"1f698\",\"1f699\",\"1f69a\",\"1f69b\",\"1f69c\",\"1f69d\",\"1f69e\",\"1f69f\",\"1f6a0\",\"1f6a1\",\"1f6a2\",\"1f6a3\",\"1f6a4\",\"1f6a5\",\"1f6a6\",\"1f6a7\",\"1f6a8\",\"1f6a9\",\"1f6aa\",\"1f6ab\",\"1f6ac\",\"1f6ad\",\"1f6ae\",\"1f6af\",\"1f6b0\",\"1f6b1\",\"1f6b2\",\"1f6b3\",\"1f6b4\",\"1f6b5\",\"1f6b6\",\"1f6b7\",\"1f6b8\",\"1f6b9\",\"1f6ba\",\"1f6bb\",\"1f6bc\",\"1f6bd\",\"1f6be\",\"1f6bf\",\"1f6c0\",\"1f6c1\",\"1f6c2\",\"1f6c3\",\"1f6c4\",\"1f6c5\",\"203c\",\"2049\",\"2122\",\"2139\",\"2194\",\"2195\",\"2196\",\"2197\",\"2198\",\"2199\",\"21a9\",\"21aa\",\"23-20e3\",\"231a\",\"231b\",\"23e9\",\"23ea\",\"23eb\",\"23ec\",\"23f0\",\"23f3\",\"24c2\",\"25aa\",\"25ab\",\"25b6\",\"25c0\",\"25fb\",\"25fc\",\"25fd\",\"25fe\",\"2600\",\"2601\",\"260e\",\"2611\",\"2614\",\"2615\",\"261d\",\"263a\",\"2648\",\"2649\",\"264a\",\"264b\",\"264c\",\"264d\",\"264e\",\"264f\",\"2650\",\"2651\",\"2652\",\"2653\",\"2660\",\"2663\",\"2665\",\"2666\",\"2668\",\"267b\",\"267f\",\"2693\",\"26a0\",\"26a1\",\"26aa\",\"26ab\",\"26bd\",\"26be\",\"26c4\",\"26c5\",\"26ce\",\"26d4\",\"26ea\",\"26f2\",\"26f3\",\"26f5\",\"26fa\",\"26fd\",\"2702\",\"2705\",\"2708\",\"2709\",\"270a\",\"270b\",\"270c\",\"270f\",\"2712\",\"2714\",\"2716\",\"2728\",\"2733\",\"2734\",\"2744\",\"2747\",\"274c\",\"274e\",\"2753\",\"2754\",\"2755\",\"2757\",\"2764\",\"2795\",\"2796\",\"2797\",\"27a1\",\"27b0\",\"27bf\",\"2934\",\"2935\",\"2b05\",\"2b06\",\"2b07\",\"2b1b\",\"2b1c\",\"2b50\",\"2b55\",\"30-20e3\",\"3030\",\"303d\",\"31-20e3\",\"32-20e3\",\"3297\",\"3299\",\"33-20e3\",\"34-20e3\",\"35-20e3\",\"36-20e3\",\"37-20e3\",\"38-20e3\",\"39-20e3\",\"a9\",\"ae\",\"e50a\"],\n\n\t\"font-awesome\" : [\"glass\",\"music\",\"search\",\"envelope-o\",\"heart\",\"star\",\"star-o\",\"user\",\"film\",\"th-large\",\"th\",\"th-list\",\"check\",\"times\",\"search-plus\",\"search-minus\",\"power-off\",\"signal\",\"cog\",\"trash-o\",\"home\",\"file-o\",\"clock-o\",\"road\",\"download\",\"arrow-circle-o-down\",\"arrow-circle-o-up\",\"inbox\",\"play-circle-o\",\"repeat\",\"refresh\",\"list-alt\",\"lock\",\"flag\",\"headphones\",\"volume-off\",\"volume-down\",\"volume-up\",\"qrcode\",\"barcode\",\"tag\",\"tags\",\"book\",\"bookmark\",\"print\",\"camera\",\"font\",\"bold\",\"italic\",\"text-height\",\"text-width\",\"align-left\",\"align-center\",\"align-right\",\"align-justify\",\"list\",\"outdent\",\"indent\",\"video-camera\",\"picture-o\",\"pencil\",\"map-marker\",\"adjust\",\"tint\",\"pencil-square-o\",\"share-square-o\",\"check-square-o\",\"arrows\",\"step-backward\",\"fast-backward\",\"backward\",\"play\",\"pause\",\"stop\",\"forward\",\"fast-forward\",\"step-forward\",\"eject\",\"chevron-left\",\"chevron-right\",\"plus-circle\",\"minus-circle\",\"times-circle\",\"check-circle\",\"question-circle\",\"info-circle\",\"crosshairs\",\"times-circle-o\",\"check-circle-o\",\"ban\",\"arrow-left\",\"arrow-right\",\"arrow-up\",\"arrow-down\",\"share\",\"expand\",\"compress\",\"plus\",\"minus\",\"asterisk\",\"exclamation-circle\",\"gift\",\"leaf\",\"fire\",\"eye\",\"eye-slash\",\"exclamation-triangle\",\"plane\",\"calendar\",\"random\",\"comment\",\"magnet\",\"chevron-up\",\"chevron-down\",\"retweet\",\"shopping-cart\",\"folder\",\"folder-open\",\"arrows-v\",\"arrows-h\",\"bar-chart\",\"twitter-square\",\"facebook-square\",\"camera-retro\",\"key\",\"cogs\",\"comments\",\"thumbs-o-up\",\"thumbs-o-down\",\"star-half\",\"heart-o\",\"sign-out\",\"linkedin-square\",\"thumb-tack\",\"external-link\",\"sign-in\",\"trophy\",\"github-square\",\"upload\",\"lemon-o\",\"phone\",\"square-o\",\"bookmark-o\",\"phone-square\",\"twitter\",\"facebook\",\"github\",\"unlock\",\"credit-card\",\"rss\",\"hdd-o\",\"bullhorn\",\"bell\",\"certificate\",\"hand-o-right\",\"hand-o-left\",\"hand-o-up\",\"hand-o-down\",\"arrow-circle-left\",\"arrow-circle-right\",\"arrow-circle-up\",\"arrow-circle-down\",\"globe\",\"wrench\",\"tasks\",\"filter\",\"briefcase\",\"arrows-alt\",\"users\",\"link\",\"cloud\",\"flask\",\"scissors\",\"files-o\",\"paperclip\",\"floppy-o\",\"square\",\"bars\",\"list-ul\",\"list-ol\",\"strikethrough\",\"underline\",\"table\",\"magic\",\"truck\",\"pinterest\",\"pinterest-square\",\"google-plus-square\",\"google-plus\",\"money\",\"caret-down\",\"caret-up\",\"caret-left\",\"caret-right\",\"columns\",\"sort\",\"sort-desc\",\"sort-asc\",\"envelope\",\"linkedin\",\"undo\",\"gavel\",\"tachometer\",\"comment-o\",\"comments-o\",\"bolt\",\"sitemap\",\"umbrella\",\"clipboard\",\"lightbulb-o\",\"exchange\",\"cloud-download\",\"cloud-upload\",\"user-md\",\"stethoscope\",\"suitcase\",\"bell-o\",\"coffee\",\"cutlery\",\"file-text-o\",\"building-o\",\"hospital-o\",\"ambulance\",\"medkit\",\"fighter-jet\",\"beer\",\"h-square\",\"plus-square\",\"angle-double-left\",\"angle-double-right\",\"angle-double-up\",\"angle-double-down\",\"angle-left\",\"angle-right\",\"angle-up\",\"angle-down\",\"desktop\",\"laptop\",\"tablet\",\"mobile\",\"circle-o\",\"quote-left\",\"quote-right\",\"spinner\",\"circle\",\"reply\",\"github-alt\",\"folder-o\",\"folder-open-o\",\"smile-o\",\"frown-o\",\"meh-o\",\"gamepad\",\"keyboard-o\",\"flag-o\",\"flag-checkered\",\"terminal\",\"code\",\"reply-all\",\"star-half-o\",\"location-arrow\",\"crop\",\"code-fork\",\"chain-broken\",\"question\",\"info\",\"exclamation\",\"superscript\",\"subscript\",\"eraser\",\"puzzle-piece\",\"microphone\",\"microphone-slash\",\"shield\",\"calendar-o\",\"fire-extinguisher\",\"rocket\",\"maxcdn\",\"chevron-circle-left\",\"chevron-circle-right\",\"chevron-circle-up\",\"chevron-circle-down\",\"html5\",\"css3\",\"anchor\",\"unlock-alt\",\"bullseye\",\"ellipsis-h\",\"ellipsis-v\",\"rss-square\",\"play-circle\",\"ticket\",\"minus-square\",\"minus-square-o\",\"level-up\",\"level-down\",\"check-square\",\"pencil-square\",\"share-square\",\"compass\",\"caret-square-o-down\",\"caret-square-o-up\",\"caret-square-o-right\",\"eur\",\"gbp\",\"usd\",\"inr\",\"jpy\",\"rub\",\"krw\",\"btc\",\"file\",\"file-text\",\"sort-alpha-asc\",\"sort-alpha-desc\",\"sort-amount-asc\",\"sort-amount-desc\",\"sort-numeric-asc\",\"sort-numeric-desc\",\"thumbs-up\",\"thumbs-down\",\"youtube-square\",\"youtube\",\"xing\",\"xing-square\",\"youtube-play\",\"dropbox\",\"stack-overflow\",\"instagram\",\"flickr\",\"adn\",\"bitbucket\",\"bitbucket-square\",\"tumblr\",\"tumblr-square\",\"long-arrow-down\",\"long-arrow-up\",\"long-arrow-left\",\"long-arrow-right\",\"apple\",\"windows\",\"android\",\"linux\",\"dribbble\",\"skype\",\"foursquare\",\"trello\",\"female\",\"male\",\"gratipay\",\"sun-o\",\"moon-o\",\"archive\",\"bug\",\"vk\",\"weibo\",\"renren\",\"pagelines\",\"stack-exchange\",\"arrow-circle-o-right\",\"arrow-circle-o-left\",\"caret-square-o-left\",\"dot-circle-o\",\"wheelchair\",\"vimeo-square\",\"try\",\"plus-square-o\",\"space-shuttle\",\"slack\",\"envelope-square\",\"wordpress\",\"openid\",\"university\",\"graduation-cap\",\"yahoo\",\"google\",\"reddit\",\"reddit-square\",\"stumbleupon-circle\",\"stumbleupon\",\"delicious\",\"digg\",\"pied-piper\",\"pied-piper-alt\",\"drupal\",\"joomla\",\"language\",\"fax\",\"building\",\"child\",\"paw\",\"spoon\",\"cube\",\"cubes\",\"behance\",\"behance-square\",\"steam\",\"steam-square\",\"recycle\",\"car\",\"taxi\",\"tree\",\"spotify\",\"deviantart\",\"soundcloud\",\"database\",\"file-pdf-o\",\"file-word-o\",\"file-excel-o\",\"file-powerpoint-o\",\"file-image-o\",\"file-archive-o\",\"file-audio-o\",\"file-video-o\",\"file-code-o\",\"vine\",\"codepen\",\"jsfiddle\",\"life-ring\",\"circle-o-notch\",\"rebel\",\"empire\",\"git-square\",\"git\",\"hacker-news\",\"tencent-weibo\",\"qq\",\"weixin\",\"paper-plane\",\"paper-plane-o\",\"history\",\"circle-thin\",\"header\",\"paragraph\",\"sliders\",\"share-alt\",\"share-alt-square\",\"bomb\",\"futbol-o\",\"tty\",\"binoculars\",\"plug\",\"slideshare\",\"twitch\",\"yelp\",\"newspaper-o\",\"wifi\",\"calculator\",\"paypal\",\"google-wallet\",\"cc-visa\",\"cc-mastercard\",\"cc-discover\",\"cc-amex\",\"cc-paypal\",\"cc-stripe\",\"bell-slash\",\"bell-slash-o\",\"trash\",\"copyright\",\"at\",\"eyedropper\",\"paint-brush\",\"birthday-cake\",\"area-chart\",\"pie-chart\",\"line-chart\",\"lastfm\",\"lastfm-square\",\"toggle-off\",\"toggle-on\",\"bicycle\",\"bus\",\"ioxhost\",\"angellist\",\"cc\",\"ils\",\"meanpath\",\"buysellads\",\"connectdevelop\",\"dashcube\",\"forumbee\",\"leanpub\",\"sellsy\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"cart-plus\",\"cart-arrow-down\",\"diamond\",\"ship\",\"user-secret\",\"motorcycle\",\"street-view\",\"heartbeat\",\"venus\",\"mars\",\"mercury\",\"transgender\",\"transgender-alt\",\"venus-double\",\"mars-double\",\"venus-mars\",\"mars-stroke\",\"mars-stroke-v\",\"mars-stroke-h\",\"neuter\",\"facebook-official\",\"pinterest-p\",\"whatsapp\",\"server\",\"user-plus\",\"user-times\",\"bed\",\"viacoin\",\"train\",\"subway\",\"medium\",\"GitHub\",\"bed\",\"buysellads\",\"cart-arrow-down\",\"cart-plus\",\"connectdevelop\",\"dashcube\",\"diamond\",\"facebook-official\",\"forumbee\",\"heartbeat\",\"hotel\",\"leanpub\",\"mars\",\"mars-double\",\"mars-stroke\",\"mars-stroke-h\",\"mars-stroke-v\",\"medium\",\"mercury\",\"motorcycle\",\"neuter\",\"pinterest-p\",\"sellsy\",\"server\",\"ship\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"street-view\",\"subway\",\"train\",\"transgender\",\"transgender-alt\",\"user-plus\",\"user-secret\",\"user-times\",\"venus\",\"venus-double\",\"venus-mars\",\"viacoin\",\"whatsapp\",\"adjust\",\"anchor\",\"archive\",\"area-chart\",\"arrows\",\"arrows-h\",\"arrows-v\",\"asterisk\",\"at\",\"automobile\",\"ban\",\"bank\",\"bar-chart\",\"bar-chart-o\",\"barcode\",\"bars\",\"bed\",\"beer\",\"bell\",\"bell-o\",\"bell-slash\",\"bell-slash-o\",\"bicycle\",\"binoculars\",\"birthday-cake\",\"bolt\",\"bomb\",\"book\",\"bookmark\",\"bookmark-o\",\"briefcase\",\"bug\",\"building\",\"building-o\",\"bullhorn\",\"bullseye\",\"bus\",\"cab\",\"calculator\",\"calendar\",\"calendar-o\",\"camera\",\"camera-retro\",\"car\",\"caret-square-o-down\",\"caret-square-o-left\",\"caret-square-o-right\",\"caret-square-o-up\",\"cart-arrow-down\",\"cart-plus\",\"cc\",\"certificate\",\"check\",\"check-circle\",\"check-circle-o\",\"check-square\",\"check-square-o\",\"child\",\"circle\",\"circle-o\",\"circle-o-notch\",\"circle-thin\",\"clock-o\",\"close\",\"cloud\",\"cloud-download\",\"cloud-upload\",\"code\",\"code-fork\",\"coffee\",\"cog\",\"cogs\",\"comment\",\"comment-o\",\"comments\",\"comments-o\",\"compass\",\"copyright\",\"credit-card\",\"crop\",\"crosshairs\",\"cube\",\"cubes\",\"cutlery\",\"dashboard\",\"database\",\"desktop\",\"diamond\",\"dot-circle-o\",\"download\",\"edit\",\"ellipsis-h\",\"ellipsis-v\",\"envelope\",\"envelope-o\",\"envelope-square\",\"eraser\",\"exchange\",\"exclamation\",\"exclamation-circle\",\"exclamation-triangle\",\"external-link\",\"external-link-square\",\"eye\",\"eye-slash\",\"eyedropper\",\"fax\",\"female\",\"fighter-jet\",\"file-archive-o\",\"file-audio-o\",\"file-code-o\",\"file-excel-o\",\"file-image-o\",\"file-movie-o\",\"file-pdf-o\",\"file-photo-o\",\"file-picture-o\",\"file-powerpoint-o\",\"file-sound-o\",\"file-video-o\",\"file-word-o\",\"file-zip-o\",\"film\",\"filter\",\"fire\",\"fire-extinguisher\",\"flag\",\"flag-checkered\",\"flag-o\",\"flash\",\"flask\",\"folder\",\"folder-o\",\"folder-open\",\"folder-open-o\",\"frown-o\",\"futbol-o\",\"gamepad\",\"gavel\",\"gear\",\"gears\",\"genderless\",\"gift\",\"glass\",\"globe\",\"graduation-cap\",\"group\",\"hdd-o\",\"headphones\",\"heart\",\"heart-o\",\"heartbeat\",\"history\",\"home\",\"hotel\",\"image\",\"inbox\",\"info\",\"info-circle\",\"institution\",\"key\",\"keyboard-o\",\"language\",\"laptop\",\"leaf\",\"legal\",\"lemon-o\",\"level-down\",\"level-up\",\"life-bouy\",\"life-buoy\",\"life-ring\",\"life-saver\",\"lightbulb-o\",\"line-chart\",\"location-arrow\",\"lock\",\"magic\",\"magnet\",\"mail-forward\",\"mail-reply\",\"mail-reply-all\",\"male\",\"map-marker\",\"meh-o\",\"microphone\",\"microphone-slash\",\"minus\",\"minus-circle\",\"minus-square\",\"minus-square-o\",\"mobile\",\"mobile-phone\",\"money\",\"moon-o\",\"mortar-board\",\"motorcycle\",\"music\",\"navicon\",\"newspaper-o\",\"paint-brush\",\"paper-plane\",\"paper-plane-o\",\"paw\",\"pencil\",\"pencil-square\",\"pencil-square-o\",\"phone\",\"phone-square\",\"photo\",\"picture-o\",\"pie-chart\",\"plane\",\"plug\",\"plus\",\"plus-circle\",\"plus-square\",\"plus-square-o\",\"power-off\",\"print\",\"puzzle-piece\",\"qrcode\",\"question\",\"question-circle\",\"quote-left\",\"quote-right\",\"random\",\"recycle\",\"refresh\",\"remove\",\"reorder\",\"reply\",\"reply-all\",\"retweet\",\"road\",\"rocket\",\"rss\",\"rss-square\",\"search\",\"search-minus\",\"search-plus\",\"send\",\"send-o\",\"server\",\"share\",\"share-alt\",\"share-alt-square\",\"share-square\",\"share-square-o\",\"shield\",\"ship\",\"shopping-cart\",\"sign-in\",\"sign-out\",\"signal\",\"sitemap\",\"sliders\",\"smile-o\",\"soccer-ball-o\",\"sort\",\"sort-alpha-asc\",\"sort-alpha-desc\",\"sort-amount-asc\",\"sort-amount-desc\",\"sort-asc\",\"sort-desc\",\"sort-down\",\"sort-numeric-asc\",\"sort-numeric-desc\",\"sort-up\",\"space-shuttle\",\"spinner\",\"spoon\",\"square\",\"square-o\",\"star\",\"star-half\",\"star-half-empty\",\"star-half-full\",\"star-half-o\",\"star-o\",\"street-view\",\"suitcase\",\"sun-o\",\"support\",\"tablet\",\"tachometer\",\"tag\",\"tags\",\"tasks\",\"taxi\",\"terminal\",\"thumb-tack\",\"thumbs-down\",\"thumbs-o-down\",\"thumbs-o-up\",\"thumbs-up\",\"ticket\",\"times\",\"times-circle\",\"times-circle-o\",\"tint\",\"toggle-down\",\"toggle-left\",\"toggle-off\",\"toggle-on\",\"toggle-right\",\"toggle-up\",\"trash\",\"trash-o\",\"tree\",\"trophy\",\"truck\",\"tty\",\"umbrella\",\"university\",\"unlock\",\"unlock-alt\",\"unsorted\",\"upload\",\"user\",\"user-plus\",\"user-secret\",\"user-times\",\"users\",\"video-camera\",\"volume-down\",\"volume-off\",\"volume-up\",\"warning\",\"wheelchair\",\"wifi\",\"wrench\",\"ambulance\",\"automobile\",\"bicycle\",\"bus\",\"cab\",\"car\",\"fighter-jet\",\"motorcycle\",\"plane\",\"rocket\",\"ship\",\"space-shuttle\",\"subway\",\"taxi\",\"train\",\"truck\",\"wheelchair\",\"circle-thin\",\"genderless\",\"mars\",\"mars-double\",\"mars-stroke\",\"mars-stroke-h\",\"mars-stroke-v\",\"mercury\",\"neuter\",\"transgender\",\"transgender-alt\",\"venus\",\"venus-double\",\"venus-mars\",\"file\",\"file-archive-o\",\"file-audio-o\",\"file-code-o\",\"file-excel-o\",\"file-image-o\",\"file-movie-o\",\"file-o\",\"file-pdf-o\",\"file-photo-o\",\"file-picture-o\",\"file-powerpoint-o\",\"file-sound-o\",\"file-text\",\"file-text-o\",\"file-video-o\",\"file-word-o\",\"file-zip-o\",\"circle-o-notch\",\"cog\",\"gear\",\"refresh\",\"spinner\",\"check-square\",\"check-square-o\",\"circle\",\"circle-o\",\"dot-circle-o\",\"minus-square\",\"minus-square-o\",\"plus-square\",\"plus-square-o\",\"square\",\"square-o\",\"cc-amex\",\"cc-discover\",\"cc-mastercard\",\"cc-paypal\",\"cc-stripe\",\"cc-visa\",\"credit-card\",\"google-wallet\",\"paypal\",\"area-chart\",\"bar-chart\",\"bar-chart-o\",\"line-chart\",\"pie-chart\",\"bitcoin\",\"btc\",\"cny\",\"dollar\",\"eur\",\"euro\",\"gbp\",\"ils\",\"inr\",\"jpy\",\"krw\",\"money\",\"rmb\",\"rouble\",\"rub\",\"ruble\",\"rupee\",\"shekel\",\"sheqel\",\"try\",\"turkish-lira\",\"usd\",\"won\",\"yen\",\"align-center\",\"align-justify\",\"align-left\",\"align-right\",\"bold\",\"chain\",\"chain-broken\",\"clipboard\",\"columns\",\"copy\",\"cut\",\"dedent\",\"eraser\",\"file\",\"file-o\",\"file-text\",\"file-text-o\",\"files-o\",\"floppy-o\",\"font\",\"header\",\"indent\",\"italic\",\"link\",\"list\",\"list-alt\",\"list-ol\",\"list-ul\",\"outdent\",\"paperclip\",\"paragraph\",\"paste\",\"repeat\",\"rotate-left\",\"rotate-right\",\"save\",\"scissors\",\"strikethrough\",\"subscript\",\"superscript\",\"table\",\"text-height\",\"text-width\",\"th\",\"th-large\",\"th-list\",\"underline\",\"undo\",\"unlink\",\"angle-double-down\",\"angle-double-left\",\"angle-double-right\",\"angle-double-up\",\"angle-down\",\"angle-left\",\"angle-right\",\"angle-up\",\"arrow-circle-down\",\"arrow-circle-left\",\"arrow-circle-o-down\",\"arrow-circle-o-left\",\"arrow-circle-o-right\",\"arrow-circle-o-up\",\"arrow-circle-right\",\"arrow-circle-up\",\"arrow-down\",\"arrow-left\",\"arrow-right\",\"arrow-up\",\"arrows\",\"arrows-alt\",\"arrows-h\",\"arrows-v\",\"caret-down\",\"caret-left\",\"caret-right\",\"caret-square-o-down\",\"caret-square-o-left\",\"caret-square-o-right\",\"caret-square-o-up\",\"caret-up\",\"chevron-circle-down\",\"chevron-circle-left\",\"chevron-circle-right\",\"chevron-circle-up\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"hand-o-down\",\"hand-o-left\",\"hand-o-right\",\"hand-o-up\",\"long-arrow-down\",\"long-arrow-left\",\"long-arrow-right\",\"long-arrow-up\",\"toggle-down\",\"toggle-left\",\"toggle-right\",\"toggle-up\",\"arrows-alt\",\"backward\",\"compress\",\"eject\",\"expand\",\"fast-backward\",\"fast-forward\",\"forward\",\"pause\",\"play\",\"play-circle\",\"play-circle-o\",\"step-backward\",\"step-forward\",\"stop\",\"youtube-play\",\"report an issue with Adblock Plus\",\"adn\",\"android\",\"angellist\",\"apple\",\"behance\",\"behance-square\",\"bitbucket\",\"bitbucket-square\",\"bitcoin\",\"btc\",\"buysellads\",\"cc-amex\",\"cc-discover\",\"cc-mastercard\",\"cc-paypal\",\"cc-stripe\",\"cc-visa\",\"codepen\",\"connectdevelop\",\"css3\",\"dashcube\",\"delicious\",\"deviantart\",\"digg\",\"dribbble\",\"dropbox\",\"drupal\",\"empire\",\"facebook\",\"facebook-f\",\"facebook-official\",\"facebook-square\",\"flickr\",\"forumbee\",\"foursquare\",\"ge\",\"git\",\"git-square\",\"github\",\"github-alt\",\"github-square\",\"gittip\",\"google\",\"google-plus\",\"google-plus-square\",\"google-wallet\",\"gratipay\",\"hacker-news\",\"html5\",\"instagram\",\"ioxhost\",\"joomla\",\"jsfiddle\",\"lastfm\",\"lastfm-square\",\"leanpub\",\"linkedin\",\"linkedin-square\",\"linux\",\"maxcdn\",\"meanpath\",\"medium\",\"openid\",\"pagelines\",\"paypal\",\"pied-piper\",\"pied-piper-alt\",\"pinterest\",\"pinterest-p\",\"pinterest-square\",\"qq\",\"ra\",\"rebel\",\"reddit\",\"reddit-square\",\"renren\",\"sellsy\",\"share-alt\",\"share-alt-square\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"skype\",\"slack\",\"slideshare\",\"soundcloud\",\"spotify\",\"stack-exchange\",\"stack-overflow\",\"steam\",\"steam-square\",\"stumbleupon\",\"stumbleupon-circle\",\"tencent-weibo\",\"trello\",\"tumblr\",\"tumblr-square\",\"twitch\",\"twitter\",\"twitter-square\",\"viacoin\",\"vimeo-square\",\"vine\",\"vk\",\"wechat\",\"weibo\",\"weixin\",\"whatsapp\",\"windows\",\"wordpress\",\"xing\",\"xing-square\",\"yahoo\",\"yelp\",\"youtube\",\"youtube-play\",\"youtube-square\",\"ambulance\",\"h-square\",\"heart\",\"heart-o\",\"heartbeat\",\"hospital-o\",\"medkit\",\"plus-square\",\"stethoscope\",\"user-md\",\"wheelchair\"]\n}"
  },
  {
    "path": "public/static/home/editormd/plugins/goto-line-dialog/goto-line-dialog.js",
    "content": "/*!\n * Goto line dialog plugin for Editor.md\n *\n * @file        goto-line-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"goto-line-dialog\";\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"跳转到行\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"跳转到行\",\n\t\t\t\t\t\tlabel  : \"请输入行号\",\n\t\t\t\t\t\terror  : \"错误：\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"跳轉到行\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"跳轉到行\",\n\t\t\t\t\t\tlabel  : \"請輸入行號\",\n\t\t\t\t\t\terror  : \"錯誤：\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"Goto line\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"Goto line\",\n\t\t\t\t\t\tlabel  : \"Enter a line number, range \",\n\t\t\t\t\t\terror  : \"Error: \"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.gotoLineDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName +\"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogLang  = lang.dialog[\"goto-line\"];\n\t\t\tvar lineCount   = cm.lineCount();\n\n\t\t\tdialogLang.error += dialogLang.label + \" 1-\" + lineCount;\n\n\t\t\tif (editor.find(\".\" + dialogName).length < 1) \n\t\t\t{\t\t\t\n\t\t\t\tvar dialogContent = [\n\t\t\t\t\t\"<div class=\\\"editormd-form\\\" style=\\\"padding: 10px 0;\\\">\",\n\t\t\t\t\t\"<p style=\\\"margin: 0;\\\">\" + dialogLang.label + \" 1-\" + lineCount +\"&nbsp;&nbsp;&nbsp;<input type=\\\"number\\\" class=\\\"number-input\\\" style=\\\"width: 60px;\\\" value=\\\"1\\\" max=\\\"\" + lineCount + \"\\\" min=\\\"1\\\" data-line-number /></p>\",\n\t\t\t\t\t\"</div>\"\n\t\t\t\t].join(\"\\n\");\n\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 400,\n\t\t\t\t\theight     : 180,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n                        enter : [lang.buttons.enter, function() {\n\t\t\t\t\t\t\tvar line   = parseInt(this.find(\"[data-line-number]\").val());\n\n\t\t\t\t\t\t\tif (line < 1 || line > lineCount) {\n\t\t\t\t\t\t\t\talert(dialogLang.error);\n\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_this.gotoLine(line);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/help-dialog/help-dialog.js",
    "content": "/*!\n * Help dialog plugin for Editor.md\n *\n * @file        help-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"help-dialog\";\n\n\t\texports.fn.helpDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.help;\n\n\t\t\tif (editor.find(\".\" + dialogName).length < 1)\n\t\t\t{\t\t\t\n\t\t\t\tvar dialogContent = \"<div class=\\\"markdown-body\\\" style=\\\"font-family:微软雅黑, Helvetica, Tahoma, STXihei,Arial;height:390px;overflow:auto;font-size:14px;border-bottom:1px solid #ddd;padding:0 20px 20px 0;\\\"></div>\";\n\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 840,\n\t\t\t\t\theight     : 540,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tclose : [lang.buttons.close, function() {      \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t\tvar helpContent = dialog.find(\".markdown-body\");\n\n\t\t\tif (helpContent.html() === \"\") \n\t\t\t{\n\t\t\t\t$.get(path + \"help.md\", function(text) {\n\t\t\t\t\tvar md = exports.$marked(text);\n\t\t\t\t\thelpContent.html(md);\n                    \n                    helpContent.find(\"a\").attr(\"target\", \"_blank\");\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/help-dialog/help.md",
    "content": "##### Markdown语法教程 (Markdown syntax tutorial)\n\n- [Markdown Syntax](http://daringfireball.net/projects/markdown/syntax/ \"Markdown Syntax\")\n- [Mastering Markdown](https://guides.github.com/features/mastering-markdown/ \"Mastering Markdown\")\n- [Markdown Basics](https://help.github.com/articles/markdown-basics/ \"Markdown Basics\")\n- [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/ \"GitHub Flavored Markdown\")\n- [Markdown 语法说明（简体中文）](http://www.markdown.cn/ \"Markdown 语法说明（简体中文）\")\n- [Markdown 語法說明（繁體中文）](http://markdown.tw/ \"Markdown 語法說明（繁體中文）\")\n\n##### 键盘快捷键 (Keyboard shortcuts)\n\n> If Editor.md code editor is on focus, you can use keyboard shortcuts.\n    \n| Keyboard shortcuts (键盘快捷键)                 |   说明                            | Description                                        |\n| :---------------------------------------------- |:--------------------------------- | :------------------------------------------------- |\n| F9                                              | 切换实时预览                      | Switch watch/unwatch                               |\n| F10                                             | 全屏HTML预览(按 Shift + ESC 退出) | Full preview HTML (Press Shift + ESC exit)         |\n| F11                                             | 切换全屏状态                      | Switch fullscreen (Press ESC exit)                 |\n| Ctrl + 1~6 / Command + 1~6                      | 插入标题1~6                       | Insert heading 1~6                                 |\n| Ctrl + A / Command + A                          | 全选                              | Select all                                         |\n| Ctrl + B / Command + B                          | 插入粗体                          | Insert bold                                        |\n| Ctrl + D / Command + D                          | 插入日期时间                      | Insert datetime                                    |\n| Ctrl + E / Command + E                          | 插入Emoji符号                     | Insert &#58;emoji&#58;                             |\n| Ctrl + F / Command + F                          | 查找/搜索                         | Start searching                                    |\n| Ctrl + G / Command + G                          | 切换到下一个搜索结果项            | Find next search results                           |\n| Ctrl + H / Command + H                          | 插入水平线                        | Insert horizontal rule                             |\n| Ctrl + I / Command + I                          | 插入斜体                          | Insert italic                                      |\n| Ctrl + K / Command + K                          | 插入行内代码                      | Insert inline code                                 |\n| Ctrl + L / Command + L                          | 插入链接                          | Insert link                                        |\n| Ctrl + U / Command + U                          | 插入无序列表                      | Insert unordered list                              |\n| Ctrl + Q                                        | 代码折叠切换                      | Switch code fold                                   |\n| Ctrl + Z / Command + Z                          | 撤销                              | Undo                                               |\n| Ctrl + Y / Command + Y                          | 重做                              | Redo                                               |\n| Ctrl + Shift + A                                | 插入@链接                         | Insert &#64;link                                   |\n| Ctrl + Shift + C                                | 插入行内代码                      | Insert inline code                                 |\n| Ctrl + Shift + E                                | 打开插入Emoji表情对话框           | Open emoji dialog                                  |\n| Ctrl + Shift + F / Command + Option + F         | 替换                              | Replace                                            |\n| Ctrl + Shift + G / Shift + Command + G          | 切换到上一个搜索结果项            | Find previous search results                       |\n| Ctrl + Shift + H                                | 打开HTML实体字符对话框            | Open HTML Entities dialog                          |\n| Ctrl + Shift + I                                | 插入图片                          | Insert image &#33;[]&#40;&#41;                     |\n| Ctrl + Shift + K                                | 插入TeX(KaTeX)公式符号            | Insert TeX(KaTeX) symbol &#36;&#36;TeX&#36;&#36;   |\n| Ctrl + Shift + L                                | 打开插入链接对话框                | Open link dialog                                   |\n| Ctrl + Shift + O                                | 插入有序列表                      | Insert ordered list                                |\n| Ctrl + Shift + P                                | 打开插入PRE对话框                 | Open Preformatted text dialog                      |\n| Ctrl + Shift + Q                                | 插入引用                          | Insert blockquotes                                 |\n| Ctrl + Shift + R / Shift + Command + Option + F | 全部替换                          | Replace all                                        |\n| Ctrl + Shift + S                                | 插入删除线                        | Insert strikethrough                               |\n| Ctrl + Shift + T                                | 打开插入表格对话框                | Open table dialog                                  |\n| Ctrl + Shift + U                                | 将所选文字转成大写                | Selection text convert to uppercase                |\n| Shift + Alt + C                                 | 插入```代码                       | Insert code blocks (```)                           |\n| Shift + Alt + H                                 | 打开使用帮助对话框                | Open help dialog                                   |\n| Shift + Alt + L                                 | 将所选文本转成小写                | Selection text convert to lowercase                |\n| Shift + Alt + P                                 | 插入分页符                        | Insert page break                                  |\n| Alt + L                                         | 将所选文本转成小写                | Selection text convert to lowercase                |\n| Shift + Alt + U                                 | 将所选的每个单词的首字母转成大写  | Selection words first letter convert to Uppercase  |\n| Ctrl + Shift + Alt + C                          | 打开插入代码块对话框层            | Open code blocks dialog                            |\n| Ctrl + Shift + Alt + I                          | 打开插入图片对话框层              | Open image dialog                                  |\n| Ctrl + Shift + Alt + U                          | 将所选文本的第一个首字母转成大写  | Selection text first letter convert to uppercase   |\n| Ctrl + Alt + G                                  | 跳转到指定的行                    | Goto line                                          |\n\n##### Emoji表情参考 (Emoji reference)\n\n- [Github emoji](http://www.emoji-cheat-sheet.com/ \"Github emoji\")\n- [Twitter Emoji \\(Twemoji\\)](http://twitter.github.io/twemoji/preview.html \"Twitter Emoji \\(Twemoji\\)\")\n- [FontAwesome icons emoji](http://fortawesome.github.io/Font-Awesome/icons/ \"FontAwesome icons emoji\")\n\n##### 流程图参考 (Flowchart reference)\n\n[http://adrai.github.io/flowchart.js/](http://adrai.github.io/flowchart.js/)\n\n##### 时序图参考 (SequenceDiagram reference)\n\n[http://bramp.github.io/js-sequence-diagrams/](http://bramp.github.io/js-sequence-diagrams/)\n\n##### TeX/LaTeX reference\n\n[http://meta.wikimedia.org/wiki/Help:Formula](http://meta.wikimedia.org/wiki/Help:Formula)\n"
  },
  {
    "path": "public/static/home/editormd/plugins/html-entities-dialog/html-entities-dialog.js",
    "content": "/*!\n * HTML entities dialog plugin for Editor.md\n *\n * @file        html-entities-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"html-entities-dialog\";\n\t\tvar selecteds    = [];\n\t\tvar entitiesData = [];\n\n\t\texports.fn.htmlEntitiesDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = _this.classPrefix;\n\n\t\t\tvar dialogName  = classPrefix + \"dialog-\" + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.htmlEntities;\n\n\t\t\tvar dialogContent = [\n\t\t\t\t'<div class=\"' + classPrefix + 'html-entities-box\" style=\\\"width: 760px;height: 334px;margin-bottom: 8px;overflow: hidden;overflow-y: auto;\\\">',\n\t\t\t\t'<div class=\"' + classPrefix + 'grid-table\">',\n\t\t\t\t'</div>',\n\t\t\t\t'</div>',\n\t\t\t].join(\"\\r\\n\");\n\n\t\t\tcm.focus();\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tselecteds = [];\n\t\t\t\tdialog.find(\"a\").removeClass(\"selected\");\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 800,\n\t\t\t\t\theight     : 475,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tenter  : [lang.buttons.enter, function() {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcm.replaceSelection(selecteds.join(\" \"));\n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tcancel : [lang.buttons.cancel, function() {                           \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t\t\n\t\t\tvar table = dialog.find(\".\" + classPrefix + \"grid-table\");\n\n\t\t\tvar drawTable = function() {\n\n\t\t\t\tif (entitiesData.length < 1) return ;\n\n\t\t\t\tvar rowNumber = 20;\n\t\t\t\tvar pageTotal = Math.ceil(entitiesData.length / rowNumber);\n\n\t\t\t\ttable.html(\"\");\n\t\t\t\t\n\t\t\t\tfor (var i = 0; i < pageTotal; i++)\n\t\t\t\t{\n\t\t\t\t\tvar row = \"<div class=\\\"\" + classPrefix + \"grid-table-row\\\">\";\n\t\t\t\t\t\n\t\t\t\t\tfor (var x = 0; x < rowNumber; x++)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar entity = entitiesData[(i * rowNumber) + x];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (typeof entity !== \"undefined\")\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar name = entity.name.replace(\"&amp;\", \"&\");\n\n\t\t\t\t\t\t\trow += \"<a href=\\\"javascript:;\\\" value=\\\"\" + entity.name + \"\\\" title=\\\"\" + name + \"\\\" class=\\\"\" + classPrefix + \"html-entity-btn\\\">\" + name + \"</a>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trow += \"</div>\";\n\t\t\t\t\t\n\t\t\t\t\ttable.append(row);\n\t\t\t\t}\n\n\t\t\t\tdialog.find(\".\" + classPrefix + \"html-entity-btn\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\t\t$(this).toggleClass(\"selected\");\n\n\t\t\t\t\tif ($(this).hasClass(\"selected\")) \n\t\t\t\t\t{\n\t\t\t\t\t\tselecteds.push($(this).attr(\"value\"));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tif (entitiesData.length < 1) \n\t\t\t{            \n\t\t\t\tif (typeof (dialog.loading) == \"function\") dialog.loading(true);\n\n\t\t\t\t$.getJSON(path + pluginName.replace(\"-dialog\", \"\") + \".json\", function(json) {\n\n\t\t\t\t\tif (typeof (dialog.loading) == \"function\") dialog.loading(false);\n\n\t\t\t\t\tentitiesData = json;\n\t\t\t\t\tdrawTable();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\t\t\n\t\t\t\tdrawTable();\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/html-entities-dialog/html-entities.json",
    "content": "[\n\t{\n\t\t\"name\" : \"&amp;#64;\",\n\t\t\"description\":\"at symbol\"\t\t\n\t},\n\t{\n\t\t\"name\":\"&amp;copy;\",\n\t\t\"description\":\"copyright symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;reg;\",\n\t\t\"description\":\"registered symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;trade;\",\n\t\t\"description\":\"trademark symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hearts;\",\n\t\t\"description\":\"heart\"\n\t},\n\t{\n\t\t\"name\":\"&amp;nbsp;\",\n\t\t\"description\":\"Inserts a non-breaking blank space\"\n\t},\n\t{\n\t\t\"name\":\"&amp;amp;\",\n\t\t\"description\":\"Ampersand\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#36;\",\n\t\t\"description\":\"dollar symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;cent;\",\n\t\t\"description\":\"Cent symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;pound;\",\n\t\t\"description\":\"Pound\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yen;\",\n\t\t\"description\":\"Yen\"\n\t},\n\t{\n\t\t\"name\":\"&amp;euro;\",\n\t\t\"description\":\"Euro symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;quot;\",\n\t\t\"description\":\"quotation mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ldquo;\",\n\t\t\"description\":\"Opening Double Quotes \"\n\t},\n\t{\n\t\t\"name\":\"&amp;rdquo;\",\n\t\t\"description\":\"Closing Double Quotes \"\n\t},\n\t{\n\t\t\"name\":\"&amp;lsquo;\",\n\t\t\"description\":\"Opening Single Quote Mark \"\n\t},\n\t{\n\t\t\"name\":\"&amp;rsquo;\",\n\t\t\"description\":\"Closing Single Quote Mark \"\n\t},\n\t{\n\t\t\"name\":\"&amp;laquo;\",\n\t\t\"description\":\"angle quotation mark (left)\"\n\t},\n\t{\n\t\t\"name\":\"&amp;raquo;\",\n\t\t\"description\":\"angle quotation mark (right)\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lsaquo;\",\n\t\t\"description\":\"single left angle quotation\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rsaquo;\",\n\t\t\"description\":\"single right angle quotation\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sect;\",\n\t\t\"description\":\"Section Symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;micro;\",\n\t\t\"description\":\"micro sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;para;\",\n\t\t\"description\":\"Paragraph symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;bull;\",\n\t\t\"description\":\"Big List Dot\"\n\t},\n\t{\n\t\t\"name\":\"&amp;middot;\",\n\t\t\"description\":\"Medium List Dot\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hellip;\",\n\t\t\"description\":\"horizontal ellipsis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#124;\",\n\t\t\"description\":\"vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;brvbar;\",\n\t\t\"description\":\"broken vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ndash;\",\n\t\t\"description\":\"en-dash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;mdash;\",\n\t\t\"description\":\"em-dash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;curren;\",\n\t\t\"description\":\"Generic currency symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#33;\",\n\t\t\"description\":\"exclamation point\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#35;\",\n\t\t\"description\":\"number sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#39;\",\n\t\t\"description\":\"single quote\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#40;\",\n\t\t\"description\":\"\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#41;\",\n\t\t\"description\":\"\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#42;\",\n\t\t\"description\":\"asterisk\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#43;\",\n\t\t\"description\":\"plus sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#44;\",\n\t\t\"description\":\"comma\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#45;\",\n\t\t\"description\":\"minus sign - hyphen\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#46;\",\n\t\t\"description\":\"period\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#47;\",\n\t\t\"description\":\"slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#48;\",\n\t\t\"description\":\"0\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#49;\",\n\t\t\"description\":\"1\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#50;\",\n\t\t\"description\":\"2\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#51;\",\n\t\t\"description\":\"3\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#52;\",\n\t\t\"description\":\"4\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#53;\",\n\t\t\"description\":\"5\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#54;\",\n\t\t\"description\":\"6\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#55;\",\n\t\t\"description\":\"7\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#56;\",\n\t\t\"description\":\"8\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#57;\",\n\t\t\"description\":\"9\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#58;\",\n\t\t\"description\":\"colon\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#59;\",\n\t\t\"description\":\"semicolon\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#61;\",\n\t\t\"description\":\"equal sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#63;\",\n\t\t\"description\":\"question mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lt;\",\n\t\t\"description\":\"Less than\"\n\t},\n\t{\n\t\t\"name\":\"&amp;gt;\",\n\t\t\"description\":\"Greater than\"\n\t},\n\t{\n\t\t\"name\":\"&amp;le;\",\n\t\t\"description\":\"Less than or Equal to\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ge;\",\n\t\t\"description\":\"Greater than or Equal to\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"Multiplication symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;divide;\",\n\t\t\"description\":\"Division symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;minus;\",\n\t\t\"description\":\"Minus symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;plusmn;\",\n\t\t\"description\":\"Plus/minus symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ne;\",\n\t\t\"description\":\"Not Equal\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup1;\",\n\t\t\"description\":\"Superscript 1\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup2;\",\n\t\t\"description\":\"Superscript 2\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup3;\",\n\t\t\"description\":\"Superscript 3\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac12;\",\n\t\t\"description\":\"Fraction ½\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac14;\",\n\t\t\"description\":\"Fraction ¼\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac34;\",\n\t\t\"description\":\"Fraction ¾\"\n\t},\n\t{\n\t\t\"name\":\"&amp;permil;\",\n\t\t\"description\":\"per mille\"\n\t},\n\t{\n\t\t\"name\":\"&amp;deg;\",\n\t\t\"description\":\"Degree symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;radic;\",\n\t\t\"description\":\"square root\"\n\t},\n\t{\n\t\t\"name\":\"&amp;infin;\",\n\t\t\"description\":\"Infinity\"\n\t},\n\t{\n\t\t\"name\":\"&amp;larr;\",\n\t\t\"description\":\"left arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uarr;\",\n\t\t\"description\":\"up arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rarr;\",\n\t\t\"description\":\"right arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;darr;\",\n\t\t\"description\":\"down arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;harr;\",\n\t\t\"description\":\"left right arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;crarr;\",\n\t\t\"description\":\"carriage return arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lceil;\",\n\t\t\"description\":\"left ceiling\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rceil;\",\n\t\t\"description\":\"right ceiling\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lfloor;\",\n\t\t\"description\":\"left floor\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rfloor;\",\n\t\t\"description\":\"right floor\"\n\t},\n\t{\n\t\t\"name\":\"&amp;spades;\",\n\t\t\"description\":\"spade\"\n\t},\n\t{\n\t\t\"name\":\"&amp;clubs;\",\n\t\t\"description\":\"club\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hearts;\",\n\t\t\"description\":\"heart\"\n\t},\n\t{\n\t\t\"name\":\"&amp;diams;\",\n\t\t\"description\":\"diamond\"\n\t},\n\t{\n\t\t\"name\":\"&amp;loz;\",\n\t\t\"description\":\"lozenge\"\n\t},\n\t{\n\t\t\"name\":\"&amp;dagger;\",\n\t\t\"description\":\"dagger\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Dagger;\",\n\t\t\"description\":\"double dagger\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iexcl;\",\n\t\t\"description\":\"inverted exclamation mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iquest;\",\n\t\t\"description\":\"inverted question mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#338;\",\n\t\t\"description\":\"latin capital letter OE\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#339;\",\n\t\t\"description\":\"latin small letter oe\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#352;\",\n\t\t\"description\":\"latin capital letter S with caron\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#353;\",\n\t\t\"description\":\"latin small letter s with caron\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#376;\",\n\t\t\"description\":\"latin capital letter Y with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#402;\",\n\t\t\"description\":\"latin small f with hook - function\"\n\t},\n\t{\n\t\t\"name\":\"&amp;not;\",\n\t\t\"description\":\"not sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ordf;\",\n\t\t\"description\":\"feminine ordinal indicator\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uml;\",\n\t\t\"description\":\"spacing diaeresis - umlaut\"\n\t},\n\t{\n\t\t\"name\":\"&amp;macr;\",\n\t\t\"description\":\"spacing macron - overline\"\n\t},\n\t{\n\t\t\"name\":\"&amp;acute;\",\n\t\t\"description\":\"acute accent - spacing acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Agrave;\",\n\t\t\"description\":\"latin capital letter A with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Aacute;\",\n\t\t\"description\":\"latin capital letter A with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Acirc;\",\n\t\t\"description\":\"latin capital letter A with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Atilde;\",\n\t\t\"description\":\"latin capital letter A with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Auml;\",\n\t\t\"description\":\"latin capital letter A with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Aring;\",\n\t\t\"description\":\"latin capital letter A with ring above\"\n\t},\n\t{\n\t\t\"name\":\"&amp;AElig;\",\n\t\t\"description\":\"latin capital letter AE\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ccedil;\",\n\t\t\"description\":\"latin capital letter C with cedilla\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Egrave;\",\n\t\t\"description\":\"latin capital letter E with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Eacute;\",\n\t\t\"description\":\"latin capital letter E with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ecirc;\",\n\t\t\"description\":\"latin capital letter E with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Euml;\",\n\t\t\"description\":\"latin capital letter E with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Igrave;\",\n\t\t\"description\":\"latin capital letter I with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iacute;\",\n\t\t\"description\":\"latin capital letter I with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Icirc;\",\n\t\t\"description\":\"latin capital letter I with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iuml;\",\n\t\t\"description\":\"latin capital letter I with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;ETH;\",\n\t\t\"description\":\"latin capital letter ETH\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ntilde;\",\n\t\t\"description\":\"latin capital letter N with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ograve;\",\n\t\t\"description\":\"latin capital letter O with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Oacute;\",\n\t\t\"description\":\"latin capital letter O with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ocirc;\",\n\t\t\"description\":\"latin capital letter O with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Otilde;\",\n\t\t\"description\":\"latin capital letter O with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ouml;\",\n\t\t\"description\":\"latin capital letter O with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"multiplication sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Oslash;\",\n\t\t\"description\":\"latin capital letter O with slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ugrave;\",\n\t\t\"description\":\"latin capital letter U with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Uacute;\",\n\t\t\"description\":\"latin capital letter U with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ucirc;\",\n\t\t\"description\":\"latin capital letter U with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Uuml;\",\n\t\t\"description\":\"latin capital letter U with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Yacute;\",\n\t\t\"description\":\"latin capital letter Y with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;THORN;\",\n\t\t\"description\":\"latin capital letter THORN\"\n\t},\n\t{\n\t\t\"name\":\"&amp;szlig;\",\n\t\t\"description\":\"latin small letter sharp s - ess-zed\"\n\t},\n\n\n\t{\n\t\t\"name\":\"&amp;eth;\",\n\t\t\"description\":\"latin capital letter eth\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ntilde;\",\n\t\t\"description\":\"latin capital letter n with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ograve;\",\n\t\t\"description\":\"latin capital letter o with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;oacute;\",\n\t\t\"description\":\"latin capital letter o with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ocirc;\",\n\t\t\"description\":\"latin capital letter o with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;otilde;\",\n\t\t\"description\":\"latin capital letter o with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ouml;\",\n\t\t\"description\":\"latin capital letter o with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"multiplication sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;oslash;\",\n\t\t\"description\":\"latin capital letter o with slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ugrave;\",\n\t\t\"description\":\"latin capital letter u with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uacute;\",\n\t\t\"description\":\"latin capital letter u with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ucirc;\",\n\t\t\"description\":\"latin capital letter u with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uuml;\",\n\t\t\"description\":\"latin capital letter u with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yacute;\",\n\t\t\"description\":\"latin capital letter y with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;thorn;\",\n\t\t\"description\":\"latin capital letter thorn\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yuml;\",\n\t\t\"description\":\"latin small letter y with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;agrave;\",\n\t\t\"description\":\"latin capital letter a with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aacute;\",\n\t\t\"description\":\"latin capital letter a with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;acirc;\",\n\t\t\"description\":\"latin capital letter a with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;atilde;\",\n\t\t\"description\":\"latin capital letter a with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;auml;\",\n\t\t\"description\":\"latin capital letter a with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aring;\",\n\t\t\"description\":\"latin capital letter a with ring above\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aelig;\",\n\t\t\"description\":\"latin capital letter ae\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ccedil;\",\n\t\t\"description\":\"latin capital letter c with cedilla\"\n\t},\n\t{\n\t\t\"name\":\"&amp;egrave;\",\n\t\t\"description\":\"latin capital letter e with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;eacute;\",\n\t\t\"description\":\"latin capital letter e with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ecirc;\",\n\t\t\"description\":\"latin capital letter e with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;euml;\",\n\t\t\"description\":\"latin capital letter e with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;igrave;\",\n\t\t\"description\":\"latin capital letter i with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iacute;\",\n\t\t\"description\":\"latin capital letter i with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;icirc;\",\n\t\t\"description\":\"latin capital letter i with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iuml;\",\n\t\t\"description\":\"latin capital letter i with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;#65;\",\n\t\t\"description\":\"A\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#66;\",\n\t\t\"description\":\"B\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#67;\",\n\t\t\"description\":\"C\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#68;\",\n\t\t\"description\":\"D\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#69;\",\n\t\t\"description\":\"E\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#70;\",\n\t\t\"description\":\"F\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#71;\",\n\t\t\"description\":\"G\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#72;\",\n\t\t\"description\":\"H\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#73;\",\n\t\t\"description\":\"I\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#74;\",\n\t\t\"description\":\"J\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#75;\",\n\t\t\"description\":\"K\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#76;\",\n\t\t\"description\":\"L\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#77;\",\n\t\t\"description\":\"M\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#78;\",\n\t\t\"description\":\"N\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#79;\",\n\t\t\"description\":\"O\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#80;\",\n\t\t\"description\":\"P\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#81;\",\n\t\t\"description\":\"Q\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#82;\",\n\t\t\"description\":\"R\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#83;\",\n\t\t\"description\":\"S\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#84;\",\n\t\t\"description\":\"T\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#85;\",\n\t\t\"description\":\"U\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#86;\",\n\t\t\"description\":\"V\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#87;\",\n\t\t\"description\":\"W\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#88;\",\n\t\t\"description\":\"X\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#89;\",\n\t\t\"description\":\"Y\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#90;\",\n\t\t\"description\":\"Z\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#91;\",\n\t\t\"description\":\"opening bracket\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#92;\",\n\t\t\"description\":\"backslash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#93;\",\n\t\t\"description\":\"closing bracket\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#94;\",\n\t\t\"description\":\"caret - circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#95;\",\n\t\t\"description\":\"underscore\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;#96;\",\n\t\t\"description\":\"grave accent\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#97;\",\n\t\t\"description\":\"a\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#98;\",\n\t\t\"description\":\"b\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#99;\",\n\t\t\"description\":\"c\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#100;\",\n\t\t\"description\":\"d\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#101;\",\n\t\t\"description\":\"e\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#102;\",\n\t\t\"description\":\"f\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#103;\",\n\t\t\"description\":\"g\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#104;\",\n\t\t\"description\":\"h\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#105;\",\n\t\t\"description\":\"i\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#106;\",\n\t\t\"description\":\"j\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#107;\",\n\t\t\"description\":\"k\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#108;\",\n\t\t\"description\":\"l\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#109;\",\n\t\t\"description\":\"m\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#110;\",\n\t\t\"description\":\"n\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#111;\",\n\t\t\"description\":\"o\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#112;\",\n\t\t\"description\":\"p\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#113;\",\n\t\t\"description\":\"q\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#114;\",\n\t\t\"description\":\"r\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#115;\",\n\t\t\"description\":\"s\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#116;\",\n\t\t\"description\":\"t\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#117;\",\n\t\t\"description\":\"u\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#118;\",\n\t\t\"description\":\"v\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#119;\",\n\t\t\"description\":\"w\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#120;\",\n\t\t\"description\":\"x\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#121;\",\n\t\t\"description\":\"y\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#122;\",\n\t\t\"description\":\"z\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#123;\",\n\t\t\"description\":\"opening brace\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#124;\",\n\t\t\"description\":\"vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#125;\",\n\t\t\"description\":\"closing brace\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#126;\",\n\t\t\"description\":\"equivalency sign - tilde\"\n\t}\n]"
  },
  {
    "path": "public/static/home/editormd/plugins/image-dialog/image-dialog.js",
    "content": "/*!\n * Image (upload) dialog plugin for Editor.md\n *\n * @file        image-dialog.js\n * @author      pandao\n * @version     1.3.4\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"image-dialog\";\n\n\t\texports.fn.imageDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var imageLang   = lang.dialog.image;\n            var classPrefix = this.classPrefix;\n            var iframeName  = classPrefix + \"image-iframe\";\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            var loading = function(show) {\n                var _loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n                _loading[(show) ? \"show\" : \"hide\"]();\n            };\n\n            if (editor.find(\".\" + dialogName).length < 1)\n            {\n                var guid   = (new Date).getTime();\n                var action = settings.imageUploadURL + (settings.imageUploadURL.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"guid=\" + guid;\n\n                if (settings.crossDomainUpload)\n                {\n                    action += \"&callback=\" + settings.uploadCallbackURL + \"&dialog_id=editormd-image-dialog-\" + guid;\n                }\n\n                var dialogContent = ( (settings.imageUpload) ? \"<form action=\\\"\" + action +\"\\\" target=\\\"\" + iframeName + \"\\\" method=\\\"post\\\" enctype=\\\"multipart/form-data\\\" class=\\\"\" + classPrefix + \"form\\\">\" : \"<div class=\\\"\" + classPrefix + \"form\\\">\" ) +\n                                        ( (settings.imageUpload) ? \"<iframe name=\\\"\" + iframeName + \"\\\" id=\\\"\" + iframeName + \"\\\" guid=\\\"\" + guid + \"\\\"></iframe>\" : \"\" ) +\n                                        \"<label>\" + imageLang.url + \"</label>\" +\n                                        \"<input type=\\\"text\\\" data-url />\" + (function(){\n                                            return (settings.imageUpload) ? \"<div class=\\\"\" + classPrefix + \"file-input\\\">\" +\n                                                                                \"<input type=\\\"file\\\" name=\\\"\" + classPrefix + \"image-file\\\" accept=\\\"image/*\\\" />\" +\n                                                                                \"<input type=\\\"submit\\\" value=\\\"\" + imageLang.uploadButton + \"\\\" />\" +\n                                                                            \"</div>\" : \"\";\n                                        })() +\n                                        \"<br/>\" +\n                                        \"<label>\" + imageLang.alt + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-alt />\" +\n                                        \"<br/>\" +\n                                        \"<label>\" + imageLang.link + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-link />\" +\n                                        \"<br/>\" +\n                                    ( (settings.imageUpload) ? \"</form>\" : \"</div>\");\n\n                //var imageFooterHTML = \"<button class=\\\"\" + classPrefix + \"btn \" + classPrefix + \"image-manager-btn\\\" style=\\\"float:left;\\\">\" + imageLang.managerButton + \"</button>\";\n\n                dialog = this.createDialog({\n                    title      : imageLang.title,\n                    width      : (settings.imageUpload) ? 465 : 380,\n                    height     : 254,\n                    name       : dialogName,\n                    content    : dialogContent,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter : [lang.buttons.enter, function() {\n                            var url  = this.find(\"[data-url]\").val();\n                            var alt  = this.find(\"[data-alt]\").val();\n                            var link = this.find(\"[data-link]\").val();\n\n                            if (url === \"\")\n                            {\n                                alert(imageLang.imageURLEmpty);\n                                return false;\n                            }\n\n\t\t\t\t\t\t\tvar altAttr = (alt !== \"\") ? \" \\\"\" + alt + \"\\\"\" : \"\";\n\n                            if (link === \"\" || link === \"http://\")\n                            {\n                                cm.replaceSelection(\"![\" + alt + \"](\" + url + altAttr + \")\");\n                            }\n                            else\n                            {\n                                cm.replaceSelection(\"[![\" + alt + \"](\" + url + altAttr + \")](\" + link + altAttr + \")\");\n                            }\n\n                            if (alt === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 2);\n                            }\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            //删除对话框\n                            this.remove();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {\n                            this.hide().lockScreen(false).hideMask();\n\n                            //删除对话框\n                            this.remove();\n                            \n                            return false;\n                        }]\n                    }\n                });\n\n                dialog.attr(\"id\", classPrefix + \"image-dialog-\" + guid);\n\n\t\t\t\tif (!settings.imageUpload) {\n                    return ;\n                }\n\n\t\t\t\tvar fileInput  = dialog.find(\"[name=\\\"\" + classPrefix + \"image-file\\\"]\");\n\n\t\t\t\tfileInput.bind(\"change\", function() {\n\t\t\t\t\tvar fileName  = fileInput.val();\n\t\t\t\t\tvar isImage   = new RegExp(\"(\\\\.(\" + settings.imageFormats.join(\"|\") + \"))$\", \"i\"); // /(\\.(webp|jpg|jpeg|gif|bmp|png))$/\n\n\t\t\t\t\tif (fileName === \"\")\n\t\t\t\t\t{\n\t\t\t\t\t\talert(imageLang.uploadFileEmpty);\n\n                        return false;\n\t\t\t\t\t}\n\n                    if (!isImage.test(fileName))\n\t\t\t\t\t{\n\t\t\t\t\t\talert(imageLang.formatNotAllowed + settings.imageFormats.join(\", \"));\n\n                        return false;\n\t\t\t\t\t}\n\n                    loading(true);\n\n                    var submitHandler = function() {\n\n                        var uploadIframe = document.getElementById(iframeName);\n\n                        uploadIframe.onload = function() {\n\n                            loading(false);\n\n                            var body = (uploadIframe.contentWindow ? uploadIframe.contentWindow : uploadIframe.contentDocument).document.body;\n                            var json = (body.innerText) ? body.innerText : ( (body.textContent) ? body.textContent : null);\n\n                            json = (typeof JSON.parse !== \"undefined\") ? JSON.parse(json) : eval(\"(\" + json + \")\");\n\n                            if(!settings.crossDomainUpload)\n                            {\n                              if (json.success === 1)\n                              {\n                                  dialog.find(\"[data-url]\").val(json.url);\n                              }\n                              else\n                              {\n                                  alert(json.message);\n                              }\n                            }\n\n                            return false;\n                        };\n                    };\n\n                    dialog.find(\"[type=\\\"submit\\\"]\").bind(\"click\", submitHandler).trigger(\"click\");\n\t\t\t\t});\n            }\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\t\t\tdialog.find(\"[type=\\\"text\\\"]\").val(\"\");\n\t\t\tdialog.find(\"[type=\\\"file\\\"]\").val(\"\");\n\t\t\tdialog.find(\"[data-link]\").val(\"http://\");\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t};\n\n\t};\n\n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    {\n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t}\n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/link-dialog/link-dialog.js",
    "content": "/*!\n * Link dialog plugin for Editor.md\n *\n * @file        link-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"link-dialog\";\n\n\t\texports.fn.linkDialog = function() {\n\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var selection   = cm.getSelection();\n            var lang        = this.lang;\n            var linkLang    = lang.dialog.link;\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"[data-url]\").val(\"http://\");\n                dialog.find(\"[data-title]\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else\n            {\n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"form\\\">\" + \n                                        \"<label>\" + linkLang.url + \"</label>\" + \n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-url />\" +\n                                        \"<br/>\" + \n                                        \"<label>\" + linkLang.urlTitle + \"</label>\" + \n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-title />\" + \n                                        \"<br/>\" +\n                                    \"</div>\";\n\n                dialog = this.createDialog({\n                    title      : linkLang.title,\n                    width      : 380,\n                    height     : 211,\n                    content    : dialogHTML,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons    : {\n                        enter  : [lang.buttons.enter, function() {\n                            var url   = this.find(\"[data-url]\").val();\n                            var title = this.find(\"[data-title]\").val();\n\n                            if (url === \"http://\" || url === \"\")\n                            {\n                                alert(linkLang.urlEmpty);\n                                return false;\n                            }\n\n                            /*if (title === \"\")\n                            {\n                                alert(linkLang.titleEmpty);\n                                return false;\n                            }*/\n                            \n                            var str = \"[\" + title + \"](\" + url + \" \\\"\" + title + \"\\\")\";\n                            \n                            if (title == \"\")\n                            {\n                                str = \"[\" + url + \"](\" + url + \")\";\n                            }                                \n\n                            cm.replaceSelection(str);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/plugin-template.js",
    "content": "/*!\n * Link dialog plugin for Editor.md\n *\n * @file        link-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar $            = jQuery;           // if using module loader(Require.js/Sea.js).\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"单元格数\",\n\t\t\t\t\t\talignLabel : \"对齐方式\",\n\t\t\t\t\t\trows       : \"行数\",\n\t\t\t\t\t\tcols       : \"列数\",\n\t\t\t\t\t\taligns     : [\"默认\", \"左对齐\", \"居中对齐\", \"右对齐\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"添加表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"單元格數\",\n\t\t\t\t\t\talignLabel : \"對齊方式\",\n\t\t\t\t\t\trows       : \"行數\",\n\t\t\t\t\t\tcols       : \"列數\",\n\t\t\t\t\t\taligns     : [\"默認\", \"左對齊\", \"居中對齊\", \"右對齊\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"Tables\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"Tables\",\n\t\t\t\t\t\tcellsLabel : \"Cells\",\n\t\t\t\t\t\talignLabel : \"Align\",\n\t\t\t\t\t\trows       : \"Rows\",\n\t\t\t\t\t\tcols       : \"Cols\",\n\t\t\t\t\t\taligns     : [\"Default\", \"Left align\", \"Center align\", \"Right align\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.htmlEntities = function() {\n\t\t\t/*\n\t\t\tvar _this       = this; // this == the current instance object of Editor.md\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]); // l18n\n\t\t\tthis.setToolbar();\n\n\t\t\tcm.focus();\n\t\t\t*/\n\t\t\t//....\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/preformatted-text-dialog/preformatted-text-dialog.js",
    "content": "/*!\n * Preformatted text dialog plugin for Editor.md\n *\n * @file        preformatted-text-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\t\tvar cmEditor;\n\t\tvar pluginName   = \"preformatted-text-dialog\";\n\n\t\texports.fn.preformattedTextDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogLang  = lang.dialog.preformattedText;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"textarea\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else \n            {      \n                var dialogContent = \"<textarea placeholder=\\\"\" + dialogLang.placeholder + \"\\\" style=\\\"display:none;\\\">\" + selection + \"</textarea>\";\n\n                dialog = this.createDialog({\n                    name   : dialogName,\n                    title  : dialogLang.title,\n                    width  : 780,\n                    height : 540,\n                    mask   : settings.dialogShowMask,\n                    drag   : settings.dialogDraggable,\n                    content : dialogContent,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var codeTexts  = this.find(\"textarea\").val();\n\n                            if (codeTexts === \"\")\n                            {\n                                alert(dialogLang.emptyAlert);\n                                return false;\n                            }\n\n                            codeTexts = codeTexts.split(\"\\n\");\n\n                            for (var i in codeTexts)\n                            {\n                                codeTexts[i] = \"    \" + codeTexts[i];\n                            }\n                            \n                            codeTexts = codeTexts.join(\"\\n\");\n                            \n                            if (cursor.ch !== 0) {\n                                codeTexts = \"\\r\\n\\r\\n\" + codeTexts;\n                            }\n\n                            cm.replaceSelection(codeTexts);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                  \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\t\t\n\t\t\tvar cmConfig = {\n\t\t\t\tmode                      : \"text/html\",\n\t\t\t\ttheme                     : settings.theme,\n\t\t\t\ttabSize                   : 4,\n\t\t\t\tautofocus                 : true,\n\t\t\t\tautoCloseTags             : true,\n\t\t\t\tindentUnit                : 4,\n\t\t\t\tlineNumbers               : true,\n\t\t\t\tlineWrapping              : true,\n\t\t\t\textraKeys                 : {\"Ctrl-Q\": function(cm){ cm.foldCode(cm.getCursor()); }},\n\t\t\t\tfoldGutter                : true,\n\t\t\t\tgutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n\t\t\t\tmatchBrackets             : true,\n\t\t\t\tindentWithTabs            : true,\n\t\t\t\tstyleActiveLine           : true,\n\t\t\t\tstyleSelectedText         : true,\n\t\t\t\tautoCloseBrackets         : true,\n\t\t\t\tshowTrailingSpace         : true,\n\t\t\t\thighlightSelectionMatches : true\n\t\t\t};\n\t\t\t\n\t\t\tvar textarea = dialog.find(\"textarea\");\n\t\t\tvar cmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\tif (dialog.find(\".CodeMirror\").length < 1) \n\t\t\t{\n\t\t\t\tcmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig);\n\t\t\t\tcmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\t\tcmObj.css({\n\t\t\t\t\t\"float\"   : \"none\", \n\t\t\t\t\tmargin    : \"0 0 5px\",\n\t\t\t\t\tborder    : \"1px solid #ddd\",\n\t\t\t\t\tfontSize  : settings.fontSize,\n\t\t\t\t\twidth     : \"100%\",\n\t\t\t\t\theight    : \"410px\"\n\t\t\t\t});\n\n\t\t\t\tcmEditor.on(\"change\", function(cm) {\n\t\t\t\t\ttextarea.val(cm.getValue());\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\t\t\t\tcmEditor.setValue(cm.getSelection());\n\t\t\t}\n\t\t};\n\n\t};\n\n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/reference-link-dialog/reference-link-dialog.js",
    "content": "/*!\n * Reference link dialog plugin for Editor.md\n *\n * @file        reference-link-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"reference-link-dialog\";\n\t\tvar ReLinkId     = 1;\n\n\t\texports.fn.referenceLinkDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var dialogLang  = lang.dialog.referenceLink;\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length < 1)\n            {      \n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"form\\\">\" +\n                                        \"<label>\" + dialogLang.name + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"[\" + ReLinkId + \"]\\\" data-name />\" +  \n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.urlId + \"</label>\" +\n                                        \"<input type=\\\"text\\\" data-url-id />\" +\n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.url + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-url />\" + \n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.urlTitle + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-title />\" +\n                                        \"<br/>\" +\n                                    \"</div>\";\n\n                dialog = this.createDialog({   \n                    name       : dialogName,\n                    title      : dialogLang.title,\n                    width      : 380,\n                    height     : 296,\n                    content    : dialogHTML,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var name  = this.find(\"[data-name]\").val();\n                            var url   = this.find(\"[data-url]\").val();\n                            var rid   = this.find(\"[data-url-id]\").val();\n                            var title = this.find(\"[data-title]\").val();\n\n                            if (name === \"\")\n                            {\n                                alert(dialogLang.nameEmpty);\n                                return false;\n                            }\n\n                            if (rid === \"\")\n                            {\n                                alert(dialogLang.idEmpty);\n                                return false;\n                            }\n\n                            if (url === \"http://\" || url === \"\")\n                            {\n                                alert(dialogLang.urlEmpty);\n                                return false;\n                            }\n\n                            //cm.replaceSelection(\"[\" + title + \"][\" + name + \"]\\n[\" + name + \"]: \" + url + \"\");\n                            cm.replaceSelection(\"[\" + name + \"][\" + rid + \"]\");\n\n                            if (selection === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 1);\n                            }\n\n\t\t\t\t\t\t\ttitle = (title === \"\") ? \"\" : \" \\\"\" + title + \"\\\"\";\n\n\t\t\t\t\t\t\tcm.setValue(cm.getValue() + \"\\n[\" + rid + \"]: \" + url + title + \"\");\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\t\t\tdialog.find(\"[data-name]\").val(\"[\" + ReLinkId + \"]\");\n\t\t\tdialog.find(\"[data-url-id]\").val(\"\");\n\t\t\tdialog.find(\"[data-url]\").val(\"http://\");\n\t\t\tdialog.find(\"[data-title]\").val(selection);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t\tReLinkId++;\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/table-dialog/table-dialog.js",
    "content": "/*!\n * Table dialog plugin for Editor.md\n *\n * @file        table-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"table-dialog\";\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"单元格数\",\n\t\t\t\t\t\talignLabel : \"对齐方式\",\n\t\t\t\t\t\trows       : \"行数\",\n\t\t\t\t\t\tcols       : \"列数\",\n\t\t\t\t\t\taligns     : [\"默认\", \"左对齐\", \"居中对齐\", \"右对齐\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"添加表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"單元格數\",\n\t\t\t\t\t\talignLabel : \"對齊方式\",\n\t\t\t\t\t\trows       : \"行數\",\n\t\t\t\t\t\tcols       : \"列數\",\n\t\t\t\t\t\taligns     : [\"默認\", \"左對齊\", \"居中對齊\", \"右對齊\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"Tables\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"Tables\",\n\t\t\t\t\t\tcellsLabel : \"Cells\",\n\t\t\t\t\t\talignLabel : \"Align\",\n\t\t\t\t\t\trows       : \"Rows\",\n\t\t\t\t\t\tcols       : \"Cols\",\n\t\t\t\t\t\taligns     : [\"Default\", \"Left align\", \"Center align\", \"Right align\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.tableDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.path + \"../plugins/\" + pluginName +\"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogLang  = lang.dialog.table;\n\t\t\t\n\t\t\tvar dialogContent = [\n\t\t\t\t\"<div class=\\\"editormd-form\\\" style=\\\"padding: 13px 0;\\\">\",\n\t\t\t\t\"<label>\" + dialogLang.cellsLabel + \"</label>\",\n\t\t\t\tdialogLang.rows + \" <input type=\\\"number\\\" value=\\\"3\\\" class=\\\"number-input\\\" style=\\\"width:40px;\\\" max=\\\"100\\\" min=\\\"2\\\" data-rows />&nbsp;&nbsp;\",\n\t\t\t\tdialogLang.cols + \" <input type=\\\"number\\\" value=\\\"2\\\" class=\\\"number-input\\\" style=\\\"width:40px;\\\" max=\\\"100\\\" min=\\\"1\\\" data-cols /><br/>\",\n\t\t\t\t\"<label>\" + dialogLang.alignLabel + \"</label>\",\n\t\t\t\t\"<div class=\\\"fa-btns\\\"></div>\",\n\t\t\t\t\"</div>\"\n\t\t\t].join(\"\\n\");\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 360,\n\t\t\t\t\theight     : 226,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n                        enter : [lang.buttons.enter, function() {\n\t\t\t\t\t\t\tvar rows   = parseInt(this.find(\"[data-rows]\").val());\n\t\t\t\t\t\t\tvar cols   = parseInt(this.find(\"[data-cols]\").val());\n\t\t\t\t\t\t\tvar align  = this.find(\"[name=\\\"table-align\\\"]:checked\").val();\n\t\t\t\t\t\t\tvar table  = \"\";\n\t\t\t\t\t\t\tvar hrLine = \"------------\";\n\n\t\t\t\t\t\t\tvar alignSign = {\n\t\t\t\t\t\t\t\t_default : hrLine,\n\t\t\t\t\t\t\t\tleft     : \":\" + hrLine,\n\t\t\t\t\t\t\t\tcenter   : \":\" + hrLine + \":\",\n\t\t\t\t\t\t\t\tright    : hrLine + \":\"\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif ( rows > 1 && cols > 0) \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfor (var r = 0, len = rows; r < len; r++) \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvar row = [];\n\t\t\t\t\t\t\t\t\tvar head = [];\n\n\t\t\t\t\t\t\t\t\tfor (var c = 0, len2 = cols; c < len2; c++) \n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif (r === 1) {\n\t\t\t\t\t\t\t\t\t\t\thead.push(alignSign[align]);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\trow.push(\" \");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (r === 1) {\n\t\t\t\t\t\t\t\t\t\ttable += \"| \" + head.join(\" | \") + \" |\" + \"\\n\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttable += \"| \" + row.join( (cols === 1) ? \"\" : \" | \" ) + \" |\" + \"\\n\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcm.replaceSelection(table);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar faBtns = dialog.find(\".fa-btns\");\n\n\t\t\tif (faBtns.html() === \"\")\n\t\t\t{\n\t\t\t\tvar icons  = [\"align-justify\", \"align-left\", \"align-center\", \"align-right\"];\n\t\t\t\tvar _lang  = dialogLang.aligns;\n\t\t\t\tvar values = [\"_default\", \"left\", \"center\", \"right\"];\n\n\t\t\t\tfor (var i = 0, len = icons.length; i < len; i++) \n\t\t\t\t{\n\t\t\t\t\tvar checked = (i === 0) ? \" checked=\\\"checked\\\"\" : \"\";\n\t\t\t\t\tvar btn = \"<a href=\\\"javascript:;\\\"><label for=\\\"editormd-table-dialog-radio\"+i+\"\\\" title=\\\"\" + _lang[i] + \"\\\">\";\n\t\t\t\t\tbtn += \"<input type=\\\"radio\\\" name=\\\"table-align\\\" id=\\\"editormd-table-dialog-radio\"+i+\"\\\" value=\\\"\" + values[i] + \"\\\"\" +checked + \" />&nbsp;\";\n\t\t\t\t\tbtn += \"<i class=\\\"fa fa-\" + icons[i] + \"\\\"></i>\";\n\t\t\t\t\tbtn += \"</label></a>\";\n\n\t\t\t\t\tfaBtns.append(btn);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/plugins/test-plugin/test-plugin.js",
    "content": "/*!\n * Test plugin for Editor.md\n *\n * @file        test-plugin.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar $            = jQuery;           // if using module loader(Require.js/Sea.js).\n\n\t\texports.testPlugin = function(){\n\t\t\talert(\"testPlugin\");\n\t\t};\n\n\t\texports.fn.testPluginMethodA = function() {\n\t\t\t/*\n\t\t\tvar _this       = this; // this == the current instance object of Editor.md\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\tcm.focus();\n\t\t\t*/\n\t\t\t//....\n\n\t\t\talert(\"testPluginMethodA\");\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.codemirror.scss",
    "content": "@charset \"UTF-8\";\n\n.editormd .CodeMirror, #{$prefix}preview {\n    display: inline-block;\n    width: 50%;\n    height: 100%;\n    vertical-align: top;\n    @include box-sizing(border-box);\n    margin: 0;\n}\n\n#{$prefix}preview {\n    position: absolute;\n    top: 35px;\n    right: 0;\n    right: -1px\\0;\n    overflow: auto;\n    line-height: 1.6;\n    display: none;\n    background: #fff;\n    z-index:10;\n}\n\n.editormd {\n    \n    .CodeMirror {\n        z-index: 10;\n        float: left;\n        border-right: 1px solid $borderColor;\n        font-size: 14px;\n        font-family: \"YaHei Consolas Hybrid\", Consolas, \"微软雅黑\", \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", courier, monospace;\n        line-height: 1.6;\n        margin-top: 35px;\n\n\t\tpre {\n\t\t\tfont-size: 14px;\n            padding: 0 12px;\n\t\t}\n    }\n    \n    .CodeMirror-linenumbers {\n        padding: 0 5px;\n    }\n\n    .CodeMirror-selected {\n        background: #70B7FF;\n    }\n\n    .CodeMirror-focused .CodeMirror-selected { \n        background: #70B7FF; \n    }\n\n    .CodeMirror, .CodeMirror-scroll, #{$prefix}preview {\n        -webkit-overflow-scrolling : touch;\n    }\n\n    .styled-background { \n        background-color: #ff7; \n    }\n\n    .CodeMirror-focused .cm-matchhighlight {\n        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);\n        background-position: bottom;\n        background-repeat: repeat-x;\n    }\n    \n    .CodeMirror-empty { \n        //outline: 1px solid #c22;\n        \n        &.CodeMirror-focused { \n            outline: none;\n        }\n    }\n    \n    .CodeMirror pre.CodeMirror-placeholder { \n        color: #999;\n    }\n\n    .cm-trailingspace {\n        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);\n        background-position: bottom left;\n        background-repeat: repeat-x;\n    }\n\n    .cm-tab {\n        background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n        background-position: right;\n        background-repeat: no-repeat;\n    }\n}\n"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.dialog.scss",
    "content": "@charset \"UTF-8\";\n\n#{$prefix}dialog {\n    color: $color;\n    position: fixed;\n    z-index: 99999;\n    display: none;\n    @include border-radius(3px);\n    @include box-shadow(0 0 10px rgba(0, 0, 0, 0.3));\n    //@include user-select(none); \n    background: #fff;\n    font-size: 14px;\n}\n\n#{$prefix}dialog-container {\n    position: relative;\n    padding: 20px;\n    line-height: 1.4;\n\n    h1 {\n        font-size: 24px;\n        margin-bottom: 10px;\n\n        .fa {\n            color: #2C7EEA;\n            padding-right: 5px;\n        }\n\n        small {\n            padding-left: 5px;\n            font-weight: normal;\n            font-size:  12px;\n            color: #999;\n        }\n    } \n    \n    select {\n        color: #999;\n        padding: 3px 8px;\n        border: 1px solid $borderColor;\n    }\n}\n\n#{$prefix}dialog-close {\n    position: absolute;\n    top: 12px;\n    right: 15px;\n    font-size: 18px;\n    color: #ccc;\n    @include transition(color 300ms ease-out);\n\n    &:hover {\n        color: #999;\n    }\n} \n            \n#{$prefix}dialog-header {\n    padding: 11px 20px;    \n    border-bottom: 1px solid #eee;\n    @include transition(background 300ms ease-out);\n\n    &:hover {\n        background: #f6f6f6;\n    }\n}\n\n#{$prefix}dialog-title {\n    font-size: 14px;             \n}\n            \n#{$prefix}dialog-footer {\n    padding: 10px 0 0 0;\n    text-align: right;\n}\n\n#{$prefix}dialog-info {\n    width: 420px;\n    \n    h1 {\n        font-weight: normal;\n    }\n\n    #{$prefix}dialog-container {\n        padding: 20px 25px 25px;\n    }\n\n    #{$prefix}dialog-close {\n        top: 10px;\n        right: 10px;\n    } \n    \n    p > a, .hover-link:hover {   \n        color: #2196F3;\n    }\n    \n    .hover-link {\n        color: #666;\n    }\n    \n    a {\n        .fa-external-link {\n            display: none;\n        }\n\n        &:hover {    \n            color: #2196F3;\n            \n            .fa-external-link {\n                display: inline-block;\n            }\n        }\n    }\n}\n\n#{$prefix}mask,\n#{$prefix}container-mask,\n#{$prefix}dialog-mask {\n    display: none;\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    top: 0;\n    left: 0;\n}\n\n#{$prefix}mask,\n#{$prefix}dialog-mask-bg {\n    background: #fff;\n    opacity: 0.5;\n    filter: alpha(opacity=50);\n}\n\n#{$prefix}mask {\n    position: fixed;\n    background: #000;\n    @include opacity(0.2); \n    z-index: 99998;  \n}\n\n#{$prefix}container-mask, \n#{$prefix}dialog-mask-con {\n    background: url(../images/loading.gif) no-repeat center center;\n    @include background-size(32px 32px);\n}\n\n#{$prefix}container-mask {\n    z-index: 20;  \n    display: block;\n    background-color: #fff;    \n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n    #{$prefix}container-mask, \n    #{$prefix}dialog-mask-con {\n        background-image: url(../images/loading@2x.gif);\n    }\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {\n    #{$prefix}container-mask,\n    #{$prefix}dialog-mask-con {\n        background-image: url(../images/loading@3x.gif);\n    }\n}\n\n#{$prefix}code-block-dialog, \n#{$prefix}preformatted-text-dialog {\n    textarea {\n        width: 100%;\n        height: 400px;\n        margin-bottom: 6px;\n        overflow: auto;\n        border: 1px solid #eee;\n        background: #fff;\n        padding: 15px;\n        resize: none;\n    }\n}\n\n#{$prefix}code-toolbar {\n    color: #999;\n    font-size: 14px;\n    margin: -5px 0 10px;\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.form.scss",
    "content": "@charset \"UTF-8\";\n\n// Form\n            \n#{$prefix}form {\n    color: $color;\n    \n    label {\n        float: left;\n        display: block;\n        width: 75px;\n        text-align: left;\n        padding: 7px 0 15px 5px;\n        margin: 0 0 2px;\n        font-weight: normal;\n    }\n\n    br {\n        clear: both;\n    }\n\n    iframe {\n        display: none;\n    }\n\n    input:focus {\n        outline: 0;\n    }\n\n    input[type=\"text\"], input[type=\"number\"] {\n        color: #999;\n        padding: 8px;\n        border: 1px solid $borderColor;\n    }\n            \n    input[type=\"number\"] {\n        width: 40px;\n        display: inline-block;\n        padding: 6px 8px;\n    }\n\n    input[type=\"text\"] {\n        display: inline-block;\n        width: 264px;\n    }\n    \n    .fa-btns {\n        display: inline-block;\n\n        a {\n            color: #999;\n            padding: 7px 10px 0 0;\n            display: inline-block;\n            text-decoration: none;\n            text-align: center;\n        }\n\n        .fa {\n            font-size: 1.3em;\n        }\n\n        label {\n            float: none;\n            display: inline-block;\n            width: auto;\n            text-align: left;\n            padding: 0 0 0 5px;\n            cursor: pointer;\n        }\n    }\n}\n\n#{$prefix}form,\n#{$prefix}dialog-container,\n#{$prefix}dialog-footer {\n\n    input[type=\"submit\"], #{$prefix}btn, button {\n        color: $color;\n        min-width: 75px;\n        cursor: pointer;\n        background: #fff;\n        padding: 7px 10px;\n        border: 1px solid #ddd;\n        @include border-radius(3px);\n        @include transition(background 300ms ease-out);\n\n        &:hover {\n            background: #eee;\n        }\n    }\n\n    #{$prefix}btn {\n        padding: 5px 8px 4px\\0;\n    }\n\n    #{$prefix}btn + #{$prefix}btn {\n        margin-left: 8px;\n    }\n}\n\n#{$prefix}file-input {\n    width: 75px;\n    height: 32px;\n    margin-left: 8px;\n    position: relative;\n    display: inline-block;\n\n    input[type=\"file\"] {\n        width: 75px;\n        height: 32px;\n        opacity: 0;\n        cursor: pointer;\n        background: #000;\n        display: inline-block;\n        position: absolute;\n        top: 0;\n        right: 0;\n\n        &::-webkit-file-upload-button {\n            visibility: hidden;\n        }\n    }\n\n    input[type=\"submit\"]  {\n    }\n\n    &:hover input[type=\"submit\"]  {\n        background: #eee;\n    }\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.grid.scss",
    "content": "@charset \"utf-8\";\n\n.editormd-grid-table {\n    width: 99%;\n    display: table;\n    border: 1px solid #ddd;\n    border-collapse: collapse;\n}\n\n.editormd-grid-table-row {\n    width: 100%;\n    display: table-row;\n\n    a {\n        font-size: 1.4em;\n        width: 5%;\n        height: 36px;\n        color: #999;\n        text-align: center;\n        display: table-cell;\n        vertical-align: middle;\n        border: 1px solid #ddd;\n        text-decoration: none;\n        @include transition(background-color 300ms ease-out, color 100ms ease-in);\n\n        &.selected {\n            color: #666;\n            background-color: #eee;                \n        }\n\n        &:hover {\n            color: #777;\n            background-color: #f6f6f6;\n        }\n    }\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.logo.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n\n@font-face {\n\tfont-family: 'editormd-logo';\n\tsrc:url('../fonts/editormd-logo.eot?-5y8q6h');\n\tsrc:url('../fonts/editormd-logo.eot?#iefix-5y8q6h') format('embedded-opentype'),\n\t\turl('../fonts/editormd-logo.woff?-5y8q6h') format('woff'),\n\t\turl('../fonts/editormd-logo.ttf?-5y8q6h') format('truetype'),\n\t\turl('../fonts/editormd-logo.svg?-5y8q6h#icomoon') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n#{$prefix}logo,\n#{$prefix}logo-1x,\n#{$prefix}logo-2x,\n#{$prefix}logo-3x,\n#{$prefix}logo-4x,\n#{$prefix}logo-5x,\n#{$prefix}logo-6x,\n#{$prefix}logo-7x,\n#{$prefix}logo-8x {\n\tfont-family: 'editormd-logo';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n    font-size: inherit;\n\tline-height: 1;\n    display: inline-block;\n    text-rendering: auto;\n    vertical-align: inherit;\n\n\t//Better Font Rendering\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\n    &:before {\n        content: \"\\e1987\";\n        /* \n        HTML Entity &#xe1987; \n        example: <span class=\"editormd-logo\">&#xe1987;</span>\n        */\n    }\n}\n\n#{$prefix}logo-1x {  \n    font-size: 1em;           \n}\n\n#{$prefix}logo-lg {  \n    font-size: 1.2em;           \n}\n\n#{$prefix}logo-2x {  \n    font-size: 2em;           \n}\n\n#{$prefix}logo-3x {  \n    font-size: 3em;           \n}\n\n#{$prefix}logo-4x {  \n    font-size: 4em;           \n}\n\n#{$prefix}logo-5x {  \n    font-size: 5em;      \n}\n\n#{$prefix}logo-6x {  \n    font-size: 6em;      \n}\n\n#{$prefix}logo-7x {  \n    font-size: 7em;      \n}\n\n#{$prefix}logo-8x {  \n    font-size: 8em;   \n}\n\n#{$prefix}logo-color {\n    color: $mainColor;\n}\n"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.menu.scss",
    "content": "@charset \"UTF-8\";\n\n#{$prefix}menu {\n    margin: 0;\n    padding: 0;       \n    list-style: none;\n    \n    > li {\n        margin: 0;\n        padding: 5px 1px;\n        display: inline-block;\n        position: relative;\n\n        &.divider {\n            display: inline-block;\n            text-indent: -9999px;\n            margin: 0 5px; \n            height: 65%;\n            border-right: 1px solid $borderColor;\n        }\n\n        > a {\n            outline: 0;\n            color: $color;\n            display: inline-block;\n            min-width: 24px;\n            font-size: 16px;\n            text-decoration: none;\n            text-align: center;\n            @include border-radius(2px);\n            border: 1px solid #fff;\n            @include transition(all 300ms ease-out);\n\n            &:hover, &.active {\n                border: 1px solid $borderColor;\n                background: #eee;\n            }\n\n            > .fa { \n                text-align: center;\n                display: block;\n                padding: 5px;\n            }\n\n            > #{$prefix}bold {\n                padding: 5px 2px; \n                display: inline-block;\n                font-weight: bold;\n            }\n        }\n\n        &:hover #{$prefix}dropdown-menu {\n            display: block;\n        }\n    }\n\n    > li + li > a {\n        margin-left: 3px;\n    }\n}\n\n#{$prefix}dropdown-menu { \n    display: none;\n    background: #fff;\n    border: 1px solid $borderColor;\n    width: 148px;\n    list-style: none;\n    position: absolute;\n    top: 33px;\n    left: 0;\n    z-index: 100;\n    @include box-shadow(1px 2px 6px rgba(0, 0, 0, 0.15));\n\n    &:before, &:after {\n        width: 0;\n        height: 0;\n        display: block;\n        content: \"\";\n        position: absolute;\n        top: -11px;\n        left: 8px;\n        border: 5px solid transparent;\n    }\n\n    &:before { \n        border-bottom-color: #ccc;   \n    }\n\n    &:after { \n        border-bottom-color: #ffffff;  \n        top: -10px;\n    }\n\n\n    > li {\n        \n        > a {\n            color: $color;\n            display: block;\n            text-decoration: none;\n            padding: 8px 10px;\n\n            &:hover {\n                background: #f6f6f6;\n                @include transition(all 300ms ease-out);\n            }\n        }\n    }\n\n    > li + li {\n        border-top: 1px solid $borderColor;\n    }\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.preview.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n@import \"font-awesome\";\n\n@import \"editormd.logo\";\n\n// github-markdown.css\n@import \"github-markdown\";  \n\n#{$prefix}preview-container, #{$prefix}html-preview {\n    text-align: left;\n    font-size: 14px;\n    line-height: 1.6;\n    padding: 20px;\n    overflow: auto;\n    width: 100%;\n    background-color: #fff;\n\n    blockquote {\n        color: $color;\n        border-left: 4px solid $borderColor;\n        padding-left: 20px;\n        margin-left: 0;\n        font-size: 14px;\n        font-style: italic;\n    }\n\n    p code {\n        margin-left: 5px;\n        margin-right: 4px;\n    }\n        \n    abbr {\n        background: #ffffdd;\n    }\n\n    hr {\n        height: 1px;\n        border: none;\n        border-top: 1px solid $borderColor;\n        background: none;\n    }\n\n    code {\n        border: 1px solid $borderColor;\n        background: #f6f6f6;\n        padding: 3px;\n        border-radius: 3px;\n        font-size: 14px;\n    }\n\n    pre {\n        border: 1px solid $borderColor;\n        background: #f6f6f6;\n        padding: 10px;\n        @include border-radius(3px);\n\n        code {\n            padding: 0;\n        }\n    }\n    \n    pre, code, kbd {        \n        font-family:  \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n    }\n\n    table thead tr {\n        background-color: #F8F8F8;\n    }\n\n    .markdown-toc {\n    }\n\n    .markdown-toc-list {\n    } \n    \n    p#{$prefix}tex {\n        text-align: center;\n    }\n    \n    span#{$prefix}tex {\n        margin: 0 5px;\n    }\n    \n    .emoji {\n        width: 24px;\n        height: 24px;\n    }\n    \n    .katex {\n        font-size: 1.4em;\n    }\n\n    .sequence-diagram, .flowchart {\n        margin: 0 auto;\n        text-align: center;\n        \n        svg {\n            margin: 0 auto;\n        }\n\n        text {\n            font-size  : 15px !important;\n            font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n        }\n    }\n}\n\n//Pretty printing styles. Used with prettify.js.\n\n@import \"prettify\";\n\n#{$prefix}preview-container, #{$prefix}html-preview {\n    pre.prettyprint { \n        padding: 10px; \n        border: 1px solid $borderColor; \n        white-space: pre-wrap;\n        word-wrap: break-word;\n    }\n\n    ol.linenums { \n        color: #999; \n        padding-left: 2.5em; \n    \n        li { \n            list-style-type: decimal; \n        \n            code {\n                border: none;\n                background:none;  \n                padding: 0;\n            }\n        }\n    }\n}    \n\n#{$prefix}preview-container, #{$prefix}html-preview {\n\n    #{$prefix}toc-menu {\n        margin: 8px 0 12px 0;\n        display: inline-block;\n\n        > .markdown-toc {\n            position: relative;\n            @include border-radius(4px);\n            border: 1px solid #ddd;\n            display: inline-block;\n            font-size: 1em;\n\n            > ul {\n                width : 160%;\n                min-width: 180px;\n                position: absolute;\n                left: -1px;\n                top: -2px;\n                z-index: 100;\n                padding: 0 10px 10px;    \n                display: none;\n                background: #fff;\n                border: 1px solid #ddd;\n                @include border-radius(4px);\n                @include box-shadow(0 3px 5px rgba(0, 0, 0, 0.2));\n\n                > li ul {\n                    width: 100%;\n                    min-width: 180px;\n                    border: 1px solid #ddd;\n                    display: none;\n                    background: #fff;\n                    @include border-radius(4px);\n                }\n\n                > li a {\n                    color: #666;\n                    padding: 6px 10px;\n                    display: block;\n                    @include transition(background-color 500ms ease-out);  \n\n                    &:hover {\n                        background-color: #f6f6f6;\n                    }       \n                }\n            }\n\n            li {\n                position: relative;\n\n                > ul {\n                    position: absolute;\n                    top: 32px;\n                    left: 10%;\n                    display: none;\n                    @include box-shadow(0 3px 5px rgba(0, 0, 0, 0.2));\n\n                    &:before, &:after {\n                        pointer-events: pointer-events;\n                        position: absolute;\n                        left: 15px;\n                        top: -6px;\n                        display: block;\n                        content: \"\";\n                        width: 0;\n                        height: 0;\n                        border: 6px solid transparent;\n                        border-width: 0 6px 6px; \n                        z-index: 10; \n                    }\n\n                    &:before {\n                        border-bottom-color: #ccc; \n                    }\n\n                    &:after {\n                        border-bottom-color: #ffffff;  \n                        top: -5px;\n                    }\n                }\n            }\n        }\n\n        ul {\n            list-style: none;\n        }\n\n        a {\n            text-decoration: none;\n        }\n\n        h1 {\n            font-size: 16px;\n            padding: 5px 0 10px 10px;\n            line-height: 1;\n            border-bottom: 1px solid #eee;\n\n            .fa {\n                padding-left: 10px;\n            }\n        }\n\n        .toc-menu-btn {\n            color: #666;\n            min-width: 180px;\n            padding: 5px 10px;\n            border-radius: 4px;\n            display: inline-block;\n            @include transition(background-color 500ms ease-out);\n\n            &:hover {\n                background-color: #f6f6f6;\n            }\n\n            .fa {\n                float: right;\n                padding: 3px 0 0 10px;\n                font-size: 1.3em;\n            }\n        }\n    }\n}\n\n.markdown-body {\n    #{$prefix}toc-menu {\n        ul {\n            padding-left: 0; \n        }\n    }\n\n    .highlight pre, pre {\n      line-height: 1.6;\n    }\n}\n\nhr.editormd-page-break {\n    border: 1px dotted #ccc;\n    font-size: 0;\n    height: 2px;\n}\n\n@media only print {\n    hr.editormd-page-break {\n        background: none;\n        border: none;\n        height: 0;\n    }\n}\n\n#{$prefix}html-preview {\n    textarea {\n        display : none;\n    }\n\n    hr.editormd-page-break {\n        background: none;\n        border: none;\n        height: 0;\n    }\n}\n\n#{$prefix}preview-close-btn {\n    color: #fff;\n    padding: 4px 6px;\n    font-size: 18px;\n    @include border-radius(500px);\n    display: none;\n    background-color: #ccc;\n    position: absolute;\n    top: 25px;\n    right: 35px;\n    z-index: 19;\n    @include transition(background-color 300ms ease-out);\n\n    &:hover {\n        background-color: #999;\n    }\n}\n\n.editormd-preview-active {\n    width: 100%;\n    padding: 40px;\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.preview.themes.scss",
    "content": "/* Preview dark theme */\n            \n#{$prefix}preview-theme-dark {\n    color: #777;\n    background:#2C2827;\n    \n    #{$prefix}preview-container {\n        color: #888;\n        background-color: #2C2827;  \n        //font-family: \"Meiryo UI\", \"Helvetica Neue\", \"Microsoft YaHei\";\n\n        pre.prettyprint {\n            border: none;\n        }\n\n        blockquote {\n            color: #555;\n            padding: 0.5em;\n            background: #222;\n            border-color: #333;\n        }\n\n        abbr {\n            color: #fff;\n            padding: 1px 3px;\n            @include border-radius(3px); \n            background:#ff9900;\n        }\n\n        code {\n            color: #fff;\n            border: none;\n            padding: 1px 3px;\n            @include border-radius(3px); \n            background: #5A9600;\n        }\n\n        table {\n            border: none;\n        }\n\n        .fa-emoji {\n            color: #B4BF42;\n        }\n\n        .katex {\n            color: #FEC93F;\n        }\n    }\n\n    .editormd-toc-menu {\n        > .markdown-toc {\n            background:#fff;\n            border:none;\n\n            h1 {\n                border-color:#ddd;\n            }\n        }\n    }\n    \n    .markdown-body {\n        h1, h2, hr {\n            border-color: #222;      \n        }    \n    }\n    \n    pre {\n        color: #999;\n        background-color: #111;\n        background-color: rgba(0,0,0,.4);\n\n        /* plain text */\n        .pln { \n            color: #999;\n        } \n    }\n\n    li.L1, li.L3, li.L5, li.L7, li.L9 { \n        background: none;\n    }\n\n    [class*=editormd-logo] {\n        color: #2196F3;\n    }\n\n    .sequence-diagram {\n        text {\n            fill: #fff;\n        }\n\n        rect, path {\n            color:#fff;\n            fill : #64D1CB;\n            stroke : #64D1CB;\n        }\n    }\n    \n    .flowchart {\n        rect, path {\n            stroke : #A6C6FF;\n        }\n\n        rect {\n            fill: #A6C6FF;\n        }\n\n        text {\n            fill: #5879B4;\n        }\n    }\n}\n\n@media screen {\n    \n    #{$prefix}preview-theme-dark {\n        .str { color: #080 }  /* string content */\n        .kwd { color: #ff9900; }  /* a keyword */\n        .com { color: #444444; }  /* a comment */\n        .typ { color: #606 }  /* a type name */\n        .lit { color: #066 }  /* a literal value */\n        /* punctuation, lisp open bracket, lisp close bracket */\n        .pun, .opn, .clo { color: #660 }\n        .tag { color: #ff9900; }  /* a markup tag name */\n        .atn { color: #6C95F5; }  /* a markup attribute name */\n        .atv { color: #080 }  /* a markup attribute value */\n        .dec, .var { color: #008BA7; }  /* a declaration; a variable name */\n        .fun { color: red }  /* a function name */\n    }\n    \n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n        \n.editormd {\n    width: 90%;\n    height: 640px;\n    margin: 0 auto;\n    text-align: left;\n    overflow: hidden;  \n    position: relative;\n    margin-bottom: 15px;\n    border: 1px solid $borderColor;\n    font-family: \"Meiryo UI\", \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n\n    *, *:before, *:after {\n        @include box-sizing(border-box);\n    }\n    \n    a {\n        text-decoration: none;\n    }\n\n    img {\n        border: none;\n        vertical-align: middle;\n    }            \n\n    > textarea,\n    #{$prefix}html-textarea,\n    #{$prefix}markdown-textarea {\n        width: 0;\n        height: 0;\n        outline: 0;\n        resize:none;\n    }\n    \n    #{$prefix}html-textarea,\n    #{$prefix}markdown-textarea {\n        display : none;\n    }\n\n    input[type=\"text\"], \n    input[type=\"button\"], \n    input[type=\"submit\"], \n    select, textarea, button {\n        @include appearance(none);\n    }\n            \n    ::-webkit-scrollbar {\n        height: 10px;\n        width: 7px;\n        background: rgba(0, 0, 0, .1);\n\n        &:hover {\n            background: rgba(0, 0, 0, .2);\n        }\n    }\n\n    ::-webkit-scrollbar-thumb {\n        background: rgba(0,0,0,0.3);\n        @include border-radius(6px);\n\n        &:hover {\n            @include box-shadow(inset 1px 1px 1px rgba(0, 0, 0, .25));\n            background-color: rgba(0, 0, 0, .4);\n        }\n    }\n}\n            \n#{$prefix}user-unselect { \n    @include user-select(none); \n}\n\n#{$prefix}toolbar {\n    width: 100%;\n    min-height: 37px;\n    background: #fff;\n    display: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: 10;\n    border-bottom: 1px solid $borderColor;\n}\n\n#{$prefix}toolbar-container {\n    padding: 0 8px;\n    min-height: 35px;\n    @include user-select(none);\n}\n\n@import \"editormd.menu\";\n\n#{$prefix}container {\n    margin: 0;\n    width: 100%;\n    height: 100%;\n    overflow: hidden;\n    padding: 35px 0 0;\n    position: relative;   \n    background: #fff;\n    @include box-sizing(border-box);\n}\n\n@import \"editormd.dialog\"; \n@import \"editormd.grid\"; \n@import \"editormd.tab\"; \n@import \"editormd.form\"; \n@import \"editormd.codemirror\"; \n@import \"editormd.preview\";\n@import \"editormd.preview.themes\";\n\n#{$prefix}onlyread {\n    #{$prefix}toolbar {\n        display: none;\n    }\n\n    .CodeMirror {\n        margin-top: 0;\n    }\n\n    #{$prefix}preview {\n        top: 0;\n    }\n}\n\n#{$prefix}fullscreen {\n    position: fixed; \n    top   : 0; \n    left  : 0; \n    border: none;\n    margin: 0 auto;\n}\n\n@import \"editormd.themes\";"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.tab.scss",
    "content": "@charset \"utf-8\";\n\n.editormd-tab {\n}\n\n.editormd-tab-head {\n    list-style: none;\n    border-bottom: 1px solid #ddd;\n\n    li {\n        display: inline-block;\n\n        a {\n            color: #999;\n            display: block;\n            padding: 6px 12px 5px;\n            text-align: center;\n            text-decoration: none;\n            margin-bottom: -1px;\n            border: 1px solid #ddd;\n            @include border-top-left-radius(3px);\n            @include border-top-right-radius(3px);\n            background: #f6f6f6;\n            @include transition(all 300ms ease-out);\n\n            &:hover {\n                color: #666;\n                background: #eee;\n            }\n        }\n\n        &.active a {\n            color: #666;\n            background: #fff;\n            border-bottom-color: #fff; \n        }\n    }\n    \n    li + li {\n        margin-left: 3px;\n    }\n}\n\n.editormd-tab-container {\n}\n\n.editormd-tab-box {\n    padding: 20px 0;\n}"
  },
  {
    "path": "public/static/home/editormd/scss/editormd.themes.scss",
    "content": "/* Editor.md Dark theme */\n\n#{$prefix}theme-dark {\n    border-color: #1a1a17;\n\n    #{$prefix}toolbar {\n        background: #1A1A17;\n        border-color: #1a1a17;\n    }\n\n    #{$prefix}menu > li > a {\n        color: #777;\n        border-color: #1a1a17;\n\n        &:hover, &.active {\n            border-color: #333;\n            background: #333;\n        }\n    }\n\n    #{$prefix}menu > li.divider {\n        border-right: 1px solid #111;\n    }\n    \n    .CodeMirror {\n        border-right: 1px solid rgba(0,0,0,0.1);\n    }\n}"
  },
  {
    "path": "public/static/home/editormd/scss/font-awesome.scss",
    "content": "/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n"
  },
  {
    "path": "public/static/home/editormd/scss/github-markdown.scss",
    "content": "@charset \"UTF-8\";\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format('woff');\n}\n\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  //font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body>*:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body>*:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li>p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote>:first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote>:last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0,0,0,0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre>code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item+.task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked+.radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n"
  },
  {
    "path": "public/static/home/editormd/scss/lib/prefixes.scss",
    "content": "@charset \"UTF-8\";\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n\n// appearance\n\n@mixin appearance($value) {\n    -webkit-appearance: $value;\n       -moz-appearance: $value;\n        -ms-appearance: $value;\n            appearance: $value;\n}\n\n// clearfix\n\n@mixin clearfix() { \n    &:before, &:after {\n        content: \" \";\n        display: table;\n    } \n    \n    &:after {\n        clear: both;\n    }\n}\n\n// viewport\n\n@mixin viewport-device-width() {\n    width: device-width;\n    user-zoom: fixed;\n}\n\n@mixin viewport() {\n    @-webkit-viewport { \n        @include viewport-device-width();\n    }\n    @-moz-viewport { \n        @include viewport-device-width();\n    }\n    \n    @-ms-viewport { \n        @include viewport-device-width();\n    }\n    \n    @-o-viewport { \n        @include viewport-device-width();\n    }\n    \n    @viewport { \n        @include viewport-device-width();\n    }\n}\n\n// Transform\n\n@mixin transform($transform) {\n    -webkit-transform: $transform;  /* Safari, Chrome */\n       -moz-transform: $transform;  /* Firefox 3.5~16.0 */\n        -ms-transform: $transform;  /* IE9~10 */\n         -o-transform: $transform;  /* Opera 10.5~12.10 */\n            transform: $transform;\n}\n\n@mixin transform-origin($origin) {\n    -webkit-transform-origin: $origin;\n       -moz-transform-origin: $origin;  /* Firefox 3.5~16.0 */\n        -ms-transform-origin: $origin;  /* IE9~10 */\n         -o-transform-origin: $origin;  /* Opera 10.5~12.10 */\n            transform-origin: $origin;\n}\n\n@mixin transform-origin-x($origin) {\n    -webkit-transform-origin-x: $origin; /* Blink, Webkit */\n            transform-origin-x: $origin; /* IE11+ */\n}\n\n@mixin transform-origin-y($origin) {\n    -webkit-transform-origin-y: $origin; /* Blink, Webkit */\n            transform-origin-y: $origin; /* IE11+ */\n}\n\n@mixin transform-origin-z($origin) {\n    -webkit-transform-origin-z: $origin; /* Blink, Webkit */\n            transform-origin-z: $origin; /* IE11+ */\n}\n\n@mixin transform-style($style) {\n    -webkit-transform-style: $style;\n       -moz-transform-style: $style;  /* Firefox 10~16.0 */\n        -ms-transform-style: $style;  /* IE9~10 */\n            transform-style: $style;  /* Firefox, Blink, IE11+ */\n}\n\n// perspective\n\n@mixin perspective($value) {\n    -webkit-perspective: $value;          /* Safari, Chrome */\n            perspective: $value;          /* None yet / Non-standard */\n}\n\n@mixin perspective-origin($value) {\n    -webkit-perspective-origin: $value;   /* Safari, Chrome 12+ */\n       -moz-perspective-origin: $value;   /* Firefox 10~16 */\n            perspective-origin: $value;   /* Opera 15+, IE10+ */\n}\n\n@mixin perspective-origin-x($value) {\n    -webkit-perspective-origin-x: $value;   /* Safari, Chrome 12+ */\n            perspective-origin-x: $value;   /* IE10+ */\n}\n\n@mixin perspective-origin-y($value) {\n    -webkit-perspective-origin-y: $value;   /* Safari, Chrome 12+ */\n            perspective-origin-y: $value;   /* IE10+ */\n}\n\n@mixin backface-visibility($value : hidden) {\n    -webkit-backface-visibility: $value;  /* Chrome, Safari, Opera 15+ */\n       -moz-backface-visibility: $value;  /* Firefox */\n        -ms-backface-visibility: $value;  /* IE10 */\n            backface-visibility: $value;\n}\n\n// Transitions IE10+\n\n@mixin transition($transition...) {\n    -webkit-transition: $transition;  /* Safari, Chrome */\n       -moz-transition: $transition;  /* Firefox 4.0~16.0 */\n            transition: $transition;  /* IE >9, FF >15, Opera >12.0 */\n}\n\n@mixin transition-property($property) {\n    -webkit-transition-property: $property;\n       -moz-transition-property: $property;  /* Firefox 4.0~16.0 */\n            transition-property: $property;\n}\n\n@mixin transition-duration($duration) {\n    -webkit-transition-duration: $duration;\n       -moz-transition-duration: $duration;  /* Firefox 4.0~16.0 */\n            transition-duration: $duration;\n}\n\n@mixin transition-timing-function($easing) {\n    -webkit-transition-timing-function: $easing;\n       -moz-transition-timing-function: $easing;  /* Firefox 4.0~16.0 */\n            transition-timing-function: $easing;\n}\n\n@mixin transition-delay($delay) {\n    -webkit-transition-delay: $delay;\n       -moz-transition-delay: $delay;  /* Firefox 4.0~16.0 */\n            transition-delay: $delay;\n}\n\n// Flex align\n\n@mixin align-content($value) {\n    -webkit-align-content: $value;  /* Chrome 21.0+, Safari Not supported. */\n            align-content: $value;  /* Firefox 28+, Opera 12.10, IE Not supported. */\n}\n\n@mixin align-items($value) {\n    -webkit-align-items: $value; /* Safari 7.0+, Chrome 21.0+ */\n            align-items: $value; /* Firefox 20.0+, IE11+, Opera 12.10 */\n}\n\n@mixin align-self($value) {\n    -webkit-align-self: $value; /* Chrome 21~36, Safari Not supported. */\n            align-self: $value; /* Firefox 28+, Opera 12.10, IE Not supported. */\n}\n\n// Animations IE10+\n\n@mixin keyframes($name) {\n    @-webkit-keyframes #{$name} {\n        @content;\n    } \n    \n    @-moz-keyframes #{$name} {\n        @content;\n    } \n    \n    @keyframes #{$name} {\n        @content;\n    }\n}\n\n@mixin animation($animation...) {\n    -webkit-animation: $animation;\n       -moz-animation: $animation;  /* Firefox 5.0~16.0 */\n            animation: $animation;  /* IE10+ */\n}\n\n@mixin animation-name($name) {\n    -webkit-animation-name: $name;\n       -moz-animation-name: $name; /* Firefox 5.0~16.0 */\n            animation-name: $name;\n}\n\n@mixin animation-duration($time : 1s) {\n    -webkit-animation-duration: $time;\n       -moz-animation-duration: $time; /* Firefox 5.0~16.0 */\n            animation-duration: $time;\n}\n\n@mixin animation-timing-function($easing : ease) {\n    -webkit-animation-timing-function: $easing;\n       -moz-animation-timing-function: $easing; /* Firefox 5.0~16.0 */\n            animation-timing-function: $easing;\n}\n\n@mixin animation-delay($delay : 1s) {\n    -webkit-animation-delay: $delay;\n       -moz-animation-delay: $delay; /* Firefox 5.0~16.0 */\n            animation-delay: $delay;\n}\n\n@mixin animation-iteration-count($count : infinite) {\n    -webkit-animation-iteration-count: $count;\n       -moz-animation-iteration-count: $count; /* Firefox 5.0~16.0 */\n            animation-iteration-count: $count;\n}\n\n// normal or alternate\n@mixin animation-direction($direction : normal) {\n    -webkit-animation-direction: $direction;\n       -moz-animation-direction: $direction; /* Firefox 5.0~16.0 */\n            animation-direction: $direction;\n}\n\n// paused or running\n\n@mixin animation-play-state($state) {\n    -webkit-animation-play-state: $state;\n       -moz-animation-play-state: $state;    /* Firefox 5.0~16.0 */\n            animation-play-state: $state;\n}\n\n// animation-fill-mode\n\n@mixin animation-fill-mode($mode) {\n    -webkit-animation-fill-mode: $mode;\n       -moz-animation-fill-mode: $mode;\n            animation-fill-mode: $mode;\n}\n\n// user-select\n\n@mixin user-select($type) {\n    -webkit-user-select: $type;\n       -moz-user-select: $type;\n        -ms-user-select: $type;\n         -o-user-select: $type;\n            user-select: $type;\n}\n\n// border-radius\n\n@mixin border-radius($radius: 4px) {    \n    -webkit-border-radius: $radius;\n       -moz-border-radius: $radius;\n        -ms-border-radius: $radius;\n         -o-border-radius: $radius;\n            border-radius: $radius;\n}\n\n@mixin border-top-left-radius($radius: 4px) {    \n    -webkit-border-top-left-radius: $radius;\n       -moz-border-top-left-radius: $radius;\n        -ms-border-top-left-radius: $radius;\n         -o-border-top-left-radius: $radius;\n            border-top-left-radius: $radius;\n}\n\n@mixin border-top-right-radius($radius: 4px) {    \n    -webkit-border-top-right-radius: $radius;\n       -moz-border-top-right-radius: $radius;\n        -ms-border-top-right-radius: $radius;\n         -o-border-top-right-radius: $radius;\n            border-top-right-radius: $radius;\n}\n\n@mixin border-bottom-left-radius($radius: 4px) {    \n    -webkit-border-bottom-left-radius: $radius;\n       -moz-border-bottom-left-radius: $radius;\n        -ms-border-bottom-left-radius: $radius;\n         -o-border-bottom-left-radius: $radius;\n            border-bottom-left-radius: $radius;\n}\n\n@mixin border-bottom-right-radius($radius: 4px) {    \n    -webkit-border-bottom-right-radius: $radius;\n       -moz-border-bottom-right-radius: $radius;\n        -ms-border-bottom-right-radius: $radius;\n         -o-border-bottom-right-radius: $radius;\n            border-bottom-right-radius: $radius;\n}\n\n// border-image\n\n@mixin border-image($value) {\n    -webkit-border-image: $value;   /* Safari 5, Chrome */\n       -moz-border-image: $value;   /* Firefox 3.5~15.0 */\n         -o-border-image: $value;   /* Opera */\n            border-image: $value;   /* Safari 6+, Chrome, New */\n}\n\n@mixin border-image-source($value) {\n    -webkit-border-image-source: $value;   /* Safari 5, Chrome */\n            border-image-source: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-slice($value) {\n    -webkit-border-image-slice: $value;   /* Safari 5, Chrome */\n            border-image-slice: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-width($value) {\n    -webkit-border-image-width: $value;   /* Safari 5, Chrome */\n            border-image-width: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-outset($value) {\n    -webkit-border-image-outset: $value;   /* Safari 5, Chrome */\n            border-image-outset: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-repeat($value) {\n    -webkit-border-image-repeat: $value;   /* Safari 5, Chrome */\n            border-image-repeat: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n// box-shadow\n\n@mixin box-shadow($value) {\n    -webkit-box-shadow: $value;      /* Webkit browsers */\n       -moz-box-shadow: $value;      /* Firefox */\n        -ms-box-shadow: $value;      /* IE9 */\n         -o-box-shadow: $value;      /* Opera(Old) */\n            box-shadow: $value;      /* IE9+, News */\n}\n\n//box-sizing\n\n@mixin box-sizing($value) {\n    -webkit-box-sizing: $value;\n       -moz-box-sizing: $value;\n            box-sizing: $value; \n}\n\n// box-reflect\n\n@mixin box-reflect($value) {\n    -webkit-box-reflect: $value; /* Chrome, Safari, iOS, Blackberry */\n            box-reflect: $value; /* None yet / Non-standard */\n}\n\n// background  \n\n@mixin linear-gradient($start-color, $end-color, $position : top, $perStart : 0%, $perEnd : 100%) {\n    background: -webkit-linear-gradient($position, $start-color, $end-color);        /* Webkit browsers */\n    background: -moz-linear-gradient( $position, $start-color, $end-color);          /* Firefox(old) */\n    background: -o-linear-gradient( $position, $start-color, $end-color);             /* Opera(old) */\n    background: -ms-linear-gradient( $position, $start-color $perStart, $end-color $perEnd);    /* IE10 */ \n        filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, start-colorstr=#{$start-color}, end-colorstr=#{$end-color});    /* IE9 */\n     ms-filter: \"progid:DXImageTransform.Microsoft.gradient (GradientType=0, start-colorstr=#{$start-color}, end-colorstr=#{$end-color})\";  /* IE8 */ \n    background: linear-gradient( $position, $start-color $perStart, $end-color $perEnd);        /* W3C */\n}\n\n@mixin background-clip($value) {\n    -webkit-background-clip: $value;\n            background-clip: $value;  /* Firefox 4.0, IE9+, Opera 10.5+, Chrome, Safari 3.0+ */\n}\n\n@mixin background-origin($value) {\n    -webkit-background-origin: $value; \n            background-origin: $value;  /* IE9+, Other */\n}\n\n@mixin background-size($value) {\n    -webkit-background-size: $value;  /* Chrome, iOS, Safari */\n       -moz-background-size: $value;  /* Firefox 3.6~4.0 */\n         -o-background-size: $value;  /* Opera 9.5 */\n            background-size: $value;  /* IE9+, New */\n}\n\n// Column\n\n@mixin column-count($value) {\n  -webkit-column-count: $value; /* Chrome, Safari, Android, Blackberry  */\n     -moz-column-count: $value; /* Firefox 34+ */\n          column-count: $value; /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-gap($value) {\n  -webkit-column-gap: $value;  /* Chrome, Safari, Android, Blackberry  */\n     -moz-column-gap: $value;  /* Firefox 34+ */\n          column-gap: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule($value) {\n    -webkit-column-rule: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule: $value;  /* Firefox 34+ */\n            column-rule: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-color($value) {\n    -webkit-column-rule-color: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-color: $value;  /* Firefox 34+ */\n            column-rule-color: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-style($value) {\n    -webkit-column-rule-style: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-style: $value;  /* Firefox 34+ */\n            column-rule-style: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-width($value) {\n    -webkit-column-rule-width: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-width: $value;  /* Firefox 34+ */\n            column-rule-width: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-fill($value) {\n -webkit-column-fill: $value;  /* None yet */\n    -moz-column-fill: $value;  /* Firefox 13.0+ */\n         column-fill: $value;  /* None yet / Non-standard */\n}\n\n@mixin column-span($value) {\n    -webkit-column-span: $value;  /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-column-span: $value;  /* Firefox 34+ */\n            column-span: $value;  /* IE10+, Opera Mini */\n}\n\n@mixin column-width($value) {\n    -webkit-column-width: $value; /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-column-width: $value; /* Firefox */\n            column-width: $value; /* IE10+, Opera */\n}\n\n// columns: column-width column-count;\n\n@mixin columns($value) {\n    -webkit-columns: $value; /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-columns: $value; /* Firefox */\n            columns: $value; /* IE10+, Opera */\n}\n\n// clip-path\n\n@mixin clip-path($value) {\n    -webkit-clip-path: $value; /* Chrome, iOS, Safari */\n            clip-path: $value;\n}\n\n// display\n\n@mixin display-grid() {\n    display: -ms-grid;     /* IE 10 */\n    display:     grid;     /* None yet */\n}\n\n@mixin display-flex() {\n    display: -webkit-box;  /* Old - iOS 6-, Safari 3.1~6, Blackberry 7 */\n    display: -ms-flexbox;  /* TWEENER - IE 10 */\n    display: -webkit-flex; /* New - Safari 6.1+. iOS 7.1+, Blackberry 10 */\n    display: flex;         /* New, Spec - Firefox, Chrome, Opera */\n}\n\n@mixin inline-flex($value) {\n    -webkit-inline-flex: $value; /* Chrome 21.0+ */\n            inline-flex: $value; /* Firefox 20+, Opera 12.5 */\n}\n\n@mixin flex($value) {\n    -webkit-box-flex: $value;   /* Old - iOS 6-, Safari 3.1~6 */\n        -webkit-flex: $value;   /* Safari 6.1+. iOS 7.1+, Blackberry 10 */\n            -ms-flex: $value;   /* IE 10 */\n                flex: $value;   /* New, Spec - Firefox, Chrome, Opera */\n}\n\n@mixin flex-direction($value) {\n    -webkit-flex-direction: $value;  /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-direction: $value;  /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin flex-basis($value) {\n    -webkit-flex-basis: $value;  /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-basis: $value;  /* Firefox 22+, IE11, Opera 12.10 */\n}\n\n@mixin flex-flow($value) {\n    -webkit-flex-flow: $value;   /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-flow: $value;   /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin flex-grow($value) {\n    -webkit-flex-grow: $value;   /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-grow: $value;   /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n@mixin flex-shrink($value) {\n    -webkit-flex-shrink: $value; /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-shrink: $value; /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n@mixin flex-wrap($value) {\n    -webkit-flex-wrap: $value;  /* Safari 6.1+, Chrome 21.0+, Android 4.4+, iOS 7.0+ */\n            flex-wrap: $value;  /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin order($value) {\n     -webkit-order: $value; /* Chrome 21+, Safari Not supported. */\n    -ms-flex-order: $value; /* IE 10.0 */\n             order: $value; /* Firefox 20+, Opera 12.10 */\n}\n\n// flow\n\n@mixin flow-into($value) {\n    -webkit-flow-into: $value;  /* Safari 7.1+, iOS Safari 7.1+ */\n        -ms-flow-into: $value;  /* IE10+ */\n            flow-into: $value;  /* None yet */\n}\n\n@mixin flow-from($value) {\n    -webkit-flow-from: $value;  /* Safari 7.1+, iOS Safari 7.1+ */\n        -ms-flow-from: $value;  /* IE10+ */\n            flow-from: $value;  /* None yet */\n}\n\n// filter\n\n@mixin filter($value) {\n    -webkit-filter: $value;     /* Chrome 23+, Safari 6.0+, Blackberry 10.0+ */\n            filter: $value;     /* None yet */\n}\n\n// filter blur\n\n@mixin filter-blur($value : 10px, $ie-value : 10) { \n            filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=#{$ie-value}, MakeShadow=false);  /* IE6~IE9 */\n    -webkit-filter: blur($value); /* Chrome, Opera, iOS, Safari */\n       -moz-filter: blur($value); /* Firefox(Old) */\n        -ms-filter: blur($value);\n            filter: blur($value);\n}\n\n@mixin font-kerning($value) {\n    -webkit-font-kerning: $value;\n            font-kerning: $value;\n}\n\n// font-feature-settings\n\n@mixin font-feature-settings($value) {\n    -webkit-font-feature-settings: $value;  /* Chrome 16-26, Blackberry 10 */\n       -moz-font-feature-settings: $value;  /* Firefox 4-21 */\n            font-feature-settings: $value;  /* IE 10, Safari 4.0-6.0 */\n}\n\n@mixin font-variant-ligatures($value) {\n    -webkit-font-variant-ligatures: $value;\n            font-variant-ligatures: $value;\n}\n\n// hyphens\n\n@mixin hyphens($value : auto) {\n    // Chrome 29- and Android 4.0 Browser support \"-webkit-hyphens: none\", but not the \"auto\" property.\n    -webkit-hyphens: $value;  /* Safari 5.1+, Chrome */\n       -moz-hyphens: $value;  /* Firefox 6.0+ */\n        -ms-hyphens: $value;  /* IE 10+ */\n            hyphens: $value;  /* None yet */\n}\n\n@mixin justify-content($value) {\n    -webkit-justify-content: $value; /* Chrome 21+, Safari Not supported. */\n            justify-content: $value; /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n// line\n\n@mixin line-break($value) {\n    -webkit-line-break: $value;\n            line-break: $value;\n}\n\n// margin\n\n@mixin margin-start($value) {\n    -webkit-margin-start: $value;  /* Safari 3.0+, Chrome */\n       -moz-margin-start: $value;  /* Firefox 1.0+ */\n            margin-start: $value;  /* None yet / Non-standard */\n}\n\n@mixin margin-end($value) {\n    -webkit-margin-end: $value;  /* Safari 3.0+, Chrome */\n       -moz-margin-end: $value;  /* Firefox 1.0+ */\n            margin-end: $value;  /* None yet / Non-standard */\n}\n\n// mask\n\n@mixin mask-image($value) {\n    -webkit-mask-image: $value; /* Chrome, iOS, Safari */\n            mask-image: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-size($value) {\n    -webkit-mask-size: $value; /* Chrome, iOS, Safari */\n            mask-size: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-clip($value) {\n    -webkit-mask-clip: $value; /* Chrome, iOS, Safari */\n            mask-clip: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position($value) {\n    -webkit-mask-position: $value; /* Chrome, iOS, Safari */\n            mask-position: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position-x($value) {\n    -webkit-mask-position-x: $value; /* Chrome, iOS, Safari */\n            mask-position-x: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position-y($value) {\n    -webkit-mask-position-y: $value; /* Chrome, iOS, Safari */\n            mask-position-y: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-origin($value) {\n    -webkit-mask-origin: $value; /* Chrome, iOS, Safari */\n            mask-origin: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-repeat($value) {\n    -webkit-mask-repeat: $value; /* Chrome, iOS, Safari */\n            mask-repeat: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-attachment($value) {\n    -webkit-mask-attachment: $value; /* Chrome, iOS, Safari */\n            mask-attachment: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-composite($value) {\n    -webkit-mask-composite: $value; /* Chrome, iOS, Safari */\n            mask-composite: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-box-image($value) {\n    -webkit-mask-box-image: $value; /* Chrome, iOS, Safari */\n            mask-box-image: $value; /* None yet / Non-standard */\n}\n\n// opacity\n\n@mixin opacity($opacity) {\n    opacity: $opacity; /* W3C */\n     filter: alpha(opacity=($opacity * 100)); /* IE */\n}\n\n// padding\n\n@mixin padding-start($value) {\n    -webkit-padding-start: $value; /* Safari, Chrome, WebKit */\n       -moz-padding-start: $value; /* Firefox 3+ */\n            padding-start: $value;\n}\n\n@mixin padding-end($value) {\n    -webkit-padding-end: $value; /* Safari, Chrome, WebKit */\n       -moz-padding-end: $value; /* Firefox 3+ */\n            padding-end: $value;\n}\n\n// ruby-position\n\n@mixin ruby-position($value) {\n    -webkit-ruby-position: $value; /* Blink, Webkit */\n            ruby-position: $value; /* Firefox, IE */\n}\n\n// Text\n\n@mixin text-size-adjust($value) {\n    -webkit-text-size-adjust: $value; /* Chrome 27+ */\n       -moz-text-size-adjust: $value; /* Firefox */\n            text-size-adjust: $value; /* None yet */\n}\n\n@mixin text-align-last($value) {\n    -webkit-text-align-last: $value;  /* Chrome 35+, Safari Not supported. */\n       -moz-text-align-last: $value;  /* Firefox 12.0 */\n            text-align-last: $value;  /* IE 5.5+ */\n}\n\n@mixin text-justify($value) {\n    -webkit-text-justify: $value;\n            text-justify: $value;\n}\n\n@mixin text-decoration-color($value) {\n    -webkit-text-decoration-color: $value;\n            text-decoration-color: $value;\n}\n\n@mixin text-decoration-line($value) {\n    -webkit-text-decoration-line: $value;\n            text-decoration-line: $value;\n}\n\n@mixin text-decoration-style($value) {\n    -webkit-text-decoration-style: $value;\n            text-decoration-style: $value;\n}\n\n@mixin text-orientation($value) {\n    -webkit-text-orientation: $value;\n            text-orientation: $value;\n}\n\n@mixin text-underline-position($value) {\n    -webkit-text-underline-position: $value; /* Chrome 33 not fully supported. */\n            text-underline-position: $value; /* IE 5 not fully supported. */\n}\n\n@mixin text-emphasis($value) {\n    -webkit-text-emphasis: $value; /* Blink */\n            text-emphasis: $value; /* WebKit */\n}\n\n@mixin text-emphasis-color($value) {\n    -webkit-text-emphasis-color: $value; /* Blink */\n            text-emphasis-color: $value; /* WebKit */\n}\n\n@mixin text-emphasis-style($value) {\n    -webkit-text-emphasis-style: $value; /* Blink */\n            text-emphasis-style: $value; /* WebKit */\n}\n\n@mixin text-emphasis-position($value) {\n    -webkit-text-emphasis-position: $value; /* Blink */\n            text-emphasis-position: $value; /* WebKit */\n}\n\n// tab\n\n@mixin tab-size($value) {\n    -webkit-tab-size: $value; /* Chrome 21+, Safari 6.1+ */\n       -moz-tab-size: $value; /* Firefox 4.0 */\n         -o-tab-size: $value; /* Opera 10.6~15 */\n            tab-size: $value; /* Blink & Webkit */\n}\n\n// input-placeholder\n\n@mixin input-placeholder($seletor) {\n    \n    #{$seletor}::-webkit-input-placeholder {\n        @content;\n    }\n    \n    #{$seletor}:-moz-placeholder {  /* Firefox 4~18 */\n        @content;\n    }\n    \n    #{$seletor}::-moz-placeholder {  /* Firefox 19+ */\n        @content;\n    }\n    \n    #{$seletor}:-ms-input-placeholder {  /* IE10+ */ \n        @content;\n    }\n}"
  },
  {
    "path": "public/static/home/editormd/scss/lib/variables.scss",
    "content": "@charset \"UTF-8\";\n\n// Global Variables\n\n$prefix       : \".editormd-\";\n$color        : #666;\n$mainColor    : #2196F3;\n$primaryColor : $mainColor;\n$secondColor  : #33CC66;\n$thirdColor   : #999999;\n$borderColor  : #ddd;"
  },
  {
    "path": "public/static/home/editormd/scss/prettify.scss",
    "content": "@charset \"UTF-8\";\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln { color: #000 }  /* plain text */\n\n@media screen {\n  .str { color: #080 }  /* string content */\n  .kwd { color: #008 }  /* a keyword */\n  .com { color: #800 }  /* a comment */\n  .typ { color: #606 }  /* a type name */\n  .lit { color: #066 }  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo { color: #660 }\n  .tag { color: #008 }  /* a markup tag name */\n  .atn { color: #606 }  /* a markup attribute name */\n  .atv { color: #080 }  /* a markup attribute value */\n  .dec, .var { color: #606 }  /* a declaration; a variable name */\n  .fun { color: red }  /* a function name */\n}\n\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str { color: #060 }\n  .kwd { color: #006; font-weight: bold }\n  .com { color: #600; font-style: italic }\n  .typ { color: #404; font-weight: bold }\n  .lit { color: #044 }\n  .pun, .opn, .clo { color: #440 }\n  .tag { color: #006; font-weight: bold }\n  .atn { color: #404 }\n  .atv { color: #060 }\n}\n\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint { padding: 2px; border: 1px solid #888 }\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 { list-style-type: none }\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 { background: #eee }"
  },
  {
    "path": "public/static/home/editormd/src/editormd.js",
    "content": ";(function(factory) {\n    \"use strict\";\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n\t{\n        if (define.amd) // for Require.js\n        {\n            /* Require.js define replace */\n        } \n        else \n        {\n\t\t    define([\"jquery\"], factory);  // for Sea.js\n        }\n\t} \n\telse\n\t{ \n        window.editormd = factory();\n\t}\n    \n}(function() {    \n\n    /* Require.js assignment replace */\n    \n    \"use strict\";\n    \n    var $ = (typeof (jQuery) !== \"undefined\") ? jQuery : Zepto;\n\n\tif (typeof ($) === \"undefined\") {\n\t\treturn ;\n\t}\n    \n    /**\n     * editormd\n     * \n     * @param   {String} id           编辑器的ID\n     * @param   {Object} options      配置选项 Key/Value\n     * @returns {Object} editormd     返回editormd对象\n     */\n    \n    var editormd         = function (id, options) {\n        return new editormd.fn.init(id, options);\n    };\n    \n    editormd.title        = editormd.$name = \"Editor.md\";\n    editormd.version      = \"1.5.0\";\n    editormd.homePage     = \"https://pandao.github.io/editor.md/\";\n    editormd.classPrefix  = \"editormd-\";\n    \n    editormd.toolbarModes = {\n        full : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"ucwords\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"link\", \"reference-link\", \"image\", \"code\", \"preformatted-text\", \"code-block\", \"table\", \"datetime\", \"emoji\", \"html-entities\", \"pagebreak\", \"|\",\n            \"goto-line\", \"watch\", \"preview\", \"fullscreen\", \"clear\", \"search\", \"|\",\n            \"help\", \"info\"\n        ],\n        simple : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"watch\", \"preview\", \"fullscreen\", \"|\",\n            \"help\", \"info\"\n        ],\n        mini : [\n            \"undo\", \"redo\", \"|\",\n            \"watch\", \"preview\", \"|\",\n            \"help\", \"info\"\n        ]\n    };\n    \n    editormd.defaults     = {\n        mode                 : \"gfm\",          //gfm or markdown\n        name                 : \"\",             // Form element name\n        value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n        theme                : \"\",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty\n        editorTheme          : \"default\",      // Editor area, this is CodeMirror theme at v1.5.0\n        previewTheme         : \"\",             // Preview area theme, default empty\n        markdown             : \"\",             // Markdown source code\n        appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n        width                : \"100%\",\n        height               : \"100%\",\n        path                 : \"./lib/\",       // Dependents module file directory\n        pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n        delay                : 300,            // Delay parse markdown to html, Uint : ms\n        autoLoadModules      : true,           // Automatic load dependent module files\n        watch                : true,\n        placeholder          : \"Enjoy Markdown! coding now...\",\n        gotoLine             : true,\n        codeFold             : false,\n        autoHeight           : false,\n\t\tautoFocus            : true,\n        autoCloseTags        : true,\n        searchReplace        : true,\n        syncScrolling        : true,           // true | false | \"single\", default true\n        readOnly             : false,\n        tabSize              : 4,\n\t\tindentUnit           : 4,\n        lineNumbers          : true,\n\t\tlineWrapping         : true,\n\t\tautoCloseBrackets    : true,\n\t\tshowTrailingSpace    : true,\n\t\tmatchBrackets        : true,\n\t\tindentWithTabs       : true,\n\t\tstyleSelectedText    : true,\n        matchWordHighlight   : true,           // options: true, false, \"onselected\"\n        styleActiveLine      : true,           // Highlight the current line\n        dialogLockScreen     : true,\n        dialogShowMask       : true,\n        dialogDraggable      : true,\n        dialogMaskBgColor    : \"#fff\",\n        dialogMaskOpacity    : 0.1,\n        fontSize             : \"13px\",\n        saveHTMLToTextarea   : false,\n        disabledKeyMaps      : [],\n        \n        onload               : function() {},\n        onresize             : function() {},\n        onchange             : function() {},\n        onwatch              : null,\n        onunwatch            : null,\n        onpreviewing         : function() {},\n        onpreviewed          : function() {},\n        onfullscreen         : function() {},\n        onfullscreenExit     : function() {},\n        onscroll             : function() {},\n        onpreviewscroll      : function() {},\n        \n        imageUpload          : false,\n        imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n        imageUploadURL       : \"\",\n        crossDomainUpload    : false,\n        uploadCallbackURL    : \"\",\n        \n        toc                  : true,           // Table of contents\n        tocm                 : false,           // Using [TOCM], auto create ToC dropdown menu\n        tocTitle             : \"\",             // for ToC dropdown menu btn\n        tocDropdown          : false,\n        tocContainer         : \"\",\n        tocStartLevel        : 1,              // Said from H1 to create ToC\n        htmlDecode           : false,          // Open the HTML tag identification \n        pageBreak            : true,           // Enable parse page break [========]\n        atLink               : true,           // for @link\n        emailLink            : true,           // for email address auto link\n        taskList             : false,          // Enable Github Flavored Markdown task lists\n        emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                               // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                               // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n        tex                  : false,          // TeX(LaTeX), based on KaTeX\n        flowChart            : false,          // flowChart.js only support IE9+\n        sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        previewCodeHighlight : true,\n                \n        toolbar              : true,           // show/hide toolbar\n        toolbarAutoFixed     : true,           // on window scroll auto fixed position\n        toolbarIcons         : \"full\",\n        toolbarTitles        : {},\n        toolbarHandlers      : {\n            ucwords : function() {\n                return editormd.toolbarHandlers.ucwords;\n            },\n            lowercase : function() {\n                return editormd.toolbarHandlers.lowercase;\n            }\n        },\n        toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default <a> tag.\n            lowercase        : \"<a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a</i></a>\",\n            \"ucwords\"        : \"<a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa</i></a>\"\n        }, \n        toolbarIconsClass    : {\n            undo             : \"fa-undo\",\n            redo             : \"fa-repeat\",\n            bold             : \"fa-bold\",\n            del              : \"fa-strikethrough\",\n            italic           : \"fa-italic\",\n            quote            : \"fa-quote-left\",\n            uppercase        : \"fa-font\",\n            h1               : editormd.classPrefix + \"bold\",\n            h2               : editormd.classPrefix + \"bold\",\n            h3               : editormd.classPrefix + \"bold\",\n            h4               : editormd.classPrefix + \"bold\",\n            h5               : editormd.classPrefix + \"bold\",\n            h6               : editormd.classPrefix + \"bold\",\n            \"list-ul\"        : \"fa-list-ul\",\n            \"list-ol\"        : \"fa-list-ol\",\n            hr               : \"fa-minus\",\n            link             : \"fa-link\",\n            \"reference-link\" : \"fa-anchor\",\n            image            : \"fa-picture-o\",\n            code             : \"fa-code\",\n            \"preformatted-text\" : \"fa-file-code-o\",\n            \"code-block\"     : \"fa-file-code-o\",\n            table            : \"fa-table\",\n            datetime         : \"fa-clock-o\",\n            emoji            : \"fa-smile-o\",\n            \"html-entities\"  : \"fa-copyright\",\n            pagebreak        : \"fa-newspaper-o\",\n            \"goto-line\"      : \"fa-terminal\", // fa-crosshairs\n            watch            : \"fa-eye-slash\",\n            unwatch          : \"fa-eye\",\n            preview          : \"fa-desktop\",\n            search           : \"fa-search\",\n            fullscreen       : \"fa-arrows-alt\",\n            clear            : \"fa-eraser\",\n            help             : \"fa-question-circle\",\n            info             : \"fa-info-circle\"\n        },        \n        toolbarIconTexts     : {},\n        \n        lang : {\n            name        : \"zh-cn\",\n            description : \"开源在线Markdown编辑器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目录\",\n            toolbar     : {\n                undo             : \"撤销（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗体\",\n                del              : \"删除线\",\n                italic           : \"斜体\",\n                quote            : \"引用\",\n                ucwords          : \"将每个单词首字母转成大写\",\n                uppercase        : \"将所选转换成大写\",\n                lowercase        : \"将所选转换成小写\",\n                h1               : \"标题1\",\n                h2               : \"标题2\",\n                h3               : \"标题3\",\n                h4               : \"标题4\",\n                h5               : \"标题5\",\n                h6               : \"标题6\",\n                \"list-ul\"        : \"无序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用链接\",\n                image            : \"添加图片\",\n                code             : \"行内代码\",\n                \"preformatted-text\" : \"预格式文本 / 代码块（缩进风格）\",\n                \"code-block\"     : \"代码块（多语言风格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期时间\",\n                emoji            : \"Emoji表情\",\n                \"html-entities\"  : \"HTML实体字符\",\n                pagebreak        : \"插入分页符\",\n                \"goto-line\"      : \"跳转到行\",\n                watch            : \"关闭实时预览\",\n                unwatch          : \"开启实时预览\",\n                preview          : \"全窗口预览HTML（按 Shift + ESC还原）\",\n                fullscreen       : \"全屏（按ESC还原）\",\n                clear            : \"清空\",\n                search           : \"搜索\",\n                help             : \"使用帮助\",\n                info             : \"关于\" + editormd.title\n            },\n            buttons : {\n                enter  : \"确定\",\n                cancel : \"取消\",\n                close  : \"关闭\"\n            },\n            dialog : {\n                link : {\n                    title    : \"添加链接\",\n                    url      : \"链接地址\",\n                    urlTitle : \"链接标题\",\n                    urlEmpty : \"错误：请填写链接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用链接\",\n                    name     : \"引用名称\",\n                    url      : \"链接地址\",\n                    urlId    : \"链接ID\",\n                    urlTitle : \"链接标题\",\n                    nameEmpty: \"错误：引用链接的名称不能为空。\",\n                    idEmpty  : \"错误：请填写引用链接的ID。\",\n                    urlEmpty : \"错误：请填写引用链接的URL地址。\"\n                },\n                image : {\n                    title    : \"添加图片\",\n                    url      : \"图片地址\",\n                    link     : \"图片链接\",\n                    alt      : \"图片描述\",\n                    uploadButton     : \"本地上传\",\n                    imageURLEmpty    : \"错误：图片地址不能为空。\",\n                    uploadFileEmpty  : \"错误：上传的图片不能为空。\",\n                    formatNotAllowed : \"错误：只允许上传图片文件，允许上传的图片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加预格式文本或代码块\", \n                    emptyAlert        : \"错误：请填写预格式文本或代码的内容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代码块\",                    \n                    selectLabel       : \"代码语言：\",\n                    selectDefaultText : \"请选择代码语言\",\n                    otherLanguage     : \"其他语言\",\n                    unselectedLanguageAlert : \"错误：请选择代码所属的语言类型。\",\n                    codeEmptyAlert    : \"错误：请填写代码内容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML 实体字符\"\n                },\n                help : {\n                    title : \"使用帮助\"\n                }\n            }\n        }\n    };\n    \n    editormd.classNames  = {\n        tex : editormd.classPrefix + \"tex\"\n    };\n\n    editormd.dialogZindex = 99999;\n    \n    editormd.$katex       = null;\n    editormd.$marked      = null;\n    editormd.$CodeMirror  = null;\n    editormd.$prettyPrint = null;\n    \n    var timer, flowchartTimer;\n\n    editormd.prototype    = editormd.fn = {\n        state : {\n            watching   : false,\n            loaded     : false,\n            preview    : false,\n            fullscreen : false\n        },\n        \n        /**\n         * 构造函数/实例初始化\n         * Constructor / instance initialization\n         * \n         * @param   {String}   id            编辑器的ID\n         * @param   {Object}   [options={}]  配置选项 Key/Value\n         * @returns {editormd}               返回editormd的实例对象\n         */\n        \n        init : function (id, options) {\n            \n            options              = options || {};\n            \n            if (typeof id === \"object\")\n            {\n                options = id;\n            }\n            \n            var _this            = this;\n            var classPrefix      = this.classPrefix  = editormd.classPrefix; \n            var settings         = this.settings     = $.extend(true, editormd.defaults, options);\n            \n            id                   = (typeof id === \"object\") ? settings.id : id;\n            \n            var editor           = this.editor       = $(\"#\" + id);\n            \n            this.id              = id;\n            this.lang            = settings.lang;\n            \n            var classNames       = this.classNames   = {\n                textarea : {\n                    html     : classPrefix + \"html-textarea\",\n                    markdown : classPrefix + \"markdown-textarea\"\n                }\n            };\n            \n            settings.pluginPath = (settings.pluginPath === \"\") ? settings.path + \"../plugins/\" : settings.pluginPath; \n            \n            this.state.watching = (settings.watch) ? true : false;\n            \n            if ( !editor.hasClass(\"editormd\") ) {\n                editor.addClass(\"editormd\");\n            }\n            \n            editor.css({\n                width  : (typeof settings.width  === \"number\") ? settings.width  + \"px\" : settings.width,\n                height : (typeof settings.height === \"number\") ? settings.height + \"px\" : settings.height\n            });\n            \n            if (settings.autoHeight)\n            {\n                editor.css(\"height\", \"auto\");\n            }\n                        \n            var markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            \n            if (markdownTextarea.length < 1)\n            {\n                editor.append(\"<textarea></textarea>\");\n                markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            }\n            \n            markdownTextarea.addClass(classNames.textarea.markdown).attr(\"placeholder\", settings.placeholder);\n            \n            if (typeof markdownTextarea.attr(\"name\") === \"undefined\" || markdownTextarea.attr(\"name\") === \"\")\n            {\n                markdownTextarea.attr(\"name\", (settings.name !== \"\") ? settings.name : id + \"-markdown-doc\");\n            }\n            \n            var appendElements = [\n                (!settings.readOnly) ? \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"preview-close-btn\\\"></a>\" : \"\",\n                ( (settings.saveHTMLToTextarea) ? \"<textarea class=\\\"\" + classNames.textarea.html + \"\\\" name=\\\"\" + id + \"-html-code\\\"></textarea>\" : \"\" ),\n                \"<div class=\\\"\" + classPrefix + \"preview\\\"><div class=\\\"markdown-body \" + classPrefix + \"preview-container\\\"></div></div>\",\n                \"<div class=\\\"\" + classPrefix + \"container-mask\\\" style=\\\"display:block;\\\"></div>\",\n                \"<div class=\\\"\" + classPrefix + \"mask\\\"></div>\"\n            ].join(\"\\n\");\n            \n            editor.append(appendElements).addClass(classPrefix + \"vertical\");\n            \n            if (settings.theme !== \"\") \n            {\n                editor.addClass(classPrefix + \"theme-\" + settings.theme);\n            }\n            \n            this.mask          = editor.children(\".\" + classPrefix + \"mask\");    \n            this.containerMask = editor.children(\".\" + classPrefix  + \"container-mask\");\n            \n            if (settings.markdown !== \"\")\n            {\n                markdownTextarea.val(settings.markdown);\n            }\n            \n            if (settings.appendMarkdown !== \"\")\n            {\n                markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown);\n            }\n            \n            this.htmlTextarea     = editor.children(\".\" + classNames.textarea.html);            \n            this.preview          = editor.children(\".\" + classPrefix + \"preview\");\n            this.previewContainer = this.preview.children(\".\" + classPrefix + \"preview-container\");\n            \n            if (settings.previewTheme !== \"\") \n            {\n                this.preview.addClass(classPrefix + \"preview-theme-\" + settings.previewTheme);\n            }\n            \n            if (typeof define === \"function\" && define.amd)\n            {\n                if (typeof katex !== \"undefined\") \n                {\n                    editormd.$katex = katex;\n                }\n                \n                if (settings.searchReplace && !settings.readOnly) \n                {\n                    editormd.loadCSS(settings.path + \"codemirror/addon/dialog/dialog\");\n                    editormd.loadCSS(settings.path + \"codemirror/addon/search/matchesonscrollbar\");\n                }\n            }\n            \n            if ((typeof define === \"function\" && define.amd) || !settings.autoLoadModules)\n            {\n                if (typeof CodeMirror !== \"undefined\") {\n                    editormd.$CodeMirror = CodeMirror;\n                }\n                \n                if (typeof marked     !== \"undefined\") {\n                    editormd.$marked     = marked;\n                }\n                \n                this.setCodeMirror().setToolbar().loadedDisplay();\n            } \n            else \n            {\n                this.loadQueues();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 所需组件加载队列\n         * Required components loading queue\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        loadQueues : function() {\n            var _this        = this;\n            var settings     = this.settings;\n            var loadPath     = settings.path;\n                                \n            var loadFlowChartOrSequenceDiagram = function() {\n                \n                if (editormd.isIE8) \n                {\n                    _this.loadedDisplay();\n                    \n                    return ;\n                }\n\n                if (settings.flowChart || settings.sequenceDiagram) \n                {\n                    editormd.loadScript(loadPath + \"raphael.min\", function() {\n\n                        editormd.loadScript(loadPath + \"underscore.min\", function() {  \n\n                            if (!settings.flowChart && settings.sequenceDiagram) \n                            {\n                                editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                    _this.loadedDisplay();\n                                });\n                            }\n                            else if (settings.flowChart && !settings.sequenceDiagram) \n                            {      \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        _this.loadedDisplay();\n                                    });\n                                });\n                            }\n                            else if (settings.flowChart && settings.sequenceDiagram) \n                            {  \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                            _this.loadedDisplay();\n                                        });\n                                    });\n                                });\n                            }\n                        });\n\n                    });\n                } \n                else\n                {\n                    _this.loadedDisplay();\n                }\n            }; \n\n            editormd.loadCSS(loadPath + \"codemirror/codemirror.min\");\n            \n            if (settings.searchReplace && !settings.readOnly)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/dialog/dialog\");\n                editormd.loadCSS(loadPath + \"codemirror/addon/search/matchesonscrollbar\");\n            }\n            \n            if (settings.codeFold)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/fold/foldgutter\");            \n            }\n            \n            editormd.loadScript(loadPath + \"codemirror/codemirror.min\", function() {\n                editormd.$CodeMirror = CodeMirror;\n                \n                editormd.loadScript(loadPath + \"codemirror/modes.min\", function() {\n                    \n                    editormd.loadScript(loadPath + \"codemirror/addons.min\", function() {\n                        \n                        _this.setCodeMirror();\n                        \n                        if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n                        {\n                            _this.loadedDisplay();\n                            \n                            return false;\n                        }\n                        \n                        _this.setToolbar();\n\n                        editormd.loadScript(loadPath + \"marked.min\", function() {\n\n                            editormd.$marked = marked;\n                                \n                            if (settings.previewCodeHighlight) \n                            {\n                                editormd.loadScript(loadPath + \"prettify.min\", function() {\n                                    loadFlowChartOrSequenceDiagram();\n                                });\n                            } \n                            else\n                            {                  \n                                loadFlowChartOrSequenceDiagram();\n                            }\n                        });\n                        \n                    });\n                    \n                });\n                \n            });\n\n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的整体主题，主要是工具栏\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setTheme : function(theme) {\n            var editor      = this.editor;\n            var oldTheme    = this.settings.theme;\n            var themePrefix = this.classPrefix + \"theme-\";\n            \n            editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.theme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 设置 CodeMirror（编辑区）的主题\n         * Setting CodeMirror (Editor area) theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setEditorTheme : function(theme) {  \n            var settings   = this.settings;  \n            settings.editorTheme = theme;  \n            \n            if (theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            this.cm.setOption(\"theme\", theme);\n            \n            return this;\n        },\n        \n        /**\n         * setEditorTheme() 的别名\n         * setEditorTheme() alias\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorTheme : function (theme) {            \n            this.setEditorTheme(theme);\n            \n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的主题\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setPreviewTheme : function(theme) {  \n            var preview     = this.preview;\n            var oldTheme    = this.settings.previewTheme;\n            var themePrefix = this.classPrefix + \"preview-theme-\";\n            \n            preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.previewTheme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 配置和初始化CodeMirror组件\n         * CodeMirror initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirror : function() { \n            var settings         = this.settings;\n            var editor           = this.editor;\n            \n            if (settings.editorTheme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            var codeMirrorConfig = {\n                mode                      : settings.mode,\n                theme                     : settings.editorTheme,\n                tabSize                   : settings.tabSize,\n                dragDrop                  : false,\n                autofocus                 : settings.autoFocus,\n                autoCloseTags             : settings.autoCloseTags,\n                readOnly                  : (settings.readOnly) ? \"nocursor\" : false,\n                indentUnit                : settings.indentUnit,\n                lineNumbers               : settings.lineNumbers,\n                lineWrapping              : settings.lineWrapping,\n                extraKeys                 : {\n                                                \"Ctrl-Q\": function(cm) { \n                                                    cm.foldCode(cm.getCursor()); \n                                                }\n                                            },\n                foldGutter                : settings.codeFold,\n                gutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n                matchBrackets             : settings.matchBrackets,\n                indentWithTabs            : settings.indentWithTabs,\n                styleActiveLine           : settings.styleActiveLine,\n                styleSelectedText         : settings.styleSelectedText,\n                autoCloseBrackets         : settings.autoCloseBrackets,\n                showTrailingSpace         : settings.showTrailingSpace,\n                highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === \"onselected\") ? false : /\\w/ } )\n            };\n            \n            this.codeEditor = this.cm        = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig);\n            this.codeMirror = this.cmElement = editor.children(\".CodeMirror\");\n            \n            if (settings.value !== \"\")\n            {\n                this.cm.setValue(settings.value);\n            }\n\n            this.codeMirror.css({\n                fontSize : settings.fontSize,\n                width    : (!settings.watch) ? \"100%\" : \"50%\"\n            });\n            \n            if (settings.autoHeight)\n            {\n                this.codeMirror.css(\"height\", \"auto\");\n                this.cm.setOption(\"viewportMargin\", Infinity);\n            }\n            \n            if (!settings.lineNumbers)\n            {\n                this.codeMirror.find(\".CodeMirror-gutters\").css(\"border-right\", \"none\");\n            }\n\n            return this;\n        },\n        \n        /**\n         * 获取CodeMirror的配置选项\n         * Get CodeMirror setting options\n         * \n         * @returns {Mixed}                  return CodeMirror setting option value\n         */\n        \n        getCodeMirrorOption : function(key) {            \n            return this.cm.getOption(key);\n        },\n        \n        /**\n         * 配置和重配置CodeMirror的选项\n         * CodeMirror setting options / resettings\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorOption : function(key, value) {\n            \n            this.cm.setOption(key, value);\n            \n            return this;\n        },\n        \n        /**\n         * 添加 CodeMirror 键盘快捷键\n         * Add CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        addKeyMap : function(map, bottom) {\n            this.cm.addKeyMap(map, bottom);\n            \n            return this;\n        },\n        \n        /**\n         * 移除 CodeMirror 键盘快捷键\n         * Remove CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        removeKeyMap : function(map) {\n            this.cm.removeKeyMap(map);\n            \n            return this;\n        },\n        \n        /**\n         * 跳转到指定的行\n         * Goto CodeMirror line\n         * \n         * @param   {String|Intiger}   line      line number or \"first\"|\"last\"\n         * @returns {editormd}                   返回editormd的实例对象\n         */\n        \n        gotoLine : function (line) {\n            \n            var settings = this.settings;\n            \n            if (!settings.gotoLine)\n            {\n                return this;\n            }\n            \n            var cm       = this.cm;\n            var editor   = this.editor;\n            var count    = cm.lineCount();\n            var preview  = this.preview;\n            \n            if (typeof line === \"string\")\n            {\n                if(line === \"last\")\n                {\n                    line = count;\n                }\n            \n                if (line === \"first\")\n                {\n                    line = 1;\n                }\n            }\n            \n            if (typeof line !== \"number\") \n            {  \n                alert(\"Error: The line number must be an integer.\");\n                return this;\n            }\n            \n            line  = parseInt(line) - 1;\n            \n            if (line > count)\n            {\n                alert(\"Error: The line number range 1-\" + count);\n                \n                return this;\n            }\n            \n            cm.setCursor( {line : line, ch : 0} );\n            \n            var scrollInfo   = cm.getScrollInfo();\n            var clientHeight = scrollInfo.clientHeight; \n            var coords       = cm.charCoords({line : line, ch : 0}, \"local\");\n            \n            cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2);\n            \n            if (settings.watch)\n            {            \n                var cmScroll  = this.codeMirror.find(\".CodeMirror-scroll\")[0];\n                var height    = $(cmScroll).height(); \n                var scrollTop = cmScroll.scrollTop;         \n                var percent   = (scrollTop / cmScroll.scrollHeight);\n\n                if (scrollTop === 0)\n                {\n                    preview.scrollTop(0);\n                } \n                else if (scrollTop + height >= cmScroll.scrollHeight - 16)\n                { \n                    preview.scrollTop(preview[0].scrollHeight);                    \n                } \n                else\n                {                    \n                    preview.scrollTop(preview[0].scrollHeight * percent);\n                }\n            }\n\n            cm.focus();\n            \n            return this;\n        },\n        \n        /**\n         * 扩展当前实例对象，可同时设置多个或者只设置一个\n         * Extend editormd instance object, can mutil setting.\n         * \n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        extend : function() {\n            if (typeof arguments[1] !== \"undefined\")\n            {\n                if (typeof arguments[1] === \"function\")\n                {\n                    arguments[1] = $.proxy(arguments[1], this);\n                }\n\n                this[arguments[0]] = arguments[1];\n            }\n            \n            if (typeof arguments[0] === \"object\" && typeof arguments[0].length === \"undefined\")\n            {\n                $.extend(true, this, arguments[0]);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 设置或扩展当前实例对象，单个设置\n         * Extend editormd instance object, one by one\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        set : function (key, value) {\n            \n            if (typeof value !== \"undefined\" && typeof value === \"function\")\n            {\n                value = $.proxy(value, this);\n            }\n            \n            this[key] = value;\n\n            return this;\n        },\n        \n        /**\n         * 重新配置\n         * Resetting editor options\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        config : function(key, value) {\n            var settings = this.settings;\n            \n            if (typeof key === \"object\")\n            {\n                settings = $.extend(true, settings, key);\n            }\n            \n            if (typeof key === \"string\")\n            {\n                settings[key] = value;\n            }\n            \n            this.settings = settings;\n            this.recreate();\n            \n            return this;\n        },\n        \n        /**\n         * 注册事件处理方法\n         * Bind editor event handle\n         * \n         * @param   {String}     eventType      event type\n         * @param   {Function}   callback       回调函数\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        on : function(eventType, callback) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {                \n                settings[\"on\" + eventType] = $.proxy(callback, this);      \n            }\n\n            return this;\n        },\n        \n        /**\n         * 解除事件处理方法\n         * Unbind editor event handle\n         * \n         * @param   {String}   eventType          event type\n         * @returns {editormd}                    this(editormd instance object.)\n         */\n        \n        off : function(eventType) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {\n                settings[\"on\" + eventType] = function(){};\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 显示工具栏\n         * Display toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showToolbar : function(callback) {\n            var settings = this.settings;\n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find(\".\" + this.classPrefix + \"menu\").html() === \"\") )\n            {\n                this.setToolbar();\n            }\n            \n            settings.toolbar = true; \n            \n            this.toolbar.show();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏工具栏\n         * Hide toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}                         this(editormd instance object.)\n         */\n        \n        hideToolbar : function(callback) { \n            var settings = this.settings;\n            \n            settings.toolbar = false;  \n            this.toolbar.hide();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 页面滚动时工具栏的固定定位\n         * Set toolbar in window scroll auto fixed position\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarAutoFixed : function(fixed) {\n            \n            var state    = this.state;\n            var editor   = this.editor;\n            var toolbar  = this.toolbar;\n            var settings = this.settings;\n            \n            if (typeof fixed !== \"undefined\")\n            {\n                settings.toolbarAutoFixed = fixed;\n            }\n            \n            var autoFixedHandle = function(){\n                var $window = $(window);\n                var top     = $window.scrollTop();\n                \n                if (!settings.toolbarAutoFixed)\n                {\n                    return false;\n                }\n\n                if (top - editor.offset().top > 10 && top < editor.height())\n                {\n                    toolbar.css({\n                        position : \"fixed\",\n                        width    : editor.width() + \"px\",\n                        left     : ($window.width() - editor.width()) / 2 + \"px\"\n                    });\n                }\n                else\n                {\n                    toolbar.css({\n                        position : \"absolute\",\n                        width    : \"100%\",\n                        left     : 0\n                    });\n                }\n            };\n            \n            if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed)\n            {\n                $(window).bind(\"scroll\", autoFixedHandle);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 配置和初始化工具栏\n         * Set toolbar and Initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbar : function() {\n            var settings    = this.settings;  \n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            var editor      = this.editor;\n            var preview     = this.preview;\n            var classPrefix = this.classPrefix;\n            \n            var toolbar     = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            \n            if (settings.toolbar && toolbar.length < 1)\n            {            \n                var toolbarHTML = \"<div class=\\\"\" + classPrefix + \"toolbar\\\"><div class=\\\"\" + classPrefix + \"toolbar-container\\\"><ul class=\\\"\" + classPrefix + \"menu\\\"></ul></div></div>\";\n                \n                editor.append(toolbarHTML);\n                toolbar = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            }\n            \n            if (!settings.toolbar) \n            {\n                toolbar.hide();\n                \n                return this;\n            }\n            \n            toolbar.show();\n            \n            var icons       = (typeof settings.toolbarIcons === \"function\") ? settings.toolbarIcons() \n                            : ((typeof settings.toolbarIcons === \"string\")  ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons);\n            \n            var toolbarMenu = toolbar.find(\".\" + this.classPrefix + \"menu\"), menu = \"\";\n            var pullRight   = false;\n            \n            for (var i = 0, len = icons.length; i < len; i++)\n            {\n                var name = icons[i];\n\n                if (name === \"||\") \n                { \n                    pullRight = true;\n                } \n                else if (name === \"|\")\n                {\n                    menu += \"<li class=\\\"divider\\\" unselectable=\\\"on\\\">|</li>\";\n                }\n                else\n                {\n                    var isHeader = (/h(\\d)/.test(name));\n                    var index    = name;\n                    \n                    if (name === \"watch\" && !settings.watch) {\n                        index = \"unwatch\";\n                    }\n                    \n                    var title     = settings.lang.toolbar[index];\n                    var iconTexts = settings.toolbarIconTexts[index];\n                    var iconClass = settings.toolbarIconsClass[index];\n                    \n                    title     = (typeof title     === \"undefined\") ? \"\" : title;\n                    iconTexts = (typeof iconTexts === \"undefined\") ? \"\" : iconTexts;\n                    iconClass = (typeof iconClass === \"undefined\") ? \"\" : iconClass;\n\n                    var menuItem = pullRight ? \"<li class=\\\"pull-right\\\">\" : \"<li>\";\n                    \n                    if (typeof settings.toolbarCustomIcons[name] !== \"undefined\" && typeof settings.toolbarCustomIcons[name] !== \"function\")\n                    {\n                        menuItem += settings.toolbarCustomIcons[name];\n                    }\n                    else \n                    {\n                        menuItem += \"<a href=\\\"javascript:;\\\" title=\\\"\" + title + \"\\\" unselectable=\\\"on\\\">\";\n                        menuItem += \"<i class=\\\"fa \" + iconClass + \"\\\" name=\\\"\"+name+\"\\\" unselectable=\\\"on\\\">\"+((isHeader) ? name.toUpperCase() : ( (iconClass === \"\") ? iconTexts : \"\") ) + \"</i>\";\n                        menuItem += \"</a>\";\n                    }\n\n                    menuItem += \"</li>\";\n\n                    menu = pullRight ? menuItem + menu : menu + menuItem;\n                }\n            }\n\n            toolbarMenu.html(menu);\n            \n            toolbarMenu.find(\"[title=\\\"Lowercase\\\"]\").attr(\"title\", settings.lang.toolbar.lowercase);\n            toolbarMenu.find(\"[title=\\\"ucwords\\\"]\").attr(\"title\", settings.lang.toolbar.ucwords);\n            \n            this.setToolbarHandler();\n            this.setToolbarAutoFixed();\n\n            return this;\n        },\n        \n        /**\n         * 工具栏图标事件处理对象序列\n         * Get toolbar icons event handlers\n         * \n         * @param   {Object}   cm    CodeMirror的实例对象\n         * @param   {String}   name  要获取的事件处理器名称\n         * @returns {Object}         返回处理对象序列\n         */\n            \n        dialogLockScreen : function() {\n            $.proxy(editormd.dialogLockScreen, this)();\n            \n            return this;\n        },\n\n        dialogShowMask : function(dialog) {\n            $.proxy(editormd.dialogShowMask, this)(dialog);\n            \n            return this;\n        },\n        \n        getToolbarHandles : function(name) {  \n            var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers;\n            \n            return (name && typeof toolbarIconHandlers[name] !== \"undefined\") ? toolbarHandlers[name] : toolbarHandlers;\n        },\n        \n        /**\n         * 工具栏图标事件处理器\n         * Bind toolbar icons event handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarHandler : function() {\n            var _this               = this;\n            var settings            = this.settings;\n            \n            if (!settings.toolbar || settings.readOnly) {\n                return this;\n            }\n            \n            var toolbar             = this.toolbar;\n            var cm                  = this.cm;\n            var classPrefix         = this.classPrefix;           \n            var toolbarIcons        = this.toolbarIcons = toolbar.find(\".\" + classPrefix + \"menu > li > a\");  \n            var toolbarIconHandlers = this.getToolbarHandles();  \n                \n            toolbarIcons.bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(event) {\n\n                var icon                = $(this).children(\".fa\");\n                var name                = icon.attr(\"name\");\n                var cursor              = cm.getCursor();\n                var selection           = cm.getSelection();\n\n                if (name === \"\") {\n                    return ;\n                }\n                \n                _this.activeIcon = icon;\n\n                if (typeof toolbarIconHandlers[name] !== \"undefined\") \n                {\n                    $.proxy(toolbarIconHandlers[name], _this)(cm);\n                }\n                else \n                {\n                    if (typeof settings.toolbarHandlers[name] !== \"undefined\") \n                    {\n                        $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection);\n                    }\n                }\n                \n                if (name !== \"link\" && name !== \"reference-link\" && name !== \"image\" && name !== \"code-block\" && \n                    name !== \"preformatted-text\" && name !== \"watch\" && name !== \"preview\" && name !== \"search\" && name !== \"fullscreen\" && name !== \"info\") \n                {\n                    cm.focus();\n                }\n\n                return false;\n\n            });\n\n            return this;\n        },\n        \n        /**\n         * 动态创建对话框\n         * Creating custom dialogs\n         * \n         * @param   {Object} options  配置项键值对 Key/Value\n         * @returns {dialog}          返回创建的dialog的jQuery实例对象\n         */\n        \n        createDialog : function(options) {            \n            return $.proxy(editormd.createDialog, this)(options);\n        },\n        \n        /**\n         * 创建关于Editor.md的对话框\n         * Create about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        createInfoDialog : function() {\n            var _this        = this;\n\t\t\tvar editor       = this.editor;\n            var classPrefix  = this.classPrefix;  \n            \n            var infoDialogHTML = [\n                \"<div class=\\\"\" + classPrefix + \"dialog \" + classPrefix + \"dialog-info\\\" style=\\\"\\\">\",\n                \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\",\n                \"<h1><i class=\\\"editormd-logo editormd-logo-lg editormd-logo-color\\\"></i> \" + editormd.title + \"<small>v\" + editormd.version + \"</small></h1>\",\n                \"<p>\" + this.lang.description + \"</p>\",\n                \"<p style=\\\"margin: 10px 0 20px 0;\\\"><a href=\\\"\" + editormd.homePage + \"\\\" target=\\\"_blank\\\">\" + editormd.homePage + \" <i class=\\\"fa fa-external-link\\\"></i></a></p>\",\n                \"<p style=\\\"font-size: 0.85em;\\\">Copyright &copy; 2015 <a href=\\\"https://github.com/pandao\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">Pandao</a>, The <a href=\\\"https://github.com/pandao/editor.md/blob/master/LICENSE\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">MIT</a> License.</p>\",\n                \"</div>\",\n                \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\",\n                \"</div>\"\n            ].join(\"\\n\");\n\n            editor.append(infoDialogHTML);\n            \n            var infoDialog  = this.infoDialog = editor.children(\".\" + classPrefix + \"dialog-info\");\n\n            infoDialog.find(\".\" + classPrefix + \"dialog-close\").bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function() {\n                _this.hideInfoDialog();\n            });\n            \n            infoDialog.css(\"border\", (editormd.isIE8) ? \"1px solid #ddd\" : \"\").css(\"z-index\", editormd.dialogZindex).show();\n            \n            this.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 关于Editor.md对话居中定位\n         * Editor.md dialog position handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        infoDialogPosition : function() {\n            var infoDialog = this.infoDialog;\n            \n\t\t\tvar _infoDialogPosition = function() {\n\t\t\t\tinfoDialog.css({\n\t\t\t\t\ttop  : ($(window).height() - infoDialog.height()) / 2 + \"px\",\n\t\t\t\t\tleft : ($(window).width()  - infoDialog.width()) / 2  + \"px\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t_infoDialogPosition();\n\n\t\t\t$(window).resize(_infoDialogPosition);\n            \n            return this;\n        },\n        \n        /**\n         * 显示关于Editor.md\n         * Display about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showInfoDialog : function() {\n\n            $(\"html,body\").css(\"overflow-x\", \"hidden\");\n            \n            var _this       = this;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;         \n\t\t\tvar infoDialog  = this.infoDialog = editor.children(\".\" + this.classPrefix + \"dialog-info\");\n            \n            if (infoDialog.length < 1)\n            {\n                this.createInfoDialog();\n            }\n            \n            this.lockScreen(true);\n            \n            this.mask.css({\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t}).show();\n\n\t\t\tinfoDialog.css(\"z-index\", editormd.dialogZindex).show();\n\n\t\t\tthis.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏关于Editor.md\n         * Hide about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        hideInfoDialog : function() {            \n            $(\"html,body\").css(\"overflow-x\", \"\");\n            this.infoDialog.hide();\n            this.mask.hide();\n            this.lockScreen(false);\n\n            return this;\n        },\n        \n        /**\n         * 锁屏\n         * lock screen\n         * \n         * @param   {Boolean}    lock    Boolean 布尔值，是否锁屏\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        lockScreen : function(lock) {\n            editormd.lockScreen(lock);\n            this.resize();\n\n            return this;\n        },\n        \n        /**\n         * 编辑器界面重建，用于动态语言包或模块加载等\n         * Recreate editor\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        recreate : function() {\n            var _this            = this;\n            var editor           = this.editor;\n            var settings         = this.settings;\n            \n            this.codeMirror.remove();\n            \n            this.setCodeMirror();\n\n            if (!settings.readOnly) \n            {\n                if (editor.find(\".editormd-dialog\").length > 0) {\n                    editor.find(\".editormd-dialog\").remove();\n                }\n                \n                if (settings.toolbar) \n                {  \n                    this.getToolbarHandles();                  \n                    this.setToolbar();\n                }\n            }\n            \n            this.loadedDisplay(true);\n\n            return this;\n        },\n        \n        /**\n         * 高亮预览HTML的pre代码部分\n         * highlight of preview codes\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        previewCodeHighlight : function() {    \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (settings.previewCodeHighlight) \n            {\n                previewContainer.find(\"pre\").addClass(\"prettyprint linenums\");\n                \n                if (typeof prettyPrint !== \"undefined\")\n                {                    \n                    prettyPrint();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析TeX(KaTeX)科学公式\n         * TeX(KaTeX) Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        katexRender : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            this.previewContainer.find(\".\" + editormd.classNames.tex).each(function(){\n                var tex  = $(this);\n                editormd.$katex.render(tex.text(), tex[0]);\n                \n                tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n            });   \n\n            return this;\n        },\n        \n        /**\n         * 解析和渲染流程图及时序图\n         * FlowChart and SequenceDiagram Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        flowChartAndSequenceDiagramRender : function() {\n            var $this            = this;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (editormd.isIE8) {\n                return this;\n            }\n\n            if (settings.flowChart) {\n                if (flowchartTimer === null) {\n                    return this;\n                }\n                \n                previewContainer.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                previewContainer.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n                    \n            var preview    = $this.preview;\n            var codeMirror = $this.codeMirror;\n            var codeView   = codeMirror.find(\".CodeMirror-scroll\");\n\n            var height    = codeView.height();\n            var scrollTop = codeView.scrollTop();                    \n            var percent   = (scrollTop / codeView[0].scrollHeight);\n            var tocHeight = 0;\n\n            preview.find(\".markdown-toc-list\").each(function(){\n                tocHeight += $(this).height();\n            });\n\n            var tocMenuHeight = preview.find(\".editormd-toc-menu\").height(); \n            tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n            if (scrollTop === 0) \n            {\n                preview.scrollTop(0);\n            } \n            else if (scrollTop + height >= codeView[0].scrollHeight - 16)\n            { \n                preview.scrollTop(preview[0].scrollHeight);                        \n            } \n            else\n            {                  \n                preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 注册键盘快捷键处理\n         * Register CodeMirror keyMaps (keyboard shortcuts).\n         * \n         * @param   {Object}    keyMap      KeyMap key/value {\"(Ctrl/Shift/Alt)-Key\" : function(){}}\n         * @returns {editormd}              return this\n         */\n        \n        registerKeyMaps : function(keyMap) {\n            \n            var _this           = this;\n            var cm              = this.cm;\n            var settings        = this.settings;\n            var toolbarHandlers = editormd.toolbarHandlers;\n            var disabledKeyMaps = settings.disabledKeyMaps;\n            \n            keyMap              = keyMap || null;\n            \n            if (keyMap)\n            {\n                for (var i in keyMap)\n                {\n                    if ($.inArray(i, disabledKeyMaps) < 0)\n                    {\n                        var map = {};\n                        map[i]  = keyMap[i];\n\n                        cm.addKeyMap(keyMap);\n                    }\n                }\n            }\n            else\n            {\n                for (var k in editormd.keyMaps)\n                {\n                    var _keyMap = editormd.keyMaps[k];\n                    var handle = (typeof _keyMap === \"string\") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this);\n                    \n                    if ($.inArray(k, [\"F9\", \"F10\", \"F11\"]) < 0 && $.inArray(k, disabledKeyMaps) < 0)\n                    {\n                        var _map = {};\n                        _map[k] = handle;\n\n                        cm.addKeyMap(_map);\n                    }\n                }\n                \n                $(window).keydown(function(event) {\n                    \n                    var keymaps = {\n                        \"120\" : \"F9\",\n                        \"121\" : \"F10\",\n                        \"122\" : \"F11\"\n                    };\n                    \n                    if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 )\n                    {\n                        switch (event.keyCode)\n                        {\n                            case 120:\n                                    $.proxy(toolbarHandlers[\"watch\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 121:\n                                    $.proxy(toolbarHandlers[\"preview\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 122:\n                                    $.proxy(toolbarHandlers[\"fullscreen\"], _this)();                        \n                                    return false;\n                                break;\n                                \n                            default:\n                                break;\n                        }\n                    }\n                });\n            }\n\n            return this;\n        },\n        \n        /**\n         * 绑定同步滚动\n         * \n         * @returns {editormd} return this\n         */\n        \n        bindScrollEvent : function() {\n            \n            var _this            = this;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var mouseOrTouch     = editormd.mouseOrTouch;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n                \n            var cmBindScroll = function() {    \n                codeMirror.find(\".CodeMirror-scroll\").bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();                    \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    \n                    var tocHeight = 0;\n                    \n                    preview.find(\".markdown-toc-list\").each(function(){\n                        tocHeight += $(this).height();\n                    });\n                    \n                    var tocMenuHeight = preview.find(\".editormd-toc-menu\").height();\n                    tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n                    if (scrollTop === 0) \n                    {\n                        preview.scrollTop(0);\n                    } \n                    else if (scrollTop + height >= $(this)[0].scrollHeight - 16)\n                    { \n                        preview.scrollTop(preview[0].scrollHeight);                        \n                    } \n                    else\n                    {\n                        preview.scrollTop((preview[0].scrollHeight  + tocHeight + tocMenuHeight) * percent);\n                    }\n                    \n                    $.proxy(settings.onscroll, _this)(event);\n                });\n            };\n\n            var cmUnbindScroll = function() {\n                codeMirror.find(\".CodeMirror-scroll\").unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            };\n\n            var previewBindScroll = function() {\n                \n                preview.bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();         \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    var codeView  = codeMirror.find(\".CodeMirror-scroll\");\n\n                    if(scrollTop === 0) \n                    {\n                        codeView.scrollTop(0);\n                    }\n                    else if (scrollTop + height >= $(this)[0].scrollHeight)\n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight);                        \n                    }\n                    else \n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onpreviewscroll, _this)(event);\n                });\n\n            };\n\n            var previewUnbindScroll = function() {\n                preview.unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            }; \n\n\t\t\tcodeMirror.bind({\n\t\t\t\tmouseover  : cmBindScroll,\n\t\t\t\tmouseout   : cmUnbindScroll,\n\t\t\t\ttouchstart : cmBindScroll,\n\t\t\t\ttouchend   : cmUnbindScroll\n\t\t\t});\n            \n            if (settings.syncScrolling === \"single\") {\n                return this;\n            }\n            \n\t\t\tpreview.bind({\n\t\t\t\tmouseover  : previewBindScroll,\n\t\t\t\tmouseout   : previewUnbindScroll,\n\t\t\t\ttouchstart : previewBindScroll,\n\t\t\t\ttouchend   : previewUnbindScroll\n\t\t\t});\n\n            return this;\n        },\n        \n        bindChangeEvent : function() {\n            \n            var _this            = this;\n            var cm               = this.cm;\n            var settings         = this.settings;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n            \n            cm.on(\"change\", function(_cm, changeObj) {\n                \n                if (settings.watch)\n                {\n                    _this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                }\n                \n                timer = setTimeout(function() {\n                    clearTimeout(timer);\n                    _this.save();\n                    timer = null;\n                }, settings.delay);\n            });\n\n            return this;\n        },\n        \n        /**\n         * 加载队列完成之后的显示处理\n         * Display handle of the module queues loaded after.\n         * \n         * @param   {Boolean}   recreate   是否为重建编辑器\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        loadedDisplay : function(recreate) {\n            \n            recreate             = recreate || false;\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            \n            this.containerMask.hide();\n            \n            this.save();\n            \n            if (settings.watch) {\n                preview.show();\n            }\n            \n            editor.data(\"oldWidth\", editor.width()).data(\"oldHeight\", editor.height()); // 为了兼容Zepto\n            \n            this.resize();\n            this.registerKeyMaps();\n            \n            $(window).resize(function(){\n                _this.resize();\n            });\n            \n            this.bindScrollEvent().bindChangeEvent();\n            \n            if (!recreate)\n            {\n                $.proxy(settings.onload, this)();\n            }\n            \n            this.state.loaded = true;\n\n            return this;\n        },\n        \n        /**\n         * 设置编辑器的宽度\n         * Set editor width\n         * \n         * @param   {Number|String} width  编辑器宽度值\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        width : function(width) {\n                \n            this.editor.css(\"width\", (typeof width === \"number\") ? width  + \"px\" : width);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 设置编辑器的高度\n         * Set editor height\n         * \n         * @param   {Number|String} height  编辑器高度值\n         * @returns {editormd}              返回editormd的实例对象\n         */\n        \n        height : function(height) {\n                \n            this.editor.css(\"height\", (typeof height === \"number\")  ? height  + \"px\" : height);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 调整编辑器的尺寸和布局\n         * Resize editor layout\n         * \n         * @param   {Number|String} [width=null]  编辑器宽度值\n         * @param   {Number|String} [height=null] 编辑器高度值\n         * @returns {editormd}                    返回editormd的实例对象\n         */\n        \n        resize : function(width, height) {\n            \n            width  = width  || null;\n            height = height || null;\n            \n            var state      = this.state;\n            var editor     = this.editor;\n            var preview    = this.preview;\n            var toolbar    = this.toolbar;\n            var settings   = this.settings;\n            var codeMirror = this.codeMirror;\n            \n            if (width)\n            {\n                editor.css(\"width\", (typeof width  === \"number\") ? width  + \"px\" : width);\n            }\n            \n            if (settings.autoHeight && !state.fullscreen && !state.preview)\n            {\n                editor.css(\"height\", \"auto\");\n                codeMirror.css(\"height\", \"auto\");\n            } \n            else \n            {\n                if (height) \n                {\n                    editor.css(\"height\", (typeof height === \"number\") ? height + \"px\" : height);\n                }\n                \n                if (state.fullscreen)\n                {\n                    editor.height($(window).height());\n                }\n\n                if (settings.toolbar && !settings.readOnly) \n                {\n                    codeMirror.css(\"margin-top\", toolbar.height() + 1).height(editor.height() - toolbar.height());\n                } \n                else\n                {\n                    codeMirror.css(\"margin-top\", 0).height(editor.height());\n                }\n            }\n            \n            if(settings.watch) \n            {\n                codeMirror.width(editor.width() / 2);\n                preview.width((!state.preview) ? editor.width() / 2 : editor.width());\n                \n                this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                \n                if (settings.toolbar && !settings.readOnly) \n                {\n                    preview.css(\"top\", toolbar.height() + 1);\n                } \n                else \n                {\n                    preview.css(\"top\", 0);\n                }\n                \n                if (settings.autoHeight && !state.fullscreen && !state.preview)\n                {\n                    preview.height(\"\");\n                }\n                else\n                {                \n                    var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height();\n                    \n                    preview.height(previewHeight);\n                }\n            } \n            else \n            {\n                codeMirror.width(editor.width());\n                preview.hide();\n            }\n            \n            if (state.loaded) \n            {\n                $.proxy(settings.onresize, this)();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析和保存Markdown代码\n         * Parse & Saving Markdown source code\n         * \n         * @returns {editormd}     返回editormd的实例对象\n         */\n        \n        save : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            var _this            = this;\n            var state            = this.state;\n            var settings         = this.settings;\n            var cm               = this.cm;            \n            var cmValue          = cm.getValue();\n            var previewContainer = this.previewContainer;\n\n            if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n            {\n                this.markdownTextarea.val(cmValue);\n                \n                return this;\n            }\n            \n            var marked          = editormd.$marked;\n            var markdownToC     = this.markdownToC = [];            \n            var rendererOptions = this.markedRendererOptions = {  \n                toc                  : settings.toc,\n                tocm                 : settings.tocm,\n                tocStartLevel        : settings.tocStartLevel,\n                pageBreak            : settings.pageBreak,\n                taskList             : settings.taskList,\n                emoji                : settings.emoji,\n                tex                  : settings.tex,\n                atLink               : settings.atLink,           // for @link\n                emailLink            : settings.emailLink,        // for mail address auto link\n                flowChart            : settings.flowChart,\n                sequenceDiagram      : settings.sequenceDiagram,\n                previewCodeHighlight : settings.previewCodeHighlight,\n            };\n            \n            var markedOptions = this.markedOptions = {\n                renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n                gfm         : true,\n                tables      : true,\n                breaks      : true,\n                pedantic    : false,\n                sanitize    : (settings.htmlDecode) ? false : true,  // 关闭忽略HTML标签，即开启识别HTML标签，默认为false\n                smartLists  : true,\n                smartypants : true\n            };\n            \n            marked.setOptions(markedOptions);\n                    \n            var newMarkdownDoc = editormd.$marked(cmValue, markedOptions);\n            \n            //console.info(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode);\n            \n            //console.error(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            this.markdownTextarea.text(cmValue);\n            \n            cm.save();\n            \n            if (settings.saveHTMLToTextarea) \n            {\n                this.htmlTextarea.text(newMarkdownDoc);\n            }\n            \n            if(settings.watch || (!settings.watch && state.preview))\n            {\n                previewContainer.html(newMarkdownDoc);\n\n                this.previewCodeHighlight();\n                \n                if (settings.toc) \n                {\n                    var tocContainer = (settings.tocContainer === \"\") ? previewContainer : $(settings.tocContainer);\n                    var tocMenu      = tocContainer.find(\".\" + this.classPrefix + \"toc-menu\");\n                    \n                    tocContainer.attr(\"previewContainer\", (settings.tocContainer === \"\") ? \"true\" : \"false\");\n                    \n                    if (settings.tocContainer !== \"\" && tocMenu.length > 0)\n                    {\n                        tocMenu.remove();\n                    }\n                    \n                    editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n                    if (settings.tocDropdown || tocContainer.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n                    {\n                        editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== \"\") ? settings.tocTitle : this.lang.tocTitle);\n                    }\n            \n                    if (settings.tocContainer !== \"\")\n                    {\n                        previewContainer.find(\".markdown-toc\").css(\"border\", \"none\");\n                    }\n                }\n                \n                if (settings.tex)\n                {\n                    if (!editormd.kaTeXLoaded && settings.autoLoadModules) \n                    {\n                        editormd.loadKaTeX(function() {\n                            editormd.$katex = katex;\n                            editormd.kaTeXLoaded = true;\n                            _this.katexRender();\n                        });\n                    } \n                    else \n                    {\n                        editormd.$katex = katex;\n                        this.katexRender();\n                    }\n                }                \n                \n                if (settings.flowChart || settings.sequenceDiagram)\n                {\n                    flowchartTimer = setTimeout(function(){\n                        clearTimeout(flowchartTimer);\n                        _this.flowChartAndSequenceDiagramRender();\n                        flowchartTimer = null;\n                    }, 10);\n                }\n\n                if (state.loaded) \n                {\n                    $.proxy(settings.onchange, this)();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 聚焦光标位置\n         * Focusing the cursor position\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        focus : function() {\n            this.cm.focus();\n\n            return this;\n        },\n        \n        /**\n         * 设置光标的位置\n         * Set cursor position\n         * \n         * @param   {Object}    cursor 要设置的光标位置键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setCursor : function(cursor) {\n            this.cm.setCursor(cursor);\n\n            return this;\n        },\n        \n        /**\n         * 获取当前光标的位置\n         * Get the current position of the cursor\n         * \n         * @returns {Cursor}         返回一个光标Cursor对象\n         */\n        \n        getCursor : function() {\n            return this.cm.getCursor();\n        },\n        \n        /**\n         * 设置光标选中的范围\n         * Set cursor selected ranges\n         * \n         * @param   {Object}    from   开始位置的光标键值对象，例：{line:1, ch:0}\n         * @param   {Object}    to     结束位置的光标键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setSelection : function(from, to) {\n        \n            this.cm.setSelection(from, to);\n        \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本\n         * Get the texts from cursor selected\n         * \n         * @returns {String}         返回选中文本的字符串形式\n         */\n        \n        getSelection : function() {\n            return this.cm.getSelection();\n        },\n        \n        /**\n         * 设置光标选中的文本范围\n         * Set the cursor selection ranges\n         * \n         * @param   {Array}    ranges  cursor selection ranges array\n         * @returns {Array}            return this\n         */\n        \n        setSelections : function(ranges) {\n            this.cm.setSelections(ranges);\n            \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本范围\n         * Get the cursor selection ranges\n         * \n         * @returns {Array}         return selection ranges array\n         */\n        \n        getSelections : function() {\n            return this.cm.getSelections();\n        },\n        \n        /**\n         * 替换当前光标选中的文本或在当前光标处插入新字符\n         * Replace the text at the current cursor selected or insert a new character at the current cursor position\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        replaceSelection : function(value) {\n            this.cm.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 在当前光标处插入新字符\n         * Insert a new character at the current cursor position\n         *\n         * 同replaceSelection()方法\n         * With the replaceSelection() method\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        insertValue : function(value) {\n            this.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 追加markdown\n         * append Markdown to editor\n         * \n         * @param   {String}    md     要追加的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        appendMarkdown : function(md) {\n            var settings = this.settings;\n            var cm       = this.cm;\n            \n            cm.setValue(cm.getValue() + md);\n            \n            return this;\n        },\n        \n        /**\n         * 设置和传入编辑器的markdown源文档\n         * Set Markdown source document\n         * \n         * @param   {String}    md     要传入的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setMarkdown : function(md) {\n            this.cm.setValue(md || this.settings.markdown);\n            \n            return this;\n        },\n        \n        /**\n         * 获取编辑器的markdown源文档\n         * Set Editor.md markdown/CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getMarkdown : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 获取编辑器的源文档\n         * Get CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getValue : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 设置编辑器的源文档\n         * Set CodeMirror value\n         * \n         * @param   {String}     value   set code/value/string/text\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        setValue : function(value) {\n            this.cm.setValue(value);\n            \n            return this;\n        },\n        \n        /**\n         * 清空编辑器\n         * Empty CodeMirror editor container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        clear : function() {\n            this.cm.setValue(\"\");\n            \n            return this;\n        },\n        \n        /**\n         * 获取解析后存放在Textarea的HTML源码\n         * Get parsed html code from Textarea\n         * \n         * @returns {String}               返回HTML源码\n         */\n        \n        getHTML : function() {\n            if (!this.settings.saveHTMLToTextarea)\n            {\n                alert(\"Error: settings.saveHTMLToTextarea == false\");\n\n                return false;\n            }\n            \n            return this.htmlTextarea.val();\n        },\n        \n        /**\n         * getHTML()的别名\n         * getHTML (alias)\n         * \n         * @returns {String}           Return html code 返回HTML源码\n         */\n        \n        getTextareaSavedHTML : function() {\n            return this.getHTML();\n        },\n        \n        /**\n         * 获取预览窗口的HTML源码\n         * Get html from preview container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getPreviewedHTML : function() {\n            if (!this.settings.watch)\n            {\n                alert(\"Error: settings.watch == false\");\n\n                return false;\n            }\n            \n            return this.previewContainer.html();\n        },\n        \n        /**\n         * 开启实时预览\n         * Enable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        watch : function(callback) {     \n            var settings        = this.settings;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0)\n            {\n                return this;\n            }\n            \n            this.state.watching = settings.watch = true;\n            this.preview.show();\n            \n            if (this.toolbar)\n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon        = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.watch);\n                icon.removeClass(unWatchIcon).addClass(watchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"1px solid #ddd\").width(this.editor.width() / 2); \n            \n            timer = 0;\n            \n            this.save().resize();\n            \n            if (!settings.onwatch)\n            {\n                settings.onwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 关闭实时预览\n         * Disable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        unwatch : function(callback) {\n            var settings        = this.settings;\n            this.state.watching = settings.watch = false;\n            this.preview.hide();\n            \n            if (this.toolbar) \n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon    = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.unwatch);\n                icon.removeClass(watchIcon).addClass(unWatchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"none\").width(this.editor.width());\n            \n            this.resize();\n            \n            if (!settings.onunwatch)\n            {\n                settings.onunwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onunwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 显示编辑器\n         * Show editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        show : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.show(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器\n         * Hide editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        hide : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.hide(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器部分，只预览HTML\n         * Enter preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewing : function() {\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var previewContainer = this.previewContainer;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0) {\n                return this;\n            }\n            \n            if (settings.toolbar && toolbar) {\n                toolbar.toggle();\n                toolbar.find(\".fa[name=preview]\").toggleClass(\"active\");\n            }\n            \n            codeMirror.toggle();\n            \n            var escHandle = function(event) {\n                if (event.shiftKey && event.keyCode === 27) {\n                    _this.previewed();\n                }\n            };\n\n            if (codeMirror.css(\"display\") === \"none\") // 为了兼容Zepto，而不使用codeMirror.is(\":hidden\")\n            {\n                this.state.preview = true;\n\n                if (this.state.fullscreen) {\n                    preview.css(\"background\", \"#fff\");\n                }\n                \n                editor.find(\".\" + this.classPrefix + \"preview-close-btn\").show().bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(){\n                    _this.previewed();\n                });\n            \n                if (!settings.watch)\n                {\n                    this.save();\n                } \n                else \n                {\n                    previewContainer.css(\"padding\", \"\");\n                }\n                \n                previewContainer.addClass(this.classPrefix + \"preview-active\");\n\n                preview.show().css({\n                    position  : \"\",\n                    top       : 0,\n                    width     : editor.width(),\n                    height    : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height()\n                });\n                \n                if (this.state.loaded)\n                {\n                    $.proxy(settings.onpreviewing, this)();\n                }\n\n                $(window).bind(\"keyup\", escHandle);\n            } \n            else \n            {\n                $(window).unbind(\"keyup\", escHandle);\n                this.previewed();\n            }\n        },\n        \n        /**\n         * 显示编辑器部分，退出只预览HTML\n         * Exit preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewed : function() {\n            \n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            var previewCloseBtn  = editor.find(\".\" + this.classPrefix + \"preview-close-btn\");\n\n            this.state.preview   = false;\n            \n            this.codeMirror.show();\n            \n            if (settings.toolbar) {\n                toolbar.show();\n            }\n            \n            preview[(settings.watch) ? \"show\" : \"hide\"]();\n            \n            previewCloseBtn.hide().unbind(editormd.mouseOrTouch(\"click\", \"touchend\"));\n                \n            previewContainer.removeClass(this.classPrefix + \"preview-active\");\n                \n            if (settings.watch)\n            {\n                previewContainer.css(\"padding\", \"20px\");\n            }\n            \n            preview.css({ \n                background : null,\n                position   : \"absolute\",\n                width      : editor.width() / 2,\n                height     : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height() - toolbar.height(),\n                top        : (settings.toolbar)    ? toolbar.height() : 0\n            });\n\n            if (this.state.loaded)\n            {\n                $.proxy(settings.onpreviewed, this)();\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 编辑器全屏显示\n         * Fullscreen show\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreen : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var fullscreenClass  = this.classPrefix + \"fullscreen\";\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().toggleClass(\"active\"); \n            }\n            \n            var escHandle = function(event) {\n                if (!event.shiftKey && event.keyCode === 27) \n                {\n                    if (state.fullscreen)\n                    {\n                        _this.fullscreenExit();\n                    }\n                }\n            };\n\n            if (!editor.hasClass(fullscreenClass)) \n            {\n                state.fullscreen = true;\n\n                $(\"html,body\").css(\"overflow\", \"hidden\");\n                \n                editor.css({\n                    width    : $(window).width(),\n                    height   : $(window).height()\n                }).addClass(fullscreenClass);\n\n                this.resize();\n    \n                $.proxy(settings.onfullscreen, this)();\n\n                $(window).bind(\"keyup\", escHandle);\n            }\n            else\n            {           \n                $(window).unbind(\"keyup\", escHandle); \n                this.fullscreenExit();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 编辑器退出全屏显示\n         * Exit fullscreen state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreenExit : function() {\n            \n            var editor            = this.editor;\n            var settings          = this.settings;\n            var toolbar           = this.toolbar;\n            var fullscreenClass   = this.classPrefix + \"fullscreen\";  \n            \n            this.state.fullscreen = false;\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().removeClass(\"active\"); \n            }\n\n            $(\"html,body\").css(\"overflow\", \"\");\n\n            editor.css({\n                width    : editor.data(\"oldWidth\"),\n                height   : editor.data(\"oldHeight\")\n            }).removeClass(fullscreenClass);\n\n            this.resize();\n            \n            $.proxy(settings.onfullscreenExit, this)();\n\n            return this;\n        },\n        \n        /**\n         * 加载并执行插件\n         * Load and execute the plugin\n         * \n         * @param   {String}     name    plugin name / function name\n         * @param   {String}     path    plugin load path\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        executePlugin : function(name, path) {\n            \n            var _this    = this;\n            var cm       = this.cm;\n            var settings = this.settings;\n            \n            path = settings.pluginPath + path;\n            \n            if (typeof define === \"function\") \n            {            \n                if (typeof this[name] === \"undefined\")\n                {\n                    alert(\"Error: \" + name + \" plugin is not found, you are not load this plugin.\");\n                    \n                    return this;\n                }\n                \n                this[name](cm);\n                \n                return this;\n            }\n            \n            if ($.inArray(path, editormd.loadFiles.plugin) < 0)\n            {\n                editormd.loadPlugin(path, function() {\n                    editormd.loadPlugins[name] = _this[name];\n                    _this[name](cm);\n                });\n            }\n            else\n            {\n                $.proxy(editormd.loadPlugins[name], this)(cm);\n            }\n            \n            return this;\n        },\n                \n        /**\n         * 搜索替换\n         * Search & replace\n         * \n         * @param   {String}     command    CodeMirror serach commands, \"find, fintNext, fintPrev, clearSearch, replace, replaceAll\"\n         * @returns {editormd}              return this\n         */\n        \n        search : function(command) {\n            var settings = this.settings;\n            \n            if (!settings.searchReplace)\n            {\n                alert(\"Error: settings.searchReplace == false\");\n                return this;\n            }\n            \n            if (!settings.readOnly)\n            {\n                this.cm.execCommand(command || \"find\");\n            }\n            \n            return this;\n        },\n        \n        searchReplace : function() {            \n            this.search(\"replace\");\n            \n            return this;\n        },\n        \n        searchReplaceAll : function() {          \n            this.search(\"replaceAll\");\n            \n            return this;\n        }\n    };\n    \n    editormd.fn.init.prototype = editormd.fn; \n   \n    /**\n     * 锁屏\n     * lock screen when dialog opening\n     * \n     * @returns {void}\n     */\n\n    editormd.dialogLockScreen = function() {\n        var settings = this.settings || {dialogLockScreen : true};\n        \n        if (settings.dialogLockScreen) \n        {            \n            $(\"html,body\").css(\"overflow\", \"hidden\");\n            this.resize();\n        }\n    };\n   \n    /**\n     * 显示透明背景层\n     * Display mask layer when dialog opening\n     * \n     * @param   {Object}     dialog    dialog jQuery object\n     * @returns {void}\n     */\n    \n    editormd.dialogShowMask = function(dialog) {\n        var editor   = this.editor;\n        var settings = this.settings || {dialogShowMask : true};\n        \n        dialog.css({\n            top  : ($(window).height() - dialog.height()) / 2 + \"px\",\n            left : ($(window).width()  - dialog.width())  / 2 + \"px\"\n        });\n\n        if (settings.dialogShowMask) {\n            editor.children(\".\" + this.classPrefix + \"mask\").css(\"z-index\", parseInt(dialog.css(\"z-index\")) - 1).show();\n        }\n    };\n\n    editormd.toolbarHandlers = {\n        undo : function() {\n            this.cm.undo();\n        },\n        \n        redo : function() {\n            this.cm.redo();\n        },\n        \n        bold : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"**\" + selection + \"**\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n        \n        del : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"~~\" + selection + \"~~\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        italic : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"*\" + selection + \"*\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        quote : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"> \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"> \" + selection);\n            }\n\n            //cm.replaceSelection(\"> \" + selection);\n            //cm.setCursor(cursor.line, (selection === \"\") ? cursor.ch + 2 : cursor.ch + selection.length + 2);\n        },\n        \n        ucfirst : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.firstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        ucwords : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.wordsFirstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        uppercase : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(selection.toUpperCase());\n            cm.setSelections(selections);\n        },\n        \n        lowercase : function() {\n            var cm         = this.cm;\n            var cursor     = cm.getCursor();\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n            \n            cm.replaceSelection(selection.toLowerCase());\n            cm.setSelections(selections);\n        },\n\n        h1 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"# \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"# \" + selection);\n            }\n        },\n\n        h2 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"## \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            }\n            else\n            {\n                cm.replaceSelection(\"## \" + selection);\n            }\n        },\n\n        h3 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n            else\n            {\n                cm.replaceSelection(\"### \" + selection);\n            }\n        },\n\n        h4 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"#### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 5);\n            }\n            else\n            {\n                cm.replaceSelection(\"#### \" + selection);\n            }\n        },\n\n        h5 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"##### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 6);\n            }\n            else\n            {\n                cm.replaceSelection(\"##### \" + selection);\n            }\n        },\n\n        h6 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"###### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 7);\n            }\n            else\n            {\n                cm.replaceSelection(\"###### \" + selection);\n            }\n        },\n\n        \"list-ul\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (selection === \"\") \n            {\n                cm.replaceSelection(\"- \" + selection);\n            } \n            else \n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : \"- \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        \"list-ol\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if(selection === \"\") \n            {\n                cm.replaceSelection(\"1. \" + selection);\n            }\n            else\n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : (i+1) + \". \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        hr : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(((cursor.ch !== 0) ? \"\\n\\n\" : \"\\n\") + \"------------\\n\\n\");\n        },\n\n        tex : function() {\n            if (!this.settings.tex)\n            {\n                alert(\"settings.tex === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"$$\" + selection + \"$$\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        link : function() {\n            this.executePlugin(\"linkDialog\", \"link-dialog/link-dialog\");\n        },\n\n        \"reference-link\" : function() {\n            this.executePlugin(\"referenceLinkDialog\", \"reference-link-dialog/reference-link-dialog\");\n        },\n\n        pagebreak : function() {\n            if (!this.settings.pageBreak)\n            {\n                alert(\"settings.pageBreak === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"\\r\\n[========]\\r\\n\");\n        },\n\n        image : function() {\n            this.executePlugin(\"imageDialog\", \"image-dialog/image-dialog\");\n        },\n        \n        code : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"`\" + selection + \"`\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        \"code-block\" : function() {\n            this.executePlugin(\"codeBlockDialog\", \"code-block-dialog/code-block-dialog\");            \n        },\n\n        \"preformatted-text\" : function() {\n            this.executePlugin(\"preformattedTextDialog\", \"preformatted-text-dialog/preformatted-text-dialog\");\n        },\n        \n        table : function() {\n            this.executePlugin(\"tableDialog\", \"table-dialog/table-dialog\");         \n        },\n        \n        datetime : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n            var date      = new Date();\n            var langName  = this.settings.lang.name;\n            var datefmt   = editormd.dateFormat() + \" \" + editormd.dateFormat((langName === \"zh-cn\" || langName === \"zh-tw\") ? \"cn-week-day\" : \"week-day\");\n\n            cm.replaceSelection(datefmt);\n        },\n        \n        emoji : function() {\n            this.executePlugin(\"emojiDialog\", \"emoji-dialog/emoji-dialog\");\n        },\n                \n        \"html-entities\" : function() {\n            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\");\n        },\n                \n        \"goto-line\" : function() {\n            this.executePlugin(\"gotoLineDialog\", \"goto-line-dialog/goto-line-dialog\");\n        },\n\n        watch : function() {    \n            this[this.settings.watch ? \"unwatch\" : \"watch\"]();\n        },\n\n        preview : function() {\n            this.previewing();\n        },\n\n        fullscreen : function() {\n            this.fullscreen();\n        },\n\n        clear : function() {\n            this.clear();\n        },\n        \n        search : function() {\n            this.search();\n        },\n\n        help : function() {\n            this.executePlugin(\"helpDialog\", \"help-dialog/help-dialog\");\n        },\n\n        info : function() {\n            this.showInfoDialog();\n        }\n    };\n    \n    var isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;\n    var key = isMac ? \"Cmd\" : \"Ctrl\";\n    \n    editormd.keyMaps = {\n        [key + \"-1\"]       : \"h1\",\n        [key + \"-2\"]       : \"h2\",\n        [key + \"-3\"]       : \"h3\",\n        [key + \"-4\"]       : \"h4\",\n        [key + \"-5\"]       : \"h5\",\n        [key + \"-6\"]       : \"h6\",\n        [key + \"-B\"]       : \"bold\",  // if this is string ==  editormd.toolbarHandlers.xxxx\n        [key + \"-D\"]       : \"datetime\",\n        \n        [key + \"Ctrl-E\"]       : function() { // emoji\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.emoji)\n            {\n                alert(\"Error: settings.emoji == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\":\" + selection + \":\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        [key + \"-Alt-G\"]   : \"goto-line\",\n        [key + \"-H\"]       : \"hr\",\n        [key + \"-I\"]       : \"italic\",\n        [key + \"-K\"]       : \"code\",\n        \n        \"Ctrl-L\"        : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"[\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        [key + \"-U\"]         : \"list-ul\",\n        \n        \"Shift-Ctrl-A\"   : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.atLink)\n            {\n                alert(\"Error: settings.atLink == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\"@\" + selection);\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \n        [\"Shift\" + key + \"-C\"]     : \"code\",\n        [\"Shift\" + key + \"Q\"]     : \"quote\",\n        [\"Shift\" + key + \"S\"]     : \"del\",\n        [\"Shift\" + key + \"K\"]     : \"tex\",  // KaTeX\n        \n        \"Shift-Alt-C\"      : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            cm.replaceSelection([\"```\", selection, \"```\"].join(\"\\n\"));\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            } \n        },\n        \n        [\"Shift-\" + key + \"-Alt-C\"]      : \"code-block\",\n        [\"Shift-\" + key + \"-H\"]          : \"html-entities\",\n        \"Shift-Alt-H\"                    : \"help\",\n        [\"Shift-\" + key + \"-E\"]          : \"emoji\",\n        [\"Shift-\" + key + \"-U\"]          : \"uppercase\",\n        \"Shift-Alt-U\"                    : \"ucwords\",\n        [\"Shift-\" + key + \"-Alt-U\"]      : \"ucfirst\",\n        \"Shift-Alt-L\"                    : \"lowercase\",\n        \n        [\"Shift-\" + key + \"-I\"]          : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"![\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n        },\n        \n        [\"Shift-\" + key + \"-Alt-I\"]     : \"image\",\n        [\"Shift-\" + key + \"-L\"]         : \"link\",\n        [\"Shift-\" + key + \"-O\"]         : \"list-ol\",\n        [\"Shift-\" + key + \"-P\"]         : \"preformatted-text\",\n        [\"Shift-\" + key + \"-T\"]         : \"table\",\n        \"Shift-Alt-P\"                   : \"pagebreak\",\n        \"F9\"                            : \"watch\",\n        \"F10\"                           : \"preview\",\n        \"F11\"                           : \"fullscreen\",\n    };\n    \n    /**\n     * 清除字符串两边的空格\n     * Clear the space of strings both sides.\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   trimed string    \n     */\n    \n    var trim = function(str) {\n        return (!String.prototype.trim) ? str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\") : str.trim();\n    };\n    \n    editormd.trim = trim;\n    \n    /**\n     * 所有单词首字母大写\n     * Words first to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var ucwords = function (str) {\n        return str.toLowerCase().replace(/\\b(\\w)|\\s(\\w)/g, function($1) {  \n            return $1.toUpperCase();\n        });\n    };\n    \n    editormd.ucwords = editormd.wordsFirstUpperCase = ucwords;\n    \n    /**\n     * 字符串首字母大写\n     * Only string first char to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var firstUpperCase = function(str) {        \n        return str.toLowerCase().replace(/\\b(\\w)/, function($1){\n            return $1.toUpperCase();\n        });\n    };\n    \n    var ucfirst = firstUpperCase;\n    \n    editormd.firstUpperCase = editormd.ucfirst = firstUpperCase;\n    \n    editormd.urls = {\n        atLinkBase : \"https://github.com/\"\n    };\n    \n    editormd.regexs = {\n        atLink        : /@(\\w+)/g,\n        email         : /(\\w+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emailLink     : /(mailto:)?([\\w\\.\\_]+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emoji         : /:([\\w\\+-]+):/g,\n        emojiDatetime : /(\\d{1,2}:\\d{1,2}:\\d{1,2})/g,\n        twemoji       : /:(tw-([\\w]+)-?(\\w+)?):/g,\n        fontAwesome   : /:(fa-([\\w]+)(-(\\w+)){0,}):/g,\n        editormdLogo  : /:(editormd-logo-?(\\w+)?):/g,\n        pageBreak     : /^\\[[=]{8,}\\]$/\n    };\n\n    // Emoji graphics files url path\n    editormd.emoji     = {\n        path  : \"http://www.emoji-cheat-sheet.com/graphics/emojis/\",\n        ext   : \".png\"\n    };\n\n    // Twitter Emoji (Twemoji)  graphics files url path    \n    editormd.twemoji = {\n        path : \"http://twemoji.maxcdn.com/36x36/\",\n        ext  : \".png\"\n    };\n\n    /**\n     * 自定义marked的解析器\n     * Custom Marked renderer rules\n     * \n     * @param   {Array}    markdownToC     传入用于接收TOC的数组\n     * @returns {Renderer} markedRenderer  返回marked的Renderer自定义对象\n     */\n\n    editormd.markedRenderer = function(markdownToC, options) {\n        var defaults = {\n            toc                  : true,           // Table of contents\n            tocm                 : false,\n            tocStartLevel        : 1,              // Said from H1 to create ToC  \n            pageBreak            : true,\n            atLink               : true,           // for @link\n            emailLink            : true,           // for mail address auto link\n            taskList             : false,          // Enable Github Flavored Markdown task lists\n            emoji                : false,          // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis.\n            tex                  : false,          // TeX(LaTeX), based on KaTeX\n            flowChart            : false,          // flowChart.js only support IE9+\n            sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        };\n        \n        var settings        = $.extend(defaults, options || {});    \n        var marked          = editormd.$marked;\n        var markedRenderer  = new marked.Renderer();\n        markdownToC         = markdownToC || [];        \n            \n        var regexs          = editormd.regexs;\n        var atLinkReg       = regexs.atLink;\n        var emojiReg        = regexs.emoji;\n        var emailReg        = regexs.email;\n        var emailLinkReg    = regexs.emailLink;\n        var twemojiReg      = regexs.twemoji;\n        var faIconReg       = regexs.fontAwesome;\n        var editormdLogoReg = regexs.editormdLogo;\n        var pageBreakReg    = regexs.pageBreak;\n\n        markedRenderer.emoji = function(text) {\n            \n            text = text.replace(editormd.regexs.emojiDatetime, function($1) {           \n                return $1.replace(/:/g, \"&#58;\");\n            });\n            \n            var matchs = text.match(emojiReg);\n\n            if (!matchs || !settings.emoji) {\n                return text;\n            }\n\n            for (var i = 0, len = matchs.length; i < len; i++)\n            {            \n                if (matchs[i] === \":+1:\") {\n                    matchs[i] = \":\\\\+1:\";\n                }\n\n                text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                    var faMatchs = $1.match(faIconReg);\n                    var name     = $1.replace(/:/g, \"\");\n\n                    if (faMatchs)\n                    {                        \n                        for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++)\n                        {\n                            var faName = faMatchs[fa].replace(/:/g, \"\");\n                            \n                            return \"<i class=\\\"fa \" + faName + \" fa-emoji\\\" title=\\\"\" + faName.replace(\"fa-\", \"\") + \"\\\"></i>\";\n                        }\n                    }\n                    else\n                    {\n                        var emdlogoMathcs = $1.match(editormdLogoReg);\n                        var twemojiMatchs = $1.match(twemojiReg);\n\n                        if (emdlogoMathcs)                                        \n                        {                            \n                            for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++)\n                            {\n                                var logoName = emdlogoMathcs[x].replace(/:/g, \"\");\n                                return \"<i class=\\\"\" + logoName + \"\\\" title=\\\"Editor.md logo (\" + logoName + \")\\\"></i>\";\n                            }\n                        }\n                        else if (twemojiMatchs) \n                        {\n                            for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++)\n                            {\n                                var twe = twemojiMatchs[t].replace(/:/g, \"\").replace(\"tw-\", \"\");\n                                return \"<img src=\\\"\" + editormd.twemoji.path + twe + editormd.twemoji.ext + \"\\\" title=\\\"twemoji-\" + twe + \"\\\" alt=\\\"twemoji-\" + twe + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                            }\n                        }\n                        else\n                        {\n                            var src = (name === \"+1\") ? \"plus1\" : name;\n                            src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                            src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n\n                            return \"<img src=\\\"\" + editormd.emoji.path + src + editormd.emoji.ext + \"\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + name + \"&#58;\\\" alt=\\\"&#58;\" + name + \"&#58;\\\" />\";\n                        }\n                    }\n                });\n            }\n\n            return text;\n        };\n\n        markedRenderer.atLink = function(text) {\n\n            if (atLinkReg.test(text))\n            { \n                if (settings.atLink) \n                {\n                    text = text.replace(emailReg, function($1, $2, $3, $4) {\n                        return $1.replace(/@/g, \"_#_&#64;_#_\");\n                    });\n\n                    text = text.replace(atLinkReg, function($1, $2) {\n                        return \"<a href=\\\"\" + editormd.urls.atLinkBase + \"\" + $2 + \"\\\" title=\\\"&#64;\" + $2 + \"\\\" class=\\\"at-link\\\">\" + $1 + \"</a>\";\n                    }).replace(/_#_&#64;_#_/g, \"@\");\n                }\n                \n                if (settings.emailLink)\n                {\n                    text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) {\n                        return (!$2 && $.inArray($5, \"jpg|jpeg|png|gif|webp|ico|icon|pdf\".split(\"|\")) < 0) ? \"<a href=\\\"mailto:\" + $1 + \"\\\">\"+$1+\"</a>\" : $1;\n                    });\n                }\n\n                return text;\n            }\n\n            return text;\n        };\n                \n        markedRenderer.link = function (href, title, text) {\n\n            if (this.options.sanitize) {\n                try {\n                    var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase();\n                } catch(e) {\n                    return \"\";\n                }\n\n                if (prot.indexOf(\"javascript:\") === 0) {\n                    return \"\";\n                }\n            }\n\n            var out = \"<a href=\\\"\" + href + \"\\\"\";\n            \n            if (atLinkReg.test(title) || atLinkReg.test(text))\n            {\n                if (title)\n                {\n                    out += \" title=\\\"\" + title.replace(/@/g, \"&#64;\");\n                }\n                \n                return out + \"\\\">\" + text.replace(/@/g, \"&#64;\") + \"</a>\";\n            }\n\n            if (title) {\n                out += \" title=\\\"\" + title + \"\\\"\";\n            }\n\n            out += \">\" + text + \"</a>\";\n\n            return out;\n        };\n        \n        markedRenderer.heading = function(text, level, raw) {\n                    \n            var linkText       = text;\n            var hasLinkReg     = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n            var getLinkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n\n            if (hasLinkReg.test(text)) \n            {\n                var tempText = [];\n                text         = text.split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n\n                for (var i = 0, len = text.length; i < len; i++)\n                {\n                    tempText.push(text[i].replace(/\\s*href\\=\\\"(.*)\\\"\\s*/g, \"\"));\n                }\n\n                text = tempText.join(\" \");\n            }\n            \n            text = trim(text);\n            \n            var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n            var toc = {\n                text  : text,\n                level : level,\n                slug  : escapedText\n            };\n            \n            var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n            var id        = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n            markdownToC.push(toc);\n            \n            var headingHTML = \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n            \n            headingHTML    += \"<a name=\\\"\" + text + \"\\\" class=\\\"reference-link\\\"></a>\";\n            headingHTML    += \"<span class=\\\"header-link octicon octicon-link\\\"></span>\";\n            headingHTML    += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text));\n            headingHTML    += \"</h\" + level + \">\";\n\n            return headingHTML;\n        };\n        \n        markedRenderer.pageBreak = function(text) {\n            if (pageBreakReg.test(text) && settings.pageBreak)\n            {\n                text = \"<hr style=\\\"page-break-after:always;\\\" class=\\\"page-break editormd-page-break\\\" />\";\n            }\n            \n            return text;\n        };\n\n        markedRenderer.paragraph = function(text) {\n            var isTeXInline     = /\\$\\$(.*)\\$\\$/g.test(text);\n            var isTeXLine       = /^\\$\\$(.*)\\$\\$$/.test(text);\n            var isTeXAddClass   = (isTeXLine)     ? \" class=\\\"\" + editormd.classNames.tex + \"\\\"\" : \"\";\n            var isToC           = (settings.tocm) ? /^(\\[TOC\\]|\\[TOCM\\])$/.test(text) : /^\\[TOC\\]$/.test(text);\n            var isToCMenu       = /^\\[TOCM\\]$/.test(text);\n            \n            if (!isTeXLine && isTeXInline) \n            {\n                text = text.replace(/(\\$\\$([^\\$]*)\\$\\$)+/g, function($1, $2) {\n                    return \"<span class=\\\"\" + editormd.classNames.tex + \"\\\">\" + $2.replace(/\\$/g, \"\") + \"</span>\";\n                });\n            } \n            else \n            {\n                text = (isTeXLine) ? text.replace(/\\$/g, \"\") : text;\n            }\n            \n            var tocHTML = \"<div class=\\\"markdown-toc editormd-markdown-toc\\\">\" + text + \"</div>\";\n            \n            return (isToC) ? ( (isToCMenu) ? \"<div class=\\\"editormd-toc-menu\\\">\" + tocHTML + \"</div><br/>\" : tocHTML )\n                           : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : \"<p\" + isTeXAddClass + \">\" + this.atLink(this.emoji(text)) + \"</p>\\n\" );\n        };\n\n        markedRenderer.code = function (code, lang, escaped) { \n\n            if (lang === \"seq\" || lang === \"sequence\")\n            {\n                return \"<div class=\\\"sequence-diagram\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"flow\")\n            {\n                return \"<div class=\\\"flowchart\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"math\" || lang === \"latex\" || lang === \"katex\")\n            {\n                return \"<p class=\\\"\" + editormd.classNames.tex + \"\\\">\" + code + \"</p>\";\n            } \n            else \n            {\n\n                return marked.Renderer.prototype.code.apply(this, arguments);\n            }\n        };\n\n        markedRenderer.tablecell = function(content, flags) {\n            var type = (flags.header) ? \"th\" : \"td\";\n            var tag  = (flags.align)  ? \"<\" + type +\" style=\\\"text-align:\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n            \n            return tag + this.atLink(this.emoji(content)) + \"</\" + type + \">\\n\";\n        };\n\n        markedRenderer.listitem = function(text) {\n            if (settings.taskList && /^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n            {\n                text = text.replace(/^\\s*\\[\\s\\]\\s*/, \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" /> \")\n                           .replace(/^\\s*\\[x\\]\\s*/,  \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" checked disabled /> \");\n\n                return \"<li style=\\\"list-style: none;\\\">\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n            else \n            {\n                return \"<li>\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n        };\n        \n        return markedRenderer;\n    };\n    \n    /**\n     *\n     * 生成TOC(Table of Contents)\n     * Creating ToC (Table of Contents)\n     * \n     * @param   {Array}    toc             从marked获取的TOC数组列表\n     * @param   {Element}  container       插入TOC的容器元素\n     * @param   {Integer}  startLevel      Hx 起始层级\n     * @returns {Object}   tocContainer    返回ToC列表容器层的jQuery对象元素\n     */\n    \n    editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) {\n        \n        var html        = \"\";    \n        var lastLevel   = 0;\n        var classPrefix = this.classPrefix;\n        \n        startLevel      = startLevel  || 1;\n        \n        for (var i = 0, len = toc.length; i < len; i++) \n        {\n            var text  = toc[i].text;\n            var level = toc[i].level;\n            \n            if (level < startLevel) {\n                continue;\n            }\n            \n            if (level > lastLevel) \n            {\n                html += \"\";\n            }\n            else if (level < lastLevel) \n            {\n                html += (new Array(lastLevel - level + 2)).join(\"</ul></li>\");\n            } \n            else \n            {\n                html += \"</ul></li>\";\n            }\n\n            html += \"<li><a class=\\\"toc-level-\" + level + \"\\\" href=\\\"#\" + text + \"\\\" level=\\\"\" + level + \"\\\">\" + text + \"</a><ul>\";\n            lastLevel = level;\n        }\n        \n        var tocContainer = container.find(\".markdown-toc\");\n        \n        if ((tocContainer.length < 1 && container.attr(\"previewContainer\") === \"false\"))\n        {\n            var tocHTML = \"<div class=\\\"markdown-toc \" + classPrefix + \"markdown-toc\\\"></div>\";\n            \n            tocHTML = (tocDropdown) ? \"<div class=\\\"\" + classPrefix + \"toc-menu\\\">\" + tocHTML + \"</div>\" : tocHTML;\n            \n            container.html(tocHTML);\n            \n            tocContainer = container.find(\".markdown-toc\");\n        }\n        \n        if (tocDropdown)\n        {\n            tocContainer.wrap(\"<div class=\\\"\" + classPrefix + \"toc-menu\\\"></div><br/>\");\n        }\n        \n        tocContainer.html(\"<ul class=\\\"markdown-toc-list\\\"></ul>\").children(\".markdown-toc-list\").html(html.replace(/\\r?\\n?\\<ul\\>\\<\\/ul\\>/g, \"\"));\n        \n        return tocContainer;\n    };\n    \n    /**\n     *\n     * 生成TOC下拉菜单\n     * Creating ToC dropdown menu\n     * \n     * @param   {Object}   container       插入TOC的容器jQuery对象元素\n     * @param   {String}   tocTitle        ToC title\n     * @returns {Object}                   return toc-menu object\n     */\n    \n    editormd.tocDropdownMenu = function(container, tocTitle) {\n        \n        tocTitle      = tocTitle || \"Table of Contents\";\n        \n        var zindex    = 400;\n        var tocMenus  = container.find(\".\" + this.classPrefix + \"toc-menu\");\n\n        tocMenus.each(function() {\n            var $this  = $(this);\n            var toc    = $this.children(\".markdown-toc\");\n            var icon   = \"<i class=\\\"fa fa-angle-down\\\"></i>\";\n            var btn    = \"<a href=\\\"javascript:;\\\" class=\\\"toc-menu-btn\\\">\" + icon + tocTitle + \"</a>\";\n            var menu   = toc.children(\"ul\");            \n            var list   = menu.find(\"li\");\n            \n            toc.append(btn);\n            \n            list.first().before(\"<li><h1>\" + tocTitle + \" \" + icon + \"</h1></li>\");\n            \n            $this.mouseover(function(){\n                menu.show();\n\n                list.each(function(){\n                    var li = $(this);\n                    var ul = li.children(\"ul\");\n\n                    if (ul.html() === \"\")\n                    {\n                        ul.remove();\n                    }\n\n                    if (ul.length > 0 && ul.html() !== \"\")\n                    {\n                        var firstA = li.children(\"a\").first();\n\n                        if (firstA.children(\".fa\").length < 1)\n                        {\n                            firstA.append( $(icon).css({ float:\"right\", paddingTop:\"4px\" }) );\n                        }\n                    }\n\n                    li.mouseover(function(){\n                        ul.css(\"z-index\", zindex).show();\n                        zindex += 1;\n                    }).mouseleave(function(){\n                        ul.hide();\n                    });\n                });\n            }).mouseleave(function(){\n                menu.hide();\n            }); \n        });       \n        \n        return tocMenus;\n    };\n    \n    /**\n     * 简单地过滤指定的HTML标签\n     * Filter custom html tags\n     * \n     * @param   {String}   html          要过滤HTML\n     * @param   {String}   filters       要过滤的标签\n     * @returns {String}   html          返回过滤的HTML\n     */\n    \n    editormd.filterHTMLTags = function(html, filters) {\n        \n        if (typeof html !== \"string\") {\n            html = new String(html);\n        }\n            \n        if (typeof filters !== \"string\") {\n            return html;\n        }\n\n        var expression = filters.split(\"|\");\n        var filterTags = expression[0].split(\",\");\n        var attrs      = expression[1];\n\n        for (var i = 0, len = filterTags.length; i < len; i++)\n        {\n            var tag = filterTags[i];\n\n            html = html.replace(new RegExp(\"\\<\\s*\" + tag + \"\\s*([^\\>]*)\\>([^\\>]*)\\<\\s*\\/\" + tag + \"\\s*\\>\", \"igm\"), \"\");\n        }\n        \n        //return html;\n\n        if (typeof attrs !== \"undefined\")\n        {\n            var htmlTagRegex = /\\<(\\w+)\\s*([^\\>]*)\\>([^\\>]*)\\<\\/(\\w+)\\>/ig;\n\n            if (attrs === \"*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    return \"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\";\n                });         \n            }\n            else if (attrs === \"on*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    var el = $(\"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\");\n                    var _attrs = $($1)[0].attributes;\n                    var $attrs = {};\n                    \n                    $.each(_attrs, function(i, e) {\n                        if (e.nodeName !== '\"') $attrs[e.nodeName] = e.nodeValue;\n                    });\n                    \n                    $.each($attrs, function(i) {                        \n                        if (i.indexOf(\"on\") === 0) {\n                            delete $attrs[i];\n                        }\n                    });\n                    \n                    el.attr($attrs);\n                    \n                    var text = (typeof el[1] !== \"undefined\") ? $(el[1]).text() : \"\";\n\n                    return el[0].outerHTML + text;\n                });\n            }\n            else\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4) {\n                    var filterAttrs = attrs.split(\",\");\n                    var el = $($1);\n                    el.html($4);\n\n                    $.each(filterAttrs, function(i) {\n                        el.attr(filterAttrs[i], null);\n                    });\n\n                    return el[0].outerHTML;\n                });\n            }\n        }\n        \n        return html;\n    };\n    \n    /**\n     * 将Markdown文档解析为HTML用于前台显示\n     * Parse Markdown to HTML for Font-end preview.\n     * \n     * @param   {String}   id            用于显示HTML的对象ID\n     * @param   {Object}   [options={}]  配置选项，可选\n     * @returns {Object}   div           返回jQuery对象元素\n     */\n    \n    editormd.markdownToHTML = function(id, options) {\n        var defaults = {\n            gfm                  : true,\n            toc                  : true,\n            tocm                 : false,\n            tocStartLevel        : 1,\n            tocTitle             : \"目录\",\n            tocDropdown          : false,\n            tocContainer         : \"\",\n            markdown             : \"\",\n            markdownSourceCode   : false,\n            htmlDecode           : false,\n            autoLoadKaTeX        : true,\n            pageBreak            : true,\n            atLink               : true,    // for @link\n            emailLink            : true,    // for mail address auto link\n            tex                  : false,\n            taskList             : false,   // Github Flavored Markdown task lists\n            emoji                : false,\n            flowChart            : false,\n            sequenceDiagram      : false,\n            previewCodeHighlight : true\n        };\n        \n        editormd.$marked  = marked;\n\n        var div           = $(\"#\" + id);\n        var settings      = div.settings = $.extend(true, defaults, options || {});\n        var saveTo        = div.find(\"textarea\");\n        \n        if (saveTo.length < 1)\n        {\n            div.append(\"<textarea></textarea>\");\n            saveTo        = div.find(\"textarea\");\n        }        \n        \n        var markdownDoc   = (settings.markdown === \"\") ? saveTo.val() : settings.markdown; \n        var markdownToC   = [];\n\n        var rendererOptions = {  \n            toc                  : settings.toc,\n            tocm                 : settings.tocm,\n            tocStartLevel        : settings.tocStartLevel,\n            taskList             : settings.taskList,\n            emoji                : settings.emoji,\n            tex                  : settings.tex,\n            pageBreak            : settings.pageBreak,\n            atLink               : settings.atLink,           // for @link\n            emailLink            : settings.emailLink,        // for mail address auto link\n            flowChart            : settings.flowChart,\n            sequenceDiagram      : settings.sequenceDiagram,\n            previewCodeHighlight : settings.previewCodeHighlight,\n        };\n\n        var markedOptions = {\n            renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n            gfm         : settings.gfm,\n            tables      : true,\n            breaks      : true,\n            pedantic    : false,\n            sanitize    : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签，即是否开启HTML标签解析，为了安全性，默认不开启\n            smartLists  : true,\n            smartypants : true\n        };\n        \n\t\tmarkdownDoc = new String(markdownDoc);\n        \n        var markdownParsed = marked(markdownDoc, markedOptions);\n        \n        markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode);\n        \n        if (settings.markdownSourceCode) {\n            saveTo.text(markdownDoc);\n        } else {\n            saveTo.remove();\n        }\n        \n        div.addClass(\"markdown-body \" + this.classPrefix + \"html-preview\").append(markdownParsed);\n        \n        var tocContainer = (settings.tocContainer !== \"\") ? $(settings.tocContainer) : div;\n        \n        if (settings.tocContainer !== \"\")\n        {\n            tocContainer.attr(\"previewContainer\", false);\n        }\n         \n        if (settings.toc) \n        {\n            div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n            if (settings.tocDropdown || div.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n            {\n                this.tocDropdownMenu(div, settings.tocTitle);\n            }\n            \n            if (settings.tocContainer !== \"\")\n            {\n                div.find(\".editormd-toc-menu, .editormd-markdown-toc\").remove();\n            }\n        }\n            \n        if (settings.previewCodeHighlight) \n        {\n            div.find(\"pre\").addClass(\"prettyprint linenums\");\n            prettyPrint();\n        }\n        \n        if (!editormd.isIE8) \n        {\n            if (settings.flowChart) {\n                div.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                div.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n        }\n\n        if (settings.tex)\n        {\n            var katexHandle = function() {\n                div.find(\".\" + editormd.classNames.tex).each(function(){\n                    var tex  = $(this);                    \n                    katex.render(tex.html().replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\"), tex[0]);                    \n                    tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n                });\n            };\n            \n            if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded)\n            {\n                this.loadKaTeX(function() {\n                    editormd.$katex      = katex;\n                    editormd.kaTeXLoaded = true;\n                    katexHandle();\n                });\n            }\n            else\n            {\n                katexHandle();\n            }\n        }\n        \n        div.getMarkdown = function() {            \n            return saveTo.val();\n        };\n        \n        return div;\n    };\n    \n    // Editor.md themes, change toolbar themes etc.\n    // added @1.5.0\n    editormd.themes        = [\"default\", \"dark\"];\n    \n    // Preview area themes\n    // added @1.5.0\n    editormd.previewThemes = [\"default\", \"dark\"];\n    \n    // CodeMirror / editor area themes\n    // @1.5.0 rename -> editorThemes, old version -> themes\n    editormd.editorThemes = [\n        \"default\", \"3024-day\", \"3024-night\",\n        \"ambiance\", \"ambiance-mobile\",\n        \"base16-dark\", \"base16-light\", \"blackboard\",\n        \"cobalt\",\n        \"eclipse\", \"elegant\", \"erlang-dark\",\n        \"lesser-dark\",\n        \"mbo\", \"mdn-like\", \"midnight\", \"monokai\",\n        \"neat\", \"neo\", \"night\",\n        \"paraiso-dark\", \"paraiso-light\", \"pastel-on-dark\",\n        \"rubyblue\",\n        \"solarized\",\n        \"the-matrix\", \"tomorrow-night-eighties\", \"twilight\",\n        \"vibrant-ink\",\n        \"xq-dark\", \"xq-light\"\n    ];\n\n    editormd.loadPlugins = {};\n    \n    editormd.loadFiles = {\n        js     : [],\n        css    : [],\n        plugin : []\n    };\n    \n    /**\n     * 动态加载Editor.md插件，但不立即执行\n     * Load editor.md plugins\n     * \n     * @param {String}   fileName              插件文件路径\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadPlugin = function(fileName, callback, into) {\n        callback   = callback || function() {};\n        \n        this.loadScript(fileName, function() {\n            editormd.loadFiles.plugin.push(fileName);\n            callback();\n        }, into);\n    };\n    \n    /**\n     * 动态加载CSS文件的方法\n     * Load css file method\n     * \n     * @param {String}   fileName              CSS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadCSS   = function(fileName, callback, into) {\n        into       = into     || \"head\";        \n        callback   = callback || function() {};\n        \n        var css    = document.createElement(\"link\");\n        css.type   = \"text/css\";\n        css.rel    = \"stylesheet\";\n        css.onload = css.onreadystatechange = function() {\n            editormd.loadFiles.css.push(fileName);\n            callback();\n        };\n\n        css.href   = fileName + \".css\";\n\n        if(into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(css);\n        } else {\n            document.body.appendChild(css);\n        }\n    };\n    \n    editormd.isIE    = (navigator.appName == \"Microsoft Internet Explorer\");\n    editormd.isIE8   = (editormd.isIE && navigator.appVersion.match(/8./i) == \"8.\");\n\n    /**\n     * 动态加载JS文件的方法\n     * Load javascript file method\n     * \n     * @param {String}   fileName              JS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n\n    editormd.loadScript = function(fileName, callback, into) {\n        \n        into          = into     || \"head\";\n        callback      = callback || function() {};\n        \n        var script    = null; \n        script        = document.createElement(\"script\");\n        script.id     = fileName.replace(/[\\./]+/g, \"-\");\n        script.type   = \"text/javascript\";        \n        script.src    = fileName + \".js\";\n        \n        if (editormd.isIE8) \n        {            \n            script.onreadystatechange = function() {\n                if(script.readyState) \n                {\n                    if (script.readyState === \"loaded\" || script.readyState === \"complete\") \n                    {\n                        script.onreadystatechange = null; \n                        editormd.loadFiles.js.push(fileName);\n                        callback();\n                    }\n                } \n            };\n        }\n        else\n        {\n            script.onload = function() {\n                editormd.loadFiles.js.push(fileName);\n                callback();\n            };\n        }\n\n        if (into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(script);\n        } else {\n            document.body.appendChild(script);\n        }\n    };\n    \n    // 使用国外的CDN，加载速度有时会很慢，或者自定义URL\n    // You can custom KaTeX load url.\n    editormd.katexURL  = {\n        css : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\",\n        js  : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\"\n    };\n    \n    editormd.kaTeXLoaded = false;\n    \n    /**\n     * 加载KaTeX文件\n     * load KaTeX files\n     * \n     * @param {Function} [callback=function()]  加载成功后执行的回调函数\n     */\n    \n    editormd.loadKaTeX = function (callback) {\n        editormd.loadCSS(editormd.katexURL.css, function(){\n            editormd.loadScript(editormd.katexURL.js, callback || function(){});\n        });\n    };\n        \n    /**\n     * 锁屏\n     * lock screen\n     * \n     * @param   {Boolean}   lock   Boolean 布尔值，是否锁屏\n     * @returns {void}\n     */\n    \n    editormd.lockScreen = function(lock) {\n        $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n    };\n        \n    /**\n     * 动态创建对话框\n     * Creating custom dialogs\n     * \n     * @param   {Object} options 配置项键值对 Key/Value\n     * @returns {dialog} 返回创建的dialog的jQuery实例对象\n     */\n\n    editormd.createDialog = function(options) {\n        var defaults = {\n            name : \"\",\n            width : 420,\n            height: 240,\n            title : \"\",\n            drag  : true,\n            closed : true,\n            content : \"\",\n            mask : true,\n            maskStyle : {\n                backgroundColor : \"#fff\",\n                opacity : 0.1\n            },\n            lockScreen : true,\n            footer : true,\n            buttons : false\n        };\n\n        options          = $.extend(true, defaults, options);\n        \n        var $this        = this;\n        var editor       = this.editor;\n        var classPrefix  = editormd.classPrefix;\n        var guid         = (new Date()).getTime();\n        var dialogName   = ( (options.name === \"\") ? classPrefix + \"dialog-\" + guid : options.name);\n        var mouseOrTouch = editormd.mouseOrTouch;\n\n        var html         = \"<div class=\\\"\" + classPrefix + \"dialog \" + dialogName + \"\\\">\";\n\n        if (options.title !== \"\")\n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-header\\\"\" + ( (options.drag) ? \" style=\\\"cursor: move;\\\"\" : \"\" ) + \">\";\n            html += \"<strong class=\\\"\" + classPrefix + \"dialog-title\\\">\" + options.title + \"</strong>\";\n            html += \"</div>\";\n        }\n\n        if (options.closed)\n        {\n            html += \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\";\n        }\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\" + options.content;                    \n\n        if (options.footer || typeof options.footer === \"string\") \n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-footer\\\">\" + ( (typeof options.footer === \"boolean\") ? \"\" : options.footer) + \"</div>\";\n        }\n\n        html += \"</div>\";\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-bg\\\"></div>\";\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-con\\\"></div>\";\n        html += \"</div>\";\n\n        editor.append(html);\n\n        var dialog = editor.find(\".\" + dialogName);\n\n        dialog.lockScreen = function(lock) {\n            if (options.lockScreen)\n            {                \n                $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n                $this.resize();\n            }\n\n            return dialog;\n        };\n\n        dialog.showMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").css(options.maskStyle).css(\"z-index\", editormd.dialogZindex - 1).show();\n            }\n            return dialog;\n        };\n\n        dialog.hideMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").hide();\n            }\n\n            return dialog;\n        };\n\n        dialog.loading = function(show) {                        \n            var loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n            loading[(show) ? \"show\" : \"hide\"]();\n\n            return dialog;\n        };\n\n        dialog.lockScreen(true).showMask();\n\n        dialog.show().css({\n            zIndex : editormd.dialogZindex,\n            border : (editormd.isIE8) ? \"1px solid #ddd\" : \"\",\n            width  : (typeof options.width  === \"number\") ? options.width + \"px\"  : options.width,\n            height : (typeof options.height === \"number\") ? options.height + \"px\" : options.height\n        });\n\n        var dialogPosition = function(){\n            dialog.css({\n                top    : ($(window).height() - dialog.height()) / 2 + \"px\",\n                left   : ($(window).width() - dialog.width()) / 2 + \"px\"\n            });\n        };\n\n        dialogPosition();\n\n        $(window).resize(dialogPosition);\n\n        dialog.children(\".\" + classPrefix + \"dialog-close\").bind(mouseOrTouch(\"click\", \"touchend\"), function() {\n            dialog.hide().lockScreen(false).hideMask();\n        });\n\n        if (typeof options.buttons === \"object\")\n        {\n            var footer = dialog.footer = dialog.find(\".\" + classPrefix + \"dialog-footer\");\n\n            for (var key in options.buttons)\n            {\n                var btn = options.buttons[key];\n                var btnClassName = classPrefix + key + \"-btn\";\n\n                footer.append(\"<button class=\\\"\" + classPrefix + \"btn \" + btnClassName + \"\\\">\" + btn[0] + \"</button>\");\n                btn[1] = $.proxy(btn[1], dialog);\n                footer.children(\".\" + btnClassName).bind(mouseOrTouch(\"click\", \"touchend\"), btn[1]);\n            }\n        }\n\n        if (options.title !== \"\" && options.drag)\n        {                        \n            var posX, posY;\n            var dialogHeader = dialog.children(\".\" + classPrefix + \"dialog-header\");\n\n            if (!options.mask) {\n                dialogHeader.bind(mouseOrTouch(\"click\", \"touchend\"), function(){\n                    editormd.dialogZindex += 2;\n                    dialog.css(\"z-index\", editormd.dialogZindex);\n                });\n            }\n\n            dialogHeader.mousedown(function(e) {\n                e = e || window.event;  //IE\n                posX = e.clientX - parseInt(dialog[0].style.left);\n                posY = e.clientY - parseInt(dialog[0].style.top);\n\n                document.onmousemove = moveAction;                   \n            });\n\n            var userCanSelect = function (obj) {\n                obj.removeClass(classPrefix + \"user-unselect\").off(\"selectstart\");\n            };\n\n            var userUnselect = function (obj) {\n                obj.addClass(classPrefix + \"user-unselect\").on(\"selectstart\", function(event) { // selectstart for IE                        \n                    return false;\n                });\n            };\n\n            var moveAction = function (e) {\n                e = e || window.event;  //IE\n\n                var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top);\n\n                if( nowLeft >= 0 ) {\n                    if( nowLeft + dialog.width() <= $(window).width()) {\n                        left = e.clientX - posX;\n                    } else {\t\n                        left = $(window).width() - dialog.width();\n                        document.onmousemove = null;\n                    }\n                } else {\n                    left = 0;\n                    document.onmousemove = null;\n                }\n\n                if( nowTop >= 0 ) {\n                    top = e.clientY - posY;\n                } else {\n                    top = 0;\n                    document.onmousemove = null;\n                }\n\n\n                document.onselectstart = function() {\n                    return false;\n                };\n\n                userUnselect($(\"body\"));\n                userUnselect(dialog);\n                dialog[0].style.left = left + \"px\";\n                dialog[0].style.top  = top + \"px\";\n            };\n\n            document.onmouseup = function() {                            \n                userCanSelect($(\"body\"));\n                userCanSelect(dialog);\n\n                document.onselectstart = null;         \n                document.onmousemove = null;\n            };\n\n            dialogHeader.touchDraggable = function() {\n                var offset = null;\n                var start  = function(e) {\n                    var orig = e.originalEvent; \n                    var pos  = $(this).parent().position();\n\n                    offset = {\n                        x : orig.changedTouches[0].pageX - pos.left,\n                        y : orig.changedTouches[0].pageY - pos.top\n                    };\n                };\n\n                var move = function(e) {\n                    e.preventDefault();\n                    var orig = e.originalEvent;\n\n                    $(this).parent().css({\n                        top  : orig.changedTouches[0].pageY - offset.y,\n                        left : orig.changedTouches[0].pageX - offset.x\n                    });\n                };\n\n                this.bind(\"touchstart\", start).bind(\"touchmove\", move);\n            };\n\n            dialogHeader.touchDraggable();\n        }\n\n        editormd.dialogZindex += 2;\n\n        return dialog;\n    };\n    \n    /**\n     * 鼠标和触摸事件的判断/选择方法\n     * MouseEvent or TouchEvent type switch\n     * \n     * @param   {String} [mouseEventType=\"click\"]    供选择的鼠标事件\n     * @param   {String} [touchEventType=\"touchend\"] 供选择的触摸事件\n     * @returns {String} EventType                   返回事件类型名称\n     */\n    \n    editormd.mouseOrTouch = function(mouseEventType, touchEventType) {\n        mouseEventType = mouseEventType || \"click\";\n        touchEventType = touchEventType || \"touchend\";\n        \n        var eventType  = mouseEventType;\n\n        try {\n            document.createEvent(\"TouchEvent\");\n            eventType = touchEventType;\n        } catch(e) {}\n\n        return eventType;\n    };\n    \n    /**\n     * 日期时间的格式化方法\n     * Datetime format method\n     * \n     * @param   {String}   [format=\"\"]  日期时间的格式，类似PHP的格式\n     * @returns {String}   datefmt      返回格式化后的日期时间字符串\n     */\n    \n    editormd.dateFormat = function(format) {                \n        format      = format || \"\";\n\n        var addZero = function(d) {\n            return (d < 10) ? \"0\" + d : d;\n        };\n\n        var date    = new Date(); \n        var year    = date.getFullYear();\n        var year2   = year.toString().slice(2, 4);\n        var month   = addZero(date.getMonth() + 1);\n        var day     = addZero(date.getDate());\n        var weekDay = date.getDay();\n        var hour    = addZero(date.getHours());\n        var min     = addZero(date.getMinutes());\n        var second  = addZero(date.getSeconds());\n        var ms      = addZero(date.getMilliseconds()); \n        var datefmt = \"\";\n\n        var ymd     = year2 + \"-\" + month + \"-\" + day;\n        var fymd    = year  + \"-\" + month + \"-\" + day;\n        var hms     = hour  + \":\" + min   + \":\" + second;\n\n        switch (format) \n        {\n            case \"UNIX Time\" :\n                    datefmt = date.getTime();\n                break;\n\n            case \"UTC\" :\n                    datefmt = date.toUTCString();\n                break;\t\n\n            case \"yy\" :\n                    datefmt = year2;\n                break;\t\n\n            case \"year\" :\n            case \"yyyy\" :\n                    datefmt = year;\n                break;\n\n            case \"month\" :\n            case \"mm\" :\n                    datefmt = month;\n                break;                        \n\n            case \"cn-week-day\" :\n            case \"cn-wd\" :\n                    var cnWeekDays = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n                    datefmt = \"星期\" + cnWeekDays[weekDay];\n                break;\n\n            case \"week-day\" :\n            case \"wd\" :\n                    var weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n                    datefmt = weekDays[weekDay];\n                break;\n\n            case \"day\" :\n            case \"dd\" :\n                    datefmt = day;\n                break;\n\n            case \"hour\" :\n            case \"hh\" :\n                    datefmt = hour;\n                break;\n\n            case \"min\" :\n            case \"ii\" :\n                    datefmt = min;\n                break;\n\n            case \"second\" :\n            case \"ss\" :\n                    datefmt = second;\n                break;\n\n            case \"ms\" :\n                    datefmt = ms;\n                break;\n\n            case \"yy-mm-dd\" :\n                    datefmt = ymd;\n                break;\n\n            case \"yyyy-mm-dd\" :\n                    datefmt = fymd;\n                break;\n\n            case \"yyyy-mm-dd h:i:s ms\" :\n            case \"full + ms\" : \n                    datefmt = fymd + \" \" + hms + \" \" + ms;\n                break;\n\n            case \"full\" :\n            case \"yyyy-mm-dd h:i:s\" :\n                default:\n                    datefmt = fymd + \" \" + hms;\n                break;\n        }\n\n        return datefmt;\n    };\n\n    return editormd;\n\n}));\n"
  },
  {
    "path": "public/static/home/editormd/tests/bootstrap-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <meta charset=\"utf-8\" />\n        <title>Bootstrap 兼容测试 - Editor.md tests</title>\n        <!-- Latest compiled and minified CSS -->\n        <link rel=\"stylesheet\" href=\"./css/bootstrap.min.css\">\n\n        <!-- Optional theme -->\n        <link rel=\"stylesheet\" href=\"./css/bootstrap-theme.min.css\">\n        <link rel=\"stylesheet\" href=\"../css/editormd.css\" />\n        <link rel=\"shortcut icon\" href=\"https://pandao.github.io/editor.md/favicon.ico\" type=\"image/x-icon\" />\n        <style>\n            header {width: 90%;margin: 0 auto 20px;}\n        </style>\n    </head>\n    <body>\n        <div id=\"layout\">\n            <header>\n                <h1>Bootstrap 兼容测试</h1>\n            </header>\n            <div id=\"test-editormd\">\n                <textarea style=\"display:none;\">### Bootstrap 兼容测试</textarea>\n            </div>\n        </div>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n\n        <!-- Latest compiled and minified JavaScript -->\n        <script src=\"./js/bootstrap.min.js\"></script>\n        <script src=\"../editormd.js\"></script>\n        <script type=\"text/javascript\">\n\t\t\tvar testEditor;\n\n            $(function() {     \n                \n                $.get(\"../examples/test.md\", function(md){\n                    testEditor = editormd(\"test-editormd\", {\n                        width: \"90%\",\n                        height: 740,\n                        path : '../lib/',\n                        markdown : md,\n                        codeFold : true,\n                        saveHTMLToTextarea : true, \n                        searchReplace : true,\n                        htmlDecode : \"style,script,iframe|on*\", \n                        emoji : true,\n                        taskList : true,\n                        tocm            : true,         // Using [TOCM]\n                        tex : true,                   // 开启科学公式TeX语言支持，默认关闭\n                        flowChart : true,             // 开启流程图支持，默认关闭\n                        sequenceDiagram : true,       // 开启时序/序列图支持，默认关闭,\n                        imageUpload : true,\n                        imageFormats : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n                        imageUploadURL : \"../examples/php/upload.php\",\n                        onload : function() {\n                            console.log('onload', this);\n                        }\n                    });\n                });  \n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/codemirror-searchbox-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>CodeMirror searchbox Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../examples/css/style.css\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <textarea id=\"test\" style=\"display:none;\">###Hello world!</textarea>\n        </div>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/codemirror.min.css\" />\n        <script src=\"../lib/codemirror/codemirror.min.js\"></script>\n        <script src=\"../lib/codemirror/modes.min.js\"></script>  \n        <script src=\"../lib/codemirror/addons.min.js\"></script> \n        <script src=\"js/searchbox.js\"></script>\n        <style>\n            html, body, #layout, .CodeMirror {\n                width: 100%;\n                height: 100%;\n                overflow: hidden;\n                font-family: Consolas;\n                font-size: 13px;\n            }\n            .ace_search {\n                font-family:\"微软雅黑\",Arial;\n                padding-bottom: 4px;\n            }\n            \n            .ace_replacebtn, .ace_button {\n                padding: 0 5px;\n                font-size: 12px;\n            }\n            \n            .ace_button {\n                border-radius: 3px;\n                padding: 2px 5px;\n                margin-left: 3px;\n            }\n            \n            .ace_button.checked {\n                border-color: #ccc;\n                background-color: #fafafa;\n                \n            }\n            \n            .ace_search {\n                display: inline-block;\n                max-width: 320px;\n            }\n            \n            .ace_search_form, .ace_replace_form {\n                display: inline-block;\n                float: none;\n            }\n            \n            .ace_search_options {\n                display: block;\n            }\n        </style>\n        <script type=\"text/javascript\">\n            $(function() {\n                var enableSearchbox = true;\n                var codeMirrorConfig = {\n                    mode: \"gfm\",\n                    theme: \"default\",\n                    tabSize: 4,\n                    dragDrop: false,\n                    autofocus: true,\n                    indentUnit : 4,\n                    searchbox: enableSearchbox,  // IE9+\n                    lineNumbers: true,\n                    lineWrapping: true,\n                    matchBrackets: true,\n                    indentWithTabs: true,\n                    styleActiveLine: true,\n                    styleSelectedText: true,\n                    autoCloseBrackets: true,\n                    showTrailingSpace: true,\n                    highlightSelectionMatches: {\n                        showToken: /\\w/\n                    } \n                }; \n\n                $.get(\"../examples/test.md\", function(md){\n                    $(\"#test\").html(md);\n                    \n                    var codeMirrorEditor = CodeMirror.fromTextArea($(\"#test\")[0], codeMirrorConfig);\n                    var codeMirror = $(\".CodeMirror\");\n                \n                    $(window).keydown(function() {\n                        if (!enableSearchbox) return false;\n                        \n                        $(\".ace_replacebtn\").eq(0).html(\"替换\");\n                        $(\".ace_replacebtn\").eq(1).html(\"全部替换\");                        \n                        $(\".ace_searchbtn\").eq(2).remove();//.html(\"全部\").css({width: \"36px\", padding :\"0 4px\"});\n                        \n                        $(\".ace_button\").eq(0).html(\"正则搜索\");\n                        $(\".ace_button\").eq(1).html(\"区分大小写\");\n                        $(\".ace_button\").eq(2).html(\"全词搜索\");\n                    });\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/codemirror-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>CodeMirror Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../examples/css/style.css\" />\n    </head>\n    <body>\n        <div id=\"layout\">\n            <textarea id=\"test\" style=\"display:none;\">###Hello world!</textarea>\n        </div>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/lib/codemirror.min.css\" />\n        <script src=\"../lib/codemirror/lib/codemirror.min.js\"></script>\n        <script src=\"../lib/codemirror/addons.min.js\"></script>  \n        <script src=\"../lib/codemirror/modes.min.js\"></script>  \n       <!-- <script src=\"../lib/codemirror-5.0/addon/edit/closetag.js\"></script>\n        <script src=\"../lib/codemirror-5.0/addon/fold/xml-fold.js\"></script>\n        <script src=\"../lib/codemirror-5.0/mode/xml/xml.js\"></script>\n        <script src=\"../lib/codemirror-5.0/mode/javascript/javascript.js\"></script>\n        <script src=\"../lib/codemirror-5.0/mode/css/css.js\"></script>\n        <script src=\"../lib/codemirror-5.0/mode/htmlmixed/htmlmixed.js\"></script>-->\n        <!--<script src=\"../lib/codemirror/addons.min.js\"></script>  \n        <script src=\"../lib/codemirror/modes.min.js\"></script>  \n\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/dialog/dialog.css\">\n        <link rel=\"stylesheet\" href=\"../lib/codemirror/addon/search/matchesonscrollbar.css\">\n        \n        <script src=\"../lib/codemirror/addon/dialog/dialog.js\"></script>\n        <script src=\"../lib/codemirror/addon/search/searchcursor.js\"></script>\n        <script src=\"../lib/codemirror/addon/search/search.js\"></script>\n        <script src=\"../lib/codemirror/addon/scroll/annotatescrollbar.js\"></script>\n        <script src=\"../lib/codemirror/addon/search/matchesonscrollbar.js\"></script>--> \n        <style>\n            html, body, #layout, .CodeMirror {\n                width: 100%;\n                height: 100%;\n                overflow: hidden;\n            }\n        </style>\n        <script type=\"text/javascript\">\n            $(function() {\n            \n                var codeMirrorConfig = {\n                    mode: \"gfm\",\n                    theme: \"default\",\n                    //tabSize: 4,\n                    //dragDrop: false,\n                    autoCloseTags : true,\n                    //autofocus: true,\n                    //indentUnit : 4,\n                    //lineNumbers: true,\n                    //lineWrapping: true,\n                    /*matchBrackets: true,\n                    indentWithTabs: true,\n                    styleActiveLine: true,\n                    styleSelectedText: true,\n                    autoCloseBrackets: true,\n                    showTrailingSpace: true,\n                    highlightSelectionMatches: {\n                        showToken: /\\w/\n                    } */\n                };\n\n                $.get(\"../examples/test.md\", function(md){\n                    $(\"#test\").html(md);\n                    var codeMirrorEditor = CodeMirror.fromTextArea($(\"#test\")[0], codeMirrorConfig);\n                    var codeMirror = $(\".CodeMirror\");\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/js/searchbox.js",
    "content": "/* global CodeMirror */\n/* global define */\n\n(function(mod) {\n    'use strict';\n    \n    if (typeof exports === 'object' && typeof module === 'object') // CommonJS\n        mod(require('../../lib/codemirror'));\n    else if (typeof define === 'function' && define.amd) // AMD\n        define(['../../lib/codemirror'], mod);\n    else\n        mod(CodeMirror);\n})(function(CodeMirror) {\n    'use strict';\n    \n    var Search;\n    \n    CodeMirror.defineOption('searchbox', false, function(cm) {\n        cm.addKeyMap({\n            'Ctrl-F': function() {\n                if (!Search)\n                    Search  = new SearchBox(cm);\n                \n                Search.show();\n            },\n            \n            'Esc': function() {\n                if (Search && Search.isVisible()) {\n                    Search.hide();\n                    \n                    if (typeof event !== 'undefined')\n                        event.stopPropagation();\n                }\n                \n                return false;\n            },\n            \n            'Cmd-F': function() {\n                if (!Search)\n                    Search  = new SearchBox(cm);\n                \n                Search.show();\n            }\n        });\n    });\n    \n    function SearchBox(cm) {\n        var self = this;\n        \n        init();\n        \n        function initElements(el) {\n            self.searchBox              = el.querySelector('.ace_search_form');\n            self.replaceBox             = el.querySelector('.ace_replace_form');\n            self.searchOptions          = el.querySelector('.ace_search_options');\n            \n            self.regExpOption           = el.querySelector('[action=toggleRegexpMode]');\n            self.caseSensitiveOption    = el.querySelector('[action=toggleCaseSensitive]');\n            self.wholeWordOption        = el.querySelector('[action=toggleWholeWords]');\n            \n            self.searchInput            = self.searchBox.querySelector('.ace_search_field');\n            self.replaceInput           = self.replaceBox.querySelector('.ace_search_field');\n        }\n        \n        function init() {\n            var el = self.element = addHtml();\n            \n            addStyle();\n            \n            initElements(el);\n            bindKeys();\n            \n            el.addEventListener('mousedown', function(e) {\n                setTimeout(function(){\n                    self.activeInput.focus();\n                }, 0);\n                \n                e.stopPropagation();\n            });\n            \n            el.addEventListener('click', function(e) {\n                var t = e.target || e.srcElement;\n                var action = t.getAttribute('action');\n                if (action && self[action])\n                    self[action]();\n                else if (self.commands[action])\n                    self.commands[action]();\n                \n                e.stopPropagation();\n            });\n            \n            self.searchInput.addEventListener('input', function() {\n                self.$onChange.schedule(20);\n            });\n            \n            self.searchInput.addEventListener('focus', function() {\n                self.activeInput = self.searchInput;\n            });\n            \n            self.replaceInput.addEventListener('focus', function() {\n                self.activeInput = self.replaceInput;\n            });\n            \n            self.$onChange = delayedCall(function() {\n                self.find(false, false);\n            });\n        }\n        \n        function bindKeys() {\n            var sb  = self,\n                obj = {\n                    'Ctrl-F|Cmd-F|Ctrl-H|Command-Alt-F': function() {\n                        var isReplace = sb.isReplace = !sb.isReplace;\n                        sb.replaceBox.style.display = isReplace ? '' : 'none';\n                        sb[isReplace ? 'replaceInput' : 'searchInput'].focus();\n                    },\n                    'Ctrl-G|Cmd-G': function() {\n                        sb.findNext();\n                    },\n                    'Ctrl-Shift-G|Cmd-Shift-G': function() {\n                        sb.findPrev();\n                    },\n                    'Esc': function() {\n                        setTimeout(function() { sb.hide();});\n                    },\n                    'Enter': function() {\n                        if (sb.activeInput === sb.replaceInput)\n                            sb.replace();\n                        sb.findNext();\n                    },\n                    'Shift-Enter': function() {\n                        if (sb.activeInput === sb.replaceInput)\n                            sb.replace();\n                        sb.findPrev();\n                    },\n                    'Alt-Enter': function() {\n                        if (sb.activeInput === sb.replaceInput)\n                            sb.replaceAll();\n                        sb.findAll();\n                    },\n                    'Tab': function() {\n                        if (self.activeInput === self.replaceInput)\n                            self.searchInput.focus();\n                        else\n                            self.replaceInput.focus();\n                    }\n                };\n            \n            self.element.addEventListener('keydown', function(event) {\n                Object.keys(obj).some(function(name) {\n                    var is = key(name, event);\n                    \n                    if (is) {\n                        event.stopPropagation();\n                        event.preventDefault();\n                        obj[name](event);\n                    }\n                    \n                    return is;\n                });\n            });\n        }\n        \n        this.commands   = {\n            toggleRegexpMode: function() {\n                self.regExpOption.checked = !self.regExpOption.checked;\n                self.$syncOptions();\n            },\n            \n            toggleCaseSensitive: function() {\n                self.caseSensitiveOption.checked = !self.caseSensitiveOption.checked;\n                self.$syncOptions();\n            },\n            \n            toggleWholeWords: function() {\n                self.wholeWordOption.checked = !self.wholeWordOption.checked;\n                self.$syncOptions();\n            }\n        };\n        \n        this.$syncOptions = function() {\n            setCssClass(this.regExpOption, 'checked', this.regExpOption.checked);\n            setCssClass(this.wholeWordOption, 'checked', this.wholeWordOption.checked);\n            setCssClass(this.caseSensitiveOption, 'checked', this.caseSensitiveOption.checked);\n            \n            this.find(false, false);\n        };\n        \n        this.find = function(skipCurrent, backwards) {\n            var value   = this.searchInput.value,\n                options = {\n                    skipCurrent: skipCurrent,\n                    backwards: backwards,\n                    regExp: this.regExpOption.checked,\n                    caseSensitive: this.caseSensitiveOption.checked,\n                    wholeWord: this.wholeWordOption.checked\n                };\n            \n            find(value, options, function(searchCursor) {\n                var current = searchCursor.matches(false, searchCursor.from());\n                cm.setSelection(current.from, current.to);\n            });\n        };\n        \n        function find(value, options, callback) {\n            var done,\n                noMatch, searchCursor, next, prev, matches, cursor,\n                position,\n                o               = options,\n                is              = true,\n                caseSensitive   = o.caseSensitive,\n                regExp          = o.regExp,\n                wholeWord       = o.wholeWord;\n            \n            if (regExp || wholeWord) {\n                if (options.wholeWord)\n                    value   = '\\\\b' + value + '\\\\b';\n                \n                value   = RegExp(value);\n            }\n            \n            if (o.backwards)\n                position = o.skipCurrent ? 'from': 'to';\n            else\n                position = o.skipCurrent ? 'to' : 'from';\n                \n            cursor          = cm.getCursor(position);\n            searchCursor    = cm.getSearchCursor(value, cursor, !caseSensitive);\n            \n            next            = searchCursor.findNext.bind(searchCursor),\n            prev            = searchCursor.findPrevious.bind(searchCursor),\n            matches         = searchCursor.matches.bind(searchCursor);\n            \n            if (o.backwards && !prev()) {\n                is = next();\n                \n                if (is) {\n                    cm.setCursor(cm.doc.size - 1, 0);\n                    find(true, true, callback);\n                    done = true;\n                }\n            } else if (!o.backwards && !next()) {\n                is = prev();\n                \n                if (is) {\n                    cm.setCursor(0, 0);\n                    find(true, false, callback);\n                    done = true;\n                }\n            }\n            \n            noMatch             = !is && self.searchInput.value;\n            setCssClass(self.searchBox, 'ace_nomatch', noMatch);\n            \n            if (!done && is)\n                callback(searchCursor);\n        }\n        \n        this.findNext = function() {\n            this.find(true, false);\n        };\n        \n        this.findPrev = function() {\n            this.find(true, true);\n        };\n        \n        this.findAll = function(){\n            /*\n            var range = this.editor.findAll(this.searchInput.value, {\n                regExp: this.regExpOption.checked,\n                caseSensitive: this.caseSensitiveOption.checked,\n                wholeWord: this.wholeWordOption.checked\n            });\n            */\n            \n            var value   = this.searchInput.value,\n                range,\n                noMatch = !range && this.searchInput.value;\n            \n            setCssClass(this.searchBox, 'ace_nomatch', noMatch);\n            \n            if (cm.showMatchesOnScrollbar)\n                cm.showMatchesOnScrollbar(value);\n            \n            this.hide();\n        };\n        \n        this.replace = function() {\n            if (!cm.getOption('readOnly'))\n                cm.replaceSelection(this.replaceInput.value, 'start');\n        };\n        \n        this.replaceAndFindNext = function() {\n            if (!cm.getOption('readOnly')) {\n                this.editor.replace(this.replaceInput.value);\n                this.findNext();\n            }\n        };\n        \n        this.replaceAll = function() {\n            var value,\n                cursor,\n                from    = this.searchInput.value,\n                to      = this.replaceInput.value,\n                reg     = RegExp(from, 'g');\n            \n            if (!cm.getOption('readOnly')) {\n                cursor  = cm.getCursor();\n                value   = cm.getValue();\n                value   = value.replace(reg, to);\n                \n                cm.setValue(value);\n                cm.setCursor(cursor);\n            }\n        };\n        \n        this.hide = function() {\n            this.element.style.display = 'none';\n            cm.focus();\n        };\n        \n        this.isVisible = function() {\n            var is = this.element.style.display === '';\n            \n            return is;\n        };\n        \n        this.show = function(value, isReplace) {\n            this.element.style.display = '';\n            this.replaceBox.style.display = isReplace ? '' : 'none';\n            \n            this.isReplace = isReplace;\n            \n            if (value)\n                this.searchInput.value = value;\n            \n            this.searchInput.focus();\n            this.searchInput.select();\n        };\n        \n        this.isFocused = function() {\n            var el = document.activeElement;\n            return el === this.searchInput || el === this.replaceInput;\n        };\n        \n        function addStyle() {\n            var style   = document.createElement('style'),\n                css     = [\n                    '.ace_search {',\n                        'background-color: #ddd;',\n                        'border: 1px solid #cbcbcb;',\n                        'border-top: 0 none;',\n                        'max-width: 325px;',\n                        'overflow: hidden;',\n                        'margin: 0;',\n                        'padding: 4px;',\n                        'padding-right: 6px;',\n                        'padding-bottom: 0;',\n                        'position: absolute;',\n                        'top: 0px;',\n                        'z-index: 99;',\n                        'white-space: normal;',\n                    '}',\n                    '.ace_search.left {',\n                        'border-left: 0 none;',\n                        'border-radius: 0px 0px 5px 0px;',\n                        'left: 0;',\n                    '}',\n                    '.ace_search.right {',\n                        'border-radius: 0px 0px 0px 5px;',\n                        'border-right: 0 none;',\n                        'right: 0;',\n                    '}',\n                    '.ace_search_form, .ace_replace_form {',\n                        'border-radius: 3px;',\n                        'border: 1px solid #cbcbcb;',\n                        'float: left;',\n                        'margin-bottom: 4px;',\n                        'overflow: hidden;',\n                    '}',\n                    '.ace_search_form.ace_nomatch {',\n                        'outline: 1px solid red;',\n                    '}',\n                    '.ace_search_field {',\n                        'background-color: white;',\n                        'border-right: 1px solid #cbcbcb;',\n                        'border: 0 none;',\n                        '-webkit-box-sizing: border-box;',\n                        '-moz-box-sizing: border-box;',\n                        'box-sizing: border-box;',\n                        'float: left;',\n                        'height: 22px;',\n                        'outline: 0;',\n                        'padding: 0 7px;',\n                        'width: 214px;',\n                        'margin: 0;',\n                    '}',\n                    '.ace_searchbtn,',\n                    '.ace_replacebtn {',\n                        'background: #fff;',\n                        'border: 0 none;',\n                        'border-left: 1px solid #dcdcdc;',\n                        'cursor: pointer;',\n                        'float: left;',\n                        'height: 22px;',\n                        'margin: 0;',\n                        'padding: 0;',\n                        'position: relative;',\n                    '}',\n                    '.ace_searchbtn:last-child,',\n                    '.ace_replacebtn:last-child {',\n                        'border-top-right-radius: 3px;',\n                        'border-bottom-right-radius: 3px;',\n                    '}',\n                    '.ace_searchbtn:disabled {',\n                        'background: none;',\n                        'cursor: default;',\n                    '}',\n                    '.ace_searchbtn {',\n                        'background-position: 50% 50%;',\n                        'background-repeat: no-repeat;',\n                        'width: 27px;',\n                    '}',\n                    '.ace_searchbtn.prev {',\n                        'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    ',\n                    '}',\n                    '.ace_searchbtn.next {',\n                        'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    ',\n                    '}',\n                    '.ace_searchbtn_close {',\n                        'background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;',\n                        'border-radius: 50%;',\n                        'border: 0 none;',\n                        'color: #656565;',\n                        'cursor: pointer;',\n                        'float: right;',\n                        'font: 16px/16px Arial;',\n                        'height: 14px;',\n                        'margin: 5px 1px 9px 5px;',\n                        'padding: 0;',\n                        'text-align: center;',\n                        'width: 14px;',\n                    '}',\n                    '.ace_searchbtn_close:hover {',\n                        'background-color: #656565;',\n                        'background-position: 50% 100%;',\n                        'color: white;',\n                    '}',\n                    '.ace_replacebtn.prev {',\n                        'width: 54px',\n                    '}',\n                    '.ace_replacebtn.next {',\n                        'width: 27px',\n                    '}',\n                    '.ace_button {',\n                        'margin-left: 2px;',\n                        'cursor: pointer;',\n                        '-webkit-user-select: none;',\n                        '-moz-user-select: none;',\n                        '-o-user-select: none;',\n                        '-ms-user-select: none;',\n                        'user-select: none;',\n                        'overflow: hidden;',\n                        'opacity: 0.7;',\n                        'border: 1px solid rgba(100,100,100,0.23);',\n                        'padding: 1px;',\n                        '-moz-box-sizing: border-box;',\n                        'box-sizing:    border-box;',\n                        'color: black;',\n                    '}',\n                    '.ace_button:hover {',\n                        'background-color: #eee;',\n                        'opacity:1;',\n                    '}',\n                    '.ace_button:active {',\n                        'background-color: #ddd;',\n                    '}',\n                    '.ace_button.checked {',\n                        'border-color: #3399ff;',\n                        'opacity:1;',\n                    '}',\n                    '.ace_search_options{',\n                        'margin-bottom: 3px;',\n                        'text-align: right;',\n                        '-webkit-user-select: none;',\n                        '-moz-user-select: none;',\n                        '-o-user-select: none;',\n                        '-ms-user-select: none;',\n                        'user-select: none;',\n                    '}'\n                ].join('');\n            \n            style.setAttribute('data-name', 'js-searchbox');\n            \n            style.textContent = css;\n            \n            document.head.appendChild(style);\n        }\n        \n        function addHtml() {\n            var elSearch,\n                el      = document.querySelector('.CodeMirror'),\n                div     = document.createElement('div'),\n                html    = [\n                    '<div class=\"ace_search right\">',\n                        '<button type=\"button\" action=\"hide\" class=\"ace_searchbtn_close\"></button>',\n                        '<div class=\"ace_search_form\">',\n                            '<input class=\"ace_search_field\" placeholder=\"Search for\" spellcheck=\"false\"></input>',\n                            '<button type=\"button\" action=\"findNext\" class=\"ace_searchbtn next\"></button>',\n                            '<button type=\"button\" action=\"findPrev\" class=\"ace_searchbtn prev\"></button>',\n                            '<button type=\"button\" action=\"findAll\" class=\"ace_searchbtn\" title=\"Alt-Enter\">All</button>',\n                        '</div>',\n                        '<div class=\"ace_replace_form\">',\n                            '<input class=\"ace_search_field\" placeholder=\"Replace with\" spellcheck=\"false\"></input>',\n                            '<button type=\"button\" action=\"replaceAndFindNext\" class=\"ace_replacebtn\">Replace</button>',\n                            '<button type=\"button\" action=\"replaceAll\" class=\"ace_replacebtn\">All</button>',\n                        '</div>',\n                        '<div class=\"ace_search_options\">',\n                            '<span action=\"toggleRegexpMode\" class=\"ace_button\" title=\"RegExp Search\">.*</span>',\n                            '<span action=\"toggleCaseSensitive\" class=\"ace_button\" title=\"CaseSensitive Search\">Aa</span>',\n                            '<span action=\"toggleWholeWords\" class=\"ace_button\" title=\"Whole Word Search\">\\\\b</span>',\n                        '</div>',\n                    '</div>'\n                ].join('');\n            \n            div.innerHTML = html;\n            \n            elSearch = div.firstChild;\n            \n            el.parentElement.appendChild(elSearch);\n            \n            return elSearch;\n        }\n    }\n    \n    function setCssClass(el, className, condition) {\n        var list = el.classList;\n        \n        list[condition ? 'add' : 'remove'](className);\n    }\n    \n    function delayedCall(fcn, defaultTimeout) {\n        var timer,\n            callback = function() {\n                timer = null;\n                fcn();\n            },\n            \n            _self = function(timeout) {\n                if (!timer)\n                    timer = setTimeout(callback, timeout || defaultTimeout);\n            };\n        \n        _self.delay = function(timeout) {\n            timer && clearTimeout(timer);\n            timer = setTimeout(callback, timeout || defaultTimeout);\n        };\n        _self.schedule = _self;\n        \n        _self.call = function() {\n            this.cancel();\n            fcn();\n        };\n        \n        _self.cancel = function() {\n            timer && clearTimeout(timer);\n            timer = null;\n        };\n        \n        _self.isPending = function() {\n            return timer;\n        };\n    \n        return _self;\n    }\n    \n    /* https://github.com/coderaiser/key */\n    function key(str, event) {\n        var right,\n            KEY = {\n                BACKSPACE   : 8,\n                TAB         : 9,\n                ENTER       : 13,\n                ESC         : 27,\n                \n                SPACE       : 32,\n                PAGE_UP     : 33,\n                PAGE_DOWN   : 34,\n                END         : 35,\n                HOME        : 36,\n                UP          : 38,\n                DOWN        : 40,\n                \n                INSERT      : 45,\n                DELETE      : 46,\n                \n                INSERT_MAC  : 96,\n                \n                ASTERISK    : 106,\n                PLUS        : 107,\n                MINUS       : 109,\n                \n                F1          : 112,\n                F2          : 113,\n                F3          : 114,\n                F4          : 115,\n                F5          : 116,\n                F6          : 117,\n                F7          : 118,\n                F8          : 119,\n                F9          : 120,\n                F10         : 121,\n                \n                SLASH       : 191,\n                TRA         : 192, /* Typewritten Reverse Apostrophe (`) */\n                BACKSLASH   : 220\n            };\n        \n        keyCheck(str, event);\n        \n        right = str.split('|').some(function(combination) {\n            var wrong;\n            \n            wrong = combination.split('-').some(function(key) {\n                var right;\n                \n                switch(key) {\n                case 'Ctrl':\n                    right = event.ctrlKey;\n                    break;\n                \n                case 'Shift':\n                    right = event.shiftKey;\n                    break;\n                \n                case 'Alt':\n                    right = event.altKey;\n                    break;\n                \n                case 'Cmd':\n                    right = event.metaKey;\n                    break;\n                \n                default:\n                    if (key.length === 1)\n                        right = event.keyCode === key.charCodeAt(0);\n                    else\n                        Object.keys(KEY).some(function(name) {\n                            var up = key.toUpperCase();\n                            \n                            if (up === name)\n                                right = event.keyCode === KEY[name];\n                        });\n                    break;\n                }\n                \n                return !right;\n            });\n            \n            return !wrong;\n        });\n        \n        return right;\n    }\n    \n    function keyCheck(str, event) {\n        if (typeof str !== 'string')\n            throw(Error('str should be string!'));\n        \n        if (typeof event !== 'object')\n            throw(Error('event should be object!'));\n    }\n\n});\n"
  },
  {
    "path": "public/static/home/editormd/tests/katex-tests.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>KaTeX Tests</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <style>\n            * {\n                margin:0;\n                padding:0;\n            }\n\n\n            body{font-size:14px;color:#444;font-family:\"微软雅黑\",Arial;background:#fff;padding: 15px;}\n\n            .katex {display: block;margin-bottom: 10px;}\n        </style>\n    </head>\n    <body>\n        <a href=\"http://khan.github.io/KaTeX/\" target=\"_blank\">http://khan.github.io/KaTeX/</a><br/><br/>\n        <a href=\"http://meta.wikimedia.org/wiki/Help:Displaying_a_formula\" target=\"_blank\">http://meta.wikimedia.org/wiki/Help:Displaying_a_formula</a>\n        <br/><br/>\n        <span class=\"katex\">a^2</span>\n        <span class=\"katex\">a^{2+2}</span>\n        <span class=\"katex\">a_2</span>\n        <span class=\"katex\">{x_2}^3</span>\n        <span class=\"katex\">x_2^3</span>\n        <span class=\"katex\">10^{10^{8}}</span>\n        <span class=\"katex\">a_{i,j}</span>\n        <span class=\"katex\">_nP_k</span>\n        <span class=\"katex\">E=MC^2</span>\n        <span class=\"katex\">\\left \\{ \\frac{a}{b} \\right \\} \\quad \\left \\lbrace \\frac{a}{b} \\right \\rbrace</span>\n        <span class=\"katex\">\\left [ \\frac{a}{b} \\right ] \\quad \\left \\lbrack \\frac{a}{b} \\right \\rbrack</span>\n        <span class=\"katex\">\\left ( \\frac{a}{b} \\right )</span>\n        <span class=\"katex\">\\left \\langle \\frac{a}{b} \\right \\rangle</span>\n        <span class=\"katex\">x > y = 100</span>\n        <span class=\"katex\">c = \\pm\\sqrt{a^2 + b^2}</span>\n        <span class=\"katex\">\\left . \\frac{A}{B} \\right \\} \\to X</span>\n        <span class=\"katex\">\\left / \\frac{a}{b} \\right \\backslash</span>\n        <span class=\"katex\">\\left \\lfloor \\frac{a}{b} \\right \\rfloor \\left \\lceil \\frac{c}{d} \\right \\rceil</span>\n        <span class=\"katex\">\\frac{1}{2}=0.5</span>\n        <span class=\"katex\">\\dfrac{k}{k-1} = 0.5</span>\n        <span class=\"katex\">\\dbinom{n}{k} \\binom{n}{k}</span>\n        <span class=\"katex\">\\oint_C x^3\\, dx + 4y^2\\, dy</span>\n        <span class=\"katex\">\\bigcap_1^n p   \\bigcup_1^k p</span>\n        <span class=\"katex\">\\phi_n(\\kappa) =\n        \\frac{1}{4\\pi^2\\kappa^2} \\int_0^\\infty\n        \\frac{\\sin(\\kappa R)}{\\kappa R}\n        \\frac{\\partial}{\\partial R}\n        \\left[R^2\\frac{\\partial D_n(R)}{\\partial R}\\right]\\,dR</span>\n        <span class=\"katex\">\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}\n        {3^m\\left(m\\,3^n+n\\,3^m\\right)}</span>\n        <span class=\"katex\">e^{i \\pi} + 1 = 0</span>\n        <span class=\"katex\">\\left ( \\frac{1}{2} \\right )</span>\n        <span class=\"katex\">x_{1,2}=\\frac{-b\\pm\\sqrt{\\color{Red}b^2-4ac}}{2a}</span>\n        <span class=\"katex\">{\\color{Blue}x^2}+{\\color{YellowOrange}2x}-{\\color{OliveGreen}1}</span>\n        <span class=\"katex\">\\textstyle \\sum_{k=1}^N k^2</span>\n        <span class=\"katex\">\\dfrac{ \\tfrac{1}{2}[1-(\\tfrac{1}{2})^n] }{ 1-\\tfrac{1}{2} } = s_n</span>\n        <span class=\"katex\">\\binom{n}{k}</span>\n        <span class=\"katex\">0+1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+\\cdots</span>\n        <span class=\"katex\">f(x) = \\int_{-\\infty}^\\infty\n    \\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\n    \\,d\\xi</span>\n        <span class=\"katex\">\\displaystyle \\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\cdots} } } }</span>\n        <span class=\"katex\">\\displaystyle \\left( \\sum_{k=1}^n a_k b_k \\right)^2 \\leq \\left( \\sum_{k=1}^n a_k^2 \\right) \\left( \\sum_{k=1}^n b_k^2 \\right)</span>\n        <span class=\"katex\">\\displaystyle 1 +  \\frac{q^2}{(1-q)}+\\frac{q^6}{(1-q)(1-q^2)}+\\cdots = \\prod_{j=0}^{\\infty}\\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \\quad\\quad \\text{for }\\lvert q\\rvert<1.</span>\n        <span class=\"katex\">2 = \\left(\n \\frac{\\left(3-x\\right) \\times 2}{3-x}\n \\right)</span>\n        <span class=\"katex\">S_{\\text{new}} = S_{\\text{old}} - \\frac{ \\left( 5-T \\right) ^2} {2}</span>\n        <span class=\"katex\">x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}</span>\n        <span class=\"katex\">ax^2 + bx + c = 0\\,</span>\n        <span class=\"katex\">\\int_a^x \\!\\!\\!\\int_a^s f(y)\\,dy\\,ds\n = \\int_a^x f(y)(x-y)\\,dy</span>\n        <span class=\"katex\">\\sum_{m=1}^\\infty\\sum_{n=1}^\\infty\\frac{m^2\\,n}\n {3^m\\left(m\\,3^n+n\\,3^m\\right)}</span>\n        <span class=\"katex\">u'' + p(x)u' + q(x)u=f(x),\\quad x>a</span>\n        <span class=\"katex\">|\\bar{z}| = |z|,\n |(\\bar{z})^n| = |z|^n,\n \\arg(z^n) = n \\arg(z)</span>\n        <span class=\"katex\">\\lim_{z\\rightarrow z_0} f(z)=f(z_0)</span>\n        <span class=\"katex\">\\phi_n(\\kappa) =\n 0.033C_n^2\\kappa^{-11/3},\\quad\n \\frac{1}{L_0}\\ll\\kappa\\ll\\frac{1}{l_0}</span>\n        <span class=\"katex\">\\sum_{k=1}^N k^2</span>\n        <span class=\"katex\">\\textstyle \\sum_{k=1}^N k^2</span>\n        <span class=\"katex\">\\prod_{i=1}^N x_i</span>\n        <span class=\"katex\">\\textstyle \\prod_{i=1}^N x_i</span>\n        <span class=\"katex\">\\coprod_{i=1}^N x_i</span>\n        <span class=\"katex\">\\textstyle \\coprod_{i=1}^N x_i</span>\n        <span class=\"katex\">\\int_{1}^{3}\\frac{e^3/x}{x^2}\\, dx</span>\n        <span class=\"katex\">\\int_C x^3\\, dx + 4y^2\\, dy</span>\n        <span class=\"katex\">{}_1^2\\!\\Omega_3^4</span>\n        <span class=\"katex\">x', y'', f', f''</span>\n        <span class=\"katex\">\\dot{x}, \\ddot{x}</span>\n        <span class=\"katex\">\\hat a \\ \\bar b \\ \\vec c</span>\n        <span class=\"katex\">\\lessapprox \\lesssim \\eqslantless \\leqslant \\leqq \\geqq \\geqslant \\eqslantgtr \\gtrsim \\gtrapprox</span>\n        <span class=\"katex\">\\smile \\frown \\wr \\triangleleft \\triangleright \\infty \\bot \\top</span>\n        <span class=\"katex\">\\leftarrow \\gets \\rightarrow \\to \\nleftarrow \\nrightarrow \\leftrightarrow \\nleftrightarrow \\longleftarrow \\longrightarrow \\longleftrightarrow</span>\n        <span class=\"katex\">\\uparrow \\downarrow \\updownarrow \\Uparrow \\Downarrow \\Updownarrow \\nearrow \\searrow \\swarrow \\nwarrow</span>\n        <span class=\"katex\">\\rightharpoonup \\rightharpoondown \\leftharpoonup \\leftharpoondown \\upharpoonleft \\upharpoonright \\downharpoonleft \\downharpoonright \\rightleftharpoons \\leftrightharpoons</span>\n        <span class=\"katex\">\\curvearrowleft \\circlearrowleft \\Lsh \\upuparrows \\rightrightarrows \\rightleftarrows \\Rrightarrow \\rightarrowtail \\looparrowright</span>\n        <span class=\"katex\">\\curvearrowright \\circlearrowright \\Rsh \\downdownarrows \\leftleftarrows \\leftrightarrows \\Lleftarrow \\leftarrowtail \\looparrowleft</span>\n        <span class=\"katex\">\\mapsto \\longmapsto \\hookrightarrow \\hookleftarrow \\multimap \\leftrightsquigarrow \\rightsquigarrow</span>\n        <span class=\"katex\">\\Diamond \\Box \\triangle \\angle \\perp \\mid \\nmid \\| 45^\\circ</span>\n        <span class=\"katex\">\n\\sim \\approx \\simeq \\cong \\dot= \\overset{\\underset{\\mathrm{def}}{}}{=}</span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <span class=\"katex\"></span>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <link rel=\"stylesheet\" href=\"../css/katex.min.css\">\n        <script src=\"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min.js\"></script>\n        <script type=\"text/javascript\">\n            $(function() {\n                $(\".katex\").each(function(){\n                    var tex  = $(this);\n                    katex.render(tex.text(), tex[0]);\n                });\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/marked-@at-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>Marked @ Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../dist/css/editormd.min.css\" />\n        <style>\n            body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,\n            article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {\n                margin:0;\n                padding:0;\n            }\n\n            article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {display: block;}\n            audio, canvas, video {display: inline-block;} \n\n            body, button, input, select, textarea {font:12px/1.5 Tahoma, \"Hiragino Sans GB\", \"Microsoft Yahei\", Arial;}\n            body{font-size:12px;color:#666;background:#fff url(../images/) no-repeat left top;}\n\n            body{font-size:14px;color:#444;font-family:\"微软雅黑\",Arial;background:#fff;padding: 15px;}\n\n            a{color:blue;text-decoration: none;}\n            a:hover{text-decoration: underline;}\n\n            .clear{zoom:1;}\n            .clear:after{content:\"\";height:0;visibility:hidden;clear:both;display:block;}\n\n            img{border:none;vertical-align: middle;}\n            \n            ul, ol {margin-left: 18px;}\n            \n            table {\n                margin: 10px 0;\n                border-collapse: collapse;\n            }\n            \n            table th, table td {\n                padding: 5px 8px;\n                border: 1px solid #ddd;\n            }\n            \n            pre {\n                padding:8px;border-radius:3px;border:1px solid #ddd;background:#f6f6f6;margin: 15px 0;display: inline-block;\n            }\n            \n            pre code {\n                \n            }\n            \n            .editormd-logo,\n            .editormd-logo-4x {\n                font-family: editormd-logo;\n                speak: none;\n                font-style: normal;\n                font-weight: 400;\n                font-variant: normal;\n                text-transform: none;\n                font-size: inherit;\n                line-height: 1;\n                display: inline-block;\n                text-rendering: auto;\n                vertical-align: inherit;\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n            .editormd-logo:before,\n            .editormd-logo-4x:before {\n                content: \"\\e1987\";\n            }\n            .editormd-logo-4x {\n                font-size:4em;\n            }\n        </style>\n    </head>\n    <body>\n        <pre id=\"test\"> ~~@mentions~~, #refs @tylerlong `inline code @tylerlong`, [links](), **formatting**, and <del>tags</del> supported @pandao;\nlist syntax required (any unordered or ordered list supported) @pandao;\nthis is @pandao a complete item @pandao;\nlink [@pandao](https://github.com/pandao \"@pandao\") &#64;\nlink [&#64;pandao](https://github.com/pandao \"&#64;pandao\") \nthis is an incomplete item **@pandao**;\n*@pandao* this is an incomplete item ___@pandao___;\n# Github: @pandao\n## Github: @pandao\n### Github: @tylerlong\n#### Github: @tylerlong\n##### Github: @tylerlong\n###### Github: @tylerlong\n \n- dafssdfsdaf@chjj dfsdfsdf\n- dafssdfsdaf@chjj dfsdfsdf     \n    - dafssdfsdaf@chjj dfsdfsdf\n    - dafss@pandao dfsdaf@chjj dfsdfsdf\n- dafssd:  @pandao fsdaf@chjj dfsdfsdf @codemirror  @pandao\n    + dafssdfsdaf@chjj dfsdfsdf\n    + dafss@pandaodfsdaf@chjj dfsdfsdf\n\n\n1. @chjj 第一行@pandao fsdaf@chjj dfsdfsdf :fa-save::  @pandao\n    - dafssdfsdaf@chjj dfsdfsdf\n    - dafss@pandao dfsdaf@chjj dfsdfsdf\n2. @chjj 第二行@pandao fsdaf@chjj dfsdfsdf @codemirror  @pandao\n3. 第三行@pandao fsdaf@chjj dfsdfsdf :fa-save::  @pandao\n\n&gt; Blockquotes @pandao\n\n&gt; dd@pandao引用文本(Blockquotes @pandao)fdasfad @_pandao fdasfad @xxx454xxx fdasfad @xx_x454xxx454\n\n|@pandao First Header  | Second@pandao Header@pandao |\n| ------------- | ------------- |\n| Content@pandao Cell  | @pandao Content Cell @pandao|\n| Con@pandao tent Cell@pandao  | Content@pan-dao Cell dfsdfsdf @pan_dao |\n\ndsfdf@pandao fasdfsdfsfddffd@pandao\n\n    dfasfasdfasdf:bangbang:\n\nThis is an H1 @pandao\n=============\n\nThis @pandao an H2 @pandao\n-------------\n</pre>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script type=\"text/javascript\">\n            \n            $(function() {\n                var markedRenderer     = new marked.Renderer();\n                var markdownToC        = markdownToC || [];\n                \n                console.log(\"markedRenderer =>\", markedRenderer);\n                \n                var atReg = /@(\\w+)/g;\n                \n                markedRenderer.at = function(text) {\n                    \n                    if (atReg.test(text))\n                    {\n                        text = text.replace(atReg, function($1, $2){\n                            console.log($1, $2);\n                            return \"<a href=\\\"https://github.com/\" + $2 + \"\\\">\" + $1 + \"</a>\";\n                        });\n                    }\n                    \n                    return text;\n                };\n                \n                markedRenderer.link = function (href,title,text){\n                    console.log(\"link =>\", href,title,text);\n                    \n                    if(this.options.sanitize) {\n                        try{\n                            var prot=decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase()\n                        }catch(e){\n                            return\"\"\n                        }\n                        \n                        if(prot.indexOf(\"javascript:\")===0){\n                            return\"\"\n                        }\n                    }\n                    \n                    var out='<a href=\"'+href+'\"';\n                    \n                    if (atReg.test(title) || atReg.test(text))\n                    {\n                        return out + \" title=\\\"\" + title.replace(/@/g, \"&#64;\") + \"\\\">\" + text.replace(/@/g, \"&#64;\") + \"</a>\";\n                    }\n                    \n                    if(title) {\n                        out+=' title=\"'+title+'\"'\n                    }\n                    \n                    out+=\">\"+text+\"</a>\";\n                    \n                    return out;\n                }\n                \n                markedRenderer.paragraph = function(text) {                \n                    console.log(\"paragraph =>\", text, atReg.test(text));\n                    return \"<p>\" + this.at(text) + \"</p>\\n\";\n                };\n                \n                markedRenderer.heading = function (text,level,raw){\n                    return\"<h\"+level+' id=\"'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\\w]+/g,\"-\")+'\">'+this.at(text)+\"</h\"+level+\">\\n\"\n                };\n                \n                markedRenderer.listitem = function (text){\n                    return \"<li>\" + this.at(text) + \"</li>\\n\";\n                };\n                \n                markedRenderer.tablecell = function (content,flags){\n                    console.log(content);\n                    var type=flags.header?\"th\":\"td\";\n                    var tag=flags.align?\"<\"+type+' style=\"text-align:'+flags.align+'\">':\"<\"+type+\">\";\n                    return tag+this.at(content)+\"</\"+type+\">\\n\";\n                }\n            \n                marked.setOptions({\n                    renderer    : markedRenderer,\n                    gfm         : true,\n                    tables      : true,\n                    breaks      : true,\n                    pedantic    : false,\n                    smartLists  : true,\n                    smartypants : true\n                });\n                \n                var markdown = $(\"#test\").html();\n                \n                var md = marked(markdown);\n                //console.log(markdown);\n                \n                $(\"body\").append(md);\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/marked-emoji-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>Marked Emoji Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../dist/css/editormd.min.css\" />\n        <style>\n            body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,\n            article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {\n                margin:0;\n                padding:0;\n            }\n\n            article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {display: block;}\n            audio, canvas, video {display: inline-block;} \n\n            body, button, input, select, textarea {font:12px/1.5 Tahoma, \"Hiragino Sans GB\", \"Microsoft Yahei\", Arial;}\n            body{font-size:12px;color:#666;background:#fff url(../images/) no-repeat left top;}\n\n            body{font-size:14px;color:#444;font-family:\"微软雅黑\",Arial;background:#fff;padding: 15px;}\n\n            a{color:#444;text-decoration: none;}\n            a:hover{color:#065BC2;text-decoration: none;}\n\n            .clear{zoom:1;}\n            .clear:after{content:\"\";height:0;visibility:hidden;clear:both;display:block;}\n\n            img{border:none;vertical-align: middle;}\n            \n            ul, ol {margin-left: 18px;}\n            \n            table {\n                margin: 10px 0;\n                border-collapse: collapse;\n            }\n            \n            table th, table td {\n                padding: 5px 8px;\n                border: 1px solid #ddd;\n            }\n            \n            pre {\n                padding:8px;border-radius:3px;border:1px solid #ddd;background:#f6f6f6;margin: 15px 0;display: inline-block;\n            }\n            \n            pre code {\n                \n            }\n            \n            .editormd-logo,\n            .editormd-logo-4x {\n                font-family: editormd-logo;\n                speak: none;\n                font-style: normal;\n                font-weight: 400;\n                font-variant: normal;\n                text-transform: none;\n                font-size: inherit;\n                line-height: 1;\n                display: inline-block;\n                text-rendering: auto;\n                vertical-align: inherit;\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n            .editormd-logo:before,\n            .editormd-logo-4x:before {\n                content: \"\\e1987\";\n            }\n            .editormd-logo-4x {\n                font-size:4em;\n            }\n        </style>\n    </head>\n    <body>\n        <i class=\"editormd-logo editormd-logo-4x\"></i><br/>\n        <pre id=\"md\">&gt; Blockquotes\ndasfsadfasdf:fa-edit: :warning: :smiley:dsafsdfsad\\:fdsfdf\\:f dfdf:   :fa-save::fa-star:  :fa-truck:\n**fdfasd:smiley:dsfsdfsfd** ~~fsdfds:smiley:dfsdfsdf :fa-info:~~\n*dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf*\n___Emphasis :fa-gear: Italic:smiley:___  __Emphasis:smiley:__\n# H1 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf\n## H2 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf\n### H3 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf\n#### H4 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf\n##### H5 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-save:dsfsdf\n###### H6 dsfdfsfd:smiley:dsfsfdsfd:smiley:dsfdf:fa-edit: fdsfsdf:fa-star:dsfsdf\n[:smiley:](http://www.emoji-cheat-sheet.com/ \"link + emoji\") link + emoji\n- dafssdfsdaf:smiley:dfsdfsdf\n- dafssdfsdaf:smiley:dfsdfsdf     \n    - dafssdfsdaf:smiley:dfsdfsdf\n    - dafss:fa-truck:dfsdaf:smiley:dfsdfsdf\n- dafssd:  :fa-truck:fsdaf:smiley:dfsdfsdf :fa-star::  :fa-truck:\n    + dafssdfsdaf:smiley:dfsdfsdf\n    + dafss:fa-truck:dfsdaf:smiley:dfsdfsdf\n\n\n1. :smiley:第一行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-save::  :fa-truck:\n    - dafssdfsdaf:smiley:dfsdfsdf\n    - dafss:fa-truck:dfsdaf:smiley:dfsdfsdf\n2. :smiley:第二行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-star::  :fa-truck:\n3. 第三行:fa-truck:fsdaf:smiley:dfsdfsdf :fa-save::  :fa-truck:\n\n&gt; Blockquotes\n\n&gt; dd:smiley:引用文本(Blockquotes:smiley:)fdasfad :fa-star:: dfd :fa-truck:\n\n|:100: First Header  | Second:smiley: Header:smiley: |\n| ------------- | ------------- |\n| Content:fa-truck: Cell  | :smiley:Content Cell :smiley: |\n| Con:fa-truck:tent Cell:bangbang:  | Content Cell dfsdfsdf :fa-star: :dfdf  :fa-truck: |\n\n:fa-heart:fasdfsdfsfddffd:editormd-logo: :editormd-logo: :editormd-logo-4x:\n\n    dfasfasdfasdf:bangbang:\n\nThis is an H1 :editormd-logo-4x:\n=============\n\nThis  :fa-save::  :fa-truck:is an H2 :100:\n-------------\n</pre>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script type=\"text/javascript\">\n            \n            $(function() {\n                var markedRenderer     = new marked.Renderer();\n                var markdownToC        = markdownToC || [];\n                    var emojiReg = /:([\\-\\w]+):/g;\n                    var faIconReg = /:fa-([\\w]+):/g;\n                    var editormdLogoReg = /:(editormd-logo\\s?-?(\\w+)?):/g;\n                \n                console.log(\"markedRenderer =>\", markedRenderer);\n                \n                markedRenderer.emoji = function(text) {      \n                    console.log(\"emoji.text =>\", text);\n                    var matchs = text.match(emojiReg);\n                    console.log(matchs);\n                    \n                    if ( matchs)\n                    {\n                        for (var i = 0, len = matchs.length; i < len; i++)\n                        {\n                            text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                                var faMatchs = $1.match(faIconReg);\n                                //console.log(\"famatchs =>\", faMatchs);\n                                var name = $1.replace(/:/g, \"\"); // http://www.emoji-cheat-sheet.com/graphics/emojis/smile.png\n                                console.log(\"replace =>\", name, $1, $2);\n                                \n                                if (faMatchs)\n                                {\n                                    for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++)\n                                    {\n                                        return \"<i class=\\\"fa \"+faMatchs[fa].replace(/:/g, \"\")+\"\\\"></i>\";\n                                    }\n                                }\n                                else\n                                {\n                                    var emdlogoMathcs = $1.match(editormdLogoReg);\n                                    \n                                    if (emdlogoMathcs)                                        \n                                    {\n                                        for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++)\n                                        {\n                                            return \"<i class=\\\"\"+emdlogoMathcs[x].replace(/:/g, \"\")+\"\\\"></i>\";\n                                        }\n                                    }\n                                    else\n                                    {\n                                        return \"<img src=\\\"http://www.emoji-cheat-sheet.com/graphics/emojis/\"+name+\".png\\\" />\";\n                                    }\n                                }\n                                //return (faIconReg.test($1)) ? \"<i class=\\\"fa \"+name+\"\\\"></i>\" : (editormdLogoReg.test($1)) ? \"<i class=\\\"\"+name+\"\\\"></i>\" : \"<img src=\\\"http://www.emoji-cheat-sheet.com/graphics/emojis/\"+name+\".png\\\" />\";\n                            });\n                        }\n\n                        console.log(emojiReg.exec(text));\n                        console.log(text, emojiReg.test(text), faIconReg.test(text));\n                    }\n                    \n                    return text;\n                };\n                \n                markedRenderer.blockquote = function (quote){\n                    console.log(\"quote =>\", quote);\n                    return \"<blockquote>\\n\"+quote+\"</blockquote>\\n\";\n                };\n                \n                markedRenderer.tablecell = function (content,flags){\n                    console.log(content);\n                    var type=flags.header?\"th\":\"td\";\n                    var tag=flags.align?\"<\"+type+' style=\"text-align:'+flags.align+'\">':\"<\"+type+\">\";\n                    return tag+this.emoji(content)+\"</\"+type+\">\\n\";\n                }\n                \n                markedRenderer.heading = function (text,level,raw){\n                    return\"<h\"+level+' id=\"'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\\w]+/g,\"-\")+'\">'+this.emoji(text)+\"</h\"+level+\">\\n\"\n                };\n                \n                markedRenderer.listitem = function (text){\n                    return \"<li>\" + this.emoji(text) + \"</li>\\n\";\n                };\n                \n                markedRenderer.paragraph = function(text) {\n                \n                    console.log(\"paragraph =>\", text, text.match(emojiReg));\n                    return \"<p>\" + this.emoji(text) + \"</p>\\n\";\n                };\n                \n                marked.setOptions({\n                    renderer    : markedRenderer,\n                    gfm         : true,\n                    tables      : true,\n                    breaks      : true,\n                    pedantic    : false,\n                    smartLists  : true,\n                    smartypants : true\n                });\n                \n                var mdsrc = $(\"#md\").html();\n                var md = marked(mdsrc);\n                //console.log(mdsrc);\n                \n                $(\"body\").append(md);\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/marked-heading-link-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>Marked heading link Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../examples/css/style.css\" />\n    </head>\n    <body>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script type=\"text/javascript\">\n                \n            var linkReg = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n            var linkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n            \n            var testLink = \"<a href=\\\"http://daringfireball.net/projects/markdown/basics\\\" title=\\\"Markdown Basics\\\">Markdown Basics</a> \";\n            var testLink2 = \"<a href=\\\"http://daringfireball.net/projects/markdown/basics\\\" title=\\\"Xdfsdf\\\">Xdfsdf</a> \";\n            var testLink3 = \"<a href=\\\"\\\" title=\\\"\\\"></a> \";\n            var texts = (testLink + testLink2 + testLink3).split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n            \n            console.log(texts);\n            \n            for (var i = 0, len = texts.length; i < len; i++)\n            {\n                if((i+1) % 3 == 0) console.log(texts[i]);\n            }\n            \n            (testLink + testLink2).replace(linkTextReg, function(){\n                //console.log($1, $2);\n                //console.log(\"linkText =>\", $3);\n                console.log(arguments);\n            });\n            \n            testLink.replace(linkTextReg, function($1, $2, $3){\n                console.log($1, $2, $3);\n            });\n            \n            console.log(linkReg.test(\" <a name=\\\"dddd\\\" class=\\\"link\\\" style=\\\"color:red;\\\">Markdown Basics</a> \"));\n            \n            console.log(linkReg.test(\"<a name=\\\"dddd\\\" href=\\\"http://daringfireball.com/projects/markdown/basics\\\" class=\\\"link\\\" style=\\\"color:red;\\\">Markdown Basics</a> \"));\n            \n            console.log(linkReg.test(\"<a  href=\\\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\\\"   title=\\\"dddd\\\" class=\\\"link\\\" style=\\\"color:red;\\\">Markdown Basics</a> \"));\n            \n            console.log(linkReg.test(\"<a  href=\\\"http://daringfireball.net/projects/markdown/basics\\\"   title=\\\"dddd\\\"><span>Markdown Basics</span></a> \"));\n            \n            console.log(linkReg.test(\"<a  href=\\\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\\\"   title=\\\"dddd\\\"><span class=\\\"active\\\">Markdown Basics</span></a> \"));\n            console.log(linkReg.test(\"<a  href=\\\"http://www.fdasfasdfsdaf.com/projects/markdown/basics\\\"   title=\\\"dddd\\\"><a href=\\\"#ddd\\\" class=\\\"active\\\">Markdown Basics</a></a> \"));\n            console.log(linkReg.test(\"afdsfasfsadf<a  href=\\\"http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526\\\"   title=\\\"dddd\\\"><a href=\\\"#ddd\\\" class=\\\"active\\\">Markdown Basics</a></a> fdasfasdfadsfsfd <a  href=\\\"http://daringfireball.net/projects/markdown/basics\\\"   title=\\\"dddd\\\"><span>Markdown Basics</span></a>\"));\n            \n            $(function() {\n                var markedRenderer     = new marked.Renderer();\n                var markdownToC        = markdownToC || [];\n\n                markedRenderer.heading = function(text, level, raw) {\n                    \n                    var linkText       = text;\n                    var hasLinkReg     = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n                    var getLinkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n                    \n                    if (hasLinkReg) {\n                        var tempText = [];\n                        text = text.split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n\n                        console.log(text);\n\n                        for (var i = 0, len = text.length; i < len; i++)\n                        {\n                            if((i+1) % 3 == 0) tempText.push(text[i]);\n                        }    \n                        \n                        text = tempText.join(\" \");\n                    }         \n                    \n                    var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n                    var toc = {\n                        text : text,\n                        level : level,\n                        slug  : escapedText\n                    };\n                    \n                    console.log(\"text =>\", text);\n\n                    var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n                    var id = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n                    markdownToC.push(toc);\n                    \n                    console.log(\"toc =>\", toc);\n                    \n                    var headingHTML = \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n\n                    /*return \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\" +\n                           \"<a href=\\\"#\" + text + \"\\\" name=\\\"\" + text + \"\\\" class=\\\"anchor\\\"></a>\" +\n                           \"<span class=\\\"header-link\\\"></span>\" + text + \"</h\" + level + \">\";*/\n                    \n                    var anchor = \"<a name=\\\"\" + text + \"\\\" class=\\\"anchor\\\"></a>\";\n                    \n                    headingHTML += anchor;\n                    \n                    headingHTML += \"<span class=\\\"header-link\\\"></span>\";\n                    \n                    headingHTML += (hasLinkReg) ? linkText : text;\n                    \n                    headingHTML += \"</h\" + level + \">\";\n                    \n                    return headingHTML;\n                    \n                };\n            \n                marked.setOptions({\n                    renderer    : markedRenderer,\n                    gfm         : true,\n                    tables      : true,\n                    breaks      : true,\n                    pedantic    : false,\n                    smartLists  : true,\n                    smartypants : true\n                });\n                \n                var md = marked(\"## [Markdown Basics](http://daringfireball.net/projects/markdown/basics \\\"Markdown Basics\\\")\");\n                console.log(md);\n                \n                var md2 = marked(\"## fdasfsd [Markdown Basics](http://daringfireball.net/projects/markdown/basics \\\"Markdown Basics\\\") xxx  [Editor.md](http://daringfireball.net/projects/markdown/basics \\\"Editor.md\\\") fadsfasdfasdf\");\n                console.log(md2);\n                \n                var md3 = marked(\"### fdasfsd中文链接 [中文链接](http://daringfireball.net/projects/markdown/basics \\\"中文链接\\\") xxx 中文链接 [Editor.md 在线Markdown编辑器](http://daringfireball.net/projects/markdown/basics \\\"Editor.md 在线Markdown编辑器\\\") fadsfasdfasdf中文链接\");\n                console.log(md3);\n                \n                var md4 = marked(\"#### fdasfsd [Markdown Basics](http://daringfireball.net/projects/markdown/basics?xx=ddd&fddf&temp=265656565665656526 \\\"Markdown Basics\\\") xxx  [Editor.md](http://www.ipandao.com/#xxxxx \\\"Editor.md\\\") fadsfasdfasdf\");\n                console.log(md4);\n                \n                $(\"body\").append(md).append(md2).append(md3).append(md4);\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/marked-todo-list-test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh\">\n    <head>\n        <title>Marked Emoji Test</title>\n        <meta charset=\"UTF-8\">\n        <meta name=\"description\" content=\"\" />\n        <meta name=\"keywords\" content=\"\" />\n        <link rel=\"stylesheet\" href=\"../examples/css/style.css\" />\n    </head>\n    <body>\n        <script src=\"../examples/js/jquery.min.js\"></script>\n        <script src=\"../lib/marked.min.js\"></script>\n        <script type=\"text/javascript\">\n            \n            $(function() {\n                var markedRenderer     = new marked.Renderer();\n                var markdownToC        = markdownToC || [];\n                \n                console.log(\"markedRenderer =>\", markedRenderer);\n                \n                markedRenderer.listitem = function(text) {\n                    if (/^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n                    {\n                        console.log(\"is todo list =>\", text);\n                        text = text.replace(/^\\s*\\[\\s\\]\\s*/, '<input type=\"checkbox\" class=\"task-list-item-checkbox\"> ')\n                                   .replace(/^\\s*\\[x\\]\\s*/, '<input type=\"checkbox\" class=\"task-list-item-checkbox\" checked disabled /> ');\n                        \n                        return '<li style=\"list-style: none\">' + text + '</li>';\n                    }\n                    else \n                    {\n                        return '<li>' + text + '</li>';\n                    }\n                };\n            \n                marked.setOptions({\n                    renderer    : markedRenderer,\n                    gfm         : true,\n                    tables      : true,\n                    breaks      : true,\n                    pedantic    : false,\n                    smartLists  : true,\n                    smartypants : true\n                });\n                \n                var todoListMarkdown = [\n                    \"- [x] @mentions, #refs, [links](), **formatting**, and <del>tags</del> supported;\",\n                    \"- [x] list syntax required (any unordered or ordered list supported);\",\n                    \"- [x] this is a complete item;\",\n                    \"- [ ] this is an incomplete item;\",\n                    \"- [ ] this is an incomplete item;\"\n                ].join(\"\\n\");\n                \n                var md = marked(todoListMarkdown);\n                console.log(md);\n                \n                $(\"body\").append(md);\n            });\n        </script>\n    </body>\n</html>"
  },
  {
    "path": "public/static/home/editormd/tests/qunit/qunit-1.16.0.css",
    "content": "/*!\n * QUnit 1.16.0\n * http://qunitjs.com/\n *\n * Copyright 2006, 2014 jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-03T16:32Z\n */\n\n/** Font Family and Sizes */\n\n#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {\n\tfont-family: \"Helvetica Neue Light\", \"HelveticaNeue-Light\", \"Helvetica Neue\", Calibri, Helvetica, Arial, sans-serif;\n}\n\n#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }\n#qunit-tests { font-size: smaller; }\n\n\n/** Resets */\n\n#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n\n/** Header */\n\n#qunit-header {\n\tpadding: 0.5em 0 0.5em 1em;\n\n\tcolor: #8699A4;\n\tbackground-color: #0D3349;\n\n\tfont-size: 1.5em;\n\tline-height: 1em;\n\tfont-weight: 400;\n\n\tborder-radius: 5px 5px 0 0;\n}\n\n#qunit-header a {\n\ttext-decoration: none;\n\tcolor: #C2CCD1;\n}\n\n#qunit-header a:hover,\n#qunit-header a:focus {\n\tcolor: #FFF;\n}\n\n#qunit-testrunner-toolbar label {\n\tdisplay: inline-block;\n\tpadding: 0 0.5em 0 0.1em;\n}\n\n#qunit-banner {\n\theight: 5px;\n}\n\n#qunit-testrunner-toolbar {\n\tpadding: 0.5em 1em 0.5em 1em;\n\tcolor: #5E740B;\n\tbackground-color: #EEE;\n\toverflow: hidden;\n}\n\n#qunit-userAgent {\n\tpadding: 0.5em 1em 0.5em 1em;\n\tbackground-color: #2B81AF;\n\tcolor: #FFF;\n\ttext-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;\n}\n\n#qunit-modulefilter-container {\n\tfloat: right;\n}\n\n/** Tests: Pass/Fail */\n\n#qunit-tests {\n\tlist-style-position: inside;\n}\n\n#qunit-tests li {\n\tpadding: 0.4em 1em 0.4em 1em;\n\tborder-bottom: 1px solid #FFF;\n\tlist-style-position: inside;\n}\n\n#qunit-tests > li {\n\tdisplay: none;\n}\n\n#qunit-tests li.pass, #qunit-tests li.running, #qunit-tests li.fail {\n\tdisplay: list-item;\n}\n\n#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {\n\tdisplay: none;\n}\n\n#qunit-tests li strong {\n\tcursor: pointer;\n}\n\n#qunit-tests li.skipped strong {\n\tcursor: default;\n}\n\n#qunit-tests li a {\n\tpadding: 0.5em;\n\tcolor: #C2CCD1;\n\ttext-decoration: none;\n}\n#qunit-tests li a:hover,\n#qunit-tests li a:focus {\n\tcolor: #000;\n}\n\n#qunit-tests li .runtime {\n\tfloat: right;\n\tfont-size: smaller;\n}\n\n.qunit-assert-list {\n\tmargin-top: 0.5em;\n\tpadding: 0.5em;\n\n\tbackground-color: #FFF;\n\n\tborder-radius: 5px;\n}\n\n.qunit-collapsed {\n\tdisplay: none;\n}\n\n#qunit-tests table {\n\tborder-collapse: collapse;\n\tmargin-top: 0.2em;\n}\n\n#qunit-tests th {\n\ttext-align: right;\n\tvertical-align: top;\n\tpadding: 0 0.5em 0 0;\n}\n\n#qunit-tests td {\n\tvertical-align: top;\n}\n\n#qunit-tests pre {\n\tmargin: 0;\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n}\n\n#qunit-tests del {\n\tbackground-color: #E0F2BE;\n\tcolor: #374E0C;\n\ttext-decoration: none;\n}\n\n#qunit-tests ins {\n\tbackground-color: #FFCACA;\n\tcolor: #500;\n\ttext-decoration: none;\n}\n\n/*** Test Counts */\n\n#qunit-tests b.counts                       { color: #000; }\n#qunit-tests b.passed                       { color: #5E740B; }\n#qunit-tests b.failed                       { color: #710909; }\n\n#qunit-tests li li {\n\tpadding: 5px;\n\tbackground-color: #FFF;\n\tborder-bottom: none;\n\tlist-style-position: inside;\n}\n\n/*** Passing Styles */\n\n#qunit-tests li li.pass {\n\tcolor: #3C510C;\n\tbackground-color: #FFF;\n\tborder-left: 10px solid #C6E746;\n}\n\n#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }\n#qunit-tests .pass .test-name               { color: #366097; }\n\n#qunit-tests .pass .test-actual,\n#qunit-tests .pass .test-expected           { color: #999; }\n\n#qunit-banner.qunit-pass                    { background-color: #C6E746; }\n\n/*** Failing Styles */\n\n#qunit-tests li li.fail {\n\tcolor: #710909;\n\tbackground-color: #FFF;\n\tborder-left: 10px solid #EE5757;\n\twhite-space: pre;\n}\n\n#qunit-tests > li:last-child {\n\tborder-radius: 0 0 5px 5px;\n}\n\n#qunit-tests .fail                          { color: #000; background-color: #EE5757; }\n#qunit-tests .fail .test-name,\n#qunit-tests .fail .module-name             { color: #000; }\n\n#qunit-tests .fail .test-actual             { color: #EE5757; }\n#qunit-tests .fail .test-expected           { color: #008000; }\n\n#qunit-banner.qunit-fail                    { background-color: #EE5757; }\n\n/*** Skipped tests */\n\n#qunit-tests .skipped {\n\tbackground-color: #EBECE9;\n}\n\n#qunit-tests .qunit-skipped-label {\n\tbackground-color: #F4FF77;\n\tdisplay: inline-block;\n\tfont-style: normal;\n\tcolor: #366097;\n\tline-height: 1.8em;\n\tpadding: 0 0.5em;\n\tmargin: -0.4em 0.4em -0.4em 0;\n}\n\n/** Result */\n\n#qunit-testresult {\n\tpadding: 0.5em 1em 0.5em 1em;\n\n\tcolor: #2B81AF;\n\tbackground-color: #D2E0E6;\n\n\tborder-bottom: 1px solid #FFF;\n}\n#qunit-testresult .module-name {\n\tfont-weight: 700;\n}\n\n/** Fixture */\n\n#qunit-fixture {\n\tposition: absolute;\n\ttop: -10000px;\n\tleft: -10000px;\n\twidth: 1000px;\n\theight: 1000px;\n}\n"
  },
  {
    "path": "public/static/home/editormd/tests/qunit/qunit-1.16.0.js",
    "content": "/*!\n * QUnit 1.16.0\n * http://qunitjs.com/\n *\n * Copyright 2006, 2014 jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-03T16:32Z\n */\n\n(function( window ) {\n\nvar QUnit,\n\tconfig,\n\tonErrorFnPrev,\n\tloggingCallbacks = {},\n\tfileName = ( sourceFromStacktrace( 0 ) || \"\" ).replace( /(:\\d+)+\\)?/, \"\" ).replace( /.+\\//, \"\" ),\n\ttoString = Object.prototype.toString,\n\thasOwn = Object.prototype.hasOwnProperty,\n\t// Keep a local reference to Date (GH-283)\n\tDate = window.Date,\n\tnow = Date.now || function() {\n\t\treturn new Date().getTime();\n\t},\n\tglobalStartCalled = false,\n\trunStarted = false,\n\tsetTimeout = window.setTimeout,\n\tclearTimeout = window.clearTimeout,\n\tdefined = {\n\t\tdocument: window.document !== undefined,\n\t\tsetTimeout: window.setTimeout !== undefined,\n\t\tsessionStorage: (function() {\n\t\t\tvar x = \"qunit-test-string\";\n\t\t\ttry {\n\t\t\t\tsessionStorage.setItem( x, x );\n\t\t\t\tsessionStorage.removeItem( x );\n\t\t\t\treturn true;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}())\n\t},\n\t/**\n\t * Provides a normalized error string, correcting an issue\n\t * with IE 7 (and prior) where Error.prototype.toString is\n\t * not properly implemented\n\t *\n\t * Based on http://es5.github.com/#x15.11.4.4\n\t *\n\t * @param {String|Error} error\n\t * @return {String} error message\n\t */\n\terrorString = function( error ) {\n\t\tvar name, message,\n\t\t\terrorString = error.toString();\n\t\tif ( errorString.substring( 0, 7 ) === \"[object\" ) {\n\t\t\tname = error.name ? error.name.toString() : \"Error\";\n\t\t\tmessage = error.message ? error.message.toString() : \"\";\n\t\t\tif ( name && message ) {\n\t\t\t\treturn name + \": \" + message;\n\t\t\t} else if ( name ) {\n\t\t\t\treturn name;\n\t\t\t} else if ( message ) {\n\t\t\t\treturn message;\n\t\t\t} else {\n\t\t\t\treturn \"Error\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn errorString;\n\t\t}\n\t},\n\t/**\n\t * Makes a clone of an object using only Array or Object as base,\n\t * and copies over the own enumerable properties.\n\t *\n\t * @param {Object} obj\n\t * @return {Object} New object with only the own properties (recursively).\n\t */\n\tobjectValues = function( obj ) {\n\t\tvar key, val,\n\t\t\tvals = QUnit.is( \"array\", obj ) ? [] : {};\n\t\tfor ( key in obj ) {\n\t\t\tif ( hasOwn.call( obj, key ) ) {\n\t\t\t\tval = obj[ key ];\n\t\t\t\tvals[ key ] = val === Object( val ) ? objectValues( val ) : val;\n\t\t\t}\n\t\t}\n\t\treturn vals;\n\t};\n\nQUnit = {};\n\n/**\n * Config object: Maintain internal state\n * Later exposed as QUnit.config\n * `config` initialized at top of scope\n */\nconfig = {\n\t// The queue of tests to run\n\tqueue: [],\n\n\t// block until document ready\n\tblocking: true,\n\n\t// when enabled, show only failing tests\n\t// gets persisted through sessionStorage and can be changed in UI via checkbox\n\thidepassed: false,\n\n\t// by default, run previously failed tests first\n\t// very useful in combination with \"Hide passed tests\" checked\n\treorder: true,\n\n\t// by default, modify document.title when suite is done\n\taltertitle: true,\n\n\t// by default, scroll to top of the page when suite is done\n\tscrolltop: true,\n\n\t// when enabled, all tests must call expect()\n\trequireExpects: false,\n\n\t// add checkboxes that are persisted in the query-string\n\t// when enabled, the id is set to `true` as a `QUnit.config` property\n\turlConfig: [\n\t\t{\n\t\t\tid: \"hidepassed\",\n\t\t\tlabel: \"Hide passed tests\",\n\t\t\ttooltip: \"Only show tests and assertions that fail. Stored as query-strings.\"\n\t\t},\n\t\t{\n\t\t\tid: \"noglobals\",\n\t\t\tlabel: \"Check for Globals\",\n\t\t\ttooltip: \"Enabling this will test if any test introduces new properties on the \" +\n\t\t\t\t\"`window` object. Stored as query-strings.\"\n\t\t},\n\t\t{\n\t\t\tid: \"notrycatch\",\n\t\t\tlabel: \"No try-catch\",\n\t\t\ttooltip: \"Enabling this will run tests outside of a try-catch block. Makes debugging \" +\n\t\t\t\t\"exceptions in IE reasonable. Stored as query-strings.\"\n\t\t}\n\t],\n\n\t// Set of all modules.\n\tmodules: [],\n\n\t// The first unnamed module\n\tcurrentModule: {\n\t\tname: \"\",\n\t\ttests: []\n\t},\n\n\tcallbacks: {}\n};\n\n// Push a loose unnamed module to the modules collection\nconfig.modules.push( config.currentModule );\n\n// Initialize more QUnit.config and QUnit.urlParams\n(function() {\n\tvar i, current,\n\t\tlocation = window.location || { search: \"\", protocol: \"file:\" },\n\t\tparams = location.search.slice( 1 ).split( \"&\" ),\n\t\tlength = params.length,\n\t\turlParams = {};\n\n\tif ( params[ 0 ] ) {\n\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\tcurrent = params[ i ].split( \"=\" );\n\t\t\tcurrent[ 0 ] = decodeURIComponent( current[ 0 ] );\n\n\t\t\t// allow just a key to turn on a flag, e.g., test.html?noglobals\n\t\t\tcurrent[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;\n\t\t\tif ( urlParams[ current[ 0 ] ] ) {\n\t\t\t\turlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );\n\t\t\t} else {\n\t\t\t\turlParams[ current[ 0 ] ] = current[ 1 ];\n\t\t\t}\n\t\t}\n\t}\n\n\tQUnit.urlParams = urlParams;\n\n\t// String search anywhere in moduleName+testName\n\tconfig.filter = urlParams.filter;\n\n\tconfig.testId = [];\n\tif ( urlParams.testId ) {\n\n\t\t// Ensure that urlParams.testId is an array\n\t\turlParams.testId = [].concat( urlParams.testId );\n\t\tfor ( i = 0; i < urlParams.testId.length; i++ ) {\n\t\t\tconfig.testId.push( urlParams.testId[ i ] );\n\t\t}\n\t}\n\n\t// Figure out if we're running the tests from a server or not\n\tQUnit.isLocal = location.protocol === \"file:\";\n}());\n\n// Root QUnit object.\n// `QUnit` initialized at top of scope\nextend( QUnit, {\n\n\t// call on start of module test to prepend name to all tests\n\tmodule: function( name, testEnvironment ) {\n\t\tvar currentModule = {\n\t\t\tname: name,\n\t\t\ttestEnvironment: testEnvironment,\n\t\t\ttests: []\n\t\t};\n\n\t\t// DEPRECATED: handles setup/teardown functions,\n\t\t// beforeEach and afterEach should be used instead\n\t\tif ( testEnvironment && testEnvironment.setup ) {\n\t\t\ttestEnvironment.beforeEach = testEnvironment.setup;\n\t\t\tdelete testEnvironment.setup;\n\t\t}\n\t\tif ( testEnvironment && testEnvironment.teardown ) {\n\t\t\ttestEnvironment.afterEach = testEnvironment.teardown;\n\t\t\tdelete testEnvironment.teardown;\n\t\t}\n\n\t\tconfig.modules.push( currentModule );\n\t\tconfig.currentModule = currentModule;\n\t},\n\n\t// DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0.\n\tasyncTest: function( testName, expected, callback ) {\n\t\tif ( arguments.length === 2 ) {\n\t\t\tcallback = expected;\n\t\t\texpected = null;\n\t\t}\n\n\t\tQUnit.test( testName, expected, callback, true );\n\t},\n\n\ttest: function( testName, expected, callback, async ) {\n\t\tvar test;\n\n\t\tif ( arguments.length === 2 ) {\n\t\t\tcallback = expected;\n\t\t\texpected = null;\n\t\t}\n\n\t\ttest = new Test({\n\t\t\ttestName: testName,\n\t\t\texpected: expected,\n\t\t\tasync: async,\n\t\t\tcallback: callback\n\t\t});\n\n\t\ttest.queue();\n\t},\n\n\tskip: function( testName ) {\n\t\tvar test = new Test({\n\t\t\ttestName: testName,\n\t\t\tskip: true\n\t\t});\n\n\t\ttest.queue();\n\t},\n\n\t// DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0.\n\t// In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior.\n\tstart: function( count ) {\n\t\tvar globalStartAlreadyCalled = globalStartCalled;\n\n\t\tif ( !config.current ) {\n\t\t\tglobalStartCalled = true;\n\n\t\t\tif ( runStarted ) {\n\t\t\t\tthrow new Error( \"Called start() outside of a test context while already started\" );\n\t\t\t} else if ( globalStartAlreadyCalled || count > 1 ) {\n\t\t\t\tthrow new Error( \"Called start() outside of a test context too many times\" );\n\t\t\t} else if ( config.autostart ) {\n\t\t\t\tthrow new Error( \"Called start() outside of a test context when \" +\n\t\t\t\t\t\"QUnit.config.autostart was true\" );\n\t\t\t} else if ( !config.pageLoaded ) {\n\n\t\t\t\t// The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it\n\t\t\t\tconfig.autostart = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// If a test is running, adjust its semaphore\n\t\t\tconfig.current.semaphore -= count || 1;\n\n\t\t\t// Don't start until equal number of stop-calls\n\t\t\tif ( config.current.semaphore > 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// throw an Error if start is called more often than stop\n\t\t\tif ( config.current.semaphore < 0 ) {\n\t\t\t\tconfig.current.semaphore = 0;\n\n\t\t\t\tQUnit.pushFailure(\n\t\t\t\t\t\"Called start() while already started (test's semaphore was 0 already)\",\n\t\t\t\t\tsourceFromStacktrace( 2 )\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tresumeProcessing();\n\t},\n\n\t// DEPRECATED: QUnit.stop() will be removed in QUnit 2.0.\n\tstop: function( count ) {\n\n\t\t// If there isn't a test running, don't allow QUnit.stop() to be called\n\t\tif ( !config.current ) {\n\t\t\tthrow new Error( \"Called stop() outside of a test context\" );\n\t\t}\n\n\t\t// If a test is running, adjust its semaphore\n\t\tconfig.current.semaphore += count || 1;\n\n\t\tpauseProcessing();\n\t},\n\n\tconfig: config,\n\n\t// Safe object type checking\n\tis: function( type, obj ) {\n\t\treturn QUnit.objectType( obj ) === type;\n\t},\n\n\tobjectType: function( obj ) {\n\t\tif ( typeof obj === \"undefined\" ) {\n\t\t\treturn \"undefined\";\n\t\t}\n\n\t\t// Consider: typeof null === object\n\t\tif ( obj === null ) {\n\t\t\treturn \"null\";\n\t\t}\n\n\t\tvar match = toString.call( obj ).match( /^\\[object\\s(.*)\\]$/ ),\n\t\t\ttype = match && match[ 1 ] || \"\";\n\n\t\tswitch ( type ) {\n\t\t\tcase \"Number\":\n\t\t\t\tif ( isNaN( obj ) ) {\n\t\t\t\t\treturn \"nan\";\n\t\t\t\t}\n\t\t\t\treturn \"number\";\n\t\t\tcase \"String\":\n\t\t\tcase \"Boolean\":\n\t\t\tcase \"Array\":\n\t\t\tcase \"Date\":\n\t\t\tcase \"RegExp\":\n\t\t\tcase \"Function\":\n\t\t\t\treturn type.toLowerCase();\n\t\t}\n\t\tif ( typeof obj === \"object\" ) {\n\t\t\treturn \"object\";\n\t\t}\n\t\treturn undefined;\n\t},\n\n\turl: function( params ) {\n\t\tparams = extend( extend( {}, QUnit.urlParams ), params );\n\t\tvar key,\n\t\t\tquerystring = \"?\";\n\n\t\tfor ( key in params ) {\n\t\t\tif ( hasOwn.call( params, key ) ) {\n\t\t\t\tquerystring += encodeURIComponent( key );\n\t\t\t\tif ( params[ key ] !== true ) {\n\t\t\t\t\tquerystring += \"=\" + encodeURIComponent( params[ key ] );\n\t\t\t\t}\n\t\t\t\tquerystring += \"&\";\n\t\t\t}\n\t\t}\n\t\treturn location.protocol + \"//\" + location.host +\n\t\t\tlocation.pathname + querystring.slice( 0, -1 );\n\t},\n\n\textend: extend,\n\n\tload: function() {\n\t\tconfig.pageLoaded = true;\n\n\t\t// Initialize the configuration options\n\t\textend( config, {\n\t\t\tstats: { all: 0, bad: 0 },\n\t\t\tmoduleStats: { all: 0, bad: 0 },\n\t\t\tstarted: 0,\n\t\t\tupdateRate: 1000,\n\t\t\tautostart: true,\n\t\t\tfilter: \"\"\n\t\t}, true );\n\n\t\tconfig.blocking = false;\n\n\t\tif ( config.autostart ) {\n\t\t\tresumeProcessing();\n\t\t}\n\t}\n});\n\n// Register logging callbacks\n(function() {\n\tvar i, l, key,\n\t\tcallbacks = [ \"begin\", \"done\", \"log\", \"testStart\", \"testDone\",\n\t\t\t\"moduleStart\", \"moduleDone\" ];\n\n\tfunction registerLoggingCallback( key ) {\n\t\tvar loggingCallback = function( callback ) {\n\t\t\tif ( QUnit.objectType( callback ) !== \"function\" ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"QUnit logging methods require a callback function as their first parameters.\"\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconfig.callbacks[ key ].push( callback );\n\t\t};\n\n\t\t// DEPRECATED: This will be removed on QUnit 2.0.0+\n\t\t// Stores the registered functions allowing restoring\n\t\t// at verifyLoggingCallbacks() if modified\n\t\tloggingCallbacks[ key ] = loggingCallback;\n\n\t\treturn loggingCallback;\n\t}\n\n\tfor ( i = 0, l = callbacks.length; i < l; i++ ) {\n\t\tkey = callbacks[ i ];\n\n\t\t// Initialize key collection of logging callback\n\t\tif ( QUnit.objectType( config.callbacks[ key ] ) === \"undefined\" ) {\n\t\t\tconfig.callbacks[ key ] = [];\n\t\t}\n\n\t\tQUnit[ key ] = registerLoggingCallback( key );\n\t}\n})();\n\n// `onErrorFnPrev` initialized at top of scope\n// Preserve other handlers\nonErrorFnPrev = window.onerror;\n\n// Cover uncaught exceptions\n// Returning true will suppress the default browser handler,\n// returning false will let it run.\nwindow.onerror = function( error, filePath, linerNr ) {\n\tvar ret = false;\n\tif ( onErrorFnPrev ) {\n\t\tret = onErrorFnPrev( error, filePath, linerNr );\n\t}\n\n\t// Treat return value as window.onerror itself does,\n\t// Only do our handling if not suppressed.\n\tif ( ret !== true ) {\n\t\tif ( QUnit.config.current ) {\n\t\t\tif ( QUnit.config.current.ignoreGlobalErrors ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tQUnit.pushFailure( error, filePath + \":\" + linerNr );\n\t\t} else {\n\t\t\tQUnit.test( \"global failure\", extend(function() {\n\t\t\t\tQUnit.pushFailure( error, filePath + \":\" + linerNr );\n\t\t\t}, { validTest: true } ) );\n\t\t}\n\t\treturn false;\n\t}\n\n\treturn ret;\n};\n\nfunction done() {\n\tvar runtime, passed;\n\n\tconfig.autorun = true;\n\n\t// Log the last module results\n\tif ( config.previousModule ) {\n\t\trunLoggingCallbacks( \"moduleDone\", {\n\t\t\tname: config.previousModule.name,\n\t\t\ttests: config.previousModule.tests,\n\t\t\tfailed: config.moduleStats.bad,\n\t\t\tpassed: config.moduleStats.all - config.moduleStats.bad,\n\t\t\ttotal: config.moduleStats.all,\n\t\t\truntime: now() - config.moduleStats.started\n\t\t});\n\t}\n\tdelete config.previousModule;\n\n\truntime = now() - config.started;\n\tpassed = config.stats.all - config.stats.bad;\n\n\trunLoggingCallbacks( \"done\", {\n\t\tfailed: config.stats.bad,\n\t\tpassed: passed,\n\t\ttotal: config.stats.all,\n\t\truntime: runtime\n\t});\n}\n\n// Doesn't support IE6 to IE9\n// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack\nfunction extractStacktrace( e, offset ) {\n\toffset = offset === undefined ? 4 : offset;\n\n\tvar stack, include, i;\n\n\tif ( e.stacktrace ) {\n\n\t\t// Opera 12.x\n\t\treturn e.stacktrace.split( \"\\n\" )[ offset + 3 ];\n\t} else if ( e.stack ) {\n\n\t\t// Firefox, Chrome, Safari 6+, IE10+, PhantomJS and Node\n\t\tstack = e.stack.split( \"\\n\" );\n\t\tif ( /^error$/i.test( stack[ 0 ] ) ) {\n\t\t\tstack.shift();\n\t\t}\n\t\tif ( fileName ) {\n\t\t\tinclude = [];\n\t\t\tfor ( i = offset; i < stack.length; i++ ) {\n\t\t\t\tif ( stack[ i ].indexOf( fileName ) !== -1 ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tinclude.push( stack[ i ] );\n\t\t\t}\n\t\t\tif ( include.length ) {\n\t\t\t\treturn include.join( \"\\n\" );\n\t\t\t}\n\t\t}\n\t\treturn stack[ offset ];\n\t} else if ( e.sourceURL ) {\n\n\t\t// Safari < 6\n\t\t// exclude useless self-reference for generated Error objects\n\t\tif ( /qunit.js$/.test( e.sourceURL ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// for actual exceptions, this is useful\n\t\treturn e.sourceURL + \":\" + e.line;\n\t}\n}\n\nfunction sourceFromStacktrace( offset ) {\n\tvar e = new Error();\n\tif ( !e.stack ) {\n\t\ttry {\n\t\t\tthrow e;\n\t\t} catch ( err ) {\n\t\t\t// This should already be true in most browsers\n\t\t\te = err;\n\t\t}\n\t}\n\treturn extractStacktrace( e, offset );\n}\n\nfunction synchronize( callback, last ) {\n\tif ( QUnit.objectType( callback ) === \"array\" ) {\n\t\twhile ( callback.length ) {\n\t\t\tsynchronize( callback.shift() );\n\t\t}\n\t\treturn;\n\t}\n\tconfig.queue.push( callback );\n\n\tif ( config.autorun && !config.blocking ) {\n\t\tprocess( last );\n\t}\n}\n\nfunction process( last ) {\n\tfunction next() {\n\t\tprocess( last );\n\t}\n\tvar start = now();\n\tconfig.depth = config.depth ? config.depth + 1 : 1;\n\n\twhile ( config.queue.length && !config.blocking ) {\n\t\tif ( !defined.setTimeout || config.updateRate <= 0 ||\n\t\t\t\t( ( now() - start ) < config.updateRate ) ) {\n\t\t\tif ( config.current ) {\n\n\t\t\t\t// Reset async tracking for each phase of the Test lifecycle\n\t\t\t\tconfig.current.usedAsync = false;\n\t\t\t}\n\t\t\tconfig.queue.shift()();\n\t\t} else {\n\t\t\tsetTimeout( next, 13 );\n\t\t\tbreak;\n\t\t}\n\t}\n\tconfig.depth--;\n\tif ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {\n\t\tdone();\n\t}\n}\n\nfunction begin() {\n\tvar i, l,\n\t\tmodulesLog = [];\n\n\t// If the test run hasn't officially begun yet\n\tif ( !config.started ) {\n\n\t\t// Record the time of the test run's beginning\n\t\tconfig.started = now();\n\n\t\tverifyLoggingCallbacks();\n\n\t\t// Delete the loose unnamed module if unused.\n\t\tif ( config.modules[ 0 ].name === \"\" && config.modules[ 0 ].tests.length === 0 ) {\n\t\t\tconfig.modules.shift();\n\t\t}\n\n\t\t// Avoid unnecessary information by not logging modules' test environments\n\t\tfor ( i = 0, l = config.modules.length; i < l; i++ ) {\n\t\t\tmodulesLog.push({\n\t\t\t\tname: config.modules[ i ].name,\n\t\t\t\ttests: config.modules[ i ].tests\n\t\t\t});\n\t\t}\n\n\t\t// The test run is officially beginning now\n\t\trunLoggingCallbacks( \"begin\", {\n\t\t\ttotalTests: Test.count,\n\t\t\tmodules: modulesLog\n\t\t});\n\t}\n\n\tconfig.blocking = false;\n\tprocess( true );\n}\n\nfunction resumeProcessing() {\n\trunStarted = true;\n\n\t// A slight delay to allow this iteration of the event loop to finish (more assertions, etc.)\n\tif ( defined.setTimeout ) {\n\t\tsetTimeout(function() {\n\t\t\tif ( config.current && config.current.semaphore > 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( config.timeout ) {\n\t\t\t\tclearTimeout( config.timeout );\n\t\t\t}\n\n\t\t\tbegin();\n\t\t}, 13 );\n\t} else {\n\t\tbegin();\n\t}\n}\n\nfunction pauseProcessing() {\n\tconfig.blocking = true;\n\n\tif ( config.testTimeout && defined.setTimeout ) {\n\t\tclearTimeout( config.timeout );\n\t\tconfig.timeout = setTimeout(function() {\n\t\t\tif ( config.current ) {\n\t\t\t\tconfig.current.semaphore = 0;\n\t\t\t\tQUnit.pushFailure( \"Test timed out\", sourceFromStacktrace( 2 ) );\n\t\t\t} else {\n\t\t\t\tthrow new Error( \"Test timed out\" );\n\t\t\t}\n\t\t\tresumeProcessing();\n\t\t}, config.testTimeout );\n\t}\n}\n\nfunction saveGlobal() {\n\tconfig.pollution = [];\n\n\tif ( config.noglobals ) {\n\t\tfor ( var key in window ) {\n\t\t\tif ( hasOwn.call( window, key ) ) {\n\t\t\t\t// in Opera sometimes DOM element ids show up here, ignore them\n\t\t\t\tif ( /^qunit-test-output/.test( key ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconfig.pollution.push( key );\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction checkPollution() {\n\tvar newGlobals,\n\t\tdeletedGlobals,\n\t\told = config.pollution;\n\n\tsaveGlobal();\n\n\tnewGlobals = diff( config.pollution, old );\n\tif ( newGlobals.length > 0 ) {\n\t\tQUnit.pushFailure( \"Introduced global variable(s): \" + newGlobals.join( \", \" ) );\n\t}\n\n\tdeletedGlobals = diff( old, config.pollution );\n\tif ( deletedGlobals.length > 0 ) {\n\t\tQUnit.pushFailure( \"Deleted global variable(s): \" + deletedGlobals.join( \", \" ) );\n\t}\n}\n\n// returns a new Array with the elements that are in a but not in b\nfunction diff( a, b ) {\n\tvar i, j,\n\t\tresult = a.slice();\n\n\tfor ( i = 0; i < result.length; i++ ) {\n\t\tfor ( j = 0; j < b.length; j++ ) {\n\t\t\tif ( result[ i ] === b[ j ] ) {\n\t\t\t\tresult.splice( i, 1 );\n\t\t\t\ti--;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction extend( a, b, undefOnly ) {\n\tfor ( var prop in b ) {\n\t\tif ( hasOwn.call( b, prop ) ) {\n\n\t\t\t// Avoid \"Member not found\" error in IE8 caused by messing with window.constructor\n\t\t\tif ( !( prop === \"constructor\" && a === window ) ) {\n\t\t\t\tif ( b[ prop ] === undefined ) {\n\t\t\t\t\tdelete a[ prop ];\n\t\t\t\t} else if ( !( undefOnly && typeof a[ prop ] !== \"undefined\" ) ) {\n\t\t\t\t\ta[ prop ] = b[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a;\n}\n\nfunction runLoggingCallbacks( key, args ) {\n\tvar i, l, callbacks;\n\n\tcallbacks = config.callbacks[ key ];\n\tfor ( i = 0, l = callbacks.length; i < l; i++ ) {\n\t\tcallbacks[ i ]( args );\n\t}\n}\n\n// DEPRECATED: This will be removed on 2.0.0+\n// This function verifies if the loggingCallbacks were modified by the user\n// If so, it will restore it, assign the given callback and print a console warning\nfunction verifyLoggingCallbacks() {\n\tvar loggingCallback, userCallback;\n\n\tfor ( loggingCallback in loggingCallbacks ) {\n\t\tif ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) {\n\n\t\t\tuserCallback = QUnit[ loggingCallback ];\n\n\t\t\t// Restore the callback function\n\t\t\tQUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ];\n\n\t\t\t// Assign the deprecated given callback\n\t\t\tQUnit[ loggingCallback ]( userCallback );\n\n\t\t\tif ( window.console && window.console.warn ) {\n\t\t\t\twindow.console.warn(\n\t\t\t\t\t\"QUnit.\" + loggingCallback + \" was replaced with a new value.\\n\" +\n\t\t\t\t\t\"Please, check out the documentation on how to apply logging callbacks.\\n\" +\n\t\t\t\t\t\"Reference: http://api.qunitjs.com/category/callbacks/\"\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n\n// from jquery.js\nfunction inArray( elem, array ) {\n\tif ( array.indexOf ) {\n\t\treturn array.indexOf( elem );\n\t}\n\n\tfor ( var i = 0, length = array.length; i < length; i++ ) {\n\t\tif ( array[ i ] === elem ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n}\n\nfunction Test( settings ) {\n\tvar i, l;\n\n\t++Test.count;\n\n\textend( this, settings );\n\tthis.assertions = [];\n\tthis.semaphore = 0;\n\tthis.usedAsync = false;\n\tthis.module = config.currentModule;\n\tthis.stack = sourceFromStacktrace( 3 );\n\n\t// Register unique strings\n\tfor ( i = 0, l = this.module.tests; i < l.length; i++ ) {\n\t\tif ( this.module.tests[ i ].name === this.testName ) {\n\t\t\tthis.testName += \" \";\n\t\t}\n\t}\n\n\tthis.testId = generateHash( this.module.name, this.testName );\n\n\tthis.module.tests.push({\n\t\tname: this.testName,\n\t\ttestId: this.testId\n\t});\n\n\tif ( settings.skip ) {\n\n\t\t// Skipped tests will fully ignore any sent callback\n\t\tthis.callback = function() {};\n\t\tthis.async = false;\n\t\tthis.expected = 0;\n\t} else {\n\t\tthis.assert = new Assert( this );\n\t}\n}\n\nTest.count = 0;\n\nTest.prototype = {\n\tbefore: function() {\n\t\tif (\n\n\t\t\t// Emit moduleStart when we're switching from one module to another\n\t\t\tthis.module !== config.previousModule ||\n\n\t\t\t\t// They could be equal (both undefined) but if the previousModule property doesn't\n\t\t\t\t// yet exist it means this is the first test in a suite that isn't wrapped in a\n\t\t\t\t// module, in which case we'll just emit a moduleStart event for 'undefined'.\n\t\t\t\t// Without this, reporters can get testStart before moduleStart  which is a problem.\n\t\t\t\t!hasOwn.call( config, \"previousModule\" )\n\t\t) {\n\t\t\tif ( hasOwn.call( config, \"previousModule\" ) ) {\n\t\t\t\trunLoggingCallbacks( \"moduleDone\", {\n\t\t\t\t\tname: config.previousModule.name,\n\t\t\t\t\ttests: config.previousModule.tests,\n\t\t\t\t\tfailed: config.moduleStats.bad,\n\t\t\t\t\tpassed: config.moduleStats.all - config.moduleStats.bad,\n\t\t\t\t\ttotal: config.moduleStats.all,\n\t\t\t\t\truntime: now() - config.moduleStats.started\n\t\t\t\t});\n\t\t\t}\n\t\t\tconfig.previousModule = this.module;\n\t\t\tconfig.moduleStats = { all: 0, bad: 0, started: now() };\n\t\t\trunLoggingCallbacks( \"moduleStart\", {\n\t\t\t\tname: this.module.name,\n\t\t\t\ttests: this.module.tests\n\t\t\t});\n\t\t}\n\n\t\tconfig.current = this;\n\n\t\tthis.testEnvironment = extend( {}, this.module.testEnvironment );\n\t\tdelete this.testEnvironment.beforeEach;\n\t\tdelete this.testEnvironment.afterEach;\n\n\t\tthis.started = now();\n\t\trunLoggingCallbacks( \"testStart\", {\n\t\t\tname: this.testName,\n\t\t\tmodule: this.module.name,\n\t\t\ttestId: this.testId\n\t\t});\n\n\t\tif ( !config.pollution ) {\n\t\t\tsaveGlobal();\n\t\t}\n\t},\n\n\trun: function() {\n\t\tvar promise;\n\n\t\tconfig.current = this;\n\n\t\tif ( this.async ) {\n\t\t\tQUnit.stop();\n\t\t}\n\n\t\tthis.callbackStarted = now();\n\n\t\tif ( config.notrycatch ) {\n\t\t\tpromise = this.callback.call( this.testEnvironment, this.assert );\n\t\t\tthis.resolvePromise( promise );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tpromise = this.callback.call( this.testEnvironment, this.assert );\n\t\t\tthis.resolvePromise( promise );\n\t\t} catch ( e ) {\n\t\t\tthis.pushFailure( \"Died on test #\" + ( this.assertions.length + 1 ) + \" \" +\n\t\t\t\tthis.stack + \": \" + ( e.message || e ), extractStacktrace( e, 0 ) );\n\n\t\t\t// else next test will carry the responsibility\n\t\t\tsaveGlobal();\n\n\t\t\t// Restart the tests if they're blocking\n\t\t\tif ( config.blocking ) {\n\t\t\t\tQUnit.start();\n\t\t\t}\n\t\t}\n\t},\n\n\tafter: function() {\n\t\tcheckPollution();\n\t},\n\n\tqueueHook: function( hook, hookName ) {\n\t\tvar promise,\n\t\t\ttest = this;\n\t\treturn function runHook() {\n\t\t\tconfig.current = test;\n\t\t\tif ( config.notrycatch ) {\n\t\t\t\tpromise = hook.call( test.testEnvironment, test.assert );\n\t\t\t\ttest.resolvePromise( promise, hookName );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tpromise = hook.call( test.testEnvironment, test.assert );\n\t\t\t\ttest.resolvePromise( promise, hookName );\n\t\t\t} catch ( error ) {\n\t\t\t\ttest.pushFailure( hookName + \" failed on \" + test.testName + \": \" +\n\t\t\t\t\t( error.message || error ), extractStacktrace( error, 0 ) );\n\t\t\t}\n\t\t};\n\t},\n\n\t// Currently only used for module level hooks, can be used to add global level ones\n\thooks: function( handler ) {\n\t\tvar hooks = [];\n\n\t\t// Hooks are ignored on skipped tests\n\t\tif ( this.skip ) {\n\t\t\treturn hooks;\n\t\t}\n\n\t\tif ( this.module.testEnvironment &&\n\t\t\t\tQUnit.objectType( this.module.testEnvironment[ handler ] ) === \"function\" ) {\n\t\t\thooks.push( this.queueHook( this.module.testEnvironment[ handler ], handler ) );\n\t\t}\n\n\t\treturn hooks;\n\t},\n\n\tfinish: function() {\n\t\tconfig.current = this;\n\t\tif ( config.requireExpects && this.expected === null ) {\n\t\t\tthis.pushFailure( \"Expected number of assertions to be defined, but expect() was \" +\n\t\t\t\t\"not called.\", this.stack );\n\t\t} else if ( this.expected !== null && this.expected !== this.assertions.length ) {\n\t\t\tthis.pushFailure( \"Expected \" + this.expected + \" assertions, but \" +\n\t\t\t\tthis.assertions.length + \" were run\", this.stack );\n\t\t} else if ( this.expected === null && !this.assertions.length ) {\n\t\t\tthis.pushFailure( \"Expected at least one assertion, but none were run - call \" +\n\t\t\t\t\"expect(0) to accept zero assertions.\", this.stack );\n\t\t}\n\n\t\tvar i,\n\t\t\tbad = 0;\n\n\t\tthis.runtime = now() - this.started;\n\t\tconfig.stats.all += this.assertions.length;\n\t\tconfig.moduleStats.all += this.assertions.length;\n\n\t\tfor ( i = 0; i < this.assertions.length; i++ ) {\n\t\t\tif ( !this.assertions[ i ].result ) {\n\t\t\t\tbad++;\n\t\t\t\tconfig.stats.bad++;\n\t\t\t\tconfig.moduleStats.bad++;\n\t\t\t}\n\t\t}\n\n\t\trunLoggingCallbacks( \"testDone\", {\n\t\t\tname: this.testName,\n\t\t\tmodule: this.module.name,\n\t\t\tskipped: !!this.skip,\n\t\t\tfailed: bad,\n\t\t\tpassed: this.assertions.length - bad,\n\t\t\ttotal: this.assertions.length,\n\t\t\truntime: this.runtime,\n\n\t\t\t// HTML Reporter use\n\t\t\tassertions: this.assertions,\n\t\t\ttestId: this.testId,\n\n\t\t\t// DEPRECATED: this property will be removed in 2.0.0, use runtime instead\n\t\t\tduration: this.runtime\n\t\t});\n\n\t\t// QUnit.reset() is deprecated and will be replaced for a new\n\t\t// fixture reset function on QUnit 2.0/2.1.\n\t\t// It's still called here for backwards compatibility handling\n\t\tQUnit.reset();\n\n\t\tconfig.current = undefined;\n\t},\n\n\tqueue: function() {\n\t\tvar bad,\n\t\t\ttest = this;\n\n\t\tif ( !this.valid() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfunction run() {\n\n\t\t\t// each of these can by async\n\t\t\tsynchronize([\n\t\t\t\tfunction() {\n\t\t\t\t\ttest.before();\n\t\t\t\t},\n\n\t\t\t\ttest.hooks( \"beforeEach\" ),\n\n\t\t\t\tfunction() {\n\t\t\t\t\ttest.run();\n\t\t\t\t},\n\n\t\t\t\ttest.hooks( \"afterEach\" ).reverse(),\n\n\t\t\t\tfunction() {\n\t\t\t\t\ttest.after();\n\t\t\t\t},\n\t\t\t\tfunction() {\n\t\t\t\t\ttest.finish();\n\t\t\t\t}\n\t\t\t]);\n\t\t}\n\n\t\t// `bad` initialized at top of scope\n\t\t// defer when previous test run passed, if storage is available\n\t\tbad = QUnit.config.reorder && defined.sessionStorage &&\n\t\t\t\t+sessionStorage.getItem( \"qunit-test-\" + this.module.name + \"-\" + this.testName );\n\n\t\tif ( bad ) {\n\t\t\trun();\n\t\t} else {\n\t\t\tsynchronize( run, true );\n\t\t}\n\t},\n\n\tpush: function( result, actual, expected, message ) {\n\t\tvar source,\n\t\t\tdetails = {\n\t\t\t\tmodule: this.module.name,\n\t\t\t\tname: this.testName,\n\t\t\t\tresult: result,\n\t\t\t\tmessage: message,\n\t\t\t\tactual: actual,\n\t\t\t\texpected: expected,\n\t\t\t\ttestId: this.testId,\n\t\t\t\truntime: now() - this.started\n\t\t\t};\n\n\t\tif ( !result ) {\n\t\t\tsource = sourceFromStacktrace();\n\n\t\t\tif ( source ) {\n\t\t\t\tdetails.source = source;\n\t\t\t}\n\t\t}\n\n\t\trunLoggingCallbacks( \"log\", details );\n\n\t\tthis.assertions.push({\n\t\t\tresult: !!result,\n\t\t\tmessage: message\n\t\t});\n\t},\n\n\tpushFailure: function( message, source, actual ) {\n\t\tif ( !this instanceof Test ) {\n\t\t\tthrow new Error( \"pushFailure() assertion outside test context, was \" +\n\t\t\t\tsourceFromStacktrace( 2 ) );\n\t\t}\n\n\t\tvar details = {\n\t\t\t\tmodule: this.module.name,\n\t\t\t\tname: this.testName,\n\t\t\t\tresult: false,\n\t\t\t\tmessage: message || \"error\",\n\t\t\t\tactual: actual || null,\n\t\t\t\ttestId: this.testId,\n\t\t\t\truntime: now() - this.started\n\t\t\t};\n\n\t\tif ( source ) {\n\t\t\tdetails.source = source;\n\t\t}\n\n\t\trunLoggingCallbacks( \"log\", details );\n\n\t\tthis.assertions.push({\n\t\t\tresult: false,\n\t\t\tmessage: message\n\t\t});\n\t},\n\n\tresolvePromise: function( promise, phase ) {\n\t\tvar then, message,\n\t\t\ttest = this;\n\t\tif ( promise != null ) {\n\t\t\tthen = promise.then;\n\t\t\tif ( QUnit.objectType( then ) === \"function\" ) {\n\t\t\t\tQUnit.stop();\n\t\t\t\tthen.call(\n\t\t\t\t\tpromise,\n\t\t\t\t\tQUnit.start,\n\t\t\t\t\tfunction( error ) {\n\t\t\t\t\t\tmessage = \"Promise rejected \" +\n\t\t\t\t\t\t\t( !phase ? \"during\" : phase.replace( /Each$/, \"\" ) ) +\n\t\t\t\t\t\t\t\" \" + test.testName + \": \" + ( error.message || error );\n\t\t\t\t\t\ttest.pushFailure( message, extractStacktrace( error, 0 ) );\n\n\t\t\t\t\t\t// else next test will carry the responsibility\n\t\t\t\t\t\tsaveGlobal();\n\n\t\t\t\t\t\t// Unblock\n\t\t\t\t\t\tQUnit.start();\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t},\n\n\tvalid: function() {\n\t\tvar include,\n\t\t\tfilter = config.filter && config.filter.toLowerCase(),\n\t\t\tmodule = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(),\n\t\t\tfullName = ( this.module.name + \": \" + this.testName ).toLowerCase();\n\n\t\t// Internally-generated tests are always valid\n\t\tif ( this.callback && this.callback.validTest ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif ( config.testId.length > 0 && inArray( this.testId, config.testId ) < 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( module && ( !this.module.name || this.module.name.toLowerCase() !== module ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !filter ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tinclude = filter.charAt( 0 ) !== \"!\";\n\t\tif ( !include ) {\n\t\t\tfilter = filter.slice( 1 );\n\t\t}\n\n\t\t// If the filter matches, we need to honour include\n\t\tif ( fullName.indexOf( filter ) !== -1 ) {\n\t\t\treturn include;\n\t\t}\n\n\t\t// Otherwise, do the opposite\n\t\treturn !include;\n\t}\n\n};\n\n// Resets the test setup. Useful for tests that modify the DOM.\n/*\nDEPRECATED: Use multiple tests instead of resetting inside a test.\nUse testStart or testDone for custom cleanup.\nThis method will throw an error in 2.0, and will be removed in 2.1\n*/\nQUnit.reset = function() {\n\n\t// Return on non-browser environments\n\t// This is necessary to not break on node tests\n\tif ( typeof window === \"undefined\" ) {\n\t\treturn;\n\t}\n\n\tvar fixture = defined.document && document.getElementById &&\n\t\t\tdocument.getElementById( \"qunit-fixture\" );\n\n\tif ( fixture ) {\n\t\tfixture.innerHTML = config.fixture;\n\t}\n};\n\nQUnit.pushFailure = function() {\n\tif ( !QUnit.config.current ) {\n\t\tthrow new Error( \"pushFailure() assertion outside test context, in \" +\n\t\t\tsourceFromStacktrace( 2 ) );\n\t}\n\n\t// Gets current test obj\n\tvar currentTest = QUnit.config.current;\n\n\treturn currentTest.pushFailure.apply( currentTest, arguments );\n};\n\n// Based on Java's String.hashCode, a simple but not\n// rigorously collision resistant hashing function\nfunction generateHash( module, testName ) {\n\tvar hex,\n\t\ti = 0,\n\t\thash = 0,\n\t\tstr = module + \"\\x1C\" + testName,\n\t\tlen = str.length;\n\n\tfor ( ; i < len; i++ ) {\n\t\thash  = ( ( hash << 5 ) - hash ) + str.charCodeAt( i );\n\t\thash |= 0;\n\t}\n\n\t// Convert the possibly negative integer hash code into an 8 character hex string, which isn't\n\t// strictly necessary but increases user understanding that the id is a SHA-like hash\n\thex = ( 0x100000000 + hash ).toString( 16 );\n\tif ( hex.length < 8 ) {\n\t\thex = \"0000000\" + hex;\n\t}\n\n\treturn hex.slice( -8 );\n}\n\nfunction Assert( testContext ) {\n\tthis.test = testContext;\n}\n\n// Assert helpers\nQUnit.assert = Assert.prototype = {\n\n\t// Specify the number of expected assertions to guarantee that failed test\n\t// (no assertions are run at all) don't slip through.\n\texpect: function( asserts ) {\n\t\tif ( arguments.length === 1 ) {\n\t\t\tthis.test.expected = asserts;\n\t\t} else {\n\t\t\treturn this.test.expected;\n\t\t}\n\t},\n\n\t// Increment this Test's semaphore counter, then return a single-use function that\n\t// decrements that counter a maximum of once.\n\tasync: function() {\n\t\tvar test = this.test,\n\t\t\tpopped = false;\n\n\t\ttest.semaphore += 1;\n\t\ttest.usedAsync = true;\n\t\tpauseProcessing();\n\n\t\treturn function done() {\n\t\t\tif ( !popped ) {\n\t\t\t\ttest.semaphore -= 1;\n\t\t\t\tpopped = true;\n\t\t\t\tresumeProcessing();\n\t\t\t} else {\n\t\t\t\ttest.pushFailure( \"Called the callback returned from `assert.async` more than once\",\n\t\t\t\t\tsourceFromStacktrace( 2 ) );\n\t\t\t}\n\t\t};\n\t},\n\n\t// Exports test.push() to the user API\n\tpush: function( /* result, actual, expected, message */ ) {\n\t\tvar assert = this,\n\t\t\tcurrentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current;\n\n\t\t// Backwards compatibility fix.\n\t\t// Allows the direct use of global exported assertions and QUnit.assert.*\n\t\t// Although, it's use is not recommended as it can leak assertions\n\t\t// to other tests from async tests, because we only get a reference to the current test,\n\t\t// not exactly the test where assertion were intended to be called.\n\t\tif ( !currentTest ) {\n\t\t\tthrow new Error( \"assertion outside test context, in \" + sourceFromStacktrace( 2 ) );\n\t\t}\n\n\t\tif ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) {\n\t\t\tcurrentTest.pushFailure( \"Assertion after the final `assert.async` was resolved\",\n\t\t\t\tsourceFromStacktrace( 2 ) );\n\n\t\t\t// Allow this assertion to continue running anyway...\n\t\t}\n\n\t\tif ( !( assert instanceof Assert ) ) {\n\t\t\tassert = currentTest.assert;\n\t\t}\n\t\treturn assert.test.push.apply( assert.test, arguments );\n\t},\n\n\t/**\n\t * Asserts rough true-ish result.\n\t * @name ok\n\t * @function\n\t * @example ok( \"asdfasdf\".length > 5, \"There must be at least 5 chars\" );\n\t */\n\tok: function( result, message ) {\n\t\tmessage = message || ( result ? \"okay\" : \"failed, expected argument to be truthy, was: \" +\n\t\t\tQUnit.dump.parse( result ) );\n\t\tthis.push( !!result, result, true, message );\n\t},\n\n\t/**\n\t * Assert that the first two arguments are equal, with an optional message.\n\t * Prints out both actual and expected values.\n\t * @name equal\n\t * @function\n\t * @example equal( format( \"{0} bytes.\", 2), \"2 bytes.\", \"replaces {0} with next argument\" );\n\t */\n\tequal: function( actual, expected, message ) {\n\t\t/*jshint eqeqeq:false */\n\t\tthis.push( expected == actual, actual, expected, message );\n\t},\n\n\t/**\n\t * @name notEqual\n\t * @function\n\t */\n\tnotEqual: function( actual, expected, message ) {\n\t\t/*jshint eqeqeq:false */\n\t\tthis.push( expected != actual, actual, expected, message );\n\t},\n\n\t/**\n\t * @name propEqual\n\t * @function\n\t */\n\tpropEqual: function( actual, expected, message ) {\n\t\tactual = objectValues( actual );\n\t\texpected = objectValues( expected );\n\t\tthis.push( QUnit.equiv( actual, expected ), actual, expected, message );\n\t},\n\n\t/**\n\t * @name notPropEqual\n\t * @function\n\t */\n\tnotPropEqual: function( actual, expected, message ) {\n\t\tactual = objectValues( actual );\n\t\texpected = objectValues( expected );\n\t\tthis.push( !QUnit.equiv( actual, expected ), actual, expected, message );\n\t},\n\n\t/**\n\t * @name deepEqual\n\t * @function\n\t */\n\tdeepEqual: function( actual, expected, message ) {\n\t\tthis.push( QUnit.equiv( actual, expected ), actual, expected, message );\n\t},\n\n\t/**\n\t * @name notDeepEqual\n\t * @function\n\t */\n\tnotDeepEqual: function( actual, expected, message ) {\n\t\tthis.push( !QUnit.equiv( actual, expected ), actual, expected, message );\n\t},\n\n\t/**\n\t * @name strictEqual\n\t * @function\n\t */\n\tstrictEqual: function( actual, expected, message ) {\n\t\tthis.push( expected === actual, actual, expected, message );\n\t},\n\n\t/**\n\t * @name notStrictEqual\n\t * @function\n\t */\n\tnotStrictEqual: function( actual, expected, message ) {\n\t\tthis.push( expected !== actual, actual, expected, message );\n\t},\n\n\t\"throws\": function( block, expected, message ) {\n\t\tvar actual, expectedType,\n\t\t\texpectedOutput = expected,\n\t\t\tok = false;\n\n\t\t// 'expected' is optional unless doing string comparison\n\t\tif ( message == null && typeof expected === \"string\" ) {\n\t\t\tmessage = expected;\n\t\t\texpected = null;\n\t\t}\n\n\t\tthis.test.ignoreGlobalErrors = true;\n\t\ttry {\n\t\t\tblock.call( this.test.testEnvironment );\n\t\t} catch (e) {\n\t\t\tactual = e;\n\t\t}\n\t\tthis.test.ignoreGlobalErrors = false;\n\n\t\tif ( actual ) {\n\t\t\texpectedType = QUnit.objectType( expected );\n\n\t\t\t// we don't want to validate thrown error\n\t\t\tif ( !expected ) {\n\t\t\t\tok = true;\n\t\t\t\texpectedOutput = null;\n\n\t\t\t// expected is a regexp\n\t\t\t} else if ( expectedType === \"regexp\" ) {\n\t\t\t\tok = expected.test( errorString( actual ) );\n\n\t\t\t// expected is a string\n\t\t\t} else if ( expectedType === \"string\" ) {\n\t\t\t\tok = expected === errorString( actual );\n\n\t\t\t// expected is a constructor, maybe an Error constructor\n\t\t\t} else if ( expectedType === \"function\" && actual instanceof expected ) {\n\t\t\t\tok = true;\n\n\t\t\t// expected is an Error object\n\t\t\t} else if ( expectedType === \"object\" ) {\n\t\t\t\tok = actual instanceof expected.constructor &&\n\t\t\t\t\tactual.name === expected.name &&\n\t\t\t\t\tactual.message === expected.message;\n\n\t\t\t// expected is a validation function which returns true if validation passed\n\t\t\t} else if ( expectedType === \"function\" && expected.call( {}, actual ) === true ) {\n\t\t\t\texpectedOutput = null;\n\t\t\t\tok = true;\n\t\t\t}\n\n\t\t\tthis.push( ok, actual, expectedOutput, message );\n\t\t} else {\n\t\t\tthis.test.pushFailure( message, null, \"No exception was thrown.\" );\n\t\t}\n\t}\n};\n\n// Provide an alternative to assert.throws(), for enviroments that consider throws a reserved word\n// Known to us are: Closure Compiler, Narwhal\n(function() {\n\t/*jshint sub:true */\n\tAssert.prototype.raises = Assert.prototype[ \"throws\" ];\n}());\n\n// Test for equality any JavaScript type.\n// Author: Philippe Rathé <prathe@gmail.com>\nQUnit.equiv = (function() {\n\n\t// Call the o related callback with the given arguments.\n\tfunction bindCallbacks( o, callbacks, args ) {\n\t\tvar prop = QUnit.objectType( o );\n\t\tif ( prop ) {\n\t\t\tif ( QUnit.objectType( callbacks[ prop ] ) === \"function\" ) {\n\t\t\t\treturn callbacks[ prop ].apply( callbacks, args );\n\t\t\t} else {\n\t\t\t\treturn callbacks[ prop ]; // or undefined\n\t\t\t}\n\t\t}\n\t}\n\n\t// the real equiv function\n\tvar innerEquiv,\n\n\t\t// stack to decide between skip/abort functions\n\t\tcallers = [],\n\n\t\t// stack to avoiding loops from circular referencing\n\t\tparents = [],\n\t\tparentsB = [],\n\n\t\tgetProto = Object.getPrototypeOf || function( obj ) {\n\t\t\t/* jshint camelcase: false, proto: true */\n\t\t\treturn obj.__proto__;\n\t\t},\n\t\tcallbacks = (function() {\n\n\t\t\t// for string, boolean, number and null\n\t\t\tfunction useStrictEquality( b, a ) {\n\n\t\t\t\t/*jshint eqeqeq:false */\n\t\t\t\tif ( b instanceof a.constructor || a instanceof b.constructor ) {\n\n\t\t\t\t\t// to catch short annotation VS 'new' annotation of a\n\t\t\t\t\t// declaration\n\t\t\t\t\t// e.g. var i = 1;\n\t\t\t\t\t// var j = new Number(1);\n\t\t\t\t\treturn a == b;\n\t\t\t\t} else {\n\t\t\t\t\treturn a === b;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t\"string\": useStrictEquality,\n\t\t\t\t\"boolean\": useStrictEquality,\n\t\t\t\t\"number\": useStrictEquality,\n\t\t\t\t\"null\": useStrictEquality,\n\t\t\t\t\"undefined\": useStrictEquality,\n\n\t\t\t\t\"nan\": function( b ) {\n\t\t\t\t\treturn isNaN( b );\n\t\t\t\t},\n\n\t\t\t\t\"date\": function( b, a ) {\n\t\t\t\t\treturn QUnit.objectType( b ) === \"date\" && a.valueOf() === b.valueOf();\n\t\t\t\t},\n\n\t\t\t\t\"regexp\": function( b, a ) {\n\t\t\t\t\treturn QUnit.objectType( b ) === \"regexp\" &&\n\n\t\t\t\t\t\t// the regex itself\n\t\t\t\t\t\ta.source === b.source &&\n\n\t\t\t\t\t\t// and its modifiers\n\t\t\t\t\t\ta.global === b.global &&\n\n\t\t\t\t\t\t// (gmi) ...\n\t\t\t\t\t\ta.ignoreCase === b.ignoreCase &&\n\t\t\t\t\t\ta.multiline === b.multiline &&\n\t\t\t\t\t\ta.sticky === b.sticky;\n\t\t\t\t},\n\n\t\t\t\t// - skip when the property is a method of an instance (OOP)\n\t\t\t\t// - abort otherwise,\n\t\t\t\t// initial === would have catch identical references anyway\n\t\t\t\t\"function\": function() {\n\t\t\t\t\tvar caller = callers[ callers.length - 1 ];\n\t\t\t\t\treturn caller !== Object && typeof caller !== \"undefined\";\n\t\t\t\t},\n\n\t\t\t\t\"array\": function( b, a ) {\n\t\t\t\t\tvar i, j, len, loop, aCircular, bCircular;\n\n\t\t\t\t\t// b could be an object literal here\n\t\t\t\t\tif ( QUnit.objectType( b ) !== \"array\" ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlen = a.length;\n\t\t\t\t\tif ( len !== b.length ) {\n\t\t\t\t\t\t// safe and faster\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// track reference to avoid circular references\n\t\t\t\t\tparents.push( a );\n\t\t\t\t\tparentsB.push( b );\n\t\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\t\tloop = false;\n\t\t\t\t\t\tfor ( j = 0; j < parents.length; j++ ) {\n\t\t\t\t\t\t\taCircular = parents[ j ] === a[ i ];\n\t\t\t\t\t\t\tbCircular = parentsB[ j ] === b[ i ];\n\t\t\t\t\t\t\tif ( aCircular || bCircular ) {\n\t\t\t\t\t\t\t\tif ( a[ i ] === b[ i ] || aCircular && bCircular ) {\n\t\t\t\t\t\t\t\t\tloop = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tparents.pop();\n\t\t\t\t\t\t\t\t\tparentsB.pop();\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {\n\t\t\t\t\t\t\tparents.pop();\n\t\t\t\t\t\t\tparentsB.pop();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparents.pop();\n\t\t\t\t\tparentsB.pop();\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\n\t\t\t\t\"object\": function( b, a ) {\n\n\t\t\t\t\t/*jshint forin:false */\n\t\t\t\t\tvar i, j, loop, aCircular, bCircular,\n\t\t\t\t\t\t// Default to true\n\t\t\t\t\t\teq = true,\n\t\t\t\t\t\taProperties = [],\n\t\t\t\t\t\tbProperties = [];\n\n\t\t\t\t\t// comparing constructors is more strict than using\n\t\t\t\t\t// instanceof\n\t\t\t\t\tif ( a.constructor !== b.constructor ) {\n\n\t\t\t\t\t\t// Allow objects with no prototype to be equivalent to\n\t\t\t\t\t\t// objects with Object as their constructor.\n\t\t\t\t\t\tif ( !( ( getProto( a ) === null && getProto( b ) === Object.prototype ) ||\n\t\t\t\t\t\t\t( getProto( b ) === null && getProto( a ) === Object.prototype ) ) ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// stack constructor before traversing properties\n\t\t\t\t\tcallers.push( a.constructor );\n\n\t\t\t\t\t// track reference to avoid circular references\n\t\t\t\t\tparents.push( a );\n\t\t\t\t\tparentsB.push( b );\n\n\t\t\t\t\t// be strict: don't ensure hasOwnProperty and go deep\n\t\t\t\t\tfor ( i in a ) {\n\t\t\t\t\t\tloop = false;\n\t\t\t\t\t\tfor ( j = 0; j < parents.length; j++ ) {\n\t\t\t\t\t\t\taCircular = parents[ j ] === a[ i ];\n\t\t\t\t\t\t\tbCircular = parentsB[ j ] === b[ i ];\n\t\t\t\t\t\t\tif ( aCircular || bCircular ) {\n\t\t\t\t\t\t\t\tif ( a[ i ] === b[ i ] || aCircular && bCircular ) {\n\t\t\t\t\t\t\t\t\tloop = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\teq = false;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\taProperties.push( i );\n\t\t\t\t\t\tif ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) {\n\t\t\t\t\t\t\teq = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tparents.pop();\n\t\t\t\t\tparentsB.pop();\n\t\t\t\t\tcallers.pop(); // unstack, we are done\n\n\t\t\t\t\tfor ( i in b ) {\n\t\t\t\t\t\tbProperties.push( i ); // collect b's properties\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensures identical properties name\n\t\t\t\t\treturn eq && innerEquiv( aProperties.sort(), bProperties.sort() );\n\t\t\t\t}\n\t\t\t};\n\t\t}());\n\n\tinnerEquiv = function() { // can take multiple arguments\n\t\tvar args = [].slice.apply( arguments );\n\t\tif ( args.length < 2 ) {\n\t\t\treturn true; // end transition\n\t\t}\n\n\t\treturn ( (function( a, b ) {\n\t\t\tif ( a === b ) {\n\t\t\t\treturn true; // catch the most you can\n\t\t\t} else if ( a === null || b === null || typeof a === \"undefined\" ||\n\t\t\t\t\ttypeof b === \"undefined\" ||\n\t\t\t\t\tQUnit.objectType( a ) !== QUnit.objectType( b ) ) {\n\n\t\t\t\t// don't lose time with error prone cases\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn bindCallbacks( a, callbacks, [ b, a ] );\n\t\t\t}\n\n\t\t\t// apply transition with (1..n) arguments\n\t\t}( args[ 0 ], args[ 1 ] ) ) &&\n\t\t\tinnerEquiv.apply( this, args.splice( 1, args.length - 1 ) ) );\n\t};\n\n\treturn innerEquiv;\n}());\n\n// Based on jsDump by Ariel Flesler\n// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html\nQUnit.dump = (function() {\n\tfunction quote( str ) {\n\t\treturn \"\\\"\" + str.toString().replace( /\"/g, \"\\\\\\\"\" ) + \"\\\"\";\n\t}\n\tfunction literal( o ) {\n\t\treturn o + \"\";\n\t}\n\tfunction join( pre, arr, post ) {\n\t\tvar s = dump.separator(),\n\t\t\tbase = dump.indent(),\n\t\t\tinner = dump.indent( 1 );\n\t\tif ( arr.join ) {\n\t\t\tarr = arr.join( \",\" + s + inner );\n\t\t}\n\t\tif ( !arr ) {\n\t\t\treturn pre + post;\n\t\t}\n\t\treturn [ pre, inner + arr, base + post ].join( s );\n\t}\n\tfunction array( arr, stack ) {\n\t\tvar i = arr.length,\n\t\t\tret = new Array( i );\n\n\t\tif ( dump.maxDepth && dump.depth > dump.maxDepth ) {\n\t\t\treturn \"[object Array]\";\n\t\t}\n\n\t\tthis.up();\n\t\twhile ( i-- ) {\n\t\t\tret[ i ] = this.parse( arr[ i ], undefined, stack );\n\t\t}\n\t\tthis.down();\n\t\treturn join( \"[\", ret, \"]\" );\n\t}\n\n\tvar reName = /^function (\\w+)/,\n\t\tdump = {\n\n\t\t\t// objType is used mostly internally, you can fix a (custom) type in advance\n\t\t\tparse: function( obj, objType, stack ) {\n\t\t\t\tstack = stack || [];\n\t\t\t\tvar res, parser, parserType,\n\t\t\t\t\tinStack = inArray( obj, stack );\n\n\t\t\t\tif ( inStack !== -1 ) {\n\t\t\t\t\treturn \"recursion(\" + ( inStack - stack.length ) + \")\";\n\t\t\t\t}\n\n\t\t\t\tobjType = objType || this.typeOf( obj  );\n\t\t\t\tparser = this.parsers[ objType ];\n\t\t\t\tparserType = typeof parser;\n\n\t\t\t\tif ( parserType === \"function\" ) {\n\t\t\t\t\tstack.push( obj );\n\t\t\t\t\tres = parser.call( this, obj, stack );\n\t\t\t\t\tstack.pop();\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\treturn ( parserType === \"string\" ) ? parser : this.parsers.error;\n\t\t\t},\n\t\t\ttypeOf: function( obj ) {\n\t\t\t\tvar type;\n\t\t\t\tif ( obj === null ) {\n\t\t\t\t\ttype = \"null\";\n\t\t\t\t} else if ( typeof obj === \"undefined\" ) {\n\t\t\t\t\ttype = \"undefined\";\n\t\t\t\t} else if ( QUnit.is( \"regexp\", obj ) ) {\n\t\t\t\t\ttype = \"regexp\";\n\t\t\t\t} else if ( QUnit.is( \"date\", obj ) ) {\n\t\t\t\t\ttype = \"date\";\n\t\t\t\t} else if ( QUnit.is( \"function\", obj ) ) {\n\t\t\t\t\ttype = \"function\";\n\t\t\t\t} else if ( obj.setInterval !== undefined &&\n\t\t\t\t\t\tobj.document !== undefined &&\n\t\t\t\t\t\tobj.nodeType === undefined ) {\n\t\t\t\t\ttype = \"window\";\n\t\t\t\t} else if ( obj.nodeType === 9 ) {\n\t\t\t\t\ttype = \"document\";\n\t\t\t\t} else if ( obj.nodeType ) {\n\t\t\t\t\ttype = \"node\";\n\t\t\t\t} else if (\n\n\t\t\t\t\t// native arrays\n\t\t\t\t\ttoString.call( obj ) === \"[object Array]\" ||\n\n\t\t\t\t\t// NodeList objects\n\t\t\t\t\t( typeof obj.length === \"number\" && obj.item !== undefined &&\n\t\t\t\t\t( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null &&\n\t\t\t\t\tobj[ 0 ] === undefined ) ) )\n\t\t\t\t) {\n\t\t\t\t\ttype = \"array\";\n\t\t\t\t} else if ( obj.constructor === Error.prototype.constructor ) {\n\t\t\t\t\ttype = \"error\";\n\t\t\t\t} else {\n\t\t\t\t\ttype = typeof obj;\n\t\t\t\t}\n\t\t\t\treturn type;\n\t\t\t},\n\t\t\tseparator: function() {\n\t\t\t\treturn this.multiline ? this.HTML ? \"<br />\" : \"\\n\" : this.HTML ? \"&#160;\" : \" \";\n\t\t\t},\n\t\t\t// extra can be a number, shortcut for increasing-calling-decreasing\n\t\t\tindent: function( extra ) {\n\t\t\t\tif ( !this.multiline ) {\n\t\t\t\t\treturn \"\";\n\t\t\t\t}\n\t\t\t\tvar chr = this.indentChar;\n\t\t\t\tif ( this.HTML ) {\n\t\t\t\t\tchr = chr.replace( /\\t/g, \"   \" ).replace( / /g, \"&#160;\" );\n\t\t\t\t}\n\t\t\t\treturn new Array( this.depth + ( extra || 0 ) ).join( chr );\n\t\t\t},\n\t\t\tup: function( a ) {\n\t\t\t\tthis.depth += a || 1;\n\t\t\t},\n\t\t\tdown: function( a ) {\n\t\t\t\tthis.depth -= a || 1;\n\t\t\t},\n\t\t\tsetParser: function( name, parser ) {\n\t\t\t\tthis.parsers[ name ] = parser;\n\t\t\t},\n\t\t\t// The next 3 are exposed so you can use them\n\t\t\tquote: quote,\n\t\t\tliteral: literal,\n\t\t\tjoin: join,\n\t\t\t//\n\t\t\tdepth: 1,\n\t\t\tmaxDepth: 5,\n\n\t\t\t// This is the list of parsers, to modify them, use dump.setParser\n\t\t\tparsers: {\n\t\t\t\twindow: \"[Window]\",\n\t\t\t\tdocument: \"[Document]\",\n\t\t\t\terror: function( error ) {\n\t\t\t\t\treturn \"Error(\\\"\" + error.message + \"\\\")\";\n\t\t\t\t},\n\t\t\t\tunknown: \"[Unknown]\",\n\t\t\t\t\"null\": \"null\",\n\t\t\t\t\"undefined\": \"undefined\",\n\t\t\t\t\"function\": function( fn ) {\n\t\t\t\t\tvar ret = \"function\",\n\n\t\t\t\t\t\t// functions never have name in IE\n\t\t\t\t\t\tname = \"name\" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ];\n\n\t\t\t\t\tif ( name ) {\n\t\t\t\t\t\tret += \" \" + name;\n\t\t\t\t\t}\n\t\t\t\t\tret += \"( \";\n\n\t\t\t\t\tret = [ ret, dump.parse( fn, \"functionArgs\" ), \"){\" ].join( \"\" );\n\t\t\t\t\treturn join( ret, dump.parse( fn, \"functionCode\" ), \"}\" );\n\t\t\t\t},\n\t\t\t\tarray: array,\n\t\t\t\tnodelist: array,\n\t\t\t\t\"arguments\": array,\n\t\t\t\tobject: function( map, stack ) {\n\t\t\t\t\tvar keys, key, val, i, nonEnumerableProperties,\n\t\t\t\t\t\tret = [];\n\n\t\t\t\t\tif ( dump.maxDepth && dump.depth > dump.maxDepth ) {\n\t\t\t\t\t\treturn \"[object Object]\";\n\t\t\t\t\t}\n\n\t\t\t\t\tdump.up();\n\t\t\t\t\tkeys = [];\n\t\t\t\t\tfor ( key in map ) {\n\t\t\t\t\t\tkeys.push( key );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Some properties are not always enumerable on Error objects.\n\t\t\t\t\tnonEnumerableProperties = [ \"message\", \"name\" ];\n\t\t\t\t\tfor ( i in nonEnumerableProperties ) {\n\t\t\t\t\t\tkey = nonEnumerableProperties[ i ];\n\t\t\t\t\t\tif ( key in map && !( key in keys ) ) {\n\t\t\t\t\t\t\tkeys.push( key );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tkeys.sort();\n\t\t\t\t\tfor ( i = 0; i < keys.length; i++ ) {\n\t\t\t\t\t\tkey = keys[ i ];\n\t\t\t\t\t\tval = map[ key ];\n\t\t\t\t\t\tret.push( dump.parse( key, \"key\" ) + \": \" +\n\t\t\t\t\t\t\tdump.parse( val, undefined, stack ) );\n\t\t\t\t\t}\n\t\t\t\t\tdump.down();\n\t\t\t\t\treturn join( \"{\", ret, \"}\" );\n\t\t\t\t},\n\t\t\t\tnode: function( node ) {\n\t\t\t\t\tvar len, i, val,\n\t\t\t\t\t\topen = dump.HTML ? \"&lt;\" : \"<\",\n\t\t\t\t\t\tclose = dump.HTML ? \"&gt;\" : \">\",\n\t\t\t\t\t\ttag = node.nodeName.toLowerCase(),\n\t\t\t\t\t\tret = open + tag,\n\t\t\t\t\t\tattrs = node.attributes;\n\n\t\t\t\t\tif ( attrs ) {\n\t\t\t\t\t\tfor ( i = 0, len = attrs.length; i < len; i++ ) {\n\t\t\t\t\t\t\tval = attrs[ i ].nodeValue;\n\n\t\t\t\t\t\t\t// IE6 includes all attributes in .attributes, even ones not explicitly\n\t\t\t\t\t\t\t// set. Those have values like undefined, null, 0, false, \"\" or\n\t\t\t\t\t\t\t// \"inherit\".\n\t\t\t\t\t\t\tif ( val && val !== \"inherit\" ) {\n\t\t\t\t\t\t\t\tret += \" \" + attrs[ i ].nodeName + \"=\" +\n\t\t\t\t\t\t\t\t\tdump.parse( val, \"attribute\" );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tret += close;\n\n\t\t\t\t\t// Show content of TextNode or CDATASection\n\t\t\t\t\tif ( node.nodeType === 3 || node.nodeType === 4 ) {\n\t\t\t\t\t\tret += node.nodeValue;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn ret + open + \"/\" + tag + close;\n\t\t\t\t},\n\n\t\t\t\t// function calls it internally, it's the arguments part of the function\n\t\t\t\tfunctionArgs: function( fn ) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t\tl = fn.length;\n\n\t\t\t\t\tif ( !l ) {\n\t\t\t\t\t\treturn \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\targs = new Array( l );\n\t\t\t\t\twhile ( l-- ) {\n\n\t\t\t\t\t\t// 97 is 'a'\n\t\t\t\t\t\targs[ l ] = String.fromCharCode( 97 + l );\n\t\t\t\t\t}\n\t\t\t\t\treturn \" \" + args.join( \", \" ) + \" \";\n\t\t\t\t},\n\t\t\t\t// object calls it internally, the key part of an item in a map\n\t\t\t\tkey: quote,\n\t\t\t\t// function calls it internally, it's the content of the function\n\t\t\t\tfunctionCode: \"[code]\",\n\t\t\t\t// node calls it internally, it's an html attribute value\n\t\t\t\tattribute: quote,\n\t\t\t\tstring: quote,\n\t\t\t\tdate: quote,\n\t\t\t\tregexp: literal,\n\t\t\t\tnumber: literal,\n\t\t\t\t\"boolean\": literal\n\t\t\t},\n\t\t\t// if true, entities are escaped ( <, >, \\t, space and \\n )\n\t\t\tHTML: false,\n\t\t\t// indentation unit\n\t\t\tindentChar: \"  \",\n\t\t\t// if true, items in a collection, are separated by a \\n, else just a space.\n\t\t\tmultiline: true\n\t\t};\n\n\treturn dump;\n}());\n\n// back compat\nQUnit.jsDump = QUnit.dump;\n\n// For browser, export only select globals\nif ( typeof window !== \"undefined\" ) {\n\n\t// Deprecated\n\t// Extend assert methods to QUnit and Global scope through Backwards compatibility\n\t(function() {\n\t\tvar i,\n\t\t\tassertions = Assert.prototype;\n\n\t\tfunction applyCurrent( current ) {\n\t\t\treturn function() {\n\t\t\t\tvar assert = new Assert( QUnit.config.current );\n\t\t\t\tcurrent.apply( assert, arguments );\n\t\t\t};\n\t\t}\n\n\t\tfor ( i in assertions ) {\n\t\t\tQUnit[ i ] = applyCurrent( assertions[ i ] );\n\t\t}\n\t})();\n\n\t(function() {\n\t\tvar i, l,\n\t\t\tkeys = [\n\t\t\t\t\"test\",\n\t\t\t\t\"module\",\n\t\t\t\t\"expect\",\n\t\t\t\t\"asyncTest\",\n\t\t\t\t\"start\",\n\t\t\t\t\"stop\",\n\t\t\t\t\"ok\",\n\t\t\t\t\"equal\",\n\t\t\t\t\"notEqual\",\n\t\t\t\t\"propEqual\",\n\t\t\t\t\"notPropEqual\",\n\t\t\t\t\"deepEqual\",\n\t\t\t\t\"notDeepEqual\",\n\t\t\t\t\"strictEqual\",\n\t\t\t\t\"notStrictEqual\",\n\t\t\t\t\"throws\"\n\t\t\t];\n\n\t\tfor ( i = 0, l = keys.length; i < l; i++ ) {\n\t\t\twindow[ keys[ i ] ] = QUnit[ keys[ i ] ];\n\t\t}\n\t})();\n\n\twindow.QUnit = QUnit;\n}\n\n// For nodejs\nif ( typeof module !== \"undefined\" && module.exports ) {\n\tmodule.exports = QUnit;\n}\n\n// For CommonJS with exports, but without module.exports, like Rhino\nif ( typeof exports !== \"undefined\" ) {\n\texports.QUnit = QUnit;\n}\n\n// Get a reference to the global object, like window in browsers\n}( (function() {\n\treturn this;\n})() ));\n\n/*istanbul ignore next */\n// jscs:disable maximumLineLength\n/*\n * Javascript Diff Algorithm\n *  By John Resig (http://ejohn.org/)\n *  Modified by Chu Alan \"sprite\"\n *\n * Released under the MIT license.\n *\n * More Info:\n *  http://ejohn.org/projects/javascript-diff-algorithm/\n *\n * Usage: QUnit.diff(expected, actual)\n *\n * QUnit.diff( \"the quick brown fox jumped over\", \"the quick fox jumps over\" ) == \"the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over\"\n */\nQUnit.diff = (function() {\n\tvar hasOwn = Object.prototype.hasOwnProperty;\n\n\t/*jshint eqeqeq:false, eqnull:true */\n\tfunction diff( o, n ) {\n\t\tvar i,\n\t\t\tns = {},\n\t\t\tos = {};\n\n\t\tfor ( i = 0; i < n.length; i++ ) {\n\t\t\tif ( !hasOwn.call( ns, n[ i ] ) ) {\n\t\t\t\tns[ n[ i ] ] = {\n\t\t\t\t\trows: [],\n\t\t\t\t\to: null\n\t\t\t\t};\n\t\t\t}\n\t\t\tns[ n[ i ] ].rows.push( i );\n\t\t}\n\n\t\tfor ( i = 0; i < o.length; i++ ) {\n\t\t\tif ( !hasOwn.call( os, o[ i ] ) ) {\n\t\t\t\tos[ o[ i ] ] = {\n\t\t\t\t\trows: [],\n\t\t\t\t\tn: null\n\t\t\t\t};\n\t\t\t}\n\t\t\tos[ o[ i ] ].rows.push( i );\n\t\t}\n\n\t\tfor ( i in ns ) {\n\t\t\tif ( hasOwn.call( ns, i ) ) {\n\t\t\t\tif ( ns[ i ].rows.length === 1 && hasOwn.call( os, i ) && os[ i ].rows.length === 1 ) {\n\t\t\t\t\tn[ ns[ i ].rows[ 0 ] ] = {\n\t\t\t\t\t\ttext: n[ ns[ i ].rows[ 0 ] ],\n\t\t\t\t\t\trow: os[ i ].rows[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t\to[ os[ i ].rows[ 0 ] ] = {\n\t\t\t\t\t\ttext: o[ os[ i ].rows[ 0 ] ],\n\t\t\t\t\t\trow: ns[ i ].rows[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = 0; i < n.length - 1; i++ ) {\n\t\t\tif ( n[ i ].text != null && n[ i + 1 ].text == null && n[ i ].row + 1 < o.length && o[ n[ i ].row + 1 ].text == null &&\n\t\t\t\tn[ i + 1 ] == o[ n[ i ].row + 1 ] ) {\n\n\t\t\t\tn[ i + 1 ] = {\n\t\t\t\t\ttext: n[ i + 1 ],\n\t\t\t\t\trow: n[ i ].row + 1\n\t\t\t\t};\n\t\t\t\to[ n[ i ].row + 1 ] = {\n\t\t\t\t\ttext: o[ n[ i ].row + 1 ],\n\t\t\t\t\trow: i + 1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = n.length - 1; i > 0; i-- ) {\n\t\t\tif ( n[ i ].text != null && n[ i - 1 ].text == null && n[ i ].row > 0 && o[ n[ i ].row - 1 ].text == null &&\n\t\t\t\tn[ i - 1 ] == o[ n[ i ].row - 1 ] ) {\n\n\t\t\t\tn[ i - 1 ] = {\n\t\t\t\t\ttext: n[ i - 1 ],\n\t\t\t\t\trow: n[ i ].row - 1\n\t\t\t\t};\n\t\t\t\to[ n[ i ].row - 1 ] = {\n\t\t\t\t\ttext: o[ n[ i ].row - 1 ],\n\t\t\t\t\trow: i - 1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\to: o,\n\t\t\tn: n\n\t\t};\n\t}\n\n\treturn function( o, n ) {\n\t\to = o.replace( /\\s+$/, \"\" );\n\t\tn = n.replace( /\\s+$/, \"\" );\n\n\t\tvar i, pre,\n\t\t\tstr = \"\",\n\t\t\tout = diff( o === \"\" ? [] : o.split( /\\s+/ ), n === \"\" ? [] : n.split( /\\s+/ ) ),\n\t\t\toSpace = o.match( /\\s+/g ),\n\t\t\tnSpace = n.match( /\\s+/g );\n\n\t\tif ( oSpace == null ) {\n\t\t\toSpace = [ \" \" ];\n\t\t} else {\n\t\t\toSpace.push( \" \" );\n\t\t}\n\n\t\tif ( nSpace == null ) {\n\t\t\tnSpace = [ \" \" ];\n\t\t} else {\n\t\t\tnSpace.push( \" \" );\n\t\t}\n\n\t\tif ( out.n.length === 0 ) {\n\t\t\tfor ( i = 0; i < out.o.length; i++ ) {\n\t\t\t\tstr += \"<del>\" + out.o[ i ] + oSpace[ i ] + \"</del>\";\n\t\t\t}\n\t\t} else {\n\t\t\tif ( out.n[ 0 ].text == null ) {\n\t\t\t\tfor ( n = 0; n < out.o.length && out.o[ n ].text == null; n++ ) {\n\t\t\t\t\tstr += \"<del>\" + out.o[ n ] + oSpace[ n ] + \"</del>\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( i = 0; i < out.n.length; i++ ) {\n\t\t\t\tif ( out.n[ i ].text == null ) {\n\t\t\t\t\tstr += \"<ins>\" + out.n[ i ] + nSpace[ i ] + \"</ins>\";\n\t\t\t\t} else {\n\n\t\t\t\t\t// `pre` initialized at top of scope\n\t\t\t\t\tpre = \"\";\n\n\t\t\t\t\tfor ( n = out.n[ i ].row + 1; n < out.o.length && out.o[ n ].text == null; n++ ) {\n\t\t\t\t\t\tpre += \"<del>\" + out.o[ n ] + oSpace[ n ] + \"</del>\";\n\t\t\t\t\t}\n\t\t\t\t\tstr += \" \" + out.n[ i ].text + nSpace[ i ] + pre;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn str;\n\t};\n}());\n// jscs:enable\n\n(function() {\n\n// Deprecated QUnit.init - Ref #530\n// Re-initialize the configuration options\nQUnit.init = function() {\n\tvar tests, banner, result, qunit,\n\t\tconfig = QUnit.config;\n\n\tconfig.stats = { all: 0, bad: 0 };\n\tconfig.moduleStats = { all: 0, bad: 0 };\n\tconfig.started = 0;\n\tconfig.updateRate = 1000;\n\tconfig.blocking = false;\n\tconfig.autostart = true;\n\tconfig.autorun = false;\n\tconfig.filter = \"\";\n\tconfig.queue = [];\n\n\t// Return on non-browser environments\n\t// This is necessary to not break on node tests\n\tif ( typeof window === \"undefined\" ) {\n\t\treturn;\n\t}\n\n\tqunit = id( \"qunit\" );\n\tif ( qunit ) {\n\t\tqunit.innerHTML =\n\t\t\t\"<h1 id='qunit-header'>\" + escapeText( document.title ) + \"</h1>\" +\n\t\t\t\"<h2 id='qunit-banner'></h2>\" +\n\t\t\t\"<div id='qunit-testrunner-toolbar'></div>\" +\n\t\t\t\"<h2 id='qunit-userAgent'></h2>\" +\n\t\t\t\"<ol id='qunit-tests'></ol>\";\n\t}\n\n\ttests = id( \"qunit-tests\" );\n\tbanner = id( \"qunit-banner\" );\n\tresult = id( \"qunit-testresult\" );\n\n\tif ( tests ) {\n\t\ttests.innerHTML = \"\";\n\t}\n\n\tif ( banner ) {\n\t\tbanner.className = \"\";\n\t}\n\n\tif ( result ) {\n\t\tresult.parentNode.removeChild( result );\n\t}\n\n\tif ( tests ) {\n\t\tresult = document.createElement( \"p\" );\n\t\tresult.id = \"qunit-testresult\";\n\t\tresult.className = \"result\";\n\t\ttests.parentNode.insertBefore( result, tests );\n\t\tresult.innerHTML = \"Running...<br />&#160;\";\n\t}\n};\n\n// Don't load the HTML Reporter on non-Browser environments\nif ( typeof window === \"undefined\" ) {\n\treturn;\n}\n\nvar config = QUnit.config,\n\thasOwn = Object.prototype.hasOwnProperty,\n\tdefined = {\n\t\tdocument: window.document !== undefined,\n\t\tsessionStorage: (function() {\n\t\t\tvar x = \"qunit-test-string\";\n\t\t\ttry {\n\t\t\t\tsessionStorage.setItem( x, x );\n\t\t\t\tsessionStorage.removeItem( x );\n\t\t\t\treturn true;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}())\n\t},\n\tmodulesList = [];\n\n/**\n* Escape text for attribute or text content.\n*/\nfunction escapeText( s ) {\n\tif ( !s ) {\n\t\treturn \"\";\n\t}\n\ts = s + \"\";\n\n\t// Both single quotes and double quotes (for attributes)\n\treturn s.replace( /['\"<>&]/g, function( s ) {\n\t\tswitch ( s ) {\n\t\tcase \"'\":\n\t\t\treturn \"&#039;\";\n\t\tcase \"\\\"\":\n\t\t\treturn \"&quot;\";\n\t\tcase \"<\":\n\t\t\treturn \"&lt;\";\n\t\tcase \">\":\n\t\t\treturn \"&gt;\";\n\t\tcase \"&\":\n\t\t\treturn \"&amp;\";\n\t\t}\n\t});\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} type\n * @param {Function} fn\n */\nfunction addEvent( elem, type, fn ) {\n\tif ( elem.addEventListener ) {\n\n\t\t// Standards-based browsers\n\t\telem.addEventListener( type, fn, false );\n\t} else if ( elem.attachEvent ) {\n\n\t\t// support: IE <9\n\t\telem.attachEvent( \"on\" + type, fn );\n\t}\n}\n\n/**\n * @param {Array|NodeList} elems\n * @param {string} type\n * @param {Function} fn\n */\nfunction addEvents( elems, type, fn ) {\n\tvar i = elems.length;\n\twhile ( i-- ) {\n\t\taddEvent( elems[ i ], type, fn );\n\t}\n}\n\nfunction hasClass( elem, name ) {\n\treturn ( \" \" + elem.className + \" \" ).indexOf( \" \" + name + \" \" ) >= 0;\n}\n\nfunction addClass( elem, name ) {\n\tif ( !hasClass( elem, name ) ) {\n\t\telem.className += ( elem.className ? \" \" : \"\" ) + name;\n\t}\n}\n\nfunction toggleClass( elem, name ) {\n\tif ( hasClass( elem, name ) ) {\n\t\tremoveClass( elem, name );\n\t} else {\n\t\taddClass( elem, name );\n\t}\n}\n\nfunction removeClass( elem, name ) {\n\tvar set = \" \" + elem.className + \" \";\n\n\t// Class name may appear multiple times\n\twhile ( set.indexOf( \" \" + name + \" \" ) >= 0 ) {\n\t\tset = set.replace( \" \" + name + \" \", \" \" );\n\t}\n\n\t// trim for prettiness\n\telem.className = typeof set.trim === \"function\" ? set.trim() : set.replace( /^\\s+|\\s+$/g, \"\" );\n}\n\nfunction id( name ) {\n\treturn defined.document && document.getElementById && document.getElementById( name );\n}\n\nfunction getUrlConfigHtml() {\n\tvar i, j, val,\n\t\tescaped, escapedTooltip,\n\t\tselection = false,\n\t\tlen = config.urlConfig.length,\n\t\turlConfigHtml = \"\";\n\n\tfor ( i = 0; i < len; i++ ) {\n\t\tval = config.urlConfig[ i ];\n\t\tif ( typeof val === \"string\" ) {\n\t\t\tval = {\n\t\t\t\tid: val,\n\t\t\t\tlabel: val\n\t\t\t};\n\t\t}\n\n\t\tescaped = escapeText( val.id );\n\t\tescapedTooltip = escapeText( val.tooltip );\n\n\t\tconfig[ val.id ] = QUnit.urlParams[ val.id ];\n\t\tif ( !val.value || typeof val.value === \"string\" ) {\n\t\t\turlConfigHtml += \"<input id='qunit-urlconfig-\" + escaped +\n\t\t\t\t\"' name='\" + escaped + \"' type='checkbox'\" +\n\t\t\t\t( val.value ? \" value='\" + escapeText( val.value ) + \"'\" : \"\" ) +\n\t\t\t\t( config[ val.id ] ? \" checked='checked'\" : \"\" ) +\n\t\t\t\t\" title='\" + escapedTooltip + \"' /><label for='qunit-urlconfig-\" + escaped +\n\t\t\t\t\"' title='\" + escapedTooltip + \"'>\" + val.label + \"</label>\";\n\t\t} else {\n\t\t\turlConfigHtml += \"<label for='qunit-urlconfig-\" + escaped +\n\t\t\t\t\"' title='\" + escapedTooltip + \"'>\" + val.label +\n\t\t\t\t\": </label><select id='qunit-urlconfig-\" + escaped +\n\t\t\t\t\"' name='\" + escaped + \"' title='\" + escapedTooltip + \"'><option></option>\";\n\n\t\t\tif ( QUnit.is( \"array\", val.value ) ) {\n\t\t\t\tfor ( j = 0; j < val.value.length; j++ ) {\n\t\t\t\t\tescaped = escapeText( val.value[ j ] );\n\t\t\t\t\turlConfigHtml += \"<option value='\" + escaped + \"'\" +\n\t\t\t\t\t\t( config[ val.id ] === val.value[ j ] ?\n\t\t\t\t\t\t\t( selection = true ) && \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\">\" + escaped + \"</option>\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( j in val.value ) {\n\t\t\t\t\tif ( hasOwn.call( val.value, j ) ) {\n\t\t\t\t\t\turlConfigHtml += \"<option value='\" + escapeText( j ) + \"'\" +\n\t\t\t\t\t\t\t( config[ val.id ] === j ?\n\t\t\t\t\t\t\t\t( selection = true ) && \" selected='selected'\" : \"\" ) +\n\t\t\t\t\t\t\t\">\" + escapeText( val.value[ j ] ) + \"</option>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( config[ val.id ] && !selection ) {\n\t\t\t\tescaped = escapeText( config[ val.id ] );\n\t\t\t\turlConfigHtml += \"<option value='\" + escaped +\n\t\t\t\t\t\"' selected='selected' disabled='disabled'>\" + escaped + \"</option>\";\n\t\t\t}\n\t\t\turlConfigHtml += \"</select>\";\n\t\t}\n\t}\n\n\treturn urlConfigHtml;\n}\n\n// Handle \"click\" events on toolbar checkboxes and \"change\" for select menus.\n// Updates the URL with the new state of `config.urlConfig` values.\nfunction toolbarChanged() {\n\tvar updatedUrl, value,\n\t\tfield = this,\n\t\tparams = {};\n\n\t// Detect if field is a select menu or a checkbox\n\tif ( \"selectedIndex\" in field ) {\n\t\tvalue = field.options[ field.selectedIndex ].value || undefined;\n\t} else {\n\t\tvalue = field.checked ? ( field.defaultValue || true ) : undefined;\n\t}\n\n\tparams[ field.name ] = value;\n\tupdatedUrl = QUnit.url( params );\n\n\tif ( \"hidepassed\" === field.name && \"replaceState\" in window.history ) {\n\t\tconfig[ field.name ] = value || false;\n\t\tif ( value ) {\n\t\t\taddClass( id( \"qunit-tests\" ), \"hidepass\" );\n\t\t} else {\n\t\t\tremoveClass( id( \"qunit-tests\" ), \"hidepass\" );\n\t\t}\n\n\t\t// It is not necessary to refresh the whole page\n\t\twindow.history.replaceState( null, \"\", updatedUrl );\n\t} else {\n\t\twindow.location = updatedUrl;\n\t}\n}\n\nfunction toolbarUrlConfigContainer() {\n\tvar urlConfigContainer = document.createElement( \"span\" );\n\n\turlConfigContainer.innerHTML = getUrlConfigHtml();\n\n\t// For oldIE support:\n\t// * Add handlers to the individual elements instead of the container\n\t// * Use \"click\" instead of \"change\" for checkboxes\n\taddEvents( urlConfigContainer.getElementsByTagName( \"input\" ), \"click\", toolbarChanged );\n\taddEvents( urlConfigContainer.getElementsByTagName( \"select\" ), \"change\", toolbarChanged );\n\n\treturn urlConfigContainer;\n}\n\nfunction toolbarModuleFilterHtml() {\n\tvar i,\n\t\tmoduleFilterHtml = \"\";\n\n\tif ( !modulesList.length ) {\n\t\treturn false;\n\t}\n\n\tmodulesList.sort(function( a, b ) {\n\t\treturn a.localeCompare( b );\n\t});\n\n\tmoduleFilterHtml += \"<label for='qunit-modulefilter'>Module: </label>\" +\n\t\t\"<select id='qunit-modulefilter' name='modulefilter'><option value='' \" +\n\t\t( QUnit.urlParams.module === undefined ? \"selected='selected'\" : \"\" ) +\n\t\t\">< All Modules ></option>\";\n\n\tfor ( i = 0; i < modulesList.length; i++ ) {\n\t\tmoduleFilterHtml += \"<option value='\" +\n\t\t\tescapeText( encodeURIComponent( modulesList[ i ] ) ) + \"' \" +\n\t\t\t( QUnit.urlParams.module === modulesList[ i ] ? \"selected='selected'\" : \"\" ) +\n\t\t\t\">\" + escapeText( modulesList[ i ] ) + \"</option>\";\n\t}\n\tmoduleFilterHtml += \"</select>\";\n\n\treturn moduleFilterHtml;\n}\n\nfunction toolbarModuleFilter() {\n\tvar toolbar = id( \"qunit-testrunner-toolbar\" ),\n\t\tmoduleFilter = document.createElement( \"span\" ),\n\t\tmoduleFilterHtml = toolbarModuleFilterHtml();\n\n\tif ( !moduleFilterHtml ) {\n\t\treturn false;\n\t}\n\n\tmoduleFilter.setAttribute( \"id\", \"qunit-modulefilter-container\" );\n\tmoduleFilter.innerHTML = moduleFilterHtml;\n\n\taddEvent( moduleFilter.lastChild, \"change\", function() {\n\t\tvar selectBox = moduleFilter.getElementsByTagName( \"select\" )[ 0 ],\n\t\t\tselection = decodeURIComponent( selectBox.options[ selectBox.selectedIndex ].value );\n\n\t\twindow.location = QUnit.url({\n\t\t\tmodule: ( selection === \"\" ) ? undefined : selection,\n\n\t\t\t// Remove any existing filters\n\t\t\tfilter: undefined,\n\t\t\ttestId: undefined\n\t\t});\n\t});\n\n\ttoolbar.appendChild( moduleFilter );\n}\n\nfunction appendToolbar() {\n\tvar toolbar = id( \"qunit-testrunner-toolbar\" );\n\n\tif ( toolbar ) {\n\t\ttoolbar.appendChild( toolbarUrlConfigContainer() );\n\t}\n}\n\nfunction appendBanner() {\n\tvar banner = id( \"qunit-banner\" );\n\n\tif ( banner ) {\n\t\tbanner.className = \"\";\n\t\tbanner.innerHTML = \"<a href='\" +\n\t\t\tQUnit.url({ filter: undefined, module: undefined, testId: undefined }) +\n\t\t\t\"'>\" + banner.innerHTML + \"</a> \";\n\t}\n}\n\nfunction appendTestResults() {\n\tvar tests = id( \"qunit-tests\" ),\n\t\tresult = id( \"qunit-testresult\" );\n\n\tif ( result ) {\n\t\tresult.parentNode.removeChild( result );\n\t}\n\n\tif ( tests ) {\n\t\ttests.innerHTML = \"\";\n\t\tresult = document.createElement( \"p\" );\n\t\tresult.id = \"qunit-testresult\";\n\t\tresult.className = \"result\";\n\t\ttests.parentNode.insertBefore( result, tests );\n\t\tresult.innerHTML = \"Running...<br />&#160;\";\n\t}\n}\n\nfunction storeFixture() {\n\tvar fixture = id( \"qunit-fixture\" );\n\tif ( fixture ) {\n\t\tconfig.fixture = fixture.innerHTML;\n\t}\n}\n\nfunction appendUserAgent() {\n\tvar userAgent = id( \"qunit-userAgent\" );\n\tif ( userAgent ) {\n\t\tuserAgent.innerHTML = navigator.userAgent;\n\t}\n}\n\nfunction appendTestsList( modules ) {\n\tvar i, l, x, z, test, moduleObj;\n\n\tfor ( i = 0, l = modules.length; i < l; i++ ) {\n\t\tmoduleObj = modules[ i ];\n\n\t\tif ( moduleObj.name ) {\n\t\t\tmodulesList.push( moduleObj.name );\n\t\t}\n\n\t\tfor ( x = 0, z = moduleObj.tests.length; x < z; x++ ) {\n\t\t\ttest = moduleObj.tests[ x ];\n\n\t\t\tappendTest( test.name, test.testId, moduleObj.name );\n\t\t}\n\t}\n}\n\nfunction appendTest( name, testId, moduleName ) {\n\tvar title, rerunTrigger, testBlock, assertList,\n\t\ttests = id( \"qunit-tests\" );\n\n\tif ( !tests ) {\n\t\treturn;\n\t}\n\n\ttitle = document.createElement( \"strong\" );\n\ttitle.innerHTML = getNameHtml( name, moduleName );\n\n\trerunTrigger = document.createElement( \"a\" );\n\trerunTrigger.innerHTML = \"Rerun\";\n\trerunTrigger.href = QUnit.url({ testId: testId });\n\n\ttestBlock = document.createElement( \"li\" );\n\ttestBlock.appendChild( title );\n\ttestBlock.appendChild( rerunTrigger );\n\ttestBlock.id = \"qunit-test-output-\" + testId;\n\n\tassertList = document.createElement( \"ol\" );\n\tassertList.className = \"qunit-assert-list\";\n\n\ttestBlock.appendChild( assertList );\n\n\ttests.appendChild( testBlock );\n}\n\n// HTML Reporter initialization and load\nQUnit.begin(function( details ) {\n\tvar qunit = id( \"qunit\" );\n\n\t// Fixture is the only one necessary to run without the #qunit element\n\tstoreFixture();\n\n\tif ( !qunit ) {\n\t\treturn;\n\t}\n\n\tqunit.innerHTML =\n\t\t\"<h1 id='qunit-header'>\" + escapeText( document.title ) + \"</h1>\" +\n\t\t\"<h2 id='qunit-banner'></h2>\" +\n\t\t\"<div id='qunit-testrunner-toolbar'></div>\" +\n\t\t\"<h2 id='qunit-userAgent'></h2>\" +\n\t\t\"<ol id='qunit-tests'></ol>\";\n\n\tappendBanner();\n\tappendTestResults();\n\tappendUserAgent();\n\tappendToolbar();\n\tappendTestsList( details.modules );\n\ttoolbarModuleFilter();\n\n\tif ( config.hidepassed ) {\n\t\taddClass( qunit.lastChild, \"hidepass\" );\n\t}\n});\n\nQUnit.done(function( details ) {\n\tvar i, key,\n\t\tbanner = id( \"qunit-banner\" ),\n\t\ttests = id( \"qunit-tests\" ),\n\t\thtml = [\n\t\t\t\"Tests completed in \",\n\t\t\tdetails.runtime,\n\t\t\t\" milliseconds.<br />\",\n\t\t\t\"<span class='passed'>\",\n\t\t\tdetails.passed,\n\t\t\t\"</span> assertions of <span class='total'>\",\n\t\t\tdetails.total,\n\t\t\t\"</span> passed, <span class='failed'>\",\n\t\t\tdetails.failed,\n\t\t\t\"</span> failed.\"\n\t\t].join( \"\" );\n\n\tif ( banner ) {\n\t\tbanner.className = details.failed ? \"qunit-fail\" : \"qunit-pass\";\n\t}\n\n\tif ( tests ) {\n\t\tid( \"qunit-testresult\" ).innerHTML = html;\n\t}\n\n\tif ( config.altertitle && defined.document && document.title ) {\n\n\t\t// show ✖ for good, ✔ for bad suite result in title\n\t\t// use escape sequences in case file gets loaded with non-utf-8-charset\n\t\tdocument.title = [\n\t\t\t( details.failed ? \"\\u2716\" : \"\\u2714\" ),\n\t\t\tdocument.title.replace( /^[\\u2714\\u2716] /i, \"\" )\n\t\t].join( \" \" );\n\t}\n\n\t// clear own sessionStorage items if all tests passed\n\tif ( config.reorder && defined.sessionStorage && details.failed === 0 ) {\n\t\tfor ( i = 0; i < sessionStorage.length; i++ ) {\n\t\t\tkey = sessionStorage.key( i++ );\n\t\t\tif ( key.indexOf( \"qunit-test-\" ) === 0 ) {\n\t\t\t\tsessionStorage.removeItem( key );\n\t\t\t}\n\t\t}\n\t}\n\n\t// scroll back to top to show results\n\tif ( config.scrolltop && window.scrollTo ) {\n\t\twindow.scrollTo( 0, 0 );\n\t}\n});\n\nfunction getNameHtml( name, module ) {\n\tvar nameHtml = \"\";\n\n\tif ( module ) {\n\t\tnameHtml = \"<span class='module-name'>\" + escapeText( module ) + \"</span>: \";\n\t}\n\n\tnameHtml += \"<span class='test-name'>\" + escapeText( name ) + \"</span>\";\n\n\treturn nameHtml;\n}\n\nQUnit.testStart(function( details ) {\n\tvar running, testBlock;\n\n\ttestBlock = id( \"qunit-test-output-\" + details.testId );\n\tif ( testBlock ) {\n\t\ttestBlock.className = \"running\";\n\t} else {\n\n\t\t// Report later registered tests\n\t\tappendTest( details.name, details.testId, details.module );\n\t}\n\n\trunning = id( \"qunit-testresult\" );\n\tif ( running ) {\n\t\trunning.innerHTML = \"Running: <br />\" + getNameHtml( details.name, details.module );\n\t}\n\n});\n\nQUnit.log(function( details ) {\n\tvar assertList, assertLi,\n\t\tmessage, expected, actual,\n\t\ttestItem = id( \"qunit-test-output-\" + details.testId );\n\n\tif ( !testItem ) {\n\t\treturn;\n\t}\n\n\tmessage = escapeText( details.message ) || ( details.result ? \"okay\" : \"failed\" );\n\tmessage = \"<span class='test-message'>\" + message + \"</span>\";\n\tmessage += \"<span class='runtime'>@ \" + details.runtime + \" ms</span>\";\n\n\t// pushFailure doesn't provide details.expected\n\t// when it calls, it's implicit to also not show expected and diff stuff\n\t// Also, we need to check details.expected existence, as it can exist and be undefined\n\tif ( !details.result && hasOwn.call( details, \"expected\" ) ) {\n\t\texpected = escapeText( QUnit.dump.parse( details.expected ) );\n\t\tactual = escapeText( QUnit.dump.parse( details.actual ) );\n\t\tmessage += \"<table><tr class='test-expected'><th>Expected: </th><td><pre>\" +\n\t\t\texpected +\n\t\t\t\"</pre></td></tr>\";\n\n\t\tif ( actual !== expected ) {\n\t\t\tmessage += \"<tr class='test-actual'><th>Result: </th><td><pre>\" +\n\t\t\t\tactual + \"</pre></td></tr>\" +\n\t\t\t\t\"<tr class='test-diff'><th>Diff: </th><td><pre>\" +\n\t\t\t\tQUnit.diff( expected, actual ) + \"</pre></td></tr>\";\n\t\t}\n\n\t\tif ( details.source ) {\n\t\t\tmessage += \"<tr class='test-source'><th>Source: </th><td><pre>\" +\n\t\t\t\tescapeText( details.source ) + \"</pre></td></tr>\";\n\t\t}\n\n\t\tmessage += \"</table>\";\n\n\t// this occours when pushFailure is set and we have an extracted stack trace\n\t} else if ( !details.result && details.source ) {\n\t\tmessage += \"<table>\" +\n\t\t\t\"<tr class='test-source'><th>Source: </th><td><pre>\" +\n\t\t\tescapeText( details.source ) + \"</pre></td></tr>\" +\n\t\t\t\"</table>\";\n\t}\n\n\tassertList = testItem.getElementsByTagName( \"ol\" )[ 0 ];\n\n\tassertLi = document.createElement( \"li\" );\n\tassertLi.className = details.result ? \"pass\" : \"fail\";\n\tassertLi.innerHTML = message;\n\tassertList.appendChild( assertLi );\n});\n\nQUnit.testDone(function( details ) {\n\tvar testTitle, time, testItem, assertList,\n\t\tgood, bad, testCounts, skipped,\n\t\ttests = id( \"qunit-tests\" );\n\n\tif ( !tests ) {\n\t\treturn;\n\t}\n\n\ttestItem = id( \"qunit-test-output-\" + details.testId );\n\n\tassertList = testItem.getElementsByTagName( \"ol\" )[ 0 ];\n\n\tgood = details.passed;\n\tbad = details.failed;\n\n\t// store result when possible\n\tif ( config.reorder && defined.sessionStorage ) {\n\t\tif ( bad ) {\n\t\t\tsessionStorage.setItem( \"qunit-test-\" + details.module + \"-\" + details.name, bad );\n\t\t} else {\n\t\t\tsessionStorage.removeItem( \"qunit-test-\" + details.module + \"-\" + details.name );\n\t\t}\n\t}\n\n\tif ( bad === 0 ) {\n\t\taddClass( assertList, \"qunit-collapsed\" );\n\t}\n\n\t// testItem.firstChild is the test name\n\ttestTitle = testItem.firstChild;\n\n\ttestCounts = bad ?\n\t\t\"<b class='failed'>\" + bad + \"</b>, \" + \"<b class='passed'>\" + good + \"</b>, \" :\n\t\t\"\";\n\n\ttestTitle.innerHTML += \" <b class='counts'>(\" + testCounts +\n\t\tdetails.assertions.length + \")</b>\";\n\n\tif ( details.skipped ) {\n\t\taddClass( testItem, \"skipped\" );\n\t\tskipped = document.createElement( \"em\" );\n\t\tskipped.className = \"qunit-skipped-label\";\n\t\tskipped.innerHTML = \"skipped\";\n\t\ttestItem.insertBefore( skipped, testTitle );\n\t} else {\n\t\taddEvent( testTitle, \"click\", function() {\n\t\t\ttoggleClass( assertList, \"qunit-collapsed\" );\n\t\t});\n\n\t\ttestItem.className = bad ? \"fail\" : \"pass\";\n\n\t\ttime = document.createElement( \"span\" );\n\t\ttime.className = \"runtime\";\n\t\ttime.innerHTML = details.runtime + \" ms\";\n\t\ttestItem.insertBefore( time, assertList );\n\t}\n});\n\nif ( !defined.document || document.readyState === \"complete\" ) {\n\tconfig.pageLoaded = true;\n\tconfig.autorun = true;\n}\n\nif ( defined.document ) {\n\taddEvent( window, \"load\", QUnit.load );\n}\n\n})();\n"
  },
  {
    "path": "public/static/home/examples/landing-page.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\" />\n  <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"../assets/img//apple-icon.png\">\n  <link rel=\"icon\" type=\"image/png\" href=\"../assets/img//favicon.png\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n  <title>\n    Paper Kit by Creative Tim\n  </title>\n  <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n  <!--     Fonts and icons     -->\n  <link href=\"https://fonts.googleapis.com/css?family=Montserrat:400,700,200\" rel=\"stylesheet\" />\n  <link href=\"https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css\" rel=\"stylesheet\">\n  <!-- CSS Files -->\n  <link href=\"../assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n  <link href=\"../assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n  <!-- CSS Just for demo purpose, don't include it in your project -->\n  <link href=\"../assets/demo/demo.css\" rel=\"stylesheet\" />\n</head>\n\n<body class=\"landing-page sidebar-collapse\">\n  <!-- Navbar -->\n  <nav class=\"navbar navbar-expand-lg fixed-top navbar-transparent \" color-on-scroll=\"300\">\n    <div class=\"container\">\n      <div class=\"navbar-translate\">\n        <a class=\"navbar-brand\" href=\"https://demos.creative-tim.com/paper-kit/index.html\" rel=\"tooltip\" title=\"Coded by Creative Tim\" data-placement=\"bottom\" target=\"_blank\">\n          Paper Kit 2\n        </a>\n        <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n          <span class=\"navbar-toggler-bar bar1\"></span>\n          <span class=\"navbar-toggler-bar bar2\"></span>\n          <span class=\"navbar-toggler-bar bar3\"></span>\n        </button>\n      </div>\n      <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n        <ul class=\"navbar-nav\">\n          <li class=\"nav-item\">\n            <a href=\"../index.html\" class=\"nav-link\"><i class=\"nc-icon nc-layout-11\"></i> Components</a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://demos.creative-tim.com/paper-kit-2/docs/1.0/getting-started/introduction.html\" target=\"_blank\" class=\"nav-link\"><i class=\"nc-icon nc-book-bookmark\"></i> Documentation</a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Twitter\" data-placement=\"bottom\" href=\"https://twitter.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-twitter\"></i>\n              <p class=\"d-lg-none\">Twitter</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Like us on Facebook\" data-placement=\"bottom\" href=\"https://www.facebook.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-facebook-square\"></i>\n              <p class=\"d-lg-none\">Facebook</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Instagram\" data-placement=\"bottom\" href=\"https://www.instagram.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-instagram\"></i>\n              <p class=\"d-lg-none\">Instagram</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Star on GitHub\" data-placement=\"bottom\" href=\"https://www.github.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-github\"></i>\n              <p class=\"d-lg-none\">GitHub</p>\n            </a>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </nav>\n  <!-- End Navbar -->\n  <div class=\"page-header\" data-parallax=\"true\" style=\"background-image: url('../assets/img/daniel-olahh.jpg');\">\n    <div class=\"filter\"></div>\n    <div class=\"container\">\n      <div class=\"motto text-center\">\n        <h1>Example page</h1>\n        <h3>Start designing your landing page here.</h3>\n        <br />\n        <a href=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" class=\"btn btn-outline-neutral btn-round\"><i class=\"fa fa-play\"></i>Watch video</a>\n        <button type=\"button\" class=\"btn btn-outline-neutral btn-round\">Download</button>\n      </div>\n    </div>\n  </div>\n  <div class=\"main\">\n    <div class=\"section text-center\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-md-8 ml-auto mr-auto\">\n            <h2 class=\"title\">Let's talk product</h2>\n            <h5 class=\"description\">This is the paragraph where you can write more details about your product. Keep you user engaged by providing meaningful information. Remember that by this time, the user is curious, otherwise he wouldn't scroll to get here. Add a button if you want the user to see more.</h5>\n            <br>\n            <a href=\"#paper-kit\" class=\"btn btn-danger btn-round\">See Details</a>\n          </div>\n        </div>\n        <br/>\n        <br/>\n        <div class=\"row\">\n          <div class=\"col-md-3\">\n            <div class=\"info\">\n              <div class=\"icon icon-danger\">\n                <i class=\"nc-icon nc-album-2\"></i>\n              </div>\n              <div class=\"description\">\n                <h4 class=\"info-title\">Beautiful Gallery</h4>\n                <p class=\"description\">Spend your time generating new ideas. You don't have to think of implementing.</p>\n                <a href=\"javascript:;\" class=\"btn btn-link btn-danger\">See more</a>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-md-3\">\n            <div class=\"info\">\n              <div class=\"icon icon-danger\">\n                <i class=\"nc-icon nc-bulb-63\"></i>\n              </div>\n              <div class=\"description\">\n                <h4 class=\"info-title\">New Ideas</h4>\n                <p>Larger, yet dramatically thinner. More powerful, but remarkably power efficient.</p>\n                <a href=\"javascript:;\" class=\"btn btn-link btn-danger\">See more</a>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-md-3\">\n            <div class=\"info\">\n              <div class=\"icon icon-danger\">\n                <i class=\"nc-icon nc-chart-bar-32\"></i>\n              </div>\n              <div class=\"description\">\n                <h4 class=\"info-title\">Statistics</h4>\n                <p>Choose from a veriety of many colors resembling sugar paper pastels.</p>\n                <a href=\"javascript:;\" class=\"btn btn-link btn-danger\">See more</a>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-md-3\">\n            <div class=\"info\">\n              <div class=\"icon icon-danger\">\n                <i class=\"nc-icon nc-sun-fog-29\"></i>\n              </div>\n              <div class=\"description\">\n                <h4 class=\"info-title\">Delightful design</h4>\n                <p>Find unique and handmade delightful designs related items directly from our sellers.</p>\n                <a href=\"javascript:;\" class=\"btn btn-link btn-danger\">See more</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"section section-dark text-center\">\n      <div class=\"container\">\n        <h2 class=\"title\">Let's talk about us</h2>\n        <div class=\"row\">\n          <div class=\"col-md-4\">\n            <div class=\"card card-profile card-plain\">\n              <div class=\"card-avatar\">\n                <a href=\"#avatar\">\n                  <img src=\"../assets/img/faces/clem-onojeghuo-3.jpg\" alt=\"...\">\n                </a>\n              </div>\n              <div class=\"card-body\">\n                <a href=\"#paper-kit\">\n                  <div class=\"author\">\n                    <h4 class=\"card-title\">Henry Ford</h4>\n                    <h6 class=\"card-category\">Product Manager</h6>\n                  </div>\n                </a>\n                <p class=\"card-description text-center\">\n                  Teamwork is so important that it is virtually impossible for you to reach the heights of your capabilities or make the money that you want without becoming very good at it.\n                </p>\n              </div>\n              <div class=\"card-footer text-center\">\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-twitter\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-google-plus\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-linkedin\"></i></a>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-md-4\">\n            <div class=\"card card-profile card-plain\">\n              <div class=\"card-avatar\">\n                <a href=\"#avatar\">\n                  <img src=\"../assets/img/faces/joe-gardner-2.jpg\" alt=\"...\">\n                </a>\n              </div>\n              <div class=\"card-body\">\n                <a href=\"#paper-kit\">\n                  <div class=\"author\">\n                    <h4 class=\"card-title\">Sophie West</h4>\n                    <h6 class=\"card-category\">Designer</h6>\n                  </div>\n                </a>\n                <p class=\"card-description text-center\">\n                  A group becomes a team when each member is sure enough of himself and his contribution to praise the skill of the others. No one can whistle a symphony. It takes an orchestra to play it.\n                </p>\n              </div>\n              <div class=\"card-footer text-center\">\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-twitter\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-google-plus\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-linkedin\"></i></a>\n              </div>\n            </div>\n          </div>\n          <div class=\"col-md-4\">\n            <div class=\"card card-profile card-plain\">\n              <div class=\"card-avatar\">\n                <a href=\"#avatar\">\n                  <img src=\"../assets/img/faces/erik-lucatero-2.jpg\" alt=\"...\">\n                </a>\n              </div>\n              <div class=\"card-body\">\n                <a href=\"#paper-kit\">\n                  <div class=\"author\">\n                    <h4 class=\"card-title\">Robert Orben</h4>\n                    <h6 class=\"card-category\">Developer</h6>\n                  </div>\n                </a>\n                <p class=\"card-description text-center\">\n                  The strength of the team is each individual member. The strength of each member is the team. If you can laugh together, you can work together, silence isn’t golden, it’s deadly.\n                </p>\n              </div>\n              <div class=\"card-footer text-center\">\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-twitter\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-google-plus\"></i></a>\n                <a href=\"#pablo\" class=\"btn btn-link btn-just-icon btn-neutral\"><i class=\"fa fa-linkedin\"></i></a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"section landing-section\">\n      <div class=\"container\">\n        <div class=\"row\">\n          <div class=\"col-md-8 ml-auto mr-auto\">\n            <h2 class=\"text-center\">Keep in touch?</h2>\n            <form class=\"contact-form\">\n              <div class=\"row\">\n                <div class=\"col-md-6\">\n                  <label>Name</label>\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\">\n                        <i class=\"nc-icon nc-single-02\"></i>\n                      </span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" placeholder=\"Name\">\n                  </div>\n                </div>\n                <div class=\"col-md-6\">\n                  <label>Email</label>\n                  <div class=\"input-group\">\n                    <div class=\"input-group-prepend\">\n                      <span class=\"input-group-text\">\n                        <i class=\"nc-icon nc-email-85\"></i>\n                      </span>\n                    </div>\n                    <input type=\"text\" class=\"form-control\" placeholder=\"Email\">\n                  </div>\n                </div>\n              </div>\n              <label>Message</label>\n              <textarea class=\"form-control\" rows=\"4\" placeholder=\"Tell us your thoughts and feelings...\"></textarea>\n              <div class=\"row\">\n                <div class=\"col-md-4 ml-auto mr-auto\">\n                  <button class=\"btn btn-danger btn-lg btn-fill\">Send Message</button>\n                </div>\n              </div>\n            </form>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <footer class=\"footer   footer-white \">\n    <div class=\"container\">\n      <div class=\"row\">\n        <nav class=\"footer-nav\">\n          <ul>\n            <li>\n              <a href=\"https://www.creative-tim.com\" target=\"_blank\">Creative Tim</a>\n            </li>\n            <li>\n              <a href=\"http://blog.creative-tim.com/\" target=\"_blank\">Blog</a>\n            </li>\n            <li>\n              <a href=\"https://www.creative-tim.com/license\" target=\"_blank\">Licenses</a>\n            </li>\n          </ul>\n        </nav>\n        <div class=\"credits ml-auto\">\n          <span class=\"copyright\">\n            ©\n            <script>\n              document.write(new Date().getFullYear())\n            </script>, made with <i class=\"fa fa-heart heart\"></i> by Creative Tim\n          </span>\n        </div>\n      </div>\n    </div>\n  </footer>\n  <!--   Core JS Files   -->\n  <script src=\"../assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for Switches, full documentation here: http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n  <script src=\"../assets/js/plugins/bootstrap-switch.js\"></script>\n  <!--  Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->\n  <script src=\"../assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for the DatePicker, full documentation here: https://github.com/uxsolutions/bootstrap-datepicker -->\n  <script src=\"../assets/js/plugins/moment.min.js\"></script>\n  <script src=\"../assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n  <!-- Control Center for Paper Kit: parallax effects, scripts for the example pages etc -->\n  <script src=\"../assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n  <!--  Google Maps Plugin    -->\n  <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "public/static/home/examples/profile-page.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\" />\n  <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"../assets/img//apple-icon.png\">\n  <link rel=\"icon\" type=\"image/png\" href=\"../assets/img//favicon.png\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n  <title>\n    Paper Kit by Creative Tim\n  </title>\n  <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n  <!--     Fonts and icons     -->\n  <link href=\"https://fonts.googleapis.com/css?family=Montserrat:400,700,200\" rel=\"stylesheet\" />\n  <link href=\"https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css\" rel=\"stylesheet\">\n  <!-- CSS Files -->\n  <link href=\"../assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n  <link href=\"../assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n  <!-- CSS Just for demo purpose, don't include it in your project -->\n  <link href=\"../assets/demo/demo.css\" rel=\"stylesheet\" />\n</head>\n\n<body class=\"profile-page sidebar-collapse\">\n  <!-- Navbar -->\n  <nav class=\"navbar navbar-expand-lg fixed-top navbar-transparent \" color-on-scroll=\"300\">\n    <div class=\"container\">\n      <div class=\"navbar-translate\">\n        <a class=\"navbar-brand\" href=\"https://demos.creative-tim.com/paper-kit/index.html\" rel=\"tooltip\" title=\"Coded by Creative Tim\" data-placement=\"bottom\" target=\"_blank\">\n          Paper Kit 2\n        </a>\n        <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n          <span class=\"navbar-toggler-bar bar1\"></span>\n          <span class=\"navbar-toggler-bar bar2\"></span>\n          <span class=\"navbar-toggler-bar bar3\"></span>\n        </button>\n      </div>\n      <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n        <ul class=\"navbar-nav\">\n          <li class=\"nav-item\">\n            <a href=\"../index.html\" class=\"nav-link\"><i class=\"nc-icon nc-layout-11\"></i> Components</a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://demos.creative-tim.com/paper-kit-2/docs/1.0/getting-started/introduction.html\" target=\"_blank\" class=\"nav-link\"><i class=\"nc-icon nc-book-bookmark\"></i> Documentation</a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Twitter\" data-placement=\"bottom\" href=\"https://twitter.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-twitter\"></i>\n              <p class=\"d-lg-none\">Twitter</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Like us on Facebook\" data-placement=\"bottom\" href=\"https://www.facebook.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-facebook-square\"></i>\n              <p class=\"d-lg-none\">Facebook</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Instagram\" data-placement=\"bottom\" href=\"https://www.instagram.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-instagram\"></i>\n              <p class=\"d-lg-none\">Instagram</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Star on GitHub\" data-placement=\"bottom\" href=\"https://www.github.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-github\"></i>\n              <p class=\"d-lg-none\">GitHub</p>\n            </a>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </nav>\n  <!-- End Navbar -->\n  <div class=\"page-header page-header-xs\" data-parallax=\"true\" style=\"background-image: url('../assets/img/fabio-mangione.jpg');\">\n    <div class=\"filter\"></div>\n  </div>\n  <div class=\"section profile-content\">\n    <div class=\"container\">\n      <div class=\"owner\">\n        <div class=\"avatar\">\n          <img src=\"../assets/img/faces/joe-gardner-2.jpg\" alt=\"Circle Image\" class=\"img-circle img-no-padding img-responsive\">\n        </div>\n        <div class=\"name\">\n          <h4 class=\"title\">Jane Faker\n            <br />\n          </h4>\n          <h6 class=\"description\">Music Producer</h6>\n        </div>\n      </div>\n      <div class=\"row\">\n        <div class=\"col-md-6 ml-auto mr-auto text-center\">\n          <p>An artist of considerable range, Jane Faker — the name taken by Melbourne-raised, Brooklyn-based Nick Murphy — writes, performs and records all of his own music, giving it a warm, intimate feel with a solid groove structure. </p>\n          <br />\n          <btn class=\"btn btn-outline-default btn-round\"><i class=\"fa fa-cog\"></i> Settings</btn>\n        </div>\n      </div>\n      <br/>\n      <div class=\"nav-tabs-navigation\">\n        <div class=\"nav-tabs-wrapper\">\n          <ul class=\"nav nav-tabs\" role=\"tablist\">\n            <li class=\"nav-item\">\n              <a class=\"nav-link active\" data-toggle=\"tab\" href=\"#follows\" role=\"tab\">Follows</a>\n            </li>\n            <li class=\"nav-item\">\n              <a class=\"nav-link\" data-toggle=\"tab\" href=\"#following\" role=\"tab\">Following</a>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <!-- Tab panes -->\n      <div class=\"tab-content following\">\n        <div class=\"tab-pane active\" id=\"follows\" role=\"tabpanel\">\n          <div class=\"row\">\n            <div class=\"col-md-6 ml-auto mr-auto\">\n              <ul class=\"list-unstyled follows\">\n                <li>\n                  <div class=\"row\">\n                    <div class=\"col-lg-2 col-md-4 col-4 ml-auto mr-auto\">\n                      <img src=\"../assets/img/faces/clem-onojeghuo-2.jpg\" alt=\"Circle Image\" class=\"img-circle img-no-padding img-responsive\">\n                    </div>\n                    <div class=\"col-lg-7 col-md-4 col-4  ml-auto mr-auto\">\n                      <h6>Flume\n                        <br/>\n                        <small>Musical Producer</small>\n                      </h6>\n                    </div>\n                    <div class=\"col-lg-3 col-md-4 col-4  ml-auto mr-auto\">\n                      <div class=\"form-check\">\n                        <label class=\"form-check-label\">\n                          <input class=\"form-check-input\" type=\"checkbox\" value=\"\" checked>\n                          <span class=\"form-check-sign\"></span>\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n                <hr />\n                <li>\n                  <div class=\"row\">\n                    <div class=\"col-lg-2 col-md-4 col-4 mx-auto \">\n                      <img src=\"../assets/img/faces/ayo-ogunseinde-2.jpg\" alt=\"Circle Image\" class=\"img-circle img-no-padding img-responsive\">\n                    </div>\n                    <div class=\"col-lg-7 col-md-4 col-4\">\n                      <h6>Banks\n                        <br />\n                        <small>Singer</small>\n                      </h6>\n                    </div>\n                    <div class=\"col-lg-3 col-md-4 col-4\">\n                      <div class=\"form-check\">\n                        <label class=\"form-check-label\">\n                          <input class=\"form-check-input\" type=\"checkbox\" value=\"\">\n                          <span class=\"form-check-sign\"></span>\n                        </label>\n                      </div>\n                    </div>\n                  </div>\n                </li>\n              </ul>\n            </div>\n          </div>\n        </div>\n        <div class=\"tab-pane text-center\" id=\"following\" role=\"tabpanel\">\n          <h3 class=\"text-muted\">Not following anyone yet :(</h3>\n          <button class=\"btn btn-warning btn-round\">Find artists</button>\n        </div>\n      </div>\n    </div>\n  </div>\n  <footer class=\"footer    \">\n    <div class=\"container\">\n      <div class=\"row\">\n        <nav class=\"footer-nav\">\n          <ul>\n            <li>\n              <a href=\"https://www.creative-tim.com\" target=\"_blank\">Creative Tim</a>\n            </li>\n            <li>\n              <a href=\"http://blog.creative-tim.com/\" target=\"_blank\">Blog</a>\n            </li>\n            <li>\n              <a href=\"https://www.creative-tim.com/license\" target=\"_blank\">Licenses</a>\n            </li>\n          </ul>\n        </nav>\n        <div class=\"credits ml-auto\">\n          <span class=\"copyright\">\n            ©\n            <script>\n              document.write(new Date().getFullYear())\n            </script>, made with <i class=\"fa fa-heart heart\"></i> by Creative Tim\n          </span>\n        </div>\n      </div>\n    </div>\n  </footer>\n  <!--   Core JS Files   -->\n  <script src=\"../assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for Switches, full documentation here: http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n  <script src=\"../assets/js/plugins/bootstrap-switch.js\"></script>\n  <!--  Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->\n  <script src=\"../assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for the DatePicker, full documentation here: https://github.com/uxsolutions/bootstrap-datepicker -->\n  <script src=\"../assets/js/plugins/moment.min.js\"></script>\n  <script src=\"../assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n  <!-- Control Center for Paper Kit: parallax effects, scripts for the example pages etc -->\n  <script src=\"../assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n  <!--  Google Maps Plugin    -->\n  <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "public/static/home/examples/register-page.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"utf-8\" />\n  <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"../assets/img//apple-icon.png\">\n  <link rel=\"icon\" type=\"image/png\" href=\"../assets/img//favicon.png\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n  <title>\n    Paper Kit by Creative Tim\n  </title>\n  <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n  <!--     Fonts and icons     -->\n  <link href=\"https://fonts.googleapis.com/css?family=Montserrat:400,700,200\" rel=\"stylesheet\" />\n  <link href=\"https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css\" rel=\"stylesheet\">\n  <!-- CSS Files -->\n  <link href=\"../assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n  <link href=\"../assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n  <!-- CSS Just for demo purpose, don't include it in your project -->\n  <link href=\"../assets/demo/demo.css\" rel=\"stylesheet\" />\n</head>\n\n<body class=\"register-page sidebar-collapse\">\n  <!-- Navbar -->\n  <nav class=\"navbar navbar-expand-lg fixed-top navbar-transparent \" color-on-scroll=\"300\">\n    <div class=\"container\">\n      <div class=\"navbar-translate\">\n        <a class=\"navbar-brand\" href=\"https://demos.creative-tim.com/paper-kit/index.html\" rel=\"tooltip\" title=\"Coded by Creative Tim\" data-placement=\"bottom\" target=\"_blank\">\n          Paper Kit 2\n        </a>\n        <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n          <span class=\"navbar-toggler-bar bar1\"></span>\n          <span class=\"navbar-toggler-bar bar2\"></span>\n          <span class=\"navbar-toggler-bar bar3\"></span>\n        </button>\n      </div>\n      <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n        <ul class=\"navbar-nav\">\n          <li class=\"nav-item\">\n            <a href=\"../index.html\" class=\"nav-link\"><i class=\"nc-icon nc-layout-11\"></i> Components</a>\n          </li>\n          <li class=\"nav-item\">\n            <a href=\"https://demos.creative-tim.com/paper-kit-2/docs/1.0/getting-started/introduction.html\" target=\"_blank\" class=\"nav-link\"><i class=\"nc-icon nc-book-bookmark\"></i> Documentation</a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Twitter\" data-placement=\"bottom\" href=\"https://twitter.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-twitter\"></i>\n              <p class=\"d-lg-none\">Twitter</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Like us on Facebook\" data-placement=\"bottom\" href=\"https://www.facebook.com/CreativeTim\" target=\"_blank\">\n              <i class=\"fa fa-facebook-square\"></i>\n              <p class=\"d-lg-none\">Facebook</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Follow us on Instagram\" data-placement=\"bottom\" href=\"https://www.instagram.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-instagram\"></i>\n              <p class=\"d-lg-none\">Instagram</p>\n            </a>\n          </li>\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" rel=\"tooltip\" title=\"Star on GitHub\" data-placement=\"bottom\" href=\"https://www.github.com/CreativeTimOfficial\" target=\"_blank\">\n              <i class=\"fa fa-github\"></i>\n              <p class=\"d-lg-none\">GitHub</p>\n            </a>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </nav>\n  <!-- End Navbar -->\n  <!-- <div class=\"page-header\" style=\"background-image: url('../assets/img/login-image.jpg');\">\n\n    <div class=\"container\">\n        <div class=\"row\">\n            \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n        <div class=\"page-header\" style=\"background-image: url('../assets/img/login-image.jpg');\">\n            <div class=\"filter\"></div>\n                <div class=\"container\">\n                    <div class=\"row\">\n                        <div class=\"col-lg-4 ml-auto mr-auto\">\n                            <div class=\"card card-register\">\n                                <h3 class=\"title mx-auto\">Welcome</h3>\n\t\t\t\t\t\t\t\t<div class=\"social-line text-center\">\n                                    <a href=\"#pablo\" class=\"btn btn-neutral btn-facebook btn-just-icon\">\n                                        <i class=\"fa fa-facebook-square\"></i>\n                                    </a>\n                                    <a href=\"#pablo\" class=\"btn btn-neutral btn-google btn-just-icon\">\n                                        <i class=\"fa fa-google-plus\"></i>\n                                    </a>\n\t\t\t\t\t\t\t\t\t<a href=\"#pablo\" class=\"btn btn-neutral btn-twitter btn-just-icon\">\n\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-twitter\"></i>\n\t\t\t\t\t\t\t\t\t</a>\n                                </div>\n                                <form class=\"register-form\">\n                                    <label>Email</label>\n                                    <input type=\"text\" class=\"form-control\" placeholder=\"Email\">\n\n                                    <label>Password</label>\n                                    <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n                                    <button class=\"btn btn-danger btn-block btn-round\">Register</button>\n                                </form>\n                                <div class=\"forgot\">\n                                    <a href=\"#\" class=\"btn btn-link btn-danger\">Forgot password?</a>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"footer register-footer text-center\">\n\t\t\t\t\t\t<h6>© <script>document.write(new Date().getFullYear())</script>, made with <i class=\"fa fa-heart heart\"></i> by Creative Tim</h6>\n\t\t\t\t\t</div>\n        </div>\n\n        </div>\n    </div>\n</div> -->\n  <div class=\"page-header\" style=\"background-image: url('../assets/img/login-image.jpg');\">\n    <div class=\"filter\"></div>\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-lg-4 ml-auto mr-auto\">\n          <div class=\"card card-register\">\n            <h3 class=\"title mx-auto\">Welcome</h3>\n            <div class=\"social-line text-center\">\n              <a href=\"#pablo\" class=\"btn btn-neutral btn-facebook btn-just-icon\">\n                <i class=\"fa fa-facebook-square\"></i>\n              </a>\n              <a href=\"#pablo\" class=\"btn btn-neutral btn-google btn-just-icon\">\n                <i class=\"fa fa-google-plus\"></i>\n              </a>\n              <a href=\"#pablo\" class=\"btn btn-neutral btn-twitter btn-just-icon\">\n                <i class=\"fa fa-twitter\"></i>\n              </a>\n            </div>\n            <form class=\"register-form\">\n              <label>Email</label>\n              <input type=\"text\" class=\"form-control\" placeholder=\"Email\">\n              <label>Password</label>\n              <input type=\"password\" class=\"form-control\" placeholder=\"Password\">\n              <button class=\"btn btn-danger btn-block btn-round\">Register</button>\n            </form>\n            <div class=\"forgot\">\n              <a href=\"#\" class=\"btn btn-link btn-danger\">Forgot password?</a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"footer register-footer text-center\">\n      <h6>©\n        <script>\n          document.write(new Date().getFullYear())\n        </script>, made with <i class=\"fa fa-heart heart\"></i> by Creative Tim</h6>\n    </div>\n  </div>\n  <!--   Core JS Files   -->\n  <script src=\"../assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n  <script src=\"../assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for Switches, full documentation here: http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n  <script src=\"../assets/js/plugins/bootstrap-switch.js\"></script>\n  <!--  Plugin for the Sliders, full documentation here: http://refreshless.com/nouislider/ -->\n  <script src=\"../assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n  <!--  Plugin for the DatePicker, full documentation here: https://github.com/uxsolutions/bootstrap-datepicker -->\n  <script src=\"../assets/js/plugins/moment.min.js\"></script>\n  <script src=\"../assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n  <!-- Control Center for Paper Kit: parallax effects, scripts for the example pages etc -->\n  <script src=\"../assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n  <!--  Google Maps Plugin    -->\n  <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "public/static/home/font-awesome4.7/HELP-US-OUT.txt",
    "content": "I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,\nFort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,\ncomprehensive icon sets or copy and paste your own.\n\nPlease. Check it out.\n\n-Dave Gandy\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/css/font-awesome.css",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n  content: \"\\f281\";\n}\n.fa-edge:before {\n  content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"\\f283\";\n}\n.fa-codiepie:before {\n  content: \"\\f284\";\n}\n.fa-modx:before {\n  content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n  content: \"\\f286\";\n}\n.fa-usb:before {\n  content: \"\\f287\";\n}\n.fa-product-hunt:before {\n  content: \"\\f288\";\n}\n.fa-mixcloud:before {\n  content: \"\\f289\";\n}\n.fa-scribd:before {\n  content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n  content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n  content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n  content: \"\\f291\";\n}\n.fa-hashtag:before {\n  content: \"\\f292\";\n}\n.fa-bluetooth:before {\n  content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"\\f294\";\n}\n.fa-percent:before {\n  content: \"\\f295\";\n}\n.fa-gitlab:before {\n  content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n  content: \"\\f297\";\n}\n.fa-wpforms:before {\n  content: \"\\f298\";\n}\n.fa-envira:before {\n  content: \"\\f299\";\n}\n.fa-universal-access:before {\n  content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n  content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n  content: \"\\f29c\";\n}\n.fa-blind:before {\n  content: \"\\f29d\";\n}\n.fa-audio-description:before {\n  content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n  content: \"\\f2a0\";\n}\n.fa-braille:before {\n  content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n  content: \"\\f2a4\";\n}\n.fa-glide:before {\n  content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n  content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n  content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n  content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n  content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n  content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n  content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n  content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n  content: \"\\f2ae\";\n}\n.fa-first-order:before {\n  content: \"\\f2b0\";\n}\n.fa-yoast:before {\n  content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n  content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n  content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n  content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n  content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n  content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n  content: \"\\f2b7\";\n}\n.fa-linode:before {\n  content: \"\\f2b8\";\n}\n.fa-address-book:before {\n  content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n  content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n  content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n  content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n  content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n  content: \"\\f2be\";\n}\n.fa-user-o:before {\n  content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n  content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n  content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n  content: \"\\f2c3\";\n}\n.fa-quora:before {\n  content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n  content: \"\\f2c5\";\n}\n.fa-telegram:before {\n  content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n  content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n  content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\";\n}\n.fa-shower:before {\n  content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n  content: \"\\f2cd\";\n}\n.fa-podcast:before {\n  content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n  content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n  content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n  content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n  content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n  content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n  content: \"\\f2d5\";\n}\n.fa-grav:before {\n  content: \"\\f2d6\";\n}\n.fa-etsy:before {\n  content: \"\\f2d7\";\n}\n.fa-imdb:before {\n  content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n  content: \"\\f2d9\";\n}\n.fa-eercast:before {\n  content: \"\\f2da\";\n}\n.fa-microchip:before {\n  content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n  content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n  content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n  content: \"\\f2de\";\n}\n.fa-meetup:before {\n  content: \"\\f2e0\";\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/animated.less",
    "content": "// Animated Icons\n// --------------------------\n\n.@{fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.@{fa-css-prefix}-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/bordered-pulled.less",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.@{fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: solid .08em @fa-border-color;\n  border-radius: .1em;\n}\n\n.@{fa-css-prefix}-pull-left { float: left; }\n.@{fa-css-prefix}-pull-right { float: right; }\n\n.@{fa-css-prefix} {\n  &.@{fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.@{fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right { float: right; }\n.pull-left { float: left; }\n\n.@{fa-css-prefix} {\n  &.pull-left { margin-right: .3em; }\n  &.pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/core.less",
    "content": "// Base Class Definition\n// -------------------------\n\n.@{fa-css-prefix} {\n  display: inline-block;\n  font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/fixed-width.less",
    "content": "// Fixed Width Icons\n// -------------------------\n.@{fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/font-awesome.less",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n\n@import \"variables.less\";\n@import \"mixins.less\";\n@import \"path.less\";\n@import \"core.less\";\n@import \"larger.less\";\n@import \"fixed-width.less\";\n@import \"list.less\";\n@import \"bordered-pulled.less\";\n@import \"animated.less\";\n@import \"rotated-flipped.less\";\n@import \"stacked.less\";\n@import \"icons.less\";\n@import \"screen-reader.less\";\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/icons.less",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n\n.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }\n.@{fa-css-prefix}-music:before { content: @fa-var-music; }\n.@{fa-css-prefix}-search:before { content: @fa-var-search; }\n.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }\n.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }\n.@{fa-css-prefix}-star:before { content: @fa-var-star; }\n.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }\n.@{fa-css-prefix}-user:before { content: @fa-var-user; }\n.@{fa-css-prefix}-film:before { content: @fa-var-film; }\n.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }\n.@{fa-css-prefix}-th:before { content: @fa-var-th; }\n.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }\n.@{fa-css-prefix}-check:before { content: @fa-var-check; }\n.@{fa-css-prefix}-remove:before,\n.@{fa-css-prefix}-close:before,\n.@{fa-css-prefix}-times:before { content: @fa-var-times; }\n.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }\n.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }\n.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }\n.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }\n.@{fa-css-prefix}-gear:before,\n.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }\n.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }\n.@{fa-css-prefix}-home:before { content: @fa-var-home; }\n.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }\n.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }\n.@{fa-css-prefix}-road:before { content: @fa-var-road; }\n.@{fa-css-prefix}-download:before { content: @fa-var-download; }\n.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }\n.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }\n.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }\n.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }\n.@{fa-css-prefix}-rotate-right:before,\n.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }\n.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }\n.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }\n.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }\n.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }\n.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }\n.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }\n.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }\n.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }\n.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }\n.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }\n.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }\n.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }\n.@{fa-css-prefix}-book:before { content: @fa-var-book; }\n.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }\n.@{fa-css-prefix}-print:before { content: @fa-var-print; }\n.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }\n.@{fa-css-prefix}-font:before { content: @fa-var-font; }\n.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }\n.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }\n.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }\n.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }\n.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }\n.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }\n.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }\n.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }\n.@{fa-css-prefix}-list:before { content: @fa-var-list; }\n.@{fa-css-prefix}-dedent:before,\n.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }\n.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }\n.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }\n.@{fa-css-prefix}-photo:before,\n.@{fa-css-prefix}-image:before,\n.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }\n.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }\n.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }\n.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }\n.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }\n.@{fa-css-prefix}-edit:before,\n.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }\n.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }\n.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }\n.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }\n.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }\n.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }\n.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }\n.@{fa-css-prefix}-play:before { content: @fa-var-play; }\n.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }\n.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }\n.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }\n.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }\n.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }\n.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }\n.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }\n.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }\n.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }\n.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }\n.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }\n.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }\n.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }\n.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }\n.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }\n.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }\n.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }\n.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }\n.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }\n.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }\n.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }\n.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }\n.@{fa-css-prefix}-mail-forward:before,\n.@{fa-css-prefix}-share:before { content: @fa-var-share; }\n.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }\n.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }\n.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }\n.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }\n.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }\n.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }\n.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }\n.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }\n.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }\n.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }\n.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }\n.@{fa-css-prefix}-warning:before,\n.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }\n.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }\n.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }\n.@{fa-css-prefix}-random:before { content: @fa-var-random; }\n.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }\n.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }\n.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }\n.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }\n.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }\n.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }\n.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }\n.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }\n.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }\n.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }\n.@{fa-css-prefix}-bar-chart-o:before,\n.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }\n.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }\n.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }\n.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }\n.@{fa-css-prefix}-key:before { content: @fa-var-key; }\n.@{fa-css-prefix}-gears:before,\n.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }\n.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }\n.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }\n.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }\n.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }\n.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }\n.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }\n.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }\n.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }\n.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }\n.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }\n.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }\n.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }\n.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }\n.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }\n.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }\n.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }\n.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }\n.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }\n.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }\n.@{fa-css-prefix}-facebook-f:before,\n.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }\n.@{fa-css-prefix}-github:before { content: @fa-var-github; }\n.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }\n.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }\n.@{fa-css-prefix}-feed:before,\n.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }\n.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }\n.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }\n.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }\n.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }\n.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }\n.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }\n.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }\n.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }\n.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }\n.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }\n.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }\n.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }\n.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }\n.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }\n.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }\n.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }\n.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }\n.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }\n.@{fa-css-prefix}-group:before,\n.@{fa-css-prefix}-users:before { content: @fa-var-users; }\n.@{fa-css-prefix}-chain:before,\n.@{fa-css-prefix}-link:before { content: @fa-var-link; }\n.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }\n.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }\n.@{fa-css-prefix}-cut:before,\n.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }\n.@{fa-css-prefix}-copy:before,\n.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }\n.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }\n.@{fa-css-prefix}-save:before,\n.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }\n.@{fa-css-prefix}-square:before { content: @fa-var-square; }\n.@{fa-css-prefix}-navicon:before,\n.@{fa-css-prefix}-reorder:before,\n.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }\n.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }\n.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }\n.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }\n.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }\n.@{fa-css-prefix}-table:before { content: @fa-var-table; }\n.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }\n.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }\n.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }\n.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }\n.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }\n.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }\n.@{fa-css-prefix}-money:before { content: @fa-var-money; }\n.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }\n.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }\n.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }\n.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }\n.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }\n.@{fa-css-prefix}-unsorted:before,\n.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }\n.@{fa-css-prefix}-sort-down:before,\n.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }\n.@{fa-css-prefix}-sort-up:before,\n.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }\n.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }\n.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }\n.@{fa-css-prefix}-rotate-left:before,\n.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }\n.@{fa-css-prefix}-legal:before,\n.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }\n.@{fa-css-prefix}-dashboard:before,\n.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }\n.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }\n.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }\n.@{fa-css-prefix}-flash:before,\n.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }\n.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }\n.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }\n.@{fa-css-prefix}-paste:before,\n.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }\n.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }\n.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }\n.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }\n.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }\n.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }\n.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }\n.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }\n.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }\n.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }\n.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }\n.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }\n.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }\n.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }\n.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }\n.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }\n.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }\n.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }\n.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }\n.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }\n.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }\n.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }\n.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }\n.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }\n.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }\n.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }\n.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }\n.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }\n.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }\n.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }\n.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }\n.@{fa-css-prefix}-mobile-phone:before,\n.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }\n.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }\n.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }\n.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }\n.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }\n.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }\n.@{fa-css-prefix}-mail-reply:before,\n.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }\n.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }\n.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }\n.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }\n.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }\n.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }\n.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }\n.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }\n.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }\n.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }\n.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }\n.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }\n.@{fa-css-prefix}-code:before { content: @fa-var-code; }\n.@{fa-css-prefix}-mail-reply-all:before,\n.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }\n.@{fa-css-prefix}-star-half-empty:before,\n.@{fa-css-prefix}-star-half-full:before,\n.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }\n.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }\n.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }\n.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }\n.@{fa-css-prefix}-unlink:before,\n.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }\n.@{fa-css-prefix}-question:before { content: @fa-var-question; }\n.@{fa-css-prefix}-info:before { content: @fa-var-info; }\n.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }\n.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }\n.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }\n.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }\n.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }\n.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }\n.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }\n.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }\n.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }\n.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }\n.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }\n.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }\n.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }\n.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }\n.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }\n.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }\n.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }\n.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }\n.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }\n.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }\n.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }\n.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }\n.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }\n.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }\n.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }\n.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }\n.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }\n.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }\n.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }\n.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }\n.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }\n.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }\n.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }\n.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }\n.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }\n.@{fa-css-prefix}-toggle-down:before,\n.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }\n.@{fa-css-prefix}-toggle-up:before,\n.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }\n.@{fa-css-prefix}-toggle-right:before,\n.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }\n.@{fa-css-prefix}-euro:before,\n.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }\n.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }\n.@{fa-css-prefix}-dollar:before,\n.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }\n.@{fa-css-prefix}-rupee:before,\n.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }\n.@{fa-css-prefix}-cny:before,\n.@{fa-css-prefix}-rmb:before,\n.@{fa-css-prefix}-yen:before,\n.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }\n.@{fa-css-prefix}-ruble:before,\n.@{fa-css-prefix}-rouble:before,\n.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }\n.@{fa-css-prefix}-won:before,\n.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }\n.@{fa-css-prefix}-bitcoin:before,\n.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }\n.@{fa-css-prefix}-file:before { content: @fa-var-file; }\n.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }\n.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }\n.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }\n.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }\n.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }\n.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }\n.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }\n.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }\n.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }\n.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }\n.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }\n.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }\n.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }\n.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }\n.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }\n.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }\n.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }\n.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }\n.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }\n.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }\n.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }\n.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }\n.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }\n.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }\n.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }\n.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }\n.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }\n.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }\n.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }\n.@{fa-css-prefix}-android:before { content: @fa-var-android; }\n.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }\n.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }\n.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }\n.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }\n.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }\n.@{fa-css-prefix}-female:before { content: @fa-var-female; }\n.@{fa-css-prefix}-male:before { content: @fa-var-male; }\n.@{fa-css-prefix}-gittip:before,\n.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }\n.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }\n.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }\n.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }\n.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }\n.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }\n.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }\n.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }\n.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }\n.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }\n.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }\n.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }\n.@{fa-css-prefix}-toggle-left:before,\n.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }\n.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }\n.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }\n.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }\n.@{fa-css-prefix}-turkish-lira:before,\n.@{fa-css-prefix}-try:before { content: @fa-var-try; }\n.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }\n.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }\n.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }\n.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }\n.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }\n.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }\n.@{fa-css-prefix}-institution:before,\n.@{fa-css-prefix}-bank:before,\n.@{fa-css-prefix}-university:before { content: @fa-var-university; }\n.@{fa-css-prefix}-mortar-board:before,\n.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }\n.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }\n.@{fa-css-prefix}-google:before { content: @fa-var-google; }\n.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }\n.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }\n.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }\n.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }\n.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }\n.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }\n.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }\n.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }\n.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }\n.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }\n.@{fa-css-prefix}-language:before { content: @fa-var-language; }\n.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }\n.@{fa-css-prefix}-building:before { content: @fa-var-building; }\n.@{fa-css-prefix}-child:before { content: @fa-var-child; }\n.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }\n.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }\n.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }\n.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }\n.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }\n.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }\n.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }\n.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }\n.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }\n.@{fa-css-prefix}-automobile:before,\n.@{fa-css-prefix}-car:before { content: @fa-var-car; }\n.@{fa-css-prefix}-cab:before,\n.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }\n.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }\n.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }\n.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }\n.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }\n.@{fa-css-prefix}-database:before { content: @fa-var-database; }\n.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }\n.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }\n.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }\n.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }\n.@{fa-css-prefix}-file-photo-o:before,\n.@{fa-css-prefix}-file-picture-o:before,\n.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }\n.@{fa-css-prefix}-file-zip-o:before,\n.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }\n.@{fa-css-prefix}-file-sound-o:before,\n.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }\n.@{fa-css-prefix}-file-movie-o:before,\n.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }\n.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }\n.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }\n.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }\n.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }\n.@{fa-css-prefix}-life-bouy:before,\n.@{fa-css-prefix}-life-buoy:before,\n.@{fa-css-prefix}-life-saver:before,\n.@{fa-css-prefix}-support:before,\n.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }\n.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }\n.@{fa-css-prefix}-ra:before,\n.@{fa-css-prefix}-resistance:before,\n.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }\n.@{fa-css-prefix}-ge:before,\n.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }\n.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }\n.@{fa-css-prefix}-git:before { content: @fa-var-git; }\n.@{fa-css-prefix}-y-combinator-square:before,\n.@{fa-css-prefix}-yc-square:before,\n.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }\n.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }\n.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }\n.@{fa-css-prefix}-wechat:before,\n.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }\n.@{fa-css-prefix}-send:before,\n.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }\n.@{fa-css-prefix}-send-o:before,\n.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }\n.@{fa-css-prefix}-history:before { content: @fa-var-history; }\n.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }\n.@{fa-css-prefix}-header:before { content: @fa-var-header; }\n.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }\n.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }\n.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }\n.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }\n.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }\n.@{fa-css-prefix}-soccer-ball-o:before,\n.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }\n.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }\n.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }\n.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }\n.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }\n.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }\n.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }\n.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }\n.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }\n.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }\n.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }\n.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }\n.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }\n.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }\n.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }\n.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }\n.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }\n.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }\n.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }\n.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }\n.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }\n.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }\n.@{fa-css-prefix}-at:before { content: @fa-var-at; }\n.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }\n.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }\n.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }\n.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }\n.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }\n.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }\n.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }\n.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }\n.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }\n.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }\n.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }\n.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }\n.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }\n.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }\n.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }\n.@{fa-css-prefix}-shekel:before,\n.@{fa-css-prefix}-sheqel:before,\n.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }\n.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }\n.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }\n.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }\n.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }\n.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }\n.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }\n.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }\n.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }\n.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }\n.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }\n.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }\n.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }\n.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }\n.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }\n.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }\n.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }\n.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }\n.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }\n.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }\n.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }\n.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }\n.@{fa-css-prefix}-intersex:before,\n.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }\n.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }\n.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }\n.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }\n.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }\n.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }\n.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }\n.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }\n.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }\n.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }\n.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }\n.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }\n.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }\n.@{fa-css-prefix}-server:before { content: @fa-var-server; }\n.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }\n.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }\n.@{fa-css-prefix}-hotel:before,\n.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }\n.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }\n.@{fa-css-prefix}-train:before { content: @fa-var-train; }\n.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }\n.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }\n.@{fa-css-prefix}-yc:before,\n.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }\n.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }\n.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }\n.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }\n.@{fa-css-prefix}-battery-4:before,\n.@{fa-css-prefix}-battery:before,\n.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }\n.@{fa-css-prefix}-battery-3:before,\n.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }\n.@{fa-css-prefix}-battery-2:before,\n.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }\n.@{fa-css-prefix}-battery-1:before,\n.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }\n.@{fa-css-prefix}-battery-0:before,\n.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }\n.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }\n.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }\n.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }\n.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }\n.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }\n.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }\n.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }\n.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }\n.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }\n.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }\n.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }\n.@{fa-css-prefix}-hourglass-1:before,\n.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }\n.@{fa-css-prefix}-hourglass-2:before,\n.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }\n.@{fa-css-prefix}-hourglass-3:before,\n.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }\n.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }\n.@{fa-css-prefix}-hand-grab-o:before,\n.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }\n.@{fa-css-prefix}-hand-stop-o:before,\n.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }\n.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }\n.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }\n.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }\n.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }\n.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }\n.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }\n.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }\n.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }\n.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }\n.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }\n.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }\n.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }\n.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }\n.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }\n.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }\n.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }\n.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }\n.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }\n.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }\n.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }\n.@{fa-css-prefix}-tv:before,\n.@{fa-css-prefix}-television:before { content: @fa-var-television; }\n.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }\n.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }\n.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }\n.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }\n.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }\n.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }\n.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }\n.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }\n.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }\n.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }\n.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }\n.@{fa-css-prefix}-map:before { content: @fa-var-map; }\n.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }\n.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }\n.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }\n.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }\n.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }\n.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }\n.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }\n.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }\n.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }\n.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }\n.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }\n.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }\n.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }\n.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }\n.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }\n.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }\n.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }\n.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }\n.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }\n.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }\n.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }\n.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }\n.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }\n.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }\n.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }\n.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }\n.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }\n.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }\n.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }\n.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }\n.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }\n.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }\n.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }\n.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }\n.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }\n.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }\n.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }\n.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }\n.@{fa-css-prefix}-asl-interpreting:before,\n.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }\n.@{fa-css-prefix}-deafness:before,\n.@{fa-css-prefix}-hard-of-hearing:before,\n.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }\n.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }\n.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }\n.@{fa-css-prefix}-signing:before,\n.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }\n.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }\n.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }\n.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }\n.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }\n.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }\n.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }\n.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }\n.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }\n.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }\n.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }\n.@{fa-css-prefix}-google-plus-circle:before,\n.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }\n.@{fa-css-prefix}-fa:before,\n.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }\n.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }\n.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }\n.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }\n.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }\n.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }\n.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }\n.@{fa-css-prefix}-vcard:before,\n.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }\n.@{fa-css-prefix}-vcard-o:before,\n.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }\n.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }\n.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }\n.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }\n.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }\n.@{fa-css-prefix}-drivers-license:before,\n.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }\n.@{fa-css-prefix}-drivers-license-o:before,\n.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }\n.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }\n.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }\n.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }\n.@{fa-css-prefix}-thermometer-4:before,\n.@{fa-css-prefix}-thermometer:before,\n.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }\n.@{fa-css-prefix}-thermometer-3:before,\n.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }\n.@{fa-css-prefix}-thermometer-2:before,\n.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }\n.@{fa-css-prefix}-thermometer-1:before,\n.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }\n.@{fa-css-prefix}-thermometer-0:before,\n.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }\n.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }\n.@{fa-css-prefix}-bathtub:before,\n.@{fa-css-prefix}-s15:before,\n.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }\n.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }\n.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }\n.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }\n.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }\n.@{fa-css-prefix}-times-rectangle:before,\n.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }\n.@{fa-css-prefix}-times-rectangle-o:before,\n.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }\n.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }\n.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }\n.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }\n.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }\n.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }\n.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }\n.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }\n.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }\n.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }\n.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }\n.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/larger.less",
    "content": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.@{fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -15%;\n}\n.@{fa-css-prefix}-2x { font-size: 2em; }\n.@{fa-css-prefix}-3x { font-size: 3em; }\n.@{fa-css-prefix}-4x { font-size: 4em; }\n.@{fa-css-prefix}-5x { font-size: 5em; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/list.less",
    "content": "// List Icons\n// -------------------------\n\n.@{fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: @fa-li-width;\n  list-style-type: none;\n  > li { position: relative; }\n}\n.@{fa-css-prefix}-li {\n  position: absolute;\n  left: -@fa-li-width;\n  width: @fa-li-width;\n  top: (2em / 14);\n  text-align: center;\n  &.@{fa-css-prefix}-lg {\n    left: (-@fa-li-width + (4em / 14));\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/mixins.less",
    "content": "// Mixins\n// --------------------------\n\n.fa-icon() {\n  display: inline-block;\n  font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n\n.fa-icon-rotate(@degrees, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})\";\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n\n.fa-icon-flip(@horiz, @vert, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)\";\n  -webkit-transform: scale(@horiz, @vert);\n      -ms-transform: scale(@horiz, @vert);\n          transform: scale(@horiz, @vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only() {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable() {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/path.less",
    "content": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');\n  src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),\n    url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),\n    url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),\n    url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),\n    url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');\n  // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\n  font-weight: normal;\n  font-style: normal;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/rotated-flipped.less",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }\n.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }\n.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }\n\n.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }\n.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root .@{fa-css-prefix}-rotate-90,\n:root .@{fa-css-prefix}-rotate-180,\n:root .@{fa-css-prefix}-rotate-270,\n:root .@{fa-css-prefix}-flip-horizontal,\n:root .@{fa-css-prefix}-flip-vertical {\n  filter: none;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/screen-reader.less",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { .sr-only(); }\n.sr-only-focusable { .sr-only-focusable(); }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/stacked.less",
    "content": "// Stacked Icons\n// -------------------------\n\n.@{fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.@{fa-css-prefix}-stack-1x { line-height: inherit; }\n.@{fa-css-prefix}-stack-2x { font-size: 2em; }\n.@{fa-css-prefix}-inverse { color: @fa-inverse; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/less/variables.less",
    "content": "// Variables\n// --------------------------\n\n@fa-font-path:        \"../fonts\";\n@fa-font-size-base:   14px;\n@fa-line-height-base: 1;\n//@fa-font-path:        \"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\"; // for referencing Bootstrap CDN font files directly\n@fa-css-prefix:       fa;\n@fa-version:          \"4.7.0\";\n@fa-border-color:     #eee;\n@fa-inverse:          #fff;\n@fa-li-width:         (30em / 14);\n\n@fa-var-500px: \"\\f26e\";\n@fa-var-address-book: \"\\f2b9\";\n@fa-var-address-book-o: \"\\f2ba\";\n@fa-var-address-card: \"\\f2bb\";\n@fa-var-address-card-o: \"\\f2bc\";\n@fa-var-adjust: \"\\f042\";\n@fa-var-adn: \"\\f170\";\n@fa-var-align-center: \"\\f037\";\n@fa-var-align-justify: \"\\f039\";\n@fa-var-align-left: \"\\f036\";\n@fa-var-align-right: \"\\f038\";\n@fa-var-amazon: \"\\f270\";\n@fa-var-ambulance: \"\\f0f9\";\n@fa-var-american-sign-language-interpreting: \"\\f2a3\";\n@fa-var-anchor: \"\\f13d\";\n@fa-var-android: \"\\f17b\";\n@fa-var-angellist: \"\\f209\";\n@fa-var-angle-double-down: \"\\f103\";\n@fa-var-angle-double-left: \"\\f100\";\n@fa-var-angle-double-right: \"\\f101\";\n@fa-var-angle-double-up: \"\\f102\";\n@fa-var-angle-down: \"\\f107\";\n@fa-var-angle-left: \"\\f104\";\n@fa-var-angle-right: \"\\f105\";\n@fa-var-angle-up: \"\\f106\";\n@fa-var-apple: \"\\f179\";\n@fa-var-archive: \"\\f187\";\n@fa-var-area-chart: \"\\f1fe\";\n@fa-var-arrow-circle-down: \"\\f0ab\";\n@fa-var-arrow-circle-left: \"\\f0a8\";\n@fa-var-arrow-circle-o-down: \"\\f01a\";\n@fa-var-arrow-circle-o-left: \"\\f190\";\n@fa-var-arrow-circle-o-right: \"\\f18e\";\n@fa-var-arrow-circle-o-up: \"\\f01b\";\n@fa-var-arrow-circle-right: \"\\f0a9\";\n@fa-var-arrow-circle-up: \"\\f0aa\";\n@fa-var-arrow-down: \"\\f063\";\n@fa-var-arrow-left: \"\\f060\";\n@fa-var-arrow-right: \"\\f061\";\n@fa-var-arrow-up: \"\\f062\";\n@fa-var-arrows: \"\\f047\";\n@fa-var-arrows-alt: \"\\f0b2\";\n@fa-var-arrows-h: \"\\f07e\";\n@fa-var-arrows-v: \"\\f07d\";\n@fa-var-asl-interpreting: \"\\f2a3\";\n@fa-var-assistive-listening-systems: \"\\f2a2\";\n@fa-var-asterisk: \"\\f069\";\n@fa-var-at: \"\\f1fa\";\n@fa-var-audio-description: \"\\f29e\";\n@fa-var-automobile: \"\\f1b9\";\n@fa-var-backward: \"\\f04a\";\n@fa-var-balance-scale: \"\\f24e\";\n@fa-var-ban: \"\\f05e\";\n@fa-var-bandcamp: \"\\f2d5\";\n@fa-var-bank: \"\\f19c\";\n@fa-var-bar-chart: \"\\f080\";\n@fa-var-bar-chart-o: \"\\f080\";\n@fa-var-barcode: \"\\f02a\";\n@fa-var-bars: \"\\f0c9\";\n@fa-var-bath: \"\\f2cd\";\n@fa-var-bathtub: \"\\f2cd\";\n@fa-var-battery: \"\\f240\";\n@fa-var-battery-0: \"\\f244\";\n@fa-var-battery-1: \"\\f243\";\n@fa-var-battery-2: \"\\f242\";\n@fa-var-battery-3: \"\\f241\";\n@fa-var-battery-4: \"\\f240\";\n@fa-var-battery-empty: \"\\f244\";\n@fa-var-battery-full: \"\\f240\";\n@fa-var-battery-half: \"\\f242\";\n@fa-var-battery-quarter: \"\\f243\";\n@fa-var-battery-three-quarters: \"\\f241\";\n@fa-var-bed: \"\\f236\";\n@fa-var-beer: \"\\f0fc\";\n@fa-var-behance: \"\\f1b4\";\n@fa-var-behance-square: \"\\f1b5\";\n@fa-var-bell: \"\\f0f3\";\n@fa-var-bell-o: \"\\f0a2\";\n@fa-var-bell-slash: \"\\f1f6\";\n@fa-var-bell-slash-o: \"\\f1f7\";\n@fa-var-bicycle: \"\\f206\";\n@fa-var-binoculars: \"\\f1e5\";\n@fa-var-birthday-cake: \"\\f1fd\";\n@fa-var-bitbucket: \"\\f171\";\n@fa-var-bitbucket-square: \"\\f172\";\n@fa-var-bitcoin: \"\\f15a\";\n@fa-var-black-tie: \"\\f27e\";\n@fa-var-blind: \"\\f29d\";\n@fa-var-bluetooth: \"\\f293\";\n@fa-var-bluetooth-b: \"\\f294\";\n@fa-var-bold: \"\\f032\";\n@fa-var-bolt: \"\\f0e7\";\n@fa-var-bomb: \"\\f1e2\";\n@fa-var-book: \"\\f02d\";\n@fa-var-bookmark: \"\\f02e\";\n@fa-var-bookmark-o: \"\\f097\";\n@fa-var-braille: \"\\f2a1\";\n@fa-var-briefcase: \"\\f0b1\";\n@fa-var-btc: \"\\f15a\";\n@fa-var-bug: \"\\f188\";\n@fa-var-building: \"\\f1ad\";\n@fa-var-building-o: \"\\f0f7\";\n@fa-var-bullhorn: \"\\f0a1\";\n@fa-var-bullseye: \"\\f140\";\n@fa-var-bus: \"\\f207\";\n@fa-var-buysellads: \"\\f20d\";\n@fa-var-cab: \"\\f1ba\";\n@fa-var-calculator: \"\\f1ec\";\n@fa-var-calendar: \"\\f073\";\n@fa-var-calendar-check-o: \"\\f274\";\n@fa-var-calendar-minus-o: \"\\f272\";\n@fa-var-calendar-o: \"\\f133\";\n@fa-var-calendar-plus-o: \"\\f271\";\n@fa-var-calendar-times-o: \"\\f273\";\n@fa-var-camera: \"\\f030\";\n@fa-var-camera-retro: \"\\f083\";\n@fa-var-car: \"\\f1b9\";\n@fa-var-caret-down: \"\\f0d7\";\n@fa-var-caret-left: \"\\f0d9\";\n@fa-var-caret-right: \"\\f0da\";\n@fa-var-caret-square-o-down: \"\\f150\";\n@fa-var-caret-square-o-left: \"\\f191\";\n@fa-var-caret-square-o-right: \"\\f152\";\n@fa-var-caret-square-o-up: \"\\f151\";\n@fa-var-caret-up: \"\\f0d8\";\n@fa-var-cart-arrow-down: \"\\f218\";\n@fa-var-cart-plus: \"\\f217\";\n@fa-var-cc: \"\\f20a\";\n@fa-var-cc-amex: \"\\f1f3\";\n@fa-var-cc-diners-club: \"\\f24c\";\n@fa-var-cc-discover: \"\\f1f2\";\n@fa-var-cc-jcb: \"\\f24b\";\n@fa-var-cc-mastercard: \"\\f1f1\";\n@fa-var-cc-paypal: \"\\f1f4\";\n@fa-var-cc-stripe: \"\\f1f5\";\n@fa-var-cc-visa: \"\\f1f0\";\n@fa-var-certificate: \"\\f0a3\";\n@fa-var-chain: \"\\f0c1\";\n@fa-var-chain-broken: \"\\f127\";\n@fa-var-check: \"\\f00c\";\n@fa-var-check-circle: \"\\f058\";\n@fa-var-check-circle-o: \"\\f05d\";\n@fa-var-check-square: \"\\f14a\";\n@fa-var-check-square-o: \"\\f046\";\n@fa-var-chevron-circle-down: \"\\f13a\";\n@fa-var-chevron-circle-left: \"\\f137\";\n@fa-var-chevron-circle-right: \"\\f138\";\n@fa-var-chevron-circle-up: \"\\f139\";\n@fa-var-chevron-down: \"\\f078\";\n@fa-var-chevron-left: \"\\f053\";\n@fa-var-chevron-right: \"\\f054\";\n@fa-var-chevron-up: \"\\f077\";\n@fa-var-child: \"\\f1ae\";\n@fa-var-chrome: \"\\f268\";\n@fa-var-circle: \"\\f111\";\n@fa-var-circle-o: \"\\f10c\";\n@fa-var-circle-o-notch: \"\\f1ce\";\n@fa-var-circle-thin: \"\\f1db\";\n@fa-var-clipboard: \"\\f0ea\";\n@fa-var-clock-o: \"\\f017\";\n@fa-var-clone: \"\\f24d\";\n@fa-var-close: \"\\f00d\";\n@fa-var-cloud: \"\\f0c2\";\n@fa-var-cloud-download: \"\\f0ed\";\n@fa-var-cloud-upload: \"\\f0ee\";\n@fa-var-cny: \"\\f157\";\n@fa-var-code: \"\\f121\";\n@fa-var-code-fork: \"\\f126\";\n@fa-var-codepen: \"\\f1cb\";\n@fa-var-codiepie: \"\\f284\";\n@fa-var-coffee: \"\\f0f4\";\n@fa-var-cog: \"\\f013\";\n@fa-var-cogs: \"\\f085\";\n@fa-var-columns: \"\\f0db\";\n@fa-var-comment: \"\\f075\";\n@fa-var-comment-o: \"\\f0e5\";\n@fa-var-commenting: \"\\f27a\";\n@fa-var-commenting-o: \"\\f27b\";\n@fa-var-comments: \"\\f086\";\n@fa-var-comments-o: \"\\f0e6\";\n@fa-var-compass: \"\\f14e\";\n@fa-var-compress: \"\\f066\";\n@fa-var-connectdevelop: \"\\f20e\";\n@fa-var-contao: \"\\f26d\";\n@fa-var-copy: \"\\f0c5\";\n@fa-var-copyright: \"\\f1f9\";\n@fa-var-creative-commons: \"\\f25e\";\n@fa-var-credit-card: \"\\f09d\";\n@fa-var-credit-card-alt: \"\\f283\";\n@fa-var-crop: \"\\f125\";\n@fa-var-crosshairs: \"\\f05b\";\n@fa-var-css3: \"\\f13c\";\n@fa-var-cube: \"\\f1b2\";\n@fa-var-cubes: \"\\f1b3\";\n@fa-var-cut: \"\\f0c4\";\n@fa-var-cutlery: \"\\f0f5\";\n@fa-var-dashboard: \"\\f0e4\";\n@fa-var-dashcube: \"\\f210\";\n@fa-var-database: \"\\f1c0\";\n@fa-var-deaf: \"\\f2a4\";\n@fa-var-deafness: \"\\f2a4\";\n@fa-var-dedent: \"\\f03b\";\n@fa-var-delicious: \"\\f1a5\";\n@fa-var-desktop: \"\\f108\";\n@fa-var-deviantart: \"\\f1bd\";\n@fa-var-diamond: \"\\f219\";\n@fa-var-digg: \"\\f1a6\";\n@fa-var-dollar: \"\\f155\";\n@fa-var-dot-circle-o: \"\\f192\";\n@fa-var-download: \"\\f019\";\n@fa-var-dribbble: \"\\f17d\";\n@fa-var-drivers-license: \"\\f2c2\";\n@fa-var-drivers-license-o: \"\\f2c3\";\n@fa-var-dropbox: \"\\f16b\";\n@fa-var-drupal: \"\\f1a9\";\n@fa-var-edge: \"\\f282\";\n@fa-var-edit: \"\\f044\";\n@fa-var-eercast: \"\\f2da\";\n@fa-var-eject: \"\\f052\";\n@fa-var-ellipsis-h: \"\\f141\";\n@fa-var-ellipsis-v: \"\\f142\";\n@fa-var-empire: \"\\f1d1\";\n@fa-var-envelope: \"\\f0e0\";\n@fa-var-envelope-o: \"\\f003\";\n@fa-var-envelope-open: \"\\f2b6\";\n@fa-var-envelope-open-o: \"\\f2b7\";\n@fa-var-envelope-square: \"\\f199\";\n@fa-var-envira: \"\\f299\";\n@fa-var-eraser: \"\\f12d\";\n@fa-var-etsy: \"\\f2d7\";\n@fa-var-eur: \"\\f153\";\n@fa-var-euro: \"\\f153\";\n@fa-var-exchange: \"\\f0ec\";\n@fa-var-exclamation: \"\\f12a\";\n@fa-var-exclamation-circle: \"\\f06a\";\n@fa-var-exclamation-triangle: \"\\f071\";\n@fa-var-expand: \"\\f065\";\n@fa-var-expeditedssl: \"\\f23e\";\n@fa-var-external-link: \"\\f08e\";\n@fa-var-external-link-square: \"\\f14c\";\n@fa-var-eye: \"\\f06e\";\n@fa-var-eye-slash: \"\\f070\";\n@fa-var-eyedropper: \"\\f1fb\";\n@fa-var-fa: \"\\f2b4\";\n@fa-var-facebook: \"\\f09a\";\n@fa-var-facebook-f: \"\\f09a\";\n@fa-var-facebook-official: \"\\f230\";\n@fa-var-facebook-square: \"\\f082\";\n@fa-var-fast-backward: \"\\f049\";\n@fa-var-fast-forward: \"\\f050\";\n@fa-var-fax: \"\\f1ac\";\n@fa-var-feed: \"\\f09e\";\n@fa-var-female: \"\\f182\";\n@fa-var-fighter-jet: \"\\f0fb\";\n@fa-var-file: \"\\f15b\";\n@fa-var-file-archive-o: \"\\f1c6\";\n@fa-var-file-audio-o: \"\\f1c7\";\n@fa-var-file-code-o: \"\\f1c9\";\n@fa-var-file-excel-o: \"\\f1c3\";\n@fa-var-file-image-o: \"\\f1c5\";\n@fa-var-file-movie-o: \"\\f1c8\";\n@fa-var-file-o: \"\\f016\";\n@fa-var-file-pdf-o: \"\\f1c1\";\n@fa-var-file-photo-o: \"\\f1c5\";\n@fa-var-file-picture-o: \"\\f1c5\";\n@fa-var-file-powerpoint-o: \"\\f1c4\";\n@fa-var-file-sound-o: \"\\f1c7\";\n@fa-var-file-text: \"\\f15c\";\n@fa-var-file-text-o: \"\\f0f6\";\n@fa-var-file-video-o: \"\\f1c8\";\n@fa-var-file-word-o: \"\\f1c2\";\n@fa-var-file-zip-o: \"\\f1c6\";\n@fa-var-files-o: \"\\f0c5\";\n@fa-var-film: \"\\f008\";\n@fa-var-filter: \"\\f0b0\";\n@fa-var-fire: \"\\f06d\";\n@fa-var-fire-extinguisher: \"\\f134\";\n@fa-var-firefox: \"\\f269\";\n@fa-var-first-order: \"\\f2b0\";\n@fa-var-flag: \"\\f024\";\n@fa-var-flag-checkered: \"\\f11e\";\n@fa-var-flag-o: \"\\f11d\";\n@fa-var-flash: \"\\f0e7\";\n@fa-var-flask: \"\\f0c3\";\n@fa-var-flickr: \"\\f16e\";\n@fa-var-floppy-o: \"\\f0c7\";\n@fa-var-folder: \"\\f07b\";\n@fa-var-folder-o: \"\\f114\";\n@fa-var-folder-open: \"\\f07c\";\n@fa-var-folder-open-o: \"\\f115\";\n@fa-var-font: \"\\f031\";\n@fa-var-font-awesome: \"\\f2b4\";\n@fa-var-fonticons: \"\\f280\";\n@fa-var-fort-awesome: \"\\f286\";\n@fa-var-forumbee: \"\\f211\";\n@fa-var-forward: \"\\f04e\";\n@fa-var-foursquare: \"\\f180\";\n@fa-var-free-code-camp: \"\\f2c5\";\n@fa-var-frown-o: \"\\f119\";\n@fa-var-futbol-o: \"\\f1e3\";\n@fa-var-gamepad: \"\\f11b\";\n@fa-var-gavel: \"\\f0e3\";\n@fa-var-gbp: \"\\f154\";\n@fa-var-ge: \"\\f1d1\";\n@fa-var-gear: \"\\f013\";\n@fa-var-gears: \"\\f085\";\n@fa-var-genderless: \"\\f22d\";\n@fa-var-get-pocket: \"\\f265\";\n@fa-var-gg: \"\\f260\";\n@fa-var-gg-circle: \"\\f261\";\n@fa-var-gift: \"\\f06b\";\n@fa-var-git: \"\\f1d3\";\n@fa-var-git-square: \"\\f1d2\";\n@fa-var-github: \"\\f09b\";\n@fa-var-github-alt: \"\\f113\";\n@fa-var-github-square: \"\\f092\";\n@fa-var-gitlab: \"\\f296\";\n@fa-var-gittip: \"\\f184\";\n@fa-var-glass: \"\\f000\";\n@fa-var-glide: \"\\f2a5\";\n@fa-var-glide-g: \"\\f2a6\";\n@fa-var-globe: \"\\f0ac\";\n@fa-var-google: \"\\f1a0\";\n@fa-var-google-plus: \"\\f0d5\";\n@fa-var-google-plus-circle: \"\\f2b3\";\n@fa-var-google-plus-official: \"\\f2b3\";\n@fa-var-google-plus-square: \"\\f0d4\";\n@fa-var-google-wallet: \"\\f1ee\";\n@fa-var-graduation-cap: \"\\f19d\";\n@fa-var-gratipay: \"\\f184\";\n@fa-var-grav: \"\\f2d6\";\n@fa-var-group: \"\\f0c0\";\n@fa-var-h-square: \"\\f0fd\";\n@fa-var-hacker-news: \"\\f1d4\";\n@fa-var-hand-grab-o: \"\\f255\";\n@fa-var-hand-lizard-o: \"\\f258\";\n@fa-var-hand-o-down: \"\\f0a7\";\n@fa-var-hand-o-left: \"\\f0a5\";\n@fa-var-hand-o-right: \"\\f0a4\";\n@fa-var-hand-o-up: \"\\f0a6\";\n@fa-var-hand-paper-o: \"\\f256\";\n@fa-var-hand-peace-o: \"\\f25b\";\n@fa-var-hand-pointer-o: \"\\f25a\";\n@fa-var-hand-rock-o: \"\\f255\";\n@fa-var-hand-scissors-o: \"\\f257\";\n@fa-var-hand-spock-o: \"\\f259\";\n@fa-var-hand-stop-o: \"\\f256\";\n@fa-var-handshake-o: \"\\f2b5\";\n@fa-var-hard-of-hearing: \"\\f2a4\";\n@fa-var-hashtag: \"\\f292\";\n@fa-var-hdd-o: \"\\f0a0\";\n@fa-var-header: \"\\f1dc\";\n@fa-var-headphones: \"\\f025\";\n@fa-var-heart: \"\\f004\";\n@fa-var-heart-o: \"\\f08a\";\n@fa-var-heartbeat: \"\\f21e\";\n@fa-var-history: \"\\f1da\";\n@fa-var-home: \"\\f015\";\n@fa-var-hospital-o: \"\\f0f8\";\n@fa-var-hotel: \"\\f236\";\n@fa-var-hourglass: \"\\f254\";\n@fa-var-hourglass-1: \"\\f251\";\n@fa-var-hourglass-2: \"\\f252\";\n@fa-var-hourglass-3: \"\\f253\";\n@fa-var-hourglass-end: \"\\f253\";\n@fa-var-hourglass-half: \"\\f252\";\n@fa-var-hourglass-o: \"\\f250\";\n@fa-var-hourglass-start: \"\\f251\";\n@fa-var-houzz: \"\\f27c\";\n@fa-var-html5: \"\\f13b\";\n@fa-var-i-cursor: \"\\f246\";\n@fa-var-id-badge: \"\\f2c1\";\n@fa-var-id-card: \"\\f2c2\";\n@fa-var-id-card-o: \"\\f2c3\";\n@fa-var-ils: \"\\f20b\";\n@fa-var-image: \"\\f03e\";\n@fa-var-imdb: \"\\f2d8\";\n@fa-var-inbox: \"\\f01c\";\n@fa-var-indent: \"\\f03c\";\n@fa-var-industry: \"\\f275\";\n@fa-var-info: \"\\f129\";\n@fa-var-info-circle: \"\\f05a\";\n@fa-var-inr: \"\\f156\";\n@fa-var-instagram: \"\\f16d\";\n@fa-var-institution: \"\\f19c\";\n@fa-var-internet-explorer: \"\\f26b\";\n@fa-var-intersex: \"\\f224\";\n@fa-var-ioxhost: \"\\f208\";\n@fa-var-italic: \"\\f033\";\n@fa-var-joomla: \"\\f1aa\";\n@fa-var-jpy: \"\\f157\";\n@fa-var-jsfiddle: \"\\f1cc\";\n@fa-var-key: \"\\f084\";\n@fa-var-keyboard-o: \"\\f11c\";\n@fa-var-krw: \"\\f159\";\n@fa-var-language: \"\\f1ab\";\n@fa-var-laptop: \"\\f109\";\n@fa-var-lastfm: \"\\f202\";\n@fa-var-lastfm-square: \"\\f203\";\n@fa-var-leaf: \"\\f06c\";\n@fa-var-leanpub: \"\\f212\";\n@fa-var-legal: \"\\f0e3\";\n@fa-var-lemon-o: \"\\f094\";\n@fa-var-level-down: \"\\f149\";\n@fa-var-level-up: \"\\f148\";\n@fa-var-life-bouy: \"\\f1cd\";\n@fa-var-life-buoy: \"\\f1cd\";\n@fa-var-life-ring: \"\\f1cd\";\n@fa-var-life-saver: \"\\f1cd\";\n@fa-var-lightbulb-o: \"\\f0eb\";\n@fa-var-line-chart: \"\\f201\";\n@fa-var-link: \"\\f0c1\";\n@fa-var-linkedin: \"\\f0e1\";\n@fa-var-linkedin-square: \"\\f08c\";\n@fa-var-linode: \"\\f2b8\";\n@fa-var-linux: \"\\f17c\";\n@fa-var-list: \"\\f03a\";\n@fa-var-list-alt: \"\\f022\";\n@fa-var-list-ol: \"\\f0cb\";\n@fa-var-list-ul: \"\\f0ca\";\n@fa-var-location-arrow: \"\\f124\";\n@fa-var-lock: \"\\f023\";\n@fa-var-long-arrow-down: \"\\f175\";\n@fa-var-long-arrow-left: \"\\f177\";\n@fa-var-long-arrow-right: \"\\f178\";\n@fa-var-long-arrow-up: \"\\f176\";\n@fa-var-low-vision: \"\\f2a8\";\n@fa-var-magic: \"\\f0d0\";\n@fa-var-magnet: \"\\f076\";\n@fa-var-mail-forward: \"\\f064\";\n@fa-var-mail-reply: \"\\f112\";\n@fa-var-mail-reply-all: \"\\f122\";\n@fa-var-male: \"\\f183\";\n@fa-var-map: \"\\f279\";\n@fa-var-map-marker: \"\\f041\";\n@fa-var-map-o: \"\\f278\";\n@fa-var-map-pin: \"\\f276\";\n@fa-var-map-signs: \"\\f277\";\n@fa-var-mars: \"\\f222\";\n@fa-var-mars-double: \"\\f227\";\n@fa-var-mars-stroke: \"\\f229\";\n@fa-var-mars-stroke-h: \"\\f22b\";\n@fa-var-mars-stroke-v: \"\\f22a\";\n@fa-var-maxcdn: \"\\f136\";\n@fa-var-meanpath: \"\\f20c\";\n@fa-var-medium: \"\\f23a\";\n@fa-var-medkit: \"\\f0fa\";\n@fa-var-meetup: \"\\f2e0\";\n@fa-var-meh-o: \"\\f11a\";\n@fa-var-mercury: \"\\f223\";\n@fa-var-microchip: \"\\f2db\";\n@fa-var-microphone: \"\\f130\";\n@fa-var-microphone-slash: \"\\f131\";\n@fa-var-minus: \"\\f068\";\n@fa-var-minus-circle: \"\\f056\";\n@fa-var-minus-square: \"\\f146\";\n@fa-var-minus-square-o: \"\\f147\";\n@fa-var-mixcloud: \"\\f289\";\n@fa-var-mobile: \"\\f10b\";\n@fa-var-mobile-phone: \"\\f10b\";\n@fa-var-modx: \"\\f285\";\n@fa-var-money: \"\\f0d6\";\n@fa-var-moon-o: \"\\f186\";\n@fa-var-mortar-board: \"\\f19d\";\n@fa-var-motorcycle: \"\\f21c\";\n@fa-var-mouse-pointer: \"\\f245\";\n@fa-var-music: \"\\f001\";\n@fa-var-navicon: \"\\f0c9\";\n@fa-var-neuter: \"\\f22c\";\n@fa-var-newspaper-o: \"\\f1ea\";\n@fa-var-object-group: \"\\f247\";\n@fa-var-object-ungroup: \"\\f248\";\n@fa-var-odnoklassniki: \"\\f263\";\n@fa-var-odnoklassniki-square: \"\\f264\";\n@fa-var-opencart: \"\\f23d\";\n@fa-var-openid: \"\\f19b\";\n@fa-var-opera: \"\\f26a\";\n@fa-var-optin-monster: \"\\f23c\";\n@fa-var-outdent: \"\\f03b\";\n@fa-var-pagelines: \"\\f18c\";\n@fa-var-paint-brush: \"\\f1fc\";\n@fa-var-paper-plane: \"\\f1d8\";\n@fa-var-paper-plane-o: \"\\f1d9\";\n@fa-var-paperclip: \"\\f0c6\";\n@fa-var-paragraph: \"\\f1dd\";\n@fa-var-paste: \"\\f0ea\";\n@fa-var-pause: \"\\f04c\";\n@fa-var-pause-circle: \"\\f28b\";\n@fa-var-pause-circle-o: \"\\f28c\";\n@fa-var-paw: \"\\f1b0\";\n@fa-var-paypal: \"\\f1ed\";\n@fa-var-pencil: \"\\f040\";\n@fa-var-pencil-square: \"\\f14b\";\n@fa-var-pencil-square-o: \"\\f044\";\n@fa-var-percent: \"\\f295\";\n@fa-var-phone: \"\\f095\";\n@fa-var-phone-square: \"\\f098\";\n@fa-var-photo: \"\\f03e\";\n@fa-var-picture-o: \"\\f03e\";\n@fa-var-pie-chart: \"\\f200\";\n@fa-var-pied-piper: \"\\f2ae\";\n@fa-var-pied-piper-alt: \"\\f1a8\";\n@fa-var-pied-piper-pp: \"\\f1a7\";\n@fa-var-pinterest: \"\\f0d2\";\n@fa-var-pinterest-p: \"\\f231\";\n@fa-var-pinterest-square: \"\\f0d3\";\n@fa-var-plane: \"\\f072\";\n@fa-var-play: \"\\f04b\";\n@fa-var-play-circle: \"\\f144\";\n@fa-var-play-circle-o: \"\\f01d\";\n@fa-var-plug: \"\\f1e6\";\n@fa-var-plus: \"\\f067\";\n@fa-var-plus-circle: \"\\f055\";\n@fa-var-plus-square: \"\\f0fe\";\n@fa-var-plus-square-o: \"\\f196\";\n@fa-var-podcast: \"\\f2ce\";\n@fa-var-power-off: \"\\f011\";\n@fa-var-print: \"\\f02f\";\n@fa-var-product-hunt: \"\\f288\";\n@fa-var-puzzle-piece: \"\\f12e\";\n@fa-var-qq: \"\\f1d6\";\n@fa-var-qrcode: \"\\f029\";\n@fa-var-question: \"\\f128\";\n@fa-var-question-circle: \"\\f059\";\n@fa-var-question-circle-o: \"\\f29c\";\n@fa-var-quora: \"\\f2c4\";\n@fa-var-quote-left: \"\\f10d\";\n@fa-var-quote-right: \"\\f10e\";\n@fa-var-ra: \"\\f1d0\";\n@fa-var-random: \"\\f074\";\n@fa-var-ravelry: \"\\f2d9\";\n@fa-var-rebel: \"\\f1d0\";\n@fa-var-recycle: \"\\f1b8\";\n@fa-var-reddit: \"\\f1a1\";\n@fa-var-reddit-alien: \"\\f281\";\n@fa-var-reddit-square: \"\\f1a2\";\n@fa-var-refresh: \"\\f021\";\n@fa-var-registered: \"\\f25d\";\n@fa-var-remove: \"\\f00d\";\n@fa-var-renren: \"\\f18b\";\n@fa-var-reorder: \"\\f0c9\";\n@fa-var-repeat: \"\\f01e\";\n@fa-var-reply: \"\\f112\";\n@fa-var-reply-all: \"\\f122\";\n@fa-var-resistance: \"\\f1d0\";\n@fa-var-retweet: \"\\f079\";\n@fa-var-rmb: \"\\f157\";\n@fa-var-road: \"\\f018\";\n@fa-var-rocket: \"\\f135\";\n@fa-var-rotate-left: \"\\f0e2\";\n@fa-var-rotate-right: \"\\f01e\";\n@fa-var-rouble: \"\\f158\";\n@fa-var-rss: \"\\f09e\";\n@fa-var-rss-square: \"\\f143\";\n@fa-var-rub: \"\\f158\";\n@fa-var-ruble: \"\\f158\";\n@fa-var-rupee: \"\\f156\";\n@fa-var-s15: \"\\f2cd\";\n@fa-var-safari: \"\\f267\";\n@fa-var-save: \"\\f0c7\";\n@fa-var-scissors: \"\\f0c4\";\n@fa-var-scribd: \"\\f28a\";\n@fa-var-search: \"\\f002\";\n@fa-var-search-minus: \"\\f010\";\n@fa-var-search-plus: \"\\f00e\";\n@fa-var-sellsy: \"\\f213\";\n@fa-var-send: \"\\f1d8\";\n@fa-var-send-o: \"\\f1d9\";\n@fa-var-server: \"\\f233\";\n@fa-var-share: \"\\f064\";\n@fa-var-share-alt: \"\\f1e0\";\n@fa-var-share-alt-square: \"\\f1e1\";\n@fa-var-share-square: \"\\f14d\";\n@fa-var-share-square-o: \"\\f045\";\n@fa-var-shekel: \"\\f20b\";\n@fa-var-sheqel: \"\\f20b\";\n@fa-var-shield: \"\\f132\";\n@fa-var-ship: \"\\f21a\";\n@fa-var-shirtsinbulk: \"\\f214\";\n@fa-var-shopping-bag: \"\\f290\";\n@fa-var-shopping-basket: \"\\f291\";\n@fa-var-shopping-cart: \"\\f07a\";\n@fa-var-shower: \"\\f2cc\";\n@fa-var-sign-in: \"\\f090\";\n@fa-var-sign-language: \"\\f2a7\";\n@fa-var-sign-out: \"\\f08b\";\n@fa-var-signal: \"\\f012\";\n@fa-var-signing: \"\\f2a7\";\n@fa-var-simplybuilt: \"\\f215\";\n@fa-var-sitemap: \"\\f0e8\";\n@fa-var-skyatlas: \"\\f216\";\n@fa-var-skype: \"\\f17e\";\n@fa-var-slack: \"\\f198\";\n@fa-var-sliders: \"\\f1de\";\n@fa-var-slideshare: \"\\f1e7\";\n@fa-var-smile-o: \"\\f118\";\n@fa-var-snapchat: \"\\f2ab\";\n@fa-var-snapchat-ghost: \"\\f2ac\";\n@fa-var-snapchat-square: \"\\f2ad\";\n@fa-var-snowflake-o: \"\\f2dc\";\n@fa-var-soccer-ball-o: \"\\f1e3\";\n@fa-var-sort: \"\\f0dc\";\n@fa-var-sort-alpha-asc: \"\\f15d\";\n@fa-var-sort-alpha-desc: \"\\f15e\";\n@fa-var-sort-amount-asc: \"\\f160\";\n@fa-var-sort-amount-desc: \"\\f161\";\n@fa-var-sort-asc: \"\\f0de\";\n@fa-var-sort-desc: \"\\f0dd\";\n@fa-var-sort-down: \"\\f0dd\";\n@fa-var-sort-numeric-asc: \"\\f162\";\n@fa-var-sort-numeric-desc: \"\\f163\";\n@fa-var-sort-up: \"\\f0de\";\n@fa-var-soundcloud: \"\\f1be\";\n@fa-var-space-shuttle: \"\\f197\";\n@fa-var-spinner: \"\\f110\";\n@fa-var-spoon: \"\\f1b1\";\n@fa-var-spotify: \"\\f1bc\";\n@fa-var-square: \"\\f0c8\";\n@fa-var-square-o: \"\\f096\";\n@fa-var-stack-exchange: \"\\f18d\";\n@fa-var-stack-overflow: \"\\f16c\";\n@fa-var-star: \"\\f005\";\n@fa-var-star-half: \"\\f089\";\n@fa-var-star-half-empty: \"\\f123\";\n@fa-var-star-half-full: \"\\f123\";\n@fa-var-star-half-o: \"\\f123\";\n@fa-var-star-o: \"\\f006\";\n@fa-var-steam: \"\\f1b6\";\n@fa-var-steam-square: \"\\f1b7\";\n@fa-var-step-backward: \"\\f048\";\n@fa-var-step-forward: \"\\f051\";\n@fa-var-stethoscope: \"\\f0f1\";\n@fa-var-sticky-note: \"\\f249\";\n@fa-var-sticky-note-o: \"\\f24a\";\n@fa-var-stop: \"\\f04d\";\n@fa-var-stop-circle: \"\\f28d\";\n@fa-var-stop-circle-o: \"\\f28e\";\n@fa-var-street-view: \"\\f21d\";\n@fa-var-strikethrough: \"\\f0cc\";\n@fa-var-stumbleupon: \"\\f1a4\";\n@fa-var-stumbleupon-circle: \"\\f1a3\";\n@fa-var-subscript: \"\\f12c\";\n@fa-var-subway: \"\\f239\";\n@fa-var-suitcase: \"\\f0f2\";\n@fa-var-sun-o: \"\\f185\";\n@fa-var-superpowers: \"\\f2dd\";\n@fa-var-superscript: \"\\f12b\";\n@fa-var-support: \"\\f1cd\";\n@fa-var-table: \"\\f0ce\";\n@fa-var-tablet: \"\\f10a\";\n@fa-var-tachometer: \"\\f0e4\";\n@fa-var-tag: \"\\f02b\";\n@fa-var-tags: \"\\f02c\";\n@fa-var-tasks: \"\\f0ae\";\n@fa-var-taxi: \"\\f1ba\";\n@fa-var-telegram: \"\\f2c6\";\n@fa-var-television: \"\\f26c\";\n@fa-var-tencent-weibo: \"\\f1d5\";\n@fa-var-terminal: \"\\f120\";\n@fa-var-text-height: \"\\f034\";\n@fa-var-text-width: \"\\f035\";\n@fa-var-th: \"\\f00a\";\n@fa-var-th-large: \"\\f009\";\n@fa-var-th-list: \"\\f00b\";\n@fa-var-themeisle: \"\\f2b2\";\n@fa-var-thermometer: \"\\f2c7\";\n@fa-var-thermometer-0: \"\\f2cb\";\n@fa-var-thermometer-1: \"\\f2ca\";\n@fa-var-thermometer-2: \"\\f2c9\";\n@fa-var-thermometer-3: \"\\f2c8\";\n@fa-var-thermometer-4: \"\\f2c7\";\n@fa-var-thermometer-empty: \"\\f2cb\";\n@fa-var-thermometer-full: \"\\f2c7\";\n@fa-var-thermometer-half: \"\\f2c9\";\n@fa-var-thermometer-quarter: \"\\f2ca\";\n@fa-var-thermometer-three-quarters: \"\\f2c8\";\n@fa-var-thumb-tack: \"\\f08d\";\n@fa-var-thumbs-down: \"\\f165\";\n@fa-var-thumbs-o-down: \"\\f088\";\n@fa-var-thumbs-o-up: \"\\f087\";\n@fa-var-thumbs-up: \"\\f164\";\n@fa-var-ticket: \"\\f145\";\n@fa-var-times: \"\\f00d\";\n@fa-var-times-circle: \"\\f057\";\n@fa-var-times-circle-o: \"\\f05c\";\n@fa-var-times-rectangle: \"\\f2d3\";\n@fa-var-times-rectangle-o: \"\\f2d4\";\n@fa-var-tint: \"\\f043\";\n@fa-var-toggle-down: \"\\f150\";\n@fa-var-toggle-left: \"\\f191\";\n@fa-var-toggle-off: \"\\f204\";\n@fa-var-toggle-on: \"\\f205\";\n@fa-var-toggle-right: \"\\f152\";\n@fa-var-toggle-up: \"\\f151\";\n@fa-var-trademark: \"\\f25c\";\n@fa-var-train: \"\\f238\";\n@fa-var-transgender: \"\\f224\";\n@fa-var-transgender-alt: \"\\f225\";\n@fa-var-trash: \"\\f1f8\";\n@fa-var-trash-o: \"\\f014\";\n@fa-var-tree: \"\\f1bb\";\n@fa-var-trello: \"\\f181\";\n@fa-var-tripadvisor: \"\\f262\";\n@fa-var-trophy: \"\\f091\";\n@fa-var-truck: \"\\f0d1\";\n@fa-var-try: \"\\f195\";\n@fa-var-tty: \"\\f1e4\";\n@fa-var-tumblr: \"\\f173\";\n@fa-var-tumblr-square: \"\\f174\";\n@fa-var-turkish-lira: \"\\f195\";\n@fa-var-tv: \"\\f26c\";\n@fa-var-twitch: \"\\f1e8\";\n@fa-var-twitter: \"\\f099\";\n@fa-var-twitter-square: \"\\f081\";\n@fa-var-umbrella: \"\\f0e9\";\n@fa-var-underline: \"\\f0cd\";\n@fa-var-undo: \"\\f0e2\";\n@fa-var-universal-access: \"\\f29a\";\n@fa-var-university: \"\\f19c\";\n@fa-var-unlink: \"\\f127\";\n@fa-var-unlock: \"\\f09c\";\n@fa-var-unlock-alt: \"\\f13e\";\n@fa-var-unsorted: \"\\f0dc\";\n@fa-var-upload: \"\\f093\";\n@fa-var-usb: \"\\f287\";\n@fa-var-usd: \"\\f155\";\n@fa-var-user: \"\\f007\";\n@fa-var-user-circle: \"\\f2bd\";\n@fa-var-user-circle-o: \"\\f2be\";\n@fa-var-user-md: \"\\f0f0\";\n@fa-var-user-o: \"\\f2c0\";\n@fa-var-user-plus: \"\\f234\";\n@fa-var-user-secret: \"\\f21b\";\n@fa-var-user-times: \"\\f235\";\n@fa-var-users: \"\\f0c0\";\n@fa-var-vcard: \"\\f2bb\";\n@fa-var-vcard-o: \"\\f2bc\";\n@fa-var-venus: \"\\f221\";\n@fa-var-venus-double: \"\\f226\";\n@fa-var-venus-mars: \"\\f228\";\n@fa-var-viacoin: \"\\f237\";\n@fa-var-viadeo: \"\\f2a9\";\n@fa-var-viadeo-square: \"\\f2aa\";\n@fa-var-video-camera: \"\\f03d\";\n@fa-var-vimeo: \"\\f27d\";\n@fa-var-vimeo-square: \"\\f194\";\n@fa-var-vine: \"\\f1ca\";\n@fa-var-vk: \"\\f189\";\n@fa-var-volume-control-phone: \"\\f2a0\";\n@fa-var-volume-down: \"\\f027\";\n@fa-var-volume-off: \"\\f026\";\n@fa-var-volume-up: \"\\f028\";\n@fa-var-warning: \"\\f071\";\n@fa-var-wechat: \"\\f1d7\";\n@fa-var-weibo: \"\\f18a\";\n@fa-var-weixin: \"\\f1d7\";\n@fa-var-whatsapp: \"\\f232\";\n@fa-var-wheelchair: \"\\f193\";\n@fa-var-wheelchair-alt: \"\\f29b\";\n@fa-var-wifi: \"\\f1eb\";\n@fa-var-wikipedia-w: \"\\f266\";\n@fa-var-window-close: \"\\f2d3\";\n@fa-var-window-close-o: \"\\f2d4\";\n@fa-var-window-maximize: \"\\f2d0\";\n@fa-var-window-minimize: \"\\f2d1\";\n@fa-var-window-restore: \"\\f2d2\";\n@fa-var-windows: \"\\f17a\";\n@fa-var-won: \"\\f159\";\n@fa-var-wordpress: \"\\f19a\";\n@fa-var-wpbeginner: \"\\f297\";\n@fa-var-wpexplorer: \"\\f2de\";\n@fa-var-wpforms: \"\\f298\";\n@fa-var-wrench: \"\\f0ad\";\n@fa-var-xing: \"\\f168\";\n@fa-var-xing-square: \"\\f169\";\n@fa-var-y-combinator: \"\\f23b\";\n@fa-var-y-combinator-square: \"\\f1d4\";\n@fa-var-yahoo: \"\\f19e\";\n@fa-var-yc: \"\\f23b\";\n@fa-var-yc-square: \"\\f1d4\";\n@fa-var-yelp: \"\\f1e9\";\n@fa-var-yen: \"\\f157\";\n@fa-var-yoast: \"\\f2b1\";\n@fa-var-youtube: \"\\f167\";\n@fa-var-youtube-play: \"\\f16a\";\n@fa-var-youtube-square: \"\\f166\";\n\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_animated.scss",
    "content": "// Spinning Icons\n// --------------------------\n\n.#{$fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.#{$fa-css-prefix}-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n            transform: rotate(359deg);\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_bordered-pulled.scss",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.#{$fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: solid .08em $fa-border-color;\n  border-radius: .1em;\n}\n\n.#{$fa-css-prefix}-pull-left { float: left; }\n.#{$fa-css-prefix}-pull-right { float: right; }\n\n.#{$fa-css-prefix} {\n  &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n\n/* Deprecated as of 4.4.0 */\n.pull-right { float: right; }\n.pull-left { float: left; }\n\n.#{$fa-css-prefix} {\n  &.pull-left { margin-right: .3em; }\n  &.pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_core.scss",
    "content": "// Base Class Definition\n// -------------------------\n\n.#{$fa-css-prefix} {\n  display: inline-block;\n  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_fixed-width.scss",
    "content": "// Fixed Width Icons\n// -------------------------\n.#{$fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_icons.scss",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n\n.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }\n.#{$fa-css-prefix}-music:before { content: $fa-var-music; }\n.#{$fa-css-prefix}-search:before { content: $fa-var-search; }\n.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }\n.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }\n.#{$fa-css-prefix}-star:before { content: $fa-var-star; }\n.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }\n.#{$fa-css-prefix}-user:before { content: $fa-var-user; }\n.#{$fa-css-prefix}-film:before { content: $fa-var-film; }\n.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }\n.#{$fa-css-prefix}-th:before { content: $fa-var-th; }\n.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }\n.#{$fa-css-prefix}-check:before { content: $fa-var-check; }\n.#{$fa-css-prefix}-remove:before,\n.#{$fa-css-prefix}-close:before,\n.#{$fa-css-prefix}-times:before { content: $fa-var-times; }\n.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }\n.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }\n.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }\n.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }\n.#{$fa-css-prefix}-gear:before,\n.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }\n.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }\n.#{$fa-css-prefix}-home:before { content: $fa-var-home; }\n.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }\n.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }\n.#{$fa-css-prefix}-road:before { content: $fa-var-road; }\n.#{$fa-css-prefix}-download:before { content: $fa-var-download; }\n.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }\n.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }\n.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }\n.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }\n.#{$fa-css-prefix}-rotate-right:before,\n.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }\n.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }\n.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }\n.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }\n.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }\n.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }\n.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }\n.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }\n.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }\n.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }\n.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }\n.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }\n.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }\n.#{$fa-css-prefix}-book:before { content: $fa-var-book; }\n.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }\n.#{$fa-css-prefix}-print:before { content: $fa-var-print; }\n.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }\n.#{$fa-css-prefix}-font:before { content: $fa-var-font; }\n.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }\n.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }\n.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }\n.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }\n.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }\n.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }\n.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }\n.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }\n.#{$fa-css-prefix}-list:before { content: $fa-var-list; }\n.#{$fa-css-prefix}-dedent:before,\n.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }\n.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }\n.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }\n.#{$fa-css-prefix}-photo:before,\n.#{$fa-css-prefix}-image:before,\n.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }\n.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }\n.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }\n.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }\n.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }\n.#{$fa-css-prefix}-edit:before,\n.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }\n.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }\n.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }\n.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }\n.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }\n.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }\n.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }\n.#{$fa-css-prefix}-play:before { content: $fa-var-play; }\n.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }\n.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }\n.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }\n.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }\n.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }\n.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }\n.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }\n.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }\n.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }\n.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }\n.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }\n.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }\n.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }\n.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }\n.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }\n.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }\n.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }\n.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }\n.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }\n.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }\n.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }\n.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }\n.#{$fa-css-prefix}-mail-forward:before,\n.#{$fa-css-prefix}-share:before { content: $fa-var-share; }\n.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }\n.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }\n.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }\n.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }\n.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }\n.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }\n.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }\n.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }\n.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }\n.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }\n.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }\n.#{$fa-css-prefix}-warning:before,\n.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }\n.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }\n.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }\n.#{$fa-css-prefix}-random:before { content: $fa-var-random; }\n.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }\n.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }\n.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }\n.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }\n.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }\n.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }\n.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }\n.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }\n.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }\n.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }\n.#{$fa-css-prefix}-bar-chart-o:before,\n.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; }\n.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }\n.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }\n.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }\n.#{$fa-css-prefix}-key:before { content: $fa-var-key; }\n.#{$fa-css-prefix}-gears:before,\n.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }\n.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }\n.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }\n.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }\n.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }\n.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }\n.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }\n.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }\n.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }\n.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }\n.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }\n.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }\n.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }\n.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }\n.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }\n.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }\n.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }\n.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }\n.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }\n.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }\n.#{$fa-css-prefix}-facebook-f:before,\n.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }\n.#{$fa-css-prefix}-github:before { content: $fa-var-github; }\n.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }\n.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }\n.#{$fa-css-prefix}-feed:before,\n.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }\n.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }\n.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }\n.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }\n.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }\n.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }\n.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }\n.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }\n.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }\n.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }\n.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }\n.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }\n.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }\n.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }\n.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }\n.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }\n.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }\n.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }\n.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }\n.#{$fa-css-prefix}-group:before,\n.#{$fa-css-prefix}-users:before { content: $fa-var-users; }\n.#{$fa-css-prefix}-chain:before,\n.#{$fa-css-prefix}-link:before { content: $fa-var-link; }\n.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }\n.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }\n.#{$fa-css-prefix}-cut:before,\n.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }\n.#{$fa-css-prefix}-copy:before,\n.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }\n.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }\n.#{$fa-css-prefix}-save:before,\n.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }\n.#{$fa-css-prefix}-square:before { content: $fa-var-square; }\n.#{$fa-css-prefix}-navicon:before,\n.#{$fa-css-prefix}-reorder:before,\n.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }\n.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }\n.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }\n.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }\n.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }\n.#{$fa-css-prefix}-table:before { content: $fa-var-table; }\n.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }\n.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }\n.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }\n.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }\n.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }\n.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }\n.#{$fa-css-prefix}-money:before { content: $fa-var-money; }\n.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }\n.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }\n.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }\n.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }\n.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }\n.#{$fa-css-prefix}-unsorted:before,\n.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }\n.#{$fa-css-prefix}-sort-down:before,\n.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }\n.#{$fa-css-prefix}-sort-up:before,\n.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }\n.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }\n.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }\n.#{$fa-css-prefix}-rotate-left:before,\n.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }\n.#{$fa-css-prefix}-legal:before,\n.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }\n.#{$fa-css-prefix}-dashboard:before,\n.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }\n.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }\n.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }\n.#{$fa-css-prefix}-flash:before,\n.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }\n.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }\n.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }\n.#{$fa-css-prefix}-paste:before,\n.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }\n.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }\n.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }\n.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }\n.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }\n.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }\n.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }\n.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }\n.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }\n.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }\n.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }\n.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }\n.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }\n.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }\n.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }\n.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }\n.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }\n.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }\n.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }\n.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }\n.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }\n.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }\n.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }\n.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }\n.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }\n.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }\n.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }\n.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }\n.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }\n.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }\n.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }\n.#{$fa-css-prefix}-mobile-phone:before,\n.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }\n.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }\n.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }\n.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }\n.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }\n.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }\n.#{$fa-css-prefix}-mail-reply:before,\n.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }\n.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }\n.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }\n.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }\n.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }\n.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }\n.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }\n.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }\n.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }\n.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }\n.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }\n.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }\n.#{$fa-css-prefix}-code:before { content: $fa-var-code; }\n.#{$fa-css-prefix}-mail-reply-all:before,\n.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }\n.#{$fa-css-prefix}-star-half-empty:before,\n.#{$fa-css-prefix}-star-half-full:before,\n.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }\n.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }\n.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }\n.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }\n.#{$fa-css-prefix}-unlink:before,\n.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }\n.#{$fa-css-prefix}-question:before { content: $fa-var-question; }\n.#{$fa-css-prefix}-info:before { content: $fa-var-info; }\n.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }\n.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }\n.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }\n.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }\n.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }\n.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }\n.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }\n.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }\n.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }\n.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }\n.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }\n.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }\n.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }\n.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }\n.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }\n.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }\n.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }\n.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }\n.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }\n.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }\n.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }\n.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }\n.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }\n.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }\n.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }\n.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }\n.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }\n.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }\n.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }\n.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }\n.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }\n.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }\n.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }\n.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }\n.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }\n.#{$fa-css-prefix}-toggle-down:before,\n.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }\n.#{$fa-css-prefix}-toggle-up:before,\n.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }\n.#{$fa-css-prefix}-toggle-right:before,\n.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }\n.#{$fa-css-prefix}-euro:before,\n.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }\n.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }\n.#{$fa-css-prefix}-dollar:before,\n.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }\n.#{$fa-css-prefix}-rupee:before,\n.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }\n.#{$fa-css-prefix}-cny:before,\n.#{$fa-css-prefix}-rmb:before,\n.#{$fa-css-prefix}-yen:before,\n.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }\n.#{$fa-css-prefix}-ruble:before,\n.#{$fa-css-prefix}-rouble:before,\n.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }\n.#{$fa-css-prefix}-won:before,\n.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }\n.#{$fa-css-prefix}-bitcoin:before,\n.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }\n.#{$fa-css-prefix}-file:before { content: $fa-var-file; }\n.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }\n.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }\n.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }\n.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }\n.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }\n.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }\n.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }\n.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }\n.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }\n.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }\n.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }\n.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }\n.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }\n.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }\n.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }\n.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }\n.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }\n.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }\n.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }\n.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }\n.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }\n.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }\n.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }\n.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }\n.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }\n.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }\n.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }\n.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }\n.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }\n.#{$fa-css-prefix}-android:before { content: $fa-var-android; }\n.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }\n.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }\n.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }\n.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }\n.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }\n.#{$fa-css-prefix}-female:before { content: $fa-var-female; }\n.#{$fa-css-prefix}-male:before { content: $fa-var-male; }\n.#{$fa-css-prefix}-gittip:before,\n.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; }\n.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }\n.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }\n.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }\n.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }\n.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }\n.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }\n.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }\n.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }\n.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }\n.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }\n.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }\n.#{$fa-css-prefix}-toggle-left:before,\n.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }\n.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }\n.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }\n.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }\n.#{$fa-css-prefix}-turkish-lira:before,\n.#{$fa-css-prefix}-try:before { content: $fa-var-try; }\n.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }\n.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; }\n.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; }\n.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; }\n.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; }\n.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; }\n.#{$fa-css-prefix}-institution:before,\n.#{$fa-css-prefix}-bank:before,\n.#{$fa-css-prefix}-university:before { content: $fa-var-university; }\n.#{$fa-css-prefix}-mortar-board:before,\n.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; }\n.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; }\n.#{$fa-css-prefix}-google:before { content: $fa-var-google; }\n.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; }\n.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; }\n.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; }\n.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; }\n.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; }\n.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; }\n.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; }\n.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; }\n.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; }\n.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; }\n.#{$fa-css-prefix}-language:before { content: $fa-var-language; }\n.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; }\n.#{$fa-css-prefix}-building:before { content: $fa-var-building; }\n.#{$fa-css-prefix}-child:before { content: $fa-var-child; }\n.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; }\n.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; }\n.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; }\n.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; }\n.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; }\n.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; }\n.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; }\n.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; }\n.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; }\n.#{$fa-css-prefix}-automobile:before,\n.#{$fa-css-prefix}-car:before { content: $fa-var-car; }\n.#{$fa-css-prefix}-cab:before,\n.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; }\n.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; }\n.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; }\n.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; }\n.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; }\n.#{$fa-css-prefix}-database:before { content: $fa-var-database; }\n.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; }\n.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; }\n.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; }\n.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; }\n.#{$fa-css-prefix}-file-photo-o:before,\n.#{$fa-css-prefix}-file-picture-o:before,\n.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; }\n.#{$fa-css-prefix}-file-zip-o:before,\n.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; }\n.#{$fa-css-prefix}-file-sound-o:before,\n.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; }\n.#{$fa-css-prefix}-file-movie-o:before,\n.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; }\n.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; }\n.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; }\n.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; }\n.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; }\n.#{$fa-css-prefix}-life-bouy:before,\n.#{$fa-css-prefix}-life-buoy:before,\n.#{$fa-css-prefix}-life-saver:before,\n.#{$fa-css-prefix}-support:before,\n.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; }\n.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; }\n.#{$fa-css-prefix}-ra:before,\n.#{$fa-css-prefix}-resistance:before,\n.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; }\n.#{$fa-css-prefix}-ge:before,\n.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; }\n.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; }\n.#{$fa-css-prefix}-git:before { content: $fa-var-git; }\n.#{$fa-css-prefix}-y-combinator-square:before,\n.#{$fa-css-prefix}-yc-square:before,\n.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; }\n.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; }\n.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; }\n.#{$fa-css-prefix}-wechat:before,\n.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; }\n.#{$fa-css-prefix}-send:before,\n.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; }\n.#{$fa-css-prefix}-send-o:before,\n.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; }\n.#{$fa-css-prefix}-history:before { content: $fa-var-history; }\n.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; }\n.#{$fa-css-prefix}-header:before { content: $fa-var-header; }\n.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; }\n.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; }\n.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; }\n.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; }\n.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; }\n.#{$fa-css-prefix}-soccer-ball-o:before,\n.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; }\n.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; }\n.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; }\n.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; }\n.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; }\n.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; }\n.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; }\n.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; }\n.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; }\n.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; }\n.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; }\n.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; }\n.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; }\n.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; }\n.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; }\n.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; }\n.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; }\n.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; }\n.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; }\n.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; }\n.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; }\n.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; }\n.#{$fa-css-prefix}-at:before { content: $fa-var-at; }\n.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; }\n.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; }\n.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; }\n.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; }\n.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; }\n.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; }\n.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; }\n.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; }\n.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; }\n.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; }\n.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; }\n.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; }\n.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; }\n.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; }\n.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; }\n.#{$fa-css-prefix}-shekel:before,\n.#{$fa-css-prefix}-sheqel:before,\n.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; }\n.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; }\n.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; }\n.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; }\n.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; }\n.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; }\n.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; }\n.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; }\n.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; }\n.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; }\n.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; }\n.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; }\n.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; }\n.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; }\n.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; }\n.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; }\n.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; }\n.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; }\n.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; }\n.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; }\n.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; }\n.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; }\n.#{$fa-css-prefix}-intersex:before,\n.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; }\n.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; }\n.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; }\n.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; }\n.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; }\n.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; }\n.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; }\n.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; }\n.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; }\n.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; }\n.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; }\n.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; }\n.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; }\n.#{$fa-css-prefix}-server:before { content: $fa-var-server; }\n.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; }\n.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; }\n.#{$fa-css-prefix}-hotel:before,\n.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; }\n.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; }\n.#{$fa-css-prefix}-train:before { content: $fa-var-train; }\n.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; }\n.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; }\n.#{$fa-css-prefix}-yc:before,\n.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; }\n.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; }\n.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; }\n.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; }\n.#{$fa-css-prefix}-battery-4:before,\n.#{$fa-css-prefix}-battery:before,\n.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; }\n.#{$fa-css-prefix}-battery-3:before,\n.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; }\n.#{$fa-css-prefix}-battery-2:before,\n.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; }\n.#{$fa-css-prefix}-battery-1:before,\n.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; }\n.#{$fa-css-prefix}-battery-0:before,\n.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; }\n.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; }\n.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; }\n.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; }\n.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; }\n.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; }\n.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; }\n.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; }\n.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; }\n.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; }\n.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; }\n.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; }\n.#{$fa-css-prefix}-hourglass-1:before,\n.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; }\n.#{$fa-css-prefix}-hourglass-2:before,\n.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; }\n.#{$fa-css-prefix}-hourglass-3:before,\n.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; }\n.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; }\n.#{$fa-css-prefix}-hand-grab-o:before,\n.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; }\n.#{$fa-css-prefix}-hand-stop-o:before,\n.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; }\n.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; }\n.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; }\n.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; }\n.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; }\n.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; }\n.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; }\n.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; }\n.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; }\n.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; }\n.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; }\n.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; }\n.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; }\n.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; }\n.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; }\n.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; }\n.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; }\n.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; }\n.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; }\n.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; }\n.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; }\n.#{$fa-css-prefix}-tv:before,\n.#{$fa-css-prefix}-television:before { content: $fa-var-television; }\n.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; }\n.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; }\n.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; }\n.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; }\n.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; }\n.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; }\n.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; }\n.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; }\n.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; }\n.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; }\n.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; }\n.#{$fa-css-prefix}-map:before { content: $fa-var-map; }\n.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; }\n.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; }\n.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; }\n.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; }\n.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; }\n.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; }\n.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; }\n.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; }\n.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; }\n.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; }\n.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; }\n.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; }\n.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; }\n.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; }\n.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; }\n.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; }\n.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; }\n.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; }\n.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; }\n.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; }\n.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; }\n.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; }\n.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; }\n.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; }\n.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; }\n.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; }\n.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; }\n.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; }\n.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; }\n.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; }\n.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; }\n.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; }\n.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; }\n.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; }\n.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; }\n.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; }\n.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; }\n.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; }\n.#{$fa-css-prefix}-asl-interpreting:before,\n.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; }\n.#{$fa-css-prefix}-deafness:before,\n.#{$fa-css-prefix}-hard-of-hearing:before,\n.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; }\n.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; }\n.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; }\n.#{$fa-css-prefix}-signing:before,\n.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; }\n.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; }\n.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; }\n.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; }\n.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; }\n.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; }\n.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; }\n.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; }\n.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; }\n.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; }\n.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; }\n.#{$fa-css-prefix}-google-plus-circle:before,\n.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; }\n.#{$fa-css-prefix}-fa:before,\n.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; }\n.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; }\n.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; }\n.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; }\n.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; }\n.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; }\n.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; }\n.#{$fa-css-prefix}-vcard:before,\n.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; }\n.#{$fa-css-prefix}-vcard-o:before,\n.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; }\n.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; }\n.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; }\n.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; }\n.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; }\n.#{$fa-css-prefix}-drivers-license:before,\n.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; }\n.#{$fa-css-prefix}-drivers-license-o:before,\n.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; }\n.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; }\n.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; }\n.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; }\n.#{$fa-css-prefix}-thermometer-4:before,\n.#{$fa-css-prefix}-thermometer:before,\n.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; }\n.#{$fa-css-prefix}-thermometer-3:before,\n.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; }\n.#{$fa-css-prefix}-thermometer-2:before,\n.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; }\n.#{$fa-css-prefix}-thermometer-1:before,\n.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; }\n.#{$fa-css-prefix}-thermometer-0:before,\n.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; }\n.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; }\n.#{$fa-css-prefix}-bathtub:before,\n.#{$fa-css-prefix}-s15:before,\n.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; }\n.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; }\n.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; }\n.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; }\n.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; }\n.#{$fa-css-prefix}-times-rectangle:before,\n.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; }\n.#{$fa-css-prefix}-times-rectangle-o:before,\n.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; }\n.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; }\n.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; }\n.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; }\n.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; }\n.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; }\n.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; }\n.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; }\n.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; }\n.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; }\n.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; }\n.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_larger.scss",
    "content": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.#{$fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -15%;\n}\n.#{$fa-css-prefix}-2x { font-size: 2em; }\n.#{$fa-css-prefix}-3x { font-size: 3em; }\n.#{$fa-css-prefix}-4x { font-size: 4em; }\n.#{$fa-css-prefix}-5x { font-size: 5em; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_list.scss",
    "content": "// List Icons\n// -------------------------\n\n.#{$fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: $fa-li-width;\n  list-style-type: none;\n  > li { position: relative; }\n}\n.#{$fa-css-prefix}-li {\n  position: absolute;\n  left: -$fa-li-width;\n  width: $fa-li-width;\n  top: (2em / 14);\n  text-align: center;\n  &.#{$fa-css-prefix}-lg {\n    left: -$fa-li-width + (4em / 14);\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_mixins.scss",
    "content": "// Mixins\n// --------------------------\n\n@mixin fa-icon() {\n  display: inline-block;\n  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration\n  font-size: inherit; // can't have font-size inherit on line above, so need to override\n  text-rendering: auto; // optimizelegibility throws things off #1094\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n\n}\n\n@mixin fa-icon-rotate($degrees, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})\";\n  -webkit-transform: rotate($degrees);\n      -ms-transform: rotate($degrees);\n          transform: rotate($degrees);\n}\n\n@mixin fa-icon-flip($horiz, $vert, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)\";\n  -webkit-transform: scale($horiz, $vert);\n      -ms-transform: scale($horiz, $vert);\n          transform: scale($horiz, $vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n@mixin sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_path.scss",
    "content": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');\n  src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),\n    url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),\n    url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),\n    url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),\n    url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');\n//  src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\n  font-weight: normal;\n  font-style: normal;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_rotated-flipped.scss",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, 1);  }\n.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }\n.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }\n\n.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }\n.#{$fa-css-prefix}-flip-vertical   { @include fa-icon-flip(1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root .#{$fa-css-prefix}-rotate-90,\n:root .#{$fa-css-prefix}-rotate-180,\n:root .#{$fa-css-prefix}-rotate-270,\n:root .#{$fa-css-prefix}-flip-horizontal,\n:root .#{$fa-css-prefix}-flip-vertical {\n  filter: none;\n}\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_screen-reader.scss",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { @include sr-only(); }\n.sr-only-focusable { @include sr-only-focusable(); }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_stacked.scss",
    "content": "// Stacked Icons\n// -------------------------\n\n.#{$fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.#{$fa-css-prefix}-stack-1x { line-height: inherit; }\n.#{$fa-css-prefix}-stack-2x { font-size: 2em; }\n.#{$fa-css-prefix}-inverse { color: $fa-inverse; }\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/_variables.scss",
    "content": "// Variables\n// --------------------------\n\n$fa-font-path:        \"../fonts\" !default;\n$fa-font-size-base:   14px !default;\n$fa-line-height-base: 1 !default;\n//$fa-font-path:        \"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\" !default; // for referencing Bootstrap CDN font files directly\n$fa-css-prefix:       fa !default;\n$fa-version:          \"4.7.0\" !default;\n$fa-border-color:     #eee !default;\n$fa-inverse:          #fff !default;\n$fa-li-width:         (30em / 14) !default;\n\n$fa-var-500px: \"\\f26e\";\n$fa-var-address-book: \"\\f2b9\";\n$fa-var-address-book-o: \"\\f2ba\";\n$fa-var-address-card: \"\\f2bb\";\n$fa-var-address-card-o: \"\\f2bc\";\n$fa-var-adjust: \"\\f042\";\n$fa-var-adn: \"\\f170\";\n$fa-var-align-center: \"\\f037\";\n$fa-var-align-justify: \"\\f039\";\n$fa-var-align-left: \"\\f036\";\n$fa-var-align-right: \"\\f038\";\n$fa-var-amazon: \"\\f270\";\n$fa-var-ambulance: \"\\f0f9\";\n$fa-var-american-sign-language-interpreting: \"\\f2a3\";\n$fa-var-anchor: \"\\f13d\";\n$fa-var-android: \"\\f17b\";\n$fa-var-angellist: \"\\f209\";\n$fa-var-angle-double-down: \"\\f103\";\n$fa-var-angle-double-left: \"\\f100\";\n$fa-var-angle-double-right: \"\\f101\";\n$fa-var-angle-double-up: \"\\f102\";\n$fa-var-angle-down: \"\\f107\";\n$fa-var-angle-left: \"\\f104\";\n$fa-var-angle-right: \"\\f105\";\n$fa-var-angle-up: \"\\f106\";\n$fa-var-apple: \"\\f179\";\n$fa-var-archive: \"\\f187\";\n$fa-var-area-chart: \"\\f1fe\";\n$fa-var-arrow-circle-down: \"\\f0ab\";\n$fa-var-arrow-circle-left: \"\\f0a8\";\n$fa-var-arrow-circle-o-down: \"\\f01a\";\n$fa-var-arrow-circle-o-left: \"\\f190\";\n$fa-var-arrow-circle-o-right: \"\\f18e\";\n$fa-var-arrow-circle-o-up: \"\\f01b\";\n$fa-var-arrow-circle-right: \"\\f0a9\";\n$fa-var-arrow-circle-up: \"\\f0aa\";\n$fa-var-arrow-down: \"\\f063\";\n$fa-var-arrow-left: \"\\f060\";\n$fa-var-arrow-right: \"\\f061\";\n$fa-var-arrow-up: \"\\f062\";\n$fa-var-arrows: \"\\f047\";\n$fa-var-arrows-alt: \"\\f0b2\";\n$fa-var-arrows-h: \"\\f07e\";\n$fa-var-arrows-v: \"\\f07d\";\n$fa-var-asl-interpreting: \"\\f2a3\";\n$fa-var-assistive-listening-systems: \"\\f2a2\";\n$fa-var-asterisk: \"\\f069\";\n$fa-var-at: \"\\f1fa\";\n$fa-var-audio-description: \"\\f29e\";\n$fa-var-automobile: \"\\f1b9\";\n$fa-var-backward: \"\\f04a\";\n$fa-var-balance-scale: \"\\f24e\";\n$fa-var-ban: \"\\f05e\";\n$fa-var-bandcamp: \"\\f2d5\";\n$fa-var-bank: \"\\f19c\";\n$fa-var-bar-chart: \"\\f080\";\n$fa-var-bar-chart-o: \"\\f080\";\n$fa-var-barcode: \"\\f02a\";\n$fa-var-bars: \"\\f0c9\";\n$fa-var-bath: \"\\f2cd\";\n$fa-var-bathtub: \"\\f2cd\";\n$fa-var-battery: \"\\f240\";\n$fa-var-battery-0: \"\\f244\";\n$fa-var-battery-1: \"\\f243\";\n$fa-var-battery-2: \"\\f242\";\n$fa-var-battery-3: \"\\f241\";\n$fa-var-battery-4: \"\\f240\";\n$fa-var-battery-empty: \"\\f244\";\n$fa-var-battery-full: \"\\f240\";\n$fa-var-battery-half: \"\\f242\";\n$fa-var-battery-quarter: \"\\f243\";\n$fa-var-battery-three-quarters: \"\\f241\";\n$fa-var-bed: \"\\f236\";\n$fa-var-beer: \"\\f0fc\";\n$fa-var-behance: \"\\f1b4\";\n$fa-var-behance-square: \"\\f1b5\";\n$fa-var-bell: \"\\f0f3\";\n$fa-var-bell-o: \"\\f0a2\";\n$fa-var-bell-slash: \"\\f1f6\";\n$fa-var-bell-slash-o: \"\\f1f7\";\n$fa-var-bicycle: \"\\f206\";\n$fa-var-binoculars: \"\\f1e5\";\n$fa-var-birthday-cake: \"\\f1fd\";\n$fa-var-bitbucket: \"\\f171\";\n$fa-var-bitbucket-square: \"\\f172\";\n$fa-var-bitcoin: \"\\f15a\";\n$fa-var-black-tie: \"\\f27e\";\n$fa-var-blind: \"\\f29d\";\n$fa-var-bluetooth: \"\\f293\";\n$fa-var-bluetooth-b: \"\\f294\";\n$fa-var-bold: \"\\f032\";\n$fa-var-bolt: \"\\f0e7\";\n$fa-var-bomb: \"\\f1e2\";\n$fa-var-book: \"\\f02d\";\n$fa-var-bookmark: \"\\f02e\";\n$fa-var-bookmark-o: \"\\f097\";\n$fa-var-braille: \"\\f2a1\";\n$fa-var-briefcase: \"\\f0b1\";\n$fa-var-btc: \"\\f15a\";\n$fa-var-bug: \"\\f188\";\n$fa-var-building: \"\\f1ad\";\n$fa-var-building-o: \"\\f0f7\";\n$fa-var-bullhorn: \"\\f0a1\";\n$fa-var-bullseye: \"\\f140\";\n$fa-var-bus: \"\\f207\";\n$fa-var-buysellads: \"\\f20d\";\n$fa-var-cab: \"\\f1ba\";\n$fa-var-calculator: \"\\f1ec\";\n$fa-var-calendar: \"\\f073\";\n$fa-var-calendar-check-o: \"\\f274\";\n$fa-var-calendar-minus-o: \"\\f272\";\n$fa-var-calendar-o: \"\\f133\";\n$fa-var-calendar-plus-o: \"\\f271\";\n$fa-var-calendar-times-o: \"\\f273\";\n$fa-var-camera: \"\\f030\";\n$fa-var-camera-retro: \"\\f083\";\n$fa-var-car: \"\\f1b9\";\n$fa-var-caret-down: \"\\f0d7\";\n$fa-var-caret-left: \"\\f0d9\";\n$fa-var-caret-right: \"\\f0da\";\n$fa-var-caret-square-o-down: \"\\f150\";\n$fa-var-caret-square-o-left: \"\\f191\";\n$fa-var-caret-square-o-right: \"\\f152\";\n$fa-var-caret-square-o-up: \"\\f151\";\n$fa-var-caret-up: \"\\f0d8\";\n$fa-var-cart-arrow-down: \"\\f218\";\n$fa-var-cart-plus: \"\\f217\";\n$fa-var-cc: \"\\f20a\";\n$fa-var-cc-amex: \"\\f1f3\";\n$fa-var-cc-diners-club: \"\\f24c\";\n$fa-var-cc-discover: \"\\f1f2\";\n$fa-var-cc-jcb: \"\\f24b\";\n$fa-var-cc-mastercard: \"\\f1f1\";\n$fa-var-cc-paypal: \"\\f1f4\";\n$fa-var-cc-stripe: \"\\f1f5\";\n$fa-var-cc-visa: \"\\f1f0\";\n$fa-var-certificate: \"\\f0a3\";\n$fa-var-chain: \"\\f0c1\";\n$fa-var-chain-broken: \"\\f127\";\n$fa-var-check: \"\\f00c\";\n$fa-var-check-circle: \"\\f058\";\n$fa-var-check-circle-o: \"\\f05d\";\n$fa-var-check-square: \"\\f14a\";\n$fa-var-check-square-o: \"\\f046\";\n$fa-var-chevron-circle-down: \"\\f13a\";\n$fa-var-chevron-circle-left: \"\\f137\";\n$fa-var-chevron-circle-right: \"\\f138\";\n$fa-var-chevron-circle-up: \"\\f139\";\n$fa-var-chevron-down: \"\\f078\";\n$fa-var-chevron-left: \"\\f053\";\n$fa-var-chevron-right: \"\\f054\";\n$fa-var-chevron-up: \"\\f077\";\n$fa-var-child: \"\\f1ae\";\n$fa-var-chrome: \"\\f268\";\n$fa-var-circle: \"\\f111\";\n$fa-var-circle-o: \"\\f10c\";\n$fa-var-circle-o-notch: \"\\f1ce\";\n$fa-var-circle-thin: \"\\f1db\";\n$fa-var-clipboard: \"\\f0ea\";\n$fa-var-clock-o: \"\\f017\";\n$fa-var-clone: \"\\f24d\";\n$fa-var-close: \"\\f00d\";\n$fa-var-cloud: \"\\f0c2\";\n$fa-var-cloud-download: \"\\f0ed\";\n$fa-var-cloud-upload: \"\\f0ee\";\n$fa-var-cny: \"\\f157\";\n$fa-var-code: \"\\f121\";\n$fa-var-code-fork: \"\\f126\";\n$fa-var-codepen: \"\\f1cb\";\n$fa-var-codiepie: \"\\f284\";\n$fa-var-coffee: \"\\f0f4\";\n$fa-var-cog: \"\\f013\";\n$fa-var-cogs: \"\\f085\";\n$fa-var-columns: \"\\f0db\";\n$fa-var-comment: \"\\f075\";\n$fa-var-comment-o: \"\\f0e5\";\n$fa-var-commenting: \"\\f27a\";\n$fa-var-commenting-o: \"\\f27b\";\n$fa-var-comments: \"\\f086\";\n$fa-var-comments-o: \"\\f0e6\";\n$fa-var-compass: \"\\f14e\";\n$fa-var-compress: \"\\f066\";\n$fa-var-connectdevelop: \"\\f20e\";\n$fa-var-contao: \"\\f26d\";\n$fa-var-copy: \"\\f0c5\";\n$fa-var-copyright: \"\\f1f9\";\n$fa-var-creative-commons: \"\\f25e\";\n$fa-var-credit-card: \"\\f09d\";\n$fa-var-credit-card-alt: \"\\f283\";\n$fa-var-crop: \"\\f125\";\n$fa-var-crosshairs: \"\\f05b\";\n$fa-var-css3: \"\\f13c\";\n$fa-var-cube: \"\\f1b2\";\n$fa-var-cubes: \"\\f1b3\";\n$fa-var-cut: \"\\f0c4\";\n$fa-var-cutlery: \"\\f0f5\";\n$fa-var-dashboard: \"\\f0e4\";\n$fa-var-dashcube: \"\\f210\";\n$fa-var-database: \"\\f1c0\";\n$fa-var-deaf: \"\\f2a4\";\n$fa-var-deafness: \"\\f2a4\";\n$fa-var-dedent: \"\\f03b\";\n$fa-var-delicious: \"\\f1a5\";\n$fa-var-desktop: \"\\f108\";\n$fa-var-deviantart: \"\\f1bd\";\n$fa-var-diamond: \"\\f219\";\n$fa-var-digg: \"\\f1a6\";\n$fa-var-dollar: \"\\f155\";\n$fa-var-dot-circle-o: \"\\f192\";\n$fa-var-download: \"\\f019\";\n$fa-var-dribbble: \"\\f17d\";\n$fa-var-drivers-license: \"\\f2c2\";\n$fa-var-drivers-license-o: \"\\f2c3\";\n$fa-var-dropbox: \"\\f16b\";\n$fa-var-drupal: \"\\f1a9\";\n$fa-var-edge: \"\\f282\";\n$fa-var-edit: \"\\f044\";\n$fa-var-eercast: \"\\f2da\";\n$fa-var-eject: \"\\f052\";\n$fa-var-ellipsis-h: \"\\f141\";\n$fa-var-ellipsis-v: \"\\f142\";\n$fa-var-empire: \"\\f1d1\";\n$fa-var-envelope: \"\\f0e0\";\n$fa-var-envelope-o: \"\\f003\";\n$fa-var-envelope-open: \"\\f2b6\";\n$fa-var-envelope-open-o: \"\\f2b7\";\n$fa-var-envelope-square: \"\\f199\";\n$fa-var-envira: \"\\f299\";\n$fa-var-eraser: \"\\f12d\";\n$fa-var-etsy: \"\\f2d7\";\n$fa-var-eur: \"\\f153\";\n$fa-var-euro: \"\\f153\";\n$fa-var-exchange: \"\\f0ec\";\n$fa-var-exclamation: \"\\f12a\";\n$fa-var-exclamation-circle: \"\\f06a\";\n$fa-var-exclamation-triangle: \"\\f071\";\n$fa-var-expand: \"\\f065\";\n$fa-var-expeditedssl: \"\\f23e\";\n$fa-var-external-link: \"\\f08e\";\n$fa-var-external-link-square: \"\\f14c\";\n$fa-var-eye: \"\\f06e\";\n$fa-var-eye-slash: \"\\f070\";\n$fa-var-eyedropper: \"\\f1fb\";\n$fa-var-fa: \"\\f2b4\";\n$fa-var-facebook: \"\\f09a\";\n$fa-var-facebook-f: \"\\f09a\";\n$fa-var-facebook-official: \"\\f230\";\n$fa-var-facebook-square: \"\\f082\";\n$fa-var-fast-backward: \"\\f049\";\n$fa-var-fast-forward: \"\\f050\";\n$fa-var-fax: \"\\f1ac\";\n$fa-var-feed: \"\\f09e\";\n$fa-var-female: \"\\f182\";\n$fa-var-fighter-jet: \"\\f0fb\";\n$fa-var-file: \"\\f15b\";\n$fa-var-file-archive-o: \"\\f1c6\";\n$fa-var-file-audio-o: \"\\f1c7\";\n$fa-var-file-code-o: \"\\f1c9\";\n$fa-var-file-excel-o: \"\\f1c3\";\n$fa-var-file-image-o: \"\\f1c5\";\n$fa-var-file-movie-o: \"\\f1c8\";\n$fa-var-file-o: \"\\f016\";\n$fa-var-file-pdf-o: \"\\f1c1\";\n$fa-var-file-photo-o: \"\\f1c5\";\n$fa-var-file-picture-o: \"\\f1c5\";\n$fa-var-file-powerpoint-o: \"\\f1c4\";\n$fa-var-file-sound-o: \"\\f1c7\";\n$fa-var-file-text: \"\\f15c\";\n$fa-var-file-text-o: \"\\f0f6\";\n$fa-var-file-video-o: \"\\f1c8\";\n$fa-var-file-word-o: \"\\f1c2\";\n$fa-var-file-zip-o: \"\\f1c6\";\n$fa-var-files-o: \"\\f0c5\";\n$fa-var-film: \"\\f008\";\n$fa-var-filter: \"\\f0b0\";\n$fa-var-fire: \"\\f06d\";\n$fa-var-fire-extinguisher: \"\\f134\";\n$fa-var-firefox: \"\\f269\";\n$fa-var-first-order: \"\\f2b0\";\n$fa-var-flag: \"\\f024\";\n$fa-var-flag-checkered: \"\\f11e\";\n$fa-var-flag-o: \"\\f11d\";\n$fa-var-flash: \"\\f0e7\";\n$fa-var-flask: \"\\f0c3\";\n$fa-var-flickr: \"\\f16e\";\n$fa-var-floppy-o: \"\\f0c7\";\n$fa-var-folder: \"\\f07b\";\n$fa-var-folder-o: \"\\f114\";\n$fa-var-folder-open: \"\\f07c\";\n$fa-var-folder-open-o: \"\\f115\";\n$fa-var-font: \"\\f031\";\n$fa-var-font-awesome: \"\\f2b4\";\n$fa-var-fonticons: \"\\f280\";\n$fa-var-fort-awesome: \"\\f286\";\n$fa-var-forumbee: \"\\f211\";\n$fa-var-forward: \"\\f04e\";\n$fa-var-foursquare: \"\\f180\";\n$fa-var-free-code-camp: \"\\f2c5\";\n$fa-var-frown-o: \"\\f119\";\n$fa-var-futbol-o: \"\\f1e3\";\n$fa-var-gamepad: \"\\f11b\";\n$fa-var-gavel: \"\\f0e3\";\n$fa-var-gbp: \"\\f154\";\n$fa-var-ge: \"\\f1d1\";\n$fa-var-gear: \"\\f013\";\n$fa-var-gears: \"\\f085\";\n$fa-var-genderless: \"\\f22d\";\n$fa-var-get-pocket: \"\\f265\";\n$fa-var-gg: \"\\f260\";\n$fa-var-gg-circle: \"\\f261\";\n$fa-var-gift: \"\\f06b\";\n$fa-var-git: \"\\f1d3\";\n$fa-var-git-square: \"\\f1d2\";\n$fa-var-github: \"\\f09b\";\n$fa-var-github-alt: \"\\f113\";\n$fa-var-github-square: \"\\f092\";\n$fa-var-gitlab: \"\\f296\";\n$fa-var-gittip: \"\\f184\";\n$fa-var-glass: \"\\f000\";\n$fa-var-glide: \"\\f2a5\";\n$fa-var-glide-g: \"\\f2a6\";\n$fa-var-globe: \"\\f0ac\";\n$fa-var-google: \"\\f1a0\";\n$fa-var-google-plus: \"\\f0d5\";\n$fa-var-google-plus-circle: \"\\f2b3\";\n$fa-var-google-plus-official: \"\\f2b3\";\n$fa-var-google-plus-square: \"\\f0d4\";\n$fa-var-google-wallet: \"\\f1ee\";\n$fa-var-graduation-cap: \"\\f19d\";\n$fa-var-gratipay: \"\\f184\";\n$fa-var-grav: \"\\f2d6\";\n$fa-var-group: \"\\f0c0\";\n$fa-var-h-square: \"\\f0fd\";\n$fa-var-hacker-news: \"\\f1d4\";\n$fa-var-hand-grab-o: \"\\f255\";\n$fa-var-hand-lizard-o: \"\\f258\";\n$fa-var-hand-o-down: \"\\f0a7\";\n$fa-var-hand-o-left: \"\\f0a5\";\n$fa-var-hand-o-right: \"\\f0a4\";\n$fa-var-hand-o-up: \"\\f0a6\";\n$fa-var-hand-paper-o: \"\\f256\";\n$fa-var-hand-peace-o: \"\\f25b\";\n$fa-var-hand-pointer-o: \"\\f25a\";\n$fa-var-hand-rock-o: \"\\f255\";\n$fa-var-hand-scissors-o: \"\\f257\";\n$fa-var-hand-spock-o: \"\\f259\";\n$fa-var-hand-stop-o: \"\\f256\";\n$fa-var-handshake-o: \"\\f2b5\";\n$fa-var-hard-of-hearing: \"\\f2a4\";\n$fa-var-hashtag: \"\\f292\";\n$fa-var-hdd-o: \"\\f0a0\";\n$fa-var-header: \"\\f1dc\";\n$fa-var-headphones: \"\\f025\";\n$fa-var-heart: \"\\f004\";\n$fa-var-heart-o: \"\\f08a\";\n$fa-var-heartbeat: \"\\f21e\";\n$fa-var-history: \"\\f1da\";\n$fa-var-home: \"\\f015\";\n$fa-var-hospital-o: \"\\f0f8\";\n$fa-var-hotel: \"\\f236\";\n$fa-var-hourglass: \"\\f254\";\n$fa-var-hourglass-1: \"\\f251\";\n$fa-var-hourglass-2: \"\\f252\";\n$fa-var-hourglass-3: \"\\f253\";\n$fa-var-hourglass-end: \"\\f253\";\n$fa-var-hourglass-half: \"\\f252\";\n$fa-var-hourglass-o: \"\\f250\";\n$fa-var-hourglass-start: \"\\f251\";\n$fa-var-houzz: \"\\f27c\";\n$fa-var-html5: \"\\f13b\";\n$fa-var-i-cursor: \"\\f246\";\n$fa-var-id-badge: \"\\f2c1\";\n$fa-var-id-card: \"\\f2c2\";\n$fa-var-id-card-o: \"\\f2c3\";\n$fa-var-ils: \"\\f20b\";\n$fa-var-image: \"\\f03e\";\n$fa-var-imdb: \"\\f2d8\";\n$fa-var-inbox: \"\\f01c\";\n$fa-var-indent: \"\\f03c\";\n$fa-var-industry: \"\\f275\";\n$fa-var-info: \"\\f129\";\n$fa-var-info-circle: \"\\f05a\";\n$fa-var-inr: \"\\f156\";\n$fa-var-instagram: \"\\f16d\";\n$fa-var-institution: \"\\f19c\";\n$fa-var-internet-explorer: \"\\f26b\";\n$fa-var-intersex: \"\\f224\";\n$fa-var-ioxhost: \"\\f208\";\n$fa-var-italic: \"\\f033\";\n$fa-var-joomla: \"\\f1aa\";\n$fa-var-jpy: \"\\f157\";\n$fa-var-jsfiddle: \"\\f1cc\";\n$fa-var-key: \"\\f084\";\n$fa-var-keyboard-o: \"\\f11c\";\n$fa-var-krw: \"\\f159\";\n$fa-var-language: \"\\f1ab\";\n$fa-var-laptop: \"\\f109\";\n$fa-var-lastfm: \"\\f202\";\n$fa-var-lastfm-square: \"\\f203\";\n$fa-var-leaf: \"\\f06c\";\n$fa-var-leanpub: \"\\f212\";\n$fa-var-legal: \"\\f0e3\";\n$fa-var-lemon-o: \"\\f094\";\n$fa-var-level-down: \"\\f149\";\n$fa-var-level-up: \"\\f148\";\n$fa-var-life-bouy: \"\\f1cd\";\n$fa-var-life-buoy: \"\\f1cd\";\n$fa-var-life-ring: \"\\f1cd\";\n$fa-var-life-saver: \"\\f1cd\";\n$fa-var-lightbulb-o: \"\\f0eb\";\n$fa-var-line-chart: \"\\f201\";\n$fa-var-link: \"\\f0c1\";\n$fa-var-linkedin: \"\\f0e1\";\n$fa-var-linkedin-square: \"\\f08c\";\n$fa-var-linode: \"\\f2b8\";\n$fa-var-linux: \"\\f17c\";\n$fa-var-list: \"\\f03a\";\n$fa-var-list-alt: \"\\f022\";\n$fa-var-list-ol: \"\\f0cb\";\n$fa-var-list-ul: \"\\f0ca\";\n$fa-var-location-arrow: \"\\f124\";\n$fa-var-lock: \"\\f023\";\n$fa-var-long-arrow-down: \"\\f175\";\n$fa-var-long-arrow-left: \"\\f177\";\n$fa-var-long-arrow-right: \"\\f178\";\n$fa-var-long-arrow-up: \"\\f176\";\n$fa-var-low-vision: \"\\f2a8\";\n$fa-var-magic: \"\\f0d0\";\n$fa-var-magnet: \"\\f076\";\n$fa-var-mail-forward: \"\\f064\";\n$fa-var-mail-reply: \"\\f112\";\n$fa-var-mail-reply-all: \"\\f122\";\n$fa-var-male: \"\\f183\";\n$fa-var-map: \"\\f279\";\n$fa-var-map-marker: \"\\f041\";\n$fa-var-map-o: \"\\f278\";\n$fa-var-map-pin: \"\\f276\";\n$fa-var-map-signs: \"\\f277\";\n$fa-var-mars: \"\\f222\";\n$fa-var-mars-double: \"\\f227\";\n$fa-var-mars-stroke: \"\\f229\";\n$fa-var-mars-stroke-h: \"\\f22b\";\n$fa-var-mars-stroke-v: \"\\f22a\";\n$fa-var-maxcdn: \"\\f136\";\n$fa-var-meanpath: \"\\f20c\";\n$fa-var-medium: \"\\f23a\";\n$fa-var-medkit: \"\\f0fa\";\n$fa-var-meetup: \"\\f2e0\";\n$fa-var-meh-o: \"\\f11a\";\n$fa-var-mercury: \"\\f223\";\n$fa-var-microchip: \"\\f2db\";\n$fa-var-microphone: \"\\f130\";\n$fa-var-microphone-slash: \"\\f131\";\n$fa-var-minus: \"\\f068\";\n$fa-var-minus-circle: \"\\f056\";\n$fa-var-minus-square: \"\\f146\";\n$fa-var-minus-square-o: \"\\f147\";\n$fa-var-mixcloud: \"\\f289\";\n$fa-var-mobile: \"\\f10b\";\n$fa-var-mobile-phone: \"\\f10b\";\n$fa-var-modx: \"\\f285\";\n$fa-var-money: \"\\f0d6\";\n$fa-var-moon-o: \"\\f186\";\n$fa-var-mortar-board: \"\\f19d\";\n$fa-var-motorcycle: \"\\f21c\";\n$fa-var-mouse-pointer: \"\\f245\";\n$fa-var-music: \"\\f001\";\n$fa-var-navicon: \"\\f0c9\";\n$fa-var-neuter: \"\\f22c\";\n$fa-var-newspaper-o: \"\\f1ea\";\n$fa-var-object-group: \"\\f247\";\n$fa-var-object-ungroup: \"\\f248\";\n$fa-var-odnoklassniki: \"\\f263\";\n$fa-var-odnoklassniki-square: \"\\f264\";\n$fa-var-opencart: \"\\f23d\";\n$fa-var-openid: \"\\f19b\";\n$fa-var-opera: \"\\f26a\";\n$fa-var-optin-monster: \"\\f23c\";\n$fa-var-outdent: \"\\f03b\";\n$fa-var-pagelines: \"\\f18c\";\n$fa-var-paint-brush: \"\\f1fc\";\n$fa-var-paper-plane: \"\\f1d8\";\n$fa-var-paper-plane-o: \"\\f1d9\";\n$fa-var-paperclip: \"\\f0c6\";\n$fa-var-paragraph: \"\\f1dd\";\n$fa-var-paste: \"\\f0ea\";\n$fa-var-pause: \"\\f04c\";\n$fa-var-pause-circle: \"\\f28b\";\n$fa-var-pause-circle-o: \"\\f28c\";\n$fa-var-paw: \"\\f1b0\";\n$fa-var-paypal: \"\\f1ed\";\n$fa-var-pencil: \"\\f040\";\n$fa-var-pencil-square: \"\\f14b\";\n$fa-var-pencil-square-o: \"\\f044\";\n$fa-var-percent: \"\\f295\";\n$fa-var-phone: \"\\f095\";\n$fa-var-phone-square: \"\\f098\";\n$fa-var-photo: \"\\f03e\";\n$fa-var-picture-o: \"\\f03e\";\n$fa-var-pie-chart: \"\\f200\";\n$fa-var-pied-piper: \"\\f2ae\";\n$fa-var-pied-piper-alt: \"\\f1a8\";\n$fa-var-pied-piper-pp: \"\\f1a7\";\n$fa-var-pinterest: \"\\f0d2\";\n$fa-var-pinterest-p: \"\\f231\";\n$fa-var-pinterest-square: \"\\f0d3\";\n$fa-var-plane: \"\\f072\";\n$fa-var-play: \"\\f04b\";\n$fa-var-play-circle: \"\\f144\";\n$fa-var-play-circle-o: \"\\f01d\";\n$fa-var-plug: \"\\f1e6\";\n$fa-var-plus: \"\\f067\";\n$fa-var-plus-circle: \"\\f055\";\n$fa-var-plus-square: \"\\f0fe\";\n$fa-var-plus-square-o: \"\\f196\";\n$fa-var-podcast: \"\\f2ce\";\n$fa-var-power-off: \"\\f011\";\n$fa-var-print: \"\\f02f\";\n$fa-var-product-hunt: \"\\f288\";\n$fa-var-puzzle-piece: \"\\f12e\";\n$fa-var-qq: \"\\f1d6\";\n$fa-var-qrcode: \"\\f029\";\n$fa-var-question: \"\\f128\";\n$fa-var-question-circle: \"\\f059\";\n$fa-var-question-circle-o: \"\\f29c\";\n$fa-var-quora: \"\\f2c4\";\n$fa-var-quote-left: \"\\f10d\";\n$fa-var-quote-right: \"\\f10e\";\n$fa-var-ra: \"\\f1d0\";\n$fa-var-random: \"\\f074\";\n$fa-var-ravelry: \"\\f2d9\";\n$fa-var-rebel: \"\\f1d0\";\n$fa-var-recycle: \"\\f1b8\";\n$fa-var-reddit: \"\\f1a1\";\n$fa-var-reddit-alien: \"\\f281\";\n$fa-var-reddit-square: \"\\f1a2\";\n$fa-var-refresh: \"\\f021\";\n$fa-var-registered: \"\\f25d\";\n$fa-var-remove: \"\\f00d\";\n$fa-var-renren: \"\\f18b\";\n$fa-var-reorder: \"\\f0c9\";\n$fa-var-repeat: \"\\f01e\";\n$fa-var-reply: \"\\f112\";\n$fa-var-reply-all: \"\\f122\";\n$fa-var-resistance: \"\\f1d0\";\n$fa-var-retweet: \"\\f079\";\n$fa-var-rmb: \"\\f157\";\n$fa-var-road: \"\\f018\";\n$fa-var-rocket: \"\\f135\";\n$fa-var-rotate-left: \"\\f0e2\";\n$fa-var-rotate-right: \"\\f01e\";\n$fa-var-rouble: \"\\f158\";\n$fa-var-rss: \"\\f09e\";\n$fa-var-rss-square: \"\\f143\";\n$fa-var-rub: \"\\f158\";\n$fa-var-ruble: \"\\f158\";\n$fa-var-rupee: \"\\f156\";\n$fa-var-s15: \"\\f2cd\";\n$fa-var-safari: \"\\f267\";\n$fa-var-save: \"\\f0c7\";\n$fa-var-scissors: \"\\f0c4\";\n$fa-var-scribd: \"\\f28a\";\n$fa-var-search: \"\\f002\";\n$fa-var-search-minus: \"\\f010\";\n$fa-var-search-plus: \"\\f00e\";\n$fa-var-sellsy: \"\\f213\";\n$fa-var-send: \"\\f1d8\";\n$fa-var-send-o: \"\\f1d9\";\n$fa-var-server: \"\\f233\";\n$fa-var-share: \"\\f064\";\n$fa-var-share-alt: \"\\f1e0\";\n$fa-var-share-alt-square: \"\\f1e1\";\n$fa-var-share-square: \"\\f14d\";\n$fa-var-share-square-o: \"\\f045\";\n$fa-var-shekel: \"\\f20b\";\n$fa-var-sheqel: \"\\f20b\";\n$fa-var-shield: \"\\f132\";\n$fa-var-ship: \"\\f21a\";\n$fa-var-shirtsinbulk: \"\\f214\";\n$fa-var-shopping-bag: \"\\f290\";\n$fa-var-shopping-basket: \"\\f291\";\n$fa-var-shopping-cart: \"\\f07a\";\n$fa-var-shower: \"\\f2cc\";\n$fa-var-sign-in: \"\\f090\";\n$fa-var-sign-language: \"\\f2a7\";\n$fa-var-sign-out: \"\\f08b\";\n$fa-var-signal: \"\\f012\";\n$fa-var-signing: \"\\f2a7\";\n$fa-var-simplybuilt: \"\\f215\";\n$fa-var-sitemap: \"\\f0e8\";\n$fa-var-skyatlas: \"\\f216\";\n$fa-var-skype: \"\\f17e\";\n$fa-var-slack: \"\\f198\";\n$fa-var-sliders: \"\\f1de\";\n$fa-var-slideshare: \"\\f1e7\";\n$fa-var-smile-o: \"\\f118\";\n$fa-var-snapchat: \"\\f2ab\";\n$fa-var-snapchat-ghost: \"\\f2ac\";\n$fa-var-snapchat-square: \"\\f2ad\";\n$fa-var-snowflake-o: \"\\f2dc\";\n$fa-var-soccer-ball-o: \"\\f1e3\";\n$fa-var-sort: \"\\f0dc\";\n$fa-var-sort-alpha-asc: \"\\f15d\";\n$fa-var-sort-alpha-desc: \"\\f15e\";\n$fa-var-sort-amount-asc: \"\\f160\";\n$fa-var-sort-amount-desc: \"\\f161\";\n$fa-var-sort-asc: \"\\f0de\";\n$fa-var-sort-desc: \"\\f0dd\";\n$fa-var-sort-down: \"\\f0dd\";\n$fa-var-sort-numeric-asc: \"\\f162\";\n$fa-var-sort-numeric-desc: \"\\f163\";\n$fa-var-sort-up: \"\\f0de\";\n$fa-var-soundcloud: \"\\f1be\";\n$fa-var-space-shuttle: \"\\f197\";\n$fa-var-spinner: \"\\f110\";\n$fa-var-spoon: \"\\f1b1\";\n$fa-var-spotify: \"\\f1bc\";\n$fa-var-square: \"\\f0c8\";\n$fa-var-square-o: \"\\f096\";\n$fa-var-stack-exchange: \"\\f18d\";\n$fa-var-stack-overflow: \"\\f16c\";\n$fa-var-star: \"\\f005\";\n$fa-var-star-half: \"\\f089\";\n$fa-var-star-half-empty: \"\\f123\";\n$fa-var-star-half-full: \"\\f123\";\n$fa-var-star-half-o: \"\\f123\";\n$fa-var-star-o: \"\\f006\";\n$fa-var-steam: \"\\f1b6\";\n$fa-var-steam-square: \"\\f1b7\";\n$fa-var-step-backward: \"\\f048\";\n$fa-var-step-forward: \"\\f051\";\n$fa-var-stethoscope: \"\\f0f1\";\n$fa-var-sticky-note: \"\\f249\";\n$fa-var-sticky-note-o: \"\\f24a\";\n$fa-var-stop: \"\\f04d\";\n$fa-var-stop-circle: \"\\f28d\";\n$fa-var-stop-circle-o: \"\\f28e\";\n$fa-var-street-view: \"\\f21d\";\n$fa-var-strikethrough: \"\\f0cc\";\n$fa-var-stumbleupon: \"\\f1a4\";\n$fa-var-stumbleupon-circle: \"\\f1a3\";\n$fa-var-subscript: \"\\f12c\";\n$fa-var-subway: \"\\f239\";\n$fa-var-suitcase: \"\\f0f2\";\n$fa-var-sun-o: \"\\f185\";\n$fa-var-superpowers: \"\\f2dd\";\n$fa-var-superscript: \"\\f12b\";\n$fa-var-support: \"\\f1cd\";\n$fa-var-table: \"\\f0ce\";\n$fa-var-tablet: \"\\f10a\";\n$fa-var-tachometer: \"\\f0e4\";\n$fa-var-tag: \"\\f02b\";\n$fa-var-tags: \"\\f02c\";\n$fa-var-tasks: \"\\f0ae\";\n$fa-var-taxi: \"\\f1ba\";\n$fa-var-telegram: \"\\f2c6\";\n$fa-var-television: \"\\f26c\";\n$fa-var-tencent-weibo: \"\\f1d5\";\n$fa-var-terminal: \"\\f120\";\n$fa-var-text-height: \"\\f034\";\n$fa-var-text-width: \"\\f035\";\n$fa-var-th: \"\\f00a\";\n$fa-var-th-large: \"\\f009\";\n$fa-var-th-list: \"\\f00b\";\n$fa-var-themeisle: \"\\f2b2\";\n$fa-var-thermometer: \"\\f2c7\";\n$fa-var-thermometer-0: \"\\f2cb\";\n$fa-var-thermometer-1: \"\\f2ca\";\n$fa-var-thermometer-2: \"\\f2c9\";\n$fa-var-thermometer-3: \"\\f2c8\";\n$fa-var-thermometer-4: \"\\f2c7\";\n$fa-var-thermometer-empty: \"\\f2cb\";\n$fa-var-thermometer-full: \"\\f2c7\";\n$fa-var-thermometer-half: \"\\f2c9\";\n$fa-var-thermometer-quarter: \"\\f2ca\";\n$fa-var-thermometer-three-quarters: \"\\f2c8\";\n$fa-var-thumb-tack: \"\\f08d\";\n$fa-var-thumbs-down: \"\\f165\";\n$fa-var-thumbs-o-down: \"\\f088\";\n$fa-var-thumbs-o-up: \"\\f087\";\n$fa-var-thumbs-up: \"\\f164\";\n$fa-var-ticket: \"\\f145\";\n$fa-var-times: \"\\f00d\";\n$fa-var-times-circle: \"\\f057\";\n$fa-var-times-circle-o: \"\\f05c\";\n$fa-var-times-rectangle: \"\\f2d3\";\n$fa-var-times-rectangle-o: \"\\f2d4\";\n$fa-var-tint: \"\\f043\";\n$fa-var-toggle-down: \"\\f150\";\n$fa-var-toggle-left: \"\\f191\";\n$fa-var-toggle-off: \"\\f204\";\n$fa-var-toggle-on: \"\\f205\";\n$fa-var-toggle-right: \"\\f152\";\n$fa-var-toggle-up: \"\\f151\";\n$fa-var-trademark: \"\\f25c\";\n$fa-var-train: \"\\f238\";\n$fa-var-transgender: \"\\f224\";\n$fa-var-transgender-alt: \"\\f225\";\n$fa-var-trash: \"\\f1f8\";\n$fa-var-trash-o: \"\\f014\";\n$fa-var-tree: \"\\f1bb\";\n$fa-var-trello: \"\\f181\";\n$fa-var-tripadvisor: \"\\f262\";\n$fa-var-trophy: \"\\f091\";\n$fa-var-truck: \"\\f0d1\";\n$fa-var-try: \"\\f195\";\n$fa-var-tty: \"\\f1e4\";\n$fa-var-tumblr: \"\\f173\";\n$fa-var-tumblr-square: \"\\f174\";\n$fa-var-turkish-lira: \"\\f195\";\n$fa-var-tv: \"\\f26c\";\n$fa-var-twitch: \"\\f1e8\";\n$fa-var-twitter: \"\\f099\";\n$fa-var-twitter-square: \"\\f081\";\n$fa-var-umbrella: \"\\f0e9\";\n$fa-var-underline: \"\\f0cd\";\n$fa-var-undo: \"\\f0e2\";\n$fa-var-universal-access: \"\\f29a\";\n$fa-var-university: \"\\f19c\";\n$fa-var-unlink: \"\\f127\";\n$fa-var-unlock: \"\\f09c\";\n$fa-var-unlock-alt: \"\\f13e\";\n$fa-var-unsorted: \"\\f0dc\";\n$fa-var-upload: \"\\f093\";\n$fa-var-usb: \"\\f287\";\n$fa-var-usd: \"\\f155\";\n$fa-var-user: \"\\f007\";\n$fa-var-user-circle: \"\\f2bd\";\n$fa-var-user-circle-o: \"\\f2be\";\n$fa-var-user-md: \"\\f0f0\";\n$fa-var-user-o: \"\\f2c0\";\n$fa-var-user-plus: \"\\f234\";\n$fa-var-user-secret: \"\\f21b\";\n$fa-var-user-times: \"\\f235\";\n$fa-var-users: \"\\f0c0\";\n$fa-var-vcard: \"\\f2bb\";\n$fa-var-vcard-o: \"\\f2bc\";\n$fa-var-venus: \"\\f221\";\n$fa-var-venus-double: \"\\f226\";\n$fa-var-venus-mars: \"\\f228\";\n$fa-var-viacoin: \"\\f237\";\n$fa-var-viadeo: \"\\f2a9\";\n$fa-var-viadeo-square: \"\\f2aa\";\n$fa-var-video-camera: \"\\f03d\";\n$fa-var-vimeo: \"\\f27d\";\n$fa-var-vimeo-square: \"\\f194\";\n$fa-var-vine: \"\\f1ca\";\n$fa-var-vk: \"\\f189\";\n$fa-var-volume-control-phone: \"\\f2a0\";\n$fa-var-volume-down: \"\\f027\";\n$fa-var-volume-off: \"\\f026\";\n$fa-var-volume-up: \"\\f028\";\n$fa-var-warning: \"\\f071\";\n$fa-var-wechat: \"\\f1d7\";\n$fa-var-weibo: \"\\f18a\";\n$fa-var-weixin: \"\\f1d7\";\n$fa-var-whatsapp: \"\\f232\";\n$fa-var-wheelchair: \"\\f193\";\n$fa-var-wheelchair-alt: \"\\f29b\";\n$fa-var-wifi: \"\\f1eb\";\n$fa-var-wikipedia-w: \"\\f266\";\n$fa-var-window-close: \"\\f2d3\";\n$fa-var-window-close-o: \"\\f2d4\";\n$fa-var-window-maximize: \"\\f2d0\";\n$fa-var-window-minimize: \"\\f2d1\";\n$fa-var-window-restore: \"\\f2d2\";\n$fa-var-windows: \"\\f17a\";\n$fa-var-won: \"\\f159\";\n$fa-var-wordpress: \"\\f19a\";\n$fa-var-wpbeginner: \"\\f297\";\n$fa-var-wpexplorer: \"\\f2de\";\n$fa-var-wpforms: \"\\f298\";\n$fa-var-wrench: \"\\f0ad\";\n$fa-var-xing: \"\\f168\";\n$fa-var-xing-square: \"\\f169\";\n$fa-var-y-combinator: \"\\f23b\";\n$fa-var-y-combinator-square: \"\\f1d4\";\n$fa-var-yahoo: \"\\f19e\";\n$fa-var-yc: \"\\f23b\";\n$fa-var-yc-square: \"\\f1d4\";\n$fa-var-yelp: \"\\f1e9\";\n$fa-var-yen: \"\\f157\";\n$fa-var-yoast: \"\\f2b1\";\n$fa-var-youtube: \"\\f167\";\n$fa-var-youtube-play: \"\\f16a\";\n$fa-var-youtube-square: \"\\f166\";\n\n"
  },
  {
    "path": "public/static/home/font-awesome4.7/scss/font-awesome.scss",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n\n@import \"variables\";\n@import \"mixins\";\n@import \"path\";\n@import \"core\";\n@import \"larger\";\n@import \"fixed-width\";\n@import \"list\";\n@import \"bordered-pulled\";\n@import \"animated\";\n@import \"rotated-flipped\";\n@import \"stacked\";\n@import \"icons\";\n@import \"screen-reader\";\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/LICENSE.txt",
    "content": "Font Awesome Free License\n-------------------------\n\nFont Awesome Free is free, open source, and GPL friendly. You can use it for\ncommercial projects, open source projects, or really almost whatever you want.\nFull Font Awesome Free license: https://fontawesome.com/license/free.\n\n# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)\nIn the Font Awesome Free download, the CC BY 4.0 license applies to all icons\npackaged as SVG and JS file types.\n\n# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)\nIn the Font Awesome Free download, the SIL OFL license applies to all icons\npackaged as web and desktop font files.\n\n# Code: MIT License (https://opensource.org/licenses/MIT)\nIn the Font Awesome Free download, the MIT license applies to all non-font and\nnon-icon files.\n\n# Attribution\nAttribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font\nAwesome Free files already contain embedded comments with sufficient\nattribution, so you shouldn't need to do anything additional when using these\nfiles normally.\n\nWe've kept attribution comments terse, so we ask that you do not actively work\nto remove them from files, especially code. They're a great way for folks to\nlearn about Font Awesome.\n\n# Brand Icons\nAll brand icons are trademarks of their respective owners. The use of these\ntrademarks does not indicate endorsement of the trademark holder by Font\nAwesome, nor vice versa. **Please do not use brand logos for any purpose except\nto represent the company, product, or service to which they refer.**\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/all.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adobe:before {\n  content: \"\\f778\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-haykal:before {\n  content: \"\\f666\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: normal;\n  font-display: auto;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands'; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: auto;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: auto;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/brands.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: normal;\n  font-display: auto;\n  src: url(\"../webfonts/fa-brands-400.eot\");\n  src: url(\"../webfonts/fa-brands-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-brands-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-brands-400.woff\") format(\"woff\"), url(\"../webfonts/fa-brands-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-brands-400.svg#fontawesome\") format(\"svg\"); }\n\n.fab {\n  font-family: 'Font Awesome 5 Brands'; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/fontawesome.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%; }\n\n.fa-stack-1x {\n  line-height: inherit; }\n\n.fa-stack-2x {\n  font-size: 2em; }\n\n.fa-inverse {\n  color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n  content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n  content: \"\\f368\"; }\n\n.fa-accusoft:before {\n  content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n  content: \"\\f6af\"; }\n\n.fa-ad:before {\n  content: \"\\f641\"; }\n\n.fa-address-book:before {\n  content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n  content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n  content: \"\\f042\"; }\n\n.fa-adn:before {\n  content: \"\\f170\"; }\n\n.fa-adobe:before {\n  content: \"\\f778\"; }\n\n.fa-adversal:before {\n  content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n  content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n  content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n  content: \"\\f834\"; }\n\n.fa-algolia:before {\n  content: \"\\f36c\"; }\n\n.fa-align-center:before {\n  content: \"\\f037\"; }\n\n.fa-align-justify:before {\n  content: \"\\f039\"; }\n\n.fa-align-left:before {\n  content: \"\\f036\"; }\n\n.fa-align-right:before {\n  content: \"\\f038\"; }\n\n.fa-alipay:before {\n  content: \"\\f642\"; }\n\n.fa-allergies:before {\n  content: \"\\f461\"; }\n\n.fa-amazon:before {\n  content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n  content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n  content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n  content: \"\\f36d\"; }\n\n.fa-anchor:before {\n  content: \"\\f13d\"; }\n\n.fa-android:before {\n  content: \"\\f17b\"; }\n\n.fa-angellist:before {\n  content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n  content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n  content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n  content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n  content: \"\\f102\"; }\n\n.fa-angle-down:before {\n  content: \"\\f107\"; }\n\n.fa-angle-left:before {\n  content: \"\\f104\"; }\n\n.fa-angle-right:before {\n  content: \"\\f105\"; }\n\n.fa-angle-up:before {\n  content: \"\\f106\"; }\n\n.fa-angry:before {\n  content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n  content: \"\\f36e\"; }\n\n.fa-angular:before {\n  content: \"\\f420\"; }\n\n.fa-ankh:before {\n  content: \"\\f644\"; }\n\n.fa-app-store:before {\n  content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n  content: \"\\f370\"; }\n\n.fa-apper:before {\n  content: \"\\f371\"; }\n\n.fa-apple:before {\n  content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n  content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n  content: \"\\f415\"; }\n\n.fa-archive:before {\n  content: \"\\f187\"; }\n\n.fa-archway:before {\n  content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n  content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n  content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n  content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n  content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n  content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n  content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n  content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n  content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n  content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n  content: \"\\f338\"; }\n\n.fa-artstation:before {\n  content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n  content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n  content: \"\\f372\"; }\n\n.fa-at:before {\n  content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n  content: \"\\f558\"; }\n\n.fa-atlassian:before {\n  content: \"\\f77b\"; }\n\n.fa-atom:before {\n  content: \"\\f5d2\"; }\n\n.fa-audible:before {\n  content: \"\\f373\"; }\n\n.fa-audio-description:before {\n  content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n  content: \"\\f41c\"; }\n\n.fa-avianex:before {\n  content: \"\\f374\"; }\n\n.fa-aviato:before {\n  content: \"\\f421\"; }\n\n.fa-award:before {\n  content: \"\\f559\"; }\n\n.fa-aws:before {\n  content: \"\\f375\"; }\n\n.fa-baby:before {\n  content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n  content: \"\\f77d\"; }\n\n.fa-backspace:before {\n  content: \"\\f55a\"; }\n\n.fa-backward:before {\n  content: \"\\f04a\"; }\n\n.fa-bacon:before {\n  content: \"\\f7e5\"; }\n\n.fa-balance-scale:before {\n  content: \"\\f24e\"; }\n\n.fa-balance-scale-left:before {\n  content: \"\\f515\"; }\n\n.fa-balance-scale-right:before {\n  content: \"\\f516\"; }\n\n.fa-ban:before {\n  content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n  content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n  content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n  content: \"\\f02a\"; }\n\n.fa-bars:before {\n  content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n  content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n  content: \"\\f434\"; }\n\n.fa-bath:before {\n  content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n  content: \"\\f244\"; }\n\n.fa-battery-full:before {\n  content: \"\\f240\"; }\n\n.fa-battery-half:before {\n  content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n  content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n  content: \"\\f241\"; }\n\n.fa-battle-net:before {\n  content: \"\\f835\"; }\n\n.fa-bed:before {\n  content: \"\\f236\"; }\n\n.fa-beer:before {\n  content: \"\\f0fc\"; }\n\n.fa-behance:before {\n  content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n  content: \"\\f1b5\"; }\n\n.fa-bell:before {\n  content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n  content: \"\\f55b\"; }\n\n.fa-bible:before {\n  content: \"\\f647\"; }\n\n.fa-bicycle:before {\n  content: \"\\f206\"; }\n\n.fa-biking:before {\n  content: \"\\f84a\"; }\n\n.fa-bimobject:before {\n  content: \"\\f378\"; }\n\n.fa-binoculars:before {\n  content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n  content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n  content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n  content: \"\\f379\"; }\n\n.fa-bity:before {\n  content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n  content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n  content: \"\\f37b\"; }\n\n.fa-blender:before {\n  content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n  content: \"\\f6b6\"; }\n\n.fa-blind:before {\n  content: \"\\f29d\"; }\n\n.fa-blog:before {\n  content: \"\\f781\"; }\n\n.fa-blogger:before {\n  content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n  content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n  content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n  content: \"\\f294\"; }\n\n.fa-bold:before {\n  content: \"\\f032\"; }\n\n.fa-bolt:before {\n  content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n  content: \"\\f1e2\"; }\n\n.fa-bone:before {\n  content: \"\\f5d7\"; }\n\n.fa-bong:before {\n  content: \"\\f55c\"; }\n\n.fa-book:before {\n  content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n  content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n  content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n  content: \"\\f518\"; }\n\n.fa-book-reader:before {\n  content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n  content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n  content: \"\\f836\"; }\n\n.fa-border-all:before {\n  content: \"\\f84c\"; }\n\n.fa-border-none:before {\n  content: \"\\f850\"; }\n\n.fa-border-style:before {\n  content: \"\\f853\"; }\n\n.fa-bowling-ball:before {\n  content: \"\\f436\"; }\n\n.fa-box:before {\n  content: \"\\f466\"; }\n\n.fa-box-open:before {\n  content: \"\\f49e\"; }\n\n.fa-boxes:before {\n  content: \"\\f468\"; }\n\n.fa-braille:before {\n  content: \"\\f2a1\"; }\n\n.fa-brain:before {\n  content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n  content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n  content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n  content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n  content: \"\\f519\"; }\n\n.fa-broom:before {\n  content: \"\\f51a\"; }\n\n.fa-brush:before {\n  content: \"\\f55d\"; }\n\n.fa-btc:before {\n  content: \"\\f15a\"; }\n\n.fa-buffer:before {\n  content: \"\\f837\"; }\n\n.fa-bug:before {\n  content: \"\\f188\"; }\n\n.fa-building:before {\n  content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n  content: \"\\f140\"; }\n\n.fa-burn:before {\n  content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n  content: \"\\f37f\"; }\n\n.fa-bus:before {\n  content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n  content: \"\\f55e\"; }\n\n.fa-business-time:before {\n  content: \"\\f64a\"; }\n\n.fa-buysellads:before {\n  content: \"\\f20d\"; }\n\n.fa-calculator:before {\n  content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n  content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n  content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n  content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n  content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n  content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n  content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n  content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n  content: \"\\f784\"; }\n\n.fa-camera:before {\n  content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n  content: \"\\f083\"; }\n\n.fa-campground:before {\n  content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n  content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n  content: \"\\f786\"; }\n\n.fa-cannabis:before {\n  content: \"\\f55f\"; }\n\n.fa-capsules:before {\n  content: \"\\f46b\"; }\n\n.fa-car:before {\n  content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n  content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n  content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n  content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n  content: \"\\f5e4\"; }\n\n.fa-caret-down:before {\n  content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n  content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n  content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n  content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n  content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n  content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n  content: \"\\f151\"; }\n\n.fa-caret-up:before {\n  content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n  content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n  content: \"\\f217\"; }\n\n.fa-cash-register:before {\n  content: \"\\f788\"; }\n\n.fa-cat:before {\n  content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n  content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n  content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n  content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n  content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n  content: \"\\f380\"; }\n\n.fa-centos:before {\n  content: \"\\f789\"; }\n\n.fa-certificate:before {\n  content: \"\\f0a3\"; }\n\n.fa-chair:before {\n  content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n  content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n  content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n  content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n  content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n  content: \"\\f080\"; }\n\n.fa-chart-line:before {\n  content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n  content: \"\\f200\"; }\n\n.fa-check:before {\n  content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n  content: \"\\f058\"; }\n\n.fa-check-double:before {\n  content: \"\\f560\"; }\n\n.fa-check-square:before {\n  content: \"\\f14a\"; }\n\n.fa-cheese:before {\n  content: \"\\f7ef\"; }\n\n.fa-chess:before {\n  content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n  content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n  content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n  content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n  content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n  content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n  content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n  content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n  content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n  content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n  content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n  content: \"\\f077\"; }\n\n.fa-child:before {\n  content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n  content: \"\\f268\"; }\n\n.fa-chromecast:before {\n  content: \"\\f838\"; }\n\n.fa-church:before {\n  content: \"\\f51d\"; }\n\n.fa-circle:before {\n  content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa-city:before {\n  content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n  content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n  content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n  content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n  content: \"\\f46d\"; }\n\n.fa-clock:before {\n  content: \"\\f017\"; }\n\n.fa-clone:before {\n  content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n  content: \"\\f20a\"; }\n\n.fa-cloud:before {\n  content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n  content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n  content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n  content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n  content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n  content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n  content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n  content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n  content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n  content: \"\\f382\"; }\n\n.fa-cloudscale:before {\n  content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n  content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n  content: \"\\f385\"; }\n\n.fa-cocktail:before {\n  content: \"\\f561\"; }\n\n.fa-code:before {\n  content: \"\\f121\"; }\n\n.fa-code-branch:before {\n  content: \"\\f126\"; }\n\n.fa-codepen:before {\n  content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n  content: \"\\f284\"; }\n\n.fa-coffee:before {\n  content: \"\\f0f4\"; }\n\n.fa-cog:before {\n  content: \"\\f013\"; }\n\n.fa-cogs:before {\n  content: \"\\f085\"; }\n\n.fa-coins:before {\n  content: \"\\f51e\"; }\n\n.fa-columns:before {\n  content: \"\\f0db\"; }\n\n.fa-comment:before {\n  content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n  content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n  content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n  content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n  content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n  content: \"\\f4b3\"; }\n\n.fa-comments:before {\n  content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n  content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n  content: \"\\f51f\"; }\n\n.fa-compass:before {\n  content: \"\\f14e\"; }\n\n.fa-compress:before {\n  content: \"\\f066\"; }\n\n.fa-compress-arrows-alt:before {\n  content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n  content: \"\\f562\"; }\n\n.fa-confluence:before {\n  content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\"; }\n\n.fa-contao:before {\n  content: \"\\f26d\"; }\n\n.fa-cookie:before {\n  content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n  content: \"\\f564\"; }\n\n.fa-copy:before {\n  content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n  content: \"\\f1f9\"; }\n\n.fa-cotton-bureau:before {\n  content: \"\\f89e\"; }\n\n.fa-couch:before {\n  content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n  content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n  content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n  content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n  content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n  content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n  content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n  content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n  content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n  content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n  content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n  content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n  content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n  content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n  content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n  content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n  content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n  content: \"\\f6c9\"; }\n\n.fa-crop:before {\n  content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n  content: \"\\f565\"; }\n\n.fa-cross:before {\n  content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n  content: \"\\f05b\"; }\n\n.fa-crow:before {\n  content: \"\\f520\"; }\n\n.fa-crown:before {\n  content: \"\\f521\"; }\n\n.fa-crutch:before {\n  content: \"\\f7f7\"; }\n\n.fa-css3:before {\n  content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n  content: \"\\f38b\"; }\n\n.fa-cube:before {\n  content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n  content: \"\\f1b3\"; }\n\n.fa-cut:before {\n  content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n  content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n  content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n  content: \"\\f6ca\"; }\n\n.fa-dashcube:before {\n  content: \"\\f210\"; }\n\n.fa-database:before {\n  content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n  content: \"\\f2a4\"; }\n\n.fa-delicious:before {\n  content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n  content: \"\\f747\"; }\n\n.fa-deploydog:before {\n  content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n  content: \"\\f38f\"; }\n\n.fa-desktop:before {\n  content: \"\\f108\"; }\n\n.fa-dev:before {\n  content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n  content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n  content: \"\\f655\"; }\n\n.fa-dhl:before {\n  content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n  content: \"\\f470\"; }\n\n.fa-diaspora:before {\n  content: \"\\f791\"; }\n\n.fa-dice:before {\n  content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n  content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n  content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n  content: \"\\f523\"; }\n\n.fa-dice-four:before {\n  content: \"\\f524\"; }\n\n.fa-dice-one:before {\n  content: \"\\f525\"; }\n\n.fa-dice-six:before {\n  content: \"\\f526\"; }\n\n.fa-dice-three:before {\n  content: \"\\f527\"; }\n\n.fa-dice-two:before {\n  content: \"\\f528\"; }\n\n.fa-digg:before {\n  content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n  content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n  content: \"\\f566\"; }\n\n.fa-directions:before {\n  content: \"\\f5eb\"; }\n\n.fa-discord:before {\n  content: \"\\f392\"; }\n\n.fa-discourse:before {\n  content: \"\\f393\"; }\n\n.fa-divide:before {\n  content: \"\\f529\"; }\n\n.fa-dizzy:before {\n  content: \"\\f567\"; }\n\n.fa-dna:before {\n  content: \"\\f471\"; }\n\n.fa-dochub:before {\n  content: \"\\f394\"; }\n\n.fa-docker:before {\n  content: \"\\f395\"; }\n\n.fa-dog:before {\n  content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n  content: \"\\f155\"; }\n\n.fa-dolly:before {\n  content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n  content: \"\\f474\"; }\n\n.fa-donate:before {\n  content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n  content: \"\\f52a\"; }\n\n.fa-door-open:before {\n  content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n  content: \"\\f192\"; }\n\n.fa-dove:before {\n  content: \"\\f4ba\"; }\n\n.fa-download:before {\n  content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n  content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n  content: \"\\f568\"; }\n\n.fa-dragon:before {\n  content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n  content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n  content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n  content: \"\\f397\"; }\n\n.fa-dropbox:before {\n  content: \"\\f16b\"; }\n\n.fa-drum:before {\n  content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n  content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n  content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n  content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n  content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n  content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n  content: \"\\f794\"; }\n\n.fa-dungeon:before {\n  content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n  content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n  content: \"\\f39a\"; }\n\n.fa-ebay:before {\n  content: \"\\f4f4\"; }\n\n.fa-edge:before {\n  content: \"\\f282\"; }\n\n.fa-edit:before {\n  content: \"\\f044\"; }\n\n.fa-egg:before {\n  content: \"\\f7fb\"; }\n\n.fa-eject:before {\n  content: \"\\f052\"; }\n\n.fa-elementor:before {\n  content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\"; }\n\n.fa-ello:before {\n  content: \"\\f5f1\"; }\n\n.fa-ember:before {\n  content: \"\\f423\"; }\n\n.fa-empire:before {\n  content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n  content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n  content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n  content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n  content: \"\\f199\"; }\n\n.fa-envira:before {\n  content: \"\\f299\"; }\n\n.fa-equals:before {\n  content: \"\\f52c\"; }\n\n.fa-eraser:before {\n  content: \"\\f12d\"; }\n\n.fa-erlang:before {\n  content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n  content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n  content: \"\\f796\"; }\n\n.fa-etsy:before {\n  content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n  content: \"\\f153\"; }\n\n.fa-evernote:before {\n  content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n  content: \"\\f362\"; }\n\n.fa-exclamation:before {\n  content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n  content: \"\\f071\"; }\n\n.fa-expand:before {\n  content: \"\\f065\"; }\n\n.fa-expand-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n  content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n  content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n  content: \"\\f360\"; }\n\n.fa-eye:before {\n  content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n  content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n  content: \"\\f070\"; }\n\n.fa-facebook:before {\n  content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n  content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n  content: \"\\f082\"; }\n\n.fa-fan:before {\n  content: \"\\f863\"; }\n\n.fa-fantasy-flight-games:before {\n  content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n  content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n  content: \"\\f050\"; }\n\n.fa-fax:before {\n  content: \"\\f1ac\"; }\n\n.fa-feather:before {\n  content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n  content: \"\\f56b\"; }\n\n.fa-fedex:before {\n  content: \"\\f797\"; }\n\n.fa-fedora:before {\n  content: \"\\f798\"; }\n\n.fa-female:before {\n  content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\"; }\n\n.fa-figma:before {\n  content: \"\\f799\"; }\n\n.fa-file:before {\n  content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n  content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n  content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n  content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n  content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n  content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n  content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n  content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n  content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n  content: \"\\f56e\"; }\n\n.fa-file-image:before {\n  content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n  content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n  content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n  content: \"\\f571\"; }\n\n.fa-file-medical:before {\n  content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n  content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n  content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n  content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n  content: \"\\f572\"; }\n\n.fa-file-signature:before {\n  content: \"\\f573\"; }\n\n.fa-file-upload:before {\n  content: \"\\f574\"; }\n\n.fa-file-video:before {\n  content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n  content: \"\\f1c2\"; }\n\n.fa-fill:before {\n  content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n  content: \"\\f576\"; }\n\n.fa-film:before {\n  content: \"\\f008\"; }\n\n.fa-filter:before {\n  content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n  content: \"\\f577\"; }\n\n.fa-fire:before {\n  content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n  content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\"; }\n\n.fa-firefox:before {\n  content: \"\\f269\"; }\n\n.fa-first-aid:before {\n  content: \"\\f479\"; }\n\n.fa-first-order:before {\n  content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n  content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n  content: \"\\f3a1\"; }\n\n.fa-fish:before {\n  content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n  content: \"\\f6de\"; }\n\n.fa-flag:before {\n  content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n  content: \"\\f74d\"; }\n\n.fa-flask:before {\n  content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n  content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n  content: \"\\f44d\"; }\n\n.fa-flushed:before {\n  content: \"\\f579\"; }\n\n.fa-fly:before {\n  content: \"\\f417\"; }\n\n.fa-folder:before {\n  content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n  content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n  content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n  content: \"\\f65e\"; }\n\n.fa-font:before {\n  content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n  content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n  content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n  content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n  content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n  content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n  content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n  content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n  content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n  content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n  content: \"\\f211\"; }\n\n.fa-forward:before {\n  content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n  content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n  content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n  content: \"\\f3a4\"; }\n\n.fa-frog:before {\n  content: \"\\f52e\"; }\n\n.fa-frown:before {\n  content: \"\\f119\"; }\n\n.fa-frown-open:before {\n  content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n  content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n  content: \"\\f662\"; }\n\n.fa-futbol:before {\n  content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n  content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n  content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n  content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n  content: \"\\f52f\"; }\n\n.fa-gavel:before {\n  content: \"\\f0e3\"; }\n\n.fa-gem:before {\n  content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n  content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n  content: \"\\f265\"; }\n\n.fa-gg:before {\n  content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n  content: \"\\f261\"; }\n\n.fa-ghost:before {\n  content: \"\\f6e2\"; }\n\n.fa-gift:before {\n  content: \"\\f06b\"; }\n\n.fa-gifts:before {\n  content: \"\\f79c\"; }\n\n.fa-git:before {\n  content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n  content: \"\\f841\"; }\n\n.fa-git-square:before {\n  content: \"\\f1d2\"; }\n\n.fa-github:before {\n  content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n  content: \"\\f113\"; }\n\n.fa-github-square:before {\n  content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n  content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n  content: \"\\f296\"; }\n\n.fa-gitter:before {\n  content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n  content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n  content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n  content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n  content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n  content: \"\\f530\"; }\n\n.fa-glide:before {\n  content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n  content: \"\\f2a6\"; }\n\n.fa-globe:before {\n  content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n  content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n  content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n  content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n  content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n  content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n  content: \"\\f450\"; }\n\n.fa-goodreads:before {\n  content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n  content: \"\\f3a9\"; }\n\n.fa-google:before {\n  content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n  content: \"\\f3aa\"; }\n\n.fa-google-play:before {\n  content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n  content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n  content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n  content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n  content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n  content: \"\\f184\"; }\n\n.fa-grav:before {\n  content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n  content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n  content: \"\\f532\"; }\n\n.fa-grimace:before {\n  content: \"\\f57f\"; }\n\n.fa-grin:before {\n  content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n  content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n  content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n  content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n  content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n  content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n  content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n  content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n  content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n  content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n  content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n  content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n  content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n  content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n  content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n  content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n  content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n  content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n  content: \"\\f3ad\"; }\n\n.fa-guitar:before {\n  content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n  content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n  content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n  content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n  content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n  content: \"\\f805\"; }\n\n.fa-hammer:before {\n  content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n  content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n  content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n  content: \"\\f4be\"; }\n\n.fa-hand-holding-usd:before {\n  content: \"\\f4c0\"; }\n\n.fa-hand-lizard:before {\n  content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n  content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n  content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n  content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n  content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n  content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n  content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n  content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n  content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n  content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n  content: \"\\f257\"; }\n\n.fa-hand-spock:before {\n  content: \"\\f259\"; }\n\n.fa-hands:before {\n  content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n  content: \"\\f4c4\"; }\n\n.fa-handshake:before {\n  content: \"\\f2b5\"; }\n\n.fa-hanukiah:before {\n  content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n  content: \"\\f807\"; }\n\n.fa-hashtag:before {\n  content: \"\\f292\"; }\n\n.fa-hat-wizard:before {\n  content: \"\\f6e8\"; }\n\n.fa-haykal:before {\n  content: \"\\f666\"; }\n\n.fa-hdd:before {\n  content: \"\\f0a0\"; }\n\n.fa-heading:before {\n  content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n  content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n  content: \"\\f58f\"; }\n\n.fa-headset:before {\n  content: \"\\f590\"; }\n\n.fa-heart:before {\n  content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n  content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n  content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n  content: \"\\f533\"; }\n\n.fa-highlighter:before {\n  content: \"\\f591\"; }\n\n.fa-hiking:before {\n  content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n  content: \"\\f6ed\"; }\n\n.fa-hips:before {\n  content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n  content: \"\\f3b0\"; }\n\n.fa-history:before {\n  content: \"\\f1da\"; }\n\n.fa-hockey-puck:before {\n  content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n  content: \"\\f7aa\"; }\n\n.fa-home:before {\n  content: \"\\f015\"; }\n\n.fa-hooli:before {\n  content: \"\\f427\"; }\n\n.fa-hornbill:before {\n  content: \"\\f592\"; }\n\n.fa-horse:before {\n  content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n  content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n  content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n  content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n  content: \"\\f47e\"; }\n\n.fa-hot-tub:before {\n  content: \"\\f593\"; }\n\n.fa-hotdog:before {\n  content: \"\\f80f\"; }\n\n.fa-hotel:before {\n  content: \"\\f594\"; }\n\n.fa-hotjar:before {\n  content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n  content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n  content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n  content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n  content: \"\\f251\"; }\n\n.fa-house-damage:before {\n  content: \"\\f6f1\"; }\n\n.fa-houzz:before {\n  content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n  content: \"\\f6f2\"; }\n\n.fa-html5:before {\n  content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n  content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n  content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n  content: \"\\f810\"; }\n\n.fa-icicles:before {\n  content: \"\\f7ad\"; }\n\n.fa-icons:before {\n  content: \"\\f86d\"; }\n\n.fa-id-badge:before {\n  content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n  content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n  content: \"\\f47f\"; }\n\n.fa-igloo:before {\n  content: \"\\f7ae\"; }\n\n.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa-images:before {\n  content: \"\\f302\"; }\n\n.fa-imdb:before {\n  content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n  content: \"\\f01c\"; }\n\n.fa-indent:before {\n  content: \"\\f03c\"; }\n\n.fa-industry:before {\n  content: \"\\f275\"; }\n\n.fa-infinity:before {\n  content: \"\\f534\"; }\n\n.fa-info:before {\n  content: \"\\f129\"; }\n\n.fa-info-circle:before {\n  content: \"\\f05a\"; }\n\n.fa-instagram:before {\n  content: \"\\f16d\"; }\n\n.fa-intercom:before {\n  content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n  content: \"\\f26b\"; }\n\n.fa-invision:before {\n  content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n  content: \"\\f208\"; }\n\n.fa-italic:before {\n  content: \"\\f033\"; }\n\n.fa-itch-io:before {\n  content: \"\\f83a\"; }\n\n.fa-itunes:before {\n  content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n  content: \"\\f3b5\"; }\n\n.fa-java:before {\n  content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n  content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n  content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n  content: \"\\f3b6\"; }\n\n.fa-jira:before {\n  content: \"\\f7b1\"; }\n\n.fa-joget:before {\n  content: \"\\f3b7\"; }\n\n.fa-joint:before {\n  content: \"\\f595\"; }\n\n.fa-joomla:before {\n  content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n  content: \"\\f66a\"; }\n\n.fa-js:before {\n  content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n  content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n  content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n  content: \"\\f5fa\"; }\n\n.fa-key:before {\n  content: \"\\f084\"; }\n\n.fa-keybase:before {\n  content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n  content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n  content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n  content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n  content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n  content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n  content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n  content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n  content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n  content: \"\\f535\"; }\n\n.fa-korvue:before {\n  content: \"\\f42f\"; }\n\n.fa-landmark:before {\n  content: \"\\f66f\"; }\n\n.fa-language:before {\n  content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n  content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n  content: \"\\f5fc\"; }\n\n.fa-laptop-medical:before {\n  content: \"\\f812\"; }\n\n.fa-laravel:before {\n  content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n  content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n  content: \"\\f203\"; }\n\n.fa-laugh:before {\n  content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n  content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n  content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n  content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n  content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n  content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n  content: \"\\f212\"; }\n\n.fa-lemon:before {\n  content: \"\\f094\"; }\n\n.fa-less:before {\n  content: \"\\f41d\"; }\n\n.fa-less-than:before {\n  content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n  content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n  content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n  content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n  content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n  content: \"\\f0eb\"; }\n\n.fa-line:before {\n  content: \"\\f3c0\"; }\n\n.fa-link:before {\n  content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n  content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n  content: \"\\f0e1\"; }\n\n.fa-linode:before {\n  content: \"\\f2b8\"; }\n\n.fa-linux:before {\n  content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n  content: \"\\f195\"; }\n\n.fa-list:before {\n  content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n  content: \"\\f022\"; }\n\n.fa-list-ol:before {\n  content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n  content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n  content: \"\\f124\"; }\n\n.fa-lock:before {\n  content: \"\\f023\"; }\n\n.fa-lock-open:before {\n  content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n  content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n  content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n  content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n  content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n  content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n  content: \"\\f59d\"; }\n\n.fa-lyft:before {\n  content: \"\\f3c3\"; }\n\n.fa-magento:before {\n  content: \"\\f3c4\"; }\n\n.fa-magic:before {\n  content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n  content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n  content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n  content: \"\\f59e\"; }\n\n.fa-male:before {\n  content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n  content: \"\\f50f\"; }\n\n.fa-map:before {\n  content: \"\\f279\"; }\n\n.fa-map-marked:before {\n  content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n  content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n  content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n  content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n  content: \"\\f276\"; }\n\n.fa-map-signs:before {\n  content: \"\\f277\"; }\n\n.fa-markdown:before {\n  content: \"\\f60f\"; }\n\n.fa-marker:before {\n  content: \"\\f5a1\"; }\n\n.fa-mars:before {\n  content: \"\\f222\"; }\n\n.fa-mars-double:before {\n  content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n  content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\"; }\n\n.fa-mask:before {\n  content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n  content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n  content: \"\\f136\"; }\n\n.fa-medal:before {\n  content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n  content: \"\\f3c6\"; }\n\n.fa-medium:before {\n  content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n  content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n  content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n  content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n  content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n  content: \"\\f5a3\"; }\n\n.fa-meh:before {\n  content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n  content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n  content: \"\\f5a5\"; }\n\n.fa-memory:before {\n  content: \"\\f538\"; }\n\n.fa-mendeley:before {\n  content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n  content: \"\\f676\"; }\n\n.fa-mercury:before {\n  content: \"\\f223\"; }\n\n.fa-meteor:before {\n  content: \"\\f753\"; }\n\n.fa-microchip:before {\n  content: \"\\f2db\"; }\n\n.fa-microphone:before {\n  content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n  content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n  content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n  content: \"\\f131\"; }\n\n.fa-microscope:before {\n  content: \"\\f610\"; }\n\n.fa-microsoft:before {\n  content: \"\\f3ca\"; }\n\n.fa-minus:before {\n  content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n  content: \"\\f056\"; }\n\n.fa-minus-square:before {\n  content: \"\\f146\"; }\n\n.fa-mitten:before {\n  content: \"\\f7b5\"; }\n\n.fa-mix:before {\n  content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n  content: \"\\f289\"; }\n\n.fa-mizuni:before {\n  content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n  content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n  content: \"\\f3cd\"; }\n\n.fa-modx:before {\n  content: \"\\f285\"; }\n\n.fa-monero:before {\n  content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n  content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n  content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n  content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n  content: \"\\f53b\"; }\n\n.fa-money-check:before {\n  content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n  content: \"\\f53d\"; }\n\n.fa-monument:before {\n  content: \"\\f5a6\"; }\n\n.fa-moon:before {\n  content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n  content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n  content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n  content: \"\\f21c\"; }\n\n.fa-mountain:before {\n  content: \"\\f6fc\"; }\n\n.fa-mouse-pointer:before {\n  content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n  content: \"\\f7b6\"; }\n\n.fa-music:before {\n  content: \"\\f001\"; }\n\n.fa-napster:before {\n  content: \"\\f3d2\"; }\n\n.fa-neos:before {\n  content: \"\\f612\"; }\n\n.fa-network-wired:before {\n  content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n  content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n  content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n  content: \"\\f5a8\"; }\n\n.fa-node:before {\n  content: \"\\f419\"; }\n\n.fa-node-js:before {\n  content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n  content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n  content: \"\\f481\"; }\n\n.fa-npm:before {\n  content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n  content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n  content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n  content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n  content: \"\\f248\"; }\n\n.fa-odnoklassniki:before {\n  content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\"; }\n\n.fa-oil-can:before {\n  content: \"\\f613\"; }\n\n.fa-old-republic:before {\n  content: \"\\f510\"; }\n\n.fa-om:before {\n  content: \"\\f679\"; }\n\n.fa-opencart:before {\n  content: \"\\f23d\"; }\n\n.fa-openid:before {\n  content: \"\\f19b\"; }\n\n.fa-opera:before {\n  content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n  content: \"\\f23c\"; }\n\n.fa-osi:before {\n  content: \"\\f41a\"; }\n\n.fa-otter:before {\n  content: \"\\f700\"; }\n\n.fa-outdent:before {\n  content: \"\\f03b\"; }\n\n.fa-page4:before {\n  content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n  content: \"\\f18c\"; }\n\n.fa-pager:before {\n  content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n  content: \"\\f5aa\"; }\n\n.fa-palette:before {\n  content: \"\\f53f\"; }\n\n.fa-palfed:before {\n  content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n  content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n  content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n  content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n  content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n  content: \"\\f1dd\"; }\n\n.fa-parking:before {\n  content: \"\\f540\"; }\n\n.fa-passport:before {\n  content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n  content: \"\\f67b\"; }\n\n.fa-paste:before {\n  content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n  content: \"\\f3d9\"; }\n\n.fa-pause:before {\n  content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n  content: \"\\f28b\"; }\n\n.fa-paw:before {\n  content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n  content: \"\\f1ed\"; }\n\n.fa-peace:before {\n  content: \"\\f67c\"; }\n\n.fa-pen:before {\n  content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n  content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n  content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n  content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n  content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n  content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n  content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n  content: \"\\f704\"; }\n\n.fa-people-carry:before {\n  content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n  content: \"\\f816\"; }\n\n.fa-percent:before {\n  content: \"\\f295\"; }\n\n.fa-percentage:before {\n  content: \"\\f541\"; }\n\n.fa-periscope:before {\n  content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n  content: \"\\f756\"; }\n\n.fa-phabricator:before {\n  content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n  content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n  content: \"\\f511\"; }\n\n.fa-phone:before {\n  content: \"\\f095\"; }\n\n.fa-phone-alt:before {\n  content: \"\\f879\"; }\n\n.fa-phone-slash:before {\n  content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n  content: \"\\f098\"; }\n\n.fa-phone-square-alt:before {\n  content: \"\\f87b\"; }\n\n.fa-phone-volume:before {\n  content: \"\\f2a0\"; }\n\n.fa-photo-video:before {\n  content: \"\\f87c\"; }\n\n.fa-php:before {\n  content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n  content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n  content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\"; }\n\n.fa-piggy-bank:before {\n  content: \"\\f4d3\"; }\n\n.fa-pills:before {\n  content: \"\\f484\"; }\n\n.fa-pinterest:before {\n  content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n  content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n  content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n  content: \"\\f67f\"; }\n\n.fa-plane:before {\n  content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n  content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n  content: \"\\f5b0\"; }\n\n.fa-play:before {\n  content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n  content: \"\\f144\"; }\n\n.fa-playstation:before {\n  content: \"\\f3df\"; }\n\n.fa-plug:before {\n  content: \"\\f1e6\"; }\n\n.fa-plus:before {\n  content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n  content: \"\\f055\"; }\n\n.fa-plus-square:before {\n  content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n  content: \"\\f2ce\"; }\n\n.fa-poll:before {\n  content: \"\\f681\"; }\n\n.fa-poll-h:before {\n  content: \"\\f682\"; }\n\n.fa-poo:before {\n  content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n  content: \"\\f75a\"; }\n\n.fa-poop:before {\n  content: \"\\f619\"; }\n\n.fa-portrait:before {\n  content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n  content: \"\\f154\"; }\n\n.fa-power-off:before {\n  content: \"\\f011\"; }\n\n.fa-pray:before {\n  content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n  content: \"\\f684\"; }\n\n.fa-prescription:before {\n  content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n  content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n  content: \"\\f486\"; }\n\n.fa-print:before {\n  content: \"\\f02f\"; }\n\n.fa-procedures:before {\n  content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n  content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n  content: \"\\f542\"; }\n\n.fa-pushed:before {\n  content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\"; }\n\n.fa-python:before {\n  content: \"\\f3e2\"; }\n\n.fa-qq:before {\n  content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n  content: \"\\f029\"; }\n\n.fa-question:before {\n  content: \"\\f128\"; }\n\n.fa-question-circle:before {\n  content: \"\\f059\"; }\n\n.fa-quidditch:before {\n  content: \"\\f458\"; }\n\n.fa-quinscape:before {\n  content: \"\\f459\"; }\n\n.fa-quora:before {\n  content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n  content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n  content: \"\\f10e\"; }\n\n.fa-quran:before {\n  content: \"\\f687\"; }\n\n.fa-r-project:before {\n  content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n  content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n  content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n  content: \"\\f75b\"; }\n\n.fa-random:before {\n  content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n  content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n  content: \"\\f2d9\"; }\n\n.fa-react:before {\n  content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n  content: \"\\f75d\"; }\n\n.fa-readme:before {\n  content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n  content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n  content: \"\\f543\"; }\n\n.fa-recycle:before {\n  content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n  content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n  content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n  content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n  content: \"\\f7bc\"; }\n\n.fa-redo:before {\n  content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n  content: \"\\f2f9\"; }\n\n.fa-registered:before {\n  content: \"\\f25d\"; }\n\n.fa-remove-format:before {\n  content: \"\\f87d\"; }\n\n.fa-renren:before {\n  content: \"\\f18b\"; }\n\n.fa-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa-replyd:before {\n  content: \"\\f3e6\"; }\n\n.fa-republican:before {\n  content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n  content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n  content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n  content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n  content: \"\\f079\"; }\n\n.fa-rev:before {\n  content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n  content: \"\\f4d6\"; }\n\n.fa-ring:before {\n  content: \"\\f70b\"; }\n\n.fa-road:before {\n  content: \"\\f018\"; }\n\n.fa-robot:before {\n  content: \"\\f544\"; }\n\n.fa-rocket:before {\n  content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n  content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n  content: \"\\f3e9\"; }\n\n.fa-route:before {\n  content: \"\\f4d7\"; }\n\n.fa-rss:before {\n  content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n  content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n  content: \"\\f158\"; }\n\n.fa-ruler:before {\n  content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n  content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n  content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n  content: \"\\f548\"; }\n\n.fa-running:before {\n  content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n  content: \"\\f156\"; }\n\n.fa-sad-cry:before {\n  content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n  content: \"\\f5b4\"; }\n\n.fa-safari:before {\n  content: \"\\f267\"; }\n\n.fa-salesforce:before {\n  content: \"\\f83b\"; }\n\n.fa-sass:before {\n  content: \"\\f41e\"; }\n\n.fa-satellite:before {\n  content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n  content: \"\\f7c0\"; }\n\n.fa-save:before {\n  content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n  content: \"\\f3ea\"; }\n\n.fa-school:before {\n  content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n  content: \"\\f54a\"; }\n\n.fa-scribd:before {\n  content: \"\\f28a\"; }\n\n.fa-scroll:before {\n  content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n  content: \"\\f7c2\"; }\n\n.fa-search:before {\n  content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n  content: \"\\f688\"; }\n\n.fa-search-location:before {\n  content: \"\\f689\"; }\n\n.fa-search-minus:before {\n  content: \"\\f010\"; }\n\n.fa-search-plus:before {\n  content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n  content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n  content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n  content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n  content: \"\\f213\"; }\n\n.fa-server:before {\n  content: \"\\f233\"; }\n\n.fa-servicestack:before {\n  content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n  content: \"\\f61f\"; }\n\n.fa-share:before {\n  content: \"\\f064\"; }\n\n.fa-share-alt:before {\n  content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n  content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n  content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n  content: \"\\f3ed\"; }\n\n.fa-ship:before {\n  content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n  content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n  content: \"\\f54b\"; }\n\n.fa-shopping-bag:before {\n  content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n  content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\"; }\n\n.fa-shopware:before {\n  content: \"\\f5b5\"; }\n\n.fa-shower:before {\n  content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n  content: \"\\f5b6\"; }\n\n.fa-sign:before {\n  content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n  content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n  content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n  content: \"\\f2f5\"; }\n\n.fa-signal:before {\n  content: \"\\f012\"; }\n\n.fa-signature:before {\n  content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n  content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n  content: \"\\f215\"; }\n\n.fa-sistrix:before {\n  content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n  content: \"\\f0e8\"; }\n\n.fa-sith:before {\n  content: \"\\f512\"; }\n\n.fa-skating:before {\n  content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n  content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n  content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n  content: \"\\f7ca\"; }\n\n.fa-skull:before {\n  content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n  content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n  content: \"\\f216\"; }\n\n.fa-skype:before {\n  content: \"\\f17e\"; }\n\n.fa-slack:before {\n  content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n  content: \"\\f3ef\"; }\n\n.fa-slash:before {\n  content: \"\\f715\"; }\n\n.fa-sleigh:before {\n  content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n  content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n  content: \"\\f1e7\"; }\n\n.fa-smile:before {\n  content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n  content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n  content: \"\\f4da\"; }\n\n.fa-smog:before {\n  content: \"\\f75f\"; }\n\n.fa-smoking:before {\n  content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n  content: \"\\f54d\"; }\n\n.fa-sms:before {\n  content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n  content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n  content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n  content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n  content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n  content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n  content: \"\\f7d2\"; }\n\n.fa-socks:before {\n  content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n  content: \"\\f5ba\"; }\n\n.fa-sort:before {\n  content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n  content: \"\\f15d\"; }\n\n.fa-sort-alpha-down-alt:before {\n  content: \"\\f881\"; }\n\n.fa-sort-alpha-up:before {\n  content: \"\\f15e\"; }\n\n.fa-sort-alpha-up-alt:before {\n  content: \"\\f882\"; }\n\n.fa-sort-amount-down:before {\n  content: \"\\f160\"; }\n\n.fa-sort-amount-down-alt:before {\n  content: \"\\f884\"; }\n\n.fa-sort-amount-up:before {\n  content: \"\\f161\"; }\n\n.fa-sort-amount-up-alt:before {\n  content: \"\\f885\"; }\n\n.fa-sort-down:before {\n  content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n  content: \"\\f162\"; }\n\n.fa-sort-numeric-down-alt:before {\n  content: \"\\f886\"; }\n\n.fa-sort-numeric-up:before {\n  content: \"\\f163\"; }\n\n.fa-sort-numeric-up-alt:before {\n  content: \"\\f887\"; }\n\n.fa-sort-up:before {\n  content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n  content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n  content: \"\\f7d3\"; }\n\n.fa-spa:before {\n  content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n  content: \"\\f197\"; }\n\n.fa-speakap:before {\n  content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n  content: \"\\f83c\"; }\n\n.fa-spell-check:before {\n  content: \"\\f891\"; }\n\n.fa-spider:before {\n  content: \"\\f717\"; }\n\n.fa-spinner:before {\n  content: \"\\f110\"; }\n\n.fa-splotch:before {\n  content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n  content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n  content: \"\\f5bd\"; }\n\n.fa-square:before {\n  content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n  content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n  content: \"\\f698\"; }\n\n.fa-squarespace:before {\n  content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n  content: \"\\f842\"; }\n\n.fa-stamp:before {\n  content: \"\\f5bf\"; }\n\n.fa-star:before {\n  content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n  content: \"\\f699\"; }\n\n.fa-star-half:before {\n  content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n  content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n  content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n  content: \"\\f621\"; }\n\n.fa-staylinked:before {\n  content: \"\\f3f5\"; }\n\n.fa-steam:before {\n  content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n  content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n  content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n  content: \"\\f048\"; }\n\n.fa-step-forward:before {\n  content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n  content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n  content: \"\\f249\"; }\n\n.fa-stop:before {\n  content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n  content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n  content: \"\\f2f2\"; }\n\n.fa-store:before {\n  content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n  content: \"\\f54f\"; }\n\n.fa-strava:before {\n  content: \"\\f428\"; }\n\n.fa-stream:before {\n  content: \"\\f550\"; }\n\n.fa-street-view:before {\n  content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n  content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n  content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n  content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n  content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n  content: \"\\f12c\"; }\n\n.fa-subway:before {\n  content: \"\\f239\"; }\n\n.fa-suitcase:before {\n  content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n  content: \"\\f5c1\"; }\n\n.fa-sun:before {\n  content: \"\\f185\"; }\n\n.fa-superpowers:before {\n  content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n  content: \"\\f12b\"; }\n\n.fa-supple:before {\n  content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n  content: \"\\f5c2\"; }\n\n.fa-suse:before {\n  content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n  content: \"\\f5c3\"; }\n\n.fa-swimmer:before {\n  content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n  content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n  content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n  content: \"\\f69b\"; }\n\n.fa-sync:before {\n  content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n  content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n  content: \"\\f48e\"; }\n\n.fa-table:before {\n  content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n  content: \"\\f45d\"; }\n\n.fa-tablet:before {\n  content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n  content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n  content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n  content: \"\\f3fd\"; }\n\n.fa-tag:before {\n  content: \"\\f02b\"; }\n\n.fa-tags:before {\n  content: \"\\f02c\"; }\n\n.fa-tape:before {\n  content: \"\\f4db\"; }\n\n.fa-tasks:before {\n  content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n  content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n  content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n  content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n  content: \"\\f62f\"; }\n\n.fa-telegram:before {\n  content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n  content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n  content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n  content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n  content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n  content: \"\\f120\"; }\n\n.fa-text-height:before {\n  content: \"\\f034\"; }\n\n.fa-text-width:before {\n  content: \"\\f035\"; }\n\n.fa-th:before {\n  content: \"\\f00a\"; }\n\n.fa-th-large:before {\n  content: \"\\f009\"; }\n\n.fa-th-list:before {\n  content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n  content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n  content: \"\\f630\"; }\n\n.fa-themeco:before {\n  content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n  content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n  content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n  content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n  content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n  content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n  content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n  content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n  content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n  content: \"\\f3ff\"; }\n\n.fa-times:before {\n  content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n  content: \"\\f057\"; }\n\n.fa-tint:before {\n  content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n  content: \"\\f5c7\"; }\n\n.fa-tired:before {\n  content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n  content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n  content: \"\\f205\"; }\n\n.fa-toilet:before {\n  content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n  content: \"\\f71e\"; }\n\n.fa-toolbox:before {\n  content: \"\\f552\"; }\n\n.fa-tools:before {\n  content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n  content: \"\\f5c9\"; }\n\n.fa-torah:before {\n  content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n  content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n  content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n  content: \"\\f513\"; }\n\n.fa-trademark:before {\n  content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n  content: \"\\f637\"; }\n\n.fa-train:before {\n  content: \"\\f238\"; }\n\n.fa-tram:before {\n  content: \"\\f7da\"; }\n\n.fa-transgender:before {\n  content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n  content: \"\\f225\"; }\n\n.fa-trash:before {\n  content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n  content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n  content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n  content: \"\\f82a\"; }\n\n.fa-tree:before {\n  content: \"\\f1bb\"; }\n\n.fa-trello:before {\n  content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n  content: \"\\f262\"; }\n\n.fa-trophy:before {\n  content: \"\\f091\"; }\n\n.fa-truck:before {\n  content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n  content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n  content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n  content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n  content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n  content: \"\\f553\"; }\n\n.fa-tty:before {\n  content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n  content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n  content: \"\\f174\"; }\n\n.fa-tv:before {\n  content: \"\\f26c\"; }\n\n.fa-twitch:before {\n  content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n  content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n  content: \"\\f081\"; }\n\n.fa-typo3:before {\n  content: \"\\f42b\"; }\n\n.fa-uber:before {\n  content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n  content: \"\\f7df\"; }\n\n.fa-uikit:before {\n  content: \"\\f403\"; }\n\n.fa-umbrella:before {\n  content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n  content: \"\\f5ca\"; }\n\n.fa-underline:before {\n  content: \"\\f0cd\"; }\n\n.fa-undo:before {\n  content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n  content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n  content: \"\\f404\"; }\n\n.fa-universal-access:before {\n  content: \"\\f29a\"; }\n\n.fa-university:before {\n  content: \"\\f19c\"; }\n\n.fa-unlink:before {\n  content: \"\\f127\"; }\n\n.fa-unlock:before {\n  content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\"; }\n\n.fa-untappd:before {\n  content: \"\\f405\"; }\n\n.fa-upload:before {\n  content: \"\\f093\"; }\n\n.fa-ups:before {\n  content: \"\\f7e0\"; }\n\n.fa-usb:before {\n  content: \"\\f287\"; }\n\n.fa-user:before {\n  content: \"\\f007\"; }\n\n.fa-user-alt:before {\n  content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n  content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n  content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n  content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n  content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n  content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n  content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n  content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n  content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n  content: \"\\f501\"; }\n\n.fa-user-injured:before {\n  content: \"\\f728\"; }\n\n.fa-user-lock:before {\n  content: \"\\f502\"; }\n\n.fa-user-md:before {\n  content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n  content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n  content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n  content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n  content: \"\\f234\"; }\n\n.fa-user-secret:before {\n  content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n  content: \"\\f505\"; }\n\n.fa-user-slash:before {\n  content: \"\\f506\"; }\n\n.fa-user-tag:before {\n  content: \"\\f507\"; }\n\n.fa-user-tie:before {\n  content: \"\\f508\"; }\n\n.fa-user-times:before {\n  content: \"\\f235\"; }\n\n.fa-users:before {\n  content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n  content: \"\\f509\"; }\n\n.fa-usps:before {\n  content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n  content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n  content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n  content: \"\\f408\"; }\n\n.fa-vector-square:before {\n  content: \"\\f5cb\"; }\n\n.fa-venus:before {\n  content: \"\\f221\"; }\n\n.fa-venus-double:before {\n  content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n  content: \"\\f228\"; }\n\n.fa-viacoin:before {\n  content: \"\\f237\"; }\n\n.fa-viadeo:before {\n  content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n  content: \"\\f2aa\"; }\n\n.fa-vial:before {\n  content: \"\\f492\"; }\n\n.fa-vials:before {\n  content: \"\\f493\"; }\n\n.fa-viber:before {\n  content: \"\\f409\"; }\n\n.fa-video:before {\n  content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n  content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n  content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n  content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n  content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n  content: \"\\f27d\"; }\n\n.fa-vine:before {\n  content: \"\\f1ca\"; }\n\n.fa-vk:before {\n  content: \"\\f189\"; }\n\n.fa-vnv:before {\n  content: \"\\f40b\"; }\n\n.fa-voicemail:before {\n  content: \"\\f897\"; }\n\n.fa-volleyball-ball:before {\n  content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n  content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n  content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n  content: \"\\f026\"; }\n\n.fa-volume-up:before {\n  content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n  content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n  content: \"\\f729\"; }\n\n.fa-vuejs:before {\n  content: \"\\f41f\"; }\n\n.fa-walking:before {\n  content: \"\\f554\"; }\n\n.fa-wallet:before {\n  content: \"\\f555\"; }\n\n.fa-warehouse:before {\n  content: \"\\f494\"; }\n\n.fa-water:before {\n  content: \"\\f773\"; }\n\n.fa-wave-square:before {\n  content: \"\\f83e\"; }\n\n.fa-waze:before {\n  content: \"\\f83f\"; }\n\n.fa-weebly:before {\n  content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n  content: \"\\f18a\"; }\n\n.fa-weight:before {\n  content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n  content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n  content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n  content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n  content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n  content: \"\\f193\"; }\n\n.fa-whmcs:before {\n  content: \"\\f40d\"; }\n\n.fa-wifi:before {\n  content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n  content: \"\\f266\"; }\n\n.fa-wind:before {\n  content: \"\\f72e\"; }\n\n.fa-window-close:before {\n  content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n  content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n  content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n  content: \"\\f2d2\"; }\n\n.fa-windows:before {\n  content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n  content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n  content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n  content: \"\\f5ce\"; }\n\n.fa-wix:before {\n  content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n  content: \"\\f730\"; }\n\n.fa-wolf-pack-battalion:before {\n  content: \"\\f514\"; }\n\n.fa-won-sign:before {\n  content: \"\\f159\"; }\n\n.fa-wordpress:before {\n  content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n  content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n  content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n  content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n  content: \"\\f298\"; }\n\n.fa-wpressr:before {\n  content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n  content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n  content: \"\\f497\"; }\n\n.fa-xbox:before {\n  content: \"\\f412\"; }\n\n.fa-xing:before {\n  content: \"\\f168\"; }\n\n.fa-xing-square:before {\n  content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n  content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n  content: \"\\f19e\"; }\n\n.fa-yammer:before {\n  content: \"\\f840\"; }\n\n.fa-yandex:before {\n  content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n  content: \"\\f414\"; }\n\n.fa-yarn:before {\n  content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n  content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n  content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n  content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n  content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n  content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n  content: \"\\f431\"; }\n\n.fa-zhihu:before {\n  content: \"\\f63f\"; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/regular.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: auto;\n  src: url(\"../webfonts/fa-regular-400.eot\");\n  src: url(\"../webfonts/fa-regular-400.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-regular-400.woff2\") format(\"woff2\"), url(\"../webfonts/fa-regular-400.woff\") format(\"woff\"), url(\"../webfonts/fa-regular-400.ttf\") format(\"truetype\"), url(\"../webfonts/fa-regular-400.svg#fontawesome\") format(\"svg\"); }\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/solid.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: auto;\n  src: url(\"../webfonts/fa-solid-900.eot\");\n  src: url(\"../webfonts/fa-solid-900.eot?#iefix\") format(\"embedded-opentype\"), url(\"../webfonts/fa-solid-900.woff2\") format(\"woff2\"), url(\"../webfonts/fa-solid-900.woff\") format(\"woff\"), url(\"../webfonts/fa-solid-900.ttf\") format(\"truetype\"), url(\"../webfonts/fa-solid-900.svg#fontawesome\") format(\"svg\"); }\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/svg-with-js.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\nsvg:not(:root).svg-inline--fa {\n  overflow: visible; }\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -.125em; }\n  .svg-inline--fa.fa-lg {\n    vertical-align: -.225em; }\n  .svg-inline--fa.fa-w-1 {\n    width: 0.0625em; }\n  .svg-inline--fa.fa-w-2 {\n    width: 0.125em; }\n  .svg-inline--fa.fa-w-3 {\n    width: 0.1875em; }\n  .svg-inline--fa.fa-w-4 {\n    width: 0.25em; }\n  .svg-inline--fa.fa-w-5 {\n    width: 0.3125em; }\n  .svg-inline--fa.fa-w-6 {\n    width: 0.375em; }\n  .svg-inline--fa.fa-w-7 {\n    width: 0.4375em; }\n  .svg-inline--fa.fa-w-8 {\n    width: 0.5em; }\n  .svg-inline--fa.fa-w-9 {\n    width: 0.5625em; }\n  .svg-inline--fa.fa-w-10 {\n    width: 0.625em; }\n  .svg-inline--fa.fa-w-11 {\n    width: 0.6875em; }\n  .svg-inline--fa.fa-w-12 {\n    width: 0.75em; }\n  .svg-inline--fa.fa-w-13 {\n    width: 0.8125em; }\n  .svg-inline--fa.fa-w-14 {\n    width: 0.875em; }\n  .svg-inline--fa.fa-w-15 {\n    width: 0.9375em; }\n  .svg-inline--fa.fa-w-16 {\n    width: 1em; }\n  .svg-inline--fa.fa-w-17 {\n    width: 1.0625em; }\n  .svg-inline--fa.fa-w-18 {\n    width: 1.125em; }\n  .svg-inline--fa.fa-w-19 {\n    width: 1.1875em; }\n  .svg-inline--fa.fa-w-20 {\n    width: 1.25em; }\n  .svg-inline--fa.fa-pull-left {\n    margin-right: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-pull-right {\n    margin-left: .3em;\n    width: auto; }\n  .svg-inline--fa.fa-border {\n    height: 1.5em; }\n  .svg-inline--fa.fa-li {\n    width: 2em; }\n  .svg-inline--fa.fa-fw {\n    width: 1.25em; }\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -.125em;\n  width: 1em; }\n  .fa-layers svg.svg-inline--fa {\n    -webkit-transform-origin: center center;\n            transform-origin: center center; }\n\n.fa-layers-text, .fa-layers-counter {\n  display: inline-block;\n  position: absolute;\n  text-align: center; }\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center; }\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  line-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: .25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right; }\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left; }\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right; }\n\n.fa-layers-top-left {\n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left; }\n\n.fa-lg {\n  font-size: 1.33333em;\n  line-height: 0.75em;\n  vertical-align: -.0667em; }\n\n.fa-xs {\n  font-size: .75em; }\n\n.fa-sm {\n  font-size: .875em; }\n\n.fa-1x {\n  font-size: 1em; }\n\n.fa-2x {\n  font-size: 2em; }\n\n.fa-3x {\n  font-size: 3em; }\n\n.fa-4x {\n  font-size: 4em; }\n\n.fa-5x {\n  font-size: 5em; }\n\n.fa-6x {\n  font-size: 6em; }\n\n.fa-7x {\n  font-size: 7em; }\n\n.fa-8x {\n  font-size: 8em; }\n\n.fa-9x {\n  font-size: 9em; }\n\n.fa-10x {\n  font-size: 10em; }\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em; }\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0; }\n  .fa-ul > li {\n    position: relative; }\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inherit; }\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: .1em;\n  padding: .2em .25em .15em; }\n\n.fa-pull-left {\n  float: left; }\n\n.fa-pull-right {\n  float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: .3em; }\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg); }\n\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg); }\n\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n          transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none; }\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0; }\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em; }\n\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em; }\n\n.fa-inverse {\n  color: #fff; }\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4); }\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1); }\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black; }\n\n.fad.fa-inverse {\n  color: #fff; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/css/v4-shims.css",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa.fa-glass:before {\n  content: \"\\f000\"; }\n\n.fa.fa-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-o:before {\n  content: \"\\f005\"; }\n\n.fa.fa-remove:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-close:before {\n  content: \"\\f00d\"; }\n\n.fa.fa-gear:before {\n  content: \"\\f013\"; }\n\n.fa.fa-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-trash-o:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-o:before {\n  content: \"\\f15b\"; }\n\n.fa.fa-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-clock-o:before {\n  content: \"\\f017\"; }\n\n.fa.fa-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-down:before {\n  content: \"\\f358\"; }\n\n.fa.fa-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-up:before {\n  content: \"\\f35b\"; }\n\n.fa.fa-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-play-circle-o:before {\n  content: \"\\f144\"; }\n\n.fa.fa-repeat:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-rotate-right:before {\n  content: \"\\f01e\"; }\n\n.fa.fa-refresh:before {\n  content: \"\\f021\"; }\n\n.fa.fa-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dedent:before {\n  content: \"\\f03b\"; }\n\n.fa.fa-video-camera:before {\n  content: \"\\f03d\"; }\n\n.fa.fa-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-picture-o:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-photo:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-image:before {\n  content: \"\\f03e\"; }\n\n.fa.fa-pencil:before {\n  content: \"\\f303\"; }\n\n.fa.fa-map-marker:before {\n  content: \"\\f3c5\"; }\n\n.fa.fa-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pencil-square-o:before {\n  content: \"\\f044\"; }\n\n.fa.fa-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-share-square-o:before {\n  content: \"\\f14d\"; }\n\n.fa.fa-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-square-o:before {\n  content: \"\\f14a\"; }\n\n.fa.fa-arrows:before {\n  content: \"\\f0b2\"; }\n\n.fa.fa-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-circle-o:before {\n  content: \"\\f057\"; }\n\n.fa.fa-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-check-circle-o:before {\n  content: \"\\f058\"; }\n\n.fa.fa-mail-forward:before {\n  content: \"\\f064\"; }\n\n.fa.fa-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-warning:before {\n  content: \"\\f071\"; }\n\n.fa.fa-calendar:before {\n  content: \"\\f073\"; }\n\n.fa.fa-arrows-v:before {\n  content: \"\\f338\"; }\n\n.fa.fa-arrows-h:before {\n  content: \"\\f337\"; }\n\n.fa.fa-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart:before {\n  content: \"\\f080\"; }\n\n.fa.fa-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bar-chart-o:before {\n  content: \"\\f080\"; }\n\n.fa.fa-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gears:before {\n  content: \"\\f085\"; }\n\n.fa.fa-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-up:before {\n  content: \"\\f164\"; }\n\n.fa.fa-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-thumbs-o-down:before {\n  content: \"\\f165\"; }\n\n.fa.fa-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-heart-o:before {\n  content: \"\\f004\"; }\n\n.fa.fa-sign-out:before {\n  content: \"\\f2f5\"; }\n\n.fa.fa-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin-square:before {\n  content: \"\\f08c\"; }\n\n.fa.fa-thumb-tack:before {\n  content: \"\\f08d\"; }\n\n.fa.fa-external-link:before {\n  content: \"\\f35d\"; }\n\n.fa.fa-sign-in:before {\n  content: \"\\f2f6\"; }\n\n.fa.fa-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lemon-o:before {\n  content: \"\\f094\"; }\n\n.fa.fa-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-square-o:before {\n  content: \"\\f0c8\"; }\n\n.fa.fa-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bookmark-o:before {\n  content: \"\\f02e\"; }\n\n.fa.fa-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-f:before {\n  content: \"\\f39e\"; }\n\n.fa.fa-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-feed:before {\n  content: \"\\f09e\"; }\n\n.fa.fa-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hdd-o:before {\n  content: \"\\f0a0\"; }\n\n.fa.fa-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-right:before {\n  content: \"\\f0a4\"; }\n\n.fa.fa-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-left:before {\n  content: \"\\f0a5\"; }\n\n.fa.fa-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-up:before {\n  content: \"\\f0a6\"; }\n\n.fa.fa-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-o-down:before {\n  content: \"\\f0a7\"; }\n\n.fa.fa-arrows-alt:before {\n  content: \"\\f31e\"; }\n\n.fa.fa-group:before {\n  content: \"\\f0c0\"; }\n\n.fa.fa-chain:before {\n  content: \"\\f0c1\"; }\n\n.fa.fa-scissors:before {\n  content: \"\\f0c4\"; }\n\n.fa.fa-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-files-o:before {\n  content: \"\\f0c5\"; }\n\n.fa.fa-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-floppy-o:before {\n  content: \"\\f0c7\"; }\n\n.fa.fa-navicon:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-reorder:before {\n  content: \"\\f0c9\"; }\n\n.fa.fa-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus:before {\n  content: \"\\f0d5\"; }\n\n.fa.fa-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-money:before {\n  content: \"\\f3d1\"; }\n\n.fa.fa-unsorted:before {\n  content: \"\\f0dc\"; }\n\n.fa.fa-sort-desc:before {\n  content: \"\\f0dd\"; }\n\n.fa.fa-sort-asc:before {\n  content: \"\\f0de\"; }\n\n.fa.fa-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linkedin:before {\n  content: \"\\f0e1\"; }\n\n.fa.fa-rotate-left:before {\n  content: \"\\f0e2\"; }\n\n.fa.fa-legal:before {\n  content: \"\\f0e3\"; }\n\n.fa.fa-tachometer:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-dashboard:before {\n  content: \"\\f3fd\"; }\n\n.fa.fa-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comment-o:before {\n  content: \"\\f075\"; }\n\n.fa.fa-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-comments-o:before {\n  content: \"\\f086\"; }\n\n.fa.fa-flash:before {\n  content: \"\\f0e7\"; }\n\n.fa.fa-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paste:before {\n  content: \"\\f328\"; }\n\n.fa.fa-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-lightbulb-o:before {\n  content: \"\\f0eb\"; }\n\n.fa.fa-exchange:before {\n  content: \"\\f362\"; }\n\n.fa.fa-cloud-download:before {\n  content: \"\\f381\"; }\n\n.fa.fa-cloud-upload:before {\n  content: \"\\f382\"; }\n\n.fa.fa-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-o:before {\n  content: \"\\f0f3\"; }\n\n.fa.fa-cutlery:before {\n  content: \"\\f2e7\"; }\n\n.fa.fa-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-text-o:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-building-o:before {\n  content: \"\\f1ad\"; }\n\n.fa.fa-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hospital-o:before {\n  content: \"\\f0f8\"; }\n\n.fa.fa-tablet:before {\n  content: \"\\f3fa\"; }\n\n.fa.fa-mobile:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-mobile-phone:before {\n  content: \"\\f3cd\"; }\n\n.fa.fa-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-o:before {\n  content: \"\\f111\"; }\n\n.fa.fa-mail-reply:before {\n  content: \"\\f3e5\"; }\n\n.fa.fa-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-o:before {\n  content: \"\\f07b\"; }\n\n.fa.fa-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-folder-open-o:before {\n  content: \"\\f07c\"; }\n\n.fa.fa-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-smile-o:before {\n  content: \"\\f118\"; }\n\n.fa.fa-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-frown-o:before {\n  content: \"\\f119\"; }\n\n.fa.fa-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-meh-o:before {\n  content: \"\\f11a\"; }\n\n.fa.fa-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-keyboard-o:before {\n  content: \"\\f11c\"; }\n\n.fa.fa-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-flag-o:before {\n  content: \"\\f024\"; }\n\n.fa.fa-mail-reply-all:before {\n  content: \"\\f122\"; }\n\n.fa.fa-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-o:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-empty:before {\n  content: \"\\f089\"; }\n\n.fa.fa-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-star-half-full:before {\n  content: \"\\f089\"; }\n\n.fa.fa-code-fork:before {\n  content: \"\\f126\"; }\n\n.fa.fa-chain-broken:before {\n  content: \"\\f127\"; }\n\n.fa.fa-shield:before {\n  content: \"\\f3ed\"; }\n\n.fa.fa-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-o:before {\n  content: \"\\f133\"; }\n\n.fa.fa-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ticket:before {\n  content: \"\\f3ff\"; }\n\n.fa.fa-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-minus-square-o:before {\n  content: \"\\f146\"; }\n\n.fa.fa-level-up:before {\n  content: \"\\f3bf\"; }\n\n.fa.fa-level-down:before {\n  content: \"\\f3be\"; }\n\n.fa.fa-pencil-square:before {\n  content: \"\\f14b\"; }\n\n.fa.fa-external-link-square:before {\n  content: \"\\f360\"; }\n\n.fa.fa-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-down:before {\n  content: \"\\f150\"; }\n\n.fa.fa-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-up:before {\n  content: \"\\f151\"; }\n\n.fa.fa-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-right:before {\n  content: \"\\f152\"; }\n\n.fa.fa-eur:before {\n  content: \"\\f153\"; }\n\n.fa.fa-euro:before {\n  content: \"\\f153\"; }\n\n.fa.fa-gbp:before {\n  content: \"\\f154\"; }\n\n.fa.fa-usd:before {\n  content: \"\\f155\"; }\n\n.fa.fa-dollar:before {\n  content: \"\\f155\"; }\n\n.fa.fa-inr:before {\n  content: \"\\f156\"; }\n\n.fa.fa-rupee:before {\n  content: \"\\f156\"; }\n\n.fa.fa-jpy:before {\n  content: \"\\f157\"; }\n\n.fa.fa-cny:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rmb:before {\n  content: \"\\f157\"; }\n\n.fa.fa-yen:before {\n  content: \"\\f157\"; }\n\n.fa.fa-rub:before {\n  content: \"\\f158\"; }\n\n.fa.fa-ruble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-rouble:before {\n  content: \"\\f158\"; }\n\n.fa.fa-krw:before {\n  content: \"\\f159\"; }\n\n.fa.fa-won:before {\n  content: \"\\f159\"; }\n\n.fa.fa-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitcoin:before {\n  content: \"\\f15a\"; }\n\n.fa.fa-file-text:before {\n  content: \"\\f15c\"; }\n\n.fa.fa-sort-alpha-asc:before {\n  content: \"\\f15d\"; }\n\n.fa.fa-sort-alpha-desc:before {\n  content: \"\\f881\"; }\n\n.fa.fa-sort-amount-asc:before {\n  content: \"\\f160\"; }\n\n.fa.fa-sort-amount-desc:before {\n  content: \"\\f884\"; }\n\n.fa.fa-sort-numeric-asc:before {\n  content: \"\\f162\"; }\n\n.fa.fa-sort-numeric-desc:before {\n  content: \"\\f886\"; }\n\n.fa.fa-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-youtube-play:before {\n  content: \"\\f167\"; }\n\n.fa.fa-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bitbucket-square:before {\n  content: \"\\f171\"; }\n\n.fa.fa-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-long-arrow-down:before {\n  content: \"\\f309\"; }\n\n.fa.fa-long-arrow-up:before {\n  content: \"\\f30c\"; }\n\n.fa.fa-long-arrow-left:before {\n  content: \"\\f30a\"; }\n\n.fa.fa-long-arrow-right:before {\n  content: \"\\f30b\"; }\n\n.fa.fa-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gittip:before {\n  content: \"\\f184\"; }\n\n.fa.fa-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sun-o:before {\n  content: \"\\f185\"; }\n\n.fa.fa-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-moon-o:before {\n  content: \"\\f186\"; }\n\n.fa.fa-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-right:before {\n  content: \"\\f35a\"; }\n\n.fa.fa-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-arrow-circle-o-left:before {\n  content: \"\\f359\"; }\n\n.fa.fa-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-caret-square-o-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-toggle-left:before {\n  content: \"\\f191\"; }\n\n.fa.fa-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-dot-circle-o:before {\n  content: \"\\f192\"; }\n\n.fa.fa-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-try:before {\n  content: \"\\f195\"; }\n\n.fa.fa-turkish-lira:before {\n  content: \"\\f195\"; }\n\n.fa.fa-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-plus-square-o:before {\n  content: \"\\f0fe\"; }\n\n.fa.fa-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-institution:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-bank:before {\n  content: \"\\f19c\"; }\n\n.fa.fa-mortar-board:before {\n  content: \"\\f19d\"; }\n\n.fa.fa-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-spoon:before {\n  content: \"\\f2e5\"; }\n\n.fa.fa-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-automobile:before {\n  content: \"\\f1b9\"; }\n\n.fa.fa-cab:before {\n  content: \"\\f1ba\"; }\n\n.fa.fa-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-o:before {\n  content: \"\\f0e0\"; }\n\n.fa.fa-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-pdf-o:before {\n  content: \"\\f1c1\"; }\n\n.fa.fa-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-word-o:before {\n  content: \"\\f1c2\"; }\n\n.fa.fa-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-excel-o:before {\n  content: \"\\f1c3\"; }\n\n.fa.fa-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\"; }\n\n.fa.fa-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-image-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-photo-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-picture-o:before {\n  content: \"\\f1c5\"; }\n\n.fa.fa-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-archive-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-zip-o:before {\n  content: \"\\f1c6\"; }\n\n.fa.fa-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-audio-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-sound-o:before {\n  content: \"\\f1c7\"; }\n\n.fa.fa-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-video-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-movie-o:before {\n  content: \"\\f1c8\"; }\n\n.fa.fa-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-file-code-o:before {\n  content: \"\\f1c9\"; }\n\n.fa.fa-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-bouy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-buoy:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-life-saver:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-support:before {\n  content: \"\\f1cd\"; }\n\n.fa.fa-circle-o-notch:before {\n  content: \"\\f1ce\"; }\n\n.fa.fa-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ra:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-resistance:before {\n  content: \"\\f1d0\"; }\n\n.fa.fa-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ge:before {\n  content: \"\\f1d1\"; }\n\n.fa.fa-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc-square:before {\n  content: \"\\f1d4\"; }\n\n.fa.fa-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wechat:before {\n  content: \"\\f1d7\"; }\n\n.fa.fa-send:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-paper-plane-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-send-o:before {\n  content: \"\\f1d8\"; }\n\n.fa.fa-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-circle-thin:before {\n  content: \"\\f111\"; }\n\n.fa.fa-header:before {\n  content: \"\\f1dc\"; }\n\n.fa.fa-sliders:before {\n  content: \"\\f1de\"; }\n\n.fa.fa-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-futbol-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-soccer-ball-o:before {\n  content: \"\\f1e3\"; }\n\n.fa.fa-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-newspaper-o:before {\n  content: \"\\f1ea\"; }\n\n.fa.fa-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-bell-slash-o:before {\n  content: \"\\f1f6\"; }\n\n.fa.fa-trash:before {\n  content: \"\\f2ed\"; }\n\n.fa.fa-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-eyedropper:before {\n  content: \"\\f1fb\"; }\n\n.fa.fa-area-chart:before {\n  content: \"\\f1fe\"; }\n\n.fa.fa-pie-chart:before {\n  content: \"\\f200\"; }\n\n.fa.fa-line-chart:before {\n  content: \"\\f201\"; }\n\n.fa.fa-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-cc:before {\n  content: \"\\f20a\"; }\n\n.fa.fa-ils:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-shekel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-sheqel:before {\n  content: \"\\f20b\"; }\n\n.fa.fa-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-meanpath:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-diamond:before {\n  content: \"\\f3a5\"; }\n\n.fa.fa-intersex:before {\n  content: \"\\f224\"; }\n\n.fa.fa-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-facebook-official:before {\n  content: \"\\f09a\"; }\n\n.fa.fa-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-hotel:before {\n  content: \"\\f236\"; }\n\n.fa.fa-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yc:before {\n  content: \"\\f23b\"; }\n\n.fa.fa-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-battery-4:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery:before {\n  content: \"\\f240\"; }\n\n.fa.fa-battery-3:before {\n  content: \"\\f241\"; }\n\n.fa.fa-battery-2:before {\n  content: \"\\f242\"; }\n\n.fa.fa-battery-1:before {\n  content: \"\\f243\"; }\n\n.fa.fa-battery-0:before {\n  content: \"\\f244\"; }\n\n.fa.fa-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-sticky-note-o:before {\n  content: \"\\f249\"; }\n\n.fa.fa-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hourglass-o:before {\n  content: \"\\f254\"; }\n\n.fa.fa-hourglass-1:before {\n  content: \"\\f251\"; }\n\n.fa.fa-hourglass-2:before {\n  content: \"\\f252\"; }\n\n.fa.fa-hourglass-3:before {\n  content: \"\\f253\"; }\n\n.fa.fa-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-rock-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-grab-o:before {\n  content: \"\\f255\"; }\n\n.fa.fa-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-paper-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-stop-o:before {\n  content: \"\\f256\"; }\n\n.fa.fa-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-scissors-o:before {\n  content: \"\\f257\"; }\n\n.fa.fa-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-lizard-o:before {\n  content: \"\\f258\"; }\n\n.fa.fa-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-spock-o:before {\n  content: \"\\f259\"; }\n\n.fa.fa-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-pointer-o:before {\n  content: \"\\f25a\"; }\n\n.fa.fa-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-hand-peace-o:before {\n  content: \"\\f25b\"; }\n\n.fa.fa-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-television:before {\n  content: \"\\f26c\"; }\n\n.fa.fa-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-plus-o:before {\n  content: \"\\f271\"; }\n\n.fa.fa-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-minus-o:before {\n  content: \"\\f272\"; }\n\n.fa.fa-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-times-o:before {\n  content: \"\\f273\"; }\n\n.fa.fa-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-calendar-check-o:before {\n  content: \"\\f274\"; }\n\n.fa.fa-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-map-o:before {\n  content: \"\\f279\"; }\n\n.fa.fa-commenting:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-commenting-o:before {\n  content: \"\\f4ad\"; }\n\n.fa.fa-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-vimeo:before {\n  content: \"\\f27d\"; }\n\n.fa.fa-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-credit-card-alt:before {\n  content: \"\\f09d\"; }\n\n.fa.fa-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-pause-circle-o:before {\n  content: \"\\f28b\"; }\n\n.fa.fa-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-stop-circle-o:before {\n  content: \"\\f28d\"; }\n\n.fa.fa-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wheelchair-alt:before {\n  content: \"\\f368\"; }\n\n.fa.fa-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-question-circle-o:before {\n  content: \"\\f059\"; }\n\n.fa.fa-volume-control-phone:before {\n  content: \"\\f2a0\"; }\n\n.fa.fa-asl-interpreting:before {\n  content: \"\\f2a3\"; }\n\n.fa.fa-deafness:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-hard-of-hearing:before {\n  content: \"\\f2a4\"; }\n\n.fa.fa-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-signing:before {\n  content: \"\\f2a7\"; }\n\n.fa.fa-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-official:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-google-plus-circle:before {\n  content: \"\\f2b3\"; }\n\n.fa.fa-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-fa:before {\n  content: \"\\f2b4\"; }\n\n.fa.fa-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-handshake-o:before {\n  content: \"\\f2b5\"; }\n\n.fa.fa-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-envelope-open-o:before {\n  content: \"\\f2b6\"; }\n\n.fa.fa-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-book-o:before {\n  content: \"\\f2b9\"; }\n\n.fa.fa-vcard:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-address-card-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-vcard-o:before {\n  content: \"\\f2bb\"; }\n\n.fa.fa-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-circle-o:before {\n  content: \"\\f2bd\"; }\n\n.fa.fa-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-user-o:before {\n  content: \"\\f007\"; }\n\n.fa.fa-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-id-card-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-drivers-license-o:before {\n  content: \"\\f2c2\"; }\n\n.fa.fa-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-thermometer-4:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer:before {\n  content: \"\\f2c7\"; }\n\n.fa.fa-thermometer-3:before {\n  content: \"\\f2c8\"; }\n\n.fa.fa-thermometer-2:before {\n  content: \"\\f2c9\"; }\n\n.fa.fa-thermometer-1:before {\n  content: \"\\f2ca\"; }\n\n.fa.fa-thermometer-0:before {\n  content: \"\\f2cb\"; }\n\n.fa.fa-bathtub:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-s15:before {\n  content: \"\\f2cd\"; }\n\n.fa.fa-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle:before {\n  content: \"\\f410\"; }\n\n.fa.fa-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-window-close-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-times-rectangle-o:before {\n  content: \"\\f410\"; }\n\n.fa.fa-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-eercast:before {\n  content: \"\\f2da\"; }\n\n.fa.fa-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400; }\n\n.fa.fa-snowflake-o:before {\n  content: \"\\f2dc\"; }\n\n.fa.fa-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n\n.fa.fa-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/all.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"500px\": [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\n    \"accessible-icon\": [448, 512, [], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],\n    \"accusoft\": [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],\n    \"acquisitions-incorporated\": [384, 512, [], \"f6af\", \"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"],\n    \"adn\": [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"],\n    \"adobe\": [512, 512, [], \"f778\", \"M315.5 64h170.9v384L315.5 64zm-119 0H25.6v384L196.5 64zM256 206.1L363.5 448h-73l-30.7-76.8h-78.7L256 206.1z\"],\n    \"adversal\": [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\n    \"affiliatetheme\": [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"],\n    \"airbnb\": [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"],\n    \"algolia\": [448, 512, [], \"f36c\", \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"],\n    \"alipay\": [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"],\n    \"amazon\": [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],\n    \"amazon-pay\": [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\n    \"amilia\": [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"],\n    \"android\": [448, 512, [], \"f17b\", \"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\"],\n    \"angellist\": [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\n    \"angrycreative\": [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\n    \"angular\": [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"],\n    \"app-store\": [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"],\n    \"app-store-ios\": [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\n    \"apper\": [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"],\n    \"apple\": [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],\n    \"apple-pay\": [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"],\n    \"artstation\": [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"],\n    \"asymmetrik\": [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\n    \"atlassian\": [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"],\n    \"audible\": [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"],\n    \"autoprefixer\": [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"],\n    \"avianex\": [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],\n    \"aviato\": [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"],\n    \"aws\": [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"],\n    \"bandcamp\": [496, 512, [], \"f2d5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z\"],\n    \"battle-net\": [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"],\n    \"behance\": [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"],\n    \"behance-square\": [448, 512, [], \"f1b5\", \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"],\n    \"bimobject\": [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"],\n    \"bitbucket\": [512, 512, [], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"],\n    \"bitcoin\": [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"],\n    \"bity\": [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"],\n    \"black-tie\": [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"],\n    \"blackberry\": [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"],\n    \"blogger\": [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],\n    \"blogger-b\": [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],\n    \"bluetooth\": [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],\n    \"bluetooth-b\": [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"],\n    \"bootstrap\": [448, 512, [], \"f836\", \"M292.3 311.93c0 42.41-39.72 41.43-43.92 41.43h-80.89v-81.69h80.89c42.56 0 43.92 31.9 43.92 40.26zm-50.15-73.13c.67 0 38.44 1 38.44-36.31 0-15.52-3.51-35.87-38.44-35.87h-74.66v72.18h74.66zM448 106.67v298.66A74.89 74.89 0 0 1 373.33 480H74.67A74.89 74.89 0 0 1 0 405.33V106.67A74.89 74.89 0 0 1 74.67 32h298.66A74.89 74.89 0 0 1 448 106.67zM338.05 317.86c0-21.57-6.65-58.29-49.05-67.35v-.73c22.91-9.78 37.34-28.25 37.34-55.64 0-7 2-64.78-77.6-64.78h-127v261.33c128.23 0 139.87 1.68 163.6-5.71 14.21-4.42 52.71-17.98 52.71-67.12z\"],\n    \"btc\": [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"],\n    \"buffer\": [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"],\n    \"buromobelexperte\": [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"],\n    \"buysellads\": [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"],\n    \"canadian-maple-leaf\": [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],\n    \"cc-amazon-pay\": [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"],\n    \"cc-amex\": [576, 512, [], \"f1f3\", \"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"],\n    \"cc-apple-pay\": [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],\n    \"cc-diners-club\": [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\n    \"cc-discover\": [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],\n    \"cc-jcb\": [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"],\n    \"cc-mastercard\": [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"],\n    \"cc-paypal\": [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"],\n    \"cc-stripe\": [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\n    \"cc-visa\": [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"],\n    \"centercode\": [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\n    \"centos\": [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"],\n    \"chrome\": [496, 512, [], \"f268\", \"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"],\n    \"chromecast\": [512, 512, [], \"f838\", \"M447.83 64H64a42.72 42.72 0 0 0-42.72 42.72v63.92H64v-63.92h383.83v298.56H298.64V448H448a42.72 42.72 0 0 0 42.72-42.72V106.72A42.72 42.72 0 0 0 448 64zM21.28 383.58v63.92h63.91a63.91 63.91 0 0 0-63.91-63.92zm0-85.28V341a106.63 106.63 0 0 1 106.64 106.66v.34h42.72a149.19 149.19 0 0 0-149-149.36h-.33zm0-85.27v42.72c106-.1 192 85.75 192.08 191.75v.5h42.72c-.46-129.46-105.34-234.27-234.8-234.64z\"],\n    \"cloudscale\": [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"],\n    \"cloudsmith\": [332, 512, [], \"f384\", \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"],\n    \"cloudversify\": [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"],\n    \"codepen\": [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"],\n    \"codiepie\": [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],\n    \"confluence\": [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],\n    \"connectdevelop\": [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"],\n    \"contao\": [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"],\n    \"cotton-bureau\": [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"],\n    \"cpanel\": [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"],\n    \"creative-commons\": [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"],\n    \"creative-commons-by\": [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"],\n    \"creative-commons-nc\": [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],\n    \"creative-commons-nc-eu\": [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"],\n    \"creative-commons-nc-jp\": [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"],\n    \"creative-commons-nd\": [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"],\n    \"creative-commons-pd\": [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],\n    \"creative-commons-pd-alt\": [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"],\n    \"creative-commons-remix\": [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"],\n    \"creative-commons-sa\": [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"],\n    \"creative-commons-sampling\": [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],\n    \"creative-commons-sampling-plus\": [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],\n    \"creative-commons-share\": [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"],\n    \"creative-commons-zero\": [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],\n    \"critical-role\": [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"],\n    \"css3\": [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"],\n    \"css3-alt\": [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"],\n    \"cuttlefish\": [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],\n    \"d-and-d\": [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],\n    \"d-and-d-beyond\": [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],\n    \"dashcube\": [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"],\n    \"delicious\": [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"],\n    \"deploydog\": [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"],\n    \"deskpro\": [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],\n    \"dev\": [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"],\n    \"deviantart\": [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"],\n    \"dhl\": [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"],\n    \"diaspora\": [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"],\n    \"digg\": [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"],\n    \"digital-ocean\": [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"],\n    \"discord\": [448, 512, [], \"f392\", \"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"],\n    \"discourse\": [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],\n    \"dochub\": [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"],\n    \"docker\": [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"],\n    \"draft2digital\": [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"],\n    \"dribbble\": [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"],\n    \"dribbble-square\": [448, 512, [], \"f397\", \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"],\n    \"dropbox\": [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"],\n    \"drupal\": [448, 512, [], \"f1a9\", \"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"],\n    \"dyalog\": [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"],\n    \"earlybirds\": [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\n    \"ebay\": [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"],\n    \"edge\": [512, 512, [], \"f282\", \"M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z\"],\n    \"elementor\": [448, 512, [], \"f430\", \"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"],\n    \"ello\": [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"],\n    \"ember\": [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\n    \"empire\": [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"],\n    \"envira\": [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\n    \"erlang\": [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"],\n    \"ethereum\": [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"],\n    \"etsy\": [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"],\n    \"evernote\": [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"],\n    \"expeditedssl\": [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"],\n    \"facebook\": [512, 512, [], \"f09a\", \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"],\n    \"facebook-f\": [320, 512, [], \"f39e\", \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"],\n    \"facebook-messenger\": [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"],\n    \"facebook-square\": [448, 512, [], \"f082\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"],\n    \"fantasy-flight-games\": [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"],\n    \"fedex\": [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"],\n    \"fedora\": [448, 512, [], \"f798\", \"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"],\n    \"figma\": [384, 512, [], \"f799\", \"M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z\"],\n    \"firefox\": [480, 512, [], \"f269\", \"M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z\"],\n    \"first-order\": [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],\n    \"first-order-alt\": [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"],\n    \"firstdraft\": [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"],\n    \"flickr\": [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"],\n    \"flipboard\": [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"],\n    \"fly\": [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],\n    \"font-awesome\": [448, 512, [], \"f2b4\", \"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\"],\n    \"font-awesome-alt\": [448, 512, [], \"f35c\", \"M339.3 171.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1zM397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm14.3 397.7c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6v-.1c7.8 0 14.3 6.6 14.3 14.3z\"],\n    \"font-awesome-flag\": [448, 512, [], \"f425\", \"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"fonticons\": [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"],\n    \"fonticons-fi\": [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"],\n    \"fort-awesome\": [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"],\n    \"fort-awesome-alt\": [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"],\n    \"forumbee\": [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"],\n    \"foursquare\": [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"],\n    \"free-code-camp\": [576, 512, [], \"f2c5\", \"M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z\"],\n    \"freebsd\": [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],\n    \"fulcrum\": [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"],\n    \"galactic-republic\": [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"],\n    \"galactic-senate\": [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"],\n    \"get-pocket\": [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"],\n    \"gg\": [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"],\n    \"gg-circle\": [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"],\n    \"git\": [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"],\n    \"git-alt\": [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"],\n    \"git-square\": [448, 512, [], \"f1d2\", \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"],\n    \"github\": [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],\n    \"github-alt\": [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\n    \"github-square\": [448, 512, [], \"f092\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"],\n    \"gitkraken\": [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"],\n    \"gitlab\": [512, 512, [], \"f296\", \"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"],\n    \"gitter\": [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"],\n    \"glide\": [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"],\n    \"glide-g\": [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],\n    \"gofore\": [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],\n    \"goodreads\": [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\n    \"goodreads-g\": [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\n    \"google\": [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"],\n    \"google-drive\": [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],\n    \"google-play\": [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"],\n    \"google-plus\": [496, 512, [], \"f2b3\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z\"],\n    \"google-plus-g\": [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"],\n    \"google-plus-square\": [448, 512, [], \"f0d4\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"],\n    \"google-wallet\": [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\n    \"gratipay\": [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"],\n    \"grav\": [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"],\n    \"gripfire\": [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\n    \"grunt\": [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],\n    \"gulp\": [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"],\n    \"hacker-news\": [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"hacker-news-square\": [448, 512, [], \"f3af\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"hackerrank\": [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"],\n    \"hips\": [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],\n    \"hire-a-helper\": [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\n    \"hooli\": [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"],\n    \"hornbill\": [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"],\n    \"hotjar\": [448, 512, [], \"f3b1\", \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"],\n    \"houzz\": [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"],\n    \"html5\": [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"],\n    \"hubspot\": [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"],\n    \"imdb\": [448, 512, [], \"f2d8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"],\n    \"instagram\": [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n    \"intercom\": [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"],\n    \"internet-explorer\": [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"],\n    \"invision\": [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\n    \"ioxhost\": [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\n    \"itch-io\": [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"],\n    \"itunes\": [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"],\n    \"itunes-note\": [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"],\n    \"java\": [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"],\n    \"jedi-order\": [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],\n    \"jenkins\": [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],\n    \"jira\": [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"],\n    \"joget\": [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"],\n    \"joomla\": [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],\n    \"js\": [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"js-square\": [448, 512, [], \"f3b9\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"jsfiddle\": [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"],\n    \"kaggle\": [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"],\n    \"keybase\": [448, 512, [], \"f4f5\", \"M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z\"],\n    \"keycdn\": [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"],\n    \"kickstarter\": [448, 512, [], \"f3bb\", \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"],\n    \"kickstarter-k\": [384, 512, [], \"f3bc\", \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"],\n    \"korvue\": [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"],\n    \"laravel\": [640, 512, [], \"f3bd\", \"M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z\"],\n    \"lastfm\": [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],\n    \"lastfm-square\": [448, 512, [], \"f203\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"],\n    \"leanpub\": [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"],\n    \"less\": [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"],\n    \"line\": [448, 512, [], \"f3c0\", \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"],\n    \"linkedin\": [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"],\n    \"linkedin-in\": [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"],\n    \"linode\": [448, 512, [], \"f2b8\", \"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"],\n    \"linux\": [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],\n    \"lyft\": [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"],\n    \"magento\": [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"],\n    \"mailchimp\": [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"],\n    \"mandalorian\": [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"],\n    \"markdown\": [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"],\n    \"mastodon\": [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"],\n    \"maxcdn\": [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"],\n    \"medapps\": [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],\n    \"medium\": [448, 512, [], \"f23a\", \"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"],\n    \"medium-m\": [512, 512, [], \"f3c7\", \"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"],\n    \"medrt\": [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"],\n    \"meetup\": [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"],\n    \"megaport\": [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"],\n    \"mendeley\": [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],\n    \"microsoft\": [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"],\n    \"mix\": [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"],\n    \"mixcloud\": [640, 512, [], \"f289\", \"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"],\n    \"mizuni\": [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"],\n    \"modx\": [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"],\n    \"monero\": [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"],\n    \"napster\": [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\n    \"neos\": [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"],\n    \"nimblr\": [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"],\n    \"node\": [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"],\n    \"node-js\": [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\n    \"npm\": [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"],\n    \"ns8\": [640, 512, [], \"f3d5\", \"M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z\"],\n    \"nutritionix\": [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],\n    \"odnoklassniki\": [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"],\n    \"odnoklassniki-square\": [448, 512, [], \"f264\", \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"],\n    \"old-republic\": [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"],\n    \"opencart\": [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],\n    \"openid\": [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"],\n    \"opera\": [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\n    \"optin-monster\": [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"],\n    \"osi\": [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\n    \"page4\": [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],\n    \"pagelines\": [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],\n    \"palfed\": [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"],\n    \"patreon\": [512, 512, [], \"f3d9\", \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"],\n    \"paypal\": [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],\n    \"penny-arcade\": [640, 512, [], \"f704\", \"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"],\n    \"periscope\": [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],\n    \"phabricator\": [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"],\n    \"phoenix-framework\": [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],\n    \"phoenix-squadron\": [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"],\n    \"php\": [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"],\n    \"pied-piper\": [448, 512, [], \"f2ae\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\n    \"pied-piper-alt\": [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\n    \"pied-piper-hat\": [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\n    \"pied-piper-pp\": [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],\n    \"pinterest\": [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"],\n    \"pinterest-p\": [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"],\n    \"pinterest-square\": [448, 512, [], \"f0d3\", \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"],\n    \"playstation\": [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],\n    \"product-hunt\": [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"],\n    \"pushed\": [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\n    \"python\": [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"],\n    \"qq\": [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"],\n    \"quinscape\": [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"],\n    \"quora\": [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"],\n    \"r-project\": [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"],\n    \"raspberry-pi\": [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],\n    \"ravelry\": [512, 512, [], \"f2d9\", \"M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z\"],\n    \"react\": [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"],\n    \"reacteurope\": [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"],\n    \"readme\": [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"],\n    \"rebel\": [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"],\n    \"red-river\": [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"],\n    \"reddit\": [512, 512, [], \"f1a1\", \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"],\n    \"reddit-alien\": [512, 512, [], \"f281\", \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"],\n    \"reddit-square\": [448, 512, [], \"f1a2\", \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"],\n    \"redhat\": [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"],\n    \"renren\": [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],\n    \"replyd\": [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"],\n    \"researchgate\": [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],\n    \"resolving\": [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],\n    \"rev\": [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"],\n    \"rocketchat\": [576, 512, [], \"f3e8\", \"M486.41 107.57c-76.93-50.83-179.18-62.4-264.12-47.07C127.26-31.16 20.77 11 0 23.12c0 0 73.08 62.1 61.21 116.49-86.52 88.2-45.39 186.4 0 232.77C73.08 426.77 0 488.87 0 488.87c20.57 12.16 126.77 54.19 222.29-37 84.75 15.23 187 3.76 264.12-47.16 119.26-76.14 119.65-220.61 0-297.15zM294.18 404.22a339.53 339.53 0 0 1-88.11-11.37l-19.77 19.09a179.74 179.74 0 0 1-36.59 27.39A143.14 143.14 0 0 1 98 454.06c1-1.78 1.88-3.56 2.77-5.24q29.67-55 16-98.69c-32.53-25.61-52-58.34-52-94.13 0-82 102.74-148.43 229.41-148.43S523.59 174 523.59 256 420.85 404.22 294.18 404.22zM184.12 291.3a34.32 34.32 0 0 1-34.8-33.72c-.7-45.39 67.83-46.38 68.52-1.09v.51a34 34 0 0 1-33.72 34.32zm73.77-33.72c-.79-45.39 67.74-46.48 68.53-1.19v.61c.39 45.08-67.74 45.57-68.53.58zm143.38 33.72a34.33 34.33 0 0 1-34.81-33.72c-.69-45.39 67.84-46.38 68.53-1.09v.51a33.89 33.89 0 0 1-33.72 34.32z\"],\n    \"rockrms\": [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"],\n    \"safari\": [512, 512, [], \"f267\", \"M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z\"],\n    \"salesforce\": [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"],\n    \"sass\": [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"],\n    \"schlix\": [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\n    \"scribd\": [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],\n    \"searchengin\": [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],\n    \"sellcast\": [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\n    \"sellsy\": [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"],\n    \"servicestack\": [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"],\n    \"shirtsinbulk\": [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"],\n    \"shopware\": [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"],\n    \"simplybuilt\": [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"],\n    \"sistrix\": [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"],\n    \"sith\": [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"],\n    \"sketch\": [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"],\n    \"skyatlas\": [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\n    \"skype\": [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],\n    \"slack\": [448, 512, [], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"],\n    \"slack-hash\": [448, 512, [], \"f3ef\", \"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"],\n    \"slideshare\": [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"],\n    \"snapchat\": [496, 512, [], \"f2ab\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"],\n    \"snapchat-ghost\": [512, 512, [], \"f2ac\", \"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"],\n    \"snapchat-square\": [448, 512, [], \"f2ad\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"],\n    \"soundcloud\": [640, 512, [], \"f1be\", \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"],\n    \"sourcetree\": [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\n    \"speakap\": [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"],\n    \"speaker-deck\": [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"],\n    \"spotify\": [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\n    \"squarespace\": [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"],\n    \"stack-exchange\": [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"],\n    \"stack-overflow\": [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"],\n    \"stackpath\": [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"],\n    \"staylinked\": [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"],\n    \"steam\": [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"],\n    \"steam-square\": [448, 512, [], \"f1b7\", \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"],\n    \"steam-symbol\": [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"],\n    \"sticker-mule\": [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\n    \"strava\": [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"],\n    \"stripe\": [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"],\n    \"stripe-s\": [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],\n    \"studiovinari\": [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\n    \"stumbleupon\": [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"],\n    \"stumbleupon-circle\": [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"],\n    \"superpowers\": [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],\n    \"supple\": [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"],\n    \"suse\": [640, 512, [], \"f7d6\", \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"],\n    \"symfony\": [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"],\n    \"teamspeak\": [512, 512, [], \"f4f9\", \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"],\n    \"telegram\": [496, 512, [], \"f2c6\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"],\n    \"telegram-plane\": [448, 512, [], \"f3fe\", \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"],\n    \"tencent-weibo\": [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"],\n    \"the-red-yeti\": [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"],\n    \"themeco\": [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"],\n    \"themeisle\": [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"],\n    \"think-peaks\": [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"],\n    \"trade-federation\": [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"],\n    \"trello\": [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"],\n    \"tripadvisor\": [576, 512, [], \"f262\", \"M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z\"],\n    \"tumblr\": [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],\n    \"tumblr-square\": [448, 512, [], \"f174\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"],\n    \"twitch\": [448, 512, [], \"f1e8\", \"M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z\"],\n    \"twitter\": [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"],\n    \"twitter-square\": [448, 512, [], \"f081\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"],\n    \"typo3\": [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\n    \"uber\": [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"],\n    \"ubuntu\": [496, 512, [], \"f7df\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"],\n    \"uikit\": [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"],\n    \"uniregistry\": [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"],\n    \"untappd\": [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],\n    \"ups\": [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],\n    \"usb\": [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"],\n    \"usps\": [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"],\n    \"ussunnah\": [512, 512, [], \"f407\", \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"],\n    \"vaadin\": [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],\n    \"viacoin\": [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"],\n    \"viadeo\": [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],\n    \"viadeo-square\": [448, 512, [], \"f2aa\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"],\n    \"viber\": [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],\n    \"vimeo\": [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"],\n    \"vimeo-square\": [448, 512, [], \"f194\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"],\n    \"vimeo-v\": [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],\n    \"vine\": [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\n    \"vk\": [576, 512, [], \"f189\", \"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"],\n    \"vnv\": [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"],\n    \"vuejs\": [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"],\n    \"waze\": [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"],\n    \"weebly\": [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"],\n    \"weibo\": [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],\n    \"weixin\": [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"],\n    \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"],\n    \"whatsapp-square\": [448, 512, [], \"f40c\", \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"],\n    \"whmcs\": [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],\n    \"wikipedia-w\": [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"],\n    \"windows\": [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"],\n    \"wix\": [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"],\n    \"wizards-of-the-coast\": [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"],\n    \"wolf-pack-battalion\": [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"],\n    \"wordpress\": [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"],\n    \"wordpress-simple\": [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],\n    \"wpbeginner\": [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"],\n    \"wpexplorer\": [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],\n    \"wpforms\": [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"],\n    \"wpressr\": [496, 512, [], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"],\n    \"xbox\": [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],\n    \"xing\": [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"],\n    \"xing-square\": [448, 512, [], \"f169\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"],\n    \"y-combinator\": [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"],\n    \"yahoo\": [448, 512, [], \"f19e\", \"M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z\"],\n    \"yammer\": [512, 512, [], \"f840\", \"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"],\n    \"yandex\": [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"],\n    \"yandex-international\": [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"],\n    \"yarn\": [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\n    \"yelp\": [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"],\n    \"yoast\": [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"],\n    \"youtube\": [576, 512, [], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"],\n    \"youtube-square\": [448, 512, [], \"f431\", \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"],\n    \"zhihu\": [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fab', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"address-book\": [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"],\n    \"address-card\": [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"],\n    \"angry\": [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"],\n    \"arrow-alt-circle-down\": [512, 512, [], \"f358\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"],\n    \"arrow-alt-circle-left\": [512, 512, [], \"f359\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"],\n    \"arrow-alt-circle-right\": [512, 512, [], \"f35a\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"],\n    \"arrow-alt-circle-up\": [512, 512, [], \"f35b\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"],\n    \"bell\": [448, 512, [], \"f0f3\", \"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bell-slash\": [640, 512, [], \"f1f6\", \"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bookmark\": [384, 512, [], \"f02e\", \"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"],\n    \"building\": [448, 512, [], \"f1ad\", \"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"],\n    \"calendar\": [448, 512, [], \"f133\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"],\n    \"calendar-alt\": [448, 512, [], \"f073\", \"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-times\": [448, 512, [], \"f273\", \"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-down\": [448, 512, [], \"f150\", \"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-left\": [448, 512, [], \"f191\", \"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-right\": [448, 512, [], \"f152\", \"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-up\": [448, 512, [], \"f151\", \"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"chart-bar\": [512, 512, [], \"f080\", \"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"],\n    \"check-circle\": [512, 512, [], \"f058\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"],\n    \"check-square\": [448, 512, [], \"f14a\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"],\n    \"circle\": [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"],\n    \"clipboard\": [384, 512, [], \"f328\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"],\n    \"clock\": [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"],\n    \"closed-captioning\": [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"],\n    \"comment\": [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"],\n    \"comment-alt\": [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"],\n    \"comment-dots\": [512, 512, [], \"f4ad\", \"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"],\n    \"comments\": [576, 512, [], \"f086\", \"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"],\n    \"compass\": [496, 512, [], \"f14e\", \"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"],\n    \"copy\": [448, 512, [], \"f0c5\", \"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"],\n    \"copyright\": [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"],\n    \"credit-card\": [576, 512, [], \"f09d\", \"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"],\n    \"dizzy\": [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"],\n    \"dot-circle\": [512, 512, [], \"f192\", \"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"],\n    \"edit\": [576, 512, [], \"f044\", \"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"],\n    \"envelope\": [512, 512, [], \"f0e0\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"],\n    \"envelope-open\": [512, 512, [], \"f2b6\", \"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"],\n    \"eye\": [576, 512, [], \"f06e\", \"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"],\n    \"file\": [384, 512, [], \"f15b\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"],\n    \"file-alt\": [384, 512, [], \"f15c\", \"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"],\n    \"file-archive\": [384, 512, [], \"f1c6\", \"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"],\n    \"file-image\": [384, 512, [], \"f1c5\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"],\n    \"flag\": [512, 512, [], \"f024\", \"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"],\n    \"flushed\": [496, 512, [], \"f579\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"folder\": [512, 512, [], \"f07b\", \"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"],\n    \"folder-open\": [576, 512, [], \"f07c\", \"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"frown\": [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"],\n    \"frown-open\": [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"],\n    \"futbol\": [496, 512, [], \"f1e3\", \"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"],\n    \"gem\": [576, 512, [], \"f3a5\", \"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"],\n    \"grimace\": [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"],\n    \"grin\": [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"grin-alt\": [496, 512, [], \"f581\", \"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"],\n    \"grin-beam\": [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"],\n    \"grin-beam-sweat\": [496, 512, [], \"f583\", \"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"],\n    \"grin-hearts\": [496, 512, [], \"f584\", \"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"],\n    \"grin-squint\": [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"],\n    \"grin-squint-tears\": [512, 512, [], \"f586\", \"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"],\n    \"grin-stars\": [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"],\n    \"grin-tears\": [640, 512, [], \"f588\", \"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"],\n    \"grin-tongue\": [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"grin-tongue-squint\": [496, 512, [], \"f58a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"],\n    \"grin-tongue-wink\": [496, 512, [], \"f58b\", \"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"],\n    \"grin-wink\": [496, 512, [], \"f58c\", \"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"],\n    \"hand-lizard\": [576, 512, [], \"f258\", \"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"],\n    \"hand-paper\": [448, 512, [], \"f256\", \"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"],\n    \"hand-peace\": [448, 512, [], \"f25b\", \"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"],\n    \"hand-point-down\": [448, 512, [], \"f0a7\", \"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"],\n    \"hand-point-up\": [448, 512, [], \"f0a6\", \"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"],\n    \"hand-rock\": [512, 512, [], \"f255\", \"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"],\n    \"hand-spock\": [512, 512, [], \"f259\", \"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"],\n    \"hdd\": [576, 512, [], \"f0a0\", \"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"],\n    \"heart\": [512, 512, [], \"f004\", \"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"],\n    \"hospital\": [448, 512, [], \"f0f8\", \"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"],\n    \"hourglass\": [384, 512, [], \"f254\", \"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"],\n    \"id-card\": [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"],\n    \"images\": [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"],\n    \"keyboard\": [576, 512, [], \"f11c\", \"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"],\n    \"kiss\": [496, 512, [], \"f596\", \"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"kiss-beam\": [496, 512, [], \"f597\", \"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"],\n    \"kiss-wink-heart\": [504, 512, [], \"f598\", \"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"],\n    \"laugh\": [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-beam\": [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-squint\": [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-wink\": [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"lemon\": [512, 512, [], \"f094\", \"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"],\n    \"lightbulb\": [352, 512, [], \"f0eb\", \"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"],\n    \"list-alt\": [512, 512, [], \"f022\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"],\n    \"map\": [576, 512, [], \"f279\", \"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"],\n    \"meh\": [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"meh-blank\": [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"meh-rolling-eyes\": [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"minus-square\": [448, 512, [], \"f146\", \"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"money-bill-alt\": [640, 512, [], \"f3d1\", \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"],\n    \"moon\": [512, 512, [], \"f186\", \"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"],\n    \"newspaper\": [576, 512, [], \"f1ea\", \"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"],\n    \"object-group\": [512, 512, [], \"f247\", \"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"],\n    \"object-ungroup\": [576, 512, [], \"f248\", \"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"],\n    \"paper-plane\": [512, 512, [], \"f1d8\", \"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"],\n    \"pause-circle\": [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"],\n    \"play-circle\": [512, 512, [], \"f144\", \"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"],\n    \"plus-square\": [448, 512, [], \"f0fe\", \"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"question-circle\": [512, 512, [], \"f059\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"],\n    \"registered\": [512, 512, [], \"f25d\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"],\n    \"sad-cry\": [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"],\n    \"sad-tear\": [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"],\n    \"save\": [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"],\n    \"share-square\": [576, 512, [], \"f14d\", \"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"],\n    \"smile\": [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"],\n    \"smile-beam\": [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"],\n    \"smile-wink\": [496, 512, [], \"f4da\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"],\n    \"snowflake\": [448, 512, [], \"f2dc\", \"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"],\n    \"square\": [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"],\n    \"star\": [576, 512, [], \"f005\", \"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"],\n    \"star-half\": [576, 512, [], \"f089\", \"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"],\n    \"sticky-note\": [448, 512, [], \"f249\", \"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"],\n    \"stop-circle\": [512, 512, [], \"f28d\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"],\n    \"sun\": [512, 512, [], \"f185\", \"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"],\n    \"surprise\": [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"thumbs-down\": [512, 512, [], \"f165\", \"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"],\n    \"thumbs-up\": [512, 512, [], \"f164\", \"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"],\n    \"times-circle\": [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"],\n    \"tired\": [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"],\n    \"trash-alt\": [448, 512, [], \"f2ed\", \"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"],\n    \"user\": [448, 512, [], \"f007\", \"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"],\n    \"user-circle\": [496, 512, [], \"f2bd\", \"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"],\n    \"window-close\": [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"],\n    \"window-maximize\": [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"],\n    \"window-minimize\": [512, 512, [], \"f2d1\", \"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"]\n  };\n\n  bunker(function () {\n    defineIcons('far', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"ad\": [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"],\n    \"address-book\": [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"address-card\": [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"],\n    \"adjust\": [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"],\n    \"air-freshener\": [384, 512, [], \"f5d0\", \"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z\"],\n    \"align-center\": [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"],\n    \"align-justify\": [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"align-left\": [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"align-right\": [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"],\n    \"allergies\": [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"ambulance\": [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"american-sign-language-interpreting\": [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"],\n    \"anchor\": [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"],\n    \"angle-double-down\": [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"],\n    \"angle-double-left\": [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"],\n    \"angle-double-right\": [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"],\n    \"angle-double-up\": [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"],\n    \"angle-down\": [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"],\n    \"angle-left\": [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"],\n    \"angle-right\": [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"],\n    \"angle-up\": [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"],\n    \"angry\": [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"],\n    \"ankh\": [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"],\n    \"apple-alt\": [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"],\n    \"archive\": [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"],\n    \"archway\": [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"],\n    \"arrow-alt-circle-down\": [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"],\n    \"arrow-alt-circle-left\": [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"],\n    \"arrow-alt-circle-right\": [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"],\n    \"arrow-alt-circle-up\": [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"],\n    \"arrow-circle-down\": [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"],\n    \"arrow-circle-left\": [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"],\n    \"arrow-circle-right\": [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"],\n    \"arrow-circle-up\": [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"],\n    \"arrow-down\": [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"],\n    \"arrow-left\": [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"],\n    \"arrow-right\": [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"],\n    \"arrow-up\": [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"],\n    \"arrows-alt\": [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"],\n    \"arrows-alt-h\": [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"],\n    \"arrows-alt-v\": [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"],\n    \"assistive-listening-systems\": [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"],\n    \"asterisk\": [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"],\n    \"at\": [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"],\n    \"atlas\": [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"],\n    \"atom\": [448, 512, [], \"f5d2\", \"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"audio-description\": [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"],\n    \"award\": [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"],\n    \"baby\": [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"],\n    \"baby-carriage\": [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"],\n    \"backspace\": [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"],\n    \"backward\": [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"],\n    \"bacon\": [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"],\n    \"balance-scale\": [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"balance-scale-left\": [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"],\n    \"balance-scale-right\": [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"],\n    \"ban\": [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"],\n    \"band-aid\": [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"],\n    \"barcode\": [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"],\n    \"bars\": [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"],\n    \"baseball-ball\": [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"],\n    \"basketball-ball\": [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"],\n    \"bath\": [512, 512, [], \"f2cd\", \"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"],\n    \"battery-empty\": [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"],\n    \"battery-full\": [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"],\n    \"battery-half\": [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"],\n    \"battery-quarter\": [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"],\n    \"battery-three-quarters\": [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"],\n    \"bed\": [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"],\n    \"beer\": [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"],\n    \"bell\": [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"],\n    \"bell-slash\": [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bezier-curve\": [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"bible\": [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"bicycle\": [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"],\n    \"biking\": [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"],\n    \"binoculars\": [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"],\n    \"biohazard\": [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"birthday-cake\": [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"],\n    \"blender\": [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"],\n    \"blender-phone\": [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"blind\": [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"],\n    \"blog\": [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"],\n    \"bold\": [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"],\n    \"bolt\": [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"],\n    \"bomb\": [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"],\n    \"bone\": [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"],\n    \"bong\": [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"],\n    \"book\": [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"],\n    \"book-dead\": [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"],\n    \"book-medical\": [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"],\n    \"book-open\": [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"],\n    \"book-reader\": [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"],\n    \"bookmark\": [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"],\n    \"border-all\": [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"],\n    \"border-none\": [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"border-style\": [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"bowling-ball\": [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"box\": [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"],\n    \"box-open\": [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"],\n    \"boxes\": [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"],\n    \"braille\": [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"],\n    \"brain\": [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"],\n    \"bread-slice\": [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"],\n    \"briefcase\": [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"],\n    \"briefcase-medical\": [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"],\n    \"broadcast-tower\": [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"],\n    \"broom\": [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"],\n    \"brush\": [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"],\n    \"bug\": [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"],\n    \"building\": [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"],\n    \"bullhorn\": [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"],\n    \"bullseye\": [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"],\n    \"burn\": [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"],\n    \"bus\": [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"bus-alt\": [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"business-time\": [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"],\n    \"calculator\": [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"],\n    \"calendar\": [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"],\n    \"calendar-alt\": [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"],\n    \"calendar-day\": [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"],\n    \"calendar-times\": [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"],\n    \"calendar-week\": [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"camera\": [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"],\n    \"camera-retro\": [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"],\n    \"campground\": [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"],\n    \"candy-cane\": [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"],\n    \"cannabis\": [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"],\n    \"capsules\": [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"],\n    \"car\": [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"],\n    \"car-alt\": [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"],\n    \"car-battery\": [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"],\n    \"car-crash\": [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"],\n    \"car-side\": [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"],\n    \"caret-down\": [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"],\n    \"caret-left\": [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"],\n    \"caret-right\": [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"],\n    \"caret-square-down\": [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"],\n    \"caret-square-left\": [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"],\n    \"caret-square-right\": [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"],\n    \"caret-square-up\": [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"],\n    \"caret-up\": [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"],\n    \"carrot\": [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"],\n    \"cart-arrow-down\": [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"],\n    \"cart-plus\": [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"],\n    \"cash-register\": [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"],\n    \"cat\": [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"certificate\": [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"],\n    \"chair\": [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"],\n    \"chalkboard\": [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"chalkboard-teacher\": [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"],\n    \"charging-station\": [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"],\n    \"chart-area\": [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"],\n    \"chart-bar\": [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"chart-line\": [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"],\n    \"chart-pie\": [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"],\n    \"check\": [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"],\n    \"check-circle\": [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"],\n    \"check-double\": [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"],\n    \"check-square\": [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"],\n    \"cheese\": [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"],\n    \"chess\": [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"],\n    \"chess-bishop\": [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-board\": [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"],\n    \"chess-king\": [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"],\n    \"chess-knight\": [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-pawn\": [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-queen\": [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"],\n    \"chess-rook\": [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chevron-circle-down\": [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"],\n    \"chevron-circle-left\": [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"],\n    \"chevron-circle-right\": [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"],\n    \"chevron-circle-up\": [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"],\n    \"chevron-down\": [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"],\n    \"chevron-left\": [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"],\n    \"chevron-right\": [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"],\n    \"chevron-up\": [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"],\n    \"child\": [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"],\n    \"church\": [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"],\n    \"circle\": [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"],\n    \"circle-notch\": [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"],\n    \"city\": [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"],\n    \"clinic-medical\": [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"],\n    \"clipboard\": [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"],\n    \"clipboard-check\": [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"],\n    \"clipboard-list\": [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"],\n    \"clock\": [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"],\n    \"closed-captioning\": [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"],\n    \"cloud\": [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"],\n    \"cloud-download-alt\": [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"],\n    \"cloud-meatball\": [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"],\n    \"cloud-moon\": [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"],\n    \"cloud-moon-rain\": [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"],\n    \"cloud-rain\": [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"],\n    \"cloud-showers-heavy\": [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"],\n    \"cloud-sun\": [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"],\n    \"cloud-sun-rain\": [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"],\n    \"cloud-upload-alt\": [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"],\n    \"cocktail\": [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"],\n    \"code\": [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"],\n    \"code-branch\": [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"],\n    \"coffee\": [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"],\n    \"cog\": [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"cogs\": [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"],\n    \"coins\": [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"],\n    \"columns\": [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"],\n    \"comment\": [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"],\n    \"comment-alt\": [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"],\n    \"comment-dollar\": [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"],\n    \"comment-dots\": [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"comment-medical\": [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"],\n    \"comment-slash\": [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"],\n    \"comments\": [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"],\n    \"comments-dollar\": [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"],\n    \"compact-disc\": [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"compass\": [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"],\n    \"compress\": [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"],\n    \"compress-arrows-alt\": [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"],\n    \"concierge-bell\": [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"cookie\": [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"cookie-bite\": [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"copy\": [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"],\n    \"copyright\": [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"],\n    \"couch\": [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"],\n    \"credit-card\": [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"],\n    \"crop\": [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"crop-alt\": [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"],\n    \"cross\": [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"crosshairs\": [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"],\n    \"crow\": [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"crown\": [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"],\n    \"crutch\": [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"],\n    \"cube\": [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"],\n    \"cubes\": [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"],\n    \"cut\": [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"],\n    \"database\": [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"],\n    \"deaf\": [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"],\n    \"democrat\": [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"],\n    \"desktop\": [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"],\n    \"dharmachakra\": [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"],\n    \"diagnoses\": [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"dice\": [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"dice-d20\": [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"],\n    \"dice-d6\": [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"],\n    \"dice-five\": [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-four\": [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-one\": [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-six\": [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-three\": [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-two\": [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"digital-tachograph\": [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"],\n    \"directions\": [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"],\n    \"divide\": [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"dizzy\": [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"],\n    \"dna\": [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"],\n    \"dog\": [512, 512, [], \"f6d3\", \"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z\"],\n    \"dollar-sign\": [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"],\n    \"dolly\": [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"dolly-flatbed\": [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"donate\": [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"],\n    \"door-closed\": [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"],\n    \"door-open\": [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"],\n    \"dot-circle\": [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"],\n    \"dove\": [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"download\": [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"],\n    \"drafting-compass\": [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"],\n    \"dragon\": [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"],\n    \"draw-polygon\": [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"],\n    \"drum\": [576, 512, [], \"f569\", \"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z\"],\n    \"drum-steelpan\": [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"],\n    \"drumstick-bite\": [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"],\n    \"dumbbell\": [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"],\n    \"dumpster\": [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"dumpster-fire\": [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"],\n    \"dungeon\": [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"],\n    \"edit\": [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"],\n    \"egg\": [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"],\n    \"eject\": [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"],\n    \"ellipsis-h\": [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"],\n    \"ellipsis-v\": [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"],\n    \"envelope\": [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"],\n    \"envelope-open\": [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"],\n    \"envelope-open-text\": [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"],\n    \"envelope-square\": [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"],\n    \"equals\": [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"eraser\": [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"],\n    \"ethernet\": [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"],\n    \"euro-sign\": [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"],\n    \"exchange-alt\": [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"],\n    \"exclamation\": [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"],\n    \"exclamation-circle\": [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"],\n    \"exclamation-triangle\": [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"],\n    \"expand\": [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"],\n    \"expand-arrows-alt\": [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"],\n    \"external-link-alt\": [576, 512, [], \"f35d\", \"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z\"],\n    \"external-link-square-alt\": [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"],\n    \"eye\": [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"],\n    \"eye-dropper\": [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"],\n    \"fan\": [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"],\n    \"fast-backward\": [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"],\n    \"fast-forward\": [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"],\n    \"fax\": [512, 512, [], \"f1ac\", \"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z\"],\n    \"feather\": [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"],\n    \"feather-alt\": [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"],\n    \"female\": [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"],\n    \"fighter-jet\": [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"],\n    \"file\": [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-alt\": [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-archive\": [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"],\n    \"file-contract\": [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-csv\": [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-download\": [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-export\": [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"],\n    \"file-image\": [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"],\n    \"file-import\": [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"],\n    \"file-invoice\": [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"],\n    \"file-invoice-dollar\": [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"],\n    \"file-medical\": [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"],\n    \"file-medical-alt\": [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"],\n    \"file-prescription\": [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-signature\": [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"],\n    \"file-upload\": [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"fill\": [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"],\n    \"fill-drip\": [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"],\n    \"film\": [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"],\n    \"filter\": [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"],\n    \"fingerprint\": [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"],\n    \"fire\": [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"],\n    \"fire-alt\": [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"],\n    \"fire-extinguisher\": [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"],\n    \"first-aid\": [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"fish\": [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"],\n    \"fist-raised\": [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"],\n    \"flag\": [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"],\n    \"flag-checkered\": [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"],\n    \"flag-usa\": [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"],\n    \"flask\": [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"],\n    \"flushed\": [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"],\n    \"folder\": [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"],\n    \"folder-minus\": [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"],\n    \"folder-open\": [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"],\n    \"folder-plus\": [512, 512, [], \"f65e\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z\"],\n    \"font\": [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"football-ball\": [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"],\n    \"forward\": [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"],\n    \"frog\": [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"],\n    \"frown\": [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"],\n    \"frown-open\": [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"funnel-dollar\": [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"],\n    \"futbol\": [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"],\n    \"gamepad\": [640, 512, [], \"f11b\", \"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"gas-pump\": [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"],\n    \"gavel\": [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"],\n    \"gem\": [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"],\n    \"genderless\": [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"],\n    \"ghost\": [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"gift\": [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"],\n    \"gifts\": [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"],\n    \"glass-cheers\": [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"],\n    \"glass-martini\": [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"],\n    \"glass-martini-alt\": [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"],\n    \"glass-whiskey\": [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"],\n    \"glasses\": [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"],\n    \"globe\": [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"],\n    \"globe-africa\": [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"],\n    \"globe-americas\": [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"],\n    \"globe-asia\": [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"],\n    \"globe-europe\": [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"],\n    \"golf-ball\": [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"],\n    \"gopuram\": [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"],\n    \"graduation-cap\": [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"],\n    \"greater-than\": [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"],\n    \"greater-than-equal\": [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"grimace\": [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"],\n    \"grin\": [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-alt\": [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-beam\": [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-beam-sweat\": [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-hearts\": [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"],\n    \"grin-squint\": [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-squint-tears\": [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"],\n    \"grin-stars\": [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"],\n    \"grin-tears\": [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-tongue\": [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"],\n    \"grin-tongue-squint\": [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"],\n    \"grin-tongue-wink\": [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"],\n    \"grin-wink\": [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"],\n    \"grip-horizontal\": [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"grip-lines\": [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"grip-lines-vertical\": [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"],\n    \"grip-vertical\": [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"guitar\": [512, 512, [], \"f7a6\", \"M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"h-square\": [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"],\n    \"hamburger\": [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"],\n    \"hammer\": [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"],\n    \"hamsa\": [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"hand-holding\": [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"],\n    \"hand-holding-heart\": [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"],\n    \"hand-holding-usd\": [544, 512, [], \"f4c0\", \"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z\"],\n    \"hand-lizard\": [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"],\n    \"hand-middle-finger\": [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"],\n    \"hand-paper\": [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"],\n    \"hand-peace\": [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"],\n    \"hand-point-down\": [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"],\n    \"hand-point-up\": [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"],\n    \"hand-rock\": [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"],\n    \"hand-spock\": [512, 512, [], \"f259\", \"M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z\"],\n    \"hands\": [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"],\n    \"hands-helping\": [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"],\n    \"hanukiah\": [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"],\n    \"hard-hat\": [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"hashtag\": [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"],\n    \"hat-wizard\": [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"],\n    \"haykal\": [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"],\n    \"hdd\": [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"],\n    \"heading\": [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"],\n    \"headphones\": [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"],\n    \"headphones-alt\": [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"],\n    \"headset\": [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"],\n    \"heart\": [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"],\n    \"heart-broken\": [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"],\n    \"heartbeat\": [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"],\n    \"helicopter\": [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"],\n    \"highlighter\": [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"],\n    \"hiking\": [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"],\n    \"hippo\": [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"history\": [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"],\n    \"hockey-puck\": [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"],\n    \"holly-berry\": [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"],\n    \"home\": [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"],\n    \"horse\": [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"horse-head\": [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"],\n    \"hospital\": [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"],\n    \"hospital-alt\": [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"],\n    \"hospital-symbol\": [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"],\n    \"hot-tub\": [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"],\n    \"hotdog\": [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"],\n    \"hotel\": [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"],\n    \"hourglass\": [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"],\n    \"hourglass-end\": [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"],\n    \"hourglass-half\": [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"],\n    \"hourglass-start\": [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"],\n    \"house-damage\": [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"],\n    \"hryvnia\": [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"],\n    \"i-cursor\": [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"],\n    \"ice-cream\": [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"],\n    \"icicles\": [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"],\n    \"icons\": [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"id-card\": [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"],\n    \"id-card-alt\": [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"],\n    \"igloo\": [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"],\n    \"images\": [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"],\n    \"inbox\": [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"],\n    \"indent\": [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"industry\": [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"],\n    \"infinity\": [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"],\n    \"info\": [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"],\n    \"info-circle\": [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"],\n    \"italic\": [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"],\n    \"jedi\": [544, 512, [], \"f669\", \"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z\"],\n    \"joint\": [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"],\n    \"journal-whills\": [448, 512, [], \"f66a\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"kaaba\": [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"],\n    \"key\": [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"],\n    \"keyboard\": [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"],\n    \"khanda\": [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"],\n    \"kiss\": [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"kiss-beam\": [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"],\n    \"kiss-wink-heart\": [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"],\n    \"kiwi-bird\": [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"],\n    \"landmark\": [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"language\": [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"],\n    \"laptop\": [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"],\n    \"laptop-code\": [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"],\n    \"laptop-medical\": [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"],\n    \"laugh\": [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"],\n    \"laugh-beam\": [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"laugh-squint\": [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"laugh-wink\": [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"layer-group\": [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"],\n    \"leaf\": [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"],\n    \"lemon\": [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"],\n    \"less-than\": [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"],\n    \"less-than-equal\": [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"level-down-alt\": [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"],\n    \"level-up-alt\": [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"],\n    \"lightbulb\": [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"],\n    \"link\": [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"],\n    \"lira-sign\": [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"],\n    \"list\": [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"list-alt\": [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"],\n    \"list-ol\": [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"],\n    \"list-ul\": [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"location-arrow\": [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"],\n    \"lock\": [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"],\n    \"lock-open\": [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"],\n    \"long-arrow-alt-down\": [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"],\n    \"long-arrow-alt-left\": [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"],\n    \"long-arrow-alt-right\": [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"],\n    \"long-arrow-alt-up\": [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"],\n    \"low-vision\": [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"],\n    \"luggage-cart\": [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"],\n    \"magic\": [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"],\n    \"magnet\": [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"],\n    \"mail-bulk\": [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"],\n    \"male\": [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"],\n    \"map\": [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marked\": [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marked-alt\": [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marker\": [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"],\n    \"map-marker-alt\": [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"],\n    \"map-pin\": [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"],\n    \"map-signs\": [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"],\n    \"marker\": [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"],\n    \"mars\": [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"mars-double\": [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"],\n    \"mars-stroke\": [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"mars-stroke-h\": [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"],\n    \"mars-stroke-v\": [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"],\n    \"mask\": [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"],\n    \"medal\": [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"],\n    \"medkit\": [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"],\n    \"meh\": [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"meh-blank\": [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"meh-rolling-eyes\": [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"],\n    \"memory\": [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"],\n    \"menorah\": [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"],\n    \"mercury\": [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"],\n    \"meteor\": [512, 512, [], \"f753\", \"M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z\"],\n    \"microchip\": [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"],\n    \"microphone\": [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"],\n    \"microphone-alt\": [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"],\n    \"microphone-alt-slash\": [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"],\n    \"microphone-slash\": [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"],\n    \"microscope\": [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"],\n    \"minus\": [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"minus-circle\": [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"],\n    \"minus-square\": [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"],\n    \"mitten\": [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"],\n    \"mobile\": [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"mobile-alt\": [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"],\n    \"money-bill\": [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"],\n    \"money-bill-alt\": [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"],\n    \"money-bill-wave\": [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"],\n    \"money-bill-wave-alt\": [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"],\n    \"money-check\": [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"],\n    \"money-check-alt\": [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"],\n    \"monument\": [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"],\n    \"moon\": [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"],\n    \"mortar-pestle\": [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"mosque\": [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"],\n    \"motorcycle\": [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"],\n    \"mountain\": [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"],\n    \"mouse-pointer\": [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"],\n    \"mug-hot\": [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n    \"music\": [512, 512, [], \"f001\", \"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z\"],\n    \"network-wired\": [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"],\n    \"neuter\": [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"newspaper\": [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"],\n    \"not-equal\": [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"],\n    \"notes-medical\": [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"],\n    \"object-group\": [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"],\n    \"object-ungroup\": [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"],\n    \"oil-can\": [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"],\n    \"om\": [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"],\n    \"otter\": [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"],\n    \"outdent\": [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"pager\": [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"],\n    \"paint-brush\": [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"],\n    \"paint-roller\": [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"],\n    \"palette\": [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"pallet\": [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"],\n    \"paper-plane\": [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"],\n    \"paperclip\": [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"],\n    \"parachute-box\": [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"],\n    \"paragraph\": [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"],\n    \"parking\": [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"],\n    \"passport\": [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"],\n    \"pastafarianism\": [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"],\n    \"paste\": [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"],\n    \"pause\": [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"],\n    \"pause-circle\": [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"],\n    \"paw\": [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"],\n    \"peace\": [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"],\n    \"pen\": [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"],\n    \"pen-alt\": [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"],\n    \"pen-fancy\": [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"],\n    \"pen-nib\": [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"],\n    \"pen-square\": [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"],\n    \"pencil-alt\": [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"],\n    \"pencil-ruler\": [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"],\n    \"people-carry\": [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"],\n    \"pepper-hot\": [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"],\n    \"percent\": [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"],\n    \"percentage\": [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"],\n    \"person-booth\": [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"],\n    \"phone\": [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"],\n    \"phone-alt\": [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"],\n    \"phone-slash\": [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"],\n    \"phone-square\": [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"],\n    \"phone-square-alt\": [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"],\n    \"phone-volume\": [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"],\n    \"photo-video\": [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"],\n    \"piggy-bank\": [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"],\n    \"pills\": [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"],\n    \"pizza-slice\": [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"],\n    \"place-of-worship\": [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"],\n    \"plane\": [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"],\n    \"plane-arrival\": [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"],\n    \"plane-departure\": [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"],\n    \"play\": [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"],\n    \"play-circle\": [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"],\n    \"plug\": [384, 512, [], \"f1e6\", \"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\"],\n    \"plus\": [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"plus-circle\": [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"],\n    \"plus-square\": [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"],\n    \"podcast\": [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"],\n    \"poll\": [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"],\n    \"poll-h\": [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"],\n    \"poo\": [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"poo-storm\": [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"],\n    \"poop\": [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"],\n    \"portrait\": [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"pound-sign\": [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"],\n    \"power-off\": [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"],\n    \"pray\": [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"],\n    \"praying-hands\": [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"],\n    \"prescription\": [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"],\n    \"prescription-bottle\": [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"],\n    \"prescription-bottle-alt\": [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"],\n    \"print\": [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"procedures\": [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n    \"project-diagram\": [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"],\n    \"puzzle-piece\": [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"],\n    \"qrcode\": [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"],\n    \"question\": [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"],\n    \"question-circle\": [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"],\n    \"quidditch\": [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"],\n    \"quote-left\": [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"],\n    \"quote-right\": [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"],\n    \"quran\": [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"radiation\": [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"],\n    \"radiation-alt\": [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"rainbow\": [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"],\n    \"random\": [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"],\n    \"receipt\": [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"],\n    \"recycle\": [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"],\n    \"redo\": [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"],\n    \"redo-alt\": [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"],\n    \"registered\": [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"],\n    \"remove-format\": [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"],\n    \"reply\": [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"],\n    \"reply-all\": [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"],\n    \"republican\": [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"],\n    \"restroom\": [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"],\n    \"retweet\": [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"],\n    \"ribbon\": [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"],\n    \"ring\": [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"],\n    \"road\": [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"],\n    \"robot\": [640, 512, [], \"f544\", \"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z\"],\n    \"rocket\": [512, 512, [], \"f135\", \"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"],\n    \"route\": [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"rss\": [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"],\n    \"rss-square\": [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"],\n    \"ruble-sign\": [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"],\n    \"ruler\": [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"],\n    \"ruler-combined\": [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"ruler-horizontal\": [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"],\n    \"ruler-vertical\": [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"],\n    \"running\": [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"],\n    \"rupee-sign\": [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"],\n    \"sad-cry\": [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"],\n    \"sad-tear\": [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"],\n    \"satellite\": [512, 512, [], \"f7bf\", \"M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z\"],\n    \"satellite-dish\": [512, 512, [], \"f7c0\", \"M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"],\n    \"save\": [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"],\n    \"school\": [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"],\n    \"screwdriver\": [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"],\n    \"scroll\": [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"],\n    \"sd-card\": [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"],\n    \"search\": [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"],\n    \"search-dollar\": [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"],\n    \"search-location\": [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"search-minus\": [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"],\n    \"search-plus\": [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"],\n    \"seedling\": [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"],\n    \"server\": [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"],\n    \"shapes\": [512, 512, [], \"f61f\", \"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z\"],\n    \"share\": [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"],\n    \"share-alt\": [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"],\n    \"share-alt-square\": [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"],\n    \"share-square\": [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"],\n    \"shekel-sign\": [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"],\n    \"shield-alt\": [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"],\n    \"ship\": [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"],\n    \"shipping-fast\": [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"shoe-prints\": [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"],\n    \"shopping-bag\": [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"],\n    \"shopping-basket\": [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"],\n    \"shopping-cart\": [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"],\n    \"shower\": [512, 512, [], \"f2cc\", \"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\"],\n    \"shuttle-van\": [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"],\n    \"sign\": [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"],\n    \"sign-in-alt\": [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"],\n    \"sign-language\": [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"],\n    \"sign-out-alt\": [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"],\n    \"signal\": [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"],\n    \"signature\": [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"],\n    \"sim-card\": [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"],\n    \"sitemap\": [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"skating\": [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n    \"skiing\": [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"],\n    \"skiing-nordic\": [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"],\n    \"skull\": [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"],\n    \"skull-crossbones\": [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"],\n    \"slash\": [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"],\n    \"sleigh\": [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"],\n    \"sliders-h\": [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"],\n    \"smile\": [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"],\n    \"smile-beam\": [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"],\n    \"smile-wink\": [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"],\n    \"smog\": [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"],\n    \"smoking\": [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"],\n    \"smoking-ban\": [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"],\n    \"sms\": [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"],\n    \"snowboarding\": [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"],\n    \"snowflake\": [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"],\n    \"snowman\": [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"snowplow\": [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n    \"socks\": [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"],\n    \"solar-panel\": [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"],\n    \"sort\": [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"],\n    \"sort-alpha-down\": [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"],\n    \"sort-alpha-down-alt\": [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"],\n    \"sort-alpha-up\": [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"],\n    \"sort-alpha-up-alt\": [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"],\n    \"sort-amount-down\": [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"sort-amount-down-alt\": [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"],\n    \"sort-amount-up\": [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"sort-amount-up-alt\": [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"],\n    \"sort-down\": [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"],\n    \"sort-numeric-down\": [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"],\n    \"sort-numeric-down-alt\": [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"],\n    \"sort-numeric-up\": [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"],\n    \"sort-numeric-up-alt\": [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"],\n    \"sort-up\": [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"],\n    \"spa\": [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"],\n    \"space-shuttle\": [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"],\n    \"spell-check\": [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"],\n    \"spider\": [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"],\n    \"spinner\": [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"],\n    \"splotch\": [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"],\n    \"spray-can\": [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"square\": [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"square-full\": [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"],\n    \"square-root-alt\": [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"],\n    \"stamp\": [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"],\n    \"star\": [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"],\n    \"star-and-crescent\": [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"],\n    \"star-half\": [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"],\n    \"star-half-alt\": [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"],\n    \"star-of-david\": [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"],\n    \"star-of-life\": [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"],\n    \"step-backward\": [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"],\n    \"step-forward\": [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"],\n    \"stethoscope\": [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"sticky-note\": [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"],\n    \"stop\": [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"stop-circle\": [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"],\n    \"stopwatch\": [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"],\n    \"store\": [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"],\n    \"store-alt\": [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"],\n    \"stream\": [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"],\n    \"street-view\": [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"],\n    \"strikethrough\": [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"],\n    \"stroopwafel\": [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"],\n    \"subscript\": [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"],\n    \"subway\": [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"],\n    \"suitcase\": [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"],\n    \"suitcase-rolling\": [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"],\n    \"sun\": [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"],\n    \"superscript\": [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"],\n    \"surprise\": [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"swatchbook\": [511, 512, [], \"f5c3\", \"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z\"],\n    \"swimmer\": [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"],\n    \"swimming-pool\": [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"],\n    \"synagogue\": [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"],\n    \"sync\": [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"],\n    \"sync-alt\": [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"],\n    \"syringe\": [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"],\n    \"table\": [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"],\n    \"table-tennis\": [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"],\n    \"tablet\": [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"tablet-alt\": [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"],\n    \"tablets\": [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"],\n    \"tachometer-alt\": [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"tag\": [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"],\n    \"tags\": [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"],\n    \"tape\": [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"],\n    \"tasks\": [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"taxi\": [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"teeth\": [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"],\n    \"teeth-open\": [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"],\n    \"temperature-high\": [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"],\n    \"temperature-low\": [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"],\n    \"tenge\": [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"],\n    \"terminal\": [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"],\n    \"text-height\": [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"],\n    \"text-width\": [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"],\n    \"th\": [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"],\n    \"th-large\": [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"],\n    \"th-list\": [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"],\n    \"theater-masks\": [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"],\n    \"thermometer\": [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"],\n    \"thermometer-empty\": [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-full\": [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"],\n    \"thermometer-half\": [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-quarter\": [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-three-quarters\": [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thumbs-down\": [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"],\n    \"thumbs-up\": [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"],\n    \"thumbtack\": [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"],\n    \"ticket-alt\": [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"],\n    \"times\": [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"],\n    \"times-circle\": [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"],\n    \"tint\": [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"],\n    \"tint-slash\": [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"],\n    \"tired\": [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"],\n    \"toggle-off\": [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"],\n    \"toggle-on\": [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"],\n    \"toilet\": [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"],\n    \"toilet-paper\": [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"],\n    \"toolbox\": [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"],\n    \"tools\": [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"],\n    \"tooth\": [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"],\n    \"torah\": [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"],\n    \"torii-gate\": [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"],\n    \"tractor\": [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"],\n    \"trademark\": [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"],\n    \"traffic-light\": [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"],\n    \"train\": [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"],\n    \"tram\": [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"transgender\": [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"transgender-alt\": [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"trash\": [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"],\n    \"trash-alt\": [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"trash-restore\": [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"trash-restore-alt\": [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"tree\": [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"],\n    \"trophy\": [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"],\n    \"truck\": [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"truck-loading\": [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"truck-monster\": [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"],\n    \"truck-moving\": [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"],\n    \"truck-pickup\": [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"],\n    \"tshirt\": [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"],\n    \"tty\": [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"],\n    \"tv\": [640, 512, [], \"f26c\", \"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z\"],\n    \"umbrella\": [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"],\n    \"umbrella-beach\": [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"],\n    \"underline\": [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"undo\": [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"],\n    \"undo-alt\": [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"],\n    \"universal-access\": [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"],\n    \"university\": [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"],\n    \"unlink\": [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"],\n    \"unlock\": [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"],\n    \"unlock-alt\": [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"],\n    \"upload\": [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"],\n    \"user\": [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-alt\": [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"],\n    \"user-alt-slash\": [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"],\n    \"user-astronaut\": [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"],\n    \"user-check\": [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"],\n    \"user-circle\": [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"],\n    \"user-clock\": [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"],\n    \"user-cog\": [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"],\n    \"user-edit\": [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"],\n    \"user-friends\": [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"],\n    \"user-graduate\": [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"],\n    \"user-injured\": [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"],\n    \"user-lock\": [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"],\n    \"user-md\": [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"],\n    \"user-minus\": [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-ninja\": [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"],\n    \"user-nurse\": [448, 512, [], \"f82f\", \"M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z\"],\n    \"user-plus\": [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-secret\": [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"],\n    \"user-shield\": [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"],\n    \"user-slash\": [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"],\n    \"user-tag\": [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"],\n    \"user-tie\": [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"],\n    \"user-times\": [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"users\": [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"],\n    \"users-cog\": [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"],\n    \"utensil-spoon\": [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"],\n    \"utensils\": [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"],\n    \"vector-square\": [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"],\n    \"venus\": [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"],\n    \"venus-double\": [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"],\n    \"venus-mars\": [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"vial\": [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"],\n    \"vials\": [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"],\n    \"video\": [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"],\n    \"video-slash\": [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"],\n    \"vihara\": [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"],\n    \"voicemail\": [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"],\n    \"volleyball-ball\": [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"],\n    \"volume-down\": [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"],\n    \"volume-mute\": [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"],\n    \"volume-off\": [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"],\n    \"volume-up\": [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"],\n    \"vote-yea\": [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"],\n    \"vr-cardboard\": [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"],\n    \"walking\": [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"],\n    \"wallet\": [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"warehouse\": [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"],\n    \"water\": [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"],\n    \"wave-square\": [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"],\n    \"weight\": [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"],\n    \"weight-hanging\": [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"],\n    \"wheelchair\": [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"],\n    \"wifi\": [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"],\n    \"wind\": [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"],\n    \"window-close\": [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"],\n    \"window-maximize\": [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"],\n    \"window-minimize\": [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"],\n    \"wine-bottle\": [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"],\n    \"wine-glass\": [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"],\n    \"wine-glass-alt\": [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"],\n    \"won-sign\": [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"],\n    \"wrench\": [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"x-ray\": [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"],\n    \"yen-sign\": [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"],\n    \"yin-yang\": [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fas', icons);\n  });\n\n}());\n(function () {\n  'use strict';\n\n  function _typeof(obj) {\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function (obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  function _slicedToArray(arr, i) {\n    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n      return arr2;\n    }\n  }\n\n  function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) return arr;\n  }\n\n  function _iterableToArray(iter) {\n    if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n  }\n\n  function _iterableToArrayLimit(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n  }\n\n  function _nonIterableRest() {\n    throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n  }\n\n  var noop = function noop() {};\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n  var _MUTATION_OBSERVER = null;\n  var _PERFORMANCE = {\n    mark: noop,\n    measure: noop\n  };\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n    if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n    if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n  var PERFORMANCE = _PERFORMANCE;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var UNITS_IN_GRID = 16;\n  var DEFAULT_FAMILY_PREFIX = 'fa';\n  var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n  var DATA_FA_I2SVG = 'data-fa-i2svg';\n  var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n  var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n  var DATA_PREFIX = 'data-prefix';\n  var DATA_ICON = 'data-icon';\n  var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n  var MUTATION_APPROACH_ASYNC = 'async';\n  var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var PREFIX_TO_STYLE = {\n    'fas': 'solid',\n    'far': 'regular',\n    'fal': 'light',\n    'fad': 'duotone',\n    'fab': 'brands',\n    'fa': 'solid'\n  };\n  var STYLE_TO_PREFIX = {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'duotone': 'fad',\n    'brands': 'fab'\n  };\n  var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n  var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;\n  var FONT_WEIGHT_TO_PREFIX = {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal'\n  };\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n  var DUOTONE_CLASSES = {\n    GROUP: 'group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  var initial = WINDOW.FontAwesomeConfig || {};\n\n  function getAttrConfig(attr) {\n    var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n    if (element) {\n      return element.getAttribute(attr);\n    }\n  }\n\n  function coerce(val) {\n    // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n    // We'll assume that this is an indication that it should be toggled to true\n    // For example <script data-search-pseudo-elements src=\"...\"></script>\n    if (val === '') return true;\n    if (val === 'false') return false;\n    if (val === 'true') return true;\n    return val;\n  }\n\n  if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n    var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n    attrs.forEach(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n          attr = _ref2[0],\n          key = _ref2[1];\n\n      var val = coerce(getAttrConfig(attr));\n\n      if (val !== undefined && val !== null) {\n        initial[key] = val;\n      }\n    });\n  }\n\n  var _default = {\n    familyPrefix: DEFAULT_FAMILY_PREFIX,\n    replacementClass: DEFAULT_REPLACEMENT_CLASS,\n    autoReplaceSvg: true,\n    autoAddCss: true,\n    autoA11y: true,\n    searchPseudoElements: false,\n    observeMutations: true,\n    mutateApproach: 'async',\n    keepOriginalSource: true,\n    measurePerformance: false,\n    showMissingIcons: true\n  };\n\n  var _config = _objectSpread({}, _default, initial);\n\n  if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n  var config = _objectSpread({}, _config);\n\n  WINDOW.FontAwesomeConfig = config;\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  var functions = [];\n\n  var listener = function listener() {\n    DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n    loaded = 1;\n    functions.map(function (fn) {\n      return fn();\n    });\n  };\n\n  var loaded = false;\n\n  if (IS_DOM) {\n    loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n    if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n  }\n\n  function domready (fn) {\n    if (!IS_DOM) return;\n    loaded ? setTimeout(fn, 0) : functions.push(fn);\n  }\n\n  var PENDING = 'pending';\n  var SETTLED = 'settled';\n  var FULFILLED = 'fulfilled';\n  var REJECTED = 'rejected';\n\n  var NOOP = function NOOP() {};\n\n  var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n  var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n  var asyncQueue = [];\n  var asyncTimer;\n\n  function asyncFlush() {\n    // run promise callbacks\n    for (var i = 0; i < asyncQueue.length; i++) {\n      asyncQueue[i][0](asyncQueue[i][1]);\n    } // reset async asyncQueue\n\n\n    asyncQueue = [];\n    asyncTimer = false;\n  }\n\n  function asyncCall(callback, arg) {\n    asyncQueue.push([callback, arg]);\n\n    if (!asyncTimer) {\n      asyncTimer = true;\n      asyncSetTimer(asyncFlush, 0);\n    }\n  }\n\n  function invokeResolver(resolver, promise) {\n    function resolvePromise(value) {\n      resolve(promise, value);\n    }\n\n    function rejectPromise(reason) {\n      reject(promise, reason);\n    }\n\n    try {\n      resolver(resolvePromise, rejectPromise);\n    } catch (e) {\n      rejectPromise(e);\n    }\n  }\n\n  function invokeCallback(subscriber) {\n    var owner = subscriber.owner;\n    var settled = owner._state;\n    var value = owner._data;\n    var callback = subscriber[settled];\n    var promise = subscriber.then;\n\n    if (typeof callback === 'function') {\n      settled = FULFILLED;\n\n      try {\n        value = callback(value);\n      } catch (e) {\n        reject(promise, e);\n      }\n    }\n\n    if (!handleThenable(promise, value)) {\n      if (settled === FULFILLED) {\n        resolve(promise, value);\n      }\n\n      if (settled === REJECTED) {\n        reject(promise, value);\n      }\n    }\n  }\n\n  function handleThenable(promise, value) {\n    var resolved;\n\n    try {\n      if (promise === value) {\n        throw new TypeError('A promises callback cannot return that same promise.');\n      }\n\n      if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n        // then should be retrieved only once\n        var then = value.then;\n\n        if (typeof then === 'function') {\n          then.call(value, function (val) {\n            if (!resolved) {\n              resolved = true;\n\n              if (value === val) {\n                fulfill(promise, val);\n              } else {\n                resolve(promise, val);\n              }\n            }\n          }, function (reason) {\n            if (!resolved) {\n              resolved = true;\n              reject(promise, reason);\n            }\n          });\n          return true;\n        }\n      }\n    } catch (e) {\n      if (!resolved) {\n        reject(promise, e);\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n\n  function resolve(promise, value) {\n    if (promise === value || !handleThenable(promise, value)) {\n      fulfill(promise, value);\n    }\n  }\n\n  function fulfill(promise, value) {\n    if (promise._state === PENDING) {\n      promise._state = SETTLED;\n      promise._data = value;\n      asyncCall(publishFulfillment, promise);\n    }\n  }\n\n  function reject(promise, reason) {\n    if (promise._state === PENDING) {\n      promise._state = SETTLED;\n      promise._data = reason;\n      asyncCall(publishRejection, promise);\n    }\n  }\n\n  function publish(promise) {\n    promise._then = promise._then.forEach(invokeCallback);\n  }\n\n  function publishFulfillment(promise) {\n    promise._state = FULFILLED;\n    publish(promise);\n  }\n\n  function publishRejection(promise) {\n    promise._state = REJECTED;\n    publish(promise);\n\n    if (!promise._handled && isNode) {\n      global.process.emit('unhandledRejection', promise._data, promise);\n    }\n  }\n\n  function notifyRejectionHandled(promise) {\n    global.process.emit('rejectionHandled', promise);\n  }\n  /**\n   * @class\n   */\n\n\n  function P(resolver) {\n    if (typeof resolver !== 'function') {\n      throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n    }\n\n    if (this instanceof P === false) {\n      throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n    }\n\n    this._then = [];\n    invokeResolver(resolver, this);\n  }\n\n  P.prototype = {\n    constructor: P,\n    _state: PENDING,\n    _then: null,\n    _data: undefined,\n    _handled: false,\n    then: function then(onFulfillment, onRejection) {\n      var subscriber = {\n        owner: this,\n        then: new this.constructor(NOOP),\n        fulfilled: onFulfillment,\n        rejected: onRejection\n      };\n\n      if ((onRejection || onFulfillment) && !this._handled) {\n        this._handled = true;\n\n        if (this._state === REJECTED && isNode) {\n          asyncCall(notifyRejectionHandled, this);\n        }\n      }\n\n      if (this._state === FULFILLED || this._state === REJECTED) {\n        // already resolved, call callback async\n        asyncCall(invokeCallback, subscriber);\n      } else {\n        // subscribe\n        this._then.push(subscriber);\n      }\n\n      return subscriber.then;\n    },\n    catch: function _catch(onRejection) {\n      return this.then(null, onRejection);\n    }\n  };\n\n  P.all = function (promises) {\n    if (!Array.isArray(promises)) {\n      throw new TypeError('You must pass an array to Promise.all().');\n    }\n\n    return new P(function (resolve, reject) {\n      var results = [];\n      var remaining = 0;\n\n      function resolver(index) {\n        remaining++;\n        return function (value) {\n          results[index] = value;\n\n          if (! --remaining) {\n            resolve(results);\n          }\n        };\n      }\n\n      for (var i = 0, promise; i < promises.length; i++) {\n        promise = promises[i];\n\n        if (promise && typeof promise.then === 'function') {\n          promise.then(resolver(i), reject);\n        } else {\n          results[i] = promise;\n        }\n      }\n\n      if (!remaining) {\n        resolve(results);\n      }\n    });\n  };\n\n  P.race = function (promises) {\n    if (!Array.isArray(promises)) {\n      throw new TypeError('You must pass an array to Promise.race().');\n    }\n\n    return new P(function (resolve, reject) {\n      for (var i = 0, promise; i < promises.length; i++) {\n        promise = promises[i];\n\n        if (promise && typeof promise.then === 'function') {\n          promise.then(resolve, reject);\n        } else {\n          resolve(promise);\n        }\n      }\n    });\n  };\n\n  P.resolve = function (value) {\n    if (value && _typeof(value) === 'object' && value.constructor === P) {\n      return value;\n    }\n\n    return new P(function (resolve) {\n      resolve(value);\n    });\n  };\n\n  P.reject = function (reason) {\n    return new P(function (resolve, reject) {\n      reject(reason);\n    });\n  };\n\n  var picked = typeof Promise === 'function' ? Promise : P;\n\n  var d = UNITS_IN_GRID;\n  var meaninglessTransform = {\n    size: 16,\n    x: 0,\n    y: 0,\n    rotate: 0,\n    flipX: false,\n    flipY: false\n  };\n\n  function isReserved(name) {\n    return ~RESERVED_CLASSES.indexOf(name);\n  }\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n  function insertCss(css) {\n    if (!css || !IS_DOM) {\n      return;\n    }\n\n    var style = DOCUMENT.createElement('style');\n    style.setAttribute('type', 'text/css');\n    style.innerHTML = css;\n    var headChildren = DOCUMENT.head.childNodes;\n    var beforeChild = null;\n\n    for (var i = headChildren.length - 1; i > -1; i--) {\n      var child = headChildren[i];\n      var tagName = (child.tagName || '').toUpperCase();\n\n      if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n        beforeChild = child;\n      }\n    }\n\n    DOCUMENT.head.insertBefore(style, beforeChild);\n    return css;\n  }\n  var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n  function nextUniqueId() {\n    var size = 12;\n    var id = '';\n\n    while (size-- > 0) {\n      id += idPool[Math.random() * 62 | 0];\n    }\n\n    return id;\n  }\n  function toArray(obj) {\n    var array = [];\n\n    for (var i = (obj || []).length >>> 0; i--;) {\n      array[i] = obj[i];\n    }\n\n    return array;\n  }\n  function classArray(node) {\n    if (node.classList) {\n      return toArray(node.classList);\n    } else {\n      return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n        return i;\n      });\n    }\n  }\n  function getIconName(familyPrefix, cls) {\n    var parts = cls.split('-');\n    var prefix = parts[0];\n    var iconName = parts.slice(1).join('-');\n\n    if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n      return iconName;\n    } else {\n      return null;\n    }\n  }\n  function htmlEscape(str) {\n    return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n  }\n  function joinAttributes(attributes) {\n    return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n      return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n    }, '').trim();\n  }\n  function joinStyles(styles) {\n    return Object.keys(styles || {}).reduce(function (acc, styleName) {\n      return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n    }, '');\n  }\n  function transformIsMeaningful(transform) {\n    return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n  }\n  function transformForSvg(_ref) {\n    var transform = _ref.transform,\n        containerWidth = _ref.containerWidth,\n        iconWidth = _ref.iconWidth;\n    var outer = {\n      transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n    };\n    var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n    var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n    var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n    var inner = {\n      transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n    };\n    var path = {\n      transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n    };\n    return {\n      outer: outer,\n      inner: inner,\n      path: path\n    };\n  }\n  function transformForCss(_ref2) {\n    var transform = _ref2.transform,\n        _ref2$width = _ref2.width,\n        width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n        _ref2$height = _ref2.height,\n        height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n        _ref2$startCentered = _ref2.startCentered,\n        startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n    var val = '';\n\n    if (startCentered && IS_IE) {\n      val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n    } else if (startCentered) {\n      val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n    } else {\n      val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n    }\n\n    val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n    val += \"rotate(\".concat(transform.rotate, \"deg) \");\n    return val;\n  }\n\n  var ALL_SPACE = {\n    x: 0,\n    y: 0,\n    width: '100%',\n    height: '100%'\n  };\n\n  function fillBlack(abstract) {\n    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    if (abstract.attributes && (abstract.attributes.fill || force)) {\n      abstract.attributes.fill = 'black';\n    }\n\n    return abstract;\n  }\n\n  function deGroup(abstract) {\n    if (abstract.tag === 'g') {\n      return abstract.children;\n    } else {\n      return [abstract];\n    }\n  }\n\n  function makeIconMasking (_ref) {\n    var children = _ref.children,\n        attributes = _ref.attributes,\n        main = _ref.main,\n        mask = _ref.mask,\n        transform = _ref.transform;\n    var mainWidth = main.width,\n        mainPath = main.icon;\n    var maskWidth = mask.width,\n        maskPath = mask.icon;\n    var trans = transformForSvg({\n      transform: transform,\n      containerWidth: maskWidth,\n      iconWidth: mainWidth\n    });\n    var maskRect = {\n      tag: 'rect',\n      attributes: _objectSpread({}, ALL_SPACE, {\n        fill: 'white'\n      })\n    };\n    var maskInnerGroupChildrenMixin = mainPath.children ? {\n      children: mainPath.children.map(fillBlack)\n    } : {};\n    var maskInnerGroup = {\n      tag: 'g',\n      attributes: _objectSpread({}, trans.inner),\n      children: [fillBlack(_objectSpread({\n        tag: mainPath.tag,\n        attributes: _objectSpread({}, mainPath.attributes, trans.path)\n      }, maskInnerGroupChildrenMixin))]\n    };\n    var maskOuterGroup = {\n      tag: 'g',\n      attributes: _objectSpread({}, trans.outer),\n      children: [maskInnerGroup]\n    };\n    var maskId = \"mask-\".concat(nextUniqueId());\n    var clipId = \"clip-\".concat(nextUniqueId());\n    var maskTag = {\n      tag: 'mask',\n      attributes: _objectSpread({}, ALL_SPACE, {\n        id: maskId,\n        maskUnits: 'userSpaceOnUse',\n        maskContentUnits: 'userSpaceOnUse'\n      }),\n      children: [maskRect, maskOuterGroup]\n    };\n    var defs = {\n      tag: 'defs',\n      children: [{\n        tag: 'clipPath',\n        attributes: {\n          id: clipId\n        },\n        children: deGroup(maskPath)\n      }, maskTag]\n    };\n    children.push(defs, {\n      tag: 'rect',\n      attributes: _objectSpread({\n        fill: 'currentColor',\n        'clip-path': \"url(#\".concat(clipId, \")\"),\n        mask: \"url(#\".concat(maskId, \")\")\n      }, ALL_SPACE)\n    });\n    return {\n      children: children,\n      attributes: attributes\n    };\n  }\n\n  function makeIconStandard (_ref) {\n    var children = _ref.children,\n        attributes = _ref.attributes,\n        main = _ref.main,\n        transform = _ref.transform,\n        styles = _ref.styles;\n    var styleString = joinStyles(styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    if (transformIsMeaningful(transform)) {\n      var trans = transformForSvg({\n        transform: transform,\n        containerWidth: main.width,\n        iconWidth: main.width\n      });\n      children.push({\n        tag: 'g',\n        attributes: _objectSpread({}, trans.outer),\n        children: [{\n          tag: 'g',\n          attributes: _objectSpread({}, trans.inner),\n          children: [{\n            tag: main.icon.tag,\n            children: main.icon.children,\n            attributes: _objectSpread({}, main.icon.attributes, trans.path)\n          }]\n        }]\n      });\n    } else {\n      children.push(main.icon);\n    }\n\n    return {\n      children: children,\n      attributes: attributes\n    };\n  }\n\n  function asIcon (_ref) {\n    var children = _ref.children,\n        main = _ref.main,\n        mask = _ref.mask,\n        attributes = _ref.attributes,\n        styles = _ref.styles,\n        transform = _ref.transform;\n\n    if (transformIsMeaningful(transform) && main.found && !mask.found) {\n      var width = main.width,\n          height = main.height;\n      var offset = {\n        x: width / height / 2,\n        y: 0.5\n      };\n      attributes['style'] = joinStyles(_objectSpread({}, styles, {\n        'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n      }));\n    }\n\n    return [{\n      tag: 'svg',\n      attributes: attributes,\n      children: children\n    }];\n  }\n\n  function asSymbol (_ref) {\n    var prefix = _ref.prefix,\n        iconName = _ref.iconName,\n        children = _ref.children,\n        attributes = _ref.attributes,\n        symbol = _ref.symbol;\n    var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n    return [{\n      tag: 'svg',\n      attributes: {\n        style: 'display: none;'\n      },\n      children: [{\n        tag: 'symbol',\n        attributes: _objectSpread({}, attributes, {\n          id: id\n        }),\n        children: children\n      }]\n    }];\n  }\n\n  function makeInlineSvgAbstract(params) {\n    var _params$icons = params.icons,\n        main = _params$icons.main,\n        mask = _params$icons.mask,\n        prefix = params.prefix,\n        iconName = params.iconName,\n        transform = params.transform,\n        symbol = params.symbol,\n        title = params.title,\n        extra = params.extra,\n        _params$watchable = params.watchable,\n        watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n    var _ref = mask.found ? mask : main,\n        width = _ref.width,\n        height = _ref.height;\n\n    var widthClass = \"fa-w-\".concat(Math.ceil(width / height * 16));\n    var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n      return extra.classes.indexOf(c) === -1;\n    }).concat(extra.classes).join(' ');\n    var content = {\n      children: [],\n      attributes: _objectSpread({}, extra.attributes, {\n        'data-prefix': prefix,\n        'data-icon': iconName,\n        'class': attrClass,\n        'role': extra.attributes.role || 'img',\n        'xmlns': 'http://www.w3.org/2000/svg',\n        'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n      })\n    };\n\n    if (watchable) {\n      content.attributes[DATA_FA_I2SVG] = '';\n    }\n\n    if (title) content.children.push({\n      tag: 'title',\n      attributes: {\n        id: content.attributes['aria-labelledby'] || \"title-\".concat(nextUniqueId())\n      },\n      children: [title]\n    });\n\n    var args = _objectSpread({}, content, {\n      prefix: prefix,\n      iconName: iconName,\n      main: main,\n      mask: mask,\n      transform: transform,\n      symbol: symbol,\n      styles: extra.styles\n    });\n\n    var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n        children = _ref2.children,\n        attributes = _ref2.attributes;\n\n    args.children = children;\n    args.attributes = attributes;\n\n    if (symbol) {\n      return asSymbol(args);\n    } else {\n      return asIcon(args);\n    }\n  }\n  function makeLayersTextAbstract(params) {\n    var content = params.content,\n        width = params.width,\n        height = params.height,\n        transform = params.transform,\n        title = params.title,\n        extra = params.extra,\n        _params$watchable2 = params.watchable,\n        watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n    var attributes = _objectSpread({}, extra.attributes, title ? {\n      'title': title\n    } : {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    if (watchable) {\n      attributes[DATA_FA_I2SVG] = '';\n    }\n\n    var styles = _objectSpread({}, extra.styles);\n\n    if (transformIsMeaningful(transform)) {\n      styles['transform'] = transformForCss({\n        transform: transform,\n        startCentered: true,\n        width: width,\n        height: height\n      });\n      styles['-webkit-transform'] = styles['transform'];\n    }\n\n    var styleString = joinStyles(styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n  function makeLayersCounterAbstract(params) {\n    var content = params.content,\n        title = params.title,\n        extra = params.extra;\n\n    var attributes = _objectSpread({}, extra.attributes, title ? {\n      'title': title\n    } : {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    var styleString = joinStyles(extra.styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n\n  var noop$1 = function noop() {};\n\n  var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n    mark: noop$1,\n    measure: noop$1\n  };\n  var preamble = \"FA \\\"5.10.1\\\"\";\n\n  var begin = function begin(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n    return function () {\n      return end(name);\n    };\n  };\n\n  var end = function end(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n    p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n  };\n\n  var perf = {\n    begin: begin,\n    end: end\n  };\n\n  /**\n   * Internal helper to bind a function known to have 4 arguments\n   * to a given context.\n   */\n\n  var bindInternal4 = function bindInternal4(func, thisContext) {\n    return function (a, b, c, d) {\n      return func.call(thisContext, a, b, c, d);\n    };\n  };\n\n  /**\n   * # Reduce\n   *\n   * A fast object `.reduce()` implementation.\n   *\n   * @param  {Object}   subject      The object to reduce over.\n   * @param  {Function} fn           The reducer function.\n   * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].\n   * @param  {Object}   thisContext  The context for the reducer.\n   * @return {mixed}                 The final result.\n   */\n\n\n  var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n    var keys = Object.keys(subject),\n        length = keys.length,\n        iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n        i,\n        key,\n        result;\n\n    if (initialValue === undefined) {\n      i = 1;\n      result = subject[keys[0]];\n    } else {\n      i = 0;\n      result = initialValue;\n    }\n\n    for (; i < length; i++) {\n      key = keys[i];\n      result = iterator(result, subject[key], key, subject);\n    }\n\n    return result;\n  };\n\n  function toHex(unicode) {\n    var result = '';\n\n    for (var i = 0; i < unicode.length; i++) {\n      var hex = unicode.charCodeAt(i).toString(16);\n      result += ('000' + hex).slice(-4);\n    }\n\n    return result;\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var styles = namespace.styles,\n      shims = namespace.shims;\n  var _byUnicode = {};\n  var _byLigature = {};\n  var _byOldName = {};\n  var build = function build() {\n    var lookup = function lookup(reducer) {\n      return reduce(styles, function (o, style, prefix) {\n        o[prefix] = reduce(style, reducer, {});\n        return o;\n      }, {});\n    };\n\n    _byUnicode = lookup(function (acc, icon, iconName) {\n      if (icon[3]) {\n        acc[icon[3]] = iconName;\n      }\n\n      return acc;\n    });\n    _byLigature = lookup(function (acc, icon, iconName) {\n      var ligatures = icon[2];\n      acc[iconName] = iconName;\n      ligatures.forEach(function (ligature) {\n        acc[ligature] = iconName;\n      });\n      return acc;\n    });\n    var hasRegular = 'far' in styles;\n    _byOldName = reduce(shims, function (acc, shim) {\n      var oldName = shim[0];\n      var prefix = shim[1];\n      var iconName = shim[2];\n\n      if (prefix === 'far' && !hasRegular) {\n        prefix = 'fas';\n      }\n\n      acc[oldName] = {\n        prefix: prefix,\n        iconName: iconName\n      };\n      return acc;\n    }, {});\n  };\n  build();\n  function byUnicode(prefix, unicode) {\n    return (_byUnicode[prefix] || {})[unicode];\n  }\n  function byLigature(prefix, ligature) {\n    return (_byLigature[prefix] || {})[ligature];\n  }\n  function byOldName(name) {\n    return _byOldName[name] || {\n      prefix: null,\n      iconName: null\n    };\n  }\n\n  var styles$1 = namespace.styles;\n  var emptyCanonicalIcon = function emptyCanonicalIcon() {\n    return {\n      prefix: null,\n      iconName: null,\n      rest: []\n    };\n  };\n  function getCanonicalIcon(values) {\n    return values.reduce(function (acc, cls) {\n      var iconName = getIconName(config.familyPrefix, cls);\n\n      if (styles$1[cls]) {\n        acc.prefix = cls;\n      } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {\n        acc.prefix = cls;\n      } else if (iconName) {\n        var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n        acc.iconName = shim.iconName || iconName;\n        acc.prefix = shim.prefix || acc.prefix;\n      } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n        acc.rest.push(cls);\n      }\n\n      return acc;\n    }, emptyCanonicalIcon());\n  }\n  function iconFromMapping(mapping, prefix, iconName) {\n    if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n      return {\n        prefix: prefix,\n        iconName: iconName,\n        icon: mapping[prefix][iconName]\n      };\n    }\n  }\n\n  function toHtml(abstractNodes) {\n    var tag = abstractNodes.tag,\n        _abstractNodes$attrib = abstractNodes.attributes,\n        attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n        _abstractNodes$childr = abstractNodes.children,\n        children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n    if (typeof abstractNodes === 'string') {\n      return htmlEscape(abstractNodes);\n    } else {\n      return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n    }\n  }\n\n  var noop$2 = function noop() {};\n\n  function isWatched(node) {\n    var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n    return typeof i2svg === 'string';\n  }\n\n  function getMutator() {\n    if (config.autoReplaceSvg === true) {\n      return mutators.replace;\n    }\n\n    var mutator = mutators[config.autoReplaceSvg];\n    return mutator || mutators.replace;\n  }\n\n  var mutators = {\n    replace: function replace(mutation) {\n      var node = mutation[0];\n      var abstract = mutation[1];\n      var newOuterHTML = abstract.map(function (a) {\n        return toHtml(a);\n      }).join('\\n');\n\n      if (node.parentNode && node.outerHTML) {\n        node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" -->\") : '');\n      } else if (node.parentNode) {\n        var newNode = document.createElement('span');\n        node.parentNode.replaceChild(newNode, node);\n        newNode.outerHTML = newOuterHTML;\n      }\n    },\n    nest: function nest(mutation) {\n      var node = mutation[0];\n      var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n      // Short-circuit to the standard replacement\n\n      if (~classArray(node).indexOf(config.replacementClass)) {\n        return mutators.replace(mutation);\n      }\n\n      var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n      delete abstract[0].attributes.style;\n      var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n        if (cls === config.replacementClass || cls.match(forSvg)) {\n          acc.toSvg.push(cls);\n        } else {\n          acc.toNode.push(cls);\n        }\n\n        return acc;\n      }, {\n        toNode: [],\n        toSvg: []\n      });\n      abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n      var newInnerHTML = abstract.map(function (a) {\n        return toHtml(a);\n      }).join('\\n');\n      node.setAttribute('class', splitClasses.toNode.join(' '));\n      node.setAttribute(DATA_FA_I2SVG, '');\n      node.innerHTML = newInnerHTML;\n    }\n  };\n\n  function performOperationSync(op) {\n    op();\n  }\n\n  function perform(mutations, callback) {\n    var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n    if (mutations.length === 0) {\n      callbackFunction();\n    } else {\n      var frame = performOperationSync;\n\n      if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n        frame = WINDOW.requestAnimationFrame || performOperationSync;\n      }\n\n      frame(function () {\n        var mutator = getMutator();\n        var mark = perf.begin('mutate');\n        mutations.map(mutator);\n        mark();\n        callbackFunction();\n      });\n    }\n  }\n  var disabled = false;\n  function disableObservation() {\n    disabled = true;\n  }\n  function enableObservation() {\n    disabled = false;\n  }\n  var mo = null;\n  function observe(options) {\n    if (!MUTATION_OBSERVER) {\n      return;\n    }\n\n    if (!config.observeMutations) {\n      return;\n    }\n\n    var treeCallback = options.treeCallback,\n        nodeCallback = options.nodeCallback,\n        pseudoElementsCallback = options.pseudoElementsCallback,\n        _options$observeMutat = options.observeMutationsRoot,\n        observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n    mo = new MUTATION_OBSERVER(function (objects) {\n      if (disabled) return;\n      toArray(objects).forEach(function (mutationRecord) {\n        if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n          if (config.searchPseudoElements) {\n            pseudoElementsCallback(mutationRecord.target);\n          }\n\n          treeCallback(mutationRecord.target);\n        }\n\n        if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n          pseudoElementsCallback(mutationRecord.target.parentNode);\n        }\n\n        if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n          if (mutationRecord.attributeName === 'class') {\n            var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n                prefix = _getCanonicalIcon.prefix,\n                iconName = _getCanonicalIcon.iconName;\n\n            if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n            if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n          } else {\n            nodeCallback(mutationRecord.target);\n          }\n        }\n      });\n    });\n    if (!IS_DOM) return;\n    mo.observe(observeMutationsRoot, {\n      childList: true,\n      attributes: true,\n      characterData: true,\n      subtree: true\n    });\n  }\n  function disconnect() {\n    if (!mo) return;\n    mo.disconnect();\n  }\n\n  function styleParser (node) {\n    var style = node.getAttribute('style');\n    var val = [];\n\n    if (style) {\n      val = style.split(';').reduce(function (acc, style) {\n        var styles = style.split(':');\n        var prop = styles[0];\n        var value = styles.slice(1);\n\n        if (prop && value.length > 0) {\n          acc[prop] = value.join(':').trim();\n        }\n\n        return acc;\n      }, {});\n    }\n\n    return val;\n  }\n\n  function classParser (node) {\n    var existingPrefix = node.getAttribute('data-prefix');\n    var existingIconName = node.getAttribute('data-icon');\n    var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n    var val = getCanonicalIcon(classArray(node));\n\n    if (existingPrefix && existingIconName) {\n      val.prefix = existingPrefix;\n      val.iconName = existingIconName;\n    }\n\n    if (val.prefix && innerText.length > 1) {\n      val.iconName = byLigature(val.prefix, node.innerText);\n    } else if (val.prefix && innerText.length === 1) {\n      val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n    }\n\n    return val;\n  }\n\n  var parseTransformString = function parseTransformString(transformString) {\n    var transform = {\n      size: 16,\n      x: 0,\n      y: 0,\n      flipX: false,\n      flipY: false,\n      rotate: 0\n    };\n\n    if (!transformString) {\n      return transform;\n    } else {\n      return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n        var parts = n.toLowerCase().split('-');\n        var first = parts[0];\n        var rest = parts.slice(1).join('-');\n\n        if (first && rest === 'h') {\n          acc.flipX = true;\n          return acc;\n        }\n\n        if (first && rest === 'v') {\n          acc.flipY = true;\n          return acc;\n        }\n\n        rest = parseFloat(rest);\n\n        if (isNaN(rest)) {\n          return acc;\n        }\n\n        switch (first) {\n          case 'grow':\n            acc.size = acc.size + rest;\n            break;\n\n          case 'shrink':\n            acc.size = acc.size - rest;\n            break;\n\n          case 'left':\n            acc.x = acc.x - rest;\n            break;\n\n          case 'right':\n            acc.x = acc.x + rest;\n            break;\n\n          case 'up':\n            acc.y = acc.y - rest;\n            break;\n\n          case 'down':\n            acc.y = acc.y + rest;\n            break;\n\n          case 'rotate':\n            acc.rotate = acc.rotate + rest;\n            break;\n        }\n\n        return acc;\n      }, transform);\n    }\n  };\n  function transformParser (node) {\n    return parseTransformString(node.getAttribute('data-fa-transform'));\n  }\n\n  function symbolParser (node) {\n    var symbol = node.getAttribute('data-fa-symbol');\n    return symbol === null ? false : symbol === '' ? true : symbol;\n  }\n\n  function attributesParser (node) {\n    var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n      if (acc.name !== 'class' && acc.name !== 'style') {\n        acc[attr.name] = attr.value;\n      }\n\n      return acc;\n    }, {});\n    var title = node.getAttribute('title');\n\n    if (config.autoA11y) {\n      if (title) {\n        extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(nextUniqueId());\n      } else {\n        extraAttributes['aria-hidden'] = 'true';\n        extraAttributes['focusable'] = 'false';\n      }\n    }\n\n    return extraAttributes;\n  }\n\n  function maskParser (node) {\n    var mask = node.getAttribute('data-fa-mask');\n\n    if (!mask) {\n      return emptyCanonicalIcon();\n    } else {\n      return getCanonicalIcon(mask.split(' ').map(function (i) {\n        return i.trim();\n      }));\n    }\n  }\n\n  function blankMeta() {\n    return {\n      iconName: null,\n      title: null,\n      prefix: null,\n      transform: meaninglessTransform,\n      symbol: false,\n      mask: null,\n      extra: {\n        classes: [],\n        styles: {},\n        attributes: {}\n      }\n    };\n  }\n  function parseMeta(node) {\n    var _classParser = classParser(node),\n        iconName = _classParser.iconName,\n        prefix = _classParser.prefix,\n        extraClasses = _classParser.rest;\n\n    var extraStyles = styleParser(node);\n    var transform = transformParser(node);\n    var symbol = symbolParser(node);\n    var extraAttributes = attributesParser(node);\n    var mask = maskParser(node);\n    return {\n      iconName: iconName,\n      title: node.getAttribute('title'),\n      prefix: prefix,\n      transform: transform,\n      symbol: symbol,\n      mask: mask,\n      extra: {\n        classes: extraClasses,\n        styles: extraStyles,\n        attributes: extraAttributes\n      }\n    };\n  }\n\n  function MissingIcon(error) {\n    this.name = 'MissingIcon';\n    this.message = error || 'Icon unavailable';\n    this.stack = new Error().stack;\n  }\n  MissingIcon.prototype = Object.create(Error.prototype);\n  MissingIcon.prototype.constructor = MissingIcon;\n\n  var FILL = {\n    fill: 'currentColor'\n  };\n  var ANIMATION_BASE = {\n    attributeType: 'XML',\n    repeatCount: 'indefinite',\n    dur: '2s'\n  };\n  var RING = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n    })\n  };\n\n  var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n    attributeName: 'opacity'\n  });\n\n  var DOT = {\n    tag: 'circle',\n    attributes: _objectSpread({}, FILL, {\n      cx: '256',\n      cy: '364',\n      r: '28'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, ANIMATION_BASE, {\n        attributeName: 'r',\n        values: '28;14;28;28;14;28;'\n      })\n    }, {\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '1;0;1;1;0;1;'\n      })\n    }]\n  };\n  var QUESTION = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      opacity: '1',\n      d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '1;0;0;0;0;1;'\n      })\n    }]\n  };\n  var EXCLAMATION = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      opacity: '0',\n      d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '0;0;1;1;0;0;'\n      })\n    }]\n  };\n  var missing = {\n    tag: 'g',\n    children: [RING, DOT, QUESTION, EXCLAMATION]\n  };\n\n  var styles$2 = namespace.styles;\n  function asFoundIcon(icon) {\n    var width = icon[0];\n    var height = icon[1];\n\n    var _icon$slice = icon.slice(4),\n        _icon$slice2 = _slicedToArray(_icon$slice, 1),\n        vectorData = _icon$slice2[0];\n\n    var element = null;\n\n    if (Array.isArray(vectorData)) {\n      element = {\n        tag: 'g',\n        attributes: {\n          class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n        },\n        children: [{\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n            fill: 'currentColor',\n            d: vectorData[0]\n          }\n        }, {\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n            fill: 'currentColor',\n            d: vectorData[1]\n          }\n        }]\n      };\n    } else {\n      element = {\n        tag: 'path',\n        attributes: {\n          fill: 'currentColor',\n          d: vectorData\n        }\n      };\n    }\n\n    return {\n      found: true,\n      width: width,\n      height: height,\n      icon: element\n    };\n  }\n  function findIcon(iconName, prefix) {\n    return new picked(function (resolve, reject) {\n      var val = {\n        found: false,\n        width: 512,\n        height: 512,\n        icon: missing\n      };\n\n      if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n        var icon = styles$2[prefix][iconName];\n        return resolve(asFoundIcon(icon));\n      }\n\n      if (iconName && prefix && !config.showMissingIcons) {\n        reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n      } else {\n        resolve(val);\n      }\n    });\n  }\n\n  var styles$3 = namespace.styles;\n\n  function generateSvgReplacementMutation(node, nodeMeta) {\n    var iconName = nodeMeta.iconName,\n        title = nodeMeta.title,\n        prefix = nodeMeta.prefix,\n        transform = nodeMeta.transform,\n        symbol = nodeMeta.symbol,\n        mask = nodeMeta.mask,\n        extra = nodeMeta.extra;\n    return new picked(function (resolve, reject) {\n      picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            main = _ref2[0],\n            mask = _ref2[1];\n\n        resolve([node, makeInlineSvgAbstract({\n          icons: {\n            main: main,\n            mask: mask\n          },\n          prefix: prefix,\n          iconName: iconName,\n          transform: transform,\n          symbol: symbol,\n          mask: mask,\n          title: title,\n          extra: extra,\n          watchable: true\n        })]);\n      });\n    });\n  }\n\n  function generateLayersText(node, nodeMeta) {\n    var title = nodeMeta.title,\n        transform = nodeMeta.transform,\n        extra = nodeMeta.extra;\n    var width = null;\n    var height = null;\n\n    if (IS_IE) {\n      var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n      var boundingClientRect = node.getBoundingClientRect();\n      width = boundingClientRect.width / computedFontSize;\n      height = boundingClientRect.height / computedFontSize;\n    }\n\n    if (config.autoA11y && !title) {\n      extra.attributes['aria-hidden'] = 'true';\n    }\n\n    return picked.resolve([node, makeLayersTextAbstract({\n      content: node.innerHTML,\n      width: width,\n      height: height,\n      transform: transform,\n      title: title,\n      extra: extra,\n      watchable: true\n    })]);\n  }\n\n  function generateMutation(node) {\n    var nodeMeta = parseMeta(node);\n\n    if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n      return generateLayersText(node, nodeMeta);\n    } else {\n      return generateSvgReplacementMutation(node, nodeMeta);\n    }\n  }\n\n  function onTree(root) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    if (!IS_DOM) return;\n    var htmlClassList = DOCUMENT.documentElement.classList;\n\n    var hclAdd = function hclAdd(suffix) {\n      return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var hclRemove = function hclRemove(suffix) {\n      return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n    var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n      return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n    })).join(', ');\n\n    if (prefixesDomQuery.length === 0) {\n      return;\n    }\n\n    var candidates = [];\n\n    try {\n      candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n    } catch (e) {// noop\n    }\n\n    if (candidates.length > 0) {\n      hclAdd('pending');\n      hclRemove('complete');\n    } else {\n      return;\n    }\n\n    var mark = perf.begin('onTree');\n    var mutations = candidates.reduce(function (acc, node) {\n      try {\n        var mutation = generateMutation(node);\n\n        if (mutation) {\n          acc.push(mutation);\n        }\n      } catch (e) {\n        if (!PRODUCTION) {\n          if (e instanceof MissingIcon) {\n            console.error(e);\n          }\n        }\n      }\n\n      return acc;\n    }, []);\n    return new picked(function (resolve, reject) {\n      picked.all(mutations).then(function (resolvedMutations) {\n        perform(resolvedMutations, function () {\n          hclAdd('active');\n          hclAdd('complete');\n          hclRemove('pending');\n          if (typeof callback === 'function') callback();\n          mark();\n          resolve();\n        });\n      }).catch(function () {\n        mark();\n        reject();\n      });\n    });\n  }\n  function onNode(node) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    generateMutation(node).then(function (mutation) {\n      if (mutation) {\n        perform([mutation], callback);\n      }\n    });\n  }\n\n  function replaceForPosition(node, position) {\n    var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n    return new picked(function (resolve, reject) {\n      if (node.getAttribute(pendingAttribute) !== null) {\n        // This node is already being processed\n        return resolve();\n      }\n\n      var children = toArray(node.children);\n      var alreadyProcessedPseudoElement = children.filter(function (c) {\n        return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n      })[0];\n      var styles = WINDOW.getComputedStyle(node, position);\n      var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n      var fontWeight = styles.getPropertyValue('font-weight');\n\n      if (alreadyProcessedPseudoElement && !fontFamily) {\n        // If we've already processed it but the current computed style does not result in a font-family,\n        // that probably means that a class name that was previously present to make the icon has been\n        // removed. So we now should delete the icon.\n        node.removeChild(alreadyProcessedPseudoElement);\n        return resolve();\n      } else if (fontFamily) {\n        var content = styles.getPropertyValue('content');\n        var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n        var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);\n        var iconName = byUnicode(prefix, hexValue);\n        var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n        // already done so with the same prefix and iconName\n\n        if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n          node.setAttribute(pendingAttribute, iconIdentifier);\n\n          if (alreadyProcessedPseudoElement) {\n            // Delete the old one, since we're replacing it with a new one\n            node.removeChild(alreadyProcessedPseudoElement);\n          }\n\n          var meta = blankMeta();\n          var extra = meta.extra;\n          extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n          findIcon(iconName, prefix).then(function (main) {\n            var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n              icons: {\n                main: main,\n                mask: emptyCanonicalIcon()\n              },\n              prefix: prefix,\n              iconName: iconIdentifier,\n              extra: extra,\n              watchable: true\n            }));\n            var element = DOCUMENT.createElement('svg');\n\n            if (position === ':before') {\n              node.insertBefore(element, node.firstChild);\n            } else {\n              node.appendChild(element);\n            }\n\n            element.outerHTML = abstract.map(function (a) {\n              return toHtml(a);\n            }).join('\\n');\n            node.removeAttribute(pendingAttribute);\n            resolve();\n          }).catch(reject);\n        } else {\n          resolve();\n        }\n      } else {\n        resolve();\n      }\n    });\n  }\n\n  function replace(node) {\n    return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n  }\n\n  function processable(node) {\n    return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n  }\n\n  function searchPseudoElements (root) {\n    if (!IS_DOM) return;\n    return new picked(function (resolve, reject) {\n      var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n      var end = perf.begin('searchPseudoElements');\n      disableObservation();\n      picked.all(operations).then(function () {\n        end();\n        enableObservation();\n        resolve();\n      }).catch(function () {\n        end();\n        enableObservation();\n        reject();\n      });\n    });\n  }\n\n  var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n  function css () {\n    var dfp = DEFAULT_FAMILY_PREFIX;\n    var drc = DEFAULT_REPLACEMENT_CLASS;\n    var fp = config.familyPrefix;\n    var rc = config.replacementClass;\n    var s = baseStyles;\n\n    if (fp !== dfp || rc !== drc) {\n      var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n      var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n      var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n      s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n    }\n\n    return s;\n  }\n\n  var Library =\n  /*#__PURE__*/\n  function () {\n    function Library() {\n      _classCallCheck(this, Library);\n\n      this.definitions = {};\n    }\n\n    _createClass(Library, [{\n      key: \"add\",\n      value: function add() {\n        var _this = this;\n\n        for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n          definitions[_key] = arguments[_key];\n        }\n\n        var additions = definitions.reduce(this._pullDefinitions, {});\n        Object.keys(additions).forEach(function (key) {\n          _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n          defineIcons(key, additions[key]);\n          build();\n        });\n      }\n    }, {\n      key: \"reset\",\n      value: function reset() {\n        this.definitions = {};\n      }\n    }, {\n      key: \"_pullDefinitions\",\n      value: function _pullDefinitions(additions, definition) {\n        var normalized = definition.prefix && definition.iconName && definition.icon ? {\n          0: definition\n        } : definition;\n        Object.keys(normalized).map(function (key) {\n          var _normalized$key = normalized[key],\n              prefix = _normalized$key.prefix,\n              iconName = _normalized$key.iconName,\n              icon = _normalized$key.icon;\n          if (!additions[prefix]) additions[prefix] = {};\n          additions[prefix][iconName] = icon;\n        });\n        return additions;\n      }\n    }]);\n\n    return Library;\n  }();\n\n  function ensureCss() {\n    if (config.autoAddCss && !_cssInserted) {\n      insertCss(css());\n\n      _cssInserted = true;\n    }\n  }\n\n  function apiObject(val, abstractCreator) {\n    Object.defineProperty(val, 'abstract', {\n      get: abstractCreator\n    });\n    Object.defineProperty(val, 'html', {\n      get: function get() {\n        return val.abstract.map(function (a) {\n          return toHtml(a);\n        });\n      }\n    });\n    Object.defineProperty(val, 'node', {\n      get: function get() {\n        if (!IS_DOM) return;\n        var container = DOCUMENT.createElement('div');\n        container.innerHTML = val.html;\n        return container.children;\n      }\n    });\n    return val;\n  }\n\n  function findIconDefinition(iconLookup) {\n    var _iconLookup$prefix = iconLookup.prefix,\n        prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n        iconName = iconLookup.iconName;\n    if (!iconName) return;\n    return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n  }\n\n  function resolveIcons(next) {\n    return function (maybeIconDefinition) {\n      var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n      var mask = params.mask;\n\n      if (mask) {\n        mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n      }\n\n      return next(iconDefinition, _objectSpread({}, params, {\n        mask: mask\n      }));\n    };\n  }\n\n  var library = new Library();\n  var noAuto = function noAuto() {\n    config.autoReplaceSvg = false;\n    config.observeMutations = false;\n    disconnect();\n  };\n  var _cssInserted = false;\n  var dom = {\n    i2svg: function i2svg() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      if (IS_DOM) {\n        ensureCss();\n        var _params$node = params.node,\n            node = _params$node === void 0 ? DOCUMENT : _params$node,\n            _params$callback = params.callback,\n            callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n        if (config.searchPseudoElements) {\n          searchPseudoElements(node);\n        }\n\n        return onTree(node, callback);\n      } else {\n        return picked.reject('Operation requires a DOM of some kind.');\n      }\n    },\n    css: css,\n    insertCss: function insertCss$$1() {\n      if (!_cssInserted) {\n        insertCss(css());\n\n        _cssInserted = true;\n      }\n    },\n    watch: function watch() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n          observeMutationsRoot = params.observeMutationsRoot;\n\n      if (config.autoReplaceSvg === false) {\n        config.autoReplaceSvg = true;\n      }\n\n      config.observeMutations = true;\n      domready(function () {\n        autoReplace({\n          autoReplaceSvgRoot: autoReplaceSvgRoot\n        });\n        observe({\n          treeCallback: onTree,\n          nodeCallback: onNode,\n          pseudoElementsCallback: searchPseudoElements,\n          observeMutationsRoot: observeMutationsRoot\n        });\n      });\n    }\n  };\n  var parse = {\n    transform: function transform(transformString) {\n      return parseTransformString(transformString);\n    }\n  };\n  var icon = resolveIcons(function (iconDefinition) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$transform = params.transform,\n        transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n        _params$symbol = params.symbol,\n        symbol = _params$symbol === void 0 ? false : _params$symbol,\n        _params$mask = params.mask,\n        mask = _params$mask === void 0 ? null : _params$mask,\n        _params$title = params.title,\n        title = _params$title === void 0 ? null : _params$title,\n        _params$classes = params.classes,\n        classes = _params$classes === void 0 ? [] : _params$classes,\n        _params$attributes = params.attributes,\n        attributes = _params$attributes === void 0 ? {} : _params$attributes,\n        _params$styles = params.styles,\n        styles = _params$styles === void 0 ? {} : _params$styles;\n    if (!iconDefinition) return;\n    var prefix = iconDefinition.prefix,\n        iconName = iconDefinition.iconName,\n        icon = iconDefinition.icon;\n    return apiObject(_objectSpread({\n      type: 'icon'\n    }, iconDefinition), function () {\n      ensureCss();\n\n      if (config.autoA11y) {\n        if (title) {\n          attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(nextUniqueId());\n        } else {\n          attributes['aria-hidden'] = 'true';\n          attributes['focusable'] = 'false';\n        }\n      }\n\n      return makeInlineSvgAbstract({\n        icons: {\n          main: asFoundIcon(icon),\n          mask: mask ? asFoundIcon(mask.icon) : {\n            found: false,\n            width: null,\n            height: null,\n            icon: {}\n          }\n        },\n        prefix: prefix,\n        iconName: iconName,\n        transform: _objectSpread({}, meaninglessTransform, transform),\n        symbol: symbol,\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: classes\n        }\n      });\n    });\n  });\n  var text = function text(content) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$transform2 = params.transform,\n        transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n        _params$title2 = params.title,\n        title = _params$title2 === void 0 ? null : _params$title2,\n        _params$classes2 = params.classes,\n        classes = _params$classes2 === void 0 ? [] : _params$classes2,\n        _params$attributes2 = params.attributes,\n        attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n        _params$styles2 = params.styles,\n        styles = _params$styles2 === void 0 ? {} : _params$styles2;\n    return apiObject({\n      type: 'text',\n      content: content\n    }, function () {\n      ensureCss();\n      return makeLayersTextAbstract({\n        content: content,\n        transform: _objectSpread({}, meaninglessTransform, transform),\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n        }\n      });\n    });\n  };\n  var counter = function counter(content) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$title3 = params.title,\n        title = _params$title3 === void 0 ? null : _params$title3,\n        _params$classes3 = params.classes,\n        classes = _params$classes3 === void 0 ? [] : _params$classes3,\n        _params$attributes3 = params.attributes,\n        attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n        _params$styles3 = params.styles,\n        styles = _params$styles3 === void 0 ? {} : _params$styles3;\n    return apiObject({\n      type: 'counter',\n      content: content\n    }, function () {\n      ensureCss();\n      return makeLayersCounterAbstract({\n        content: content.toString(),\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n        }\n      });\n    });\n  };\n  var layer = function layer(assembler) {\n    return apiObject({\n      type: 'layer'\n    }, function () {\n      ensureCss();\n      var children = [];\n      assembler(function (args) {\n        Array.isArray(args) ? args.map(function (a) {\n          children = children.concat(a.abstract);\n        }) : children = children.concat(args.abstract);\n      });\n      return [{\n        tag: 'span',\n        attributes: {\n          class: \"\".concat(config.familyPrefix, \"-layers\")\n        },\n        children: children\n      }];\n    });\n  };\n  var api = {\n    noAuto: noAuto,\n    config: config,\n    dom: dom,\n    library: library,\n    parse: parse,\n    findIconDefinition: findIconDefinition,\n    icon: icon,\n    text: text,\n    counter: counter,\n    layer: layer,\n    toHtml: toHtml\n  };\n\n  var autoReplace = function autoReplace() {\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n        autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n    if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n      node: autoReplaceSvgRoot\n    });\n  };\n\n  function bootstrap() {\n    if (IS_BROWSER) {\n      if (!WINDOW.FontAwesome) {\n        WINDOW.FontAwesome = api;\n      }\n\n      domready(function () {\n        autoReplace();\n        observe({\n          treeCallback: onTree,\n          nodeCallback: onNode,\n          pseudoElementsCallback: searchPseudoElements\n        });\n      });\n    }\n\n    namespace.hooks = _objectSpread({}, namespace.hooks, {\n      addPack: function addPack(prefix, icons) {\n        namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n        build();\n        autoReplace();\n      },\n      addShims: function addShims(shims) {\n        var _namespace$shims;\n\n        (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n        build();\n        autoReplace();\n      }\n    });\n  }\n\n  bunker(bootstrap);\n\n}());\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/brands.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"500px\": [448, 512, [], \"f26e\", \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\n    \"accessible-icon\": [448, 512, [], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],\n    \"accusoft\": [640, 512, [], \"f369\", \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],\n    \"acquisitions-incorporated\": [384, 512, [], \"f6af\", \"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"],\n    \"adn\": [496, 512, [], \"f170\", \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"],\n    \"adobe\": [512, 512, [], \"f778\", \"M315.5 64h170.9v384L315.5 64zm-119 0H25.6v384L196.5 64zM256 206.1L363.5 448h-73l-30.7-76.8h-78.7L256 206.1z\"],\n    \"adversal\": [512, 512, [], \"f36a\", \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\n    \"affiliatetheme\": [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"],\n    \"airbnb\": [448, 512, [], \"f834\", \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"],\n    \"algolia\": [448, 512, [], \"f36c\", \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"],\n    \"alipay\": [448, 512, [], \"f642\", \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"],\n    \"amazon\": [448, 512, [], \"f270\", \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],\n    \"amazon-pay\": [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\n    \"amilia\": [448, 512, [], \"f36d\", \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"],\n    \"android\": [448, 512, [], \"f17b\", \"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\"],\n    \"angellist\": [448, 512, [], \"f209\", \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\n    \"angrycreative\": [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\n    \"angular\": [448, 512, [], \"f420\", \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"],\n    \"app-store\": [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"],\n    \"app-store-ios\": [448, 512, [], \"f370\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\n    \"apper\": [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"],\n    \"apple\": [384, 512, [], \"f179\", \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],\n    \"apple-pay\": [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"],\n    \"artstation\": [512, 512, [], \"f77a\", \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"],\n    \"asymmetrik\": [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\n    \"atlassian\": [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"],\n    \"audible\": [640, 512, [], \"f373\", \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"],\n    \"autoprefixer\": [640, 512, [], \"f41c\", \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"],\n    \"avianex\": [512, 512, [], \"f374\", \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],\n    \"aviato\": [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"],\n    \"aws\": [640, 512, [], \"f375\", \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"],\n    \"bandcamp\": [496, 512, [], \"f2d5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z\"],\n    \"battle-net\": [512, 512, [], \"f835\", \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"],\n    \"behance\": [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"],\n    \"behance-square\": [448, 512, [], \"f1b5\", \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"],\n    \"bimobject\": [448, 512, [], \"f378\", \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"],\n    \"bitbucket\": [512, 512, [], \"f171\", \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"],\n    \"bitcoin\": [512, 512, [], \"f379\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"],\n    \"bity\": [496, 512, [], \"f37a\", \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"],\n    \"black-tie\": [448, 512, [], \"f27e\", \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"],\n    \"blackberry\": [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"],\n    \"blogger\": [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],\n    \"blogger-b\": [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],\n    \"bluetooth\": [448, 512, [], \"f293\", \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],\n    \"bluetooth-b\": [320, 512, [], \"f294\", \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"],\n    \"bootstrap\": [448, 512, [], \"f836\", \"M292.3 311.93c0 42.41-39.72 41.43-43.92 41.43h-80.89v-81.69h80.89c42.56 0 43.92 31.9 43.92 40.26zm-50.15-73.13c.67 0 38.44 1 38.44-36.31 0-15.52-3.51-35.87-38.44-35.87h-74.66v72.18h74.66zM448 106.67v298.66A74.89 74.89 0 0 1 373.33 480H74.67A74.89 74.89 0 0 1 0 405.33V106.67A74.89 74.89 0 0 1 74.67 32h298.66A74.89 74.89 0 0 1 448 106.67zM338.05 317.86c0-21.57-6.65-58.29-49.05-67.35v-.73c22.91-9.78 37.34-28.25 37.34-55.64 0-7 2-64.78-77.6-64.78h-127v261.33c128.23 0 139.87 1.68 163.6-5.71 14.21-4.42 52.71-17.98 52.71-67.12z\"],\n    \"btc\": [384, 512, [], \"f15a\", \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"],\n    \"buffer\": [448, 512, [], \"f837\", \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"],\n    \"buromobelexperte\": [448, 512, [], \"f37f\", \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"],\n    \"buysellads\": [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"],\n    \"canadian-maple-leaf\": [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],\n    \"cc-amazon-pay\": [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"],\n    \"cc-amex\": [576, 512, [], \"f1f3\", \"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"],\n    \"cc-apple-pay\": [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],\n    \"cc-diners-club\": [576, 512, [], \"f24c\", \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\n    \"cc-discover\": [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],\n    \"cc-jcb\": [576, 512, [], \"f24b\", \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"],\n    \"cc-mastercard\": [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"],\n    \"cc-paypal\": [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"],\n    \"cc-stripe\": [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\n    \"cc-visa\": [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"],\n    \"centercode\": [512, 512, [], \"f380\", \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\n    \"centos\": [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"],\n    \"chrome\": [496, 512, [], \"f268\", \"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"],\n    \"chromecast\": [512, 512, [], \"f838\", \"M447.83 64H64a42.72 42.72 0 0 0-42.72 42.72v63.92H64v-63.92h383.83v298.56H298.64V448H448a42.72 42.72 0 0 0 42.72-42.72V106.72A42.72 42.72 0 0 0 448 64zM21.28 383.58v63.92h63.91a63.91 63.91 0 0 0-63.91-63.92zm0-85.28V341a106.63 106.63 0 0 1 106.64 106.66v.34h42.72a149.19 149.19 0 0 0-149-149.36h-.33zm0-85.27v42.72c106-.1 192 85.75 192.08 191.75v.5h42.72c-.46-129.46-105.34-234.27-234.8-234.64z\"],\n    \"cloudscale\": [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"],\n    \"cloudsmith\": [332, 512, [], \"f384\", \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"],\n    \"cloudversify\": [616, 512, [], \"f385\", \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"],\n    \"codepen\": [512, 512, [], \"f1cb\", \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"],\n    \"codiepie\": [472, 512, [], \"f284\", \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],\n    \"confluence\": [512, 512, [], \"f78d\", \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],\n    \"connectdevelop\": [576, 512, [], \"f20e\", \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"],\n    \"contao\": [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"],\n    \"cotton-bureau\": [512, 512, [], \"f89e\", \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"],\n    \"cpanel\": [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"],\n    \"creative-commons\": [496, 512, [], \"f25e\", \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"],\n    \"creative-commons-by\": [496, 512, [], \"f4e7\", \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"],\n    \"creative-commons-nc\": [496, 512, [], \"f4e8\", \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],\n    \"creative-commons-nc-eu\": [496, 512, [], \"f4e9\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"],\n    \"creative-commons-nc-jp\": [496, 512, [], \"f4ea\", \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"],\n    \"creative-commons-nd\": [496, 512, [], \"f4eb\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"],\n    \"creative-commons-pd\": [496, 512, [], \"f4ec\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],\n    \"creative-commons-pd-alt\": [496, 512, [], \"f4ed\", \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"],\n    \"creative-commons-remix\": [496, 512, [], \"f4ee\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"],\n    \"creative-commons-sa\": [496, 512, [], \"f4ef\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"],\n    \"creative-commons-sampling\": [496, 512, [], \"f4f0\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],\n    \"creative-commons-sampling-plus\": [496, 512, [], \"f4f1\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],\n    \"creative-commons-share\": [496, 512, [], \"f4f2\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"],\n    \"creative-commons-zero\": [496, 512, [], \"f4f3\", \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],\n    \"critical-role\": [448, 512, [], \"f6c9\", \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"],\n    \"css3\": [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"],\n    \"css3-alt\": [384, 512, [], \"f38b\", \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"],\n    \"cuttlefish\": [440, 512, [], \"f38c\", \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],\n    \"d-and-d\": [576, 512, [], \"f38d\", \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],\n    \"d-and-d-beyond\": [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],\n    \"dashcube\": [448, 512, [], \"f210\", \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"],\n    \"delicious\": [448, 512, [], \"f1a5\", \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"],\n    \"deploydog\": [512, 512, [], \"f38e\", \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"],\n    \"deskpro\": [480, 512, [], \"f38f\", \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],\n    \"dev\": [448, 512, [], \"f6cc\", \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"],\n    \"deviantart\": [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"],\n    \"dhl\": [640, 512, [], \"f790\", \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"],\n    \"diaspora\": [512, 512, [], \"f791\", \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"],\n    \"digg\": [512, 512, [], \"f1a6\", \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"],\n    \"digital-ocean\": [512, 512, [], \"f391\", \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"],\n    \"discord\": [448, 512, [], \"f392\", \"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"],\n    \"discourse\": [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],\n    \"dochub\": [416, 512, [], \"f394\", \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"],\n    \"docker\": [640, 512, [], \"f395\", \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"],\n    \"draft2digital\": [480, 512, [], \"f396\", \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"],\n    \"dribbble\": [512, 512, [], \"f17d\", \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"],\n    \"dribbble-square\": [448, 512, [], \"f397\", \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"],\n    \"dropbox\": [528, 512, [], \"f16b\", \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"],\n    \"drupal\": [448, 512, [], \"f1a9\", \"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"],\n    \"dyalog\": [416, 512, [], \"f399\", \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"],\n    \"earlybirds\": [480, 512, [], \"f39a\", \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\n    \"ebay\": [640, 512, [], \"f4f4\", \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"],\n    \"edge\": [512, 512, [], \"f282\", \"M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z\"],\n    \"elementor\": [448, 512, [], \"f430\", \"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"],\n    \"ello\": [496, 512, [], \"f5f1\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"],\n    \"ember\": [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\n    \"empire\": [496, 512, [], \"f1d1\", \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"],\n    \"envira\": [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\n    \"erlang\": [640, 512, [], \"f39d\", \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"],\n    \"ethereum\": [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"],\n    \"etsy\": [384, 512, [], \"f2d7\", \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"],\n    \"evernote\": [384, 512, [], \"f839\", \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"],\n    \"expeditedssl\": [496, 512, [], \"f23e\", \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"],\n    \"facebook\": [512, 512, [], \"f09a\", \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"],\n    \"facebook-f\": [320, 512, [], \"f39e\", \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"],\n    \"facebook-messenger\": [512, 512, [], \"f39f\", \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"],\n    \"facebook-square\": [448, 512, [], \"f082\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"],\n    \"fantasy-flight-games\": [512, 512, [], \"f6dc\", \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"],\n    \"fedex\": [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"],\n    \"fedora\": [448, 512, [], \"f798\", \"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"],\n    \"figma\": [384, 512, [], \"f799\", \"M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z\"],\n    \"firefox\": [480, 512, [], \"f269\", \"M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z\"],\n    \"first-order\": [448, 512, [], \"f2b0\", \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],\n    \"first-order-alt\": [496, 512, [], \"f50a\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"],\n    \"firstdraft\": [384, 512, [], \"f3a1\", \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"],\n    \"flickr\": [448, 512, [], \"f16e\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"],\n    \"flipboard\": [448, 512, [], \"f44d\", \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"],\n    \"fly\": [384, 512, [], \"f417\", \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],\n    \"font-awesome\": [448, 512, [], \"f2b4\", \"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\"],\n    \"font-awesome-alt\": [448, 512, [], \"f35c\", \"M339.3 171.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1zM397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm14.3 397.7c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6v-.1c7.8 0 14.3 6.6 14.3 14.3z\"],\n    \"font-awesome-flag\": [448, 512, [], \"f425\", \"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"fonticons\": [448, 512, [], \"f280\", \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"],\n    \"fonticons-fi\": [384, 512, [], \"f3a2\", \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"],\n    \"fort-awesome\": [512, 512, [], \"f286\", \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"],\n    \"fort-awesome-alt\": [512, 512, [], \"f3a3\", \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"],\n    \"forumbee\": [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"],\n    \"foursquare\": [368, 512, [], \"f180\", \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"],\n    \"free-code-camp\": [576, 512, [], \"f2c5\", \"M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z\"],\n    \"freebsd\": [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],\n    \"fulcrum\": [320, 512, [], \"f50b\", \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"],\n    \"galactic-republic\": [496, 512, [], \"f50c\", \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"],\n    \"galactic-senate\": [512, 512, [], \"f50d\", \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"],\n    \"get-pocket\": [448, 512, [], \"f265\", \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"],\n    \"gg\": [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"],\n    \"gg-circle\": [512, 512, [], \"f261\", \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"],\n    \"git\": [512, 512, [], \"f1d3\", \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"],\n    \"git-alt\": [448, 512, [], \"f841\", \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"],\n    \"git-square\": [448, 512, [], \"f1d2\", \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"],\n    \"github\": [496, 512, [], \"f09b\", \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],\n    \"github-alt\": [480, 512, [], \"f113\", \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\n    \"github-square\": [448, 512, [], \"f092\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"],\n    \"gitkraken\": [592, 512, [], \"f3a6\", \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"],\n    \"gitlab\": [512, 512, [], \"f296\", \"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"],\n    \"gitter\": [384, 512, [], \"f426\", \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"],\n    \"glide\": [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"],\n    \"glide-g\": [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],\n    \"gofore\": [400, 512, [], \"f3a7\", \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],\n    \"goodreads\": [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\n    \"goodreads-g\": [384, 512, [], \"f3a9\", \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\n    \"google\": [488, 512, [], \"f1a0\", \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"],\n    \"google-drive\": [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],\n    \"google-play\": [512, 512, [], \"f3ab\", \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"],\n    \"google-plus\": [496, 512, [], \"f2b3\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z\"],\n    \"google-plus-g\": [640, 512, [], \"f0d5\", \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"],\n    \"google-plus-square\": [448, 512, [], \"f0d4\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"],\n    \"google-wallet\": [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\n    \"gratipay\": [496, 512, [], \"f184\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"],\n    \"grav\": [512, 512, [], \"f2d6\", \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"],\n    \"gripfire\": [384, 512, [], \"f3ac\", \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\n    \"grunt\": [384, 512, [], \"f3ad\", \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],\n    \"gulp\": [256, 512, [], \"f3ae\", \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"],\n    \"hacker-news\": [448, 512, [], \"f1d4\", \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"hacker-news-square\": [448, 512, [], \"f3af\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"],\n    \"hackerrank\": [512, 512, [], \"f5f7\", \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"],\n    \"hips\": [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],\n    \"hire-a-helper\": [512, 512, [], \"f3b0\", \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\n    \"hooli\": [640, 512, [], \"f427\", \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"],\n    \"hornbill\": [512, 512, [], \"f592\", \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"],\n    \"hotjar\": [448, 512, [], \"f3b1\", \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"],\n    \"houzz\": [448, 512, [], \"f27c\", \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"],\n    \"html5\": [384, 512, [], \"f13b\", \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"],\n    \"hubspot\": [512, 512, [], \"f3b2\", \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"],\n    \"imdb\": [448, 512, [], \"f2d8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"],\n    \"instagram\": [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n    \"intercom\": [448, 512, [], \"f7af\", \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"],\n    \"internet-explorer\": [512, 512, [], \"f26b\", \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"],\n    \"invision\": [448, 512, [], \"f7b0\", \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\n    \"ioxhost\": [640, 512, [], \"f208\", \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\n    \"itch-io\": [512, 512, [], \"f83a\", \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"],\n    \"itunes\": [448, 512, [], \"f3b4\", \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"],\n    \"itunes-note\": [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"],\n    \"java\": [384, 512, [], \"f4e4\", \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"],\n    \"jedi-order\": [448, 512, [], \"f50e\", \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],\n    \"jenkins\": [512, 512, [], \"f3b6\", \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],\n    \"jira\": [496, 512, [], \"f7b1\", \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"],\n    \"joget\": [496, 512, [], \"f3b7\", \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"],\n    \"joomla\": [448, 512, [], \"f1aa\", \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],\n    \"js\": [448, 512, [], \"f3b8\", \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"js-square\": [448, 512, [], \"f3b9\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n    \"jsfiddle\": [576, 512, [], \"f1cc\", \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"],\n    \"kaggle\": [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"],\n    \"keybase\": [448, 512, [], \"f4f5\", \"M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z\"],\n    \"keycdn\": [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"],\n    \"kickstarter\": [448, 512, [], \"f3bb\", \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"],\n    \"kickstarter-k\": [384, 512, [], \"f3bc\", \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"],\n    \"korvue\": [446, 512, [], \"f42f\", \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"],\n    \"laravel\": [640, 512, [], \"f3bd\", \"M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z\"],\n    \"lastfm\": [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],\n    \"lastfm-square\": [448, 512, [], \"f203\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"],\n    \"leanpub\": [576, 512, [], \"f212\", \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"],\n    \"less\": [640, 512, [], \"f41d\", \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"],\n    \"line\": [448, 512, [], \"f3c0\", \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"],\n    \"linkedin\": [448, 512, [], \"f08c\", \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"],\n    \"linkedin-in\": [448, 512, [], \"f0e1\", \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"],\n    \"linode\": [448, 512, [], \"f2b8\", \"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"],\n    \"linux\": [448, 512, [], \"f17c\", \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],\n    \"lyft\": [512, 512, [], \"f3c3\", \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"],\n    \"magento\": [448, 512, [], \"f3c4\", \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"],\n    \"mailchimp\": [448, 512, [], \"f59e\", \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"],\n    \"mandalorian\": [448, 512, [], \"f50f\", \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"],\n    \"markdown\": [640, 512, [], \"f60f\", \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"],\n    \"mastodon\": [448, 512, [], \"f4f6\", \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"],\n    \"maxcdn\": [512, 512, [], \"f136\", \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"],\n    \"medapps\": [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],\n    \"medium\": [448, 512, [], \"f23a\", \"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"],\n    \"medium-m\": [512, 512, [], \"f3c7\", \"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"],\n    \"medrt\": [544, 512, [], \"f3c8\", \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"],\n    \"meetup\": [512, 512, [], \"f2e0\", \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"],\n    \"megaport\": [496, 512, [], \"f5a3\", \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"],\n    \"mendeley\": [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],\n    \"microsoft\": [448, 512, [], \"f3ca\", \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"],\n    \"mix\": [448, 512, [], \"f3cb\", \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"],\n    \"mixcloud\": [640, 512, [], \"f289\", \"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"],\n    \"mizuni\": [496, 512, [], \"f3cc\", \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"],\n    \"modx\": [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"],\n    \"monero\": [496, 512, [], \"f3d0\", \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"],\n    \"napster\": [496, 512, [], \"f3d2\", \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\n    \"neos\": [512, 512, [], \"f612\", \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"],\n    \"nimblr\": [384, 512, [], \"f5a8\", \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"],\n    \"node\": [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"],\n    \"node-js\": [448, 512, [], \"f3d3\", \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\n    \"npm\": [576, 512, [], \"f3d4\", \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"],\n    \"ns8\": [640, 512, [], \"f3d5\", \"M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z\"],\n    \"nutritionix\": [400, 512, [], \"f3d6\", \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],\n    \"odnoklassniki\": [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"],\n    \"odnoklassniki-square\": [448, 512, [], \"f264\", \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"],\n    \"old-republic\": [496, 512, [], \"f510\", \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"],\n    \"opencart\": [640, 512, [], \"f23d\", \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],\n    \"openid\": [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"],\n    \"opera\": [496, 512, [], \"f26a\", \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\n    \"optin-monster\": [576, 512, [], \"f23c\", \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"],\n    \"osi\": [512, 512, [], \"f41a\", \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\n    \"page4\": [496, 512, [], \"f3d7\", \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],\n    \"pagelines\": [384, 512, [], \"f18c\", \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],\n    \"palfed\": [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"],\n    \"patreon\": [512, 512, [], \"f3d9\", \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"],\n    \"paypal\": [384, 512, [], \"f1ed\", \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],\n    \"penny-arcade\": [640, 512, [], \"f704\", \"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"],\n    \"periscope\": [448, 512, [], \"f3da\", \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],\n    \"phabricator\": [496, 512, [], \"f3db\", \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"],\n    \"phoenix-framework\": [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],\n    \"phoenix-squadron\": [512, 512, [], \"f511\", \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"],\n    \"php\": [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"],\n    \"pied-piper\": [448, 512, [], \"f2ae\", \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\n    \"pied-piper-alt\": [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\n    \"pied-piper-hat\": [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\n    \"pied-piper-pp\": [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],\n    \"pinterest\": [496, 512, [], \"f0d2\", \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"],\n    \"pinterest-p\": [384, 512, [], \"f231\", \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"],\n    \"pinterest-square\": [448, 512, [], \"f0d3\", \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"],\n    \"playstation\": [576, 512, [], \"f3df\", \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],\n    \"product-hunt\": [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"],\n    \"pushed\": [432, 512, [], \"f3e1\", \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\n    \"python\": [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"],\n    \"qq\": [448, 512, [], \"f1d6\", \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"],\n    \"quinscape\": [512, 512, [], \"f459\", \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"],\n    \"quora\": [448, 512, [], \"f2c4\", \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"],\n    \"r-project\": [581, 512, [], \"f4f7\", \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"],\n    \"raspberry-pi\": [407, 512, [], \"f7bb\", \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],\n    \"ravelry\": [512, 512, [], \"f2d9\", \"M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z\"],\n    \"react\": [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"],\n    \"reacteurope\": [576, 512, [], \"f75d\", \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"],\n    \"readme\": [576, 512, [], \"f4d5\", \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"],\n    \"rebel\": [512, 512, [], \"f1d0\", \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"],\n    \"red-river\": [448, 512, [], \"f3e3\", \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"],\n    \"reddit\": [512, 512, [], \"f1a1\", \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"],\n    \"reddit-alien\": [512, 512, [], \"f281\", \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"],\n    \"reddit-square\": [448, 512, [], \"f1a2\", \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"],\n    \"redhat\": [512, 512, [], \"f7bc\", \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"],\n    \"renren\": [512, 512, [], \"f18b\", \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],\n    \"replyd\": [448, 512, [], \"f3e6\", \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"],\n    \"researchgate\": [448, 512, [], \"f4f8\", \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],\n    \"resolving\": [496, 512, [], \"f3e7\", \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],\n    \"rev\": [448, 512, [], \"f5b2\", \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"],\n    \"rocketchat\": [576, 512, [], \"f3e8\", \"M486.41 107.57c-76.93-50.83-179.18-62.4-264.12-47.07C127.26-31.16 20.77 11 0 23.12c0 0 73.08 62.1 61.21 116.49-86.52 88.2-45.39 186.4 0 232.77C73.08 426.77 0 488.87 0 488.87c20.57 12.16 126.77 54.19 222.29-37 84.75 15.23 187 3.76 264.12-47.16 119.26-76.14 119.65-220.61 0-297.15zM294.18 404.22a339.53 339.53 0 0 1-88.11-11.37l-19.77 19.09a179.74 179.74 0 0 1-36.59 27.39A143.14 143.14 0 0 1 98 454.06c1-1.78 1.88-3.56 2.77-5.24q29.67-55 16-98.69c-32.53-25.61-52-58.34-52-94.13 0-82 102.74-148.43 229.41-148.43S523.59 174 523.59 256 420.85 404.22 294.18 404.22zM184.12 291.3a34.32 34.32 0 0 1-34.8-33.72c-.7-45.39 67.83-46.38 68.52-1.09v.51a34 34 0 0 1-33.72 34.32zm73.77-33.72c-.79-45.39 67.74-46.48 68.53-1.19v.61c.39 45.08-67.74 45.57-68.53.58zm143.38 33.72a34.33 34.33 0 0 1-34.81-33.72c-.69-45.39 67.84-46.38 68.53-1.09v.51a33.89 33.89 0 0 1-33.72 34.32z\"],\n    \"rockrms\": [496, 512, [], \"f3e9\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"],\n    \"safari\": [512, 512, [], \"f267\", \"M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z\"],\n    \"salesforce\": [640, 512, [], \"f83b\", \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"],\n    \"sass\": [640, 512, [], \"f41e\", \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"],\n    \"schlix\": [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\n    \"scribd\": [384, 512, [], \"f28a\", \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],\n    \"searchengin\": [460, 512, [], \"f3eb\", \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],\n    \"sellcast\": [448, 512, [], \"f2da\", \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\n    \"sellsy\": [640, 512, [], \"f213\", \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"],\n    \"servicestack\": [496, 512, [], \"f3ec\", \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"],\n    \"shirtsinbulk\": [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"],\n    \"shopware\": [512, 512, [], \"f5b5\", \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"],\n    \"simplybuilt\": [512, 512, [], \"f215\", \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"],\n    \"sistrix\": [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"],\n    \"sith\": [448, 512, [], \"f512\", \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"],\n    \"sketch\": [512, 512, [], \"f7c6\", \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"],\n    \"skyatlas\": [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\n    \"skype\": [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],\n    \"slack\": [448, 512, [], \"f198\", \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"],\n    \"slack-hash\": [448, 512, [], \"f3ef\", \"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"],\n    \"slideshare\": [512, 512, [], \"f1e7\", \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"],\n    \"snapchat\": [496, 512, [], \"f2ab\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"],\n    \"snapchat-ghost\": [512, 512, [], \"f2ac\", \"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"],\n    \"snapchat-square\": [448, 512, [], \"f2ad\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"],\n    \"soundcloud\": [640, 512, [], \"f1be\", \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"],\n    \"sourcetree\": [448, 512, [], \"f7d3\", \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\n    \"speakap\": [448, 512, [], \"f3f3\", \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"],\n    \"speaker-deck\": [512, 512, [], \"f83c\", \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"],\n    \"spotify\": [496, 512, [], \"f1bc\", \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\n    \"squarespace\": [512, 512, [], \"f5be\", \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"],\n    \"stack-exchange\": [448, 512, [], \"f18d\", \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"],\n    \"stack-overflow\": [384, 512, [], \"f16c\", \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"],\n    \"stackpath\": [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"],\n    \"staylinked\": [440, 512, [], \"f3f5\", \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"],\n    \"steam\": [496, 512, [], \"f1b6\", \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"],\n    \"steam-square\": [448, 512, [], \"f1b7\", \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"],\n    \"steam-symbol\": [448, 512, [], \"f3f6\", \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"],\n    \"sticker-mule\": [576, 512, [], \"f3f7\", \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\n    \"strava\": [384, 512, [], \"f428\", \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"],\n    \"stripe\": [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"],\n    \"stripe-s\": [384, 512, [], \"f42a\", \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],\n    \"studiovinari\": [512, 512, [], \"f3f8\", \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\n    \"stumbleupon\": [512, 512, [], \"f1a4\", \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"],\n    \"stumbleupon-circle\": [496, 512, [], \"f1a3\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"],\n    \"superpowers\": [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],\n    \"supple\": [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"],\n    \"suse\": [640, 512, [], \"f7d6\", \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"],\n    \"symfony\": [512, 512, [], \"f83d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"],\n    \"teamspeak\": [512, 512, [], \"f4f9\", \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"],\n    \"telegram\": [496, 512, [], \"f2c6\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"],\n    \"telegram-plane\": [448, 512, [], \"f3fe\", \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"],\n    \"tencent-weibo\": [384, 512, [], \"f1d5\", \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"],\n    \"the-red-yeti\": [512, 512, [], \"f69d\", \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"],\n    \"themeco\": [448, 512, [], \"f5c6\", \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"],\n    \"themeisle\": [512, 512, [], \"f2b2\", \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"],\n    \"think-peaks\": [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"],\n    \"trade-federation\": [496, 512, [], \"f513\", \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"],\n    \"trello\": [448, 512, [], \"f181\", \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"],\n    \"tripadvisor\": [576, 512, [], \"f262\", \"M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z\"],\n    \"tumblr\": [320, 512, [], \"f173\", \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],\n    \"tumblr-square\": [448, 512, [], \"f174\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"],\n    \"twitch\": [448, 512, [], \"f1e8\", \"M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z\"],\n    \"twitter\": [512, 512, [], \"f099\", \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"],\n    \"twitter-square\": [448, 512, [], \"f081\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"],\n    \"typo3\": [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\n    \"uber\": [448, 512, [], \"f402\", \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"],\n    \"ubuntu\": [496, 512, [], \"f7df\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"],\n    \"uikit\": [448, 512, [], \"f403\", \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"],\n    \"uniregistry\": [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"],\n    \"untappd\": [640, 512, [], \"f405\", \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],\n    \"ups\": [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],\n    \"usb\": [640, 512, [], \"f287\", \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"],\n    \"usps\": [576, 512, [], \"f7e1\", \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"],\n    \"ussunnah\": [512, 512, [], \"f407\", \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"],\n    \"vaadin\": [448, 512, [], \"f408\", \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],\n    \"viacoin\": [384, 512, [], \"f237\", \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"],\n    \"viadeo\": [448, 512, [], \"f2a9\", \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],\n    \"viadeo-square\": [448, 512, [], \"f2aa\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"],\n    \"viber\": [512, 512, [], \"f409\", \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],\n    \"vimeo\": [448, 512, [], \"f40a\", \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"],\n    \"vimeo-square\": [448, 512, [], \"f194\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"],\n    \"vimeo-v\": [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],\n    \"vine\": [384, 512, [], \"f1ca\", \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\n    \"vk\": [576, 512, [], \"f189\", \"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"],\n    \"vnv\": [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"],\n    \"vuejs\": [448, 512, [], \"f41f\", \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"],\n    \"waze\": [512, 512, [], \"f83f\", \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"],\n    \"weebly\": [512, 512, [], \"f5cc\", \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"],\n    \"weibo\": [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],\n    \"weixin\": [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"],\n    \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"],\n    \"whatsapp-square\": [448, 512, [], \"f40c\", \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"],\n    \"whmcs\": [448, 512, [], \"f40d\", \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],\n    \"wikipedia-w\": [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"],\n    \"windows\": [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"],\n    \"wix\": [640, 512, [], \"f5cf\", \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"],\n    \"wizards-of-the-coast\": [640, 512, [], \"f730\", \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"],\n    \"wolf-pack-battalion\": [512, 512, [], \"f514\", \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"],\n    \"wordpress\": [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"],\n    \"wordpress-simple\": [512, 512, [], \"f411\", \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],\n    \"wpbeginner\": [512, 512, [], \"f297\", \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"],\n    \"wpexplorer\": [512, 512, [], \"f2de\", \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],\n    \"wpforms\": [448, 512, [], \"f298\", \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"],\n    \"wpressr\": [496, 512, [], \"f3e4\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"],\n    \"xbox\": [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],\n    \"xing\": [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"],\n    \"xing-square\": [448, 512, [], \"f169\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"],\n    \"y-combinator\": [448, 512, [], \"f23b\", \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"],\n    \"yahoo\": [448, 512, [], \"f19e\", \"M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z\"],\n    \"yammer\": [512, 512, [], \"f840\", \"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"],\n    \"yandex\": [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"],\n    \"yandex-international\": [320, 512, [], \"f414\", \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"],\n    \"yarn\": [496, 512, [], \"f7e3\", \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\n    \"yelp\": [384, 512, [], \"f1e9\", \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"],\n    \"yoast\": [448, 512, [], \"f2b1\", \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"],\n    \"youtube\": [576, 512, [], \"f167\", \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"],\n    \"youtube-square\": [448, 512, [], \"f431\", \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"],\n    \"zhihu\": [640, 512, [], \"f63f\", \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fab', icons);\n  });\n\n}());\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/conflict-detection.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  (factory((global['fontawesome-free-conflict-detection'] = {})));\n}(this, (function (exports) { 'use strict';\n\n  function _typeof(obj) {\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function (obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var functions = [];\n\n  var listener = function listener() {\n    DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n    loaded = 1;\n    functions.map(function (fn) {\n      return fn();\n    });\n  };\n\n  var loaded = false;\n\n  if (IS_DOM) {\n    loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n    if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n  }\n\n  function domready (fn) {\n    if (!IS_DOM) return;\n    loaded ? setTimeout(fn, 0) : functions.push(fn);\n  }\n\n  function report (_ref) {\n    var nodesTested = _ref.nodesTested,\n        nodesFound = _ref.nodesFound;\n    var timedOutTests = {};\n\n    for (var key in nodesFound) {\n      if (!(nodesTested.conflict[key] || nodesTested.noConflict[key])) {\n        timedOutTests[key] = nodesFound[key];\n      }\n    }\n\n    var conflictsCount = Object.keys(nodesTested.conflict).length;\n\n    if (conflictsCount > 0) {\n      console.info(\"%cConflict\".concat(conflictsCount > 1 ? 's' : '', \" found:\"), 'color: darkred; font-size: large');\n      var data = {};\n\n      for (var _key in nodesTested.conflict) {\n        var item = nodesTested.conflict[_key];\n        data[_key] = {\n          'tagName': item.tagName,\n          'src/href': item.src || item.href || 'n/a',\n          'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)'\n        };\n      }\n\n      console.table(data);\n    }\n\n    var noConflictsCount = Object.keys(nodesTested.noConflict).length;\n\n    if (noConflictsCount > 0) {\n      console.info(\"%cNo conflict\".concat(noConflictsCount > 1 ? 's' : '', \" found with \").concat(noConflictsCount == 1 ? 'this' : 'these', \":\"), 'color: green; font-size: large');\n      var _data = {};\n\n      for (var _key2 in nodesTested.noConflict) {\n        var _item = nodesTested.noConflict[_key2];\n        _data[_key2] = {\n          'tagName': _item.tagName,\n          'src/href': _item.src || _item.href || 'n/a',\n          'innerText excerpt': _item.innerText && _item.innerText !== '' ? _item.innerText.slice(0, 200) + '...' : '(empty)'\n        };\n      }\n\n      console.table(_data);\n    }\n\n    var timeOutCount = Object.keys(timedOutTests).length;\n\n    if (timeOutCount > 0) {\n      console.info(\"%cLeftovers--we timed out before collecting test results for \".concat(timeOutCount == 1 ? 'this' : 'these', \":\"), 'color: blue; font-size: large');\n      var _data2 = {};\n\n      for (var _key3 in timedOutTests) {\n        var _item2 = timedOutTests[_key3];\n        _data2[_key3] = {\n          'tagName': _item2.tagName,\n          'src/href': _item2.src || _item2.href || 'n/a',\n          'innerText excerpt': _item2.innerText && _item2.innerText !== '' ? _item2.innerText.slice(0, 200) + '...' : '(empty)'\n        };\n      }\n\n      console.table(_data2);\n    }\n  }\n\n  var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n  function createCommonjsModule(fn, module) {\n  \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n  }\n\n  var md5 = createCommonjsModule(function (module) {\n\n    (function ($) {\n      /**\n       * Add integers, wrapping at 2^32.\n       * This uses 16-bit operations internally to work around bugs in interpreters.\n       *\n       * @param {number} x First integer\n       * @param {number} y Second integer\n       * @returns {number} Sum\n       */\n\n      function safeAdd(x, y) {\n        var lsw = (x & 0xffff) + (y & 0xffff);\n        var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n        return msw << 16 | lsw & 0xffff;\n      }\n      /**\n       * Bitwise rotate a 32-bit number to the left.\n       *\n       * @param {number} num 32-bit number\n       * @param {number} cnt Rotation count\n       * @returns {number} Rotated number\n       */\n\n\n      function bitRotateLeft(num, cnt) {\n        return num << cnt | num >>> 32 - cnt;\n      }\n      /**\n       * Basic operation the algorithm uses.\n       *\n       * @param {number} q q\n       * @param {number} a a\n       * @param {number} b b\n       * @param {number} x x\n       * @param {number} s s\n       * @param {number} t t\n       * @returns {number} Result\n       */\n\n\n      function md5cmn(q, a, b, x, s, t) {\n        return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n      }\n      /**\n       * Basic operation the algorithm uses.\n       *\n       * @param {number} a a\n       * @param {number} b b\n       * @param {number} c c\n       * @param {number} d d\n       * @param {number} x x\n       * @param {number} s s\n       * @param {number} t t\n       * @returns {number} Result\n       */\n\n\n      function md5ff(a, b, c, d, x, s, t) {\n        return md5cmn(b & c | ~b & d, a, b, x, s, t);\n      }\n      /**\n       * Basic operation the algorithm uses.\n       *\n       * @param {number} a a\n       * @param {number} b b\n       * @param {number} c c\n       * @param {number} d d\n       * @param {number} x x\n       * @param {number} s s\n       * @param {number} t t\n       * @returns {number} Result\n       */\n\n\n      function md5gg(a, b, c, d, x, s, t) {\n        return md5cmn(b & d | c & ~d, a, b, x, s, t);\n      }\n      /**\n       * Basic operation the algorithm uses.\n       *\n       * @param {number} a a\n       * @param {number} b b\n       * @param {number} c c\n       * @param {number} d d\n       * @param {number} x x\n       * @param {number} s s\n       * @param {number} t t\n       * @returns {number} Result\n       */\n\n\n      function md5hh(a, b, c, d, x, s, t) {\n        return md5cmn(b ^ c ^ d, a, b, x, s, t);\n      }\n      /**\n       * Basic operation the algorithm uses.\n       *\n       * @param {number} a a\n       * @param {number} b b\n       * @param {number} c c\n       * @param {number} d d\n       * @param {number} x x\n       * @param {number} s s\n       * @param {number} t t\n       * @returns {number} Result\n       */\n\n\n      function md5ii(a, b, c, d, x, s, t) {\n        return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n      }\n      /**\n       * Calculate the MD5 of an array of little-endian words, and a bit length.\n       *\n       * @param {Array} x Array of little-endian words\n       * @param {number} len Bit length\n       * @returns {Array<number>} MD5 Array\n       */\n\n\n      function binlMD5(x, len) {\n        /* append padding */\n        x[len >> 5] |= 0x80 << len % 32;\n        x[(len + 64 >>> 9 << 4) + 14] = len;\n        var i;\n        var olda;\n        var oldb;\n        var oldc;\n        var oldd;\n        var a = 1732584193;\n        var b = -271733879;\n        var c = -1732584194;\n        var d = 271733878;\n\n        for (i = 0; i < x.length; i += 16) {\n          olda = a;\n          oldb = b;\n          oldc = c;\n          oldd = d;\n          a = md5ff(a, b, c, d, x[i], 7, -680876936);\n          d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n          c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n          b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n          a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n          d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n          c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n          b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n          a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n          d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n          c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n          b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n          a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n          d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n          c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n          b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n          a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n          d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n          c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n          b = md5gg(b, c, d, a, x[i], 20, -373897302);\n          a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n          d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n          c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n          b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n          a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n          d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n          c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n          b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n          a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n          d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n          c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n          b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n          a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n          d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n          c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n          b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n          a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n          d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n          c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n          b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n          a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n          d = md5hh(d, a, b, c, x[i], 11, -358537222);\n          c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n          b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n          a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n          d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n          c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n          b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n          a = md5ii(a, b, c, d, x[i], 6, -198630844);\n          d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n          c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n          b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n          a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n          d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n          c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n          b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n          a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n          d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n          c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n          b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n          a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n          d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n          c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n          b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n          a = safeAdd(a, olda);\n          b = safeAdd(b, oldb);\n          c = safeAdd(c, oldc);\n          d = safeAdd(d, oldd);\n        }\n\n        return [a, b, c, d];\n      }\n      /**\n       * Convert an array of little-endian words to a string\n       *\n       * @param {Array<number>} input MD5 Array\n       * @returns {string} MD5 string\n       */\n\n\n      function binl2rstr(input) {\n        var i;\n        var output = '';\n        var length32 = input.length * 32;\n\n        for (i = 0; i < length32; i += 8) {\n          output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff);\n        }\n\n        return output;\n      }\n      /**\n       * Convert a raw string to an array of little-endian words\n       * Characters >255 have their high-byte silently ignored.\n       *\n       * @param {string} input Raw input string\n       * @returns {Array<number>} Array of little-endian words\n       */\n\n\n      function rstr2binl(input) {\n        var i;\n        var output = [];\n        output[(input.length >> 2) - 1] = undefined;\n\n        for (i = 0; i < output.length; i += 1) {\n          output[i] = 0;\n        }\n\n        var length8 = input.length * 8;\n\n        for (i = 0; i < length8; i += 8) {\n          output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32;\n        }\n\n        return output;\n      }\n      /**\n       * Calculate the MD5 of a raw string\n       *\n       * @param {string} s Input string\n       * @returns {string} Raw MD5 string\n       */\n\n\n      function rstrMD5(s) {\n        return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));\n      }\n      /**\n       * Calculates the HMAC-MD5 of a key and some data (raw strings)\n       *\n       * @param {string} key HMAC key\n       * @param {string} data Raw input string\n       * @returns {string} Raw MD5 string\n       */\n\n\n      function rstrHMACMD5(key, data) {\n        var i;\n        var bkey = rstr2binl(key);\n        var ipad = [];\n        var opad = [];\n        var hash;\n        ipad[15] = opad[15] = undefined;\n\n        if (bkey.length > 16) {\n          bkey = binlMD5(bkey, key.length * 8);\n        }\n\n        for (i = 0; i < 16; i += 1) {\n          ipad[i] = bkey[i] ^ 0x36363636;\n          opad[i] = bkey[i] ^ 0x5c5c5c5c;\n        }\n\n        hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);\n        return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));\n      }\n      /**\n       * Convert a raw string to a hex string\n       *\n       * @param {string} input Raw input string\n       * @returns {string} Hex encoded string\n       */\n\n\n      function rstr2hex(input) {\n        var hexTab = '0123456789abcdef';\n        var output = '';\n        var x;\n        var i;\n\n        for (i = 0; i < input.length; i += 1) {\n          x = input.charCodeAt(i);\n          output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f);\n        }\n\n        return output;\n      }\n      /**\n       * Encode a string as UTF-8\n       *\n       * @param {string} input Input string\n       * @returns {string} UTF8 string\n       */\n\n\n      function str2rstrUTF8(input) {\n        return unescape(encodeURIComponent(input));\n      }\n      /**\n       * Encodes input string as raw MD5 string\n       *\n       * @param {string} s Input string\n       * @returns {string} Raw MD5 string\n       */\n\n\n      function rawMD5(s) {\n        return rstrMD5(str2rstrUTF8(s));\n      }\n      /**\n       * Encodes input string as Hex encoded string\n       *\n       * @param {string} s Input string\n       * @returns {string} Hex encoded string\n       */\n\n\n      function hexMD5(s) {\n        return rstr2hex(rawMD5(s));\n      }\n      /**\n       * Calculates the raw HMAC-MD5 for the given key and data\n       *\n       * @param {string} k HMAC key\n       * @param {string} d Input string\n       * @returns {string} Raw MD5 string\n       */\n\n\n      function rawHMACMD5(k, d) {\n        return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));\n      }\n      /**\n       * Calculates the Hex encoded HMAC-MD5 for the given key and data\n       *\n       * @param {string} k HMAC key\n       * @param {string} d Input string\n       * @returns {string} Raw MD5 string\n       */\n\n\n      function hexHMACMD5(k, d) {\n        return rstr2hex(rawHMACMD5(k, d));\n      }\n      /**\n       * Calculates MD5 value for a given string.\n       * If a key is provided, calculates the HMAC-MD5 value.\n       * Returns a Hex encoded string unless the raw argument is given.\n       *\n       * @param {string} string Input string\n       * @param {string} [key] HMAC key\n       * @param {boolean} raw Raw oytput switch\n       * @returns {string} MD5 output\n       */\n\n\n      function md5(string, key, raw) {\n        if (!key) {\n          if (!raw) {\n            return hexMD5(string);\n          }\n\n          return rawMD5(string);\n        }\n\n        if (!raw) {\n          return hexHMACMD5(key, string);\n        }\n\n        return rawHMACMD5(key, string);\n      }\n\n      if (module.exports) {\n        module.exports = md5;\n      } else {\n        $.md5 = md5;\n      }\n    })(commonjsGlobal);\n  });\n\n  function md5ForNode(node) {\n    if (null === node || 'object' !== _typeof(node)) return undefined;\n\n    if (node.src) {\n      return md5(node.src);\n    } else if (node.href) {\n      return md5(node.href);\n    } else if (node.innerText && '' !== node.innerText) {\n      // eslint-disable-line yoda\n      return md5(node.innerText);\n    } else {\n      return undefined;\n    }\n  }\n\n  var diagScriptId = 'fa-kits-diag';\n  var nodeUnderTestId = 'fa-kits-node-under-test';\n  var md5Attr = 'data-md5';\n  var detectionIgnoreAttr = 'data-fa-detection-ignore';\n  var timeoutAttr = 'data-fa-detection-timeout';\n  var resultsCollectionMaxWaitAttr = 'data-fa-detection-results-collection-max-wait';\n\n  function pollUntil(_ref) {\n    var _ref$fn = _ref.fn,\n        fn = _ref$fn === void 0 ? function () {\n      return true;\n    } : _ref$fn,\n        _ref$initialDuration = _ref.initialDuration,\n        initialDuration = _ref$initialDuration === void 0 ? 1 : _ref$initialDuration,\n        _ref$maxDuration = _ref.maxDuration,\n        maxDuration = _ref$maxDuration === void 0 ? WINDOW.FontAwesomeDetection.timeout : _ref$maxDuration,\n        _ref$showProgress = _ref.showProgress,\n        showProgress = _ref$showProgress === void 0 ? false : _ref$showProgress,\n        progressIndicator = _ref.progressIndicator;\n    return new Promise(function (resolve, reject) {\n      // eslint-disable-line compat/compat\n      function poll(duration, cumulativeDuration) {\n        setTimeout(function () {\n          var result = fn();\n\n          if (showProgress) {\n            console.info(progressIndicator);\n          }\n\n          if (!!result) {\n            // eslint-disable-line no-extra-boolean-cast\n            resolve(result);\n          } else {\n            var nextDuration = 250;\n            var nextCumulativeDuration = nextDuration + cumulativeDuration;\n\n            if (nextCumulativeDuration <= maxDuration) {\n              poll(nextDuration, nextCumulativeDuration);\n            } else {\n              reject('timeout'); // eslint-disable-line prefer-promise-reject-errors\n            }\n          }\n        }, duration);\n      }\n\n      poll(initialDuration, 0);\n    });\n  }\n\n  function detectWebfontConflicts() {\n    var linkTags = Array.from(DOCUMENT.getElementsByTagName('link')).filter(function (t) {\n      return !t.hasAttribute(detectionIgnoreAttr);\n    });\n    var styleTags = Array.from(DOCUMENT.getElementsByTagName('style')).filter(function (t) {\n      if (t.hasAttribute(detectionIgnoreAttr)) {\n        return false;\n      } // If the browser has loaded the FA5 CSS, let's not test that <style> element.\n      // Its enough that we'll be testing for traces of the corresponding JS being loaded, and testing\n      // this <style> would only produce a false negative anyway.\n\n\n      if (WINDOW.FontAwesomeConfig && t.innerText.match(new RegExp(\"svg:not\\\\(:root\\\\)\\\\.\".concat(WINDOW.FontAwesomeConfig.replacementClass)))) {\n        return false;\n      }\n\n      return true;\n    });\n\n    function runDiag(scriptOrLinkTag, md5) {\n      var diagFrame = DOCUMENT.createElement('iframe'); // Using \"visibility: hidden; position: absolute\" instead of \"display: none;\" because\n      // Firefox will not return the expected results for getComputedStyle if our iframe has display: none.\n\n      diagFrame.setAttribute('style', 'visibility: hidden; position: absolute; height: 0; width: 0;');\n      var testIconId = 'fa-test-icon-' + md5;\n      var iTag = DOCUMENT.createElement('i');\n      iTag.setAttribute('class', 'fa fa-coffee');\n      iTag.setAttribute('id', testIconId);\n      var diagScript = DOCUMENT.createElement('script');\n      diagScript.setAttribute('id', diagScriptId); // WARNING: this function will be toString()'d and assigned to innerText of the diag script\n      // element that we'll be putting into a diagnostic iframe.\n      // That means that this code won't compile until after the outer script has run and injected\n      // this code into the iframe. There are some compile time errors that might occur there.\n      // For example, using single line (double-slash) comments like this one inside that function\n      // will probably cause it to choke. Chrome will show an error like this:\n      // Uncaught SyntaxError: Unexpected end of input\n\n      var diagScriptFun = function diagScriptFun(nodeUnderTestId, testIconId, md5, parentOrigin) {\n        parent.FontAwesomeDetection.__pollUntil({\n          fn: function fn() {\n            var iEl = document.getElementById(testIconId);\n            var computedStyle = window.getComputedStyle(iEl);\n            var fontFamily = computedStyle.getPropertyValue('font-family');\n\n            if (!!fontFamily.match(/FontAwesome/) || !!fontFamily.match(/Font Awesome 5/)) {\n              return true;\n            } else {\n              return false;\n            }\n          }\n        }).then(function () {\n          var node = document.getElementById(nodeUnderTestId);\n          parent.postMessage({\n            type: 'fontawesome-conflict',\n            technology: 'webfont',\n            href: node.href,\n            innerText: node.innerText,\n            tagName: node.tagName,\n            md5: md5\n          }, parentOrigin);\n        }).catch(function (e) {\n          var node = document.getElementById(nodeUnderTestId);\n\n          if (e === 'timeout') {\n            parent.postMessage({\n              type: 'no-conflict',\n              technology: 'webfont',\n              href: node.src,\n              innerText: node.innerText,\n              tagName: node.tagName,\n              md5: md5\n            }, parentOrigin);\n          } else {\n            console.error(e);\n          }\n        });\n      };\n\n      var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;\n      diagScript.innerText = \"(\".concat(diagScriptFun.toString(), \")('\").concat(nodeUnderTestId, \"', '\").concat(testIconId || 'foo', \"', '\").concat(md5, \"', '\").concat(parentOrigin, \"');\");\n\n      diagFrame.onload = function () {\n        diagFrame.contentDocument.head.appendChild(diagScript);\n        diagFrame.contentDocument.head.appendChild(scriptOrLinkTag);\n        diagFrame.contentDocument.body.appendChild(iTag);\n      };\n\n      domready(function () {\n        return DOCUMENT.body.appendChild(diagFrame);\n      });\n    }\n\n    var cssByMD5 = {};\n\n    for (var i = 0; i < linkTags.length; i++) {\n      var linkUnderTest = DOCUMENT.createElement('link');\n      linkUnderTest.setAttribute('id', nodeUnderTestId);\n      linkUnderTest.setAttribute('href', linkTags[i].href);\n      linkUnderTest.setAttribute('rel', linkTags[i].rel);\n      var md5ForLink = md5ForNode(linkTags[i]);\n      linkUnderTest.setAttribute(md5Attr, md5ForLink);\n      cssByMD5[md5ForLink] = linkTags[i];\n      runDiag(linkUnderTest, md5ForLink);\n    }\n\n    for (var _i = 0; _i < styleTags.length; _i++) {\n      var styleUnderTest = DOCUMENT.createElement('style');\n      styleUnderTest.setAttribute('id', nodeUnderTestId);\n      var md5ForStyle = md5ForNode(styleTags[_i]);\n      styleUnderTest.setAttribute(md5Attr, md5ForStyle);\n      styleUnderTest.innerText = styleTags[_i].innerText;\n      cssByMD5[md5ForStyle] = styleTags[_i];\n      runDiag(styleUnderTest, md5ForStyle);\n    }\n\n    return cssByMD5;\n  }\n\n  function detectSvgConflicts(currentScript) {\n    var scripts = Array.from(DOCUMENT.scripts).filter(function (t) {\n      return !t.hasAttribute(detectionIgnoreAttr) && t !== currentScript;\n    });\n    var scriptsByMD5 = {};\n\n    var _loop = function _loop(scriptIdx) {\n      var diagFrame = DOCUMENT.createElement('iframe');\n      diagFrame.setAttribute('style', 'display:none;');\n      var scriptUnderTest = DOCUMENT.createElement('script');\n      scriptUnderTest.setAttribute('id', nodeUnderTestId);\n      var md5ForScript = md5ForNode(scripts[scriptIdx]);\n      scriptUnderTest.setAttribute(md5Attr, md5ForScript);\n      scriptsByMD5[md5ForScript] = scripts[scriptIdx];\n\n      if (scripts[scriptIdx].src !== '') {\n        scriptUnderTest.src = scripts[scriptIdx].src;\n      }\n\n      if (scripts[scriptIdx].innerText !== '') {\n        scriptUnderTest.innerText = scripts[scriptIdx].innerText;\n      }\n\n      scriptUnderTest.async = true;\n      var diagScript = DOCUMENT.createElement('script');\n      diagScript.setAttribute('id', diagScriptId);\n      var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;\n\n      var diagScriptFun = function diagScriptFun(nodeUnderTestId, md5, parentOrigin) {\n        parent.FontAwesomeDetection.__pollUntil({\n          fn: function fn() {\n            return !!window.FontAwesomeConfig;\n          }\n        }).then(function () {\n          var scriptNode = document.getElementById(nodeUnderTestId);\n          parent.postMessage({\n            type: 'fontawesome-conflict',\n            technology: 'js',\n            src: scriptNode.src,\n            innerText: scriptNode.innerText,\n            tagName: scriptNode.tagName,\n            md5: md5\n          }, parentOrigin);\n        }).catch(function (e) {\n          var scriptNode = document.getElementById(nodeUnderTestId);\n\n          if (e === 'timeout') {\n            parent.postMessage({\n              type: 'no-conflict',\n              src: scriptNode.src,\n              innerText: scriptNode.innerText,\n              tagName: scriptNode.tagName,\n              md5: md5\n            }, parentOrigin);\n          } else {\n            console.error(e);\n          }\n        });\n      };\n\n      diagScript.innerText = \"(\".concat(diagScriptFun.toString(), \")('\").concat(nodeUnderTestId, \"', '\").concat(md5ForScript, \"', '\").concat(parentOrigin, \"');\");\n\n      diagFrame.onload = function () {\n        diagFrame.contentDocument.head.appendChild(diagScript);\n        diagFrame.contentDocument.head.appendChild(scriptUnderTest);\n      };\n\n      domready(function () {\n        return DOCUMENT.body.appendChild(diagFrame);\n      });\n    };\n\n    for (var scriptIdx = 0; scriptIdx < scripts.length; scriptIdx++) {\n      _loop(scriptIdx);\n    }\n\n    return scriptsByMD5;\n  }\n\n  function setDoneResults(_ref2) {\n    var nodesTested = _ref2.nodesTested,\n        nodesFound = _ref2.nodesFound;\n    WINDOW.FontAwesomeDetection = WINDOW.FontAwesomeDetection || {};\n    WINDOW.FontAwesomeDetection.nodesTested = nodesTested;\n    WINDOW.FontAwesomeDetection.nodesFound = nodesFound;\n    WINDOW.FontAwesomeDetection.detectionDone = true;\n  }\n\n  function conflictDetection() {\n    var report$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n    var nodesTested = {\n      conflict: {},\n      noConflict: {}\n    };\n\n    WINDOW.onmessage = function (e) {\n      if (WINDOW.location.origin === 'file://' || e.origin === WINDOW.location.origin) {\n        if (e && e.data) {\n          if (e.data.type === 'fontawesome-conflict') {\n            nodesTested.conflict[e.data.md5] = e.data;\n          } else if (e.data.type === 'no-conflict') {\n            nodesTested.noConflict[e.data.md5] = e.data;\n          }\n        }\n      }\n    };\n\n    var scriptsToTest = detectSvgConflicts(DOCUMENT.currentScript);\n    var cssToTest = detectWebfontConflicts();\n\n    var nodesFound = _objectSpread({}, scriptsToTest, cssToTest);\n\n    var testCount = Object.keys(scriptsToTest).length + Object.keys(cssToTest).length; // The resultsCollectionMaxWait allows for the time between when the tests running under\n    // child iframes call postMessage with their results, and when the parent window\n    // receives and handles those events with window.onmessage.\n    // Making it configurable allows us to test the scenario where this timeout is exceeded.\n    // Naming it something very different from \"timeout\" is to help avoid the potential ambiguity between\n    // these two timeout-related settings.\n\n    var masterTimeout = WINDOW.FontAwesomeDetection.timeout + WINDOW.FontAwesomeDetection.resultsCollectionMaxWait;\n    console.group('Font Awesome Detector');\n\n    if (testCount === 0) {\n      console.info('%cAll Good!', 'color: green; font-size: large');\n      console.info('We didn\\'t find anything that needs testing for conflicts. Ergo, no conflicts.');\n    } else {\n      console.info(\"Testing \".concat(testCount, \" possible conflicts.\"));\n      console.info(\"We'll wait about \".concat(Math.round(WINDOW.FontAwesomeDetection.timeout / 10) / 100, \" seconds while testing these and\\n\") + \"then up to another \".concat(Math.round(WINDOW.FontAwesomeDetection.resultsCollectionMaxWait / 10) / 100, \" to allow the browser time\\n\") + \"to accumulate the results. But we'll probably be outta here way before then.\\n\\n\");\n      console.info(\"You can adjust those durations by assigning values to these attributes on the <script> element that loads this detection:\");\n      console.info(\"\\t%c\".concat(timeoutAttr, \"%c: milliseconds to wait for each test before deciding whether it's a conflict.\"), 'font-weight: bold;', 'font-size: normal;');\n      console.info(\"\\t%c\".concat(resultsCollectionMaxWaitAttr, \"%c: milliseconds to wait for the browser to accumulate test results before giving up.\"), 'font-weight: bold;', 'font-size: normal;');\n      pollUntil({\n        // Give this overall timer a little extra cushion\n        maxDuration: masterTimeout,\n        showProgress: true,\n        progressIndicator: 'waiting...',\n        fn: function fn() {\n          return Object.keys(nodesTested.conflict).length + Object.keys(nodesTested.noConflict).length >= testCount;\n        }\n      }).then(function () {\n        console.info('DONE!');\n        setDoneResults({\n          nodesTested: nodesTested,\n          nodesFound: nodesFound\n        });\n        report$$1({\n          nodesTested: nodesTested,\n          nodesFound: nodesFound\n        });\n        console.groupEnd();\n      }).catch(function (e) {\n        if (e === 'timeout') {\n          console.info('TIME OUT! We waited until we got tired. Here\\'s what we found:');\n          setDoneResults({\n            nodesTested: nodesTested,\n            nodesFound: nodesFound\n          });\n          report$$1({\n            nodesTested: nodesTested,\n            nodesFound: nodesFound\n          });\n        } else {\n          console.info('Whoops! We hit an error:', e);\n          console.info('Here\\'s what we\\'d found up until that error:');\n          setDoneResults({\n            nodesTested: nodesTested,\n            nodesFound: nodesFound\n          });\n          report$$1({\n            nodesTested: nodesTested,\n            nodesFound: nodesFound\n          });\n        }\n\n        console.groupEnd();\n      });\n    }\n  } // Allow clients to access, and in some cases, override some properties\n\n  var initialConfig = WINDOW.FontAwesomeDetection || {}; // These can be overridden\n\n  var _default = {\n    report: report,\n    timeout: +(DOCUMENT.currentScript.getAttribute(timeoutAttr) || \"2000\"),\n    resultsCollectionMaxWait: +(DOCUMENT.currentScript.getAttribute(resultsCollectionMaxWaitAttr) || \"5000\")\n  };\n\n  var _config = _objectSpread({}, _default, initialConfig, {\n    // These cannot be overridden\n    __pollUntil: pollUntil,\n    md5ForNode: md5ForNode,\n    detectionDone: false,\n    nodesTested: null,\n    nodesFound: null\n  });\n\n  WINDOW.FontAwesomeDetection = _config;\n\n  var PRODUCTION = function () {\n    try {\n      return process.env.NODE_ENV === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  bunker(function () {\n    if (IS_BROWSER && IS_DOM) {\n      conflictDetection(window.FontAwesomeDetection.report);\n    }\n  });\n\n  exports.conflictDetection = conflictDetection;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/fontawesome.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function () {\n  'use strict';\n\n  function _typeof(obj) {\n    if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n      _typeof = function (obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function (obj) {\n        return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n      };\n    }\n\n    return _typeof(obj);\n  }\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  function _slicedToArray(arr, i) {\n    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n  }\n\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n  }\n\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n      return arr2;\n    }\n  }\n\n  function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) return arr;\n  }\n\n  function _iterableToArray(iter) {\n    if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n  }\n\n  function _iterableToArrayLimit(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  function _nonIterableSpread() {\n    throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n  }\n\n  function _nonIterableRest() {\n    throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n  }\n\n  var noop = function noop() {};\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n  var _MUTATION_OBSERVER = null;\n  var _PERFORMANCE = {\n    mark: noop,\n    measure: noop\n  };\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n    if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n    if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n  var PERFORMANCE = _PERFORMANCE;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var UNITS_IN_GRID = 16;\n  var DEFAULT_FAMILY_PREFIX = 'fa';\n  var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n  var DATA_FA_I2SVG = 'data-fa-i2svg';\n  var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n  var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n  var DATA_PREFIX = 'data-prefix';\n  var DATA_ICON = 'data-icon';\n  var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n  var MUTATION_APPROACH_ASYNC = 'async';\n  var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n  var PREFIX_TO_STYLE = {\n    'fas': 'solid',\n    'far': 'regular',\n    'fal': 'light',\n    'fad': 'duotone',\n    'fab': 'brands',\n    'fa': 'solid'\n  };\n  var STYLE_TO_PREFIX = {\n    'solid': 'fas',\n    'regular': 'far',\n    'light': 'fal',\n    'duotone': 'fad',\n    'brands': 'fab'\n  };\n  var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n  var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;\n  var FONT_WEIGHT_TO_PREFIX = {\n    '900': 'fas',\n    '400': 'far',\n    'normal': 'far',\n    '300': 'fal'\n  };\n  var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n  var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n  var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n  var DUOTONE_CLASSES = {\n    GROUP: 'group',\n    SWAP_OPACITY: 'swap-opacity',\n    PRIMARY: 'primary',\n    SECONDARY: 'secondary'\n  };\n  var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n    return \"\".concat(n, \"x\");\n  })).concat(oneToTwenty.map(function (n) {\n    return \"w-\".concat(n);\n  }));\n\n  var initial = WINDOW.FontAwesomeConfig || {};\n\n  function getAttrConfig(attr) {\n    var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n    if (element) {\n      return element.getAttribute(attr);\n    }\n  }\n\n  function coerce(val) {\n    // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n    // We'll assume that this is an indication that it should be toggled to true\n    // For example <script data-search-pseudo-elements src=\"...\"></script>\n    if (val === '') return true;\n    if (val === 'false') return false;\n    if (val === 'true') return true;\n    return val;\n  }\n\n  if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n    var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n    attrs.forEach(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n          attr = _ref2[0],\n          key = _ref2[1];\n\n      var val = coerce(getAttrConfig(attr));\n\n      if (val !== undefined && val !== null) {\n        initial[key] = val;\n      }\n    });\n  }\n\n  var _default = {\n    familyPrefix: DEFAULT_FAMILY_PREFIX,\n    replacementClass: DEFAULT_REPLACEMENT_CLASS,\n    autoReplaceSvg: true,\n    autoAddCss: true,\n    autoA11y: true,\n    searchPseudoElements: false,\n    observeMutations: true,\n    mutateApproach: 'async',\n    keepOriginalSource: true,\n    measurePerformance: false,\n    showMissingIcons: true\n  };\n\n  var _config = _objectSpread({}, _default, initial);\n\n  if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n  var config = _objectSpread({}, _config);\n\n  WINDOW.FontAwesomeConfig = config;\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  var functions = [];\n\n  var listener = function listener() {\n    DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n    loaded = 1;\n    functions.map(function (fn) {\n      return fn();\n    });\n  };\n\n  var loaded = false;\n\n  if (IS_DOM) {\n    loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n    if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n  }\n\n  function domready (fn) {\n    if (!IS_DOM) return;\n    loaded ? setTimeout(fn, 0) : functions.push(fn);\n  }\n\n  var PENDING = 'pending';\n  var SETTLED = 'settled';\n  var FULFILLED = 'fulfilled';\n  var REJECTED = 'rejected';\n\n  var NOOP = function NOOP() {};\n\n  var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n  var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n  var asyncQueue = [];\n  var asyncTimer;\n\n  function asyncFlush() {\n    // run promise callbacks\n    for (var i = 0; i < asyncQueue.length; i++) {\n      asyncQueue[i][0](asyncQueue[i][1]);\n    } // reset async asyncQueue\n\n\n    asyncQueue = [];\n    asyncTimer = false;\n  }\n\n  function asyncCall(callback, arg) {\n    asyncQueue.push([callback, arg]);\n\n    if (!asyncTimer) {\n      asyncTimer = true;\n      asyncSetTimer(asyncFlush, 0);\n    }\n  }\n\n  function invokeResolver(resolver, promise) {\n    function resolvePromise(value) {\n      resolve(promise, value);\n    }\n\n    function rejectPromise(reason) {\n      reject(promise, reason);\n    }\n\n    try {\n      resolver(resolvePromise, rejectPromise);\n    } catch (e) {\n      rejectPromise(e);\n    }\n  }\n\n  function invokeCallback(subscriber) {\n    var owner = subscriber.owner;\n    var settled = owner._state;\n    var value = owner._data;\n    var callback = subscriber[settled];\n    var promise = subscriber.then;\n\n    if (typeof callback === 'function') {\n      settled = FULFILLED;\n\n      try {\n        value = callback(value);\n      } catch (e) {\n        reject(promise, e);\n      }\n    }\n\n    if (!handleThenable(promise, value)) {\n      if (settled === FULFILLED) {\n        resolve(promise, value);\n      }\n\n      if (settled === REJECTED) {\n        reject(promise, value);\n      }\n    }\n  }\n\n  function handleThenable(promise, value) {\n    var resolved;\n\n    try {\n      if (promise === value) {\n        throw new TypeError('A promises callback cannot return that same promise.');\n      }\n\n      if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n        // then should be retrieved only once\n        var then = value.then;\n\n        if (typeof then === 'function') {\n          then.call(value, function (val) {\n            if (!resolved) {\n              resolved = true;\n\n              if (value === val) {\n                fulfill(promise, val);\n              } else {\n                resolve(promise, val);\n              }\n            }\n          }, function (reason) {\n            if (!resolved) {\n              resolved = true;\n              reject(promise, reason);\n            }\n          });\n          return true;\n        }\n      }\n    } catch (e) {\n      if (!resolved) {\n        reject(promise, e);\n      }\n\n      return true;\n    }\n\n    return false;\n  }\n\n  function resolve(promise, value) {\n    if (promise === value || !handleThenable(promise, value)) {\n      fulfill(promise, value);\n    }\n  }\n\n  function fulfill(promise, value) {\n    if (promise._state === PENDING) {\n      promise._state = SETTLED;\n      promise._data = value;\n      asyncCall(publishFulfillment, promise);\n    }\n  }\n\n  function reject(promise, reason) {\n    if (promise._state === PENDING) {\n      promise._state = SETTLED;\n      promise._data = reason;\n      asyncCall(publishRejection, promise);\n    }\n  }\n\n  function publish(promise) {\n    promise._then = promise._then.forEach(invokeCallback);\n  }\n\n  function publishFulfillment(promise) {\n    promise._state = FULFILLED;\n    publish(promise);\n  }\n\n  function publishRejection(promise) {\n    promise._state = REJECTED;\n    publish(promise);\n\n    if (!promise._handled && isNode) {\n      global.process.emit('unhandledRejection', promise._data, promise);\n    }\n  }\n\n  function notifyRejectionHandled(promise) {\n    global.process.emit('rejectionHandled', promise);\n  }\n  /**\n   * @class\n   */\n\n\n  function P(resolver) {\n    if (typeof resolver !== 'function') {\n      throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n    }\n\n    if (this instanceof P === false) {\n      throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n    }\n\n    this._then = [];\n    invokeResolver(resolver, this);\n  }\n\n  P.prototype = {\n    constructor: P,\n    _state: PENDING,\n    _then: null,\n    _data: undefined,\n    _handled: false,\n    then: function then(onFulfillment, onRejection) {\n      var subscriber = {\n        owner: this,\n        then: new this.constructor(NOOP),\n        fulfilled: onFulfillment,\n        rejected: onRejection\n      };\n\n      if ((onRejection || onFulfillment) && !this._handled) {\n        this._handled = true;\n\n        if (this._state === REJECTED && isNode) {\n          asyncCall(notifyRejectionHandled, this);\n        }\n      }\n\n      if (this._state === FULFILLED || this._state === REJECTED) {\n        // already resolved, call callback async\n        asyncCall(invokeCallback, subscriber);\n      } else {\n        // subscribe\n        this._then.push(subscriber);\n      }\n\n      return subscriber.then;\n    },\n    catch: function _catch(onRejection) {\n      return this.then(null, onRejection);\n    }\n  };\n\n  P.all = function (promises) {\n    if (!Array.isArray(promises)) {\n      throw new TypeError('You must pass an array to Promise.all().');\n    }\n\n    return new P(function (resolve, reject) {\n      var results = [];\n      var remaining = 0;\n\n      function resolver(index) {\n        remaining++;\n        return function (value) {\n          results[index] = value;\n\n          if (! --remaining) {\n            resolve(results);\n          }\n        };\n      }\n\n      for (var i = 0, promise; i < promises.length; i++) {\n        promise = promises[i];\n\n        if (promise && typeof promise.then === 'function') {\n          promise.then(resolver(i), reject);\n        } else {\n          results[i] = promise;\n        }\n      }\n\n      if (!remaining) {\n        resolve(results);\n      }\n    });\n  };\n\n  P.race = function (promises) {\n    if (!Array.isArray(promises)) {\n      throw new TypeError('You must pass an array to Promise.race().');\n    }\n\n    return new P(function (resolve, reject) {\n      for (var i = 0, promise; i < promises.length; i++) {\n        promise = promises[i];\n\n        if (promise && typeof promise.then === 'function') {\n          promise.then(resolve, reject);\n        } else {\n          resolve(promise);\n        }\n      }\n    });\n  };\n\n  P.resolve = function (value) {\n    if (value && _typeof(value) === 'object' && value.constructor === P) {\n      return value;\n    }\n\n    return new P(function (resolve) {\n      resolve(value);\n    });\n  };\n\n  P.reject = function (reason) {\n    return new P(function (resolve, reject) {\n      reject(reason);\n    });\n  };\n\n  var picked = typeof Promise === 'function' ? Promise : P;\n\n  var d = UNITS_IN_GRID;\n  var meaninglessTransform = {\n    size: 16,\n    x: 0,\n    y: 0,\n    rotate: 0,\n    flipX: false,\n    flipY: false\n  };\n\n  function isReserved(name) {\n    return ~RESERVED_CLASSES.indexOf(name);\n  }\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n  function insertCss(css) {\n    if (!css || !IS_DOM) {\n      return;\n    }\n\n    var style = DOCUMENT.createElement('style');\n    style.setAttribute('type', 'text/css');\n    style.innerHTML = css;\n    var headChildren = DOCUMENT.head.childNodes;\n    var beforeChild = null;\n\n    for (var i = headChildren.length - 1; i > -1; i--) {\n      var child = headChildren[i];\n      var tagName = (child.tagName || '').toUpperCase();\n\n      if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n        beforeChild = child;\n      }\n    }\n\n    DOCUMENT.head.insertBefore(style, beforeChild);\n    return css;\n  }\n  var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n  function nextUniqueId() {\n    var size = 12;\n    var id = '';\n\n    while (size-- > 0) {\n      id += idPool[Math.random() * 62 | 0];\n    }\n\n    return id;\n  }\n  function toArray(obj) {\n    var array = [];\n\n    for (var i = (obj || []).length >>> 0; i--;) {\n      array[i] = obj[i];\n    }\n\n    return array;\n  }\n  function classArray(node) {\n    if (node.classList) {\n      return toArray(node.classList);\n    } else {\n      return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n        return i;\n      });\n    }\n  }\n  function getIconName(familyPrefix, cls) {\n    var parts = cls.split('-');\n    var prefix = parts[0];\n    var iconName = parts.slice(1).join('-');\n\n    if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n      return iconName;\n    } else {\n      return null;\n    }\n  }\n  function htmlEscape(str) {\n    return \"\".concat(str).replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n  }\n  function joinAttributes(attributes) {\n    return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n      return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n    }, '').trim();\n  }\n  function joinStyles(styles) {\n    return Object.keys(styles || {}).reduce(function (acc, styleName) {\n      return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n    }, '');\n  }\n  function transformIsMeaningful(transform) {\n    return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n  }\n  function transformForSvg(_ref) {\n    var transform = _ref.transform,\n        containerWidth = _ref.containerWidth,\n        iconWidth = _ref.iconWidth;\n    var outer = {\n      transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n    };\n    var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n    var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n    var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n    var inner = {\n      transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n    };\n    var path = {\n      transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n    };\n    return {\n      outer: outer,\n      inner: inner,\n      path: path\n    };\n  }\n  function transformForCss(_ref2) {\n    var transform = _ref2.transform,\n        _ref2$width = _ref2.width,\n        width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n        _ref2$height = _ref2.height,\n        height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n        _ref2$startCentered = _ref2.startCentered,\n        startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n    var val = '';\n\n    if (startCentered && IS_IE) {\n      val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n    } else if (startCentered) {\n      val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n    } else {\n      val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n    }\n\n    val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n    val += \"rotate(\".concat(transform.rotate, \"deg) \");\n    return val;\n  }\n\n  var ALL_SPACE = {\n    x: 0,\n    y: 0,\n    width: '100%',\n    height: '100%'\n  };\n\n  function fillBlack(abstract) {\n    var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    if (abstract.attributes && (abstract.attributes.fill || force)) {\n      abstract.attributes.fill = 'black';\n    }\n\n    return abstract;\n  }\n\n  function deGroup(abstract) {\n    if (abstract.tag === 'g') {\n      return abstract.children;\n    } else {\n      return [abstract];\n    }\n  }\n\n  function makeIconMasking (_ref) {\n    var children = _ref.children,\n        attributes = _ref.attributes,\n        main = _ref.main,\n        mask = _ref.mask,\n        transform = _ref.transform;\n    var mainWidth = main.width,\n        mainPath = main.icon;\n    var maskWidth = mask.width,\n        maskPath = mask.icon;\n    var trans = transformForSvg({\n      transform: transform,\n      containerWidth: maskWidth,\n      iconWidth: mainWidth\n    });\n    var maskRect = {\n      tag: 'rect',\n      attributes: _objectSpread({}, ALL_SPACE, {\n        fill: 'white'\n      })\n    };\n    var maskInnerGroupChildrenMixin = mainPath.children ? {\n      children: mainPath.children.map(fillBlack)\n    } : {};\n    var maskInnerGroup = {\n      tag: 'g',\n      attributes: _objectSpread({}, trans.inner),\n      children: [fillBlack(_objectSpread({\n        tag: mainPath.tag,\n        attributes: _objectSpread({}, mainPath.attributes, trans.path)\n      }, maskInnerGroupChildrenMixin))]\n    };\n    var maskOuterGroup = {\n      tag: 'g',\n      attributes: _objectSpread({}, trans.outer),\n      children: [maskInnerGroup]\n    };\n    var maskId = \"mask-\".concat(nextUniqueId());\n    var clipId = \"clip-\".concat(nextUniqueId());\n    var maskTag = {\n      tag: 'mask',\n      attributes: _objectSpread({}, ALL_SPACE, {\n        id: maskId,\n        maskUnits: 'userSpaceOnUse',\n        maskContentUnits: 'userSpaceOnUse'\n      }),\n      children: [maskRect, maskOuterGroup]\n    };\n    var defs = {\n      tag: 'defs',\n      children: [{\n        tag: 'clipPath',\n        attributes: {\n          id: clipId\n        },\n        children: deGroup(maskPath)\n      }, maskTag]\n    };\n    children.push(defs, {\n      tag: 'rect',\n      attributes: _objectSpread({\n        fill: 'currentColor',\n        'clip-path': \"url(#\".concat(clipId, \")\"),\n        mask: \"url(#\".concat(maskId, \")\")\n      }, ALL_SPACE)\n    });\n    return {\n      children: children,\n      attributes: attributes\n    };\n  }\n\n  function makeIconStandard (_ref) {\n    var children = _ref.children,\n        attributes = _ref.attributes,\n        main = _ref.main,\n        transform = _ref.transform,\n        styles = _ref.styles;\n    var styleString = joinStyles(styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    if (transformIsMeaningful(transform)) {\n      var trans = transformForSvg({\n        transform: transform,\n        containerWidth: main.width,\n        iconWidth: main.width\n      });\n      children.push({\n        tag: 'g',\n        attributes: _objectSpread({}, trans.outer),\n        children: [{\n          tag: 'g',\n          attributes: _objectSpread({}, trans.inner),\n          children: [{\n            tag: main.icon.tag,\n            children: main.icon.children,\n            attributes: _objectSpread({}, main.icon.attributes, trans.path)\n          }]\n        }]\n      });\n    } else {\n      children.push(main.icon);\n    }\n\n    return {\n      children: children,\n      attributes: attributes\n    };\n  }\n\n  function asIcon (_ref) {\n    var children = _ref.children,\n        main = _ref.main,\n        mask = _ref.mask,\n        attributes = _ref.attributes,\n        styles = _ref.styles,\n        transform = _ref.transform;\n\n    if (transformIsMeaningful(transform) && main.found && !mask.found) {\n      var width = main.width,\n          height = main.height;\n      var offset = {\n        x: width / height / 2,\n        y: 0.5\n      };\n      attributes['style'] = joinStyles(_objectSpread({}, styles, {\n        'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n      }));\n    }\n\n    return [{\n      tag: 'svg',\n      attributes: attributes,\n      children: children\n    }];\n  }\n\n  function asSymbol (_ref) {\n    var prefix = _ref.prefix,\n        iconName = _ref.iconName,\n        children = _ref.children,\n        attributes = _ref.attributes,\n        symbol = _ref.symbol;\n    var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n    return [{\n      tag: 'svg',\n      attributes: {\n        style: 'display: none;'\n      },\n      children: [{\n        tag: 'symbol',\n        attributes: _objectSpread({}, attributes, {\n          id: id\n        }),\n        children: children\n      }]\n    }];\n  }\n\n  function makeInlineSvgAbstract(params) {\n    var _params$icons = params.icons,\n        main = _params$icons.main,\n        mask = _params$icons.mask,\n        prefix = params.prefix,\n        iconName = params.iconName,\n        transform = params.transform,\n        symbol = params.symbol,\n        title = params.title,\n        extra = params.extra,\n        _params$watchable = params.watchable,\n        watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n    var _ref = mask.found ? mask : main,\n        width = _ref.width,\n        height = _ref.height;\n\n    var widthClass = \"fa-w-\".concat(Math.ceil(width / height * 16));\n    var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n      return extra.classes.indexOf(c) === -1;\n    }).concat(extra.classes).join(' ');\n    var content = {\n      children: [],\n      attributes: _objectSpread({}, extra.attributes, {\n        'data-prefix': prefix,\n        'data-icon': iconName,\n        'class': attrClass,\n        'role': extra.attributes.role || 'img',\n        'xmlns': 'http://www.w3.org/2000/svg',\n        'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n      })\n    };\n\n    if (watchable) {\n      content.attributes[DATA_FA_I2SVG] = '';\n    }\n\n    if (title) content.children.push({\n      tag: 'title',\n      attributes: {\n        id: content.attributes['aria-labelledby'] || \"title-\".concat(nextUniqueId())\n      },\n      children: [title]\n    });\n\n    var args = _objectSpread({}, content, {\n      prefix: prefix,\n      iconName: iconName,\n      main: main,\n      mask: mask,\n      transform: transform,\n      symbol: symbol,\n      styles: extra.styles\n    });\n\n    var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n        children = _ref2.children,\n        attributes = _ref2.attributes;\n\n    args.children = children;\n    args.attributes = attributes;\n\n    if (symbol) {\n      return asSymbol(args);\n    } else {\n      return asIcon(args);\n    }\n  }\n  function makeLayersTextAbstract(params) {\n    var content = params.content,\n        width = params.width,\n        height = params.height,\n        transform = params.transform,\n        title = params.title,\n        extra = params.extra,\n        _params$watchable2 = params.watchable,\n        watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n    var attributes = _objectSpread({}, extra.attributes, title ? {\n      'title': title\n    } : {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    if (watchable) {\n      attributes[DATA_FA_I2SVG] = '';\n    }\n\n    var styles = _objectSpread({}, extra.styles);\n\n    if (transformIsMeaningful(transform)) {\n      styles['transform'] = transformForCss({\n        transform: transform,\n        startCentered: true,\n        width: width,\n        height: height\n      });\n      styles['-webkit-transform'] = styles['transform'];\n    }\n\n    var styleString = joinStyles(styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n  function makeLayersCounterAbstract(params) {\n    var content = params.content,\n        title = params.title,\n        extra = params.extra;\n\n    var attributes = _objectSpread({}, extra.attributes, title ? {\n      'title': title\n    } : {}, {\n      'class': extra.classes.join(' ')\n    });\n\n    var styleString = joinStyles(extra.styles);\n\n    if (styleString.length > 0) {\n      attributes['style'] = styleString;\n    }\n\n    var val = [];\n    val.push({\n      tag: 'span',\n      attributes: attributes,\n      children: [content]\n    });\n\n    if (title) {\n      val.push({\n        tag: 'span',\n        attributes: {\n          class: 'sr-only'\n        },\n        children: [title]\n      });\n    }\n\n    return val;\n  }\n\n  var noop$1 = function noop() {};\n\n  var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n    mark: noop$1,\n    measure: noop$1\n  };\n  var preamble = \"FA \\\"5.10.1\\\"\";\n\n  var begin = function begin(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n    return function () {\n      return end(name);\n    };\n  };\n\n  var end = function end(name) {\n    p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n    p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n  };\n\n  var perf = {\n    begin: begin,\n    end: end\n  };\n\n  /**\n   * Internal helper to bind a function known to have 4 arguments\n   * to a given context.\n   */\n\n  var bindInternal4 = function bindInternal4(func, thisContext) {\n    return function (a, b, c, d) {\n      return func.call(thisContext, a, b, c, d);\n    };\n  };\n\n  /**\n   * # Reduce\n   *\n   * A fast object `.reduce()` implementation.\n   *\n   * @param  {Object}   subject      The object to reduce over.\n   * @param  {Function} fn           The reducer function.\n   * @param  {mixed}    initialValue The initial value for the reducer, defaults to subject[0].\n   * @param  {Object}   thisContext  The context for the reducer.\n   * @return {mixed}                 The final result.\n   */\n\n\n  var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n    var keys = Object.keys(subject),\n        length = keys.length,\n        iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n        i,\n        key,\n        result;\n\n    if (initialValue === undefined) {\n      i = 1;\n      result = subject[keys[0]];\n    } else {\n      i = 0;\n      result = initialValue;\n    }\n\n    for (; i < length; i++) {\n      key = keys[i];\n      result = iterator(result, subject[key], key, subject);\n    }\n\n    return result;\n  };\n\n  function toHex(unicode) {\n    var result = '';\n\n    for (var i = 0; i < unicode.length; i++) {\n      var hex = unicode.charCodeAt(i).toString(16);\n      result += ('000' + hex).slice(-4);\n    }\n\n    return result;\n  }\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var styles = namespace.styles,\n      shims = namespace.shims;\n  var _byUnicode = {};\n  var _byLigature = {};\n  var _byOldName = {};\n  var build = function build() {\n    var lookup = function lookup(reducer) {\n      return reduce(styles, function (o, style, prefix) {\n        o[prefix] = reduce(style, reducer, {});\n        return o;\n      }, {});\n    };\n\n    _byUnicode = lookup(function (acc, icon, iconName) {\n      if (icon[3]) {\n        acc[icon[3]] = iconName;\n      }\n\n      return acc;\n    });\n    _byLigature = lookup(function (acc, icon, iconName) {\n      var ligatures = icon[2];\n      acc[iconName] = iconName;\n      ligatures.forEach(function (ligature) {\n        acc[ligature] = iconName;\n      });\n      return acc;\n    });\n    var hasRegular = 'far' in styles;\n    _byOldName = reduce(shims, function (acc, shim) {\n      var oldName = shim[0];\n      var prefix = shim[1];\n      var iconName = shim[2];\n\n      if (prefix === 'far' && !hasRegular) {\n        prefix = 'fas';\n      }\n\n      acc[oldName] = {\n        prefix: prefix,\n        iconName: iconName\n      };\n      return acc;\n    }, {});\n  };\n  build();\n  function byUnicode(prefix, unicode) {\n    return (_byUnicode[prefix] || {})[unicode];\n  }\n  function byLigature(prefix, ligature) {\n    return (_byLigature[prefix] || {})[ligature];\n  }\n  function byOldName(name) {\n    return _byOldName[name] || {\n      prefix: null,\n      iconName: null\n    };\n  }\n\n  var styles$1 = namespace.styles;\n  var emptyCanonicalIcon = function emptyCanonicalIcon() {\n    return {\n      prefix: null,\n      iconName: null,\n      rest: []\n    };\n  };\n  function getCanonicalIcon(values) {\n    return values.reduce(function (acc, cls) {\n      var iconName = getIconName(config.familyPrefix, cls);\n\n      if (styles$1[cls]) {\n        acc.prefix = cls;\n      } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {\n        acc.prefix = cls;\n      } else if (iconName) {\n        var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n        acc.iconName = shim.iconName || iconName;\n        acc.prefix = shim.prefix || acc.prefix;\n      } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n        acc.rest.push(cls);\n      }\n\n      return acc;\n    }, emptyCanonicalIcon());\n  }\n  function iconFromMapping(mapping, prefix, iconName) {\n    if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n      return {\n        prefix: prefix,\n        iconName: iconName,\n        icon: mapping[prefix][iconName]\n      };\n    }\n  }\n\n  function toHtml(abstractNodes) {\n    var tag = abstractNodes.tag,\n        _abstractNodes$attrib = abstractNodes.attributes,\n        attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n        _abstractNodes$childr = abstractNodes.children,\n        children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n    if (typeof abstractNodes === 'string') {\n      return htmlEscape(abstractNodes);\n    } else {\n      return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n    }\n  }\n\n  var noop$2 = function noop() {};\n\n  function isWatched(node) {\n    var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n    return typeof i2svg === 'string';\n  }\n\n  function getMutator() {\n    if (config.autoReplaceSvg === true) {\n      return mutators.replace;\n    }\n\n    var mutator = mutators[config.autoReplaceSvg];\n    return mutator || mutators.replace;\n  }\n\n  var mutators = {\n    replace: function replace(mutation) {\n      var node = mutation[0];\n      var abstract = mutation[1];\n      var newOuterHTML = abstract.map(function (a) {\n        return toHtml(a);\n      }).join('\\n');\n\n      if (node.parentNode && node.outerHTML) {\n        node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"<!-- \".concat(node.outerHTML, \" -->\") : '');\n      } else if (node.parentNode) {\n        var newNode = document.createElement('span');\n        node.parentNode.replaceChild(newNode, node);\n        newNode.outerHTML = newOuterHTML;\n      }\n    },\n    nest: function nest(mutation) {\n      var node = mutation[0];\n      var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n      // Short-circuit to the standard replacement\n\n      if (~classArray(node).indexOf(config.replacementClass)) {\n        return mutators.replace(mutation);\n      }\n\n      var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n      delete abstract[0].attributes.style;\n      var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n        if (cls === config.replacementClass || cls.match(forSvg)) {\n          acc.toSvg.push(cls);\n        } else {\n          acc.toNode.push(cls);\n        }\n\n        return acc;\n      }, {\n        toNode: [],\n        toSvg: []\n      });\n      abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n      var newInnerHTML = abstract.map(function (a) {\n        return toHtml(a);\n      }).join('\\n');\n      node.setAttribute('class', splitClasses.toNode.join(' '));\n      node.setAttribute(DATA_FA_I2SVG, '');\n      node.innerHTML = newInnerHTML;\n    }\n  };\n\n  function performOperationSync(op) {\n    op();\n  }\n\n  function perform(mutations, callback) {\n    var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n    if (mutations.length === 0) {\n      callbackFunction();\n    } else {\n      var frame = performOperationSync;\n\n      if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n        frame = WINDOW.requestAnimationFrame || performOperationSync;\n      }\n\n      frame(function () {\n        var mutator = getMutator();\n        var mark = perf.begin('mutate');\n        mutations.map(mutator);\n        mark();\n        callbackFunction();\n      });\n    }\n  }\n  var disabled = false;\n  function disableObservation() {\n    disabled = true;\n  }\n  function enableObservation() {\n    disabled = false;\n  }\n  var mo = null;\n  function observe(options) {\n    if (!MUTATION_OBSERVER) {\n      return;\n    }\n\n    if (!config.observeMutations) {\n      return;\n    }\n\n    var treeCallback = options.treeCallback,\n        nodeCallback = options.nodeCallback,\n        pseudoElementsCallback = options.pseudoElementsCallback,\n        _options$observeMutat = options.observeMutationsRoot,\n        observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n    mo = new MUTATION_OBSERVER(function (objects) {\n      if (disabled) return;\n      toArray(objects).forEach(function (mutationRecord) {\n        if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n          if (config.searchPseudoElements) {\n            pseudoElementsCallback(mutationRecord.target);\n          }\n\n          treeCallback(mutationRecord.target);\n        }\n\n        if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n          pseudoElementsCallback(mutationRecord.target.parentNode);\n        }\n\n        if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n          if (mutationRecord.attributeName === 'class') {\n            var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n                prefix = _getCanonicalIcon.prefix,\n                iconName = _getCanonicalIcon.iconName;\n\n            if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n            if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n          } else {\n            nodeCallback(mutationRecord.target);\n          }\n        }\n      });\n    });\n    if (!IS_DOM) return;\n    mo.observe(observeMutationsRoot, {\n      childList: true,\n      attributes: true,\n      characterData: true,\n      subtree: true\n    });\n  }\n  function disconnect() {\n    if (!mo) return;\n    mo.disconnect();\n  }\n\n  function styleParser (node) {\n    var style = node.getAttribute('style');\n    var val = [];\n\n    if (style) {\n      val = style.split(';').reduce(function (acc, style) {\n        var styles = style.split(':');\n        var prop = styles[0];\n        var value = styles.slice(1);\n\n        if (prop && value.length > 0) {\n          acc[prop] = value.join(':').trim();\n        }\n\n        return acc;\n      }, {});\n    }\n\n    return val;\n  }\n\n  function classParser (node) {\n    var existingPrefix = node.getAttribute('data-prefix');\n    var existingIconName = node.getAttribute('data-icon');\n    var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n    var val = getCanonicalIcon(classArray(node));\n\n    if (existingPrefix && existingIconName) {\n      val.prefix = existingPrefix;\n      val.iconName = existingIconName;\n    }\n\n    if (val.prefix && innerText.length > 1) {\n      val.iconName = byLigature(val.prefix, node.innerText);\n    } else if (val.prefix && innerText.length === 1) {\n      val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n    }\n\n    return val;\n  }\n\n  var parseTransformString = function parseTransformString(transformString) {\n    var transform = {\n      size: 16,\n      x: 0,\n      y: 0,\n      flipX: false,\n      flipY: false,\n      rotate: 0\n    };\n\n    if (!transformString) {\n      return transform;\n    } else {\n      return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n        var parts = n.toLowerCase().split('-');\n        var first = parts[0];\n        var rest = parts.slice(1).join('-');\n\n        if (first && rest === 'h') {\n          acc.flipX = true;\n          return acc;\n        }\n\n        if (first && rest === 'v') {\n          acc.flipY = true;\n          return acc;\n        }\n\n        rest = parseFloat(rest);\n\n        if (isNaN(rest)) {\n          return acc;\n        }\n\n        switch (first) {\n          case 'grow':\n            acc.size = acc.size + rest;\n            break;\n\n          case 'shrink':\n            acc.size = acc.size - rest;\n            break;\n\n          case 'left':\n            acc.x = acc.x - rest;\n            break;\n\n          case 'right':\n            acc.x = acc.x + rest;\n            break;\n\n          case 'up':\n            acc.y = acc.y - rest;\n            break;\n\n          case 'down':\n            acc.y = acc.y + rest;\n            break;\n\n          case 'rotate':\n            acc.rotate = acc.rotate + rest;\n            break;\n        }\n\n        return acc;\n      }, transform);\n    }\n  };\n  function transformParser (node) {\n    return parseTransformString(node.getAttribute('data-fa-transform'));\n  }\n\n  function symbolParser (node) {\n    var symbol = node.getAttribute('data-fa-symbol');\n    return symbol === null ? false : symbol === '' ? true : symbol;\n  }\n\n  function attributesParser (node) {\n    var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n      if (acc.name !== 'class' && acc.name !== 'style') {\n        acc[attr.name] = attr.value;\n      }\n\n      return acc;\n    }, {});\n    var title = node.getAttribute('title');\n\n    if (config.autoA11y) {\n      if (title) {\n        extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(nextUniqueId());\n      } else {\n        extraAttributes['aria-hidden'] = 'true';\n        extraAttributes['focusable'] = 'false';\n      }\n    }\n\n    return extraAttributes;\n  }\n\n  function maskParser (node) {\n    var mask = node.getAttribute('data-fa-mask');\n\n    if (!mask) {\n      return emptyCanonicalIcon();\n    } else {\n      return getCanonicalIcon(mask.split(' ').map(function (i) {\n        return i.trim();\n      }));\n    }\n  }\n\n  function blankMeta() {\n    return {\n      iconName: null,\n      title: null,\n      prefix: null,\n      transform: meaninglessTransform,\n      symbol: false,\n      mask: null,\n      extra: {\n        classes: [],\n        styles: {},\n        attributes: {}\n      }\n    };\n  }\n  function parseMeta(node) {\n    var _classParser = classParser(node),\n        iconName = _classParser.iconName,\n        prefix = _classParser.prefix,\n        extraClasses = _classParser.rest;\n\n    var extraStyles = styleParser(node);\n    var transform = transformParser(node);\n    var symbol = symbolParser(node);\n    var extraAttributes = attributesParser(node);\n    var mask = maskParser(node);\n    return {\n      iconName: iconName,\n      title: node.getAttribute('title'),\n      prefix: prefix,\n      transform: transform,\n      symbol: symbol,\n      mask: mask,\n      extra: {\n        classes: extraClasses,\n        styles: extraStyles,\n        attributes: extraAttributes\n      }\n    };\n  }\n\n  function MissingIcon(error) {\n    this.name = 'MissingIcon';\n    this.message = error || 'Icon unavailable';\n    this.stack = new Error().stack;\n  }\n  MissingIcon.prototype = Object.create(Error.prototype);\n  MissingIcon.prototype.constructor = MissingIcon;\n\n  var FILL = {\n    fill: 'currentColor'\n  };\n  var ANIMATION_BASE = {\n    attributeType: 'XML',\n    repeatCount: 'indefinite',\n    dur: '2s'\n  };\n  var RING = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n    })\n  };\n\n  var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n    attributeName: 'opacity'\n  });\n\n  var DOT = {\n    tag: 'circle',\n    attributes: _objectSpread({}, FILL, {\n      cx: '256',\n      cy: '364',\n      r: '28'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, ANIMATION_BASE, {\n        attributeName: 'r',\n        values: '28;14;28;28;14;28;'\n      })\n    }, {\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '1;0;1;1;0;1;'\n      })\n    }]\n  };\n  var QUESTION = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      opacity: '1',\n      d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '1;0;0;0;0;1;'\n      })\n    }]\n  };\n  var EXCLAMATION = {\n    tag: 'path',\n    attributes: _objectSpread({}, FILL, {\n      opacity: '0',\n      d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n    }),\n    children: [{\n      tag: 'animate',\n      attributes: _objectSpread({}, OPACITY_ANIMATE, {\n        values: '0;0;1;1;0;0;'\n      })\n    }]\n  };\n  var missing = {\n    tag: 'g',\n    children: [RING, DOT, QUESTION, EXCLAMATION]\n  };\n\n  var styles$2 = namespace.styles;\n  function asFoundIcon(icon) {\n    var width = icon[0];\n    var height = icon[1];\n\n    var _icon$slice = icon.slice(4),\n        _icon$slice2 = _slicedToArray(_icon$slice, 1),\n        vectorData = _icon$slice2[0];\n\n    var element = null;\n\n    if (Array.isArray(vectorData)) {\n      element = {\n        tag: 'g',\n        attributes: {\n          class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n        },\n        children: [{\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n            fill: 'currentColor',\n            d: vectorData[0]\n          }\n        }, {\n          tag: 'path',\n          attributes: {\n            class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n            fill: 'currentColor',\n            d: vectorData[1]\n          }\n        }]\n      };\n    } else {\n      element = {\n        tag: 'path',\n        attributes: {\n          fill: 'currentColor',\n          d: vectorData\n        }\n      };\n    }\n\n    return {\n      found: true,\n      width: width,\n      height: height,\n      icon: element\n    };\n  }\n  function findIcon(iconName, prefix) {\n    return new picked(function (resolve, reject) {\n      var val = {\n        found: false,\n        width: 512,\n        height: 512,\n        icon: missing\n      };\n\n      if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n        var icon = styles$2[prefix][iconName];\n        return resolve(asFoundIcon(icon));\n      }\n\n      if (iconName && prefix && !config.showMissingIcons) {\n        reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n      } else {\n        resolve(val);\n      }\n    });\n  }\n\n  var styles$3 = namespace.styles;\n\n  function generateSvgReplacementMutation(node, nodeMeta) {\n    var iconName = nodeMeta.iconName,\n        title = nodeMeta.title,\n        prefix = nodeMeta.prefix,\n        transform = nodeMeta.transform,\n        symbol = nodeMeta.symbol,\n        mask = nodeMeta.mask,\n        extra = nodeMeta.extra;\n    return new picked(function (resolve, reject) {\n      picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            main = _ref2[0],\n            mask = _ref2[1];\n\n        resolve([node, makeInlineSvgAbstract({\n          icons: {\n            main: main,\n            mask: mask\n          },\n          prefix: prefix,\n          iconName: iconName,\n          transform: transform,\n          symbol: symbol,\n          mask: mask,\n          title: title,\n          extra: extra,\n          watchable: true\n        })]);\n      });\n    });\n  }\n\n  function generateLayersText(node, nodeMeta) {\n    var title = nodeMeta.title,\n        transform = nodeMeta.transform,\n        extra = nodeMeta.extra;\n    var width = null;\n    var height = null;\n\n    if (IS_IE) {\n      var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n      var boundingClientRect = node.getBoundingClientRect();\n      width = boundingClientRect.width / computedFontSize;\n      height = boundingClientRect.height / computedFontSize;\n    }\n\n    if (config.autoA11y && !title) {\n      extra.attributes['aria-hidden'] = 'true';\n    }\n\n    return picked.resolve([node, makeLayersTextAbstract({\n      content: node.innerHTML,\n      width: width,\n      height: height,\n      transform: transform,\n      title: title,\n      extra: extra,\n      watchable: true\n    })]);\n  }\n\n  function generateMutation(node) {\n    var nodeMeta = parseMeta(node);\n\n    if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n      return generateLayersText(node, nodeMeta);\n    } else {\n      return generateSvgReplacementMutation(node, nodeMeta);\n    }\n  }\n\n  function onTree(root) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    if (!IS_DOM) return;\n    var htmlClassList = DOCUMENT.documentElement.classList;\n\n    var hclAdd = function hclAdd(suffix) {\n      return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var hclRemove = function hclRemove(suffix) {\n      return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n    };\n\n    var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n    var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n      return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n    })).join(', ');\n\n    if (prefixesDomQuery.length === 0) {\n      return;\n    }\n\n    var candidates = [];\n\n    try {\n      candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n    } catch (e) {// noop\n    }\n\n    if (candidates.length > 0) {\n      hclAdd('pending');\n      hclRemove('complete');\n    } else {\n      return;\n    }\n\n    var mark = perf.begin('onTree');\n    var mutations = candidates.reduce(function (acc, node) {\n      try {\n        var mutation = generateMutation(node);\n\n        if (mutation) {\n          acc.push(mutation);\n        }\n      } catch (e) {\n        if (!PRODUCTION) {\n          if (e instanceof MissingIcon) {\n            console.error(e);\n          }\n        }\n      }\n\n      return acc;\n    }, []);\n    return new picked(function (resolve, reject) {\n      picked.all(mutations).then(function (resolvedMutations) {\n        perform(resolvedMutations, function () {\n          hclAdd('active');\n          hclAdd('complete');\n          hclRemove('pending');\n          if (typeof callback === 'function') callback();\n          mark();\n          resolve();\n        });\n      }).catch(function () {\n        mark();\n        reject();\n      });\n    });\n  }\n  function onNode(node) {\n    var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    generateMutation(node).then(function (mutation) {\n      if (mutation) {\n        perform([mutation], callback);\n      }\n    });\n  }\n\n  function replaceForPosition(node, position) {\n    var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n    return new picked(function (resolve, reject) {\n      if (node.getAttribute(pendingAttribute) !== null) {\n        // This node is already being processed\n        return resolve();\n      }\n\n      var children = toArray(node.children);\n      var alreadyProcessedPseudoElement = children.filter(function (c) {\n        return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n      })[0];\n      var styles = WINDOW.getComputedStyle(node, position);\n      var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n      var fontWeight = styles.getPropertyValue('font-weight');\n\n      if (alreadyProcessedPseudoElement && !fontFamily) {\n        // If we've already processed it but the current computed style does not result in a font-family,\n        // that probably means that a class name that was previously present to make the icon has been\n        // removed. So we now should delete the icon.\n        node.removeChild(alreadyProcessedPseudoElement);\n        return resolve();\n      } else if (fontFamily) {\n        var content = styles.getPropertyValue('content');\n        var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n        var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);\n        var iconName = byUnicode(prefix, hexValue);\n        var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n        // already done so with the same prefix and iconName\n\n        if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n          node.setAttribute(pendingAttribute, iconIdentifier);\n\n          if (alreadyProcessedPseudoElement) {\n            // Delete the old one, since we're replacing it with a new one\n            node.removeChild(alreadyProcessedPseudoElement);\n          }\n\n          var meta = blankMeta();\n          var extra = meta.extra;\n          extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n          findIcon(iconName, prefix).then(function (main) {\n            var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n              icons: {\n                main: main,\n                mask: emptyCanonicalIcon()\n              },\n              prefix: prefix,\n              iconName: iconIdentifier,\n              extra: extra,\n              watchable: true\n            }));\n            var element = DOCUMENT.createElement('svg');\n\n            if (position === ':before') {\n              node.insertBefore(element, node.firstChild);\n            } else {\n              node.appendChild(element);\n            }\n\n            element.outerHTML = abstract.map(function (a) {\n              return toHtml(a);\n            }).join('\\n');\n            node.removeAttribute(pendingAttribute);\n            resolve();\n          }).catch(reject);\n        } else {\n          resolve();\n        }\n      } else {\n        resolve();\n      }\n    });\n  }\n\n  function replace(node) {\n    return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n  }\n\n  function processable(node) {\n    return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n  }\n\n  function searchPseudoElements (root) {\n    if (!IS_DOM) return;\n    return new picked(function (resolve, reject) {\n      var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n      var end = perf.begin('searchPseudoElements');\n      disableObservation();\n      picked.all(operations).then(function () {\n        end();\n        enableObservation();\n        resolve();\n      }).catch(function () {\n        end();\n        enableObservation();\n        reject();\n      });\n    });\n  }\n\n  var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n  function css () {\n    var dfp = DEFAULT_FAMILY_PREFIX;\n    var drc = DEFAULT_REPLACEMENT_CLASS;\n    var fp = config.familyPrefix;\n    var rc = config.replacementClass;\n    var s = baseStyles;\n\n    if (fp !== dfp || rc !== drc) {\n      var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n      var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n      var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n      s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n    }\n\n    return s;\n  }\n\n  var Library =\n  /*#__PURE__*/\n  function () {\n    function Library() {\n      _classCallCheck(this, Library);\n\n      this.definitions = {};\n    }\n\n    _createClass(Library, [{\n      key: \"add\",\n      value: function add() {\n        var _this = this;\n\n        for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n          definitions[_key] = arguments[_key];\n        }\n\n        var additions = definitions.reduce(this._pullDefinitions, {});\n        Object.keys(additions).forEach(function (key) {\n          _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n          defineIcons(key, additions[key]);\n          build();\n        });\n      }\n    }, {\n      key: \"reset\",\n      value: function reset() {\n        this.definitions = {};\n      }\n    }, {\n      key: \"_pullDefinitions\",\n      value: function _pullDefinitions(additions, definition) {\n        var normalized = definition.prefix && definition.iconName && definition.icon ? {\n          0: definition\n        } : definition;\n        Object.keys(normalized).map(function (key) {\n          var _normalized$key = normalized[key],\n              prefix = _normalized$key.prefix,\n              iconName = _normalized$key.iconName,\n              icon = _normalized$key.icon;\n          if (!additions[prefix]) additions[prefix] = {};\n          additions[prefix][iconName] = icon;\n        });\n        return additions;\n      }\n    }]);\n\n    return Library;\n  }();\n\n  function ensureCss() {\n    if (config.autoAddCss && !_cssInserted) {\n      insertCss(css());\n\n      _cssInserted = true;\n    }\n  }\n\n  function apiObject(val, abstractCreator) {\n    Object.defineProperty(val, 'abstract', {\n      get: abstractCreator\n    });\n    Object.defineProperty(val, 'html', {\n      get: function get() {\n        return val.abstract.map(function (a) {\n          return toHtml(a);\n        });\n      }\n    });\n    Object.defineProperty(val, 'node', {\n      get: function get() {\n        if (!IS_DOM) return;\n        var container = DOCUMENT.createElement('div');\n        container.innerHTML = val.html;\n        return container.children;\n      }\n    });\n    return val;\n  }\n\n  function findIconDefinition(iconLookup) {\n    var _iconLookup$prefix = iconLookup.prefix,\n        prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n        iconName = iconLookup.iconName;\n    if (!iconName) return;\n    return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n  }\n\n  function resolveIcons(next) {\n    return function (maybeIconDefinition) {\n      var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n      var mask = params.mask;\n\n      if (mask) {\n        mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n      }\n\n      return next(iconDefinition, _objectSpread({}, params, {\n        mask: mask\n      }));\n    };\n  }\n\n  var library = new Library();\n  var noAuto = function noAuto() {\n    config.autoReplaceSvg = false;\n    config.observeMutations = false;\n    disconnect();\n  };\n  var _cssInserted = false;\n  var dom = {\n    i2svg: function i2svg() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      if (IS_DOM) {\n        ensureCss();\n        var _params$node = params.node,\n            node = _params$node === void 0 ? DOCUMENT : _params$node,\n            _params$callback = params.callback,\n            callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n        if (config.searchPseudoElements) {\n          searchPseudoElements(node);\n        }\n\n        return onTree(node, callback);\n      } else {\n        return picked.reject('Operation requires a DOM of some kind.');\n      }\n    },\n    css: css,\n    insertCss: function insertCss$$1() {\n      if (!_cssInserted) {\n        insertCss(css());\n\n        _cssInserted = true;\n      }\n    },\n    watch: function watch() {\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n          observeMutationsRoot = params.observeMutationsRoot;\n\n      if (config.autoReplaceSvg === false) {\n        config.autoReplaceSvg = true;\n      }\n\n      config.observeMutations = true;\n      domready(function () {\n        autoReplace({\n          autoReplaceSvgRoot: autoReplaceSvgRoot\n        });\n        observe({\n          treeCallback: onTree,\n          nodeCallback: onNode,\n          pseudoElementsCallback: searchPseudoElements,\n          observeMutationsRoot: observeMutationsRoot\n        });\n      });\n    }\n  };\n  var parse = {\n    transform: function transform(transformString) {\n      return parseTransformString(transformString);\n    }\n  };\n  var icon = resolveIcons(function (iconDefinition) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$transform = params.transform,\n        transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n        _params$symbol = params.symbol,\n        symbol = _params$symbol === void 0 ? false : _params$symbol,\n        _params$mask = params.mask,\n        mask = _params$mask === void 0 ? null : _params$mask,\n        _params$title = params.title,\n        title = _params$title === void 0 ? null : _params$title,\n        _params$classes = params.classes,\n        classes = _params$classes === void 0 ? [] : _params$classes,\n        _params$attributes = params.attributes,\n        attributes = _params$attributes === void 0 ? {} : _params$attributes,\n        _params$styles = params.styles,\n        styles = _params$styles === void 0 ? {} : _params$styles;\n    if (!iconDefinition) return;\n    var prefix = iconDefinition.prefix,\n        iconName = iconDefinition.iconName,\n        icon = iconDefinition.icon;\n    return apiObject(_objectSpread({\n      type: 'icon'\n    }, iconDefinition), function () {\n      ensureCss();\n\n      if (config.autoA11y) {\n        if (title) {\n          attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(nextUniqueId());\n        } else {\n          attributes['aria-hidden'] = 'true';\n          attributes['focusable'] = 'false';\n        }\n      }\n\n      return makeInlineSvgAbstract({\n        icons: {\n          main: asFoundIcon(icon),\n          mask: mask ? asFoundIcon(mask.icon) : {\n            found: false,\n            width: null,\n            height: null,\n            icon: {}\n          }\n        },\n        prefix: prefix,\n        iconName: iconName,\n        transform: _objectSpread({}, meaninglessTransform, transform),\n        symbol: symbol,\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: classes\n        }\n      });\n    });\n  });\n  var text = function text(content) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$transform2 = params.transform,\n        transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n        _params$title2 = params.title,\n        title = _params$title2 === void 0 ? null : _params$title2,\n        _params$classes2 = params.classes,\n        classes = _params$classes2 === void 0 ? [] : _params$classes2,\n        _params$attributes2 = params.attributes,\n        attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n        _params$styles2 = params.styles,\n        styles = _params$styles2 === void 0 ? {} : _params$styles2;\n    return apiObject({\n      type: 'text',\n      content: content\n    }, function () {\n      ensureCss();\n      return makeLayersTextAbstract({\n        content: content,\n        transform: _objectSpread({}, meaninglessTransform, transform),\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n        }\n      });\n    });\n  };\n  var counter = function counter(content) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var _params$title3 = params.title,\n        title = _params$title3 === void 0 ? null : _params$title3,\n        _params$classes3 = params.classes,\n        classes = _params$classes3 === void 0 ? [] : _params$classes3,\n        _params$attributes3 = params.attributes,\n        attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n        _params$styles3 = params.styles,\n        styles = _params$styles3 === void 0 ? {} : _params$styles3;\n    return apiObject({\n      type: 'counter',\n      content: content\n    }, function () {\n      ensureCss();\n      return makeLayersCounterAbstract({\n        content: content.toString(),\n        title: title,\n        extra: {\n          attributes: attributes,\n          styles: styles,\n          classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n        }\n      });\n    });\n  };\n  var layer = function layer(assembler) {\n    return apiObject({\n      type: 'layer'\n    }, function () {\n      ensureCss();\n      var children = [];\n      assembler(function (args) {\n        Array.isArray(args) ? args.map(function (a) {\n          children = children.concat(a.abstract);\n        }) : children = children.concat(args.abstract);\n      });\n      return [{\n        tag: 'span',\n        attributes: {\n          class: \"\".concat(config.familyPrefix, \"-layers\")\n        },\n        children: children\n      }];\n    });\n  };\n  var api = {\n    noAuto: noAuto,\n    config: config,\n    dom: dom,\n    library: library,\n    parse: parse,\n    findIconDefinition: findIconDefinition,\n    icon: icon,\n    text: text,\n    counter: counter,\n    layer: layer,\n    toHtml: toHtml\n  };\n\n  var autoReplace = function autoReplace() {\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n        autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n    if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n      node: autoReplaceSvgRoot\n    });\n  };\n\n  function bootstrap() {\n    if (IS_BROWSER) {\n      if (!WINDOW.FontAwesome) {\n        WINDOW.FontAwesome = api;\n      }\n\n      domready(function () {\n        autoReplace();\n        observe({\n          treeCallback: onTree,\n          nodeCallback: onNode,\n          pseudoElementsCallback: searchPseudoElements\n        });\n      });\n    }\n\n    namespace.hooks = _objectSpread({}, namespace.hooks, {\n      addPack: function addPack(prefix, icons) {\n        namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n        build();\n        autoReplace();\n      },\n      addShims: function addShims(shims) {\n        var _namespace$shims;\n\n        (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n        build();\n        autoReplace();\n      }\n    });\n  }\n\n  bunker(bootstrap);\n\n}());\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/regular.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"address-book\": [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"],\n    \"address-card\": [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"],\n    \"angry\": [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"],\n    \"arrow-alt-circle-down\": [512, 512, [], \"f358\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"],\n    \"arrow-alt-circle-left\": [512, 512, [], \"f359\", \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"],\n    \"arrow-alt-circle-right\": [512, 512, [], \"f35a\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"],\n    \"arrow-alt-circle-up\": [512, 512, [], \"f35b\", \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"],\n    \"bell\": [448, 512, [], \"f0f3\", \"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bell-slash\": [640, 512, [], \"f1f6\", \"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bookmark\": [384, 512, [], \"f02e\", \"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"],\n    \"building\": [448, 512, [], \"f1ad\", \"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"],\n    \"calendar\": [448, 512, [], \"f133\", \"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"],\n    \"calendar-alt\": [448, 512, [], \"f073\", \"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"calendar-times\": [448, 512, [], \"f273\", \"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-down\": [448, 512, [], \"f150\", \"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-left\": [448, 512, [], \"f191\", \"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-right\": [448, 512, [], \"f152\", \"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"caret-square-up\": [448, 512, [], \"f151\", \"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"chart-bar\": [512, 512, [], \"f080\", \"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"],\n    \"check-circle\": [512, 512, [], \"f058\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"],\n    \"check-square\": [448, 512, [], \"f14a\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"],\n    \"circle\": [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"],\n    \"clipboard\": [384, 512, [], \"f328\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"],\n    \"clock\": [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"],\n    \"closed-captioning\": [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"],\n    \"comment\": [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"],\n    \"comment-alt\": [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"],\n    \"comment-dots\": [512, 512, [], \"f4ad\", \"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"],\n    \"comments\": [576, 512, [], \"f086\", \"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"],\n    \"compass\": [496, 512, [], \"f14e\", \"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"],\n    \"copy\": [448, 512, [], \"f0c5\", \"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"],\n    \"copyright\": [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"],\n    \"credit-card\": [576, 512, [], \"f09d\", \"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"],\n    \"dizzy\": [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"],\n    \"dot-circle\": [512, 512, [], \"f192\", \"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"],\n    \"edit\": [576, 512, [], \"f044\", \"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"],\n    \"envelope\": [512, 512, [], \"f0e0\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"],\n    \"envelope-open\": [512, 512, [], \"f2b6\", \"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"],\n    \"eye\": [576, 512, [], \"f06e\", \"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"],\n    \"file\": [384, 512, [], \"f15b\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"],\n    \"file-alt\": [384, 512, [], \"f15c\", \"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"],\n    \"file-archive\": [384, 512, [], \"f1c6\", \"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"],\n    \"file-image\": [384, 512, [], \"f1c5\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"],\n    \"flag\": [512, 512, [], \"f024\", \"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"],\n    \"flushed\": [496, 512, [], \"f579\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"folder\": [512, 512, [], \"f07b\", \"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"],\n    \"folder-open\": [576, 512, [], \"f07c\", \"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"frown\": [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"],\n    \"frown-open\": [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"],\n    \"futbol\": [496, 512, [], \"f1e3\", \"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"],\n    \"gem\": [576, 512, [], \"f3a5\", \"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"],\n    \"grimace\": [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"],\n    \"grin\": [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"grin-alt\": [496, 512, [], \"f581\", \"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"],\n    \"grin-beam\": [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"],\n    \"grin-beam-sweat\": [496, 512, [], \"f583\", \"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"],\n    \"grin-hearts\": [496, 512, [], \"f584\", \"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"],\n    \"grin-squint\": [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"],\n    \"grin-squint-tears\": [512, 512, [], \"f586\", \"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"],\n    \"grin-stars\": [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"],\n    \"grin-tears\": [640, 512, [], \"f588\", \"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"],\n    \"grin-tongue\": [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"grin-tongue-squint\": [496, 512, [], \"f58a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"],\n    \"grin-tongue-wink\": [496, 512, [], \"f58b\", \"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"],\n    \"grin-wink\": [496, 512, [], \"f58c\", \"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"],\n    \"hand-lizard\": [576, 512, [], \"f258\", \"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"],\n    \"hand-paper\": [448, 512, [], \"f256\", \"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"],\n    \"hand-peace\": [448, 512, [], \"f25b\", \"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"],\n    \"hand-point-down\": [448, 512, [], \"f0a7\", \"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"],\n    \"hand-point-up\": [448, 512, [], \"f0a6\", \"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"],\n    \"hand-rock\": [512, 512, [], \"f255\", \"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"],\n    \"hand-spock\": [512, 512, [], \"f259\", \"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"],\n    \"hdd\": [576, 512, [], \"f0a0\", \"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"],\n    \"heart\": [512, 512, [], \"f004\", \"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"],\n    \"hospital\": [448, 512, [], \"f0f8\", \"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"],\n    \"hourglass\": [384, 512, [], \"f254\", \"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"],\n    \"id-card\": [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"],\n    \"images\": [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"],\n    \"keyboard\": [576, 512, [], \"f11c\", \"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"],\n    \"kiss\": [496, 512, [], \"f596\", \"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"kiss-beam\": [496, 512, [], \"f597\", \"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"],\n    \"kiss-wink-heart\": [504, 512, [], \"f598\", \"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"],\n    \"laugh\": [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-beam\": [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-squint\": [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"laugh-wink\": [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"],\n    \"lemon\": [512, 512, [], \"f094\", \"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"],\n    \"lightbulb\": [352, 512, [], \"f0eb\", \"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"],\n    \"list-alt\": [512, 512, [], \"f022\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"],\n    \"map\": [576, 512, [], \"f279\", \"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"],\n    \"meh\": [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"meh-blank\": [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"meh-rolling-eyes\": [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"],\n    \"minus-square\": [448, 512, [], \"f146\", \"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"money-bill-alt\": [640, 512, [], \"f3d1\", \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"],\n    \"moon\": [512, 512, [], \"f186\", \"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"],\n    \"newspaper\": [576, 512, [], \"f1ea\", \"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"],\n    \"object-group\": [512, 512, [], \"f247\", \"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"],\n    \"object-ungroup\": [576, 512, [], \"f248\", \"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"],\n    \"paper-plane\": [512, 512, [], \"f1d8\", \"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"],\n    \"pause-circle\": [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"],\n    \"play-circle\": [512, 512, [], \"f144\", \"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"],\n    \"plus-square\": [448, 512, [], \"f0fe\", \"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"],\n    \"question-circle\": [512, 512, [], \"f059\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"],\n    \"registered\": [512, 512, [], \"f25d\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"],\n    \"sad-cry\": [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"],\n    \"sad-tear\": [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"],\n    \"save\": [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"],\n    \"share-square\": [576, 512, [], \"f14d\", \"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"],\n    \"smile\": [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"],\n    \"smile-beam\": [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"],\n    \"smile-wink\": [496, 512, [], \"f4da\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"],\n    \"snowflake\": [448, 512, [], \"f2dc\", \"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"],\n    \"square\": [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"],\n    \"star\": [576, 512, [], \"f005\", \"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"],\n    \"star-half\": [576, 512, [], \"f089\", \"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"],\n    \"sticky-note\": [448, 512, [], \"f249\", \"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"],\n    \"stop-circle\": [512, 512, [], \"f28d\", \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"],\n    \"sun\": [512, 512, [], \"f185\", \"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"],\n    \"surprise\": [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"thumbs-down\": [512, 512, [], \"f165\", \"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"],\n    \"thumbs-up\": [512, 512, [], \"f164\", \"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"],\n    \"times-circle\": [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"],\n    \"tired\": [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"],\n    \"trash-alt\": [448, 512, [], \"f2ed\", \"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"],\n    \"user\": [448, 512, [], \"f007\", \"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"],\n    \"user-circle\": [496, 512, [], \"f2bd\", \"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"],\n    \"window-close\": [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"],\n    \"window-maximize\": [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"],\n    \"window-minimize\": [512, 512, [], \"f2d1\", \"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"]\n  };\n\n  bunker(function () {\n    defineIcons('far', icons);\n  });\n\n}());\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/solid.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function () {\n  'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return \"production\" === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  function defineIcons(prefix, icons) {\n    var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var _params$skipHooks = params.skipHooks,\n        skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n    var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n      var icon = icons[iconName];\n      var expanded = !!icon.icon;\n\n      if (expanded) {\n        acc[icon.iconName] = icon.icon;\n      } else {\n        acc[iconName] = icon;\n      }\n\n      return acc;\n    }, {});\n\n    if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n      namespace.hooks.addPack(prefix, normalized);\n    } else {\n      namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n    }\n    /**\n     * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n     * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n     * for `fas` so we'll easy the upgrade process for our users by automatically defining\n     * this as well.\n     */\n\n\n    if (prefix === 'fas') {\n      defineIcons('fa', icons);\n    }\n  }\n\n  var icons = {\n    \"ad\": [512, 512, [], \"f641\", \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"],\n    \"address-book\": [448, 512, [], \"f2b9\", \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"address-card\": [576, 512, [], \"f2bb\", \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"],\n    \"adjust\": [512, 512, [], \"f042\", \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"],\n    \"air-freshener\": [384, 512, [], \"f5d0\", \"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z\"],\n    \"align-center\": [448, 512, [], \"f037\", \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"],\n    \"align-justify\": [448, 512, [], \"f039\", \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"align-left\": [448, 512, [], \"f036\", \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"align-right\": [448, 512, [], \"f038\", \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"],\n    \"allergies\": [448, 512, [], \"f461\", \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"ambulance\": [640, 512, [], \"f0f9\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"american-sign-language-interpreting\": [640, 512, [], \"f2a3\", \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"],\n    \"anchor\": [576, 512, [], \"f13d\", \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"],\n    \"angle-double-down\": [320, 512, [], \"f103\", \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"],\n    \"angle-double-left\": [448, 512, [], \"f100\", \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"],\n    \"angle-double-right\": [448, 512, [], \"f101\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"],\n    \"angle-double-up\": [320, 512, [], \"f102\", \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"],\n    \"angle-down\": [320, 512, [], \"f107\", \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"],\n    \"angle-left\": [256, 512, [], \"f104\", \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"],\n    \"angle-right\": [256, 512, [], \"f105\", \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"],\n    \"angle-up\": [320, 512, [], \"f106\", \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"],\n    \"angry\": [496, 512, [], \"f556\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"],\n    \"ankh\": [320, 512, [], \"f644\", \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"],\n    \"apple-alt\": [448, 512, [], \"f5d1\", \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"],\n    \"archive\": [512, 512, [], \"f187\", \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"],\n    \"archway\": [576, 512, [], \"f557\", \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"],\n    \"arrow-alt-circle-down\": [512, 512, [], \"f358\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"],\n    \"arrow-alt-circle-left\": [512, 512, [], \"f359\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"],\n    \"arrow-alt-circle-right\": [512, 512, [], \"f35a\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"],\n    \"arrow-alt-circle-up\": [512, 512, [], \"f35b\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"],\n    \"arrow-circle-down\": [512, 512, [], \"f0ab\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"],\n    \"arrow-circle-left\": [512, 512, [], \"f0a8\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"],\n    \"arrow-circle-right\": [512, 512, [], \"f0a9\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"],\n    \"arrow-circle-up\": [512, 512, [], \"f0aa\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"],\n    \"arrow-down\": [448, 512, [], \"f063\", \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"],\n    \"arrow-left\": [448, 512, [], \"f060\", \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"],\n    \"arrow-right\": [448, 512, [], \"f061\", \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"],\n    \"arrow-up\": [448, 512, [], \"f062\", \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"],\n    \"arrows-alt\": [512, 512, [], \"f0b2\", \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"],\n    \"arrows-alt-h\": [512, 512, [], \"f337\", \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"],\n    \"arrows-alt-v\": [256, 512, [], \"f338\", \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"],\n    \"assistive-listening-systems\": [512, 512, [], \"f2a2\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"],\n    \"asterisk\": [512, 512, [], \"f069\", \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"],\n    \"at\": [512, 512, [], \"f1fa\", \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"],\n    \"atlas\": [448, 512, [], \"f558\", \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"],\n    \"atom\": [448, 512, [], \"f5d2\", \"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"audio-description\": [512, 512, [], \"f29e\", \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"],\n    \"award\": [384, 512, [], \"f559\", \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"],\n    \"baby\": [384, 512, [], \"f77c\", \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"],\n    \"baby-carriage\": [512, 512, [], \"f77d\", \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"],\n    \"backspace\": [640, 512, [], \"f55a\", \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"],\n    \"backward\": [512, 512, [], \"f04a\", \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"],\n    \"bacon\": [576, 512, [], \"f7e5\", \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"],\n    \"balance-scale\": [640, 512, [], \"f24e\", \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"balance-scale-left\": [640, 512, [], \"f515\", \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"],\n    \"balance-scale-right\": [640, 512, [], \"f516\", \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"],\n    \"ban\": [512, 512, [], \"f05e\", \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"],\n    \"band-aid\": [640, 512, [], \"f462\", \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"],\n    \"barcode\": [512, 512, [], \"f02a\", \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"],\n    \"bars\": [448, 512, [], \"f0c9\", \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"],\n    \"baseball-ball\": [496, 512, [], \"f433\", \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"],\n    \"basketball-ball\": [496, 512, [], \"f434\", \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"],\n    \"bath\": [512, 512, [], \"f2cd\", \"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"],\n    \"battery-empty\": [640, 512, [], \"f244\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"],\n    \"battery-full\": [640, 512, [], \"f240\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"],\n    \"battery-half\": [640, 512, [], \"f242\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"],\n    \"battery-quarter\": [640, 512, [], \"f243\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"],\n    \"battery-three-quarters\": [640, 512, [], \"f241\", \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"],\n    \"bed\": [640, 512, [], \"f236\", \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"],\n    \"beer\": [448, 512, [], \"f0fc\", \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"],\n    \"bell\": [448, 512, [], \"f0f3\", \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"],\n    \"bell-slash\": [640, 512, [], \"f1f6\", \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"],\n    \"bezier-curve\": [640, 512, [], \"f55b\", \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"bible\": [448, 512, [], \"f647\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"bicycle\": [640, 512, [], \"f206\", \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"],\n    \"biking\": [640, 512, [], \"f84a\", \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"],\n    \"binoculars\": [512, 512, [], \"f1e5\", \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"],\n    \"biohazard\": [576, 512, [], \"f780\", \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"birthday-cake\": [448, 512, [], \"f1fd\", \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"],\n    \"blender\": [512, 512, [], \"f517\", \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"],\n    \"blender-phone\": [576, 512, [], \"f6b6\", \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"blind\": [384, 512, [], \"f29d\", \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"],\n    \"blog\": [512, 512, [], \"f781\", \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"],\n    \"bold\": [384, 512, [], \"f032\", \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"],\n    \"bolt\": [320, 512, [], \"f0e7\", \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"],\n    \"bomb\": [512, 512, [], \"f1e2\", \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"],\n    \"bone\": [640, 512, [], \"f5d7\", \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"],\n    \"bong\": [448, 512, [], \"f55c\", \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"],\n    \"book\": [448, 512, [], \"f02d\", \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"],\n    \"book-dead\": [448, 512, [], \"f6b7\", \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"],\n    \"book-medical\": [448, 512, [], \"f7e6\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"],\n    \"book-open\": [576, 512, [], \"f518\", \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"],\n    \"book-reader\": [512, 512, [], \"f5da\", \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"],\n    \"bookmark\": [384, 512, [], \"f02e\", \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"],\n    \"border-all\": [448, 512, [], \"f84c\", \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"],\n    \"border-none\": [448, 512, [], \"f850\", \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"border-style\": [448, 512, [], \"f853\", \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"bowling-ball\": [496, 512, [], \"f436\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"box\": [512, 512, [], \"f466\", \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"],\n    \"box-open\": [640, 512, [], \"f49e\", \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"],\n    \"boxes\": [576, 512, [], \"f468\", \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"],\n    \"braille\": [640, 512, [], \"f2a1\", \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"],\n    \"brain\": [576, 512, [], \"f5dc\", \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"],\n    \"bread-slice\": [576, 512, [], \"f7ec\", \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"],\n    \"briefcase\": [512, 512, [], \"f0b1\", \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"],\n    \"briefcase-medical\": [512, 512, [], \"f469\", \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"],\n    \"broadcast-tower\": [640, 512, [], \"f519\", \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"],\n    \"broom\": [640, 512, [], \"f51a\", \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"],\n    \"brush\": [384, 512, [], \"f55d\", \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"],\n    \"bug\": [512, 512, [], \"f188\", \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"],\n    \"building\": [448, 512, [], \"f1ad\", \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"],\n    \"bullhorn\": [576, 512, [], \"f0a1\", \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"],\n    \"bullseye\": [496, 512, [], \"f140\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"],\n    \"burn\": [384, 512, [], \"f46a\", \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"],\n    \"bus\": [512, 512, [], \"f207\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"bus-alt\": [512, 512, [], \"f55e\", \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"business-time\": [640, 512, [], \"f64a\", \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"],\n    \"calculator\": [448, 512, [], \"f1ec\", \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"],\n    \"calendar\": [448, 512, [], \"f133\", \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"],\n    \"calendar-alt\": [448, 512, [], \"f073\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"calendar-check\": [448, 512, [], \"f274\", \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"],\n    \"calendar-day\": [448, 512, [], \"f783\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"calendar-minus\": [448, 512, [], \"f272\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"],\n    \"calendar-plus\": [448, 512, [], \"f271\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"],\n    \"calendar-times\": [448, 512, [], \"f273\", \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"],\n    \"calendar-week\": [448, 512, [], \"f784\", \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"],\n    \"camera\": [512, 512, [], \"f030\", \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"],\n    \"camera-retro\": [512, 512, [], \"f083\", \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"],\n    \"campground\": [640, 512, [], \"f6bb\", \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"],\n    \"candy-cane\": [512, 512, [], \"f786\", \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"],\n    \"cannabis\": [512, 512, [], \"f55f\", \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"],\n    \"capsules\": [576, 512, [], \"f46b\", \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"],\n    \"car\": [512, 512, [], \"f1b9\", \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"],\n    \"car-alt\": [480, 512, [], \"f5de\", \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"],\n    \"car-battery\": [512, 512, [], \"f5df\", \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"],\n    \"car-crash\": [640, 512, [], \"f5e1\", \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"],\n    \"car-side\": [640, 512, [], \"f5e4\", \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"],\n    \"caret-down\": [320, 512, [], \"f0d7\", \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"],\n    \"caret-left\": [192, 512, [], \"f0d9\", \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"],\n    \"caret-right\": [192, 512, [], \"f0da\", \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"],\n    \"caret-square-down\": [448, 512, [], \"f150\", \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"],\n    \"caret-square-left\": [448, 512, [], \"f191\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"],\n    \"caret-square-right\": [448, 512, [], \"f152\", \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"],\n    \"caret-square-up\": [448, 512, [], \"f151\", \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"],\n    \"caret-up\": [320, 512, [], \"f0d8\", \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"],\n    \"carrot\": [512, 512, [], \"f787\", \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"],\n    \"cart-arrow-down\": [576, 512, [], \"f218\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"],\n    \"cart-plus\": [576, 512, [], \"f217\", \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"],\n    \"cash-register\": [512, 512, [], \"f788\", \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"],\n    \"cat\": [512, 512, [], \"f6be\", \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"certificate\": [512, 512, [], \"f0a3\", \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"],\n    \"chair\": [448, 512, [], \"f6c0\", \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"],\n    \"chalkboard\": [640, 512, [], \"f51b\", \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"chalkboard-teacher\": [640, 512, [], \"f51c\", \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"],\n    \"charging-station\": [576, 512, [], \"f5e7\", \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"],\n    \"chart-area\": [512, 512, [], \"f1fe\", \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"],\n    \"chart-bar\": [512, 512, [], \"f080\", \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"chart-line\": [512, 512, [], \"f201\", \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"],\n    \"chart-pie\": [544, 512, [], \"f200\", \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"],\n    \"check\": [512, 512, [], \"f00c\", \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"],\n    \"check-circle\": [512, 512, [], \"f058\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"],\n    \"check-double\": [512, 512, [], \"f560\", \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"],\n    \"check-square\": [448, 512, [], \"f14a\", \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"],\n    \"cheese\": [512, 512, [], \"f7ef\", \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"],\n    \"chess\": [512, 512, [], \"f439\", \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"],\n    \"chess-bishop\": [320, 512, [], \"f43a\", \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-board\": [512, 512, [], \"f43c\", \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"],\n    \"chess-king\": [448, 512, [], \"f43f\", \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"],\n    \"chess-knight\": [384, 512, [], \"f441\", \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-pawn\": [320, 512, [], \"f443\", \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chess-queen\": [512, 512, [], \"f445\", \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"],\n    \"chess-rook\": [384, 512, [], \"f447\", \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"chevron-circle-down\": [512, 512, [], \"f13a\", \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"],\n    \"chevron-circle-left\": [512, 512, [], \"f137\", \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"],\n    \"chevron-circle-right\": [512, 512, [], \"f138\", \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"],\n    \"chevron-circle-up\": [512, 512, [], \"f139\", \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"],\n    \"chevron-down\": [448, 512, [], \"f078\", \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"],\n    \"chevron-left\": [320, 512, [], \"f053\", \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"],\n    \"chevron-right\": [320, 512, [], \"f054\", \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"],\n    \"chevron-up\": [448, 512, [], \"f077\", \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"],\n    \"child\": [384, 512, [], \"f1ae\", \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"],\n    \"church\": [640, 512, [], \"f51d\", \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"],\n    \"circle\": [512, 512, [], \"f111\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"],\n    \"circle-notch\": [512, 512, [], \"f1ce\", \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"],\n    \"city\": [640, 512, [], \"f64f\", \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"],\n    \"clinic-medical\": [576, 512, [], \"f7f2\", \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"],\n    \"clipboard\": [384, 512, [], \"f328\", \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"],\n    \"clipboard-check\": [384, 512, [], \"f46c\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"],\n    \"clipboard-list\": [384, 512, [], \"f46d\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"],\n    \"clock\": [512, 512, [], \"f017\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z\"],\n    \"clone\": [512, 512, [], \"f24d\", \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"],\n    \"closed-captioning\": [512, 512, [], \"f20a\", \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"],\n    \"cloud\": [640, 512, [], \"f0c2\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"],\n    \"cloud-download-alt\": [640, 512, [], \"f381\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"],\n    \"cloud-meatball\": [512, 512, [], \"f73b\", \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"],\n    \"cloud-moon\": [576, 512, [], \"f6c3\", \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"],\n    \"cloud-moon-rain\": [576, 512, [], \"f73c\", \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"],\n    \"cloud-rain\": [512, 512, [], \"f73d\", \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"],\n    \"cloud-showers-heavy\": [512, 512, [], \"f740\", \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"],\n    \"cloud-sun\": [640, 512, [], \"f6c4\", \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"],\n    \"cloud-sun-rain\": [576, 512, [], \"f743\", \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"],\n    \"cloud-upload-alt\": [640, 512, [], \"f382\", \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"],\n    \"cocktail\": [576, 512, [], \"f561\", \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"],\n    \"code\": [640, 512, [], \"f121\", \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"],\n    \"code-branch\": [384, 512, [], \"f126\", \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"],\n    \"coffee\": [640, 512, [], \"f0f4\", \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"],\n    \"cog\": [512, 512, [], \"f013\", \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"cogs\": [640, 512, [], \"f085\", \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"],\n    \"coins\": [512, 512, [], \"f51e\", \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"],\n    \"columns\": [512, 512, [], \"f0db\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"],\n    \"comment\": [512, 512, [], \"f075\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"],\n    \"comment-alt\": [512, 512, [], \"f27a\", \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"],\n    \"comment-dollar\": [512, 512, [], \"f651\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"],\n    \"comment-dots\": [512, 512, [], \"f4ad\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"comment-medical\": [512, 512, [], \"f7f5\", \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"],\n    \"comment-slash\": [640, 512, [], \"f4b3\", \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"],\n    \"comments\": [576, 512, [], \"f086\", \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"],\n    \"comments-dollar\": [576, 512, [], \"f653\", \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"],\n    \"compact-disc\": [496, 512, [], \"f51f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"],\n    \"compass\": [496, 512, [], \"f14e\", \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"],\n    \"compress\": [448, 512, [], \"f066\", \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"],\n    \"compress-arrows-alt\": [512, 512, [], \"f78c\", \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"],\n    \"concierge-bell\": [512, 512, [], \"f562\", \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"cookie\": [512, 512, [], \"f563\", \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"cookie-bite\": [512, 512, [], \"f564\", \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"copy\": [448, 512, [], \"f0c5\", \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"],\n    \"copyright\": [512, 512, [], \"f1f9\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"],\n    \"couch\": [640, 512, [], \"f4b8\", \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"],\n    \"credit-card\": [576, 512, [], \"f09d\", \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"],\n    \"crop\": [512, 512, [], \"f125\", \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"crop-alt\": [512, 512, [], \"f565\", \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"],\n    \"cross\": [384, 512, [], \"f654\", \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"crosshairs\": [512, 512, [], \"f05b\", \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"],\n    \"crow\": [640, 512, [], \"f520\", \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"crown\": [640, 512, [], \"f521\", \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"],\n    \"crutch\": [512, 512, [], \"f7f7\", \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"],\n    \"cube\": [512, 512, [], \"f1b2\", \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"],\n    \"cubes\": [512, 512, [], \"f1b3\", \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"],\n    \"cut\": [448, 512, [], \"f0c4\", \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"],\n    \"database\": [448, 512, [], \"f1c0\", \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"],\n    \"deaf\": [512, 512, [], \"f2a4\", \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"],\n    \"democrat\": [640, 512, [], \"f747\", \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"],\n    \"desktop\": [576, 512, [], \"f108\", \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"],\n    \"dharmachakra\": [512, 512, [], \"f655\", \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"],\n    \"diagnoses\": [640, 512, [], \"f470\", \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"dice\": [640, 512, [], \"f522\", \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"dice-d20\": [480, 512, [], \"f6cf\", \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"],\n    \"dice-d6\": [448, 512, [], \"f6d1\", \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"],\n    \"dice-five\": [448, 512, [], \"f523\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-four\": [448, 512, [], \"f524\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-one\": [448, 512, [], \"f525\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-six\": [448, 512, [], \"f526\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-three\": [448, 512, [], \"f527\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"dice-two\": [448, 512, [], \"f528\", \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"digital-tachograph\": [640, 512, [], \"f566\", \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"],\n    \"directions\": [512, 512, [], \"f5eb\", \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"],\n    \"divide\": [448, 512, [], \"f529\", \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"dizzy\": [496, 512, [], \"f567\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"],\n    \"dna\": [448, 512, [], \"f471\", \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"],\n    \"dog\": [512, 512, [], \"f6d3\", \"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z\"],\n    \"dollar-sign\": [288, 512, [], \"f155\", \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"],\n    \"dolly\": [576, 512, [], \"f472\", \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"dolly-flatbed\": [640, 512, [], \"f474\", \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"donate\": [512, 512, [], \"f4b9\", \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"],\n    \"door-closed\": [640, 512, [], \"f52a\", \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"],\n    \"door-open\": [640, 512, [], \"f52b\", \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"],\n    \"dot-circle\": [512, 512, [], \"f192\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"],\n    \"dove\": [512, 512, [], \"f4ba\", \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"download\": [512, 512, [], \"f019\", \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"],\n    \"drafting-compass\": [512, 512, [], \"f568\", \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"],\n    \"dragon\": [640, 512, [], \"f6d5\", \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"],\n    \"draw-polygon\": [448, 512, [], \"f5ee\", \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"],\n    \"drum\": [576, 512, [], \"f569\", \"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z\"],\n    \"drum-steelpan\": [576, 512, [], \"f56a\", \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"],\n    \"drumstick-bite\": [512, 512, [], \"f6d7\", \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"],\n    \"dumbbell\": [640, 512, [], \"f44b\", \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"],\n    \"dumpster\": [576, 512, [], \"f793\", \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"dumpster-fire\": [640, 512, [], \"f794\", \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"],\n    \"dungeon\": [512, 512, [], \"f6d9\", \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"],\n    \"edit\": [576, 512, [], \"f044\", \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"],\n    \"egg\": [384, 512, [], \"f7fb\", \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"],\n    \"eject\": [448, 512, [], \"f052\", \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"],\n    \"ellipsis-h\": [512, 512, [], \"f141\", \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"],\n    \"ellipsis-v\": [192, 512, [], \"f142\", \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"],\n    \"envelope\": [512, 512, [], \"f0e0\", \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"],\n    \"envelope-open\": [512, 512, [], \"f2b6\", \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"],\n    \"envelope-open-text\": [512, 512, [], \"f658\", \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"],\n    \"envelope-square\": [448, 512, [], \"f199\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"],\n    \"equals\": [448, 512, [], \"f52c\", \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"eraser\": [512, 512, [], \"f12d\", \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"],\n    \"ethernet\": [512, 512, [], \"f796\", \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"],\n    \"euro-sign\": [320, 512, [], \"f153\", \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"],\n    \"exchange-alt\": [512, 512, [], \"f362\", \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"],\n    \"exclamation\": [192, 512, [], \"f12a\", \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"],\n    \"exclamation-circle\": [512, 512, [], \"f06a\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"],\n    \"exclamation-triangle\": [576, 512, [], \"f071\", \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"],\n    \"expand\": [448, 512, [], \"f065\", \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"],\n    \"expand-arrows-alt\": [448, 512, [], \"f31e\", \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"],\n    \"external-link-alt\": [576, 512, [], \"f35d\", \"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z\"],\n    \"external-link-square-alt\": [448, 512, [], \"f360\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"],\n    \"eye\": [576, 512, [], \"f06e\", \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"],\n    \"eye-dropper\": [512, 512, [], \"f1fb\", \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"],\n    \"eye-slash\": [640, 512, [], \"f070\", \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"],\n    \"fan\": [512, 512, [], \"f863\", \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"],\n    \"fast-backward\": [512, 512, [], \"f049\", \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"],\n    \"fast-forward\": [512, 512, [], \"f050\", \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"],\n    \"fax\": [512, 512, [], \"f1ac\", \"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z\"],\n    \"feather\": [512, 512, [], \"f52d\", \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"],\n    \"feather-alt\": [512, 512, [], \"f56b\", \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"],\n    \"female\": [256, 512, [], \"f182\", \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"],\n    \"fighter-jet\": [640, 512, [], \"f0fb\", \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"],\n    \"file\": [384, 512, [], \"f15b\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-alt\": [384, 512, [], \"f15c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-archive\": [384, 512, [], \"f1c6\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"],\n    \"file-audio\": [384, 512, [], \"f1c7\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-code\": [384, 512, [], \"f1c9\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"],\n    \"file-contract\": [384, 512, [], \"f56c\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-csv\": [384, 512, [], \"f6dd\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-download\": [384, 512, [], \"f56d\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-excel\": [384, 512, [], \"f1c3\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-export\": [576, 512, [], \"f56e\", \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"],\n    \"file-image\": [384, 512, [], \"f1c5\", \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"],\n    \"file-import\": [512, 512, [], \"f56f\", \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"],\n    \"file-invoice\": [384, 512, [], \"f570\", \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"],\n    \"file-invoice-dollar\": [384, 512, [], \"f571\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"],\n    \"file-medical\": [384, 512, [], \"f477\", \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"],\n    \"file-medical-alt\": [448, 512, [], \"f478\", \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-pdf\": [384, 512, [], \"f1c1\", \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"],\n    \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"],\n    \"file-prescription\": [384, 512, [], \"f572\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"file-signature\": [576, 512, [], \"f573\", \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"],\n    \"file-upload\": [384, 512, [], \"f574\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"],\n    \"file-video\": [384, 512, [], \"f1c8\", \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"],\n    \"file-word\": [384, 512, [], \"f1c2\", \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"],\n    \"fill\": [512, 512, [], \"f575\", \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"],\n    \"fill-drip\": [576, 512, [], \"f576\", \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"],\n    \"film\": [512, 512, [], \"f008\", \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"],\n    \"filter\": [512, 512, [], \"f0b0\", \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"],\n    \"fingerprint\": [512, 512, [], \"f577\", \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"],\n    \"fire\": [384, 512, [], \"f06d\", \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"],\n    \"fire-alt\": [448, 512, [], \"f7e4\", \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"],\n    \"fire-extinguisher\": [448, 512, [], \"f134\", \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"],\n    \"first-aid\": [576, 512, [], \"f479\", \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"fish\": [576, 512, [], \"f578\", \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"],\n    \"fist-raised\": [384, 512, [], \"f6de\", \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"],\n    \"flag\": [512, 512, [], \"f024\", \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"],\n    \"flag-checkered\": [512, 512, [], \"f11e\", \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"],\n    \"flag-usa\": [512, 512, [], \"f74d\", \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"],\n    \"flask\": [448, 512, [], \"f0c3\", \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"],\n    \"flushed\": [496, 512, [], \"f579\", \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"],\n    \"folder\": [512, 512, [], \"f07b\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"],\n    \"folder-minus\": [512, 512, [], \"f65d\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"],\n    \"folder-open\": [576, 512, [], \"f07c\", \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"],\n    \"folder-plus\": [512, 512, [], \"f65e\", \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z\"],\n    \"font\": [448, 512, [], \"f031\", \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"],\n    \"font-awesome-logo-full\": [3992, 512, [\"Font Awesome\"], \"f4e6\", \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"],\n    \"football-ball\": [496, 512, [], \"f44e\", \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"],\n    \"forward\": [512, 512, [], \"f04e\", \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"],\n    \"frog\": [576, 512, [], \"f52e\", \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"],\n    \"frown\": [496, 512, [], \"f119\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"],\n    \"frown-open\": [496, 512, [], \"f57a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"funnel-dollar\": [640, 512, [], \"f662\", \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"],\n    \"futbol\": [512, 512, [], \"f1e3\", \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"],\n    \"gamepad\": [640, 512, [], \"f11b\", \"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"gas-pump\": [512, 512, [], \"f52f\", \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"],\n    \"gavel\": [512, 512, [], \"f0e3\", \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"],\n    \"gem\": [576, 512, [], \"f3a5\", \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"],\n    \"genderless\": [288, 512, [], \"f22d\", \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"],\n    \"ghost\": [384, 512, [], \"f6e2\", \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"gift\": [512, 512, [], \"f06b\", \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"],\n    \"gifts\": [640, 512, [], \"f79c\", \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"],\n    \"glass-cheers\": [640, 512, [], \"f79f\", \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"],\n    \"glass-martini\": [512, 512, [], \"f000\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"],\n    \"glass-martini-alt\": [512, 512, [], \"f57b\", \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"],\n    \"glass-whiskey\": [512, 512, [], \"f7a0\", \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"],\n    \"glasses\": [576, 512, [], \"f530\", \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"],\n    \"globe\": [496, 512, [], \"f0ac\", \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"],\n    \"globe-africa\": [496, 512, [], \"f57c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"],\n    \"globe-americas\": [496, 512, [], \"f57d\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"],\n    \"globe-asia\": [496, 512, [], \"f57e\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"],\n    \"globe-europe\": [496, 512, [], \"f7a2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"],\n    \"golf-ball\": [416, 512, [], \"f450\", \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"],\n    \"gopuram\": [512, 512, [], \"f664\", \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"],\n    \"graduation-cap\": [640, 512, [], \"f19d\", \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"],\n    \"greater-than\": [384, 512, [], \"f531\", \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"],\n    \"greater-than-equal\": [448, 512, [], \"f532\", \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"grimace\": [496, 512, [], \"f57f\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"],\n    \"grin\": [496, 512, [], \"f580\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-alt\": [496, 512, [], \"f581\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-beam\": [496, 512, [], \"f582\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-beam-sweat\": [504, 512, [], \"f583\", \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-hearts\": [496, 512, [], \"f584\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"],\n    \"grin-squint\": [496, 512, [], \"f585\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-squint-tears\": [512, 512, [], \"f586\", \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"],\n    \"grin-stars\": [496, 512, [], \"f587\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"],\n    \"grin-tears\": [640, 512, [], \"f588\", \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"],\n    \"grin-tongue\": [496, 512, [], \"f589\", \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"],\n    \"grin-tongue-squint\": [496, 512, [], \"f58a\", \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"],\n    \"grin-tongue-wink\": [496, 512, [], \"f58b\", \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"],\n    \"grin-wink\": [496, 512, [], \"f58c\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"],\n    \"grip-horizontal\": [448, 512, [], \"f58d\", \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"grip-lines\": [512, 512, [], \"f7a4\", \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"],\n    \"grip-lines-vertical\": [256, 512, [], \"f7a5\", \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"],\n    \"grip-vertical\": [320, 512, [], \"f58e\", \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"],\n    \"guitar\": [512, 512, [], \"f7a6\", \"M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"h-square\": [448, 512, [], \"f0fd\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"],\n    \"hamburger\": [512, 512, [], \"f805\", \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"],\n    \"hammer\": [576, 512, [], \"f6e3\", \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"],\n    \"hamsa\": [512, 512, [], \"f665\", \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"hand-holding\": [576, 512, [], \"f4bd\", \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"],\n    \"hand-holding-heart\": [576, 512, [], \"f4be\", \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"],\n    \"hand-holding-usd\": [544, 512, [], \"f4c0\", \"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z\"],\n    \"hand-lizard\": [576, 512, [], \"f258\", \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"],\n    \"hand-middle-finger\": [512, 512, [], \"f806\", \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"],\n    \"hand-paper\": [448, 512, [], \"f256\", \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"],\n    \"hand-peace\": [448, 512, [], \"f25b\", \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"],\n    \"hand-point-down\": [384, 512, [], \"f0a7\", \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"],\n    \"hand-point-left\": [512, 512, [], \"f0a5\", \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"],\n    \"hand-point-right\": [512, 512, [], \"f0a4\", \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"],\n    \"hand-point-up\": [384, 512, [], \"f0a6\", \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"],\n    \"hand-pointer\": [448, 512, [], \"f25a\", \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"],\n    \"hand-rock\": [512, 512, [], \"f255\", \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"],\n    \"hand-scissors\": [512, 512, [], \"f257\", \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"],\n    \"hand-spock\": [512, 512, [], \"f259\", \"M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z\"],\n    \"hands\": [640, 512, [], \"f4c2\", \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"],\n    \"hands-helping\": [640, 512, [], \"f4c4\", \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"],\n    \"handshake\": [640, 512, [], \"f2b5\", \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"],\n    \"hanukiah\": [640, 512, [], \"f6e6\", \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"],\n    \"hard-hat\": [512, 512, [], \"f807\", \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"hashtag\": [448, 512, [], \"f292\", \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"],\n    \"hat-wizard\": [512, 512, [], \"f6e8\", \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"],\n    \"haykal\": [512, 512, [], \"f666\", \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"],\n    \"hdd\": [576, 512, [], \"f0a0\", \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"],\n    \"heading\": [512, 512, [], \"f1dc\", \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"],\n    \"headphones\": [512, 512, [], \"f025\", \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"],\n    \"headphones-alt\": [512, 512, [], \"f58f\", \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"],\n    \"headset\": [512, 512, [], \"f590\", \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"],\n    \"heart\": [512, 512, [], \"f004\", \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"],\n    \"heart-broken\": [512, 512, [], \"f7a9\", \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"],\n    \"heartbeat\": [512, 512, [], \"f21e\", \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"],\n    \"helicopter\": [640, 512, [], \"f533\", \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"],\n    \"highlighter\": [544, 512, [], \"f591\", \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"],\n    \"hiking\": [384, 512, [], \"f6ec\", \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"],\n    \"hippo\": [640, 512, [], \"f6ed\", \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"history\": [512, 512, [], \"f1da\", \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"],\n    \"hockey-puck\": [512, 512, [], \"f453\", \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"],\n    \"holly-berry\": [448, 512, [], \"f7aa\", \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"],\n    \"home\": [576, 512, [], \"f015\", \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"],\n    \"horse\": [576, 512, [], \"f6f0\", \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"],\n    \"horse-head\": [512, 512, [], \"f7ab\", \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"],\n    \"hospital\": [448, 512, [], \"f0f8\", \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"],\n    \"hospital-alt\": [576, 512, [], \"f47d\", \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"],\n    \"hospital-symbol\": [512, 512, [], \"f47e\", \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"],\n    \"hot-tub\": [512, 512, [], \"f593\", \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"],\n    \"hotdog\": [512, 512, [], \"f80f\", \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"],\n    \"hotel\": [576, 512, [], \"f594\", \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"],\n    \"hourglass\": [384, 512, [], \"f254\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"],\n    \"hourglass-end\": [384, 512, [], \"f253\", \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"],\n    \"hourglass-half\": [384, 512, [], \"f252\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"],\n    \"hourglass-start\": [384, 512, [], \"f251\", \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"],\n    \"house-damage\": [576, 512, [], \"f6f1\", \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"],\n    \"hryvnia\": [384, 512, [], \"f6f2\", \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"],\n    \"i-cursor\": [256, 512, [], \"f246\", \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"],\n    \"ice-cream\": [448, 512, [], \"f810\", \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"],\n    \"icicles\": [512, 512, [], \"f7ad\", \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"],\n    \"icons\": [512, 512, [], \"f86d\", \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"],\n    \"id-badge\": [384, 512, [], \"f2c1\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"id-card\": [576, 512, [], \"f2c2\", \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"],\n    \"id-card-alt\": [576, 512, [], \"f47f\", \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"],\n    \"igloo\": [576, 512, [], \"f7ae\", \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"],\n    \"image\": [512, 512, [], \"f03e\", \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"],\n    \"images\": [576, 512, [], \"f302\", \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"],\n    \"inbox\": [576, 512, [], \"f01c\", \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"],\n    \"indent\": [448, 512, [], \"f03c\", \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"industry\": [512, 512, [], \"f275\", \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"],\n    \"infinity\": [640, 512, [], \"f534\", \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"],\n    \"info\": [192, 512, [], \"f129\", \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"],\n    \"info-circle\": [512, 512, [], \"f05a\", \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"],\n    \"italic\": [320, 512, [], \"f033\", \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"],\n    \"jedi\": [544, 512, [], \"f669\", \"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z\"],\n    \"joint\": [640, 512, [], \"f595\", \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"],\n    \"journal-whills\": [448, 512, [], \"f66a\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"kaaba\": [576, 512, [], \"f66b\", \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"],\n    \"key\": [512, 512, [], \"f084\", \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"],\n    \"keyboard\": [576, 512, [], \"f11c\", \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"],\n    \"khanda\": [512, 512, [], \"f66d\", \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"],\n    \"kiss\": [496, 512, [], \"f596\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"kiss-beam\": [496, 512, [], \"f597\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"],\n    \"kiss-wink-heart\": [504, 512, [], \"f598\", \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"],\n    \"kiwi-bird\": [576, 512, [], \"f535\", \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"],\n    \"landmark\": [512, 512, [], \"f66f\", \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"language\": [640, 512, [], \"f1ab\", \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"],\n    \"laptop\": [640, 512, [], \"f109\", \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"],\n    \"laptop-code\": [640, 512, [], \"f5fc\", \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"],\n    \"laptop-medical\": [640, 512, [], \"f812\", \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"],\n    \"laugh\": [496, 512, [], \"f599\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"],\n    \"laugh-beam\": [496, 512, [], \"f59a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"laugh-squint\": [496, 512, [], \"f59b\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"laugh-wink\": [496, 512, [], \"f59c\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"],\n    \"layer-group\": [512, 512, [], \"f5fd\", \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"],\n    \"leaf\": [576, 512, [], \"f06c\", \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"],\n    \"lemon\": [512, 512, [], \"f094\", \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"],\n    \"less-than\": [384, 512, [], \"f536\", \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"],\n    \"less-than-equal\": [448, 512, [], \"f537\", \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"],\n    \"level-down-alt\": [320, 512, [], \"f3be\", \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"],\n    \"level-up-alt\": [320, 512, [], \"f3bf\", \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"],\n    \"life-ring\": [512, 512, [], \"f1cd\", \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"],\n    \"lightbulb\": [352, 512, [], \"f0eb\", \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"],\n    \"link\": [512, 512, [], \"f0c1\", \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"],\n    \"lira-sign\": [384, 512, [], \"f195\", \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"],\n    \"list\": [512, 512, [], \"f03a\", \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"list-alt\": [512, 512, [], \"f022\", \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"],\n    \"list-ol\": [512, 512, [], \"f0cb\", \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"],\n    \"list-ul\": [512, 512, [], \"f0ca\", \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"location-arrow\": [512, 512, [], \"f124\", \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"],\n    \"lock\": [448, 512, [], \"f023\", \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"],\n    \"lock-open\": [576, 512, [], \"f3c1\", \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"],\n    \"long-arrow-alt-down\": [256, 512, [], \"f309\", \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"],\n    \"long-arrow-alt-left\": [448, 512, [], \"f30a\", \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"],\n    \"long-arrow-alt-right\": [448, 512, [], \"f30b\", \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"],\n    \"long-arrow-alt-up\": [256, 512, [], \"f30c\", \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"],\n    \"low-vision\": [576, 512, [], \"f2a8\", \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"],\n    \"luggage-cart\": [640, 512, [], \"f59d\", \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"],\n    \"magic\": [512, 512, [], \"f0d0\", \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"],\n    \"magnet\": [512, 512, [], \"f076\", \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"],\n    \"mail-bulk\": [576, 512, [], \"f674\", \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"],\n    \"male\": [192, 512, [], \"f183\", \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"],\n    \"map\": [576, 512, [], \"f279\", \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marked\": [576, 512, [], \"f59f\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marked-alt\": [576, 512, [], \"f5a0\", \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"],\n    \"map-marker\": [384, 512, [], \"f041\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"],\n    \"map-marker-alt\": [384, 512, [], \"f3c5\", \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"],\n    \"map-pin\": [288, 512, [], \"f276\", \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"],\n    \"map-signs\": [512, 512, [], \"f277\", \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"],\n    \"marker\": [512, 512, [], \"f5a1\", \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"],\n    \"mars\": [384, 512, [], \"f222\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"mars-double\": [512, 512, [], \"f227\", \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"],\n    \"mars-stroke\": [384, 512, [], \"f229\", \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"mars-stroke-h\": [480, 512, [], \"f22b\", \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"],\n    \"mars-stroke-v\": [288, 512, [], \"f22a\", \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"],\n    \"mask\": [640, 512, [], \"f6fa\", \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"],\n    \"medal\": [512, 512, [], \"f5a2\", \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"],\n    \"medkit\": [512, 512, [], \"f0fa\", \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"],\n    \"meh\": [496, 512, [], \"f11a\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"meh-blank\": [496, 512, [], \"f5a4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"meh-rolling-eyes\": [496, 512, [], \"f5a5\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"],\n    \"memory\": [640, 512, [], \"f538\", \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"],\n    \"menorah\": [640, 512, [], \"f676\", \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"],\n    \"mercury\": [288, 512, [], \"f223\", \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"],\n    \"meteor\": [512, 512, [], \"f753\", \"M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z\"],\n    \"microchip\": [512, 512, [], \"f2db\", \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"],\n    \"microphone\": [352, 512, [], \"f130\", \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"],\n    \"microphone-alt\": [352, 512, [], \"f3c9\", \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"],\n    \"microphone-alt-slash\": [640, 512, [], \"f539\", \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"],\n    \"microphone-slash\": [640, 512, [], \"f131\", \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"],\n    \"microscope\": [512, 512, [], \"f610\", \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"],\n    \"minus\": [448, 512, [], \"f068\", \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"minus-circle\": [512, 512, [], \"f056\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"],\n    \"minus-square\": [448, 512, [], \"f146\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"],\n    \"mitten\": [448, 512, [], \"f7b5\", \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"],\n    \"mobile\": [320, 512, [], \"f10b\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"mobile-alt\": [320, 512, [], \"f3cd\", \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"],\n    \"money-bill\": [640, 512, [], \"f0d6\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"],\n    \"money-bill-alt\": [640, 512, [], \"f3d1\", \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"],\n    \"money-bill-wave\": [640, 512, [], \"f53a\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"],\n    \"money-bill-wave-alt\": [640, 512, [], \"f53b\", \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"],\n    \"money-check\": [640, 512, [], \"f53c\", \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"],\n    \"money-check-alt\": [640, 512, [], \"f53d\", \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"],\n    \"monument\": [384, 512, [], \"f5a6\", \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"],\n    \"moon\": [512, 512, [], \"f186\", \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"],\n    \"mortar-pestle\": [512, 512, [], \"f5a7\", \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"],\n    \"mosque\": [640, 512, [], \"f678\", \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"],\n    \"motorcycle\": [640, 512, [], \"f21c\", \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"],\n    \"mountain\": [640, 512, [], \"f6fc\", \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"],\n    \"mouse-pointer\": [320, 512, [], \"f245\", \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"],\n    \"mug-hot\": [512, 512, [], \"f7b6\", \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n    \"music\": [512, 512, [], \"f001\", \"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z\"],\n    \"network-wired\": [640, 512, [], \"f6ff\", \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"],\n    \"neuter\": [288, 512, [], \"f22c\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"newspaper\": [576, 512, [], \"f1ea\", \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"],\n    \"not-equal\": [448, 512, [], \"f53e\", \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"],\n    \"notes-medical\": [384, 512, [], \"f481\", \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"],\n    \"object-group\": [512, 512, [], \"f247\", \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"],\n    \"object-ungroup\": [576, 512, [], \"f248\", \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"],\n    \"oil-can\": [640, 512, [], \"f613\", \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"],\n    \"om\": [512, 512, [], \"f679\", \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"],\n    \"otter\": [640, 512, [], \"f700\", \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"],\n    \"outdent\": [448, 512, [], \"f03b\", \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"pager\": [512, 512, [], \"f815\", \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"],\n    \"paint-brush\": [512, 512, [], \"f1fc\", \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"],\n    \"paint-roller\": [512, 512, [], \"f5aa\", \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"],\n    \"palette\": [512, 512, [], \"f53f\", \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"pallet\": [640, 512, [], \"f482\", \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"],\n    \"paper-plane\": [512, 512, [], \"f1d8\", \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"],\n    \"paperclip\": [448, 512, [], \"f0c6\", \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"],\n    \"parachute-box\": [512, 512, [], \"f4cd\", \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"],\n    \"paragraph\": [448, 512, [], \"f1dd\", \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"],\n    \"parking\": [448, 512, [], \"f540\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"],\n    \"passport\": [448, 512, [], \"f5ab\", \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"],\n    \"pastafarianism\": [640, 512, [], \"f67b\", \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"],\n    \"paste\": [448, 512, [], \"f0ea\", \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"],\n    \"pause\": [448, 512, [], \"f04c\", \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"],\n    \"pause-circle\": [512, 512, [], \"f28b\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"],\n    \"paw\": [512, 512, [], \"f1b0\", \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"],\n    \"peace\": [496, 512, [], \"f67c\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"],\n    \"pen\": [512, 512, [], \"f304\", \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"],\n    \"pen-alt\": [512, 512, [], \"f305\", \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"],\n    \"pen-fancy\": [512, 512, [], \"f5ac\", \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"],\n    \"pen-nib\": [512, 512, [], \"f5ad\", \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"],\n    \"pen-square\": [448, 512, [], \"f14b\", \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"],\n    \"pencil-alt\": [512, 512, [], \"f303\", \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"],\n    \"pencil-ruler\": [512, 512, [], \"f5ae\", \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"],\n    \"people-carry\": [640, 512, [], \"f4ce\", \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"],\n    \"pepper-hot\": [512, 512, [], \"f816\", \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"],\n    \"percent\": [448, 512, [], \"f295\", \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"],\n    \"percentage\": [384, 512, [], \"f541\", \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"],\n    \"person-booth\": [576, 512, [], \"f756\", \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"],\n    \"phone\": [512, 512, [], \"f095\", \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"],\n    \"phone-alt\": [512, 512, [], \"f879\", \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"],\n    \"phone-slash\": [640, 512, [], \"f3dd\", \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"],\n    \"phone-square\": [448, 512, [], \"f098\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"],\n    \"phone-square-alt\": [448, 512, [], \"f87b\", \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"],\n    \"phone-volume\": [384, 512, [], \"f2a0\", \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"],\n    \"photo-video\": [640, 512, [], \"f87c\", \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"],\n    \"piggy-bank\": [576, 512, [], \"f4d3\", \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"],\n    \"pills\": [576, 512, [], \"f484\", \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"],\n    \"pizza-slice\": [512, 512, [], \"f818\", \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"],\n    \"place-of-worship\": [640, 512, [], \"f67f\", \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"],\n    \"plane\": [576, 512, [], \"f072\", \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"],\n    \"plane-arrival\": [640, 512, [], \"f5af\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"],\n    \"plane-departure\": [640, 512, [], \"f5b0\", \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"],\n    \"play\": [448, 512, [], \"f04b\", \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"],\n    \"play-circle\": [512, 512, [], \"f144\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"],\n    \"plug\": [384, 512, [], \"f1e6\", \"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\"],\n    \"plus\": [448, 512, [], \"f067\", \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"],\n    \"plus-circle\": [512, 512, [], \"f055\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"],\n    \"plus-square\": [448, 512, [], \"f0fe\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"],\n    \"podcast\": [448, 512, [], \"f2ce\", \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"],\n    \"poll\": [448, 512, [], \"f681\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"],\n    \"poll-h\": [448, 512, [], \"f682\", \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"],\n    \"poo\": [512, 512, [], \"f2fe\", \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"poo-storm\": [448, 512, [], \"f75a\", \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"],\n    \"poop\": [512, 512, [], \"f619\", \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"],\n    \"portrait\": [384, 512, [], \"f3e0\", \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"],\n    \"pound-sign\": [320, 512, [], \"f154\", \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"],\n    \"power-off\": [512, 512, [], \"f011\", \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"],\n    \"pray\": [384, 512, [], \"f683\", \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"],\n    \"praying-hands\": [640, 512, [], \"f684\", \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"],\n    \"prescription\": [384, 512, [], \"f5b1\", \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"],\n    \"prescription-bottle\": [384, 512, [], \"f485\", \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"],\n    \"prescription-bottle-alt\": [384, 512, [], \"f486\", \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"],\n    \"print\": [512, 512, [], \"f02f\", \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"procedures\": [640, 512, [], \"f487\", \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n    \"project-diagram\": [640, 512, [], \"f542\", \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"],\n    \"puzzle-piece\": [576, 512, [], \"f12e\", \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"],\n    \"qrcode\": [448, 512, [], \"f029\", \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"],\n    \"question\": [384, 512, [], \"f128\", \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"],\n    \"question-circle\": [512, 512, [], \"f059\", \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"],\n    \"quidditch\": [640, 512, [], \"f458\", \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"],\n    \"quote-left\": [512, 512, [], \"f10d\", \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"],\n    \"quote-right\": [512, 512, [], \"f10e\", \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"],\n    \"quran\": [448, 512, [], \"f687\", \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"],\n    \"radiation\": [496, 512, [], \"f7b9\", \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"],\n    \"radiation-alt\": [496, 512, [], \"f7ba\", \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"rainbow\": [576, 512, [], \"f75b\", \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"],\n    \"random\": [512, 512, [], \"f074\", \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"],\n    \"receipt\": [384, 512, [], \"f543\", \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"],\n    \"recycle\": [512, 512, [], \"f1b8\", \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"],\n    \"redo\": [512, 512, [], \"f01e\", \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"],\n    \"redo-alt\": [512, 512, [], \"f2f9\", \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"],\n    \"registered\": [512, 512, [], \"f25d\", \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"],\n    \"remove-format\": [640, 512, [], \"f87d\", \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"],\n    \"reply\": [512, 512, [], \"f3e5\", \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"],\n    \"reply-all\": [576, 512, [], \"f122\", \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"],\n    \"republican\": [640, 512, [], \"f75e\", \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"],\n    \"restroom\": [640, 512, [], \"f7bd\", \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"],\n    \"retweet\": [640, 512, [], \"f079\", \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"],\n    \"ribbon\": [448, 512, [], \"f4d6\", \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"],\n    \"ring\": [512, 512, [], \"f70b\", \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"],\n    \"road\": [576, 512, [], \"f018\", \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"],\n    \"robot\": [640, 512, [], \"f544\", \"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z\"],\n    \"rocket\": [512, 512, [], \"f135\", \"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"],\n    \"route\": [512, 512, [], \"f4d7\", \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"rss\": [448, 512, [], \"f09e\", \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"],\n    \"rss-square\": [448, 512, [], \"f143\", \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"],\n    \"ruble-sign\": [384, 512, [], \"f158\", \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"],\n    \"ruler\": [640, 512, [], \"f545\", \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"],\n    \"ruler-combined\": [512, 512, [], \"f546\", \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"ruler-horizontal\": [576, 512, [], \"f547\", \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"],\n    \"ruler-vertical\": [256, 512, [], \"f548\", \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"],\n    \"running\": [416, 512, [], \"f70c\", \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"],\n    \"rupee-sign\": [320, 512, [], \"f156\", \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"],\n    \"sad-cry\": [496, 512, [], \"f5b3\", \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"],\n    \"sad-tear\": [496, 512, [], \"f5b4\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"],\n    \"satellite\": [512, 512, [], \"f7bf\", \"M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z\"],\n    \"satellite-dish\": [512, 512, [], \"f7c0\", \"M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"],\n    \"save\": [448, 512, [], \"f0c7\", \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"],\n    \"school\": [640, 512, [], \"f549\", \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"],\n    \"screwdriver\": [512, 512, [], \"f54a\", \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"],\n    \"scroll\": [640, 512, [], \"f70e\", \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"],\n    \"sd-card\": [384, 512, [], \"f7c2\", \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"],\n    \"search\": [512, 512, [], \"f002\", \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"],\n    \"search-dollar\": [512, 512, [], \"f688\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"],\n    \"search-location\": [512, 512, [], \"f689\", \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"search-minus\": [512, 512, [], \"f010\", \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"],\n    \"search-plus\": [512, 512, [], \"f00e\", \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"],\n    \"seedling\": [512, 512, [], \"f4d8\", \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"],\n    \"server\": [512, 512, [], \"f233\", \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"],\n    \"shapes\": [512, 512, [], \"f61f\", \"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z\"],\n    \"share\": [512, 512, [], \"f064\", \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"],\n    \"share-alt\": [448, 512, [], \"f1e0\", \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"],\n    \"share-alt-square\": [448, 512, [], \"f1e1\", \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"],\n    \"share-square\": [576, 512, [], \"f14d\", \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"],\n    \"shekel-sign\": [448, 512, [], \"f20b\", \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"],\n    \"shield-alt\": [512, 512, [], \"f3ed\", \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"],\n    \"ship\": [640, 512, [], \"f21a\", \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"],\n    \"shipping-fast\": [640, 512, [], \"f48b\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"shoe-prints\": [640, 512, [], \"f54b\", \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"],\n    \"shopping-bag\": [448, 512, [], \"f290\", \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"],\n    \"shopping-basket\": [576, 512, [], \"f291\", \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"],\n    \"shopping-cart\": [576, 512, [], \"f07a\", \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"],\n    \"shower\": [512, 512, [], \"f2cc\", \"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\"],\n    \"shuttle-van\": [640, 512, [], \"f5b6\", \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"],\n    \"sign\": [512, 512, [], \"f4d9\", \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"],\n    \"sign-in-alt\": [512, 512, [], \"f2f6\", \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"],\n    \"sign-language\": [448, 512, [], \"f2a7\", \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"],\n    \"sign-out-alt\": [512, 512, [], \"f2f5\", \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"],\n    \"signal\": [640, 512, [], \"f012\", \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"],\n    \"signature\": [640, 512, [], \"f5b7\", \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"],\n    \"sim-card\": [384, 512, [], \"f7c4\", \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"],\n    \"sitemap\": [640, 512, [], \"f0e8\", \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"],\n    \"skating\": [448, 512, [], \"f7c5\", \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n    \"skiing\": [512, 512, [], \"f7c9\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"],\n    \"skiing-nordic\": [576, 512, [], \"f7ca\", \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"],\n    \"skull\": [512, 512, [], \"f54c\", \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"],\n    \"skull-crossbones\": [448, 512, [], \"f714\", \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"],\n    \"slash\": [640, 512, [], \"f715\", \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"],\n    \"sleigh\": [640, 512, [], \"f7cc\", \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"],\n    \"sliders-h\": [512, 512, [], \"f1de\", \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"],\n    \"smile\": [496, 512, [], \"f118\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"],\n    \"smile-beam\": [496, 512, [], \"f5b8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"],\n    \"smile-wink\": [496, 512, [], \"f4da\", \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"],\n    \"smog\": [640, 512, [], \"f75f\", \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"],\n    \"smoking\": [640, 512, [], \"f48d\", \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"],\n    \"smoking-ban\": [512, 512, [], \"f54d\", \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"],\n    \"sms\": [512, 512, [], \"f7cd\", \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"],\n    \"snowboarding\": [512, 512, [], \"f7ce\", \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"],\n    \"snowflake\": [448, 512, [], \"f2dc\", \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"],\n    \"snowman\": [512, 512, [], \"f7d0\", \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"snowplow\": [640, 512, [], \"f7d2\", \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n    \"socks\": [512, 512, [], \"f696\", \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"],\n    \"solar-panel\": [640, 512, [], \"f5ba\", \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"],\n    \"sort\": [320, 512, [], \"f0dc\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"],\n    \"sort-alpha-down\": [448, 512, [], \"f15d\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"],\n    \"sort-alpha-down-alt\": [448, 512, [], \"f881\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"],\n    \"sort-alpha-up\": [448, 512, [], \"f15e\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"],\n    \"sort-alpha-up-alt\": [448, 512, [], \"f882\", \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"],\n    \"sort-amount-down\": [512, 512, [], \"f160\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"sort-amount-down-alt\": [512, 512, [], \"f884\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"],\n    \"sort-amount-up\": [512, 512, [], \"f161\", \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"sort-amount-up-alt\": [512, 512, [], \"f885\", \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"],\n    \"sort-down\": [320, 512, [], \"f0dd\", \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"],\n    \"sort-numeric-down\": [448, 512, [], \"f162\", \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"],\n    \"sort-numeric-down-alt\": [448, 512, [], \"f886\", \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"],\n    \"sort-numeric-up\": [448, 512, [], \"f163\", \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"],\n    \"sort-numeric-up-alt\": [448, 512, [], \"f887\", \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"],\n    \"sort-up\": [320, 512, [], \"f0de\", \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"],\n    \"spa\": [576, 512, [], \"f5bb\", \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"],\n    \"space-shuttle\": [640, 512, [], \"f197\", \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"],\n    \"spell-check\": [576, 512, [], \"f891\", \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"],\n    \"spider\": [576, 512, [], \"f717\", \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"],\n    \"spinner\": [512, 512, [], \"f110\", \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"],\n    \"splotch\": [512, 512, [], \"f5bc\", \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"],\n    \"spray-can\": [512, 512, [], \"f5bd\", \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"],\n    \"square\": [448, 512, [], \"f0c8\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"square-full\": [512, 512, [], \"f45c\", \"M512 512H0V0h512v512z\"],\n    \"square-root-alt\": [576, 512, [], \"f698\", \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"],\n    \"stamp\": [512, 512, [], \"f5bf\", \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"],\n    \"star\": [576, 512, [], \"f005\", \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"],\n    \"star-and-crescent\": [512, 512, [], \"f699\", \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"],\n    \"star-half\": [576, 512, [], \"f089\", \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"],\n    \"star-half-alt\": [536, 512, [], \"f5c0\", \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"],\n    \"star-of-david\": [464, 512, [], \"f69a\", \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"],\n    \"star-of-life\": [480, 512, [], \"f621\", \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"],\n    \"step-backward\": [448, 512, [], \"f048\", \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"],\n    \"step-forward\": [448, 512, [], \"f051\", \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"],\n    \"stethoscope\": [512, 512, [], \"f0f1\", \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n    \"sticky-note\": [448, 512, [], \"f249\", \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"],\n    \"stop\": [448, 512, [], \"f04d\", \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"],\n    \"stop-circle\": [512, 512, [], \"f28d\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"],\n    \"stopwatch\": [448, 512, [], \"f2f2\", \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"],\n    \"store\": [616, 512, [], \"f54e\", \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"],\n    \"store-alt\": [640, 512, [], \"f54f\", \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"],\n    \"stream\": [512, 512, [], \"f550\", \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"],\n    \"street-view\": [512, 512, [], \"f21d\", \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"],\n    \"strikethrough\": [512, 512, [], \"f0cc\", \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"],\n    \"stroopwafel\": [512, 512, [], \"f551\", \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"],\n    \"subscript\": [512, 512, [], \"f12c\", \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"],\n    \"subway\": [448, 512, [], \"f239\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"],\n    \"suitcase\": [512, 512, [], \"f0f2\", \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"],\n    \"suitcase-rolling\": [384, 512, [], \"f5c1\", \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"],\n    \"sun\": [512, 512, [], \"f185\", \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"],\n    \"superscript\": [512, 512, [], \"f12b\", \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"],\n    \"surprise\": [496, 512, [], \"f5c2\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"swatchbook\": [511, 512, [], \"f5c3\", \"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z\"],\n    \"swimmer\": [640, 512, [], \"f5c4\", \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"],\n    \"swimming-pool\": [640, 512, [], \"f5c5\", \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"],\n    \"synagogue\": [640, 512, [], \"f69b\", \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"],\n    \"sync\": [512, 512, [], \"f021\", \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"],\n    \"sync-alt\": [512, 512, [], \"f2f1\", \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"],\n    \"syringe\": [512, 512, [], \"f48e\", \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"],\n    \"table\": [512, 512, [], \"f0ce\", \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"],\n    \"table-tennis\": [512, 512, [], \"f45d\", \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"],\n    \"tablet\": [448, 512, [], \"f10a\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n    \"tablet-alt\": [448, 512, [], \"f3fa\", \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"],\n    \"tablets\": [640, 512, [], \"f490\", \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"],\n    \"tachometer-alt\": [576, 512, [], \"f3fd\", \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"tag\": [512, 512, [], \"f02b\", \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"],\n    \"tags\": [640, 512, [], \"f02c\", \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"],\n    \"tape\": [640, 512, [], \"f4db\", \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"],\n    \"tasks\": [512, 512, [], \"f0ae\", \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"taxi\": [512, 512, [], \"f1ba\", \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"teeth\": [640, 512, [], \"f62e\", \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"],\n    \"teeth-open\": [640, 512, [], \"f62f\", \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"],\n    \"temperature-high\": [512, 512, [], \"f769\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"],\n    \"temperature-low\": [512, 512, [], \"f76b\", \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"],\n    \"tenge\": [384, 512, [], \"f7d7\", \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"],\n    \"terminal\": [640, 512, [], \"f120\", \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"],\n    \"text-height\": [576, 512, [], \"f034\", \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"],\n    \"text-width\": [448, 512, [], \"f035\", \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"],\n    \"th\": [512, 512, [], \"f00a\", \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"],\n    \"th-large\": [512, 512, [], \"f009\", \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"],\n    \"th-list\": [512, 512, [], \"f00b\", \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"],\n    \"theater-masks\": [640, 512, [], \"f630\", \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"],\n    \"thermometer\": [512, 512, [], \"f491\", \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"],\n    \"thermometer-empty\": [256, 512, [], \"f2cb\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-full\": [256, 512, [], \"f2c7\", \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"],\n    \"thermometer-half\": [256, 512, [], \"f2c9\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-quarter\": [256, 512, [], \"f2ca\", \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thermometer-three-quarters\": [256, 512, [], \"f2c8\", \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"],\n    \"thumbs-down\": [512, 512, [], \"f165\", \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"],\n    \"thumbs-up\": [512, 512, [], \"f164\", \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"],\n    \"thumbtack\": [384, 512, [], \"f08d\", \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"],\n    \"ticket-alt\": [576, 512, [], \"f3ff\", \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"],\n    \"times\": [352, 512, [], \"f00d\", \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"],\n    \"times-circle\": [512, 512, [], \"f057\", \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"],\n    \"tint\": [352, 512, [], \"f043\", \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"],\n    \"tint-slash\": [640, 512, [], \"f5c7\", \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"],\n    \"tired\": [496, 512, [], \"f5c8\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"],\n    \"toggle-off\": [576, 512, [], \"f204\", \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"],\n    \"toggle-on\": [576, 512, [], \"f205\", \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"],\n    \"toilet\": [384, 512, [], \"f7d8\", \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"],\n    \"toilet-paper\": [576, 512, [], \"f71e\", \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"],\n    \"toolbox\": [512, 512, [], \"f552\", \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"],\n    \"tools\": [512, 512, [], \"f7d9\", \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"],\n    \"tooth\": [448, 512, [], \"f5c9\", \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"],\n    \"torah\": [640, 512, [], \"f6a0\", \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"],\n    \"torii-gate\": [512, 512, [], \"f6a1\", \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"],\n    \"tractor\": [640, 512, [], \"f722\", \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"],\n    \"trademark\": [640, 512, [], \"f25c\", \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"],\n    \"traffic-light\": [384, 512, [], \"f637\", \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"],\n    \"train\": [448, 512, [], \"f238\", \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"],\n    \"tram\": [512, 512, [], \"f7da\", \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n    \"transgender\": [384, 512, [], \"f224\", \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"transgender-alt\": [480, 512, [], \"f225\", \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"trash\": [448, 512, [], \"f1f8\", \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"],\n    \"trash-alt\": [448, 512, [], \"f2ed\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"trash-restore\": [448, 512, [], \"f829\", \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"trash-restore-alt\": [448, 512, [], \"f82a\", \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"],\n    \"tree\": [384, 512, [], \"f1bb\", \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"],\n    \"trophy\": [576, 512, [], \"f091\", \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"],\n    \"truck\": [640, 512, [], \"f0d1\", \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"],\n    \"truck-loading\": [640, 512, [], \"f4de\", \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"],\n    \"truck-monster\": [640, 512, [], \"f63b\", \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"],\n    \"truck-moving\": [640, 512, [], \"f4df\", \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"],\n    \"truck-pickup\": [640, 512, [], \"f63c\", \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"],\n    \"tshirt\": [640, 512, [], \"f553\", \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"],\n    \"tty\": [512, 512, [], \"f1e4\", \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"],\n    \"tv\": [640, 512, [], \"f26c\", \"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z\"],\n    \"umbrella\": [576, 512, [], \"f0e9\", \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"],\n    \"umbrella-beach\": [640, 512, [], \"f5ca\", \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"],\n    \"underline\": [448, 512, [], \"f0cd\", \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"],\n    \"undo\": [512, 512, [], \"f0e2\", \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"],\n    \"undo-alt\": [512, 512, [], \"f2ea\", \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"],\n    \"universal-access\": [512, 512, [], \"f29a\", \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"],\n    \"university\": [512, 512, [], \"f19c\", \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"],\n    \"unlink\": [512, 512, [], \"f127\", \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"],\n    \"unlock\": [448, 512, [], \"f09c\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"],\n    \"unlock-alt\": [448, 512, [], \"f13e\", \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"],\n    \"upload\": [512, 512, [], \"f093\", \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"],\n    \"user\": [448, 512, [], \"f007\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-alt\": [512, 512, [], \"f406\", \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"],\n    \"user-alt-slash\": [640, 512, [], \"f4fa\", \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"],\n    \"user-astronaut\": [448, 512, [], \"f4fb\", \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"],\n    \"user-check\": [640, 512, [], \"f4fc\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"],\n    \"user-circle\": [496, 512, [], \"f2bd\", \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"],\n    \"user-clock\": [640, 512, [], \"f4fd\", \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"],\n    \"user-cog\": [640, 512, [], \"f4fe\", \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"],\n    \"user-edit\": [640, 512, [], \"f4ff\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"],\n    \"user-friends\": [640, 512, [], \"f500\", \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"],\n    \"user-graduate\": [448, 512, [], \"f501\", \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"],\n    \"user-injured\": [448, 512, [], \"f728\", \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"],\n    \"user-lock\": [640, 512, [], \"f502\", \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"],\n    \"user-md\": [448, 512, [], \"f0f0\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"],\n    \"user-minus\": [640, 512, [], \"f503\", \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-ninja\": [448, 512, [], \"f504\", \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"],\n    \"user-nurse\": [448, 512, [], \"f82f\", \"M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z\"],\n    \"user-plus\": [640, 512, [], \"f234\", \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"user-secret\": [448, 512, [], \"f21b\", \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"],\n    \"user-shield\": [640, 512, [], \"f505\", \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"],\n    \"user-slash\": [640, 512, [], \"f506\", \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"],\n    \"user-tag\": [640, 512, [], \"f507\", \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"],\n    \"user-tie\": [448, 512, [], \"f508\", \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"],\n    \"user-times\": [640, 512, [], \"f235\", \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"],\n    \"users\": [640, 512, [], \"f0c0\", \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"],\n    \"users-cog\": [640, 512, [], \"f509\", \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"],\n    \"utensil-spoon\": [512, 512, [], \"f2e5\", \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"],\n    \"utensils\": [416, 512, [], \"f2e7\", \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"],\n    \"vector-square\": [512, 512, [], \"f5cb\", \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"],\n    \"venus\": [288, 512, [], \"f221\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"],\n    \"venus-double\": [512, 512, [], \"f226\", \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"],\n    \"venus-mars\": [576, 512, [], \"f228\", \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"],\n    \"vial\": [480, 512, [], \"f492\", \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"],\n    \"vials\": [640, 512, [], \"f493\", \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"],\n    \"video\": [576, 512, [], \"f03d\", \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"],\n    \"video-slash\": [640, 512, [], \"f4e2\", \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"],\n    \"vihara\": [640, 512, [], \"f6a7\", \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"],\n    \"voicemail\": [640, 512, [], \"f897\", \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"],\n    \"volleyball-ball\": [512, 512, [], \"f45f\", \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"],\n    \"volume-down\": [384, 512, [], \"f027\", \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"],\n    \"volume-mute\": [512, 512, [], \"f6a9\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"],\n    \"volume-off\": [256, 512, [], \"f026\", \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"],\n    \"volume-up\": [576, 512, [], \"f028\", \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"],\n    \"vote-yea\": [640, 512, [], \"f772\", \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"],\n    \"vr-cardboard\": [640, 512, [], \"f729\", \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"],\n    \"walking\": [320, 512, [], \"f554\", \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"],\n    \"wallet\": [512, 512, [], \"f555\", \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"],\n    \"warehouse\": [640, 512, [], \"f494\", \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"],\n    \"water\": [576, 512, [], \"f773\", \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"],\n    \"wave-square\": [640, 512, [], \"f83e\", \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"],\n    \"weight\": [512, 512, [], \"f496\", \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"],\n    \"weight-hanging\": [512, 512, [], \"f5cd\", \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"],\n    \"wheelchair\": [512, 512, [], \"f193\", \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"],\n    \"wifi\": [640, 512, [], \"f1eb\", \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"],\n    \"wind\": [512, 512, [], \"f72e\", \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"],\n    \"window-close\": [512, 512, [], \"f410\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"],\n    \"window-maximize\": [512, 512, [], \"f2d0\", \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"],\n    \"window-minimize\": [512, 512, [], \"f2d1\", \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"],\n    \"window-restore\": [512, 512, [], \"f2d2\", \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"],\n    \"wine-bottle\": [512, 512, [], \"f72f\", \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"],\n    \"wine-glass\": [288, 512, [], \"f4e3\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"],\n    \"wine-glass-alt\": [288, 512, [], \"f5ce\", \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"],\n    \"won-sign\": [576, 512, [], \"f159\", \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"],\n    \"wrench\": [512, 512, [], \"f0ad\", \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"],\n    \"x-ray\": [640, 512, [], \"f497\", \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"],\n    \"yen-sign\": [384, 512, [], \"f157\", \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"],\n    \"yin-yang\": [496, 512, [], \"f6ad\", \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"]\n  };\n\n  bunker(function () {\n    defineIcons('fas', icons);\n  });\n\n}());\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/js/v4-shims.js",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global['fontawesome-free-shims'] = factory());\n}(this, (function () { 'use strict';\n\n  var _WINDOW = {};\n  var _DOCUMENT = {};\n\n  try {\n    if (typeof window !== 'undefined') _WINDOW = window;\n    if (typeof document !== 'undefined') _DOCUMENT = document;\n  } catch (e) {}\n\n  var _ref = _WINDOW.navigator || {},\n      _ref$userAgent = _ref.userAgent,\n      userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n  var WINDOW = _WINDOW;\n  var DOCUMENT = _DOCUMENT;\n  var IS_BROWSER = !!WINDOW.document;\n  var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n  var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n  var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n  var PRODUCTION = function () {\n    try {\n      return process.env.NODE_ENV === 'production';\n    } catch (e) {\n      return false;\n    }\n  }();\n\n  function bunker(fn) {\n    try {\n      fn();\n    } catch (e) {\n      if (!PRODUCTION) {\n        throw e;\n      }\n    }\n  }\n\n  var w = WINDOW || {};\n  if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n  if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n  if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n  if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n  var namespace = w[NAMESPACE_IDENTIFIER];\n\n  var shims = [[\"glass\", null, \"glass-martini\"], [\"meetup\", \"fab\", null], [\"star-o\", \"far\", \"star\"], [\"remove\", null, \"times\"], [\"close\", null, \"times\"], [\"gear\", null, \"cog\"], [\"trash-o\", \"far\", \"trash-alt\"], [\"file-o\", \"far\", \"file\"], [\"clock-o\", \"far\", \"clock\"], [\"arrow-circle-o-down\", \"far\", \"arrow-alt-circle-down\"], [\"arrow-circle-o-up\", \"far\", \"arrow-alt-circle-up\"], [\"play-circle-o\", \"far\", \"play-circle\"], [\"repeat\", null, \"redo\"], [\"rotate-right\", null, \"redo\"], [\"refresh\", null, \"sync\"], [\"list-alt\", \"far\", null], [\"dedent\", null, \"outdent\"], [\"video-camera\", null, \"video\"], [\"picture-o\", \"far\", \"image\"], [\"photo\", \"far\", \"image\"], [\"image\", \"far\", \"image\"], [\"pencil\", null, \"pencil-alt\"], [\"map-marker\", null, \"map-marker-alt\"], [\"pencil-square-o\", \"far\", \"edit\"], [\"share-square-o\", \"far\", \"share-square\"], [\"check-square-o\", \"far\", \"check-square\"], [\"arrows\", null, \"arrows-alt\"], [\"times-circle-o\", \"far\", \"times-circle\"], [\"check-circle-o\", \"far\", \"check-circle\"], [\"mail-forward\", null, \"share\"], [\"eye\", \"far\", null], [\"eye-slash\", \"far\", null], [\"warning\", null, \"exclamation-triangle\"], [\"calendar\", null, \"calendar-alt\"], [\"arrows-v\", null, \"arrows-alt-v\"], [\"arrows-h\", null, \"arrows-alt-h\"], [\"bar-chart\", \"far\", \"chart-bar\"], [\"bar-chart-o\", \"far\", \"chart-bar\"], [\"twitter-square\", \"fab\", null], [\"facebook-square\", \"fab\", null], [\"gears\", null, \"cogs\"], [\"thumbs-o-up\", \"far\", \"thumbs-up\"], [\"thumbs-o-down\", \"far\", \"thumbs-down\"], [\"heart-o\", \"far\", \"heart\"], [\"sign-out\", null, \"sign-out-alt\"], [\"linkedin-square\", \"fab\", \"linkedin\"], [\"thumb-tack\", null, \"thumbtack\"], [\"external-link\", null, \"external-link-alt\"], [\"sign-in\", null, \"sign-in-alt\"], [\"github-square\", \"fab\", null], [\"lemon-o\", \"far\", \"lemon\"], [\"square-o\", \"far\", \"square\"], [\"bookmark-o\", \"far\", \"bookmark\"], [\"twitter\", \"fab\", null], [\"facebook\", \"fab\", \"facebook-f\"], [\"facebook-f\", \"fab\", \"facebook-f\"], [\"github\", \"fab\", null], [\"credit-card\", \"far\", null], [\"feed\", null, \"rss\"], [\"hdd-o\", \"far\", \"hdd\"], [\"hand-o-right\", \"far\", \"hand-point-right\"], [\"hand-o-left\", \"far\", \"hand-point-left\"], [\"hand-o-up\", \"far\", \"hand-point-up\"], [\"hand-o-down\", \"far\", \"hand-point-down\"], [\"arrows-alt\", null, \"expand-arrows-alt\"], [\"group\", null, \"users\"], [\"chain\", null, \"link\"], [\"scissors\", null, \"cut\"], [\"files-o\", \"far\", \"copy\"], [\"floppy-o\", \"far\", \"save\"], [\"navicon\", null, \"bars\"], [\"reorder\", null, \"bars\"], [\"pinterest\", \"fab\", null], [\"pinterest-square\", \"fab\", null], [\"google-plus-square\", \"fab\", null], [\"google-plus\", \"fab\", \"google-plus-g\"], [\"money\", \"far\", \"money-bill-alt\"], [\"unsorted\", null, \"sort\"], [\"sort-desc\", null, \"sort-down\"], [\"sort-asc\", null, \"sort-up\"], [\"linkedin\", \"fab\", \"linkedin-in\"], [\"rotate-left\", null, \"undo\"], [\"legal\", null, \"gavel\"], [\"tachometer\", null, \"tachometer-alt\"], [\"dashboard\", null, \"tachometer-alt\"], [\"comment-o\", \"far\", \"comment\"], [\"comments-o\", \"far\", \"comments\"], [\"flash\", null, \"bolt\"], [\"clipboard\", \"far\", null], [\"paste\", \"far\", \"clipboard\"], [\"lightbulb-o\", \"far\", \"lightbulb\"], [\"exchange\", null, \"exchange-alt\"], [\"cloud-download\", null, \"cloud-download-alt\"], [\"cloud-upload\", null, \"cloud-upload-alt\"], [\"bell-o\", \"far\", \"bell\"], [\"cutlery\", null, \"utensils\"], [\"file-text-o\", \"far\", \"file-alt\"], [\"building-o\", \"far\", \"building\"], [\"hospital-o\", \"far\", \"hospital\"], [\"tablet\", null, \"tablet-alt\"], [\"mobile\", null, \"mobile-alt\"], [\"mobile-phone\", null, \"mobile-alt\"], [\"circle-o\", \"far\", \"circle\"], [\"mail-reply\", null, \"reply\"], [\"github-alt\", \"fab\", null], [\"folder-o\", \"far\", \"folder\"], [\"folder-open-o\", \"far\", \"folder-open\"], [\"smile-o\", \"far\", \"smile\"], [\"frown-o\", \"far\", \"frown\"], [\"meh-o\", \"far\", \"meh\"], [\"keyboard-o\", \"far\", \"keyboard\"], [\"flag-o\", \"far\", \"flag\"], [\"mail-reply-all\", null, \"reply-all\"], [\"star-half-o\", \"far\", \"star-half\"], [\"star-half-empty\", \"far\", \"star-half\"], [\"star-half-full\", \"far\", \"star-half\"], [\"code-fork\", null, \"code-branch\"], [\"chain-broken\", null, \"unlink\"], [\"shield\", null, \"shield-alt\"], [\"calendar-o\", \"far\", \"calendar\"], [\"maxcdn\", \"fab\", null], [\"html5\", \"fab\", null], [\"css3\", \"fab\", null], [\"ticket\", null, \"ticket-alt\"], [\"minus-square-o\", \"far\", \"minus-square\"], [\"level-up\", null, \"level-up-alt\"], [\"level-down\", null, \"level-down-alt\"], [\"pencil-square\", null, \"pen-square\"], [\"external-link-square\", null, \"external-link-square-alt\"], [\"compass\", \"far\", null], [\"caret-square-o-down\", \"far\", \"caret-square-down\"], [\"toggle-down\", \"far\", \"caret-square-down\"], [\"caret-square-o-up\", \"far\", \"caret-square-up\"], [\"toggle-up\", \"far\", \"caret-square-up\"], [\"caret-square-o-right\", \"far\", \"caret-square-right\"], [\"toggle-right\", \"far\", \"caret-square-right\"], [\"eur\", null, \"euro-sign\"], [\"euro\", null, \"euro-sign\"], [\"gbp\", null, \"pound-sign\"], [\"usd\", null, \"dollar-sign\"], [\"dollar\", null, \"dollar-sign\"], [\"inr\", null, \"rupee-sign\"], [\"rupee\", null, \"rupee-sign\"], [\"jpy\", null, \"yen-sign\"], [\"cny\", null, \"yen-sign\"], [\"rmb\", null, \"yen-sign\"], [\"yen\", null, \"yen-sign\"], [\"rub\", null, \"ruble-sign\"], [\"ruble\", null, \"ruble-sign\"], [\"rouble\", null, \"ruble-sign\"], [\"krw\", null, \"won-sign\"], [\"won\", null, \"won-sign\"], [\"btc\", \"fab\", null], [\"bitcoin\", \"fab\", \"btc\"], [\"file-text\", null, \"file-alt\"], [\"sort-alpha-asc\", null, \"sort-alpha-down\"], [\"sort-alpha-desc\", null, \"sort-alpha-down-alt\"], [\"sort-amount-asc\", null, \"sort-amount-down\"], [\"sort-amount-desc\", null, \"sort-amount-down-alt\"], [\"sort-numeric-asc\", null, \"sort-numeric-down\"], [\"sort-numeric-desc\", null, \"sort-numeric-down-alt\"], [\"youtube-square\", \"fab\", null], [\"youtube\", \"fab\", null], [\"xing\", \"fab\", null], [\"xing-square\", \"fab\", null], [\"youtube-play\", \"fab\", \"youtube\"], [\"dropbox\", \"fab\", null], [\"stack-overflow\", \"fab\", null], [\"instagram\", \"fab\", null], [\"flickr\", \"fab\", null], [\"adn\", \"fab\", null], [\"bitbucket\", \"fab\", null], [\"bitbucket-square\", \"fab\", \"bitbucket\"], [\"tumblr\", \"fab\", null], [\"tumblr-square\", \"fab\", null], [\"long-arrow-down\", null, \"long-arrow-alt-down\"], [\"long-arrow-up\", null, \"long-arrow-alt-up\"], [\"long-arrow-left\", null, \"long-arrow-alt-left\"], [\"long-arrow-right\", null, \"long-arrow-alt-right\"], [\"apple\", \"fab\", null], [\"windows\", \"fab\", null], [\"android\", \"fab\", null], [\"linux\", \"fab\", null], [\"dribbble\", \"fab\", null], [\"skype\", \"fab\", null], [\"foursquare\", \"fab\", null], [\"trello\", \"fab\", null], [\"gratipay\", \"fab\", null], [\"gittip\", \"fab\", \"gratipay\"], [\"sun-o\", \"far\", \"sun\"], [\"moon-o\", \"far\", \"moon\"], [\"vk\", \"fab\", null], [\"weibo\", \"fab\", null], [\"renren\", \"fab\", null], [\"pagelines\", \"fab\", null], [\"stack-exchange\", \"fab\", null], [\"arrow-circle-o-right\", \"far\", \"arrow-alt-circle-right\"], [\"arrow-circle-o-left\", \"far\", \"arrow-alt-circle-left\"], [\"caret-square-o-left\", \"far\", \"caret-square-left\"], [\"toggle-left\", \"far\", \"caret-square-left\"], [\"dot-circle-o\", \"far\", \"dot-circle\"], [\"vimeo-square\", \"fab\", null], [\"try\", null, \"lira-sign\"], [\"turkish-lira\", null, \"lira-sign\"], [\"plus-square-o\", \"far\", \"plus-square\"], [\"slack\", \"fab\", null], [\"wordpress\", \"fab\", null], [\"openid\", \"fab\", null], [\"institution\", null, \"university\"], [\"bank\", null, \"university\"], [\"mortar-board\", null, \"graduation-cap\"], [\"yahoo\", \"fab\", null], [\"google\", \"fab\", null], [\"reddit\", \"fab\", null], [\"reddit-square\", \"fab\", null], [\"stumbleupon-circle\", \"fab\", null], [\"stumbleupon\", \"fab\", null], [\"delicious\", \"fab\", null], [\"digg\", \"fab\", null], [\"pied-piper-pp\", \"fab\", null], [\"pied-piper-alt\", \"fab\", null], [\"drupal\", \"fab\", null], [\"joomla\", \"fab\", null], [\"spoon\", null, \"utensil-spoon\"], [\"behance\", \"fab\", null], [\"behance-square\", \"fab\", null], [\"steam\", \"fab\", null], [\"steam-square\", \"fab\", null], [\"automobile\", null, \"car\"], [\"cab\", null, \"taxi\"], [\"envelope-o\", \"far\", \"envelope\"], [\"deviantart\", \"fab\", null], [\"soundcloud\", \"fab\", null], [\"file-pdf-o\", \"far\", \"file-pdf\"], [\"file-word-o\", \"far\", \"file-word\"], [\"file-excel-o\", \"far\", \"file-excel\"], [\"file-powerpoint-o\", \"far\", \"file-powerpoint\"], [\"file-image-o\", \"far\", \"file-image\"], [\"file-photo-o\", \"far\", \"file-image\"], [\"file-picture-o\", \"far\", \"file-image\"], [\"file-archive-o\", \"far\", \"file-archive\"], [\"file-zip-o\", \"far\", \"file-archive\"], [\"file-audio-o\", \"far\", \"file-audio\"], [\"file-sound-o\", \"far\", \"file-audio\"], [\"file-video-o\", \"far\", \"file-video\"], [\"file-movie-o\", \"far\", \"file-video\"], [\"file-code-o\", \"far\", \"file-code\"], [\"vine\", \"fab\", null], [\"codepen\", \"fab\", null], [\"jsfiddle\", \"fab\", null], [\"life-ring\", \"far\", null], [\"life-bouy\", \"far\", \"life-ring\"], [\"life-buoy\", \"far\", \"life-ring\"], [\"life-saver\", \"far\", \"life-ring\"], [\"support\", \"far\", \"life-ring\"], [\"circle-o-notch\", null, \"circle-notch\"], [\"rebel\", \"fab\", null], [\"ra\", \"fab\", \"rebel\"], [\"resistance\", \"fab\", \"rebel\"], [\"empire\", \"fab\", null], [\"ge\", \"fab\", \"empire\"], [\"git-square\", \"fab\", null], [\"git\", \"fab\", null], [\"hacker-news\", \"fab\", null], [\"y-combinator-square\", \"fab\", \"hacker-news\"], [\"yc-square\", \"fab\", \"hacker-news\"], [\"tencent-weibo\", \"fab\", null], [\"qq\", \"fab\", null], [\"weixin\", \"fab\", null], [\"wechat\", \"fab\", \"weixin\"], [\"send\", null, \"paper-plane\"], [\"paper-plane-o\", \"far\", \"paper-plane\"], [\"send-o\", \"far\", \"paper-plane\"], [\"circle-thin\", \"far\", \"circle\"], [\"header\", null, \"heading\"], [\"sliders\", null, \"sliders-h\"], [\"futbol-o\", \"far\", \"futbol\"], [\"soccer-ball-o\", \"far\", \"futbol\"], [\"slideshare\", \"fab\", null], [\"twitch\", \"fab\", null], [\"yelp\", \"fab\", null], [\"newspaper-o\", \"far\", \"newspaper\"], [\"paypal\", \"fab\", null], [\"google-wallet\", \"fab\", null], [\"cc-visa\", \"fab\", null], [\"cc-mastercard\", \"fab\", null], [\"cc-discover\", \"fab\", null], [\"cc-amex\", \"fab\", null], [\"cc-paypal\", \"fab\", null], [\"cc-stripe\", \"fab\", null], [\"bell-slash-o\", \"far\", \"bell-slash\"], [\"trash\", null, \"trash-alt\"], [\"copyright\", \"far\", null], [\"eyedropper\", null, \"eye-dropper\"], [\"area-chart\", null, \"chart-area\"], [\"pie-chart\", null, \"chart-pie\"], [\"line-chart\", null, \"chart-line\"], [\"lastfm\", \"fab\", null], [\"lastfm-square\", \"fab\", null], [\"ioxhost\", \"fab\", null], [\"angellist\", \"fab\", null], [\"cc\", \"far\", \"closed-captioning\"], [\"ils\", null, \"shekel-sign\"], [\"shekel\", null, \"shekel-sign\"], [\"sheqel\", null, \"shekel-sign\"], [\"meanpath\", \"fab\", \"font-awesome\"], [\"buysellads\", \"fab\", null], [\"connectdevelop\", \"fab\", null], [\"dashcube\", \"fab\", null], [\"forumbee\", \"fab\", null], [\"leanpub\", \"fab\", null], [\"sellsy\", \"fab\", null], [\"shirtsinbulk\", \"fab\", null], [\"simplybuilt\", \"fab\", null], [\"skyatlas\", \"fab\", null], [\"diamond\", \"far\", \"gem\"], [\"intersex\", null, \"transgender\"], [\"facebook-official\", \"fab\", \"facebook\"], [\"pinterest-p\", \"fab\", null], [\"whatsapp\", \"fab\", null], [\"hotel\", null, \"bed\"], [\"viacoin\", \"fab\", null], [\"medium\", \"fab\", null], [\"y-combinator\", \"fab\", null], [\"yc\", \"fab\", \"y-combinator\"], [\"optin-monster\", \"fab\", null], [\"opencart\", \"fab\", null], [\"expeditedssl\", \"fab\", null], [\"battery-4\", null, \"battery-full\"], [\"battery\", null, \"battery-full\"], [\"battery-3\", null, \"battery-three-quarters\"], [\"battery-2\", null, \"battery-half\"], [\"battery-1\", null, \"battery-quarter\"], [\"battery-0\", null, \"battery-empty\"], [\"object-group\", \"far\", null], [\"object-ungroup\", \"far\", null], [\"sticky-note-o\", \"far\", \"sticky-note\"], [\"cc-jcb\", \"fab\", null], [\"cc-diners-club\", \"fab\", null], [\"clone\", \"far\", null], [\"hourglass-o\", \"far\", \"hourglass\"], [\"hourglass-1\", null, \"hourglass-start\"], [\"hourglass-2\", null, \"hourglass-half\"], [\"hourglass-3\", null, \"hourglass-end\"], [\"hand-rock-o\", \"far\", \"hand-rock\"], [\"hand-grab-o\", \"far\", \"hand-rock\"], [\"hand-paper-o\", \"far\", \"hand-paper\"], [\"hand-stop-o\", \"far\", \"hand-paper\"], [\"hand-scissors-o\", \"far\", \"hand-scissors\"], [\"hand-lizard-o\", \"far\", \"hand-lizard\"], [\"hand-spock-o\", \"far\", \"hand-spock\"], [\"hand-pointer-o\", \"far\", \"hand-pointer\"], [\"hand-peace-o\", \"far\", \"hand-peace\"], [\"registered\", \"far\", null], [\"creative-commons\", \"fab\", null], [\"gg\", \"fab\", null], [\"gg-circle\", \"fab\", null], [\"tripadvisor\", \"fab\", null], [\"odnoklassniki\", \"fab\", null], [\"odnoklassniki-square\", \"fab\", null], [\"get-pocket\", \"fab\", null], [\"wikipedia-w\", \"fab\", null], [\"safari\", \"fab\", null], [\"chrome\", \"fab\", null], [\"firefox\", \"fab\", null], [\"opera\", \"fab\", null], [\"internet-explorer\", \"fab\", null], [\"television\", null, \"tv\"], [\"contao\", \"fab\", null], [\"500px\", \"fab\", null], [\"amazon\", \"fab\", null], [\"calendar-plus-o\", \"far\", \"calendar-plus\"], [\"calendar-minus-o\", \"far\", \"calendar-minus\"], [\"calendar-times-o\", \"far\", \"calendar-times\"], [\"calendar-check-o\", \"far\", \"calendar-check\"], [\"map-o\", \"far\", \"map\"], [\"commenting\", null, \"comment-dots\"], [\"commenting-o\", \"far\", \"comment-dots\"], [\"houzz\", \"fab\", null], [\"vimeo\", \"fab\", \"vimeo-v\"], [\"black-tie\", \"fab\", null], [\"fonticons\", \"fab\", null], [\"reddit-alien\", \"fab\", null], [\"edge\", \"fab\", null], [\"credit-card-alt\", null, \"credit-card\"], [\"codiepie\", \"fab\", null], [\"modx\", \"fab\", null], [\"fort-awesome\", \"fab\", null], [\"usb\", \"fab\", null], [\"product-hunt\", \"fab\", null], [\"mixcloud\", \"fab\", null], [\"scribd\", \"fab\", null], [\"pause-circle-o\", \"far\", \"pause-circle\"], [\"stop-circle-o\", \"far\", \"stop-circle\"], [\"bluetooth\", \"fab\", null], [\"bluetooth-b\", \"fab\", null], [\"gitlab\", \"fab\", null], [\"wpbeginner\", \"fab\", null], [\"wpforms\", \"fab\", null], [\"envira\", \"fab\", null], [\"wheelchair-alt\", \"fab\", \"accessible-icon\"], [\"question-circle-o\", \"far\", \"question-circle\"], [\"volume-control-phone\", null, \"phone-volume\"], [\"asl-interpreting\", null, \"american-sign-language-interpreting\"], [\"deafness\", null, \"deaf\"], [\"hard-of-hearing\", null, \"deaf\"], [\"glide\", \"fab\", null], [\"glide-g\", \"fab\", null], [\"signing\", null, \"sign-language\"], [\"viadeo\", \"fab\", null], [\"viadeo-square\", \"fab\", null], [\"snapchat\", \"fab\", null], [\"snapchat-ghost\", \"fab\", null], [\"snapchat-square\", \"fab\", null], [\"pied-piper\", \"fab\", null], [\"first-order\", \"fab\", null], [\"yoast\", \"fab\", null], [\"themeisle\", \"fab\", null], [\"google-plus-official\", \"fab\", \"google-plus\"], [\"google-plus-circle\", \"fab\", \"google-plus\"], [\"font-awesome\", \"fab\", null], [\"fa\", \"fab\", \"font-awesome\"], [\"handshake-o\", \"far\", \"handshake\"], [\"envelope-open-o\", \"far\", \"envelope-open\"], [\"linode\", \"fab\", null], [\"address-book-o\", \"far\", \"address-book\"], [\"vcard\", null, \"address-card\"], [\"address-card-o\", \"far\", \"address-card\"], [\"vcard-o\", \"far\", \"address-card\"], [\"user-circle-o\", \"far\", \"user-circle\"], [\"user-o\", \"far\", \"user\"], [\"id-badge\", \"far\", null], [\"drivers-license\", null, \"id-card\"], [\"id-card-o\", \"far\", \"id-card\"], [\"drivers-license-o\", \"far\", \"id-card\"], [\"quora\", \"fab\", null], [\"free-code-camp\", \"fab\", null], [\"telegram\", \"fab\", null], [\"thermometer-4\", null, \"thermometer-full\"], [\"thermometer\", null, \"thermometer-full\"], [\"thermometer-3\", null, \"thermometer-three-quarters\"], [\"thermometer-2\", null, \"thermometer-half\"], [\"thermometer-1\", null, \"thermometer-quarter\"], [\"thermometer-0\", null, \"thermometer-empty\"], [\"bathtub\", null, \"bath\"], [\"s15\", null, \"bath\"], [\"window-maximize\", \"far\", null], [\"window-restore\", \"far\", null], [\"times-rectangle\", null, \"window-close\"], [\"window-close-o\", \"far\", \"window-close\"], [\"times-rectangle-o\", \"far\", \"window-close\"], [\"bandcamp\", \"fab\", null], [\"grav\", \"fab\", null], [\"etsy\", \"fab\", null], [\"imdb\", \"fab\", null], [\"ravelry\", \"fab\", null], [\"eercast\", \"fab\", \"sellcast\"], [\"snowflake-o\", \"far\", \"snowflake\"], [\"superpowers\", \"fab\", null], [\"wpexplorer\", \"fab\", null], [\"spotify\", \"fab\", null]];\n  bunker(function () {\n    if (typeof namespace.hooks.addShims === 'function') {\n      namespace.hooks.addShims(shims);\n    } else {\n      var _namespace$shims;\n\n      (_namespace$shims = namespace.shims).push.apply(_namespace$shims, shims);\n    }\n  });\n\n  return shims;\n\n})));\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_animated.less",
    "content": "// Animated Icons\n// --------------------------\n\n.@{fa-css-prefix}-spin {\n  animation: fa-spin 2s infinite linear;\n}\n\n.@{fa-css-prefix}-pulse {\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_bordered-pulled.less",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.@{fa-css-prefix}-border {\n  border-radius: .1em;\n  border: solid .08em @fa-border-color;\n  padding: .2em .25em .15em;\n}\n\n.@{fa-css-prefix}-pull-left { float: left; }\n.@{fa-css-prefix}-pull-right { float: right; }\n\n.@{fa-css-prefix}, .fas, .far, .fal, .fab {\n  &.@{fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.@{fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_core.less",
    "content": "// Base Class Definition\n// -------------------------\n\n.@{fa-css-prefix}, .fas, .far, .fal, .fad, .fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_fixed-width.less",
    "content": "// Fixed Width Icons\n// -------------------------\n.@{fa-css-prefix}-fw {\n  text-align: center;\n  width: (20em / 16);\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_icons.less",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n\n.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }\n.@{fa-css-prefix}-accessible-icon:before { content: @fa-var-accessible-icon; }\n.@{fa-css-prefix}-accusoft:before { content: @fa-var-accusoft; }\n.@{fa-css-prefix}-acquisitions-incorporated:before { content: @fa-var-acquisitions-incorporated; }\n.@{fa-css-prefix}-ad:before { content: @fa-var-ad; }\n.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }\n.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }\n.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }\n.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }\n.@{fa-css-prefix}-adobe:before { content: @fa-var-adobe; }\n.@{fa-css-prefix}-adversal:before { content: @fa-var-adversal; }\n.@{fa-css-prefix}-affiliatetheme:before { content: @fa-var-affiliatetheme; }\n.@{fa-css-prefix}-air-freshener:before { content: @fa-var-air-freshener; }\n.@{fa-css-prefix}-airbnb:before { content: @fa-var-airbnb; }\n.@{fa-css-prefix}-algolia:before { content: @fa-var-algolia; }\n.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }\n.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }\n.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }\n.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }\n.@{fa-css-prefix}-alipay:before { content: @fa-var-alipay; }\n.@{fa-css-prefix}-allergies:before { content: @fa-var-allergies; }\n.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }\n.@{fa-css-prefix}-amazon-pay:before { content: @fa-var-amazon-pay; }\n.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }\n.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }\n.@{fa-css-prefix}-amilia:before { content: @fa-var-amilia; }\n.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }\n.@{fa-css-prefix}-android:before { content: @fa-var-android; }\n.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }\n.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }\n.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }\n.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }\n.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }\n.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }\n.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }\n.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }\n.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }\n.@{fa-css-prefix}-angry:before { content: @fa-var-angry; }\n.@{fa-css-prefix}-angrycreative:before { content: @fa-var-angrycreative; }\n.@{fa-css-prefix}-angular:before { content: @fa-var-angular; }\n.@{fa-css-prefix}-ankh:before { content: @fa-var-ankh; }\n.@{fa-css-prefix}-app-store:before { content: @fa-var-app-store; }\n.@{fa-css-prefix}-app-store-ios:before { content: @fa-var-app-store-ios; }\n.@{fa-css-prefix}-apper:before { content: @fa-var-apper; }\n.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }\n.@{fa-css-prefix}-apple-alt:before { content: @fa-var-apple-alt; }\n.@{fa-css-prefix}-apple-pay:before { content: @fa-var-apple-pay; }\n.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }\n.@{fa-css-prefix}-archway:before { content: @fa-var-archway; }\n.@{fa-css-prefix}-arrow-alt-circle-down:before { content: @fa-var-arrow-alt-circle-down; }\n.@{fa-css-prefix}-arrow-alt-circle-left:before { content: @fa-var-arrow-alt-circle-left; }\n.@{fa-css-prefix}-arrow-alt-circle-right:before { content: @fa-var-arrow-alt-circle-right; }\n.@{fa-css-prefix}-arrow-alt-circle-up:before { content: @fa-var-arrow-alt-circle-up; }\n.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }\n.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }\n.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }\n.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }\n.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }\n.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }\n.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }\n.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }\n.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }\n.@{fa-css-prefix}-arrows-alt-h:before { content: @fa-var-arrows-alt-h; }\n.@{fa-css-prefix}-arrows-alt-v:before { content: @fa-var-arrows-alt-v; }\n.@{fa-css-prefix}-artstation:before { content: @fa-var-artstation; }\n.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }\n.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }\n.@{fa-css-prefix}-asymmetrik:before { content: @fa-var-asymmetrik; }\n.@{fa-css-prefix}-at:before { content: @fa-var-at; }\n.@{fa-css-prefix}-atlas:before { content: @fa-var-atlas; }\n.@{fa-css-prefix}-atlassian:before { content: @fa-var-atlassian; }\n.@{fa-css-prefix}-atom:before { content: @fa-var-atom; }\n.@{fa-css-prefix}-audible:before { content: @fa-var-audible; }\n.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }\n.@{fa-css-prefix}-autoprefixer:before { content: @fa-var-autoprefixer; }\n.@{fa-css-prefix}-avianex:before { content: @fa-var-avianex; }\n.@{fa-css-prefix}-aviato:before { content: @fa-var-aviato; }\n.@{fa-css-prefix}-award:before { content: @fa-var-award; }\n.@{fa-css-prefix}-aws:before { content: @fa-var-aws; }\n.@{fa-css-prefix}-baby:before { content: @fa-var-baby; }\n.@{fa-css-prefix}-baby-carriage:before { content: @fa-var-baby-carriage; }\n.@{fa-css-prefix}-backspace:before { content: @fa-var-backspace; }\n.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }\n.@{fa-css-prefix}-bacon:before { content: @fa-var-bacon; }\n.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }\n.@{fa-css-prefix}-balance-scale-left:before { content: @fa-var-balance-scale-left; }\n.@{fa-css-prefix}-balance-scale-right:before { content: @fa-var-balance-scale-right; }\n.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }\n.@{fa-css-prefix}-band-aid:before { content: @fa-var-band-aid; }\n.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }\n.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }\n.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }\n.@{fa-css-prefix}-baseball-ball:before { content: @fa-var-baseball-ball; }\n.@{fa-css-prefix}-basketball-ball:before { content: @fa-var-basketball-ball; }\n.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }\n.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }\n.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }\n.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }\n.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }\n.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }\n.@{fa-css-prefix}-battle-net:before { content: @fa-var-battle-net; }\n.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }\n.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }\n.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }\n.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }\n.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }\n.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }\n.@{fa-css-prefix}-bezier-curve:before { content: @fa-var-bezier-curve; }\n.@{fa-css-prefix}-bible:before { content: @fa-var-bible; }\n.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }\n.@{fa-css-prefix}-biking:before { content: @fa-var-biking; }\n.@{fa-css-prefix}-bimobject:before { content: @fa-var-bimobject; }\n.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }\n.@{fa-css-prefix}-biohazard:before { content: @fa-var-biohazard; }\n.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }\n.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }\n.@{fa-css-prefix}-bitcoin:before { content: @fa-var-bitcoin; }\n.@{fa-css-prefix}-bity:before { content: @fa-var-bity; }\n.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }\n.@{fa-css-prefix}-blackberry:before { content: @fa-var-blackberry; }\n.@{fa-css-prefix}-blender:before { content: @fa-var-blender; }\n.@{fa-css-prefix}-blender-phone:before { content: @fa-var-blender-phone; }\n.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }\n.@{fa-css-prefix}-blog:before { content: @fa-var-blog; }\n.@{fa-css-prefix}-blogger:before { content: @fa-var-blogger; }\n.@{fa-css-prefix}-blogger-b:before { content: @fa-var-blogger-b; }\n.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }\n.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }\n.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }\n.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }\n.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }\n.@{fa-css-prefix}-bone:before { content: @fa-var-bone; }\n.@{fa-css-prefix}-bong:before { content: @fa-var-bong; }\n.@{fa-css-prefix}-book:before { content: @fa-var-book; }\n.@{fa-css-prefix}-book-dead:before { content: @fa-var-book-dead; }\n.@{fa-css-prefix}-book-medical:before { content: @fa-var-book-medical; }\n.@{fa-css-prefix}-book-open:before { content: @fa-var-book-open; }\n.@{fa-css-prefix}-book-reader:before { content: @fa-var-book-reader; }\n.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }\n.@{fa-css-prefix}-bootstrap:before { content: @fa-var-bootstrap; }\n.@{fa-css-prefix}-border-all:before { content: @fa-var-border-all; }\n.@{fa-css-prefix}-border-none:before { content: @fa-var-border-none; }\n.@{fa-css-prefix}-border-style:before { content: @fa-var-border-style; }\n.@{fa-css-prefix}-bowling-ball:before { content: @fa-var-bowling-ball; }\n.@{fa-css-prefix}-box:before { content: @fa-var-box; }\n.@{fa-css-prefix}-box-open:before { content: @fa-var-box-open; }\n.@{fa-css-prefix}-boxes:before { content: @fa-var-boxes; }\n.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }\n.@{fa-css-prefix}-brain:before { content: @fa-var-brain; }\n.@{fa-css-prefix}-bread-slice:before { content: @fa-var-bread-slice; }\n.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }\n.@{fa-css-prefix}-briefcase-medical:before { content: @fa-var-briefcase-medical; }\n.@{fa-css-prefix}-broadcast-tower:before { content: @fa-var-broadcast-tower; }\n.@{fa-css-prefix}-broom:before { content: @fa-var-broom; }\n.@{fa-css-prefix}-brush:before { content: @fa-var-brush; }\n.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }\n.@{fa-css-prefix}-buffer:before { content: @fa-var-buffer; }\n.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }\n.@{fa-css-prefix}-building:before { content: @fa-var-building; }\n.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }\n.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }\n.@{fa-css-prefix}-burn:before { content: @fa-var-burn; }\n.@{fa-css-prefix}-buromobelexperte:before { content: @fa-var-buromobelexperte; }\n.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }\n.@{fa-css-prefix}-bus-alt:before { content: @fa-var-bus-alt; }\n.@{fa-css-prefix}-business-time:before { content: @fa-var-business-time; }\n.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }\n.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }\n.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }\n.@{fa-css-prefix}-calendar-alt:before { content: @fa-var-calendar-alt; }\n.@{fa-css-prefix}-calendar-check:before { content: @fa-var-calendar-check; }\n.@{fa-css-prefix}-calendar-day:before { content: @fa-var-calendar-day; }\n.@{fa-css-prefix}-calendar-minus:before { content: @fa-var-calendar-minus; }\n.@{fa-css-prefix}-calendar-plus:before { content: @fa-var-calendar-plus; }\n.@{fa-css-prefix}-calendar-times:before { content: @fa-var-calendar-times; }\n.@{fa-css-prefix}-calendar-week:before { content: @fa-var-calendar-week; }\n.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }\n.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }\n.@{fa-css-prefix}-campground:before { content: @fa-var-campground; }\n.@{fa-css-prefix}-canadian-maple-leaf:before { content: @fa-var-canadian-maple-leaf; }\n.@{fa-css-prefix}-candy-cane:before { content: @fa-var-candy-cane; }\n.@{fa-css-prefix}-cannabis:before { content: @fa-var-cannabis; }\n.@{fa-css-prefix}-capsules:before { content: @fa-var-capsules; }\n.@{fa-css-prefix}-car:before { content: @fa-var-car; }\n.@{fa-css-prefix}-car-alt:before { content: @fa-var-car-alt; }\n.@{fa-css-prefix}-car-battery:before { content: @fa-var-car-battery; }\n.@{fa-css-prefix}-car-crash:before { content: @fa-var-car-crash; }\n.@{fa-css-prefix}-car-side:before { content: @fa-var-car-side; }\n.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }\n.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }\n.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }\n.@{fa-css-prefix}-caret-square-down:before { content: @fa-var-caret-square-down; }\n.@{fa-css-prefix}-caret-square-left:before { content: @fa-var-caret-square-left; }\n.@{fa-css-prefix}-caret-square-right:before { content: @fa-var-caret-square-right; }\n.@{fa-css-prefix}-caret-square-up:before { content: @fa-var-caret-square-up; }\n.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }\n.@{fa-css-prefix}-carrot:before { content: @fa-var-carrot; }\n.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }\n.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }\n.@{fa-css-prefix}-cash-register:before { content: @fa-var-cash-register; }\n.@{fa-css-prefix}-cat:before { content: @fa-var-cat; }\n.@{fa-css-prefix}-cc-amazon-pay:before { content: @fa-var-cc-amazon-pay; }\n.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }\n.@{fa-css-prefix}-cc-apple-pay:before { content: @fa-var-cc-apple-pay; }\n.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }\n.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }\n.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }\n.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }\n.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }\n.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }\n.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }\n.@{fa-css-prefix}-centercode:before { content: @fa-var-centercode; }\n.@{fa-css-prefix}-centos:before { content: @fa-var-centos; }\n.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }\n.@{fa-css-prefix}-chair:before { content: @fa-var-chair; }\n.@{fa-css-prefix}-chalkboard:before { content: @fa-var-chalkboard; }\n.@{fa-css-prefix}-chalkboard-teacher:before { content: @fa-var-chalkboard-teacher; }\n.@{fa-css-prefix}-charging-station:before { content: @fa-var-charging-station; }\n.@{fa-css-prefix}-chart-area:before { content: @fa-var-chart-area; }\n.@{fa-css-prefix}-chart-bar:before { content: @fa-var-chart-bar; }\n.@{fa-css-prefix}-chart-line:before { content: @fa-var-chart-line; }\n.@{fa-css-prefix}-chart-pie:before { content: @fa-var-chart-pie; }\n.@{fa-css-prefix}-check:before { content: @fa-var-check; }\n.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }\n.@{fa-css-prefix}-check-double:before { content: @fa-var-check-double; }\n.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }\n.@{fa-css-prefix}-cheese:before { content: @fa-var-cheese; }\n.@{fa-css-prefix}-chess:before { content: @fa-var-chess; }\n.@{fa-css-prefix}-chess-bishop:before { content: @fa-var-chess-bishop; }\n.@{fa-css-prefix}-chess-board:before { content: @fa-var-chess-board; }\n.@{fa-css-prefix}-chess-king:before { content: @fa-var-chess-king; }\n.@{fa-css-prefix}-chess-knight:before { content: @fa-var-chess-knight; }\n.@{fa-css-prefix}-chess-pawn:before { content: @fa-var-chess-pawn; }\n.@{fa-css-prefix}-chess-queen:before { content: @fa-var-chess-queen; }\n.@{fa-css-prefix}-chess-rook:before { content: @fa-var-chess-rook; }\n.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }\n.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }\n.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }\n.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }\n.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }\n.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }\n.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }\n.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }\n.@{fa-css-prefix}-child:before { content: @fa-var-child; }\n.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }\n.@{fa-css-prefix}-chromecast:before { content: @fa-var-chromecast; }\n.@{fa-css-prefix}-church:before { content: @fa-var-church; }\n.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }\n.@{fa-css-prefix}-circle-notch:before { content: @fa-var-circle-notch; }\n.@{fa-css-prefix}-city:before { content: @fa-var-city; }\n.@{fa-css-prefix}-clinic-medical:before { content: @fa-var-clinic-medical; }\n.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }\n.@{fa-css-prefix}-clipboard-check:before { content: @fa-var-clipboard-check; }\n.@{fa-css-prefix}-clipboard-list:before { content: @fa-var-clipboard-list; }\n.@{fa-css-prefix}-clock:before { content: @fa-var-clock; }\n.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }\n.@{fa-css-prefix}-closed-captioning:before { content: @fa-var-closed-captioning; }\n.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }\n.@{fa-css-prefix}-cloud-download-alt:before { content: @fa-var-cloud-download-alt; }\n.@{fa-css-prefix}-cloud-meatball:before { content: @fa-var-cloud-meatball; }\n.@{fa-css-prefix}-cloud-moon:before { content: @fa-var-cloud-moon; }\n.@{fa-css-prefix}-cloud-moon-rain:before { content: @fa-var-cloud-moon-rain; }\n.@{fa-css-prefix}-cloud-rain:before { content: @fa-var-cloud-rain; }\n.@{fa-css-prefix}-cloud-showers-heavy:before { content: @fa-var-cloud-showers-heavy; }\n.@{fa-css-prefix}-cloud-sun:before { content: @fa-var-cloud-sun; }\n.@{fa-css-prefix}-cloud-sun-rain:before { content: @fa-var-cloud-sun-rain; }\n.@{fa-css-prefix}-cloud-upload-alt:before { content: @fa-var-cloud-upload-alt; }\n.@{fa-css-prefix}-cloudscale:before { content: @fa-var-cloudscale; }\n.@{fa-css-prefix}-cloudsmith:before { content: @fa-var-cloudsmith; }\n.@{fa-css-prefix}-cloudversify:before { content: @fa-var-cloudversify; }\n.@{fa-css-prefix}-cocktail:before { content: @fa-var-cocktail; }\n.@{fa-css-prefix}-code:before { content: @fa-var-code; }\n.@{fa-css-prefix}-code-branch:before { content: @fa-var-code-branch; }\n.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }\n.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }\n.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }\n.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }\n.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }\n.@{fa-css-prefix}-coins:before { content: @fa-var-coins; }\n.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }\n.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }\n.@{fa-css-prefix}-comment-alt:before { content: @fa-var-comment-alt; }\n.@{fa-css-prefix}-comment-dollar:before { content: @fa-var-comment-dollar; }\n.@{fa-css-prefix}-comment-dots:before { content: @fa-var-comment-dots; }\n.@{fa-css-prefix}-comment-medical:before { content: @fa-var-comment-medical; }\n.@{fa-css-prefix}-comment-slash:before { content: @fa-var-comment-slash; }\n.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }\n.@{fa-css-prefix}-comments-dollar:before { content: @fa-var-comments-dollar; }\n.@{fa-css-prefix}-compact-disc:before { content: @fa-var-compact-disc; }\n.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }\n.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }\n.@{fa-css-prefix}-compress-arrows-alt:before { content: @fa-var-compress-arrows-alt; }\n.@{fa-css-prefix}-concierge-bell:before { content: @fa-var-concierge-bell; }\n.@{fa-css-prefix}-confluence:before { content: @fa-var-confluence; }\n.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }\n.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }\n.@{fa-css-prefix}-cookie:before { content: @fa-var-cookie; }\n.@{fa-css-prefix}-cookie-bite:before { content: @fa-var-cookie-bite; }\n.@{fa-css-prefix}-copy:before { content: @fa-var-copy; }\n.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }\n.@{fa-css-prefix}-cotton-bureau:before { content: @fa-var-cotton-bureau; }\n.@{fa-css-prefix}-couch:before { content: @fa-var-couch; }\n.@{fa-css-prefix}-cpanel:before { content: @fa-var-cpanel; }\n.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }\n.@{fa-css-prefix}-creative-commons-by:before { content: @fa-var-creative-commons-by; }\n.@{fa-css-prefix}-creative-commons-nc:before { content: @fa-var-creative-commons-nc; }\n.@{fa-css-prefix}-creative-commons-nc-eu:before { content: @fa-var-creative-commons-nc-eu; }\n.@{fa-css-prefix}-creative-commons-nc-jp:before { content: @fa-var-creative-commons-nc-jp; }\n.@{fa-css-prefix}-creative-commons-nd:before { content: @fa-var-creative-commons-nd; }\n.@{fa-css-prefix}-creative-commons-pd:before { content: @fa-var-creative-commons-pd; }\n.@{fa-css-prefix}-creative-commons-pd-alt:before { content: @fa-var-creative-commons-pd-alt; }\n.@{fa-css-prefix}-creative-commons-remix:before { content: @fa-var-creative-commons-remix; }\n.@{fa-css-prefix}-creative-commons-sa:before { content: @fa-var-creative-commons-sa; }\n.@{fa-css-prefix}-creative-commons-sampling:before { content: @fa-var-creative-commons-sampling; }\n.@{fa-css-prefix}-creative-commons-sampling-plus:before { content: @fa-var-creative-commons-sampling-plus; }\n.@{fa-css-prefix}-creative-commons-share:before { content: @fa-var-creative-commons-share; }\n.@{fa-css-prefix}-creative-commons-zero:before { content: @fa-var-creative-commons-zero; }\n.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }\n.@{fa-css-prefix}-critical-role:before { content: @fa-var-critical-role; }\n.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }\n.@{fa-css-prefix}-crop-alt:before { content: @fa-var-crop-alt; }\n.@{fa-css-prefix}-cross:before { content: @fa-var-cross; }\n.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }\n.@{fa-css-prefix}-crow:before { content: @fa-var-crow; }\n.@{fa-css-prefix}-crown:before { content: @fa-var-crown; }\n.@{fa-css-prefix}-crutch:before { content: @fa-var-crutch; }\n.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }\n.@{fa-css-prefix}-css3-alt:before { content: @fa-var-css3-alt; }\n.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }\n.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }\n.@{fa-css-prefix}-cut:before { content: @fa-var-cut; }\n.@{fa-css-prefix}-cuttlefish:before { content: @fa-var-cuttlefish; }\n.@{fa-css-prefix}-d-and-d:before { content: @fa-var-d-and-d; }\n.@{fa-css-prefix}-d-and-d-beyond:before { content: @fa-var-d-and-d-beyond; }\n.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }\n.@{fa-css-prefix}-database:before { content: @fa-var-database; }\n.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }\n.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }\n.@{fa-css-prefix}-democrat:before { content: @fa-var-democrat; }\n.@{fa-css-prefix}-deploydog:before { content: @fa-var-deploydog; }\n.@{fa-css-prefix}-deskpro:before { content: @fa-var-deskpro; }\n.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }\n.@{fa-css-prefix}-dev:before { content: @fa-var-dev; }\n.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }\n.@{fa-css-prefix}-dharmachakra:before { content: @fa-var-dharmachakra; }\n.@{fa-css-prefix}-dhl:before { content: @fa-var-dhl; }\n.@{fa-css-prefix}-diagnoses:before { content: @fa-var-diagnoses; }\n.@{fa-css-prefix}-diaspora:before { content: @fa-var-diaspora; }\n.@{fa-css-prefix}-dice:before { content: @fa-var-dice; }\n.@{fa-css-prefix}-dice-d20:before { content: @fa-var-dice-d20; }\n.@{fa-css-prefix}-dice-d6:before { content: @fa-var-dice-d6; }\n.@{fa-css-prefix}-dice-five:before { content: @fa-var-dice-five; }\n.@{fa-css-prefix}-dice-four:before { content: @fa-var-dice-four; }\n.@{fa-css-prefix}-dice-one:before { content: @fa-var-dice-one; }\n.@{fa-css-prefix}-dice-six:before { content: @fa-var-dice-six; }\n.@{fa-css-prefix}-dice-three:before { content: @fa-var-dice-three; }\n.@{fa-css-prefix}-dice-two:before { content: @fa-var-dice-two; }\n.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }\n.@{fa-css-prefix}-digital-ocean:before { content: @fa-var-digital-ocean; }\n.@{fa-css-prefix}-digital-tachograph:before { content: @fa-var-digital-tachograph; }\n.@{fa-css-prefix}-directions:before { content: @fa-var-directions; }\n.@{fa-css-prefix}-discord:before { content: @fa-var-discord; }\n.@{fa-css-prefix}-discourse:before { content: @fa-var-discourse; }\n.@{fa-css-prefix}-divide:before { content: @fa-var-divide; }\n.@{fa-css-prefix}-dizzy:before { content: @fa-var-dizzy; }\n.@{fa-css-prefix}-dna:before { content: @fa-var-dna; }\n.@{fa-css-prefix}-dochub:before { content: @fa-var-dochub; }\n.@{fa-css-prefix}-docker:before { content: @fa-var-docker; }\n.@{fa-css-prefix}-dog:before { content: @fa-var-dog; }\n.@{fa-css-prefix}-dollar-sign:before { content: @fa-var-dollar-sign; }\n.@{fa-css-prefix}-dolly:before { content: @fa-var-dolly; }\n.@{fa-css-prefix}-dolly-flatbed:before { content: @fa-var-dolly-flatbed; }\n.@{fa-css-prefix}-donate:before { content: @fa-var-donate; }\n.@{fa-css-prefix}-door-closed:before { content: @fa-var-door-closed; }\n.@{fa-css-prefix}-door-open:before { content: @fa-var-door-open; }\n.@{fa-css-prefix}-dot-circle:before { content: @fa-var-dot-circle; }\n.@{fa-css-prefix}-dove:before { content: @fa-var-dove; }\n.@{fa-css-prefix}-download:before { content: @fa-var-download; }\n.@{fa-css-prefix}-draft2digital:before { content: @fa-var-draft2digital; }\n.@{fa-css-prefix}-drafting-compass:before { content: @fa-var-drafting-compass; }\n.@{fa-css-prefix}-dragon:before { content: @fa-var-dragon; }\n.@{fa-css-prefix}-draw-polygon:before { content: @fa-var-draw-polygon; }\n.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }\n.@{fa-css-prefix}-dribbble-square:before { content: @fa-var-dribbble-square; }\n.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }\n.@{fa-css-prefix}-drum:before { content: @fa-var-drum; }\n.@{fa-css-prefix}-drum-steelpan:before { content: @fa-var-drum-steelpan; }\n.@{fa-css-prefix}-drumstick-bite:before { content: @fa-var-drumstick-bite; }\n.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }\n.@{fa-css-prefix}-dumbbell:before { content: @fa-var-dumbbell; }\n.@{fa-css-prefix}-dumpster:before { content: @fa-var-dumpster; }\n.@{fa-css-prefix}-dumpster-fire:before { content: @fa-var-dumpster-fire; }\n.@{fa-css-prefix}-dungeon:before { content: @fa-var-dungeon; }\n.@{fa-css-prefix}-dyalog:before { content: @fa-var-dyalog; }\n.@{fa-css-prefix}-earlybirds:before { content: @fa-var-earlybirds; }\n.@{fa-css-prefix}-ebay:before { content: @fa-var-ebay; }\n.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }\n.@{fa-css-prefix}-edit:before { content: @fa-var-edit; }\n.@{fa-css-prefix}-egg:before { content: @fa-var-egg; }\n.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }\n.@{fa-css-prefix}-elementor:before { content: @fa-var-elementor; }\n.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }\n.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }\n.@{fa-css-prefix}-ello:before { content: @fa-var-ello; }\n.@{fa-css-prefix}-ember:before { content: @fa-var-ember; }\n.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }\n.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }\n.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }\n.@{fa-css-prefix}-envelope-open-text:before { content: @fa-var-envelope-open-text; }\n.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }\n.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }\n.@{fa-css-prefix}-equals:before { content: @fa-var-equals; }\n.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }\n.@{fa-css-prefix}-erlang:before { content: @fa-var-erlang; }\n.@{fa-css-prefix}-ethereum:before { content: @fa-var-ethereum; }\n.@{fa-css-prefix}-ethernet:before { content: @fa-var-ethernet; }\n.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }\n.@{fa-css-prefix}-euro-sign:before { content: @fa-var-euro-sign; }\n.@{fa-css-prefix}-evernote:before { content: @fa-var-evernote; }\n.@{fa-css-prefix}-exchange-alt:before { content: @fa-var-exchange-alt; }\n.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }\n.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }\n.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }\n.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }\n.@{fa-css-prefix}-expand-arrows-alt:before { content: @fa-var-expand-arrows-alt; }\n.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }\n.@{fa-css-prefix}-external-link-alt:before { content: @fa-var-external-link-alt; }\n.@{fa-css-prefix}-external-link-square-alt:before { content: @fa-var-external-link-square-alt; }\n.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }\n.@{fa-css-prefix}-eye-dropper:before { content: @fa-var-eye-dropper; }\n.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }\n.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }\n.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }\n.@{fa-css-prefix}-facebook-messenger:before { content: @fa-var-facebook-messenger; }\n.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }\n.@{fa-css-prefix}-fan:before { content: @fa-var-fan; }\n.@{fa-css-prefix}-fantasy-flight-games:before { content: @fa-var-fantasy-flight-games; }\n.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }\n.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }\n.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }\n.@{fa-css-prefix}-feather:before { content: @fa-var-feather; }\n.@{fa-css-prefix}-feather-alt:before { content: @fa-var-feather-alt; }\n.@{fa-css-prefix}-fedex:before { content: @fa-var-fedex; }\n.@{fa-css-prefix}-fedora:before { content: @fa-var-fedora; }\n.@{fa-css-prefix}-female:before { content: @fa-var-female; }\n.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }\n.@{fa-css-prefix}-figma:before { content: @fa-var-figma; }\n.@{fa-css-prefix}-file:before { content: @fa-var-file; }\n.@{fa-css-prefix}-file-alt:before { content: @fa-var-file-alt; }\n.@{fa-css-prefix}-file-archive:before { content: @fa-var-file-archive; }\n.@{fa-css-prefix}-file-audio:before { content: @fa-var-file-audio; }\n.@{fa-css-prefix}-file-code:before { content: @fa-var-file-code; }\n.@{fa-css-prefix}-file-contract:before { content: @fa-var-file-contract; }\n.@{fa-css-prefix}-file-csv:before { content: @fa-var-file-csv; }\n.@{fa-css-prefix}-file-download:before { content: @fa-var-file-download; }\n.@{fa-css-prefix}-file-excel:before { content: @fa-var-file-excel; }\n.@{fa-css-prefix}-file-export:before { content: @fa-var-file-export; }\n.@{fa-css-prefix}-file-image:before { content: @fa-var-file-image; }\n.@{fa-css-prefix}-file-import:before { content: @fa-var-file-import; }\n.@{fa-css-prefix}-file-invoice:before { content: @fa-var-file-invoice; }\n.@{fa-css-prefix}-file-invoice-dollar:before { content: @fa-var-file-invoice-dollar; }\n.@{fa-css-prefix}-file-medical:before { content: @fa-var-file-medical; }\n.@{fa-css-prefix}-file-medical-alt:before { content: @fa-var-file-medical-alt; }\n.@{fa-css-prefix}-file-pdf:before { content: @fa-var-file-pdf; }\n.@{fa-css-prefix}-file-powerpoint:before { content: @fa-var-file-powerpoint; }\n.@{fa-css-prefix}-file-prescription:before { content: @fa-var-file-prescription; }\n.@{fa-css-prefix}-file-signature:before { content: @fa-var-file-signature; }\n.@{fa-css-prefix}-file-upload:before { content: @fa-var-file-upload; }\n.@{fa-css-prefix}-file-video:before { content: @fa-var-file-video; }\n.@{fa-css-prefix}-file-word:before { content: @fa-var-file-word; }\n.@{fa-css-prefix}-fill:before { content: @fa-var-fill; }\n.@{fa-css-prefix}-fill-drip:before { content: @fa-var-fill-drip; }\n.@{fa-css-prefix}-film:before { content: @fa-var-film; }\n.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }\n.@{fa-css-prefix}-fingerprint:before { content: @fa-var-fingerprint; }\n.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }\n.@{fa-css-prefix}-fire-alt:before { content: @fa-var-fire-alt; }\n.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }\n.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }\n.@{fa-css-prefix}-first-aid:before { content: @fa-var-first-aid; }\n.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }\n.@{fa-css-prefix}-first-order-alt:before { content: @fa-var-first-order-alt; }\n.@{fa-css-prefix}-firstdraft:before { content: @fa-var-firstdraft; }\n.@{fa-css-prefix}-fish:before { content: @fa-var-fish; }\n.@{fa-css-prefix}-fist-raised:before { content: @fa-var-fist-raised; }\n.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }\n.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }\n.@{fa-css-prefix}-flag-usa:before { content: @fa-var-flag-usa; }\n.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }\n.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }\n.@{fa-css-prefix}-flipboard:before { content: @fa-var-flipboard; }\n.@{fa-css-prefix}-flushed:before { content: @fa-var-flushed; }\n.@{fa-css-prefix}-fly:before { content: @fa-var-fly; }\n.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }\n.@{fa-css-prefix}-folder-minus:before { content: @fa-var-folder-minus; }\n.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }\n.@{fa-css-prefix}-folder-plus:before { content: @fa-var-folder-plus; }\n.@{fa-css-prefix}-font:before { content: @fa-var-font; }\n.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }\n.@{fa-css-prefix}-font-awesome-alt:before { content: @fa-var-font-awesome-alt; }\n.@{fa-css-prefix}-font-awesome-flag:before { content: @fa-var-font-awesome-flag; }\n.@{fa-css-prefix}-font-awesome-logo-full:before { content: @fa-var-font-awesome-logo-full; }\n.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }\n.@{fa-css-prefix}-fonticons-fi:before { content: @fa-var-fonticons-fi; }\n.@{fa-css-prefix}-football-ball:before { content: @fa-var-football-ball; }\n.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }\n.@{fa-css-prefix}-fort-awesome-alt:before { content: @fa-var-fort-awesome-alt; }\n.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }\n.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }\n.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }\n.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }\n.@{fa-css-prefix}-freebsd:before { content: @fa-var-freebsd; }\n.@{fa-css-prefix}-frog:before { content: @fa-var-frog; }\n.@{fa-css-prefix}-frown:before { content: @fa-var-frown; }\n.@{fa-css-prefix}-frown-open:before { content: @fa-var-frown-open; }\n.@{fa-css-prefix}-fulcrum:before { content: @fa-var-fulcrum; }\n.@{fa-css-prefix}-funnel-dollar:before { content: @fa-var-funnel-dollar; }\n.@{fa-css-prefix}-futbol:before { content: @fa-var-futbol; }\n.@{fa-css-prefix}-galactic-republic:before { content: @fa-var-galactic-republic; }\n.@{fa-css-prefix}-galactic-senate:before { content: @fa-var-galactic-senate; }\n.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }\n.@{fa-css-prefix}-gas-pump:before { content: @fa-var-gas-pump; }\n.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }\n.@{fa-css-prefix}-gem:before { content: @fa-var-gem; }\n.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }\n.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }\n.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }\n.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }\n.@{fa-css-prefix}-ghost:before { content: @fa-var-ghost; }\n.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }\n.@{fa-css-prefix}-gifts:before { content: @fa-var-gifts; }\n.@{fa-css-prefix}-git:before { content: @fa-var-git; }\n.@{fa-css-prefix}-git-alt:before { content: @fa-var-git-alt; }\n.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }\n.@{fa-css-prefix}-github:before { content: @fa-var-github; }\n.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }\n.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }\n.@{fa-css-prefix}-gitkraken:before { content: @fa-var-gitkraken; }\n.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }\n.@{fa-css-prefix}-gitter:before { content: @fa-var-gitter; }\n.@{fa-css-prefix}-glass-cheers:before { content: @fa-var-glass-cheers; }\n.@{fa-css-prefix}-glass-martini:before { content: @fa-var-glass-martini; }\n.@{fa-css-prefix}-glass-martini-alt:before { content: @fa-var-glass-martini-alt; }\n.@{fa-css-prefix}-glass-whiskey:before { content: @fa-var-glass-whiskey; }\n.@{fa-css-prefix}-glasses:before { content: @fa-var-glasses; }\n.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }\n.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }\n.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }\n.@{fa-css-prefix}-globe-africa:before { content: @fa-var-globe-africa; }\n.@{fa-css-prefix}-globe-americas:before { content: @fa-var-globe-americas; }\n.@{fa-css-prefix}-globe-asia:before { content: @fa-var-globe-asia; }\n.@{fa-css-prefix}-globe-europe:before { content: @fa-var-globe-europe; }\n.@{fa-css-prefix}-gofore:before { content: @fa-var-gofore; }\n.@{fa-css-prefix}-golf-ball:before { content: @fa-var-golf-ball; }\n.@{fa-css-prefix}-goodreads:before { content: @fa-var-goodreads; }\n.@{fa-css-prefix}-goodreads-g:before { content: @fa-var-goodreads-g; }\n.@{fa-css-prefix}-google:before { content: @fa-var-google; }\n.@{fa-css-prefix}-google-drive:before { content: @fa-var-google-drive; }\n.@{fa-css-prefix}-google-play:before { content: @fa-var-google-play; }\n.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }\n.@{fa-css-prefix}-google-plus-g:before { content: @fa-var-google-plus-g; }\n.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }\n.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }\n.@{fa-css-prefix}-gopuram:before { content: @fa-var-gopuram; }\n.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }\n.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }\n.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }\n.@{fa-css-prefix}-greater-than:before { content: @fa-var-greater-than; }\n.@{fa-css-prefix}-greater-than-equal:before { content: @fa-var-greater-than-equal; }\n.@{fa-css-prefix}-grimace:before { content: @fa-var-grimace; }\n.@{fa-css-prefix}-grin:before { content: @fa-var-grin; }\n.@{fa-css-prefix}-grin-alt:before { content: @fa-var-grin-alt; }\n.@{fa-css-prefix}-grin-beam:before { content: @fa-var-grin-beam; }\n.@{fa-css-prefix}-grin-beam-sweat:before { content: @fa-var-grin-beam-sweat; }\n.@{fa-css-prefix}-grin-hearts:before { content: @fa-var-grin-hearts; }\n.@{fa-css-prefix}-grin-squint:before { content: @fa-var-grin-squint; }\n.@{fa-css-prefix}-grin-squint-tears:before { content: @fa-var-grin-squint-tears; }\n.@{fa-css-prefix}-grin-stars:before { content: @fa-var-grin-stars; }\n.@{fa-css-prefix}-grin-tears:before { content: @fa-var-grin-tears; }\n.@{fa-css-prefix}-grin-tongue:before { content: @fa-var-grin-tongue; }\n.@{fa-css-prefix}-grin-tongue-squint:before { content: @fa-var-grin-tongue-squint; }\n.@{fa-css-prefix}-grin-tongue-wink:before { content: @fa-var-grin-tongue-wink; }\n.@{fa-css-prefix}-grin-wink:before { content: @fa-var-grin-wink; }\n.@{fa-css-prefix}-grip-horizontal:before { content: @fa-var-grip-horizontal; }\n.@{fa-css-prefix}-grip-lines:before { content: @fa-var-grip-lines; }\n.@{fa-css-prefix}-grip-lines-vertical:before { content: @fa-var-grip-lines-vertical; }\n.@{fa-css-prefix}-grip-vertical:before { content: @fa-var-grip-vertical; }\n.@{fa-css-prefix}-gripfire:before { content: @fa-var-gripfire; }\n.@{fa-css-prefix}-grunt:before { content: @fa-var-grunt; }\n.@{fa-css-prefix}-guitar:before { content: @fa-var-guitar; }\n.@{fa-css-prefix}-gulp:before { content: @fa-var-gulp; }\n.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }\n.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }\n.@{fa-css-prefix}-hacker-news-square:before { content: @fa-var-hacker-news-square; }\n.@{fa-css-prefix}-hackerrank:before { content: @fa-var-hackerrank; }\n.@{fa-css-prefix}-hamburger:before { content: @fa-var-hamburger; }\n.@{fa-css-prefix}-hammer:before { content: @fa-var-hammer; }\n.@{fa-css-prefix}-hamsa:before { content: @fa-var-hamsa; }\n.@{fa-css-prefix}-hand-holding:before { content: @fa-var-hand-holding; }\n.@{fa-css-prefix}-hand-holding-heart:before { content: @fa-var-hand-holding-heart; }\n.@{fa-css-prefix}-hand-holding-usd:before { content: @fa-var-hand-holding-usd; }\n.@{fa-css-prefix}-hand-lizard:before { content: @fa-var-hand-lizard; }\n.@{fa-css-prefix}-hand-middle-finger:before { content: @fa-var-hand-middle-finger; }\n.@{fa-css-prefix}-hand-paper:before { content: @fa-var-hand-paper; }\n.@{fa-css-prefix}-hand-peace:before { content: @fa-var-hand-peace; }\n.@{fa-css-prefix}-hand-point-down:before { content: @fa-var-hand-point-down; }\n.@{fa-css-prefix}-hand-point-left:before { content: @fa-var-hand-point-left; }\n.@{fa-css-prefix}-hand-point-right:before { content: @fa-var-hand-point-right; }\n.@{fa-css-prefix}-hand-point-up:before { content: @fa-var-hand-point-up; }\n.@{fa-css-prefix}-hand-pointer:before { content: @fa-var-hand-pointer; }\n.@{fa-css-prefix}-hand-rock:before { content: @fa-var-hand-rock; }\n.@{fa-css-prefix}-hand-scissors:before { content: @fa-var-hand-scissors; }\n.@{fa-css-prefix}-hand-spock:before { content: @fa-var-hand-spock; }\n.@{fa-css-prefix}-hands:before { content: @fa-var-hands; }\n.@{fa-css-prefix}-hands-helping:before { content: @fa-var-hands-helping; }\n.@{fa-css-prefix}-handshake:before { content: @fa-var-handshake; }\n.@{fa-css-prefix}-hanukiah:before { content: @fa-var-hanukiah; }\n.@{fa-css-prefix}-hard-hat:before { content: @fa-var-hard-hat; }\n.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }\n.@{fa-css-prefix}-hat-wizard:before { content: @fa-var-hat-wizard; }\n.@{fa-css-prefix}-haykal:before { content: @fa-var-haykal; }\n.@{fa-css-prefix}-hdd:before { content: @fa-var-hdd; }\n.@{fa-css-prefix}-heading:before { content: @fa-var-heading; }\n.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }\n.@{fa-css-prefix}-headphones-alt:before { content: @fa-var-headphones-alt; }\n.@{fa-css-prefix}-headset:before { content: @fa-var-headset; }\n.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }\n.@{fa-css-prefix}-heart-broken:before { content: @fa-var-heart-broken; }\n.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }\n.@{fa-css-prefix}-helicopter:before { content: @fa-var-helicopter; }\n.@{fa-css-prefix}-highlighter:before { content: @fa-var-highlighter; }\n.@{fa-css-prefix}-hiking:before { content: @fa-var-hiking; }\n.@{fa-css-prefix}-hippo:before { content: @fa-var-hippo; }\n.@{fa-css-prefix}-hips:before { content: @fa-var-hips; }\n.@{fa-css-prefix}-hire-a-helper:before { content: @fa-var-hire-a-helper; }\n.@{fa-css-prefix}-history:before { content: @fa-var-history; }\n.@{fa-css-prefix}-hockey-puck:before { content: @fa-var-hockey-puck; }\n.@{fa-css-prefix}-holly-berry:before { content: @fa-var-holly-berry; }\n.@{fa-css-prefix}-home:before { content: @fa-var-home; }\n.@{fa-css-prefix}-hooli:before { content: @fa-var-hooli; }\n.@{fa-css-prefix}-hornbill:before { content: @fa-var-hornbill; }\n.@{fa-css-prefix}-horse:before { content: @fa-var-horse; }\n.@{fa-css-prefix}-horse-head:before { content: @fa-var-horse-head; }\n.@{fa-css-prefix}-hospital:before { content: @fa-var-hospital; }\n.@{fa-css-prefix}-hospital-alt:before { content: @fa-var-hospital-alt; }\n.@{fa-css-prefix}-hospital-symbol:before { content: @fa-var-hospital-symbol; }\n.@{fa-css-prefix}-hot-tub:before { content: @fa-var-hot-tub; }\n.@{fa-css-prefix}-hotdog:before { content: @fa-var-hotdog; }\n.@{fa-css-prefix}-hotel:before { content: @fa-var-hotel; }\n.@{fa-css-prefix}-hotjar:before { content: @fa-var-hotjar; }\n.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }\n.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }\n.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }\n.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }\n.@{fa-css-prefix}-house-damage:before { content: @fa-var-house-damage; }\n.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }\n.@{fa-css-prefix}-hryvnia:before { content: @fa-var-hryvnia; }\n.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }\n.@{fa-css-prefix}-hubspot:before { content: @fa-var-hubspot; }\n.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }\n.@{fa-css-prefix}-ice-cream:before { content: @fa-var-ice-cream; }\n.@{fa-css-prefix}-icicles:before { content: @fa-var-icicles; }\n.@{fa-css-prefix}-icons:before { content: @fa-var-icons; }\n.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }\n.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }\n.@{fa-css-prefix}-id-card-alt:before { content: @fa-var-id-card-alt; }\n.@{fa-css-prefix}-igloo:before { content: @fa-var-igloo; }\n.@{fa-css-prefix}-image:before { content: @fa-var-image; }\n.@{fa-css-prefix}-images:before { content: @fa-var-images; }\n.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }\n.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }\n.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }\n.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }\n.@{fa-css-prefix}-infinity:before { content: @fa-var-infinity; }\n.@{fa-css-prefix}-info:before { content: @fa-var-info; }\n.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }\n.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }\n.@{fa-css-prefix}-intercom:before { content: @fa-var-intercom; }\n.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }\n.@{fa-css-prefix}-invision:before { content: @fa-var-invision; }\n.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }\n.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }\n.@{fa-css-prefix}-itch-io:before { content: @fa-var-itch-io; }\n.@{fa-css-prefix}-itunes:before { content: @fa-var-itunes; }\n.@{fa-css-prefix}-itunes-note:before { content: @fa-var-itunes-note; }\n.@{fa-css-prefix}-java:before { content: @fa-var-java; }\n.@{fa-css-prefix}-jedi:before { content: @fa-var-jedi; }\n.@{fa-css-prefix}-jedi-order:before { content: @fa-var-jedi-order; }\n.@{fa-css-prefix}-jenkins:before { content: @fa-var-jenkins; }\n.@{fa-css-prefix}-jira:before { content: @fa-var-jira; }\n.@{fa-css-prefix}-joget:before { content: @fa-var-joget; }\n.@{fa-css-prefix}-joint:before { content: @fa-var-joint; }\n.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }\n.@{fa-css-prefix}-journal-whills:before { content: @fa-var-journal-whills; }\n.@{fa-css-prefix}-js:before { content: @fa-var-js; }\n.@{fa-css-prefix}-js-square:before { content: @fa-var-js-square; }\n.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }\n.@{fa-css-prefix}-kaaba:before { content: @fa-var-kaaba; }\n.@{fa-css-prefix}-kaggle:before { content: @fa-var-kaggle; }\n.@{fa-css-prefix}-key:before { content: @fa-var-key; }\n.@{fa-css-prefix}-keybase:before { content: @fa-var-keybase; }\n.@{fa-css-prefix}-keyboard:before { content: @fa-var-keyboard; }\n.@{fa-css-prefix}-keycdn:before { content: @fa-var-keycdn; }\n.@{fa-css-prefix}-khanda:before { content: @fa-var-khanda; }\n.@{fa-css-prefix}-kickstarter:before { content: @fa-var-kickstarter; }\n.@{fa-css-prefix}-kickstarter-k:before { content: @fa-var-kickstarter-k; }\n.@{fa-css-prefix}-kiss:before { content: @fa-var-kiss; }\n.@{fa-css-prefix}-kiss-beam:before { content: @fa-var-kiss-beam; }\n.@{fa-css-prefix}-kiss-wink-heart:before { content: @fa-var-kiss-wink-heart; }\n.@{fa-css-prefix}-kiwi-bird:before { content: @fa-var-kiwi-bird; }\n.@{fa-css-prefix}-korvue:before { content: @fa-var-korvue; }\n.@{fa-css-prefix}-landmark:before { content: @fa-var-landmark; }\n.@{fa-css-prefix}-language:before { content: @fa-var-language; }\n.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }\n.@{fa-css-prefix}-laptop-code:before { content: @fa-var-laptop-code; }\n.@{fa-css-prefix}-laptop-medical:before { content: @fa-var-laptop-medical; }\n.@{fa-css-prefix}-laravel:before { content: @fa-var-laravel; }\n.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }\n.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }\n.@{fa-css-prefix}-laugh:before { content: @fa-var-laugh; }\n.@{fa-css-prefix}-laugh-beam:before { content: @fa-var-laugh-beam; }\n.@{fa-css-prefix}-laugh-squint:before { content: @fa-var-laugh-squint; }\n.@{fa-css-prefix}-laugh-wink:before { content: @fa-var-laugh-wink; }\n.@{fa-css-prefix}-layer-group:before { content: @fa-var-layer-group; }\n.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }\n.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }\n.@{fa-css-prefix}-lemon:before { content: @fa-var-lemon; }\n.@{fa-css-prefix}-less:before { content: @fa-var-less; }\n.@{fa-css-prefix}-less-than:before { content: @fa-var-less-than; }\n.@{fa-css-prefix}-less-than-equal:before { content: @fa-var-less-than-equal; }\n.@{fa-css-prefix}-level-down-alt:before { content: @fa-var-level-down-alt; }\n.@{fa-css-prefix}-level-up-alt:before { content: @fa-var-level-up-alt; }\n.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }\n.@{fa-css-prefix}-lightbulb:before { content: @fa-var-lightbulb; }\n.@{fa-css-prefix}-line:before { content: @fa-var-line; }\n.@{fa-css-prefix}-link:before { content: @fa-var-link; }\n.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }\n.@{fa-css-prefix}-linkedin-in:before { content: @fa-var-linkedin-in; }\n.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }\n.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }\n.@{fa-css-prefix}-lira-sign:before { content: @fa-var-lira-sign; }\n.@{fa-css-prefix}-list:before { content: @fa-var-list; }\n.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }\n.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }\n.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }\n.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }\n.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }\n.@{fa-css-prefix}-lock-open:before { content: @fa-var-lock-open; }\n.@{fa-css-prefix}-long-arrow-alt-down:before { content: @fa-var-long-arrow-alt-down; }\n.@{fa-css-prefix}-long-arrow-alt-left:before { content: @fa-var-long-arrow-alt-left; }\n.@{fa-css-prefix}-long-arrow-alt-right:before { content: @fa-var-long-arrow-alt-right; }\n.@{fa-css-prefix}-long-arrow-alt-up:before { content: @fa-var-long-arrow-alt-up; }\n.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }\n.@{fa-css-prefix}-luggage-cart:before { content: @fa-var-luggage-cart; }\n.@{fa-css-prefix}-lyft:before { content: @fa-var-lyft; }\n.@{fa-css-prefix}-magento:before { content: @fa-var-magento; }\n.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }\n.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }\n.@{fa-css-prefix}-mail-bulk:before { content: @fa-var-mail-bulk; }\n.@{fa-css-prefix}-mailchimp:before { content: @fa-var-mailchimp; }\n.@{fa-css-prefix}-male:before { content: @fa-var-male; }\n.@{fa-css-prefix}-mandalorian:before { content: @fa-var-mandalorian; }\n.@{fa-css-prefix}-map:before { content: @fa-var-map; }\n.@{fa-css-prefix}-map-marked:before { content: @fa-var-map-marked; }\n.@{fa-css-prefix}-map-marked-alt:before { content: @fa-var-map-marked-alt; }\n.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }\n.@{fa-css-prefix}-map-marker-alt:before { content: @fa-var-map-marker-alt; }\n.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }\n.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }\n.@{fa-css-prefix}-markdown:before { content: @fa-var-markdown; }\n.@{fa-css-prefix}-marker:before { content: @fa-var-marker; }\n.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }\n.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }\n.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }\n.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }\n.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }\n.@{fa-css-prefix}-mask:before { content: @fa-var-mask; }\n.@{fa-css-prefix}-mastodon:before { content: @fa-var-mastodon; }\n.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }\n.@{fa-css-prefix}-medal:before { content: @fa-var-medal; }\n.@{fa-css-prefix}-medapps:before { content: @fa-var-medapps; }\n.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }\n.@{fa-css-prefix}-medium-m:before { content: @fa-var-medium-m; }\n.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }\n.@{fa-css-prefix}-medrt:before { content: @fa-var-medrt; }\n.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }\n.@{fa-css-prefix}-megaport:before { content: @fa-var-megaport; }\n.@{fa-css-prefix}-meh:before { content: @fa-var-meh; }\n.@{fa-css-prefix}-meh-blank:before { content: @fa-var-meh-blank; }\n.@{fa-css-prefix}-meh-rolling-eyes:before { content: @fa-var-meh-rolling-eyes; }\n.@{fa-css-prefix}-memory:before { content: @fa-var-memory; }\n.@{fa-css-prefix}-mendeley:before { content: @fa-var-mendeley; }\n.@{fa-css-prefix}-menorah:before { content: @fa-var-menorah; }\n.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }\n.@{fa-css-prefix}-meteor:before { content: @fa-var-meteor; }\n.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }\n.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }\n.@{fa-css-prefix}-microphone-alt:before { content: @fa-var-microphone-alt; }\n.@{fa-css-prefix}-microphone-alt-slash:before { content: @fa-var-microphone-alt-slash; }\n.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }\n.@{fa-css-prefix}-microscope:before { content: @fa-var-microscope; }\n.@{fa-css-prefix}-microsoft:before { content: @fa-var-microsoft; }\n.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }\n.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }\n.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }\n.@{fa-css-prefix}-mitten:before { content: @fa-var-mitten; }\n.@{fa-css-prefix}-mix:before { content: @fa-var-mix; }\n.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }\n.@{fa-css-prefix}-mizuni:before { content: @fa-var-mizuni; }\n.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }\n.@{fa-css-prefix}-mobile-alt:before { content: @fa-var-mobile-alt; }\n.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }\n.@{fa-css-prefix}-monero:before { content: @fa-var-monero; }\n.@{fa-css-prefix}-money-bill:before { content: @fa-var-money-bill; }\n.@{fa-css-prefix}-money-bill-alt:before { content: @fa-var-money-bill-alt; }\n.@{fa-css-prefix}-money-bill-wave:before { content: @fa-var-money-bill-wave; }\n.@{fa-css-prefix}-money-bill-wave-alt:before { content: @fa-var-money-bill-wave-alt; }\n.@{fa-css-prefix}-money-check:before { content: @fa-var-money-check; }\n.@{fa-css-prefix}-money-check-alt:before { content: @fa-var-money-check-alt; }\n.@{fa-css-prefix}-monument:before { content: @fa-var-monument; }\n.@{fa-css-prefix}-moon:before { content: @fa-var-moon; }\n.@{fa-css-prefix}-mortar-pestle:before { content: @fa-var-mortar-pestle; }\n.@{fa-css-prefix}-mosque:before { content: @fa-var-mosque; }\n.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }\n.@{fa-css-prefix}-mountain:before { content: @fa-var-mountain; }\n.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }\n.@{fa-css-prefix}-mug-hot:before { content: @fa-var-mug-hot; }\n.@{fa-css-prefix}-music:before { content: @fa-var-music; }\n.@{fa-css-prefix}-napster:before { content: @fa-var-napster; }\n.@{fa-css-prefix}-neos:before { content: @fa-var-neos; }\n.@{fa-css-prefix}-network-wired:before { content: @fa-var-network-wired; }\n.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }\n.@{fa-css-prefix}-newspaper:before { content: @fa-var-newspaper; }\n.@{fa-css-prefix}-nimblr:before { content: @fa-var-nimblr; }\n.@{fa-css-prefix}-node:before { content: @fa-var-node; }\n.@{fa-css-prefix}-node-js:before { content: @fa-var-node-js; }\n.@{fa-css-prefix}-not-equal:before { content: @fa-var-not-equal; }\n.@{fa-css-prefix}-notes-medical:before { content: @fa-var-notes-medical; }\n.@{fa-css-prefix}-npm:before { content: @fa-var-npm; }\n.@{fa-css-prefix}-ns8:before { content: @fa-var-ns8; }\n.@{fa-css-prefix}-nutritionix:before { content: @fa-var-nutritionix; }\n.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }\n.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }\n.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }\n.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }\n.@{fa-css-prefix}-oil-can:before { content: @fa-var-oil-can; }\n.@{fa-css-prefix}-old-republic:before { content: @fa-var-old-republic; }\n.@{fa-css-prefix}-om:before { content: @fa-var-om; }\n.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }\n.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }\n.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }\n.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }\n.@{fa-css-prefix}-osi:before { content: @fa-var-osi; }\n.@{fa-css-prefix}-otter:before { content: @fa-var-otter; }\n.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }\n.@{fa-css-prefix}-page4:before { content: @fa-var-page4; }\n.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }\n.@{fa-css-prefix}-pager:before { content: @fa-var-pager; }\n.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }\n.@{fa-css-prefix}-paint-roller:before { content: @fa-var-paint-roller; }\n.@{fa-css-prefix}-palette:before { content: @fa-var-palette; }\n.@{fa-css-prefix}-palfed:before { content: @fa-var-palfed; }\n.@{fa-css-prefix}-pallet:before { content: @fa-var-pallet; }\n.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }\n.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }\n.@{fa-css-prefix}-parachute-box:before { content: @fa-var-parachute-box; }\n.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }\n.@{fa-css-prefix}-parking:before { content: @fa-var-parking; }\n.@{fa-css-prefix}-passport:before { content: @fa-var-passport; }\n.@{fa-css-prefix}-pastafarianism:before { content: @fa-var-pastafarianism; }\n.@{fa-css-prefix}-paste:before { content: @fa-var-paste; }\n.@{fa-css-prefix}-patreon:before { content: @fa-var-patreon; }\n.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }\n.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }\n.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }\n.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }\n.@{fa-css-prefix}-peace:before { content: @fa-var-peace; }\n.@{fa-css-prefix}-pen:before { content: @fa-var-pen; }\n.@{fa-css-prefix}-pen-alt:before { content: @fa-var-pen-alt; }\n.@{fa-css-prefix}-pen-fancy:before { content: @fa-var-pen-fancy; }\n.@{fa-css-prefix}-pen-nib:before { content: @fa-var-pen-nib; }\n.@{fa-css-prefix}-pen-square:before { content: @fa-var-pen-square; }\n.@{fa-css-prefix}-pencil-alt:before { content: @fa-var-pencil-alt; }\n.@{fa-css-prefix}-pencil-ruler:before { content: @fa-var-pencil-ruler; }\n.@{fa-css-prefix}-penny-arcade:before { content: @fa-var-penny-arcade; }\n.@{fa-css-prefix}-people-carry:before { content: @fa-var-people-carry; }\n.@{fa-css-prefix}-pepper-hot:before { content: @fa-var-pepper-hot; }\n.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }\n.@{fa-css-prefix}-percentage:before { content: @fa-var-percentage; }\n.@{fa-css-prefix}-periscope:before { content: @fa-var-periscope; }\n.@{fa-css-prefix}-person-booth:before { content: @fa-var-person-booth; }\n.@{fa-css-prefix}-phabricator:before { content: @fa-var-phabricator; }\n.@{fa-css-prefix}-phoenix-framework:before { content: @fa-var-phoenix-framework; }\n.@{fa-css-prefix}-phoenix-squadron:before { content: @fa-var-phoenix-squadron; }\n.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }\n.@{fa-css-prefix}-phone-alt:before { content: @fa-var-phone-alt; }\n.@{fa-css-prefix}-phone-slash:before { content: @fa-var-phone-slash; }\n.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }\n.@{fa-css-prefix}-phone-square-alt:before { content: @fa-var-phone-square-alt; }\n.@{fa-css-prefix}-phone-volume:before { content: @fa-var-phone-volume; }\n.@{fa-css-prefix}-photo-video:before { content: @fa-var-photo-video; }\n.@{fa-css-prefix}-php:before { content: @fa-var-php; }\n.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }\n.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }\n.@{fa-css-prefix}-pied-piper-hat:before { content: @fa-var-pied-piper-hat; }\n.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }\n.@{fa-css-prefix}-piggy-bank:before { content: @fa-var-piggy-bank; }\n.@{fa-css-prefix}-pills:before { content: @fa-var-pills; }\n.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }\n.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }\n.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }\n.@{fa-css-prefix}-pizza-slice:before { content: @fa-var-pizza-slice; }\n.@{fa-css-prefix}-place-of-worship:before { content: @fa-var-place-of-worship; }\n.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }\n.@{fa-css-prefix}-plane-arrival:before { content: @fa-var-plane-arrival; }\n.@{fa-css-prefix}-plane-departure:before { content: @fa-var-plane-departure; }\n.@{fa-css-prefix}-play:before { content: @fa-var-play; }\n.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }\n.@{fa-css-prefix}-playstation:before { content: @fa-var-playstation; }\n.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }\n.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }\n.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }\n.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }\n.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }\n.@{fa-css-prefix}-poll:before { content: @fa-var-poll; }\n.@{fa-css-prefix}-poll-h:before { content: @fa-var-poll-h; }\n.@{fa-css-prefix}-poo:before { content: @fa-var-poo; }\n.@{fa-css-prefix}-poo-storm:before { content: @fa-var-poo-storm; }\n.@{fa-css-prefix}-poop:before { content: @fa-var-poop; }\n.@{fa-css-prefix}-portrait:before { content: @fa-var-portrait; }\n.@{fa-css-prefix}-pound-sign:before { content: @fa-var-pound-sign; }\n.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }\n.@{fa-css-prefix}-pray:before { content: @fa-var-pray; }\n.@{fa-css-prefix}-praying-hands:before { content: @fa-var-praying-hands; }\n.@{fa-css-prefix}-prescription:before { content: @fa-var-prescription; }\n.@{fa-css-prefix}-prescription-bottle:before { content: @fa-var-prescription-bottle; }\n.@{fa-css-prefix}-prescription-bottle-alt:before { content: @fa-var-prescription-bottle-alt; }\n.@{fa-css-prefix}-print:before { content: @fa-var-print; }\n.@{fa-css-prefix}-procedures:before { content: @fa-var-procedures; }\n.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }\n.@{fa-css-prefix}-project-diagram:before { content: @fa-var-project-diagram; }\n.@{fa-css-prefix}-pushed:before { content: @fa-var-pushed; }\n.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }\n.@{fa-css-prefix}-python:before { content: @fa-var-python; }\n.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }\n.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }\n.@{fa-css-prefix}-question:before { content: @fa-var-question; }\n.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }\n.@{fa-css-prefix}-quidditch:before { content: @fa-var-quidditch; }\n.@{fa-css-prefix}-quinscape:before { content: @fa-var-quinscape; }\n.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }\n.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }\n.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }\n.@{fa-css-prefix}-quran:before { content: @fa-var-quran; }\n.@{fa-css-prefix}-r-project:before { content: @fa-var-r-project; }\n.@{fa-css-prefix}-radiation:before { content: @fa-var-radiation; }\n.@{fa-css-prefix}-radiation-alt:before { content: @fa-var-radiation-alt; }\n.@{fa-css-prefix}-rainbow:before { content: @fa-var-rainbow; }\n.@{fa-css-prefix}-random:before { content: @fa-var-random; }\n.@{fa-css-prefix}-raspberry-pi:before { content: @fa-var-raspberry-pi; }\n.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }\n.@{fa-css-prefix}-react:before { content: @fa-var-react; }\n.@{fa-css-prefix}-reacteurope:before { content: @fa-var-reacteurope; }\n.@{fa-css-prefix}-readme:before { content: @fa-var-readme; }\n.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }\n.@{fa-css-prefix}-receipt:before { content: @fa-var-receipt; }\n.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }\n.@{fa-css-prefix}-red-river:before { content: @fa-var-red-river; }\n.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }\n.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }\n.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }\n.@{fa-css-prefix}-redhat:before { content: @fa-var-redhat; }\n.@{fa-css-prefix}-redo:before { content: @fa-var-redo; }\n.@{fa-css-prefix}-redo-alt:before { content: @fa-var-redo-alt; }\n.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }\n.@{fa-css-prefix}-remove-format:before { content: @fa-var-remove-format; }\n.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }\n.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }\n.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }\n.@{fa-css-prefix}-replyd:before { content: @fa-var-replyd; }\n.@{fa-css-prefix}-republican:before { content: @fa-var-republican; }\n.@{fa-css-prefix}-researchgate:before { content: @fa-var-researchgate; }\n.@{fa-css-prefix}-resolving:before { content: @fa-var-resolving; }\n.@{fa-css-prefix}-restroom:before { content: @fa-var-restroom; }\n.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }\n.@{fa-css-prefix}-rev:before { content: @fa-var-rev; }\n.@{fa-css-prefix}-ribbon:before { content: @fa-var-ribbon; }\n.@{fa-css-prefix}-ring:before { content: @fa-var-ring; }\n.@{fa-css-prefix}-road:before { content: @fa-var-road; }\n.@{fa-css-prefix}-robot:before { content: @fa-var-robot; }\n.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }\n.@{fa-css-prefix}-rocketchat:before { content: @fa-var-rocketchat; }\n.@{fa-css-prefix}-rockrms:before { content: @fa-var-rockrms; }\n.@{fa-css-prefix}-route:before { content: @fa-var-route; }\n.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }\n.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }\n.@{fa-css-prefix}-ruble-sign:before { content: @fa-var-ruble-sign; }\n.@{fa-css-prefix}-ruler:before { content: @fa-var-ruler; }\n.@{fa-css-prefix}-ruler-combined:before { content: @fa-var-ruler-combined; }\n.@{fa-css-prefix}-ruler-horizontal:before { content: @fa-var-ruler-horizontal; }\n.@{fa-css-prefix}-ruler-vertical:before { content: @fa-var-ruler-vertical; }\n.@{fa-css-prefix}-running:before { content: @fa-var-running; }\n.@{fa-css-prefix}-rupee-sign:before { content: @fa-var-rupee-sign; }\n.@{fa-css-prefix}-sad-cry:before { content: @fa-var-sad-cry; }\n.@{fa-css-prefix}-sad-tear:before { content: @fa-var-sad-tear; }\n.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }\n.@{fa-css-prefix}-salesforce:before { content: @fa-var-salesforce; }\n.@{fa-css-prefix}-sass:before { content: @fa-var-sass; }\n.@{fa-css-prefix}-satellite:before { content: @fa-var-satellite; }\n.@{fa-css-prefix}-satellite-dish:before { content: @fa-var-satellite-dish; }\n.@{fa-css-prefix}-save:before { content: @fa-var-save; }\n.@{fa-css-prefix}-schlix:before { content: @fa-var-schlix; }\n.@{fa-css-prefix}-school:before { content: @fa-var-school; }\n.@{fa-css-prefix}-screwdriver:before { content: @fa-var-screwdriver; }\n.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }\n.@{fa-css-prefix}-scroll:before { content: @fa-var-scroll; }\n.@{fa-css-prefix}-sd-card:before { content: @fa-var-sd-card; }\n.@{fa-css-prefix}-search:before { content: @fa-var-search; }\n.@{fa-css-prefix}-search-dollar:before { content: @fa-var-search-dollar; }\n.@{fa-css-prefix}-search-location:before { content: @fa-var-search-location; }\n.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }\n.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }\n.@{fa-css-prefix}-searchengin:before { content: @fa-var-searchengin; }\n.@{fa-css-prefix}-seedling:before { content: @fa-var-seedling; }\n.@{fa-css-prefix}-sellcast:before { content: @fa-var-sellcast; }\n.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }\n.@{fa-css-prefix}-server:before { content: @fa-var-server; }\n.@{fa-css-prefix}-servicestack:before { content: @fa-var-servicestack; }\n.@{fa-css-prefix}-shapes:before { content: @fa-var-shapes; }\n.@{fa-css-prefix}-share:before { content: @fa-var-share; }\n.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }\n.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }\n.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }\n.@{fa-css-prefix}-shekel-sign:before { content: @fa-var-shekel-sign; }\n.@{fa-css-prefix}-shield-alt:before { content: @fa-var-shield-alt; }\n.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }\n.@{fa-css-prefix}-shipping-fast:before { content: @fa-var-shipping-fast; }\n.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }\n.@{fa-css-prefix}-shoe-prints:before { content: @fa-var-shoe-prints; }\n.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }\n.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }\n.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }\n.@{fa-css-prefix}-shopware:before { content: @fa-var-shopware; }\n.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }\n.@{fa-css-prefix}-shuttle-van:before { content: @fa-var-shuttle-van; }\n.@{fa-css-prefix}-sign:before { content: @fa-var-sign; }\n.@{fa-css-prefix}-sign-in-alt:before { content: @fa-var-sign-in-alt; }\n.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }\n.@{fa-css-prefix}-sign-out-alt:before { content: @fa-var-sign-out-alt; }\n.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }\n.@{fa-css-prefix}-signature:before { content: @fa-var-signature; }\n.@{fa-css-prefix}-sim-card:before { content: @fa-var-sim-card; }\n.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }\n.@{fa-css-prefix}-sistrix:before { content: @fa-var-sistrix; }\n.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }\n.@{fa-css-prefix}-sith:before { content: @fa-var-sith; }\n.@{fa-css-prefix}-skating:before { content: @fa-var-skating; }\n.@{fa-css-prefix}-sketch:before { content: @fa-var-sketch; }\n.@{fa-css-prefix}-skiing:before { content: @fa-var-skiing; }\n.@{fa-css-prefix}-skiing-nordic:before { content: @fa-var-skiing-nordic; }\n.@{fa-css-prefix}-skull:before { content: @fa-var-skull; }\n.@{fa-css-prefix}-skull-crossbones:before { content: @fa-var-skull-crossbones; }\n.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }\n.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }\n.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }\n.@{fa-css-prefix}-slack-hash:before { content: @fa-var-slack-hash; }\n.@{fa-css-prefix}-slash:before { content: @fa-var-slash; }\n.@{fa-css-prefix}-sleigh:before { content: @fa-var-sleigh; }\n.@{fa-css-prefix}-sliders-h:before { content: @fa-var-sliders-h; }\n.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }\n.@{fa-css-prefix}-smile:before { content: @fa-var-smile; }\n.@{fa-css-prefix}-smile-beam:before { content: @fa-var-smile-beam; }\n.@{fa-css-prefix}-smile-wink:before { content: @fa-var-smile-wink; }\n.@{fa-css-prefix}-smog:before { content: @fa-var-smog; }\n.@{fa-css-prefix}-smoking:before { content: @fa-var-smoking; }\n.@{fa-css-prefix}-smoking-ban:before { content: @fa-var-smoking-ban; }\n.@{fa-css-prefix}-sms:before { content: @fa-var-sms; }\n.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }\n.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }\n.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }\n.@{fa-css-prefix}-snowboarding:before { content: @fa-var-snowboarding; }\n.@{fa-css-prefix}-snowflake:before { content: @fa-var-snowflake; }\n.@{fa-css-prefix}-snowman:before { content: @fa-var-snowman; }\n.@{fa-css-prefix}-snowplow:before { content: @fa-var-snowplow; }\n.@{fa-css-prefix}-socks:before { content: @fa-var-socks; }\n.@{fa-css-prefix}-solar-panel:before { content: @fa-var-solar-panel; }\n.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }\n.@{fa-css-prefix}-sort-alpha-down:before { content: @fa-var-sort-alpha-down; }\n.@{fa-css-prefix}-sort-alpha-down-alt:before { content: @fa-var-sort-alpha-down-alt; }\n.@{fa-css-prefix}-sort-alpha-up:before { content: @fa-var-sort-alpha-up; }\n.@{fa-css-prefix}-sort-alpha-up-alt:before { content: @fa-var-sort-alpha-up-alt; }\n.@{fa-css-prefix}-sort-amount-down:before { content: @fa-var-sort-amount-down; }\n.@{fa-css-prefix}-sort-amount-down-alt:before { content: @fa-var-sort-amount-down-alt; }\n.@{fa-css-prefix}-sort-amount-up:before { content: @fa-var-sort-amount-up; }\n.@{fa-css-prefix}-sort-amount-up-alt:before { content: @fa-var-sort-amount-up-alt; }\n.@{fa-css-prefix}-sort-down:before { content: @fa-var-sort-down; }\n.@{fa-css-prefix}-sort-numeric-down:before { content: @fa-var-sort-numeric-down; }\n.@{fa-css-prefix}-sort-numeric-down-alt:before { content: @fa-var-sort-numeric-down-alt; }\n.@{fa-css-prefix}-sort-numeric-up:before { content: @fa-var-sort-numeric-up; }\n.@{fa-css-prefix}-sort-numeric-up-alt:before { content: @fa-var-sort-numeric-up-alt; }\n.@{fa-css-prefix}-sort-up:before { content: @fa-var-sort-up; }\n.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }\n.@{fa-css-prefix}-sourcetree:before { content: @fa-var-sourcetree; }\n.@{fa-css-prefix}-spa:before { content: @fa-var-spa; }\n.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }\n.@{fa-css-prefix}-speakap:before { content: @fa-var-speakap; }\n.@{fa-css-prefix}-speaker-deck:before { content: @fa-var-speaker-deck; }\n.@{fa-css-prefix}-spell-check:before { content: @fa-var-spell-check; }\n.@{fa-css-prefix}-spider:before { content: @fa-var-spider; }\n.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }\n.@{fa-css-prefix}-splotch:before { content: @fa-var-splotch; }\n.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }\n.@{fa-css-prefix}-spray-can:before { content: @fa-var-spray-can; }\n.@{fa-css-prefix}-square:before { content: @fa-var-square; }\n.@{fa-css-prefix}-square-full:before { content: @fa-var-square-full; }\n.@{fa-css-prefix}-square-root-alt:before { content: @fa-var-square-root-alt; }\n.@{fa-css-prefix}-squarespace:before { content: @fa-var-squarespace; }\n.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }\n.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }\n.@{fa-css-prefix}-stackpath:before { content: @fa-var-stackpath; }\n.@{fa-css-prefix}-stamp:before { content: @fa-var-stamp; }\n.@{fa-css-prefix}-star:before { content: @fa-var-star; }\n.@{fa-css-prefix}-star-and-crescent:before { content: @fa-var-star-and-crescent; }\n.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }\n.@{fa-css-prefix}-star-half-alt:before { content: @fa-var-star-half-alt; }\n.@{fa-css-prefix}-star-of-david:before { content: @fa-var-star-of-david; }\n.@{fa-css-prefix}-star-of-life:before { content: @fa-var-star-of-life; }\n.@{fa-css-prefix}-staylinked:before { content: @fa-var-staylinked; }\n.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }\n.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }\n.@{fa-css-prefix}-steam-symbol:before { content: @fa-var-steam-symbol; }\n.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }\n.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }\n.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }\n.@{fa-css-prefix}-sticker-mule:before { content: @fa-var-sticker-mule; }\n.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }\n.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }\n.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }\n.@{fa-css-prefix}-stopwatch:before { content: @fa-var-stopwatch; }\n.@{fa-css-prefix}-store:before { content: @fa-var-store; }\n.@{fa-css-prefix}-store-alt:before { content: @fa-var-store-alt; }\n.@{fa-css-prefix}-strava:before { content: @fa-var-strava; }\n.@{fa-css-prefix}-stream:before { content: @fa-var-stream; }\n.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }\n.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }\n.@{fa-css-prefix}-stripe:before { content: @fa-var-stripe; }\n.@{fa-css-prefix}-stripe-s:before { content: @fa-var-stripe-s; }\n.@{fa-css-prefix}-stroopwafel:before { content: @fa-var-stroopwafel; }\n.@{fa-css-prefix}-studiovinari:before { content: @fa-var-studiovinari; }\n.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }\n.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }\n.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }\n.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }\n.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }\n.@{fa-css-prefix}-suitcase-rolling:before { content: @fa-var-suitcase-rolling; }\n.@{fa-css-prefix}-sun:before { content: @fa-var-sun; }\n.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }\n.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }\n.@{fa-css-prefix}-supple:before { content: @fa-var-supple; }\n.@{fa-css-prefix}-surprise:before { content: @fa-var-surprise; }\n.@{fa-css-prefix}-suse:before { content: @fa-var-suse; }\n.@{fa-css-prefix}-swatchbook:before { content: @fa-var-swatchbook; }\n.@{fa-css-prefix}-swimmer:before { content: @fa-var-swimmer; }\n.@{fa-css-prefix}-swimming-pool:before { content: @fa-var-swimming-pool; }\n.@{fa-css-prefix}-symfony:before { content: @fa-var-symfony; }\n.@{fa-css-prefix}-synagogue:before { content: @fa-var-synagogue; }\n.@{fa-css-prefix}-sync:before { content: @fa-var-sync; }\n.@{fa-css-prefix}-sync-alt:before { content: @fa-var-sync-alt; }\n.@{fa-css-prefix}-syringe:before { content: @fa-var-syringe; }\n.@{fa-css-prefix}-table:before { content: @fa-var-table; }\n.@{fa-css-prefix}-table-tennis:before { content: @fa-var-table-tennis; }\n.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }\n.@{fa-css-prefix}-tablet-alt:before { content: @fa-var-tablet-alt; }\n.@{fa-css-prefix}-tablets:before { content: @fa-var-tablets; }\n.@{fa-css-prefix}-tachometer-alt:before { content: @fa-var-tachometer-alt; }\n.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }\n.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }\n.@{fa-css-prefix}-tape:before { content: @fa-var-tape; }\n.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }\n.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }\n.@{fa-css-prefix}-teamspeak:before { content: @fa-var-teamspeak; }\n.@{fa-css-prefix}-teeth:before { content: @fa-var-teeth; }\n.@{fa-css-prefix}-teeth-open:before { content: @fa-var-teeth-open; }\n.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }\n.@{fa-css-prefix}-telegram-plane:before { content: @fa-var-telegram-plane; }\n.@{fa-css-prefix}-temperature-high:before { content: @fa-var-temperature-high; }\n.@{fa-css-prefix}-temperature-low:before { content: @fa-var-temperature-low; }\n.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }\n.@{fa-css-prefix}-tenge:before { content: @fa-var-tenge; }\n.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }\n.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }\n.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }\n.@{fa-css-prefix}-th:before { content: @fa-var-th; }\n.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }\n.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }\n.@{fa-css-prefix}-the-red-yeti:before { content: @fa-var-the-red-yeti; }\n.@{fa-css-prefix}-theater-masks:before { content: @fa-var-theater-masks; }\n.@{fa-css-prefix}-themeco:before { content: @fa-var-themeco; }\n.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }\n.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer; }\n.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }\n.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }\n.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }\n.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }\n.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }\n.@{fa-css-prefix}-think-peaks:before { content: @fa-var-think-peaks; }\n.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }\n.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }\n.@{fa-css-prefix}-thumbtack:before { content: @fa-var-thumbtack; }\n.@{fa-css-prefix}-ticket-alt:before { content: @fa-var-ticket-alt; }\n.@{fa-css-prefix}-times:before { content: @fa-var-times; }\n.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }\n.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }\n.@{fa-css-prefix}-tint-slash:before { content: @fa-var-tint-slash; }\n.@{fa-css-prefix}-tired:before { content: @fa-var-tired; }\n.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }\n.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }\n.@{fa-css-prefix}-toilet:before { content: @fa-var-toilet; }\n.@{fa-css-prefix}-toilet-paper:before { content: @fa-var-toilet-paper; }\n.@{fa-css-prefix}-toolbox:before { content: @fa-var-toolbox; }\n.@{fa-css-prefix}-tools:before { content: @fa-var-tools; }\n.@{fa-css-prefix}-tooth:before { content: @fa-var-tooth; }\n.@{fa-css-prefix}-torah:before { content: @fa-var-torah; }\n.@{fa-css-prefix}-torii-gate:before { content: @fa-var-torii-gate; }\n.@{fa-css-prefix}-tractor:before { content: @fa-var-tractor; }\n.@{fa-css-prefix}-trade-federation:before { content: @fa-var-trade-federation; }\n.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }\n.@{fa-css-prefix}-traffic-light:before { content: @fa-var-traffic-light; }\n.@{fa-css-prefix}-train:before { content: @fa-var-train; }\n.@{fa-css-prefix}-tram:before { content: @fa-var-tram; }\n.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }\n.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }\n.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }\n.@{fa-css-prefix}-trash-alt:before { content: @fa-var-trash-alt; }\n.@{fa-css-prefix}-trash-restore:before { content: @fa-var-trash-restore; }\n.@{fa-css-prefix}-trash-restore-alt:before { content: @fa-var-trash-restore-alt; }\n.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }\n.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }\n.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }\n.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }\n.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }\n.@{fa-css-prefix}-truck-loading:before { content: @fa-var-truck-loading; }\n.@{fa-css-prefix}-truck-monster:before { content: @fa-var-truck-monster; }\n.@{fa-css-prefix}-truck-moving:before { content: @fa-var-truck-moving; }\n.@{fa-css-prefix}-truck-pickup:before { content: @fa-var-truck-pickup; }\n.@{fa-css-prefix}-tshirt:before { content: @fa-var-tshirt; }\n.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }\n.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }\n.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }\n.@{fa-css-prefix}-tv:before { content: @fa-var-tv; }\n.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }\n.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }\n.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }\n.@{fa-css-prefix}-typo3:before { content: @fa-var-typo3; }\n.@{fa-css-prefix}-uber:before { content: @fa-var-uber; }\n.@{fa-css-prefix}-ubuntu:before { content: @fa-var-ubuntu; }\n.@{fa-css-prefix}-uikit:before { content: @fa-var-uikit; }\n.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }\n.@{fa-css-prefix}-umbrella-beach:before { content: @fa-var-umbrella-beach; }\n.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }\n.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }\n.@{fa-css-prefix}-undo-alt:before { content: @fa-var-undo-alt; }\n.@{fa-css-prefix}-uniregistry:before { content: @fa-var-uniregistry; }\n.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }\n.@{fa-css-prefix}-university:before { content: @fa-var-university; }\n.@{fa-css-prefix}-unlink:before { content: @fa-var-unlink; }\n.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }\n.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }\n.@{fa-css-prefix}-untappd:before { content: @fa-var-untappd; }\n.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }\n.@{fa-css-prefix}-ups:before { content: @fa-var-ups; }\n.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }\n.@{fa-css-prefix}-user:before { content: @fa-var-user; }\n.@{fa-css-prefix}-user-alt:before { content: @fa-var-user-alt; }\n.@{fa-css-prefix}-user-alt-slash:before { content: @fa-var-user-alt-slash; }\n.@{fa-css-prefix}-user-astronaut:before { content: @fa-var-user-astronaut; }\n.@{fa-css-prefix}-user-check:before { content: @fa-var-user-check; }\n.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }\n.@{fa-css-prefix}-user-clock:before { content: @fa-var-user-clock; }\n.@{fa-css-prefix}-user-cog:before { content: @fa-var-user-cog; }\n.@{fa-css-prefix}-user-edit:before { content: @fa-var-user-edit; }\n.@{fa-css-prefix}-user-friends:before { content: @fa-var-user-friends; }\n.@{fa-css-prefix}-user-graduate:before { content: @fa-var-user-graduate; }\n.@{fa-css-prefix}-user-injured:before { content: @fa-var-user-injured; }\n.@{fa-css-prefix}-user-lock:before { content: @fa-var-user-lock; }\n.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }\n.@{fa-css-prefix}-user-minus:before { content: @fa-var-user-minus; }\n.@{fa-css-prefix}-user-ninja:before { content: @fa-var-user-ninja; }\n.@{fa-css-prefix}-user-nurse:before { content: @fa-var-user-nurse; }\n.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }\n.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }\n.@{fa-css-prefix}-user-shield:before { content: @fa-var-user-shield; }\n.@{fa-css-prefix}-user-slash:before { content: @fa-var-user-slash; }\n.@{fa-css-prefix}-user-tag:before { content: @fa-var-user-tag; }\n.@{fa-css-prefix}-user-tie:before { content: @fa-var-user-tie; }\n.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }\n.@{fa-css-prefix}-users:before { content: @fa-var-users; }\n.@{fa-css-prefix}-users-cog:before { content: @fa-var-users-cog; }\n.@{fa-css-prefix}-usps:before { content: @fa-var-usps; }\n.@{fa-css-prefix}-ussunnah:before { content: @fa-var-ussunnah; }\n.@{fa-css-prefix}-utensil-spoon:before { content: @fa-var-utensil-spoon; }\n.@{fa-css-prefix}-utensils:before { content: @fa-var-utensils; }\n.@{fa-css-prefix}-vaadin:before { content: @fa-var-vaadin; }\n.@{fa-css-prefix}-vector-square:before { content: @fa-var-vector-square; }\n.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }\n.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }\n.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }\n.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }\n.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }\n.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }\n.@{fa-css-prefix}-vial:before { content: @fa-var-vial; }\n.@{fa-css-prefix}-vials:before { content: @fa-var-vials; }\n.@{fa-css-prefix}-viber:before { content: @fa-var-viber; }\n.@{fa-css-prefix}-video:before { content: @fa-var-video; }\n.@{fa-css-prefix}-video-slash:before { content: @fa-var-video-slash; }\n.@{fa-css-prefix}-vihara:before { content: @fa-var-vihara; }\n.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }\n.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }\n.@{fa-css-prefix}-vimeo-v:before { content: @fa-var-vimeo-v; }\n.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }\n.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }\n.@{fa-css-prefix}-vnv:before { content: @fa-var-vnv; }\n.@{fa-css-prefix}-voicemail:before { content: @fa-var-voicemail; }\n.@{fa-css-prefix}-volleyball-ball:before { content: @fa-var-volleyball-ball; }\n.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }\n.@{fa-css-prefix}-volume-mute:before { content: @fa-var-volume-mute; }\n.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }\n.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }\n.@{fa-css-prefix}-vote-yea:before { content: @fa-var-vote-yea; }\n.@{fa-css-prefix}-vr-cardboard:before { content: @fa-var-vr-cardboard; }\n.@{fa-css-prefix}-vuejs:before { content: @fa-var-vuejs; }\n.@{fa-css-prefix}-walking:before { content: @fa-var-walking; }\n.@{fa-css-prefix}-wallet:before { content: @fa-var-wallet; }\n.@{fa-css-prefix}-warehouse:before { content: @fa-var-warehouse; }\n.@{fa-css-prefix}-water:before { content: @fa-var-water; }\n.@{fa-css-prefix}-wave-square:before { content: @fa-var-wave-square; }\n.@{fa-css-prefix}-waze:before { content: @fa-var-waze; }\n.@{fa-css-prefix}-weebly:before { content: @fa-var-weebly; }\n.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }\n.@{fa-css-prefix}-weight:before { content: @fa-var-weight; }\n.@{fa-css-prefix}-weight-hanging:before { content: @fa-var-weight-hanging; }\n.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }\n.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }\n.@{fa-css-prefix}-whatsapp-square:before { content: @fa-var-whatsapp-square; }\n.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }\n.@{fa-css-prefix}-whmcs:before { content: @fa-var-whmcs; }\n.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }\n.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }\n.@{fa-css-prefix}-wind:before { content: @fa-var-wind; }\n.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }\n.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }\n.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }\n.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }\n.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }\n.@{fa-css-prefix}-wine-bottle:before { content: @fa-var-wine-bottle; }\n.@{fa-css-prefix}-wine-glass:before { content: @fa-var-wine-glass; }\n.@{fa-css-prefix}-wine-glass-alt:before { content: @fa-var-wine-glass-alt; }\n.@{fa-css-prefix}-wix:before { content: @fa-var-wix; }\n.@{fa-css-prefix}-wizards-of-the-coast:before { content: @fa-var-wizards-of-the-coast; }\n.@{fa-css-prefix}-wolf-pack-battalion:before { content: @fa-var-wolf-pack-battalion; }\n.@{fa-css-prefix}-won-sign:before { content: @fa-var-won-sign; }\n.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }\n.@{fa-css-prefix}-wordpress-simple:before { content: @fa-var-wordpress-simple; }\n.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }\n.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }\n.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }\n.@{fa-css-prefix}-wpressr:before { content: @fa-var-wpressr; }\n.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }\n.@{fa-css-prefix}-x-ray:before { content: @fa-var-x-ray; }\n.@{fa-css-prefix}-xbox:before { content: @fa-var-xbox; }\n.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }\n.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }\n.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }\n.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }\n.@{fa-css-prefix}-yammer:before { content: @fa-var-yammer; }\n.@{fa-css-prefix}-yandex:before { content: @fa-var-yandex; }\n.@{fa-css-prefix}-yandex-international:before { content: @fa-var-yandex-international; }\n.@{fa-css-prefix}-yarn:before { content: @fa-var-yarn; }\n.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }\n.@{fa-css-prefix}-yen-sign:before { content: @fa-var-yen-sign; }\n.@{fa-css-prefix}-yin-yang:before { content: @fa-var-yin-yang; }\n.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }\n.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }\n.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }\n.@{fa-css-prefix}-zhihu:before { content: @fa-var-zhihu; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_larger.less",
    "content": "// Icon Sizes\n// -------------------------\n\n.larger(@factor) when (@factor > 0) {\n  .larger((@factor - 1));\n\n  .@{fa-css-prefix}-@{factor}x {\n    font-size: (@factor * 1em);\n  }\n}\n\n/* makes the font 33% larger relative to the icon container */\n.@{fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -.0667em;\n}\n\n.@{fa-css-prefix}-xs {\n  font-size: .75em;\n}\n\n.@{fa-css-prefix}-sm {\n  font-size: .875em;\n}\n\n.larger(10);\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_list.less",
    "content": "// List Icons\n// -------------------------\n\n.@{fa-css-prefix}-ul {\n  list-style-type: none;\n  margin-left: (@fa-li-width * 5/4);\n  padding-left: 0;\n\n  > li { position: relative; }\n}\n\n.@{fa-css-prefix}-li {\n  left: -@fa-li-width;\n  position: absolute;\n  text-align: center;\n  width: @fa-li-width;\n  line-height: inherit;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_mixins.less",
    "content": "// Mixins\n// --------------------------\n\n.fa-icon() {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  font-weight: normal;\n  line-height: 1;\n}\n\n.fa-icon-rotate(@degrees, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})\";\n  transform: rotate(@degrees);\n}\n\n.fa-icon-flip(@horiz, @vert, @rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)\";\n  transform: scale(@horiz, @vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only() {\n  border: 0;\n  clip: rect(0,0,0,0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable() {\n  &:active,\n  &:focus {\n    clip: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    position: static;\n    width: auto;\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_rotated-flipped.less",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }\n.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }\n.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }\n\n.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }\n.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }\n.@{fa-css-prefix}-flip-both, .@{fa-css-prefix}-flip-horizontal.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(-1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root {\n  .@{fa-css-prefix}-rotate-90,\n  .@{fa-css-prefix}-rotate-180,\n  .@{fa-css-prefix}-rotate-270,\n  .@{fa-css-prefix}-flip-horizontal,\n  .@{fa-css-prefix}-flip-vertical,\n  .@{fa-css-prefix}-flip-both {\n    filter: none;\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_screen-reader.less",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { .sr-only(); }\n.sr-only-focusable { .sr-only-focusable(); }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_shims.less",
    "content": ".@{fa-css-prefix}.@{fa-css-prefix}-glass:before { content: @fa-var-glass-martini; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-star-o:before { content: @fa-var-star; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-remove:before { content: @fa-var-times; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-close:before { content: @fa-var-times; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gear:before { content: @fa-var-cog; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-o:before { content: @fa-var-file; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-alt-circle-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-alt-circle-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-repeat:before { content: @fa-var-redo; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rotate-right:before { content: @fa-var-redo; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-refresh:before { content: @fa-var-sync; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dedent:before { content: @fa-var-outdent; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-video-camera:before { content: @fa-var-video; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-picture-o:before { content: @fa-var-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-photo:before { content: @fa-var-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-image:before { content: @fa-var-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-edit; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mail-forward:before { content: @fa-var-share; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-warning:before { content: @fa-var-exclamation-triangle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-alt-v; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-alt-h; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart:before { content: @fa-var-chart-bar; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-chart-bar; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gears:before { content: @fa-var-cogs; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumbtack; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-square-o:before { content: @fa-var-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook-f; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook-f:before { content: @fa-var-facebook-f; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-feed:before { content: @fa-var-rss; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-point-right; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-point-left; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-point-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-point-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-expand-arrows-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-group:before { content: @fa-var-users; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-chain:before { content: @fa-var-link; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-scissors:before { content: @fa-var-cut; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-files-o:before { content: @fa-var-copy; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-floppy-o:before { content: @fa-var-save; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-navicon:before { content: @fa-var-bars; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-reorder:before { content: @fa-var-bars; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus-g; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-money:before { content: @fa-var-money-bill-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-unsorted:before { content: @fa-var-sort; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin-in; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rotate-left:before { content: @fa-var-undo; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-legal:before { content: @fa-var-gavel; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dashboard:before { content: @fa-var-tachometer-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-flash:before { content: @fa-var-bolt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-paste:before { content: @fa-var-clipboard; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cutlery:before { content: @fa-var-utensils; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-building-o:before { content: @fa-var-building; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mobile-phone:before { content: @fa-var-mobile-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply:before { content: @fa-var-reply; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mail-reply-all:before { content: @fa-var-reply-all; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-empty:before { content: @fa-var-star-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-star-half-full:before { content: @fa-var-star-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-branch; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-chain-broken:before { content: @fa-var-unlink; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-shield:before { content: @fa-var-shield-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pen-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-down:before { content: @fa-var-caret-square-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-up:before { content: @fa-var-caret-square-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-right; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-right:before { content: @fa-var-caret-square-right; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-eur:before { content: @fa-var-euro-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-euro:before { content: @fa-var-euro-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gbp:before { content: @fa-var-pound-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-usd:before { content: @fa-var-dollar-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dollar:before { content: @fa-var-dollar-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-inr:before { content: @fa-var-rupee-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rupee:before { content: @fa-var-rupee-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-jpy:before { content: @fa-var-yen-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cny:before { content: @fa-var-yen-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rmb:before { content: @fa-var-yen-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yen:before { content: @fa-var-yen-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rub:before { content: @fa-var-ruble-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ruble:before { content: @fa-var-ruble-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rouble:before { content: @fa-var-ruble-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-krw:before { content: @fa-var-won-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-won:before { content: @fa-var-won-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bitcoin:before { content: @fa-var-btc; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-text:before { content: @fa-var-file-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-down-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-down-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-down-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-alt-down; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-alt-up; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-alt-left; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-alt-right; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-gittip:before { content: @fa-var-gratipay; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-alt-circle-right; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-alt-circle-left; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-left; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-toggle-left:before { content: @fa-var-caret-square-left; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-try:before { content: @fa-var-lira-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-turkish-lira:before { content: @fa-var-lira-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-institution:before { content: @fa-var-university; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bank:before { content: @fa-var-university; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mortar-board:before { content: @fa-var-graduation-cap; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-spoon:before { content: @fa-var-utensil-spoon; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-automobile:before { content: @fa-var-car; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cab:before { content: @fa-var-taxi; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-photo-o:before { content: @fa-var-file-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-picture-o:before { content: @fa-var-file-image; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-zip-o:before { content: @fa-var-file-archive; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-sound-o:before { content: @fa-var-file-audio; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-movie-o:before { content: @fa-var-file-video; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-life-bouy:before { content: @fa-var-life-ring; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-life-buoy:before { content: @fa-var-life-ring; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-life-saver:before { content: @fa-var-life-ring; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-support:before { content: @fa-var-life-ring; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-notch; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-ra:before { content: @fa-var-rebel; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-resistance:before { content: @fa-var-rebel; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-ge:before { content: @fa-var-empire; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator-square:before { content: @fa-var-hacker-news; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-yc-square:before { content: @fa-var-hacker-news; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-wechat:before { content: @fa-var-weixin; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-send:before { content: @fa-var-paper-plane; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-send-o:before { content: @fa-var-paper-plane; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-header:before { content: @fa-var-heading; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders-h; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-soccer-ball-o:before { content: @fa-var-futbol; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-trash:before { content: @fa-var-trash-alt; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eye-dropper; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-area-chart:before { content: @fa-var-chart-area; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pie-chart:before { content: @fa-var-chart-pie; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-line-chart:before { content: @fa-var-chart-line; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-cc:before { content: @fa-var-closed-captioning; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ils:before { content: @fa-var-shekel-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-shekel:before { content: @fa-var-shekel-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sheqel:before { content: @fa-var-shekel-sign; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-meanpath:before { content: @fa-var-font-awesome; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-diamond:before { content: @fa-var-gem; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-intersex:before { content: @fa-var-transgender; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hotel:before { content: @fa-var-bed; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-yc:before { content: @fa-var-y-combinator; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery-4:before { content: @fa-var-battery-full; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery:before { content: @fa-var-battery-full; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery-3:before { content: @fa-var-battery-three-quarters; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery-2:before { content: @fa-var-battery-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery-1:before { content: @fa-var-battery-quarter; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-battery-0:before { content: @fa-var-battery-empty; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-1:before { content: @fa-var-hourglass-start; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-2:before { content: @fa-var-hourglass-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hourglass-3:before { content: @fa-var-hourglass-end; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-grab-o:before { content: @fa-var-hand-rock; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-stop-o:before { content: @fa-var-hand-paper; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-television:before { content: @fa-var-tv; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-map-o:before { content: @fa-var-map; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-commenting:before { content: @fa-var-comment-dots; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-commenting-o:before { content: @fa-var-comment-dots; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo-v; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-accessible-icon; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-phone-volume; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-asl-interpreting:before { content: @fa-var-american-sign-language-interpreting; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-deafness:before { content: @fa-var-deaf; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-hard-of-hearing:before { content: @fa-var-deaf; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-signing:before { content: @fa-var-sign-language; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-google-plus-circle:before { content: @fa-var-google-plus; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-fa:before { content: @fa-var-font-awesome; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vcard:before { content: @fa-var-address-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-vcard-o:before { content: @fa-var-address-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-user-o:before { content: @fa-var-user; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license:before { content: @fa-var-id-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-drivers-license-o:before { content: @fa-var-id-card; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-4:before { content: @fa-var-thermometer-full; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer:before { content: @fa-var-thermometer-full; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-3:before { content: @fa-var-thermometer-three-quarters; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-2:before { content: @fa-var-thermometer-half; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-1:before { content: @fa-var-thermometer-quarter; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-thermometer-0:before { content: @fa-var-thermometer-empty; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bathtub:before { content: @fa-var-bath; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-s15:before { content: @fa-var-bath; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle:before { content: @fa-var-window-close; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-times-rectangle-o:before { content: @fa-var-window-close; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-eercast:before { content: @fa-var-sellcast; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.@{fa-css-prefix}.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake; }\n\n.@{fa-css-prefix}.@{fa-css-prefix}-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.@{fa-css-prefix}.@{fa-css-prefix}-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_stacked.less",
    "content": "// Stacked Icons\n// -------------------------\n\n.@{fa-css-prefix}-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: 2em;\n}\n\n.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%;\n}\n\n.@{fa-css-prefix}-stack-1x { line-height: inherit; }\n.@{fa-css-prefix}-stack-2x { font-size: 2em; }\n.@{fa-css-prefix}-inverse { color: @fa-inverse; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/_variables.less",
    "content": "// Variables\n// --------------------------\n\n@fa-font-path:         \"../webfonts\";\n@fa-font-size-base:    16px;\n@fa-font-display:      auto;\n@fa-line-height-base:  1;\n@fa-css-prefix:        fa;\n@fa-version:           \"5.10.1\";\n@fa-border-color:      #eee;\n@fa-inverse:           #fff;\n@fa-li-width:          2em;\n@fa-primary-opacity:   1;\n@fa-secondary-opacity: .4;\n\n@fa-var-500px: \"\\f26e\";\n@fa-var-accessible-icon: \"\\f368\";\n@fa-var-accusoft: \"\\f369\";\n@fa-var-acquisitions-incorporated: \"\\f6af\";\n@fa-var-ad: \"\\f641\";\n@fa-var-address-book: \"\\f2b9\";\n@fa-var-address-card: \"\\f2bb\";\n@fa-var-adjust: \"\\f042\";\n@fa-var-adn: \"\\f170\";\n@fa-var-adobe: \"\\f778\";\n@fa-var-adversal: \"\\f36a\";\n@fa-var-affiliatetheme: \"\\f36b\";\n@fa-var-air-freshener: \"\\f5d0\";\n@fa-var-airbnb: \"\\f834\";\n@fa-var-algolia: \"\\f36c\";\n@fa-var-align-center: \"\\f037\";\n@fa-var-align-justify: \"\\f039\";\n@fa-var-align-left: \"\\f036\";\n@fa-var-align-right: \"\\f038\";\n@fa-var-alipay: \"\\f642\";\n@fa-var-allergies: \"\\f461\";\n@fa-var-amazon: \"\\f270\";\n@fa-var-amazon-pay: \"\\f42c\";\n@fa-var-ambulance: \"\\f0f9\";\n@fa-var-american-sign-language-interpreting: \"\\f2a3\";\n@fa-var-amilia: \"\\f36d\";\n@fa-var-anchor: \"\\f13d\";\n@fa-var-android: \"\\f17b\";\n@fa-var-angellist: \"\\f209\";\n@fa-var-angle-double-down: \"\\f103\";\n@fa-var-angle-double-left: \"\\f100\";\n@fa-var-angle-double-right: \"\\f101\";\n@fa-var-angle-double-up: \"\\f102\";\n@fa-var-angle-down: \"\\f107\";\n@fa-var-angle-left: \"\\f104\";\n@fa-var-angle-right: \"\\f105\";\n@fa-var-angle-up: \"\\f106\";\n@fa-var-angry: \"\\f556\";\n@fa-var-angrycreative: \"\\f36e\";\n@fa-var-angular: \"\\f420\";\n@fa-var-ankh: \"\\f644\";\n@fa-var-app-store: \"\\f36f\";\n@fa-var-app-store-ios: \"\\f370\";\n@fa-var-apper: \"\\f371\";\n@fa-var-apple: \"\\f179\";\n@fa-var-apple-alt: \"\\f5d1\";\n@fa-var-apple-pay: \"\\f415\";\n@fa-var-archive: \"\\f187\";\n@fa-var-archway: \"\\f557\";\n@fa-var-arrow-alt-circle-down: \"\\f358\";\n@fa-var-arrow-alt-circle-left: \"\\f359\";\n@fa-var-arrow-alt-circle-right: \"\\f35a\";\n@fa-var-arrow-alt-circle-up: \"\\f35b\";\n@fa-var-arrow-circle-down: \"\\f0ab\";\n@fa-var-arrow-circle-left: \"\\f0a8\";\n@fa-var-arrow-circle-right: \"\\f0a9\";\n@fa-var-arrow-circle-up: \"\\f0aa\";\n@fa-var-arrow-down: \"\\f063\";\n@fa-var-arrow-left: \"\\f060\";\n@fa-var-arrow-right: \"\\f061\";\n@fa-var-arrow-up: \"\\f062\";\n@fa-var-arrows-alt: \"\\f0b2\";\n@fa-var-arrows-alt-h: \"\\f337\";\n@fa-var-arrows-alt-v: \"\\f338\";\n@fa-var-artstation: \"\\f77a\";\n@fa-var-assistive-listening-systems: \"\\f2a2\";\n@fa-var-asterisk: \"\\f069\";\n@fa-var-asymmetrik: \"\\f372\";\n@fa-var-at: \"\\f1fa\";\n@fa-var-atlas: \"\\f558\";\n@fa-var-atlassian: \"\\f77b\";\n@fa-var-atom: \"\\f5d2\";\n@fa-var-audible: \"\\f373\";\n@fa-var-audio-description: \"\\f29e\";\n@fa-var-autoprefixer: \"\\f41c\";\n@fa-var-avianex: \"\\f374\";\n@fa-var-aviato: \"\\f421\";\n@fa-var-award: \"\\f559\";\n@fa-var-aws: \"\\f375\";\n@fa-var-baby: \"\\f77c\";\n@fa-var-baby-carriage: \"\\f77d\";\n@fa-var-backspace: \"\\f55a\";\n@fa-var-backward: \"\\f04a\";\n@fa-var-bacon: \"\\f7e5\";\n@fa-var-balance-scale: \"\\f24e\";\n@fa-var-balance-scale-left: \"\\f515\";\n@fa-var-balance-scale-right: \"\\f516\";\n@fa-var-ban: \"\\f05e\";\n@fa-var-band-aid: \"\\f462\";\n@fa-var-bandcamp: \"\\f2d5\";\n@fa-var-barcode: \"\\f02a\";\n@fa-var-bars: \"\\f0c9\";\n@fa-var-baseball-ball: \"\\f433\";\n@fa-var-basketball-ball: \"\\f434\";\n@fa-var-bath: \"\\f2cd\";\n@fa-var-battery-empty: \"\\f244\";\n@fa-var-battery-full: \"\\f240\";\n@fa-var-battery-half: \"\\f242\";\n@fa-var-battery-quarter: \"\\f243\";\n@fa-var-battery-three-quarters: \"\\f241\";\n@fa-var-battle-net: \"\\f835\";\n@fa-var-bed: \"\\f236\";\n@fa-var-beer: \"\\f0fc\";\n@fa-var-behance: \"\\f1b4\";\n@fa-var-behance-square: \"\\f1b5\";\n@fa-var-bell: \"\\f0f3\";\n@fa-var-bell-slash: \"\\f1f6\";\n@fa-var-bezier-curve: \"\\f55b\";\n@fa-var-bible: \"\\f647\";\n@fa-var-bicycle: \"\\f206\";\n@fa-var-biking: \"\\f84a\";\n@fa-var-bimobject: \"\\f378\";\n@fa-var-binoculars: \"\\f1e5\";\n@fa-var-biohazard: \"\\f780\";\n@fa-var-birthday-cake: \"\\f1fd\";\n@fa-var-bitbucket: \"\\f171\";\n@fa-var-bitcoin: \"\\f379\";\n@fa-var-bity: \"\\f37a\";\n@fa-var-black-tie: \"\\f27e\";\n@fa-var-blackberry: \"\\f37b\";\n@fa-var-blender: \"\\f517\";\n@fa-var-blender-phone: \"\\f6b6\";\n@fa-var-blind: \"\\f29d\";\n@fa-var-blog: \"\\f781\";\n@fa-var-blogger: \"\\f37c\";\n@fa-var-blogger-b: \"\\f37d\";\n@fa-var-bluetooth: \"\\f293\";\n@fa-var-bluetooth-b: \"\\f294\";\n@fa-var-bold: \"\\f032\";\n@fa-var-bolt: \"\\f0e7\";\n@fa-var-bomb: \"\\f1e2\";\n@fa-var-bone: \"\\f5d7\";\n@fa-var-bong: \"\\f55c\";\n@fa-var-book: \"\\f02d\";\n@fa-var-book-dead: \"\\f6b7\";\n@fa-var-book-medical: \"\\f7e6\";\n@fa-var-book-open: \"\\f518\";\n@fa-var-book-reader: \"\\f5da\";\n@fa-var-bookmark: \"\\f02e\";\n@fa-var-bootstrap: \"\\f836\";\n@fa-var-border-all: \"\\f84c\";\n@fa-var-border-none: \"\\f850\";\n@fa-var-border-style: \"\\f853\";\n@fa-var-bowling-ball: \"\\f436\";\n@fa-var-box: \"\\f466\";\n@fa-var-box-open: \"\\f49e\";\n@fa-var-boxes: \"\\f468\";\n@fa-var-braille: \"\\f2a1\";\n@fa-var-brain: \"\\f5dc\";\n@fa-var-bread-slice: \"\\f7ec\";\n@fa-var-briefcase: \"\\f0b1\";\n@fa-var-briefcase-medical: \"\\f469\";\n@fa-var-broadcast-tower: \"\\f519\";\n@fa-var-broom: \"\\f51a\";\n@fa-var-brush: \"\\f55d\";\n@fa-var-btc: \"\\f15a\";\n@fa-var-buffer: \"\\f837\";\n@fa-var-bug: \"\\f188\";\n@fa-var-building: \"\\f1ad\";\n@fa-var-bullhorn: \"\\f0a1\";\n@fa-var-bullseye: \"\\f140\";\n@fa-var-burn: \"\\f46a\";\n@fa-var-buromobelexperte: \"\\f37f\";\n@fa-var-bus: \"\\f207\";\n@fa-var-bus-alt: \"\\f55e\";\n@fa-var-business-time: \"\\f64a\";\n@fa-var-buysellads: \"\\f20d\";\n@fa-var-calculator: \"\\f1ec\";\n@fa-var-calendar: \"\\f133\";\n@fa-var-calendar-alt: \"\\f073\";\n@fa-var-calendar-check: \"\\f274\";\n@fa-var-calendar-day: \"\\f783\";\n@fa-var-calendar-minus: \"\\f272\";\n@fa-var-calendar-plus: \"\\f271\";\n@fa-var-calendar-times: \"\\f273\";\n@fa-var-calendar-week: \"\\f784\";\n@fa-var-camera: \"\\f030\";\n@fa-var-camera-retro: \"\\f083\";\n@fa-var-campground: \"\\f6bb\";\n@fa-var-canadian-maple-leaf: \"\\f785\";\n@fa-var-candy-cane: \"\\f786\";\n@fa-var-cannabis: \"\\f55f\";\n@fa-var-capsules: \"\\f46b\";\n@fa-var-car: \"\\f1b9\";\n@fa-var-car-alt: \"\\f5de\";\n@fa-var-car-battery: \"\\f5df\";\n@fa-var-car-crash: \"\\f5e1\";\n@fa-var-car-side: \"\\f5e4\";\n@fa-var-caret-down: \"\\f0d7\";\n@fa-var-caret-left: \"\\f0d9\";\n@fa-var-caret-right: \"\\f0da\";\n@fa-var-caret-square-down: \"\\f150\";\n@fa-var-caret-square-left: \"\\f191\";\n@fa-var-caret-square-right: \"\\f152\";\n@fa-var-caret-square-up: \"\\f151\";\n@fa-var-caret-up: \"\\f0d8\";\n@fa-var-carrot: \"\\f787\";\n@fa-var-cart-arrow-down: \"\\f218\";\n@fa-var-cart-plus: \"\\f217\";\n@fa-var-cash-register: \"\\f788\";\n@fa-var-cat: \"\\f6be\";\n@fa-var-cc-amazon-pay: \"\\f42d\";\n@fa-var-cc-amex: \"\\f1f3\";\n@fa-var-cc-apple-pay: \"\\f416\";\n@fa-var-cc-diners-club: \"\\f24c\";\n@fa-var-cc-discover: \"\\f1f2\";\n@fa-var-cc-jcb: \"\\f24b\";\n@fa-var-cc-mastercard: \"\\f1f1\";\n@fa-var-cc-paypal: \"\\f1f4\";\n@fa-var-cc-stripe: \"\\f1f5\";\n@fa-var-cc-visa: \"\\f1f0\";\n@fa-var-centercode: \"\\f380\";\n@fa-var-centos: \"\\f789\";\n@fa-var-certificate: \"\\f0a3\";\n@fa-var-chair: \"\\f6c0\";\n@fa-var-chalkboard: \"\\f51b\";\n@fa-var-chalkboard-teacher: \"\\f51c\";\n@fa-var-charging-station: \"\\f5e7\";\n@fa-var-chart-area: \"\\f1fe\";\n@fa-var-chart-bar: \"\\f080\";\n@fa-var-chart-line: \"\\f201\";\n@fa-var-chart-pie: \"\\f200\";\n@fa-var-check: \"\\f00c\";\n@fa-var-check-circle: \"\\f058\";\n@fa-var-check-double: \"\\f560\";\n@fa-var-check-square: \"\\f14a\";\n@fa-var-cheese: \"\\f7ef\";\n@fa-var-chess: \"\\f439\";\n@fa-var-chess-bishop: \"\\f43a\";\n@fa-var-chess-board: \"\\f43c\";\n@fa-var-chess-king: \"\\f43f\";\n@fa-var-chess-knight: \"\\f441\";\n@fa-var-chess-pawn: \"\\f443\";\n@fa-var-chess-queen: \"\\f445\";\n@fa-var-chess-rook: \"\\f447\";\n@fa-var-chevron-circle-down: \"\\f13a\";\n@fa-var-chevron-circle-left: \"\\f137\";\n@fa-var-chevron-circle-right: \"\\f138\";\n@fa-var-chevron-circle-up: \"\\f139\";\n@fa-var-chevron-down: \"\\f078\";\n@fa-var-chevron-left: \"\\f053\";\n@fa-var-chevron-right: \"\\f054\";\n@fa-var-chevron-up: \"\\f077\";\n@fa-var-child: \"\\f1ae\";\n@fa-var-chrome: \"\\f268\";\n@fa-var-chromecast: \"\\f838\";\n@fa-var-church: \"\\f51d\";\n@fa-var-circle: \"\\f111\";\n@fa-var-circle-notch: \"\\f1ce\";\n@fa-var-city: \"\\f64f\";\n@fa-var-clinic-medical: \"\\f7f2\";\n@fa-var-clipboard: \"\\f328\";\n@fa-var-clipboard-check: \"\\f46c\";\n@fa-var-clipboard-list: \"\\f46d\";\n@fa-var-clock: \"\\f017\";\n@fa-var-clone: \"\\f24d\";\n@fa-var-closed-captioning: \"\\f20a\";\n@fa-var-cloud: \"\\f0c2\";\n@fa-var-cloud-download-alt: \"\\f381\";\n@fa-var-cloud-meatball: \"\\f73b\";\n@fa-var-cloud-moon: \"\\f6c3\";\n@fa-var-cloud-moon-rain: \"\\f73c\";\n@fa-var-cloud-rain: \"\\f73d\";\n@fa-var-cloud-showers-heavy: \"\\f740\";\n@fa-var-cloud-sun: \"\\f6c4\";\n@fa-var-cloud-sun-rain: \"\\f743\";\n@fa-var-cloud-upload-alt: \"\\f382\";\n@fa-var-cloudscale: \"\\f383\";\n@fa-var-cloudsmith: \"\\f384\";\n@fa-var-cloudversify: \"\\f385\";\n@fa-var-cocktail: \"\\f561\";\n@fa-var-code: \"\\f121\";\n@fa-var-code-branch: \"\\f126\";\n@fa-var-codepen: \"\\f1cb\";\n@fa-var-codiepie: \"\\f284\";\n@fa-var-coffee: \"\\f0f4\";\n@fa-var-cog: \"\\f013\";\n@fa-var-cogs: \"\\f085\";\n@fa-var-coins: \"\\f51e\";\n@fa-var-columns: \"\\f0db\";\n@fa-var-comment: \"\\f075\";\n@fa-var-comment-alt: \"\\f27a\";\n@fa-var-comment-dollar: \"\\f651\";\n@fa-var-comment-dots: \"\\f4ad\";\n@fa-var-comment-medical: \"\\f7f5\";\n@fa-var-comment-slash: \"\\f4b3\";\n@fa-var-comments: \"\\f086\";\n@fa-var-comments-dollar: \"\\f653\";\n@fa-var-compact-disc: \"\\f51f\";\n@fa-var-compass: \"\\f14e\";\n@fa-var-compress: \"\\f066\";\n@fa-var-compress-arrows-alt: \"\\f78c\";\n@fa-var-concierge-bell: \"\\f562\";\n@fa-var-confluence: \"\\f78d\";\n@fa-var-connectdevelop: \"\\f20e\";\n@fa-var-contao: \"\\f26d\";\n@fa-var-cookie: \"\\f563\";\n@fa-var-cookie-bite: \"\\f564\";\n@fa-var-copy: \"\\f0c5\";\n@fa-var-copyright: \"\\f1f9\";\n@fa-var-cotton-bureau: \"\\f89e\";\n@fa-var-couch: \"\\f4b8\";\n@fa-var-cpanel: \"\\f388\";\n@fa-var-creative-commons: \"\\f25e\";\n@fa-var-creative-commons-by: \"\\f4e7\";\n@fa-var-creative-commons-nc: \"\\f4e8\";\n@fa-var-creative-commons-nc-eu: \"\\f4e9\";\n@fa-var-creative-commons-nc-jp: \"\\f4ea\";\n@fa-var-creative-commons-nd: \"\\f4eb\";\n@fa-var-creative-commons-pd: \"\\f4ec\";\n@fa-var-creative-commons-pd-alt: \"\\f4ed\";\n@fa-var-creative-commons-remix: \"\\f4ee\";\n@fa-var-creative-commons-sa: \"\\f4ef\";\n@fa-var-creative-commons-sampling: \"\\f4f0\";\n@fa-var-creative-commons-sampling-plus: \"\\f4f1\";\n@fa-var-creative-commons-share: \"\\f4f2\";\n@fa-var-creative-commons-zero: \"\\f4f3\";\n@fa-var-credit-card: \"\\f09d\";\n@fa-var-critical-role: \"\\f6c9\";\n@fa-var-crop: \"\\f125\";\n@fa-var-crop-alt: \"\\f565\";\n@fa-var-cross: \"\\f654\";\n@fa-var-crosshairs: \"\\f05b\";\n@fa-var-crow: \"\\f520\";\n@fa-var-crown: \"\\f521\";\n@fa-var-crutch: \"\\f7f7\";\n@fa-var-css3: \"\\f13c\";\n@fa-var-css3-alt: \"\\f38b\";\n@fa-var-cube: \"\\f1b2\";\n@fa-var-cubes: \"\\f1b3\";\n@fa-var-cut: \"\\f0c4\";\n@fa-var-cuttlefish: \"\\f38c\";\n@fa-var-d-and-d: \"\\f38d\";\n@fa-var-d-and-d-beyond: \"\\f6ca\";\n@fa-var-dashcube: \"\\f210\";\n@fa-var-database: \"\\f1c0\";\n@fa-var-deaf: \"\\f2a4\";\n@fa-var-delicious: \"\\f1a5\";\n@fa-var-democrat: \"\\f747\";\n@fa-var-deploydog: \"\\f38e\";\n@fa-var-deskpro: \"\\f38f\";\n@fa-var-desktop: \"\\f108\";\n@fa-var-dev: \"\\f6cc\";\n@fa-var-deviantart: \"\\f1bd\";\n@fa-var-dharmachakra: \"\\f655\";\n@fa-var-dhl: \"\\f790\";\n@fa-var-diagnoses: \"\\f470\";\n@fa-var-diaspora: \"\\f791\";\n@fa-var-dice: \"\\f522\";\n@fa-var-dice-d20: \"\\f6cf\";\n@fa-var-dice-d6: \"\\f6d1\";\n@fa-var-dice-five: \"\\f523\";\n@fa-var-dice-four: \"\\f524\";\n@fa-var-dice-one: \"\\f525\";\n@fa-var-dice-six: \"\\f526\";\n@fa-var-dice-three: \"\\f527\";\n@fa-var-dice-two: \"\\f528\";\n@fa-var-digg: \"\\f1a6\";\n@fa-var-digital-ocean: \"\\f391\";\n@fa-var-digital-tachograph: \"\\f566\";\n@fa-var-directions: \"\\f5eb\";\n@fa-var-discord: \"\\f392\";\n@fa-var-discourse: \"\\f393\";\n@fa-var-divide: \"\\f529\";\n@fa-var-dizzy: \"\\f567\";\n@fa-var-dna: \"\\f471\";\n@fa-var-dochub: \"\\f394\";\n@fa-var-docker: \"\\f395\";\n@fa-var-dog: \"\\f6d3\";\n@fa-var-dollar-sign: \"\\f155\";\n@fa-var-dolly: \"\\f472\";\n@fa-var-dolly-flatbed: \"\\f474\";\n@fa-var-donate: \"\\f4b9\";\n@fa-var-door-closed: \"\\f52a\";\n@fa-var-door-open: \"\\f52b\";\n@fa-var-dot-circle: \"\\f192\";\n@fa-var-dove: \"\\f4ba\";\n@fa-var-download: \"\\f019\";\n@fa-var-draft2digital: \"\\f396\";\n@fa-var-drafting-compass: \"\\f568\";\n@fa-var-dragon: \"\\f6d5\";\n@fa-var-draw-polygon: \"\\f5ee\";\n@fa-var-dribbble: \"\\f17d\";\n@fa-var-dribbble-square: \"\\f397\";\n@fa-var-dropbox: \"\\f16b\";\n@fa-var-drum: \"\\f569\";\n@fa-var-drum-steelpan: \"\\f56a\";\n@fa-var-drumstick-bite: \"\\f6d7\";\n@fa-var-drupal: \"\\f1a9\";\n@fa-var-dumbbell: \"\\f44b\";\n@fa-var-dumpster: \"\\f793\";\n@fa-var-dumpster-fire: \"\\f794\";\n@fa-var-dungeon: \"\\f6d9\";\n@fa-var-dyalog: \"\\f399\";\n@fa-var-earlybirds: \"\\f39a\";\n@fa-var-ebay: \"\\f4f4\";\n@fa-var-edge: \"\\f282\";\n@fa-var-edit: \"\\f044\";\n@fa-var-egg: \"\\f7fb\";\n@fa-var-eject: \"\\f052\";\n@fa-var-elementor: \"\\f430\";\n@fa-var-ellipsis-h: \"\\f141\";\n@fa-var-ellipsis-v: \"\\f142\";\n@fa-var-ello: \"\\f5f1\";\n@fa-var-ember: \"\\f423\";\n@fa-var-empire: \"\\f1d1\";\n@fa-var-envelope: \"\\f0e0\";\n@fa-var-envelope-open: \"\\f2b6\";\n@fa-var-envelope-open-text: \"\\f658\";\n@fa-var-envelope-square: \"\\f199\";\n@fa-var-envira: \"\\f299\";\n@fa-var-equals: \"\\f52c\";\n@fa-var-eraser: \"\\f12d\";\n@fa-var-erlang: \"\\f39d\";\n@fa-var-ethereum: \"\\f42e\";\n@fa-var-ethernet: \"\\f796\";\n@fa-var-etsy: \"\\f2d7\";\n@fa-var-euro-sign: \"\\f153\";\n@fa-var-evernote: \"\\f839\";\n@fa-var-exchange-alt: \"\\f362\";\n@fa-var-exclamation: \"\\f12a\";\n@fa-var-exclamation-circle: \"\\f06a\";\n@fa-var-exclamation-triangle: \"\\f071\";\n@fa-var-expand: \"\\f065\";\n@fa-var-expand-arrows-alt: \"\\f31e\";\n@fa-var-expeditedssl: \"\\f23e\";\n@fa-var-external-link-alt: \"\\f35d\";\n@fa-var-external-link-square-alt: \"\\f360\";\n@fa-var-eye: \"\\f06e\";\n@fa-var-eye-dropper: \"\\f1fb\";\n@fa-var-eye-slash: \"\\f070\";\n@fa-var-facebook: \"\\f09a\";\n@fa-var-facebook-f: \"\\f39e\";\n@fa-var-facebook-messenger: \"\\f39f\";\n@fa-var-facebook-square: \"\\f082\";\n@fa-var-fan: \"\\f863\";\n@fa-var-fantasy-flight-games: \"\\f6dc\";\n@fa-var-fast-backward: \"\\f049\";\n@fa-var-fast-forward: \"\\f050\";\n@fa-var-fax: \"\\f1ac\";\n@fa-var-feather: \"\\f52d\";\n@fa-var-feather-alt: \"\\f56b\";\n@fa-var-fedex: \"\\f797\";\n@fa-var-fedora: \"\\f798\";\n@fa-var-female: \"\\f182\";\n@fa-var-fighter-jet: \"\\f0fb\";\n@fa-var-figma: \"\\f799\";\n@fa-var-file: \"\\f15b\";\n@fa-var-file-alt: \"\\f15c\";\n@fa-var-file-archive: \"\\f1c6\";\n@fa-var-file-audio: \"\\f1c7\";\n@fa-var-file-code: \"\\f1c9\";\n@fa-var-file-contract: \"\\f56c\";\n@fa-var-file-csv: \"\\f6dd\";\n@fa-var-file-download: \"\\f56d\";\n@fa-var-file-excel: \"\\f1c3\";\n@fa-var-file-export: \"\\f56e\";\n@fa-var-file-image: \"\\f1c5\";\n@fa-var-file-import: \"\\f56f\";\n@fa-var-file-invoice: \"\\f570\";\n@fa-var-file-invoice-dollar: \"\\f571\";\n@fa-var-file-medical: \"\\f477\";\n@fa-var-file-medical-alt: \"\\f478\";\n@fa-var-file-pdf: \"\\f1c1\";\n@fa-var-file-powerpoint: \"\\f1c4\";\n@fa-var-file-prescription: \"\\f572\";\n@fa-var-file-signature: \"\\f573\";\n@fa-var-file-upload: \"\\f574\";\n@fa-var-file-video: \"\\f1c8\";\n@fa-var-file-word: \"\\f1c2\";\n@fa-var-fill: \"\\f575\";\n@fa-var-fill-drip: \"\\f576\";\n@fa-var-film: \"\\f008\";\n@fa-var-filter: \"\\f0b0\";\n@fa-var-fingerprint: \"\\f577\";\n@fa-var-fire: \"\\f06d\";\n@fa-var-fire-alt: \"\\f7e4\";\n@fa-var-fire-extinguisher: \"\\f134\";\n@fa-var-firefox: \"\\f269\";\n@fa-var-first-aid: \"\\f479\";\n@fa-var-first-order: \"\\f2b0\";\n@fa-var-first-order-alt: \"\\f50a\";\n@fa-var-firstdraft: \"\\f3a1\";\n@fa-var-fish: \"\\f578\";\n@fa-var-fist-raised: \"\\f6de\";\n@fa-var-flag: \"\\f024\";\n@fa-var-flag-checkered: \"\\f11e\";\n@fa-var-flag-usa: \"\\f74d\";\n@fa-var-flask: \"\\f0c3\";\n@fa-var-flickr: \"\\f16e\";\n@fa-var-flipboard: \"\\f44d\";\n@fa-var-flushed: \"\\f579\";\n@fa-var-fly: \"\\f417\";\n@fa-var-folder: \"\\f07b\";\n@fa-var-folder-minus: \"\\f65d\";\n@fa-var-folder-open: \"\\f07c\";\n@fa-var-folder-plus: \"\\f65e\";\n@fa-var-font: \"\\f031\";\n@fa-var-font-awesome: \"\\f2b4\";\n@fa-var-font-awesome-alt: \"\\f35c\";\n@fa-var-font-awesome-flag: \"\\f425\";\n@fa-var-font-awesome-logo-full: \"\\f4e6\";\n@fa-var-fonticons: \"\\f280\";\n@fa-var-fonticons-fi: \"\\f3a2\";\n@fa-var-football-ball: \"\\f44e\";\n@fa-var-fort-awesome: \"\\f286\";\n@fa-var-fort-awesome-alt: \"\\f3a3\";\n@fa-var-forumbee: \"\\f211\";\n@fa-var-forward: \"\\f04e\";\n@fa-var-foursquare: \"\\f180\";\n@fa-var-free-code-camp: \"\\f2c5\";\n@fa-var-freebsd: \"\\f3a4\";\n@fa-var-frog: \"\\f52e\";\n@fa-var-frown: \"\\f119\";\n@fa-var-frown-open: \"\\f57a\";\n@fa-var-fulcrum: \"\\f50b\";\n@fa-var-funnel-dollar: \"\\f662\";\n@fa-var-futbol: \"\\f1e3\";\n@fa-var-galactic-republic: \"\\f50c\";\n@fa-var-galactic-senate: \"\\f50d\";\n@fa-var-gamepad: \"\\f11b\";\n@fa-var-gas-pump: \"\\f52f\";\n@fa-var-gavel: \"\\f0e3\";\n@fa-var-gem: \"\\f3a5\";\n@fa-var-genderless: \"\\f22d\";\n@fa-var-get-pocket: \"\\f265\";\n@fa-var-gg: \"\\f260\";\n@fa-var-gg-circle: \"\\f261\";\n@fa-var-ghost: \"\\f6e2\";\n@fa-var-gift: \"\\f06b\";\n@fa-var-gifts: \"\\f79c\";\n@fa-var-git: \"\\f1d3\";\n@fa-var-git-alt: \"\\f841\";\n@fa-var-git-square: \"\\f1d2\";\n@fa-var-github: \"\\f09b\";\n@fa-var-github-alt: \"\\f113\";\n@fa-var-github-square: \"\\f092\";\n@fa-var-gitkraken: \"\\f3a6\";\n@fa-var-gitlab: \"\\f296\";\n@fa-var-gitter: \"\\f426\";\n@fa-var-glass-cheers: \"\\f79f\";\n@fa-var-glass-martini: \"\\f000\";\n@fa-var-glass-martini-alt: \"\\f57b\";\n@fa-var-glass-whiskey: \"\\f7a0\";\n@fa-var-glasses: \"\\f530\";\n@fa-var-glide: \"\\f2a5\";\n@fa-var-glide-g: \"\\f2a6\";\n@fa-var-globe: \"\\f0ac\";\n@fa-var-globe-africa: \"\\f57c\";\n@fa-var-globe-americas: \"\\f57d\";\n@fa-var-globe-asia: \"\\f57e\";\n@fa-var-globe-europe: \"\\f7a2\";\n@fa-var-gofore: \"\\f3a7\";\n@fa-var-golf-ball: \"\\f450\";\n@fa-var-goodreads: \"\\f3a8\";\n@fa-var-goodreads-g: \"\\f3a9\";\n@fa-var-google: \"\\f1a0\";\n@fa-var-google-drive: \"\\f3aa\";\n@fa-var-google-play: \"\\f3ab\";\n@fa-var-google-plus: \"\\f2b3\";\n@fa-var-google-plus-g: \"\\f0d5\";\n@fa-var-google-plus-square: \"\\f0d4\";\n@fa-var-google-wallet: \"\\f1ee\";\n@fa-var-gopuram: \"\\f664\";\n@fa-var-graduation-cap: \"\\f19d\";\n@fa-var-gratipay: \"\\f184\";\n@fa-var-grav: \"\\f2d6\";\n@fa-var-greater-than: \"\\f531\";\n@fa-var-greater-than-equal: \"\\f532\";\n@fa-var-grimace: \"\\f57f\";\n@fa-var-grin: \"\\f580\";\n@fa-var-grin-alt: \"\\f581\";\n@fa-var-grin-beam: \"\\f582\";\n@fa-var-grin-beam-sweat: \"\\f583\";\n@fa-var-grin-hearts: \"\\f584\";\n@fa-var-grin-squint: \"\\f585\";\n@fa-var-grin-squint-tears: \"\\f586\";\n@fa-var-grin-stars: \"\\f587\";\n@fa-var-grin-tears: \"\\f588\";\n@fa-var-grin-tongue: \"\\f589\";\n@fa-var-grin-tongue-squint: \"\\f58a\";\n@fa-var-grin-tongue-wink: \"\\f58b\";\n@fa-var-grin-wink: \"\\f58c\";\n@fa-var-grip-horizontal: \"\\f58d\";\n@fa-var-grip-lines: \"\\f7a4\";\n@fa-var-grip-lines-vertical: \"\\f7a5\";\n@fa-var-grip-vertical: \"\\f58e\";\n@fa-var-gripfire: \"\\f3ac\";\n@fa-var-grunt: \"\\f3ad\";\n@fa-var-guitar: \"\\f7a6\";\n@fa-var-gulp: \"\\f3ae\";\n@fa-var-h-square: \"\\f0fd\";\n@fa-var-hacker-news: \"\\f1d4\";\n@fa-var-hacker-news-square: \"\\f3af\";\n@fa-var-hackerrank: \"\\f5f7\";\n@fa-var-hamburger: \"\\f805\";\n@fa-var-hammer: \"\\f6e3\";\n@fa-var-hamsa: \"\\f665\";\n@fa-var-hand-holding: \"\\f4bd\";\n@fa-var-hand-holding-heart: \"\\f4be\";\n@fa-var-hand-holding-usd: \"\\f4c0\";\n@fa-var-hand-lizard: \"\\f258\";\n@fa-var-hand-middle-finger: \"\\f806\";\n@fa-var-hand-paper: \"\\f256\";\n@fa-var-hand-peace: \"\\f25b\";\n@fa-var-hand-point-down: \"\\f0a7\";\n@fa-var-hand-point-left: \"\\f0a5\";\n@fa-var-hand-point-right: \"\\f0a4\";\n@fa-var-hand-point-up: \"\\f0a6\";\n@fa-var-hand-pointer: \"\\f25a\";\n@fa-var-hand-rock: \"\\f255\";\n@fa-var-hand-scissors: \"\\f257\";\n@fa-var-hand-spock: \"\\f259\";\n@fa-var-hands: \"\\f4c2\";\n@fa-var-hands-helping: \"\\f4c4\";\n@fa-var-handshake: \"\\f2b5\";\n@fa-var-hanukiah: \"\\f6e6\";\n@fa-var-hard-hat: \"\\f807\";\n@fa-var-hashtag: \"\\f292\";\n@fa-var-hat-wizard: \"\\f6e8\";\n@fa-var-haykal: \"\\f666\";\n@fa-var-hdd: \"\\f0a0\";\n@fa-var-heading: \"\\f1dc\";\n@fa-var-headphones: \"\\f025\";\n@fa-var-headphones-alt: \"\\f58f\";\n@fa-var-headset: \"\\f590\";\n@fa-var-heart: \"\\f004\";\n@fa-var-heart-broken: \"\\f7a9\";\n@fa-var-heartbeat: \"\\f21e\";\n@fa-var-helicopter: \"\\f533\";\n@fa-var-highlighter: \"\\f591\";\n@fa-var-hiking: \"\\f6ec\";\n@fa-var-hippo: \"\\f6ed\";\n@fa-var-hips: \"\\f452\";\n@fa-var-hire-a-helper: \"\\f3b0\";\n@fa-var-history: \"\\f1da\";\n@fa-var-hockey-puck: \"\\f453\";\n@fa-var-holly-berry: \"\\f7aa\";\n@fa-var-home: \"\\f015\";\n@fa-var-hooli: \"\\f427\";\n@fa-var-hornbill: \"\\f592\";\n@fa-var-horse: \"\\f6f0\";\n@fa-var-horse-head: \"\\f7ab\";\n@fa-var-hospital: \"\\f0f8\";\n@fa-var-hospital-alt: \"\\f47d\";\n@fa-var-hospital-symbol: \"\\f47e\";\n@fa-var-hot-tub: \"\\f593\";\n@fa-var-hotdog: \"\\f80f\";\n@fa-var-hotel: \"\\f594\";\n@fa-var-hotjar: \"\\f3b1\";\n@fa-var-hourglass: \"\\f254\";\n@fa-var-hourglass-end: \"\\f253\";\n@fa-var-hourglass-half: \"\\f252\";\n@fa-var-hourglass-start: \"\\f251\";\n@fa-var-house-damage: \"\\f6f1\";\n@fa-var-houzz: \"\\f27c\";\n@fa-var-hryvnia: \"\\f6f2\";\n@fa-var-html5: \"\\f13b\";\n@fa-var-hubspot: \"\\f3b2\";\n@fa-var-i-cursor: \"\\f246\";\n@fa-var-ice-cream: \"\\f810\";\n@fa-var-icicles: \"\\f7ad\";\n@fa-var-icons: \"\\f86d\";\n@fa-var-id-badge: \"\\f2c1\";\n@fa-var-id-card: \"\\f2c2\";\n@fa-var-id-card-alt: \"\\f47f\";\n@fa-var-igloo: \"\\f7ae\";\n@fa-var-image: \"\\f03e\";\n@fa-var-images: \"\\f302\";\n@fa-var-imdb: \"\\f2d8\";\n@fa-var-inbox: \"\\f01c\";\n@fa-var-indent: \"\\f03c\";\n@fa-var-industry: \"\\f275\";\n@fa-var-infinity: \"\\f534\";\n@fa-var-info: \"\\f129\";\n@fa-var-info-circle: \"\\f05a\";\n@fa-var-instagram: \"\\f16d\";\n@fa-var-intercom: \"\\f7af\";\n@fa-var-internet-explorer: \"\\f26b\";\n@fa-var-invision: \"\\f7b0\";\n@fa-var-ioxhost: \"\\f208\";\n@fa-var-italic: \"\\f033\";\n@fa-var-itch-io: \"\\f83a\";\n@fa-var-itunes: \"\\f3b4\";\n@fa-var-itunes-note: \"\\f3b5\";\n@fa-var-java: \"\\f4e4\";\n@fa-var-jedi: \"\\f669\";\n@fa-var-jedi-order: \"\\f50e\";\n@fa-var-jenkins: \"\\f3b6\";\n@fa-var-jira: \"\\f7b1\";\n@fa-var-joget: \"\\f3b7\";\n@fa-var-joint: \"\\f595\";\n@fa-var-joomla: \"\\f1aa\";\n@fa-var-journal-whills: \"\\f66a\";\n@fa-var-js: \"\\f3b8\";\n@fa-var-js-square: \"\\f3b9\";\n@fa-var-jsfiddle: \"\\f1cc\";\n@fa-var-kaaba: \"\\f66b\";\n@fa-var-kaggle: \"\\f5fa\";\n@fa-var-key: \"\\f084\";\n@fa-var-keybase: \"\\f4f5\";\n@fa-var-keyboard: \"\\f11c\";\n@fa-var-keycdn: \"\\f3ba\";\n@fa-var-khanda: \"\\f66d\";\n@fa-var-kickstarter: \"\\f3bb\";\n@fa-var-kickstarter-k: \"\\f3bc\";\n@fa-var-kiss: \"\\f596\";\n@fa-var-kiss-beam: \"\\f597\";\n@fa-var-kiss-wink-heart: \"\\f598\";\n@fa-var-kiwi-bird: \"\\f535\";\n@fa-var-korvue: \"\\f42f\";\n@fa-var-landmark: \"\\f66f\";\n@fa-var-language: \"\\f1ab\";\n@fa-var-laptop: \"\\f109\";\n@fa-var-laptop-code: \"\\f5fc\";\n@fa-var-laptop-medical: \"\\f812\";\n@fa-var-laravel: \"\\f3bd\";\n@fa-var-lastfm: \"\\f202\";\n@fa-var-lastfm-square: \"\\f203\";\n@fa-var-laugh: \"\\f599\";\n@fa-var-laugh-beam: \"\\f59a\";\n@fa-var-laugh-squint: \"\\f59b\";\n@fa-var-laugh-wink: \"\\f59c\";\n@fa-var-layer-group: \"\\f5fd\";\n@fa-var-leaf: \"\\f06c\";\n@fa-var-leanpub: \"\\f212\";\n@fa-var-lemon: \"\\f094\";\n@fa-var-less: \"\\f41d\";\n@fa-var-less-than: \"\\f536\";\n@fa-var-less-than-equal: \"\\f537\";\n@fa-var-level-down-alt: \"\\f3be\";\n@fa-var-level-up-alt: \"\\f3bf\";\n@fa-var-life-ring: \"\\f1cd\";\n@fa-var-lightbulb: \"\\f0eb\";\n@fa-var-line: \"\\f3c0\";\n@fa-var-link: \"\\f0c1\";\n@fa-var-linkedin: \"\\f08c\";\n@fa-var-linkedin-in: \"\\f0e1\";\n@fa-var-linode: \"\\f2b8\";\n@fa-var-linux: \"\\f17c\";\n@fa-var-lira-sign: \"\\f195\";\n@fa-var-list: \"\\f03a\";\n@fa-var-list-alt: \"\\f022\";\n@fa-var-list-ol: \"\\f0cb\";\n@fa-var-list-ul: \"\\f0ca\";\n@fa-var-location-arrow: \"\\f124\";\n@fa-var-lock: \"\\f023\";\n@fa-var-lock-open: \"\\f3c1\";\n@fa-var-long-arrow-alt-down: \"\\f309\";\n@fa-var-long-arrow-alt-left: \"\\f30a\";\n@fa-var-long-arrow-alt-right: \"\\f30b\";\n@fa-var-long-arrow-alt-up: \"\\f30c\";\n@fa-var-low-vision: \"\\f2a8\";\n@fa-var-luggage-cart: \"\\f59d\";\n@fa-var-lyft: \"\\f3c3\";\n@fa-var-magento: \"\\f3c4\";\n@fa-var-magic: \"\\f0d0\";\n@fa-var-magnet: \"\\f076\";\n@fa-var-mail-bulk: \"\\f674\";\n@fa-var-mailchimp: \"\\f59e\";\n@fa-var-male: \"\\f183\";\n@fa-var-mandalorian: \"\\f50f\";\n@fa-var-map: \"\\f279\";\n@fa-var-map-marked: \"\\f59f\";\n@fa-var-map-marked-alt: \"\\f5a0\";\n@fa-var-map-marker: \"\\f041\";\n@fa-var-map-marker-alt: \"\\f3c5\";\n@fa-var-map-pin: \"\\f276\";\n@fa-var-map-signs: \"\\f277\";\n@fa-var-markdown: \"\\f60f\";\n@fa-var-marker: \"\\f5a1\";\n@fa-var-mars: \"\\f222\";\n@fa-var-mars-double: \"\\f227\";\n@fa-var-mars-stroke: \"\\f229\";\n@fa-var-mars-stroke-h: \"\\f22b\";\n@fa-var-mars-stroke-v: \"\\f22a\";\n@fa-var-mask: \"\\f6fa\";\n@fa-var-mastodon: \"\\f4f6\";\n@fa-var-maxcdn: \"\\f136\";\n@fa-var-medal: \"\\f5a2\";\n@fa-var-medapps: \"\\f3c6\";\n@fa-var-medium: \"\\f23a\";\n@fa-var-medium-m: \"\\f3c7\";\n@fa-var-medkit: \"\\f0fa\";\n@fa-var-medrt: \"\\f3c8\";\n@fa-var-meetup: \"\\f2e0\";\n@fa-var-megaport: \"\\f5a3\";\n@fa-var-meh: \"\\f11a\";\n@fa-var-meh-blank: \"\\f5a4\";\n@fa-var-meh-rolling-eyes: \"\\f5a5\";\n@fa-var-memory: \"\\f538\";\n@fa-var-mendeley: \"\\f7b3\";\n@fa-var-menorah: \"\\f676\";\n@fa-var-mercury: \"\\f223\";\n@fa-var-meteor: \"\\f753\";\n@fa-var-microchip: \"\\f2db\";\n@fa-var-microphone: \"\\f130\";\n@fa-var-microphone-alt: \"\\f3c9\";\n@fa-var-microphone-alt-slash: \"\\f539\";\n@fa-var-microphone-slash: \"\\f131\";\n@fa-var-microscope: \"\\f610\";\n@fa-var-microsoft: \"\\f3ca\";\n@fa-var-minus: \"\\f068\";\n@fa-var-minus-circle: \"\\f056\";\n@fa-var-minus-square: \"\\f146\";\n@fa-var-mitten: \"\\f7b5\";\n@fa-var-mix: \"\\f3cb\";\n@fa-var-mixcloud: \"\\f289\";\n@fa-var-mizuni: \"\\f3cc\";\n@fa-var-mobile: \"\\f10b\";\n@fa-var-mobile-alt: \"\\f3cd\";\n@fa-var-modx: \"\\f285\";\n@fa-var-monero: \"\\f3d0\";\n@fa-var-money-bill: \"\\f0d6\";\n@fa-var-money-bill-alt: \"\\f3d1\";\n@fa-var-money-bill-wave: \"\\f53a\";\n@fa-var-money-bill-wave-alt: \"\\f53b\";\n@fa-var-money-check: \"\\f53c\";\n@fa-var-money-check-alt: \"\\f53d\";\n@fa-var-monument: \"\\f5a6\";\n@fa-var-moon: \"\\f186\";\n@fa-var-mortar-pestle: \"\\f5a7\";\n@fa-var-mosque: \"\\f678\";\n@fa-var-motorcycle: \"\\f21c\";\n@fa-var-mountain: \"\\f6fc\";\n@fa-var-mouse-pointer: \"\\f245\";\n@fa-var-mug-hot: \"\\f7b6\";\n@fa-var-music: \"\\f001\";\n@fa-var-napster: \"\\f3d2\";\n@fa-var-neos: \"\\f612\";\n@fa-var-network-wired: \"\\f6ff\";\n@fa-var-neuter: \"\\f22c\";\n@fa-var-newspaper: \"\\f1ea\";\n@fa-var-nimblr: \"\\f5a8\";\n@fa-var-node: \"\\f419\";\n@fa-var-node-js: \"\\f3d3\";\n@fa-var-not-equal: \"\\f53e\";\n@fa-var-notes-medical: \"\\f481\";\n@fa-var-npm: \"\\f3d4\";\n@fa-var-ns8: \"\\f3d5\";\n@fa-var-nutritionix: \"\\f3d6\";\n@fa-var-object-group: \"\\f247\";\n@fa-var-object-ungroup: \"\\f248\";\n@fa-var-odnoklassniki: \"\\f263\";\n@fa-var-odnoklassniki-square: \"\\f264\";\n@fa-var-oil-can: \"\\f613\";\n@fa-var-old-republic: \"\\f510\";\n@fa-var-om: \"\\f679\";\n@fa-var-opencart: \"\\f23d\";\n@fa-var-openid: \"\\f19b\";\n@fa-var-opera: \"\\f26a\";\n@fa-var-optin-monster: \"\\f23c\";\n@fa-var-osi: \"\\f41a\";\n@fa-var-otter: \"\\f700\";\n@fa-var-outdent: \"\\f03b\";\n@fa-var-page4: \"\\f3d7\";\n@fa-var-pagelines: \"\\f18c\";\n@fa-var-pager: \"\\f815\";\n@fa-var-paint-brush: \"\\f1fc\";\n@fa-var-paint-roller: \"\\f5aa\";\n@fa-var-palette: \"\\f53f\";\n@fa-var-palfed: \"\\f3d8\";\n@fa-var-pallet: \"\\f482\";\n@fa-var-paper-plane: \"\\f1d8\";\n@fa-var-paperclip: \"\\f0c6\";\n@fa-var-parachute-box: \"\\f4cd\";\n@fa-var-paragraph: \"\\f1dd\";\n@fa-var-parking: \"\\f540\";\n@fa-var-passport: \"\\f5ab\";\n@fa-var-pastafarianism: \"\\f67b\";\n@fa-var-paste: \"\\f0ea\";\n@fa-var-patreon: \"\\f3d9\";\n@fa-var-pause: \"\\f04c\";\n@fa-var-pause-circle: \"\\f28b\";\n@fa-var-paw: \"\\f1b0\";\n@fa-var-paypal: \"\\f1ed\";\n@fa-var-peace: \"\\f67c\";\n@fa-var-pen: \"\\f304\";\n@fa-var-pen-alt: \"\\f305\";\n@fa-var-pen-fancy: \"\\f5ac\";\n@fa-var-pen-nib: \"\\f5ad\";\n@fa-var-pen-square: \"\\f14b\";\n@fa-var-pencil-alt: \"\\f303\";\n@fa-var-pencil-ruler: \"\\f5ae\";\n@fa-var-penny-arcade: \"\\f704\";\n@fa-var-people-carry: \"\\f4ce\";\n@fa-var-pepper-hot: \"\\f816\";\n@fa-var-percent: \"\\f295\";\n@fa-var-percentage: \"\\f541\";\n@fa-var-periscope: \"\\f3da\";\n@fa-var-person-booth: \"\\f756\";\n@fa-var-phabricator: \"\\f3db\";\n@fa-var-phoenix-framework: \"\\f3dc\";\n@fa-var-phoenix-squadron: \"\\f511\";\n@fa-var-phone: \"\\f095\";\n@fa-var-phone-alt: \"\\f879\";\n@fa-var-phone-slash: \"\\f3dd\";\n@fa-var-phone-square: \"\\f098\";\n@fa-var-phone-square-alt: \"\\f87b\";\n@fa-var-phone-volume: \"\\f2a0\";\n@fa-var-photo-video: \"\\f87c\";\n@fa-var-php: \"\\f457\";\n@fa-var-pied-piper: \"\\f2ae\";\n@fa-var-pied-piper-alt: \"\\f1a8\";\n@fa-var-pied-piper-hat: \"\\f4e5\";\n@fa-var-pied-piper-pp: \"\\f1a7\";\n@fa-var-piggy-bank: \"\\f4d3\";\n@fa-var-pills: \"\\f484\";\n@fa-var-pinterest: \"\\f0d2\";\n@fa-var-pinterest-p: \"\\f231\";\n@fa-var-pinterest-square: \"\\f0d3\";\n@fa-var-pizza-slice: \"\\f818\";\n@fa-var-place-of-worship: \"\\f67f\";\n@fa-var-plane: \"\\f072\";\n@fa-var-plane-arrival: \"\\f5af\";\n@fa-var-plane-departure: \"\\f5b0\";\n@fa-var-play: \"\\f04b\";\n@fa-var-play-circle: \"\\f144\";\n@fa-var-playstation: \"\\f3df\";\n@fa-var-plug: \"\\f1e6\";\n@fa-var-plus: \"\\f067\";\n@fa-var-plus-circle: \"\\f055\";\n@fa-var-plus-square: \"\\f0fe\";\n@fa-var-podcast: \"\\f2ce\";\n@fa-var-poll: \"\\f681\";\n@fa-var-poll-h: \"\\f682\";\n@fa-var-poo: \"\\f2fe\";\n@fa-var-poo-storm: \"\\f75a\";\n@fa-var-poop: \"\\f619\";\n@fa-var-portrait: \"\\f3e0\";\n@fa-var-pound-sign: \"\\f154\";\n@fa-var-power-off: \"\\f011\";\n@fa-var-pray: \"\\f683\";\n@fa-var-praying-hands: \"\\f684\";\n@fa-var-prescription: \"\\f5b1\";\n@fa-var-prescription-bottle: \"\\f485\";\n@fa-var-prescription-bottle-alt: \"\\f486\";\n@fa-var-print: \"\\f02f\";\n@fa-var-procedures: \"\\f487\";\n@fa-var-product-hunt: \"\\f288\";\n@fa-var-project-diagram: \"\\f542\";\n@fa-var-pushed: \"\\f3e1\";\n@fa-var-puzzle-piece: \"\\f12e\";\n@fa-var-python: \"\\f3e2\";\n@fa-var-qq: \"\\f1d6\";\n@fa-var-qrcode: \"\\f029\";\n@fa-var-question: \"\\f128\";\n@fa-var-question-circle: \"\\f059\";\n@fa-var-quidditch: \"\\f458\";\n@fa-var-quinscape: \"\\f459\";\n@fa-var-quora: \"\\f2c4\";\n@fa-var-quote-left: \"\\f10d\";\n@fa-var-quote-right: \"\\f10e\";\n@fa-var-quran: \"\\f687\";\n@fa-var-r-project: \"\\f4f7\";\n@fa-var-radiation: \"\\f7b9\";\n@fa-var-radiation-alt: \"\\f7ba\";\n@fa-var-rainbow: \"\\f75b\";\n@fa-var-random: \"\\f074\";\n@fa-var-raspberry-pi: \"\\f7bb\";\n@fa-var-ravelry: \"\\f2d9\";\n@fa-var-react: \"\\f41b\";\n@fa-var-reacteurope: \"\\f75d\";\n@fa-var-readme: \"\\f4d5\";\n@fa-var-rebel: \"\\f1d0\";\n@fa-var-receipt: \"\\f543\";\n@fa-var-recycle: \"\\f1b8\";\n@fa-var-red-river: \"\\f3e3\";\n@fa-var-reddit: \"\\f1a1\";\n@fa-var-reddit-alien: \"\\f281\";\n@fa-var-reddit-square: \"\\f1a2\";\n@fa-var-redhat: \"\\f7bc\";\n@fa-var-redo: \"\\f01e\";\n@fa-var-redo-alt: \"\\f2f9\";\n@fa-var-registered: \"\\f25d\";\n@fa-var-remove-format: \"\\f87d\";\n@fa-var-renren: \"\\f18b\";\n@fa-var-reply: \"\\f3e5\";\n@fa-var-reply-all: \"\\f122\";\n@fa-var-replyd: \"\\f3e6\";\n@fa-var-republican: \"\\f75e\";\n@fa-var-researchgate: \"\\f4f8\";\n@fa-var-resolving: \"\\f3e7\";\n@fa-var-restroom: \"\\f7bd\";\n@fa-var-retweet: \"\\f079\";\n@fa-var-rev: \"\\f5b2\";\n@fa-var-ribbon: \"\\f4d6\";\n@fa-var-ring: \"\\f70b\";\n@fa-var-road: \"\\f018\";\n@fa-var-robot: \"\\f544\";\n@fa-var-rocket: \"\\f135\";\n@fa-var-rocketchat: \"\\f3e8\";\n@fa-var-rockrms: \"\\f3e9\";\n@fa-var-route: \"\\f4d7\";\n@fa-var-rss: \"\\f09e\";\n@fa-var-rss-square: \"\\f143\";\n@fa-var-ruble-sign: \"\\f158\";\n@fa-var-ruler: \"\\f545\";\n@fa-var-ruler-combined: \"\\f546\";\n@fa-var-ruler-horizontal: \"\\f547\";\n@fa-var-ruler-vertical: \"\\f548\";\n@fa-var-running: \"\\f70c\";\n@fa-var-rupee-sign: \"\\f156\";\n@fa-var-sad-cry: \"\\f5b3\";\n@fa-var-sad-tear: \"\\f5b4\";\n@fa-var-safari: \"\\f267\";\n@fa-var-salesforce: \"\\f83b\";\n@fa-var-sass: \"\\f41e\";\n@fa-var-satellite: \"\\f7bf\";\n@fa-var-satellite-dish: \"\\f7c0\";\n@fa-var-save: \"\\f0c7\";\n@fa-var-schlix: \"\\f3ea\";\n@fa-var-school: \"\\f549\";\n@fa-var-screwdriver: \"\\f54a\";\n@fa-var-scribd: \"\\f28a\";\n@fa-var-scroll: \"\\f70e\";\n@fa-var-sd-card: \"\\f7c2\";\n@fa-var-search: \"\\f002\";\n@fa-var-search-dollar: \"\\f688\";\n@fa-var-search-location: \"\\f689\";\n@fa-var-search-minus: \"\\f010\";\n@fa-var-search-plus: \"\\f00e\";\n@fa-var-searchengin: \"\\f3eb\";\n@fa-var-seedling: \"\\f4d8\";\n@fa-var-sellcast: \"\\f2da\";\n@fa-var-sellsy: \"\\f213\";\n@fa-var-server: \"\\f233\";\n@fa-var-servicestack: \"\\f3ec\";\n@fa-var-shapes: \"\\f61f\";\n@fa-var-share: \"\\f064\";\n@fa-var-share-alt: \"\\f1e0\";\n@fa-var-share-alt-square: \"\\f1e1\";\n@fa-var-share-square: \"\\f14d\";\n@fa-var-shekel-sign: \"\\f20b\";\n@fa-var-shield-alt: \"\\f3ed\";\n@fa-var-ship: \"\\f21a\";\n@fa-var-shipping-fast: \"\\f48b\";\n@fa-var-shirtsinbulk: \"\\f214\";\n@fa-var-shoe-prints: \"\\f54b\";\n@fa-var-shopping-bag: \"\\f290\";\n@fa-var-shopping-basket: \"\\f291\";\n@fa-var-shopping-cart: \"\\f07a\";\n@fa-var-shopware: \"\\f5b5\";\n@fa-var-shower: \"\\f2cc\";\n@fa-var-shuttle-van: \"\\f5b6\";\n@fa-var-sign: \"\\f4d9\";\n@fa-var-sign-in-alt: \"\\f2f6\";\n@fa-var-sign-language: \"\\f2a7\";\n@fa-var-sign-out-alt: \"\\f2f5\";\n@fa-var-signal: \"\\f012\";\n@fa-var-signature: \"\\f5b7\";\n@fa-var-sim-card: \"\\f7c4\";\n@fa-var-simplybuilt: \"\\f215\";\n@fa-var-sistrix: \"\\f3ee\";\n@fa-var-sitemap: \"\\f0e8\";\n@fa-var-sith: \"\\f512\";\n@fa-var-skating: \"\\f7c5\";\n@fa-var-sketch: \"\\f7c6\";\n@fa-var-skiing: \"\\f7c9\";\n@fa-var-skiing-nordic: \"\\f7ca\";\n@fa-var-skull: \"\\f54c\";\n@fa-var-skull-crossbones: \"\\f714\";\n@fa-var-skyatlas: \"\\f216\";\n@fa-var-skype: \"\\f17e\";\n@fa-var-slack: \"\\f198\";\n@fa-var-slack-hash: \"\\f3ef\";\n@fa-var-slash: \"\\f715\";\n@fa-var-sleigh: \"\\f7cc\";\n@fa-var-sliders-h: \"\\f1de\";\n@fa-var-slideshare: \"\\f1e7\";\n@fa-var-smile: \"\\f118\";\n@fa-var-smile-beam: \"\\f5b8\";\n@fa-var-smile-wink: \"\\f4da\";\n@fa-var-smog: \"\\f75f\";\n@fa-var-smoking: \"\\f48d\";\n@fa-var-smoking-ban: \"\\f54d\";\n@fa-var-sms: \"\\f7cd\";\n@fa-var-snapchat: \"\\f2ab\";\n@fa-var-snapchat-ghost: \"\\f2ac\";\n@fa-var-snapchat-square: \"\\f2ad\";\n@fa-var-snowboarding: \"\\f7ce\";\n@fa-var-snowflake: \"\\f2dc\";\n@fa-var-snowman: \"\\f7d0\";\n@fa-var-snowplow: \"\\f7d2\";\n@fa-var-socks: \"\\f696\";\n@fa-var-solar-panel: \"\\f5ba\";\n@fa-var-sort: \"\\f0dc\";\n@fa-var-sort-alpha-down: \"\\f15d\";\n@fa-var-sort-alpha-down-alt: \"\\f881\";\n@fa-var-sort-alpha-up: \"\\f15e\";\n@fa-var-sort-alpha-up-alt: \"\\f882\";\n@fa-var-sort-amount-down: \"\\f160\";\n@fa-var-sort-amount-down-alt: \"\\f884\";\n@fa-var-sort-amount-up: \"\\f161\";\n@fa-var-sort-amount-up-alt: \"\\f885\";\n@fa-var-sort-down: \"\\f0dd\";\n@fa-var-sort-numeric-down: \"\\f162\";\n@fa-var-sort-numeric-down-alt: \"\\f886\";\n@fa-var-sort-numeric-up: \"\\f163\";\n@fa-var-sort-numeric-up-alt: \"\\f887\";\n@fa-var-sort-up: \"\\f0de\";\n@fa-var-soundcloud: \"\\f1be\";\n@fa-var-sourcetree: \"\\f7d3\";\n@fa-var-spa: \"\\f5bb\";\n@fa-var-space-shuttle: \"\\f197\";\n@fa-var-speakap: \"\\f3f3\";\n@fa-var-speaker-deck: \"\\f83c\";\n@fa-var-spell-check: \"\\f891\";\n@fa-var-spider: \"\\f717\";\n@fa-var-spinner: \"\\f110\";\n@fa-var-splotch: \"\\f5bc\";\n@fa-var-spotify: \"\\f1bc\";\n@fa-var-spray-can: \"\\f5bd\";\n@fa-var-square: \"\\f0c8\";\n@fa-var-square-full: \"\\f45c\";\n@fa-var-square-root-alt: \"\\f698\";\n@fa-var-squarespace: \"\\f5be\";\n@fa-var-stack-exchange: \"\\f18d\";\n@fa-var-stack-overflow: \"\\f16c\";\n@fa-var-stackpath: \"\\f842\";\n@fa-var-stamp: \"\\f5bf\";\n@fa-var-star: \"\\f005\";\n@fa-var-star-and-crescent: \"\\f699\";\n@fa-var-star-half: \"\\f089\";\n@fa-var-star-half-alt: \"\\f5c0\";\n@fa-var-star-of-david: \"\\f69a\";\n@fa-var-star-of-life: \"\\f621\";\n@fa-var-staylinked: \"\\f3f5\";\n@fa-var-steam: \"\\f1b6\";\n@fa-var-steam-square: \"\\f1b7\";\n@fa-var-steam-symbol: \"\\f3f6\";\n@fa-var-step-backward: \"\\f048\";\n@fa-var-step-forward: \"\\f051\";\n@fa-var-stethoscope: \"\\f0f1\";\n@fa-var-sticker-mule: \"\\f3f7\";\n@fa-var-sticky-note: \"\\f249\";\n@fa-var-stop: \"\\f04d\";\n@fa-var-stop-circle: \"\\f28d\";\n@fa-var-stopwatch: \"\\f2f2\";\n@fa-var-store: \"\\f54e\";\n@fa-var-store-alt: \"\\f54f\";\n@fa-var-strava: \"\\f428\";\n@fa-var-stream: \"\\f550\";\n@fa-var-street-view: \"\\f21d\";\n@fa-var-strikethrough: \"\\f0cc\";\n@fa-var-stripe: \"\\f429\";\n@fa-var-stripe-s: \"\\f42a\";\n@fa-var-stroopwafel: \"\\f551\";\n@fa-var-studiovinari: \"\\f3f8\";\n@fa-var-stumbleupon: \"\\f1a4\";\n@fa-var-stumbleupon-circle: \"\\f1a3\";\n@fa-var-subscript: \"\\f12c\";\n@fa-var-subway: \"\\f239\";\n@fa-var-suitcase: \"\\f0f2\";\n@fa-var-suitcase-rolling: \"\\f5c1\";\n@fa-var-sun: \"\\f185\";\n@fa-var-superpowers: \"\\f2dd\";\n@fa-var-superscript: \"\\f12b\";\n@fa-var-supple: \"\\f3f9\";\n@fa-var-surprise: \"\\f5c2\";\n@fa-var-suse: \"\\f7d6\";\n@fa-var-swatchbook: \"\\f5c3\";\n@fa-var-swimmer: \"\\f5c4\";\n@fa-var-swimming-pool: \"\\f5c5\";\n@fa-var-symfony: \"\\f83d\";\n@fa-var-synagogue: \"\\f69b\";\n@fa-var-sync: \"\\f021\";\n@fa-var-sync-alt: \"\\f2f1\";\n@fa-var-syringe: \"\\f48e\";\n@fa-var-table: \"\\f0ce\";\n@fa-var-table-tennis: \"\\f45d\";\n@fa-var-tablet: \"\\f10a\";\n@fa-var-tablet-alt: \"\\f3fa\";\n@fa-var-tablets: \"\\f490\";\n@fa-var-tachometer-alt: \"\\f3fd\";\n@fa-var-tag: \"\\f02b\";\n@fa-var-tags: \"\\f02c\";\n@fa-var-tape: \"\\f4db\";\n@fa-var-tasks: \"\\f0ae\";\n@fa-var-taxi: \"\\f1ba\";\n@fa-var-teamspeak: \"\\f4f9\";\n@fa-var-teeth: \"\\f62e\";\n@fa-var-teeth-open: \"\\f62f\";\n@fa-var-telegram: \"\\f2c6\";\n@fa-var-telegram-plane: \"\\f3fe\";\n@fa-var-temperature-high: \"\\f769\";\n@fa-var-temperature-low: \"\\f76b\";\n@fa-var-tencent-weibo: \"\\f1d5\";\n@fa-var-tenge: \"\\f7d7\";\n@fa-var-terminal: \"\\f120\";\n@fa-var-text-height: \"\\f034\";\n@fa-var-text-width: \"\\f035\";\n@fa-var-th: \"\\f00a\";\n@fa-var-th-large: \"\\f009\";\n@fa-var-th-list: \"\\f00b\";\n@fa-var-the-red-yeti: \"\\f69d\";\n@fa-var-theater-masks: \"\\f630\";\n@fa-var-themeco: \"\\f5c6\";\n@fa-var-themeisle: \"\\f2b2\";\n@fa-var-thermometer: \"\\f491\";\n@fa-var-thermometer-empty: \"\\f2cb\";\n@fa-var-thermometer-full: \"\\f2c7\";\n@fa-var-thermometer-half: \"\\f2c9\";\n@fa-var-thermometer-quarter: \"\\f2ca\";\n@fa-var-thermometer-three-quarters: \"\\f2c8\";\n@fa-var-think-peaks: \"\\f731\";\n@fa-var-thumbs-down: \"\\f165\";\n@fa-var-thumbs-up: \"\\f164\";\n@fa-var-thumbtack: \"\\f08d\";\n@fa-var-ticket-alt: \"\\f3ff\";\n@fa-var-times: \"\\f00d\";\n@fa-var-times-circle: \"\\f057\";\n@fa-var-tint: \"\\f043\";\n@fa-var-tint-slash: \"\\f5c7\";\n@fa-var-tired: \"\\f5c8\";\n@fa-var-toggle-off: \"\\f204\";\n@fa-var-toggle-on: \"\\f205\";\n@fa-var-toilet: \"\\f7d8\";\n@fa-var-toilet-paper: \"\\f71e\";\n@fa-var-toolbox: \"\\f552\";\n@fa-var-tools: \"\\f7d9\";\n@fa-var-tooth: \"\\f5c9\";\n@fa-var-torah: \"\\f6a0\";\n@fa-var-torii-gate: \"\\f6a1\";\n@fa-var-tractor: \"\\f722\";\n@fa-var-trade-federation: \"\\f513\";\n@fa-var-trademark: \"\\f25c\";\n@fa-var-traffic-light: \"\\f637\";\n@fa-var-train: \"\\f238\";\n@fa-var-tram: \"\\f7da\";\n@fa-var-transgender: \"\\f224\";\n@fa-var-transgender-alt: \"\\f225\";\n@fa-var-trash: \"\\f1f8\";\n@fa-var-trash-alt: \"\\f2ed\";\n@fa-var-trash-restore: \"\\f829\";\n@fa-var-trash-restore-alt: \"\\f82a\";\n@fa-var-tree: \"\\f1bb\";\n@fa-var-trello: \"\\f181\";\n@fa-var-tripadvisor: \"\\f262\";\n@fa-var-trophy: \"\\f091\";\n@fa-var-truck: \"\\f0d1\";\n@fa-var-truck-loading: \"\\f4de\";\n@fa-var-truck-monster: \"\\f63b\";\n@fa-var-truck-moving: \"\\f4df\";\n@fa-var-truck-pickup: \"\\f63c\";\n@fa-var-tshirt: \"\\f553\";\n@fa-var-tty: \"\\f1e4\";\n@fa-var-tumblr: \"\\f173\";\n@fa-var-tumblr-square: \"\\f174\";\n@fa-var-tv: \"\\f26c\";\n@fa-var-twitch: \"\\f1e8\";\n@fa-var-twitter: \"\\f099\";\n@fa-var-twitter-square: \"\\f081\";\n@fa-var-typo3: \"\\f42b\";\n@fa-var-uber: \"\\f402\";\n@fa-var-ubuntu: \"\\f7df\";\n@fa-var-uikit: \"\\f403\";\n@fa-var-umbrella: \"\\f0e9\";\n@fa-var-umbrella-beach: \"\\f5ca\";\n@fa-var-underline: \"\\f0cd\";\n@fa-var-undo: \"\\f0e2\";\n@fa-var-undo-alt: \"\\f2ea\";\n@fa-var-uniregistry: \"\\f404\";\n@fa-var-universal-access: \"\\f29a\";\n@fa-var-university: \"\\f19c\";\n@fa-var-unlink: \"\\f127\";\n@fa-var-unlock: \"\\f09c\";\n@fa-var-unlock-alt: \"\\f13e\";\n@fa-var-untappd: \"\\f405\";\n@fa-var-upload: \"\\f093\";\n@fa-var-ups: \"\\f7e0\";\n@fa-var-usb: \"\\f287\";\n@fa-var-user: \"\\f007\";\n@fa-var-user-alt: \"\\f406\";\n@fa-var-user-alt-slash: \"\\f4fa\";\n@fa-var-user-astronaut: \"\\f4fb\";\n@fa-var-user-check: \"\\f4fc\";\n@fa-var-user-circle: \"\\f2bd\";\n@fa-var-user-clock: \"\\f4fd\";\n@fa-var-user-cog: \"\\f4fe\";\n@fa-var-user-edit: \"\\f4ff\";\n@fa-var-user-friends: \"\\f500\";\n@fa-var-user-graduate: \"\\f501\";\n@fa-var-user-injured: \"\\f728\";\n@fa-var-user-lock: \"\\f502\";\n@fa-var-user-md: \"\\f0f0\";\n@fa-var-user-minus: \"\\f503\";\n@fa-var-user-ninja: \"\\f504\";\n@fa-var-user-nurse: \"\\f82f\";\n@fa-var-user-plus: \"\\f234\";\n@fa-var-user-secret: \"\\f21b\";\n@fa-var-user-shield: \"\\f505\";\n@fa-var-user-slash: \"\\f506\";\n@fa-var-user-tag: \"\\f507\";\n@fa-var-user-tie: \"\\f508\";\n@fa-var-user-times: \"\\f235\";\n@fa-var-users: \"\\f0c0\";\n@fa-var-users-cog: \"\\f509\";\n@fa-var-usps: \"\\f7e1\";\n@fa-var-ussunnah: \"\\f407\";\n@fa-var-utensil-spoon: \"\\f2e5\";\n@fa-var-utensils: \"\\f2e7\";\n@fa-var-vaadin: \"\\f408\";\n@fa-var-vector-square: \"\\f5cb\";\n@fa-var-venus: \"\\f221\";\n@fa-var-venus-double: \"\\f226\";\n@fa-var-venus-mars: \"\\f228\";\n@fa-var-viacoin: \"\\f237\";\n@fa-var-viadeo: \"\\f2a9\";\n@fa-var-viadeo-square: \"\\f2aa\";\n@fa-var-vial: \"\\f492\";\n@fa-var-vials: \"\\f493\";\n@fa-var-viber: \"\\f409\";\n@fa-var-video: \"\\f03d\";\n@fa-var-video-slash: \"\\f4e2\";\n@fa-var-vihara: \"\\f6a7\";\n@fa-var-vimeo: \"\\f40a\";\n@fa-var-vimeo-square: \"\\f194\";\n@fa-var-vimeo-v: \"\\f27d\";\n@fa-var-vine: \"\\f1ca\";\n@fa-var-vk: \"\\f189\";\n@fa-var-vnv: \"\\f40b\";\n@fa-var-voicemail: \"\\f897\";\n@fa-var-volleyball-ball: \"\\f45f\";\n@fa-var-volume-down: \"\\f027\";\n@fa-var-volume-mute: \"\\f6a9\";\n@fa-var-volume-off: \"\\f026\";\n@fa-var-volume-up: \"\\f028\";\n@fa-var-vote-yea: \"\\f772\";\n@fa-var-vr-cardboard: \"\\f729\";\n@fa-var-vuejs: \"\\f41f\";\n@fa-var-walking: \"\\f554\";\n@fa-var-wallet: \"\\f555\";\n@fa-var-warehouse: \"\\f494\";\n@fa-var-water: \"\\f773\";\n@fa-var-wave-square: \"\\f83e\";\n@fa-var-waze: \"\\f83f\";\n@fa-var-weebly: \"\\f5cc\";\n@fa-var-weibo: \"\\f18a\";\n@fa-var-weight: \"\\f496\";\n@fa-var-weight-hanging: \"\\f5cd\";\n@fa-var-weixin: \"\\f1d7\";\n@fa-var-whatsapp: \"\\f232\";\n@fa-var-whatsapp-square: \"\\f40c\";\n@fa-var-wheelchair: \"\\f193\";\n@fa-var-whmcs: \"\\f40d\";\n@fa-var-wifi: \"\\f1eb\";\n@fa-var-wikipedia-w: \"\\f266\";\n@fa-var-wind: \"\\f72e\";\n@fa-var-window-close: \"\\f410\";\n@fa-var-window-maximize: \"\\f2d0\";\n@fa-var-window-minimize: \"\\f2d1\";\n@fa-var-window-restore: \"\\f2d2\";\n@fa-var-windows: \"\\f17a\";\n@fa-var-wine-bottle: \"\\f72f\";\n@fa-var-wine-glass: \"\\f4e3\";\n@fa-var-wine-glass-alt: \"\\f5ce\";\n@fa-var-wix: \"\\f5cf\";\n@fa-var-wizards-of-the-coast: \"\\f730\";\n@fa-var-wolf-pack-battalion: \"\\f514\";\n@fa-var-won-sign: \"\\f159\";\n@fa-var-wordpress: \"\\f19a\";\n@fa-var-wordpress-simple: \"\\f411\";\n@fa-var-wpbeginner: \"\\f297\";\n@fa-var-wpexplorer: \"\\f2de\";\n@fa-var-wpforms: \"\\f298\";\n@fa-var-wpressr: \"\\f3e4\";\n@fa-var-wrench: \"\\f0ad\";\n@fa-var-x-ray: \"\\f497\";\n@fa-var-xbox: \"\\f412\";\n@fa-var-xing: \"\\f168\";\n@fa-var-xing-square: \"\\f169\";\n@fa-var-y-combinator: \"\\f23b\";\n@fa-var-yahoo: \"\\f19e\";\n@fa-var-yammer: \"\\f840\";\n@fa-var-yandex: \"\\f413\";\n@fa-var-yandex-international: \"\\f414\";\n@fa-var-yarn: \"\\f7e3\";\n@fa-var-yelp: \"\\f1e9\";\n@fa-var-yen-sign: \"\\f157\";\n@fa-var-yin-yang: \"\\f6ad\";\n@fa-var-yoast: \"\\f2b1\";\n@fa-var-youtube: \"\\f167\";\n@fa-var-youtube-square: \"\\f431\";\n@fa-var-zhihu: \"\\f63f\";\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/brands.less",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import \"_variables.less\";\n\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: normal;\n  font-display: @fa-font-display;\n  src: url('@{fa-font-path}/fa-brands-400.eot');\n  src: url('@{fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),\n    url('@{fa-font-path}/fa-brands-400.woff2') format('woff2'),\n    url('@{fa-font-path}/fa-brands-400.woff') format('woff'),\n    url('@{fa-font-path}/fa-brands-400.ttf') format('truetype'),\n    url('@{fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');\n}\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/fontawesome.less",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import \"_variables.less\";\n@import \"_mixins.less\";\n@import \"_core.less\";\n@import \"_larger.less\";\n@import \"_fixed-width.less\";\n@import \"_list.less\";\n@import \"_bordered-pulled.less\";\n@import \"_animated.less\";\n@import \"_rotated-flipped.less\";\n@import \"_stacked.less\";\n@import \"_icons.less\";\n@import \"_screen-reader.less\";\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/regular.less",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import \"_variables.less\";\n\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: @fa-font-display;\n  src: url('@{fa-font-path}/fa-regular-400.eot');\n  src: url('@{fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),\n    url('@{fa-font-path}/fa-regular-400.woff2') format('woff2'),\n    url('@{fa-font-path}/fa-regular-400.woff') format('woff'),\n    url('@{fa-font-path}/fa-regular-400.ttf') format('truetype'),\n    url('@{fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');\n}\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/solid.less",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import \"_variables.less\";\n\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: @fa-font-display;\n  src: url('@{fa-font-path}/fa-solid-900.eot');\n  src: url('@{fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),\n    url('@{fa-font-path}/fa-solid-900.woff2') format('woff2'),\n    url('@{fa-font-path}/fa-solid-900.woff') format('woff'),\n    url('@{fa-font-path}/fa-solid-900.ttf') format('truetype'),\n    url('@{fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');\n}\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/less/v4-shims.less",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import '_variables.less';\n@import '_shims.less';\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/categories.yml",
    "content": "accessibility:\n  icons:\n    - accessible-icon\n    - american-sign-language-interpreting\n    - assistive-listening-systems\n    - audio-description\n    - blind\n    - braille\n    - closed-captioning\n    - deaf\n    - low-vision\n    - phone-volume\n    - question-circle\n    - sign-language\n    - tty\n    - universal-access\n    - wheelchair\n  label: Accessibility\nalert:\n  icons:\n    - bell\n    - bell-slash\n    - exclamation\n    - exclamation-circle\n    - exclamation-triangle\n    - radiation\n    - radiation-alt\n    - skull-crossbones\n  label: Alert\nanimals:\n  icons:\n    - cat\n    - crow\n    - dog\n    - dove\n    - dragon\n    - feather\n    - feather-alt\n    - fish\n    - frog\n    - hippo\n    - horse\n    - horse-head\n    - kiwi-bird\n    - otter\n    - paw\n    - spider\n  label: Animals\narrows:\n  icons:\n    - angle-double-down\n    - angle-double-left\n    - angle-double-right\n    - angle-double-up\n    - angle-down\n    - angle-left\n    - angle-right\n    - angle-up\n    - arrow-alt-circle-down\n    - arrow-alt-circle-left\n    - arrow-alt-circle-right\n    - arrow-alt-circle-up\n    - arrow-circle-down\n    - arrow-circle-left\n    - arrow-circle-right\n    - arrow-circle-up\n    - arrow-down\n    - arrow-left\n    - arrow-right\n    - arrow-up\n    - arrows-alt\n    - arrows-alt-h\n    - arrows-alt-v\n    - caret-down\n    - caret-left\n    - caret-right\n    - caret-square-down\n    - caret-square-left\n    - caret-square-right\n    - caret-square-up\n    - caret-up\n    - cart-arrow-down\n    - chart-line\n    - chevron-circle-down\n    - chevron-circle-left\n    - chevron-circle-right\n    - chevron-circle-up\n    - chevron-down\n    - chevron-left\n    - chevron-right\n    - chevron-up\n    - cloud-download-alt\n    - cloud-upload-alt\n    - compress-arrows-alt\n    - download\n    - exchange-alt\n    - expand-arrows-alt\n    - external-link-alt\n    - external-link-square-alt\n    - hand-point-down\n    - hand-point-left\n    - hand-point-right\n    - hand-point-up\n    - hand-pointer\n    - history\n    - level-down-alt\n    - level-up-alt\n    - location-arrow\n    - long-arrow-alt-down\n    - long-arrow-alt-left\n    - long-arrow-alt-right\n    - long-arrow-alt-up\n    - mouse-pointer\n    - play\n    - random\n    - recycle\n    - redo\n    - redo-alt\n    - reply\n    - reply-all\n    - retweet\n    - share\n    - share-square\n    - sign-in-alt\n    - sign-out-alt\n    - sort\n    - sort-alpha-down\n    - sort-alpha-down-alt\n    - sort-alpha-up\n    - sort-alpha-up-alt\n    - sort-amount-down\n    - sort-amount-down-alt\n    - sort-amount-up\n    - sort-amount-up-alt\n    - sort-down\n    - sort-numeric-down\n    - sort-numeric-down-alt\n    - sort-numeric-up\n    - sort-numeric-up-alt\n    - sort-up\n    - sync\n    - sync-alt\n    - text-height\n    - text-width\n    - undo\n    - undo-alt\n    - upload\n  label: Arrows\naudio-video:\n  icons:\n    - audio-description\n    - backward\n    - broadcast-tower\n    - circle\n    - closed-captioning\n    - compress\n    - compress-arrows-alt\n    - eject\n    - expand\n    - expand-arrows-alt\n    - fast-backward\n    - fast-forward\n    - file-audio\n    - file-video\n    - film\n    - forward\n    - headphones\n    - microphone\n    - microphone-alt\n    - microphone-alt-slash\n    - microphone-slash\n    - music\n    - pause\n    - pause-circle\n    - phone-volume\n    - photo-video\n    - play\n    - play-circle\n    - podcast\n    - random\n    - redo\n    - redo-alt\n    - rss\n    - rss-square\n    - step-backward\n    - step-forward\n    - stop\n    - stop-circle\n    - sync\n    - sync-alt\n    - undo\n    - undo-alt\n    - video\n    - volume-down\n    - volume-mute\n    - volume-off\n    - volume-up\n    - youtube\n  label: Audio & Video\nautomotive:\n  icons:\n    - air-freshener\n    - ambulance\n    - bus\n    - bus-alt\n    - car\n    - car-alt\n    - car-battery\n    - car-crash\n    - car-side\n    - charging-station\n    - gas-pump\n    - motorcycle\n    - oil-can\n    - shuttle-van\n    - tachometer-alt\n    - taxi\n    - truck\n    - truck-monster\n    - truck-pickup\n  label: Automotive\nautumn:\n  icons:\n    - apple-alt\n    - campground\n    - cloud-sun\n    - drumstick-bite\n    - football-ball\n    - hiking\n    - mountain\n    - tractor\n    - tree\n    - wind\n    - wine-bottle\n  label: Autumn\nbeverage:\n  icons:\n    - beer\n    - blender\n    - cocktail\n    - coffee\n    - flask\n    - glass-cheers\n    - glass-martini\n    - glass-martini-alt\n    - glass-whiskey\n    - mug-hot\n    - wine-bottle\n    - wine-glass\n    - wine-glass-alt\n  label: Beverage\nbuildings:\n  icons:\n    - archway\n    - building\n    - campground\n    - church\n    - city\n    - clinic-medical\n    - dungeon\n    - gopuram\n    - home\n    - hospital\n    - hospital-alt\n    - hotel\n    - house-damage\n    - igloo\n    - industry\n    - kaaba\n    - landmark\n    - monument\n    - mosque\n    - place-of-worship\n    - school\n    - store\n    - store-alt\n    - synagogue\n    - torii-gate\n    - university\n    - vihara\n    - warehouse\n  label: Buildings\nbusiness:\n  icons:\n    - address-book\n    - address-card\n    - archive\n    - balance-scale\n    - balance-scale-left\n    - balance-scale-right\n    - birthday-cake\n    - book\n    - briefcase\n    - building\n    - bullhorn\n    - bullseye\n    - business-time\n    - calculator\n    - calendar\n    - calendar-alt\n    - certificate\n    - chart-area\n    - chart-bar\n    - chart-line\n    - chart-pie\n    - city\n    - clipboard\n    - coffee\n    - columns\n    - compass\n    - copy\n    - copyright\n    - cut\n    - edit\n    - envelope\n    - envelope-open\n    - envelope-square\n    - eraser\n    - fax\n    - file\n    - file-alt\n    - folder\n    - folder-minus\n    - folder-open\n    - folder-plus\n    - glasses\n    - globe\n    - highlighter\n    - industry\n    - landmark\n    - marker\n    - paperclip\n    - paste\n    - pen\n    - pen-alt\n    - pen-fancy\n    - pen-nib\n    - pen-square\n    - pencil-alt\n    - percent\n    - phone\n    - phone-alt\n    - phone-slash\n    - phone-square\n    - phone-square-alt\n    - phone-volume\n    - print\n    - project-diagram\n    - registered\n    - save\n    - sitemap\n    - socks\n    - sticky-note\n    - stream\n    - table\n    - tag\n    - tags\n    - tasks\n    - thumbtack\n    - trademark\n    - wallet\n  label: Business\ncamping:\n  icons:\n    - binoculars\n    - campground\n    - compass\n    - fire\n    - fire-alt\n    - first-aid\n    - frog\n    - hiking\n    - map\n    - map-marked\n    - map-marked-alt\n    - map-signs\n    - mountain\n    - route\n    - toilet-paper\n    - tree\n  label: Camping\ncharity:\n  icons:\n    - dollar-sign\n    - donate\n    - dove\n    - gift\n    - globe\n    - hand-holding-heart\n    - hand-holding-usd\n    - hands-helping\n    - handshake\n    - heart\n    - leaf\n    - parachute-box\n    - piggy-bank\n    - ribbon\n    - seedling\n  label: Charity\nchat:\n  icons:\n    - comment\n    - comment-alt\n    - comment-dots\n    - comment-medical\n    - comment-slash\n    - comments\n    - frown\n    - icons\n    - meh\n    - phone\n    - phone-alt\n    - phone-slash\n    - poo\n    - quote-left\n    - quote-right\n    - smile\n    - sms\n    - video\n    - video-slash\n  label: Chat\nchess:\n  icons:\n    - chess\n    - chess-bishop\n    - chess-board\n    - chess-king\n    - chess-knight\n    - chess-pawn\n    - chess-queen\n    - chess-rook\n    - square-full\n  label: Chess\nchildhood:\n  icons:\n    - apple-alt\n    - baby\n    - baby-carriage\n    - bath\n    - biking\n    - birthday-cake\n    - cookie\n    - cookie-bite\n    - ice-cream\n    - mitten\n    - robot\n    - school\n    - shapes\n    - snowman\n  label: Childhood\nclothing:\n  icons:\n    - graduation-cap\n    - hat-wizard\n    - mitten\n    - shoe-prints\n    - socks\n    - tshirt\n    - user-tie\n  label: Clothing\ncode:\n  icons:\n    - archive\n    - barcode\n    - bath\n    - bug\n    - code\n    - code-branch\n    - coffee\n    - file\n    - file-alt\n    - file-code\n    - filter\n    - fire-extinguisher\n    - folder\n    - folder-open\n    - keyboard\n    - laptop-code\n    - microchip\n    - project-diagram\n    - qrcode\n    - shield-alt\n    - sitemap\n    - stream\n    - terminal\n    - user-secret\n    - window-close\n    - window-maximize\n    - window-minimize\n    - window-restore\n  label: Code\ncommunication:\n  icons:\n    - address-book\n    - address-card\n    - american-sign-language-interpreting\n    - assistive-listening-systems\n    - at\n    - bell\n    - bell-slash\n    - bluetooth\n    - bluetooth-b\n    - broadcast-tower\n    - bullhorn\n    - chalkboard\n    - comment\n    - comment-alt\n    - comments\n    - envelope\n    - envelope-open\n    - envelope-square\n    - fax\n    - inbox\n    - language\n    - microphone\n    - microphone-alt\n    - microphone-alt-slash\n    - microphone-slash\n    - mobile\n    - mobile-alt\n    - paper-plane\n    - phone\n    - phone-alt\n    - phone-slash\n    - phone-square\n    - phone-square-alt\n    - phone-volume\n    - rss\n    - rss-square\n    - tty\n    - voicemail\n    - wifi\n  label: Communication\ncomputers:\n  icons:\n    - database\n    - desktop\n    - download\n    - ethernet\n    - hdd\n    - headphones\n    - keyboard\n    - laptop\n    - memory\n    - microchip\n    - mobile\n    - mobile-alt\n    - plug\n    - power-off\n    - print\n    - satellite\n    - satellite-dish\n    - save\n    - sd-card\n    - server\n    - sim-card\n    - stream\n    - tablet\n    - tablet-alt\n    - tv\n    - upload\n  label: Computers\nconstruction:\n  icons:\n    - brush\n    - drafting-compass\n    - dumpster\n    - hammer\n    - hard-hat\n    - paint-roller\n    - pencil-alt\n    - pencil-ruler\n    - ruler\n    - ruler-combined\n    - ruler-horizontal\n    - ruler-vertical\n    - screwdriver\n    - toolbox\n    - tools\n    - truck-pickup\n    - wrench\n  label: Construction\ncurrency:\n  icons:\n    - bitcoin\n    - btc\n    - dollar-sign\n    - ethereum\n    - euro-sign\n    - gg\n    - gg-circle\n    - hryvnia\n    - lira-sign\n    - money-bill\n    - money-bill-alt\n    - money-bill-wave\n    - money-bill-wave-alt\n    - money-check\n    - money-check-alt\n    - pound-sign\n    - ruble-sign\n    - rupee-sign\n    - shekel-sign\n    - tenge\n    - won-sign\n    - yen-sign\n  label: Currency\ndate-time:\n  icons:\n    - bell\n    - bell-slash\n    - calendar\n    - calendar-alt\n    - calendar-check\n    - calendar-minus\n    - calendar-plus\n    - calendar-times\n    - clock\n    - hourglass\n    - hourglass-end\n    - hourglass-half\n    - hourglass-start\n    - stopwatch\n  label: Date & Time\ndesign:\n  icons:\n    - adjust\n    - bezier-curve\n    - brush\n    - clone\n    - copy\n    - crop\n    - crop-alt\n    - crosshairs\n    - cut\n    - drafting-compass\n    - draw-polygon\n    - edit\n    - eraser\n    - eye\n    - eye-dropper\n    - eye-slash\n    - fill\n    - fill-drip\n    - highlighter\n    - icons\n    - layer-group\n    - magic\n    - marker\n    - object-group\n    - object-ungroup\n    - paint-brush\n    - paint-roller\n    - palette\n    - paste\n    - pen\n    - pen-alt\n    - pen-fancy\n    - pen-nib\n    - pencil-alt\n    - pencil-ruler\n    - ruler-combined\n    - ruler-horizontal\n    - ruler-vertical\n    - save\n    - splotch\n    - spray-can\n    - stamp\n    - swatchbook\n    - tint\n    - tint-slash\n    - vector-square\n  label: Design\neditors:\n  icons:\n    - align-center\n    - align-justify\n    - align-left\n    - align-right\n    - bold\n    - border-all\n    - border-none\n    - border-style\n    - clipboard\n    - clone\n    - columns\n    - copy\n    - cut\n    - edit\n    - eraser\n    - file\n    - file-alt\n    - font\n    - glasses\n    - heading\n    - highlighter\n    - i-cursor\n    - icons\n    - indent\n    - italic\n    - link\n    - list\n    - list-alt\n    - list-ol\n    - list-ul\n    - marker\n    - outdent\n    - paper-plane\n    - paperclip\n    - paragraph\n    - paste\n    - pen\n    - pen-alt\n    - pen-fancy\n    - pen-nib\n    - pencil-alt\n    - print\n    - quote-left\n    - quote-right\n    - redo\n    - redo-alt\n    - remove-format\n    - reply\n    - reply-all\n    - screwdriver\n    - share\n    - spell-check\n    - strikethrough\n    - subscript\n    - superscript\n    - sync\n    - sync-alt\n    - table\n    - tasks\n    - text-height\n    - text-width\n    - th\n    - th-large\n    - th-list\n    - tools\n    - trash\n    - trash-alt\n    - trash-restore\n    - trash-restore-alt\n    - underline\n    - undo\n    - undo-alt\n    - unlink\n    - wrench\n  label: Editors\neducation:\n  icons:\n    - apple-alt\n    - atom\n    - award\n    - bell\n    - bell-slash\n    - book-open\n    - book-reader\n    - chalkboard\n    - chalkboard-teacher\n    - graduation-cap\n    - laptop-code\n    - microscope\n    - music\n    - school\n    - shapes\n    - theater-masks\n    - user-graduate\n  label: Education\nemoji:\n  icons:\n    - angry\n    - dizzy\n    - flushed\n    - frown\n    - frown-open\n    - grimace\n    - grin\n    - grin-alt\n    - grin-beam\n    - grin-beam-sweat\n    - grin-hearts\n    - grin-squint\n    - grin-squint-tears\n    - grin-stars\n    - grin-tears\n    - grin-tongue\n    - grin-tongue-squint\n    - grin-tongue-wink\n    - grin-wink\n    - kiss\n    - kiss-beam\n    - kiss-wink-heart\n    - laugh\n    - laugh-beam\n    - laugh-squint\n    - laugh-wink\n    - meh\n    - meh-blank\n    - meh-rolling-eyes\n    - sad-cry\n    - sad-tear\n    - smile\n    - smile-beam\n    - smile-wink\n    - surprise\n    - tired\n  label: Emoji\nenergy:\n  icons:\n    - atom\n    - battery-empty\n    - battery-full\n    - battery-half\n    - battery-quarter\n    - battery-three-quarters\n    - broadcast-tower\n    - burn\n    - charging-station\n    - fire\n    - fire-alt\n    - gas-pump\n    - industry\n    - leaf\n    - lightbulb\n    - plug\n    - poop\n    - power-off\n    - radiation\n    - radiation-alt\n    - seedling\n    - solar-panel\n    - sun\n    - water\n    - wind\n  label: Energy\nfiles:\n  icons:\n    - archive\n    - clone\n    - copy\n    - cut\n    - file\n    - file-alt\n    - file-archive\n    - file-audio\n    - file-code\n    - file-excel\n    - file-image\n    - file-pdf\n    - file-powerpoint\n    - file-video\n    - file-word\n    - folder\n    - folder-open\n    - paste\n    - photo-video\n    - save\n    - sticky-note\n  label: Files\nfinance:\n  icons:\n    - balance-scale\n    - balance-scale-left\n    - balance-scale-right\n    - book\n    - cash-register\n    - chart-line\n    - chart-pie\n    - coins\n    - comment-dollar\n    - comments-dollar\n    - credit-card\n    - donate\n    - file-invoice\n    - file-invoice-dollar\n    - hand-holding-usd\n    - landmark\n    - money-bill\n    - money-bill-alt\n    - money-bill-wave\n    - money-bill-wave-alt\n    - money-check\n    - money-check-alt\n    - percentage\n    - piggy-bank\n    - receipt\n    - stamp\n    - wallet\n  label: Finance\nfitness:\n  icons:\n    - bicycle\n    - biking\n    - burn\n    - fire-alt\n    - heart\n    - heartbeat\n    - hiking\n    - running\n    - shoe-prints\n    - skating\n    - skiing\n    - skiing-nordic\n    - snowboarding\n    - spa\n    - swimmer\n    - walking\n  label: Fitness\nfood:\n  icons:\n    - apple-alt\n    - bacon\n    - bone\n    - bread-slice\n    - candy-cane\n    - carrot\n    - cheese\n    - cloud-meatball\n    - cookie\n    - drumstick-bite\n    - egg\n    - fish\n    - hamburger\n    - hotdog\n    - ice-cream\n    - lemon\n    - pepper-hot\n    - pizza-slice\n    - seedling\n    - stroopwafel\n  label: Food\nfruit-vegetable:\n  icons:\n    - apple-alt\n    - carrot\n    - leaf\n    - lemon\n    - pepper-hot\n    - seedling\n  label: Fruits & Vegetables\ngames:\n  icons:\n    - chess\n    - chess-bishop\n    - chess-board\n    - chess-king\n    - chess-knight\n    - chess-pawn\n    - chess-queen\n    - chess-rook\n    - dice\n    - dice-d20\n    - dice-d6\n    - dice-five\n    - dice-four\n    - dice-one\n    - dice-six\n    - dice-three\n    - dice-two\n    - gamepad\n    - ghost\n    - headset\n    - heart\n    - playstation\n    - puzzle-piece\n    - steam\n    - steam-square\n    - steam-symbol\n    - twitch\n    - xbox\n  label: Games\ngaming-tabletop:\n  icons:\n    - acquisitions-incorporated\n    - book-dead\n    - critical-role\n    - d-and-d\n    - d-and-d-beyond\n    - dice-d20\n    - dice-d6\n    - dragon\n    - dungeon\n    - fantasy-flight-games\n    - fist-raised\n    - hat-wizard\n    - penny-arcade\n    - ring\n    - scroll\n    - skull-crossbones\n    - wizards-of-the-coast\n  label: Tabletop Gaming\ngender:\n  icons:\n    - genderless\n    - mars\n    - mars-double\n    - mars-stroke\n    - mars-stroke-h\n    - mars-stroke-v\n    - mercury\n    - neuter\n    - transgender\n    - transgender-alt\n    - venus\n    - venus-double\n    - venus-mars\n  label: Genders\nhalloween:\n  icons:\n    - book-dead\n    - broom\n    - cat\n    - cloud-moon\n    - crow\n    - ghost\n    - hat-wizard\n    - mask\n    - skull-crossbones\n    - spider\n    - toilet-paper\n  label: Halloween\nhands:\n  icons:\n    - allergies\n    - fist-raised\n    - hand-holding\n    - hand-holding-heart\n    - hand-holding-usd\n    - hand-lizard\n    - hand-middle-finger\n    - hand-paper\n    - hand-peace\n    - hand-point-down\n    - hand-point-left\n    - hand-point-right\n    - hand-point-up\n    - hand-pointer\n    - hand-rock\n    - hand-scissors\n    - hand-spock\n    - hands\n    - hands-helping\n    - handshake\n    - praying-hands\n    - thumbs-down\n    - thumbs-up\n  label: Hands\nhealth:\n  icons:\n    - accessible-icon\n    - ambulance\n    - h-square\n    - heart\n    - heartbeat\n    - hospital\n    - medkit\n    - plus-square\n    - prescription\n    - stethoscope\n    - user-md\n    - wheelchair\n  label: Health\nholiday:\n  icons:\n    - candy-cane\n    - carrot\n    - cookie-bite\n    - gift\n    - gifts\n    - glass-cheers\n    - holly-berry\n    - mug-hot\n    - sleigh\n    - snowman\n  label: Holiday\nhotel:\n  icons:\n    - baby-carriage\n    - bath\n    - bed\n    - briefcase\n    - car\n    - cocktail\n    - coffee\n    - concierge-bell\n    - dice\n    - dice-five\n    - door-closed\n    - door-open\n    - dumbbell\n    - glass-martini\n    - glass-martini-alt\n    - hot-tub\n    - hotel\n    - infinity\n    - key\n    - luggage-cart\n    - shower\n    - shuttle-van\n    - smoking\n    - smoking-ban\n    - snowflake\n    - spa\n    - suitcase\n    - suitcase-rolling\n    - swimmer\n    - swimming-pool\n    - tv\n    - umbrella-beach\n    - utensils\n    - wheelchair\n    - wifi\n  label: Hotel\nhousehold:\n  icons:\n    - bath\n    - bed\n    - blender\n    - chair\n    - couch\n    - door-closed\n    - door-open\n    - dungeon\n    - fan\n    - shower\n    - toilet-paper\n    - tv\n  label: Household\nimages:\n  icons:\n    - adjust\n    - bolt\n    - camera\n    - camera-retro\n    - chalkboard\n    - clone\n    - compress\n    - compress-arrows-alt\n    - expand\n    - eye\n    - eye-dropper\n    - eye-slash\n    - file-image\n    - film\n    - id-badge\n    - id-card\n    - image\n    - images\n    - photo-video\n    - portrait\n    - sliders-h\n    - tint\n  label: Images\ninterfaces:\n  icons:\n    - award\n    - ban\n    - barcode\n    - bars\n    - beer\n    - bell\n    - bell-slash\n    - blog\n    - bug\n    - bullhorn\n    - bullseye\n    - calculator\n    - calendar\n    - calendar-alt\n    - calendar-check\n    - calendar-minus\n    - calendar-plus\n    - calendar-times\n    - certificate\n    - check\n    - check-circle\n    - check-double\n    - check-square\n    - circle\n    - clipboard\n    - clone\n    - cloud\n    - cloud-download-alt\n    - cloud-upload-alt\n    - coffee\n    - cog\n    - cogs\n    - copy\n    - cut\n    - database\n    - dot-circle\n    - download\n    - edit\n    - ellipsis-h\n    - ellipsis-v\n    - envelope\n    - envelope-open\n    - eraser\n    - exclamation\n    - exclamation-circle\n    - exclamation-triangle\n    - external-link-alt\n    - external-link-square-alt\n    - eye\n    - eye-slash\n    - file\n    - file-alt\n    - file-download\n    - file-export\n    - file-import\n    - file-upload\n    - filter\n    - fingerprint\n    - flag\n    - flag-checkered\n    - folder\n    - folder-open\n    - frown\n    - glasses\n    - grip-horizontal\n    - grip-lines\n    - grip-lines-vertical\n    - grip-vertical\n    - hashtag\n    - heart\n    - history\n    - home\n    - i-cursor\n    - info\n    - info-circle\n    - language\n    - magic\n    - marker\n    - medal\n    - meh\n    - microphone\n    - microphone-alt\n    - microphone-slash\n    - minus\n    - minus-circle\n    - minus-square\n    - paste\n    - pen\n    - pen-alt\n    - pen-fancy\n    - pencil-alt\n    - plus\n    - plus-circle\n    - plus-square\n    - poo\n    - qrcode\n    - question\n    - question-circle\n    - quote-left\n    - quote-right\n    - redo\n    - redo-alt\n    - reply\n    - reply-all\n    - rss\n    - rss-square\n    - save\n    - screwdriver\n    - search\n    - search-minus\n    - search-plus\n    - share\n    - share-alt\n    - share-alt-square\n    - share-square\n    - shield-alt\n    - sign-in-alt\n    - sign-out-alt\n    - signal\n    - sitemap\n    - sliders-h\n    - smile\n    - sort\n    - sort-alpha-down\n    - sort-alpha-down-alt\n    - sort-alpha-up\n    - sort-alpha-up-alt\n    - sort-amount-down\n    - sort-amount-down-alt\n    - sort-amount-up\n    - sort-amount-up-alt\n    - sort-down\n    - sort-numeric-down\n    - sort-numeric-down-alt\n    - sort-numeric-up\n    - sort-numeric-up-alt\n    - sort-up\n    - star\n    - star-half\n    - sync\n    - sync-alt\n    - thumbs-down\n    - thumbs-up\n    - times\n    - times-circle\n    - toggle-off\n    - toggle-on\n    - tools\n    - trash\n    - trash-alt\n    - trash-restore\n    - trash-restore-alt\n    - trophy\n    - undo\n    - undo-alt\n    - upload\n    - user\n    - user-alt\n    - user-circle\n    - volume-down\n    - volume-mute\n    - volume-off\n    - volume-up\n    - wifi\n    - wrench\n  label: Interfaces\nlogistics:\n  icons:\n    - box\n    - boxes\n    - clipboard-check\n    - clipboard-list\n    - dolly\n    - dolly-flatbed\n    - hard-hat\n    - pallet\n    - shipping-fast\n    - truck\n    - warehouse\n  label: Logistics\nmaps:\n  icons:\n    - ambulance\n    - anchor\n    - balance-scale\n    - balance-scale-left\n    - balance-scale-right\n    - bath\n    - bed\n    - beer\n    - bell\n    - bell-slash\n    - bicycle\n    - binoculars\n    - birthday-cake\n    - blind\n    - bomb\n    - book\n    - bookmark\n    - briefcase\n    - building\n    - car\n    - coffee\n    - crosshairs\n    - directions\n    - dollar-sign\n    - draw-polygon\n    - eye\n    - eye-slash\n    - fighter-jet\n    - fire\n    - fire-alt\n    - fire-extinguisher\n    - flag\n    - flag-checkered\n    - flask\n    - gamepad\n    - gavel\n    - gift\n    - glass-martini\n    - globe\n    - graduation-cap\n    - h-square\n    - heart\n    - heartbeat\n    - helicopter\n    - home\n    - hospital\n    - image\n    - images\n    - industry\n    - info\n    - info-circle\n    - key\n    - landmark\n    - layer-group\n    - leaf\n    - lemon\n    - life-ring\n    - lightbulb\n    - location-arrow\n    - low-vision\n    - magnet\n    - male\n    - map\n    - map-marker\n    - map-marker-alt\n    - map-pin\n    - map-signs\n    - medkit\n    - money-bill\n    - money-bill-alt\n    - motorcycle\n    - music\n    - newspaper\n    - parking\n    - paw\n    - phone\n    - phone-alt\n    - phone-square\n    - phone-square-alt\n    - phone-volume\n    - plane\n    - plug\n    - plus\n    - plus-square\n    - print\n    - recycle\n    - restroom\n    - road\n    - rocket\n    - route\n    - search\n    - search-minus\n    - search-plus\n    - ship\n    - shoe-prints\n    - shopping-bag\n    - shopping-basket\n    - shopping-cart\n    - shower\n    - snowplow\n    - street-view\n    - subway\n    - suitcase\n    - tag\n    - tags\n    - taxi\n    - thumbtack\n    - ticket-alt\n    - tint\n    - traffic-light\n    - train\n    - tram\n    - tree\n    - trophy\n    - truck\n    - tty\n    - umbrella\n    - university\n    - utensil-spoon\n    - utensils\n    - wheelchair\n    - wifi\n    - wine-glass\n    - wrench\n  label: Maps\nmaritime:\n  icons:\n    - anchor\n    - binoculars\n    - compass\n    - dharmachakra\n    - frog\n    - ship\n    - skull-crossbones\n    - swimmer\n    - water\n    - wind\n  label: Maritime\nmarketing:\n  icons:\n    - ad\n    - bullhorn\n    - bullseye\n    - comment-dollar\n    - comments-dollar\n    - envelope-open-text\n    - funnel-dollar\n    - lightbulb\n    - mail-bulk\n    - poll\n    - poll-h\n    - search-dollar\n    - search-location\n  label: Marketing\nmathematics:\n  icons:\n    - calculator\n    - divide\n    - equals\n    - greater-than\n    - greater-than-equal\n    - infinity\n    - less-than\n    - less-than-equal\n    - minus\n    - not-equal\n    - percentage\n    - plus\n    - square-root-alt\n    - subscript\n    - superscript\n    - times\n    - wave-square\n  label: Mathematics\nmedical:\n  icons:\n    - allergies\n    - ambulance\n    - band-aid\n    - biohazard\n    - bone\n    - bong\n    - book-medical\n    - brain\n    - briefcase-medical\n    - burn\n    - cannabis\n    - capsules\n    - clinic-medical\n    - comment-medical\n    - crutch\n    - diagnoses\n    - dna\n    - file-medical\n    - file-medical-alt\n    - file-prescription\n    - first-aid\n    - heart\n    - heartbeat\n    - hospital\n    - hospital-alt\n    - hospital-symbol\n    - id-card-alt\n    - joint\n    - laptop-medical\n    - microscope\n    - mortar-pestle\n    - notes-medical\n    - pager\n    - pills\n    - plus\n    - poop\n    - prescription\n    - prescription-bottle\n    - prescription-bottle-alt\n    - procedures\n    - radiation\n    - radiation-alt\n    - smoking\n    - smoking-ban\n    - star-of-life\n    - stethoscope\n    - syringe\n    - tablets\n    - teeth\n    - teeth-open\n    - thermometer\n    - tooth\n    - user-md\n    - user-nurse\n    - vial\n    - vials\n    - weight\n    - x-ray\n  label: Medical\nmoving:\n  icons:\n    - archive\n    - box-open\n    - couch\n    - dolly\n    - people-carry\n    - route\n    - sign\n    - suitcase\n    - tape\n    - truck-loading\n    - truck-moving\n    - wine-glass\n  label: Moving\nmusic:\n  icons:\n    - drum\n    - drum-steelpan\n    - file-audio\n    - guitar\n    - headphones\n    - headphones-alt\n    - music\n    - napster\n    - play\n    - sliders-h\n    - soundcloud\n    - spotify\n    - volume-down\n    - volume-mute\n    - volume-off\n    - volume-up\n  label: Music\nobjects:\n  icons:\n    - ambulance\n    - anchor\n    - archive\n    - award\n    - baby-carriage\n    - balance-scale\n    - balance-scale-left\n    - balance-scale-right\n    - bath\n    - bed\n    - beer\n    - bell\n    - bicycle\n    - binoculars\n    - birthday-cake\n    - blender\n    - bomb\n    - book\n    - book-dead\n    - bookmark\n    - briefcase\n    - broadcast-tower\n    - bug\n    - building\n    - bullhorn\n    - bullseye\n    - bus\n    - calculator\n    - calendar\n    - calendar-alt\n    - camera\n    - camera-retro\n    - candy-cane\n    - car\n    - carrot\n    - church\n    - clipboard\n    - cloud\n    - coffee\n    - cog\n    - cogs\n    - compass\n    - cookie\n    - cookie-bite\n    - copy\n    - cube\n    - cubes\n    - cut\n    - dice\n    - dice-d20\n    - dice-d6\n    - dice-five\n    - dice-four\n    - dice-one\n    - dice-six\n    - dice-three\n    - dice-two\n    - digital-tachograph\n    - door-closed\n    - door-open\n    - drum\n    - drum-steelpan\n    - envelope\n    - envelope-open\n    - eraser\n    - eye\n    - eye-dropper\n    - fax\n    - feather\n    - feather-alt\n    - fighter-jet\n    - file\n    - file-alt\n    - file-prescription\n    - film\n    - fire\n    - fire-alt\n    - fire-extinguisher\n    - flag\n    - flag-checkered\n    - flask\n    - futbol\n    - gamepad\n    - gavel\n    - gem\n    - gift\n    - gifts\n    - glass-cheers\n    - glass-martini\n    - glass-whiskey\n    - glasses\n    - globe\n    - graduation-cap\n    - guitar\n    - hat-wizard\n    - hdd\n    - headphones\n    - headphones-alt\n    - headset\n    - heart\n    - heart-broken\n    - helicopter\n    - highlighter\n    - holly-berry\n    - home\n    - hospital\n    - hourglass\n    - igloo\n    - image\n    - images\n    - industry\n    - key\n    - keyboard\n    - laptop\n    - leaf\n    - lemon\n    - life-ring\n    - lightbulb\n    - lock\n    - lock-open\n    - magic\n    - magnet\n    - map\n    - map-marker\n    - map-marker-alt\n    - map-pin\n    - map-signs\n    - marker\n    - medal\n    - medkit\n    - memory\n    - microchip\n    - microphone\n    - microphone-alt\n    - mitten\n    - mobile\n    - mobile-alt\n    - money-bill\n    - money-bill-alt\n    - money-check\n    - money-check-alt\n    - moon\n    - motorcycle\n    - mug-hot\n    - newspaper\n    - paint-brush\n    - paper-plane\n    - paperclip\n    - paste\n    - paw\n    - pen\n    - pen-alt\n    - pen-fancy\n    - pen-nib\n    - pencil-alt\n    - phone\n    - phone-alt\n    - plane\n    - plug\n    - print\n    - puzzle-piece\n    - ring\n    - road\n    - rocket\n    - ruler-combined\n    - ruler-horizontal\n    - ruler-vertical\n    - satellite\n    - satellite-dish\n    - save\n    - school\n    - screwdriver\n    - scroll\n    - sd-card\n    - search\n    - shield-alt\n    - shopping-bag\n    - shopping-basket\n    - shopping-cart\n    - shower\n    - sim-card\n    - skull-crossbones\n    - sleigh\n    - snowflake\n    - snowplow\n    - space-shuttle\n    - star\n    - sticky-note\n    - stopwatch\n    - stroopwafel\n    - subway\n    - suitcase\n    - sun\n    - tablet\n    - tablet-alt\n    - tachometer-alt\n    - tag\n    - tags\n    - taxi\n    - thumbtack\n    - ticket-alt\n    - toilet\n    - toolbox\n    - tools\n    - train\n    - tram\n    - trash\n    - trash-alt\n    - tree\n    - trophy\n    - truck\n    - tv\n    - umbrella\n    - university\n    - unlock\n    - unlock-alt\n    - utensil-spoon\n    - utensils\n    - wallet\n    - weight\n    - wheelchair\n    - wine-glass\n    - wrench\n  label: Objects\npayments-shopping:\n  icons:\n    - alipay\n    - amazon-pay\n    - apple-pay\n    - bell\n    - bitcoin\n    - bookmark\n    - btc\n    - bullhorn\n    - camera\n    - camera-retro\n    - cart-arrow-down\n    - cart-plus\n    - cc-amazon-pay\n    - cc-amex\n    - cc-apple-pay\n    - cc-diners-club\n    - cc-discover\n    - cc-jcb\n    - cc-mastercard\n    - cc-paypal\n    - cc-stripe\n    - cc-visa\n    - certificate\n    - credit-card\n    - ethereum\n    - gem\n    - gift\n    - google-wallet\n    - handshake\n    - heart\n    - key\n    - money-check\n    - money-check-alt\n    - paypal\n    - receipt\n    - shopping-bag\n    - shopping-basket\n    - shopping-cart\n    - star\n    - stripe\n    - stripe-s\n    - tag\n    - tags\n    - thumbs-down\n    - thumbs-up\n    - trophy\n  label: Payments & Shopping\npharmacy:\n  icons:\n    - band-aid\n    - book-medical\n    - cannabis\n    - capsules\n    - clinic-medical\n    - eye-dropper\n    - file-medical\n    - file-prescription\n    - first-aid\n    - flask\n    - history\n    - joint\n    - laptop-medical\n    - mortar-pestle\n    - notes-medical\n    - pills\n    - prescription\n    - prescription-bottle\n    - prescription-bottle-alt\n    - receipt\n    - skull-crossbones\n    - syringe\n    - tablets\n    - thermometer\n    - vial\n    - vials\n  label: Pharmacy\npolitical:\n  icons:\n    - award\n    - balance-scale\n    - balance-scale-left\n    - balance-scale-right\n    - bullhorn\n    - check-double\n    - democrat\n    - donate\n    - dove\n    - fist-raised\n    - flag-usa\n    - handshake\n    - person-booth\n    - piggy-bank\n    - republican\n    - vote-yea\n  label: Political\nreligion:\n  icons:\n    - ankh\n    - atom\n    - bible\n    - church\n    - cross\n    - dharmachakra\n    - dove\n    - gopuram\n    - hamsa\n    - hanukiah\n    - haykal\n    - jedi\n    - journal-whills\n    - kaaba\n    - khanda\n    - menorah\n    - mosque\n    - om\n    - pastafarianism\n    - peace\n    - place-of-worship\n    - pray\n    - praying-hands\n    - quran\n    - star-and-crescent\n    - star-of-david\n    - synagogue\n    - torah\n    - torii-gate\n    - vihara\n    - yin-yang\n  label: Religion\nscience:\n  icons:\n    - atom\n    - biohazard\n    - brain\n    - burn\n    - capsules\n    - clipboard-check\n    - dna\n    - eye-dropper\n    - filter\n    - fire\n    - fire-alt\n    - flask\n    - frog\n    - magnet\n    - microscope\n    - mortar-pestle\n    - pills\n    - prescription-bottle\n    - radiation\n    - radiation-alt\n    - seedling\n    - skull-crossbones\n    - syringe\n    - tablets\n    - temperature-high\n    - temperature-low\n    - vial\n    - vials\n  label: Science\nscience-fiction:\n  icons:\n    - galactic-republic\n    - galactic-senate\n    - globe\n    - jedi\n    - jedi-order\n    - journal-whills\n    - meteor\n    - moon\n    - old-republic\n    - robot\n    - rocket\n    - satellite\n    - satellite-dish\n    - space-shuttle\n    - user-astronaut\n  label: Science Fiction\nsecurity:\n  icons:\n    - ban\n    - bug\n    - door-closed\n    - door-open\n    - dungeon\n    - eye\n    - eye-slash\n    - file-contract\n    - file-signature\n    - fingerprint\n    - id-badge\n    - id-card\n    - id-card-alt\n    - key\n    - lock\n    - lock-open\n    - mask\n    - passport\n    - shield-alt\n    - unlock\n    - unlock-alt\n    - user-lock\n    - user-secret\n    - user-shield\n  label: Security\nshapes:\n  icons:\n    - bookmark\n    - calendar\n    - certificate\n    - circle\n    - cloud\n    - comment\n    - file\n    - folder\n    - heart\n    - heart-broken\n    - map-marker\n    - play\n    - shapes\n    - square\n    - star\n  label: Shapes\nshopping:\n  icons:\n    - barcode\n    - cart-arrow-down\n    - cart-plus\n    - cash-register\n    - gift\n    - gifts\n    - person-booth\n    - receipt\n    - shipping-fast\n    - shopping-bag\n    - shopping-basket\n    - shopping-cart\n    - store\n    - store-alt\n    - truck\n    - tshirt\n  label: Shopping\nsocial:\n  icons:\n    - bell\n    - birthday-cake\n    - camera\n    - comment\n    - comment-alt\n    - envelope\n    - hashtag\n    - heart\n    - icons\n    - image\n    - images\n    - map-marker\n    - map-marker-alt\n    - photo-video\n    - poll\n    - poll-h\n    - retweet\n    - share\n    - share-alt\n    - share-square\n    - star\n    - thumbs-down\n    - thumbs-up\n    - thumbtack\n    - user\n    - user-circle\n    - user-friends\n    - user-plus\n    - users\n    - video\n  label: Social\nspinners:\n  icons:\n    - asterisk\n    - atom\n    - certificate\n    - circle-notch\n    - cog\n    - compact-disc\n    - compass\n    - crosshairs\n    - dharmachakra\n    - fan\n    - haykal\n    - life-ring\n    - palette\n    - ring\n    - slash\n    - snowflake\n    - spinner\n    - stroopwafel\n    - sun\n    - sync\n    - sync-alt\n    - yin-yang\n  label: Spinners\nsports:\n  icons:\n    - baseball-ball\n    - basketball-ball\n    - biking\n    - bowling-ball\n    - dumbbell\n    - football-ball\n    - futbol\n    - golf-ball\n    - hockey-puck\n    - quidditch\n    - running\n    - skating\n    - skiing\n    - skiing-nordic\n    - snowboarding\n    - swimmer\n    - table-tennis\n    - volleyball-ball\n  label: Sports\nspring:\n  icons:\n    - allergies\n    - broom\n    - cloud-sun\n    - cloud-sun-rain\n    - frog\n    - rainbow\n    - seedling\n    - umbrella\n  label: Spring\nstatus:\n  icons:\n    - ban\n    - battery-empty\n    - battery-full\n    - battery-half\n    - battery-quarter\n    - battery-three-quarters\n    - bell\n    - bell-slash\n    - calendar\n    - calendar-alt\n    - calendar-check\n    - calendar-day\n    - calendar-minus\n    - calendar-plus\n    - calendar-times\n    - calendar-week\n    - cart-arrow-down\n    - cart-plus\n    - comment\n    - comment-alt\n    - comment-slash\n    - compass\n    - door-closed\n    - door-open\n    - exclamation\n    - exclamation-circle\n    - exclamation-triangle\n    - eye\n    - eye-slash\n    - file\n    - file-alt\n    - folder\n    - folder-open\n    - gas-pump\n    - info\n    - info-circle\n    - lightbulb\n    - lock\n    - lock-open\n    - map-marker\n    - map-marker-alt\n    - microphone\n    - microphone-alt\n    - microphone-alt-slash\n    - microphone-slash\n    - minus\n    - minus-circle\n    - minus-square\n    - parking\n    - phone\n    - phone-alt\n    - phone-slash\n    - plus\n    - plus-circle\n    - plus-square\n    - print\n    - question\n    - question-circle\n    - shield-alt\n    - shopping-cart\n    - sign-in-alt\n    - sign-out-alt\n    - signal\n    - smoking-ban\n    - star\n    - star-half\n    - star-half-alt\n    - stream\n    - thermometer-empty\n    - thermometer-full\n    - thermometer-half\n    - thermometer-quarter\n    - thermometer-three-quarters\n    - thumbs-down\n    - thumbs-up\n    - tint\n    - tint-slash\n    - toggle-off\n    - toggle-on\n    - unlock\n    - unlock-alt\n    - user\n    - user-alt\n    - user-alt-slash\n    - user-slash\n    - video\n    - video-slash\n    - volume-down\n    - volume-mute\n    - volume-off\n    - volume-up\n    - wifi\n  label: Status\nsummer:\n  icons:\n    - anchor\n    - biking\n    - fish\n    - hotdog\n    - ice-cream\n    - lemon\n    - sun\n    - swimmer\n    - swimming-pool\n    - umbrella-beach\n    - volleyball-ball\n    - water\n  label: Summer\ntoggle:\n  icons:\n    - bullseye\n    - check-circle\n    - circle\n    - dot-circle\n    - star\n    - star-half\n    - star-half-alt\n    - toggle-off\n    - toggle-on\n  label: Toggle\ntravel:\n  icons:\n    - archway\n    - atlas\n    - bed\n    - bus\n    - bus-alt\n    - cocktail\n    - concierge-bell\n    - dumbbell\n    - glass-martini\n    - glass-martini-alt\n    - globe-africa\n    - globe-americas\n    - globe-asia\n    - globe-europe\n    - hot-tub\n    - hotel\n    - luggage-cart\n    - map\n    - map-marked\n    - map-marked-alt\n    - monument\n    - passport\n    - plane\n    - plane-arrival\n    - plane-departure\n    - shuttle-van\n    - spa\n    - suitcase\n    - suitcase-rolling\n    - swimmer\n    - swimming-pool\n    - taxi\n    - tram\n    - umbrella-beach\n    - wine-glass\n    - wine-glass-alt\n  label: Travel\nusers-people:\n  icons:\n    - accessible-icon\n    - address-book\n    - address-card\n    - baby\n    - bed\n    - biking\n    - blind\n    - chalkboard-teacher\n    - child\n    - female\n    - frown\n    - hiking\n    - id-badge\n    - id-card\n    - id-card-alt\n    - male\n    - meh\n    - people-carry\n    - person-booth\n    - poo\n    - portrait\n    - power-off\n    - pray\n    - restroom\n    - running\n    - skating\n    - skiing\n    - skiing-nordic\n    - smile\n    - snowboarding\n    - street-view\n    - swimmer\n    - user\n    - user-alt\n    - user-alt-slash\n    - user-astronaut\n    - user-check\n    - user-circle\n    - user-clock\n    - user-cog\n    - user-edit\n    - user-friends\n    - user-graduate\n    - user-injured\n    - user-lock\n    - user-md\n    - user-minus\n    - user-ninja\n    - user-nurse\n    - user-plus\n    - user-secret\n    - user-shield\n    - user-slash\n    - user-tag\n    - user-tie\n    - user-times\n    - users\n    - users-cog\n    - walking\n    - wheelchair\n  label: Users & People\nvehicles:\n  icons:\n    - accessible-icon\n    - ambulance\n    - baby-carriage\n    - bicycle\n    - bus\n    - bus-alt\n    - car\n    - car-alt\n    - car-crash\n    - car-side\n    - fighter-jet\n    - helicopter\n    - horse\n    - motorcycle\n    - paper-plane\n    - plane\n    - rocket\n    - ship\n    - shopping-cart\n    - shuttle-van\n    - sleigh\n    - snowplow\n    - space-shuttle\n    - subway\n    - taxi\n    - tractor\n    - train\n    - tram\n    - truck\n    - truck-monster\n    - truck-pickup\n    - wheelchair\n  label: Vehicles\nweather:\n  icons:\n    - bolt\n    - cloud\n    - cloud-meatball\n    - cloud-moon\n    - cloud-moon-rain\n    - cloud-rain\n    - cloud-showers-heavy\n    - cloud-sun\n    - cloud-sun-rain\n    - meteor\n    - moon\n    - poo-storm\n    - rainbow\n    - smog\n    - snowflake\n    - sun\n    - temperature-high\n    - temperature-low\n    - umbrella\n    - water\n    - wind\n  label: Weather\nwinter:\n  icons:\n    - glass-whiskey\n    - icicles\n    - igloo\n    - mitten\n    - skating\n    - skiing\n    - skiing-nordic\n    - snowboarding\n    - snowplow\n    - tram\n  label: Winter\nwriting:\n  icons:\n    - archive\n    - blog\n    - book\n    - bookmark\n    - edit\n    - envelope\n    - envelope-open\n    - eraser\n    - file\n    - file-alt\n    - folder\n    - folder-open\n    - keyboard\n    - newspaper\n    - paper-plane\n    - paperclip\n    - paragraph\n    - pen\n    - pen-alt\n    - pen-square\n    - pencil-alt\n    - quote-left\n    - quote-right\n    - sticky-note\n    - thumbtack\n  label: Writing\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/icons.json",
    "content": "{\n  \"500px\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f26e\",\n    \"label\": \"500px\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860962,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"accessible-icon\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accessibility\",\n        \"handicap\",\n        \"person\",\n        \"wheelchair\",\n        \"wheelchair-alt\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f368\",\n    \"label\": \"Accessible Icon\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860962,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"accusoft\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f369\",\n    \"label\": \"Accusoft\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722323,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"acquisitions-incorporated\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"game\",\n        \"gaming\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f6af\",\n    \"label\": \"Acquisitions Incorporated\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775889,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ad\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"advertisement\",\n        \"media\",\n        \"newspaper\",\n        \"promotion\",\n        \"publicity\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f641\",\n    \"label\": \"Ad\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861352,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"address-book\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contact\",\n        \"directory\",\n        \"index\",\n        \"little black book\",\n        \"rolodex\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2b9\",\n    \"label\": \"Address Book\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861352,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861216,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"address-card\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"about\",\n        \"contact\",\n        \"id\",\n        \"identification\",\n        \"postcard\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2bb\",\n    \"label\": \"Address Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861352,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861216,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"adjust\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contrast\",\n        \"dark\",\n        \"light\",\n        \"saturation\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f042\",\n    \"label\": \"adjust\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861352,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"adn\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f170\",\n    \"label\": \"App.net\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860962,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"adobe\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acrobat\",\n        \"app\",\n        \"design\",\n        \"illustrator\",\n        \"indesign\",\n        \"photoshop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f778\",\n    \"label\": \"Adobe\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775890,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M315.5 64h170.9v384L315.5 64zm-119 0H25.6v384L196.5 64zM256 206.1L363.5 448h-73l-30.7-76.8h-78.7L256 206.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M315.5 64h170.9v384L315.5 64zm-119 0H25.6v384L196.5 64zM256 206.1L363.5 448h-73l-30.7-76.8h-78.7L256 206.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"adversal\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36a\",\n    \"label\": \"Adversal\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860963,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"affiliatetheme\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36b\",\n    \"label\": \"affiliatetheme\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860963,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"air-freshener\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"car\",\n        \"deodorize\",\n        \"fresh\",\n        \"pine\",\n        \"scent\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5d0\",\n    \"label\": \"Air Freshener\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861352,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"airbnb\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f834\",\n    \"label\": \"Airbnb\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775890,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"algolia\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36c\",\n    \"label\": \"Algolia\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860963,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"align-center\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"format\",\n        \"middle\",\n        \"paragraph\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f037\",\n    \"label\": \"align-center\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084922,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"align-justify\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"format\",\n        \"paragraph\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f039\",\n    \"label\": \"align-justify\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084922,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"align-left\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"format\",\n        \"paragraph\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f036\",\n    \"label\": \"align-left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084922,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"align-right\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"format\",\n        \"paragraph\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f038\",\n    \"label\": \"align-right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084923,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"alipay\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f642\",\n    \"label\": \"Alipay\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860963,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"allergies\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"allergy\",\n        \"freckles\",\n        \"hand\",\n        \"hives\",\n        \"pox\",\n        \"skin\",\n        \"spots\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f461\",\n    \"label\": \"Allergies\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"amazon\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f270\",\n    \"label\": \"Amazon\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860964,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"amazon-pay\": {\n    \"changes\": [\n      \"5.0.2\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42c\",\n    \"label\": \"Amazon Pay\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775891,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ambulance\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emergency\",\n        \"emt\",\n        \"er\",\n        \"help\",\n        \"hospital\",\n        \"support\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0f9\",\n    \"label\": \"ambulance\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"american-sign-language-interpreting\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"asl\",\n        \"deaf\",\n        \"finger\",\n        \"hand\",\n        \"interpret\",\n        \"speak\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a3\",\n    \"label\": \"American Sign Language Interpreting\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"amilia\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36d\",\n    \"label\": \"Amilia\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722324,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"anchor\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"berth\",\n        \"boat\",\n        \"dock\",\n        \"embed\",\n        \"link\",\n        \"maritime\",\n        \"moor\",\n        \"secure\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f13d\",\n    \"label\": \"Anchor\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"android\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"robot\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f17b\",\n    \"label\": \"Android\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860964,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M89.6 204.5v115.8c0 15.4-12.1 27.7-27.5 27.7-15.3 0-30.1-12.4-30.1-27.7V204.5c0-15.1 14.8-27.5 30.1-27.5 15.1 0 27.5 12.4 27.5 27.5zm10.8 157c0 16.4 13.2 29.6 29.6 29.6h19.9l.3 61.1c0 36.9 55.2 36.6 55.2 0v-61.1h37.2v61.1c0 36.7 55.5 36.8 55.5 0v-61.1h20.2c16.2 0 29.4-13.2 29.4-29.6V182.1H100.4v179.4zm248-189.1H99.3c0-42.8 25.6-80 63.6-99.4l-19.1-35.3c-2.8-4.9 4.3-8 6.7-3.8l19.4 35.6c34.9-15.5 75-14.7 108.3 0L297.5 34c2.5-4.3 9.5-1.1 6.7 3.8L285.1 73c37.7 19.4 63.3 56.6 63.3 99.4zm-170.7-55.5c0-5.7-4.6-10.5-10.5-10.5-5.7 0-10.2 4.8-10.2 10.5s4.6 10.5 10.2 10.5c5.9 0 10.5-4.8 10.5-10.5zm113.4 0c0-5.7-4.6-10.5-10.2-10.5-5.9 0-10.5 4.8-10.5 10.5s4.6 10.5 10.5 10.5c5.6 0 10.2-4.8 10.2-10.5zm94.8 60.1c-15.1 0-27.5 12.1-27.5 27.5v115.8c0 15.4 12.4 27.7 27.5 27.7 15.4 0 30.1-12.4 30.1-27.7V204.5c0-15.4-14.8-27.5-30.1-27.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"angellist\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f209\",\n    \"label\": \"AngelList\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860964,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"angle-double-down\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows\",\n        \"caret\",\n        \"download\",\n        \"expand\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f103\",\n    \"label\": \"Angle Double Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-double-left\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows\",\n        \"back\",\n        \"caret\",\n        \"laquo\",\n        \"previous\",\n        \"quote\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f100\",\n    \"label\": \"Angle Double Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-double-right\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows\",\n        \"caret\",\n        \"forward\",\n        \"more\",\n        \"next\",\n        \"quote\",\n        \"raquo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f101\",\n    \"label\": \"Angle Double Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-double-up\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows\",\n        \"caret\",\n        \"collapse\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f102\",\n    \"label\": \"Angle Double Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861353,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-down\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"caret\",\n        \"download\",\n        \"expand\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f107\",\n    \"label\": \"angle-down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-left\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"back\",\n        \"caret\",\n        \"less\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f104\",\n    \"label\": \"angle-left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-right\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"care\",\n        \"forward\",\n        \"more\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f105\",\n    \"label\": \"angle-right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angle-up\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"caret\",\n        \"collapse\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f106\",\n    \"label\": \"angle-up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"angry\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"disapprove\",\n        \"emoticon\",\n        \"face\",\n        \"mad\",\n        \"upset\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f556\",\n    \"label\": \"Angry Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861218,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"angrycreative\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36e\",\n    \"label\": \"Angry Creative\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860965,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"angular\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f420\",\n    \"label\": \"Angular\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775892,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ankh\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"amulet\",\n        \"copper\",\n        \"coptic christianity\",\n        \"copts\",\n        \"crux ansata\",\n        \"egypt\",\n        \"venus\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f644\",\n    \"label\": \"Ankh\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"app-store\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f36f\",\n    \"label\": \"App Store\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860965,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"app-store-ios\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f370\",\n    \"label\": \"iOS App Store\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860965,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"apper\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f371\",\n    \"label\": \"Apper Systems AB\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860965,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"apple\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.0.7\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"fruit\",\n        \"ios\",\n        \"mac\",\n        \"operating system\",\n        \"os\",\n        \"osx\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f179\",\n    \"label\": \"Apple\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775892,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"apple-alt\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"fall\",\n        \"fruit\",\n        \"fuji\",\n        \"macintosh\",\n        \"orchard\",\n        \"seasonal\",\n        \"vegan\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5d1\",\n    \"label\": \"Fruit Apple\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"apple-pay\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f415\",\n    \"label\": \"Apple Pay\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860966,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"archive\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"box\",\n        \"package\",\n        \"save\",\n        \"storage\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f187\",\n    \"label\": \"Archive\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"archway\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arc\",\n        \"monument\",\n        \"road\",\n        \"street\",\n        \"tunnel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f557\",\n    \"label\": \"Archway\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-alt-circle-down\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow-circle-o-down\",\n        \"download\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f358\",\n    \"label\": \"Alternate Arrow Circle Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861219,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"arrow-alt-circle-left\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow-circle-o-left\",\n        \"back\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f359\",\n    \"label\": \"Alternate Arrow Circle Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861354,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861219,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"arrow-alt-circle-right\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow-circle-o-right\",\n        \"forward\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f35a\",\n    \"label\": \"Alternate Arrow Circle Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861355,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861219,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"arrow-alt-circle-up\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow-circle-o-up\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f35b\",\n    \"label\": \"Alternate Arrow Circle Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861355,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861219,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"arrow-circle-down\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ab\",\n    \"label\": \"Arrow Circle Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861356,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-circle-left\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0a8\",\n    \"label\": \"Arrow Circle Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861356,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-circle-right\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0a9\",\n    \"label\": \"Arrow Circle Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861356,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-circle-up\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0aa\",\n    \"label\": \"Arrow Circle Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861356,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-down\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f063\",\n    \"label\": \"arrow-down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861356,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-left\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f060\",\n    \"label\": \"arrow-left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861357,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-right\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f061\",\n    \"label\": \"arrow-right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861357,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrow-up\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f062\",\n    \"label\": \"arrow-up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrows-alt\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"arrows\",\n        \"bigger\",\n        \"enlarge\",\n        \"expand\",\n        \"fullscreen\",\n        \"move\",\n        \"position\",\n        \"reorder\",\n        \"resize\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0b2\",\n    \"label\": \"Alternate Arrows\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrows-alt-h\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows-h\",\n        \"expand\",\n        \"horizontal\",\n        \"landscape\",\n        \"resize\",\n        \"wide\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f337\",\n    \"label\": \"Alternate Arrows Horizontal\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"arrows-alt-v\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows-v\",\n        \"expand\",\n        \"portrait\",\n        \"resize\",\n        \"tall\",\n        \"vertical\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f338\",\n    \"label\": \"Alternate Arrows Vertical\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"artstation\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f77a\",\n    \"label\": \"Artstation\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775892,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"assistive-listening-systems\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"amplify\",\n        \"audio\",\n        \"deaf\",\n        \"ear\",\n        \"headset\",\n        \"hearing\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a2\",\n    \"label\": \"Assistive Listening Systems\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"asterisk\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"annotation\",\n        \"details\",\n        \"reference\",\n        \"star\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f069\",\n    \"label\": \"asterisk\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"asymmetrik\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f372\",\n    \"label\": \"Asymmetrik, Ltd.\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860966,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"at\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"author\",\n        \"e-mail\",\n        \"email\",\n        \"handle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1fa\",\n    \"label\": \"At\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861358,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"atlas\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"book\",\n        \"directions\",\n        \"geography\",\n        \"globe\",\n        \"map\",\n        \"travel\",\n        \"wayfinding\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f558\",\n    \"label\": \"Atlas\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"atlassian\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f77b\",\n    \"label\": \"Atlassian\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860966,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"atom\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atheism\",\n        \"chemistry\",\n        \"ion\",\n        \"nuclear\",\n        \"science\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5d2\",\n    \"label\": \"Atom\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"audible\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f373\",\n    \"label\": \"Audible\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860966,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"audio-description\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blind\",\n        \"narration\",\n        \"video\",\n        \"visual\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f29e\",\n    \"label\": \"Audio Description\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"autoprefixer\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41c\",\n    \"label\": \"Autoprefixer\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860967,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"avianex\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f374\",\n    \"label\": \"avianex\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860967,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"aviato\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f421\",\n    \"label\": \"Aviato\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860967,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"award\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"honor\",\n        \"praise\",\n        \"prize\",\n        \"recognition\",\n        \"ribbon\",\n        \"trophy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f559\",\n    \"label\": \"Award\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"aws\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f375\",\n    \"label\": \"Amazon Web Services (AWS)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860967,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"baby\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"child\",\n        \"diaper\",\n        \"doll\",\n        \"human\",\n        \"infant\",\n        \"kid\",\n        \"offspring\",\n        \"person\",\n        \"sprout\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f77c\",\n    \"label\": \"Baby\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"baby-carriage\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buggy\",\n        \"carrier\",\n        \"infant\",\n        \"push\",\n        \"stroller\",\n        \"transportation\",\n        \"walk\",\n        \"wheels\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f77d\",\n    \"label\": \"Baby Carriage\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"backspace\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"command\",\n        \"delete\",\n        \"erase\",\n        \"keyboard\",\n        \"undo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55a\",\n    \"label\": \"Backspace\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861359,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"backward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"previous\",\n        \"rewind\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f04a\",\n    \"label\": \"backward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861360,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bacon\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blt\",\n        \"breakfast\",\n        \"ham\",\n        \"lard\",\n        \"meat\",\n        \"pancetta\",\n        \"pork\",\n        \"rasher\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7e5\",\n    \"label\": \"Bacon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941790,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"balance-scale\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"balanced\",\n        \"justice\",\n        \"legal\",\n        \"measure\",\n        \"weight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f24e\",\n    \"label\": \"Balance Scale\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861360,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"balance-scale-left\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"justice\",\n        \"legal\",\n        \"measure\",\n        \"unbalanced\",\n        \"weight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f515\",\n    \"label\": \"Balance Scale (Left-Weighted)\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861360,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"balance-scale-right\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"justice\",\n        \"legal\",\n        \"measure\",\n        \"unbalanced\",\n        \"weight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f516\",\n    \"label\": \"Balance Scale (Right-Weighted)\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861360,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ban\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"abort\",\n        \"ban\",\n        \"block\",\n        \"cancel\",\n        \"delete\",\n        \"hide\",\n        \"prohibit\",\n        \"remove\",\n        \"stop\",\n        \"trash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f05e\",\n    \"label\": \"ban\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861361,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"band-aid\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bandage\",\n        \"boo boo\",\n        \"first aid\",\n        \"ouch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f462\",\n    \"label\": \"Band-Aid\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861361,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bandcamp\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2d5\",\n    \"label\": \"Bandcamp\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860967,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm48.2 326.1h-181L199.9 178h181l-84.7 156.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"barcode\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"info\",\n        \"laser\",\n        \"price\",\n        \"scan\",\n        \"upc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f02a\",\n    \"label\": \"barcode\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861361,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bars\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"drag\",\n        \"hamburger\",\n        \"list\",\n        \"menu\",\n        \"nav\",\n        \"navigation\",\n        \"ol\",\n        \"reorder\",\n        \"settings\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c9\",\n    \"label\": \"Bars\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861362,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"baseball-ball\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"foul\",\n        \"hardball\",\n        \"league\",\n        \"leather\",\n        \"mlb\",\n        \"softball\",\n        \"sport\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f433\",\n    \"label\": \"Baseball Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861362,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"basketball-ball\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dribble\",\n        \"dunk\",\n        \"hoop\",\n        \"nba\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f434\",\n    \"label\": \"Basketball Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861362,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bath\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clean\",\n        \"shower\",\n        \"tub\",\n        \"wash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2cd\",\n    \"label\": \"Bath\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861362,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battery-empty\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"charge\",\n        \"dead\",\n        \"power\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f244\",\n    \"label\": \"Battery Empty\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861362,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battery-full\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"charge\",\n        \"power\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f240\",\n    \"label\": \"Battery Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battery-half\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"charge\",\n        \"power\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f242\",\n    \"label\": \"Battery 1/2 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battery-quarter\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"charge\",\n        \"low\",\n        \"power\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f243\",\n    \"label\": \"Battery 1/4 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battery-three-quarters\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"charge\",\n        \"power\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f241\",\n    \"label\": \"Battery 3/4 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"battle-net\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f835\",\n    \"label\": \"Battle.net\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775893,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bed\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"lodging\",\n        \"rest\",\n        \"sleep\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f236\",\n    \"label\": \"Bed\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"beer\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"ale\",\n        \"bar\",\n        \"beverage\",\n        \"brewery\",\n        \"drink\",\n        \"lager\",\n        \"liquor\",\n        \"mug\",\n        \"stein\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0fc\",\n    \"label\": \"beer\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"behance\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1b4\",\n    \"label\": \"Behance\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860968,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"behance-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1b5\",\n    \"label\": \"Behance Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860968,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bell\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alarm\",\n        \"alert\",\n        \"chime\",\n        \"notification\",\n        \"reminder\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0f3\",\n    \"label\": \"bell\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861228,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"bell-slash\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alert\",\n        \"cancel\",\n        \"disabled\",\n        \"notification\",\n        \"off\",\n        \"reminder\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1f6\",\n    \"label\": \"Bell Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861363,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861228,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"bezier-curve\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"curves\",\n        \"illustrator\",\n        \"lines\",\n        \"path\",\n        \"vector\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55b\",\n    \"label\": \"Bezier Curve\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bible\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"book\",\n        \"catholicism\",\n        \"christianity\",\n        \"god\",\n        \"holy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f647\",\n    \"label\": \"Bible\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bicycle\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bike\",\n        \"gears\",\n        \"pedal\",\n        \"transportation\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f206\",\n    \"label\": \"Bicycle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"biking\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bicycle\",\n        \"bike\",\n        \"cycle\",\n        \"cycling\",\n        \"ride\",\n        \"wheel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f84a\",\n    \"label\": \"Biking\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084924,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bimobject\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f378\",\n    \"label\": \"BIMobject\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860968,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"binoculars\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"glasses\",\n        \"magnify\",\n        \"scenic\",\n        \"spyglass\",\n        \"view\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e5\",\n    \"label\": \"Binoculars\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"biohazard\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"danger\",\n        \"dangerous\",\n        \"hazmat\",\n        \"medical\",\n        \"radioactive\",\n        \"toxic\",\n        \"waste\",\n        \"zombie\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f780\",\n    \"label\": \"Biohazard\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"birthday-cake\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anniversary\",\n        \"bakery\",\n        \"candles\",\n        \"celebration\",\n        \"dessert\",\n        \"frosting\",\n        \"holiday\",\n        \"party\",\n        \"pastry\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1fd\",\n    \"label\": \"Birthday Cake\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bitbucket\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atlassian\",\n        \"bitbucket-square\",\n        \"git\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f171\",\n    \"label\": \"Bitbucket\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775893,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bitcoin\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f379\",\n    \"label\": \"Bitcoin\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860968,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bity\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f37a\",\n    \"label\": \"Bity\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860969,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"black-tie\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f27e\",\n    \"label\": \"Font Awesome Black Tie\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860969,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"blackberry\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f37b\",\n    \"label\": \"BlackBerry\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860969,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"blender\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cocktail\",\n        \"milkshake\",\n        \"mixer\",\n        \"puree\",\n        \"smoothie\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f517\",\n    \"label\": \"Blender\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"blender-phone\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"appliance\",\n        \"cocktail\",\n        \"communication\",\n        \"fantasy\",\n        \"milkshake\",\n        \"mixer\",\n        \"puree\",\n        \"silly\",\n        \"smoothie\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6b6\",\n    \"label\": \"Blender Phone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"blind\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cane\",\n        \"disability\",\n        \"person\",\n        \"sight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f29d\",\n    \"label\": \"Blind\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"blog\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"journal\",\n        \"log\",\n        \"online\",\n        \"personal\",\n        \"post\",\n        \"web 2.0\",\n        \"wordpress\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f781\",\n    \"label\": \"Blog\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861364,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"blogger\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f37c\",\n    \"label\": \"Blogger\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860969,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"blogger-b\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f37d\",\n    \"label\": \"Blogger B\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860969,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bluetooth\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f293\",\n    \"label\": \"Bluetooth\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860970,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bluetooth-b\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f294\",\n    \"label\": \"Bluetooth\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860970,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bold\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emphasis\",\n        \"format\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f032\",\n    \"label\": \"bold\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084924,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bolt\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"electricity\",\n        \"lightning\",\n        \"weather\",\n        \"zap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0e7\",\n    \"label\": \"Lightning Bolt\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bomb\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"error\",\n        \"explode\",\n        \"fuse\",\n        \"grenade\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e2\",\n    \"label\": \"Bomb\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bone\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"calcium\",\n        \"dog\",\n        \"skeletal\",\n        \"skeleton\",\n        \"tibia\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5d7\",\n    \"label\": \"Bone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bong\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"aparatus\",\n        \"cannabis\",\n        \"marijuana\",\n        \"pipe\",\n        \"smoke\",\n        \"smoking\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55c\",\n    \"label\": \"Bong\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"book\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"diary\",\n        \"documentation\",\n        \"journal\",\n        \"library\",\n        \"read\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f02d\",\n    \"label\": \"book\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861366,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"book-dead\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"crossbones\",\n        \"d&d\",\n        \"dark arts\",\n        \"death\",\n        \"dnd\",\n        \"documentation\",\n        \"evil\",\n        \"fantasy\",\n        \"halloween\",\n        \"holiday\",\n        \"necronomicon\",\n        \"read\",\n        \"skull\",\n        \"spell\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6b7\",\n    \"label\": \"Book of the Dead\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722383,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"book-medical\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"diary\",\n        \"documentation\",\n        \"health\",\n        \"history\",\n        \"journal\",\n        \"library\",\n        \"read\",\n        \"record\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7e6\",\n    \"label\": \"Medical Book\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"book-open\": {\n    \"changes\": [\n      \"5.0.13\",\n      \"5.1.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flyer\",\n        \"library\",\n        \"notebook\",\n        \"open book\",\n        \"pamphlet\",\n        \"reading\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f518\",\n    \"label\": \"Book Open\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"book-reader\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flyer\",\n        \"library\",\n        \"notebook\",\n        \"open book\",\n        \"pamphlet\",\n        \"reading\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5da\",\n    \"label\": \"Book Reader\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861365,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bookmark\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"favorite\",\n        \"marker\",\n        \"read\",\n        \"remember\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f02e\",\n    \"label\": \"bookmark\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861366,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861231,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"bootstrap\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f836\",\n    \"label\": \"Bootstrap\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775894,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M292.3 311.93c0 42.41-39.72 41.43-43.92 41.43h-80.89v-81.69h80.89c42.56 0 43.92 31.9 43.92 40.26zm-50.15-73.13c.67 0 38.44 1 38.44-36.31 0-15.52-3.51-35.87-38.44-35.87h-74.66v72.18h74.66zM448 106.67v298.66A74.89 74.89 0 0 1 373.33 480H74.67A74.89 74.89 0 0 1 0 405.33V106.67A74.89 74.89 0 0 1 74.67 32h298.66A74.89 74.89 0 0 1 448 106.67zM338.05 317.86c0-21.57-6.65-58.29-49.05-67.35v-.73c22.91-9.78 37.34-28.25 37.34-55.64 0-7 2-64.78-77.6-64.78h-127v261.33c128.23 0 139.87 1.68 163.6-5.71 14.21-4.42 52.71-17.98 52.71-67.12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M292.3 311.93c0 42.41-39.72 41.43-43.92 41.43h-80.89v-81.69h80.89c42.56 0 43.92 31.9 43.92 40.26zm-50.15-73.13c.67 0 38.44 1 38.44-36.31 0-15.52-3.51-35.87-38.44-35.87h-74.66v72.18h74.66zM448 106.67v298.66A74.89 74.89 0 0 1 373.33 480H74.67A74.89 74.89 0 0 1 0 405.33V106.67A74.89 74.89 0 0 1 74.67 32h298.66A74.89 74.89 0 0 1 448 106.67zM338.05 317.86c0-21.57-6.65-58.29-49.05-67.35v-.73c22.91-9.78 37.34-28.25 37.34-55.64 0-7 2-64.78-77.6-64.78h-127v261.33c128.23 0 139.87 1.68 163.6-5.71 14.21-4.42 52.71-17.98 52.71-67.12z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"border-all\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cell\",\n        \"grid\",\n        \"outline\",\n        \"stroke\",\n        \"table\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f84c\",\n    \"label\": \"Border All\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084924,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"border-none\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cell\",\n        \"grid\",\n        \"outline\",\n        \"stroke\",\n        \"table\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f850\",\n    \"label\": \"Border None\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084925,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"border-style\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f853\",\n    \"label\": \"Border Style\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084926,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bowling-ball\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alley\",\n        \"candlepin\",\n        \"gutter\",\n        \"lane\",\n        \"strike\",\n        \"tenpin\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f436\",\n    \"label\": \"Bowling Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861366,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"box\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"container\",\n        \"package\",\n        \"storage\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f466\",\n    \"label\": \"Box\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861367,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"box-open\": {\n    \"changes\": [\n      \"5.0.9\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"container\",\n        \"package\",\n        \"storage\",\n        \"unpack\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f49e\",\n    \"label\": \"Box Open\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699937,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"boxes\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archives\",\n        \"inventory\",\n        \"storage\",\n        \"warehouse\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f468\",\n    \"label\": \"Boxes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861367,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"braille\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabet\",\n        \"blind\",\n        \"dots\",\n        \"raised\",\n        \"vision\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a1\",\n    \"label\": \"Braille\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861367,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"brain\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cerebellum\",\n        \"gray matter\",\n        \"intellect\",\n        \"medulla oblongata\",\n        \"mind\",\n        \"noodle\",\n        \"wit\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5dc\",\n    \"label\": \"Brain\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084926,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bread-slice\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bake\",\n        \"bakery\",\n        \"baking\",\n        \"dough\",\n        \"flour\",\n        \"gluten\",\n        \"grain\",\n        \"sandwich\",\n        \"sourdough\",\n        \"toast\",\n        \"wheat\",\n        \"yeast\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ec\",\n    \"label\": \"Bread Slice\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941791,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"briefcase\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bag\",\n        \"business\",\n        \"luggage\",\n        \"office\",\n        \"work\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0b1\",\n    \"label\": \"Briefcase\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"briefcase-medical\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"doctor\",\n        \"emt\",\n        \"first aid\",\n        \"health\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f469\",\n    \"label\": \"Medical Briefcase\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"broadcast-tower\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airwaves\",\n        \"antenna\",\n        \"radio\",\n        \"reception\",\n        \"waves\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f519\",\n    \"label\": \"Broadcast Tower\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"broom\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clean\",\n        \"firebolt\",\n        \"fly\",\n        \"halloween\",\n        \"nimbus 2000\",\n        \"quidditch\",\n        \"sweep\",\n        \"witch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51a\",\n    \"label\": \"Broom\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"brush\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"art\",\n        \"bristles\",\n        \"color\",\n        \"handle\",\n        \"paint\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55d\",\n    \"label\": \"Brush\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"btc\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f15a\",\n    \"label\": \"BTC\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860970,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"buffer\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f837\",\n    \"label\": \"Buffer\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775894,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\\\" class=\\\"a\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bug\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beetle\",\n        \"error\",\n        \"insect\",\n        \"report\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f188\",\n    \"label\": \"Bug\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"building\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apartment\",\n        \"business\",\n        \"city\",\n        \"company\",\n        \"office\",\n        \"work\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1ad\",\n    \"label\": \"Building\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861233,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"bullhorn\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"announcement\",\n        \"broadcast\",\n        \"louder\",\n        \"megaphone\",\n        \"share\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0a1\",\n    \"label\": \"bullhorn\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861368,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bullseye\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archery\",\n        \"goal\",\n        \"objective\",\n        \"target\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f140\",\n    \"label\": \"Bullseye\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"burn\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"caliente\",\n        \"energy\",\n        \"fire\",\n        \"flame\",\n        \"gas\",\n        \"heat\",\n        \"hot\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f46a\",\n    \"label\": \"Burn\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"buromobelexperte\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f37f\",\n    \"label\": \"Büromöbel-Experte GmbH & Co. KG.\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860970,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"bus\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"public transportation\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f207\",\n    \"label\": \"Bus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"bus-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mta\",\n        \"public transportation\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55e\",\n    \"label\": \"Bus Alt\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"business-time\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alarm\",\n        \"briefcase\",\n        \"business socks\",\n        \"clock\",\n        \"flight of the conchords\",\n        \"reminder\",\n        \"wednesday\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f64a\",\n    \"label\": \"Business Time\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"buysellads\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f20d\",\n    \"label\": \"BuySellAds\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860970,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"calculator\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"abacus\",\n        \"addition\",\n        \"arithmetic\",\n        \"counting\",\n        \"math\",\n        \"multiplication\",\n        \"subtraction\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ec\",\n    \"label\": \"Calculator\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"calendar\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"calendar-o\",\n        \"date\",\n        \"event\",\n        \"schedule\",\n        \"time\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f133\",\n    \"label\": \"Calendar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861235,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-alt\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.6.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"calendar\",\n        \"date\",\n        \"event\",\n        \"schedule\",\n        \"time\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f073\",\n    \"label\": \"Alternate Calendar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548450777897,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-check\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"appointment\",\n        \"confirm\",\n        \"correct\",\n        \"date\",\n        \"done\",\n        \"event\",\n        \"ok\",\n        \"schedule\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"time\",\n        \"todo\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f274\",\n    \"label\": \"Calendar Check\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861369,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861234,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-day\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"date\",\n        \"detail\",\n        \"event\",\n        \"focus\",\n        \"schedule\",\n        \"single day\",\n        \"time\",\n        \"today\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f783\",\n    \"label\": \"Calendar with Day Focus\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"calendar-minus\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"calendar\",\n        \"date\",\n        \"delete\",\n        \"event\",\n        \"negative\",\n        \"remove\",\n        \"schedule\",\n        \"time\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f272\",\n    \"label\": \"Calendar Minus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861235,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-plus\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"calendar\",\n        \"create\",\n        \"date\",\n        \"event\",\n        \"new\",\n        \"positive\",\n        \"schedule\",\n        \"time\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f271\",\n    \"label\": \"Calendar Plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861235,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-times\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"calendar\",\n        \"date\",\n        \"delete\",\n        \"event\",\n        \"remove\",\n        \"schedule\",\n        \"time\",\n        \"when\",\n        \"x\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f273\",\n    \"label\": \"Calendar Times\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861235,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"calendar-week\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"date\",\n        \"detail\",\n        \"event\",\n        \"focus\",\n        \"schedule\",\n        \"single week\",\n        \"time\",\n        \"today\",\n        \"when\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f784\",\n    \"label\": \"Calendar with Week Focus\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"camera\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"image\",\n        \"lens\",\n        \"photo\",\n        \"picture\",\n        \"record\",\n        \"shutter\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f030\",\n    \"label\": \"camera\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"camera-retro\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"image\",\n        \"lens\",\n        \"photo\",\n        \"picture\",\n        \"record\",\n        \"shutter\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f083\",\n    \"label\": \"Retro Camera\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861370,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"campground\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"camping\",\n        \"fall\",\n        \"outdoors\",\n        \"teepee\",\n        \"tent\",\n        \"tipi\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6bb\",\n    \"label\": \"Campground\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"canadian-maple-leaf\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"canada\",\n        \"flag\",\n        \"flora\",\n        \"nature\",\n        \"plant\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f785\",\n    \"label\": \"Canadian Maple Leaf\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775894,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"candy-cane\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"candy\",\n        \"christmas\",\n        \"holiday\",\n        \"mint\",\n        \"peppermint\",\n        \"striped\",\n        \"xmas\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f786\",\n    \"label\": \"Candy Cane\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cannabis\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bud\",\n        \"chronic\",\n        \"drugs\",\n        \"endica\",\n        \"endo\",\n        \"ganja\",\n        \"marijuana\",\n        \"mary jane\",\n        \"pot\",\n        \"reefer\",\n        \"sativa\",\n        \"spliff\",\n        \"weed\",\n        \"whacky-tabacky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f55f\",\n    \"label\": \"Cannabis\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"capsules\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medicine\",\n        \"pills\",\n        \"prescription\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f46b\",\n    \"label\": \"Capsules\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"car\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"automobile\",\n        \"sedan\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1b9\",\n    \"label\": \"Car\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861372,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"car-alt\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"automobile\",\n        \"sedan\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5de\",\n    \"label\": \"Alternate Car\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"car-battery\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"electric\",\n        \"mechanic\",\n        \"power\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5df\",\n    \"label\": \"Car Battery\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"car-crash\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accident\",\n        \"auto\",\n        \"automobile\",\n        \"insurance\",\n        \"sedan\",\n        \"transportation\",\n        \"vehicle\",\n        \"wreck\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5e1\",\n    \"label\": \"Car Crash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"car-side\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"automobile\",\n        \"sedan\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5e4\",\n    \"label\": \"Car Side\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861372,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"caret-down\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"dropdown\",\n        \"expand\",\n        \"menu\",\n        \"more\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d7\",\n    \"label\": \"Caret Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861372,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"caret-left\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"back\",\n        \"previous\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d9\",\n    \"label\": \"Caret Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861372,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"caret-right\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"forward\",\n        \"next\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0da\",\n    \"label\": \"Caret Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"caret-square-down\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"caret-square-o-down\",\n        \"dropdown\",\n        \"expand\",\n        \"menu\",\n        \"more\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f150\",\n    \"label\": \"Caret Square Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861238,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"caret-square-left\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"back\",\n        \"caret-square-o-left\",\n        \"previous\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f191\",\n    \"label\": \"Caret Square Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861238,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"caret-square-right\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"caret-square-o-right\",\n        \"forward\",\n        \"next\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f152\",\n    \"label\": \"Caret Square Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861238,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"caret-square-up\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"caret-square-o-up\",\n        \"collapse\",\n        \"triangle\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f151\",\n    \"label\": \"Caret Square Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861238,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"caret-up\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"collapse\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d8\",\n    \"label\": \"Caret Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"carrot\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bugs bunny\",\n        \"orange\",\n        \"vegan\",\n        \"vegetable\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f787\",\n    \"label\": \"Carrot\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cart-arrow-down\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\",\n        \"save\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f218\",\n    \"label\": \"Shopping Cart Arrow Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cart-plus\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"create\",\n        \"new\",\n        \"positive\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f217\",\n    \"label\": \"Add to Shopping Cart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cash-register\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"cha-ching\",\n        \"change\",\n        \"checkout\",\n        \"commerce\",\n        \"leaerboard\",\n        \"machine\",\n        \"pay\",\n        \"payment\",\n        \"purchase\",\n        \"store\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f788\",\n    \"label\": \"Cash Register\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cat\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"feline\",\n        \"halloween\",\n        \"holiday\",\n        \"kitten\",\n        \"kitty\",\n        \"meow\",\n        \"pet\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6be\",\n    \"label\": \"Cat\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cc-amazon-pay\": {\n    \"changes\": [\n      \"5.0.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42d\",\n    \"label\": \"Amazon Pay Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860971,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-amex\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"amex\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f3\",\n    \"label\": \"American Express Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699926,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-apple-pay\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f416\",\n    \"label\": \"Apple Pay Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860971,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-diners-club\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f24c\",\n    \"label\": \"Diner's Club Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860971,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-discover\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f2\",\n    \"label\": \"Discover Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722325,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-jcb\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f24b\",\n    \"label\": \"JCB Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860972,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-mastercard\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f1\",\n    \"label\": \"MasterCard Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860972,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-paypal\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f4\",\n    \"label\": \"Paypal Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860972,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-stripe\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f5\",\n    \"label\": \"Stripe Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722325,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cc-visa\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1f0\",\n    \"label\": \"Visa Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860973,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"centercode\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f380\",\n    \"label\": \"Centercode\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860973,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"centos\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linux\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f789\",\n    \"label\": \"Centos\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775895,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"certificate\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"badge\",\n        \"star\",\n        \"verified\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0a3\",\n    \"label\": \"certificate\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chair\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"furniture\",\n        \"seat\",\n        \"sit\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6c0\",\n    \"label\": \"Chair\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722384,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chalkboard\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blackboard\",\n        \"learning\",\n        \"school\",\n        \"teaching\",\n        \"whiteboard\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51b\",\n    \"label\": \"Chalkboard\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chalkboard-teacher\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blackboard\",\n        \"instructor\",\n        \"learning\",\n        \"professor\",\n        \"school\",\n        \"whiteboard\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51c\",\n    \"label\": \"Chalkboard Teacher\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"charging-station\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"electric\",\n        \"ev\",\n        \"tesla\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5e7\",\n    \"label\": \"Charging Station\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chart-area\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"analytics\",\n        \"area\",\n        \"chart\",\n        \"graph\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1fe\",\n    \"label\": \"Area Chart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chart-bar\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"analytics\",\n        \"bar\",\n        \"chart\",\n        \"graph\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f080\",\n    \"label\": \"Bar Chart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861374,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861239,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"chart-line\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"analytics\",\n        \"chart\",\n        \"dashboard\",\n        \"gain\",\n        \"graph\",\n        \"increase\",\n        \"line\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f201\",\n    \"label\": \"Line Chart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861375,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chart-pie\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"analytics\",\n        \"chart\",\n        \"diagram\",\n        \"graph\",\n        \"pie\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f200\",\n    \"label\": \"Pie Chart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861375,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 544 512\\\"><path d=\\\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"544\",\n          \"512\"\n        ],\n        \"width\": 544,\n        \"height\": 512,\n        \"path\": \"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"check\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"checkmark\",\n        \"confirm\",\n        \"correct\",\n        \"done\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"ok\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"todo\",\n        \"yes\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f00c\",\n    \"label\": \"Check\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861375,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"check-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"confirm\",\n        \"correct\",\n        \"done\",\n        \"ok\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"todo\",\n        \"yes\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f058\",\n    \"label\": \"Check Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861375,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861240,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"check-double\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"checkmark\",\n        \"confirm\",\n        \"correct\",\n        \"done\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"ok\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"todo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f560\",\n    \"label\": \"Double Check\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084928,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"check-square\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"checkmark\",\n        \"confirm\",\n        \"correct\",\n        \"done\",\n        \"ok\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"todo\",\n        \"yes\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f14a\",\n    \"label\": \"Check Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861375,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861240,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"cheese\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cheddar\",\n        \"curd\",\n        \"gouda\",\n        \"melt\",\n        \"parmesan\",\n        \"sandwich\",\n        \"swiss\",\n        \"wedge\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ef\",\n    \"label\": \"Cheese\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941792,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"castle\",\n        \"checkmate\",\n        \"game\",\n        \"king\",\n        \"rook\",\n        \"strategy\",\n        \"tournament\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f439\",\n    \"label\": \"Chess\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084932,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-bishop\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f43a\",\n    \"label\": \"Chess Bishop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084928,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-board\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.7.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f43c\",\n    \"label\": \"Chess Board\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084929,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-king\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f43f\",\n    \"label\": \"Chess King\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084930,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-knight\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"horse\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f441\",\n    \"label\": \"Chess Knight\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084930,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-pawn\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f443\",\n    \"label\": \"Chess Pawn\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084931,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-queen\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f445\",\n    \"label\": \"Chess Queen\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084931,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chess-rook\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"board\",\n        \"castle\",\n        \"checkmate\",\n        \"game\",\n        \"strategy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f447\",\n    \"label\": \"Chess Rook\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084932,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-circle-down\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"download\",\n        \"dropdown\",\n        \"menu\",\n        \"more\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f13a\",\n    \"label\": \"Chevron Circle Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-circle-left\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"back\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f137\",\n    \"label\": \"Chevron Circle Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-circle-right\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"forward\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f138\",\n    \"label\": \"Chevron Circle Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-circle-up\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"collapse\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f139\",\n    \"label\": \"Chevron Circle Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-down\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"download\",\n        \"expand\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f078\",\n    \"label\": \"chevron-down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-left\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"back\",\n        \"bracket\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f053\",\n    \"label\": \"chevron-left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861377,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-right\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"bracket\",\n        \"forward\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f054\",\n    \"label\": \"chevron-right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chevron-up\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"collapse\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f077\",\n    \"label\": \"chevron-up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"child\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"boy\",\n        \"girl\",\n        \"kid\",\n        \"toddler\",\n        \"young\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ae\",\n    \"label\": \"Child\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"chrome\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f268\",\n    \"label\": \"Chrome\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860973,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"chromecast\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f838\",\n    \"label\": \"Chromecast\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775895,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M447.83 64H64a42.72 42.72 0 0 0-42.72 42.72v63.92H64v-63.92h383.83v298.56H298.64V448H448a42.72 42.72 0 0 0 42.72-42.72V106.72A42.72 42.72 0 0 0 448 64zM21.28 383.58v63.92h63.91a63.91 63.91 0 0 0-63.91-63.92zm0-85.28V341a106.63 106.63 0 0 1 106.64 106.66v.34h42.72a149.19 149.19 0 0 0-149-149.36h-.33zm0-85.27v42.72c106-.1 192 85.75 192.08 191.75v.5h42.72c-.46-129.46-105.34-234.27-234.8-234.64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M447.83 64H64a42.72 42.72 0 0 0-42.72 42.72v63.92H64v-63.92h383.83v298.56H298.64V448H448a42.72 42.72 0 0 0 42.72-42.72V106.72A42.72 42.72 0 0 0 448 64zM21.28 383.58v63.92h63.91a63.91 63.91 0 0 0-63.91-63.92zm0-85.28V341a106.63 106.63 0 0 1 106.64 106.66v.34h42.72a149.19 149.19 0 0 0-149-149.36h-.33zm0-85.27v42.72c106-.1 192 85.75 192.08 191.75v.5h42.72c-.46-129.46-105.34-234.27-234.8-234.64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"church\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"cathedral\",\n        \"chapel\",\n        \"community\",\n        \"religion\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51d\",\n    \"label\": \"Church\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"circle\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"circle-thin\",\n        \"diameter\",\n        \"dot\",\n        \"ellipse\",\n        \"notification\",\n        \"round\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f111\",\n    \"label\": \"Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861243,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"circle-notch\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"circle-o-notch\",\n        \"diameter\",\n        \"dot\",\n        \"ellipse\",\n        \"round\",\n        \"spinner\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ce\",\n    \"label\": \"Circle Notched\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861378,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"city\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buildings\",\n        \"busy\",\n        \"skyscrapers\",\n        \"urban\",\n        \"windows\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f64f\",\n    \"label\": \"City\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"clinic-medical\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"doctor\",\n        \"general practitioner\",\n        \"hospital\",\n        \"infirmary\",\n        \"medicine\",\n        \"office\",\n        \"outpatient\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7f2\",\n    \"label\": \"Medical Clinic\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299190,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"clipboard\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"copy\",\n        \"notes\",\n        \"paste\",\n        \"record\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f328\",\n    \"label\": \"Clipboard\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548363722371,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"clipboard-check\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"agree\",\n        \"confirm\",\n        \"done\",\n        \"ok\",\n        \"select\",\n        \"success\",\n        \"tick\",\n        \"todo\",\n        \"yes\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f46c\",\n    \"label\": \"Clipboard with Check\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"clipboard-list\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"intinerary\",\n        \"ol\",\n        \"schedule\",\n        \"tick\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f46d\",\n    \"label\": \"Clipboard List\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"clock\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"date\",\n        \"late\",\n        \"schedule\",\n        \"time\",\n        \"timer\",\n        \"timestamp\",\n        \"watch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f017\",\n    \"label\": \"Clock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861244,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"clone\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"copy\",\n        \"duplicate\",\n        \"paste\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f24d\",\n    \"label\": \"Clone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861244,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"closed-captioning\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cc\",\n        \"deaf\",\n        \"hearing\",\n        \"subtitle\",\n        \"subtitling\",\n        \"text\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f20a\",\n    \"label\": \"Closed Captioning\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861244,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"cloud\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atmosphere\",\n        \"fog\",\n        \"overcast\",\n        \"save\",\n        \"upload\",\n        \"weather\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c2\",\n    \"label\": \"Cloud\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861381,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-download-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\",\n        \"export\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f381\",\n    \"label\": \"Alternate Cloud Download\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861379,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-meatball\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"FLDSMDFR\",\n        \"food\",\n        \"spaghetti\",\n        \"storm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f73b\",\n    \"label\": \"Cloud with (a chance of) Meatball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861380,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-moon\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crescent\",\n        \"evening\",\n        \"lunar\",\n        \"night\",\n        \"partly cloudy\",\n        \"sky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6c3\",\n    \"label\": \"Cloud with Moon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861380,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-moon-rain\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crescent\",\n        \"evening\",\n        \"lunar\",\n        \"night\",\n        \"partly cloudy\",\n        \"precipitation\",\n        \"rain\",\n        \"sky\",\n        \"storm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f73c\",\n    \"label\": \"Cloud with Moon and Rain\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861380,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-rain\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"precipitation\",\n        \"rain\",\n        \"sky\",\n        \"storm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f73d\",\n    \"label\": \"Cloud with Rain\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861380,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-showers-heavy\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"precipitation\",\n        \"rain\",\n        \"sky\",\n        \"storm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f740\",\n    \"label\": \"Cloud with Heavy Showers\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861380,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-sun\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clear\",\n        \"day\",\n        \"daytime\",\n        \"fall\",\n        \"outdoors\",\n        \"overcast\",\n        \"partly cloudy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6c4\",\n    \"label\": \"Cloud with Sun\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861381,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-sun-rain\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"day\",\n        \"overcast\",\n        \"precipitation\",\n        \"storm\",\n        \"summer\",\n        \"sunshower\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f743\",\n    \"label\": \"Cloud with Sun and Rain\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861381,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloud-upload-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cloud-upload\",\n        \"import\",\n        \"save\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f382\",\n    \"label\": \"Alternate Cloud Upload\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861381,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cloudscale\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f383\",\n    \"label\": \"cloudscale.ch\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860973,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cloudsmith\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f384\",\n    \"label\": \"Cloudsmith\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860973,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 332 512\\\"><path d=\\\"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"332\",\n          \"512\"\n        ],\n        \"width\": 332,\n        \"height\": 512,\n        \"path\": \"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cloudversify\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f385\",\n    \"label\": \"cloudversify\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860974,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 616 512\\\"><path d=\\\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"616\",\n          \"512\"\n        ],\n        \"width\": 616,\n        \"height\": 512,\n        \"path\": \"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cocktail\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"beverage\",\n        \"drink\",\n        \"gin\",\n        \"glass\",\n        \"margarita\",\n        \"martini\",\n        \"vodka\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f561\",\n    \"label\": \"Cocktail\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"code\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"brackets\",\n        \"code\",\n        \"development\",\n        \"html\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f121\",\n    \"label\": \"Code\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"code-branch\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"branch\",\n        \"code-fork\",\n        \"fork\",\n        \"git\",\n        \"github\",\n        \"rebase\",\n        \"svn\",\n        \"vcs\",\n        \"version\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f126\",\n    \"label\": \"Code Branch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"codepen\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1cb\",\n    \"label\": \"Codepen\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860974,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"codiepie\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f284\",\n    \"label\": \"Codie Pie\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860974,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 472 512\\\"><path d=\\\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"472\",\n          \"512\"\n        ],\n        \"width\": 472,\n        \"height\": 512,\n        \"path\": \"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"coffee\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beverage\",\n        \"breakfast\",\n        \"cafe\",\n        \"drink\",\n        \"fall\",\n        \"morning\",\n        \"mug\",\n        \"seasonal\",\n        \"tea\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0f4\",\n    \"label\": \"Coffee\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cog\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"gear\",\n        \"mechanical\",\n        \"settings\",\n        \"sprocket\",\n        \"wheel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f013\",\n    \"label\": \"cog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cogs\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"gears\",\n        \"mechanical\",\n        \"settings\",\n        \"sprocket\",\n        \"wheel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f085\",\n    \"label\": \"cogs\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"coins\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"dime\",\n        \"financial\",\n        \"gold\",\n        \"money\",\n        \"penny\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51e\",\n    \"label\": \"Coins\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"columns\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"dashboard\",\n        \"organize\",\n        \"panes\",\n        \"split\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0db\",\n    \"label\": \"Columns\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861382,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"comment\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"note\",\n        \"notification\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f075\",\n    \"label\": \"comment\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861250,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"comment-alt\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"note\",\n        \"notification\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f27a\",\n    \"label\": \"Alternate Comment\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861384,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861249,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"comment-dollar\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"money\",\n        \"note\",\n        \"notification\",\n        \"pay\",\n        \"sms\",\n        \"speech\",\n        \"spend\",\n        \"texting\",\n        \"transfer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f651\",\n    \"label\": \"Comment Dollar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861384,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"comment-dots\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"more\",\n        \"note\",\n        \"notification\",\n        \"reply\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f4ad\",\n    \"label\": \"Comment Dots\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861384,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861249,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"comment-medical\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"advice\",\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"diagnose\",\n        \"feedback\",\n        \"message\",\n        \"note\",\n        \"notification\",\n        \"prescription\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7f5\",\n    \"label\": \"Alternate Medical Chat\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299246,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"comment-slash\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"cancel\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"mute\",\n        \"note\",\n        \"notification\",\n        \"quiet\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4b3\",\n    \"label\": \"Comment Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861384,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"comments\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"note\",\n        \"notification\",\n        \"sms\",\n        \"speech\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f086\",\n    \"label\": \"comments\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861250,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"comments-dollar\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bubble\",\n        \"chat\",\n        \"commenting\",\n        \"conversation\",\n        \"feedback\",\n        \"message\",\n        \"money\",\n        \"note\",\n        \"notification\",\n        \"pay\",\n        \"sms\",\n        \"speech\",\n        \"spend\",\n        \"texting\",\n        \"transfer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f653\",\n    \"label\": \"Comments Dollar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"compact-disc\": {\n    \"changes\": [\n      \"5.0.13\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"album\",\n        \"bluray\",\n        \"cd\",\n        \"disc\",\n        \"dvd\",\n        \"media\",\n        \"movie\",\n        \"music\",\n        \"record\",\n        \"video\",\n        \"vinyl\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f51f\",\n    \"label\": \"Compact Disc\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"compass\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"directory\",\n        \"location\",\n        \"menu\",\n        \"navigation\",\n        \"safari\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f14e\",\n    \"label\": \"Compass\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861251,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"compress\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"collapse\",\n        \"fullscreen\",\n        \"minimize\",\n        \"move\",\n        \"resize\",\n        \"shrink\",\n        \"smaller\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f066\",\n    \"label\": \"Compress\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"compress-arrows-alt\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"collapse\",\n        \"fullscreen\",\n        \"minimize\",\n        \"move\",\n        \"resize\",\n        \"shrink\",\n        \"smaller\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f78c\",\n    \"label\": \"Alternate Compress Arrows\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861385,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"concierge-bell\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"attention\",\n        \"hotel\",\n        \"receptionist\",\n        \"service\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f562\",\n    \"label\": \"Concierge Bell\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"confluence\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atlassian\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f78d\",\n    \"label\": \"Confluence\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860974,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"connectdevelop\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f20e\",\n    \"label\": \"Connect Develop\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860974,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"contao\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f26d\",\n    \"label\": \"Contao\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860975,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cookie\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"baked good\",\n        \"chips\",\n        \"chocolate\",\n        \"eat\",\n        \"snack\",\n        \"sweet\",\n        \"treat\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f563\",\n    \"label\": \"Cookie\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cookie-bite\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"baked good\",\n        \"bitten\",\n        \"chips\",\n        \"chocolate\",\n        \"eat\",\n        \"snack\",\n        \"sweet\",\n        \"treat\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f564\",\n    \"label\": \"Cookie Bite\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"copy\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clone\",\n        \"duplicate\",\n        \"file\",\n        \"files-o\",\n        \"paper\",\n        \"paste\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0c5\",\n    \"label\": \"Copy\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861252,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"copyright\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"brand\",\n        \"mark\",\n        \"register\",\n        \"trademark\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1f9\",\n    \"label\": \"Copyright\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861252,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"cotton-bureau\": {\n    \"changes\": [\n      \"5.10.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clothing\",\n        \"t-shirts\",\n        \"tshirts\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f89e\",\n    \"label\": \"Cotton Bureau\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1564081968781,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"couch\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chair\",\n        \"cushion\",\n        \"furniture\",\n        \"relax\",\n        \"sofa\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4b8\",\n    \"label\": \"Couch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861386,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cpanel\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f388\",\n    \"label\": \"cPanel\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722325,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.0.11\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f25e\",\n    \"label\": \"Creative Commons\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-by\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4e7\",\n    \"label\": \"Creative Commons Attribution\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860975,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-nc\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4e8\",\n    \"label\": \"Creative Commons Noncommercial\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860976,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-nc-eu\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4e9\",\n    \"label\": \"Creative Commons Noncommercial (Euro Sign)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860975,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-nc-jp\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4ea\",\n    \"label\": \"Creative Commons Noncommercial (Yen Sign)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860975,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-nd\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4eb\",\n    \"label\": \"Creative Commons No Derivative Works\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860976,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-pd\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4ec\",\n    \"label\": \"Creative Commons Public Domain\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860976,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-pd-alt\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4ed\",\n    \"label\": \"Alternate Creative Commons Public Domain\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722326,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-remix\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4ee\",\n    \"label\": \"Creative Commons Remix\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860976,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-sa\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4ef\",\n    \"label\": \"Creative Commons Share Alike\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-sampling\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f0\",\n    \"label\": \"Creative Commons Sampling\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-sampling-plus\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f1\",\n    \"label\": \"Creative Commons Sampling +\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-share\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f2\",\n    \"label\": \"Creative Commons Share\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"creative-commons-zero\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f3\",\n    \"label\": \"Creative Commons CC0\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860977,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"credit-card\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"checkout\",\n        \"credit-card-alt\",\n        \"debit\",\n        \"money\",\n        \"payment\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f09d\",\n    \"label\": \"Credit Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861252,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"critical-role\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"game\",\n        \"gaming\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f6c9\",\n    \"label\": \"Critical Role\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775895,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"crop\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"frame\",\n        \"mask\",\n        \"resize\",\n        \"shrink\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f125\",\n    \"label\": \"crop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"crop-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"frame\",\n        \"mask\",\n        \"resize\",\n        \"shrink\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f565\",\n    \"label\": \"Alternate Crop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cross\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"catholicism\",\n        \"christianity\",\n        \"church\",\n        \"jesus\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f654\",\n    \"label\": \"Cross\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"crosshairs\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"aim\",\n        \"bullseye\",\n        \"gpd\",\n        \"picker\",\n        \"position\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f05b\",\n    \"label\": \"Crosshairs\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"crow\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bird\",\n        \"bullfrog\",\n        \"fauna\",\n        \"halloween\",\n        \"holiday\",\n        \"toad\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f520\",\n    \"label\": \"Crow\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"crown\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"award\",\n        \"favorite\",\n        \"king\",\n        \"queen\",\n        \"royal\",\n        \"tiara\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f521\",\n    \"label\": \"Crown\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"crutch\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cane\",\n        \"injury\",\n        \"mobility\",\n        \"wheelchair\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7f7\",\n    \"label\": \"Crutch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299276,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"css3\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"code\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f13c\",\n    \"label\": \"CSS 3 Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860978,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"css3-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f38b\",\n    \"label\": \"Alternate CSS3 Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860978,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"cube\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"3d\",\n        \"block\",\n        \"dice\",\n        \"package\",\n        \"square\",\n        \"tesseract\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1b2\",\n    \"label\": \"Cube\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cubes\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"3d\",\n        \"block\",\n        \"dice\",\n        \"package\",\n        \"pyramid\",\n        \"square\",\n        \"stack\",\n        \"tesseract\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1b3\",\n    \"label\": \"Cubes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861387,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cut\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clip\",\n        \"scissors\",\n        \"snip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c4\",\n    \"label\": \"Cut\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"cuttlefish\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f38c\",\n    \"label\": \"Cuttlefish\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860978,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 440 512\\\"><path d=\\\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"440\",\n          \"512\"\n        ],\n        \"width\": 440,\n        \"height\": 512,\n        \"path\": \"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"d-and-d\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f38d\",\n    \"label\": \"Dungeons & Dragons\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860978,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"d-and-d-beyond\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"gaming\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f6ca\",\n    \"label\": \"D&D Beyond\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722326,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dashcube\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f210\",\n    \"label\": \"DashCube\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860979,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"database\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"development\",\n        \"directory\",\n        \"memory\",\n        \"storage\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1c0\",\n    \"label\": \"Database\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"deaf\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ear\",\n        \"hearing\",\n        \"sign language\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a4\",\n    \"label\": \"Deaf\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"delicious\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a5\",\n    \"label\": \"Delicious\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699927,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"democrat\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"american\",\n        \"democratic party\",\n        \"donkey\",\n        \"election\",\n        \"left\",\n        \"left-wing\",\n        \"liberal\",\n        \"politics\",\n        \"usa\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f747\",\n    \"label\": \"Democrat\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"deploydog\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f38e\",\n    \"label\": \"deploy.dog\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860979,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"deskpro\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f38f\",\n    \"label\": \"Deskpro\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860979,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"desktop\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"cpu\",\n        \"demo\",\n        \"desktop\",\n        \"device\",\n        \"imac\",\n        \"machine\",\n        \"monitor\",\n        \"pc\",\n        \"screen\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f108\",\n    \"label\": \"Desktop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dev\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f6cc\",\n    \"label\": \"DEV\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860979,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"deviantart\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1bd\",\n    \"label\": \"deviantART\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860980,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dharmachakra\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buddhism\",\n        \"buddhist\",\n        \"wheel of dharma\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f655\",\n    \"label\": \"Dharmachakra\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dhl\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dalsey\",\n        \"Hillblom and Lynn\",\n        \"german\",\n        \"package\",\n        \"shipping\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f790\",\n    \"label\": \"DHL\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860980,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"diagnoses\": {\n    \"changes\": [\n      \"5.0.7\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"analyze\",\n        \"detect\",\n        \"diagnosis\",\n        \"examine\",\n        \"medicine\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f470\",\n    \"label\": \"Diagnoses\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"diaspora\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f791\",\n    \"label\": \"Diaspora\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775895,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dice\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f522\",\n    \"label\": \"Dice\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-d20\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"chance\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6cf\",\n    \"label\": \"Dice D20\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-d6\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"chance\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6d1\",\n    \"label\": \"Dice D6\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-five\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f523\",\n    \"label\": \"Dice Five\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-four\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f524\",\n    \"label\": \"Dice Four\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-one\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f525\",\n    \"label\": \"Dice One\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-six\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f526\",\n    \"label\": \"Dice Six\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-three\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f527\",\n    \"label\": \"Dice Three\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dice-two\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chance\",\n        \"gambling\",\n        \"game\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f528\",\n    \"label\": \"Dice Two\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"digg\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a6\",\n    \"label\": \"Digg Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860980,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"digital-ocean\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f391\",\n    \"label\": \"Digital Ocean\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699927,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"digital-tachograph\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"data\",\n        \"distance\",\n        \"speed\",\n        \"tachometer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f566\",\n    \"label\": \"Digital Tachograph\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"directions\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"map\",\n        \"navigation\",\n        \"sign\",\n        \"turn\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5eb\",\n    \"label\": \"Directions\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"discord\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f392\",\n    \"label\": \"Discord\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860980,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M297.216 243.2c0 15.616-11.52 28.416-26.112 28.416-14.336 0-26.112-12.8-26.112-28.416s11.52-28.416 26.112-28.416c14.592 0 26.112 12.8 26.112 28.416zm-119.552-28.416c-14.592 0-26.112 12.8-26.112 28.416s11.776 28.416 26.112 28.416c14.592 0 26.112-12.8 26.112-28.416.256-15.616-11.52-28.416-26.112-28.416zM448 52.736V512c-64.494-56.994-43.868-38.128-118.784-107.776l13.568 47.36H52.48C23.552 451.584 0 428.032 0 398.848V52.736C0 23.552 23.552 0 52.48 0h343.04C424.448 0 448 23.552 448 52.736zm-72.96 242.688c0-82.432-36.864-149.248-36.864-149.248-36.864-27.648-71.936-26.88-71.936-26.88l-3.584 4.096c43.52 13.312 63.744 32.512 63.744 32.512-60.811-33.329-132.244-33.335-191.232-7.424-9.472 4.352-15.104 7.424-15.104 7.424s21.248-20.224 67.328-33.536l-2.56-3.072s-35.072-.768-71.936 26.88c0 0-36.864 66.816-36.864 149.248 0 0 21.504 37.12 78.08 38.912 0 0 9.472-11.52 17.152-21.248-32.512-9.728-44.8-30.208-44.8-30.208 3.766 2.636 9.976 6.053 10.496 6.4 43.21 24.198 104.588 32.126 159.744 8.96 8.96-3.328 18.944-8.192 29.44-15.104 0 0-12.8 20.992-46.336 30.464 7.68 9.728 16.896 20.736 16.896 20.736 56.576-1.792 78.336-38.912 78.336-38.912z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"discourse\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f393\",\n    \"label\": \"Discourse\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860981,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"divide\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"calculus\",\n        \"division\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f529\",\n    \"label\": \"Divide\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dizzy\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dazed\",\n        \"dead\",\n        \"disapprove\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f567\",\n    \"label\": \"Dizzy Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861256,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"dna\": {\n    \"changes\": [\n      \"5.0.7\",\n      \"5.0.10\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"double helix\",\n        \"genetic\",\n        \"helix\",\n        \"molecule\",\n        \"protein\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f471\",\n    \"label\": \"DNA\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dochub\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f394\",\n    \"label\": \"DocHub\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860981,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 416 512\\\"><path d=\\\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"416\",\n          \"512\"\n        ],\n        \"width\": 416,\n        \"height\": 512,\n        \"path\": \"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"docker\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f395\",\n    \"label\": \"Docker\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860981,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dog\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"animal\",\n        \"canine\",\n        \"fauna\",\n        \"mammal\",\n        \"pet\",\n        \"pooch\",\n        \"puppy\",\n        \"woof\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6d3\",\n    \"label\": \"Dog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dollar-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"$\",\n        \"cost\",\n        \"dollar-sign\",\n        \"money\",\n        \"price\",\n        \"usd\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f155\",\n    \"label\": \"Dollar Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dolly\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carry\",\n        \"shipping\",\n        \"transport\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f472\",\n    \"label\": \"Dolly\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dolly-flatbed\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carry\",\n        \"inventory\",\n        \"shipping\",\n        \"transport\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f474\",\n    \"label\": \"Dolly Flatbed\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"donate\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contribute\",\n        \"generosity\",\n        \"gift\",\n        \"give\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4b9\",\n    \"label\": \"Donate\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"door-closed\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"enter\",\n        \"exit\",\n        \"locked\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52a\",\n    \"label\": \"Door Closed\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"door-open\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"enter\",\n        \"exit\",\n        \"welcome\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52b\",\n    \"label\": \"Door Open\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dot-circle\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bullseye\",\n        \"notification\",\n        \"target\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f192\",\n    \"label\": \"Dot Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861257,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"dove\": {\n    \"changes\": [\n      \"5.0.9\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bird\",\n        \"fauna\",\n        \"flying\",\n        \"peace\",\n        \"war\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4ba\",\n    \"label\": \"Dove\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"download\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"export\",\n        \"hard drive\",\n        \"save\",\n        \"transfer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f019\",\n    \"label\": \"Download\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"draft2digital\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f396\",\n    \"label\": \"Draft2digital\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"drafting-compass\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"map\",\n        \"mechanical drawing\",\n        \"plot\",\n        \"plotting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f568\",\n    \"label\": \"Drafting Compass\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861391,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dragon\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"fire\",\n        \"lizard\",\n        \"serpent\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6d5\",\n    \"label\": \"Dragon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"draw-polygon\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anchors\",\n        \"lines\",\n        \"object\",\n        \"render\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ee\",\n    \"label\": \"Draw Polygon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dribbble\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f17d\",\n    \"label\": \"Dribbble\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860981,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dribbble-square\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f397\",\n    \"label\": \"Dribbble Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860981,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dropbox\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.0.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f16b\",\n    \"label\": \"Dropbox\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860982,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 528 512\\\"><path d=\\\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"528\",\n          \"512\"\n        ],\n        \"width\": 528,\n        \"height\": 512,\n        \"path\": \"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"drum\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"instrument\",\n        \"music\",\n        \"percussion\",\n        \"snare\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f569\",\n    \"label\": \"Drum\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M458.08 120.88l102.39-61.43c15.16-9.09 20.06-28.75 10.97-43.91C562.34.39 542.7-4.53 527.53 4.57l-160.69 96.41A629.32 629.32 0 0 0 288 96C128.94 96 0 153.31 0 224v160.83c0 30.46 24.03 58.4 64 80.37v-96.37c0-17.6 14.4-32 32-32s32 14.4 32 32v122.41c37.4 11.13 81 18.44 128 20.75V400.84c0-17.6 14.4-32 32-32s32 14.4 32 32V512c47-2.31 90.6-9.62 128-20.75V368.84c0-17.6 14.4-32 32-32s32 14.4 32 32v96.37c39.97-21.97 64-49.91 64-80.37V224.01c-.01-42.38-46.54-79.84-117.92-103.13zM288 304c-132.55 0-240-35.82-240-80s107.45-80 240-80c2.34 0 4.62.1 6.94.12l-87.41 52.44c-15.16 9.09-20.06 28.75-10.97 43.91 9.56 15.93 29.51 19.61 43.91 10.97l162.71-97.62C477.55 167.41 528 193.74 528 224.01 528 268.19 420.54 304 288 304z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"drum-steelpan\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"calypso\",\n        \"instrument\",\n        \"music\",\n        \"percussion\",\n        \"reggae\",\n        \"snare\",\n        \"sound\",\n        \"steel\",\n        \"tropical\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56a\",\n    \"label\": \"Drum Steelpan\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"drumstick-bite\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bone\",\n        \"chicken\",\n        \"leg\",\n        \"meat\",\n        \"poultry\",\n        \"turkey\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6d7\",\n    \"label\": \"Drumstick with Bite Taken Out\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941794,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"drupal\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a9\",\n    \"label\": \"Drupal Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860982,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"dumbbell\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"exercise\",\n        \"gym\",\n        \"strength\",\n        \"weight\",\n        \"weight-lifting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f44b\",\n    \"label\": \"Dumbbell\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dumpster\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alley\",\n        \"bin\",\n        \"commercial\",\n        \"trash\",\n        \"waste\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f793\",\n    \"label\": \"Dumpster\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dumpster-fire\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alley\",\n        \"bin\",\n        \"commercial\",\n        \"danger\",\n        \"dangerous\",\n        \"euphemism\",\n        \"flame\",\n        \"heat\",\n        \"hot\",\n        \"trash\",\n        \"waste\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f794\",\n    \"label\": \"Dumpster Fire\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dungeon\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"building\",\n        \"d&d\",\n        \"dnd\",\n        \"door\",\n        \"entrance\",\n        \"fantasy\",\n        \"gate\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6d9\",\n    \"label\": \"Dungeon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"dyalog\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f399\",\n    \"label\": \"Dyalog\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860982,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 416 512\\\"><path d=\\\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"416\",\n          \"512\"\n        ],\n        \"width\": 416,\n        \"height\": 512,\n        \"path\": \"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"earlybirds\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f39a\",\n    \"label\": \"Earlybirds\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860982,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ebay\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f4\",\n    \"label\": \"eBay\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699927,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"edge\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"ie\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f282\",\n    \"label\": \"Edge Browser\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860983,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M25.714 228.163c.111-.162.23-.323.342-.485-.021.162-.045.323-.065.485h-.277zm460.572 15.508c0-44.032-7.754-84.465-28.801-122.405C416.498 47.879 343.912 8.001 258.893 8.001 118.962 7.724 40.617 113.214 26.056 227.679c42.429-61.312 117.073-121.376 220.375-124.966 0 0 109.666 0 99.419 104.957H169.997c6.369-37.386 18.554-58.986 34.339-78.926-75.048 34.893-121.85 96.096-120.742 188.315.83 71.448 50.124 144.836 120.743 171.976 83.357 31.847 192.776 7.2 240.132-21.324V363.307c-80.864 56.494-270.871 60.925-272.255-67.572h314.073v-52.064z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"edit\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"pen\",\n        \"pencil\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f044\",\n    \"label\": \"Edit\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861259,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"egg\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"breakfast\",\n        \"chicken\",\n        \"easter\",\n        \"shell\",\n        \"yolk\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7fb\",\n    \"label\": \"Egg\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941795,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"eject\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"abort\",\n        \"cancel\",\n        \"cd\",\n        \"discharge\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f052\",\n    \"label\": \"eject\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"elementor\": {\n    \"changes\": [\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f430\",\n    \"label\": \"Elementor\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860983,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ellipsis-h\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dots\",\n        \"drag\",\n        \"kebab\",\n        \"list\",\n        \"menu\",\n        \"nav\",\n        \"navigation\",\n        \"ol\",\n        \"reorder\",\n        \"settings\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f141\",\n    \"label\": \"Horizontal Ellipsis\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ellipsis-v\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dots\",\n        \"drag\",\n        \"kebab\",\n        \"list\",\n        \"menu\",\n        \"nav\",\n        \"navigation\",\n        \"ol\",\n        \"reorder\",\n        \"settings\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f142\",\n    \"label\": \"Vertical Ellipsis\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ello\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5f1\",\n    \"label\": \"Ello\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860983,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ember\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f423\",\n    \"label\": \"Ember\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"empire\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d1\",\n    \"label\": \"Galactic Empire\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860983,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"envelope\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"e-mail\",\n        \"email\",\n        \"letter\",\n        \"mail\",\n        \"message\",\n        \"notification\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0e0\",\n    \"label\": \"Envelope\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861260,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"envelope-open\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"e-mail\",\n        \"email\",\n        \"letter\",\n        \"mail\",\n        \"message\",\n        \"notification\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2b6\",\n    \"label\": \"Envelope Open\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861260,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"envelope-open-text\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"e-mail\",\n        \"email\",\n        \"letter\",\n        \"mail\",\n        \"message\",\n        \"notification\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f658\",\n    \"label\": \"Envelope Open-text\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"envelope-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"e-mail\",\n        \"email\",\n        \"letter\",\n        \"mail\",\n        \"message\",\n        \"notification\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f199\",\n    \"label\": \"Envelope Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"envira\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"leaf\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f299\",\n    \"label\": \"Envira Gallery\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860983,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"equals\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"even\",\n        \"match\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52c\",\n    \"label\": \"Equals\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861394,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"eraser\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"art\",\n        \"delete\",\n        \"remove\",\n        \"rubber\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f12d\",\n    \"label\": \"eraser\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"erlang\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f39d\",\n    \"label\": \"Erlang\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699928,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ethereum\": {\n    \"changes\": [\n      \"5.0.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42e\",\n    \"label\": \"Ethereum\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860984,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ethernet\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cable\",\n        \"cat 5\",\n        \"cat 6\",\n        \"connection\",\n        \"hardware\",\n        \"internet\",\n        \"network\",\n        \"wired\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f796\",\n    \"label\": \"Ethernet\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"etsy\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2d7\",\n    \"label\": \"Etsy\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860984,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"euro-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"dollar\",\n        \"exchange\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f153\",\n    \"label\": \"Euro Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"evernote\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f839\",\n    \"label\": \"Evernote\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775896,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"exchange-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"arrows\",\n        \"exchange\",\n        \"reciprocate\",\n        \"return\",\n        \"swap\",\n        \"transfer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f362\",\n    \"label\": \"Alternate Exchange\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"exclamation\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alert\",\n        \"danger\",\n        \"error\",\n        \"important\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"problem\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f12a\",\n    \"label\": \"exclamation\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"exclamation-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alert\",\n        \"danger\",\n        \"error\",\n        \"important\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"problem\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f06a\",\n    \"label\": \"Exclamation Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"exclamation-triangle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.6.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alert\",\n        \"danger\",\n        \"error\",\n        \"important\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"problem\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f071\",\n    \"label\": \"Exclamation Triangle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861395,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"expand\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"bigger\",\n        \"enlarge\",\n        \"resize\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f065\",\n    \"label\": \"Expand\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861396,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"expand-arrows-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows-alt\",\n        \"bigger\",\n        \"enlarge\",\n        \"move\",\n        \"resize\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f31e\",\n    \"label\": \"Alternate Expand Arrows\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"expeditedssl\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f23e\",\n    \"label\": \"ExpeditedSSL\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860984,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"external-link-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"external-link\",\n        \"new\",\n        \"open\",\n        \"share\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f35d\",\n    \"label\": \"Alternate External Link\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861396,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M576 24v127.984c0 21.461-25.96 31.98-40.971 16.971l-35.707-35.709-243.523 243.523c-9.373 9.373-24.568 9.373-33.941 0l-22.627-22.627c-9.373-9.373-9.373-24.569 0-33.941L442.756 76.676l-35.703-35.705C391.982 25.9 402.656 0 424.024 0H552c13.255 0 24 10.745 24 24zM407.029 270.794l-16 16A23.999 23.999 0 0 0 384 303.765V448H64V128h264a24.003 24.003 0 0 0 16.97-7.029l16-16C376.089 89.851 365.381 64 344 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V287.764c0-21.382-25.852-32.09-40.971-16.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"external-link-square-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"external-link-square\",\n        \"new\",\n        \"open\",\n        \"share\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f360\",\n    \"label\": \"Alternate External Link Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861396,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"eye\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"look\",\n        \"optic\",\n        \"see\",\n        \"seen\",\n        \"show\",\n        \"sight\",\n        \"views\",\n        \"visible\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f06e\",\n    \"label\": \"Eye\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859200,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548697859193,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"eye-dropper\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beaker\",\n        \"clone\",\n        \"color\",\n        \"copy\",\n        \"eyedropper\",\n        \"pipette\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1fb\",\n    \"label\": \"Eye Dropper\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861396,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"eye-slash\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blind\",\n        \"hide\",\n        \"show\",\n        \"toggle\",\n        \"unseen\",\n        \"views\",\n        \"visible\",\n        \"visiblity\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f070\",\n    \"label\": \"Eye Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859199,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548697859193,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"facebook\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"facebook-official\",\n        \"social network\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f09a\",\n    \"label\": \"Facebook\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084862,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"facebook-f\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"facebook\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f39e\",\n    \"label\": \"Facebook F\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084862,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"facebook-messenger\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.2\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f39f\",\n    \"label\": \"Facebook Messenger\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084862,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"facebook-square\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"social network\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f082\",\n    \"label\": \"Facebook Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084862,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fan\": {\n    \"changes\": [\n      \"5.9.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ac\",\n        \"air conditioning\",\n        \"blade\",\n        \"blower\",\n        \"cool\",\n        \"hot\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f863\",\n    \"label\": \"Fan\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084933,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fantasy-flight-games\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"game\",\n        \"gaming\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f6dc\",\n    \"label\": \"Fantasy Flight-games\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860985,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fast-backward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beginning\",\n        \"first\",\n        \"previous\",\n        \"rewind\",\n        \"start\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f049\",\n    \"label\": \"fast-backward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861396,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fast-forward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"end\",\n        \"last\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f050\",\n    \"label\": \"fast-forward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fax\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"business\",\n        \"communicate\",\n        \"copy\",\n        \"facsimile\",\n        \"send\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ac\",\n    \"label\": \"Fax\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M64 128H32c-17.67 0-32 14.33-32 32v320c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zm416 32V77.25c0-8.49-3.37-16.62-9.37-22.63L425.37 9.37c-6-6-14.14-9.37-22.63-9.37H160c-17.67 0-32 14.33-32 32v448c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zM288 432c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm128 128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm0-128c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v32zm16-112H176V48h208v32c0 8.84 7.16 16 16 16h32v96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"feather\": {\n    \"changes\": [\n      \"5.0.13\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bird\",\n        \"light\",\n        \"plucked\",\n        \"quill\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52d\",\n    \"label\": \"Feather\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"feather-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bird\",\n        \"light\",\n        \"plucked\",\n        \"quill\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56b\",\n    \"label\": \"Alternate Feather\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fedex\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Federal Express\",\n        \"package\",\n        \"shipping\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f797\",\n    \"label\": \"FedEx\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860985,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fedora\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.6.3\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linux\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f798\",\n    \"label\": \"Fedora\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775897,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"female\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"human\",\n        \"person\",\n        \"profile\",\n        \"user\",\n        \"woman\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f182\",\n    \"label\": \"Female\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fighter-jet\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airplane\",\n        \"fast\",\n        \"fly\",\n        \"goose\",\n        \"maverick\",\n        \"plane\",\n        \"quick\",\n        \"top gun\",\n        \"transportation\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0fb\",\n    \"label\": \"fighter-jet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"figma\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"app\",\n        \"design\",\n        \"interface\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f799\",\n    \"label\": \"Figma\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775898,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M277 170.7A85.35 85.35 0 0 0 277 0H106.3a85.3 85.3 0 0 0 0 170.6 85.35 85.35 0 0 0 0 170.7 85.35 85.35 0 1 0 85.3 85.4v-256zm0 0a85.3 85.3 0 1 0 85.3 85.3 85.31 85.31 0 0 0-85.3-85.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"file\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"new\",\n        \"page\",\n        \"pdf\",\n        \"resume\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f15b\",\n    \"label\": \"File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861266,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-alt\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"file-text\",\n        \"invoice\",\n        \"new\",\n        \"page\",\n        \"pdf\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f15c\",\n    \"label\": \"Alternate File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861263,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-archive\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \".zip\",\n        \"bundle\",\n        \"compress\",\n        \"compression\",\n        \"download\",\n        \"zip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c6\",\n    \"label\": \"Archive File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699938,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548364699936,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-audio\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"mp3\",\n        \"music\",\n        \"page\",\n        \"play\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c7\",\n    \"label\": \"Audio File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861397,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861263,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-code\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"css\",\n        \"development\",\n        \"document\",\n        \"html\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c9\",\n    \"label\": \"Code File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548363722372,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-contract\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"agreement\",\n        \"binding\",\n        \"document\",\n        \"legal\",\n        \"signature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56c\",\n    \"label\": \"File Contract\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-csv\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"excel\",\n        \"numbers\",\n        \"spreadsheets\",\n        \"table\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6dd\",\n    \"label\": \"File CSV\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-download\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"export\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56d\",\n    \"label\": \"File Download\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-excel\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"csv\",\n        \"document\",\n        \"numbers\",\n        \"spreadsheets\",\n        \"table\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c3\",\n    \"label\": \"Excel File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861264,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-export\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56e\",\n    \"label\": \"File Export\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699938,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-image\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"image\",\n        \"jpg\",\n        \"photo\",\n        \"png\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c5\",\n    \"label\": \"Image File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861398,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861265,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-import\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"copy\",\n        \"document\",\n        \"send\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f56f\",\n    \"label\": \"File Import\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699938,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-invoice\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"account\",\n        \"bill\",\n        \"charge\",\n        \"document\",\n        \"payment\",\n        \"receipt\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f570\",\n    \"label\": \"File Invoice\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-invoice-dollar\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"$\",\n        \"account\",\n        \"bill\",\n        \"charge\",\n        \"document\",\n        \"dollar-sign\",\n        \"money\",\n        \"payment\",\n        \"receipt\",\n        \"usd\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f571\",\n    \"label\": \"File Invoice with US Dollar\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-medical\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"health\",\n        \"history\",\n        \"prescription\",\n        \"record\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f477\",\n    \"label\": \"Medical File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-medical-alt\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"health\",\n        \"history\",\n        \"prescription\",\n        \"record\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f478\",\n    \"label\": \"Alternate Medical File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-pdf\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acrobat\",\n        \"document\",\n        \"preview\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c1\",\n    \"label\": \"PDF File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861265,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-powerpoint\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"display\",\n        \"document\",\n        \"keynote\",\n        \"presentation\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c4\",\n    \"label\": \"Powerpoint File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861266,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-prescription\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"drugs\",\n        \"medical\",\n        \"medicine\",\n        \"rx\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f572\",\n    \"label\": \"File Prescription\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-signature\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"John Hancock\",\n        \"contract\",\n        \"document\",\n        \"name\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f573\",\n    \"label\": \"File Signature\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861399,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-upload\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"import\",\n        \"page\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f574\",\n    \"label\": \"File Upload\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"file-video\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"m4v\",\n        \"movie\",\n        \"mp4\",\n        \"play\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c8\",\n    \"label\": \"Video File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861266,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"file-word\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"edit\",\n        \"page\",\n        \"text\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1c2\",\n    \"label\": \"Word File\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861266,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"fill\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bucket\",\n        \"color\",\n        \"paint\",\n        \"paint bucket\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f575\",\n    \"label\": \"Fill\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fill-drip\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bucket\",\n        \"color\",\n        \"drop\",\n        \"paint\",\n        \"paint bucket\",\n        \"spill\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f576\",\n    \"label\": \"Fill Drip\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"film\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cinema\",\n        \"movie\",\n        \"strip\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f008\",\n    \"label\": \"Film\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861400,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"filter\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"funnel\",\n        \"options\",\n        \"separate\",\n        \"sort\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0b0\",\n    \"label\": \"Filter\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fingerprint\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"human\",\n        \"id\",\n        \"identification\",\n        \"lock\",\n        \"smudge\",\n        \"touch\",\n        \"unique\",\n        \"unlock\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f577\",\n    \"label\": \"Fingerprint\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fire\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.6.0\",\n      \"5.6.3\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"burn\",\n        \"caliente\",\n        \"flame\",\n        \"heat\",\n        \"hot\",\n        \"popular\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f06d\",\n    \"label\": \"fire\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546443943327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fire-alt\": {\n    \"changes\": [\n      \"5.6.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"burn\",\n        \"caliente\",\n        \"flame\",\n        \"heat\",\n        \"hot\",\n        \"popular\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7e4\",\n    \"label\": \"Alternate Fire\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546443943327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fire-extinguisher\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"burn\",\n        \"caliente\",\n        \"fire fighter\",\n        \"flame\",\n        \"heat\",\n        \"hot\",\n        \"rescue\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f134\",\n    \"label\": \"fire-extinguisher\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"firefox\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.0.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f269\",\n    \"label\": \"Firefox\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722328,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M478.1 235.3c-.7-4.5-1.4-7.1-1.4-7.1s-1.8 2-4.7 5.9c-.9-10.7-2.8-21.2-5.8-31.6-3.7-12.9-8.5-25.4-14.5-37.4-3.8-8-8.2-15.6-13.3-22.8-1.8-2.7-3.7-5.4-5.6-7.9-8.8-14.4-19-23.3-30.7-40-7.6-12.8-12.9-26.9-15.4-41.6-3.2 8.9-5.7 18-7.4 27.3-12.1-12.2-22.5-20.8-28.9-26.7C319.4 24.2 323 9.1 323 9.1S264.7 74.2 289.9 142c8.7 23 23.8 43.1 43.4 57.9 24.4 20.2 50.8 36 64.7 76.6-11.2-21.3-28.1-39.2-48.8-51.5 6.2 14.7 9.4 30.6 9.3 46.5 0 61-49.6 110.5-110.6 110.4-8.3 0-16.5-.9-24.5-2.8-9.5-1.8-18.7-4.9-27.4-9.3-12.9-7.8-24-18.1-32.8-30.3l-.2-.3 2 .7c4.6 1.6 9.2 2.8 14 3.7 18.7 4 38.3 1.7 55.6-6.6 17.5-9.7 28-16.9 36.6-14h.2c8.4 2.7 15-5.5 9-14-10.4-13.4-27.4-20-44.2-17-17.5 2.5-33.5 15-56.4 2.9-1.5-.8-2.9-1.6-4.3-2.5-1.6-.9 4.9 1.3 3.4.3-5-2.5-9.8-5.4-14.4-8.6-.3-.3 3.5 1.1 3.1.8-5.9-4-11-9.2-15-15.2-4.1-7.4-4.5-16.4-1-24.1 2.1-3.8 5.4-6.9 9.3-8.7 3 1.5 4.8 2.6 4.8 2.6s-1.3-2.5-2.1-3.8c.3-.1.5 0 .8-.2 2.6 1.1 8.3 4 11.4 5.8 2.1 1.1 3.8 2.7 5.2 4.7 0 0 1-.5.3-2.7-1.1-2.7-2.9-5-5.4-6.6h.2c2.3 1.2 4.5 2.6 6.6 4.1 1.9-4.4 2.8-9.2 2.6-14 .2-2.6-.2-5.3-1.1-7.8-.8-1.6.5-2.2 1.9-.5-.2-1.3-.7-2.5-1.2-3.7v-.1s.8-1.1 1.2-1.5c1-1 2.1-1.9 3.4-2.7 7.2-4.5 14.8-8.4 22.7-11.6 6.4-2.8 11.7-4.9 12.8-5.6 1.6-1 3.1-2.2 4.5-3.5 5.3-4.5 9-10.8 10.2-17.7.1-.9.2-1.8.3-2.8v-1.5c-.9-3.5-6.9-6.1-38.4-9.1-11.1-1.8-20-10.1-22.5-21.1v-.1c6-15.7 16.8-29.1 30.8-38.3.8-.7-3.2.2-2.4-.5 2.7-1.3 5.4-2.5 8.2-3.5 1.4-.6-6-3.4-12.6-2.7-4 .2-8 1.2-11.7 2.8 1.6-1.3 6.2-3.1 5.1-3.1-8.4 1.6-16.5 4.7-23.9 9 0-.8.1-1.5.5-2.2-5.9 2.5-11 6.5-15 11.5.1-.9.2-1.8.2-2.7-2.7 2-5.2 4.3-7.3 6.9l-.1.1c-17.4-6.7-36.3-8.3-54.6-4.7l-.2-.1h.2c-3.8-3.1-7.1-6.7-9.7-10.9l-.2.1-.4-.2c-1.2-1.8-2.4-3.8-3.7-6-.9-1.6-1.8-3.4-2.7-5.2 0-.1-.1-.2-.2-.2-.4 0-.6 1.7-.9 1.3v-.1c-3.2-8.3-4.7-17.2-4.4-26.2l-.2.1c-5.1 3.5-9 8.6-11.1 14.5-.9 2.1-1.6 3.3-2.2 4.5v-.5c.1-1.1.6-3.3.5-3.1s-.2.3-.3.4c-1.5 1.7-2.9 3.7-3.9 5.8-.9 1.9-1.7 3.9-2.3 5.9-.1.3 0-.3 0-1s.1-2 0-1.7l-.3.7c-6.7 14.9-10.9 30.8-12.4 47.1-.4 2.8-.6 5.6-.5 8.3v.2c-4.8 5.2-9 11-12.7 17.1-12.1 20.4-21.1 42.5-26.8 65.6 4-8.8 8.8-17.2 14.3-25.1C5.5 228.5 0 257.4 0 286.6c1.8-8.6 4.2-17 7-25.3-1.7 34.5 4.9 68.9 19.4 100.3 19.4 43.5 51.6 80 92.3 104.7 16.6 11.2 34.7 19.9 53.8 25.8 2.5.9 5.1 1.8 7.7 2.7-.8-.3-1.6-.7-2.4-1 22.6 6.8 46.2 10.3 69.8 10.3 83.7 0 111.3-31.9 113.8-35 4.1-3.7 7.5-8.2 9.9-13.3 1.6-.7 3.2-1.4 4.9-2.1l1-.5 1.9-.9c12.6-5.9 24.5-13.4 35.3-22.1 16.3-11.7 27.9-28.7 32.9-48.1 3-7.1 3.1-15 .4-22.2.9-1.4 1.7-2.8 2.7-4.3 18-28.9 28.2-61.9 29.6-95.9v-2.8c0-7.3-.6-14.5-1.9-21.6zm-299-97.6c-.4 1.1-.9 2.3-1.3 3.5.4-1.2.8-2.3 1.3-3.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"first-aid\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emergency\",\n        \"emt\",\n        \"health\",\n        \"medical\",\n        \"rescue\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f479\",\n    \"label\": \"First Aid\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"first-order\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b0\",\n    \"label\": \"First Order\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860986,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"first-order-alt\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50a\",\n    \"label\": \"Alternate First Order\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860986,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"firstdraft\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a1\",\n    \"label\": \"firstdraft\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860987,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fish\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"fauna\",\n        \"gold\",\n        \"seafood\",\n        \"swimming\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f578\",\n    \"label\": \"Fish\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fist-raised\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"hand\",\n        \"ki\",\n        \"monk\",\n        \"resist\",\n        \"strength\",\n        \"unarmed combat\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6de\",\n    \"label\": \"Raised Fist\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861401,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"flag\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"country\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"pole\",\n        \"report\",\n        \"symbol\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f024\",\n    \"label\": \"flag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861268,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"flag-checkered\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.7.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"pole\",\n        \"racing\",\n        \"report\",\n        \"symbol\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f11e\",\n    \"label\": \"flag-checkered\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699939,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"flag-usa\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"betsy ross\",\n        \"country\",\n        \"old glory\",\n        \"stars\",\n        \"stripes\",\n        \"symbol\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f74d\",\n    \"label\": \"United States of America Flag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"flask\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beaker\",\n        \"experimental\",\n        \"labs\",\n        \"science\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c3\",\n    \"label\": \"Flask\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"flickr\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f16e\",\n    \"label\": \"Flickr\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860987,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"flipboard\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f44d\",\n    \"label\": \"Flipboard\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860987,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"flushed\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"embarrassed\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f579\",\n    \"label\": \"Flushed Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861269,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"fly\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f417\",\n    \"label\": \"Fly\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860987,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"folder\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"directory\",\n        \"document\",\n        \"file\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f07b\",\n    \"label\": \"Folder\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861403,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861269,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"folder-minus\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"delete\",\n        \"directory\",\n        \"document\",\n        \"file\",\n        \"negative\",\n        \"remove\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f65d\",\n    \"label\": \"Folder Minus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"folder-open\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"directory\",\n        \"document\",\n        \"empty\",\n        \"file\",\n        \"new\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f07c\",\n    \"label\": \"Folder Open\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548363722373,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"folder-plus\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"archive\",\n        \"create\",\n        \"directory\",\n        \"document\",\n        \"file\",\n        \"new\",\n        \"positive\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f65e\",\n    \"label\": \"Folder Plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861402,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"font\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabet\",\n        \"glyph\",\n        \"text\",\n        \"type\",\n        \"typeface\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f031\",\n    \"label\": \"font\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084934,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"font-awesome\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"meanpath\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b4\",\n    \"label\": \"Font Awesome\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860988,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm-45.4 284.3c0 4.2-3.6 6-7.8 7.8-16.7 7.2-34.6 13.7-53.8 13.7-26.9 0-39.4-16.7-71.7-16.7-23.3 0-47.8 8.4-67.5 17.3-1.2.6-2.4.6-3.6 1.2V385c0 1.8 0 3.6-.6 4.8v1.2c-2.4 8.4-10.2 14.3-19.1 14.3-11.3 0-20.3-9-20.3-20.3V166.4c-7.8-6-13.1-15.5-13.1-26.3 0-18.5 14.9-33.5 33.5-33.5 18.5 0 33.5 14.9 33.5 33.5 0 10.8-4.8 20.3-13.1 26.3v18.5c1.8-.6 3.6-1.2 5.4-2.4 18.5-7.8 40.6-14.3 61.5-14.3 22.7 0 40.6 6 60.9 13.7 4.2 1.8 8.4 2.4 13.1 2.4 22.7 0 47.8-16.1 53.8-16.1 4.8 0 9 3.6 9 7.8v140.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"font-awesome-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f35c\",\n    \"label\": \"Alternate Font Awesome\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722329,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M339.3 171.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1zM397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm14.3 397.7c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6v-.1c7.8 0 14.3 6.6 14.3 14.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M339.3 171.2c-6 0-29.9 15.5-52.6 15.5-4.2 0-8.4-.6-12.5-2.4-19.7-7.8-37-13.7-59.1-13.7-20.3 0-41.8 6.6-59.7 13.7-1.8.6-3.6 1.2-4.8 1.8v-17.9c7.8-6 12.5-14.9 12.5-25.7 0-17.9-14.3-32.3-32.3-32.3s-32.3 14.3-32.3 32.3c0 10.2 4.8 19.7 12.5 25.7v212.1c0 10.8 9 19.7 19.7 19.7 9 0 16.1-6 18.5-13.7V385c.6-1.8.6-3 .6-4.8V336c1.2 0 2.4-.6 3-1.2 19.7-8.4 43-16.7 65.7-16.7 31.1 0 43 16.1 69.3 16.1 18.5 0 36.4-6.6 52-13.7 4.2-1.8 7.2-3.6 7.2-7.8V178.3c1.8-4.1-2.3-7.1-7.7-7.1zM397.8 32H50.2C22.7 32 0 54.7 0 82.2v347.6C0 457.3 22.7 480 50.2 480h347.6c27.5 0 50.2-22.7 50.2-50.2V82.2c0-27.5-22.7-50.2-50.2-50.2zm14.3 397.7c0 7.8-6.6 14.3-14.3 14.3H50.2c-7.8 0-14.3-6.6-14.3-14.3V82.2c0-7.8 6.6-14.3 14.3-14.3h347.6v-.1c7.8 0 14.3 6.6 14.3 14.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"font-awesome-flag\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f425\",\n    \"label\": \"Font Awesome Flag\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860988,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M444.373 359.424c0 7.168-6.144 10.24-13.312 13.312-28.672 12.288-59.392 23.552-92.16 23.552-46.08 0-67.584-28.672-122.88-28.672-39.936 0-81.92 14.336-115.712 29.696-2.048 1.024-4.096 1.024-6.144 2.048v77.824c0 21.405-16.122 34.816-33.792 34.816-19.456 0-34.816-15.36-34.816-34.816V102.4C12.245 92.16 3.029 75.776 3.029 57.344 3.029 25.6 28.629 0 60.373 0s57.344 25.6 57.344 57.344c0 18.432-8.192 34.816-22.528 45.056v31.744c4.124-1.374 58.768-28.672 114.688-28.672 65.27 0 97.676 27.648 126.976 27.648 38.912 0 81.92-27.648 92.16-27.648 8.192 0 15.36 6.144 15.36 13.312v240.64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"font-awesome-logo-full\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [\n      \"Font Awesome\"\n    ],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"regular\",\n      \"solid\",\n      \"brands\"\n    ],\n    \"unicode\": \"f4e6\",\n    \"label\": \"Font Awesome Full Logo\",\n    \"private\": true,\n    \"voted\": false,\n    \"svg\": {\n      \"regular\": {\n        \"last_modified\": 1546440861269,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 3992 512\\\"><path d=\\\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"3992\",\n          \"512\"\n        ],\n        \"width\": 3992,\n        \"height\": 512,\n        \"path\": \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"\n      },\n      \"solid\": {\n        \"last_modified\": 1546440861403,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 3992 512\\\"><path d=\\\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"3992\",\n          \"512\"\n        ],\n        \"width\": 3992,\n        \"height\": 512,\n        \"path\": \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"\n      },\n      \"brands\": {\n        \"last_modified\": 1546440860988,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 3992 512\\\"><path d=\\\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"3992\",\n          \"512\"\n        ],\n        \"width\": 3992,\n        \"height\": 512,\n        \"path\": \"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"\n      }\n    },\n    \"free\": [\n      \"regular\",\n      \"solid\",\n      \"brands\"\n    ]\n  },\n  \"fonticons\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f280\",\n    \"label\": \"Fonticons\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722329,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fonticons-fi\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a2\",\n    \"label\": \"Fonticons Fi\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860988,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"football-ball\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ball\",\n        \"fall\",\n        \"nfl\",\n        \"pigskin\",\n        \"seasonal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f44e\",\n    \"label\": \"Football Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861403,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"fort-awesome\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"castle\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f286\",\n    \"label\": \"Fort Awesome\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860989,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"fort-awesome-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"castle\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a3\",\n    \"label\": \"Alternate Fort Awesome\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722329,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"forumbee\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f211\",\n    \"label\": \"Forumbee\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860989,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"forward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"next\",\n        \"skip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f04e\",\n    \"label\": \"forward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861403,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"foursquare\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f180\",\n    \"label\": \"Foursquare\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860989,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 368 512\\\"><path d=\\\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"368\",\n          \"512\"\n        ],\n        \"width\": 368,\n        \"height\": 512,\n        \"path\": \"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"free-code-camp\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2c5\",\n    \"label\": \"Free Code Camp\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860989,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M69.3 144.5c-41 68.5-36.4 163 1 227C92.5 409.7 120 423.9 120 438c0 6.8-6 13-12.8 13C87.7 451 8 375.5 8 253.2c0-111.5 78-186 97.1-186 6 0 14.9 4.8 14.9 11.1 0 12.7-28.3 28.6-50.7 66.2zm195.8 213.8c4.5 1.8 12.3 5.2 12.3-1.2 0-2.7-2.2-2.9-4.3-3.6-8.5-3.4-14-7.7-19.1-15.2-8.2-12.1-10.1-24.2-10.1-38.6 0-32.1 44.2-37.9 44.2-70 0-12.3-7.7-15.9-7.7-19.3 0-2.2.7-2.2 2.9-2.2 8 0 19.1 13.3 22.5 19.8 2.2 4.6 2.4 6 2.4 11.1 0 7-.7 14.2-.7 21.3 0 27 31.9 19.8 31.9 6.8 0-6-3.6-11.6-3.6-17.4 0-.7 0-1.2.7-1.2 3.4 0 9.4 7.7 11.1 10.1 5.8 8.9 8.5 20.8 8.5 31.4 0 32.4-29.5 49-29.5 56 0 1 2.9 7.7 12.1 1.9 29.7-15.1 53.1-47.6 53.1-89.8 0-33.6-8.7-57.7-32.1-82.6-3.9-4.1-16.4-16.9-22.5-16.9-8.2 0 7.2 18.6 7.2 31.2 0 7.2-4.8 12.3-12.3 12.3-11.6 0-14.5-25.4-15.9-33.3-5.8-33.8-12.8-58.2-46.4-74.1-10.4-5-36.5-11.8-36.5-2.2 0 2.4 2.7 4.1 4.6 5.1 9.2 5.6 19.6 21.4 19.6 38.2 0 46.1-57.7 88.2-57.7 136.2-.2 40.3 28.1 72.6 65.3 86.2zM470.4 67c-6 0-14.4 6.5-14.4 12.6 0 8.7 12.1 19.6 17.6 25.4 81.6 85.1 78.6 214.3 17.6 291-7 8.9-35.3 35.3-35.3 43.5 0 5.1 8.2 11.4 13.2 11.4 25.4 0 98.8-80.8 98.8-185.7C568 145.9 491.8 67 470.4 67zm-42.3 323.1H167c-9.4 0-15.5 7.5-15.5 16.4 0 8.5 7 15.5 15.5 15.5h261.1c9.4 0 11.9-7.5 11.9-16.4 0-8.5-3.5-15.5-11.9-15.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"freebsd\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a4\",\n    \"label\": \"FreeBSD\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860989,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"frog\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"amphibian\",\n        \"bullfrog\",\n        \"fauna\",\n        \"hop\",\n        \"kermit\",\n        \"kiss\",\n        \"prince\",\n        \"ribbit\",\n        \"toad\",\n        \"wart\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52e\",\n    \"label\": \"Frog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861403,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"frown\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"disapprove\",\n        \"emoticon\",\n        \"face\",\n        \"rating\",\n        \"sad\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f119\",\n    \"label\": \"Frowning Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861270,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"frown-open\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"disapprove\",\n        \"emoticon\",\n        \"face\",\n        \"rating\",\n        \"sad\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f57a\",\n    \"label\": \"Frowning Face With Open Mouth\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861270,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"fulcrum\": {\n    \"changes\": [\n      \"5.0.12\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50b\",\n    \"label\": \"Fulcrum\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775898,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"funnel-dollar\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"filter\",\n        \"money\",\n        \"options\",\n        \"separate\",\n        \"sort\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f662\",\n    \"label\": \"Funnel Dollar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"futbol\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ball\",\n        \"football\",\n        \"mls\",\n        \"soccer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1e3\",\n    \"label\": \"Futbol\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861270,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"galactic-republic\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"politics\",\n        \"star wars\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50c\",\n    \"label\": \"Galactic Republic\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860990,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"galactic-senate\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"star wars\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50d\",\n    \"label\": \"Galactic Senate\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860990,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gamepad\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"controller\",\n        \"d-pad\",\n        \"joystick\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f11b\",\n    \"label\": \"Gamepad\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M480 96H160C71.6 96 0 167.6 0 256s71.6 160 160 160c44.8 0 85.2-18.4 114.2-48h91.5c29 29.6 69.5 48 114.2 48 88.4 0 160-71.6 160-160S568.4 96 480 96zM256 276c0 6.6-5.4 12-12 12h-52v52c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-52H76c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h52v-52c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h52c6.6 0 12 5.4 12 12v40zm184 68c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-80c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gas-pump\": {\n    \"changes\": [\n      \"5.0.13\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"car\",\n        \"fuel\",\n        \"gasoline\",\n        \"petrol\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f52f\",\n    \"label\": \"Gas Pump\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gavel\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hammer\",\n        \"judge\",\n        \"law\",\n        \"lawyer\",\n        \"opinion\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0e3\",\n    \"label\": \"Gavel\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861404,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gem\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"diamond\",\n        \"jewelry\",\n        \"sapphire\",\n        \"stone\",\n        \"treasure\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f3a5\",\n    \"label\": \"Gem\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861271,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"genderless\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"androgynous\",\n        \"asexual\",\n        \"sexless\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f22d\",\n    \"label\": \"Genderless\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"get-pocket\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f265\",\n    \"label\": \"Get Pocket\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860990,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gg\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f260\",\n    \"label\": \"GG Currency\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860991,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gg-circle\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f261\",\n    \"label\": \"GG Currency Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860990,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ghost\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apparition\",\n        \"blinky\",\n        \"clyde\",\n        \"floating\",\n        \"halloween\",\n        \"holiday\",\n        \"inky\",\n        \"pinky\",\n        \"spirit\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6e2\",\n    \"label\": \"Ghost\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gift\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"christmas\",\n        \"generosity\",\n        \"giving\",\n        \"holiday\",\n        \"party\",\n        \"present\",\n        \"wrapped\",\n        \"xmas\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f06b\",\n    \"label\": \"gift\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gifts\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"christmas\",\n        \"generosity\",\n        \"giving\",\n        \"holiday\",\n        \"party\",\n        \"present\",\n        \"wrapped\",\n        \"xmas\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f79c\",\n    \"label\": \"Gifts\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"git\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d3\",\n    \"label\": \"Git\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084863,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"git-alt\": {\n    \"changes\": [\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f841\",\n    \"label\": \"Git Alt\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084862,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"git-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d2\",\n    \"label\": \"Git Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084863,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"github\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"octocat\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f09b\",\n    \"label\": \"GitHub\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860992,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"github-alt\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"octocat\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f113\",\n    \"label\": \"Alternate GitHub\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860991,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"github-square\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"octocat\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f092\",\n    \"label\": \"GitHub Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860991,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gitkraken\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a6\",\n    \"label\": \"GitKraken\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860992,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 592 512\\\"><path d=\\\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"592\",\n          \"512\"\n        ],\n        \"width\": 592,\n        \"height\": 512,\n        \"path\": \"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gitlab\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Axosoft\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f296\",\n    \"label\": \"GitLab\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699928,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gitter\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f426\",\n    \"label\": \"Gitter\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860992,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"glass-cheers\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"bar\",\n        \"beverage\",\n        \"celebration\",\n        \"champagne\",\n        \"clink\",\n        \"drink\",\n        \"holiday\",\n        \"new year's eve\",\n        \"party\",\n        \"toast\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f79f\",\n    \"label\": \"Glass Cheers\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"glass-martini\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"bar\",\n        \"beverage\",\n        \"drink\",\n        \"liquor\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f000\",\n    \"label\": \"Martini Glass\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"glass-martini-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"bar\",\n        \"beverage\",\n        \"drink\",\n        \"liquor\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f57b\",\n    \"label\": \"Alternate Glass Martini\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861405,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"glass-whiskey\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"bar\",\n        \"beverage\",\n        \"bourbon\",\n        \"drink\",\n        \"liquor\",\n        \"neat\",\n        \"rye\",\n        \"scotch\",\n        \"whisky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a0\",\n    \"label\": \"Glass Whiskey\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"glasses\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hipster\",\n        \"nerd\",\n        \"reading\",\n        \"sight\",\n        \"spectacles\",\n        \"vision\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f530\",\n    \"label\": \"Glasses\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"glide\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2a5\",\n    \"label\": \"Glide\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860993,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"glide-g\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2a6\",\n    \"label\": \"Glide G\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860992,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"globe\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"all\",\n        \"coordinates\",\n        \"country\",\n        \"earth\",\n        \"global\",\n        \"gps\",\n        \"language\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"online\",\n        \"place\",\n        \"planet\",\n        \"translate\",\n        \"travel\",\n        \"world\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ac\",\n    \"label\": \"Globe\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"globe-africa\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"all\",\n        \"country\",\n        \"earth\",\n        \"global\",\n        \"gps\",\n        \"language\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"online\",\n        \"place\",\n        \"planet\",\n        \"translate\",\n        \"travel\",\n        \"world\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f57c\",\n    \"label\": \"Globe with Africa shown\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"globe-americas\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"all\",\n        \"country\",\n        \"earth\",\n        \"global\",\n        \"gps\",\n        \"language\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"online\",\n        \"place\",\n        \"planet\",\n        \"translate\",\n        \"travel\",\n        \"world\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f57d\",\n    \"label\": \"Globe with Americas shown\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"globe-asia\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"all\",\n        \"country\",\n        \"earth\",\n        \"global\",\n        \"gps\",\n        \"language\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"online\",\n        \"place\",\n        \"planet\",\n        \"translate\",\n        \"travel\",\n        \"world\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f57e\",\n    \"label\": \"Globe with Asia shown\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"globe-europe\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"all\",\n        \"country\",\n        \"earth\",\n        \"global\",\n        \"gps\",\n        \"language\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"online\",\n        \"place\",\n        \"planet\",\n        \"translate\",\n        \"travel\",\n        \"world\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a2\",\n    \"label\": \"Globe with Europe shown\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861406,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gofore\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a7\",\n    \"label\": \"Gofore\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860993,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 400 512\\\"><path d=\\\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"400\",\n          \"512\"\n        ],\n        \"width\": 400,\n        \"height\": 512,\n        \"path\": \"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"golf-ball\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"caddy\",\n        \"eagle\",\n        \"putt\",\n        \"tee\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f450\",\n    \"label\": \"Golf Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 416 512\\\"><path d=\\\"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"416\",\n          \"512\"\n        ],\n        \"width\": 416,\n        \"height\": 512,\n        \"path\": \"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"goodreads\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a8\",\n    \"label\": \"Goodreads\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860993,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"goodreads-g\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3a9\",\n    \"label\": \"Goodreads G\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860993,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a0\",\n    \"label\": \"Google Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860995,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 488 512\\\"><path d=\\\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"488\",\n          \"512\"\n        ],\n        \"width\": 488,\n        \"height\": 512,\n        \"path\": \"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-drive\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3aa\",\n    \"label\": \"Google Drive\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860994,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-play\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ab\",\n    \"label\": \"Google Play\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860994,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-plus\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"google-plus-circle\",\n        \"google-plus-official\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b3\",\n    \"label\": \"Google Plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860995,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm-70.7 372c-68.8 0-124-55.5-124-124s55.2-124 124-124c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1s34.2 78.1 77.2 78.1c32.6 0 64.9-19.1 70.1-53.3h-70.1v-42.6h116.9c1.3 6.8 1.9 13.6 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zm230.2-106.2v35.5H372v-35.5h-35.5v-35.5H372v-35.5h35.5v35.5h35.2v35.5h-35.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-plus-g\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"google-plus\",\n        \"social network\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f0d5\",\n    \"label\": \"Google Plus G\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860994,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-plus-square\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"social network\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f0d4\",\n    \"label\": \"Google Plus Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860994,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"google-wallet\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1ee\",\n    \"label\": \"Google Wallet\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860995,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"gopuram\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"entrance\",\n        \"hinduism\",\n        \"temple\",\n        \"tower\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f664\",\n    \"label\": \"Gopuram\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548364699939,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"graduation-cap\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.2.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ceremony\",\n        \"college\",\n        \"graduate\",\n        \"learning\",\n        \"school\",\n        \"student\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f19d\",\n    \"label\": \"Graduation Cap\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gratipay\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"favorite\",\n        \"heart\",\n        \"like\",\n        \"love\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f184\",\n    \"label\": \"Gratipay (Gittip)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860995,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"grav\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2d6\",\n    \"label\": \"Grav\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860995,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"greater-than\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"compare\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f531\",\n    \"label\": \"Greater Than\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"greater-than-equal\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"compare\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f532\",\n    \"label\": \"Greater Than Equal To\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"grimace\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cringe\",\n        \"emoticon\",\n        \"face\",\n        \"teeth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f57f\",\n    \"label\": \"Grimacing Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861273,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f580\",\n    \"label\": \"Grinning Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861275,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f581\",\n    \"label\": \"Alternate Grinning Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861273,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-beam\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f582\",\n    \"label\": \"Grinning Face With Smiling Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-beam-sweat\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"embarass\",\n        \"emoticon\",\n        \"face\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f583\",\n    \"label\": \"Grinning Face With Sweat\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861407,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 504 512\\\"><path d=\\\"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"504\",\n          \"512\"\n        ],\n        \"width\": 504,\n        \"height\": 512,\n        \"path\": \"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-hearts\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"love\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f584\",\n    \"label\": \"Smiling Face With Heart-Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-squint\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f585\",\n    \"label\": \"Grinning Squinting Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-squint-tears\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f586\",\n    \"label\": \"Rolling on the Floor Laughing\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-stars\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"star-struck\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f587\",\n    \"label\": \"Star-Struck\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-tears\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f588\",\n    \"label\": \"Face With Tears of Joy\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-tongue\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f589\",\n    \"label\": \"Face With Tongue\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-tongue-squint\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f58a\",\n    \"label\": \"Squinting Face With Tongue\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-tongue-wink\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f58b\",\n    \"label\": \"Winking Face With Tongue\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861274,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grin-wink\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.1.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"flirt\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f58c\",\n    \"label\": \"Grinning Winking Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861275,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"grip-horizontal\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"affordance\",\n        \"drag\",\n        \"drop\",\n        \"grab\",\n        \"handle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f58d\",\n    \"label\": \"Grip Horizontal\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861408,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"grip-lines\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"affordance\",\n        \"drag\",\n        \"drop\",\n        \"grab\",\n        \"handle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a4\",\n    \"label\": \"Grip Lines\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"grip-lines-vertical\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"affordance\",\n        \"drag\",\n        \"drop\",\n        \"grab\",\n        \"handle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a5\",\n    \"label\": \"Grip Lines Vertical\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"grip-vertical\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"affordance\",\n        \"drag\",\n        \"drop\",\n        \"grab\",\n        \"handle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f58e\",\n    \"label\": \"Grip Vertical\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gripfire\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ac\",\n    \"label\": \"Gripfire, Inc.\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722330,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"grunt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ad\",\n    \"label\": \"Grunt\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722330,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"guitar\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acoustic\",\n        \"instrument\",\n        \"music\",\n        \"rock\",\n        \"rock and roll\",\n        \"song\",\n        \"strings\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a6\",\n    \"label\": \"Guitar\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.6 54.6L457.4 9.4c-12.5-12.5-32.8-12.5-45.3 0l-67.9 67.9c-12.5 12.5-12.5 32.8 0 45.3L290 176.7c-45.4-29-100.4-28.9-133.5 4.2-9.7 9.7-16.4 21.2-20.5 33.9-6.1 18.8-23.5 33.1-42.7 34.9-24 2.3-46.3 11.6-63.4 28.8C-16.3 324.6-8 407.6 48.2 463.8c56.2 56.2 139.2 64.4 185.3 18.3 17.2-17.1 26.5-39.4 28.8-63.5 1.8-19.1 16.1-36.6 34.9-42.7 12.7-4.1 24.2-10.8 33.9-20.5 33.1-33.1 33.1-88.1 4.2-133.5l54.2-54.2c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9c12.4-12.4 12.4-32.7-.1-45.2zM208 352c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"gulp\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ae\",\n    \"label\": \"Gulp\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860996,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"h-square\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"emergency\",\n        \"hospital\",\n        \"hotel\",\n        \"map\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0fd\",\n    \"label\": \"H Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hacker-news\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d4\",\n    \"label\": \"Hacker News\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860996,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hacker-news-square\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3af\",\n    \"label\": \"Hacker News Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860996,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hackerrank\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5f7\",\n    \"label\": \"Hackerrank\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775899,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hamburger\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bacon\",\n        \"beef\",\n        \"burger\",\n        \"burger king\",\n        \"cheeseburger\",\n        \"fast food\",\n        \"grill\",\n        \"ground beef\",\n        \"mcdonalds\",\n        \"sandwich\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f805\",\n    \"label\": \"Hamburger\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941797,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hammer\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"fix\",\n        \"repair\",\n        \"settings\",\n        \"tool\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6e3\",\n    \"label\": \"Hammer\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861409,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hamsa\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"amulet\",\n        \"christianity\",\n        \"islam\",\n        \"jewish\",\n        \"judaism\",\n        \"muslim\",\n        \"protection\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f665\",\n    \"label\": \"Hamsa\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861410,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hand-holding\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carry\",\n        \"lift\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4bd\",\n    \"label\": \"Hand Holding\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861410,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hand-holding-heart\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carry\",\n        \"charity\",\n        \"gift\",\n        \"lift\",\n        \"package\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4be\",\n    \"label\": \"Hand Holding Heart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861410,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hand-holding-usd\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"$\",\n        \"carry\",\n        \"dollar sign\",\n        \"donation\",\n        \"giving\",\n        \"lift\",\n        \"money\",\n        \"price\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4c0\",\n    \"label\": \"Hand Holding US Dollar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861410,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 544 512\\\"><path d=\\\"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"544\",\n          \"512\"\n        ],\n        \"width\": 544,\n        \"height\": 512,\n        \"path\": \"M257.6 144.3l50 14.3c3.6 1 6.1 4.4 6.1 8.1 0 4.6-3.8 8.4-8.4 8.4h-32.8c-3.6 0-7.1-.8-10.3-2.2-4.8-2.2-10.4-1.7-14.1 2l-17.5 17.5c-5.3 5.3-4.7 14.3 1.5 18.4 9.5 6.3 20.3 10.1 31.8 11.5V240c0 8.8 7.2 16 16 16h16c8.8 0 16-7.2 16-16v-17.6c30.3-3.6 53.3-31 49.3-63-2.9-23-20.7-41.3-42.9-47.7l-50-14.3c-3.6-1-6.1-4.4-6.1-8.1 0-4.6 3.8-8.4 8.4-8.4h32.8c3.6 0 7.1.8 10.3 2.2 4.8 2.2 10.4 1.7 14.1-2l17.5-17.5c5.3-5.3 4.7-14.3-1.5-18.4-9.5-6.3-20.3-10.1-31.8-11.5V16c0-8.8-7.2-16-16-16h-16c-8.8 0-16 7.2-16 16v17.6c-30.3 3.6-53.3 31-49.3 63 2.9 23 20.7 41.3 42.9 47.7zm276.3 183.8c-11.2-10.7-28.5-10-40.3 0L406.4 402c-10.7 9.1-24 14-37.8 14H256.9c-8.3 0-15.1-7.2-15.1-16s6.8-16 15.1-16h73.9c15.1 0 29-10.9 31.4-26.6 3.1-20-11.5-37.4-29.8-37.4H181.3c-25.5 0-50.2 9.3-69.9 26.3L67.5 384H15.1C6.8 384 0 391.2 0 400v96c0 8.8 6.8 16 15.1 16H352c13.7 0 27-4.9 37.8-14l142.8-121c14.4-12.1 15.5-35.3 1.3-48.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hand-lizard\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"game\",\n        \"roshambo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f258\",\n    \"label\": \"Lizard (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861410,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-middle-finger\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flip the bird\",\n        \"gesture\",\n        \"hate\",\n        \"rude\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f806\",\n    \"label\": \"Hand with Middle Finger Raised\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859201,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hand-paper\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"game\",\n        \"halt\",\n        \"roshambo\",\n        \"stop\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f256\",\n    \"label\": \"Paper (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-peace\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"rest\",\n        \"truce\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f25b\",\n    \"label\": \"Peace (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-point-down\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"finger\",\n        \"hand-o-down\",\n        \"point\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0a7\",\n    \"label\": \"Hand Pointing Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-point-left\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"finger\",\n        \"hand-o-left\",\n        \"left\",\n        \"point\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0a5\",\n    \"label\": \"Hand Pointing Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-point-right\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"finger\",\n        \"forward\",\n        \"hand-o-right\",\n        \"next\",\n        \"point\",\n        \"right\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0a4\",\n    \"label\": \"Hand Pointing Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-point-up\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"finger\",\n        \"hand-o-up\",\n        \"point\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0a6\",\n    \"label\": \"Hand Pointing Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-pointer\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"cursor\",\n        \"select\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f25a\",\n    \"label\": \"Pointer (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-rock\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"fist\",\n        \"game\",\n        \"roshambo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f255\",\n    \"label\": \"Rock (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861277,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-scissors\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cut\",\n        \"game\",\n        \"roshambo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f257\",\n    \"label\": \"Scissors (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861411,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861278,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hand-spock\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"live long\",\n        \"prosper\",\n        \"salute\",\n        \"star trek\",\n        \"vulcan\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f259\",\n    \"label\": \"Spock (Hand)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722388,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861278,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M21.096 381.79l129.092 121.513a32 32 0 0 0 21.932 8.698h237.6c14.17 0 26.653-9.319 30.68-22.904l31.815-107.313A115.955 115.955 0 0 0 477 348.811v-36.839c0-4.051.476-8.104 1.414-12.045l31.73-133.41c10.099-42.412-22.316-82.738-65.544-82.525-4.144-24.856-22.543-47.165-49.85-53.992-35.803-8.952-72.227 12.655-81.25 48.75L296.599 184 274.924 52.01c-8.286-36.07-44.303-58.572-80.304-50.296-29.616 6.804-50.138 32.389-51.882 61.295-42.637.831-73.455 40.563-64.071 81.844l31.04 136.508c-27.194-22.515-67.284-19.992-91.482 5.722-25.376 26.961-24.098 69.325 2.871 94.707zm32.068-61.811l.002-.001c7.219-7.672 19.241-7.98 26.856-.813l53.012 49.894C143.225 378.649 160 371.4 160 357.406v-69.479c0-1.193-.134-2.383-.397-3.546l-34.13-150.172c-5.596-24.617 31.502-32.86 37.054-8.421l30.399 133.757a16 16 0 0 0 15.603 12.454h8.604c10.276 0 17.894-9.567 15.594-19.583l-41.62-181.153c-5.623-24.469 31.39-33.076 37.035-8.508l45.22 196.828A16 16 0 0 0 288.956 272h13.217a16 16 0 0 0 15.522-12.119l42.372-169.49c6.104-24.422 42.962-15.159 36.865 9.217L358.805 252.12c-2.521 10.088 5.115 19.88 15.522 19.88h9.694a16 16 0 0 0 15.565-12.295L426.509 146.6c5.821-24.448 42.797-15.687 36.966 8.802L431.72 288.81a100.094 100.094 0 0 0-2.72 23.162v36.839c0 6.548-.943 13.051-2.805 19.328L397.775 464h-219.31L53.978 346.836c-7.629-7.18-7.994-19.229-.814-26.857z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hands\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carry\",\n        \"hold\",\n        \"lift\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4c2\",\n    \"label\": \"Hands\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861412,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hands-helping\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"aid\",\n        \"assistance\",\n        \"handshake\",\n        \"partnership\",\n        \"volunteering\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4c4\",\n    \"label\": \"Helping Hands\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861412,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"handshake\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"agreement\",\n        \"greeting\",\n        \"meeting\",\n        \"partnership\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2b5\",\n    \"label\": \"Handshake\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861412,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861278,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hanukiah\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"candle\",\n        \"hanukkah\",\n        \"jewish\",\n        \"judaism\",\n        \"light\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6e6\",\n    \"label\": \"Hanukiah\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861412,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hard-hat\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"construction\",\n        \"hardhat\",\n        \"helmet\",\n        \"safety\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f807\",\n    \"label\": \"Hard Hat\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859201,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hashtag\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Twitter\",\n        \"instagram\",\n        \"pound\",\n        \"social media\",\n        \"tag\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f292\",\n    \"label\": \"Hashtag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861412,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hat-wizard\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"accessory\",\n        \"buckle\",\n        \"clothing\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"halloween\",\n        \"head\",\n        \"holiday\",\n        \"mage\",\n        \"magic\",\n        \"pointy\",\n        \"witch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6e8\",\n    \"label\": \"Wizard's Hat\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"haykal\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bahai\",\n        \"bahá'í\",\n        \"star\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f666\",\n    \"label\": \"Haykal\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hdd\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cpu\",\n        \"hard drive\",\n        \"harddrive\",\n        \"machine\",\n        \"save\",\n        \"storage\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0a0\",\n    \"label\": \"HDD\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861279,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"heading\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.9.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"format\",\n        \"header\",\n        \"text\",\n        \"title\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1dc\",\n    \"label\": \"heading\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084935,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"headphones\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"listen\",\n        \"music\",\n        \"sound\",\n        \"speaker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f025\",\n    \"label\": \"headphones\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"headphones-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"listen\",\n        \"music\",\n        \"sound\",\n        \"speaker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f58f\",\n    \"label\": \"Alternate Headphones\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"headset\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"gamer\",\n        \"gaming\",\n        \"listen\",\n        \"live chat\",\n        \"microphone\",\n        \"shot caller\",\n        \"sound\",\n        \"support\",\n        \"telemarketer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f590\",\n    \"label\": \"Headset\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861413,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"heart\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"favorite\",\n        \"like\",\n        \"love\",\n        \"relationship\",\n        \"valentine\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f004\",\n    \"label\": \"Heart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861280,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"heart-broken\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"breakup\",\n        \"crushed\",\n        \"dislike\",\n        \"dumped\",\n        \"grief\",\n        \"love\",\n        \"lovesick\",\n        \"relationship\",\n        \"sad\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7a9\",\n    \"label\": \"Heart Broken\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"heartbeat\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ekg\",\n        \"electrocardiogram\",\n        \"health\",\n        \"lifeline\",\n        \"vital signs\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f21e\",\n    \"label\": \"Heartbeat\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"helicopter\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airwolf\",\n        \"apache\",\n        \"chopper\",\n        \"flight\",\n        \"fly\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f533\",\n    \"label\": \"Helicopter\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"highlighter\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"marker\",\n        \"sharpie\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f591\",\n    \"label\": \"Highlighter\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 544 512\\\"><path d=\\\"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"544\",\n          \"512\"\n        ],\n        \"width\": 544,\n        \"height\": 512,\n        \"path\": \"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hiking\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"backpack\",\n        \"fall\",\n        \"fitness\",\n        \"outdoors\",\n        \"person\",\n        \"seasonal\",\n        \"walking\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6ec\",\n    \"label\": \"Hiking\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861414,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hippo\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"animal\",\n        \"fauna\",\n        \"hippopotamus\",\n        \"hungry\",\n        \"mammal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6ed\",\n    \"label\": \"Hippo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hips\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f452\",\n    \"label\": \"Hips\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722330,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hire-a-helper\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b0\",\n    \"label\": \"HireAHelper\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860997,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"history\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Rewind\",\n        \"clock\",\n        \"reverse\",\n        \"time\",\n        \"time machine\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1da\",\n    \"label\": \"History\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hockey-puck\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ice\",\n        \"nhl\",\n        \"sport\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f453\",\n    \"label\": \"Hockey Puck\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"holly-berry\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"catwoman\",\n        \"christmas\",\n        \"decoration\",\n        \"flora\",\n        \"halle\",\n        \"holiday\",\n        \"ororo munroe\",\n        \"plant\",\n        \"storm\",\n        \"xmas\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7aa\",\n    \"label\": \"Holly Berry\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"home\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"abode\",\n        \"building\",\n        \"house\",\n        \"main\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f015\",\n    \"label\": \"home\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859201,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hooli\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f427\",\n    \"label\": \"Hooli\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699928,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hornbill\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f592\",\n    \"label\": \"Hornbill\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775899,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"horse\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"equus\",\n        \"fauna\",\n        \"mammmal\",\n        \"mare\",\n        \"neigh\",\n        \"pony\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6f0\",\n    \"label\": \"Horse\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"horse-head\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"equus\",\n        \"fauna\",\n        \"mammmal\",\n        \"mare\",\n        \"neigh\",\n        \"pony\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ab\",\n    \"label\": \"Horse Head\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861415,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hospital\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"emergency room\",\n        \"medical center\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0f8\",\n    \"label\": \"hospital\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861282,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hospital-alt\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"emergency room\",\n        \"medical center\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f47d\",\n    \"label\": \"Alternate Hospital\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hospital-symbol\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clinic\",\n        \"emergency\",\n        \"map\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f47e\",\n    \"label\": \"Hospital Symbol\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hot-tub\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bath\",\n        \"jacuzzi\",\n        \"massage\",\n        \"sauna\",\n        \"spa\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f593\",\n    \"label\": \"Hot Tub\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hotdog\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bun\",\n        \"chili\",\n        \"frankfurt\",\n        \"frankfurter\",\n        \"kosher\",\n        \"polish\",\n        \"sandwich\",\n        \"sausage\",\n        \"vienna\",\n        \"weiner\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f80f\",\n    \"label\": \"Hot Dog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697762016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hotel\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"inn\",\n        \"lodging\",\n        \"motel\",\n        \"resort\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f594\",\n    \"label\": \"Hotel\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hotjar\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b1\",\n    \"label\": \"Hotjar\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860997,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hourglass\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hour\",\n        \"minute\",\n        \"sand\",\n        \"stopwatch\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f254\",\n    \"label\": \"Hourglass\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861282,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"hourglass-end\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hour\",\n        \"minute\",\n        \"sand\",\n        \"stopwatch\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f253\",\n    \"label\": \"Hourglass End\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hourglass-half\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hour\",\n        \"minute\",\n        \"sand\",\n        \"stopwatch\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f252\",\n    \"label\": \"Hourglass Half\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"hourglass-start\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hour\",\n        \"minute\",\n        \"sand\",\n        \"stopwatch\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f251\",\n    \"label\": \"Hourglass Start\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"house-damage\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"devastation\",\n        \"disaster\",\n        \"home\",\n        \"insurance\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6f1\",\n    \"label\": \"Damaged House\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861416,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"houzz\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f27c\",\n    \"label\": \"Houzz\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775899,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hryvnia\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"money\",\n        \"ukraine\",\n        \"ukrainian\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6f2\",\n    \"label\": \"Hryvnia\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"html5\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f13b\",\n    \"label\": \"HTML 5 Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860998,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"hubspot\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b2\",\n    \"label\": \"HubSpot\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860998,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"i-cursor\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"editing\",\n        \"i-beam\",\n        \"type\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f246\",\n    \"label\": \"I Beam Cursor\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ice-cream\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chocolate\",\n        \"cone\",\n        \"dessert\",\n        \"frozen\",\n        \"scoop\",\n        \"sorbet\",\n        \"vanilla\",\n        \"yogurt\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f810\",\n    \"label\": \"Ice Cream\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941798,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"icicles\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cold\",\n        \"frozen\",\n        \"hanging\",\n        \"ice\",\n        \"seasonal\",\n        \"sharp\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ad\",\n    \"label\": \"Icicles\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"icons\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bolt\",\n        \"emoji\",\n        \"heart\",\n        \"image\",\n        \"music\",\n        \"photo\",\n        \"symbols\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f86d\",\n    \"label\": \"Icons\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084936,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"id-badge\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"contact\",\n        \"identification\",\n        \"license\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2c1\",\n    \"label\": \"Identification Badge\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861283,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"id-card\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.8.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contact\",\n        \"demographics\",\n        \"document\",\n        \"identification\",\n        \"issued\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2c2\",\n    \"label\": \"Identification Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861283,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"id-card-alt\": {\n    \"changes\": [\n      \"5.0.7\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contact\",\n        \"demographics\",\n        \"document\",\n        \"identification\",\n        \"issued\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f47f\",\n    \"label\": \"Alternate Identification Card\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"igloo\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dome\",\n        \"dwelling\",\n        \"eskimo\",\n        \"home\",\n        \"house\",\n        \"ice\",\n        \"snow\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ae\",\n    \"label\": \"Igloo\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"image\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"album\",\n        \"landscape\",\n        \"photo\",\n        \"picture\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f03e\",\n    \"label\": \"Image\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861417,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861283,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"images\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"album\",\n        \"landscape\",\n        \"photo\",\n        \"picture\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f302\",\n    \"label\": \"Images\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861283,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"imdb\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2d8\",\n    \"label\": \"IMDB\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722331,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"inbox\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"desk\",\n        \"email\",\n        \"mail\",\n        \"message\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f01c\",\n    \"label\": \"inbox\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"indent\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"align\",\n        \"justify\",\n        \"paragraph\",\n        \"tab\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f03c\",\n    \"label\": \"Indent\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084936,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"industry\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"factory\",\n        \"industrial\",\n        \"manufacturing\",\n        \"mill\",\n        \"warehouse\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f275\",\n    \"label\": \"Industry\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"infinity\": {\n    \"changes\": [\n      \"5.0.13\",\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"eternity\",\n        \"forever\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f534\",\n    \"label\": \"Infinity\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"info\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"details\",\n        \"help\",\n        \"information\",\n        \"more\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f129\",\n    \"label\": \"Info\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"info-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"details\",\n        \"help\",\n        \"information\",\n        \"more\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f05a\",\n    \"label\": \"Info Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861418,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"instagram\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f16d\",\n    \"label\": \"Instagram\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860998,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"intercom\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"app\",\n        \"customer\",\n        \"messenger\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7af\",\n    \"label\": \"Intercom\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860998,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"internet-explorer\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"ie\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f26b\",\n    \"label\": \"Internet-explorer\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860999,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"invision\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"app\",\n        \"design\",\n        \"interface\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7b0\",\n    \"label\": \"InVision\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860999,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ioxhost\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f208\",\n    \"label\": \"ioxhost\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860999,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"italic\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"emphasis\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f033\",\n    \"label\": \"italic\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084936,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"itch-io\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f83a\",\n    \"label\": \"itch.io\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775900,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"itunes\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b4\",\n    \"label\": \"iTunes\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860999,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"itunes-note\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b5\",\n    \"label\": \"Itunes Note\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440860999,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"java\": {\n    \"changes\": [\n      \"5.0.10\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4e4\",\n    \"label\": \"Java\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775900,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"jedi\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crest\",\n        \"force\",\n        \"sith\",\n        \"skywalker\",\n        \"star wars\",\n        \"yoda\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f669\",\n    \"label\": \"Jedi\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861419,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 544 512\\\"><path d=\\\"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"544\",\n          \"512\"\n        ],\n        \"width\": 544,\n        \"height\": 512,\n        \"path\": \"M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"jedi-order\": {\n    \"changes\": [\n      \"5.0.12\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"star wars\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50e\",\n    \"label\": \"Jedi Order\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699929,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"jenkins\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b6\",\n    \"label\": \"Jenkis\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861000,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"jira\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atlassian\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7b1\",\n    \"label\": \"Jira\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861000,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"joget\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b7\",\n    \"label\": \"Joget\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722332,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"joint\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blunt\",\n        \"cannabis\",\n        \"doobie\",\n        \"drugs\",\n        \"marijuana\",\n        \"roach\",\n        \"smoke\",\n        \"smoking\",\n        \"spliff\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f595\",\n    \"label\": \"Joint\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861419,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"joomla\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1aa\",\n    \"label\": \"Joomla Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861000,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"journal-whills\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"book\",\n        \"force\",\n        \"jedi\",\n        \"sith\",\n        \"star wars\",\n        \"yoda\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f66a\",\n    \"label\": \"Journal of the Whills\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861419,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"js\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b8\",\n    \"label\": \"JavaScript (JS)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861001,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"js-square\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3b9\",\n    \"label\": \"JavaScript (JS) Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861000,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"jsfiddle\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1cc\",\n    \"label\": \"jsFiddle\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861001,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"kaaba\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"cube\",\n        \"islam\",\n        \"muslim\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f66b\",\n    \"label\": \"Kaaba\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861419,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"kaggle\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5fa\",\n    \"label\": \"Kaggle\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775901,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"key\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"lock\",\n        \"password\",\n        \"private\",\n        \"secret\",\n        \"unlock\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f084\",\n    \"label\": \"key\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"keybase\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f5\",\n    \"label\": \"Keybase\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775901,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"keyboard\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accessory\",\n        \"edit\",\n        \"input\",\n        \"text\",\n        \"type\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f11c\",\n    \"label\": \"Keyboard\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861286,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"keycdn\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ba\",\n    \"label\": \"KeyCDN\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861001,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"khanda\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chakkar\",\n        \"sikh\",\n        \"sikhism\",\n        \"sword\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f66d\",\n    \"label\": \"Khanda\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"kickstarter\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3bb\",\n    \"label\": \"Kickstarter\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861002,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"kickstarter-k\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3bc\",\n    \"label\": \"Kickstarter K\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861001,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"kiss\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.1.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beso\",\n        \"emoticon\",\n        \"face\",\n        \"love\",\n        \"smooch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f596\",\n    \"label\": \"Kissing Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861286,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"kiss-beam\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beso\",\n        \"emoticon\",\n        \"face\",\n        \"love\",\n        \"smooch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f597\",\n    \"label\": \"Kissing Face With Smiling Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861286,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"kiss-wink-heart\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beso\",\n        \"emoticon\",\n        \"face\",\n        \"love\",\n        \"smooch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f598\",\n    \"label\": \"Face Blowing a Kiss\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 504 512\\\"><path d=\\\"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"504\",\n          \"512\"\n        ],\n        \"width\": 504,\n        \"height\": 512,\n        \"path\": \"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861286,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 504 512\\\"><path d=\\\"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"504\",\n          \"512\"\n        ],\n        \"width\": 504,\n        \"height\": 512,\n        \"path\": \"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"kiwi-bird\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bird\",\n        \"fauna\",\n        \"new zealand\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f535\",\n    \"label\": \"Kiwi Bird\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861420,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"korvue\": {\n    \"changes\": [\n      \"5.0.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42f\",\n    \"label\": \"KORVUE\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861002,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 446 512\\\"><path d=\\\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"446\",\n          \"512\"\n        ],\n        \"width\": 446,\n        \"height\": 512,\n        \"path\": \"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"landmark\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"historic\",\n        \"memorable\",\n        \"monument\",\n        \"politics\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f66f\",\n    \"label\": \"Landmark\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"language\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dialect\",\n        \"idiom\",\n        \"localize\",\n        \"speech\",\n        \"translate\",\n        \"vernacular\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ab\",\n    \"label\": \"Language\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"laptop\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"cpu\",\n        \"dell\",\n        \"demo\",\n        \"device\",\n        \"mac\",\n        \"macbook\",\n        \"machine\",\n        \"pc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f109\",\n    \"label\": \"Laptop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"laptop-code\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"cpu\",\n        \"dell\",\n        \"demo\",\n        \"develop\",\n        \"device\",\n        \"mac\",\n        \"macbook\",\n        \"machine\",\n        \"pc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5fc\",\n    \"label\": \"Laptop Code\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"laptop-medical\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"device\",\n        \"ehr\",\n        \"electronic health records\",\n        \"history\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f812\",\n    \"label\": \"Laptop Medical\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299599,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"laravel\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3bd\",\n    \"label\": \"Laravel\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861002,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M637.5 241.6c-4.2-4.8-62.8-78.1-73.1-90.5-10.3-12.4-15.4-10.2-21.7-9.3-6.4.9-80.5 13.4-89.1 14.8-8.6 1.5-14 4.9-8.7 12.3 4.7 6.6 53.4 75.7 64.2 90.9l-193.7 46.4L161.2 48.7c-6.1-9.1-7.4-12.3-21.4-11.6-14 .6-120.9 9.5-128.5 10.2-7.6.6-16 4-8.4 22s129 279.6 132.4 287.2c3.4 7.6 12.2 20 32.8 15 21.1-5.1 94.3-24.2 134.3-34.7 21.1 38.3 64.2 115.9 72.2 127 10.6 14.9 18 12.4 34.3 7.4 12.8-3.9 199.6-71.1 208-74.5 8.4-3.5 13.6-5.9 7.9-14.4-4.2-6.2-53.5-72.2-79.3-106.8 17.7-4.7 80.6-21.4 87.3-23.3 7.9-2 9-5.8 4.7-10.6zm-352.2 72c-2.3.5-110.8 26.5-116.6 27.8-5.8 1.3-5.8.7-6.5-1.3-.7-2-129-266.7-130.8-270-1.8-3.3-1.7-5.9 0-5.9s102.5-9 106-9.2c3.6-.2 3.2.6 4.5 2.8 0 0 142.2 245.4 144.6 249.7 2.6 4.3 1.1 5.6-1.2 6.1zm306 57.4c1.7 2.7 3.5 4.5-2 6.4-5.4 2-183.7 62.1-187.1 63.6-3.5 1.5-6.2 2-10.6-4.5s-62.4-106.8-62.4-106.8L518 280.6c4.7-1.5 6.2-2.5 9.2 2.2 2.9 4.8 62.4 85.5 64.1 88.2zm12.1-134.1c-4.2.9-73.6 18.1-73.6 18.1l-56.7-77.8c-1.6-2.3-2.9-4.5 1.1-5s68.4-12.2 71.3-12.8c2.9-.7 5.4-1.5 9 3.4 3.6 4.9 52.6 67 54.5 69.4 1.8 2.3-1.4 3.7-5.6 4.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"lastfm\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f202\",\n    \"label\": \"last.fm\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861002,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"lastfm-square\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f203\",\n    \"label\": \"last.fm Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861002,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"laugh\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\",\n        \"laugh\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f599\",\n    \"label\": \"Grinning Face With Big Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861287,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"laugh-beam\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f59a\",\n    \"label\": \"Laugh Face with Beaming Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861287,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"laugh-squint\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f59b\",\n    \"label\": \"Laughing Squinting Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861287,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"laugh-wink\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"LOL\",\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"smile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f59c\",\n    \"label\": \"Laughing Winking Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861421,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861287,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"layer-group\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"develop\",\n        \"layers\",\n        \"map\",\n        \"stack\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5fd\",\n    \"label\": \"Layer Group\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861422,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"leaf\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"eco\",\n        \"flora\",\n        \"nature\",\n        \"plant\",\n        \"vegan\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f06c\",\n    \"label\": \"leaf\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861422,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"leanpub\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f212\",\n    \"label\": \"Leanpub\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861003,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"lemon\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"citrus\",\n        \"lemonade\",\n        \"lime\",\n        \"tart\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f094\",\n    \"label\": \"Lemon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861422,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861288,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"less\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41d\",\n    \"label\": \"Less\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861003,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"less-than\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"compare\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f536\",\n    \"label\": \"Less Than\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861422,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"less-than-equal\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"compare\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f537\",\n    \"label\": \"Less Than Equal To\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861422,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"level-down-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"level-down\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3be\",\n    \"label\": \"Alternate Level Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861423,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"level-up-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"level-up\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3bf\",\n    \"label\": \"Alternate Level Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861423,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"life-ring\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"coast guard\",\n        \"help\",\n        \"overboard\",\n        \"save\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1cd\",\n    \"label\": \"Life Ring\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861423,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861289,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"lightbulb\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"energy\",\n        \"idea\",\n        \"inspiration\",\n        \"light\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0eb\",\n    \"label\": \"Lightbulb\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861423,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861289,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"line\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c0\",\n    \"label\": \"Line\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861003,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"link\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"attach\",\n        \"attachment\",\n        \"chain\",\n        \"connect\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c1\",\n    \"label\": \"Link\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861424,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"linkedin\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linkedin-square\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f08c\",\n    \"label\": \"LinkedIn\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861003,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"linkedin-in\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.4.1\",\n      \"5.8.0\",\n      \"5.8.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linkedin\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f0e1\",\n    \"label\": \"LinkedIn In\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775902,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"linode\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b8\",\n    \"label\": \"Linode\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861003,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"linux\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"tux\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f17c\",\n    \"label\": \"Linux\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722333,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"lira-sign\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"money\",\n        \"try\",\n        \"turkish\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f195\",\n    \"label\": \"Turkish Lira Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861424,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"list\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"ol\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f03a\",\n    \"label\": \"List\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084937,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"list-alt\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"ol\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f022\",\n    \"label\": \"Alternate List\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861424,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861290,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"list-ol\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"numbers\",\n        \"ol\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0cb\",\n    \"label\": \"list-ol\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084937,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"list-ul\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"ol\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ca\",\n    \"label\": \"list-ul\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084937,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"location-arrow\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"compass\",\n        \"coordinate\",\n        \"direction\",\n        \"gps\",\n        \"map\",\n        \"navigation\",\n        \"place\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f124\",\n    \"label\": \"location-arrow\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861424,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"lock\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"lock\",\n        \"open\",\n        \"password\",\n        \"private\",\n        \"protect\",\n        \"security\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f023\",\n    \"label\": \"lock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"lock-open\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"lock\",\n        \"open\",\n        \"password\",\n        \"private\",\n        \"protect\",\n        \"security\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3c1\",\n    \"label\": \"Lock Open\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"long-arrow-alt-down\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"download\",\n        \"long-arrow-down\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f309\",\n    \"label\": \"Alternate Long Arrow Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"long-arrow-alt-left\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"long-arrow-left\",\n        \"previous\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f30a\",\n    \"label\": \"Alternate Long Arrow Left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"long-arrow-alt-right\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"long-arrow-right\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f30b\",\n    \"label\": \"Alternate Long Arrow Right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"long-arrow-alt-up\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"long-arrow-up\",\n        \"upload\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f30c\",\n    \"label\": \"Alternate Long Arrow Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861425,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"low-vision\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blind\",\n        \"eye\",\n        \"sight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a8\",\n    \"label\": \"Low Vision\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861426,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"luggage-cart\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bag\",\n        \"baggage\",\n        \"suitcase\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f59d\",\n    \"label\": \"Luggage Cart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861426,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"lyft\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c3\",\n    \"label\": \"lyft\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861004,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"magento\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c4\",\n    \"label\": \"Magento\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861004,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"magic\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"autocomplete\",\n        \"automatic\",\n        \"mage\",\n        \"magic\",\n        \"spell\",\n        \"wand\",\n        \"witch\",\n        \"wizard\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d0\",\n    \"label\": \"magic\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861426,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"magnet\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Attract\",\n        \"lodestone\",\n        \"tool\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f076\",\n    \"label\": \"magnet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mail-bulk\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"envelope\",\n        \"letter\",\n        \"post office\",\n        \"postal\",\n        \"postcard\",\n        \"send\",\n        \"stamp\",\n        \"usps\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f674\",\n    \"label\": \"Mail Bulk\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861427,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mailchimp\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.7.0\",\n      \"5.8.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f59e\",\n    \"label\": \"Mailchimp\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084863,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"male\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"human\",\n        \"man\",\n        \"person\",\n        \"profile\",\n        \"user\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f183\",\n    \"label\": \"Male\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861427,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 192 512\\\"><path d=\\\"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"192\",\n          \"512\"\n        ],\n        \"width\": 192,\n        \"height\": 512,\n        \"path\": \"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mandalorian\": {\n    \"changes\": [\n      \"5.0.12\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f50f\",\n    \"label\": \"Mandalorian\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775903,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"map\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"navigation\",\n        \"paper\",\n        \"pin\",\n        \"place\",\n        \"point of interest\",\n        \"position\",\n        \"route\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f279\",\n    \"label\": \"Map\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861428,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861294,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"map-marked\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"navigation\",\n        \"paper\",\n        \"pin\",\n        \"place\",\n        \"point of interest\",\n        \"position\",\n        \"route\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f59f\",\n    \"label\": \"Map Marked\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861427,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"map-marked-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"navigation\",\n        \"paper\",\n        \"pin\",\n        \"place\",\n        \"point of interest\",\n        \"position\",\n        \"route\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5a0\",\n    \"label\": \"Alternate Map Marked\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861427,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"map-marker\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"navigation\",\n        \"paper\",\n        \"pin\",\n        \"place\",\n        \"point of interest\",\n        \"position\",\n        \"route\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f041\",\n    \"label\": \"map-marker\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861428,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"map-marker-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"navigation\",\n        \"paper\",\n        \"pin\",\n        \"place\",\n        \"point of interest\",\n        \"position\",\n        \"route\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3c5\",\n    \"label\": \"Alternate Map Marker\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861427,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"map-pin\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"address\",\n        \"agree\",\n        \"coordinates\",\n        \"destination\",\n        \"gps\",\n        \"localize\",\n        \"location\",\n        \"map\",\n        \"marker\",\n        \"navigation\",\n        \"pin\",\n        \"place\",\n        \"position\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f276\",\n    \"label\": \"Map Pin\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861428,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"map-signs\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"directory\",\n        \"map\",\n        \"signage\",\n        \"wayfinding\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f277\",\n    \"label\": \"Map Signs\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861428,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"markdown\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f60f\",\n    \"label\": \"Markdown\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699930,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"marker\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"sharpie\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5a1\",\n    \"label\": \"Marker\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861428,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mars\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"male\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f222\",\n    \"label\": \"Mars\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mars-double\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f227\",\n    \"label\": \"Mars Double\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mars-stroke\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f229\",\n    \"label\": \"Mars Stroke\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mars-stroke-h\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f22b\",\n    \"label\": \"Mars Stroke Horizontal\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mars-stroke-v\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f22a\",\n    \"label\": \"Mars Stroke Vertical\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mask\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"carnivale\",\n        \"costume\",\n        \"disguise\",\n        \"halloween\",\n        \"secret\",\n        \"super hero\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6fa\",\n    \"label\": \"Mask\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mastodon\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f6\",\n    \"label\": \"Mastodon\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775904,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"maxcdn\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f136\",\n    \"label\": \"MaxCDN\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861005,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"medal\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"award\",\n        \"ribbon\",\n        \"star\",\n        \"trophy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5a2\",\n    \"label\": \"Medal\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"medapps\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c6\",\n    \"label\": \"MedApps\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861005,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"medium\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f23a\",\n    \"label\": \"Medium\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861005,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"medium-m\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c7\",\n    \"label\": \"Medium M\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861005,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"medkit\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"first aid\",\n        \"firstaid\",\n        \"health\",\n        \"help\",\n        \"support\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0fa\",\n    \"label\": \"medkit\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"medrt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3c8\",\n    \"label\": \"MRT\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861006,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 544 512\\\"><path d=\\\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"544\",\n          \"512\"\n        ],\n        \"width\": 544,\n        \"height\": 512,\n        \"path\": \"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"meetup\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2e0\",\n    \"label\": \"Meetup\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861006,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"megaport\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5a3\",\n    \"label\": \"Megaport\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722334,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"meh\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"neutral\",\n        \"rating\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f11a\",\n    \"label\": \"Neutral Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861295,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"meh-blank\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"neutral\",\n        \"rating\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5a4\",\n    \"label\": \"Face Without Mouth\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861295,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"meh-rolling-eyes\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"neutral\",\n        \"rating\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5a5\",\n    \"label\": \"Face With Rolling Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861429,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861295,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"memory\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"DIMM\",\n        \"RAM\",\n        \"hardware\",\n        \"storage\",\n        \"technology\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f538\",\n    \"label\": \"Memory\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mendeley\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7b3\",\n    \"label\": \"Mendeley\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722334,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"menorah\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"candle\",\n        \"hanukkah\",\n        \"jewish\",\n        \"judaism\",\n        \"light\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f676\",\n    \"label\": \"Menorah\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mercury\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"transgender\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f223\",\n    \"label\": \"Mercury\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"meteor\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"armageddon\",\n        \"asteroid\",\n        \"comet\",\n        \"shooting star\",\n        \"space\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f753\",\n    \"label\": \"Meteor\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microchip\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cpu\",\n        \"hardware\",\n        \"processor\",\n        \"technology\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2db\",\n    \"label\": \"Microchip\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microphone\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"podcast\",\n        \"record\",\n        \"sing\",\n        \"sound\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f130\",\n    \"label\": \"microphone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microphone-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"podcast\",\n        \"record\",\n        \"sing\",\n        \"sound\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3c9\",\n    \"label\": \"Alternate Microphone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microphone-alt-slash\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"disable\",\n        \"mute\",\n        \"podcast\",\n        \"record\",\n        \"sing\",\n        \"sound\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f539\",\n    \"label\": \"Alternate Microphone Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microphone-slash\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"disable\",\n        \"mute\",\n        \"podcast\",\n        \"record\",\n        \"sing\",\n        \"sound\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f131\",\n    \"label\": \"Microphone Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microscope\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"electron\",\n        \"lens\",\n        \"optics\",\n        \"science\",\n        \"shrink\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f610\",\n    \"label\": \"Microscope\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861430,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"microsoft\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ca\",\n    \"label\": \"Microsoft\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861006,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"minus\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"collapse\",\n        \"delete\",\n        \"hide\",\n        \"minify\",\n        \"negative\",\n        \"remove\",\n        \"trash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f068\",\n    \"label\": \"minus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861431,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"minus-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"delete\",\n        \"hide\",\n        \"negative\",\n        \"remove\",\n        \"shape\",\n        \"trash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f056\",\n    \"label\": \"Minus Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861431,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"minus-square\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"collapse\",\n        \"delete\",\n        \"hide\",\n        \"minify\",\n        \"negative\",\n        \"remove\",\n        \"shape\",\n        \"trash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f146\",\n    \"label\": \"Minus Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861431,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861297,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"mitten\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clothing\",\n        \"cold\",\n        \"glove\",\n        \"hands\",\n        \"knitted\",\n        \"seasonal\",\n        \"warmth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7b5\",\n    \"label\": \"Mitten\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861431,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mix\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3cb\",\n    \"label\": \"Mix\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"mixcloud\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f289\",\n    \"label\": \"Mixcloud\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"mizuni\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3cc\",\n    \"label\": \"Mizuni\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"mobile\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apple\",\n        \"call\",\n        \"cell phone\",\n        \"cellphone\",\n        \"device\",\n        \"iphone\",\n        \"number\",\n        \"screen\",\n        \"telephone\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f10b\",\n    \"label\": \"Mobile Phone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mobile-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apple\",\n        \"call\",\n        \"cell phone\",\n        \"cellphone\",\n        \"device\",\n        \"iphone\",\n        \"number\",\n        \"screen\",\n        \"telephone\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3cd\",\n    \"label\": \"Alternate Mobile\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861431,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"modx\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f285\",\n    \"label\": \"MODX\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"monero\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d0\",\n    \"label\": \"Monero\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"money-bill\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"cash\",\n        \"checkout\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d6\",\n    \"label\": \"Money Bill\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"money-bill-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"cash\",\n        \"checkout\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f3d1\",\n    \"label\": \"Alternate Money Bill\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861297,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"money-bill-wave\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"cash\",\n        \"checkout\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53a\",\n    \"label\": \"Wavy Money Bill\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"money-bill-wave-alt\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"cash\",\n        \"checkout\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53b\",\n    \"label\": \"Alternate Wavy Money Bill\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"money-check\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bank check\",\n        \"buy\",\n        \"checkout\",\n        \"cheque\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53c\",\n    \"label\": \"Money Check\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"money-check-alt\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bank check\",\n        \"buy\",\n        \"checkout\",\n        \"cheque\",\n        \"money\",\n        \"payment\",\n        \"price\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53d\",\n    \"label\": \"Alternate Money Check\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861432,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"monument\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"historic\",\n        \"landmark\",\n        \"memorable\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5a6\",\n    \"label\": \"Monument\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"moon\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"contrast\",\n        \"crescent\",\n        \"dark\",\n        \"lunar\",\n        \"night\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f186\",\n    \"label\": \"Moon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861298,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"mortar-pestle\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crush\",\n        \"culinary\",\n        \"grind\",\n        \"medical\",\n        \"mix\",\n        \"pharmacy\",\n        \"prescription\",\n        \"spices\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5a7\",\n    \"label\": \"Mortar Pestle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mosque\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"islam\",\n        \"landmark\",\n        \"muslim\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f678\",\n    \"label\": \"Mosque\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"motorcycle\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bike\",\n        \"machine\",\n        \"transportation\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f21c\",\n    \"label\": \"Motorcycle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722389,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mountain\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"glacier\",\n        \"hiking\",\n        \"hill\",\n        \"landscape\",\n        \"travel\",\n        \"view\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6fc\",\n    \"label\": \"Mountain\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mouse-pointer\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"cursor\",\n        \"select\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f245\",\n    \"label\": \"Mouse Pointer\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"mug-hot\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"caliente\",\n        \"cocoa\",\n        \"coffee\",\n        \"cup\",\n        \"drink\",\n        \"holiday\",\n        \"hot chocolate\",\n        \"steam\",\n        \"tea\",\n        \"warmth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7b6\",\n    \"label\": \"Mug Hot\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861433,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"music\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"lyrics\",\n        \"melody\",\n        \"note\",\n        \"sing\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f001\",\n    \"label\": \"Music\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M511.99 32.01c0-21.71-21.1-37.01-41.6-30.51L150.4 96c-13.3 4.2-22.4 16.5-22.4 30.5v261.42c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64V214.31l256-75.02v184.63c-10.05-2.38-20.72-3.92-32-3.92-53.02 0-96 28.65-96 64s42.98 64 96 64 96-28.65 96-64l-.01-351.99z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"napster\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d2\",\n    \"label\": \"Napster\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861007,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"neos\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f612\",\n    \"label\": \"Neos\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775904,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"network-wired\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"connect\",\n        \"ethernet\",\n        \"internet\",\n        \"intranet\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6ff\",\n    \"label\": \"Wired Network\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"neuter\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f22c\",\n    \"label\": \"Neuter\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"newspaper\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"article\",\n        \"editorial\",\n        \"headline\",\n        \"journal\",\n        \"journalism\",\n        \"news\",\n        \"press\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1ea\",\n    \"label\": \"Newspaper\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861299,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"nimblr\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5a8\",\n    \"label\": \"Nimblr\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775905,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"node\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f419\",\n    \"label\": \"Node.js\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861008,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"node-js\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d3\",\n    \"label\": \"Node.js JS\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861008,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"not-equal\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"compare\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53e\",\n    \"label\": \"Not Equal\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"notes-medical\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clipboard\",\n        \"doctor\",\n        \"ehr\",\n        \"health\",\n        \"history\",\n        \"records\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f481\",\n    \"label\": \"Medical Notes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"npm\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d4\",\n    \"label\": \"npm\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861008,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ns8\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d5\",\n    \"label\": \"NS8\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M187.1 159.9l-34.2 113.7-54.5-113.7H49L0 320h44.9L76 213.5 126.6 320h56.9L232 159.9h-44.9zm452.5-.9c-2.9-18-23.9-28.1-42.1-31.3-44.6-7.8-101.9 16.3-88.5 58.8v.1c-43.8 8.7-74.3 26.8-94.2 48.2-3-9.8-13.6-16.6-34-16.6h-87.6c-9.3 0-12.9-2.3-11.5-7.4 1.6-5.5 1.9-6.8 3.7-12.2 2.1-6.4 7.8-7.1 13.3-7.1h133.5l9.7-31.5c-139.7 0-144.5-.5-160.1 1.2-12.3 1.3-23.5 4.8-30.6 15-6.8 9.9-14.4 35.6-17.6 47.1-5.4 19.4-.6 28.6 32.8 28.6h87.3c7.8 0 8.8 2.7 7.7 6.6-1.1 4.4-2.8 10-4.5 14.6-1.6 4.2-4.7 7.4-13.8 7.4H216.3L204.7 320c139.9 0 145.3-.6 160.9-2.3 6.6-.7 13-2.1 18.5-4.9.2 3.7.5 7.3 1.2 10.8 5.4 30.5 27.4 52.3 56.8 59.5 48.6 11.9 108.7-16.8 135.1-68 18.7-36.2 14.1-76.2-3.4-105.5h.1c29.6-5.9 70.3-22 65.7-50.6zM530.7 263.7c-5.9 29.5-36.6 47.8-61.6 43.9-30.9-4.8-38.5-39.5-14.1-64.8 16.2-16.8 45.2-24 68.5-26.9 6.7 14.1 10.3 32 7.2 47.8zm21.8-83.1c-4.2-6-9.8-18.5-2.5-26.3 6.7-7.2 20.9-10.1 31.8-7.7 15.3 3.4 19.7 15.9 4.9 24.4-10.7 6.1-23.6 8.1-34.2 9.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"nutritionix\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d6\",\n    \"label\": \"Nutritionix\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 400 512\\\"><path d=\\\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"400\",\n          \"512\"\n        ],\n        \"width\": 400,\n        \"height\": 512,\n        \"path\": \"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"object-group\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"combine\",\n        \"copy\",\n        \"design\",\n        \"merge\",\n        \"select\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f247\",\n    \"label\": \"Object Group\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861300,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"object-ungroup\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"copy\",\n        \"design\",\n        \"merge\",\n        \"select\",\n        \"separate\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f248\",\n    \"label\": \"Object Ungroup\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861434,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861300,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"odnoklassniki\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f263\",\n    \"label\": \"Odnoklassniki\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"odnoklassniki-square\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f264\",\n    \"label\": \"Odnoklassniki Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"oil-can\": {\n    \"changes\": [\n      \"5.2.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"crude\",\n        \"gasoline\",\n        \"grease\",\n        \"lubricate\",\n        \"petroleum\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f613\",\n    \"label\": \"Oil Can\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861435,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"old-republic\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"politics\",\n        \"star wars\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f510\",\n    \"label\": \"Old Republic\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"om\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buddhism\",\n        \"hinduism\",\n        \"jainism\",\n        \"mantra\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f679\",\n    \"label\": \"Om\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861435,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"opencart\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f23d\",\n    \"label\": \"OpenCart\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861009,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"openid\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f19b\",\n    \"label\": \"OpenID\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861010,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"opera\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f26a\",\n    \"label\": \"Opera\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861010,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"optin-monster\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f23c\",\n    \"label\": \"Optin Monster\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699930,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"osi\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41a\",\n    \"label\": \"Open Source Initiative\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775906,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"otter\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"animal\",\n        \"badger\",\n        \"fauna\",\n        \"fur\",\n        \"mammal\",\n        \"marten\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f700\",\n    \"label\": \"Otter\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861435,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"outdent\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"align\",\n        \"justify\",\n        \"paragraph\",\n        \"tab\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f03b\",\n    \"label\": \"Outdent\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084938,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"page4\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d7\",\n    \"label\": \"page4 Corporation\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861010,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pagelines\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"eco\",\n        \"flora\",\n        \"leaf\",\n        \"leaves\",\n        \"nature\",\n        \"plant\",\n        \"tree\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f18c\",\n    \"label\": \"Pagelines\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pager\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beeper\",\n        \"cellphone\",\n        \"communication\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f815\",\n    \"label\": \"Pager\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701299709,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paint-brush\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acrylic\",\n        \"art\",\n        \"brush\",\n        \"color\",\n        \"fill\",\n        \"paint\",\n        \"pigment\",\n        \"watercolor\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1fc\",\n    \"label\": \"Paint Brush\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861435,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paint-roller\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acrylic\",\n        \"art\",\n        \"brush\",\n        \"color\",\n        \"fill\",\n        \"paint\",\n        \"pigment\",\n        \"watercolor\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5aa\",\n    \"label\": \"Paint Roller\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861435,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"palette\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"acrylic\",\n        \"art\",\n        \"brush\",\n        \"color\",\n        \"fill\",\n        \"paint\",\n        \"pigment\",\n        \"watercolor\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f53f\",\n    \"label\": \"Palette\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861436,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"palfed\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d8\",\n    \"label\": \"Palfed\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pallet\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"box\",\n        \"inventory\",\n        \"shipping\",\n        \"warehouse\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f482\",\n    \"label\": \"Pallet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861436,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paper-plane\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"air\",\n        \"float\",\n        \"fold\",\n        \"mail\",\n        \"paper\",\n        \"send\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f1d8\",\n    \"label\": \"Paper Plane\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861436,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861301,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"paperclip\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"attach\",\n        \"attachment\",\n        \"connect\",\n        \"link\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c6\",\n    \"label\": \"Paperclip\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861436,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"parachute-box\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"aid\",\n        \"assistance\",\n        \"rescue\",\n        \"supplies\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4cd\",\n    \"label\": \"Parachute Box\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861436,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paragraph\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"format\",\n        \"text\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1dd\",\n    \"label\": \"paragraph\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084939,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"parking\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"auto\",\n        \"car\",\n        \"garage\",\n        \"meter\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f540\",\n    \"label\": \"Parking\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"passport\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"document\",\n        \"id\",\n        \"identification\",\n        \"issued\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ab\",\n    \"label\": \"Passport\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pastafarianism\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"agnosticism\",\n        \"atheism\",\n        \"flying spaghetti monster\",\n        \"fsm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f67b\",\n    \"label\": \"Pastafarianism\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paste\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clipboard\",\n        \"copy\",\n        \"document\",\n        \"paper\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ea\",\n    \"label\": \"Paste\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"patreon\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3d9\",\n    \"label\": \"Patreon\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pause\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hold\",\n        \"wait\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f04c\",\n    \"label\": \"pause\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pause-circle\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hold\",\n        \"wait\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f28b\",\n    \"label\": \"Pause Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861302,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"paw\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"animal\",\n        \"cat\",\n        \"dog\",\n        \"pet\",\n        \"print\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1b0\",\n    \"label\": \"Paw\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"paypal\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1ed\",\n    \"label\": \"Paypal\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"peace\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"serenity\",\n        \"tranquility\",\n        \"truce\",\n        \"war\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f67c\",\n    \"label\": \"Peace\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861437,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pen\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f304\",\n    \"label\": \"Pen\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pen-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f305\",\n    \"label\": \"Alternate Pen\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pen-fancy\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"fountain pen\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ac\",\n    \"label\": \"Pen Fancy\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pen-nib\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"fountain pen\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ad\",\n    \"label\": \"Pen Nib\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pen-square\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"pencil-square\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f14b\",\n    \"label\": \"Pen Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pencil-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"edit\",\n        \"pencil\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f303\",\n    \"label\": \"Alternate Pencil\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861438,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pencil-ruler\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"draft\",\n        \"draw\",\n        \"pencil\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ae\",\n    \"label\": \"Pencil Ruler\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861439,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"penny-arcade\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"game\",\n        \"gaming\",\n        \"pax\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f704\",\n    \"label\": \"Penny Arcade\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"people-carry\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"box\",\n        \"carry\",\n        \"fragile\",\n        \"help\",\n        \"movers\",\n        \"package\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4ce\",\n    \"label\": \"People Carry\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861439,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pepper-hot\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buffalo wings\",\n        \"capsicum\",\n        \"chili\",\n        \"chilli\",\n        \"habanero\",\n        \"jalapeno\",\n        \"mexican\",\n        \"spicy\",\n        \"tabasco\",\n        \"vegetable\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f816\",\n    \"label\": \"Hot Pepper\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941799,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"percent\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"discount\",\n        \"fraction\",\n        \"proportion\",\n        \"rate\",\n        \"ratio\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f295\",\n    \"label\": \"Percent\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861439,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"percentage\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"discount\",\n        \"fraction\",\n        \"proportion\",\n        \"rate\",\n        \"ratio\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f541\",\n    \"label\": \"Percentage\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861439,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"periscope\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3da\",\n    \"label\": \"Periscope\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861011,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"person-booth\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"changing\",\n        \"changing room\",\n        \"election\",\n        \"human\",\n        \"person\",\n        \"vote\",\n        \"voting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f756\",\n    \"label\": \"Person Entering Booth\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861439,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phabricator\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3db\",\n    \"label\": \"Phabricator\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861012,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"phoenix-framework\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3dc\",\n    \"label\": \"Phoenix Framework\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861012,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"phoenix-squadron\": {\n    \"changes\": [\n      \"5.0.12\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f511\",\n    \"label\": \"Phoenix Squadron\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775907,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"phone\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"earphone\",\n        \"number\",\n        \"support\",\n        \"telephone\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f095\",\n    \"label\": \"Phone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861440,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phone-alt\": {\n    \"changes\": [\n      \"5.9.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"earphone\",\n        \"number\",\n        \"support\",\n        \"telephone\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f879\",\n    \"label\": \"Alternate Phone\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084939,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phone-slash\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"cancel\",\n        \"earphone\",\n        \"mute\",\n        \"number\",\n        \"support\",\n        \"telephone\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3dd\",\n    \"label\": \"Phone Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861440,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phone-square\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"earphone\",\n        \"number\",\n        \"support\",\n        \"telephone\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f098\",\n    \"label\": \"Phone Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861440,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phone-square-alt\": {\n    \"changes\": [\n      \"5.9.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"earphone\",\n        \"number\",\n        \"support\",\n        \"telephone\",\n        \"voice\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f87b\",\n    \"label\": \"Alternate Phone Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084940,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"phone-volume\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"call\",\n        \"earphone\",\n        \"number\",\n        \"sound\",\n        \"support\",\n        \"telephone\",\n        \"voice\",\n        \"volume-control-phone\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a0\",\n    \"label\": \"Phone Volume\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861440,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"photo-video\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"av\",\n        \"film\",\n        \"image\",\n        \"library\",\n        \"media\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f87c\",\n    \"label\": \"Photo Video\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084940,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"php\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f457\",\n    \"label\": \"PHP\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861012,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pied-piper\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\",\n      \"5.0.10\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2ae\",\n    \"label\": \"Pied Piper Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861013,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pied-piper-alt\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a8\",\n    \"label\": \"Alternate Pied Piper Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699930,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pied-piper-hat\": {\n    \"changes\": [\n      \"5.0.10\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clothing\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4e5\",\n    \"label\": \"Pied Piper-hat\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861013,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pied-piper-pp\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a7\",\n    \"label\": \"Pied Piper PP Logo (Old)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861013,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"piggy-bank\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bank\",\n        \"save\",\n        \"savings\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4d3\",\n    \"label\": \"Piggy Bank\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pills\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medicine\",\n        \"prescription\",\n        \"tablets\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f484\",\n    \"label\": \"Pills\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pinterest\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f0d2\",\n    \"label\": \"Pinterest\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861014,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pinterest-p\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f231\",\n    \"label\": \"Pinterest P\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861013,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pinterest-square\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f0d3\",\n    \"label\": \"Pinterest Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861013,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"pizza-slice\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cheese\",\n        \"chicago\",\n        \"italian\",\n        \"mozzarella\",\n        \"new york\",\n        \"pepperoni\",\n        \"pie\",\n        \"slice\",\n        \"teenage mutant ninja turtles\",\n        \"tomato\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f818\",\n    \"label\": \"Pizza Slice\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1551225941800,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"place-of-worship\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"church\",\n        \"holy\",\n        \"mosque\",\n        \"synagogue\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f67f\",\n    \"label\": \"Place of Worship\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plane\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airplane\",\n        \"destination\",\n        \"fly\",\n        \"location\",\n        \"mode\",\n        \"travel\",\n        \"trip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f072\",\n    \"label\": \"plane\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plane-arrival\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airplane\",\n        \"arriving\",\n        \"destination\",\n        \"fly\",\n        \"land\",\n        \"landing\",\n        \"location\",\n        \"mode\",\n        \"travel\",\n        \"trip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5af\",\n    \"label\": \"Plane Arrival\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plane-departure\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airplane\",\n        \"departing\",\n        \"destination\",\n        \"fly\",\n        \"location\",\n        \"mode\",\n        \"take off\",\n        \"taking off\",\n        \"travel\",\n        \"trip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5b0\",\n    \"label\": \"Plane Departure\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"play\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"music\",\n        \"playing\",\n        \"sound\",\n        \"start\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f04b\",\n    \"label\": \"play\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"play-circle\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"music\",\n        \"playing\",\n        \"sound\",\n        \"start\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f144\",\n    \"label\": \"Play Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861441,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861306,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"playstation\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3df\",\n    \"label\": \"PlayStation\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861014,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"plug\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"connect\",\n        \"electric\",\n        \"online\",\n        \"power\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e6\",\n    \"label\": \"Plug\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plus\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"create\",\n        \"expand\",\n        \"new\",\n        \"positive\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f067\",\n    \"label\": \"plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plus-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"create\",\n        \"expand\",\n        \"new\",\n        \"positive\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f055\",\n    \"label\": \"Plus Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"plus-square\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"create\",\n        \"expand\",\n        \"new\",\n        \"positive\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0fe\",\n    \"label\": \"Plus Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861306,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"podcast\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"broadcast\",\n        \"music\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2ce\",\n    \"label\": \"Podcast\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"poll\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"results\",\n        \"survey\",\n        \"trend\",\n        \"vote\",\n        \"voting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f681\",\n    \"label\": \"Poll\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"poll-h\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"results\",\n        \"survey\",\n        \"trend\",\n        \"vote\",\n        \"voting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f682\",\n    \"label\": \"Poll H\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861442,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"poo\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crap\",\n        \"poop\",\n        \"shit\",\n        \"smile\",\n        \"turd\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2fe\",\n    \"label\": \"Poo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"poo-storm\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bolt\",\n        \"cloud\",\n        \"euphemism\",\n        \"lightning\",\n        \"mess\",\n        \"poop\",\n        \"shit\",\n        \"turd\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f75a\",\n    \"label\": \"Poo Storm\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"poop\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crap\",\n        \"poop\",\n        \"shit\",\n        \"smile\",\n        \"turd\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f619\",\n    \"label\": \"Poop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"portrait\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"id\",\n        \"image\",\n        \"photo\",\n        \"picture\",\n        \"selfie\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3e0\",\n    \"label\": \"Portrait\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pound-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"gbp\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f154\",\n    \"label\": \"Pound Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"power-off\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cancel\",\n        \"computer\",\n        \"on\",\n        \"reboot\",\n        \"restart\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f011\",\n    \"label\": \"Power Off\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pray\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"kneel\",\n        \"preach\",\n        \"religion\",\n        \"worship\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f683\",\n    \"label\": \"Pray\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"praying-hands\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"kneel\",\n        \"preach\",\n        \"religion\",\n        \"worship\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f684\",\n    \"label\": \"Praying Hands\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"prescription\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medical\",\n        \"medicine\",\n        \"pharmacy\",\n        \"rx\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5b1\",\n    \"label\": \"Prescription\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"prescription-bottle\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medical\",\n        \"medicine\",\n        \"pharmacy\",\n        \"rx\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f485\",\n    \"label\": \"Prescription Bottle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"prescription-bottle-alt\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medical\",\n        \"medicine\",\n        \"pharmacy\",\n        \"rx\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f486\",\n    \"label\": \"Alternate Prescription Bottle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861443,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"print\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"business\",\n        \"copy\",\n        \"document\",\n        \"office\",\n        \"paper\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f02f\",\n    \"label\": \"print\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"procedures\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"EKG\",\n        \"bed\",\n        \"electrocardiogram\",\n        \"health\",\n        \"hospital\",\n        \"life\",\n        \"patient\",\n        \"vital\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f487\",\n    \"label\": \"Procedures\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"product-hunt\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f288\",\n    \"label\": \"Product Hunt\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861014,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"project-diagram\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chart\",\n        \"graph\",\n        \"network\",\n        \"pert\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f542\",\n    \"label\": \"Project Diagram\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"pushed\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e1\",\n    \"label\": \"Pushed\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861014,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 432 512\\\"><path d=\\\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"432\",\n          \"512\"\n        ],\n        \"width\": 432,\n        \"height\": 512,\n        \"path\": \"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"puzzle-piece\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add-on\",\n        \"addon\",\n        \"game\",\n        \"section\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f12e\",\n    \"label\": \"Puzzle Piece\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"python\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e2\",\n    \"label\": \"Python\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722335,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"qq\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d6\",\n    \"label\": \"QQ\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861014,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"qrcode\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"barcode\",\n        \"info\",\n        \"information\",\n        \"scan\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f029\",\n    \"label\": \"qrcode\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"question\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"help\",\n        \"information\",\n        \"support\",\n        \"unknown\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f128\",\n    \"label\": \"Question\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861445,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"question-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"help\",\n        \"information\",\n        \"support\",\n        \"unknown\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f059\",\n    \"label\": \"Question Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861444,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861309,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"quidditch\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ball\",\n        \"bludger\",\n        \"broom\",\n        \"golden snitch\",\n        \"harry potter\",\n        \"hogwarts\",\n        \"quaffle\",\n        \"sport\",\n        \"wizard\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f458\",\n    \"label\": \"Quidditch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861445,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"quinscape\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f459\",\n    \"label\": \"QuinScape\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775907,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"quora\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2c4\",\n    \"label\": \"Quora\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861015,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"quote-left\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mention\",\n        \"note\",\n        \"phrase\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f10d\",\n    \"label\": \"quote-left\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861445,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"quote-right\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mention\",\n        \"note\",\n        \"phrase\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f10e\",\n    \"label\": \"quote-right\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861445,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"quran\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"book\",\n        \"islam\",\n        \"muslim\",\n        \"religion\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f687\",\n    \"label\": \"Quran\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861445,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"r-project\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f7\",\n    \"label\": \"R Project\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861015,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 581 512\\\"><path d=\\\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"581\",\n          \"512\"\n        ],\n        \"width\": 581,\n        \"height\": 512,\n        \"path\": \"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"radiation\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"danger\",\n        \"dangerous\",\n        \"deadly\",\n        \"hazard\",\n        \"nuclear\",\n        \"radioactive\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7b9\",\n    \"label\": \"Radiation\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"radiation-alt\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"danger\",\n        \"dangerous\",\n        \"deadly\",\n        \"hazard\",\n        \"nuclear\",\n        \"radioactive\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ba\",\n    \"label\": \"Alternate Radiation\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rainbow\": {\n    \"changes\": [\n      \"5.5.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"gold\",\n        \"leprechaun\",\n        \"prism\",\n        \"rain\",\n        \"sky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f75b\",\n    \"label\": \"Rainbow\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861446,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"random\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrows\",\n        \"shuffle\",\n        \"sort\",\n        \"swap\",\n        \"switch\",\n        \"transfer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f074\",\n    \"label\": \"random\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861446,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"raspberry-pi\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7bb\",\n    \"label\": \"Raspberry Pi\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861015,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 407 512\\\"><path d=\\\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"407\",\n          \"512\"\n        ],\n        \"width\": 407,\n        \"height\": 512,\n        \"path\": \"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ravelry\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2d9\",\n    \"label\": \"Ravelry\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861015,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M407.4 61.5C331.6 22.1 257.8 31 182.9 66c-11.3 5.2-15.5 10.6-19.9 19-10.3 19.2-16.2 37.4-19.9 52.7-21.2 25.6-36.4 56.1-43.3 89.9-10.6 18-20.9 41.4-23.1 71.4 0 0-.7 7.6-.5 7.9-35.3-4.6-76.2-27-76.2-27 9.1 14.5 61.3 32.3 76.3 37.9 0 0 1.7 98 64.5 131.2-11.3-17.2-13.3-20.2-13.3-20.2S94.8 369 100.4 324.7c.7 0 1.5.2 2.2.2 23.9 87.4 103.2 151.4 196.9 151.4 6.2 0 12.1-.2 18-.7 14 1.5 27.6.5 40.1-3.9 6.9-2.2 13.8-6.4 20.2-10.8 70.2-39.1 100.9-82 123.1-147.7 5.4-16 8.1-35.5 9.8-52.2 8.7-82.3-30.6-161.6-103.3-199.5zM138.8 163.2s-1.2 12.3-.7 19.7c-3.4 2.5-10.1 8.1-18.2 16.7 5.2-12.8 11.3-25.1 18.9-36.4zm-31.2 121.9c4.4-17.2 13.3-39.1 29.8-55.1 0 0 1.7 48 15.8 90.1l-41.4-6.9c-2.2-9.2-3.5-18.5-4.2-28.1zm7.9 42.8c14.8 3.2 34 7.6 43.1 9.1 27.3 76.8 108.3 124.3 108.3 124.3 1 .5 1.7.7 2.7 1-73.1-11.6-132.7-64.7-154.1-134.4zM386 444.1c-14.5 4.7-36.2 8.4-64.7 3.7 0 0-91.1-23.1-127.5-107.8 38.2.7 52.4-.2 78-3.9 39.4-5.7 79-16.2 115-33 11.8-5.4 11.1-19.4 9.6-29.8-2-12.8-11.1-12.1-21.4-4.7 0 0-82 58.6-189.8 53.7-18.7-32-26.8-110.8-26.8-110.8 41.4-35.2 83.2-59.6 168.4-52.4.2-6.4 3-27.1-20.4-28.1 0 0-93.5-11.1-146 33.5 2.5-16.5 5.9-29.3 11.1-39.4 34.2-30.8 79-49.5 128.3-49.5 106.4 0 193 87.1 193 194.5-.2 76-43.8 142-106.8 174z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"react\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41b\",\n    \"label\": \"React\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722335,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"reacteurope\": {\n    \"changes\": [\n      \"5.5.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f75d\",\n    \"label\": \"ReactEurope\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775908,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"readme\": {\n    \"changes\": [\n      \"5.0.9\",\n      \"5.0.10\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4d5\",\n    \"label\": \"ReadMe\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"rebel\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d0\",\n    \"label\": \"Rebel Alliance\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"receipt\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"check\",\n        \"invoice\",\n        \"money\",\n        \"pay\",\n        \"table\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f543\",\n    \"label\": \"Receipt\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861446,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"recycle\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Waste\",\n        \"compost\",\n        \"garbage\",\n        \"reuse\",\n        \"trash\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1b8\",\n    \"label\": \"Recycle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861446,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"red-river\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e3\",\n    \"label\": \"red river\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"reddit\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a1\",\n    \"label\": \"reddit Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861017,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"reddit-alien\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f281\",\n    \"label\": \"reddit Alien\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861016,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"reddit-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a2\",\n    \"label\": \"reddit Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861017,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"redhat\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linux\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7bc\",\n    \"label\": \"Redhat\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1563977084863,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"redo\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"refresh\",\n        \"reload\",\n        \"repeat\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f01e\",\n    \"label\": \"Redo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"redo-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"refresh\",\n        \"reload\",\n        \"repeat\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2f9\",\n    \"label\": \"Alternate Redo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861447,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"registered\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"copyright\",\n        \"mark\",\n        \"trademark\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f25d\",\n    \"label\": \"Registered Trademark\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861447,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861311,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"remove-format\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cancel\",\n        \"font\",\n        \"format\",\n        \"remove\",\n        \"style\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f87d\",\n    \"label\": \"Remove Format\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084940,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"renren\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f18b\",\n    \"label\": \"Renren\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861017,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"reply\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mail\",\n        \"message\",\n        \"respond\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3e5\",\n    \"label\": \"Reply\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861447,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"reply-all\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mail\",\n        \"message\",\n        \"respond\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f122\",\n    \"label\": \"reply-all\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861447,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"replyd\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e6\",\n    \"label\": \"replyd\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861017,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"republican\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"american\",\n        \"conservative\",\n        \"election\",\n        \"elephant\",\n        \"politics\",\n        \"republican party\",\n        \"right\",\n        \"right-wing\",\n        \"usa\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f75e\",\n    \"label\": \"Republican\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861447,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"researchgate\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f8\",\n    \"label\": \"Researchgate\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861017,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"resolving\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e7\",\n    \"label\": \"Resolving\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861018,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"restroom\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bathroom\",\n        \"john\",\n        \"loo\",\n        \"potty\",\n        \"washroom\",\n        \"waste\",\n        \"wc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7bd\",\n    \"label\": \"Restroom\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"retweet\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"refresh\",\n        \"reload\",\n        \"share\",\n        \"swap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f079\",\n    \"label\": \"Retweet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rev\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.1.1\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5b2\",\n    \"label\": \"Rev.io\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775909,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ribbon\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"badge\",\n        \"cause\",\n        \"lapel\",\n        \"pin\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4d6\",\n    \"label\": \"Ribbon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ring\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"Gollum\",\n        \"band\",\n        \"binding\",\n        \"d&d\",\n        \"dnd\",\n        \"engagement\",\n        \"fantasy\",\n        \"gold\",\n        \"jewelry\",\n        \"marriage\",\n        \"precious\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f70b\",\n    \"label\": \"Ring\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"road\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"highway\",\n        \"map\",\n        \"pavement\",\n        \"route\",\n        \"street\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f018\",\n    \"label\": \"road\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"robot\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"android\",\n        \"automate\",\n        \"computer\",\n        \"cyborg\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f544\",\n    \"label\": \"Robot\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861448,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rocket\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"aircraft\",\n        \"app\",\n        \"jet\",\n        \"launch\",\n        \"nasa\",\n        \"space\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f135\",\n    \"label\": \"rocket\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859202,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rocketchat\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.4.2\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e8\",\n    \"label\": \"Rocket.Chat\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775910,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M486.41 107.57c-76.93-50.83-179.18-62.4-264.12-47.07C127.26-31.16 20.77 11 0 23.12c0 0 73.08 62.1 61.21 116.49-86.52 88.2-45.39 186.4 0 232.77C73.08 426.77 0 488.87 0 488.87c20.57 12.16 126.77 54.19 222.29-37 84.75 15.23 187 3.76 264.12-47.16 119.26-76.14 119.65-220.61 0-297.15zM294.18 404.22a339.53 339.53 0 0 1-88.11-11.37l-19.77 19.09a179.74 179.74 0 0 1-36.59 27.39A143.14 143.14 0 0 1 98 454.06c1-1.78 1.88-3.56 2.77-5.24q29.67-55 16-98.69c-32.53-25.61-52-58.34-52-94.13 0-82 102.74-148.43 229.41-148.43S523.59 174 523.59 256 420.85 404.22 294.18 404.22zM184.12 291.3a34.32 34.32 0 0 1-34.8-33.72c-.7-45.39 67.83-46.38 68.52-1.09v.51a34 34 0 0 1-33.72 34.32zm73.77-33.72c-.79-45.39 67.74-46.48 68.53-1.19v.61c.39 45.08-67.74 45.57-68.53.58zm143.38 33.72a34.33 34.33 0 0 1-34.81-33.72c-.69-45.39 67.84-46.38 68.53-1.09v.51a33.89 33.89 0 0 1-33.72 34.32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M486.41 107.57c-76.93-50.83-179.18-62.4-264.12-47.07C127.26-31.16 20.77 11 0 23.12c0 0 73.08 62.1 61.21 116.49-86.52 88.2-45.39 186.4 0 232.77C73.08 426.77 0 488.87 0 488.87c20.57 12.16 126.77 54.19 222.29-37 84.75 15.23 187 3.76 264.12-47.16 119.26-76.14 119.65-220.61 0-297.15zM294.18 404.22a339.53 339.53 0 0 1-88.11-11.37l-19.77 19.09a179.74 179.74 0 0 1-36.59 27.39A143.14 143.14 0 0 1 98 454.06c1-1.78 1.88-3.56 2.77-5.24q29.67-55 16-98.69c-32.53-25.61-52-58.34-52-94.13 0-82 102.74-148.43 229.41-148.43S523.59 174 523.59 256 420.85 404.22 294.18 404.22zM184.12 291.3a34.32 34.32 0 0 1-34.8-33.72c-.7-45.39 67.83-46.38 68.52-1.09v.51a34 34 0 0 1-33.72 34.32zm73.77-33.72c-.79-45.39 67.74-46.48 68.53-1.19v.61c.39 45.08-67.74 45.57-68.53.58zm143.38 33.72a34.33 34.33 0 0 1-34.81-33.72c-.69-45.39 67.84-46.38 68.53-1.09v.51a33.89 33.89 0 0 1-33.72 34.32z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"rockrms\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e9\",\n    \"label\": \"Rockrms\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861018,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"route\": {\n    \"changes\": [\n      \"5.0.9\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"navigation\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4d7\",\n    \"label\": \"Route\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rss\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blog\",\n        \"feed\",\n        \"journal\",\n        \"news\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f09e\",\n    \"label\": \"rss\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rss-square\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blog\",\n        \"feed\",\n        \"journal\",\n        \"news\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f143\",\n    \"label\": \"RSS Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ruble-sign\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"money\",\n        \"rub\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f158\",\n    \"label\": \"Ruble Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ruler\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"draft\",\n        \"length\",\n        \"measure\",\n        \"planning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f545\",\n    \"label\": \"Ruler\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ruler-combined\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"draft\",\n        \"length\",\n        \"measure\",\n        \"planning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f546\",\n    \"label\": \"Ruler Combined\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ruler-horizontal\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"draft\",\n        \"length\",\n        \"measure\",\n        \"planning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f547\",\n    \"label\": \"Ruler Horizontal\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ruler-vertical\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"draft\",\n        \"length\",\n        \"measure\",\n        \"planning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f548\",\n    \"label\": \"Ruler Vertical\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"running\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"exercise\",\n        \"health\",\n        \"jog\",\n        \"person\",\n        \"run\",\n        \"sport\",\n        \"sprint\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f70c\",\n    \"label\": \"Running\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 416 512\\\"><path d=\\\"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"416\",\n          \"512\"\n        ],\n        \"width\": 416,\n        \"height\": 512,\n        \"path\": \"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"rupee-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"indian\",\n        \"inr\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f156\",\n    \"label\": \"Indian Rupee Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861449,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sad-cry\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"tear\",\n        \"tears\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5b3\",\n    \"label\": \"Crying Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861450,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861314,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"sad-tear\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"tear\",\n        \"tears\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5b4\",\n    \"label\": \"Loudly Crying Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861450,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861314,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"safari\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f267\",\n    \"label\": \"Safari\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861018,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M236.9 256.8c0-9.1 6.6-17.7 16.3-17.7 8.9 0 17.4 6.4 17.4 16.1 0 9.1-6.4 17.7-16.1 17.7-9 0-17.6-6.7-17.6-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-26.6 0c0-122.3-99.1-221.4-221.4-221.4S34.6 133.7 34.6 256 133.7 477.4 256 477.4 477.4 378.3 477.4 256zm-72.5 96.6c0 3.6 13 10.2 16.3 12.2-27.4 41.5-69.8 71.4-117.9 83.3l-4.4-18.5c-.3-2.5-1.9-2.8-4.2-2.8-1.9 0-3 2.8-2.8 4.2l4.4 18.8c-13.3 2.8-26.8 4.2-40.4 4.2-36.3 0-72-10.2-103-29.1 1.7-2.8 12.2-18 12.2-20.2 0-1.9-1.7-3.6-3.6-3.6-3.9 0-12.2 16.6-14.7 19.9-41.8-27.7-72-70.6-83.6-119.6l19.1-4.2c2.2-.6 2.8-2.2 2.8-4.2 0-1.9-2.8-3-4.4-2.8L62 294.5c-2.5-12.7-3.9-25.5-3.9-38.5 0-37.1 10.5-73.6 30.2-104.9 2.8 1.7 16.1 10.8 18.3 10.8 1.9 0 3.6-1.4 3.6-3.3 0-3.9-14.7-11.3-18-13.6 28.2-41.2 71.1-70.9 119.8-81.9l4.2 18.5c.6 2.2 2.2 2.8 4.2 2.8s3-2.8 2.8-4.4L219 61.7c12.2-2.2 24.6-3.6 37.1-3.6 37.1 0 73.3 10.5 104.9 30.2-1.9 2.8-10.8 15.8-10.8 18 0 1.9 1.4 3.6 3.3 3.6 3.9 0 11.3-14.4 13.3-17.7 41 27.7 70.3 70 81.7 118.2l-15.5 3.3c-2.5.6-2.8 2.2-2.8 4.4 0 1.9 2.8 3 4.2 2.8l15.8-3.6c2.5 12.7 3.9 25.7 3.9 38.7 0 36.3-10 72-28.8 102.7-2.8-1.4-14.4-9.7-16.6-9.7-2.1 0-3.8 1.7-3.8 3.6zm-33.2-242.2c-13 12.2-134.2 123.7-137.6 129.5l-96.6 160.5c12.7-11.9 134.2-124 137.3-129.3l96.9-160.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"salesforce\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f83b\",\n    \"label\": \"Salesforce\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775911,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sass\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41e\",\n    \"label\": \"Sass\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775912,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"satellite\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"communications\",\n        \"hardware\",\n        \"orbit\",\n        \"space\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7bf\",\n    \"label\": \"Satellite\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861450,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"satellite-dish\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"SETI\",\n        \"communications\",\n        \"hardware\",\n        \"receiver\",\n        \"saucer\",\n        \"signal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7c0\",\n    \"label\": \"Satellite Dish\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861450,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"save\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"disk\",\n        \"download\",\n        \"floppy\",\n        \"floppy-o\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0c7\",\n    \"label\": \"Save\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861450,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861314,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"schlix\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ea\",\n    \"label\": \"SCHLIX\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"school\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"education\",\n        \"learn\",\n        \"student\",\n        \"teacher\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f549\",\n    \"label\": \"School\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"screwdriver\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"fix\",\n        \"mechanic\",\n        \"repair\",\n        \"settings\",\n        \"tool\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54a\",\n    \"label\": \"Screwdriver\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"scribd\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f28a\",\n    \"label\": \"Scribd\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"scroll\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"announcement\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"paper\",\n        \"script\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f70e\",\n    \"label\": \"Scroll\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sd-card\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"image\",\n        \"memory\",\n        \"photo\",\n        \"save\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7c2\",\n    \"label\": \"Sd Card\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"search\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bigger\",\n        \"enlarge\",\n        \"find\",\n        \"magnify\",\n        \"preview\",\n        \"zoom\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f002\",\n    \"label\": \"Search\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"search-dollar\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bigger\",\n        \"enlarge\",\n        \"find\",\n        \"magnify\",\n        \"money\",\n        \"preview\",\n        \"zoom\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f688\",\n    \"label\": \"Search Dollar\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"search-location\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bigger\",\n        \"enlarge\",\n        \"find\",\n        \"magnify\",\n        \"preview\",\n        \"zoom\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f689\",\n    \"label\": \"Search Location\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"search-minus\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"minify\",\n        \"negative\",\n        \"smaller\",\n        \"zoom\",\n        \"zoom out\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f010\",\n    \"label\": \"Search Minus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861451,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"search-plus\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bigger\",\n        \"enlarge\",\n        \"magnify\",\n        \"positive\",\n        \"zoom\",\n        \"zoom in\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f00e\",\n    \"label\": \"Search Plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"searchengin\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3eb\",\n    \"label\": \"Searchengin\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 460 512\\\"><path d=\\\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"460\",\n          \"512\"\n        ],\n        \"width\": 460,\n        \"height\": 512,\n        \"path\": \"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"seedling\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flora\",\n        \"grow\",\n        \"plant\",\n        \"vegan\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4d8\",\n    \"label\": \"Seedling\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sellcast\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"eercast\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2da\",\n    \"label\": \"Sellcast\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sellsy\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f213\",\n    \"label\": \"Sellsy\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"server\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"cpu\",\n        \"database\",\n        \"hardware\",\n        \"network\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f233\",\n    \"label\": \"Server\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"servicestack\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ec\",\n    \"label\": \"Servicestack\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861019,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"shapes\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blocks\",\n        \"build\",\n        \"circle\",\n        \"square\",\n        \"triangle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f61f\",\n    \"label\": \"Shapes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"share\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"save\",\n        \"send\",\n        \"social\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f064\",\n    \"label\": \"Share\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"share-alt\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"save\",\n        \"send\",\n        \"social\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e0\",\n    \"label\": \"Alternate Share\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"share-alt-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"save\",\n        \"send\",\n        \"social\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e1\",\n    \"label\": \"Alternate Share Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"share-square\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"forward\",\n        \"save\",\n        \"send\",\n        \"social\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f14d\",\n    \"label\": \"Share Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861452,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861316,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"shekel-sign\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"ils\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f20b\",\n    \"label\": \"Shekel Sign\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861453,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shield-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"achievement\",\n        \"award\",\n        \"block\",\n        \"defend\",\n        \"security\",\n        \"winner\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3ed\",\n    \"label\": \"Alternate Shield\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722390,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ship\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"boat\",\n        \"sea\",\n        \"water\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f21a\",\n    \"label\": \"Ship\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861453,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shipping-fast\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"express\",\n        \"fedex\",\n        \"mail\",\n        \"overnight\",\n        \"package\",\n        \"ups\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f48b\",\n    \"label\": \"Shipping Fast\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861453,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shirtsinbulk\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f214\",\n    \"label\": \"Shirts in Bulk\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699931,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"shoe-prints\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"feet\",\n        \"footprints\",\n        \"steps\",\n        \"walk\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54b\",\n    \"label\": \"Shoe Prints\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861453,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shopping-bag\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"checkout\",\n        \"grocery\",\n        \"payment\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f290\",\n    \"label\": \"Shopping Bag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861453,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shopping-basket\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"checkout\",\n        \"grocery\",\n        \"payment\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f291\",\n    \"label\": \"Shopping Basket\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861454,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shopping-cart\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buy\",\n        \"checkout\",\n        \"grocery\",\n        \"payment\",\n        \"purchase\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f07a\",\n    \"label\": \"shopping-cart\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861454,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shopware\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5b5\",\n    \"label\": \"Shopware\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775913,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"shower\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bath\",\n        \"clean\",\n        \"faucet\",\n        \"water\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2cc\",\n    \"label\": \"Shower\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861454,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"shuttle-van\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"airport\",\n        \"machine\",\n        \"public-transportation\",\n        \"transportation\",\n        \"travel\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5b6\",\n    \"label\": \"Shuttle Van\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861454,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sign\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"real estate\",\n        \"signage\",\n        \"wayfinding\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4d9\",\n    \"label\": \"Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861455,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sign-in-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"enter\",\n        \"join\",\n        \"log in\",\n        \"login\",\n        \"sign in\",\n        \"sign up\",\n        \"sign-in\",\n        \"signin\",\n        \"signup\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2f6\",\n    \"label\": \"Alternate Sign In\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861454,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sign-language\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Translate\",\n        \"asl\",\n        \"deaf\",\n        \"hands\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2a7\",\n    \"label\": \"Sign Language\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861455,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sign-out-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"exit\",\n        \"leave\",\n        \"log out\",\n        \"logout\",\n        \"sign-out\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2f5\",\n    \"label\": \"Alternate Sign Out\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861455,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"signal\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bars\",\n        \"graph\",\n        \"online\",\n        \"reception\",\n        \"status\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f012\",\n    \"label\": \"signal\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861456,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"signature\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"John Hancock\",\n        \"cursive\",\n        \"name\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5b7\",\n    \"label\": \"Signature\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861456,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sim-card\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hard drive\",\n        \"hardware\",\n        \"portable\",\n        \"storage\",\n        \"technology\",\n        \"tiny\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7c4\",\n    \"label\": \"SIM Card\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084940,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"simplybuilt\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f215\",\n    \"label\": \"SimplyBuilt\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sistrix\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ee\",\n    \"label\": \"SISTRIX\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sitemap\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directory\",\n        \"hierarchy\",\n        \"ia\",\n        \"information architecture\",\n        \"organization\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0e8\",\n    \"label\": \"Sitemap\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861456,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sith\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f512\",\n    \"label\": \"Sith\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"skating\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"figure skating\",\n        \"fitness\",\n        \"ice\",\n        \"person\",\n        \"winter\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7c5\",\n    \"label\": \"Skating\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861456,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sketch\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"app\",\n        \"design\",\n        \"interface\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7c6\",\n    \"label\": \"Sketch\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775914,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"skiing\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"downhill\",\n        \"fast\",\n        \"fitness\",\n        \"olympics\",\n        \"outdoors\",\n        \"person\",\n        \"seasonal\",\n        \"slalom\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7c9\",\n    \"label\": \"Skiing\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"skiing-nordic\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"cross country\",\n        \"fitness\",\n        \"outdoors\",\n        \"person\",\n        \"seasonal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ca\",\n    \"label\": \"Skiing Nordic\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"skull\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bones\",\n        \"skeleton\",\n        \"x-ray\",\n        \"yorick\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54c\",\n    \"label\": \"Skull\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"skull-crossbones\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"alert\",\n        \"bones\",\n        \"d&d\",\n        \"danger\",\n        \"dead\",\n        \"deadly\",\n        \"death\",\n        \"dnd\",\n        \"fantasy\",\n        \"halloween\",\n        \"holiday\",\n        \"jolly-roger\",\n        \"pirate\",\n        \"poison\",\n        \"skeleton\",\n        \"warning\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f714\",\n    \"label\": \"Skull & Crossbones\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"skyatlas\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f216\",\n    \"label\": \"skyatlas\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"skype\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f17e\",\n    \"label\": \"Skype\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"slack\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anchor\",\n        \"hash\",\n        \"hashtag\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f198\",\n    \"label\": \"Slack Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722337,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"slack-hash\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anchor\",\n        \"hash\",\n        \"hashtag\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3ef\",\n    \"label\": \"Slack Hashtag\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861020,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"slash\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cancel\",\n        \"close\",\n        \"mute\",\n        \"off\",\n        \"stop\",\n        \"x\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f715\",\n    \"label\": \"Slash\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sleigh\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"christmas\",\n        \"claus\",\n        \"fly\",\n        \"holiday\",\n        \"santa\",\n        \"sled\",\n        \"snow\",\n        \"xmas\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7cc\",\n    \"label\": \"Sleigh\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sliders-h\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"adjust\",\n        \"settings\",\n        \"sliders\",\n        \"toggle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1de\",\n    \"label\": \"Horizontal Sliders\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861457,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"slideshare\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1e7\",\n    \"label\": \"Slideshare\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722337,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"smile\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.0.9\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"approve\",\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"rating\",\n        \"satisfied\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f118\",\n    \"label\": \"Smiling Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861322,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"smile-beam\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"positive\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5b8\",\n    \"label\": \"Beaming Face With Smiling Eyes\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861322,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"smile-wink\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"happy\",\n        \"hint\",\n        \"joke\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f4da\",\n    \"label\": \"Winking Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861322,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"smog\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dragon\",\n        \"fog\",\n        \"haze\",\n        \"pollution\",\n        \"smoke\",\n        \"weather\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f75f\",\n    \"label\": \"Smog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"smoking\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cancer\",\n        \"cigarette\",\n        \"nicotine\",\n        \"smoking status\",\n        \"tobacco\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f48d\",\n    \"label\": \"Smoking\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"smoking-ban\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ban\",\n        \"cancel\",\n        \"no smoking\",\n        \"non-smoking\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54d\",\n    \"label\": \"Smoking Ban\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sms\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"chat\",\n        \"conversation\",\n        \"message\",\n        \"mobile\",\n        \"notification\",\n        \"phone\",\n        \"sms\",\n        \"texting\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7cd\",\n    \"label\": \"SMS\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861458,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"snapchat\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2ab\",\n    \"label\": \"Snapchat\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861021,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"snapchat-ghost\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2ac\",\n    \"label\": \"Snapchat Ghost\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861021,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"snapchat-square\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2ad\",\n    \"label\": \"Snapchat Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861021,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"snowboarding\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"activity\",\n        \"fitness\",\n        \"olympics\",\n        \"outdoors\",\n        \"person\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7ce\",\n    \"label\": \"Snowboarding\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"snowflake\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"precipitation\",\n        \"rain\",\n        \"winter\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2dc\",\n    \"label\": \"Snowflake\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861323,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"snowman\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"decoration\",\n        \"frost\",\n        \"frosty\",\n        \"holiday\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7d0\",\n    \"label\": \"Snowman\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"snowplow\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clean up\",\n        \"cold\",\n        \"road\",\n        \"storm\",\n        \"winter\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7d2\",\n    \"label\": \"Snowplow\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"socks\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"business socks\",\n        \"business time\",\n        \"clothing\",\n        \"feet\",\n        \"flight of the conchords\",\n        \"wednesday\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f696\",\n    \"label\": \"Socks\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"solar-panel\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clean\",\n        \"eco-friendly\",\n        \"energy\",\n        \"green\",\n        \"sun\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ba\",\n    \"label\": \"Solar Panel\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861459,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"filter\",\n        \"order\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0dc\",\n    \"label\": \"Sort\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861460,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-alpha-down\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabetical\",\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-alpha-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f15d\",\n    \"label\": \"Sort Alphabetical Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-alpha-down-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabetical\",\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-alpha-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f881\",\n    \"label\": \"Alternate Sort Alphabetical Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084941,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-alpha-up\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabetical\",\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-alpha-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f15e\",\n    \"label\": \"Sort Alphabetical Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-alpha-up-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alphabetical\",\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-alpha-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f882\",\n    \"label\": \"Alternate Sort Alphabetical Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-amount-down\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"number\",\n        \"order\",\n        \"sort-amount-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f160\",\n    \"label\": \"Sort Amount Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-amount-down-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-amount-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f884\",\n    \"label\": \"Alternate Sort Amount Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-amount-up\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-amount-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f161\",\n    \"label\": \"Sort Amount Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084943,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-amount-up-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"order\",\n        \"sort-amount-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f885\",\n    \"label\": \"Alternate Sort Amount Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084942,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-down\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"descending\",\n        \"filter\",\n        \"order\",\n        \"sort-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0dd\",\n    \"label\": \"Sort Down (Descending)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861460,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-numeric-down\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"numbers\",\n        \"order\",\n        \"sort-numeric-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f162\",\n    \"label\": \"Sort Numeric Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084943,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-numeric-down-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"numbers\",\n        \"order\",\n        \"sort-numeric-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f886\",\n    \"label\": \"Alternate Sort Numeric Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084943,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-numeric-up\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"numbers\",\n        \"order\",\n        \"sort-numeric-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f163\",\n    \"label\": \"Sort Numeric Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084944,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-numeric-up-alt\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrange\",\n        \"filter\",\n        \"numbers\",\n        \"order\",\n        \"sort-numeric-desc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f887\",\n    \"label\": \"Alternate Sort Numeric Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084943,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sort-up\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arrow\",\n        \"ascending\",\n        \"filter\",\n        \"order\",\n        \"sort-asc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0de\",\n    \"label\": \"Sort Up (Ascending)\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861460,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"soundcloud\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1be\",\n    \"label\": \"SoundCloud\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861021,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sourcetree\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7d3\",\n    \"label\": \"Sourcetree\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775915,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"spa\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flora\",\n        \"massage\",\n        \"mindfulness\",\n        \"plant\",\n        \"wellness\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5bb\",\n    \"label\": \"Spa\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861460,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"space-shuttle\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"astronaut\",\n        \"machine\",\n        \"nasa\",\n        \"rocket\",\n        \"transportation\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f197\",\n    \"label\": \"Space Shuttle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861460,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"speakap\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.4.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f3\",\n    \"label\": \"Speakap\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775916,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"speaker-deck\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f83c\",\n    \"label\": \"Speaker Deck\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775916,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"spell-check\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dictionary\",\n        \"edit\",\n        \"editor\",\n        \"grammar\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f891\",\n    \"label\": \"Spell Check\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084945,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"spider\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arachnid\",\n        \"bug\",\n        \"charlotte\",\n        \"crawl\",\n        \"eight\",\n        \"halloween\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f717\",\n    \"label\": \"Spider\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"spinner\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"circle\",\n        \"loading\",\n        \"progress\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f110\",\n    \"label\": \"Spinner\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"splotch\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Ink\",\n        \"blob\",\n        \"blotch\",\n        \"glob\",\n        \"stain\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5bc\",\n    \"label\": \"Splotch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"spotify\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1bc\",\n    \"label\": \"Spotify\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"spray-can\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Paint\",\n        \"aerosol\",\n        \"design\",\n        \"graffiti\",\n        \"tag\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5bd\",\n    \"label\": \"Spray Can\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"square\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"block\",\n        \"box\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f0c8\",\n    \"label\": \"Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861325,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"square-full\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"block\",\n        \"box\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f45c\",\n    \"label\": \"Square Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 512H0V0h512v512z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 512H0V0h512v512z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"square-root-alt\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"arithmetic\",\n        \"calculus\",\n        \"division\",\n        \"math\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f698\",\n    \"label\": \"Alternate Square Root\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861461,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"squarespace\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5be\",\n    \"label\": \"Squarespace\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stack-exchange\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f18d\",\n    \"label\": \"Stack Exchange\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stack-overflow\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f16c\",\n    \"label\": \"Stack Overflow\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722337,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stackpath\": {\n    \"changes\": [\n      \"5.8.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f842\",\n    \"label\": \"Stackpath\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775917,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stamp\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"art\",\n        \"certificate\",\n        \"imprint\",\n        \"rubber\",\n        \"seal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5bf\",\n    \"label\": \"Stamp\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"star\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"achievement\",\n        \"award\",\n        \"favorite\",\n        \"important\",\n        \"night\",\n        \"rating\",\n        \"score\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f005\",\n    \"label\": \"Star\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861326,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"star-and-crescent\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"islam\",\n        \"muslim\",\n        \"religion\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f699\",\n    \"label\": \"Star and Crescent\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"star-half\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"achievement\",\n        \"award\",\n        \"rating\",\n        \"score\",\n        \"star-half-empty\",\n        \"star-half-full\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f089\",\n    \"label\": \"star-half\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861326,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"star-half-alt\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"achievement\",\n        \"award\",\n        \"rating\",\n        \"score\",\n        \"star-half-empty\",\n        \"star-half-full\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c0\",\n    \"label\": \"Alternate Star Half\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 536 512\\\"><path d=\\\"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"536\",\n          \"512\"\n        ],\n        \"width\": 536,\n        \"height\": 512,\n        \"path\": \"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"star-of-david\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"jewish\",\n        \"judaism\",\n        \"religion\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f69a\",\n    \"label\": \"Star of David\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 464 512\\\"><path d=\\\"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"464\",\n          \"512\"\n        ],\n        \"width\": 464,\n        \"height\": 512,\n        \"path\": \"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"star-of-life\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"doctor\",\n        \"emt\",\n        \"first aid\",\n        \"health\",\n        \"medical\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f621\",\n    \"label\": \"Star of Life\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861462,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"staylinked\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f5\",\n    \"label\": \"StayLinked\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722337,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 440 512\\\"><path d=\\\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"440\",\n          \"512\"\n        ],\n        \"width\": 440,\n        \"height\": 512,\n        \"path\": \"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"steam\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1b6\",\n    \"label\": \"Steam\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861023,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"steam-square\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1b7\",\n    \"label\": \"Steam Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"steam-symbol\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f6\",\n    \"label\": \"Steam Symbol\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861022,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"step-backward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beginning\",\n        \"first\",\n        \"previous\",\n        \"rewind\",\n        \"start\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f048\",\n    \"label\": \"step-backward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"step-forward\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"end\",\n        \"last\",\n        \"next\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f051\",\n    \"label\": \"step-forward\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"stethoscope\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"diagnosis\",\n        \"doctor\",\n        \"general practitioner\",\n        \"hospital\",\n        \"infirmary\",\n        \"medicine\",\n        \"office\",\n        \"outpatient\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0f1\",\n    \"label\": \"Stethoscope\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sticker-mule\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f7\",\n    \"label\": \"Sticker Mule\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699931,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"sticky-note\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"message\",\n        \"note\",\n        \"paper\",\n        \"reminder\",\n        \"sticker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f249\",\n    \"label\": \"Sticky Note\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"stop\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"block\",\n        \"box\",\n        \"square\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f04d\",\n    \"label\": \"stop\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"stop-circle\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"block\",\n        \"box\",\n        \"circle\",\n        \"square\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f28d\",\n    \"label\": \"Stop Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861463,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861327,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"stopwatch\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clock\",\n        \"reminder\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2f2\",\n    \"label\": \"Stopwatch\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"store\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"buy\",\n        \"purchase\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54e\",\n    \"label\": \"Store\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 616 512\\\"><path d=\\\"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"616\",\n          \"512\"\n        ],\n        \"width\": 616,\n        \"height\": 512,\n        \"path\": \"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"store-alt\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"buy\",\n        \"purchase\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f54f\",\n    \"label\": \"Alternate Store\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"strava\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.1\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f428\",\n    \"label\": \"Strava\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775918,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stream\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"flow\",\n        \"list\",\n        \"timeline\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f550\",\n    \"label\": \"Stream\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"street-view\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"directions\",\n        \"location\",\n        \"map\",\n        \"navigation\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f21d\",\n    \"label\": \"Street View\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"strikethrough\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cancel\",\n        \"edit\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0cc\",\n    \"label\": \"Strikethrough\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084945,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"stripe\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f429\",\n    \"label\": \"Stripe\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722338,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stripe-s\": {\n    \"changes\": [\n      \"5.0.1\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42a\",\n    \"label\": \"Stripe S\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775919,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stroopwafel\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"caramel\",\n        \"cookie\",\n        \"dessert\",\n        \"sweets\",\n        \"waffle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f551\",\n    \"label\": \"Stroopwafel\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"studiovinari\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f8\",\n    \"label\": \"Studio Vinari\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861023,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stumbleupon\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a4\",\n    \"label\": \"StumbleUpon Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861023,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"stumbleupon-circle\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1a3\",\n    \"label\": \"StumbleUpon Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861023,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"subscript\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f12c\",\n    \"label\": \"subscript\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084946,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"subway\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"machine\",\n        \"railway\",\n        \"train\",\n        \"transportation\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f239\",\n    \"label\": \"Subway\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"suitcase\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"baggage\",\n        \"luggage\",\n        \"move\",\n        \"suitcase\",\n        \"travel\",\n        \"trip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0f2\",\n    \"label\": \"Suitcase\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861465,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"suitcase-rolling\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"baggage\",\n        \"luggage\",\n        \"move\",\n        \"suitcase\",\n        \"travel\",\n        \"trip\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c1\",\n    \"label\": \"Suitcase Rolling\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861464,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sun\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"brighten\",\n        \"contrast\",\n        \"day\",\n        \"lighter\",\n        \"sol\",\n        \"solar\",\n        \"star\",\n        \"weather\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f185\",\n    \"label\": \"Sun\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861465,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861329,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"superpowers\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2dd\",\n    \"label\": \"Superpowers\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861023,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"superscript\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"exponential\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f12b\",\n    \"label\": \"superscript\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084946,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"supple\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3f9\",\n    \"label\": \"Supple\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861024,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"surprise\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"emoticon\",\n        \"face\",\n        \"shocked\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5c2\",\n    \"label\": \"Hushed Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861465,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861329,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"suse\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linux\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7d6\",\n    \"label\": \"Suse\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775920,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"swatchbook\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Pantone\",\n        \"color\",\n        \"design\",\n        \"hue\",\n        \"palette\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c3\",\n    \"label\": \"Swatchbook\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861465,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 511 512\\\"><path d=\\\"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"511\",\n          \"512\"\n        ],\n        \"width\": 511,\n        \"height\": 512,\n        \"path\": \"M479.06 320H372.29L186.15 506.51c-2.06 2.07-4.49 3.58-6.67 5.49h299.58c17.64 0 31.94-14.33 31.94-32V352c0-17.67-14.3-32-31.94-32zm-44.5-152.9l-90.33-90.51c-12.47-12.5-32.69-12.5-45.17 0l-75.5 75.65V416c0 2.96-.67 5.73-.87 8.64l211.87-212.28c12.47-12.5 12.47-32.77 0-45.26zM191.62 32c0-17.67-14.3-32-31.94-32H31.94C14.3 0 0 14.33 0 32v384c0 53.02 42.9 96 95.81 96s95.81-42.98 95.81-96V32zM95.81 440c-13.23 0-23.95-10.75-23.95-24 0-13.26 10.73-24 23.95-24s23.95 10.74 23.95 24c.01 13.25-10.72 24-23.95 24zm31.94-184H63.88v-64h63.88v64zm0-128H63.88V64h63.88v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"swimmer\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"athlete\",\n        \"head\",\n        \"man\",\n        \"olympics\",\n        \"person\",\n        \"pool\",\n        \"water\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c4\",\n    \"label\": \"Swimmer\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861465,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"swimming-pool\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ladder\",\n        \"recreation\",\n        \"swim\",\n        \"water\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c5\",\n    \"label\": \"Swimming Pool\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"symfony\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f83d\",\n    \"label\": \"Symfony\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775920,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"synagogue\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"jewish\",\n        \"judaism\",\n        \"religion\",\n        \"star of david\",\n        \"temple\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f69b\",\n    \"label\": \"Synagogue\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sync\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"exchange\",\n        \"refresh\",\n        \"reload\",\n        \"rotate\",\n        \"swap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f021\",\n    \"label\": \"Sync\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"sync-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"exchange\",\n        \"refresh\",\n        \"reload\",\n        \"rotate\",\n        \"swap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2f1\",\n    \"label\": \"Alternate Sync\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"syringe\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"doctor\",\n        \"immunizations\",\n        \"medical\",\n        \"needle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f48e\",\n    \"label\": \"Syringe\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"table\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"data\",\n        \"excel\",\n        \"spreadsheet\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ce\",\n    \"label\": \"table\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"table-tennis\": {\n    \"changes\": [\n      \"5.0.5\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ball\",\n        \"paddle\",\n        \"ping pong\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f45d\",\n    \"label\": \"Table Tennis\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861466,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tablet\": {\n    \"changes\": [\n      \"3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apple\",\n        \"device\",\n        \"ipad\",\n        \"kindle\",\n        \"screen\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f10a\",\n    \"label\": \"tablet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861467,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tablet-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"apple\",\n        \"device\",\n        \"ipad\",\n        \"kindle\",\n        \"screen\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3fa\",\n    \"label\": \"Alternate Tablet\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861467,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tablets\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"drugs\",\n        \"medicine\",\n        \"pills\",\n        \"prescription\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f490\",\n    \"label\": \"Tablets\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861467,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tachometer-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dashboard\",\n        \"fast\",\n        \"odometer\",\n        \"speed\",\n        \"speedometer\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3fd\",\n    \"label\": \"Alternate Tachometer\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861468,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tag\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"discount\",\n        \"label\",\n        \"price\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f02b\",\n    \"label\": \"tag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861468,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tags\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"discount\",\n        \"label\",\n        \"price\",\n        \"shopping\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f02c\",\n    \"label\": \"tags\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861468,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tape\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"design\",\n        \"package\",\n        \"sticky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4db\",\n    \"label\": \"Tape\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861468,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tasks\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"downloading\",\n        \"downloads\",\n        \"loading\",\n        \"progress\",\n        \"project management\",\n        \"settings\",\n        \"to do\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ae\",\n    \"label\": \"Tasks\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084946,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"taxi\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cab\",\n        \"cabbie\",\n        \"car\",\n        \"car service\",\n        \"lyft\",\n        \"machine\",\n        \"transportation\",\n        \"travel\",\n        \"uber\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1ba\",\n    \"label\": \"Taxi\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"teamspeak\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f4f9\",\n    \"label\": \"TeamSpeak\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775921,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"teeth\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bite\",\n        \"dental\",\n        \"dentist\",\n        \"gums\",\n        \"mouth\",\n        \"smile\",\n        \"tooth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f62e\",\n    \"label\": \"Teeth\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"teeth-open\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"dental\",\n        \"dentist\",\n        \"gums bite\",\n        \"mouth\",\n        \"smile\",\n        \"tooth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f62f\",\n    \"label\": \"Teeth Open\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"telegram\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2c6\",\n    \"label\": \"Telegram\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861024,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"telegram-plane\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3fe\",\n    \"label\": \"Telegram Plane\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861024,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"temperature-high\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cook\",\n        \"mercury\",\n        \"summer\",\n        \"thermometer\",\n        \"warm\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f769\",\n    \"label\": \"High Temperature\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"temperature-low\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cold\",\n        \"cool\",\n        \"mercury\",\n        \"thermometer\",\n        \"winter\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f76b\",\n    \"label\": \"Low Temperature\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tencent-weibo\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d5\",\n    \"label\": \"Tencent Weibo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861024,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"tenge\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"kazakhstan\",\n        \"money\",\n        \"price\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7d7\",\n    \"label\": \"Tenge\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861469,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"terminal\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"code\",\n        \"command\",\n        \"console\",\n        \"development\",\n        \"prompt\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f120\",\n    \"label\": \"Terminal\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"text-height\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f034\",\n    \"label\": \"text-height\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084946,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"text-width\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"font\",\n        \"format\",\n        \"text\",\n        \"type\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f035\",\n    \"label\": \"Text Width\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084947,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"th\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blocks\",\n        \"boxes\",\n        \"grid\",\n        \"squares\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f00a\",\n    \"label\": \"th\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"th-large\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"blocks\",\n        \"boxes\",\n        \"grid\",\n        \"squares\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f009\",\n    \"label\": \"th-large\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"th-list\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"checklist\",\n        \"completed\",\n        \"done\",\n        \"finished\",\n        \"ol\",\n        \"todo\",\n        \"ul\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f00b\",\n    \"label\": \"th-list\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"the-red-yeti\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f69d\",\n    \"label\": \"The Red Yeti\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775921,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"theater-masks\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"comedy\",\n        \"perform\",\n        \"theatre\",\n        \"tragedy\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f630\",\n    \"label\": \"Theater Masks\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"themeco\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5c6\",\n    \"label\": \"Themeco\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775922,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"themeisle\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b2\",\n    \"label\": \"ThemeIsle\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"thermometer\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f491\",\n    \"label\": \"Thermometer\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"thermometer-empty\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cold\",\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2cb\",\n    \"label\": \"Thermometer Empty\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"thermometer-full\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"fever\",\n        \"hot\",\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2c7\",\n    \"label\": \"Thermometer Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"thermometer-half\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2c9\",\n    \"label\": \"Thermometer 1/2 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"thermometer-quarter\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2ca\",\n    \"label\": \"Thermometer 1/4 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861470,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"thermometer-three-quarters\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"mercury\",\n        \"status\",\n        \"temperature\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2c8\",\n    \"label\": \"Thermometer 3/4 Full\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"think-peaks\": {\n    \"changes\": [\n      \"5.4.2\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f731\",\n    \"label\": \"Think Peaks\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775923,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"thumbs-down\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"disagree\",\n        \"disapprove\",\n        \"dislike\",\n        \"hand\",\n        \"social\",\n        \"thumbs-o-down\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f165\",\n    \"label\": \"thumbs-down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861334,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"thumbs-up\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"agree\",\n        \"approve\",\n        \"favorite\",\n        \"hand\",\n        \"like\",\n        \"ok\",\n        \"okay\",\n        \"social\",\n        \"success\",\n        \"thumbs-o-up\",\n        \"yes\",\n        \"you got it dude\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f164\",\n    \"label\": \"thumbs-up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861334,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"thumbtack\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"coordinates\",\n        \"location\",\n        \"marker\",\n        \"pin\",\n        \"thumb-tack\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f08d\",\n    \"label\": \"Thumbtack\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ticket-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"movie\",\n        \"pass\",\n        \"support\",\n        \"ticket\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f3ff\",\n    \"label\": \"Alternate Ticket\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861471,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"times\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"close\",\n        \"cross\",\n        \"error\",\n        \"exit\",\n        \"incorrect\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"problem\",\n        \"wrong\",\n        \"x\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f00d\",\n    \"label\": \"Times\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861472,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"times-circle\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"close\",\n        \"cross\",\n        \"exit\",\n        \"incorrect\",\n        \"notice\",\n        \"notification\",\n        \"notify\",\n        \"problem\",\n        \"wrong\",\n        \"x\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f057\",\n    \"label\": \"Times Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861472,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861335,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"tint\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"color\",\n        \"drop\",\n        \"droplet\",\n        \"raindrop\",\n        \"waterdrop\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f043\",\n    \"label\": \"tint\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861472,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 352 512\\\"><path d=\\\"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"352\",\n          \"512\"\n        ],\n        \"width\": 352,\n        \"height\": 512,\n        \"path\": \"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tint-slash\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"color\",\n        \"drop\",\n        \"droplet\",\n        \"raindrop\",\n        \"waterdrop\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c7\",\n    \"label\": \"Tint Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861472,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tired\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"angry\",\n        \"emoticon\",\n        \"face\",\n        \"grumpy\",\n        \"upset\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f5c8\",\n    \"label\": \"Tired Face\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861473,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861336,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"toggle-off\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"switch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f204\",\n    \"label\": \"Toggle Off\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861473,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"toggle-on\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"switch\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f205\",\n    \"label\": \"Toggle On\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"toilet\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bathroom\",\n        \"flush\",\n        \"john\",\n        \"loo\",\n        \"pee\",\n        \"plumbing\",\n        \"poop\",\n        \"porcelain\",\n        \"potty\",\n        \"restroom\",\n        \"throne\",\n        \"washroom\",\n        \"waste\",\n        \"wc\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7d8\",\n    \"label\": \"Toilet\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861473,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"toilet-paper\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bathroom\",\n        \"halloween\",\n        \"holiday\",\n        \"lavatory\",\n        \"prank\",\n        \"restroom\",\n        \"roll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f71e\",\n    \"label\": \"Toilet Paper\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861473,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"toolbox\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"container\",\n        \"fix\",\n        \"repair\",\n        \"settings\",\n        \"tools\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f552\",\n    \"label\": \"Toolbox\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861474,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tools\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"fix\",\n        \"repair\",\n        \"screwdriver\",\n        \"settings\",\n        \"tools\",\n        \"wrench\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7d9\",\n    \"label\": \"Tools\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861474,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tooth\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bicuspid\",\n        \"dental\",\n        \"dentist\",\n        \"molar\",\n        \"mouth\",\n        \"teeth\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5c9\",\n    \"label\": \"Tooth\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861474,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"torah\": {\n    \"changes\": [\n      \"5.3.0\",\n      \"5.7.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"book\",\n        \"jewish\",\n        \"judaism\",\n        \"religion\",\n        \"scroll\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6a0\",\n    \"label\": \"Torah\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084947,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"torii-gate\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"shintoism\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6a1\",\n    \"label\": \"Torii Gate\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861474,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tractor\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"agriculture\",\n        \"farm\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f722\",\n    \"label\": \"Tractor\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861474,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"trade-federation\": {\n    \"changes\": [\n      \"5.0.12\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f513\",\n    \"label\": \"Trade Federation\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722340,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"trademark\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"copyright\",\n        \"register\",\n        \"symbol\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f25c\",\n    \"label\": \"Trademark\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722392,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"traffic-light\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"direction\",\n        \"road\",\n        \"signal\",\n        \"travel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f637\",\n    \"label\": \"Traffic Light\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861475,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"train\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bullet\",\n        \"commute\",\n        \"locomotive\",\n        \"railway\",\n        \"subway\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f238\",\n    \"label\": \"Train\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861475,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tram\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"crossing\",\n        \"machine\",\n        \"mountains\",\n        \"seasonal\",\n        \"transportation\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f7da\",\n    \"label\": \"Tram\",\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861475,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"transgender\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"intersex\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f224\",\n    \"label\": \"Transgender\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861475,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"transgender-alt\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"intersex\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f225\",\n    \"label\": \"Alternate Transgender\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861475,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"trash\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"delete\",\n        \"garbage\",\n        \"hide\",\n        \"remove\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1f8\",\n    \"label\": \"Trash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859204,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"trash-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"delete\",\n        \"garbage\",\n        \"hide\",\n        \"remove\",\n        \"trash-o\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2ed\",\n    \"label\": \"Alternate Trash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859204,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1548697859197,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"trash-restore\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"control z\",\n        \"oops\",\n        \"undo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f829\",\n    \"label\": \"Trash Restore\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859204,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"trash-restore-alt\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"control z\",\n        \"oops\",\n        \"undo\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f82a\",\n    \"label\": \"Alternative Trash Restore\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548697859204,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tree\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bark\",\n        \"fall\",\n        \"flora\",\n        \"forest\",\n        \"nature\",\n        \"plant\",\n        \"seasonal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1bb\",\n    \"label\": \"Tree\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861476,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"trello\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\",\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"atlassian\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f181\",\n    \"label\": \"Trello\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"tripadvisor\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f262\",\n    \"label\": \"TripAdvisor\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M166.4 280.521c0 13.236-10.73 23.966-23.966 23.966s-23.966-10.73-23.966-23.966 10.73-23.966 23.966-23.966 23.966 10.729 23.966 23.966zm264.962-23.956c-13.23 0-23.956 10.725-23.956 23.956 0 13.23 10.725 23.956 23.956 23.956 13.23 0 23.956-10.725 23.956-23.956-.001-13.231-10.726-23.956-23.956-23.956zm89.388 139.49c-62.667 49.104-153.276 38.109-202.379-24.559l-30.979 46.325-30.683-45.939c-48.277 60.39-135.622 71.891-197.885 26.055-64.058-47.158-77.759-137.316-30.601-201.374A186.762 186.762 0 0 0 0 139.416l90.286-.05a358.48 358.48 0 0 1 197.065-54.03 350.382 350.382 0 0 1 192.181 53.349l96.218.074a185.713 185.713 0 0 0-28.352 57.649c46.793 62.747 34.964 151.37-26.648 199.647zM259.366 281.761c-.007-63.557-51.535-115.075-115.092-115.068C80.717 166.7 29.2 218.228 29.206 281.785c.007 63.557 51.535 115.075 115.092 115.068 63.513-.075 114.984-51.539 115.068-115.052v-.04zm28.591-10.455c5.433-73.44 65.51-130.884 139.12-133.022a339.146 339.146 0 0 0-139.727-27.812 356.31 356.31 0 0 0-140.164 27.253c74.344 1.582 135.299 59.424 140.771 133.581zm251.706-28.767c-21.992-59.634-88.162-90.148-147.795-68.157-59.634 21.992-90.148 88.162-68.157 147.795v.032c22.038 59.607 88.198 90.091 147.827 68.113 59.615-22.004 90.113-88.162 68.125-147.783zm-326.039 37.975v.115c-.057 39.328-31.986 71.163-71.314 71.106-39.328-.057-71.163-31.986-71.106-71.314.057-39.328 31.986-71.163 71.314-71.106 39.259.116 71.042 31.94 71.106 71.199zm-24.512 0v-.084c-.051-25.784-20.994-46.645-46.778-46.594-25.784.051-46.645 20.994-46.594 46.777.051 25.784 20.994 46.645 46.777 46.594 25.726-.113 46.537-20.968 46.595-46.693zm313.423 0v.048c-.02 39.328-31.918 71.194-71.247 71.173s-71.194-31.918-71.173-71.247c.02-39.328 31.918-71.194 71.247-71.173 39.29.066 71.121 31.909 71.173 71.199zm-24.504-.008c-.009-25.784-20.918-46.679-46.702-46.67-25.784.009-46.679 20.918-46.67 46.702.009 25.784 20.918 46.678 46.702 46.67 25.765-.046 46.636-20.928 46.67-46.693v-.009z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"trophy\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"achievement\",\n        \"award\",\n        \"cup\",\n        \"game\",\n        \"winner\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f091\",\n    \"label\": \"trophy\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861476,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"truck\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cargo\",\n        \"delivery\",\n        \"shipping\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0d1\",\n    \"label\": \"truck\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"truck-loading\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"box\",\n        \"cargo\",\n        \"delivery\",\n        \"inventory\",\n        \"moving\",\n        \"rental\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4de\",\n    \"label\": \"Truck Loading\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"truck-monster\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"offroad\",\n        \"vehicle\",\n        \"wheel\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f63b\",\n    \"label\": \"Truck Monster\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"truck-moving\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cargo\",\n        \"inventory\",\n        \"rental\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4df\",\n    \"label\": \"Truck Moving\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"truck-pickup\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cargo\",\n        \"vehicle\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f63c\",\n    \"label\": \"Truck Side\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tshirt\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clothing\",\n        \"fashion\",\n        \"garment\",\n        \"shirt\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f553\",\n    \"label\": \"T-Shirt\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tty\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"communication\",\n        \"deaf\",\n        \"telephone\",\n        \"teletypewriter\",\n        \"text\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1e4\",\n    \"label\": \"TTY\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861477,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"tumblr\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f173\",\n    \"label\": \"Tumblr\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"tumblr-square\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f174\",\n    \"label\": \"Tumblr Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"tv\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"computer\",\n        \"display\",\n        \"monitor\",\n        \"television\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f26c\",\n    \"label\": \"Television\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M592 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h245.1v32h-160c-17.7 0-32 14.3-32 32s14.3 32 32 32h384c17.7 0 32-14.3 32-32s-14.3-32-32-32h-160v-32H592c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h512v288z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"twitch\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1e8\",\n    \"label\": \"Twitch\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M40.1 32L10 108.9v314.3h107V480h60.2l56.8-56.8h87l117-117V32H40.1zm357.8 254.1L331 353H224l-56.8 56.8V353H76.9V72.1h321v214zM331 149v116.9h-40.1V149H331zm-107 0v116.9h-40.1V149H224z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"twitter\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"social network\",\n        \"tweet\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f099\",\n    \"label\": \"Twitter\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"twitter-square\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"social network\",\n        \"tweet\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f081\",\n    \"label\": \"Twitter Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861025,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"typo3\": {\n    \"changes\": [\n      \"5.0.1\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f42b\",\n    \"label\": \"Typo3\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775923,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"uber\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f402\",\n    \"label\": \"Uber\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ubuntu\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"linux\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7df\",\n    \"label\": \"Ubuntu\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"uikit\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f403\",\n    \"label\": \"UIkit\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"umbrella\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"protection\",\n        \"rain\",\n        \"storm\",\n        \"wet\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0e9\",\n    \"label\": \"Umbrella\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"umbrella-beach\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"protection\",\n        \"recreation\",\n        \"sand\",\n        \"shade\",\n        \"summer\",\n        \"sun\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ca\",\n    \"label\": \"Umbrella Beach\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"underline\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"emphasis\",\n        \"format\",\n        \"text\",\n        \"writing\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0cd\",\n    \"label\": \"Underline\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084947,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"undo\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"control z\",\n        \"exchange\",\n        \"oops\",\n        \"return\",\n        \"rotate\",\n        \"swap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0e2\",\n    \"label\": \"Undo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"undo-alt\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"back\",\n        \"control z\",\n        \"exchange\",\n        \"oops\",\n        \"return\",\n        \"swap\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2ea\",\n    \"label\": \"Alternate Undo\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"uniregistry\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f404\",\n    \"label\": \"Uniregistry\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548363722340,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"universal-access\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accessibility\",\n        \"hearing\",\n        \"person\",\n        \"seeing\",\n        \"visual impairment\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f29a\",\n    \"label\": \"Universal Access\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861478,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"university\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"bank\",\n        \"building\",\n        \"college\",\n        \"higher education - students\",\n        \"institution\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f19c\",\n    \"label\": \"University\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"unlink\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"attachment\",\n        \"chain\",\n        \"chain-broken\",\n        \"remove\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f127\",\n    \"label\": \"unlink\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"unlock\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"lock\",\n        \"password\",\n        \"private\",\n        \"protect\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f09c\",\n    \"label\": \"unlock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"unlock-alt\": {\n    \"changes\": [\n      \"3.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"lock\",\n        \"password\",\n        \"private\",\n        \"protect\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f13e\",\n    \"label\": \"Alternate Unlock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"untappd\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f405\",\n    \"label\": \"Untappd\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"upload\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"hard drive\",\n        \"import\",\n        \"publish\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f093\",\n    \"label\": \"Upload\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"ups\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"United Parcel Service\",\n        \"package\",\n        \"shipping\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7e0\",\n    \"label\": \"UPS\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775924,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"usb\": {\n    \"changes\": [\n      \"4.5\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f287\",\n    \"label\": \"USB\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861026,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"user\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"account\",\n        \"avatar\",\n        \"head\",\n        \"human\",\n        \"man\",\n        \"person\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f007\",\n    \"label\": \"User\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861482,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861345,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"user-alt\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"account\",\n        \"avatar\",\n        \"head\",\n        \"human\",\n        \"man\",\n        \"person\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f406\",\n    \"label\": \"Alternate User\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-alt-slash\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"account\",\n        \"avatar\",\n        \"head\",\n        \"human\",\n        \"man\",\n        \"person\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4fa\",\n    \"label\": \"Alternate User Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-astronaut\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"avatar\",\n        \"clothing\",\n        \"cosmonaut\",\n        \"nasa\",\n        \"space\",\n        \"suit\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4fb\",\n    \"label\": \"User Astronaut\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861479,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-check\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"check\",\n        \"person\",\n        \"verified\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4fc\",\n    \"label\": \"User Check\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-circle\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"account\",\n        \"avatar\",\n        \"head\",\n        \"human\",\n        \"man\",\n        \"person\",\n        \"profile\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2bd\",\n    \"label\": \"User Circle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861343,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"user-clock\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alert\",\n        \"person\",\n        \"remind\",\n        \"time\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4fd\",\n    \"label\": \"User Clock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-cog\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"cog\",\n        \"person\",\n        \"settings\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4fe\",\n    \"label\": \"User Cog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-edit\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"edit\",\n        \"pen\",\n        \"pencil\",\n        \"person\",\n        \"update\",\n        \"write\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4ff\",\n    \"label\": \"User Edit\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-friends\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"group\",\n        \"people\",\n        \"person\",\n        \"team\",\n        \"users\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f500\",\n    \"label\": \"User Friends\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-graduate\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cap\",\n        \"clothing\",\n        \"commencement\",\n        \"gown\",\n        \"graduation\",\n        \"person\",\n        \"student\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f501\",\n    \"label\": \"User Graduate\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-injured\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cast\",\n        \"injury\",\n        \"ouch\",\n        \"patient\",\n        \"person\",\n        \"sling\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f728\",\n    \"label\": \"User Injured\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861480,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-lock\": {\n    \"changes\": [\n      \"5.0.11\",\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"lock\",\n        \"person\",\n        \"private\",\n        \"unlock\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f502\",\n    \"label\": \"User Lock\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084948,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-md\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.7\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"job\",\n        \"medical\",\n        \"nurse\",\n        \"occupation\",\n        \"physician\",\n        \"profile\",\n        \"surgeon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0f0\",\n    \"label\": \"Doctor\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-minus\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"delete\",\n        \"negative\",\n        \"remove\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f503\",\n    \"label\": \"User Minus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-ninja\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"assassin\",\n        \"avatar\",\n        \"dangerous\",\n        \"deadly\",\n        \"sneaky\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f504\",\n    \"label\": \"User Ninja\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-nurse\": {\n    \"changes\": [\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"doctor\",\n        \"midwife\",\n        \"practitioner\",\n        \"surgeon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f82f\",\n    \"label\": \"Nurse\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548701300095,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-plus\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"avatar\",\n        \"positive\",\n        \"sign up\",\n        \"signup\",\n        \"team\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f234\",\n    \"label\": \"User Plus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-secret\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"clothing\",\n        \"coat\",\n        \"hat\",\n        \"incognito\",\n        \"person\",\n        \"privacy\",\n        \"spy\",\n        \"whisper\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f21b\",\n    \"label\": \"User Secret\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-shield\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"person\",\n        \"private\",\n        \"protect\",\n        \"safe\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f505\",\n    \"label\": \"User Shield\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-slash\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"ban\",\n        \"delete\",\n        \"remove\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f506\",\n    \"label\": \"User Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-tag\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"avatar\",\n        \"discount\",\n        \"label\",\n        \"person\",\n        \"role\",\n        \"special\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f507\",\n    \"label\": \"User Tag\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-tie\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"avatar\",\n        \"business\",\n        \"clothing\",\n        \"formal\",\n        \"professional\",\n        \"suit\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f508\",\n    \"label\": \"User Tie\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"user-times\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"archive\",\n        \"delete\",\n        \"remove\",\n        \"x\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f235\",\n    \"label\": \"Remove User\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861481,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"users\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.3\",\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"friends\",\n        \"group\",\n        \"people\",\n        \"persons\",\n        \"profiles\",\n        \"team\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0c0\",\n    \"label\": \"Users\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861482,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"users-cog\": {\n    \"changes\": [\n      \"5.0.11\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"admin\",\n        \"cog\",\n        \"group\",\n        \"person\",\n        \"settings\",\n        \"team\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f509\",\n    \"label\": \"Users Cog\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861482,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"usps\": {\n    \"changes\": [\n      \"5.6.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"american\",\n        \"package\",\n        \"shipping\",\n        \"usa\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7e1\",\n    \"label\": \"United States Postal Service\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775925,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"ussunnah\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f407\",\n    \"label\": \"us-Sunnah Foundation\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"utensil-spoon\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cutlery\",\n        \"dining\",\n        \"scoop\",\n        \"silverware\",\n        \"spoon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2e5\",\n    \"label\": \"Utensil Spoon\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861482,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"utensils\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"cutlery\",\n        \"dining\",\n        \"dinner\",\n        \"eat\",\n        \"food\",\n        \"fork\",\n        \"knife\",\n        \"restaurant\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f2e7\",\n    \"label\": \"Utensils\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861482,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 416 512\\\"><path d=\\\"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"416\",\n          \"512\"\n        ],\n        \"width\": 416,\n        \"height\": 512,\n        \"path\": \"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vaadin\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f408\",\n    \"label\": \"Vaadin\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vector-square\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anchors\",\n        \"lines\",\n        \"object\",\n        \"render\",\n        \"shape\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5cb\",\n    \"label\": \"Vector Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"venus\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"female\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f221\",\n    \"label\": \"Venus\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"venus-double\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"female\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f226\",\n    \"label\": \"Venus Double\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"venus-mars\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Gender\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f228\",\n    \"label\": \"Venus Mars\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"viacoin\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f237\",\n    \"label\": \"Viacoin\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"viadeo\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2a9\",\n    \"label\": \"Video\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"viadeo-square\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\",\n      \"5.7.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2aa\",\n    \"label\": \"Video Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1548364699932,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vial\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"experiment\",\n        \"lab\",\n        \"sample\",\n        \"science\",\n        \"test\",\n        \"test tube\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f492\",\n    \"label\": \"Vial\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 480 512\\\"><path d=\\\"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"480\",\n          \"512\"\n        ],\n        \"width\": 480,\n        \"height\": 512,\n        \"path\": \"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vials\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"experiment\",\n        \"lab\",\n        \"sample\",\n        \"science\",\n        \"test\",\n        \"test tube\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f493\",\n    \"label\": \"Vials\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"viber\": {\n    \"changes\": [\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f409\",\n    \"label\": \"Viber\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"video\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"camera\",\n        \"film\",\n        \"movie\",\n        \"record\",\n        \"video-camera\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f03d\",\n    \"label\": \"Video\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"video-slash\": {\n    \"changes\": [\n      \"5.0.9\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"add\",\n        \"create\",\n        \"film\",\n        \"new\",\n        \"positive\",\n        \"record\",\n        \"video\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4e2\",\n    \"label\": \"Video Slash\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vihara\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"buddhism\",\n        \"buddhist\",\n        \"building\",\n        \"monastery\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6a7\",\n    \"label\": \"Vihara\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861483,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vimeo\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f40a\",\n    \"label\": \"Vimeo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vimeo-square\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f194\",\n    \"label\": \"Vimeo Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vimeo-v\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"vimeo\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f27d\",\n    \"label\": \"Vimeo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861027,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vine\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1ca\",\n    \"label\": \"Vine\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vk\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f189\",\n    \"label\": \"VK\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"vnv\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f40b\",\n    \"label\": \"VNV\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"voicemail\": {\n    \"changes\": [\n      \"5.9.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"answer\",\n        \"inbox\",\n        \"message\",\n        \"phone\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f897\",\n    \"label\": \"Voicemail\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1563977084948,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"volleyball-ball\": {\n    \"changes\": [\n      \"5.0.5\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"beach\",\n        \"olympics\",\n        \"sport\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f45f\",\n    \"label\": \"Volleyball Ball\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776034,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"volume-down\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"lower\",\n        \"music\",\n        \"quieter\",\n        \"sound\",\n        \"speaker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f027\",\n    \"label\": \"Volume Down\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861484,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"volume-mute\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"music\",\n        \"quiet\",\n        \"sound\",\n        \"speaker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6a9\",\n    \"label\": \"Volume Mute\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861484,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"volume-off\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"ban\",\n        \"music\",\n        \"mute\",\n        \"quiet\",\n        \"silent\",\n        \"sound\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f026\",\n    \"label\": \"Volume Off\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776034,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"volume-up\": {\n    \"changes\": [\n      \"1\",\n      \"5.0.0\",\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"audio\",\n        \"higher\",\n        \"louder\",\n        \"music\",\n        \"sound\",\n        \"speaker\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f028\",\n    \"label\": \"Volume Up\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861484,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vote-yea\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accept\",\n        \"cast\",\n        \"election\",\n        \"politics\",\n        \"positive\",\n        \"yes\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f772\",\n    \"label\": \"Vote Yea\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861484,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vr-cardboard\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"3d\",\n        \"augment\",\n        \"google\",\n        \"reality\",\n        \"virtual\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f729\",\n    \"label\": \"Cardboard VR\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861485,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"vuejs\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f41f\",\n    \"label\": \"Vue.js\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"walking\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"exercise\",\n        \"health\",\n        \"pedometer\",\n        \"person\",\n        \"steps\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f554\",\n    \"label\": \"Walking\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861485,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wallet\": {\n    \"changes\": [\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"billfold\",\n        \"cash\",\n        \"currency\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f555\",\n    \"label\": \"Wallet\",\n    \"voted\": true,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861485,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"warehouse\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"building\",\n        \"capacity\",\n        \"garage\",\n        \"inventory\",\n        \"storage\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f494\",\n    \"label\": \"Warehouse\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861485,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"water\": {\n    \"changes\": [\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"lake\",\n        \"liquid\",\n        \"ocean\",\n        \"sea\",\n        \"swim\",\n        \"wet\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f773\",\n    \"label\": \"Water\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861486,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wave-square\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"frequency\",\n        \"pulse\",\n        \"signal\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f83e\",\n    \"label\": \"Square Wave\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1558987776035,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"waze\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f83f\",\n    \"label\": \"Waze\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775925,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"weebly\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5cc\",\n    \"label\": \"Weebly\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"weibo\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f18a\",\n    \"label\": \"Weibo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"weight\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"health\",\n        \"measurement\",\n        \"scale\",\n        \"weight\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f496\",\n    \"label\": \"Weight\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861486,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"weight-hanging\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"anvil\",\n        \"heavy\",\n        \"measurement\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5cd\",\n    \"label\": \"Hanging Weight\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861486,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"weixin\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1d7\",\n    \"label\": \"Weixin (WeChat)\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"whatsapp\": {\n    \"changes\": [\n      \"4.3\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f232\",\n    \"label\": \"What's App\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"whatsapp-square\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f40c\",\n    \"label\": \"What's App Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wheelchair\": {\n    \"changes\": [\n      \"4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"accessible\",\n        \"handicap\",\n        \"person\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f193\",\n    \"label\": \"Wheelchair\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861486,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"whmcs\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f40d\",\n    \"label\": \"WHMCS\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861028,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wifi\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.3.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"connection\",\n        \"hotspot\",\n        \"internet\",\n        \"network\",\n        \"wireless\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f1eb\",\n    \"label\": \"WiFi\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wikipedia-w\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f266\",\n    \"label\": \"Wikipedia W\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wind\": {\n    \"changes\": [\n      \"5.4.0\",\n      \"5.5.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"air\",\n        \"blow\",\n        \"breeze\",\n        \"fall\",\n        \"seasonal\",\n        \"weather\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f72e\",\n    \"label\": \"Wind\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"window-close\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"cancel\",\n        \"computer\",\n        \"development\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f410\",\n    \"label\": \"Window Close\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861350,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"window-maximize\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"computer\",\n        \"development\",\n        \"expand\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2d0\",\n    \"label\": \"Window Maximize\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861350,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"window-minimize\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"collapse\",\n        \"computer\",\n        \"development\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2d1\",\n    \"label\": \"Window Minimize\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861350,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"window-restore\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"browser\",\n        \"computer\",\n        \"development\"\n      ]\n    },\n    \"styles\": [\n      \"solid\",\n      \"regular\"\n    ],\n    \"unicode\": \"f2d2\",\n    \"label\": \"Window Restore\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"\n      },\n      \"regular\": {\n        \"last_modified\": 1546440861350,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"\n      }\n    },\n    \"free\": [\n      \"solid\",\n      \"regular\"\n    ]\n  },\n  \"windows\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"microsoft\",\n        \"operating system\",\n        \"os\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f17a\",\n    \"label\": \"Windows\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wine-bottle\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"beverage\",\n        \"cabernet\",\n        \"drink\",\n        \"glass\",\n        \"grapes\",\n        \"merlot\",\n        \"sauvignon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f72f\",\n    \"label\": \"Wine Bottle\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861487,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wine-glass\": {\n    \"changes\": [\n      \"5.0.9\",\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"beverage\",\n        \"cabernet\",\n        \"drink\",\n        \"grapes\",\n        \"merlot\",\n        \"sauvignon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f4e3\",\n    \"label\": \"Wine Glass\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861488,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wine-glass-alt\": {\n    \"changes\": [\n      \"5.1.0\",\n      \"5.10.1\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"alcohol\",\n        \"beverage\",\n        \"cabernet\",\n        \"drink\",\n        \"grapes\",\n        \"merlot\",\n        \"sauvignon\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f5ce\",\n    \"label\": \"Alternate Wine Glas\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861488,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 288 512\\\"><path d=\\\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"288\",\n          \"512\"\n        ],\n        \"width\": 288,\n        \"height\": 512,\n        \"path\": \"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wix\": {\n    \"changes\": [\n      \"5.1.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f5cf\",\n    \"label\": \"Wix\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wizards-of-the-coast\": {\n    \"changes\": [\n      \"5.4.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"Dungeons & Dragons\",\n        \"d&d\",\n        \"dnd\",\n        \"fantasy\",\n        \"game\",\n        \"gaming\",\n        \"tabletop\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f730\",\n    \"label\": \"Wizards of the Coast\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wolf-pack-battalion\": {\n    \"changes\": [\n      \"5.0.12\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f514\",\n    \"label\": \"Wolf Pack Battalion\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775926,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"won-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"krw\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f159\",\n    \"label\": \"Won Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"wordpress\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f19a\",\n    \"label\": \"WordPress Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wordpress-simple\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f411\",\n    \"label\": \"Wordpress Simple\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wpbeginner\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f297\",\n    \"label\": \"WPBeginner\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wpexplorer\": {\n    \"changes\": [\n      \"4.7\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2de\",\n    \"label\": \"WPExplorer\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wpforms\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f298\",\n    \"label\": \"WPForms\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861029,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wpressr\": {\n    \"changes\": [\n      \"5.4.2\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"rendact\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f3e4\",\n    \"label\": \"wpressr\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"wrench\": {\n    \"changes\": [\n      \"2\",\n      \"5.0.0\",\n      \"5.0.13\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"construction\",\n        \"fix\",\n        \"mechanic\",\n        \"plumbing\",\n        \"settings\",\n        \"spanner\",\n        \"tool\",\n        \"update\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f0ad\",\n    \"label\": \"Wrench\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861488,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"x-ray\": {\n    \"changes\": [\n      \"5.0.7\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"health\",\n        \"medical\",\n        \"radiological images\",\n        \"radiology\",\n        \"skeleton\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f497\",\n    \"label\": \"X-Ray\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861488,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"xbox\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f412\",\n    \"label\": \"Xbox\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"xing\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f168\",\n    \"label\": \"Xing\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"xing-square\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f169\",\n    \"label\": \"Xing Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"y-combinator\": {\n    \"changes\": [\n      \"4.4\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f23b\",\n    \"label\": \"Y Combinator\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yahoo\": {\n    \"changes\": [\n      \"4.1\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f19e\",\n    \"label\": \"Yahoo Logo\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M252 292l4 220c-12.7-2.2-23.5-3.9-32.3-3.9-8.4 0-19.2 1.7-32.3 3.9l4-220C140.4 197.2 85 95.2 21.4 0c11.9 3.1 23 3.9 33.2 3.9 9 0 20.4-.8 34.1-3.9 40.9 72.2 82.1 138.7 135 225.5C261 163.9 314.8 81.4 358.6 0c11.1 2.9 22 3.9 32.9 3.9 11.5 0 23.2-1 35-3.9C392.1 47.9 294.9 216.9 252 292z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yammer\": {\n    \"changes\": [\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f840\",\n    \"label\": \"Yammer\",\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775926,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 512 512\\\"><path d=\\\"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"512\",\n          \"512\"\n        ],\n        \"width\": 512,\n        \"height\": 512,\n        \"path\": \"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yandex\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f413\",\n    \"label\": \"Yandex\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 256 512\\\"><path d=\\\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"256\",\n          \"512\"\n        ],\n        \"width\": 256,\n        \"height\": 512,\n        \"path\": \"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yandex-international\": {\n    \"changes\": [\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f414\",\n    \"label\": \"Yandex International\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 320 512\\\"><path d=\\\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"320\",\n          \"512\"\n        ],\n        \"width\": 320,\n        \"height\": 512,\n        \"path\": \"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yarn\": {\n    \"changes\": [\n      \"5.6.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f7e3\",\n    \"label\": \"Yarn\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861030,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yelp\": {\n    \"changes\": [\n      \"4.2\",\n      \"5.0.0\",\n      \"5.7.0\",\n      \"5.8.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f1e9\",\n    \"label\": \"Yelp\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1558987775927,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"yen-sign\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"currency\",\n        \"jpy\",\n        \"money\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f157\",\n    \"label\": \"Yen Sign\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1548363722393,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 384 512\\\"><path d=\\\"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"384\",\n          \"512\"\n        ],\n        \"width\": 384,\n        \"height\": 512,\n        \"path\": \"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"yin-yang\": {\n    \"changes\": [\n      \"5.3.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"daoism\",\n        \"opposites\",\n        \"taoism\"\n      ]\n    },\n    \"styles\": [\n      \"solid\"\n    ],\n    \"unicode\": \"f6ad\",\n    \"label\": \"Yin Yang\",\n    \"voted\": false,\n    \"svg\": {\n      \"solid\": {\n        \"last_modified\": 1546440861488,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 496 512\\\"><path d=\\\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"496\",\n          \"512\"\n        ],\n        \"width\": 496,\n        \"height\": 512,\n        \"path\": \"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"\n      }\n    },\n    \"free\": [\n      \"solid\"\n    ]\n  },\n  \"yoast\": {\n    \"changes\": [\n      \"4.6\",\n      \"5.0.0\",\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f2b1\",\n    \"label\": \"Yoast\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"youtube\": {\n    \"changes\": [\n      \"3.2\",\n      \"5.0.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": [\n        \"film\",\n        \"video\",\n        \"youtube-play\",\n        \"youtube-square\"\n      ]\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f167\",\n    \"label\": \"YouTube\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 576 512\\\"><path d=\\\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"576\",\n          \"512\"\n        ],\n        \"width\": 576,\n        \"height\": 512,\n        \"path\": \"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"youtube-square\": {\n    \"changes\": [\n      \"5.0.3\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f431\",\n    \"label\": \"YouTube Square\",\n    \"voted\": false,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 448 512\\\"><path d=\\\"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"448\",\n          \"512\"\n        ],\n        \"width\": 448,\n        \"height\": 512,\n        \"path\": \"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  },\n  \"zhihu\": {\n    \"changes\": [\n      \"5.2.0\"\n    ],\n    \"ligatures\": [],\n    \"search\": {\n      \"terms\": []\n    },\n    \"styles\": [\n      \"brands\"\n    ],\n    \"unicode\": \"f63f\",\n    \"label\": \"Zhihu\",\n    \"voted\": true,\n    \"svg\": {\n      \"brands\": {\n        \"last_modified\": 1546440861031,\n        \"raw\": \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 512\\\"><path d=\\\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\\\"/></svg>\",\n        \"viewBox\": [\n          \"0\",\n          \"0\",\n          \"640\",\n          \"512\"\n        ],\n        \"width\": 640,\n        \"height\": 512,\n        \"path\": \"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"\n      }\n    },\n    \"free\": [\n      \"brands\"\n    ]\n  }\n}"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/icons.yml",
    "content": "500px:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: 500px\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f26e\n  voted: false\naccessible-icon:\n  changes:\n    - 5.0.0\n  label: Accessible Icon\n  search:\n    terms:\n      - accessibility\n      - handicap\n      - person\n      - wheelchair\n      - wheelchair-alt\n  styles:\n    - brands\n  unicode: f368\n  voted: false\naccusoft:\n  changes:\n    - 5.0.0\n  label: Accusoft\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f369\n  voted: false\nacquisitions-incorporated:\n  changes:\n    - 5.4.0\n    - 5.8.0\n  label: Acquisitions Incorporated\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - game\n      - gaming\n      - tabletop\n  styles:\n    - brands\n  unicode: f6af\n  voted: false\nad:\n  changes:\n    - 5.3.0\n  label: Ad\n  search:\n    terms:\n      - advertisement\n      - media\n      - newspaper\n      - promotion\n      - publicity\n  styles:\n    - solid\n  unicode: f641\n  voted: false\naddress-book:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.3\n  label: Address Book\n  search:\n    terms:\n      - contact\n      - directory\n      - index\n      - little black book\n      - rolodex\n  styles:\n    - solid\n    - regular\n  unicode: f2b9\n  voted: false\naddress-card:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.3\n  label: Address Card\n  search:\n    terms:\n      - about\n      - contact\n      - id\n      - identification\n      - postcard\n      - profile\n  styles:\n    - solid\n    - regular\n  unicode: f2bb\n  voted: false\nadjust:\n  changes:\n    - '1'\n    - 5.0.0\n  label: adjust\n  search:\n    terms:\n      - contrast\n      - dark\n      - light\n      - saturation\n  styles:\n    - solid\n  unicode: f042\n  voted: false\nadn:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: App.net\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f170\n  voted: false\nadobe:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Adobe\n  search:\n    terms:\n      - acrobat\n      - app\n      - design\n      - illustrator\n      - indesign\n      - photoshop\n  styles:\n    - brands\n  unicode: f778\n  voted: false\nadversal:\n  changes:\n    - 5.0.0\n  label: Adversal\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36a\n  voted: false\naffiliatetheme:\n  changes:\n    - 5.0.0\n  label: affiliatetheme\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36b\n  voted: false\nair-freshener:\n  changes:\n    - 5.2.0\n  label: Air Freshener\n  search:\n    terms:\n      - car\n      - deodorize\n      - fresh\n      - pine\n      - scent\n  styles:\n    - solid\n  unicode: f5d0\n  voted: false\nairbnb:\n  changes:\n    - 5.8.0\n  label: Airbnb\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f834\nalgolia:\n  changes:\n    - 5.0.0\n  label: Algolia\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36c\n  voted: false\nalign-center:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: align-center\n  search:\n    terms:\n      - format\n      - middle\n      - paragraph\n      - text\n  styles:\n    - solid\n  unicode: f037\n  voted: false\nalign-justify:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: align-justify\n  search:\n    terms:\n      - format\n      - paragraph\n      - text\n  styles:\n    - solid\n  unicode: f039\n  voted: false\nalign-left:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: align-left\n  search:\n    terms:\n      - format\n      - paragraph\n      - text\n  styles:\n    - solid\n  unicode: f036\n  voted: false\nalign-right:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: align-right\n  search:\n    terms:\n      - format\n      - paragraph\n      - text\n  styles:\n    - solid\n  unicode: f038\n  voted: false\nalipay:\n  changes:\n    - 5.3.0\n  label: Alipay\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f642\n  voted: false\nallergies:\n  changes:\n    - 5.0.7\n  label: Allergies\n  search:\n    terms:\n      - allergy\n      - freckles\n      - hand\n      - hives\n      - pox\n      - skin\n      - spots\n  styles:\n    - solid\n  unicode: f461\n  voted: false\namazon:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Amazon\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f270\n  voted: false\namazon-pay:\n  changes:\n    - 5.0.2\n    - 5.8.0\n  label: Amazon Pay\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42c\n  voted: false\nambulance:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.0.7\n  label: ambulance\n  search:\n    terms:\n      - emergency\n      - emt\n      - er\n      - help\n      - hospital\n      - support\n      - vehicle\n  styles:\n    - solid\n  unicode: f0f9\n  voted: false\namerican-sign-language-interpreting:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: American Sign Language Interpreting\n  search:\n    terms:\n      - asl\n      - deaf\n      - finger\n      - hand\n      - interpret\n      - speak\n  styles:\n    - solid\n  unicode: f2a3\n  voted: false\namilia:\n  changes:\n    - 5.0.0\n  label: Amilia\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36d\n  voted: false\nanchor:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Anchor\n  search:\n    terms:\n      - berth\n      - boat\n      - dock\n      - embed\n      - link\n      - maritime\n      - moor\n      - secure\n  styles:\n    - solid\n  unicode: f13d\n  voted: false\nandroid:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Android\n  search:\n    terms:\n      - robot\n  styles:\n    - brands\n  unicode: f17b\n  voted: false\nangellist:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: AngelList\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f209\n  voted: false\nangle-double-down:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Angle Double Down\n  search:\n    terms:\n      - arrows\n      - caret\n      - download\n      - expand\n  styles:\n    - solid\n  unicode: f103\n  voted: false\nangle-double-left:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Angle Double Left\n  search:\n    terms:\n      - arrows\n      - back\n      - caret\n      - laquo\n      - previous\n      - quote\n  styles:\n    - solid\n  unicode: f100\n  voted: false\nangle-double-right:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Angle Double Right\n  search:\n    terms:\n      - arrows\n      - caret\n      - forward\n      - more\n      - next\n      - quote\n      - raquo\n  styles:\n    - solid\n  unicode: f101\n  voted: false\nangle-double-up:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Angle Double Up\n  search:\n    terms:\n      - arrows\n      - caret\n      - collapse\n      - upload\n  styles:\n    - solid\n  unicode: f102\n  voted: false\nangle-down:\n  changes:\n    - '3'\n    - 5.0.0\n  label: angle-down\n  search:\n    terms:\n      - arrow\n      - caret\n      - download\n      - expand\n  styles:\n    - solid\n  unicode: f107\n  voted: false\nangle-left:\n  changes:\n    - '3'\n    - 5.0.0\n  label: angle-left\n  search:\n    terms:\n      - arrow\n      - back\n      - caret\n      - less\n      - previous\n  styles:\n    - solid\n  unicode: f104\n  voted: false\nangle-right:\n  changes:\n    - '3'\n    - 5.0.0\n  label: angle-right\n  search:\n    terms:\n      - arrow\n      - care\n      - forward\n      - more\n      - next\n  styles:\n    - solid\n  unicode: f105\n  voted: false\nangle-up:\n  changes:\n    - '3'\n    - 5.0.0\n  label: angle-up\n  search:\n    terms:\n      - arrow\n      - caret\n      - collapse\n      - upload\n  styles:\n    - solid\n  unicode: f106\n  voted: false\nangry:\n  changes:\n    - 5.1.0\n  label: Angry Face\n  search:\n    terms:\n      - disapprove\n      - emoticon\n      - face\n      - mad\n      - upset\n  styles:\n    - solid\n    - regular\n  unicode: f556\n  voted: false\nangrycreative:\n  changes:\n    - 5.0.0\n  label: Angry Creative\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36e\n  voted: false\nangular:\n  changes:\n    - 5.0.0\n    - 5.8.0\n  label: Angular\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f420\n  voted: false\nankh:\n  changes:\n    - 5.3.0\n  label: Ankh\n  search:\n    terms:\n      - amulet\n      - copper\n      - coptic christianity\n      - copts\n      - crux ansata\n      - egypt\n      - venus\n  styles:\n    - solid\n  unicode: f644\n  voted: false\napp-store:\n  changes:\n    - 5.0.0\n  label: App Store\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f36f\n  voted: false\napp-store-ios:\n  changes:\n    - 5.0.0\n  label: iOS App Store\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f370\n  voted: false\napper:\n  changes:\n    - 5.0.0\n  label: Apper Systems AB\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f371\n  voted: false\napple:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.0.7\n    - 5.8.0\n  label: Apple\n  search:\n    terms:\n      - fruit\n      - ios\n      - mac\n      - operating system\n      - os\n      - osx\n  styles:\n    - brands\n  unicode: f179\n  voted: false\napple-alt:\n  changes:\n    - 5.2.0\n  label: Fruit Apple\n  search:\n    terms:\n      - fall\n      - fruit\n      - fuji\n      - macintosh\n      - orchard\n      - seasonal\n      - vegan\n  styles:\n    - solid\n  unicode: f5d1\n  voted: false\napple-pay:\n  changes:\n    - 5.0.0\n  label: Apple Pay\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f415\n  voted: true\narchive:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.0.9\n  label: Archive\n  search:\n    terms:\n      - box\n      - package\n      - save\n      - storage\n  styles:\n    - solid\n  unicode: f187\n  voted: false\narchway:\n  changes:\n    - 5.1.0\n  label: Archway\n  search:\n    terms:\n      - arc\n      - monument\n      - road\n      - street\n      - tunnel\n  styles:\n    - solid\n  unicode: f557\n  voted: false\narrow-alt-circle-down:\n  changes:\n    - 5.0.0\n  label: Alternate Arrow Circle Down\n  search:\n    terms:\n      - arrow-circle-o-down\n      - download\n  styles:\n    - solid\n    - regular\n  unicode: f358\n  voted: false\narrow-alt-circle-left:\n  changes:\n    - 5.0.0\n  label: Alternate Arrow Circle Left\n  search:\n    terms:\n      - arrow-circle-o-left\n      - back\n      - previous\n  styles:\n    - solid\n    - regular\n  unicode: f359\n  voted: false\narrow-alt-circle-right:\n  changes:\n    - 5.0.0\n  label: Alternate Arrow Circle Right\n  search:\n    terms:\n      - arrow-circle-o-right\n      - forward\n      - next\n  styles:\n    - solid\n    - regular\n  unicode: f35a\n  voted: false\narrow-alt-circle-up:\n  changes:\n    - 5.0.0\n  label: Alternate Arrow Circle Up\n  search:\n    terms:\n      - arrow-circle-o-up\n  styles:\n    - solid\n    - regular\n  unicode: f35b\n  voted: false\narrow-circle-down:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Arrow Circle Down\n  search:\n    terms:\n      - download\n  styles:\n    - solid\n  unicode: f0ab\n  voted: false\narrow-circle-left:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Arrow Circle Left\n  search:\n    terms:\n      - back\n      - previous\n  styles:\n    - solid\n  unicode: f0a8\n  voted: false\narrow-circle-right:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Arrow Circle Right\n  search:\n    terms:\n      - forward\n      - next\n  styles:\n    - solid\n  unicode: f0a9\n  voted: false\narrow-circle-up:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Arrow Circle Up\n  search:\n    terms:\n      - upload\n  styles:\n    - solid\n  unicode: f0aa\n  voted: false\narrow-down:\n  changes:\n    - '1'\n    - 5.0.0\n  label: arrow-down\n  search:\n    terms:\n      - download\n  styles:\n    - solid\n  unicode: f063\n  voted: false\narrow-left:\n  changes:\n    - '1'\n    - 5.0.0\n  label: arrow-left\n  search:\n    terms:\n      - back\n      - previous\n  styles:\n    - solid\n  unicode: f060\n  voted: false\narrow-right:\n  changes:\n    - '1'\n    - 5.0.0\n  label: arrow-right\n  search:\n    terms:\n      - forward\n      - next\n  styles:\n    - solid\n  unicode: f061\n  voted: false\narrow-up:\n  changes:\n    - '1'\n    - 5.0.0\n  label: arrow-up\n  search:\n    terms:\n      - forward\n      - upload\n  styles:\n    - solid\n  unicode: f062\n  voted: false\narrows-alt:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Alternate Arrows\n  search:\n    terms:\n      - arrow\n      - arrows\n      - bigger\n      - enlarge\n      - expand\n      - fullscreen\n      - move\n      - position\n      - reorder\n      - resize\n  styles:\n    - solid\n  unicode: f0b2\n  voted: false\narrows-alt-h:\n  changes:\n    - 5.0.0\n  label: Alternate Arrows Horizontal\n  search:\n    terms:\n      - arrows-h\n      - expand\n      - horizontal\n      - landscape\n      - resize\n      - wide\n  styles:\n    - solid\n  unicode: f337\n  voted: false\narrows-alt-v:\n  changes:\n    - 5.0.0\n  label: Alternate Arrows Vertical\n  search:\n    terms:\n      - arrows-v\n      - expand\n      - portrait\n      - resize\n      - tall\n      - vertical\n  styles:\n    - solid\n  unicode: f338\n  voted: false\nartstation:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Artstation\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f77a\n  voted: true\nassistive-listening-systems:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Assistive Listening Systems\n  search:\n    terms:\n      - amplify\n      - audio\n      - deaf\n      - ear\n      - headset\n      - hearing\n      - sound\n  styles:\n    - solid\n  unicode: f2a2\n  voted: false\nasterisk:\n  changes:\n    - '1'\n    - 5.0.0\n  label: asterisk\n  search:\n    terms:\n      - annotation\n      - details\n      - reference\n      - star\n  styles:\n    - solid\n  unicode: f069\n  voted: false\nasymmetrik:\n  changes:\n    - 5.0.0\n  label: 'Asymmetrik, Ltd.'\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f372\n  voted: false\nat:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: At\n  search:\n    terms:\n      - address\n      - author\n      - e-mail\n      - email\n      - handle\n  styles:\n    - solid\n  unicode: f1fa\n  voted: false\natlas:\n  changes:\n    - 5.1.0\n  label: Atlas\n  search:\n    terms:\n      - book\n      - directions\n      - geography\n      - globe\n      - map\n      - travel\n      - wayfinding\n  styles:\n    - solid\n  unicode: f558\n  voted: false\natlassian:\n  changes:\n    - 5.6.0\n  label: Atlassian\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f77b\n  voted: true\natom:\n  changes:\n    - 5.2.0\n  label: Atom\n  search:\n    terms:\n      - atheism\n      - chemistry\n      - ion\n      - nuclear\n      - science\n  styles:\n    - solid\n  unicode: f5d2\n  voted: false\naudible:\n  changes:\n    - 5.0.0\n  label: Audible\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f373\n  voted: false\naudio-description:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Audio Description\n  search:\n    terms:\n      - blind\n      - narration\n      - video\n      - visual\n  styles:\n    - solid\n  unicode: f29e\n  voted: false\nautoprefixer:\n  changes:\n    - 5.0.0\n  label: Autoprefixer\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41c\n  voted: false\navianex:\n  changes:\n    - 5.0.0\n  label: avianex\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f374\n  voted: false\naviato:\n  changes:\n    - 5.0.0\n  label: Aviato\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f421\n  voted: false\naward:\n  changes:\n    - 5.1.0\n    - 5.2.0\n  label: Award\n  search:\n    terms:\n      - honor\n      - praise\n      - prize\n      - recognition\n      - ribbon\n      - trophy\n  styles:\n    - solid\n  unicode: f559\n  voted: true\naws:\n  changes:\n    - 5.0.0\n    - 5.1.0\n  label: Amazon Web Services (AWS)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f375\n  voted: false\nbaby:\n  changes:\n    - 5.6.0\n    - 5.10.1\n  label: Baby\n  search:\n    terms:\n      - child\n      - diaper\n      - doll\n      - human\n      - infant\n      - kid\n      - offspring\n      - person\n      - sprout\n  styles:\n    - solid\n  unicode: f77c\n  voted: true\nbaby-carriage:\n  changes:\n    - 5.6.0\n  label: Baby Carriage\n  search:\n    terms:\n      - buggy\n      - carrier\n      - infant\n      - push\n      - stroller\n      - transportation\n      - walk\n      - wheels\n  styles:\n    - solid\n  unicode: f77d\n  voted: true\nbackspace:\n  changes:\n    - 5.1.0\n  label: Backspace\n  search:\n    terms:\n      - command\n      - delete\n      - erase\n      - keyboard\n      - undo\n  styles:\n    - solid\n  unicode: f55a\n  voted: true\nbackward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: backward\n  search:\n    terms:\n      - previous\n      - rewind\n  styles:\n    - solid\n  unicode: f04a\n  voted: false\nbacon:\n  changes:\n    - 5.7.0\n  label: Bacon\n  search:\n    terms:\n      - blt\n      - breakfast\n      - ham\n      - lard\n      - meat\n      - pancetta\n      - pork\n      - rasher\n  styles:\n    - solid\n  unicode: f7e5\n  voted: false\nbalance-scale:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.0.13\n  label: Balance Scale\n  search:\n    terms:\n      - balanced\n      - justice\n      - legal\n      - measure\n      - weight\n  styles:\n    - solid\n  unicode: f24e\n  voted: false\nbalance-scale-left:\n  changes:\n    - 5.0.13\n  label: Balance Scale (Left-Weighted)\n  search:\n    terms:\n      - justice\n      - legal\n      - measure\n      - unbalanced\n      - weight\n  styles:\n    - solid\n  unicode: f515\n  voted: true\nbalance-scale-right:\n  changes:\n    - 5.0.13\n  label: Balance Scale (Right-Weighted)\n  search:\n    terms:\n      - justice\n      - legal\n      - measure\n      - unbalanced\n      - weight\n  styles:\n    - solid\n  unicode: f516\n  voted: true\nban:\n  changes:\n    - '1'\n    - 5.0.0\n  label: ban\n  search:\n    terms:\n      - abort\n      - ban\n      - block\n      - cancel\n      - delete\n      - hide\n      - prohibit\n      - remove\n      - stop\n      - trash\n  styles:\n    - solid\n  unicode: f05e\n  voted: false\nband-aid:\n  changes:\n    - 5.0.7\n  label: Band-Aid\n  search:\n    terms:\n      - bandage\n      - boo boo\n      - first aid\n      - ouch\n  styles:\n    - solid\n  unicode: f462\n  voted: false\nbandcamp:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Bandcamp\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2d5\n  voted: false\nbarcode:\n  changes:\n    - '1'\n    - 5.0.0\n  label: barcode\n  search:\n    terms:\n      - info\n      - laser\n      - price\n      - scan\n      - upc\n  styles:\n    - solid\n  unicode: f02a\n  voted: false\nbars:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Bars\n  search:\n    terms:\n      - checklist\n      - drag\n      - hamburger\n      - list\n      - menu\n      - nav\n      - navigation\n      - ol\n      - reorder\n      - settings\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f0c9\n  voted: false\nbaseball-ball:\n  changes:\n    - 5.0.5\n  label: Baseball Ball\n  search:\n    terms:\n      - foul\n      - hardball\n      - league\n      - leather\n      - mlb\n      - softball\n      - sport\n  styles:\n    - solid\n  unicode: f433\n  voted: false\nbasketball-ball:\n  changes:\n    - 5.0.5\n  label: Basketball Ball\n  search:\n    terms:\n      - dribble\n      - dunk\n      - hoop\n      - nba\n  styles:\n    - solid\n  unicode: f434\n  voted: false\nbath:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Bath\n  search:\n    terms:\n      - clean\n      - shower\n      - tub\n      - wash\n  styles:\n    - solid\n  unicode: f2cd\n  voted: false\nbattery-empty:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Battery Empty\n  search:\n    terms:\n      - charge\n      - dead\n      - power\n      - status\n  styles:\n    - solid\n  unicode: f244\n  voted: false\nbattery-full:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Battery Full\n  search:\n    terms:\n      - charge\n      - power\n      - status\n  styles:\n    - solid\n  unicode: f240\n  voted: false\nbattery-half:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Battery 1/2 Full\n  search:\n    terms:\n      - charge\n      - power\n      - status\n  styles:\n    - solid\n  unicode: f242\n  voted: false\nbattery-quarter:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Battery 1/4 Full\n  search:\n    terms:\n      - charge\n      - low\n      - power\n      - status\n  styles:\n    - solid\n  unicode: f243\n  voted: false\nbattery-three-quarters:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Battery 3/4 Full\n  search:\n    terms:\n      - charge\n      - power\n      - status\n  styles:\n    - solid\n  unicode: f241\n  voted: false\nbattle-net:\n  changes:\n    - 5.8.0\n  label: Battle.net\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f835\nbed:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.1.0\n  label: Bed\n  search:\n    terms:\n      - lodging\n      - rest\n      - sleep\n      - travel\n  styles:\n    - solid\n  unicode: f236\n  voted: false\nbeer:\n  changes:\n    - '3'\n    - 5.0.0\n  label: beer\n  search:\n    terms:\n      - alcohol\n      - ale\n      - bar\n      - beverage\n      - brewery\n      - drink\n      - lager\n      - liquor\n      - mug\n      - stein\n  styles:\n    - solid\n  unicode: f0fc\n  voted: false\nbehance:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Behance\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1b4\n  voted: false\nbehance-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.0.3\n  label: Behance Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1b5\n  voted: false\nbell:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.2.0\n  label: bell\n  search:\n    terms:\n      - alarm\n      - alert\n      - chime\n      - notification\n      - reminder\n  styles:\n    - solid\n    - regular\n  unicode: f0f3\n  voted: false\nbell-slash:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.2.0\n  label: Bell Slash\n  search:\n    terms:\n      - alert\n      - cancel\n      - disabled\n      - notification\n      - 'off'\n      - reminder\n  styles:\n    - solid\n    - regular\n  unicode: f1f6\n  voted: false\nbezier-curve:\n  changes:\n    - 5.1.0\n  label: Bezier Curve\n  search:\n    terms:\n      - curves\n      - illustrator\n      - lines\n      - path\n      - vector\n  styles:\n    - solid\n  unicode: f55b\n  voted: false\nbible:\n  changes:\n    - 5.3.0\n  label: Bible\n  search:\n    terms:\n      - book\n      - catholicism\n      - christianity\n      - god\n      - holy\n  styles:\n    - solid\n  unicode: f647\n  voted: false\nbicycle:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Bicycle\n  search:\n    terms:\n      - bike\n      - gears\n      - pedal\n      - transportation\n      - vehicle\n  styles:\n    - solid\n  unicode: f206\n  voted: false\nbiking:\n  changes:\n    - 5.9.0\n  label: Biking\n  search:\n    terms:\n      - bicycle\n      - bike\n      - cycle\n      - cycling\n      - ride\n      - wheel\n  styles:\n    - solid\n  unicode: f84a\n  voted: false\nbimobject:\n  changes:\n    - 5.0.0\n  label: BIMobject\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f378\n  voted: false\nbinoculars:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.2.0\n  label: Binoculars\n  search:\n    terms:\n      - glasses\n      - magnify\n      - scenic\n      - spyglass\n      - view\n  styles:\n    - solid\n  unicode: f1e5\n  voted: false\nbiohazard:\n  changes:\n    - 5.6.0\n    - 5.7.0\n  label: Biohazard\n  search:\n    terms:\n      - danger\n      - dangerous\n      - hazmat\n      - medical\n      - radioactive\n      - toxic\n      - waste\n      - zombie\n  styles:\n    - solid\n  unicode: f780\n  voted: true\nbirthday-cake:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Birthday Cake\n  search:\n    terms:\n      - anniversary\n      - bakery\n      - candles\n      - celebration\n      - dessert\n      - frosting\n      - holiday\n      - party\n      - pastry\n  styles:\n    - solid\n  unicode: f1fd\n  voted: false\nbitbucket:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.6.0\n    - 5.8.0\n  label: Bitbucket\n  search:\n    terms:\n      - atlassian\n      - bitbucket-square\n      - git\n  styles:\n    - brands\n  unicode: f171\n  voted: false\nbitcoin:\n  changes:\n    - 5.0.0\n  label: Bitcoin\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f379\n  voted: false\nbity:\n  changes:\n    - 5.0.0\n  label: Bity\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f37a\n  voted: false\nblack-tie:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Font Awesome Black Tie\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f27e\n  voted: false\nblackberry:\n  changes:\n    - 5.0.0\n  label: BlackBerry\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f37b\n  voted: false\nblender:\n  changes:\n    - 5.0.13\n  label: Blender\n  search:\n    terms:\n      - cocktail\n      - milkshake\n      - mixer\n      - puree\n      - smoothie\n  styles:\n    - solid\n  unicode: f517\n  voted: false\nblender-phone:\n  changes:\n    - 5.4.0\n  label: Blender Phone\n  search:\n    terms:\n      - appliance\n      - cocktail\n      - communication\n      - fantasy\n      - milkshake\n      - mixer\n      - puree\n      - silly\n      - smoothie\n  styles:\n    - solid\n  unicode: f6b6\n  voted: false\nblind:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Blind\n  search:\n    terms:\n      - cane\n      - disability\n      - person\n      - sight\n  styles:\n    - solid\n  unicode: f29d\n  voted: false\nblog:\n  changes:\n    - 5.6.0\n  label: Blog\n  search:\n    terms:\n      - journal\n      - log\n      - online\n      - personal\n      - post\n      - web 2.0\n      - wordpress\n      - writing\n  styles:\n    - solid\n  unicode: f781\n  voted: true\nblogger:\n  changes:\n    - 5.0.0\n  label: Blogger\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f37c\n  voted: false\nblogger-b:\n  changes:\n    - 5.0.0\n  label: Blogger B\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f37d\n  voted: false\nbluetooth:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Bluetooth\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f293\n  voted: false\nbluetooth-b:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Bluetooth\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f294\n  voted: false\nbold:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: bold\n  search:\n    terms:\n      - emphasis\n      - format\n      - text\n  styles:\n    - solid\n  unicode: f032\n  voted: false\nbolt:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.5.0\n  label: Lightning Bolt\n  search:\n    terms:\n      - electricity\n      - lightning\n      - weather\n      - zap\n  styles:\n    - solid\n  unicode: f0e7\n  voted: false\nbomb:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Bomb\n  search:\n    terms:\n      - error\n      - explode\n      - fuse\n      - grenade\n      - warning\n  styles:\n    - solid\n  unicode: f1e2\n  voted: false\nbone:\n  changes:\n    - 5.2.0\n  label: Bone\n  search:\n    terms:\n      - calcium\n      - dog\n      - skeletal\n      - skeleton\n      - tibia\n  styles:\n    - solid\n  unicode: f5d7\n  voted: false\nbong:\n  changes:\n    - 5.1.0\n  label: Bong\n  search:\n    terms:\n      - aparatus\n      - cannabis\n      - marijuana\n      - pipe\n      - smoke\n      - smoking\n  styles:\n    - solid\n  unicode: f55c\n  voted: false\nbook:\n  changes:\n    - '1'\n    - 5.0.0\n  label: book\n  search:\n    terms:\n      - diary\n      - documentation\n      - journal\n      - library\n      - read\n  styles:\n    - solid\n  unicode: f02d\n  voted: false\nbook-dead:\n  changes:\n    - 5.4.0\n  label: Book of the Dead\n  search:\n    terms:\n      - Dungeons & Dragons\n      - crossbones\n      - d&d\n      - dark arts\n      - death\n      - dnd\n      - documentation\n      - evil\n      - fantasy\n      - halloween\n      - holiday\n      - necronomicon\n      - read\n      - skull\n      - spell\n  styles:\n    - solid\n  unicode: f6b7\n  voted: false\nbook-medical:\n  changes:\n    - 5.7.0\n  label: Medical Book\n  search:\n    terms:\n      - diary\n      - documentation\n      - health\n      - history\n      - journal\n      - library\n      - read\n      - record\n  styles:\n    - solid\n  unicode: f7e6\n  voted: false\nbook-open:\n  changes:\n    - 5.0.13\n    - 5.1.0\n    - 5.2.0\n  label: Book Open\n  search:\n    terms:\n      - flyer\n      - library\n      - notebook\n      - open book\n      - pamphlet\n      - reading\n  styles:\n    - solid\n  unicode: f518\n  voted: true\nbook-reader:\n  changes:\n    - 5.2.0\n  label: Book Reader\n  search:\n    terms:\n      - flyer\n      - library\n      - notebook\n      - open book\n      - pamphlet\n      - reading\n  styles:\n    - solid\n  unicode: f5da\n  voted: false\nbookmark:\n  changes:\n    - '1'\n    - 5.0.0\n  label: bookmark\n  search:\n    terms:\n      - favorite\n      - marker\n      - read\n      - remember\n      - save\n  styles:\n    - solid\n    - regular\n  unicode: f02e\n  voted: false\nbootstrap:\n  changes:\n    - 5.8.0\n  label: Bootstrap\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f836\nborder-all:\n  changes:\n    - 5.9.0\n  label: Border All\n  search:\n    terms:\n      - cell\n      - grid\n      - outline\n      - stroke\n      - table\n  styles:\n    - solid\n  unicode: f84c\n  voted: false\nborder-none:\n  changes:\n    - 5.9.0\n  label: Border None\n  search:\n    terms:\n      - cell\n      - grid\n      - outline\n      - stroke\n      - table\n  styles:\n    - solid\n  unicode: f850\n  voted: false\nborder-style:\n  changes:\n    - 5.9.0\n  label: Border Style\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f853\n  voted: false\nbowling-ball:\n  changes:\n    - 5.0.5\n  label: Bowling Ball\n  search:\n    terms:\n      - alley\n      - candlepin\n      - gutter\n      - lane\n      - strike\n      - tenpin\n  styles:\n    - solid\n  unicode: f436\n  voted: false\nbox:\n  changes:\n    - 5.0.7\n  label: Box\n  search:\n    terms:\n      - archive\n      - container\n      - package\n      - storage\n  styles:\n    - solid\n  unicode: f466\n  voted: false\nbox-open:\n  changes:\n    - 5.0.9\n    - 5.7.0\n  label: Box Open\n  search:\n    terms:\n      - archive\n      - container\n      - package\n      - storage\n      - unpack\n  styles:\n    - solid\n  unicode: f49e\n  voted: false\nboxes:\n  changes:\n    - 5.0.7\n  label: Boxes\n  search:\n    terms:\n      - archives\n      - inventory\n      - storage\n      - warehouse\n  styles:\n    - solid\n  unicode: f468\n  voted: false\nbraille:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Braille\n  search:\n    terms:\n      - alphabet\n      - blind\n      - dots\n      - raised\n      - vision\n  styles:\n    - solid\n  unicode: f2a1\n  voted: false\nbrain:\n  changes:\n    - 5.2.0\n    - 5.9.0\n  label: Brain\n  search:\n    terms:\n      - cerebellum\n      - gray matter\n      - intellect\n      - medulla oblongata\n      - mind\n      - noodle\n      - wit\n  styles:\n    - solid\n  unicode: f5dc\n  voted: false\nbread-slice:\n  changes:\n    - 5.7.0\n  label: Bread Slice\n  search:\n    terms:\n      - bake\n      - bakery\n      - baking\n      - dough\n      - flour\n      - gluten\n      - grain\n      - sandwich\n      - sourdough\n      - toast\n      - wheat\n      - yeast\n  styles:\n    - solid\n  unicode: f7ec\n  voted: false\nbriefcase:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.3.0\n  label: Briefcase\n  search:\n    terms:\n      - bag\n      - business\n      - luggage\n      - office\n      - work\n  styles:\n    - solid\n  unicode: f0b1\n  voted: false\nbriefcase-medical:\n  changes:\n    - 5.0.7\n  label: Medical Briefcase\n  search:\n    terms:\n      - doctor\n      - emt\n      - first aid\n      - health\n  styles:\n    - solid\n  unicode: f469\n  voted: false\nbroadcast-tower:\n  changes:\n    - 5.0.13\n  label: Broadcast Tower\n  search:\n    terms:\n      - airwaves\n      - antenna\n      - radio\n      - reception\n      - waves\n  styles:\n    - solid\n  unicode: f519\n  voted: true\nbroom:\n  changes:\n    - 5.0.13\n  label: Broom\n  search:\n    terms:\n      - clean\n      - firebolt\n      - fly\n      - halloween\n      - nimbus 2000\n      - quidditch\n      - sweep\n      - witch\n  styles:\n    - solid\n  unicode: f51a\n  voted: true\nbrush:\n  changes:\n    - 5.1.0\n  label: Brush\n  search:\n    terms:\n      - art\n      - bristles\n      - color\n      - handle\n      - paint\n  styles:\n    - solid\n  unicode: f55d\n  voted: false\nbtc:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: BTC\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f15a\n  voted: false\nbuffer:\n  changes:\n    - 5.8.0\n  label: Buffer\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f837\nbug:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Bug\n  search:\n    terms:\n      - beetle\n      - error\n      - insect\n      - report\n  styles:\n    - solid\n  unicode: f188\n  voted: false\nbuilding:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Building\n  search:\n    terms:\n      - apartment\n      - business\n      - city\n      - company\n      - office\n      - work\n  styles:\n    - solid\n    - regular\n  unicode: f1ad\n  voted: false\nbullhorn:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.3.0\n  label: bullhorn\n  search:\n    terms:\n      - announcement\n      - broadcast\n      - louder\n      - megaphone\n      - share\n  styles:\n    - solid\n  unicode: f0a1\n  voted: false\nbullseye:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.3.0\n    - 5.10.1\n  label: Bullseye\n  search:\n    terms:\n      - archery\n      - goal\n      - objective\n      - target\n  styles:\n    - solid\n  unicode: f140\n  voted: false\nburn:\n  changes:\n    - 5.0.7\n  label: Burn\n  search:\n    terms:\n      - caliente\n      - energy\n      - fire\n      - flame\n      - gas\n      - heat\n      - hot\n  styles:\n    - solid\n  unicode: f46a\n  voted: false\nburomobelexperte:\n  changes:\n    - 5.0.0\n  label: Büromöbel-Experte GmbH & Co. KG.\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f37f\n  voted: false\nbus:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.1.0\n  label: Bus\n  search:\n    terms:\n      - public transportation\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f207\n  voted: false\nbus-alt:\n  changes:\n    - 5.1.0\n  label: Bus Alt\n  search:\n    terms:\n      - mta\n      - public transportation\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f55e\n  voted: false\nbusiness-time:\n  changes:\n    - 5.3.0\n  label: Business Time\n  search:\n    terms:\n      - alarm\n      - briefcase\n      - business socks\n      - clock\n      - flight of the conchords\n      - reminder\n      - wednesday\n  styles:\n    - solid\n  unicode: f64a\n  voted: false\nbuysellads:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: BuySellAds\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f20d\n  voted: false\ncalculator:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.3.0\n  label: Calculator\n  search:\n    terms:\n      - abacus\n      - addition\n      - arithmetic\n      - counting\n      - math\n      - multiplication\n      - subtraction\n  styles:\n    - solid\n  unicode: f1ec\n  voted: false\ncalendar:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Calendar\n  search:\n    terms:\n      - calendar-o\n      - date\n      - event\n      - schedule\n      - time\n      - when\n  styles:\n    - solid\n    - regular\n  unicode: f133\n  voted: false\ncalendar-alt:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.6.0\n    - 5.7.0\n  label: Alternate Calendar\n  search:\n    terms:\n      - calendar\n      - date\n      - event\n      - schedule\n      - time\n      - when\n  styles:\n    - solid\n    - regular\n  unicode: f073\n  voted: false\ncalendar-check:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Calendar Check\n  search:\n    terms:\n      - accept\n      - agree\n      - appointment\n      - confirm\n      - correct\n      - date\n      - done\n      - event\n      - ok\n      - schedule\n      - select\n      - success\n      - tick\n      - time\n      - todo\n      - when\n  styles:\n    - solid\n    - regular\n  unicode: f274\n  voted: false\ncalendar-day:\n  changes:\n    - 5.6.0\n  label: Calendar with Day Focus\n  search:\n    terms:\n      - date\n      - detail\n      - event\n      - focus\n      - schedule\n      - single day\n      - time\n      - today\n      - when\n  styles:\n    - solid\n  unicode: f783\n  voted: true\ncalendar-minus:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Calendar Minus\n  search:\n    terms:\n      - calendar\n      - date\n      - delete\n      - event\n      - negative\n      - remove\n      - schedule\n      - time\n      - when\n  styles:\n    - solid\n    - regular\n  unicode: f272\n  voted: false\ncalendar-plus:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Calendar Plus\n  search:\n    terms:\n      - add\n      - calendar\n      - create\n      - date\n      - event\n      - new\n      - positive\n      - schedule\n      - time\n      - when\n  styles:\n    - solid\n    - regular\n  unicode: f271\n  voted: false\ncalendar-times:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Calendar Times\n  search:\n    terms:\n      - archive\n      - calendar\n      - date\n      - delete\n      - event\n      - remove\n      - schedule\n      - time\n      - when\n      - x\n  styles:\n    - solid\n    - regular\n  unicode: f273\n  voted: false\ncalendar-week:\n  changes:\n    - 5.6.0\n  label: Calendar with Week Focus\n  search:\n    terms:\n      - date\n      - detail\n      - event\n      - focus\n      - schedule\n      - single week\n      - time\n      - today\n      - when\n  styles:\n    - solid\n  unicode: f784\n  voted: true\ncamera:\n  changes:\n    - '1'\n    - 5.0.0\n  label: camera\n  search:\n    terms:\n      - image\n      - lens\n      - photo\n      - picture\n      - record\n      - shutter\n      - video\n  styles:\n    - solid\n  unicode: f030\n  voted: false\ncamera-retro:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.10.1\n  label: Retro Camera\n  search:\n    terms:\n      - image\n      - lens\n      - photo\n      - picture\n      - record\n      - shutter\n      - video\n  styles:\n    - solid\n  unicode: f083\n  voted: false\ncampground:\n  changes:\n    - 5.4.0\n  label: Campground\n  search:\n    terms:\n      - camping\n      - fall\n      - outdoors\n      - teepee\n      - tent\n      - tipi\n  styles:\n    - solid\n  unicode: f6bb\n  voted: false\ncanadian-maple-leaf:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Canadian Maple Leaf\n  search:\n    terms:\n      - canada\n      - flag\n      - flora\n      - nature\n      - plant\n  styles:\n    - brands\n  unicode: f785\ncandy-cane:\n  changes:\n    - 5.6.0\n    - 5.10.1\n  label: Candy Cane\n  search:\n    terms:\n      - candy\n      - christmas\n      - holiday\n      - mint\n      - peppermint\n      - striped\n      - xmas\n  styles:\n    - solid\n  unicode: f786\ncannabis:\n  changes:\n    - 5.1.0\n  label: Cannabis\n  search:\n    terms:\n      - bud\n      - chronic\n      - drugs\n      - endica\n      - endo\n      - ganja\n      - marijuana\n      - mary jane\n      - pot\n      - reefer\n      - sativa\n      - spliff\n      - weed\n      - whacky-tabacky\n  styles:\n    - solid\n  unicode: f55f\n  voted: false\ncapsules:\n  changes:\n    - 5.0.7\n  label: Capsules\n  search:\n    terms:\n      - drugs\n      - medicine\n      - pills\n      - prescription\n  styles:\n    - solid\n  unicode: f46b\n  voted: false\ncar:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.2.0\n  label: Car\n  search:\n    terms:\n      - auto\n      - automobile\n      - sedan\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f1b9\n  voted: false\ncar-alt:\n  changes:\n    - 5.2.0\n  label: Alternate Car\n  search:\n    terms:\n      - auto\n      - automobile\n      - sedan\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f5de\n  voted: false\ncar-battery:\n  changes:\n    - 5.2.0\n  label: Car Battery\n  search:\n    terms:\n      - auto\n      - electric\n      - mechanic\n      - power\n  styles:\n    - solid\n  unicode: f5df\n  voted: false\ncar-crash:\n  changes:\n    - 5.2.0\n  label: Car Crash\n  search:\n    terms:\n      - accident\n      - auto\n      - automobile\n      - insurance\n      - sedan\n      - transportation\n      - vehicle\n      - wreck\n  styles:\n    - solid\n  unicode: f5e1\n  voted: false\ncar-side:\n  changes:\n    - 5.2.0\n  label: Car Side\n  search:\n    terms:\n      - auto\n      - automobile\n      - sedan\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f5e4\n  voted: false\ncaret-down:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Caret Down\n  search:\n    terms:\n      - arrow\n      - dropdown\n      - expand\n      - menu\n      - more\n      - triangle\n  styles:\n    - solid\n  unicode: f0d7\n  voted: false\ncaret-left:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Caret Left\n  search:\n    terms:\n      - arrow\n      - back\n      - previous\n      - triangle\n  styles:\n    - solid\n  unicode: f0d9\n  voted: false\ncaret-right:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Caret Right\n  search:\n    terms:\n      - arrow\n      - forward\n      - next\n      - triangle\n  styles:\n    - solid\n  unicode: f0da\n  voted: false\ncaret-square-down:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Caret Square Down\n  search:\n    terms:\n      - arrow\n      - caret-square-o-down\n      - dropdown\n      - expand\n      - menu\n      - more\n      - triangle\n  styles:\n    - solid\n    - regular\n  unicode: f150\n  voted: false\ncaret-square-left:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Caret Square Left\n  search:\n    terms:\n      - arrow\n      - back\n      - caret-square-o-left\n      - previous\n      - triangle\n  styles:\n    - solid\n    - regular\n  unicode: f191\n  voted: false\ncaret-square-right:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Caret Square Right\n  search:\n    terms:\n      - arrow\n      - caret-square-o-right\n      - forward\n      - next\n      - triangle\n  styles:\n    - solid\n    - regular\n  unicode: f152\n  voted: false\ncaret-square-up:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Caret Square Up\n  search:\n    terms:\n      - arrow\n      - caret-square-o-up\n      - collapse\n      - triangle\n      - upload\n  styles:\n    - solid\n    - regular\n  unicode: f151\n  voted: false\ncaret-up:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Caret Up\n  search:\n    terms:\n      - arrow\n      - collapse\n      - triangle\n  styles:\n    - solid\n  unicode: f0d8\n  voted: false\ncarrot:\n  changes:\n    - 5.6.0\n    - 5.10.1\n  label: Carrot\n  search:\n    terms:\n      - bugs bunny\n      - orange\n      - vegan\n      - vegetable\n  styles:\n    - solid\n  unicode: f787\ncart-arrow-down:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Shopping Cart Arrow Down\n  search:\n    terms:\n      - download\n      - save\n      - shopping\n  styles:\n    - solid\n  unicode: f218\n  voted: false\ncart-plus:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Add to Shopping Cart\n  search:\n    terms:\n      - add\n      - create\n      - new\n      - positive\n      - shopping\n  styles:\n    - solid\n  unicode: f217\n  voted: false\ncash-register:\n  changes:\n    - 5.6.0\n  label: Cash Register\n  search:\n    terms:\n      - buy\n      - cha-ching\n      - change\n      - checkout\n      - commerce\n      - leaerboard\n      - machine\n      - pay\n      - payment\n      - purchase\n      - store\n  styles:\n    - solid\n  unicode: f788\n  voted: true\ncat:\n  changes:\n    - 5.4.0\n    - 5.10.1\n  label: Cat\n  search:\n    terms:\n      - feline\n      - halloween\n      - holiday\n      - kitten\n      - kitty\n      - meow\n      - pet\n  styles:\n    - solid\n  unicode: f6be\n  voted: true\ncc-amazon-pay:\n  changes:\n    - 5.0.2\n  label: Amazon Pay Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42d\n  voted: false\ncc-amex:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.7.0\n  label: American Express Credit Card\n  search:\n    terms:\n      - amex\n  styles:\n    - brands\n  unicode: f1f3\n  voted: false\ncc-apple-pay:\n  changes:\n    - 5.0.0\n  label: Apple Pay Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f416\n  voted: false\ncc-diners-club:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Diner's Club Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f24c\n  voted: false\ncc-discover:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Discover Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1f2\n  voted: false\ncc-jcb:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: JCB Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f24b\n  voted: false\ncc-mastercard:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: MasterCard Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1f1\n  voted: false\ncc-paypal:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Paypal Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1f4\n  voted: false\ncc-stripe:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Stripe Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1f5\n  voted: false\ncc-visa:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Visa Credit Card\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1f0\n  voted: false\ncentercode:\n  changes:\n    - 5.0.0\n  label: Centercode\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f380\n  voted: false\ncentos:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Centos\n  search:\n    terms:\n      - linux\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f789\n  voted: true\ncertificate:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: certificate\n  search:\n    terms:\n      - badge\n      - star\n      - verified\n  styles:\n    - solid\n  unicode: f0a3\n  voted: false\nchair:\n  changes:\n    - 5.4.0\n  label: Chair\n  search:\n    terms:\n      - furniture\n      - seat\n      - sit\n  styles:\n    - solid\n  unicode: f6c0\n  voted: true\nchalkboard:\n  changes:\n    - 5.0.13\n  label: Chalkboard\n  search:\n    terms:\n      - blackboard\n      - learning\n      - school\n      - teaching\n      - whiteboard\n      - writing\n  styles:\n    - solid\n  unicode: f51b\n  voted: false\nchalkboard-teacher:\n  changes:\n    - 5.0.13\n  label: Chalkboard Teacher\n  search:\n    terms:\n      - blackboard\n      - instructor\n      - learning\n      - professor\n      - school\n      - whiteboard\n      - writing\n  styles:\n    - solid\n  unicode: f51c\n  voted: false\ncharging-station:\n  changes:\n    - 5.2.0\n    - 5.10.1\n  label: Charging Station\n  search:\n    terms:\n      - electric\n      - ev\n      - tesla\n      - vehicle\n  styles:\n    - solid\n  unicode: f5e7\n  voted: false\nchart-area:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Area Chart\n  search:\n    terms:\n      - analytics\n      - area\n      - chart\n      - graph\n  styles:\n    - solid\n  unicode: f1fe\n  voted: false\nchart-bar:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n  label: Bar Chart\n  search:\n    terms:\n      - analytics\n      - bar\n      - chart\n      - graph\n  styles:\n    - solid\n    - regular\n  unicode: f080\n  voted: false\nchart-line:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.3.0\n  label: Line Chart\n  search:\n    terms:\n      - activity\n      - analytics\n      - chart\n      - dashboard\n      - gain\n      - graph\n      - increase\n      - line\n  styles:\n    - solid\n  unicode: f201\n  voted: false\nchart-pie:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.3.0\n  label: Pie Chart\n  search:\n    terms:\n      - analytics\n      - chart\n      - diagram\n      - graph\n      - pie\n  styles:\n    - solid\n  unicode: f200\n  voted: false\ncheck:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Check\n  search:\n    terms:\n      - accept\n      - agree\n      - checkmark\n      - confirm\n      - correct\n      - done\n      - notice\n      - notification\n      - notify\n      - ok\n      - select\n      - success\n      - tick\n      - todo\n      - 'yes'\n  styles:\n    - solid\n  unicode: f00c\n  voted: false\ncheck-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Check Circle\n  search:\n    terms:\n      - accept\n      - agree\n      - confirm\n      - correct\n      - done\n      - ok\n      - select\n      - success\n      - tick\n      - todo\n      - 'yes'\n  styles:\n    - solid\n    - regular\n  unicode: f058\n  voted: false\ncheck-double:\n  changes:\n    - 5.1.0\n    - 5.8.2\n  label: Double Check\n  search:\n    terms:\n      - accept\n      - agree\n      - checkmark\n      - confirm\n      - correct\n      - done\n      - notice\n      - notification\n      - notify\n      - ok\n      - select\n      - success\n      - tick\n      - todo\n  styles:\n    - solid\n  unicode: f560\n  voted: true\ncheck-square:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Check Square\n  search:\n    terms:\n      - accept\n      - agree\n      - checkmark\n      - confirm\n      - correct\n      - done\n      - ok\n      - select\n      - success\n      - tick\n      - todo\n      - 'yes'\n  styles:\n    - solid\n    - regular\n  unicode: f14a\n  voted: false\ncheese:\n  changes:\n    - 5.7.0\n  label: Cheese\n  search:\n    terms:\n      - cheddar\n      - curd\n      - gouda\n      - melt\n      - parmesan\n      - sandwich\n      - swiss\n      - wedge\n  styles:\n    - solid\n  unicode: f7ef\n  voted: false\nchess:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess\n  search:\n    terms:\n      - board\n      - castle\n      - checkmate\n      - game\n      - king\n      - rook\n      - strategy\n      - tournament\n  styles:\n    - solid\n  unicode: f439\n  voted: false\nchess-bishop:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess Bishop\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f43a\n  voted: false\nchess-board:\n  changes:\n    - 5.0.5\n    - 5.7.0\n    - 5.9.0\n  label: Chess Board\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f43c\n  voted: false\nchess-king:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess King\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f43f\n  voted: false\nchess-knight:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess Knight\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - horse\n      - strategy\n  styles:\n    - solid\n  unicode: f441\n  voted: false\nchess-pawn:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess Pawn\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f443\n  voted: false\nchess-queen:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess Queen\n  search:\n    terms:\n      - board\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f445\n  voted: false\nchess-rook:\n  changes:\n    - 5.0.5\n    - 5.9.0\n  label: Chess Rook\n  search:\n    terms:\n      - board\n      - castle\n      - checkmate\n      - game\n      - strategy\n  styles:\n    - solid\n  unicode: f447\n  voted: false\nchevron-circle-down:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Chevron Circle Down\n  search:\n    terms:\n      - arrow\n      - download\n      - dropdown\n      - menu\n      - more\n  styles:\n    - solid\n  unicode: f13a\n  voted: false\nchevron-circle-left:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Chevron Circle Left\n  search:\n    terms:\n      - arrow\n      - back\n      - previous\n  styles:\n    - solid\n  unicode: f137\n  voted: false\nchevron-circle-right:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Chevron Circle Right\n  search:\n    terms:\n      - arrow\n      - forward\n      - next\n  styles:\n    - solid\n  unicode: f138\n  voted: false\nchevron-circle-up:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Chevron Circle Up\n  search:\n    terms:\n      - arrow\n      - collapse\n      - upload\n  styles:\n    - solid\n  unicode: f139\n  voted: false\nchevron-down:\n  changes:\n    - '1'\n    - 5.0.0\n  label: chevron-down\n  search:\n    terms:\n      - arrow\n      - download\n      - expand\n  styles:\n    - solid\n  unicode: f078\n  voted: false\nchevron-left:\n  changes:\n    - '1'\n    - 5.0.0\n  label: chevron-left\n  search:\n    terms:\n      - arrow\n      - back\n      - bracket\n      - previous\n  styles:\n    - solid\n  unicode: f053\n  voted: false\nchevron-right:\n  changes:\n    - '1'\n    - 5.0.0\n  label: chevron-right\n  search:\n    terms:\n      - arrow\n      - bracket\n      - forward\n      - next\n  styles:\n    - solid\n  unicode: f054\n  voted: false\nchevron-up:\n  changes:\n    - '1'\n    - 5.0.0\n  label: chevron-up\n  search:\n    terms:\n      - arrow\n      - collapse\n      - upload\n  styles:\n    - solid\n  unicode: f077\n  voted: false\nchild:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Child\n  search:\n    terms:\n      - boy\n      - girl\n      - kid\n      - toddler\n      - young\n  styles:\n    - solid\n  unicode: f1ae\n  voted: false\nchrome:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Chrome\n  search:\n    terms:\n      - browser\n  styles:\n    - brands\n  unicode: f268\n  voted: false\nchromecast:\n  changes:\n    - 5.8.0\n  label: Chromecast\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f838\nchurch:\n  changes:\n    - 5.0.13\n  label: Church\n  search:\n    terms:\n      - building\n      - cathedral\n      - chapel\n      - community\n      - religion\n  styles:\n    - solid\n  unicode: f51d\n  voted: true\ncircle:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.10.1\n  label: Circle\n  search:\n    terms:\n      - circle-thin\n      - diameter\n      - dot\n      - ellipse\n      - notification\n      - round\n  styles:\n    - solid\n    - regular\n  unicode: f111\n  voted: false\ncircle-notch:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Circle Notched\n  search:\n    terms:\n      - circle-o-notch\n      - diameter\n      - dot\n      - ellipse\n      - round\n      - spinner\n  styles:\n    - solid\n  unicode: f1ce\n  voted: false\ncity:\n  changes:\n    - 5.3.0\n  label: City\n  search:\n    terms:\n      - buildings\n      - busy\n      - skyscrapers\n      - urban\n      - windows\n  styles:\n    - solid\n  unicode: f64f\n  voted: false\nclinic-medical:\n  changes:\n    - 5.7.0\n  label: Medical Clinic\n  search:\n    terms:\n      - doctor\n      - general practitioner\n      - hospital\n      - infirmary\n      - medicine\n      - office\n      - outpatient\n  styles:\n    - solid\n  unicode: f7f2\n  voted: false\nclipboard:\n  changes:\n    - 5.0.0\n  label: Clipboard\n  search:\n    terms:\n      - copy\n      - notes\n      - paste\n      - record\n  styles:\n    - solid\n    - regular\n  unicode: f328\n  voted: false\nclipboard-check:\n  changes:\n    - 5.0.7\n  label: Clipboard with Check\n  search:\n    terms:\n      - accept\n      - agree\n      - confirm\n      - done\n      - ok\n      - select\n      - success\n      - tick\n      - todo\n      - 'yes'\n  styles:\n    - solid\n  unicode: f46c\n  voted: false\nclipboard-list:\n  changes:\n    - 5.0.7\n  label: Clipboard List\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - intinerary\n      - ol\n      - schedule\n      - tick\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f46d\n  voted: false\nclock:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Clock\n  search:\n    terms:\n      - date\n      - late\n      - schedule\n      - time\n      - timer\n      - timestamp\n      - watch\n  styles:\n    - solid\n    - regular\n  unicode: f017\n  voted: false\nclone:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Clone\n  search:\n    terms:\n      - arrange\n      - copy\n      - duplicate\n      - paste\n  styles:\n    - solid\n    - regular\n  unicode: f24d\n  voted: false\nclosed-captioning:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.10.1\n  label: Closed Captioning\n  search:\n    terms:\n      - cc\n      - deaf\n      - hearing\n      - subtitle\n      - subtitling\n      - text\n      - video\n  styles:\n    - solid\n    - regular\n  unicode: f20a\n  voted: false\ncloud:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.11\n  label: Cloud\n  search:\n    terms:\n      - atmosphere\n      - fog\n      - overcast\n      - save\n      - upload\n      - weather\n  styles:\n    - solid\n  unicode: f0c2\n  voted: false\ncloud-download-alt:\n  changes:\n    - 5.0.0\n    - 5.0.11\n  label: Alternate Cloud Download\n  search:\n    terms:\n      - download\n      - export\n      - save\n  styles:\n    - solid\n  unicode: f381\n  voted: false\ncloud-meatball:\n  changes:\n    - 5.5.0\n  label: Cloud with (a chance of) Meatball\n  search:\n    terms:\n      - FLDSMDFR\n      - food\n      - spaghetti\n      - storm\n  styles:\n    - solid\n  unicode: f73b\n  voted: false\ncloud-moon:\n  changes:\n    - 5.4.0\n    - 5.5.0\n  label: Cloud with Moon\n  search:\n    terms:\n      - crescent\n      - evening\n      - lunar\n      - night\n      - partly cloudy\n      - sky\n  styles:\n    - solid\n  unicode: f6c3\n  voted: false\ncloud-moon-rain:\n  changes:\n    - 5.5.0\n  label: Cloud with Moon and Rain\n  search:\n    terms:\n      - crescent\n      - evening\n      - lunar\n      - night\n      - partly cloudy\n      - precipitation\n      - rain\n      - sky\n      - storm\n  styles:\n    - solid\n  unicode: f73c\n  voted: false\ncloud-rain:\n  changes:\n    - 5.5.0\n  label: Cloud with Rain\n  search:\n    terms:\n      - precipitation\n      - rain\n      - sky\n      - storm\n  styles:\n    - solid\n  unicode: f73d\n  voted: false\ncloud-showers-heavy:\n  changes:\n    - 5.5.0\n  label: Cloud with Heavy Showers\n  search:\n    terms:\n      - precipitation\n      - rain\n      - sky\n      - storm\n  styles:\n    - solid\n  unicode: f740\n  voted: false\ncloud-sun:\n  changes:\n    - 5.4.0\n    - 5.5.0\n  label: Cloud with Sun\n  search:\n    terms:\n      - clear\n      - day\n      - daytime\n      - fall\n      - outdoors\n      - overcast\n      - partly cloudy\n  styles:\n    - solid\n  unicode: f6c4\n  voted: false\ncloud-sun-rain:\n  changes:\n    - 5.5.0\n  label: Cloud with Sun and Rain\n  search:\n    terms:\n      - day\n      - overcast\n      - precipitation\n      - storm\n      - summer\n      - sunshower\n  styles:\n    - solid\n  unicode: f743\n  voted: false\ncloud-upload-alt:\n  changes:\n    - 5.0.0\n    - 5.0.11\n  label: Alternate Cloud Upload\n  search:\n    terms:\n      - cloud-upload\n      - import\n      - save\n      - upload\n  styles:\n    - solid\n  unicode: f382\n  voted: false\ncloudscale:\n  changes:\n    - 5.0.0\n  label: cloudscale.ch\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f383\n  voted: false\ncloudsmith:\n  changes:\n    - 5.0.0\n  label: Cloudsmith\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f384\n  voted: false\ncloudversify:\n  changes:\n    - 5.0.0\n  label: cloudversify\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f385\n  voted: false\ncocktail:\n  changes:\n    - 5.1.0\n    - 5.10.1\n  label: Cocktail\n  search:\n    terms:\n      - alcohol\n      - beverage\n      - drink\n      - gin\n      - glass\n      - margarita\n      - martini\n      - vodka\n  styles:\n    - solid\n  unicode: f561\n  voted: false\ncode:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Code\n  search:\n    terms:\n      - brackets\n      - code\n      - development\n      - html\n  styles:\n    - solid\n  unicode: f121\n  voted: false\ncode-branch:\n  changes:\n    - 5.0.0\n  label: Code Branch\n  search:\n    terms:\n      - branch\n      - code-fork\n      - fork\n      - git\n      - github\n      - rebase\n      - svn\n      - vcs\n      - version\n  styles:\n    - solid\n  unicode: f126\n  voted: false\ncodepen:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Codepen\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1cb\n  voted: false\ncodiepie:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Codie Pie\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f284\n  voted: false\ncoffee:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Coffee\n  search:\n    terms:\n      - beverage\n      - breakfast\n      - cafe\n      - drink\n      - fall\n      - morning\n      - mug\n      - seasonal\n      - tea\n  styles:\n    - solid\n  unicode: f0f4\n  voted: false\ncog:\n  changes:\n    - '1'\n    - 5.0.0\n  label: cog\n  search:\n    terms:\n      - gear\n      - mechanical\n      - settings\n      - sprocket\n      - wheel\n  styles:\n    - solid\n  unicode: f013\n  voted: false\ncogs:\n  changes:\n    - '1'\n    - 5.0.0\n  label: cogs\n  search:\n    terms:\n      - gears\n      - mechanical\n      - settings\n      - sprocket\n      - wheel\n  styles:\n    - solid\n  unicode: f085\n  voted: false\ncoins:\n  changes:\n    - 5.0.13\n  label: Coins\n  search:\n    terms:\n      - currency\n      - dime\n      - financial\n      - gold\n      - money\n      - penny\n  styles:\n    - solid\n  unicode: f51e\n  voted: true\ncolumns:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Columns\n  search:\n    terms:\n      - browser\n      - dashboard\n      - organize\n      - panes\n      - split\n  styles:\n    - solid\n  unicode: f0db\n  voted: false\ncomment:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n    - 5.10.1\n  label: comment\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - note\n      - notification\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n    - regular\n  unicode: f075\n  voted: false\ncomment-alt:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Alternate Comment\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - note\n      - notification\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n    - regular\n  unicode: f27a\n  voted: false\ncomment-dollar:\n  changes:\n    - 5.3.0\n  label: Comment Dollar\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - money\n      - note\n      - notification\n      - pay\n      - sms\n      - speech\n      - spend\n      - texting\n      - transfer\n  styles:\n    - solid\n  unicode: f651\n  voted: false\ncomment-dots:\n  changes:\n    - 5.0.9\n  label: Comment Dots\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - more\n      - note\n      - notification\n      - reply\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n    - regular\n  unicode: f4ad\n  voted: false\ncomment-medical:\n  changes:\n    - 5.7.0\n  label: Alternate Medical Chat\n  search:\n    terms:\n      - advice\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - diagnose\n      - feedback\n      - message\n      - note\n      - notification\n      - prescription\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n  unicode: f7f5\n  voted: false\ncomment-slash:\n  changes:\n    - 5.0.9\n  label: Comment Slash\n  search:\n    terms:\n      - bubble\n      - cancel\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - mute\n      - note\n      - notification\n      - quiet\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n  unicode: f4b3\n  voted: false\ncomments:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n  label: comments\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - note\n      - notification\n      - sms\n      - speech\n      - texting\n  styles:\n    - solid\n    - regular\n  unicode: f086\n  voted: false\ncomments-dollar:\n  changes:\n    - 5.3.0\n  label: Comments Dollar\n  search:\n    terms:\n      - bubble\n      - chat\n      - commenting\n      - conversation\n      - feedback\n      - message\n      - money\n      - note\n      - notification\n      - pay\n      - sms\n      - speech\n      - spend\n      - texting\n      - transfer\n  styles:\n    - solid\n  unicode: f653\n  voted: false\ncompact-disc:\n  changes:\n    - 5.0.13\n    - 5.10.1\n  label: Compact Disc\n  search:\n    terms:\n      - album\n      - bluray\n      - cd\n      - disc\n      - dvd\n      - media\n      - movie\n      - music\n      - record\n      - video\n      - vinyl\n  styles:\n    - solid\n  unicode: f51f\n  voted: true\ncompass:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.2.0\n  label: Compass\n  search:\n    terms:\n      - directions\n      - directory\n      - location\n      - menu\n      - navigation\n      - safari\n      - travel\n  styles:\n    - solid\n    - regular\n  unicode: f14e\n  voted: false\ncompress:\n  changes:\n    - 5.0.0\n  label: Compress\n  search:\n    terms:\n      - collapse\n      - fullscreen\n      - minimize\n      - move\n      - resize\n      - shrink\n      - smaller\n  styles:\n    - solid\n  unicode: f066\n  voted: false\ncompress-arrows-alt:\n  changes:\n    - 5.6.0\n  label: Alternate Compress Arrows\n  search:\n    terms:\n      - collapse\n      - fullscreen\n      - minimize\n      - move\n      - resize\n      - shrink\n      - smaller\n  styles:\n    - solid\n  unicode: f78c\n  voted: true\nconcierge-bell:\n  changes:\n    - 5.1.0\n  label: Concierge Bell\n  search:\n    terms:\n      - attention\n      - hotel\n      - receptionist\n      - service\n      - support\n  styles:\n    - solid\n  unicode: f562\n  voted: false\nconfluence:\n  changes:\n    - 5.6.0\n  label: Confluence\n  search:\n    terms:\n      - atlassian\n  styles:\n    - brands\n  unicode: f78d\n  voted: true\nconnectdevelop:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Connect Develop\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f20e\n  voted: false\ncontao:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Contao\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f26d\n  voted: false\ncookie:\n  changes:\n    - 5.1.0\n  label: Cookie\n  search:\n    terms:\n      - baked good\n      - chips\n      - chocolate\n      - eat\n      - snack\n      - sweet\n      - treat\n  styles:\n    - solid\n  unicode: f563\n  voted: true\ncookie-bite:\n  changes:\n    - 5.1.0\n  label: Cookie Bite\n  search:\n    terms:\n      - baked good\n      - bitten\n      - chips\n      - chocolate\n      - eat\n      - snack\n      - sweet\n      - treat\n  styles:\n    - solid\n  unicode: f564\n  voted: true\ncopy:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Copy\n  search:\n    terms:\n      - clone\n      - duplicate\n      - file\n      - files-o\n      - paper\n      - paste\n  styles:\n    - solid\n    - regular\n  unicode: f0c5\n  voted: false\ncopyright:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.10.1\n  label: Copyright\n  search:\n    terms:\n      - brand\n      - mark\n      - register\n      - trademark\n  styles:\n    - solid\n    - regular\n  unicode: f1f9\n  voted: false\ncotton-bureau:\n  changes:\n    - 5.10.0\n  label: Cotton Bureau\n  search:\n    terms:\n      - clothing\n      - t-shirts\n      - tshirts\n  styles:\n    - brands\n  unicode: f89e\ncouch:\n  changes:\n    - 5.0.9\n  label: Couch\n  search:\n    terms:\n      - chair\n      - cushion\n      - furniture\n      - relax\n      - sofa\n  styles:\n    - solid\n  unicode: f4b8\n  voted: false\ncpanel:\n  changes:\n    - 5.0.0\n  label: cPanel\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f388\n  voted: false\ncreative-commons:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.0.11\n    - 5.1.0\n  label: Creative Commons\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f25e\n  voted: false\ncreative-commons-by:\n  changes:\n    - 5.0.11\n  label: Creative Commons Attribution\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4e7\n  voted: false\ncreative-commons-nc:\n  changes:\n    - 5.0.11\n  label: Creative Commons Noncommercial\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4e8\n  voted: false\ncreative-commons-nc-eu:\n  changes:\n    - 5.0.11\n  label: Creative Commons Noncommercial (Euro Sign)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4e9\n  voted: false\ncreative-commons-nc-jp:\n  changes:\n    - 5.0.11\n  label: Creative Commons Noncommercial (Yen Sign)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4ea\n  voted: false\ncreative-commons-nd:\n  changes:\n    - 5.0.11\n  label: Creative Commons No Derivative Works\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4eb\n  voted: false\ncreative-commons-pd:\n  changes:\n    - 5.0.11\n  label: Creative Commons Public Domain\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4ec\n  voted: false\ncreative-commons-pd-alt:\n  changes:\n    - 5.0.11\n  label: Alternate Creative Commons Public Domain\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4ed\n  voted: false\ncreative-commons-remix:\n  changes:\n    - 5.0.11\n  label: Creative Commons Remix\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4ee\n  voted: false\ncreative-commons-sa:\n  changes:\n    - 5.0.11\n  label: Creative Commons Share Alike\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4ef\n  voted: false\ncreative-commons-sampling:\n  changes:\n    - 5.0.11\n  label: Creative Commons Sampling\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f0\n  voted: false\ncreative-commons-sampling-plus:\n  changes:\n    - 5.0.11\n  label: Creative Commons Sampling +\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f1\n  voted: false\ncreative-commons-share:\n  changes:\n    - 5.0.11\n  label: Creative Commons Share\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f2\n  voted: false\ncreative-commons-zero:\n  changes:\n    - 5.0.11\n    - 5.4.0\n  label: Creative Commons CC0\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f3\n  voted: false\ncredit-card:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Credit Card\n  search:\n    terms:\n      - buy\n      - checkout\n      - credit-card-alt\n      - debit\n      - money\n      - payment\n      - purchase\n  styles:\n    - solid\n    - regular\n  unicode: f09d\n  voted: false\ncritical-role:\n  changes:\n    - 5.4.0\n    - 5.8.0\n  label: Critical Role\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - game\n      - gaming\n      - tabletop\n  styles:\n    - brands\n  unicode: f6c9\n  voted: false\ncrop:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.1.0\n  label: crop\n  search:\n    terms:\n      - design\n      - frame\n      - mask\n      - resize\n      - shrink\n  styles:\n    - solid\n  unicode: f125\n  voted: false\ncrop-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Crop\n  search:\n    terms:\n      - design\n      - frame\n      - mask\n      - resize\n      - shrink\n  styles:\n    - solid\n  unicode: f565\n  voted: false\ncross:\n  changes:\n    - 5.3.0\n    - 5.10.1\n  label: Cross\n  search:\n    terms:\n      - catholicism\n      - christianity\n      - church\n      - jesus\n  styles:\n    - solid\n  unicode: f654\n  voted: false\ncrosshairs:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Crosshairs\n  search:\n    terms:\n      - aim\n      - bullseye\n      - gpd\n      - picker\n      - position\n  styles:\n    - solid\n  unicode: f05b\n  voted: false\ncrow:\n  changes:\n    - 5.0.13\n  label: Crow\n  search:\n    terms:\n      - bird\n      - bullfrog\n      - fauna\n      - halloween\n      - holiday\n      - toad\n  styles:\n    - solid\n  unicode: f520\n  voted: false\ncrown:\n  changes:\n    - 5.0.13\n  label: Crown\n  search:\n    terms:\n      - award\n      - favorite\n      - king\n      - queen\n      - royal\n      - tiara\n  styles:\n    - solid\n  unicode: f521\n  voted: true\ncrutch:\n  changes:\n    - 5.7.0\n  label: Crutch\n  search:\n    terms:\n      - cane\n      - injury\n      - mobility\n      - wheelchair\n  styles:\n    - solid\n  unicode: f7f7\n  voted: false\ncss3:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: CSS 3 Logo\n  search:\n    terms:\n      - code\n  styles:\n    - brands\n  unicode: f13c\n  voted: false\ncss3-alt:\n  changes:\n    - 5.0.0\n  label: Alternate CSS3 Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f38b\n  voted: false\ncube:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Cube\n  search:\n    terms:\n      - 3d\n      - block\n      - dice\n      - package\n      - square\n      - tesseract\n  styles:\n    - solid\n  unicode: f1b2\n  voted: false\ncubes:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Cubes\n  search:\n    terms:\n      - 3d\n      - block\n      - dice\n      - package\n      - pyramid\n      - square\n      - stack\n      - tesseract\n  styles:\n    - solid\n  unicode: f1b3\n  voted: false\ncut:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.1.0\n  label: Cut\n  search:\n    terms:\n      - clip\n      - scissors\n      - snip\n  styles:\n    - solid\n  unicode: f0c4\n  voted: false\ncuttlefish:\n  changes:\n    - 5.0.0\n  label: Cuttlefish\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f38c\n  voted: false\nd-and-d:\n  changes:\n    - 5.0.0\n  label: Dungeons & Dragons\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f38d\n  voted: false\nd-and-d-beyond:\n  changes:\n    - 5.4.0\n  label: D&D Beyond\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - gaming\n      - tabletop\n  styles:\n    - brands\n  unicode: f6ca\n  voted: false\ndashcube:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.3\n  label: DashCube\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f210\n  voted: false\ndatabase:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Database\n  search:\n    terms:\n      - computer\n      - development\n      - directory\n      - memory\n      - storage\n  styles:\n    - solid\n  unicode: f1c0\n  voted: false\ndeaf:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Deaf\n  search:\n    terms:\n      - ear\n      - hearing\n      - sign language\n  styles:\n    - solid\n  unicode: f2a4\n  voted: false\ndelicious:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.7.0\n  label: Delicious\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a5\n  voted: false\ndemocrat:\n  changes:\n    - 5.5.0\n  label: Democrat\n  search:\n    terms:\n      - american\n      - democratic party\n      - donkey\n      - election\n      - left\n      - left-wing\n      - liberal\n      - politics\n      - usa\n  styles:\n    - solid\n  unicode: f747\n  voted: false\ndeploydog:\n  changes:\n    - 5.0.0\n  label: deploy.dog\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f38e\n  voted: false\ndeskpro:\n  changes:\n    - 5.0.0\n  label: Deskpro\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f38f\n  voted: false\ndesktop:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Desktop\n  search:\n    terms:\n      - computer\n      - cpu\n      - demo\n      - desktop\n      - device\n      - imac\n      - machine\n      - monitor\n      - pc\n      - screen\n  styles:\n    - solid\n  unicode: f108\n  voted: false\ndev:\n  changes:\n    - 5.4.0\n  label: DEV\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f6cc\n  voted: true\ndeviantart:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: deviantART\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1bd\n  voted: false\ndharmachakra:\n  changes:\n    - 5.3.0\n  label: Dharmachakra\n  search:\n    terms:\n      - buddhism\n      - buddhist\n      - wheel of dharma\n  styles:\n    - solid\n  unicode: f655\n  voted: false\ndhl:\n  changes:\n    - 5.6.0\n  label: DHL\n  search:\n    terms:\n      - Dalsey\n      - Hillblom and Lynn\n      - german\n      - package\n      - shipping\n  styles:\n    - brands\n  unicode: f790\ndiagnoses:\n  changes:\n    - 5.0.7\n    - 5.7.0\n  label: Diagnoses\n  search:\n    terms:\n      - analyze\n      - detect\n      - diagnosis\n      - examine\n      - medicine\n  styles:\n    - solid\n  unicode: f470\n  voted: false\ndiaspora:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Diaspora\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f791\n  voted: true\ndice:\n  changes:\n    - 5.0.13\n  label: Dice\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f522\n  voted: true\ndice-d20:\n  changes:\n    - 5.4.0\n  label: Dice D20\n  search:\n    terms:\n      - Dungeons & Dragons\n      - chance\n      - d&d\n      - dnd\n      - fantasy\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f6cf\n  voted: true\ndice-d6:\n  changes:\n    - 5.4.0\n  label: Dice D6\n  search:\n    terms:\n      - Dungeons & Dragons\n      - chance\n      - d&d\n      - dnd\n      - fantasy\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f6d1\n  voted: false\ndice-five:\n  changes:\n    - 5.0.13\n  label: Dice Five\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f523\n  voted: true\ndice-four:\n  changes:\n    - 5.0.13\n  label: Dice Four\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f524\n  voted: true\ndice-one:\n  changes:\n    - 5.0.13\n  label: Dice One\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f525\n  voted: true\ndice-six:\n  changes:\n    - 5.0.13\n  label: Dice Six\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f526\n  voted: true\ndice-three:\n  changes:\n    - 5.0.13\n  label: Dice Three\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f527\n  voted: true\ndice-two:\n  changes:\n    - 5.0.13\n  label: Dice Two\n  search:\n    terms:\n      - chance\n      - gambling\n      - game\n      - roll\n  styles:\n    - solid\n  unicode: f528\n  voted: true\ndigg:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Digg Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a6\n  voted: false\ndigital-ocean:\n  changes:\n    - 5.0.0\n    - 5.7.0\n  label: Digital Ocean\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f391\n  voted: false\ndigital-tachograph:\n  changes:\n    - 5.1.0\n  label: Digital Tachograph\n  search:\n    terms:\n      - data\n      - distance\n      - speed\n      - tachometer\n  styles:\n    - solid\n  unicode: f566\n  voted: true\ndirections:\n  changes:\n    - 5.2.0\n  label: Directions\n  search:\n    terms:\n      - map\n      - navigation\n      - sign\n      - turn\n  styles:\n    - solid\n  unicode: f5eb\n  voted: false\ndiscord:\n  changes:\n    - 5.0.0\n  label: Discord\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f392\n  voted: false\ndiscourse:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Discourse\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f393\n  voted: false\ndivide:\n  changes:\n    - 5.0.13\n  label: Divide\n  search:\n    terms:\n      - arithmetic\n      - calculus\n      - division\n      - math\n  styles:\n    - solid\n  unicode: f529\n  voted: false\ndizzy:\n  changes:\n    - 5.1.0\n  label: Dizzy Face\n  search:\n    terms:\n      - dazed\n      - dead\n      - disapprove\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f567\n  voted: false\ndna:\n  changes:\n    - 5.0.7\n    - 5.0.10\n  label: DNA\n  search:\n    terms:\n      - double helix\n      - genetic\n      - helix\n      - molecule\n      - protein\n  styles:\n    - solid\n  unicode: f471\n  voted: false\ndochub:\n  changes:\n    - 5.0.0\n  label: DocHub\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f394\n  voted: false\ndocker:\n  changes:\n    - 5.0.0\n  label: Docker\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f395\n  voted: false\ndog:\n  changes:\n    - 5.4.0\n  label: Dog\n  search:\n    terms:\n      - animal\n      - canine\n      - fauna\n      - mammal\n      - pet\n      - pooch\n      - puppy\n      - woof\n  styles:\n    - solid\n  unicode: f6d3\n  voted: false\ndollar-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.0.9\n  label: Dollar Sign\n  search:\n    terms:\n      - $\n      - cost\n      - dollar-sign\n      - money\n      - price\n      - usd\n  styles:\n    - solid\n  unicode: f155\n  voted: false\ndolly:\n  changes:\n    - 5.0.7\n  label: Dolly\n  search:\n    terms:\n      - carry\n      - shipping\n      - transport\n  styles:\n    - solid\n  unicode: f472\n  voted: false\ndolly-flatbed:\n  changes:\n    - 5.0.7\n  label: Dolly Flatbed\n  search:\n    terms:\n      - carry\n      - inventory\n      - shipping\n      - transport\n  styles:\n    - solid\n  unicode: f474\n  voted: false\ndonate:\n  changes:\n    - 5.0.9\n  label: Donate\n  search:\n    terms:\n      - contribute\n      - generosity\n      - gift\n      - give\n  styles:\n    - solid\n  unicode: f4b9\n  voted: false\ndoor-closed:\n  changes:\n    - 5.0.13\n  label: Door Closed\n  search:\n    terms:\n      - enter\n      - exit\n      - locked\n  styles:\n    - solid\n  unicode: f52a\n  voted: true\ndoor-open:\n  changes:\n    - 5.0.13\n  label: Door Open\n  search:\n    terms:\n      - enter\n      - exit\n      - welcome\n  styles:\n    - solid\n  unicode: f52b\n  voted: true\ndot-circle:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Dot Circle\n  search:\n    terms:\n      - bullseye\n      - notification\n      - target\n  styles:\n    - solid\n    - regular\n  unicode: f192\n  voted: false\ndove:\n  changes:\n    - 5.0.9\n    - 5.10.1\n  label: Dove\n  search:\n    terms:\n      - bird\n      - fauna\n      - flying\n      - peace\n      - war\n  styles:\n    - solid\n  unicode: f4ba\n  voted: false\ndownload:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Download\n  search:\n    terms:\n      - export\n      - hard drive\n      - save\n      - transfer\n  styles:\n    - solid\n  unicode: f019\n  voted: false\ndraft2digital:\n  changes:\n    - 5.0.0\n  label: Draft2digital\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f396\n  voted: false\ndrafting-compass:\n  changes:\n    - 5.1.0\n  label: Drafting Compass\n  search:\n    terms:\n      - design\n      - map\n      - mechanical drawing\n      - plot\n      - plotting\n  styles:\n    - solid\n  unicode: f568\n  voted: false\ndragon:\n  changes:\n    - 5.4.0\n  label: Dragon\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - fire\n      - lizard\n      - serpent\n  styles:\n    - solid\n  unicode: f6d5\n  voted: false\ndraw-polygon:\n  changes:\n    - 5.2.0\n  label: Draw Polygon\n  search:\n    terms:\n      - anchors\n      - lines\n      - object\n      - render\n      - shape\n  styles:\n    - solid\n  unicode: f5ee\n  voted: false\ndribbble:\n  changes:\n    - 5.0.0\n  label: Dribbble\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f17d\n  voted: false\ndribbble-square:\n  changes:\n    - 5.0.0\n  label: Dribbble Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f397\n  voted: false\ndropbox:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.0.1\n  label: Dropbox\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f16b\n  voted: false\ndrum:\n  changes:\n    - 5.1.0\n  label: Drum\n  search:\n    terms:\n      - instrument\n      - music\n      - percussion\n      - snare\n      - sound\n  styles:\n    - solid\n  unicode: f569\n  voted: true\ndrum-steelpan:\n  changes:\n    - 5.1.0\n  label: Drum Steelpan\n  search:\n    terms:\n      - calypso\n      - instrument\n      - music\n      - percussion\n      - reggae\n      - snare\n      - sound\n      - steel\n      - tropical\n  styles:\n    - solid\n  unicode: f56a\n  voted: false\ndrumstick-bite:\n  changes:\n    - 5.4.0\n    - 5.7.0\n  label: Drumstick with Bite Taken Out\n  search:\n    terms:\n      - bone\n      - chicken\n      - leg\n      - meat\n      - poultry\n      - turkey\n  styles:\n    - solid\n  unicode: f6d7\n  voted: false\ndrupal:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Drupal Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a9\n  voted: false\ndumbbell:\n  changes:\n    - 5.0.5\n  label: Dumbbell\n  search:\n    terms:\n      - exercise\n      - gym\n      - strength\n      - weight\n      - weight-lifting\n  styles:\n    - solid\n  unicode: f44b\n  voted: false\ndumpster:\n  changes:\n    - 5.6.0\n  label: Dumpster\n  search:\n    terms:\n      - alley\n      - bin\n      - commercial\n      - trash\n      - waste\n  styles:\n    - solid\n  unicode: f793\n  voted: true\ndumpster-fire:\n  changes:\n    - 5.6.0\n  label: Dumpster Fire\n  search:\n    terms:\n      - alley\n      - bin\n      - commercial\n      - danger\n      - dangerous\n      - euphemism\n      - flame\n      - heat\n      - hot\n      - trash\n      - waste\n  styles:\n    - solid\n  unicode: f794\n  voted: true\ndungeon:\n  changes:\n    - 5.4.0\n  label: Dungeon\n  search:\n    terms:\n      - Dungeons & Dragons\n      - building\n      - d&d\n      - dnd\n      - door\n      - entrance\n      - fantasy\n      - gate\n  styles:\n    - solid\n  unicode: f6d9\n  voted: false\ndyalog:\n  changes:\n    - 5.0.0\n  label: Dyalog\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f399\n  voted: false\nearlybirds:\n  changes:\n    - 5.0.0\n  label: Earlybirds\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f39a\n  voted: false\nebay:\n  changes:\n    - 5.0.11\n    - 5.7.0\n  label: eBay\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f4\n  voted: true\nedge:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Edge Browser\n  search:\n    terms:\n      - browser\n      - ie\n  styles:\n    - brands\n  unicode: f282\n  voted: false\nedit:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Edit\n  search:\n    terms:\n      - edit\n      - pen\n      - pencil\n      - update\n      - write\n  styles:\n    - solid\n    - regular\n  unicode: f044\n  voted: false\negg:\n  changes:\n    - 5.7.0\n  label: Egg\n  search:\n    terms:\n      - breakfast\n      - chicken\n      - easter\n      - shell\n      - yolk\n  styles:\n    - solid\n  unicode: f7fb\n  voted: false\neject:\n  changes:\n    - '1'\n    - 5.0.0\n  label: eject\n  search:\n    terms:\n      - abort\n      - cancel\n      - cd\n      - discharge\n  styles:\n    - solid\n  unicode: f052\n  voted: false\nelementor:\n  changes:\n    - 5.0.3\n  label: Elementor\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f430\n  voted: true\nellipsis-h:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Horizontal Ellipsis\n  search:\n    terms:\n      - dots\n      - drag\n      - kebab\n      - list\n      - menu\n      - nav\n      - navigation\n      - ol\n      - reorder\n      - settings\n      - ul\n  styles:\n    - solid\n  unicode: f141\n  voted: false\nellipsis-v:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Vertical Ellipsis\n  search:\n    terms:\n      - dots\n      - drag\n      - kebab\n      - list\n      - menu\n      - nav\n      - navigation\n      - ol\n      - reorder\n      - settings\n      - ul\n  styles:\n    - solid\n  unicode: f142\n  voted: false\nello:\n  changes:\n    - 5.2.0\n  label: Ello\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5f1\n  voted: true\nember:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Ember\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f423\n  voted: false\nempire:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Galactic Empire\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d1\n  voted: false\nenvelope:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Envelope\n  search:\n    terms:\n      - e-mail\n      - email\n      - letter\n      - mail\n      - message\n      - notification\n      - support\n  styles:\n    - solid\n    - regular\n  unicode: f0e0\n  voted: false\nenvelope-open:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.10.1\n  label: Envelope Open\n  search:\n    terms:\n      - e-mail\n      - email\n      - letter\n      - mail\n      - message\n      - notification\n      - support\n  styles:\n    - solid\n    - regular\n  unicode: f2b6\n  voted: false\nenvelope-open-text:\n  changes:\n    - 5.3.0\n    - 5.10.1\n  label: Envelope Open-text\n  search:\n    terms:\n      - e-mail\n      - email\n      - letter\n      - mail\n      - message\n      - notification\n      - support\n  styles:\n    - solid\n  unicode: f658\n  voted: false\nenvelope-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Envelope Square\n  search:\n    terms:\n      - e-mail\n      - email\n      - letter\n      - mail\n      - message\n      - notification\n      - support\n  styles:\n    - solid\n  unicode: f199\n  voted: false\nenvira:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Envira Gallery\n  search:\n    terms:\n      - leaf\n  styles:\n    - brands\n  unicode: f299\n  voted: false\nequals:\n  changes:\n    - 5.0.13\n  label: Equals\n  search:\n    terms:\n      - arithmetic\n      - even\n      - match\n      - math\n  styles:\n    - solid\n  unicode: f52c\n  voted: false\neraser:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.8.0\n  label: eraser\n  search:\n    terms:\n      - art\n      - delete\n      - remove\n      - rubber\n  styles:\n    - solid\n  unicode: f12d\n  voted: false\nerlang:\n  changes:\n    - 5.0.0\n    - 5.0.3\n    - 5.7.0\n  label: Erlang\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f39d\n  voted: false\nethereum:\n  changes:\n    - 5.0.2\n  label: Ethereum\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42e\n  voted: true\nethernet:\n  changes:\n    - 5.6.0\n  label: Ethernet\n  search:\n    terms:\n      - cable\n      - cat 5\n      - cat 6\n      - connection\n      - hardware\n      - internet\n      - network\n      - wired\n  styles:\n    - solid\n  unicode: f796\n  voted: true\netsy:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Etsy\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2d7\n  voted: false\neuro-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Euro Sign\n  search:\n    terms:\n      - currency\n      - dollar\n      - exchange\n      - money\n  styles:\n    - solid\n  unicode: f153\n  voted: false\nevernote:\n  changes:\n    - 5.8.0\n  label: Evernote\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f839\nexchange-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Exchange\n  search:\n    terms:\n      - arrow\n      - arrows\n      - exchange\n      - reciprocate\n      - return\n      - swap\n      - transfer\n  styles:\n    - solid\n  unicode: f362\n  voted: false\nexclamation:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.10.1\n  label: exclamation\n  search:\n    terms:\n      - alert\n      - danger\n      - error\n      - important\n      - notice\n      - notification\n      - notify\n      - problem\n      - warning\n  styles:\n    - solid\n  unicode: f12a\n  voted: false\nexclamation-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Exclamation Circle\n  search:\n    terms:\n      - alert\n      - danger\n      - error\n      - important\n      - notice\n      - notification\n      - notify\n      - problem\n      - warning\n  styles:\n    - solid\n  unicode: f06a\n  voted: false\nexclamation-triangle:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.6.1\n  label: Exclamation Triangle\n  search:\n    terms:\n      - alert\n      - danger\n      - error\n      - important\n      - notice\n      - notification\n      - notify\n      - problem\n      - warning\n  styles:\n    - solid\n  unicode: f071\n  voted: false\nexpand:\n  changes:\n    - 5.0.0\n  label: Expand\n  search:\n    terms:\n      - arrow\n      - bigger\n      - enlarge\n      - resize\n  styles:\n    - solid\n  unicode: f065\n  voted: false\nexpand-arrows-alt:\n  changes:\n    - 5.0.0\n    - 5.8.0\n  label: Alternate Expand Arrows\n  search:\n    terms:\n      - arrows-alt\n      - bigger\n      - enlarge\n      - move\n      - resize\n  styles:\n    - solid\n  unicode: f31e\n  voted: false\nexpeditedssl:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: ExpeditedSSL\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f23e\n  voted: false\nexternal-link-alt:\n  changes:\n    - 5.0.0\n  label: Alternate External Link\n  search:\n    terms:\n      - external-link\n      - new\n      - open\n      - share\n  styles:\n    - solid\n  unicode: f35d\n  voted: false\nexternal-link-square-alt:\n  changes:\n    - 5.0.0\n  label: Alternate External Link Square\n  search:\n    terms:\n      - external-link-square\n      - new\n      - open\n      - share\n  styles:\n    - solid\n  unicode: f360\n  voted: false\neye:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.7.0\n  label: Eye\n  search:\n    terms:\n      - look\n      - optic\n      - see\n      - seen\n      - show\n      - sight\n      - views\n      - visible\n  styles:\n    - solid\n    - regular\n  unicode: f06e\n  voted: false\neye-dropper:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.1.0\n  label: Eye Dropper\n  search:\n    terms:\n      - beaker\n      - clone\n      - color\n      - copy\n      - eyedropper\n      - pipette\n  styles:\n    - solid\n  unicode: f1fb\n  voted: false\neye-slash:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.7.0\n  label: Eye Slash\n  search:\n    terms:\n      - blind\n      - hide\n      - show\n      - toggle\n      - unseen\n      - views\n      - visible\n      - visiblity\n  styles:\n    - solid\n    - regular\n  unicode: f070\n  voted: false\nfacebook:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.8.2\n  label: Facebook\n  search:\n    terms:\n      - facebook-official\n      - social network\n  styles:\n    - brands\n  unicode: f09a\n  voted: false\nfacebook-f:\n  changes:\n    - 5.0.0\n    - 5.8.2\n  label: Facebook F\n  search:\n    terms:\n      - facebook\n  styles:\n    - brands\n  unicode: f39e\n  voted: false\nfacebook-messenger:\n  changes:\n    - 5.0.0\n    - 5.8.2\n    - 5.9.0\n  label: Facebook Messenger\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f39f\n  voted: false\nfacebook-square:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.8.2\n  label: Facebook Square\n  search:\n    terms:\n      - social network\n  styles:\n    - brands\n  unicode: f082\n  voted: false\nfan:\n  changes:\n    - 5.9.0\n    - 5.10.1\n  label: Fan\n  search:\n    terms:\n      - ac\n      - air conditioning\n      - blade\n      - blower\n      - cool\n      - hot\n  styles:\n    - solid\n  unicode: f863\n  voted: true\nfantasy-flight-games:\n  changes:\n    - 5.4.0\n  label: Fantasy Flight-games\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - game\n      - gaming\n      - tabletop\n  styles:\n    - brands\n  unicode: f6dc\n  voted: false\nfast-backward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: fast-backward\n  search:\n    terms:\n      - beginning\n      - first\n      - previous\n      - rewind\n      - start\n  styles:\n    - solid\n  unicode: f049\n  voted: false\nfast-forward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: fast-forward\n  search:\n    terms:\n      - end\n      - last\n      - next\n  styles:\n    - solid\n  unicode: f050\n  voted: false\nfax:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.3.0\n  label: Fax\n  search:\n    terms:\n      - business\n      - communicate\n      - copy\n      - facsimile\n      - send\n  styles:\n    - solid\n  unicode: f1ac\n  voted: false\nfeather:\n  changes:\n    - 5.0.13\n    - 5.1.0\n  label: Feather\n  search:\n    terms:\n      - bird\n      - light\n      - plucked\n      - quill\n      - write\n  styles:\n    - solid\n  unicode: f52d\n  voted: true\nfeather-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Feather\n  search:\n    terms:\n      - bird\n      - light\n      - plucked\n      - quill\n      - write\n  styles:\n    - solid\n  unicode: f56b\n  voted: true\nfedex:\n  changes:\n    - 5.6.0\n  label: FedEx\n  search:\n    terms:\n      - Federal Express\n      - package\n      - shipping\n  styles:\n    - brands\n  unicode: f797\nfedora:\n  changes:\n    - 5.6.0\n    - 5.6.3\n    - 5.8.0\n  label: Fedora\n  search:\n    terms:\n      - linux\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f798\n  voted: true\nfemale:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Female\n  search:\n    terms:\n      - human\n      - person\n      - profile\n      - user\n      - woman\n  styles:\n    - solid\n  unicode: f182\n  voted: false\nfighter-jet:\n  changes:\n    - '3'\n    - 5.0.0\n  label: fighter-jet\n  search:\n    terms:\n      - airplane\n      - fast\n      - fly\n      - goose\n      - maverick\n      - plane\n      - quick\n      - top gun\n      - transportation\n      - travel\n  styles:\n    - solid\n  unicode: f0fb\n  voted: false\nfigma:\n  changes:\n    - 5.6.0\n    - 5.7.0\n    - 5.8.0\n  label: Figma\n  search:\n    terms:\n      - app\n      - design\n      - interface\n  styles:\n    - brands\n  unicode: f799\n  voted: false\nfile:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.10.1\n  label: File\n  search:\n    terms:\n      - document\n      - new\n      - page\n      - pdf\n      - resume\n  styles:\n    - solid\n    - regular\n  unicode: f15b\n  voted: false\nfile-alt:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Alternate File\n  search:\n    terms:\n      - document\n      - file-text\n      - invoice\n      - new\n      - page\n      - pdf\n  styles:\n    - solid\n    - regular\n  unicode: f15c\n  voted: false\nfile-archive:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.7.0\n  label: Archive File\n  search:\n    terms:\n      - .zip\n      - bundle\n      - compress\n      - compression\n      - download\n      - zip\n  styles:\n    - solid\n    - regular\n  unicode: f1c6\n  voted: false\nfile-audio:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Audio File\n  search:\n    terms:\n      - document\n      - mp3\n      - music\n      - page\n      - play\n      - sound\n  styles:\n    - solid\n    - regular\n  unicode: f1c7\n  voted: false\nfile-code:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Code File\n  search:\n    terms:\n      - css\n      - development\n      - document\n      - html\n  styles:\n    - solid\n    - regular\n  unicode: f1c9\n  voted: false\nfile-contract:\n  changes:\n    - 5.1.0\n  label: File Contract\n  search:\n    terms:\n      - agreement\n      - binding\n      - document\n      - legal\n      - signature\n  styles:\n    - solid\n  unicode: f56c\n  voted: false\nfile-csv:\n  changes:\n    - 5.4.0\n  label: File CSV\n  search:\n    terms:\n      - document\n      - excel\n      - numbers\n      - spreadsheets\n      - table\n  styles:\n    - solid\n  unicode: f6dd\n  voted: false\nfile-download:\n  changes:\n    - 5.1.0\n  label: File Download\n  search:\n    terms:\n      - document\n      - export\n      - save\n  styles:\n    - solid\n  unicode: f56d\n  voted: true\nfile-excel:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Excel File\n  search:\n    terms:\n      - csv\n      - document\n      - numbers\n      - spreadsheets\n      - table\n  styles:\n    - solid\n    - regular\n  unicode: f1c3\n  voted: false\nfile-export:\n  changes:\n    - 5.1.0\n    - 5.7.0\n  label: File Export\n  search:\n    terms:\n      - download\n      - save\n  styles:\n    - solid\n  unicode: f56e\n  voted: true\nfile-image:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Image File\n  search:\n    terms:\n      - document\n      - image\n      - jpg\n      - photo\n      - png\n  styles:\n    - solid\n    - regular\n  unicode: f1c5\n  voted: false\nfile-import:\n  changes:\n    - 5.1.0\n    - 5.7.0\n  label: File Import\n  search:\n    terms:\n      - copy\n      - document\n      - send\n      - upload\n  styles:\n    - solid\n  unicode: f56f\n  voted: true\nfile-invoice:\n  changes:\n    - 5.1.0\n  label: File Invoice\n  search:\n    terms:\n      - account\n      - bill\n      - charge\n      - document\n      - payment\n      - receipt\n  styles:\n    - solid\n  unicode: f570\n  voted: true\nfile-invoice-dollar:\n  changes:\n    - 5.1.0\n  label: File Invoice with US Dollar\n  search:\n    terms:\n      - $\n      - account\n      - bill\n      - charge\n      - document\n      - dollar-sign\n      - money\n      - payment\n      - receipt\n      - usd\n  styles:\n    - solid\n  unicode: f571\n  voted: true\nfile-medical:\n  changes:\n    - 5.0.7\n  label: Medical File\n  search:\n    terms:\n      - document\n      - health\n      - history\n      - prescription\n      - record\n  styles:\n    - solid\n  unicode: f477\n  voted: false\nfile-medical-alt:\n  changes:\n    - 5.0.7\n  label: Alternate Medical File\n  search:\n    terms:\n      - document\n      - health\n      - history\n      - prescription\n      - record\n  styles:\n    - solid\n  unicode: f478\n  voted: false\nfile-pdf:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: PDF File\n  search:\n    terms:\n      - acrobat\n      - document\n      - preview\n      - save\n  styles:\n    - solid\n    - regular\n  unicode: f1c1\n  voted: false\nfile-powerpoint:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Powerpoint File\n  search:\n    terms:\n      - display\n      - document\n      - keynote\n      - presentation\n  styles:\n    - solid\n    - regular\n  unicode: f1c4\n  voted: false\nfile-prescription:\n  changes:\n    - 5.1.0\n  label: File Prescription\n  search:\n    terms:\n      - document\n      - drugs\n      - medical\n      - medicine\n      - rx\n  styles:\n    - solid\n  unicode: f572\n  voted: false\nfile-signature:\n  changes:\n    - 5.1.0\n  label: File Signature\n  search:\n    terms:\n      - John Hancock\n      - contract\n      - document\n      - name\n  styles:\n    - solid\n  unicode: f573\n  voted: true\nfile-upload:\n  changes:\n    - 5.1.0\n  label: File Upload\n  search:\n    terms:\n      - document\n      - import\n      - page\n      - save\n  styles:\n    - solid\n  unicode: f574\n  voted: true\nfile-video:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Video File\n  search:\n    terms:\n      - document\n      - m4v\n      - movie\n      - mp4\n      - play\n  styles:\n    - solid\n    - regular\n  unicode: f1c8\n  voted: false\nfile-word:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Word File\n  search:\n    terms:\n      - document\n      - edit\n      - page\n      - text\n      - writing\n  styles:\n    - solid\n    - regular\n  unicode: f1c2\n  voted: false\nfill:\n  changes:\n    - 5.1.0\n  label: Fill\n  search:\n    terms:\n      - bucket\n      - color\n      - paint\n      - paint bucket\n  styles:\n    - solid\n  unicode: f575\n  voted: false\nfill-drip:\n  changes:\n    - 5.1.0\n  label: Fill Drip\n  search:\n    terms:\n      - bucket\n      - color\n      - drop\n      - paint\n      - paint bucket\n      - spill\n  styles:\n    - solid\n  unicode: f576\n  voted: false\nfilm:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Film\n  search:\n    terms:\n      - cinema\n      - movie\n      - strip\n      - video\n  styles:\n    - solid\n  unicode: f008\n  voted: false\nfilter:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: Filter\n  search:\n    terms:\n      - funnel\n      - options\n      - separate\n      - sort\n  styles:\n    - solid\n  unicode: f0b0\n  voted: false\nfingerprint:\n  changes:\n    - 5.1.0\n  label: Fingerprint\n  search:\n    terms:\n      - human\n      - id\n      - identification\n      - lock\n      - smudge\n      - touch\n      - unique\n      - unlock\n  styles:\n    - solid\n  unicode: f577\n  voted: true\nfire:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.6.0\n    - 5.6.3\n    - 5.10.1\n  label: fire\n  search:\n    terms:\n      - burn\n      - caliente\n      - flame\n      - heat\n      - hot\n      - popular\n  styles:\n    - solid\n  unicode: f06d\n  voted: false\nfire-alt:\n  changes:\n    - 5.6.3\n  label: Alternate Fire\n  search:\n    terms:\n      - burn\n      - caliente\n      - flame\n      - heat\n      - hot\n      - popular\n  styles:\n    - solid\n  unicode: f7e4\nfire-extinguisher:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: fire-extinguisher\n  search:\n    terms:\n      - burn\n      - caliente\n      - fire fighter\n      - flame\n      - heat\n      - hot\n      - rescue\n  styles:\n    - solid\n  unicode: f134\n  voted: false\nfirefox:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.0.1\n  label: Firefox\n  search:\n    terms:\n      - browser\n  styles:\n    - brands\n  unicode: f269\n  voted: false\nfirst-aid:\n  changes:\n    - 5.0.7\n  label: First Aid\n  search:\n    terms:\n      - emergency\n      - emt\n      - health\n      - medical\n      - rescue\n  styles:\n    - solid\n  unicode: f479\n  voted: false\nfirst-order:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: First Order\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2b0\n  voted: false\nfirst-order-alt:\n  changes:\n    - 5.0.12\n  label: Alternate First Order\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f50a\n  voted: false\nfirstdraft:\n  changes:\n    - 5.0.0\n  label: firstdraft\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a1\n  voted: false\nfish:\n  changes:\n    - 5.1.0\n    - 5.10.1\n  label: Fish\n  search:\n    terms:\n      - fauna\n      - gold\n      - seafood\n      - swimming\n  styles:\n    - solid\n  unicode: f578\n  voted: true\nfist-raised:\n  changes:\n    - 5.4.0\n  label: Raised Fist\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - hand\n      - ki\n      - monk\n      - resist\n      - strength\n      - unarmed combat\n  styles:\n    - solid\n  unicode: f6de\n  voted: false\nflag:\n  changes:\n    - '1'\n    - 5.0.0\n  label: flag\n  search:\n    terms:\n      - country\n      - notice\n      - notification\n      - notify\n      - pole\n      - report\n      - symbol\n  styles:\n    - solid\n    - regular\n  unicode: f024\n  voted: false\nflag-checkered:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.7.0\n    - 5.10.1\n  label: flag-checkered\n  search:\n    terms:\n      - notice\n      - notification\n      - notify\n      - pole\n      - racing\n      - report\n      - symbol\n  styles:\n    - solid\n  unicode: f11e\n  voted: false\nflag-usa:\n  changes:\n    - 5.5.0\n  label: United States of America Flag\n  search:\n    terms:\n      - betsy ross\n      - country\n      - old glory\n      - stars\n      - stripes\n      - symbol\n  styles:\n    - solid\n  unicode: f74d\n  voted: false\nflask:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Flask\n  search:\n    terms:\n      - beaker\n      - experimental\n      - labs\n      - science\n  styles:\n    - solid\n  unicode: f0c3\n  voted: false\nflickr:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Flickr\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f16e\n  voted: false\nflipboard:\n  changes:\n    - 5.0.5\n    - 5.0.9\n  label: Flipboard\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f44d\n  voted: true\nflushed:\n  changes:\n    - 5.1.0\n  label: Flushed Face\n  search:\n    terms:\n      - embarrassed\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f579\n  voted: false\nfly:\n  changes:\n    - 5.0.0\n  label: Fly\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f417\n  voted: false\nfolder:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n    - 5.10.1\n  label: Folder\n  search:\n    terms:\n      - archive\n      - directory\n      - document\n      - file\n  styles:\n    - solid\n    - regular\n  unicode: f07b\n  voted: false\nfolder-minus:\n  changes:\n    - 5.3.0\n  label: Folder Minus\n  search:\n    terms:\n      - archive\n      - delete\n      - directory\n      - document\n      - file\n      - negative\n      - remove\n  styles:\n    - solid\n  unicode: f65d\n  voted: false\nfolder-open:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Folder Open\n  search:\n    terms:\n      - archive\n      - directory\n      - document\n      - empty\n      - file\n      - new\n  styles:\n    - solid\n    - regular\n  unicode: f07c\n  voted: false\nfolder-plus:\n  changes:\n    - 5.3.0\n  label: Folder Plus\n  search:\n    terms:\n      - add\n      - archive\n      - create\n      - directory\n      - document\n      - file\n      - new\n      - positive\n  styles:\n    - solid\n  unicode: f65e\n  voted: false\nfont:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: font\n  search:\n    terms:\n      - alphabet\n      - glyph\n      - text\n      - type\n      - typeface\n  styles:\n    - solid\n  unicode: f031\n  voted: false\nfont-awesome:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Font Awesome\n  search:\n    terms:\n      - meanpath\n  styles:\n    - brands\n  unicode: f2b4\n  voted: false\nfont-awesome-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Font Awesome\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f35c\n  voted: false\nfont-awesome-flag:\n  changes:\n    - 5.0.0\n    - 5.0.1\n  label: Font Awesome Flag\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f425\n  voted: false\nfont-awesome-logo-full:\n  changes:\n    - 5.0.11\n  label: Font Awesome Full Logo\n  ligatures:\n    - Font Awesome\n  private: true\n  search:\n    terms: []\n  styles:\n    - regular\n    - solid\n    - brands\n  unicode: f4e6\n  voted: false\nfonticons:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Fonticons\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f280\n  voted: false\nfonticons-fi:\n  changes:\n    - 5.0.0\n  label: Fonticons Fi\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a2\n  voted: false\nfootball-ball:\n  changes:\n    - 5.0.5\n  label: Football Ball\n  search:\n    terms:\n      - ball\n      - fall\n      - nfl\n      - pigskin\n      - seasonal\n  styles:\n    - solid\n  unicode: f44e\n  voted: false\nfort-awesome:\n  changes:\n    - '4.5'\n    - 5.0.0\n    - 5.0.3\n  label: Fort Awesome\n  search:\n    terms:\n      - castle\n  styles:\n    - brands\n  unicode: f286\n  voted: false\nfort-awesome-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Fort Awesome\n  search:\n    terms:\n      - castle\n  styles:\n    - brands\n  unicode: f3a3\n  voted: false\nforumbee:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Forumbee\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f211\n  voted: false\nforward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: forward\n  search:\n    terms:\n      - forward\n      - next\n      - skip\n  styles:\n    - solid\n  unicode: f04e\n  voted: false\nfoursquare:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Foursquare\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f180\n  voted: false\nfree-code-camp:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Free Code Camp\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2c5\n  voted: false\nfreebsd:\n  changes:\n    - 5.0.0\n  label: FreeBSD\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a4\n  voted: false\nfrog:\n  changes:\n    - 5.0.13\n  label: Frog\n  search:\n    terms:\n      - amphibian\n      - bullfrog\n      - fauna\n      - hop\n      - kermit\n      - kiss\n      - prince\n      - ribbit\n      - toad\n      - wart\n  styles:\n    - solid\n  unicode: f52e\n  voted: false\nfrown:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.9\n    - 5.1.0\n  label: Frowning Face\n  search:\n    terms:\n      - disapprove\n      - emoticon\n      - face\n      - rating\n      - sad\n  styles:\n    - solid\n    - regular\n  unicode: f119\n  voted: false\nfrown-open:\n  changes:\n    - 5.1.0\n  label: Frowning Face With Open Mouth\n  search:\n    terms:\n      - disapprove\n      - emoticon\n      - face\n      - rating\n      - sad\n  styles:\n    - solid\n    - regular\n  unicode: f57a\n  voted: false\nfulcrum:\n  changes:\n    - 5.0.12\n    - 5.8.0\n  label: Fulcrum\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f50b\n  voted: false\nfunnel-dollar:\n  changes:\n    - 5.3.0\n  label: Funnel Dollar\n  search:\n    terms:\n      - filter\n      - money\n      - options\n      - separate\n      - sort\n  styles:\n    - solid\n  unicode: f662\n  voted: false\nfutbol:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.0.5\n  label: Futbol\n  search:\n    terms:\n      - ball\n      - football\n      - mls\n      - soccer\n  styles:\n    - solid\n    - regular\n  unicode: f1e3\n  voted: false\ngalactic-republic:\n  changes:\n    - 5.0.12\n  label: Galactic Republic\n  search:\n    terms:\n      - politics\n      - star wars\n  styles:\n    - brands\n  unicode: f50c\n  voted: false\ngalactic-senate:\n  changes:\n    - 5.0.12\n  label: Galactic Senate\n  search:\n    terms:\n      - star wars\n  styles:\n    - brands\n  unicode: f50d\n  voted: false\ngamepad:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Gamepad\n  search:\n    terms:\n      - controller\n      - d-pad\n      - joystick\n      - video\n  styles:\n    - solid\n  unicode: f11b\n  voted: false\ngas-pump:\n  changes:\n    - 5.0.13\n    - 5.10.1\n  label: Gas Pump\n  search:\n    terms:\n      - car\n      - fuel\n      - gasoline\n      - petrol\n  styles:\n    - solid\n  unicode: f52f\n  voted: true\ngavel:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Gavel\n  search:\n    terms:\n      - hammer\n      - judge\n      - law\n      - lawyer\n      - opinion\n  styles:\n    - solid\n  unicode: f0e3\n  voted: false\ngem:\n  changes:\n    - 5.0.0\n    - 5.10.1\n  label: Gem\n  search:\n    terms:\n      - diamond\n      - jewelry\n      - sapphire\n      - stone\n      - treasure\n  styles:\n    - solid\n    - regular\n  unicode: f3a5\n  voted: false\ngenderless:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Genderless\n  search:\n    terms:\n      - androgynous\n      - asexual\n      - sexless\n  styles:\n    - solid\n  unicode: f22d\n  voted: false\nget-pocket:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Get Pocket\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f265\n  voted: false\ngg:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: GG Currency\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f260\n  voted: false\ngg-circle:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: GG Currency Circle\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f261\n  voted: false\nghost:\n  changes:\n    - 5.4.0\n  label: Ghost\n  search:\n    terms:\n      - apparition\n      - blinky\n      - clyde\n      - floating\n      - halloween\n      - holiday\n      - inky\n      - pinky\n      - spirit\n  styles:\n    - solid\n  unicode: f6e2\n  voted: false\ngift:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n    - 5.6.0\n  label: gift\n  search:\n    terms:\n      - christmas\n      - generosity\n      - giving\n      - holiday\n      - party\n      - present\n      - wrapped\n      - xmas\n  styles:\n    - solid\n  unicode: f06b\n  voted: false\ngifts:\n  changes:\n    - 5.6.0\n  label: Gifts\n  search:\n    terms:\n      - christmas\n      - generosity\n      - giving\n      - holiday\n      - party\n      - present\n      - wrapped\n      - xmas\n  styles:\n    - solid\n  unicode: f79c\ngit:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.8.2\n  label: Git\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d3\n  voted: false\ngit-alt:\n  changes:\n    - 5.8.2\n  label: Git Alt\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f841\ngit-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.8.2\n  label: Git Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d2\n  voted: false\ngithub:\n  changes:\n    - '2'\n    - 5.0.0\n  label: GitHub\n  search:\n    terms:\n      - octocat\n  styles:\n    - brands\n  unicode: f09b\n  voted: false\ngithub-alt:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Alternate GitHub\n  search:\n    terms:\n      - octocat\n  styles:\n    - brands\n  unicode: f113\n  voted: false\ngithub-square:\n  changes:\n    - '1'\n    - 5.0.0\n  label: GitHub Square\n  search:\n    terms:\n      - octocat\n  styles:\n    - brands\n  unicode: f092\n  voted: false\ngitkraken:\n  changes:\n    - 5.0.0\n  label: GitKraken\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a6\n  voted: false\ngitlab:\n  changes:\n    - '4.6'\n    - 5.0.0\n    - 5.7.0\n  label: GitLab\n  search:\n    terms:\n      - Axosoft\n  styles:\n    - brands\n  unicode: f296\n  voted: false\ngitter:\n  changes:\n    - 5.0.0\n  label: Gitter\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f426\n  voted: false\nglass-cheers:\n  changes:\n    - 5.6.0\n  label: Glass Cheers\n  search:\n    terms:\n      - alcohol\n      - bar\n      - beverage\n      - celebration\n      - champagne\n      - clink\n      - drink\n      - holiday\n      - new year's eve\n      - party\n      - toast\n  styles:\n    - solid\n  unicode: f79f\nglass-martini:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.1.0\n    - 5.10.1\n  label: Martini Glass\n  search:\n    terms:\n      - alcohol\n      - bar\n      - beverage\n      - drink\n      - liquor\n  styles:\n    - solid\n  unicode: f000\n  voted: false\nglass-martini-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Glass Martini\n  search:\n    terms:\n      - alcohol\n      - bar\n      - beverage\n      - drink\n      - liquor\n  styles:\n    - solid\n  unicode: f57b\n  voted: false\nglass-whiskey:\n  changes:\n    - 5.6.0\n  label: Glass Whiskey\n  search:\n    terms:\n      - alcohol\n      - bar\n      - beverage\n      - bourbon\n      - drink\n      - liquor\n      - neat\n      - rye\n      - scotch\n      - whisky\n  styles:\n    - solid\n  unicode: f7a0\nglasses:\n  changes:\n    - 5.0.13\n  label: Glasses\n  search:\n    terms:\n      - hipster\n      - nerd\n      - reading\n      - sight\n      - spectacles\n      - vision\n  styles:\n    - solid\n  unicode: f530\n  voted: true\nglide:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Glide\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2a5\n  voted: false\nglide-g:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Glide G\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2a6\n  voted: false\nglobe:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.9\n  label: Globe\n  search:\n    terms:\n      - all\n      - coordinates\n      - country\n      - earth\n      - global\n      - gps\n      - language\n      - localize\n      - location\n      - map\n      - online\n      - place\n      - planet\n      - translate\n      - travel\n      - world\n  styles:\n    - solid\n  unicode: f0ac\n  voted: false\nglobe-africa:\n  changes:\n    - 5.1.0\n  label: Globe with Africa shown\n  search:\n    terms:\n      - all\n      - country\n      - earth\n      - global\n      - gps\n      - language\n      - localize\n      - location\n      - map\n      - online\n      - place\n      - planet\n      - translate\n      - travel\n      - world\n  styles:\n    - solid\n  unicode: f57c\n  voted: false\nglobe-americas:\n  changes:\n    - 5.1.0\n  label: Globe with Americas shown\n  search:\n    terms:\n      - all\n      - country\n      - earth\n      - global\n      - gps\n      - language\n      - localize\n      - location\n      - map\n      - online\n      - place\n      - planet\n      - translate\n      - travel\n      - world\n  styles:\n    - solid\n  unicode: f57d\n  voted: false\nglobe-asia:\n  changes:\n    - 5.1.0\n  label: Globe with Asia shown\n  search:\n    terms:\n      - all\n      - country\n      - earth\n      - global\n      - gps\n      - language\n      - localize\n      - location\n      - map\n      - online\n      - place\n      - planet\n      - translate\n      - travel\n      - world\n  styles:\n    - solid\n  unicode: f57e\n  voted: false\nglobe-europe:\n  changes:\n    - 5.6.0\n  label: Globe with Europe shown\n  search:\n    terms:\n      - all\n      - country\n      - earth\n      - global\n      - gps\n      - language\n      - localize\n      - location\n      - map\n      - online\n      - place\n      - planet\n      - translate\n      - travel\n      - world\n  styles:\n    - solid\n  unicode: f7a2\n  voted: true\ngofore:\n  changes:\n    - 5.0.0\n  label: Gofore\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a7\n  voted: false\ngolf-ball:\n  changes:\n    - 5.0.5\n  label: Golf Ball\n  search:\n    terms:\n      - caddy\n      - eagle\n      - putt\n      - tee\n  styles:\n    - solid\n  unicode: f450\n  voted: false\ngoodreads:\n  changes:\n    - 5.0.0\n  label: Goodreads\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a8\n  voted: false\ngoodreads-g:\n  changes:\n    - 5.0.0\n  label: Goodreads G\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3a9\n  voted: false\ngoogle:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Google Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a0\n  voted: false\ngoogle-drive:\n  changes:\n    - 5.0.0\n  label: Google Drive\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3aa\n  voted: false\ngoogle-play:\n  changes:\n    - 5.0.0\n  label: Google Play\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ab\n  voted: false\ngoogle-plus:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Google Plus\n  search:\n    terms:\n      - google-plus-circle\n      - google-plus-official\n  styles:\n    - brands\n  unicode: f2b3\n  voted: false\ngoogle-plus-g:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Google Plus G\n  search:\n    terms:\n      - google-plus\n      - social network\n  styles:\n    - brands\n  unicode: f0d5\n  voted: false\ngoogle-plus-square:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Google Plus Square\n  search:\n    terms:\n      - social network\n  styles:\n    - brands\n  unicode: f0d4\n  voted: false\ngoogle-wallet:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Google Wallet\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1ee\n  voted: false\ngopuram:\n  changes:\n    - 5.3.0\n    - 5.7.0\n  label: Gopuram\n  search:\n    terms:\n      - building\n      - entrance\n      - hinduism\n      - temple\n      - tower\n  styles:\n    - solid\n  unicode: f664\n  voted: false\ngraduation-cap:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.2.0\n    - 5.10.1\n  label: Graduation Cap\n  search:\n    terms:\n      - ceremony\n      - college\n      - graduate\n      - learning\n      - school\n      - student\n  styles:\n    - solid\n  unicode: f19d\n  voted: false\ngratipay:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Gratipay (Gittip)\n  search:\n    terms:\n      - favorite\n      - heart\n      - like\n      - love\n  styles:\n    - brands\n  unicode: f184\n  voted: false\ngrav:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Grav\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2d6\n  voted: false\ngreater-than:\n  changes:\n    - 5.0.13\n  label: Greater Than\n  search:\n    terms:\n      - arithmetic\n      - compare\n      - math\n  styles:\n    - solid\n  unicode: f531\n  voted: true\ngreater-than-equal:\n  changes:\n    - 5.0.13\n  label: Greater Than Equal To\n  search:\n    terms:\n      - arithmetic\n      - compare\n      - math\n  styles:\n    - solid\n  unicode: f532\n  voted: true\ngrimace:\n  changes:\n    - 5.1.0\n  label: Grimacing Face\n  search:\n    terms:\n      - cringe\n      - emoticon\n      - face\n      - teeth\n  styles:\n    - solid\n    - regular\n  unicode: f57f\n  voted: false\ngrin:\n  changes:\n    - 5.1.0\n  label: Grinning Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f580\n  voted: false\ngrin-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Grinning Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f581\n  voted: false\ngrin-beam:\n  changes:\n    - 5.1.0\n  label: Grinning Face With Smiling Eyes\n  search:\n    terms:\n      - emoticon\n      - face\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f582\n  voted: false\ngrin-beam-sweat:\n  changes:\n    - 5.1.0\n  label: Grinning Face With Sweat\n  search:\n    terms:\n      - embarass\n      - emoticon\n      - face\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f583\n  voted: false\ngrin-hearts:\n  changes:\n    - 5.1.0\n  label: Smiling Face With Heart-Eyes\n  search:\n    terms:\n      - emoticon\n      - face\n      - love\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f584\n  voted: false\ngrin-squint:\n  changes:\n    - 5.1.0\n  label: Grinning Squinting Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f585\n  voted: false\ngrin-squint-tears:\n  changes:\n    - 5.1.0\n  label: Rolling on the Floor Laughing\n  search:\n    terms:\n      - emoticon\n      - face\n      - happy\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f586\n  voted: false\ngrin-stars:\n  changes:\n    - 5.1.0\n  label: Star-Struck\n  search:\n    terms:\n      - emoticon\n      - face\n      - star-struck\n  styles:\n    - solid\n    - regular\n  unicode: f587\n  voted: false\ngrin-tears:\n  changes:\n    - 5.1.0\n  label: Face With Tears of Joy\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f588\n  voted: false\ngrin-tongue:\n  changes:\n    - 5.1.0\n  label: Face With Tongue\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f589\n  voted: false\ngrin-tongue-squint:\n  changes:\n    - 5.1.0\n  label: Squinting Face With Tongue\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f58a\n  voted: false\ngrin-tongue-wink:\n  changes:\n    - 5.1.0\n  label: Winking Face With Tongue\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n  styles:\n    - solid\n    - regular\n  unicode: f58b\n  voted: false\ngrin-wink:\n  changes:\n    - 5.1.0\n    - 5.1.1\n  label: Grinning Winking Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - flirt\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f58c\n  voted: false\ngrip-horizontal:\n  changes:\n    - 5.1.0\n  label: Grip Horizontal\n  search:\n    terms:\n      - affordance\n      - drag\n      - drop\n      - grab\n      - handle\n  styles:\n    - solid\n  unicode: f58d\n  voted: true\ngrip-lines:\n  changes:\n    - 5.6.0\n  label: Grip Lines\n  search:\n    terms:\n      - affordance\n      - drag\n      - drop\n      - grab\n      - handle\n  styles:\n    - solid\n  unicode: f7a4\n  voted: true\ngrip-lines-vertical:\n  changes:\n    - 5.6.0\n  label: Grip Lines Vertical\n  search:\n    terms:\n      - affordance\n      - drag\n      - drop\n      - grab\n      - handle\n  styles:\n    - solid\n  unicode: f7a5\n  voted: true\ngrip-vertical:\n  changes:\n    - 5.1.0\n  label: Grip Vertical\n  search:\n    terms:\n      - affordance\n      - drag\n      - drop\n      - grab\n      - handle\n  styles:\n    - solid\n  unicode: f58e\n  voted: true\ngripfire:\n  changes:\n    - 5.0.0\n  label: 'Gripfire, Inc.'\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ac\n  voted: false\ngrunt:\n  changes:\n    - 5.0.0\n  label: Grunt\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ad\n  voted: false\nguitar:\n  changes:\n    - 5.6.0\n  label: Guitar\n  search:\n    terms:\n      - acoustic\n      - instrument\n      - music\n      - rock\n      - rock and roll\n      - song\n      - strings\n  styles:\n    - solid\n  unicode: f7a6\n  voted: true\ngulp:\n  changes:\n    - 5.0.0\n  label: Gulp\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ae\n  voted: false\nh-square:\n  changes:\n    - '3'\n    - 5.0.0\n  label: H Square\n  search:\n    terms:\n      - directions\n      - emergency\n      - hospital\n      - hotel\n      - map\n  styles:\n    - solid\n  unicode: f0fd\n  voted: false\nhacker-news:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Hacker News\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d4\n  voted: false\nhacker-news-square:\n  changes:\n    - 5.0.0\n  label: Hacker News Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3af\n  voted: false\nhackerrank:\n  changes:\n    - 5.2.0\n    - 5.8.0\n  label: Hackerrank\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5f7\n  voted: true\nhamburger:\n  changes:\n    - 5.7.0\n  label: Hamburger\n  search:\n    terms:\n      - bacon\n      - beef\n      - burger\n      - burger king\n      - cheeseburger\n      - fast food\n      - grill\n      - ground beef\n      - mcdonalds\n      - sandwich\n  styles:\n    - solid\n  unicode: f805\n  voted: false\nhammer:\n  changes:\n    - 5.4.0\n  label: Hammer\n  search:\n    terms:\n      - admin\n      - fix\n      - repair\n      - settings\n      - tool\n  styles:\n    - solid\n  unicode: f6e3\n  voted: true\nhamsa:\n  changes:\n    - 5.3.0\n  label: Hamsa\n  search:\n    terms:\n      - amulet\n      - christianity\n      - islam\n      - jewish\n      - judaism\n      - muslim\n      - protection\n  styles:\n    - solid\n  unicode: f665\n  voted: false\nhand-holding:\n  changes:\n    - 5.0.9\n  label: Hand Holding\n  search:\n    terms:\n      - carry\n      - lift\n  styles:\n    - solid\n  unicode: f4bd\n  voted: false\nhand-holding-heart:\n  changes:\n    - 5.0.9\n  label: Hand Holding Heart\n  search:\n    terms:\n      - carry\n      - charity\n      - gift\n      - lift\n      - package\n  styles:\n    - solid\n  unicode: f4be\n  voted: false\nhand-holding-usd:\n  changes:\n    - 5.0.9\n  label: Hand Holding US Dollar\n  search:\n    terms:\n      - $\n      - carry\n      - dollar sign\n      - donation\n      - giving\n      - lift\n      - money\n      - price\n  styles:\n    - solid\n  unicode: f4c0\n  voted: false\nhand-lizard:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Lizard (Hand)\n  search:\n    terms:\n      - game\n      - roshambo\n  styles:\n    - solid\n    - regular\n  unicode: f258\n  voted: false\nhand-middle-finger:\n  changes:\n    - 5.7.0\n  label: Hand with Middle Finger Raised\n  search:\n    terms:\n      - flip the bird\n      - gesture\n      - hate\n      - rude\n  styles:\n    - solid\n  unicode: f806\n  voted: true\nhand-paper:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Paper (Hand)\n  search:\n    terms:\n      - game\n      - halt\n      - roshambo\n      - stop\n  styles:\n    - solid\n    - regular\n  unicode: f256\n  voted: false\nhand-peace:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Peace (Hand)\n  search:\n    terms:\n      - rest\n      - truce\n  styles:\n    - solid\n    - regular\n  unicode: f25b\n  voted: false\nhand-point-down:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Hand Pointing Down\n  search:\n    terms:\n      - finger\n      - hand-o-down\n      - point\n  styles:\n    - solid\n    - regular\n  unicode: f0a7\n  voted: false\nhand-point-left:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Hand Pointing Left\n  search:\n    terms:\n      - back\n      - finger\n      - hand-o-left\n      - left\n      - point\n      - previous\n  styles:\n    - solid\n    - regular\n  unicode: f0a5\n  voted: false\nhand-point-right:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Hand Pointing Right\n  search:\n    terms:\n      - finger\n      - forward\n      - hand-o-right\n      - next\n      - point\n      - right\n  styles:\n    - solid\n    - regular\n  unicode: f0a4\n  voted: false\nhand-point-up:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Hand Pointing Up\n  search:\n    terms:\n      - finger\n      - hand-o-up\n      - point\n  styles:\n    - solid\n    - regular\n  unicode: f0a6\n  voted: false\nhand-pointer:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Pointer (Hand)\n  search:\n    terms:\n      - arrow\n      - cursor\n      - select\n  styles:\n    - solid\n    - regular\n  unicode: f25a\n  voted: false\nhand-rock:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Rock (Hand)\n  search:\n    terms:\n      - fist\n      - game\n      - roshambo\n  styles:\n    - solid\n    - regular\n  unicode: f255\n  voted: false\nhand-scissors:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Scissors (Hand)\n  search:\n    terms:\n      - cut\n      - game\n      - roshambo\n  styles:\n    - solid\n    - regular\n  unicode: f257\n  voted: false\nhand-spock:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Spock (Hand)\n  search:\n    terms:\n      - live long\n      - prosper\n      - salute\n      - star trek\n      - vulcan\n  styles:\n    - solid\n    - regular\n  unicode: f259\n  voted: false\nhands:\n  changes:\n    - 5.0.9\n  label: Hands\n  search:\n    terms:\n      - carry\n      - hold\n      - lift\n  styles:\n    - solid\n  unicode: f4c2\n  voted: false\nhands-helping:\n  changes:\n    - 5.0.9\n  label: Helping Hands\n  search:\n    terms:\n      - aid\n      - assistance\n      - handshake\n      - partnership\n      - volunteering\n  styles:\n    - solid\n  unicode: f4c4\n  voted: false\nhandshake:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.9\n  label: Handshake\n  search:\n    terms:\n      - agreement\n      - greeting\n      - meeting\n      - partnership\n  styles:\n    - solid\n    - regular\n  unicode: f2b5\n  voted: false\nhanukiah:\n  changes:\n    - 5.4.0\n  label: Hanukiah\n  search:\n    terms:\n      - candle\n      - hanukkah\n      - jewish\n      - judaism\n      - light\n  styles:\n    - solid\n  unicode: f6e6\n  voted: false\nhard-hat:\n  changes:\n    - 5.7.0\n  label: Hard Hat\n  search:\n    terms:\n      - construction\n      - hardhat\n      - helmet\n      - safety\n  styles:\n    - solid\n  unicode: f807\n  voted: true\nhashtag:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Hashtag\n  search:\n    terms:\n      - Twitter\n      - instagram\n      - pound\n      - social media\n      - tag\n  styles:\n    - solid\n  unicode: f292\n  voted: false\nhat-wizard:\n  changes:\n    - 5.4.0\n  label: Wizard's Hat\n  search:\n    terms:\n      - Dungeons & Dragons\n      - accessory\n      - buckle\n      - clothing\n      - d&d\n      - dnd\n      - fantasy\n      - halloween\n      - head\n      - holiday\n      - mage\n      - magic\n      - pointy\n      - witch\n  styles:\n    - solid\n  unicode: f6e8\n  voted: false\nhaykal:\n  changes:\n    - 5.3.0\n  label: Haykal\n  search:\n    terms:\n      - bahai\n      - bahá'í\n      - star\n  styles:\n    - solid\n  unicode: f666\n  voted: false\nhdd:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: HDD\n  search:\n    terms:\n      - cpu\n      - hard drive\n      - harddrive\n      - machine\n      - save\n      - storage\n  styles:\n    - solid\n    - regular\n  unicode: f0a0\n  voted: false\nheading:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.9.0\n    - 5.10.1\n  label: heading\n  search:\n    terms:\n      - format\n      - header\n      - text\n      - title\n  styles:\n    - solid\n  unicode: f1dc\n  voted: false\nheadphones:\n  changes:\n    - '1'\n    - 5.0.0\n  label: headphones\n  search:\n    terms:\n      - audio\n      - listen\n      - music\n      - sound\n      - speaker\n  styles:\n    - solid\n  unicode: f025\n  voted: false\nheadphones-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Headphones\n  search:\n    terms:\n      - audio\n      - listen\n      - music\n      - sound\n      - speaker\n  styles:\n    - solid\n  unicode: f58f\n  voted: true\nheadset:\n  changes:\n    - 5.1.0\n  label: Headset\n  search:\n    terms:\n      - audio\n      - gamer\n      - gaming\n      - listen\n      - live chat\n      - microphone\n      - shot caller\n      - sound\n      - support\n      - telemarketer\n  styles:\n    - solid\n  unicode: f590\n  voted: true\nheart:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n    - 5.10.1\n  label: Heart\n  search:\n    terms:\n      - favorite\n      - like\n      - love\n      - relationship\n      - valentine\n  styles:\n    - solid\n    - regular\n  unicode: f004\n  voted: false\nheart-broken:\n  changes:\n    - 5.6.0\n  label: Heart Broken\n  search:\n    terms:\n      - breakup\n      - crushed\n      - dislike\n      - dumped\n      - grief\n      - love\n      - lovesick\n      - relationship\n      - sad\n  styles:\n    - solid\n  unicode: f7a9\n  voted: true\nheartbeat:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.7\n  label: Heartbeat\n  search:\n    terms:\n      - ekg\n      - electrocardiogram\n      - health\n      - lifeline\n      - vital signs\n  styles:\n    - solid\n  unicode: f21e\n  voted: false\nhelicopter:\n  changes:\n    - 5.0.13\n  label: Helicopter\n  search:\n    terms:\n      - airwolf\n      - apache\n      - chopper\n      - flight\n      - fly\n      - travel\n  styles:\n    - solid\n  unicode: f533\n  voted: true\nhighlighter:\n  changes:\n    - 5.1.0\n    - 5.10.1\n  label: Highlighter\n  search:\n    terms:\n      - edit\n      - marker\n      - sharpie\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f591\n  voted: true\nhiking:\n  changes:\n    - 5.4.0\n  label: Hiking\n  search:\n    terms:\n      - activity\n      - backpack\n      - fall\n      - fitness\n      - outdoors\n      - person\n      - seasonal\n      - walking\n  styles:\n    - solid\n  unicode: f6ec\n  voted: false\nhippo:\n  changes:\n    - 5.4.0\n    - 5.10.1\n  label: Hippo\n  search:\n    terms:\n      - animal\n      - fauna\n      - hippopotamus\n      - hungry\n      - mammal\n  styles:\n    - solid\n  unicode: f6ed\n  voted: false\nhips:\n  changes:\n    - 5.0.5\n  label: Hips\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f452\n  voted: false\nhire-a-helper:\n  changes:\n    - 5.0.0\n  label: HireAHelper\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b0\n  voted: false\nhistory:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: History\n  search:\n    terms:\n      - Rewind\n      - clock\n      - reverse\n      - time\n      - time machine\n  styles:\n    - solid\n  unicode: f1da\n  voted: false\nhockey-puck:\n  changes:\n    - 5.0.5\n  label: Hockey Puck\n  search:\n    terms:\n      - ice\n      - nhl\n      - sport\n  styles:\n    - solid\n  unicode: f453\n  voted: false\nholly-berry:\n  changes:\n    - 5.6.0\n  label: Holly Berry\n  search:\n    terms:\n      - catwoman\n      - christmas\n      - decoration\n      - flora\n      - halle\n      - holiday\n      - ororo munroe\n      - plant\n      - storm\n      - xmas\n  styles:\n    - solid\n  unicode: f7aa\nhome:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.7.0\n  label: home\n  search:\n    terms:\n      - abode\n      - building\n      - house\n      - main\n  styles:\n    - solid\n  unicode: f015\n  voted: false\nhooli:\n  changes:\n    - 5.0.0\n    - 5.7.0\n  label: Hooli\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f427\n  voted: false\nhornbill:\n  changes:\n    - 5.1.0\n    - 5.8.0\n  label: Hornbill\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f592\n  voted: false\nhorse:\n  changes:\n    - 5.4.0\n    - 5.10.1\n  label: Horse\n  search:\n    terms:\n      - equus\n      - fauna\n      - mammmal\n      - mare\n      - neigh\n      - pony\n  styles:\n    - solid\n  unicode: f6f0\n  voted: false\nhorse-head:\n  changes:\n    - 5.6.0\n    - 5.10.1\n  label: Horse Head\n  search:\n    terms:\n      - equus\n      - fauna\n      - mammmal\n      - mare\n      - neigh\n      - pony\n  styles:\n    - solid\n  unicode: f7ab\nhospital:\n  changes:\n    - '3'\n    - 5.0.0\n  label: hospital\n  search:\n    terms:\n      - building\n      - emergency room\n      - medical center\n  styles:\n    - solid\n    - regular\n  unicode: f0f8\n  voted: false\nhospital-alt:\n  changes:\n    - 5.0.7\n  label: Alternate Hospital\n  search:\n    terms:\n      - building\n      - emergency room\n      - medical center\n  styles:\n    - solid\n  unicode: f47d\n  voted: false\nhospital-symbol:\n  changes:\n    - 5.0.7\n  label: Hospital Symbol\n  search:\n    terms:\n      - clinic\n      - emergency\n      - map\n  styles:\n    - solid\n  unicode: f47e\n  voted: false\nhot-tub:\n  changes:\n    - 5.1.0\n  label: Hot Tub\n  search:\n    terms:\n      - bath\n      - jacuzzi\n      - massage\n      - sauna\n      - spa\n  styles:\n    - solid\n  unicode: f593\n  voted: false\nhotdog:\n  changes:\n    - 5.7.0\n  label: Hot Dog\n  search:\n    terms:\n      - bun\n      - chili\n      - frankfurt\n      - frankfurter\n      - kosher\n      - polish\n      - sandwich\n      - sausage\n      - vienna\n      - weiner\n  styles:\n    - solid\n  unicode: f80f\n  voted: false\nhotel:\n  changes:\n    - 5.1.0\n  label: Hotel\n  search:\n    terms:\n      - building\n      - inn\n      - lodging\n      - motel\n      - resort\n      - travel\n  styles:\n    - solid\n  unicode: f594\n  voted: false\nhotjar:\n  changes:\n    - 5.0.0\n  label: Hotjar\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b1\n  voted: false\nhourglass:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Hourglass\n  search:\n    terms:\n      - hour\n      - minute\n      - sand\n      - stopwatch\n      - time\n  styles:\n    - solid\n    - regular\n  unicode: f254\n  voted: false\nhourglass-end:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Hourglass End\n  search:\n    terms:\n      - hour\n      - minute\n      - sand\n      - stopwatch\n      - time\n  styles:\n    - solid\n  unicode: f253\n  voted: false\nhourglass-half:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Hourglass Half\n  search:\n    terms:\n      - hour\n      - minute\n      - sand\n      - stopwatch\n      - time\n  styles:\n    - solid\n  unicode: f252\n  voted: false\nhourglass-start:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Hourglass Start\n  search:\n    terms:\n      - hour\n      - minute\n      - sand\n      - stopwatch\n      - time\n  styles:\n    - solid\n  unicode: f251\n  voted: false\nhouse-damage:\n  changes:\n    - 5.4.0\n  label: Damaged House\n  search:\n    terms:\n      - building\n      - devastation\n      - disaster\n      - home\n      - insurance\n  styles:\n    - solid\n  unicode: f6f1\n  voted: false\nhouzz:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.0.9\n    - 5.8.0\n  label: Houzz\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f27c\n  voted: false\nhryvnia:\n  changes:\n    - 5.4.0\n  label: Hryvnia\n  search:\n    terms:\n      - currency\n      - money\n      - ukraine\n      - ukrainian\n  styles:\n    - solid\n  unicode: f6f2\n  voted: true\nhtml5:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: HTML 5 Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f13b\n  voted: false\nhubspot:\n  changes:\n    - 5.0.0\n  label: HubSpot\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b2\n  voted: false\ni-cursor:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: I Beam Cursor\n  search:\n    terms:\n      - editing\n      - i-beam\n      - type\n      - writing\n  styles:\n    - solid\n  unicode: f246\n  voted: false\nice-cream:\n  changes:\n    - 5.7.0\n  label: Ice Cream\n  search:\n    terms:\n      - chocolate\n      - cone\n      - dessert\n      - frozen\n      - scoop\n      - sorbet\n      - vanilla\n      - yogurt\n  styles:\n    - solid\n  unicode: f810\n  voted: false\nicicles:\n  changes:\n    - 5.6.0\n  label: Icicles\n  search:\n    terms:\n      - cold\n      - frozen\n      - hanging\n      - ice\n      - seasonal\n      - sharp\n  styles:\n    - solid\n  unicode: f7ad\nicons:\n  changes:\n    - 5.9.0\n  label: Icons\n  search:\n    terms:\n      - bolt\n      - emoji\n      - heart\n      - image\n      - music\n      - photo\n      - symbols\n  styles:\n    - solid\n  unicode: f86d\n  voted: false\nid-badge:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.3\n  label: Identification Badge\n  search:\n    terms:\n      - address\n      - contact\n      - identification\n      - license\n      - profile\n  styles:\n    - solid\n    - regular\n  unicode: f2c1\n  voted: false\nid-card:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.3\n    - 5.8.0\n    - 5.10.1\n  label: Identification Card\n  search:\n    terms:\n      - contact\n      - demographics\n      - document\n      - identification\n      - issued\n      - profile\n  styles:\n    - solid\n    - regular\n  unicode: f2c2\n  voted: false\nid-card-alt:\n  changes:\n    - 5.0.7\n    - 5.10.1\n  label: Alternate Identification Card\n  search:\n    terms:\n      - contact\n      - demographics\n      - document\n      - identification\n      - issued\n      - profile\n  styles:\n    - solid\n  unicode: f47f\n  voted: false\nigloo:\n  changes:\n    - 5.6.0\n  label: Igloo\n  search:\n    terms:\n      - dome\n      - dwelling\n      - eskimo\n      - home\n      - house\n      - ice\n      - snow\n  styles:\n    - solid\n  unicode: f7ae\nimage:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.10.1\n  label: Image\n  search:\n    terms:\n      - album\n      - landscape\n      - photo\n      - picture\n  styles:\n    - solid\n    - regular\n  unicode: f03e\n  voted: false\nimages:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.10.1\n  label: Images\n  search:\n    terms:\n      - album\n      - landscape\n      - photo\n      - picture\n  styles:\n    - solid\n    - regular\n  unicode: f302\n  voted: false\nimdb:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: IMDB\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2d8\n  voted: false\ninbox:\n  changes:\n    - '1'\n    - 5.0.0\n  label: inbox\n  search:\n    terms:\n      - archive\n      - desk\n      - email\n      - mail\n      - message\n  styles:\n    - solid\n  unicode: f01c\n  voted: false\nindent:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: Indent\n  search:\n    terms:\n      - align\n      - justify\n      - paragraph\n      - tab\n  styles:\n    - solid\n  unicode: f03c\n  voted: false\nindustry:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Industry\n  search:\n    terms:\n      - building\n      - factory\n      - industrial\n      - manufacturing\n      - mill\n      - warehouse\n  styles:\n    - solid\n  unicode: f275\n  voted: false\ninfinity:\n  changes:\n    - 5.0.13\n    - 5.3.0\n    - 5.10.1\n  label: Infinity\n  search:\n    terms:\n      - eternity\n      - forever\n      - math\n  styles:\n    - solid\n  unicode: f534\n  voted: true\ninfo:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.10.1\n  label: Info\n  search:\n    terms:\n      - details\n      - help\n      - information\n      - more\n      - support\n  styles:\n    - solid\n  unicode: f129\n  voted: false\ninfo-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Info Circle\n  search:\n    terms:\n      - details\n      - help\n      - information\n      - more\n      - support\n  styles:\n    - solid\n  unicode: f05a\n  voted: false\ninstagram:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Instagram\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f16d\n  voted: false\nintercom:\n  changes:\n    - 5.6.0\n  label: Intercom\n  search:\n    terms:\n      - app\n      - customer\n      - messenger\n  styles:\n    - brands\n  unicode: f7af\n  voted: false\ninternet-explorer:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Internet-explorer\n  search:\n    terms:\n      - browser\n      - ie\n  styles:\n    - brands\n  unicode: f26b\n  voted: false\ninvision:\n  changes:\n    - 5.6.0\n  label: InVision\n  search:\n    terms:\n      - app\n      - design\n      - interface\n  styles:\n    - brands\n  unicode: f7b0\n  voted: false\nioxhost:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: ioxhost\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f208\n  voted: false\nitalic:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n    - 5.10.1\n  label: italic\n  search:\n    terms:\n      - edit\n      - emphasis\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f033\n  voted: false\nitch-io:\n  changes:\n    - 5.8.0\n  label: itch.io\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f83a\nitunes:\n  changes:\n    - 5.0.0\n  label: iTunes\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b4\n  voted: false\nitunes-note:\n  changes:\n    - 5.0.0\n  label: Itunes Note\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b5\n  voted: false\njava:\n  changes:\n    - 5.0.10\n    - 5.7.0\n    - 5.8.0\n  label: Java\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4e4\n  voted: false\njedi:\n  changes:\n    - 5.3.0\n  label: Jedi\n  search:\n    terms:\n      - crest\n      - force\n      - sith\n      - skywalker\n      - star wars\n      - yoda\n  styles:\n    - solid\n  unicode: f669\n  voted: false\njedi-order:\n  changes:\n    - 5.0.12\n    - 5.7.0\n  label: Jedi Order\n  search:\n    terms:\n      - star wars\n  styles:\n    - brands\n  unicode: f50e\n  voted: false\njenkins:\n  changes:\n    - 5.0.0\n  label: Jenkis\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b6\n  voted: false\njira:\n  changes:\n    - 5.6.0\n  label: Jira\n  search:\n    terms:\n      - atlassian\n  styles:\n    - brands\n  unicode: f7b1\n  voted: true\njoget:\n  changes:\n    - 5.0.0\n  label: Joget\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b7\n  voted: false\njoint:\n  changes:\n    - 5.1.0\n  label: Joint\n  search:\n    terms:\n      - blunt\n      - cannabis\n      - doobie\n      - drugs\n      - marijuana\n      - roach\n      - smoke\n      - smoking\n      - spliff\n  styles:\n    - solid\n  unicode: f595\n  voted: false\njoomla:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Joomla Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1aa\n  voted: false\njournal-whills:\n  changes:\n    - 5.3.0\n  label: Journal of the Whills\n  search:\n    terms:\n      - book\n      - force\n      - jedi\n      - sith\n      - star wars\n      - yoda\n  styles:\n    - solid\n  unicode: f66a\n  voted: false\njs:\n  changes:\n    - 5.0.0\n  label: JavaScript (JS)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b8\n  voted: false\njs-square:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: JavaScript (JS) Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3b9\n  voted: false\njsfiddle:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: jsFiddle\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1cc\n  voted: false\nkaaba:\n  changes:\n    - 5.3.0\n  label: Kaaba\n  search:\n    terms:\n      - building\n      - cube\n      - islam\n      - muslim\n  styles:\n    - solid\n  unicode: f66b\n  voted: false\nkaggle:\n  changes:\n    - 5.2.0\n    - 5.8.0\n  label: Kaggle\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5fa\n  voted: true\nkey:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.10.1\n  label: key\n  search:\n    terms:\n      - lock\n      - password\n      - private\n      - secret\n      - unlock\n  styles:\n    - solid\n  unicode: f084\n  voted: false\nkeybase:\n  changes:\n    - 5.0.11\n    - 5.8.0\n  label: Keybase\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f5\n  voted: true\nkeyboard:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Keyboard\n  search:\n    terms:\n      - accessory\n      - edit\n      - input\n      - text\n      - type\n      - write\n  styles:\n    - solid\n    - regular\n  unicode: f11c\n  voted: false\nkeycdn:\n  changes:\n    - 5.0.0\n  label: KeyCDN\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ba\n  voted: false\nkhanda:\n  changes:\n    - 5.3.0\n  label: Khanda\n  search:\n    terms:\n      - chakkar\n      - sikh\n      - sikhism\n      - sword\n  styles:\n    - solid\n  unicode: f66d\n  voted: false\nkickstarter:\n  changes:\n    - 5.0.0\n  label: Kickstarter\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3bb\n  voted: false\nkickstarter-k:\n  changes:\n    - 5.0.0\n  label: Kickstarter K\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3bc\n  voted: false\nkiss:\n  changes:\n    - 5.1.0\n    - 5.1.1\n  label: Kissing Face\n  search:\n    terms:\n      - beso\n      - emoticon\n      - face\n      - love\n      - smooch\n  styles:\n    - solid\n    - regular\n  unicode: f596\n  voted: false\nkiss-beam:\n  changes:\n    - 5.1.0\n  label: Kissing Face With Smiling Eyes\n  search:\n    terms:\n      - beso\n      - emoticon\n      - face\n      - love\n      - smooch\n  styles:\n    - solid\n    - regular\n  unicode: f597\n  voted: false\nkiss-wink-heart:\n  changes:\n    - 5.1.0\n  label: Face Blowing a Kiss\n  search:\n    terms:\n      - beso\n      - emoticon\n      - face\n      - love\n      - smooch\n  styles:\n    - solid\n    - regular\n  unicode: f598\n  voted: false\nkiwi-bird:\n  changes:\n    - 5.0.13\n  label: Kiwi Bird\n  search:\n    terms:\n      - bird\n      - fauna\n      - new zealand\n  styles:\n    - solid\n  unicode: f535\n  voted: false\nkorvue:\n  changes:\n    - 5.0.2\n  label: KORVUE\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42f\n  voted: false\nlandmark:\n  changes:\n    - 5.3.0\n  label: Landmark\n  search:\n    terms:\n      - building\n      - historic\n      - memorable\n      - monument\n      - politics\n  styles:\n    - solid\n  unicode: f66f\n  voted: false\nlanguage:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Language\n  search:\n    terms:\n      - dialect\n      - idiom\n      - localize\n      - speech\n      - translate\n      - vernacular\n  styles:\n    - solid\n  unicode: f1ab\n  voted: false\nlaptop:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.2.0\n  label: Laptop\n  search:\n    terms:\n      - computer\n      - cpu\n      - dell\n      - demo\n      - device\n      - mac\n      - macbook\n      - machine\n      - pc\n  styles:\n    - solid\n  unicode: f109\n  voted: false\nlaptop-code:\n  changes:\n    - 5.2.0\n  label: Laptop Code\n  search:\n    terms:\n      - computer\n      - cpu\n      - dell\n      - demo\n      - develop\n      - device\n      - mac\n      - macbook\n      - machine\n      - pc\n  styles:\n    - solid\n  unicode: f5fc\n  voted: false\nlaptop-medical:\n  changes:\n    - 5.7.0\n  label: Laptop Medical\n  search:\n    terms:\n      - computer\n      - device\n      - ehr\n      - electronic health records\n      - history\n  styles:\n    - solid\n  unicode: f812\n  voted: false\nlaravel:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Laravel\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3bd\n  voted: false\nlastfm:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: last.fm\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f202\n  voted: false\nlastfm-square:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.0.11\n  label: last.fm Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f203\n  voted: false\nlaugh:\n  changes:\n    - 5.1.0\n  label: Grinning Face With Big Eyes\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n      - laugh\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f599\n  voted: false\nlaugh-beam:\n  changes:\n    - 5.1.0\n  label: Laugh Face with Beaming Eyes\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n      - happy\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f59a\n  voted: false\nlaugh-squint:\n  changes:\n    - 5.1.0\n  label: Laughing Squinting Face\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n      - happy\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f59b\n  voted: false\nlaugh-wink:\n  changes:\n    - 5.1.0\n  label: Laughing Winking Face\n  search:\n    terms:\n      - LOL\n      - emoticon\n      - face\n      - happy\n      - smile\n  styles:\n    - solid\n    - regular\n  unicode: f59c\n  voted: false\nlayer-group:\n  changes:\n    - 5.2.0\n  label: Layer Group\n  search:\n    terms:\n      - arrange\n      - develop\n      - layers\n      - map\n      - stack\n  styles:\n    - solid\n  unicode: f5fd\n  voted: false\nleaf:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n  label: leaf\n  search:\n    terms:\n      - eco\n      - flora\n      - nature\n      - plant\n      - vegan\n  styles:\n    - solid\n  unicode: f06c\n  voted: false\nleanpub:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Leanpub\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f212\n  voted: false\nlemon:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Lemon\n  search:\n    terms:\n      - citrus\n      - lemonade\n      - lime\n      - tart\n  styles:\n    - solid\n    - regular\n  unicode: f094\n  voted: false\nless:\n  changes:\n    - 5.0.0\n  label: Less\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41d\n  voted: false\nless-than:\n  changes:\n    - 5.0.13\n  label: Less Than\n  search:\n    terms:\n      - arithmetic\n      - compare\n      - math\n  styles:\n    - solid\n  unicode: f536\n  voted: true\nless-than-equal:\n  changes:\n    - 5.0.13\n  label: Less Than Equal To\n  search:\n    terms:\n      - arithmetic\n      - compare\n      - math\n  styles:\n    - solid\n  unicode: f537\n  voted: true\nlevel-down-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Level Down\n  search:\n    terms:\n      - arrow\n      - level-down\n  styles:\n    - solid\n  unicode: f3be\n  voted: false\nlevel-up-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Level Up\n  search:\n    terms:\n      - arrow\n      - level-up\n  styles:\n    - solid\n  unicode: f3bf\n  voted: false\nlife-ring:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Life Ring\n  search:\n    terms:\n      - coast guard\n      - help\n      - overboard\n      - save\n      - support\n  styles:\n    - solid\n    - regular\n  unicode: f1cd\n  voted: false\nlightbulb:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.3.0\n  label: Lightbulb\n  search:\n    terms:\n      - energy\n      - idea\n      - inspiration\n      - light\n  styles:\n    - solid\n    - regular\n  unicode: f0eb\n  voted: false\nline:\n  changes:\n    - 5.0.0\n  label: Line\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c0\n  voted: false\nlink:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Link\n  search:\n    terms:\n      - attach\n      - attachment\n      - chain\n      - connect\n  styles:\n    - solid\n  unicode: f0c1\n  voted: false\nlinkedin:\n  changes:\n    - '1'\n    - 5.0.0\n  label: LinkedIn\n  search:\n    terms:\n      - linkedin-square\n  styles:\n    - brands\n  unicode: f08c\n  voted: false\nlinkedin-in:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.4.1\n    - 5.8.0\n    - 5.8.1\n  label: LinkedIn In\n  search:\n    terms:\n      - linkedin\n  styles:\n    - brands\n  unicode: f0e1\n  voted: false\nlinode:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Linode\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2b8\n  voted: false\nlinux:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Linux\n  search:\n    terms:\n      - tux\n  styles:\n    - brands\n  unicode: f17c\n  voted: false\nlira-sign:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Turkish Lira Sign\n  search:\n    terms:\n      - currency\n      - money\n      - try\n      - turkish\n  styles:\n    - solid\n  unicode: f195\n  voted: false\nlist:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: List\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - ol\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f03a\n  voted: false\nlist-alt:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Alternate List\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - ol\n      - todo\n      - ul\n  styles:\n    - solid\n    - regular\n  unicode: f022\n  voted: false\nlist-ol:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.9.0\n  label: list-ol\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - numbers\n      - ol\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f0cb\n  voted: false\nlist-ul:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.9.0\n  label: list-ul\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - ol\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f0ca\n  voted: false\nlocation-arrow:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: location-arrow\n  search:\n    terms:\n      - address\n      - compass\n      - coordinate\n      - direction\n      - gps\n      - map\n      - navigation\n      - place\n  styles:\n    - solid\n  unicode: f124\n  voted: false\nlock:\n  changes:\n    - '1'\n    - 5.0.0\n  label: lock\n  search:\n    terms:\n      - admin\n      - lock\n      - open\n      - password\n      - private\n      - protect\n      - security\n  styles:\n    - solid\n  unicode: f023\n  voted: false\nlock-open:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.1\n  label: Lock Open\n  search:\n    terms:\n      - admin\n      - lock\n      - open\n      - password\n      - private\n      - protect\n      - security\n  styles:\n    - solid\n  unicode: f3c1\n  voted: false\nlong-arrow-alt-down:\n  changes:\n    - 5.0.0\n  label: Alternate Long Arrow Down\n  search:\n    terms:\n      - download\n      - long-arrow-down\n  styles:\n    - solid\n  unicode: f309\n  voted: false\nlong-arrow-alt-left:\n  changes:\n    - 5.0.0\n  label: Alternate Long Arrow Left\n  search:\n    terms:\n      - back\n      - long-arrow-left\n      - previous\n  styles:\n    - solid\n  unicode: f30a\n  voted: false\nlong-arrow-alt-right:\n  changes:\n    - 5.0.0\n  label: Alternate Long Arrow Right\n  search:\n    terms:\n      - forward\n      - long-arrow-right\n      - next\n  styles:\n    - solid\n  unicode: f30b\n  voted: false\nlong-arrow-alt-up:\n  changes:\n    - 5.0.0\n  label: Alternate Long Arrow Up\n  search:\n    terms:\n      - long-arrow-up\n      - upload\n  styles:\n    - solid\n  unicode: f30c\n  voted: false\nlow-vision:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Low Vision\n  search:\n    terms:\n      - blind\n      - eye\n      - sight\n  styles:\n    - solid\n  unicode: f2a8\n  voted: false\nluggage-cart:\n  changes:\n    - 5.1.0\n  label: Luggage Cart\n  search:\n    terms:\n      - bag\n      - baggage\n      - suitcase\n      - travel\n  styles:\n    - solid\n  unicode: f59d\n  voted: false\nlyft:\n  changes:\n    - 5.0.0\n  label: lyft\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c3\n  voted: false\nmagento:\n  changes:\n    - 5.0.0\n  label: Magento\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c4\n  voted: false\nmagic:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.1.0\n  label: magic\n  search:\n    terms:\n      - autocomplete\n      - automatic\n      - mage\n      - magic\n      - spell\n      - wand\n      - witch\n      - wizard\n  styles:\n    - solid\n  unicode: f0d0\n  voted: false\nmagnet:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.8.0\n  label: magnet\n  search:\n    terms:\n      - Attract\n      - lodestone\n      - tool\n  styles:\n    - solid\n  unicode: f076\n  voted: false\nmail-bulk:\n  changes:\n    - 5.3.0\n  label: Mail Bulk\n  search:\n    terms:\n      - archive\n      - envelope\n      - letter\n      - post office\n      - postal\n      - postcard\n      - send\n      - stamp\n      - usps\n  styles:\n    - solid\n  unicode: f674\n  voted: false\nmailchimp:\n  changes:\n    - 5.1.0\n    - 5.7.0\n    - 5.8.0\n    - 5.8.2\n  label: Mailchimp\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f59e\n  voted: true\nmale:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Male\n  search:\n    terms:\n      - human\n      - man\n      - person\n      - profile\n      - user\n  styles:\n    - solid\n  unicode: f183\n  voted: false\nmandalorian:\n  changes:\n    - 5.0.12\n    - 5.8.0\n  label: Mandalorian\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f50f\n  voted: false\nmap:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.1.0\n  label: Map\n  search:\n    terms:\n      - address\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - navigation\n      - paper\n      - pin\n      - place\n      - point of interest\n      - position\n      - route\n      - travel\n  styles:\n    - solid\n    - regular\n  unicode: f279\n  voted: false\nmap-marked:\n  changes:\n    - 5.1.0\n  label: Map Marked\n  search:\n    terms:\n      - address\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - navigation\n      - paper\n      - pin\n      - place\n      - point of interest\n      - position\n      - route\n      - travel\n  styles:\n    - solid\n  unicode: f59f\n  voted: false\nmap-marked-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Map Marked\n  search:\n    terms:\n      - address\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - navigation\n      - paper\n      - pin\n      - place\n      - point of interest\n      - position\n      - route\n      - travel\n  styles:\n    - solid\n  unicode: f5a0\n  voted: false\nmap-marker:\n  changes:\n    - '1'\n    - 5.0.0\n  label: map-marker\n  search:\n    terms:\n      - address\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - navigation\n      - paper\n      - pin\n      - place\n      - point of interest\n      - position\n      - route\n      - travel\n  styles:\n    - solid\n  unicode: f041\n  voted: false\nmap-marker-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Map Marker\n  search:\n    terms:\n      - address\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - navigation\n      - paper\n      - pin\n      - place\n      - point of interest\n      - position\n      - route\n      - travel\n  styles:\n    - solid\n  unicode: f3c5\n  voted: false\nmap-pin:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.2.0\n  label: Map Pin\n  search:\n    terms:\n      - address\n      - agree\n      - coordinates\n      - destination\n      - gps\n      - localize\n      - location\n      - map\n      - marker\n      - navigation\n      - pin\n      - place\n      - position\n      - travel\n  styles:\n    - solid\n  unicode: f276\n  voted: false\nmap-signs:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.2.0\n  label: Map Signs\n  search:\n    terms:\n      - directions\n      - directory\n      - map\n      - signage\n      - wayfinding\n  styles:\n    - solid\n  unicode: f277\n  voted: false\nmarkdown:\n  changes:\n    - 5.2.0\n    - 5.7.0\n  label: Markdown\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f60f\n  voted: true\nmarker:\n  changes:\n    - 5.1.0\n  label: Marker\n  search:\n    terms:\n      - design\n      - edit\n      - sharpie\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f5a1\n  voted: true\nmars:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mars\n  search:\n    terms:\n      - male\n  styles:\n    - solid\n  unicode: f222\n  voted: false\nmars-double:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mars Double\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f227\n  voted: false\nmars-stroke:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mars Stroke\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f229\n  voted: false\nmars-stroke-h:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mars Stroke Horizontal\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f22b\n  voted: false\nmars-stroke-v:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mars Stroke Vertical\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f22a\n  voted: false\nmask:\n  changes:\n    - 5.4.0\n    - 5.10.1\n  label: Mask\n  search:\n    terms:\n      - carnivale\n      - costume\n      - disguise\n      - halloween\n      - secret\n      - super hero\n  styles:\n    - solid\n  unicode: f6fa\n  voted: false\nmastodon:\n  changes:\n    - 5.0.11\n    - 5.8.0\n  label: Mastodon\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f6\n  voted: true\nmaxcdn:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: MaxCDN\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f136\n  voted: false\nmedal:\n  changes:\n    - 5.1.0\n  label: Medal\n  search:\n    terms:\n      - award\n      - ribbon\n      - star\n      - trophy\n  styles:\n    - solid\n  unicode: f5a2\n  voted: true\nmedapps:\n  changes:\n    - 5.0.0\n  label: MedApps\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c6\n  voted: false\nmedium:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Medium\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f23a\n  voted: false\nmedium-m:\n  changes:\n    - 5.0.0\n  label: Medium M\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c7\n  voted: false\nmedkit:\n  changes:\n    - '3'\n    - 5.0.0\n  label: medkit\n  search:\n    terms:\n      - first aid\n      - firstaid\n      - health\n      - help\n      - support\n  styles:\n    - solid\n  unicode: f0fa\n  voted: false\nmedrt:\n  changes:\n    - 5.0.0\n  label: MRT\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3c8\n  voted: false\nmeetup:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Meetup\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2e0\n  voted: false\nmegaport:\n  changes:\n    - 5.1.0\n  label: Megaport\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5a3\n  voted: false\nmeh:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.9\n    - 5.1.0\n  label: Neutral Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - neutral\n      - rating\n  styles:\n    - solid\n    - regular\n  unicode: f11a\n  voted: false\nmeh-blank:\n  changes:\n    - 5.1.0\n  label: Face Without Mouth\n  search:\n    terms:\n      - emoticon\n      - face\n      - neutral\n      - rating\n  styles:\n    - solid\n    - regular\n  unicode: f5a4\n  voted: false\nmeh-rolling-eyes:\n  changes:\n    - 5.1.0\n  label: Face With Rolling Eyes\n  search:\n    terms:\n      - emoticon\n      - face\n      - neutral\n      - rating\n  styles:\n    - solid\n    - regular\n  unicode: f5a5\n  voted: false\nmemory:\n  changes:\n    - 5.0.13\n  label: Memory\n  search:\n    terms:\n      - DIMM\n      - RAM\n      - hardware\n      - storage\n      - technology\n  styles:\n    - solid\n  unicode: f538\n  voted: true\nmendeley:\n  changes:\n    - 5.6.0\n  label: Mendeley\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f7b3\n  voted: true\nmenorah:\n  changes:\n    - 5.3.0\n    - 5.4.0\n  label: Menorah\n  search:\n    terms:\n      - candle\n      - hanukkah\n      - jewish\n      - judaism\n      - light\n  styles:\n    - solid\n  unicode: f676\n  voted: false\nmercury:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Mercury\n  search:\n    terms:\n      - transgender\n  styles:\n    - solid\n  unicode: f223\n  voted: false\nmeteor:\n  changes:\n    - 5.5.0\n  label: Meteor\n  search:\n    terms:\n      - armageddon\n      - asteroid\n      - comet\n      - shooting star\n      - space\n  styles:\n    - solid\n  unicode: f753\n  voted: false\nmicrochip:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Microchip\n  search:\n    terms:\n      - cpu\n      - hardware\n      - processor\n      - technology\n  styles:\n    - solid\n  unicode: f2db\n  voted: false\nmicrophone:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.13\n  label: microphone\n  search:\n    terms:\n      - audio\n      - podcast\n      - record\n      - sing\n      - sound\n      - voice\n  styles:\n    - solid\n  unicode: f130\n  voted: false\nmicrophone-alt:\n  changes:\n    - 5.0.0\n    - 5.0.13\n  label: Alternate Microphone\n  search:\n    terms:\n      - audio\n      - podcast\n      - record\n      - sing\n      - sound\n      - voice\n  styles:\n    - solid\n  unicode: f3c9\n  voted: false\nmicrophone-alt-slash:\n  changes:\n    - 5.0.13\n  label: Alternate Microphone Slash\n  search:\n    terms:\n      - audio\n      - disable\n      - mute\n      - podcast\n      - record\n      - sing\n      - sound\n      - voice\n  styles:\n    - solid\n  unicode: f539\n  voted: false\nmicrophone-slash:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.13\n  label: Microphone Slash\n  search:\n    terms:\n      - audio\n      - disable\n      - mute\n      - podcast\n      - record\n      - sing\n      - sound\n      - voice\n  styles:\n    - solid\n  unicode: f131\n  voted: false\nmicroscope:\n  changes:\n    - 5.2.0\n  label: Microscope\n  search:\n    terms:\n      - electron\n      - lens\n      - optics\n      - science\n      - shrink\n  styles:\n    - solid\n  unicode: f610\n  voted: false\nmicrosoft:\n  changes:\n    - 5.0.0\n  label: Microsoft\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ca\n  voted: true\nminus:\n  changes:\n    - '1'\n    - 5.0.0\n  label: minus\n  search:\n    terms:\n      - collapse\n      - delete\n      - hide\n      - minify\n      - negative\n      - remove\n      - trash\n  styles:\n    - solid\n  unicode: f068\n  voted: false\nminus-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Minus Circle\n  search:\n    terms:\n      - delete\n      - hide\n      - negative\n      - remove\n      - shape\n      - trash\n  styles:\n    - solid\n  unicode: f056\n  voted: false\nminus-square:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Minus Square\n  search:\n    terms:\n      - collapse\n      - delete\n      - hide\n      - minify\n      - negative\n      - remove\n      - shape\n      - trash\n  styles:\n    - solid\n    - regular\n  unicode: f146\n  voted: false\nmitten:\n  changes:\n    - 5.6.0\n  label: Mitten\n  search:\n    terms:\n      - clothing\n      - cold\n      - glove\n      - hands\n      - knitted\n      - seasonal\n      - warmth\n  styles:\n    - solid\n  unicode: f7b5\nmix:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Mix\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3cb\n  voted: false\nmixcloud:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Mixcloud\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f289\n  voted: false\nmizuni:\n  changes:\n    - 5.0.0\n  label: Mizuni\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3cc\n  voted: false\nmobile:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Mobile Phone\n  search:\n    terms:\n      - apple\n      - call\n      - cell phone\n      - cellphone\n      - device\n      - iphone\n      - number\n      - screen\n      - telephone\n  styles:\n    - solid\n  unicode: f10b\n  voted: false\nmobile-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Mobile\n  search:\n    terms:\n      - apple\n      - call\n      - cell phone\n      - cellphone\n      - device\n      - iphone\n      - number\n      - screen\n      - telephone\n  styles:\n    - solid\n  unicode: f3cd\n  voted: false\nmodx:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: MODX\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f285\n  voted: false\nmonero:\n  changes:\n    - 5.0.0\n  label: Monero\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d0\n  voted: false\nmoney-bill:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.13\n  label: Money Bill\n  search:\n    terms:\n      - buy\n      - cash\n      - checkout\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n  unicode: f0d6\n  voted: false\nmoney-bill-alt:\n  changes:\n    - 5.0.0\n    - 5.0.13\n  label: Alternate Money Bill\n  search:\n    terms:\n      - buy\n      - cash\n      - checkout\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n    - regular\n  unicode: f3d1\n  voted: false\nmoney-bill-wave:\n  changes:\n    - 5.0.13\n  label: Wavy Money Bill\n  search:\n    terms:\n      - buy\n      - cash\n      - checkout\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n  unicode: f53a\n  voted: true\nmoney-bill-wave-alt:\n  changes:\n    - 5.0.13\n  label: Alternate Wavy Money Bill\n  search:\n    terms:\n      - buy\n      - cash\n      - checkout\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n  unicode: f53b\n  voted: true\nmoney-check:\n  changes:\n    - 5.0.13\n  label: Money Check\n  search:\n    terms:\n      - bank check\n      - buy\n      - checkout\n      - cheque\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n  unicode: f53c\n  voted: true\nmoney-check-alt:\n  changes:\n    - 5.0.13\n  label: Alternate Money Check\n  search:\n    terms:\n      - bank check\n      - buy\n      - checkout\n      - cheque\n      - money\n      - payment\n      - price\n      - purchase\n  styles:\n    - solid\n  unicode: f53d\n  voted: true\nmonument:\n  changes:\n    - 5.1.0\n  label: Monument\n  search:\n    terms:\n      - building\n      - historic\n      - landmark\n      - memorable\n  styles:\n    - solid\n  unicode: f5a6\n  voted: false\nmoon:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Moon\n  search:\n    terms:\n      - contrast\n      - crescent\n      - dark\n      - lunar\n      - night\n  styles:\n    - solid\n    - regular\n  unicode: f186\n  voted: false\nmortar-pestle:\n  changes:\n    - 5.1.0\n  label: Mortar Pestle\n  search:\n    terms:\n      - crush\n      - culinary\n      - grind\n      - medical\n      - mix\n      - pharmacy\n      - prescription\n      - spices\n  styles:\n    - solid\n  unicode: f5a7\n  voted: false\nmosque:\n  changes:\n    - 5.3.0\n  label: Mosque\n  search:\n    terms:\n      - building\n      - islam\n      - landmark\n      - muslim\n  styles:\n    - solid\n  unicode: f678\n  voted: false\nmotorcycle:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Motorcycle\n  search:\n    terms:\n      - bike\n      - machine\n      - transportation\n      - vehicle\n  styles:\n    - solid\n  unicode: f21c\n  voted: false\nmountain:\n  changes:\n    - 5.4.0\n  label: Mountain\n  search:\n    terms:\n      - glacier\n      - hiking\n      - hill\n      - landscape\n      - travel\n      - view\n  styles:\n    - solid\n  unicode: f6fc\n  voted: false\nmouse-pointer:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.0.3\n  label: Mouse Pointer\n  search:\n    terms:\n      - arrow\n      - cursor\n      - select\n  styles:\n    - solid\n  unicode: f245\n  voted: false\nmug-hot:\n  changes:\n    - 5.6.0\n  label: Mug Hot\n  search:\n    terms:\n      - caliente\n      - cocoa\n      - coffee\n      - cup\n      - drink\n      - holiday\n      - hot chocolate\n      - steam\n      - tea\n      - warmth\n  styles:\n    - solid\n  unicode: f7b6\nmusic:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.2.0\n  label: Music\n  search:\n    terms:\n      - lyrics\n      - melody\n      - note\n      - sing\n      - sound\n  styles:\n    - solid\n  unicode: f001\n  voted: false\nnapster:\n  changes:\n    - 5.0.0\n  label: Napster\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d2\n  voted: false\nneos:\n  changes:\n    - 5.2.0\n    - 5.8.0\n  label: Neos\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f612\n  voted: true\nnetwork-wired:\n  changes:\n    - 5.4.0\n  label: Wired Network\n  search:\n    terms:\n      - computer\n      - connect\n      - ethernet\n      - internet\n      - intranet\n  styles:\n    - solid\n  unicode: f6ff\n  voted: true\nneuter:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Neuter\n  search:\n    terms: []\n  styles:\n    - solid\n  unicode: f22c\n  voted: false\nnewspaper:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Newspaper\n  search:\n    terms:\n      - article\n      - editorial\n      - headline\n      - journal\n      - journalism\n      - news\n      - press\n  styles:\n    - solid\n    - regular\n  unicode: f1ea\n  voted: false\nnimblr:\n  changes:\n    - 5.1.0\n    - 5.8.0\n  label: Nimblr\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5a8\n  voted: false\nnode:\n  changes:\n    - 5.0.0\n  label: Node.js\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f419\n  voted: true\nnode-js:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Node.js JS\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d3\n  voted: false\nnot-equal:\n  changes:\n    - 5.0.13\n  label: Not Equal\n  search:\n    terms:\n      - arithmetic\n      - compare\n      - math\n  styles:\n    - solid\n  unicode: f53e\n  voted: true\nnotes-medical:\n  changes:\n    - 5.0.7\n  label: Medical Notes\n  search:\n    terms:\n      - clipboard\n      - doctor\n      - ehr\n      - health\n      - history\n      - records\n  styles:\n    - solid\n  unicode: f481\n  voted: false\nnpm:\n  changes:\n    - 5.0.0\n  label: npm\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d4\n  voted: false\nns8:\n  changes:\n    - 5.0.0\n  label: NS8\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d5\n  voted: false\nnutritionix:\n  changes:\n    - 5.0.0\n  label: Nutritionix\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d6\n  voted: false\nobject-group:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Object Group\n  search:\n    terms:\n      - combine\n      - copy\n      - design\n      - merge\n      - select\n  styles:\n    - solid\n    - regular\n  unicode: f247\n  voted: false\nobject-ungroup:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Object Ungroup\n  search:\n    terms:\n      - copy\n      - design\n      - merge\n      - select\n      - separate\n  styles:\n    - solid\n    - regular\n  unicode: f248\n  voted: false\nodnoklassniki:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Odnoklassniki\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f263\n  voted: false\nodnoklassniki-square:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Odnoklassniki Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f264\n  voted: false\noil-can:\n  changes:\n    - 5.2.0\n    - 5.10.1\n  label: Oil Can\n  search:\n    terms:\n      - auto\n      - crude\n      - gasoline\n      - grease\n      - lubricate\n      - petroleum\n  styles:\n    - solid\n  unicode: f613\n  voted: false\nold-republic:\n  changes:\n    - 5.0.12\n  label: Old Republic\n  search:\n    terms:\n      - politics\n      - star wars\n  styles:\n    - brands\n  unicode: f510\n  voted: false\nom:\n  changes:\n    - 5.3.0\n  label: Om\n  search:\n    terms:\n      - buddhism\n      - hinduism\n      - jainism\n      - mantra\n  styles:\n    - solid\n  unicode: f679\n  voted: false\nopencart:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: OpenCart\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f23d\n  voted: false\nopenid:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: OpenID\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f19b\n  voted: false\nopera:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Opera\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f26a\n  voted: false\noptin-monster:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.7.0\n  label: Optin Monster\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f23c\n  voted: false\nosi:\n  changes:\n    - 5.0.0\n    - 5.8.0\n  label: Open Source Initiative\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41a\n  voted: false\notter:\n  changes:\n    - 5.4.0\n  label: Otter\n  search:\n    terms:\n      - animal\n      - badger\n      - fauna\n      - fur\n      - mammal\n      - marten\n  styles:\n    - solid\n  unicode: f700\n  voted: false\noutdent:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: Outdent\n  search:\n    terms:\n      - align\n      - justify\n      - paragraph\n      - tab\n  styles:\n    - solid\n  unicode: f03b\n  voted: false\npage4:\n  changes:\n    - 5.0.0\n  label: page4 Corporation\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d7\n  voted: false\npagelines:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Pagelines\n  search:\n    terms:\n      - eco\n      - flora\n      - leaf\n      - leaves\n      - nature\n      - plant\n      - tree\n  styles:\n    - brands\n  unicode: f18c\n  voted: false\npager:\n  changes:\n    - 5.7.0\n  label: Pager\n  search:\n    terms:\n      - beeper\n      - cellphone\n      - communication\n  styles:\n    - solid\n  unicode: f815\n  voted: false\npaint-brush:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.1.0\n  label: Paint Brush\n  search:\n    terms:\n      - acrylic\n      - art\n      - brush\n      - color\n      - fill\n      - paint\n      - pigment\n      - watercolor\n  styles:\n    - solid\n  unicode: f1fc\n  voted: false\npaint-roller:\n  changes:\n    - 5.1.0\n  label: Paint Roller\n  search:\n    terms:\n      - acrylic\n      - art\n      - brush\n      - color\n      - fill\n      - paint\n      - pigment\n      - watercolor\n  styles:\n    - solid\n  unicode: f5aa\n  voted: false\npalette:\n  changes:\n    - 5.0.13\n  label: Palette\n  search:\n    terms:\n      - acrylic\n      - art\n      - brush\n      - color\n      - fill\n      - paint\n      - pigment\n      - watercolor\n  styles:\n    - solid\n  unicode: f53f\n  voted: true\npalfed:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Palfed\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d8\n  voted: false\npallet:\n  changes:\n    - 5.0.7\n  label: Pallet\n  search:\n    terms:\n      - archive\n      - box\n      - inventory\n      - shipping\n      - warehouse\n  styles:\n    - solid\n  unicode: f482\n  voted: false\npaper-plane:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Paper Plane\n  search:\n    terms:\n      - air\n      - float\n      - fold\n      - mail\n      - paper\n      - send\n  styles:\n    - solid\n    - regular\n  unicode: f1d8\n  voted: false\npaperclip:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Paperclip\n  search:\n    terms:\n      - attach\n      - attachment\n      - connect\n      - link\n  styles:\n    - solid\n  unicode: f0c6\n  voted: false\nparachute-box:\n  changes:\n    - 5.0.9\n  label: Parachute Box\n  search:\n    terms:\n      - aid\n      - assistance\n      - rescue\n      - supplies\n  styles:\n    - solid\n  unicode: f4cd\n  voted: false\nparagraph:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.9.0\n  label: paragraph\n  search:\n    terms:\n      - edit\n      - format\n      - text\n      - writing\n  styles:\n    - solid\n  unicode: f1dd\n  voted: false\nparking:\n  changes:\n    - 5.0.13\n  label: Parking\n  search:\n    terms:\n      - auto\n      - car\n      - garage\n      - meter\n  styles:\n    - solid\n  unicode: f540\n  voted: true\npassport:\n  changes:\n    - 5.1.0\n  label: Passport\n  search:\n    terms:\n      - document\n      - id\n      - identification\n      - issued\n      - travel\n  styles:\n    - solid\n  unicode: f5ab\n  voted: false\npastafarianism:\n  changes:\n    - 5.3.0\n  label: Pastafarianism\n  search:\n    terms:\n      - agnosticism\n      - atheism\n      - flying spaghetti monster\n      - fsm\n  styles:\n    - solid\n  unicode: f67b\n  voted: false\npaste:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Paste\n  search:\n    terms:\n      - clipboard\n      - copy\n      - document\n      - paper\n  styles:\n    - solid\n  unicode: f0ea\n  voted: false\npatreon:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Patreon\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3d9\n  voted: false\npause:\n  changes:\n    - '1'\n    - 5.0.0\n  label: pause\n  search:\n    terms:\n      - hold\n      - wait\n  styles:\n    - solid\n  unicode: f04c\n  voted: false\npause-circle:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Pause Circle\n  search:\n    terms:\n      - hold\n      - wait\n  styles:\n    - solid\n    - regular\n  unicode: f28b\n  voted: false\npaw:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Paw\n  search:\n    terms:\n      - animal\n      - cat\n      - dog\n      - pet\n      - print\n  styles:\n    - solid\n  unicode: f1b0\n  voted: false\npaypal:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Paypal\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1ed\n  voted: false\npeace:\n  changes:\n    - 5.3.0\n  label: Peace\n  search:\n    terms:\n      - serenity\n      - tranquility\n      - truce\n      - war\n  styles:\n    - solid\n  unicode: f67c\n  voted: false\npen:\n  changes:\n    - 5.0.0\n    - 5.1.0\n  label: Pen\n  search:\n    terms:\n      - design\n      - edit\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f304\n  voted: false\npen-alt:\n  changes:\n    - 5.0.0\n    - 5.1.0\n  label: Alternate Pen\n  search:\n    terms:\n      - design\n      - edit\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f305\n  voted: false\npen-fancy:\n  changes:\n    - 5.1.0\n  label: Pen Fancy\n  search:\n    terms:\n      - design\n      - edit\n      - fountain pen\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f5ac\n  voted: false\npen-nib:\n  changes:\n    - 5.1.0\n  label: Pen Nib\n  search:\n    terms:\n      - design\n      - edit\n      - fountain pen\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f5ad\n  voted: true\npen-square:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Pen Square\n  search:\n    terms:\n      - edit\n      - pencil-square\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f14b\n  voted: false\npencil-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Pencil\n  search:\n    terms:\n      - design\n      - edit\n      - pencil\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f303\n  voted: false\npencil-ruler:\n  changes:\n    - 5.1.0\n  label: Pencil Ruler\n  search:\n    terms:\n      - design\n      - draft\n      - draw\n      - pencil\n  styles:\n    - solid\n  unicode: f5ae\n  voted: false\npenny-arcade:\n  changes:\n    - 5.4.0\n  label: Penny Arcade\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - game\n      - gaming\n      - pax\n      - tabletop\n  styles:\n    - brands\n  unicode: f704\n  voted: false\npeople-carry:\n  changes:\n    - 5.0.9\n  label: People Carry\n  search:\n    terms:\n      - box\n      - carry\n      - fragile\n      - help\n      - movers\n      - package\n  styles:\n    - solid\n  unicode: f4ce\n  voted: false\npepper-hot:\n  changes:\n    - 5.7.0\n  label: Hot Pepper\n  search:\n    terms:\n      - buffalo wings\n      - capsicum\n      - chili\n      - chilli\n      - habanero\n      - jalapeno\n      - mexican\n      - spicy\n      - tabasco\n      - vegetable\n  styles:\n    - solid\n  unicode: f816\n  voted: true\npercent:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Percent\n  search:\n    terms:\n      - discount\n      - fraction\n      - proportion\n      - rate\n      - ratio\n  styles:\n    - solid\n  unicode: f295\n  voted: false\npercentage:\n  changes:\n    - 5.0.13\n  label: Percentage\n  search:\n    terms:\n      - discount\n      - fraction\n      - proportion\n      - rate\n      - ratio\n  styles:\n    - solid\n  unicode: f541\n  voted: true\nperiscope:\n  changes:\n    - 5.0.0\n  label: Periscope\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3da\n  voted: false\nperson-booth:\n  changes:\n    - 5.5.0\n  label: Person Entering Booth\n  search:\n    terms:\n      - changing\n      - changing room\n      - election\n      - human\n      - person\n      - vote\n      - voting\n  styles:\n    - solid\n  unicode: f756\n  voted: false\nphabricator:\n  changes:\n    - 5.0.0\n  label: Phabricator\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3db\n  voted: false\nphoenix-framework:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Phoenix Framework\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3dc\n  voted: false\nphoenix-squadron:\n  changes:\n    - 5.0.12\n    - 5.8.0\n  label: Phoenix Squadron\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f511\n  voted: false\nphone:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Phone\n  search:\n    terms:\n      - call\n      - earphone\n      - number\n      - support\n      - telephone\n      - voice\n  styles:\n    - solid\n  unicode: f095\n  voted: false\nphone-alt:\n  changes:\n    - 5.9.0\n    - 5.10.1\n  label: Alternate Phone\n  search:\n    terms:\n      - call\n      - earphone\n      - number\n      - support\n      - telephone\n      - voice\n  styles:\n    - solid\n  unicode: f879\n  voted: false\nphone-slash:\n  changes:\n    - 5.0.0\n    - 5.0.9\n  label: Phone Slash\n  search:\n    terms:\n      - call\n      - cancel\n      - earphone\n      - mute\n      - number\n      - support\n      - telephone\n      - voice\n  styles:\n    - solid\n  unicode: f3dd\n  voted: false\nphone-square:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Phone Square\n  search:\n    terms:\n      - call\n      - earphone\n      - number\n      - support\n      - telephone\n      - voice\n  styles:\n    - solid\n  unicode: f098\n  voted: false\nphone-square-alt:\n  changes:\n    - 5.9.0\n    - 5.10.1\n  label: Alternate Phone Square\n  search:\n    terms:\n      - call\n      - earphone\n      - number\n      - support\n      - telephone\n      - voice\n  styles:\n    - solid\n  unicode: f87b\n  voted: false\nphone-volume:\n  changes:\n    - '4.6'\n    - 5.0.0\n    - 5.0.3\n    - 5.7.0\n  label: Phone Volume\n  search:\n    terms:\n      - call\n      - earphone\n      - number\n      - sound\n      - support\n      - telephone\n      - voice\n      - volume-control-phone\n  styles:\n    - solid\n  unicode: f2a0\n  voted: false\nphoto-video:\n  changes:\n    - 5.9.0\n  label: Photo Video\n  search:\n    terms:\n      - av\n      - film\n      - image\n      - library\n      - media\n  styles:\n    - solid\n  unicode: f87c\n  voted: false\nphp:\n  changes:\n    - 5.0.5\n  label: PHP\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f457\n  voted: true\npied-piper:\n  changes:\n    - '4.6'\n    - 5.0.0\n    - 5.0.10\n  label: Pied Piper Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2ae\n  voted: false\npied-piper-alt:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.7.0\n  label: Alternate Pied Piper Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a8\n  voted: false\npied-piper-hat:\n  changes:\n    - 5.0.10\n  label: Pied Piper-hat\n  search:\n    terms:\n      - clothing\n  styles:\n    - brands\n  unicode: f4e5\n  voted: false\npied-piper-pp:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Pied Piper PP Logo (Old)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a7\n  voted: false\npiggy-bank:\n  changes:\n    - 5.0.9\n  label: Piggy Bank\n  search:\n    terms:\n      - bank\n      - save\n      - savings\n  styles:\n    - solid\n  unicode: f4d3\n  voted: false\npills:\n  changes:\n    - 5.0.7\n  label: Pills\n  search:\n    terms:\n      - drugs\n      - medicine\n      - prescription\n      - tablets\n  styles:\n    - solid\n  unicode: f484\n  voted: false\npinterest:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Pinterest\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f0d2\n  voted: false\npinterest-p:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Pinterest P\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f231\n  voted: false\npinterest-square:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Pinterest Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f0d3\n  voted: false\npizza-slice:\n  changes:\n    - 5.7.0\n  label: Pizza Slice\n  search:\n    terms:\n      - cheese\n      - chicago\n      - italian\n      - mozzarella\n      - new york\n      - pepperoni\n      - pie\n      - slice\n      - teenage mutant ninja turtles\n      - tomato\n  styles:\n    - solid\n  unicode: f818\n  voted: true\nplace-of-worship:\n  changes:\n    - 5.3.0\n  label: Place of Worship\n  search:\n    terms:\n      - building\n      - church\n      - holy\n      - mosque\n      - synagogue\n  styles:\n    - solid\n  unicode: f67f\n  voted: false\nplane:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.13\n  label: plane\n  search:\n    terms:\n      - airplane\n      - destination\n      - fly\n      - location\n      - mode\n      - travel\n      - trip\n  styles:\n    - solid\n  unicode: f072\n  voted: false\nplane-arrival:\n  changes:\n    - 5.1.0\n  label: Plane Arrival\n  search:\n    terms:\n      - airplane\n      - arriving\n      - destination\n      - fly\n      - land\n      - landing\n      - location\n      - mode\n      - travel\n      - trip\n  styles:\n    - solid\n  unicode: f5af\n  voted: false\nplane-departure:\n  changes:\n    - 5.1.0\n    - 5.8.0\n  label: Plane Departure\n  search:\n    terms:\n      - airplane\n      - departing\n      - destination\n      - fly\n      - location\n      - mode\n      - take off\n      - taking off\n      - travel\n      - trip\n  styles:\n    - solid\n  unicode: f5b0\n  voted: false\nplay:\n  changes:\n    - '1'\n    - 5.0.0\n  label: play\n  search:\n    terms:\n      - audio\n      - music\n      - playing\n      - sound\n      - start\n      - video\n  styles:\n    - solid\n  unicode: f04b\n  voted: false\nplay-circle:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Play Circle\n  search:\n    terms:\n      - audio\n      - music\n      - playing\n      - sound\n      - start\n      - video\n  styles:\n    - solid\n    - regular\n  unicode: f144\n  voted: false\nplaystation:\n  changes:\n    - 5.0.0\n  label: PlayStation\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3df\n  voted: false\nplug:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Plug\n  search:\n    terms:\n      - connect\n      - electric\n      - online\n      - power\n  styles:\n    - solid\n  unicode: f1e6\n  voted: false\nplus:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.13\n  label: plus\n  search:\n    terms:\n      - add\n      - create\n      - expand\n      - new\n      - positive\n      - shape\n  styles:\n    - solid\n  unicode: f067\n  voted: false\nplus-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Plus Circle\n  search:\n    terms:\n      - add\n      - create\n      - expand\n      - new\n      - positive\n      - shape\n  styles:\n    - solid\n  unicode: f055\n  voted: false\nplus-square:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Plus Square\n  search:\n    terms:\n      - add\n      - create\n      - expand\n      - new\n      - positive\n      - shape\n  styles:\n    - solid\n    - regular\n  unicode: f0fe\n  voted: false\npodcast:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Podcast\n  search:\n    terms:\n      - audio\n      - broadcast\n      - music\n      - sound\n  styles:\n    - solid\n  unicode: f2ce\n  voted: false\npoll:\n  changes:\n    - 5.3.0\n    - 5.10.1\n  label: Poll\n  search:\n    terms:\n      - results\n      - survey\n      - trend\n      - vote\n      - voting\n  styles:\n    - solid\n  unicode: f681\n  voted: false\npoll-h:\n  changes:\n    - 5.3.0\n    - 5.10.1\n  label: Poll H\n  search:\n    terms:\n      - results\n      - survey\n      - trend\n      - vote\n      - voting\n  styles:\n    - solid\n  unicode: f682\n  voted: false\npoo:\n  changes:\n    - 5.0.0\n    - 5.0.9\n  label: Poo\n  search:\n    terms:\n      - crap\n      - poop\n      - shit\n      - smile\n      - turd\n  styles:\n    - solid\n  unicode: f2fe\n  voted: false\npoo-storm:\n  changes:\n    - 5.5.0\n  label: Poo Storm\n  search:\n    terms:\n      - bolt\n      - cloud\n      - euphemism\n      - lightning\n      - mess\n      - poop\n      - shit\n      - turd\n  styles:\n    - solid\n  unicode: f75a\n  voted: false\npoop:\n  changes:\n    - 5.2.0\n  label: Poop\n  search:\n    terms:\n      - crap\n      - poop\n      - shit\n      - smile\n      - turd\n  styles:\n    - solid\n  unicode: f619\n  voted: false\nportrait:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Portrait\n  search:\n    terms:\n      - id\n      - image\n      - photo\n      - picture\n      - selfie\n  styles:\n    - solid\n  unicode: f3e0\n  voted: false\npound-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Pound Sign\n  search:\n    terms:\n      - currency\n      - gbp\n      - money\n  styles:\n    - solid\n  unicode: f154\n  voted: false\npower-off:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Power Off\n  search:\n    terms:\n      - cancel\n      - computer\n      - 'on'\n      - reboot\n      - restart\n  styles:\n    - solid\n  unicode: f011\n  voted: false\npray:\n  changes:\n    - 5.3.0\n  label: Pray\n  search:\n    terms:\n      - kneel\n      - preach\n      - religion\n      - worship\n  styles:\n    - solid\n  unicode: f683\n  voted: false\npraying-hands:\n  changes:\n    - 5.3.0\n  label: Praying Hands\n  search:\n    terms:\n      - kneel\n      - preach\n      - religion\n      - worship\n  styles:\n    - solid\n  unicode: f684\n  voted: false\nprescription:\n  changes:\n    - 5.1.0\n  label: Prescription\n  search:\n    terms:\n      - drugs\n      - medical\n      - medicine\n      - pharmacy\n      - rx\n  styles:\n    - solid\n  unicode: f5b1\n  voted: false\nprescription-bottle:\n  changes:\n    - 5.0.7\n  label: Prescription Bottle\n  search:\n    terms:\n      - drugs\n      - medical\n      - medicine\n      - pharmacy\n      - rx\n  styles:\n    - solid\n  unicode: f485\n  voted: false\nprescription-bottle-alt:\n  changes:\n    - 5.0.7\n  label: Alternate Prescription Bottle\n  search:\n    terms:\n      - drugs\n      - medical\n      - medicine\n      - pharmacy\n      - rx\n  styles:\n    - solid\n  unicode: f486\n  voted: false\nprint:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n  label: print\n  search:\n    terms:\n      - business\n      - copy\n      - document\n      - office\n      - paper\n  styles:\n    - solid\n  unicode: f02f\n  voted: false\nprocedures:\n  changes:\n    - 5.0.7\n  label: Procedures\n  search:\n    terms:\n      - EKG\n      - bed\n      - electrocardiogram\n      - health\n      - hospital\n      - life\n      - patient\n      - vital\n  styles:\n    - solid\n  unicode: f487\n  voted: false\nproduct-hunt:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Product Hunt\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f288\n  voted: false\nproject-diagram:\n  changes:\n    - 5.0.13\n  label: Project Diagram\n  search:\n    terms:\n      - chart\n      - graph\n      - network\n      - pert\n  styles:\n    - solid\n  unicode: f542\n  voted: false\npushed:\n  changes:\n    - 5.0.0\n  label: Pushed\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e1\n  voted: false\npuzzle-piece:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Puzzle Piece\n  search:\n    terms:\n      - add-on\n      - addon\n      - game\n      - section\n  styles:\n    - solid\n  unicode: f12e\n  voted: false\npython:\n  changes:\n    - 5.0.0\n  label: Python\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e2\n  voted: false\nqq:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: QQ\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d6\n  voted: false\nqrcode:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.10.1\n  label: qrcode\n  search:\n    terms:\n      - barcode\n      - info\n      - information\n      - scan\n  styles:\n    - solid\n  unicode: f029\n  voted: false\nquestion:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Question\n  search:\n    terms:\n      - help\n      - information\n      - support\n      - unknown\n  styles:\n    - solid\n  unicode: f128\n  voted: false\nquestion-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Question Circle\n  search:\n    terms:\n      - help\n      - information\n      - support\n      - unknown\n  styles:\n    - solid\n    - regular\n  unicode: f059\n  voted: false\nquidditch:\n  changes:\n    - 5.0.5\n  label: Quidditch\n  search:\n    terms:\n      - ball\n      - bludger\n      - broom\n      - golden snitch\n      - harry potter\n      - hogwarts\n      - quaffle\n      - sport\n      - wizard\n  styles:\n    - solid\n  unicode: f458\n  voted: false\nquinscape:\n  changes:\n    - 5.0.5\n    - 5.7.0\n    - 5.8.0\n  label: QuinScape\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f459\n  voted: false\nquora:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Quora\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2c4\n  voted: false\nquote-left:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.0.9\n  label: quote-left\n  search:\n    terms:\n      - mention\n      - note\n      - phrase\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f10d\n  voted: false\nquote-right:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.0.9\n  label: quote-right\n  search:\n    terms:\n      - mention\n      - note\n      - phrase\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f10e\n  voted: false\nquran:\n  changes:\n    - 5.3.0\n  label: Quran\n  search:\n    terms:\n      - book\n      - islam\n      - muslim\n      - religion\n  styles:\n    - solid\n  unicode: f687\n  voted: false\nr-project:\n  changes:\n    - 5.0.11\n    - 5.0.12\n  label: R Project\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f7\n  voted: true\nradiation:\n  changes:\n    - 5.6.0\n    - 5.8.2\n  label: Radiation\n  search:\n    terms:\n      - danger\n      - dangerous\n      - deadly\n      - hazard\n      - nuclear\n      - radioactive\n      - warning\n  styles:\n    - solid\n  unicode: f7b9\n  voted: true\nradiation-alt:\n  changes:\n    - 5.6.0\n    - 5.8.2\n  label: Alternate Radiation\n  search:\n    terms:\n      - danger\n      - dangerous\n      - deadly\n      - hazard\n      - nuclear\n      - radioactive\n      - warning\n  styles:\n    - solid\n  unicode: f7ba\n  voted: true\nrainbow:\n  changes:\n    - 5.5.0\n    - 5.10.1\n  label: Rainbow\n  search:\n    terms:\n      - gold\n      - leprechaun\n      - prism\n      - rain\n      - sky\n  styles:\n    - solid\n  unicode: f75b\n  voted: false\nrandom:\n  changes:\n    - '1'\n    - 5.0.0\n  label: random\n  search:\n    terms:\n      - arrows\n      - shuffle\n      - sort\n      - swap\n      - switch\n      - transfer\n  styles:\n    - solid\n  unicode: f074\n  voted: false\nraspberry-pi:\n  changes:\n    - 5.6.0\n  label: Raspberry Pi\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f7bb\n  voted: true\nravelry:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Ravelry\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2d9\n  voted: false\nreact:\n  changes:\n    - 5.0.0\n  label: React\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41b\n  voted: false\nreacteurope:\n  changes:\n    - 5.5.0\n    - 5.8.0\n  label: ReactEurope\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f75d\n  voted: false\nreadme:\n  changes:\n    - 5.0.9\n    - 5.0.10\n  label: ReadMe\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4d5\n  voted: false\nrebel:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Rebel Alliance\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d0\n  voted: false\nreceipt:\n  changes:\n    - 5.0.13\n  label: Receipt\n  search:\n    terms:\n      - check\n      - invoice\n      - money\n      - pay\n      - table\n  styles:\n    - solid\n  unicode: f543\n  voted: true\nrecycle:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Recycle\n  search:\n    terms:\n      - Waste\n      - compost\n      - garbage\n      - reuse\n      - trash\n  styles:\n    - solid\n  unicode: f1b8\n  voted: false\nred-river:\n  changes:\n    - 5.0.0\n  label: red river\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e3\n  voted: false\nreddit:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: reddit Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a1\n  voted: false\nreddit-alien:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: reddit Alien\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f281\n  voted: false\nreddit-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: reddit Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a2\n  voted: false\nredhat:\n  changes:\n    - 5.6.0\n    - 5.8.2\n  label: Redhat\n  search:\n    terms:\n      - linux\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f7bc\n  voted: true\nredo:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.8.0\n  label: Redo\n  search:\n    terms:\n      - forward\n      - refresh\n      - reload\n      - repeat\n  styles:\n    - solid\n  unicode: f01e\n  voted: false\nredo-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Redo\n  search:\n    terms:\n      - forward\n      - refresh\n      - reload\n      - repeat\n  styles:\n    - solid\n  unicode: f2f9\n  voted: false\nregistered:\n  changes:\n    - '4.4'\n    - 5.0.0\n    - 5.10.1\n  label: Registered Trademark\n  search:\n    terms:\n      - copyright\n      - mark\n      - trademark\n  styles:\n    - solid\n    - regular\n  unicode: f25d\n  voted: false\nremove-format:\n  changes:\n    - 5.9.0\n  label: Remove Format\n  search:\n    terms:\n      - cancel\n      - font\n      - format\n      - remove\n      - style\n      - text\n  styles:\n    - solid\n  unicode: f87d\n  voted: false\nrenren:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Renren\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f18b\n  voted: false\nreply:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Reply\n  search:\n    terms:\n      - mail\n      - message\n      - respond\n  styles:\n    - solid\n  unicode: f3e5\n  voted: false\nreply-all:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: reply-all\n  search:\n    terms:\n      - mail\n      - message\n      - respond\n  styles:\n    - solid\n  unicode: f122\n  voted: false\nreplyd:\n  changes:\n    - 5.0.0\n  label: replyd\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e6\n  voted: false\nrepublican:\n  changes:\n    - 5.5.0\n  label: Republican\n  search:\n    terms:\n      - american\n      - conservative\n      - election\n      - elephant\n      - politics\n      - republican party\n      - right\n      - right-wing\n      - usa\n  styles:\n    - solid\n  unicode: f75e\n  voted: false\nresearchgate:\n  changes:\n    - 5.0.11\n  label: Researchgate\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f8\n  voted: true\nresolving:\n  changes:\n    - 5.0.0\n  label: Resolving\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e7\n  voted: false\nrestroom:\n  changes:\n    - 5.6.0\n  label: Restroom\n  search:\n    terms:\n      - bathroom\n      - john\n      - loo\n      - potty\n      - washroom\n      - waste\n      - wc\n  styles:\n    - solid\n  unicode: f7bd\n  voted: true\nretweet:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Retweet\n  search:\n    terms:\n      - refresh\n      - reload\n      - share\n      - swap\n  styles:\n    - solid\n  unicode: f079\n  voted: false\nrev:\n  changes:\n    - 5.1.0\n    - 5.1.1\n    - 5.8.0\n  label: Rev.io\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5b2\n  voted: false\nribbon:\n  changes:\n    - 5.0.9\n  label: Ribbon\n  search:\n    terms:\n      - badge\n      - cause\n      - lapel\n      - pin\n  styles:\n    - solid\n  unicode: f4d6\n  voted: false\nring:\n  changes:\n    - 5.4.0\n  label: Ring\n  search:\n    terms:\n      - Dungeons & Dragons\n      - Gollum\n      - band\n      - binding\n      - d&d\n      - dnd\n      - engagement\n      - fantasy\n      - gold\n      - jewelry\n      - marriage\n      - precious\n  styles:\n    - solid\n  unicode: f70b\n  voted: false\nroad:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.2.0\n  label: road\n  search:\n    terms:\n      - highway\n      - map\n      - pavement\n      - route\n      - street\n      - travel\n  styles:\n    - solid\n  unicode: f018\n  voted: false\nrobot:\n  changes:\n    - 5.0.13\n  label: Robot\n  search:\n    terms:\n      - android\n      - automate\n      - computer\n      - cyborg\n  styles:\n    - solid\n  unicode: f544\n  voted: true\nrocket:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.7.0\n  label: rocket\n  search:\n    terms:\n      - aircraft\n      - app\n      - jet\n      - launch\n      - nasa\n      - space\n  styles:\n    - solid\n  unicode: f135\n  voted: false\nrocketchat:\n  changes:\n    - 5.0.0\n    - 5.4.2\n    - 5.8.0\n  label: Rocket.Chat\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e8\n  voted: false\nrockrms:\n  changes:\n    - 5.0.0\n  label: Rockrms\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3e9\n  voted: false\nroute:\n  changes:\n    - 5.0.9\n    - 5.2.0\n  label: Route\n  search:\n    terms:\n      - directions\n      - navigation\n      - travel\n  styles:\n    - solid\n  unicode: f4d7\n  voted: false\nrss:\n  changes:\n    - '2'\n    - 5.0.0\n  label: rss\n  search:\n    terms:\n      - blog\n      - feed\n      - journal\n      - news\n      - writing\n  styles:\n    - solid\n  unicode: f09e\n  voted: false\nrss-square:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: RSS Square\n  search:\n    terms:\n      - blog\n      - feed\n      - journal\n      - news\n      - writing\n  styles:\n    - solid\n  unicode: f143\n  voted: false\nruble-sign:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Ruble Sign\n  search:\n    terms:\n      - currency\n      - money\n      - rub\n  styles:\n    - solid\n  unicode: f158\n  voted: false\nruler:\n  changes:\n    - 5.0.13\n  label: Ruler\n  search:\n    terms:\n      - design\n      - draft\n      - length\n      - measure\n      - planning\n  styles:\n    - solid\n  unicode: f545\n  voted: true\nruler-combined:\n  changes:\n    - 5.0.13\n  label: Ruler Combined\n  search:\n    terms:\n      - design\n      - draft\n      - length\n      - measure\n      - planning\n  styles:\n    - solid\n  unicode: f546\n  voted: true\nruler-horizontal:\n  changes:\n    - 5.0.13\n  label: Ruler Horizontal\n  search:\n    terms:\n      - design\n      - draft\n      - length\n      - measure\n      - planning\n  styles:\n    - solid\n  unicode: f547\n  voted: true\nruler-vertical:\n  changes:\n    - 5.0.13\n  label: Ruler Vertical\n  search:\n    terms:\n      - design\n      - draft\n      - length\n      - measure\n      - planning\n  styles:\n    - solid\n  unicode: f548\n  voted: true\nrunning:\n  changes:\n    - 5.4.0\n  label: Running\n  search:\n    terms:\n      - exercise\n      - health\n      - jog\n      - person\n      - run\n      - sport\n      - sprint\n  styles:\n    - solid\n  unicode: f70c\n  voted: true\nrupee-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Indian Rupee Sign\n  search:\n    terms:\n      - currency\n      - indian\n      - inr\n      - money\n  styles:\n    - solid\n  unicode: f156\n  voted: false\nsad-cry:\n  changes:\n    - 5.1.0\n  label: Crying Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - tear\n      - tears\n  styles:\n    - solid\n    - regular\n  unicode: f5b3\n  voted: false\nsad-tear:\n  changes:\n    - 5.1.0\n  label: Loudly Crying Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - tear\n      - tears\n  styles:\n    - solid\n    - regular\n  unicode: f5b4\n  voted: false\nsafari:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Safari\n  search:\n    terms:\n      - browser\n  styles:\n    - brands\n  unicode: f267\n  voted: false\nsalesforce:\n  changes:\n    - 5.8.0\n  label: Salesforce\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f83b\nsass:\n  changes:\n    - 5.0.0\n    - 5.8.0\n  label: Sass\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41e\n  voted: false\nsatellite:\n  changes:\n    - 5.6.0\n    - 5.10.1\n  label: Satellite\n  search:\n    terms:\n      - communications\n      - hardware\n      - orbit\n      - space\n  styles:\n    - solid\n  unicode: f7bf\n  voted: true\nsatellite-dish:\n  changes:\n    - 5.6.0\n  label: Satellite Dish\n  search:\n    terms:\n      - SETI\n      - communications\n      - hardware\n      - receiver\n      - saucer\n      - signal\n  styles:\n    - solid\n  unicode: f7c0\n  voted: true\nsave:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Save\n  search:\n    terms:\n      - disk\n      - download\n      - floppy\n      - floppy-o\n  styles:\n    - solid\n    - regular\n  unicode: f0c7\n  voted: false\nschlix:\n  changes:\n    - 5.0.0\n  label: SCHLIX\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ea\n  voted: false\nschool:\n  changes:\n    - 5.0.13\n  label: School\n  search:\n    terms:\n      - building\n      - education\n      - learn\n      - student\n      - teacher\n  styles:\n    - solid\n  unicode: f549\n  voted: true\nscrewdriver:\n  changes:\n    - 5.0.13\n  label: Screwdriver\n  search:\n    terms:\n      - admin\n      - fix\n      - mechanic\n      - repair\n      - settings\n      - tool\n  styles:\n    - solid\n  unicode: f54a\n  voted: true\nscribd:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Scribd\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f28a\n  voted: false\nscroll:\n  changes:\n    - 5.4.0\n  label: Scroll\n  search:\n    terms:\n      - Dungeons & Dragons\n      - announcement\n      - d&d\n      - dnd\n      - fantasy\n      - paper\n      - script\n  styles:\n    - solid\n  unicode: f70e\n  voted: false\nsd-card:\n  changes:\n    - 5.6.0\n  label: Sd Card\n  search:\n    terms:\n      - image\n      - memory\n      - photo\n      - save\n  styles:\n    - solid\n  unicode: f7c2\n  voted: true\nsearch:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Search\n  search:\n    terms:\n      - bigger\n      - enlarge\n      - find\n      - magnify\n      - preview\n      - zoom\n  styles:\n    - solid\n  unicode: f002\n  voted: false\nsearch-dollar:\n  changes:\n    - 5.3.0\n  label: Search Dollar\n  search:\n    terms:\n      - bigger\n      - enlarge\n      - find\n      - magnify\n      - money\n      - preview\n      - zoom\n  styles:\n    - solid\n  unicode: f688\n  voted: false\nsearch-location:\n  changes:\n    - 5.3.0\n  label: Search Location\n  search:\n    terms:\n      - bigger\n      - enlarge\n      - find\n      - magnify\n      - preview\n      - zoom\n  styles:\n    - solid\n  unicode: f689\n  voted: false\nsearch-minus:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.13\n  label: Search Minus\n  search:\n    terms:\n      - minify\n      - negative\n      - smaller\n      - zoom\n      - zoom out\n  styles:\n    - solid\n  unicode: f010\n  voted: false\nsearch-plus:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Search Plus\n  search:\n    terms:\n      - bigger\n      - enlarge\n      - magnify\n      - positive\n      - zoom\n      - zoom in\n  styles:\n    - solid\n  unicode: f00e\n  voted: false\nsearchengin:\n  changes:\n    - 5.0.0\n  label: Searchengin\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3eb\n  voted: false\nseedling:\n  changes:\n    - 5.0.9\n  label: Seedling\n  search:\n    terms:\n      - flora\n      - grow\n      - plant\n      - vegan\n  styles:\n    - solid\n  unicode: f4d8\n  voted: false\nsellcast:\n  changes:\n    - 5.0.0\n  label: Sellcast\n  search:\n    terms:\n      - eercast\n  styles:\n    - brands\n  unicode: f2da\n  voted: false\nsellsy:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Sellsy\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f213\n  voted: false\nserver:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Server\n  search:\n    terms:\n      - computer\n      - cpu\n      - database\n      - hardware\n      - network\n  styles:\n    - solid\n  unicode: f233\n  voted: false\nservicestack:\n  changes:\n    - 5.0.0\n  label: Servicestack\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ec\n  voted: false\nshapes:\n  changes:\n    - 5.2.0\n  label: Shapes\n  search:\n    terms:\n      - blocks\n      - build\n      - circle\n      - square\n      - triangle\n  styles:\n    - solid\n  unicode: f61f\n  voted: false\nshare:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Share\n  search:\n    terms:\n      - forward\n      - save\n      - send\n      - social\n  styles:\n    - solid\n  unicode: f064\n  voted: false\nshare-alt:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Alternate Share\n  search:\n    terms:\n      - forward\n      - save\n      - send\n      - social\n  styles:\n    - solid\n  unicode: f1e0\n  voted: false\nshare-alt-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Alternate Share Square\n  search:\n    terms:\n      - forward\n      - save\n      - send\n      - social\n  styles:\n    - solid\n  unicode: f1e1\n  voted: false\nshare-square:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Share Square\n  search:\n    terms:\n      - forward\n      - save\n      - send\n      - social\n  styles:\n    - solid\n    - regular\n  unicode: f14d\n  voted: false\nshekel-sign:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Shekel Sign\n  search:\n    terms:\n      - currency\n      - ils\n      - money\n  styles:\n    - solid\n  unicode: f20b\n  voted: true\nshield-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Shield\n  search:\n    terms:\n      - achievement\n      - award\n      - block\n      - defend\n      - security\n      - winner\n  styles:\n    - solid\n  unicode: f3ed\n  voted: false\nship:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Ship\n  search:\n    terms:\n      - boat\n      - sea\n      - water\n  styles:\n    - solid\n  unicode: f21a\n  voted: false\nshipping-fast:\n  changes:\n    - 5.0.7\n  label: Shipping Fast\n  search:\n    terms:\n      - express\n      - fedex\n      - mail\n      - overnight\n      - package\n      - ups\n  styles:\n    - solid\n  unicode: f48b\n  voted: false\nshirtsinbulk:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.7.0\n  label: Shirts in Bulk\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f214\n  voted: false\nshoe-prints:\n  changes:\n    - 5.0.13\n  label: Shoe Prints\n  search:\n    terms:\n      - feet\n      - footprints\n      - steps\n      - walk\n  styles:\n    - solid\n  unicode: f54b\n  voted: true\nshopping-bag:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Shopping Bag\n  search:\n    terms:\n      - buy\n      - checkout\n      - grocery\n      - payment\n      - purchase\n  styles:\n    - solid\n  unicode: f290\n  voted: false\nshopping-basket:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Shopping Basket\n  search:\n    terms:\n      - buy\n      - checkout\n      - grocery\n      - payment\n      - purchase\n  styles:\n    - solid\n  unicode: f291\n  voted: false\nshopping-cart:\n  changes:\n    - '1'\n    - 5.0.0\n  label: shopping-cart\n  search:\n    terms:\n      - buy\n      - checkout\n      - grocery\n      - payment\n      - purchase\n  styles:\n    - solid\n  unicode: f07a\n  voted: false\nshopware:\n  changes:\n    - 5.1.0\n    - 5.8.0\n  label: Shopware\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5b5\n  voted: false\nshower:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Shower\n  search:\n    terms:\n      - bath\n      - clean\n      - faucet\n      - water\n  styles:\n    - solid\n  unicode: f2cc\n  voted: false\nshuttle-van:\n  changes:\n    - 5.1.0\n  label: Shuttle Van\n  search:\n    terms:\n      - airport\n      - machine\n      - public-transportation\n      - transportation\n      - travel\n      - vehicle\n  styles:\n    - solid\n  unicode: f5b6\n  voted: false\nsign:\n  changes:\n    - 5.0.9\n  label: Sign\n  search:\n    terms:\n      - directions\n      - real estate\n      - signage\n      - wayfinding\n  styles:\n    - solid\n  unicode: f4d9\n  voted: false\nsign-in-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Sign In\n  search:\n    terms:\n      - arrow\n      - enter\n      - join\n      - log in\n      - login\n      - sign in\n      - sign up\n      - sign-in\n      - signin\n      - signup\n  styles:\n    - solid\n  unicode: f2f6\n  voted: false\nsign-language:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Sign Language\n  search:\n    terms:\n      - Translate\n      - asl\n      - deaf\n      - hands\n  styles:\n    - solid\n  unicode: f2a7\n  voted: false\nsign-out-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Sign Out\n  search:\n    terms:\n      - arrow\n      - exit\n      - leave\n      - log out\n      - logout\n      - sign-out\n  styles:\n    - solid\n  unicode: f2f5\n  voted: false\nsignal:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n    - 5.10.1\n  label: signal\n  search:\n    terms:\n      - bars\n      - graph\n      - online\n      - reception\n      - status\n  styles:\n    - solid\n  unicode: f012\n  voted: false\nsignature:\n  changes:\n    - 5.1.0\n    - 5.6.0\n  label: Signature\n  search:\n    terms:\n      - John Hancock\n      - cursive\n      - name\n      - writing\n  styles:\n    - solid\n  unicode: f5b7\n  voted: true\nsim-card:\n  changes:\n    - 5.6.0\n    - 5.8.2\n  label: SIM Card\n  search:\n    terms:\n      - hard drive\n      - hardware\n      - portable\n      - storage\n      - technology\n      - tiny\n  styles:\n    - solid\n  unicode: f7c4\n  voted: true\nsimplybuilt:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: SimplyBuilt\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f215\n  voted: false\nsistrix:\n  changes:\n    - 5.0.0\n  label: SISTRIX\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3ee\n  voted: false\nsitemap:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.13\n  label: Sitemap\n  search:\n    terms:\n      - directory\n      - hierarchy\n      - ia\n      - information architecture\n      - organization\n  styles:\n    - solid\n  unicode: f0e8\n  voted: false\nsith:\n  changes:\n    - 5.0.12\n  label: Sith\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f512\n  voted: false\nskating:\n  changes:\n    - 5.6.0\n  label: Skating\n  search:\n    terms:\n      - activity\n      - figure skating\n      - fitness\n      - ice\n      - person\n      - winter\n  styles:\n    - solid\n  unicode: f7c5\nsketch:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Sketch\n  search:\n    terms:\n      - app\n      - design\n      - interface\n  styles:\n    - brands\n  unicode: f7c6\n  voted: false\nskiing:\n  changes:\n    - 5.6.0\n  label: Skiing\n  search:\n    terms:\n      - activity\n      - downhill\n      - fast\n      - fitness\n      - olympics\n      - outdoors\n      - person\n      - seasonal\n      - slalom\n  styles:\n    - solid\n  unicode: f7c9\nskiing-nordic:\n  changes:\n    - 5.6.0\n  label: Skiing Nordic\n  search:\n    terms:\n      - activity\n      - cross country\n      - fitness\n      - outdoors\n      - person\n      - seasonal\n  styles:\n    - solid\n  unicode: f7ca\nskull:\n  changes:\n    - 5.0.13\n  label: Skull\n  search:\n    terms:\n      - bones\n      - skeleton\n      - x-ray\n      - yorick\n  styles:\n    - solid\n  unicode: f54c\n  voted: true\nskull-crossbones:\n  changes:\n    - 5.4.0\n  label: Skull & Crossbones\n  search:\n    terms:\n      - Dungeons & Dragons\n      - alert\n      - bones\n      - d&d\n      - danger\n      - dead\n      - deadly\n      - death\n      - dnd\n      - fantasy\n      - halloween\n      - holiday\n      - jolly-roger\n      - pirate\n      - poison\n      - skeleton\n      - warning\n  styles:\n    - solid\n  unicode: f714\n  voted: false\nskyatlas:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.3\n  label: skyatlas\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f216\n  voted: false\nskype:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Skype\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f17e\n  voted: false\nslack:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.7.0\n  label: Slack Logo\n  search:\n    terms:\n      - anchor\n      - hash\n      - hashtag\n  styles:\n    - brands\n  unicode: f198\n  voted: false\nslack-hash:\n  changes:\n    - 5.0.0\n  label: Slack Hashtag\n  search:\n    terms:\n      - anchor\n      - hash\n      - hashtag\n  styles:\n    - brands\n  unicode: f3ef\n  voted: false\nslash:\n  changes:\n    - 5.4.0\n  label: Slash\n  search:\n    terms:\n      - cancel\n      - close\n      - mute\n      - 'off'\n      - stop\n      - x\n  styles:\n    - solid\n  unicode: f715\n  voted: true\nsleigh:\n  changes:\n    - 5.6.0\n  label: Sleigh\n  search:\n    terms:\n      - christmas\n      - claus\n      - fly\n      - holiday\n      - santa\n      - sled\n      - snow\n      - xmas\n  styles:\n    - solid\n  unicode: f7cc\nsliders-h:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.0.11\n  label: Horizontal Sliders\n  search:\n    terms:\n      - adjust\n      - settings\n      - sliders\n      - toggle\n  styles:\n    - solid\n  unicode: f1de\n  voted: false\nslideshare:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Slideshare\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1e7\n  voted: false\nsmile:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.0.9\n    - 5.1.0\n  label: Smiling Face\n  search:\n    terms:\n      - approve\n      - emoticon\n      - face\n      - happy\n      - rating\n      - satisfied\n  styles:\n    - solid\n    - regular\n  unicode: f118\n  voted: false\nsmile-beam:\n  changes:\n    - 5.1.0\n  label: Beaming Face With Smiling Eyes\n  search:\n    terms:\n      - emoticon\n      - face\n      - happy\n      - positive\n  styles:\n    - solid\n    - regular\n  unicode: f5b8\n  voted: false\nsmile-wink:\n  changes:\n    - 5.1.0\n  label: Winking Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - happy\n      - hint\n      - joke\n  styles:\n    - solid\n    - regular\n  unicode: f4da\n  voted: false\nsmog:\n  changes:\n    - 5.5.0\n  label: Smog\n  search:\n    terms:\n      - dragon\n      - fog\n      - haze\n      - pollution\n      - smoke\n      - weather\n  styles:\n    - solid\n  unicode: f75f\n  voted: false\nsmoking:\n  changes:\n    - 5.0.7\n  label: Smoking\n  search:\n    terms:\n      - cancer\n      - cigarette\n      - nicotine\n      - smoking status\n      - tobacco\n  styles:\n    - solid\n  unicode: f48d\n  voted: true\nsmoking-ban:\n  changes:\n    - 5.0.13\n  label: Smoking Ban\n  search:\n    terms:\n      - ban\n      - cancel\n      - no smoking\n      - non-smoking\n  styles:\n    - solid\n  unicode: f54d\n  voted: true\nsms:\n  changes:\n    - 5.6.0\n  label: SMS\n  search:\n    terms:\n      - chat\n      - conversation\n      - message\n      - mobile\n      - notification\n      - phone\n      - sms\n      - texting\n  styles:\n    - solid\n  unicode: f7cd\n  voted: true\nsnapchat:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Snapchat\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2ab\n  voted: false\nsnapchat-ghost:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Snapchat Ghost\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2ac\n  voted: false\nsnapchat-square:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Snapchat Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2ad\n  voted: false\nsnowboarding:\n  changes:\n    - 5.6.0\n  label: Snowboarding\n  search:\n    terms:\n      - activity\n      - fitness\n      - olympics\n      - outdoors\n      - person\n  styles:\n    - solid\n  unicode: f7ce\nsnowflake:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.5.0\n  label: Snowflake\n  search:\n    terms:\n      - precipitation\n      - rain\n      - winter\n  styles:\n    - solid\n    - regular\n  unicode: f2dc\n  voted: false\nsnowman:\n  changes:\n    - 5.6.0\n  label: Snowman\n  search:\n    terms:\n      - decoration\n      - frost\n      - frosty\n      - holiday\n  styles:\n    - solid\n  unicode: f7d0\nsnowplow:\n  changes:\n    - 5.6.0\n  label: Snowplow\n  search:\n    terms:\n      - clean up\n      - cold\n      - road\n      - storm\n      - winter\n  styles:\n    - solid\n  unicode: f7d2\nsocks:\n  changes:\n    - 5.3.0\n  label: Socks\n  search:\n    terms:\n      - business socks\n      - business time\n      - clothing\n      - feet\n      - flight of the conchords\n      - wednesday\n  styles:\n    - solid\n  unicode: f696\n  voted: false\nsolar-panel:\n  changes:\n    - 5.1.0\n  label: Solar Panel\n  search:\n    terms:\n      - clean\n      - eco-friendly\n      - energy\n      - green\n      - sun\n  styles:\n    - solid\n  unicode: f5ba\n  voted: false\nsort:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Sort\n  search:\n    terms:\n      - filter\n      - order\n  styles:\n    - solid\n  unicode: f0dc\n  voted: false\nsort-alpha-down:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Alphabetical Down\n  search:\n    terms:\n      - alphabetical\n      - arrange\n      - filter\n      - order\n      - sort-alpha-asc\n  styles:\n    - solid\n  unicode: f15d\n  voted: false\nsort-alpha-down-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Alphabetical Down\n  search:\n    terms:\n      - alphabetical\n      - arrange\n      - filter\n      - order\n      - sort-alpha-asc\n  styles:\n    - solid\n  unicode: f881\n  voted: false\nsort-alpha-up:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Alphabetical Up\n  search:\n    terms:\n      - alphabetical\n      - arrange\n      - filter\n      - order\n      - sort-alpha-desc\n  styles:\n    - solid\n  unicode: f15e\n  voted: false\nsort-alpha-up-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Alphabetical Up\n  search:\n    terms:\n      - alphabetical\n      - arrange\n      - filter\n      - order\n      - sort-alpha-desc\n  styles:\n    - solid\n  unicode: f882\n  voted: false\nsort-amount-down:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Amount Down\n  search:\n    terms:\n      - arrange\n      - filter\n      - number\n      - order\n      - sort-amount-asc\n  styles:\n    - solid\n  unicode: f160\n  voted: false\nsort-amount-down-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Amount Down\n  search:\n    terms:\n      - arrange\n      - filter\n      - order\n      - sort-amount-asc\n  styles:\n    - solid\n  unicode: f884\n  voted: false\nsort-amount-up:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Amount Up\n  search:\n    terms:\n      - arrange\n      - filter\n      - order\n      - sort-amount-desc\n  styles:\n    - solid\n  unicode: f161\n  voted: false\nsort-amount-up-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Amount Up\n  search:\n    terms:\n      - arrange\n      - filter\n      - order\n      - sort-amount-desc\n  styles:\n    - solid\n  unicode: f885\n  voted: false\nsort-down:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: Sort Down (Descending)\n  search:\n    terms:\n      - arrow\n      - descending\n      - filter\n      - order\n      - sort-desc\n  styles:\n    - solid\n  unicode: f0dd\n  voted: false\nsort-numeric-down:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Numeric Down\n  search:\n    terms:\n      - arrange\n      - filter\n      - numbers\n      - order\n      - sort-numeric-asc\n  styles:\n    - solid\n  unicode: f162\n  voted: false\nsort-numeric-down-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Numeric Down\n  search:\n    terms:\n      - arrange\n      - filter\n      - numbers\n      - order\n      - sort-numeric-asc\n  styles:\n    - solid\n  unicode: f886\n  voted: false\nsort-numeric-up:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.9.0\n  label: Sort Numeric Up\n  search:\n    terms:\n      - arrange\n      - filter\n      - numbers\n      - order\n      - sort-numeric-desc\n  styles:\n    - solid\n  unicode: f163\n  voted: false\nsort-numeric-up-alt:\n  changes:\n    - 5.9.0\n  label: Alternate Sort Numeric Up\n  search:\n    terms:\n      - arrange\n      - filter\n      - numbers\n      - order\n      - sort-numeric-desc\n  styles:\n    - solid\n  unicode: f887\n  voted: false\nsort-up:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: Sort Up (Ascending)\n  search:\n    terms:\n      - arrow\n      - ascending\n      - filter\n      - order\n      - sort-asc\n  styles:\n    - solid\n  unicode: f0de\n  voted: false\nsoundcloud:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: SoundCloud\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1be\n  voted: false\nsourcetree:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Sourcetree\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f7d3\n  voted: true\nspa:\n  changes:\n    - 5.1.0\n  label: Spa\n  search:\n    terms:\n      - flora\n      - massage\n      - mindfulness\n      - plant\n      - wellness\n  styles:\n    - solid\n  unicode: f5bb\n  voted: false\nspace-shuttle:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Space Shuttle\n  search:\n    terms:\n      - astronaut\n      - machine\n      - nasa\n      - rocket\n      - transportation\n  styles:\n    - solid\n  unicode: f197\n  voted: false\nspeakap:\n  changes:\n    - 5.0.0\n    - 5.4.0\n    - 5.8.0\n  label: Speakap\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f3\n  voted: false\nspeaker-deck:\n  changes:\n    - 5.8.0\n  label: Speaker Deck\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f83c\nspell-check:\n  changes:\n    - 5.9.0\n  label: Spell Check\n  search:\n    terms:\n      - dictionary\n      - edit\n      - editor\n      - grammar\n      - text\n  styles:\n    - solid\n  unicode: f891\n  voted: false\nspider:\n  changes:\n    - 5.4.0\n  label: Spider\n  search:\n    terms:\n      - arachnid\n      - bug\n      - charlotte\n      - crawl\n      - eight\n      - halloween\n  styles:\n    - solid\n  unicode: f717\n  voted: true\nspinner:\n  changes:\n    - '3'\n    - 5.0.0\n  label: Spinner\n  search:\n    terms:\n      - circle\n      - loading\n      - progress\n  styles:\n    - solid\n  unicode: f110\n  voted: false\nsplotch:\n  changes:\n    - 5.1.0\n  label: Splotch\n  search:\n    terms:\n      - Ink\n      - blob\n      - blotch\n      - glob\n      - stain\n  styles:\n    - solid\n  unicode: f5bc\n  voted: false\nspotify:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Spotify\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1bc\n  voted: false\nspray-can:\n  changes:\n    - 5.1.0\n  label: Spray Can\n  search:\n    terms:\n      - Paint\n      - aerosol\n      - design\n      - graffiti\n      - tag\n  styles:\n    - solid\n  unicode: f5bd\n  voted: false\nsquare:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.10.1\n  label: Square\n  search:\n    terms:\n      - block\n      - box\n      - shape\n  styles:\n    - solid\n    - regular\n  unicode: f0c8\n  voted: false\nsquare-full:\n  changes:\n    - 5.0.5\n  label: Square Full\n  search:\n    terms:\n      - block\n      - box\n      - shape\n  styles:\n    - solid\n  unicode: f45c\n  voted: false\nsquare-root-alt:\n  changes:\n    - 5.3.0\n  label: Alternate Square Root\n  search:\n    terms:\n      - arithmetic\n      - calculus\n      - division\n      - math\n  styles:\n    - solid\n  unicode: f698\n  voted: false\nsquarespace:\n  changes:\n    - 5.1.0\n  label: Squarespace\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5be\n  voted: true\nstack-exchange:\n  changes:\n    - '4'\n    - 5.0.0\n    - 5.0.3\n  label: Stack Exchange\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f18d\n  voted: false\nstack-overflow:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Stack Overflow\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f16c\n  voted: false\nstackpath:\n  changes:\n    - 5.8.2\n  label: Stackpath\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f842\nstamp:\n  changes:\n    - 5.1.0\n  label: Stamp\n  search:\n    terms:\n      - art\n      - certificate\n      - imprint\n      - rubber\n      - seal\n  styles:\n    - solid\n  unicode: f5bf\n  voted: false\nstar:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Star\n  search:\n    terms:\n      - achievement\n      - award\n      - favorite\n      - important\n      - night\n      - rating\n      - score\n  styles:\n    - solid\n    - regular\n  unicode: f005\n  voted: false\nstar-and-crescent:\n  changes:\n    - 5.3.0\n  label: Star and Crescent\n  search:\n    terms:\n      - islam\n      - muslim\n      - religion\n  styles:\n    - solid\n  unicode: f699\n  voted: false\nstar-half:\n  changes:\n    - '1'\n    - 5.0.0\n  label: star-half\n  search:\n    terms:\n      - achievement\n      - award\n      - rating\n      - score\n      - star-half-empty\n      - star-half-full\n  styles:\n    - solid\n    - regular\n  unicode: f089\n  voted: false\nstar-half-alt:\n  changes:\n    - 5.1.0\n  label: Alternate Star Half\n  search:\n    terms:\n      - achievement\n      - award\n      - rating\n      - score\n      - star-half-empty\n      - star-half-full\n  styles:\n    - solid\n  unicode: f5c0\n  voted: true\nstar-of-david:\n  changes:\n    - 5.3.0\n  label: Star of David\n  search:\n    terms:\n      - jewish\n      - judaism\n      - religion\n  styles:\n    - solid\n  unicode: f69a\n  voted: false\nstar-of-life:\n  changes:\n    - 5.2.0\n  label: Star of Life\n  search:\n    terms:\n      - doctor\n      - emt\n      - first aid\n      - health\n      - medical\n  styles:\n    - solid\n  unicode: f621\n  voted: false\nstaylinked:\n  changes:\n    - 5.0.0\n  label: StayLinked\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f5\n  voted: false\nsteam:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Steam\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1b6\n  voted: false\nsteam-square:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Steam Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1b7\n  voted: false\nsteam-symbol:\n  changes:\n    - 5.0.0\n  label: Steam Symbol\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f6\n  voted: false\nstep-backward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: step-backward\n  search:\n    terms:\n      - beginning\n      - first\n      - previous\n      - rewind\n      - start\n  styles:\n    - solid\n  unicode: f048\n  voted: false\nstep-forward:\n  changes:\n    - '1'\n    - 5.0.0\n  label: step-forward\n  search:\n    terms:\n      - end\n      - last\n      - next\n  styles:\n    - solid\n  unicode: f051\n  voted: false\nstethoscope:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.0.7\n  label: Stethoscope\n  search:\n    terms:\n      - diagnosis\n      - doctor\n      - general practitioner\n      - hospital\n      - infirmary\n      - medicine\n      - office\n      - outpatient\n  styles:\n    - solid\n  unicode: f0f1\n  voted: false\nsticker-mule:\n  changes:\n    - 5.0.0\n    - 5.7.0\n  label: Sticker Mule\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f7\n  voted: false\nsticky-note:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Sticky Note\n  search:\n    terms:\n      - message\n      - note\n      - paper\n      - reminder\n      - sticker\n  styles:\n    - solid\n    - regular\n  unicode: f249\n  voted: false\nstop:\n  changes:\n    - '1'\n    - 5.0.0\n  label: stop\n  search:\n    terms:\n      - block\n      - box\n      - square\n  styles:\n    - solid\n  unicode: f04d\n  voted: false\nstop-circle:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: Stop Circle\n  search:\n    terms:\n      - block\n      - box\n      - circle\n      - square\n  styles:\n    - solid\n    - regular\n  unicode: f28d\n  voted: false\nstopwatch:\n  changes:\n    - 5.0.0\n  label: Stopwatch\n  search:\n    terms:\n      - clock\n      - reminder\n      - time\n  styles:\n    - solid\n  unicode: f2f2\n  voted: false\nstore:\n  changes:\n    - 5.0.13\n  label: Store\n  search:\n    terms:\n      - building\n      - buy\n      - purchase\n      - shopping\n  styles:\n    - solid\n  unicode: f54e\n  voted: true\nstore-alt:\n  changes:\n    - 5.0.13\n  label: Alternate Store\n  search:\n    terms:\n      - building\n      - buy\n      - purchase\n      - shopping\n  styles:\n    - solid\n  unicode: f54f\n  voted: true\nstrava:\n  changes:\n    - 5.0.0\n    - 5.0.1\n    - 5.7.0\n    - 5.8.0\n  label: Strava\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f428\n  voted: false\nstream:\n  changes:\n    - 5.0.13\n  label: Stream\n  search:\n    terms:\n      - flow\n      - list\n      - timeline\n  styles:\n    - solid\n  unicode: f550\n  voted: false\nstreet-view:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.2.0\n  label: Street View\n  search:\n    terms:\n      - directions\n      - location\n      - map\n      - navigation\n  styles:\n    - solid\n  unicode: f21d\n  voted: false\nstrikethrough:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.9.0\n  label: Strikethrough\n  search:\n    terms:\n      - cancel\n      - edit\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f0cc\n  voted: false\nstripe:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Stripe\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f429\n  voted: false\nstripe-s:\n  changes:\n    - 5.0.1\n    - 5.8.0\n  label: Stripe S\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42a\n  voted: false\nstroopwafel:\n  changes:\n    - 5.0.13\n  label: Stroopwafel\n  search:\n    terms:\n      - caramel\n      - cookie\n      - dessert\n      - sweets\n      - waffle\n  styles:\n    - solid\n  unicode: f551\n  voted: false\nstudiovinari:\n  changes:\n    - 5.0.0\n  label: Studio Vinari\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f8\n  voted: false\nstumbleupon:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: StumbleUpon Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a4\n  voted: false\nstumbleupon-circle:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: StumbleUpon Circle\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1a3\n  voted: false\nsubscript:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.9.0\n  label: subscript\n  search:\n    terms:\n      - edit\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f12c\n  voted: false\nsubway:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Subway\n  search:\n    terms:\n      - machine\n      - railway\n      - train\n      - transportation\n      - vehicle\n  styles:\n    - solid\n  unicode: f239\n  voted: false\nsuitcase:\n  changes:\n    - '3'\n    - 5.0.0\n    - 5.0.9\n  label: Suitcase\n  search:\n    terms:\n      - baggage\n      - luggage\n      - move\n      - suitcase\n      - travel\n      - trip\n  styles:\n    - solid\n  unicode: f0f2\n  voted: false\nsuitcase-rolling:\n  changes:\n    - 5.1.0\n  label: Suitcase Rolling\n  search:\n    terms:\n      - baggage\n      - luggage\n      - move\n      - suitcase\n      - travel\n      - trip\n  styles:\n    - solid\n  unicode: f5c1\n  voted: false\nsun:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.5.0\n  label: Sun\n  search:\n    terms:\n      - brighten\n      - contrast\n      - day\n      - lighter\n      - sol\n      - solar\n      - star\n      - weather\n  styles:\n    - solid\n    - regular\n  unicode: f185\n  voted: false\nsuperpowers:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Superpowers\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2dd\n  voted: false\nsuperscript:\n  changes:\n    - '3.1'\n    - 5.0.0\n    - 5.9.0\n  label: superscript\n  search:\n    terms:\n      - edit\n      - exponential\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f12b\n  voted: false\nsupple:\n  changes:\n    - 5.0.0\n  label: Supple\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3f9\n  voted: false\nsurprise:\n  changes:\n    - 5.1.0\n  label: Hushed Face\n  search:\n    terms:\n      - emoticon\n      - face\n      - shocked\n  styles:\n    - solid\n    - regular\n  unicode: f5c2\n  voted: false\nsuse:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: Suse\n  search:\n    terms:\n      - linux\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f7d6\n  voted: true\nswatchbook:\n  changes:\n    - 5.1.0\n  label: Swatchbook\n  search:\n    terms:\n      - Pantone\n      - color\n      - design\n      - hue\n      - palette\n  styles:\n    - solid\n  unicode: f5c3\n  voted: false\nswimmer:\n  changes:\n    - 5.1.0\n  label: Swimmer\n  search:\n    terms:\n      - athlete\n      - head\n      - man\n      - olympics\n      - person\n      - pool\n      - water\n  styles:\n    - solid\n  unicode: f5c4\n  voted: false\nswimming-pool:\n  changes:\n    - 5.1.0\n  label: Swimming Pool\n  search:\n    terms:\n      - ladder\n      - recreation\n      - swim\n      - water\n  styles:\n    - solid\n  unicode: f5c5\n  voted: false\nsymfony:\n  changes:\n    - 5.8.0\n  label: Symfony\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f83d\nsynagogue:\n  changes:\n    - 5.3.0\n  label: Synagogue\n  search:\n    terms:\n      - building\n      - jewish\n      - judaism\n      - religion\n      - star of david\n      - temple\n  styles:\n    - solid\n  unicode: f69b\n  voted: false\nsync:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.8.0\n  label: Sync\n  search:\n    terms:\n      - exchange\n      - refresh\n      - reload\n      - rotate\n      - swap\n  styles:\n    - solid\n  unicode: f021\n  voted: false\nsync-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Sync\n  search:\n    terms:\n      - exchange\n      - refresh\n      - reload\n      - rotate\n      - swap\n  styles:\n    - solid\n  unicode: f2f1\n  voted: false\nsyringe:\n  changes:\n    - 5.0.7\n  label: Syringe\n  search:\n    terms:\n      - doctor\n      - immunizations\n      - medical\n      - needle\n  styles:\n    - solid\n  unicode: f48e\n  voted: false\ntable:\n  changes:\n    - '2'\n    - 5.0.0\n  label: table\n  search:\n    terms:\n      - data\n      - excel\n      - spreadsheet\n  styles:\n    - solid\n  unicode: f0ce\n  voted: false\ntable-tennis:\n  changes:\n    - 5.0.5\n  label: Table Tennis\n  search:\n    terms:\n      - ball\n      - paddle\n      - ping pong\n  styles:\n    - solid\n  unicode: f45d\n  voted: false\ntablet:\n  changes:\n    - '3'\n    - 5.0.0\n  label: tablet\n  search:\n    terms:\n      - apple\n      - device\n      - ipad\n      - kindle\n      - screen\n  styles:\n    - solid\n  unicode: f10a\n  voted: false\ntablet-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Tablet\n  search:\n    terms:\n      - apple\n      - device\n      - ipad\n      - kindle\n      - screen\n  styles:\n    - solid\n  unicode: f3fa\n  voted: false\ntablets:\n  changes:\n    - 5.0.7\n  label: Tablets\n  search:\n    terms:\n      - drugs\n      - medicine\n      - pills\n      - prescription\n  styles:\n    - solid\n  unicode: f490\n  voted: false\ntachometer-alt:\n  changes:\n    - 5.0.0\n    - 5.2.0\n  label: Alternate Tachometer\n  search:\n    terms:\n      - dashboard\n      - fast\n      - odometer\n      - speed\n      - speedometer\n  styles:\n    - solid\n  unicode: f3fd\n  voted: false\ntag:\n  changes:\n    - '1'\n    - 5.0.0\n  label: tag\n  search:\n    terms:\n      - discount\n      - label\n      - price\n      - shopping\n  styles:\n    - solid\n  unicode: f02b\n  voted: false\ntags:\n  changes:\n    - '1'\n    - 5.0.0\n  label: tags\n  search:\n    terms:\n      - discount\n      - label\n      - price\n      - shopping\n  styles:\n    - solid\n  unicode: f02c\n  voted: false\ntape:\n  changes:\n    - 5.0.9\n  label: Tape\n  search:\n    terms:\n      - design\n      - package\n      - sticky\n  styles:\n    - solid\n  unicode: f4db\n  voted: false\ntasks:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.9.0\n  label: Tasks\n  search:\n    terms:\n      - checklist\n      - downloading\n      - downloads\n      - loading\n      - progress\n      - project management\n      - settings\n      - to do\n  styles:\n    - solid\n  unicode: f0ae\n  voted: false\ntaxi:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.1.0\n  label: Taxi\n  search:\n    terms:\n      - cab\n      - cabbie\n      - car\n      - car service\n      - lyft\n      - machine\n      - transportation\n      - travel\n      - uber\n      - vehicle\n  styles:\n    - solid\n  unicode: f1ba\n  voted: false\nteamspeak:\n  changes:\n    - 5.0.11\n    - 5.1.0\n    - 5.8.0\n  label: TeamSpeak\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f4f9\n  voted: true\nteeth:\n  changes:\n    - 5.2.0\n  label: Teeth\n  search:\n    terms:\n      - bite\n      - dental\n      - dentist\n      - gums\n      - mouth\n      - smile\n      - tooth\n  styles:\n    - solid\n  unicode: f62e\n  voted: false\nteeth-open:\n  changes:\n    - 5.2.0\n  label: Teeth Open\n  search:\n    terms:\n      - dental\n      - dentist\n      - gums bite\n      - mouth\n      - smile\n      - tooth\n  styles:\n    - solid\n  unicode: f62f\n  voted: false\ntelegram:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Telegram\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2c6\n  voted: false\ntelegram-plane:\n  changes:\n    - 5.0.0\n  label: Telegram Plane\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f3fe\n  voted: false\ntemperature-high:\n  changes:\n    - 5.5.0\n  label: High Temperature\n  search:\n    terms:\n      - cook\n      - mercury\n      - summer\n      - thermometer\n      - warm\n  styles:\n    - solid\n  unicode: f769\n  voted: false\ntemperature-low:\n  changes:\n    - 5.5.0\n  label: Low Temperature\n  search:\n    terms:\n      - cold\n      - cool\n      - mercury\n      - thermometer\n      - winter\n  styles:\n    - solid\n  unicode: f76b\n  voted: false\ntencent-weibo:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Tencent Weibo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d5\n  voted: false\ntenge:\n  changes:\n    - 5.6.0\n  label: Tenge\n  search:\n    terms:\n      - currency\n      - kazakhstan\n      - money\n      - price\n  styles:\n    - solid\n  unicode: f7d7\n  voted: true\nterminal:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Terminal\n  search:\n    terms:\n      - code\n      - command\n      - console\n      - development\n      - prompt\n  styles:\n    - solid\n  unicode: f120\n  voted: false\ntext-height:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: text-height\n  search:\n    terms:\n      - edit\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f034\n  voted: false\ntext-width:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.9.0\n  label: Text Width\n  search:\n    terms:\n      - edit\n      - font\n      - format\n      - text\n      - type\n  styles:\n    - solid\n  unicode: f035\n  voted: false\nth:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.7.0\n  label: th\n  search:\n    terms:\n      - blocks\n      - boxes\n      - grid\n      - squares\n  styles:\n    - solid\n  unicode: f00a\n  voted: false\nth-large:\n  changes:\n    - '1'\n    - 5.0.0\n  label: th-large\n  search:\n    terms:\n      - blocks\n      - boxes\n      - grid\n      - squares\n  styles:\n    - solid\n  unicode: f009\n  voted: false\nth-list:\n  changes:\n    - '1'\n    - 5.0.0\n  label: th-list\n  search:\n    terms:\n      - checklist\n      - completed\n      - done\n      - finished\n      - ol\n      - todo\n      - ul\n  styles:\n    - solid\n  unicode: f00b\n  voted: false\nthe-red-yeti:\n  changes:\n    - 5.3.0\n    - 5.7.0\n    - 5.8.0\n  label: The Red Yeti\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f69d\n  voted: false\ntheater-masks:\n  changes:\n    - 5.2.0\n  label: Theater Masks\n  search:\n    terms:\n      - comedy\n      - perform\n      - theatre\n      - tragedy\n  styles:\n    - solid\n  unicode: f630\n  voted: false\nthemeco:\n  changes:\n    - 5.1.0\n    - 5.8.0\n  label: Themeco\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5c6\n  voted: false\nthemeisle:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: ThemeIsle\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2b2\n  voted: false\nthermometer:\n  changes:\n    - 5.0.7\n  label: Thermometer\n  search:\n    terms:\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f491\n  voted: false\nthermometer-empty:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Thermometer Empty\n  search:\n    terms:\n      - cold\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f2cb\n  voted: false\nthermometer-full:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Thermometer Full\n  search:\n    terms:\n      - fever\n      - hot\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f2c7\n  voted: false\nthermometer-half:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Thermometer 1/2 Full\n  search:\n    terms:\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f2c9\n  voted: false\nthermometer-quarter:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Thermometer 1/4 Full\n  search:\n    terms:\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f2ca\n  voted: false\nthermometer-three-quarters:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Thermometer 3/4 Full\n  search:\n    terms:\n      - mercury\n      - status\n      - temperature\n  styles:\n    - solid\n  unicode: f2c8\n  voted: false\nthink-peaks:\n  changes:\n    - 5.4.2\n    - 5.8.0\n  label: Think Peaks\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f731\n  voted: false\nthumbs-down:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: thumbs-down\n  search:\n    terms:\n      - disagree\n      - disapprove\n      - dislike\n      - hand\n      - social\n      - thumbs-o-down\n  styles:\n    - solid\n    - regular\n  unicode: f165\n  voted: false\nthumbs-up:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: thumbs-up\n  search:\n    terms:\n      - agree\n      - approve\n      - favorite\n      - hand\n      - like\n      - ok\n      - okay\n      - social\n      - success\n      - thumbs-o-up\n      - 'yes'\n      - you got it dude\n  styles:\n    - solid\n    - regular\n  unicode: f164\n  voted: false\nthumbtack:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Thumbtack\n  search:\n    terms:\n      - coordinates\n      - location\n      - marker\n      - pin\n      - thumb-tack\n  styles:\n    - solid\n  unicode: f08d\n  voted: false\nticket-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Ticket\n  search:\n    terms:\n      - movie\n      - pass\n      - support\n      - ticket\n  styles:\n    - solid\n  unicode: f3ff\n  voted: false\ntimes:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.13\n  label: Times\n  search:\n    terms:\n      - close\n      - cross\n      - error\n      - exit\n      - incorrect\n      - notice\n      - notification\n      - notify\n      - problem\n      - wrong\n      - x\n  styles:\n    - solid\n  unicode: f00d\n  voted: false\ntimes-circle:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Times Circle\n  search:\n    terms:\n      - close\n      - cross\n      - exit\n      - incorrect\n      - notice\n      - notification\n      - notify\n      - problem\n      - wrong\n      - x\n  styles:\n    - solid\n    - regular\n  unicode: f057\n  voted: false\ntint:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.1.0\n  label: tint\n  search:\n    terms:\n      - color\n      - drop\n      - droplet\n      - raindrop\n      - waterdrop\n  styles:\n    - solid\n  unicode: f043\n  voted: false\ntint-slash:\n  changes:\n    - 5.1.0\n  label: Tint Slash\n  search:\n    terms:\n      - color\n      - drop\n      - droplet\n      - raindrop\n      - waterdrop\n  styles:\n    - solid\n  unicode: f5c7\n  voted: false\ntired:\n  changes:\n    - 5.1.0\n  label: Tired Face\n  search:\n    terms:\n      - angry\n      - emoticon\n      - face\n      - grumpy\n      - upset\n  styles:\n    - solid\n    - regular\n  unicode: f5c8\n  voted: false\ntoggle-off:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Toggle Off\n  search:\n    terms:\n      - switch\n  styles:\n    - solid\n  unicode: f204\n  voted: false\ntoggle-on:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Toggle On\n  search:\n    terms:\n      - switch\n  styles:\n    - solid\n  unicode: f205\n  voted: false\ntoilet:\n  changes:\n    - 5.6.0\n  label: Toilet\n  search:\n    terms:\n      - bathroom\n      - flush\n      - john\n      - loo\n      - pee\n      - plumbing\n      - poop\n      - porcelain\n      - potty\n      - restroom\n      - throne\n      - washroom\n      - waste\n      - wc\n  styles:\n    - solid\n  unicode: f7d8\n  voted: true\ntoilet-paper:\n  changes:\n    - 5.4.0\n  label: Toilet Paper\n  search:\n    terms:\n      - bathroom\n      - halloween\n      - holiday\n      - lavatory\n      - prank\n      - restroom\n      - roll\n  styles:\n    - solid\n  unicode: f71e\n  voted: false\ntoolbox:\n  changes:\n    - 5.0.13\n  label: Toolbox\n  search:\n    terms:\n      - admin\n      - container\n      - fix\n      - repair\n      - settings\n      - tools\n  styles:\n    - solid\n  unicode: f552\n  voted: true\ntools:\n  changes:\n    - 5.6.0\n  label: Tools\n  search:\n    terms:\n      - admin\n      - fix\n      - repair\n      - screwdriver\n      - settings\n      - tools\n      - wrench\n  styles:\n    - solid\n  unicode: f7d9\n  voted: true\ntooth:\n  changes:\n    - 5.1.0\n  label: Tooth\n  search:\n    terms:\n      - bicuspid\n      - dental\n      - dentist\n      - molar\n      - mouth\n      - teeth\n  styles:\n    - solid\n  unicode: f5c9\n  voted: true\ntorah:\n  changes:\n    - 5.3.0\n    - 5.7.0\n    - 5.9.0\n  label: Torah\n  search:\n    terms:\n      - book\n      - jewish\n      - judaism\n      - religion\n      - scroll\n  styles:\n    - solid\n  unicode: f6a0\n  voted: false\ntorii-gate:\n  changes:\n    - 5.3.0\n  label: Torii Gate\n  search:\n    terms:\n      - building\n      - shintoism\n  styles:\n    - solid\n  unicode: f6a1\n  voted: false\ntractor:\n  changes:\n    - 5.4.0\n  label: Tractor\n  search:\n    terms:\n      - agriculture\n      - farm\n      - vehicle\n  styles:\n    - solid\n  unicode: f722\n  voted: false\ntrade-federation:\n  changes:\n    - 5.0.12\n  label: Trade Federation\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f513\n  voted: false\ntrademark:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Trademark\n  search:\n    terms:\n      - copyright\n      - register\n      - symbol\n  styles:\n    - solid\n  unicode: f25c\n  voted: false\ntraffic-light:\n  changes:\n    - 5.2.0\n  label: Traffic Light\n  search:\n    terms:\n      - direction\n      - road\n      - signal\n      - travel\n  styles:\n    - solid\n  unicode: f637\n  voted: false\ntrain:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Train\n  search:\n    terms:\n      - bullet\n      - commute\n      - locomotive\n      - railway\n      - subway\n  styles:\n    - solid\n  unicode: f238\n  voted: false\ntram:\n  changes:\n    - 5.6.0\n  label: Tram\n  search:\n    terms:\n      - crossing\n      - machine\n      - mountains\n      - seasonal\n      - transportation\n  styles:\n    - solid\n  unicode: f7da\ntransgender:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Transgender\n  search:\n    terms:\n      - intersex\n  styles:\n    - solid\n  unicode: f224\n  voted: false\ntransgender-alt:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Alternate Transgender\n  search:\n    terms:\n      - intersex\n  styles:\n    - solid\n  unicode: f225\n  voted: false\ntrash:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.7.0\n  label: Trash\n  search:\n    terms:\n      - delete\n      - garbage\n      - hide\n      - remove\n  styles:\n    - solid\n  unicode: f1f8\n  voted: false\ntrash-alt:\n  changes:\n    - 5.0.0\n    - 5.7.0\n  label: Alternate Trash\n  search:\n    terms:\n      - delete\n      - garbage\n      - hide\n      - remove\n      - trash-o\n  styles:\n    - solid\n    - regular\n  unicode: f2ed\n  voted: false\ntrash-restore:\n  changes:\n    - 5.7.0\n  label: Trash Restore\n  search:\n    terms:\n      - back\n      - control z\n      - oops\n      - undo\n  styles:\n    - solid\n  unicode: f829\n  voted: true\ntrash-restore-alt:\n  changes:\n    - 5.7.0\n  label: Alternative Trash Restore\n  search:\n    terms:\n      - back\n      - control z\n      - oops\n      - undo\n  styles:\n    - solid\n  unicode: f82a\n  voted: true\ntree:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Tree\n  search:\n    terms:\n      - bark\n      - fall\n      - flora\n      - forest\n      - nature\n      - plant\n      - seasonal\n  styles:\n    - solid\n  unicode: f1bb\n  voted: false\ntrello:\n  changes:\n    - '3.2'\n    - 5.0.0\n    - 5.6.0\n  label: Trello\n  search:\n    terms:\n      - atlassian\n  styles:\n    - brands\n  unicode: f181\n  voted: false\ntripadvisor:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: TripAdvisor\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f262\n  voted: false\ntrophy:\n  changes:\n    - '1'\n    - 5.0.0\n  label: trophy\n  search:\n    terms:\n      - achievement\n      - award\n      - cup\n      - game\n      - winner\n  styles:\n    - solid\n  unicode: f091\n  voted: false\ntruck:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.7\n  label: truck\n  search:\n    terms:\n      - cargo\n      - delivery\n      - shipping\n      - vehicle\n  styles:\n    - solid\n  unicode: f0d1\n  voted: false\ntruck-loading:\n  changes:\n    - 5.0.9\n  label: Truck Loading\n  search:\n    terms:\n      - box\n      - cargo\n      - delivery\n      - inventory\n      - moving\n      - rental\n      - vehicle\n  styles:\n    - solid\n  unicode: f4de\n  voted: false\ntruck-monster:\n  changes:\n    - 5.2.0\n  label: Truck Monster\n  search:\n    terms:\n      - offroad\n      - vehicle\n      - wheel\n  styles:\n    - solid\n  unicode: f63b\n  voted: false\ntruck-moving:\n  changes:\n    - 5.0.9\n  label: Truck Moving\n  search:\n    terms:\n      - cargo\n      - inventory\n      - rental\n      - vehicle\n  styles:\n    - solid\n  unicode: f4df\n  voted: false\ntruck-pickup:\n  changes:\n    - 5.2.0\n  label: Truck Side\n  search:\n    terms:\n      - cargo\n      - vehicle\n  styles:\n    - solid\n  unicode: f63c\n  voted: false\ntshirt:\n  changes:\n    - 5.0.13\n  label: T-Shirt\n  search:\n    terms:\n      - clothing\n      - fashion\n      - garment\n      - shirt\n  styles:\n    - solid\n  unicode: f553\n  voted: true\ntty:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.7.0\n  label: TTY\n  search:\n    terms:\n      - communication\n      - deaf\n      - telephone\n      - teletypewriter\n      - text\n  styles:\n    - solid\n  unicode: f1e4\n  voted: false\ntumblr:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Tumblr\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f173\n  voted: false\ntumblr-square:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Tumblr Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f174\n  voted: false\ntv:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Television\n  search:\n    terms:\n      - computer\n      - display\n      - monitor\n      - television\n  styles:\n    - solid\n  unicode: f26c\n  voted: false\ntwitch:\n  changes:\n    - '4.2'\n    - 5.0.0\n  label: Twitch\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1e8\n  voted: false\ntwitter:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Twitter\n  search:\n    terms:\n      - social network\n      - tweet\n  styles:\n    - brands\n  unicode: f099\n  voted: false\ntwitter-square:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Twitter Square\n  search:\n    terms:\n      - social network\n      - tweet\n  styles:\n    - brands\n  unicode: f081\n  voted: false\ntypo3:\n  changes:\n    - 5.0.1\n    - 5.8.0\n  label: Typo3\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f42b\n  voted: false\nuber:\n  changes:\n    - 5.0.0\n  label: Uber\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f402\n  voted: false\nubuntu:\n  changes:\n    - 5.6.0\n  label: Ubuntu\n  search:\n    terms:\n      - linux\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f7df\n  voted: true\nuikit:\n  changes:\n    - 5.0.0\n  label: UIkit\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f403\n  voted: false\numbrella:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Umbrella\n  search:\n    terms:\n      - protection\n      - rain\n      - storm\n      - wet\n  styles:\n    - solid\n  unicode: f0e9\n  voted: false\numbrella-beach:\n  changes:\n    - 5.1.0\n  label: Umbrella Beach\n  search:\n    terms:\n      - protection\n      - recreation\n      - sand\n      - shade\n      - summer\n      - sun\n  styles:\n    - solid\n  unicode: f5ca\n  voted: false\nunderline:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.9.0\n  label: Underline\n  search:\n    terms:\n      - edit\n      - emphasis\n      - format\n      - text\n      - writing\n  styles:\n    - solid\n  unicode: f0cd\n  voted: false\nundo:\n  changes:\n    - '2'\n    - 5.0.0\n  label: Undo\n  search:\n    terms:\n      - back\n      - control z\n      - exchange\n      - oops\n      - return\n      - rotate\n      - swap\n  styles:\n    - solid\n  unicode: f0e2\n  voted: false\nundo-alt:\n  changes:\n    - 5.0.0\n  label: Alternate Undo\n  search:\n    terms:\n      - back\n      - control z\n      - exchange\n      - oops\n      - return\n      - swap\n  styles:\n    - solid\n  unicode: f2ea\n  voted: false\nuniregistry:\n  changes:\n    - 5.0.0\n  label: Uniregistry\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f404\n  voted: false\nuniversal-access:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Universal Access\n  search:\n    terms:\n      - accessibility\n      - hearing\n      - person\n      - seeing\n      - visual impairment\n  styles:\n    - solid\n  unicode: f29a\n  voted: false\nuniversity:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.0.3\n  label: University\n  search:\n    terms:\n      - bank\n      - building\n      - college\n      - higher education - students\n      - institution\n  styles:\n    - solid\n  unicode: f19c\n  voted: false\nunlink:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: unlink\n  search:\n    terms:\n      - attachment\n      - chain\n      - chain-broken\n      - remove\n  styles:\n    - solid\n  unicode: f127\n  voted: false\nunlock:\n  changes:\n    - '2'\n    - 5.0.0\n  label: unlock\n  search:\n    terms:\n      - admin\n      - lock\n      - password\n      - private\n      - protect\n  styles:\n    - solid\n  unicode: f09c\n  voted: false\nunlock-alt:\n  changes:\n    - '3.1'\n    - 5.0.0\n  label: Alternate Unlock\n  search:\n    terms:\n      - admin\n      - lock\n      - password\n      - private\n      - protect\n  styles:\n    - solid\n  unicode: f13e\n  voted: false\nuntappd:\n  changes:\n    - 5.0.0\n  label: Untappd\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f405\n  voted: false\nupload:\n  changes:\n    - '1'\n    - 5.0.0\n  label: Upload\n  search:\n    terms:\n      - hard drive\n      - import\n      - publish\n  styles:\n    - solid\n  unicode: f093\n  voted: false\nups:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: UPS\n  search:\n    terms:\n      - United Parcel Service\n      - package\n      - shipping\n  styles:\n    - brands\n  unicode: f7e0\nusb:\n  changes:\n    - '4.5'\n    - 5.0.0\n  label: USB\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f287\n  voted: false\nuser:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: User\n  search:\n    terms:\n      - account\n      - avatar\n      - head\n      - human\n      - man\n      - person\n      - profile\n  styles:\n    - solid\n    - regular\n  unicode: f007\n  voted: false\nuser-alt:\n  changes:\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: Alternate User\n  search:\n    terms:\n      - account\n      - avatar\n      - head\n      - human\n      - man\n      - person\n      - profile\n  styles:\n    - solid\n  unicode: f406\n  voted: false\nuser-alt-slash:\n  changes:\n    - 5.0.11\n  label: Alternate User Slash\n  search:\n    terms:\n      - account\n      - avatar\n      - head\n      - human\n      - man\n      - person\n      - profile\n  styles:\n    - solid\n  unicode: f4fa\n  voted: false\nuser-astronaut:\n  changes:\n    - 5.0.11\n  label: User Astronaut\n  search:\n    terms:\n      - avatar\n      - clothing\n      - cosmonaut\n      - nasa\n      - space\n      - suit\n  styles:\n    - solid\n  unicode: f4fb\n  voted: false\nuser-check:\n  changes:\n    - 5.0.11\n  label: User Check\n  search:\n    terms:\n      - accept\n      - check\n      - person\n      - verified\n  styles:\n    - solid\n  unicode: f4fc\n  voted: false\nuser-circle:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: User Circle\n  search:\n    terms:\n      - account\n      - avatar\n      - head\n      - human\n      - man\n      - person\n      - profile\n  styles:\n    - solid\n    - regular\n  unicode: f2bd\n  voted: false\nuser-clock:\n  changes:\n    - 5.0.11\n  label: User Clock\n  search:\n    terms:\n      - alert\n      - person\n      - remind\n      - time\n  styles:\n    - solid\n  unicode: f4fd\n  voted: false\nuser-cog:\n  changes:\n    - 5.0.11\n  label: User Cog\n  search:\n    terms:\n      - admin\n      - cog\n      - person\n      - settings\n  styles:\n    - solid\n  unicode: f4fe\n  voted: false\nuser-edit:\n  changes:\n    - 5.0.11\n  label: User Edit\n  search:\n    terms:\n      - edit\n      - pen\n      - pencil\n      - person\n      - update\n      - write\n  styles:\n    - solid\n  unicode: f4ff\n  voted: false\nuser-friends:\n  changes:\n    - 5.0.11\n  label: User Friends\n  search:\n    terms:\n      - group\n      - people\n      - person\n      - team\n      - users\n  styles:\n    - solid\n  unicode: f500\n  voted: false\nuser-graduate:\n  changes:\n    - 5.0.11\n  label: User Graduate\n  search:\n    terms:\n      - cap\n      - clothing\n      - commencement\n      - gown\n      - graduation\n      - person\n      - student\n  styles:\n    - solid\n  unicode: f501\n  voted: false\nuser-injured:\n  changes:\n    - 5.4.0\n  label: User Injured\n  search:\n    terms:\n      - cast\n      - injury\n      - ouch\n      - patient\n      - person\n      - sling\n  styles:\n    - solid\n  unicode: f728\n  voted: false\nuser-lock:\n  changes:\n    - 5.0.11\n    - 5.9.0\n  label: User Lock\n  search:\n    terms:\n      - admin\n      - lock\n      - person\n      - private\n      - unlock\n  styles:\n    - solid\n  unicode: f502\n  voted: false\nuser-md:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.7\n    - 5.0.11\n  label: Doctor\n  search:\n    terms:\n      - job\n      - medical\n      - nurse\n      - occupation\n      - physician\n      - profile\n      - surgeon\n  styles:\n    - solid\n  unicode: f0f0\n  voted: false\nuser-minus:\n  changes:\n    - 5.0.11\n  label: User Minus\n  search:\n    terms:\n      - delete\n      - negative\n      - remove\n  styles:\n    - solid\n  unicode: f503\n  voted: false\nuser-ninja:\n  changes:\n    - 5.0.11\n  label: User Ninja\n  search:\n    terms:\n      - assassin\n      - avatar\n      - dangerous\n      - deadly\n      - sneaky\n  styles:\n    - solid\n  unicode: f504\n  voted: false\nuser-nurse:\n  changes:\n    - 5.7.0\n  label: Nurse\n  search:\n    terms:\n      - doctor\n      - midwife\n      - practitioner\n      - surgeon\n  styles:\n    - solid\n  unicode: f82f\n  voted: false\nuser-plus:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: User Plus\n  search:\n    terms:\n      - add\n      - avatar\n      - positive\n      - sign up\n      - signup\n      - team\n  styles:\n    - solid\n  unicode: f234\n  voted: false\nuser-secret:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: User Secret\n  search:\n    terms:\n      - clothing\n      - coat\n      - hat\n      - incognito\n      - person\n      - privacy\n      - spy\n      - whisper\n  styles:\n    - solid\n  unicode: f21b\n  voted: false\nuser-shield:\n  changes:\n    - 5.0.11\n  label: User Shield\n  search:\n    terms:\n      - admin\n      - person\n      - private\n      - protect\n      - safe\n  styles:\n    - solid\n  unicode: f505\n  voted: false\nuser-slash:\n  changes:\n    - 5.0.11\n  label: User Slash\n  search:\n    terms:\n      - ban\n      - delete\n      - remove\n  styles:\n    - solid\n  unicode: f506\n  voted: false\nuser-tag:\n  changes:\n    - 5.0.11\n  label: User Tag\n  search:\n    terms:\n      - avatar\n      - discount\n      - label\n      - person\n      - role\n      - special\n  styles:\n    - solid\n  unicode: f507\n  voted: false\nuser-tie:\n  changes:\n    - 5.0.11\n  label: User Tie\n  search:\n    terms:\n      - avatar\n      - business\n      - clothing\n      - formal\n      - professional\n      - suit\n  styles:\n    - solid\n  unicode: f508\n  voted: false\nuser-times:\n  changes:\n    - '4.3'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: Remove User\n  search:\n    terms:\n      - archive\n      - delete\n      - remove\n      - x\n  styles:\n    - solid\n  unicode: f235\n  voted: false\nusers:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.3\n    - 5.0.11\n  label: Users\n  search:\n    terms:\n      - friends\n      - group\n      - people\n      - persons\n      - profiles\n      - team\n  styles:\n    - solid\n  unicode: f0c0\n  voted: false\nusers-cog:\n  changes:\n    - 5.0.11\n  label: Users Cog\n  search:\n    terms:\n      - admin\n      - cog\n      - group\n      - person\n      - settings\n      - team\n  styles:\n    - solid\n  unicode: f509\n  voted: false\nusps:\n  changes:\n    - 5.6.0\n    - 5.8.0\n  label: United States Postal Service\n  search:\n    terms:\n      - american\n      - package\n      - shipping\n      - usa\n  styles:\n    - brands\n  unicode: f7e1\nussunnah:\n  changes:\n    - 5.0.0\n  label: us-Sunnah Foundation\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f407\n  voted: false\nutensil-spoon:\n  changes:\n    - 5.0.0\n  label: Utensil Spoon\n  search:\n    terms:\n      - cutlery\n      - dining\n      - scoop\n      - silverware\n      - spoon\n  styles:\n    - solid\n  unicode: f2e5\n  voted: false\nutensils:\n  changes:\n    - 5.0.0\n  label: Utensils\n  search:\n    terms:\n      - cutlery\n      - dining\n      - dinner\n      - eat\n      - food\n      - fork\n      - knife\n      - restaurant\n  styles:\n    - solid\n  unicode: f2e7\n  voted: false\nvaadin:\n  changes:\n    - 5.0.0\n  label: Vaadin\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f408\n  voted: false\nvector-square:\n  changes:\n    - 5.1.0\n  label: Vector Square\n  search:\n    terms:\n      - anchors\n      - lines\n      - object\n      - render\n      - shape\n  styles:\n    - solid\n  unicode: f5cb\n  voted: false\nvenus:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Venus\n  search:\n    terms:\n      - female\n  styles:\n    - solid\n  unicode: f221\n  voted: false\nvenus-double:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Venus Double\n  search:\n    terms:\n      - female\n  styles:\n    - solid\n  unicode: f226\n  voted: false\nvenus-mars:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Venus Mars\n  search:\n    terms:\n      - Gender\n  styles:\n    - solid\n  unicode: f228\n  voted: false\nviacoin:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: Viacoin\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f237\n  voted: false\nviadeo:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: Video\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2a9\n  voted: false\nviadeo-square:\n  changes:\n    - '4.6'\n    - 5.0.0\n    - 5.7.0\n  label: Video Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2aa\n  voted: false\nvial:\n  changes:\n    - 5.0.7\n  label: Vial\n  search:\n    terms:\n      - experiment\n      - lab\n      - sample\n      - science\n      - test\n      - test tube\n  styles:\n    - solid\n  unicode: f492\n  voted: false\nvials:\n  changes:\n    - 5.0.7\n  label: Vials\n  search:\n    terms:\n      - experiment\n      - lab\n      - sample\n      - science\n      - test\n      - test tube\n  styles:\n    - solid\n  unicode: f493\n  voted: false\nviber:\n  changes:\n    - 5.0.0\n    - 5.0.3\n  label: Viber\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f409\n  voted: false\nvideo:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.0.9\n  label: Video\n  search:\n    terms:\n      - camera\n      - film\n      - movie\n      - record\n      - video-camera\n  styles:\n    - solid\n  unicode: f03d\n  voted: false\nvideo-slash:\n  changes:\n    - 5.0.9\n  label: Video Slash\n  search:\n    terms:\n      - add\n      - create\n      - film\n      - new\n      - positive\n      - record\n      - video\n  styles:\n    - solid\n  unicode: f4e2\n  voted: false\nvihara:\n  changes:\n    - 5.3.0\n  label: Vihara\n  search:\n    terms:\n      - buddhism\n      - buddhist\n      - building\n      - monastery\n  styles:\n    - solid\n  unicode: f6a7\n  voted: false\nvimeo:\n  changes:\n    - 5.0.0\n  label: Vimeo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f40a\n  voted: false\nvimeo-square:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Vimeo Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f194\n  voted: false\nvimeo-v:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Vimeo\n  search:\n    terms:\n      - vimeo\n  styles:\n    - brands\n  unicode: f27d\n  voted: false\nvine:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: Vine\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1ca\n  voted: false\nvk:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: VK\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f189\n  voted: false\nvnv:\n  changes:\n    - 5.0.0\n  label: VNV\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f40b\n  voted: false\nvoicemail:\n  changes:\n    - 5.9.0\n  label: Voicemail\n  search:\n    terms:\n      - answer\n      - inbox\n      - message\n      - phone\n  styles:\n    - solid\n  unicode: f897\n  voted: true\nvolleyball-ball:\n  changes:\n    - 5.0.5\n    - 5.8.0\n  label: Volleyball Ball\n  search:\n    terms:\n      - beach\n      - olympics\n      - sport\n  styles:\n    - solid\n  unicode: f45f\n  voted: false\nvolume-down:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n  label: Volume Down\n  search:\n    terms:\n      - audio\n      - lower\n      - music\n      - quieter\n      - sound\n      - speaker\n  styles:\n    - solid\n  unicode: f027\n  voted: false\nvolume-mute:\n  changes:\n    - 5.3.0\n  label: Volume Mute\n  search:\n    terms:\n      - audio\n      - music\n      - quiet\n      - sound\n      - speaker\n  styles:\n    - solid\n  unicode: f6a9\n  voted: true\nvolume-off:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n    - 5.8.0\n  label: Volume Off\n  search:\n    terms:\n      - audio\n      - ban\n      - music\n      - mute\n      - quiet\n      - silent\n      - sound\n  styles:\n    - solid\n  unicode: f026\n  voted: false\nvolume-up:\n  changes:\n    - '1'\n    - 5.0.0\n    - 5.3.0\n  label: Volume Up\n  search:\n    terms:\n      - audio\n      - higher\n      - louder\n      - music\n      - sound\n      - speaker\n  styles:\n    - solid\n  unicode: f028\n  voted: false\nvote-yea:\n  changes:\n    - 5.5.0\n  label: Vote Yea\n  search:\n    terms:\n      - accept\n      - cast\n      - election\n      - politics\n      - positive\n      - 'yes'\n  styles:\n    - solid\n  unicode: f772\n  voted: false\nvr-cardboard:\n  changes:\n    - 5.4.0\n  label: Cardboard VR\n  search:\n    terms:\n      - 3d\n      - augment\n      - google\n      - reality\n      - virtual\n  styles:\n    - solid\n  unicode: f729\n  voted: true\nvuejs:\n  changes:\n    - 5.0.0\n  label: Vue.js\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f41f\n  voted: false\nwalking:\n  changes:\n    - 5.0.13\n  label: Walking\n  search:\n    terms:\n      - exercise\n      - health\n      - pedometer\n      - person\n      - steps\n  styles:\n    - solid\n  unicode: f554\n  voted: true\nwallet:\n  changes:\n    - 5.0.13\n  label: Wallet\n  search:\n    terms:\n      - billfold\n      - cash\n      - currency\n      - money\n  styles:\n    - solid\n  unicode: f555\n  voted: true\nwarehouse:\n  changes:\n    - 5.0.7\n  label: Warehouse\n  search:\n    terms:\n      - building\n      - capacity\n      - garage\n      - inventory\n      - storage\n  styles:\n    - solid\n  unicode: f494\n  voted: false\nwater:\n  changes:\n    - 5.5.0\n  label: Water\n  search:\n    terms:\n      - lake\n      - liquid\n      - ocean\n      - sea\n      - swim\n      - wet\n  styles:\n    - solid\n  unicode: f773\n  voted: false\nwave-square:\n  changes:\n    - 5.8.0\n  label: Square Wave\n  search:\n    terms:\n      - frequency\n      - pulse\n      - signal\n  styles:\n    - solid\n  unicode: f83e\n  voted: false\nwaze:\n  changes:\n    - 5.8.0\n  label: Waze\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f83f\nweebly:\n  changes:\n    - 5.1.0\n  label: Weebly\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5cc\n  voted: true\nweibo:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Weibo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f18a\n  voted: false\nweight:\n  changes:\n    - 5.0.7\n  label: Weight\n  search:\n    terms:\n      - health\n      - measurement\n      - scale\n      - weight\n  styles:\n    - solid\n  unicode: f496\n  voted: false\nweight-hanging:\n  changes:\n    - 5.1.0\n  label: Hanging Weight\n  search:\n    terms:\n      - anvil\n      - heavy\n      - measurement\n  styles:\n    - solid\n  unicode: f5cd\n  voted: false\nweixin:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.0.3\n  label: Weixin (WeChat)\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1d7\n  voted: false\nwhatsapp:\n  changes:\n    - '4.3'\n    - 5.0.0\n  label: What's App\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f232\n  voted: false\nwhatsapp-square:\n  changes:\n    - 5.0.0\n  label: What's App Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f40c\n  voted: false\nwheelchair:\n  changes:\n    - '4'\n    - 5.0.0\n  label: Wheelchair\n  search:\n    terms:\n      - accessible\n      - handicap\n      - person\n  styles:\n    - solid\n  unicode: f193\n  voted: false\nwhmcs:\n  changes:\n    - 5.0.0\n  label: WHMCS\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f40d\n  voted: false\nwifi:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.3.0\n    - 5.10.1\n  label: WiFi\n  search:\n    terms:\n      - connection\n      - hotspot\n      - internet\n      - network\n      - wireless\n  styles:\n    - solid\n  unicode: f1eb\n  voted: false\nwikipedia-w:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Wikipedia W\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f266\n  voted: false\nwind:\n  changes:\n    - 5.4.0\n    - 5.5.0\n  label: Wind\n  search:\n    terms:\n      - air\n      - blow\n      - breeze\n      - fall\n      - seasonal\n      - weather\n  styles:\n    - solid\n  unicode: f72e\n  voted: false\nwindow-close:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Window Close\n  search:\n    terms:\n      - browser\n      - cancel\n      - computer\n      - development\n  styles:\n    - solid\n    - regular\n  unicode: f410\n  voted: false\nwindow-maximize:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Window Maximize\n  search:\n    terms:\n      - browser\n      - computer\n      - development\n      - expand\n  styles:\n    - solid\n    - regular\n  unicode: f2d0\n  voted: false\nwindow-minimize:\n  changes:\n    - '4.7'\n    - 5.0.0\n    - 5.10.1\n  label: Window Minimize\n  search:\n    terms:\n      - browser\n      - collapse\n      - computer\n      - development\n  styles:\n    - solid\n    - regular\n  unicode: f2d1\n  voted: false\nwindow-restore:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: Window Restore\n  search:\n    terms:\n      - browser\n      - computer\n      - development\n  styles:\n    - solid\n    - regular\n  unicode: f2d2\n  voted: false\nwindows:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Windows\n  search:\n    terms:\n      - microsoft\n      - operating system\n      - os\n  styles:\n    - brands\n  unicode: f17a\n  voted: false\nwine-bottle:\n  changes:\n    - 5.4.0\n  label: Wine Bottle\n  search:\n    terms:\n      - alcohol\n      - beverage\n      - cabernet\n      - drink\n      - glass\n      - grapes\n      - merlot\n      - sauvignon\n  styles:\n    - solid\n  unicode: f72f\n  voted: false\nwine-glass:\n  changes:\n    - 5.0.9\n    - 5.1.0\n    - 5.10.1\n  label: Wine Glass\n  search:\n    terms:\n      - alcohol\n      - beverage\n      - cabernet\n      - drink\n      - grapes\n      - merlot\n      - sauvignon\n  styles:\n    - solid\n  unicode: f4e3\n  voted: false\nwine-glass-alt:\n  changes:\n    - 5.1.0\n    - 5.10.1\n  label: Alternate Wine Glas\n  search:\n    terms:\n      - alcohol\n      - beverage\n      - cabernet\n      - drink\n      - grapes\n      - merlot\n      - sauvignon\n  styles:\n    - solid\n  unicode: f5ce\n  voted: false\nwix:\n  changes:\n    - 5.1.0\n  label: Wix\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f5cf\n  voted: true\nwizards-of-the-coast:\n  changes:\n    - 5.4.0\n  label: Wizards of the Coast\n  search:\n    terms:\n      - Dungeons & Dragons\n      - d&d\n      - dnd\n      - fantasy\n      - game\n      - gaming\n      - tabletop\n  styles:\n    - brands\n  unicode: f730\n  voted: false\nwolf-pack-battalion:\n  changes:\n    - 5.0.12\n    - 5.8.0\n  label: Wolf Pack Battalion\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f514\n  voted: false\nwon-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Won Sign\n  search:\n    terms:\n      - currency\n      - krw\n      - money\n  styles:\n    - solid\n  unicode: f159\n  voted: false\nwordpress:\n  changes:\n    - '4.1'\n    - 5.0.0\n  label: WordPress Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f19a\n  voted: false\nwordpress-simple:\n  changes:\n    - 5.0.0\n  label: Wordpress Simple\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f411\n  voted: false\nwpbeginner:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: WPBeginner\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f297\n  voted: false\nwpexplorer:\n  changes:\n    - '4.7'\n    - 5.0.0\n  label: WPExplorer\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2de\n  voted: false\nwpforms:\n  changes:\n    - '4.6'\n    - 5.0.0\n  label: WPForms\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f298\n  voted: false\nwpressr:\n  changes:\n    - 5.4.2\n  label: wpressr\n  search:\n    terms:\n      - rendact\n  styles:\n    - brands\n  unicode: f3e4\n  voted: false\nwrench:\n  changes:\n    - '2'\n    - 5.0.0\n    - 5.0.13\n  label: Wrench\n  search:\n    terms:\n      - construction\n      - fix\n      - mechanic\n      - plumbing\n      - settings\n      - spanner\n      - tool\n      - update\n  styles:\n    - solid\n  unicode: f0ad\n  voted: false\nx-ray:\n  changes:\n    - 5.0.7\n  label: X-Ray\n  search:\n    terms:\n      - health\n      - medical\n      - radiological images\n      - radiology\n      - skeleton\n  styles:\n    - solid\n  unicode: f497\n  voted: false\nxbox:\n  changes:\n    - 5.0.0\n  label: Xbox\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f412\n  voted: false\nxing:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Xing\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f168\n  voted: false\nxing-square:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Xing Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f169\n  voted: false\ny-combinator:\n  changes:\n    - '4.4'\n    - 5.0.0\n  label: Y Combinator\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f23b\n  voted: false\nyahoo:\n  changes:\n    - '4.1'\n    - 5.0.0\n    - 5.0.3\n  label: Yahoo Logo\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f19e\n  voted: false\nyammer:\n  changes:\n    - 5.8.0\n  label: Yammer\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f840\nyandex:\n  changes:\n    - 5.0.0\n  label: Yandex\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f413\n  voted: false\nyandex-international:\n  changes:\n    - 5.0.0\n  label: Yandex International\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f414\n  voted: false\nyarn:\n  changes:\n    - 5.6.0\n  label: Yarn\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f7e3\n  voted: true\nyelp:\n  changes:\n    - '4.2'\n    - 5.0.0\n    - 5.7.0\n    - 5.8.0\n  label: Yelp\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f1e9\n  voted: false\nyen-sign:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: Yen Sign\n  search:\n    terms:\n      - currency\n      - jpy\n      - money\n  styles:\n    - solid\n  unicode: f157\n  voted: false\nyin-yang:\n  changes:\n    - 5.3.0\n  label: Yin Yang\n  search:\n    terms:\n      - daoism\n      - opposites\n      - taoism\n  styles:\n    - solid\n  unicode: f6ad\n  voted: false\nyoast:\n  changes:\n    - '4.6'\n    - 5.0.0\n    - 5.0.3\n  label: Yoast\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f2b1\n  voted: false\nyoutube:\n  changes:\n    - '3.2'\n    - 5.0.0\n  label: YouTube\n  search:\n    terms:\n      - film\n      - video\n      - youtube-play\n      - youtube-square\n  styles:\n    - brands\n  unicode: f167\n  voted: false\nyoutube-square:\n  changes:\n    - 5.0.3\n  label: YouTube Square\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f431\n  voted: false\nzhihu:\n  changes:\n    - 5.2.0\n  label: Zhihu\n  search:\n    terms: []\n  styles:\n    - brands\n  unicode: f63f\n  voted: true\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/shims.json",
    "content": "[\n  [\n    \"glass\",\n    null,\n    \"glass-martini\"\n  ],\n  [\n    \"meetup\",\n    \"fab\",\n    null\n  ],\n  [\n    \"star-o\",\n    \"far\",\n    \"star\"\n  ],\n  [\n    \"remove\",\n    null,\n    \"times\"\n  ],\n  [\n    \"close\",\n    null,\n    \"times\"\n  ],\n  [\n    \"gear\",\n    null,\n    \"cog\"\n  ],\n  [\n    \"trash-o\",\n    \"far\",\n    \"trash-alt\"\n  ],\n  [\n    \"file-o\",\n    \"far\",\n    \"file\"\n  ],\n  [\n    \"clock-o\",\n    \"far\",\n    \"clock\"\n  ],\n  [\n    \"arrow-circle-o-down\",\n    \"far\",\n    \"arrow-alt-circle-down\"\n  ],\n  [\n    \"arrow-circle-o-up\",\n    \"far\",\n    \"arrow-alt-circle-up\"\n  ],\n  [\n    \"play-circle-o\",\n    \"far\",\n    \"play-circle\"\n  ],\n  [\n    \"repeat\",\n    null,\n    \"redo\"\n  ],\n  [\n    \"rotate-right\",\n    null,\n    \"redo\"\n  ],\n  [\n    \"refresh\",\n    null,\n    \"sync\"\n  ],\n  [\n    \"list-alt\",\n    \"far\",\n    null\n  ],\n  [\n    \"dedent\",\n    null,\n    \"outdent\"\n  ],\n  [\n    \"video-camera\",\n    null,\n    \"video\"\n  ],\n  [\n    \"picture-o\",\n    \"far\",\n    \"image\"\n  ],\n  [\n    \"photo\",\n    \"far\",\n    \"image\"\n  ],\n  [\n    \"image\",\n    \"far\",\n    \"image\"\n  ],\n  [\n    \"pencil\",\n    null,\n    \"pencil-alt\"\n  ],\n  [\n    \"map-marker\",\n    null,\n    \"map-marker-alt\"\n  ],\n  [\n    \"pencil-square-o\",\n    \"far\",\n    \"edit\"\n  ],\n  [\n    \"share-square-o\",\n    \"far\",\n    \"share-square\"\n  ],\n  [\n    \"check-square-o\",\n    \"far\",\n    \"check-square\"\n  ],\n  [\n    \"arrows\",\n    null,\n    \"arrows-alt\"\n  ],\n  [\n    \"times-circle-o\",\n    \"far\",\n    \"times-circle\"\n  ],\n  [\n    \"check-circle-o\",\n    \"far\",\n    \"check-circle\"\n  ],\n  [\n    \"mail-forward\",\n    null,\n    \"share\"\n  ],\n  [\n    \"eye\",\n    \"far\",\n    null\n  ],\n  [\n    \"eye-slash\",\n    \"far\",\n    null\n  ],\n  [\n    \"warning\",\n    null,\n    \"exclamation-triangle\"\n  ],\n  [\n    \"calendar\",\n    null,\n    \"calendar-alt\"\n  ],\n  [\n    \"arrows-v\",\n    null,\n    \"arrows-alt-v\"\n  ],\n  [\n    \"arrows-h\",\n    null,\n    \"arrows-alt-h\"\n  ],\n  [\n    \"bar-chart\",\n    \"far\",\n    \"chart-bar\"\n  ],\n  [\n    \"bar-chart-o\",\n    \"far\",\n    \"chart-bar\"\n  ],\n  [\n    \"twitter-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"facebook-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gears\",\n    null,\n    \"cogs\"\n  ],\n  [\n    \"thumbs-o-up\",\n    \"far\",\n    \"thumbs-up\"\n  ],\n  [\n    \"thumbs-o-down\",\n    \"far\",\n    \"thumbs-down\"\n  ],\n  [\n    \"heart-o\",\n    \"far\",\n    \"heart\"\n  ],\n  [\n    \"sign-out\",\n    null,\n    \"sign-out-alt\"\n  ],\n  [\n    \"linkedin-square\",\n    \"fab\",\n    \"linkedin\"\n  ],\n  [\n    \"thumb-tack\",\n    null,\n    \"thumbtack\"\n  ],\n  [\n    \"external-link\",\n    null,\n    \"external-link-alt\"\n  ],\n  [\n    \"sign-in\",\n    null,\n    \"sign-in-alt\"\n  ],\n  [\n    \"github-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"lemon-o\",\n    \"far\",\n    \"lemon\"\n  ],\n  [\n    \"square-o\",\n    \"far\",\n    \"square\"\n  ],\n  [\n    \"bookmark-o\",\n    \"far\",\n    \"bookmark\"\n  ],\n  [\n    \"twitter\",\n    \"fab\",\n    null\n  ],\n  [\n    \"facebook\",\n    \"fab\",\n    \"facebook-f\"\n  ],\n  [\n    \"facebook-f\",\n    \"fab\",\n    \"facebook-f\"\n  ],\n  [\n    \"github\",\n    \"fab\",\n    null\n  ],\n  [\n    \"credit-card\",\n    \"far\",\n    null\n  ],\n  [\n    \"feed\",\n    null,\n    \"rss\"\n  ],\n  [\n    \"hdd-o\",\n    \"far\",\n    \"hdd\"\n  ],\n  [\n    \"hand-o-right\",\n    \"far\",\n    \"hand-point-right\"\n  ],\n  [\n    \"hand-o-left\",\n    \"far\",\n    \"hand-point-left\"\n  ],\n  [\n    \"hand-o-up\",\n    \"far\",\n    \"hand-point-up\"\n  ],\n  [\n    \"hand-o-down\",\n    \"far\",\n    \"hand-point-down\"\n  ],\n  [\n    \"arrows-alt\",\n    null,\n    \"expand-arrows-alt\"\n  ],\n  [\n    \"group\",\n    null,\n    \"users\"\n  ],\n  [\n    \"chain\",\n    null,\n    \"link\"\n  ],\n  [\n    \"scissors\",\n    null,\n    \"cut\"\n  ],\n  [\n    \"files-o\",\n    \"far\",\n    \"copy\"\n  ],\n  [\n    \"floppy-o\",\n    \"far\",\n    \"save\"\n  ],\n  [\n    \"navicon\",\n    null,\n    \"bars\"\n  ],\n  [\n    \"reorder\",\n    null,\n    \"bars\"\n  ],\n  [\n    \"pinterest\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pinterest-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"google-plus-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"google-plus\",\n    \"fab\",\n    \"google-plus-g\"\n  ],\n  [\n    \"money\",\n    \"far\",\n    \"money-bill-alt\"\n  ],\n  [\n    \"unsorted\",\n    null,\n    \"sort\"\n  ],\n  [\n    \"sort-desc\",\n    null,\n    \"sort-down\"\n  ],\n  [\n    \"sort-asc\",\n    null,\n    \"sort-up\"\n  ],\n  [\n    \"linkedin\",\n    \"fab\",\n    \"linkedin-in\"\n  ],\n  [\n    \"rotate-left\",\n    null,\n    \"undo\"\n  ],\n  [\n    \"legal\",\n    null,\n    \"gavel\"\n  ],\n  [\n    \"tachometer\",\n    null,\n    \"tachometer-alt\"\n  ],\n  [\n    \"dashboard\",\n    null,\n    \"tachometer-alt\"\n  ],\n  [\n    \"comment-o\",\n    \"far\",\n    \"comment\"\n  ],\n  [\n    \"comments-o\",\n    \"far\",\n    \"comments\"\n  ],\n  [\n    \"flash\",\n    null,\n    \"bolt\"\n  ],\n  [\n    \"clipboard\",\n    \"far\",\n    null\n  ],\n  [\n    \"paste\",\n    \"far\",\n    \"clipboard\"\n  ],\n  [\n    \"lightbulb-o\",\n    \"far\",\n    \"lightbulb\"\n  ],\n  [\n    \"exchange\",\n    null,\n    \"exchange-alt\"\n  ],\n  [\n    \"cloud-download\",\n    null,\n    \"cloud-download-alt\"\n  ],\n  [\n    \"cloud-upload\",\n    null,\n    \"cloud-upload-alt\"\n  ],\n  [\n    \"bell-o\",\n    \"far\",\n    \"bell\"\n  ],\n  [\n    \"cutlery\",\n    null,\n    \"utensils\"\n  ],\n  [\n    \"file-text-o\",\n    \"far\",\n    \"file-alt\"\n  ],\n  [\n    \"building-o\",\n    \"far\",\n    \"building\"\n  ],\n  [\n    \"hospital-o\",\n    \"far\",\n    \"hospital\"\n  ],\n  [\n    \"tablet\",\n    null,\n    \"tablet-alt\"\n  ],\n  [\n    \"mobile\",\n    null,\n    \"mobile-alt\"\n  ],\n  [\n    \"mobile-phone\",\n    null,\n    \"mobile-alt\"\n  ],\n  [\n    \"circle-o\",\n    \"far\",\n    \"circle\"\n  ],\n  [\n    \"mail-reply\",\n    null,\n    \"reply\"\n  ],\n  [\n    \"github-alt\",\n    \"fab\",\n    null\n  ],\n  [\n    \"folder-o\",\n    \"far\",\n    \"folder\"\n  ],\n  [\n    \"folder-open-o\",\n    \"far\",\n    \"folder-open\"\n  ],\n  [\n    \"smile-o\",\n    \"far\",\n    \"smile\"\n  ],\n  [\n    \"frown-o\",\n    \"far\",\n    \"frown\"\n  ],\n  [\n    \"meh-o\",\n    \"far\",\n    \"meh\"\n  ],\n  [\n    \"keyboard-o\",\n    \"far\",\n    \"keyboard\"\n  ],\n  [\n    \"flag-o\",\n    \"far\",\n    \"flag\"\n  ],\n  [\n    \"mail-reply-all\",\n    null,\n    \"reply-all\"\n  ],\n  [\n    \"star-half-o\",\n    \"far\",\n    \"star-half\"\n  ],\n  [\n    \"star-half-empty\",\n    \"far\",\n    \"star-half\"\n  ],\n  [\n    \"star-half-full\",\n    \"far\",\n    \"star-half\"\n  ],\n  [\n    \"code-fork\",\n    null,\n    \"code-branch\"\n  ],\n  [\n    \"chain-broken\",\n    null,\n    \"unlink\"\n  ],\n  [\n    \"shield\",\n    null,\n    \"shield-alt\"\n  ],\n  [\n    \"calendar-o\",\n    \"far\",\n    \"calendar\"\n  ],\n  [\n    \"maxcdn\",\n    \"fab\",\n    null\n  ],\n  [\n    \"html5\",\n    \"fab\",\n    null\n  ],\n  [\n    \"css3\",\n    \"fab\",\n    null\n  ],\n  [\n    \"ticket\",\n    null,\n    \"ticket-alt\"\n  ],\n  [\n    \"minus-square-o\",\n    \"far\",\n    \"minus-square\"\n  ],\n  [\n    \"level-up\",\n    null,\n    \"level-up-alt\"\n  ],\n  [\n    \"level-down\",\n    null,\n    \"level-down-alt\"\n  ],\n  [\n    \"pencil-square\",\n    null,\n    \"pen-square\"\n  ],\n  [\n    \"external-link-square\",\n    null,\n    \"external-link-square-alt\"\n  ],\n  [\n    \"compass\",\n    \"far\",\n    null\n  ],\n  [\n    \"caret-square-o-down\",\n    \"far\",\n    \"caret-square-down\"\n  ],\n  [\n    \"toggle-down\",\n    \"far\",\n    \"caret-square-down\"\n  ],\n  [\n    \"caret-square-o-up\",\n    \"far\",\n    \"caret-square-up\"\n  ],\n  [\n    \"toggle-up\",\n    \"far\",\n    \"caret-square-up\"\n  ],\n  [\n    \"caret-square-o-right\",\n    \"far\",\n    \"caret-square-right\"\n  ],\n  [\n    \"toggle-right\",\n    \"far\",\n    \"caret-square-right\"\n  ],\n  [\n    \"eur\",\n    null,\n    \"euro-sign\"\n  ],\n  [\n    \"euro\",\n    null,\n    \"euro-sign\"\n  ],\n  [\n    \"gbp\",\n    null,\n    \"pound-sign\"\n  ],\n  [\n    \"usd\",\n    null,\n    \"dollar-sign\"\n  ],\n  [\n    \"dollar\",\n    null,\n    \"dollar-sign\"\n  ],\n  [\n    \"inr\",\n    null,\n    \"rupee-sign\"\n  ],\n  [\n    \"rupee\",\n    null,\n    \"rupee-sign\"\n  ],\n  [\n    \"jpy\",\n    null,\n    \"yen-sign\"\n  ],\n  [\n    \"cny\",\n    null,\n    \"yen-sign\"\n  ],\n  [\n    \"rmb\",\n    null,\n    \"yen-sign\"\n  ],\n  [\n    \"yen\",\n    null,\n    \"yen-sign\"\n  ],\n  [\n    \"rub\",\n    null,\n    \"ruble-sign\"\n  ],\n  [\n    \"ruble\",\n    null,\n    \"ruble-sign\"\n  ],\n  [\n    \"rouble\",\n    null,\n    \"ruble-sign\"\n  ],\n  [\n    \"krw\",\n    null,\n    \"won-sign\"\n  ],\n  [\n    \"won\",\n    null,\n    \"won-sign\"\n  ],\n  [\n    \"btc\",\n    \"fab\",\n    null\n  ],\n  [\n    \"bitcoin\",\n    \"fab\",\n    \"btc\"\n  ],\n  [\n    \"file-text\",\n    null,\n    \"file-alt\"\n  ],\n  [\n    \"sort-alpha-asc\",\n    null,\n    \"sort-alpha-down\"\n  ],\n  [\n    \"sort-alpha-desc\",\n    null,\n    \"sort-alpha-down-alt\"\n  ],\n  [\n    \"sort-amount-asc\",\n    null,\n    \"sort-amount-down\"\n  ],\n  [\n    \"sort-amount-desc\",\n    null,\n    \"sort-amount-down-alt\"\n  ],\n  [\n    \"sort-numeric-asc\",\n    null,\n    \"sort-numeric-down\"\n  ],\n  [\n    \"sort-numeric-desc\",\n    null,\n    \"sort-numeric-down-alt\"\n  ],\n  [\n    \"youtube-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"youtube\",\n    \"fab\",\n    null\n  ],\n  [\n    \"xing\",\n    \"fab\",\n    null\n  ],\n  [\n    \"xing-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"youtube-play\",\n    \"fab\",\n    \"youtube\"\n  ],\n  [\n    \"dropbox\",\n    \"fab\",\n    null\n  ],\n  [\n    \"stack-overflow\",\n    \"fab\",\n    null\n  ],\n  [\n    \"instagram\",\n    \"fab\",\n    null\n  ],\n  [\n    \"flickr\",\n    \"fab\",\n    null\n  ],\n  [\n    \"adn\",\n    \"fab\",\n    null\n  ],\n  [\n    \"bitbucket\",\n    \"fab\",\n    null\n  ],\n  [\n    \"bitbucket-square\",\n    \"fab\",\n    \"bitbucket\"\n  ],\n  [\n    \"tumblr\",\n    \"fab\",\n    null\n  ],\n  [\n    \"tumblr-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"long-arrow-down\",\n    null,\n    \"long-arrow-alt-down\"\n  ],\n  [\n    \"long-arrow-up\",\n    null,\n    \"long-arrow-alt-up\"\n  ],\n  [\n    \"long-arrow-left\",\n    null,\n    \"long-arrow-alt-left\"\n  ],\n  [\n    \"long-arrow-right\",\n    null,\n    \"long-arrow-alt-right\"\n  ],\n  [\n    \"apple\",\n    \"fab\",\n    null\n  ],\n  [\n    \"windows\",\n    \"fab\",\n    null\n  ],\n  [\n    \"android\",\n    \"fab\",\n    null\n  ],\n  [\n    \"linux\",\n    \"fab\",\n    null\n  ],\n  [\n    \"dribbble\",\n    \"fab\",\n    null\n  ],\n  [\n    \"skype\",\n    \"fab\",\n    null\n  ],\n  [\n    \"foursquare\",\n    \"fab\",\n    null\n  ],\n  [\n    \"trello\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gratipay\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gittip\",\n    \"fab\",\n    \"gratipay\"\n  ],\n  [\n    \"sun-o\",\n    \"far\",\n    \"sun\"\n  ],\n  [\n    \"moon-o\",\n    \"far\",\n    \"moon\"\n  ],\n  [\n    \"vk\",\n    \"fab\",\n    null\n  ],\n  [\n    \"weibo\",\n    \"fab\",\n    null\n  ],\n  [\n    \"renren\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pagelines\",\n    \"fab\",\n    null\n  ],\n  [\n    \"stack-exchange\",\n    \"fab\",\n    null\n  ],\n  [\n    \"arrow-circle-o-right\",\n    \"far\",\n    \"arrow-alt-circle-right\"\n  ],\n  [\n    \"arrow-circle-o-left\",\n    \"far\",\n    \"arrow-alt-circle-left\"\n  ],\n  [\n    \"caret-square-o-left\",\n    \"far\",\n    \"caret-square-left\"\n  ],\n  [\n    \"toggle-left\",\n    \"far\",\n    \"caret-square-left\"\n  ],\n  [\n    \"dot-circle-o\",\n    \"far\",\n    \"dot-circle\"\n  ],\n  [\n    \"vimeo-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"try\",\n    null,\n    \"lira-sign\"\n  ],\n  [\n    \"turkish-lira\",\n    null,\n    \"lira-sign\"\n  ],\n  [\n    \"plus-square-o\",\n    \"far\",\n    \"plus-square\"\n  ],\n  [\n    \"slack\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wordpress\",\n    \"fab\",\n    null\n  ],\n  [\n    \"openid\",\n    \"fab\",\n    null\n  ],\n  [\n    \"institution\",\n    null,\n    \"university\"\n  ],\n  [\n    \"bank\",\n    null,\n    \"university\"\n  ],\n  [\n    \"mortar-board\",\n    null,\n    \"graduation-cap\"\n  ],\n  [\n    \"yahoo\",\n    \"fab\",\n    null\n  ],\n  [\n    \"google\",\n    \"fab\",\n    null\n  ],\n  [\n    \"reddit\",\n    \"fab\",\n    null\n  ],\n  [\n    \"reddit-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"stumbleupon-circle\",\n    \"fab\",\n    null\n  ],\n  [\n    \"stumbleupon\",\n    \"fab\",\n    null\n  ],\n  [\n    \"delicious\",\n    \"fab\",\n    null\n  ],\n  [\n    \"digg\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pied-piper-pp\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pied-piper-alt\",\n    \"fab\",\n    null\n  ],\n  [\n    \"drupal\",\n    \"fab\",\n    null\n  ],\n  [\n    \"joomla\",\n    \"fab\",\n    null\n  ],\n  [\n    \"spoon\",\n    null,\n    \"utensil-spoon\"\n  ],\n  [\n    \"behance\",\n    \"fab\",\n    null\n  ],\n  [\n    \"behance-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"steam\",\n    \"fab\",\n    null\n  ],\n  [\n    \"steam-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"automobile\",\n    null,\n    \"car\"\n  ],\n  [\n    \"cab\",\n    null,\n    \"taxi\"\n  ],\n  [\n    \"envelope-o\",\n    \"far\",\n    \"envelope\"\n  ],\n  [\n    \"deviantart\",\n    \"fab\",\n    null\n  ],\n  [\n    \"soundcloud\",\n    \"fab\",\n    null\n  ],\n  [\n    \"file-pdf-o\",\n    \"far\",\n    \"file-pdf\"\n  ],\n  [\n    \"file-word-o\",\n    \"far\",\n    \"file-word\"\n  ],\n  [\n    \"file-excel-o\",\n    \"far\",\n    \"file-excel\"\n  ],\n  [\n    \"file-powerpoint-o\",\n    \"far\",\n    \"file-powerpoint\"\n  ],\n  [\n    \"file-image-o\",\n    \"far\",\n    \"file-image\"\n  ],\n  [\n    \"file-photo-o\",\n    \"far\",\n    \"file-image\"\n  ],\n  [\n    \"file-picture-o\",\n    \"far\",\n    \"file-image\"\n  ],\n  [\n    \"file-archive-o\",\n    \"far\",\n    \"file-archive\"\n  ],\n  [\n    \"file-zip-o\",\n    \"far\",\n    \"file-archive\"\n  ],\n  [\n    \"file-audio-o\",\n    \"far\",\n    \"file-audio\"\n  ],\n  [\n    \"file-sound-o\",\n    \"far\",\n    \"file-audio\"\n  ],\n  [\n    \"file-video-o\",\n    \"far\",\n    \"file-video\"\n  ],\n  [\n    \"file-movie-o\",\n    \"far\",\n    \"file-video\"\n  ],\n  [\n    \"file-code-o\",\n    \"far\",\n    \"file-code\"\n  ],\n  [\n    \"vine\",\n    \"fab\",\n    null\n  ],\n  [\n    \"codepen\",\n    \"fab\",\n    null\n  ],\n  [\n    \"jsfiddle\",\n    \"fab\",\n    null\n  ],\n  [\n    \"life-ring\",\n    \"far\",\n    null\n  ],\n  [\n    \"life-bouy\",\n    \"far\",\n    \"life-ring\"\n  ],\n  [\n    \"life-buoy\",\n    \"far\",\n    \"life-ring\"\n  ],\n  [\n    \"life-saver\",\n    \"far\",\n    \"life-ring\"\n  ],\n  [\n    \"support\",\n    \"far\",\n    \"life-ring\"\n  ],\n  [\n    \"circle-o-notch\",\n    null,\n    \"circle-notch\"\n  ],\n  [\n    \"rebel\",\n    \"fab\",\n    null\n  ],\n  [\n    \"ra\",\n    \"fab\",\n    \"rebel\"\n  ],\n  [\n    \"resistance\",\n    \"fab\",\n    \"rebel\"\n  ],\n  [\n    \"empire\",\n    \"fab\",\n    null\n  ],\n  [\n    \"ge\",\n    \"fab\",\n    \"empire\"\n  ],\n  [\n    \"git-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"git\",\n    \"fab\",\n    null\n  ],\n  [\n    \"hacker-news\",\n    \"fab\",\n    null\n  ],\n  [\n    \"y-combinator-square\",\n    \"fab\",\n    \"hacker-news\"\n  ],\n  [\n    \"yc-square\",\n    \"fab\",\n    \"hacker-news\"\n  ],\n  [\n    \"tencent-weibo\",\n    \"fab\",\n    null\n  ],\n  [\n    \"qq\",\n    \"fab\",\n    null\n  ],\n  [\n    \"weixin\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wechat\",\n    \"fab\",\n    \"weixin\"\n  ],\n  [\n    \"send\",\n    null,\n    \"paper-plane\"\n  ],\n  [\n    \"paper-plane-o\",\n    \"far\",\n    \"paper-plane\"\n  ],\n  [\n    \"send-o\",\n    \"far\",\n    \"paper-plane\"\n  ],\n  [\n    \"circle-thin\",\n    \"far\",\n    \"circle\"\n  ],\n  [\n    \"header\",\n    null,\n    \"heading\"\n  ],\n  [\n    \"sliders\",\n    null,\n    \"sliders-h\"\n  ],\n  [\n    \"futbol-o\",\n    \"far\",\n    \"futbol\"\n  ],\n  [\n    \"soccer-ball-o\",\n    \"far\",\n    \"futbol\"\n  ],\n  [\n    \"slideshare\",\n    \"fab\",\n    null\n  ],\n  [\n    \"twitch\",\n    \"fab\",\n    null\n  ],\n  [\n    \"yelp\",\n    \"fab\",\n    null\n  ],\n  [\n    \"newspaper-o\",\n    \"far\",\n    \"newspaper\"\n  ],\n  [\n    \"paypal\",\n    \"fab\",\n    null\n  ],\n  [\n    \"google-wallet\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-visa\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-mastercard\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-discover\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-amex\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-paypal\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-stripe\",\n    \"fab\",\n    null\n  ],\n  [\n    \"bell-slash-o\",\n    \"far\",\n    \"bell-slash\"\n  ],\n  [\n    \"trash\",\n    null,\n    \"trash-alt\"\n  ],\n  [\n    \"copyright\",\n    \"far\",\n    null\n  ],\n  [\n    \"eyedropper\",\n    null,\n    \"eye-dropper\"\n  ],\n  [\n    \"area-chart\",\n    null,\n    \"chart-area\"\n  ],\n  [\n    \"pie-chart\",\n    null,\n    \"chart-pie\"\n  ],\n  [\n    \"line-chart\",\n    null,\n    \"chart-line\"\n  ],\n  [\n    \"lastfm\",\n    \"fab\",\n    null\n  ],\n  [\n    \"lastfm-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"ioxhost\",\n    \"fab\",\n    null\n  ],\n  [\n    \"angellist\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc\",\n    \"far\",\n    \"closed-captioning\"\n  ],\n  [\n    \"ils\",\n    null,\n    \"shekel-sign\"\n  ],\n  [\n    \"shekel\",\n    null,\n    \"shekel-sign\"\n  ],\n  [\n    \"sheqel\",\n    null,\n    \"shekel-sign\"\n  ],\n  [\n    \"meanpath\",\n    \"fab\",\n    \"font-awesome\"\n  ],\n  [\n    \"buysellads\",\n    \"fab\",\n    null\n  ],\n  [\n    \"connectdevelop\",\n    \"fab\",\n    null\n  ],\n  [\n    \"dashcube\",\n    \"fab\",\n    null\n  ],\n  [\n    \"forumbee\",\n    \"fab\",\n    null\n  ],\n  [\n    \"leanpub\",\n    \"fab\",\n    null\n  ],\n  [\n    \"sellsy\",\n    \"fab\",\n    null\n  ],\n  [\n    \"shirtsinbulk\",\n    \"fab\",\n    null\n  ],\n  [\n    \"simplybuilt\",\n    \"fab\",\n    null\n  ],\n  [\n    \"skyatlas\",\n    \"fab\",\n    null\n  ],\n  [\n    \"diamond\",\n    \"far\",\n    \"gem\"\n  ],\n  [\n    \"intersex\",\n    null,\n    \"transgender\"\n  ],\n  [\n    \"facebook-official\",\n    \"fab\",\n    \"facebook\"\n  ],\n  [\n    \"pinterest-p\",\n    \"fab\",\n    null\n  ],\n  [\n    \"whatsapp\",\n    \"fab\",\n    null\n  ],\n  [\n    \"hotel\",\n    null,\n    \"bed\"\n  ],\n  [\n    \"viacoin\",\n    \"fab\",\n    null\n  ],\n  [\n    \"medium\",\n    \"fab\",\n    null\n  ],\n  [\n    \"y-combinator\",\n    \"fab\",\n    null\n  ],\n  [\n    \"yc\",\n    \"fab\",\n    \"y-combinator\"\n  ],\n  [\n    \"optin-monster\",\n    \"fab\",\n    null\n  ],\n  [\n    \"opencart\",\n    \"fab\",\n    null\n  ],\n  [\n    \"expeditedssl\",\n    \"fab\",\n    null\n  ],\n  [\n    \"battery-4\",\n    null,\n    \"battery-full\"\n  ],\n  [\n    \"battery\",\n    null,\n    \"battery-full\"\n  ],\n  [\n    \"battery-3\",\n    null,\n    \"battery-three-quarters\"\n  ],\n  [\n    \"battery-2\",\n    null,\n    \"battery-half\"\n  ],\n  [\n    \"battery-1\",\n    null,\n    \"battery-quarter\"\n  ],\n  [\n    \"battery-0\",\n    null,\n    \"battery-empty\"\n  ],\n  [\n    \"object-group\",\n    \"far\",\n    null\n  ],\n  [\n    \"object-ungroup\",\n    \"far\",\n    null\n  ],\n  [\n    \"sticky-note-o\",\n    \"far\",\n    \"sticky-note\"\n  ],\n  [\n    \"cc-jcb\",\n    \"fab\",\n    null\n  ],\n  [\n    \"cc-diners-club\",\n    \"fab\",\n    null\n  ],\n  [\n    \"clone\",\n    \"far\",\n    null\n  ],\n  [\n    \"hourglass-o\",\n    \"far\",\n    \"hourglass\"\n  ],\n  [\n    \"hourglass-1\",\n    null,\n    \"hourglass-start\"\n  ],\n  [\n    \"hourglass-2\",\n    null,\n    \"hourglass-half\"\n  ],\n  [\n    \"hourglass-3\",\n    null,\n    \"hourglass-end\"\n  ],\n  [\n    \"hand-rock-o\",\n    \"far\",\n    \"hand-rock\"\n  ],\n  [\n    \"hand-grab-o\",\n    \"far\",\n    \"hand-rock\"\n  ],\n  [\n    \"hand-paper-o\",\n    \"far\",\n    \"hand-paper\"\n  ],\n  [\n    \"hand-stop-o\",\n    \"far\",\n    \"hand-paper\"\n  ],\n  [\n    \"hand-scissors-o\",\n    \"far\",\n    \"hand-scissors\"\n  ],\n  [\n    \"hand-lizard-o\",\n    \"far\",\n    \"hand-lizard\"\n  ],\n  [\n    \"hand-spock-o\",\n    \"far\",\n    \"hand-spock\"\n  ],\n  [\n    \"hand-pointer-o\",\n    \"far\",\n    \"hand-pointer\"\n  ],\n  [\n    \"hand-peace-o\",\n    \"far\",\n    \"hand-peace\"\n  ],\n  [\n    \"registered\",\n    \"far\",\n    null\n  ],\n  [\n    \"creative-commons\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gg\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gg-circle\",\n    \"fab\",\n    null\n  ],\n  [\n    \"tripadvisor\",\n    \"fab\",\n    null\n  ],\n  [\n    \"odnoklassniki\",\n    \"fab\",\n    null\n  ],\n  [\n    \"odnoklassniki-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"get-pocket\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wikipedia-w\",\n    \"fab\",\n    null\n  ],\n  [\n    \"safari\",\n    \"fab\",\n    null\n  ],\n  [\n    \"chrome\",\n    \"fab\",\n    null\n  ],\n  [\n    \"firefox\",\n    \"fab\",\n    null\n  ],\n  [\n    \"opera\",\n    \"fab\",\n    null\n  ],\n  [\n    \"internet-explorer\",\n    \"fab\",\n    null\n  ],\n  [\n    \"television\",\n    null,\n    \"tv\"\n  ],\n  [\n    \"contao\",\n    \"fab\",\n    null\n  ],\n  [\n    \"500px\",\n    \"fab\",\n    null\n  ],\n  [\n    \"amazon\",\n    \"fab\",\n    null\n  ],\n  [\n    \"calendar-plus-o\",\n    \"far\",\n    \"calendar-plus\"\n  ],\n  [\n    \"calendar-minus-o\",\n    \"far\",\n    \"calendar-minus\"\n  ],\n  [\n    \"calendar-times-o\",\n    \"far\",\n    \"calendar-times\"\n  ],\n  [\n    \"calendar-check-o\",\n    \"far\",\n    \"calendar-check\"\n  ],\n  [\n    \"map-o\",\n    \"far\",\n    \"map\"\n  ],\n  [\n    \"commenting\",\n    null,\n    \"comment-dots\"\n  ],\n  [\n    \"commenting-o\",\n    \"far\",\n    \"comment-dots\"\n  ],\n  [\n    \"houzz\",\n    \"fab\",\n    null\n  ],\n  [\n    \"vimeo\",\n    \"fab\",\n    \"vimeo-v\"\n  ],\n  [\n    \"black-tie\",\n    \"fab\",\n    null\n  ],\n  [\n    \"fonticons\",\n    \"fab\",\n    null\n  ],\n  [\n    \"reddit-alien\",\n    \"fab\",\n    null\n  ],\n  [\n    \"edge\",\n    \"fab\",\n    null\n  ],\n  [\n    \"credit-card-alt\",\n    null,\n    \"credit-card\"\n  ],\n  [\n    \"codiepie\",\n    \"fab\",\n    null\n  ],\n  [\n    \"modx\",\n    \"fab\",\n    null\n  ],\n  [\n    \"fort-awesome\",\n    \"fab\",\n    null\n  ],\n  [\n    \"usb\",\n    \"fab\",\n    null\n  ],\n  [\n    \"product-hunt\",\n    \"fab\",\n    null\n  ],\n  [\n    \"mixcloud\",\n    \"fab\",\n    null\n  ],\n  [\n    \"scribd\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pause-circle-o\",\n    \"far\",\n    \"pause-circle\"\n  ],\n  [\n    \"stop-circle-o\",\n    \"far\",\n    \"stop-circle\"\n  ],\n  [\n    \"bluetooth\",\n    \"fab\",\n    null\n  ],\n  [\n    \"bluetooth-b\",\n    \"fab\",\n    null\n  ],\n  [\n    \"gitlab\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wpbeginner\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wpforms\",\n    \"fab\",\n    null\n  ],\n  [\n    \"envira\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wheelchair-alt\",\n    \"fab\",\n    \"accessible-icon\"\n  ],\n  [\n    \"question-circle-o\",\n    \"far\",\n    \"question-circle\"\n  ],\n  [\n    \"volume-control-phone\",\n    null,\n    \"phone-volume\"\n  ],\n  [\n    \"asl-interpreting\",\n    null,\n    \"american-sign-language-interpreting\"\n  ],\n  [\n    \"deafness\",\n    null,\n    \"deaf\"\n  ],\n  [\n    \"hard-of-hearing\",\n    null,\n    \"deaf\"\n  ],\n  [\n    \"glide\",\n    \"fab\",\n    null\n  ],\n  [\n    \"glide-g\",\n    \"fab\",\n    null\n  ],\n  [\n    \"signing\",\n    null,\n    \"sign-language\"\n  ],\n  [\n    \"viadeo\",\n    \"fab\",\n    null\n  ],\n  [\n    \"viadeo-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"snapchat\",\n    \"fab\",\n    null\n  ],\n  [\n    \"snapchat-ghost\",\n    \"fab\",\n    null\n  ],\n  [\n    \"snapchat-square\",\n    \"fab\",\n    null\n  ],\n  [\n    \"pied-piper\",\n    \"fab\",\n    null\n  ],\n  [\n    \"first-order\",\n    \"fab\",\n    null\n  ],\n  [\n    \"yoast\",\n    \"fab\",\n    null\n  ],\n  [\n    \"themeisle\",\n    \"fab\",\n    null\n  ],\n  [\n    \"google-plus-official\",\n    \"fab\",\n    \"google-plus\"\n  ],\n  [\n    \"google-plus-circle\",\n    \"fab\",\n    \"google-plus\"\n  ],\n  [\n    \"font-awesome\",\n    \"fab\",\n    null\n  ],\n  [\n    \"fa\",\n    \"fab\",\n    \"font-awesome\"\n  ],\n  [\n    \"handshake-o\",\n    \"far\",\n    \"handshake\"\n  ],\n  [\n    \"envelope-open-o\",\n    \"far\",\n    \"envelope-open\"\n  ],\n  [\n    \"linode\",\n    \"fab\",\n    null\n  ],\n  [\n    \"address-book-o\",\n    \"far\",\n    \"address-book\"\n  ],\n  [\n    \"vcard\",\n    null,\n    \"address-card\"\n  ],\n  [\n    \"address-card-o\",\n    \"far\",\n    \"address-card\"\n  ],\n  [\n    \"vcard-o\",\n    \"far\",\n    \"address-card\"\n  ],\n  [\n    \"user-circle-o\",\n    \"far\",\n    \"user-circle\"\n  ],\n  [\n    \"user-o\",\n    \"far\",\n    \"user\"\n  ],\n  [\n    \"id-badge\",\n    \"far\",\n    null\n  ],\n  [\n    \"drivers-license\",\n    null,\n    \"id-card\"\n  ],\n  [\n    \"id-card-o\",\n    \"far\",\n    \"id-card\"\n  ],\n  [\n    \"drivers-license-o\",\n    \"far\",\n    \"id-card\"\n  ],\n  [\n    \"quora\",\n    \"fab\",\n    null\n  ],\n  [\n    \"free-code-camp\",\n    \"fab\",\n    null\n  ],\n  [\n    \"telegram\",\n    \"fab\",\n    null\n  ],\n  [\n    \"thermometer-4\",\n    null,\n    \"thermometer-full\"\n  ],\n  [\n    \"thermometer\",\n    null,\n    \"thermometer-full\"\n  ],\n  [\n    \"thermometer-3\",\n    null,\n    \"thermometer-three-quarters\"\n  ],\n  [\n    \"thermometer-2\",\n    null,\n    \"thermometer-half\"\n  ],\n  [\n    \"thermometer-1\",\n    null,\n    \"thermometer-quarter\"\n  ],\n  [\n    \"thermometer-0\",\n    null,\n    \"thermometer-empty\"\n  ],\n  [\n    \"bathtub\",\n    null,\n    \"bath\"\n  ],\n  [\n    \"s15\",\n    null,\n    \"bath\"\n  ],\n  [\n    \"window-maximize\",\n    \"far\",\n    null\n  ],\n  [\n    \"window-restore\",\n    \"far\",\n    null\n  ],\n  [\n    \"times-rectangle\",\n    null,\n    \"window-close\"\n  ],\n  [\n    \"window-close-o\",\n    \"far\",\n    \"window-close\"\n  ],\n  [\n    \"times-rectangle-o\",\n    \"far\",\n    \"window-close\"\n  ],\n  [\n    \"bandcamp\",\n    \"fab\",\n    null\n  ],\n  [\n    \"grav\",\n    \"fab\",\n    null\n  ],\n  [\n    \"etsy\",\n    \"fab\",\n    null\n  ],\n  [\n    \"imdb\",\n    \"fab\",\n    null\n  ],\n  [\n    \"ravelry\",\n    \"fab\",\n    null\n  ],\n  [\n    \"eercast\",\n    \"fab\",\n    \"sellcast\"\n  ],\n  [\n    \"snowflake-o\",\n    \"far\",\n    \"snowflake\"\n  ],\n  [\n    \"superpowers\",\n    \"fab\",\n    null\n  ],\n  [\n    \"wpexplorer\",\n    \"fab\",\n    null\n  ],\n  [\n    \"spotify\",\n    \"fab\",\n    null\n  ]\n]"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/shims.yml",
    "content": "area-chart:\n  name: chart-area\narrow-circle-o-down:\n  name: arrow-alt-circle-down\n  prefix: far\narrow-circle-o-left:\n  name: arrow-alt-circle-left\n  prefix: far\narrow-circle-o-right:\n  name: arrow-alt-circle-right\n  prefix: far\narrow-circle-o-up:\n  name: arrow-alt-circle-up\n  prefix: far\narrows:\n  name: arrows-alt\narrows-alt:\n  name: expand-arrows-alt\narrows-h:\n  name: arrows-alt-h\narrows-v:\n  name: arrows-alt-v\nbar-chart:\n  name: chart-bar\n  prefix: far\nbitbucket-square:\n  name: bitbucket\n  prefix: fab\ncalendar:\n  name: calendar-alt\ncalendar-o:\n  name: calendar\n  prefix: far\ncaret-square-o-down:\n  name: caret-square-down\n  prefix: far\ncaret-square-o-left:\n  name: caret-square-left\n  prefix: far\ncaret-square-o-right:\n  name: caret-square-right\n  prefix: far\ncaret-square-o-up:\n  name: caret-square-up\n  prefix: far\ncc:\n  name: closed-captioning\n  prefix: far\nchain-broken:\n  name: unlink\ncircle-o-notch:\n  name: circle-notch\ncircle-thin:\n  name: circle\n  prefix: far\nclipboard:\n  prefix: far\nclone:\n  prefix: far\ncloud-download:\n  name: cloud-download-alt\ncloud-upload:\n  name: cloud-upload-alt\ncode-fork:\n  name: code-branch\ncomment-alt:\n  name: comment-dots\n  prefix: far\ncommenting:\n  name: comment-dots\ncompass:\n  prefix: far\ncopyright:\n  prefix: far\ncreative-commons:\n  prefix: fab\ncredit-card:\n  prefix: far\ncredit-card-alt:\n  name: credit-card\ncutlery:\n  name: utensils\ndiamond:\n  name: gem\n  prefix: far\neercast:\n  name: sellcast\n  prefix: fab\neur:\n  name: euro-sign\nexchange:\n  name: exchange-alt\nexternal-link:\n  name: external-link-alt\nexternal-link-square:\n  name: external-link-square-alt\neye:\n  prefix: far\neye-dropper:\n  name: eye-dropper\n  prefix: far\neye-slash:\n  prefix: far\neyedropper:\n  name: eye-dropper\nfacebook:\n  name: facebook-f\n  prefix: fab\nfacebook-official:\n  name: facebook\n  prefix: fab\nfile-text:\n  name: file-alt\nfiles-o:\n  name: copy\n  prefix: far\nfloppy-o:\n  name: save\n  prefix: far\ngbp:\n  name: pound-sign\nglass:\n  name: glass-martini\ngoogle-plus:\n  name: google-plus-g\n  prefix: fab\ngoogle-plus-circle:\n  name: google-plus\n  prefix: fab\ngoogle-plus-official:\n  name: google-plus\n  prefix: fab\nhand-o-down:\n  name: hand-point-down\n  prefix: far\nhand-o-left:\n  name: hand-point-left\n  prefix: far\nhand-o-right:\n  name: hand-point-right\n  prefix: far\nhand-o-up:\n  name: hand-point-up\n  prefix: far\nheader:\n  name: heading\nid-badge:\n  prefix: far\nils:\n  name: shekel-sign\ninr:\n  name: rupee-sign\nintersex:\n  name: transgender\njpy:\n  name: yen-sign\nkrw:\n  name: won-sign\nlevel-down:\n  name: level-down-alt\nlevel-up:\n  name: level-up-alt\nlife-ring:\n  prefix: far\nline-chart:\n  name: chart-line\nlinkedin:\n  name: linkedin-in\n  prefix: fab\nlinkedin-square:\n  name: linkedin\n  prefix: fab\nlist-alt:\n  prefix: far\nlong-arrow-down:\n  name: long-arrow-alt-down\nlong-arrow-left:\n  name: long-arrow-alt-left\nlong-arrow-right:\n  name: long-arrow-alt-right\nlong-arrow-up:\n  name: long-arrow-alt-up\nmap-marker:\n  name: map-marker-alt\nmeanpath:\n  name: font-awesome\n  prefix: fab\nmobile:\n  name: mobile-alt\nmoney:\n  name: money-bill-alt\n  prefix: far\nobject-group:\n  prefix: far\nobject-ungroup:\n  prefix: far\npaste:\n  prefix: far\npencil:\n  name: pencil-alt\npencil-square:\n  name: pen-square\npencil-square-o:\n  name: edit\n  prefix: far\npicture:\n  name: image\npie-chart:\n  name: chart-pie\nrefresh:\n  name: sync\nregistered:\n  prefix: far\nrepeat:\n  name: redo\nrub:\n  name: ruble-sign\nscissors:\n  name: cut\nshield:\n  name: shield-alt\nsign-in:\n  name: sign-in-alt\nsign-out:\n  name: sign-out-alt\nsliders:\n  name: sliders-h\nsort-alpha-asc:\n  name: sort-alpha-down\nsort-alpha-desc:\n  name: sort-alpha-down-alt\nsort-amount-asc:\n  name: sort-amount-down\nsort-amount-desc:\n  name: sort-amount-down-alt\nsort-asc:\n  name: sort-up\nsort-desc:\n  name: sort-down\nsort-numeric-asc:\n  name: sort-numeric-down\nsort-numeric-desc:\n  name: sort-numeric-down-alt\nspoon:\n  name: utensil-spoon\nstar-half-empty:\n  name: star-half\nstar-half-full:\n  name: star-half\nsupport:\n  name: life-ring\n  prefix: far\ntablet:\n  name: tablet-alt\ntachometer:\n  name: tachometer-alt\ntelevision:\n  name: tv\nthumb-tack:\n  name: thumbtack\nthumbs-o-down:\n  name: thumbs-down\n  prefix: far\nthumbs-o-up:\n  name: thumbs-up\n  prefix: far\nticket:\n  name: ticket-alt\ntrash:\n  name: trash-alt\ntrash-o:\n  name: trash-alt\n  prefix: far\ntry:\n  name: lira-sign\nusd:\n  name: dollar-sign\nvideo-camera:\n  name: video\nvimeo:\n  name: vimeo-v\n  prefix: fab\nvolume-control-phone:\n  name: phone-volume\nwheelchair-alt:\n  name: accessible-icon\n  prefix: fab\nwindow-maximize:\n  prefix: far\nwindow-restore:\n  prefix: far\nyoutube-play:\n  name: youtube\n  prefix: fab\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/metadata/sponsors.yml",
    "content": "accusoft:\n  icons:\n    - accusoft\n  label: Accusoft\n  url: 'https://www.accusoft.com'\nadministrator-technology:\n  icons:\n    - stream\n  label: Administrator Technology\n  url: 'https://administrator.de'\nadversal:\n  icons:\n    - adversal\n  label: Adversal\n  url: 'https://www.adversal.com'\naffiliatetheme:\n  icons:\n    - affiliatetheme\n  label: affiliatetheme\n  url: 'https://affiliatetheme.io/en'\nalgolia:\n  icons:\n    - algolia\n  label: Algolia\n  url: 'http://www.algolia.com'\namazon-web-services:\n  icons:\n    - aws\n  label: Amazon Web Services\n  url: 'https://aws.amazon.com'\namilia:\n  icons:\n    - amilia\n  label: Amilia\n  url: 'http://www.amilia.com'\nangry-creative:\n  icons:\n    - angrycreative\n  label: Angry Creative\n  url: 'https://angrycreative.se'\napp-signal:\n  icons:\n    - stroopwafel\n  label: AppSignal\n  url: 'https://appsignal.com'\napper-systems-ab:\n  icons:\n    - apper\n  label: Apper Systems AB\n  url: 'http://www.apper.com'\n'asymmetrik,ltd':\n  icons:\n    - asymmetrik\n  label: 'Asymmetrik, Ltd.'\n  url: 'http://asymmetrik.com'\nausmed-education:\n  icons:\n    - user-nurse\n  label: Ausmed Education\n  url: 'https://www.ausmed.com.au'\navianex:\n  icons:\n    - avianex\n  label: avianex\n  url: 'https://www.avianex.de'\nbi-mobject:\n  icons:\n    - bimobject\n  label: BIMobject\n  url: 'http://bimobject.com'\nbity:\n  icons:\n    - bity\n  label: Bity\n  url: 'http://bity.com'\nblackpulp-designs:\n  icons:\n    - pray\n  label: Blackpulp Designs\n  url: 'https://www.blackpulp.com'\nblissbook:\n  icons:\n    - pen-fancy\n  label: Blissbook\n  url: 'https://blissbook.com'\nbüromöbel-experte-gmb-h &co-kg:\n  icons:\n    - buromobelexperte\n  label: Büromöbel-Experte GmbH & Co. KG.\n  url: 'https://www.bueromoebel-experte.de'\nc-panel:\n  icons:\n    - cpanel\n  label: cPanel\n  url: 'http://cpanel.com'\ncentercode:\n  icons:\n    - centercode\n  label: Centercode\n  url: 'https://www.centercode.com'\ncibltd:\n  icons:\n    - drum-steelpan\n  label: Comprehensive Insurance Brokers Limited\n  url: 'http://www.cibltd.com'\nclear-blue-technologies:\n  icons:\n    - solar-panel\n  label: Clear Blue Technologies\n  url: 'http://www.clearbluetechnologies.com'\ncloudscale-ch:\n  icons:\n    - cloudscale\n  label: cloudscale.ch\n  url: 'https://www.cloudscale.ch'\ncloudsmith:\n  icons:\n    - cloudsmith\n  label: Cloudsmith\n  url: 'https://cloudsmith.io'\ncloudversify:\n  icons:\n    - cloudversify\n  label: cloudversify\n  url: 'https://www.cloudversify.com'\ncuttlefish:\n  icons:\n    - cuttlefish\n  label: Cuttlefish\n  url: 'http://wearecuttlefish.com'\ncymedica:\n  icons:\n    - wave-square\n  label: CyMedica\n  url: 'https://www.cymedicaortho.com'\ndarren-wiebe:\n  icons:\n    - church\n  label: Darren Wiebe\ndeploy-dog:\n  icons:\n    - deploydog\n  label: deploy.dog\n  url: 'http://deploy.dog'\ndeskpro:\n  icons:\n    - deskpro\n  label: Deskpro\n  url: 'http://www.deskpro.com'\ndiscourse:\n  icons:\n    - discourse\n  label: Discourse\n  url: 'https://discourse.org'\ndoc-hub:\n  icons:\n    - dochub\n  label: DocHub\n  url: 'https://dochub.com'\ndraft2-digital:\n  icons:\n    - draft2digital\n  label: Draft2Digital\n  url: 'http://draft2digital.com'\ndyalog-apl:\n  icons:\n    - dyalog\n  label: Dyalog APL\n  url: 'http://www.dyalog.com'\nfirstdraft:\n  icons:\n    - firstdraft\n  label: firstdraft\n  url: 'http://www.firstdraft.com'\nfleetplan:\n  icons:\n    - helicopter\n  label: FLEETPLAN\n  url: 'https://www.fleetplan.net'\ngetaroom:\n  icons:\n    - archway\n    - dumbbell\n    - hotel\n    - map-marked\n    - map-marked-alt\n    - monument\n    - spa\n    - swimmer\n    - swimming-pool\n  label: getaroom\n  url: 'https://www.getaroom.com'\ngit-kraken:\n  icons:\n    - gitkraken\n  label: GitKraken\n  url: 'https://www.gitkraken.com'\ngofore:\n  icons:\n    - gofore\n  label: Gofore\n  url: 'http://gofore.com'\n'gripfire,inc':\n  icons:\n    - gripfire\n  label: 'Gripfire, Inc.'\n  url: 'http://gripfire.io'\nharvard-medical-school:\n  icons:\n    - allergies\n    - ambulance\n    - band-aid\n    - briefcase-medical\n    - burn\n    - capsules\n    - diagnoses\n    - dna\n    - file-medical\n    - file-medical-alt\n    - first-aid\n    - heart\n    - heartbeat\n    - hospital\n    - hospital-alt\n    - hospital-symbol\n    - id-card-alt\n    - notes-medical\n    - pills\n    - plus\n    - prescription-bottle\n    - prescription-bottle-alt\n    - procedures\n    - smoking\n    - stethoscope\n    - syringe\n    - tablets\n    - thermometer\n    - user-md\n    - vial\n    - vials\n    - weight\n    - x-ray\n  label: Harvard Medical School\n  url: 'https://hms.harvard.edu'\nhips:\n  icons:\n    - hips\n  label: Hips\n  url: 'https://hips.com'\nhire-a-helper:\n  icons:\n    - archive\n    - box-open\n    - couch\n    - dolly\n    - people-carry\n    - route\n    - sign\n    - suitcase\n    - tape\n    - truck-loading\n    - truck-moving\n    - wine-glass\n  label: HireAHelper\n  url: 'https://www.hireahelper.com'\nhornbill:\n  icons:\n    - hornbill\n  label: Hornbill\n  url: 'https://www.hornbill.com'\nhotjar:\n  icons:\n    - hotjar\n  label: Hotjar\n  url: 'https://www.hotjar.com'\nhub-spot:\n  icons:\n    - hubspot\n  label: HubSpot\n  url: 'http://www.HubSpot.com'\nin-site-systems:\n  icons:\n    - toolbox\n  label: InSite Systems\n  url: 'https://www.insitesystems.com'\ninspira-bvba:\n  icons:\n    - chess-knight\n  label: Inspira bvba\n  url: 'https://www.inspira.be'\njoe-emison:\n  icons:\n    - blender-phone\n  label: Joe Emison\njoget:\n  icons:\n    - joget\n  label: Joget\n  url: 'http://www.joget.org'\njon-galloway:\n  icons:\n    - crow\n  label: Jon Galloway\nkevin-barone:\n  icons:\n    - file-contract\n  label: Kevin Barone\nkey-cdn:\n  icons:\n    - keycdn\n  label: KeyCDN\n  url: 'https://www.keycdn.com'\nkorvue:\n  icons:\n    - korvue\n  label: Korvue\n  url: 'https://korvue.com'\nmax-elman:\n  icons:\n    - frog\n  label: Max Elman\nmed-apps:\n  icons:\n    - medapps\n  label: MedApps\n  url: 'http://medapps.com.au'\nmedapps:\n  icons:\n    - book-medical\n    - clinic-medical\n    - comment-medical\n    - crutch\n    - laptop-medical\n    - pager\n  label: MedApps\n  url: 'https://medapps.com.au'\nmegaport:\n  icons:\n    - megaport\n  label: Megaport\n  url: 'https://www.megaport.com'\nmix:\n  icons:\n    - mix\n  label: Mix\n  url: 'http://mix.com'\nmizuni:\n  icons:\n    - mizuni\n  label: Mizuni\n  url: 'http://www.mizuni.com'\nmrt:\n  icons:\n    - medrt\n  label: MRT\n  url: 'https://medrt.co.jp'\nmylogin-info:\n  icons:\n    - user-shield\n  label: mylogin.info\n  url: 'https://www.mylogin.info'\nnapster:\n  icons:\n    - napster\n  label: Napster\n  url: 'http://www.napster.com'\nnimblr:\n  icons:\n    - nimblr\n  label: Nimblr\n  url: 'https://nimblr.ai'\nnompse:\n  icons:\n    - chalkboard\n    - chalkboard-teacher\n  label: Nomp.se\n  url: 'https://nomp.se'\nns8:\n  icons:\n    - ns8\n  label: NS8\n  url: 'https://www.ns8.com'\nnutritionix:\n  icons:\n    - nutritionix\n  label: Nutritionix\n  url: 'http://www.nutritionix.com'\npage4-corporation:\n  icons:\n    - page4\n  label: page4 Corporation\n  url: 'https://en.page4.com'\npal-fed:\n  icons:\n    - palfed\n  label: PalFed\n  url: 'https://www.palfed.com'\npcsg:\n  icons:\n    - horse-head\n  label: PCSG\n  url: 'https://www.pcsg.de'\nphabricator:\n  icons:\n    - phabricator\n  label: Phabricator\n  url: 'http://phacility.com'\npromo-wizard:\n  icons:\n    - hat-wizard\n  label: Promo Wizard\n  url: 'https://promowizard.co.uk'\npulse-eight:\n  icons:\n    - volume-mute\n  label: Pulse-Eight\n  url: 'https://pulse-eight.com'\npurely-interactive:\n  icons:\n    - kiwi-bird\n  label: Purely Interactive\n  url: 'https://www.purelyinteractive.ca'\npushed:\n  icons:\n    - pushed\n  label: Pushed\n  url: 'https://pushed.co'\nquin-scape:\n  icons:\n    - quinscape\n  label: QuinScape\n  url: 'https://www.quinscape.de'\nreacteurope:\n  icons:\n    - reacteurope\n  label: ReactEurope\n  url: 'https://www.react-europe.org'\nreadme-io:\n  icons:\n    - readme\n  label: Readme.io\n  url: 'http://readme.io'\nred-river:\n  icons:\n    - red-river\n  label: red river\n  url: 'https://river.red'\nreplyd:\n  icons:\n    - replyd\n  label: replyd\nresolving:\n  icons:\n    - resolving\n  label: Resolving\n  url: 'https://resolving.com'\nrev-io:\n  icons:\n    - rev\n  label: Rev.io\n  url: 'https://rev.io'\nrock-rms:\n  icons:\n    - rockrms\n  label: Rock RMS\n  url: 'http://rockrms.com'\nrocket-chat:\n  icons:\n    - comment\n    - comment-alt\n    - comment-dots\n    - comment-slash\n    - comments\n    - frown\n    - meh\n    - phone\n    - phone-slash\n    - poo\n    - quote-left\n    - quote-right\n    - rocketchat\n    - smile\n    - video\n    - video-slash\n  label: Rocket.Chat\n  url: 'https://rocket.chat'\nrodney-oliver:\n  icons:\n    - folder-minus\n    - folder-plus\n  label: Rodney Oliver\nschlix:\n  icons:\n    - schlix\n  label: SCHLIX\n  url: 'http://schlix.com'\nsearch-eng-in:\n  icons:\n    - searchengin\n  label: SearchEng.in\n  url: 'http://searcheng.in'\nservice-stack:\n  icons:\n    - servicestack\n  label: ServiceStack\n  url: 'https://servicestack.net'\nshawn-storie:\n  icons:\n    - teeth\n    - teeth-open\n  label: Shawn Storie\nshopware:\n  icons:\n    - shopware\n  label: Shopware\n  url: 'https://shopware.de'\nshp:\n  icons:\n    - school\n  label: SHP\n  url: 'http://shp.com'\nsilicon-barn-inc:\n  icons:\n    - project-diagram\n  label: Silicon Barn Inc\n  url: 'https://siliconbarn.com'\nsistrix:\n  icons:\n    - sistrix\n  label: SISTRIX\n  url: 'https://www.sistrix.de'\nsmup:\n  icons:\n    - shoe-prints\n  label: Smup\n  url: 'https://www.atomsoftware.com.au'\nspeakap:\n  icons:\n    - speakap\n  label: Speakap\n  url: 'https://speakap.com'\nstay-linked:\n  icons:\n    - box\n    - boxes\n    - clipboard-check\n    - clipboard-list\n    - dolly\n    - dolly-flatbed\n    - pallet\n    - shipping-fast\n    - truck\n    - warehouse\n  label: StayLinked\n  url: 'https://www.staylinked.com'\nsticker-mule:\n  icons:\n    - sticker-mule\n  label: Sticker Mule\n  url: 'https://stickermule.com'\nstudio-vinari:\n  icons:\n    - studiovinari\n  label: Studio Vinari\n  url: 'https://studiovinari.com'\nsupple:\n  icons:\n    - ad\n    - bullhorn\n    - bullseye\n    - comment-dollar\n    - comments-dollar\n    - envelope-open-text\n    - funnel-dollar\n    - mail-bulk\n    - poll\n    - poll-h\n    - search-dollar\n    - search-location\n    - supple\n  label: Supple\n  url: 'https://supple.com.au'\nthe-red-yeti:\n  icons:\n    - the-red-yeti\n  label: The Red Yeti\n  url: 'http://theredyeti.com'\nthe-us-sunnah-foundation:\n  icons:\n    - dollar-sign\n    - donate\n    - dove\n    - gift\n    - globe\n    - hand-holding-heart\n    - hand-holding-usd\n    - hands-helping\n    - handshake\n    - heart\n    - leaf\n    - parachute-box\n    - piggy-bank\n    - ribbon\n    - seedling\n  label: The us-Sunnah Foundation\n  url: 'https://www.ussunnah.org'\nthemeco:\n  icons:\n    - themeco\n  label: Themeco\n  url: 'https://theme.co'\nthink-peaks:\n  icons:\n    - think-peaks\n  label: Think Peaks\n  url: 'https://thinkpeaks.com/'\ntypo3:\n  icons:\n    - typo3\n  label: Typo3\n  url: 'https://typo3.org'\nuniregistry:\n  icons:\n    - uniregistry\n  label: Uniregistry\n  url: 'https://uniregistry.com'\nus-sunnah-foundation:\n  icons:\n    - ussunnah\n  label: us-Sunnah Foundation\n  url: 'https://www.ussunnah.org'\nvaadin:\n  icons:\n    - vaadin\n  label: Vaadin\n  url: 'http://vaadin.com'\nvia:\n  icons:\n    - car-crash\n    - draw-polygon\n    - house-damage\n    - layer-group\n    - skull-crossbones\n    - user-injured\n  label: VIA Traffic Software Solutions\n  url: 'https://www.via.software'\nvictor-costan:\n  icons:\n    - otter\n  label: Staphany Park and Victor Costan\nvnv:\n  icons:\n    - vnv\n  label: VNV\n  url: 'https://www.vnv.ch'\nweedable:\n  icons:\n    - bong\n    - cannabis\n    - hippo\n    - joint\n    - mortar-pestle\n    - prescription\n  label: Weedable\n  url: 'https://www.weedable.com'\nwhmcs:\n  icons:\n    - whmcs\n  label: WHMCS\n  url: 'https://www.whmcs.com'\nworkrails:\n  icons:\n    - briefcase\n  label: WorkRails\n  url: 'https://www.workrails.com'\nwpressr:\n  icons:\n    - wpressr\n  label: wpressr\n  url: 'https://wpressr.com'\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_animated.scss",
    "content": "// Animated Icons\n// --------------------------\n\n.#{$fa-css-prefix}-spin {\n  animation: fa-spin 2s infinite linear;\n}\n\n.#{$fa-css-prefix}-pulse {\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n\n  100% {\n    transform: rotate(360deg);\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_bordered-pulled.scss",
    "content": "// Bordered & Pulled\n// -------------------------\n\n.#{$fa-css-prefix}-border {\n  border: solid .08em $fa-border-color;\n  border-radius: .1em;\n  padding: .2em .25em .15em;\n}\n\n.#{$fa-css-prefix}-pull-left { float: left; }\n.#{$fa-css-prefix}-pull-right { float: right; }\n\n.#{$fa-css-prefix},\n.fas,\n.far,\n.fal,\n.fab {\n  &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }\n  &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_core.scss",
    "content": "// Base Class Definition\n// -------------------------\n\n.#{$fa-css-prefix},\n.fas,\n.far,\n.fal,\n.fad,\n.fab {\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-font-smoothing: antialiased;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  text-rendering: auto;\n  line-height: 1;\n}\n\n%fa-icon {\n  @include fa-icon;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_fixed-width.scss",
    "content": "// Fixed Width Icons\n// -------------------------\n.#{$fa-css-prefix}-fw {\n  text-align: center;\n  width: $fa-fw-width;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_icons.scss",
    "content": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n\n.#{$fa-css-prefix}-500px:before { content: fa-content($fa-var-500px); }\n.#{$fa-css-prefix}-accessible-icon:before { content: fa-content($fa-var-accessible-icon); }\n.#{$fa-css-prefix}-accusoft:before { content: fa-content($fa-var-accusoft); }\n.#{$fa-css-prefix}-acquisitions-incorporated:before { content: fa-content($fa-var-acquisitions-incorporated); }\n.#{$fa-css-prefix}-ad:before { content: fa-content($fa-var-ad); }\n.#{$fa-css-prefix}-address-book:before { content: fa-content($fa-var-address-book); }\n.#{$fa-css-prefix}-address-card:before { content: fa-content($fa-var-address-card); }\n.#{$fa-css-prefix}-adjust:before { content: fa-content($fa-var-adjust); }\n.#{$fa-css-prefix}-adn:before { content: fa-content($fa-var-adn); }\n.#{$fa-css-prefix}-adobe:before { content: fa-content($fa-var-adobe); }\n.#{$fa-css-prefix}-adversal:before { content: fa-content($fa-var-adversal); }\n.#{$fa-css-prefix}-affiliatetheme:before { content: fa-content($fa-var-affiliatetheme); }\n.#{$fa-css-prefix}-air-freshener:before { content: fa-content($fa-var-air-freshener); }\n.#{$fa-css-prefix}-airbnb:before { content: fa-content($fa-var-airbnb); }\n.#{$fa-css-prefix}-algolia:before { content: fa-content($fa-var-algolia); }\n.#{$fa-css-prefix}-align-center:before { content: fa-content($fa-var-align-center); }\n.#{$fa-css-prefix}-align-justify:before { content: fa-content($fa-var-align-justify); }\n.#{$fa-css-prefix}-align-left:before { content: fa-content($fa-var-align-left); }\n.#{$fa-css-prefix}-align-right:before { content: fa-content($fa-var-align-right); }\n.#{$fa-css-prefix}-alipay:before { content: fa-content($fa-var-alipay); }\n.#{$fa-css-prefix}-allergies:before { content: fa-content($fa-var-allergies); }\n.#{$fa-css-prefix}-amazon:before { content: fa-content($fa-var-amazon); }\n.#{$fa-css-prefix}-amazon-pay:before { content: fa-content($fa-var-amazon-pay); }\n.#{$fa-css-prefix}-ambulance:before { content: fa-content($fa-var-ambulance); }\n.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }\n.#{$fa-css-prefix}-amilia:before { content: fa-content($fa-var-amilia); }\n.#{$fa-css-prefix}-anchor:before { content: fa-content($fa-var-anchor); }\n.#{$fa-css-prefix}-android:before { content: fa-content($fa-var-android); }\n.#{$fa-css-prefix}-angellist:before { content: fa-content($fa-var-angellist); }\n.#{$fa-css-prefix}-angle-double-down:before { content: fa-content($fa-var-angle-double-down); }\n.#{$fa-css-prefix}-angle-double-left:before { content: fa-content($fa-var-angle-double-left); }\n.#{$fa-css-prefix}-angle-double-right:before { content: fa-content($fa-var-angle-double-right); }\n.#{$fa-css-prefix}-angle-double-up:before { content: fa-content($fa-var-angle-double-up); }\n.#{$fa-css-prefix}-angle-down:before { content: fa-content($fa-var-angle-down); }\n.#{$fa-css-prefix}-angle-left:before { content: fa-content($fa-var-angle-left); }\n.#{$fa-css-prefix}-angle-right:before { content: fa-content($fa-var-angle-right); }\n.#{$fa-css-prefix}-angle-up:before { content: fa-content($fa-var-angle-up); }\n.#{$fa-css-prefix}-angry:before { content: fa-content($fa-var-angry); }\n.#{$fa-css-prefix}-angrycreative:before { content: fa-content($fa-var-angrycreative); }\n.#{$fa-css-prefix}-angular:before { content: fa-content($fa-var-angular); }\n.#{$fa-css-prefix}-ankh:before { content: fa-content($fa-var-ankh); }\n.#{$fa-css-prefix}-app-store:before { content: fa-content($fa-var-app-store); }\n.#{$fa-css-prefix}-app-store-ios:before { content: fa-content($fa-var-app-store-ios); }\n.#{$fa-css-prefix}-apper:before { content: fa-content($fa-var-apper); }\n.#{$fa-css-prefix}-apple:before { content: fa-content($fa-var-apple); }\n.#{$fa-css-prefix}-apple-alt:before { content: fa-content($fa-var-apple-alt); }\n.#{$fa-css-prefix}-apple-pay:before { content: fa-content($fa-var-apple-pay); }\n.#{$fa-css-prefix}-archive:before { content: fa-content($fa-var-archive); }\n.#{$fa-css-prefix}-archway:before { content: fa-content($fa-var-archway); }\n.#{$fa-css-prefix}-arrow-alt-circle-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }\n.#{$fa-css-prefix}-arrow-alt-circle-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }\n.#{$fa-css-prefix}-arrow-alt-circle-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }\n.#{$fa-css-prefix}-arrow-alt-circle-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }\n.#{$fa-css-prefix}-arrow-circle-down:before { content: fa-content($fa-var-arrow-circle-down); }\n.#{$fa-css-prefix}-arrow-circle-left:before { content: fa-content($fa-var-arrow-circle-left); }\n.#{$fa-css-prefix}-arrow-circle-right:before { content: fa-content($fa-var-arrow-circle-right); }\n.#{$fa-css-prefix}-arrow-circle-up:before { content: fa-content($fa-var-arrow-circle-up); }\n.#{$fa-css-prefix}-arrow-down:before { content: fa-content($fa-var-arrow-down); }\n.#{$fa-css-prefix}-arrow-left:before { content: fa-content($fa-var-arrow-left); }\n.#{$fa-css-prefix}-arrow-right:before { content: fa-content($fa-var-arrow-right); }\n.#{$fa-css-prefix}-arrow-up:before { content: fa-content($fa-var-arrow-up); }\n.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-arrows-alt); }\n.#{$fa-css-prefix}-arrows-alt-h:before { content: fa-content($fa-var-arrows-alt-h); }\n.#{$fa-css-prefix}-arrows-alt-v:before { content: fa-content($fa-var-arrows-alt-v); }\n.#{$fa-css-prefix}-artstation:before { content: fa-content($fa-var-artstation); }\n.#{$fa-css-prefix}-assistive-listening-systems:before { content: fa-content($fa-var-assistive-listening-systems); }\n.#{$fa-css-prefix}-asterisk:before { content: fa-content($fa-var-asterisk); }\n.#{$fa-css-prefix}-asymmetrik:before { content: fa-content($fa-var-asymmetrik); }\n.#{$fa-css-prefix}-at:before { content: fa-content($fa-var-at); }\n.#{$fa-css-prefix}-atlas:before { content: fa-content($fa-var-atlas); }\n.#{$fa-css-prefix}-atlassian:before { content: fa-content($fa-var-atlassian); }\n.#{$fa-css-prefix}-atom:before { content: fa-content($fa-var-atom); }\n.#{$fa-css-prefix}-audible:before { content: fa-content($fa-var-audible); }\n.#{$fa-css-prefix}-audio-description:before { content: fa-content($fa-var-audio-description); }\n.#{$fa-css-prefix}-autoprefixer:before { content: fa-content($fa-var-autoprefixer); }\n.#{$fa-css-prefix}-avianex:before { content: fa-content($fa-var-avianex); }\n.#{$fa-css-prefix}-aviato:before { content: fa-content($fa-var-aviato); }\n.#{$fa-css-prefix}-award:before { content: fa-content($fa-var-award); }\n.#{$fa-css-prefix}-aws:before { content: fa-content($fa-var-aws); }\n.#{$fa-css-prefix}-baby:before { content: fa-content($fa-var-baby); }\n.#{$fa-css-prefix}-baby-carriage:before { content: fa-content($fa-var-baby-carriage); }\n.#{$fa-css-prefix}-backspace:before { content: fa-content($fa-var-backspace); }\n.#{$fa-css-prefix}-backward:before { content: fa-content($fa-var-backward); }\n.#{$fa-css-prefix}-bacon:before { content: fa-content($fa-var-bacon); }\n.#{$fa-css-prefix}-balance-scale:before { content: fa-content($fa-var-balance-scale); }\n.#{$fa-css-prefix}-balance-scale-left:before { content: fa-content($fa-var-balance-scale-left); }\n.#{$fa-css-prefix}-balance-scale-right:before { content: fa-content($fa-var-balance-scale-right); }\n.#{$fa-css-prefix}-ban:before { content: fa-content($fa-var-ban); }\n.#{$fa-css-prefix}-band-aid:before { content: fa-content($fa-var-band-aid); }\n.#{$fa-css-prefix}-bandcamp:before { content: fa-content($fa-var-bandcamp); }\n.#{$fa-css-prefix}-barcode:before { content: fa-content($fa-var-barcode); }\n.#{$fa-css-prefix}-bars:before { content: fa-content($fa-var-bars); }\n.#{$fa-css-prefix}-baseball-ball:before { content: fa-content($fa-var-baseball-ball); }\n.#{$fa-css-prefix}-basketball-ball:before { content: fa-content($fa-var-basketball-ball); }\n.#{$fa-css-prefix}-bath:before { content: fa-content($fa-var-bath); }\n.#{$fa-css-prefix}-battery-empty:before { content: fa-content($fa-var-battery-empty); }\n.#{$fa-css-prefix}-battery-full:before { content: fa-content($fa-var-battery-full); }\n.#{$fa-css-prefix}-battery-half:before { content: fa-content($fa-var-battery-half); }\n.#{$fa-css-prefix}-battery-quarter:before { content: fa-content($fa-var-battery-quarter); }\n.#{$fa-css-prefix}-battery-three-quarters:before { content: fa-content($fa-var-battery-three-quarters); }\n.#{$fa-css-prefix}-battle-net:before { content: fa-content($fa-var-battle-net); }\n.#{$fa-css-prefix}-bed:before { content: fa-content($fa-var-bed); }\n.#{$fa-css-prefix}-beer:before { content: fa-content($fa-var-beer); }\n.#{$fa-css-prefix}-behance:before { content: fa-content($fa-var-behance); }\n.#{$fa-css-prefix}-behance-square:before { content: fa-content($fa-var-behance-square); }\n.#{$fa-css-prefix}-bell:before { content: fa-content($fa-var-bell); }\n.#{$fa-css-prefix}-bell-slash:before { content: fa-content($fa-var-bell-slash); }\n.#{$fa-css-prefix}-bezier-curve:before { content: fa-content($fa-var-bezier-curve); }\n.#{$fa-css-prefix}-bible:before { content: fa-content($fa-var-bible); }\n.#{$fa-css-prefix}-bicycle:before { content: fa-content($fa-var-bicycle); }\n.#{$fa-css-prefix}-biking:before { content: fa-content($fa-var-biking); }\n.#{$fa-css-prefix}-bimobject:before { content: fa-content($fa-var-bimobject); }\n.#{$fa-css-prefix}-binoculars:before { content: fa-content($fa-var-binoculars); }\n.#{$fa-css-prefix}-biohazard:before { content: fa-content($fa-var-biohazard); }\n.#{$fa-css-prefix}-birthday-cake:before { content: fa-content($fa-var-birthday-cake); }\n.#{$fa-css-prefix}-bitbucket:before { content: fa-content($fa-var-bitbucket); }\n.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-bitcoin); }\n.#{$fa-css-prefix}-bity:before { content: fa-content($fa-var-bity); }\n.#{$fa-css-prefix}-black-tie:before { content: fa-content($fa-var-black-tie); }\n.#{$fa-css-prefix}-blackberry:before { content: fa-content($fa-var-blackberry); }\n.#{$fa-css-prefix}-blender:before { content: fa-content($fa-var-blender); }\n.#{$fa-css-prefix}-blender-phone:before { content: fa-content($fa-var-blender-phone); }\n.#{$fa-css-prefix}-blind:before { content: fa-content($fa-var-blind); }\n.#{$fa-css-prefix}-blog:before { content: fa-content($fa-var-blog); }\n.#{$fa-css-prefix}-blogger:before { content: fa-content($fa-var-blogger); }\n.#{$fa-css-prefix}-blogger-b:before { content: fa-content($fa-var-blogger-b); }\n.#{$fa-css-prefix}-bluetooth:before { content: fa-content($fa-var-bluetooth); }\n.#{$fa-css-prefix}-bluetooth-b:before { content: fa-content($fa-var-bluetooth-b); }\n.#{$fa-css-prefix}-bold:before { content: fa-content($fa-var-bold); }\n.#{$fa-css-prefix}-bolt:before { content: fa-content($fa-var-bolt); }\n.#{$fa-css-prefix}-bomb:before { content: fa-content($fa-var-bomb); }\n.#{$fa-css-prefix}-bone:before { content: fa-content($fa-var-bone); }\n.#{$fa-css-prefix}-bong:before { content: fa-content($fa-var-bong); }\n.#{$fa-css-prefix}-book:before { content: fa-content($fa-var-book); }\n.#{$fa-css-prefix}-book-dead:before { content: fa-content($fa-var-book-dead); }\n.#{$fa-css-prefix}-book-medical:before { content: fa-content($fa-var-book-medical); }\n.#{$fa-css-prefix}-book-open:before { content: fa-content($fa-var-book-open); }\n.#{$fa-css-prefix}-book-reader:before { content: fa-content($fa-var-book-reader); }\n.#{$fa-css-prefix}-bookmark:before { content: fa-content($fa-var-bookmark); }\n.#{$fa-css-prefix}-bootstrap:before { content: fa-content($fa-var-bootstrap); }\n.#{$fa-css-prefix}-border-all:before { content: fa-content($fa-var-border-all); }\n.#{$fa-css-prefix}-border-none:before { content: fa-content($fa-var-border-none); }\n.#{$fa-css-prefix}-border-style:before { content: fa-content($fa-var-border-style); }\n.#{$fa-css-prefix}-bowling-ball:before { content: fa-content($fa-var-bowling-ball); }\n.#{$fa-css-prefix}-box:before { content: fa-content($fa-var-box); }\n.#{$fa-css-prefix}-box-open:before { content: fa-content($fa-var-box-open); }\n.#{$fa-css-prefix}-boxes:before { content: fa-content($fa-var-boxes); }\n.#{$fa-css-prefix}-braille:before { content: fa-content($fa-var-braille); }\n.#{$fa-css-prefix}-brain:before { content: fa-content($fa-var-brain); }\n.#{$fa-css-prefix}-bread-slice:before { content: fa-content($fa-var-bread-slice); }\n.#{$fa-css-prefix}-briefcase:before { content: fa-content($fa-var-briefcase); }\n.#{$fa-css-prefix}-briefcase-medical:before { content: fa-content($fa-var-briefcase-medical); }\n.#{$fa-css-prefix}-broadcast-tower:before { content: fa-content($fa-var-broadcast-tower); }\n.#{$fa-css-prefix}-broom:before { content: fa-content($fa-var-broom); }\n.#{$fa-css-prefix}-brush:before { content: fa-content($fa-var-brush); }\n.#{$fa-css-prefix}-btc:before { content: fa-content($fa-var-btc); }\n.#{$fa-css-prefix}-buffer:before { content: fa-content($fa-var-buffer); }\n.#{$fa-css-prefix}-bug:before { content: fa-content($fa-var-bug); }\n.#{$fa-css-prefix}-building:before { content: fa-content($fa-var-building); }\n.#{$fa-css-prefix}-bullhorn:before { content: fa-content($fa-var-bullhorn); }\n.#{$fa-css-prefix}-bullseye:before { content: fa-content($fa-var-bullseye); }\n.#{$fa-css-prefix}-burn:before { content: fa-content($fa-var-burn); }\n.#{$fa-css-prefix}-buromobelexperte:before { content: fa-content($fa-var-buromobelexperte); }\n.#{$fa-css-prefix}-bus:before { content: fa-content($fa-var-bus); }\n.#{$fa-css-prefix}-bus-alt:before { content: fa-content($fa-var-bus-alt); }\n.#{$fa-css-prefix}-business-time:before { content: fa-content($fa-var-business-time); }\n.#{$fa-css-prefix}-buysellads:before { content: fa-content($fa-var-buysellads); }\n.#{$fa-css-prefix}-calculator:before { content: fa-content($fa-var-calculator); }\n.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar); }\n.#{$fa-css-prefix}-calendar-alt:before { content: fa-content($fa-var-calendar-alt); }\n.#{$fa-css-prefix}-calendar-check:before { content: fa-content($fa-var-calendar-check); }\n.#{$fa-css-prefix}-calendar-day:before { content: fa-content($fa-var-calendar-day); }\n.#{$fa-css-prefix}-calendar-minus:before { content: fa-content($fa-var-calendar-minus); }\n.#{$fa-css-prefix}-calendar-plus:before { content: fa-content($fa-var-calendar-plus); }\n.#{$fa-css-prefix}-calendar-times:before { content: fa-content($fa-var-calendar-times); }\n.#{$fa-css-prefix}-calendar-week:before { content: fa-content($fa-var-calendar-week); }\n.#{$fa-css-prefix}-camera:before { content: fa-content($fa-var-camera); }\n.#{$fa-css-prefix}-camera-retro:before { content: fa-content($fa-var-camera-retro); }\n.#{$fa-css-prefix}-campground:before { content: fa-content($fa-var-campground); }\n.#{$fa-css-prefix}-canadian-maple-leaf:before { content: fa-content($fa-var-canadian-maple-leaf); }\n.#{$fa-css-prefix}-candy-cane:before { content: fa-content($fa-var-candy-cane); }\n.#{$fa-css-prefix}-cannabis:before { content: fa-content($fa-var-cannabis); }\n.#{$fa-css-prefix}-capsules:before { content: fa-content($fa-var-capsules); }\n.#{$fa-css-prefix}-car:before { content: fa-content($fa-var-car); }\n.#{$fa-css-prefix}-car-alt:before { content: fa-content($fa-var-car-alt); }\n.#{$fa-css-prefix}-car-battery:before { content: fa-content($fa-var-car-battery); }\n.#{$fa-css-prefix}-car-crash:before { content: fa-content($fa-var-car-crash); }\n.#{$fa-css-prefix}-car-side:before { content: fa-content($fa-var-car-side); }\n.#{$fa-css-prefix}-caret-down:before { content: fa-content($fa-var-caret-down); }\n.#{$fa-css-prefix}-caret-left:before { content: fa-content($fa-var-caret-left); }\n.#{$fa-css-prefix}-caret-right:before { content: fa-content($fa-var-caret-right); }\n.#{$fa-css-prefix}-caret-square-down:before { content: fa-content($fa-var-caret-square-down); }\n.#{$fa-css-prefix}-caret-square-left:before { content: fa-content($fa-var-caret-square-left); }\n.#{$fa-css-prefix}-caret-square-right:before { content: fa-content($fa-var-caret-square-right); }\n.#{$fa-css-prefix}-caret-square-up:before { content: fa-content($fa-var-caret-square-up); }\n.#{$fa-css-prefix}-caret-up:before { content: fa-content($fa-var-caret-up); }\n.#{$fa-css-prefix}-carrot:before { content: fa-content($fa-var-carrot); }\n.#{$fa-css-prefix}-cart-arrow-down:before { content: fa-content($fa-var-cart-arrow-down); }\n.#{$fa-css-prefix}-cart-plus:before { content: fa-content($fa-var-cart-plus); }\n.#{$fa-css-prefix}-cash-register:before { content: fa-content($fa-var-cash-register); }\n.#{$fa-css-prefix}-cat:before { content: fa-content($fa-var-cat); }\n.#{$fa-css-prefix}-cc-amazon-pay:before { content: fa-content($fa-var-cc-amazon-pay); }\n.#{$fa-css-prefix}-cc-amex:before { content: fa-content($fa-var-cc-amex); }\n.#{$fa-css-prefix}-cc-apple-pay:before { content: fa-content($fa-var-cc-apple-pay); }\n.#{$fa-css-prefix}-cc-diners-club:before { content: fa-content($fa-var-cc-diners-club); }\n.#{$fa-css-prefix}-cc-discover:before { content: fa-content($fa-var-cc-discover); }\n.#{$fa-css-prefix}-cc-jcb:before { content: fa-content($fa-var-cc-jcb); }\n.#{$fa-css-prefix}-cc-mastercard:before { content: fa-content($fa-var-cc-mastercard); }\n.#{$fa-css-prefix}-cc-paypal:before { content: fa-content($fa-var-cc-paypal); }\n.#{$fa-css-prefix}-cc-stripe:before { content: fa-content($fa-var-cc-stripe); }\n.#{$fa-css-prefix}-cc-visa:before { content: fa-content($fa-var-cc-visa); }\n.#{$fa-css-prefix}-centercode:before { content: fa-content($fa-var-centercode); }\n.#{$fa-css-prefix}-centos:before { content: fa-content($fa-var-centos); }\n.#{$fa-css-prefix}-certificate:before { content: fa-content($fa-var-certificate); }\n.#{$fa-css-prefix}-chair:before { content: fa-content($fa-var-chair); }\n.#{$fa-css-prefix}-chalkboard:before { content: fa-content($fa-var-chalkboard); }\n.#{$fa-css-prefix}-chalkboard-teacher:before { content: fa-content($fa-var-chalkboard-teacher); }\n.#{$fa-css-prefix}-charging-station:before { content: fa-content($fa-var-charging-station); }\n.#{$fa-css-prefix}-chart-area:before { content: fa-content($fa-var-chart-area); }\n.#{$fa-css-prefix}-chart-bar:before { content: fa-content($fa-var-chart-bar); }\n.#{$fa-css-prefix}-chart-line:before { content: fa-content($fa-var-chart-line); }\n.#{$fa-css-prefix}-chart-pie:before { content: fa-content($fa-var-chart-pie); }\n.#{$fa-css-prefix}-check:before { content: fa-content($fa-var-check); }\n.#{$fa-css-prefix}-check-circle:before { content: fa-content($fa-var-check-circle); }\n.#{$fa-css-prefix}-check-double:before { content: fa-content($fa-var-check-double); }\n.#{$fa-css-prefix}-check-square:before { content: fa-content($fa-var-check-square); }\n.#{$fa-css-prefix}-cheese:before { content: fa-content($fa-var-cheese); }\n.#{$fa-css-prefix}-chess:before { content: fa-content($fa-var-chess); }\n.#{$fa-css-prefix}-chess-bishop:before { content: fa-content($fa-var-chess-bishop); }\n.#{$fa-css-prefix}-chess-board:before { content: fa-content($fa-var-chess-board); }\n.#{$fa-css-prefix}-chess-king:before { content: fa-content($fa-var-chess-king); }\n.#{$fa-css-prefix}-chess-knight:before { content: fa-content($fa-var-chess-knight); }\n.#{$fa-css-prefix}-chess-pawn:before { content: fa-content($fa-var-chess-pawn); }\n.#{$fa-css-prefix}-chess-queen:before { content: fa-content($fa-var-chess-queen); }\n.#{$fa-css-prefix}-chess-rook:before { content: fa-content($fa-var-chess-rook); }\n.#{$fa-css-prefix}-chevron-circle-down:before { content: fa-content($fa-var-chevron-circle-down); }\n.#{$fa-css-prefix}-chevron-circle-left:before { content: fa-content($fa-var-chevron-circle-left); }\n.#{$fa-css-prefix}-chevron-circle-right:before { content: fa-content($fa-var-chevron-circle-right); }\n.#{$fa-css-prefix}-chevron-circle-up:before { content: fa-content($fa-var-chevron-circle-up); }\n.#{$fa-css-prefix}-chevron-down:before { content: fa-content($fa-var-chevron-down); }\n.#{$fa-css-prefix}-chevron-left:before { content: fa-content($fa-var-chevron-left); }\n.#{$fa-css-prefix}-chevron-right:before { content: fa-content($fa-var-chevron-right); }\n.#{$fa-css-prefix}-chevron-up:before { content: fa-content($fa-var-chevron-up); }\n.#{$fa-css-prefix}-child:before { content: fa-content($fa-var-child); }\n.#{$fa-css-prefix}-chrome:before { content: fa-content($fa-var-chrome); }\n.#{$fa-css-prefix}-chromecast:before { content: fa-content($fa-var-chromecast); }\n.#{$fa-css-prefix}-church:before { content: fa-content($fa-var-church); }\n.#{$fa-css-prefix}-circle:before { content: fa-content($fa-var-circle); }\n.#{$fa-css-prefix}-circle-notch:before { content: fa-content($fa-var-circle-notch); }\n.#{$fa-css-prefix}-city:before { content: fa-content($fa-var-city); }\n.#{$fa-css-prefix}-clinic-medical:before { content: fa-content($fa-var-clinic-medical); }\n.#{$fa-css-prefix}-clipboard:before { content: fa-content($fa-var-clipboard); }\n.#{$fa-css-prefix}-clipboard-check:before { content: fa-content($fa-var-clipboard-check); }\n.#{$fa-css-prefix}-clipboard-list:before { content: fa-content($fa-var-clipboard-list); }\n.#{$fa-css-prefix}-clock:before { content: fa-content($fa-var-clock); }\n.#{$fa-css-prefix}-clone:before { content: fa-content($fa-var-clone); }\n.#{$fa-css-prefix}-closed-captioning:before { content: fa-content($fa-var-closed-captioning); }\n.#{$fa-css-prefix}-cloud:before { content: fa-content($fa-var-cloud); }\n.#{$fa-css-prefix}-cloud-download-alt:before { content: fa-content($fa-var-cloud-download-alt); }\n.#{$fa-css-prefix}-cloud-meatball:before { content: fa-content($fa-var-cloud-meatball); }\n.#{$fa-css-prefix}-cloud-moon:before { content: fa-content($fa-var-cloud-moon); }\n.#{$fa-css-prefix}-cloud-moon-rain:before { content: fa-content($fa-var-cloud-moon-rain); }\n.#{$fa-css-prefix}-cloud-rain:before { content: fa-content($fa-var-cloud-rain); }\n.#{$fa-css-prefix}-cloud-showers-heavy:before { content: fa-content($fa-var-cloud-showers-heavy); }\n.#{$fa-css-prefix}-cloud-sun:before { content: fa-content($fa-var-cloud-sun); }\n.#{$fa-css-prefix}-cloud-sun-rain:before { content: fa-content($fa-var-cloud-sun-rain); }\n.#{$fa-css-prefix}-cloud-upload-alt:before { content: fa-content($fa-var-cloud-upload-alt); }\n.#{$fa-css-prefix}-cloudscale:before { content: fa-content($fa-var-cloudscale); }\n.#{$fa-css-prefix}-cloudsmith:before { content: fa-content($fa-var-cloudsmith); }\n.#{$fa-css-prefix}-cloudversify:before { content: fa-content($fa-var-cloudversify); }\n.#{$fa-css-prefix}-cocktail:before { content: fa-content($fa-var-cocktail); }\n.#{$fa-css-prefix}-code:before { content: fa-content($fa-var-code); }\n.#{$fa-css-prefix}-code-branch:before { content: fa-content($fa-var-code-branch); }\n.#{$fa-css-prefix}-codepen:before { content: fa-content($fa-var-codepen); }\n.#{$fa-css-prefix}-codiepie:before { content: fa-content($fa-var-codiepie); }\n.#{$fa-css-prefix}-coffee:before { content: fa-content($fa-var-coffee); }\n.#{$fa-css-prefix}-cog:before { content: fa-content($fa-var-cog); }\n.#{$fa-css-prefix}-cogs:before { content: fa-content($fa-var-cogs); }\n.#{$fa-css-prefix}-coins:before { content: fa-content($fa-var-coins); }\n.#{$fa-css-prefix}-columns:before { content: fa-content($fa-var-columns); }\n.#{$fa-css-prefix}-comment:before { content: fa-content($fa-var-comment); }\n.#{$fa-css-prefix}-comment-alt:before { content: fa-content($fa-var-comment-alt); }\n.#{$fa-css-prefix}-comment-dollar:before { content: fa-content($fa-var-comment-dollar); }\n.#{$fa-css-prefix}-comment-dots:before { content: fa-content($fa-var-comment-dots); }\n.#{$fa-css-prefix}-comment-medical:before { content: fa-content($fa-var-comment-medical); }\n.#{$fa-css-prefix}-comment-slash:before { content: fa-content($fa-var-comment-slash); }\n.#{$fa-css-prefix}-comments:before { content: fa-content($fa-var-comments); }\n.#{$fa-css-prefix}-comments-dollar:before { content: fa-content($fa-var-comments-dollar); }\n.#{$fa-css-prefix}-compact-disc:before { content: fa-content($fa-var-compact-disc); }\n.#{$fa-css-prefix}-compass:before { content: fa-content($fa-var-compass); }\n.#{$fa-css-prefix}-compress:before { content: fa-content($fa-var-compress); }\n.#{$fa-css-prefix}-compress-arrows-alt:before { content: fa-content($fa-var-compress-arrows-alt); }\n.#{$fa-css-prefix}-concierge-bell:before { content: fa-content($fa-var-concierge-bell); }\n.#{$fa-css-prefix}-confluence:before { content: fa-content($fa-var-confluence); }\n.#{$fa-css-prefix}-connectdevelop:before { content: fa-content($fa-var-connectdevelop); }\n.#{$fa-css-prefix}-contao:before { content: fa-content($fa-var-contao); }\n.#{$fa-css-prefix}-cookie:before { content: fa-content($fa-var-cookie); }\n.#{$fa-css-prefix}-cookie-bite:before { content: fa-content($fa-var-cookie-bite); }\n.#{$fa-css-prefix}-copy:before { content: fa-content($fa-var-copy); }\n.#{$fa-css-prefix}-copyright:before { content: fa-content($fa-var-copyright); }\n.#{$fa-css-prefix}-cotton-bureau:before { content: fa-content($fa-var-cotton-bureau); }\n.#{$fa-css-prefix}-couch:before { content: fa-content($fa-var-couch); }\n.#{$fa-css-prefix}-cpanel:before { content: fa-content($fa-var-cpanel); }\n.#{$fa-css-prefix}-creative-commons:before { content: fa-content($fa-var-creative-commons); }\n.#{$fa-css-prefix}-creative-commons-by:before { content: fa-content($fa-var-creative-commons-by); }\n.#{$fa-css-prefix}-creative-commons-nc:before { content: fa-content($fa-var-creative-commons-nc); }\n.#{$fa-css-prefix}-creative-commons-nc-eu:before { content: fa-content($fa-var-creative-commons-nc-eu); }\n.#{$fa-css-prefix}-creative-commons-nc-jp:before { content: fa-content($fa-var-creative-commons-nc-jp); }\n.#{$fa-css-prefix}-creative-commons-nd:before { content: fa-content($fa-var-creative-commons-nd); }\n.#{$fa-css-prefix}-creative-commons-pd:before { content: fa-content($fa-var-creative-commons-pd); }\n.#{$fa-css-prefix}-creative-commons-pd-alt:before { content: fa-content($fa-var-creative-commons-pd-alt); }\n.#{$fa-css-prefix}-creative-commons-remix:before { content: fa-content($fa-var-creative-commons-remix); }\n.#{$fa-css-prefix}-creative-commons-sa:before { content: fa-content($fa-var-creative-commons-sa); }\n.#{$fa-css-prefix}-creative-commons-sampling:before { content: fa-content($fa-var-creative-commons-sampling); }\n.#{$fa-css-prefix}-creative-commons-sampling-plus:before { content: fa-content($fa-var-creative-commons-sampling-plus); }\n.#{$fa-css-prefix}-creative-commons-share:before { content: fa-content($fa-var-creative-commons-share); }\n.#{$fa-css-prefix}-creative-commons-zero:before { content: fa-content($fa-var-creative-commons-zero); }\n.#{$fa-css-prefix}-credit-card:before { content: fa-content($fa-var-credit-card); }\n.#{$fa-css-prefix}-critical-role:before { content: fa-content($fa-var-critical-role); }\n.#{$fa-css-prefix}-crop:before { content: fa-content($fa-var-crop); }\n.#{$fa-css-prefix}-crop-alt:before { content: fa-content($fa-var-crop-alt); }\n.#{$fa-css-prefix}-cross:before { content: fa-content($fa-var-cross); }\n.#{$fa-css-prefix}-crosshairs:before { content: fa-content($fa-var-crosshairs); }\n.#{$fa-css-prefix}-crow:before { content: fa-content($fa-var-crow); }\n.#{$fa-css-prefix}-crown:before { content: fa-content($fa-var-crown); }\n.#{$fa-css-prefix}-crutch:before { content: fa-content($fa-var-crutch); }\n.#{$fa-css-prefix}-css3:before { content: fa-content($fa-var-css3); }\n.#{$fa-css-prefix}-css3-alt:before { content: fa-content($fa-var-css3-alt); }\n.#{$fa-css-prefix}-cube:before { content: fa-content($fa-var-cube); }\n.#{$fa-css-prefix}-cubes:before { content: fa-content($fa-var-cubes); }\n.#{$fa-css-prefix}-cut:before { content: fa-content($fa-var-cut); }\n.#{$fa-css-prefix}-cuttlefish:before { content: fa-content($fa-var-cuttlefish); }\n.#{$fa-css-prefix}-d-and-d:before { content: fa-content($fa-var-d-and-d); }\n.#{$fa-css-prefix}-d-and-d-beyond:before { content: fa-content($fa-var-d-and-d-beyond); }\n.#{$fa-css-prefix}-dashcube:before { content: fa-content($fa-var-dashcube); }\n.#{$fa-css-prefix}-database:before { content: fa-content($fa-var-database); }\n.#{$fa-css-prefix}-deaf:before { content: fa-content($fa-var-deaf); }\n.#{$fa-css-prefix}-delicious:before { content: fa-content($fa-var-delicious); }\n.#{$fa-css-prefix}-democrat:before { content: fa-content($fa-var-democrat); }\n.#{$fa-css-prefix}-deploydog:before { content: fa-content($fa-var-deploydog); }\n.#{$fa-css-prefix}-deskpro:before { content: fa-content($fa-var-deskpro); }\n.#{$fa-css-prefix}-desktop:before { content: fa-content($fa-var-desktop); }\n.#{$fa-css-prefix}-dev:before { content: fa-content($fa-var-dev); }\n.#{$fa-css-prefix}-deviantart:before { content: fa-content($fa-var-deviantart); }\n.#{$fa-css-prefix}-dharmachakra:before { content: fa-content($fa-var-dharmachakra); }\n.#{$fa-css-prefix}-dhl:before { content: fa-content($fa-var-dhl); }\n.#{$fa-css-prefix}-diagnoses:before { content: fa-content($fa-var-diagnoses); }\n.#{$fa-css-prefix}-diaspora:before { content: fa-content($fa-var-diaspora); }\n.#{$fa-css-prefix}-dice:before { content: fa-content($fa-var-dice); }\n.#{$fa-css-prefix}-dice-d20:before { content: fa-content($fa-var-dice-d20); }\n.#{$fa-css-prefix}-dice-d6:before { content: fa-content($fa-var-dice-d6); }\n.#{$fa-css-prefix}-dice-five:before { content: fa-content($fa-var-dice-five); }\n.#{$fa-css-prefix}-dice-four:before { content: fa-content($fa-var-dice-four); }\n.#{$fa-css-prefix}-dice-one:before { content: fa-content($fa-var-dice-one); }\n.#{$fa-css-prefix}-dice-six:before { content: fa-content($fa-var-dice-six); }\n.#{$fa-css-prefix}-dice-three:before { content: fa-content($fa-var-dice-three); }\n.#{$fa-css-prefix}-dice-two:before { content: fa-content($fa-var-dice-two); }\n.#{$fa-css-prefix}-digg:before { content: fa-content($fa-var-digg); }\n.#{$fa-css-prefix}-digital-ocean:before { content: fa-content($fa-var-digital-ocean); }\n.#{$fa-css-prefix}-digital-tachograph:before { content: fa-content($fa-var-digital-tachograph); }\n.#{$fa-css-prefix}-directions:before { content: fa-content($fa-var-directions); }\n.#{$fa-css-prefix}-discord:before { content: fa-content($fa-var-discord); }\n.#{$fa-css-prefix}-discourse:before { content: fa-content($fa-var-discourse); }\n.#{$fa-css-prefix}-divide:before { content: fa-content($fa-var-divide); }\n.#{$fa-css-prefix}-dizzy:before { content: fa-content($fa-var-dizzy); }\n.#{$fa-css-prefix}-dna:before { content: fa-content($fa-var-dna); }\n.#{$fa-css-prefix}-dochub:before { content: fa-content($fa-var-dochub); }\n.#{$fa-css-prefix}-docker:before { content: fa-content($fa-var-docker); }\n.#{$fa-css-prefix}-dog:before { content: fa-content($fa-var-dog); }\n.#{$fa-css-prefix}-dollar-sign:before { content: fa-content($fa-var-dollar-sign); }\n.#{$fa-css-prefix}-dolly:before { content: fa-content($fa-var-dolly); }\n.#{$fa-css-prefix}-dolly-flatbed:before { content: fa-content($fa-var-dolly-flatbed); }\n.#{$fa-css-prefix}-donate:before { content: fa-content($fa-var-donate); }\n.#{$fa-css-prefix}-door-closed:before { content: fa-content($fa-var-door-closed); }\n.#{$fa-css-prefix}-door-open:before { content: fa-content($fa-var-door-open); }\n.#{$fa-css-prefix}-dot-circle:before { content: fa-content($fa-var-dot-circle); }\n.#{$fa-css-prefix}-dove:before { content: fa-content($fa-var-dove); }\n.#{$fa-css-prefix}-download:before { content: fa-content($fa-var-download); }\n.#{$fa-css-prefix}-draft2digital:before { content: fa-content($fa-var-draft2digital); }\n.#{$fa-css-prefix}-drafting-compass:before { content: fa-content($fa-var-drafting-compass); }\n.#{$fa-css-prefix}-dragon:before { content: fa-content($fa-var-dragon); }\n.#{$fa-css-prefix}-draw-polygon:before { content: fa-content($fa-var-draw-polygon); }\n.#{$fa-css-prefix}-dribbble:before { content: fa-content($fa-var-dribbble); }\n.#{$fa-css-prefix}-dribbble-square:before { content: fa-content($fa-var-dribbble-square); }\n.#{$fa-css-prefix}-dropbox:before { content: fa-content($fa-var-dropbox); }\n.#{$fa-css-prefix}-drum:before { content: fa-content($fa-var-drum); }\n.#{$fa-css-prefix}-drum-steelpan:before { content: fa-content($fa-var-drum-steelpan); }\n.#{$fa-css-prefix}-drumstick-bite:before { content: fa-content($fa-var-drumstick-bite); }\n.#{$fa-css-prefix}-drupal:before { content: fa-content($fa-var-drupal); }\n.#{$fa-css-prefix}-dumbbell:before { content: fa-content($fa-var-dumbbell); }\n.#{$fa-css-prefix}-dumpster:before { content: fa-content($fa-var-dumpster); }\n.#{$fa-css-prefix}-dumpster-fire:before { content: fa-content($fa-var-dumpster-fire); }\n.#{$fa-css-prefix}-dungeon:before { content: fa-content($fa-var-dungeon); }\n.#{$fa-css-prefix}-dyalog:before { content: fa-content($fa-var-dyalog); }\n.#{$fa-css-prefix}-earlybirds:before { content: fa-content($fa-var-earlybirds); }\n.#{$fa-css-prefix}-ebay:before { content: fa-content($fa-var-ebay); }\n.#{$fa-css-prefix}-edge:before { content: fa-content($fa-var-edge); }\n.#{$fa-css-prefix}-edit:before { content: fa-content($fa-var-edit); }\n.#{$fa-css-prefix}-egg:before { content: fa-content($fa-var-egg); }\n.#{$fa-css-prefix}-eject:before { content: fa-content($fa-var-eject); }\n.#{$fa-css-prefix}-elementor:before { content: fa-content($fa-var-elementor); }\n.#{$fa-css-prefix}-ellipsis-h:before { content: fa-content($fa-var-ellipsis-h); }\n.#{$fa-css-prefix}-ellipsis-v:before { content: fa-content($fa-var-ellipsis-v); }\n.#{$fa-css-prefix}-ello:before { content: fa-content($fa-var-ello); }\n.#{$fa-css-prefix}-ember:before { content: fa-content($fa-var-ember); }\n.#{$fa-css-prefix}-empire:before { content: fa-content($fa-var-empire); }\n.#{$fa-css-prefix}-envelope:before { content: fa-content($fa-var-envelope); }\n.#{$fa-css-prefix}-envelope-open:before { content: fa-content($fa-var-envelope-open); }\n.#{$fa-css-prefix}-envelope-open-text:before { content: fa-content($fa-var-envelope-open-text); }\n.#{$fa-css-prefix}-envelope-square:before { content: fa-content($fa-var-envelope-square); }\n.#{$fa-css-prefix}-envira:before { content: fa-content($fa-var-envira); }\n.#{$fa-css-prefix}-equals:before { content: fa-content($fa-var-equals); }\n.#{$fa-css-prefix}-eraser:before { content: fa-content($fa-var-eraser); }\n.#{$fa-css-prefix}-erlang:before { content: fa-content($fa-var-erlang); }\n.#{$fa-css-prefix}-ethereum:before { content: fa-content($fa-var-ethereum); }\n.#{$fa-css-prefix}-ethernet:before { content: fa-content($fa-var-ethernet); }\n.#{$fa-css-prefix}-etsy:before { content: fa-content($fa-var-etsy); }\n.#{$fa-css-prefix}-euro-sign:before { content: fa-content($fa-var-euro-sign); }\n.#{$fa-css-prefix}-evernote:before { content: fa-content($fa-var-evernote); }\n.#{$fa-css-prefix}-exchange-alt:before { content: fa-content($fa-var-exchange-alt); }\n.#{$fa-css-prefix}-exclamation:before { content: fa-content($fa-var-exclamation); }\n.#{$fa-css-prefix}-exclamation-circle:before { content: fa-content($fa-var-exclamation-circle); }\n.#{$fa-css-prefix}-exclamation-triangle:before { content: fa-content($fa-var-exclamation-triangle); }\n.#{$fa-css-prefix}-expand:before { content: fa-content($fa-var-expand); }\n.#{$fa-css-prefix}-expand-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }\n.#{$fa-css-prefix}-expeditedssl:before { content: fa-content($fa-var-expeditedssl); }\n.#{$fa-css-prefix}-external-link-alt:before { content: fa-content($fa-var-external-link-alt); }\n.#{$fa-css-prefix}-external-link-square-alt:before { content: fa-content($fa-var-external-link-square-alt); }\n.#{$fa-css-prefix}-eye:before { content: fa-content($fa-var-eye); }\n.#{$fa-css-prefix}-eye-dropper:before { content: fa-content($fa-var-eye-dropper); }\n.#{$fa-css-prefix}-eye-slash:before { content: fa-content($fa-var-eye-slash); }\n.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook); }\n.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }\n.#{$fa-css-prefix}-facebook-messenger:before { content: fa-content($fa-var-facebook-messenger); }\n.#{$fa-css-prefix}-facebook-square:before { content: fa-content($fa-var-facebook-square); }\n.#{$fa-css-prefix}-fan:before { content: fa-content($fa-var-fan); }\n.#{$fa-css-prefix}-fantasy-flight-games:before { content: fa-content($fa-var-fantasy-flight-games); }\n.#{$fa-css-prefix}-fast-backward:before { content: fa-content($fa-var-fast-backward); }\n.#{$fa-css-prefix}-fast-forward:before { content: fa-content($fa-var-fast-forward); }\n.#{$fa-css-prefix}-fax:before { content: fa-content($fa-var-fax); }\n.#{$fa-css-prefix}-feather:before { content: fa-content($fa-var-feather); }\n.#{$fa-css-prefix}-feather-alt:before { content: fa-content($fa-var-feather-alt); }\n.#{$fa-css-prefix}-fedex:before { content: fa-content($fa-var-fedex); }\n.#{$fa-css-prefix}-fedora:before { content: fa-content($fa-var-fedora); }\n.#{$fa-css-prefix}-female:before { content: fa-content($fa-var-female); }\n.#{$fa-css-prefix}-fighter-jet:before { content: fa-content($fa-var-fighter-jet); }\n.#{$fa-css-prefix}-figma:before { content: fa-content($fa-var-figma); }\n.#{$fa-css-prefix}-file:before { content: fa-content($fa-var-file); }\n.#{$fa-css-prefix}-file-alt:before { content: fa-content($fa-var-file-alt); }\n.#{$fa-css-prefix}-file-archive:before { content: fa-content($fa-var-file-archive); }\n.#{$fa-css-prefix}-file-audio:before { content: fa-content($fa-var-file-audio); }\n.#{$fa-css-prefix}-file-code:before { content: fa-content($fa-var-file-code); }\n.#{$fa-css-prefix}-file-contract:before { content: fa-content($fa-var-file-contract); }\n.#{$fa-css-prefix}-file-csv:before { content: fa-content($fa-var-file-csv); }\n.#{$fa-css-prefix}-file-download:before { content: fa-content($fa-var-file-download); }\n.#{$fa-css-prefix}-file-excel:before { content: fa-content($fa-var-file-excel); }\n.#{$fa-css-prefix}-file-export:before { content: fa-content($fa-var-file-export); }\n.#{$fa-css-prefix}-file-image:before { content: fa-content($fa-var-file-image); }\n.#{$fa-css-prefix}-file-import:before { content: fa-content($fa-var-file-import); }\n.#{$fa-css-prefix}-file-invoice:before { content: fa-content($fa-var-file-invoice); }\n.#{$fa-css-prefix}-file-invoice-dollar:before { content: fa-content($fa-var-file-invoice-dollar); }\n.#{$fa-css-prefix}-file-medical:before { content: fa-content($fa-var-file-medical); }\n.#{$fa-css-prefix}-file-medical-alt:before { content: fa-content($fa-var-file-medical-alt); }\n.#{$fa-css-prefix}-file-pdf:before { content: fa-content($fa-var-file-pdf); }\n.#{$fa-css-prefix}-file-powerpoint:before { content: fa-content($fa-var-file-powerpoint); }\n.#{$fa-css-prefix}-file-prescription:before { content: fa-content($fa-var-file-prescription); }\n.#{$fa-css-prefix}-file-signature:before { content: fa-content($fa-var-file-signature); }\n.#{$fa-css-prefix}-file-upload:before { content: fa-content($fa-var-file-upload); }\n.#{$fa-css-prefix}-file-video:before { content: fa-content($fa-var-file-video); }\n.#{$fa-css-prefix}-file-word:before { content: fa-content($fa-var-file-word); }\n.#{$fa-css-prefix}-fill:before { content: fa-content($fa-var-fill); }\n.#{$fa-css-prefix}-fill-drip:before { content: fa-content($fa-var-fill-drip); }\n.#{$fa-css-prefix}-film:before { content: fa-content($fa-var-film); }\n.#{$fa-css-prefix}-filter:before { content: fa-content($fa-var-filter); }\n.#{$fa-css-prefix}-fingerprint:before { content: fa-content($fa-var-fingerprint); }\n.#{$fa-css-prefix}-fire:before { content: fa-content($fa-var-fire); }\n.#{$fa-css-prefix}-fire-alt:before { content: fa-content($fa-var-fire-alt); }\n.#{$fa-css-prefix}-fire-extinguisher:before { content: fa-content($fa-var-fire-extinguisher); }\n.#{$fa-css-prefix}-firefox:before { content: fa-content($fa-var-firefox); }\n.#{$fa-css-prefix}-first-aid:before { content: fa-content($fa-var-first-aid); }\n.#{$fa-css-prefix}-first-order:before { content: fa-content($fa-var-first-order); }\n.#{$fa-css-prefix}-first-order-alt:before { content: fa-content($fa-var-first-order-alt); }\n.#{$fa-css-prefix}-firstdraft:before { content: fa-content($fa-var-firstdraft); }\n.#{$fa-css-prefix}-fish:before { content: fa-content($fa-var-fish); }\n.#{$fa-css-prefix}-fist-raised:before { content: fa-content($fa-var-fist-raised); }\n.#{$fa-css-prefix}-flag:before { content: fa-content($fa-var-flag); }\n.#{$fa-css-prefix}-flag-checkered:before { content: fa-content($fa-var-flag-checkered); }\n.#{$fa-css-prefix}-flag-usa:before { content: fa-content($fa-var-flag-usa); }\n.#{$fa-css-prefix}-flask:before { content: fa-content($fa-var-flask); }\n.#{$fa-css-prefix}-flickr:before { content: fa-content($fa-var-flickr); }\n.#{$fa-css-prefix}-flipboard:before { content: fa-content($fa-var-flipboard); }\n.#{$fa-css-prefix}-flushed:before { content: fa-content($fa-var-flushed); }\n.#{$fa-css-prefix}-fly:before { content: fa-content($fa-var-fly); }\n.#{$fa-css-prefix}-folder:before { content: fa-content($fa-var-folder); }\n.#{$fa-css-prefix}-folder-minus:before { content: fa-content($fa-var-folder-minus); }\n.#{$fa-css-prefix}-folder-open:before { content: fa-content($fa-var-folder-open); }\n.#{$fa-css-prefix}-folder-plus:before { content: fa-content($fa-var-folder-plus); }\n.#{$fa-css-prefix}-font:before { content: fa-content($fa-var-font); }\n.#{$fa-css-prefix}-font-awesome:before { content: fa-content($fa-var-font-awesome); }\n.#{$fa-css-prefix}-font-awesome-alt:before { content: fa-content($fa-var-font-awesome-alt); }\n.#{$fa-css-prefix}-font-awesome-flag:before { content: fa-content($fa-var-font-awesome-flag); }\n.#{$fa-css-prefix}-font-awesome-logo-full:before { content: fa-content($fa-var-font-awesome-logo-full); }\n.#{$fa-css-prefix}-fonticons:before { content: fa-content($fa-var-fonticons); }\n.#{$fa-css-prefix}-fonticons-fi:before { content: fa-content($fa-var-fonticons-fi); }\n.#{$fa-css-prefix}-football-ball:before { content: fa-content($fa-var-football-ball); }\n.#{$fa-css-prefix}-fort-awesome:before { content: fa-content($fa-var-fort-awesome); }\n.#{$fa-css-prefix}-fort-awesome-alt:before { content: fa-content($fa-var-fort-awesome-alt); }\n.#{$fa-css-prefix}-forumbee:before { content: fa-content($fa-var-forumbee); }\n.#{$fa-css-prefix}-forward:before { content: fa-content($fa-var-forward); }\n.#{$fa-css-prefix}-foursquare:before { content: fa-content($fa-var-foursquare); }\n.#{$fa-css-prefix}-free-code-camp:before { content: fa-content($fa-var-free-code-camp); }\n.#{$fa-css-prefix}-freebsd:before { content: fa-content($fa-var-freebsd); }\n.#{$fa-css-prefix}-frog:before { content: fa-content($fa-var-frog); }\n.#{$fa-css-prefix}-frown:before { content: fa-content($fa-var-frown); }\n.#{$fa-css-prefix}-frown-open:before { content: fa-content($fa-var-frown-open); }\n.#{$fa-css-prefix}-fulcrum:before { content: fa-content($fa-var-fulcrum); }\n.#{$fa-css-prefix}-funnel-dollar:before { content: fa-content($fa-var-funnel-dollar); }\n.#{$fa-css-prefix}-futbol:before { content: fa-content($fa-var-futbol); }\n.#{$fa-css-prefix}-galactic-republic:before { content: fa-content($fa-var-galactic-republic); }\n.#{$fa-css-prefix}-galactic-senate:before { content: fa-content($fa-var-galactic-senate); }\n.#{$fa-css-prefix}-gamepad:before { content: fa-content($fa-var-gamepad); }\n.#{$fa-css-prefix}-gas-pump:before { content: fa-content($fa-var-gas-pump); }\n.#{$fa-css-prefix}-gavel:before { content: fa-content($fa-var-gavel); }\n.#{$fa-css-prefix}-gem:before { content: fa-content($fa-var-gem); }\n.#{$fa-css-prefix}-genderless:before { content: fa-content($fa-var-genderless); }\n.#{$fa-css-prefix}-get-pocket:before { content: fa-content($fa-var-get-pocket); }\n.#{$fa-css-prefix}-gg:before { content: fa-content($fa-var-gg); }\n.#{$fa-css-prefix}-gg-circle:before { content: fa-content($fa-var-gg-circle); }\n.#{$fa-css-prefix}-ghost:before { content: fa-content($fa-var-ghost); }\n.#{$fa-css-prefix}-gift:before { content: fa-content($fa-var-gift); }\n.#{$fa-css-prefix}-gifts:before { content: fa-content($fa-var-gifts); }\n.#{$fa-css-prefix}-git:before { content: fa-content($fa-var-git); }\n.#{$fa-css-prefix}-git-alt:before { content: fa-content($fa-var-git-alt); }\n.#{$fa-css-prefix}-git-square:before { content: fa-content($fa-var-git-square); }\n.#{$fa-css-prefix}-github:before { content: fa-content($fa-var-github); }\n.#{$fa-css-prefix}-github-alt:before { content: fa-content($fa-var-github-alt); }\n.#{$fa-css-prefix}-github-square:before { content: fa-content($fa-var-github-square); }\n.#{$fa-css-prefix}-gitkraken:before { content: fa-content($fa-var-gitkraken); }\n.#{$fa-css-prefix}-gitlab:before { content: fa-content($fa-var-gitlab); }\n.#{$fa-css-prefix}-gitter:before { content: fa-content($fa-var-gitter); }\n.#{$fa-css-prefix}-glass-cheers:before { content: fa-content($fa-var-glass-cheers); }\n.#{$fa-css-prefix}-glass-martini:before { content: fa-content($fa-var-glass-martini); }\n.#{$fa-css-prefix}-glass-martini-alt:before { content: fa-content($fa-var-glass-martini-alt); }\n.#{$fa-css-prefix}-glass-whiskey:before { content: fa-content($fa-var-glass-whiskey); }\n.#{$fa-css-prefix}-glasses:before { content: fa-content($fa-var-glasses); }\n.#{$fa-css-prefix}-glide:before { content: fa-content($fa-var-glide); }\n.#{$fa-css-prefix}-glide-g:before { content: fa-content($fa-var-glide-g); }\n.#{$fa-css-prefix}-globe:before { content: fa-content($fa-var-globe); }\n.#{$fa-css-prefix}-globe-africa:before { content: fa-content($fa-var-globe-africa); }\n.#{$fa-css-prefix}-globe-americas:before { content: fa-content($fa-var-globe-americas); }\n.#{$fa-css-prefix}-globe-asia:before { content: fa-content($fa-var-globe-asia); }\n.#{$fa-css-prefix}-globe-europe:before { content: fa-content($fa-var-globe-europe); }\n.#{$fa-css-prefix}-gofore:before { content: fa-content($fa-var-gofore); }\n.#{$fa-css-prefix}-golf-ball:before { content: fa-content($fa-var-golf-ball); }\n.#{$fa-css-prefix}-goodreads:before { content: fa-content($fa-var-goodreads); }\n.#{$fa-css-prefix}-goodreads-g:before { content: fa-content($fa-var-goodreads-g); }\n.#{$fa-css-prefix}-google:before { content: fa-content($fa-var-google); }\n.#{$fa-css-prefix}-google-drive:before { content: fa-content($fa-var-google-drive); }\n.#{$fa-css-prefix}-google-play:before { content: fa-content($fa-var-google-play); }\n.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus); }\n.#{$fa-css-prefix}-google-plus-g:before { content: fa-content($fa-var-google-plus-g); }\n.#{$fa-css-prefix}-google-plus-square:before { content: fa-content($fa-var-google-plus-square); }\n.#{$fa-css-prefix}-google-wallet:before { content: fa-content($fa-var-google-wallet); }\n.#{$fa-css-prefix}-gopuram:before { content: fa-content($fa-var-gopuram); }\n.#{$fa-css-prefix}-graduation-cap:before { content: fa-content($fa-var-graduation-cap); }\n.#{$fa-css-prefix}-gratipay:before { content: fa-content($fa-var-gratipay); }\n.#{$fa-css-prefix}-grav:before { content: fa-content($fa-var-grav); }\n.#{$fa-css-prefix}-greater-than:before { content: fa-content($fa-var-greater-than); }\n.#{$fa-css-prefix}-greater-than-equal:before { content: fa-content($fa-var-greater-than-equal); }\n.#{$fa-css-prefix}-grimace:before { content: fa-content($fa-var-grimace); }\n.#{$fa-css-prefix}-grin:before { content: fa-content($fa-var-grin); }\n.#{$fa-css-prefix}-grin-alt:before { content: fa-content($fa-var-grin-alt); }\n.#{$fa-css-prefix}-grin-beam:before { content: fa-content($fa-var-grin-beam); }\n.#{$fa-css-prefix}-grin-beam-sweat:before { content: fa-content($fa-var-grin-beam-sweat); }\n.#{$fa-css-prefix}-grin-hearts:before { content: fa-content($fa-var-grin-hearts); }\n.#{$fa-css-prefix}-grin-squint:before { content: fa-content($fa-var-grin-squint); }\n.#{$fa-css-prefix}-grin-squint-tears:before { content: fa-content($fa-var-grin-squint-tears); }\n.#{$fa-css-prefix}-grin-stars:before { content: fa-content($fa-var-grin-stars); }\n.#{$fa-css-prefix}-grin-tears:before { content: fa-content($fa-var-grin-tears); }\n.#{$fa-css-prefix}-grin-tongue:before { content: fa-content($fa-var-grin-tongue); }\n.#{$fa-css-prefix}-grin-tongue-squint:before { content: fa-content($fa-var-grin-tongue-squint); }\n.#{$fa-css-prefix}-grin-tongue-wink:before { content: fa-content($fa-var-grin-tongue-wink); }\n.#{$fa-css-prefix}-grin-wink:before { content: fa-content($fa-var-grin-wink); }\n.#{$fa-css-prefix}-grip-horizontal:before { content: fa-content($fa-var-grip-horizontal); }\n.#{$fa-css-prefix}-grip-lines:before { content: fa-content($fa-var-grip-lines); }\n.#{$fa-css-prefix}-grip-lines-vertical:before { content: fa-content($fa-var-grip-lines-vertical); }\n.#{$fa-css-prefix}-grip-vertical:before { content: fa-content($fa-var-grip-vertical); }\n.#{$fa-css-prefix}-gripfire:before { content: fa-content($fa-var-gripfire); }\n.#{$fa-css-prefix}-grunt:before { content: fa-content($fa-var-grunt); }\n.#{$fa-css-prefix}-guitar:before { content: fa-content($fa-var-guitar); }\n.#{$fa-css-prefix}-gulp:before { content: fa-content($fa-var-gulp); }\n.#{$fa-css-prefix}-h-square:before { content: fa-content($fa-var-h-square); }\n.#{$fa-css-prefix}-hacker-news:before { content: fa-content($fa-var-hacker-news); }\n.#{$fa-css-prefix}-hacker-news-square:before { content: fa-content($fa-var-hacker-news-square); }\n.#{$fa-css-prefix}-hackerrank:before { content: fa-content($fa-var-hackerrank); }\n.#{$fa-css-prefix}-hamburger:before { content: fa-content($fa-var-hamburger); }\n.#{$fa-css-prefix}-hammer:before { content: fa-content($fa-var-hammer); }\n.#{$fa-css-prefix}-hamsa:before { content: fa-content($fa-var-hamsa); }\n.#{$fa-css-prefix}-hand-holding:before { content: fa-content($fa-var-hand-holding); }\n.#{$fa-css-prefix}-hand-holding-heart:before { content: fa-content($fa-var-hand-holding-heart); }\n.#{$fa-css-prefix}-hand-holding-usd:before { content: fa-content($fa-var-hand-holding-usd); }\n.#{$fa-css-prefix}-hand-lizard:before { content: fa-content($fa-var-hand-lizard); }\n.#{$fa-css-prefix}-hand-middle-finger:before { content: fa-content($fa-var-hand-middle-finger); }\n.#{$fa-css-prefix}-hand-paper:before { content: fa-content($fa-var-hand-paper); }\n.#{$fa-css-prefix}-hand-peace:before { content: fa-content($fa-var-hand-peace); }\n.#{$fa-css-prefix}-hand-point-down:before { content: fa-content($fa-var-hand-point-down); }\n.#{$fa-css-prefix}-hand-point-left:before { content: fa-content($fa-var-hand-point-left); }\n.#{$fa-css-prefix}-hand-point-right:before { content: fa-content($fa-var-hand-point-right); }\n.#{$fa-css-prefix}-hand-point-up:before { content: fa-content($fa-var-hand-point-up); }\n.#{$fa-css-prefix}-hand-pointer:before { content: fa-content($fa-var-hand-pointer); }\n.#{$fa-css-prefix}-hand-rock:before { content: fa-content($fa-var-hand-rock); }\n.#{$fa-css-prefix}-hand-scissors:before { content: fa-content($fa-var-hand-scissors); }\n.#{$fa-css-prefix}-hand-spock:before { content: fa-content($fa-var-hand-spock); }\n.#{$fa-css-prefix}-hands:before { content: fa-content($fa-var-hands); }\n.#{$fa-css-prefix}-hands-helping:before { content: fa-content($fa-var-hands-helping); }\n.#{$fa-css-prefix}-handshake:before { content: fa-content($fa-var-handshake); }\n.#{$fa-css-prefix}-hanukiah:before { content: fa-content($fa-var-hanukiah); }\n.#{$fa-css-prefix}-hard-hat:before { content: fa-content($fa-var-hard-hat); }\n.#{$fa-css-prefix}-hashtag:before { content: fa-content($fa-var-hashtag); }\n.#{$fa-css-prefix}-hat-wizard:before { content: fa-content($fa-var-hat-wizard); }\n.#{$fa-css-prefix}-haykal:before { content: fa-content($fa-var-haykal); }\n.#{$fa-css-prefix}-hdd:before { content: fa-content($fa-var-hdd); }\n.#{$fa-css-prefix}-heading:before { content: fa-content($fa-var-heading); }\n.#{$fa-css-prefix}-headphones:before { content: fa-content($fa-var-headphones); }\n.#{$fa-css-prefix}-headphones-alt:before { content: fa-content($fa-var-headphones-alt); }\n.#{$fa-css-prefix}-headset:before { content: fa-content($fa-var-headset); }\n.#{$fa-css-prefix}-heart:before { content: fa-content($fa-var-heart); }\n.#{$fa-css-prefix}-heart-broken:before { content: fa-content($fa-var-heart-broken); }\n.#{$fa-css-prefix}-heartbeat:before { content: fa-content($fa-var-heartbeat); }\n.#{$fa-css-prefix}-helicopter:before { content: fa-content($fa-var-helicopter); }\n.#{$fa-css-prefix}-highlighter:before { content: fa-content($fa-var-highlighter); }\n.#{$fa-css-prefix}-hiking:before { content: fa-content($fa-var-hiking); }\n.#{$fa-css-prefix}-hippo:before { content: fa-content($fa-var-hippo); }\n.#{$fa-css-prefix}-hips:before { content: fa-content($fa-var-hips); }\n.#{$fa-css-prefix}-hire-a-helper:before { content: fa-content($fa-var-hire-a-helper); }\n.#{$fa-css-prefix}-history:before { content: fa-content($fa-var-history); }\n.#{$fa-css-prefix}-hockey-puck:before { content: fa-content($fa-var-hockey-puck); }\n.#{$fa-css-prefix}-holly-berry:before { content: fa-content($fa-var-holly-berry); }\n.#{$fa-css-prefix}-home:before { content: fa-content($fa-var-home); }\n.#{$fa-css-prefix}-hooli:before { content: fa-content($fa-var-hooli); }\n.#{$fa-css-prefix}-hornbill:before { content: fa-content($fa-var-hornbill); }\n.#{$fa-css-prefix}-horse:before { content: fa-content($fa-var-horse); }\n.#{$fa-css-prefix}-horse-head:before { content: fa-content($fa-var-horse-head); }\n.#{$fa-css-prefix}-hospital:before { content: fa-content($fa-var-hospital); }\n.#{$fa-css-prefix}-hospital-alt:before { content: fa-content($fa-var-hospital-alt); }\n.#{$fa-css-prefix}-hospital-symbol:before { content: fa-content($fa-var-hospital-symbol); }\n.#{$fa-css-prefix}-hot-tub:before { content: fa-content($fa-var-hot-tub); }\n.#{$fa-css-prefix}-hotdog:before { content: fa-content($fa-var-hotdog); }\n.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-hotel); }\n.#{$fa-css-prefix}-hotjar:before { content: fa-content($fa-var-hotjar); }\n.#{$fa-css-prefix}-hourglass:before { content: fa-content($fa-var-hourglass); }\n.#{$fa-css-prefix}-hourglass-end:before { content: fa-content($fa-var-hourglass-end); }\n.#{$fa-css-prefix}-hourglass-half:before { content: fa-content($fa-var-hourglass-half); }\n.#{$fa-css-prefix}-hourglass-start:before { content: fa-content($fa-var-hourglass-start); }\n.#{$fa-css-prefix}-house-damage:before { content: fa-content($fa-var-house-damage); }\n.#{$fa-css-prefix}-houzz:before { content: fa-content($fa-var-houzz); }\n.#{$fa-css-prefix}-hryvnia:before { content: fa-content($fa-var-hryvnia); }\n.#{$fa-css-prefix}-html5:before { content: fa-content($fa-var-html5); }\n.#{$fa-css-prefix}-hubspot:before { content: fa-content($fa-var-hubspot); }\n.#{$fa-css-prefix}-i-cursor:before { content: fa-content($fa-var-i-cursor); }\n.#{$fa-css-prefix}-ice-cream:before { content: fa-content($fa-var-ice-cream); }\n.#{$fa-css-prefix}-icicles:before { content: fa-content($fa-var-icicles); }\n.#{$fa-css-prefix}-icons:before { content: fa-content($fa-var-icons); }\n.#{$fa-css-prefix}-id-badge:before { content: fa-content($fa-var-id-badge); }\n.#{$fa-css-prefix}-id-card:before { content: fa-content($fa-var-id-card); }\n.#{$fa-css-prefix}-id-card-alt:before { content: fa-content($fa-var-id-card-alt); }\n.#{$fa-css-prefix}-igloo:before { content: fa-content($fa-var-igloo); }\n.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }\n.#{$fa-css-prefix}-images:before { content: fa-content($fa-var-images); }\n.#{$fa-css-prefix}-imdb:before { content: fa-content($fa-var-imdb); }\n.#{$fa-css-prefix}-inbox:before { content: fa-content($fa-var-inbox); }\n.#{$fa-css-prefix}-indent:before { content: fa-content($fa-var-indent); }\n.#{$fa-css-prefix}-industry:before { content: fa-content($fa-var-industry); }\n.#{$fa-css-prefix}-infinity:before { content: fa-content($fa-var-infinity); }\n.#{$fa-css-prefix}-info:before { content: fa-content($fa-var-info); }\n.#{$fa-css-prefix}-info-circle:before { content: fa-content($fa-var-info-circle); }\n.#{$fa-css-prefix}-instagram:before { content: fa-content($fa-var-instagram); }\n.#{$fa-css-prefix}-intercom:before { content: fa-content($fa-var-intercom); }\n.#{$fa-css-prefix}-internet-explorer:before { content: fa-content($fa-var-internet-explorer); }\n.#{$fa-css-prefix}-invision:before { content: fa-content($fa-var-invision); }\n.#{$fa-css-prefix}-ioxhost:before { content: fa-content($fa-var-ioxhost); }\n.#{$fa-css-prefix}-italic:before { content: fa-content($fa-var-italic); }\n.#{$fa-css-prefix}-itch-io:before { content: fa-content($fa-var-itch-io); }\n.#{$fa-css-prefix}-itunes:before { content: fa-content($fa-var-itunes); }\n.#{$fa-css-prefix}-itunes-note:before { content: fa-content($fa-var-itunes-note); }\n.#{$fa-css-prefix}-java:before { content: fa-content($fa-var-java); }\n.#{$fa-css-prefix}-jedi:before { content: fa-content($fa-var-jedi); }\n.#{$fa-css-prefix}-jedi-order:before { content: fa-content($fa-var-jedi-order); }\n.#{$fa-css-prefix}-jenkins:before { content: fa-content($fa-var-jenkins); }\n.#{$fa-css-prefix}-jira:before { content: fa-content($fa-var-jira); }\n.#{$fa-css-prefix}-joget:before { content: fa-content($fa-var-joget); }\n.#{$fa-css-prefix}-joint:before { content: fa-content($fa-var-joint); }\n.#{$fa-css-prefix}-joomla:before { content: fa-content($fa-var-joomla); }\n.#{$fa-css-prefix}-journal-whills:before { content: fa-content($fa-var-journal-whills); }\n.#{$fa-css-prefix}-js:before { content: fa-content($fa-var-js); }\n.#{$fa-css-prefix}-js-square:before { content: fa-content($fa-var-js-square); }\n.#{$fa-css-prefix}-jsfiddle:before { content: fa-content($fa-var-jsfiddle); }\n.#{$fa-css-prefix}-kaaba:before { content: fa-content($fa-var-kaaba); }\n.#{$fa-css-prefix}-kaggle:before { content: fa-content($fa-var-kaggle); }\n.#{$fa-css-prefix}-key:before { content: fa-content($fa-var-key); }\n.#{$fa-css-prefix}-keybase:before { content: fa-content($fa-var-keybase); }\n.#{$fa-css-prefix}-keyboard:before { content: fa-content($fa-var-keyboard); }\n.#{$fa-css-prefix}-keycdn:before { content: fa-content($fa-var-keycdn); }\n.#{$fa-css-prefix}-khanda:before { content: fa-content($fa-var-khanda); }\n.#{$fa-css-prefix}-kickstarter:before { content: fa-content($fa-var-kickstarter); }\n.#{$fa-css-prefix}-kickstarter-k:before { content: fa-content($fa-var-kickstarter-k); }\n.#{$fa-css-prefix}-kiss:before { content: fa-content($fa-var-kiss); }\n.#{$fa-css-prefix}-kiss-beam:before { content: fa-content($fa-var-kiss-beam); }\n.#{$fa-css-prefix}-kiss-wink-heart:before { content: fa-content($fa-var-kiss-wink-heart); }\n.#{$fa-css-prefix}-kiwi-bird:before { content: fa-content($fa-var-kiwi-bird); }\n.#{$fa-css-prefix}-korvue:before { content: fa-content($fa-var-korvue); }\n.#{$fa-css-prefix}-landmark:before { content: fa-content($fa-var-landmark); }\n.#{$fa-css-prefix}-language:before { content: fa-content($fa-var-language); }\n.#{$fa-css-prefix}-laptop:before { content: fa-content($fa-var-laptop); }\n.#{$fa-css-prefix}-laptop-code:before { content: fa-content($fa-var-laptop-code); }\n.#{$fa-css-prefix}-laptop-medical:before { content: fa-content($fa-var-laptop-medical); }\n.#{$fa-css-prefix}-laravel:before { content: fa-content($fa-var-laravel); }\n.#{$fa-css-prefix}-lastfm:before { content: fa-content($fa-var-lastfm); }\n.#{$fa-css-prefix}-lastfm-square:before { content: fa-content($fa-var-lastfm-square); }\n.#{$fa-css-prefix}-laugh:before { content: fa-content($fa-var-laugh); }\n.#{$fa-css-prefix}-laugh-beam:before { content: fa-content($fa-var-laugh-beam); }\n.#{$fa-css-prefix}-laugh-squint:before { content: fa-content($fa-var-laugh-squint); }\n.#{$fa-css-prefix}-laugh-wink:before { content: fa-content($fa-var-laugh-wink); }\n.#{$fa-css-prefix}-layer-group:before { content: fa-content($fa-var-layer-group); }\n.#{$fa-css-prefix}-leaf:before { content: fa-content($fa-var-leaf); }\n.#{$fa-css-prefix}-leanpub:before { content: fa-content($fa-var-leanpub); }\n.#{$fa-css-prefix}-lemon:before { content: fa-content($fa-var-lemon); }\n.#{$fa-css-prefix}-less:before { content: fa-content($fa-var-less); }\n.#{$fa-css-prefix}-less-than:before { content: fa-content($fa-var-less-than); }\n.#{$fa-css-prefix}-less-than-equal:before { content: fa-content($fa-var-less-than-equal); }\n.#{$fa-css-prefix}-level-down-alt:before { content: fa-content($fa-var-level-down-alt); }\n.#{$fa-css-prefix}-level-up-alt:before { content: fa-content($fa-var-level-up-alt); }\n.#{$fa-css-prefix}-life-ring:before { content: fa-content($fa-var-life-ring); }\n.#{$fa-css-prefix}-lightbulb:before { content: fa-content($fa-var-lightbulb); }\n.#{$fa-css-prefix}-line:before { content: fa-content($fa-var-line); }\n.#{$fa-css-prefix}-link:before { content: fa-content($fa-var-link); }\n.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin); }\n.#{$fa-css-prefix}-linkedin-in:before { content: fa-content($fa-var-linkedin-in); }\n.#{$fa-css-prefix}-linode:before { content: fa-content($fa-var-linode); }\n.#{$fa-css-prefix}-linux:before { content: fa-content($fa-var-linux); }\n.#{$fa-css-prefix}-lira-sign:before { content: fa-content($fa-var-lira-sign); }\n.#{$fa-css-prefix}-list:before { content: fa-content($fa-var-list); }\n.#{$fa-css-prefix}-list-alt:before { content: fa-content($fa-var-list-alt); }\n.#{$fa-css-prefix}-list-ol:before { content: fa-content($fa-var-list-ol); }\n.#{$fa-css-prefix}-list-ul:before { content: fa-content($fa-var-list-ul); }\n.#{$fa-css-prefix}-location-arrow:before { content: fa-content($fa-var-location-arrow); }\n.#{$fa-css-prefix}-lock:before { content: fa-content($fa-var-lock); }\n.#{$fa-css-prefix}-lock-open:before { content: fa-content($fa-var-lock-open); }\n.#{$fa-css-prefix}-long-arrow-alt-down:before { content: fa-content($fa-var-long-arrow-alt-down); }\n.#{$fa-css-prefix}-long-arrow-alt-left:before { content: fa-content($fa-var-long-arrow-alt-left); }\n.#{$fa-css-prefix}-long-arrow-alt-right:before { content: fa-content($fa-var-long-arrow-alt-right); }\n.#{$fa-css-prefix}-long-arrow-alt-up:before { content: fa-content($fa-var-long-arrow-alt-up); }\n.#{$fa-css-prefix}-low-vision:before { content: fa-content($fa-var-low-vision); }\n.#{$fa-css-prefix}-luggage-cart:before { content: fa-content($fa-var-luggage-cart); }\n.#{$fa-css-prefix}-lyft:before { content: fa-content($fa-var-lyft); }\n.#{$fa-css-prefix}-magento:before { content: fa-content($fa-var-magento); }\n.#{$fa-css-prefix}-magic:before { content: fa-content($fa-var-magic); }\n.#{$fa-css-prefix}-magnet:before { content: fa-content($fa-var-magnet); }\n.#{$fa-css-prefix}-mail-bulk:before { content: fa-content($fa-var-mail-bulk); }\n.#{$fa-css-prefix}-mailchimp:before { content: fa-content($fa-var-mailchimp); }\n.#{$fa-css-prefix}-male:before { content: fa-content($fa-var-male); }\n.#{$fa-css-prefix}-mandalorian:before { content: fa-content($fa-var-mandalorian); }\n.#{$fa-css-prefix}-map:before { content: fa-content($fa-var-map); }\n.#{$fa-css-prefix}-map-marked:before { content: fa-content($fa-var-map-marked); }\n.#{$fa-css-prefix}-map-marked-alt:before { content: fa-content($fa-var-map-marked-alt); }\n.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker); }\n.#{$fa-css-prefix}-map-marker-alt:before { content: fa-content($fa-var-map-marker-alt); }\n.#{$fa-css-prefix}-map-pin:before { content: fa-content($fa-var-map-pin); }\n.#{$fa-css-prefix}-map-signs:before { content: fa-content($fa-var-map-signs); }\n.#{$fa-css-prefix}-markdown:before { content: fa-content($fa-var-markdown); }\n.#{$fa-css-prefix}-marker:before { content: fa-content($fa-var-marker); }\n.#{$fa-css-prefix}-mars:before { content: fa-content($fa-var-mars); }\n.#{$fa-css-prefix}-mars-double:before { content: fa-content($fa-var-mars-double); }\n.#{$fa-css-prefix}-mars-stroke:before { content: fa-content($fa-var-mars-stroke); }\n.#{$fa-css-prefix}-mars-stroke-h:before { content: fa-content($fa-var-mars-stroke-h); }\n.#{$fa-css-prefix}-mars-stroke-v:before { content: fa-content($fa-var-mars-stroke-v); }\n.#{$fa-css-prefix}-mask:before { content: fa-content($fa-var-mask); }\n.#{$fa-css-prefix}-mastodon:before { content: fa-content($fa-var-mastodon); }\n.#{$fa-css-prefix}-maxcdn:before { content: fa-content($fa-var-maxcdn); }\n.#{$fa-css-prefix}-medal:before { content: fa-content($fa-var-medal); }\n.#{$fa-css-prefix}-medapps:before { content: fa-content($fa-var-medapps); }\n.#{$fa-css-prefix}-medium:before { content: fa-content($fa-var-medium); }\n.#{$fa-css-prefix}-medium-m:before { content: fa-content($fa-var-medium-m); }\n.#{$fa-css-prefix}-medkit:before { content: fa-content($fa-var-medkit); }\n.#{$fa-css-prefix}-medrt:before { content: fa-content($fa-var-medrt); }\n.#{$fa-css-prefix}-meetup:before { content: fa-content($fa-var-meetup); }\n.#{$fa-css-prefix}-megaport:before { content: fa-content($fa-var-megaport); }\n.#{$fa-css-prefix}-meh:before { content: fa-content($fa-var-meh); }\n.#{$fa-css-prefix}-meh-blank:before { content: fa-content($fa-var-meh-blank); }\n.#{$fa-css-prefix}-meh-rolling-eyes:before { content: fa-content($fa-var-meh-rolling-eyes); }\n.#{$fa-css-prefix}-memory:before { content: fa-content($fa-var-memory); }\n.#{$fa-css-prefix}-mendeley:before { content: fa-content($fa-var-mendeley); }\n.#{$fa-css-prefix}-menorah:before { content: fa-content($fa-var-menorah); }\n.#{$fa-css-prefix}-mercury:before { content: fa-content($fa-var-mercury); }\n.#{$fa-css-prefix}-meteor:before { content: fa-content($fa-var-meteor); }\n.#{$fa-css-prefix}-microchip:before { content: fa-content($fa-var-microchip); }\n.#{$fa-css-prefix}-microphone:before { content: fa-content($fa-var-microphone); }\n.#{$fa-css-prefix}-microphone-alt:before { content: fa-content($fa-var-microphone-alt); }\n.#{$fa-css-prefix}-microphone-alt-slash:before { content: fa-content($fa-var-microphone-alt-slash); }\n.#{$fa-css-prefix}-microphone-slash:before { content: fa-content($fa-var-microphone-slash); }\n.#{$fa-css-prefix}-microscope:before { content: fa-content($fa-var-microscope); }\n.#{$fa-css-prefix}-microsoft:before { content: fa-content($fa-var-microsoft); }\n.#{$fa-css-prefix}-minus:before { content: fa-content($fa-var-minus); }\n.#{$fa-css-prefix}-minus-circle:before { content: fa-content($fa-var-minus-circle); }\n.#{$fa-css-prefix}-minus-square:before { content: fa-content($fa-var-minus-square); }\n.#{$fa-css-prefix}-mitten:before { content: fa-content($fa-var-mitten); }\n.#{$fa-css-prefix}-mix:before { content: fa-content($fa-var-mix); }\n.#{$fa-css-prefix}-mixcloud:before { content: fa-content($fa-var-mixcloud); }\n.#{$fa-css-prefix}-mizuni:before { content: fa-content($fa-var-mizuni); }\n.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile); }\n.#{$fa-css-prefix}-mobile-alt:before { content: fa-content($fa-var-mobile-alt); }\n.#{$fa-css-prefix}-modx:before { content: fa-content($fa-var-modx); }\n.#{$fa-css-prefix}-monero:before { content: fa-content($fa-var-monero); }\n.#{$fa-css-prefix}-money-bill:before { content: fa-content($fa-var-money-bill); }\n.#{$fa-css-prefix}-money-bill-alt:before { content: fa-content($fa-var-money-bill-alt); }\n.#{$fa-css-prefix}-money-bill-wave:before { content: fa-content($fa-var-money-bill-wave); }\n.#{$fa-css-prefix}-money-bill-wave-alt:before { content: fa-content($fa-var-money-bill-wave-alt); }\n.#{$fa-css-prefix}-money-check:before { content: fa-content($fa-var-money-check); }\n.#{$fa-css-prefix}-money-check-alt:before { content: fa-content($fa-var-money-check-alt); }\n.#{$fa-css-prefix}-monument:before { content: fa-content($fa-var-monument); }\n.#{$fa-css-prefix}-moon:before { content: fa-content($fa-var-moon); }\n.#{$fa-css-prefix}-mortar-pestle:before { content: fa-content($fa-var-mortar-pestle); }\n.#{$fa-css-prefix}-mosque:before { content: fa-content($fa-var-mosque); }\n.#{$fa-css-prefix}-motorcycle:before { content: fa-content($fa-var-motorcycle); }\n.#{$fa-css-prefix}-mountain:before { content: fa-content($fa-var-mountain); }\n.#{$fa-css-prefix}-mouse-pointer:before { content: fa-content($fa-var-mouse-pointer); }\n.#{$fa-css-prefix}-mug-hot:before { content: fa-content($fa-var-mug-hot); }\n.#{$fa-css-prefix}-music:before { content: fa-content($fa-var-music); }\n.#{$fa-css-prefix}-napster:before { content: fa-content($fa-var-napster); }\n.#{$fa-css-prefix}-neos:before { content: fa-content($fa-var-neos); }\n.#{$fa-css-prefix}-network-wired:before { content: fa-content($fa-var-network-wired); }\n.#{$fa-css-prefix}-neuter:before { content: fa-content($fa-var-neuter); }\n.#{$fa-css-prefix}-newspaper:before { content: fa-content($fa-var-newspaper); }\n.#{$fa-css-prefix}-nimblr:before { content: fa-content($fa-var-nimblr); }\n.#{$fa-css-prefix}-node:before { content: fa-content($fa-var-node); }\n.#{$fa-css-prefix}-node-js:before { content: fa-content($fa-var-node-js); }\n.#{$fa-css-prefix}-not-equal:before { content: fa-content($fa-var-not-equal); }\n.#{$fa-css-prefix}-notes-medical:before { content: fa-content($fa-var-notes-medical); }\n.#{$fa-css-prefix}-npm:before { content: fa-content($fa-var-npm); }\n.#{$fa-css-prefix}-ns8:before { content: fa-content($fa-var-ns8); }\n.#{$fa-css-prefix}-nutritionix:before { content: fa-content($fa-var-nutritionix); }\n.#{$fa-css-prefix}-object-group:before { content: fa-content($fa-var-object-group); }\n.#{$fa-css-prefix}-object-ungroup:before { content: fa-content($fa-var-object-ungroup); }\n.#{$fa-css-prefix}-odnoklassniki:before { content: fa-content($fa-var-odnoklassniki); }\n.#{$fa-css-prefix}-odnoklassniki-square:before { content: fa-content($fa-var-odnoklassniki-square); }\n.#{$fa-css-prefix}-oil-can:before { content: fa-content($fa-var-oil-can); }\n.#{$fa-css-prefix}-old-republic:before { content: fa-content($fa-var-old-republic); }\n.#{$fa-css-prefix}-om:before { content: fa-content($fa-var-om); }\n.#{$fa-css-prefix}-opencart:before { content: fa-content($fa-var-opencart); }\n.#{$fa-css-prefix}-openid:before { content: fa-content($fa-var-openid); }\n.#{$fa-css-prefix}-opera:before { content: fa-content($fa-var-opera); }\n.#{$fa-css-prefix}-optin-monster:before { content: fa-content($fa-var-optin-monster); }\n.#{$fa-css-prefix}-osi:before { content: fa-content($fa-var-osi); }\n.#{$fa-css-prefix}-otter:before { content: fa-content($fa-var-otter); }\n.#{$fa-css-prefix}-outdent:before { content: fa-content($fa-var-outdent); }\n.#{$fa-css-prefix}-page4:before { content: fa-content($fa-var-page4); }\n.#{$fa-css-prefix}-pagelines:before { content: fa-content($fa-var-pagelines); }\n.#{$fa-css-prefix}-pager:before { content: fa-content($fa-var-pager); }\n.#{$fa-css-prefix}-paint-brush:before { content: fa-content($fa-var-paint-brush); }\n.#{$fa-css-prefix}-paint-roller:before { content: fa-content($fa-var-paint-roller); }\n.#{$fa-css-prefix}-palette:before { content: fa-content($fa-var-palette); }\n.#{$fa-css-prefix}-palfed:before { content: fa-content($fa-var-palfed); }\n.#{$fa-css-prefix}-pallet:before { content: fa-content($fa-var-pallet); }\n.#{$fa-css-prefix}-paper-plane:before { content: fa-content($fa-var-paper-plane); }\n.#{$fa-css-prefix}-paperclip:before { content: fa-content($fa-var-paperclip); }\n.#{$fa-css-prefix}-parachute-box:before { content: fa-content($fa-var-parachute-box); }\n.#{$fa-css-prefix}-paragraph:before { content: fa-content($fa-var-paragraph); }\n.#{$fa-css-prefix}-parking:before { content: fa-content($fa-var-parking); }\n.#{$fa-css-prefix}-passport:before { content: fa-content($fa-var-passport); }\n.#{$fa-css-prefix}-pastafarianism:before { content: fa-content($fa-var-pastafarianism); }\n.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-paste); }\n.#{$fa-css-prefix}-patreon:before { content: fa-content($fa-var-patreon); }\n.#{$fa-css-prefix}-pause:before { content: fa-content($fa-var-pause); }\n.#{$fa-css-prefix}-pause-circle:before { content: fa-content($fa-var-pause-circle); }\n.#{$fa-css-prefix}-paw:before { content: fa-content($fa-var-paw); }\n.#{$fa-css-prefix}-paypal:before { content: fa-content($fa-var-paypal); }\n.#{$fa-css-prefix}-peace:before { content: fa-content($fa-var-peace); }\n.#{$fa-css-prefix}-pen:before { content: fa-content($fa-var-pen); }\n.#{$fa-css-prefix}-pen-alt:before { content: fa-content($fa-var-pen-alt); }\n.#{$fa-css-prefix}-pen-fancy:before { content: fa-content($fa-var-pen-fancy); }\n.#{$fa-css-prefix}-pen-nib:before { content: fa-content($fa-var-pen-nib); }\n.#{$fa-css-prefix}-pen-square:before { content: fa-content($fa-var-pen-square); }\n.#{$fa-css-prefix}-pencil-alt:before { content: fa-content($fa-var-pencil-alt); }\n.#{$fa-css-prefix}-pencil-ruler:before { content: fa-content($fa-var-pencil-ruler); }\n.#{$fa-css-prefix}-penny-arcade:before { content: fa-content($fa-var-penny-arcade); }\n.#{$fa-css-prefix}-people-carry:before { content: fa-content($fa-var-people-carry); }\n.#{$fa-css-prefix}-pepper-hot:before { content: fa-content($fa-var-pepper-hot); }\n.#{$fa-css-prefix}-percent:before { content: fa-content($fa-var-percent); }\n.#{$fa-css-prefix}-percentage:before { content: fa-content($fa-var-percentage); }\n.#{$fa-css-prefix}-periscope:before { content: fa-content($fa-var-periscope); }\n.#{$fa-css-prefix}-person-booth:before { content: fa-content($fa-var-person-booth); }\n.#{$fa-css-prefix}-phabricator:before { content: fa-content($fa-var-phabricator); }\n.#{$fa-css-prefix}-phoenix-framework:before { content: fa-content($fa-var-phoenix-framework); }\n.#{$fa-css-prefix}-phoenix-squadron:before { content: fa-content($fa-var-phoenix-squadron); }\n.#{$fa-css-prefix}-phone:before { content: fa-content($fa-var-phone); }\n.#{$fa-css-prefix}-phone-alt:before { content: fa-content($fa-var-phone-alt); }\n.#{$fa-css-prefix}-phone-slash:before { content: fa-content($fa-var-phone-slash); }\n.#{$fa-css-prefix}-phone-square:before { content: fa-content($fa-var-phone-square); }\n.#{$fa-css-prefix}-phone-square-alt:before { content: fa-content($fa-var-phone-square-alt); }\n.#{$fa-css-prefix}-phone-volume:before { content: fa-content($fa-var-phone-volume); }\n.#{$fa-css-prefix}-photo-video:before { content: fa-content($fa-var-photo-video); }\n.#{$fa-css-prefix}-php:before { content: fa-content($fa-var-php); }\n.#{$fa-css-prefix}-pied-piper:before { content: fa-content($fa-var-pied-piper); }\n.#{$fa-css-prefix}-pied-piper-alt:before { content: fa-content($fa-var-pied-piper-alt); }\n.#{$fa-css-prefix}-pied-piper-hat:before { content: fa-content($fa-var-pied-piper-hat); }\n.#{$fa-css-prefix}-pied-piper-pp:before { content: fa-content($fa-var-pied-piper-pp); }\n.#{$fa-css-prefix}-piggy-bank:before { content: fa-content($fa-var-piggy-bank); }\n.#{$fa-css-prefix}-pills:before { content: fa-content($fa-var-pills); }\n.#{$fa-css-prefix}-pinterest:before { content: fa-content($fa-var-pinterest); }\n.#{$fa-css-prefix}-pinterest-p:before { content: fa-content($fa-var-pinterest-p); }\n.#{$fa-css-prefix}-pinterest-square:before { content: fa-content($fa-var-pinterest-square); }\n.#{$fa-css-prefix}-pizza-slice:before { content: fa-content($fa-var-pizza-slice); }\n.#{$fa-css-prefix}-place-of-worship:before { content: fa-content($fa-var-place-of-worship); }\n.#{$fa-css-prefix}-plane:before { content: fa-content($fa-var-plane); }\n.#{$fa-css-prefix}-plane-arrival:before { content: fa-content($fa-var-plane-arrival); }\n.#{$fa-css-prefix}-plane-departure:before { content: fa-content($fa-var-plane-departure); }\n.#{$fa-css-prefix}-play:before { content: fa-content($fa-var-play); }\n.#{$fa-css-prefix}-play-circle:before { content: fa-content($fa-var-play-circle); }\n.#{$fa-css-prefix}-playstation:before { content: fa-content($fa-var-playstation); }\n.#{$fa-css-prefix}-plug:before { content: fa-content($fa-var-plug); }\n.#{$fa-css-prefix}-plus:before { content: fa-content($fa-var-plus); }\n.#{$fa-css-prefix}-plus-circle:before { content: fa-content($fa-var-plus-circle); }\n.#{$fa-css-prefix}-plus-square:before { content: fa-content($fa-var-plus-square); }\n.#{$fa-css-prefix}-podcast:before { content: fa-content($fa-var-podcast); }\n.#{$fa-css-prefix}-poll:before { content: fa-content($fa-var-poll); }\n.#{$fa-css-prefix}-poll-h:before { content: fa-content($fa-var-poll-h); }\n.#{$fa-css-prefix}-poo:before { content: fa-content($fa-var-poo); }\n.#{$fa-css-prefix}-poo-storm:before { content: fa-content($fa-var-poo-storm); }\n.#{$fa-css-prefix}-poop:before { content: fa-content($fa-var-poop); }\n.#{$fa-css-prefix}-portrait:before { content: fa-content($fa-var-portrait); }\n.#{$fa-css-prefix}-pound-sign:before { content: fa-content($fa-var-pound-sign); }\n.#{$fa-css-prefix}-power-off:before { content: fa-content($fa-var-power-off); }\n.#{$fa-css-prefix}-pray:before { content: fa-content($fa-var-pray); }\n.#{$fa-css-prefix}-praying-hands:before { content: fa-content($fa-var-praying-hands); }\n.#{$fa-css-prefix}-prescription:before { content: fa-content($fa-var-prescription); }\n.#{$fa-css-prefix}-prescription-bottle:before { content: fa-content($fa-var-prescription-bottle); }\n.#{$fa-css-prefix}-prescription-bottle-alt:before { content: fa-content($fa-var-prescription-bottle-alt); }\n.#{$fa-css-prefix}-print:before { content: fa-content($fa-var-print); }\n.#{$fa-css-prefix}-procedures:before { content: fa-content($fa-var-procedures); }\n.#{$fa-css-prefix}-product-hunt:before { content: fa-content($fa-var-product-hunt); }\n.#{$fa-css-prefix}-project-diagram:before { content: fa-content($fa-var-project-diagram); }\n.#{$fa-css-prefix}-pushed:before { content: fa-content($fa-var-pushed); }\n.#{$fa-css-prefix}-puzzle-piece:before { content: fa-content($fa-var-puzzle-piece); }\n.#{$fa-css-prefix}-python:before { content: fa-content($fa-var-python); }\n.#{$fa-css-prefix}-qq:before { content: fa-content($fa-var-qq); }\n.#{$fa-css-prefix}-qrcode:before { content: fa-content($fa-var-qrcode); }\n.#{$fa-css-prefix}-question:before { content: fa-content($fa-var-question); }\n.#{$fa-css-prefix}-question-circle:before { content: fa-content($fa-var-question-circle); }\n.#{$fa-css-prefix}-quidditch:before { content: fa-content($fa-var-quidditch); }\n.#{$fa-css-prefix}-quinscape:before { content: fa-content($fa-var-quinscape); }\n.#{$fa-css-prefix}-quora:before { content: fa-content($fa-var-quora); }\n.#{$fa-css-prefix}-quote-left:before { content: fa-content($fa-var-quote-left); }\n.#{$fa-css-prefix}-quote-right:before { content: fa-content($fa-var-quote-right); }\n.#{$fa-css-prefix}-quran:before { content: fa-content($fa-var-quran); }\n.#{$fa-css-prefix}-r-project:before { content: fa-content($fa-var-r-project); }\n.#{$fa-css-prefix}-radiation:before { content: fa-content($fa-var-radiation); }\n.#{$fa-css-prefix}-radiation-alt:before { content: fa-content($fa-var-radiation-alt); }\n.#{$fa-css-prefix}-rainbow:before { content: fa-content($fa-var-rainbow); }\n.#{$fa-css-prefix}-random:before { content: fa-content($fa-var-random); }\n.#{$fa-css-prefix}-raspberry-pi:before { content: fa-content($fa-var-raspberry-pi); }\n.#{$fa-css-prefix}-ravelry:before { content: fa-content($fa-var-ravelry); }\n.#{$fa-css-prefix}-react:before { content: fa-content($fa-var-react); }\n.#{$fa-css-prefix}-reacteurope:before { content: fa-content($fa-var-reacteurope); }\n.#{$fa-css-prefix}-readme:before { content: fa-content($fa-var-readme); }\n.#{$fa-css-prefix}-rebel:before { content: fa-content($fa-var-rebel); }\n.#{$fa-css-prefix}-receipt:before { content: fa-content($fa-var-receipt); }\n.#{$fa-css-prefix}-recycle:before { content: fa-content($fa-var-recycle); }\n.#{$fa-css-prefix}-red-river:before { content: fa-content($fa-var-red-river); }\n.#{$fa-css-prefix}-reddit:before { content: fa-content($fa-var-reddit); }\n.#{$fa-css-prefix}-reddit-alien:before { content: fa-content($fa-var-reddit-alien); }\n.#{$fa-css-prefix}-reddit-square:before { content: fa-content($fa-var-reddit-square); }\n.#{$fa-css-prefix}-redhat:before { content: fa-content($fa-var-redhat); }\n.#{$fa-css-prefix}-redo:before { content: fa-content($fa-var-redo); }\n.#{$fa-css-prefix}-redo-alt:before { content: fa-content($fa-var-redo-alt); }\n.#{$fa-css-prefix}-registered:before { content: fa-content($fa-var-registered); }\n.#{$fa-css-prefix}-remove-format:before { content: fa-content($fa-var-remove-format); }\n.#{$fa-css-prefix}-renren:before { content: fa-content($fa-var-renren); }\n.#{$fa-css-prefix}-reply:before { content: fa-content($fa-var-reply); }\n.#{$fa-css-prefix}-reply-all:before { content: fa-content($fa-var-reply-all); }\n.#{$fa-css-prefix}-replyd:before { content: fa-content($fa-var-replyd); }\n.#{$fa-css-prefix}-republican:before { content: fa-content($fa-var-republican); }\n.#{$fa-css-prefix}-researchgate:before { content: fa-content($fa-var-researchgate); }\n.#{$fa-css-prefix}-resolving:before { content: fa-content($fa-var-resolving); }\n.#{$fa-css-prefix}-restroom:before { content: fa-content($fa-var-restroom); }\n.#{$fa-css-prefix}-retweet:before { content: fa-content($fa-var-retweet); }\n.#{$fa-css-prefix}-rev:before { content: fa-content($fa-var-rev); }\n.#{$fa-css-prefix}-ribbon:before { content: fa-content($fa-var-ribbon); }\n.#{$fa-css-prefix}-ring:before { content: fa-content($fa-var-ring); }\n.#{$fa-css-prefix}-road:before { content: fa-content($fa-var-road); }\n.#{$fa-css-prefix}-robot:before { content: fa-content($fa-var-robot); }\n.#{$fa-css-prefix}-rocket:before { content: fa-content($fa-var-rocket); }\n.#{$fa-css-prefix}-rocketchat:before { content: fa-content($fa-var-rocketchat); }\n.#{$fa-css-prefix}-rockrms:before { content: fa-content($fa-var-rockrms); }\n.#{$fa-css-prefix}-route:before { content: fa-content($fa-var-route); }\n.#{$fa-css-prefix}-rss:before { content: fa-content($fa-var-rss); }\n.#{$fa-css-prefix}-rss-square:before { content: fa-content($fa-var-rss-square); }\n.#{$fa-css-prefix}-ruble-sign:before { content: fa-content($fa-var-ruble-sign); }\n.#{$fa-css-prefix}-ruler:before { content: fa-content($fa-var-ruler); }\n.#{$fa-css-prefix}-ruler-combined:before { content: fa-content($fa-var-ruler-combined); }\n.#{$fa-css-prefix}-ruler-horizontal:before { content: fa-content($fa-var-ruler-horizontal); }\n.#{$fa-css-prefix}-ruler-vertical:before { content: fa-content($fa-var-ruler-vertical); }\n.#{$fa-css-prefix}-running:before { content: fa-content($fa-var-running); }\n.#{$fa-css-prefix}-rupee-sign:before { content: fa-content($fa-var-rupee-sign); }\n.#{$fa-css-prefix}-sad-cry:before { content: fa-content($fa-var-sad-cry); }\n.#{$fa-css-prefix}-sad-tear:before { content: fa-content($fa-var-sad-tear); }\n.#{$fa-css-prefix}-safari:before { content: fa-content($fa-var-safari); }\n.#{$fa-css-prefix}-salesforce:before { content: fa-content($fa-var-salesforce); }\n.#{$fa-css-prefix}-sass:before { content: fa-content($fa-var-sass); }\n.#{$fa-css-prefix}-satellite:before { content: fa-content($fa-var-satellite); }\n.#{$fa-css-prefix}-satellite-dish:before { content: fa-content($fa-var-satellite-dish); }\n.#{$fa-css-prefix}-save:before { content: fa-content($fa-var-save); }\n.#{$fa-css-prefix}-schlix:before { content: fa-content($fa-var-schlix); }\n.#{$fa-css-prefix}-school:before { content: fa-content($fa-var-school); }\n.#{$fa-css-prefix}-screwdriver:before { content: fa-content($fa-var-screwdriver); }\n.#{$fa-css-prefix}-scribd:before { content: fa-content($fa-var-scribd); }\n.#{$fa-css-prefix}-scroll:before { content: fa-content($fa-var-scroll); }\n.#{$fa-css-prefix}-sd-card:before { content: fa-content($fa-var-sd-card); }\n.#{$fa-css-prefix}-search:before { content: fa-content($fa-var-search); }\n.#{$fa-css-prefix}-search-dollar:before { content: fa-content($fa-var-search-dollar); }\n.#{$fa-css-prefix}-search-location:before { content: fa-content($fa-var-search-location); }\n.#{$fa-css-prefix}-search-minus:before { content: fa-content($fa-var-search-minus); }\n.#{$fa-css-prefix}-search-plus:before { content: fa-content($fa-var-search-plus); }\n.#{$fa-css-prefix}-searchengin:before { content: fa-content($fa-var-searchengin); }\n.#{$fa-css-prefix}-seedling:before { content: fa-content($fa-var-seedling); }\n.#{$fa-css-prefix}-sellcast:before { content: fa-content($fa-var-sellcast); }\n.#{$fa-css-prefix}-sellsy:before { content: fa-content($fa-var-sellsy); }\n.#{$fa-css-prefix}-server:before { content: fa-content($fa-var-server); }\n.#{$fa-css-prefix}-servicestack:before { content: fa-content($fa-var-servicestack); }\n.#{$fa-css-prefix}-shapes:before { content: fa-content($fa-var-shapes); }\n.#{$fa-css-prefix}-share:before { content: fa-content($fa-var-share); }\n.#{$fa-css-prefix}-share-alt:before { content: fa-content($fa-var-share-alt); }\n.#{$fa-css-prefix}-share-alt-square:before { content: fa-content($fa-var-share-alt-square); }\n.#{$fa-css-prefix}-share-square:before { content: fa-content($fa-var-share-square); }\n.#{$fa-css-prefix}-shekel-sign:before { content: fa-content($fa-var-shekel-sign); }\n.#{$fa-css-prefix}-shield-alt:before { content: fa-content($fa-var-shield-alt); }\n.#{$fa-css-prefix}-ship:before { content: fa-content($fa-var-ship); }\n.#{$fa-css-prefix}-shipping-fast:before { content: fa-content($fa-var-shipping-fast); }\n.#{$fa-css-prefix}-shirtsinbulk:before { content: fa-content($fa-var-shirtsinbulk); }\n.#{$fa-css-prefix}-shoe-prints:before { content: fa-content($fa-var-shoe-prints); }\n.#{$fa-css-prefix}-shopping-bag:before { content: fa-content($fa-var-shopping-bag); }\n.#{$fa-css-prefix}-shopping-basket:before { content: fa-content($fa-var-shopping-basket); }\n.#{$fa-css-prefix}-shopping-cart:before { content: fa-content($fa-var-shopping-cart); }\n.#{$fa-css-prefix}-shopware:before { content: fa-content($fa-var-shopware); }\n.#{$fa-css-prefix}-shower:before { content: fa-content($fa-var-shower); }\n.#{$fa-css-prefix}-shuttle-van:before { content: fa-content($fa-var-shuttle-van); }\n.#{$fa-css-prefix}-sign:before { content: fa-content($fa-var-sign); }\n.#{$fa-css-prefix}-sign-in-alt:before { content: fa-content($fa-var-sign-in-alt); }\n.#{$fa-css-prefix}-sign-language:before { content: fa-content($fa-var-sign-language); }\n.#{$fa-css-prefix}-sign-out-alt:before { content: fa-content($fa-var-sign-out-alt); }\n.#{$fa-css-prefix}-signal:before { content: fa-content($fa-var-signal); }\n.#{$fa-css-prefix}-signature:before { content: fa-content($fa-var-signature); }\n.#{$fa-css-prefix}-sim-card:before { content: fa-content($fa-var-sim-card); }\n.#{$fa-css-prefix}-simplybuilt:before { content: fa-content($fa-var-simplybuilt); }\n.#{$fa-css-prefix}-sistrix:before { content: fa-content($fa-var-sistrix); }\n.#{$fa-css-prefix}-sitemap:before { content: fa-content($fa-var-sitemap); }\n.#{$fa-css-prefix}-sith:before { content: fa-content($fa-var-sith); }\n.#{$fa-css-prefix}-skating:before { content: fa-content($fa-var-skating); }\n.#{$fa-css-prefix}-sketch:before { content: fa-content($fa-var-sketch); }\n.#{$fa-css-prefix}-skiing:before { content: fa-content($fa-var-skiing); }\n.#{$fa-css-prefix}-skiing-nordic:before { content: fa-content($fa-var-skiing-nordic); }\n.#{$fa-css-prefix}-skull:before { content: fa-content($fa-var-skull); }\n.#{$fa-css-prefix}-skull-crossbones:before { content: fa-content($fa-var-skull-crossbones); }\n.#{$fa-css-prefix}-skyatlas:before { content: fa-content($fa-var-skyatlas); }\n.#{$fa-css-prefix}-skype:before { content: fa-content($fa-var-skype); }\n.#{$fa-css-prefix}-slack:before { content: fa-content($fa-var-slack); }\n.#{$fa-css-prefix}-slack-hash:before { content: fa-content($fa-var-slack-hash); }\n.#{$fa-css-prefix}-slash:before { content: fa-content($fa-var-slash); }\n.#{$fa-css-prefix}-sleigh:before { content: fa-content($fa-var-sleigh); }\n.#{$fa-css-prefix}-sliders-h:before { content: fa-content($fa-var-sliders-h); }\n.#{$fa-css-prefix}-slideshare:before { content: fa-content($fa-var-slideshare); }\n.#{$fa-css-prefix}-smile:before { content: fa-content($fa-var-smile); }\n.#{$fa-css-prefix}-smile-beam:before { content: fa-content($fa-var-smile-beam); }\n.#{$fa-css-prefix}-smile-wink:before { content: fa-content($fa-var-smile-wink); }\n.#{$fa-css-prefix}-smog:before { content: fa-content($fa-var-smog); }\n.#{$fa-css-prefix}-smoking:before { content: fa-content($fa-var-smoking); }\n.#{$fa-css-prefix}-smoking-ban:before { content: fa-content($fa-var-smoking-ban); }\n.#{$fa-css-prefix}-sms:before { content: fa-content($fa-var-sms); }\n.#{$fa-css-prefix}-snapchat:before { content: fa-content($fa-var-snapchat); }\n.#{$fa-css-prefix}-snapchat-ghost:before { content: fa-content($fa-var-snapchat-ghost); }\n.#{$fa-css-prefix}-snapchat-square:before { content: fa-content($fa-var-snapchat-square); }\n.#{$fa-css-prefix}-snowboarding:before { content: fa-content($fa-var-snowboarding); }\n.#{$fa-css-prefix}-snowflake:before { content: fa-content($fa-var-snowflake); }\n.#{$fa-css-prefix}-snowman:before { content: fa-content($fa-var-snowman); }\n.#{$fa-css-prefix}-snowplow:before { content: fa-content($fa-var-snowplow); }\n.#{$fa-css-prefix}-socks:before { content: fa-content($fa-var-socks); }\n.#{$fa-css-prefix}-solar-panel:before { content: fa-content($fa-var-solar-panel); }\n.#{$fa-css-prefix}-sort:before { content: fa-content($fa-var-sort); }\n.#{$fa-css-prefix}-sort-alpha-down:before { content: fa-content($fa-var-sort-alpha-down); }\n.#{$fa-css-prefix}-sort-alpha-down-alt:before { content: fa-content($fa-var-sort-alpha-down-alt); }\n.#{$fa-css-prefix}-sort-alpha-up:before { content: fa-content($fa-var-sort-alpha-up); }\n.#{$fa-css-prefix}-sort-alpha-up-alt:before { content: fa-content($fa-var-sort-alpha-up-alt); }\n.#{$fa-css-prefix}-sort-amount-down:before { content: fa-content($fa-var-sort-amount-down); }\n.#{$fa-css-prefix}-sort-amount-down-alt:before { content: fa-content($fa-var-sort-amount-down-alt); }\n.#{$fa-css-prefix}-sort-amount-up:before { content: fa-content($fa-var-sort-amount-up); }\n.#{$fa-css-prefix}-sort-amount-up-alt:before { content: fa-content($fa-var-sort-amount-up-alt); }\n.#{$fa-css-prefix}-sort-down:before { content: fa-content($fa-var-sort-down); }\n.#{$fa-css-prefix}-sort-numeric-down:before { content: fa-content($fa-var-sort-numeric-down); }\n.#{$fa-css-prefix}-sort-numeric-down-alt:before { content: fa-content($fa-var-sort-numeric-down-alt); }\n.#{$fa-css-prefix}-sort-numeric-up:before { content: fa-content($fa-var-sort-numeric-up); }\n.#{$fa-css-prefix}-sort-numeric-up-alt:before { content: fa-content($fa-var-sort-numeric-up-alt); }\n.#{$fa-css-prefix}-sort-up:before { content: fa-content($fa-var-sort-up); }\n.#{$fa-css-prefix}-soundcloud:before { content: fa-content($fa-var-soundcloud); }\n.#{$fa-css-prefix}-sourcetree:before { content: fa-content($fa-var-sourcetree); }\n.#{$fa-css-prefix}-spa:before { content: fa-content($fa-var-spa); }\n.#{$fa-css-prefix}-space-shuttle:before { content: fa-content($fa-var-space-shuttle); }\n.#{$fa-css-prefix}-speakap:before { content: fa-content($fa-var-speakap); }\n.#{$fa-css-prefix}-speaker-deck:before { content: fa-content($fa-var-speaker-deck); }\n.#{$fa-css-prefix}-spell-check:before { content: fa-content($fa-var-spell-check); }\n.#{$fa-css-prefix}-spider:before { content: fa-content($fa-var-spider); }\n.#{$fa-css-prefix}-spinner:before { content: fa-content($fa-var-spinner); }\n.#{$fa-css-prefix}-splotch:before { content: fa-content($fa-var-splotch); }\n.#{$fa-css-prefix}-spotify:before { content: fa-content($fa-var-spotify); }\n.#{$fa-css-prefix}-spray-can:before { content: fa-content($fa-var-spray-can); }\n.#{$fa-css-prefix}-square:before { content: fa-content($fa-var-square); }\n.#{$fa-css-prefix}-square-full:before { content: fa-content($fa-var-square-full); }\n.#{$fa-css-prefix}-square-root-alt:before { content: fa-content($fa-var-square-root-alt); }\n.#{$fa-css-prefix}-squarespace:before { content: fa-content($fa-var-squarespace); }\n.#{$fa-css-prefix}-stack-exchange:before { content: fa-content($fa-var-stack-exchange); }\n.#{$fa-css-prefix}-stack-overflow:before { content: fa-content($fa-var-stack-overflow); }\n.#{$fa-css-prefix}-stackpath:before { content: fa-content($fa-var-stackpath); }\n.#{$fa-css-prefix}-stamp:before { content: fa-content($fa-var-stamp); }\n.#{$fa-css-prefix}-star:before { content: fa-content($fa-var-star); }\n.#{$fa-css-prefix}-star-and-crescent:before { content: fa-content($fa-var-star-and-crescent); }\n.#{$fa-css-prefix}-star-half:before { content: fa-content($fa-var-star-half); }\n.#{$fa-css-prefix}-star-half-alt:before { content: fa-content($fa-var-star-half-alt); }\n.#{$fa-css-prefix}-star-of-david:before { content: fa-content($fa-var-star-of-david); }\n.#{$fa-css-prefix}-star-of-life:before { content: fa-content($fa-var-star-of-life); }\n.#{$fa-css-prefix}-staylinked:before { content: fa-content($fa-var-staylinked); }\n.#{$fa-css-prefix}-steam:before { content: fa-content($fa-var-steam); }\n.#{$fa-css-prefix}-steam-square:before { content: fa-content($fa-var-steam-square); }\n.#{$fa-css-prefix}-steam-symbol:before { content: fa-content($fa-var-steam-symbol); }\n.#{$fa-css-prefix}-step-backward:before { content: fa-content($fa-var-step-backward); }\n.#{$fa-css-prefix}-step-forward:before { content: fa-content($fa-var-step-forward); }\n.#{$fa-css-prefix}-stethoscope:before { content: fa-content($fa-var-stethoscope); }\n.#{$fa-css-prefix}-sticker-mule:before { content: fa-content($fa-var-sticker-mule); }\n.#{$fa-css-prefix}-sticky-note:before { content: fa-content($fa-var-sticky-note); }\n.#{$fa-css-prefix}-stop:before { content: fa-content($fa-var-stop); }\n.#{$fa-css-prefix}-stop-circle:before { content: fa-content($fa-var-stop-circle); }\n.#{$fa-css-prefix}-stopwatch:before { content: fa-content($fa-var-stopwatch); }\n.#{$fa-css-prefix}-store:before { content: fa-content($fa-var-store); }\n.#{$fa-css-prefix}-store-alt:before { content: fa-content($fa-var-store-alt); }\n.#{$fa-css-prefix}-strava:before { content: fa-content($fa-var-strava); }\n.#{$fa-css-prefix}-stream:before { content: fa-content($fa-var-stream); }\n.#{$fa-css-prefix}-street-view:before { content: fa-content($fa-var-street-view); }\n.#{$fa-css-prefix}-strikethrough:before { content: fa-content($fa-var-strikethrough); }\n.#{$fa-css-prefix}-stripe:before { content: fa-content($fa-var-stripe); }\n.#{$fa-css-prefix}-stripe-s:before { content: fa-content($fa-var-stripe-s); }\n.#{$fa-css-prefix}-stroopwafel:before { content: fa-content($fa-var-stroopwafel); }\n.#{$fa-css-prefix}-studiovinari:before { content: fa-content($fa-var-studiovinari); }\n.#{$fa-css-prefix}-stumbleupon:before { content: fa-content($fa-var-stumbleupon); }\n.#{$fa-css-prefix}-stumbleupon-circle:before { content: fa-content($fa-var-stumbleupon-circle); }\n.#{$fa-css-prefix}-subscript:before { content: fa-content($fa-var-subscript); }\n.#{$fa-css-prefix}-subway:before { content: fa-content($fa-var-subway); }\n.#{$fa-css-prefix}-suitcase:before { content: fa-content($fa-var-suitcase); }\n.#{$fa-css-prefix}-suitcase-rolling:before { content: fa-content($fa-var-suitcase-rolling); }\n.#{$fa-css-prefix}-sun:before { content: fa-content($fa-var-sun); }\n.#{$fa-css-prefix}-superpowers:before { content: fa-content($fa-var-superpowers); }\n.#{$fa-css-prefix}-superscript:before { content: fa-content($fa-var-superscript); }\n.#{$fa-css-prefix}-supple:before { content: fa-content($fa-var-supple); }\n.#{$fa-css-prefix}-surprise:before { content: fa-content($fa-var-surprise); }\n.#{$fa-css-prefix}-suse:before { content: fa-content($fa-var-suse); }\n.#{$fa-css-prefix}-swatchbook:before { content: fa-content($fa-var-swatchbook); }\n.#{$fa-css-prefix}-swimmer:before { content: fa-content($fa-var-swimmer); }\n.#{$fa-css-prefix}-swimming-pool:before { content: fa-content($fa-var-swimming-pool); }\n.#{$fa-css-prefix}-symfony:before { content: fa-content($fa-var-symfony); }\n.#{$fa-css-prefix}-synagogue:before { content: fa-content($fa-var-synagogue); }\n.#{$fa-css-prefix}-sync:before { content: fa-content($fa-var-sync); }\n.#{$fa-css-prefix}-sync-alt:before { content: fa-content($fa-var-sync-alt); }\n.#{$fa-css-prefix}-syringe:before { content: fa-content($fa-var-syringe); }\n.#{$fa-css-prefix}-table:before { content: fa-content($fa-var-table); }\n.#{$fa-css-prefix}-table-tennis:before { content: fa-content($fa-var-table-tennis); }\n.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet); }\n.#{$fa-css-prefix}-tablet-alt:before { content: fa-content($fa-var-tablet-alt); }\n.#{$fa-css-prefix}-tablets:before { content: fa-content($fa-var-tablets); }\n.#{$fa-css-prefix}-tachometer-alt:before { content: fa-content($fa-var-tachometer-alt); }\n.#{$fa-css-prefix}-tag:before { content: fa-content($fa-var-tag); }\n.#{$fa-css-prefix}-tags:before { content: fa-content($fa-var-tags); }\n.#{$fa-css-prefix}-tape:before { content: fa-content($fa-var-tape); }\n.#{$fa-css-prefix}-tasks:before { content: fa-content($fa-var-tasks); }\n.#{$fa-css-prefix}-taxi:before { content: fa-content($fa-var-taxi); }\n.#{$fa-css-prefix}-teamspeak:before { content: fa-content($fa-var-teamspeak); }\n.#{$fa-css-prefix}-teeth:before { content: fa-content($fa-var-teeth); }\n.#{$fa-css-prefix}-teeth-open:before { content: fa-content($fa-var-teeth-open); }\n.#{$fa-css-prefix}-telegram:before { content: fa-content($fa-var-telegram); }\n.#{$fa-css-prefix}-telegram-plane:before { content: fa-content($fa-var-telegram-plane); }\n.#{$fa-css-prefix}-temperature-high:before { content: fa-content($fa-var-temperature-high); }\n.#{$fa-css-prefix}-temperature-low:before { content: fa-content($fa-var-temperature-low); }\n.#{$fa-css-prefix}-tencent-weibo:before { content: fa-content($fa-var-tencent-weibo); }\n.#{$fa-css-prefix}-tenge:before { content: fa-content($fa-var-tenge); }\n.#{$fa-css-prefix}-terminal:before { content: fa-content($fa-var-terminal); }\n.#{$fa-css-prefix}-text-height:before { content: fa-content($fa-var-text-height); }\n.#{$fa-css-prefix}-text-width:before { content: fa-content($fa-var-text-width); }\n.#{$fa-css-prefix}-th:before { content: fa-content($fa-var-th); }\n.#{$fa-css-prefix}-th-large:before { content: fa-content($fa-var-th-large); }\n.#{$fa-css-prefix}-th-list:before { content: fa-content($fa-var-th-list); }\n.#{$fa-css-prefix}-the-red-yeti:before { content: fa-content($fa-var-the-red-yeti); }\n.#{$fa-css-prefix}-theater-masks:before { content: fa-content($fa-var-theater-masks); }\n.#{$fa-css-prefix}-themeco:before { content: fa-content($fa-var-themeco); }\n.#{$fa-css-prefix}-themeisle:before { content: fa-content($fa-var-themeisle); }\n.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer); }\n.#{$fa-css-prefix}-thermometer-empty:before { content: fa-content($fa-var-thermometer-empty); }\n.#{$fa-css-prefix}-thermometer-full:before { content: fa-content($fa-var-thermometer-full); }\n.#{$fa-css-prefix}-thermometer-half:before { content: fa-content($fa-var-thermometer-half); }\n.#{$fa-css-prefix}-thermometer-quarter:before { content: fa-content($fa-var-thermometer-quarter); }\n.#{$fa-css-prefix}-thermometer-three-quarters:before { content: fa-content($fa-var-thermometer-three-quarters); }\n.#{$fa-css-prefix}-think-peaks:before { content: fa-content($fa-var-think-peaks); }\n.#{$fa-css-prefix}-thumbs-down:before { content: fa-content($fa-var-thumbs-down); }\n.#{$fa-css-prefix}-thumbs-up:before { content: fa-content($fa-var-thumbs-up); }\n.#{$fa-css-prefix}-thumbtack:before { content: fa-content($fa-var-thumbtack); }\n.#{$fa-css-prefix}-ticket-alt:before { content: fa-content($fa-var-ticket-alt); }\n.#{$fa-css-prefix}-times:before { content: fa-content($fa-var-times); }\n.#{$fa-css-prefix}-times-circle:before { content: fa-content($fa-var-times-circle); }\n.#{$fa-css-prefix}-tint:before { content: fa-content($fa-var-tint); }\n.#{$fa-css-prefix}-tint-slash:before { content: fa-content($fa-var-tint-slash); }\n.#{$fa-css-prefix}-tired:before { content: fa-content($fa-var-tired); }\n.#{$fa-css-prefix}-toggle-off:before { content: fa-content($fa-var-toggle-off); }\n.#{$fa-css-prefix}-toggle-on:before { content: fa-content($fa-var-toggle-on); }\n.#{$fa-css-prefix}-toilet:before { content: fa-content($fa-var-toilet); }\n.#{$fa-css-prefix}-toilet-paper:before { content: fa-content($fa-var-toilet-paper); }\n.#{$fa-css-prefix}-toolbox:before { content: fa-content($fa-var-toolbox); }\n.#{$fa-css-prefix}-tools:before { content: fa-content($fa-var-tools); }\n.#{$fa-css-prefix}-tooth:before { content: fa-content($fa-var-tooth); }\n.#{$fa-css-prefix}-torah:before { content: fa-content($fa-var-torah); }\n.#{$fa-css-prefix}-torii-gate:before { content: fa-content($fa-var-torii-gate); }\n.#{$fa-css-prefix}-tractor:before { content: fa-content($fa-var-tractor); }\n.#{$fa-css-prefix}-trade-federation:before { content: fa-content($fa-var-trade-federation); }\n.#{$fa-css-prefix}-trademark:before { content: fa-content($fa-var-trademark); }\n.#{$fa-css-prefix}-traffic-light:before { content: fa-content($fa-var-traffic-light); }\n.#{$fa-css-prefix}-train:before { content: fa-content($fa-var-train); }\n.#{$fa-css-prefix}-tram:before { content: fa-content($fa-var-tram); }\n.#{$fa-css-prefix}-transgender:before { content: fa-content($fa-var-transgender); }\n.#{$fa-css-prefix}-transgender-alt:before { content: fa-content($fa-var-transgender-alt); }\n.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash); }\n.#{$fa-css-prefix}-trash-alt:before { content: fa-content($fa-var-trash-alt); }\n.#{$fa-css-prefix}-trash-restore:before { content: fa-content($fa-var-trash-restore); }\n.#{$fa-css-prefix}-trash-restore-alt:before { content: fa-content($fa-var-trash-restore-alt); }\n.#{$fa-css-prefix}-tree:before { content: fa-content($fa-var-tree); }\n.#{$fa-css-prefix}-trello:before { content: fa-content($fa-var-trello); }\n.#{$fa-css-prefix}-tripadvisor:before { content: fa-content($fa-var-tripadvisor); }\n.#{$fa-css-prefix}-trophy:before { content: fa-content($fa-var-trophy); }\n.#{$fa-css-prefix}-truck:before { content: fa-content($fa-var-truck); }\n.#{$fa-css-prefix}-truck-loading:before { content: fa-content($fa-var-truck-loading); }\n.#{$fa-css-prefix}-truck-monster:before { content: fa-content($fa-var-truck-monster); }\n.#{$fa-css-prefix}-truck-moving:before { content: fa-content($fa-var-truck-moving); }\n.#{$fa-css-prefix}-truck-pickup:before { content: fa-content($fa-var-truck-pickup); }\n.#{$fa-css-prefix}-tshirt:before { content: fa-content($fa-var-tshirt); }\n.#{$fa-css-prefix}-tty:before { content: fa-content($fa-var-tty); }\n.#{$fa-css-prefix}-tumblr:before { content: fa-content($fa-var-tumblr); }\n.#{$fa-css-prefix}-tumblr-square:before { content: fa-content($fa-var-tumblr-square); }\n.#{$fa-css-prefix}-tv:before { content: fa-content($fa-var-tv); }\n.#{$fa-css-prefix}-twitch:before { content: fa-content($fa-var-twitch); }\n.#{$fa-css-prefix}-twitter:before { content: fa-content($fa-var-twitter); }\n.#{$fa-css-prefix}-twitter-square:before { content: fa-content($fa-var-twitter-square); }\n.#{$fa-css-prefix}-typo3:before { content: fa-content($fa-var-typo3); }\n.#{$fa-css-prefix}-uber:before { content: fa-content($fa-var-uber); }\n.#{$fa-css-prefix}-ubuntu:before { content: fa-content($fa-var-ubuntu); }\n.#{$fa-css-prefix}-uikit:before { content: fa-content($fa-var-uikit); }\n.#{$fa-css-prefix}-umbrella:before { content: fa-content($fa-var-umbrella); }\n.#{$fa-css-prefix}-umbrella-beach:before { content: fa-content($fa-var-umbrella-beach); }\n.#{$fa-css-prefix}-underline:before { content: fa-content($fa-var-underline); }\n.#{$fa-css-prefix}-undo:before { content: fa-content($fa-var-undo); }\n.#{$fa-css-prefix}-undo-alt:before { content: fa-content($fa-var-undo-alt); }\n.#{$fa-css-prefix}-uniregistry:before { content: fa-content($fa-var-uniregistry); }\n.#{$fa-css-prefix}-universal-access:before { content: fa-content($fa-var-universal-access); }\n.#{$fa-css-prefix}-university:before { content: fa-content($fa-var-university); }\n.#{$fa-css-prefix}-unlink:before { content: fa-content($fa-var-unlink); }\n.#{$fa-css-prefix}-unlock:before { content: fa-content($fa-var-unlock); }\n.#{$fa-css-prefix}-unlock-alt:before { content: fa-content($fa-var-unlock-alt); }\n.#{$fa-css-prefix}-untappd:before { content: fa-content($fa-var-untappd); }\n.#{$fa-css-prefix}-upload:before { content: fa-content($fa-var-upload); }\n.#{$fa-css-prefix}-ups:before { content: fa-content($fa-var-ups); }\n.#{$fa-css-prefix}-usb:before { content: fa-content($fa-var-usb); }\n.#{$fa-css-prefix}-user:before { content: fa-content($fa-var-user); }\n.#{$fa-css-prefix}-user-alt:before { content: fa-content($fa-var-user-alt); }\n.#{$fa-css-prefix}-user-alt-slash:before { content: fa-content($fa-var-user-alt-slash); }\n.#{$fa-css-prefix}-user-astronaut:before { content: fa-content($fa-var-user-astronaut); }\n.#{$fa-css-prefix}-user-check:before { content: fa-content($fa-var-user-check); }\n.#{$fa-css-prefix}-user-circle:before { content: fa-content($fa-var-user-circle); }\n.#{$fa-css-prefix}-user-clock:before { content: fa-content($fa-var-user-clock); }\n.#{$fa-css-prefix}-user-cog:before { content: fa-content($fa-var-user-cog); }\n.#{$fa-css-prefix}-user-edit:before { content: fa-content($fa-var-user-edit); }\n.#{$fa-css-prefix}-user-friends:before { content: fa-content($fa-var-user-friends); }\n.#{$fa-css-prefix}-user-graduate:before { content: fa-content($fa-var-user-graduate); }\n.#{$fa-css-prefix}-user-injured:before { content: fa-content($fa-var-user-injured); }\n.#{$fa-css-prefix}-user-lock:before { content: fa-content($fa-var-user-lock); }\n.#{$fa-css-prefix}-user-md:before { content: fa-content($fa-var-user-md); }\n.#{$fa-css-prefix}-user-minus:before { content: fa-content($fa-var-user-minus); }\n.#{$fa-css-prefix}-user-ninja:before { content: fa-content($fa-var-user-ninja); }\n.#{$fa-css-prefix}-user-nurse:before { content: fa-content($fa-var-user-nurse); }\n.#{$fa-css-prefix}-user-plus:before { content: fa-content($fa-var-user-plus); }\n.#{$fa-css-prefix}-user-secret:before { content: fa-content($fa-var-user-secret); }\n.#{$fa-css-prefix}-user-shield:before { content: fa-content($fa-var-user-shield); }\n.#{$fa-css-prefix}-user-slash:before { content: fa-content($fa-var-user-slash); }\n.#{$fa-css-prefix}-user-tag:before { content: fa-content($fa-var-user-tag); }\n.#{$fa-css-prefix}-user-tie:before { content: fa-content($fa-var-user-tie); }\n.#{$fa-css-prefix}-user-times:before { content: fa-content($fa-var-user-times); }\n.#{$fa-css-prefix}-users:before { content: fa-content($fa-var-users); }\n.#{$fa-css-prefix}-users-cog:before { content: fa-content($fa-var-users-cog); }\n.#{$fa-css-prefix}-usps:before { content: fa-content($fa-var-usps); }\n.#{$fa-css-prefix}-ussunnah:before { content: fa-content($fa-var-ussunnah); }\n.#{$fa-css-prefix}-utensil-spoon:before { content: fa-content($fa-var-utensil-spoon); }\n.#{$fa-css-prefix}-utensils:before { content: fa-content($fa-var-utensils); }\n.#{$fa-css-prefix}-vaadin:before { content: fa-content($fa-var-vaadin); }\n.#{$fa-css-prefix}-vector-square:before { content: fa-content($fa-var-vector-square); }\n.#{$fa-css-prefix}-venus:before { content: fa-content($fa-var-venus); }\n.#{$fa-css-prefix}-venus-double:before { content: fa-content($fa-var-venus-double); }\n.#{$fa-css-prefix}-venus-mars:before { content: fa-content($fa-var-venus-mars); }\n.#{$fa-css-prefix}-viacoin:before { content: fa-content($fa-var-viacoin); }\n.#{$fa-css-prefix}-viadeo:before { content: fa-content($fa-var-viadeo); }\n.#{$fa-css-prefix}-viadeo-square:before { content: fa-content($fa-var-viadeo-square); }\n.#{$fa-css-prefix}-vial:before { content: fa-content($fa-var-vial); }\n.#{$fa-css-prefix}-vials:before { content: fa-content($fa-var-vials); }\n.#{$fa-css-prefix}-viber:before { content: fa-content($fa-var-viber); }\n.#{$fa-css-prefix}-video:before { content: fa-content($fa-var-video); }\n.#{$fa-css-prefix}-video-slash:before { content: fa-content($fa-var-video-slash); }\n.#{$fa-css-prefix}-vihara:before { content: fa-content($fa-var-vihara); }\n.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo); }\n.#{$fa-css-prefix}-vimeo-square:before { content: fa-content($fa-var-vimeo-square); }\n.#{$fa-css-prefix}-vimeo-v:before { content: fa-content($fa-var-vimeo-v); }\n.#{$fa-css-prefix}-vine:before { content: fa-content($fa-var-vine); }\n.#{$fa-css-prefix}-vk:before { content: fa-content($fa-var-vk); }\n.#{$fa-css-prefix}-vnv:before { content: fa-content($fa-var-vnv); }\n.#{$fa-css-prefix}-voicemail:before { content: fa-content($fa-var-voicemail); }\n.#{$fa-css-prefix}-volleyball-ball:before { content: fa-content($fa-var-volleyball-ball); }\n.#{$fa-css-prefix}-volume-down:before { content: fa-content($fa-var-volume-down); }\n.#{$fa-css-prefix}-volume-mute:before { content: fa-content($fa-var-volume-mute); }\n.#{$fa-css-prefix}-volume-off:before { content: fa-content($fa-var-volume-off); }\n.#{$fa-css-prefix}-volume-up:before { content: fa-content($fa-var-volume-up); }\n.#{$fa-css-prefix}-vote-yea:before { content: fa-content($fa-var-vote-yea); }\n.#{$fa-css-prefix}-vr-cardboard:before { content: fa-content($fa-var-vr-cardboard); }\n.#{$fa-css-prefix}-vuejs:before { content: fa-content($fa-var-vuejs); }\n.#{$fa-css-prefix}-walking:before { content: fa-content($fa-var-walking); }\n.#{$fa-css-prefix}-wallet:before { content: fa-content($fa-var-wallet); }\n.#{$fa-css-prefix}-warehouse:before { content: fa-content($fa-var-warehouse); }\n.#{$fa-css-prefix}-water:before { content: fa-content($fa-var-water); }\n.#{$fa-css-prefix}-wave-square:before { content: fa-content($fa-var-wave-square); }\n.#{$fa-css-prefix}-waze:before { content: fa-content($fa-var-waze); }\n.#{$fa-css-prefix}-weebly:before { content: fa-content($fa-var-weebly); }\n.#{$fa-css-prefix}-weibo:before { content: fa-content($fa-var-weibo); }\n.#{$fa-css-prefix}-weight:before { content: fa-content($fa-var-weight); }\n.#{$fa-css-prefix}-weight-hanging:before { content: fa-content($fa-var-weight-hanging); }\n.#{$fa-css-prefix}-weixin:before { content: fa-content($fa-var-weixin); }\n.#{$fa-css-prefix}-whatsapp:before { content: fa-content($fa-var-whatsapp); }\n.#{$fa-css-prefix}-whatsapp-square:before { content: fa-content($fa-var-whatsapp-square); }\n.#{$fa-css-prefix}-wheelchair:before { content: fa-content($fa-var-wheelchair); }\n.#{$fa-css-prefix}-whmcs:before { content: fa-content($fa-var-whmcs); }\n.#{$fa-css-prefix}-wifi:before { content: fa-content($fa-var-wifi); }\n.#{$fa-css-prefix}-wikipedia-w:before { content: fa-content($fa-var-wikipedia-w); }\n.#{$fa-css-prefix}-wind:before { content: fa-content($fa-var-wind); }\n.#{$fa-css-prefix}-window-close:before { content: fa-content($fa-var-window-close); }\n.#{$fa-css-prefix}-window-maximize:before { content: fa-content($fa-var-window-maximize); }\n.#{$fa-css-prefix}-window-minimize:before { content: fa-content($fa-var-window-minimize); }\n.#{$fa-css-prefix}-window-restore:before { content: fa-content($fa-var-window-restore); }\n.#{$fa-css-prefix}-windows:before { content: fa-content($fa-var-windows); }\n.#{$fa-css-prefix}-wine-bottle:before { content: fa-content($fa-var-wine-bottle); }\n.#{$fa-css-prefix}-wine-glass:before { content: fa-content($fa-var-wine-glass); }\n.#{$fa-css-prefix}-wine-glass-alt:before { content: fa-content($fa-var-wine-glass-alt); }\n.#{$fa-css-prefix}-wix:before { content: fa-content($fa-var-wix); }\n.#{$fa-css-prefix}-wizards-of-the-coast:before { content: fa-content($fa-var-wizards-of-the-coast); }\n.#{$fa-css-prefix}-wolf-pack-battalion:before { content: fa-content($fa-var-wolf-pack-battalion); }\n.#{$fa-css-prefix}-won-sign:before { content: fa-content($fa-var-won-sign); }\n.#{$fa-css-prefix}-wordpress:before { content: fa-content($fa-var-wordpress); }\n.#{$fa-css-prefix}-wordpress-simple:before { content: fa-content($fa-var-wordpress-simple); }\n.#{$fa-css-prefix}-wpbeginner:before { content: fa-content($fa-var-wpbeginner); }\n.#{$fa-css-prefix}-wpexplorer:before { content: fa-content($fa-var-wpexplorer); }\n.#{$fa-css-prefix}-wpforms:before { content: fa-content($fa-var-wpforms); }\n.#{$fa-css-prefix}-wpressr:before { content: fa-content($fa-var-wpressr); }\n.#{$fa-css-prefix}-wrench:before { content: fa-content($fa-var-wrench); }\n.#{$fa-css-prefix}-x-ray:before { content: fa-content($fa-var-x-ray); }\n.#{$fa-css-prefix}-xbox:before { content: fa-content($fa-var-xbox); }\n.#{$fa-css-prefix}-xing:before { content: fa-content($fa-var-xing); }\n.#{$fa-css-prefix}-xing-square:before { content: fa-content($fa-var-xing-square); }\n.#{$fa-css-prefix}-y-combinator:before { content: fa-content($fa-var-y-combinator); }\n.#{$fa-css-prefix}-yahoo:before { content: fa-content($fa-var-yahoo); }\n.#{$fa-css-prefix}-yammer:before { content: fa-content($fa-var-yammer); }\n.#{$fa-css-prefix}-yandex:before { content: fa-content($fa-var-yandex); }\n.#{$fa-css-prefix}-yandex-international:before { content: fa-content($fa-var-yandex-international); }\n.#{$fa-css-prefix}-yarn:before { content: fa-content($fa-var-yarn); }\n.#{$fa-css-prefix}-yelp:before { content: fa-content($fa-var-yelp); }\n.#{$fa-css-prefix}-yen-sign:before { content: fa-content($fa-var-yen-sign); }\n.#{$fa-css-prefix}-yin-yang:before { content: fa-content($fa-var-yin-yang); }\n.#{$fa-css-prefix}-yoast:before { content: fa-content($fa-var-yoast); }\n.#{$fa-css-prefix}-youtube:before { content: fa-content($fa-var-youtube); }\n.#{$fa-css-prefix}-youtube-square:before { content: fa-content($fa-var-youtube-square); }\n.#{$fa-css-prefix}-zhihu:before { content: fa-content($fa-var-zhihu); }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_larger.scss",
    "content": "// Icon Sizes\n// -------------------------\n\n// makes the font 33% larger relative to the icon container\n.#{$fa-css-prefix}-lg {\n  font-size: (4em / 3);\n  line-height: (3em / 4);\n  vertical-align: -.0667em;\n}\n\n.#{$fa-css-prefix}-xs {\n  font-size: .75em;\n}\n\n.#{$fa-css-prefix}-sm {\n  font-size: .875em;\n}\n\n@for $i from 1 through 10 {\n  .#{$fa-css-prefix}-#{$i}x {\n    font-size: $i * 1em;\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_list.scss",
    "content": "// List Icons\n// -------------------------\n\n.#{$fa-css-prefix}-ul {\n  list-style-type: none;\n  margin-left: $fa-li-width * 5/4;\n  padding-left: 0;\n\n  > li { position: relative; }\n}\n\n.#{$fa-css-prefix}-li {\n  left: -$fa-li-width;\n  position: absolute;\n  text-align: center;\n  width: $fa-li-width;\n  line-height: inherit;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_mixins.scss",
    "content": "// Mixins\n// --------------------------\n\n@mixin fa-icon {\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  display: inline-block;\n  font-style: normal;\n  font-variant: normal;\n  font-weight: normal;\n  line-height: 1;\n}\n\n@mixin fa-icon-rotate($degrees, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})\";\n  transform: rotate($degrees);\n}\n\n@mixin fa-icon-flip($horiz, $vert, $rotation) {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)\";\n  transform: scale($horiz, $vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n@mixin sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n  &:active,\n  &:focus {\n    clip: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    position: static;\n    width: auto;\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_rotated-flipped.scss",
    "content": "// Rotated & Flipped Icons\n// -------------------------\n\n.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, 1);  }\n.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }\n.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }\n\n.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }\n.#{$fa-css-prefix}-flip-vertical   { @include fa-icon-flip(1, -1, 2); }\n.#{$fa-css-prefix}-flip-both, .#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(-1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root {\n  .#{$fa-css-prefix}-rotate-90,\n  .#{$fa-css-prefix}-rotate-180,\n  .#{$fa-css-prefix}-rotate-270,\n  .#{$fa-css-prefix}-flip-horizontal,\n  .#{$fa-css-prefix}-flip-vertical,\n  .#{$fa-css-prefix}-flip-both {\n    filter: none;\n  }\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_screen-reader.scss",
    "content": "// Screen Readers\n// -------------------------\n\n.sr-only { @include sr-only; }\n.sr-only-focusable { @include sr-only-focusable; }\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_shims.scss",
    "content": ".#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: fa-content($fa-var-glass-martini); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-meetup {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-o:before { content: fa-content($fa-var-star); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-remove:before { content: fa-content($fa-var-times); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-close:before { content: fa-content($fa-var-times); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gear:before { content: fa-content($fa-var-cog); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-trash-o:before { content: fa-content($fa-var-trash-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-o:before { content: fa-content($fa-var-file); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-clock-o:before { content: fa-content($fa-var-clock); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-down:before { content: fa-content($fa-var-arrow-alt-circle-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-up:before { content: fa-content($fa-var-arrow-alt-circle-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-play-circle-o:before { content: fa-content($fa-var-play-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-repeat:before { content: fa-content($fa-var-redo); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-right:before { content: fa-content($fa-var-redo); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-refresh:before { content: fa-content($fa-var-sync); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-list-alt {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dedent:before { content: fa-content($fa-var-outdent); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-video-camera:before { content: fa-content($fa-var-video); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-picture-o:before { content: fa-content($fa-var-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-photo {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-photo:before { content: fa-content($fa-var-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-image {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-image:before { content: fa-content($fa-var-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil:before { content: fa-content($fa-var-pencil-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-map-marker:before { content: fa-content($fa-var-map-marker-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square-o:before { content: fa-content($fa-var-edit); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-share-square-o:before { content: fa-content($fa-var-share-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-check-square-o:before { content: fa-content($fa-var-check-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows:before { content: fa-content($fa-var-arrows-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-times-circle-o:before { content: fa-content($fa-var-times-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-check-circle-o:before { content: fa-content($fa-var-check-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-forward:before { content: fa-content($fa-var-share); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eye {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eye-slash {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-warning:before { content: fa-content($fa-var-exclamation-triangle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar:before { content: fa-content($fa-var-calendar-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-v:before { content: fa-content($fa-var-arrows-alt-v); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-h:before { content: fa-content($fa-var-arrows-alt-h); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart:before { content: fa-content($fa-var-chart-bar); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bar-chart-o:before { content: fa-content($fa-var-chart-bar); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gears:before { content: fa-content($fa-var-cogs); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-up:before { content: fa-content($fa-var-thumbs-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thumbs-o-down:before { content: fa-content($fa-var-thumbs-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-heart-o:before { content: fa-content($fa-var-heart); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-out:before { content: fa-content($fa-var-sign-out-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin-square:before { content: fa-content($fa-var-linkedin); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thumb-tack:before { content: fa-content($fa-var-thumbtack); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link:before { content: fa-content($fa-var-external-link-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sign-in:before { content: fa-content($fa-var-sign-in-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-github-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lemon-o:before { content: fa-content($fa-var-lemon); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-square-o:before { content: fa-content($fa-var-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bookmark-o:before { content: fa-content($fa-var-bookmark); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-twitter {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook:before { content: fa-content($fa-var-facebook-f); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-f:before { content: fa-content($fa-var-facebook-f); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-github {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-feed:before { content: fa-content($fa-var-rss); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hdd-o:before { content: fa-content($fa-var-hdd); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-right:before { content: fa-content($fa-var-hand-point-right); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-left:before { content: fa-content($fa-var-hand-point-left); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-up:before { content: fa-content($fa-var-hand-point-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-o-down:before { content: fa-content($fa-var-hand-point-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrows-alt:before { content: fa-content($fa-var-expand-arrows-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-group:before { content: fa-content($fa-var-users); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-chain:before { content: fa-content($fa-var-link); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-scissors:before { content: fa-content($fa-var-cut); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-files-o:before { content: fa-content($fa-var-copy); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-floppy-o:before { content: fa-content($fa-var-save); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-navicon:before { content: fa-content($fa-var-bars); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-reorder:before { content: fa-content($fa-var-bars); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus:before { content: fa-content($fa-var-google-plus-g); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-money {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-money:before { content: fa-content($fa-var-money-bill-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-unsorted:before { content: fa-content($fa-var-sort); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-desc:before { content: fa-content($fa-var-sort-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-asc:before { content: fa-content($fa-var-sort-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linkedin:before { content: fa-content($fa-var-linkedin-in); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rotate-left:before { content: fa-content($fa-var-undo); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-legal:before { content: fa-content($fa-var-gavel); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tachometer:before { content: fa-content($fa-var-tachometer-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dashboard:before { content: fa-content($fa-var-tachometer-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-comment-o:before { content: fa-content($fa-var-comment); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-comments-o:before { content: fa-content($fa-var-comments); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-flash:before { content: fa-content($fa-var-bolt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-clipboard {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-paste {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-paste:before { content: fa-content($fa-var-clipboard); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lightbulb-o:before { content: fa-content($fa-var-lightbulb); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-exchange:before { content: fa-content($fa-var-exchange-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-download:before { content: fa-content($fa-var-cloud-download-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cloud-upload:before { content: fa-content($fa-var-cloud-upload-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-o:before { content: fa-content($fa-var-bell); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cutlery:before { content: fa-content($fa-var-utensils); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text-o:before { content: fa-content($fa-var-file-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-building-o:before { content: fa-content($fa-var-building); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hospital-o:before { content: fa-content($fa-var-hospital); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tablet:before { content: fa-content($fa-var-tablet-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile:before { content: fa-content($fa-var-mobile-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mobile-phone:before { content: fa-content($fa-var-mobile-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o:before { content: fa-content($fa-var-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply:before { content: fa-content($fa-var-reply); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-github-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-o:before { content: fa-content($fa-var-folder); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-folder-open-o:before { content: fa-content($fa-var-folder-open); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-smile-o:before { content: fa-content($fa-var-smile); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-frown-o:before { content: fa-content($fa-var-frown); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-meh-o:before { content: fa-content($fa-var-meh); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-keyboard-o:before { content: fa-content($fa-var-keyboard); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-flag-o:before { content: fa-content($fa-var-flag); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mail-reply-all:before { content: fa-content($fa-var-reply-all); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-o:before { content: fa-content($fa-var-star-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-empty:before { content: fa-content($fa-var-star-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-star-half-full:before { content: fa-content($fa-var-star-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-code-fork:before { content: fa-content($fa-var-code-branch); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-chain-broken:before { content: fa-content($fa-var-unlink); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-shield:before { content: fa-content($fa-var-shield-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-o:before { content: fa-content($fa-var-calendar); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-maxcdn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-html5 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-css3 {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ticket:before { content: fa-content($fa-var-ticket-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-minus-square-o:before { content: fa-content($fa-var-minus-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-level-up:before { content: fa-content($fa-var-level-up-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-level-down:before { content: fa-content($fa-var-level-down-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pencil-square:before { content: fa-content($fa-var-pen-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-external-link-square:before { content: fa-content($fa-var-external-link-square-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-compass {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-down:before { content: fa-content($fa-var-caret-square-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-down:before { content: fa-content($fa-var-caret-square-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-up:before { content: fa-content($fa-var-caret-square-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-up:before { content: fa-content($fa-var-caret-square-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-right:before { content: fa-content($fa-var-caret-square-right); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-right:before { content: fa-content($fa-var-caret-square-right); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eur:before { content: fa-content($fa-var-euro-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-euro:before { content: fa-content($fa-var-euro-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gbp:before { content: fa-content($fa-var-pound-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-usd:before { content: fa-content($fa-var-dollar-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dollar:before { content: fa-content($fa-var-dollar-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-inr:before { content: fa-content($fa-var-rupee-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rupee:before { content: fa-content($fa-var-rupee-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-jpy:before { content: fa-content($fa-var-yen-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cny:before { content: fa-content($fa-var-yen-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rmb:before { content: fa-content($fa-var-yen-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yen:before { content: fa-content($fa-var-yen-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rub:before { content: fa-content($fa-var-ruble-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ruble:before { content: fa-content($fa-var-ruble-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rouble:before { content: fa-content($fa-var-ruble-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-krw:before { content: fa-content($fa-var-won-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-won:before { content: fa-content($fa-var-won-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-btc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bitcoin:before { content: fa-content($fa-var-btc); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-text:before { content: fa-content($fa-var-file-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-asc:before { content: fa-content($fa-var-sort-alpha-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-alpha-desc:before { content: fa-content($fa-var-sort-alpha-down-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-asc:before { content: fa-content($fa-var-sort-amount-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-amount-desc:before { content: fa-content($fa-var-sort-amount-down-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-asc:before { content: fa-content($fa-var-sort-numeric-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sort-numeric-desc:before { content: fa-content($fa-var-sort-numeric-down-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-xing {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-xing-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-youtube-play:before { content: fa-content($fa-var-youtube); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dropbox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-overflow {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-instagram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-flickr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-adn {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bitbucket-square:before { content: fa-content($fa-var-bitbucket); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tumblr-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-down:before { content: fa-content($fa-var-long-arrow-alt-down); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-up:before { content: fa-content($fa-var-long-arrow-alt-up); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-left:before { content: fa-content($fa-var-long-arrow-alt-left); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-long-arrow-right:before { content: fa-content($fa-var-long-arrow-alt-right); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-apple {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-windows {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-android {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linux {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dribbble {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-skype {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-foursquare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-trello {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gratipay {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gittip:before { content: fa-content($fa-var-gratipay); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sun-o:before { content: fa-content($fa-var-sun); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-moon-o:before { content: fa-content($fa-var-moon); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-renren {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pagelines {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stack-exchange {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-right:before { content: fa-content($fa-var-arrow-alt-circle-right); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-arrow-circle-o-left:before { content: fa-content($fa-var-arrow-alt-circle-left); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-caret-square-o-left:before { content: fa-content($fa-var-caret-square-left); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-toggle-left:before { content: fa-content($fa-var-caret-square-left); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dot-circle-o:before { content: fa-content($fa-var-dot-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-try:before { content: fa-content($fa-var-lira-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-turkish-lira:before { content: fa-content($fa-var-lira-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-plus-square-o:before { content: fa-content($fa-var-plus-square); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-slack {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wordpress {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-openid {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-institution:before { content: fa-content($fa-var-university); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bank:before { content: fa-content($fa-var-university); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mortar-board:before { content: fa-content($fa-var-graduation-cap); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yahoo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stumbleupon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-delicious {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-digg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-pp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-drupal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-joomla {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-spoon:before { content: fa-content($fa-var-utensil-spoon); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-behance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-behance-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-steam {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-steam-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-automobile:before { content: fa-content($fa-var-car); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cab:before { content: fa-content($fa-var-taxi); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-o:before { content: fa-content($fa-var-envelope); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-deviantart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-soundcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-pdf-o:before { content: fa-content($fa-var-file-pdf); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-word-o:before { content: fa-content($fa-var-file-word); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-excel-o:before { content: fa-content($fa-var-file-excel); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-powerpoint-o:before { content: fa-content($fa-var-file-powerpoint); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-image-o:before { content: fa-content($fa-var-file-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-photo-o:before { content: fa-content($fa-var-file-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-picture-o:before { content: fa-content($fa-var-file-image); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-archive-o:before { content: fa-content($fa-var-file-archive); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-zip-o:before { content: fa-content($fa-var-file-archive); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-audio-o:before { content: fa-content($fa-var-file-audio); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-sound-o:before { content: fa-content($fa-var-file-audio); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-video-o:before { content: fa-content($fa-var-file-video); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-movie-o:before { content: fa-content($fa-var-file-video); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-file-code-o:before { content: fa-content($fa-var-file-code); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vine {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-codepen {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-jsfiddle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-ring {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-bouy:before { content: fa-content($fa-var-life-ring); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-buoy:before { content: fa-content($fa-var-life-ring); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-life-saver:before { content: fa-content($fa-var-life-ring); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-support {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-support:before { content: fa-content($fa-var-life-ring); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-o-notch:before { content: fa-content($fa-var-circle-notch); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-rebel {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ra {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ra:before { content: fa-content($fa-var-rebel); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-resistance:before { content: fa-content($fa-var-rebel); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-empire {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ge:before { content: fa-content($fa-var-empire); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-git-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-git {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hacker-news {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator-square:before { content: fa-content($fa-var-hacker-news); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yc-square:before { content: fa-content($fa-var-hacker-news); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tencent-weibo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-qq {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-weixin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wechat:before { content: fa-content($fa-var-weixin); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-send:before { content: fa-content($fa-var-paper-plane); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-paper-plane-o:before { content: fa-content($fa-var-paper-plane); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-send-o:before { content: fa-content($fa-var-paper-plane); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-circle-thin:before { content: fa-content($fa-var-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-header:before { content: fa-content($fa-var-heading); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sliders:before { content: fa-content($fa-var-sliders-h); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-futbol-o:before { content: fa-content($fa-var-futbol); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-soccer-ball-o:before { content: fa-content($fa-var-futbol); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-slideshare {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-twitch {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yelp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-newspaper-o:before { content: fa-content($fa-var-newspaper); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-wallet {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-visa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-mastercard {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-discover {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-amex {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-paypal {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-stripe {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bell-slash-o:before { content: fa-content($fa-var-bell-slash); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-trash:before { content: fa-content($fa-var-trash-alt); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-copyright {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eyedropper:before { content: fa-content($fa-var-eye-dropper); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-area-chart:before { content: fa-content($fa-var-chart-area); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pie-chart:before { content: fa-content($fa-var-chart-pie); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-line-chart:before { content: fa-content($fa-var-chart-line); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-lastfm-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ioxhost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-angellist {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc:before { content: fa-content($fa-var-closed-captioning); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ils:before { content: fa-content($fa-var-shekel-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-shekel:before { content: fa-content($fa-var-shekel-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sheqel:before { content: fa-content($fa-var-shekel-sign); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-meanpath:before { content: fa-content($fa-var-font-awesome); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-buysellads {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-connectdevelop {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-dashcube {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-forumbee {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-leanpub {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sellsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-shirtsinbulk {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-simplybuilt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-skyatlas {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-diamond:before { content: fa-content($fa-var-gem); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-intersex:before { content: fa-content($fa-var-transgender); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-facebook-official:before { content: fa-content($fa-var-facebook); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pinterest-p {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-whatsapp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hotel:before { content: fa-content($fa-var-bed); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-viacoin {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-medium {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-y-combinator {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yc {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yc:before { content: fa-content($fa-var-y-combinator); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-optin-monster {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-opencart {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-expeditedssl {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-4:before { content: fa-content($fa-var-battery-full); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery:before { content: fa-content($fa-var-battery-full); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-3:before { content: fa-content($fa-var-battery-three-quarters); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-2:before { content: fa-content($fa-var-battery-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-1:before { content: fa-content($fa-var-battery-quarter); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-battery-0:before { content: fa-content($fa-var-battery-empty); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-object-group {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-object-ungroup {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-sticky-note-o:before { content: fa-content($fa-var-sticky-note); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-jcb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-cc-diners-club {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-clone {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-o:before { content: fa-content($fa-var-hourglass); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-1:before { content: fa-content($fa-var-hourglass-start); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-2:before { content: fa-content($fa-var-hourglass-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hourglass-3:before { content: fa-content($fa-var-hourglass-end); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-rock-o:before { content: fa-content($fa-var-hand-rock); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-grab-o:before { content: fa-content($fa-var-hand-rock); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-paper-o:before { content: fa-content($fa-var-hand-paper); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-stop-o:before { content: fa-content($fa-var-hand-paper); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-scissors-o:before { content: fa-content($fa-var-hand-scissors); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-lizard-o:before { content: fa-content($fa-var-hand-lizard); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-spock-o:before { content: fa-content($fa-var-hand-spock); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-pointer-o:before { content: fa-content($fa-var-hand-pointer); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hand-peace-o:before { content: fa-content($fa-var-hand-peace); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-registered {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-creative-commons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gg {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gg-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-tripadvisor {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-odnoklassniki-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-get-pocket {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wikipedia-w {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-safari {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-chrome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-firefox {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-opera {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-internet-explorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-television:before { content: fa-content($fa-var-tv); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-contao {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-500px {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-amazon {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-plus-o:before { content: fa-content($fa-var-calendar-plus); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-minus-o:before { content: fa-content($fa-var-calendar-minus); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-times-o:before { content: fa-content($fa-var-calendar-times); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-calendar-check-o:before { content: fa-content($fa-var-calendar-check); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-map-o:before { content: fa-content($fa-var-map); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting:before { content: fa-content($fa-var-comment-dots); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-commenting-o:before { content: fa-content($fa-var-comment-dots); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-houzz {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vimeo:before { content: fa-content($fa-var-vimeo-v); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-black-tie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-fonticons {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-reddit-alien {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-edge {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-credit-card-alt:before { content: fa-content($fa-var-credit-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-codiepie {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-modx {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-fort-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-usb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-product-hunt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-mixcloud {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-scribd {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pause-circle-o:before { content: fa-content($fa-var-pause-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-stop-circle-o:before { content: fa-content($fa-var-stop-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bluetooth-b {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-gitlab {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wpbeginner {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wpforms {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-envira {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wheelchair-alt:before { content: fa-content($fa-var-accessible-icon); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-question-circle-o:before { content: fa-content($fa-var-question-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-volume-control-phone:before { content: fa-content($fa-var-phone-volume); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-asl-interpreting:before { content: fa-content($fa-var-american-sign-language-interpreting); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-deafness:before { content: fa-content($fa-var-deaf); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-hard-of-hearing:before { content: fa-content($fa-var-deaf); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-glide {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-glide-g {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-signing:before { content: fa-content($fa-var-sign-language); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-viadeo-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-ghost {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-snapchat-square {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-pied-piper {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-first-order {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-yoast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-themeisle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-official:before { content: fa-content($fa-var-google-plus); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-google-plus-circle:before { content: fa-content($fa-var-google-plus); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-font-awesome {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-fa {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-fa:before { content: fa-content($fa-var-font-awesome); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-handshake-o:before { content: fa-content($fa-var-handshake); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-envelope-open-o:before { content: fa-content($fa-var-envelope-open); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-linode {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-address-book-o:before { content: fa-content($fa-var-address-book); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard:before { content: fa-content($fa-var-address-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-address-card-o:before { content: fa-content($fa-var-address-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-vcard-o:before { content: fa-content($fa-var-address-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-user-circle-o:before { content: fa-content($fa-var-user-circle); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-user-o:before { content: fa-content($fa-var-user); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-id-badge {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license:before { content: fa-content($fa-var-id-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-id-card-o:before { content: fa-content($fa-var-id-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-drivers-license-o:before { content: fa-content($fa-var-id-card); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-quora {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-free-code-camp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-telegram {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-4:before { content: fa-content($fa-var-thermometer-full); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer:before { content: fa-content($fa-var-thermometer-full); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-3:before { content: fa-content($fa-var-thermometer-three-quarters); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-2:before { content: fa-content($fa-var-thermometer-half); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-1:before { content: fa-content($fa-var-thermometer-quarter); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-thermometer-0:before { content: fa-content($fa-var-thermometer-empty); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bathtub:before { content: fa-content($fa-var-bath); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-s15:before { content: fa-content($fa-var-bath); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-window-maximize {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-window-restore {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle:before { content: fa-content($fa-var-window-close); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-window-close-o:before { content: fa-content($fa-var-window-close); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-times-rectangle-o:before { content: fa-content($fa-var-window-close); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-bandcamp {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-grav {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-etsy {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-imdb {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-ravelry {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-eercast:before { content: fa-content($fa-var-sellcast); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n.#{$fa-css-prefix}.#{$fa-css-prefix}-snowflake-o:before { content: fa-content($fa-var-snowflake); }\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-superpowers {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-wpexplorer {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n.#{$fa-css-prefix}.#{$fa-css-prefix}-spotify {\n  font-family: 'Font Awesome 5 Brands';\n  font-weight: 400;\n}\n\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_stacked.scss",
    "content": "// Stacked Icons\n// -------------------------\n\n.#{$fa-css-prefix}-stack {\n  display: inline-block;\n  height: 2em;\n  line-height: 2em;\n  position: relative;\n  vertical-align: middle;\n  width: ($fa-fw-width*2);\n}\n\n.#{$fa-css-prefix}-stack-1x,\n.#{$fa-css-prefix}-stack-2x {\n  left: 0;\n  position: absolute;\n  text-align: center;\n  width: 100%;\n}\n\n.#{$fa-css-prefix}-stack-1x {\n  line-height: inherit;\n}\n\n.#{$fa-css-prefix}-stack-2x {\n  font-size: 2em;\n}\n\n.#{$fa-css-prefix}-inverse {\n  color: $fa-inverse;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/_variables.scss",
    "content": "// Variables\n// --------------------------\n\n$fa-font-path:         \"../webfonts\" !default;\n$fa-font-size-base:    16px !default;\n$fa-font-display:      auto !default;\n$fa-css-prefix:        fa !default;\n$fa-version:           \"5.10.1\" !default;\n$fa-border-color:      #eee !default;\n$fa-inverse:           #fff !default;\n$fa-li-width:          2em !default;\n$fa-fw-width:          (20em / 16);\n$fa-primary-opacity:   1 !default;\n$fa-secondary-opacity: .4 !default;\n\n// Convenience function used to set content property\n@function fa-content($fa-var) {\n  @return unquote(\"\\\"#{ $fa-var }\\\"\");\n}\n\n$fa-var-500px: \\f26e;\n$fa-var-accessible-icon: \\f368;\n$fa-var-accusoft: \\f369;\n$fa-var-acquisitions-incorporated: \\f6af;\n$fa-var-ad: \\f641;\n$fa-var-address-book: \\f2b9;\n$fa-var-address-card: \\f2bb;\n$fa-var-adjust: \\f042;\n$fa-var-adn: \\f170;\n$fa-var-adobe: \\f778;\n$fa-var-adversal: \\f36a;\n$fa-var-affiliatetheme: \\f36b;\n$fa-var-air-freshener: \\f5d0;\n$fa-var-airbnb: \\f834;\n$fa-var-algolia: \\f36c;\n$fa-var-align-center: \\f037;\n$fa-var-align-justify: \\f039;\n$fa-var-align-left: \\f036;\n$fa-var-align-right: \\f038;\n$fa-var-alipay: \\f642;\n$fa-var-allergies: \\f461;\n$fa-var-amazon: \\f270;\n$fa-var-amazon-pay: \\f42c;\n$fa-var-ambulance: \\f0f9;\n$fa-var-american-sign-language-interpreting: \\f2a3;\n$fa-var-amilia: \\f36d;\n$fa-var-anchor: \\f13d;\n$fa-var-android: \\f17b;\n$fa-var-angellist: \\f209;\n$fa-var-angle-double-down: \\f103;\n$fa-var-angle-double-left: \\f100;\n$fa-var-angle-double-right: \\f101;\n$fa-var-angle-double-up: \\f102;\n$fa-var-angle-down: \\f107;\n$fa-var-angle-left: \\f104;\n$fa-var-angle-right: \\f105;\n$fa-var-angle-up: \\f106;\n$fa-var-angry: \\f556;\n$fa-var-angrycreative: \\f36e;\n$fa-var-angular: \\f420;\n$fa-var-ankh: \\f644;\n$fa-var-app-store: \\f36f;\n$fa-var-app-store-ios: \\f370;\n$fa-var-apper: \\f371;\n$fa-var-apple: \\f179;\n$fa-var-apple-alt: \\f5d1;\n$fa-var-apple-pay: \\f415;\n$fa-var-archive: \\f187;\n$fa-var-archway: \\f557;\n$fa-var-arrow-alt-circle-down: \\f358;\n$fa-var-arrow-alt-circle-left: \\f359;\n$fa-var-arrow-alt-circle-right: \\f35a;\n$fa-var-arrow-alt-circle-up: \\f35b;\n$fa-var-arrow-circle-down: \\f0ab;\n$fa-var-arrow-circle-left: \\f0a8;\n$fa-var-arrow-circle-right: \\f0a9;\n$fa-var-arrow-circle-up: \\f0aa;\n$fa-var-arrow-down: \\f063;\n$fa-var-arrow-left: \\f060;\n$fa-var-arrow-right: \\f061;\n$fa-var-arrow-up: \\f062;\n$fa-var-arrows-alt: \\f0b2;\n$fa-var-arrows-alt-h: \\f337;\n$fa-var-arrows-alt-v: \\f338;\n$fa-var-artstation: \\f77a;\n$fa-var-assistive-listening-systems: \\f2a2;\n$fa-var-asterisk: \\f069;\n$fa-var-asymmetrik: \\f372;\n$fa-var-at: \\f1fa;\n$fa-var-atlas: \\f558;\n$fa-var-atlassian: \\f77b;\n$fa-var-atom: \\f5d2;\n$fa-var-audible: \\f373;\n$fa-var-audio-description: \\f29e;\n$fa-var-autoprefixer: \\f41c;\n$fa-var-avianex: \\f374;\n$fa-var-aviato: \\f421;\n$fa-var-award: \\f559;\n$fa-var-aws: \\f375;\n$fa-var-baby: \\f77c;\n$fa-var-baby-carriage: \\f77d;\n$fa-var-backspace: \\f55a;\n$fa-var-backward: \\f04a;\n$fa-var-bacon: \\f7e5;\n$fa-var-balance-scale: \\f24e;\n$fa-var-balance-scale-left: \\f515;\n$fa-var-balance-scale-right: \\f516;\n$fa-var-ban: \\f05e;\n$fa-var-band-aid: \\f462;\n$fa-var-bandcamp: \\f2d5;\n$fa-var-barcode: \\f02a;\n$fa-var-bars: \\f0c9;\n$fa-var-baseball-ball: \\f433;\n$fa-var-basketball-ball: \\f434;\n$fa-var-bath: \\f2cd;\n$fa-var-battery-empty: \\f244;\n$fa-var-battery-full: \\f240;\n$fa-var-battery-half: \\f242;\n$fa-var-battery-quarter: \\f243;\n$fa-var-battery-three-quarters: \\f241;\n$fa-var-battle-net: \\f835;\n$fa-var-bed: \\f236;\n$fa-var-beer: \\f0fc;\n$fa-var-behance: \\f1b4;\n$fa-var-behance-square: \\f1b5;\n$fa-var-bell: \\f0f3;\n$fa-var-bell-slash: \\f1f6;\n$fa-var-bezier-curve: \\f55b;\n$fa-var-bible: \\f647;\n$fa-var-bicycle: \\f206;\n$fa-var-biking: \\f84a;\n$fa-var-bimobject: \\f378;\n$fa-var-binoculars: \\f1e5;\n$fa-var-biohazard: \\f780;\n$fa-var-birthday-cake: \\f1fd;\n$fa-var-bitbucket: \\f171;\n$fa-var-bitcoin: \\f379;\n$fa-var-bity: \\f37a;\n$fa-var-black-tie: \\f27e;\n$fa-var-blackberry: \\f37b;\n$fa-var-blender: \\f517;\n$fa-var-blender-phone: \\f6b6;\n$fa-var-blind: \\f29d;\n$fa-var-blog: \\f781;\n$fa-var-blogger: \\f37c;\n$fa-var-blogger-b: \\f37d;\n$fa-var-bluetooth: \\f293;\n$fa-var-bluetooth-b: \\f294;\n$fa-var-bold: \\f032;\n$fa-var-bolt: \\f0e7;\n$fa-var-bomb: \\f1e2;\n$fa-var-bone: \\f5d7;\n$fa-var-bong: \\f55c;\n$fa-var-book: \\f02d;\n$fa-var-book-dead: \\f6b7;\n$fa-var-book-medical: \\f7e6;\n$fa-var-book-open: \\f518;\n$fa-var-book-reader: \\f5da;\n$fa-var-bookmark: \\f02e;\n$fa-var-bootstrap: \\f836;\n$fa-var-border-all: \\f84c;\n$fa-var-border-none: \\f850;\n$fa-var-border-style: \\f853;\n$fa-var-bowling-ball: \\f436;\n$fa-var-box: \\f466;\n$fa-var-box-open: \\f49e;\n$fa-var-boxes: \\f468;\n$fa-var-braille: \\f2a1;\n$fa-var-brain: \\f5dc;\n$fa-var-bread-slice: \\f7ec;\n$fa-var-briefcase: \\f0b1;\n$fa-var-briefcase-medical: \\f469;\n$fa-var-broadcast-tower: \\f519;\n$fa-var-broom: \\f51a;\n$fa-var-brush: \\f55d;\n$fa-var-btc: \\f15a;\n$fa-var-buffer: \\f837;\n$fa-var-bug: \\f188;\n$fa-var-building: \\f1ad;\n$fa-var-bullhorn: \\f0a1;\n$fa-var-bullseye: \\f140;\n$fa-var-burn: \\f46a;\n$fa-var-buromobelexperte: \\f37f;\n$fa-var-bus: \\f207;\n$fa-var-bus-alt: \\f55e;\n$fa-var-business-time: \\f64a;\n$fa-var-buysellads: \\f20d;\n$fa-var-calculator: \\f1ec;\n$fa-var-calendar: \\f133;\n$fa-var-calendar-alt: \\f073;\n$fa-var-calendar-check: \\f274;\n$fa-var-calendar-day: \\f783;\n$fa-var-calendar-minus: \\f272;\n$fa-var-calendar-plus: \\f271;\n$fa-var-calendar-times: \\f273;\n$fa-var-calendar-week: \\f784;\n$fa-var-camera: \\f030;\n$fa-var-camera-retro: \\f083;\n$fa-var-campground: \\f6bb;\n$fa-var-canadian-maple-leaf: \\f785;\n$fa-var-candy-cane: \\f786;\n$fa-var-cannabis: \\f55f;\n$fa-var-capsules: \\f46b;\n$fa-var-car: \\f1b9;\n$fa-var-car-alt: \\f5de;\n$fa-var-car-battery: \\f5df;\n$fa-var-car-crash: \\f5e1;\n$fa-var-car-side: \\f5e4;\n$fa-var-caret-down: \\f0d7;\n$fa-var-caret-left: \\f0d9;\n$fa-var-caret-right: \\f0da;\n$fa-var-caret-square-down: \\f150;\n$fa-var-caret-square-left: \\f191;\n$fa-var-caret-square-right: \\f152;\n$fa-var-caret-square-up: \\f151;\n$fa-var-caret-up: \\f0d8;\n$fa-var-carrot: \\f787;\n$fa-var-cart-arrow-down: \\f218;\n$fa-var-cart-plus: \\f217;\n$fa-var-cash-register: \\f788;\n$fa-var-cat: \\f6be;\n$fa-var-cc-amazon-pay: \\f42d;\n$fa-var-cc-amex: \\f1f3;\n$fa-var-cc-apple-pay: \\f416;\n$fa-var-cc-diners-club: \\f24c;\n$fa-var-cc-discover: \\f1f2;\n$fa-var-cc-jcb: \\f24b;\n$fa-var-cc-mastercard: \\f1f1;\n$fa-var-cc-paypal: \\f1f4;\n$fa-var-cc-stripe: \\f1f5;\n$fa-var-cc-visa: \\f1f0;\n$fa-var-centercode: \\f380;\n$fa-var-centos: \\f789;\n$fa-var-certificate: \\f0a3;\n$fa-var-chair: \\f6c0;\n$fa-var-chalkboard: \\f51b;\n$fa-var-chalkboard-teacher: \\f51c;\n$fa-var-charging-station: \\f5e7;\n$fa-var-chart-area: \\f1fe;\n$fa-var-chart-bar: \\f080;\n$fa-var-chart-line: \\f201;\n$fa-var-chart-pie: \\f200;\n$fa-var-check: \\f00c;\n$fa-var-check-circle: \\f058;\n$fa-var-check-double: \\f560;\n$fa-var-check-square: \\f14a;\n$fa-var-cheese: \\f7ef;\n$fa-var-chess: \\f439;\n$fa-var-chess-bishop: \\f43a;\n$fa-var-chess-board: \\f43c;\n$fa-var-chess-king: \\f43f;\n$fa-var-chess-knight: \\f441;\n$fa-var-chess-pawn: \\f443;\n$fa-var-chess-queen: \\f445;\n$fa-var-chess-rook: \\f447;\n$fa-var-chevron-circle-down: \\f13a;\n$fa-var-chevron-circle-left: \\f137;\n$fa-var-chevron-circle-right: \\f138;\n$fa-var-chevron-circle-up: \\f139;\n$fa-var-chevron-down: \\f078;\n$fa-var-chevron-left: \\f053;\n$fa-var-chevron-right: \\f054;\n$fa-var-chevron-up: \\f077;\n$fa-var-child: \\f1ae;\n$fa-var-chrome: \\f268;\n$fa-var-chromecast: \\f838;\n$fa-var-church: \\f51d;\n$fa-var-circle: \\f111;\n$fa-var-circle-notch: \\f1ce;\n$fa-var-city: \\f64f;\n$fa-var-clinic-medical: \\f7f2;\n$fa-var-clipboard: \\f328;\n$fa-var-clipboard-check: \\f46c;\n$fa-var-clipboard-list: \\f46d;\n$fa-var-clock: \\f017;\n$fa-var-clone: \\f24d;\n$fa-var-closed-captioning: \\f20a;\n$fa-var-cloud: \\f0c2;\n$fa-var-cloud-download-alt: \\f381;\n$fa-var-cloud-meatball: \\f73b;\n$fa-var-cloud-moon: \\f6c3;\n$fa-var-cloud-moon-rain: \\f73c;\n$fa-var-cloud-rain: \\f73d;\n$fa-var-cloud-showers-heavy: \\f740;\n$fa-var-cloud-sun: \\f6c4;\n$fa-var-cloud-sun-rain: \\f743;\n$fa-var-cloud-upload-alt: \\f382;\n$fa-var-cloudscale: \\f383;\n$fa-var-cloudsmith: \\f384;\n$fa-var-cloudversify: \\f385;\n$fa-var-cocktail: \\f561;\n$fa-var-code: \\f121;\n$fa-var-code-branch: \\f126;\n$fa-var-codepen: \\f1cb;\n$fa-var-codiepie: \\f284;\n$fa-var-coffee: \\f0f4;\n$fa-var-cog: \\f013;\n$fa-var-cogs: \\f085;\n$fa-var-coins: \\f51e;\n$fa-var-columns: \\f0db;\n$fa-var-comment: \\f075;\n$fa-var-comment-alt: \\f27a;\n$fa-var-comment-dollar: \\f651;\n$fa-var-comment-dots: \\f4ad;\n$fa-var-comment-medical: \\f7f5;\n$fa-var-comment-slash: \\f4b3;\n$fa-var-comments: \\f086;\n$fa-var-comments-dollar: \\f653;\n$fa-var-compact-disc: \\f51f;\n$fa-var-compass: \\f14e;\n$fa-var-compress: \\f066;\n$fa-var-compress-arrows-alt: \\f78c;\n$fa-var-concierge-bell: \\f562;\n$fa-var-confluence: \\f78d;\n$fa-var-connectdevelop: \\f20e;\n$fa-var-contao: \\f26d;\n$fa-var-cookie: \\f563;\n$fa-var-cookie-bite: \\f564;\n$fa-var-copy: \\f0c5;\n$fa-var-copyright: \\f1f9;\n$fa-var-cotton-bureau: \\f89e;\n$fa-var-couch: \\f4b8;\n$fa-var-cpanel: \\f388;\n$fa-var-creative-commons: \\f25e;\n$fa-var-creative-commons-by: \\f4e7;\n$fa-var-creative-commons-nc: \\f4e8;\n$fa-var-creative-commons-nc-eu: \\f4e9;\n$fa-var-creative-commons-nc-jp: \\f4ea;\n$fa-var-creative-commons-nd: \\f4eb;\n$fa-var-creative-commons-pd: \\f4ec;\n$fa-var-creative-commons-pd-alt: \\f4ed;\n$fa-var-creative-commons-remix: \\f4ee;\n$fa-var-creative-commons-sa: \\f4ef;\n$fa-var-creative-commons-sampling: \\f4f0;\n$fa-var-creative-commons-sampling-plus: \\f4f1;\n$fa-var-creative-commons-share: \\f4f2;\n$fa-var-creative-commons-zero: \\f4f3;\n$fa-var-credit-card: \\f09d;\n$fa-var-critical-role: \\f6c9;\n$fa-var-crop: \\f125;\n$fa-var-crop-alt: \\f565;\n$fa-var-cross: \\f654;\n$fa-var-crosshairs: \\f05b;\n$fa-var-crow: \\f520;\n$fa-var-crown: \\f521;\n$fa-var-crutch: \\f7f7;\n$fa-var-css3: \\f13c;\n$fa-var-css3-alt: \\f38b;\n$fa-var-cube: \\f1b2;\n$fa-var-cubes: \\f1b3;\n$fa-var-cut: \\f0c4;\n$fa-var-cuttlefish: \\f38c;\n$fa-var-d-and-d: \\f38d;\n$fa-var-d-and-d-beyond: \\f6ca;\n$fa-var-dashcube: \\f210;\n$fa-var-database: \\f1c0;\n$fa-var-deaf: \\f2a4;\n$fa-var-delicious: \\f1a5;\n$fa-var-democrat: \\f747;\n$fa-var-deploydog: \\f38e;\n$fa-var-deskpro: \\f38f;\n$fa-var-desktop: \\f108;\n$fa-var-dev: \\f6cc;\n$fa-var-deviantart: \\f1bd;\n$fa-var-dharmachakra: \\f655;\n$fa-var-dhl: \\f790;\n$fa-var-diagnoses: \\f470;\n$fa-var-diaspora: \\f791;\n$fa-var-dice: \\f522;\n$fa-var-dice-d20: \\f6cf;\n$fa-var-dice-d6: \\f6d1;\n$fa-var-dice-five: \\f523;\n$fa-var-dice-four: \\f524;\n$fa-var-dice-one: \\f525;\n$fa-var-dice-six: \\f526;\n$fa-var-dice-three: \\f527;\n$fa-var-dice-two: \\f528;\n$fa-var-digg: \\f1a6;\n$fa-var-digital-ocean: \\f391;\n$fa-var-digital-tachograph: \\f566;\n$fa-var-directions: \\f5eb;\n$fa-var-discord: \\f392;\n$fa-var-discourse: \\f393;\n$fa-var-divide: \\f529;\n$fa-var-dizzy: \\f567;\n$fa-var-dna: \\f471;\n$fa-var-dochub: \\f394;\n$fa-var-docker: \\f395;\n$fa-var-dog: \\f6d3;\n$fa-var-dollar-sign: \\f155;\n$fa-var-dolly: \\f472;\n$fa-var-dolly-flatbed: \\f474;\n$fa-var-donate: \\f4b9;\n$fa-var-door-closed: \\f52a;\n$fa-var-door-open: \\f52b;\n$fa-var-dot-circle: \\f192;\n$fa-var-dove: \\f4ba;\n$fa-var-download: \\f019;\n$fa-var-draft2digital: \\f396;\n$fa-var-drafting-compass: \\f568;\n$fa-var-dragon: \\f6d5;\n$fa-var-draw-polygon: \\f5ee;\n$fa-var-dribbble: \\f17d;\n$fa-var-dribbble-square: \\f397;\n$fa-var-dropbox: \\f16b;\n$fa-var-drum: \\f569;\n$fa-var-drum-steelpan: \\f56a;\n$fa-var-drumstick-bite: \\f6d7;\n$fa-var-drupal: \\f1a9;\n$fa-var-dumbbell: \\f44b;\n$fa-var-dumpster: \\f793;\n$fa-var-dumpster-fire: \\f794;\n$fa-var-dungeon: \\f6d9;\n$fa-var-dyalog: \\f399;\n$fa-var-earlybirds: \\f39a;\n$fa-var-ebay: \\f4f4;\n$fa-var-edge: \\f282;\n$fa-var-edit: \\f044;\n$fa-var-egg: \\f7fb;\n$fa-var-eject: \\f052;\n$fa-var-elementor: \\f430;\n$fa-var-ellipsis-h: \\f141;\n$fa-var-ellipsis-v: \\f142;\n$fa-var-ello: \\f5f1;\n$fa-var-ember: \\f423;\n$fa-var-empire: \\f1d1;\n$fa-var-envelope: \\f0e0;\n$fa-var-envelope-open: \\f2b6;\n$fa-var-envelope-open-text: \\f658;\n$fa-var-envelope-square: \\f199;\n$fa-var-envira: \\f299;\n$fa-var-equals: \\f52c;\n$fa-var-eraser: \\f12d;\n$fa-var-erlang: \\f39d;\n$fa-var-ethereum: \\f42e;\n$fa-var-ethernet: \\f796;\n$fa-var-etsy: \\f2d7;\n$fa-var-euro-sign: \\f153;\n$fa-var-evernote: \\f839;\n$fa-var-exchange-alt: \\f362;\n$fa-var-exclamation: \\f12a;\n$fa-var-exclamation-circle: \\f06a;\n$fa-var-exclamation-triangle: \\f071;\n$fa-var-expand: \\f065;\n$fa-var-expand-arrows-alt: \\f31e;\n$fa-var-expeditedssl: \\f23e;\n$fa-var-external-link-alt: \\f35d;\n$fa-var-external-link-square-alt: \\f360;\n$fa-var-eye: \\f06e;\n$fa-var-eye-dropper: \\f1fb;\n$fa-var-eye-slash: \\f070;\n$fa-var-facebook: \\f09a;\n$fa-var-facebook-f: \\f39e;\n$fa-var-facebook-messenger: \\f39f;\n$fa-var-facebook-square: \\f082;\n$fa-var-fan: \\f863;\n$fa-var-fantasy-flight-games: \\f6dc;\n$fa-var-fast-backward: \\f049;\n$fa-var-fast-forward: \\f050;\n$fa-var-fax: \\f1ac;\n$fa-var-feather: \\f52d;\n$fa-var-feather-alt: \\f56b;\n$fa-var-fedex: \\f797;\n$fa-var-fedora: \\f798;\n$fa-var-female: \\f182;\n$fa-var-fighter-jet: \\f0fb;\n$fa-var-figma: \\f799;\n$fa-var-file: \\f15b;\n$fa-var-file-alt: \\f15c;\n$fa-var-file-archive: \\f1c6;\n$fa-var-file-audio: \\f1c7;\n$fa-var-file-code: \\f1c9;\n$fa-var-file-contract: \\f56c;\n$fa-var-file-csv: \\f6dd;\n$fa-var-file-download: \\f56d;\n$fa-var-file-excel: \\f1c3;\n$fa-var-file-export: \\f56e;\n$fa-var-file-image: \\f1c5;\n$fa-var-file-import: \\f56f;\n$fa-var-file-invoice: \\f570;\n$fa-var-file-invoice-dollar: \\f571;\n$fa-var-file-medical: \\f477;\n$fa-var-file-medical-alt: \\f478;\n$fa-var-file-pdf: \\f1c1;\n$fa-var-file-powerpoint: \\f1c4;\n$fa-var-file-prescription: \\f572;\n$fa-var-file-signature: \\f573;\n$fa-var-file-upload: \\f574;\n$fa-var-file-video: \\f1c8;\n$fa-var-file-word: \\f1c2;\n$fa-var-fill: \\f575;\n$fa-var-fill-drip: \\f576;\n$fa-var-film: \\f008;\n$fa-var-filter: \\f0b0;\n$fa-var-fingerprint: \\f577;\n$fa-var-fire: \\f06d;\n$fa-var-fire-alt: \\f7e4;\n$fa-var-fire-extinguisher: \\f134;\n$fa-var-firefox: \\f269;\n$fa-var-first-aid: \\f479;\n$fa-var-first-order: \\f2b0;\n$fa-var-first-order-alt: \\f50a;\n$fa-var-firstdraft: \\f3a1;\n$fa-var-fish: \\f578;\n$fa-var-fist-raised: \\f6de;\n$fa-var-flag: \\f024;\n$fa-var-flag-checkered: \\f11e;\n$fa-var-flag-usa: \\f74d;\n$fa-var-flask: \\f0c3;\n$fa-var-flickr: \\f16e;\n$fa-var-flipboard: \\f44d;\n$fa-var-flushed: \\f579;\n$fa-var-fly: \\f417;\n$fa-var-folder: \\f07b;\n$fa-var-folder-minus: \\f65d;\n$fa-var-folder-open: \\f07c;\n$fa-var-folder-plus: \\f65e;\n$fa-var-font: \\f031;\n$fa-var-font-awesome: \\f2b4;\n$fa-var-font-awesome-alt: \\f35c;\n$fa-var-font-awesome-flag: \\f425;\n$fa-var-font-awesome-logo-full: \\f4e6;\n$fa-var-fonticons: \\f280;\n$fa-var-fonticons-fi: \\f3a2;\n$fa-var-football-ball: \\f44e;\n$fa-var-fort-awesome: \\f286;\n$fa-var-fort-awesome-alt: \\f3a3;\n$fa-var-forumbee: \\f211;\n$fa-var-forward: \\f04e;\n$fa-var-foursquare: \\f180;\n$fa-var-free-code-camp: \\f2c5;\n$fa-var-freebsd: \\f3a4;\n$fa-var-frog: \\f52e;\n$fa-var-frown: \\f119;\n$fa-var-frown-open: \\f57a;\n$fa-var-fulcrum: \\f50b;\n$fa-var-funnel-dollar: \\f662;\n$fa-var-futbol: \\f1e3;\n$fa-var-galactic-republic: \\f50c;\n$fa-var-galactic-senate: \\f50d;\n$fa-var-gamepad: \\f11b;\n$fa-var-gas-pump: \\f52f;\n$fa-var-gavel: \\f0e3;\n$fa-var-gem: \\f3a5;\n$fa-var-genderless: \\f22d;\n$fa-var-get-pocket: \\f265;\n$fa-var-gg: \\f260;\n$fa-var-gg-circle: \\f261;\n$fa-var-ghost: \\f6e2;\n$fa-var-gift: \\f06b;\n$fa-var-gifts: \\f79c;\n$fa-var-git: \\f1d3;\n$fa-var-git-alt: \\f841;\n$fa-var-git-square: \\f1d2;\n$fa-var-github: \\f09b;\n$fa-var-github-alt: \\f113;\n$fa-var-github-square: \\f092;\n$fa-var-gitkraken: \\f3a6;\n$fa-var-gitlab: \\f296;\n$fa-var-gitter: \\f426;\n$fa-var-glass-cheers: \\f79f;\n$fa-var-glass-martini: \\f000;\n$fa-var-glass-martini-alt: \\f57b;\n$fa-var-glass-whiskey: \\f7a0;\n$fa-var-glasses: \\f530;\n$fa-var-glide: \\f2a5;\n$fa-var-glide-g: \\f2a6;\n$fa-var-globe: \\f0ac;\n$fa-var-globe-africa: \\f57c;\n$fa-var-globe-americas: \\f57d;\n$fa-var-globe-asia: \\f57e;\n$fa-var-globe-europe: \\f7a2;\n$fa-var-gofore: \\f3a7;\n$fa-var-golf-ball: \\f450;\n$fa-var-goodreads: \\f3a8;\n$fa-var-goodreads-g: \\f3a9;\n$fa-var-google: \\f1a0;\n$fa-var-google-drive: \\f3aa;\n$fa-var-google-play: \\f3ab;\n$fa-var-google-plus: \\f2b3;\n$fa-var-google-plus-g: \\f0d5;\n$fa-var-google-plus-square: \\f0d4;\n$fa-var-google-wallet: \\f1ee;\n$fa-var-gopuram: \\f664;\n$fa-var-graduation-cap: \\f19d;\n$fa-var-gratipay: \\f184;\n$fa-var-grav: \\f2d6;\n$fa-var-greater-than: \\f531;\n$fa-var-greater-than-equal: \\f532;\n$fa-var-grimace: \\f57f;\n$fa-var-grin: \\f580;\n$fa-var-grin-alt: \\f581;\n$fa-var-grin-beam: \\f582;\n$fa-var-grin-beam-sweat: \\f583;\n$fa-var-grin-hearts: \\f584;\n$fa-var-grin-squint: \\f585;\n$fa-var-grin-squint-tears: \\f586;\n$fa-var-grin-stars: \\f587;\n$fa-var-grin-tears: \\f588;\n$fa-var-grin-tongue: \\f589;\n$fa-var-grin-tongue-squint: \\f58a;\n$fa-var-grin-tongue-wink: \\f58b;\n$fa-var-grin-wink: \\f58c;\n$fa-var-grip-horizontal: \\f58d;\n$fa-var-grip-lines: \\f7a4;\n$fa-var-grip-lines-vertical: \\f7a5;\n$fa-var-grip-vertical: \\f58e;\n$fa-var-gripfire: \\f3ac;\n$fa-var-grunt: \\f3ad;\n$fa-var-guitar: \\f7a6;\n$fa-var-gulp: \\f3ae;\n$fa-var-h-square: \\f0fd;\n$fa-var-hacker-news: \\f1d4;\n$fa-var-hacker-news-square: \\f3af;\n$fa-var-hackerrank: \\f5f7;\n$fa-var-hamburger: \\f805;\n$fa-var-hammer: \\f6e3;\n$fa-var-hamsa: \\f665;\n$fa-var-hand-holding: \\f4bd;\n$fa-var-hand-holding-heart: \\f4be;\n$fa-var-hand-holding-usd: \\f4c0;\n$fa-var-hand-lizard: \\f258;\n$fa-var-hand-middle-finger: \\f806;\n$fa-var-hand-paper: \\f256;\n$fa-var-hand-peace: \\f25b;\n$fa-var-hand-point-down: \\f0a7;\n$fa-var-hand-point-left: \\f0a5;\n$fa-var-hand-point-right: \\f0a4;\n$fa-var-hand-point-up: \\f0a6;\n$fa-var-hand-pointer: \\f25a;\n$fa-var-hand-rock: \\f255;\n$fa-var-hand-scissors: \\f257;\n$fa-var-hand-spock: \\f259;\n$fa-var-hands: \\f4c2;\n$fa-var-hands-helping: \\f4c4;\n$fa-var-handshake: \\f2b5;\n$fa-var-hanukiah: \\f6e6;\n$fa-var-hard-hat: \\f807;\n$fa-var-hashtag: \\f292;\n$fa-var-hat-wizard: \\f6e8;\n$fa-var-haykal: \\f666;\n$fa-var-hdd: \\f0a0;\n$fa-var-heading: \\f1dc;\n$fa-var-headphones: \\f025;\n$fa-var-headphones-alt: \\f58f;\n$fa-var-headset: \\f590;\n$fa-var-heart: \\f004;\n$fa-var-heart-broken: \\f7a9;\n$fa-var-heartbeat: \\f21e;\n$fa-var-helicopter: \\f533;\n$fa-var-highlighter: \\f591;\n$fa-var-hiking: \\f6ec;\n$fa-var-hippo: \\f6ed;\n$fa-var-hips: \\f452;\n$fa-var-hire-a-helper: \\f3b0;\n$fa-var-history: \\f1da;\n$fa-var-hockey-puck: \\f453;\n$fa-var-holly-berry: \\f7aa;\n$fa-var-home: \\f015;\n$fa-var-hooli: \\f427;\n$fa-var-hornbill: \\f592;\n$fa-var-horse: \\f6f0;\n$fa-var-horse-head: \\f7ab;\n$fa-var-hospital: \\f0f8;\n$fa-var-hospital-alt: \\f47d;\n$fa-var-hospital-symbol: \\f47e;\n$fa-var-hot-tub: \\f593;\n$fa-var-hotdog: \\f80f;\n$fa-var-hotel: \\f594;\n$fa-var-hotjar: \\f3b1;\n$fa-var-hourglass: \\f254;\n$fa-var-hourglass-end: \\f253;\n$fa-var-hourglass-half: \\f252;\n$fa-var-hourglass-start: \\f251;\n$fa-var-house-damage: \\f6f1;\n$fa-var-houzz: \\f27c;\n$fa-var-hryvnia: \\f6f2;\n$fa-var-html5: \\f13b;\n$fa-var-hubspot: \\f3b2;\n$fa-var-i-cursor: \\f246;\n$fa-var-ice-cream: \\f810;\n$fa-var-icicles: \\f7ad;\n$fa-var-icons: \\f86d;\n$fa-var-id-badge: \\f2c1;\n$fa-var-id-card: \\f2c2;\n$fa-var-id-card-alt: \\f47f;\n$fa-var-igloo: \\f7ae;\n$fa-var-image: \\f03e;\n$fa-var-images: \\f302;\n$fa-var-imdb: \\f2d8;\n$fa-var-inbox: \\f01c;\n$fa-var-indent: \\f03c;\n$fa-var-industry: \\f275;\n$fa-var-infinity: \\f534;\n$fa-var-info: \\f129;\n$fa-var-info-circle: \\f05a;\n$fa-var-instagram: \\f16d;\n$fa-var-intercom: \\f7af;\n$fa-var-internet-explorer: \\f26b;\n$fa-var-invision: \\f7b0;\n$fa-var-ioxhost: \\f208;\n$fa-var-italic: \\f033;\n$fa-var-itch-io: \\f83a;\n$fa-var-itunes: \\f3b4;\n$fa-var-itunes-note: \\f3b5;\n$fa-var-java: \\f4e4;\n$fa-var-jedi: \\f669;\n$fa-var-jedi-order: \\f50e;\n$fa-var-jenkins: \\f3b6;\n$fa-var-jira: \\f7b1;\n$fa-var-joget: \\f3b7;\n$fa-var-joint: \\f595;\n$fa-var-joomla: \\f1aa;\n$fa-var-journal-whills: \\f66a;\n$fa-var-js: \\f3b8;\n$fa-var-js-square: \\f3b9;\n$fa-var-jsfiddle: \\f1cc;\n$fa-var-kaaba: \\f66b;\n$fa-var-kaggle: \\f5fa;\n$fa-var-key: \\f084;\n$fa-var-keybase: \\f4f5;\n$fa-var-keyboard: \\f11c;\n$fa-var-keycdn: \\f3ba;\n$fa-var-khanda: \\f66d;\n$fa-var-kickstarter: \\f3bb;\n$fa-var-kickstarter-k: \\f3bc;\n$fa-var-kiss: \\f596;\n$fa-var-kiss-beam: \\f597;\n$fa-var-kiss-wink-heart: \\f598;\n$fa-var-kiwi-bird: \\f535;\n$fa-var-korvue: \\f42f;\n$fa-var-landmark: \\f66f;\n$fa-var-language: \\f1ab;\n$fa-var-laptop: \\f109;\n$fa-var-laptop-code: \\f5fc;\n$fa-var-laptop-medical: \\f812;\n$fa-var-laravel: \\f3bd;\n$fa-var-lastfm: \\f202;\n$fa-var-lastfm-square: \\f203;\n$fa-var-laugh: \\f599;\n$fa-var-laugh-beam: \\f59a;\n$fa-var-laugh-squint: \\f59b;\n$fa-var-laugh-wink: \\f59c;\n$fa-var-layer-group: \\f5fd;\n$fa-var-leaf: \\f06c;\n$fa-var-leanpub: \\f212;\n$fa-var-lemon: \\f094;\n$fa-var-less: \\f41d;\n$fa-var-less-than: \\f536;\n$fa-var-less-than-equal: \\f537;\n$fa-var-level-down-alt: \\f3be;\n$fa-var-level-up-alt: \\f3bf;\n$fa-var-life-ring: \\f1cd;\n$fa-var-lightbulb: \\f0eb;\n$fa-var-line: \\f3c0;\n$fa-var-link: \\f0c1;\n$fa-var-linkedin: \\f08c;\n$fa-var-linkedin-in: \\f0e1;\n$fa-var-linode: \\f2b8;\n$fa-var-linux: \\f17c;\n$fa-var-lira-sign: \\f195;\n$fa-var-list: \\f03a;\n$fa-var-list-alt: \\f022;\n$fa-var-list-ol: \\f0cb;\n$fa-var-list-ul: \\f0ca;\n$fa-var-location-arrow: \\f124;\n$fa-var-lock: \\f023;\n$fa-var-lock-open: \\f3c1;\n$fa-var-long-arrow-alt-down: \\f309;\n$fa-var-long-arrow-alt-left: \\f30a;\n$fa-var-long-arrow-alt-right: \\f30b;\n$fa-var-long-arrow-alt-up: \\f30c;\n$fa-var-low-vision: \\f2a8;\n$fa-var-luggage-cart: \\f59d;\n$fa-var-lyft: \\f3c3;\n$fa-var-magento: \\f3c4;\n$fa-var-magic: \\f0d0;\n$fa-var-magnet: \\f076;\n$fa-var-mail-bulk: \\f674;\n$fa-var-mailchimp: \\f59e;\n$fa-var-male: \\f183;\n$fa-var-mandalorian: \\f50f;\n$fa-var-map: \\f279;\n$fa-var-map-marked: \\f59f;\n$fa-var-map-marked-alt: \\f5a0;\n$fa-var-map-marker: \\f041;\n$fa-var-map-marker-alt: \\f3c5;\n$fa-var-map-pin: \\f276;\n$fa-var-map-signs: \\f277;\n$fa-var-markdown: \\f60f;\n$fa-var-marker: \\f5a1;\n$fa-var-mars: \\f222;\n$fa-var-mars-double: \\f227;\n$fa-var-mars-stroke: \\f229;\n$fa-var-mars-stroke-h: \\f22b;\n$fa-var-mars-stroke-v: \\f22a;\n$fa-var-mask: \\f6fa;\n$fa-var-mastodon: \\f4f6;\n$fa-var-maxcdn: \\f136;\n$fa-var-medal: \\f5a2;\n$fa-var-medapps: \\f3c6;\n$fa-var-medium: \\f23a;\n$fa-var-medium-m: \\f3c7;\n$fa-var-medkit: \\f0fa;\n$fa-var-medrt: \\f3c8;\n$fa-var-meetup: \\f2e0;\n$fa-var-megaport: \\f5a3;\n$fa-var-meh: \\f11a;\n$fa-var-meh-blank: \\f5a4;\n$fa-var-meh-rolling-eyes: \\f5a5;\n$fa-var-memory: \\f538;\n$fa-var-mendeley: \\f7b3;\n$fa-var-menorah: \\f676;\n$fa-var-mercury: \\f223;\n$fa-var-meteor: \\f753;\n$fa-var-microchip: \\f2db;\n$fa-var-microphone: \\f130;\n$fa-var-microphone-alt: \\f3c9;\n$fa-var-microphone-alt-slash: \\f539;\n$fa-var-microphone-slash: \\f131;\n$fa-var-microscope: \\f610;\n$fa-var-microsoft: \\f3ca;\n$fa-var-minus: \\f068;\n$fa-var-minus-circle: \\f056;\n$fa-var-minus-square: \\f146;\n$fa-var-mitten: \\f7b5;\n$fa-var-mix: \\f3cb;\n$fa-var-mixcloud: \\f289;\n$fa-var-mizuni: \\f3cc;\n$fa-var-mobile: \\f10b;\n$fa-var-mobile-alt: \\f3cd;\n$fa-var-modx: \\f285;\n$fa-var-monero: \\f3d0;\n$fa-var-money-bill: \\f0d6;\n$fa-var-money-bill-alt: \\f3d1;\n$fa-var-money-bill-wave: \\f53a;\n$fa-var-money-bill-wave-alt: \\f53b;\n$fa-var-money-check: \\f53c;\n$fa-var-money-check-alt: \\f53d;\n$fa-var-monument: \\f5a6;\n$fa-var-moon: \\f186;\n$fa-var-mortar-pestle: \\f5a7;\n$fa-var-mosque: \\f678;\n$fa-var-motorcycle: \\f21c;\n$fa-var-mountain: \\f6fc;\n$fa-var-mouse-pointer: \\f245;\n$fa-var-mug-hot: \\f7b6;\n$fa-var-music: \\f001;\n$fa-var-napster: \\f3d2;\n$fa-var-neos: \\f612;\n$fa-var-network-wired: \\f6ff;\n$fa-var-neuter: \\f22c;\n$fa-var-newspaper: \\f1ea;\n$fa-var-nimblr: \\f5a8;\n$fa-var-node: \\f419;\n$fa-var-node-js: \\f3d3;\n$fa-var-not-equal: \\f53e;\n$fa-var-notes-medical: \\f481;\n$fa-var-npm: \\f3d4;\n$fa-var-ns8: \\f3d5;\n$fa-var-nutritionix: \\f3d6;\n$fa-var-object-group: \\f247;\n$fa-var-object-ungroup: \\f248;\n$fa-var-odnoklassniki: \\f263;\n$fa-var-odnoklassniki-square: \\f264;\n$fa-var-oil-can: \\f613;\n$fa-var-old-republic: \\f510;\n$fa-var-om: \\f679;\n$fa-var-opencart: \\f23d;\n$fa-var-openid: \\f19b;\n$fa-var-opera: \\f26a;\n$fa-var-optin-monster: \\f23c;\n$fa-var-osi: \\f41a;\n$fa-var-otter: \\f700;\n$fa-var-outdent: \\f03b;\n$fa-var-page4: \\f3d7;\n$fa-var-pagelines: \\f18c;\n$fa-var-pager: \\f815;\n$fa-var-paint-brush: \\f1fc;\n$fa-var-paint-roller: \\f5aa;\n$fa-var-palette: \\f53f;\n$fa-var-palfed: \\f3d8;\n$fa-var-pallet: \\f482;\n$fa-var-paper-plane: \\f1d8;\n$fa-var-paperclip: \\f0c6;\n$fa-var-parachute-box: \\f4cd;\n$fa-var-paragraph: \\f1dd;\n$fa-var-parking: \\f540;\n$fa-var-passport: \\f5ab;\n$fa-var-pastafarianism: \\f67b;\n$fa-var-paste: \\f0ea;\n$fa-var-patreon: \\f3d9;\n$fa-var-pause: \\f04c;\n$fa-var-pause-circle: \\f28b;\n$fa-var-paw: \\f1b0;\n$fa-var-paypal: \\f1ed;\n$fa-var-peace: \\f67c;\n$fa-var-pen: \\f304;\n$fa-var-pen-alt: \\f305;\n$fa-var-pen-fancy: \\f5ac;\n$fa-var-pen-nib: \\f5ad;\n$fa-var-pen-square: \\f14b;\n$fa-var-pencil-alt: \\f303;\n$fa-var-pencil-ruler: \\f5ae;\n$fa-var-penny-arcade: \\f704;\n$fa-var-people-carry: \\f4ce;\n$fa-var-pepper-hot: \\f816;\n$fa-var-percent: \\f295;\n$fa-var-percentage: \\f541;\n$fa-var-periscope: \\f3da;\n$fa-var-person-booth: \\f756;\n$fa-var-phabricator: \\f3db;\n$fa-var-phoenix-framework: \\f3dc;\n$fa-var-phoenix-squadron: \\f511;\n$fa-var-phone: \\f095;\n$fa-var-phone-alt: \\f879;\n$fa-var-phone-slash: \\f3dd;\n$fa-var-phone-square: \\f098;\n$fa-var-phone-square-alt: \\f87b;\n$fa-var-phone-volume: \\f2a0;\n$fa-var-photo-video: \\f87c;\n$fa-var-php: \\f457;\n$fa-var-pied-piper: \\f2ae;\n$fa-var-pied-piper-alt: \\f1a8;\n$fa-var-pied-piper-hat: \\f4e5;\n$fa-var-pied-piper-pp: \\f1a7;\n$fa-var-piggy-bank: \\f4d3;\n$fa-var-pills: \\f484;\n$fa-var-pinterest: \\f0d2;\n$fa-var-pinterest-p: \\f231;\n$fa-var-pinterest-square: \\f0d3;\n$fa-var-pizza-slice: \\f818;\n$fa-var-place-of-worship: \\f67f;\n$fa-var-plane: \\f072;\n$fa-var-plane-arrival: \\f5af;\n$fa-var-plane-departure: \\f5b0;\n$fa-var-play: \\f04b;\n$fa-var-play-circle: \\f144;\n$fa-var-playstation: \\f3df;\n$fa-var-plug: \\f1e6;\n$fa-var-plus: \\f067;\n$fa-var-plus-circle: \\f055;\n$fa-var-plus-square: \\f0fe;\n$fa-var-podcast: \\f2ce;\n$fa-var-poll: \\f681;\n$fa-var-poll-h: \\f682;\n$fa-var-poo: \\f2fe;\n$fa-var-poo-storm: \\f75a;\n$fa-var-poop: \\f619;\n$fa-var-portrait: \\f3e0;\n$fa-var-pound-sign: \\f154;\n$fa-var-power-off: \\f011;\n$fa-var-pray: \\f683;\n$fa-var-praying-hands: \\f684;\n$fa-var-prescription: \\f5b1;\n$fa-var-prescription-bottle: \\f485;\n$fa-var-prescription-bottle-alt: \\f486;\n$fa-var-print: \\f02f;\n$fa-var-procedures: \\f487;\n$fa-var-product-hunt: \\f288;\n$fa-var-project-diagram: \\f542;\n$fa-var-pushed: \\f3e1;\n$fa-var-puzzle-piece: \\f12e;\n$fa-var-python: \\f3e2;\n$fa-var-qq: \\f1d6;\n$fa-var-qrcode: \\f029;\n$fa-var-question: \\f128;\n$fa-var-question-circle: \\f059;\n$fa-var-quidditch: \\f458;\n$fa-var-quinscape: \\f459;\n$fa-var-quora: \\f2c4;\n$fa-var-quote-left: \\f10d;\n$fa-var-quote-right: \\f10e;\n$fa-var-quran: \\f687;\n$fa-var-r-project: \\f4f7;\n$fa-var-radiation: \\f7b9;\n$fa-var-radiation-alt: \\f7ba;\n$fa-var-rainbow: \\f75b;\n$fa-var-random: \\f074;\n$fa-var-raspberry-pi: \\f7bb;\n$fa-var-ravelry: \\f2d9;\n$fa-var-react: \\f41b;\n$fa-var-reacteurope: \\f75d;\n$fa-var-readme: \\f4d5;\n$fa-var-rebel: \\f1d0;\n$fa-var-receipt: \\f543;\n$fa-var-recycle: \\f1b8;\n$fa-var-red-river: \\f3e3;\n$fa-var-reddit: \\f1a1;\n$fa-var-reddit-alien: \\f281;\n$fa-var-reddit-square: \\f1a2;\n$fa-var-redhat: \\f7bc;\n$fa-var-redo: \\f01e;\n$fa-var-redo-alt: \\f2f9;\n$fa-var-registered: \\f25d;\n$fa-var-remove-format: \\f87d;\n$fa-var-renren: \\f18b;\n$fa-var-reply: \\f3e5;\n$fa-var-reply-all: \\f122;\n$fa-var-replyd: \\f3e6;\n$fa-var-republican: \\f75e;\n$fa-var-researchgate: \\f4f8;\n$fa-var-resolving: \\f3e7;\n$fa-var-restroom: \\f7bd;\n$fa-var-retweet: \\f079;\n$fa-var-rev: \\f5b2;\n$fa-var-ribbon: \\f4d6;\n$fa-var-ring: \\f70b;\n$fa-var-road: \\f018;\n$fa-var-robot: \\f544;\n$fa-var-rocket: \\f135;\n$fa-var-rocketchat: \\f3e8;\n$fa-var-rockrms: \\f3e9;\n$fa-var-route: \\f4d7;\n$fa-var-rss: \\f09e;\n$fa-var-rss-square: \\f143;\n$fa-var-ruble-sign: \\f158;\n$fa-var-ruler: \\f545;\n$fa-var-ruler-combined: \\f546;\n$fa-var-ruler-horizontal: \\f547;\n$fa-var-ruler-vertical: \\f548;\n$fa-var-running: \\f70c;\n$fa-var-rupee-sign: \\f156;\n$fa-var-sad-cry: \\f5b3;\n$fa-var-sad-tear: \\f5b4;\n$fa-var-safari: \\f267;\n$fa-var-salesforce: \\f83b;\n$fa-var-sass: \\f41e;\n$fa-var-satellite: \\f7bf;\n$fa-var-satellite-dish: \\f7c0;\n$fa-var-save: \\f0c7;\n$fa-var-schlix: \\f3ea;\n$fa-var-school: \\f549;\n$fa-var-screwdriver: \\f54a;\n$fa-var-scribd: \\f28a;\n$fa-var-scroll: \\f70e;\n$fa-var-sd-card: \\f7c2;\n$fa-var-search: \\f002;\n$fa-var-search-dollar: \\f688;\n$fa-var-search-location: \\f689;\n$fa-var-search-minus: \\f010;\n$fa-var-search-plus: \\f00e;\n$fa-var-searchengin: \\f3eb;\n$fa-var-seedling: \\f4d8;\n$fa-var-sellcast: \\f2da;\n$fa-var-sellsy: \\f213;\n$fa-var-server: \\f233;\n$fa-var-servicestack: \\f3ec;\n$fa-var-shapes: \\f61f;\n$fa-var-share: \\f064;\n$fa-var-share-alt: \\f1e0;\n$fa-var-share-alt-square: \\f1e1;\n$fa-var-share-square: \\f14d;\n$fa-var-shekel-sign: \\f20b;\n$fa-var-shield-alt: \\f3ed;\n$fa-var-ship: \\f21a;\n$fa-var-shipping-fast: \\f48b;\n$fa-var-shirtsinbulk: \\f214;\n$fa-var-shoe-prints: \\f54b;\n$fa-var-shopping-bag: \\f290;\n$fa-var-shopping-basket: \\f291;\n$fa-var-shopping-cart: \\f07a;\n$fa-var-shopware: \\f5b5;\n$fa-var-shower: \\f2cc;\n$fa-var-shuttle-van: \\f5b6;\n$fa-var-sign: \\f4d9;\n$fa-var-sign-in-alt: \\f2f6;\n$fa-var-sign-language: \\f2a7;\n$fa-var-sign-out-alt: \\f2f5;\n$fa-var-signal: \\f012;\n$fa-var-signature: \\f5b7;\n$fa-var-sim-card: \\f7c4;\n$fa-var-simplybuilt: \\f215;\n$fa-var-sistrix: \\f3ee;\n$fa-var-sitemap: \\f0e8;\n$fa-var-sith: \\f512;\n$fa-var-skating: \\f7c5;\n$fa-var-sketch: \\f7c6;\n$fa-var-skiing: \\f7c9;\n$fa-var-skiing-nordic: \\f7ca;\n$fa-var-skull: \\f54c;\n$fa-var-skull-crossbones: \\f714;\n$fa-var-skyatlas: \\f216;\n$fa-var-skype: \\f17e;\n$fa-var-slack: \\f198;\n$fa-var-slack-hash: \\f3ef;\n$fa-var-slash: \\f715;\n$fa-var-sleigh: \\f7cc;\n$fa-var-sliders-h: \\f1de;\n$fa-var-slideshare: \\f1e7;\n$fa-var-smile: \\f118;\n$fa-var-smile-beam: \\f5b8;\n$fa-var-smile-wink: \\f4da;\n$fa-var-smog: \\f75f;\n$fa-var-smoking: \\f48d;\n$fa-var-smoking-ban: \\f54d;\n$fa-var-sms: \\f7cd;\n$fa-var-snapchat: \\f2ab;\n$fa-var-snapchat-ghost: \\f2ac;\n$fa-var-snapchat-square: \\f2ad;\n$fa-var-snowboarding: \\f7ce;\n$fa-var-snowflake: \\f2dc;\n$fa-var-snowman: \\f7d0;\n$fa-var-snowplow: \\f7d2;\n$fa-var-socks: \\f696;\n$fa-var-solar-panel: \\f5ba;\n$fa-var-sort: \\f0dc;\n$fa-var-sort-alpha-down: \\f15d;\n$fa-var-sort-alpha-down-alt: \\f881;\n$fa-var-sort-alpha-up: \\f15e;\n$fa-var-sort-alpha-up-alt: \\f882;\n$fa-var-sort-amount-down: \\f160;\n$fa-var-sort-amount-down-alt: \\f884;\n$fa-var-sort-amount-up: \\f161;\n$fa-var-sort-amount-up-alt: \\f885;\n$fa-var-sort-down: \\f0dd;\n$fa-var-sort-numeric-down: \\f162;\n$fa-var-sort-numeric-down-alt: \\f886;\n$fa-var-sort-numeric-up: \\f163;\n$fa-var-sort-numeric-up-alt: \\f887;\n$fa-var-sort-up: \\f0de;\n$fa-var-soundcloud: \\f1be;\n$fa-var-sourcetree: \\f7d3;\n$fa-var-spa: \\f5bb;\n$fa-var-space-shuttle: \\f197;\n$fa-var-speakap: \\f3f3;\n$fa-var-speaker-deck: \\f83c;\n$fa-var-spell-check: \\f891;\n$fa-var-spider: \\f717;\n$fa-var-spinner: \\f110;\n$fa-var-splotch: \\f5bc;\n$fa-var-spotify: \\f1bc;\n$fa-var-spray-can: \\f5bd;\n$fa-var-square: \\f0c8;\n$fa-var-square-full: \\f45c;\n$fa-var-square-root-alt: \\f698;\n$fa-var-squarespace: \\f5be;\n$fa-var-stack-exchange: \\f18d;\n$fa-var-stack-overflow: \\f16c;\n$fa-var-stackpath: \\f842;\n$fa-var-stamp: \\f5bf;\n$fa-var-star: \\f005;\n$fa-var-star-and-crescent: \\f699;\n$fa-var-star-half: \\f089;\n$fa-var-star-half-alt: \\f5c0;\n$fa-var-star-of-david: \\f69a;\n$fa-var-star-of-life: \\f621;\n$fa-var-staylinked: \\f3f5;\n$fa-var-steam: \\f1b6;\n$fa-var-steam-square: \\f1b7;\n$fa-var-steam-symbol: \\f3f6;\n$fa-var-step-backward: \\f048;\n$fa-var-step-forward: \\f051;\n$fa-var-stethoscope: \\f0f1;\n$fa-var-sticker-mule: \\f3f7;\n$fa-var-sticky-note: \\f249;\n$fa-var-stop: \\f04d;\n$fa-var-stop-circle: \\f28d;\n$fa-var-stopwatch: \\f2f2;\n$fa-var-store: \\f54e;\n$fa-var-store-alt: \\f54f;\n$fa-var-strava: \\f428;\n$fa-var-stream: \\f550;\n$fa-var-street-view: \\f21d;\n$fa-var-strikethrough: \\f0cc;\n$fa-var-stripe: \\f429;\n$fa-var-stripe-s: \\f42a;\n$fa-var-stroopwafel: \\f551;\n$fa-var-studiovinari: \\f3f8;\n$fa-var-stumbleupon: \\f1a4;\n$fa-var-stumbleupon-circle: \\f1a3;\n$fa-var-subscript: \\f12c;\n$fa-var-subway: \\f239;\n$fa-var-suitcase: \\f0f2;\n$fa-var-suitcase-rolling: \\f5c1;\n$fa-var-sun: \\f185;\n$fa-var-superpowers: \\f2dd;\n$fa-var-superscript: \\f12b;\n$fa-var-supple: \\f3f9;\n$fa-var-surprise: \\f5c2;\n$fa-var-suse: \\f7d6;\n$fa-var-swatchbook: \\f5c3;\n$fa-var-swimmer: \\f5c4;\n$fa-var-swimming-pool: \\f5c5;\n$fa-var-symfony: \\f83d;\n$fa-var-synagogue: \\f69b;\n$fa-var-sync: \\f021;\n$fa-var-sync-alt: \\f2f1;\n$fa-var-syringe: \\f48e;\n$fa-var-table: \\f0ce;\n$fa-var-table-tennis: \\f45d;\n$fa-var-tablet: \\f10a;\n$fa-var-tablet-alt: \\f3fa;\n$fa-var-tablets: \\f490;\n$fa-var-tachometer-alt: \\f3fd;\n$fa-var-tag: \\f02b;\n$fa-var-tags: \\f02c;\n$fa-var-tape: \\f4db;\n$fa-var-tasks: \\f0ae;\n$fa-var-taxi: \\f1ba;\n$fa-var-teamspeak: \\f4f9;\n$fa-var-teeth: \\f62e;\n$fa-var-teeth-open: \\f62f;\n$fa-var-telegram: \\f2c6;\n$fa-var-telegram-plane: \\f3fe;\n$fa-var-temperature-high: \\f769;\n$fa-var-temperature-low: \\f76b;\n$fa-var-tencent-weibo: \\f1d5;\n$fa-var-tenge: \\f7d7;\n$fa-var-terminal: \\f120;\n$fa-var-text-height: \\f034;\n$fa-var-text-width: \\f035;\n$fa-var-th: \\f00a;\n$fa-var-th-large: \\f009;\n$fa-var-th-list: \\f00b;\n$fa-var-the-red-yeti: \\f69d;\n$fa-var-theater-masks: \\f630;\n$fa-var-themeco: \\f5c6;\n$fa-var-themeisle: \\f2b2;\n$fa-var-thermometer: \\f491;\n$fa-var-thermometer-empty: \\f2cb;\n$fa-var-thermometer-full: \\f2c7;\n$fa-var-thermometer-half: \\f2c9;\n$fa-var-thermometer-quarter: \\f2ca;\n$fa-var-thermometer-three-quarters: \\f2c8;\n$fa-var-think-peaks: \\f731;\n$fa-var-thumbs-down: \\f165;\n$fa-var-thumbs-up: \\f164;\n$fa-var-thumbtack: \\f08d;\n$fa-var-ticket-alt: \\f3ff;\n$fa-var-times: \\f00d;\n$fa-var-times-circle: \\f057;\n$fa-var-tint: \\f043;\n$fa-var-tint-slash: \\f5c7;\n$fa-var-tired: \\f5c8;\n$fa-var-toggle-off: \\f204;\n$fa-var-toggle-on: \\f205;\n$fa-var-toilet: \\f7d8;\n$fa-var-toilet-paper: \\f71e;\n$fa-var-toolbox: \\f552;\n$fa-var-tools: \\f7d9;\n$fa-var-tooth: \\f5c9;\n$fa-var-torah: \\f6a0;\n$fa-var-torii-gate: \\f6a1;\n$fa-var-tractor: \\f722;\n$fa-var-trade-federation: \\f513;\n$fa-var-trademark: \\f25c;\n$fa-var-traffic-light: \\f637;\n$fa-var-train: \\f238;\n$fa-var-tram: \\f7da;\n$fa-var-transgender: \\f224;\n$fa-var-transgender-alt: \\f225;\n$fa-var-trash: \\f1f8;\n$fa-var-trash-alt: \\f2ed;\n$fa-var-trash-restore: \\f829;\n$fa-var-trash-restore-alt: \\f82a;\n$fa-var-tree: \\f1bb;\n$fa-var-trello: \\f181;\n$fa-var-tripadvisor: \\f262;\n$fa-var-trophy: \\f091;\n$fa-var-truck: \\f0d1;\n$fa-var-truck-loading: \\f4de;\n$fa-var-truck-monster: \\f63b;\n$fa-var-truck-moving: \\f4df;\n$fa-var-truck-pickup: \\f63c;\n$fa-var-tshirt: \\f553;\n$fa-var-tty: \\f1e4;\n$fa-var-tumblr: \\f173;\n$fa-var-tumblr-square: \\f174;\n$fa-var-tv: \\f26c;\n$fa-var-twitch: \\f1e8;\n$fa-var-twitter: \\f099;\n$fa-var-twitter-square: \\f081;\n$fa-var-typo3: \\f42b;\n$fa-var-uber: \\f402;\n$fa-var-ubuntu: \\f7df;\n$fa-var-uikit: \\f403;\n$fa-var-umbrella: \\f0e9;\n$fa-var-umbrella-beach: \\f5ca;\n$fa-var-underline: \\f0cd;\n$fa-var-undo: \\f0e2;\n$fa-var-undo-alt: \\f2ea;\n$fa-var-uniregistry: \\f404;\n$fa-var-universal-access: \\f29a;\n$fa-var-university: \\f19c;\n$fa-var-unlink: \\f127;\n$fa-var-unlock: \\f09c;\n$fa-var-unlock-alt: \\f13e;\n$fa-var-untappd: \\f405;\n$fa-var-upload: \\f093;\n$fa-var-ups: \\f7e0;\n$fa-var-usb: \\f287;\n$fa-var-user: \\f007;\n$fa-var-user-alt: \\f406;\n$fa-var-user-alt-slash: \\f4fa;\n$fa-var-user-astronaut: \\f4fb;\n$fa-var-user-check: \\f4fc;\n$fa-var-user-circle: \\f2bd;\n$fa-var-user-clock: \\f4fd;\n$fa-var-user-cog: \\f4fe;\n$fa-var-user-edit: \\f4ff;\n$fa-var-user-friends: \\f500;\n$fa-var-user-graduate: \\f501;\n$fa-var-user-injured: \\f728;\n$fa-var-user-lock: \\f502;\n$fa-var-user-md: \\f0f0;\n$fa-var-user-minus: \\f503;\n$fa-var-user-ninja: \\f504;\n$fa-var-user-nurse: \\f82f;\n$fa-var-user-plus: \\f234;\n$fa-var-user-secret: \\f21b;\n$fa-var-user-shield: \\f505;\n$fa-var-user-slash: \\f506;\n$fa-var-user-tag: \\f507;\n$fa-var-user-tie: \\f508;\n$fa-var-user-times: \\f235;\n$fa-var-users: \\f0c0;\n$fa-var-users-cog: \\f509;\n$fa-var-usps: \\f7e1;\n$fa-var-ussunnah: \\f407;\n$fa-var-utensil-spoon: \\f2e5;\n$fa-var-utensils: \\f2e7;\n$fa-var-vaadin: \\f408;\n$fa-var-vector-square: \\f5cb;\n$fa-var-venus: \\f221;\n$fa-var-venus-double: \\f226;\n$fa-var-venus-mars: \\f228;\n$fa-var-viacoin: \\f237;\n$fa-var-viadeo: \\f2a9;\n$fa-var-viadeo-square: \\f2aa;\n$fa-var-vial: \\f492;\n$fa-var-vials: \\f493;\n$fa-var-viber: \\f409;\n$fa-var-video: \\f03d;\n$fa-var-video-slash: \\f4e2;\n$fa-var-vihara: \\f6a7;\n$fa-var-vimeo: \\f40a;\n$fa-var-vimeo-square: \\f194;\n$fa-var-vimeo-v: \\f27d;\n$fa-var-vine: \\f1ca;\n$fa-var-vk: \\f189;\n$fa-var-vnv: \\f40b;\n$fa-var-voicemail: \\f897;\n$fa-var-volleyball-ball: \\f45f;\n$fa-var-volume-down: \\f027;\n$fa-var-volume-mute: \\f6a9;\n$fa-var-volume-off: \\f026;\n$fa-var-volume-up: \\f028;\n$fa-var-vote-yea: \\f772;\n$fa-var-vr-cardboard: \\f729;\n$fa-var-vuejs: \\f41f;\n$fa-var-walking: \\f554;\n$fa-var-wallet: \\f555;\n$fa-var-warehouse: \\f494;\n$fa-var-water: \\f773;\n$fa-var-wave-square: \\f83e;\n$fa-var-waze: \\f83f;\n$fa-var-weebly: \\f5cc;\n$fa-var-weibo: \\f18a;\n$fa-var-weight: \\f496;\n$fa-var-weight-hanging: \\f5cd;\n$fa-var-weixin: \\f1d7;\n$fa-var-whatsapp: \\f232;\n$fa-var-whatsapp-square: \\f40c;\n$fa-var-wheelchair: \\f193;\n$fa-var-whmcs: \\f40d;\n$fa-var-wifi: \\f1eb;\n$fa-var-wikipedia-w: \\f266;\n$fa-var-wind: \\f72e;\n$fa-var-window-close: \\f410;\n$fa-var-window-maximize: \\f2d0;\n$fa-var-window-minimize: \\f2d1;\n$fa-var-window-restore: \\f2d2;\n$fa-var-windows: \\f17a;\n$fa-var-wine-bottle: \\f72f;\n$fa-var-wine-glass: \\f4e3;\n$fa-var-wine-glass-alt: \\f5ce;\n$fa-var-wix: \\f5cf;\n$fa-var-wizards-of-the-coast: \\f730;\n$fa-var-wolf-pack-battalion: \\f514;\n$fa-var-won-sign: \\f159;\n$fa-var-wordpress: \\f19a;\n$fa-var-wordpress-simple: \\f411;\n$fa-var-wpbeginner: \\f297;\n$fa-var-wpexplorer: \\f2de;\n$fa-var-wpforms: \\f298;\n$fa-var-wpressr: \\f3e4;\n$fa-var-wrench: \\f0ad;\n$fa-var-x-ray: \\f497;\n$fa-var-xbox: \\f412;\n$fa-var-xing: \\f168;\n$fa-var-xing-square: \\f169;\n$fa-var-y-combinator: \\f23b;\n$fa-var-yahoo: \\f19e;\n$fa-var-yammer: \\f840;\n$fa-var-yandex: \\f413;\n$fa-var-yandex-international: \\f414;\n$fa-var-yarn: \\f7e3;\n$fa-var-yelp: \\f1e9;\n$fa-var-yen-sign: \\f157;\n$fa-var-yin-yang: \\f6ad;\n$fa-var-yoast: \\f2b1;\n$fa-var-youtube: \\f167;\n$fa-var-youtube-square: \\f431;\n$fa-var-zhihu: \\f63f;\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/brands.scss",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import 'variables';\n\n@font-face {\n  font-family: 'Font Awesome 5 Brands';\n  font-style: normal;\n  font-weight: normal;\n  font-display: $fa-font-display;\n  src: url('#{$fa-font-path}/fa-brands-400.eot');\n  src: url('#{$fa-font-path}/fa-brands-400.eot?#iefix') format('embedded-opentype'),\n  url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),\n  url('#{$fa-font-path}/fa-brands-400.woff') format('woff'),\n  url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype'),\n  url('#{$fa-font-path}/fa-brands-400.svg#fontawesome') format('svg');\n}\n\n.fab {\n  font-family: 'Font Awesome 5 Brands';\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/fontawesome.scss",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import 'variables';\n@import 'mixins';\n@import 'core';\n@import 'larger';\n@import 'fixed-width';\n@import 'list';\n@import 'bordered-pulled';\n@import 'animated';\n@import 'rotated-flipped';\n@import 'stacked';\n@import 'icons';\n@import 'screen-reader';\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/regular.scss",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import 'variables';\n\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 400;\n  font-display: $fa-font-display;\n  src: url('#{$fa-font-path}/fa-regular-400.eot');\n  src: url('#{$fa-font-path}/fa-regular-400.eot?#iefix') format('embedded-opentype'),\n  url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),\n  url('#{$fa-font-path}/fa-regular-400.woff') format('woff'),\n  url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype'),\n  url('#{$fa-font-path}/fa-regular-400.svg#fontawesome') format('svg');\n}\n\n.far {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 400;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/solid.scss",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import 'variables';\n\n@font-face {\n  font-family: 'Font Awesome 5 Free';\n  font-style: normal;\n  font-weight: 900;\n  font-display: $fa-font-display;\n  src: url('#{$fa-font-path}/fa-solid-900.eot');\n  src: url('#{$fa-font-path}/fa-solid-900.eot?#iefix') format('embedded-opentype'),\n  url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),\n  url('#{$fa-font-path}/fa-solid-900.woff') format('woff'),\n  url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype'),\n  url('#{$fa-font-path}/fa-solid-900.svg#fontawesome') format('svg');\n}\n\n.fa,\n.fas {\n  font-family: 'Font Awesome 5 Free';\n  font-weight: 900;\n}\n"
  },
  {
    "path": "public/static/home/fontawesome-free-5.10.1-web/scss/v4-shims.scss",
    "content": "/*!\n * Font Awesome Free 5.10.1 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n@import 'variables';\n@import 'shims';\n"
  },
  {
    "path": "public/static/home/live2d/assets/live2d.js",
    "content": "!function(t){function i(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,i),o.l=!0,o.exports}var e={};i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p=\"\",i(i.s=4)}([function(t,i,e){\"use strict\";function r(){this.live2DModel=null,this.modelMatrix=null,this.eyeBlink=null,this.physics=null,this.pose=null,this.debugMode=!1,this.initialized=!1,this.updating=!1,this.alpha=1,this.accAlpha=0,this.lipSync=!1,this.lipSyncValue=0,this.accelX=0,this.accelY=0,this.accelZ=0,this.dragX=0,this.dragY=0,this.startTimeMSec=null,this.mainMotionManager=new h,this.expressionManager=new h,this.motions={},this.expressions={},this.isTexLoaded=!1}function o(){AMotion.prototype.constructor.call(this),this.paramList=new Array}function n(){this.id=\"\",this.type=-1,this.value=null}function s(){this.nextBlinkTime=null,this.stateStartTime=null,this.blinkIntervalMsec=null,this.eyeState=g.STATE_FIRST,this.blinkIntervalMsec=4e3,this.closingMotionMsec=100,this.closedMotionMsec=50,this.openingMotionMsec=150,this.closeIfZero=!0,this.eyeID_L=\"PARAM_EYE_L_OPEN\",this.eyeID_R=\"PARAM_EYE_R_OPEN\"}function _(){this.tr=new Float32Array(16),this.identity()}function a(t,i){_.prototype.constructor.call(this),this.width=t,this.height=i}function h(){MotionQueueManager.prototype.constructor.call(this),this.currentPriority=null,this.reservePriority=null,this.super=MotionQueueManager.prototype}function l(){this.physicsList=new Array,this.startTimeMSec=UtSystem.getUserTimeMSec()}function $(){this.lastTime=0,this.lastModel=null,this.partsGroups=new Array}function u(t){this.paramIndex=-1,this.partsIndex=-1,this.link=null,this.id=t}function p(){this.EPSILON=.01,this.faceTargetX=0,this.faceTargetY=0,this.faceX=0,this.faceY=0,this.faceVX=0,this.faceVY=0,this.lastTimeSec=0}function f(){_.prototype.constructor.call(this),this.screenLeft=null,this.screenRight=null,this.screenTop=null,this.screenBottom=null,this.maxLeft=null,this.maxRight=null,this.maxTop=null,this.maxBottom=null,this.max=Number.MAX_VALUE,this.min=0}function c(){}var d=0;r.prototype.getModelMatrix=function(){return this.modelMatrix},r.prototype.setAlpha=function(t){t>.999&&(t=1),t<.001&&(t=0),this.alpha=t},r.prototype.getAlpha=function(){return this.alpha},r.prototype.isInitialized=function(){return this.initialized},r.prototype.setInitialized=function(t){this.initialized=t},r.prototype.isUpdating=function(){return this.updating},r.prototype.setUpdating=function(t){this.updating=t},r.prototype.getLive2DModel=function(){return this.live2DModel},r.prototype.setLipSync=function(t){this.lipSync=t},r.prototype.setLipSyncValue=function(t){this.lipSyncValue=t},r.prototype.setAccel=function(t,i,e){this.accelX=t,this.accelY=i,this.accelZ=e},r.prototype.setDrag=function(t,i){this.dragX=t,this.dragY=i},r.prototype.getMainMotionManager=function(){return this.mainMotionManager},r.prototype.getExpressionManager=function(){return this.expressionManager},r.prototype.loadModelData=function(t,i){var e=c.getPlatformManager();this.debugMode&&e.log(\"Load model : \"+t);var r=this;e.loadLive2DModel(t,function(t){if(r.live2DModel=t,r.live2DModel.saveParam(),0!=Live2D.getError())return void console.error(\"Error : Failed to loadModelData().\");r.modelMatrix=new a(r.live2DModel.getCanvasWidth(),r.live2DModel.getCanvasHeight()),r.modelMatrix.setWidth(2),r.modelMatrix.setCenterPosition(0,0),i(r.live2DModel)})},r.prototype.loadTexture=function(t,i,e){d++;var r=c.getPlatformManager();this.debugMode&&r.log(\"Load Texture : \"+i);var o=this;r.loadTexture(this.live2DModel,t,i,function(){d--,0==d&&(o.isTexLoaded=!0),\"function\"==typeof e&&e()})},r.prototype.loadMotion=function(t,i,e){var r=c.getPlatformManager();this.debugMode&&r.log(\"Load Motion : \"+i);var o=null,n=this;r.loadBytes(i,function(i){o=Live2DMotion.loadMotion(i),null!=t&&(n.motions[t]=o),e(o)})},r.prototype.loadExpression=function(t,i,e){var r=c.getPlatformManager();this.debugMode&&r.log(\"Load Expression : \"+i);var n=this;r.loadBytes(i,function(i){null!=t&&(n.expressions[t]=o.loadJson(i)),\"function\"==typeof e&&e()})},r.prototype.loadPose=function(t,i){var e=c.getPlatformManager();this.debugMode&&e.log(\"Load Pose : \"+t);var r=this;try{e.loadBytes(t,function(t){r.pose=$.load(t),\"function\"==typeof i&&i()})}catch(t){console.warn(t)}},r.prototype.loadPhysics=function(t){var i=c.getPlatformManager();this.debugMode&&i.log(\"Load Physics : \"+t);var e=this;try{i.loadBytes(t,function(t){e.physics=l.load(t)})}catch(t){console.warn(t)}},r.prototype.hitTestSimple=function(t,i,e){if(null===this.live2DModel)return!1;var r=this.live2DModel.getDrawDataIndex(t);if(r<0)return!1;for(var o=this.live2DModel.getTransformedPoints(r),n=this.live2DModel.getCanvasWidth(),s=0,_=this.live2DModel.getCanvasHeight(),a=0,h=0;h<o.length;h+=2){var l=o[h],$=o[h+1];l<n&&(n=l),l>s&&(s=l),$<_&&(_=$),$>a&&(a=$)}var u=this.modelMatrix.invertTransformX(i),p=this.modelMatrix.invertTransformY(e);return n<=u&&u<=s&&_<=p&&p<=a},r.prototype.hitTestSimpleCustom=function(t,i,e,r){return null!==this.live2DModel&&(e>=t[0]&&e<=i[0]&&r<=t[1]&&r>=i[1])},o.prototype=new AMotion,o.EXPRESSION_DEFAULT=\"DEFAULT\",o.TYPE_SET=0,o.TYPE_ADD=1,o.TYPE_MULT=2,o.loadJson=function(t){var i=new o,e=c.getPlatformManager(),r=e.jsonParseFromBytes(t);if(i.setFadeIn(parseInt(r.fade_in)>0?parseInt(r.fade_in):1e3),i.setFadeOut(parseInt(r.fade_out)>0?parseInt(r.fade_out):1e3),null==r.params)return i;var s=r.params,_=s.length;i.paramList=[];for(var a=0;a<_;a++){var h=s[a],l=h.id.toString(),$=parseFloat(h.val),u=o.TYPE_ADD,p=null!=h.calc?h.calc.toString():\"add\";if((u=\"add\"===p?o.TYPE_ADD:\"mult\"===p?o.TYPE_MULT:\"set\"===p?o.TYPE_SET:o.TYPE_ADD)==o.TYPE_ADD){var f=null==h.def?0:parseFloat(h.def);$-=f}else if(u==o.TYPE_MULT){var f=null==h.def?1:parseFloat(h.def);0==f&&(f=1),$/=f}var d=new n;d.id=l,d.type=u,d.value=$,i.paramList.push(d)}return i},o.prototype.updateParamExe=function(t,i,e,r){for(var n=this.paramList.length-1;n>=0;--n){var s=this.paramList[n];s.type==o.TYPE_ADD?t.addToParamFloat(s.id,s.value,e):s.type==o.TYPE_MULT?t.multParamFloat(s.id,s.value,e):s.type==o.TYPE_SET&&t.setParamFloat(s.id,s.value,e)}},s.prototype.calcNextBlink=function(){return UtSystem.getUserTimeMSec()+Math.random()*(2*this.blinkIntervalMsec-1)},s.prototype.setInterval=function(t){this.blinkIntervalMsec=t},s.prototype.setEyeMotion=function(t,i,e){this.closingMotionMsec=t,this.closedMotionMsec=i,this.openingMotionMsec=e},s.prototype.updateParam=function(t){var i,e=UtSystem.getUserTimeMSec(),r=0;switch(this.eyeState){case g.STATE_CLOSING:r=(e-this.stateStartTime)/this.closingMotionMsec,r>=1&&(r=1,this.eyeState=g.STATE_CLOSED,this.stateStartTime=e),i=1-r;break;case g.STATE_CLOSED:r=(e-this.stateStartTime)/this.closedMotionMsec,r>=1&&(this.eyeState=g.STATE_OPENING,this.stateStartTime=e),i=0;break;case g.STATE_OPENING:r=(e-this.stateStartTime)/this.openingMotionMsec,r>=1&&(r=1,this.eyeState=g.STATE_INTERVAL,this.nextBlinkTime=this.calcNextBlink()),i=r;break;case g.STATE_INTERVAL:this.nextBlinkTime<e&&(this.eyeState=g.STATE_CLOSING,this.stateStartTime=e),i=1;break;case g.STATE_FIRST:default:this.eyeState=g.STATE_INTERVAL,this.nextBlinkTime=this.calcNextBlink(),i=1}this.closeIfZero||(i=-i),t.setParamFloat(this.eyeID_L,i),t.setParamFloat(this.eyeID_R,i)};var g=function(){};g.STATE_FIRST=\"STATE_FIRST\",g.STATE_INTERVAL=\"STATE_INTERVAL\",g.STATE_CLOSING=\"STATE_CLOSING\",g.STATE_CLOSED=\"STATE_CLOSED\",g.STATE_OPENING=\"STATE_OPENING\",_.mul=function(t,i,e){var r,o,n,s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(r=0;r<4;r++)for(o=0;o<4;o++)for(n=0;n<4;n++)s[r+4*o]+=t[r+4*n]*i[n+4*o];for(r=0;r<16;r++)e[r]=s[r]},_.prototype.identity=function(){for(var t=0;t<16;t++)this.tr[t]=t%5==0?1:0},_.prototype.getArray=function(){return this.tr},_.prototype.getCopyMatrix=function(){return new Float32Array(this.tr)},_.prototype.setMatrix=function(t){if(null!=this.tr&&this.tr.length==this.tr.length)for(var i=0;i<16;i++)this.tr[i]=t[i]},_.prototype.getScaleX=function(){return this.tr[0]},_.prototype.getScaleY=function(){return this.tr[5]},_.prototype.transformX=function(t){return this.tr[0]*t+this.tr[12]},_.prototype.transformY=function(t){return this.tr[5]*t+this.tr[13]},_.prototype.invertTransformX=function(t){return(t-this.tr[12])/this.tr[0]},_.prototype.invertTransformY=function(t){return(t-this.tr[13])/this.tr[5]},_.prototype.multTranslate=function(t,i){var e=[1,0,0,0,0,1,0,0,0,0,1,0,t,i,0,1];_.mul(e,this.tr,this.tr)},_.prototype.translate=function(t,i){this.tr[12]=t,this.tr[13]=i},_.prototype.translateX=function(t){this.tr[12]=t},_.prototype.translateY=function(t){this.tr[13]=t},_.prototype.multScale=function(t,i){var e=[t,0,0,0,0,i,0,0,0,0,1,0,0,0,0,1];_.mul(e,this.tr,this.tr)},_.prototype.scale=function(t,i){this.tr[0]=t,this.tr[5]=i},a.prototype=new _,a.prototype.setPosition=function(t,i){this.translate(t,i)},a.prototype.setCenterPosition=function(t,i){var e=this.width*this.getScaleX(),r=this.height*this.getScaleY();this.translate(t-e/2,i-r/2)},a.prototype.top=function(t){this.setY(t)},a.prototype.bottom=function(t){var i=this.height*this.getScaleY();this.translateY(t-i)},a.prototype.left=function(t){this.setX(t)},a.prototype.right=function(t){var i=this.width*this.getScaleX();this.translateX(t-i)},a.prototype.centerX=function(t){var i=this.width*this.getScaleX();this.translateX(t-i/2)},a.prototype.centerY=function(t){var i=this.height*this.getScaleY();this.translateY(t-i/2)},a.prototype.setX=function(t){this.translateX(t)},a.prototype.setY=function(t){this.translateY(t)},a.prototype.setHeight=function(t){var i=t/this.height,e=-i;this.scale(i,e)},a.prototype.setWidth=function(t){var i=t/this.width,e=-i;this.scale(i,e)},h.prototype=new MotionQueueManager,h.prototype.getCurrentPriority=function(){return this.currentPriority},h.prototype.getReservePriority=function(){return this.reservePriority},h.prototype.reserveMotion=function(t){return!(this.reservePriority>=t)&&(!(this.currentPriority>=t)&&(this.reservePriority=t,!0))},h.prototype.setReservePriority=function(t){this.reservePriority=t},h.prototype.updateParam=function(t){var i=MotionQueueManager.prototype.updateParam.call(this,t);return this.isFinished()&&(this.currentPriority=0),i},h.prototype.startMotionPrio=function(t,i){return i==this.reservePriority&&(this.reservePriority=0),this.currentPriority=i,this.startMotion(t,!1)},l.load=function(t){for(var i=new l,e=c.getPlatformManager(),r=e.jsonParseFromBytes(t),o=r.physics_hair,n=o.length,s=0;s<n;s++){var _=o[s],a=new PhysicsHair,h=_.setup,$=parseFloat(h.length),u=parseFloat(h.regist),p=parseFloat(h.mass);a.setup($,u,p);for(var f=_.src,d=f.length,g=0;g<d;g++){var y=f[g],m=y.id,T=PhysicsHair.Src.SRC_TO_X,P=y.ptype;\"x\"===P?T=PhysicsHair.Src.SRC_TO_X:\"y\"===P?T=PhysicsHair.Src.SRC_TO_Y:\"angle\"===P?T=PhysicsHair.Src.SRC_TO_G_ANGLE:UtDebug.error(\"live2d\",\"Invalid parameter:PhysicsHair.Src\");var S=parseFloat(y.scale),v=parseFloat(y.weight);a.addSrcParam(T,m,S,v)}for(var L=_.targets,M=L.length,g=0;g<M;g++){var E=L[g],m=E.id,T=PhysicsHair.Target.TARGET_FROM_ANGLE,P=E.ptype;\"angle\"===P?T=PhysicsHair.Target.TARGET_FROM_ANGLE:\"angle_v\"===P?T=PhysicsHair.Target.TARGET_FROM_ANGLE_V:UtDebug.error(\"live2d\",\"Invalid parameter:PhysicsHair.Target\");var S=parseFloat(E.scale),v=parseFloat(E.weight);a.addTargetParam(T,m,S,v)}i.physicsList.push(a)}return i},l.prototype.updateParam=function(t){for(var i=UtSystem.getUserTimeMSec()-this.startTimeMSec,e=0;e<this.physicsList.length;e++)this.physicsList[e].update(t,i)},$.load=function(t){for(var i=new $,e=c.getPlatformManager(),r=e.jsonParseFromBytes(t),o=r.parts_visible,n=o.length,s=0;s<n;s++){for(var _=o[s],a=_.group,h=a.length,l=new Array,p=0;p<h;p++){var f=a[p],d=new u(f.id);if(l[p]=d,null!=f.link){var g=f.link,y=g.length;d.link=new Array;for(var m=0;m<y;m++){var T=new u(g[m]);d.link.push(T)}}}i.partsGroups.push(l)}return i},$.prototype.updateParam=function(t){if(null!=t){t!=this.lastModel&&this.initParam(t),this.lastModel=t;var i=UtSystem.getUserTimeMSec(),e=0==this.lastTime?0:(i-this.lastTime)/1e3;this.lastTime=i,e<0&&(e=0);for(var r=0;r<this.partsGroups.length;r++)this.normalizePartsOpacityGroup(t,this.partsGroups[r],e),this.copyOpacityOtherParts(t,this.partsGroups[r])}},$.prototype.initParam=function(t){if(null!=t)for(var i=0;i<this.partsGroups.length;i++)for(var e=this.partsGroups[i],r=0;r<e.length;r++){e[r].initIndex(t);var o=e[r].partsIndex,n=e[r].paramIndex;if(!(o<0)){var s=0!=t.getParamFloat(n);if(t.setPartsOpacity(o,s?1:0),t.setParamFloat(n,s?1:0),null!=e[r].link)for(var _=0;_<e[r].link.length;_++)e[r].link[_].initIndex(t)}}},$.prototype.normalizePartsOpacityGroup=function(t,i,e){for(var r=-1,o=1,n=0;n<i.length;n++){var s=i[n].partsIndex,_=i[n].paramIndex;if(!(s<0)&&0!=t.getParamFloat(_)){if(r>=0)break;r=n,o=t.getPartsOpacity(s),o+=e/.5,o>1&&(o=1)}}r<0&&(r=0,o=1);for(var n=0;n<i.length;n++){var s=i[n].partsIndex;if(!(s<0))if(r==n)t.setPartsOpacity(s,o);else{var a,h=t.getPartsOpacity(s);a=o<.5?-.5*o/.5+1:.5*(1-o)/.5;var l=(1-a)*(1-o);l>.15&&(a=1-.15/(1-o)),h>a&&(h=a),t.setPartsOpacity(s,h)}}},$.prototype.copyOpacityOtherParts=function(t,i){for(var e=0;e<i.length;e++){var r=i[e];if(null!=r.link&&!(r.partsIndex<0))for(var o=t.getPartsOpacity(r.partsIndex),n=0;n<r.link.length;n++){var s=r.link[n];s.partsIndex<0||t.setPartsOpacity(s.partsIndex,o)}}},u.prototype.initIndex=function(t){this.paramIndex=t.getParamIndex(\"VISIBLE:\"+this.id),this.partsIndex=t.getPartsDataIndex(PartsDataID.getID(this.id)),t.setParamFloat(this.paramIndex,1)},p.FRAME_RATE=30,p.prototype.setPoint=function(t,i){this.faceTargetX=t,this.faceTargetY=i},p.prototype.getX=function(){return this.faceX},p.prototype.getY=function(){return this.faceY},p.prototype.update=function(){var t=40/7.5/p.FRAME_RATE;if(0==this.lastTimeSec)return void(this.lastTimeSec=UtSystem.getUserTimeMSec());var i=UtSystem.getUserTimeMSec(),e=(i-this.lastTimeSec)*p.FRAME_RATE/1e3;this.lastTimeSec=i;var r=.15*p.FRAME_RATE,o=e*t/r,n=this.faceTargetX-this.faceX,s=this.faceTargetY-this.faceY;if(!(Math.abs(n)<=this.EPSILON&&Math.abs(s)<=this.EPSILON)){var _=Math.sqrt(n*n+s*s),a=t*n/_,h=t*s/_,l=a-this.faceVX,$=h-this.faceVY,u=Math.sqrt(l*l+$*$);(u<-o||u>o)&&(l*=o/u,$*=o/u,u=o),this.faceVX+=l,this.faceVY+=$;var f=.5*(Math.sqrt(o*o+16*o*_-8*o*_)-o),c=Math.sqrt(this.faceVX*this.faceVX+this.faceVY*this.faceVY);c>f&&(this.faceVX*=f/c,this.faceVY*=f/c),this.faceX+=this.faceVX,this.faceY+=this.faceVY}},f.prototype=new _,f.prototype.getMaxScale=function(){return this.max},f.prototype.getMinScale=function(){return this.min},f.prototype.setMaxScale=function(t){this.max=t},f.prototype.setMinScale=function(t){this.min=t},f.prototype.isMaxScale=function(){return this.getScaleX()==this.max},f.prototype.isMinScale=function(){return this.getScaleX()==this.min},f.prototype.adjustTranslate=function(t,i){this.tr[0]*this.maxLeft+(this.tr[12]+t)>this.screenLeft&&(t=this.screenLeft-this.tr[0]*this.maxLeft-this.tr[12]),this.tr[0]*this.maxRight+(this.tr[12]+t)<this.screenRight&&(t=this.screenRight-this.tr[0]*this.maxRight-this.tr[12]),this.tr[5]*this.maxTop+(this.tr[13]+i)<this.screenTop&&(i=this.screenTop-this.tr[5]*this.maxTop-this.tr[13]),this.tr[5]*this.maxBottom+(this.tr[13]+i)>this.screenBottom&&(i=this.screenBottom-this.tr[5]*this.maxBottom-this.tr[13]);var e=[1,0,0,0,0,1,0,0,0,0,1,0,t,i,0,1];_.mul(e,this.tr,this.tr)},f.prototype.adjustScale=function(t,i,e){var r=e*this.tr[0];r<this.min?this.tr[0]>0&&(e=this.min/this.tr[0]):r>this.max&&this.tr[0]>0&&(e=this.max/this.tr[0]);var o=[1,0,0,0,0,1,0,0,0,0,1,0,t,i,0,1],n=[e,0,0,0,0,e,0,0,0,0,1,0,0,0,0,1],s=[1,0,0,0,0,1,0,0,0,0,1,0,-t,-i,0,1];_.mul(s,this.tr,this.tr),_.mul(n,this.tr,this.tr),_.mul(o,this.tr,this.tr)},f.prototype.setScreenRect=function(t,i,e,r){this.screenLeft=t,this.screenRight=i,this.screenTop=r,this.screenBottom=e},f.prototype.setMaxScreenRect=function(t,i,e,r){this.maxLeft=t,this.maxRight=i,this.maxTop=r,this.maxBottom=e},f.prototype.getScreenLeft=function(){return this.screenLeft},f.prototype.getScreenRight=function(){return this.screenRight},f.prototype.getScreenBottom=function(){return this.screenBottom},f.prototype.getScreenTop=function(){return this.screenTop},f.prototype.getMaxLeft=function(){return this.maxLeft},f.prototype.getMaxRight=function(){return this.maxRight},f.prototype.getMaxBottom=function(){return this.maxBottom},f.prototype.getMaxTop=function(){return this.maxTop},c.platformManager=null,c.getPlatformManager=function(){return c.platformManager},c.setPlatformManager=function(t){c.platformManager=t},t.exports={L2DTargetPoint:p,Live2DFramework:c,L2DViewMatrix:f,L2DPose:$,L2DPartsParam:u,L2DPhysics:l,L2DMotionManager:h,L2DModelMatrix:a,L2DMatrix44:_,EYE_STATE:g,L2DEyeBlink:s,L2DExpressionParam:n,L2DExpressionMotion:o,L2DBaseModel:r}},function(t,i,e){\"use strict\";var r={DEBUG_LOG:!1,DEBUG_MOUSE_LOG:!1,DEBUG_DRAW_HIT_AREA:!1,DEBUG_DRAW_ALPHA_MODEL:!1,VIEW_MAX_SCALE:2,VIEW_MIN_SCALE:.8,VIEW_LOGICAL_LEFT:-1,VIEW_LOGICAL_RIGHT:1,VIEW_LOGICAL_MAX_LEFT:-2,VIEW_LOGICAL_MAX_RIGHT:2,VIEW_LOGICAL_MAX_BOTTOM:-2,VIEW_LOGICAL_MAX_TOP:2,PRIORITY_NONE:0,PRIORITY_IDLE:1,PRIORITY_SLEEPY:2,PRIORITY_NORMAL:3,PRIORITY_FORCE:4,MOTION_GROUP_IDLE:\"idle\",MOTION_GROUP_SLEEPY:\"sleepy\",MOTION_GROUP_TAP_BODY:\"tap_body\",MOTION_GROUP_FLICK_HEAD:\"flick_head\",MOTION_GROUP_PINCH_IN:\"pinch_in\",MOTION_GROUP_PINCH_OUT:\"pinch_out\",MOTION_GROUP_SHAKE:\"shake\",HIT_AREA_HEAD:\"head\",HIT_AREA_BODY:\"body\"};t.exports=r},function(t,i,e){\"use strict\";function r(t){n=t}function o(){return n}Object.defineProperty(i,\"__esModule\",{value:!0}),i.setContext=r,i.getContext=o;var n=void 0},function(t,i,e){\"use strict\";function r(){}r.matrixStack=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],r.depth=0,r.currentMatrix=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],r.tmp=new Array(16),r.reset=function(){this.depth=0},r.loadIdentity=function(){for(var t=0;t<16;t++)this.currentMatrix[t]=t%5==0?1:0},r.push=function(){var t=(this.depth,16*(this.depth+1));this.matrixStack.length<t+16&&(this.matrixStack.length=t+16);for(var i=0;i<16;i++)this.matrixStack[t+i]=this.currentMatrix[i];this.depth++},r.pop=function(){--this.depth<0&&(myError(\"Invalid matrix stack.\"),this.depth=0);for(var t=16*this.depth,i=0;i<16;i++)this.currentMatrix[i]=this.matrixStack[t+i]},r.getMatrix=function(){return this.currentMatrix},r.multMatrix=function(t){var i,e,r;for(i=0;i<16;i++)this.tmp[i]=0;for(i=0;i<4;i++)for(e=0;e<4;e++)for(r=0;r<4;r++)this.tmp[i+4*e]+=this.currentMatrix[i+4*r]*t[r+4*e];for(i=0;i<16;i++)this.currentMatrix[i]=this.tmp[i]},t.exports=r},function(t,i,e){t.exports=e(5)},function(t,i,e){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(t){C=document.getElementById(t),C.addEventListener&&(window.addEventListener(\"click\",g),window.addEventListener(\"mousedown\",g),window.addEventListener(\"mousemove\",g),window.addEventListener(\"mouseup\",g),document.addEventListener(\"mouseout\",g),window.addEventListener(\"touchstart\",y),window.addEventListener(\"touchend\",y),window.addEventListener(\"touchmove\",y))}function n(t){var i=C.width,e=C.height;N=new M.L2DTargetPoint;var r=e/i,o=w.default.VIEW_LOGICAL_LEFT,n=w.default.VIEW_LOGICAL_RIGHT,_=-r,h=r;if(window.Live2D.captureFrame=!1,B=new M.L2DViewMatrix,B.setScreenRect(o,n,_,h),B.setMaxScreenRect(w.default.VIEW_LOGICAL_MAX_LEFT,w.default.VIEW_LOGICAL_MAX_RIGHT,w.default.VIEW_LOGICAL_MAX_BOTTOM,w.default.VIEW_LOGICAL_MAX_TOP),B.setMaxScale(w.default.VIEW_MAX_SCALE),B.setMinScale(w.default.VIEW_MIN_SCALE),U=new M.L2DMatrix44,U.multScale(1,i/e),G=new M.L2DMatrix44,G.multTranslate(-i/2,-e/2),G.multScale(2/i,-2/i),F=v(),(0,D.setContext)(F),!F)return console.error(\"Failed to create WebGL context.\"),void(window.WebGLRenderingContext&&console.error(\"Your browser don't support WebGL, check https://get.webgl.org/ for futher information.\"));window.Live2D.setGL(F),F.clearColor(0,0,0,0),a(t),s()}function s(){b||(b=!0,function t(){_();var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;if(window.Live2D.captureFrame){window.Live2D.captureFrame=!1;var e=document.createElement(\"a\");document.body.appendChild(e),e.setAttribute(\"type\",\"hidden\"),e.href=C.toDataURL(),e.download=window.Live2D.captureName||\"live2d.png\",e.click()}i(t,C)}())}function _(){O.default.reset(),O.default.loadIdentity(),N.update(),R.setDrag(N.getX(),N.getY()),F.clear(F.COLOR_BUFFER_BIT),O.default.multMatrix(U.getArray()),O.default.multMatrix(B.getArray()),O.default.push();for(var t=0;t<R.numModels();t++){var i=R.getModel(t);if(null==i)return;i.initialized&&!i.updating&&(i.update(),i.draw(F))}O.default.pop()}function a(t){R.reloadFlg=!0,R.count++,R.changeModel(F,t)}function h(t,i){return t.x*i.x+t.y*i.y}function l(t,i){var e=Math.sqrt(t*t+i*i);return{x:t/e,y:i/e}}function $(t,i,e){function r(t,i){return 180*Math.acos(h({x:0,y:1},l(t,i)))/Math.PI}if(i.x<e.left+e.width&&i.y<e.top+e.height&&i.x>e.left&&i.y>e.top)return i;var o=t.x-i.x,n=t.y-i.y,s=r(o,n);i.x<t.x&&(s=360-s);var _=360-r(e.left-t.x,-1*(e.top-t.y)),a=360-r(e.left-t.x,-1*(e.top+e.height-t.y)),$=r(e.left+e.width-t.x,-1*(e.top-t.y)),u=r(e.left+e.width-t.x,-1*(e.top+e.height-t.y)),p=n/o,f={};if(s<$){var c=e.top-t.y,d=c/p;f={y:t.y+c,x:t.x+d}}else if(s<u){var g=e.left+e.width-t.x,y=g*p;f={y:t.y+y,x:t.x+g}}else if(s<a){var m=e.top+e.height-t.y,T=m/p;f={y:t.y+m,x:t.x+T}}else if(s<_){var P=t.x-e.left,S=P*p;f={y:t.y-S,x:t.x-P}}else{var v=e.top-t.y,L=v/p;f={y:t.y+v,x:t.x+L}}return f}function u(t){Y=!0;var i=C.getBoundingClientRect(),e=P(t.clientX-i.left),r=S(t.clientY-i.top),o=$({x:i.left+i.width/2,y:i.top+i.height*X},{x:t.clientX,y:t.clientY},i),n=m(o.x-i.left),s=T(o.y-i.top);w.default.DEBUG_MOUSE_LOG&&console.log(\"onMouseMove device( x:\"+t.clientX+\" y:\"+t.clientY+\" ) view( x:\"+n+\" y:\"+s+\")\"),k=e,V=r,N.setPoint(n,s)}function p(t){Y=!0;var i=C.getBoundingClientRect(),e=P(t.clientX-i.left),r=S(t.clientY-i.top),o=$({x:i.left+i.width/2,y:i.top+i.height*X},{x:t.clientX,y:t.clientY},i),n=m(o.x-i.left),s=T(o.y-i.top);w.default.DEBUG_MOUSE_LOG&&console.log(\"onMouseDown device( x:\"+t.clientX+\" y:\"+t.clientY+\" ) view( x:\"+n+\" y:\"+s+\")\"),k=e,V=r,R.tapEvent(n,s)}function f(t){var i=C.getBoundingClientRect(),e=P(t.clientX-i.left),r=S(t.clientY-i.top),o=$({x:i.left+i.width/2,y:i.top+i.height*X},{x:t.clientX,y:t.clientY},i),n=m(o.x-i.left),s=T(o.y-i.top);w.default.DEBUG_MOUSE_LOG&&console.log(\"onMouseMove device( x:\"+t.clientX+\" y:\"+t.clientY+\" ) view( x:\"+n+\" y:\"+s+\")\"),Y&&(k=e,V=r,N.setPoint(n,s))}function c(){Y&&(Y=!1),N.setPoint(0,0)}function d(){w.default.DEBUG_LOG&&console.log(\"Set Session Storage.\"),sessionStorage.setItem(\"Sleepy\",\"1\")}function g(t){if(\"mousewheel\"==t.type);else if(\"mousedown\"==t.type)p(t);else if(\"mousemove\"==t.type){var i=sessionStorage.getItem(\"Sleepy\");\"1\"===i&&sessionStorage.setItem(\"Sleepy\",\"0\"),u(t)}else if(\"mouseup\"==t.type){if(\"button\"in t&&0!=t.button)return}else if(\"mouseout\"==t.type){w.default.DEBUG_LOG&&console.log(\"Mouse out Window.\"),c();var e=sessionStorage.getItem(\"SleepyTimer\");window.clearTimeout(e),e=window.setTimeout(d,5e4),sessionStorage.setItem(\"SleepyTimer\",e)}}function y(t){var i=t.touches[0];\"touchstart\"==t.type?1==t.touches.length&&u(i):\"touchmove\"==t.type?f(i):\"touchend\"==t.type&&c()}function m(t){var i=G.transformX(t);return B.invertTransformX(i)}function T(t){var i=G.transformY(t);return B.invertTransformY(i)}function P(t){return G.transformX(t)}function S(t){return G.transformY(t)}function v(){for(var t=[\"webgl\",\"experimental-webgl\",\"webkit-3d\",\"moz-webgl\"],i=0;i<t.length;i++)try{var e=C.getContext(t[i],{premultipliedAlpha:!0});if(e)return e}catch(t){}return null}function L(t,i,e){X=void 0===e?.5:e,o(t),n(i)}e(6);var M=e(0),E=e(8),A=r(E),I=e(1),w=r(I),x=e(3),O=r(x),D=e(2),R=(window.navigator.platform.toLowerCase(),new A.default),b=!1,F=null,C=null,N=null,B=null,U=null,G=null,Y=!1,k=0,V=0,X=.5;window.loadlive2d=L},function(t,i,e){\"use strict\";(function(t){!function(){function i(){At||(this._$MT=null,this._$5S=null,this._$NP=0,i._$42++,this._$5S=new Y(this))}function e(t){if(!At){this.clipContextList=new Array,this.glcontext=t.gl,this.dp_webgl=t,this.curFrameNo=0,this.firstError_clipInNotUpdate=!0,this.colorBuffer=0,this.isInitGLFBFunc=!1,this.tmpBoundsOnModel=new S,at.glContext.length>at.frameBuffers.length&&(this.curFrameNo=this.getMaskRenderTexture()),this.tmpModelToViewMatrix=new R,this.tmpMatrix2=new R,this.tmpMatrixForMask=new R,this.tmpMatrixForDraw=new R,this.CHANNEL_COLORS=new Array;var i=new A;i=new A,i.r=0,i.g=0,i.b=0,i.a=1,this.CHANNEL_COLORS.push(i),i=new A,i.r=1,i.g=0,i.b=0,i.a=0,this.CHANNEL_COLORS.push(i),i=new A,i.r=0,i.g=1,i.b=0,i.a=0,this.CHANNEL_COLORS.push(i),i=new A,i.r=0,i.g=0,i.b=1,i.a=0,this.CHANNEL_COLORS.push(i);for(var e=0;e<this.CHANNEL_COLORS.length;e++)this.dp_webgl.setChannelFlagAsColor(e,this.CHANNEL_COLORS[e])}}function r(t,i,e){this.clipIDList=new Array,this.clipIDList=e,this.clippingMaskDrawIndexList=new Array;for(var r=0;r<e.length;r++)this.clippingMaskDrawIndexList.push(i.getDrawDataIndex(e[r]));this.clippedDrawContextList=new Array,this.isUsing=!0,this.layoutChannelNo=0,this.layoutBounds=new S,this.allClippedDrawRect=new S,this.matrixForMask=new Float32Array(16),this.matrixForDraw=new Float32Array(16),this.owner=t}function o(t,i){this._$gP=t,this.drawDataIndex=i}function n(){At||(this.color=null)}function s(){At||(this._$dP=null,this._$eo=null,this._$V0=null,this._$dP=1e3,this._$eo=1e3,this._$V0=1,this._$a0())}function _(){}function a(){this._$r=null,this._$0S=null}function h(){At||(this.x=null,this.y=null,this.width=null,this.height=null)}function l(t){At||et.prototype.constructor.call(this,t)}function $(){}function u(t){At||et.prototype.constructor.call(this,t)}function p(){At||(this._$vo=null,this._$F2=null,this._$ao=400,this._$1S=400,p._$42++)}function f(){At||(this.p1=new c,this.p2=new c,this._$Fo=0,this._$Db=0,this._$L2=0,this._$M2=0,this._$ks=0,this._$9b=0,this._$iP=0,this._$iT=0,this._$lL=new Array,this._$qP=new Array,this.setup(.3,.5,.1))}function c(){this._$p=1,this.x=0,this.y=0,this.vx=0,this.vy=0,this.ax=0,this.ay=0,this.fx=0,this.fy=0,this._$s0=0,this._$70=0,this._$7L=0,this._$HL=0}function d(t,i,e){this._$wL=null,this.scale=null,this._$V0=null,this._$wL=t,this.scale=i,this._$V0=e}function g(t,i,e,r){d.prototype.constructor.call(this,i,e,r),this._$tL=null,this._$tL=t}function y(t,i,e){this._$wL=null,this.scale=null,this._$V0=null,this._$wL=t,this.scale=i,this._$V0=e}function T(t,i,e,r){y.prototype.constructor.call(this,i,e,r),this._$YP=null,this._$YP=t}function P(){At||(this._$fL=0,this._$gL=0,this._$B0=1,this._$z0=1,this._$qT=0,this.reflectX=!1,this.reflectY=!1)}function S(){At||(this.x=null,this.y=null,this.width=null,this.height=null)}function v(){}function L(){At||(this.x=null,this.y=null)}function M(){At||(this._$gP=null,this._$dr=null,this._$GS=null,this._$qb=null,this._$Lb=null,this._$mS=null,this.clipID=null,this.clipIDList=new Array)}function E(){At||(this._$Eb=E._$ps,this._$lT=1,this._$C0=1,this._$tT=1,this._$WL=1,this.culling=!1,this.matrix4x4=new Float32Array(16),this.premultipliedAlpha=!1,this.anisotropy=0,this.clippingProcess=E.CLIPPING_PROCESS_NONE,this.clipBufPre_clipContextMask=null,this.clipBufPre_clipContextDraw=null,this.CHANNEL_COLORS=new Array)}function A(){At||(this.a=1,this.r=1,this.g=1,this.b=1,this.scale=1,this._$ho=1,this.blendMode=at.L2D_COLOR_BLEND_MODE_MULT)}function I(){At||(this._$kP=null,this._$dr=null,this._$Ai=!0,this._$mS=null)}function w(){}function x(){At||(this._$VP=0,this._$wL=null,this._$GP=null,this._$8o=x._$ds,this._$2r=-1,this._$O2=0,this._$ri=0)}function O(){}function D(){At||(this._$Ob=null)}function R(){this.m=new Float32Array(16),this.identity()}function b(t){At||et.prototype.constructor.call(this,t)}function F(){At||(this._$7=1,this._$f=0,this._$H=0,this._$g=1,this._$k=0,this._$w=0,this._$hi=STATE_IDENTITY,this._$Z=_$pS)}function C(){At||(s.prototype.constructor.call(this),this.motions=new Array,this._$7r=null,this._$7r=C._$Co++,this._$D0=30,this._$yT=0,this._$E=!0,this.loopFadeIn=!0,this._$AS=-1,_$a0())}function N(){this._$P=new Float32Array(100),this.size=0}function B(){this._$4P=null,this._$I0=null,this._$RP=null}function U(){}function G(){}function Y(t){At||(this._$QT=!0,this._$co=-1,this._$qo=0,this._$pb=new Array(Y._$is),this._$_2=new Float32Array(Y._$is),this._$vr=new Float32Array(Y._$is),this._$Rr=new Float32Array(Y._$is),this._$Or=new Float32Array(Y._$is),this._$fs=new Float32Array(Y._$is),this._$Js=new Array(Y._$is),this._$3S=new Array,this._$aS=new Array,this._$Bo=null,this._$F2=new Array,this._$db=new Array,this._$8b=new Array,this._$Hr=new Array,this._$Ws=null,this._$Vs=null,this._$Er=null,this._$Es=new Int16Array(U._$Qb),this._$ZP=new Float32Array(2*U._$1r),this._$Ri=t,this._$b0=Y._$HP++,this.clipManager=null,this.dp_webgl=null)}function k(){}function V(){At||(this._$12=null,this._$bb=null,this._$_L=null,this._$jo=null,this._$iL=null,this._$0L=null,this._$Br=null,this._$Dr=null,this._$Cb=null,this._$mr=null,this._$_L=wt.STATE_FIRST,this._$Br=4e3,this._$Dr=100,this._$Cb=50,this._$mr=150,this._$jo=!0,this._$iL=\"PARAM_EYE_L_OPEN\",this._$0L=\"PARAM_EYE_R_OPEN\")}function X(){At||(E.prototype.constructor.call(this),this._$sb=new Int32Array(X._$As),this._$U2=new Array,this.transform=null,this.gl=null,null==X._$NT&&(X._$NT=X._$9r(256),X._$vS=X._$9r(256),X._$no=X._$vb(256)))}function z(){At||(I.prototype.constructor.call(this),this._$GS=null,this._$Y0=null)}function H(t){_t.prototype.constructor.call(this,t),this._$8r=I._$ur,this._$Yr=null,this._$Wr=null}function W(){At||(M.prototype.constructor.call(this),this._$gP=null,this._$dr=null,this._$GS=null,this._$qb=null,this._$Lb=null,this._$mS=null)}function j(){At||(this._$NL=null,this._$3S=null,this._$aS=null,j._$42++)}function q(){At||(i.prototype.constructor.call(this),this._$zo=new X)}function J(){At||(s.prototype.constructor.call(this),this.motions=new Array,this._$o2=null,this._$7r=J._$Co++,this._$D0=30,this._$yT=0,this._$E=!1,this.loopFadeIn=!0,this._$rr=-1,this._$eP=0)}function Q(t,i){return String.fromCharCode(t.getUint8(i))}function N(){this._$P=new Float32Array(100),this.size=0}function B(){this._$4P=null,this._$I0=null,this._$RP=null}function Z(){At||(I.prototype.constructor.call(this),this._$o=0,this._$A=0,this._$GS=null,this._$Eo=null)}function K(t){_t.prototype.constructor.call(this,t),this._$8r=I._$ur,this._$Cr=null,this._$hr=null}function tt(){At||(this.visible=!0,this._$g0=!1,this._$NL=null,this._$3S=null,this._$aS=null,tt._$42++)}function it(t){this._$VS=null,this._$e0=null,this._$e0=t}function et(t){At||(this.id=t)}function rt(){}function ot(){At||(this._$4S=null)}function nt(t,i){this.canvas=t,this.context=i,this.viewport=new Array(0,0,t.width,t.height),this._$6r=1,this._$xP=0,this._$3r=1,this._$uP=0,this._$Qo=-1,this.cacheImages={}}function st(){At||(this._$TT=null,this._$LT=null,this._$FS=null,this._$wL=null)}function _t(t){At||(this._$e0=null,this._$IP=null,this._$JS=!1,this._$AT=!0,this._$e0=t,this.totalScale=1,this._$7s=1,this.totalOpacity=1)}function at(){}function ht(){}function lt(t){At||(this._$ib=t)}function $t(){At||(W.prototype.constructor.call(this),this._$LP=-1,this._$d0=0,this._$Yo=0,this._$JP=null,this._$5P=null,this._$BP=null,this._$Eo=null,this._$Qi=null,this._$6s=$t._$ms,this.culling=!0,this.gl_cacheImage=null,this.instanceNo=$t._$42++)}function ut(t){Mt.prototype.constructor.call(this,t),this._$8r=W._$ur,this._$Cr=null,this._$hr=null}function pt(){At||(this.x=null,this.y=null)}function ft(t){At||(i.prototype.constructor.call(this),this.drawParamWebGL=new mt(t),this.drawParamWebGL.setGL(at.getGL(t)))}function ct(){At||(this.motions=null,this._$eb=!1,this.motions=new Array)}function dt(){this._$w0=null,this._$AT=!0,this._$9L=!1,this._$z2=-1,this._$bs=-1,this._$Do=-1,this._$sr=null,this._$sr=dt._$Gs++}function gt(){this.m=new Array(1,0,0,0,1,0,0,0,1)}function yt(t){At||et.prototype.constructor.call(this,t)}function mt(t){At||(E.prototype.constructor.call(this),this.textures=new Array,this.transform=null,this.gl=null,this.glno=t,this.firstDraw=!0,this.anisotropyExt=null,this.maxAnisotropy=0,this._$As=32,this._$Gr=!1,this._$NT=null,this._$vS=null,this._$no=null,this.vertShader=null,this.fragShader=null,this.vertShaderOff=null,this.fragShaderOff=null)}function Tt(t,i,e){return null==i&&(i=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,e,t.DYNAMIC_DRAW),i}function Pt(t,i,e){return null==i&&(i=t.createBuffer()),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e,t.DYNAMIC_DRAW),i}function St(t){At||(this._$P=new Int8Array(8),this._$R0=new DataView(this._$P.buffer),this._$3i=new Int8Array(1e3),this._$hL=0,this._$v0=0,this._$S2=0,this._$Ko=new Array,this._$T=t,this._$F=0)}function vt(){}function Lt(){}function Mt(t){At||(this._$e0=null,this._$IP=null,this._$Us=null,this._$7s=null,this._$IS=[!1],this._$VS=null,this._$AT=!0,this.baseOpacity=1,this.clipBufPre_clipContext=null,this._$e0=t)}function Et(){}var At=!0;i._$0s=1,i._$4s=2,i._$42=0,i._$62=function(t,e){try{if(e instanceof ArrayBuffer&&(e=new DataView(e)),!(e instanceof DataView))throw new lt(\"_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer\");var r,o=new St(e),n=o._$ST(),s=o._$ST(),a=o._$ST();if(109!=n||111!=s||99!=a)throw new lt(\"_$gi _$C _$li , _$Q0 _$P0.\");if(r=o._$ST(),o._$gr(r),r>G._$T7){t._$NP|=i._$4s;throw new lt(\"_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : \"+G._$T7+\" < _$f0 : \"+r+\" )@_$SS#loadModel()\\n\")}var h=o._$nP();if(r>=G._$s7){var l=o._$9T(),$=o._$9T();if(-30584!=l||-30584!=$)throw t._$NP|=i._$0s,new lt(\"_$gi _$C _$li , _$0 _$6 _$Ui.\")}t._$KS(h);var u=t.getModelContext();u.setDrawParam(t.getDrawParam()),u.init()}catch(t){_._$Rb(t)}},i.prototype._$KS=function(t){this._$MT=t},i.prototype.getModelImpl=function(){return null==this._$MT&&(this._$MT=new p,this._$MT._$zP()),this._$MT},i.prototype.getCanvasWidth=function(){return null==this._$MT?0:this._$MT.getCanvasWidth()},i.prototype.getCanvasHeight=function(){return null==this._$MT?0:this._$MT.getCanvasHeight()},i.prototype.getParamFloat=function(t){return\"number\"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),this._$5S.getParamFloat(t)},i.prototype.setParamFloat=function(t,i,e){\"number\"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)*(1-e)+i*e)},i.prototype.addToParamFloat=function(t,i,e){\"number\"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)+i*e)},i.prototype.multParamFloat=function(t,i,e){\"number\"!=typeof t&&(t=this._$5S.getParamIndex(u.getID(t))),arguments.length<3&&(e=1),this._$5S.setParamFloat(t,this._$5S.getParamFloat(t)*(1+(i-1)*e))},i.prototype.getParamIndex=function(t){return this._$5S.getParamIndex(u.getID(t))},i.prototype.loadParam=function(){this._$5S.loadParam()},i.prototype.saveParam=function(){this._$5S.saveParam()},i.prototype.init=function(){this._$5S.init()},i.prototype.update=function(){this._$5S.update()},i.prototype._$Rs=function(){return _._$li(\"_$60 _$PT _$Rs()\"),-1},i.prototype._$Ds=function(t){_._$li(\"_$60 _$PT _$SS#_$Ds() \\n\")},i.prototype._$K2=function(){},i.prototype.draw=function(){},i.prototype.getModelContext=function(){return this._$5S},i.prototype._$s2=function(){return this._$NP},i.prototype._$P7=function(t,i,e,r){var o=-1,n=0,s=this;if(0!=e)if(1==t.length){var _=t[0],a=0!=s.getParamFloat(_),h=i[0],l=s.getPartsOpacity(h),$=e/r;a?(l+=$)>1&&(l=1):(l-=$)<0&&(l=0),s.setPartsOpacity(h,l)}else{for(var u=0;u<t.length;u++){var _=t[u],p=0!=s.getParamFloat(_);if(p){if(o>=0)break;o=u;var h=i[u];n=s.getPartsOpacity(h),n+=e/r,n>1&&(n=1)}}o<0&&(console.log(\"No _$wi _$q0/ _$U default[%s]\",t[0]),o=0,n=1,s.loadParam(),s.setParamFloat(t[o],n),s.saveParam());for(var u=0;u<t.length;u++){var h=i[u];if(o==u)s.setPartsOpacity(h,n);else{var f,c=s.getPartsOpacity(h);f=n<.5?-.5*n/.5+1:.5*(1-n)/.5;var d=(1-f)*(1-n);d>.15&&(f=1-.15/(1-n)),c>f&&(c=f),s.setPartsOpacity(h,c)}}}else for(var u=0;u<t.length;u++){var _=t[u],h=i[u],p=0!=s.getParamFloat(_);s.setPartsOpacity(h,p?1:0)}},i.prototype.setPartsOpacity=function(t,i){\"number\"!=typeof t&&(t=this._$5S.getPartsDataIndex(l.getID(t))),this._$5S.setPartsOpacity(t,i)},i.prototype.getPartsDataIndex=function(t){return t instanceof l||(t=l.getID(t)),this._$5S.getPartsDataIndex(t)},i.prototype.getPartsOpacity=function(t){return\"number\"!=typeof t&&(t=this._$5S.getPartsDataIndex(l.getID(t))),t<0?0:this._$5S.getPartsOpacity(t)},i.prototype.getDrawParam=function(){},i.prototype.getDrawDataIndex=function(t){return this._$5S.getDrawDataIndex(b.getID(t))},i.prototype.getDrawData=function(t){return this._$5S.getDrawData(t)},i.prototype.getTransformedPoints=function(t){var i=this._$5S._$C2(t);return i instanceof ut?i.getTransformedPoints():null},i.prototype.getIndexArray=function(t){if(t<0||t>=this._$5S._$aS.length)return null;var i=this._$5S._$aS[t];return null!=i&&i.getType()==W._$wb&&i instanceof $t?i.getIndexArray():null},e.CHANNEL_COUNT=4,e.RENDER_TEXTURE_USE_MIPMAP=!1,e.NOT_USED_FRAME=-100,e.prototype._$L7=function(){if(this.tmpModelToViewMatrix&&(this.tmpModelToViewMatrix=null),this.tmpMatrix2&&(this.tmpMatrix2=null),this.tmpMatrixForMask&&(this.tmpMatrixForMask=null),this.tmpMatrixForDraw&&(this.tmpMatrixForDraw=null),this.tmpBoundsOnModel&&(this.tmpBoundsOnModel=null),this.CHANNEL_COLORS){for(var t=this.CHANNEL_COLORS.length-1;t>=0;--t)this.CHANNEL_COLORS.splice(t,1);this.CHANNEL_COLORS=[]}this.releaseShader()},e.prototype.releaseShader=function(){for(var t=at.frameBuffers.length,i=0;i<t;i++)this.gl.deleteFramebuffer(at.frameBuffers[i].framebuffer);at.frameBuffers=[],at.glContext=[]},e.prototype.init=function(t,i,e){for(var o=0;o<i.length;o++){var n=i[o].getClipIDList();if(null!=n){var s=this.findSameClip(n);null==s&&(s=new r(this,t,n),this.clipContextList.push(s));var _=i[o].getDrawDataID(),a=t.getDrawDataIndex(_);s.addClippedDrawData(_,a);e[o].clipBufPre_clipContext=s}}},e.prototype.getMaskRenderTexture=function(){var t=null;return t=this.dp_webgl.createFramebuffer(),at.frameBuffers[this.dp_webgl.glno]=t,this.dp_webgl.glno},e.prototype.setupClip=function(t,i){for(var e=0,r=0;r<this.clipContextList.length;r++){var o=this.clipContextList[r];this.calcClippedDrawTotalBounds(t,o),o.isUsing&&e++}if(e>0){var n=i.gl.getParameter(i.gl.FRAMEBUFFER_BINDING),s=new Array(4);s[0]=0,s[1]=0,s[2]=i.gl.canvas.width,s[3]=i.gl.canvas.height,i.gl.viewport(0,0,at.clippingMaskBufferSize,at.clippingMaskBufferSize),this.setupLayoutBounds(e),i.gl.bindFramebuffer(i.gl.FRAMEBUFFER,at.frameBuffers[this.curFrameNo].framebuffer),i.gl.clearColor(0,0,0,0),i.gl.clear(i.gl.COLOR_BUFFER_BIT);for(var r=0;r<this.clipContextList.length;r++){var o=this.clipContextList[r],_=o.allClippedDrawRect,a=(o.layoutChannelNo,o.layoutBounds);this.tmpBoundsOnModel._$jL(_),this.tmpBoundsOnModel.expand(.05*_.width,.05*_.height);var h=a.width/this.tmpBoundsOnModel.width,l=a.height/this.tmpBoundsOnModel.height;this.tmpMatrix2.identity(),this.tmpMatrix2.translate(-1,-1,0),this.tmpMatrix2.scale(2,2,1),this.tmpMatrix2.translate(a.x,a.y,0),this.tmpMatrix2.scale(h,l,1),this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x,-this.tmpBoundsOnModel.y,0),this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m),this.tmpMatrix2.identity(),this.tmpMatrix2.translate(a.x,a.y,0),this.tmpMatrix2.scale(h,l,1),this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x,-this.tmpBoundsOnModel.y,0),this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);for(var $=this.tmpMatrixForMask.getArray(),u=0;u<16;u++)o.matrixForMask[u]=$[u];for(var p=this.tmpMatrixForDraw.getArray(),u=0;u<16;u++)o.matrixForDraw[u]=p[u];for(var f=o.clippingMaskDrawIndexList.length,c=0;c<f;c++){var d=o.clippingMaskDrawIndexList[c],g=t.getDrawData(d),y=t._$C2(d);i.setClipBufPre_clipContextForMask(o),g.draw(i,t,y)}}i.gl.bindFramebuffer(i.gl.FRAMEBUFFER,n),i.setClipBufPre_clipContextForMask(null),i.gl.viewport(s[0],s[1],s[2],s[3])}},e.prototype.getColorBuffer=function(){return this.colorBuffer},e.prototype.findSameClip=function(t){for(var i=0;i<this.clipContextList.length;i++){var e=this.clipContextList[i],r=e.clipIDList.length;if(r==t.length){for(var o=0,n=0;n<r;n++)for(var s=e.clipIDList[n],_=0;_<r;_++)if(t[_]==s){o++;break}if(o==r)return e}}return null},e.prototype.calcClippedDrawTotalBounds=function(t,i){for(var e=t._$Ri.getModelImpl().getCanvasWidth(),r=t._$Ri.getModelImpl().getCanvasHeight(),o=e>r?e:r,n=o,s=o,_=0,a=0,h=i.clippedDrawContextList.length,l=0;l<h;l++){var $=i.clippedDrawContextList[l],u=$.drawDataIndex,p=t._$C2(u);if(p._$yo()){for(var f=p.getTransformedPoints(),c=f.length,d=[],g=[],y=0,m=U._$i2;m<c;m+=U._$No)d[y]=f[m],g[y]=f[m+1],y++;var T=Math.min.apply(null,d),P=Math.min.apply(null,g),S=Math.max.apply(null,d),v=Math.max.apply(null,g);T<n&&(n=T),P<s&&(s=P),S>_&&(_=S),v>a&&(a=v)}}if(n==o)i.allClippedDrawRect.x=0,i.allClippedDrawRect.y=0,i.allClippedDrawRect.width=0,i.allClippedDrawRect.height=0,i.isUsing=!1;else{var L=_-n,M=a-s;i.allClippedDrawRect.x=n,i.allClippedDrawRect.y=s,i.allClippedDrawRect.width=L,i.allClippedDrawRect.height=M,i.isUsing=!0}},e.prototype.setupLayoutBounds=function(t){var i=t/e.CHANNEL_COUNT,r=t%e.CHANNEL_COUNT;i=~~i,r=~~r;for(var o=0,n=0;n<e.CHANNEL_COUNT;n++){var s=i+(n<r?1:0);if(0==s);else if(1==s){var a=this.clipContextList[o++];a.layoutChannelNo=n,a.layoutBounds.x=0,a.layoutBounds.y=0,a.layoutBounds.width=1,a.layoutBounds.height=1}else if(2==s)for(var h=0;h<s;h++){var l=h%2,$=0;l=~~l;var a=this.clipContextList[o++];a.layoutChannelNo=n,a.layoutBounds.x=.5*l,a.layoutBounds.y=0,a.layoutBounds.width=.5,a.layoutBounds.height=1}else if(s<=4)for(var h=0;h<s;h++){var l=h%2,$=h/2;l=~~l,$=~~$;var a=this.clipContextList[o++];a.layoutChannelNo=n,a.layoutBounds.x=.5*l,a.layoutBounds.y=.5*$,a.layoutBounds.width=.5,a.layoutBounds.height=.5}else if(s<=9)for(var h=0;h<s;h++){var l=h%3,$=h/3;l=~~l,$=~~$;var a=this.clipContextList[o++];a.layoutChannelNo=n,a.layoutBounds.x=l/3,a.layoutBounds.y=$/3,a.layoutBounds.width=1/3,a.layoutBounds.height=1/3}else _._$li(\"_$6 _$0P mask count : %d\",s)}},r.prototype.addClippedDrawData=function(t,i){var e=new o(t,i);this.clippedDrawContextList.push(e)},s._$JT=function(t,i,e){var r=t/i,o=e/i,n=o,s=1-(1-o)*(1-o),_=1-(1-n)*(1-n),a=1/3*(1-o)*s+(n*(2/3)+1/3*(1-n))*(1-s),h=(n+2/3*(1-n))*_+(o*(1/3)+2/3*(1-o))*(1-_),l=1-3*h+3*a-0,$=3*h-6*a+0,u=3*a-0;if(r<=0)return 0;if(r>=1)return 1;var p=r,f=p*p;return l*(p*f)+$*f+u*p+0},s.prototype._$a0=function(){},s.prototype.setFadeIn=function(t){this._$dP=t},s.prototype.setFadeOut=function(t){this._$eo=t},s.prototype._$pT=function(t){this._$V0=t},s.prototype.getFadeOut=function(){return this._$eo},s.prototype._$4T=function(){return this._$eo},s.prototype._$mT=function(){return this._$V0},s.prototype.getDurationMSec=function(){return-1},s.prototype.getLoopDurationMSec=function(){return-1},s.prototype.updateParam=function(t,i){if(i._$AT&&!i._$9L){var e=w.getUserTimeMSec();if(i._$z2<0){i._$z2=e,i._$bs=e;var r=this.getDurationMSec();i._$Do<0&&(i._$Do=r<=0?-1:i._$z2+r)}var o=this._$V0;o=o*(0==this._$dP?1:ht._$r2((e-i._$bs)/this._$dP))*(0==this._$eo||i._$Do<0?1:ht._$r2((i._$Do-e)/this._$eo)),0<=o&&o<=1||console.log(\"### assert!! ### \"),this.updateParamExe(t,e,o,i),i._$Do>0&&i._$Do<e&&(i._$9L=!0)}},s.prototype.updateParamExe=function(t,i,e,r){},_._$8s=0,_._$fT=new Object,_.start=function(t){var i=_._$fT[t];null==i&&(i=new a,i._$r=t,_._$fT[t]=i),i._$0S=w.getSystemTimeMSec()},_.dump=function(t){var i=_._$fT[t];if(null!=i){var e=w.getSystemTimeMSec(),r=e-i._$0S;return console.log(t+\" : \"+r+\"ms\"),r}return-1},_.end=function(t){var i=_._$fT[t];if(null!=i){return w.getSystemTimeMSec()-i._$0S}return-1},_._$li=function(t,i){console.log(\"_$li : \"+t+\"\\n\",i)},_._$Ji=function(t,i){console.log(t,i)},_._$dL=function(t,i){console.log(t,i),console.log(\"\\n\")},_._$KL=function(t,i){for(var e=0;e<i;e++)e%16==0&&e>0?console.log(\"\\n\"):e%8==0&&e>0&&console.log(\"  \"),console.log(\"%02X \",255&t[e]);console.log(\"\\n\")},_._$nr=function(t,i,e){console.log(\"%s\\n\",t);for(var r=i.length,o=0;o<r;++o)console.log(\"%5d\",i[o]),console.log(\"%s\\n\",e),console.log(\",\");console.log(\"\\n\")},_._$Rb=function(t){console.log(\"dump exception : \"+t),console.log(\"stack :: \"+t.stack)},h.prototype._$8P=function(){return.5*(this.x+this.x+this.width)},h.prototype._$6P=function(){return.5*(this.y+this.y+this.height)},h.prototype._$EL=function(){return this.x+this.width},h.prototype._$5T=function(){return this.y+this.height},h.prototype._$jL=function(t,i,e,r){this.x=t,this.y=i,this.width=e,this.height=r},h.prototype._$jL=function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},l.prototype=new et,l._$tP=new Object,l._$27=function(){l._$tP.clear()},l.getID=function(t){var i=l._$tP[t];return null==i&&(i=new l(t),l._$tP[t]=i),i},l.prototype._$3s=function(){return new l},u.prototype=new et,u._$tP=new Object,u._$27=function(){u._$tP.clear()},u.getID=function(t){var i=u._$tP[t];return null==i&&(i=new u(t),u._$tP[t]=i),i},u.prototype._$3s=function(){return new u},p._$42=0,p.prototype._$zP=function(){null==this._$vo&&(this._$vo=new ot),null==this._$F2&&(this._$F2=new Array)},p.prototype.getCanvasWidth=function(){return this._$ao},p.prototype.getCanvasHeight=function(){return this._$1S},p.prototype._$F0=function(t){this._$vo=t._$nP(),this._$F2=t._$nP(),this._$ao=t._$6L(),this._$1S=t._$6L()},p.prototype._$6S=function(t){this._$F2.push(t)},p.prototype._$Xr=function(){return this._$F2},p.prototype._$E2=function(){return this._$vo},f.prototype.setup=function(t,i,e){this._$ks=this._$Yb(),this.p2._$xT(),3==arguments.length&&(this._$Fo=t,this._$L2=i,this.p1._$p=e,this.p2._$p=e,this.p2.y=t,this.setup())},f.prototype.getPhysicsPoint1=function(){return this.p1},f.prototype.getPhysicsPoint2=function(){return this.p2},f.prototype._$qr=function(){return this._$Db},f.prototype._$pr=function(t){this._$Db=t},f.prototype._$5r=function(){return this._$M2},f.prototype._$Cs=function(){return this._$9b},f.prototype._$Yb=function(){return-180*Math.atan2(this.p1.x-this.p2.x,-(this.p1.y-this.p2.y))/Math.PI},f.prototype.addSrcParam=function(t,i,e,r){var o=new g(t,i,e,r);this._$lL.push(o)},f.prototype.addTargetParam=function(t,i,e,r){var o=new T(t,i,e,r);this._$qP.push(o)},f.prototype.update=function(t,i){if(0==this._$iP)return this._$iP=this._$iT=i,void(this._$Fo=Math.sqrt((this.p1.x-this.p2.x)*(this.p1.x-this.p2.x)+(this.p1.y-this.p2.y)*(this.p1.y-this.p2.y)));var e=(i-this._$iT)/1e3;if(0!=e){for(var r=this._$lL.length-1;r>=0;--r){this._$lL[r]._$oP(t,this)}this._$oo(t,e),this._$M2=this._$Yb(),this._$9b=(this._$M2-this._$ks)/e,this._$ks=this._$M2}for(var r=this._$qP.length-1;r>=0;--r){this._$qP[r]._$YS(t,this)}this._$iT=i},f.prototype._$oo=function(t,i){i<.033&&(i=.033);var e=1/i;this.p1.vx=(this.p1.x-this.p1._$s0)*e,this.p1.vy=(this.p1.y-this.p1._$70)*e,this.p1.ax=(this.p1.vx-this.p1._$7L)*e,this.p1.ay=(this.p1.vy-this.p1._$HL)*e,this.p1.fx=this.p1.ax*this.p1._$p,this.p1.fy=this.p1.ay*this.p1._$p,this.p1._$xT();var r,o,n=-Math.atan2(this.p1.y-this.p2.y,this.p1.x-this.p2.x),s=Math.cos(n),_=Math.sin(n),a=9.8*this.p2._$p,h=this._$Db*Lt._$bS,l=a*Math.cos(n-h);r=l*_,o=l*s;var $=-this.p1.fx*_*_,u=-this.p1.fy*_*s,p=-this.p2.vx*this._$L2,f=-this.p2.vy*this._$L2;this.p2.fx=r+$+p,this.p2.fy=o+u+f,this.p2.ax=this.p2.fx/this.p2._$p,this.p2.ay=this.p2.fy/this.p2._$p,this.p2.vx+=this.p2.ax*i,this.p2.vy+=this.p2.ay*i,this.p2.x+=this.p2.vx*i,this.p2.y+=this.p2.vy*i;var c=Math.sqrt((this.p1.x-this.p2.x)*(this.p1.x-this.p2.x)+(this.p1.y-this.p2.y)*(this.p1.y-this.p2.y));this.p2.x=this.p1.x+this._$Fo*(this.p2.x-this.p1.x)/c,this.p2.y=this.p1.y+this._$Fo*(this.p2.y-this.p1.y)/c,this.p2.vx=(this.p2.x-this.p2._$s0)*e,this.p2.vy=(this.p2.y-this.p2._$70)*e,this.p2._$xT()},c.prototype._$xT=function(){this._$s0=this.x,this._$70=this.y,this._$7L=this.vx,this._$HL=this.vy},d.prototype._$oP=function(t,i){},g.prototype=new d,g.prototype._$oP=function(t,i){var e=this.scale*t.getParamFloat(this._$wL),r=i.getPhysicsPoint1();switch(this._$tL){default:case f.Src.SRC_TO_X:r.x=r.x+(e-r.x)*this._$V0;break;case f.Src.SRC_TO_Y:r.y=r.y+(e-r.y)*this._$V0;break;case f.Src.SRC_TO_G_ANGLE:var o=i._$qr();o+=(e-o)*this._$V0,i._$pr(o)}},y.prototype._$YS=function(t,i){},T.prototype=new y,T.prototype._$YS=function(t,i){switch(this._$YP){default:case f.Target.TARGET_FROM_ANGLE:t.setParamFloat(this._$wL,this.scale*i._$5r(),this._$V0);break;case f.Target.TARGET_FROM_ANGLE_V:t.setParamFloat(this._$wL,this.scale*i._$Cs(),this._$V0)}},f.Src=function(){},f.Src.SRC_TO_X=\"SRC_TO_X\",f.Src.SRC_TO_Y=\"SRC_TO_Y\",f.Src.SRC_TO_G_ANGLE=\"SRC_TO_G_ANGLE\",f.Target=function(){},f.Target.TARGET_FROM_ANGLE=\"TARGET_FROM_ANGLE\",f.Target.TARGET_FROM_ANGLE_V=\"TARGET_FROM_ANGLE_V\",P.prototype.init=function(t){this._$fL=t._$fL,this._$gL=t._$gL,this._$B0=t._$B0,this._$z0=t._$z0,this._$qT=t._$qT,this.reflectX=t.reflectX,this.reflectY=t.reflectY},P.prototype._$F0=function(t){this._$fL=t._$_T(),this._$gL=t._$_T(),this._$B0=t._$_T(),this._$z0=t._$_T(),this._$qT=t._$_T(),t.getFormatVersion()>=G.LIVE2D_FORMAT_VERSION_V2_10_SDK2&&(this.reflectX=t._$po(),this.reflectY=t._$po())},P.prototype._$e=function(){};var It=function(){};It._$ni=function(t,i,e,r,o,n,s,_,a){var h=s*n-_*o;if(0==h)return null;var l,$=((t-e)*n-(i-r)*o)/h;return l=0!=o?(t-e-$*s)/o:(i-r-$*_)/n,isNaN(l)&&(l=(t-e-$*s)/o,isNaN(l)&&(l=(i-r-$*_)/n),isNaN(l)&&(console.log(\"a is NaN @UtVector#_$ni() \"),console.log(\"v1x : \"+o),console.log(\"v1x != 0 ? \"+(0!=o)))),null==a?new Array(l,$):(a[0]=l,a[1]=$,a)},S.prototype._$8P=function(){return this.x+.5*this.width},S.prototype._$6P=function(){return this.y+.5*this.height},S.prototype._$EL=function(){return this.x+this.width},S.prototype._$5T=function(){return this.y+this.height},S.prototype._$jL=function(t,i,e,r){this.x=t,this.y=i,this.width=e,this.height=r},S.prototype._$jL=function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},S.prototype.contains=function(t,i){return this.x<=this.x&&this.y<=this.y&&this.x<=this.x+this.width&&this.y<=this.y+this.height},S.prototype.expand=function(t,i){this.x-=t,this.y-=i,this.width+=2*t,this.height+=2*i},v._$Z2=function(t,i,e,r){var o=i._$Q2(t,e),n=t._$vs(),s=t._$Tr();if(i._$zr(n,s,o),o<=0)return r[n[0]];if(1==o){var _=r[n[0]],a=r[n[1]],h=s[0];return _+(a-_)*h|0}if(2==o){var _=r[n[0]],a=r[n[1]],l=r[n[2]],$=r[n[3]],h=s[0],u=s[1],p=_+(a-_)*h|0,f=l+($-l)*h|0;return p+(f-p)*u|0}if(3==o){var c=r[n[0]],d=r[n[1]],g=r[n[2]],y=r[n[3]],m=r[n[4]],T=r[n[5]],P=r[n[6]],S=r[n[7]],h=s[0],u=s[1],v=s[2],_=c+(d-c)*h|0,a=g+(y-g)*h|0,l=m+(T-m)*h|0,$=P+(S-P)*h|0,p=_+(a-_)*u|0,f=l+($-l)*u|0;return p+(f-p)*v|0}if(4==o){var L=r[n[0]],M=r[n[1]],E=r[n[2]],A=r[n[3]],I=r[n[4]],w=r[n[5]],x=r[n[6]],O=r[n[7]],D=r[n[8]],R=r[n[9]],b=r[n[10]],F=r[n[11]],C=r[n[12]],N=r[n[13]],B=r[n[14]],U=r[n[15]],h=s[0],u=s[1],v=s[2],G=s[3],c=L+(M-L)*h|0,d=E+(A-E)*h|0,g=I+(w-I)*h|0,y=x+(O-x)*h|0,m=D+(R-D)*h|0,T=b+(F-b)*h|0,P=C+(N-C)*h|0,S=B+(U-B)*h|0,_=c+(d-c)*u|0,a=g+(y-g)*u|0,l=m+(T-m)*u|0,$=P+(S-P)*u|0,p=_+(a-_)*v|0,f=l+($-l)*v|0;return p+(f-p)*G|0}for(var Y=1<<o,k=new Float32Array(Y),V=0;V<Y;V++){for(var X=V,z=1,H=0;H<o;H++)z*=X%2==0?1-s[H]:s[H],X/=2;k[V]=z}for(var W=new Float32Array(Y),j=0;j<Y;j++)W[j]=r[n[j]];for(var q=0,j=0;j<Y;j++)q+=k[j]*W[j];return q+.5|0},v._$br=function(t,i,e,r){var o=i._$Q2(t,e),n=t._$vs(),s=t._$Tr();if(i._$zr(n,s,o),o<=0)return r[n[0]];if(1==o){var _=r[n[0]],a=r[n[1]],h=s[0];return _+(a-_)*h}if(2==o){var _=r[n[0]],a=r[n[1]],l=r[n[2]],$=r[n[3]],h=s[0],u=s[1];return(1-u)*(_+(a-_)*h)+u*(l+($-l)*h)}if(3==o){var p=r[n[0]],f=r[n[1]],c=r[n[2]],d=r[n[3]],g=r[n[4]],y=r[n[5]],m=r[n[6]],T=r[n[7]],h=s[0],u=s[1],P=s[2];return(1-P)*((1-u)*(p+(f-p)*h)+u*(c+(d-c)*h))+P*((1-u)*(g+(y-g)*h)+u*(m+(T-m)*h))}if(4==o){var S=r[n[0]],v=r[n[1]],L=r[n[2]],M=r[n[3]],E=r[n[4]],A=r[n[5]],I=r[n[6]],w=r[n[7]],x=r[n[8]],O=r[n[9]],D=r[n[10]],R=r[n[11]],b=r[n[12]],F=r[n[13]],C=r[n[14]],N=r[n[15]],h=s[0],u=s[1],P=s[2],B=s[3];return(1-B)*((1-P)*((1-u)*(S+(v-S)*h)+u*(L+(M-L)*h))+P*((1-u)*(E+(A-E)*h)+u*(I+(w-I)*h)))+B*((1-P)*((1-u)*(x+(O-x)*h)+u*(D+(R-D)*h))+P*((1-u)*(b+(F-b)*h)+u*(C+(N-C)*h)))}for(var U=1<<o,G=new Float32Array(U),Y=0;Y<U;Y++){for(var k=Y,V=1,X=0;X<o;X++)V*=k%2==0?1-s[X]:s[X],k/=2;G[Y]=V}for(var z=new Float32Array(U),H=0;H<U;H++)z[H]=r[n[H]];for(var W=0,H=0;H<U;H++)W+=G[H]*z[H];return W},v._$Vr=function(t,i,e,r,o,n,s,_){var a=i._$Q2(t,e),h=t._$vs(),l=t._$Tr();i._$zr(h,l,a);var $=2*r,u=s;if(a<=0){var p=h[0],f=o[p];if(2==_&&0==s)w._$jT(f,0,n,0,$);else for(var c=0;c<$;)n[u]=f[c++],n[u+1]=f[c++],u+=_}else if(1==a)for(var f=o[h[0]],d=o[h[1]],g=l[0],y=1-g,c=0;c<$;)n[u]=f[c]*y+d[c]*g,++c,n[u+1]=f[c]*y+d[c]*g,++c,u+=_;else if(2==a)for(var f=o[h[0]],d=o[h[1]],m=o[h[2]],T=o[h[3]],g=l[0],P=l[1],y=1-g,S=1-P,v=S*y,L=S*g,M=P*y,E=P*g,c=0;c<$;)n[u]=v*f[c]+L*d[c]+M*m[c]+E*T[c],++c,n[u+1]=v*f[c]+L*d[c]+M*m[c]+E*T[c],++c,u+=_;else if(3==a)for(var A=o[h[0]],I=o[h[1]],x=o[h[2]],O=o[h[3]],D=o[h[4]],R=o[h[5]],b=o[h[6]],F=o[h[7]],g=l[0],P=l[1],C=l[2],y=1-g,S=1-P,N=1-C,B=N*S*y,U=N*S*g,G=N*P*y,Y=N*P*g,k=C*S*y,V=C*S*g,X=C*P*y,z=C*P*g,c=0;c<$;)n[u]=B*A[c]+U*I[c]+G*x[c]+Y*O[c]+k*D[c]+V*R[c]+X*b[c]+z*F[c],++c,n[u+1]=B*A[c]+U*I[c]+G*x[c]+Y*O[c]+k*D[c]+V*R[c]+X*b[c]+z*F[c],++c,u+=_;else if(4==a)for(var H=o[h[0]],W=o[h[1]],j=o[h[2]],q=o[h[3]],J=o[h[4]],Q=o[h[5]],Z=o[h[6]],K=o[h[7]],tt=o[h[8]],it=o[h[9]],et=o[h[10]],rt=o[h[11]],ot=o[h[12]],nt=o[h[13]],st=o[h[14]],_t=o[h[15]],g=l[0],P=l[1],C=l[2],at=l[3],y=1-g,S=1-P,N=1-C,ht=1-at,lt=ht*N*S*y,$t=ht*N*S*g,ut=ht*N*P*y,pt=ht*N*P*g,ft=ht*C*S*y,ct=ht*C*S*g,dt=ht*C*P*y,gt=ht*C*P*g,yt=at*N*S*y,mt=at*N*S*g,Tt=at*N*P*y,Pt=at*N*P*g,St=at*C*S*y,vt=at*C*S*g,Lt=at*C*P*y,Mt=at*C*P*g,c=0;c<$;)n[u]=lt*H[c]+$t*W[c]+ut*j[c]+pt*q[c]+ft*J[c]+ct*Q[c]+dt*Z[c]+gt*K[c]+yt*tt[c]+mt*it[c]+Tt*et[c]+Pt*rt[c]+St*ot[c]+vt*nt[c]+Lt*st[c]+Mt*_t[c],++c,n[u+1]=lt*H[c]+$t*W[c]+ut*j[c]+pt*q[c]+ft*J[c]+ct*Q[c]+dt*Z[c]+gt*K[c]+yt*tt[c]+mt*it[c]+Tt*et[c]+Pt*rt[c]+St*ot[c]+vt*nt[c]+Lt*st[c]+Mt*_t[c],++c,u+=_;else{for(var Et=1<<a,At=new Float32Array(Et),It=0;It<Et;It++){for(var wt=It,xt=1,Ot=0;Ot<a;Ot++)xt*=wt%2==0?1-l[Ot]:l[Ot],wt/=2;At[It]=xt}for(var Dt=new Float32Array(Et),Rt=0;Rt<Et;Rt++)Dt[Rt]=o[h[Rt]];for(var c=0;c<$;){for(var bt=0,Ft=0,Ct=c+1,Rt=0;Rt<Et;Rt++)bt+=At[Rt]*Dt[Rt][c],Ft+=At[Rt]*Dt[Rt][Ct];c+=2,n[u]=bt,n[u+1]=Ft,u+=_}}},L.prototype._$HT=function(t,i){this.x=t,this.y=i},L.prototype._$HT=function(t){this.x=t.x,this.y=t.y},M._$ur=-2,M._$ES=500,M._$wb=2,M._$8S=3,M._$52=M._$ES,M._$R2=M._$ES,M._$or=function(){return M._$52},M._$Pr=function(){return M._$R2},M.prototype.convertClipIDForV2_11=function(t){var i=[];return null==t?null:0==t.length?null:/,/.test(t)?i=t.id.split(\",\"):(i.push(t.id),i)},M.prototype._$F0=function(t){this._$gP=t._$nP(),this._$dr=t._$nP(),this._$GS=t._$nP(),this._$qb=t._$6L(),this._$Lb=t._$cS(),this._$mS=t._$Tb(),t.getFormatVersion()>=G._$T7?(this.clipID=t._$nP(),this.clipIDList=this.convertClipIDForV2_11(this.clipID)):this.clipIDList=[],this._$MS(this._$Lb)},M.prototype.getClipIDList=function(){return this.clipIDList},M.prototype.init=function(t){},M.prototype._$Nr=function(t,i){if(i._$IS[0]=!1,i._$Us=v._$Z2(t,this._$GS,i._$IS,this._$Lb),at._$Zs);else if(i._$IS[0])return;i._$7s=v._$br(t,this._$GS,i._$IS,this._$mS)},M.prototype._$2b=function(t,i){},M.prototype.getDrawDataID=function(){return this._$gP},M.prototype._$j2=function(t){this._$gP=t},M.prototype.getOpacity=function(t,i){return i._$7s},M.prototype._$zS=function(t,i){return i._$Us},M.prototype._$MS=function(t){for(var i=t.length-1;i>=0;--i){var e=t[i];e<M._$52?M._$52=e:e>M._$R2&&(M._$R2=e)}},M.prototype.getTargetBaseDataID=function(){return this._$dr},M.prototype._$gs=function(t){this._$dr=t},M.prototype._$32=function(){return null!=this._$dr&&this._$dr!=yt._$2o()},M.prototype.preDraw=function(t,i,e){},M.prototype.draw=function(t,i,e){},M.prototype.getType=function(){},M.prototype._$B2=function(t,i,e){},E._$ps=32,E.CLIPPING_PROCESS_NONE=0,E.CLIPPING_PROCESS_OVERWRITE_ALPHA=1,E.CLIPPING_PROCESS_MULTIPLY_ALPHA=2,E.CLIPPING_PROCESS_DRAW=3,E.CLIPPING_PROCESS_CLEAR_ALPHA=4,E.prototype.setChannelFlagAsColor=function(t,i){this.CHANNEL_COLORS[t]=i},E.prototype.getChannelFlagAsColor=function(t){return this.CHANNEL_COLORS[t]},E.prototype._$ZT=function(){},E.prototype._$Uo=function(t,i,e,r,o,n,s){},E.prototype._$Rs=function(){return-1},E.prototype._$Ds=function(t){},E.prototype.setBaseColor=function(t,i,e,r){t<0?t=0:t>1&&(t=1),i<0?i=0:i>1&&(i=1),e<0?e=0:e>1&&(e=1),r<0?r=0:r>1&&(r=1),this._$lT=t,this._$C0=i,this._$tT=e,this._$WL=r},E.prototype._$WP=function(t){this.culling=t},E.prototype.setMatrix=function(t){for(var i=0;i<16;i++)this.matrix4x4[i]=t[i]},E.prototype._$IT=function(){return this.matrix4x4},E.prototype.setPremultipliedAlpha=function(t){this.premultipliedAlpha=t},E.prototype.isPremultipliedAlpha=function(){return this.premultipliedAlpha},E.prototype.setAnisotropy=function(t){this.anisotropy=t},E.prototype.getAnisotropy=function(){return this.anisotropy},E.prototype.getClippingProcess=function(){return this.clippingProcess},E.prototype.setClippingProcess=function(t){this.clippingProcess=t},E.prototype.setClipBufPre_clipContextForMask=function(t){this.clipBufPre_clipContextMask=t},E.prototype.getClipBufPre_clipContextMask=function(){return this.clipBufPre_clipContextMask},E.prototype.setClipBufPre_clipContextForDraw=function(t){this.clipBufPre_clipContextDraw=t},E.prototype.getClipBufPre_clipContextDraw=function(){return this.clipBufPre_clipContextDraw},I._$ur=-2,I._$c2=1,I._$_b=2,I.prototype._$F0=function(t){this._$kP=t._$nP(),this._$dr=t._$nP()},I.prototype.readV2_opacity=function(t){t.getFormatVersion()>=G.LIVE2D_FORMAT_VERSION_V2_10_SDK2&&(this._$mS=t._$Tb())},I.prototype.init=function(t){},I.prototype._$Nr=function(t,i){},I.prototype.interpolateOpacity=function(t,i,e,r){null==this._$mS?e.setInterpolatedOpacity(1):e.setInterpolatedOpacity(v._$br(t,i,r,this._$mS))},I.prototype._$2b=function(t,i){},I.prototype._$nb=function(t,i,e,r,o,n,s){},I.prototype.getType=function(){},I.prototype._$gs=function(t){this._$dr=t},I.prototype._$a2=function(t){this._$kP=t},I.prototype.getTargetBaseDataID=function(){return this._$dr},I.prototype.getBaseDataID=function(){return this._$kP},I.prototype._$32=function(){return null!=this._$dr&&this._$dr!=yt._$2o()},w._$W2=0,w._$CS=w._$W2,w._$Mo=function(){return!0},w._$XP=function(t){try{for(var i=getTimeMSec();getTimeMSec()-i<t;);}catch(t){t._$Rb()}},w.getUserTimeMSec=function(){return w._$CS==w._$W2?w.getSystemTimeMSec():w._$CS},w.setUserTimeMSec=function(t){w._$CS=t},w.updateUserTimeMSec=function(){return w._$CS=w.getSystemTimeMSec()},w.getTimeMSec=function(){return(new Date).getTime()},w.getSystemTimeMSec=function(){return(new Date).getTime()},w._$Q=function(t){},w._$jT=function(t,i,e,r,o){for(var n=0;n<o;n++)e[r+n]=t[i+n]},x._$ds=-2,x.prototype._$F0=function(t){this._$wL=t._$nP(),this._$VP=t._$6L(),this._$GP=t._$nP()},x.prototype.getParamIndex=function(t){return this._$2r!=t&&(this._$8o=x._$ds),this._$8o},x.prototype._$Pb=function(t,i){this._$8o=t,this._$2r=i},x.prototype.getParamID=function(){return this._$wL},x.prototype._$yP=function(t){this._$wL=t},x.prototype._$N2=function(){return this._$VP},x.prototype._$d2=function(){return this._$GP},x.prototype._$t2=function(t,i){this._$VP=t,this._$GP=i},x.prototype._$Lr=function(){return this._$O2},x.prototype._$wr=function(t){this._$O2=t},x.prototype._$SL=function(){return this._$ri},x.prototype._$AL=function(t){this._$ri=t},O.startsWith=function(t,i,e){var r=i+e.length;if(r>=t.length)return!1;for(var o=i;o<r;o++)if(O.getChar(t,o)!=e.charAt(o-i))return!1;return!0},O.getChar=function(t,i){return String.fromCharCode(t.getUint8(i))},O.createString=function(t,i,e){for(var r=new ArrayBuffer(2*e),o=new Uint16Array(r),n=0;n<e;n++)o[n]=t.getUint8(i+n);return String.fromCharCode.apply(null,o)},O._$LS=function(t,i,e,r){t instanceof ArrayBuffer&&(t=new DataView(t));var o=e,n=!1,s=!1,_=0,a=O.getChar(t,o);\"-\"==a&&(n=!0,o++);for(var h=!1;o<i;o++){switch(a=O.getChar(t,o)){case\"0\":_*=10;break;case\"1\":_=10*_+1;break;case\"2\":_=10*_+2;break;case\"3\":_=10*_+3;break;case\"4\":_=10*_+4;break;case\"5\":_=10*_+5;break;case\"6\":_=10*_+6;break;case\"7\":_=10*_+7;break;case\"8\":_=10*_+8;break;case\"9\":_=10*_+9;break;case\".\":s=!0,o++,h=!0;break;default:h=!0}if(h)break}if(s)for(var l=.1,$=!1;o<i;o++){switch(a=O.getChar(t,o)){case\"0\":break;case\"1\":_+=1*l;break;case\"2\":_+=2*l;break;case\"3\":_+=3*l;break;case\"4\":_+=4*l;break;case\"5\":_+=5*l;break;case\"6\":_+=6*l;break;case\"7\":_+=7*l;break;case\"8\":_+=8*l;break;case\"9\":_+=9*l;break;default:$=!0}if(l*=.1,$)break}return n&&(_=-_),r[0]=o,_},D.prototype._$zP=function(){this._$Ob=new Array},D.prototype._$F0=function(t){this._$Ob=t._$nP()},D.prototype._$Ur=function(t){if(t._$WS())return!0;for(var i=t._$v2(),e=this._$Ob.length-1;e>=0;--e){var r=this._$Ob[e].getParamIndex(i);if(r==x._$ds&&(r=t.getParamIndex(this._$Ob[e].getParamID())),t._$Xb(r))return!0}return!1},D.prototype._$Q2=function(t,i){for(var e,r,o=this._$Ob.length,n=t._$v2(),s=0,_=0;_<o;_++){var a=this._$Ob[_];if(e=a.getParamIndex(n),e==x._$ds&&(e=t.getParamIndex(a.getParamID()),a._$Pb(e,n)),e<0)throw new Exception(\"err 23242 : \"+a.getParamID());var h=e<0?0:t.getParamFloat(e);r=a._$N2();var l,$,u=a._$d2(),p=-1,f=0;if(r<1);else if(1==r)l=u[0],l-U._$J<h&&h<l+U._$J?(p=0,f=0):(p=0,i[0]=!0);else if(l=u[0],h<l-U._$J)p=0,i[0]=!0;else if(h<l+U._$J)p=0;else{for(var c=!1,d=1;d<r;++d){if($=u[d],h<$+U._$J){$-U._$J<h?p=d:(p=d-1,f=(h-l)/($-l),s++),c=!0;break}l=$}c||(p=r-1,f=0,i[0]=!0)}a._$wr(p),a._$AL(f)}return s},D.prototype._$zr=function(t,i,e){var r=1<<e;r+1>U._$Qb&&console.log(\"err 23245\\n\");for(var o=this._$Ob.length,n=1,s=1,_=0,a=0;a<r;++a)t[a]=0;for(var h=0;h<o;++h){var l=this._$Ob[h];if(0==l._$SL()){var $=l._$Lr()*n;if($<0&&at._$3T)throw new Exception(\"err 23246\");for(var a=0;a<r;++a)t[a]+=$}else{for(var $=n*l._$Lr(),u=n*(l._$Lr()+1),a=0;a<r;++a)t[a]+=(a/s|0)%2==0?$:u;i[_++]=l._$SL(),s*=2}n*=l._$N2()}t[r]=65535,i[_]=-1},D.prototype._$h2=function(t,i,e){for(var r=new Float32Array(i),o=0;o<i;++o)r[o]=e[o];var n=new x;n._$yP(t),n._$t2(i,r),this._$Ob.push(n)},D.prototype._$J2=function(t){for(var i=t,e=this._$Ob.length,r=0;r<e;++r){var o=this._$Ob[r],n=o._$N2(),s=i%o._$N2(),_=o._$d2()[s];console.log(\"%s[%d]=%7.2f / \",o.getParamID(),s,_),i/=n}console.log(\"\\n\")},D.prototype.getParamCount=function(){return this._$Ob.length},D.prototype._$zs=function(){return this._$Ob},R.prototype.identity=function(){for(var t=0;t<16;t++)this.m[t]=t%5==0?1:0},R.prototype.getArray=function(){return this.m},R.prototype.getCopyMatrix=function(){return new Float32Array(this.m)},R.prototype.setMatrix=function(t){if(null!=t&&16==t.length)for(var i=0;i<16;i++)this.m[i]=t[i]},R.prototype.mult=function(t,i,e){return null==i?null:(this==i?this.mult_safe(this.m,t.m,i.m,e):this.mult_fast(this.m,t.m,i.m,e),i)},R.prototype.mult_safe=function(t,i,e,r){if(t==e){var o=new Array(16);this.mult_fast(t,i,o,r);for(var n=15;n>=0;--n)e[n]=o[n]}else this.mult_fast(t,i,e,r)},R.prototype.mult_fast=function(t,i,e,r){r?(e[0]=t[0]*i[0]+t[4]*i[1]+t[8]*i[2],e[4]=t[0]*i[4]+t[4]*i[5]+t[8]*i[6],e[8]=t[0]*i[8]+t[4]*i[9]+t[8]*i[10],e[12]=t[0]*i[12]+t[4]*i[13]+t[8]*i[14]+t[12],e[1]=t[1]*i[0]+t[5]*i[1]+t[9]*i[2],e[5]=t[1]*i[4]+t[5]*i[5]+t[9]*i[6],e[9]=t[1]*i[8]+t[5]*i[9]+t[9]*i[10],e[13]=t[1]*i[12]+t[5]*i[13]+t[9]*i[14]+t[13],e[2]=t[2]*i[0]+t[6]*i[1]+t[10]*i[2],e[6]=t[2]*i[4]+t[6]*i[5]+t[10]*i[6],e[10]=t[2]*i[8]+t[6]*i[9]+t[10]*i[10],e[14]=t[2]*i[12]+t[6]*i[13]+t[10]*i[14]+t[14],e[3]=e[7]=e[11]=0,e[15]=1):(e[0]=t[0]*i[0]+t[4]*i[1]+t[8]*i[2]+t[12]*i[3],e[4]=t[0]*i[4]+t[4]*i[5]+t[8]*i[6]+t[12]*i[7],e[8]=t[0]*i[8]+t[4]*i[9]+t[8]*i[10]+t[12]*i[11],e[12]=t[0]*i[12]+t[4]*i[13]+t[8]*i[14]+t[12]*i[15],e[1]=t[1]*i[0]+t[5]*i[1]+t[9]*i[2]+t[13]*i[3],e[5]=t[1]*i[4]+t[5]*i[5]+t[9]*i[6]+t[13]*i[7],e[9]=t[1]*i[8]+t[5]*i[9]+t[9]*i[10]+t[13]*i[11],e[13]=t[1]*i[12]+t[5]*i[13]+t[9]*i[14]+t[13]*i[15],e[2]=t[2]*i[0]+t[6]*i[1]+t[10]*i[2]+t[14]*i[3],e[6]=t[2]*i[4]+t[6]*i[5]+t[10]*i[6]+t[14]*i[7],e[10]=t[2]*i[8]+t[6]*i[9]+t[10]*i[10]+t[14]*i[11],e[14]=t[2]*i[12]+t[6]*i[13]+t[10]*i[14]+t[14]*i[15],e[3]=t[3]*i[0]+t[7]*i[1]+t[11]*i[2]+t[15]*i[3],e[7]=t[3]*i[4]+t[7]*i[5]+t[11]*i[6]+t[15]*i[7],e[11]=t[3]*i[8]+t[7]*i[9]+t[11]*i[10]+t[15]*i[11],e[15]=t[3]*i[12]+t[7]*i[13]+t[11]*i[14]+t[15]*i[15])},R.prototype.translate=function(t,i,e){this.m[12]=this.m[0]*t+this.m[4]*i+this.m[8]*e+this.m[12],this.m[13]=this.m[1]*t+this.m[5]*i+this.m[9]*e+this.m[13],this.m[14]=this.m[2]*t+this.m[6]*i+this.m[10]*e+this.m[14],this.m[15]=this.m[3]*t+this.m[7]*i+this.m[11]*e+this.m[15]},R.prototype.scale=function(t,i,e){this.m[0]*=t,this.m[4]*=i,this.m[8]*=e,this.m[1]*=t,this.m[5]*=i,this.m[9]*=e,this.m[2]*=t,this.m[6]*=i,this.m[10]*=e,this.m[3]*=t,this.m[7]*=i,this.m[11]*=e},R.prototype.rotateX=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[4];this.m[4]=r*i+this.m[8]*e,this.m[8]=r*-e+this.m[8]*i,r=this.m[5],this.m[5]=r*i+this.m[9]*e,this.m[9]=r*-e+this.m[9]*i,r=this.m[6],this.m[6]=r*i+this.m[10]*e,this.m[10]=r*-e+this.m[10]*i,r=this.m[7],this.m[7]=r*i+this.m[11]*e,this.m[11]=r*-e+this.m[11]*i},R.prototype.rotateY=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[0];this.m[0]=r*i+this.m[8]*-e,this.m[8]=r*e+this.m[8]*i,r=this.m[1],this.m[1]=r*i+this.m[9]*-e,this.m[9]=r*e+this.m[9]*i,r=m[2],this.m[2]=r*i+this.m[10]*-e,this.m[10]=r*e+this.m[10]*i,r=m[3],this.m[3]=r*i+this.m[11]*-e,this.m[11]=r*e+this.m[11]*i},R.prototype.rotateZ=function(t){var i=Lt.fcos(t),e=Lt._$9(t),r=this.m[0];this.m[0]=r*i+this.m[4]*e,this.m[4]=r*-e+this.m[4]*i,r=this.m[1],this.m[1]=r*i+this.m[5]*e,this.m[5]=r*-e+this.m[5]*i,r=this.m[2],this.m[2]=r*i+this.m[6]*e,this.m[6]=r*-e+this.m[6]*i,r=this.m[3],this.m[3]=r*i+this.m[7]*e,this.m[7]=r*-e+this.m[7]*i},b.prototype=new et,b._$tP=new Object,b._$27=function(){b._$tP.clear()},b.getID=function(t){var i=b._$tP[t];return null==i&&(i=new b(t),b._$tP[t]=i),i},b.prototype._$3s=function(){return new b},F._$kS=-1,F._$pS=0,F._$hb=1,F.STATE_IDENTITY=0,F._$gb=1,F._$fo=2,F._$go=4,F.prototype.transform=function(t,i,e){var r,o,n,s,_,a,h=0,l=0;switch(this._$hi){default:return;case F._$go|F._$fo|F._$gb:for(r=this._$7,o=this._$H,n=this._$k,s=this._$f,_=this._$g,a=this._$w;--e>=0;){var $=t[h++],u=t[h++];i[l++]=r*$+o*u+n,i[l++]=s*$+_*u+a}return;case F._$go|F._$fo:for(r=this._$7,o=this._$H,s=this._$f,_=this._$g;--e>=0;){var $=t[h++],u=t[h++];i[l++]=r*$+o*u,i[l++]=s*$+_*u}return;case F._$go|F._$gb:for(o=this._$H,n=this._$k,s=this._$f,a=this._$w;--e>=0;){var $=t[h++];i[l++]=o*t[h++]+n,i[l++]=s*$+a}return;case F._$go:for(o=this._$H,s=this._$f;--e>=0;){var $=t[h++];i[l++]=o*t[h++],i[l++]=s*$}return;case F._$fo|F._$gb:for(r=this._$7,n=this._$k,_=this._$g,a=this._$w;--e>=0;)i[l++]=r*t[h++]+n,i[l++]=_*t[h++]+a;return;case F._$fo:for(r=this._$7,_=this._$g;--e>=0;)i[l++]=r*t[h++],i[l++]=_*t[h++];return;case F._$gb:for(n=this._$k,a=this._$w;--e>=0;)i[l++]=t[h++]+n,i[l++]=t[h++]+a;return;case F.STATE_IDENTITY:return void(t==i&&h==l||w._$jT(t,h,i,l,2*e))}},F.prototype.update=function(){0==this._$H&&0==this._$f?1==this._$7&&1==this._$g?0==this._$k&&0==this._$w?(this._$hi=F.STATE_IDENTITY,this._$Z=F._$pS):(this._$hi=F._$gb,this._$Z=F._$hb):0==this._$k&&0==this._$w?(this._$hi=F._$fo,this._$Z=F._$kS):(this._$hi=F._$fo|F._$gb,this._$Z=F._$kS):0==this._$7&&0==this._$g?0==this._$k&&0==this._$w?(this._$hi=F._$go,this._$Z=F._$kS):(this._$hi=F._$go|F._$gb,this._$Z=F._$kS):0==this._$k&&0==this._$w?(this._$hi=F._$go|F._$fo,this._$Z=F._$kS):(this._$hi=F._$go|F._$fo|F._$gb,this._$Z=F._$kS)},F.prototype._$RT=function(t){this._$IT(t);var i=t[0],e=t[2],r=t[1],o=t[3],n=Math.sqrt(i*i+r*r),s=i*o-e*r;0==n?at._$so&&console.log(\"affine._$RT() / rt==0\"):(t[0]=n,t[1]=s/n,t[2]=(r*o+i*e)/s,t[3]=Math.atan2(r,i))},F.prototype._$ho=function(t,i,e,r){var o=new Float32Array(6),n=new Float32Array(6);t._$RT(o),i._$RT(n);var s=new Float32Array(6);s[0]=o[0]+(n[0]-o[0])*e,s[1]=o[1]+(n[1]-o[1])*e,s[2]=o[2]+(n[2]-o[2])*e,s[3]=o[3]+(n[3]-o[3])*e,s[4]=o[4]+(n[4]-o[4])*e,s[5]=o[5]+(n[5]-o[5])*e,r._$CT(s)},F.prototype._$CT=function(t){var i=Math.cos(t[3]),e=Math.sin(t[3]);this._$7=t[0]*i,this._$f=t[0]*e,this._$H=t[1]*(t[2]*i-e),this._$g=t[1]*(t[2]*e+i),this._$k=t[4],this._$w=t[5],this.update()},F.prototype._$IT=function(t){t[0]=this._$7,t[1]=this._$f,t[2]=this._$H,t[3]=this._$g,t[4]=this._$k,t[5]=this._$w},C.prototype=new s,C._$cs=\"VISIBLE:\",C._$ar=\"LAYOUT:\",C._$Co=0,C._$D2=[],C._$1T=1,C.loadMotion=function(t){var i=new C,e=[0],r=t.length;i._$yT=0;for(var o=0;o<r;++o){var n=255&t[o];if(\"\\n\"!=n&&\"\\r\"!=n)if(\"#\"!=n)if(\"$\"!=n){if(\"a\"<=n&&n<=\"z\"||\"A\"<=n&&n<=\"Z\"||\"_\"==n){for(var s=o,_=-1;o<r&&(\"\\r\"!=(n=255&t[o])&&\"\\n\"!=n);++o)if(\"=\"==n){_=o;break}if(_>=0){var a=new B;O.startsWith(t,s,C._$cs)?(a._$RP=B._$hs,a._$4P=new String(t,s,_-s)):O.startsWith(t,s,C._$ar)?(a._$4P=new String(t,s+7,_-s-7),O.startsWith(t,s+7,\"ANCHOR_X\")?a._$RP=B._$xs:O.startsWith(t,s+7,\"ANCHOR_Y\")?a._$RP=B._$us:O.startsWith(t,s+7,\"SCALE_X\")?a._$RP=B._$qs:O.startsWith(t,s+7,\"SCALE_Y\")?a._$RP=B._$Ys:O.startsWith(t,s+7,\"X\")?a._$RP=B._$ws:O.startsWith(t,s+7,\"Y\")&&(a._$RP=B._$Ns)):(a._$RP=B._$Fr,a._$4P=new String(t,s,_-s)),i.motions.push(a);var h=0;for(C._$D2.clear(),o=_+1;o<r&&(\"\\r\"!=(n=255&t[o])&&\"\\n\"!=n);++o)if(\",\"!=n&&\" \"!=n&&\"\\t\"!=n){var l=O._$LS(t,r,o,e);if(e[0]>0){C._$D2.push(l),h++;var $=e[0];if($<o){console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break}o=$}}a._$I0=C._$D2._$BL(),h>i._$yT&&(i._$yT=h)}}}else{for(var s=o,_=-1;o<r&&(\"\\r\"!=(n=255&t[o])&&\"\\n\"!=n);++o)if(\"=\"==n){_=o;break}var u=!1;if(_>=0)for(_==s+4&&\"f\"==t[s+1]&&\"p\"==t[s+2]&&\"s\"==t[s+3]&&(u=!0),o=_+1;o<r&&(\"\\r\"!=(n=255&t[o])&&\"\\n\"!=n);++o)if(\",\"!=n&&\" \"!=n&&\"\\t\"!=n){var l=O._$LS(t,r,o,e);e[0]>0&&u&&5<l&&l<121&&(i._$D0=l),o=e[0]}for(;o<r&&(\"\\n\"!=t[o]&&\"\\r\"!=t[o]);++o);}else for(;o<r&&(\"\\n\"!=t[o]&&\"\\r\"!=t[o]);++o);}return i._$AS=1e3*i._$yT/i._$D0|0,i},C.prototype.getDurationMSec=function(){return this._$AS},C.prototype.dump=function(){for(var t=0;t<this.motions.length;t++){var i=this.motions[t];console.log(\"_$wL[%s] [%d]. \",i._$4P,i._$I0.length);for(var e=0;e<i._$I0.length&&e<10;e++)console.log(\"%5.2f ,\",i._$I0[e]);console.log(\"\\n\")}},C.prototype.updateParamExe=function(t,i,e,r){for(var o=i-r._$z2,n=o*this._$D0/1e3,s=0|n,_=n-s,a=0;a<this.motions.length;a++){var h=this.motions[a],l=h._$I0.length,$=h._$4P;if(h._$RP==B._$hs){var u=h._$I0[s>=l?l-1:s];t.setParamFloat($,u)}else if(B._$ws<=h._$RP&&h._$RP<=B._$Ys);else{var p=t.getParamFloat($),f=h._$I0[s>=l?l-1:s],c=h._$I0[s+1>=l?l-1:s+1],d=f+(c-f)*_,g=p+(d-p)*e;t.setParamFloat($,g)}}s>=this._$yT&&(this._$E?(r._$z2=i,this.loopFadeIn&&(r._$bs=i)):r._$9L=!0)},C.prototype._$r0=function(){return this._$E},C.prototype._$aL=function(t){this._$E=t},C.prototype.isLoopFadeIn=function(){return this.loopFadeIn},C.prototype.setLoopFadeIn=function(t){this.loopFadeIn=t},N.prototype.clear=function(){this.size=0},N.prototype.add=function(t){if(this._$P.length<=this.size){var i=new Float32Array(2*this.size);w._$jT(this._$P,0,i,0,this.size),this._$P=i}this._$P[this.size++]=t},N.prototype._$BL=function(){var t=new Float32Array(this.size);return w._$jT(this._$P,0,t,0,this.size),t},B._$Fr=0,B._$hs=1,B._$ws=100,B._$Ns=101,B._$xs=102,B._$us=103,B._$qs=104,B._$Ys=105,U._$Ms=1,U._$Qs=2,U._$i2=0,U._$No=2,U._$do=U._$Ms,U._$Ls=!0,U._$1r=5,U._$Qb=65,U._$J=1e-4,U._$FT=.001,U._$Ss=3,G._$o7=6,G._$S7=7,G._$s7=8,G._$77=9,G.LIVE2D_FORMAT_VERSION_V2_10_SDK2=10,G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1=11,G._$T7=G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1,G._$Is=-2004318072,G._$h0=0,G._$4L=23,G._$7P=33,G._$uT=function(t){console.log(\"_$bo :: _$6 _$mo _$E0 : %d\\n\",t)},G._$9o=function(t){if(t<40)return G._$uT(t),null;if(t<50)return G._$uT(t),null;if(t<60)return G._$uT(t),null;if(t<100)switch(t){case 65:return new Z;case 66:return new D;case 67:return new x;case 68:return new z;case 69:return new P;case 70:return new $t;default:return G._$uT(t),null}else if(t<150)switch(t){case 131:return new st;case 133:return new tt;case 136:return new p;case 137:return new ot;case 142:return new j}return G._$uT(t),null},Y._$HP=0,Y._$_0=!0;Y._$V2=-1,Y._$W0=-1,Y._$jr=!1,Y._$ZS=!0,Y._$tr=-1e6,Y._$lr=1e6,Y._$is=32,Y._$e=!1,Y.prototype.getDrawDataIndex=function(t){for(var i=this._$aS.length-1;i>=0;--i)if(null!=this._$aS[i]&&this._$aS[i].getDrawDataID()==t)return i;return-1},Y.prototype.getDrawData=function(t){if(t instanceof b){if(null==this._$Bo){this._$Bo=new Object;for(var i=this._$aS.length,e=0;e<i;e++){var r=this._$aS[e],o=r.getDrawDataID();null!=o&&(this._$Bo[o]=r)}}return this._$Bo[id]}return t<this._$aS.length?this._$aS[t]:null},Y.prototype.release=function(){this._$3S.clear(),this._$aS.clear(),this._$F2.clear(),null!=this._$Bo&&this._$Bo.clear(),this._$db.clear(),this._$8b.clear(),this._$Hr.clear()},Y.prototype.init=function(){this._$co++,this._$F2.length>0&&this.release();for(var t=this._$Ri.getModelImpl(),i=t._$Xr(),r=i.length,o=new Array,n=new Array,s=0;s<r;++s){var _=i[s];this._$F2.push(_),this._$Hr.push(_.init(this));for(var a=_.getBaseData(),h=a.length,l=0;l<h;++l)o.push(a[l]);for(var l=0;l<h;++l){var $=a[l].init(this);$._$l2(s),n.push($)}for(var u=_.getDrawData(),p=u.length,l=0;l<p;++l){var f=u[l],c=f.init(this);c._$IP=s,this._$aS.push(f),this._$8b.push(c)}}for(var d=o.length,g=yt._$2o();;){for(var y=!1,s=0;s<d;++s){var m=o[s];if(null!=m){var T=m.getTargetBaseDataID();(null==T||T==g||this.getBaseDataIndex(T)>=0)&&(this._$3S.push(m),this._$db.push(n[s]),o[s]=null,y=!0)}}if(!y)break}var P=t._$E2();if(null!=P){var S=P._$1s();if(null!=S)for(var v=S.length,s=0;s<v;++s){var L=S[s];null!=L&&this._$02(L.getParamID(),L.getDefaultValue(),L.getMinValue(),L.getMaxValue())}}this.clipManager=new e(this.dp_webgl),this.clipManager.init(this,this._$aS,this._$8b),this._$QT=!0},Y.prototype.update=function(){Y._$e&&_.start(\"_$zL\");for(var t=this._$_2.length,i=0;i<t;i++)this._$_2[i]!=this._$vr[i]&&(this._$Js[i]=Y._$ZS,this._$vr[i]=this._$_2[i]);var e=this._$3S.length,r=this._$aS.length,o=W._$or(),n=W._$Pr(),s=n-o+1;(null==this._$Ws||this._$Ws.length<s)&&(this._$Ws=new Int16Array(s),this._$Vs=new Int16Array(s));for(var i=0;i<s;i++)this._$Ws[i]=Y._$V2,this._$Vs[i]=Y._$V2;(null==this._$Er||this._$Er.length<r)&&(this._$Er=new Int16Array(r));for(var i=0;i<r;i++)this._$Er[i]=Y._$W0;Y._$e&&_.dump(\"_$zL\"),Y._$e&&_.start(\"_$UL\");for(var a=null,h=0;h<e;++h){var l=this._$3S[h],$=this._$db[h];try{l._$Nr(this,$),l._$2b(this,$)}catch(t){null==a&&(a=t)}}null!=a&&Y._$_0&&_._$Rb(a),Y._$e&&_.dump(\"_$UL\"),Y._$e&&_.start(\"_$DL\");for(var u=null,p=0;p<r;++p){var f=this._$aS[p],c=this._$8b[p];try{if(f._$Nr(this,c),c._$u2())continue;f._$2b(this,c);var d,g=Math.floor(f._$zS(this,c)-o);try{d=this._$Vs[g]}catch(t){console.log(\"_$li :: %s / %s \\t\\t\\t\\t@@_$fS\\n\",t.toString(),f.getDrawDataID().toString()),g=Math.floor(f._$zS(this,c)-o);continue}d==Y._$V2?this._$Ws[g]=p:this._$Er[d]=p,this._$Vs[g]=p}catch(t){null==u&&(u=t,at._$sT(at._$H7))}}null!=u&&Y._$_0&&_._$Rb(u),Y._$e&&_.dump(\"_$DL\"),Y._$e&&_.start(\"_$eL\");for(var i=this._$Js.length-1;i>=0;i--)this._$Js[i]=Y._$jr;return this._$QT=!1,Y._$e&&_.dump(\"_$eL\"),!1},Y.prototype.preDraw=function(t){null!=this.clipManager&&(t._$ZT(),this.clipManager.setupClip(this,t))},Y.prototype.draw=function(t){if(null==this._$Ws)return void _._$li(\"call _$Ri.update() before _$Ri.draw() \");var i=this._$Ws.length;t._$ZT();for(var e=0;e<i;++e){var r=this._$Ws[e];if(r!=Y._$V2)for(;;){var o=this._$aS[r],n=this._$8b[r];if(n._$yo()){var s=n._$IP,a=this._$Hr[s];n._$VS=a.getPartsOpacity(),o.draw(t,this,n)}var h=this._$Er[r];if(h<=r||h==Y._$W0)break;r=h}}},Y.prototype.getParamIndex=function(t){for(var i=this._$pb.length-1;i>=0;--i)if(this._$pb[i]==t)return i;return this._$02(t,0,Y._$tr,Y._$lr)},Y.prototype._$BS=function(t){return this.getBaseDataIndex(t)},Y.prototype.getBaseDataIndex=function(t){for(var i=this._$3S.length-1;i>=0;--i)if(null!=this._$3S[i]&&this._$3S[i].getBaseDataID()==t)return i;return-1},Y.prototype._$UT=function(t,i){var e=new Float32Array(i);return w._$jT(t,0,e,0,t.length),e},Y.prototype._$02=function(t,i,e,r){if(this._$qo>=this._$pb.length){var o=this._$pb.length,n=new Array(2*o);w._$jT(this._$pb,0,n,0,o),this._$pb=n,this._$_2=this._$UT(this._$_2,2*o),this._$vr=this._$UT(this._$vr,2*o),this._$Rr=this._$UT(this._$Rr,2*o),this._$Or=this._$UT(this._$Or,2*o);var s=new Array;w._$jT(this._$Js,0,s,0,o),this._$Js=s}return this._$pb[this._$qo]=t,this._$_2[this._$qo]=i,this._$vr[this._$qo]=i,this._$Rr[this._$qo]=e,this._$Or[this._$qo]=r,this._$Js[this._$qo]=Y._$ZS,this._$qo++},Y.prototype._$Zo=function(t,i){this._$3S[t]=i},Y.prototype.setParamFloat=function(t,i){i<this._$Rr[t]&&(i=this._$Rr[t]),i>this._$Or[t]&&(i=this._$Or[t]),this._$_2[t]=i},Y.prototype.loadParam=function(){var t=this._$_2.length;t>this._$fs.length&&(t=this._$fs.length),w._$jT(this._$fs,0,this._$_2,0,t)},Y.prototype.saveParam=function(){var t=this._$_2.length;t>this._$fs.length&&(this._$fs=new Float32Array(t)),w._$jT(this._$_2,0,this._$fs,0,t)},Y.prototype._$v2=function(){return this._$co},Y.prototype._$WS=function(){return this._$QT},Y.prototype._$Xb=function(t){return this._$Js[t]==Y._$ZS},Y.prototype._$vs=function(){return this._$Es},Y.prototype._$Tr=function(){return this._$ZP},Y.prototype.getBaseData=function(t){return this._$3S[t]},Y.prototype.getParamFloat=function(t){return this._$_2[t]},Y.prototype.getParamMax=function(t){return this._$Or[t]},Y.prototype.getParamMin=function(t){return this._$Rr[t]},Y.prototype.setPartsOpacity=function(t,i){this._$Hr[t].setPartsOpacity(i)},Y.prototype.getPartsOpacity=function(t){return this._$Hr[t].getPartsOpacity()},Y.prototype.getPartsDataIndex=function(t){for(var i=this._$F2.length-1;i>=0;--i)if(null!=this._$F2[i]&&this._$F2[i]._$p2()==t)return i;return-1},Y.prototype._$q2=function(t){return this._$db[t]},Y.prototype._$C2=function(t){return this._$8b[t]},Y.prototype._$Bb=function(t){return this._$Hr[t]},Y.prototype._$5s=function(t,i){for(var e=this._$Ws.length,r=t,o=0;o<e;++o){var n=this._$Ws[o];if(n!=Y._$V2)for(;;){var s=this._$8b[n];s._$yo()&&(s._$GT()._$B2(this,s,r),r+=i);var _=this._$Er[n];if(_<=n||_==Y._$W0)break;n=_}}},Y.prototype.setDrawParam=function(t){this.dp_webgl=t},Y.prototype.getDrawParam=function(){return this.dp_webgl},k._$0T=function(t){return k._$0T(new _$5(t))},k._$0T=function(t){if(!t.exists())throw new _$ls(t._$3b());for(var i,e=t.length(),r=new Int8Array(e),o=new _$Xs(new _$kb(t),8192),n=0;(i=o.read(r,n,e-n))>0;)n+=i;return r},k._$C=function(t){var i=null,e=null;try{i=t instanceof Array?t:new _$Xs(t,8192),e=new _$js;for(var r,o=new Int8Array(1e3);(r=i.read(o))>0;)e.write(o,0,r);return e._$TS()}finally{null!=t&&t.close(),null!=e&&(e.flush(),e.close())}},V.prototype._$T2=function(){return w.getUserTimeMSec()+Math._$10()*(2*this._$Br-1)},V.prototype._$uo=function(t){this._$Br=t},V.prototype._$QS=function(t,i,e){this._$Dr=t,this._$Cb=i,this._$mr=e},V.prototype._$7T=function(t){var i,e=w.getUserTimeMSec(),r=0;switch(this._$_L){case STATE_CLOSING:r=(e-this._$bb)/this._$Dr,r>=1&&(r=1,this._$_L=wt.STATE_CLOSED,this._$bb=e),i=1-r;break;case STATE_CLOSED:r=(e-this._$bb)/this._$Cb,r>=1&&(this._$_L=wt.STATE_OPENING,this._$bb=e),i=0;break;case STATE_OPENING:r=(e-this._$bb)/this._$mr,r>=1&&(r=1,this._$_L=wt.STATE_INTERVAL,this._$12=this._$T2()),i=r;break;case STATE_INTERVAL:this._$12<e&&(this._$_L=wt.STATE_CLOSING,this._$bb=e),i=1;break;case STATE_FIRST:default:this._$_L=wt.STATE_INTERVAL,this._$12=this._$T2(),i=1}this._$jo||(i=-i),t.setParamFloat(this._$iL,i),t.setParamFloat(this._$0L,i)};var wt=function(){};wt.STATE_FIRST=\"STATE_FIRST\",wt.STATE_INTERVAL=\"STATE_INTERVAL\",wt.STATE_CLOSING=\"STATE_CLOSING\",wt.STATE_CLOSED=\"STATE_CLOSED\",wt.STATE_OPENING=\"STATE_OPENING\",X.prototype=new E,X._$As=32,X._$Gr=!1,X._$NT=null,X._$vS=null,X._$no=null,X._$9r=function(t){return new Float32Array(t)},X._$vb=function(t){return new Int16Array(t)},X._$cr=function(t,i){return null==t||t._$yL()<i.length?(t=X._$9r(2*i.length),t.put(i),t._$oT(0)):(t.clear(),t.put(i),t._$oT(0)),t},X._$mb=function(t,i){return null==t||t._$yL()<i.length?(t=X._$vb(2*i.length),t.put(i),t._$oT(0)):(t.clear(),t.put(i),t._$oT(0)),t},X._$Hs=function(){return X._$Gr},X._$as=function(t){X._$Gr=t},X.prototype.setGL=function(t){this.gl=t},X.prototype.setTransform=function(t){this.transform=t},X.prototype._$ZT=function(){},X.prototype._$Uo=function(t,i,e,r,o,n,s,_){if(!(n<.01)){var a=this._$U2[t],h=n>.9?at.EXPAND_W:0;this.gl.drawElements(a,e,r,o,n,h,this.transform,_)}},X.prototype._$Rs=function(){throw new Error(\"_$Rs\")},X.prototype._$Ds=function(t){throw new Error(\"_$Ds\")},X.prototype._$K2=function(){for(var t=0;t<this._$sb.length;t++){0!=this._$sb[t]&&(this.gl._$Sr(1,this._$sb,t),this._$sb[t]=0)}},X.prototype.setTexture=function(t,i){this._$sb.length<t+1&&this._$nS(t),this._$sb[t]=i},X.prototype.setTexture=function(t,i){this._$sb.length<t+1&&this._$nS(t),this._$U2[t]=i},X.prototype._$nS=function(t){var i=Math.max(2*this._$sb.length,t+1+10),e=new Int32Array(i);w._$jT(this._$sb,0,e,0,this._$sb.length),this._$sb=e;var r=new Array;w._$jT(this._$U2,0,r,0,this._$U2.length),this._$U2=r},z.prototype=new I,z._$Xo=new Float32Array(2),z._$io=new Float32Array(2),z._$0o=new Float32Array(2),z._$Lo=new Float32Array(2),z._$To=new Float32Array(2),z._$Po=new Float32Array(2),z._$gT=new Array,z.prototype._$zP=function(){this._$GS=new D,this._$GS._$zP(),this._$Y0=new Array},z.prototype.getType=function(){return I._$c2},z.prototype._$F0=function(t){I.prototype._$F0.call(this,t),this._$GS=t._$nP(),this._$Y0=t._$nP(),I.prototype.readV2_opacity.call(this,t)},z.prototype.init=function(t){var i=new H(this);return i._$Yr=new P,this._$32()&&(i._$Wr=new P),i},z.prototype._$Nr=function(t,i){this!=i._$GT()&&console.log(\"### assert!! ### \");var e=i;if(this._$GS._$Ur(t)){var r=z._$gT;r[0]=!1;var o=this._$GS._$Q2(t,r);i._$Ib(r[0]),this.interpolateOpacity(t,this._$GS,i,r);var n=t._$vs(),s=t._$Tr();if(this._$GS._$zr(n,s,o),o<=0){var _=this._$Y0[n[0]];e._$Yr.init(_)}else if(1==o){var _=this._$Y0[n[0]],a=this._$Y0[n[1]],h=s[0];e._$Yr._$fL=_._$fL+(a._$fL-_._$fL)*h,e._$Yr._$gL=_._$gL+(a._$gL-_._$gL)*h,e._$Yr._$B0=_._$B0+(a._$B0-_._$B0)*h,e._$Yr._$z0=_._$z0+(a._$z0-_._$z0)*h,e._$Yr._$qT=_._$qT+(a._$qT-_._$qT)*h}else if(2==o){var _=this._$Y0[n[0]],a=this._$Y0[n[1]],l=this._$Y0[n[2]],$=this._$Y0[n[3]],h=s[0],u=s[1],p=_._$fL+(a._$fL-_._$fL)*h,f=l._$fL+($._$fL-l._$fL)*h;e._$Yr._$fL=p+(f-p)*u,p=_._$gL+(a._$gL-_._$gL)*h,f=l._$gL+($._$gL-l._$gL)*h,e._$Yr._$gL=p+(f-p)*u,p=_._$B0+(a._$B0-_._$B0)*h,f=l._$B0+($._$B0-l._$B0)*h,e._$Yr._$B0=p+(f-p)*u,p=_._$z0+(a._$z0-_._$z0)*h,f=l._$z0+($._$z0-l._$z0)*h,e._$Yr._$z0=p+(f-p)*u,p=_._$qT+(a._$qT-_._$qT)*h,f=l._$qT+($._$qT-l._$qT)*h,e._$Yr._$qT=p+(f-p)*u}else if(3==o){var c=this._$Y0[n[0]],d=this._$Y0[n[1]],g=this._$Y0[n[2]],y=this._$Y0[n[3]],m=this._$Y0[n[4]],T=this._$Y0[n[5]],P=this._$Y0[n[6]],S=this._$Y0[n[7]],h=s[0],u=s[1],v=s[2],p=c._$fL+(d._$fL-c._$fL)*h,f=g._$fL+(y._$fL-g._$fL)*h,L=m._$fL+(T._$fL-m._$fL)*h,M=P._$fL+(S._$fL-P._$fL)*h;e._$Yr._$fL=(1-v)*(p+(f-p)*u)+v*(L+(M-L)*u),p=c._$gL+(d._$gL-c._$gL)*h,f=g._$gL+(y._$gL-g._$gL)*h,L=m._$gL+(T._$gL-m._$gL)*h,M=P._$gL+(S._$gL-P._$gL)*h,e._$Yr._$gL=(1-v)*(p+(f-p)*u)+v*(L+(M-L)*u),p=c._$B0+(d._$B0-c._$B0)*h,f=g._$B0+(y._$B0-g._$B0)*h,L=m._$B0+(T._$B0-m._$B0)*h,M=P._$B0+(S._$B0-P._$B0)*h,e._$Yr._$B0=(1-v)*(p+(f-p)*u)+v*(L+(M-L)*u),p=c._$z0+(d._$z0-c._$z0)*h,f=g._$z0+(y._$z0-g._$z0)*h,L=m._$z0+(T._$z0-m._$z0)*h,M=P._$z0+(S._$z0-P._$z0)*h,e._$Yr._$z0=(1-v)*(p+(f-p)*u)+v*(L+(M-L)*u),p=c._$qT+(d._$qT-c._$qT)*h,f=g._$qT+(y._$qT-g._$qT)*h,L=m._$qT+(T._$qT-m._$qT)*h,M=P._$qT+(S._$qT-P._$qT)*h,e._$Yr._$qT=(1-v)*(p+(f-p)*u)+v*(L+(M-L)*u)}else if(4==o){var E=this._$Y0[n[0]],A=this._$Y0[n[1]],I=this._$Y0[n[2]],w=this._$Y0[n[3]],x=this._$Y0[n[4]],O=this._$Y0[n[5]],D=this._$Y0[n[6]],R=this._$Y0[n[7]],b=this._$Y0[n[8]],F=this._$Y0[n[9]],C=this._$Y0[n[10]],N=this._$Y0[n[11]],B=this._$Y0[n[12]],U=this._$Y0[n[13]],G=this._$Y0[n[14]],Y=this._$Y0[n[15]],h=s[0],u=s[1],v=s[2],k=s[3],p=E._$fL+(A._$fL-E._$fL)*h,f=I._$fL+(w._$fL-I._$fL)*h,L=x._$fL+(O._$fL-x._$fL)*h,M=D._$fL+(R._$fL-D._$fL)*h,V=b._$fL+(F._$fL-b._$fL)*h,X=C._$fL+(N._$fL-C._$fL)*h,H=B._$fL+(U._$fL-B._$fL)*h,W=G._$fL+(Y._$fL-G._$fL)*h;e._$Yr._$fL=(1-k)*((1-v)*(p+(f-p)*u)+v*(L+(M-L)*u))+k*((1-v)*(V+(X-V)*u)+v*(H+(W-H)*u)),p=E._$gL+(A._$gL-E._$gL)*h,f=I._$gL+(w._$gL-I._$gL)*h,L=x._$gL+(O._$gL-x._$gL)*h,M=D._$gL+(R._$gL-D._$gL)*h,V=b._$gL+(F._$gL-b._$gL)*h,X=C._$gL+(N._$gL-C._$gL)*h,H=B._$gL+(U._$gL-B._$gL)*h,W=G._$gL+(Y._$gL-G._$gL)*h,e._$Yr._$gL=(1-k)*((1-v)*(p+(f-p)*u)+v*(L+(M-L)*u))+k*((1-v)*(V+(X-V)*u)+v*(H+(W-H)*u)),p=E._$B0+(A._$B0-E._$B0)*h,f=I._$B0+(w._$B0-I._$B0)*h,L=x._$B0+(O._$B0-x._$B0)*h,M=D._$B0+(R._$B0-D._$B0)*h,V=b._$B0+(F._$B0-b._$B0)*h,X=C._$B0+(N._$B0-C._$B0)*h,H=B._$B0+(U._$B0-B._$B0)*h,W=G._$B0+(Y._$B0-G._$B0)*h,e._$Yr._$B0=(1-k)*((1-v)*(p+(f-p)*u)+v*(L+(M-L)*u))+k*((1-v)*(V+(X-V)*u)+v*(H+(W-H)*u)),p=E._$z0+(A._$z0-E._$z0)*h,f=I._$z0+(w._$z0-I._$z0)*h,L=x._$z0+(O._$z0-x._$z0)*h,M=D._$z0+(R._$z0-D._$z0)*h,V=b._$z0+(F._$z0-b._$z0)*h,X=C._$z0+(N._$z0-C._$z0)*h,H=B._$z0+(U._$z0-B._$z0)*h,W=G._$z0+(Y._$z0-G._$z0)*h,e._$Yr._$z0=(1-k)*((1-v)*(p+(f-p)*u)+v*(L+(M-L)*u))+k*((1-v)*(V+(X-V)*u)+v*(H+(W-H)*u)),p=E._$qT+(A._$qT-E._$qT)*h,f=I._$qT+(w._$qT-I._$qT)*h,L=x._$qT+(O._$qT-x._$qT)*h,M=D._$qT+(R._$qT-D._$qT)*h,V=b._$qT+(F._$qT-b._$qT)*h,X=C._$qT+(N._$qT-C._$qT)*h,H=B._$qT+(U._$qT-B._$qT)*h,W=G._$qT+(Y._$qT-G._$qT)*h,e._$Yr._$qT=(1-k)*((1-v)*(p+(f-p)*u)+v*(L+(M-L)*u))+k*((1-v)*(V+(X-V)*u)+v*(H+(W-H)*u))}else{for(var j=0|Math.pow(2,o),q=new Float32Array(j),J=0;J<j;J++){for(var Q=J,Z=1,K=0;K<o;K++)Z*=Q%2==0?1-s[K]:s[K],Q/=2;q[J]=Z}for(var tt=new Array,it=0;it<j;it++)tt[it]=this._$Y0[n[it]];for(var et=0,rt=0,ot=0,nt=0,st=0,it=0;it<j;it++)et+=q[it]*tt[it]._$fL,rt+=q[it]*tt[it]._$gL,ot+=q[it]*tt[it]._$B0,nt+=q[it]*tt[it]._$z0,st+=q[it]*tt[it]._$qT;e._$Yr._$fL=et,e._$Yr._$gL=rt,e._$Yr._$B0=ot,e._$Yr._$z0=nt,e._$Yr._$qT=st}var _=this._$Y0[n[0]];e._$Yr.reflectX=_.reflectX,e._$Yr.reflectY=_.reflectY}},z.prototype._$2b=function(t,i){this!=i._$GT()&&console.log(\"### assert!! ### \");var e=i;if(e._$hS(!0),this._$32()){var r=this.getTargetBaseDataID();if(e._$8r==I._$ur&&(e._$8r=t.getBaseDataIndex(r)),e._$8r<0)at._$so&&_._$li(\"_$L _$0P _$G :: %s\",r),e._$hS(!1);else{var o=t.getBaseData(e._$8r);if(null!=o){var n=t._$q2(e._$8r),s=z._$Xo;s[0]=e._$Yr._$fL,s[1]=e._$Yr._$gL;var a=z._$io;a[0]=0,a[1]=-.1;n._$GT().getType()==I._$c2?a[1]=-10:a[1]=-.1;var h=z._$0o;this._$Jr(t,o,n,s,a,h);var l=Lt._$92(a,h);o._$nb(t,n,s,s,1,0,2),e._$Wr._$fL=s[0],e._$Wr._$gL=s[1],e._$Wr._$B0=e._$Yr._$B0,e._$Wr._$z0=e._$Yr._$z0,e._$Wr._$qT=e._$Yr._$qT-l*Lt._$NS;var $=n.getTotalScale();e.setTotalScale_notForClient($*e._$Wr._$B0);var u=n.getTotalOpacity();e.setTotalOpacity(u*e.getInterpolatedOpacity()),e._$Wr.reflectX=e._$Yr.reflectX,e._$Wr.reflectY=e._$Yr.reflectY,e._$hS(n._$yo())}else e._$hS(!1)}}else e.setTotalScale_notForClient(e._$Yr._$B0),e.setTotalOpacity(e.getInterpolatedOpacity())},z.prototype._$nb=function(t,i,e,r,o,n,s){this!=i._$GT()&&console.log(\"### assert!! ### \");for(var _,a,h=i,l=null!=h._$Wr?h._$Wr:h._$Yr,$=Math.sin(Lt._$bS*l._$qT),u=Math.cos(Lt._$bS*l._$qT),p=h.getTotalScale(),f=l.reflectX?-1:1,c=l.reflectY?-1:1,d=u*p*f,g=-$*p*c,y=$*p*f,m=u*p*c,T=l._$fL,P=l._$gL,S=o*s,v=n;v<S;v+=s)_=e[v],a=e[v+1],r[v]=d*_+g*a+T,r[v+1]=y*_+m*a+P},z.prototype._$Jr=function(t,i,e,r,o,n){i!=e._$GT()&&console.log(\"### assert!! ### \");var s=z._$Lo;z._$Lo[0]=r[0],z._$Lo[1]=r[1],i._$nb(t,e,s,s,1,0,2);for(var _=z._$To,a=z._$Po,h=1,l=0;l<10;l++){if(a[0]=r[0]+h*o[0],a[1]=r[1]+h*o[1],i._$nb(t,e,a,_,1,0,2),_[0]-=s[0],_[1]-=s[1],0!=_[0]||0!=_[1])return n[0]=_[0],void(n[1]=_[1]);if(a[0]=r[0]-h*o[0],a[1]=r[1]-h*o[1],i._$nb(t,e,a,_,1,0,2),_[0]-=s[0],_[1]-=s[1],0!=_[0]||0!=_[1])return _[0]=-_[0],_[0]=-_[0],n[0]=_[0],void(n[1]=_[1]);h*=.1}at._$so&&console.log(\"_$L0 to transform _$SP\\n\")},H.prototype=new _t,W.prototype=new M,W._$ur=-2,W._$ES=500,W._$wb=2,W._$8S=3,W._$os=4,W._$52=W._$ES,W._$R2=W._$ES,W._$Sb=function(t){for(var i=t.length-1;i>=0;--i){var e=t[i];e<W._$52?W._$52=e:e>W._$R2&&(W._$R2=e)}},W._$or=function(){return W._$52},W._$Pr=function(){return W._$R2},W.prototype._$F0=function(t){this._$gP=t._$nP(),this._$dr=t._$nP(),this._$GS=t._$nP(),this._$qb=t._$6L(),this._$Lb=t._$cS(),this._$mS=t._$Tb(),t.getFormatVersion()>=G._$T7?(this.clipID=t._$nP(),this.clipIDList=this.convertClipIDForV2_11(this.clipID)):this.clipIDList=null,W._$Sb(this._$Lb)},W.prototype.getClipIDList=function(){return this.clipIDList},W.prototype._$Nr=function(t,i){if(i._$IS[0]=!1,i._$Us=v._$Z2(t,this._$GS,i._$IS,this._$Lb),at._$Zs);else if(i._$IS[0])return;i._$7s=v._$br(t,this._$GS,i._$IS,this._$mS)},W.prototype._$2b=function(t){},W.prototype.getDrawDataID=function(){return this._$gP},W.prototype._$j2=function(t){this._$gP=t},W.prototype.getOpacity=function(t,i){return i._$7s},W.prototype._$zS=function(t,i){return i._$Us},W.prototype.getTargetBaseDataID=function(){return this._$dr},W.prototype._$gs=function(t){this._$dr=t},W.prototype._$32=function(){return null!=this._$dr&&this._$dr!=yt._$2o()},W.prototype.getType=function(){},j._$42=0,j.prototype._$1b=function(){return this._$3S},j.prototype.getDrawDataList=function(){return this._$aS},j.prototype._$F0=function(t){this._$NL=t._$nP(),this._$aS=t._$nP(),this._$3S=t._$nP()},j.prototype._$kr=function(t){t._$Zo(this._$3S),t._$xo(this._$aS),this._$3S=null,this._$aS=null},q.prototype=new i,q.loadModel=function(t){var e=new q;return i._$62(e,t),e},q.loadModel=function(t){var e=new q;return i._$62(e,t),e},q._$to=function(){return new q},q._$er=function(t){var i=new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if(0==i.exists())throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+i._$PL());for(var e=[\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"],r=q.loadModel(i._$3b()),o=0;o<e.length;o++){var n=new _$5(e[o]);if(0==n.exists())throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+n._$PL());r.setTexture(o,_$nL._$_o(t,n._$3b()))}return r},q.prototype.setGL=function(t){this._$zo.setGL(t)},q.prototype.setTransform=function(t){this._$zo.setTransform(t)},q.prototype.draw=function(){this._$5S.draw(this._$zo)},q.prototype._$K2=function(){this._$zo._$K2()},q.prototype.setTexture=function(t,i){null==this._$zo&&_._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\"),this._$zo.setTexture(t,i)},q.prototype.setTexture=function(t,i){null==this._$zo&&_._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\"),this._$zo.setTexture(t,i)},q.prototype._$Rs=function(){return this._$zo._$Rs()},q.prototype._$Ds=function(t){this._$zo._$Ds(t)},q.prototype.getDrawParam=function(){return this._$zo},J.prototype=new s,J._$cs=\"VISIBLE:\",J._$ar=\"LAYOUT:\",J.MTN_PREFIX_FADEIN=\"FADEIN:\",J.MTN_PREFIX_FADEOUT=\"FADEOUT:\",J._$Co=0,J._$1T=1,J.loadMotion=function(t){var i=k._$C(t);return J.loadMotion(i)},J.loadMotion=function(t){t instanceof ArrayBuffer&&(t=new DataView(t));var i=new J,e=[0],r=t.byteLength;i._$yT=0;for(var o=0;o<r;++o){var n=Q(t,o),s=n.charCodeAt(0);if(\"\\n\"!=n&&\"\\r\"!=n)if(\"#\"!=n)if(\"$\"!=n){if(97<=s&&s<=122||65<=s&&s<=90||\"_\"==n){for(var _=o,a=-1;o<r&&(\"\\r\"!=(n=Q(t,o))&&\"\\n\"!=n);++o)if(\"=\"==n){a=o;break}if(a>=0){var h=new B;O.startsWith(t,_,J._$cs)?(h._$RP=B._$hs,h._$4P=O.createString(t,_,a-_)):O.startsWith(t,_,J._$ar)?(h._$4P=O.createString(t,_+7,a-_-7),O.startsWith(t,_+7,\"ANCHOR_X\")?h._$RP=B._$xs:O.startsWith(t,_+7,\"ANCHOR_Y\")?h._$RP=B._$us:O.startsWith(t,_+7,\"SCALE_X\")?h._$RP=B._$qs:O.startsWith(t,_+7,\"SCALE_Y\")?h._$RP=B._$Ys:O.startsWith(t,_+7,\"X\")?h._$RP=B._$ws:O.startsWith(t,_+7,\"Y\")&&(h._$RP=B._$Ns)):(h._$RP=B._$Fr,h._$4P=O.createString(t,_,a-_)),i.motions.push(h);var l=0,$=[];for(o=a+1;o<r&&(\"\\r\"!=(n=Q(t,o))&&\"\\n\"!=n);++o)if(\",\"!=n&&\" \"!=n&&\"\\t\"!=n){var u=O._$LS(t,r,o,e);if(e[0]>0){$.push(u),l++;var p=e[0];if(p<o){console.log(\"_$n0 _$hi . @Live2DMotion loadMotion()\\n\");break}o=p-1}}h._$I0=new Float32Array($),l>i._$yT&&(i._$yT=l)}}}else{for(var _=o,a=-1;o<r&&(\"\\r\"!=(n=Q(t,o))&&\"\\n\"!=n);++o)if(\"=\"==n){a=o;break}var f=!1;if(a>=0)for(a==_+4&&\"f\"==Q(t,_+1)&&\"p\"==Q(t,_+2)&&\"s\"==Q(t,_+3)&&(f=!0),o=a+1;o<r&&(\"\\r\"!=(n=Q(t,o))&&\"\\n\"!=n);++o)if(\",\"!=n&&\" \"!=n&&\"\\t\"!=n){var u=O._$LS(t,r,o,e);e[0]>0&&f&&5<u&&u<121&&(i._$D0=u),o=e[0]}for(;o<r&&(\"\\n\"!=Q(t,o)&&\"\\r\"!=Q(t,o));++o);}else for(;o<r&&(\"\\n\"!=Q(t,o)&&\"\\r\"!=Q(t,o));++o);}return i._$rr=1e3*i._$yT/i._$D0|0,i},J.prototype.getDurationMSec=function(){return this._$E?-1:this._$rr},J.prototype.getLoopDurationMSec=function(){return this._$rr},J.prototype.dump=function(){for(var t=0;t<this.motions.length;t++){var i=this.motions[t];console.log(\"_$wL[%s] [%d]. \",i._$4P,i._$I0.length);for(var e=0;e<i._$I0.length&&e<10;e++)console.log(\"%5.2f ,\",i._$I0[e]);console.log(\"\\n\")}},J.prototype.updateParamExe=function(t,i,e,r){for(var o=i-r._$z2,n=o*this._$D0/1e3,s=0|n,_=n-s,a=0;a<this.motions.length;a++){var h=this.motions[a],l=h._$I0.length,$=h._$4P;if(h._$RP==B._$hs){var u=h._$I0[s>=l?l-1:s];t.setParamFloat($,u)}else if(B._$ws<=h._$RP&&h._$RP<=B._$Ys);else{var p,f=t.getParamIndex($),c=t.getModelContext(),d=c.getParamMax(f),g=c.getParamMin(f),y=.4*(d-g),m=c.getParamFloat(f),T=h._$I0[s>=l?l-1:s],P=h._$I0[s+1>=l?l-1:s+1];p=T<P&&P-T>y||T>P&&T-P>y?T:T+(P-T)*_;var S=m+(p-m)*e;t.setParamFloat($,S)}}s>=this._$yT&&(this._$E?(r._$z2=i,this.loopFadeIn&&(r._$bs=i)):r._$9L=!0),this._$eP=e},J.prototype._$r0=function(){return this._$E},J.prototype._$aL=function(t){this._$E=t},J.prototype._$S0=function(){return this._$D0},J.prototype._$U0=function(t){this._$D0=t},J.prototype.isLoopFadeIn=function(){return this.loopFadeIn},J.prototype.setLoopFadeIn=function(t){this.loopFadeIn=t},N.prototype.clear=function(){this.size=0},N.prototype.add=function(t){if(this._$P.length<=this.size){var i=new Float32Array(2*this.size);w._$jT(this._$P,0,i,0,this.size),this._$P=i}this._$P[this.size++]=t},N.prototype._$BL=function(){var t=new Float32Array(this.size);return w._$jT(this._$P,0,t,0,this.size),t},B._$Fr=0,B._$hs=1,B._$ws=100,B._$Ns=101,B._$xs=102,B._$us=103,B._$qs=104,B._$Ys=105,Z.prototype=new I,Z._$gT=new Array,Z.prototype._$zP=function(){this._$GS=new D,this._$GS._$zP()},Z.prototype._$F0=function(t){I.prototype._$F0.call(this,t),this._$A=t._$6L(),this._$o=t._$6L(),this._$GS=t._$nP(),this._$Eo=t._$nP(),I.prototype.readV2_opacity.call(this,t)},Z.prototype.init=function(t){var i=new K(this),e=(this._$o+1)*(this._$A+1);return null!=i._$Cr&&(i._$Cr=null),i._$Cr=new Float32Array(2*e),null!=i._$hr&&(i._$hr=null),this._$32()?i._$hr=new Float32Array(2*e):i._$hr=null,i},Z.prototype._$Nr=function(t,i){var e=i;if(this._$GS._$Ur(t)){var r=this._$VT(),o=Z._$gT;o[0]=!1,v._$Vr(t,this._$GS,o,r,this._$Eo,e._$Cr,0,2),i._$Ib(o[0]),this.interpolateOpacity(t,this._$GS,i,o)}},Z.prototype._$2b=function(t,i){var e=i;if(e._$hS(!0),this._$32()){var r=this.getTargetBaseDataID();if(e._$8r==I._$ur&&(e._$8r=t.getBaseDataIndex(r)),e._$8r<0)at._$so&&_._$li(\"_$L _$0P _$G :: %s\",r),e._$hS(!1);else{var o=t.getBaseData(e._$8r),n=t._$q2(e._$8r);if(null!=o&&n._$yo()){var s=n.getTotalScale();e.setTotalScale_notForClient(s);var a=n.getTotalOpacity();e.setTotalOpacity(a*e.getInterpolatedOpacity()),o._$nb(t,n,e._$Cr,e._$hr,this._$VT(),0,2),e._$hS(!0)}else e._$hS(!1)}}else e.setTotalOpacity(e.getInterpolatedOpacity())},Z.prototype._$nb=function(t,i,e,r,o,n,s){var _=i,a=null!=_._$hr?_._$hr:_._$Cr;Z.transformPoints_sdk2(e,r,o,n,s,a,this._$o,this._$A)},Z.transformPoints_sdk2=function(i,e,r,o,n,s,_,a){for(var h,l,$,u=r*n,p=0,f=0,c=0,d=0,g=0,y=0,m=!1,T=o;T<u;T+=n){var P,S,v,L;if(v=i[T],L=i[T+1],P=v*_,S=L*a,P<0||S<0||_<=P||a<=S){var M=_+1;if(!m){m=!0,p=.25*(s[2*(0+0*M)]+s[2*(_+0*M)]+s[2*(0+a*M)]+s[2*(_+a*M)]),f=.25*(s[2*(0+0*M)+1]+s[2*(_+0*M)+1]+s[2*(0+a*M)+1]+s[2*(_+a*M)+1]);var E=s[2*(_+a*M)]-s[2*(0+0*M)],A=s[2*(_+a*M)+1]-s[2*(0+0*M)+1],I=s[2*(_+0*M)]-s[2*(0+a*M)],w=s[2*(_+0*M)+1]-s[2*(0+a*M)+1];c=.5*(E+I),d=.5*(A+w),g=.5*(E-I),y=.5*(A-w),p-=.5*(c+g),f-=.5*(d+y)}if(-2<v&&v<3&&-2<L&&L<3)if(v<=0)if(L<=0){var x=s[2*(0+0*M)],O=s[2*(0+0*M)+1],D=p-2*c,R=f-2*d,b=p-2*g,F=f-2*y,C=p-2*c-2*g,N=f-2*d-2*y,B=.5*(v- -2),U=.5*(L- -2);B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else if(L>=1){var b=s[2*(0+a*M)],F=s[2*(0+a*M)+1],C=p-2*c+1*g,N=f-2*d+1*y,x=p+3*g,O=f+3*y,D=p-2*c+3*g,R=f-2*d+3*y,B=.5*(v- -2),U=.5*(L-1);B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else{var G=0|S;G==a&&(G=a-1);var B=.5*(v- -2),U=S-G,Y=G/a,k=(G+1)/a,b=s[2*(0+G*M)],F=s[2*(0+G*M)+1],x=s[2*(0+(G+1)*M)],O=s[2*(0+(G+1)*M)+1],C=p-2*c+Y*g,N=f-2*d+Y*y,D=p-2*c+k*g,R=f-2*d+k*y;B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else if(1<=v)if(L<=0){var D=s[2*(_+0*M)],R=s[2*(_+0*M)+1],x=p+3*c,O=f+3*d,C=p+1*c-2*g,N=f+1*d-2*y,b=p+3*c-2*g,F=f+3*d-2*y,B=.5*(v-1),U=.5*(L- -2);B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else if(L>=1){var C=s[2*(_+a*M)],N=s[2*(_+a*M)+1],b=p+3*c+1*g,F=f+3*d+1*y,D=p+1*c+3*g,R=f+1*d+3*y,x=p+3*c+3*g,O=f+3*d+3*y,B=.5*(v-1),U=.5*(L-1);B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else{var G=0|S;G==a&&(G=a-1);var B=.5*(v-1),U=S-G,Y=G/a,k=(G+1)/a,C=s[2*(_+G*M)],N=s[2*(_+G*M)+1],D=s[2*(_+(G+1)*M)],R=s[2*(_+(G+1)*M)+1],b=p+3*c+Y*g,F=f+3*d+Y*y,x=p+3*c+k*g,O=f+3*d+k*y;B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else if(L<=0){var V=0|P;V==_&&(V=_-1);var B=P-V,U=.5*(L- -2),X=V/_,z=(V+1)/_,D=s[2*(V+0*M)],R=s[2*(V+0*M)+1],x=s[2*(V+1+0*M)],O=s[2*(V+1+0*M)+1],C=p+X*c-2*g,N=f+X*d-2*y,b=p+z*c-2*g,F=f+z*d-2*y;B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else if(L>=1){var V=0|P;V==_&&(V=_-1);var B=P-V,U=.5*(L-1),X=V/_,z=(V+1)/_,C=s[2*(V+a*M)],N=s[2*(V+a*M)+1],b=s[2*(V+1+a*M)],F=s[2*(V+1+a*M)+1],D=p+X*c+3*g,R=f+X*d+3*y,x=p+z*c+3*g,O=f+z*d+3*y;B+U<=1?(e[T]=C+(b-C)*B+(D-C)*U,e[T+1]=N+(F-N)*B+(R-N)*U):(e[T]=x+(D-x)*(1-B)+(b-x)*(1-U),e[T+1]=O+(R-O)*(1-B)+(F-O)*(1-U))}else t.err.printf(\"_$li calc : %.4f , %.4f\\t\\t\\t\\t\\t@@BDBoxGrid\\n\",v,L);else e[T]=p+v*c+L*g,e[T+1]=f+v*d+L*y}else l=P-(0|P),$=S-(0|S),h=2*((0|P)+(0|S)*(_+1)),l+$<1?(e[T]=s[h]*(1-l-$)+s[h+2]*l+s[h+2*(_+1)]*$,e[T+1]=s[h+1]*(1-l-$)+s[h+3]*l+s[h+2*(_+1)+1]*$):(e[T]=s[h+2*(_+1)+2]*(l-1+$)+s[h+2*(_+1)]*(1-l)+s[h+2]*(1-$),e[T+1]=s[h+2*(_+1)+3]*(l-1+$)+s[h+2*(_+1)+1]*(1-l)+s[h+3]*(1-$))}},Z.prototype.transformPoints_sdk1=function(t,i,e,r,o,n,s){for(var _,a,h,l,$,u,p,f=i,c=this._$o,d=this._$A,g=o*s,y=null!=f._$hr?f._$hr:f._$Cr,m=n;m<g;m+=s)at._$ts?(_=e[m],a=e[m+1],_<0?_=0:_>1&&(_=1),a<0?a=0:a>1&&(a=1),_*=c,a*=d,h=0|_,l=0|a,h>c-1&&(h=c-1),l>d-1&&(l=d-1),u=_-h,p=a-l,$=2*(h+l*(c+1))):(_=e[m]*c,a=e[m+1]*d,u=_-(0|_),p=a-(0|a),$=2*((0|_)+(0|a)*(c+1))),u+p<1?(r[m]=y[$]*(1-u-p)+y[$+2]*u+y[$+2*(c+1)]*p,r[m+1]=y[$+1]*(1-u-p)+y[$+3]*u+y[$+2*(c+1)+1]*p):(r[m]=y[$+2*(c+1)+2]*(u-1+p)+y[$+2*(c+1)]*(1-u)+y[$+2]*(1-p),r[m+1]=y[$+2*(c+1)+3]*(u-1+p)+y[$+2*(c+1)+1]*(1-u)+y[$+3]*(1-p))},Z.prototype._$VT=function(){return(this._$o+1)*(this._$A+1)},Z.prototype.getType=function(){return I._$_b},K.prototype=new _t,tt._$42=0,tt.prototype._$zP=function(){this._$3S=new Array,this._$aS=new Array},tt.prototype._$F0=function(t){this._$g0=t._$8L(),this.visible=t._$8L(),this._$NL=t._$nP(),this._$3S=t._$nP(),this._$aS=t._$nP()},tt.prototype.init=function(t){var i=new it(this);return i.setPartsOpacity(this.isVisible()?1:0),i},tt.prototype._$6o=function(t){if(null==this._$3S)throw new Error(\"_$3S _$6 _$Wo@_$6o\");this._$3S.push(t)},tt.prototype._$3o=function(t){if(null==this._$aS)throw new Error(\"_$aS _$6 _$Wo@_$3o\");this._$aS.push(t)},tt.prototype._$Zo=function(t){this._$3S=t},tt.prototype._$xo=function(t){this._$aS=t},tt.prototype.isVisible=function(){return this.visible},tt.prototype._$uL=function(){return this._$g0},tt.prototype._$KP=function(t){this.visible=t},tt.prototype._$ET=function(t){this._$g0=t},tt.prototype.getBaseData=function(){return this._$3S},tt.prototype.getDrawData=function(){return this._$aS},tt.prototype._$p2=function(){return this._$NL},tt.prototype._$ob=function(t){this._$NL=t},tt.prototype.getPartsID=function(){return this._$NL},tt.prototype._$MP=function(t){this._$NL=t},it.prototype=new $,it.prototype.getPartsOpacity=function(){return this._$VS},it.prototype.setPartsOpacity=function(t){this._$VS=t},et._$L7=function(){u._$27(),yt._$27(),b._$27(),l._$27()},et.prototype.toString=function(){return this.id},rt.prototype._$F0=function(t){},ot.prototype._$1s=function(){return this._$4S},ot.prototype._$zP=function(){this._$4S=new Array},ot.prototype._$F0=function(t){this._$4S=t._$nP()},ot.prototype._$Ks=function(t){this._$4S.push(t)},nt.tr=new gt,nt._$50=new gt,nt._$Ti=new Array(0,0),nt._$Pi=new Array(0,0),nt._$B=new Array(0,0),nt.prototype._$lP=function(t,i,e,r){this.viewport=new Array(t,i,e,r)},nt.prototype._$bL=function(){this.context.save();var t=this.viewport;null!=t&&(this.context.beginPath(),this.context._$Li(t[0],t[1],t[2],t[3]),this.context.clip())},nt.prototype._$ei=function(){this.context.restore()},nt.prototype.drawElements=function(t,i,e,r,o,n,s,a){try{o!=this._$Qo&&(this._$Qo=o,this.context.globalAlpha=o);for(var h=i.length,l=t.width,$=t.height,u=this.context,p=this._$xP,f=this._$uP,c=this._$6r,d=this._$3r,g=nt.tr,y=nt._$Ti,m=nt._$Pi,T=nt._$B,P=0;P<h;P+=3){u.save();var S=i[P],v=i[P+1],L=i[P+2],M=p+c*e[2*S],E=f+d*e[2*S+1],A=p+c*e[2*v],I=f+d*e[2*v+1],w=p+c*e[2*L],x=f+d*e[2*L+1];s&&(s._$PS(M,E,T),M=T[0],E=T[1],s._$PS(A,I,T),A=T[0],I=T[1],s._$PS(w,x,T),w=T[0],x=T[1]);var O=l*r[2*S],D=$-$*r[2*S+1],R=l*r[2*v],b=$-$*r[2*v+1],F=l*r[2*L],C=$-$*r[2*L+1],N=Math.atan2(b-D,R-O),B=Math.atan2(I-E,A-M),U=A-M,G=I-E,Y=Math.sqrt(U*U+G*G),k=R-O,V=b-D,X=Math.sqrt(k*k+V*V),z=Y/X;It._$ni(F,C,O,D,R-O,b-D,-(b-D),R-O,y),It._$ni(w,x,M,E,A-M,I-E,-(I-E),A-M,m);var H=(m[0]-y[0])/y[1],W=Math.min(O,R,F),j=Math.max(O,R,F),q=Math.min(D,b,C),J=Math.max(D,b,C),Q=Math.floor(W),Z=Math.floor(q),K=Math.ceil(j),tt=Math.ceil(J);g.identity(),g.translate(M,E),g.rotate(B),g.scale(1,m[1]/y[1]),g.shear(H,0),g.scale(z,z),g.rotate(-N),g.translate(-O,-D),g.setContext(u);if(n||(n=1.2),at.IGNORE_EXPAND&&(n=0),at.USE_CACHED_POLYGON_IMAGE){var it=a._$e0;if(it.gl_cacheImage=it.gl_cacheImage||{},!it.gl_cacheImage[P]){var et=nt.createCanvas(K-Q,tt-Z);at.DEBUG_DATA.LDGL_CANVAS_MB=at.DEBUG_DATA.LDGL_CANVAS_MB||0,at.DEBUG_DATA.LDGL_CANVAS_MB+=(K-Q)*(tt-Z)*4;var rt=et.getContext(\"2d\");rt.translate(-Q,-Z),nt.clip(rt,g,n,Y,O,D,R,b,F,C,M,E,A,I,w,x),rt.drawImage(t,0,0),it.gl_cacheImage[P]={cacheCanvas:et,cacheContext:rt}}u.drawImage(it.gl_cacheImage[P].cacheCanvas,Q,Z)}else at.IGNORE_CLIP||nt.clip(u,g,n,Y,O,D,R,b,F,C,M,E,A,I,w,x),at.USE_ADJUST_TRANSLATION&&(W=0,j=l,q=0,J=$),u.drawImage(t,W,q,j-W,J-q,W,q,j-W,J-q);u.restore()}}catch(t){_._$Rb(t)}},nt.clip=function(t,i,e,r,o,n,s,_,a,h,l,$,u,p,f,c){e>.02?nt.expandClip(t,i,e,r,l,$,u,p,f,c):nt.clipWithTransform(t,null,o,n,s,_,a,h)},nt.expandClip=function(t,i,e,r,o,n,s,_,a,h){var l=s-o,$=_-n,u=a-o,p=h-n,f=l*p-$*u>0?e:-e,c=-$,d=l,g=a-s,y=h-_,m=-y,T=g,P=Math.sqrt(g*g+y*y),S=-p,v=u,L=Math.sqrt(u*u+p*p),M=o-f*c/r,E=n-f*d/r,A=s-f*c/r,I=_-f*d/r,w=s-f*m/P,x=_-f*T/P,O=a-f*m/P,D=h-f*T/P,R=o+f*S/L,b=n+f*v/L,F=a+f*S/L,C=h+f*v/L,N=nt._$50;return null!=i._$P2(N)&&(nt.clipWithTransform(t,N,M,E,A,I,w,x,O,D,F,C,R,b),!0)},nt.clipWithTransform=function(t,i,e,r,o,n,s,a){if(arguments.length<7)return void _._$li(\"err : @LDGL.clip()\");if(!(arguments[1]instanceof gt))return void _._$li(\"err : a[0] is _$6 LDTransform @LDGL.clip()\");var h=nt._$B,l=i,$=arguments;if(t.beginPath(),l){l._$PS($[2],$[3],h),t.moveTo(h[0],h[1]);for(var u=4;u<$.length;u+=2)l._$PS($[u],$[u+1],h),t.lineTo(h[0],h[1])}else{t.moveTo($[2],$[3]);for(var u=4;u<$.length;u+=2)t.lineTo($[u],$[u+1])}t.clip()},nt.createCanvas=function(t,i){var e=document.createElement(\"canvas\");return e.setAttribute(\"width\",t),e.setAttribute(\"height\",i),e||_._$li(\"err : \"+e),e},nt.dumpValues=function(){for(var t=\"\",i=0;i<arguments.length;i++)t+=\"[\"+i+\"]= \"+arguments[i].toFixed(3)+\" , \";console.log(t)},st.prototype._$F0=function(t){this._$TT=t._$_T(),this._$LT=t._$_T(),this._$FS=t._$_T(),this._$wL=t._$nP()},st.prototype.getMinValue=function(){return this._$TT},st.prototype.getMaxValue=function(){return this._$LT},st.prototype.getDefaultValue=function(){return this._$FS},st.prototype.getParamID=function(){return this._$wL},_t.prototype._$yo=function(){return this._$AT&&!this._$JS},_t.prototype._$hS=function(t){this._$AT=t},_t.prototype._$GT=function(){return this._$e0},_t.prototype._$l2=function(t){this._$IP=t},_t.prototype.getPartsIndex=function(){return this._$IP},_t.prototype._$x2=function(){return this._$JS},_t.prototype._$Ib=function(t){this._$JS=t},_t.prototype.getTotalScale=function(){return this.totalScale},_t.prototype.setTotalScale_notForClient=function(t){this.totalScale=t},_t.prototype.getInterpolatedOpacity=function(){return this._$7s},_t.prototype.setInterpolatedOpacity=function(t){this._$7s=t},_t.prototype.getTotalOpacity=function(t){return this.totalOpacity},_t.prototype.setTotalOpacity=function(t){this.totalOpacity=t},at._$2s=\"2.1.00_1\",at._$Kr=201001e3,at._$sP=!0,at._$so=!0,at._$cb=!1,at._$3T=!0,at._$Ts=!0,at._$fb=!0,at._$ts=!0,at.L2D_DEFORMER_EXTEND=!0,at._$Wb=!1;at._$yr=!1,at._$Zs=!1,at.L2D_NO_ERROR=0,at._$i7=1e3,at._$9s=1001,at._$es=1100,at._$r7=2e3,at._$07=2001,at._$b7=2002,at._$H7=4e3,at.L2D_COLOR_BLEND_MODE_MULT=0,at.L2D_COLOR_BLEND_MODE_ADD=1,at.L2D_COLOR_BLEND_MODE_INTERPOLATE=2,at._$6b=!0,at._$cT=0,at.clippingMaskBufferSize=256,at.glContext=new Array,at.frameBuffers=new Array,at.fTexture=new Array,at.IGNORE_CLIP=!1,at.IGNORE_EXPAND=!1,at.EXPAND_W=2,at.USE_ADJUST_TRANSLATION=!0,at.USE_CANVAS_TRANSFORM=!0,at.USE_CACHED_POLYGON_IMAGE=!1,at.DEBUG_DATA={},at.PROFILE_IOS_SPEED={PROFILE_NAME:\"iOS Speed\",USE_ADJUST_TRANSLATION:!0,USE_CACHED_POLYGON_IMAGE:!0,EXPAND_W:4},at.PROFILE_IOS_QUALITY={PROFILE_NAME:\"iOS HiQ\",USE_ADJUST_TRANSLATION:!0,USE_CACHED_POLYGON_IMAGE:!1,EXPAND_W:2},at.PROFILE_IOS_DEFAULT=at.PROFILE_IOS_QUALITY,at.PROFILE_ANDROID={PROFILE_NAME:\"Android\",USE_ADJUST_TRANSLATION:!1,USE_CACHED_POLYGON_IMAGE:!1,EXPAND_W:2},at.PROFILE_DESKTOP={PROFILE_NAME:\"Desktop\",USE_ADJUST_TRANSLATION:!1,USE_CACHED_POLYGON_IMAGE:!1,EXPAND_W:2},at.initProfile=function(){Et.isIOS()?at.setupProfile(at.PROFILE_IOS_DEFAULT):Et.isAndroid()?at.setupProfile(at.PROFILE_ANDROID):at.setupProfile(at.PROFILE_DESKTOP)},at.setupProfile=function(t,i){if(\"number\"==typeof t)switch(t){case 9901:t=at.PROFILE_IOS_SPEED;break;case 9902:t=at.PROFILE_IOS_QUALITY;break;case 9903:t=at.PROFILE_IOS_DEFAULT;break;case 9904:t=at.PROFILE_ANDROID;break;case 9905:t=at.PROFILE_DESKTOP;break;default:alert(\"profile _$6 _$Ui : \"+t)}arguments.length<2&&(i=!0),i&&console.log(\"profile : \"+t.PROFILE_NAME);for(var e in t)at[e]=t[e],i&&console.log(\"  [\"+e+\"] = \"+t[e])},at.init=function(){if(at._$6b){console.log(\"Live2D %s\",at._$2s),at._$6b=!1;!0,at.initProfile()}},at.getVersionStr=function(){return at._$2s},at.getVersionNo=function(){return at._$Kr},at._$sT=function(t){at._$cT=t},at.getError=function(){var t=at._$cT;return at._$cT=0,t},at.dispose=function(){at.glContext=[],at.frameBuffers=[],at.fTexture=[]},at.setGL=function(t,i){var e=i||0;at.glContext[e]=t},at.getGL=function(t){return at.glContext[t]},at.setClippingMaskBufferSize=function(t){at.clippingMaskBufferSize=t},at.getClippingMaskBufferSize=function(){return at.clippingMaskBufferSize},at.deleteBuffer=function(t){at.getGL(t).deleteFramebuffer(at.frameBuffers[t].framebuffer),delete at.frameBuffers[t],delete at.glContext[t]},ht._$r2=function(t){return t<0?0:t>1?1:.5-.5*Math.cos(t*Lt.PI_F)},lt._$fr=-1,lt.prototype.toString=function(){return this._$ib},$t.prototype=new W,$t._$42=0,$t._$Os=30,$t._$ms=0,$t._$ns=1,$t._$_s=2,$t._$gT=new Array,$t.prototype._$_S=function(t){this._$LP=t},$t.prototype.getTextureNo=function(){return this._$LP},$t.prototype._$ZL=function(){return this._$Qi},$t.prototype._$H2=function(){return this._$JP},$t.prototype.getNumPoints=function(){return this._$d0},$t.prototype.getType=function(){return W._$wb},$t.prototype._$B2=function(t,i,e){var r=i,o=null!=r._$hr?r._$hr:r._$Cr;switch(U._$do){default:case U._$Ms:throw new Error(\"_$L _$ro \");case U._$Qs:for(var n=this._$d0-1;n>=0;--n)o[n*U._$No+4]=e}},$t.prototype._$zP=function(){this._$GS=new D,this._$GS._$zP()},$t.prototype._$F0=function(t){W.prototype._$F0.call(this,t),this._$LP=t._$6L(),this._$d0=t._$6L(),this._$Yo=t._$6L();var i=t._$nP();this._$BP=new Int16Array(3*this._$Yo);for(var e=3*this._$Yo-1;e>=0;--e)this._$BP[e]=i[e];if(this._$Eo=t._$nP(),this._$Qi=t._$nP(),t.getFormatVersion()>=G._$s7){if(this._$JP=t._$6L(),0!=this._$JP){if(0!=(1&this._$JP)){var r=t._$6L();null==this._$5P&&(this._$5P=new Object),this._$5P._$Hb=parseInt(r)}0!=(this._$JP&$t._$Os)?this._$6s=(this._$JP&$t._$Os)>>1:this._$6s=$t._$ms,0!=(32&this._$JP)&&(this.culling=!1)}}else this._$JP=0},$t.prototype.init=function(t){var i=new ut(this),e=this._$d0*U._$No,r=this._$32();switch(null!=i._$Cr&&(i._$Cr=null),i._$Cr=new Float32Array(e),null!=i._$hr&&(i._$hr=null),i._$hr=r?new Float32Array(e):null,U._$do){default:case U._$Ms:if(U._$Ls)for(var o=this._$d0-1;o>=0;--o){var n=o<<1;this._$Qi[n+1]=1-this._$Qi[n+1]}break;case U._$Qs:for(var o=this._$d0-1;o>=0;--o){var n=o<<1,s=o*U._$No,_=this._$Qi[n],a=this._$Qi[n+1];i._$Cr[s]=_,i._$Cr[s+1]=a,i._$Cr[s+4]=0,r&&(i._$hr[s]=_,i._$hr[s+1]=a,i._$hr[s+4]=0)}}return i},$t.prototype._$Nr=function(t,i){var e=i;if(this!=e._$GT()&&console.log(\"### assert!! ### \"),this._$GS._$Ur(t)&&(W.prototype._$Nr.call(this,t,e),!e._$IS[0])){var r=$t._$gT;r[0]=!1,v._$Vr(t,this._$GS,r,this._$d0,this._$Eo,e._$Cr,U._$i2,U._$No)}},$t.prototype._$2b=function(t,i){try{this!=i._$GT()&&console.log(\"### assert!! ### \");var e=!1;i._$IS[0]&&(e=!0);var r=i;if(!e&&(W.prototype._$2b.call(this,t),this._$32())){var o=this.getTargetBaseDataID();if(r._$8r==W._$ur&&(r._$8r=t.getBaseDataIndex(o)),r._$8r<0)at._$so&&_._$li(\"_$L _$0P _$G :: %s\",o);else{var n=t.getBaseData(r._$8r),s=t._$q2(r._$8r);null==n||s._$x2()?r._$AT=!1:(n._$nb(t,s,r._$Cr,r._$hr,this._$d0,U._$i2,U._$No),r._$AT=!0),r.baseOpacity=s.getTotalOpacity()}}}catch(t){throw t}},$t.prototype.draw=function(t,i,e){if(this!=e._$GT()&&console.log(\"### assert!! ### \"),!e._$IS[0]){var r=e,o=this._$LP;o<0&&(o=1);var n=this.getOpacity(i,r)*e._$VS*e.baseOpacity,s=null!=r._$hr?r._$hr:r._$Cr;t.setClipBufPre_clipContextForDraw(e.clipBufPre_clipContext),t._$WP(this.culling),t._$Uo(o,3*this._$Yo,this._$BP,s,this._$Qi,n,this._$6s,r)}},$t.prototype.dump=function(){console.log(\"  _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \\n\",this._$LP,this._$d0,this._$Yo),console.log(\"  _$Oi _$di = { \");for(var t=0;t<this._$BP.length;t++)console.log(\"%5d ,\",this._$BP[t]);console.log(\"\\n  _$5i _$30\");for(var t=0;t<this._$Eo.length;t++){console.log(\"\\n    _$30[%d] = \",t);for(var i=this._$Eo[t],e=0;e<i.length;e++)console.log(\"%6.2f, \",i[e])}console.log(\"\\n\")},$t.prototype._$72=function(t){return null==this._$5P?null:this._$5P[t]},$t.prototype.getIndexArray=function(){return this._$BP},ut.prototype=new Mt,ut.prototype.getTransformedPoints=function(){return null!=this._$hr?this._$hr:this._$Cr},pt.prototype._$HT=function(t){this.x=t.x,this.y=t.y},pt.prototype._$HT=function(t,i){this.x=t,this.y=i},ft.prototype=new i,ft.loadModel=function(t){var e=new ft;return i._$62(e,t),e},ft.loadModel=function(t,e){var r=e||0,o=new ft(r);return i._$62(o,t),o},ft._$to=function(){return new ft},ft._$er=function(t){var i=new _$5(\"../_$_r/_$t0/_$Ri/_$_P._$d\");if(0==i.exists())throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+i._$PL());for(var e=[\"../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1\",\"../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1\"],r=ft.loadModel(i._$3b()),o=0;o<e.length;o++){var n=new _$5(e[o]);if(0==n.exists())throw new _$ls(\"_$t0 _$_ _$6 _$Ui :: \"+n._$PL());r.setTexture(o,_$nL._$_o(t,n._$3b()))}return r},ft.prototype.setGL=function(t){at.setGL(t)},ft.prototype.setTransform=function(t){this.drawParamWebGL.setTransform(t)},ft.prototype.update=function(){this._$5S.update(),this._$5S.preDraw(this.drawParamWebGL)},ft.prototype.draw=function(){this._$5S.draw(this.drawParamWebGL)},ft.prototype._$K2=function(){this.drawParamWebGL._$K2()},ft.prototype.setTexture=function(t,i){null==this.drawParamWebGL&&_._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\"),this.drawParamWebGL.setTexture(t,i)},ft.prototype.setTexture=function(t,i){null==this.drawParamWebGL&&_._$li(\"_$Yi for QT _$ki / _$XS() is _$6 _$ui!!\"),this.drawParamWebGL.setTexture(t,i)},ft.prototype._$Rs=function(){return this.drawParamWebGL._$Rs()},ft.prototype._$Ds=function(t){this.drawParamWebGL._$Ds(t)},ft.prototype.getDrawParam=function(){return this.drawParamWebGL},ft.prototype.setMatrix=function(t){this.drawParamWebGL.setMatrix(t)},ft.prototype.setPremultipliedAlpha=function(t){this.drawParamWebGL.setPremultipliedAlpha(t)},ft.prototype.isPremultipliedAlpha=function(){return this.drawParamWebGL.isPremultipliedAlpha()},ft.prototype.setAnisotropy=function(t){this.drawParamWebGL.setAnisotropy(t)},ft.prototype.getAnisotropy=function(){return this.drawParamWebGL.getAnisotropy()},ct.prototype._$tb=function(){return this.motions},ct.prototype.startMotion=function(t,i){for(var e=null,r=this.motions.length,o=0;o<r;++o)null!=(e=this.motions[o])&&(e._$qS(e._$w0.getFadeOut()),this._$eb&&_._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\\n\",r,e._$sr));if(null==t)return-1;e=new dt,e._$w0=t,this.motions.push(e);var n=e._$sr;return this._$eb&&_._$Ji(\"MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\\n\",r,n),n},ct.prototype.updateParam=function(t){try{for(var i=!1,e=0;e<this.motions.length;e++){var r=this.motions[e];if(null!=r){var o=r._$w0;null!=o?(o.updateParam(t,r),i=!0,r.isFinished()&&(this._$eb&&_._$Ji(\"MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\\n\",this.motions.length-1,r._$sr),this.motions.splice(e,1),e--)):(this.motions=this.motions.splice(e,1),e--)}else this.motions.splice(e,1),e--}return i}catch(t){return _._$li(t),!0}},ct.prototype.isFinished=function(t){if(arguments.length>=1){for(var i=0;i<this.motions.length;i++){var e=this.motions[i];if(null!=e&&(e._$sr==t&&!e.isFinished()))return!1}return!0}for(var i=0;i<this.motions.length;i++){var e=this.motions[i];if(null!=e){if(null!=e._$w0){if(!e.isFinished())return!1}else this.motions.splice(i,1),i--}else this.motions.splice(i,1),i--}return!0},ct.prototype.stopAllMotions=function(){for(var t=0;t<this.motions.length;t++){var i=this.motions[t];if(null!=i){i._$w0;this.motions.splice(t,1),t--}else this.motions.splice(t,1),t--}},ct.prototype._$Zr=function(t){this._$eb=t},ct.prototype._$e=function(){console.log(\"-- _$R --\\n\");for(var t=0;t<this.motions.length;t++){var i=this.motions[t],e=i._$w0;console.log(\"MotionQueueEnt[%d] :: %s\\n\",this.motions.length,e.toString())}},dt._$Gs=0,dt.prototype.isFinished=function(){return this._$9L},dt.prototype._$qS=function(t){var i=w.getUserTimeMSec(),e=i+t;(this._$Do<0||e<this._$Do)&&(this._$Do=e)},dt.prototype._$Bs=function(){return this._$sr},gt.prototype.setContext=function(t){var i=this.m;t.transform(i[0],i[1],i[3],i[4],i[6],i[7])},gt.prototype.toString=function(){for(var t=\"LDTransform { \",i=0;i<9;i++)t+=this.m[i].toFixed(2)+\" ,\";return t+=\" }\"},gt.prototype.identity=function(){var t=this.m;t[0]=t[4]=t[8]=1,t[1]=t[2]=t[3]=t[5]=t[6]=t[7]=0},gt.prototype._$PS=function(t,i,e){null==e&&(e=new Array(0,0));var r=this.m;return e[0]=r[0]*t+r[3]*i+r[6],e[1]=r[1]*t+r[4]*i+r[7],e},gt.prototype._$P2=function(t){t||(t=new gt);var i=this.m,e=i[0],r=i[1],o=i[2],n=i[3],s=i[4],_=i[5],a=i[6],h=i[7],l=i[8],$=e*s*l+r*_*a+o*n*h-e*_*h-o*s*a-r*n*l;if(0==$)return null;var u=1/$;return t.m[0]=u*(s*l-h*_),t.m[1]=u*(h*o-r*l),t.m[2]=u*(r*_-s*o),t.m[3]=u*(a*_-n*l),t.m[4]=u*(e*l-a*o),t.m[5]=u*(n*o-e*_),t.m[6]=u*(n*h-a*s),t.m[7]=u*(a*r-e*h),t.m[8]=u*(e*s-n*r),t},gt.prototype.transform=function(t,i,e){null==e&&(e=new Array(0,0));var r=this.m;return e[0]=r[0]*t+r[3]*i+r[6],e[1]=r[1]*t+r[4]*i+r[7],e},gt.prototype.translate=function(t,i){var e=this.m;e[6]=e[0]*t+e[3]*i+e[6],e[7]=e[1]*t+e[4]*i+e[7],e[8]=e[2]*t+e[5]*i+e[8]},gt.prototype.scale=function(t,i){var e=this.m;e[0]*=t,e[1]*=t,e[2]*=t,e[3]*=i,e[4]*=i,e[5]*=i},gt.prototype.shear=function(t,i){var e=this.m,r=e[0]+e[3]*i,o=e[1]+e[4]*i,n=e[2]+e[5]*i;e[3]=e[0]*t+e[3],e[4]=e[1]*t+e[4],e[5]=e[2]*t+e[5],e[0]=r,e[1]=o,e[2]=n},gt.prototype.rotate=function(t){var i=this.m,e=Math.cos(t),r=Math.sin(t),o=i[0]*e+i[3]*r,n=i[1]*e+i[4]*r,s=i[2]*e+i[5]*r;i[3]=-i[0]*r+i[3]*e,i[4]=-i[1]*r+i[4]*e,i[5]=-i[2]*r+i[5]*e,i[0]=o,i[1]=n,i[2]=s},gt.prototype.concatenate=function(t){var i=this.m,e=t.m,r=i[0]*e[0]+i[3]*e[1]+i[6]*e[2],o=i[1]*e[0]+i[4]*e[1]+i[7]*e[2],n=i[2]*e[0]+i[5]*e[1]+i[8]*e[2],s=i[0]*e[3]+i[3]*e[4]+i[6]*e[5],_=i[1]*e[3]+i[4]*e[4]+i[7]*e[5],a=i[2]*e[3]+i[5]*e[4]+i[8]*e[5],h=i[0]*e[6]+i[3]*e[7]+i[6]*e[8],l=i[1]*e[6]+i[4]*e[7]+i[7]*e[8],$=i[2]*e[6]+i[5]*e[7]+i[8]*e[8];m[0]=r,m[1]=o,m[2]=n,m[3]=s,m[4]=_,m[5]=a,m[6]=h,m[7]=l,m[8]=$},yt.prototype=new et,yt._$eT=null,yt._$tP=new Object,yt._$2o=function(){return null==yt._$eT&&(yt._$eT=yt.getID(\"DST_BASE\")),yt._$eT},yt._$27=function(){yt._$tP.clear(),yt._$eT=null},yt.getID=function(t){var i=yt._$tP[t];return null==i&&(i=new yt(t),yt._$tP[t]=i),i},yt.prototype._$3s=function(){return new yt},mt.prototype=new E,mt._$9r=function(t){return new Float32Array(t)},mt._$vb=function(t){return new Int16Array(t)},mt._$cr=function(t,i){return null==t||t._$yL()<i.length?(t=mt._$9r(2*i.length),t.put(i),t._$oT(0)):(t.clear(),t.put(i),t._$oT(0)),t},mt._$mb=function(t,i){return null==t||t._$yL()<i.length?(t=mt._$vb(2*i.length),t.put(i),t._$oT(0)):(t.clear(),t.put(i),t._$oT(0)),t},mt._$Hs=function(){return this._$Gr},mt._$as=function(t){this._$Gr=t},mt.prototype.getGL=function(){return this.gl},mt.prototype.setGL=function(t){this.gl=t},mt.prototype.setTransform=function(t){this.transform=t},mt.prototype._$ZT=function(){var t=this.gl;this.firstDraw&&(this.initShader(),this.firstDraw=!1,this.anisotropyExt=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\"),this.anisotropyExt&&(this.maxAnisotropy=t.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT))),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.DEPTH_TEST),t.frontFace(t.CW),t.enable(t.BLEND),t.colorMask(1,1,1,1),t.bindBuffer(t.ARRAY_BUFFER,null),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)},mt.prototype._$Uo=function(t,i,e,r,o,n,s,_){if(!(n<.01&&null==this.clipBufPre_clipContextMask)){var a=(n>.9&&at.EXPAND_W,this.gl);if(null==this.gl)throw new Error(\"gl is null\");var h=1*this._$C0*n,l=1*this._$tT*n,$=1*this._$WL*n,u=this._$lT*n;if(null!=this.clipBufPre_clipContextMask){a.frontFace(a.CCW),a.useProgram(this.shaderProgram),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc),a.vertexAttribPointer(this.a_position_Loc,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc,1),a.enableVertexAttribArray(this.a_texCoord_Loc),a.vertexAttribPointer(this.a_texCoord_Loc,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_matrix_Loc,!1,this.getClipBufPre_clipContextMask().matrixForMask);var p=this.getClipBufPre_clipContextMask().layoutChannelNo,f=this.getChannelFlagAsColor(p);a.uniform4f(this.u_channelFlag,f.r,f.g,f.b,f.a);var c=this.getClipBufPre_clipContextMask().layoutBounds;a.uniform4f(this.u_baseColor_Loc,2*c.x-1,2*c.y-1,2*c._$EL()-1,2*c._$5T()-1),a.uniform1i(this.u_maskFlag_Loc,!0)}else if(null!=this.getClipBufPre_clipContextDraw()){a.useProgram(this.shaderProgramOff),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc_Off),a.vertexAttribPointer(this.a_position_Loc_Off,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc_Off,1),a.enableVertexAttribArray(this.a_texCoord_Loc_Off),a.vertexAttribPointer(this.a_texCoord_Loc_Off,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_clipMatrix_Loc_Off,!1,this.getClipBufPre_clipContextDraw().matrixForDraw),a.uniformMatrix4fv(this.u_matrix_Loc_Off,!1,this.matrix4x4),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,at.fTexture[this.glno]),a.uniform1i(this.s_texture1_Loc_Off,2);var p=this.getClipBufPre_clipContextDraw().layoutChannelNo,f=this.getChannelFlagAsColor(p);a.uniform4f(this.u_channelFlag_Loc_Off,f.r,f.g,f.b,f.a),a.uniform4f(this.u_baseColor_Loc_Off,h,l,$,u)}else a.useProgram(this.shaderProgram),this._$vS=Tt(a,this._$vS,r),this._$no=Pt(a,this._$no,e),a.enableVertexAttribArray(this.a_position_Loc),a.vertexAttribPointer(this.a_position_Loc,2,a.FLOAT,!1,0,0),this._$NT=Tt(a,this._$NT,o),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this.textures[t]),a.uniform1i(this.s_texture0_Loc,1),a.enableVertexAttribArray(this.a_texCoord_Loc),a.vertexAttribPointer(this.a_texCoord_Loc,2,a.FLOAT,!1,0,0),a.uniformMatrix4fv(this.u_matrix_Loc,!1,this.matrix4x4),a.uniform4f(this.u_baseColor_Loc,h,l,$,u),a.uniform1i(this.u_maskFlag_Loc,!1);this.culling?this.gl.enable(a.CULL_FACE):this.gl.disable(a.CULL_FACE),this.gl.enable(a.BLEND);var d,g,y,m;if(null!=this.clipBufPre_clipContextMask)d=a.ONE,g=a.ONE_MINUS_SRC_ALPHA,y=a.ONE,m=a.ONE_MINUS_SRC_ALPHA;else switch(s){case $t._$ms:d=a.ONE,g=a.ONE_MINUS_SRC_ALPHA,y=a.ONE,m=a.ONE_MINUS_SRC_ALPHA;break;case $t._$ns:d=a.ONE,g=a.ONE,y=a.ZERO,m=a.ONE;break;case $t._$_s:d=a.DST_COLOR,g=a.ONE_MINUS_SRC_ALPHA,y=a.ZERO,m=a.ONE}a.blendEquationSeparate(a.FUNC_ADD,a.FUNC_ADD),a.blendFuncSeparate(d,g,y,m),this.anisotropyExt&&a.texParameteri(a.TEXTURE_2D,this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT,this.maxAnisotropy);var T=e.length;a.drawElements(a.TRIANGLES,T,a.UNSIGNED_SHORT,0),a.bindTexture(a.TEXTURE_2D,null)}},mt.prototype._$Rs=function(){throw new Error(\"_$Rs\")},mt.prototype._$Ds=function(t){throw new Error(\"_$Ds\")},mt.prototype._$K2=function(){for(var t=0;t<this.textures.length;t++){0!=this.textures[t]&&(this.gl._$K2(1,this.textures,t),this.textures[t]=null)}},mt.prototype.setTexture=function(t,i){this.textures[t]=i},mt.prototype.initShader=function(){var t=this.gl;this.loadShaders2(),this.a_position_Loc=t.getAttribLocation(this.shaderProgram,\"a_position\"),this.a_texCoord_Loc=t.getAttribLocation(this.shaderProgram,\"a_texCoord\"),this.u_matrix_Loc=t.getUniformLocation(this.shaderProgram,\"u_mvpMatrix\"),this.s_texture0_Loc=t.getUniformLocation(this.shaderProgram,\"s_texture0\"),this.u_channelFlag=t.getUniformLocation(this.shaderProgram,\"u_channelFlag\"),this.u_baseColor_Loc=t.getUniformLocation(this.shaderProgram,\"u_baseColor\"),this.u_maskFlag_Loc=t.getUniformLocation(this.shaderProgram,\"u_maskFlag\"),this.a_position_Loc_Off=t.getAttribLocation(this.shaderProgramOff,\"a_position\"),this.a_texCoord_Loc_Off=t.getAttribLocation(this.shaderProgramOff,\"a_texCoord\"),this.u_matrix_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"u_mvpMatrix\"),this.u_clipMatrix_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"u_ClipMatrix\"),this.s_texture0_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"s_texture0\"),this.s_texture1_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"s_texture1\"),this.u_channelFlag_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"u_channelFlag\"),this.u_baseColor_Loc_Off=t.getUniformLocation(this.shaderProgramOff,\"u_baseColor\")},mt.prototype.disposeShader=function(){var t=this.gl;this.shaderProgram&&(t.deleteProgram(this.shaderProgram),this.shaderProgram=null),this.shaderProgramOff&&(t.deleteProgram(this.shaderProgramOff),this.shaderProgramOff=null)},mt.prototype.compileShader=function(t,i){var e=this.gl,r=i,o=e.createShader(t);if(null==o)return _._$Ji(\"_$L0 to create shader\"),null;if(e.shaderSource(o,r),e.compileShader(o),!e.getShaderParameter(o,e.COMPILE_STATUS)){var n=e.getShaderInfoLog(o);return _._$Ji(\"_$L0 to compile shader : \"+n),e.deleteShader(o),null}return o},mt.prototype.loadShaders2=function(){var t=this.gl;if(this.shaderProgram=t.createProgram(),!this.shaderProgram)return!1;if(this.shaderProgramOff=t.createProgram(),!this.shaderProgramOff)return!1;if(this.vertShader=this.compileShader(t.VERTEX_SHADER,\"attribute vec4     a_position;attribute vec2     a_texCoord;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform mat4       u_mvpMatrix;void main(){    gl_Position = u_mvpMatrix * a_position;    v_ClipPos = u_mvpMatrix * a_position;    v_texCoord = a_texCoord;}\"),!this.vertShader)return _._$Ji(\"Vertex shader compile _$li!\"),!1;if(this.vertShaderOff=this.compileShader(t.VERTEX_SHADER,\"attribute vec4     a_position;attribute vec2     a_texCoord;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform mat4       u_mvpMatrix;uniform mat4       u_ClipMatrix;void main(){    gl_Position = u_mvpMatrix * a_position;    v_ClipPos = u_ClipMatrix * a_position;    v_texCoord = a_texCoord ;}\"),!this.vertShaderOff)return _._$Ji(\"OffVertex shader compile _$li!\"),!1;if(this.fragShader=this.compileShader(t.FRAGMENT_SHADER,\"precision mediump float;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform sampler2D  s_texture0;uniform vec4       u_channelFlag;uniform vec4       u_baseColor;uniform bool       u_maskFlag;void main(){    vec4 smpColor;     if(u_maskFlag){        float isInside =             step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w)          * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w)          * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z)          * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w);        smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside;    }else{        smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor;    }    gl_FragColor = smpColor;}\"),!this.fragShader)return _._$Ji(\"Fragment shader compile _$li!\"),!1;if(this.fragShaderOff=this.compileShader(t.FRAGMENT_SHADER,\"precision mediump float ;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform sampler2D  s_texture0;uniform sampler2D  s_texture1;uniform vec4       u_channelFlag;uniform vec4       u_baseColor ;void main(){    vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor;    vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag;    float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a;    col_formask = col_formask * maskVal;    gl_FragColor = col_formask;}\"),!this.fragShaderOff)return _._$Ji(\"OffFragment shader compile _$li!\"),!1;if(t.attachShader(this.shaderProgram,this.vertShader),t.attachShader(this.shaderProgram,this.fragShader),t.attachShader(this.shaderProgramOff,this.vertShaderOff),t.attachShader(this.shaderProgramOff,this.fragShaderOff),t.linkProgram(this.shaderProgram),t.linkProgram(this.shaderProgramOff),!t.getProgramParameter(this.shaderProgram,t.LINK_STATUS)){var i=t.getProgramInfoLog(this.shaderProgram);return _._$Ji(\"_$L0 to link program: \"+i),this.vertShader&&(t.deleteShader(this.vertShader),this.vertShader=0),this.fragShader&&(t.deleteShader(this.fragShader),this.fragShader=0),this.shaderProgram&&(t.deleteProgram(this.shaderProgram),this.shaderProgram=0),this.vertShaderOff&&(t.deleteShader(this.vertShaderOff),this.vertShaderOff=0),this.fragShaderOff&&(t.deleteShader(this.fragShaderOff),this.fragShaderOff=0),this.shaderProgramOff&&(t.deleteProgram(this.shaderProgramOff),this.shaderProgramOff=0),!1}return!0},mt.prototype.createFramebuffer=function(){var t=this.gl,i=at.clippingMaskBufferSize,e=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,e);var r=t.createRenderbuffer();t.bindRenderbuffer(t.RENDERBUFFER,r),t.renderbufferStorage(t.RENDERBUFFER,t.RGBA4,i,i),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,r);var o=t.createTexture();return t.bindTexture(t.TEXTURE_2D,o),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,i,i,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,o,0),t.bindTexture(t.TEXTURE_2D,null),t.bindRenderbuffer(t.RENDERBUFFER,null),t.bindFramebuffer(t.FRAMEBUFFER,null),at.fTexture[this.glno]=o,{framebuffer:e,renderbuffer:r,texture:at.fTexture[this.glno]}},St.prototype._$fP=function(){var t,i,e,r=this._$ST();if(0==(128&r))return 255&r;if(0==(128&(t=this._$ST())))return(127&r)<<7|127&t;if(0==(128&(i=this._$ST())))return(127&r)<<14|(127&t)<<7|255&i;if(0==(128&(e=this._$ST())))return(127&r)<<21|(127&t)<<14|(127&i)<<7|255&e;throw new lt(\"_$L _$0P  _\")},St.prototype.getFormatVersion=function(){return this._$S2},St.prototype._$gr=function(t){this._$S2=t},St.prototype._$3L=function(){return this._$fP()},St.prototype._$mP=function(){return this._$zT(),this._$F+=8,this._$T.getFloat64(this._$F-8)},St.prototype._$_T=function(){return this._$zT(),this._$F+=4,this._$T.getFloat32(this._$F-4)},St.prototype._$6L=function(){return this._$zT(),this._$F+=4,this._$T.getInt32(this._$F-4)},St.prototype._$ST=function(){return this._$zT(),this._$T.getInt8(this._$F++)},St.prototype._$9T=function(){return this._$zT(),this._$F+=2,this._$T.getInt16(this._$F-2)},St.prototype._$2T=function(){throw this._$zT(),this._$F+=8,new lt(\"_$L _$q read long\")},St.prototype._$po=function(){return this._$zT(),0!=this._$T.getInt8(this._$F++)};var xt=!0;St.prototype._$bT=function(){this._$zT();var t=this._$3L(),i=null;if(xt)try{var e=new ArrayBuffer(2*t);i=new Uint16Array(e);for(var r=0;r<t;++r)i[r]=this._$T.getUint8(this._$F++);return String.fromCharCode.apply(null,i)}catch(t){xt=!1}try{var o=new Array;if(null==i)for(var r=0;r<t;++r)o[r]=this._$T.getUint8(this._$F++);else for(var r=0;r<t;++r)o[r]=i[r];return String.fromCharCode.apply(null,o)}catch(t){console.log(\"read utf8 / _$rT _$L0 !! : \"+t)}},St.prototype._$cS=function(){this._$zT();for(var t=this._$3L(),i=new Int32Array(t),e=0;e<t;e++)i[e]=this._$T.getInt32(this._$F),this._$F+=4;return i},St.prototype._$Tb=function(){this._$zT();for(var t=this._$3L(),i=new Float32Array(t),e=0;e<t;e++)i[e]=this._$T.getFloat32(this._$F),this._$F+=4;return i},St.prototype._$5b=function(){this._$zT();for(var t=this._$3L(),i=new Float64Array(t),e=0;e<t;e++)i[e]=this._$T.getFloat64(this._$F),this._$F+=8;return i},St.prototype._$nP=function(){return this._$Jb(-1)},St.prototype._$Jb=function(t){if(this._$zT(),t<0&&(t=this._$3L()),t==G._$7P){var i=this._$6L();if(0<=i&&i<this._$Ko.length)return this._$Ko[i];throw new lt(\"_$sL _$4i @_$m0\")}var e=this._$4b(t);return this._$Ko.push(e),e},St.prototype._$4b=function(t){if(0==t)return null;if(50==t){var i=this._$bT(),e=b.getID(i);return e}if(51==t){var i=this._$bT(),e=yt.getID(i);return e}if(134==t){var i=this._$bT(),e=l.getID(i);return e}if(60==t){var i=this._$bT(),e=u.getID(i);return e}if(t>=48){var r=G._$9o(t);return null!=r?(r._$F0(this),r):null}switch(t){case 1:return this._$bT();case 10:return new n(this._$6L(),!0);case 11:return new S(this._$mP(),this._$mP(),this._$mP(),this._$mP());case 12:return new S(this._$_T(),this._$_T(),this._$_T(),this._$_T());case 13:return new L(this._$mP(),this._$mP());case 14:return new L(this._$_T(),this._$_T());case 15:for(var o=this._$3L(),e=new Array(o),s=0;s<o;s++)e[s]=this._$nP();return e;case 17:var e=new F(this._$mP(),this._$mP(),this._$mP(),this._$mP(),this._$mP(),this._$mP());return e;case 21:return new h(this._$6L(),this._$6L(),this._$6L(),this._$6L());case 22:return new pt(this._$6L(),this._$6L());case 23:throw new Error(\"_$L _$ro \");case 16:case 25:return this._$cS();case 26:return this._$5b();case 27:return this._$Tb();case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 18:case 19:case 20:case 24:case 28:throw new lt(\"_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : \"+t);default:throw new lt(\"_$6 _$q : _$nP() NO _$i : \"+t)}},St.prototype._$8L=function(){return 0==this._$hL?this._$v0=this._$ST():8==this._$hL&&(this._$v0=this._$ST(),this._$hL=0),1==(this._$v0>>7-this._$hL++&1)},St.prototype._$zT=function(){0!=this._$hL&&(this._$hL=0)},vt.prototype._$wP=function(t,i,e){for(var r=0;r<e;r++){for(var o=0;o<i;o++){var n=2*(o+r*i);console.log(\"(% 7.3f , % 7.3f) , \",t[n],t[n+1])}console.log(\"\\n\")}console.log(\"\\n\")},Lt._$2S=Math.PI/180,Lt._$bS=Math.PI/180,Lt._$wS=180/Math.PI,Lt._$NS=180/Math.PI,Lt.PI_F=Math.PI,Lt._$kT=[0,.012368,.024734,.037097,.049454,.061803,.074143,.086471,.098786,.111087,.12337,.135634,.147877,.160098,.172295,.184465,.196606,.208718,.220798,.232844,.244854,.256827,.268761,.280654,.292503,.304308,.316066,.327776,.339436,.351044,.362598,.374097,.385538,.396921,.408243,.419502,.430697,.441826,.452888,.463881,.474802,.485651,.496425,.507124,.517745,.528287,.538748,.549126,.559421,.56963,.579752,.589785,.599728,.609579,.619337,.629,.638567,.648036,.657406,.666676,.675843,.684908,.693867,.70272,.711466,.720103,.72863,.737045,.745348,.753536,.76161,.769566,.777405,.785125,.792725,.800204,.807561,.814793,.821901,.828884,.835739,.842467,.849066,.855535,.861873,.868079,.874153,.880093,.885898,.891567,.897101,.902497,.907754,.912873,.917853,.922692,.92739,.931946,.936359,.940629,.944755,.948737,.952574,.956265,.959809,.963207,.966457,.96956,.972514,.97532,.977976,.980482,.982839,.985045,.987101,.989006,.990759,.992361,.993811,.995109,.996254,.997248,.998088,.998776,.999312,.999694,.999924,1],Lt._$92=function(t,i){var e=Math.atan2(t[1],t[0]),r=Math.atan2(i[1],i[0]);return Lt._$tS(e,r)},Lt._$tS=function(t,i){for(var e=t-i;e<-Math.PI;)e+=2*Math.PI;for(;e>Math.PI;)e-=2*Math.PI;return e},Lt._$9=function(t){return Math.sin(t)},Lt.fcos=function(t){return Math.cos(t)},Mt.prototype._$u2=function(){return this._$IS[0]},Mt.prototype._$yo=function(){return this._$AT&&!this._$IS[0]},Mt.prototype._$GT=function(){return this._$e0},Et._$W2=0,Et.SYSTEM_INFO=null,Et.USER_AGENT=navigator.userAgent,Et.isIPhone=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone},Et.isIOS=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone||Et.SYSTEM_INFO._isIPad},Et.isAndroid=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isAndroid},Et.getOSVersion=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO.version},Et.getOS=function(){return Et.SYSTEM_INFO||Et.setup(),Et.SYSTEM_INFO._isIPhone||Et.SYSTEM_INFO._isIPad?\"iOS\":Et.SYSTEM_INFO._isAndroid?\"Android\":\"_$Q0 OS\"},Et.setup=function(){function t(t,i){for(var e=t.substring(i).split(/[ _,;\\.]/),r=0,o=0;o<=2&&!isNaN(e[o]);o++){var n=parseInt(e[o]);if(n<0||n>999){_._$li(\"err : \"+n+\" @UtHtml5.setup()\"),r=0;break}r+=n*Math.pow(1e3,2-o)}return r}var i,e=Et.USER_AGENT,r=Et.SYSTEM_INFO={userAgent:e};if((i=e.indexOf(\"iPhone OS \"))>=0)r.os=\"iPhone\",r._isIPhone=!0,r.version=t(e,i+\"iPhone OS \".length);else if((i=e.indexOf(\"iPad\"))>=0){if((i=e.indexOf(\"CPU OS\"))<0)return void _._$li(\" err : \"+e+\" @UtHtml5.setup()\");r.os=\"iPad\",r._isIPad=!0,r.version=t(e,i+\"CPU OS \".length)}else(i=e.indexOf(\"Android\"))>=0?(r.os=\"Android\",r._isAndroid=!0,r.version=t(e,i+\"Android \".length)):(r.os=\"-\",r.version=-1)},window.UtSystem=w,window.UtDebug=_,window.LDTransform=gt,window.LDGL=nt,window.Live2D=at,window.Live2DModelWebGL=ft,window.Live2DModelJS=q,window.Live2DMotion=J,window.MotionQueueManager=ct,window.PhysicsHair=f,window.AMotion=s,window.PartsDataID=l,window.DrawDataID=b,window.BaseDataID=yt,window.ParamID=u,at.init();var At=!1}()}).call(i,e(7))},function(t,i){t.exports={import:function(){throw new Error(\"System.import cannot be used indirectly\")}}},function(t,i,e){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(){this.models=[],this.count=-1,this.reloadFlg=!1,Live2D.init(),n.Live2DFramework.setPlatformManager(new _.default)}Object.defineProperty(i,\"__esModule\",{value:!0}),i.default=o;var n=e(0),s=e(9),_=r(s),a=e(10),h=r(a),l=e(1),$=r(l);o.prototype.createModel=function(){var t=new h.default;return this.models.push(t),t},o.prototype.changeModel=function(t,i){if(this.reloadFlg){this.reloadFlg=!1;this.releaseModel(0,t),this.createModel(),this.models[0].load(t,i)}},o.prototype.getModel=function(t){return t>=this.models.length?null:this.models[t]},o.prototype.releaseModel=function(t,i){this.models.length<=t||(this.models[t].release(i),delete this.models[t],this.models.splice(t,1))},o.prototype.numModels=function(){return this.models.length},o.prototype.setDrag=function(t,i){for(var e=0;e<this.models.length;e++)this.models[e].setDrag(t,i)},o.prototype.maxScaleEvent=function(){$.default.DEBUG_LOG&&console.log(\"Max scale event.\");for(var t=0;t<this.models.length;t++)this.models[t].startRandomMotion($.default.MOTION_GROUP_PINCH_IN,$.default.PRIORITY_NORMAL)},o.prototype.minScaleEvent=function(){$.default.DEBUG_LOG&&console.log(\"Min scale event.\");for(var t=0;t<this.models.length;t++)this.models[t].startRandomMotion($.default.MOTION_GROUP_PINCH_OUT,$.default.PRIORITY_NORMAL)},o.prototype.tapEvent=function(t,i){$.default.DEBUG_LOG&&console.log(\"tapEvent view x:\"+t+\" y:\"+i);for(var e=0;e<this.models.length;e++)this.models[e].hitTest($.default.HIT_AREA_HEAD,t,i)?($.default.DEBUG_LOG&&console.log(\"Tap face.\"),this.models[e].setRandomExpression()):this.models[e].hitTest($.default.HIT_AREA_BODY,t,i)?($.default.DEBUG_LOG&&console.log(\"Tap body. models[\"+e+\"]\"),this.models[e].startRandomMotion($.default.MOTION_GROUP_TAP_BODY,$.default.PRIORITY_NORMAL)):this.models[e].hitTestCustom(\"head\",t,i)?($.default.DEBUG_LOG&&console.log(\"Tap face.\"),this.models[e].startRandomMotion($.default.MOTION_GROUP_FLICK_HEAD,$.default.PRIORITY_NORMAL)):this.models[e].hitTestCustom(\"body\",t,i)&&($.default.DEBUG_LOG&&console.log(\"Tap body. models[\"+e+\"]\"),this.models[e].startRandomMotion($.default.MOTION_GROUP_TAP_BODY,$.default.PRIORITY_NORMAL));return!0}},function(t,i,e){\"use strict\";function r(){}Object.defineProperty(i,\"__esModule\",{value:!0}),i.default=r;var o=e(2);r.prototype.loadBytes=function(t,i){var e=new XMLHttpRequest;e.open(\"GET\",t,!0),e.responseType=\"arraybuffer\",e.onload=function(){switch(e.status){case 200:i(e.response);break;default:console.error(\"Failed to load (\"+e.status+\") : \"+t)}},e.send(null)},r.prototype.loadString=function(t){this.loadBytes(t,function(t){return t})},r.prototype.loadLive2DModel=function(t,i){var e=null;this.loadBytes(t,function(t){e=Live2DModelWebGL.loadModel(t),i(e)})},r.prototype.loadTexture=function(t,i,e,r){var n=new Image;n.crossOrigin=\"Anonymous\",n.src=e;n.onload=function(){var e=(0,o.getContext)(),s=e.createTexture();if(!s)return console.error(\"Failed to generate gl texture name.\"),-1;0==t.isPremultipliedAlpha()&&e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,s),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST),e.generateMipmap(e.TEXTURE_2D),t.setTexture(i,s),s=null,\"function\"==typeof r&&r()},n.onerror=function(){console.error(\"Failed to load image : \"+e)}},r.prototype.jsonParseFromBytes=function(t){var i,e=new Uint8Array(t,0,3);return i=239==e[0]&&187==e[1]&&191==e[2]?String.fromCharCode.apply(null,new Uint8Array(t,3)):String.fromCharCode.apply(null,new Uint8Array(t)),JSON.parse(i)},r.prototype.log=function(t){}},function(t,i,e){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function o(){n.L2DBaseModel.prototype.constructor.call(this),this.modelHomeDir=\"\",this.modelSetting=null,this.tmpMatrix=[]}Object.defineProperty(i,\"__esModule\",{value:!0}),i.default=o;var n=e(0),s=e(11),_=r(s),a=e(1),h=r(a),l=e(3),$=r(l);o.prototype=new n.L2DBaseModel,o.prototype.load=function(t,i,e){this.setUpdating(!0),this.setInitialized(!1),this.modelHomeDir=i.substring(0,i.lastIndexOf(\"/\")+1),this.modelSetting=new _.default;var r=this;this.modelSetting.loadModelSetting(i,function(){var t=r.modelHomeDir+r.modelSetting.getModelFile();r.loadModelData(t,function(t){for(var i=0;i<r.modelSetting.getTextureNum();i++){if(/^https?:\\/\\/|^\\/\\//i.test(r.modelSetting.getTextureFile(i)))var o=r.modelSetting.getTextureFile(i);else var o=r.modelHomeDir+r.modelSetting.getTextureFile(i);r.loadTexture(i,o,function(){if(r.isTexLoaded){if(r.modelSetting.getExpressionNum()>0){r.expressions={};for(var t=0;t<r.modelSetting.getExpressionNum();t++){var i=r.modelSetting.getExpressionName(t),o=r.modelHomeDir+r.modelSetting.getExpressionFile(t);r.loadExpression(i,o)}}else r.expressionManager=null,r.expressions={};if(r.eyeBlink,null!=r.modelSetting.getPhysicsFile()?r.loadPhysics(r.modelHomeDir+r.modelSetting.getPhysicsFile()):r.physics=null,null!=r.modelSetting.getPoseFile()?r.loadPose(r.modelHomeDir+r.modelSetting.getPoseFile(),function(){r.pose.updateParam(r.live2DModel)}):r.pose=null,null!=r.modelSetting.getLayout()){var n=r.modelSetting.getLayout();null!=n.width&&r.modelMatrix.setWidth(n.width),null!=n.height&&r.modelMatrix.setHeight(n.height),null!=n.x&&r.modelMatrix.setX(n.x),null!=n.y&&r.modelMatrix.setY(n.y),null!=n.center_x&&r.modelMatrix.centerX(n.center_x),null!=n.center_y&&r.modelMatrix.centerY(n.center_y),null!=n.top&&r.modelMatrix.top(n.top),null!=n.bottom&&r.modelMatrix.bottom(n.bottom),null!=n.left&&r.modelMatrix.left(n.left),null!=n.right&&r.modelMatrix.right(n.right)}if(null!=r.modelSetting.getHitAreasCustom()){var s=r.modelSetting.getHitAreasCustom();null!=s.head_x&&(h.default.hit_areas_custom_head_x=s.head_x),null!=s.head_y&&(h.default.hit_areas_custom_head_y=s.head_y),null!=s.body_x&&(h.default.hit_areas_custom_body_x=s.body_x),null!=s.body_y&&(h.default.hit_areas_custom_body_y=s.body_y)}for(var t=0;t<r.modelSetting.getInitParamNum();t++)r.live2DModel.setParamFloat(r.modelSetting.getInitParamID(t),r.modelSetting.getInitParamValue(t));for(var t=0;t<r.modelSetting.getInitPartsVisibleNum();t++)r.live2DModel.setPartsOpacity(r.modelSetting.getInitPartsVisibleID(t),r.modelSetting.getInitPartsVisibleValue(t));r.live2DModel.saveParam(),r.preloadMotionGroup(h.default.MOTION_GROUP_IDLE),r.preloadMotionGroup(h.default.MOTION_GROUP_SLEEPY),r.mainMotionManager.stopAllMotions(),r.setUpdating(!1),r.setInitialized(!0),\"function\"==typeof e&&e()}})}})})},o.prototype.release=function(t){var i=n.Live2DFramework.getPlatformManager();t.deleteTexture(i.texture)},o.prototype.preloadMotionGroup=function(t){for(var i=this,e=0;e<this.modelSetting.getMotionNum(t);e++){var r=this.modelSetting.getMotionFile(t,e);this.loadMotion(r,this.modelHomeDir+r,function(r){r.setFadeIn(i.modelSetting.getMotionFadeIn(t,e)),r.setFadeOut(i.modelSetting.getMotionFadeOut(t,e))})}},o.prototype.update=function(){if(null==this.live2DModel)return void(h.default.DEBUG_LOG&&console.error(\"Failed to update.\"));var t=UtSystem.getUserTimeMSec()-this.startTimeMSec,i=t/1e3,e=2*i*Math.PI;if(this.mainMotionManager.isFinished()){\"1\"===sessionStorage.getItem(\"Sleepy\")?this.startRandomMotion(h.default.MOTION_GROUP_SLEEPY,h.default.PRIORITY_SLEEPY):this.startRandomMotion(h.default.MOTION_GROUP_IDLE,h.default.PRIORITY_IDLE)}this.live2DModel.loadParam(),this.mainMotionManager.updateParam(this.live2DModel)||null!=this.eyeBlink&&this.eyeBlink.updateParam(this.live2DModel),this.live2DModel.saveParam(),null==this.expressionManager||null==this.expressions||this.expressionManager.isFinished()||this.expressionManager.updateParam(this.live2DModel),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\",30*this.dragX,1),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\",30*this.dragY,1),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\",this.dragX*this.dragY*-30,1),this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\",10*this.dragX,1),this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_X\",this.dragX,1),this.live2DModel.addToParamFloat(\"PARAM_EYE_BALL_Y\",this.dragY,1),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_X\",Number(15*Math.sin(e/6.5345)),.5),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Y\",Number(8*Math.sin(e/3.5345)),.5),this.live2DModel.addToParamFloat(\"PARAM_ANGLE_Z\",Number(10*Math.sin(e/5.5345)),.5),this.live2DModel.addToParamFloat(\"PARAM_BODY_ANGLE_X\",Number(4*Math.sin(e/15.5345)),.5),this.live2DModel.setParamFloat(\"PARAM_BREATH\",Number(.5+.5*Math.sin(e/3.2345)),1),null!=this.physics&&this.physics.updateParam(this.live2DModel),null==this.lipSync&&this.live2DModel.setParamFloat(\"PARAM_MOUTH_OPEN_Y\",this.lipSyncValue),null!=this.pose&&this.pose.updateParam(this.live2DModel),this.live2DModel.update()},o.prototype.setRandomExpression=function(){var t=[];for(var i in this.expressions)t.push(i);var e=parseInt(Math.random()*t.length);this.setExpression(t[e])},o.prototype.startRandomMotion=function(t,i){var e=this.modelSetting.getMotionNum(t),r=parseInt(Math.random()*e);this.startMotion(t,r,i)},o.prototype.startMotion=function(t,i,e){var r=this.modelSetting.getMotionFile(t,i);if(null==r||\"\"==r)return void(h.default.DEBUG_LOG&&console.error(\"Failed to motion.\"));if(e==h.default.PRIORITY_FORCE)this.mainMotionManager.setReservePriority(e);else if(!this.mainMotionManager.reserveMotion(e))return void(h.default.DEBUG_LOG&&console.log(\"Motion is running.\"));var o,n=this;null==this.motions[t]?this.loadMotion(null,this.modelHomeDir+r,function(r){o=r,n.setFadeInFadeOut(t,i,e,o)}):(o=this.motions[t],n.setFadeInFadeOut(t,i,e,o))},o.prototype.setFadeInFadeOut=function(t,i,e,r){var o=this.modelSetting.getMotionFile(t,i);if(r.setFadeIn(this.modelSetting.getMotionFadeIn(t,i)),r.setFadeOut(this.modelSetting.getMotionFadeOut(t,i)),h.default.DEBUG_LOG&&console.log(\"Start motion : \"+o),null==this.modelSetting.getMotionSound(t,i))this.mainMotionManager.startMotionPrio(r,e);else{var n=this.modelSetting.getMotionSound(t,i),s=document.createElement(\"audio\");s.src=this.modelHomeDir+n,h.default.DEBUG_LOG&&console.log(\"Start sound : \"+n),s.play(),this.mainMotionManager.startMotionPrio(r,e)}},o.prototype.setExpression=function(t){var i=this.expressions[t];h.default.DEBUG_LOG&&console.log(\"Expression : \"+t),this.expressionManager.startMotion(i,!1)},o.prototype.draw=function(t){$.default.push(),$.default.multMatrix(this.modelMatrix.getArray()),this.tmpMatrix=$.default.getMatrix(),this.live2DModel.setMatrix(this.tmpMatrix),this.live2DModel.draw(),$.default.pop()},o.prototype.hitTest=function(t,i,e){for(var r=this.modelSetting.getHitAreaNum(),o=0;o<r;o++)if(t==this.modelSetting.getHitAreaName(o)){var n=this.modelSetting.getHitAreaID(o);return this.hitTestSimple(n,i,e)}return!1},o.prototype.hitTestCustom=function(t,i,e){return\"head\"==t?this.hitTestSimpleCustom(h.default.hit_areas_custom_head_x,h.default.hit_areas_custom_head_y,i,e):\"body\"==t&&this.hitTestSimpleCustom(h.default.hit_areas_custom_body_x,h.default.hit_areas_custom_body_y,i,e)}},function(t,i,e){\"use strict\";function r(){this.NAME=\"name\",this.ID=\"id\",this.MODEL=\"model\",this.TEXTURES=\"textures\",this.HIT_AREAS=\"hit_areas\",this.PHYSICS=\"physics\",this.POSE=\"pose\",this.EXPRESSIONS=\"expressions\",this.MOTION_GROUPS=\"motions\",this.SOUND=\"sound\",this.FADE_IN=\"fade_in\",this.FADE_OUT=\"fade_out\",this.LAYOUT=\"layout\",this.HIT_AREAS_CUSTOM=\"hit_areas_custom\",this.INIT_PARAM=\"init_param\",this.INIT_PARTS_VISIBLE=\"init_parts_visible\",this.VALUE=\"val\",this.FILE=\"file\",this.json={}}Object.defineProperty(i,\"__esModule\",{value:!0}),i.default=r;var o=e(0);r.prototype.loadModelSetting=function(t,i){var e=this;o.Live2DFramework.getPlatformManager().loadBytes(t,function(t){var r=String.fromCharCode.apply(null,new Uint8Array(t));e.json=JSON.parse(r),i()})},r.prototype.getTextureFile=function(t){return null==this.json[this.TEXTURES]||null==this.json[this.TEXTURES][t]?null:this.json[this.TEXTURES][t]},r.prototype.getModelFile=function(){return this.json[this.MODEL]},r.prototype.getTextureNum=function(){return null==this.json[this.TEXTURES]?0:this.json[this.TEXTURES].length},r.prototype.getHitAreaNum=function(){return null==this.json[this.HIT_AREAS]?0:this.json[this.HIT_AREAS].length},r.prototype.getHitAreaID=function(t){return null==this.json[this.HIT_AREAS]||null==this.json[this.HIT_AREAS][t]?null:this.json[this.HIT_AREAS][t][this.ID]},r.prototype.getHitAreaName=function(t){return null==this.json[this.HIT_AREAS]||null==this.json[this.HIT_AREAS][t]?null:this.json[this.HIT_AREAS][t][this.NAME]},r.prototype.getPhysicsFile=function(){return this.json[this.PHYSICS]},r.prototype.getPoseFile=function(){return this.json[this.POSE]},r.prototype.getExpressionNum=function(){return null==this.json[this.EXPRESSIONS]?0:this.json[this.EXPRESSIONS].length},r.prototype.getExpressionFile=function(t){return null==this.json[this.EXPRESSIONS]?null:this.json[this.EXPRESSIONS][t][this.FILE]},r.prototype.getExpressionName=function(t){return null==this.json[this.EXPRESSIONS]?null:this.json[this.EXPRESSIONS][t][this.NAME]},r.prototype.getLayout=function(){return this.json[this.LAYOUT]},r.prototype.getHitAreasCustom=function(){return this.json[this.HIT_AREAS_CUSTOM]},r.prototype.getInitParamNum=function(){return null==this.json[this.INIT_PARAM]?0:this.json[this.INIT_PARAM].length},r.prototype.getMotionNum=function(t){return null==this.json[this.MOTION_GROUPS]||null==this.json[this.MOTION_GROUPS][t]?0:this.json[this.MOTION_GROUPS][t].length},r.prototype.getMotionFile=function(t,i){return null==this.json[this.MOTION_GROUPS]||null==this.json[this.MOTION_GROUPS][t]||null==this.json[this.MOTION_GROUPS][t][i]?null:this.json[this.MOTION_GROUPS][t][i][this.FILE]},r.prototype.getMotionSound=function(t,i){return null==this.json[this.MOTION_GROUPS]||null==this.json[this.MOTION_GROUPS][t]||null==this.json[this.MOTION_GROUPS][t][i]||null==this.json[this.MOTION_GROUPS][t][i][this.SOUND]?null:this.json[this.MOTION_GROUPS][t][i][this.SOUND]},r.prototype.getMotionFadeIn=function(t,i){return null==this.json[this.MOTION_GROUPS]||null==this.json[this.MOTION_GROUPS][t]||null==this.json[this.MOTION_GROUPS][t][i]||null==this.json[this.MOTION_GROUPS][t][i][this.FADE_IN]?1e3:this.json[this.MOTION_GROUPS][t][i][this.FADE_IN]},r.prototype.getMotionFadeOut=function(t,i){return null==this.json[this.MOTION_GROUPS]||null==this.json[this.MOTION_GROUPS][t]||null==this.json[this.MOTION_GROUPS][t][i]||null==this.json[this.MOTION_GROUPS][t][i][this.FADE_OUT]?1e3:this.json[this.MOTION_GROUPS][t][i][this.FADE_OUT]},r.prototype.getInitParamID=function(t){return null==this.json[this.INIT_PARAM]||null==this.json[this.INIT_PARAM][t]?null:this.json[this.INIT_PARAM][t][this.ID]},r.prototype.getInitParamValue=function(t){return null==this.json[this.INIT_PARAM]||null==this.json[this.INIT_PARAM][t]?NaN:this.json[this.INIT_PARAM][t][this.VALUE]},r.prototype.getInitPartsVisibleNum=function(){return null==this.json[this.INIT_PARTS_VISIBLE]?0:this.json[this.INIT_PARTS_VISIBLE].length},r.prototype.getInitPartsVisibleID=function(t){return null==this.json[this.INIT_PARTS_VISIBLE]||null==this.json[this.INIT_PARTS_VISIBLE][t]?null:this.json[this.INIT_PARTS_VISIBLE][t][this.ID]},r.prototype.getInitPartsVisibleValue=function(t){return null==this.json[this.INIT_PARTS_VISIBLE]||null==this.json[this.INIT_PARTS_VISIBLE][t]?NaN:this.json[this.INIT_PARTS_VISIBLE][t][this.VALUE]}}]);\n//# sourceMappingURL=live2d.js.map"
  },
  {
    "path": "public/static/home/live2d/assets/waifu-tips.js",
    "content": "String.prototype.render = function (context) {\n    var tokenReg = /(\\\\)?\\{([^\\{\\}\\\\]+)(\\\\)?\\}/g;\n\n    return this.replace(tokenReg, function (word, slash1, token, slash2) {\n        if (slash1 || slash2) {\n            return word.replace('\\\\', '');\n        }\n\n        var variables = token.replace(/\\s/g, '').split('.');\n        var currentObject = context;\n        var i, length, variable;\n\n        for (i = 0, length = variables.length; i < length; ++i) {\n            variable = variables[i];\n            currentObject = currentObject[variable];\n            if (currentObject === undefined || currentObject === null) return '';\n        }\n        return currentObject;\n    });\n};\n\nvar re = /x/;\nconsole.log(re);\nre.toString = function() {\n    showMessage('哈哈，你打开了控制台，是想要看看我的秘密吗？', 5000, true);\n    return '';\n};\n\n$(document).on('copy', function (){\n    showMessage('你都复制了些什么呀，转载要记得加上出处哦', 5000, true);\n});\n\n$('.waifu-tool .fui-home').click(function (){\n    //window.location = 'https://www.fghrsh.net/';\n    window.location = window.location.protocol+'//'+window.location.hostname+'/'\n});\n\n$('.waifu-tool .fui-eye').click(function (){\n    loadOtherModel();\n});\n\n$('.waifu-tool .fui-chat').click(function (){\n    showHitokoto();\n});\n\n$('.waifu-tool .fui-user').click(function (){\n    loadRandModel();\n});\n\n$('.waifu-tool .fui-info-circle').click(function (){\n    //window.open('https://imjad.cn/archives/lab/add-dynamic-poster-girl-with-live2d-to-your-blog-02');\n    window.open('https://www.qqphp.com');\n});\n\n$('.waifu-tool .fui-cross').click(function (){\n    sessionStorage.setItem('waifu-dsiplay', 'none');\n    showMessage('愿你有一天能与重要的人重逢', 1300, true);\n    window.setTimeout(function() {$('.waifu').hide();}, 1300);\n});\n\n$('.waifu-tool .fui-photo').click(function (){\n    showMessage('照好了嘛，是不是很可爱呢？', 5000, true);\n    window.Live2D.captureName = 'Pio.png';\n    window.Live2D.captureFrame = true;\n});\n\n(function (){\n    var text;\n    //var SiteIndexUrl = 'https://www.fghrsh.net/';  // 手动指定主页\n    var SiteIndexUrl = window.location.protocol+'//'+window.location.hostname+'/';  // 自动获取主页\n\n    if (window.location.href == SiteIndexUrl) {      // 如果是主页\n        var now = (new Date()).getHours();\n        if (now > 23 || now <= 5) {\n            text = '你是夜猫子呀？这么晚还不睡觉，明天起的来嘛';\n        } else if (now > 5 && now <= 7) {\n            text = '早上好！一日之计在于晨，美好的一天就要开始了';\n        } else if (now > 7 && now <= 11) {\n            text = '上午好！工作顺利嘛，不要久坐，多起来走动走动哦！';\n        } else if (now > 11 && now <= 14) {\n            text = '中午了，工作了一个上午，现在是午餐时间！';\n        } else if (now > 14 && now <= 17) {\n            text = '午后很容易犯困呢，今天的运动目标完成了吗？';\n        } else if (now > 17 && now <= 19) {\n            text = '傍晚了！窗外夕阳的景色很美丽呢，最美不过夕阳红~';\n        } else if (now > 19 && now <= 21) {\n            text = '晚上好，今天过得怎么样？';\n        } else if (now > 21 && now <= 23) {\n            text = '已经这么晚了呀，早点休息吧，晚安~';\n        } else {\n            text = '嗨~ 快来逗我玩吧！';\n        }\n    } else {\n        if(document.referrer !== ''){\n            var referrer = document.createElement('a');\n            referrer.href = document.referrer;\n            var domain = referrer.hostname.split('.')[1];\n            if (window.location.hostname == referrer.hostname) {\n                text = '欢迎阅读<span style=\"color:#0099cc;\">『' + document.title.split(' - ')[0] + '』</span>';\n            } else if (domain == 'baidu') {\n                text = 'Hello! 来自 百度搜索 的朋友<br>你是搜索 <span style=\"color:#0099cc;\">' + referrer.search.split('&wd=')[1].split('&')[0] + '</span> 找到的我吗？';\n            } else if (domain == 'so') {\n                text = 'Hello! 来自 360搜索 的朋友<br>你是搜索 <span style=\"color:#0099cc;\">' + referrer.search.split('&q=')[1].split('&')[0] + '</span> 找到的我吗？';\n            } else if (domain == 'google') {\n                text = 'Hello! 来自 谷歌搜索 的朋友<br>欢迎阅读<span style=\"color:#0099cc;\">『' + document.title.split(' - ')[0] + '』</span>';\n            } else {\n                text = 'Hello! 来自 <span style=\"color:#0099cc;\">' + referrer.hostname + '</span> 的朋友';\n            }\n        } else {\n            text = '欢迎阅读<span style=\"color:#0099cc;\">『' + document.title.split(' - ')[0] + '』</span>';\n        }\n    }\n    showMessage(text, 6000);\n})();\n\n//window.hitokotoTimer = window.setInterval(showHitokoto,30000);\n/* 检测用户活动状态，并在空闲时 定时显示一言 */\nvar getActed = false;\nwindow.hitokotoTimer = 0;\nvar hitokotoInterval = false;\n\n$(document).mousemove(function(e){getActed = true;}).keydown(function(){getActed = true;});\nsetInterval(function() { if (!getActed) ifActed(); else elseActed(); }, 1000);\n\nfunction ifActed() {\n    if (!hitokotoInterval) {\n        hitokotoInterval = true;\n        hitokotoTimer = window.setInterval(showHitokoto, 30000);\n    }\n}\n\nfunction elseActed() {\n    getActed = hitokotoInterval = false;\n    window.clearInterval(hitokotoTimer);\n}\n\nfunction showHitokoto(){\n\t/* 增加 hitokoto.cn API */\n    $.getJSON('https://v1.hitokoto.cn',function(result){\n        var text = '这句一言来自 <span style=\"color:#0099cc;\">『{source}』</span>，是 <span style=\"color:#0099cc;\">{creator}</span> 在 hitokoto.cn 投稿的。';\n        text = text.render({source: result.from, creator: result.creator});\n        showMessage(result.hitokoto, 5000);\n        window.setTimeout(function() {showMessage(text, 3000);}, 5000);\n    });\n\t/*\n\t$.getJSON('https://api.fghrsh.net/hitokoto/rand/?encode=jsc&uid=3335',function(result){\n        var text = '这句一言出处是 <span style=\"color:#0099cc;\">『{source}』</span>，是 <span style=\"color:#0099cc;\">FGHRSH</span> 在 {date} 收藏的！';\n        text = text.render({source: result.source, date: result.date});\n        showMessage(result.hitokoto, 5000);\n        window.setTimeout(function() {showMessage(text, 3000);}, 5000);\n    });\n\t*/\n}\n\nfunction showMessage(text, timeout, flag){\n    if(flag || sessionStorage.getItem('waifu-text') === '' || sessionStorage.getItem('waifu-text') === null){\n        if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1];\n        //console.log(text);\n\n        if(flag) sessionStorage.setItem('waifu-text', text);\n\n        $('.waifu-tips').stop();\n        $('.waifu-tips').html(text).fadeTo(200, 1);\n        if (timeout === undefined) timeout = 5000;\n        hideMessage(timeout);\n    }\n}\n\nfunction hideMessage(timeout){\n    $('.waifu-tips').stop().css('opacity',1);\n    if (timeout === undefined) timeout = 5000;\n    window.setTimeout(function() {sessionStorage.removeItem('waifu-text')}, timeout);\n    $('.waifu-tips').delay(timeout).fadeTo(200, 0);\n}\n\nfunction initModel(waifuPath){\n\n    if (waifuPath === undefined) waifuPath = '';\n    var modelId = localStorage.getItem('modelId');\n    var modelTexturesId = localStorage.getItem('modelTexturesId');\n\n    if (modelId == null) {\n\n        /* 首次访问加载 指定模型 的 指定材质 */\n\n        var modelId = 8;            // 模型 ID\n        var modelTexturesId = 0    // 材质 ID\n\n    } loadModel(modelId, modelTexturesId);\n\t$.ajax({\n        cache: true,\n        url: waifuPath+'waifu-tips.json',\n        dataType: \"json\",\n        success: function (result){\n            $.each(result.mouseover, function (index, tips){\n                $(document).on(\"mouseover\", tips.selector, function (){\n                    var text = tips.text;\n                    if(Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1)-1];\n                    text = text.render({text: $(this).text()});\n                    showMessage(text, 3000);\n                });\n            });\n            $.each(result.click, function (index, tips){\n                $(document).on(\"click\", tips.selector, function (){\n                    var text = tips.text;\n                    if(Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1)-1];\n                    text = text.render({text: $(this).text()});\n                    showMessage(text, 3000, true);\n                });\n            });\n            $.each(result.seasons, function (index, tips){\n                var now = new Date();\n                var after = tips.date.split('-')[0];\n                var before = tips.date.split('-')[1] || after;\n\n                if((after.split('/')[0] <= now.getMonth()+1 && now.getMonth()+1 <= before.split('/')[0]) &&\n                   (after.split('/')[1] <= now.getDate() && now.getDate() <= before.split('/')[1])){\n                    var text = tips.text;\n                    if(Array.isArray(tips.text)) text = tips.text[Math.floor(Math.random() * tips.text.length + 1)-1];\n                    text = text.render({year: now.getFullYear()});\n                    showMessage(text, 6000, true);\n                }\n            });\n        }\n    });\n}\n\nfunction loadModel(modelId, modelTexturesId){\n    localStorage.setItem('modelId', modelId);\n    if (modelTexturesId === undefined) modelTexturesId = 0;\n    localStorage.setItem('modelTexturesId', modelTexturesId);\n\n    loadlive2d('live2d', '/static/home/live2d_api/get/?id='+modelId+'-'+modelTexturesId, console.log('live2d','模型 '+modelId+'-'+modelTexturesId+' 加载完成'));\n}\n\nfunction loadRandModel(){\n    var modelId = localStorage.getItem('modelId');\n    var modelTexturesId = localStorage.getItem('modelTexturesId');\n\n\n    var modelTexturesRandMode = 'rand';     // 可选 'rand'(随机), 'switch'(顺序)\n    $.ajax({\n        cache: false,\n        url: '/static/home/live2d_api/'+modelTexturesRandMode+'_textures/?id='+modelId+'-'+modelTexturesId,\n        dataType: \"json\",\n        success: function (result){\n            if (result.textures['id'] == 1 && (modelTexturesId == 1 || modelTexturesId == 0)) {\n                showMessage('我还没有其他衣服呢', 3000, true);\n            } else {\n                showMessage('我的新衣服好看嘛', 3000, true);\n            }\n            loadModel(modelId, result.textures['id']);\n        }\n    });\n}\n\nfunction loadOtherModel(){\n\n    var modelId = localStorage.getItem('modelId');\n\n    var modelTexturesRandMode = 'switch';     // 可选 'rand'(随机), 'switch'(顺序)\n\n    $.ajax({\n        cache: false,\n        url: '/static/home/live2d_api/'+modelTexturesRandMode+'/?id='+modelId,\n        dataType: \"json\",\n        success: function (result){\n            loadModel(result.model['id']);\n            showMessage(result.model['message'], 3000, true);\n        }\n    });\n}"
  },
  {
    "path": "public/static/home/live2d/assets/waifu-tips.json",
    "content": "{\n    \"mouseover\": [\n        {\n            \"selector\": \".container a[href^='http']\",\n            \"text\": [\"要看看 <span style=\\\"color:#0099cc;\\\">{text}</span> 么？\"]\n        },\n        {\n            \"selector\": \".fui-home\",\n            \"text\": [\"点击前往首页，想回到上一页可以使用浏览器的后退功能哦\"]\n        },\n        {\n            \"selector\": \"#tor_show\",\n            \"text\": [\"翻页比较麻烦吗，点击可以显示这篇文章的目录呢\"]\n        },\n        {\n            \"selector\": \"#comment_go,.fui-chat\",\n            \"text\": [\"想要去评论些什么吗？\"]\n        },\n        {\n            \"selector\": \"#night_mode\",\n            \"text\": [\"深夜时要爱护眼睛呀\"]\n        },\n        {\n            \"selector\": \"#qrcode\",\n            \"text\": [\"手机扫一下就能继续看，很方便呢\"]\n        },\n        {\n            \"selector\": \".comment_reply\",\n            \"text\": [\"要吐槽些什么呢\"]\n        },\n        {\n            \"selector\": \"#back-to-top\",\n            \"text\": [\"回到开始的地方吧\"]\n        },\n        {\n            \"selector\": \"#author\",\n            \"text\": [\"该怎么称呼你呢\"]\n        },\n        {\n            \"selector\": \"#mail\",\n            \"text\": [\"留下你的邮箱，不然就是无头像人士了\"]\n        },\n        {\n            \"selector\": \"#url\",\n            \"text\": [\"你的家在哪里呢，好让我去参观参观\"]\n        },\n        {\n            \"selector\": \"#textarea\",\n            \"text\": [\"认真填写哦，垃圾评论是禁止事项\"]\n        },\n        {\n            \"selector\": \".OwO-logo\",\n            \"text\": [\"要插入一个表情吗\"]\n        },\n        {\n            \"selector\": \"#csubmit\",\n            \"text\": [\"要[提交]^(Commit)了吗，首次评论需要审核，请耐心等待~\"]\n        },\n        {\n            \"selector\": \".ImageBox\",\n            \"text\": [\"点击图片可以放大呢\"]\n        },\n        {\n            \"selector\": \"input[name=s]\",\n            \"text\": [\"找不到想看的内容？搜索看看吧\"]\n        },\n        {\n            \"selector\": \".previous\",\n            \"text\": [\"去上一页看看吧\"]\n        },\n        {\n            \"selector\": \".next\",\n            \"text\": [\"去下一页看看吧\"]\n        },\n        {\n            \"selector\": \".dropdown-toggle\",\n            \"text\": [\"这里是菜单\"]\n        },\n        {\n            \"selector\": \"c-player a.play-icon\",\n            \"text\": [\"想要听点音乐吗\"]\n        },\n        {\n            \"selector\": \"c-player div.time\",\n            \"text\": [\"在这里可以调整<span style=\\\"color:#0099cc;\\\">播放进度</span>呢\"]\n        },\n        {\n            \"selector\": \"c-player div.volume\",\n            \"text\": [\"在这里可以调整<span style=\\\"color:#0099cc;\\\">音量</span>呢\"]\n        },\n        {\n            \"selector\": \"c-player div.list-button\",\n            \"text\": [\"<span style=\\\"color:#0099cc;\\\">播放列表</span>里都有什么呢\"]\n        },\n        {\n            \"selector\": \"c-player div.lyric-button\",\n            \"text\": [\"有<span style=\\\"color:#0099cc;\\\">歌词</span>的话就能跟着一起唱呢\"]\n        },\n        {\n            \"selector\": \".waifu #live2d\",\n            \"text\": [\"干嘛呢你，快把手拿开\", \"鼠…鼠标放错地方了！\"]\n        }\n    ],\n    \"click\": [\n        {\n            \"selector\": \".waifu #live2d\",\n            \"text\": [\"是…是不小心碰到了吧\", \"萝莉控是什么呀\", \"你看到我的小熊了吗\", \"再摸的话我可要报警了！⌇●﹏●⌇\", \"110吗，这里有个变态一直在摸我(ó﹏ò｡)\"]\n        }\n    ],\"seasons\": [\n        {\n            \"date\": \"01/01\",\n            \"text\": \"<span style=\\\"color:#0099cc;\\\">元旦</span>了呢，新的一年又开始了，今年是{year}年~\"\n        },\n        {\n            \"date\": \"02/14\",\n            \"text\": \"又是一年<span style=\\\"color:#0099cc;\\\">情人节</span>，{year}年找到对象了嘛~\"\n        },\n        {\n            \"date\": \"03/08\",\n            \"text\": \"今天是<span style=\\\"color:#0099cc;\\\">妇女节</span>！\"\n        },\n        {\n            \"date\": \"03/12\",\n            \"text\": \"今天是<span style=\\\"color:#0099cc;\\\">植树节</span>，要保护环境呀\"\n        },\n        {\n            \"date\": \"04/01\",\n            \"text\": \"悄悄告诉你一个秘密~<span style=\\\"background-color:#34495e;\\\">今天是愚人节，不要被骗了哦~</span>\"\n        },\n        {\n            \"date\": \"05/01\",\n            \"text\": \"今天是<span style=\\\"color:#0099cc;\\\">五一劳动节</span>，计划好假期去哪里了吗~\"\n        },\n        {\n            \"date\": \"06/01\",\n            \"text\": \"<span style=\\\"color:#0099cc;\\\">儿童节</span>了呢，快活的时光总是短暂，要是永远长不大该多好啊…\"\n        },\n        {\n            \"date\": \"09/03\",\n            \"text\": \"<span style=\\\"color:#0099cc;\\\">中国人民抗日战争胜利纪念日</span>，铭记历史、缅怀先烈、珍爱和平、开创未来。\"\n        },\n        {\n            \"date\": \"09/10\",\n            \"text\": \"<span style=\\\"color:#0099cc;\\\">教师节</span>，在学校要给老师问声好呀~\"\n        },\n        {\n            \"date\": \"10/01\",\n            \"text\": \"<span style=\\\"color:#0099cc;\\\">国庆节</span>，锣鼓齐鸣，普天同庆~\"\n        },\n        {\n            \"date\": \"11/05-11/12\",\n            \"text\": \"今年的<span style=\\\"color:#0099cc;\\\">双十一</span>是和谁一起过的呢~\"\n        },\n        {\n            \"date\": \"12/20-12/31\",\n            \"text\": \"这几天是<span style=\\\"color:#0099cc;\\\">圣诞节</span>，主人肯定又去剁手买买买了~\"\n        }\n    ]\n}"
  },
  {
    "path": "public/static/home/live2d/assets/waifu.css",
    "content": ".waifu {\n    position: fixed;\n    bottom: 0;\n    height: auto;\n    right: 0;\n    z-index: 1;\n    font-size: 0;\n    transition: all .3s ease-in-out;\n    -webkit-transform: translateY(3px);\n    transform: translateY(3px);\n}\n.waifu:hover {\n    -webkit-transform: translateY(0);\n    transform: translateY(0);\n}\n@media (max-width: 768px) {\n    .waifu {\n        display: none;\n    }\n}\n.waifu-tips {\n    opacity: 0;\n    width: 250px;\n    height: 70px;\n    margin: -20px 20px;\n    padding: 5px 10px;\n    border: 2px solid rgb(57, 57, 57);\n    border-radius: 12px;\n    background-color: rgb(233, 239, 242,0.5);\n    box-shadow: 0 3px 15px 2px rgba(191, 158, 118, 0.2);\n    font-size: 12px;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    position: absolute;\n    animation-delay: 5s;\n    animation-duration: 50s;\n    animation-iteration-count: infinite;\n    animation-name: shake;\n    animation-timing-function: ease-in-out;\n}\n.waifu-tool {\n    display: none;\n    color: #aaa;\n    top: 50px;\n    right: 10px;\n    font-size: 14px;\n    position: absolute;\n}\n.waifu:hover .waifu-tool {\n    display: block;\n}\n.waifu-tool span {\n    display: block;\n    cursor: pointer;\n    color: #5b6c7d;\n    line-height: 20px;\n    transition: 0.2s;\n}\n.waifu-tool span:hover {\n    color: #34495e;\n}\n.waifu #live2d{\n    position: relative;\n    height: auto;\n}\n\n@keyframes shake {\n    2% {\n        transform: translate(0.5px, -1.5px) rotate(-0.5deg);\n    }\n\n    4% {\n        transform: translate(0.5px, 1.5px) rotate(1.5deg);\n    }\n\n    6% {\n        transform: translate(1.5px, 1.5px) rotate(1.5deg);\n    }\n\n    8% {\n        transform: translate(2.5px, 1.5px) rotate(0.5deg);\n    }\n\n    10% {\n        transform: translate(0.5px, 2.5px) rotate(0.5deg);\n    }\n\n    12% {\n        transform: translate(1.5px, 1.5px) rotate(0.5deg);\n    }\n\n    14% {\n        transform: translate(0.5px, 0.5px) rotate(0.5deg);\n    }\n\n    16% {\n        transform: translate(-1.5px, -0.5px) rotate(1.5deg);\n    }\n\n    18% {\n        transform: translate(0.5px, 0.5px) rotate(1.5deg);\n    }\n\n    20% {\n        transform: translate(2.5px, 2.5px) rotate(1.5deg);\n    }\n\n    22% {\n        transform: translate(0.5px, -1.5px) rotate(1.5deg);\n    }\n\n    24% {\n        transform: translate(-1.5px, 1.5px) rotate(-0.5deg);\n    }\n\n    26% {\n        transform: translate(1.5px, 0.5px) rotate(1.5deg);\n    }\n\n    28% {\n        transform: translate(-0.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    30% {\n        transform: translate(1.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    32% {\n        transform: translate(2.5px, -1.5px) rotate(1.5deg);\n    }\n\n    34% {\n        transform: translate(2.5px, 2.5px) rotate(-0.5deg);\n    }\n\n    36% {\n        transform: translate(0.5px, -1.5px) rotate(0.5deg);\n    }\n\n    38% {\n        transform: translate(2.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    40% {\n        transform: translate(-0.5px, 2.5px) rotate(0.5deg);\n    }\n\n    42% {\n        transform: translate(-1.5px, 2.5px) rotate(0.5deg);\n    }\n\n    44% {\n        transform: translate(-1.5px, 1.5px) rotate(0.5deg);\n    }\n\n    46% {\n        transform: translate(1.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    48% {\n        transform: translate(2.5px, -0.5px) rotate(0.5deg);\n    }\n\n    50% {\n        transform: translate(-1.5px, 1.5px) rotate(0.5deg);\n    }\n\n    52% {\n        transform: translate(-0.5px, 1.5px) rotate(0.5deg);\n    }\n\n    54% {\n        transform: translate(-1.5px, 1.5px) rotate(0.5deg);\n    }\n\n    56% {\n        transform: translate(0.5px, 2.5px) rotate(1.5deg);\n    }\n\n    58% {\n        transform: translate(2.5px, 2.5px) rotate(0.5deg);\n    }\n\n    60% {\n        transform: translate(2.5px, -1.5px) rotate(1.5deg);\n    }\n\n    62% {\n        transform: translate(-1.5px, 0.5px) rotate(1.5deg);\n    }\n\n    64% {\n        transform: translate(-1.5px, 1.5px) rotate(1.5deg);\n    }\n\n    66% {\n        transform: translate(0.5px, 2.5px) rotate(1.5deg);\n    }\n\n    68% {\n        transform: translate(2.5px, -1.5px) rotate(1.5deg);\n    }\n\n    70% {\n        transform: translate(2.5px, 2.5px) rotate(0.5deg);\n    }\n\n    72% {\n        transform: translate(-0.5px, -1.5px) rotate(1.5deg);\n    }\n\n    74% {\n        transform: translate(-1.5px, 2.5px) rotate(1.5deg);\n    }\n\n    76% {\n        transform: translate(-1.5px, 2.5px) rotate(1.5deg);\n    }\n\n    78% {\n        transform: translate(-1.5px, 2.5px) rotate(0.5deg);\n    }\n\n    80% {\n        transform: translate(-1.5px, 0.5px) rotate(-0.5deg);\n    }\n\n    82% {\n        transform: translate(-1.5px, 0.5px) rotate(-0.5deg);\n    }\n\n    84% {\n        transform: translate(-0.5px, 0.5px) rotate(1.5deg);\n    }\n\n    86% {\n        transform: translate(2.5px, 1.5px) rotate(0.5deg);\n    }\n\n    88% {\n        transform: translate(-1.5px, 0.5px) rotate(1.5deg);\n    }\n\n    90% {\n        transform: translate(-1.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    92% {\n        transform: translate(-1.5px, -1.5px) rotate(1.5deg);\n    }\n\n    94% {\n        transform: translate(0.5px, 0.5px) rotate(-0.5deg);\n    }\n\n    96% {\n        transform: translate(2.5px, -0.5px) rotate(-0.5deg);\n    }\n\n    98% {\n        transform: translate(-1.5px, -1.5px) rotate(-0.5deg);\n    }\n\n    0%, 100% {\n        transform: translate(0, 0) rotate(0);\n    }\n}\n@font-face {\n  font-family: 'Flat-UI-Icons';\n  src: url('flat-ui-icons-regular.eot');\n  src: url('flat-ui-icons-regular.eot?#iefix') format('embedded-opentype'), url('flat-ui-icons-regular.woff') format('woff'), url('flat-ui-icons-regular.ttf') format('truetype'), url('flat-ui-icons-regular.svg#flat-ui-icons-regular') format('svg');\n}\n[class^=\"fui-\"],\n[class*=\"fui-\"] {\n  font-family: 'Flat-UI-Icons';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.fui-cross:before {\n  content: \"\\e609\";\n}\n.fui-info-circle:before {\n  content: \"\\e60f\";\n}\n.fui-photo:before {\n  content: \"\\e62a\";\n}\n.fui-eye:before {\n  content: \"\\e62c\";\n}\n.fui-chat:before {\n  content: \"\\e62d\";\n}\n.fui-home:before {\n  content: \"\\e62e\";\n}\n.fui-user:before {\n  content: \"\\e631\";\n}"
  },
  {
    "path": "public/static/home/live2d/demo.html",
    "content": "<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n    <title>Live2D 看板娘 v1.2 / Demo</title>\n    \n    <link rel=\"stylesheet\" type=\"text/css\" href=\"assets/waifu.css\"/>\n    <script src=\"https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js\"></script>\n</head>\n<body>\n    <h2><a href=\"https://www.fghrsh.net/post/123.html\" style=\"color: #38A3DB\">Live2D 看板娘 v1.2</a> / Demo</h2>\n    \n    <div class=\"waifu\">\n        <div class=\"waifu-tips\"></div>\n        <canvas id=\"live2d\" width=\"280\" height=\"250\" class=\"live2d\"></canvas>\n        <div class=\"waifu-tool\">\n            <span class=\"fui-home\"></span>\n            <span class=\"fui-chat\"></span>\n            <span class=\"fui-eye\"></span>\n            <span class=\"fui-user\"></span>\n            <span class=\"fui-photo\"></span>\n            <span class=\"fui-info-circle\"></span>\n            <span class=\"fui-cross\"></span>\n        </div>\n    </div>\n        \n    <script src=\"assets/waifu-tips.js\"></script>\n    <script src=\"assets/live2d.js\"></script>\n    <script type=\"text/javascript\">initModel(\"assets/\")</script>\n</body>\n</html>"
  },
  {
    "path": "public/static/home/live2d_api/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 FGHRSH\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "public/static/home/live2d_api/README.md",
    "content": "# Live2D API\n\nLive2D 看板娘插件 (https://www.fghrsh.net/post/123.html) 上使用的后端 API\n\n### 特性\n\n- 原生 PHP 开发，无需伪静态，开箱即用\n- 支持 模型、皮肤 的 顺序切换 和 随机切换\n- 支持 单模型 单皮肤 切换、多组皮肤 递归穷举\n- 支持 同分组 多个模型 或 多个路径 的 加载切换\n\n## 使用\n\n### 目录结构\n\n```shell\n│  model_list.json              // 模型列表\n│\n├─model                         // 模型路径\n│  └─GroupName                  // 模组分组\n│      └─ModelName              // 模型名称\n│\n├─add                           // 更新皮肤列表\n├─get                           // 获取模型配置\n├─rand                          // 随机切换模型\n├─rand_textures                 // 随机切换皮肤\n├─switch                        // 顺序切换模型\n├─switch_textures               // 顺序切换皮肤\n└─tools\n        modelList.php           // 列出模型列表\n        modelTextures.php       // 列出皮肤列表\n        name-to-lower.php       // 文件名格式化\n```\n\n### 添加模型\n\n- 单模型 单皮肤 切换\n    - 单次加载只输出一个皮肤\n    - 皮肤放在 `textures` 文件夹，自动识别\n\n```shell\n│  index.json\n│  model.moc\n│  textures.cache       // 皮肤列表缓存，自动生成\n│\n├─motions\n│      idle_01.mtn\n│      idle_02.mtn\n│      idle_03.mtn\n│\n└─textures\n        default-costume.png\n        school-costume.png\n        winter-costume.png\n```\n\n- 单模型 多组皮肤 递归穷举\n    - 多组皮肤 组合模型、穷举组合\n    - 皮肤文件夹按 `texture_XX` 命名\n    - 添加 `textures_order.json` 列出组合\n```shell\n│  index.json\n│  model.moc\n│  textures.cache\n│  textures_order.json\n│\n├─motions\n│      idle_01.mtn\n│      idle_02.mtn\n│      idle_03.mtn\n│\n├─texture_00\n│      00.png\n│\n├─texture_01\n│      00.png\n│      01.png\n│      02.png\n│\n├─texture_02\n│      00.png\n│      01.png\n│      02.png\n│\n└─texture_03\n       00.png\n       01.png\n```\n\ntextures_order.json\n\n```json\n[\n    [\"texture_00\"],\n    [\"texture_01\",\"texture_02\"],\n    [\"texture_03\"]\n]\n```\n\ntextures.cache\n\n```json\n[\n    [\"texture_00/00.png\",\"texture_01/00.png\",\"texture_02/00.png\",\"texture_03/00.png\"],\n    [\"texture_00/00.png\",\"texture_01/00.png\",\"texture_02/00.png\",\"texture_03/01.png\"],\n    [\"texture_00/00.png\",\"texture_01/01.png\",\"texture_02/01.png\",\"texture_03/00.png\"],\n    [\"texture_00/00.png\",\"texture_01/01.png\",\"texture_02/01.png\",\"texture_03/01.png\"],\n    [\"texture_00/00.png\",\"texture_01/02.png\",\"texture_02/02.png\",\"texture_03/00.png\"],\n    [\"texture_00/00.png\",\"texture_01/02.png\",\"texture_02/02.png\",\"texture_03/01.png\"]\n]\n```\n\n- 同分组 多个模型 或 多个路径 切换\n    - 修改 `model_list.json` 添加多个模型\n\n```shell\n│\n├─model\n│  ├─Group1\n│  │  ├─Model1\n│  │  │      index.json\n│  │  │\n│  │  └─Model2\n│  │          index.json\n│  │\n│  ├─Group2\n│  │  └─Model1\n│  │          index.json\n│  │\n│  └─GroupName\n│     └─ModelName\n│          │  index.json\n│          │  model.moc\n│          │\n│          ├─motions\n│          └─textures\n│\n```\n\nmodel_list.json\n```json\n{\n    \"models\": [\n        \"GroupName/ModelName\",\n        [\n            \"Group1/Model1\",\n            \"Group1/Model2\",\n            \"Group2/Model1\"\n        ]\n    ],\n    \"messages\": [\n        \"Example 1\",\n        \"Example 2\"\n    ]\n}\n```\n\n### 接口用法\n- `/add/` - 检测 新增皮肤 并更新 缓存列表\n- `/get/?id=1-23` 获取 分组 1 的 第 23 号 皮肤\n- `/rand/?id=1` 根据 上一分组 随机切换\n- `/switch/?id=1` 根据 上一分组 顺序切换\n- `/rand_textures/?id=1-23` 根据 上一皮肤 随机切换 同分组其他皮肤\n- `/switch_textures/?id=1-23` 根据 上一皮肤 顺序切换 同分组其他皮肤\n\n## 版权声明\n\n> (>▽<) 都看到这了，点个 Star 吧 ~\n\n**API 内所有模型 版权均属于原作者，仅供研究学习，不得用于商业用途**  \n\nMIT © FGHRSH\n"
  },
  {
    "path": "public/static/home/live2d_api/add/index.php",
    "content": "<?php\n\nrequire '../tools/modelList.php';\nrequire '../tools/modelTextures.php';\n\n$modelList = new modelList();\n$modelTextures = new modelTextures();\n\n$modelList = $modelList->get_list()['models'];\n\nforeach ($modelList as $modelName) {\n    if (file_exists('../model/'.$modelName.'/textures.cache')) {\n        \n        $textures = $texturesNew = array();\n        foreach ($modelTextures->get_list($modelName)['textures'] as $v) $textures[] = json_encode($v, JSON_UNESCAPED_SLASHES);\n        foreach ($modelTextures->get_textures($modelName) as $v) $texturesNew[] = json_encode($v, JSON_UNESCAPED_SLASHES);\n        \n        if ($textures == NULL) continue; elseif (empty(array_diff($texturesNew, $textures))) {\n            echo '<p>'.$modelName.' / textures.cache / No Update.</p>'; \n        } else {\n            foreach (array_values(array_unique(array_merge($textures, $texturesNew))) as $v) $texturesMerge[] = json_decode($v, 1);\n            file_put_contents('../model/'.$modelName.'/textures.cache', json_encode($texturesMerge, JSON_UNESCAPED_SLASHES));\n            echo '<p>'.$modelName.' / textures.cache / Updated.</p>';\n        }\n        \n    }\n    elseif (is_array($modelName)) continue;\n    elseif ($modelTextures->get_list($modelName)) echo '<p>'.$modelName.' / textures.cache / Created.</p>';\n}\n"
  },
  {
    "path": "public/static/home/live2d_api/get/index.php",
    "content": "<?php\nisset($_GET['id']) ? $id = $_GET['id'] : exit('error');\n\nrequire '../tools/modelList.php';\nrequire '../tools/modelTextures.php';\n\n$modelList = new modelList();\n$modelTextures = new modelTextures();\n\n$id = explode('-', $id);\n$modelId = (int)$id[0];\n$modelTexturesId = isset($id[1]) ? (int)$id[1] : 0;\n\n$modelName = $modelList->id_to_name($modelId);\n\nif (is_array($modelName)) {\n    $modelName = $modelTexturesId > 0 ? $modelName[$modelTexturesId-1] : $modelName[0];\n    $json = json_decode(file_get_contents('../model/'.$modelName.'/index.json'), 1);\n} else {\n    $json = json_decode(file_get_contents('../model/'.$modelName.'/index.json'), 1);\n    if ($modelTexturesId > 0) {\n        $modelTexturesName = $modelTextures->get_name($modelName, $modelTexturesId);\n        if (isset($modelTexturesName)) $json['textures'] = is_array($modelTexturesName) ? $modelTexturesName : array($modelTexturesName);\n    }\n}\n\n$textures = json_encode($json['textures']);\n$textures = str_replace('texture', '../model/'.$modelName.'/texture', $textures);\n$textures = json_decode($textures, 1);\n$json['textures'] = $textures;\n\n$json['model'] = '../model/'.$modelName.'/'.$json['model'];\nif (isset($json['pose'])) $json['pose'] = '../model/'.$modelName.'/'.$json['pose'];\nif (isset($json['physics'])) $json['physics'] = '../model/'.$modelName.'/'.$json['physics'];\n\nif (isset($json['motions'])) {\n    $motions = json_encode($json['motions']);\n    $motions = str_replace('sounds', '../model/'.$modelName.'/sounds', $motions);\n    $motions = str_replace('motions', '../model/'.$modelName.'/motions', $motions);\n    $motions = json_decode($motions, 1);\n    $json['motions'] = $motions;\n}\n\nif (isset($json['expressions'])) {\n    $expressions = json_encode($json['expressions']);\n    $expressions = str_replace('expressions', '../model/'.$modelName.'/expressions', $expressions);\n    $expressions = json_decode($expressions, 1);\n    $json['expressions'] = $expressions;\n}\n\nheader(\"Content-type: application/json\");\necho json_encode($json, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);\n"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_classic/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.6,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_classic/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"body_string\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"arm_far\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.05\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_FAR\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_normal/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.6,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_normal/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"body_string\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"arm_far\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.05\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_FAR\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_swimwear/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.45,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/blanc_swimwear/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"body_string\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"arm_far\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.05\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_FAR\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/general/mtn/idle_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,0.005,0.021,0.05,0.08,0.12,0.18,0.24,0.31,0.39,0.48,0.57,0.68,0.79,0.91,1.03,1.17,1.31,1.46,1.62,1.78,1.95,2.13,2.31,2.5,2.7,2.9,3.11,3.32,3.54,3.77,4,4.24,4.49,4.74,5,5.27,5.54,5.8,6.06,6.3,6.54,6.77,6.99,7.21,7.42,7.62,7.82,8.01,8.19,8.37,8.54,8.7,8.86,9.01,9.15,9.3,9.43,9.56,9.68,9.79,9.9,10.01,10.11,10.2,10.29,10.37,10.45,10.52,10.59,10.65,10.71,10.76,10.81,10.85,10.88,10.91,10.94,10.96,10.979,10.991,10.998,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.95,10.82,10.61,10.33,9.99,9.59,9.14,8.64,8.12,7.54,6.95,6.34,5.71,5.06,4.41,3.75,3.11,2.47,1.85,1.24,0.65,0.09,-0.43,-0.93,-1.37,-1.78,-2.13,-2.43,-2.67,-2.85,-2.96,-3,-3,-3,-3,-3,-3,-3,-2.94,-2.76,-2.49,-2.12,-1.69,-1.21,-0.68,-0.13,0.43,0.99,1.53,2.04,2.52,2.94,3.3,3.6,3.82,3.95,4,3.96,3.86,3.71,3.5,3.25,2.96,2.64,2.29,1.93,1.54,1.15,0.75,0.35,-0.05,-0.43,-0.81,-1.17,-1.51,-1.83,-2.11,-2.37,-2.58,-2.76,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.98,-2.91,-2.79,-2.64,-2.46,-2.25,-2,-1.74,-1.45,-1.16,-0.84,-0.52,-0.2,0.12,0.44,0.76,1.07,1.36,1.64,1.9,2.14,2.35,2.54,2.7,2.83,2.92,2.98,3,2.993,2.973,2.94,2.9,2.84,2.78,2.7,2.62,2.53,2.44,2.33,2.23,2.11,2,1.88,1.76,1.64,1.52,1.39,1.27,1.15,1.03,0.92,0.81,0.7,0.6,0.51,0.42,0.34,0.26,0.2,0.14,0.09,0.05,0.02,0.006,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.003,0.014,0.032,0.06,0.09,0.13,0.18,0.24,0.31,0.38,0.46,0.56,0.66,0.78,0.9,1.03,1.18,1.33,1.5,1.68,1.87,2.07,2.28,2.51,2.75,3,3.28,3.55,3.82,4.09,4.34,4.6,4.85,5.09,5.33,5.56,5.78,6,6.22,6.43,6.64,6.83,7.02,7.21,7.4,7.57,7.74,7.91,8.07,8.22,8.37,8.51,8.64,8.77,8.89,9.01,9.12,9.23,9.32,9.41,9.5,9.58,9.65,9.72,9.77,9.83,9.87,9.91,9.94,9.97,9.986,9.996,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.984,9.94,9.86,9.76,9.64,9.5,9.33,9.16,8.97,8.77,8.56,8.35,8.13,7.92,7.71,7.5,7.29,7.09,6.91,6.73,6.57,6.43,6.31,6.2,6.11,6.05,6.01,6,6,6,6,6,6,6,6,6,6,5.987,5.95,5.89,5.8,5.7,5.58,5.45,5.31,5.15,4.99,4.83,4.66,4.49,4.33,4.16,4,3.81,3.64,3.47,3.32,3.18,3.05,2.93,2.82,2.72,2.62,2.54,2.46,2.39,2.33,2.27,2.22,2.17,2.13,2.1,2.07,2.05,2.031,2.017,2.008,2.002,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.009,2.03,2.07,2.13,2.19,2.26,2.34,2.42,2.5,2.58,2.66,2.74,2.81,2.87,2.93,2.97,2.99,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.22,2.13,2.03,1.92,1.82,1.71,1.61,1.5,1.39,1.29,1.18,1.08,0.97,0.87,0.78,0.68,0.59,0.51,0.43,0.35,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.06,-0.11,-0.17,-0.23,-0.3,-0.38,-0.47,-0.56,-0.65,-0.75,-0.85,-0.95,-1.05,-1.16,-1.26,-1.36,-1.45,-1.55,-1.64,-1.72,-1.8,-1.87,-1.94,-2,-2.06,-2.12,-2.17,-2.22,-2.27,-2.32,-2.36,-2.4,-2.44,-2.48,-2.52,-2.55,-2.59,-2.62,-2.65,-2.68,-2.7,-2.73,-2.75,-2.78,-2.8,-2.816,-2.835,-2.851,-2.867,-2.882,-2.896,-2.908,-2.92,-2.93,-2.94,-2.949,-2.957,-2.964,-2.97,-2.975,-2.98,-2.985,-2.988,-2.991,-2.994,-2.996,-2.997,-2.999,-2.999,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.67,-2.58,-2.48,-2.39,-2.28,-2.17,-2.07,-1.96,-1.85,-1.75,-1.64,-1.55,-1.45,-1.37,-1.29,-1.22,-1.15,-1.1,-1.06,-1.03,-1.006,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.01,-1.04,-1.09,-1.15,-1.23,-1.33,-1.45,-1.57,-1.71,-1.87,-2.03,-2.21,-2.4,-2.59,-2.79,-3,-3.25,-3.49,-3.71,-3.92,-4.12,-4.31,-4.48,-4.65,-4.8,-4.94,-5.08,-5.2,-5.32,-5.42,-5.51,-5.6,-5.68,-5.75,-5.81,-5.86,-5.9,-5.94,-5.96,-5.984,-5.996,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.72,-5.57,-5.4,-5.22,-5.03,-4.82,-4.61,-4.39,-4.18,-3.97,-3.78,-3.6,-3.43,-3.28,-3.17,-3.08,-3.02,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.996,-2.985,-2.967,-2.94,-2.91,-2.87,-2.83,-2.78,-2.72,-2.66,-2.6,-2.52,-2.45,-2.37,-2.28,-2.19,-2.1,-2,-1.9,-1.81,-1.71,-1.62,-1.54,-1.45,-1.37,-1.29,-1.21,-1.14,-1.06,-0.99,-0.93,-0.86,-0.8,-0.74,-0.68,-0.63,-0.58,-0.53,-0.48,-0.43,-0.39,-0.35,-0.31,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.11,-0.085,-0.067,-0.051,-0.038,-0.026,-0.017,-0.009,-0.004,-0.001,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0,-0,-0.002,-0.004,-0.008,-0.015,-0.024,-0.037,-0.053,-0.073,-0.1,-0.13,-0.16,-0.2,-0.25,-0.3,-0.36,-0.42,-0.5,-0.58,-0.67,-0.77,-0.87,-0.99,-1.12,-1.25,-1.4,-1.56,-1.72,-1.91,-2.1,-2.3,-2.52,-2.75,-3,-3.27,-3.55,-3.83,-4.12,-4.4,-4.69,-4.98,-5.27,-5.57,-5.86,-6.15,-6.45,-6.74,-7.03,-7.32,-7.6,-7.88,-8.16,-8.44,-8.71,-8.98,-9.24,-9.5,-9.74,-9.99,-10.22,-10.46,-10.68,-10.9,-11.11,-11.3,-11.5,-11.68,-11.85,-12.01,-12.16,-12.3,-12.43,-12.54,-12.64,-12.74,-12.82,-12.88,-12.93,-12.97,-12.99,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.84,-12.64,-12.37,-12.04,-11.65,-11.21,-10.73,-10.21,-9.65,-9.06,-8.46,-7.84,-7.21,-6.58,-5.95,-5.33,-4.71,-4.11,-3.54,-2.99,-2.48,-2,-1.56,-1.17,-0.82,-0.54,-0.31,-0.14,-0.04,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.26,-1.87,-2.56,-3.32,-4.1,-4.9,-5.7,-6.47,-7.2,-7.88,-8.48,-9,-9.43,-9.74,-9.93,-10,-9.93,-9.75,-9.46,-9.07,-8.61,-8.07,-7.47,-6.83,-6.15,-5.43,-4.71,-3.97,-3.21,-2.48,-1.77,-1.06,-0.4,0.24,0.82,1.35,1.82,2.23,2.55,2.8,2.95,3,2.983,2.93,2.85,2.74,2.59,2.43,2.23,2.02,1.78,1.53,1.25,0.97,0.66,0.35,0.03,-0.3,-0.64,-0.98,-1.33,-1.67,-2.02,-2.36,-2.7,-3.03,-3.35,-3.66,-3.97,-4.25,-4.53,-4.78,-5.02,-5.23,-5.43,-5.59,-5.74,-5.85,-5.93,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.04,-6.16,-6.34,-6.59,-6.9,-7.26,-7.66,-8.1,-8.58,-9.07,-9.6,-10.13,-10.66,-11.21,-11.74,-12.26,-12.78,-13.27,-13.73,-14.17,-14.57,-14.92,-15.24,-15.5,-15.71,-15.87,-15.97,-16,-15.96,-15.86,-15.68,-15.45,-15.16,-14.82,-14.42,-13.99,-13.51,-12.99,-12.45,-11.87,-11.28,-10.66,-10.03,-9.39,-8.74,-8.08,-7.43,-6.79,-6.14,-5.52,-4.91,-4.32,-3.75,-3.21,-2.71,-2.23,-1.79,-1.39,-1.04,-0.73,-0.48,-0.27,-0.12,-0.03,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.019,0.08,0.17,0.29,0.44,0.63,0.83,1.06,1.31,1.59,1.88,2.18,2.5,2.84,3.18,3.53,3.9,4.27,4.64,5.01,5.39,5.77,6.14,6.52,6.88,7.24,7.6,7.94,8.28,8.6,8.91,9.21,9.49,9.75,10,10.24,10.48,10.71,10.92,11.13,11.32,11.51,11.68,11.85,12.01,12.16,12.3,12.44,12.56,12.68,12.8,12.9,13,13.1,13.18,13.26,13.34,13.41,13.47,13.53,13.59,13.64,13.69,13.73,13.77,13.8,13.83,13.86,13.89,13.91,13.925,13.941,13.955,13.966,13.976,13.983,13.989,13.993,13.997,13.999,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.95,13.82,13.61,13.32,12.96,12.55,12.08,11.55,11,10.39,9.76,9.11,8.45,7.77,7.08,6.41,5.73,5.07,4.43,3.81,3.22,2.67,2.15,1.67,1.25,0.89,0.58,0.33,0.15,0.04,0,0,0,0,0,0,0,0,0.003,0.011,0.02,0.03,0.039,0.043,0.041,0.032,0.013,-0.02,-0.06,-0.12,-0.19,-0.28,-0.38,-0.51,-0.65,-0.82,-1,-1.28,-1.66,-2.11,-2.64,-3.22,-3.86,-4.54,-5.24,-5.97,-6.72,-7.47,-8.23,-8.98,-9.71,-10.42,-11.11,-11.76,-12.37,-12.94,-13.44,-13.89,-14.27,-14.58,-14.81,-14.95,-15,-14.989,-14.95,-14.9,-14.82,-14.73,-14.62,-14.49,-14.35,-14.19,-14.02,-13.84,-13.65,-13.44,-13.24,-13.02,-12.8,-12.57,-12.35,-12.11,-11.89,-11.65,-11.43,-11.2,-10.98,-10.76,-10.56,-10.35,-10.16,-9.98,-9.81,-9.65,-9.51,-9.38,-9.27,-9.18,-9.1,-9.05,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.993,-8.973,-8.94,-8.9,-8.84,-8.77,-8.69,-8.61,-8.51,-8.4,-8.28,-8.16,-8.02,-7.88,-7.74,-7.58,-7.42,-7.25,-7.08,-6.9,-6.72,-6.53,-6.35,-6.15,-5.95,-5.76,-5.55,-5.35,-5.14,-4.94,-4.73,-4.53,-4.32,-4.11,-3.91,-3.7,-3.5,-3.3,-3.1,-2.91,-2.71,-2.52,-2.34,-2.16,-1.98,-1.81,-1.65,-1.49,-1.33,-1.19,-1.05,-0.91,-0.78,-0.67,-0.56,-0.46,-0.36,-0.28,-0.21,-0.15,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.017,0.037,0.06,0.09,0.13,0.17,0.2,0.24,0.29,0.32,0.36,0.39,0.42,0.45,0.47,0.487,0.497,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.497,0.488,0.473,0.455,0.43,0.41,0.38,0.35,0.32,0.29,0.25,0.22,0.19,0.16,0.13,0.1,0.08,0.06,0.037,0.021,0.01,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R=0\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L=0\r\nPARAM_EYE_BALL_X=0,-0,-0.001,-0.003,-0.005,-0.008,-0.011,-0.015,-0.019,-0.024,-0.03,-0.036,-0.042,-0.048,-0.056,-0.063,-0.071,-0.079,-0.087,-0.096,-0.105,-0.114,-0.123,-0.133,-0.143,-0.153,-0.163,-0.173,-0.183,-0.194,-0.204,-0.215,-0.225,-0.236,-0.246,-0.257,-0.267,-0.277,-0.287,-0.297,-0.307,-0.317,-0.326,-0.335,-0.344,-0.353,-0.361,-0.369,-0.377,-0.384,-0.392,-0.398,-0.404,-0.41,-0.416,-0.421,-0.425,-0.429,-0.432,-0.435,-0.437,-0.439,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.437,-0.43,-0.418,-0.402,-0.382,-0.36,-0.33,-0.3,-0.27,-0.24,-0.21,-0.17,-0.14,-0.1,-0.07,-0.03,0,0.04,0.07,0.11,0.14,0.17,0.2,0.22,0.24,0.258,0.273,0.287,0.298,0.308,0.316,0.323,0.328,0.332,0.335,0.338,0.339,0.34,0.34,0.29,0.15,-0.02,-0.19,-0.33,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.379,-0.378,-0.375,-0.371,-0.365,-0.359,-0.351,-0.341,-0.331,-0.319,-0.305,-0.291,-0.274,-0.256,-0.237,-0.216,-0.19,-0.17,-0.14,-0.11,-0.08,-0.05,-0.02,0.06,0.14,0.21,0.26,0.28,0.28,0.277,0.274,0.27,0.265,0.259,0.252,0.245,0.236,0.227,0.218,0.208,0.197,0.187,0.176,0.164,0.153,0.141,0.13,0.119,0.107,0.097,0.086,0.076,0.066,0.056,0.047,0.039,0.031,0.024,0.018,0.013,0.008,0.005,0.002,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.002,0.004,0.007,0.011,0.016,0.022,0.028,0.035,0.043,0.051,0.06,0.069,0.079,0.09,0.101,0.113,0.125,0.137,0.15,0.163,0.177,0.191,0.205,0.219,0.233,0.248,0.263,0.278,0.292,0.308,0.322,0.338,0.352,0.367,0.382,0.397,0.411,0.425,0.439,0.453,0.467,0.48,0.493,0.505,0.517,0.529,0.54,0.551,0.561,0.57,0.579,0.587,0.595,0.602,0.608,0.614,0.619,0.623,0.626,0.628,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.628,0.624,0.616,0.606,0.594,0.58,0.563,0.545,0.525,0.5,0.48,0.46,0.44,0.41,0.39,0.36,0.34,0.31,0.29,0.26,0.24,0.22,0.195,0.178,0.162,0.148,0.136,0.125,0.116,0.108,0.101,0.096,0.091,0.087,0.085,0.082,0.081,0.08,0.08,0.096,0.13,0.19,0.24,0.27,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.292,0.296,0.303,0.313,0.324,0.337,0.351,0.365,0.381,0.397,0.413,0.429,0.445,0.46,0.475,0.488,0.501,0.512,0.521,0.529,0.535,0.539,0.54,0.54,0.54,0.54,0.54,0.54,0.539,0.535,0.529,0.521,0.512,0.5,0.487,0.472,0.456,0.438,0.42,0.401,0.381,0.36,0.34,0.32,0.29,0.27,0.25,0.23,0.21,0.19,0.17,0.146,0.127,0.108,0.091,0.075,0.06,0.047,0.035,0.025,0.016,0.009,0.004,0.001,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/general/mtn/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.93,-5.74,-5.43,-5.02,-4.53,-3.94,-3.3,-2.59,-1.84,-1.05,-0.25,0.57,1.38,2.17,2.94,3.68,4.37,5,5.61,6.18,6.69,7.14,7.55,7.91,8.23,8.52,8.77,8.99,9.19,9.35,9.49,9.62,9.71,9.79,9.86,9.91,9.95,9.97,9.989,9.997,10,9.97,9.89,9.77,9.59,9.37,9.12,8.82,8.48,8.12,7.72,7.29,6.84,6.37,5.87,5.36,4.83,4.29,3.75,3.19,2.63,2.07,1.51,0.95,0.4,-0.14,-0.68,-1.2,-1.7,-2.2,-2.67,-3.11,-3.54,-3.93,-4.3,-4.64,-4.94,-5.21,-5.44,-5.64,-5.79,-5.91,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.7,-5.54,-5.35,-5.13,-4.89,-4.62,-4.33,-4.02,-3.69,-3.35,-3,-2.63,-2.25,-1.86,-1.46,-1.07,-0.66,-0.25,0.15,0.56,0.96,1.36,1.75,2.14,2.51,2.88,3.23,3.56,3.89,4.2,4.48,4.75,5,5.22,5.42,5.59,5.73,5.85,5.93,5.98,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.02,6.09,6.21,6.36,6.54,6.75,7,7.26,7.55,7.84,8.16,8.48,8.8,9.12,9.44,9.76,10.07,10.36,10.64,10.9,11.14,11.35,11.54,11.7,11.83,11.92,11.98,12,11.982,11.93,11.84,11.73,11.58,11.41,11.2,10.97,10.72,10.44,10.15,9.83,9.49,9.13,8.76,8.38,7.97,7.56,7.13,6.69,6.24,5.79,5.32,4.86,4.38,3.9,3.42,2.94,2.45,1.97,1.49,1.01,0.53,0.06,-0.41,-0.86,-1.31,-1.76,-2.19,-2.61,-3.02,-3.42,-3.8,-4.17,-4.52,-4.85,-5.17,-5.47,-5.75,-6,-6.24,-6.47,-6.69,-6.89,-7.09,-7.27,-7.43,-7.59,-7.74,-7.88,-8,-8.12,-8.23,-8.33,-8.42,-8.5,-8.58,-8.65,-8.71,-8.76,-8.81,-8.85,-8.89,-8.92,-8.95,-8.97,-8.985,-8.999,-9.009,-9.017,-9.021,-9.024,-9.024,-9.023,-9.02,-9.017,-9.013,-9.01,-9.006,-9.003,-9.001,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.14,-0.31,-0.52,-0.77,-1.04,-1.32,-1.61,-1.88,-2.15,-2.39,-2.6,-2.77,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.18,0.25,0.34,0.44,0.54,0.65,0.78,0.9,1.04,1.18,1.32,1.47,1.62,1.77,1.92,2.08,2.23,2.38,2.53,2.68,2.82,2.96,3.1,3.22,3.35,3.46,3.56,3.66,3.75,3.82,3.88,3.93,3.97,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.007,4.026,4.06,4.1,4.16,4.23,4.31,4.4,4.5,4.61,4.73,4.86,5,5.15,5.31,5.47,5.64,5.82,6,6.22,6.42,6.61,6.78,6.94,7.09,7.22,7.34,7.45,7.55,7.64,7.71,7.78,7.84,7.89,7.93,7.96,7.98,7.996,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.981,7.93,7.84,7.72,7.57,7.39,7.19,6.97,6.72,6.46,6.18,5.9,5.6,5.29,4.98,4.66,4.34,4.02,3.71,3.4,3.1,2.82,2.54,2.28,2.03,1.81,1.61,1.43,1.28,1.16,1.07,1.02,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0.011,0.04,0.09,0.16,0.25,0.35,0.46,0.59,0.73,0.88,1.03,1.19,1.36,1.54,1.71,1.89,2.07,2.24,2.42,2.59,2.76,2.92,3.07,3.22,3.35,3.48,3.59,3.7,3.78,3.86,3.92,3.96,3.99,4,3.994,3.975,3.95,3.91,3.86,3.81,3.76,3.7,3.64,3.57,3.51,3.44,3.38,3.32,3.26,3.21,3.16,3.11,3.07,3.04,3.02,3.005,3,3,3,3,3,3,3,3,3,2.992,2.97,2.93,2.88,2.82,2.75,2.66,2.57,2.47,2.37,2.26,2.14,2.02,1.9,1.77,1.64,1.52,1.39,1.26,1.14,1.02,0.9,0.78,0.67,0.57,0.47,0.38,0.3,0.22,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.81,-0.88,-0.96,-1.04,-1.12,-1.19,-1.27,-1.34,-1.41,-1.48,-1.55,-1.61,-1.67,-1.73,-1.78,-1.83,-1.87,-1.91,-1.94,-1.97,-1.985,-1.996,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.018,-2.07,-2.15,-2.25,-2.37,-2.51,-2.66,-2.82,-2.98,-3.14,-3.29,-3.44,-3.58,-3.7,-3.8,-3.89,-3.95,-3.99,-4,-3.983,-3.93,-3.86,-3.76,-3.65,-3.52,-3.38,-3.24,-3.09,-2.94,-2.8,-2.66,-2.52,-2.4,-2.29,-2.19,-2.11,-2.05,-2.01,-2,-2.01,-2.04,-2.08,-2.15,-2.22,-2.31,-2.41,-2.53,-2.65,-2.78,-2.91,-3.06,-3.2,-3.35,-3.5,-3.65,-3.8,-3.94,-4.09,-4.22,-4.35,-4.47,-4.59,-4.69,-4.78,-4.85,-4.92,-4.96,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.987,-4.95,-4.88,-4.8,-4.69,-4.57,-4.42,-4.26,-4.09,-3.9,-3.7,-3.5,-3.28,-3.06,-2.84,-2.61,-2.39,-2.16,-1.94,-1.72,-1.5,-1.3,-1.1,-0.91,-0.74,-0.58,-0.43,-0.31,-0.2,-0.12,-0.05,-0.01,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.64,-4.45,-4.26,-4.06,-3.86,-3.65,-3.45,-3.24,-3.03,-2.82,-2.61,-2.4,-2.2,-1.99,-1.8,-1.61,-1.43,-1.25,-1.08,-0.92,-0.78,-0.64,-0.51,-0.4,-0.3,-0.21,-0.14,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.9,4.63,4.23,3.69,3.07,2.37,1.61,0.83,0.01,-0.81,-1.61,-2.38,-3.12,-3.8,-4.42,-4.96,-5.39,-5.72,-5.93,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.63,-4.44,-4.25,-4.05,-3.85,-3.64,-3.43,-3.22,-3,-2.78,-2.57,-2.36,-2.15,-1.95,-1.75,-1.56,-1.37,-1.19,-1.02,-0.86,-0.71,-0.57,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,-0.05,-0.19,-0.41,-0.7,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.993,-3.973,-3.94,-3.9,-3.84,-3.78,-3.7,-3.62,-3.53,-3.43,-3.32,-3.21,-3.09,-2.97,-2.84,-2.71,-2.57,-2.44,-2.3,-2.16,-2.02,-1.88,-1.74,-1.6,-1.46,-1.33,-1.2,-1.07,-0.95,-0.83,-0.72,-0.62,-0.52,-0.43,-0.34,-0.27,-0.2,-0.14,-0.09,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.16,0.28,0.42,0.6,0.81,1.04,1.29,1.57,1.87,2.19,2.53,2.88,3.25,3.63,4.02,4.43,4.85,5.26,5.69,6.13,6.56,7,7.44,7.87,8.31,8.74,9.15,9.57,9.98,10.37,10.75,11.12,11.47,11.81,12.13,12.43,12.71,12.96,13.19,13.4,13.58,13.72,13.84,13.93,13.98,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.98,13.91,13.8,13.64,13.45,13.22,12.96,12.67,12.35,11.99,11.63,11.23,10.81,10.37,9.92,9.45,8.98,8.49,8,7.5,7,6.5,6,5.51,5.02,4.55,4.08,3.63,3.19,2.77,2.37,2.01,1.65,1.33,1.04,0.78,0.55,0.36,0.2,0.09,0.02,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.13,0.18,0.24,0.3,0.36,0.4,0.44,0.47,0.493,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.46,0.42,0.37,0.31,0.25,0.19,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R=0\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L=0\r\nPARAM_EYE_BALL_X=0,0.003,0.011,0.024,0.04,0.059,0.08,0.1,0.12,0.14,0.165,0.183,0.199,0.212,0.222,0.228,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.229,0.224,0.218,0.209,0.197,0.184,0.169,0.151,0.132,0.11,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.47,-0.493,-0.512,-0.529,-0.545,-0.559,-0.571,-0.581,-0.589,-0.595,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.581,-0.53,-0.47,-0.39,-0.31,-0.23,-0.16,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.017,-0.029,-0.044,-0.062,-0.081,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.4,-0.42,-0.437,-0.453,-0.466,-0.476,-0.484,-0.488,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.489,-0.487,-0.483,-0.478,-0.471,-0.463,-0.454,-0.443,-0.432,-0.42,-0.407,-0.393,-0.378,-0.363,-0.347,-0.331,-0.314,-0.297,-0.28,-0.263,-0.245,-0.227,-0.21,-0.193,-0.176,-0.159,-0.143,-0.127,-0.112,-0.097,-0.083,-0.07,-0.058,-0.047,-0.036,-0.027,-0.019,-0.012,-0.007,-0.003,-0.001,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.012,0.026,0.044,0.06,0.09,0.11,0.13,0.16,0.18,0.199,0.216,0.231,0.241,0.248,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.248,0.246,0.244,0.24,0.236,0.232,0.226,0.221,0.214,0.208,0.201,0.193,0.185,0.178,0.169,0.161,0.152,0.144,0.135,0.126,0.117,0.109,0.1,0.091,0.083,0.075,0.067,0.059,0.052,0.045,0.039,0.032,0.027,0.021,0.017,0.012,0.009,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.002,-0.004,-0.008,-0.012,-0.016,-0.022,-0.027,-0.033,-0.04,-0.047,-0.054,-0.061,-0.068,-0.075,-0.081,-0.088,-0.094,-0.101,-0.106,-0.111,-0.116,-0.12,-0.124,-0.126,-0.128,-0.13,-0.13,-0.127,-0.119,-0.106,-0.09,-0.07,-0.05,-0.03,-0,0.02,0.05,0.07,0.1,0.12,0.14,0.161,0.178,0.191,0.201,0.208,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.205,0.202,0.198,0.194,0.19,0.185,0.18,0.174,0.168,0.162,0.156,0.149,0.142,0.135,0.127,0.12,0.113,0.105,0.097,0.09,0.083,0.075,0.068,0.061,0.054,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/general/mtn/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.013,-0.05,-0.11,-0.2,-0.31,-0.44,-0.59,-0.75,-0.94,-1.14,-1.35,-1.58,-1.82,-2.07,-2.34,-2.6,-2.88,-3.17,-3.46,-3.75,-4.05,-4.35,-4.65,-4.95,-5.25,-5.54,-5.83,-6.12,-6.4,-6.66,-6.93,-7.18,-7.42,-7.65,-7.86,-8.06,-8.25,-8.41,-8.56,-8.69,-8.8,-8.89,-8.95,-8.99,-9,-8.96,-8.83,-8.63,-8.36,-8.04,-7.64,-7.2,-6.72,-6.19,-5.63,-5.03,-4.42,-3.77,-3.11,-2.45,-1.77,-1.08,-0.4,0.27,0.93,1.58,2.22,2.83,3.42,3.97,4.49,4.97,5.41,5.81,6.16,6.45,6.68,6.86,6.96,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.9,6.63,6.19,5.61,4.91,4.09,3.17,2.17,1.1,-0.02,-1.19,-2.38,-3.61,-4.84,-6.07,-7.29,-8.47,-9.64,-10.74,-11.79,-12.76,-13.68,-14.5,-15.22,-15.83,-16.33,-16.7,-16.92,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.9,-16.62,-16.16,-15.56,-14.83,-13.97,-13.01,-11.97,-10.85,-9.68,-8.47,-7.23,-5.94,-4.66,-3.38,-2.11,-0.88,0.33,1.48,2.58,3.59,4.54,5.4,6.14,6.79,7.3,7.68,7.92,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.9,7.61,7.17,6.57,5.86,5.03,4.11,3.12,2.08,0.98,-0.13,-1.28,-2.44,-3.56,-4.67,-5.75,-6.77,-7.75,-8.65,-9.47,-10.19,-10.81,-11.31,-11.69,-11.92,-12,-11.91,-11.65,-11.24,-10.7,-10.02,-9.24,-8.34,-7.37,-6.33,-5.25,-4.09,-2.92,-1.74,-0.55,0.62,1.78,2.92,3.99,5.01,5.96,6.85,7.62,8.32,8.91,9.37,9.71,9.93,10,9.981,9.92,9.83,9.71,9.55,9.36,9.15,8.91,8.65,8.37,8.07,7.75,7.42,7.07,6.72,6.35,5.99,5.61,5.23,4.86,4.48,4.11,3.74,3.39,3.03,2.69,2.36,2.05,1.75,1.47,1.21,0.97,0.76,0.56,0.4,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,0.019,0.07,0.16,0.27,0.41,0.56,0.73,0.9,1.09,1.28,1.48,1.67,1.86,2.04,2.22,2.38,2.53,2.66,2.78,2.87,2.94,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.008,3.03,3.07,3.12,3.18,3.25,3.33,3.42,3.52,3.62,3.72,3.83,3.94,4.06,4.17,4.28,4.38,4.48,4.58,4.67,4.75,4.82,4.88,4.93,4.97,4.99,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.87,4.72,4.53,4.29,4.02,3.71,3.4,3.06,2.72,2.37,2.03,1.7,1.39,1.09,0.83,0.59,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.998,-3.992,-3.981,-3.967,-3.949,-3.93,-3.9,-3.87,-3.84,-3.8,-3.77,-3.72,-3.68,-3.63,-3.58,-3.53,-3.47,-3.41,-3.35,-3.29,-3.22,-3.16,-3.09,-3.02,-2.94,-2.87,-2.79,-2.71,-2.63,-2.55,-2.47,-2.38,-2.3,-2.21,-2.12,-2.03,-1.94,-1.85,-1.76,-1.67,-1.57,-1.48,-1.38,-1.29,-1.19,-1.1,-1,-0.9,-0.81,-0.72,-0.64,-0.57,-0.5,-0.44,-0.38,-0.33,-0.29,-0.24,-0.21,-0.17,-0.14,-0.12,-0.1,-0.076,-0.059,-0.045,-0.033,-0.024,-0.016,-0.011,-0.006,-0.003,-0.001,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.003,-0.011,-0.025,-0.045,-0.07,-0.1,-0.13,-0.17,-0.21,-0.25,-0.3,-0.35,-0.4,-0.46,-0.52,-0.58,-0.64,-0.7,-0.77,-0.83,-0.9,-0.97,-1.03,-1.1,-1.17,-1.23,-1.3,-1.36,-1.42,-1.48,-1.54,-1.6,-1.65,-1.7,-1.75,-1.79,-1.83,-1.87,-1.9,-1.93,-1.96,-1.975,-1.989,-1.997,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.67,-1.58,-1.48,-1.38,-1.28,-1.17,-1.06,-0.94,-0.83,-0.72,-0.62,-0.52,-0.42,-0.33,-0.25,-0.18,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.9,-0.79,-0.64,-0.46,-0.26,-0.03,0.22,0.48,0.76,1.03,1.32,1.61,1.89,2.17,2.44,2.69,2.94,3.16,3.37,3.55,3.7,3.83,3.92,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.984,3.94,3.86,3.76,3.64,3.5,3.33,3.16,2.97,2.77,2.56,2.35,2.13,1.92,1.71,1.5,1.29,1.09,0.91,0.73,0.57,0.43,0.31,0.2,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.2,-0.43,-0.72,-1.09,-1.49,-1.94,-2.41,-2.91,-3.42,-3.94,-4.45,-4.95,-5.45,-5.91,-6.34,-6.74,-7.1,-7.41,-7.66,-7.84,-7.96,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.96,-7.83,-7.63,-7.36,-7.04,-6.64,-6.2,-5.72,-5.19,-4.63,-4.03,-3.42,-2.77,-2.11,-1.45,-0.77,-0.08,0.6,1.27,1.93,2.58,3.22,3.83,4.42,4.97,5.49,5.97,6.41,6.81,7.16,7.45,7.68,7.86,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.97,7.88,7.73,7.54,7.3,7.03,6.72,6.39,6.03,5.66,5.27,4.87,4.46,4.05,3.64,3.24,2.84,2.45,2.09,1.74,1.41,1.11,0.83,0.59,0.39,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.21,-0.46,-0.79,-1.18,-1.63,-2.14,-2.68,-3.26,-3.86,-4.47,-5.11,-5.74,-6.36,-6.97,-7.56,-8.12,-8.66,-9.16,-9.61,-10,-10.34,-10.62,-10.83,-10.96,-11,-10.989,-10.96,-10.9,-10.83,-10.74,-10.63,-10.5,-10.36,-10.2,-10.02,-9.84,-9.64,-9.43,-9.21,-8.98,-8.73,-8.48,-8.22,-7.96,-7.69,-7.41,-7.13,-6.85,-6.56,-6.27,-5.97,-5.69,-5.39,-5.1,-4.8,-4.51,-4.23,-3.95,-3.67,-3.39,-3.12,-2.86,-2.61,-2.36,-2.12,-1.89,-1.67,-1.46,-1.26,-1.07,-0.9,-0.74,-0.59,-0.46,-0.34,-0.24,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.1,0.37,0.81,1.36,2.04,2.8,3.63,4.52,5.46,6.4,7.38,8.34,9.29,10.21,11.08,11.89,12.64,13.31,13.88,14.36,14.71,14.92,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15.005,15.021,15.05,15.08,15.12,15.17,15.22,15.29,15.35,15.42,15.5,15.57,15.65,15.74,15.82,15.9,15.99,16.07,16.16,16.24,16.32,16.4,16.48,16.55,16.62,16.69,16.75,16.8,16.85,16.89,16.93,16.96,16.98,16.995,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.93,16.74,16.43,16.02,15.52,14.94,14.29,13.58,12.82,12.03,11.2,10.35,9.48,8.61,7.74,6.88,6.04,5.22,4.43,3.69,3,2.35,1.77,1.26,0.83,0.48,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0\r\nPARAM_BROW_R_FORM=0\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L=0\r\nPARAM_EYE_BALL_X=0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.17,-0.21,-0.25,-0.29,-0.32,-0.36,-0.39,-0.43,-0.46,-0.49,-0.51,-0.54,-0.555,-0.569,-0.577,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.579,-0.578,-0.575,-0.572,-0.568,-0.563,-0.558,-0.551,-0.545,-0.538,-0.53,-0.523,-0.515,-0.506,-0.498,-0.49,-0.481,-0.473,-0.464,-0.456,-0.448,-0.44,-0.432,-0.425,-0.418,-0.411,-0.405,-0.4,-0.395,-0.391,-0.387,-0.384,-0.382,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.378,-0.374,-0.367,-0.358,-0.347,-0.334,-0.319,-0.304,-0.287,-0.269,-0.25,-0.231,-0.212,-0.193,-0.173,-0.154,-0.135,-0.117,-0.099,-0.082,-0.067,-0.053,-0.04,-0.028,-0.018,-0.011,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.002,0.003,0.004,0.006,0.007,0.009,0.011,0.012,0.014,0.016,0.017,0.019,0.021,0.022,0.024,0.025,0.026,0.027,0.028,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.029,0.03,0.03,0.028,0.03,0.027,0.03,0.026,0.03,0.024,0.024,0.02,0.022,0.022,0.021,0.02,0.019,0.019,0.018,0.02,0.016,0.016,0.015,0.014,0.01,0.012,0.012,0.011,0.01,0.01,0.009,0.008,0.01,0.006,0.006,0.01,0.005,0.004,0,0.003,0,0,0.002,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.005,0.011,0.019,0.029,0.039,0.051,0.063,0.076,0.09,0.103,0.117,0.13,0.143,0.155,0.166,0.177,0.186,0.194,0.201,0.206,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.208,0.203,0.195,0.183,0.17,0.153,0.135,0.114,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.06,-0.09,-0.12,-0.15,-0.18,-0.21,-0.23,-0.26,-0.29,-0.31,-0.33,-0.35,-0.38,-0.394,-0.41,-0.425,-0.437,-0.447,-0.454,-0.458,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.458,-0.453,-0.445,-0.433,-0.42,-0.404,-0.387,-0.367,-0.35,-0.33,-0.3,-0.28,-0.26,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.081,-0.064,-0.048,-0.034,-0.022,-0.013,-0.006,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.25,0.29,0.33,0.37,0.41,0.45,0.49,0.52,0.56,0.59,0.62,0.65,0.67,0.686,0.699,0.707,0.71,0.709,0.707,0.704,0.699,0.693,0.686,0.678,0.668,0.658,0.647,0.635,0.622,0.609,0.594,0.579,0.564,0.548,0.531,0.514,0.496,0.479,0.46,0.442,0.423,0.405,0.386,0.367,0.348,0.329,0.31,0.291,0.273,0.255,0.237,0.219,0.202,0.185,0.168,0.152,0.137,0.122,0.108,0.094,0.081,0.069,0.058,0.048,0.038,0.029,0.022,0.015,0.01,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/general/pose.json",
    "content": "{\n\t\"type\":\"Live2D Pose\",\n\t\"parts_visible\":[\n\t\t{\n\t\t\t\"group\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARTS_01_ARM_L_A_001\",\n\t\t\t\t\t\"link\":[\n\t\t\t\t\t\t\"PARTS_01_ARM_L_A_002\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARTS_01_ARM_L_B_001\",\n\t\t\t\t\t\"link\":[\n\t\t\t\t\t\t\"PARTS_01_ARM_L_B_002\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"group\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARTS_01_ARM_R_A_001\",\n\t\t\t\t\t\"link\":[\n\t\t\t\t\t\t\"PARTS_01_ARM_R_A_002\"\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARTS_01_ARM_R_B_001\",\n\t\t\t\t\t\"link\":[\n\t\t\t\t\t\t\"PARTS_01_ARM_R_B_002\"\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/histoire/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.8,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/histoire/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.15,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.35,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.22\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.25\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/histoirenohover/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.8,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/histoirenohover/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.15,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.35,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.22\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.25\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/histoirenohover/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgear/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgear/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.3,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_01_AHO_R\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_01_AHO_L\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgear_extra/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgear_extra/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgearswim/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepgearswim/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.3,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_01_AHO_R\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_01_AHO_L\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepmaid/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.5,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"expressions\": [\n\t    {\"name\": \"normal\", \"file\": \"expressions/../../nepnep/general/exp/normal.json\"},\n\t    {\"name\": \"happy\", \"file\": \"expressions/../../nepnep/general/exp/happy.json\"},\n\t    {\"name\": \"unhappy\", \"file\": \"expressions/../../nepnep/general/exp/unhappy.json\"},\n\t    {\"name\": \"kira\", \"file\": \"expressions/../../nepnep/general/exp/kira.json\"},\n\t    {\"name\": \"deformed\", \"file\": \"expressions/../../nepnep/general/exp/deformed.json\"},\n\t    {\"name\": \"enjoy\", \"file\": \"expressions/../../nepnep/general/exp/enjoy.json\"}\n\t],\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ],\n        \"flick_head\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/smile.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/shake.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/refuse.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/tilt_head.mtn\"}\n        ],\n        \"tap_body\": [\n            {\"dialogue\": 11, \"sound\": \"sounds/../../nepnep/general/snd/001.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_head_1.mtn\"},\n            {\"dialogue\": 13, \"sound\": \"sounds/../../nepnep/general/snd/013.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_1.mtn\"},\n            {\"dialogue\": 90, \"sound\": \"sounds/../../nepnep/general/snd/101.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_slide_head_2.mtn\"},\n            {\"dialogue\": 93, \"sound\": \"sounds/../../nepnep/general/snd/007.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_boobs_1.mtn\"},\n            {\"dialogue\": 94, \"sound\": \"sounds/../../nepnep/general/snd/014.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_2.mtn\"}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepmaid/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/deformed.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500,\n\t\"params\":[\n\t\t{\"id\":\"PARAM_FACE_COVER\",\"val\":1},\n\t\t{\"id\":\"PARAM_EYE_DEFORMED_02\",\"val\":1}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/enjoy.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500,\n\t\"params\":[\n\t\t{\"id\":\"PARAM_FACE_COVER\",\"val\":1},\n\t\t{\"id\":\"PARAM_EYE_DEFORMED_04\",\"val\":1}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/happy.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500,\n\t\"params\":[\n\t\t{\"id\":\"PARAM_FACE_COVER\",\"val\":1},\n\t\t{\"id\":\"PARAM_EYE_DEFORMED_03\",\"val\":1}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/kira.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500,\n\t\"params\":[\n\t\t{\"id\":\"PARAM_EYE_BALL_GLITTER\",\"val\":1},\n\t\t{\"id\":\"PARAM_BROW_L_Y\",\"val\":1},\n\t\t{\"id\":\"PARAM_BROW_R_Y\",\"val\":1}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/normal.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/exp/unhappy.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n\t\"fade_in\":500,\n\t\"fade_out\":500,\n\t\"params\":[\n\t\t{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.6,\"def\":1},\n\t\t{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.6,\"def\":1},\n\t\t{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},\n\t\t{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/idle_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_FACE_COVER=0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_DEFORMED=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_EYE_BALL_X=0,0,0.002,0.005,0.009,0.014,0.02,0.027,0.034,0.042,0.051,0.06,0.07,0.08,0.091,0.101,0.113,0.124,0.135,0.146,0.157,0.169,0.179,0.19,0.2,0.21,0.219,0.228,0.236,0.243,0.25,0.256,0.261,0.265,0.268,0.269,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.269,0.267,0.263,0.258,0.252,0.244,0.236,0.227,0.216,0.205,0.193,0.181,0.168,0.154,0.14,0.126,0.111,0.097,0.082,0.067,0.052,0.037,0.023,0.008,-0.006,-0.02,-0.033,-0.046,-0.059,-0.07,-0.081,-0.092,-0.101,-0.11,-0.117,-0.124,-0.13,-0.134,-0.137,-0.139,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.139,-0.14,-0.138,-0.14,-0.136,-0.136,-0.135,-0.13,-0.133,-0.132,-0.131,-0.13,-0.129,-0.128,-0.127,-0.125,-0.124,-0.123,-0.121,-0.12,-0.119,-0.117,-0.115,-0.114,-0.112,-0.111,-0.109,-0.107,-0.106,-0.104,-0.102,-0.1,-0.098,-0.097,-0.095,-0.093,-0.091,-0.089,-0.087,-0.085,-0.083,-0.081,-0.079,-0.077,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065,-0.063,-0.061,-0.059,-0.057,-0.055,-0.054,-0.052,-0.05,-0.048,-0.046,-0.044,-0.042,-0.04,-0.039,-0.037,-0.035,-0.033,-0.032,-0.03,-0.028,-0.027,-0.025,-0.024,-0.022,-0.021,-0.019,-0.018,-0.017,-0.015,-0.014,-0.013,-0.012,-0.01,-0.009,-0.008,-0.007,-0.006,-0.006,-0.005,-0,-0.003,-0.003,-0,-0.002,-0,-0.001,-0,-0,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.022,-0.05,-0.07,-0.11,-0.14,-0.17,-0.21,-0.24,-0.26,-0.29,-0.304,-0.316,-0.32,-0.318,-0.312,-0.303,-0.291,-0.277,-0.26,-0.243,-0.224,-0.204,-0.183,-0.16,-0.14,-0.122,-0.102,-0.084,-0.066,-0.05,-0.036,-0.024,-0.014,-0.006,-0.002,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_EYE_BALL_Y=0,0,0.002,0.003,0.006,0.009,0.013,0.017,0.021,0.027,0.032,0.038,0.044,0.051,0.057,0.064,0.071,0.078,0.085,0.092,0.099,0.106,0.113,0.119,0.126,0.132,0.138,0.143,0.149,0.153,0.157,0.161,0.164,0.167,0.168,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.167,0.164,0.159,0.153,0.146,0.138,0.13,0.12,0.11,0.099,0.087,0.075,0.063,0.05,0.037,0.023,0.009,-0.004,-0.018,-0.032,-0.046,-0.059,-0.073,-0.086,-0.099,-0.111,-0.123,-0.134,-0.145,-0.156,-0.165,-0.174,-0.182,-0.189,-0.195,-0.2,-0.204,-0.207,-0.209,-0.21,-0.21,-0.21,-0.21,-0.21,-0.209,-0.21,-0.207,-0.207,-0.206,-0.205,-0.204,-0.202,-0.201,-0.2,-0.198,-0.197,-0.195,-0.194,-0.192,-0.19,-0.188,-0.186,-0.184,-0.182,-0.18,-0.178,-0.176,-0.173,-0.171,-0.168,-0.166,-0.163,-0.161,-0.158,-0.156,-0.153,-0.15,-0.148,-0.145,-0.142,-0.139,-0.136,-0.133,-0.13,-0.128,-0.125,-0.122,-0.119,-0.116,-0.113,-0.11,-0.107,-0.104,-0.101,-0.098,-0.095,-0.092,-0.089,-0.086,-0.083,-0.08,-0.077,-0.075,-0.072,-0.069,-0.066,-0.063,-0.061,-0.058,-0.055,-0.053,-0.05,-0.047,-0.045,-0.042,-0.04,-0.038,-0.035,-0.033,-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.019,-0.017,-0.016,-0.014,-0.013,-0.011,-0.01,-0.008,-0.007,-0.006,-0.005,-0.004,-0.003,-0.003,-0.002,-0,-0.001,-0,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.011,0.018,0.026,0.035,0.043,0.051,0.059,0.066,0.072,0.076,0.079,0.08,0.079,0.078,0.076,0.073,0.069,0.065,0.061,0.056,0.051,0.046,0.041,0.035,0.03,0.026,0.021,0.017,0.013,0.009,0.006,0.003,0.002,0,0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.52,-1.1,-1.88,-2.8,-3.84,-4.97,-6.14,-7.35,-8.55,-9.71,-10.8,-11.82,-12.72,-13.51,-14.14,-14.61,-14.9,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.9,-14.61,-14.14,-13.52,-12.76,-11.9,-10.9,-9.85,-8.73,-7.55,-6.37,-5.15,-3.95,-2.76,-1.6,-0.49,0.54,1.49,2.36,3.13,3.78,4.3,4.68,4.92,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.83,4.38,3.73,2.92,2.03,1.09,0.14,-0.78,-1.64,-2.41,-3.05,-3.56,-3.89,-4,-3.97,-3.9,-3.78,-3.64,-3.46,-3.25,-3.03,-2.79,-2.54,-2.29,-2.03,-1.77,-1.52,-1.28,-1.05,-0.83,-0.63,-0.45,-0.3,-0.17,-0.08,-0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.017,0.04,0.07,0.1,0.15,0.2,0.25,0.31,0.38,0.45,0.53,0.61,0.69,0.78,0.87,0.96,1.06,1.15,1.25,1.35,1.45,1.55,1.65,1.75,1.85,1.94,2.04,2.13,2.22,2.31,2.39,2.47,2.55,2.62,2.69,2.75,2.8,2.85,2.9,2.93,2.96,2.98,2.996,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.97,2.88,2.74,2.56,2.33,2.07,1.77,1.45,1.12,0.77,0.41,0.04,-0.32,-0.67,-1.02,-1.35,-1.66,-1.95,-2.21,-2.44,-2.63,-2.79,-2.9,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.993,-2.973,-2.94,-2.9,-2.84,-2.78,-2.7,-2.62,-2.53,-2.44,-2.33,-2.23,-2.11,-2,-1.88,-1.76,-1.64,-1.52,-1.39,-1.27,-1.15,-1.03,-0.92,-0.81,-0.7,-0.6,-0.51,-0.42,-0.34,-0.26,-0.2,-0.14,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.14,0.22,0.31,0.42,0.53,0.66,0.79,0.94,1.09,1.25,1.41,1.58,1.76,1.93,2.11,2.3,2.48,2.66,2.84,3.02,3.19,3.37,3.53,3.7,3.86,4.01,4.15,4.28,4.41,4.53,4.63,4.72,4.8,4.87,4.93,4.97,4.99,5,4.984,4.94,4.86,4.76,4.63,4.48,4.31,4.13,3.93,3.71,3.49,3.25,3.02,2.77,2.53,2.29,2.05,1.81,1.58,1.36,1.15,0.95,0.77,0.6,0.45,0.32,0.21,0.12,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.007,-0.027,-0.06,-0.1,-0.16,-0.22,-0.3,-0.38,-0.47,-0.57,-0.67,-0.78,-0.89,-1.01,-1.13,-1.25,-1.37,-1.5,-1.63,-1.75,-1.87,-1.99,-2.11,-2.22,-2.33,-2.43,-2.53,-2.62,-2.7,-2.78,-2.84,-2.9,-2.94,-2.97,-2.993,-3,-3,-3,-3,-3,-3,-3,-3,-2.994,-2.977,-2.95,-2.91,-2.87,-2.81,-2.75,-2.68,-2.61,-2.52,-2.44,-2.35,-2.25,-2.15,-2.05,-1.95,-1.84,-1.73,-1.62,-1.51,-1.41,-1.3,-1.19,-1.08,-0.98,-0.88,-0.78,-0.69,-0.6,-0.51,-0.43,-0.35,-0.28,-0.22,-0.17,-0.12,-0.08,-0.04,-0.02,-0.005,0,-0.006,-0.023,-0.05,-0.09,-0.14,-0.19,-0.26,-0.33,-0.42,-0.5,-0.6,-0.7,-0.81,-0.92,-1.04,-1.16,-1.28,-1.41,-1.54,-1.67,-1.8,-1.93,-2.07,-2.2,-2.33,-2.46,-2.59,-2.72,-2.84,-2.96,-3.08,-3.19,-3.3,-3.4,-3.5,-3.58,-3.67,-3.74,-3.81,-3.86,-3.91,-3.95,-3.98,-3.994,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.98,-3.92,-3.83,-3.7,-3.55,-3.38,-3.18,-2.97,-2.75,-2.51,-2.27,-2.03,-1.79,-1.55,-1.32,-1.1,-0.89,-0.7,-0.53,-0.37,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_Y=0,-0.03,-0.13,-0.28,-0.48,-0.73,-1.04,-1.38,-1.77,-2.19,-2.64,-3.12,-3.63,-4.16,-4.7,-5.26,-5.84,-6.42,-7,-7.58,-8.16,-8.74,-9.3,-9.84,-10.37,-10.88,-11.36,-11.81,-12.23,-12.62,-12.96,-13.27,-13.52,-13.72,-13.87,-13.97,-14,-14,-14,-14,-14,-14,-14,-14,-13.95,-13.79,-13.53,-13.19,-12.76,-12.25,-11.67,-11.03,-10.33,-9.56,-8.75,-7.91,-7.01,-6.09,-5.14,-4.17,-3.17,-2.17,-1.15,-0.12,0.88,1.9,2.89,3.89,4.85,5.79,6.72,7.59,8.43,9.23,9.99,10.69,11.34,11.92,12.44,12.9,13.29,13.59,13.81,13.95,14,13.989,13.95,13.9,13.82,13.72,13.61,13.47,13.32,13.15,12.96,12.76,12.54,12.31,12.07,11.81,11.55,11.27,10.98,10.68,10.37,10.05,9.73,9.41,9.07,8.74,8.39,8.05,7.7,7.35,7,6.65,6.3,5.95,5.61,5.26,4.93,4.59,4.27,3.95,3.63,3.32,3.02,2.73,2.45,2.19,1.93,1.69,1.46,1.24,1.04,0.85,0.68,0.53,0.39,0.28,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_ANGLE_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.15,-0.2,-0.25,-0.31,-0.38,-0.45,-0.52,-0.59,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.17,-1.25,-1.33,-1.41,-1.48,-1.55,-1.62,-1.69,-1.75,-1.8,-1.85,-1.9,-1.93,-1.96,-1.98,-1.995,-2,-2,-2,-2,-2,-2,-2,-2,-1.996,-1.985,-1.967,-1.94,-1.91,-1.87,-1.83,-1.79,-1.74,-1.68,-1.62,-1.56,-1.5,-1.43,-1.37,-1.3,-1.23,-1.15,-1.08,-1.01,-0.94,-0.86,-0.79,-0.72,-0.65,-0.59,-0.52,-0.46,-0.4,-0.34,-0.29,-0.24,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=-2,-2.011,-2.04,-2.1,-2.17,-2.26,-2.37,-2.49,-2.63,-2.78,-2.94,-3.12,-3.3,-3.49,-3.68,-3.88,-4.08,-4.29,-4.5,-4.71,-4.92,-5.12,-5.32,-5.51,-5.7,-5.88,-6.06,-6.22,-6.37,-6.51,-6.63,-6.74,-6.83,-6.9,-6.96,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-6.987,-6.95,-6.88,-6.8,-6.69,-6.56,-6.42,-6.26,-6.08,-5.89,-5.69,-5.48,-5.25,-5.02,-4.79,-4.54,-4.29,-4.04,-3.79,-3.53,-3.28,-3.02,-2.78,-2.53,-2.29,-2.05,-1.82,-1.6,-1.39,-1.19,-1,-0.83,-0.66,-0.52,-0.39,-0.27,-0.18,-0.1,-0.05,-0.01,0,-0.006,-0.025,-0.06,-0.1,-0.15,-0.21,-0.27,-0.35,-0.43,-0.52,-0.61,-0.7,-0.79,-0.89,-0.99,-1.08,-1.18,-1.28,-1.37,-1.46,-1.54,-1.62,-1.69,-1.76,-1.82,-1.87,-1.92,-1.95,-1.98,-1.995,-2,-1.982,-1.93,-1.85,-1.75,-1.63,-1.49,-1.34,-1.18,-1.02,-0.86,-0.71,-0.56,-0.42,-0.3,-0.2,-0.11,-0.05,-0.01,0,-0.003,-0.01,-0.022,-0.04,-0.06,-0.09,-0.12,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.46,-0.52,-0.57,-0.63,-0.69,-0.75,-0.81,-0.87,-0.93,-0.99,-1.05,-1.12,-1.18,-1.24,-1.29,-1.35,-1.41,-1.47,-1.52,-1.57,-1.62,-1.67,-1.71,-1.76,-1.8,-1.83,-1.87,-1.9,-1.92,-1.95,-1.965,-1.98,-1.991,-1.998,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_ARM_L=-2,-2.011,-2.04,-2.1,-2.17,-2.26,-2.37,-2.49,-2.63,-2.78,-2.94,-3.12,-3.3,-3.49,-3.68,-3.88,-4.08,-4.29,-4.5,-4.71,-4.92,-5.12,-5.32,-5.51,-5.7,-5.88,-6.06,-6.22,-6.37,-6.51,-6.63,-6.74,-6.83,-6.9,-6.96,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-6.987,-6.95,-6.88,-6.8,-6.69,-6.56,-6.42,-6.26,-6.08,-5.89,-5.69,-5.48,-5.25,-5.02,-4.79,-4.54,-4.29,-4.04,-3.79,-3.53,-3.28,-3.02,-2.78,-2.53,-2.29,-2.05,-1.82,-1.6,-1.39,-1.19,-1,-0.83,-0.66,-0.52,-0.39,-0.27,-0.18,-0.1,-0.05,-0.01,0,-0.006,-0.025,-0.06,-0.1,-0.15,-0.21,-0.27,-0.35,-0.43,-0.52,-0.61,-0.7,-0.79,-0.89,-0.99,-1.08,-1.18,-1.28,-1.37,-1.46,-1.54,-1.62,-1.69,-1.76,-1.82,-1.87,-1.92,-1.95,-1.98,-1.995,-2,-1.982,-1.93,-1.85,-1.75,-1.63,-1.49,-1.34,-1.18,-1.02,-0.86,-0.71,-0.56,-0.42,-0.3,-0.2,-0.11,-0.05,-0.01,0,-0.003,-0.01,-0.022,-0.04,-0.06,-0.09,-0.12,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.46,-0.52,-0.57,-0.63,-0.69,-0.75,-0.81,-0.87,-0.93,-0.99,-1.05,-1.12,-1.18,-1.24,-1.29,-1.35,-1.41,-1.47,-1.52,-1.57,-1.62,-1.67,-1.71,-1.76,-1.8,-1.83,-1.87,-1.9,-1.92,-1.95,-1.965,-1.98,-1.991,-1.998,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.99,0.978,0.96,0.94,0.91,0.88,0.85,0.82,0.78,0.73,0.69,0.64,0.59,0.54,0.48,0.43,0.37,0.31,0.25,0.19,0.13,0.07,0.01,-0.05,-0.12,-0.18,-0.24,-0.29,-0.35,-0.41,-0.47,-0.52,-0.57,-0.62,-0.67,-0.71,-0.76,-0.8,-0.83,-0.87,-0.9,-0.92,-0.95,-0.965,-0.98,-0.991,-0.998,-1\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_SWEAT=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_FACE_COVER=0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_DEFORMED=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_EYE_BALL_X=0,-0,-0,-0.002,-0.003,-0.004,-0.006,-0.008,-0.011,-0.013,-0.016,-0.019,-0.023,-0.026,-0.03,-0.034,-0.038,-0.042,-0.046,-0.051,-0.056,-0.06,-0.065,-0.07,-0.075,-0.08,-0.084,-0.089,-0.094,-0.099,-0.104,-0.109,-0.114,-0.118,-0.123,-0.128,-0.132,-0.136,-0.14,-0.145,-0.148,-0.152,-0.156,-0.159,-0.162,-0.165,-0.168,-0.17,-0.172,-0.174,-0.176,-0.177,-0.179,-0.179,-0.18,-0.18,-0.18,-0.18,-0.18,-0.178,-0.177,-0.176,-0.175,-0.173,-0.172,-0.17,-0.168,-0.165,-0.163,-0.16,-0.157,-0.154,-0.151,-0.147,-0.143,-0.139,-0.135,-0.131,-0.126,-0.121,-0.117,-0.111,-0.106,-0.101,-0.095,-0.089,-0.083,-0.077,-0.07,-0.063,-0.057,-0.05,-0.042,-0.035,-0.027,-0.019,-0.011,-0.003,0.005,0.014,0.023,0.031,0.041,0.05,0.059,0.069,0.079,0.089,0.099,0.11,0.12,0.131,0.142,0.153,0.164,0.176,0.188,0.2,0.212,0.224,0.236,0.249,0.262,0.275,0.288,0.301,0.315,0.328,0.342,0.356,0.37,0.385,0.399,0.412,0.424,0.435,0.445,0.455,0.463,0.471,0.479,0.485,0.491,0.496,0.501,0.505,0.509,0.512,0.514,0.516,0.518,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.519,0.515,0.509,0.501,0.491,0.48,0.466,0.452,0.436,0.42,0.402,0.384,0.365,0.346,0.327,0.308,0.29,0.271,0.253,0.236,0.22,0.204,0.19,0.177,0.165,0.155,0.146,0.139,0.134,0.131,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0.002,0,0.003,0,0.004,0.005,0.01,0.007,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.015,0.016,0.017,0.019,0.02,0.022,0.023,0.025,0.027,0.029,0.03,0.032,0.034,0.037,0.039,0.041,0.043,0.046,0.048,0.051,0.053,0.056,0.059,0.062,0.065,0.068,0.071,0.074,0.078,0.081,0.084,0.088,0.092,0.096,0.099,0.103,0.108,0.112,0.116,0.12,0.125,0.129,0.134,0.139,0.144,0.149,0.154,0.159,0.165,0.17,0.177,0.185,0.194,0.205,0.216,0.227,0.24,0.252,0.265,0.277,0.289,0.301,0.313,0.324,0.335,0.344,0.353,0.361,0.367,0.373,0.377,0.379,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.381,0.38,0.383,0.384,0.385,0.387,0.389,0.39,0.392,0.394,0.396,0.398,0.4,0.402,0.404,0.406,0.407,0.409,0.411,0.412,0.414,0.415,0.416,0.417,0.418,0.419,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=0\r\r\nPARAM_ANGLE_Z=0,-0.009,-0.04,-0.08,-0.14,-0.22,-0.31,-0.41,-0.53,-0.67,-0.81,-0.97,-1.14,-1.31,-1.5,-1.69,-1.9,-2.11,-2.32,-2.55,-2.78,-3.01,-3.25,-3.49,-3.73,-3.98,-4.22,-4.47,-4.72,-4.96,-5.21,-5.45,-5.69,-5.92,-6.15,-6.38,-6.6,-6.82,-7.02,-7.23,-7.42,-7.61,-7.78,-7.95,-8.11,-8.25,-8.39,-8.51,-8.62,-8.72,-8.8,-8.87,-8.93,-8.97,-8.99,-9,-8.87,-8.51,-7.92,-7.19,-6.28,-5.27,-4.16,-2.97,-1.72,-0.46,0.84,2.13,3.38,4.62,5.77,6.86,7.85,8.74,9.51,10.14,10.61,10.9,11,10.91,10.65,10.23,9.67,9,8.21,7.33,6.37,5.34,4.27,3.15,2.01,0.83,-0.35,-1.53,-2.69,-3.83,-4.94,-6,-7.01,-7.94,-8.81,-9.6,-10.29,-10.88,-11.35,-11.71,-11.93,-12,-11.84,-11.38,-10.66,-9.74,-8.6,-7.34,-5.95,-4.47,-2.9,-1.33,0.3,1.91,3.48,5.02,6.46,7.82,9.07,10.18,11.14,11.93,12.51,12.87,13,12.92,12.68,12.3,11.82,11.23,10.58,9.85,9.08,8.27,7.45,6.6,5.77,4.95,4.15,3.4,2.69,2.05,1.47,0.97,0.56,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.2,-0.35,-0.53,-0.75,-1,-1.27,-1.57,-1.9,-2.25,-2.61,-3,-3.39,-3.8,-4.21,-4.64,-5.07,-5.51,-5.95,-6.38,-6.82,-7.24,-7.67,-8.08,-8.48,-8.88,-9.25,-9.61,-9.96,-10.28,-10.58,-10.86,-11.11,-11.33,-11.53,-11.69,-11.83,-11.92,-11.98,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12\r\r\nPARAM_BODY_ANGLE_X=0,-0.002,-0.008,-0.018,-0.031,-0.048,-0.069,-0.09,-0.12,-0.15,-0.18,-0.21,-0.25,-0.29,-0.33,-0.38,-0.42,-0.47,-0.52,-0.57,-0.62,-0.67,-0.72,-0.78,-0.83,-0.88,-0.94,-0.99,-1.05,-1.1,-1.16,-1.21,-1.26,-1.32,-1.37,-1.42,-1.47,-1.51,-1.56,-1.61,-1.65,-1.69,-1.73,-1.77,-1.8,-1.83,-1.86,-1.89,-1.92,-1.94,-1.956,-1.972,-1.984,-1.993,-1.998,-2,-1.96,-1.85,-1.68,-1.46,-1.18,-0.88,-0.55,-0.19,0.18,0.56,0.95,1.34,1.71,2.09,2.43,2.76,3.06,3.32,3.55,3.74,3.88,3.97,4,3.98,3.91,3.8,3.65,3.48,3.27,3.04,2.79,2.52,2.24,1.95,1.65,1.35,1.04,0.73,0.43,0.13,-0.16,-0.44,-0.7,-0.94,-1.17,-1.37,-1.55,-1.71,-1.83,-1.92,-1.98,-2,-1.97,-1.88,-1.73,-1.55,-1.32,-1.07,-0.79,-0.49,-0.18,0.13,0.46,0.78,1.1,1.4,1.69,1.96,2.21,2.44,2.63,2.79,2.9,2.97,3,2.97,2.9,2.78,2.64,2.46,2.25,2.03,1.79,1.54,1.29,1.03,0.77,0.52,0.28,0.05,-0.17,-0.37,-0.55,-0.7,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.96,-0.92,-0.85,-0.78,-0.69,-0.59,-0.48,-0.36,-0.23,-0.09,0.05,0.19,0.34,0.48,0.63,0.77,0.91,1.05,1.18,1.31,1.43,1.54,1.64,1.73,1.81,1.88,1.93,1.97,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0.003,0.012,0.027,0.05,0.07,0.1,0.14,0.18,0.22,0.27,0.32,0.38,0.44,0.5,0.56,0.63,0.7,0.77,0.85,0.93,1,1.08,1.16,1.24,1.33,1.41,1.49,1.57,1.65,1.74,1.82,1.9,1.97,2.05,2.13,2.2,2.27,2.34,2.41,2.47,2.54,2.59,2.65,2.7,2.75,2.8,2.84,2.87,2.91,2.93,2.96,2.976,2.989,2.997,3,2.96,2.85,2.68,2.46,2.18,1.88,1.55,1.19,0.82,0.44,0.05,-0.34,-0.71,-1.09,-1.43,-1.76,-2.06,-2.32,-2.55,-2.74,-2.88,-2.97,-3,-2.98,-2.91,-2.8,-2.65,-2.48,-2.27,-2.04,-1.79,-1.52,-1.24,-0.95,-0.65,-0.35,-0.04,0.27,0.57,0.87,1.16,1.44,1.7,1.94,2.17,2.37,2.55,2.71,2.83,2.92,2.98,3,2.97,2.88,2.73,2.55,2.32,2.07,1.79,1.49,1.18,0.87,0.54,0.22,-0.1,-0.4,-0.69,-0.96,-1.21,-1.44,-1.63,-1.79,-1.9,-1.97,-2,-1.97,-1.9,-1.78,-1.64,-1.46,-1.25,-1.03,-0.79,-0.54,-0.29,-0.03,0.23,0.48,0.72,0.95,1.17,1.37,1.55,1.7,1.83,1.92,1.98,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.994,1.975,1.94,1.9,1.85,1.79,1.73,1.65,1.57,1.48,1.39,1.3,1.21,1.11,1.01,0.92,0.82,0.72,0.63,0.54,0.46,0.38,0.31,0.24,0.18,0.13,0.08,0.05,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_Y=0,-0.001,-0.004,-0.009,-0.016,-0.024,-0.034,-0.046,-0.059,-0.074,-0.09,-0.107,-0.126,-0.146,-0.17,-0.19,-0.21,-0.23,-0.26,-0.28,-0.31,-0.33,-0.36,-0.39,-0.41,-0.44,-0.47,-0.5,-0.52,-0.55,-0.58,-0.61,-0.63,-0.66,-0.68,-0.71,-0.73,-0.76,-0.78,-0.8,-0.82,-0.85,-0.865,-0.883,-0.901,-0.917,-0.932,-0.946,-0.958,-0.969,-0.978,-0.986,-0.992,-0.996,-0.999,-1,-0.94,-0.75,-0.46,-0.09,0.36,0.86,1.42,2.01,2.64,3.27,3.92,4.56,5.19,5.81,6.39,6.93,7.43,7.87,8.26,8.57,8.8,8.95,9,8.92,8.71,8.36,7.9,7.35,6.7,5.97,5.18,4.33,3.44,2.51,1.57,0.6,-0.37,-1.35,-2.31,-3.25,-4.17,-5.05,-5.88,-6.65,-7.37,-8.02,-8.59,-9.08,-9.47,-9.76,-9.94,-10,-9.88,-9.53,-8.98,-8.28,-7.42,-6.46,-5.4,-4.27,-3.09,-1.89,-0.65,0.57,1.76,2.94,4.03,5.06,6.01,6.86,7.59,8.18,8.63,8.9,9,8.92,8.7,8.35,7.91,7.37,6.76,6.1,5.38,4.63,3.88,3.1,2.32,1.57,0.83,0.14,-0.51,-1.11,-1.65,-2.11,-2.48,-2.77,-2.94,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3.016,-3.06,-3.14,-3.24,-3.37,-3.52,-3.69,-3.87,-4.07,-4.29,-4.51,-4.75,-4.98,-5.23,-5.47,-5.71,-5.95,-6.19,-6.42,-6.64,-6.85,-7.05,-7.23,-7.4,-7.55,-7.68,-7.79,-7.88,-7.95,-7.99,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_ANGLE_X=0,-0.01,-0.04,-0.09,-0.16,-0.24,-0.34,-0.46,-0.59,-0.74,-0.9,-1.07,-1.26,-1.46,-1.66,-1.88,-2.11,-2.34,-2.58,-2.83,-3.09,-3.34,-3.61,-3.88,-4.15,-4.42,-4.69,-4.96,-5.24,-5.51,-5.78,-6.05,-6.32,-6.58,-6.84,-7.09,-7.33,-7.57,-7.81,-8.03,-8.25,-8.45,-8.65,-8.83,-9.01,-9.17,-9.32,-9.46,-9.58,-9.69,-9.78,-9.86,-9.92,-9.96,-9.99,-10,-9.94,-9.75,-9.46,-9.09,-8.64,-8.14,-7.58,-6.99,-6.36,-5.73,-5.08,-4.44,-3.81,-3.19,-2.61,-2.07,-1.57,-1.13,-0.74,-0.43,-0.2,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.32,0.54,0.82,1.12,1.45,1.81,2.18,2.56,2.95,3.34,3.71,4.09,4.43,4.76,5.06,5.32,5.55,5.74,5.88,5.97,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5.95,5.82,5.61,5.32,4.96,4.55,4.08,3.55,3,2.39,1.76,1.11,0.45,-0.23,-0.92,-1.59,-2.27,-2.93,-3.57,-4.19,-4.78,-5.33,-5.85,-6.33,-6.75,-7.11,-7.42,-7.67,-7.85,-7.96,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_ARM_R=0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.56,1.11,1.75,2.41,3.07,3.69,4.21,4.63,4.9,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0,0.08,0.29,0.63,1.04,1.5,2,2.5,2.96,3.38,3.71,3.92,4,3.95,3.81,3.59,3.3,2.98,2.61,2.24,1.86,1.49,1.14,0.82,0.54,0.31,0.14,0.04,0,0.06,0.22,0.47,0.78,1.13,1.5,1.87,2.22,2.53,2.78,2.94,3,2.94,2.78,2.53,2.22,1.87,1.5,1.13,0.78,0.47,0.22,0.06,0,0.06,0.22,0.47,0.78,1.13,1.5,1.87,2.22,2.53,2.78,2.94,3,2.97,2.89,2.77,2.61,2.43,2.23,2.01,1.79,1.55,1.32,1.09,0.87,0.66,0.46,0.28,0.13,0,-0.12,-0.23,-0.34,-0.45,-0.55,-0.64,-0.73,-0.82,-0.91,-0.99,-1.06,-1.13,-1.2,-1.27,-1.33,-1.39,-1.44,-1.5,-1.54,-1.59,-1.63,-1.67,-1.71,-1.74,-1.78,-1.8,-1.83,-1.86,-1.88,-1.898,-1.916,-1.932,-1.946,-1.958,-1.969,-1.978,-1.985,-1.991,-1.995,-1.998,-1.999,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.97,-1.91,-1.8,-1.68,-1.53,-1.37,-1.2,-1.02,-0.85,-0.68,-0.53,-0.38,-0.25,-0.15,-0.07,-0.02,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.74,-0.86,-0.99,-1.11,-1.22,-1.34,-1.45,-1.55,-1.65,-1.74,-1.81,-1.88,-1.93,-1.97,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_ARM_L=0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.56,1.11,1.75,2.41,3.07,3.69,4.21,4.63,4.9,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0,0.08,0.29,0.63,1.04,1.5,2,2.5,2.96,3.38,3.71,3.92,4,3.95,3.81,3.59,3.3,2.98,2.61,2.24,1.86,1.49,1.14,0.82,0.54,0.31,0.14,0.04,0,0.06,0.22,0.47,0.78,1.13,1.5,1.87,2.22,2.53,2.78,2.94,3,2.94,2.78,2.53,2.22,1.87,1.5,1.13,0.78,0.47,0.22,0.06,0,0.06,0.22,0.47,0.78,1.13,1.5,1.87,2.22,2.53,2.78,2.94,3,2.97,2.89,2.77,2.61,2.43,2.23,2.01,1.79,1.55,1.32,1.09,0.87,0.66,0.46,0.28,0.13,0,-0.12,-0.23,-0.34,-0.45,-0.55,-0.64,-0.73,-0.82,-0.91,-0.99,-1.06,-1.13,-1.2,-1.27,-1.33,-1.39,-1.44,-1.5,-1.54,-1.59,-1.63,-1.67,-1.71,-1.74,-1.78,-1.8,-1.83,-1.86,-1.88,-1.898,-1.916,-1.932,-1.946,-1.958,-1.969,-1.978,-1.985,-1.991,-1.995,-1.998,-1.999,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.97,-1.91,-1.8,-1.68,-1.53,-1.37,-1.2,-1.02,-0.85,-0.68,-0.53,-0.38,-0.25,-0.15,-0.07,-0.02,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.74,-0.86,-0.99,-1.11,-1.22,-1.34,-1.45,-1.55,-1.65,-1.74,-1.81,-1.88,-1.93,-1.97,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_SWEAT=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_FACE_COVER=0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_BROW_DEFORMED=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_EYE_BALL_X=-0.4,-0.4,-0.4,-0.4,-0.399,-0.398,-0.4,-0.396,-0.395,-0.394,-0.392,-0.391,-0.389,-0.387,-0.385,-0.383,-0.381,-0.378,-0.376,-0.373,-0.37,-0.368,-0.365,-0.362,-0.358,-0.355,-0.352,-0.348,-0.345,-0.341,-0.338,-0.334,-0.33,-0.326,-0.322,-0.318,-0.314,-0.309,-0.305,-0.301,-0.296,-0.292,-0.287,-0.283,-0.278,-0.273,-0.269,-0.264,-0.259,-0.254,-0.249,-0.245,-0.24,-0.235,-0.23,-0.225,-0.22,-0.215,-0.21,-0.205,-0.2,-0.195,-0.19,-0.185,-0.18,-0.175,-0.17,-0.165,-0.16,-0.155,-0.151,-0.146,-0.141,-0.136,-0.131,-0.127,-0.122,-0.117,-0.113,-0.108,-0.104,-0.099,-0.095,-0.091,-0.086,-0.082,-0.078,-0.074,-0.07,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.045,-0.042,-0.038,-0.035,-0.032,-0.03,-0.027,-0.024,-0.022,-0.019,-0.017,-0.015,-0.013,-0.011,-0.009,-0.008,-0.006,-0.005,-0.004,-0.003,-0,-0.001,-0.001,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_EYE_BALL_Y=0.25,0.25,0.25,0.25,0.25,0.249,0.25,0.248,0.247,0.246,0.25,0.244,0.243,0.242,0.241,0.239,0.238,0.236,0.235,0.233,0.231,0.23,0.228,0.226,0.224,0.222,0.22,0.218,0.216,0.213,0.211,0.209,0.206,0.204,0.201,0.199,0.196,0.193,0.191,0.188,0.185,0.182,0.18,0.177,0.174,0.171,0.168,0.165,0.162,0.159,0.156,0.153,0.15,0.147,0.144,0.141,0.137,0.134,0.131,0.128,0.125,0.122,0.119,0.116,0.113,0.109,0.106,0.103,0.1,0.097,0.094,0.091,0.088,0.085,0.082,0.079,0.076,0.073,0.07,0.068,0.065,0.062,0.059,0.057,0.054,0.051,0.049,0.046,0.044,0.041,0.039,0.037,0.034,0.032,0.03,0.028,0.026,0.024,0.022,0.02,0.019,0.017,0.015,0.014,0.012,0.011,0.009,0.008,0.007,0.006,0.005,0,0.003,0.002,0.002,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=0\r\r\nPARAM_ANGLE_Z=0,-0.09,-0.33,-0.71,-1.22,-1.82,-2.53,-3.31,-4.15,-5.03,-5.97,-6.91,-7.89,-8.87,-9.83,-10.77,-11.69,-12.56,-13.38,-14.15,-14.85,-15.46,-15.99,-16.41,-16.73,-16.93,-17,-17,-17,-17,-17,-16.91,-16.65,-16.23,-15.67,-14.99,-14.19,-13.28,-12.28,-11.23,-10.08,-8.9,-7.68,-6.41,-5.13,-3.82,-2.51,-1.22,0.05,1.31,2.52,3.7,4.82,5.86,6.85,7.75,8.55,9.27,9.87,10.35,10.7,10.92,11,11,11,11,11,11,11,11,11,10.94,10.79,10.53,10.19,9.77,9.29,8.75,8.17,7.55,6.9,6.26,5.58,4.92,4.27,3.63,3.02,2.45,1.93,1.45,1.03,0.67,0.39,0.18,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.27,-0.59,-1.01,-1.53,-2.14,-2.83,-3.57,-4.38,-5.22,-6.11,-7.01,-7.93,-8.85,-9.75,-10.65,-11.53,-12.35,-13.14,-13.88,-14.56,-15.16,-15.7,-16.16,-16.51,-16.78,-16.95,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.89,-16.56,-16.04,-15.34,-14.48,-13.48,-12.34,-11.11,-9.79,-8.41,-6.93,-5.45,-3.94,-2.43,-0.94,0.53,1.99,3.35,4.65,5.86,6.99,7.98,8.86,9.61,10.2,10.64,10.91,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11\r\r\nPARAM_BODY_ANGLE_X=0,-0.006,-0.025,-0.06,-0.1,-0.15,-0.21,-0.28,-0.35,-0.43,-0.52,-0.61,-0.7,-0.8,-0.9,-1,-1.1,-1.2,-1.3,-1.39,-1.48,-1.57,-1.65,-1.72,-1.79,-1.85,-1.9,-1.94,-1.97,-1.994,-2,-1.99,-1.96,-1.92,-1.85,-1.78,-1.69,-1.59,-1.48,-1.36,-1.23,-1.09,-0.95,-0.81,-0.66,-0.52,-0.37,-0.23,-0.09,0.05,0.18,0.31,0.43,0.54,0.64,0.73,0.81,0.88,0.93,0.97,0.99,1,0.998,0.992,0.983,0.971,0.956,0.937,0.92,0.89,0.87,0.84,0.81,0.78,0.75,0.72,0.68,0.65,0.61,0.58,0.54,0.5,0.47,0.43,0.4,0.36,0.33,0.29,0.26,0.23,0.2,0.17,0.14,0.12,0.09,0.074,0.056,0.039,0.025,0.015,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.021,-0.05,-0.08,-0.12,-0.17,-0.23,-0.3,-0.36,-0.44,-0.52,-0.6,-0.69,-0.77,-0.86,-0.95,-1.05,-1.14,-1.23,-1.31,-1.4,-1.48,-1.56,-1.64,-1.7,-1.77,-1.83,-1.88,-1.92,-1.95,-1.98,-1.995,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.981,-1.93,-1.85,-1.74,-1.61,-1.46,-1.28,-1.1,-0.9,-0.69,-0.47,-0.24,0,0.24,0.49,0.74,1,1.26,1.5,1.71,1.91,2.08,2.24,2.38,2.5,2.61,2.7,2.78,2.84,2.89,2.93,2.96,2.985,2.996,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BODY_ANGLE_Y=0,0.05,0.19,0.42,0.7,1.04,1.41,1.8,2.2,2.59,2.96,3.3,3.58,3.81,3.95,4,3.96,3.86,3.7,3.49,3.25,2.96,2.66,2.33,2,1.67,1.34,1.04,0.75,0.51,0.3,0.14,0.04,0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,2.96,2.86,2.71,2.51,2.29,2.05,1.79,1.54,1.27,1.02,0.79,0.57,0.38,0.22,0.1,0.03,0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.19,0.41,0.7,1.02,1.39,1.76,2.14,2.51,2.86,3.18,3.46,3.69,3.86,3.96,4,3.97,3.87,3.72,3.53,3.3,3.04,2.77,2.48,2.19,1.89,1.6,1.32,1.05,0.8,0.57,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.29,0.49,0.71,0.95,1.21,1.46,1.73,1.98,2.21,2.43,2.62,2.78,2.9,2.97,3,2.97,2.9,2.78,2.62,2.44,2.22,1.99,1.75,1.5,1.25,1.01,0.78,0.56,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_Y=4,4.03,4.1,4.21,4.36,4.54,4.74,4.97,5.22,5.48,5.76,6.03,6.32,6.61,6.89,7.17,7.44,7.69,7.94,8.16,8.37,8.55,8.7,8.83,8.92,8.98,9,9,9,9,9,8.993,8.973,8.94,8.9,8.84,8.77,8.69,8.61,8.51,8.4,8.28,8.16,8.02,7.88,7.74,7.58,7.42,7.25,7.08,6.9,6.72,6.53,6.35,6.15,5.95,5.76,5.55,5.35,5.14,4.94,4.73,4.53,4.32,4.11,3.91,3.7,3.5,3.3,3.1,2.91,2.71,2.52,2.34,2.16,1.98,1.81,1.65,1.49,1.33,1.19,1.05,0.91,0.78,0.67,0.56,0.46,0.36,0.28,0.21,0.15,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.31,0.53,0.81,1.13,1.5,1.89,2.32,2.76,3.24,3.71,4.2,4.68,5.16,5.64,6.1,6.54,6.96,7.35,7.71,8.03,8.31,8.55,8.74,8.88,8.97,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_ANGLE_X=-10,-9.96,-9.86,-9.71,-9.5,-9.25,-8.96,-8.64,-8.29,-7.93,-7.54,-7.15,-6.75,-6.35,-5.95,-5.57,-5.19,-4.83,-4.49,-4.17,-3.89,-3.63,-3.42,-3.24,-3.11,-3.03,-3,-3,-3,-3,-3,-2.998,-2.991,-2.98,-2.966,-2.947,-2.92,-2.9,-2.87,-2.84,-2.8,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.47,-2.42,-2.36,-2.3,-2.24,-2.18,-2.12,-2.05,-1.98,-1.92,-1.85,-1.78,-1.71,-1.65,-1.58,-1.51,-1.44,-1.37,-1.3,-1.23,-1.17,-1.1,-1.03,-0.97,-0.9,-0.84,-0.78,-0.72,-0.66,-0.6,-0.55,-0.5,-0.44,-0.4,-0.35,-0.3,-0.26,-0.22,-0.19,-0.15,-0.12,-0.09,-0.07,-0.05,-0.032,-0.018,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.012,-0.05,-0.1,-0.18,-0.27,-0.38,-0.5,-0.63,-0.77,-0.92,-1.08,-1.24,-1.4,-1.56,-1.72,-1.88,-2.03,-2.18,-2.32,-2.45,-2.57,-2.68,-2.77,-2.85,-2.91,-2.96,-2.99,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_ARM_R=-7,-6.987,-6.95,-6.9,-6.82,-6.74,-6.65,-6.55,-6.45,-6.35,-6.26,-6.18,-6.1,-6.05,-6.01,-6,-6.009,-6.03,-6.07,-6.13,-6.19,-6.26,-6.34,-6.42,-6.5,-6.58,-6.66,-6.74,-6.81,-6.87,-6.93,-6.97,-6.99,-7,-6.991,-6.97,-6.93,-6.87,-6.81,-6.74,-6.67,-6.59,-6.51,-6.43,-6.35,-6.28,-6.21,-6.15,-6.1,-6.06,-6.03,-6.007,-6,-6.013,-6.05,-6.1,-6.16,-6.24,-6.32,-6.4,-6.49,-6.58,-6.66,-6.74,-6.81,-6.87,-6.93,-6.97,-6.99,-7,-6.987,-6.95,-6.9,-6.84,-6.76,-6.68,-6.6,-6.51,-6.42,-6.34,-6.26,-6.19,-6.13,-6.07,-6.03,-6.01,-6,-6.009,-6.03,-6.07,-6.13,-6.19,-6.26,-6.33,-6.41,-6.49,-6.57,-6.65,-6.72,-6.79,-6.85,-6.9,-6.94,-6.97,-6.993,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.993,-6.975,-6.94,-6.91,-6.86,-6.8,-6.74,-6.68,-6.61,-6.54,-6.47,-6.41,-6.34,-6.28,-6.22,-6.17,-6.12,-6.08,-6.04,-6.02,-6.005,-6,-6.009,-6.03,-6.07,-6.12,-6.18,-6.24,-6.31,-6.38,-6.45,-6.53,-6.6,-6.67,-6.74,-6.8,-6.86,-6.91,-6.94,-6.97,-6.993,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.987,-6.95,-6.9,-6.84,-6.76,-6.68,-6.6,-6.51,-6.42,-6.34,-6.26,-6.19,-6.13,-6.07,-6.03,-6.01,-6,-6.009,-6.03,-6.07,-6.13,-6.19,-6.26,-6.34,-6.42,-6.5,-6.58,-6.66,-6.74,-6.81,-6.87,-6.93,-6.97,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_ARM_L=-7,-6.97,-6.9,-6.79,-6.65,-6.48,-6.29,-6.1,-5.9,-5.71,-5.52,-5.35,-5.21,-5.1,-5.03,-5,-5.018,-5.07,-5.15,-5.25,-5.38,-5.52,-5.67,-5.83,-6,-6.17,-6.33,-6.48,-6.62,-6.75,-6.85,-6.93,-6.98,-7,-6.982,-6.93,-6.85,-6.75,-6.63,-6.49,-6.34,-6.18,-6.02,-5.86,-5.71,-5.56,-5.42,-5.3,-5.2,-5.11,-5.05,-5.01,-5,-5.03,-5.09,-5.2,-5.32,-5.47,-5.63,-5.8,-5.98,-6.15,-6.32,-6.47,-6.62,-6.75,-6.85,-6.93,-6.98,-7,-6.97,-6.91,-6.8,-6.68,-6.53,-6.37,-6.2,-6.02,-5.85,-5.68,-5.53,-5.38,-5.25,-5.15,-5.07,-5.02,-5,-5.018,-5.07,-5.15,-5.25,-5.37,-5.51,-5.66,-5.82,-5.98,-6.14,-6.29,-6.44,-6.58,-6.7,-6.8,-6.89,-6.95,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.987,-6.95,-6.89,-6.81,-6.72,-6.61,-6.48,-6.36,-6.22,-6.09,-5.95,-5.81,-5.68,-5.55,-5.44,-5.33,-5.24,-5.15,-5.09,-5.04,-5.01,-5,-5.017,-5.07,-5.14,-5.24,-5.35,-5.48,-5.62,-5.76,-5.91,-6.06,-6.2,-6.34,-6.48,-6.6,-6.71,-6.81,-6.89,-6.95,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.97,-6.91,-6.8,-6.68,-6.53,-6.37,-6.2,-6.02,-5.85,-5.68,-5.53,-5.38,-5.25,-5.15,-5.07,-5.02,-5,-5.018,-5.07,-5.15,-5.25,-5.38,-5.52,-5.67,-5.83,-6,-6.17,-6.33,-6.48,-6.62,-6.75,-6.85,-6.93,-6.98,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_SWEAT=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/nep_touch_belly_1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.66,8.75,7.45,5.96,4.42,2.97,1.74,0.8,0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.39,1.26,2.37,3.56,4.7,5.73,6.55,7.1,7.56,7.83,7.99,8.09,8.13,8.145,8.15,8.143,7.86,7.11,6.02,4.74,3.41,2.12,1.03,0.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.63,1,1,1,1,1,1,1,0.3,0.22,0.15,0.07,0,0.001,0.002,0.003,0.004,0.006,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.015,0.016,0.24,0.47,0.51,0.55,0.31,0.06,0.04,0.01,0.27,0.54,0.549,0.557,0.565,0.573,0.43,0.29,0.14,0,0.29,0.57,0.45,0.33,0.341,0.353,0.349,0.345,0.341,0.337,0.333,0.329,0.325,0.322,0.318,0.314,0.319,0.325,0.331,0.336,0.342,0.348,0.353,0.359,0.365,0.37,0.376,0.382,0.387,0.393,0.399,0.404,0.41,0.416,0.27,0.13,0.09,0.06,0.03,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_FACE_COVER=0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_DEFORMED=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.001,-0,-0,0.003,0.01,0.019,0.031,0.047,0.066,0.09,0.12,0.14,0.17,0.19,0.22,0.24,0.26,0.29,0.31,0.33,0.36,0.38,0.4,0.42,0.44,0.46,0.49,0.506,0.526,0.546,0.565,0.584,0.603,0.622,0.64,0.657,0.675,0.692,0.708,0.724,0.74,0.755,0.77,0.784,0.799,0.812,0.825,0.838,0.85,0.862,0.874,0.885,0.895,0.905,0.915,0.924,0.932,0.94,0.948,0.955,0.962,0.968,0.973,0.978,0.983,0.987,0.99,0.993,0.996,0.998,0.999,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.12,-0.25,-0.4,-0.56,-0.7,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_HAIR_FRONT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.007,-0.015,-0.023,-0.032,-0.041,-0.048,-0.054,-0.057,-0.058,-0.06,-0.058,-0.06,-0.06,-0.06,-0.057,-0.06,-0.056,-0.055,-0.05,-0.053,-0.053,-0.052,-0.051,-0.05,-0.049,-0.048,-0.047,-0.046,-0.044,-0.043,-0.042,-0.041,-0.039,-0.038,-0.037,-0.035,-0.034,-0.033,-0.031,-0.03,-0.029,-0.027,-0.026,-0.024,-0.023,-0.022,-0.021,-0.019,-0.018,-0.017,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.009,-0.008,-0.007,-0.006,-0.01,-0.004,-0.004,-0.003,-0,-0.002,-0,-0.001,-0,-0,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.06,-0.09,-0.13,-0.16,-0.19,-0.21,-0.225,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23\r\r\nPARAM_BROW_L_ANGLE=0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.87,1.78,2.83,3.91,4.92,5.78,6.44,6.85,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7.79,9.87,12.86,16.29,19.84,23.16,25.99,28.16,29.52,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.34,-1.25,-2.55,-4.04,-5.58,-7.03,-8.26,-9.2,-9.79,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.47,-8.1,-6.22,-4.07,-1.9,0.16,2,4.03,5.7,7.04,8.08,8.85,9.4,9.76,9.94,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.25,0.92,1.9,3.04,4.24,5.4,6.42,7.27,7.89,8.26,8.52,8.76,8.96,9.15,9.31,9.45,9.57,9.67,9.75,9.82,9.87,9.92,9.95,9.97,9.986,9.995,9.999,10,10,10,10,10,10,10,10,10,9.8,9.38,8.85,8.3,7.8,7.38,7.1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_Y=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,28.49,24.52,18.78,12.23,5.43,-0.92,-6.34,-10.47,-13.08,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13.48,-12.13,-10.18,-7.94,-5.62,-3.46,-1.61,-0.2,0.69,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,4.61,8.39,12.71,17.2,21.38,24.95,27.68,29.39,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_ARM_R=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.2,1.4,0.6,-0.2,-1,-1.8,-2.6,-3.4,-4.2,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.7,-4.4,-4.1,-3.8,-3.5,-3.2,-2.9,-2.6,-2.3,-2,-2.19,-2.38,-2.56,-2.75,-2.94,-3.13,-3.31,-3.5,-3.69,-3.88,-4.06,-4.25,-4.44,-4.63,-4.81,-5,-5.33,-5.67,-6,-6.33,-6.67,-7,-7.33,-7.67,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_ARM_L=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.3,3.6,2.9,2.2,1.5,0.8,0.1,-0.6,-1.3,-2,-2,-2,-2,-2,-2,-2,-1.75,-1.5,-1.25,-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1,0.68,0.36,0.04,-0.29,-0.61,-0.93,-1.25,-1.57,-1.89,-2.21,-2.54,-2.86,-3.18,-3.5,-3.82,-4.14,-4.57,-5,-5.43,-5.86,-6.29,-6.71,-7.14,-7.57,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_MOUTH_FORM=0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.12,0.2,0.32,0.46,0.6,0.73,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.008,0.017,0.028,0.041,0.054,0.069,0.082,0.096,0.109,0.124,0.139,0.154,0.168,0.182,0.196,0.21,0.223,0.236,0.249,0.261,0.273,0.285,0.297,0.308,0.32,0.33,0.341,0.352,0.362,0.371,0.381,0.39,0.399,0.408,0.417,0.425,0.433,0.441,0.449,0.456,0.463,0.47,0.476,0.483,0.489,0.495,0.5,0.506,0.511,0.516,0.521,0.525,0.529,0.534,0.537,0.541,0.544,0.548,0.55,0.553,0.556,0.558,0.56,0.562,0.564,0.565,0.566,0.568,0.568,0.569,0.57,0.57,0.57\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06\r\r\nPARAM_SWEAT=1\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.466,0.448,0.42,0.39,0.36,0.33,0.3,0.28,0.259,0.248,0.239,0.231,0.222,0.214,0.206,0.198,0.19,0.183,0.176,0.168,0.161,0.155,0.148,0.142,0.135,0.129,0.123,0.117,0.112,0.106,0.101,0.096,0.091,0.086,0.081,0.077,0.073,0.068,0.064,0.06,0.056,0.053,0.049,0.046,0.043,0.04,0.037,0.034,0.031,0.028,0.026,0.024,0.021,0.019,0.017,0.015,0.014,0.012,0.011,0.009,0.008,0.007,0.006,0.005,0.004,0.003,0,0.002,0,0.001,0,0,0,0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/nep_touch_belly_2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.66,8.75,7.45,5.96,4.42,2.97,1.74,0.8,0.21,0,0.66,2.07,3.84,5.67,7.35,8.73,9.66,10,9.999,9.995,9.99,9.982,9.972,9.96,9.945,9.929,9.911,9.892,9.87,9.85,9.82,9.8,9.77,9.74,9.71,9.68,9.64,9.61,9.57,9.54,9.5,9.46,9.42,9.38,9.34,9.3,9.25,9.21,9.17,9.12,9.08,9.03,8.99,8.94,8.9,8.85,8.81,8.76,8.71,8.67,8.62,8.58,8.53,8.49,8.45,8.4,8.36,8.32,8.27,8.23,8.19,8.15,8.12,8.08,8.04,8.01,7.97,7.94,7.91,7.88,7.85,7.82,7.79,7.77,7.74,7.72,7.702,7.683,7.666,7.651,7.638,7.626,7.617,7.61,7.604,7.601,7.6,7.6,7.6,7.6,7.6,7.6,7.6,7.6\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.15,0.31,0.24,0.16,0.171,0.178,0.184,0.191,0.197,0.204,0.55,0.9,0.86,0.82,0.52,0.22,0.58,0.94,0.76,0.59,0.56,0.53,0.62,0.71,0.8,0.89,0.53,0.16,0.16,0.16,0.52,0.87,0.83,0.8,0.76,0.72,0.69,0.65,0.657,0.663,0.669,0.675,0.68,0.686,0.692,0.698,0.704,0.71,0.716,0.722,0.51,0.29,0.52,0.75,0.69,0.64,0.4,0.16,0.44,0.71,0.718,0.722,0.6,0.47,0.65,0.82,0.8,0.77,0.74,0.71,0.8,0.89,0.66,0.44,0.3,0.16,0.58,1,1,1,1,0.96,0.86,0.76,0.66,0.56,0.52,0.48,0.6,0.73,0.733,0.736,0.74,0.744,0.747,0.751,0.754,0.758,0.761,0.765,0.768,0.772,0.775,0.779,0.782,0.786,0.789,0.793,0.796,0.8,0.63,0.45,0.61,0.76,0.773,0.784,0.796,0.808,0.53,0.26,0.39,0.52,0.65,0.78,0.74,0.7,0.66,0.63,0.47,0.31,0.16,0,0,0,0,0,0,0,0\r\r\nPARAM_FACE_COVER=0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_DEFORMED=0\r\r\nPARAM_BROW_L_Y=-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.95,-0.85,-0.72,-0.58,-0.46,-0.35,-0.29,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.45,-0.81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_ANGLE=0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,1.72,2,1.28,0.14,-0.93,-1.7,-2,-1.28,-0.14,0.93,1.7,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.26,-0.83,-1.54,-2.27,-2.94,-3.49,-3.86,-4,-3.72,-2.99,-1.92,-0.65,0.65,1.92,2.99,3.72,4,3.48,2.34,0.93,-0.54,-1.88,-2.99,-3.72,-4,-3.72,-2.99,-1.92,-0.65,0.65,1.92,2.99,3.72,4,3.48,2.34,0.93,-0.54,-1.88,-2.99,-3.72,-4,-3.41,-1.98,-0.23,1.47,2.84,3.71,4,3.48,2.34,0.93,-0.54,-1.88,-2.99,-3.72,-4,-3.41,-1.98,-0.23,1.47,2.84,3.71,4,3.48,2.34,0.93,-0.54,-1.88,-2.99,-3.72,-4,-3.71,-2.99,-2.12,-1.27,-0.58,-0.15,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.46,-0.98,-1.62,-2.36,-3.16,-4.02,-4.88,-5.76,-6.59,-7.37,-8.1,-8.73,-9.26,-9.66,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.89,-9.57,-9.06,-8.42,-7.66,-6.83,-5.95,-5.05,-4.17,-3.34,-2.58,-1.94,-1.43,-1.11,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BODY_ANGLE_Z=1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,1.45,0.38,-1.39,-2.6,-3,-1.93,-0.21,1.39,2.55,3,1.93,0.21,-1.39,-2.55,-3,-2.8,-2.38,-1.85,-1.3,-0.8,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.39,1.24,2.3,3.4,4.41,5.24,5.79,6,5.59,4.48,2.88,0.98,-0.98,-2.88,-4.48,-5.59,-6,-5.21,-3.51,-1.39,0.81,2.82,4.48,5.59,6,5.59,4.48,2.88,0.98,-0.98,-2.88,-4.48,-5.59,-6,-5.21,-3.51,-1.39,0.81,2.82,4.48,5.59,6,5.12,2.97,0.35,-2.2,-4.26,-5.56,-6,-5.21,-3.51,-1.39,0.81,2.82,4.48,5.59,6,5.12,2.97,0.35,-2.2,-4.26,-5.56,-6,-5.21,-3.51,-1.39,0.81,2.82,4.48,5.59,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BROW_R_Y=-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.89,-0.8,-0.7,-0.61,-0.54,-0.49,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.61,-0.86,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ANGLE_Y=-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-27.01,-22.73,-12.33,1.49,15.32,25.71,30,28.87,25.85,21.3,15.58,9.22,2.45,-4.23,-10.51,-16.13,-20.92,-24.62,-27.06,-28.13,-28.52,-28.85,-29.14,-29.36,-29.55,-29.7,-29.81,-29.89,-29.95,-29.98,-30,-30,-30,-30,-30,-28.8,-25.59,-20.63,-14.39,-7.49,0,7.49,14.39,20.63,25.59,28.8,30,28.93,26.23,22.19,16.97,10.76,3.49,-4.65,-13.87,-23.52,-24.81,-24.56,-24.02,-23.35,-22.65,-22.01,-21.48,-21.13,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_ANGLE_X=2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,2.88,3.47,4.05,4.63,5.21,5.79,6.37,3.26,0.16,-2.95,-6.06,-9.17,-5.34,-1.5,2.33,0.53,-1.26,-3.06,-4.86,-6.66,-6.05,-5.45,-4.84,-4.24,-3.63,-3.03,-2.42,-1.82,-1.21,-0.61,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.22,-0.44,-0.67,-0.89,-1.11,-1.33,-1.56,-1.78,-2,-3.26,-4.51,-5.77,-7.02,-8.28,-9.53,-10.79,-12.04,-8.98,-5.93,-2.87,0.18,3.24,0.48,-2.29,-5.05,-7.82,-10.58,-13.35,-16.11,-18.88,-13.18,-7.48,-1.78,3.92,9.61,5.55,1.48,-2.58,-6.65,-10.72,-14.78,-10.52,-6.26,-2,2.26,6.52,4.06,1.6,-0.86,-3.31,-5.77,-8.23,-4.75,-1.26,2.22,5.7,4.42,3.15,1.87,0.59,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69\r\r\nPARAM_ARM_R=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.57,-9.14,-8.71,-8.29,-7.86,-7.43,-7,-6.57,-6.14,-5.71,-5.29,-4.86,-4.43,-4,-4.32,-4.63,-4.95,-5.26,-5.58,-5.89,-6.21,-6.53,-6.84,-7.16,-7.47,-7.79,-8.11,-8.42,-8.74,-9.05,-9.37,-9.68,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.77,-9.54,-9.31,-9.08,-8.85,-8.62,-8.38,-8.15,-7.92,-7.69,-7.46,-7.23,-7,-7.16,-7.32,-7.47,-7.63,-7.79,-7.95,-8.11,-8.26,-8.42,-8.58,-8.74,-8.89,-9.05,-9.21,-9.37,-9.53,-9.68,-9.84,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_L=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.64,-9.29,-8.93,-8.57,-8.21,-7.86,-7.5,-7.14,-6.79,-6.43,-6.07,-5.71,-5.36,-5,-5.26,-5.53,-5.79,-6.05,-6.32,-6.58,-6.84,-7.11,-7.37,-7.63,-7.89,-8.16,-8.42,-8.68,-8.95,-9.21,-9.47,-9.74,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.77,-9.54,-9.31,-9.08,-8.85,-8.62,-8.38,-8.15,-7.92,-7.69,-7.46,-7.23,-7,-7.16,-7.32,-7.47,-7.63,-7.79,-7.95,-8.11,-8.26,-8.42,-8.58,-8.74,-8.89,-9.05,-9.21,-9.37,-9.53,-9.68,-9.84,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_SWEAT=0\r\r\nPARAM_BROW_R_FORM=-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/nep_touch_boobs_1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_SHOULDER_X=6.4,6.36,6.24,6.05,5.79,5.48,5.13,4.74,4.32,3.88,3.42,2.98,2.52,2.08,1.66,1.27,0.92,0.61,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.49,1,1.64,2.34,3.08,3.83,4.56,5.23,5.85,6.35,6.75,7.01,7.1,7.099,7.097,7.092,7.084,7.072,7.057,7.04,7.01,6.98,6.94,6.9,6.84,6.78,6.71,6.63,6.54,6.44,6.33,6.2,6.07,5.92,5.76,5.58,5.39,5.1,4.69,4.19,3.63,3.04,2.44,1.87,1.35,0.89,0.51,0.23,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.22,0.45,0.4,0.35,0.3,0.25,0.2,0.15,0.38,0.61,0.58,0.54,0.51,0.47,0.481,0.492,0.502,0.512,0.523,0.533,0.46,0.38,0.19,0,0.46,0.93,0.74,0.55,0.58,0.61,0.64,0.67,0.7,0.73,0.62,0.51,0.4,0.29,0.56,0.84,0.76,0.67,0.65,0.63,0.61,0.59,0.57,0.55,0.53,0.51,0.48,0.46,0.24,0.01,0.35,0.69,0.53,0.37,0.55,0.73,0.733,0.737,0.64,0.53,0.43,0.33,0.62,0.91,0.84,0.76,0.767,0.773,0.778,0.784,0.68,0.58,0.47,0.37,0.378,0.388,0.398,0.408,0.34,0.27,0.2,0.14,0.07,0,0.01,0.02,0.029,0.039,0.34,0.64,0.58,0.52,0.27,0.02,0.47,0.91,0.82,0.73,0.65,0.56,0.6,0.64,0.68,0.72,0.69,0.66,0.63,0.6,0.45,0.3,0.6,0.91,0.77,0.63,0.69,0.75,0.67,0.6,0.36,0.12,0.44,0.77,0.75,0.732,0.714,0.695,0.677,0.659,0.58,0.51,0.514,0.518,0.26,0,0.43,0.86,0.82,0.77,0.38,0,0.29,0.58,0.51,0.43,0.53,0.64,0.51,0.38,0.19,0,0.38,0.77,0.759,0.75,0.741,0.732,0.723,0.714,0.66,0.61,0.46,0.31,0.15,0,0,0,0,0,0,0\r\r\nPARAM_FACE_COVER=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_FEAR=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.988,0.985,0.983,0.979,0.976,0.973,0.969,0.965,0.961,0.956,0.952,0.947,0.943,0.938,0.933,0.927,0.922,0.917,0.911,0.906,0.9,0.894,0.889,0.883,0.877,0.871,0.865,0.859,0.853,0.847,0.841,0.835,0.829,0.823,0.817,0.811,0.806,0.8,0.794,0.789,0.783,0.778,0.773,0.767,0.762,0.757,0.753,0.748,0.744,0.739,0.735,0.731,0.727,0.724,0.721,0.717,0.715,0.712,0.71,0.707,0.705,0.704,0.702,0.701,0.701,0.7,0.7,0.71,0.74,0.78,0.82,0.87,0.91,0.95,0.98,0.994,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.987,0.981,0.974,0.967,0.959,0.951,0.943,0.935,0.928,0.921,0.915,0.91,0.906,0.903,0.901,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.901,0.905,0.91,0.917,0.926,0.935,0.944,0.954,0.963,0.972,0.98,0.987,0.992,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_DEFORMED=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.16,-0.25,-0.31,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.342,-0.344,-0.347,-0.351,-0.355,-0.36,-0.367,-0.374,-0.382,-0.392,-0.402,-0.414,-0.427,-0.441,-0.456,-0.473,-0.49,-0.51,-0.531,-0.551,-0.57,-0.589,-0.608,-0.626,-0.643,-0.66,-0.677,-0.693,-0.709,-0.723,-0.737,-0.751,-0.764,-0.776,-0.787,-0.797,-0.807,-0.816,-0.824,-0.832,-0.838,-0.844,-0.849,-0.853,-0.856,-0.858,-0.86,-0.86,-0.859,-0.856,-0.851,-0.845,-0.837,-0.827,-0.816,-0.803,-0.79,-0.775,-0.76,-0.743,-0.726,-0.708,-0.689,-0.67,-0.651,-0.632,-0.612,-0.593,-0.573,-0.554,-0.535,-0.516,-0.498,-0.48,-0.463,-0.446,-0.431,-0.416,-0.403,-0.391,-0.379,-0.369,-0.361,-0.353,-0.348,-0.343,-0.341,-0.34\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.988,0.985,0.983,0.979,0.976,0.973,0.969,0.965,0.961,0.956,0.952,0.947,0.943,0.938,0.933,0.927,0.922,0.917,0.911,0.906,0.9,0.894,0.889,0.883,0.877,0.871,0.865,0.859,0.853,0.847,0.841,0.835,0.829,0.823,0.817,0.811,0.806,0.8,0.794,0.789,0.783,0.778,0.773,0.767,0.762,0.757,0.753,0.748,0.744,0.739,0.735,0.731,0.727,0.724,0.721,0.717,0.715,0.712,0.71,0.707,0.705,0.704,0.702,0.701,0.701,0.7,0.7,0.71,0.74,0.78,0.82,0.87,0.91,0.95,0.98,0.994,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.994,0.989,0.984,0.978,0.971,0.964,0.957,0.949,0.942,0.935,0.928,0.922,0.916,0.911,0.906,0.903,0.9,0.898,0.896,0.894,0.893,0.892,0.891,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.891,0.895,0.901,0.909,0.918,0.928,0.938,0.949,0.959,0.969,0.977,0.985,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,0.999,0.998,0.996,0.995,0.993,0.99,0.987,0.984,0.981,0.977,0.972,0.968,0.962,0.957,0.951,0.944,0.937,0.929,0.921,0.913,0.903,0.894,0.883,0.873,0.861,0.849,0.837,0.823,0.81,0.795,0.78,0.762,0.745,0.728,0.712,0.696,0.681,0.667,0.654,0.641,0.63,0.62,0.611,0.604,0.598,0.594,0.591,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.007,0.016,0.027,0.039,0.054,0.071,0.088,0.105,0.122,0.139,0.156,0.171,0.183,0.194,0.203,0.208,0.21,0.209,0.205,0.199,0.191,0.182,0.17,0.157,0.142,0.126,0.109,0.091,0.072,0.052,0.03,0.011,-0.01,-0.03,-0.05,-0.072,-0.09,-0.112,-0.131,-0.149,-0.166,-0.182,-0.197,-0.21,-0.222,-0.231,-0.239,-0.245,-0.249,-0.25,-0.242,-0.22,-0.19,-0.15,-0.1,-0.05,0,0.06,0.11,0.16,0.21,0.26,0.3,0.33,0.36,0.374,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38\r\r\nPARAM_BROW_L_ANGLE=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.91,-0.78,-0.65,-0.56,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.519,-0.518,-0.517,-0.516,-0.514,-0.512,-0.51,-0.506,-0.499,-0.491,-0.48,-0.467,-0.452,-0.436,-0.418,-0.399,-0.38,-0.36,-0.34,-0.32,-0.29,-0.27,-0.25,-0.23,-0.21,-0.188,-0.169,-0.15,-0.133,-0.117,-0.102,-0.089,-0.078,-0.068,-0.06,-0.055,-0.051,-0.05,-0.053,-0.061,-0.075,-0.092,-0.11,-0.14,-0.17,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.46,-0.48,-0.495,-0.505,-0.51,-0.512,-0.514,-0.515,-0.517,-0.518,-0.519,-0.519,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_EYE_DEFORMED_04=0\r\r\nPARAM_EYE_DEFORMED_03=0\r\r\nPARAM_EYE_DEFORMED_02=0\r\r\nPARAM_EYE_DEFORMED_01=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.31,-0.68,-1.18,-1.78,-2.48,-3.27,-4.11,-5.03,-5.98,-6.95,-7.94,-8.94,-9.9,-10.86,-11.78,-12.62,-13.41,-14.11,-14.71,-15.21,-15.58,-15.81,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.89,-15.54,-14.6,-13.16,-11.38,-9.31,-7.06,-4.67,-2.27,0.17,2.48,4.67,6.69,8.47,9.93,11.04,11.75,12,12,12,12,12,12,12,11.97,11.89,11.75,11.56,11.32,11.05,10.73,10.38,9.99,9.58,9.13,8.66,8.17,7.67,7.15,6.63,6.1,5.55,5.02,4.47,3.95,3.43,2.92,2.43,1.96,1.51,1.09,0.69,0.33,0,-0.32,-0.63,-0.93,-1.22,-1.5,-1.78,-2.04,-2.31,-2.56,-2.8,-3.04,-3.27,-3.49,-3.71,-3.93,-4.14,-4.34,-4.54,-4.74,-4.93,-5.12,-5.31,-5.49,-5.67,-5.84,-6.02,-6.19,-6.36,-6.53,-6.69,-6.86,-7.02,-7.18,-7.35,-7.51,-7.67,-7.84,-8,-8.16,-8.32,-8.46,-8.6,-8.73,-8.85,-8.97,-9.07,-9.17,-9.26,-9.35,-9.43,-9.5,-9.57,-9.63,-9.68,-9.73,-9.78,-9.82,-9.85,-9.88,-9.91,-9.93,-9.953,-9.968,-9.98,-9.989,-9.995,-9.999,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.75,-9.04,-7.93,-6.52,-4.88,-3.06,-1.2,0.7,2.55,4.32,5.9,7.3,8.45,9.29,9.82,10,10,10,10,10,10,10,10,10,10,10,9.987,9.95,9.88,9.79,9.67,9.53,9.36,9.18,8.97,8.73,8.48,8.2,7.91,7.6,7.26,6.92,6.55,6.17,5.77,5.35,4.92,4.48,4.03,3.56,3.08,2.59,2.09,1.58,1.06,0.53,0,-0.6,-1.16,-1.72,-2.24,-2.74,-3.23,-3.69,-4.14,-4.56,-4.96,-5.35,-5.72,-6.07,-6.4,-6.71,-7.01,-7.3,-7.56,-7.82,-8.05,-8.27,-8.48,-8.67,-8.85,-9.01,-9.17,-9.3,-9.43,-9.54,-9.64,-9.72,-9.8,-9.86,-9.91,-9.95,-9.98,-9.995,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Y=-10,-9.93,-9.74,-9.45,-9.05,-8.57,-8.01,-7.41,-6.75,-6.06,-5.35,-4.65,-3.94,-3.25,-2.59,-1.99,-1.43,-0.95,-0.55,-0.26,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.27,-1.88,-2.59,-3.36,-4.17,-5,-5.83,-6.64,-7.41,-8.12,-8.73,-9.26,-9.66,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.6,-8.53,-6.92,-4.9,-2.67,-0.29,2.04,4.22,6.14,7.76,8.98,9.74,10,9.8,9.26,8.44,7.41,6.23,4.94,3.56,2.19,0.79,-0.54,-1.8,-2.95,-3.97,-4.81,-5.45,-5.86,-6,-5.96,-5.85,-5.67,-5.43,-5.15,-4.82,-4.45,-4.08,-3.67,-3.26,-2.84,-2.44,-2.04,-1.66,-1.31,-0.99,-0.71,-0.46,-0.27,-0.12,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.09,-0.23,-0.36,-0.45,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.492,-0.494,-0.497,-0.501,-0.506,-0.511,-0.517,-0.523,-0.531,-0.538,-0.546,-0.555,-0.564,-0.573,-0.583,-0.593,-0.603,-0.614,-0.624,-0.635,-0.646,-0.657,-0.668,-0.679,-0.69,-0.701,-0.712,-0.723,-0.733,-0.744,-0.754,-0.764,-0.773,-0.783,-0.791,-0.8,-0.808,-0.816,-0.823,-0.829,-0.836,-0.841,-0.846,-0.85,-0.853,-0.856,-0.858,-0.86,-0.86,-0.859,-0.857,-0.854,-0.849,-0.843,-0.836,-0.829,-0.82,-0.81,-0.8,-0.789,-0.777,-0.764,-0.752,-0.739,-0.725,-0.712,-0.698,-0.684,-0.67,-0.656,-0.642,-0.629,-0.615,-0.602,-0.59,-0.577,-0.566,-0.555,-0.544,-0.535,-0.526,-0.518,-0.511,-0.505,-0.5,-0.495,-0.492,-0.491,-0.49\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.27,-1.03,-2.23,-3.8,-5.64,-7.76,-10.07,-12.51,-15,-17.49,-19.93,-22.24,-24.36,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.02,-26.4,-22.45,-17.51,-12.03,-6.22,-0.51,4.83,9.55,13.52,16.5,18.36,19,18.52,17.24,15.29,12.85,10.04,6.98,3.71,0.45,-2.88,-6.03,-9.02,-11.76,-14.19,-16.17,-17.69,-18.66,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19\r\r\nPARAM_BREATH=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_ANGLE_X=0,-0.07,-0.28,-0.61,-1.04,-1.58,-2.19,-2.85,-3.57,-4.33,-5.11,-5.89,-6.67,-7.43,-8.15,-8.81,-9.42,-9.96,-10.39,-10.72,-10.93,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.86,-10.47,-9.86,-9.08,-8.18,-7.18,-6.16,-5.11,-4.1,-3.12,-2.25,-1.48,-0.85,-0.39,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.27,-1.03,-2.23,-3.8,-5.64,-7.76,-10.07,-12.51,-15,-17.49,-19.93,-22.24,-24.36,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.84,-29.37,-28.65,-27.72,-26.62,-25.42,-24.15,-22.85,-21.58,-20.38,-19.28,-18.35,-17.63,-17.16,-17,-17.013,-17.05,-17.1,-17.18,-17.26,-17.35,-17.45,-17.55,-17.65,-17.74,-17.82,-17.9,-17.95,-17.99,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_ARM_R=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.87,-9.52,-8.96,-8.25,-7.4,-6.47,-5.5,-4.5,-3.53,-2.6,-1.75,-1.04,-0.48,-0.13,0,-0.07,-0.25,-0.55,-0.95,-1.42,-1.96,-2.58,-3.21,-3.88,-4.57,-5.26,-5.93,-6.6,-7.23,-7.82,-8.35,-8.82,-9.23,-9.56,-9.8,-9.95,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_L=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.87,-9.52,-8.96,-8.25,-7.4,-6.47,-5.5,-4.5,-3.53,-2.6,-1.75,-1.04,-0.48,-0.13,0,-0.07,-0.25,-0.55,-0.95,-1.42,-1.96,-2.58,-3.21,-3.88,-4.57,-5.26,-5.93,-6.6,-7.23,-7.82,-8.35,-8.82,-9.23,-9.56,-9.8,-9.95,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.96,-0.87,-0.76,-0.64,-0.55,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.511,-0.51,-0.51,-0.512,-0.51,-0.51,-0.513,-0.51,-0.514,-0.515,-0.52,-0.516,-0.52,-0.518,-0.518,-0.52,-0.52,-0.521,-0.521,-0.522,-0.52,-0.524,-0.525,-0.526,-0.526,-0.527,-0.528,-0.529,-0.53,-0.531,-0.532,-0.533,-0.534,-0.535,-0.536,-0.537,-0.538,-0.539,-0.54,-0.54,-0.542,-0.543,-0.544,-0.545,-0.546,-0.547,-0.548,-0.549,-0.55,-0.551,-0.552,-0.553,-0.554,-0.554,-0.555,-0.556,-0.557,-0.56,-0.559,-0.559,-0.56,-0.561,-0.56,-0.562,-0.563,-0.56,-0.564,-0.56,-0.566,-0.566,-0.57,-0.567,-0.57,-0.57,-0.568,-0.57,-0.57,-0.569,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.91,-0.78,-0.65,-0.56,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.52,-0.52,-0.52,-0.521,-0.52,-0.519,-0.518,-0.517,-0.516,-0.514,-0.512,-0.51,-0.506,-0.5,-0.491,-0.481,-0.468,-0.454,-0.438,-0.422,-0.404,-0.385,-0.365,-0.345,-0.324,-0.3,-0.28,-0.26,-0.241,-0.222,-0.202,-0.183,-0.166,-0.149,-0.134,-0.12,-0.107,-0.096,-0.087,-0.08,-0.074,-0.071,-0.07,-0.073,-0.081,-0.093,-0.11,-0.13,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.33,-0.36,-0.39,-0.42,-0.44,-0.46,-0.481,-0.495,-0.505,-0.51,-0.512,-0.514,-0.515,-0.517,-0.518,-0.519,-0.519,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_SWEAT=0\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_TERE=0\r\r\nPARAM_EYE_BALL_GLITTER=0\r\r\nPARAM_STRING=0\r\u0000"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/refuse.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\nPARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.78,-14.21,-13.45,-12.55,-11.62,-10.71,-9.84,-9.11,-8.52,-8.14,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\nPARAM_BODY_ANGLE_X=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.66,-6.9,-6,-5.05,-4.39,-3.89,-3.53,-3.28,-3.12,-3.03,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.22,-1.99,-1.75,-1.5,-1.25,-1.01,-0.78,-0.56,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0\nPARAM_BODY_ANGLE_Z=5\nPARAM_BREATH=0\nPARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13.97,-13.89,-13.78,-13.65,-13.52,-13.39,-13.26,-13.16,-13.07,-13.02,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.83,-12.63,-12.37,-12.06,-11.71,-11.32,-10.92,-10.5,-10.08,-9.68,-9.29,-8.94,-8.63,-8.37,-8.17,-8.04,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\nPARAM_BROW_R_Y=0\nPARAM_ANGLE_X=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-13.11,-8.34,-2.17,4.36,10.38,15.36,19,22.21,23.04,23.06,23,23,23,23,23,23,23,22.87,22.48,21.88,21.1,20.18,19.12,17.96,16.75,15.5,14.25,13.04,11.88,10.82,9.9,9.12,8.52,8.13,8,8,8,8,8,8,8,8,8,8,8\nPARAM_BROW_R_X=0\nPARAM_MOUTH_OPEN_Y=0\nPARAM_MOUTH_FORM=-1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BUST_Y=0\nPARAM_EYE_FORM=-1\nPARAM_EYE_L_SMILE=0\nPARAM_BROW_L_FORM=-0.5\nPARAM_EYE_BALL_FORM=0\nPARAM_BROW_L_X=0\nPARAM_BROW_L_Y=0\nPARAM_BROW_R_ANGLE=-0.5\nPARAM_EYE_R_SMILE=0\nPARAM_BROW_R_FORM=-0.5\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0\nPARAM_HAIR_BACK=0\nPARAM_HAIR_FRONT=0\nPARAM_ARM_L=-5\nPARAM_EYE_BALL_X=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.447,0.49,0.55,0.62,0.69,0.76,0.82,0.88,0.92,0.95,0.96,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.92,0.87,0.81,0.74,0.66,0.57,0.48,0.38,0.29,0.2,0.11,0.03,-0.04,-0.1,-0.15,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19\nPARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.543,0.547,0.551,0.557,0.563,0.57,0.578,0.585,0.592,0.6,0.607,0.613,0.619,0.623,0.627,0.629,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\nPARAM_ARM_R=-5"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/shake.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0\nPARAM_ANGLE_Z=18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.65,16.66,15.1,13.06,10.66,7.91,4.91,1.74,-1.5,-4.74,-7.91,-10.91,-13.66,-16.06,-18.1,-19.66,-20.65,-21,-20.29,-18.46,-15.78,-12.46,-8.78,-4.93,-1.04,2.75,6.28,9.47,12.11,14.19,15.53,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\nPARAM_BODY_ANGLE_X=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.991,2.97,2.93,2.87,2.81,2.74,2.66,2.58,2.5,2.42,2.34,2.26,2.19,2.13,2.07,2.03,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.93,-1.75,-1.48,-1.16,-0.84,-0.52,-0.25,-0.07,0,-0.13,-0.41,-0.77,-1.13,-1.47,-1.75,-1.93,-2,-1.85,-1.48,-1,-0.52,-0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Z=-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.91,-6.66,-6.26,-5.73,-5.12,-4.41,-3.64,-2.83,-2,-1.17,-0.36,0.41,1.12,1.73,2.26,2.66,2.91,3,2.92,2.73,2.44,2.08,1.68,1.26,0.84,0.43,0.05,-0.29,-0.58,-0.8,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_ARM_R=-10\nPARAM_BREATH=0\nPARAM_ANGLE_Y=-8\nPARAM_BROW_R_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\nPARAM_ANGLE_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.87,9.52,8.96,8.23,7.37,6.38,5.3,4.16,3,1.84,0.7,-0.38,-1.37,-2.23,-2.96,-3.52,-3.87,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\nPARAM_BROW_R_X=0\nPARAM_MOUTH_OPEN_Y=0\nPARAM_MOUTH_FORM=1\nPARAM_EYE_L_OPEN=0\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.42,0.59,0.65,0.58,0.43,0.24,0.04,-0.14,-0.29,-0.39,-0.43,-0.4,-0.32,-0.21,-0.08,0.06,0.19,0.3,0.38,0.41,0.34,0.18,-0.01,-0.21,-0.36,-0.46,-0.49,-0.42,-0.25,-0.05,0.16,0.35,0.51,0.61,0.65,0.58,0.41,0.19,-0.01,-0.18,-0.28,-0.32,-0.28,-0.19,-0.07,0.06,0.15,0.19,0.16,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_FORM=0\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\nPARAM_EYE_BALL_FORM=0\nPARAM_BROW_L_X=0\nPARAM_BROW_L_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\nPARAM_BROW_R_ANGLE=0\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\nPARAM_EYE_R_OPEN=0\nPARAM_TERE=0\nPARAM_HAIR_BACK=0\nPARAM_HAIR_FRONT=0\nPARAM_EYE_BALL_X=-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32\nPARAM_EYE_BALL_Y=0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\nPARAM_ARM_L=-10"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/smile.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0\nPARAM_ANGLE_Z=14,13.79,13.18,12.23,10.96,9.42,7.64,5.72,3.61,1.4,-0.88,-3.12,-5.4,-7.61,-9.72,-11.64,-13.42,-14.96,-16.23,-17.18,-17.79,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\nPARAM_BODY_ANGLE_X=3\nPARAM_BODY_ANGLE_Y=0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Z=1,0.94,0.76,0.48,0.12,-0.3,-0.76,-1.25,-1.75,-2.24,-2.7,-3.12,-3.48,-3.76,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\nPARAM_ARM_R_B=0\nPARAM_BREATH=0\nPARAM_ANGLE_Y=8\nPARAM_BROW_R_Y=0\nPARAM_ANGLE_X=0\nPARAM_BROW_R_X=0\nPARAM_MOUTH_FORM=1\nPARAM_EYE_L_OPEN=0\nPARAM_BUST_Y=0\nPARAM_EYE_FORM=0\nPARAM_EYE_L_SMILE=1\nPARAM_BROW_L_FORM=0\nPARAM_EYE_BALL_FORM=0\nPARAM_BROW_L_X=0\nPARAM_BROW_L_Y=0\nPARAM_BROW_R_ANGLE=0\nPARAM_EYE_R_SMILE=1\nPARAM_ARM_R_A=1\nPARAM_BROW_R_FORM=0\nPARAM_EYE_R_OPEN=0\nPARAM_TERE=0\nPARAM_HAIR_BACK=0\nPARAM_HAIR_FRONT=0\nPARAM_ARM_L_A=1\nPARAM_EYE_BALL_X=0\nPARAM_EYE_BALL_Y=0\nPARAM_ARM_L_B=0"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/general/mtn/tilt_head.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0\nPARAM_ANGLE_Z=-17,-16.85,-16.43,-15.74,-14.81,-13.65,-12.31,-10.79,-9.11,-7.29,-5.35,-3.28,-1.17,1.04,3.26,5.5,7.74,9.96,12.17,14.28,16.35,18.29,20.11,21.79,23.31,24.65,25.81,26.74,27.43,27.85,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27.93,27.71,27.36,26.88,26.28,25.58,24.8,23.92,22.97,21.95,20.88,19.76,18.6,17.42,16.21,15,13.81,13,12.47,12.16,12.03,12,12.85,14.69,16.99,19.37,21.55,23.35,24.55,25,25,25,25,25,25,25,25,24.94,24.75,24.45,24.01,23.45,22.76,21.91,20.94,19.79,18.5,17,15.11,13.32,11.64,10.17,8.88,7.83,7.02,6.45,6.11,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\nPARAM_BODY_ANGLE_X=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.9,4.79,4.65,4.48,4.29,4.1,3.9,3.71,3.52,3.35,3.21,3.1,3.03,3,3.06,3.22,3.46,3.76,4.1,4.46,4.81,5.13,5.42,5.66,5.85,5.96,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.31,0.52,0.75,1,1.25,1.48,1.69,1.85,1.96,2,1.93,1.75,1.48,1.16,0.84,0.52,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ARM_R=-5\nPARAM_BREATH=0\nPARAM_ANGLE_Y=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.987,-9.95,-9.9,-9.83,-9.74,-9.65,-9.56,-9.46,-9.37,-9.28,-9.2,-9.13,-9.08,-9.04,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9.13,-9.45,-9.89,-10.4,-10.93,-11.45,-11.95,-12.37,-12.7,-12.92,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\nPARAM_BROW_R_Y=0\nPARAM_ANGLE_X=17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.87,16.52,15.97,15.26,14.44,13.53,12.6,11.65,10.72,9.84,9.05,8.35,7.78,7.36,7.09,7,7.15,7.55,8.13,8.85,9.64,10.47,11.32,12.13,12.9,13.59,14.16,14.61,14.9,15,15,15,15,15,15,15,15,14.9,14.66,14.33,13.95,13.55,13.16,12.79,12.48,12.22,12.06,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12\nPARAM_BROW_R_X=0\nPARAM_MOUTH_OPEN_Y=0\nPARAM_MOUTH_FORM=1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.29,-0.41,-0.45,-0.41,-0.32,-0.18,-0.03,0.14,0.29,0.42,0.52,0.58,0.6,0.57,0.48,0.35,0.2,0.04,-0.11,-0.24,-0.33,-0.36,-0.32,-0.23,-0.13,-0.01,0.09,0.17,0.23,0.25,0.231,0.19,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_FORM=0.5\nPARAM_EYE_L_SMILE=0\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\nPARAM_EYE_BALL_FORM=0\nPARAM_BROW_L_X=0\nPARAM_BROW_L_Y=0\nPARAM_BROW_R_ANGLE=0\nPARAM_EYE_R_SMILE=0\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0\nPARAM_HAIR_BACK=0\nPARAM_HAIR_FRONT=0\nPARAM_EYE_BALL_X=-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.469,-0.466,-0.461,-0.454,-0.447,-0.439,-0.43,-0.422,-0.414,-0.406,-0.398,-0.392,-0.387,-0.383,-0.381,-0.38,-0.382,-0.388,-0.397,-0.409,-0.424,-0.442,-0.46,-0.481,-0.5,-0.52,-0.55,-0.57,-0.59,-0.61,-0.628,-0.646,-0.661,-0.673,-0.682,-0.688,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69\nPARAM_EYE_BALL_Y=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.496,0.486,0.47,0.45,0.43,0.4,0.37,0.34,0.32,0.29,0.27,0.249,0.233,0.22,0.213,0.21,0.21,0.212,0.214,0.218,0.221,0.226,0.231,0.236,0.242,0.247,0.253,0.258,0.264,0.269,0.274,0.279,0.282,0.286,0.288,0.289,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\nPARAM_ARM_L=-5"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.4,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"expressions\": [\n\t    {\"name\": \"normal\", \"file\": \"expressions/../../nepnep/general/exp/normal.json\"},\n\t    {\"name\": \"happy\", \"file\": \"expressions/../../nepnep/general/exp/happy.json\"},\n\t    {\"name\": \"unhappy\", \"file\": \"expressions/../../nepnep/general/exp/unhappy.json\"},\n\t    {\"name\": \"kira\", \"file\": \"expressions/../../nepnep/general/exp/kira.json\"},\n\t    {\"name\": \"deformed\", \"file\": \"expressions/../../nepnep/general/exp/deformed.json\"},\n\t    {\"name\": \"enjoy\", \"file\": \"expressions/../../nepnep/general/exp/enjoy.json\"}\n\t],\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ],\n        \"flick_head\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/smile.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/shake.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/refuse.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/tilt_head.mtn\"}\n        ],\n        \"tap_body\": [\n            {\"dialogue\": 11, \"sound\": \"sounds/../../nepnep/general/snd/001.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_head_1.mtn\"},\n            {\"dialogue\": 13, \"sound\": \"sounds/../../nepnep/general/snd/013.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_1.mtn\"},\n            {\"dialogue\": 90, \"sound\": \"sounds/../../nepnep/general/snd/101.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_slide_head_2.mtn\"},\n            {\"dialogue\": 93, \"sound\": \"sounds/../../nepnep/general/snd/007.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_boobs_1.mtn\"},\n            {\"dialogue\": 94, \"sound\": \"sounds/../../nepnep/general/snd/014.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_2.mtn\"}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepnep/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepswim/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.4,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"expressions\": [\n\t    {\"name\": \"normal\", \"file\": \"expressions/../../nepnep/general/exp/normal.json\"},\n\t    {\"name\": \"happy\", \"file\": \"expressions/../../nepnep/general/exp/happy.json\"},\n\t    {\"name\": \"unhappy\", \"file\": \"expressions/../../nepnep/general/exp/unhappy.json\"},\n\t    {\"name\": \"kira\", \"file\": \"expressions/../../nepnep/general/exp/kira.json\"},\n\t    {\"name\": \"deformed\", \"file\": \"expressions/../../nepnep/general/exp/deformed.json\"},\n\t    {\"name\": \"enjoy\", \"file\": \"expressions/../../nepnep/general/exp/enjoy.json\"}\n\t],\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ],\n        \"flick_head\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/smile.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/shake.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/refuse.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/tilt_head.mtn\"}\n        ],\n        \"tap_body\": [\n            {\"dialogue\": 11, \"sound\": \"sounds/../../nepnep/general/snd/001.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_head_1.mtn\"},\n            {\"dialogue\": 13, \"sound\": \"sounds/../../nepnep/general/snd/013.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_1.mtn\"},\n            {\"dialogue\": 90, \"sound\": \"sounds/../../nepnep/general/snd/101.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_slide_head_2.mtn\"},\n            {\"dialogue\": 93, \"sound\": \"sounds/../../nepnep/general/snd/007.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_boobs_1.mtn\"},\n            {\"dialogue\": 94, \"sound\": \"sounds/../../nepnep/general/snd/014.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_2.mtn\"}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepswim/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":1.4,\n\t\t\t\t\"mass\":1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_STRING\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/nepswim/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/neptune_classic/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.4,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"expressions\": [\n\t    {\"name\": \"normal\", \"file\": \"expressions/../../nepnep/general/exp/normal.json\"},\n\t    {\"name\": \"happy\", \"file\": \"expressions/../../nepnep/general/exp/happy.json\"},\n\t    {\"name\": \"unhappy\", \"file\": \"expressions/../../nepnep/general/exp/unhappy.json\"},\n\t    {\"name\": \"kira\", \"file\": \"expressions/../../nepnep/general/exp/kira.json\"},\n\t    {\"name\": \"deformed\", \"file\": \"expressions/../../nepnep/general/exp/deformed.json\"},\n\t    {\"name\": \"enjoy\", \"file\": \"expressions/../../nepnep/general/exp/enjoy.json\"}\n\t],\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ],\n        \"flick_head\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/smile.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/shake.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/refuse.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/tilt_head.mtn\"}\n        ],\n        \"tap_body\": [\n            {\"dialogue\": 11, \"sound\": \"sounds/../../nepnep/general/snd/001.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_head_1.mtn\"},\n            {\"dialogue\": 13, \"sound\": \"sounds/../../nepnep/general/snd/013.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_1.mtn\"},\n            {\"dialogue\": 90, \"sound\": \"sounds/../../nepnep/general/snd/101.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_slide_head_2.mtn\"},\n            {\"dialogue\": 93, \"sound\": \"sounds/../../nepnep/general/snd/007.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_boobs_1.mtn\"},\n            {\"dialogue\": 94, \"sound\": \"sounds/../../nepnep/general/snd/014.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_2.mtn\"}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/neptune_santa/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.6,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"expressions\": [\n\t    {\"name\": \"normal\", \"file\": \"expressions/../../nepnep/general/exp/normal.json\"},\n\t    {\"name\": \"happy\", \"file\": \"expressions/../../nepnep/general/exp/happy.json\"},\n\t    {\"name\": \"unhappy\", \"file\": \"expressions/../../nepnep/general/exp/unhappy.json\"},\n\t    {\"name\": \"kira\", \"file\": \"expressions/../../nepnep/general/exp/kira.json\"},\n\t    {\"name\": \"deformed\", \"file\": \"expressions/../../nepnep/general/exp/deformed.json\"},\n\t    {\"name\": \"enjoy\", \"file\": \"expressions/../../nepnep/general/exp/enjoy.json\"}\n\t],\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../nepnep/general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ],\n        \"flick_head\": [\n            {\"file\": \"motions/../../nepnep/general/mtn/smile.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/shake.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/refuse.mtn\"},\n            {\"file\": \"motions/../../nepnep/general/mtn/tilt_head.mtn\"}\n        ],\n        \"tap_body\": [\n            {\"dialogue\": 11, \"sound\": \"sounds/../../nepnep/general/snd/001.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_head_1.mtn\"},\n            {\"dialogue\": 13, \"sound\": \"sounds/../../nepnep/general/snd/013.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_1.mtn\"},\n            {\"dialogue\": 90, \"sound\": \"sounds/../../nepnep/general/snd/101.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_slide_head_2.mtn\"},\n            {\"dialogue\": 93, \"sound\": \"sounds/../../nepnep/general/snd/007.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_boobs_1.mtn\"},\n            {\"dialogue\": 94, \"sound\": \"sounds/../../nepnep/general/snd/014.ogg\", \"file\": \"motions/../../nepnep/general/mtn/nep_touch_belly_2.mtn\"}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.8,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.3,\n\t\t\t\t\"regist\":1,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir_classic/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.8,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir_classic/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.3,\n\t\t\t\t\"regist\":1,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir_santa/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.9,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noir_santa/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.3,\n\t\t\t\t\"regist\":1,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noireswim/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/noireswim/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.8,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.5\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.5,\n\t\t\t\t\"regist\":0.2,\n\t\t\t\t\"mass\":1.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.1,\n\t\t\t\t\"regist\":0.01,\n\t\t\t\t\"mass\":0.18\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Y\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.002,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BUST_Y\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_classic/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_classic/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_normal/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_normal/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_swimwear/index.json",
    "content": "{\n    \"version\":\"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"textures.1024/00.png\",\n        \"textures.1024/01.png\",\n        \"textures.1024/02.png\",\n\t\t\"textures.1024/03.png\"\n    ],\n    \"pose\": \"../general/pose.json\",\n    \"physics\": \"physics.json\",\n    \"layout\": {\n        \"center_x\": 0,\n        \"center_y\": -0.7,\n        \"width\": 3\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\": {\n        \"idle\": [\n            {\"file\": \"motions/../../general/mtn/idle_00.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_01.mtn\", \"fade_in\": 2000, \"fade_out\": 2000},\n            {\"file\": \"motions/../../general/mtn/idle_02.mtn\", \"fade_in\": 2000, \"fade_out\": 2000}\n        ]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/HyperdimensionNeptunia/vert_swimwear/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.34,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.17,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.025,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/expressions/f01.exp.json",
    "content": "{\n\t\"type\":\"Live2D Expression\",\n    \"fade_in\":500,\n    \"fade_out\":500\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/expressions/f02.exp.json",
    "content": "\n{\n\t\"type\":\"Live2D Expression\",\n    \"fade_in\":500,\n    \"fade_out\":500,\n    \"params\":\n    [\n        {  \"id\":\"PARAM_EYE_BALL_X\", \"val\":-0.4 },\n\t\t{  \"id\":\"PARAM_EYE_BALL_Y\", \"val\":-0.7 },\n\t\t{  \"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.7,\"def\":1\t,\"calc\":\"mult\"},\n\t\t{  \"id\":\"PARAM_EYE_R_OPEN\", \"val\":0.7 , \"def\":1 ,\"calc\":\"mult\"},\n\t\t{  \"id\":\"PARAM_DONYORI\", \"val\":0.7  },\n\t\t{  \"id\":\"PARAM_EYE_FORM\", \"val\":0.3  },\n\t\t{  \"id\":\"PARAM_BODY_Y\", \"val\":-0.5  },\n\t\t{  \"id\":\"PARAM_BROW_L_Y\", \"val\":-0.3  },\n\t\t{  \"id\":\"PARAM_BROW_R_Y\", \"val\":-0.3  },\n\t\t{  \"id\":\"PARAM_BROW_L_X\", \"val\":-0.3  },\n\t\t{  \"id\":\"PARAM_BROW_R_X\", \"val\":-0.3  },\n\t\t{  \"id\":\"PARAM_BROW_L_ANGLE\", \"val\":0.5  },\n\t\t{  \"id\":\"PARAM_BROW_R_ANGLE\", \"val\":0.5  },\n\t\t{  \"id\":\"PARAM_BROW_L_FORM\", \"val\":-0.5  },\n\t\t{  \"id\":\"PARAM_BROW_R_FORM\", \"val\": -0.5  },\n\t\t{  \"id\":\"PARAM_MOUTH_FORM\", \"val\":-1 , \"def\":1 },\n\t\t{  \"id\":\"PARAM_MOUTH_SIZE\", \"val\":-1  }\n    ]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/expressions/f03.exp.json",
    "content": "{\n    \"type\":\"Live2D Expression\",\n    \"fade_in\":500,\n    \"fade_out\":500,\n    \"params\":\n    [\n        {  \"id\":\"PARAM_EYE_BALL_Y\", \"val\":0.2 },\n\t\t{  \"id\":\"PARAM_BODY_Y\", \"val\":-0.5  },\n\t\t{  \"id\":\"PARAM_BROW_L_Y\", \"val\":-0.2  },\n\t\t{  \"id\":\"PARAM_BROW_R_Y\", \"val\":-0.2  },\n\t\t{  \"id\":\"PARAM_BROW_L_X\", \"val\":-0.4  },\n\t\t{  \"id\":\"PARAM_BROW_R_X\", \"val\":-0.4  },\n\t\t{  \"id\":\"PARAM_BROW_L_FORM\", \"val\":-1  },\n\t\t{  \"id\":\"PARAM_BROW_R_FORM\", \"val\": -1  },\n\t\t{  \"id\":\"PARAM_MOUTH_FORM\", \"val\":-0.7 , \"def\":1 },\n\t\t{  \"id\":\"PARAM_MOUTH_SIZE\", \"val\":0.3  }\n    ]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/expressions/f04.exp.json",
    "content": "{\n    \"type\":\"Live2D Expression\",\n    \"fade_in\":500,\n    \"fade_out\":500,\n    \"params\":\n    [\n        {  \"id\":\"PARAM_EYE_BALL_X\", \"val\":-0.4 },\n\t\t{  \"id\":\"PARAM_EYE_BALL_Y\", \"val\":-0.7 },\n\t\t{  \"id\":\"PARAM_EYE_BALL_KIRAKIRA\", \"val\":1 },\n\t\t{  \"id\":\"PARAM_EYE_L_OPEN\",\"val\":1.5,\"def\":1\t,\"calc\":\"mult\"},\n\t\t{  \"id\":\"PARAM_EYE_R_OPEN\", \"val\":1.5 , \"def\":1 ,\"calc\":\"mult\"},\n\t\t{  \"id\":\"PARAM_BROW_L_FORM\", \"val\":0.5  },\n\t\t{  \"id\":\"PARAM_BROW_R_FORM\", \"val\": 0.5  },\n\t\t{  \"id\":\"PARAM_KAMIYURE_TWIN_L_02\", \"val\": 0.3  },\n\t\t{  \"id\":\"PARAM_KAMIYURE_TWIN_R_02\", \"val\": -0.3  },\n\t\t{  \"id\":\"PARAM_MOUTH_SIZE\", \"val\":1  },\n\t\t{  \"id\":\"PARAM_TERE\", \"val\":1 , \"def\":0.6 }\n    ]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/index.json",
    "content": "{\n\t\"version\":\"Alpha 1.0.1\",\n\t\"model\":\"model.moc\",\n\t\"textures\":[\n\t\t\"textures.1024/00.png\"\n\t],\n    \"physics\":\"physics.json\",\n    \"layout\":{\n\t\t\"center_x\": 0,\n        \"center_y\": 0,\n        \"width\": 2.1\n\t},\n\t\"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"expressions\":[\n\t\t{\"name\":\"f01\",\"file\":\"expressions/f01.exp.json\"},\n\t\t{\"name\":\"f02\",\"file\":\"expressions/f02.exp.json\"},\n\t\t{\"name\":\"f03\",\"file\":\"expressions/f03.exp.json\"},\n\t\t{\"name\":\"f04\",\"file\":\"expressions/f04.exp.json\"}\n\t],\n\t\"motions\":{\n\t    \"idle\":[\n\t\t\t{\"file\":\"motions/murakumo_idle_01.mtn\",\"fade_in\":2000, \"fade_out\":2000},\n\t\t\t{\"file\":\"motions/murakumo_idle_02.mtn\",\"fade_in\":2000, \"fade_out\":2000},\n\t\t\t{\"file\":\"motions/murakumo_idle_03.mtn\",\"fade_in\":2000, \"fade_out\":2000}\n\t\t],\n\t\t\"flick_head\":[\n\t\t    {\"file\":\"motions/murakumo_m_01.mtn\"},\n\t\t\t{\"file\":\"motions/murakumo_m_02.mtn\"}\n\t\t],\n\t\t\"tap_body\":[\n            {\"file\":\"motions/murakumo_tap_bust_01.mtn\"},\n\t\t\t{\"file\":\"motions/murakumo_tap_bust_02.mtn\"},\n            {\"file\":\"motions/murakumo_tap_ear_01.mtn\"}\n\t\t]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1500\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.05,-0.19,-0.41,-0.7,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.993,-3.973,-3.94,-3.9,-3.84,-3.78,-3.7,-3.62,-3.53,-3.43,-3.32,-3.21,-3.09,-2.97,-2.84,-2.71,-2.57,-2.44,-2.3,-2.16,-2.02,-1.88,-1.74,-1.6,-1.46,-1.33,-1.2,-1.07,-0.95,-0.83,-0.72,-0.62,-0.52,-0.43,-0.34,-0.27,-0.2,-0.14,-0.09,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.16,0.28,0.42,0.6,0.81,1.04,1.29,1.57,1.87,2.19,2.53,2.88,3.25,3.63,4.02,4.43,4.85,5.26,5.69,6.13,6.56,7,7.44,7.87,8.31,8.74,9.15,9.57,9.98,10.37,10.75,11.12,11.47,11.81,12.13,12.43,12.71,12.96,13.19,13.4,13.58,13.72,13.84,13.93,13.98,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.98,13.91,13.8,13.64,13.45,13.22,12.96,12.67,12.35,11.99,11.63,11.23,10.81,10.37,9.92,9.45,8.98,8.49,8,7.5,7,6.5,6,5.51,5.02,4.55,4.08,3.63,3.19,2.77,2.37,2.01,1.65,1.33,1.04,0.78,0.55,0.36,0.2,0.09,0.02,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.64,-4.45,-4.26,-4.06,-3.86,-3.65,-3.45,-3.24,-3.03,-2.82,-2.61,-2.4,-2.2,-1.99,-1.8,-1.61,-1.43,-1.25,-1.08,-0.92,-0.78,-0.64,-0.51,-0.4,-0.3,-0.21,-0.14,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.9,4.63,4.23,3.69,3.07,2.37,1.61,0.83,0.01,-0.81,-1.61,-2.38,-3.12,-3.8,-4.42,-4.96,-5.39,-5.72,-5.93,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.63,-4.44,-4.25,-4.05,-3.85,-3.64,-3.43,-3.22,-3,-2.78,-2.57,-2.36,-2.15,-1.95,-1.75,-1.56,-1.37,-1.19,-1.02,-0.86,-0.71,-0.57,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.93,-5.74,-5.43,-5.02,-4.53,-3.94,-3.3,-2.59,-1.84,-1.05,-0.25,0.57,1.38,2.17,2.94,3.68,4.37,5,5.61,6.18,6.69,7.14,7.55,7.91,8.23,8.52,8.77,8.99,9.19,9.35,9.49,9.62,9.71,9.79,9.86,9.91,9.95,9.97,9.989,9.997,10,9.97,9.89,9.77,9.59,9.37,9.12,8.82,8.48,8.12,7.72,7.29,6.84,6.37,5.87,5.36,4.83,4.29,3.75,3.19,2.63,2.07,1.51,0.95,0.4,-0.14,-0.68,-1.2,-1.7,-2.2,-2.67,-3.11,-3.54,-3.93,-4.3,-4.64,-4.94,-5.21,-5.44,-5.64,-5.79,-5.91,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.7,-5.54,-5.35,-5.13,-4.89,-4.62,-4.33,-4.02,-3.69,-3.35,-3,-2.63,-2.25,-1.86,-1.46,-1.07,-0.66,-0.25,0.15,0.56,0.96,1.36,1.75,2.14,2.51,2.88,3.23,3.56,3.89,4.2,4.48,4.75,5,5.22,5.42,5.59,5.73,5.85,5.93,5.98,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.02,6.09,6.21,6.36,6.54,6.75,7,7.26,7.55,7.84,8.16,8.48,8.8,9.12,9.44,9.76,10.07,10.36,10.64,10.9,11.14,11.35,11.54,11.7,11.83,11.92,11.98,12,11.982,11.93,11.84,11.73,11.58,11.41,11.2,10.97,10.72,10.44,10.15,9.83,9.49,9.13,8.76,8.38,7.97,7.56,7.13,6.69,6.24,5.79,5.32,4.86,4.38,3.9,3.42,2.94,2.45,1.97,1.49,1.01,0.53,0.06,-0.41,-0.86,-1.31,-1.76,-2.19,-2.61,-3.02,-3.42,-3.8,-4.17,-4.52,-4.85,-5.17,-5.47,-5.75,-6,-6.24,-6.47,-6.69,-6.89,-7.09,-7.27,-7.43,-7.59,-7.74,-7.88,-8,-8.12,-8.23,-8.33,-8.42,-8.5,-8.58,-8.65,-8.71,-8.76,-8.81,-8.85,-8.89,-8.92,-8.95,-8.97,-8.985,-8.999,-9.009,-9.017,-9.021,-9.024,-9.024,-9.023,-9.02,-9.017,-9.013,-9.01,-9.006,-9.003,-9.001,-9,-9,-9\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0.003,0.011,0.024,0.04,0.059,0.08,0.1,0.12,0.14,0.165,0.183,0.199,0.212,0.222,0.228,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.229,0.224,0.218,0.209,0.197,0.184,0.169,0.151,0.132,0.11,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.47,-0.493,-0.512,-0.529,-0.545,-0.559,-0.571,-0.581,-0.589,-0.595,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.581,-0.53,-0.47,-0.39,-0.31,-0.23,-0.16,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.017,-0.029,-0.044,-0.062,-0.081,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.4,-0.42,-0.437,-0.453,-0.466,-0.476,-0.484,-0.488,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.489,-0.487,-0.483,-0.478,-0.471,-0.463,-0.454,-0.443,-0.432,-0.42,-0.407,-0.393,-0.378,-0.363,-0.347,-0.331,-0.314,-0.297,-0.28,-0.263,-0.245,-0.227,-0.21,-0.193,-0.176,-0.159,-0.143,-0.127,-0.112,-0.097,-0.083,-0.07,-0.058,-0.047,-0.036,-0.027,-0.019,-0.012,-0.007,-0.003,-0.001,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.012,0.026,0.044,0.06,0.09,0.11,0.13,0.16,0.18,0.199,0.216,0.231,0.241,0.248,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.248,0.246,0.244,0.24,0.236,0.232,0.226,0.221,0.214,0.208,0.201,0.193,0.185,0.178,0.169,0.161,0.152,0.144,0.135,0.126,0.117,0.109,0.1,0.091,0.083,0.075,0.067,0.059,0.052,0.045,0.039,0.032,0.027,0.021,0.017,0.012,0.009,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.004,-0.008,-0.012,-0.016,-0.022,-0.027,-0.033,-0.04,-0.047,-0.054,-0.061,-0.068,-0.075,-0.081,-0.088,-0.094,-0.101,-0.106,-0.111,-0.116,-0.12,-0.124,-0.126,-0.128,-0.13,-0.13,-0.127,-0.119,-0.106,-0.09,-0.07,-0.05,-0.03,0,0.02,0.05,0.07,0.1,0.12,0.14,0.161,0.178,0.191,0.201,0.208,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.205,0.202,0.198,0.194,0.19,0.185,0.18,0.174,0.168,0.162,0.156,0.149,0.142,0.135,0.127,0.12,0.113,0.105,0.097,0.09,0.083,0.075,0.068,0.061,0.054,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.14,-0.31,-0.52,-0.77,-1.04,-1.32,-1.61,-1.88,-2.15,-2.39,-2.6,-2.77,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.18,0.25,0.34,0.44,0.54,0.65,0.78,0.9,1.04,1.18,1.32,1.47,1.62,1.77,1.92,2.08,2.23,2.38,2.53,2.68,2.82,2.96,3.1,3.22,3.35,3.46,3.56,3.66,3.75,3.82,3.88,3.93,3.97,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.007,4.026,4.06,4.1,4.16,4.23,4.31,4.4,4.5,4.61,4.73,4.86,5,5.15,5.31,5.47,5.64,5.82,6,6.22,6.42,6.61,6.78,6.94,7.09,7.22,7.34,7.45,7.55,7.64,7.71,7.78,7.84,7.89,7.93,7.96,7.98,7.996,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.981,7.93,7.84,7.72,7.57,7.39,7.19,6.97,6.72,6.46,6.18,5.9,5.6,5.29,4.98,4.66,4.34,4.02,3.71,3.4,3.1,2.82,2.54,2.28,2.03,1.81,1.61,1.43,1.28,1.16,1.07,1.02,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0.011,0.04,0.09,0.16,0.25,0.35,0.46,0.59,0.73,0.88,1.03,1.19,1.36,1.54,1.71,1.89,2.07,2.24,2.42,2.59,2.76,2.92,3.07,3.22,3.35,3.48,3.59,3.7,3.78,3.86,3.92,3.96,3.99,4,3.994,3.975,3.95,3.91,3.86,3.81,3.76,3.7,3.64,3.57,3.51,3.44,3.38,3.32,3.26,3.21,3.16,3.11,3.07,3.04,3.02,3.005,3,3,3,3,3,3,3,3,3,2.992,2.97,2.93,2.88,2.82,2.75,2.66,2.57,2.47,2.37,2.26,2.14,2.02,1.9,1.77,1.64,1.52,1.39,1.26,1.14,1.02,0.9,0.78,0.67,0.57,0.47,0.38,0.3,0.22,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.81,-0.88,-0.96,-1.04,-1.12,-1.19,-1.27,-1.34,-1.41,-1.48,-1.55,-1.61,-1.67,-1.73,-1.78,-1.83,-1.87,-1.91,-1.94,-1.97,-1.985,-1.996,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.018,-2.07,-2.15,-2.25,-2.37,-2.51,-2.66,-2.82,-2.98,-3.14,-3.29,-3.44,-3.58,-3.7,-3.8,-3.89,-3.95,-3.99,-4,-3.983,-3.93,-3.86,-3.76,-3.65,-3.52,-3.38,-3.24,-3.09,-2.94,-2.8,-2.66,-2.52,-2.4,-2.29,-2.19,-2.11,-2.05,-2.01,-2,-2.01,-2.04,-2.08,-2.15,-2.22,-2.31,-2.41,-2.53,-2.65,-2.78,-2.91,-3.06,-3.2,-3.35,-3.5,-3.65,-3.8,-3.94,-4.09,-4.22,-4.35,-4.47,-4.59,-4.69,-4.78,-4.85,-4.92,-4.96,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.987,-4.95,-4.88,-4.8,-4.69,-4.57,-4.42,-4.26,-4.09,-3.9,-3.7,-3.5,-3.28,-3.06,-2.84,-2.61,-2.39,-2.16,-1.94,-1.72,-1.5,-1.3,-1.1,-0.91,-0.74,-0.58,-0.43,-0.31,-0.2,-0.12,-0.05,-0.01,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_idle_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1500\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.04,-0.14,-0.31,-0.53,-0.82,-1.15,-1.52,-1.93,-2.37,-2.85,-3.35,-3.87,-4.41,-4.95,-5.5,-6.05,-6.59,-7.13,-7.65,-8.15,-8.63,-9.07,-9.48,-9.85,-10.18,-10.47,-10.69,-10.86,-10.96,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.95,-10.8,-10.56,-10.23,-9.83,-9.35,-8.8,-8.2,-7.55,-6.84,-6.11,-5.33,-4.53,-3.71,-2.87,-2.03,-1.18,-0.35,0.49,1.3,2.09,2.86,3.58,4.28,4.93,5.53,6.07,6.56,6.98,7.33,7.62,7.83,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.982,7.93,7.84,7.72,7.56,7.38,7.17,6.93,6.66,6.37,6.06,5.72,5.35,4.97,4.57,4.16,3.72,3.27,2.81,2.34,1.86,1.36,0.86,0.35,-0.16,-0.69,-1.21,-1.74,-2.26,-2.79,-3.31,-3.84,-4.35,-4.86,-5.36,-5.86,-6.34,-6.81,-7.27,-7.72,-8.16,-8.57,-8.97,-9.35,-9.72,-10.06,-10.37,-10.66,-10.93,-11.17,-11.38,-11.56,-11.72,-11.84,-11.93,-11.98,-12,-11.95,-11.82,-11.61,-11.32,-10.97,-10.55,-10.08,-9.55,-8.97,-8.37,-7.71,-7.02,-6.31,-5.58,-4.82,-4.05,-3.27,-2.5,-1.71,-0.92,-0.15,0.61,1.35,2.08,2.78,3.46,4.11,4.72,5.29,5.81,6.29,6.73,7.1,7.41,7.66,7.85,7.96,8,7.988,7.95,7.9,7.82,7.73,7.61,7.48,7.33,7.17,6.99,6.8,6.6,6.39,6.16,5.93,5.7,5.45,5.2,4.95,4.69,4.43,4.16,3.9,3.64,3.38,3.12,2.87,2.62,2.38,2.14,1.92,1.69,1.48,1.28,1.1,0.92,0.75,0.6,0.47,0.35,0.25,0.16,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.19,0.32,0.49,0.7,0.93,1.18,1.45,1.75,2.06,2.39,2.73,3.07,3.42,3.78,4.13,4.49,4.84,5.18,5.51,5.84,6.14,6.43,6.71,6.96,7.19,7.39,7.57,7.72,7.84,7.93,7.98,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.98,7.9,7.78,7.62,7.41,7.17,6.88,6.55,6.19,5.8,5.37,4.92,4.43,3.91,3.37,2.81,2.22,1.62,0.99,0.36,-0.29,-0.96,-1.64,-2.32,-3.02,-3.72,-4.43,-5.14,-5.86,-6.57,-7.28,-7.98,-8.68,-9.36,-10.04,-10.71,-11.36,-11.99,-12.62,-13.22,-13.81,-14.37,-14.91,-15.43,-15.92,-16.37,-16.8,-17.19,-17.55,-17.88,-18.17,-18.41,-18.62,-18.78,-18.9,-18.98,-19,-18.94,-18.78,-18.51,-18.15,-17.72,-17.19,-16.6,-15.93,-15.22,-14.46,-13.64,-12.77,-11.89,-10.97,-10.03,-9.07,-8.09,-7.12,-6.13,-5.15,-4.19,-3.24,-2.31,-1.4,-0.52,0.33,1.14,1.9,2.62,3.27,3.87,4.41,4.87,5.27,5.58,5.81,5.95,6,5.94,5.77,5.5,5.15,4.71,4.21,3.67,3.08,2.46,1.82,1.18,0.54,-0.08,-0.67,-1.21,-1.71,-2.15,-2.5,-2.77,-2.94,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.23,-2.06,-1.88,-1.71,-1.52,-1.34,-1.16,-0.99,-0.82,-0.67,-0.53,-0.4,-0.28,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0.001,0.002,0.004,0.006,0.008,0.01,0.012,0.015,0.018,0.022,0.025,0.029,0.034,0.038,0.043,0.048,0.053,0.059,0.065,0.071,0.077,0.084,0.091,0.098,0.105,0.113,0.121,0.129,0.137,0.146,0.154,0.164,0.173,0.182,0.192,0.202,0.212,0.222,0.233,0.243,0.254,0.265,0.277,0.288,0.3,0.312,0.324,0.336,0.349,0.361,0.374,0.387,0.4,0.414,0.427,0.441,0.455,0.469,0.483,0.497,0.511,0.526,0.541,0.555,0.57,0.586,0.601,0.616,0.632,0.648,0.663,0.679,0.695,0.711,0.728,0.744,0.76,0.777,0.794,0.811,0.827,0.845,0.862,0.879,0.896,0.913,0.931,0.948,0.966,0.984,1.001,1.019,1.037,1.055,1.073,1.091,1.109,1.127,1.145,1.164,1.182,1.2,1.219,1.237,1.255,1.274,1.293,1.311,1.33,1.348,1.367,1.386,1.404,1.423,1.442,1.46,1.479,1.498,1.516,1.535,1.554,1.572,1.591,1.61,1.628,1.647,1.666,1.684,1.703,1.721,1.74,1.758,1.777,1.795,1.813,1.832,1.85,1.868,1.886,1.904,1.922,1.94,1.958,1.976,1.994,2.011,2.029,2.047,2.064,2.081,2.099,2.116,2.133,2.15,2.167,2.184,2.2,2.217,2.234,2.25,2.267,2.283,2.299,2.315,2.331,2.347,2.362,2.378,2.393,2.408,2.424,2.438,2.453,2.468,2.483,2.497,2.511,2.525,2.539,2.553,2.567,2.58,2.593,2.607,2.62,2.633,2.645,2.658,2.67,2.682,2.694,2.706,2.717,2.728,2.74,2.751,2.761,2.772,2.782,2.792,2.802,2.812,2.821,2.831,2.84,2.849,2.857,2.866,2.874,2.882,2.889,2.897,2.904,2.911,2.918,2.924,2.931,2.936,2.942,2.948,2.953,2.958,2.963,2.967,2.971,2.975,2.979,2.982,2.985,2.988,2.99,2.993,2.995,2.996,2.998,2.999,2.999,3,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.23,2.13,2.03,1.93,1.83,1.72,1.62,1.51,1.41,1.3,1.2,1.1,1,0.9,0.81,0.71,0.63,0.54,0.46,0.39,0.32,0.26,0.2,0.15,0.1,0.07,0.04,0.02,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.06,-0.1,-0.15,-0.2,-0.25,-0.3,-0.34,-0.37,-0.39,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.399,-0.4,-0.4,-0.398,-0.4,-0.4,-0.397,-0.396,-0.4,-0.395,-0.394,-0.393,-0.392,-0.391,-0.39,-0.389,-0.387,-0.386,-0.384,-0.383,-0.381,-0.379,-0.377,-0.375,-0.373,-0.371,-0.369,-0.366,-0.364,-0.361,-0.358,-0.355,-0.352,-0.349,-0.345,-0.342,-0.338,-0.334,-0.33,-0.326,-0.322,-0.318,-0.313,-0.308,-0.303,-0.298,-0.293,-0.287,-0.282,-0.276,-0.27,-0.263,-0.255,-0.246,-0.236,-0.225,-0.214,-0.201,-0.188,-0.174,-0.159,-0.145,-0.129,-0.113,-0.097,-0.08,-0.063,-0.046,-0.029,-0.012,0.005,0.023,0.04,0.057,0.074,0.091,0.108,0.123,0.139,0.154,0.169,0.183,0.197,0.21,0.222,0.234,0.245,0.255,0.264,0.272,0.279,0.285,0.291,0.295,0.298,0.299,0.3,0.3,0.299,0.298,0.296,0.294,0.291,0.288,0.284,0.28,0.276,0.271,0.266,0.261,0.256,0.25,0.244,0.237,0.231,0.224,0.217,0.21,0.203,0.196,0.189,0.181,0.174,0.166,0.159,0.151,0.143,0.136,0.128,0.121,0.113,0.106,0.099,0.092,0.085,0.078,0.071,0.065,0.059,0.053,0.047,0.041,0.036,0.031,0.027,0.022,0.018,0.015,0.011,0.008,0.006,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.006,-0.01,-0.015,-0.02,-0.025,-0.03,-0.034,-0.037,-0.039,-0.04,-0.04,-0.04,-0.04,-0.038,-0.037,-0.036,-0.035,-0.033,-0.032,-0.03,-0.028,-0.026,-0.023,-0.021,-0.018,-0.016,-0.013,-0.01,-0.007,-0.003,0,0.003,0.007,0.011,0.014,0.018,0.022,0.026,0.03,0.034,0.038,0.042,0.046,0.051,0.055,0.059,0.064,0.068,0.072,0.077,0.081,0.085,0.09,0.094,0.098,0.103,0.107,0.111,0.115,0.12,0.124,0.128,0.132,0.136,0.139,0.143,0.147,0.15,0.154,0.157,0.161,0.164,0.167,0.17,0.173,0.176,0.179,0.181,0.184,0.186,0.188,0.19,0.192,0.194,0.195,0.197,0.198,0.2,0.201,0.202,0.203,0.204,0.205,0.21,0.206,0.207,0.21,0.208,0.21,0.21,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.208,0.207,0.205,0.204,0.201,0.199,0.196,0.193,0.19,0.186,0.183,0.179,0.175,0.171,0.166,0.162,0.157,0.152,0.147,0.142,0.137,0.132,0.127,0.122,0.116,0.111,0.106,0.1,0.095,0.09,0.085,0.079,0.074,0.069,0.064,0.059,0.055,0.05,0.045,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.016,0.013,0.01,0.008,0.006,0.004,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.004,-0.016,-0.035,-0.06,-0.1,-0.14,-0.18,-0.23,-0.29,-0.35,-0.42,-0.49,-0.57,-0.65,-0.74,-0.82,-0.92,-1.01,-1.1,-1.2,-1.3,-1.41,-1.51,-1.62,-1.72,-1.83,-1.93,-2.04,-2.15,-2.25,-2.36,-2.46,-2.56,-2.67,-2.77,-2.86,-2.96,-3.05,-3.14,-3.23,-3.31,-3.39,-3.47,-3.54,-3.61,-3.67,-3.73,-3.79,-3.83,-3.88,-3.91,-3.94,-3.97,-3.986,-3.996,-4,-3.97,-3.87,-3.72,-3.51,-3.26,-2.96,-2.62,-2.25,-1.84,-1.41,-0.95,-0.48,0.01,0.5,1,1.5,1.99,2.48,2.95,3.41,3.84,4.25,4.62,4.96,5.26,5.51,5.72,5.87,5.97,6,5.96,5.85,5.68,5.46,5.18,4.88,4.55,4.19,3.82,3.44,3.05,2.66,2.29,1.91,1.57,1.24,0.94,0.68,0.45,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.015,-0.06,-0.14,-0.24,-0.36,-0.51,-0.68,-0.87,-1.08,-1.3,-1.54,-1.8,-2.07,-2.34,-2.63,-2.92,-3.21,-3.51,-3.81,-4.11,-4.42,-4.71,-5,-5.29,-5.57,-5.85,-6.11,-6.36,-6.6,-6.82,-7.03,-7.22,-7.4,-7.55,-7.68,-7.79,-7.88,-7.95,-7.99,-8,-7.99,-7.96,-7.91,-7.84,-7.76,-7.66,-7.54,-7.42,-7.27,-7.11,-6.94,-6.76,-6.57,-6.37,-6.16,-5.94,-5.71,-5.48,-5.24,-4.99,-4.74,-4.48,-4.23,-3.96,-3.7,-3.43,-3.17,-2.9,-2.63,-2.37,-2.1,-1.84,-1.59,-1.33,-1.08,-0.84,-0.6,-0.37,-0.15,0.07,0.28,0.48,0.67,0.86,1.03,1.18,1.33,1.46,1.58,1.69,1.78,1.86,1.92,1.96,1.99,2,1.997,1.989,1.975,1.955,1.93,1.9,1.87,1.83,1.79,1.75,1.7,1.65,1.6,1.54,1.48,1.42,1.36,1.3,1.23,1.17,1.1,1.03,0.97,0.9,0.83,0.77,0.7,0.64,0.58,0.52,0.46,0.4,0.35,0.3,0.25,0.21,0.17,0.13,0.1,0.07,0.04,0.025,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,-0.001,0,-0.003,-0.004,-0.006,-0.008,-0.01,-0.012,-0.015,-0.017,-0.02,-0.024,-0.027,-0.03,-0.034,-0.038,-0.043,-0.047,-0.052,-0.057,-0.061,-0.067,-0.072,-0.078,-0.084,-0.09,-0.096,-0.102,-0.109,-0.116,-0.122,-0.13,-0.137,-0.144,-0.152,-0.16,-0.168,-0.176,-0.184,-0.192,-0.201,-0.21,-0.219,-0.227,-0.237,-0.246,-0.255,-0.265,-0.275,-0.285,-0.295,-0.305,-0.315,-0.325,-0.336,-0.346,-0.357,-0.368,-0.379,-0.39,-0.401,-0.412,-0.424,-0.435,-0.447,-0.458,-0.47,-0.482,-0.494,-0.506,-0.518,-0.53,-0.543,-0.555,-0.567,-0.58,-0.592,-0.605,-0.618,-0.63,-0.643,-0.656,-0.669,-0.682,-0.695,-0.708,-0.722,-0.735,-0.748,-0.761,-0.775,-0.788,-0.801,-0.815,-0.828,-0.842,-0.855,-0.869,-0.883,-0.896,-0.91,-0.923,-0.937,-0.951,-0.964,-0.978,-0.992,-1.005,-1.019,-1.032,-1.046,-1.06,-1.073,-1.087,-1.101,-1.114,-1.128,-1.141,-1.155,-1.168,-1.182,-1.195,-1.208,-1.222,-1.235,-1.248,-1.262,-1.275,-1.288,-1.301,-1.314,-1.327,-1.34,-1.353,-1.366,-1.378,-1.391,-1.404,-1.416,-1.429,-1.441,-1.453,-1.466,-1.478,-1.49,-1.502,-1.514,-1.526,-1.537,-1.549,-1.561,-1.572,-1.583,-1.595,-1.606,-1.617,-1.628,-1.639,-1.649,-1.66,-1.67,-1.681,-1.691,-1.701,-1.711,-1.721,-1.731,-1.74,-1.749,-1.759,-1.768,-1.777,-1.786,-1.794,-1.803,-1.812,-1.82,-1.828,-1.836,-1.844,-1.851,-1.859,-1.866,-1.873,-1.88,-1.887,-1.894,-1.9,-1.906,-1.912,-1.918,-1.924,-1.929,-1.935,-1.94,-1.945,-1.95,-1.954,-1.958,-1.963,-1.967,-1.97,-1.974,-1.977,-1.98,-1.983,-1.986,-1.988,-1.99,-1.992,-1.994,-1.996,-1.997,-1.998,-2,-2,-2,-2,-1.97,-1.9,-1.78,-1.62,-1.43,-1.2,-0.96,-0.7,-0.42,-0.14,0.14,0.42,0.7,0.96,1.2,1.43,1.62,1.78,1.9,1.97,2,1.97,1.9,1.78,1.62,1.44,1.22,0.99,0.75,0.5,0.25,0.01,-0.22,-0.44,-0.62,-0.78,-0.9,-0.97,-1,-0.996,-0.984,-0.966,-0.94,-0.91,-0.87,-0.83,-0.79,-0.74,-0.69,-0.64,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_idle_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=500\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,0.006,0.04,0.12,0.26,0.46,0.73,1.08,1.5,2,3.02,4.68,6.76,9.07,11.36,13.53,15.32,16.55,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.69,2.49,5.1,8.08,11.17,14.05,16.52,18.4,19.58,20,18.97,16.2,12.2,7.45,2.55,-2.2,-6.2,-8.97,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.85,-2.69,-4.99,-7.37,-9.55,-11.35,-12.55,-13,-11.62,-8.15,-3.46,2.04,7.74,13.38,18.7,23.19,26.8,29.14,30,29.8,29.38,28.85,28.3,27.8,27.38,27.1,27,27,27,27,27,27,27,27,27,27,27,27\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.023,-0.05,-0.09,-0.13,-0.17,-0.23,-0.28,-0.33,-0.39,-0.44,-0.49,-0.54,-0.58,-0.61,-0.64,-0.66,-0.675,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.018,0.031,0.047,0.064,0.083,0.102,0.122,0.143,0.162,0.18,0.197,0.212,0.225,0.236,0.243,0.248,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.05,0.11,0.18,0.25,0.31,0.36,0.4,0.43,0.44,0.425,0.38,0.33,0.26,0.18,0.11,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.05,0.11,0.17,0.23,0.3,0.35,0.39,0.41,0.42,0.406,0.37,0.31,0.24,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.05,0.1,0.16,0.22,0.28,0.33,0.37,0.39,0.4,0.386,0.35,0.3,0.23,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.12,0.19,0.26,0.32,0.38,0.42,0.45,0.46,0.444,0.4,0.34,0.27,0.19,0.12,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1,1.013,1.05,1.1,1.18,1.26,1.35,1.45,1.55,1.65,1.74,1.82,1.9,1.95,1.99,2,1.988,1.96,1.9,1.84,1.76,1.67,1.57,1.47,1.36,1.26,1.16,1.06,0.98,0.9,0.83,0.77,0.73,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,0.82,0.54,0.28,0.09,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.28,0.59,1.01,1.5,2.05,2.65,3.28,3.92,4.56,5.18,5.76,6.3,6.78,7.2,7.54,7.79,7.95,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.21,0.75,1.53,2.42,3.35,4.22,4.95,5.52,5.87,6,5.34,3.93,2.16,0.33,-1.35,-2.73,-3.66,-4,-3.71,-2.99,-2.12,-1.27,-0.58,-0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.51,-0.81,-1.12,-1.41,-1.65,-1.84,-1.96,-2,-1.79,-1.24,-0.44,0.51,1.49,2.44,3.24,3.79,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_ARM_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.74,1.56,2.6,3.75,5,6.25,7.4,8.44,9.26,9.8,10,9.04,6.72,3.88,1.11,-1.11,-2.52,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.74,1.56,2.6,3.75,5,6.25,7.4,8.44,9.26,9.8,10,9.04,6.72,3.88,1.11,-1.11,-2.52,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_m_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=500\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,2,2,2,2,2,2,2,1.85,1.5,1.06,0.63,0.29,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.48,1.74,3.57,5.65,7.82,9.84,11.56,12.88,13.71,14,14,14,14,14,14,14,14,12.97,10.47,7.41,4.43,2.04,0.51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.07,0.3,0.68,1.21,1.88,2.69,3.61,4.65,5.77,7,8.66,10.08,11.2,12.03,12.59,12.9,13,10.18,4.09,-3.5,-11.39,-18.59,-24.55,-28.52,-30,-29.17,-27.17,-24.5,-21.83,-19.83,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_FORM=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_X=0,-0.006,-0.021,-0.04,-0.07,-0.09,-0.12,-0.14,-0.156,-0.166,-0.17,-0.167,-0.158,-0.146,-0.131,-0.114,-0.096,-0.078,-0.061,-0.045,-0.03,-0.018,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.006,-0.021,-0.04,-0.07,-0.09,-0.12,-0.14,-0.156,-0.166,-0.17,-0.167,-0.158,-0.146,-0.131,-0.114,-0.096,-0.078,-0.061,-0.045,-0.03,-0.018,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.12,0.2,0.27,0.35,0.41,0.45,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.06,0.12,0.19,0.26,0.33,0.39,0.43,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45\r\r\nPARAM_MOUTH_FORM=2,1.97,1.88,1.75,1.6,1.44,1.3,1.17,1.08,1.02,1,1,1,1,1,1,1,1,1,1,1,1.006,1.025,1.05,1.09,1.14,1.19,1.24,1.3,1.36,1.43,1.49,1.56,1.62,1.68,1.74,1.79,1.84,1.89,1.93,1.96,1.98,1.995,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.66,2.27,4.24,6.15,7.69,8.67,9,7.9,5.21,1.94,-1.25,-3.82,-5.45,-6,-4.93,-3.21,-1.61,-0.45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0.23,0.77,1.5,2.23,2.77,3,2.41,1.14,-0.45,-2.1,-3.61,-4.86,-5.69,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_ARM_L=0,0,0,0,0,0,0,0,0,0,0,0.34,1.27,2.6,4.18,5.82,7.4,8.73,9.66,10,9.62,8.58,6.95,4.89,2.57,0,-2.51,-3.58,-3.93,-4,-3.03,-1.44,-0.35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0,0,0,0,0,0,0,0,0,0,0,0.34,1.27,2.6,4.18,5.82,7.4,8.73,9.66,10,9.62,8.58,6.95,4.89,2.57,0,-2.51,-3.58,-3.93,-4,-3.03,-1.44,-0.35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_m_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=500\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.26,-0.96,-2.03,-3.38,-4.88,-6.5,-8.12,-9.62,-10.97,-12.04,-12.74,-13,-12.74,-11.9,-10.49,-8.53,-6.07,-3.2,0,4.21,7.95,11.23,13.78,15.4,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15.72,14.97,13.79,12.29,10.59,8.7,6.74,4.84,3,1.36,0.01,-1,-1.73,-2.33,-2.82,-3.2,-3.48,-3.7,-3.84,-3.93,-3.98,-4,-4.002,-4,-3.96,-3.85,-3.69,-3.48,-3.25,-3,-2.75,-2.52,-2.31,-2.15,-2.04,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_ANGLE_Y=0,0.24,0.91,2.01,3.47,5.21,7.27,9.57,12,14.64,17.4,20.15,23,25.8,27.69,28.86,29.52,29.85,29.97,30,29.32,27.68,25.5,23.32,21.68,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21.18,21.66,22.41,23.34,24.38,25.5,26.62,27.66,28.59,29.34,29.82,30,28.94,26.1,21.72,16.21,10.11,3.5,-3.11,-9.21,-14.72,-19.1,-21.94,-23,-22.72,-21.97,-20.81,-19.36,-17.75,-16,-14.25,-12.64,-11.19,-10.03,-9.28,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_ANGLE_Z=0,-0.38,-1.4,-2.97,-4.94,-7.13,-9.5,-11.87,-14.06,-16.03,-17.6,-18.62,-19,-18.29,-16.46,-13.78,-10.46,-6.78,-2.93,0.96,4.75,8.28,11.47,14.11,16.19,17.53,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.95,17.82,17.59,17.29,16.92,16.48,15.99,15.42,14.82,14.18,13.49,12.77,12.02,11.25,10.46,9.65,8.83,8.02,7.19,6.36,5.56,4.76,3.98,3.22,2.48,1.77,1.09,0.44,-0.16,-0.7,-1.21,-1.66,-2.05,-2.38,-2.64,-2.84,-2.96,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_EYE_L_OPEN=1,0.996,0.985,0.969,0.95,0.92,0.9,0.88,0.85,0.83,0.815,0.804,0.8,0.8,0.8,0.66,0.43,0.21,0.06,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.66,0.43,0.21,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.21,0.33,0.47,0.59,0.7,0.77,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,0.996,0.985,0.969,0.95,0.92,0.9,0.88,0.85,0.83,0.815,0.804,0.8,0.8,0.8,0.66,0.43,0.21,0.06,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.66,0.43,0.21,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.21,0.33,0.47,0.59,0.7,0.77,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.992,-0.97,-0.94,-0.9,-0.86,-0.81,-0.77,-0.72,-0.68,-0.65,-0.62,-0.59,-0.575,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.566,-0.556,-0.539,-0.52,-0.49,-0.45,-0.42,-0.37,-0.32,-0.27,-0.22,-0.16,-0.1,-0.04,0.02,0.08,0.15,0.21,0.28,0.35,0.41,0.47,0.53,0.59,0.65,0.7,0.75,0.8,0.85,0.88,0.92,0.95,0.97,0.986,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_Y=0,0.006,0.021,0.05,0.08,0.11,0.15,0.18,0.21,0.24,0.27,0.284,0.29,0.27,0.2,0.11,-0.01,-0.14,-0.27,-0.41,-0.54,-0.66,-0.77,-0.86,-0.94,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.998,-0.991,-0.98,-0.966,-0.948,-0.93,-0.9,-0.87,-0.84,-0.81,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.07,-0.05,-0.034,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,-0.011,-0.04,-0.08,-0.12,-0.16,-0.21,-0.25,-0.29,-0.31,-0.333,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34\r\r\nPARAM_BROW_R_ANGLE=0,-0.014,-0.05,-0.1,-0.15,-0.21,-0.26,-0.32,-0.36,-0.4,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43\r\r\nPARAM_BROW_L_FORM=0,-0.01,-0.03,-0.07,-0.1,-0.14,-0.18,-0.22,-0.25,-0.28,-0.294,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3\r\r\nPARAM_BROW_R_FORM=0,-0.012,-0.04,-0.08,-0.13,-0.18,-0.23,-0.28,-0.32,-0.35,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_MOUTH_FORM=1,0.96,0.85,0.69,0.48,0.25,0,-0.25,-0.48,-0.69,-0.85,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.41,0.27,0.13,0.04,0,0.07,0.17,0.25,0.27,0.25,0.2,0.14,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.12,-0.44,-0.94,-1.56,-2.25,-3,-3.75,-4.44,-5.06,-5.56,-5.88,-6,-5.78,-5.19,-4.31,-3.2,-1.97,-0.66,0.62,1.82,2.88,3.77,4.44,4.86,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.74,1.56,2.6,3.75,5,6.25,7.4,8.44,9.26,9.8,10,9.7,8.9,7.66,6.1,4.37,2.5,0.63,-1.1,-2.66,-3.9,-4.7,-5,-4.94,-4.76,-4.48,-4.12,-3.7,-3.24,-2.75,-2.25,-1.76,-1.3,-0.88,-0.52,-0.24,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-1.92,-1.71,-1.38,-0.98,-0.53,-0.06,0.41,0.84,1.23,1.55,1.8,1.95,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.06,2.21,2.42,2.69,2.99,3.3,3.62,3.93,4.21,4.47,4.68,4.85,4.96,5,4.92,4.69,4.34,3.87,3.32,2.69,2.02,1.31,0.59,-0.13,-0.83,-1.48,-2.09,-2.63,-3.1,-3.48,-3.76,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_L=0,0.2,0.74,1.54,2.55,3.67,4.85,6.02,7.11,8.07,8.88,9.49,9.87,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_ARM_R=0,-0.2,-0.74,-1.54,-2.55,-3.67,-4.85,-6.02,-7.11,-8.07,-8.88,-9.49,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_tap_bust_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=300\r\n\r\n$fadeout=0\r\n\r\n$fadein:PARAM_EYE_L_OPEN=0\r\r\n$fadein:PARAM_EYE_L_SMILE=0\r\r\n$fadein:PARAM_EYE_R_OPEN=0\r\r\n$fadein:PARAM_EYE_R_SMILE=0\r\r\n$fadein:PARAM_EYE_FORM=0\r\r\n$fadein:PARAM_BODY_ANGLE_X=0\r\r\n$fadein:PARAM_BODY_ANGLE_Y=0\r\r\n$fadein:PARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ANGLE_X=0,0.89,2.32,3.66,4.62,5,3.79,1.81,0.44,0,0.44,1.51,2.82,4.1,5.13,5.78,6,5.71,4.99,4.12,3.27,2.58,2.15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.52,0.28,-1.53,-3.77,-6.26,-8.86,-11.49,-14.05,-16.43,-18.59,-20.37,-21.78,-22.68,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23\r\r\nPARAM_ANGLE_Y=0,-3.75,-9.76,-15.37,-19.42,-21,-8.65,11.59,25.47,30,27.43,21.17,13.52,6.07,0.09,-3.71,-5,-3.6,-0.21,3.94,7.99,11.24,13.3,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.81,13.31,12.59,11.69,10.7,9.66,8.6,7.58,6.63,5.76,5.05,4.49,4.13,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_ANGLE_Z=0,5.36,13.95,21.96,27.75,30,20.32,4.44,-6.45,-10,-9.45,-8.08,-6.23,-4.05,-1.8,0.43,2.53,4.31,5.74,6.66,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7.79,9.21,10,9.2,7.18,4.45,1.26,-2.06,-5.33,-8.43,-11.04,-13.14,-14.5,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0.29,0.77,1.09,1.2,1.2,1.2,0.99,0.64,0.32,0.09,0,0.08,0.26,0.5,0.74,0.92,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0.21,0.56,0.88,1.11,1.2,1.2,1.196,1.18,1.15,1.09,1,0.74,0.47,0.23,0.06,0,0,0,0,0.06,0.21,0.4,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_L_SMILE=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0.29,0.77,1.09,1.2,1.2,1.2,0.99,0.64,0.32,0.09,0,0.08,0.26,0.5,0.74,0.92,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0.21,0.56,0.88,1.11,1.2,1.2,1.196,1.18,1.15,1.09,1,0.74,0.47,0.23,0.06,0,0,0,0,0.06,0.21,0.4,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_R_SMILE=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.987,0.997,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.017,-0.06,-0.11,-0.16,-0.2,-0.22,-0.23,-0.225,-0.215,-0.2,-0.185,-0.175,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.151,-0.1,-0.03,0.06,0.16,0.26,0.37,0.47,0.57,0.65,0.72,0.78,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83\r\r\nPARAM_EYE_BALL_Y=0,-0.016,-0.06,-0.12,-0.19,-0.27,-0.34,-0.4,-0.44,-0.46,-0.42,-0.32,-0.21,-0.09,0,0.06,0.08,0.061,0.02,-0.05,-0.11,-0.15,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.171,-0.173,-0.176,-0.179,-0.183,-0.187,-0.192,-0.196,-0.199,-0.203,-0.206,-0.208,-0.209,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21\r\r\nPARAM_EYE_BALL_FORM=0,-0.014,-0.05,-0.11,-0.17,-0.24,-0.3,-0.36,-0.4,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.38,-0.3,-0.21,-0.11,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0.01,0.04,0.07,0.12,0.16,0.21,0.24,0.27,0.28,0.259,0.21,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0.01,0.04,0.07,0.12,0.16,0.21,0.24,0.27,0.28,0.259,0.21,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,0.012,0.05,0.1,0.16,0.22,0.29,0.36,0.42,0.47,0.51,0.53,0.545,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.531,0.48,0.41,0.33,0.23,0.13,0.03,-0.07,-0.17,-0.25,-0.32,-0.37,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42\r\r\nPARAM_BROW_R_ANGLE=0,0.011,0.04,0.09,0.14,0.2,0.27,0.34,0.4,0.45,0.5,0.52,0.54,0.548,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.532,0.48,0.42,0.33,0.24,0.14,0.04,-0.06,-0.15,-0.23,-0.3,-0.35,-0.39,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4\r\r\nPARAM_BROW_L_FORM=0,0.03,0.1,0.2,0.32,0.45,0.57,0.67,0.74,0.77,0.68,0.47,0.21,-0.05,-0.26,-0.39,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43\r\r\nPARAM_BROW_R_FORM=0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.89,0.64,0.33,0.02,-0.22,-0.38,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43\r\r\nPARAM_MOUTH_FORM=1,0.97,0.89,0.78,0.65,0.49,0.34,0.17,0.02,-0.13,-0.26,-0.37,-0.46,-0.51,-0.53,-0.5,-0.44,-0.36,-0.28,-0.21,-0.15,-0.11,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09\r\r\nPARAM_MOUTH_OPEN_Y=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.96,0.93,0.88,0.82,0.77,0.71,0.66,0.61,0.56,0.53,0.5,0.477,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.34,-0.71,-1.15,-1.65,-2.17,-2.7,-3.21,-3.69,-4.12,-4.47,-4.76,-4.94,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BODY_ANGLE_Y=-10,-10,-10,-10,-10,-10,-5.16,2.78,8.23,10,9.12,6.97,4.35,1.8,-0.26,-1.56,-2,-1.97,-1.9,-1.79,-1.65,-1.48,-1.29,-1.1,-0.9,-0.71,-0.52,-0.35,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.03,-0.13,-0.26,-0.42,-0.58,-0.74,-0.87,-0.97,-1,-0.993,-0.975,-0.94,-0.91,-0.86,-0.8,-0.74,-0.68,-0.61,-0.54,-0.47,-0.41,-0.34,-0.28,-0.22,-0.17,-0.12,-0.08,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.51,-0.69,-0.88,-1.07,-1.26,-1.43,-1.59,-1.73,-1.84,-1.93,-1.98,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_ARM_L=-4,-3.95,-3.68,-3.15,-2.28,-1,1.09,3.45,5.86,7.97,9.43,10,9.55,8.35,6.62,4.56,2.44,0.38,-1.35,-2.55,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=5,4.64,4.07,3.54,3.15,3,3.53,4.8,6.5,8.2,9.47,10,9.55,8.35,6.62,4.56,2.44,0.38,-1.35,-2.55,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.89,0.62,0.27,-0.08,-0.35,-0.46,-0.38,-0.25,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_tap_bust_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\n$fadein:PARAM_EYE_L_OPEN=0\r\r\n$fadein:PARAM_EYE_L_SMILE=0\r\r\n$fadein:PARAM_EYE_R_OPEN=0\r\r\n$fadein:PARAM_EYE_R_SMILE=0\r\r\n$fadein:PARAM_EYE_FORM=0\r\r\n$fadein:PARAM_BODY_ANGLE_X=0\r\r\n$fadein:PARAM_BODY_ANGLE_Y=0\r\r\n$fadein:PARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ANGLE_X=0,-0.89,-2.32,-3.66,-4.62,-5,-4.33,-2.91,-1.39,0,2,3.51,4.57,5.29,5.72,5.94,6,5.71,4.99,4.12,3.27,2.58,2.15,2,2.13,2.41,2.77,3.13,3.47,3.75,3.93,4,4,4,4,4,4,4,4,4,4,4,4,4,4.23,4.89,5.91,7.27,8.86,10.66,12.62,14.65,16.73,18.82,20.83,22.72,24.49,26.05,27.41,28.51,29.32,29.83,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_ANGLE_Y=0,-3.22,-8.37,-13.18,-16.65,-18,-6.38,12.67,25.74,30,27.43,21.17,13.52,6.07,0.09,-3.71,-5,-3.6,-0.21,3.94,7.99,11.24,13.3,14,12.16,8.2,3.25,-1.88,-6.57,-10.45,-13.04,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14\r\r\nPARAM_ANGLE_Z=0,-5.36,-13.95,-21.96,-27.75,-30,-26.2,-19.35,-13.6,-10,-5.95,-2.73,-0.19,1.85,3.44,4.67,5.6,6.25,6.69,6.93,7,6.52,5.31,3.67,1.75,-0.24,-2.2,-4.06,-5.62,-6.88,-7.7,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8.03,-8.06,-8.043,-7.93,-7.7,-7.31,-6.76,-6,-4.56,-2.54,-0.04,2.78,5.73,8.74,11.61,14.23,16.52,18.42,19.83,20.7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0.29,0.77,1.09,1.2,1.2,1.2,0.99,0.64,0.32,0.09,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0.02,0.09,0.18,0.28,0.39,0.48,0.57,0.63,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69\r\r\nPARAM_EYE_L_SMILE=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.996,0.984,0.966,0.94,0.91,0.87,0.83,0.79,0.74,0.69,0.64,0.58,0.53,0.47,0.42,0.36,0.31,0.26,0.21,0.17,0.13,0.09,0.06,0.03,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0.29,0.77,1.09,1.2,1.2,1.2,0.99,0.64,0.32,0.09,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0.02,0.09,0.18,0.28,0.39,0.48,0.57,0.63,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69\r\r\nPARAM_EYE_R_SMILE=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.996,0.984,0.966,0.94,0.91,0.87,0.83,0.79,0.74,0.69,0.64,0.58,0.53,0.47,0.42,0.36,0.31,0.26,0.21,0.17,0.13,0.09,0.06,0.03,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0,-0.004,-0.016,-0.034,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.31,-0.36,-0.41,-0.47,-0.52,-0.57,-0.63,-0.68,-0.73,-0.77,-0.82,-0.86,-0.89,-0.92,-0.95,-0.97,-0.987,-0.997,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.017,-0.06,-0.11,-0.16,-0.2,-0.22,-0.23,-0.219,-0.19,-0.16,-0.13,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.095,-0.109,-0.13,-0.16,-0.19,-0.23,-0.27,-0.32,-0.36,-0.4,-0.45,-0.49,-0.52,-0.56,-0.59,-0.61,-0.626,-0.636,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\r\r\nPARAM_EYE_BALL_Y=0,-0.016,-0.06,-0.12,-0.19,-0.27,-0.34,-0.4,-0.44,-0.46,-0.443,-0.39,-0.32,-0.23,-0.13,-0.03,0.08,0.21,0.3,0.38,0.42,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.456,0.444,0.426,0.4,0.37,0.34,0.31,0.27,0.23,0.2,0.16,0.13,0.1,0.07,0.05,0.026,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0,-0.014,-0.05,-0.11,-0.17,-0.24,-0.3,-0.36,-0.4,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.38,-0.3,-0.21,-0.11,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0.01,0.04,0.07,0.12,0.16,0.21,0.24,0.27,0.28,0.276,0.261,0.23,0.19,0.14,0.07,0,-0.1,-0.21,-0.3,-0.38,-0.43,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45\r\r\nPARAM_BROW_R_Y=0,0.01,0.04,0.07,0.12,0.16,0.21,0.24,0.27,0.28,0.276,0.262,0.23,0.19,0.14,0.08,0,-0.11,-0.21,-0.31,-0.39,-0.45,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.43,0.33,0.19,0.02,-0.16,-0.34,-0.51,-0.69,-0.82,-0.91,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_ANGLE=0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.41,0.3,0.15,-0.03,-0.21,-0.39,-0.55,-0.72,-0.84,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_L_FORM=0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.68,0.47,0.21,-0.05,-0.26,-0.39,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43\r\r\nPARAM_BROW_R_FORM=0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.89,0.64,0.33,0.02,-0.22,-0.38,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43\r\r\nPARAM_MOUTH_FORM=1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-0.95,-0.86,-0.75,-0.64,-0.53,-0.38,-0.29,-0.21,-0.16,-0.13,-0.11,-0.094,-0.09,-0.12,-0.21,-0.33,-0.47,-0.62,-0.76,-0.88,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.16,0.25,0.35,0.44,0.52,0.58,0.62,0.63,0.58,0.47,0.32,0.16,0.05,0,0.08,0.26,0.5,0.74,0.92,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0.09,0.22,0.35,0.44,0.48,0.478,0.473,0.464,0.452,0.438,0.422,0.403,0.383,0.36,0.34,0.32,0.29,0.27,0.24,0.22,0.19,0.17,0.15,0.13,0.1,0.085,0.066,0.05,0.036,0.023,0.013,0.006,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.013,-0.05,-0.11,-0.19,-0.28,-0.39,-0.52,-0.64,-0.78,-0.91,-1.05,-1.19,-1.32,-1.45,-1.56,-1.67,-1.76,-1.85,-1.91,-1.96,-1.99,-2,-1.52,-0.72,-0.18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.13,0.48,1.04,1.75,2.6,3.53,4.5,5.5,6.47,7.4,8.25,8.96,9.52,9.87,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_BODY_ANGLE_Y=-10,-10,-10,-10,-10,-10,-5.16,2.78,8.23,10,9.12,6.97,4.35,1.8,-0.26,-1.56,-2,-1.59,-0.5,1.06,2.85,4.7,6.43,7.91,9.04,9.75,10,8.21,5.35,2.68,0.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.39,1.24,2.3,3.4,4.41,5.24,5.79,6,5.56,4.49,3.18,1.9,0.87,0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,-0.006,-0.03,-0.07,-0.15,-0.28,-0.45,-0.69,-1,-1.36,-1.72,-2.08,-2.43,-2.77,-3.09,-3.42,-3.72,-4.01,-4.29,-4.55,-4.79,-5.01,-5.21,-5.39,-5.55,-5.69,-5.8,-5.89,-5.95,-5.99,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.9,-5.73,-5.46,-5.07,-4.54,-3.86,-3,-1.47,0.38,2.21,3.81,5.02,5.76,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_ARM_L=-4,-3.95,-3.68,-3.15,-2.28,-1,1.09,3.45,5.86,7.97,9.43,10,9.55,8.35,6.62,4.56,2.44,0.38,-1.35,-2.55,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.26,-1.87,-2.56,-3.32,-4.1,-4.9,-5.7,-6.47,-7.2,-7.88,-8.48,-9,-9.43,-9.74,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_R=5,4.64,4.07,3.54,3.15,3,3.53,4.8,6.5,8.2,9.47,10,9.55,8.35,6.62,4.56,2.44,0.38,-1.35,-2.55,-3,-2.21,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.26,-1.87,-2.56,-3.32,-4.1,-4.9,-5.7,-6.47,-7.2,-7.88,-8.48,-9,-9.43,-9.74,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,0.89,0.62,0.27,-0.08,-0.35,-0.46,-0.38,-0.25,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/motions/murakumo_tap_ear_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=500\r\n\r\n$fadeout=300\r\n\r\nPARAM_ANGLE_X=0,-0.17,-1.65,-6,-15.26,-23.14,-27.65,-29,-24.66,-14.11,-1.23,11.33,21.42,27.83,30,25.49,14.55,0,-14.55,-25.49,-30,-25.59,-14.86,-1.76,11.02,21.28,27.79,30,27.93,22.4,14.39,4.9,-4.9,-14.39,-22.4,-27.93,-30,-29.07,-26.64,-23.12,-19.1,-14.92,-11.03,-7.7,-5.16,-3.56,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_ANGLE_Y=0,1.58,4.42,6,0.67,-8.06,-14.05,-16,-15.78,-15.24,-14.59,-13.95,-13.44,-13.11,-13,-13.38,-14.29,-15.5,-16.71,-17.62,-18,-17.63,-16.74,-15.65,-14.58,-13.73,-13.18,-13,-13.17,-13.63,-14.3,-15.09,-15.91,-16.7,-17.37,-17.83,-18,-17.86,-17.5,-16.98,-16.38,-15.77,-15.19,-14.7,-14.32,-14.08,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14\r\r\nPARAM_ANGLE_Z=0,-1.18,-3.73,-6.91,-10.21,-13.22,-15.72,-17.38,-18,-15.35,-8.92,-1.05,6.61,12.77,16.68,18,15.29,8.73,0,-8.73,-15.29,-18,-15.35,-8.92,-1.05,6.61,12.77,16.68,18,16.76,13.44,8.64,2.94,-2.94,-8.64,-13.44,-16.76,-18,-17.32,-15.5,-12.76,-9.33,-5.53,-1.5,2.46,6.17,9.44,12.2,14.27,15.56,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\r\r\nPARAM_EYE_L_OPEN=1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.21,0.33,0.47,0.59,0.7,0.77,0.8,0.8,0.8,0.8,0.8,0.8,0.59,0.21,0,0,0,0.19,0.51,0.73,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_L_SMILE=0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.21,0.33,0.47,0.59,0.7,0.77,0.8,0.8,0.8,0.8,0.8,0.8,0.59,0.21,0,0,0,0.19,0.51,0.73,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_EYE_R_SMILE=0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0.001,0.002,0.004,0.005,0.007,0.009,0.012,0.015,0.018,0.021,0.025,0.029,0.033,0.038,0.043,0.048,0.054,0.06,0.066,0.073,0.08,0.087,0.094,0.102,0.111,0.119,0.128,0.137,0.147,0.157,0.167,0.178,0.188,0.2,0.211,0.223,0.235,0.248,0.261,0.274,0.287,0.301,0.315,0.33,0.347,0.364,0.381,0.396,0.409,0.42,0.429,0.435,0.439,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.004,0.01,0.017,0.026,0.036,0.049,0.063,0.078,0.095,0.112,0.131,0.151,0.17,0.19,0.22,0.24,0.26,0.29,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.48,0.5,0.53,0.55,0.57,0.59,0.611,0.63,0.647,0.664,0.679,0.693,0.706,0.717,0.727,0.735,0.742,0.746,0.749,0.75,0.74,0.71,0.68,0.63,0.59,0.55,0.51,0.48,0.466,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0,-0.02,-0.07,-0.13,-0.18,-0.23,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27\r\r\nPARAM_BROW_R_Y=0,-0.03,-0.1,-0.18,-0.26,-0.32,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_BROW_L_X=0,-0.03,-0.11,-0.21,-0.3,-0.38,-0.42,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44\r\r\nPARAM_BROW_R_X=0,-0.03,-0.1,-0.19,-0.27,-0.34,-0.39,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4\r\r\nPARAM_BROW_L_ANGLE=0,-0.04,-0.13,-0.24,-0.35,-0.44,-0.49,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51\r\r\nPARAM_BROW_R_ANGLE=0,-0.05,-0.18,-0.34,-0.49,-0.62,-0.69,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72\r\r\nPARAM_BROW_L_FORM=0,-0.04,-0.14,-0.27,-0.39,-0.49,-0.55,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57\r\r\nPARAM_BROW_R_FORM=0,-0.04,-0.14,-0.27,-0.39,-0.49,-0.55,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57\r\r\nPARAM_MOUTH_FORM=1,0.85,0.5,0.06,-0.37,-0.71,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=0,0.02,0.07,0.13,0.2,0.26,0.31,0.35,0.39,0.42,0.46,0.49,0.52,0.55,0.58,0.61,0.64,0.66,0.69,0.71,0.73,0.75,0.78,0.795,0.814,0.831,0.848,0.864,0.878,0.892,0.905,0.917,0.928,0.939,0.948,0.957,0.964,0.971,0.978,0.983,0.988,0.991,0.995,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_X=0,-0.29,-1.01,-1.88,-2.73,-3.42,-3.85,-4,-3.41,-1.98,-0.23,1.47,2.84,3.71,4,3.4,1.94,0,-1.94,-3.4,-4,-3.41,-1.98,-0.23,1.47,2.84,3.71,4,3.72,2.99,1.92,0.65,-0.65,-1.92,-2.99,-3.72,-4,-3.83,-3.38,-2.73,-1.98,-1.21,-0.49,0.13,0.6,0.9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0,2.63,7.37,10,6.61,1.05,-2.76,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.86,-3.5,-2.98,-2.38,-1.77,-1.19,-0.7,-0.32,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.2,-0.62,-1.15,-1.7,-2.2,-2.62,-2.9,-3,-2.63,-1.74,-0.65,0.42,1.27,1.82,2,1.62,0.71,-0.5,-1.71,-2.62,-3,-2.63,-1.74,-0.65,0.42,1.27,1.82,2,1.83,1.37,0.7,-0.09,-0.91,-1.7,-2.37,-2.83,-3,-2.81,-2.32,-1.67,-0.9,-0.11,0.68,1.42,2.05,2.55,2.88,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_ARM_L=-4\r\r\nPARAM_ARM_R=5\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_ACCESSORY_X=0\r\r\nPARAM_ACCESSORY_Y=0\r\r\nPARAM_ACCESSORY_Z=0\r\r\nPARAM_BUST_Y=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.1,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.2\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.25,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.3\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.35,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.35\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"accessory_x\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ACCESSORY_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"bust_y\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.05,\n\t\t\t\t\"regist\":0.4,\n\t\t\t\t\"mass\":0.07\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Y\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.001,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.001,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ACCESSORY_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.001,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BUST_Y\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/KantaiCollection/murakumo/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/index.json",
    "content": "{\n\t\"version\":\"1.0.0\",\n\t\"model\":\"model.moc\",\n    \"textures\":[\n        \"textures/default-costume.png\"\n    ],\n    \"layout\":{\n\t\t\"center_x\":0.0,\n\t\t\"center_y\":-0.05,\n\t\t\"width\":2.4\n\t},\n\t\"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n\t\"motions\":{\n\t\t\"idle\":[\n\t\t\t{\"file\":\"motions/Breath1.mtn\"},\n\t\t\t{\"file\":\"motions/Breath2.mtn\"},\n\t\t\t{\"file\":\"motions/Breath3.mtn\"},\n\t\t\t{\"file\":\"motions/Breath5.mtn\"},\n\t\t\t{\"file\":\"motions/Breath7.mtn\"},\n\t\t\t{\"file\":\"motions/Breath8.mtn\"}\n\t\t],\n\t\t\"sleepy\":[\n\t\t\t{\"file\":\"motions/Sleeping.mtn\"}\n\t\t],\n\t\t\"flick_head\":[\n\t\t\t{\"file\":\"motions/Touch Dere1.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere2.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere4.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere5.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere6.mtn\"}\n\t\t],\n\t\t\"tap_body\":[\n\t\t\t{\"file\":\"motions/Sukebei1.mtn\"},\n\t\t\t{\"file\":\"motions/Sukebei2.mtn\"},\n\t\t\t{\"file\":\"motions/Sukebei3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch1.mtn\"},\n\t\t\t{\"file\":\"motions/Touch2.mtn\"},\n\t\t\t{\"file\":\"motions/Touch3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch4.mtn\"},\n\t\t\t{\"file\":\"motions/Touch5.mtn\"},\n\t\t\t{\"file\":\"motions/Touch6.mtn\"}\n\t\t]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath Dere1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.52,9.23,7.36,5.14,2.86,0.64,-1.23,-2.52,-3,-2.94,-2.78,-2.54,-2.24,-1.9,-1.54,-1.19,-0.87,-0.58,-0.34,-0.15,-0.04,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.02,0.09,0.21,0.4,0.66,0.99,1.39,1.86,2.39,3,3.77,4.55,5.31,6.03,6.66,7.21,7.63,7.9,8,7.84,7.41,6.77,5.96,5.07,4.12,3.18,2.31,1.54,0.89,0.41,0.1,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.14,7.83,4.5,0.54,-3.54,-7.5,-10.83,-13.14,-14,-13.72,-12.97,-11.84,-10.43,-8.87,-7.21,-5.57,-4.05,-2.7,-1.57,-0.71,-0.18,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.48,0.37,0.27,0.2,0.17,0.17,0.17,0.17,0.172,0.176,0.182,0.19,0.22,0.28,0.34,0.4,0.46,0.51,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.89,0.83,0.75,0.66,0.6,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.59,0.64,0.7,0.77,0.83,0.88,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.76,2.11,1.18,0.07,-1.07,-2.18,-3.11,-3.76,-4,-3.88,-3.56,-3.08,-2.47,-1.8,-1.09,-0.39,0.26,0.84,1.33,1.69,1.92,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.01,-0.03,-0.07,-0.11,-0.16,-0.2,-0.23,-0.26,-0.274,-0.28,-0.262,-0.21,-0.14,-0.06,0.02,0.1,0.17,0.22,0.24,0.233,0.216,0.19,0.16,0.12,0.08,0.04,0.01,-0.03,-0.05,-0.073,-0.086,-0.09,-0.084,-0.071,-0.055,-0.039,-0.024,-0.011,-0.003,0\r\r\nPARAM_BREATH=0.5,0.46,0.41,0.35,0.32,0.3,0.34,0.43,0.53,0.65,0.75,0.83,0.89,0.91,0.905,0.891,0.87,0.84,0.81,0.77,0.73,0.69,0.65,0.6,0.56,0.52,0.48,0.45,0.42,0.4,0.384,0.374,0.37,0.379,0.397,0.42,0.44,0.47,0.484,0.496,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0,0,0,0,0,0,0.03,0.11,0.21,0.3,0.38,0.41,0.37,0.26,0.12,-0.05,-0.22,-0.39,-0.56,-0.69,-0.8,-0.87,-0.9,-0.81,-0.58,-0.27,0.04,0.27,0.36,0.33,0.24,0.13,0.02,-0.07,-0.1,-0.082,-0.05,-0.03,-0.008,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.14,-0.18,-0.21,-0.25,-0.29,-0.32,-0.35,-0.37,-0.386,-0.396,-0.4,-0.37,-0.28,-0.15,0.01,0.16,0.32,0.45,0.54,0.57,0.52,0.4,0.26,0.12,-0.02,-0.13,-0.2,-0.23,-0.213,-0.17,-0.12,-0.07,-0.03,-0.01,0\r\r\nPARAM_HAIR_SIDE_L=0,0.003,0.013,0.028,0.047,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.234,0.249,0.26,0.268,0.27,0.23,0.14,0,-0.16,-0.33,-0.49,-0.63,-0.72,-0.76,-0.69,-0.53,-0.33,-0.13,0.06,0.21,0.31,0.35,0.32,0.26,0.19,0.11,0.05,0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,-0.018,-0.06,-0.13,-0.21,-0.29,-0.37,-0.43,-0.48,-0.51,-0.52,-0.48,-0.38,-0.25,-0.09,0.07,0.23,0.38,0.51,0.61,0.68,0.7,0.66,0.55,0.39,0.2,0,-0.19,-0.35,-0.46,-0.5,-0.483,-0.44,-0.37,-0.3,-0.22,-0.15,-0.09,-0.04,-0.01,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath Dere2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.35,1.29,2.74,4.53,6.6,8.86,11.27,13.67,16.13,18.44,20.64,22.67,24.45,25.92,27.04,27.75,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27.65,26.71,25.26,23.47,21.4,19.14,16.73,14.33,11.87,9.56,7.36,5.33,3.55,2.08,0.96,0.25,0\r\r\nPARAM_ANGLE_Y=0,-0.18,-0.65,-1.37,-2.26,-3.3,-4.43,-5.63,-6.84,-8.06,-9.22,-10.32,-11.33,-12.23,-12.96,-13.52,-13.87,-14,-13.995,-13.982,-13.96,-13.93,-13.89,-13.83,-13.77,-13.7,-13.62,-13.53,-13.42,-13.31,-13.19,-13.05,-12.91,-12.75,-12.58,-12.4,-12.2,-12,-11.78,-11.55,-11.31,-11.05,-10.79,-10.5,-10.21,-9.9,-9.57,-9.24,-8.89,-8.52,-8.14,-7.74,-7.33,-6.9,-6.45,-6,-5.45,-4.92,-4.39,-3.88,-3.38,-2.91,-2.45,-2.04,-1.64,-1.28,-0.97,-0.68,-0.45,-0.26,-0.12,-0.03,0\r\r\nPARAM_ANGLE_Z=0,0.09,0.32,0.68,1.13,1.65,2.21,2.82,3.42,4.03,4.61,5.16,5.67,6.11,6.48,6.76,6.94,7,6.97,6.89,6.77,6.59,6.38,6.13,5.85,5.53,5.18,4.82,4.43,4.01,3.59,3.15,2.69,2.23,1.76,1.3,0.82,0.35,-0.11,-0.57,-1.01,-1.45,-1.87,-2.28,-2.66,-3.03,-3.38,-3.69,-3.98,-4.24,-4.46,-4.65,-4.8,-4.91,-4.98,-5,-4.94,-4.77,-4.51,-4.19,-3.82,-3.42,-2.99,-2.56,-2.12,-1.71,-1.31,-0.95,-0.63,-0.37,-0.17,-0.04,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.4,0.24,0.13,0.09,0.17,0.33,0.41,0.33,0.21,0.12,0.09,0.2,0.39,0.5,0.502,0.504,0.505,0.507,0.508,0.509,0.511,0.512,0.513,0.514,0.515,0.516,0.516,0.517,0.52,0.518,0.52,0.52,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.518,0.517,0.515,0.514,0.512,0.51,0.508,0.507,0.505,0.504,0.503,0.501,0.501,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.4,0.24,0.13,0.09,0.17,0.33,0.41,0.33,0.21,0.12,0.09,0.2,0.39,0.5,0.502,0.504,0.505,0.507,0.508,0.509,0.511,0.512,0.513,0.514,0.515,0.516,0.516,0.517,0.52,0.518,0.52,0.52,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.518,0.517,0.515,0.514,0.512,0.51,0.508,0.507,0.505,0.504,0.503,0.501,0.501,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0,0.004,0.016,0.033,0.06,0.08,0.11,0.14,0.17,0.2,0.22,0.25,0.28,0.3,0.315,0.328,0.337,0.34,0.332,0.31,0.28,0.24,0.19,0.15,0.1,0.06,0.02,-0.02,-0.05,-0.08,-0.094,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.099,-0.095,-0.09,-0.084,-0.076,-0.068,-0.06,-0.051,-0.042,-0.034,-0.026,-0.019,-0.013,-0.007,-0.003,-0.001,0\r\r\nPARAM_EYE_BALL_Y=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.13,-0.17,-0.21,-0.24,-0.28,-0.31,-0.34,-0.37,-0.39,-0.406,-0.416,-0.42,-0.414,-0.397,-0.37,-0.34,-0.31,-0.27,-0.24,-0.2,-0.17,-0.14,-0.12,-0.097,-0.084,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.079,-0.076,-0.072,-0.067,-0.061,-0.055,-0.048,-0.041,-0.034,-0.027,-0.021,-0.015,-0.01,-0.006,-0.003,-0.001,0\r\r\nPARAM_BROW_L_Y=0,0,-0.001,-0.003,-0.005,-0.007,-0.01,-0.014,-0.018,-0.022,-0.027,-0.032,-0.038,-0.044,-0.05,-0.056,-0.063,-0.07,-0.077,-0.085,-0.093,-0.1,-0.108,-0.116,-0.124,-0.133,-0.141,-0.149,-0.157,-0.165,-0.174,-0.182,-0.19,-0.197,-0.205,-0.213,-0.22,-0.227,-0.234,-0.241,-0.247,-0.254,-0.259,-0.265,-0.27,-0.275,-0.28,-0.284,-0.287,-0.291,-0.293,-0.296,-0.298,-0.299,-0.3,-0.3,-0.296,-0.286,-0.271,-0.251,-0.23,-0.21,-0.18,-0.15,-0.13,-0.1,-0.08,-0.06,-0.038,-0.022,-0.01,-0.003,0\r\r\nPARAM_BROW_R_Y=0,0,-0.001,-0.003,-0.005,-0.008,-0.012,-0.016,-0.02,-0.025,-0.031,-0.037,-0.043,-0.05,-0.057,-0.064,-0.072,-0.08,-0.088,-0.096,-0.105,-0.114,-0.123,-0.132,-0.141,-0.15,-0.16,-0.169,-0.178,-0.187,-0.197,-0.206,-0.215,-0.224,-0.232,-0.241,-0.249,-0.257,-0.265,-0.273,-0.28,-0.287,-0.294,-0.3,-0.306,-0.312,-0.317,-0.322,-0.326,-0.329,-0.333,-0.335,-0.337,-0.339,-0.34,-0.34,-0.336,-0.324,-0.307,-0.28,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.06,-0.04,-0.025,-0.012,-0.003,0\r\r\nPARAM_BROW_L_ANGLE=0,0.001,0.004,0.009,0.016,0.024,0.034,0.046,0.059,0.074,0.09,0.107,0.126,0.146,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.39,0.41,0.44,0.47,0.5,0.52,0.55,0.58,0.61,0.63,0.66,0.68,0.71,0.73,0.76,0.78,0.8,0.82,0.85,0.865,0.883,0.901,0.917,0.932,0.946,0.958,0.969,0.978,0.986,0.992,0.996,0.999,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0\r\r\nPARAM_BROW_R_ANGLE=0,0.001,0.004,0.009,0.016,0.024,0.034,0.046,0.059,0.074,0.09,0.107,0.126,0.146,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.39,0.41,0.44,0.47,0.5,0.52,0.55,0.58,0.61,0.63,0.66,0.68,0.71,0.73,0.76,0.78,0.8,0.82,0.85,0.865,0.883,0.901,0.917,0.932,0.946,0.958,0.969,0.978,0.986,0.992,0.996,0.999,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0\r\r\nPARAM_EAR_DEFORM=0,-0.007,-0.026,-0.05,-0.09,-0.13,-0.18,-0.23,-0.27,-0.32,-0.37,-0.41,-0.45,-0.49,-0.52,-0.54,-0.555,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.553,-0.534,-0.51,-0.47,-0.43,-0.38,-0.33,-0.29,-0.24,-0.19,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.505,0.518,0.54,0.56,0.59,0.63,0.66,0.7,0.73,0.76,0.79,0.82,0.85,0.87,0.886,0.896,0.9,0.895,0.881,0.86,0.84,0.81,0.78,0.75,0.72,0.69,0.67,0.649,0.634,0.624,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.618,0.614,0.608,0.601,0.592,0.582,0.572,0.561,0.551,0.541,0.532,0.523,0.515,0.509,0.504,0.501,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.84,-0.76,-0.68,-0.6,-0.51,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.505,0.517,0.535,0.56,0.58,0.61,0.64,0.68,0.71,0.74,0.77,0.79,0.81,0.833,0.848,0.857,0.86,0.859,0.855,0.849,0.842,0.832,0.821,0.808,0.794,0.778,0.762,0.744,0.725,0.706,0.687,0.666,0.65,0.62,0.6,0.58,0.56,0.54,0.52,0.499,0.48,0.461,0.443,0.425,0.409,0.393,0.379,0.366,0.354,0.344,0.336,0.329,0.324,0.321,0.32,0.322,0.328,0.338,0.349,0.362,0.377,0.392,0.408,0.424,0.439,0.453,0.466,0.477,0.487,0.494,0.498,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0,0.006,0.023,0.05,0.08,0.13,0.17,0.22,0.28,0.34,0.39,0.45,0.5,0.54,0.59,0.62,0.65,0.664,0.67,0.67,0.67,0.67,0.669,0.668,0.666,0.665,0.663,0.661,0.659,0.656,0.653,0.65,0.646,0.642,0.637,0.632,0.627,0.621,0.614,0.607,0.6,0.592,0.583,0.574,0.565,0.555,0.544,0.533,0.521,0.508,0.495,0.481,0.467,0.452,0.436,0.42,0.4,0.37,0.34,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.06,0.04,0.024,0.011,0.003,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath Dere3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.007,0.03,0.06,0.11,0.17,0.24,0.32,0.42,0.52,0.63,0.75,0.87,1.01,1.15,1.29,1.44,1.59,1.75,1.91,2.07,2.23,2.4,2.56,2.72,2.89,3.05,3.21,3.36,3.51,3.66,3.8,3.94,4.07,4.2,4.32,4.43,4.53,4.62,4.71,4.78,4.85,4.9,4.94,4.97,4.993,5,4.94,4.76,4.48,4.13,3.72,3.27,2.8,2.32,1.86,1.42,1.02,0.67,0.39,0.18,0.04,0\r\r\nPARAM_ANGLE_Y=0,-0.015,-0.06,-0.13,-0.22,-0.34,-0.49,-0.65,-0.84,-1.04,-1.26,-1.5,-1.75,-2.02,-2.29,-2.58,-2.88,-3.18,-3.5,-3.82,-4.14,-4.47,-4.79,-5.12,-5.45,-5.77,-6.1,-6.41,-6.73,-7.03,-7.32,-7.6,-7.88,-8.15,-8.4,-8.63,-8.85,-9.06,-9.24,-9.42,-9.56,-9.69,-9.8,-9.89,-9.95,-9.99,-10,-9.87,-9.52,-8.97,-8.26,-7.44,-6.53,-5.6,-4.65,-3.72,-2.84,-2.05,-1.35,-0.78,-0.36,-0.09,0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.28,-0.59,-0.97,-1.41,-1.9,-2.41,-2.93,-3.46,-3.95,-4.42,-4.86,-5.24,-5.55,-5.79,-5.95,-6,-5.84,-5.38,-4.66,-3.72,-2.61,-1.34,0.04,1.5,3,4.5,5.96,7.34,8.61,9.72,10.66,11.38,11.84,12,11.95,11.81,11.59,11.29,10.91,10.49,10,9.46,8.89,8.29,7.65,7,6.33,5.67,5,4.35,3.71,3.11,2.54,2,1.51,1.09,0.71,0.41,0.19,0.05,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.58,0.64,0.72,0.8,0.87,0.91,0.92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.58,0.64,0.72,0.8,0.87,0.91,0.92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-0.999,-0.994,-0.986,-0.976,-0.962,-0.947,-0.93,0.83,0.81,0.75,0.68,0.58,0.48,0.38,0.3,0.24,0.21,0.2,0.19,0.182,0.173,0.166,0.159,0.152,0.146,0.141,0.136,0.131,0.127,0.123,0.12,0.117,0.114,0.112,0.109,0.108,0.106,0.105,0.103,0.102,0.102,0.101,0.1,0.1,0.1,0.1,0.23,0.44,0.63,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-0.999,-0.996,-0.99,-0.983,-0.973,-0.962,-0.95,0.82,0.8,0.75,0.67,0.57,0.48,0.38,0.3,0.24,0.21,0.2,0.19,0.182,0.173,0.166,0.159,0.152,0.147,0.141,0.136,0.131,0.127,0.123,0.12,0.117,0.114,0.112,0.109,0.108,0.106,0.105,0.103,0.102,0.102,0.101,0.1,0.1,0.1,0.1,0.23,0.45,0.65,0.79,0.85,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.002,-0.003,-0.005,-0.007,-0.009,-0.011,-0.013,-0.015,-0.018,-0.02,-0.022,-0.024,-0.026,-0.028,-0.03,-0.032,-0.034,-0.035,-0.037,-0.038,-0.039,-0.04,-0.042,-0.043,-0.043,-0.044,-0.045,-0.05,-0.046,-0.05,-0.047,-0.05,-0.048,-0.05,-0.05,-0.049,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.049,-0.048,-0.045,-0.041,-0.037,-0.033,-0.028,-0.023,-0.019,-0.014,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.004,0.013,0.028,0.047,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.23,0.253,0.268,0.28,0.287,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.289,0.29,0.29,0.287,0.287,0.286,0.285,0.284,0.283,0.281,0.28,0.278,0.276,0.274,0.272,0.269,0.267,0.264,0.261,0.257,0.254,0.25,0.243,0.231,0.216,0.197,0.18,0.15,0.13,0.11,0.09,0.07,0.047,0.031,0.018,0.008,0.002,0\r\r\nPARAM_BROW_L_Y=0,-0.018,-0.06,-0.11,-0.16,-0.21,-0.23,-0.24,-0.238,-0.231,-0.222,-0.212,-0.201,-0.191,-0.182,-0.176,-0.171,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.162,-0.152,-0.14,-0.126,-0.111,-0.095,-0.079,-0.063,-0.048,-0.035,-0.023,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_R_Y=0,-0.018,-0.06,-0.11,-0.16,-0.21,-0.23,-0.24,-0.238,-0.231,-0.222,-0.212,-0.201,-0.191,-0.182,-0.176,-0.171,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.162,-0.152,-0.14,-0.126,-0.111,-0.095,-0.079,-0.063,-0.048,-0.035,-0.023,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_ANGLE=0.2,0.202,0.207,0.218,0.232,0.251,0.27,0.3,0.34,0.37,0.41,0.43,0.46,0.477,0.492,0.502,0.508,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.506,0.495,0.478,0.46,0.43,0.4,0.37,0.34,0.32,0.29,0.26,0.24,0.224,0.211,0.203,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.904,0.87,0.82,0.76,0.73,0.71,0.726,0.77,0.81,0.86,0.9,0.92,0.93,0.9,0.85,0.8,0.76,0.75,0.763,0.79,0.84,0.88,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.003,0.012,0.027,0.047,0.07,0.1,0.13,0.16,0.2,0.24,0.28,0.32,0.36,0.4,0.44,0.48,0.52,0.56,0.6,0.63,0.67,0.7,0.73,0.75,0.77,0.787,0.8,0.807,0.81,0.808,0.801,0.791,0.777,0.76,0.74,0.72,0.69,0.66,0.63,0.6,0.57,0.53,0.5,0.46,0.42,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.07,0.05,0.033,0.019,0.009,0.002,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.003,-0.011,-0.023,-0.04,-0.06,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.29,-0.33,-0.37,-0.41,-0.45,-0.49,-0.54,-0.58,-0.62,-0.66,-0.7,-0.74,-0.78,-0.81,-0.84,-0.87,-0.9,-0.93,-0.95,-0.966,-0.98,-0.991,-0.998,-1,-0.996,-0.984,-0.966,-0.94,-0.91,-0.87,-0.83,-0.79,-0.74,-0.69,-0.64,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,0,0.002,0.003,0.006,0.009,0.013,0.017,0.021,0.026,0.032,0.037,0.043,0.049,0.055,0.061,0.068,0.074,0.081,0.087,0.093,0.099,0.105,0.111,0.116,0.122,0.126,0.131,0.135,0.139,0.142,0.145,0.147,0.149,0.15,0.15,0.149,0.148,0.145,0.141,0.136,0.131,0.125,0.118,0.111,0.104,0.096,0.087,0.079,0.071,0.063,0.054,0.046,0.039,0.032,0.025,0.019,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_BREATH=0.5,0.506,0.521,0.54,0.57,0.61,0.64,0.68,0.72,0.76,0.8,0.83,0.86,0.89,0.92,0.935,0.946,0.95,0.944,0.927,0.9,0.87,0.83,0.79,0.74,0.69,0.64,0.59,0.54,0.49,0.45,0.41,0.37,0.33,0.31,0.287,0.275,0.27,0.271,0.274,0.28,0.287,0.296,0.306,0.317,0.329,0.342,0.356,0.369,0.383,0.397,0.411,0.424,0.437,0.449,0.46,0.47,0.478,0.486,0.492,0.496,0.499,0.5\r\r\nPARAM_BOING=0,0.002,0.006,0.014,0.023,0.033,0.044,0.056,0.068,0.081,0.092,0.103,0.113,0.122,0.13,0.135,0.139,0.14,0.137,0.128,0.115,0.098,0.079,0.06,0.04,0.01,-0.01,-0.03,-0.052,-0.07,-0.087,-0.101,-0.111,-0.118,-0.12,-0.12,-0.118,-0.116,-0.113,-0.109,-0.105,-0.1,-0.095,-0.089,-0.083,-0.077,-0.07,-0.064,-0.058,-0.051,-0.045,-0.039,-0.033,-0.027,-0.022,-0.017,-0.013,-0.009,-0.006,-0.003,-0.002,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0,-0.002,-0.007,-0.015,-0.024,-0.035,-0.047,-0.06,-0.073,-0.086,-0.099,-0.111,-0.121,-0.131,-0.139,-0.145,-0.149,-0.15,-0.144,-0.129,-0.11,-0.08,-0.04,-0.01,0.03,0.07,0.11,0.15,0.18,0.21,0.24,0.27,0.285,0.296,0.3,0.299,0.295,0.29,0.282,0.273,0.262,0.25,0.237,0.223,0.208,0.192,0.176,0.16,0.144,0.128,0.112,0.097,0.082,0.068,0.055,0.043,0.032,0.023,0.015,0.009,0.004,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.001,0.005,0.011,0.018,0.026,0.035,0.044,0.054,0.063,0.072,0.081,0.089,0.096,0.102,0.106,0.109,0.11,0.1,0.07,0.03,-0.01,-0.07,-0.13,-0.2,-0.27,-0.33,-0.4,-0.46,-0.51,-0.56,-0.6,-0.63,-0.653,-0.66,-0.657,-0.65,-0.637,-0.621,-0.601,-0.58,-0.55,-0.52,-0.49,-0.46,-0.42,-0.39,-0.35,-0.32,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.07,-0.05,-0.033,-0.019,-0.009,-0.002,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.002,0.008,0.018,0.03,0.046,0.064,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.3,0.33,0.35,0.38,0.4,0.42,0.45,0.464,0.48,0.492,0.502,0.508,0.51,0.506,0.494,0.476,0.45,0.42,0.39,0.35,0.3,0.26,0.21,0.16,0.11,0.06,0.01,-0.04,-0.08,-0.13,-0.16,-0.2,-0.23,-0.26,-0.274,-0.286,-0.29,-0.281,-0.26,-0.23,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.002,0.008,0.017,0.03,0.045,0.062,0.082,0.1,0.13,0.15,0.17,0.2,0.22,0.24,0.27,0.29,0.311,0.33,0.347,0.363,0.376,0.386,0.394,0.398,0.4,0.399,0.396,0.392,0.386,0.379,0.37,0.361,0.35,0.338,0.325,0.311,0.297,0.282,0.267,0.251,0.235,0.218,0.202,0.186,0.17,0.154,0.138,0.123,0.108,0.094,0.08,0.068,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5\r\r\nPARAM_EYE_R_OPEN=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.5,0.502,0.504,0.507,0.511,0.515,0.52,0.525,0.531,0.537,0.543,0.55,0.557,0.564,0.571,0.578,0.585,0.591,0.598,0.605,0.611,0.617,0.622,0.628,0.633,0.637,0.641,0.644,0.647,0.648,0.65,0.65,0.65,0.649,0.647,0.645,0.642,0.639,0.635,0.631,0.627,0.622,0.617,0.611,0.605,0.6,0.594,0.587,0.581,0.575,0.569,0.563,0.556,0.55,0.545,0.539,0.533,0.528,0.523,0.519,0.515,0.511,0.508,0.505,0.503,0.501,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0.001,0.003,0.005,0.008,0.011,0.015,0.019,0.023,0.027,0.032,0.037,0.042,0.047,0.052,0.057,0.062,0.067,0.072,0.077,0.081,0.086,0.09,0.094,0.097,0.1,0.103,0.106,0.107,0.109,0.11,0.11,0.11,0.11,0.108,0.106,0.104,0.102,0.099,0.096,0.093,0.089,0.085,0.081,0.077,0.073,0.069,0.064,0.06,0.055,0.05,0.046,0.041,0.037,0.033,0.029,0.025,0.021,0.017,0.014,0.011,0.008,0.006,0.004,0.002,0.001,0,0\r\r\nPARAM_WING_DEFORM=0,0,0,-0.002,-0.003,-0.005,-0.007,-0.009,-0.012,-0.014,-0.017,-0.02,-0.023,-0.026,-0.03,-0.033,-0.036,-0.039,-0.043,-0.046,-0.049,-0.052,-0.055,-0.057,-0.06,-0.062,-0.064,-0.066,-0.067,-0.068,-0.069,-0.07,-0.07,-0.07,-0.07,-0.069,-0.068,-0.066,-0.065,-0.063,-0.061,-0.059,-0.057,-0.054,-0.052,-0.049,-0.046,-0.044,-0.041,-0.038,-0.035,-0.032,-0.029,-0.026,-0.024,-0.021,-0.018,-0.016,-0.013,-0.011,-0.009,-0.007,-0.005,-0.004,-0.002,-0.001,-0.001,0,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5\r\r\nPARAM_EYE_R_OPEN=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.1,-0.21,-0.35,-0.51,-0.69,-0.88,-1.07,-1.26,-1.43,-1.59,-1.73,-1.84,-1.93,-1.98,-2,-1.989,-1.96,-1.91,-1.84,-1.75,-1.65,-1.54,-1.41,-1.27,-1.12,-0.96,-0.8,-0.63,-0.45,-0.27,-0.09,0.09,0.27,0.45,0.63,0.8,0.96,1.12,1.27,1.41,1.54,1.65,1.75,1.84,1.91,1.96,1.99,2,1.982,1.93,1.85,1.75,1.63,1.49,1.34,1.18,1.02,0.86,0.71,0.56,0.42,0.3,0.2,0.11,0.05,0.01,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.5,0.501,0.503,0.505,0.508,0.511,0.515,0.519,0.524,0.529,0.534,0.539,0.545,0.55,0.556,0.562,0.568,0.574,0.58,0.585,0.591,0.596,0.601,0.606,0.611,0.615,0.619,0.622,0.625,0.627,0.629,0.63,0.63,0.63,0.629,0.627,0.625,0.622,0.619,0.615,0.611,0.607,0.603,0.598,0.593,0.588,0.582,0.577,0.571,0.566,0.56,0.555,0.549,0.544,0.539,0.534,0.529,0.525,0.52,0.516,0.513,0.51,0.507,0.504,0.503,0.501,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0,0.002,0.004,0.006,0.008,0.01,0.013,0.016,0.02,0.023,0.027,0.031,0.035,0.039,0.043,0.047,0.051,0.055,0.059,0.063,0.067,0.07,0.074,0.077,0.08,0.082,0.084,0.086,0.088,0.089,0.09,0.09,0.09,0.09,0.088,0.086,0.085,0.082,0.08,0.077,0.074,0.071,0.068,0.064,0.061,0.057,0.053,0.049,0.045,0.042,0.038,0.034,0.03,0.027,0.023,0.02,0.017,0.014,0.011,0.009,0.007,0.005,0.003,0.002,0.001,0,0\r\r\nPARAM_WING_DEFORM=0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.06,-0.22,-0.48,-0.81,-1.22,-1.68,-2.18,-2.71,-3.27,-3.84,-4.43,-5.01,-5.57,-6.13,-6.65,-7.14,-7.58,-7.99,-8.33,-8.61,-8.82,-8.95,-9,-8.96,-8.84,-8.64,-8.38,-8.06,-7.67,-7.22,-6.74,-6.2,-5.61,-5.01,-4.35,-3.68,-2.99,-2.28,-1.56,-0.83,-0.09,0.65,1.37,2.09,2.79,3.48,4.14,4.78,5.39,5.96,6.49,6.99,7.43,7.83,8.17,8.46,8.7,8.86,8.96,9,8.96,8.86,8.7,8.48,8.22,7.91,7.56,7.19,6.79,6.37,5.93,5.48,5.02,4.56,4.1,3.64,3.2,2.76,2.35,1.95,1.59,1.25,0.94,0.67,0.44,0.25,0.11,0.03,0\r\r\nPARAM_ANGLE_Y=0,0.1,0.37,0.81,1.36,2.04,2.8,3.63,4.52,5.46,6.4,7.38,8.34,9.29,10.21,11.08,11.89,12.64,13.31,13.88,14.36,14.71,14.92,15,14.996,14.985,14.965,14.94,14.9,14.86,14.8,14.74,14.67,14.58,14.49,14.39,14.28,14.15,14.02,13.87,13.72,13.55,13.37,13.18,12.97,12.76,12.53,12.29,12.04,11.77,11.5,11.21,10.9,10.58,10.26,9.91,9.56,9.18,8.8,8.41,8,7.53,7.08,6.63,6.19,5.76,5.34,4.93,4.54,4.15,3.78,3.43,3.09,2.76,2.45,2.15,1.87,1.61,1.37,1.14,0.93,0.75,0.58,0.43,0.3,0.19,0.11,0.05,0.01,0\r\r\nPARAM_ANGLE_Z=0,0.002,0.01,0.022,0.038,0.06,0.08,0.11,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.47,0.53,0.59,0.65,0.71,0.78,0.85,0.91,0.98,1.06,1.13,1.2,1.28,1.35,1.43,1.5,1.57,1.65,1.72,1.8,1.87,1.94,2.02,2.09,2.15,2.22,2.29,2.35,2.41,2.47,2.53,2.59,2.64,2.69,2.73,2.78,2.82,2.85,2.89,2.92,2.94,2.96,2.978,2.99,2.998,3,2.988,2.95,2.9,2.83,2.74,2.64,2.52,2.4,2.26,2.12,1.98,1.83,1.67,1.52,1.37,1.21,1.07,0.92,0.78,0.65,0.53,0.42,0.31,0.22,0.15,0.08,0.04,0.01,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.55,0.55,0.554,0.55,0.55,0.55,0.55,0.55,0.555,0.56,0.56,0.56,0.56,0.556,0.56,0.56,0.56,0.557,0.56,0.56,0.56,0.56,0.558,0.56,0.56,0.56,0.559,0.56,0.56,0.56,0.65,0.81,0.92,0.95,0.84,0.66,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.55,0.55,0.554,0.55,0.55,0.55,0.55,0.55,0.555,0.56,0.56,0.56,0.56,0.556,0.56,0.56,0.56,0.557,0.56,0.56,0.56,0.56,0.558,0.56,0.56,0.56,0.559,0.56,0.56,0.56,0.65,0.81,0.92,0.95,0.84,0.66,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.003,-0.01,-0.023,-0.038,-0.057,-0.08,-0.1,-0.13,-0.15,-0.18,-0.21,-0.23,-0.26,-0.29,-0.31,-0.33,-0.35,-0.373,-0.389,-0.402,-0.412,-0.418,-0.42,-0.418,-0.412,-0.403,-0.39,-0.374,-0.355,-0.33,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.09,-0.06,-0.02,0.02,0.05,0.09,0.12,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.36,0.38,0.403,0.42,0.434,0.445,0.453,0.458,0.46,0.458,0.453,0.445,0.433,0.42,0.404,0.387,0.367,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.081,0.064,0.048,0.034,0.022,0.013,0.006,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.004,0.009,0.016,0.024,0.033,0.044,0.056,0.068,0.082,0.096,0.111,0.126,0.142,0.158,0.175,0.191,0.208,0.225,0.241,0.258,0.274,0.29,0.307,0.322,0.338,0.352,0.366,0.379,0.391,0.403,0.414,0.425,0.435,0.445,0.454,0.462,0.47,0.477,0.484,0.49,0.496,0.502,0.507,0.511,0.515,0.519,0.523,0.526,0.528,0.531,0.533,0.535,0.536,0.537,0.538,0.539,0.54,0.54,0.54,0.538,0.532,0.522,0.509,0.493,0.475,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.056,0.04,0.026,0.015,0.007,0.002,0\r\r\nPARAM_BROW_L_Y=0,0.002,0.006,0.013,0.023,0.034,0.047,0.061,0.075,0.091,0.107,0.123,0.139,0.155,0.17,0.185,0.198,0.211,0.222,0.231,0.239,0.245,0.249,0.25,0.25,0.25,0.249,0.247,0.246,0.244,0.242,0.24,0.237,0.235,0.231,0.228,0.225,0.221,0.217,0.213,0.209,0.204,0.2,0.195,0.19,0.185,0.18,0.175,0.17,0.164,0.159,0.153,0.148,0.142,0.136,0.131,0.125,0.119,0.114,0.108,0.102,0.097,0.091,0.086,0.08,0.075,0.07,0.065,0.06,0.055,0.05,0.046,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.015,0.013,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_BROW_R_Y=0,0.002,0.006,0.013,0.023,0.034,0.047,0.061,0.075,0.091,0.107,0.123,0.139,0.155,0.17,0.185,0.198,0.211,0.222,0.231,0.239,0.245,0.249,0.25,0.25,0.25,0.249,0.247,0.246,0.244,0.242,0.24,0.237,0.235,0.231,0.228,0.225,0.221,0.217,0.213,0.209,0.204,0.2,0.195,0.19,0.185,0.18,0.175,0.17,0.164,0.159,0.153,0.148,0.142,0.136,0.131,0.125,0.119,0.114,0.108,0.102,0.097,0.091,0.086,0.08,0.075,0.07,0.065,0.06,0.055,0.05,0.046,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.015,0.013,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.203,0.206,0.21,0.215,0.22,0.227,0.233,0.24,0.247,0.254,0.261,0.268,0.275,0.281,0.287,0.293,0.298,0.302,0.305,0.308,0.309,0.31,0.31,0.31,0.31,0.309,0.31,0.307,0.307,0.306,0.304,0.303,0.302,0.3,0.299,0.297,0.296,0.294,0.292,0.29,0.288,0.286,0.284,0.281,0.279,0.277,0.275,0.272,0.27,0.267,0.265,0.262,0.26,0.257,0.255,0.253,0.25,0.248,0.245,0.243,0.24,0.238,0.235,0.233,0.231,0.229,0.226,0.224,0.222,0.22,0.218,0.216,0.214,0.213,0.211,0.21,0.208,0.207,0.206,0.204,0.203,0.203,0.202,0.2,0.201,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0.001,0,0.002,0.003,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.008,0.01,0.01,0.01,0.01,0.007,0.01,0.01,0.01,0.01,0.006,0.01,0.01,0.01,0.01,0.005,0,0,0,0.004,0,0,0,0,0.003,0,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.9,0.898,0.896,0.894,0.891,0.887,0.882,0.876,0.87,0.84,0.79,0.71,0.63,0.54,0.46,0.4,0.34,0.31,0.3,0.3,0.3,0.3,0.3,0.301,0.3,0.302,0.3,0.304,0.305,0.306,0.307,0.308,0.309,0.311,0.312,0.314,0.316,0.317,0.319,0.321,0.323,0.326,0.328,0.33,0.333,0.336,0.339,0.341,0.344,0.347,0.351,0.354,0.357,0.361,0.365,0.368,0.372,0.376,0.38,0.52,0.76,0.89,0.891,0.89,0.893,0.894,0.894,0.895,0.9,0.896,0.9,0.897,0.9,0.898,0.9,0.9,0.899,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.002,-0.008,-0.017,-0.029,-0.043,-0.06,-0.077,-0.096,-0.116,-0.137,-0.16,-0.18,-0.198,-0.218,-0.236,-0.254,-0.27,-0.284,-0.296,-0.306,-0.314,-0.318,-0.32,-0.319,-0.315,-0.31,-0.302,-0.292,-0.281,-0.268,-0.253,-0.237,-0.22,-0.202,-0.183,-0.163,-0.143,-0.12,-0.1,-0.08,-0.06,-0.04,-0.01,0.007,0.03,0.047,0.067,0.086,0.104,0.12,0.136,0.151,0.164,0.175,0.186,0.194,0.201,0.206,0.209,0.21,0.209,0.207,0.203,0.198,0.192,0.185,0.176,0.168,0.158,0.149,0.138,0.128,0.117,0.106,0.096,0.085,0.075,0.064,0.055,0.046,0.037,0.029,0.022,0.016,0.01,0.006,0.003,0.001,0\r\r\nPARAM_BREATH=0.5,0.502,0.507,0.515,0.524,0.537,0.55,0.565,0.581,0.598,0.615,0.633,0.65,0.667,0.684,0.699,0.714,0.728,0.74,0.75,0.758,0.765,0.769,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.769,0.77,0.768,0.77,0.766,0.766,0.765,0.764,0.763,0.761,0.76,0.758,0.757,0.755,0.753,0.751,0.749,0.746,0.743,0.741,0.738,0.735,0.731,0.728,0.724,0.72,0.715,0.709,0.702,0.694,0.686,0.677,0.668,0.658,0.648,0.638,0.627,0.617,0.606,0.596,0.586,0.576,0.566,0.557,0.548,0.54,0.532,0.525,0.519,0.514,0.509,0.505,0.502,0.501,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0,0.002,0.004,0.007,0.011,0.016,0.02,0.026,0.031,0.037,0.043,0.049,0.055,0.061,0.067,0.073,0.078,0.082,0.087,0.091,0.094,0.096,0.098,0.1,0.1,0.082,0.05,0.03,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.001,-0.005,-0.011,-0.019,-0.029,-0.039,-0.051,-0.063,-0.076,-0.09,-0.103,-0.117,-0.13,-0.143,-0.155,-0.166,-0.177,-0.186,-0.194,-0.201,-0.206,-0.209,-0.21,-0.21,-0.21,-0.209,-0.208,-0.207,-0.205,-0.203,-0.202,-0.199,-0.197,-0.194,-0.192,-0.189,-0.186,-0.182,-0.179,-0.175,-0.172,-0.168,-0.164,-0.16,-0.156,-0.151,-0.147,-0.142,-0.138,-0.133,-0.129,-0.124,-0.119,-0.115,-0.11,-0.105,-0.1,-0.095,-0.091,-0.086,-0.081,-0.077,-0.072,-0.068,-0.063,-0.059,-0.054,-0.05,-0.046,-0.042,-0.038,-0.035,-0.031,-0.028,-0.024,-0.021,-0.018,-0.016,-0.013,-0.011,-0.008,-0.007,-0.005,-0.003,-0.002,-0.001,-0.001,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.001,-0.004,-0.01,-0.016,-0.024,-0.034,-0.044,-0.054,-0.065,-0.077,-0.089,-0.1,-0.111,-0.123,-0.133,-0.143,-0.152,-0.16,-0.167,-0.172,-0.176,-0.179,-0.18,-0.18,-0.18,-0.179,-0.18,-0.177,-0.176,-0.174,-0.173,-0.171,-0.169,-0.167,-0.164,-0.162,-0.159,-0.156,-0.153,-0.15,-0.147,-0.144,-0.14,-0.137,-0.133,-0.13,-0.126,-0.122,-0.118,-0.114,-0.11,-0.106,-0.102,-0.098,-0.094,-0.09,-0.086,-0.082,-0.078,-0.074,-0.07,-0.066,-0.062,-0.058,-0.054,-0.05,-0.047,-0.043,-0.04,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.018,-0.016,-0.013,-0.011,-0.009,-0.007,-0.006,-0.004,-0.003,-0.002,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0.22,0.81,1.72,2.86,4.13,5.5,6.87,8.14,9.28,10.19,10.78,11,8.31,2.5,-4.73,-12.26,-19.12,-24.81,-28.59,-30,-29.62,-28.55,-26.9,-24.77,-22.31,-19.59,-16.8,-13.95,-11.17,-8.52,-6.14,-4.05,-2.33,-1.07,-0.27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.52,0.57,0.63,0.69,0.74,0.79,0.82,0.84,0.846,0.849,0.85,0.85,0.85,0.85,0.85,0.838,0.81,0.76,0.7,0.65,0.59,0.54,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.52,0.57,0.63,0.69,0.75,0.8,0.83,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.828,0.8,0.75,0.7,0.64,0.59,0.54,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.18,-0.26,-0.34,-0.4,-0.44,-0.46,-0.454,-0.438,-0.41,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.04,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.5,0.502,0.505,0.509,0.514,0.52,0.526,0.533,0.541,0.549,0.558,0.567,0.576,0.586,0.595,0.604,0.614,0.623,0.632,0.641,0.649,0.657,0.664,0.67,0.676,0.681,0.685,0.688,0.689,0.69,0.69,0.688,0.686,0.684,0.68,0.676,0.672,0.667,0.661,0.655,0.649,0.643,0.636,0.629,0.622,0.614,0.607,0.6,0.592,0.585,0.577,0.57,0.563,0.556,0.55,0.543,0.537,0.531,0.526,0.521,0.516,0.512,0.509,0.506,0.503,0.501,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0.002,0.004,0.007,0.011,0.016,0.021,0.026,0.032,0.039,0.046,0.053,0.06,0.068,0.075,0.082,0.09,0.097,0.104,0.111,0.118,0.124,0.129,0.134,0.139,0.143,0.146,0.148,0.15,0.15,0.15,0.149,0.147,0.145,0.142,0.139,0.136,0.132,0.127,0.123,0.118,0.113,0.107,0.102,0.096,0.09,0.085,0.079,0.073,0.067,0.061,0.055,0.05,0.044,0.039,0.034,0.029,0.025,0.02,0.016,0.013,0.01,0.007,0.004,0.003,0.001,0,0\r\r\nPARAM_WING_DEFORM=0,0,-0.002,-0.004,-0.006,-0.01,-0.014,-0.018,-0.023,-0.028,-0.034,-0.04,-0.046,-0.052,-0.059,-0.065,-0.071,-0.078,-0.084,-0.09,-0.096,-0.102,-0.107,-0.112,-0.116,-0.12,-0.124,-0.126,-0.128,-0.13,-0.13,-0.13,-0.129,-0.127,-0.126,-0.123,-0.121,-0.118,-0.114,-0.11,-0.106,-0.102,-0.098,-0.093,-0.088,-0.083,-0.078,-0.073,-0.068,-0.063,-0.058,-0.053,-0.048,-0.043,-0.038,-0.034,-0.029,-0.025,-0.021,-0.018,-0.014,-0.011,-0.008,-0.006,-0.004,-0.002,-0.001,0,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,-0.2,-0.77,-1.66,-2.85,-4.3,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.7,-27.15,-28.34,-29.23,-29.8,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.4,-27.79,-25.31,-22.2,-18.74,-15,-11.26,-7.8,-4.69,-2.21,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.07,0.26,0.55,0.95,1.43,1.99,2.59,3.25,3.94,4.65,5.35,6.06,6.75,7.41,8.01,8.57,9.05,9.45,9.74,9.93,10,9.994,9.976,9.95,9.9,9.85,9.79,9.71,9.62,9.52,9.41,9.29,9.16,9.02,8.87,8.71,8.55,8.37,8.19,8,7.77,7.55,7.32,7.11,6.9,6.7,6.49,6.29,6.09,5.89,5.68,5.48,5.27,5.06,4.86,4.64,4.42,4.2,3.97,3.74,3.5,3.26,3,2.71,2.41,2.08,1.74,1.42,1.1,0.8,0.54,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0.002,0.007,0.014,0.025,0.037,0.052,0.067,0.084,0.102,0.121,0.139,0.158,0.176,0.193,0.208,0.223,0.235,0.246,0.253,0.258,0.26,0.259,0.257,0.254,0.25,0.245,0.238,0.231,0.223,0.214,0.204,0.194,0.183,0.171,0.159,0.146,0.133,0.12,0.106,0.093,0.079,0.065,0.051,0.037,0.024,0.01,-0.003,-0.016,-0.029,-0.041,-0.053,-0.064,-0.074,-0.084,-0.093,-0.101,-0.108,-0.115,-0.12,-0.124,-0.127,-0.129,-0.13,-0.127,-0.12,-0.11,-0.096,-0.081,-0.065,-0.049,-0.034,-0.02,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.005,-0.019,-0.04,-0.07,-0.11,-0.15,-0.19,-0.24,-0.3,-0.35,-0.4,-0.45,-0.51,-0.56,-0.6,-0.64,-0.68,-0.71,-0.73,-0.745,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.749,-0.75,-0.748,-0.747,-0.746,-0.75,-0.744,-0.743,-0.741,-0.74,-0.738,-0.737,-0.735,-0.733,-0.73,-0.728,-0.725,-0.723,-0.72,-0.717,-0.713,-0.71,-0.706,-0.702,-0.698,-0.694,-0.689,-0.684,-0.679,-0.674,-0.669,-0.663,-0.657,-0.65,-0.644,-0.637,-0.63,-0.611,-0.57,-0.52,-0.45,-0.38,-0.3,-0.23,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0.002,0.008,0.017,0.029,0.044,0.062,0.08,0.101,0.12,0.14,0.17,0.19,0.21,0.23,0.248,0.266,0.281,0.293,0.302,0.308,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.308,0.305,0.301,0.296,0.289,0.28,0.14,-0.08,-0.28,-0.42,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.479,-0.48,-0.48,-0.478,-0.48,-0.48,-0.477,-0.48,-0.476,-0.48,-0.475,-0.474,-0.47,-0.472,-0.472,-0.471,-0.47,-0.43,-0.35,-0.23,-0.12,-0.04,0,0\r\r\nPARAM_BROW_R_Y=0,0.002,0.008,0.017,0.029,0.044,0.062,0.08,0.101,0.12,0.14,0.17,0.19,0.21,0.23,0.248,0.266,0.281,0.293,0.302,0.308,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.308,0.305,0.301,0.296,0.289,0.28,0.14,-0.08,-0.28,-0.42,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.479,-0.48,-0.48,-0.478,-0.48,-0.48,-0.477,-0.48,-0.476,-0.48,-0.475,-0.474,-0.47,-0.472,-0.472,-0.471,-0.47,-0.43,-0.35,-0.23,-0.12,-0.04,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.201,0.205,0.211,0.219,0.229,0.24,0.252,0.265,0.279,0.293,0.307,0.321,0.335,0.348,0.36,0.371,0.381,0.389,0.395,0.399,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.398,0.397,0.394,0.392,0.389,0.385,0.38,-0.53,-0.66,-0.72,-0.75,-0.75,-0.75,-0.75,-0.75,-0.748,-0.747,-0.746,-0.745,-0.743,-0.741,-0.738,-0.736,-0.733,-0.729,-0.725,-0.721,-0.717,-0.712,-0.707,-0.701,-0.695,-0.689,-0.682,-0.674,-0.667,-0.658,-0.649,-0.64,-0.62,-0.58,-0.54,-0.48,-0.43,-0.37,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.5,-0.5,-0.5,-0.5,-0.498,-0.498,-0.497,-0.5,-0.495,-0.494,-0.492,-0.491,-0.489,-0.488,-0.486,-0.484,-0.482,-0.48,-0.477,-0.475,-0.472,-0.47,-0.467,-0.464,-0.461,-0.458,-0.454,-0.451,-0.447,-0.444,-0.44,-0.436,-0.432,-0.427,-0.423,-0.419,-0.414,-0.409,-0.404,-0.399,-0.394,-0.389,-0.384,-0.378,-0.372,-0.367,-0.361,-0.355,-0.348,-0.342,-0.336,-0.329,-0.322,-0.316,-0.309,-0.302,-0.294,-0.287,-0.28,-0.272,-0.264,-0.256,-0.248,-0.24,-0.232,-0.223,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,0.2,0.203,0.206,0.208,0.211,0.213,0.216,0.218,0.22,0.222,0.224,0.226,0.228,0.23,0.232,0.233,0.235,0.236,0.238,0.239,0.24,0.241,0.242,0.243,0.244,0.245,0.246,0.25,0.247,0.25,0.248,0.25,0.249,0.25,0.25,0.25,0.25,0.25,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0,0,0.002,0,0,0,0.003,0,0,0,0.004,0,0,0.005,0.01,0.01,0.006,0.01,0.01,0.007,0.01,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.011,0.01,0.012,0.01,0.013,0.01,0.014,0.01,0.015,0.02,0.016,0.02,0.018,0.018,0.02,0.019,0.02,0.17,0.169,0.165,0.161,0.156,0.153,0.151,0.15,0.23,0.37,0.47,0.5,0.44,0.35,0.26,0.19,0.17,0.24,0.39,0.5,0.54,0.56,0.6,0.72,0.88,0.96,0.89,0.75,0.68,0.75,0.88,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95\r\r\nPARAM_MOUTH_OPEN2=0.9,0.894,0.877,0.85,0.81,0.77,0.72,0.67,0.61,0.55,0.48,0.42,0.35,0.29,0.23,0.18,0.13,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.006,-0.013,-0.022,-0.035,-0.05,-0.067,-0.087,-0.11,-0.13,-0.16,-0.19,-0.22,-0.26,-0.3,-0.34,-0.38,-0.42,-0.47,-0.52,-0.58,-0.63,-0.69,-1,-1,-1,-1,-0.999,-0.998,-1,-0.996,-0.995,-0.994,-0.993,-0.991,-0.99,-0.988,-0.987,-0.985,-0.983,-0.981,-0.98,-0.978,-0.976,-0.974,-0.972,-0.97,-0.968,-0.966,-0.965,-0.963,-0.961,-0.959,-0.957,-0.956,-0.954,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.944,-0.943,-0.943,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.13,-0.28,-0.47,-0.72,-0.99,-1.29,-1.62,-1.97,-2.32,-2.68,-3.03,-3.38,-3.71,-4.01,-4.28,-4.53,-4.72,-4.87,-4.97,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.9,-4.63,-4.22,-3.7,-3.12,-2.5,-1.88,-1.3,-0.78,-0.37,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-9.991,-9.97,-9.93,-9.87,-9.81,-9.74,-9.67,-9.59,-9.51,-9.43,-9.35,-9.28,-9.21,-9.15,-9.1,-9.06,-9.03,-9.007,-9,-9.006,-9.025,-9.05,-9.09,-9.14,-9.19,-9.24,-9.3,-9.36,-9.43,-9.49,-9.56,-9.62,-9.68,-9.74,-9.79,-9.84,-9.89,-9.93,-9.96,-9.98,-9.995,-10,-9.8,-9.26,-8.44,-7.4,-6.25,-5,-3.75,-2.6,-1.56,-0.74,-0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.497,0.487,0.472,0.453,0.43,0.4,0.37,0.34,0.3,0.27,0.23,0.2,0.16,0.13,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.5,0.5,0.5,0.505,0.519,0.538,0.56,0.59,0.62,0.65,0.67,0.7,0.72,0.742,0.757,0.767,0.77,0.765,0.75,0.73,0.7,0.67,0.64,0.61,0.58,0.55,0.53,0.514,0.504,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,0.01,0.03,0.06,0.09,0.11,0.13,0.145,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.11,0.02,-0.11,-0.25,-0.4,-0.56,-0.7,-0.82,-0.91,-0.98,-1,-0.984,-0.94,-0.9,-0.85,-0.81,-0.79,-0.78,-0.796,-0.84,-0.88,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.994,-0.978,-0.95,-0.9,-0.84,-0.76,-0.64,-0.51,-0.38,-0.25,-0.13,-0.02,0.06,0.12,0.14,0.123,0.09,0.04,-0.01,-0.05,-0.09,-0.11,-0.12,-0.111,-0.09,-0.06,-0.04,-0.017,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.004,0.014,0.03,0.05,0.07,0.1,0.13,0.17,0.2,0.23,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.49,0.51,0.526,0.539,0.547,0.55,0.549,0.547,0.543,0.537,0.53,0.521,0.511,0.5,0.487,0.473,0.457,0.44,0.421,0.4,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.2,0.18,0.16,0.138,0.12,0.103,0.088,0.074,0.061,0.049,0.039,0.03,0.022,0.015,0.01,0.006,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.009,0.019,0.032,0.048,0.065,0.085,0.11,0.13,0.15,0.17,0.19,0.22,0.24,0.258,0.277,0.295,0.311,0.324,0.335,0.343,0.348,0.35,0.35,0.35,0.349,0.347,0.346,0.344,0.342,0.339,0.336,0.332,0.327,0.323,0.317,0.311,0.304,0.297,0.289,0.28,0.271,0.261,0.25,0.239,0.227,0.216,0.205,0.195,0.184,0.174,0.164,0.155,0.145,0.136,0.127,0.119,0.11,0.102,0.094,0.087,0.08,0.073,0.066,0.06,0.054,0.048,0.043,0.038,0.033,0.028,0.024,0.02,0.017,0.014,0.011,0.008,0.006,0.004,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.001,-0.004,-0.01,-0.016,-0.025,-0.035,-0.047,-0.06,-0.074,-0.089,-0.105,-0.122,-0.14,-0.159,-0.178,-0.198,-0.22,-0.24,-0.26,-0.28,-0.31,-0.33,-0.35,-0.37,-0.39,-0.413,-0.431,-0.447,-0.462,-0.475,-0.488,-0.498,-0.508,-0.516,-0.523,-0.53,-0.535,-0.539,-0.543,-0.546,-0.548,-0.549,-0.55,-0.55,-0.549,-0.546,-0.541,-0.534,-0.525,-0.515,-0.503,-0.49,-0.476,-0.46,-0.444,-0.426,-0.408,-0.389,-0.37,-0.349,-0.329,-0.31,-0.29,-0.267,-0.25,-0.226,-0.21,-0.186,-0.167,-0.148,-0.13,-0.113,-0.096,-0.081,-0.067,-0.053,-0.042,-0.031,-0.022,-0.014,-0.008,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.002,-0.009,-0.019,-0.032,-0.049,-0.068,-0.09,-0.11,-0.13,-0.16,-0.18,-0.21,-0.23,-0.25,-0.27,-0.291,-0.308,-0.321,-0.331,-0.338,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.338,-0.336,-0.333,-0.33,-0.325,-0.32,-0.315,-0.309,-0.302,-0.295,-0.287,-0.279,-0.27,-0.261,-0.252,-0.242,-0.232,-0.222,-0.212,-0.202,-0.191,-0.181,-0.17,-0.159,-0.149,-0.138,-0.128,-0.118,-0.108,-0.098,-0.088,-0.079,-0.07,-0.061,-0.053,-0.045,-0.038,-0.031,-0.025,-0.02,-0.015,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_WING_DEFORM=0,0.004,0.015,0.032,0.05,0.08,0.12,0.15,0.19,0.23,0.28,0.32,0.37,0.41,0.46,0.5,0.54,0.58,0.62,0.65,0.68,0.7,0.719,0.737,0.754,0.771,0.787,0.802,0.816,0.83,0.843,0.855,0.867,0.878,0.888,0.898,0.907,0.916,0.924,0.932,0.939,0.945,0.952,0.957,0.963,0.967,0.972,0.976,0.979,0.982,0.985,0.988,0.99,0.992,0.994,0.995,0.997,0.998,0.998,0.999,1,1,1,1,0.999,0.995,0.989,0.98,0.97,0.957,0.942,0.926,0.908,0.888,0.87,0.84,0.82,0.79,0.77,0.74,0.71,0.68,0.65,0.62,0.59,0.56,0.53,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.21,0.18,0.16,0.13,0.11,0.092,0.074,0.058,0.043,0.03,0.02,0.011,0.005,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.81,-2.78,-5.18,-7.52,-9.4,-10.6,-11,-10.57,-9.36,-7.46,-5.04,-2.16,0.99,4.31,7.69,11.01,14.16,17.04,19.46,21.36,22.57,23,22.998,22.991,22.979,22.962,22.94,22.91,22.88,22.84,22.79,22.74,22.68,22.61,22.54,22.45,22.37,22.27,22.16,22.04,21.92,21.79,21.64,21.49,21.32,21.15,20.97,20.77,20.57,20.35,20.13,19.88,19.63,19.37,19.09,18.8,18.5,18.19,17.86,17.51,17.16,16.79,16.4,16,15.11,13.43,11.06,8.19,5.09,1.78,-1.5,-4.51,-7.2,-9.33,-10.71,-11.22,-10.86,-9.96,-8.73,-7.3,-5.81,-4.34,-2.95,-1.78,-0.83,-0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.4,0.31,0.22,0.13,0.06,0.02,0,0.04,0.13,0.25,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.46,0.37,0.26,0.16,0.07,0.02,0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.4,0.31,0.22,0.13,0.06,0.02,0,0.04,0.13,0.25,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.46,0.37,0.26,0.16,0.07,0.02,0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.03,0.07,0.11,0.15,0.19,0.23,0.26,0.29,0.311,0.32,0.324,0.327,0.331,0.334,0.338,0.341,0.344,0.347,0.35,0.352,0.355,0.358,0.36,0.363,0.365,0.367,0.369,0.371,0.373,0.375,0.377,0.379,0.38,0.382,0.383,0.385,0.386,0.387,0.389,0.39,0.391,0.392,0.393,0.393,0.394,0.395,0.4,0.396,0.4,0.397,0.4,0.398,0.4,0.399,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.37,0.3,0.21,0.13,0.06,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.499,0.497,0.494,0.49,0.485,0.479,0.472,0.464,0.456,0.447,0.438,0.429,0.42,0.41,0.401,0.392,0.383,0.374,0.366,0.358,0.351,0.345,0.34,0.336,0.333,0.331,0.33,0.33,0.333,0.336,0.34,0.345,0.352,0.359,0.367,0.376,0.385,0.396,0.406,0.417,0.429,0.441,0.453,0.465,0.478,0.491,0.503,0.516,0.529,0.541,0.554,0.566,0.577,0.589,0.6,0.61,0.62,0.63,0.639,0.647,0.654,0.661,0.666,0.671,0.675,0.678,0.679,0.68,0.68,0.68,0.678,0.677,0.675,0.673,0.671,0.668,0.665,0.662,0.658,0.655,0.651,0.647,0.642,0.638,0.633,0.629,0.624,0.619,0.614,0.608,0.603,0.598,0.593,0.587,0.582,0.577,0.572,0.566,0.561,0.556,0.551,0.547,0.542,0.538,0.533,0.529,0.525,0.522,0.518,0.515,0.512,0.509,0.507,0.505,0.503,0.502,0.501,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0.002,0.003,0.004,0.005,0.007,0.008,0.01,0.012,0.014,0.016,0.019,0.021,0.024,0.027,0.03,0.033,0.036,0.039,0.042,0.045,0.049,0.052,0.055,0.059,0.062,0.066,0.069,0.073,0.076,0.08,0.083,0.087,0.09,0.094,0.097,0.1,0.104,0.107,0.11,0.113,0.116,0.119,0.122,0.125,0.127,0.13,0.132,0.135,0.137,0.139,0.141,0.142,0.144,0.145,0.146,0.148,0.148,0.149,0.15,0.15,0.15,0.15,0.15,0.149,0.148,0.146,0.145,0.143,0.141,0.139,0.136,0.134,0.131,0.128,0.125,0.122,0.118,0.115,0.111,0.108,0.104,0.1,0.096,0.092,0.088,0.084,0.08,0.076,0.071,0.067,0.063,0.059,0.055,0.051,0.047,0.044,0.04,0.036,0.033,0.03,0.026,0.023,0.02,0.018,0.015,0.012,0.01,0.008,0.006,0.005,0.003,0.002,0.001,0.001,0,0\r\r\nPARAM_WING_DEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.004,0.005,0.008,0.01,0.013,0.017,0.02,0.024,0.028,0.032,0.037,0.042,0.046,0.052,0.057,0.062,0.067,0.073,0.078,0.084,0.089,0.095,0.1,0.106,0.111,0.117,0.122,0.127,0.132,0.137,0.141,0.146,0.15,0.154,0.158,0.162,0.165,0.168,0.171,0.173,0.175,0.177,0.178,0.179,0.18,0.18,0.18,0.18,0.178,0.177,0.176,0.174,0.172,0.169,0.167,0.164,0.161,0.157,0.154,0.15,0.146,0.142,0.138,0.134,0.129,0.124,0.12,0.115,0.11,0.105,0.1,0.096,0.091,0.086,0.081,0.076,0.071,0.066,0.062,0.057,0.052,0.048,0.044,0.04,0.035,0.032,0.028,0.024,0.021,0.018,0.015,0.012,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath7.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.26,-0.57,-0.98,-1.48,-2.06,-2.71,-3.42,-4.18,-4.97,-5.8,-6.65,-7.52,-8.39,-9.26,-10.12,-10.96,-11.78,-12.57,-13.31,-14,-14.65,-15.23,-15.74,-16.17,-16.52,-16.79,-16.95,-17,-17.01,-17.04,-17.07,-17.11,-17.15,-17.18,-17.201,-17.204,-17.186,-17.14,-17.07,-16.96,-16.81,-16.63,-16.39,-16.12,-15.8,-15.42,-15,-14.48,-13.94,-13.35,-12.73,-12.1,-11.43,-10.73,-10.02,-9.28,-8.51,-7.75,-6.95,-6.15,-5.34,-4.51,-3.68,-2.86,-2.01,-1.16,-0.34,0.51,1.35,2.16,2.98,3.8,4.58,5.37,6.14,6.87,7.61,8.32,8.99,9.65,10.28,10.86,11.43,11.97,12.45,12.91,13.33,13.7,14.04,14.33,14.56,14.75,14.89,14.97,15,15.003,15.011,15.02,15.026,15.03,15.016,14.99,14.95,14.89,14.81,14.7,14.56,14.38,14.17,13.92,13.55,13.01,12.31,11.49,10.59,9.59,8.53,7.44,6.34,5.26,4.22,3.24,2.34,1.57,0.92,0.42,0.11,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.46,0.37,0.26,0.16,0.07,0.02,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.46,0.37,0.26,0.16,0.07,0.02,0,0.04,0.13,0.24,0.34,0.43,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.007,-0.027,-0.06,-0.1,-0.16,-0.22,-0.3,-0.38,-0.47,-0.56,-0.67,-0.77,-0.89,-1,-1.12,-1.24,-1.36,-1.48,-1.61,-1.73,-1.85,-1.97,-2.08,-2.19,-2.3,-2.4,-2.49,-2.58,-2.66,-2.74,-2.8,-2.86,-2.91,-2.95,-2.98,-2.994,-3,-2.996,-2.983,-2.96,-2.93,-2.9,-2.85,-2.8,-2.74,-2.68,-2.61,-2.53,-2.45,-2.36,-2.27,-2.18,-2.07,-1.97,-1.86,-1.75,-1.63,-1.51,-1.39,-1.27,-1.14,-1.02,-0.89,-0.76,-0.62,-0.49,-0.36,-0.23,-0.1,0.03,0.16,0.29,0.42,0.55,0.67,0.79,0.91,1.03,1.14,1.25,1.35,1.45,1.55,1.64,1.73,1.81,1.89,1.96,2.02,2.08,2.13,2.17,2.21,2.24,2.26,2.275,2.279,2.275,2.264,2.246,2.22,2.19,2.15,2.11,2.06,2.01,1.95,1.89,1.83,1.76,1.69,1.62,1.54,1.47,1.39,1.31,1.23,1.15,1.07,0.99,0.91,0.83,0.76,0.68,0.61,0.54,0.47,0.41,0.35,0.3,0.24,0.19,0.15,0.11,0.08,0.05,0.03,0.013,0.003,0\r\r\nPARAM_BREATH=0.5\r\r\nPARAM_HAIR_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.026,-0.06,-0.09,-0.14,-0.2,-0.26,-0.32,-0.39,-0.46,-0.54,-0.61,-0.68,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-1,-0.997,-0.993,-0.985,-0.974,-0.959,-0.94,-0.92,-0.88,-0.85,-0.81,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.31,-0.27,-0.23,-0.2,-0.16,-0.13,-0.1,-0.07,-0.04,-0.01,0.001,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.17,0.24,0.3,0.36,0.43,0.49,0.54,0.59,0.63,0.66,0.674,0.68,0.677,0.668,0.654,0.634,0.61,0.58,0.55,0.52,0.48,0.44,0.4,0.36,0.32,0.28,0.24,0.21,0.18,0.15,0.13,0.11,0.09,0.073,0.058,0.045,0.034,0.024,0.016,0.01,0.006,0.003,0.001,0\r\r\nPARAM_HAIR_BACK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.033,-0.06,-0.09,-0.12,-0.16,-0.2,-0.24,-0.29,-0.33,-0.38,-0.43,-0.48,-0.53,-0.58,-0.63,-0.68,-0.72,-0.77,-0.81,-0.84,-0.88,-0.91,-0.93,-0.953,-0.968,-0.977,-0.98,-0.98,-0.981,-0.981,-0.978,-0.973,-0.964,-0.95,-0.932,-0.91,-0.88,-0.84,-0.79,-0.75,-0.7,-0.65,-0.6,-0.56,-0.51,-0.46,-0.42,-0.37,-0.33,-0.28,-0.24,-0.21,-0.17,-0.14,-0.11,-0.08,-0.06,-0.037,-0.021,-0.01,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,0.998,0.994,0.987,0.977,0.962,0.942,0.91,0.88,0.84,0.79,0.73,0.67,0.61,0.55,0.49,0.44,0.38,0.32,0.27,0.22,0.18,0.14,0.1,0.07,0.05,0.03,0.012,0.003,0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.007,-0.012,-0.019,-0.026,-0.034,-0.044,-0.054,-0.065,-0.076,-0.088,-0.1,-0.113,-0.125,-0.137,-0.15,-0.162,-0.174,-0.185,-0.196,-0.206,-0.216,-0.224,-0.231,-0.238,-0.243,-0.247,-0.249,-0.25,-0.249,-0.247,-0.244,-0.239,-0.233,-0.226,-0.218,-0.209,-0.2,-0.19,-0.179,-0.168,-0.156,-0.144,-0.131,-0.118,-0.106,-0.093,-0.08,-0.067,-0.054,-0.041,-0.029,-0.017,-0.005,0.006,0.017,0.027,0.036,0.045,0.053,0.06,0.066,0.071,0.075,0.079,0.08,0.081,0.081,0.08,0.078,0.076,0.074,0.07,0.067,0.063,0.059,0.054,0.049,0.044,0.039,0.033,0.028,0.022,0.016,0.01,0.005,-0.001,-0.007,-0.013,-0.018,-0.023,-0.028,-0.033,-0.038,-0.042,-0.046,-0.049,-0.052,-0.055,-0.057,-0.059,-0.061,-0.061,-0.06,-0.06,-0.061,-0.06,-0.058,-0.056,-0.054,-0.051,-0.049,-0.046,-0.043,-0.039,-0.036,-0.033,-0.029,-0.026,-0.022,-0.019,-0.016,-0.013,-0.01,-0.008,-0.006,-0.004,-0.002,-0.001,0,0\r\r\nPARAM_WING_DEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.008,0.013,0.018,0.023,0.03,0.037,0.044,0.052,0.06,0.068,0.077,0.085,0.093,0.102,0.11,0.118,0.126,0.133,0.14,0.147,0.152,0.157,0.162,0.165,0.168,0.169,0.17,0.17,0.168,0.166,0.162,0.158,0.153,0.148,0.142,0.135,0.128,0.121,0.113,0.105,0.096,0.088,0.079,0.07,0.061,0.052,0.043,0.034,0.026,0.017,0.009,0.001,-0.007,-0.015,-0.022,-0.028,-0.034,-0.04,-0.045,-0.049,-0.052,-0.055,-0.057,-0.059,-0.059,-0.059,-0.057,-0.055,-0.052,-0.049,-0.044,-0.04,-0.034,-0.028,-0.022,-0.015,-0.008,0,0.007,0.015,0.023,0.031,0.039,0.047,0.055,0.063,0.071,0.078,0.086,0.093,0.1,0.106,0.112,0.117,0.122,0.126,0.13,0.133,0.136,0.138,0.139,0.14,0.139,0.137,0.135,0.131,0.127,0.122,0.116,0.11,0.103,0.096,0.089,0.081,0.074,0.066,0.058,0.051,0.043,0.036,0.029,0.023,0.018,0.013,0.008,0.005,0.002,0.001,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Breath8.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.41,-0.88,-1.51,-2.24,-3.07,-3.98,-4.92,-5.88,-6.84,-7.77,-8.64,-9.46,-10.18,-10.81,-11.31,-11.69,-11.92,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-11.999,-11.998,-12,-11.996,-11.995,-11.993,-11.991,-11.99,-11.987,-11.985,-11.982,-11.979,-11.976,-11.973,-11.969,-11.965,-11.96,-11.955,-11.95,-11.944,-11.939,-11.932,-11.925,-11.918,-11.91,-11.902,-11.894,-11.885,-11.83,-11.69,-11.46,-11.17,-10.82,-10.41,-9.95,-9.45,-8.92,-8.37,-7.79,-7.2,-6.59,-5.99,-5.38,-4.78,-4.2,-3.62,-3.08,-2.56,-2.08,-1.63,-1.23,-0.88,-0.57,-0.33,-0.15,-0.04,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.31,0.69,1.18,1.8,2.51,3.33,4.2,5.15,6.14,7.19,8.25,9.33,10.41,11.47,12.52,13.56,14.53,15.46,16.33,17.13,17.84,18.47,19.01,19.43,19.74,19.94,20,20,20,20.001,20,20,20,20,20,19.999,19.996,19.993,19.988,19.983,19.976,19.967,19.958,19.946,19.932,19.917,19.9,19.88,19.86,19.83,19.81,19.78,19.74,19.71,19.67,19.63,19.58,19.53,19.48,19.42,19.36,19.3,19.23,19.16,19.08,19,18.85,18.56,18.15,17.62,17,16.3,15.51,14.65,13.75,12.79,11.79,10.77,9.74,8.7,7.67,6.66,5.69,4.75,3.88,3.06,2.31,1.66,1.09,0.63,0.29,0.07,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.498,0.496,0.494,0.491,0.488,0.485,0.482,0.479,0.475,0.471,0.467,0.464,0.46,0.456,0.453,0.449,0.446,0.443,0.44,0.438,0.435,0.433,0.432,0.431,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.4,0.32,0.23,0.14,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.13,0.25,0.37,0.46,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.498,0.496,0.495,0.492,0.49,0.487,0.485,0.482,0.478,0.475,0.472,0.469,0.466,0.462,0.459,0.456,0.454,0.451,0.449,0.446,0.445,0.443,0.442,0.441,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.41,0.33,0.23,0.14,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.13,0.25,0.37,0.46,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.007,-0.016,-0.027,-0.041,-0.057,-0.076,-0.1,-0.12,-0.14,-0.16,-0.19,-0.22,-0.24,-0.27,-0.3,-0.32,-0.35,-0.37,-0.4,-0.42,-0.44,-0.47,-0.486,-0.504,-0.52,-0.535,-0.547,-0.557,-0.564,-0.568,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.567,-0.559,-0.546,-0.528,-0.51,-0.48,-0.45,-0.42,-0.39,-0.36,-0.32,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.024,-0.011,-0.003,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.13,0.23,0.35,0.48,0.64,0.8,0.98,1.17,1.37,1.56,1.77,1.97,2.18,2.38,2.58,2.77,2.96,3.13,3.29,3.45,3.58,3.7,3.81,3.89,3.95,3.99,4,4,3.999,3.997,3.994,3.99,3.984,3.978,3.97,3.961,3.949,3.937,3.922,3.906,3.887,3.87,3.84,3.82,3.79,3.76,3.73,3.7,3.66,3.62,3.57,3.53,3.48,3.43,3.37,3.31,3.25,3.18,3.11,3.04,2.96,2.88,2.76,2.6,2.4,2.18,1.94,1.68,1.43,1.17,0.93,0.71,0.51,0.33,0.19,0.09,0.02,0\r\r\nPARAM_BREATH=0.5,0.5,0.502,0.503,0.506,0.509,0.513,0.517,0.522,0.527,0.533,0.539,0.546,0.552,0.56,0.567,0.575,0.583,0.591,0.599,0.607,0.615,0.623,0.631,0.639,0.647,0.655,0.663,0.67,0.678,0.684,0.691,0.697,0.703,0.708,0.713,0.717,0.721,0.724,0.727,0.728,0.73,0.73,0.73,0.728,0.725,0.721,0.716,0.711,0.704,0.696,0.688,0.679,0.67,0.66,0.649,0.637,0.626,0.614,0.601,0.589,0.576,0.562,0.549,0.536,0.522,0.508,0.495,0.482,0.47,0.459,0.448,0.438,0.429,0.42,0.411,0.404,0.396,0.389,0.383,0.377,0.372,0.367,0.362,0.358,0.355,0.351,0.349,0.346,0.344,0.343,0.342,0.341,0.34,0.34,0.34,0.343,0.347,0.352,0.358,0.365,0.373,0.381,0.39,0.4,0.409,0.419,0.428,0.438,0.447,0.456,0.464,0.472,0.479,0.485,0.49,0.494,0.497,0.499,0.5\r\r\nPARAM_HAIR_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.01,0.022,0.039,0.058,0.08,0.11,0.13,0.16,0.2,0.23,0.26,0.3,0.33,0.36,0.4,0.43,0.46,0.5,0.52,0.55,0.58,0.6,0.62,0.637,0.651,0.662,0.668,0.67,0.657,0.63,0.59,0.55,0.52,0.505,0.499,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.496,0.483,0.463,0.44,0.41,0.37,0.33,0.3,0.26,0.21,0.18,0.14,0.11,0.08,0.05,0.03,0.013,0.003,0\r\r\nPARAM_HAIR_BACK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,1,1,0.998,0.997,0.996,0.994,0.991,0.988,0.985,0.981,0.977,0.972,0.967,0.961,0.955,0.948,0.941,0.933,0.925,0.916,0.906,0.896,0.885,0.874,0.862,0.849,0.836,0.821,0.807,0.791,0.775,0.758,0.74,0.72,0.69,0.66,0.63,0.6,0.56,0.53,0.49,0.45,0.41,0.37,0.32,0.27,0.22,0.17,0.13,0.09,0.06,0.04,0.016,0.004,0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.003,-0.004,-0.006,-0.008,-0.01,-0.012,-0.015,-0.017,-0.02,-0.023,-0.026,-0.029,-0.032,-0.035,-0.038,-0.041,-0.044,-0.047,-0.05,-0.053,-0.056,-0.059,-0.062,-0.064,-0.067,-0.069,-0.071,-0.073,-0.075,-0.076,-0.078,-0.079,-0.079,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.079,-0.08,-0.078,-0.077,-0.076,-0.075,-0.073,-0.072,-0.071,-0.069,-0.068,-0.066,-0.065,-0.063,-0.061,-0.059,-0.057,-0.055,-0.053,-0.051,-0.049,-0.047,-0.045,-0.043,-0.041,-0.039,-0.037,-0.035,-0.033,-0.031,-0.029,-0.027,-0.025,-0.023,-0.021,-0.019,-0.017,-0.015,-0.014,-0.012,-0.011,-0.009,-0.008,-0.007,-0.005,-0.004,-0.003,-0.002,-0.002,0,-0.001,0,0,0\r\r\nPARAM_WING_DEFORM=0,0,0.003,0.006,0.01,0.016,0.022,0.029,0.036,0.044,0.053,0.061,0.07,0.079,0.087,0.096,0.104,0.111,0.118,0.124,0.13,0.134,0.137,0.139,0.14,0.14,0.137,0.134,0.129,0.123,0.116,0.108,0.1,0.09,0.08,0.069,0.058,0.046,0.034,0.022,0.009,-0.004,-0.017,-0.03,-0.043,-0.056,-0.068,-0.08,-0.092,-0.104,-0.115,-0.126,-0.136,-0.145,-0.154,-0.162,-0.169,-0.175,-0.18,-0.184,-0.187,-0.189,-0.19,-0.19,-0.19,-0.19,-0.188,-0.187,-0.185,-0.183,-0.18,-0.175,-0.17,-0.164,-0.158,-0.153,-0.147,-0.14,-0.134,-0.128,-0.123,-0.117,-0.111,-0.105,-0.099,-0.093,-0.087,-0.082,-0.077,-0.072,-0.067,-0.063,-0.058,-0.054,-0.05,-0.046,-0.042,-0.038,-0.035,-0.032,-0.029,-0.026,-0.023,-0.02,-0.018,-0.016,-0.013,-0.011,-0.01,-0.008,-0.006,-0.005,-0.004,-0.003,-0.002,0,-0.001,0,0,0\r\r\nPARAM_RIBBON_DEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.044,-0.06,-0.09,-0.11,-0.13,-0.16,-0.18,-0.199,-0.216,-0.231,-0.241,-0.248,-0.25,-0.247,-0.238,-0.226,-0.21,-0.191,-0.17,-0.15,-0.13,-0.11,-0.09,-0.066,-0.048,-0.032,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.008,0.011,0.014,0.018,0.023,0.028,0.033,0.039,0.045,0.051,0.058,0.065,0.072,0.079,0.087,0.094,0.102,0.109,0.117,0.125,0.133,0.141,0.148,0.156,0.163,0.171,0.178,0.185,0.192,0.199,0.205,0.211,0.217,0.222,0.227,0.232,0.236,0.239,0.242,0.245,0.247,0.249,0.25,0.25,0.25,0.249,0.247,0.245,0.242,0.239,0.236,0.232,0.227,0.222,0.217,0.211,0.205,0.199,0.192,0.185,0.178,0.171,0.163,0.156,0.148,0.141,0.133,0.125,0.117,0.109,0.102,0.094,0.087,0.079,0.072,0.065,0.058,0.051,0.045,0.039,0.033,0.028,0.023,0.018,0.014,0.011,0.008,0.005,0.003,0.001,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Fail.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=-1,-0.74,-0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=7.26,13.24,24.03,30,28.59,24.81,19.33,12.85,6.15,-0.33,-5.81,-9.59,-11,-10.94,-10.79,-10.54,-10.21,-9.82,-9.37,-8.86,-8.32,-7.74,-7.14,-6.53,-5.89,-5.26,-4.64,-4.03,-3.44,-2.88,-2.34,-1.84,-1.39,-1,-0.66,-0.38,-0.17,-0.04,0,-1.03,-3.8,-7.8,-12.55,-17.45,-22.2,-26.2,-28.97,-30,-27.79,-22.43,-15.88,-9.49,-4.36,-1.1,0,-2.21,-7.57,-14.12,-20.51,-25.64,-28.9,-30,-29.62,-28.55,-26.87,-24.74,-22.2,-19.42,-16.49,-13.51,-10.58,-7.8,-5.26,-3.13,-1.45,-0.38,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.88,1.85,3.06,4.4,5.82,7.22,8.53,9.69,10.66,11.39,11.84,12,11.82,11.34,10.61,9.71,8.7,7.63,6.58,5.6,4.74,4.01,3.46,3.12,3,3.07,3.27,3.59,4,4.49,5.05,5.66,6.32,7,7.7,8.41,9.12,9.81,10.49,11.12,11.72,12.27,12.76,13.18,13.53,13.79,13.94,14,13.82,13.32,12.54,11.55,10.36,9.06,7.7,6.3,4.94,3.64,2.45,1.46,0.68,0.18,0\r\r\nPARAM_EMOTION=0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.57,0.569,0.569,0.568,0.57,0.567,0.566,0.57,0.565,0.564,0.56,0.563,0.56,0.561,0.561,0.56,0.559,0.559,0.56,0.558,0.557,0.56,0.556,0.56,0.554,0.554,0.55,0.553,0.552,0.55,0.551,0.55,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.992,0.978,0.97,0.97,0.97,0.97,0.97,0.971,0.97,0.973,0.973,0.974,0.97,0.976,0.977,0.978,0.979,0.98,0.981,0.982,0.983,0.984,0.985,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.996,0.997,1,0.998,1,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0.09,0.23,0.37,0.46,0.5\r\r\nPARAM_EYE_R_OPEN=1,0.992,0.978,0.97,0.97,0.97,0.97,0.97,0.971,0.97,0.973,0.973,0.974,0.97,0.976,0.977,0.978,0.979,0.98,0.981,0.982,0.983,0.984,0.985,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.996,0.997,1,0.998,1,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0.09,0.23,0.37,0.46,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,-0.001,-0.003,-0.006,-0.01,-0.015,-0.022,-0.029,-0.037,-0.047,-0.057,-0.068,-0.08,-0.092,-0.106,-0.12,-0.135,-0.15,-0.166,-0.183,-0.2,-0.217,-0.236,-0.254,-0.273,-0.292,-0.312,-0.332,-0.35,-0.372,-0.39,-0.414,-0.43,-0.46,-0.48,-0.5,-0.52,-0.54,-0.56,-0.58,-0.6,-0.623,-0.643,-0.66,-0.683,-0.702,-0.721,-0.74,-0.759,-0.777,-0.794,-0.811,-0.828,-0.844,-0.859,-0.874,-0.888,-0.901,-0.914,-0.926,-0.937,-0.947,-0.957,-0.966,-0.974,-0.98,-0.986,-0.991,-0.995,-0.998,-0.999,-1,-0.82,-0.54,-0.27,-0.08,0\r\r\nPARAM_BROW_L_Y=-0.18,-0.34,-0.61,-0.76,-0.76,-0.759,-0.757,-0.754,-0.752,-0.748,-0.744,-0.74,-0.735,-0.73,-0.725,-0.72,-0.714,-0.708,-0.703,-0.697,-0.691,-0.685,-0.679,-0.673,-0.667,-0.662,-0.657,-0.651,-0.646,-0.642,-0.638,-0.634,-0.63,-0.627,-0.625,-0.623,-0.621,-0.62,-0.62,-0.62,-0.62,-0.622,-0.624,-0.626,-0.628,-0.63,-0.633,-0.636,-0.639,-0.642,-0.645,-0.648,-0.651,-0.653,-0.656,-0.659,-0.661,-0.663,-0.665,-0.667,-0.668,-0.669,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.62,-0.5,-0.34,-0.17,-0.05,0\r\r\nPARAM_BROW_R_Y=-0.23,-0.43,-0.78,-0.97,-0.97,-0.969,-0.967,-0.964,-0.962,-0.958,-0.954,-0.95,-0.945,-0.94,-0.935,-0.93,-0.924,-0.918,-0.913,-0.907,-0.901,-0.895,-0.889,-0.883,-0.877,-0.872,-0.867,-0.861,-0.856,-0.852,-0.848,-0.844,-0.84,-0.837,-0.835,-0.833,-0.831,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.831,-0.83,-0.832,-0.83,-0.833,-0.83,-0.834,-0.83,-0.836,-0.836,-0.84,-0.837,-0.84,-0.838,-0.84,-0.839,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.839,-0.837,-0.834,-0.83,-0.76,-0.61,-0.41,-0.21,-0.06,0\r\r\nPARAM_BROW_L_ANGLE=-0.24,-0.44,-0.8,-1,-1,-0.998,-0.996,-0.993,-0.989,-0.983,-0.978,-0.971,-0.963,-0.955,-0.945,-0.935,-0.924,-0.912,-0.899,-0.885,-0.871,-0.855,-0.839,-0.822,-0.804,-0.785,-0.765,-0.74,-0.72,-0.7,-0.68,-0.65,-0.63,-0.6,-0.58,-0.55,-0.52,-0.49,-0.46,0.44,0.457,0.473,0.488,0.503,0.517,0.53,0.542,0.553,0.564,0.574,0.583,0.592,0.6,0.607,0.613,0.619,0.624,0.628,0.632,0.635,0.637,0.639,0.64,0.64,0.627,0.59,0.54,0.48,0.41,0.33,0.25,0.19,0.12,0.07,0.03,0.01,0\r\r\nPARAM_BROW_R_ANGLE=-0.24,-0.44,-0.8,-1,-1,-0.998,-0.996,-0.993,-0.989,-0.984,-0.978,-0.971,-0.964,-0.955,-0.946,-0.936,-0.925,-0.913,-0.901,-0.887,-0.873,-0.858,-0.842,-0.825,-0.807,-0.789,-0.77,-0.749,-0.73,-0.71,-0.68,-0.66,-0.64,-0.61,-0.58,-0.56,-0.53,-0.5,-0.47,0.4,0.43,0.46,0.49,0.51,0.54,0.56,0.58,0.6,0.624,0.642,0.658,0.674,0.688,0.7,0.712,0.722,0.731,0.739,0.745,0.751,0.755,0.758,0.759,0.76,0.745,0.7,0.64,0.57,0.48,0.39,0.3,0.22,0.15,0.08,0.04,0.01,0\r\r\nPARAM_EAR_DEFORM=0.18,0.56,0.7,0.65,0.55,0.43,0.3,0.19,0.09,0.02,0,0,0.002,0.005,0.008,0.013,0.018,0.023,0.029,0.036,0.043,0.05,0.058,0.065,0.073,0.08,0.088,0.095,0.102,0.108,0.114,0.12,0.125,0.129,0.133,0.136,0.138,0.14,0.14,0.12,0.06,-0.04,-0.15,-0.28,-0.41,-0.55,-0.67,-0.78,-0.87,-0.94,-0.99,-1,-1,-1,-1,-1,-0.999,-1,-0.997,-0.996,-0.995,-0.994,-0.992,-0.99,-0.988,-0.986,-0.983,-0.98,-0.977,-0.974,-0.97,-0.89,-0.72,-0.48,-0.25,-0.07,0\r\r\nPARAM_MOUTH_OPEN_Y=1,1,1,1,0.995,0.982,0.963,0.94,0.92,0.89,0.872,0.857,0.85,0.847,0.845,0.843,0.841,0.84,0.838,0.837,0.836,0.835,0.833,0.832,0.83,0.82,0.813,0.807,0.8,0.794,0.787,0.781,0.775,0.769,0.763,0.757,0.752,0.746,0.74,0.16,0.23,0.35,0.43,0.46,0.38,0.25,0.16,0.13,0.21,0.35,0.44,0.47,0.39,0.24,0.16,0.47,0.58,0.579,0.577,0.574,0.571,0.566,0.561,0.555,0.55,0.544,0.538,0.532,0.526,0.521,0.516,0.511,0.508,0.504,0.502,0.501,0.5\r\r\nPARAM_BODY_ANGLE_X=0,-0.79,-2.21,-3,-2.86,-2.49,-1.96,-1.33,-0.67,-0.04,0.49,0.86,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,2.63,7.37,10,9.55,8.35,6.62,4.56,2.44,0.38,-1.35,-2.55,-3,-2.94,-2.78,-2.54,-2.24,-1.9,-1.54,-1.19,-0.87,-0.58,-0.34,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=-0.73,-1.32,-2.4,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.62,0.72,0.9,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.99,0.96,0.92,0.87,0.82,0.76,0.7,0.64,0.6,0.56,0.53,0.507,0.5,0.506,0.521,0.54,0.57,0.6,0.64,0.67,0.7,0.73,0.75,0.766,0.776,0.78,0.77,0.74,0.7,0.65,0.59,0.53,0.46,0.4,0.35,0.31,0.28,0.27,0.275,0.287,0.305,0.33,0.35,0.38,0.41,0.43,0.46,0.474,0.488,0.497,0.5\r\r\nPARAM_HAIR_SIDE=0.13,0.41,0.51,0.33,0.03,-0.17,-0.24,-0.13,0.05,0.17,0.21,0.16,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0.001,0.002,0.004,0.006,0.008,0.011,0.014,0.017,0.02,0.024,0.028,0.031,0.035,0.04,0.044,0.048,0.052,0.057,0.061,0.065,0.069,0.074,0.078,0.081,0.085,0.089,0.092,0.095,0.098,0.101,0.103,0.105,0.107,0.108,0.109,0.11,0.11,0.09,0.03,-0.05,-0.15,-0.26,-0.39,-0.5,-0.61,-0.71,-0.8,-0.86,-0.9,-0.91,-0.91,-0.909,-0.907,-0.904,-0.901,-0.896,-0.89,-0.883,-0.875,-0.865,-0.854,-0.842,-0.828,-0.812,-0.795,-0.776,-0.756,-0.73,-0.71,-0.64,-0.5,-0.33,-0.17,-0.05,0\r\r\nPARAM_WING_DEFORM=0.26,0.8,1,0.97,0.89,0.77,0.61,0.44,0.26,0.09,-0.08,-0.23,-0.35,-0.44,-0.5,-0.52,-0.506,-0.47,-0.41,-0.35,-0.28,-0.21,-0.14,-0.09,-0.04,0,0.04,0.07,0.09,0.112,0.127,0.139,0.147,0.153,0.156,0.159,0.16,0.16,0.16,0.142,0.09,0.02,-0.07,-0.17,-0.27,-0.38,-0.47,-0.56,-0.63,-0.68,-0.72,-0.73,-0.73,-0.729,-0.727,-0.725,-0.722,-0.718,-0.712,-0.706,-0.698,-0.69,-0.679,-0.668,-0.655,-0.641,-0.626,-0.609,-0.591,-0.571,-0.55,-0.49,-0.39,-0.26,-0.13,-0.04,0\r\r\nPARAM_RIBBON_DEFORM=0.06,0.19,0.39,0.58,0.72,0.77,0.72,0.58,0.37,0.13,-0.12,-0.36,-0.57,-0.71,-0.76,-0.69,-0.51,-0.28,-0.04,0.14,0.21,0.16,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.47,-0.68,-0.85,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.92,-0.74,-0.5,-0.26,-0.08,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Sleeping.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10.03,10.13,10.26,10.42,10.58,10.74,10.87,10.97,11,10.79,10.24,9.44,8.49,7.51,6.56,5.76,5.21,5,5.015,5.06,5.13,5.23,5.35,5.49,5.65,5.83,6.04,6.25,6.48,6.73,6.99,7.25,7.53,7.81,8.1,8.4,8.7,9.01,9.31,9.61,9.92,10.22,10.52,10.81,11.1,11.38,11.66,11.92,12.17,12.42,12.65,12.86,13.06,13.25,13.41,13.56,13.69,13.8,13.88,13.95,13.99,14,13.98,13.92,13.83,13.71,13.57,13.41,13.22,13.02,12.82,12.6,12.37,12.14,11.91,11.69,11.47,11.25,11.05,10.85,10.67,10.51,10.36,10.24,10.14,10.06,10.02,10\r\r\nPARAM_ANGLE_Y=-8,-8.04,-8.15,-8.32,-8.56,-8.86,-9.21,-9.63,-10.09,-10.59,-11.14,-11.73,-12.35,-12.99,-13.68,-14.38,-15.11,-15.85,-16.6,-17.36,-18.13,-18.9,-19.68,-20.45,-21.19,-21.95,-22.69,-23.4,-24.09,-24.77,-25.41,-26.03,-26.61,-27.15,-27.66,-28.12,-28.54,-28.92,-29.24,-29.5,-29.72,-29.87,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-28.52,-24.55,-18.81,-12.01,-4.99,1.81,7.55,11.52,13,12.93,12.72,12.38,11.92,11.34,10.66,9.87,9.01,8.05,7.02,5.91,4.73,3.51,2.23,0.91,-0.43,-1.83,-3.26,-4.68,-6.14,-7.59,-9.04,-10.51,-11.95,-13.38,-14.78,-16.16,-17.5,-18.81,-20.07,-21.27,-22.44,-23.54,-24.55,-25.52,-26.41,-27.2,-27.91,-28.52,-29.04,-29.45,-29.75,-29.94,-30,-29.89,-29.58,-29.08,-28.43,-27.65,-26.73,-25.72,-24.63,-23.49,-22.27,-21.05,-19.79,-18.52,-17.28,-16.07,-14.87,-13.75,-12.68,-11.68,-10.79,-9.99,-9.31,-8.76,-8.35,-8.09,-8\r\r\nPARAM_ANGLE_Z=10,10.005,10.018,10.04,10.07,10.11,10.16,10.22,10.28,10.36,10.44,10.53,10.63,10.74,10.85,10.97,11.1,11.24,11.38,11.54,11.69,11.86,12.03,12.21,12.4,12.59,12.79,12.99,13.2,13.42,13.64,13.87,14.11,14.34,14.59,14.84,15.09,15.35,15.61,15.88,16.16,16.43,16.71,17,17.27,17.49,17.66,17.79,17.88,17.94,17.98,17.995,18,17.52,16.23,14.36,12.14,9.86,7.64,5.77,4.48,4,4.02,4.08,4.19,4.33,4.5,4.71,4.95,5.21,5.5,5.81,6.14,6.5,6.87,7.26,7.66,8.06,8.48,8.91,9.34,9.79,10.22,10.66,11.11,11.54,11.97,12.4,12.82,13.22,13.62,14,14.36,14.71,15.05,15.35,15.65,15.91,16.15,16.37,16.55,16.71,16.83,16.93,16.98,17,16.96,16.86,16.71,16.5,16.25,15.96,15.64,15.29,14.93,14.54,14.15,13.75,13.35,12.95,12.57,12.19,11.83,11.49,11.17,10.89,10.63,10.42,10.24,10.11,10.03,10\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06\r\r\nPARAM_EYE_R_OPEN=0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=-1\r\r\nPARAM_BROW_R_Y=-1\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.789,0.79,0.79,0.788,0.79,0.79,0.787,0.79,0.786,0.79,0.785,0.78,0.784,0.78,0.783,0.78,0.782,0.781,0.78,0.78,0.78,0.779,0.78,0.777,0.777,0.78,0.776,0.78,0.775,0.77,0.774,0.77,0.773,0.77,0.77,0.772,0.77,0.77,0.771,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.773,0.783,0.796,0.812,0.828,0.844,0.857,0.867,0.87,0.87,0.87,0.87,0.869,0.867,0.864,0.86,0.84,0.79,0.74,0.69,0.64,0.62,0.61,0.619,0.639,0.66,0.69,0.71,0.732,0.745,0.75,0.742,0.722,0.7,0.67,0.656,0.644,0.64,0.642,0.647,0.656,0.666,0.679,0.693,0.708,0.722,0.737,0.751,0.764,0.774,0.783,0.788,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.5,0.5,0.5,0.498,0.498,0.497,0.495,0.494,0.492,0.49,0.488,0.486,0.483,0.48,0.477,0.474,0.47,0.466,0.462,0.458,0.454,0.449,0.444,0.439,0.433,0.427,0.422,0.415,0.409,0.402,0.395,0.388,0.38,0.372,0.364,0.356,0.347,0.338,0.329,0.32,0.31,0.3,0.29,0.278,0.264,0.25,0.235,0.221,0.209,0.199,0.192,0.19,0.19,0.191,0.193,0.195,0.198,0.202,0.206,0.21,0.215,0.22,0.226,0.232,0.239,0.246,0.253,0.26,0.268,0.276,0.284,0.292,0.301,0.309,0.318,0.326,0.335,0.344,0.353,0.361,0.37,0.379,0.387,0.395,0.404,0.412,0.419,0.427,0.434,0.441,0.448,0.455,0.461,0.467,0.472,0.477,0.482,0.486,0.489,0.492,0.495,0.497,0.499,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Success.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0.95,3.27,6.37,9.5,11.91,13,13.17,13.31,13.44,13.56,13.65,13.73,13.8,13.85,13.9,13.93,13.96,13.974,13.987,13.995,13.999,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12.97,10.47,7.41,4.43,2.04,0.51,0\r\r\nPARAM_ANGLE_Z=0,1.78,6.1,11.86,17.66,22.07,24,24.19,24.36,24.54,24.7,24.85,25,25.14,25.28,25.41,25.53,25.65,25.76,25.87,25.96,26.06,26.15,26.23,26.31,26.38,26.45,26.52,26.58,26.63,26.68,26.73,26.77,26.81,26.84,26.87,26.9,26.93,26.946,26.963,26.976,26.987,26.994,26.999,27,25.01,20.19,14.29,8.54,3.93,0.99,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.52,0.58,0.66,0.74,0.8,0.83,0.831,0.832,0.834,0.835,0.836,0.837,0.838,0.839,0.839,0.84,0.841,0.84,0.843,0.843,0.84,0.844,0.84,0.845,0.85,0.846,0.85,0.847,0.85,0.85,0.848,0.85,0.85,0.85,0.849,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.82,0.76,0.69,0.61,0.55,0.51,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.52,0.58,0.66,0.74,0.8,0.83,0.832,0.834,0.835,0.837,0.839,0.84,0.842,0.843,0.844,0.845,0.847,0.848,0.849,0.85,0.851,0.852,0.852,0.853,0.85,0.855,0.855,0.86,0.856,0.86,0.857,0.86,0.858,0.86,0.86,0.859,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.83,0.77,0.69,0.61,0.55,0.51,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,-0.08,-0.26,-0.5,-0.74,-0.92,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0\r\r\nPARAM_BROW_L_Y=0,-0.04,-0.15,-0.29,-0.43,-0.54,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.579,-0.58,-0.578,-0.58,-0.577,-0.576,-0.58,-0.574,-0.573,-0.572,-0.571,-0.57,-0.569,-0.567,-0.566,-0.564,-0.562,-0.561,-0.559,-0.557,-0.554,-0.552,-0.55,-0.547,-0.545,-0.542,-0.539,-0.537,-0.533,-0.53,-0.527,-0.524,-0.52,-0.48,-0.38,-0.27,-0.16,-0.07,-0.02,0\r\r\nPARAM_BROW_R_Y=0,-0.06,-0.21,-0.4,-0.59,-0.74,-0.8,-0.8,-0.8,-0.8,-0.8,-0.799,-0.798,-0.8,-0.796,-0.795,-0.794,-0.793,-0.791,-0.79,-0.788,-0.786,-0.784,-0.781,-0.779,-0.776,-0.774,-0.771,-0.768,-0.764,-0.761,-0.757,-0.753,-0.749,-0.745,-0.74,-0.736,-0.731,-0.726,-0.72,-0.715,-0.709,-0.703,-0.696,-0.69,-0.63,-0.51,-0.36,-0.21,-0.1,-0.02,0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.46,0.37,0.25,0.13,0.04,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0.002,0,0,0.003,0,0.004,0,0.005,0.01,0.006,0.007,0.01,0.008,0.009,0.01,0.01,0.012,0.013,0.014,0.014,0.016,0.017,0.018,0.019,0.02,0.06,0.14,0.25,0.35,0.43,0.48,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.014,-0.05,-0.11,-0.19,-0.28,-0.39,-0.5,-0.61,-0.72,-0.82,-0.92,-1,-1.08,-1.15,-1.22,-1.29,-1.35,-1.41,-1.46,-1.51,-1.56,-1.6,-1.65,-1.68,-1.72,-1.75,-1.78,-1.81,-1.84,-1.86,-1.88,-1.901,-1.919,-1.934,-1.948,-1.959,-1.969,-1.978,-1.985,-1.991,-1.995,-1.998,-1.999,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0\r\r\nPARAM_BREATH=0.5,0.498,0.491,0.481,0.469,0.455,0.44,0.425,0.411,0.399,0.389,0.382,0.38,0.381,0.385,0.392,0.401,0.411,0.424,0.438,0.452,0.469,0.485,0.502,0.52,0.538,0.555,0.571,0.588,0.602,0.616,0.629,0.639,0.648,0.655,0.659,0.66,0.658,0.652,0.643,0.632,0.618,0.604,0.588,0.572,0.556,0.542,0.528,0.517,0.508,0.502,0.5\r\r\nPARAM_HAIR_SIDE=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.75,0.34,-0.04,-0.31,-0.42,-0.23,0.08,0.3,0.37,0.3,0.2,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.91,0.77,0.63,0.54,0.5,0.62,0.82,0.96,1,1,1,1,1,1,1,1,1,0.995,0.981,0.96,0.93,0.89,0.85,0.81,0.76,0.7,0.65,0.59,0.54,0.48,0.42,0.37,0.31,0.26,0.21,0.17,0.13,0.09,0.06,0.03,0.016,0.004,0\r\r\nPARAM_WING_ANGLE=0,0.02,0.07,0.15,0.22,0.27,0.29,0.286,0.276,0.26,0.24,0.22,0.19,0.16,0.13,0.11,0.08,0.06,0.039,0.023,0.01,0.003,0,0.04,0.12,0.16,0.12,0.04,0,0.03,0.1,0.13,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_WING_DEFORM=0,0.03,0.11,0.21,0.3,0.38,0.41,0.405,0.39,0.37,0.34,0.3,0.27,0.23,0.19,0.15,0.12,0.08,0.06,0.03,0.015,0.004,0,0.04,0.12,0.16,0.12,0.04,0,0.04,0.13,0.17,0.13,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0,0.03,0.1,0.2,0.29,0.36,0.39,0.39,0.39,0.39,0.389,0.388,0.387,0.385,0.384,0.381,0.379,0.376,0.373,0.369,0.365,0.36,0.355,0.35,0.343,0.337,0.33,0.322,0.313,0.304,0.295,0.284,0.274,0.262,0.25,0.234,0.216,0.197,0.178,0.158,0.138,0.118,0.099,0.081,0.064,0.049,0.035,0.023,0.013,0.006,0.002,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Sukebei1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.53,-1.47,-2,-1.93,-1.75,-1.49,-1.19,-0.88,-0.59,-0.35,-0.16,-0.04,0,0,0,0,0,0,0,0,0.18,0.7,1.48,2.49,3.68,5.03,6.47,7.97,9.52,11.08,12.61,14.09,15.51,16.8,17.99,19.01,19.84,20.46,20.86,21,21,21,21,21,21,21,21,21,21,21,21,21,20.28,18.34,15.54,12.22,8.78,5.46,2.66,0.72,0\r\r\nPARAM_ANGLE_Y=0,4.73,13.27,18,16.35,12.02,5.76,-1.39,-8.81,-15.73,-21.64,-26.15,-29,-30,-28.01,-23.19,-17.29,-11.54,-6.93,-3.99,-3,-3.23,-3.9,-4.9,-6.2,-7.73,-9.47,-11.32,-13.25,-15.24,-17.25,-19.21,-21.12,-22.94,-24.6,-26.13,-27.44,-28.51,-29.31,-29.82,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-28.97,-26.2,-22.2,-17.45,-12.55,-7.8,-3.8,-1.03,0\r\r\nPARAM_ANGLE_Z=0,0.006,0.023,0.05,0.09,0.13,0.19,0.25,0.33,0.4,0.49,0.58,0.68,0.77,0.88,0.98,1.09,1.2,1.32,1.43,1.54,1.66,1.77,1.88,1.98,2.09,2.19,2.29,2.39,2.47,2.56,2.64,2.71,2.77,2.83,2.88,2.92,2.96,2.98,2.995,3,3,3,3,3,3,3,3,3,3,3,3,3,2.9,2.62,2.22,1.75,1.25,0.78,0.38,0.1,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.56,0.65,0.73,0.8,0.82,0.82,0.82,0.821,0.82,0.818,0.815,0.81,0.794,0.77,0.73,0.69,0.65,0.61,0.58,0.55,0.52,0.506,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.56,0.65,0.73,0.8,0.82,0.82,0.82,0.821,0.82,0.818,0.815,0.81,0.794,0.77,0.73,0.69,0.65,0.61,0.58,0.55,0.52,0.506,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0,0.003,0.007,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.008,0.007,0.006,0.005,0.003,0.002,0,-0.002,-0.004,-0.006,-0.009,-0.011,-0.014,-0.017,-0.02,-0.024,-0.028,-0.032,-0.036,-0.04,-0.045,-0.05,-0.059,-0.073,-0.091,-0.111,-0.131,-0.15,-0.165,-0.176,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.174,-0.157,-0.13,-0.1,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_EYE_BALL_Y=0,-0.09,-0.24,-0.33,-0.328,-0.324,-0.317,-0.307,-0.295,-0.281,-0.264,-0.246,-0.226,-0.2,-0.18,-0.16,-0.13,-0.11,-0.08,-0.05,-0.03,0,0.03,0.06,0.08,0.11,0.13,0.16,0.18,0.21,0.23,0.25,0.269,0.282,0.29,0.294,0.295,0.29,0.293,0.291,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.25,0.21,0.17,0.12,0.08,0.04,0.01,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.5,-0.63,-0.68,-0.68,-0.677,-0.675,-0.673,-0.671,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.65,-0.59,-0.5,-0.39,-0.28,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.51,-0.64,-0.69,-0.689,-0.685,-0.681,-0.676,-0.673,-0.671,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.65,-0.59,-0.5,-0.39,-0.28,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_L_ANGLE=0,-0.16,-0.42,-0.6,-0.66,-0.61,-0.49,-0.3,-0.09,0.14,0.35,0.54,0.66,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.69,0.62,0.53,0.41,0.3,0.18,0.09,0.02,0\r\r\nPARAM_BROW_R_ANGLE=0,-0.16,-0.43,-0.61,-0.67,-0.62,-0.5,-0.31,-0.1,0.13,0.34,0.53,0.65,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.68,0.61,0.52,0.41,0.29,0.18,0.09,0.02,0\r\r\nPARAM_EAR_DEFORM=0,0.08,0.22,0.34,0.43,0.47,0.468,0.46,0.448,0.432,0.41,0.39,0.36,0.32,0.29,0.25,0.2,0.16,0.11,0.06,0,-0.06,-0.11,-0.16,-0.21,-0.26,-0.31,-0.36,-0.41,-0.46,-0.51,-0.56,-0.61,-0.67,-0.72,-0.78,-0.86,-0.92,-0.96,-0.99,-1,-0.997,-0.988,-0.972,-0.95,-0.92,-0.88,-0.84,-0.78,-0.72,-0.65,-0.57,-0.48,-0.39,-0.31,-0.23,-0.16,-0.11,-0.06,-0.03,-0.01,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.61,0.8,0.91,0.91,0.91,0.908,0.905,0.9,0.87,0.83,0.79,0.76,0.75,0.75,0.751,0.753,0.755,0.758,0.761,0.765,0.769,0.773,0.778,0.783,0.788,0.792,0.798,0.802,0.807,0.812,0.817,0.821,0.825,0.829,0.832,0.835,0.837,0.839,0.84,0.84,0.84,0.84,0.838,0.836,0.833,0.828,0.821,0.812,0.801,0.787,0.77,0.75,0.72,0.69,0.66,0.62,0.58,0.55,0.52,0.506,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.97,2.56,3.65,4,3.79,3.24,2.44,1.49,0.51,-0.44,-1.24,-1.79,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.6,0.77,0.89,0.93,0.915,0.88,0.82,0.75,0.68,0.61,0.55,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.15,0.38,0.55,0.6,0.588,0.55,0.5,0.43,0.35,0.27,0.18,0.09,0,-0.09,-0.16,-0.23,-0.29,-0.33,-0.35,-0.36,-0.353,-0.334,-0.3,-0.27,-0.22,-0.17,-0.12,-0.07,-0.02,0.03,0.08,0.11,0.14,0.163,0.17,0.17,0.167,0.163,0.158,0.152,0.145,0.137,0.129,0.12,0.11,0.101,0.091,0.081,0.072,0.062,0.053,0.044,0.036,0.028,0.022,0.015,0.01,0.006,0.003,0.001,0\r\r\nPARAM_WING_DEFORM=0,-0.24,-0.64,-0.91,-1,-0.995,-0.979,-0.95,-0.92,-0.88,-0.83,-0.77,-0.71,-0.65,-0.58,-0.5,-0.43,-0.35,-0.27,-0.19,-0.11,-0.03,0.05,0.12,0.19,0.26,0.33,0.39,0.44,0.49,0.54,0.57,0.6,0.62,0.636,0.64,0.637,0.628,0.613,0.594,0.57,0.54,0.52,0.48,0.45,0.42,0.38,0.34,0.31,0.27,0.23,0.2,0.17,0.14,0.11,0.08,0.06,0.038,0.022,0.01,0.003,0\r\r\nPARAM_RIBBON_DEFORM=0,0.07,0.18,0.29,0.36,0.39,0.36,0.29,0.18,0.06,-0.06,-0.18,-0.28,-0.36,-0.4,-0.42,-0.38,-0.29,-0.18,-0.06,0.04,0.13,0.19,0.21,0.195,0.16,0.11,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.028,0.06,0.1,0.15,0.2,0.26,0.32,0.38,0.43,0.48,0.52,0.55,0.573,0.58,0.58,0.58,0.579,0.577,0.576,0.574,0.571,0.567,0.563,0.558,0.553,0.546,0.539,0.531,0.521,0.511,0.5,0.488,0.475,0.461,0.446,0.43,0.4,0.35,0.29,0.23,0.16,0.1,0.05,0.01,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Sukebei2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.5,-1.63,-3.26,-5.36,-8,-12.01,-14.49,-15.68,-16,-15.24,-13.21,-10.15,-6.31,-2.07,2.44,6.87,11.01,14.67,17.75,20.06,21.51,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21.58,20.49,18.89,16.93,14.74,12.45,10.13,7.88,5.78,3.88,2.31,1.08,0.28,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,30,30,30,30,28.92,26.03,21.68,16.23,10.2,3.79,-2.5,-8.38,-13.59,-17.96,-21.25,-23.3,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-23.54,-22.35,-20.61,-18.46,-16.07,-13.58,-11.05,-8.6,-6.31,-4.24,-2.52,-1.17,-0.3,0\r\r\nPARAM_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.87,6.52,6.01,5.39,4.69,3.96,3.22,2.51,1.84,1.24,0.74,0.34,0.09,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.94,0.94,0.94,0.94,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.94,0.94,0.94,0.94,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-0.94,-0.94,-0.94,-0.94,-0.941,-0.942,-0.94,-0.944,-0.945,-0.946,-0.948,-0.949,-0.951,-0.952,-0.954,-0.956,-0.957,-0.959,-0.961,-0.963,-0.965,-0.967,-0.969,-0.971,-0.973,-0.975,-0.977,-0.979,-0.981,-0.983,-0.984,-0.986,-0.988,-0.989,-0.991,-0.992,-0.994,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1,-0.999,-0.997,-0.994,-0.991,-0.987,-0.983,-0.978,-0.974,-0.971,-0.967,-0.964,-0.962,-0.961,-0.96\r\r\nPARAM_EYE_R_OPEN2=-0.94,-0.94,-0.94,-0.94,-0.941,-0.942,-0.94,-0.944,-0.945,-0.946,-0.948,-0.949,-0.951,-0.952,-0.954,-0.956,-0.957,-0.959,-0.961,-0.963,-0.965,-0.967,-0.969,-0.971,-0.973,-0.975,-0.977,-0.979,-0.981,-0.983,-0.984,-0.986,-0.988,-0.989,-0.991,-0.992,-0.994,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1,-0.999,-0.997,-0.993,-0.988,-0.983,-0.978,-0.973,-0.968,-0.963,-0.959,-0.955,-0.952,-0.951,-0.95\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.028,-0.044,-0.055,-0.06,-0.06,-0.06,-0.06,-0.06,-0.063,-0.071,-0.083,-0.098,-0.115,-0.133,-0.15,-0.167,-0.181,-0.193,-0.202,-0.208,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.206,-0.196,-0.18,-0.162,-0.14,-0.12,-0.1,-0.08,-0.055,-0.037,-0.022,-0.01,-0.003,0\r\r\nPARAM_EYE_BALL_Y=0,-0.12,-0.31,-0.49,-0.62,-0.67,-0.67,-0.67,-0.67,-0.67,-0.652,-0.61,-0.53,-0.45,-0.35,-0.24,-0.14,-0.04,0.04,0.11,0.17,0.2,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.206,0.196,0.18,0.162,0.14,0.12,0.1,0.08,0.055,0.037,0.022,0.01,0.003,0\r\r\nPARAM_BROW_L_Y=0,0.11,0.27,0.43,0.55,0.59,0.59,0.59,0.59,0.59,0.56,0.49,0.39,0.26,0.11,-0.05,-0.2,-0.34,-0.47,-0.57,-0.65,-0.7,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.67,-0.54,-0.38,-0.23,-0.1,-0.03,0\r\r\nPARAM_BROW_R_Y=0,0.1,0.27,0.42,0.54,0.58,0.58,0.58,0.58,0.58,0.55,0.49,0.38,0.25,0.11,-0.05,-0.2,-0.34,-0.46,-0.57,-0.64,-0.69,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.66,-0.53,-0.38,-0.22,-0.1,-0.03,0\r\r\nPARAM_BROW_ANGLE=0.2,0.15,0.07,0,-0.05,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.56,-0.62,-0.65,-0.67,-0.678,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,0,0.13,0.19,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.46,-0.39,-0.33,-0.29,-0.27,-0.27,-0.27,-0.27,-0.27,-0.268,-0.262,-0.252,-0.238,-0.221,-0.202,-0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,-0.43,-0.48,-0.495,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.74,0.48,0.24,0.07,0,0,0,0,0,-0.007,-0.03,-0.07,-0.12,-0.18,-0.26,-0.34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.85,0.88,0.897,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0.002,0.005,0.01,0.015,0.022,0.03,0.039,0.049,0.061,0.073,0.087,0.101,0.116,0.133,0.15,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.259,0.26,0.257,0.256,0.254,0.252,0.25,0.19,0.09,0.02,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,0.34,0.96,1.66,2.35,3,3.67,3.92,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.97,3.9,3.78,3.64,3.46,3.25,3.03,2.79,2.54,2.29,2.03,1.77,1.52,1.28,1.05,0.83,0.63,0.45,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.43,3.72,5.86,7.4,8,8.08,8.02,7.65,7,5.64,4.16,2.58,0.95,-0.65,-2.2,-3.62,-4.89,-5.96,-6.84,-7.48,-7.87,-8,-7.95,-7.8,-7.57,-7.28,-6.91,-6.51,-6.06,-5.59,-5.09,-4.58,-4.06,-3.55,-3.05,-2.55,-2.09,-1.66,-1.26,-0.9,-0.59,-0.34,-0.16,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0.03,0.09,0.14,0.18,0.19,0.182,0.16,0.13,0.08,0.03,-0.02,-0.08,-0.14,-0.19,-0.25,-0.3,-0.35,-0.4,-0.43,-0.46,-0.481,-0.49,-0.493,-0.496,-0.498,-0.5,-0.502,-0.504,-0.505,-0.506,-0.507,-0.51,-0.508,-0.51,-0.509,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.5,-0.47,-0.44,-0.39,-0.34,-0.29,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.99,0.97,0.93,0.88,0.83,0.78,0.73,0.68,0.63,0.59,0.55,0.52,0.506,0.5\r\r\nPARAM_BOING=0,-0.2,-0.57,-0.77,-0.64,-0.31,0.11,0.54,0.87,1,0.9,0.7,0.44,0.18,-0.07,-0.27,-0.4,-0.45,-0.33,-0.15,0.03,0.15,0.2,0.18,0.12,0.04,-0.05,-0.11,-0.13,-0.12,-0.1,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.015,-0.05,-0.11,-0.18,-0.25,-0.32,-0.38,-0.42,-0.43,-0.35,-0.14,0.13,0.39,0.6,0.68,0.62,0.47,0.29,0.12,-0.02,-0.11,-0.14,-0.129,-0.1,-0.07,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.96,0.86,0.69,0.49,0.26,0.01,-0.23,-0.46,-0.66,-0.83,-0.93,-0.97,-0.93,-0.83,-0.7,-0.54,-0.38,-0.22,-0.07,0.06,0.16,0.23,0.25,0.25,0.25,0.248,0.247,0.244,0.24,0.234,0.228,0.219,0.208,0.195,0.18,0.161,0.141,0.123,0.104,0.087,0.071,0.056,0.042,0.03,0.02,0.011,0.005,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.96,0.85,0.69,0.48,0.25,0,-0.25,-0.48,-0.69,-0.85,-0.96,-1,-0.987,-0.95,-0.91,-0.85,-0.8,-0.74,-0.69,-0.65,-0.61,-0.59,-0.58,-0.581,-0.585,-0.591,-0.598,-0.606,-0.615,-0.624,-0.632,-0.639,-0.645,-0.649,-0.65,-0.638,-0.61,-0.56,-0.5,-0.44,-0.37,-0.3,-0.23,-0.17,-0.11,-0.07,-0.03,-0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,-0.17,-0.49,-0.66,-0.54,-0.23,0.17,0.57,0.88,1,0.85,0.5,0.06,-0.37,-0.71,-0.93,-1,-0.89,-0.63,-0.32,-0.01,0.24,0.4,0.45,0.4,0.28,0.13,-0.01,-0.12,-0.2,-0.22,-0.217,-0.209,-0.197,-0.181,-0.163,-0.142,-0.12,-0.1,-0.08,-0.057,-0.039,-0.023,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.013,-0.04,-0.08,-0.11,-0.15,-0.17,-0.193,-0.2,-0.194,-0.178,-0.15,-0.12,-0.08,-0.04,0,0.05,0.09,0.13,0.17,0.2,0.22,0.244,0.256,0.26,0.259,0.257,0.254,0.25,0.244,0.238,0.231,0.223,0.214,0.205,0.196,0.185,0.175,0.164,0.153,0.143,0.131,0.12,0.109,0.099,0.088,0.078,0.068,0.058,0.049,0.041,0.033,0.026,0.019,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_WING_DEFORM=0,0.04,0.11,0.21,0.31,0.4,0.47,0.52,0.54,0.539,0.538,0.535,0.531,0.525,0.519,0.512,0.504,0.495,0.486,0.475,0.464,0.453,0.44,0.427,0.414,0.4,0.386,0.371,0.356,0.341,0.325,0.309,0.294,0.278,0.262,0.246,0.231,0.215,0.199,0.184,0.169,0.154,0.14,0.126,0.113,0.1,0.087,0.076,0.065,0.054,0.045,0.036,0.028,0.021,0.015,0.009,0.005,0.002,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Sukebei3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-1.52,-4.1,-6.79,-9.18,-11,-12.79,-14.45,-15.92,-17.28,-18.5,-19.62,-20.62,-21.5,-22.3,-23,-23.62,-24.15,-24.62,-25,-25.32,-25.57,-25.76,-25.9,-25.97,-26,-25.96,-25.85,-25.66,-25.4,-25.09,-24.72,-24.3,-23.84,-23.34,-22.8,-22.23,-21.64,-21.03,-20.4,-19.76,-19.13,-18.49,-17.86,-17.24,-16.62,-16.03,-15.46,-14.92,-14.41,-13.93,-13.49,-13.1,-12.75,-12.45,-12.19,-12,-11.82,-11.65,-11.51,-11.38,-11.27,-11.16,-11.07,-10.99,-10.92,-10.85,-10.79,-10.73,-10.67,-10.62,-10.56,-10.51,-10.45,-10.39,-10.32,-10.25,-10.18,-10.09,-10,-0.26,15.6,26.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.62,28.55,26.9,24.77,22.31,19.59,16.8,13.95,11.17,8.52,6.14,4.05,2.33,1.07,0.27,0\r\r\nPARAM_ANGLE_Y=0,-4.31,-11.27,-17.86,-22.77,-25,-25.63,-26.2,-26.71,-27.17,-27.59,-27.96,-28.29,-28.58,-28.84,-29.07,-29.27,-29.44,-29.58,-29.7,-29.8,-29.87,-29.93,-29.97,-29.99,-30,-29.997,-29.989,-29.975,-29.956,-29.93,-29.9,-29.86,-29.82,-29.77,-29.72,-29.66,-29.59,-29.52,-29.44,-29.36,-29.27,-29.18,-29.07,-28.97,-28.85,-28.73,-28.61,-28.47,-28.33,-28.19,-28.03,-27.87,-27.71,-27.54,-27.36,-27.17,-26.98,-26.78,-26.58,-26.37,-26.15,-25.92,-25.69,-25.45,-25.2,-24.95,-24.69,-24.42,-24.15,-23.86,-23.58,-23.28,-22.98,-22.67,-22.35,-22.02,-21.69,-21.35,-21,-18.9,-15.84,-13.75,-13,-12.85,-12.71,-12.6,-12.49,-12.39,-12.29,-12.2,-12.11,-12.01,-11.9,-11.79,-11.66,-11.52,-11.36,-11.19,-11,-10.65,-10.11,-9.41,-8.57,-7.65,-6.67,-5.68,-4.69,-3.74,-2.84,-2.04,-1.34,-0.77,-0.35,-0.09,0\r\r\nPARAM_ANGLE_Z=0,-0.02,-0.09,-0.18,-0.3,-0.44,-0.6,-0.79,-1,-1.26,-1.5,-1.72,-1.92,-2.11,-2.27,-2.42,-2.55,-2.66,-2.75,-2.83,-2.89,-2.94,-2.97,-2.994,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-0.82,2.75,5.2,6,5.981,5.92,5.83,5.71,5.57,5.4,5.2,4.99,4.76,4.52,4.26,4,3.73,3.46,3.18,2.89,2.62,2.35,2.08,1.82,1.56,1.32,1.1,0.89,0.7,0.52,0.37,0.24,0.14,0.06,0.02,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.48,0.38,0.28,0.21,0.18,0.18,0.18,0.18,0.181,0.183,0.186,0.19,0.21,0.26,0.31,0.36,0.41,0.44,0.46,0.472,0.483,0.493,0.502,0.51,0.517,0.523,0.529,0.533,0.537,0.541,0.544,0.546,0.547,0.549,0.549,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.66,0.84,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.978,0.95,0.92,0.88,0.84,0.8,0.76,0.72,0.68,0.64,0.61,0.58,0.566,0.554,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.48,0.38,0.28,0.21,0.18,0.18,0.18,0.18,0.181,0.183,0.186,0.19,0.21,0.26,0.31,0.36,0.41,0.44,0.46,0.472,0.483,0.493,0.502,0.51,0.517,0.523,0.529,0.533,0.537,0.541,0.544,0.546,0.547,0.549,0.549,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.66,0.84,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.978,0.95,0.92,0.88,0.84,0.8,0.76,0.72,0.68,0.64,0.61,0.58,0.566,0.554,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0,-0.002,-0.004,-0.007,-0.011,-0.016,-0.02,-0.026,-0.031,-0.037,-0.043,-0.049,-0.055,-0.061,-0.067,-0.073,-0.078,-0.082,-0.087,-0.091,-0.094,-0.096,-0.098,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.098,-0.091,-0.08,-0.067,-0.051,-0.033,-0.014,0.004,0.023,0.041,0.057,0.07,0.081,0.088,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.089,0.086,0.081,0.074,0.067,0.059,0.05,0.042,0.034,0.026,0.018,0.012,0.007,0.003,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,-0.002,-0.007,-0.016,-0.028,-0.042,-0.059,-0.078,-0.098,-0.12,-0.14,-0.16,-0.19,-0.21,-0.23,-0.25,-0.28,-0.295,-0.313,-0.33,-0.344,-0.357,-0.367,-0.374,-0.378,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.374,-0.358,-0.33,-0.3,-0.26,-0.22,-0.17,-0.13,-0.08,-0.04,0,0.03,0.06,0.074,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.079,0.076,0.072,0.066,0.06,0.052,0.045,0.037,0.03,0.023,0.016,0.011,0.006,0.003,0.001,0\r\r\nPARAM_BROW_L_Y=0,-0.15,-0.39,-0.61,-0.78,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.829,-0.8,-0.76,-0.72,-0.68,-0.63,-0.59,-0.55,-0.53,-0.507,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.46,-0.42,-0.37,-0.31,-0.25,-0.19,-0.13,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.15,-0.4,-0.62,-0.79,-0.85,-0.85,-0.85,-0.85,-0.85,-0.85,-0.85,-0.839,-0.81,-0.77,-0.73,-0.68,-0.64,-0.59,-0.56,-0.53,-0.507,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.46,-0.42,-0.37,-0.31,-0.25,-0.19,-0.13,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,0.05,-0.18,-0.4,-0.56,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.609,-0.58,-0.54,-0.5,-0.45,-0.41,-0.36,-0.33,-0.3,-0.277,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.35,-0.49,-0.59,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,0.32,0.316,0.306,0.293,0.278,0.262,0.246,0.232,0.219,0.209,0.202,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.34,-0.09,0.14,0.31,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.36,0.3,0.21,0.1,-0.56,-0.558,-0.553,-0.547,-0.539,-0.531,-0.523,-0.516,-0.51,-0.504,-0.501,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.79,0.62,0.46,0.35,0.3,0.301,0.305,0.311,0.32,0.332,0.345,0.361,0.379,0.399,0.42,0.45,0.48,0.487,0.49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.91,-0.8,-0.67,-0.51,-0.34,-0.16,0.02,0.19,0.36,0.51,0.64,0.75,0.83,0.88,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0.002,0.005,0.008,0.013,0.019,0.025,0.033,0.042,0.052,0.062,0.074,0.087,0.1,0.114,0.13,0.146,0.162,0.18,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.247,0.238,0.224,0.206,0.19,0.16,0.14,0.12,0.09,0.07,0.051,0.034,0.019,0.009,0.002,0\r\r\nPARAM_CHEEK=0,0,0,0,0.006,0.03,0.08,0.14,0.21,0.29,0.37,0.45,0.54,0.62,0.7,0.77,0.84,0.89,0.94,0.97,0.99,1,1,0.999,0.998,0.996,0.994,0.992,0.99,0.987,0.985,0.983,0.98,0.978,0.976,0.974,0.972,0.971,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.958,0.92,0.87,0.8,0.72,0.63,0.54,0.45,0.36,0.28,0.2,0.13,0.08,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,0.36,0.93,1.46,1.85,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.999,1.996,1.99,1.982,1.973,1.961,1.946,1.929,1.91,1.89,1.87,1.84,1.81,1.78,1.75,1.71,1.67,1.63,1.59,1.55,1.5,1.45,1.4,1.34,1.28,1.22,1.16,1.09,1.03,0.96,0.88,0.81,0.73,0.65,0.56,0.48,0.39,0.29,0.2,0.1,0,-0.1,-0.21,-0.32,-0.43,-0.55,-0.66,-0.78,-0.91,-1.03,-1.16,-1.29,-1.43,-1.57,-1.71,-1.85,-2,-2.81,-3.98,-4.75,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.97,-4.87,-4.72,-4.53,-4.28,-4.01,-3.71,-3.38,-3.03,-2.68,-2.32,-1.97,-1.62,-1.29,-0.99,-0.72,-0.47,-0.28,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.89,2.32,3.66,4.62,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0,-0.003,-0.006,-0.011,-0.017,-0.024,-0.032,-0.04,-0.05,-0.06,-0.071,-0.082,-0.094,-0.106,-0.118,-0.131,-0.144,-0.157,-0.17,-0.183,-0.196,-0.208,-0.22,-0.232,-0.244,-0.255,-0.266,-0.276,-0.285,-0.294,-0.302,-0.309,-0.315,-0.32,-0.324,-0.327,-0.329,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.2,0.01,0.15,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.199,0.195,0.189,0.181,0.171,0.16,0.148,0.135,0.121,0.107,0.093,0.079,0.065,0.052,0.04,0.029,0.019,0.011,0.005,0.001,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,0.998,0.991,0.981,0.968,0.951,0.932,0.91,0.89,0.86,0.83,0.8,0.77,0.74,0.71,0.68,0.65,0.62,0.59,0.56,0.53,0.5,0.47,0.44,0.42,0.4,0.379,0.362,0.347,0.336,0.327,0.322,0.32,0.32,0.32,0.32,0.321,0.322,0.323,0.324,0.326,0.327,0.329,0.331,0.333,0.335,0.338,0.34,0.343,0.346,0.35,0.353,0.357,0.361,0.365,0.37,0.374,0.379,0.384,0.39,0.395,0.401,0.407,0.414,0.42,0.427,0.434,0.441,0.449,0.457,0.465,0.473,0.482,0.491,0.5,0.57,0.68,0.76,0.78,0.779,0.776,0.772,0.767,0.76,0.752,0.743,0.733,0.722,0.711,0.699,0.687,0.674,0.661,0.648,0.635,0.622,0.609,0.597,0.585,0.573,0.562,0.551,0.541,0.533,0.524,0.517,0.511,0.507,0.503,0.501,0.5\r\r\nPARAM_BOING=0,0.17,0.43,0.68,0.86,0.93,0.82,0.54,0.18,-0.18,-0.46,-0.57,-0.51,-0.37,-0.2,-0.04,0.1,0.18,0.21,0.203,0.184,0.16,0.12,0.09,0.06,0.03,0.008,0,0,0,-0.001,0,-0.002,0,0,-0.003,0,0,-0.004,0,0,-0.005,-0.01,-0.01,-0.006,-0.01,-0.01,-0.01,-0.007,-0.01,-0.01,-0.01,-0.01,-0.01,-0.008,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.009,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0.1,0.27,0.43,0.54,0.59,0.52,0.36,0.14,-0.09,-0.25,-0.32,-0.309,-0.28,-0.24,-0.19,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.89,0.62,0.29,-0.03,-0.29,-0.45,-0.51,-0.492,-0.45,-0.38,-0.3,-0.21,-0.13,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.38,1.4,2.97,4.94,7.13,9.5,11.87,14.06,16.03,17.6,18.62,19,18.94,18.76,18.46,18.06,17.55,16.96,16.27,15.51,14.67,13.77,12.79,11.78,10.7,9.59,8.43,7.27,6.05,4.85,3.61,2.39,1.15,-0.05,-1.27,-2.43,-3.59,-4.7,-5.78,-6.79,-7.77,-8.67,-9.51,-10.27,-10.96,-11.55,-12.06,-12.46,-12.76,-12.94,-13,-12.84,-12.4,-11.73,-10.9,-9.94,-8.89,-7.77,-6.65,-5.51,-4.44,-3.42,-2.48,-1.65,-0.97,-0.45,-0.12,0\r\r\nPARAM_ANGLE_Y=0,-0.56,-2.06,-4.38,-7.28,-10.51,-14,-17.49,-20.72,-23.63,-25.94,-27.44,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-27.65,-26.71,-25.26,-23.47,-21.4,-19.14,-16.73,-14.33,-11.87,-9.56,-7.36,-5.33,-3.55,-2.08,-0.96,-0.25,0\r\r\nPARAM_ANGLE_Z=0,0.08,0.29,0.62,1.05,1.54,2.08,2.64,3.21,3.77,4.3,4.77,5.19,5.53,5.79,5.95,6,5.96,5.86,5.7,5.48,5.22,4.9,4.54,4.14,3.72,3.26,2.78,2.27,1.75,1.21,0.67,0.13,-0.43,-0.99,-1.53,-2.07,-2.6,-3.12,-3.61,-4.09,-4.54,-4.96,-5.35,-5.71,-6.03,-6.31,-6.55,-6.74,-6.88,-6.97,-7,-6.91,-6.68,-6.32,-5.87,-5.35,-4.79,-4.18,-3.58,-2.97,-2.39,-1.84,-1.33,-0.89,-0.52,-0.24,-0.06,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.001,-0.005,-0.011,-0.018,-0.026,-0.035,-0.044,-0.052,-0.059,-0.065,-0.069,-0.07,-0.07,-0.069,-0.067,-0.065,-0.063,-0.06,-0.056,-0.053,-0.048,-0.044,-0.039,-0.034,-0.028,-0.023,-0.017,-0.011,-0.005,0.001,0.007,0.013,0.019,0.025,0.031,0.037,0.043,0.048,0.054,0.059,0.064,0.068,0.073,0.076,0.08,0.083,0.085,0.087,0.089,0.09,0.09,0.089,0.086,0.081,0.075,0.069,0.062,0.054,0.046,0.038,0.031,0.024,0.017,0.011,0.007,0.003,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0.006,0.021,0.04,0.07,0.11,0.14,0.18,0.21,0.24,0.27,0.282,0.29,0.293,0.295,0.297,0.3,0.302,0.304,0.306,0.308,0.31,0.311,0.313,0.314,0.316,0.317,0.318,0.319,0.321,0.322,0.322,0.323,0.324,0.32,0.326,0.326,0.33,0.327,0.33,0.328,0.33,0.33,0.329,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.326,0.315,0.298,0.28,0.25,0.23,0.2,0.17,0.14,0.11,0.09,0.06,0.04,0.025,0.011,0.003,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0.01,0.03,0.06,0.09,0.12,0.14,0.154,0.16,0.158,0.152,0.144,0.132,0.117,0.101,0.083,0.063,0.04,0.02,0,-0.02,-0.04,-0.061,-0.08,-0.098,-0.113,-0.127,-0.139,-0.149,-0.156,-0.16,-0.163,-0.165,-0.167,-0.168,-0.169,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.164,-0.157,-0.148,-0.138,-0.126,-0.113,-0.099,-0.085,-0.071,-0.057,-0.044,-0.032,-0.022,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0.01,0.03,0.06,0.09,0.12,0.14,0.154,0.16,0.158,0.152,0.144,0.132,0.117,0.101,0.083,0.063,0.04,0.02,0,-0.02,-0.04,-0.061,-0.08,-0.098,-0.113,-0.127,-0.139,-0.149,-0.156,-0.16,-0.163,-0.165,-0.167,-0.168,-0.169,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.164,-0.157,-0.148,-0.138,-0.126,-0.113,-0.099,-0.085,-0.071,-0.057,-0.044,-0.032,-0.022,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_ANGLE=0.2,0.205,0.218,0.24,0.27,0.29,0.33,0.36,0.38,0.41,0.43,0.445,0.45,0.45,0.449,0.448,0.446,0.444,0.442,0.439,0.435,0.432,0.428,0.424,0.419,0.414,0.409,0.404,0.399,0.393,0.387,0.381,0.375,0.368,0.362,0.356,0.349,0.343,0.336,0.329,0.322,0.316,0.309,0.303,0.296,0.29,0.283,0.277,0.271,0.265,0.259,0.254,0.248,0.243,0.238,0.233,0.229,0.224,0.22,0.217,0.213,0.21,0.208,0.205,0.204,0.202,0.201,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.89,0.86,0.81,0.75,0.68,0.59,0.49,0.39,0.28,0.17,0.06,-0.05,-0.16,-0.26,-0.36,-0.45,-0.52,-0.58,-0.63,-0.66,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.666,-0.653,-0.634,-0.61,-0.57,-0.53,-0.49,-0.44,-0.38,-0.33,-0.27,-0.2,-0.14,-0.07,0,0.07,0.14,0.21,0.28,0.35,0.41,0.48,0.53,0.59,0.65,0.7,0.74,0.78,0.82,0.85,0.87,0.886,0.896,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.003,0.01,0.022,0.038,0.059,0.08,0.11,0.14,0.17,0.2,0.24,0.28,0.32,0.36,0.4,0.43,0.47,0.51,0.55,0.59,0.62,0.65,0.68,0.71,0.73,0.752,0.768,0.78,0.787,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.788,0.787,0.784,0.782,0.778,0.774,0.768,0.762,0.754,0.746,0.735,0.724,0.711,0.696,0.68,0.65,0.62,0.58,0.53,0.48,0.42,0.37,0.31,0.26,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.992,-0.97,-0.93,-0.88,-0.83,-0.76,-0.68,-0.6,-0.51,-0.41,-0.32,-0.22,-0.12,-0.01,0.09,0.19,0.29,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1,0.995,0.98,0.96,0.93,0.89,0.84,0.8,0.74,0.69,0.63,0.57,0.51,0.45,0.39,0.33,0.27,0.22,0.18,0.13,0.09,0.06,0.04,0.016,0.004,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.99,1.96,1.91,1.85,1.78,1.69,1.59,1.48,1.37,1.26,1.14,1.01,0.89,0.78,0.66,0.55,0.45,0.35,0.26,0.19,0.12,0.07,0.03,0.01,0\r\r\nPARAM_BODY_Y=0,0.004,0.014,0.029,0.049,0.07,0.1,0.12,0.15,0.18,0.2,0.22,0.242,0.258,0.27,0.277,0.28,0.277,0.268,0.255,0.236,0.21,0.19,0.16,0.13,0.1,0.07,0.03,0,-0.04,-0.07,-0.11,-0.14,-0.17,-0.2,-0.23,-0.25,-0.27,-0.294,-0.309,-0.32,-0.328,-0.33,-0.328,-0.324,-0.316,-0.306,-0.295,-0.281,-0.266,-0.249,-0.232,-0.214,-0.196,-0.177,-0.158,-0.139,-0.121,-0.103,-0.086,-0.07,-0.055,-0.042,-0.03,-0.02,-0.011,-0.005,-0.001,0\r\r\nPARAM_BREATH=0.5,0.501,0.505,0.511,0.519,0.529,0.541,0.554,0.568,0.584,0.601,0.619,0.637,0.656,0.676,0.695,0.714,0.734,0.753,0.771,0.789,0.806,0.822,0.836,0.849,0.861,0.871,0.879,0.885,0.889,0.89,0.885,0.871,0.85,0.82,0.79,0.75,0.71,0.67,0.63,0.58,0.54,0.5,0.46,0.43,0.39,0.37,0.34,0.325,0.314,0.31,0.312,0.317,0.324,0.334,0.346,0.359,0.374,0.389,0.405,0.421,0.436,0.451,0.464,0.476,0.486,0.493,0.498,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,-0.001,-0.002,-0.004,-0.006,-0.008,-0.011,-0.014,-0.017,-0.021,-0.024,-0.028,-0.032,-0.036,-0.04,-0.043,-0.047,-0.051,-0.055,-0.058,-0.062,-0.065,-0.068,-0.07,-0.073,-0.075,-0.077,-0.078,-0.079,-0.08,-0.08,-0.08,-0.08,-0.078,-0.077,-0.076,-0.074,-0.072,-0.07,-0.068,-0.065,-0.062,-0.059,-0.056,-0.053,-0.05,-0.047,-0.044,-0.04,-0.037,-0.034,-0.031,-0.028,-0.025,-0.022,-0.019,-0.016,-0.014,-0.011,-0.009,-0.007,-0.005,-0.004,-0.002,-0.001,-0.001,0,0\r\r\nPARAM_WING_DEFORM=0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.3,-0.37,-0.43,-0.49,-0.55,-0.6,-0.64,-0.67,-0.684,-0.69,-0.687,-0.676,-0.66,-0.64,-0.61,-0.58,-0.54,-0.5,-0.46,-0.41,-0.36,-0.31,-0.26,-0.21,-0.16,-0.1,-0.05,0,0.05,0.1,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.364,0.378,0.387,0.39,0.387,0.38,0.368,0.353,0.334,0.31,0.29,0.26,0.24,0.21,0.18,0.15,0.13,0.1,0.08,0.06,0.037,0.022,0.01,0.003,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.12,-0.47,-1.02,-1.72,-2.58,-3.54,-4.6,-5.73,-6.91,-8.11,-9.35,-10.57,-11.76,-12.94,-14.03,-15.06,-16.01,-16.86,-17.59,-18.18,-18.63,-18.9,-19,-18.98,-18.9,-18.78,-18.62,-18.42,-18.19,-17.92,-17.62,-17.29,-16.94,-16.56,-16.17,-15.75,-15.33,-14.89,-14.43,-13.97,-13.51,-13.03,-12.56,-12.09,-11.62,-11.16,-10.69,-10.25,-9.81,-9.38,-8.97,-8.58,-8.21,-7.86,-7.54,-7.23,-6.97,-6.72,-6.51,-6.33,-6.19,-6.09,-6.02,-6,-6,-6,-6,-6,-6,-5.81,-5.32,-4.67,-3.9,-3.11,-2.32,-1.58,-0.95,-0.45,-0.12,0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.04,-26.62,-23.34,-19.51,-15.53,-11.6,-7.88,-4.75,-2.23,-0.6,0\r\r\nPARAM_ANGLE_Z=0,-0.013,-0.05,-0.11,-0.18,-0.27,-0.37,-0.48,-0.6,-0.73,-0.85,-0.98,-1.11,-1.24,-1.36,-1.48,-1.59,-1.69,-1.77,-1.85,-1.91,-1.96,-1.99,-2,-1.996,-1.985,-1.967,-1.94,-1.91,-1.87,-1.83,-1.79,-1.74,-1.68,-1.62,-1.56,-1.5,-1.43,-1.37,-1.3,-1.23,-1.15,-1.08,-1.01,-0.94,-0.86,-0.79,-0.72,-0.65,-0.59,-0.52,-0.46,-0.4,-0.34,-0.29,-0.24,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.554,0.55,0.55,0.555,0.56,0.56,0.556,0.56,0.56,0.557,0.56,0.56,0.558,0.56,0.559,0.56,0.56,0.56,0.56,0.561,0.56,0.562,0.56,0.563,0.564,0.56,0.565,0.57,0.566,0.57,0.567,0.568,0.57,0.569,0.57,0.63,0.73,0.82,0.88,0.91,0.898,0.87,0.83,0.78,0.74,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.554,0.55,0.55,0.555,0.56,0.56,0.556,0.56,0.56,0.557,0.56,0.56,0.558,0.56,0.559,0.56,0.56,0.56,0.56,0.561,0.56,0.562,0.56,0.563,0.564,0.56,0.565,0.57,0.566,0.57,0.567,0.568,0.57,0.569,0.57,0.63,0.73,0.82,0.88,0.91,0.898,0.87,0.83,0.78,0.74,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0.001,0.005,0.011,0.019,0.029,0.039,0.051,0.063,0.076,0.09,0.103,0.117,0.13,0.143,0.155,0.166,0.177,0.186,0.194,0.201,0.206,0.209,0.21,0.21,0.208,0.206,0.204,0.201,0.197,0.193,0.188,0.182,0.177,0.171,0.164,0.158,0.151,0.144,0.136,0.129,0.121,0.114,0.106,0.098,0.091,0.083,0.076,0.069,0.062,0.055,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.013,0.028,0.047,0.07,0.1,0.13,0.16,0.19,0.22,0.26,0.29,0.32,0.36,0.39,0.42,0.45,0.47,0.49,0.51,0.525,0.535,0.54,0.543,0.546,0.549,0.551,0.554,0.556,0.558,0.56,0.562,0.564,0.565,0.567,0.568,0.569,0.571,0.572,0.573,0.574,0.574,0.575,0.58,0.576,0.577,0.58,0.58,0.578,0.58,0.58,0.579,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.561,0.51,0.45,0.38,0.3,0.22,0.15,0.09,0.04,0.01,0\r\r\nPARAM_BROW_L_Y=0,0,-0.002,-0.005,-0.009,-0.014,-0.019,-0.024,-0.03,-0.036,-0.043,-0.049,-0.056,-0.062,-0.068,-0.074,-0.079,-0.084,-0.089,-0.093,-0.096,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.095,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.08,-0.077,-0.074,-0.071,-0.068,-0.065,-0.062,-0.059,-0.055,-0.052,-0.049,-0.046,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.011,-0.009,-0.008,-0.006,-0.004,-0.003,-0.002,0,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,-0.002,-0.005,-0.009,-0.014,-0.019,-0.024,-0.03,-0.036,-0.043,-0.049,-0.056,-0.062,-0.068,-0.074,-0.079,-0.084,-0.089,-0.093,-0.096,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.095,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.08,-0.077,-0.074,-0.071,-0.068,-0.065,-0.062,-0.059,-0.055,-0.052,-0.049,-0.046,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.011,-0.009,-0.008,-0.006,-0.004,-0.003,-0.002,0,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.3,-0.298,-0.294,-0.287,-0.278,-0.267,-0.255,-0.241,-0.226,-0.211,-0.195,-0.179,-0.164,-0.148,-0.134,-0.12,-0.108,-0.097,-0.088,-0.08,-0.075,-0.071,-0.07,-0.07,-0.07,-0.07,-0.07,-0.071,-0.07,-0.07,-0.073,-0.073,-0.07,-0.074,-0.075,-0.076,-0.08,-0.078,-0.079,-0.08,-0.08,-0.081,-0.082,-0.083,-0.084,-0.085,-0.086,-0.087,-0.088,-0.089,-0.09,-0.091,-0.09,-0.093,-0.094,-0.094,-0.095,-0.1,-0.097,-0.097,-0.1,-0.098,-0.1,-0.099,-0.1,-0.1,-0.1,-0.1,-0.1,0.4,0.393,0.375,0.35,0.32,0.29,0.26,0.23,0.216,0.204,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,-0.14,-0.22,-0.29,-0.35,-0.39,-0.43,-0.46,-0.478,-0.491,-0.498,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.86,0.75,0.63,0.5,0.4,0.34,0.32,0.34,0.39,0.46,0.53,0.58,0.6,0.592,0.57,0.54,0.51,0.47,0.44,0.41,0.39,0.375,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.85,0.861,0.871,0.879,0.885,0.891,0.894,0.897,0.899,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0.01,0.01,0.014,0.019,0.026,0.035,0.046,0.059,0.073,0.09,0.108,0.127,0.148,0.17,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.04,0.033,0.027,0.023,0.019,0.016,0.013,0.012,0.011,0.01,0.01\r\r\nPARAM_CHEEK=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.497,0.488,0.475,0.457,0.44,0.41,0.39,0.36,0.33,0.3,0.27,0.24,0.21,0.18,0.15,0.13,0.1,0.083,0.065,0.05,0.039,0.032,0.03,0.034,0.045,0.063,0.09,0.12,0.15,0.19,0.23,0.27,0.32,0.37,0.42,0.46,0.51,0.56,0.6,0.64,0.68,0.71,0.74,0.77,0.785,0.796,0.8,0.796,0.786,0.771,0.751,0.73,0.71,0.68,0.65,0.63,0.6,0.58,0.56,0.538,0.522,0.51,0.503,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,-0.002,-0.01,-0.021,-0.035,-0.053,-0.073,-0.09,-0.12,-0.14,-0.17,-0.19,-0.22,-0.24,-0.27,-0.29,-0.31,-0.329,-0.346,-0.361,-0.373,-0.382,-0.388,-0.39,-0.386,-0.375,-0.358,-0.33,-0.31,-0.27,-0.24,-0.2,-0.15,-0.11,-0.06,-0.02,0.03,0.08,0.12,0.17,0.21,0.24,0.28,0.3,0.33,0.345,0.356,0.36,0.355,0.343,0.325,0.3,0.28,0.25,0.22,0.18,0.15,0.12,0.09,0.07,0.05,0.027,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.003,0.011,0.025,0.042,0.06,0.09,0.11,0.14,0.17,0.2,0.23,0.26,0.28,0.31,0.34,0.36,0.39,0.41,0.426,0.44,0.451,0.458,0.46,0.459,0.456,0.451,0.445,0.437,0.429,0.419,0.408,0.396,0.384,0.371,0.358,0.345,0.332,0.318,0.305,0.292,0.28,0.268,0.256,0.246,0.236,0.227,0.219,0.213,0.207,0.203,0.201,0.2,0.206,0.221,0.24,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.474,0.48,0.474,0.457,0.43,0.4,0.36,0.31,0.27,0.22,0.18,0.14,0.1,0.06,0.04,0.017,0.004,0\r\r\nPARAM_WING_DEFORM=0,0.005,0.02,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.34,0.39,0.44,0.49,0.54,0.58,0.63,0.67,0.7,0.73,0.76,0.775,0.786,0.79,0.777,0.74,0.69,0.62,0.54,0.45,0.35,0.26,0.17,0.08,0,-0.07,-0.12,-0.16,-0.19,-0.2,-0.184,-0.14,-0.08,0,0.09,0.19,0.28,0.37,0.45,0.51,0.56,0.59,0.6,0.58,0.52,0.44,0.33,0.21,0.08,-0.05,-0.17,-0.28,-0.36,-0.42,-0.44,-0.434,-0.419,-0.39,-0.36,-0.33,-0.29,-0.25,-0.2,-0.16,-0.12,-0.09,-0.06,-0.03,-0.016,-0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.18,0.68,1.45,2.44,3.59,4.86,6.16,7.49,8.79,10.03,11.13,12.11,12.91,13.5,13.87,14,14,13.998,13.996,13.994,13.99,13.985,13.978,13.971,13.962,13.952,13.941,13.928,13.913,13.897,13.879,13.859,13.84,13.81,13.79,13.76,13.73,13.7,13.66,13.63,13.59,13.55,13.51,13.46,13.41,13.36,13.3,13.25,13.19,13.12,13.06,12.99,12.92,12.84,12.76,12.68,12.59,12.5,12.41,12.31,12.21,12.11,12,11.74,11.26,10.59,9.79,8.89,7.92,6.91,5.9,4.88,3.92,3.01,2.18,1.45,0.85,0.39,0.1,0\r\r\nPARAM_ANGLE_Y=0,0.14,0.53,1.14,1.92,2.82,3.82,4.84,5.89,6.9,7.88,8.75,9.52,10.15,10.61,10.9,11,10.983,10.93,10.85,10.74,10.59,10.43,10.23,10.02,9.78,9.52,9.25,8.95,8.64,8.32,7.99,7.65,7.29,6.93,6.56,6.19,5.81,5.43,5.04,4.67,4.29,3.92,3.54,3.17,2.81,2.46,2.12,1.79,1.47,1.17,0.88,0.61,0.35,0.11,-0.11,-0.31,-0.48,-0.64,-0.76,-0.87,-0.94,-0.98,-1,-0.987,-0.95,-0.9,-0.84,-0.76,-0.68,-0.6,-0.51,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_ANGLE_Z=0,0.25,0.95,2.04,3.44,5.08,6.89,8.77,10.7,12.59,14.43,16.1,17.61,18.89,19.89,20.61,21,21.25,21.47,21.68,21.87,22.03,22.18,22.32,22.43,22.54,22.63,22.71,22.77,22.83,22.87,22.91,22.94,22.96,22.977,22.988,22.995,22.999,23,23,23,22.8,22.23,21.33,20.19,18.79,17.22,15.5,13.66,11.72,9.76,7.75,5.76,3.81,1.89,0.1,-1.58,-3.12,-4.5,-5.7,-6.67,-7.39,-7.84,-8,-7.9,-7.63,-7.22,-6.71,-6.11,-5.47,-4.78,-4.09,-3.39,-2.73,-2.1,-1.52,-1.01,-0.59,-0.28,-0.07,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.511,0.54,0.59,0.64,0.69,0.74,0.79,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.829,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.828,0.83,0.83,0.83,0.83,0.83,0.827,0.83,0.83,0.83,0.83,0.826,0.83,0.83,0.83,0.825,0.82,0.82,0.82,0.824,0.82,0.82,0.823,0.82,0.82,0.822,0.82,0.82,0.821,0.82,0.82,0.809,0.78,0.75,0.71,0.67,0.62,0.58,0.55,0.52,0.506,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.511,0.54,0.59,0.64,0.69,0.74,0.79,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.829,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.828,0.83,0.83,0.83,0.83,0.83,0.827,0.83,0.83,0.83,0.83,0.826,0.83,0.83,0.83,0.825,0.82,0.82,0.82,0.824,0.82,0.82,0.823,0.82,0.82,0.822,0.82,0.82,0.821,0.82,0.82,0.809,0.78,0.75,0.71,0.67,0.62,0.58,0.55,0.52,0.506,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,-0.02,-0.07,-0.15,-0.24,-0.34,-0.43,-0.51,-0.56,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.561,-0.51,-0.45,-0.38,-0.3,-0.22,-0.15,-0.09,-0.04,-0.01,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0,-0.01,-0.04,-0.08,-0.13,-0.18,-0.24,-0.3,-0.35,-0.41,-0.45,-0.49,-0.52,-0.543,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.549,-0.55,-0.55,-0.548,-0.55,-0.546,-0.546,-0.55,-0.544,-0.543,-0.542,-0.541,-0.54,-0.539,-0.538,-0.536,-0.535,-0.533,-0.532,-0.53,-0.528,-0.526,-0.524,-0.521,-0.519,-0.517,-0.514,-0.511,-0.509,-0.506,-0.503,-0.499,-0.496,-0.493,-0.489,-0.485,-0.481,-0.477,-0.473,-0.469,-0.465,-0.46,-0.449,-0.431,-0.4,-0.37,-0.34,-0.3,-0.26,-0.22,-0.19,-0.15,-0.11,-0.08,-0.06,-0.03,-0.015,-0.004,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.488,0.45,0.41,0.35,0.29,0.23,0.19,0.15,0.14,0.141,0.143,0.147,0.152,0.158,0.166,0.175,0.184,0.194,0.205,0.217,0.23,0.242,0.256,0.269,0.283,0.297,0.311,0.325,0.339,0.353,0.367,0.38,0.393,0.406,0.418,0.43,0.441,0.451,0.461,0.469,0.477,0.484,0.489,0.494,0.497,0.499,0.5,0.496,0.485,0.467,0.44,0.42,0.39,0.36,0.33,0.3,0.27,0.25,0.22,0.205,0.191,0.183,0.18,0.184,0.195,0.211,0.232,0.26,0.28,0.31,0.34,0.36,0.39,0.42,0.44,0.459,0.476,0.489,0.497,0.5\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.1,-0.21,-0.35,-0.51,-0.69,-0.88,-1.07,-1.26,-1.43,-1.59,-1.73,-1.84,-1.93,-1.98,-2,-1.999,-1.994,-1.987,-1.977,-1.964,-1.949,-1.931,-1.911,-1.89,-1.86,-1.84,-1.81,-1.78,-1.75,-1.71,-1.68,-1.64,-1.6,-1.56,-1.52,-1.48,-1.44,-1.4,-1.35,-1.31,-1.26,-1.22,-1.17,-1.12,-1.08,-1.03,-0.98,-0.94,-0.89,-0.84,-0.8,-0.75,-0.71,-0.66,-0.62,-0.57,-0.53,-0.49,-0.45,-0.41,-0.37,-0.34,-0.3,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.1,-0.08,-0.063,-0.047,-0.033,-0.021,-0.012,-0.005,-0.001,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.499,0.497,0.492,0.487,0.48,0.473,0.464,0.454,0.444,0.433,0.423,0.411,0.4,0.389,0.377,0.366,0.356,0.346,0.337,0.328,0.321,0.314,0.308,0.303,0.3,0.297,0.295,0.293,0.292,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.292,0.297,0.305,0.315,0.328,0.342,0.358,0.374,0.392,0.41,0.428,0.446,0.463,0.481,0.497,0.512,0.526,0.538,0.549,0.558,0.565,0.569,0.57,0.569,0.567,0.563,0.559,0.553,0.548,0.542,0.536,0.53,0.524,0.518,0.513,0.509,0.505,0.502,0.501,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.002,-0.009,-0.02,-0.034,-0.05,-0.069,-0.09,-0.11,-0.13,-0.15,-0.17,-0.194,-0.213,-0.229,-0.243,-0.255,-0.263,-0.268,-0.27,-0.269,-0.268,-0.265,-0.261,-0.256,-0.251,-0.245,-0.238,-0.23,-0.221,-0.212,-0.203,-0.193,-0.182,-0.172,-0.161,-0.149,-0.138,-0.126,-0.114,-0.102,-0.091,-0.079,-0.067,-0.055,-0.044,-0.033,-0.022,-0.011,-0.001,0.009,0.018,0.027,0.036,0.044,0.051,0.057,0.063,0.068,0.072,0.076,0.078,0.079,0.08,0.079,0.076,0.072,0.067,0.061,0.055,0.048,0.041,0.034,0.027,0.021,0.015,0.01,0.006,0.003,0.001,0\r\r\nPARAM_WING_DEFORM=0,-0.004,-0.017,-0.036,-0.06,-0.09,-0.13,-0.16,-0.2,-0.24,-0.28,-0.32,-0.35,-0.39,-0.42,-0.44,-0.462,-0.477,-0.487,-0.49,-0.489,-0.486,-0.481,-0.474,-0.465,-0.455,-0.443,-0.43,-0.415,-0.4,-0.383,-0.365,-0.347,-0.327,-0.307,-0.287,-0.27,-0.24,-0.22,-0.2,-0.18,-0.16,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.009,0.01,0.028,0.046,0.062,0.078,0.092,0.106,0.118,0.128,0.138,0.146,0.152,0.156,0.159,0.16,0.158,0.153,0.144,0.134,0.122,0.109,0.096,0.082,0.068,0.055,0.042,0.03,0.02,0.012,0.006,0.001,0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0,0.004,0.016,0.034,0.06,0.09,0.12,0.15,0.19,0.23,0.26,0.3,0.33,0.36,0.39,0.41,0.434,0.448,0.457,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.459,0.46,0.46,0.46,0.46,0.458,0.46,0.46,0.457,0.46,0.456,0.46,0.46,0.454,0.454,0.45,0.453,0.45,0.451,0.451,0.45,0.45,0.448,0.447,0.446,0.446,0.445,0.443,0.442,0.441,0.44,0.433,0.418,0.39,0.37,0.33,0.3,0.26,0.22,0.18,0.15,0.11,0.08,0.05,0.03,0.015,0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,1.25,4.29,8,11.62,14.53,16.37,17,16.63,15.6,13.98,11.92,9.46,6.78,3.94,1.06,-1.78,-4.46,-6.92,-8.98,-10.6,-11.63,-12,-11.94,-11.77,-11.5,-11.14,-10.72,-10.22,-9.66,-9.07,-8.45,-7.79,-7.12,-6.43,-5.74,-5.06,-4.4,-3.75,-3.14,-2.55,-2.01,-1.52,-1.09,-0.71,-0.41,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,1.54,5.3,9.89,14.36,17.95,20.23,21,20.47,18.97,16.62,13.64,10.07,6.19,2.09,-2.09,-6.19,-10.07,-13.64,-16.62,-18.97,-20.47,-21,-20.89,-20.59,-20.12,-19.5,-18.75,-17.88,-16.91,-15.88,-14.78,-13.63,-12.46,-11.25,-10.04,-8.86,-7.7,-6.56,-5.49,-4.47,-3.51,-2.66,-1.9,-1.25,-0.72,-0.33,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,1.18,4.04,7.53,10.94,13.67,15.41,16,15.75,15.04,13.92,12.49,10.8,8.95,6.99,5.01,3.05,1.2,-0.49,-1.92,-3.04,-3.75,-4,-3.98,-3.92,-3.83,-3.71,-3.57,-3.41,-3.22,-3.02,-2.82,-2.6,-2.37,-2.14,-1.91,-1.69,-1.47,-1.25,-1.05,-0.85,-0.67,-0.51,-0.36,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1,-0.7,-0.698,-0.697,-0.695,-0.694,-0.693,-0.692,-0.692,-0.69,-0.691,-0.69,-0.69,-0.69,-0.69,-0.691,-0.694,-0.698,-0.701,-0.705,-0.707,-0.709,-0.71,-0.709,-0.708,-0.705,-0.702,-0.699,-0.695,-0.692,-0.689,-0.686,-0.683,-0.682,-0.68,-0.68,-0.68,-0.68,-0.682,-0.683,-0.685,-0.687,-0.689,-0.692,-0.695,-0.698,-0.702,-0.706,-0.71,-0.94,-0.945,-0.95,-0.955,-0.959,-0.963,-0.967,-0.971,-0.974,-0.977,-0.98,-0.983,-0.985,-0.988,-0.99,-0.992,-0.993,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0,0,0,0,0,0,0,0,0,0.001,0,0,0.002,0,0,0.003,0,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.009,0.009,0.01,0.011,0.011,0.012,0.013,0.01,0.015,0.016,0.017,0.018,0.019,0.02,0.021,0.022,0.023,0.024,0.025,0.026,0.028,0.029,0.03,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0,0,0,0,0,0,0,0,0,0.001,0,0,0.002,0,0,0.003,0,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.009,0.009,0.01,0.011,0.011,0.012,0.013,0.01,0.015,0.016,0.017,0.018,0.019,0.02,0.021,0.022,0.023,0.024,0.025,0.026,0.028,0.029,0.03,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-1,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.984,-0.983,-0.981,-0.98,-0.979,-0.978,-0.976,-0.975,-0.974,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.96,-0.963,-0.963,-0.96,-0.962,-0.96,-0.961,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.962,-0.963,-0.964,-0.966,-0.968,-0.97,-0.973,-0.975,-0.977,-0.98,-0.982,-0.984,-0.987,-0.989,-0.991,-0.993,-0.995,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-1,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.984,-0.983,-0.981,-0.98,-0.979,-0.978,-0.976,-0.975,-0.974,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.96,-0.963,-0.963,-0.96,-0.962,-0.96,-0.961,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.962,-0.963,-0.964,-0.966,-0.968,-0.97,-0.973,-0.975,-0.977,-0.98,-0.982,-0.984,-0.987,-0.989,-0.991,-0.993,-0.995,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,-0.017,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.241,-0.19,-0.14,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,-0.017,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.241,-0.19,-0.14,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.311,-0.36,-0.41,-0.47,-0.53,-0.57,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,0,0.07,0.12,0.16,0.18,0.196,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.21,0.21,0.21,0.208,0.21,0.21,0.207,0.21,0.21,0.206,0.21,0.205,0.2,0.204,0.2,0.203,0.2,0.202,0.201,0.2,0.2,0.199,0.2,0.197,0.197,0.196,0.2,0.194,0.194,0.193,0.192,0.191,0.19,0.19,0.188,0.187,0.186,0.185,0.184,0.183,0.182,0.181,0.18,0.179,0.177,0.176,0.175,0.174,0.173,0.171,0.17,-0.22,-0.31,-0.39,-0.44,-0.47,-0.494,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.83,0.67,0.48,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.08,-0.15,-0.24,-0.37,-0.97,-0.97,-0.97,-0.97,-0.968,-0.968,-0.966,-0.965,-0.964,-0.962,-0.96,-0.958,-0.956,-0.953,-0.95,-0.947,-0.944,-0.941,-0.937,-0.933,-0.929,-0.925,-0.92,-0.915,-0.91,-0.69,-0.43,-0.28,-0.22,-0.2,-0.27,-0.39,-0.46,-0.49,-0.43,-0.32,-0.23,-0.16,-0.13,-0.21,-0.33,-0.41,-0.44,-0.42,-0.33,-0.18,0,0.39,0.69,0.85,0.9\r\r\nPARAM_MOUTH_EMO=0,0.16,0.16,0.162,0.163,0.164,0.165,0.166,0.167,0.168,0.169,0.169,0.17,0.171,0.172,0.173,0.17,0.175,0.176,0.177,0.177,0.178,0.179,0.18,0.25,0.25,0.25,0.25,0.25,0.25,0.249,0.25,0.248,0.25,0.247,0.246,0.25,0.244,0.243,0.242,0.241,0.24,0.239,0.238,0.236,0.235,0.233,0.232,0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.89,2.59,2.15,1.62,1.02,0.39,-0.24,-0.85,-1.42,-1.94,-2.37,-2.71,-2.92,-3,-2.9,-2.66,-2.33,-1.95,-1.55,-1.16,-0.79,-0.48,-0.22,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,3.92,3.73,3.44,3.08,2.68,2.26,1.84,1.43,1.05,0.71,0.42,0.2,0.05,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.16,-0.27,-0.41,-0.56,-0.73,-0.9,-1.09,-1.28,-1.48,-1.67,-1.86,-2.04,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-2.96,-2.86,-2.69,-2.48,-2.23,-1.96,-1.68,-1.39,-1.12,-0.85,-0.61,-0.4,-0.23,-0.11,-0.03,0\r\r\nPARAM_BODY_Y=0,-0.011,-0.04,-0.08,-0.13,-0.17,-0.22,-0.26,-0.29,-0.304,-0.31,-0.307,-0.3,-0.288,-0.272,-0.254,-0.23,-0.21,-0.18,-0.16,-0.13,-0.1,-0.07,-0.03,0,0.04,0.07,0.09,0.113,0.128,0.139,0.148,0.153,0.157,0.159,0.16,0.157,0.148,0.135,0.119,0.101,0.082,0.064,0.046,0.031,0.018,0.008,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.517,0.56,0.63,0.7,0.78,0.85,0.91,0.96,0.99,1,0.987,0.95,0.9,0.84,0.77,0.7,0.62,0.55,0.48,0.42,0.37,0.33,0.31,0.3,0.316,0.36,0.41,0.47,0.54,0.6,0.66,0.71,0.75,0.78,0.79,0.788,0.783,0.773,0.76,0.744,0.72,0.7,0.67,0.64,0.61,0.58,0.54,0.5,0.45,0.41,0.37,0.33,0.31,0.29,0.269,0.258,0.252,0.25,0.253,0.262,0.276,0.294,0.31,0.34,0.36,0.38,0.41,0.43,0.449,0.466,0.481,0.491,0.498,0.5\r\r\nPARAM_BOING=0,0.04,0.13,0.23,0.35,0.45,0.53,0.59,0.61,0.53,0.34,0.1,-0.13,-0.31,-0.43,-0.47,-0.42,-0.31,-0.17,-0.02,0.09,0.14,0.08,-0.01,-0.08,-0.1,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.1,-0.19,-0.28,-0.37,-0.44,-0.48,-0.5,-0.47,-0.4,-0.3,-0.18,-0.06,0.06,0.18,0.27,0.35,0.4,0.42,0.406,0.37,0.31,0.24,0.17,0.09,0,-0.07,-0.14,-0.19,-0.23,-0.26,-0.27,-0.261,-0.24,-0.2,-0.16,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.02,0.09,0.18,0.28,0.39,0.48,0.57,0.63,0.68,0.69,0.69,0.692,0.69,0.69,0.69,0.686,0.68,0.66,0.61,0.54,0.46,0.37,0.27,0.16,0.06,-0.04,-0.14,-0.23,-0.3,-0.37,-0.41,-0.44,-0.45,-0.441,-0.42,-0.37,-0.32,-0.26,-0.2,-0.13,-0.05,0.02,0.08,0.14,0.19,0.24,0.26,0.27,0.261,0.24,0.2,0.16,0.12,0.08,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.014,-0.05,-0.11,-0.18,-0.25,-0.32,-0.39,-0.45,-0.5,-0.54,-0.58,-0.6,-0.608,-0.611,-0.61,-0.611,-0.61,-0.599,-0.57,-0.52,-0.45,-0.38,-0.3,-0.21,-0.13,-0.05,0.03,0.11,0.17,0.22,0.26,0.28,0.29,0.285,0.27,0.25,0.22,0.18,0.15,0.11,0.06,0.02,-0.01,-0.05,-0.08,-0.1,-0.115,-0.12,-0.116,-0.105,-0.089,-0.072,-0.053,-0.036,-0.021,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.021,0.07,0.15,0.24,0.34,0.42,0.5,0.55,0.59,0.6,0.58,0.51,0.41,0.28,0.14,-0.01,-0.16,-0.3,-0.43,-0.53,-0.6,-0.62,-0.59,-0.51,-0.39,-0.25,-0.11,0.02,0.13,0.22,0.27,0.29,0.271,0.23,0.18,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.004,-0.016,-0.035,-0.06,-0.09,-0.12,-0.16,-0.2,-0.24,-0.27,-0.31,-0.35,-0.38,-0.41,-0.44,-0.454,-0.466,-0.47,-0.47,-0.468,-0.466,-0.463,-0.459,-0.454,-0.449,-0.443,-0.436,-0.428,-0.42,-0.412,-0.403,-0.393,-0.384,-0.373,-0.362,-0.351,-0.34,-0.329,-0.317,-0.305,-0.293,-0.28,-0.268,-0.255,-0.243,-0.23,-0.218,-0.205,-0.193,-0.181,-0.169,-0.157,-0.145,-0.133,-0.122,-0.111,-0.101,-0.091,-0.081,-0.071,-0.062,-0.054,-0.046,-0.038,-0.031,-0.025,-0.02,-0.015,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_WING_DEFORM=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.42,0.48,0.53,0.58,0.63,0.67,0.7,0.714,0.72,0.719,0.717,0.714,0.709,0.703,0.696,0.687,0.678,0.667,0.656,0.644,0.631,0.617,0.603,0.588,0.572,0.555,0.538,0.521,0.503,0.485,0.467,0.448,0.429,0.41,0.391,0.372,0.353,0.334,0.314,0.295,0.277,0.258,0.24,0.222,0.204,0.187,0.171,0.154,0.139,0.124,0.109,0.095,0.082,0.07,0.059,0.048,0.039,0.03,0.022,0.016,0.01,0.006,0.003,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,1.97,6.22,11.51,17.02,22.04,26.2,28.97,30,30,30,30,30,30,30,30,30,30,30,29.96,29.73,29.21,28.33,27.05,25.41,23.45,20.66,17.93,15.17,12.48,9.99,7.62,5.48,3.66,2.12,0.97,0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.92,2.9,5.37,7.94,10.29,12.23,13.52,14,13.97,13.89,13.75,13.55,13.27,12.93,12.54,12.08,11.57,11,10.08,9.01,7.93,6.86,5.87,4.98,4.22,3.35,2.59,1.88,1.26,0.72,0.26,-0.14,-0.45,-0.69,-0.87,-0.97,-1,-0.993,-0.975,-0.94,-0.91,-0.86,-0.8,-0.74,-0.68,-0.61,-0.54,-0.47,-0.41,-0.34,-0.28,-0.22,-0.17,-0.12,-0.08,-0.04,-0.02,-0.005,0\r\r\nPARAM_ANGLE_Z=0,-0.59,-1.86,-3.45,-5.1,-6.61,-7.86,-8.69,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.7,-7.9,-6.66,-5.1,-3.37,-1.5,0.37,2.1,3.66,4.9,5.7,6,5.96,5.85,5.67,5.43,5.15,4.82,4.45,4.08,3.67,3.26,2.84,2.44,2.04,1.66,1.31,0.99,0.71,0.46,0.27,0.12,0.03,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.39,0.22,0.1,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.067,0.087,0.12,0.16,0.2,0.25,0.29,0.33,0.37,0.4,0.423,0.43,0.43,0.43,0.429,0.428,0.426,0.424,0.422,0.419,0.416,0.412,0.407,0.402,0.396,0.39,0.31,0.19,0.11,0.08,0.18,0.35,0.46,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.39,0.22,0.1,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.067,0.087,0.12,0.16,0.2,0.25,0.29,0.33,0.37,0.4,0.423,0.43,0.43,0.43,0.429,0.428,0.426,0.424,0.422,0.419,0.416,0.412,0.407,0.402,0.396,0.39,0.31,0.19,0.11,0.08,0.18,0.35,0.46,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.999,-0.998,-0.995,-0.991,-0.987,-0.983,-0.978,-0.972,-0.966,-0.961,-0.955,-0.948,-0.942,-0.937,-0.931,-0.925,-0.92,-0.915,-0.911,-0.908,-0.905,-0.903,-0.902,-0.901,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.74,-0.48,-0.24,-0.07,0\r\r\nPARAM_BROW_R_Y=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-0.998,-0.996,-0.994,-0.991,-0.988,-0.984,-0.979,-0.975,-0.97,-0.965,-0.959,-0.954,-0.948,-0.942,-0.936,-0.93,-0.924,-0.919,-0.914,-0.911,-0.908,-0.905,-0.903,-0.902,-0.901,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.74,-0.48,-0.24,-0.07,0\r\r\nPARAM_BROW_L_ANGLE=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-0.996,-0.995,-0.993,-0.992,-0.99,-0.97,-0.91,-0.83,-0.73,-0.62,-0.49,-0.37,-0.26,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-0.996,-0.995,-0.993,-0.992,-0.99,-0.97,-0.91,-0.83,-0.73,-0.62,-0.49,-0.37,-0.26,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_DEFORM=0,0.04,0.13,0.24,0.35,0.44,0.49,0.51,0.509,0.505,0.499,0.49,0.479,0.464,0.446,0.42,0.4,0.37,0.34,0.3,0.26,0.22,0.17,0.12,0.06,0,-0.06,-0.13,-0.19,-0.24,-0.29,-0.34,-0.38,-0.42,-0.45,-0.47,-0.485,-0.49,-0.487,-0.478,-0.463,-0.443,-0.42,-0.39,-0.36,-0.33,-0.3,-0.27,-0.23,-0.2,-0.17,-0.14,-0.11,-0.08,-0.06,-0.038,-0.022,-0.01,-0.003,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.53,0.6,0.68,0.77,0.85,0.91,0.95,0.97,0.91,0.81,0.74,0.72,0.732,0.76,0.8,0.84,0.87,0.88,0.877,0.867,0.852,0.832,0.81,0.78,0.75,0.71,0.68,0.64,0.61,0.59,0.57,0.545,0.529,0.517,0.507,0.502,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BODY_ANGLE_X=0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.994,0.979,0.95,0.92,0.89,0.84,0.79,0.74,0.69,0.63,0.57,0.5,0.43,0.37,0.3,0.24,0.18,0.14,0.1,0.07,0.05,0.029,0.016,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.13,0.45,0.89,1.4,1.93,2.45,2.95,3.37,3.7,3.92,4,3.98,3.92,3.82,3.69,3.54,3.37,3.18,2.97,2.75,2.51,2.26,2.01,1.74,1.47,1.19,0.95,0.74,0.56,0.41,0.29,0.19,0.12,0.06,0.03,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.46,-1.45,-2.69,-3.97,-5.14,-6.11,-6.76,-7,-7,-7,-7,-7,-7,-7,-6.94,-6.79,-6.56,-6.26,-5.92,-5.53,-5.1,-4.64,-4.15,-3.64,-3.11,-2.54,-2.06,-1.62,-1.24,-0.93,-0.66,-0.45,-0.28,-0.15,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.04,0.1,0.15,0.19,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.206,0.203,0.2,0.197,0.193,0.189,0.185,0.18,0.175,0.17,0.164,0.158,0.153,0.147,0.142,0.136,0.131,0.125,0.12,0.114,0.108,0.101,0.094,0.087,0.08,0.072,0.065,0.057,0.049,0.042,0.035,0.029,0.023,0.017,0.012,0.008,0.005,0.002,0.001,0\r\r\nPARAM_WING_DEFORM=0,0.12,0.32,0.51,0.64,0.69,0.65,0.54,0.39,0.21,0.03,-0.14,-0.31,-0.45,-0.57,-0.64,-0.67,-0.65,-0.59,-0.5,-0.39,-0.27,-0.14,-0.01,0.11,0.22,0.31,0.37,0.42,0.43,0.42,0.39,0.34,0.28,0.21,0.14,0.06,-0.03,-0.11,-0.18,-0.25,-0.31,-0.36,-0.39,-0.4,-0.395,-0.381,-0.36,-0.33,-0.3,-0.26,-0.22,-0.18,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_RIBBON_DEFORM=0,0.08,0.2,0.31,0.39,0.42,0.37,0.25,0.11,-0.03,-0.14,-0.22,-0.24,-0.21,-0.14,-0.06,0.03,0.09,0.14,0.15,0.139,0.11,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch Dere6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.6,2.07,4.08,6.18,7.93,9,9.47,9.76,9.92,9.99,10.004,10,10,9.995,9.977,9.94,9.88,9.78,9.66,9.49,9.28,9.03,8.73,8.39,8,7.44,6.76,5.95,5.08,4.19,3.29,2.43,1.66,0.98,0.46,0.12,0\r\r\nPARAM_ANGLE_Y=0,1.65,5.75,11.4,17.41,22.56,26,27.79,28.93,29.6,29.91,30,30,29.3,27.43,24.61,21.08,17.17,13.01,8.93,5.12,1.75,-1.09,-3.22,-4.54,-5,-4.9,-4.63,-4.22,-3.7,-3.12,-2.5,-1.88,-1.3,-0.78,-0.37,-0.1,0\r\r\nPARAM_ANGLE_Z=0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.84,-2.41,-1.77,-0.96,-0.07,0.88,1.82,2.69,3.46,4.11,4.59,4.9,5,4.9,4.63,4.22,3.7,3.12,2.5,1.88,1.3,0.78,0.37,0.1,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.64,0.78,0.88,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.903,0.884,0.85,0.82,0.77,0.73,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.64,0.78,0.88,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.903,0.884,0.85,0.82,0.77,0.73,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.06,-0.15,-0.21,-0.23,-0.23,-0.228,-0.225,-0.221,-0.216,-0.21,-0.203,-0.196,-0.188,-0.18,-0.17,-0.161,-0.151,-0.141,-0.131,-0.12,-0.11,-0.099,-0.089,-0.079,-0.069,-0.06,-0.05,-0.042,-0.034,-0.027,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_BROW_R_Y=0,-0.06,-0.15,-0.21,-0.23,-0.23,-0.228,-0.225,-0.221,-0.216,-0.21,-0.203,-0.196,-0.188,-0.18,-0.17,-0.161,-0.151,-0.141,-0.131,-0.12,-0.11,-0.099,-0.089,-0.079,-0.069,-0.06,-0.05,-0.042,-0.034,-0.027,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_BROW_ANGLE=0.2,0.11,-0.03,-0.13,-0.16,-0.159,-0.156,-0.152,-0.145,-0.138,-0.129,-0.118,-0.107,-0.094,-0.081,-0.067,-0.052,-0.036,-0.021,-0.004,0.012,0.028,0.044,0.061,0.076,0.092,0.107,0.121,0.134,0.147,0.158,0.169,0.178,0.185,0.192,0.196,0.199,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.92,0.89,0.81,0.72,0.63,0.56,0.52,0.5,0.5,0.5,0.5,0.5,0.5,0.514,0.55,0.61,0.68,0.74,0.81,0.87,0.9,0.92,0.04,0.033,0.028,0.023,0.018,0.014,0.011,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.979,-0.98,-0.98,-0.978,-0.98,-0.977,-0.98,-0.976,-0.98,-0.974,-0.974,-0.973,-0.972,-0.971,-0.97,0.83,0.842,0.852,0.861,0.868,0.875,0.881,0.885,0.89,0.893,0.896,0.897,0.899,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.15,-0.52,-1,-1.48,-1.85,-2,-2,-2,-2,-2,-2,-2,-1.94,-1.78,-1.54,-1.24,-0.9,-0.54,-0.19,0.13,0.42,0.66,0.85,0.96,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.38,1.29,2.5,3.71,4.62,5,5,5,5,5,5,5,4.86,4.49,3.92,3.22,2.43,1.6,0.79,0.02,-0.65,-1.22,-1.64,-1.91,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0\r\r\nPARAM_BODY_Y=0,0.019,0.07,0.14,0.21,0.28,0.33,0.36,0.382,0.394,0.399,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.392,0.37,0.34,0.3,0.25,0.2,0.15,0.1,0.06,0.03,0.01,0\r\r\nPARAM_BREATH=0.5,0.512,0.55,0.59,0.65,0.71,0.77,0.82,0.85,0.87,0.884,0.889,0.89,0.888,0.882,0.873,0.861,0.846,0.829,0.81,0.79,0.77,0.74,0.72,0.7,0.67,0.65,0.63,0.61,0.587,0.568,0.551,0.537,0.524,0.514,0.506,0.502,0.5\r\r\nPARAM_BOING=0,0.02,0.07,0.14,0.2,0.25,0.28,0.29,0.25,0.17,0.06,-0.04,-0.12,-0.17,-0.19,-0.176,-0.14,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.019,-0.07,-0.14,-0.23,-0.32,-0.41,-0.48,-0.53,-0.55,-0.54,-0.51,-0.47,-0.41,-0.34,-0.27,-0.19,-0.12,-0.04,0.03,0.09,0.15,0.2,0.23,0.25,0.26,0.255,0.241,0.22,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0\r\r\nPARAM_HAIR_SIDE_R=0,0.007,0.025,0.05,0.08,0.11,0.13,0.16,0.19,0.204,0.216,0.22,0.214,0.197,0.17,0.14,0.1,0.06,0.01,-0.03,-0.07,-0.12,-0.15,-0.19,-0.21,-0.233,-0.246,-0.25,-0.241,-0.22,-0.19,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_HAIR_SIDE_L=0,0.013,0.04,0.09,0.14,0.19,0.24,0.29,0.33,0.36,0.38,0.39,0.382,0.36,0.32,0.28,0.22,0.16,0.1,0.04,-0.02,-0.08,-0.13,-0.18,-0.22,-0.25,-0.264,-0.27,-0.261,-0.24,-0.2,-0.16,-0.12,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.013,0.05,0.09,0.14,0.2,0.25,0.3,0.35,0.38,0.4,0.41,0.408,0.402,0.393,0.381,0.366,0.349,0.33,0.31,0.29,0.27,0.24,0.22,0.2,0.17,0.15,0.13,0.11,0.087,0.069,0.052,0.037,0.024,0.014,0.006,0.002,0\r\r\nPARAM_WING_DEFORM=0,0.03,0.1,0.2,0.31,0.43,0.55,0.66,0.75,0.82,0.87,0.89,0.886,0.873,0.853,0.83,0.79,0.76,0.72,0.67,0.63,0.58,0.53,0.48,0.43,0.38,0.33,0.28,0.23,0.19,0.15,0.11,0.08,0.05,0.03,0.014,0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.36,-0.93,-1.46,-1.85,-2,-1.52,-0.23,1.64,3.86,6.14,8.36,10.23,11.52,12,11.76,11.12,10.13,8.88,7.5,6,4.5,3.12,1.88,0.88,0.24,0,0,0,0,0,0,0,0,0,0,0,0,0.79,2.92,6.02,9.71,13.55,17.31,20.55,22.91,24,24.33,24.65,24.95,25.25,25.54,25.82,26.08,26.33,26.58,26.81,27.03,27.24,27.45,27.65,27.83,28.01,28.18,28.34,28.48,28.63,28.76,28.89,29.01,29.12,29.22,29.32,29.41,29.49,29.56,29.63,29.7,29.75,29.8,29.84,29.88,29.91,29.94,29.96,29.979,29.991,29.998,30,30,29.96,29.85,29.65,29.36,28.99,28.52,27.95,27.28,26.5,25.6,24.6,23.47,22.22,20.87,19.36,17.71,15.93,14,11.67,9.55,7.65,5.93,4.44,3.14,2.03,1.17,0.53,0.14,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,28.66,25.06,19.86,13.69,7.31,1.14,-4.06,-7.66,-9,-8.66,-7.75,-6.34,-4.58,-2.62,-0.5,1.62,3.58,5.34,6.75,7.66,8,7.984,7.9,7.73,7.43,6.99,6.38,5.56,4.56,3.3,1.81,0,-2.71,-6.37,-10.64,-15.17,-19.55,-23.62,-26.94,-29.18,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.04,-26.62,-23.34,-19.51,-15.53,-11.6,-7.88,-4.75,-2.23,-0.6,0\r\r\nPARAM_ANGLE_Z=0,-1.07,-2.79,-4.39,-5.55,-6,-5.69,-4.86,-3.66,-2.24,-0.76,0.66,1.86,2.69,3,2.94,2.78,2.53,2.22,1.87,1.5,1.13,0.78,0.47,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.027,0.06,0.1,0.16,0.22,0.3,0.38,0.47,0.57,0.68,0.79,0.91,1.04,1.17,1.3,1.44,1.58,1.71,1.86,2,2.14,2.29,2.42,2.56,2.7,2.83,2.96,3.09,3.21,3.32,3.43,3.53,3.62,3.7,3.78,3.84,3.9,3.94,3.97,3.993,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.87,3.55,3.11,2.6,2.07,1.55,1.05,0.63,0.3,0.08,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.554,0.557,0.56,0.562,0.565,0.567,0.569,0.57,0.57,0.01,0.007,0.005,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.554,0.557,0.56,0.562,0.565,0.567,0.569,0.57,0.57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.1,0.094,0.08,0.063,0.044,0.028,0.014,0.004,0,-0.001,-0.002,-0.003,-0.004,-0.005,-0.006,-0.01,-0.008,-0.009,-0.009,-0.01,-0.01,-0.012,-0.012,-0.01,-0.013,-0.01,-0.014,-0.01,-0.015,-0.02,-0.016,-0.02,-0.017,-0.02,-0.02,-0.018,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,0.2,0.53,0.71,0.81,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.96,-0.969,-0.977,-0.983,-0.988,-0.992,-0.995,-0.998,-0.999,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.1,0.094,0.08,0.063,0.044,0.028,0.014,0.004,0,-0.001,-0.002,-0.003,-0.004,-0.005,-0.006,-0.01,-0.008,-0.009,-0.009,-0.01,-0.01,-0.012,-0.012,-0.01,-0.013,-0.01,-0.014,-0.01,-0.015,-0.02,-0.016,-0.02,-0.017,-0.02,-0.02,-0.018,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,0.2,0.53,0.71,0.81,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.98,-0.985,-0.988,-0.992,-0.994,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0.03,0.07,0.12,0.15,0.16,0.159,0.156,0.151,0.145,0.137,0.128,0.119,0.108,0.097,0.086,0.074,0.063,0.052,0.041,0.032,0.023,0.015,0.009,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.16,-0.25,-0.31,-0.34,-0.29,-0.2,-0.14,-0.12,-0.12,-0.122,-0.125,-0.128,-0.133,-0.138,-0.144,-0.151,-0.159,-0.167,-0.176,-0.185,-0.195,-0.206,-0.216,-0.227,-0.238,-0.25,-0.261,-0.273,-0.285,-0.297,-0.309,-0.32,-0.332,-0.343,-0.354,-0.364,-0.375,-0.385,-0.394,-0.403,-0.411,-0.419,-0.426,-0.432,-0.437,-0.442,-0.445,-0.448,-0.449,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.436,-0.4,-0.35,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,-0.014,-0.04,-0.06,-0.074,-0.08,-0.079,-0.078,-0.076,-0.072,-0.069,-0.064,-0.059,-0.054,-0.048,-0.043,-0.037,-0.032,-0.026,-0.021,-0.016,-0.011,-0.008,-0.004,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.05,0.09,0.15,0.21,0.3,0.35,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.368,0.34,0.3,0.25,0.2,0.15,0.1,0.06,0.03,0.01,0\r\r\nPARAM_BROW_L_Y=0,0.09,0.24,0.38,0.48,0.52,0.5,0.44,0.36,0.26,0.16,0.07,-0.02,-0.08,-0.1,-0.103,-0.105,-0.106,-0.108,-0.109,-0.11,-0.111,-0.112,-0.114,-0.115,-0.117,-0.12,-0.125,-0.134,-0.144,-0.157,-0.171,-0.186,-0.203,-0.221,-0.24,-0.259,-0.28,-0.31,-0.35,-0.4,-0.45,-0.49,-0.54,-0.58,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.68,-0.79,-0.89,-0.96,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.96,-0.88,-0.77,-0.64,-0.51,-0.38,-0.26,-0.16,-0.07,-0.02,0\r\r\nPARAM_BROW_R_Y=0,0.09,0.24,0.38,0.48,0.52,0.5,0.45,0.37,0.27,0.18,0.08,0,-0.06,-0.09,-0.098,-0.104,-0.109,-0.114,-0.118,-0.121,-0.125,-0.128,-0.132,-0.137,-0.143,-0.15,-0.161,-0.173,-0.187,-0.203,-0.22,-0.239,-0.259,-0.28,-0.3,-0.33,-0.35,-0.38,-0.43,-0.47,-0.52,-0.57,-0.61,-0.65,-0.67,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.74,-0.83,-0.91,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0\r\r\nPARAM_BROW_ANGLE=0.2,0.198,0.192,0.182,0.169,0.154,0.136,0.116,0.1,0.07,0.05,0.03,0,-0.02,-0.05,-0.07,-0.1,-0.12,-0.14,-0.158,-0.176,-0.191,-0.204,-0.215,-0.223,-0.228,-0.23,-0.227,-0.22,-0.21,-0.199,-0.187,-0.175,-0.164,-0.154,-0.147,-0.142,-0.14,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.52,-0.43,-0.35,-0.28,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.245,-0.21,-0.16,-0.1,-0.04,0.02,0.08,0.13,0.17,0.19,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.5,-0.5,-0.498,-0.496,-0.494,-0.492,-0.489,-0.485,-0.481,-0.477,-0.472,-0.467,-0.461,-0.455,-0.448,-0.441,-0.434,-0.426,-0.417,-0.408,-0.399,-0.389,-0.379,-0.368,-0.357,-0.345,-0.333,-0.321,-0.308,-0.294,-0.281,-0.267,-0.252,-0.237,-0.222,-0.206,-0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.16,0.1,0.03,-0.06,-0.15,-0.24,-0.32,-0.39,-0.45,-0.49,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.74,0.49,0.25,0.08,0,-0.013,-0.026,-0.038,-0.05,-0.06,-0.071,-0.08,-0.089,-0.098,-0.106,-0.113,-0.12,-0.127,-0.133,-0.138,-0.144,-0.148,-0.153,-0.157,-0.161,-0.164,-0.167,-0.169,-0.172,-0.174,-0.175,-0.177,-0.178,-0.18,-0.18,-0.18,-0.18,-0.174,-0.157,-0.13,-0.1,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.21,0.41,0.61,0.77,0.86,0.89,0.9,0.902,0.901,0.9\r\r\nPARAM_MOUTH_EMO=0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.131,0.13,0.13,0.132,0.13,0.13,0.133,0.13,0.13,0.134,0.13,0.135,0.14,0.136,0.14,0.137,0.138,0.14,0.139,0.14,0.14,0.141,0.142,0.14,0.144,0.145,0.145,0.146,0.147,0.148,0.149,0.15,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.435,0.444,0.452,0.458,0.46,0.11,0.112,0.115,0.117,0.119,0.12\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.72,-1.86,-2.93,-3.7,-4,-3.83,-3.37,-2.7,-1.91,-1.09,-0.3,0.37,0.83,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,6.69,5.86,4.66,3.24,1.76,0.34,-0.86,-1.69,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0.04,0.12,0.18,0.23,0.25,0.248,0.244,0.236,0.226,0.214,0.2,0.185,0.169,0.152,0.134,0.116,0.098,0.081,0.065,0.05,0.036,0.024,0.014,0.006,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.009,0.014,0.02,0.027,0.034,0.043,0.052,0.062,0.073,0.084,0.096,0.108,0.121,0.135,0.149,0.163,0.177,0.192,0.207,0.222,0.237,0.252,0.268,0.283,0.298,0.313,0.328,0.343,0.357,0.371,0.385,0.399,0.412,0.424,0.436,0.447,0.458,0.468,0.477,0.486,0.493,0.5,0.506,0.511,0.515,0.518,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.503,0.46,0.4,0.34,0.27,0.2,0.14,0.08,0.04,0.01,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,0.97,0.9,0.79,0.67,0.53,0.41,0.3,0.23,0.2,0.203,0.212,0.225,0.242,0.26,0.28,0.3,0.318,0.335,0.348,0.357,0.36,0.355,0.341,0.322,0.3,0.28,0.26,0.23,0.217,0.203,0.193,0.19,0.19,0.191,0.193,0.195,0.198,0.202,0.206,0.21,0.216,0.221,0.227,0.233,0.24,0.247,0.254,0.262,0.27,0.278,0.287,0.295,0.304,0.313,0.321,0.33,0.339,0.348,0.357,0.366,0.375,0.384,0.392,0.401,0.409,0.417,0.425,0.433,0.44,0.447,0.454,0.46,0.466,0.472,0.477,0.481,0.486,0.489,0.492,0.495,0.497,0.499,0.5,0.5,0.497,0.489,0.477,0.461,0.442,0.42,0.4,0.37,0.35,0.32,0.29,0.27,0.25,0.229,0.213,0.201,0.193,0.19,0.2,0.22,0.26,0.3,0.34,0.38,0.42,0.45,0.48,0.494,0.5\r\r\nPARAM_BOING=0,-0.04,-0.06,0.02,0.14,0.25,0.34,0.37,0.21,-0.05,-0.23,-0.29,-0.19,-0.02,0.09,0.13,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.1,-0.19,-0.28,-0.35,-0.38,-0.33,-0.22,-0.08,0.07,0.18,0.23,0.2,0.13,0.05,-0.04,-0.11,-0.14,-0.11,-0.07,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.04,-0.13,-0.26,-0.39,-0.48,-0.52,-0.47,-0.35,-0.21,-0.06,0.08,0.19,0.26,0.29,0.26,0.21,0.14,0.06,0,-0.06,-0.1,-0.11,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,0.02,0.08,0.16,0.23,0.29,0.31,0.26,0.16,0.03,-0.11,-0.23,-0.34,-0.4,-0.43,-0.4,-0.32,-0.23,-0.14,-0.05,0.02,0.07,0.09,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.07,0.23,0.43,0.63,0.79,0.89,0.92,0.79,0.47,0.04,-0.38,-0.7,-0.83,-0.79,-0.68,-0.53,-0.36,-0.18,0,0.17,0.31,0.42,0.49,0.52,0.49,0.43,0.32,0.21,0.08,-0.03,-0.14,-0.2,-0.23,-0.222,-0.2,-0.17,-0.13,-0.1,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.1,-0.26,-0.4,-0.51,-0.55,-0.55,-0.548,-0.546,-0.543,-0.539,-0.534,-0.528,-0.521,-0.513,-0.504,-0.494,-0.483,-0.471,-0.458,-0.444,-0.428,-0.411,-0.393,-0.374,-0.35,-0.33,-0.31,-0.28,-0.26,-0.23,-0.2,-0.17,-0.14,-0.11,-0.07,-0.04,0,0.05,0.1,0.16,0.22,0.27,0.32,0.36,0.39,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.45,0.53,0.6,0.65,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.65,0.59,0.52,0.44,0.35,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_WING_DEFORM=0,-0.07,-0.19,-0.3,-0.38,-0.41,-0.409,-0.405,-0.399,-0.391,-0.381,-0.369,-0.356,-0.341,-0.326,-0.309,-0.291,-0.273,-0.255,-0.236,-0.217,-0.198,-0.179,-0.16,-0.142,-0.124,-0.107,-0.09,-0.075,-0.061,-0.048,-0.036,-0.025,-0.017,-0.01,-0.004,-0.001,0,-0.03,-0.13,-0.26,-0.42,-0.58,-0.74,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.3,1.03,2,2.97,3.7,4,3.71,2.99,2.12,1.27,0.58,0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,5.78,16.22,22,18.09,8.61,-4,-16.61,-26.09,-30,-28.61,-26.11,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.73,-24.23,-22.91,-20.86,-18.29,-15.45,-12.36,-9.28,-6.43,-3.86,-1.82,-0.49,0\r\r\nPARAM_ANGLE_Z=0,1.45,2,-0.35,-6.07,-13.06,-19.88,-25.35,-28.82,-30,-29.03,-27.44,-26.35,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-25.67,-24.75,-23.29,-21.44,-19.24,-16.83,-14.29,-11.71,-9.17,-6.76,-4.56,-2.71,-1.25,-0.33,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.482,0.45,0.434,0.427,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.429,0.433,0.439,0.446,0.455,0.464,0.473,0.481,0.489,0.495,0.499,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.6,0.76,0.86,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.8,0.64,0.54,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0.012,0.05,0.09,0.15,0.21,0.27,0.31,0.35,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.357,0.348,0.334,0.315,0.29,0.27,0.24,0.21,0.18,0.15,0.13,0.1,0.08,0.05,0.036,0.021,0.009,0.002,0\r\r\nPARAM_BROW_L_Y=0,0.49,0.67,0.6,0.42,0.19,-0.05,-0.23,-0.3,-0.299,-0.297,-0.294,-0.29,-0.284,-0.278,-0.27,-0.262,-0.253,-0.243,-0.233,-0.222,-0.211,-0.199,-0.187,-0.175,-0.163,-0.15,-0.137,-0.125,-0.113,-0.101,-0.089,-0.078,-0.067,-0.057,-0.047,-0.038,-0.03,-0.022,-0.016,-0.01,-0.006,-0.003,-0.001,0\r\r\nPARAM_BROW_R_Y=0,0.49,0.67,0.6,0.42,0.18,-0.06,-0.24,-0.31,-0.309,-0.307,-0.304,-0.299,-0.294,-0.287,-0.279,-0.271,-0.262,-0.252,-0.241,-0.23,-0.218,-0.206,-0.193,-0.181,-0.168,-0.155,-0.142,-0.129,-0.117,-0.104,-0.092,-0.08,-0.069,-0.058,-0.048,-0.039,-0.031,-0.023,-0.016,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_BROW_L_ANGLE=0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0\r\r\nPARAM_BROW_R_ANGLE=0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0\r\r\nPARAM_EAR_DEFORM=0,0.08,0.23,0.31,0.22,0,-0.29,-0.59,-0.81,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.9,-0.893,-0.876,-0.85,-0.81,-0.77,-0.72,-0.67,-0.61,-0.55,-0.48,-0.42,-0.35,-0.29,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.59,0.73,0.87,0.96,1,1,1,1,1,1,1,1,1,1,0.986,0.95,0.91,0.86,0.83,0.818,0.82,0.826,0.834,0.842,0.848,0.85,0.832,0.8,0.783,0.777,0.797,0.83,0.85,0.86,0.86,0.858,0.853,0.842,0.826,0.8,0.71,0.6,0.52,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.73,1.92,2.73,3,2.71,2.01,1.08,0.15,-0.55,-0.84,-0.69,-0.45,-0.23,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,-0.23,-0.77,-1.5,-2.23,-2.77,-3,-2.96,-2.86,-2.69,-2.47,-2.22,-1.94,-1.65,-1.35,-1.06,-0.78,-0.53,-0.31,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.54,0.63,0.75,0.87,0.96,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0.011,0.04,0.08,0.14,0.2,0.26,0.32,0.39,0.44,0.49,0.54,0.57,0.59,0.6,0.599,0.595,0.59,0.583,0.574,0.565,0.556,0.546,0.537,0.528,0.52,0.513,0.508,0.504,0.501,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0,-0.03,-0.12,-0.25,-0.4,-0.56,-0.7,-0.83,-0.92,-0.98,-1,-0.97,-0.87,-0.74,-0.58,-0.42,-0.26,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_WING_ANGLE=0,0.013,0.04,0.09,0.13,0.16,0.17,0.157,0.12,0.07,0.01,-0.05,-0.11,-0.16,-0.2,-0.21,-0.209,-0.207,-0.203,-0.198,-0.192,-0.185,-0.176,-0.168,-0.158,-0.149,-0.138,-0.128,-0.117,-0.106,-0.096,-0.085,-0.075,-0.064,-0.055,-0.046,-0.037,-0.029,-0.022,-0.016,-0.01,-0.006,-0.003,-0.001,0\r\r\nPARAM_WING_DEFORM=0,0.24,0.64,0.91,1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_RIBBON_DEFORM=0,0,0,0,0,0,0,0.15,0.4,0.57,0.63,0.51,0.31,0.12,-0.01,-0.06,-0.053,-0.035,-0.017,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0,0.012,0.04,0.09,0.15,0.2,0.25,0.3,0.33,0.35,0.36,0.359,0.356,0.352,0.345,0.338,0.329,0.318,0.307,0.295,0.281,0.267,0.252,0.237,0.222,0.206,0.19,0.174,0.158,0.142,0.127,0.112,0.097,0.084,0.07,0.058,0.047,0.036,0.027,0.019,0.013,0.007,0.003,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,7.88,22.12,30,27.93,22.52,14.7,5.77,-3.51,-12.16,-19.55,-25.19,-28.75,-30,-28.69,-25.19,-20.12,-14.1,-7.9,-1.88,3.19,6.69,8,7.84,7.41,6.77,5.96,5.07,4.12,3.18,2.31,1.54,0.89,0.41,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=-1,-0.5,-0.515,-0.52,-0.519,-0.516,-0.512,-0.508,-0.503,-0.499,-0.495,-0.492,-0.491,-0.49,-0.49,-0.493,-0.496,-0.5,-0.505,-0.509,-0.513,-0.517,-0.52,-0.522,-0.524,-0.526,-0.528,-0.529,-0.531,-0.532,-0.533,-0.535,-0.536,-0.537,-0.539,-0.54,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.953,-0.957,-0.962,-0.967,-0.972,-0.977,-0.982,-0.987,-0.991,-0.995,-0.998,-0.999,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.549,0.544,0.537,0.528,0.517,0.503,0.488,0.471,0.454,0.434,0.41,0.39,0.37,0.35,0.32,0.3,0.28,0.25,0.23,0.21,0.19,0.16,0.14,0.123,0.104,0.086,0.07,0.054,0.041,0.029,0.019,0.011,0.005,0.001,0,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.037,0.03,0.02,0.01,0.003,0,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.549,0.544,0.537,0.528,0.517,0.503,0.488,0.471,0.454,0.434,0.41,0.39,0.37,0.35,0.32,0.3,0.28,0.25,0.23,0.21,0.19,0.16,0.14,0.123,0.104,0.086,0.07,0.054,0.041,0.029,0.019,0.011,0.005,0.001,0,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.037,0.03,0.02,0.01,0.003,0,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-0.92,-0.92,-0.92,-0.922,-0.923,-0.925,-0.927,-0.929,-0.931,-0.934,-0.937,-0.94,-0.943,-0.946,-0.949,-0.953,-0.956,-0.96,-0.963,-0.966,-0.97,-0.973,-0.976,-0.979,-0.982,-0.985,-0.987,-0.99,-0.992,-0.994,-0.996,-0.997,-0.998,-0.999,-1,-1,-0.11,-0.08,-0.06,-0.03,-0.013,0.005,0.022,0.036,0.049,0.06,0.07,0.078,0.085,0.091,0.095,0.098,0.099,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.29,0.47,0.64,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-0.91,-0.91,-0.91,-0.912,-0.914,-0.915,-0.918,-0.92,-0.923,-0.926,-0.929,-0.932,-0.936,-0.939,-0.943,-0.947,-0.951,-0.955,-0.958,-0.962,-0.966,-0.97,-0.973,-0.977,-0.98,-0.983,-0.986,-0.989,-0.991,-0.993,-0.995,-0.997,-0.998,-0.999,-1,-1,-0.11,-0.08,-0.06,-0.03,-0.013,0.005,0.022,0.036,0.049,0.06,0.07,0.078,0.085,0.091,0.095,0.098,0.099,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.29,0.47,0.64,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.17,-0.47,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.62,-0.56,-0.47,-0.37,-0.27,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_R_Y=0,-0.17,-0.47,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.62,-0.56,-0.47,-0.37,-0.27,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_ANGLE=-0.53,-0.53,-0.53,-0.532,-0.533,-0.534,-0.536,-0.538,-0.541,-0.543,-0.546,-0.549,-0.553,-0.556,-0.56,-0.564,-0.567,-0.571,-0.575,-0.58,-0.584,-0.588,-0.592,-0.597,-0.601,-0.605,-0.609,-0.613,-0.617,-0.621,-0.625,-0.629,-0.632,-0.636,-0.639,-0.642,-0.645,-0.648,-0.65,-0.652,-0.654,-0.656,-0.657,-0.659,-0.659,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.653,-0.636,-0.61,-0.58,-0.53,-0.17,-0.06,0.02,0.09,0.13,0.16,0.18,0.196,0.2\r\r\nPARAM_BROW_SELECT=0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,-0.19,-0.29,-0.36,-0.41,-0.44,-0.47,-0.487,-0.497,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.2,0.31,0.39,0.42,0.38,0.3,0.26,0.31,0.39,0.44,0.46,0.44,0.37,0.28,0.18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.66,0.24,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.018,-0.04,-0.08,-0.12,-0.18,-0.25,-0.33,-0.43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.63,-0.26,-0.06,0,-0.009,-0.04,-0.09,-0.17,-0.28,-0.43,-1,-0.983,-0.93,-0.86,-0.76,-0.64,-0.51,-0.37,-0.22,-0.07,0.08,0.23,0.37,0.5,0.61,0.71,0.79,0.85,0.89,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.23,0.233,0.236,0.239,0.242,0.244,0.245,0.247,0.248,0.25,0.25,0.25,0.25,0.24,0.22,0.202,0.184,0.167,0.15,0.135,0.121,0.107,0.094,0.082,0.071,0.061,0.052,0.043,0.035,0.028,0.022,0.017,0.012,0.009,0.005,0.003,0.001,0,0,0.47,0.47,0.47,0.47,0.47,0.47,0.469,0.47,0.47,0.468,0.47,0.466,0.466,0.465,0.46,0.463,0.462,0.461,0.46,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,1.58,4.42,6,5.62,4.63,3.2,1.56,-0.14,-1.73,-3.08,-4.12,-4.77,-5,-4.76,-4.11,-3.18,-2.07,-0.93,0.18,1.11,1.76,2,1.96,1.85,1.69,1.49,1.27,1.03,0.8,0.58,0.39,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.63,0.87,1,0.998,0.99,0.979,0.964,0.945,0.92,0.9,0.87,0.84,0.81,0.78,0.75,0.71,0.68,0.64,0.61,0.57,0.54,0.5,0.47,0.44,0.41,0.38,0.35,0.33,0.31,0.287,0.271,0.258,0.248,0.242,0.24,0.244,0.255,0.272,0.3,0.32,0.35,0.39,0.43,0.47,0.5,0.55,0.58,0.62,0.66,0.69,0.72,0.75,0.78,0.794,0.808,0.817,0.82,0.818,0.814,0.806,0.796,0.784,0.77,0.754,0.737,0.719,0.699,0.68,0.66,0.64,0.621,0.601,0.583,0.566,0.55,0.536,0.524,0.514,0.506,0.502,0.5\r\r\nPARAM_BOING=0,0.18,0.46,0.73,0.92,1,0.88,0.58,0.18,-0.23,-0.53,-0.65,-0.48,-0.21,0.04,0.22,0.29,0.26,0.17,0.06,-0.05,-0.14,-0.17,-0.157,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.18,0.51,0.69,0.59,0.35,0.06,-0.23,-0.46,-0.6,-0.65,-0.59,-0.43,-0.22,-0.01,0.15,0.21,0.18,0.09,-0.01,-0.12,-0.21,-0.24,-0.222,-0.18,-0.12,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.13,0.38,0.51,0.48,0.41,0.31,0.2,0.08,-0.03,-0.13,-0.2,-0.24,-0.26,-0.245,-0.21,-0.15,-0.08,-0.01,0.06,0.12,0.16,0.17,0.167,0.157,0.144,0.127,0.108,0.087,0.068,0.049,0.033,0.019,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,0.13,0.38,0.51,0.48,0.41,0.31,0.2,0.08,-0.03,-0.13,-0.2,-0.24,-0.26,-0.245,-0.21,-0.15,-0.08,-0.01,0.06,0.12,0.16,0.17,0.167,0.157,0.144,0.127,0.108,0.087,0.068,0.049,0.033,0.019,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.22,0.6,0.82,0.71,0.44,0.1,-0.22,-0.48,-0.64,-0.7,-0.65,-0.54,-0.36,-0.17,0.04,0.23,0.39,0.51,0.59,0.62,0.612,0.59,0.56,0.51,0.46,0.4,0.34,0.28,0.22,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.006,-0.014,-0.025,-0.037,-0.052,-0.069,-0.086,-0.106,-0.126,-0.15,-0.17,-0.19,-0.21,-0.23,-0.25,-0.269,-0.285,-0.3,-0.313,-0.325,-0.335,-0.344,-0.352,-0.358,-0.364,-0.368,-0.372,-0.375,-0.377,-0.378,-0.379,-0.38,-0.38,-0.372,-0.352,-0.32,-0.28,-0.24,-0.19,-0.14,-0.1,-0.06,-0.03,-0.008,0\r\r\nPARAM_WING_DEFORM=0,0.26,0.74,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.025,-0.05,-0.09,-0.14,-0.18,-0.23,-0.29,-0.34,-0.38,-0.43,-0.47,-0.49,-0.513,-0.52,-0.519,-0.517,-0.512,-0.506,-0.496,-0.484,-0.469,-0.451,-0.43,-0.4,-0.37,-0.34,-0.3,-0.26,-0.05,0.24,0.49,0.67,0.74,0.725,0.69,0.62,0.55,0.46,0.37,0.28,0.19,0.12,0.05,0.01,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.45,1.51,2.94,4.62,6.42,8.31,10.17,12,14.13,16.1,17.86,19.48,20.94,22.28,23.48,24.54,25.5,26.35,27.09,27.75,28.31,28.77,29.17,29.48,29.71,29.87,29.97,30,29.85,29.41,28.71,27.77,26.65,25.31,23.82,22.24,20.51,18.7,16.89,15,13.11,11.3,9.49,7.76,6.18,4.69,3.35,2.23,1.29,0.59,0.15,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.26,-0.85,-1.63,-2.52,-3.44,-4.36,-5.22,-6,-6.86,-7.65,-8.35,-8.99,-9.57,-10.09,-10.56,-10.97,-11.33,-11.66,-11.94,-12.18,-12.39,-12.56,-12.7,-12.81,-12.9,-12.96,-12.99,-13,-12.93,-12.75,-12.44,-12.03,-11.55,-10.97,-10.32,-9.64,-8.89,-8.1,-7.32,-6.5,-5.68,-4.9,-4.11,-3.36,-2.68,-2.03,-1.45,-0.97,-0.56,-0.25,-0.07,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.83,2.63,4.88,7.23,9.39,11.21,12.46,13,13.14,13.27,13.38,13.48,13.57,13.64,13.71,13.76,13.81,13.86,13.89,13.92,13.94,13.96,13.974,13.985,13.992,13.997,13.999,14,13.91,13.65,13.23,12.66,11.99,11.19,10.29,9.34,8.3,7.22,6.13,5,3.87,2.78,1.7,0.66,-0.29,-1.19,-1.99,-2.66,-3.23,-3.65,-3.91,-4,-4,-3.71,-2.99,-2.12,-1.27,-0.58,-0.15,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.94,0.91,0.84,0.76,0.67,0.61,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.94,0.91,0.84,0.76,0.67,0.61,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.116,0.16,0.22,0.3,0.39,0.49,0.59,0.68,0.76,0.82,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.94,-0.96,-0.975,-0.986,-0.993,-0.997,-0.999,-1\r\r\nPARAM_EYE_R_OPEN2=-1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.115,0.16,0.22,0.3,0.38,0.48,0.58,0.66,0.74,0.81,0.85,0.87,0.873,0.875,0.877,0.878,0.879,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.96,-0.973,-0.984,-0.991,-0.995,-0.998,-1,-1\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.04,-0.07,-0.1,-0.13,-0.15,-0.171,-0.18,-0.184,-0.188,-0.191,-0.194,-0.197,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.208,-0.208,-0.21,-0.209,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.195,-0.16,-0.11,-0.07,-0.03,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.009,0.028,0.05,0.08,0.11,0.13,0.15,0.17,0.186,0.2,0.213,0.224,0.234,0.243,0.251,0.258,0.264,0.27,0.274,0.278,0.281,0.284,0.286,0.287,0.289,0.289,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.27,0.22,0.15,0.09,0.04,0.01,0\r\r\nPARAM_BROW_L_Y=0,-0.05,-0.16,-0.3,-0.44,-0.57,-0.67,-0.74,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.71,-0.58,-0.41,-0.24,-0.11,-0.03,0\r\r\nPARAM_BROW_R_Y=0,-0.05,-0.17,-0.31,-0.45,-0.59,-0.7,-0.77,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.74,-0.6,-0.42,-0.25,-0.12,-0.03,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.58,-0.59,-0.598,-0.603,-0.607,-0.609,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.55,-0.41,-0.23,-0.06,0.08,0.17,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.36,0.2,-0.01,-0.21,-0.36,-0.47,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.85,0.73,0.59,0.45,0.31,0.2,0.13,0.1,0.1,0.102,0.105,0.109,0.114,0.12,0.128,0.136,0.145,0.155,0.166,0.178,0.191,0.204,0.218,0.233,0.249,0.266,0.283,0.301,0.319,0.338,0.358,0.378,0.4,0.42,0.44,0.46,0.49,0.51,0.53,0.55,0.58,0.6,0.63,0.65,0.67,0.7,0.72,0.75,0.77,0.8,0.82,0.85,0.87,0.89,0.903,0.906,0.906,0.903,0.901,0.9\r\r\nPARAM_MOUTH_EMO=0,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.259,0.26,0.26,0.26,0.26,0.26,0.26,0.258,0.26,0.26,0.26,0.26,0.257,0.26,0.26,0.26,0.256,0.26,0.26,0.26,0.255,0.25,0.25,0.254,0.25,0.25,0.253,0.25,0.25,0.252,0.25,0.25,0.251,0.25,0.25,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,0.002,0.006,0.014,0.024,0.036,0.05,0.067,0.084,0.103,0.123,0.14,0.17,0.19,0.21,0.23,0.25,0.27,0.291,0.309,0.327,0.343,0.357,0.369,0.38,0.389,0.395,0.399,0.4,0.398,0.392,0.383,0.37,0.355,0.338,0.318,0.3,0.27,0.25,0.23,0.2,0.17,0.15,0.13,0.1,0.08,0.063,0.045,0.03,0.017,0.008,0.002,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.498,0.492,0.483,0.47,0.455,0.437,0.42,0.39,0.37,0.35,0.32,0.29,0.27,0.24,0.21,0.19,0.16,0.14,0.11,0.09,0.072,0.054,0.038,0.025,0.014,0.007,0.002,0,0.003,0.01,0.021,0.037,0.056,0.08,0.1,0.13,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.37,0.4,0.42,0.44,0.463,0.479,0.49,0.497,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.11,-0.21,-0.3,-0.38,-0.41,-0.34,-0.18,0.03,0.23,0.38,0.49,0.52,0.47,0.33,0.17,0.01,-0.11,-0.19,-0.22,-0.206,-0.17,-0.14,-0.1,-0.06,-0.03,-0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.02,0.07,0.15,0.24,0.33,0.41,0.49,0.54,0.58,0.59,0.58,0.56,0.52,0.48,0.43,0.39,0.36,0.33,0.316,0.31,0.31,0.312,0.314,0.316,0.317,0.319,0.32,0.32,0.318,0.314,0.306,0.296,0.284,0.27,0.254,0.238,0.22,0.201,0.182,0.162,0.143,0.124,0.106,0.088,0.071,0.056,0.042,0.03,0.02,0.011,0.005,0.001,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.03,-0.09,-0.19,-0.3,-0.41,-0.52,-0.61,-0.68,-0.72,-0.74,-0.727,-0.69,-0.65,-0.59,-0.53,-0.48,-0.43,-0.4,-0.38,-0.37,-0.388,-0.43,-0.47,-0.52,-0.57,-0.61,-0.63,-0.64,-0.637,-0.628,-0.613,-0.593,-0.57,-0.54,-0.51,-0.48,-0.44,-0.4,-0.36,-0.32,-0.29,-0.25,-0.21,-0.18,-0.14,-0.11,-0.08,-0.06,-0.039,-0.022,-0.01,-0.003,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-1,-1,-1,-0.998,-0.996,-0.993,-0.99,-0.985,-0.979,-0.972,-0.963,-0.953,-0.941,-0.927,-0.911,-0.893,-0.874,-0.85,-0.83,-0.8,-0.76,-0.7,-0.62,-0.54,-0.45,-0.36,-0.28,-0.2,-0.13,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.88,-11.55,-11.06,-10.46,-9.77,-9.04,-8.28,-7.52,-6.77,-6.06,-5.42,-4.85,-4.36,-4,-3.67,-3.35,-3.06,-2.78,-2.53,-2.29,-2.06,-1.85,-1.66,-1.48,-1.31,-1.16,-1.02,-0.89,-0.77,-0.67,-0.57,-0.48,-0.4,-0.33,-0.27,-0.22,-0.17,-0.13,-0.1,-0.07,-0.05,-0.028,-0.015,-0.007,-0.002,0\r\r\nPARAM_ANGLE_Y=0,-0.34,-1.25,-2.64,-4.39,-6.35,-8.46,-10.57,-12.59,-14.44,-16.07,-17.4,-18.39,-19,-19.5,-19.89,-20.2,-20.45,-20.63,-20.77,-20.87,-20.93,-20.97,-21,-21.005,-21.01,-21.002,-21,-20.93,-20.73,-20.42,-20,-19.49,-18.89,-18.21,-17.46,-16.67,-15.81,-14.93,-14.01,-13.06,-12.09,-11.11,-10.13,-9.17,-8.21,-7.27,-6.36,-5.48,-4.63,-3.85,-3.11,-2.44,-1.84,-1.3,-0.85,-0.49,-0.22,-0.06,0\r\r\nPARAM_ANGLE_Z=0,-0.16,-0.59,-1.23,-2.04,-2.93,-3.88,-4.82,-5.69,-6.46,-7.11,-7.59,-7.9,-8,-7.79,-7.24,-6.45,-5.46,-4.37,-3.22,-2.07,-0.94,0.11,1.06,1.84,2.46,2.86,3,2.9,2.61,2.17,1.61,0.95,0.22,-0.52,-1.28,-2.02,-2.73,-3.36,-3.92,-4.38,-4.72,-4.93,-5,-4.94,-4.76,-4.48,-4.13,-3.72,-3.27,-2.8,-2.32,-1.86,-1.42,-1.02,-0.67,-0.39,-0.18,-0.04,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.549,0.546,0.542,0.537,0.532,0.526,0.52,0.514,0.51,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.501,0.5,0.502,0.503,0.504,0.505,0.506,0.507,0.509,0.51,0.511,0.513,0.514,0.516,0.517,0.519,0.521,0.522,0.524,0.526,0.527,0.529,0.53,0.532,0.534,0.535,0.537,0.538,0.539,0.541,0.542,0.543,0.544,0.545,0.546,0.547,0.55,0.548,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.549,0.546,0.542,0.537,0.532,0.526,0.52,0.514,0.51,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.501,0.5,0.502,0.503,0.504,0.505,0.506,0.507,0.509,0.51,0.511,0.513,0.514,0.516,0.517,0.519,0.521,0.522,0.524,0.526,0.527,0.529,0.53,0.532,0.534,0.535,0.537,0.538,0.539,0.541,0.542,0.543,0.544,0.545,0.546,0.547,0.55,0.548,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0,0.004,0.008,0.013,0.018,0.024,0.03,0.036,0.04,0.044,0.047,0.049,0.05,0.049,0.047,0.043,0.038,0.033,0.028,0.023,0.018,0.013,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.009,0.019,0.033,0.048,0.067,0.086,0.107,0.13,0.15,0.17,0.19,0.21,0.23,0.253,0.27,0.283,0.295,0.304,0.311,0.317,0.322,0.325,0.327,0.329,0.33,0.33,0.329,0.326,0.321,0.314,0.306,0.297,0.286,0.274,0.262,0.248,0.235,0.22,0.205,0.19,0.175,0.159,0.144,0.129,0.114,0.1,0.086,0.073,0.061,0.049,0.038,0.029,0.02,0.013,0.008,0.003,0.001,0\r\r\nPARAM_BROW_L_Y=0,-0.002,-0.009,-0.018,-0.031,-0.044,-0.058,-0.072,-0.085,-0.097,-0.107,-0.114,-0.118,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.118,-0.117,-0.114,-0.111,-0.108,-0.104,-0.1,-0.095,-0.09,-0.085,-0.08,-0.075,-0.069,-0.064,-0.058,-0.052,-0.047,-0.042,-0.036,-0.031,-0.026,-0.022,-0.018,-0.014,-0.01,-0.007,-0.005,-0.003,-0.001,0,0\r\r\nPARAM_BROW_R_Y=0,-0.002,-0.007,-0.015,-0.026,-0.037,-0.049,-0.062,-0.073,-0.084,-0.093,-0.101,-0.107,-0.11,-0.113,-0.115,-0.116,-0.118,-0.119,-0.119,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.118,-0.117,-0.114,-0.111,-0.108,-0.104,-0.1,-0.095,-0.09,-0.085,-0.08,-0.075,-0.069,-0.064,-0.058,-0.052,-0.047,-0.042,-0.036,-0.031,-0.026,-0.022,-0.018,-0.014,-0.01,-0.007,-0.005,-0.003,-0.001,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.205,0.22,0.24,0.27,0.3,0.33,0.36,0.39,0.42,0.44,0.456,0.466,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.469,0.467,0.463,0.457,0.451,0.443,0.434,0.425,0.414,0.403,0.392,0.38,0.368,0.355,0.343,0.33,0.318,0.306,0.293,0.282,0.27,0.26,0.25,0.24,0.231,0.224,0.217,0.211,0.206,0.203,0.201,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.91,0.904,0.887,0.86,0.83,0.79,0.75,0.72,0.68,0.65,0.62,0.606,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.601,0.604,0.609,0.616,0.624,0.633,0.644,0.656,0.669,0.682,0.697,0.712,0.727,0.742,0.758,0.774,0.789,0.804,0.819,0.833,0.846,0.859,0.871,0.882,0.891,0.9,0.907,0.912,0.917,0.919,0.92,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-1,-1,-0.998,-1,-1,-0.997,-1,-0.996,-1,-0.995,-0.994,-0.99,-0.993,-0.99,-0.991,-0.991,-0.99,-0.989,-0.99,-0.987,-0.986,-0.985,-0.984,-0.983,-0.982,-0.981,-0.98,-0.979,-0.978,-0.977,-0.976,-0.974,-0.973,-0.972,-0.97,-0.969,-0.968,-0.966,-0.965,-0.963,-0.962,-0.96,-0.959,-0.957,-0.955,-0.954,-0.952,-0.95,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.04,-0.16,-0.33,-0.56,-0.83,-1.12,-1.42,-1.72,-2.02,-2.3,-2.57,-2.8,-3,-3.23,-3.41,-3.55,-3.67,-3.76,-3.84,-3.89,-3.93,-3.96,-3.98,-3.991,-3.997,-4,-4,-4,-3.997,-3.992,-3.981,-3.963,-3.94,-3.9,-3.86,-3.8,-3.73,-3.64,-3.54,-3.43,-3.3,-3.16,-3,-2.79,-2.56,-2.31,-2.05,-1.79,-1.53,-1.28,-1.04,-0.82,-0.61,-0.43,-0.28,-0.16,-0.07,-0.02,0\r\r\nPARAM_BODY_Y=0,-0.007,-0.026,-0.06,-0.09,-0.13,-0.17,-0.22,-0.26,-0.29,-0.32,-0.34,-0.355,-0.36,-0.352,-0.33,-0.3,-0.26,-0.21,-0.17,-0.12,-0.08,-0.04,0,0.03,0.06,0.074,0.08,0.077,0.069,0.057,0.042,0.024,0.004,-0.017,-0.04,-0.06,-0.078,-0.095,-0.11,-0.123,-0.132,-0.138,-0.14,-0.138,-0.133,-0.126,-0.116,-0.104,-0.091,-0.078,-0.065,-0.052,-0.04,-0.029,-0.019,-0.011,-0.005,-0.001,0\r\r\nPARAM_BREATH=0.5,0.494,0.479,0.46,0.43,0.4,0.36,0.33,0.3,0.27,0.25,0.234,0.224,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.221,0.22,0.222,0.22,0.223,0.22,0.224,0.225,0.23,0.227,0.228,0.229,0.23,0.232,0.233,0.235,0.236,0.238,0.24,0.245,0.256,0.271,0.29,0.31,0.33,0.36,0.38,0.41,0.43,0.449,0.466,0.481,0.491,0.498,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0,-0.007,-0.026,-0.06,-0.09,-0.13,-0.17,-0.22,-0.26,-0.29,-0.32,-0.34,-0.355,-0.36,-0.353,-0.33,-0.3,-0.26,-0.21,-0.16,-0.1,-0.04,0.01,0.06,0.11,0.15,0.18,0.21,0.225,0.23,0.23,0.227,0.224,0.219,0.213,0.206,0.198,0.19,0.18,0.17,0.16,0.149,0.138,0.126,0.115,0.104,0.092,0.081,0.07,0.06,0.05,0.04,0.032,0.024,0.017,0.011,0.006,0.003,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.007,0.025,0.05,0.09,0.12,0.17,0.2,0.24,0.27,0.3,0.32,0.336,0.34,0.333,0.313,0.28,0.24,0.19,0.14,0.09,0.03,-0.02,-0.07,-0.11,-0.15,-0.19,-0.21,-0.225,-0.23,-0.23,-0.227,-0.224,-0.219,-0.213,-0.206,-0.198,-0.19,-0.18,-0.17,-0.16,-0.149,-0.138,-0.126,-0.115,-0.104,-0.092,-0.081,-0.07,-0.06,-0.05,-0.04,-0.032,-0.024,-0.017,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.007,0.026,0.05,0.09,0.13,0.17,0.21,0.25,0.28,0.31,0.33,0.345,0.35,0.338,0.3,0.25,0.18,0.1,0.01,-0.08,-0.17,-0.27,-0.35,-0.43,-0.5,-0.55,-0.6,-0.62,-0.63,-0.628,-0.622,-0.612,-0.599,-0.583,-0.564,-0.54,-0.52,-0.49,-0.47,-0.44,-0.41,-0.38,-0.35,-0.32,-0.28,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.047,-0.031,-0.018,-0.008,-0.002,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.003,0.013,0.028,0.048,0.07,0.1,0.13,0.16,0.2,0.24,0.27,0.31,0.35,0.39,0.42,0.46,0.49,0.53,0.56,0.59,0.61,0.63,0.647,0.659,0.667,0.67,0.668,0.663,0.654,0.643,0.629,0.612,0.592,0.57,0.55,0.52,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.2,0.17,0.15,0.12,0.1,0.08,0.058,0.041,0.027,0.016,0.007,0.002,0\r\r\nPARAM_WING_DEFORM=0,0.002,0.009,0.02,0.035,0.052,0.073,0.1,0.12,0.15,0.17,0.2,0.23,0.26,0.28,0.31,0.34,0.36,0.39,0.41,0.428,0.446,0.461,0.473,0.482,0.488,0.49,0.489,0.485,0.479,0.47,0.46,0.447,0.433,0.418,0.401,0.382,0.363,0.343,0.32,0.3,0.28,0.26,0.23,0.21,0.19,0.17,0.15,0.127,0.108,0.089,0.072,0.057,0.043,0.03,0.02,0.011,0.005,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/Touch6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-5.36,-13.95,-21.96,-27.75,-30,-25.49,-14.55,0,14.55,25.49,30,25.87,15.84,2.5,-10.84,-20.87,-25,-21.54,-13.14,-2.88,7.13,15.17,20.27,22,20.03,15.78,10.49,4.98,-0.04,-4.2,-6.97,-8,-7.55,-6.38,-4.69,-2.75,-0.74,1.13,2.74,3.96,4.73,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0\r\r\nPARAM_ANGLE_Y=0,0.82,2.22,3.69,5,6,6.81,7.36,7.71,7.91,7.98,8,7.991,7.93,7.75,7.41,6.85,6,4.68,3.19,1.79,0.6,-0.29,-0.83,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,-0.31,-1.12,-2.29,-3.63,-5.03,-6.32,-7.43,-8.28,-8.81,-9,-8.89,-8.58,-8.12,-7.54,-6.88,-6.15,-5.38,-4.61,-3.82,-3.07,-2.36,-1.71,-1.14,-0.67,-0.31,-0.08,0\r\r\nPARAM_ANGLE_Z=0,-1.79,-4.65,-7.32,-9.25,-10,-9.02,-6.65,-3.5,-0.35,2.02,3,2.62,1.71,0.5,-0.71,-1.62,-2,-1.56,-0.49,0.82,2.1,3.13,3.78,4,3.28,1.72,-0.22,-2.24,-4.08,-5.61,-6.62,-7,-6.62,-5.63,-4.2,-2.56,-0.86,0.73,2.08,3.12,3.77,4,3.95,3.82,3.61,3.35,3.06,2.73,2.39,2.05,1.7,1.37,1.05,0.76,0.51,0.3,0.14,0.04,0\r\r\nPARAM_EMOTION=-1,-0.47,-0.471,-0.475,-0.48,-0.487,-0.493,-0.5,-0.505,-0.509,-0.51,-0.51,-0.51,-0.51,-0.51,-0.509,-0.51,-0.508,-0.507,-0.51,-0.505,-0.504,-0.503,-0.503,-0.502,-0.501,-0.499,-0.498,-0.497,-0.496,-0.495,-0.494,-0.493,-0.492,-0.491,-0.49,-0.489,-0.488,-0.487,-0.486,-0.49,-0.484,-0.484,-0.483,-0.48,-0.482,-0.48,-0.481,-0.48,-0.48,-0.48,-0.48,-0.481,-0.485,-0.492,-0.501,-0.512,-0.525,-0.54,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.02,0.019,0.019,0.018,0.02,0.017,0.016,0.02,0.015,0.01,0.014,0.013,0.01,0.012,0.01,0.011,0.01,0.01,0.01,0.009,0.01,0.008,0.01,0.01,0.007,0.01,0.006,0.01,0.01,0.005,0,0,0.004,0,0,0.003,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.02,0.019,0.019,0.018,0.02,0.017,0.016,0.02,0.015,0.01,0.014,0.013,0.01,0.012,0.01,0.011,0.01,0.01,0.01,0.009,0.01,0.008,0.01,0.01,0.007,0.01,0.006,0.01,0.01,0.005,0,0,0.004,0,0,0.003,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-1,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.983,-0.982,-0.981,-0.979,-0.978,-0.976,-0.975,-0.973,-0.972,-0.97,-0.969,-0.967,-0.966,-0.964,-0.963,-0.961,-0.96,-0.958,-0.957,-0.956,-0.954,-0.953,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.945,-0.944,-0.944,-0.943,-0.94,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94,-0.94\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-1,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.983,-0.982,-0.981,-0.979,-0.978,-0.976,-0.975,-0.973,-0.972,-0.97,-0.969,-0.967,-0.966,-0.964,-0.963,-0.961,-0.96,-0.958,-0.957,-0.956,-0.954,-0.953,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.945,-0.944,-0.944,-0.943,-0.94,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94,-0.94\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.008,-0.03,-0.06,-0.1,-0.13,-0.17,-0.2,-0.22,-0.235,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.224,-0.19,-0.15,-0.1,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.008,-0.03,-0.06,-0.09,-0.13,-0.16,-0.19,-0.21,-0.225,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.215,-0.18,-0.14,-0.1,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,0.195,0.183,0.164,0.14,0.12,0.102,0.084,0.071,0.063,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.069,0.089,0.11,0.14,0.16,0.182,0.195,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.91,0.896,0.86,0.8,0.74,0.67,0.61,0.55,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.53,0.6,0.69,0.78,0.85,0.89,0.91,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.54,-1.39,-2.2,-2.77,-3,-2.83,-2.38,-1.73,-0.98,-0.21,0.51,1.13,1.6,1.9,2,1.9,1.66,1.33,0.95,0.55,0.16,-0.21,-0.52,-0.78,-0.94,-1,-0.997,-0.989,-0.977,-0.96,-0.94,-0.91,-0.88,-0.85,-0.82,-0.78,-0.74,-0.7,-0.66,-0.61,-0.57,-0.52,-0.48,-0.43,-0.39,-0.34,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,6.93,6.73,6.43,6.08,5.69,5.29,4.91,4.56,4.26,4,3.7,3.44,3.21,3.01,2.83,2.67,2.52,2.38,2.25,2.12,2,1.87,1.75,1.63,1.51,1.4,1.3,1.19,1.1,1.01,0.92,0.83,0.76,0.68,0.61,0.55,0.48,0.43,0.37,0.32,0.28,0.23,0.2,0.16,0.13,0.1,0.08,0.056,0.039,0.025,0.014,0.006,0.002,0\r\r\nPARAM_BODY_Y=0,0.05,0.13,0.2,0.25,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.269,0.268,0.267,0.265,0.264,0.262,0.26,0.257,0.253,0.248,0.243,0.236,0.228,0.22,0.211,0.202,0.192,0.182,0.171,0.16,0.149,0.138,0.126,0.115,0.104,0.093,0.082,0.072,0.062,0.052,0.043,0.035,0.027,0.021,0.015,0.01,0.005,0.002,0.001,0\r\r\nPARAM_BREATH=0.5,0.56,0.66,0.75,0.81,0.84,0.73,0.57,0.41,0.29,0.25,0.35,0.52,0.67,0.79,0.83,0.73,0.57,0.41,0.3,0.26,0.3,0.4,0.53,0.66,0.76,0.8,0.794,0.78,0.76,0.73,0.7,0.66,0.62,0.59,0.55,0.51,0.48,0.44,0.42,0.39,0.375,0.364,0.36,0.362,0.367,0.374,0.384,0.396,0.409,0.422,0.435,0.448,0.46,0.471,0.481,0.489,0.495,0.499,0.5\r\r\nPARAM_BOING=0,0.04,0.14,0.27,0.39,0.49,0.53,0.46,0.29,0.08,-0.13,-0.29,-0.39,-0.43,-0.37,-0.22,-0.03,0.15,0.3,0.39,0.42,0.37,0.26,0.13,0,-0.11,-0.18,-0.2,-0.15,-0.06,0.02,0.08,0.1,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.13,0.34,0.53,0.68,0.73,0.62,0.34,0,-0.34,-0.6,-0.77,-0.83,-0.69,-0.36,0.08,0.53,0.86,1,0.89,0.62,0.29,-0.03,-0.29,-0.45,-0.51,-0.46,-0.35,-0.21,-0.07,0.06,0.16,0.23,0.26,0.252,0.23,0.2,0.16,0.11,0.06,0.01,-0.04,-0.08,-0.11,-0.13,-0.14,-0.137,-0.13,-0.12,-0.108,-0.094,-0.079,-0.064,-0.05,-0.037,-0.025,-0.015,-0.007,-0.002,0\r\r\nPARAM_HAIR_SIDE_R=0,0.05,0.16,0.29,0.42,0.53,0.6,0.62,0.59,0.52,0.43,0.35,0.28,0.23,0.22,0.25,0.31,0.39,0.47,0.54,0.58,0.59,0.56,0.51,0.44,0.36,0.27,0.14,0.07,0.03,0.01,0,0.002,0.008,0.017,0.029,0.041,0.055,0.069,0.081,0.093,0.102,0.108,0.11,0.109,0.105,0.099,0.091,0.082,0.072,0.062,0.051,0.041,0.031,0.023,0.015,0.009,0.004,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.04,0.13,0.25,0.36,0.46,0.52,0.55,0.56,0.566,0.569,0.57,0.57,0.57,0.57,0.53,0.44,0.33,0.22,0.13,0.08,0.06,0.068,0.09,0.12,0.16,0.19,0.23,0.26,0.28,0.295,0.3,0.291,0.27,0.23,0.18,0.13,0.08,0.02,-0.03,-0.08,-0.12,-0.14,-0.15,-0.148,-0.143,-0.135,-0.124,-0.112,-0.098,-0.084,-0.07,-0.056,-0.043,-0.031,-0.02,-0.012,-0.005,-0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.05,0.18,0.33,0.49,0.61,0.68,0.71,0.62,0.44,0.21,-0.03,-0.25,-0.43,-0.55,-0.6,-0.52,-0.34,-0.11,0.11,0.29,0.4,0.44,0.38,0.24,0.06,-0.12,-0.28,-0.42,-0.51,-0.54,-0.51,-0.44,-0.35,-0.24,-0.12,-0.01,0.1,0.19,0.27,0.31,0.33,0.327,0.319,0.305,0.288,0.27,0.24,0.22,0.19,0.16,0.14,0.11,0.09,0.06,0.04,0.025,0.011,0.003,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.05,-0.18,-0.36,-0.53,-0.66,-0.71,-0.67,-0.56,-0.41,-0.23,-0.05,0.13,0.3,0.44,0.56,0.63,0.66,0.648,0.61,0.56,0.5,0.42,0.33,0.24,0.14,0.05,-0.04,-0.12,-0.18,-0.23,-0.27,-0.28,-0.279,-0.276,-0.27,-0.263,-0.255,-0.245,-0.233,-0.221,-0.208,-0.193,-0.179,-0.163,-0.148,-0.132,-0.117,-0.101,-0.087,-0.072,-0.059,-0.047,-0.035,-0.025,-0.017,-0.01,-0.004,-0.001,0\r\r\nPARAM_WING_DEFORM=0,-0.08,-0.26,-0.5,-0.74,-0.92,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.75,-0.69,-0.62,-0.55,-0.48,-0.41,-0.33,-0.26,-0.19,-0.12,-0.05,0.01,0.07,0.12,0.16,0.2,0.24,0.26,0.275,0.28,0.279,0.276,0.27,0.263,0.255,0.245,0.233,0.221,0.208,0.193,0.179,0.163,0.148,0.132,0.117,0.101,0.087,0.072,0.059,0.047,0.035,0.025,0.017,0.01,0.004,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/motions/WakeUp.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=10,9.54,8.55,7.31,6.03,4.86,3.89,3.24,3,3.007,3.027,3.06,3.1,3.16,3.22,3.3,3.38,3.47,3.56,3.67,3.77,3.89,4,4.12,4.24,4.36,4.48,4.61,4.73,4.85,4.97,5.08,5.19,5.3,5.4,5.49,5.58,5.66,5.74,5.8,5.86,5.91,5.95,5.98,5.994,6,5.92,5.72,5.41,5.03,4.59,4.1,3.59,3.07,2.54,2.05,1.58,1.14,0.76,0.45,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=-8,-6.49,-3.23,0.83,5.05,8.9,12.09,14.21,15,14.998,14.993,14.984,14.971,14.954,14.93,14.9,14.87,14.83,14.78,14.73,14.67,14.6,14.53,14.44,14.35,14.25,14.14,14.02,13.89,13.75,13.6,13.45,13.28,13.09,12.9,12.7,12.49,12.26,12.02,11.77,11.5,11.23,10.94,10.64,10.33,10,9.53,8.95,8.27,7.54,6.76,5.96,5.15,4.36,3.58,2.85,2.18,1.57,1.04,0.6,0.28,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=10,8.82,6.27,3.09,-0.21,-3.22,-5.72,-7.38,-8,-7.999,-7.996,-7.99,-7.981,-7.969,-7.954,-7.934,-7.91,-7.88,-7.85,-7.81,-7.76,-7.71,-7.66,-7.59,-7.52,-7.45,-7.36,-7.27,-7.17,-7.06,-6.94,-6.81,-6.68,-6.53,-6.38,-6.21,-6.04,-5.85,-5.66,-5.46,-5.24,-5.02,-4.78,-4.53,-4.27,-4,-3.54,-2.87,-2.01,-1.03,0.03,1.16,2.32,3.47,4.61,5.69,6.69,7.61,8.42,9.07,9.57,9.89,10,9.19,7.81,6.35,5.03,4,2.98,2.16,1.5,0.99,0.62,0.35,0.18,0.07,0.02,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.06,0.08,0.14,0.21,0.28,0.34,0.39,0.43,0.44,0.44,0.44,0.44,0.439,0.438,0.44,0.436,0.435,0.434,0.432,0.431,0.43,0.428,0.427,0.425,0.423,0.422,0.42,0.419,0.417,0.415,0.414,0.412,0.411,0.409,0.408,0.407,0.406,0.404,0.403,0.403,0.402,0.4,0.401,0.4,0.4,0.4,0.59,0.64,0.69,0.73,0.76,0.79,0.807,0.82,0.828,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.819,0.79,0.75,0.7,0.65,0.6,0.56,0.53,0.507,0.5\r\r\nPARAM_EYE_R_OPEN=0.05,0.08,0.13,0.2,0.27,0.34,0.39,0.43,0.44,0.44,0.44,0.44,0.439,0.438,0.44,0.436,0.435,0.434,0.432,0.431,0.43,0.428,0.427,0.425,0.423,0.422,0.42,0.419,0.417,0.415,0.414,0.412,0.411,0.409,0.408,0.407,0.406,0.404,0.403,0.403,0.402,0.4,0.401,0.4,0.4,0.4,0.59,0.64,0.69,0.73,0.76,0.79,0.807,0.82,0.828,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.819,0.79,0.75,0.7,0.65,0.6,0.56,0.53,0.507,0.5\r\r\nPARAM_EYE_BALL_X=0,0.004,0.014,0.026,0.039,0.05,0.06,0.067,0.07,0.071,0.072,0.073,0.074,0.075,0.076,0.076,0.077,0.078,0.08,0.08,0.08,0.081,0.08,0.083,0.083,0.084,0.08,0.086,0.086,0.087,0.09,0.088,0.089,0.09,0.091,0.092,0.092,0.093,0.09,0.095,0.096,0.096,0.097,0.098,0.099,0.1,0.102,0.105,0.109,0.113,0.118,0.122,0.125,0.128,0.129,0.13,0.13,0.13,0.13,0.13,0.13,0.128,0.127,0.125,0.122,0.119,0.115,0.11,0.101,0.089,0.074,0.058,0.042,0.028,0.016,0.007,0.002,0\r\r\nPARAM_EYE_BALL_Y=-1,-0.97,-0.89,-0.79,-0.7,-0.61,-0.53,-0.48,-0.46,-0.457,-0.455,-0.452,-0.45,-0.448,-0.446,-0.444,-0.442,-0.44,-0.438,-0.437,-0.435,-0.434,-0.433,-0.431,-0.43,-0.429,-0.428,-0.427,-0.426,-0.425,-0.425,-0.424,-0.42,-0.423,-0.42,-0.422,-0.42,-0.42,-0.421,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.429,-0.45,-0.49,-0.53,-0.58,-0.62,-0.66,-0.7,-0.73,-0.75,-0.769,-0.785,-0.798,-0.808,-0.816,-0.821,-0.825,-0.828,-0.829,-0.83,-0.83,-0.83,-0.8,-0.73,-0.62,-0.49,-0.37,-0.25,-0.14,-0.07,-0.02,0\r\r\nPARAM_BROW_L_Y=-1,-0.99,-0.97,-0.94,-0.91,-0.88,-0.85,-0.83,-0.81,-0.794,-0.778,-0.763,-0.749,-0.735,-0.722,-0.709,-0.698,-0.686,-0.675,-0.665,-0.655,-0.646,-0.637,-0.629,-0.621,-0.613,-0.607,-0.6,-0.594,-0.589,-0.584,-0.579,-0.575,-0.571,-0.567,-0.564,-0.561,-0.559,-0.557,-0.555,-0.553,-0.552,-0.551,-0.55,-0.55,-0.55,-0.561,-0.59,-0.63,-0.68,-0.73,-0.78,-0.82,-0.85,-0.873,-0.88,-0.88,-0.88,-0.88,-0.88,-0.879,-0.876,-0.872,-0.867,-0.859,-0.849,-0.836,-0.82,-0.78,-0.69,-0.59,-0.46,-0.34,-0.23,-0.13,-0.06,-0.02,0\r\r\nPARAM_BROW_R_Y=-1,-0.988,-0.96,-0.93,-0.9,-0.87,-0.84,-0.819,-0.81,-0.806,-0.802,-0.799,-0.795,-0.792,-0.789,-0.786,-0.783,-0.78,-0.778,-0.775,-0.773,-0.771,-0.769,-0.767,-0.765,-0.764,-0.762,-0.761,-0.759,-0.758,-0.757,-0.756,-0.755,-0.754,-0.754,-0.753,-0.75,-0.752,-0.75,-0.751,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.759,-0.78,-0.81,-0.85,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EAR_DEFORM=0,0.02,0.07,0.13,0.19,0.24,0.29,0.32,0.33,0.33,0.33,0.328,0.327,0.325,0.323,0.32,0.318,0.315,0.311,0.308,0.304,0.299,0.295,0.29,0.285,0.28,0.274,0.269,0.263,0.257,0.251,0.244,0.238,0.231,0.225,0.218,0.211,0.204,0.197,0.19,0.183,0.176,0.169,0.161,0.154,0.147,0.14,0.133,0.126,0.119,0.112,0.105,0.099,0.092,0.086,0.079,0.073,0.067,0.061,0.056,0.05,0.045,0.04,0.035,0.031,0.026,0.022,0.019,0.015,0.012,0.01,0.007,0.005,0.003,0.002,0.001,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0.79,0.79,0.79,0.788,0.786,0.784,0.782,0.779,0.776,0.773,0.769,0.765,0.76,0.756,0.751,0.745,0.74,0.734,0.729,0.722,0.716,0.71,0.703,0.697,0.69,0.683,0.676,0.669,0.662,0.655,0.648,0.641,0.634,0.626,0.62,0.612,0.606,0.599,0.592,0.586,0.579,0.573,0.567,0.561,0.555,0.55,0.545,0.54,0.535,0.531,0.527,0.523,0.52,0.517,0.515,0.512,0.51,0.509,0.507,0.506,0.504,0.503,0.502,0.502,0.5,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.514,0.55,0.58,0.62,0.66,0.69,0.712,0.72,0.719,0.717,0.714,0.71,0.704,0.698,0.69,0.682,0.673,0.664,0.653,0.643,0.631,0.62,0.608,0.596,0.584,0.572,0.559,0.547,0.535,0.523,0.512,0.501,0.49,0.48,0.471,0.462,0.454,0.446,0.44,0.434,0.429,0.425,0.422,0.421,0.42,0.42,0.421,0.422,0.424,0.426,0.428,0.431,0.433,0.436,0.44,0.443,0.447,0.45,0.454,0.458,0.461,0.465,0.469,0.472,0.476,0.479,0.482,0.485,0.488,0.491,0.493,0.495,0.497,0.498,0.499,0.5,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.009,0.027,0.05,0.07,0.1,0.114,0.126,0.13,0.13,0.13,0.13,0.129,0.13,0.127,0.126,0.125,0.124,0.123,0.121,0.12,0.118,0.116,0.114,0.112,0.11,0.108,0.106,0.104,0.101,0.099,0.096,0.094,0.091,0.089,0.086,0.083,0.08,0.078,0.075,0.072,0.069,0.066,0.064,0.061,0.058,0.055,0.052,0.05,0.047,0.044,0.041,0.039,0.036,0.034,0.031,0.029,0.026,0.024,0.022,0.02,0.018,0.016,0.014,0.012,0.01,0.009,0.007,0.006,0.005,0.004,0.003,0.002,0,0.001,0,0,0\r\r\nPARAM_WING_DEFORM=0,0.016,0.05,0.09,0.14,0.18,0.21,0.23,0.24,0.24,0.24,0.239,0.238,0.236,0.235,0.233,0.231,0.229,0.226,0.224,0.221,0.218,0.214,0.211,0.207,0.203,0.2,0.195,0.191,0.187,0.182,0.178,0.173,0.168,0.163,0.158,0.154,0.148,0.143,0.138,0.133,0.128,0.123,0.117,0.112,0.107,0.102,0.097,0.092,0.086,0.082,0.077,0.072,0.067,0.062,0.058,0.053,0.049,0.045,0.04,0.037,0.033,0.029,0.026,0.022,0.019,0.016,0.014,0.011,0.009,0.007,0.005,0.004,0.002,0.001,0.001,0,0\r\r\nPARAM_RIBBON_DEFORM=0,0,0,0,0,0.014,0.05,0.1,0.14,0.18,0.19,0.11,-0.02,-0.11,-0.14,-0.08,0.03,0.1,0.12,0.09,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLUSH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.012,0.02,0.03,0.042,0.056,0.071,0.087,0.104,0.121,0.14,0.159,0.178,0.198,0.217,0.237,0.256,0.275,0.293,0.31,0.327,0.343,0.358,0.371,0.383,0.394,0.403,0.41,0.416,0.419,0.42,0.416,0.406,0.39,0.37,0.35,0.32,0.29,0.26,0.23,0.2,0.17,0.14,0.11,0.08,0.06,0.04,0.023,0.011,0.003,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Pio/textures.cache",
    "content": "[\"textures/animal-costume-racoon.png\",\"textures/animal-costume.png\",\"textures/bunny-girl-costume-red.png\",\"textures/bunny-girl-costume.png\",\"textures/cake-costume-choco.png\",\"textures/cake-costume-cream.png\",\"textures/default-costume.png\",\"textures/dress-costume-brown.png\",\"textures/dress-costume.png\",\"textures/elementary-school-costume-navy.png\",\"textures/elementary-school-costume.png\",\"textures/fall-dress-costume-beige.png\",\"textures/fall-dress-costume-brown.png\",\"textures/frill-bikini-costume-green.png\",\"textures/frill-bikini-costume-purple.png\",\"textures/frill-blouse-costume-green.png\",\"textures/frill-blouse-costume-red.png\",\"textures/furisode-costume.png\",\"textures/halloween-costume.png\",\"textures/hanbok-costume-pink.png\",\"textures/hanbok-costume-red.png\",\"textures/hanbok-costume-skyblue.png\",\"textures/hanbok-costume-yellow.png\",\"textures/hanbok-costume.png\",\"textures/healer-costume.png\",\"textures/kids-costume-navy.png\",\"textures/kids-costume.png\",\"textures/maid-costume-red.png\",\"textures/maid-costume.png\",\"textures/new2015-costume-pajamas.png\",\"textures/new2015-costume.png\",\"textures/night-witch-costume-black.png\",\"textures/night-witch-costume-gray.png\",\"textures/nightsky-costume.png\",\"textures/overalls-costume-white.png\",\"textures/overalls-costume.png\",\"textures/pajamas-costume-pink.png\",\"textures/pajamas-costume.png\",\"textures/party-dress-costume-brown.png\",\"textures/party-dress-costume-purple.png\",\"textures/qipao-costume-pink.png\",\"textures/qipao-costume-red.png\",\"textures/ribbon-dress-costume-red.png\",\"textures/ribbon-dress-costume-yellow.png\",\"textures/sailor-costume-black.png\",\"textures/sailor-costume.png\",\"textures/sakura-costume-navy.png\",\"textures/sakura-costume.png\",\"textures/santa-costume-green.png\",\"textures/santa-costume.png\",\"textures/sarori-costume.png\",\"textures/school-2017-costume-gray.png\",\"textures/school-2017-costume-yellow.png\",\"textures/school-costume-red.png\",\"textures/school-costume.png\",\"textures/sfc-uniform-costume-red.png\",\"textures/sfc-uniform-costume-yellow.png\",\"textures/shaman-costume-black.png\",\"textures/shaman-costume-blue.png\",\"textures/sinsiroad-shop-costume-junior.png\",\"textures/sinsiroad-shop-costume-senior.png\",\"textures/sorceress-costume.png\",\"textures/sporty-hood-costume-black.png\",\"textures/sporty-hood-costume-blue.png\",\"textures/star-witch-costume-brown.png\",\"textures/star-witch-costume.png\",\"textures/succubus-costume-black.png\",\"textures/succubus-costume-red.png\",\"textures/sukumizu-costume-white.png\",\"textures/sukumizu-costume.png\",\"textures/summer-dress-costume-blue.png\",\"textures/summer-dress-costume-white.png\",\"textures/swimsuit-2017-costume-navy.png\",\"textures/swimsuit-2017-costume-red.png\",\"textures/tirami1-costume.png\",\"textures/turtleneck-costume-red.png\",\"textures/turtleneck-costume.png\",\"textures/valentine-costume-brown.png\",\"textures/valentine-costume-pink.png\",\"textures/winter-coat-2017-costume-brown.png\",\"textures/winter-coat-2017-costume-white.png\",\"textures/winter-coat-costume-pink.png\",\"textures/winter-coat-costume-white.png\",\"textures/winter-costume-white.png\",\"textures/winter-costume.png\",\"textures/witch-costume-white.png\",\"textures/witch-costume.png\"]"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/index.json",
    "content": "{\n    \"version\":\"1.0.0\",\n    \"model\":\"model.moc\",\n    \"textures\":[\n        \"textures/default-costume.png\"\n    ],\n    \"layout\":{\n        \"center_x\":0.0,\n        \"center_y\":-0.05,\n        \"width\":2.0\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"motions\":{\n        \"idle\":[\n            {\"file\":\"motions/Breath1.mtn\"},\n            {\"file\":\"motions/Breath2.mtn\"},\n            {\"file\":\"motions/Breath3.mtn\"},\n            {\"file\":\"motions/Breath5.mtn\"},\n            {\"file\":\"motions/Breath7.mtn\"},\n            {\"file\":\"motions/Breath8.mtn\"},\n            {\"file\":\"motions/Breath9.mtn\"}\n        ],\n        \"sleepy\":[\n\t\t\t{\"file\":\"motions/Sleeping.mtn\"}\n\t\t],\n\t\t\"flick_head\":[\n\t\t\t{\"file\":\"motions/Touch Dere1.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere2.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere4.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere5.mtn\"},\n\t\t\t{\"file\":\"motions/Touch Dere6.mtn\"}\n\t\t],\n\t\t\"tap_body\":[\n\t\t\t{\"file\":\"motions/Sukebei1.mtn\"},\n\t\t\t{\"file\":\"motions/Sukebei2.mtn\"},\n\t\t\t{\"file\":\"motions/Sukebei3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch1.mtn\"},\n\t\t\t{\"file\":\"motions/Touch2.mtn\"},\n\t\t\t{\"file\":\"motions/Touch3.mtn\"},\n\t\t\t{\"file\":\"motions/Touch4.mtn\"},\n\t\t\t{\"file\":\"motions/Touch5.mtn\"},\n\t\t\t{\"file\":\"motions/Touch6.mtn\"}\n\t\t]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath Dere1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.52,9.23,7.36,5.14,2.86,0.64,-1.23,-2.52,-3,-2.94,-2.78,-2.54,-2.24,-1.9,-1.54,-1.19,-0.87,-0.58,-0.34,-0.15,-0.04,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.02,0.09,0.21,0.4,0.66,0.99,1.39,1.86,2.39,3,3.77,4.55,5.31,6.03,6.66,7.21,7.63,7.9,8,7.84,7.41,6.77,5.96,5.07,4.12,3.18,2.31,1.54,0.89,0.41,0.1,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.14,7.83,4.5,0.54,-3.54,-7.5,-10.83,-13.14,-14,-13.72,-12.97,-11.84,-10.43,-8.87,-7.21,-5.57,-4.05,-2.7,-1.57,-0.71,-0.18,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.48,0.37,0.27,0.2,0.17,0.17,0.17,0.17,0.172,0.176,0.182,0.19,0.22,0.28,0.34,0.4,0.46,0.51,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.89,0.83,0.75,0.66,0.6,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.59,0.64,0.7,0.77,0.83,0.88,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.76,2.11,1.18,0.07,-1.07,-2.18,-3.11,-3.76,-4,-3.88,-3.56,-3.08,-2.47,-1.8,-1.09,-0.39,0.26,0.84,1.33,1.69,1.92,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.01,-0.03,-0.07,-0.11,-0.16,-0.2,-0.23,-0.26,-0.274,-0.28,-0.262,-0.21,-0.14,-0.06,0.02,0.1,0.17,0.22,0.24,0.233,0.216,0.19,0.16,0.12,0.08,0.04,0.01,-0.03,-0.05,-0.073,-0.086,-0.09,-0.084,-0.071,-0.055,-0.039,-0.024,-0.011,-0.003,0\r\r\nPARAM_BREATH=0.5,0.46,0.41,0.35,0.32,0.3,0.34,0.43,0.53,0.65,0.75,0.83,0.89,0.91,0.905,0.891,0.87,0.84,0.81,0.77,0.73,0.69,0.65,0.6,0.56,0.52,0.48,0.45,0.42,0.4,0.384,0.374,0.37,0.379,0.397,0.42,0.44,0.47,0.484,0.496,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0,0,0,0,0,0,0.03,0.11,0.21,0.3,0.38,0.41,0.37,0.26,0.12,-0.05,-0.22,-0.39,-0.56,-0.69,-0.8,-0.87,-0.9,-0.81,-0.58,-0.27,0.04,0.27,0.36,0.33,0.24,0.13,0.02,-0.07,-0.1,-0.082,-0.05,-0.03,-0.008,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.14,-0.18,-0.21,-0.25,-0.29,-0.32,-0.35,-0.37,-0.386,-0.396,-0.4,-0.37,-0.28,-0.15,0.01,0.16,0.32,0.45,0.54,0.57,0.52,0.4,0.26,0.12,-0.02,-0.13,-0.2,-0.23,-0.213,-0.17,-0.12,-0.07,-0.03,-0.01,0\r\r\nPARAM_HAIR_SIDE_L=0,0.003,0.013,0.028,0.047,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.234,0.249,0.26,0.268,0.27,0.23,0.14,0,-0.16,-0.33,-0.49,-0.63,-0.72,-0.76,-0.69,-0.53,-0.33,-0.13,0.06,0.21,0.31,0.35,0.32,0.26,0.19,0.11,0.05,0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,-0.018,-0.06,-0.13,-0.21,-0.29,-0.37,-0.43,-0.48,-0.51,-0.52,-0.48,-0.38,-0.25,-0.09,0.07,0.23,0.38,0.51,0.61,0.68,0.7,0.66,0.55,0.39,0.2,0,-0.19,-0.35,-0.46,-0.5,-0.483,-0.44,-0.37,-0.3,-0.22,-0.15,-0.09,-0.04,-0.01,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath Dere2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.35,1.29,2.74,4.53,6.6,8.86,11.27,13.67,16.13,18.44,20.64,22.67,24.45,25.92,27.04,27.75,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27.65,26.71,25.26,23.47,21.4,19.14,16.73,14.33,11.87,9.56,7.36,5.33,3.55,2.08,0.96,0.25,0\r\r\nPARAM_ANGLE_Y=0,-0.18,-0.65,-1.37,-2.26,-3.3,-4.43,-5.63,-6.84,-8.06,-9.22,-10.32,-11.33,-12.23,-12.96,-13.52,-13.87,-14,-13.995,-13.982,-13.96,-13.93,-13.89,-13.83,-13.77,-13.7,-13.62,-13.53,-13.42,-13.31,-13.19,-13.05,-12.91,-12.75,-12.58,-12.4,-12.2,-12,-11.78,-11.55,-11.31,-11.05,-10.79,-10.5,-10.21,-9.9,-9.57,-9.24,-8.89,-8.52,-8.14,-7.74,-7.33,-6.9,-6.45,-6,-5.45,-4.92,-4.39,-3.88,-3.38,-2.91,-2.45,-2.04,-1.64,-1.28,-0.97,-0.68,-0.45,-0.26,-0.12,-0.03,0\r\r\nPARAM_ANGLE_Z=0,0.09,0.32,0.68,1.13,1.65,2.21,2.82,3.42,4.03,4.61,5.16,5.67,6.11,6.48,6.76,6.94,7,6.97,6.89,6.77,6.59,6.38,6.13,5.85,5.53,5.18,4.82,4.43,4.01,3.59,3.15,2.69,2.23,1.76,1.3,0.82,0.35,-0.11,-0.57,-1.01,-1.45,-1.87,-2.28,-2.66,-3.03,-3.38,-3.69,-3.98,-4.24,-4.46,-4.65,-4.8,-4.91,-4.98,-5,-4.94,-4.77,-4.51,-4.19,-3.82,-3.42,-2.99,-2.56,-2.12,-1.71,-1.31,-0.95,-0.63,-0.37,-0.17,-0.04,0\r\r\nPARAM_EMOTION=0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.4,0.24,0.13,0.09,0.17,0.33,0.41,0.33,0.21,0.12,0.09,0.2,0.39,0.5,0.502,0.504,0.505,0.507,0.508,0.509,0.511,0.512,0.513,0.514,0.515,0.516,0.516,0.517,0.52,0.518,0.52,0.52,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.518,0.517,0.515,0.514,0.512,0.51,0.508,0.507,0.505,0.504,0.503,0.501,0.501,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.4,0.24,0.13,0.09,0.17,0.33,0.41,0.33,0.21,0.12,0.09,0.2,0.39,0.5,0.502,0.504,0.505,0.507,0.508,0.509,0.511,0.512,0.513,0.514,0.515,0.516,0.516,0.517,0.52,0.518,0.52,0.52,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.518,0.517,0.515,0.514,0.512,0.51,0.508,0.507,0.505,0.504,0.503,0.501,0.501,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0,0.004,0.016,0.033,0.06,0.08,0.11,0.14,0.17,0.2,0.22,0.25,0.28,0.3,0.315,0.328,0.337,0.34,0.332,0.31,0.28,0.24,0.19,0.15,0.1,0.06,0.02,-0.02,-0.05,-0.08,-0.094,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.099,-0.095,-0.09,-0.084,-0.076,-0.068,-0.06,-0.051,-0.042,-0.034,-0.026,-0.019,-0.013,-0.007,-0.003,-0.001,0\r\r\nPARAM_EYE_BALL_Y=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.13,-0.17,-0.21,-0.24,-0.28,-0.31,-0.34,-0.37,-0.39,-0.406,-0.416,-0.42,-0.414,-0.397,-0.37,-0.34,-0.31,-0.27,-0.24,-0.2,-0.17,-0.14,-0.12,-0.097,-0.084,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.079,-0.076,-0.072,-0.067,-0.061,-0.055,-0.048,-0.041,-0.034,-0.027,-0.021,-0.015,-0.01,-0.006,-0.003,-0.001,0\r\r\nPARAM_BROW_L_Y=0,0,-0.001,-0.003,-0.005,-0.007,-0.01,-0.014,-0.018,-0.022,-0.027,-0.032,-0.038,-0.044,-0.05,-0.056,-0.063,-0.07,-0.077,-0.085,-0.093,-0.1,-0.108,-0.116,-0.124,-0.133,-0.141,-0.149,-0.157,-0.165,-0.174,-0.182,-0.19,-0.197,-0.205,-0.213,-0.22,-0.227,-0.234,-0.241,-0.247,-0.254,-0.259,-0.265,-0.27,-0.275,-0.28,-0.284,-0.287,-0.291,-0.293,-0.296,-0.298,-0.299,-0.3,-0.3,-0.296,-0.286,-0.271,-0.251,-0.23,-0.21,-0.18,-0.15,-0.13,-0.1,-0.08,-0.06,-0.038,-0.022,-0.01,-0.003,0\r\r\nPARAM_BROW_R_Y=0,0,-0.001,-0.003,-0.005,-0.008,-0.012,-0.016,-0.02,-0.025,-0.031,-0.037,-0.043,-0.05,-0.057,-0.064,-0.072,-0.08,-0.088,-0.096,-0.105,-0.114,-0.123,-0.132,-0.141,-0.15,-0.16,-0.169,-0.178,-0.187,-0.197,-0.206,-0.215,-0.224,-0.232,-0.241,-0.249,-0.257,-0.265,-0.273,-0.28,-0.287,-0.294,-0.3,-0.306,-0.312,-0.317,-0.322,-0.326,-0.329,-0.333,-0.335,-0.337,-0.339,-0.34,-0.34,-0.336,-0.324,-0.307,-0.28,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.06,-0.04,-0.025,-0.012,-0.003,0\r\r\nPARAM_BROW_L_ANGLE=0,0.001,0.004,0.009,0.016,0.024,0.034,0.046,0.059,0.074,0.09,0.107,0.126,0.146,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.39,0.41,0.44,0.47,0.5,0.52,0.55,0.58,0.61,0.63,0.66,0.68,0.71,0.73,0.76,0.78,0.8,0.82,0.85,0.865,0.883,0.901,0.917,0.932,0.946,0.958,0.969,0.978,0.986,0.992,0.996,0.999,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0\r\r\nPARAM_BROW_R_ANGLE=0,0.001,0.004,0.009,0.016,0.024,0.034,0.046,0.059,0.074,0.09,0.107,0.126,0.146,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.39,0.41,0.44,0.47,0.5,0.52,0.55,0.58,0.61,0.63,0.66,0.68,0.71,0.73,0.76,0.78,0.8,0.82,0.85,0.865,0.883,0.901,0.917,0.932,0.946,0.958,0.969,0.978,0.986,0.992,0.996,0.999,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0\r\r\nPARAM_EAR_DEFORM=0,-0.007,-0.026,-0.05,-0.09,-0.13,-0.18,-0.23,-0.27,-0.32,-0.37,-0.41,-0.45,-0.49,-0.52,-0.54,-0.555,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.553,-0.534,-0.51,-0.47,-0.43,-0.38,-0.33,-0.29,-0.24,-0.19,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_MOUTH_OPEN_Y=0.5,0.505,0.518,0.54,0.56,0.59,0.63,0.66,0.7,0.73,0.76,0.79,0.82,0.85,0.87,0.886,0.896,0.9,0.895,0.881,0.86,0.84,0.81,0.78,0.75,0.72,0.69,0.67,0.649,0.634,0.624,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.618,0.614,0.608,0.601,0.592,0.582,0.572,0.561,0.551,0.541,0.532,0.523,0.515,0.509,0.504,0.501,0.5\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.84,-0.76,-0.68,-0.6,-0.51,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BREATH=0.5,0.505,0.517,0.535,0.56,0.58,0.61,0.64,0.68,0.71,0.74,0.77,0.79,0.81,0.833,0.848,0.857,0.86,0.859,0.855,0.849,0.842,0.832,0.821,0.808,0.794,0.778,0.762,0.744,0.725,0.706,0.687,0.666,0.65,0.62,0.6,0.58,0.56,0.54,0.52,0.499,0.48,0.461,0.443,0.425,0.409,0.393,0.379,0.366,0.354,0.344,0.336,0.329,0.324,0.321,0.32,0.322,0.328,0.338,0.349,0.362,0.377,0.392,0.408,0.424,0.439,0.453,0.466,0.477,0.487,0.494,0.498,0.5\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nPARAM_RIBBON_DEFORM=0\r\r\nPARAM_BLUSH=0,0.006,0.023,0.05,0.08,0.13,0.17,0.22,0.28,0.34,0.39,0.45,0.5,0.54,0.59,0.62,0.65,0.664,0.67,0.67,0.67,0.67,0.669,0.668,0.666,0.665,0.663,0.661,0.659,0.656,0.653,0.65,0.646,0.642,0.637,0.632,0.627,0.621,0.614,0.607,0.6,0.592,0.583,0.574,0.565,0.555,0.544,0.533,0.521,0.508,0.495,0.481,0.467,0.452,0.436,0.42,0.4,0.37,0.34,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.06,0.04,0.024,0.011,0.003,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_RIBBON=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r\r\nVISIBLE:PARTS_01_HAT=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath Dere3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.007,0.03,0.06,0.11,0.17,0.24,0.32,0.42,0.52,0.63,0.75,0.87,1.01,1.15,1.29,1.44,1.59,1.75,1.91,2.07,2.23,2.4,2.56,2.72,2.89,3.05,3.21,3.36,3.51,3.66,3.8,3.94,4.07,4.2,4.32,4.43,4.53,4.62,4.71,4.78,4.85,4.9,4.94,4.97,4.993,5,4.94,4.76,4.48,4.13,3.72,3.27,2.8,2.32,1.86,1.42,1.02,0.67,0.39,0.18,0.04,0\r\r\nPARAM_ANGLE_Y=0,-0.015,-0.06,-0.13,-0.22,-0.34,-0.49,-0.65,-0.84,-1.04,-1.26,-1.5,-1.75,-2.02,-2.29,-2.58,-2.88,-3.18,-3.5,-3.82,-4.14,-4.47,-4.79,-5.12,-5.45,-5.77,-6.1,-6.41,-6.73,-7.03,-7.32,-7.6,-7.88,-8.15,-8.4,-8.63,-8.85,-9.06,-9.24,-9.42,-9.56,-9.69,-9.8,-9.89,-9.95,-9.99,-10,-9.87,-9.52,-8.97,-8.26,-7.44,-6.53,-5.6,-4.65,-3.72,-2.84,-2.05,-1.35,-0.78,-0.36,-0.09,0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.28,-0.59,-0.97,-1.41,-1.9,-2.41,-2.93,-3.46,-3.95,-4.42,-4.86,-5.24,-5.55,-5.79,-5.95,-6,-5.84,-5.38,-4.66,-3.72,-2.61,-1.34,0.04,1.5,3,4.5,5.96,7.34,8.61,9.72,10.66,11.38,11.84,12,11.95,11.81,11.59,11.29,10.91,10.49,10,9.46,8.89,8.29,7.65,7,6.33,5.67,5,4.35,3.71,3.11,2.54,2,1.51,1.09,0.71,0.41,0.19,0.05,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.58,0.64,0.72,0.8,0.87,0.91,0.92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.58,0.64,0.72,0.8,0.87,0.91,0.92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-0.999,-0.994,-0.986,-0.976,-0.962,-0.947,-0.93,0.83,0.81,0.75,0.68,0.58,0.48,0.38,0.3,0.24,0.21,0.2,0.19,0.182,0.173,0.166,0.159,0.152,0.146,0.141,0.136,0.131,0.127,0.123,0.12,0.117,0.114,0.112,0.109,0.108,0.106,0.105,0.103,0.102,0.102,0.101,0.1,0.1,0.1,0.1,0.23,0.44,0.63,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-0.999,-0.996,-0.99,-0.983,-0.973,-0.962,-0.95,0.82,0.8,0.75,0.67,0.57,0.48,0.38,0.3,0.24,0.21,0.2,0.19,0.182,0.173,0.166,0.159,0.152,0.147,0.141,0.136,0.131,0.127,0.123,0.12,0.117,0.114,0.112,0.109,0.108,0.106,0.105,0.103,0.102,0.102,0.101,0.1,0.1,0.1,0.1,0.23,0.45,0.65,0.79,0.85,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.002,-0.003,-0.005,-0.007,-0.009,-0.011,-0.013,-0.015,-0.018,-0.02,-0.022,-0.024,-0.026,-0.028,-0.03,-0.032,-0.034,-0.035,-0.037,-0.038,-0.039,-0.04,-0.042,-0.043,-0.043,-0.044,-0.045,-0.05,-0.046,-0.05,-0.047,-0.05,-0.048,-0.05,-0.05,-0.049,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.049,-0.048,-0.045,-0.041,-0.037,-0.033,-0.028,-0.023,-0.019,-0.014,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.004,0.013,0.028,0.047,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.23,0.253,0.268,0.28,0.287,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.289,0.29,0.29,0.287,0.287,0.286,0.285,0.284,0.283,0.281,0.28,0.278,0.276,0.274,0.272,0.269,0.267,0.264,0.261,0.257,0.254,0.25,0.243,0.231,0.216,0.197,0.18,0.15,0.13,0.11,0.09,0.07,0.047,0.031,0.018,0.008,0.002,0\r\r\nPARAM_BROW_L_Y=0,-0.018,-0.06,-0.11,-0.16,-0.21,-0.23,-0.24,-0.238,-0.231,-0.222,-0.212,-0.201,-0.191,-0.182,-0.176,-0.171,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.162,-0.152,-0.14,-0.126,-0.111,-0.095,-0.079,-0.063,-0.048,-0.035,-0.023,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_R_Y=0,-0.018,-0.06,-0.11,-0.16,-0.21,-0.23,-0.24,-0.238,-0.231,-0.222,-0.212,-0.201,-0.191,-0.182,-0.176,-0.171,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.162,-0.152,-0.14,-0.126,-0.111,-0.095,-0.079,-0.063,-0.048,-0.035,-0.023,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_ANGLE=0.2,0.202,0.207,0.218,0.232,0.251,0.27,0.3,0.34,0.37,0.41,0.43,0.46,0.477,0.492,0.502,0.508,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.506,0.495,0.478,0.46,0.43,0.4,0.37,0.34,0.32,0.29,0.26,0.24,0.224,0.211,0.203,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.904,0.87,0.82,0.76,0.73,0.71,0.726,0.77,0.81,0.86,0.9,0.92,0.93,0.9,0.85,0.8,0.76,0.75,0.763,0.79,0.84,0.88,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.003,0.012,0.027,0.047,0.07,0.1,0.13,0.16,0.2,0.24,0.28,0.32,0.36,0.4,0.44,0.48,0.52,0.56,0.6,0.63,0.67,0.7,0.73,0.75,0.77,0.787,0.8,0.807,0.81,0.808,0.801,0.791,0.777,0.76,0.74,0.72,0.69,0.66,0.63,0.6,0.57,0.53,0.5,0.46,0.42,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.07,0.05,0.033,0.019,0.009,0.002,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.003,-0.011,-0.023,-0.04,-0.06,-0.08,-0.11,-0.14,-0.18,-0.21,-0.25,-0.29,-0.33,-0.37,-0.41,-0.45,-0.49,-0.54,-0.58,-0.62,-0.66,-0.7,-0.74,-0.78,-0.81,-0.84,-0.87,-0.9,-0.93,-0.95,-0.966,-0.98,-0.991,-0.998,-1,-0.996,-0.984,-0.966,-0.94,-0.91,-0.87,-0.83,-0.79,-0.74,-0.69,-0.64,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,0,0.002,0.003,0.006,0.009,0.013,0.017,0.021,0.026,0.032,0.037,0.043,0.049,0.055,0.061,0.068,0.074,0.081,0.087,0.093,0.099,0.105,0.111,0.116,0.122,0.126,0.131,0.135,0.139,0.142,0.145,0.147,0.149,0.15,0.15,0.149,0.148,0.145,0.141,0.136,0.131,0.125,0.118,0.111,0.104,0.096,0.087,0.079,0.071,0.063,0.054,0.046,0.039,0.032,0.025,0.019,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_BREATH=0.5,0.506,0.521,0.54,0.57,0.61,0.64,0.68,0.72,0.76,0.8,0.83,0.86,0.89,0.92,0.935,0.946,0.95,0.944,0.927,0.9,0.87,0.83,0.79,0.74,0.69,0.64,0.59,0.54,0.49,0.45,0.41,0.37,0.33,0.31,0.287,0.275,0.27,0.271,0.274,0.28,0.287,0.296,0.306,0.317,0.329,0.342,0.356,0.369,0.383,0.397,0.411,0.424,0.437,0.449,0.46,0.47,0.478,0.486,0.492,0.496,0.499,0.5\r\r\nPARAM_BOING=0,0.002,0.006,0.014,0.023,0.033,0.044,0.056,0.068,0.081,0.092,0.103,0.113,0.122,0.13,0.135,0.139,0.14,0.137,0.128,0.115,0.098,0.079,0.06,0.04,0.01,-0.01,-0.03,-0.052,-0.07,-0.087,-0.101,-0.111,-0.118,-0.12,-0.12,-0.118,-0.116,-0.113,-0.109,-0.105,-0.1,-0.095,-0.089,-0.083,-0.077,-0.07,-0.064,-0.058,-0.051,-0.045,-0.039,-0.033,-0.027,-0.022,-0.017,-0.013,-0.009,-0.006,-0.003,-0.002,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0,-0.002,-0.007,-0.015,-0.024,-0.035,-0.047,-0.06,-0.073,-0.086,-0.099,-0.111,-0.121,-0.131,-0.139,-0.145,-0.149,-0.15,-0.144,-0.129,-0.11,-0.08,-0.04,-0.01,0.03,0.07,0.11,0.15,0.18,0.21,0.24,0.27,0.285,0.296,0.3,0.299,0.295,0.29,0.282,0.273,0.262,0.25,0.237,0.223,0.208,0.192,0.176,0.16,0.144,0.128,0.112,0.097,0.082,0.068,0.055,0.043,0.032,0.023,0.015,0.009,0.004,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.001,0.005,0.011,0.018,0.026,0.035,0.044,0.054,0.063,0.072,0.081,0.089,0.096,0.102,0.106,0.109,0.11,0.1,0.07,0.03,-0.01,-0.07,-0.13,-0.2,-0.27,-0.33,-0.4,-0.46,-0.51,-0.56,-0.6,-0.63,-0.653,-0.66,-0.657,-0.65,-0.637,-0.621,-0.601,-0.58,-0.55,-0.52,-0.49,-0.46,-0.42,-0.39,-0.35,-0.32,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.07,-0.05,-0.033,-0.019,-0.009,-0.002,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.002,0.008,0.018,0.03,0.046,0.064,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.3,0.33,0.35,0.38,0.4,0.42,0.45,0.464,0.48,0.492,0.502,0.508,0.51,0.506,0.494,0.476,0.45,0.42,0.39,0.35,0.3,0.26,0.21,0.16,0.11,0.06,0.01,-0.04,-0.08,-0.13,-0.16,-0.2,-0.23,-0.26,-0.274,-0.286,-0.29,-0.281,-0.26,-0.23,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.002,0.008,0.017,0.03,0.045,0.062,0.082,0.1,0.13,0.15,0.17,0.2,0.22,0.24,0.27,0.29,0.311,0.33,0.347,0.363,0.376,0.386,0.394,0.398,0.4,0.399,0.396,0.392,0.386,0.379,0.37,0.361,0.35,0.338,0.325,0.311,0.297,0.282,0.267,0.251,0.235,0.218,0.202,0.186,0.17,0.154,0.138,0.123,0.108,0.094,0.08,0.068,0.056,0.045,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.5,0.502,0.505,0.509,0.513,0.519,0.525,0.533,0.541,0.549,0.559,0.568,0.579,0.59,0.601,0.613,0.625,0.637,0.65,0.663,0.676,0.688,0.702,0.714,0.727,0.74,0.753,0.765,0.777,0.789,0.8,0.811,0.822,0.831,0.841,0.849,0.857,0.865,0.871,0.877,0.881,0.885,0.888,0.889,0.89,0.889,0.887,0.884,0.88,0.875,0.869,0.862,0.854,0.845,0.836,0.826,0.815,0.804,0.792,0.78,0.768,0.756,0.743,0.73,0.716,0.703,0.69,0.677,0.664,0.651,0.638,0.626,0.613,0.601,0.59,0.579,0.569,0.559,0.549,0.541,0.533,0.525,0.519,0.513,0.509,0.505,0.502,0.501,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_ANGLE_Z=0,0.021,0.08,0.17,0.3,0.45,0.62,0.82,1.03,1.25,1.49,1.73,1.97,2.21,2.45,2.68,2.9,3.11,3.3,3.47,3.63,3.76,3.86,3.94,3.98,4,3.983,3.93,3.85,3.74,3.59,3.43,3.23,3.02,2.78,2.53,2.25,1.97,1.66,1.35,1.03,0.7,0.36,0.02,-0.33,-0.67,-1.02,-1.36,-1.7,-2.03,-2.35,-2.66,-2.97,-3.25,-3.53,-3.78,-4.02,-4.23,-4.43,-4.59,-4.74,-4.85,-4.93,-4.98,-5,-4.97,-4.9,-4.79,-4.63,-4.44,-4.22,-3.98,-3.71,-3.43,-3.14,-2.84,-2.54,-2.24,-1.94,-1.65,-1.37,-1.12,-0.88,-0.66,-0.47,-0.31,-0.18,-0.08,-0.02,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.549,0.55,0.55,0.547,0.547,0.55,0.545,0.545,0.544,0.54,0.542,0.541,0.54,0.539,0.538,0.537,0.536,0.536,0.534,0.534,0.533,0.532,0.531,0.53,0.529,0.528,0.527,0.53,0.525,0.525,0.524,0.52,0.523,0.522,0.52,0.52,0.521,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.521,0.52,0.522,0.52,0.523,0.524,0.52,0.526,0.527,0.528,0.528,0.529,0.53,0.531,0.532,0.533,0.534,0.535,0.536,0.537,0.538,0.539,0.54,0.541,0.542,0.543,0.54,0.545,0.545,0.546,0.55,0.547,0.548,0.55,0.55,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.549,0.55,0.55,0.547,0.547,0.55,0.545,0.545,0.544,0.54,0.542,0.541,0.54,0.539,0.538,0.537,0.536,0.536,0.534,0.534,0.533,0.532,0.531,0.53,0.529,0.528,0.527,0.53,0.525,0.525,0.524,0.52,0.523,0.522,0.52,0.52,0.521,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.521,0.52,0.522,0.52,0.523,0.524,0.52,0.526,0.527,0.528,0.528,0.529,0.53,0.531,0.532,0.533,0.534,0.535,0.536,0.537,0.538,0.539,0.54,0.541,0.542,0.543,0.54,0.545,0.545,0.546,0.55,0.547,0.548,0.55,0.55,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.74,-0.86,-0.99,-1.11,-1.22,-1.34,-1.45,-1.55,-1.65,-1.74,-1.81,-1.88,-1.93,-1.97,-1.99,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.66,-1.56,-1.46,-1.35,-1.22,-1.1,-0.96,-0.82,-0.68,-0.53,-0.38,-0.23,-0.08,0.08,0.23,0.38,0.53,0.68,0.82,0.96,1.1,1.22,1.35,1.46,1.56,1.66,1.75,1.82,1.88,1.93,1.97,1.99,2,1.99,1.96,1.91,1.85,1.78,1.69,1.59,1.48,1.37,1.26,1.14,1.01,0.89,0.78,0.66,0.55,0.45,0.35,0.26,0.19,0.12,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.002,-0.007,-0.015,-0.025,-0.038,-0.053,-0.07,-0.088,-0.107,-0.127,-0.147,-0.17,-0.188,-0.21,-0.228,-0.247,-0.264,-0.28,-0.295,-0.308,-0.319,-0.328,-0.335,-0.339,-0.34,-0.339,-0.335,-0.329,-0.321,-0.312,-0.3,-0.286,-0.271,-0.255,-0.237,-0.218,-0.198,-0.18,-0.15,-0.13,-0.11,-0.09,-0.06,-0.04,-0.01,0.01,0.04,0.06,0.08,0.1,0.13,0.15,0.168,0.187,0.205,0.221,0.236,0.25,0.262,0.271,0.279,0.285,0.289,0.29,0.289,0.284,0.278,0.269,0.258,0.245,0.231,0.215,0.199,0.182,0.165,0.147,0.13,0.113,0.096,0.08,0.065,0.051,0.038,0.027,0.018,0.01,0.005,0.001,0\r\r\nPARAM_BREATH=0.5,0.5,0.5,0.502,0.504,0.506,0.508,0.51,0.513,0.517,0.52,0.524,0.528,0.532,0.537,0.542,0.546,0.551,0.556,0.562,0.567,0.572,0.577,0.583,0.588,0.593,0.598,0.604,0.609,0.614,0.618,0.623,0.628,0.632,0.636,0.64,0.643,0.647,0.65,0.652,0.654,0.656,0.658,0.659,0.66,0.66,0.66,0.659,0.658,0.656,0.654,0.651,0.648,0.645,0.642,0.638,0.634,0.629,0.625,0.62,0.615,0.61,0.605,0.6,0.594,0.589,0.583,0.578,0.573,0.567,0.562,0.557,0.552,0.546,0.542,0.537,0.532,0.528,0.524,0.52,0.517,0.513,0.51,0.508,0.506,0.504,0.502,0.501,0.5,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0,0.002,0.005,0.009,0.013,0.019,0.025,0.031,0.038,0.045,0.052,0.059,0.066,0.073,0.08,0.087,0.093,0.099,0.104,0.109,0.113,0.116,0.118,0.12,0.12,0.119,0.118,0.115,0.112,0.108,0.103,0.097,0.091,0.083,0.076,0.068,0.059,0.05,0.041,0.031,0.021,0.011,0.001,-0.01,-0.02,-0.031,-0.041,-0.051,-0.061,-0.071,-0.08,-0.089,-0.098,-0.106,-0.113,-0.121,-0.127,-0.133,-0.138,-0.142,-0.145,-0.148,-0.149,-0.15,-0.149,-0.147,-0.144,-0.139,-0.133,-0.127,-0.119,-0.111,-0.103,-0.094,-0.085,-0.076,-0.067,-0.058,-0.05,-0.041,-0.033,-0.026,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.008,0.018,0.031,0.047,0.065,0.09,0.11,0.13,0.16,0.18,0.21,0.23,0.26,0.28,0.3,0.33,0.346,0.365,0.381,0.394,0.405,0.413,0.418,0.42,0.418,0.414,0.406,0.396,0.383,0.368,0.35,0.331,0.31,0.29,0.26,0.23,0.21,0.18,0.15,0.12,0.09,0.06,0.03,-0.01,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.21,-0.24,-0.27,-0.29,-0.31,-0.33,-0.348,-0.363,-0.376,-0.386,-0.394,-0.398,-0.4,-0.398,-0.392,-0.383,-0.37,-0.355,-0.338,-0.318,-0.3,-0.27,-0.25,-0.23,-0.2,-0.18,-0.16,-0.13,-0.11,-0.089,-0.07,-0.053,-0.037,-0.024,-0.014,-0.006,-0.002,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.003,-0.01,-0.021,-0.036,-0.055,-0.08,-0.1,-0.13,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.33,-0.36,-0.38,-0.4,-0.43,-0.444,-0.46,-0.473,-0.482,-0.488,-0.49,-0.488,-0.484,-0.476,-0.466,-0.452,-0.437,-0.419,-0.4,-0.38,-0.35,-0.33,-0.3,-0.27,-0.25,-0.22,-0.19,-0.15,-0.12,-0.09,-0.06,-0.03,0,0.04,0.07,0.1,0.12,0.15,0.18,0.2,0.23,0.25,0.269,0.287,0.302,0.316,0.326,0.334,0.338,0.34,0.338,0.333,0.325,0.315,0.302,0.287,0.27,0.252,0.233,0.213,0.193,0.17,0.152,0.13,0.112,0.093,0.076,0.06,0.045,0.032,0.021,0.012,0.005,0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.06,-0.22,-0.48,-0.81,-1.22,-1.68,-2.18,-2.71,-3.27,-3.84,-4.43,-5.01,-5.57,-6.13,-6.65,-7.14,-7.58,-7.99,-8.33,-8.61,-8.82,-8.95,-9,-8.96,-8.84,-8.64,-8.38,-8.06,-7.67,-7.22,-6.74,-6.2,-5.61,-5.01,-4.35,-3.68,-2.99,-2.28,-1.56,-0.83,-0.09,0.65,1.37,2.09,2.79,3.48,4.14,4.78,5.39,5.96,6.49,6.99,7.43,7.83,8.17,8.46,8.7,8.86,8.96,9,8.96,8.86,8.7,8.48,8.22,7.91,7.56,7.19,6.79,6.37,5.93,5.48,5.02,4.56,4.1,3.64,3.2,2.76,2.35,1.95,1.59,1.25,0.94,0.67,0.44,0.25,0.11,0.03,0\r\r\nPARAM_ANGLE_Y=0,0.1,0.37,0.81,1.36,2.04,2.8,3.63,4.52,5.46,6.4,7.38,8.34,9.29,10.21,11.08,11.89,12.64,13.31,13.88,14.36,14.71,14.92,15,14.996,14.985,14.965,14.94,14.9,14.86,14.8,14.74,14.67,14.58,14.49,14.39,14.28,14.15,14.02,13.87,13.72,13.55,13.37,13.18,12.97,12.76,12.53,12.29,12.04,11.77,11.5,11.21,10.9,10.58,10.26,9.91,9.56,9.18,8.8,8.41,8,7.53,7.08,6.63,6.19,5.76,5.34,4.93,4.54,4.15,3.78,3.43,3.09,2.76,2.45,2.15,1.87,1.61,1.37,1.14,0.93,0.75,0.58,0.43,0.3,0.19,0.11,0.05,0.01,0\r\r\nPARAM_ANGLE_Z=0,0.002,0.01,0.022,0.038,0.06,0.08,0.11,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.47,0.53,0.59,0.65,0.71,0.78,0.85,0.91,0.98,1.06,1.13,1.2,1.28,1.35,1.43,1.5,1.57,1.65,1.72,1.8,1.87,1.94,2.02,2.09,2.15,2.22,2.29,2.35,2.41,2.47,2.53,2.59,2.64,2.69,2.73,2.78,2.82,2.85,2.89,2.92,2.94,2.96,2.978,2.99,2.998,3,2.988,2.95,2.9,2.83,2.74,2.64,2.52,2.4,2.26,2.12,1.98,1.83,1.67,1.52,1.37,1.21,1.07,0.92,0.78,0.65,0.53,0.42,0.31,0.22,0.15,0.08,0.04,0.01,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.55,0.55,0.554,0.55,0.55,0.55,0.55,0.55,0.555,0.56,0.56,0.56,0.56,0.556,0.56,0.56,0.56,0.557,0.56,0.56,0.56,0.56,0.558,0.56,0.56,0.56,0.559,0.56,0.56,0.56,0.65,0.81,0.92,0.95,0.84,0.66,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.55,0.55,0.554,0.55,0.55,0.55,0.55,0.55,0.555,0.56,0.56,0.56,0.56,0.556,0.56,0.56,0.56,0.557,0.56,0.56,0.56,0.56,0.558,0.56,0.56,0.56,0.559,0.56,0.56,0.56,0.65,0.81,0.92,0.95,0.84,0.66,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.003,-0.01,-0.023,-0.038,-0.057,-0.08,-0.1,-0.13,-0.15,-0.18,-0.21,-0.23,-0.26,-0.29,-0.31,-0.33,-0.35,-0.373,-0.389,-0.402,-0.412,-0.418,-0.42,-0.418,-0.412,-0.403,-0.39,-0.374,-0.355,-0.33,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.09,-0.06,-0.02,0.02,0.05,0.09,0.12,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.36,0.38,0.403,0.42,0.434,0.445,0.453,0.458,0.46,0.458,0.453,0.445,0.433,0.42,0.404,0.387,0.367,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.081,0.064,0.048,0.034,0.022,0.013,0.006,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.004,0.009,0.016,0.024,0.033,0.044,0.056,0.068,0.082,0.096,0.111,0.126,0.142,0.158,0.175,0.191,0.208,0.225,0.241,0.258,0.274,0.29,0.307,0.322,0.338,0.352,0.366,0.379,0.391,0.403,0.414,0.425,0.435,0.445,0.454,0.462,0.47,0.477,0.484,0.49,0.496,0.502,0.507,0.511,0.515,0.519,0.523,0.526,0.528,0.531,0.533,0.535,0.536,0.537,0.538,0.539,0.54,0.54,0.54,0.538,0.532,0.522,0.509,0.493,0.475,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.056,0.04,0.026,0.015,0.007,0.002,0\r\r\nPARAM_BROW_L_Y=0,0.002,0.006,0.013,0.023,0.034,0.047,0.061,0.075,0.091,0.107,0.123,0.139,0.155,0.17,0.185,0.198,0.211,0.222,0.231,0.239,0.245,0.249,0.25,0.25,0.25,0.249,0.247,0.246,0.244,0.242,0.24,0.237,0.235,0.231,0.228,0.225,0.221,0.217,0.213,0.209,0.204,0.2,0.195,0.19,0.185,0.18,0.175,0.17,0.164,0.159,0.153,0.148,0.142,0.136,0.131,0.125,0.119,0.114,0.108,0.102,0.097,0.091,0.086,0.08,0.075,0.07,0.065,0.06,0.055,0.05,0.046,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.015,0.013,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_BROW_R_Y=0,0.002,0.006,0.013,0.023,0.034,0.047,0.061,0.075,0.091,0.107,0.123,0.139,0.155,0.17,0.185,0.198,0.211,0.222,0.231,0.239,0.245,0.249,0.25,0.25,0.25,0.249,0.247,0.246,0.244,0.242,0.24,0.237,0.235,0.231,0.228,0.225,0.221,0.217,0.213,0.209,0.204,0.2,0.195,0.19,0.185,0.18,0.175,0.17,0.164,0.159,0.153,0.148,0.142,0.136,0.131,0.125,0.119,0.114,0.108,0.102,0.097,0.091,0.086,0.08,0.075,0.07,0.065,0.06,0.055,0.05,0.046,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.015,0.013,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.203,0.206,0.21,0.215,0.22,0.227,0.233,0.24,0.247,0.254,0.261,0.268,0.275,0.281,0.287,0.293,0.298,0.302,0.305,0.308,0.309,0.31,0.31,0.31,0.31,0.309,0.31,0.307,0.307,0.306,0.304,0.303,0.302,0.3,0.299,0.297,0.296,0.294,0.292,0.29,0.288,0.286,0.284,0.281,0.279,0.277,0.275,0.272,0.27,0.267,0.265,0.262,0.26,0.257,0.255,0.253,0.25,0.248,0.245,0.243,0.24,0.238,0.235,0.233,0.231,0.229,0.226,0.224,0.222,0.22,0.218,0.216,0.214,0.213,0.211,0.21,0.208,0.207,0.206,0.204,0.203,0.203,0.202,0.2,0.201,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0.001,0,0.002,0.003,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.008,0.01,0.01,0.01,0.01,0.007,0.01,0.01,0.01,0.01,0.006,0.01,0.01,0.01,0.01,0.005,0,0,0,0.004,0,0,0,0,0.003,0,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.9,0.898,0.896,0.894,0.891,0.887,0.882,0.876,0.87,0.84,0.79,0.71,0.63,0.54,0.46,0.4,0.34,0.31,0.3,0.3,0.3,0.3,0.3,0.301,0.3,0.302,0.3,0.304,0.305,0.306,0.307,0.308,0.309,0.311,0.312,0.314,0.316,0.317,0.319,0.321,0.323,0.326,0.328,0.33,0.333,0.336,0.339,0.341,0.344,0.347,0.351,0.354,0.357,0.361,0.365,0.368,0.372,0.376,0.38,0.52,0.76,0.89,0.891,0.89,0.893,0.894,0.894,0.895,0.9,0.896,0.9,0.897,0.9,0.898,0.9,0.9,0.899,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.002,-0.008,-0.017,-0.029,-0.043,-0.06,-0.077,-0.096,-0.116,-0.137,-0.16,-0.18,-0.198,-0.218,-0.236,-0.254,-0.27,-0.284,-0.296,-0.306,-0.314,-0.318,-0.32,-0.319,-0.315,-0.31,-0.302,-0.292,-0.281,-0.268,-0.253,-0.237,-0.22,-0.202,-0.183,-0.163,-0.143,-0.12,-0.1,-0.08,-0.06,-0.04,-0.01,0.007,0.03,0.047,0.067,0.086,0.104,0.12,0.136,0.151,0.164,0.175,0.186,0.194,0.201,0.206,0.209,0.21,0.209,0.207,0.203,0.198,0.192,0.185,0.176,0.168,0.158,0.149,0.138,0.128,0.117,0.106,0.096,0.085,0.075,0.064,0.055,0.046,0.037,0.029,0.022,0.016,0.01,0.006,0.003,0.001,0\r\r\nPARAM_BREATH=0.5,0.502,0.507,0.515,0.524,0.537,0.55,0.565,0.581,0.598,0.615,0.633,0.65,0.667,0.684,0.699,0.714,0.728,0.74,0.75,0.758,0.765,0.769,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.769,0.77,0.768,0.77,0.766,0.766,0.765,0.764,0.763,0.761,0.76,0.758,0.757,0.755,0.753,0.751,0.749,0.746,0.743,0.741,0.738,0.735,0.731,0.728,0.724,0.72,0.715,0.709,0.702,0.694,0.686,0.677,0.668,0.658,0.648,0.638,0.627,0.617,0.606,0.596,0.586,0.576,0.566,0.557,0.548,0.54,0.532,0.525,0.519,0.514,0.509,0.505,0.502,0.501,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0,0.002,0.004,0.007,0.011,0.016,0.02,0.026,0.031,0.037,0.043,0.049,0.055,0.061,0.067,0.073,0.078,0.082,0.087,0.091,0.094,0.096,0.098,0.1,0.1,0.082,0.05,0.03,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.001,-0.005,-0.011,-0.019,-0.029,-0.039,-0.051,-0.063,-0.076,-0.09,-0.103,-0.117,-0.13,-0.143,-0.155,-0.166,-0.177,-0.186,-0.194,-0.201,-0.206,-0.209,-0.21,-0.21,-0.21,-0.209,-0.208,-0.207,-0.205,-0.203,-0.202,-0.199,-0.197,-0.194,-0.192,-0.189,-0.186,-0.182,-0.179,-0.175,-0.172,-0.168,-0.164,-0.16,-0.156,-0.151,-0.147,-0.142,-0.138,-0.133,-0.129,-0.124,-0.119,-0.115,-0.11,-0.105,-0.1,-0.095,-0.091,-0.086,-0.081,-0.077,-0.072,-0.068,-0.063,-0.059,-0.054,-0.05,-0.046,-0.042,-0.038,-0.035,-0.031,-0.028,-0.024,-0.021,-0.018,-0.016,-0.013,-0.011,-0.008,-0.007,-0.005,-0.003,-0.002,-0.001,-0.001,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.001,-0.004,-0.01,-0.016,-0.024,-0.034,-0.044,-0.054,-0.065,-0.077,-0.089,-0.1,-0.111,-0.123,-0.133,-0.143,-0.152,-0.16,-0.167,-0.172,-0.176,-0.179,-0.18,-0.18,-0.18,-0.179,-0.18,-0.177,-0.176,-0.174,-0.173,-0.171,-0.169,-0.167,-0.164,-0.162,-0.159,-0.156,-0.153,-0.15,-0.147,-0.144,-0.14,-0.137,-0.133,-0.13,-0.126,-0.122,-0.118,-0.114,-0.11,-0.106,-0.102,-0.098,-0.094,-0.09,-0.086,-0.082,-0.078,-0.074,-0.07,-0.066,-0.062,-0.058,-0.054,-0.05,-0.047,-0.043,-0.04,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.018,-0.016,-0.013,-0.011,-0.009,-0.007,-0.006,-0.004,-0.003,-0.002,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.04,-0.17,-0.35,-0.59,-0.88,-1.2,-1.54,-1.9,-2.27,-2.64,-3,-3.36,-3.69,-4,-4.28,-4.53,-4.72,-4.87,-4.97,-5,-5,-5,-5,-5,-5,-5,-4.61,-3.64,-2.43,-1.21,-0.17,0.59,1,1.3,1.53,1.71,1.83,1.91,1.96,1.98,1.996,2,2,1.998,1.992,1.982,1.969,1.952,1.932,1.91,1.88,1.85,1.82,1.79,1.75,1.71,1.67,1.63,1.59,1.54,1.5,1.45,1.4,1.35,1.3,1.25,1.19,1.14,1.09,1.03,0.98,0.93,0.87,0.82,0.77,0.72,0.67,0.62,0.57,0.52,0.47,0.43,0.39,0.34,0.3,0.27,0.23,0.19,0.16,0.13,0.11,0.08,0.06,0.044,0.028,0.016,0.007,0.002,0\r\r\nPARAM_ANGLE_Y=0,0.09,0.33,0.7,1.19,1.75,2.4,3.08,3.79,4.53,5.28,6,6.71,7.39,8,8.57,9.05,9.45,9.74,9.93,10,10,10,10,10,10,10,7.57,1.67,-5.53,-12.56,-18.2,-21.79,-23,-21.93,-19.14,-15.1,-10.48,-5.69,-1.22,2.6,5.52,7.35,8,7.992,7.97,7.93,7.88,7.81,7.73,7.64,7.53,7.42,7.29,7.16,7.01,6.86,6.7,6.53,6.35,6.17,5.98,5.79,5.59,5.39,5.19,4.98,4.77,4.56,4.35,4.13,3.92,3.71,3.49,3.28,3.08,2.87,2.67,2.47,2.27,2.08,1.9,1.72,1.54,1.37,1.21,1.06,0.92,0.78,0.65,0.54,0.43,0.33,0.25,0.17,0.11,0.06,0.03,0.01,0\r\r\nPARAM_ANGLE_Z=0,0.017,0.07,0.15,0.27,0.42,0.6,0.8,1.04,1.3,1.59,1.91,2.26,2.63,3.03,3.46,3.91,4.39,4.89,5.43,6,6.53,6.87,7,6.91,6.61,6,5.07,4.14,3.25,2.37,1.54,0.75,0,-0.99,-1.88,-2.66,-3.32,-3.86,-4.29,-4.61,-4.83,-4.96,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.97,-4.87,-4.72,-4.53,-4.28,-4.01,-3.71,-3.38,-3.03,-2.68,-2.32,-1.97,-1.62,-1.29,-0.99,-0.72,-0.47,-0.28,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.52,0.45,0.37,0.28,0.22,0.17,0.16,0.159,0.159,0.158,0.16,0.157,0.16,0.156,0.16,0.155,0.15,0.154,0.15,0.15,0.153,0.15,0.15,0.15,0.152,0.15,0.15,0.15,0.151,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.25,0.41,0.51,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.52,0.45,0.37,0.28,0.22,0.17,0.16,0.159,0.159,0.158,0.16,0.157,0.16,0.156,0.16,0.155,0.15,0.154,0.15,0.15,0.153,0.15,0.15,0.15,0.152,0.15,0.15,0.15,0.151,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.25,0.41,0.51,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.009,-0.03,-0.07,-0.11,-0.17,-0.22,-0.27,-0.32,-0.36,-0.4,-0.43,-0.444,-0.45,-0.441,-0.42,-0.38,-0.34,-0.28,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.006,0.012,0.02,0.029,0.039,0.048,0.057,0.065,0.071,0.076,0.079,0.08,0.078,0.074,0.068,0.06,0.051,0.041,0.032,0.023,0.015,0.009,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.26,-0.38,-0.47,-0.53,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.549,-0.55,-0.55,-0.55,-0.55,-0.548,-0.55,-0.55,-0.547,-0.55,-0.55,-0.546,-0.55,-0.55,-0.545,-0.54,-0.544,-0.54,-0.543,-0.54,-0.542,-0.54,-0.541,-0.54,-0.41,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.26,-0.38,-0.47,-0.53,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.549,-0.55,-0.55,-0.55,-0.55,-0.548,-0.55,-0.55,-0.547,-0.55,-0.55,-0.546,-0.55,-0.55,-0.545,-0.54,-0.544,-0.54,-0.543,-0.54,-0.542,-0.54,-0.541,-0.54,-0.41,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.203,0.207,0.212,0.219,0.226,0.235,0.244,0.255,0.266,0.278,0.29,0.303,0.316,0.33,0.343,0.357,0.37,0.384,0.397,0.41,0.422,0.434,0.445,0.456,0.465,0.474,0.481,0.488,0.493,0.497,0.499,0.5,0.5,0.499,0.497,0.495,0.492,0.489,0.485,0.481,0.476,0.471,0.466,0.46,0.454,0.447,0.44,0.433,0.426,0.418,0.41,0.402,0.394,0.386,0.377,0.369,0.36,0.352,0.343,0.335,0.326,0.318,0.31,0.301,0.293,0.286,0.278,0.271,0.263,0.256,0.25,0.244,0.238,0.233,0.228,0.224,0.221,0.217,0.214,0.212,0.209,0.207,0.205,0.204,0.203,0.202,0.2,0.201,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.91,0.87,0.83,0.78,0.74,0.7,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.68,0.73,0.8,0.86,0.91,0.94,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.001,-0.005,-0.011,-0.018,-0.026,-0.036,-0.046,-0.057,-0.068,-0.079,-0.09,-0.101,-0.111,-0.12,-0.129,-0.136,-0.142,-0.146,-0.149,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.149,-0.148,-0.15,-0.146,-0.145,-0.144,-0.142,-0.141,-0.139,-0.137,-0.135,-0.133,-0.131,-0.129,-0.127,-0.124,-0.122,-0.119,-0.117,-0.114,-0.111,-0.108,-0.106,-0.103,-0.1,-0.097,-0.094,-0.091,-0.088,-0.085,-0.082,-0.078,-0.075,-0.072,-0.069,-0.066,-0.063,-0.06,-0.057,-0.054,-0.051,-0.048,-0.045,-0.042,-0.04,-0.037,-0.034,-0.032,-0.029,-0.027,-0.024,-0.022,-0.02,-0.018,-0.016,-0.014,-0.012,-0.01,-0.009,-0.007,-0.006,-0.005,-0.004,-0.003,-0.002,0,-0.001,0,0,0\r\r\nPARAM_BREATH=0.5,0.501,0.505,0.511,0.519,0.528,0.539,0.551,0.563,0.577,0.591,0.606,0.621,0.636,0.65,0.665,0.679,0.692,0.705,0.716,0.727,0.736,0.745,0.751,0.756,0.759,0.76,0.757,0.748,0.735,0.716,0.69,0.67,0.64,0.61,0.58,0.55,0.52,0.49,0.46,0.43,0.4,0.38,0.35,0.335,0.32,0.309,0.302,0.3,0.3,0.3,0.302,0.304,0.305,0.308,0.31,0.313,0.316,0.32,0.324,0.328,0.332,0.337,0.342,0.347,0.352,0.357,0.363,0.368,0.374,0.38,0.385,0.391,0.397,0.403,0.409,0.415,0.42,0.426,0.432,0.437,0.443,0.448,0.453,0.458,0.463,0.468,0.472,0.476,0.48,0.484,0.487,0.49,0.492,0.495,0.496,0.498,0.499,0.5,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0.002,0.007,0.016,0.028,0.041,0.057,0.075,0.093,0.113,0.132,0.153,0.172,0.191,0.21,0.227,0.242,0.256,0.268,0.277,0.284,0.289,0.29,0.28,0.25,0.21,0.16,0.11,0.05,-0.01,-0.07,-0.11,-0.15,-0.18,-0.203,-0.21,-0.196,-0.16,-0.11,-0.05,0.01,0.07,0.12,0.16,0.18,0.19,0.16,0.1,0.02,-0.06,-0.12,-0.15,-0.139,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.008,0.017,0.028,0.043,0.059,0.077,0.096,0.116,0.14,0.158,0.178,0.2,0.217,0.235,0.25,0.265,0.277,0.287,0.294,0.298,0.3,0.295,0.282,0.263,0.24,0.21,0.18,0.14,0.11,0.07,0.04,0,-0.03,-0.07,-0.1,-0.13,-0.15,-0.18,-0.192,-0.204,-0.214,-0.221,-0.225,-0.228,-0.229,-0.23,-0.23,-0.23,-0.227,-0.224,-0.219,-0.213,-0.206,-0.198,-0.19,-0.18,-0.17,-0.16,-0.149,-0.138,-0.126,-0.115,-0.104,-0.092,-0.081,-0.07,-0.06,-0.05,-0.04,-0.032,-0.024,-0.017,-0.011,-0.006,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.002,-0.007,-0.015,-0.026,-0.038,-0.053,-0.07,-0.087,-0.105,-0.123,-0.142,-0.16,-0.178,-0.195,-0.211,-0.225,-0.238,-0.249,-0.258,-0.265,-0.269,-0.27,-0.268,-0.263,-0.256,-0.245,-0.232,-0.217,-0.199,-0.179,-0.16,-0.13,-0.11,-0.08,-0.04,-0.01,0.03,0.06,0.09,0.12,0.14,0.16,0.179,0.194,0.205,0.213,0.218,0.22,0.219,0.217,0.214,0.209,0.204,0.197,0.19,0.181,0.173,0.163,0.153,0.143,0.132,0.121,0.11,0.099,0.088,0.077,0.067,0.057,0.047,0.039,0.03,0.023,0.016,0.011,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.01,-0.022,-0.037,-0.055,-0.074,-0.095,-0.12,-0.136,-0.155,-0.173,-0.188,-0.2,-0.207,-0.21,-0.21,-0.208,-0.206,-0.203,-0.199,-0.194,-0.189,-0.184,-0.177,-0.171,-0.163,-0.156,-0.148,-0.14,-0.132,-0.123,-0.115,-0.106,-0.097,-0.089,-0.081,-0.072,-0.064,-0.057,-0.049,-0.042,-0.036,-0.029,-0.023,-0.018,-0.014,-0.01,-0.006,-0.004,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_WING_DEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.022,-0.05,-0.08,-0.12,-0.16,-0.2,-0.25,-0.29,-0.33,-0.37,-0.4,-0.43,-0.444,-0.45,-0.449,-0.446,-0.441,-0.435,-0.426,-0.417,-0.406,-0.393,-0.38,-0.365,-0.35,-0.334,-0.317,-0.3,-0.282,-0.264,-0.246,-0.227,-0.209,-0.191,-0.173,-0.155,-0.138,-0.121,-0.106,-0.09,-0.076,-0.063,-0.05,-0.039,-0.029,-0.021,-0.013,-0.008,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,-0.2,-0.77,-1.66,-2.85,-4.3,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.7,-27.15,-28.34,-29.23,-29.8,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.4,-27.79,-25.31,-22.2,-18.74,-15,-11.26,-7.8,-4.69,-2.21,-0.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.07,0.26,0.55,0.95,1.43,1.99,2.59,3.25,3.94,4.65,5.35,6.06,6.75,7.41,8.01,8.57,9.05,9.45,9.74,9.93,10,9.994,9.976,9.95,9.9,9.85,9.79,9.71,9.62,9.52,9.41,9.29,9.16,9.02,8.87,8.71,8.55,8.37,8.19,8,7.77,7.55,7.32,7.11,6.9,6.7,6.49,6.29,6.09,5.89,5.68,5.48,5.27,5.06,4.86,4.64,4.42,4.2,3.97,3.74,3.5,3.26,3,2.71,2.41,2.08,1.74,1.42,1.1,0.8,0.54,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0.002,0.007,0.014,0.025,0.037,0.052,0.067,0.084,0.102,0.121,0.139,0.158,0.176,0.193,0.208,0.223,0.235,0.246,0.253,0.258,0.26,0.259,0.257,0.254,0.25,0.245,0.238,0.231,0.223,0.214,0.204,0.194,0.183,0.171,0.159,0.146,0.133,0.12,0.106,0.093,0.079,0.065,0.051,0.037,0.024,0.01,-0.003,-0.016,-0.029,-0.041,-0.053,-0.064,-0.074,-0.084,-0.093,-0.101,-0.108,-0.115,-0.12,-0.124,-0.127,-0.129,-0.13,-0.127,-0.12,-0.11,-0.096,-0.081,-0.065,-0.049,-0.034,-0.02,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.005,-0.019,-0.04,-0.07,-0.11,-0.15,-0.19,-0.24,-0.3,-0.35,-0.4,-0.45,-0.51,-0.56,-0.6,-0.64,-0.68,-0.71,-0.73,-0.745,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.749,-0.75,-0.748,-0.747,-0.746,-0.75,-0.744,-0.743,-0.741,-0.74,-0.738,-0.737,-0.735,-0.733,-0.73,-0.728,-0.725,-0.723,-0.72,-0.717,-0.713,-0.71,-0.706,-0.702,-0.698,-0.694,-0.689,-0.684,-0.679,-0.674,-0.669,-0.663,-0.657,-0.65,-0.644,-0.637,-0.63,-0.611,-0.57,-0.52,-0.45,-0.38,-0.3,-0.23,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0.002,0.008,0.017,0.029,0.044,0.062,0.08,0.101,0.12,0.14,0.17,0.19,0.21,0.23,0.248,0.266,0.281,0.293,0.302,0.308,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.308,0.305,0.301,0.296,0.289,0.28,0.14,-0.08,-0.28,-0.42,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.479,-0.48,-0.48,-0.478,-0.48,-0.48,-0.477,-0.48,-0.476,-0.48,-0.475,-0.474,-0.47,-0.472,-0.472,-0.471,-0.47,-0.43,-0.35,-0.23,-0.12,-0.04,0,0\r\r\nPARAM_BROW_R_Y=0,0.002,0.008,0.017,0.029,0.044,0.062,0.08,0.101,0.12,0.14,0.17,0.19,0.21,0.23,0.248,0.266,0.281,0.293,0.302,0.308,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.308,0.305,0.301,0.296,0.289,0.28,0.14,-0.08,-0.28,-0.42,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.479,-0.48,-0.48,-0.478,-0.48,-0.48,-0.477,-0.48,-0.476,-0.48,-0.475,-0.474,-0.47,-0.472,-0.472,-0.471,-0.47,-0.43,-0.35,-0.23,-0.12,-0.04,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.201,0.205,0.211,0.219,0.229,0.24,0.252,0.265,0.279,0.293,0.307,0.321,0.335,0.348,0.36,0.371,0.381,0.389,0.395,0.399,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.398,0.397,0.394,0.392,0.389,0.385,0.38,-0.53,-0.66,-0.72,-0.75,-0.75,-0.75,-0.75,-0.75,-0.748,-0.747,-0.746,-0.745,-0.743,-0.741,-0.738,-0.736,-0.733,-0.729,-0.725,-0.721,-0.717,-0.712,-0.707,-0.701,-0.695,-0.689,-0.682,-0.674,-0.667,-0.658,-0.649,-0.64,-0.62,-0.58,-0.54,-0.48,-0.43,-0.37,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.5,-0.5,-0.5,-0.5,-0.498,-0.498,-0.497,-0.5,-0.495,-0.494,-0.492,-0.491,-0.489,-0.488,-0.486,-0.484,-0.482,-0.48,-0.477,-0.475,-0.472,-0.47,-0.467,-0.464,-0.461,-0.458,-0.454,-0.451,-0.447,-0.444,-0.44,-0.436,-0.432,-0.427,-0.423,-0.419,-0.414,-0.409,-0.404,-0.399,-0.394,-0.389,-0.384,-0.378,-0.372,-0.367,-0.361,-0.355,-0.348,-0.342,-0.336,-0.329,-0.322,-0.316,-0.309,-0.302,-0.294,-0.287,-0.28,-0.272,-0.264,-0.256,-0.248,-0.24,-0.232,-0.223,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,0.2,0.203,0.206,0.208,0.211,0.213,0.216,0.218,0.22,0.222,0.224,0.226,0.228,0.23,0.232,0.233,0.235,0.236,0.238,0.239,0.24,0.241,0.242,0.243,0.244,0.245,0.246,0.25,0.247,0.25,0.248,0.25,0.249,0.25,0.25,0.25,0.25,0.25,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0,0,0.002,0,0,0,0.003,0,0,0,0.004,0,0,0.005,0.01,0.01,0.006,0.01,0.01,0.007,0.01,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.011,0.01,0.012,0.01,0.013,0.01,0.014,0.01,0.015,0.02,0.016,0.02,0.018,0.018,0.02,0.019,0.02,0.17,0.169,0.165,0.161,0.156,0.153,0.151,0.15,0.23,0.37,0.47,0.5,0.44,0.35,0.26,0.19,0.17,0.24,0.39,0.5,0.54,0.56,0.6,0.72,0.88,0.96,0.89,0.75,0.68,0.75,0.88,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95\r\r\nPARAM_MOUTH_OPEN2=0.9,0.894,0.877,0.85,0.81,0.77,0.72,0.67,0.61,0.55,0.48,0.42,0.35,0.29,0.23,0.18,0.13,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.006,-0.013,-0.022,-0.035,-0.05,-0.067,-0.087,-0.11,-0.13,-0.16,-0.19,-0.22,-0.26,-0.3,-0.34,-0.38,-0.42,-0.47,-0.52,-0.58,-0.63,-0.69,-1,-1,-1,-1,-0.999,-0.998,-1,-0.996,-0.995,-0.994,-0.993,-0.991,-0.99,-0.988,-0.987,-0.985,-0.983,-0.981,-0.98,-0.978,-0.976,-0.974,-0.972,-0.97,-0.968,-0.966,-0.965,-0.963,-0.961,-0.959,-0.957,-0.956,-0.954,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.944,-0.943,-0.943,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.13,-0.28,-0.47,-0.72,-0.99,-1.29,-1.62,-1.97,-2.32,-2.68,-3.03,-3.38,-3.71,-4.01,-4.28,-4.53,-4.72,-4.87,-4.97,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.9,-4.63,-4.22,-3.7,-3.12,-2.5,-1.88,-1.3,-0.78,-0.37,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-9.991,-9.97,-9.93,-9.87,-9.81,-9.74,-9.67,-9.59,-9.51,-9.43,-9.35,-9.28,-9.21,-9.15,-9.1,-9.06,-9.03,-9.007,-9,-9.006,-9.025,-9.05,-9.09,-9.14,-9.19,-9.24,-9.3,-9.36,-9.43,-9.49,-9.56,-9.62,-9.68,-9.74,-9.79,-9.84,-9.89,-9.93,-9.96,-9.98,-9.995,-10,-9.8,-9.26,-8.44,-7.4,-6.25,-5,-3.75,-2.6,-1.56,-0.74,-0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.497,0.487,0.472,0.453,0.43,0.4,0.37,0.34,0.3,0.27,0.23,0.2,0.16,0.13,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.5,0.5,0.5,0.505,0.519,0.538,0.56,0.59,0.62,0.65,0.67,0.7,0.72,0.742,0.757,0.767,0.77,0.765,0.75,0.73,0.7,0.67,0.64,0.61,0.58,0.55,0.53,0.514,0.504,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,0.01,0.03,0.06,0.09,0.11,0.13,0.145,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.11,0.02,-0.11,-0.25,-0.4,-0.56,-0.7,-0.82,-0.91,-0.98,-1,-0.984,-0.94,-0.9,-0.85,-0.81,-0.79,-0.78,-0.796,-0.84,-0.88,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.994,-0.978,-0.95,-0.9,-0.84,-0.76,-0.64,-0.51,-0.38,-0.25,-0.13,-0.02,0.06,0.12,0.14,0.123,0.09,0.04,-0.01,-0.05,-0.09,-0.11,-0.12,-0.111,-0.09,-0.06,-0.04,-0.017,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.004,0.014,0.03,0.05,0.07,0.1,0.13,0.17,0.2,0.23,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.49,0.51,0.526,0.539,0.547,0.55,0.549,0.547,0.543,0.537,0.53,0.521,0.511,0.5,0.487,0.473,0.457,0.44,0.421,0.4,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.2,0.18,0.16,0.138,0.12,0.103,0.088,0.074,0.061,0.049,0.039,0.03,0.022,0.015,0.01,0.006,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.009,0.019,0.032,0.048,0.065,0.085,0.11,0.13,0.15,0.17,0.19,0.22,0.24,0.258,0.277,0.295,0.311,0.324,0.335,0.343,0.348,0.35,0.35,0.35,0.349,0.347,0.346,0.344,0.342,0.339,0.336,0.332,0.327,0.323,0.317,0.311,0.304,0.297,0.289,0.28,0.271,0.261,0.25,0.239,0.227,0.216,0.205,0.195,0.184,0.174,0.164,0.155,0.145,0.136,0.127,0.119,0.11,0.102,0.094,0.087,0.08,0.073,0.066,0.06,0.054,0.048,0.043,0.038,0.033,0.028,0.024,0.02,0.017,0.014,0.011,0.008,0.006,0.004,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.001,-0.004,-0.01,-0.016,-0.025,-0.035,-0.047,-0.06,-0.074,-0.089,-0.105,-0.122,-0.14,-0.159,-0.178,-0.198,-0.22,-0.24,-0.26,-0.28,-0.31,-0.33,-0.35,-0.37,-0.39,-0.413,-0.431,-0.447,-0.462,-0.475,-0.488,-0.498,-0.508,-0.516,-0.523,-0.53,-0.535,-0.539,-0.543,-0.546,-0.548,-0.549,-0.55,-0.55,-0.549,-0.546,-0.541,-0.534,-0.525,-0.515,-0.503,-0.49,-0.476,-0.46,-0.444,-0.426,-0.408,-0.389,-0.37,-0.349,-0.329,-0.31,-0.29,-0.267,-0.25,-0.226,-0.21,-0.186,-0.167,-0.148,-0.13,-0.113,-0.096,-0.081,-0.067,-0.053,-0.042,-0.031,-0.022,-0.014,-0.008,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.002,-0.009,-0.019,-0.032,-0.049,-0.068,-0.09,-0.11,-0.13,-0.16,-0.18,-0.21,-0.23,-0.25,-0.27,-0.291,-0.308,-0.321,-0.331,-0.338,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.338,-0.336,-0.333,-0.33,-0.325,-0.32,-0.315,-0.309,-0.302,-0.295,-0.287,-0.279,-0.27,-0.261,-0.252,-0.242,-0.232,-0.222,-0.212,-0.202,-0.191,-0.181,-0.17,-0.159,-0.149,-0.138,-0.128,-0.118,-0.108,-0.098,-0.088,-0.079,-0.07,-0.061,-0.053,-0.045,-0.038,-0.031,-0.025,-0.02,-0.015,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_WING_DEFORM=0,0.004,0.015,0.032,0.05,0.08,0.12,0.15,0.19,0.23,0.28,0.32,0.37,0.41,0.46,0.5,0.54,0.58,0.62,0.65,0.68,0.7,0.719,0.737,0.754,0.771,0.787,0.802,0.816,0.83,0.843,0.855,0.867,0.878,0.888,0.898,0.907,0.916,0.924,0.932,0.939,0.945,0.952,0.957,0.963,0.967,0.972,0.976,0.979,0.982,0.985,0.988,0.99,0.992,0.994,0.995,0.997,0.998,0.998,0.999,1,1,1,1,0.999,0.995,0.989,0.98,0.97,0.957,0.942,0.926,0.908,0.888,0.87,0.84,0.82,0.79,0.77,0.74,0.71,0.68,0.65,0.62,0.59,0.56,0.53,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.21,0.18,0.16,0.13,0.11,0.092,0.074,0.058,0.043,0.03,0.02,0.011,0.005,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.09,0.33,0.73,1.26,1.9,2.66,3.5,4.4,5.38,6.4,7.43,8.5,9.57,10.6,11.62,12.6,13.5,14.34,15.1,15.74,16.27,16.67,16.91,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.66,15.75,14.38,12.67,10.77,8.75,6.77,4.92,3.28,1.9,0.87,0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.39,-0.86,-1.49,-2.24,-3.13,-4.12,-5.18,-6.33,-7.53,-8.74,-10,-11.26,-12.47,-13.67,-14.82,-15.88,-16.88,-17.76,-18.51,-19.14,-19.61,-19.9,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-19.6,-18.53,-16.92,-14.9,-12.67,-10.29,-7.96,-5.78,-3.86,-2.24,-1.02,-0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.019,0.07,0.16,0.27,0.41,0.58,0.76,0.96,1.18,1.41,1.64,1.88,2.12,2.35,2.59,2.82,3.03,3.24,3.42,3.59,3.73,3.85,3.94,4,4.04,4.08,4.12,4.16,4.19,4.22,4.25,4.28,4.31,4.34,4.37,4.39,4.41,4.44,4.46,4.48,4.5,4.53,4.55,4.57,4.589,4.61,4.63,4.65,4.67,4.69,4.71,4.74,4.76,4.78,4.81,4.83,4.86,4.88,4.91,4.94,4.97,5,5.06,5.16,5.27,5.4,5.53,5.65,5.76,5.86,5.93,5.98,6,5.68,4.82,3.54,1.92,0.13,-1.77,-3.63,-5.37,-6.92,-8.21,-9.18,-9.79,-10,-9.8,-9.26,-8.46,-7.45,-6.33,-5.15,-3.98,-2.89,-1.93,-1.12,-0.51,-0.13,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.65,0.84,0.94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0,0,0.002,0,0,0,0,0.003,0,0,0,0.004,0,0,0,0.005,0.01,0.01,0.006,0.01,0.01,0.007,0.01,0.01,0.008,0.01,0.01,0.009,0.01,0.01,0.01,0.01,0.011,0.01,0.012,0.01,0.013,0.01,0.014,0.01,0.015,0.02,0.016,0.02,0.017,0.02,0.018,0.02,0.02,0.02,0.02,0.021,0.02,0.023,0.023,0.02,0.025,0.025,0.03,0.026,0.027,0.03,0.029,0.029,0.03,0.15,0.33,0.43,0.5,0.54,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.65,0.84,0.94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.15,0.35,0.45,0.51,0.54,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,0.88,0.74,0.52,0.31,0.16,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.098,0.098,0.096,0.095,0.093,0.091,0.089,0.086,0.082,0.079,0.075,0.07,0.065,0.06,-0.07,-0.28,-0.47,-0.61,-0.66,-0.662,-0.663,-0.665,-0.666,-0.668,-0.669,-0.67,-0.671,-0.672,-0.674,-0.675,-0.676,-0.677,-0.679,-0.68,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,0.88,0.74,0.52,0.31,0.16,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.099,0.1,0.1,0.098,0.1,0.1,0.097,0.1,0.096,0.1,0.095,0.094,0.09,0.093,0.092,0.09,0.09,0.089,0.089,0.088,0.087,0.086,0.085,0.084,0.083,0.082,0.08,0.079,0.078,0.077,0.075,0.074,0.073,0.071,0.07,0.068,0.067,0.065,0.063,0.062,0.06,-0.07,-0.29,-0.48,-0.62,-0.68,-0.68,-0.68,-0.679,-0.68,-0.677,-0.676,-0.675,-0.675,-0.674,-0.673,-0.672,-0.67,-0.67,-0.67,-0.67,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0.004,0.015,0.032,0.06,0.08,0.12,0.15,0.19,0.24,0.28,0.33,0.38,0.42,0.47,0.51,0.56,0.6,0.63,0.67,0.69,0.72,0.735,0.746,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.739,0.71,0.67,0.63,0.58,0.52,0.47,0.43,0.38,0.35,0.32,0.29,0.27,0.25,0.23,0.206,0.188,0.17,0.153,0.138,0.124,0.111,0.098,0.087,0.077,0.067,0.058,0.05,0.043,0.036,0.03,0.025,0.02,0.016,0.012,0.009,0.007,0.004,0.003,0.002,0.001,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.001,-0.005,-0.011,-0.019,-0.028,-0.039,-0.051,-0.065,-0.079,-0.094,-0.109,-0.125,-0.141,-0.156,-0.171,-0.185,-0.199,-0.211,-0.222,-0.231,-0.239,-0.245,-0.249,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.261,-0.29,-0.32,-0.37,-0.41,-0.45,-0.49,-0.53,-0.56,-0.573,-0.58,-0.578,-0.573,-0.564,-0.552,-0.538,-0.522,-0.503,-0.482,-0.46,-0.44,-0.41,-0.39,-0.36,-0.33,-0.31,-0.28,-0.25,-0.23,-0.2,-0.18,-0.15,-0.13,-0.11,-0.09,-0.067,-0.051,-0.036,-0.023,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_L_Y=0,0,-0.003,-0.007,-0.013,-0.019,-0.027,-0.035,-0.044,-0.054,-0.064,-0.074,-0.085,-0.096,-0.106,-0.116,-0.126,-0.135,-0.143,-0.151,-0.157,-0.163,-0.167,-0.169,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.183,-0.22,-0.26,-0.31,-0.37,-0.42,-0.47,-0.52,-0.55,-0.57,-0.58,-0.58,-0.58,-0.579,-0.578,-0.576,-0.574,-0.571,-0.568,-0.564,-0.56,-0.555,-0.549,-0.543,-0.536,-0.528,-0.52,-0.42,-0.27,-0.14,-0.04,0\r\r\nPARAM_BROW_R_Y=0,0,-0.003,-0.007,-0.012,-0.018,-0.025,-0.033,-0.041,-0.051,-0.06,-0.07,-0.08,-0.09,-0.1,-0.109,-0.119,-0.127,-0.135,-0.142,-0.148,-0.153,-0.157,-0.159,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.173,-0.21,-0.25,-0.3,-0.36,-0.41,-0.46,-0.51,-0.54,-0.56,-0.57,-0.57,-0.57,-0.57,-0.568,-0.567,-0.566,-0.564,-0.562,-0.56,-0.557,-0.553,-0.55,-0.545,-0.541,-0.536,-0.53,-0.43,-0.28,-0.14,-0.04,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.203,0.206,0.21,0.216,0.222,0.229,0.236,0.244,0.253,0.261,0.27,0.279,0.287,0.296,0.304,0.311,0.318,0.324,0.33,0.334,0.337,0.339,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.339,0.34,0.34,0.34,0.338,0.34,0.34,0.34,0.337,0.34,0.34,0.336,0.34,0.335,0.33,0.33,0.334,0.33,0.333,0.33,0.332,0.331,0.33,0.33,0.33,0.329,0.33,0.327,0.327,0.33,0.325,0.325,0.324,0.32,0.322,0.322,0.321,0.32,0.319,0.318,0.317,0.317,0.316,0.315,0.314,0.31,0.312,0.311,0.31,0.309,0.308,0.307,0.307,0.305,0.304,0.303,0.302,0.301,0.3,0.281,0.25,0.23,0.207,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.499,-0.495,-0.489,-0.481,-0.471,-0.459,-0.446,-0.433,-0.418,-0.402,-0.386,-0.37,-0.354,-0.338,-0.322,-0.307,-0.294,-0.281,-0.269,-0.259,-0.251,-0.245,-0.241,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.241,-0.24,-0.24,-0.24,-0.242,-0.24,-0.24,-0.24,-0.243,-0.24,-0.24,-0.244,-0.24,-0.24,-0.24,-0.245,-0.25,-0.25,-0.246,-0.25,-0.25,-0.247,-0.25,-0.25,-0.25,-0.248,-0.25,-0.25,-0.25,-0.25,-0.249,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,0.36,0.36,0.36,0.36,0.36,0.36,0.359,0.36,0.358,0.357,0.356,0.355,0.354,0.353,0.351,0.35,0.348,0.346,0.344,0.342,0.34,0.19,-0.05,-0.28,-0.44,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.95,0.949,0.945,0.94,0.932,0.923,0.913,0.901,0.888,0.874,0.86,0.845,0.83,0.815,0.8,0.786,0.772,0.759,0.747,0.737,0.728,0.72,0.715,0.711,0.71,0.71,0.71,0.71,0.71,0.71,0.711,0.71,0.712,0.71,0.713,0.71,0.715,0.716,0.716,0.718,0.719,0.72,0.721,0.723,0.724,0.726,0.727,0.729,0.731,0.733,0.735,0.737,0.74,0.742,0.745,0.747,0.75,0.766,0.8,0.85,0.89,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.94,0.945,0.948,0.949,0.95,0.95\r\r\nPARAM_MOUTH_OPEN2=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.998,-0.997,-0.996,-0.994,-0.992,-0.99,-0.988,-0.985,-0.983,-0.98,-0.977,-0.974,-0.971,-0.968,-0.965,-0.962,-0.959,-0.956,-0.953,-0.95,-0.947,-0.944,-0.941,-0.938,-0.936,-0.933,-0.931,-0.929,-0.927,-0.925,-0.924,-0.922,-0.921,-0.921,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,0.87,0.83,0.7,0.49,0.24,-0.18,-0.53,-0.69,-0.6,-0.45,-0.36,-0.45,-0.6,-0.69,-0.62,-0.41,0,0.46,0.76,0.88,-0.91,-0.96,-0.98,-0.992,-0.998,-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.003,0.01,0.021,0.037,0.055,0.08,0.1,0.13,0.16,0.19,0.22,0.25,0.29,0.32,0.35,0.39,0.42,0.45,0.47,0.5,0.52,0.542,0.558,0.57,0.58,0.59,0.599,0.609,0.617,0.625,0.633,0.641,0.648,0.655,0.662,0.668,0.674,0.68,0.685,0.69,0.695,0.7,0.704,0.708,0.712,0.716,0.719,0.722,0.725,0.728,0.73,0.732,0.734,0.736,0.738,0.74,0.741,0.743,0.744,0.745,0.746,0.747,0.747,0.75,0.748,0.75,0.749,0.75,0.75,0.75,0.75,0.75,0.75,0.746,0.736,0.719,0.7,0.67,0.64,0.6,0.57,0.53,0.49,0.44,0.4,0.36,0.32,0.28,0.23,0.2,0.16,0.13,0.09,0.07,0.04,0.026,0.012,0.003,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,0.003,0.01,0.022,0.038,0.057,0.08,0.11,0.13,0.16,0.19,0.22,0.26,0.29,0.32,0.35,0.38,0.4,0.43,0.45,0.472,0.488,0.5,0.507,0.51,0.51,0.51,0.508,0.506,0.504,0.501,0.497,0.493,0.488,0.483,0.477,0.47,0.463,0.455,0.446,0.436,0.426,0.415,0.403,0.39,0.376,0.362,0.347,0.331,0.314,0.296,0.277,0.257,0.24,0.21,0.19,0.17,0.14,0.12,0.09,0.06,0.03,0,-0.04,-0.07,-0.11,-0.15,-0.18,-0.22,-0.25,-0.28,-0.32,-0.35,-0.37,-0.4,-0.42,-0.45,-0.465,-0.48,-0.493,-0.502,-0.508,-0.51,-0.504,-0.486,-0.46,-0.43,-0.39,-0.35,-0.3,-0.26,-0.22,-0.17,-0.13,-0.1,-0.06,-0.04,-0.018,-0.005,0\r\r\nPARAM_BREATH=0.5,0.502,0.506,0.513,0.522,0.534,0.547,0.562,0.578,0.595,0.613,0.631,0.65,0.669,0.687,0.705,0.722,0.738,0.753,0.766,0.778,0.787,0.794,0.798,0.8,0.799,0.797,0.794,0.79,0.785,0.778,0.771,0.763,0.755,0.745,0.736,0.725,0.715,0.704,0.692,0.681,0.669,0.657,0.646,0.634,0.622,0.611,0.6,0.589,0.578,0.568,0.558,0.549,0.541,0.533,0.526,0.519,0.514,0.509,0.505,0.502,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,0.002,0.006,0.013,0.023,0.035,0.048,0.064,0.08,0.098,0.117,0.136,0.155,0.174,0.193,0.212,0.23,0.246,0.262,0.275,0.287,0.297,0.304,0.308,0.31,0.309,0.307,0.304,0.3,0.294,0.288,0.28,0.272,0.263,0.254,0.243,0.233,0.222,0.21,0.199,0.187,0.175,0.163,0.15,0.138,0.126,0.115,0.103,0.092,0.081,0.07,0.06,0.051,0.042,0.034,0.026,0.02,0.014,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.018,0.036,0.06,0.08,0.1,0.122,0.135,0.14,0.132,0.11,0.08,0.04,0.01,-0.03,-0.06,-0.08,-0.09,-0.084,-0.071,-0.055,-0.039,-0.024,-0.011,-0.003,0\r\r\nPARAM_HAIR_FRONT=0,0,0.001,0.003,0.004,0.007,0.01,0.013,0.017,0.021,0.026,0.03,0.036,0.041,0.047,0.054,0.06,0.067,0.074,0.081,0.089,0.096,0.104,0.112,0.12,0.128,0.136,0.145,0.153,0.161,0.17,0.178,0.187,0.195,0.203,0.212,0.22,0.228,0.236,0.244,0.251,0.259,0.266,0.274,0.28,0.287,0.294,0.3,0.306,0.311,0.317,0.322,0.326,0.331,0.335,0.338,0.341,0.344,0.346,0.348,0.349,0.35,0.35,0.35,0.352,0.352,0.351,0.349,0.345,0.337,0.327,0.313,0.295,0.27,0.23,0.17,0.09,0.01,-0.09,-0.18,-0.27,-0.36,-0.43,-0.49,-0.53,-0.56,-0.57,-0.559,-0.53,-0.48,-0.42,-0.36,-0.29,-0.23,-0.16,-0.11,-0.06,-0.03,-0.01,0\r\r\nPARAM_HAIR_SIDE_R=0,0,0.001,0.003,0.005,0.008,0.011,0.014,0.018,0.022,0.026,0.031,0.035,0.039,0.044,0.048,0.052,0.056,0.059,0.062,0.065,0.067,0.069,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.069,0.07,0.07,0.07,0.068,0.07,0.067,0.07,0.066,0.07,0.064,0.064,0.06,0.062,0.061,0.061,0.06,0.059,0.058,0.057,0.055,0.054,0.053,0.052,0.05,0.049,0.047,0.046,0.044,0.043,0.041,0.039,0.037,0.035,0.033,0.031,0.029,0.027,0.025,0.022,0.02,0.002,-0.04,-0.11,-0.19,-0.28,-0.38,-0.48,-0.57,-0.65,-0.71,-0.75,-0.77,-0.755,-0.72,-0.66,-0.59,-0.52,-0.44,-0.35,-0.28,-0.2,-0.14,-0.08,-0.04,-0.01,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.001,-0.004,-0.01,-0.017,-0.026,-0.036,-0.048,-0.062,-0.077,-0.093,-0.11,-0.128,-0.147,-0.167,-0.188,-0.21,-0.23,-0.25,-0.27,-0.3,-0.32,-0.34,-0.36,-0.38,-0.4,-0.42,-0.444,-0.463,-0.482,-0.499,-0.516,-0.531,-0.545,-0.559,-0.571,-0.581,-0.59,-0.598,-0.606,-0.614,-0.621,-0.627,-0.633,-0.639,-0.644,-0.648,-0.653,-0.656,-0.66,-0.663,-0.666,-0.668,-0.671,-0.673,-0.674,-0.676,-0.677,-0.678,-0.679,-0.679,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.678,-0.676,-0.671,-0.663,-0.652,-0.638,-0.619,-0.6,-0.57,-0.53,-0.49,-0.44,-0.39,-0.33,-0.28,-0.24,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0\r\r\nPARAM_TWIN_RIBBON_D=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012,0.05,0.1,0.16,0.23,0.3,0.37,0.44,0.5,0.55,0.59,0.61,0.62,0.55,0.39,0.18,-0.03,-0.19,-0.26,-0.24,-0.19,-0.13,-0.07,-0.02,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0,0,-0.003,-0.007,-0.013,-0.02,-0.028,-0.037,-0.048,-0.06,-0.073,-0.087,-0.102,-0.118,-0.135,-0.153,-0.172,-0.191,-0.211,-0.23,-0.25,-0.27,-0.3,-0.32,-0.34,-0.37,-0.39,-0.41,-0.44,-0.46,-0.48,-0.51,-0.53,-0.56,-0.58,-0.6,-0.63,-0.65,-0.67,-0.7,-0.72,-0.74,-0.76,-0.781,-0.801,-0.821,-0.839,-0.857,-0.874,-0.89,-0.905,-0.919,-0.932,-0.945,-0.956,-0.966,-0.975,-0.982,-0.988,-0.993,-0.997,-0.999,-1,-0.998,-0.991,-0.98,-0.966,-0.948,-0.93,-0.9,-0.87,-0.84,-0.81,-0.78,-0.74,-0.7,-0.67,-0.63,-0.59,-0.55,-0.51,-0.46,-0.42,-0.38,-0.34,-0.31,-0.27,-0.23,-0.2,-0.17,-0.14,-0.11,-0.09,-0.07,-0.046,-0.03,-0.017,-0.008,-0.002,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath7.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.1,-0.37,-0.81,-1.36,-2.04,-2.8,-3.63,-4.52,-5.46,-6.4,-7.38,-8.34,-9.29,-10.21,-11.08,-11.89,-12.64,-13.31,-13.88,-14.36,-14.71,-14.92,-15,-15.001,-15.003,-15,-14.999,-14.989,-14.97,-14.94,-14.9,-14.84,-14.77,-14.68,-14.57,-14.44,-14.28,-14.11,-13.9,-13.67,-13.4,-13.1,-12.78,-12.41,-12.01,-11.57,-11.09,-10.57,-10,-9.27,-8.4,-7.37,-6.23,-4.98,-3.66,-2.23,-0.78,0.71,2.23,3.72,5.23,6.69,8.11,9.48,10.78,11.97,13.06,14.05,14.92,15.65,16.23,16.65,16.91,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.89,16.56,16.06,15.39,14.56,13.62,12.6,11.48,10.31,9.1,7.9,6.69,5.52,4.4,3.38,2.44,1.61,0.94,0.44,0.11,0\r\r\nPARAM_ANGLE_Y=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.96,-0.86,-0.71,-0.5,-0.25,0.04,0.36,0.71,1.07,1.46,1.85,2.25,2.65,3.05,3.43,3.81,4.17,4.51,4.83,5.11,5.37,5.58,5.76,5.89,5.97,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5.96,5.85,5.67,5.43,5.14,4.81,4.45,4.05,3.64,3.21,2.79,2.36,1.95,1.55,1.19,0.86,0.57,0.33,0.15,0.04,0\r\r\nPARAM_ANGLE_Z=0,-0.07,-0.27,-0.59,-1,-1.49,-2.05,-2.66,-3.32,-4,-4.7,-5.41,-6.12,-6.81,-7.49,-8.12,-8.72,-9.27,-9.76,-10.18,-10.53,-10.79,-10.94,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.84,-10.38,-9.63,-8.63,-7.42,-6.04,-4.45,-2.76,-0.96,0.92,2.8,4.77,6.68,8.58,10.43,12.21,13.86,15.39,16.78,18,19.05,19.88,20.49,20.87,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20.86,20.46,19.84,19.01,17.99,16.83,15.56,14.18,12.73,11.24,9.76,8.27,6.82,5.44,4.17,3.01,1.99,1.16,0.54,0.14,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.45,-0.5,-0.54,-0.58,-0.62,-0.65,-0.68,-0.7,-0.716,-0.726,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.722,-0.7,-0.67,-0.62,-0.56,-0.5,-0.42,-0.34,-0.26,-0.17,-0.08,0.01,0.1,0.19,0.28,0.37,0.44,0.52,0.58,0.64,0.69,0.73,0.76,0.774,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.775,0.76,0.74,0.71,0.67,0.62,0.58,0.53,0.47,0.42,0.36,0.31,0.25,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.002,0.004,0.007,0.011,0.015,0.019,0.024,0.029,0.034,0.039,0.045,0.05,0.054,0.059,0.063,0.067,0.071,0.074,0.077,0.078,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.079,0.078,0.076,0.072,0.069,0.064,0.059,0.054,0.048,0.043,0.037,0.032,0.026,0.021,0.016,0.011,0.008,0.004,0.002,0.001,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.15,-0.32,-0.54,-0.82,-1.12,-1.45,-1.81,-2.18,-2.56,-2.95,-3.34,-3.71,-4.09,-4.43,-4.76,-5.06,-5.32,-5.55,-5.74,-5.88,-5.97,-6,-6,-5.998,-5.993,-5.985,-5.971,-5.952,-5.93,-5.89,-5.85,-5.8,-5.74,-5.66,-5.58,-5.48,-5.37,-5.24,-5.1,-4.94,-4.77,-4.58,-4.37,-4.14,-3.89,-3.61,-3.32,-3,-2.62,-2.23,-1.79,-1.35,-0.88,-0.4,0.09,0.58,1.08,1.57,2.04,2.51,2.96,3.4,3.81,4.19,4.55,4.87,5.16,5.41,5.61,5.78,5.9,5.98,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5.96,5.85,5.67,5.43,5.14,4.81,4.45,4.05,3.64,3.21,2.79,2.36,1.95,1.55,1.19,0.86,0.57,0.33,0.15,0.04,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,-0.004,-0.016,-0.034,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.31,-0.36,-0.42,-0.47,-0.53,-0.58,-0.64,-0.69,-0.74,-0.79,-0.83,-0.87,-0.91,-0.94,-0.97,-0.984,-0.996,-1,-0.984,-0.94,-0.89,-0.83,-0.76,-0.7,-0.64,-0.59,-0.55,-0.52,-0.51,-0.514,-0.522,-0.533,-0.544,-0.554,-0.562,-0.568,-0.57,-0.57,-0.568,-0.565,-0.561,-0.556,-0.549,-0.541,-0.531,-0.519,-0.506,-0.491,-0.473,-0.454,-0.43,-0.41,-0.38,-0.36,-0.33,-0.29,-0.26,-0.22,-0.18,-0.14,-0.1,-0.05,0.01,0.1,0.2,0.3,0.4,0.49,0.57,0.62,0.64,0.637,0.627,0.614,0.597,0.578,0.557,0.538,0.519,0.503,0.489,0.479,0.472,0.47,0.47,0.467,0.458,0.444,0.425,0.4,0.38,0.35,0.32,0.28,0.25,0.22,0.19,0.15,0.12,0.09,0.07,0.04,0.026,0.012,0.003,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.001,-0.005,-0.011,-0.019,-0.03,-0.042,-0.055,-0.07,-0.086,-0.104,-0.122,-0.141,-0.16,-0.18,-0.2,-0.22,-0.24,-0.259,-0.278,-0.296,-0.314,-0.33,-0.345,-0.358,-0.37,-0.381,-0.389,-0.395,-0.399,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.397,-0.389,-0.375,-0.357,-0.33,-0.31,-0.28,-0.24,-0.21,-0.17,-0.13,-0.08,-0.04,0.01,0.05,0.1,0.15,0.19,0.24,0.28,0.32,0.36,0.4,0.43,0.47,0.5,0.52,0.54,0.555,0.563,0.567,0.568,0.567,0.565,0.562,0.561,0.56,0.558,0.553,0.545,0.533,0.52,0.504,0.486,0.466,0.44,0.42,0.4,0.37,0.35,0.32,0.3,0.27,0.24,0.22,0.19,0.17,0.15,0.12,0.1,0.083,0.065,0.049,0.035,0.023,0.013,0.006,0.002,0\r\r\nPARAM_HAIR_SIDE_L=0,0,0.003,0.007,0.012,0.018,0.025,0.034,0.044,0.054,0.066,0.079,0.092,0.106,0.121,0.137,0.153,0.169,0.186,0.204,0.221,0.239,0.257,0.275,0.293,0.312,0.33,0.348,0.366,0.383,0.4,0.417,0.431,0.443,0.453,0.461,0.467,0.471,0.475,0.477,0.479,0.48,0.48,0.48,0.48,0.48,0.48,0.477,0.467,0.451,0.43,0.4,0.37,0.34,0.29,0.25,0.2,0.15,0.1,0.04,-0.02,-0.08,-0.15,-0.21,-0.28,-0.34,-0.41,-0.48,-0.54,-0.61,-0.67,-0.74,-0.8,-0.86,-0.92,-0.96,-0.98,-0.998,-1,-1,-1,-1,-1,-1,-0.997,-0.987,-0.972,-0.952,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.002,0.007,0.017,0.032,0.052,0.08,0.11,0.15,0.19,0.25,0.31,0.38,0.46,0.54,0.61,0.68,0.74,0.79,0.84,0.88,0.92,0.95,0.97,0.986,0.996,1,0.96,0.86,0.71,0.54,0.37,0.21,0.07,-0.04,-0.11,-0.13,-0.121,-0.103,-0.08,-0.06,-0.03,-0.016,-0.004,0,-0.002,-0.006,-0.013,-0.023,-0.035,-0.048,-0.064,-0.081,-0.099,-0.119,-0.139,-0.16,-0.18,-0.2,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.355,-0.374,-0.392,-0.409,-0.424,-0.438,-0.45,-0.461,-0.469,-0.475,-0.479,-0.48,-0.475,-0.46,-0.44,-0.41,-0.37,-0.33,-0.28,-0.24,-0.19,-0.14,-0.1,-0.06,-0.02,0.02,0.05,0.08,0.095,0.106,0.11,0.109,0.106,0.102,0.097,0.091,0.084,0.076,0.068,0.06,0.052,0.044,0.036,0.029,0.022,0.016,0.01,0.006,0.003,0.001,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath8.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.08,-0.3,-0.63,-1.07,-1.58,-2.16,-2.77,-3.42,-4.08,-4.75,-5.4,-6.04,-6.65,-7.2,-7.71,-8.15,-8.5,-8.77,-8.94,-9,-8.21,-6.13,-3.14,0.29,3.84,7.16,9.99,12.16,13.52,14,13.988,13.95,13.89,13.8,13.68,13.54,13.36,13.16,12.93,12.66,12.37,12.05,11.69,11.31,10.89,10.44,9.96,9.45,8.91,8.33,7.72,7.09,6.42,5.73,5,4.07,3,1.9,0.93,0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.26,1,2.11,3.56,5.26,7.19,9.25,11.38,13.6,15.83,18.01,20.14,22.16,24,25.7,27.15,28.34,29.23,29.8,30,28.24,23.64,17,9.4,1.52,-5.84,-12.12,-16.91,-19.93,-21,-20.992,-20.97,-20.92,-20.86,-20.78,-20.68,-20.55,-20.41,-20.24,-20.04,-19.83,-19.58,-19.32,-19.02,-18.7,-18.35,-17.98,-17.58,-17.15,-16.69,-16.21,-15.7,-15.16,-14.59,-14,-12.49,-9.81,-6.51,-3.32,-0.96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.03,0.1,0.22,0.39,0.59,0.83,1.1,1.4,1.73,2.07,2.44,2.81,3.21,3.6,4,4.4,4.79,5.19,5.56,5.93,6.27,6.6,6.9,7.17,7.41,7.61,7.78,7.9,7.97,8,7.97,7.9,7.78,7.61,7.41,7.17,6.9,6.6,6.28,5.94,5.58,5.21,4.83,4.44,4.05,3.66,3.28,2.9,2.53,2.18,1.84,1.52,1.23,0.96,0.72,0.51,0.33,0.19,0.09,0.02,0,0,0,0,0,0,0,0,0,0,-0.79,-2.49,-4.61,-6.81,-8.82,-10.48,-11.59,-12,-12.02,-12.05,-12.02,-11.87,-11.56,-11,-10.3,-9.58,-8.87,-8.14,-7.42,-6.7,-6,-5.31,-4.64,-3.99,-3.39,-2.81,-2.27,-1.77,-1.34,-0.95,-0.62,-0.35,-0.16,-0.04,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.552,0.554,0.558,0.564,0.572,0.582,0.594,0.61,0.64,0.68,0.72,0.76,0.8,0.84,0.88,0.91,0.93,0.945,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.949,0.95,0.95,0.95,0.95,0.948,0.95,0.95,0.95,0.947,0.95,0.95,0.946,0.95,0.95,0.945,0.94,0.944,0.94,0.943,0.94,0.942,0.94,0.941,0.94,0.91,0.84,0.74,0.65,0.58,0.55,0.55,0.55,0.55,0.55,0.55,0.52,0.47,0.4,0.33,0.26,0.21,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.161,0.162,0.164,0.167,0.17,0.186,0.22,0.26,0.31,0.36,0.41,0.45,0.49,0.52,0.543,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.552,0.554,0.558,0.564,0.572,0.582,0.594,0.61,0.64,0.68,0.72,0.76,0.8,0.84,0.88,0.91,0.93,0.945,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.949,0.95,0.95,0.95,0.95,0.948,0.95,0.95,0.95,0.947,0.95,0.95,0.946,0.95,0.95,0.945,0.94,0.944,0.94,0.943,0.94,0.942,0.94,0.941,0.94,0.91,0.84,0.74,0.65,0.58,0.55,0.55,0.55,0.55,0.55,0.55,0.53,0.47,0.4,0.33,0.27,0.22,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.182,0.21,0.25,0.3,0.35,0.4,0.45,0.49,0.52,0.54,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0.005,0.017,0.033,0.052,0.072,0.092,0.111,0.126,0.139,0.147,0.15,0.15,0.15,0.148,0.147,0.145,0.144,0.141,0.139,0.136,0.133,0.13,0.127,0.123,0.119,0.115,0.111,0.107,0.103,0.098,0.094,0.089,0.084,0.08,0.075,0.07,0.066,0.061,0.056,0.052,0.047,0.043,0.039,0.035,0.031,0.027,0.023,0.02,0.017,0.014,0.011,0.009,0.006,0.005,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.004,-0.015,-0.029,-0.045,-0.063,-0.08,-0.096,-0.109,-0.12,-0.127,-0.13,-0.13,-0.13,-0.129,-0.127,-0.126,-0.124,-0.122,-0.12,-0.118,-0.115,-0.113,-0.11,-0.107,-0.103,-0.1,-0.096,-0.093,-0.089,-0.085,-0.081,-0.077,-0.073,-0.069,-0.065,-0.061,-0.057,-0.053,-0.049,-0.045,-0.041,-0.037,-0.034,-0.03,-0.027,-0.023,-0.02,-0.017,-0.015,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.001,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,-0.002,-0.009,-0.018,-0.032,-0.049,-0.069,-0.09,-0.12,-0.15,-0.18,-0.22,-0.26,-0.3,-0.33,-0.36,-0.38,-0.404,-0.418,-0.427,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.429,-0.43,-0.43,-0.43,-0.428,-0.43,-0.43,-0.427,-0.43,-0.426,-0.43,-0.425,-0.42,-0.424,-0.42,-0.423,-0.42,-0.421,-0.421,-0.42,-0.42,-0.418,-0.418,-0.417,-0.416,-0.415,-0.41,-0.413,-0.412,-0.411,-0.41,-0.34,-0.22,-0.11,-0.03,0,0,0,0,0,0,-0.03,-0.1,-0.18,-0.27,-0.35,-0.41,-0.45,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.467,-0.458,-0.444,-0.425,-0.4,-0.38,-0.35,-0.32,-0.28,-0.25,-0.22,-0.19,-0.15,-0.12,-0.09,-0.07,-0.04,-0.026,-0.012,-0.003,0\r\r\nPARAM_BROW_R_Y=0,-0.003,-0.01,-0.02,-0.035,-0.052,-0.07,-0.1,-0.12,-0.15,-0.18,-0.22,-0.26,-0.29,-0.32,-0.34,-0.364,-0.38,-0.391,-0.398,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.399,-0.4,-0.4,-0.4,-0.398,-0.4,-0.397,-0.4,-0.396,-0.4,-0.395,-0.394,-0.39,-0.392,-0.392,-0.391,-0.39,-0.39,-0.388,-0.387,-0.386,-0.385,-0.384,-0.383,-0.381,-0.38,-0.379,-0.377,-0.376,-0.375,-0.373,-0.372,-0.37,-0.3,-0.2,-0.1,-0.03,0,0,0,0,0,0,-0.03,-0.09,-0.17,-0.26,-0.33,-0.39,-0.43,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.447,-0.438,-0.425,-0.407,-0.39,-0.36,-0.33,-0.3,-0.27,-0.24,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.025,-0.012,-0.003,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.201,0.203,0.206,0.21,0.215,0.222,0.231,0.242,0.255,0.27,0.29,0.31,0.34,0.36,0.38,0.4,0.416,0.426,0.43,0.43,0.43,0.428,0.427,0.426,0.424,0.422,0.419,0.417,0.414,0.411,0.407,0.404,0.4,0.396,0.392,0.387,0.383,0.378,0.374,0.369,0.364,0.359,0.354,0.349,0.344,0.338,0.333,0.328,0.323,0.318,0.313,0.307,0.302,0.298,0.293,0.288,0.283,0.279,0.274,0.27,0.266,0.262,0.258,0.255,0.251,0.248,0.245,0.242,0.24,0.238,0.236,0.234,0.233,0.231,0.231,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.228,0.227,0.226,0.224,0.222,0.22,0.218,0.216,0.214,0.212,0.21,0.208,0.206,0.204,0.203,0.202,0.201,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.499,-0.495,-0.49,-0.482,-0.472,-0.46,-0.446,-0.43,-0.412,-0.392,-0.37,-0.35,-0.32,-0.29,-0.26,-0.23,-0.19,-0.16,-0.12,-0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.069,0.07,0.068,0.07,0.07,0.067,0.07,0.065,0.065,0.06,0.064,0.063,0.06,0.062,0.061,0.06,0.059,0.059,0.058,0.057,0.06,0.055,0.055,0.054,0.05,0.052,0.051,0.051,0.05,0.05,0.048,0.048,0.05,0.046,0.046,0.05,0.045,0.044,0.04,0.043,0.04,0.04,0.042,0.04,0.041,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.023,-0.02,-0.08,-0.15,-0.22,-0.29,-0.36,-0.41,-0.46,-0.49,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.9,0.9,0.9,0.9,0.899,0.9,0.898,0.897,0.896,0.894,0.893,0.892,0.89,0.888,0.886,0.883,0.881,0.878,0.875,0.872,0.868,0.864,0.86,0.81,0.7,0.57,0.44,0.33,0.26,0.24,0.238,0.237,0.235,0.234,0.233,0.232,0.23,0.229,0.228,0.228,0.227,0.226,0.23,0.224,0.224,0.22,0.223,0.22,0.222,0.22,0.22,0.221,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.228,0.248,0.28,0.3,0.322,0.33,0.14,-0.15,-0.43,-0.63,-0.71,-0.42,0.03,0.46,0.77,0.89,0.81,0.67,0.55,0.46,0.42,0.54,0.75,0.87,0.873,0.876,0.879,0.881,0.884,0.886,0.888,0.89,0.891,0.893,0.894,0.895,0.896,0.897,0.898,0.9,0.899,0.9,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.36,0.58,0.8,1,1.19,1.35,1.49,1.61,1.71,1.79,1.86,1.91,1.94,1.97,1.988,1.997,2,1.982,1.93,1.85,1.75,1.62,1.48,1.33,1.17,1,0.83,0.67,0.52,0.38,0.25,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.68,-1.34,-2.04,-2.63,-3,-3.21,-3.39,-3.53,-3.65,-3.75,-3.83,-3.89,-3.93,-3.96,-3.981,-3.993,-3.998,-4,-3.96,-3.86,-3.7,-3.49,-3.25,-2.96,-2.66,-2.33,-2,-1.67,-1.34,-1.04,-0.75,-0.51,-0.3,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.006,0.013,0.021,0.032,0.044,0.056,0.07,0.083,0.097,0.11,0.122,0.134,0.144,0.153,0.16,0.166,0.169,0.17,0.168,0.164,0.157,0.148,0.138,0.126,0.113,0.099,0.085,0.071,0.057,0.044,0.032,0.022,0.013,0.006,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.503,0.512,0.527,0.545,0.57,0.59,0.62,0.65,0.68,0.71,0.75,0.78,0.81,0.84,0.87,0.9,0.92,0.94,0.963,0.979,0.99,0.997,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0.002,0.006,0.014,0.024,0.037,0.052,0.069,0.087,0.107,0.13,0.15,0.17,0.2,0.22,0.25,0.27,0.3,0.32,0.34,0.36,0.385,0.405,0.423,0.44,0.455,0.468,0.479,0.488,0.495,0.499,0.5,0.497,0.489,0.478,0.463,0.446,0.427,0.407,0.388,0.368,0.349,0.33,0.314,0.299,0.287,0.278,0.272,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.272,0.276,0.283,0.292,0.303,0.316,0.33,0.345,0.361,0.377,0.393,0.409,0.425,0.44,0.454,0.467,0.478,0.487,0.494,0.498,0.5\r\r\nPARAM_BOING=0,0,-0.003,-0.007,-0.012,-0.019,-0.026,-0.034,-0.042,-0.051,-0.06,-0.07,-0.079,-0.088,-0.096,-0.104,-0.111,-0.118,-0.123,-0.127,-0.129,-0.13,-0.04,0.1,0.2,0.23,0.2,0.11,0.01,-0.08,-0.16,-0.21,-0.23,-0.17,-0.08,0,0.07,0.09,0.083,0.067,0.05,0.02,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.027,0.042,0.058,0.074,0.088,0.101,0.111,0.118,0.12,0.118,0.114,0.108,0.101,0.092,0.082,0.072,0.061,0.051,0.041,0.032,0.023,0.015,0.009,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.18,-0.29,-0.41,-0.52,-0.61,-0.68,-0.7,-0.68,-0.62,-0.54,-0.47,-0.42,-0.38,-0.37,-0.377,-0.389,-0.399,-0.407,-0.41,-0.405,-0.39,-0.37,-0.34,-0.3,-0.27,-0.23,-0.19,-0.15,-0.12,-0.08,-0.06,-0.03,-0.015,-0.004,0\r\r\nPARAM_HAIR_SIDE_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012,0.04,0.08,0.13,0.18,0.23,0.27,0.31,0.34,0.363,0.37,0.365,0.353,0.334,0.31,0.28,0.25,0.22,0.19,0.16,0.13,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.28,-0.38,-0.49,-0.58,-0.64,-0.66,-0.657,-0.65,-0.637,-0.621,-0.601,-0.58,-0.55,-0.52,-0.49,-0.46,-0.42,-0.39,-0.35,-0.32,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.07,-0.05,-0.033,-0.019,-0.009,-0.002,0\r\r\nPARAM_HAIR_SIDE_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.15,-0.23,-0.32,-0.41,-0.49,-0.56,-0.62,-0.66,-0.67,-0.662,-0.64,-0.6,-0.56,-0.51,-0.46,-0.4,-0.34,-0.28,-0.23,-0.18,-0.13,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.06,0.11,0.18,0.26,0.33,0.38,0.42,0.44,0.438,0.433,0.425,0.414,0.4,0.385,0.367,0.347,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.081,0.063,0.048,0.034,0.022,0.013,0.006,0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.16,-0.25,-0.35,-0.44,-0.53,-0.61,-0.67,-0.71,-0.72,-0.67,-0.53,-0.36,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.35,0.52,0.67,0.79,0.88,0.91,0.81,0.61,0.35,0.09,-0.16,-0.36,-0.49,-0.54,-0.49,-0.37,-0.23,-0.09,0.05,0.16,0.23,0.26,0.252,0.23,0.2,0.17,0.13,0.1,0.07,0.04,0.02,0.005,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.002,-0.007,-0.014,-0.025,-0.037,-0.052,-0.067,-0.084,-0.102,-0.121,-0.139,-0.158,-0.176,-0.193,-0.208,-0.223,-0.235,-0.246,-0.253,-0.258,-0.26,-0.245,-0.2,-0.15,-0.07,0.01,0.09,0.18,0.26,0.34,0.41,0.46,0.51,0.54,0.55,0.55,0.55,0.549,0.548,0.547,0.545,0.543,0.541,0.538,0.535,0.531,0.527,0.523,0.518,0.512,0.506,0.499,0.492,0.484,0.475,0.466,0.456,0.445,0.434,0.422,0.409,0.395,0.38,0.365,0.349,0.331,0.313,0.294,0.26,0.21,0.16,0.1,0.04,-0.02,-0.07,-0.12,-0.15,-0.17,-0.18,-0.179,-0.177,-0.172,-0.167,-0.161,-0.153,-0.145,-0.136,-0.127,-0.117,-0.107,-0.096,-0.086,-0.076,-0.066,-0.056,-0.047,-0.038,-0.03,-0.023,-0.016,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_WING_DEFORM=0,0,0.003,0.007,0.012,0.019,0.026,0.034,0.042,0.051,0.06,0.07,0.079,0.088,0.096,0.104,0.111,0.118,0.123,0.127,0.129,0.13,0.115,0.08,0.02,-0.05,-0.13,-0.21,-0.3,-0.38,-0.45,-0.52,-0.58,-0.62,-0.65,-0.66,-0.66,-0.657,-0.653,-0.648,-0.641,-0.633,-0.625,-0.615,-0.604,-0.593,-0.58,-0.568,-0.555,-0.541,-0.527,-0.514,-0.5,-0.486,-0.472,-0.459,-0.445,-0.433,-0.421,-0.409,-0.398,-0.389,-0.38,-0.372,-0.366,-0.36,-0.356,-0.354,-0.353,-0.36,-0.377,-0.4,-0.43,-0.45,-0.48,-0.51,-0.53,-0.545,-0.556,-0.56,-0.557,-0.549,-0.537,-0.52,-0.5,-0.48,-0.45,-0.42,-0.39,-0.36,-0.33,-0.3,-0.27,-0.24,-0.21,-0.17,-0.15,-0.12,-0.09,-0.07,-0.051,-0.033,-0.019,-0.009,-0.002,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Breath9.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-1.03,-3.8,-7.8,-12.55,-17.45,-22.2,-26.2,-28.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.49,-24.11,-18.84,-13.8,-9.26,-5.48,-2.54,-0.67,0\r\r\nPARAM_ANGLE_Y=0,1.03,3.8,7.8,12.55,17.45,22.2,26.2,28.97,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.35,23.47,18.06,13.07,8.69,5.1,2.35,0.62,0\r\r\nPARAM_ANGLE_Z=0,0.39,1.42,2.93,4.74,6.63,8.5,10.14,11.36,12,12.27,12.53,12.77,13,13.21,13.4,13.58,13.75,13.91,14.05,14.18,14.3,14.4,14.5,14.59,14.66,14.73,14.79,14.84,14.88,14.91,14.94,14.96,14.981,14.992,14.998,15,14.989,14.96,14.9,14.83,14.74,14.62,14.49,14.34,14.17,13.98,13.77,13.55,13.3,13.04,12.76,12.46,12.15,11.82,11.47,11.1,10.72,10.31,9.89,9.46,9,8.53,8.03,7.52,7,6.37,4.76,3.48,2.42,1.55,0.88,0.39,0.1,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.563,0.6,0.65,0.71,0.78,0.84,0.89,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.927,0.925,0.923,0.922,0.92,0.83,0.68,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.563,0.6,0.65,0.71,0.78,0.84,0.89,0.93,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.936,0.927,0.912,0.893,0.87,0.85,0.83,0.81,0.787,0.77,0.756,0.746,0.74,0.736,0.732,0.729,0.727,0.725,0.723,0.722,0.721,0.721,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.77,0.85,0.9,0.92,0.83,0.68,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0,0.002,0.003,0.006,0.009,0.013,0.018,0.023,0.028,0.035,0.041,0.048,0.056,0.064,0.072,0.081,0.09,0.099,0.109,0.118,0.128,0.138,0.149,0.159,0.169,0.18,0.19,0.201,0.211,0.221,0.232,0.242,0.252,0.261,0.271,0.28,0.29,0.298,0.307,0.315,0.323,0.33,0.337,0.344,0.35,0.356,0.361,0.366,0.37,0.374,0.377,0.379,0.381,0.382,0.38,0.383,0.38,0.383,0.38,0.382,0.38,0.381,0.38,0.38,0.38,0.38,0.36,0.3,0.23,0.16,0.1,0.05,0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0,-0.001,-0.002,-0.004,-0.006,-0.009,-0.012,-0.016,-0.019,-0.023,-0.028,-0.033,-0.038,-0.043,-0.049,-0.054,-0.06,-0.066,-0.072,-0.078,-0.085,-0.091,-0.098,-0.104,-0.111,-0.117,-0.123,-0.13,-0.136,-0.142,-0.148,-0.154,-0.159,-0.165,-0.17,-0.175,-0.18,-0.184,-0.189,-0.192,-0.196,-0.199,-0.202,-0.204,-0.206,-0.208,-0.209,-0.21,-0.21,-0.209,-0.208,-0.206,-0.203,-0.2,-0.196,-0.192,-0.189,-0.185,-0.181,-0.178,-0.175,-0.173,-0.171,-0.17,-0.17,-0.17,-0.159,-0.13,-0.1,-0.07,-0.05,-0.02,-0.006,0\r\r\nPARAM_BROW_L_Y=0,-0.015,-0.06,-0.12,-0.19,-0.26,-0.33,-0.39,-0.43,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.445,-0.37,-0.29,-0.22,-0.15,-0.09,-0.04,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.016,-0.06,-0.12,-0.2,-0.27,-0.35,-0.41,-0.45,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.466,-0.39,-0.31,-0.23,-0.16,-0.09,-0.04,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.38,-0.51,-0.6,-0.67,-0.72,-0.76,-0.78,-0.796,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.781,-0.58,-0.4,-0.23,-0.09,0.03,0.12,0.18,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.11,0.15,0.18,0.2,0.217,0.228,0.235,0.239,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.19,0.09,-0.04,-0.18,-0.3,-0.41,-0.47,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.899,0.896,0.892,0.887,0.883,0.878,0.874,0.871,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.85,0.85,0.857,0.867,0.877,0.886,0.893,0.898,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.011,0.024,0.042,0.06,0.09,0.11,0.14,0.18,0.21,0.25,0.28,0.32,0.36,0.39,0.43,0.46,0.5,0.53,0.56,0.59,0.62,0.64,0.67,0.685,0.7,0.711,0.718,0.72,0.72,0.718,0.716,0.713,0.708,0.702,0.694,0.685,0.674,0.66,0.645,0.627,0.607,0.58,0.56,0.53,0.5,0.44,0.36,0.27,0.19,0.11,0.05,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,0.04,0.17,0.35,0.59,0.85,1.14,1.44,1.73,2,2.25,2.48,2.71,2.92,3.11,3.3,3.47,3.64,3.79,3.93,4.07,4.19,4.3,4.41,4.5,4.59,4.66,4.73,4.79,4.84,4.88,4.92,4.95,4.97,4.988,4.997,5,4.999,4.995,4.988,4.98,4.968,4.954,4.938,4.92,4.9,4.88,4.85,4.82,4.79,4.76,4.73,4.69,4.65,4.61,4.56,4.52,4.47,4.42,4.37,4.31,4.25,4.19,4.13,4.07,4,3.79,2.96,2.23,1.59,1.05,0.61,0.28,0.07,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.07,0.25,0.52,0.84,1.16,1.48,1.75,1.93,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.004,2.015,2.034,2.06,2.09,2.12,2.16,2.2,2.25,2.29,2.34,2.39,2.44,2.49,2.54,2.6,2.64,2.69,2.74,2.78,2.82,2.86,2.9,2.93,2.95,2.972,2.987,2.997,3,2.96,2.43,1.91,1.4,0.94,0.56,0.26,0.07,0\r\r\nPARAM_BODY_Y=0,-0.02,-0.09,-0.19,-0.3,-0.42,-0.53,-0.63,-0.7,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.718,-0.716,-0.714,-0.71,-0.706,-0.701,-0.696,-0.689,-0.682,-0.675,-0.666,-0.657,-0.647,-0.637,-0.626,-0.614,-0.601,-0.588,-0.575,-0.56,-0.545,-0.529,-0.513,-0.495,-0.478,-0.459,-0.44,-0.42,-0.39,-0.29,-0.21,-0.15,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BREATH=0.5,0.517,0.56,0.63,0.71,0.79,0.87,0.94,0.98,1,0.998,0.992,0.983,0.97,0.955,0.937,0.917,0.89,0.87,0.85,0.82,0.79,0.76,0.74,0.71,0.68,0.65,0.63,0.61,0.58,0.563,0.545,0.53,0.517,0.508,0.502,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0.02,0.07,0.14,0.21,0.29,0.37,0.45,0.51,0.56,0.6,0.61,0.594,0.56,0.51,0.45,0.42,0.4,0.401,0.405,0.409,0.414,0.417,0.419,0.42,0.419,0.417,0.413,0.408,0.401,0.394,0.385,0.375,0.365,0.353,0.341,0.329,0.315,0.301,0.287,0.273,0.258,0.242,0.227,0.212,0.197,0.181,0.167,0.152,0.137,0.123,0.109,0.096,0.083,0.071,0.06,0.05,0.04,0.031,0.023,0.016,0.011,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.001,0.006,0.012,0.021,0.031,0.043,0.056,0.069,0.084,0.098,0.113,0.128,0.142,0.157,0.17,0.182,0.194,0.204,0.213,0.22,0.226,0.229,0.23,0.23,0.228,0.225,0.221,0.216,0.21,0.203,0.196,0.187,0.178,0.169,0.159,0.148,0.137,0.125,0.113,0.101,0.088,0.076,0.063,0.05,0.037,0.024,0.012,-0.001,-0.013,-0.025,-0.037,-0.048,-0.059,-0.069,-0.078,-0.087,-0.096,-0.103,-0.11,-0.116,-0.121,-0.125,-0.128,-0.129,-0.13,-0.129,-0.111,-0.09,-0.07,-0.05,-0.028,-0.013,-0.003,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-0.998,-0.997,-0.995,-0.993,-0.99,-0.987,-0.984,-0.98,-0.976,-0.972,-0.967,-0.961,-0.956,-0.95,-0.943,-0.936,-0.929,-0.921,-0.913,-0.905,-0.896,-0.887,-0.877,-0.867,-0.856,-0.845,-0.834,-0.822,-0.81,-0.798,-0.785,-0.771,-0.758,-0.744,-0.729,-0.714,-0.698,-0.683,-0.667,-0.65,-0.62,-0.5,-0.38,-0.27,-0.18,-0.11,-0.05,-0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.03,0.1,0.21,0.33,0.47,0.59,0.7,0.77,0.8,0.78,0.72,0.62,0.51,0.38,0.24,0.09,-0.04,-0.15,-0.25,-0.31,-0.33,-0.31,-0.26,-0.2,-0.14,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.019,-0.07,-0.14,-0.23,-0.31,-0.4,-0.47,-0.52,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.529,-0.51,-0.46,-0.42,-0.37,-0.33,-0.28,-0.24,-0.21,-0.17,-0.14,-0.12,-0.1,-0.083,-0.068,-0.055,-0.043,-0.034,-0.026,-0.019,-0.014,-0.01,-0.006,-0.004,-0.002,-0.001,0,0,0,-0.004,0,-0.003,0,-0.002,-0.001,0,0,0\r\r\nPARAM_WING_DEFORM=0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.984,0.95,0.86,0.77,0.67,0.57,0.48,0.4,0.32,0.25,0.2,0.16,0.14,0.126,0.114,0.102,0.092,0.083,0.074,0.066,0.058,0.051,0.044,0.037,0.03,0.023,0.016,0.008,0,-0.02,-0.023,-0.019,-0.015,-0.01,-0.006,-0.003,-0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Fail.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,1.13,3.86,7.5,11.14,13.87,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15.04,15.14,15.29,15.5,15.75,16.04,16.36,16.71,17.07,17.46,17.85,18.25,18.65,19.05,19.43,19.81,20.17,20.51,20.83,21.11,21.37,21.58,21.76,21.89,21.97,22,21.992,21.96,21.88,21.75,21.55,21.26,20.87,20.36,19.71,13.52,4.5,-3.78,-9.7,-12,-6.46,2.41,10.69,16.67,19,12.74,2.73,-6.62,-13.37,-16,-13.37,-6.99,0.81,8.41,14.52,18.39,19.71,19.33,18.35,16.93,15.16,13.2,11.15,9.08,7.06,5.18,3.48,2.07,0.96,0.25,0\r\r\nPARAM_ANGLE_Y=0,1.89,6.5,12.67,18.91,23.74,26,26.45,26.86,27.24,27.6,27.91,28.2,28.47,28.71,28.92,29.11,29.28,29.42,29.55,29.66,29.75,29.82,29.88,29.93,29.96,29.98,29.996,30,29.7,28.84,27.5,25.71,23.58,21.08,18.32,15.36,12.24,8.93,5.6,2.15,-1.32,-4.69,-8,-11.26,-14.31,-17.24,-19.96,-22.4,-24.57,-26.43,-27.93,-29.06,-29.76,-30,-29.89,-29.6,-29.19,-28.69,-28.18,-27.69,-27.27,-26.98,-26.87,-27.43,-28.33,-29.16,-29.77,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.95,-29.6,-28.97,-28.06,-26.87,-24.72,-22.35,-19.81,-17.17,-14.55,-12,-9.58,-7.32,-5.28,-3.5,-2.06,-0.95,-0.24,0\r\r\nPARAM_ANGLE_Z=0,-0.62,-2.15,-4.29,-6.58,-8.58,-10,-10.97,-11.85,-12.69,-13.47,-14.17,-14.82,-15.42,-15.95,-16.44,-16.87,-17.26,-17.6,-17.9,-18.15,-18.37,-18.55,-18.7,-18.81,-18.9,-18.96,-18.99,-19,-18.86,-18.48,-17.87,-17.07,-16.11,-14.99,-13.75,-12.41,-11.01,-9.52,-8.02,-6.47,-4.91,-3.39,-1.9,-0.43,0.94,2.26,3.48,4.58,5.56,6.39,7.07,7.58,7.89,8,7.998,7.988,7.96,7.92,7.85,7.74,7.6,7.41,7.17,5.69,3.66,1.82,0.51,0,0.09,0.33,0.7,1.16,1.69,2.27,2.88,3.5,4.13,4.72,5.28,5.8,6.26,6.63,6.92,7.1,7.17,7.03,6.67,6.15,5.51,4.8,4.05,3.3,2.57,1.88,1.26,0.75,0.35,0.09,0\r\r\nPARAM_EMOTION=-0.69,-0.69,-0.69,-0.69,-0.689,-0.69,-0.687,-0.687,-0.686,-0.685,-0.684,-0.683,-0.682,-0.681,-0.68,-0.679,-0.677,-0.676,-0.675,-0.675,-0.674,-0.673,-0.67,-0.672,-0.671,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.671,-0.672,-0.67,-0.674,-0.675,-0.676,-0.677,-0.678,-0.679,-0.68,-0.682,-0.683,-0.684,-0.685,-0.686,-0.687,-0.687,-0.688,-0.69,-0.689,-0.69,-0.69,-0.69,-0.69,-0.688,-0.686,-0.683,-0.679,-0.675,-0.67,-0.09,-0.092,-0.096,-0.099,-0.102,-0.105,-0.108,-0.111,-0.113,-0.115,-0.118,-0.119,-0.121,-0.123,-0.124,-0.125,-0.127,-0.128,-0.128,-0.13,-0.129,-0.13,-0.13,-0.13,-0.128,-0.122,-0.116,-0.109,-0.104,-0.101,-0.1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.007,0.015,0.024,0.033,0.042,0.05,0.055,0.057,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.11,0.24,0.39,0.55,0.69,0.81,0.89,0.92,0.89,0.82,0.74,0.65,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.007,0.015,0.024,0.033,0.042,0.05,0.055,0.057,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.11,0.24,0.39,0.55,0.69,0.81,0.89,0.92,0.89,0.82,0.74,0.65,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.04,-0.13,-0.26,-0.39,-0.48,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.517,-0.51,-0.498,-0.483,-0.464,-0.44,-0.42,-0.39,-0.37,-0.34,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.047,-0.031,-0.018,-0.008,-0.002,0,-0.04,-0.12,-0.23,-0.34,-0.44,-0.52,-0.58,-0.6,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.587,-0.56,-0.51,-0.46,-0.4,-0.34,-0.28,-0.21,-0.16,-0.11,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.04,-0.13,-0.26,-0.38,-0.47,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.507,-0.5,-0.489,-0.474,-0.455,-0.43,-0.41,-0.39,-0.36,-0.33,-0.3,-0.27,-0.24,-0.22,-0.19,-0.16,-0.13,-0.11,-0.09,-0.06,-0.046,-0.03,-0.018,-0.008,-0.002,0,-0.04,-0.12,-0.23,-0.34,-0.44,-0.52,-0.58,-0.6,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.587,-0.56,-0.51,-0.46,-0.4,-0.34,-0.28,-0.21,-0.16,-0.11,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_ANGLE=-0.23,-0.26,-0.35,-0.46,-0.57,-0.66,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.686,-0.673,-0.653,-0.63,-0.59,-0.56,-0.52,-0.47,-0.43,-0.38,-0.33,-0.28,-0.23,-0.18,-0.13,-0.08,-0.03,0.01,0.05,0.09,0.12,0.15,0.17,0.186,0.196,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.217,0.21,0.2,0.189,0.176,0.164,0.154,0.148,0.145,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.152,0.169,0.19,0.21,0.226,0.237,0.24,0.19,0.05,-0.11,-0.27,-0.39,-0.47,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.28,0.26,0.21,0.14,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.009,0.013,0.017,0.023,0.029,0.036,0.044,0.053,0.063,0.073,0.085,0.097,0.111,0.125,0.141,0.157,0.175,0.193,0.213,0.23,0.26,0.28,0.31,0.34,0.37,0.4,0.43,0.45,0.471,0.484,0.489,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.41,0.38,0.39,0.42,0.46,0.52,0.58,0.64,0.7,0.76,0.82,0.86,0.89,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.18,-0.63,-1.26,-1.94,-2.55,-3,-3.33,-3.62,-3.9,-4.17,-4.4,-4.62,-4.82,-4.99,-5.16,-5.3,-5.43,-5.54,-5.64,-5.72,-5.79,-5.85,-5.9,-5.94,-5.97,-5.986,-5.996,-6,-5.96,-5.85,-5.67,-5.43,-5.14,-4.81,-4.44,-4.05,-3.63,-3.19,-2.75,-2.29,-1.82,-1.38,-0.93,-0.5,-0.09,0.3,0.66,0.99,1.28,1.52,1.72,1.87,1.97,2,1.993,1.974,1.95,1.91,1.88,1.85,1.82,1.799,1.792,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.79,1.76,1.67,1.54,1.38,1.2,1.01,0.83,0.64,0.47,0.32,0.19,0.09,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.75,2.58,5,7.42,9.25,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.92,9.69,9.33,8.86,8.29,7.62,6.89,6.1,5.26,4.38,3.49,2.57,1.65,0.75,-0.13,-1,-1.82,-2.6,-3.32,-3.97,-4.55,-5.05,-5.45,-5.75,-5.94,-6,-5.98,-5.92,-5.84,-5.74,-5.64,-5.54,-5.45,-5.4,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.37,-5.27,-5.01,-4.62,-4.14,-3.6,-3.04,-2.48,-1.93,-1.41,-0.95,-0.57,-0.26,-0.07,0\r\r\nPARAM_BODY_Y=0,0.04,0.14,0.28,0.42,0.52,0.56,0.56,0.56,0.56,0.558,0.558,0.557,0.555,0.554,0.552,0.55,0.548,0.546,0.543,0.541,0.538,0.534,0.531,0.527,0.524,0.52,0.515,0.511,0.506,0.501,0.495,0.49,0.484,0.478,0.472,0.465,0.458,0.451,0.444,0.436,0.428,0.42,0.412,0.403,0.394,0.385,0.375,0.365,0.355,0.345,0.334,0.323,0.312,0.3,0.287,0.273,0.258,0.244,0.23,0.218,0.209,0.202,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.196,0.186,0.172,0.154,0.134,0.11,0.09,0.07,0.053,0.035,0.021,0.01,0.003,0\r\r\nPARAM_BREATH=0.5,0.54,0.63,0.75,0.87,0.96,1,0.999,0.995,0.989,0.98,0.97,0.957,0.942,0.926,0.908,0.888,0.87,0.84,0.82,0.79,0.77,0.74,0.71,0.68,0.65,0.62,0.59,0.56,0.53,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.21,0.18,0.16,0.13,0.11,0.092,0.074,0.058,0.043,0.03,0.02,0.011,0.005,0.001,0,0.002,0.007,0.014,0.022,0.03,0.039,0.045,0.05,0.052,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.061,0.08,0.12,0.16,0.2,0.25,0.29,0.34,0.38,0.42,0.45,0.48,0.494,0.5\r\r\nPARAM_BOING=0,0.06,0.21,0.4,0.59,0.74,0.8,0.61,0.3,0.02,-0.19,-0.27,-0.16,0.01,0.13,0.17,0.14,0.09,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,-0.04,-0.12,-0.18,-0.23,-0.25,-0.247,-0.238,-0.226,-0.21,-0.191,-0.17,-0.15,-0.13,-0.11,-0.09,-0.066,-0.048,-0.032,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.89,0.64,0.33,0.01,-0.28,-0.52,-0.68,-0.74,-0.73,-0.71,-0.68,-0.64,-0.61,-0.58,-0.55,-0.53,-0.51,-0.491,-0.477,-0.464,-0.454,-0.443,-0.433,-0.422,-0.41,-0.395,-0.379,-0.359,-0.34,-0.31,-0.27,-0.22,-0.17,-0.11,-0.04,0.03,0.11,0.18,0.25,0.33,0.39,0.46,0.51,0.56,0.61,0.64,0.67,0.685,0.69,0.684,0.666,0.64,0.6,0.55,0.5,0.44,0.33,0.22,-0.12,-0.38,-0.58,-0.71,-0.76,-0.6,-0.34,0.1,0.38,0.49,0.4,0.18,-0.11,-0.41,-0.63,-0.72,-0.62,-0.37,-0.05,0.27,0.52,0.62,0.608,0.57,0.52,0.46,0.39,0.31,0.23,0.16,0.1,0.05,0.01,0\r\r\nPARAM_HAIR_SIDE_R=0,0,0,0,-0.003,-0.007,-0.013,-0.022,-0.034,-0.05,-0.09,-0.15,-0.22,-0.29,-0.36,-0.43,-0.49,-0.54,-0.59,-0.63,-0.66,-0.674,-0.684,-0.689,-0.69,-0.69,-0.69,-0.687,-0.683,-0.676,-0.667,-0.653,-0.637,-0.62,-0.59,-0.56,-0.53,-0.49,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.14,-0.09,-0.05,-0.01,0.03,0.06,0.09,0.12,0.14,0.157,0.17,0.177,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.179,0.171,0.156,0.13,0.09,-0.03,-0.17,-0.25,-0.28,-0.22,-0.07,0.13,0.32,0.47,0.53,0.525,0.512,0.493,0.47,0.44,0.4,0.37,0.33,0.29,0.25,0.21,0.17,0.14,0.11,0.08,0.05,0.03,0.014,0.004,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.013,-0.05,-0.1,-0.16,-0.22,-0.28,-0.33,-0.37,-0.38,-0.36,-0.31,-0.24,-0.16,-0.07,0.02,0.12,0.22,0.33,0.41,0.46,0.49,0.51,0.518,0.52,0.517,0.507,0.491,0.47,0.44,0.41,0.37,0.32,0.28,0.22,0.17,0.11,0.05,-0.02,-0.09,-0.16,-0.22,-0.27,-0.33,-0.37,-0.42,-0.46,-0.49,-0.52,-0.55,-0.57,-0.589,-0.604,-0.616,-0.624,-0.628,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.625,-0.611,-0.59,-0.55,-0.35,-0.08,0.09,0.15,0.1,-0.02,-0.18,-0.33,-0.45,-0.5,-0.496,-0.483,-0.465,-0.44,-0.41,-0.38,-0.35,-0.31,-0.27,-0.24,-0.2,-0.16,-0.13,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.87,0.56,0.18,-0.19,-0.49,-0.68,-0.74,-0.71,-0.63,-0.51,-0.37,-0.23,-0.1,0.01,0.1,0.15,0.17,0.167,0.157,0.144,0.127,0.108,0.087,0.068,0.049,0.033,0.019,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.33,-0.52,-0.66,-0.71,-0.5,-0.17,0.14,0.36,0.45,0.32,0.12,-0.08,-0.22,-0.27,-0.265,-0.248,-0.22,-0.18,-0.13,-0.07,0,0.1,0.19,0.23,0.223,0.204,0.18,0.15,0.12,0.09,0.06,0.04,0.017,0.005,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.05,-0.19,-0.36,-0.53,-0.67,-0.72,-0.718,-0.713,-0.705,-0.693,-0.679,-0.662,-0.642,-0.62,-0.6,-0.57,-0.54,-0.51,-0.48,-0.44,-0.41,-0.37,-0.33,-0.29,-0.25,-0.21,-0.17,-0.13,-0.09,-0.04,0,0.04,0.08,0.12,0.16,0.2,0.24,0.28,0.32,0.35,0.39,0.42,0.45,0.48,0.51,0.53,0.55,0.572,0.589,0.603,0.615,0.623,0.628,0.63,0.629,0.626,0.622,0.616,0.608,0.599,0.589,0.577,0.564,0.551,0.535,0.52,0.503,0.485,0.467,0.448,0.428,0.408,0.39,0.367,0.35,0.33,0.3,0.28,0.26,0.242,0.22,0.202,0.182,0.163,0.145,0.127,0.11,0.095,0.079,0.066,0.053,0.041,0.031,0.022,0.014,0.008,0.004,0.001,0\r\r\nPARAM_WING_DEFORM=0,0.04,0.12,0.24,0.35,0.43,0.47,0.469,0.466,0.461,0.454,0.446,0.436,0.424,0.411,0.396,0.38,0.363,0.345,0.326,0.306,0.28,0.26,0.24,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.04,0.02,0,-0.03,-0.05,-0.08,-0.1,-0.12,-0.14,-0.17,-0.186,-0.205,-0.223,-0.24,-0.256,-0.271,-0.284,-0.296,-0.306,-0.314,-0.321,-0.326,-0.329,-0.33,-0.33,-0.328,-0.326,-0.323,-0.319,-0.314,-0.308,-0.302,-0.296,-0.288,-0.28,-0.272,-0.263,-0.254,-0.244,-0.235,-0.224,-0.214,-0.203,-0.192,-0.181,-0.171,-0.159,-0.149,-0.138,-0.127,-0.116,-0.106,-0.095,-0.086,-0.076,-0.067,-0.058,-0.05,-0.042,-0.034,-0.028,-0.022,-0.016,-0.011,-0.007,-0.004,-0.002,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Sleeping.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=10,10.007,10.026,10.06,10.1,10.15,10.22,10.29,10.37,10.46,10.56,10.66,10.77,10.88,11,11.12,11.25,11.38,11.51,11.64,11.78,11.92,12.05,12.19,12.32,12.45,12.58,12.71,12.84,12.96,13.08,13.19,13.3,13.4,13.49,13.58,13.67,13.74,13.81,13.86,13.91,13.95,13.98,13.994,14,13.93,13.75,13.48,13.16,12.84,12.52,12.25,12.07,12,12.03,12.12,12.25,12.4,12.56,12.7,12.83,12.92,12.98,13,12.987,12.95,12.9,12.83,12.76,12.67,12.59,12.5,12.4,12.31,12.23,12.14,12.07,12,11.93,11.86,11.79,11.73,11.67,11.61,11.55,11.5,11.45,11.4,11.35,11.31,11.26,11.22,11.18,11.14,11.1,11.07,11.03,11,10.97,10.93,10.9,10.87,10.85,10.82,10.8,10.77,10.75,10.73,10.71,10.69,10.669,10.648,10.63,10.61,10.59,10.56,10.54,10.52,10.49,10.47,10.44,10.41,10.38,10.34,10.31,10.27,10.23,10.19,10.15,10.1,10.05,10,9.92,9.79,9.62,9.41,9.17,8.88,8.57,8.23,7.85,7.44,7.02,6.57,6.11,5.63,5.14,4.63,4.11,3.58,3.05,2.52,1.99,1.46,0.93,0.41,-0.11,-0.62,-1.11,-1.59,-2.06,-2.51,-2.93,-3.34,-3.72,-4.08,-4.42,-4.72,-5,-5.28,-5.52,-5.75,-5.95,-6.13,-6.28,-6.42,-6.53,-6.63,-6.72,-6.79,-6.84,-6.89,-6.92,-6.95,-6.97,-6.984,-6.992,-6.997,-6.999,-7,-7,-6.95,-6.82,-6.61,-6.32,-5.97,-5.56,-5.09,-4.57,-4.02,-3.42,-2.79,-2.13,-1.45,-0.74,-0.04,0.68,1.41,2.13,2.85,3.55,4.24,4.92,5.57,6.2,6.78,7.33,7.85,8.32,8.74,9.1,9.41,9.66,9.85,9.96,10\r\r\nPARAM_ANGLE_Y=-10,-10.03,-10.13,-10.29,-10.5,-10.77,-11.09,-11.45,-11.85,-12.3,-12.78,-13.3,-13.84,-14.41,-15.01,-15.62,-16.25,-16.9,-17.56,-18.22,-18.9,-19.58,-20.25,-20.94,-21.61,-22.27,-22.92,-23.56,-24.19,-24.8,-25.38,-25.94,-26.48,-26.99,-27.47,-27.92,-28.33,-28.7,-29.03,-29.31,-29.55,-29.74,-29.89,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.24,-27.26,-24.39,-21.12,-17.71,-14.54,-11.83,-9.76,-8.46,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8.13,-8.5,-9.05,-9.78,-10.63,-11.59,-12.62,-13.69,-14.8,-15.92,-17.01,-18.07,-19.08,-20,-20.85,-21.58,-22.17,-22.61,-22.9,-23,-22.96,-22.86,-22.7,-22.47,-22.2,-21.87,-21.5,-21.08,-20.64,-20.16,-19.65,-19.12,-18.57,-18.01,-17.44,-16.86,-16.28,-15.71,-15.14,-14.58,-14.04,-13.52,-13.02,-12.55,-12.1,-11.69,-11.32,-10.99,-10.7,-10.46,-10.26,-10.12,-10.03,-10,-10.005,-10.021,-10.05,-10.08,-10.13,-10.18,-10.25,-10.33,-10.41,-10.51,-10.61,-10.72,-10.84,-10.97,-11.11,-11.26,-11.41,-11.58,-11.75,-11.93,-12.12,-12.31,-12.51,-12.72,-12.94,-13.16,-13.39,-13.62,-13.87,-14.11,-14.36,-14.63,-14.89,-15.16,-15.44,-15.71,-16,-16.31,-16.59,-16.86,-17.12,-17.35,-17.56,-17.76,-17.94,-18.1,-18.25,-18.38,-18.5,-18.6,-18.69,-18.77,-18.83,-18.89,-18.93,-18.96,-18.98,-18.996,-19,-18.98,-18.91,-18.79,-18.64,-18.46,-18.24,-17.99,-17.72,-17.42,-17.1,-16.77,-16.42,-16.06,-15.69,-15.31,-14.93,-14.55,-14.16,-13.78,-13.42,-13.05,-12.69,-12.35,-12.01,-11.7,-11.41,-11.14,-10.89,-10.67,-10.47,-10.31,-10.18,-10.08,-10.02,-10\r\r\nPARAM_ANGLE_Z=7,7.006,7.025,7.06,7.1,7.15,7.22,7.3,7.38,7.48,7.59,7.71,7.84,7.98,8.12,8.28,8.44,8.62,8.8,8.99,9.2,9.4,9.62,9.84,10.07,10.31,10.55,10.81,11.06,11.33,11.6,11.88,12.16,12.45,12.75,13.05,13.36,13.67,13.99,14.31,14.64,14.97,15.31,15.65,16,16.32,16.56,16.74,16.86,16.94,16.98,16.997,17.001,17,16.75,16.09,15.12,14.01,12.83,11.71,10.72,9.91,9.33,9,8.76,8.57,8.41,8.27,8.14,8.03,7.93,7.82,7.72,7.6,7.48,7.34,7.18,7,6.77,6.54,6.32,6.1,5.88,5.67,5.47,5.28,5.1,4.92,4.76,4.61,4.48,4.36,4.25,4.16,4.09,4.04,4.01,4,4.008,4.03,4.07,4.12,4.19,4.26,4.35,4.44,4.55,4.66,4.77,4.9,5.02,5.15,5.28,5.42,5.55,5.68,5.81,5.94,6.07,6.19,6.3,6.41,6.51,6.61,6.7,6.77,6.84,6.89,6.94,6.97,6.993,7,6.982,6.93,6.84,6.72,6.57,6.39,6.18,5.96,5.7,5.42,5.12,4.8,4.46,4.11,3.74,3.36,2.97,2.56,2.15,1.74,1.31,0.89,0.46,0.03,-0.4,-0.83,-1.25,-1.66,-2.08,-2.48,-2.87,-3.26,-3.63,-4,-4.35,-4.68,-5,-5.33,-5.61,-5.86,-6.09,-6.28,-6.44,-6.58,-6.69,-6.79,-6.86,-6.92,-6.96,-6.99,-7.011,-7.021,-7.025,-7.023,-7.019,-7.013,-7.007,-7.002,-7,-6.96,-6.85,-6.68,-6.44,-6.16,-5.81,-5.43,-5,-4.55,-4.05,-3.53,-2.99,-2.43,-1.85,-1.27,-0.68,-0.07,0.52,1.11,1.69,2.26,2.82,3.35,3.87,4.35,4.8,5.23,5.61,5.96,6.26,6.52,6.72,6.87,6.97,7\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94\r\r\nPARAM_EYE_R_OPEN=0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46\r\r\nPARAM_BROW_R_Y=-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46\r\r\nPARAM_BROW_ANGLE=0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=-0.36,-0.362,-0.366,-0.373,-0.382,-0.394,-0.407,-0.421,-0.437,-0.454,-0.472,-0.489,-0.508,-0.526,-0.544,-0.561,-0.578,-0.593,-0.607,-0.62,-0.632,-0.642,-0.649,-0.655,-0.659,-0.66,-0.66,-0.66,-0.658,-0.656,-0.654,-0.651,-0.648,-0.644,-0.639,-0.634,-0.627,-0.621,-0.613,-0.605,-0.596,-0.587,-0.576,-0.565,-0.553,-0.541,-0.527,-0.513,-0.498,-0.482,-0.465,-0.448,-0.429,-0.41,-0.38,-0.36,-0.32,-0.29,-0.25,-0.2,-0.16,-0.11,-0.06,0,0.08,0.17,0.25,0.34,0.43,0.51,0.59,0.66,0.72,0.77,0.82,0.85,0.87,0.88,0.879,0.875,0.869,0.86,0.849,0.835,0.82,0.802,0.782,0.76,0.73,0.71,0.68,0.65,0.61,0.58,0.54,0.5,0.46,0.41,-0.31,-0.331,-0.351,-0.37,-0.389,-0.407,-0.425,-0.441,-0.458,-0.473,-0.488,-0.502,-0.515,-0.528,-0.54,-0.552,-0.562,-0.572,-0.582,-0.591,-0.599,-0.607,-0.614,-0.62,-0.626,-0.631,-0.635,-0.639,-0.643,-0.645,-0.647,-0.649,-0.65,-0.65,-0.65,-0.648,-0.646,-0.643,-0.639,-0.634,-0.629,-0.622,-0.616,-0.609,-0.601,-0.593,-0.584,-0.575,-0.566,-0.556,-0.547,-0.537,-0.527,-0.516,-0.506,-0.496,-0.486,-0.476,-0.466,-0.456,-0.447,-0.438,-0.429,-0.42,-0.412,-0.405,-0.398,-0.391,-0.385,-0.379,-0.374,-0.37,-0.367,-0.364,-0.362,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=1,0.999,0.994,0.987,0.977,0.964,0.949,0.931,0.911,0.89,0.86,0.84,0.81,0.78,0.75,0.71,0.68,0.64,0.6,0.56,0.52,0.48,0.44,0.39,0.35,0.3,0.26,0.21,0.17,0.12,0.07,0.02,-0.02,-0.07,-0.12,-0.17,-0.21,-0.26,-0.3,-0.35,-0.39,-0.44,-0.48,-0.52,-0.56,-0.6,-0.64,-0.68,-0.71,-0.75,-0.78,-0.81,-0.84,-0.86,-0.89,-0.91,-0.931,-0.949,-0.964,-0.977,-0.987,-0.994,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.998,-0.992,-0.982,-0.969,-0.952,-0.931,-0.91,-0.88,-0.85,-0.82,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.43,-0.38,-0.33,-0.28,-0.22,-0.17,-0.11,-0.06,0,0.06,0.11,0.17,0.22,0.28,0.33,0.38,0.43,0.48,0.53,0.58,0.62,0.67,0.71,0.75,0.79,0.82,0.85,0.88,0.91,0.93,0.952,0.969,0.982,0.992,0.998,1,0.998,0.993,0.984,0.972,0.957,0.938,0.92,0.89,0.86,0.83,0.8,0.76,0.72,0.68,0.63,0.58,0.53,0.47,0.42,0.36,0.29,0.23,0.16,0.09,0.02,-0.05,-0.13,-0.21,-0.29,-0.37,-0.45,-0.54,-0.63,-0.72,-0.81,-0.9,-1,-1.1,-1.2,-1.29,-1.37,-1.45,-1.52,-1.59,-1.65,-1.7,-1.75,-1.79,-1.83,-1.87,-1.9,-1.92,-1.94,-1.962,-1.976,-1.987,-1.994,-1.999,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.66,-1.57,-1.47,-1.37,-1.26,-1.14,-1.02,-0.9,-0.77,-0.64,-0.52,-0.39,-0.26,-0.14,-0.02,0.1,0.22,0.33,0.43,0.53,0.62,0.7,0.78,0.84,0.9,0.94,0.97,0.993,1\r\r\nPARAM_BODY_ANGLE_Z=0,-0.005,-0.02,-0.04,-0.08,-0.12,-0.16,-0.22,-0.28,-0.35,-0.42,-0.49,-0.58,-0.66,-0.75,-0.84,-0.94,-1.03,-1.13,-1.23,-1.34,-1.44,-1.54,-1.64,-1.74,-1.84,-1.94,-2.03,-2.13,-2.22,-2.31,-2.39,-2.47,-2.55,-2.62,-2.69,-2.75,-2.8,-2.85,-2.9,-2.93,-2.96,-2.98,-2.996,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.88,-2.75,-2.6,-2.44,-2.3,-2.17,-2.08,-2.02,-2,-2.04,-2.14,-2.28,-2.46,-2.66,-2.87,-3.08,-3.28,-3.47,-3.65,-3.79,-3.9,-3.97,-4,-3.996,-3.984,-3.964,-3.94,-3.9,-3.86,-3.82,-3.76,-3.7,-3.64,-3.57,-3.5,-3.42,-3.33,-3.25,-3.15,-3.06,-2.96,-2.86,-2.76,-2.66,-2.55,-2.44,-2.33,-2.22,-2.11,-2,-1.89,-1.78,-1.67,-1.56,-1.45,-1.34,-1.24,-1.14,-1.04,-0.94,-0.85,-0.75,-0.67,-0.58,-0.5,-0.43,-0.36,-0.3,-0.24,-0.18,-0.14,-0.1,-0.06,-0.04,-0.016,-0.004,0,-0.002,-0.007,-0.016,-0.028,-0.043,-0.062,-0.08,-0.11,-0.14,-0.17,-0.2,-0.24,-0.28,-0.32,-0.37,-0.42,-0.47,-0.53,-0.58,-0.64,-0.71,-0.77,-0.84,-0.91,-0.98,-1.05,-1.13,-1.21,-1.29,-1.37,-1.45,-1.54,-1.63,-1.72,-1.81,-1.9,-2,-2.1,-2.2,-2.29,-2.37,-2.45,-2.52,-2.59,-2.65,-2.7,-2.75,-2.79,-2.83,-2.87,-2.9,-2.92,-2.94,-2.962,-2.976,-2.987,-2.994,-2.999,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0\r\r\nPARAM_BODY_Y=-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.209,-0.207,-0.202,-0.197,-0.19,-0.181,-0.172,-0.161,-0.149,-0.137,-0.123,-0.109,-0.095,-0.08,-0.065,-0.049,-0.033,-0.017,-0.001,0.015,0.03,0.046,0.06,0.075,0.089,0.102,0.114,0.126,0.136,0.146,0.155,0.162,0.168,0.173,0.177,0.179,0.18,0.179,0.178,0.175,0.172,0.167,0.162,0.155,0.148,0.141,0.132,0.123,0.114,0.104,0.093,0.083,0.072,0.06,0.048,0.036,0.024,0.012,0,-0.014,-0.027,-0.04,-0.052,-0.063,-0.074,-0.085,-0.095,-0.104,-0.113,-0.121,-0.129,-0.137,-0.144,-0.151,-0.157,-0.163,-0.168,-0.173,-0.178,-0.182,-0.186,-0.19,-0.193,-0.196,-0.199,-0.201,-0.204,-0.205,-0.207,-0.208,-0.209,-0.209,-0.21,-0.21\r\r\nPARAM_BREATH=0.5,0.499,0.497,0.494,0.489,0.483,0.476,0.468,0.458,0.448,0.437,0.425,0.413,0.399,0.385,0.371,0.356,0.341,0.325,0.309,0.293,0.277,0.26,0.244,0.228,0.211,0.195,0.179,0.164,0.149,0.134,0.12,0.106,0.093,0.08,0.068,0.057,0.047,0.038,0.029,0.022,0.015,0.01,0.006,0.003,0.001,0,0.002,0.008,0.02,0.04,0.07,0.1,0.14,0.2,0.26,0.31,0.36,0.4,0.44,0.47,0.485,0.496,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.496,0.49,0.483,0.474,0.463,0.451,0.437,0.422,0.406,0.389,0.371,0.352,0.333,0.313,0.293,0.273,0.25,0.232,0.212,0.19,0.172,0.153,0.135,0.117,0.1,0.085,0.07,0.056,0.043,0.033,0.023,0.015,0.008,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.012,0.02,0.03,0.042,0.056,0.071,0.088,0.105,0.124,0.143,0.163,0.18,0.205,0.23,0.25,0.27,0.29,0.31,0.331,0.351,0.37,0.388,0.405,0.422,0.437,0.45,0.463,0.474,0.483,0.49,0.496,0.499,0.5\r\r\nPARAM_BOING=0,0,-0.002,-0.005,-0.008,-0.013,-0.018,-0.025,-0.032,-0.04,-0.048,-0.057,-0.067,-0.078,-0.089,-0.1,-0.112,-0.125,-0.137,-0.15,-0.164,-0.177,-0.191,-0.205,-0.219,-0.233,-0.247,-0.261,-0.275,-0.289,-0.303,-0.316,-0.33,-0.343,-0.355,-0.368,-0.38,-0.391,-0.402,-0.413,-0.423,-0.432,-0.44,-0.448,-0.455,-0.462,-0.467,-0.472,-0.475,-0.478,-0.479,-0.48,-0.465,-0.42,-0.36,-0.29,-0.2,-0.12,-0.03,0.05,0.13,0.19,0.23,0.26,0.27,0.19,0.07,-0.04,-0.13,-0.16,-0.12,-0.04,0.02,0.07,0.09,0.074,0.05,0.02,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0,0.004,0.008,0.014,0.021,0.03,0.04,0.051,0.064,0.077,0.092,0.107,0.123,0.14,0.157,0.175,0.194,0.213,0.231,0.251,0.27,0.289,0.309,0.327,0.346,0.365,0.383,0.4,0.417,0.433,0.448,0.463,0.476,0.489,0.5,0.51,0.519,0.526,0.532,0.536,0.539,0.54,0.539,0.537,0.534,0.529,0.523,0.516,0.508,0.5,0.491,0.481,0.47,0.459,0.448,0.436,0.424,0.412,0.399,0.387,0.375,0.363,0.35,0.339,0.327,0.316,0.306,0.296,0.286,0.277,0.269,0.262,0.256,0.25,0.246,0.242,0.24,0.238,0.237,0.235,0.234,0.232,0.231,0.23,0.228,0.227,0.226,0.225,0.224,0.223,0.222,0.22,0.22,0.219,0.218,0.218,0.217,0.22,0.215,0.215,0.214,0.21,0.213,0.212,0.21,0.21,0.21,0.209,0.21,0.207,0.206,0.206,0.205,0.204,0.203,0.202,0.201,0.2,0.199,0.197,0.196,0.195,0.194,0.192,0.191,0.189,0.187,0.186,0.184,0.182,0.18,0.178,0.176,0.174,0.172,0.169,0.167,0.165,0.163,0.16,0.158,0.156,0.153,0.151,0.148,0.146,0.143,0.141,0.138,0.136,0.133,0.131,0.128,0.126,0.123,0.121,0.118,0.116,0.113,0.11,0.108,0.105,0.103,0.1,0.098,0.095,0.092,0.09,0.087,0.085,0.082,0.08,0.077,0.075,0.073,0.07,0.068,0.065,0.063,0.061,0.058,0.056,0.054,0.052,0.049,0.047,0.045,0.043,0.041,0.039,0.037,0.035,0.033,0.031,0.029,0.028,0.026,0.024,0.023,0.021,0.019,0.018,0.017,0.015,0.014,0.013,0.011,0.01,0.009,0.008,0.007,0.01,0.005,0.004,0.004,0.003,0,0.002,0,0.001,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.142,0.147,0.155,0.166,0.179,0.194,0.21,0.226,0.243,0.26,0.276,0.291,0.305,0.318,0.329,0.338,0.344,0.349,0.35,0.349,0.348,0.345,0.342,0.337,0.332,0.326,0.319,0.312,0.304,0.296,0.287,0.278,0.269,0.259,0.25,0.24,0.231,0.221,0.212,0.203,0.194,0.186,0.178,0.171,0.164,0.158,0.153,0.148,0.145,0.142,0.141,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.141,0.14,0.14,0.14,0.14,0.142,0.14,0.14,0.14,0.143,0.14,0.14,0.14,0.144,0.14,0.14,0.14,0.145,0.15,0.15,0.146,0.15,0.15,0.15,0.147,0.15,0.15,0.15,0.148,0.15,0.15,0.15,0.15,0.149,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.149,0.148,0.145,0.141,0.135,0.13,0.123,0.115,0.106,0.097,0.087,0.077,0.066,0.054,0.043,0.03,0.018,0.005,-0.007,-0.02,-0.033,-0.046,-0.059,-0.072,-0.085,-0.097,-0.109,-0.121,-0.132,-0.143,-0.153,-0.163,-0.172,-0.181,-0.188,-0.195,-0.202,-0.207,-0.212,-0.215,-0.218,-0.219,-0.22,-0.22,-0.218,-0.216,-0.214,-0.21,-0.206,-0.202,-0.196,-0.19,-0.184,-0.177,-0.17,-0.162,-0.154,-0.145,-0.136,-0.127,-0.117,-0.107,-0.097,-0.087,-0.077,-0.066,-0.056,-0.045,-0.035,-0.024,-0.014,-0.003,0.007,0.017,0.027,0.037,0.047,0.056,0.065,0.074,0.082,0.09,0.097,0.104,0.11,0.116,0.122,0.126,0.13,0.134,0.136,0.138,0.14,0.14\r\r\nPARAM_HAIR_SIDE_L=-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.394,-0.406,-0.424,-0.45,-0.48,-0.51,-0.54,-0.58,-0.62,-0.65,-0.69,-0.72,-0.75,-0.78,-0.8,-0.824,-0.838,-0.847,-0.85,-0.849,-0.845,-0.839,-0.831,-0.822,-0.81,-0.797,-0.782,-0.766,-0.749,-0.731,-0.712,-0.692,-0.67,-0.651,-0.63,-0.61,-0.59,-0.568,-0.55,-0.528,-0.509,-0.491,-0.474,-0.458,-0.443,-0.43,-0.418,-0.409,-0.401,-0.395,-0.391,-0.39,-0.39,-0.391,-0.393,-0.395,-0.397,-0.4,-0.404,-0.408,-0.412,-0.417,-0.422,-0.428,-0.434,-0.44,-0.447,-0.453,-0.461,-0.468,-0.475,-0.483,-0.491,-0.499,-0.507,-0.515,-0.523,-0.532,-0.54,-0.548,-0.557,-0.565,-0.573,-0.581,-0.589,-0.597,-0.605,-0.612,-0.619,-0.627,-0.633,-0.64,-0.646,-0.652,-0.658,-0.663,-0.668,-0.672,-0.676,-0.68,-0.683,-0.685,-0.687,-0.689,-0.69,-0.69,-0.689,-0.685,-0.679,-0.67,-0.659,-0.646,-0.632,-0.615,-0.597,-0.577,-0.56,-0.53,-0.51,-0.49,-0.46,-0.43,-0.41,-0.38,-0.35,-0.33,-0.3,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.04,-0.02,-0.002,0.016,0.033,0.048,0.061,0.073,0.082,0.09,0.095,0.099,0.1,0.099,0.098,0.095,0.091,0.087,0.081,0.075,0.068,0.06,0.051,0.041,0.031,0.021,0.01,-0.002,-0.014,-0.027,-0.04,-0.053,-0.067,-0.081,-0.095,-0.109,-0.123,-0.138,-0.152,-0.167,-0.181,-0.195,-0.209,-0.223,-0.237,-0.25,-0.263,-0.276,-0.288,-0.3,-0.311,-0.321,-0.331,-0.341,-0.35,-0.358,-0.365,-0.371,-0.377,-0.381,-0.385,-0.388,-0.389,-0.39\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_WING_DEFORM=0,-0.003,-0.01,-0.023,-0.039,-0.059,-0.08,-0.11,-0.14,-0.17,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.46,-0.48,-0.498,-0.511,-0.522,-0.528,-0.53,-0.529,-0.528,-0.525,-0.521,-0.516,-0.51,-0.503,-0.495,-0.486,-0.477,-0.467,-0.456,-0.445,-0.432,-0.42,-0.407,-0.393,-0.379,-0.365,-0.35,-0.335,-0.321,-0.305,-0.29,-0.275,-0.259,-0.244,-0.229,-0.214,-0.198,-0.184,-0.17,-0.155,-0.141,-0.128,-0.115,-0.103,-0.091,-0.079,-0.068,-0.058,-0.049,-0.04,-0.032,-0.025,-0.018,-0.013,-0.008,-0.005,-0.002,-0.001,0,0,-0.002,-0.004,-0.006,-0.01,-0.014,-0.018,-0.024,-0.03,-0.036,-0.043,-0.05,-0.058,-0.067,-0.075,-0.085,-0.094,-0.104,-0.114,-0.124,-0.134,-0.145,-0.156,-0.167,-0.178,-0.189,-0.2,-0.211,-0.222,-0.233,-0.244,-0.255,-0.266,-0.276,-0.286,-0.296,-0.306,-0.315,-0.325,-0.333,-0.342,-0.35,-0.357,-0.364,-0.37,-0.376,-0.382,-0.386,-0.39,-0.394,-0.396,-0.398,-0.4,-0.4,-0.4,-0.4,-0.399,-0.398,-0.397,-0.395,-0.394,-0.392,-0.39,-0.387,-0.385,-0.382,-0.379,-0.376,-0.372,-0.369,-0.365,-0.361,-0.357,-0.353,-0.348,-0.344,-0.339,-0.334,-0.329,-0.324,-0.319,-0.313,-0.308,-0.302,-0.296,-0.291,-0.285,-0.279,-0.273,-0.267,-0.261,-0.255,-0.248,-0.242,-0.236,-0.229,-0.223,-0.217,-0.21,-0.204,-0.198,-0.191,-0.185,-0.179,-0.172,-0.166,-0.16,-0.153,-0.147,-0.141,-0.135,-0.129,-0.123,-0.117,-0.111,-0.105,-0.1,-0.094,-0.089,-0.083,-0.078,-0.073,-0.068,-0.063,-0.059,-0.054,-0.05,-0.045,-0.041,-0.037,-0.034,-0.03,-0.026,-0.023,-0.02,-0.017,-0.015,-0.012,-0.01,-0.008,-0.006,-0.005,-0.003,-0.002,-0.001,-0.001,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Success.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.75,2.58,5,7.42,9.25,10,10,10,10,10,10,10,10,10,10,9.999,9.996,9.991,9.984,9.974,9.961,9.945,9.92,9.9,9.87,9.83,9.79,9.75,9.69,9.63,9.57,9.49,9.41,9.32,9.22,9.12,9,8.71,8.16,7.38,6.43,5.41,4.31,3.22,2.23,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,2.25,7.73,15,22.27,27.75,30,28.23,24.41,19.64,14.69,10.16,6.42,3.93,3,3.006,3.025,3.05,3.09,3.14,3.19,3.24,3.3,3.36,3.43,3.49,3.56,3.62,3.68,3.74,3.79,3.84,3.89,3.93,3.96,3.98,3.995,4,3.92,3.71,3.38,2.96,2.5,2,1.5,1.04,0.63,0.29,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.82,2.87,5.68,8.68,11.26,13,14.17,14.9,15.38,15.69,15.86,15.96,15.99,16,15.997,15.988,15.97,15.94,15.91,15.86,15.79,15.71,15.62,15.51,15.38,15.23,15.07,14.87,14.66,14.43,14.17,13.88,13.56,13.22,12.84,12.44,12,11.32,10.31,9.01,7.51,5.94,4.29,2.68,1.22,-0.08,-1.1,-1.76,-2,-2,-1.97,-1.9,-1.79,-1.65,-1.48,-1.29,-1.1,-0.9,-0.71,-0.52,-0.35,-0.21,-0.1,-0.03,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.52,0.45,0.36,0.27,0.2,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.171,0.173,0.176,0.18,0.21,0.26,0.33,0.4,0.46,0.5,0.54,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.52,0.45,0.36,0.27,0.2,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.171,0.173,0.176,0.18,0.21,0.26,0.33,0.4,0.46,0.5,0.54,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0.92,0.89,0.81,0.71,0.61,0.53,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.515,0.56,0.61,0.68,0.76,0.83,0.88,0.92,0.94,0.938,0.935,0.93,0.925,0.922,0.92\r\r\nPARAM_MOUTH_OPEN2=-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0.017,0.08,0.19,0.38,0.64,1,1.5,1.9,2.23,2.51,2.72,2.87,2.97,3,2.987,2.95,2.88,2.8,2.7,2.58,2.44,2.29,2.12,1.95,1.76,1.57,1.37,1.16,0.95,0.74,0.53,0.31,0.1,-0.1,-0.31,-0.51,-0.7,-0.88,-1.05,-1.22,-1.37,-1.5,-1.63,-1.74,-1.83,-1.9,-1.96,-1.99,-2,-2,-1.97,-1.9,-1.79,-1.65,-1.48,-1.29,-1.1,-0.9,-0.71,-0.52,-0.35,-0.21,-0.1,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.15,0.52,1,1.48,1.85,2,1.95,1.83,1.67,1.5,1.34,1.2,1.08,1,0.93,0.86,0.8,0.74,0.69,0.63,0.58,0.53,0.49,0.45,0.41,0.37,0.33,0.3,0.27,0.24,0.21,0.19,0.16,0.14,0.122,0.103,0.087,0.072,0.059,0.047,0.037,0.028,0.02,0.014,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,-0.001,-0.004,-0.009,-0.015,-0.022,-0.031,-0.041,-0.052,-0.063,-0.074,-0.086,-0.099,-0.111,-0.122,-0.134,-0.145,-0.155,-0.165,-0.174,-0.181,-0.188,-0.193,-0.197,-0.199,-0.2,-0.198,-0.194,-0.186,-0.175,-0.162,-0.146,-0.127,-0.11,-0.08,-0.06,-0.03,0,0.03,0.05,0.08,0.099,0.116,0.131,0.143,0.153,0.161,0.166,0.169,0.17,0.17,0.168,0.162,0.152,0.14,0.126,0.11,0.093,0.077,0.06,0.044,0.03,0.018,0.008,0.002,0\r\r\nPARAM_BREATH=0.5,0.54,0.63,0.75,0.87,0.96,1,0.999,0.997,0.993,0.987,0.98,0.972,0.963,0.953,0.941,0.929,0.915,0.901,0.887,0.871,0.855,0.838,0.822,0.805,0.787,0.77,0.752,0.735,0.717,0.7,0.683,0.666,0.65,0.634,0.619,0.604,0.59,0.577,0.565,0.553,0.543,0.533,0.525,0.517,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,0.04,0.14,0.26,0.38,0.48,0.54,0.56,0.39,0.13,-0.12,-0.3,-0.37,-0.24,-0.03,0.11,0.16,0.146,0.11,0.07,0.03,-0.01,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.017,-0.017,-0.016,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.009,-0.007,-0.006,-0.005,-0.005,-0.004,-0.003,0,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.015,-0.05,-0.09,-0.13,-0.17,-0.2,-0.22,-0.23,-0.16,0.01,0.23,0.43,0.6,0.7,0.74,0.67,0.49,0.28,0.07,-0.1,-0.2,-0.24,-0.222,-0.18,-0.12,-0.06,-0.02,0,-0.002,-0.007,-0.015,-0.026,-0.038,-0.053,-0.07,-0.087,-0.105,-0.123,-0.142,-0.16,-0.178,-0.195,-0.211,-0.225,-0.238,-0.249,-0.258,-0.265,-0.269,-0.27,-0.267,-0.257,-0.242,-0.223,-0.2,-0.17,-0.15,-0.12,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0\r\r\nPARAM_HAIR_SIDE_R=0,0.03,0.12,0.22,0.31,0.39,0.44,0.46,0.444,0.41,0.36,0.32,0.28,0.24,0.22,0.21,0.221,0.25,0.28,0.31,0.33,0.36,0.374,0.38,0.38,0.38,0.378,0.377,0.374,0.37,0.365,0.358,0.35,0.34,0.328,0.314,0.298,0.28,0.26,0.23,0.2,0.17,0.14,0.11,0.08,0.06,0.038,0.022,0.01,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.04,-0.13,-0.24,-0.36,-0.44,-0.5,-0.52,-0.48,-0.38,-0.26,-0.14,-0.03,0.07,0.13,0.15,0.11,0.02,-0.1,-0.23,-0.35,-0.45,-0.54,-0.59,-0.63,-0.67,-0.69,-0.72,-0.733,-0.747,-0.758,-0.766,-0.771,-0.775,-0.778,-0.779,-0.78,-0.78,-0.764,-0.72,-0.66,-0.58,-0.49,-0.4,-0.31,-0.23,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.016,-0.06,-0.12,-0.19,-0.26,-0.33,-0.39,-0.43,-0.46,-0.47,-0.468,-0.463,-0.454,-0.442,-0.427,-0.411,-0.392,-0.37,-0.35,-0.32,-0.3,-0.27,-0.25,-0.22,-0.2,-0.17,-0.15,-0.12,-0.1,-0.08,-0.059,-0.043,-0.028,-0.016,-0.007,-0.002,0,-0.08,-0.24,-0.32,-0.24,-0.08,0,-0.05,-0.14,-0.19,-0.05,0.19,0.33,0.33,0.326,0.314,0.296,0.27,0.24,0.21,0.18,0.15,0.12,0.09,0.06,0.03,0.016,0.004,0\r\r\nPARAM_WING_DEFORM=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.997,0.99,0.978,0.962,0.943,0.92,0.89,0.87,0.84,0.8,0.77,0.74,0.7,0.67,0.63,0.6,0.57,0.53,0.5,0.48,0.45,0.43,0.408,0.392,0.38,0.373,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.365,0.352,0.33,0.31,0.27,0.24,0.2,0.17,0.13,0.1,0.06,0.04,0.02,0.005,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Sukebei1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7.88,-22.12,-30,-14.24,14.24,30,14.24,-14.24,-30,-24.64,-16.05,-8.04,-2.25,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.07,-0.28,-0.61,-1.04,-1.56,-2.16,-2.83,-3.53,-4.27,-5.03,-5.79,-6.53,-7.26,-7.95,-8.6,-9.18,-9.71,-10.16,-10.51,-10.78,-10.94,-11,-11,-11.04,-11.14,-11.31,-11.53,-11.81,-12.13,-12.5,-12.89,-13.32,-13.76,-14.24,-14.71,-15.2,-15.68,-16.16,-16.64,-17.1,-17.54,-17.96,-18.35,-18.71,-19.03,-19.31,-19.55,-19.74,-19.88,-19.97,-20,-20,-19.41,-17.95,-16,-14.19,-12.66,-11,-9.07,-7.06,-5,-2.67,-1.37,-0.58,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=-0.69,-0.695,-0.705,-0.71,-0.703,-0.69,-0.68,-0.675,-0.671,-0.668,-0.665,-0.663,-0.662,-0.661,-0.66,-0.66,-0.66,-1,-0.987,-0.967,-0.949,-0.935,-0.93,-1,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.942,-0.947,-0.953,-0.961,-0.969,-0.977,-0.984,-0.99,-0.996,-0.999,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.543,0.523,0.49,0.45,0.41,0.36,0.31,0.26,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0,0.002,0.005,0.01,0.015,0.018,0.02,0.02,0.02,0.02,0.02,0.019,0.018,0.02,0.016,0.016,0.015,0.014,0.013,0.012,0.011,0.01,0.009,0.008,0.007,0.006,0.005,0.004,0.004,0.003,0,0.001,0.001,0,0,0,0,0,0,0,0,0,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.927,0.9,0.85,0.8,0.75,0.7,0.65,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.543,0.523,0.49,0.45,0.41,0.36,0.31,0.26,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0,0.002,0.005,0.01,0.015,0.018,0.02,0.02,0.02,0.02,0.02,0.019,0.018,0.02,0.016,0.016,0.015,0.014,0.013,0.012,0.011,0.01,0.009,0.008,0.007,0.006,0.005,0.004,0.004,0.003,0,0.001,0.001,0,0,0,0,0,0,0,0,0,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.937,0.9,0.86,0.81,0.76,0.7,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-0.986,-0.94,-0.88,-0.79,-0.68,-0.56,-0.43,-0.29,-0.14,0.01,0.17,0.32,0.47,0.62,0.76,0.89,0.9,0.84,0.7,0.52,0.35,0.22,0.13,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.24,0.47,0.69,0.84,0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-0.98,-0.91,-0.8,-0.67,-0.52,-0.34,-0.17,0.01,0.19,0.35,0.5,0.64,0.74,0.82,0.87,0.89,0.89,0.83,0.69,0.52,0.35,0.21,0.13,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.24,0.47,0.69,0.84,0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.008,0.018,0.031,0.047,0.066,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.26,0.29,0.31,0.33,0.35,0.373,0.389,0.402,0.412,0.418,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.412,0.391,0.36,0.32,0.28,0.24,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.203,-0.208,-0.213,-0.22,-0.228,-0.237,-0.246,-0.257,-0.268,-0.279,-0.291,-0.303,-0.315,-0.326,-0.338,-0.349,-0.36,-0.37,-0.38,-0.388,-0.396,-0.403,-0.409,-0.414,-0.417,-0.419,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.411,-0.38,-0.32,-0.23,-0.16,-0.11,-0.07,-0.04,-0.02,-0.004,0\r\r\nPARAM_BROW_R_Y=-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.203,-0.208,-0.213,-0.22,-0.228,-0.237,-0.246,-0.257,-0.268,-0.279,-0.291,-0.303,-0.315,-0.326,-0.338,-0.349,-0.36,-0.37,-0.38,-0.388,-0.396,-0.403,-0.409,-0.414,-0.417,-0.419,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.411,-0.38,-0.32,-0.23,-0.16,-0.11,-0.07,-0.04,-0.02,-0.004,0\r\r\nPARAM_BROW_ANGLE=-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.621,-0.622,-0.624,-0.625,-0.627,-0.628,-0.63,-0.632,-0.634,-0.637,-0.639,-0.641,-0.643,-0.645,-0.647,-0.649,-0.651,-0.653,-0.654,-0.656,-0.657,-0.658,-0.66,-0.659,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.645,-0.59,-0.47,0,0.07,0.12,0.15,0.18,0.191,0.198,0.2\r\r\nPARAM_BROW_SELECT=0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.15,0.09,0.02,-0.06,-0.15,-0.24,-0.32,-0.39,-0.45,-0.49,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.011,0.04,0.09,0.16,0.24,0.32,0.41,0.5,0.59,0.68,0.76,0.83,0.88,0.92,0.94,0.947,0.95,0.952,0.95,0.95,0.951,0.95,0.95,0.947,0.943,0.94\r\r\nPARAM_MOUTH_OPEN2=0.02,0.02,0.02,0.02,0.02,0.019,0.02,0.018,0.02,0.016,0.015,0.014,0.013,0.011,0.01,0.008,0.006,0.004,0.002,0,-0.12,-0.33,-0.47,-0.51,-0.508,-0.502,-0.492,-0.479,-0.464,-0.446,-0.425,-0.4,-0.38,-0.35,-0.33,-0.3,-0.28,-0.25,-0.22,-0.19,-0.17,-0.14,-0.12,-0.1,-0.07,-0.053,-0.035,-0.019,-0.006,0.005,0.013,0.018,0.02,0.007,-0.03,-0.08,-0.15,-0.22,-0.3,-0.39,-0.48,-0.57,-0.65,-0.73,-0.81,-0.87,-0.92,-0.96,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_EMO=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.359,0.36,0.358,0.36,0.356,0.356,0.355,0.35,0.353,0.352,0.351,0.35,0,0.009,0.027,0.05,0.07,0.1,0.114,0.126,0.13\r\r\nPARAM_CHEEK=0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,1.05,2.95,4,3.11,1.36,0,-0.71,-1.36,-1.95,-2.47,-2.94,-3.35,-3.7,-4.01,-4.26,-4.48,-4.65,-4.78,-4.88,-4.95,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.9,-4.66,-4.29,-3.85,-3.35,-2.83,-2.3,-1.79,-1.31,-0.88,-0.53,-0.24,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.63,0.87,1,0.74,0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.11,0.17,0.24,0.31,0.37,0.42,0.46,0.49,0.5\r\r\nPARAM_BOING=0,0.08,0.26,0.5,0.74,0.92,1,0.76,0.36,0,-0.27,-0.37,-0.23,-0.01,0.19,0.34,0.4,0.386,0.35,0.3,0.23,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.1,-0.27,-0.39,-0.43,-0.37,-0.24,-0.07,0.09,0.22,0.3,0.33,0.319,0.29,0.24,0.19,0.14,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.31,0.42,0.17,-0.3,-0.55,-0.31,0.08,0.34,0.43,0.26,-0.01,-0.26,-0.44,-0.51,-0.39,-0.18,-0.05,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.18,0.46,0.73,0.92,1,0.96,0.86,0.73,0.57,0.41,0.25,0.09,-0.04,-0.14,-0.21,-0.23,-0.213,-0.17,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.34,-0.54,-0.68,-0.74,-0.49,-0.08,0.21,0.3,0.25,0.11,-0.06,-0.23,-0.37,-0.42,-0.407,-0.37,-0.33,-0.27,-0.22,-0.16,-0.11,-0.07,-0.03,-0.01,0\r\r\nPARAM_HAIR_SIDE_L=0,0.18,0.46,0.73,0.92,1,0.96,0.86,0.73,0.57,0.41,0.25,0.1,-0.03,-0.13,-0.2,-0.22,-0.204,-0.16,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.21,0.34,0.43,0.46,0.18,-0.27,-0.59,-0.69,-0.6,-0.39,-0.11,0.18,0.39,0.48,0.465,0.43,0.37,0.31,0.25,0.19,0.13,0.08,0.04,0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.26,0.74,1,0.85,0.48,0,-0.48,-0.85,-1,-0.91,-0.71,-0.46,-0.2,0.04,0.23,0.36,0.41,0.38,0.3,0.21,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Sukebei2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.5,-1.63,-3.26,-5.36,-8,-12.01,-14.49,-15.68,-16,-15.24,-13.21,-10.15,-6.31,-2.07,2.44,6.87,11.01,14.67,17.75,20.06,21.51,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21.58,20.49,18.89,16.93,14.74,12.45,10.13,7.88,5.78,3.88,2.31,1.08,0.28,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,30,30,30,30,28.92,26.03,21.68,16.23,10.2,3.79,-2.5,-8.38,-13.59,-17.96,-21.25,-23.3,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-23.54,-22.35,-20.61,-18.46,-16.07,-13.58,-11.05,-8.6,-6.31,-4.24,-2.52,-1.17,-0.3,0\r\r\nPARAM_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.87,6.52,6.01,5.39,4.69,3.96,3.22,2.51,1.84,1.24,0.74,0.34,0.09,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.94,0.94,0.94,0.94,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.62,0.73,0.84,0.91,0.94,0.94,0.94,0.94,0.94,0.94,0.85,0.69,0.58,0.55\r\r\nPARAM_EYE_L_OPEN2=-0.94,-0.94,-0.94,-0.94,-0.941,-0.942,-0.94,-0.944,-0.945,-0.946,-0.948,-0.949,-0.951,-0.952,-0.954,-0.956,-0.957,-0.959,-0.961,-0.963,-0.965,-0.967,-0.969,-0.971,-0.973,-0.975,-0.977,-0.979,-0.981,-0.983,-0.984,-0.986,-0.988,-0.989,-0.991,-0.992,-0.994,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1,-0.999,-0.997,-0.994,-0.991,-0.987,-0.983,-0.978,-0.974,-0.971,-0.967,-0.964,-0.962,-0.961,-0.96\r\r\nPARAM_EYE_R_OPEN2=-0.94,-0.94,-0.94,-0.94,-0.941,-0.942,-0.94,-0.944,-0.945,-0.946,-0.948,-0.949,-0.951,-0.952,-0.954,-0.956,-0.957,-0.959,-0.961,-0.963,-0.965,-0.967,-0.969,-0.971,-0.973,-0.975,-0.977,-0.979,-0.981,-0.983,-0.984,-0.986,-0.988,-0.989,-0.991,-0.992,-0.994,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1,-0.999,-0.997,-0.993,-0.988,-0.983,-0.978,-0.973,-0.968,-0.963,-0.959,-0.955,-0.952,-0.951,-0.95\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.028,-0.044,-0.055,-0.06,-0.06,-0.06,-0.06,-0.06,-0.063,-0.071,-0.083,-0.098,-0.115,-0.133,-0.15,-0.167,-0.181,-0.193,-0.202,-0.208,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.206,-0.196,-0.18,-0.162,-0.14,-0.12,-0.1,-0.08,-0.055,-0.037,-0.022,-0.01,-0.003,0\r\r\nPARAM_EYE_BALL_Y=0,-0.12,-0.31,-0.49,-0.62,-0.67,-0.67,-0.67,-0.67,-0.67,-0.652,-0.61,-0.53,-0.45,-0.35,-0.24,-0.14,-0.04,0.04,0.11,0.17,0.2,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.206,0.196,0.18,0.162,0.14,0.12,0.1,0.08,0.055,0.037,0.022,0.01,0.003,0\r\r\nPARAM_BROW_L_Y=0,0.11,0.27,0.43,0.55,0.59,0.59,0.59,0.59,0.59,0.56,0.49,0.39,0.26,0.11,-0.05,-0.2,-0.34,-0.47,-0.57,-0.65,-0.7,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.67,-0.54,-0.38,-0.23,-0.1,-0.03,0\r\r\nPARAM_BROW_R_Y=0,0.1,0.27,0.42,0.54,0.58,0.58,0.58,0.58,0.58,0.55,0.49,0.38,0.25,0.11,-0.05,-0.2,-0.34,-0.46,-0.57,-0.64,-0.69,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.66,-0.53,-0.38,-0.22,-0.1,-0.03,0\r\r\nPARAM_BROW_ANGLE=0.2,0.15,0.07,0,-0.05,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.56,-0.62,-0.65,-0.67,-0.678,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,0,0.13,0.19,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.46,-0.39,-0.33,-0.29,-0.27,-0.27,-0.27,-0.27,-0.27,-0.268,-0.262,-0.252,-0.238,-0.221,-0.202,-0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,-0.43,-0.48,-0.495,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.74,0.48,0.24,0.07,0,0,0,0,0,-0.007,-0.03,-0.07,-0.12,-0.18,-0.26,-0.34,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.85,0.88,0.897,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0.002,0.005,0.01,0.015,0.022,0.03,0.039,0.049,0.061,0.073,0.087,0.101,0.116,0.133,0.15,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.259,0.26,0.257,0.256,0.254,0.252,0.25,0.19,0.09,0.02,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,0.34,0.96,1.66,2.35,3,3.67,3.92,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.97,3.9,3.78,3.64,3.46,3.25,3.03,2.79,2.54,2.29,2.03,1.77,1.52,1.28,1.05,0.83,0.63,0.45,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.43,3.72,5.86,7.4,8,8.08,8.02,7.65,7,5.64,4.16,2.58,0.95,-0.65,-2.2,-3.62,-4.89,-5.96,-6.84,-7.48,-7.87,-8,-7.95,-7.8,-7.57,-7.28,-6.91,-6.51,-6.06,-5.59,-5.09,-4.58,-4.06,-3.55,-3.05,-2.55,-2.09,-1.66,-1.26,-0.9,-0.59,-0.34,-0.16,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0.03,0.09,0.14,0.18,0.19,0.182,0.16,0.13,0.08,0.03,-0.02,-0.08,-0.14,-0.19,-0.25,-0.3,-0.35,-0.4,-0.43,-0.46,-0.481,-0.49,-0.493,-0.496,-0.498,-0.5,-0.502,-0.504,-0.505,-0.506,-0.507,-0.51,-0.508,-0.51,-0.509,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.5,-0.47,-0.44,-0.39,-0.34,-0.29,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.99,0.97,0.93,0.88,0.83,0.78,0.73,0.68,0.63,0.59,0.55,0.52,0.506,0.5\r\r\nPARAM_BOING=0,-0.2,-0.57,-0.77,-0.64,-0.31,0.11,0.54,0.87,1,0.9,0.7,0.44,0.18,-0.07,-0.27,-0.4,-0.45,-0.33,-0.15,0.03,0.15,0.2,0.18,0.12,0.04,-0.05,-0.11,-0.13,-0.12,-0.1,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.015,-0.05,-0.11,-0.18,-0.25,-0.32,-0.38,-0.42,-0.43,-0.35,-0.14,0.13,0.39,0.6,0.68,0.62,0.47,0.29,0.12,-0.02,-0.11,-0.14,-0.129,-0.1,-0.07,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.96,0.86,0.69,0.49,0.26,0.01,-0.23,-0.46,-0.66,-0.83,-0.93,-0.97,-0.93,-0.83,-0.7,-0.54,-0.38,-0.22,-0.07,0.06,0.16,0.23,0.25,0.25,0.25,0.248,0.247,0.244,0.24,0.234,0.228,0.219,0.208,0.195,0.18,0.161,0.141,0.123,0.104,0.087,0.071,0.056,0.042,0.03,0.02,0.011,0.005,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.96,0.85,0.69,0.48,0.25,0,-0.25,-0.48,-0.69,-0.85,-0.96,-1,-0.987,-0.95,-0.91,-0.85,-0.8,-0.74,-0.69,-0.65,-0.61,-0.59,-0.58,-0.581,-0.585,-0.591,-0.598,-0.606,-0.615,-0.624,-0.632,-0.639,-0.645,-0.649,-0.65,-0.638,-0.61,-0.56,-0.5,-0.44,-0.37,-0.3,-0.23,-0.17,-0.11,-0.07,-0.03,-0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,-0.17,-0.49,-0.66,-0.54,-0.23,0.17,0.57,0.88,1,0.85,0.5,0.06,-0.37,-0.71,-0.93,-1,-0.89,-0.63,-0.32,-0.01,0.24,0.4,0.45,0.4,0.28,0.13,-0.01,-0.12,-0.2,-0.22,-0.217,-0.209,-0.197,-0.181,-0.163,-0.142,-0.12,-0.1,-0.08,-0.057,-0.039,-0.023,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.013,-0.04,-0.08,-0.11,-0.15,-0.17,-0.193,-0.2,-0.194,-0.178,-0.15,-0.12,-0.08,-0.04,0,0.05,0.09,0.13,0.17,0.2,0.22,0.244,0.256,0.26,0.259,0.257,0.254,0.25,0.244,0.238,0.231,0.223,0.214,0.205,0.196,0.185,0.175,0.164,0.153,0.143,0.131,0.12,0.109,0.099,0.088,0.078,0.068,0.058,0.049,0.041,0.033,0.026,0.019,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_WING_DEFORM=0,0.04,0.11,0.21,0.31,0.4,0.47,0.52,0.54,0.539,0.538,0.535,0.531,0.525,0.519,0.512,0.504,0.495,0.486,0.475,0.464,0.453,0.44,0.427,0.414,0.4,0.386,0.371,0.356,0.341,0.325,0.309,0.294,0.278,0.262,0.246,0.231,0.215,0.199,0.184,0.169,0.154,0.14,0.126,0.113,0.1,0.087,0.076,0.065,0.054,0.045,0.036,0.028,0.021,0.015,0.009,0.005,0.002,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Sukebei3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-1.52,-4.1,-6.79,-9.18,-11,-12.79,-14.45,-15.92,-17.28,-18.5,-19.62,-20.62,-21.5,-22.3,-23,-23.62,-24.15,-24.62,-25,-25.32,-25.57,-25.76,-25.9,-25.97,-26,-25.96,-25.85,-25.66,-25.4,-25.09,-24.72,-24.3,-23.84,-23.34,-22.8,-22.23,-21.64,-21.03,-20.4,-19.76,-19.13,-18.49,-17.86,-17.24,-16.62,-16.03,-15.46,-14.92,-14.41,-13.93,-13.49,-13.1,-12.75,-12.45,-12.19,-12,-11.82,-11.65,-11.51,-11.38,-11.27,-11.16,-11.07,-10.99,-10.92,-10.85,-10.79,-10.73,-10.67,-10.62,-10.56,-10.51,-10.45,-10.39,-10.32,-10.25,-10.18,-10.09,-10,-0.26,15.6,26.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.62,28.55,26.9,24.77,22.31,19.59,16.8,13.95,11.17,8.52,6.14,4.05,2.33,1.07,0.27,0\r\r\nPARAM_ANGLE_Y=0,-4.31,-11.27,-17.86,-22.77,-25,-25.63,-26.2,-26.71,-27.17,-27.59,-27.96,-28.29,-28.58,-28.84,-29.07,-29.27,-29.44,-29.58,-29.7,-29.8,-29.87,-29.93,-29.97,-29.99,-30,-29.997,-29.989,-29.975,-29.956,-29.93,-29.9,-29.86,-29.82,-29.77,-29.72,-29.66,-29.59,-29.52,-29.44,-29.36,-29.27,-29.18,-29.07,-28.97,-28.85,-28.73,-28.61,-28.47,-28.33,-28.19,-28.03,-27.87,-27.71,-27.54,-27.36,-27.17,-26.98,-26.78,-26.58,-26.37,-26.15,-25.92,-25.69,-25.45,-25.2,-24.95,-24.69,-24.42,-24.15,-23.86,-23.58,-23.28,-22.98,-22.67,-22.35,-22.02,-21.69,-21.35,-21,-18.9,-15.84,-13.75,-13,-12.85,-12.71,-12.6,-12.49,-12.39,-12.29,-12.2,-12.11,-12.01,-11.9,-11.79,-11.66,-11.52,-11.36,-11.19,-11,-10.65,-10.11,-9.41,-8.57,-7.65,-6.67,-5.68,-4.69,-3.74,-2.84,-2.04,-1.34,-0.77,-0.35,-0.09,0\r\r\nPARAM_ANGLE_Z=0,-0.02,-0.09,-0.18,-0.3,-0.44,-0.6,-0.79,-1,-1.26,-1.5,-1.72,-1.92,-2.11,-2.27,-2.42,-2.55,-2.66,-2.75,-2.83,-2.89,-2.94,-2.97,-2.994,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-0.82,2.75,5.2,6,5.981,5.92,5.83,5.71,5.57,5.4,5.2,4.99,4.76,4.52,4.26,4,3.73,3.46,3.18,2.89,2.62,2.35,2.08,1.82,1.56,1.32,1.1,0.89,0.7,0.52,0.37,0.24,0.14,0.06,0.02,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.48,0.38,0.28,0.21,0.18,0.18,0.18,0.18,0.181,0.183,0.186,0.19,0.21,0.26,0.31,0.36,0.41,0.44,0.46,0.472,0.483,0.493,0.502,0.51,0.517,0.523,0.529,0.533,0.537,0.541,0.544,0.546,0.547,0.549,0.549,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.66,0.84,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.978,0.95,0.92,0.88,0.84,0.8,0.76,0.72,0.68,0.64,0.61,0.58,0.566,0.554,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.48,0.38,0.28,0.21,0.18,0.18,0.18,0.18,0.181,0.183,0.186,0.19,0.21,0.26,0.31,0.36,0.41,0.44,0.46,0.472,0.483,0.493,0.502,0.51,0.517,0.523,0.529,0.533,0.537,0.541,0.544,0.546,0.547,0.549,0.549,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.66,0.84,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.994,0.978,0.95,0.92,0.88,0.84,0.8,0.76,0.72,0.68,0.64,0.61,0.58,0.566,0.554,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0,-0.002,-0.004,-0.007,-0.011,-0.016,-0.02,-0.026,-0.031,-0.037,-0.043,-0.049,-0.055,-0.061,-0.067,-0.073,-0.078,-0.082,-0.087,-0.091,-0.094,-0.096,-0.098,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.098,-0.091,-0.08,-0.067,-0.051,-0.033,-0.014,0.004,0.023,0.041,0.057,0.07,0.081,0.088,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.089,0.086,0.081,0.074,0.067,0.059,0.05,0.042,0.034,0.026,0.018,0.012,0.007,0.003,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,-0.002,-0.007,-0.016,-0.028,-0.042,-0.059,-0.078,-0.098,-0.12,-0.14,-0.16,-0.19,-0.21,-0.23,-0.25,-0.28,-0.295,-0.313,-0.33,-0.344,-0.357,-0.367,-0.374,-0.378,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.374,-0.358,-0.33,-0.3,-0.26,-0.22,-0.17,-0.13,-0.08,-0.04,0,0.03,0.06,0.074,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.079,0.076,0.072,0.066,0.06,0.052,0.045,0.037,0.03,0.023,0.016,0.011,0.006,0.003,0.001,0\r\r\nPARAM_BROW_L_Y=0,-0.15,-0.39,-0.61,-0.78,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.829,-0.8,-0.76,-0.72,-0.68,-0.63,-0.59,-0.55,-0.53,-0.507,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.46,-0.42,-0.37,-0.31,-0.25,-0.19,-0.13,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.15,-0.4,-0.62,-0.79,-0.85,-0.85,-0.85,-0.85,-0.85,-0.85,-0.85,-0.839,-0.81,-0.77,-0.73,-0.68,-0.64,-0.59,-0.56,-0.53,-0.507,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.46,-0.42,-0.37,-0.31,-0.25,-0.19,-0.13,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,0.05,-0.18,-0.4,-0.56,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.609,-0.58,-0.54,-0.5,-0.45,-0.41,-0.36,-0.33,-0.3,-0.277,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.35,-0.49,-0.59,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,0.32,0.316,0.306,0.293,0.278,0.262,0.246,0.232,0.219,0.209,0.202,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.34,-0.09,0.14,0.31,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.36,0.3,0.21,0.1,-0.56,-0.558,-0.553,-0.547,-0.539,-0.531,-0.523,-0.516,-0.51,-0.504,-0.501,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.79,0.62,0.46,0.35,0.3,0.301,0.305,0.311,0.32,0.332,0.345,0.361,0.379,0.399,0.42,0.45,0.48,0.487,0.49,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.91,-0.8,-0.67,-0.51,-0.34,-0.16,0.02,0.19,0.36,0.51,0.64,0.75,0.83,0.88,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0.002,0.005,0.008,0.013,0.019,0.025,0.033,0.042,0.052,0.062,0.074,0.087,0.1,0.114,0.13,0.146,0.162,0.18,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.247,0.238,0.224,0.206,0.19,0.16,0.14,0.12,0.09,0.07,0.051,0.034,0.019,0.009,0.002,0\r\r\nPARAM_CHEEK=0,0,0,0,0.006,0.03,0.08,0.14,0.21,0.29,0.37,0.45,0.54,0.62,0.7,0.77,0.84,0.89,0.94,0.97,0.99,1,1,0.999,0.998,0.996,0.994,0.992,0.99,0.987,0.985,0.983,0.98,0.978,0.976,0.974,0.972,0.971,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.958,0.92,0.87,0.8,0.72,0.63,0.54,0.45,0.36,0.28,0.2,0.13,0.08,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,0.36,0.93,1.46,1.85,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.999,1.996,1.99,1.982,1.973,1.961,1.946,1.929,1.91,1.89,1.87,1.84,1.81,1.78,1.75,1.71,1.67,1.63,1.59,1.55,1.5,1.45,1.4,1.34,1.28,1.22,1.16,1.09,1.03,0.96,0.88,0.81,0.73,0.65,0.56,0.48,0.39,0.29,0.2,0.1,0,-0.1,-0.21,-0.32,-0.43,-0.55,-0.66,-0.78,-0.91,-1.03,-1.16,-1.29,-1.43,-1.57,-1.71,-1.85,-2,-2.81,-3.98,-4.75,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.97,-4.87,-4.72,-4.53,-4.28,-4.01,-3.71,-3.38,-3.03,-2.68,-2.32,-1.97,-1.62,-1.29,-0.99,-0.72,-0.47,-0.28,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.89,2.32,3.66,4.62,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0,-0.003,-0.006,-0.011,-0.017,-0.024,-0.032,-0.04,-0.05,-0.06,-0.071,-0.082,-0.094,-0.106,-0.118,-0.131,-0.144,-0.157,-0.17,-0.183,-0.196,-0.208,-0.22,-0.232,-0.244,-0.255,-0.266,-0.276,-0.285,-0.294,-0.302,-0.309,-0.315,-0.32,-0.324,-0.327,-0.329,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.2,0.01,0.15,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.199,0.195,0.189,0.181,0.171,0.16,0.148,0.135,0.121,0.107,0.093,0.079,0.065,0.052,0.04,0.029,0.019,0.011,0.005,0.001,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,0.998,0.991,0.981,0.968,0.951,0.932,0.91,0.89,0.86,0.83,0.8,0.77,0.74,0.71,0.68,0.65,0.62,0.59,0.56,0.53,0.5,0.47,0.44,0.42,0.4,0.379,0.362,0.347,0.336,0.327,0.322,0.32,0.32,0.32,0.32,0.321,0.322,0.323,0.324,0.326,0.327,0.329,0.331,0.333,0.335,0.338,0.34,0.343,0.346,0.35,0.353,0.357,0.361,0.365,0.37,0.374,0.379,0.384,0.39,0.395,0.401,0.407,0.414,0.42,0.427,0.434,0.441,0.449,0.457,0.465,0.473,0.482,0.491,0.5,0.57,0.68,0.76,0.78,0.779,0.776,0.772,0.767,0.76,0.752,0.743,0.733,0.722,0.711,0.699,0.687,0.674,0.661,0.648,0.635,0.622,0.609,0.597,0.585,0.573,0.562,0.551,0.541,0.533,0.524,0.517,0.511,0.507,0.503,0.501,0.5\r\r\nPARAM_BOING=0,0.17,0.43,0.68,0.86,0.93,0.82,0.54,0.18,-0.18,-0.46,-0.57,-0.51,-0.37,-0.2,-0.04,0.1,0.18,0.21,0.203,0.184,0.16,0.12,0.09,0.06,0.03,0.008,0,0,0,-0.001,0,-0.002,0,0,-0.003,0,0,-0.004,0,0,-0.005,-0.01,-0.01,-0.006,-0.01,-0.01,-0.01,-0.007,-0.01,-0.01,-0.01,-0.01,-0.01,-0.008,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.009,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0.1,0.27,0.43,0.54,0.59,0.52,0.36,0.14,-0.09,-0.25,-0.32,-0.309,-0.28,-0.24,-0.19,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.89,0.62,0.29,-0.03,-0.29,-0.45,-0.51,-0.492,-0.45,-0.38,-0.3,-0.21,-0.13,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.38,1.4,2.97,4.94,7.13,9.5,11.87,14.06,16.03,17.6,18.62,19,18.94,18.76,18.46,18.06,17.55,16.96,16.27,15.51,14.67,13.77,12.79,11.78,10.7,9.59,8.43,7.27,6.05,4.85,3.61,2.39,1.15,-0.05,-1.27,-2.43,-3.59,-4.7,-5.78,-6.79,-7.77,-8.67,-9.51,-10.27,-10.96,-11.55,-12.06,-12.46,-12.76,-12.94,-13,-12.84,-12.4,-11.73,-10.9,-9.94,-8.89,-7.77,-6.65,-5.51,-4.44,-3.42,-2.48,-1.65,-0.97,-0.45,-0.12,0\r\r\nPARAM_ANGLE_Y=0,-0.56,-2.06,-4.38,-7.28,-10.51,-14,-17.49,-20.72,-23.63,-25.94,-27.44,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-27.65,-26.71,-25.26,-23.47,-21.4,-19.14,-16.73,-14.33,-11.87,-9.56,-7.36,-5.33,-3.55,-2.08,-0.96,-0.25,0\r\r\nPARAM_ANGLE_Z=0,0.08,0.29,0.62,1.05,1.54,2.08,2.64,3.21,3.77,4.3,4.77,5.19,5.53,5.79,5.95,6,5.96,5.86,5.7,5.48,5.22,4.9,4.54,4.14,3.72,3.26,2.78,2.27,1.75,1.21,0.67,0.13,-0.43,-0.99,-1.53,-2.07,-2.6,-3.12,-3.61,-4.09,-4.54,-4.96,-5.35,-5.71,-6.03,-6.31,-6.55,-6.74,-6.88,-6.97,-7,-6.91,-6.68,-6.32,-5.87,-5.35,-4.79,-4.18,-3.58,-2.97,-2.39,-1.84,-1.33,-0.89,-0.52,-0.24,-0.06,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,-0.001,-0.005,-0.011,-0.018,-0.026,-0.035,-0.044,-0.052,-0.059,-0.065,-0.069,-0.07,-0.07,-0.069,-0.067,-0.065,-0.063,-0.06,-0.056,-0.053,-0.048,-0.044,-0.039,-0.034,-0.028,-0.023,-0.017,-0.011,-0.005,0.001,0.007,0.013,0.019,0.025,0.031,0.037,0.043,0.048,0.054,0.059,0.064,0.068,0.073,0.076,0.08,0.083,0.085,0.087,0.089,0.09,0.09,0.089,0.086,0.081,0.075,0.069,0.062,0.054,0.046,0.038,0.031,0.024,0.017,0.011,0.007,0.003,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0.006,0.021,0.04,0.07,0.11,0.14,0.18,0.21,0.24,0.27,0.282,0.29,0.293,0.295,0.297,0.3,0.302,0.304,0.306,0.308,0.31,0.311,0.313,0.314,0.316,0.317,0.318,0.319,0.321,0.322,0.322,0.323,0.324,0.32,0.326,0.326,0.33,0.327,0.33,0.328,0.33,0.33,0.329,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.326,0.315,0.298,0.28,0.25,0.23,0.2,0.17,0.14,0.11,0.09,0.06,0.04,0.025,0.011,0.003,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0.01,0.03,0.06,0.09,0.12,0.14,0.154,0.16,0.158,0.152,0.144,0.132,0.117,0.101,0.083,0.063,0.04,0.02,0,-0.02,-0.04,-0.061,-0.08,-0.098,-0.113,-0.127,-0.139,-0.149,-0.156,-0.16,-0.163,-0.165,-0.167,-0.168,-0.169,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.164,-0.157,-0.148,-0.138,-0.126,-0.113,-0.099,-0.085,-0.071,-0.057,-0.044,-0.032,-0.022,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0.01,0.03,0.06,0.09,0.12,0.14,0.154,0.16,0.158,0.152,0.144,0.132,0.117,0.101,0.083,0.063,0.04,0.02,0,-0.02,-0.04,-0.061,-0.08,-0.098,-0.113,-0.127,-0.139,-0.149,-0.156,-0.16,-0.163,-0.165,-0.167,-0.168,-0.169,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.168,-0.164,-0.157,-0.148,-0.138,-0.126,-0.113,-0.099,-0.085,-0.071,-0.057,-0.044,-0.032,-0.022,-0.013,-0.006,-0.002,0\r\r\nPARAM_BROW_ANGLE=0.2,0.205,0.218,0.24,0.27,0.29,0.33,0.36,0.38,0.41,0.43,0.445,0.45,0.45,0.449,0.448,0.446,0.444,0.442,0.439,0.435,0.432,0.428,0.424,0.419,0.414,0.409,0.404,0.399,0.393,0.387,0.381,0.375,0.368,0.362,0.356,0.349,0.343,0.336,0.329,0.322,0.316,0.309,0.303,0.296,0.29,0.283,0.277,0.271,0.265,0.259,0.254,0.248,0.243,0.238,0.233,0.229,0.224,0.22,0.217,0.213,0.21,0.208,0.205,0.204,0.202,0.201,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.89,0.86,0.81,0.75,0.68,0.59,0.49,0.39,0.28,0.17,0.06,-0.05,-0.16,-0.26,-0.36,-0.45,-0.52,-0.58,-0.63,-0.66,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.666,-0.653,-0.634,-0.61,-0.57,-0.53,-0.49,-0.44,-0.38,-0.33,-0.27,-0.2,-0.14,-0.07,0,0.07,0.14,0.21,0.28,0.35,0.41,0.48,0.53,0.59,0.65,0.7,0.74,0.78,0.82,0.85,0.87,0.886,0.896,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.003,0.01,0.022,0.038,0.059,0.08,0.11,0.14,0.17,0.2,0.24,0.28,0.32,0.36,0.4,0.43,0.47,0.51,0.55,0.59,0.62,0.65,0.68,0.71,0.73,0.752,0.768,0.78,0.787,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.788,0.787,0.784,0.782,0.778,0.774,0.768,0.762,0.754,0.746,0.735,0.724,0.711,0.696,0.68,0.65,0.62,0.58,0.53,0.48,0.42,0.37,0.31,0.26,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.992,-0.97,-0.93,-0.88,-0.83,-0.76,-0.68,-0.6,-0.51,-0.41,-0.32,-0.22,-0.12,-0.01,0.09,0.19,0.29,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1,0.995,0.98,0.96,0.93,0.89,0.84,0.8,0.74,0.69,0.63,0.57,0.51,0.45,0.39,0.33,0.27,0.22,0.18,0.13,0.09,0.06,0.04,0.016,0.004,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.99,1.96,1.91,1.85,1.78,1.69,1.59,1.48,1.37,1.26,1.14,1.01,0.89,0.78,0.66,0.55,0.45,0.35,0.26,0.19,0.12,0.07,0.03,0.01,0\r\r\nPARAM_BODY_Y=0,0.004,0.014,0.029,0.049,0.07,0.1,0.12,0.15,0.18,0.2,0.22,0.242,0.258,0.27,0.277,0.28,0.277,0.268,0.255,0.236,0.21,0.19,0.16,0.13,0.1,0.07,0.03,0,-0.04,-0.07,-0.11,-0.14,-0.17,-0.2,-0.23,-0.25,-0.27,-0.294,-0.309,-0.32,-0.328,-0.33,-0.328,-0.324,-0.316,-0.306,-0.295,-0.281,-0.266,-0.249,-0.232,-0.214,-0.196,-0.177,-0.158,-0.139,-0.121,-0.103,-0.086,-0.07,-0.055,-0.042,-0.03,-0.02,-0.011,-0.005,-0.001,0\r\r\nPARAM_BREATH=0.5,0.501,0.505,0.511,0.519,0.529,0.541,0.554,0.568,0.584,0.601,0.619,0.637,0.656,0.676,0.695,0.714,0.734,0.753,0.771,0.789,0.806,0.822,0.836,0.849,0.861,0.871,0.879,0.885,0.889,0.89,0.885,0.871,0.85,0.82,0.79,0.75,0.71,0.67,0.63,0.58,0.54,0.5,0.46,0.43,0.39,0.37,0.34,0.325,0.314,0.31,0.312,0.317,0.324,0.334,0.346,0.359,0.374,0.389,0.405,0.421,0.436,0.451,0.464,0.476,0.486,0.493,0.498,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,-0.001,-0.002,-0.004,-0.006,-0.008,-0.011,-0.014,-0.017,-0.021,-0.024,-0.028,-0.032,-0.036,-0.04,-0.043,-0.047,-0.051,-0.055,-0.058,-0.062,-0.065,-0.068,-0.07,-0.073,-0.075,-0.077,-0.078,-0.079,-0.08,-0.08,-0.08,-0.08,-0.078,-0.077,-0.076,-0.074,-0.072,-0.07,-0.068,-0.065,-0.062,-0.059,-0.056,-0.053,-0.05,-0.047,-0.044,-0.04,-0.037,-0.034,-0.031,-0.028,-0.025,-0.022,-0.019,-0.016,-0.014,-0.011,-0.009,-0.007,-0.005,-0.004,-0.002,-0.001,-0.001,0,0\r\r\nPARAM_WING_DEFORM=0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.3,-0.37,-0.43,-0.49,-0.55,-0.6,-0.64,-0.67,-0.684,-0.69,-0.687,-0.676,-0.66,-0.64,-0.61,-0.58,-0.54,-0.5,-0.46,-0.41,-0.36,-0.31,-0.26,-0.21,-0.16,-0.1,-0.05,0,0.05,0.1,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.364,0.378,0.387,0.39,0.387,0.38,0.368,0.353,0.334,0.31,0.29,0.26,0.24,0.21,0.18,0.15,0.13,0.1,0.08,0.06,0.037,0.022,0.01,0.003,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.12,-0.47,-1.02,-1.72,-2.58,-3.54,-4.6,-5.73,-6.91,-8.11,-9.35,-10.57,-11.76,-12.94,-14.03,-15.06,-16.01,-16.86,-17.59,-18.18,-18.63,-18.9,-19,-18.98,-18.9,-18.78,-18.62,-18.42,-18.19,-17.92,-17.62,-17.29,-16.94,-16.56,-16.17,-15.75,-15.33,-14.89,-14.43,-13.97,-13.51,-13.03,-12.56,-12.09,-11.62,-11.16,-10.69,-10.25,-9.81,-9.38,-8.97,-8.58,-8.21,-7.86,-7.54,-7.23,-6.97,-6.72,-6.51,-6.33,-6.19,-6.09,-6.02,-6,-6,-6,-6,-6,-6,-5.81,-5.32,-4.67,-3.9,-3.11,-2.32,-1.58,-0.95,-0.45,-0.12,0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.04,-26.62,-23.34,-19.51,-15.53,-11.6,-7.88,-4.75,-2.23,-0.6,0\r\r\nPARAM_ANGLE_Z=0,-0.013,-0.05,-0.11,-0.18,-0.27,-0.37,-0.48,-0.6,-0.73,-0.85,-0.98,-1.11,-1.24,-1.36,-1.48,-1.59,-1.69,-1.77,-1.85,-1.91,-1.96,-1.99,-2,-1.996,-1.985,-1.967,-1.94,-1.91,-1.87,-1.83,-1.79,-1.74,-1.68,-1.62,-1.56,-1.5,-1.43,-1.37,-1.3,-1.23,-1.15,-1.08,-1.01,-0.94,-0.86,-0.79,-0.72,-0.65,-0.59,-0.52,-0.46,-0.4,-0.34,-0.29,-0.24,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.554,0.55,0.55,0.555,0.56,0.56,0.556,0.56,0.56,0.557,0.56,0.56,0.558,0.56,0.559,0.56,0.56,0.56,0.56,0.561,0.56,0.562,0.56,0.563,0.564,0.56,0.565,0.57,0.566,0.57,0.567,0.568,0.57,0.569,0.57,0.63,0.73,0.82,0.88,0.91,0.898,0.87,0.83,0.78,0.74,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.55,0.55,0.55,0.55,0.55,0.552,0.55,0.55,0.55,0.553,0.55,0.55,0.55,0.554,0.55,0.55,0.555,0.56,0.56,0.556,0.56,0.56,0.557,0.56,0.56,0.558,0.56,0.559,0.56,0.56,0.56,0.56,0.561,0.56,0.562,0.56,0.563,0.564,0.56,0.565,0.57,0.566,0.57,0.567,0.568,0.57,0.569,0.57,0.63,0.73,0.82,0.88,0.91,0.898,0.87,0.83,0.78,0.74,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0.001,0.005,0.011,0.019,0.029,0.039,0.051,0.063,0.076,0.09,0.103,0.117,0.13,0.143,0.155,0.166,0.177,0.186,0.194,0.201,0.206,0.209,0.21,0.21,0.208,0.206,0.204,0.201,0.197,0.193,0.188,0.182,0.177,0.171,0.164,0.158,0.151,0.144,0.136,0.129,0.121,0.114,0.106,0.098,0.091,0.083,0.076,0.069,0.062,0.055,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.013,0.028,0.047,0.07,0.1,0.13,0.16,0.19,0.22,0.26,0.29,0.32,0.36,0.39,0.42,0.45,0.47,0.49,0.51,0.525,0.535,0.54,0.543,0.546,0.549,0.551,0.554,0.556,0.558,0.56,0.562,0.564,0.565,0.567,0.568,0.569,0.571,0.572,0.573,0.574,0.574,0.575,0.58,0.576,0.577,0.58,0.58,0.578,0.58,0.58,0.579,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.561,0.51,0.45,0.38,0.3,0.22,0.15,0.09,0.04,0.01,0\r\r\nPARAM_BROW_L_Y=0,0,-0.002,-0.005,-0.009,-0.014,-0.019,-0.024,-0.03,-0.036,-0.043,-0.049,-0.056,-0.062,-0.068,-0.074,-0.079,-0.084,-0.089,-0.093,-0.096,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.095,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.08,-0.077,-0.074,-0.071,-0.068,-0.065,-0.062,-0.059,-0.055,-0.052,-0.049,-0.046,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.011,-0.009,-0.008,-0.006,-0.004,-0.003,-0.002,0,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,-0.002,-0.005,-0.009,-0.014,-0.019,-0.024,-0.03,-0.036,-0.043,-0.049,-0.056,-0.062,-0.068,-0.074,-0.079,-0.084,-0.089,-0.093,-0.096,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.095,-0.094,-0.092,-0.09,-0.087,-0.085,-0.083,-0.08,-0.077,-0.074,-0.071,-0.068,-0.065,-0.062,-0.059,-0.055,-0.052,-0.049,-0.046,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.011,-0.009,-0.008,-0.006,-0.004,-0.003,-0.002,0,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.3,-0.298,-0.294,-0.287,-0.278,-0.267,-0.255,-0.241,-0.226,-0.211,-0.195,-0.179,-0.164,-0.148,-0.134,-0.12,-0.108,-0.097,-0.088,-0.08,-0.075,-0.071,-0.07,-0.07,-0.07,-0.07,-0.07,-0.071,-0.07,-0.07,-0.073,-0.073,-0.07,-0.074,-0.075,-0.076,-0.08,-0.078,-0.079,-0.08,-0.08,-0.081,-0.082,-0.083,-0.084,-0.085,-0.086,-0.087,-0.088,-0.089,-0.09,-0.091,-0.09,-0.093,-0.094,-0.094,-0.095,-0.1,-0.097,-0.097,-0.1,-0.098,-0.1,-0.099,-0.1,-0.1,-0.1,-0.1,-0.1,0.4,0.393,0.375,0.35,0.32,0.29,0.26,0.23,0.216,0.204,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,-0.14,-0.22,-0.29,-0.35,-0.39,-0.43,-0.46,-0.478,-0.491,-0.498,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.86,0.75,0.63,0.5,0.4,0.34,0.32,0.34,0.39,0.46,0.53,0.58,0.6,0.592,0.57,0.54,0.51,0.47,0.44,0.41,0.39,0.375,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.85,0.861,0.871,0.879,0.885,0.891,0.894,0.897,0.899,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0.01,0.01,0.014,0.019,0.026,0.035,0.046,0.059,0.073,0.09,0.108,0.127,0.148,0.17,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.04,0.033,0.027,0.023,0.019,0.016,0.013,0.012,0.011,0.01,0.01\r\r\nPARAM_CHEEK=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.497,0.488,0.475,0.457,0.44,0.41,0.39,0.36,0.33,0.3,0.27,0.24,0.21,0.18,0.15,0.13,0.1,0.083,0.065,0.05,0.039,0.032,0.03,0.034,0.045,0.063,0.09,0.12,0.15,0.19,0.23,0.27,0.32,0.37,0.42,0.46,0.51,0.56,0.6,0.64,0.68,0.71,0.74,0.77,0.785,0.796,0.8,0.796,0.786,0.771,0.751,0.73,0.71,0.68,0.65,0.63,0.6,0.58,0.56,0.538,0.522,0.51,0.503,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0,-0.002,-0.01,-0.021,-0.035,-0.053,-0.073,-0.09,-0.12,-0.14,-0.17,-0.19,-0.22,-0.24,-0.27,-0.29,-0.31,-0.329,-0.346,-0.361,-0.373,-0.382,-0.388,-0.39,-0.386,-0.375,-0.358,-0.33,-0.31,-0.27,-0.24,-0.2,-0.15,-0.11,-0.06,-0.02,0.03,0.08,0.12,0.17,0.21,0.24,0.28,0.3,0.33,0.345,0.356,0.36,0.355,0.343,0.325,0.3,0.28,0.25,0.22,0.18,0.15,0.12,0.09,0.07,0.05,0.027,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.003,0.011,0.025,0.042,0.06,0.09,0.11,0.14,0.17,0.2,0.23,0.26,0.28,0.31,0.34,0.36,0.39,0.41,0.426,0.44,0.451,0.458,0.46,0.459,0.456,0.451,0.445,0.437,0.429,0.419,0.408,0.396,0.384,0.371,0.358,0.345,0.332,0.318,0.305,0.292,0.28,0.268,0.256,0.246,0.236,0.227,0.219,0.213,0.207,0.203,0.201,0.2,0.206,0.221,0.24,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.474,0.48,0.474,0.457,0.43,0.4,0.36,0.31,0.27,0.22,0.18,0.14,0.1,0.06,0.04,0.017,0.004,0\r\r\nPARAM_WING_DEFORM=0,0.005,0.02,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.34,0.39,0.44,0.49,0.54,0.58,0.63,0.67,0.7,0.73,0.76,0.775,0.786,0.79,0.777,0.74,0.69,0.62,0.54,0.45,0.35,0.26,0.17,0.08,0,-0.07,-0.12,-0.16,-0.19,-0.2,-0.184,-0.14,-0.08,0,0.09,0.19,0.28,0.37,0.45,0.51,0.56,0.59,0.6,0.58,0.52,0.44,0.33,0.21,0.08,-0.05,-0.17,-0.28,-0.36,-0.42,-0.44,-0.434,-0.419,-0.39,-0.36,-0.33,-0.29,-0.25,-0.2,-0.16,-0.12,-0.09,-0.06,-0.03,-0.016,-0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.16,0.6,1.27,2.1,3.06,4.11,5.23,6.35,7.49,8.56,9.58,10.52,11.35,12.03,12.55,12.88,13,12.97,12.88,12.74,12.55,12.32,12.04,11.72,11.36,10.97,10.55,10.1,9.63,9.13,8.64,8.11,7.58,7.04,6.5,5.96,5.42,4.89,4.36,3.87,3.37,2.9,2.45,2.03,1.64,1.28,0.96,0.68,0.45,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.27,-0.97,-2.05,-3.4,-4.95,-6.64,-8.45,-10.25,-12.09,-13.83,-15.48,-17,-18.34,-19.44,-20.28,-20.81,-21,-20.95,-20.81,-20.59,-20.28,-19.9,-19.45,-18.93,-18.35,-17.72,-17.04,-16.31,-15.55,-14.76,-13.95,-13.11,-12.25,-11.38,-10.5,-9.62,-8.75,-7.89,-7.05,-6.24,-5.45,-4.69,-3.96,-3.28,-2.65,-2.07,-1.55,-1.1,-0.72,-0.41,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.8,-0.88,-0.95,-1.03,-1.1,-1.18,-1.25,-1.32,-1.39,-1.46,-1.53,-1.59,-1.65,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.987,-1.997,-2,-1.96,-1.85,-1.69,-1.49,-1.27,-1.03,-0.8,-0.58,-0.39,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.65,0.83,0.93,0.05,0.041,0.034,0.027,0.021,0.016,0.012,0.009,0.006,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0.001,0,0.002,0,0.003,0,0.004,0,0.006,0.006,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.015,0.016,0.017,0.018,0.02,0.021,0.023,0.024,0.026,0.027,0.029,0.031,0.033,0.034,0.036,0.038,0.04,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.65,0.83,0.93,0.03,0.025,0.02,0.016,0.013,0.01,0.007,0.005,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0.001,0,0.002,0,0.003,0,0.004,0,0.006,0.006,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.015,0.016,0.017,0.018,0.02,0.021,0.023,0.024,0.026,0.027,0.029,0.031,0.033,0.034,0.036,0.038,0.04,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-0.994,-0.97,-0.91,0.83,0.75,0.62,0.51,0.44,0.38,0.34,0.3,0.27,0.249,0.235,0.226,0.221,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.218,0.211,0.201,0.189,0.175,0.16,0.145,0.131,0.119,0.109,0.102,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.27,0.56,0.76,0.82,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-0.993,-0.97,-0.9,0.83,0.76,0.62,0.52,0.45,0.39,0.34,0.3,0.27,0.25,0.236,0.226,0.221,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.218,0.211,0.201,0.189,0.175,0.16,0.145,0.131,0.119,0.109,0.102,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.27,0.56,0.76,0.82,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0.004,0.014,0.03,0.05,0.07,0.1,0.12,0.15,0.18,0.2,0.23,0.25,0.271,0.287,0.299,0.307,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.307,0.298,0.285,0.268,0.249,0.23,0.2,0.18,0.16,0.141,0.124,0.11,0.098,0.088,0.078,0.068,0.06,0.052,0.045,0.039,0.033,0.028,0.023,0.019,0.016,0.013,0.01,0.008,0.006,0.004,0.003,0.002,0,0.001,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.004,-0.014,-0.03,-0.049,-0.07,-0.1,-0.13,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.32,-0.34,-0.364,-0.38,-0.395,-0.406,-0.413,-0.417,-0.42,-0.421,-0.42,-0.42,-0.421,-0.42,-0.42,-0.416,-0.406,-0.391,-0.37,-0.35,-0.32,-0.29,-0.27,-0.24,-0.21,-0.19,-0.17,-0.152,-0.136,-0.121,-0.107,-0.094,-0.083,-0.072,-0.062,-0.053,-0.045,-0.038,-0.031,-0.026,-0.021,-0.017,-0.013,-0.01,-0.007,-0.005,-0.003,-0.002,-0.001,0,0,0\r\r\nPARAM_BROW_L_Y=0,-0.002,-0.008,-0.018,-0.029,-0.042,-0.057,-0.072,-0.088,-0.104,-0.119,-0.133,-0.146,-0.157,-0.167,-0.174,-0.178,-0.18,-0.179,-0.176,-0.17,-0.164,-0.156,-0.146,-0.136,-0.126,-0.115,-0.103,-0.091,-0.08,-0.069,-0.057,-0.047,-0.037,-0.028,-0.02,-0.013,-0.008,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,-0.002,-0.008,-0.018,-0.029,-0.042,-0.057,-0.072,-0.088,-0.104,-0.119,-0.133,-0.146,-0.157,-0.167,-0.174,-0.178,-0.18,-0.179,-0.176,-0.17,-0.164,-0.156,-0.146,-0.136,-0.126,-0.115,-0.103,-0.091,-0.08,-0.069,-0.057,-0.047,-0.037,-0.028,-0.02,-0.013,-0.008,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.199,0.198,0.195,0.192,0.188,0.184,0.18,0.176,0.171,0.167,0.163,0.16,0.156,0.154,0.152,0.15,0.15,0.15,0.152,0.154,0.156,0.16,0.163,0.167,0.171,0.175,0.18,0.184,0.189,0.193,0.198,0.202,0.205,0.209,0.212,0.215,0.217,0.219,0.22,0.22,0.22,0.22,0.22,0.219,0.218,0.217,0.216,0.215,0.214,0.213,0.211,0.21,0.209,0.208,0.207,0.205,0.204,0.204,0.203,0.202,0.2,0.201,0.2,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.498,-0.491,-0.481,-0.469,-0.455,-0.44,-0.424,-0.407,-0.391,-0.375,-0.36,-0.346,-0.334,-0.324,-0.317,-0.312,-0.31,-0.31,-0.31,-0.312,-0.314,-0.316,-0.318,-0.321,-0.324,-0.328,-0.331,-0.335,-0.34,-0.344,-0.349,-0.354,-0.359,-0.365,-0.37,-0.376,-0.381,-0.387,-0.393,-0.399,-0.405,-0.411,-0.417,-0.423,-0.429,-0.434,-0.44,-0.445,-0.451,-0.456,-0.461,-0.466,-0.47,-0.475,-0.479,-0.482,-0.486,-0.489,-0.492,-0.494,-0.496,-0.498,-0.499,-0.5,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.893,0.874,0.85,0.81,0.77,0.72,0.67,0.63,0.58,0.53,0.49,0.45,0.41,0.38,0.36,0.345,0.34,0.34,0.341,0.343,0.346,0.349,0.353,0.357,0.363,0.369,0.376,0.384,0.392,0.401,0.411,0.422,0.434,0.446,0.459,0.474,0.489,0.505,0.522,0.54,0.56,0.59,0.62,0.64,0.67,0.7,0.73,0.76,0.78,0.8,0.822,0.837,0.85,0.862,0.871,0.879,0.885,0.89,0.894,0.897,0.898,0.899,0.9,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0,0.007,0.026,0.06,0.09,0.13,0.18,0.23,0.28,0.33,0.38,0.42,0.46,0.5,0.53,0.55,0.565,0.57,0.57,0.57,0.57,0.568,0.567,0.566,0.565,0.563,0.561,0.559,0.557,0.554,0.551,0.548,0.544,0.541,0.537,0.532,0.527,0.522,0.517,0.511,0.505,0.499,0.493,0.486,0.478,0.47,0.462,0.454,0.445,0.436,0.427,0.417,0.407,0.396,0.385,0.374,0.362,0.35,0.32,0.26,0.2,0.14,0.09,0.04,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.504,0.516,0.533,0.56,0.58,0.61,0.64,0.67,0.7,0.72,0.75,0.78,0.8,0.815,0.828,0.837,0.84,0.836,0.826,0.81,0.789,0.76,0.74,0.7,0.67,0.64,0.6,0.56,0.53,0.49,0.46,0.43,0.4,0.37,0.34,0.32,0.304,0.291,0.283,0.28,0.281,0.284,0.289,0.296,0.305,0.314,0.325,0.337,0.349,0.362,0.375,0.388,0.402,0.415,0.427,0.44,0.451,0.461,0.471,0.479,0.487,0.492,0.496,0.499,0.5\r\r\nPARAM_BOING=0,0.002,0.009,0.019,0.031,0.045,0.06,0.076,0.093,0.109,0.125,0.14,0.154,0.166,0.176,0.183,0.188,0.19,0.189,0.185,0.18,0.173,0.164,0.155,0.144,0.133,0.121,0.109,0.097,0.084,0.072,0.061,0.05,0.039,0.03,0.021,0.014,0.008,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.003,-0.011,-0.022,-0.037,-0.054,-0.073,-0.093,-0.112,-0.132,-0.151,-0.17,-0.186,-0.201,-0.213,-0.222,-0.228,-0.23,-0.23,-0.228,-0.225,-0.222,-0.218,-0.213,-0.207,-0.201,-0.194,-0.187,-0.179,-0.17,-0.162,-0.153,-0.144,-0.134,-0.125,-0.115,-0.105,-0.096,-0.086,-0.077,-0.068,-0.06,-0.051,-0.043,-0.036,-0.029,-0.023,-0.017,-0.012,-0.008,-0.005,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.004,0.014,0.03,0.05,0.07,0.1,0.12,0.15,0.18,0.2,0.23,0.25,0.271,0.287,0.299,0.307,0.31,0.31,0.308,0.306,0.302,0.298,0.292,0.286,0.278,0.269,0.259,0.248,0.235,0.221,0.206,0.189,0.171,0.152,0.13,0.11,0.08,0.06,0.03,0,-0.04,-0.07,-0.1,-0.14,-0.17,-0.2,-0.22,-0.25,-0.266,-0.281,-0.291,-0.298,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_WING_DEFORM=0,-0.006,-0.022,-0.05,-0.08,-0.12,-0.16,-0.2,-0.25,-0.29,-0.34,-0.39,-0.43,-0.48,-0.52,-0.55,-0.58,-0.61,-0.64,-0.66,-0.679,-0.697,-0.713,-0.727,-0.74,-0.75,-0.76,-0.768,-0.775,-0.781,-0.785,-0.789,-0.792,-0.795,-0.797,-0.798,-0.8,-0.8,-0.8,-0.8,-0.8,-0.78,-0.72,-0.63,-0.51,-0.39,-0.26,-0.13,0,0.1,0.19,0.26,0.31,0.32,0.314,0.296,0.27,0.24,0.2,0.16,0.12,0.08,0.05,0.02,0.006,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,1.25,4.29,8,11.62,14.53,16.37,17,16.63,15.6,13.98,11.92,9.46,6.78,3.94,1.06,-1.78,-4.46,-6.92,-8.98,-10.6,-11.63,-12,-11.94,-11.77,-11.5,-11.14,-10.72,-10.22,-9.66,-9.07,-8.45,-7.79,-7.12,-6.43,-5.74,-5.06,-4.4,-3.75,-3.14,-2.55,-2.01,-1.52,-1.09,-0.71,-0.41,-0.19,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,1.54,5.3,9.89,14.36,17.95,20.23,21,20.47,18.97,16.62,13.64,10.07,6.19,2.09,-2.09,-6.19,-10.07,-13.64,-16.62,-18.97,-20.47,-21,-20.89,-20.59,-20.12,-19.5,-18.75,-17.88,-16.91,-15.88,-14.78,-13.63,-12.46,-11.25,-10.04,-8.86,-7.7,-6.56,-5.49,-4.47,-3.51,-2.66,-1.9,-1.25,-0.72,-0.33,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,1.18,4.04,7.53,10.94,13.67,15.41,16,15.75,15.04,13.92,12.49,10.8,8.95,6.99,5.01,3.05,1.2,-0.49,-1.92,-3.04,-3.75,-4,-3.98,-3.92,-3.83,-3.71,-3.57,-3.41,-3.22,-3.02,-2.82,-2.6,-2.37,-2.14,-1.91,-1.69,-1.47,-1.25,-1.05,-0.85,-0.67,-0.51,-0.36,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EMOTION=-1,-0.7,-0.698,-0.697,-0.695,-0.694,-0.693,-0.692,-0.692,-0.69,-0.691,-0.69,-0.69,-0.69,-0.69,-0.691,-0.694,-0.698,-0.701,-0.705,-0.707,-0.709,-0.71,-0.709,-0.708,-0.705,-0.702,-0.699,-0.695,-0.692,-0.689,-0.686,-0.683,-0.682,-0.68,-0.68,-0.68,-0.68,-0.682,-0.683,-0.685,-0.687,-0.689,-0.692,-0.695,-0.698,-0.702,-0.706,-0.71,-0.94,-0.945,-0.95,-0.955,-0.959,-0.963,-0.967,-0.971,-0.974,-0.977,-0.98,-0.983,-0.985,-0.988,-0.99,-0.992,-0.993,-0.995,-0.996,-0.997,-1,-0.999,-0.999,-1,-1,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0,0,0,0,0,0,0,0,0,0.001,0,0,0.002,0,0,0.003,0,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.009,0.009,0.01,0.011,0.011,0.012,0.013,0.01,0.015,0.016,0.017,0.018,0.019,0.02,0.021,0.022,0.023,0.024,0.025,0.026,0.028,0.029,0.03,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0,0,0,0,0,0,0,0,0,0.001,0,0,0.002,0,0,0.003,0,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.009,0.009,0.01,0.011,0.011,0.012,0.013,0.01,0.015,0.016,0.017,0.018,0.019,0.02,0.021,0.022,0.023,0.024,0.025,0.026,0.028,0.029,0.03,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-1,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.984,-0.983,-0.981,-0.98,-0.979,-0.978,-0.976,-0.975,-0.974,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.96,-0.963,-0.963,-0.96,-0.962,-0.96,-0.961,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.962,-0.963,-0.964,-0.966,-0.968,-0.97,-0.973,-0.975,-0.977,-0.98,-0.982,-0.984,-0.987,-0.989,-0.991,-0.993,-0.995,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-1,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.984,-0.983,-0.981,-0.98,-0.979,-0.978,-0.976,-0.975,-0.974,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.96,-0.963,-0.963,-0.96,-0.962,-0.96,-0.961,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.962,-0.963,-0.964,-0.966,-0.968,-0.97,-0.973,-0.975,-0.977,-0.98,-0.982,-0.984,-0.987,-0.989,-0.991,-0.993,-0.995,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,-0.017,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.241,-0.19,-0.14,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,-0.017,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.241,-0.19,-0.14,-0.08,-0.04,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.311,-0.36,-0.41,-0.47,-0.53,-0.57,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,0,0.07,0.12,0.16,0.18,0.196,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.21,0.21,0.21,0.208,0.21,0.21,0.207,0.21,0.21,0.206,0.21,0.205,0.2,0.204,0.2,0.203,0.2,0.202,0.201,0.2,0.2,0.199,0.2,0.197,0.197,0.196,0.2,0.194,0.194,0.193,0.192,0.191,0.19,0.19,0.188,0.187,0.186,0.185,0.184,0.183,0.182,0.181,0.18,0.179,0.177,0.176,0.175,0.174,0.173,0.171,0.17,-0.22,-0.31,-0.39,-0.44,-0.47,-0.494,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.83,0.67,0.48,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.08,-0.15,-0.24,-0.37,-0.97,-0.97,-0.97,-0.97,-0.968,-0.968,-0.966,-0.965,-0.964,-0.962,-0.96,-0.958,-0.956,-0.953,-0.95,-0.947,-0.944,-0.941,-0.937,-0.933,-0.929,-0.925,-0.92,-0.915,-0.91,-0.69,-0.43,-0.28,-0.22,-0.2,-0.27,-0.39,-0.46,-0.49,-0.43,-0.32,-0.23,-0.16,-0.13,-0.21,-0.33,-0.41,-0.44,-0.42,-0.33,-0.18,0,0.39,0.69,0.85,0.9\r\r\nPARAM_MOUTH_EMO=0,0.16,0.16,0.162,0.163,0.164,0.165,0.166,0.167,0.168,0.169,0.169,0.17,0.171,0.172,0.173,0.17,0.175,0.176,0.177,0.177,0.178,0.179,0.18,0.25,0.25,0.25,0.25,0.25,0.25,0.249,0.25,0.248,0.25,0.247,0.246,0.25,0.244,0.243,0.242,0.241,0.24,0.239,0.238,0.236,0.235,0.233,0.232,0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.89,2.59,2.15,1.62,1.02,0.39,-0.24,-0.85,-1.42,-1.94,-2.37,-2.71,-2.92,-3,-2.9,-2.66,-2.33,-1.95,-1.55,-1.16,-0.79,-0.48,-0.22,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,3.92,3.73,3.44,3.08,2.68,2.26,1.84,1.43,1.05,0.71,0.42,0.2,0.05,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.16,-0.27,-0.41,-0.56,-0.73,-0.9,-1.09,-1.28,-1.48,-1.67,-1.86,-2.04,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-2.96,-2.86,-2.69,-2.48,-2.23,-1.96,-1.68,-1.39,-1.12,-0.85,-0.61,-0.4,-0.23,-0.11,-0.03,0\r\r\nPARAM_BODY_Y=0,-0.011,-0.04,-0.08,-0.13,-0.17,-0.22,-0.26,-0.29,-0.304,-0.31,-0.307,-0.3,-0.288,-0.272,-0.254,-0.23,-0.21,-0.18,-0.16,-0.13,-0.1,-0.07,-0.03,0,0.04,0.07,0.09,0.113,0.128,0.139,0.148,0.153,0.157,0.159,0.16,0.157,0.148,0.135,0.119,0.101,0.082,0.064,0.046,0.031,0.018,0.008,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.517,0.56,0.63,0.7,0.78,0.85,0.91,0.96,0.99,1,0.987,0.95,0.9,0.84,0.77,0.7,0.62,0.55,0.48,0.42,0.37,0.33,0.31,0.3,0.316,0.36,0.41,0.47,0.54,0.6,0.66,0.71,0.75,0.78,0.79,0.788,0.783,0.773,0.76,0.744,0.72,0.7,0.67,0.64,0.61,0.58,0.54,0.5,0.45,0.41,0.37,0.33,0.31,0.29,0.269,0.258,0.252,0.25,0.253,0.262,0.276,0.294,0.31,0.34,0.36,0.38,0.41,0.43,0.449,0.466,0.481,0.491,0.498,0.5\r\r\nPARAM_BOING=0,0.04,0.13,0.23,0.35,0.45,0.53,0.59,0.61,0.53,0.34,0.1,-0.13,-0.31,-0.43,-0.47,-0.42,-0.31,-0.17,-0.02,0.09,0.14,0.08,-0.01,-0.08,-0.1,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.1,-0.19,-0.28,-0.37,-0.44,-0.48,-0.5,-0.47,-0.4,-0.3,-0.18,-0.06,0.06,0.18,0.27,0.35,0.4,0.42,0.406,0.37,0.31,0.24,0.17,0.09,0,-0.07,-0.14,-0.19,-0.23,-0.26,-0.27,-0.261,-0.24,-0.2,-0.16,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.02,0.09,0.18,0.28,0.39,0.48,0.57,0.63,0.68,0.69,0.69,0.692,0.69,0.69,0.69,0.686,0.68,0.66,0.61,0.54,0.46,0.37,0.27,0.16,0.06,-0.04,-0.14,-0.23,-0.3,-0.37,-0.41,-0.44,-0.45,-0.441,-0.42,-0.37,-0.32,-0.26,-0.2,-0.13,-0.05,0.02,0.08,0.14,0.19,0.24,0.26,0.27,0.261,0.24,0.2,0.16,0.12,0.08,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.014,-0.05,-0.11,-0.18,-0.25,-0.32,-0.39,-0.45,-0.5,-0.54,-0.58,-0.6,-0.608,-0.611,-0.61,-0.611,-0.61,-0.599,-0.57,-0.52,-0.45,-0.38,-0.3,-0.21,-0.13,-0.05,0.03,0.11,0.17,0.22,0.26,0.28,0.29,0.285,0.27,0.25,0.22,0.18,0.15,0.11,0.06,0.02,-0.01,-0.05,-0.08,-0.1,-0.115,-0.12,-0.116,-0.105,-0.089,-0.072,-0.053,-0.036,-0.021,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.021,0.07,0.15,0.24,0.34,0.42,0.5,0.55,0.59,0.6,0.58,0.51,0.41,0.28,0.14,-0.01,-0.16,-0.3,-0.43,-0.53,-0.6,-0.62,-0.59,-0.51,-0.39,-0.25,-0.11,0.02,0.13,0.22,0.27,0.29,0.271,0.23,0.18,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.004,-0.016,-0.035,-0.06,-0.09,-0.12,-0.16,-0.2,-0.24,-0.27,-0.31,-0.35,-0.38,-0.41,-0.44,-0.454,-0.466,-0.47,-0.47,-0.468,-0.466,-0.463,-0.459,-0.454,-0.449,-0.443,-0.436,-0.428,-0.42,-0.412,-0.403,-0.393,-0.384,-0.373,-0.362,-0.351,-0.34,-0.329,-0.317,-0.305,-0.293,-0.28,-0.268,-0.255,-0.243,-0.23,-0.218,-0.205,-0.193,-0.181,-0.169,-0.157,-0.145,-0.133,-0.122,-0.111,-0.101,-0.091,-0.081,-0.071,-0.062,-0.054,-0.046,-0.038,-0.031,-0.025,-0.02,-0.015,-0.01,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_WING_DEFORM=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.42,0.48,0.53,0.58,0.63,0.67,0.7,0.714,0.72,0.719,0.717,0.714,0.709,0.703,0.696,0.687,0.678,0.667,0.656,0.644,0.631,0.617,0.603,0.588,0.572,0.555,0.538,0.521,0.503,0.485,0.467,0.448,0.429,0.41,0.391,0.372,0.353,0.334,0.314,0.295,0.277,0.258,0.24,0.222,0.204,0.187,0.171,0.154,0.139,0.124,0.109,0.095,0.082,0.07,0.059,0.048,0.039,0.03,0.022,0.016,0.01,0.006,0.003,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.08,0.35,0.82,1.51,2.42,3.62,5.1,6.89,9,11.51,13.78,15.93,17.88,19.68,21.32,22.84,24.18,25.4,26.46,27.39,28.18,28.83,29.34,29.7,29.93,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,28.97,26.26,22.35,17.88,13.25,8.92,5.23,2.4,0.63,0\r\r\nPARAM_ANGLE_Y=0,-0.69,-2.53,-5.2,-8.37,-11.63,-14.8,-17.47,-19.31,-20,-19.71,-18.94,-17.75,-16.23,-14.45,-12.45,-10.27,-8.03,-5.65,-3.31,-0.96,1.36,3.61,5.71,7.67,9.44,11,12.52,13.87,15.06,16.12,17.03,17.82,18.5,19.07,19.54,19.93,20.24,20.48,20.66,20.79,20.89,20.95,20.98,20.996,21,19.02,13.99,6.77,-1.41,-9.25,-16,-21.63,-25.43,-27.76,-29.07,-29.71,-29.95,-30,-28.97,-26.26,-22.35,-17.88,-13.25,-8.92,-5.23,-2.4,-0.63,0\r\r\nPARAM_ANGLE_Z=0,0.45,1.65,3.38,5.44,7.56,9.62,11.35,12.55,13,12.81,12.3,11.52,10.54,9.4,8.14,6.79,5.43,4.02,2.66,1.35,0.1,-1.05,-2.05,-2.89,-3.55,-4,-4.35,-4.65,-4.91,-5.14,-5.34,-5.5,-5.63,-5.74,-5.82,-5.89,-5.93,-5.97,-5.99,-6,-6.005,-6.01,-6.004,-6.001,-6,-4.98,-2.45,1.03,4.72,7.89,10,11.27,12.1,12.59,12.85,12.96,13,13,12.55,11.38,9.69,7.75,5.74,3.87,2.26,1.04,0.27,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.64,0.8,0.91,0.94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91,0.898,0.86,0.82,0.76,0.7,0.64,0.6,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.64,0.8,0.91,0.94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.91,0.898,0.86,0.82,0.76,0.7,0.64,0.6,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,0.82,0.8,0.73,0.63,0.52,0.4,0.29,0.19,0.12,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.29,0.46,0.63,0.77,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,0.82,0.8,0.73,0.63,0.52,0.4,0.29,0.19,0.12,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.28,0.46,0.63,0.76,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,-0.004,-0.01,-0.04,-0.09,-0.13,-0.17,-0.19,-0.205,-0.219,-0.23,-0.24,-0.248,-0.255,-0.26,-0.264,-0.267,-0.269,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.256,-0.22,-0.18,-0.13,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.077,-0.07,-0.06,-0.048,-0.035,-0.024,-0.014,-0.006,-0.002,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0.02,0.06,0.1,0.12,0.13,0.128,0.123,0.116,0.107,0.096,0.085,0.074,0.063,0.054,0.047,0.042,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,-0.01,-0.14,-0.32,-0.49,-0.62,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.65,-0.59,-0.5,-0.4,-0.3,-0.2,-0.12,-0.05,-0.01,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_ANGLE=0.2,-0.33,-0.36,-0.38,-0.41,-0.427,-0.444,-0.459,-0.471,-0.481,-0.488,-0.494,-0.497,-0.499,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,0,0.05,0.08,0.12,0.14,0.165,0.181,0.192,0.198,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.27,0.269,0.266,0.261,0.255,0.248,0.241,0.234,0.227,0.222,0.217,0.213,0.211,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,-0.3,-0.35,-0.38,-0.42,-0.44,-0.465,-0.481,-0.492,-0.498,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.84,0.72,0.57,0.4,0.21,0,-0.16,-0.27,-0.35,-0.4,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.44,-0.36,-0.24,-0.12,-0.03,0,0,0,0,0,0,0,0,0.03,0.11,0.23,0.36,0.5,0.63,0.74,0.83,0.88,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0,0,0,0,0.004,0.017,0.04,0.07,0.12,0.18,0.44,0.48,0.48,0.48,0.48,0.48,0.48,0.479,0.48,0.477,0.477,0.476,0.475,0.474,0.472,0.471,0.47,0.468,0.466,0.465,0.463,0.461,0.459,0.457,0.454,0.452,0.45,0.447,0.445,0.442,0.439,0.436,0.433,0.43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0,0.006,0.024,0.05,0.09,0.13,0.17,0.22,0.28,0.33,0.39,0.44,0.49,0.54,0.58,0.63,0.66,0.69,0.71,0.725,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.7,0.64,0.54,0.44,0.32,0.22,0.13,0.06,0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.987,-0.95,-0.9,-0.82,-0.74,-0.65,-0.55,-0.45,-0.35,-0.26,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0.015,0.06,0.11,0.18,0.26,0.33,0.38,0.42,0.44,0.44,0.44,0.438,0.437,0.435,0.433,0.431,0.429,0.426,0.423,0.42,0.417,0.413,0.41,0.406,0.402,0.399,0.395,0.391,0.388,0.384,0.38,0.377,0.373,0.37,0.367,0.364,0.361,0.359,0.357,0.355,0.353,0.352,0.351,0.35,0.35,0.35,0.35,0.352,0.353,0.354,0.355,0.356,0.357,0.358,0.36,0.359,0.36,0.36,0.348,0.32,0.27,0.21,0.16,0.11,0.06,0.03,0.01,0\r\r\nPARAM_BREATH=0.5,0.489,0.46,0.42,0.37,0.31,0.26,0.22,0.19,0.18,0.182,0.187,0.196,0.208,0.223,0.241,0.261,0.28,0.31,0.33,0.36,0.39,0.42,0.46,0.49,0.52,0.56,0.59,0.62,0.66,0.69,0.72,0.76,0.79,0.82,0.85,0.87,0.9,0.92,0.939,0.957,0.972,0.984,0.993,0.998,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0.017,0.06,0.13,0.2,0.28,0.35,0.41,0.46,0.49,0.5\r\r\nPARAM_BOING=0,0.011,0.04,0.08,0.13,0.19,0.24,0.28,0.31,0.32,0.29,0.21,0.12,0.03,-0.06,-0.13,-0.18,-0.2,-0.18,-0.14,-0.08,-0.03,0.02,0.06,0.09,0.1,0.082,0.05,0.03,0.008,0,0.001,0.004,0.009,0.016,0.023,0.032,0.041,0.049,0.058,0.067,0.074,0.081,0.086,0.089,0.09,0.075,0.03,-0.03,-0.1,-0.17,-0.24,-0.3,-0.34,-0.36,-0.33,-0.25,-0.16,-0.07,0.02,0.09,0.14,0.16,0.148,0.12,0.08,0.04,0.01,0\r\r\nPARAM_HAIR_FRONT=0,0.003,0.011,0.024,0.041,0.06,0.08,0.11,0.14,0.16,0.19,0.22,0.25,0.28,0.31,0.33,0.36,0.38,0.399,0.417,0.431,0.441,0.448,0.45,0.447,0.439,0.425,0.407,0.39,0.36,0.33,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.1,0.07,0.05,0.035,0.02,0.009,0.002,0,0.011,0.04,0.08,0.14,0.19,0.26,0.32,0.38,0.43,0.47,0.5,0.52,0.53,0.512,0.46,0.39,0.32,0.23,0.16,0.09,0.04,0.01,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.009,0.019,0.033,0.049,0.068,0.09,0.11,0.14,0.16,0.19,0.22,0.24,0.27,0.29,0.32,0.34,0.36,0.382,0.399,0.413,0.425,0.433,0.438,0.44,0.436,0.425,0.409,0.39,0.36,0.33,0.3,0.27,0.24,0.21,0.18,0.14,0.12,0.09,0.06,0.04,0.024,0.011,0.003,0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.513,0.52,0.502,0.46,0.39,0.31,0.23,0.15,0.09,0.04,0.01,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.003,-0.011,-0.024,-0.041,-0.06,-0.09,-0.11,-0.14,-0.18,-0.21,-0.24,-0.28,-0.31,-0.34,-0.38,-0.41,-0.44,-0.46,-0.49,-0.51,-0.526,-0.54,-0.551,-0.558,-0.56,-0.555,-0.541,-0.52,-0.49,-0.46,-0.43,-0.39,-0.35,-0.31,-0.26,-0.22,-0.18,-0.15,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0,-0.01,-0.04,-0.08,-0.13,-0.19,-0.25,-0.31,-0.37,-0.42,-0.46,-0.49,-0.513,-0.52,-0.502,-0.46,-0.39,-0.31,-0.23,-0.15,-0.09,-0.04,-0.01,0\r\r\nPARAM_TWIN_RIBBON_D=0,-0.003,-0.01,-0.022,-0.037,-0.056,-0.08,-0.1,-0.13,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.31,-0.33,-0.353,-0.368,-0.38,-0.387,-0.39,-0.39,-0.388,-0.386,-0.383,-0.379,-0.374,-0.368,-0.36,-0.351,-0.34,-0.329,-0.315,-0.3,-0.283,-0.264,-0.24,-0.22,-0.2,-0.17,-0.14,-0.11,-0.07,-0.04,0,0.05,0.11,0.18,0.25,0.31,0.37,0.42,0.46,0.47,0.42,0.32,0.19,0.06,-0.07,-0.17,-0.23,-0.26,-0.24,-0.19,-0.13,-0.07,-0.02,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.004,-0.016,-0.034,-0.06,-0.08,-0.11,-0.14,-0.17,-0.2,-0.23,-0.26,-0.28,-0.31,-0.324,-0.338,-0.347,-0.35,-0.35,-0.349,-0.347,-0.345,-0.343,-0.339,-0.335,-0.33,-0.324,-0.317,-0.309,-0.3,-0.29,-0.279,-0.267,-0.254,-0.239,-0.224,-0.207,-0.189,-0.17,-0.15,-0.13,-0.1,-0.08,-0.06,-0.03,0,0.04,0.1,0.16,0.23,0.29,0.35,0.4,0.43,0.45,0.46,0.451,0.43,0.39,0.34,0.29,0.24,0.18,0.13,0.09,0.05,0.02,0.006,0\r\r\nPARAM_WING_DEFORM=0,-0.009,-0.03,-0.07,-0.12,-0.17,-0.23,-0.29,-0.36,-0.42,-0.48,-0.54,-0.59,-0.64,-0.68,-0.7,-0.723,-0.73,-0.729,-0.726,-0.722,-0.715,-0.707,-0.697,-0.684,-0.67,-0.654,-0.637,-0.616,-0.59,-0.57,-0.55,-0.52,-0.49,-0.46,-0.43,-0.39,-0.35,-0.32,-0.28,-0.23,-0.19,-0.15,-0.1,-0.05,0,0.06,0.11,0.16,0.2,0.24,0.26,0.28,0.299,0.307,0.31,0.304,0.287,0.26,0.23,0.2,0.16,0.12,0.09,0.06,0.03,0.016,0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch Dere6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.6,2.07,4.08,6.18,7.93,9,9.47,9.76,9.92,9.99,10.004,10,10,9.995,9.977,9.94,9.88,9.78,9.66,9.49,9.28,9.03,8.73,8.39,8,7.44,6.76,5.95,5.08,4.19,3.29,2.43,1.66,0.98,0.46,0.12,0\r\r\nPARAM_ANGLE_Y=0,1.65,5.75,11.4,17.41,22.56,26,27.79,28.93,29.6,29.91,30,30,29.3,27.43,24.61,21.08,17.17,13.01,8.93,5.12,1.75,-1.09,-3.22,-4.54,-5,-4.9,-4.63,-4.22,-3.7,-3.12,-2.5,-1.88,-1.3,-0.78,-0.37,-0.1,0\r\r\nPARAM_ANGLE_Z=0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.84,-2.41,-1.77,-0.96,-0.07,0.88,1.82,2.69,3.46,4.11,4.59,4.9,5,4.9,4.63,4.22,3.7,3.12,2.5,1.88,1.3,0.78,0.37,0.1,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.64,0.78,0.88,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.903,0.884,0.85,0.82,0.77,0.73,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.64,0.78,0.88,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.903,0.884,0.85,0.82,0.77,0.73,0.69,0.64,0.61,0.58,0.557,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.06,-0.15,-0.21,-0.23,-0.23,-0.228,-0.225,-0.221,-0.216,-0.21,-0.203,-0.196,-0.188,-0.18,-0.17,-0.161,-0.151,-0.141,-0.131,-0.12,-0.11,-0.099,-0.089,-0.079,-0.069,-0.06,-0.05,-0.042,-0.034,-0.027,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_BROW_R_Y=0,-0.06,-0.15,-0.21,-0.23,-0.23,-0.228,-0.225,-0.221,-0.216,-0.21,-0.203,-0.196,-0.188,-0.18,-0.17,-0.161,-0.151,-0.141,-0.131,-0.12,-0.11,-0.099,-0.089,-0.079,-0.069,-0.06,-0.05,-0.042,-0.034,-0.027,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_BROW_ANGLE=0.2,0.11,-0.03,-0.13,-0.16,-0.159,-0.156,-0.152,-0.145,-0.138,-0.129,-0.118,-0.107,-0.094,-0.081,-0.067,-0.052,-0.036,-0.021,-0.004,0.012,0.028,0.044,0.061,0.076,0.092,0.107,0.121,0.134,0.147,0.158,0.169,0.178,0.185,0.192,0.196,0.199,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.92,0.89,0.81,0.72,0.63,0.56,0.52,0.5,0.5,0.5,0.5,0.5,0.5,0.514,0.55,0.61,0.68,0.74,0.81,0.87,0.91,0.92,0.04,0.033,0.028,0.023,0.018,0.014,0.011,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.979,-0.98,-0.98,-0.978,-0.98,-0.977,-0.98,-0.976,-0.98,-0.974,-0.974,-0.973,-0.972,-0.971,-0.97,0.83,0.842,0.852,0.861,0.868,0.875,0.881,0.885,0.89,0.893,0.896,0.897,0.899,0.9,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.15,-0.52,-1,-1.48,-1.85,-2,-2,-2,-2,-2,-2,-2,-1.94,-1.78,-1.54,-1.24,-0.9,-0.54,-0.19,0.13,0.42,0.66,0.85,0.96,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.38,1.29,2.5,3.71,4.62,5,5,5,5,5,5,5,4.86,4.49,3.92,3.22,2.43,1.6,0.79,0.02,-0.65,-1.22,-1.64,-1.91,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0\r\r\nPARAM_BODY_Y=0,0.019,0.07,0.14,0.21,0.28,0.33,0.36,0.382,0.394,0.399,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.392,0.37,0.34,0.3,0.25,0.2,0.15,0.1,0.06,0.03,0.01,0\r\r\nPARAM_BREATH=0.5,0.512,0.55,0.59,0.65,0.71,0.77,0.82,0.85,0.87,0.884,0.889,0.89,0.888,0.882,0.873,0.861,0.846,0.829,0.81,0.79,0.77,0.74,0.72,0.7,0.67,0.65,0.63,0.61,0.587,0.568,0.551,0.537,0.524,0.514,0.506,0.502,0.5\r\r\nPARAM_BOING=0,0.02,0.07,0.14,0.2,0.25,0.28,0.29,0.25,0.17,0.06,-0.04,-0.12,-0.17,-0.19,-0.176,-0.14,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.019,-0.07,-0.14,-0.23,-0.32,-0.41,-0.48,-0.53,-0.55,-0.54,-0.51,-0.47,-0.41,-0.34,-0.27,-0.19,-0.12,-0.04,0.03,0.09,0.15,0.2,0.23,0.25,0.26,0.255,0.241,0.22,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0\r\r\nPARAM_HAIR_SIDE_R=0,0.007,0.025,0.05,0.08,0.11,0.13,0.16,0.19,0.204,0.216,0.22,0.214,0.197,0.17,0.14,0.1,0.06,0.01,-0.03,-0.07,-0.12,-0.15,-0.19,-0.21,-0.233,-0.246,-0.25,-0.241,-0.22,-0.19,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_HAIR_SIDE_L=0,0.013,0.04,0.09,0.14,0.19,0.24,0.29,0.33,0.36,0.38,0.39,0.382,0.36,0.32,0.28,0.22,0.16,0.1,0.04,-0.02,-0.08,-0.13,-0.18,-0.22,-0.25,-0.264,-0.27,-0.261,-0.24,-0.2,-0.16,-0.12,-0.08,-0.05,-0.02,-0.006,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.013,0.05,0.09,0.14,0.2,0.25,0.3,0.35,0.38,0.4,0.41,0.408,0.402,0.393,0.381,0.366,0.349,0.33,0.31,0.29,0.27,0.24,0.22,0.2,0.17,0.15,0.13,0.11,0.087,0.069,0.052,0.037,0.024,0.014,0.006,0.002,0\r\r\nPARAM_WING_DEFORM=0,0.03,0.1,0.2,0.31,0.43,0.55,0.66,0.75,0.82,0.87,0.89,0.886,0.873,0.853,0.83,0.79,0.76,0.72,0.67,0.63,0.58,0.53,0.48,0.43,0.38,0.33,0.28,0.23,0.19,0.15,0.11,0.08,0.05,0.03,0.014,0.004,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch1.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.36,-0.93,-1.46,-1.85,-2,-1.52,-0.23,1.64,3.86,6.14,8.36,10.23,11.52,12,11.76,11.12,10.13,8.88,7.5,6,4.5,3.12,1.88,0.88,0.24,0,0,0,0,0,0,0,0,0,0,0,0,0.79,2.92,6.02,9.71,13.55,17.31,20.55,22.91,24,24.33,24.65,24.95,25.25,25.54,25.82,26.08,26.33,26.58,26.81,27.03,27.24,27.45,27.65,27.83,28.01,28.18,28.34,28.48,28.63,28.76,28.89,29.01,29.12,29.22,29.32,29.41,29.49,29.56,29.63,29.7,29.75,29.8,29.84,29.88,29.91,29.94,29.96,29.979,29.991,29.998,30,30,29.96,29.85,29.65,29.36,28.99,28.52,27.95,27.28,26.5,25.6,24.6,23.47,22.22,20.87,19.36,17.71,15.93,14,11.67,9.55,7.65,5.93,4.44,3.14,2.03,1.17,0.53,0.14,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,28.66,25.06,19.86,13.69,7.31,1.14,-4.06,-7.66,-9,-8.66,-7.75,-6.34,-4.58,-2.62,-0.5,1.62,3.58,5.34,6.75,7.66,8,7.984,7.9,7.73,7.43,6.99,6.38,5.56,4.56,3.3,1.81,0,-2.71,-6.37,-10.64,-15.17,-19.55,-23.62,-26.94,-29.18,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.04,-26.62,-23.34,-19.51,-15.53,-11.6,-7.88,-4.75,-2.23,-0.6,0\r\r\nPARAM_ANGLE_Z=0,-1.07,-2.79,-4.39,-5.55,-6,-5.69,-4.86,-3.66,-2.24,-0.76,0.66,1.86,2.69,3,2.94,2.78,2.53,2.22,1.87,1.5,1.13,0.78,0.47,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.027,0.06,0.1,0.16,0.22,0.3,0.38,0.47,0.57,0.68,0.79,0.91,1.04,1.17,1.3,1.44,1.58,1.71,1.86,2,2.14,2.29,2.42,2.56,2.7,2.83,2.96,3.09,3.21,3.32,3.43,3.53,3.62,3.7,3.78,3.84,3.9,3.94,3.97,3.993,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.87,3.55,3.11,2.6,2.07,1.55,1.05,0.63,0.3,0.08,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.554,0.557,0.56,0.562,0.565,0.567,0.569,0.57,0.57,0.01,0.007,0.005,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.552,0.554,0.557,0.56,0.562,0.565,0.567,0.569,0.57,0.57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.92,0.907,0.87,0.83,0.77,0.71,0.66,0.61,0.58,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.1,0.094,0.08,0.063,0.044,0.028,0.014,0.004,0,-0.001,-0.002,-0.003,-0.004,-0.005,-0.006,-0.01,-0.008,-0.009,-0.009,-0.01,-0.01,-0.012,-0.012,-0.01,-0.013,-0.01,-0.014,-0.01,-0.015,-0.02,-0.016,-0.02,-0.017,-0.02,-0.02,-0.018,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,0.2,0.53,0.71,0.81,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.96,-0.969,-0.977,-0.983,-0.988,-0.992,-0.995,-0.998,-0.999,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.1,0.094,0.08,0.063,0.044,0.028,0.014,0.004,0,-0.001,-0.002,-0.003,-0.004,-0.005,-0.006,-0.01,-0.008,-0.009,-0.009,-0.01,-0.01,-0.012,-0.012,-0.01,-0.013,-0.01,-0.014,-0.01,-0.015,-0.02,-0.016,-0.02,-0.017,-0.02,-0.02,-0.018,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,0.2,0.53,0.71,0.81,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.98,-0.985,-0.988,-0.992,-0.994,-0.996,-0.998,-0.999,-0.999,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0.03,0.07,0.12,0.15,0.16,0.159,0.156,0.151,0.145,0.137,0.128,0.119,0.108,0.097,0.086,0.074,0.063,0.052,0.041,0.032,0.023,0.015,0.009,0.004,0.001,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.16,-0.25,-0.31,-0.34,-0.29,-0.2,-0.14,-0.12,-0.12,-0.122,-0.125,-0.128,-0.133,-0.138,-0.144,-0.151,-0.159,-0.167,-0.176,-0.185,-0.195,-0.206,-0.216,-0.227,-0.238,-0.25,-0.261,-0.273,-0.285,-0.297,-0.309,-0.32,-0.332,-0.343,-0.354,-0.364,-0.375,-0.385,-0.394,-0.403,-0.411,-0.419,-0.426,-0.432,-0.437,-0.442,-0.445,-0.448,-0.449,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.436,-0.4,-0.35,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,-0.014,-0.04,-0.06,-0.074,-0.08,-0.079,-0.078,-0.076,-0.072,-0.069,-0.064,-0.059,-0.054,-0.048,-0.043,-0.037,-0.032,-0.026,-0.021,-0.016,-0.011,-0.008,-0.004,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.05,0.09,0.15,0.21,0.3,0.35,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.368,0.34,0.3,0.25,0.2,0.15,0.1,0.06,0.03,0.01,0\r\r\nPARAM_BROW_L_Y=0,0.09,0.24,0.38,0.48,0.52,0.5,0.44,0.36,0.26,0.16,0.07,-0.02,-0.08,-0.1,-0.103,-0.105,-0.106,-0.108,-0.109,-0.11,-0.111,-0.112,-0.114,-0.115,-0.117,-0.12,-0.125,-0.134,-0.144,-0.157,-0.171,-0.186,-0.203,-0.221,-0.24,-0.259,-0.28,-0.31,-0.35,-0.4,-0.45,-0.49,-0.54,-0.58,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.68,-0.79,-0.89,-0.96,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.96,-0.88,-0.77,-0.64,-0.51,-0.38,-0.26,-0.16,-0.07,-0.02,0\r\r\nPARAM_BROW_R_Y=0,0.09,0.24,0.38,0.48,0.52,0.5,0.45,0.37,0.27,0.18,0.08,0,-0.06,-0.09,-0.098,-0.104,-0.109,-0.114,-0.118,-0.121,-0.125,-0.128,-0.132,-0.137,-0.143,-0.15,-0.161,-0.173,-0.187,-0.203,-0.22,-0.239,-0.259,-0.28,-0.3,-0.33,-0.35,-0.38,-0.43,-0.47,-0.52,-0.57,-0.61,-0.65,-0.67,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.74,-0.83,-0.91,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0\r\r\nPARAM_BROW_ANGLE=0.2,0.198,0.192,0.182,0.169,0.154,0.136,0.116,0.1,0.07,0.05,0.03,0,-0.02,-0.05,-0.07,-0.1,-0.12,-0.14,-0.158,-0.176,-0.191,-0.204,-0.215,-0.223,-0.228,-0.23,-0.227,-0.22,-0.21,-0.199,-0.187,-0.175,-0.164,-0.154,-0.147,-0.142,-0.14,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.52,-0.43,-0.35,-0.28,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.245,-0.21,-0.16,-0.1,-0.04,0.02,0.08,0.13,0.17,0.19,0.2\r\r\nPARAM_BROW_SELECT=-0.5,-0.5,-0.5,-0.498,-0.496,-0.494,-0.492,-0.489,-0.485,-0.481,-0.477,-0.472,-0.467,-0.461,-0.455,-0.448,-0.441,-0.434,-0.426,-0.417,-0.408,-0.399,-0.389,-0.379,-0.368,-0.357,-0.345,-0.333,-0.321,-0.308,-0.294,-0.281,-0.267,-0.252,-0.237,-0.222,-0.206,-0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.16,0.1,0.03,-0.06,-0.15,-0.24,-0.32,-0.39,-0.45,-0.49,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.74,0.49,0.25,0.08,0,-0.013,-0.026,-0.038,-0.05,-0.06,-0.071,-0.08,-0.089,-0.098,-0.106,-0.113,-0.12,-0.127,-0.133,-0.138,-0.144,-0.148,-0.153,-0.157,-0.161,-0.164,-0.167,-0.169,-0.172,-0.174,-0.175,-0.177,-0.178,-0.18,-0.18,-0.18,-0.18,-0.174,-0.157,-0.13,-0.1,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.21,0.41,0.61,0.77,0.86,0.89,0.9,0.902,0.901,0.9\r\r\nPARAM_MOUTH_EMO=0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.131,0.13,0.13,0.132,0.13,0.13,0.133,0.13,0.13,0.134,0.13,0.135,0.14,0.136,0.14,0.137,0.138,0.14,0.139,0.14,0.14,0.141,0.142,0.14,0.144,0.145,0.145,0.146,0.147,0.148,0.149,0.15,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.435,0.444,0.452,0.458,0.46,0.11,0.112,0.115,0.117,0.119,0.12\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.72,-1.86,-2.93,-3.7,-4,-3.83,-3.37,-2.7,-1.91,-1.09,-0.3,0.37,0.83,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.004,0.01,0.018,0.027,0.038,0.051,0.066,0.082,0.1,0.12,0.14,0.16,0.18,0.21,0.23,0.26,0.29,0.31,0.34,0.37,0.4,0.43,0.46,0.49,0.51,0.54,0.57,0.6,0.63,0.66,0.69,0.71,0.74,0.77,0.79,0.82,0.84,0.86,0.88,0.9,0.918,0.934,0.949,0.962,0.973,0.982,0.99,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,6.69,5.86,4.66,3.24,1.76,0.34,-0.86,-1.69,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0,0.04,0.12,0.18,0.23,0.25,0.248,0.244,0.236,0.226,0.214,0.2,0.185,0.169,0.152,0.134,0.116,0.098,0.081,0.065,0.05,0.036,0.024,0.014,0.006,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.009,0.014,0.02,0.027,0.034,0.043,0.052,0.062,0.073,0.084,0.096,0.108,0.121,0.135,0.149,0.163,0.177,0.192,0.207,0.222,0.237,0.252,0.268,0.283,0.298,0.313,0.328,0.343,0.357,0.371,0.385,0.399,0.412,0.424,0.436,0.447,0.458,0.468,0.477,0.486,0.493,0.5,0.506,0.511,0.515,0.518,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.503,0.46,0.4,0.34,0.27,0.2,0.14,0.08,0.04,0.01,0\r\r\nPARAM_BREATH=0.5,0.59,0.73,0.87,0.96,1,0.97,0.9,0.79,0.67,0.53,0.41,0.3,0.23,0.2,0.203,0.212,0.225,0.242,0.26,0.28,0.3,0.318,0.335,0.348,0.357,0.36,0.355,0.341,0.322,0.3,0.28,0.26,0.23,0.217,0.203,0.193,0.19,0.19,0.191,0.193,0.195,0.198,0.202,0.206,0.21,0.216,0.221,0.227,0.233,0.24,0.247,0.254,0.262,0.27,0.278,0.287,0.295,0.304,0.313,0.321,0.33,0.339,0.348,0.357,0.366,0.375,0.384,0.392,0.401,0.409,0.417,0.425,0.433,0.44,0.447,0.454,0.46,0.466,0.472,0.477,0.481,0.486,0.489,0.492,0.495,0.497,0.499,0.5,0.5,0.497,0.489,0.477,0.461,0.442,0.42,0.4,0.37,0.35,0.32,0.29,0.27,0.25,0.229,0.213,0.201,0.193,0.19,0.2,0.22,0.26,0.3,0.34,0.38,0.42,0.45,0.48,0.494,0.5\r\r\nPARAM_BOING=0,-0.04,-0.06,0.02,0.14,0.25,0.34,0.37,0.21,-0.05,-0.23,-0.29,-0.19,-0.02,0.09,0.13,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.1,-0.19,-0.28,-0.35,-0.38,-0.33,-0.22,-0.08,0.07,0.18,0.23,0.2,0.13,0.05,-0.04,-0.11,-0.14,-0.11,-0.07,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,-0.04,-0.13,-0.26,-0.39,-0.48,-0.52,-0.47,-0.35,-0.21,-0.06,0.08,0.19,0.26,0.29,0.26,0.21,0.14,0.06,0,-0.06,-0.1,-0.11,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,0.02,0.08,0.16,0.23,0.29,0.31,0.26,0.16,0.03,-0.11,-0.23,-0.34,-0.4,-0.43,-0.4,-0.32,-0.23,-0.14,-0.05,0.02,0.07,0.09,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.07,0.23,0.43,0.63,0.79,0.89,0.92,0.79,0.47,0.04,-0.38,-0.7,-0.83,-0.79,-0.68,-0.53,-0.36,-0.18,0,0.17,0.31,0.42,0.49,0.52,0.49,0.43,0.32,0.21,0.08,-0.03,-0.14,-0.2,-0.23,-0.222,-0.2,-0.17,-0.13,-0.1,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.1,-0.26,-0.4,-0.51,-0.55,-0.55,-0.548,-0.546,-0.543,-0.539,-0.534,-0.528,-0.521,-0.513,-0.504,-0.494,-0.483,-0.471,-0.458,-0.444,-0.428,-0.411,-0.393,-0.374,-0.35,-0.33,-0.31,-0.28,-0.26,-0.23,-0.2,-0.17,-0.14,-0.11,-0.07,-0.04,0,0.05,0.1,0.16,0.22,0.27,0.32,0.36,0.39,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.45,0.53,0.6,0.65,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.65,0.59,0.52,0.44,0.35,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_WING_DEFORM=0,-0.07,-0.19,-0.3,-0.38,-0.41,-0.409,-0.405,-0.399,-0.391,-0.381,-0.369,-0.356,-0.341,-0.326,-0.309,-0.291,-0.273,-0.255,-0.236,-0.217,-0.198,-0.179,-0.16,-0.142,-0.124,-0.107,-0.09,-0.075,-0.061,-0.048,-0.036,-0.025,-0.017,-0.01,-0.004,-0.001,0,-0.03,-0.13,-0.26,-0.42,-0.58,-0.74,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.1,-0.37,-0.78,-1.3,-1.88,-2.5,-3.12,-3.7,-4.22,-4.63,-4.9,-5,-4.97,-4.88,-4.73,-4.55,-4.32,-4.07,-3.79,-3.49,-3.18,-2.87,-2.54,-2.22,-1.9,-1.6,-1.31,-1.04,-0.79,-0.56,-0.37,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.18,-0.66,-1.41,-2.34,-3.38,-4.5,-5.62,-6.66,-7.59,-8.34,-8.82,-9,-8.94,-8.78,-8.52,-8.19,-7.78,-7.32,-6.82,-6.29,-5.73,-5.16,-4.57,-3.99,-3.43,-2.87,-2.35,-1.86,-1.42,-1.01,-0.67,-0.39,-0.18,-0.05,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.26,-0.96,-2.03,-3.38,-4.88,-6.5,-8.12,-9.62,-10.97,-12.04,-12.74,-13,-12.994,-12.977,-12.94,-12.9,-12.84,-12.76,-12.67,-12.55,-12.42,-12.27,-12.09,-11.9,-11.68,-11.44,-11.17,-10.88,-10.56,-10.21,-9.83,-9.42,-8.98,-8.51,-8,-7.24,-6.27,-5.15,-4.01,-2.91,-1.92,-1.11,-0.5,-0.13,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.549,0.547,0.544,0.54,0.535,0.53,0.525,0.52,0.516,0.513,0.511,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.512,0.513,0.514,0.516,0.518,0.52,0.523,0.525,0.527,0.53,0.532,0.534,0.537,0.539,0.541,0.543,0.545,0.546,0.548,0.549,0.549,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.547,0.54,0.528,0.514,0.497,0.48,0.463,0.446,0.432,0.42,0.413,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.412,0.415,0.419,0.424,0.43,0.437,0.444,0.452,0.461,0.47,0.479,0.489,0.5,0.51,0.521,0.529,0.536,0.541,0.544,0.547,0.548,0.549,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0,-0.011,-0.04,-0.08,-0.14,-0.2,-0.27,-0.33,-0.39,-0.45,-0.49,-0.52,-0.53,-0.527,-0.517,-0.502,-0.482,-0.46,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.24,-0.2,-0.17,-0.14,-0.11,-0.08,-0.06,-0.039,-0.023,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.2,0.201,0.203,0.205,0.208,0.21,0.212,0.215,0.217,0.219,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.219,0.218,0.215,0.212,0.209,0.206,0.203,0.202,0.2,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.888,0.85,0.8,0.74,0.67,0.59,0.51,0.44,0.38,0.33,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.3,0.36,0.44,0.53,0.63,0.72,0.79,0.85,0.89,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.08,-0.29,-0.63,-1.04,-1.5,-2,-2.5,-2.96,-3.38,-3.71,-3.92,-4,-3.997,-3.989,-3.974,-3.954,-3.93,-3.89,-3.85,-3.8,-3.75,-3.68,-3.61,-3.53,-3.44,-3.34,-3.24,-3.12,-2.99,-2.86,-2.71,-2.55,-2.38,-2.2,-2,-1.75,-1.47,-1.18,-0.9,-0.64,-0.42,-0.24,-0.11,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,-0.013,-0.05,-0.1,-0.17,-0.24,-0.33,-0.41,-0.48,-0.55,-0.6,-0.64,-0.65,-0.646,-0.634,-0.615,-0.59,-0.56,-0.53,-0.49,-0.45,-0.41,-0.37,-0.33,-0.29,-0.25,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.03,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,0.004,0.016,0.034,0.05,0.08,0.1,0.114,0.126,0.13,0.08,-0.04,-0.19,-0.33,-0.44,-0.52,-0.54,-0.52,-0.47,-0.4,-0.32,-0.27,-0.25,-0.25,-0.25,-0.252,-0.253,-0.254,-0.255,-0.256,-0.257,-0.258,-0.26,-0.259,-0.26,-0.26,-0.251,-0.23,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.005,0\r\r\nPARAM_HAIR_SIDE_R=0,0.002,0.007,0.016,0.026,0.038,0.05,0.062,0.074,0.084,0.093,0.098,0.1,0.06,-0.01,-0.11,-0.21,-0.3,-0.37,-0.42,-0.44,-0.434,-0.419,-0.39,-0.36,-0.33,-0.28,-0.24,-0.2,-0.16,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,0.001,0.006,0.013,0.022,0.034,0.048,0.065,0.084,0.11,0.13,0.15,0.18,0.21,0.23,0.25,0.262,0.27,0.276,0.279,0.28,0.276,0.266,0.251,0.231,0.21,0.18,0.15,0.13,0.1,0.07,0.05,0.029,0.014,0.004,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.014,0.05,0.11,0.18,0.26,0.35,0.43,0.51,0.58,0.64,0.68,0.69,0.66,0.58,0.46,0.33,0.19,0.06,-0.05,-0.14,-0.19,-0.21,-0.206,-0.195,-0.178,-0.16,-0.13,-0.11,-0.08,-0.06,-0.04,-0.023,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.007,-0.025,-0.05,-0.09,-0.13,-0.17,-0.21,-0.25,-0.29,-0.31,-0.333,-0.34,-0.336,-0.323,-0.304,-0.28,-0.25,-0.22,-0.18,-0.14,-0.1,-0.05,-0.01,0.03,0.07,0.12,0.15,0.19,0.22,0.25,0.28,0.3,0.317,0.327,0.33,0.319,0.29,0.25,0.2,0.15,0.1,0.06,0.03,0.007,0\r\r\nPARAM_WING_DEFORM=0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.39,-0.47,-0.53,-0.58,-0.62,-0.63,-0.629,-0.627,-0.622,-0.617,-0.609,-0.6,-0.589,-0.577,-0.563,-0.548,-0.532,-0.513,-0.494,-0.47,-0.45,-0.43,-0.4,-0.37,-0.34,-0.31,-0.28,-0.25,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.031,-0.017,-0.007,-0.002,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch3.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,7.88,22.12,30,27.93,22.52,14.7,5.77,-3.51,-12.16,-19.55,-25.19,-28.75,-30,-28.69,-25.19,-20.12,-14.1,-7.9,-1.88,3.19,6.69,8,7.84,7.41,6.77,5.96,5.07,4.12,3.18,2.31,1.54,0.89,0.41,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EMOTION=-1,-0.5,-0.515,-0.52,-0.519,-0.516,-0.512,-0.508,-0.503,-0.499,-0.495,-0.492,-0.491,-0.49,-0.49,-0.493,-0.496,-0.5,-0.505,-0.509,-0.513,-0.517,-0.52,-0.522,-0.524,-0.526,-0.528,-0.529,-0.531,-0.532,-0.533,-0.535,-0.536,-0.537,-0.539,-0.54,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.953,-0.957,-0.962,-0.967,-0.972,-0.977,-0.982,-0.987,-0.991,-0.995,-0.998,-0.999,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.549,0.544,0.537,0.528,0.517,0.503,0.488,0.471,0.454,0.434,0.41,0.39,0.37,0.35,0.32,0.3,0.28,0.25,0.23,0.21,0.19,0.16,0.14,0.123,0.104,0.086,0.07,0.054,0.041,0.029,0.019,0.011,0.005,0.001,0,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.037,0.03,0.02,0.01,0.003,0,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.549,0.544,0.537,0.528,0.517,0.503,0.488,0.471,0.454,0.434,0.41,0.39,0.37,0.35,0.32,0.3,0.28,0.25,0.23,0.21,0.19,0.16,0.14,0.123,0.104,0.086,0.07,0.054,0.041,0.029,0.019,0.011,0.005,0.001,0,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.037,0.03,0.02,0.01,0.003,0,0.91,0.88,0.82,0.74,0.66,0.6,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-0.92,-0.92,-0.92,-0.922,-0.923,-0.925,-0.927,-0.929,-0.931,-0.934,-0.937,-0.94,-0.943,-0.946,-0.949,-0.953,-0.956,-0.96,-0.963,-0.966,-0.97,-0.973,-0.976,-0.979,-0.982,-0.985,-0.987,-0.99,-0.992,-0.994,-0.996,-0.997,-0.998,-0.999,-1,-1,-0.11,-0.08,-0.06,-0.03,-0.013,0.005,0.022,0.036,0.049,0.06,0.07,0.078,0.085,0.091,0.095,0.098,0.099,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.29,0.47,0.64,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=-0.91,-0.91,-0.91,-0.912,-0.914,-0.915,-0.918,-0.92,-0.923,-0.926,-0.929,-0.932,-0.936,-0.939,-0.943,-0.947,-0.951,-0.955,-0.958,-0.962,-0.966,-0.97,-0.973,-0.977,-0.98,-0.983,-0.986,-0.989,-0.991,-0.993,-0.995,-0.997,-0.998,-0.999,-1,-1,-0.11,-0.08,-0.06,-0.03,-0.013,0.005,0.022,0.036,0.049,0.06,0.07,0.078,0.085,0.091,0.095,0.098,0.099,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.15,0.29,0.47,0.64,0.78,0.83,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.17,-0.47,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.62,-0.56,-0.47,-0.37,-0.27,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_R_Y=0,-0.17,-0.47,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.62,-0.56,-0.47,-0.37,-0.27,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_ANGLE=-0.53,-0.53,-0.53,-0.532,-0.533,-0.534,-0.536,-0.538,-0.541,-0.543,-0.546,-0.549,-0.553,-0.556,-0.56,-0.564,-0.567,-0.571,-0.575,-0.58,-0.584,-0.588,-0.592,-0.597,-0.601,-0.605,-0.609,-0.613,-0.617,-0.621,-0.625,-0.629,-0.632,-0.636,-0.639,-0.642,-0.645,-0.648,-0.65,-0.652,-0.654,-0.656,-0.657,-0.659,-0.659,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.653,-0.636,-0.61,-0.58,-0.53,-0.17,-0.06,0.02,0.09,0.13,0.16,0.18,0.196,0.2\r\r\nPARAM_BROW_SELECT=0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,-0.19,-0.29,-0.36,-0.41,-0.44,-0.47,-0.487,-0.497,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.2,0.31,0.39,0.42,0.38,0.3,0.26,0.31,0.39,0.44,0.46,0.44,0.37,0.28,0.18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.66,0.24,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.018,-0.04,-0.08,-0.12,-0.18,-0.25,-0.33,-0.43,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.63,-0.26,-0.06,0,-0.009,-0.04,-0.09,-0.17,-0.28,-0.43,-1,-0.983,-0.93,-0.86,-0.76,-0.64,-0.51,-0.37,-0.22,-0.07,0.08,0.23,0.37,0.5,0.61,0.71,0.79,0.85,0.89,0.9\r\r\nPARAM_MOUTH_EMO=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.23,0.233,0.236,0.239,0.242,0.244,0.245,0.247,0.248,0.25,0.25,0.25,0.25,0.24,0.22,0.202,0.184,0.167,0.15,0.135,0.121,0.107,0.094,0.082,0.071,0.061,0.052,0.043,0.035,0.028,0.022,0.017,0.012,0.009,0.005,0.003,0.001,0,0,0.47,0.47,0.47,0.47,0.47,0.47,0.469,0.47,0.47,0.468,0.47,0.466,0.466,0.465,0.46,0.463,0.462,0.461,0.46,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,1.58,4.42,6,5.62,4.63,3.2,1.56,-0.14,-1.73,-3.08,-4.12,-4.77,-5,-4.76,-4.11,-3.18,-2.07,-0.93,0.18,1.11,1.76,2,1.96,1.85,1.69,1.49,1.27,1.03,0.8,0.58,0.39,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0.5,0.63,0.87,1,0.998,0.99,0.979,0.964,0.945,0.92,0.9,0.87,0.84,0.81,0.78,0.75,0.71,0.68,0.64,0.61,0.57,0.54,0.5,0.47,0.44,0.41,0.38,0.35,0.33,0.31,0.287,0.271,0.258,0.248,0.242,0.24,0.244,0.255,0.272,0.3,0.32,0.35,0.39,0.43,0.47,0.5,0.55,0.58,0.62,0.66,0.69,0.72,0.75,0.78,0.794,0.808,0.817,0.82,0.818,0.814,0.806,0.796,0.784,0.77,0.754,0.737,0.719,0.699,0.68,0.66,0.64,0.621,0.601,0.583,0.566,0.55,0.536,0.524,0.514,0.506,0.502,0.5\r\r\nPARAM_BOING=0,0.18,0.46,0.73,0.92,1,0.88,0.58,0.18,-0.23,-0.53,-0.65,-0.48,-0.21,0.04,0.22,0.29,0.26,0.17,0.06,-0.05,-0.14,-0.17,-0.157,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.18,0.51,0.69,0.59,0.35,0.06,-0.23,-0.46,-0.6,-0.65,-0.59,-0.43,-0.22,-0.01,0.15,0.21,0.18,0.09,-0.01,-0.12,-0.21,-0.24,-0.222,-0.18,-0.12,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.13,0.38,0.51,0.48,0.41,0.31,0.2,0.08,-0.03,-0.13,-0.2,-0.24,-0.26,-0.245,-0.21,-0.15,-0.08,-0.01,0.06,0.12,0.16,0.17,0.167,0.157,0.144,0.127,0.108,0.087,0.068,0.049,0.033,0.019,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,0.13,0.38,0.51,0.48,0.41,0.31,0.2,0.08,-0.03,-0.13,-0.2,-0.24,-0.26,-0.245,-0.21,-0.15,-0.08,-0.01,0.06,0.12,0.16,0.17,0.167,0.157,0.144,0.127,0.108,0.087,0.068,0.049,0.033,0.019,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.22,0.6,0.82,0.71,0.44,0.1,-0.22,-0.48,-0.64,-0.7,-0.65,-0.54,-0.36,-0.17,0.04,0.23,0.39,0.51,0.59,0.62,0.612,0.59,0.56,0.51,0.46,0.4,0.34,0.28,0.22,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.006,-0.014,-0.025,-0.037,-0.052,-0.069,-0.086,-0.106,-0.126,-0.15,-0.17,-0.19,-0.21,-0.23,-0.25,-0.269,-0.285,-0.3,-0.313,-0.325,-0.335,-0.344,-0.352,-0.358,-0.364,-0.368,-0.372,-0.375,-0.377,-0.378,-0.379,-0.38,-0.38,-0.372,-0.352,-0.32,-0.28,-0.24,-0.19,-0.14,-0.1,-0.06,-0.03,-0.008,0\r\r\nPARAM_WING_DEFORM=0,0.26,0.74,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.025,-0.05,-0.09,-0.14,-0.18,-0.23,-0.29,-0.34,-0.38,-0.43,-0.47,-0.49,-0.513,-0.52,-0.519,-0.517,-0.512,-0.506,-0.496,-0.484,-0.469,-0.451,-0.43,-0.4,-0.37,-0.34,-0.3,-0.26,-0.05,0.24,0.49,0.67,0.74,0.725,0.69,0.62,0.55,0.46,0.37,0.28,0.19,0.12,0.05,0.01,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch4.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.45,1.51,2.94,4.62,6.42,8.31,10.17,12,14.13,16.1,17.86,19.48,20.94,22.28,23.48,24.54,25.5,26.35,27.09,27.75,28.31,28.77,29.17,29.48,29.71,29.87,29.97,30,29.85,29.41,28.71,27.77,26.65,25.31,23.82,22.24,20.51,18.7,16.89,15,13.11,11.3,9.49,7.76,6.18,4.69,3.35,2.23,1.29,0.59,0.15,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.26,-0.85,-1.63,-2.52,-3.44,-4.36,-5.22,-6,-6.86,-7.65,-8.35,-8.99,-9.57,-10.09,-10.56,-10.97,-11.33,-11.66,-11.94,-12.18,-12.39,-12.56,-12.7,-12.81,-12.9,-12.96,-12.99,-13,-12.93,-12.75,-12.44,-12.03,-11.55,-10.97,-10.32,-9.64,-8.89,-8.1,-7.32,-6.5,-5.68,-4.9,-4.11,-3.36,-2.68,-2.03,-1.45,-0.97,-0.56,-0.25,-0.07,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.83,2.63,4.88,7.23,9.39,11.21,12.46,13,13.14,13.27,13.38,13.48,13.57,13.64,13.71,13.76,13.81,13.86,13.89,13.92,13.94,13.96,13.974,13.985,13.992,13.997,13.999,14,13.91,13.65,13.23,12.66,11.99,11.19,10.29,9.34,8.3,7.22,6.13,5,3.87,2.78,1.7,0.66,-0.29,-1.19,-1.99,-2.66,-3.23,-3.65,-3.91,-4,-4,-3.71,-2.99,-2.12,-1.27,-0.58,-0.15,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.94,0.91,0.84,0.76,0.67,0.61,0.56,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.94,0.91,0.84,0.76,0.67,0.61,0.56,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.116,0.16,0.22,0.3,0.39,0.49,0.59,0.68,0.76,0.82,0.86,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.94,-0.96,-0.975,-0.986,-0.993,-0.997,-0.999,-1\r\r\nPARAM_EYE_R_OPEN2=-1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.115,0.16,0.22,0.3,0.38,0.48,0.58,0.66,0.74,0.81,0.85,0.87,0.873,0.875,0.877,0.878,0.879,0.88,0.88,0.88,0.88,0.88,0.88,0.88,-0.96,-0.973,-0.984,-0.991,-0.995,-0.998,-1,-1\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.04,-0.07,-0.1,-0.13,-0.15,-0.171,-0.18,-0.184,-0.188,-0.191,-0.194,-0.197,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.208,-0.208,-0.21,-0.209,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.195,-0.16,-0.11,-0.07,-0.03,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.009,0.028,0.05,0.08,0.11,0.13,0.15,0.17,0.186,0.2,0.213,0.224,0.234,0.243,0.251,0.258,0.264,0.27,0.274,0.278,0.281,0.284,0.286,0.287,0.289,0.289,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.27,0.22,0.15,0.09,0.04,0.01,0\r\r\nPARAM_BROW_L_Y=0,-0.05,-0.16,-0.3,-0.44,-0.57,-0.67,-0.74,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.71,-0.58,-0.41,-0.24,-0.11,-0.03,0\r\r\nPARAM_BROW_R_Y=0,-0.05,-0.17,-0.31,-0.45,-0.59,-0.7,-0.77,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.74,-0.6,-0.42,-0.25,-0.12,-0.03,0\r\r\nPARAM_BROW_ANGLE=0.2,-0.58,-0.59,-0.598,-0.603,-0.607,-0.609,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.55,-0.41,-0.23,-0.06,0.08,0.17,0.2\r\r\nPARAM_BROW_SELECT=-0.5,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.36,0.2,-0.01,-0.21,-0.36,-0.47,-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_OPEN2=0.9,0.85,0.73,0.59,0.45,0.31,0.2,0.13,0.1,0.1,0.102,0.105,0.109,0.114,0.12,0.128,0.136,0.145,0.155,0.166,0.178,0.191,0.204,0.218,0.233,0.249,0.266,0.283,0.301,0.319,0.338,0.358,0.378,0.4,0.42,0.44,0.46,0.49,0.51,0.53,0.55,0.58,0.6,0.63,0.65,0.67,0.7,0.72,0.75,0.77,0.8,0.82,0.85,0.87,0.89,0.903,0.906,0.906,0.903,0.901,0.9\r\r\nPARAM_MOUTH_EMO=0,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.259,0.26,0.26,0.26,0.26,0.26,0.26,0.258,0.26,0.26,0.26,0.26,0.257,0.26,0.26,0.26,0.256,0.26,0.26,0.26,0.255,0.25,0.25,0.254,0.25,0.25,0.253,0.25,0.25,0.252,0.25,0.25,0.251,0.25,0.25,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=0,0.002,0.006,0.014,0.024,0.036,0.05,0.067,0.084,0.103,0.123,0.14,0.17,0.19,0.21,0.23,0.25,0.27,0.291,0.309,0.327,0.343,0.357,0.369,0.38,0.389,0.395,0.399,0.4,0.398,0.392,0.383,0.37,0.355,0.338,0.318,0.3,0.27,0.25,0.23,0.2,0.17,0.15,0.13,0.1,0.08,0.063,0.045,0.03,0.017,0.008,0.002,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0.5,0.498,0.492,0.483,0.47,0.455,0.437,0.42,0.39,0.37,0.35,0.32,0.29,0.27,0.24,0.21,0.19,0.16,0.14,0.11,0.09,0.072,0.054,0.038,0.025,0.014,0.007,0.002,0,0.003,0.01,0.021,0.037,0.056,0.08,0.1,0.13,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.37,0.4,0.42,0.44,0.463,0.479,0.49,0.497,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0,-0.03,-0.11,-0.21,-0.3,-0.38,-0.41,-0.34,-0.18,0.03,0.23,0.38,0.49,0.52,0.47,0.33,0.17,0.01,-0.11,-0.19,-0.22,-0.206,-0.17,-0.14,-0.1,-0.06,-0.03,-0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_R=0,0.02,0.07,0.15,0.24,0.33,0.41,0.49,0.54,0.58,0.59,0.58,0.56,0.52,0.48,0.43,0.39,0.36,0.33,0.316,0.31,0.31,0.312,0.314,0.316,0.317,0.319,0.32,0.32,0.318,0.314,0.306,0.296,0.284,0.27,0.254,0.238,0.22,0.201,0.182,0.162,0.143,0.124,0.106,0.088,0.071,0.056,0.042,0.03,0.02,0.011,0.005,0.001,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_SIDE_L=0,-0.03,-0.09,-0.19,-0.3,-0.41,-0.52,-0.61,-0.68,-0.72,-0.74,-0.727,-0.69,-0.65,-0.59,-0.53,-0.48,-0.43,-0.4,-0.38,-0.37,-0.388,-0.43,-0.47,-0.52,-0.57,-0.61,-0.63,-0.64,-0.637,-0.628,-0.613,-0.593,-0.57,-0.54,-0.51,-0.48,-0.44,-0.4,-0.36,-0.32,-0.29,-0.25,-0.21,-0.18,-0.14,-0.11,-0.08,-0.06,-0.039,-0.022,-0.01,-0.003,0,0,0,0,0,0,0,0\r\r\nPARAM_TWIN_RIBBON_D=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0\r\r\nPARAM_WING_DEFORM=0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-1,-1,-1,-0.998,-0.996,-0.993,-0.99,-0.985,-0.979,-0.972,-0.963,-0.953,-0.941,-0.927,-0.911,-0.893,-0.874,-0.85,-0.83,-0.8,-0.76,-0.7,-0.62,-0.54,-0.45,-0.36,-0.28,-0.2,-0.13,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch5.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.88,-11.55,-11.06,-10.46,-9.77,-9.04,-8.28,-7.52,-6.77,-6.06,-5.42,-4.85,-4.36,-4,-3.67,-3.35,-3.06,-2.78,-2.53,-2.29,-2.06,-1.85,-1.66,-1.48,-1.31,-1.16,-1.02,-0.89,-0.77,-0.67,-0.57,-0.48,-0.4,-0.33,-0.27,-0.22,-0.17,-0.13,-0.1,-0.07,-0.05,-0.028,-0.015,-0.007,-0.002,0\r\r\nPARAM_ANGLE_Y=0,-0.34,-1.25,-2.64,-4.39,-6.35,-8.46,-10.57,-12.59,-14.44,-16.07,-17.4,-18.39,-19,-19.5,-19.89,-20.2,-20.45,-20.63,-20.77,-20.87,-20.93,-20.97,-21,-21.005,-21.01,-21.002,-21,-20.93,-20.73,-20.42,-20,-19.49,-18.89,-18.21,-17.46,-16.67,-15.81,-14.93,-14.01,-13.06,-12.09,-11.11,-10.13,-9.17,-8.21,-7.27,-6.36,-5.48,-4.63,-3.85,-3.11,-2.44,-1.84,-1.3,-0.85,-0.49,-0.22,-0.06,0\r\r\nPARAM_ANGLE_Z=0,-0.16,-0.59,-1.23,-2.04,-2.93,-3.88,-4.82,-5.69,-6.46,-7.11,-7.59,-7.9,-8,-7.79,-7.24,-6.45,-5.46,-4.37,-3.22,-2.07,-0.94,0.11,1.06,1.84,2.46,2.86,3,2.9,2.61,2.17,1.61,0.95,0.22,-0.52,-1.28,-2.02,-2.73,-3.36,-3.92,-4.38,-4.72,-4.93,-5,-4.94,-4.76,-4.48,-4.13,-3.72,-3.27,-2.8,-2.32,-1.86,-1.42,-1.02,-0.67,-0.39,-0.18,-0.04,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.549,0.546,0.542,0.537,0.532,0.526,0.52,0.514,0.51,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.501,0.5,0.502,0.503,0.504,0.505,0.506,0.507,0.509,0.51,0.511,0.513,0.514,0.516,0.517,0.519,0.521,0.522,0.524,0.526,0.527,0.529,0.53,0.532,0.534,0.535,0.537,0.538,0.539,0.541,0.542,0.543,0.544,0.545,0.546,0.547,0.55,0.548,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.549,0.546,0.542,0.537,0.532,0.526,0.52,0.514,0.51,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.501,0.5,0.502,0.503,0.504,0.505,0.506,0.507,0.509,0.51,0.511,0.513,0.514,0.516,0.517,0.519,0.521,0.522,0.524,0.526,0.527,0.529,0.53,0.532,0.534,0.535,0.537,0.538,0.539,0.541,0.542,0.543,0.544,0.545,0.546,0.547,0.55,0.548,0.549,0.55,0.55,0.55,0.55\r\r\nPARAM_EYE_L_OPEN2=-1\r\r\nPARAM_EYE_R_OPEN2=-1\r\r\nPARAM_EYE_BALL_X=0,0,0.004,0.008,0.013,0.018,0.024,0.03,0.036,0.04,0.044,0.047,0.049,0.05,0.049,0.047,0.043,0.038,0.033,0.028,0.023,0.018,0.013,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.009,0.019,0.033,0.048,0.067,0.086,0.107,0.13,0.15,0.17,0.19,0.21,0.23,0.253,0.27,0.283,0.295,0.304,0.311,0.317,0.322,0.325,0.327,0.329,0.33,0.33,0.329,0.326,0.321,0.314,0.306,0.297,0.286,0.274,0.262,0.248,0.235,0.22,0.205,0.19,0.175,0.159,0.144,0.129,0.114,0.1,0.086,0.073,0.061,0.049,0.038,0.029,0.02,0.013,0.008,0.003,0.001,0\r\r\nPARAM_BROW_L_Y=0,-0.002,-0.009,-0.018,-0.031,-0.044,-0.058,-0.072,-0.085,-0.097,-0.107,-0.114,-0.118,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.118,-0.117,-0.114,-0.111,-0.108,-0.104,-0.1,-0.095,-0.09,-0.085,-0.08,-0.075,-0.069,-0.064,-0.058,-0.052,-0.047,-0.042,-0.036,-0.031,-0.026,-0.022,-0.018,-0.014,-0.01,-0.007,-0.005,-0.003,-0.001,0,0\r\r\nPARAM_BROW_R_Y=0,-0.002,-0.007,-0.015,-0.026,-0.037,-0.049,-0.062,-0.073,-0.084,-0.093,-0.101,-0.107,-0.11,-0.113,-0.115,-0.116,-0.118,-0.119,-0.119,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.118,-0.117,-0.114,-0.111,-0.108,-0.104,-0.1,-0.095,-0.09,-0.085,-0.08,-0.075,-0.069,-0.064,-0.058,-0.052,-0.047,-0.042,-0.036,-0.031,-0.026,-0.022,-0.018,-0.014,-0.01,-0.007,-0.005,-0.003,-0.001,0,0\r\r\nPARAM_BROW_ANGLE=0.2,0.205,0.22,0.24,0.27,0.3,0.33,0.36,0.39,0.42,0.44,0.456,0.466,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.469,0.467,0.463,0.457,0.451,0.443,0.434,0.425,0.414,0.403,0.392,0.38,0.368,0.355,0.343,0.33,0.318,0.306,0.293,0.282,0.27,0.26,0.25,0.24,0.231,0.224,0.217,0.211,0.206,0.203,0.201,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.91,0.904,0.887,0.86,0.83,0.79,0.75,0.72,0.68,0.65,0.62,0.606,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.601,0.604,0.609,0.616,0.624,0.633,0.644,0.656,0.669,0.682,0.697,0.712,0.727,0.742,0.758,0.774,0.789,0.804,0.819,0.833,0.846,0.859,0.871,0.882,0.891,0.9,0.907,0.912,0.917,0.919,0.92,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-1,-1,-0.998,-1,-1,-0.997,-1,-0.996,-1,-0.995,-0.994,-0.99,-0.993,-0.99,-0.991,-0.991,-0.99,-0.989,-0.99,-0.987,-0.986,-0.985,-0.984,-0.983,-0.982,-0.981,-0.98,-0.979,-0.978,-0.977,-0.976,-0.974,-0.973,-0.972,-0.97,-0.969,-0.968,-0.966,-0.965,-0.963,-0.962,-0.96,-0.959,-0.957,-0.955,-0.954,-0.952,-0.95,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.04,-0.16,-0.33,-0.56,-0.83,-1.12,-1.42,-1.72,-2.02,-2.3,-2.57,-2.8,-3,-3.23,-3.41,-3.55,-3.67,-3.76,-3.84,-3.89,-3.93,-3.96,-3.98,-3.991,-3.997,-4,-4,-4,-3.997,-3.992,-3.981,-3.963,-3.94,-3.9,-3.86,-3.8,-3.73,-3.64,-3.54,-3.43,-3.3,-3.16,-3,-2.79,-2.56,-2.31,-2.05,-1.79,-1.53,-1.28,-1.04,-0.82,-0.61,-0.43,-0.28,-0.16,-0.07,-0.02,0\r\r\nPARAM_BODY_Y=0,-0.007,-0.026,-0.06,-0.09,-0.13,-0.17,-0.22,-0.26,-0.29,-0.32,-0.34,-0.355,-0.36,-0.352,-0.33,-0.3,-0.26,-0.21,-0.17,-0.12,-0.08,-0.04,0,0.03,0.06,0.074,0.08,0.077,0.069,0.057,0.042,0.024,0.004,-0.017,-0.04,-0.06,-0.078,-0.095,-0.11,-0.123,-0.132,-0.138,-0.14,-0.138,-0.133,-0.126,-0.116,-0.104,-0.091,-0.078,-0.065,-0.052,-0.04,-0.029,-0.019,-0.011,-0.005,-0.001,0\r\r\nPARAM_BREATH=0.5,0.494,0.479,0.46,0.43,0.4,0.36,0.33,0.3,0.27,0.25,0.234,0.224,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.221,0.22,0.222,0.22,0.223,0.22,0.224,0.225,0.23,0.227,0.228,0.229,0.23,0.232,0.233,0.235,0.236,0.238,0.24,0.245,0.256,0.271,0.29,0.31,0.33,0.36,0.38,0.41,0.43,0.449,0.466,0.481,0.491,0.498,0.5\r\r\nPARAM_BOING=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE_R=0,-0.007,-0.026,-0.06,-0.09,-0.13,-0.17,-0.22,-0.26,-0.29,-0.32,-0.34,-0.355,-0.36,-0.353,-0.33,-0.3,-0.26,-0.21,-0.16,-0.1,-0.04,0.01,0.06,0.11,0.15,0.18,0.21,0.225,0.23,0.23,0.227,0.224,0.219,0.213,0.206,0.198,0.19,0.18,0.17,0.16,0.149,0.138,0.126,0.115,0.104,0.092,0.081,0.07,0.06,0.05,0.04,0.032,0.024,0.017,0.011,0.006,0.003,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.007,0.025,0.05,0.09,0.12,0.17,0.2,0.24,0.27,0.3,0.32,0.336,0.34,0.333,0.313,0.28,0.24,0.19,0.14,0.09,0.03,-0.02,-0.07,-0.11,-0.15,-0.19,-0.21,-0.225,-0.23,-0.23,-0.227,-0.224,-0.219,-0.213,-0.206,-0.198,-0.19,-0.18,-0.17,-0.16,-0.149,-0.138,-0.126,-0.115,-0.104,-0.092,-0.081,-0.07,-0.06,-0.05,-0.04,-0.032,-0.024,-0.017,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.007,0.026,0.05,0.09,0.13,0.17,0.21,0.25,0.28,0.31,0.33,0.345,0.35,0.338,0.3,0.25,0.18,0.1,0.01,-0.08,-0.17,-0.27,-0.35,-0.43,-0.5,-0.55,-0.6,-0.62,-0.63,-0.628,-0.622,-0.612,-0.599,-0.583,-0.564,-0.54,-0.52,-0.49,-0.47,-0.44,-0.41,-0.38,-0.35,-0.32,-0.28,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.047,-0.031,-0.018,-0.008,-0.002,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,0.003,0.013,0.028,0.048,0.07,0.1,0.13,0.16,0.2,0.24,0.27,0.31,0.35,0.39,0.42,0.46,0.49,0.53,0.56,0.59,0.61,0.63,0.647,0.659,0.667,0.67,0.668,0.663,0.654,0.643,0.629,0.612,0.592,0.57,0.55,0.52,0.5,0.47,0.44,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.2,0.17,0.15,0.12,0.1,0.08,0.058,0.041,0.027,0.016,0.007,0.002,0\r\r\nPARAM_WING_DEFORM=0,0.002,0.009,0.02,0.035,0.052,0.073,0.1,0.12,0.15,0.17,0.2,0.23,0.26,0.28,0.31,0.34,0.36,0.39,0.41,0.428,0.446,0.461,0.473,0.482,0.488,0.49,0.489,0.485,0.479,0.47,0.46,0.447,0.433,0.418,0.401,0.382,0.363,0.343,0.32,0.3,0.28,0.26,0.23,0.21,0.19,0.17,0.15,0.127,0.108,0.089,0.072,0.057,0.043,0.03,0.02,0.011,0.005,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/Touch6.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-5.36,-13.95,-21.96,-27.75,-30,-25.49,-14.55,0,14.55,25.49,30,25.87,15.84,2.5,-10.84,-20.87,-25,-21.54,-13.14,-2.88,7.13,15.17,20.27,22,20.03,15.78,10.49,4.98,-0.04,-4.2,-6.97,-8,-7.55,-6.38,-4.69,-2.75,-0.74,1.13,2.74,3.96,4.73,5,4.94,4.77,4.51,4.19,3.82,3.42,2.99,2.56,2.12,1.71,1.31,0.95,0.63,0.37,0.17,0.04,0\r\r\nPARAM_ANGLE_Y=0,0.82,2.22,3.69,5,6,6.81,7.36,7.71,7.91,7.98,8,7.991,7.93,7.75,7.41,6.85,6,4.68,3.19,1.79,0.6,-0.29,-0.83,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,-0.31,-1.12,-2.29,-3.63,-5.03,-6.32,-7.43,-8.28,-8.81,-9,-8.89,-8.58,-8.12,-7.54,-6.88,-6.15,-5.38,-4.61,-3.82,-3.07,-2.36,-1.71,-1.14,-0.67,-0.31,-0.08,0\r\r\nPARAM_ANGLE_Z=0,-1.79,-4.65,-7.32,-9.25,-10,-9.02,-6.65,-3.5,-0.35,2.02,3,2.62,1.71,0.5,-0.71,-1.62,-2,-1.56,-0.49,0.82,2.1,3.13,3.78,4,3.28,1.72,-0.22,-2.24,-4.08,-5.61,-6.62,-7,-6.62,-5.63,-4.2,-2.56,-0.86,0.73,2.08,3.12,3.77,4,3.95,3.82,3.61,3.35,3.06,2.73,2.39,2.05,1.7,1.37,1.05,0.76,0.51,0.3,0.14,0.04,0\r\r\nPARAM_EMOTION=-1,-0.47,-0.471,-0.475,-0.48,-0.487,-0.493,-0.5,-0.505,-0.509,-0.51,-0.51,-0.51,-0.51,-0.51,-0.509,-0.51,-0.508,-0.507,-0.51,-0.505,-0.504,-0.503,-0.503,-0.502,-0.501,-0.499,-0.498,-0.497,-0.496,-0.495,-0.494,-0.493,-0.492,-0.491,-0.49,-0.489,-0.488,-0.487,-0.486,-0.49,-0.484,-0.484,-0.483,-0.48,-0.482,-0.48,-0.481,-0.48,-0.48,-0.48,-0.48,-0.481,-0.485,-0.492,-0.501,-0.512,-0.525,-0.54,-1\r\r\nPARAM_EYE_L_OPEN=0.55,0.02,0.019,0.019,0.018,0.02,0.017,0.016,0.02,0.015,0.01,0.014,0.013,0.01,0.012,0.01,0.011,0.01,0.01,0.01,0.009,0.01,0.008,0.01,0.01,0.007,0.01,0.006,0.01,0.01,0.005,0,0,0.004,0,0,0.003,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.55\r\r\nPARAM_EYE_R_OPEN=0.55,0.02,0.019,0.019,0.018,0.02,0.017,0.016,0.02,0.015,0.01,0.014,0.013,0.01,0.012,0.01,0.011,0.01,0.01,0.01,0.009,0.01,0.008,0.01,0.01,0.007,0.01,0.006,0.01,0.01,0.005,0,0,0.004,0,0,0.003,0,0,0,0.002,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0.55\r\r\nPARAM_EYE_L_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-1,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.983,-0.982,-0.981,-0.979,-0.978,-0.976,-0.975,-0.973,-0.972,-0.97,-0.969,-0.967,-0.966,-0.964,-0.963,-0.961,-0.96,-0.958,-0.957,-0.956,-0.954,-0.953,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.945,-0.944,-0.944,-0.943,-0.94,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94,-0.94\r\r\nPARAM_EYE_R_OPEN2=-1,-1,-1,-1,-1,-0.999,-1,-0.998,-0.997,-1,-0.995,-0.994,-0.993,-0.992,-0.991,-0.99,-0.989,-0.987,-0.986,-0.985,-0.983,-0.982,-0.981,-0.979,-0.978,-0.976,-0.975,-0.973,-0.972,-0.97,-0.969,-0.967,-0.966,-0.964,-0.963,-0.961,-0.96,-0.958,-0.957,-0.956,-0.954,-0.953,-0.952,-0.951,-0.949,-0.948,-0.947,-0.946,-0.945,-0.944,-0.944,-0.943,-0.94,-0.942,-0.94,-0.941,-0.94,-0.94,-0.94,-0.94\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0,-0.008,-0.03,-0.06,-0.1,-0.13,-0.17,-0.2,-0.22,-0.235,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.224,-0.19,-0.15,-0.1,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_R_Y=0,-0.008,-0.03,-0.06,-0.09,-0.13,-0.16,-0.19,-0.21,-0.225,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.215,-0.18,-0.14,-0.1,-0.06,-0.03,-0.01,0\r\r\nPARAM_BROW_ANGLE=0.2,0.195,0.183,0.164,0.14,0.12,0.102,0.084,0.071,0.063,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.069,0.089,0.11,0.14,0.16,0.182,0.195,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0.91,0.896,0.86,0.8,0.74,0.67,0.61,0.55,0.51,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.53,0.6,0.69,0.78,0.85,0.89,0.91,0\r\r\nPARAM_MOUTH_OPEN2=0.9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0.9\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.54,-1.39,-2.2,-2.77,-3,-2.83,-2.38,-1.73,-0.98,-0.21,0.51,1.13,1.6,1.9,2,1.9,1.66,1.33,0.95,0.55,0.16,-0.21,-0.52,-0.78,-0.94,-1,-0.997,-0.989,-0.977,-0.96,-0.94,-0.91,-0.88,-0.85,-0.82,-0.78,-0.74,-0.7,-0.66,-0.61,-0.57,-0.52,-0.48,-0.43,-0.39,-0.34,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.023,-0.011,-0.003,0\r\r\nPARAM_BODY_ANGLE_Z=0,1.25,3.25,5.12,6.47,7,6.93,6.73,6.43,6.08,5.69,5.29,4.91,4.56,4.26,4,3.7,3.44,3.21,3.01,2.83,2.67,2.52,2.38,2.25,2.12,2,1.87,1.75,1.63,1.51,1.4,1.3,1.19,1.1,1.01,0.92,0.83,0.76,0.68,0.61,0.55,0.48,0.43,0.37,0.32,0.28,0.23,0.2,0.16,0.13,0.1,0.08,0.056,0.039,0.025,0.014,0.006,0.002,0\r\r\nPARAM_BODY_Y=0,0.05,0.13,0.2,0.25,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.269,0.268,0.267,0.265,0.264,0.262,0.26,0.257,0.253,0.248,0.243,0.236,0.228,0.22,0.211,0.202,0.192,0.182,0.171,0.16,0.149,0.138,0.126,0.115,0.104,0.093,0.082,0.072,0.062,0.052,0.043,0.035,0.027,0.021,0.015,0.01,0.005,0.002,0.001,0\r\r\nPARAM_BREATH=0.5,0.56,0.66,0.75,0.81,0.84,0.73,0.57,0.41,0.29,0.25,0.35,0.52,0.67,0.79,0.83,0.73,0.57,0.41,0.3,0.26,0.3,0.4,0.53,0.66,0.76,0.8,0.794,0.78,0.76,0.73,0.7,0.66,0.62,0.59,0.55,0.51,0.48,0.44,0.42,0.39,0.375,0.364,0.36,0.362,0.367,0.374,0.384,0.396,0.409,0.422,0.435,0.448,0.46,0.471,0.481,0.489,0.495,0.499,0.5\r\r\nPARAM_BOING=0,0.04,0.14,0.27,0.39,0.49,0.53,0.46,0.29,0.08,-0.13,-0.29,-0.39,-0.43,-0.37,-0.22,-0.03,0.15,0.3,0.39,0.42,0.37,0.26,0.13,0,-0.11,-0.18,-0.2,-0.15,-0.06,0.02,0.08,0.1,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0.13,0.34,0.53,0.68,0.73,0.62,0.34,0,-0.34,-0.6,-0.77,-0.83,-0.69,-0.36,0.08,0.53,0.86,1,0.89,0.62,0.29,-0.03,-0.29,-0.45,-0.51,-0.46,-0.35,-0.21,-0.07,0.06,0.16,0.23,0.26,0.252,0.23,0.2,0.16,0.11,0.06,0.01,-0.04,-0.08,-0.11,-0.13,-0.14,-0.137,-0.13,-0.12,-0.108,-0.094,-0.079,-0.064,-0.05,-0.037,-0.025,-0.015,-0.007,-0.002,0\r\r\nPARAM_HAIR_SIDE_R=0,0.05,0.16,0.29,0.42,0.53,0.6,0.62,0.59,0.52,0.43,0.35,0.28,0.23,0.22,0.25,0.31,0.39,0.47,0.54,0.58,0.59,0.56,0.51,0.44,0.36,0.27,0.14,0.07,0.03,0.01,0,0.002,0.008,0.017,0.029,0.041,0.055,0.069,0.081,0.093,0.102,0.108,0.11,0.109,0.105,0.099,0.091,0.082,0.072,0.062,0.051,0.041,0.031,0.023,0.015,0.009,0.004,0.001,0\r\r\nPARAM_HAIR_SIDE_L=0,0.04,0.13,0.25,0.36,0.46,0.52,0.55,0.56,0.566,0.569,0.57,0.57,0.57,0.57,0.53,0.44,0.33,0.22,0.13,0.08,0.06,0.068,0.09,0.12,0.16,0.19,0.23,0.26,0.28,0.295,0.3,0.291,0.27,0.23,0.18,0.13,0.08,0.02,-0.03,-0.08,-0.12,-0.14,-0.15,-0.148,-0.143,-0.135,-0.124,-0.112,-0.098,-0.084,-0.07,-0.056,-0.043,-0.031,-0.02,-0.012,-0.005,-0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.05,0.18,0.33,0.49,0.61,0.68,0.71,0.62,0.44,0.21,-0.03,-0.25,-0.43,-0.55,-0.6,-0.52,-0.34,-0.11,0.11,0.29,0.4,0.44,0.38,0.24,0.06,-0.12,-0.28,-0.42,-0.51,-0.54,-0.51,-0.44,-0.35,-0.24,-0.12,-0.01,0.1,0.19,0.27,0.31,0.33,0.327,0.319,0.305,0.288,0.27,0.24,0.22,0.19,0.16,0.14,0.11,0.09,0.06,0.04,0.025,0.011,0.003,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0,-0.05,-0.18,-0.36,-0.53,-0.66,-0.71,-0.67,-0.56,-0.41,-0.23,-0.05,0.13,0.3,0.44,0.56,0.63,0.66,0.648,0.61,0.56,0.5,0.42,0.33,0.24,0.14,0.05,-0.04,-0.12,-0.18,-0.23,-0.27,-0.28,-0.279,-0.276,-0.27,-0.263,-0.255,-0.245,-0.233,-0.221,-0.208,-0.193,-0.179,-0.163,-0.148,-0.132,-0.117,-0.101,-0.087,-0.072,-0.059,-0.047,-0.035,-0.025,-0.017,-0.01,-0.004,-0.001,0\r\r\nPARAM_WING_DEFORM=0,-0.08,-0.26,-0.5,-0.74,-0.92,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.75,-0.69,-0.62,-0.55,-0.48,-0.41,-0.33,-0.26,-0.19,-0.12,-0.05,0.01,0.07,0.12,0.16,0.2,0.24,0.26,0.275,0.28,0.279,0.276,0.27,0.263,0.255,0.245,0.233,0.221,0.208,0.193,0.179,0.163,0.148,0.132,0.117,0.101,0.087,0.072,0.059,0.047,0.035,0.025,0.017,0.01,0.004,0.001,0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/motions/WakeUp.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=10,9.997,10.006,10.04,10.12,10.24,10.43,10.67,11,11.42,11.84,12.25,12.66,13.05,13.44,13.82,14.19,14.56,14.92,15.26,15.6,15.92,16.24,16.54,16.83,17.12,17.39,17.65,17.89,18.13,18.35,18.55,18.75,18.93,19.1,19.25,19.39,19.52,19.63,19.73,19.81,19.88,19.93,19.97,19.99,20,19.94,19.75,19.44,19.03,18.51,17.92,17.24,16.49,15.68,14.82,13.9,12.96,11.98,10.99,10,9.01,8.02,7.04,6.1,5.18,4.32,3.51,2.76,2.08,1.49,0.97,0.56,0.25,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=-10,-8.62,-5.65,-1.94,1.91,5.43,8.34,10.28,11,10.94,10.76,10.47,10.07,9.59,9,8.34,7.61,6.8,5.92,5.01,4.03,3.03,1.99,0.93,-0.16,-1.26,-2.36,-3.47,-4.55,-5.64,-6.69,-7.72,-8.71,-9.67,-10.58,-11.44,-12.23,-12.98,-13.65,-14.24,-14.76,-15.19,-15.54,-15.79,-15.95,-16,-15.95,-15.8,-15.55,-15.22,-14.81,-14.33,-13.79,-13.19,-12.55,-11.86,-11.12,-10.37,-9.58,-8.8,-8,-7.2,-6.42,-5.63,-4.88,-4.14,-3.45,-2.81,-2.21,-1.67,-1.19,-0.78,-0.45,-0.2,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=7,6.54,5.55,4.31,3.03,1.86,0.89,0.24,0,0.018,0.07,0.16,0.28,0.42,0.59,0.79,1.01,1.25,1.5,1.78,2.07,2.36,2.67,2.98,3.31,3.63,3.96,4.29,4.61,4.93,5.24,5.55,5.84,6.12,6.4,6.65,6.88,7.11,7.3,7.48,7.63,7.76,7.86,7.94,7.98,8,7.96,7.85,7.66,7.42,7.11,6.75,6.34,5.9,5.41,4.89,4.34,3.78,3.19,2.6,2,1.4,0.81,0.22,-0.34,-0.89,-1.41,-1.9,-2.34,-2.75,-3.11,-3.42,-3.66,-3.85,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-3.95,-3.81,-3.59,-3.3,-2.98,-2.61,-2.24,-1.86,-1.49,-1.14,-0.82,-0.54,-0.31,-0.14,-0.04,0\r\r\nPARAM_EMOTION=-1\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0.002,0,0,0.003,0,0,0.004,0,0.005,0.01,0.006,0.01,0.007,0.01,0.008,0.009,0.01,0.01,0.01,0.012,0.012,0.01,0.014,0.014,0.015,0.02,0.017,0.018,0.018,0.019,0.02,0.021,0.022,0.02,0.024,0.025,0.026,0.027,0.028,0.029,0.03,0.94,0.94,0.939,0.937,0.934,0.931,0.927,0.923,0.918,0.912,0.905,0.898,0.89,0.882,0.873,0.863,0.852,0.841,0.83,0.817,0.804,0.79,0.775,0.76,0.744,0.727,0.71,0.691,0.673,0.656,0.64,0.625,0.612,0.6,0.589,0.58,0.572,0.565,0.559,0.555,0.552,0.551,0.55\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0.002,0,0,0.003,0,0,0.004,0,0.005,0.01,0.006,0.01,0.007,0.01,0.008,0.009,0.01,0.01,0.01,0.012,0.012,0.01,0.014,0.014,0.015,0.02,0.017,0.018,0.018,0.019,0.02,0.021,0.022,0.02,0.024,0.025,0.026,0.027,0.028,0.029,0.03,0.94,0.94,0.939,0.937,0.934,0.931,0.927,0.923,0.918,0.912,0.905,0.898,0.89,0.882,0.873,0.863,0.852,0.841,0.83,0.817,0.804,0.79,0.775,0.76,0.744,0.727,0.71,0.691,0.673,0.656,0.64,0.625,0.612,0.6,0.589,0.58,0.572,0.565,0.559,0.555,0.552,0.551,0.55\r\r\nPARAM_EYE_L_OPEN2=0.85,0.81,0.72,0.6,0.49,0.38,0.29,0.23,0.21,0.21,0.21,0.21,0.212,0.213,0.214,0.216,0.218,0.22,0.223,0.225,0.229,0.232,0.236,0.241,0.245,0.25,0.256,0.262,0.268,0.275,0.283,0.29,0.298,0.307,0.316,0.326,0.336,0.347,0.358,0.369,0.382,0.394,0.407,0.421,0.435,0.45,0.48,0.52,0.58,0.65,0.71,0.77,0.81,0.85,0.87,0.88,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_R_OPEN2=0.85,0.81,0.72,0.61,0.49,0.39,0.3,0.24,0.22,0.22,0.22,0.22,0.222,0.223,0.224,0.226,0.227,0.23,0.232,0.235,0.238,0.241,0.245,0.249,0.254,0.259,0.264,0.27,0.276,0.282,0.289,0.297,0.305,0.313,0.322,0.331,0.341,0.351,0.362,0.373,0.384,0.396,0.409,0.422,0.436,0.45,0.48,0.52,0.58,0.64,0.71,0.76,0.81,0.85,0.87,0.88,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.002,-0.005,-0.009,-0.013,-0.018,-0.025,-0.031,-0.039,-0.047,-0.055,-0.065,-0.074,-0.083,-0.093,-0.103,-0.113,-0.124,-0.134,-0.144,-0.154,-0.164,-0.173,-0.183,-0.191,-0.2,-0.208,-0.215,-0.222,-0.228,-0.234,-0.239,-0.243,-0.246,-0.248,-0.25,-0.25,-0.25,-0.249,-0.248,-0.246,-0.243,-0.241,-0.237,-0.234,-0.23,-0.225,-0.221,-0.216,-0.211,-0.205,-0.199,-0.193,-0.187,-0.181,-0.174,-0.168,-0.161,-0.154,-0.147,-0.14,-0.133,-0.126,-0.119,-0.112,-0.105,-0.098,-0.091,-0.084,-0.078,-0.071,-0.065,-0.059,-0.053,-0.047,-0.042,-0.037,-0.032,-0.027,-0.023,-0.019,-0.015,-0.012,-0.009,-0.006,-0.004,-0.002,-0.001,0,0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=-0.46,-0.46,-0.458,-0.456,-0.454,-0.453,-0.451,-0.45,-0.45,-0.45,-0.45,-0.452,-0.454,-0.456,-0.458,-0.461,-0.464,-0.467,-0.471,-0.474,-0.478,-0.482,-0.487,-0.491,-0.495,-0.5,-0.504,-0.509,-0.513,-0.518,-0.522,-0.526,-0.53,-0.534,-0.538,-0.541,-0.545,-0.548,-0.55,-0.553,-0.555,-0.557,-0.558,-0.559,-0.56,-0.56,-0.56,-0.548,-0.51,-0.46,-0.39,-0.31,-0.23,-0.14,-0.05,0.04,0.13,0.2,0.27,0.33,0.37,0.39,0.4,0.384,0.34,0.28,0.2,0.11,0.01,-0.08,-0.17,-0.25,-0.31,-0.36,-0.39,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.395,-0.381,-0.36,-0.33,-0.3,-0.26,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0\r\r\nPARAM_BROW_R_Y=-0.46,-0.46,-0.458,-0.456,-0.454,-0.453,-0.451,-0.45,-0.45,-0.45,-0.45,-0.452,-0.453,-0.455,-0.457,-0.46,-0.463,-0.466,-0.469,-0.472,-0.476,-0.48,-0.483,-0.487,-0.491,-0.495,-0.499,-0.504,-0.508,-0.512,-0.516,-0.519,-0.523,-0.527,-0.53,-0.533,-0.536,-0.539,-0.541,-0.543,-0.545,-0.547,-0.548,-0.549,-0.55,-0.55,-0.55,-0.538,-0.5,-0.45,-0.38,-0.31,-0.22,-0.13,-0.04,0.05,0.13,0.21,0.27,0.33,0.37,0.39,0.4,0.384,0.34,0.28,0.2,0.11,0.01,-0.08,-0.17,-0.25,-0.31,-0.36,-0.39,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.395,-0.381,-0.36,-0.33,-0.3,-0.26,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0\r\r\nPARAM_BROW_ANGLE=0.47,0.475,0.487,0.501,0.515,0.529,0.54,0.547,0.55,0.55,0.55,0.548,0.547,0.545,0.543,0.541,0.539,0.536,0.533,0.529,0.526,0.522,0.518,0.513,0.509,0.504,0.499,0.494,0.489,0.483,0.478,0.472,0.466,0.46,0.454,0.448,0.442,0.436,0.43,0.423,0.417,0.411,0.404,0.398,0.392,0.386,0.38,0.373,0.367,0.361,0.356,0.35,0.344,0.339,0.333,0.328,0.323,0.318,0.313,0.309,0.304,0.3,0.296,0.293,0.289,0.286,0.283,0.281,0.278,0.276,0.274,0.273,0.272,0.271,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.269,0.267,0.263,0.258,0.252,0.246,0.239,0.233,0.226,0.22,0.214,0.209,0.205,0.202,0.201,0.2\r\r\nPARAM_BROW_SELECT=-0.5\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.17,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.41,0.43,0.46,0.48,0.5,0.518,0.53,0.539,0.547,0.556,0.567,0.58,0.6,0.63,0.67,0.7,0.74,0.78,0.82,0.85,0.88,0.91,0.923,0.93,0.931,0.933,0.934,0.935,0.936,0.936,0.937,0.94,0.938,0.94,0.939,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94\r\r\nPARAM_MOUTH_OPEN2=-0.36,-0.355,-0.344,-0.327,-0.3,-0.28,-0.25,-0.21,-0.17,-0.12,-0.08,-0.05,-0.02,-0.01,-0.002,0,-0.008,-0.03,-0.07,-0.11,-0.17,-0.23,-0.29,-0.35,-0.41,-0.47,-0.52,-0.57,-0.61,-0.64,-0.654,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_EMO=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_BODY_ANGLE_X=1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_Y=-0.21,-0.209,-0.208,-0.205,-0.202,-0.197,-0.192,-0.186,-0.179,-0.171,-0.163,-0.154,-0.145,-0.135,-0.125,-0.114,-0.103,-0.091,-0.08,-0.068,-0.056,-0.043,-0.031,-0.019,-0.007,0.006,0.018,0.03,0.041,0.053,0.064,0.075,0.085,0.095,0.104,0.113,0.121,0.129,0.136,0.142,0.147,0.152,0.155,0.158,0.159,0.16,0.16,0.16,0.158,0.157,0.156,0.154,0.152,0.15,0.147,0.144,0.141,0.138,0.135,0.131,0.128,0.124,0.12,0.116,0.111,0.107,0.103,0.098,0.094,0.09,0.085,0.081,0.076,0.072,0.067,0.063,0.058,0.054,0.05,0.046,0.042,0.038,0.034,0.03,0.027,0.023,0.02,0.017,0.014,0.012,0.009,0.007,0.005,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_BREATH=0.5,0.53,0.6,0.69,0.78,0.87,0.94,0.98,1,0.999,0.995,0.99,0.982,0.972,0.961,0.947,0.932,0.915,0.896,0.87,0.85,0.83,0.8,0.78,0.75,0.72,0.68,0.65,0.62,0.58,0.54,0.5,0.46,0.42,0.38,0.34,0.31,0.28,0.25,0.22,0.19,0.17,0.14,0.12,0.103,0.085,0.068,0.054,0.041,0.03,0.021,0.013,0.008,0.003,0.001,0,0,0.003,0.007,0.013,0.02,0.028,0.037,0.047,0.059,0.071,0.085,0.099,0.113,0.129,0.145,0.162,0.178,0.195,0.213,0.23,0.248,0.265,0.283,0.3,0.317,0.334,0.35,0.366,0.381,0.396,0.41,0.423,0.435,0.447,0.457,0.467,0.475,0.483,0.489,0.494,0.497,0.499,0.5\r\r\nPARAM_BOING=0,-0.1,-0.29,-0.39,-0.34,-0.23,-0.09,0.05,0.16,0.23,0.25,0.22,0.16,0.08,0,-0.07,-0.13,-0.17,-0.19,-0.176,-0.14,-0.1,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.01,0.021,0.036,0.054,0.074,0.1,0.12,0.14,0.17,0.19,0.21,0.228,0.246,0.261,0.273,0.282,0.288,0.29,0.29,0.293,0.294,0.295,0.294,0.29,0.282,0.269,0.25,0.23,0.2,0.17,0.14,0.11,0.08,0.05,0.01,-0.02,-0.05,-0.08,-0.12,-0.15,-0.17,-0.2,-0.23,-0.25,-0.27,-0.293,-0.31,-0.324,-0.335,-0.343,-0.348,-0.35,-0.349,-0.346,-0.34,-0.333,-0.324,-0.314,-0.302,-0.289,-0.274,-0.259,-0.243,-0.227,-0.21,-0.192,-0.175,-0.158,-0.14,-0.123,-0.107,-0.091,-0.076,-0.061,-0.048,-0.036,-0.026,-0.017,-0.01,-0.004,-0.001,0\r\r\nPARAM_HAIR_SIDE_R=0.14,0.12,0.07,0.01,-0.05,-0.11,-0.16,-0.19,-0.2,-0.193,-0.174,-0.14,-0.11,-0.06,-0.02,0.02,0.07,0.1,0.13,0.153,0.16,0.16,0.159,0.157,0.155,0.153,0.15,0.147,0.143,0.139,0.134,0.129,0.123,0.118,0.112,0.105,0.099,0.092,0.085,0.078,0.071,0.063,0.055,0.048,0.04,0.032,0.024,0.016,0.008,0,-0.008,-0.016,-0.023,-0.031,-0.038,-0.046,-0.053,-0.06,-0.066,-0.073,-0.079,-0.085,-0.091,-0.096,-0.101,-0.106,-0.11,-0.114,-0.118,-0.121,-0.124,-0.126,-0.128,-0.129,-0.13,-0.13,-0.129,-0.127,-0.123,-0.118,-0.112,-0.106,-0.099,-0.091,-0.083,-0.074,-0.066,-0.058,-0.05,-0.041,-0.034,-0.027,-0.02,-0.015,-0.01,-0.006,-0.003,-0.001,0\r\r\nPARAM_HAIR_SIDE_L=-0.39,-0.36,-0.29,-0.21,-0.13,-0.05,0.01,0.05,0.07,0.064,0.047,0.02,-0.01,-0.05,-0.08,-0.12,-0.16,-0.19,-0.22,-0.234,-0.24,-0.24,-0.239,-0.237,-0.234,-0.231,-0.228,-0.223,-0.219,-0.213,-0.208,-0.201,-0.195,-0.188,-0.18,-0.172,-0.164,-0.156,-0.147,-0.138,-0.129,-0.12,-0.11,-0.1,-0.091,-0.081,-0.071,-0.061,-0.051,-0.042,-0.032,-0.022,-0.013,-0.003,0.006,0.015,0.024,0.033,0.041,0.049,0.057,0.064,0.071,0.078,0.084,0.09,0.096,0.1,0.105,0.109,0.112,0.115,0.117,0.119,0.12,0.12,0.119,0.117,0.114,0.109,0.104,0.098,0.091,0.084,0.076,0.069,0.061,0.053,0.046,0.038,0.031,0.025,0.019,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_TWIN_RIBBON_D=0,0.017,0.06,0.13,0.2,0.29,0.36,0.43,0.47,0.49,0.46,0.39,0.28,0.16,0.03,-0.09,-0.19,-0.26,-0.31,-0.33,-0.309,-0.25,-0.17,-0.07,0.02,0.12,0.2,0.26,0.28,0.277,0.27,0.259,0.245,0.227,0.208,0.19,0.16,0.14,0.12,0.09,0.07,0.053,0.035,0.021,0.01,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_WING_ANGLE=0.55,0.55,0.55,0.548,0.547,0.546,0.544,0.542,0.539,0.536,0.533,0.53,0.527,0.523,0.519,0.514,0.51,0.505,0.5,0.494,0.489,0.483,0.477,0.471,0.465,0.459,0.452,0.445,0.439,0.432,0.424,0.417,0.41,0.402,0.394,0.387,0.379,0.371,0.363,0.355,0.347,0.339,0.33,0.322,0.314,0.305,0.297,0.289,0.28,0.272,0.264,0.255,0.247,0.238,0.23,0.222,0.214,0.205,0.197,0.189,0.181,0.173,0.166,0.158,0.15,0.143,0.135,0.128,0.121,0.114,0.107,0.101,0.094,0.088,0.081,0.075,0.07,0.064,0.058,0.053,0.048,0.043,0.038,0.034,0.03,0.026,0.022,0.019,0.016,0.013,0.01,0.008,0.006,0.004,0.003,0.001,0.001,0,0\r\r\nPARAM_WING_DEFORM=0\r\r\nVISIBLE:PSD=1\r\r\nVISIBLE:PARTS_01_HAT=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_EMOTION=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_BUST=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_WING=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/Potion-Maker/Tia/textures.cache",
    "content": "[\"textures/default-costume.png\",\"textures/jersey-costume-blue.png\",\"textures/pajamas-costume-green.png\",\"textures/bikini-costume-blue.png\",\"textures/bikini-costume-pink.png\",\"textures/blackcat-costume.png\",\"textures/blazer-costume-black.png\",\"textures/blazer-costume-brown.png\",\"textures/blueround-costume.png\",\"textures/bunny-girl-costume-red.png\",\"textures/bunny-girl-costume.png\",\"textures/cami-dress-costume-pink.png\",\"textures/cute-pajamas-costume-purple.png\",\"textures/cute-pajamas-costume-skyblue.png\",\"textures/frill-blouse-costume-green.png\",\"textures/frill-blouse-costume-red.png\",\"textures/halloween-costume.png\",\"textures/hanbok-costume-gorgeous.png\",\"textures/hanbok-costume.png\",\"textures/hood-costume-gray.png\",\"textures/hood-costume-red.png\",\"textures/jersey-costume-red.png\",\"textures/knight-costume.png\",\"textures/macaron-dress-costume-green.png\",\"textures/macaron-dress-costume-pink.png\",\"textures/magical-girl-costume.png\",\"textures/maid-costume-black.png\",\"textures/maid-costume-blue.png\",\"textures/marine-costume-navy.png\",\"textures/marine-costume.png\",\"textures/nordic-costume-beige.png\",\"textures/nordic-costume-navy.png\",\"textures/nurse-costume-red.png\",\"textures/nurse-costume.png\",\"textures/pajamas-costume-blue.png\",\"textures/pushcat-costume.png\",\"textures/sabori-costume.png\",\"textures/sailor-bikini-costume-black.png\",\"textures/sailor-bikini-costume-white.png\",\"textures/sailor-costume-black.png\",\"textures/sailor-costume.png\",\"textures/sakura-costume-navy.png\",\"textures/sakura-costume.png\",\"textures/santa-costume.png\",\"textures/santa2016-costume.png\",\"textures/sports-bikini-costume-green.png\",\"textures/sports-bikini-costume-navy.png\",\"textures/spring-dress-costume-brown.png\",\"textures/spring-dress-costume-navy.png\",\"textures/sukumizu-costume-white.png\",\"textures/sukumizu-costume.png\",\"textures/sulbim-costume-rainbow.png\",\"textures/sulbim-costume-snowflake.png\",\"textures/summer-uniform-costume-blue.png\",\"textures/summer-uniform-costume-green.png\",\"textures/thief-costume.png\",\"textures/traveler-costume-brown.png\",\"textures/traveler-costume-white.png\",\"textures/vampire-costume-real.png\",\"textures/vampire-costume.png\",\"textures/warrior-costume.png\",\"textures/whiteday-costume-purple.png\",\"textures/whiteday-costume-red.png\"]"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/expressions/f01.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/expressions/f02.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_X\",\"val\":-0.4},{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":-0.7},{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.7,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.7,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_DONYORI\",\"val\":0.7},{\"id\":\"PARAM_EYE_FORM\",\"val\":0.3},{\"id\":\"PARAM_BODY_Y\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.3},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.3},{\"id\":\"PARAM_BROW_R_X\",\"val\":-0.3},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.5},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":-1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/expressions/f03.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":0.2},{\"id\":\"PARAM_BODY_Y\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.2},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.2},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.4},{\"id\":\"PARAM_BROW_R_X\",\"val\":-0.4},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-1},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.7,\"def\":1},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":0.3}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/expressions/f04.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_X\",\"val\":-0.4},{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":-0.7},{\"id\":\"PARAM_EYE_BALL_KIRAKIRA\",\"val\":1},{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":1.5,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":1.5,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.5},{\"id\":\"PARAM_KAMIYURE_TWIN_L_02\",\"val\":0.3},{\"id\":\"PARAM_KAMIYURE_TWIN_R_02\",\"val\":-0.3},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":1},{\"id\":\"PARAM_TERE\",\"val\":1,\"def\":0.6}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/index.json",
    "content": "{\n    \"name\":\"shizuku_48.512\",\n    \"model\":\"model.moc\",\n    \"textures\":[\n        \"textures.512/00.png\",\n        \"textures.512/01.png\",\n        \"textures.512/02.png\",\n        \"textures.512/03.png\",\n\t\t\"textures.512/04.png\",\n\t\t\"textures.512/05.png\",\n\t\t\"textures.512/06.png\",\n\t\t\"textures.512/07.png\"\n    ],\n    \"physics\":\"physics.json\",\n    \"pose\":\"pose.json\",\n    \"expressions\":[\n        {\"name\":\"f01\",\"file\": \"expressions/f01.exp.json\"},\n        {\"name\":\"f02\",\"file\": \"expressions/f02.exp.json\"},\n        {\"name\":\"f03\",\"file\": \"expressions/f03.exp.json\"},\n        {\"name\":\"f04\",\"file\": \"expressions/f04.exp.json\"}\n    ],\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": -0.1,\n        \"width\": 1.8\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"motions\":{\n        \"idle\":[\n\t\t\t{\"file\":\"motions/idl_00.mtn\"},\n\t\t\t{\"file\":\"motions/idl_01.mtn\"},\n\t\t\t{\"file\":\"motions/idl_02.mtn\"},\n\t\t\t{\"file\":\"motions/idl_03.mtn\"},\n\t\t\t{\"file\":\"motions/idl_04.mtn\"},\n\t\t\t{\"file\":\"motions/idl_05.mtn\"},\n\t\t\t{\"file\":\"motions/idle_01.mtn\"},\n\t\t\t{\"file\":\"motions/idle_02.mtn\"},\n\t\t\t{\"file\":\"motions/idle_03.mtn\"},\n\t\t\t{\"file\":\"motions/idle_04.mtn\"},\n\t\t\t{\"file\":\"motions/idle_05.mtn\"},\n\t\t\t{\"file\":\"motions/idle_06.mtn\"},\n\t\t\t{\"file\":\"motions/idle_07.mtn\"},\n\t\t\t{\"file\":\"motions/idle_08.mtn\"},\n\t\t\t{\"file\":\"motions/idle_09.mtn\"},\n\t\t\t{\"file\":\"motions/idle_A.mtn\"},\n\t\t\t{\"file\":\"motions/idle_A2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_B.mtn\"},\n\t\t\t{\"file\":\"motions/idle_B2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C2_copy.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura1.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura2.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura3.mtn\"},\n\t\t\t{\"file\":\"motions/wait_01.mtn\"},\n\t\t\t{\"file\":\"motions/wait_02.mtn\"},\n\t\t\t{\"file\":\"motions/wait_03.mtn\"},\n\t\t\t{\"file\":\"motions/wait_04.mtn\"},\n\t\t\t{\"file\":\"motions/wait_05.mtn\"}\n        ],\n        \"flick_head\":[\n\t\t\t{\"file\":\"motions/double_tap1.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap2.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap3.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap4.mtn\"}\n\t\t],\n\t\t\"tap_body\":[\n\t\t\t{\"file\":\"motions/touch1.mtn\"},\n\t\t\t{\"file\":\"motions/touch2.mtn\"},\n\t\t\t{\"file\":\"motions/touch3.mtn\"},\n\t\t\t{\"file\":\"motions/touch4.mtn\"}\n\t\t]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/double_tap1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.46,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,0,0,0,0,0,0,0,0,4.47,12.53,17,13.96,9.10,4.56,1.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.97,2.56,3.65,4,3.55,2.51,1.27,0,-2.08,-3.81,-5.24,-6.45,-7.44,-8.25,-8.91,-9.39,-9.73,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.80,-9.26,-8.46,-7.45,-6.33,-5.15,-3.98,-2.89,-1.93,-1.12,-0.51,-0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.56,0.67,0.74,0.76,0.76,0.74,0.72,0.69,0.66,0.62,0.58,0.55,0.51,0.47,0.44,0.41,0.39,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.39,0.40,0.42,0.43,0.45,0.46,0.47,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,6.78,17.89,25.52,28,27.60,26.47,24.77,22.54,19.93,16.98,13.82,10.54,7.15,3.72,0.38,-2.87,-5.97,-8.80,-11.41,-13.63,-15.46,-16.82,-17.69,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-17.64,-16.68,-15.23,-13.41,-11.40,-9.26,-7.17,-5.21,-3.47,-2.01,-0.92,-0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.48,1.28,1.82,2,1.72,0.94,-0.25,-1.80,-3.61,-5.66,-7.86,-10.14,-12.50,-14.89,-17.21,-19.48,-21.63,-23.60,-25.42,-26.96,-28.23,-29.18,-29.79,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.40,-27.79,-25.38,-22.35,-19.00,-15.44,-11.94,-8.68,-5.78,-3.35,-1.53,-0.39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0.19,0.50,0.71,0.78,0.77,0.74,0.70,0.64,0.58,0.51,0.43,0.35,0.27,0.20,0.14,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0.11,0.29,0.41,0.45,0.44,0.41,0.36,0.29,0.21,0.13,0.04,-0.05,-0.14,-0.22,-0.30,-0.37,-0.42,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.24,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,0.63,0.02,-0.43,-0.60,-0.66,-0.72,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.95,-0.97,-0.98,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.20,0.42,0.61,0.78,0.90,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.70,0.33,0.08,0,0.21,0.57,0.82,0.91,0.94,0.96,0.97,0.98,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0.11,0.28,0.40,0.44,0.43,0.40,0.35,0.28,0.21,0.13,0.04,-0.05,-0.14,-0.22,-0.29,-0.36,-0.41,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.44,-0.42,-0.38,-0.34,-0.28,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.56,0.65,0.72,0.74,0.74,0.72,0.70,0.67,0.64,0.60,0.56,0.53,0.49,0.45,0.42,0.39,0.37,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.36,0.37,0.39,0.41,0.42,0.44,0.46,0.47,0.48,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.46,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.70,0.33,0.08,0,0.21,0.57,0.82,0.91,0.94,0.96,0.97,0.98,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,0.00,0.01,0.02,0.04,0.06,0.07,0.09,0.11,0.12,0.14,0.15,0.17,0.18,0.19,0.19,0.20,0.20,0.16,0.06,-0.07,-0.22,-0.38,-0.54,-0.68,-0.81,-0.91,-0.98,-1,-0.96,-0.89,-0.85,-0.83,-0.87,-0.94,-0.98,-1,-0.96,-0.88,-0.84,-0.82,-0.82,-0.82,-0.83,-0.83,-0.83,-0.81,-0.77,-0.70,-0.62,-0.53,-0.43,-0.33,-0.24,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,-0.08,-0.21,-0.30,-0.33,-0.33,-0.31,-0.30,-0.27,-0.24,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.03,-0.02,-0.00,0,-0.01,-0.05,-0.09,-0.15,-0.20,-0.26,-0.31,-0.35,-0.39,-0.41,-0.42,-0.41,-0.39,-0.38,-0.38,-0.39,-0.41,-0.42,-0.42,-0.41,-0.39,-0.38,-0.38,-0.40,-0.44,-0.47,-0.49,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/double_tap2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_BASE_X=0,-1.31,-4.81,-9.88,-15.90,-22.10,-28.12,-33.19,-36.69,-38,-37.01,-34.54,-30.91,-26.28,-20.86,-14.60,-7.71,0,9.51,17.68,24.69,30.39,34.99,38.50,41.05,42.74,43.70,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43.61,42.49,40.73,38.43,35.72,32.61,29.23,25.66,22,18.34,14.77,11.39,8.28,5.57,3.27,1.51,0.39,0\nPARAM_BASE_Y=0,3.58,9.30,14.64,18.50,20,15.16,7.22,1.77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.65,-2.41,-4.94,-7.95,-11.05,-14.06,-16.59,-18.35,-19,-18.89,-18.58,-18.07,-17.40,-16.55,-15.56,-14.45,-13.21,-11.88,-10.46,-8.94,-7.39,-5.77,-4.14,-2.50,-0.86,0.77,2.39,3.94,5.46,6.88,8.21,9.45,10.56,11.55,12.40,13.07,13.58,13.89,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.87,13.52,12.96,12.23,11.37,10.38,9.30,8.16,7,5.84,4.70,3.62,2.63,1.77,1.04,0.48,0.13,0\nPARAM_BODY_ANGLE_X=0,-0.34,-1.27,-2.60,-4.18,-5.82,-7.40,-8.73,-9.66,-10,-9.70,-8.99,-7.97,-6.70,-5.25,-3.62,-1.89,0,2.27,4.18,5.79,7.08,8.09,8.85,9.39,9.75,9.94,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.91,9.66,9.26,8.73,8.12,7.41,6.64,5.83,5,4.17,3.36,2.59,1.88,1.27,0.74,0.34,0.09,0\nPARAM_BODY_ANGLE_Y=0,-0.10,-0.38,-0.78,-1.25,-1.75,-2.22,-2.62,-2.90,-3,-2.93,-2.76,-2.49,-2.14,-1.72,-1.22,-0.65,0,0.82,1.54,2.17,2.69,3.12,3.46,3.71,3.87,3.97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.96,3.86,3.70,3.49,3.25,2.96,2.66,2.33,2,1.67,1.34,1.04,0.75,0.51,0.30,0.14,0.04,0\nPARAM_BROW_R_Y=0.50,0.51,0.53,0.56,0.59,0.63,0.66,0.69,0.71,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.71,0.70,0.69,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.56,0.54,0.53,0.52,0.51,0.50,0.50\nPARAM_ANGLE_Y=0,0.96,3.55,7.28,11.71,16.29,20.72,24.45,27.04,28,27.48,26.00,23.69,20.65,17.09,12.99,8.53,3.82,-1,-5.82,-10.53,-14.99,-19.09,-22.65,-25.69,-28.00,-29.48,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.77,-26.20,-24.36,-22.24,-19.93,-17.49,-15,-12.51,-10.07,-7.76,-5.64,-3.80,-2.23,-1.03,-0.27,0\nPARAM_ANGLE_X=0,-1.03,-3.80,-7.80,-12.55,-17.45,-22.20,-26.20,-28.97,-30,-29.57,-28.35,-26.43,-23.92,-20.97,-17.58,-13.88,-9.99,-6,-2.01,1.88,5.58,8.97,11.92,14.43,16.35,17.57,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.84,17.38,16.66,15.72,14.61,13.34,11.96,10.50,9,7.50,6.04,4.66,3.39,2.28,1.34,0.62,0.16,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0.20,0.53,0.76,0.83,0.77,0.62,0.44,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.07,-0.12,-0.18,-0.24,-0.29,-0.35,-0.40,-0.44,-0.46,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.45,-0.44,-0.41,-0.38,-0.35,-0.31,-0.27,-0.24,-0.20,-0.16,-0.12,-0.09,-0.06,-0.03,-0.02,-0.00,0\nPARAM_MOUTH_FORM=1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.62,-0.48,-0.33,-0.17,0,0.17,0.33,0.48,0.62,0.75,0.85,0.93,0.98,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.23,0.59,0.85,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.90,0.89,0.88,0.87,0.86,0.79,0.63,0.42,0.22,0.06,0,0,0,0.06,0.21,0.41,0.61,0.77,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.97,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.06,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.33,-0.37,-0.42,-0.47,-0.51,-0.55,-0.59,-0.63,-0.66,-0.69,-0.71,-0.73,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.75,-0.73,-0.70,-0.66,-0.62,-0.56,-0.50,-0.44,-0.38,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,-0.00,-0.03,-0.07,-0.12,-0.18,-0.25,-0.31,-0.37,-0.42,-0.46,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.48,-0.46,-0.44,-0.41,-0.37,-0.33,-0.29,-0.25,-0.21,-0.17,-0.13,-0.09,-0.06,-0.04,-0.02,-0.00,0\nPARAM_BROW_L_Y=0.50,0.51,0.53,0.56,0.59,0.63,0.66,0.69,0.71,0.72,0.72,0.72,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.62,0.61,0.59,0.57,0.55,0.54,0.53,0.52,0.51,0.50,0.50\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.02,-0.04,-0.07,-0.11,-0.15,-0.20,-0.25,-0.31,-0.37,-0.43,-0.49,-0.55,-0.61,-0.66,-0.72,-0.77,-0.82,-0.86,-0.90,-0.93,-0.96,-0.97,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.96,-0.92,-0.86,-0.80,-0.73,-0.66,-0.58,-0.50,-0.41,-0.33,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.23,0.59,0.85,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.90,0.90,0.89,0.88,0.86,0.85,0.77,0.62,0.41,0.21,0.06,0,0,0,0.06,0.21,0.41,0.61,0.77,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.97,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.54,0.58,0.63,0.69,0.75,0.81,0.87,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,0.98,0.96,0.94,0.91,0.87,0.83,0.79,0.75,0.71,0.67,0.63,0.59,0.56,0.54,0.52,0.50,0.50\nPARAM_EYE_BALL_X=0,0.03,0.11,0.23,0.37,0.51,0.65,0.77,0.85,0.88,0.88,0.88,0.88,0.87,0.86,0.85,0.83,0.81,0.79,0.75,0.71,0.67,0.61,0.55,0.47,0.38,0.29,0.20,0.11,0.02,-0.07,-0.15,-0.23,-0.30,-0.36,-0.41,-0.46,-0.49,-0.50,-0.51,-0.44,-0.28,-0.09,0.11,0.29,0.44,0.54,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.56,0.54,0.51,0.47,0.43,0.39,0.34,0.29,0.24,0.19,0.15,0.11,0.07,0.04,0.02,0.01,0\nPARAM_EYE_BALL_Y=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.72,-0.80,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.82,-0.82,-0.81,-0.81,-0.80,-0.79,-0.77,-0.74,-0.70,-0.65,-0.59,-0.53,-0.48,-0.42,-0.36,-0.30,-0.25,-0.21,-0.18,-0.15,-0.14,-0.13,-0.14,-0.17,-0.21,-0.24,-0.28,-0.30,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.31,-0.29,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.04,-0.02,-0.01,-0.00,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/double_tap3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.03,0.11,0.21,0.30,0.38,0.41,0.41,0.41,0.41,0.41,0.40,0.40,0.40,0.40,0.39,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.27,0.26,0.26,0.25,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-2.25,-7.73,-15,-22.27,-27.75,-30,-29.90,-29.62,-29.16,-28.54,-27.77,-26.87,-25.86,-24.74,-23.53,-22.24,-20.86,-19.44,-17.97,-16.49,-15,-13.51,-12.03,-10.56,-9.14,-7.76,-6.47,-5.26,-4.14,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,-0.30,-1.03,-2,-2.97,-3.70,-4,-4.00,-3.99,-3.97,-3.94,-3.91,-3.88,-3.83,-3.79,-3.73,-3.67,-3.61,-3.54,-3.47,-3.39,-3.31,-3.23,-3.14,-3.05,-2.96,-2.87,-2.77,-2.67,-2.57,-2.47,-2.37,-2.26,-2.16,-2.05,-1.95,-1.84,-1.74,-1.63,-1.53,-1.43,-1.33,-1.23,-1.13,-1.04,-0.95,-0.86,-0.77,-0.69,-0.61,-0.53,-0.46,-0.39,-0.33,-0.27,-0.21,-0.17,-0.12,-0.09,-0.06,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.52,0.57,0.64,0.71,0.76,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.71,0.70,0.70,0.69,0.69,0.68,0.68,0.67,0.66,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.55,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,2.25,7.73,15,22.27,27.75,30,29.93,29.72,29.38,28.93,28.36,27.71,26.96,26.14,25.25,24.31,23.29,22.26,21.18,20.09,19,17.91,16.82,15.74,14.71,13.69,12.75,11.86,11.04,10.29,9.64,9.07,8.62,8.28,8.07,8,8.52,9.66,11.07,12.54,13.88,14.99,15.72,16,15.31,13.47,10.80,7.63,4.37,1.20,-1.47,-3.31,-4,-3.74,-3.17,-2.46,-1.73,-1.06,-0.51,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0.45,1.55,3,4.45,5.55,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4.03,-0.22,-5.51,-11.02,-16.04,-20.20,-22.97,-24,-20.85,-14.05,-5.58,3.23,11.26,17.92,22.35,24,22.76,19.44,14.64,8.94,3.06,-2.64,-7.44,-10.76,-12,-11.21,-9.51,-7.39,-5.19,-3.18,-1.52,-0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0.15,0.40,0.56,0.62,0.47,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,0.85,0.48,0,-0.48,-0.85,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.95,-0.92,-0.88,-0.83,-0.77,-0.70,-0.64,-0.56,-0.48,-0.40,-0.31,-0.23,-0.14,-0.05,0.05,0.14,0.23,0.31,0.40,0.48,0.56,0.64,0.70,0.77,0.83,0.88,0.92,0.95,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,0.76,0.36,0.09,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.50,0.52,0.57,0.64,0.70,0.75,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.71,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0.03,0.11,0.21,0.31,0.39,0.42,0.42,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.38,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.21,0.20,0.19,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,0.76,0.36,0.09,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0.00,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.05,0.06,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.22,0.40,0.56,0.68,0.73,0.69,0.57,0.41,0.22,0.03,-0.16,-0.31,-0.43,-0.50,-0.53,-0.51,-0.47,-0.41,-0.32,-0.23,-0.14,-0.04,0.05,0.12,0.19,0.24,0.27,0.28,0.28,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.09,0.08,0.06,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.08,-0.26,-0.50,-0.74,-0.92,-1,-0.99,-0.98,-0.96,-0.93,-0.89,-0.85,-0.81,-0.78,-0.74,-0.70,-0.66,-0.63,-0.60,-0.57,-0.56,-0.54,-0.54,-0.62,-0.75,-0.88,-0.97,-1,-1,-1,-1.00,-0.99,-0.98,-0.96,-0.93,-0.89,-0.85,-0.79,-0.70,-0.61,-0.50,-0.39,-0.28,-0.17,-0.06,0.03,0.10,0.17,0.21,0.24,0.25,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.20,0.19,0.17,0.16,0.15,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/double_tap4.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=-0.26,-0.41,-0.52,-0.56,-0.55,-0.53,-0.51,-0.48,-0.44,-0.41,-0.38,-0.36,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.36,-0.36,-0.36,-0.35,-0.35,-0.34,-0.34,-0.33,-0.33,-0.32,-0.31,-0.31,-0.30,-0.30,-0.29,-0.29,-0.28,-0.27,-0.27,-0.26,-0.25,-0.25,-0.24,-0.23,-0.23,-0.22,-0.21,-0.21,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.15,-0.14,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02\nPARAM_BASE_X=4.06,8.33,13.61,19.48,25.62,31.83,37.87,43.50,48.59,52.80,56.11,58.25,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,58.44,56.82,54.22,50.77,46.48,41.54,35.89,29.78,23.20,16.35,9.01,1.66,-5.82,-13.35,-20.75,-28.04,-35.25,-42.02,-48.46,-54.51,-60.08,-64.99,-69.38,-73.11,-76.03,-78.19,-79.55,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-79.87,-79.50,-78.90,-78.11,-77.12,-75.98,-74.68,-73.27,-71.76,-70.18,-68.49,-66.80,-65.08,-63.34,-61.64,-59.96,-58.30,-56.74,-55.26,-53.87,-52.58,-51.45,-50.44,-49.59,-48.91,-48.42,-48.10,-48,-48.10,-48.40,-48.90,-49.55,-50.38,-51.33,-52.42,-53.61,-54.90,-56.28,-57.75,-59.26,-60.83,-62.41,-64,-65.59,-67.17,-68.74,-70.25,-71.72,-73.10,-74.39,-75.58,-76.67,-77.62,-78.45,-79.10,-79.60,-79.90,-80,-79.78,-79.16,-78.14,-76.76,-75.06,-73.04,-70.74,-68.20,-65.42,-62.44,-59.24,-55.94,-52.52,-49.01,-45.43,-41.82,-38.18,-34.57,-30.99,-27.48,-24.06,-20.76,-17.56,-14.58,-11.80,-9.26,-6.96,-4.94,-3.24,-1.86,-0.84,-0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=16.27,25.62,32.37,35,33.80,30.57,25.90,20.36,14.64,9.10,4.43,1.20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-1.04,14.46,25.64,30,29.28,27.35,24.55,21.24,17.82,14.51,11.71,9.78,9.06,9.86,11.15,12.35,13.21,13.55,13.23,12.66,12.35,12.66,13.23,13.55,13.55,13.55,13.55,13.55,13.55,13.55,13.55,13.41,13.02,12.39,11.56,10.53,9.33,7.97,6.50,4.91,3.25,1.48,-0.29,-2.10,-3.91,-5.70,-7.46,-9.20,-10.83,-12.39,-13.85,-15.19,-16.38,-17.44,-18.34,-19.04,-19.56,-19.89,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-19.80,-19.21,-18.28,-17.04,-15.50,-13.72,-11.69,-9.49,-7.12,-4.66,-2.02,0.63,3.32,6.03,8.69,11.31,13.90,16.34,18.65,20.83,22.84,24.60,26.18,27.52,28.57,29.35,29.84,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30.00,29.99,29.98,29.97,29.95,29.93,29.90,29.88,29.84,29.81,29.77,29.72,29.67,29.62,29.57,29.51,29.45,29.38,29.32,29.24,29.17,29.09,29.00,28.92,28.83,28.74,28.64,28.54,28.44,28.33,28.23,28.11,28,27.89,27.78,27.68,27.58,27.48,27.39,27.31,27.22,27.13,27.05,26.96,26.88,26.79,26.70,26.60,26.51,26.40,26.30,26.19,26.07,25.94,25.81,25.67,25.52,25.35,25.18,25,24.65,24.05,23.19,22.11,20.87,19.49,17.95,16.38,14.72,13.03,11.34,9.72,8.11,6.61,5.19,3.92,2.79,1.82\nPARAM_BODY_ANGLE_X=0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.16,-0.34,-0.59,-0.90,-1.26,-1.66,-2.10,-2.58,-3.07,-3.60,-4.13,-4.66,-5.21,-5.74,-6.26,-6.78,-7.27,-7.73,-8.17,-8.57,-8.92,-9.24,-9.50,-9.71,-9.87,-9.97,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.93,-9.88,-9.82,-9.75,-9.67,-9.58,-9.48,-9.39,-9.28,-9.17,-9.07,-8.96,-8.85,-8.75,-8.64,-8.55,-8.45,-8.37,-8.29,-8.22,-8.15,-8.10,-8.06,-8.03,-8.01,-8,-8.01,-8.03,-8.06,-8.10,-8.15,-8.21,-8.28,-8.35,-8.43,-8.52,-8.61,-8.70,-8.80,-8.90,-9,-9.10,-9.20,-9.30,-9.39,-9.48,-9.57,-9.65,-9.72,-9.79,-9.85,-9.90,-9.94,-9.97,-9.99,-10,-9.98,-9.93,-9.84,-9.72,-9.57,-9.39,-9.19,-8.97,-8.72,-8.46,-8.17,-7.88,-7.57,-7.25,-6.92,-6.59,-6.25,-5.91,-5.57,-5.23,-4.90,-4.57,-4.25,-3.94,-3.65,-3.37,-3.10,-2.86,-2.64,-2.44,-2.26,-2.12,-2,-1.90,-1.80,-1.71,-1.62,-1.53,-1.45,-1.37,-1.29,-1.22,-1.15,-1.08,-1.01,-0.95,-0.89,-0.83,-0.77,-0.72,-0.67,-0.62,-0.58,-0.53,-0.49,-0.45,-0.42,-0.38,-0.35,-0.32,-0.29,-0.26,-0.24,-0.21,-0.19,-0.17,-0.15,-0.13,-0.12,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03\nPARAM_BODY_ANGLE_Y=0.93,1.46,1.85,2,1.99,1.96,1.92,1.84,1.74,1.61,1.45,1.24,1,0.63,0.36,0.17,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.21,-0.36,-0.54,-0.75,-1.00,-1.26,-1.55,-1.84,-2.16,-2.48,-2.80,-3.12,-3.44,-3.76,-4.07,-4.36,-4.64,-4.90,-5.14,-5.35,-5.54,-5.70,-5.83,-5.92,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.95,-5.90,-5.82,-5.72,-5.61,-5.48,-5.34,-5.18,-5.01,-4.83,-4.64,-4.44,-4.24,-4.03,-3.82,-3.61,-3.39,-3.18,-2.96,-2.76,-2.55,-2.35,-2.16,-1.98,-1.80,-1.64,-1.50,-1.36,-1.24,-1.14,-1.06,-1,-0.95,-0.90,-0.85,-0.81,-0.76,-0.72,-0.68,-0.64,-0.60,-0.57,-0.53,-0.50,-0.47,-0.44,-0.41,-0.38,-0.35,-0.33,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.02,-0.01,-0.01\nPARAM_BROW_R_Y=0.62,0.68,0.73,0.75,0.75,0.74,0.73,0.71,0.70,0.68,0.67,0.66,0.66,0.66,0.67,0.67,0.68,0.68,0.68,0.68,0.67,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.60,0.59,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.55,0.55,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51\nPARAM_ANGLE_Y=-2.11,13.92,25.49,30,29.25,27.26,24.37,20.94,17.40,13.97,11.08,9.08,8.34,9.17,10.50,11.74,12.63,12.98,12.65,12.06,11.74,12.06,12.65,12.98,12.98,12.98,12.98,12.98,12.98,12.98,12.98,12.90,12.65,12.26,11.74,11.09,10.35,9.49,8.57,7.58,6.54,5.44,4.33,3.20,2.06,0.94,-0.16,-1.25,-2.27,-3.24,-4.15,-4.99,-5.73,-6.40,-6.96,-7.40,-7.73,-7.93,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8.09,-8.35,-8.76,-9.30,-9.98,-10.76,-11.66,-12.63,-13.67,-14.75,-15.91,-17.08,-18.26,-19.45,-20.62,-21.78,-22.92,-23.99,-25.01,-25.96,-26.85,-27.62,-28.32,-28.91,-29.37,-29.71,-29.93,-30,-29.94,-29.77,-29.50,-29.13,-28.66,-28.13,-27.52,-26.84,-26.11,-25.32,-24.49,-23.63,-22.73,-21.83,-20.91,-19.99,-19.07,-18.16,-17.27,-16.40,-15.58,-14.80,-14.07,-13.40,-12.79,-12.25,-11.80,-11.43,-11.16,-11,-10.89,-10.80,-10.70,-10.62,-10.54,-10.46,-10.39,-10.32,-10.26,-10.20,-10.15,-10.10,-10.05,-10.00,-9.95,-9.91,-9.87,-9.83,-9.78,-9.74,-9.70,-9.65,-9.61,-9.56,-9.51,-9.46,-9.41,-9.35,-9.29,-9.22,-9.15,-9.08,-9,-8.91,-8.82,-8.73,-8.63,-8.52,-8.42,-8.30,-8.18,-8.06,-7.93,-7.79,-7.65,-7.51,-7.36,-7.21,-7.05,-6.88,-6.72,-6.55,-6.37,-6.19,-6.00,-5.81,-5.62,-5.41,-5.21,-5,-4.76,-4.51,-4.24,-3.94,-3.65,-3.34,-3.02,-2.72,-2.41,-2.10,-1.81,-1.53,-1.27,-1.02,-0.80,-0.60,-0.42,-0.27\nPARAM_ANGLE_X=1.64,15.80,26.02,30,29.34,27.58,25.02,22.00,18.87,15.84,13.29,11.52,10.87,11.60,12.77,13.87,14.66,14.97,14.68,14.16,13.87,14.16,14.68,14.97,14.97,14.97,14.97,14.97,14.97,14.97,14.97,14.83,14.45,13.83,13.02,12.00,10.82,9.49,8.04,6.48,4.85,3.11,1.37,-0.41,-2.19,-3.95,-5.68,-7.39,-8.99,-10.52,-11.95,-13.28,-14.44,-15.48,-16.37,-17.06,-17.57,-17.89,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18.05,-18.19,-18.41,-18.71,-19.08,-19.51,-20.00,-20.52,-21.09,-21.68,-22.32,-22.95,-23.60,-24.25,-24.88,-25.51,-26.14,-26.72,-27.28,-27.80,-28.28,-28.70,-29.08,-29.40,-29.66,-29.84,-29.96,-30,-29.99,-29.95,-29.88,-29.79,-29.67,-29.53,-29.36,-29.16,-28.93,-28.67,-28.38,-28.07,-27.72,-27.34,-26.94,-26.51,-26.04,-25.54,-25.01,-24.44,-23.85,-23.23,-22.57,-21.88,-21.16,-20.39,-19.60,-18.76,-17.90,-17,-16.10,-15.21,-14.36,-13.52,-12.71,-11.93,-11.16,-10.43,-9.72,-9.03,-8.36,-7.73,-7.12,-6.55,-5.99,-5.47,-4.97,-4.50,-4.06,-3.65,-3.26,-2.91,-2.58,-2.28,-2.02,-1.78,-1.57,-1.40,-1.26,-1.14,-1.06,-1.02,-1,-1.01,-1.05,-1.10,-1.18,-1.27,-1.38,-1.50,-1.63,-1.78,-1.93,-2.09,-2.25,-2.42,-2.58,-2.75,-2.91,-3.07,-3.22,-3.37,-3.50,-3.62,-3.73,-3.82,-3.90,-3.95,-3.99,-4,-3.97,-3.90,-3.78,-3.62,-3.43,-3.21,-2.97,-2.72,-2.45,-2.17,-1.89,-1.63,-1.36,-1.11,-0.87,-0.66,-0.47,-0.31\nPARAM_MOUTH_OPEN_Y=0.46,0.73,0.92,1,0.99,0.95,0.91,0.85,0.79,0.73,0.68,0.65,0.64,0.66,0.68,0.71,0.72,0.73,0.54,0.19,0,0,0,0,0.03,0.09,0.16,0.24,0.30,0.34,0.35,0.35,0.34,0.34,0.33,0.32,0.31,0.29,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.15,0.13,0.11,0.10,0.08,0.06,0.05,0.04,0.03,0.02,0.01,0.00,0.00,0,0.03,0.11,0.22,0.34,0.47,0.60,0.72,0.82,0.91,0.96,0.98,0.97,0.93,0.88,0.81,0.73,0.63,0.54,0.44,0.35,0.25,0.17,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.46,-0.73,-0.92,-1,-0.99,-0.95,-0.91,-0.85,-0.79,-0.73,-0.68,-0.65,-0.64,-0.65,-0.67,-0.70,-0.71,-0.72,-0.71,-0.70,-0.70,-0.70,-0.71,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.71,-0.71,-0.71,-0.71,-0.70,-0.70,-0.70,-0.69,-0.69,-0.68,-0.68,-0.67,-0.66,-0.66,-0.65,-0.64,-0.63,-0.63,-0.62,-0.61,-0.60,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.52,-0.51,-0.50,-0.49,-0.48,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.39,-0.38,-0.37,-0.36,-0.35,-0.33,-0.32,-0.31,-0.30,-0.29,-0.28,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.19,-0.18,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03\nPARAM_MOUTH_FORM=-0.20,-0.31,-0.39,-0.42,-0.41,-0.40,-0.38,-0.36,-0.33,-0.31,-0.29,-0.27,-0.27,-0.39,-0.59,-0.77,-0.90,-0.95,-0.90,-0.82,-0.77,-0.82,-0.90,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.92,-0.92,-0.91,-0.90,-0.89,-0.87,-0.86,-0.85,-0.83,-0.82,-0.80,-0.79,-0.77,-0.75,-0.73,-0.71,-0.69,-0.67,-0.65,-0.63,-0.61,-0.59,-0.57,-0.54,-0.52,-0.50,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.03,-0.01,0.02,0.04,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.24,0.26,0.28,0.30,0.32,0.34,0.36,0.38,0.40,0.42,0.44,0.46,0.47,0.49,0.50,0.52,0.53,0.54\nPARAM_EYE_L_OPEN=0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.74,0.26,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.27,-0.43,-0.55,-0.59,-0.58,-0.56,-0.53,-0.50,-0.47,-0.43,-0.40,-0.38,-0.38,-0.39,-0.40,-0.41,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.32,-0.32,-0.31,-0.31,-0.31,-0.30,-0.30,-0.29,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.24,-0.24,-0.23,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02\nPARAM_BROW_L_SIDE=-0.15,-0.23,-0.30,-0.32,-0.32,-0.31,-0.29,-0.27,-0.25,-0.23,-0.22,-0.21,-0.20,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01\nPARAM_BROW_L_Y=0.38,0.32,0.27,0.25,0.25,0.26,0.28,0.29,0.31,0.32,0.33,0.34,0.35,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.41,0.41,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49\nPARAM_BROW_R_ANGLE=-0.39,-0.61,-0.77,-0.83,-0.82,-0.79,-0.75,-0.70,-0.66,-0.61,-0.57,-0.54,-0.53,-0.54,-0.56,-0.58,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.56,-0.56,-0.55,-0.54,-0.54,-0.53,-0.53,-0.52,-0.51,-0.51,-0.50,-0.49,-0.48,-0.47,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.30,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.19,-0.18,-0.17,-0.16,-0.15,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.03\nPARAM_BROW_R_FORM=-0.46,-0.73,-0.92,-1,-0.99,-0.95,-0.91,-0.85,-0.79,-0.73,-0.68,-0.65,-0.64,-0.65,-0.67,-0.70,-0.71,-0.72,-0.71,-0.70,-0.70,-0.70,-0.71,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.73,-0.73,-0.74,-0.75,-0.76,-0.78,-0.79,-0.80,-0.82,-0.83,-0.85,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_EYE_R_OPEN=0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.74,0.26,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.12,-0.19,-0.24,-0.26,-0.26,-0.26,-0.25,-0.25,-0.24,-0.23,-0.21,-0.19,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0.03,-0.08,-0.11,-0.08,-0.03,0,-0.02,-0.06,-0.10,-0.15,-0.19,-0.21,-0.22,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.11,-0.09,-0.06,-0.02,0.01,0.04,0.08,0.11,0.15,0.18,0.21,0.25,0.27,0.30,0.33,0.35,0.37,0.39,0.40,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.39,0.32,0.23,0.12,0.00,-0.11,-0.22,-0.31,-0.39,-0.43,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.43,-0.39,-0.34,-0.28,-0.21,-0.14,-0.08,-0.03,0.01,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.03,0.02,0.01,0,-0.02,-0.03,-0.05,-0.06,-0.08,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.24,-0.23,-0.22,-0.20,-0.18,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.06,-0.04,-0.03,-0.02\nPARAM_EYE_BALL_Y=-0.27,-0.42,-0.54,-0.58,-0.58,-0.57,-0.57,-0.55,-0.53,-0.51,-0.47,-0.43,-0.37,-0.26,-0.16,-0.08,-0.02,0,-0.02,-0.06,-0.08,-0.06,-0.02,0,-0.03,-0.10,-0.18,-0.26,-0.32,-0.37,-0.38,-0.38,-0.37,-0.36,-0.35,-0.33,-0.31,-0.29,-0.26,-0.24,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.01,0.02,0.05,0.07,0.09,0.11,0.13,0.14,0.15,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.18,0.22,0.27,0.33,0.38,0.43,0.48,0.51,0.53,0.54,0.54,0.53,0.52,0.51,0.49,0.48,0.47,0.45,0.44,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.41,0.40,0.38,0.36,0.34,0.31,0.29,0.26,0.23,0.20,0.17,0.14,0.12,0.09,0.07,0.05,0.03\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,0.04,0.16,0.36,0.63,0.97,1.35,1.79,2.28,2.8,3.36,3.96,4.57,5.21,5.85,6.5,7.15,7.79,8.43,9.04,9.64,10.2,10.72,11.21,11.65,12.03,12.37,12.64,12.84,12.96,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12.92,12.67,12.27,11.74,11.07,10.29,9.41,8.44,7.39,6.27,5.08,3.85,2.57,1.29,0,-1.29,-2.57,-3.85,-5.08,-6.27,-7.39,-8.44,-9.41,-10.29,-11.07,-11.74,-12.27,-12.67,-12.92,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12.99,-12.97,-12.94,-12.9,-12.85,-12.78,-12.7,-12.62,-12.52,-12.41,-12.3,-12.17,-12.04,-11.89,-11.74,-11.58,-11.42,-11.24,-11.06,-10.88,-10.68,-10.49,-10.28,-10.07,-9.86,-9.64,-9.41,-9.19,-8.96,-8.73,-8.49,-8.25,-8.01,-7.76,-7.52,-7.27,-7.03,-6.78,-6.53,-6.28,-6.04,-5.79,-5.55,-5.3,-5.06,-4.82,-4.58,-4.34,-4.11,-3.88,-3.66,-3.44,-3.22,-3,-2.8,-2.59,-2.4,-2.2,-2.02,-1.84,-1.66,-1.5,-1.34,-1.19,-1.04,-0.91,-0.78,-0.66,-0.55,-0.45,-0.36,-0.28,-0.2,-0.14,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.06,-0.24,-0.53,-0.92,-1.41,-1.98,-2.62,-3.33,-4.1,-4.92,-5.79,-6.69,-7.62,-8.56,-9.5,-10.44,-11.38,-12.31,-13.21,-14.08,-14.9,-15.67,-16.38,-17.02,-17.59,-18.08,-18.47,-18.76,-18.94,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-18.91,-18.65,-18.21,-17.64,-16.92,-16.08,-15.14,-14.09,-12.96,-11.75,-10.47,-9.15,-7.77,-6.39,-5,-3.61,-2.23,-0.85,0.47,1.75,2.96,4.09,5.14,6.08,6.92,7.64,8.21,8.65,8.91,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8.98,8.96,8.93,8.89,8.85,8.8,8.74,8.67,8.59,8.51,8.43,8.33,8.23,8.13,8.02,7.91,7.78,7.66,7.53,7.4,7.26,7.12,6.97,6.82,6.67,6.52,6.36,6.2,6.04,5.87,5.71,5.54,5.38,5.21,5.04,4.87,4.69,4.52,4.35,4.18,4.01,3.84,3.67,3.5,3.34,3.17,3.01,2.85,2.69,2.53,2.38,2.23,2.08,1.94,1.79,1.66,1.52,1.4,1.27,1.15,1.04,0.93,0.82,0.72,0.63,0.54,0.46,0.38,0.31,0.25,0.19,0.14,0.1,0.06,0.04,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.1,-0.18,-0.28,-0.39,-0.52,-0.67,-0.83,-1.01,-1.2,-1.4,-1.62,-1.84,-2.08,-2.31,-2.56,-2.81,-3.08,-3.33,-3.6,-3.87,-4.13,-4.4,-4.67,-4.92,-5.19,-5.44,-5.69,-5.92,-6.16,-6.38,-6.6,-6.8,-6.99,-7.17,-7.33,-7.48,-7.61,-7.72,-7.82,-7.9,-7.95,-7.99,-8,-7.94,-7.76,-7.47,-7.08,-6.59,-6.02,-5.38,-4.67,-3.9,-3.08,-2.21,-1.31,-0.38,0.56,1.5,2.44,3.38,4.31,5.21,6.08,6.9,7.67,8.38,9.02,9.59,10.08,10.47,10.76,10.94,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.96,10.86,10.69,10.47,10.18,9.85,9.48,9.07,8.63,8.15,7.65,7.13,6.59,6.05,5.5,4.95,4.41,3.87,3.35,2.85,2.37,1.93,1.52,1.15,0.82,0.53,0.31,0.14,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.16,-0.15,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.01,0.01,0.04,0.07,0.1,0.12,0.15,0.18,0.2,0.23,0.25,0.27,0.29,0.31,0.33,0.34,0.35,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.12,0.11,0.11,0.1,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.01,0.01,0.02,0.03,0.04,0.06,0.07,0.09,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.36,0.38,0.39,0.4,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.41,0.39,0.37,0.34,0.3,0.26,0.22,0.18,0.13,0.08,0.02,-0.03,-0.09,-0.14,-0.2,-0.26,-0.31,-0.37,-0.42,-0.47,-0.51,-0.55,-0.59,-0.63,-0.66,-0.68,-0.7,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.69,-0.69,-0.69,-0.69,-0.69,-0.68,-0.68,-0.68,-0.68,-0.67,-0.67,-0.67,-0.67,-0.66,-0.66,-0.66,-0.65,-0.65,-0.65,-0.65,-0.64,-0.64,-0.64,-0.63,-0.63,-0.63,-0.62,-0.62,-0.62,-0.61,-0.61,-0.6,-0.6,-0.6,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.56,-0.56,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.45,-0.44,-0.43,-0.42,-0.41,-0.4,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.19,-0.17,-0.15,-0.14,-0.12,-0.1,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TERE=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_01.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.93,-13.84,-13.72,-13.57,-13.39,-13.18,-12.94,-12.68,-12.39,-12.09,-11.75,-11.4,-11.02,-10.63,-10.22,-9.8,-9.36,-8.9,-8.43,-7.96,-7.47,-6.97,-6.47,-5.96,-5.44,-4.92,-4.39,-3.86,-3.33,-2.8,-2.28,-1.75,-1.22,-0.69,-0.18,0.32,0.83,1.32,1.81,2.28,2.74,3.19,3.63,4.05,4.46,4.85,5.22,5.57,5.91,6.22,6.51,6.78,7.03,7.25,7.44,7.61,7.75,7.86,7.93,7.98,8,7.99,7.97,7.93,7.87,7.8,7.72,7.63,7.52,7.4,7.27,7.12,6.97,6.81,6.64,6.46,6.28,6.08,5.88,5.68,5.46,5.24,5.02,4.8,4.57,4.35,4.11,3.88,3.64,3.41,3.18,2.95,2.72,2.49,2.26,2.04,1.82,1.6,1.39,1.19,0.99,0.8,0.61,0.44,0.27,0.1,-0.05,-0.19,-0.32,-0.45,-0.56,-0.66,-0.75,-0.82,-0.88,-0.93,-0.97,-0.99,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.9,-0.86,-0.83,-0.79,-0.74,-0.7,-0.65,-0.6,-0.55,-0.51,-0.46,-0.41,-0.36,-0.32,-0.27,-0.23,-0.19,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Y=0,0.03,0.13,0.28,0.49,0.74,1.04,1.38,1.75,2.16,2.59,3.05,3.52,4.01,4.5,5,5.5,5.99,6.48,6.95,7.41,7.84,8.25,8.62,8.96,9.26,9.51,9.72,9.87,9.97,10,9.98,9.91,9.8,9.65,9.45,9.22,8.96,8.65,8.32,7.95,7.56,7.14,6.68,6.21,5.72,5.19,4.65,4.1,3.51,2.92,2.31,1.69,1.05,0.41,-0.24,-0.9,-1.56,-2.23,-2.9,-3.58,-4.26,-4.92,-5.6,-6.27,-6.93,-7.58,-8.23,-8.87,-9.5,-10.12,-10.72,-11.31,-11.88,-12.43,-12.98,-13.49,-13.99,-14.46,-14.91,-15.34,-15.73,-16.11,-16.45,-16.76,-17.04,-17.29,-17.5,-17.68,-17.82,-17.92,-17.98,-18,-17.98,-17.92,-17.81,-17.67,-17.5,-17.29,-17.04,-16.77,-16.46,-16.13,-15.76,-15.37,-14.96,-14.53,-14.07,-13.59,-13.09,-12.59,-12.06,-11.52,-10.96,-10.4,-9.83,-9.24,-8.66,-8.06,-7.48,-6.87,-6.28,-5.68,-5.09,-4.5,-3.91,-3.34,-2.76,-2.21,-1.65,-1.12,-0.6,-0.09,0.4,0.87,1.33,1.77,2.18,2.57,2.93,3.27,3.58,3.87,4.13,4.35,4.54,4.71,4.83,4.92,4.98,5,4.99,4.96,4.92,4.85,4.78,4.68,4.58,4.46,4.33,4.2,4.05,3.9,3.74,3.57,3.41,3.24,3.06,2.89,2.72,2.54,2.38,2.21,2.05,1.89,1.74,1.59,1.46,1.33,1.21,1.1,1,0.9,0.8,0.72,0.64,0.56,0.5,0.43,0.38,0.33,0.28,0.24,0.2,0.17,0.14,0.12,0.09,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.95,-5.81,-5.59,-5.29,-4.92,-4.49,-4,-3.48,-2.91,-2.32,-1.68,-1.05,-0.4,0.25,0.88,1.51,2.14,2.72,3.28,3.8,4.28,4.7,5.08,5.4,5.66,5.84,5.96,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.95,0.95,0.91,0.82,0.7,0.56,0.41,0.27,0.15,0.07,0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0.01,0.03,0.08,0.13,0.2,0.28,0.36,0.44,0.53,0.61,0.7,0.78,0.86,0.93,1,1.07,1.13,1.19,1.25,1.31,1.37,1.42,1.47,1.52,1.56,1.6,1.65,1.68,1.72,1.75,1.79,1.82,1.84,1.87,1.89,1.91,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.8,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.03,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.97,0.92,0.83,0.73,0.62,0.49,0.36,0.24,0.12,0,-0.14,-0.29,-0.44,-0.58,-0.71,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.94,-0.87,-0.79,-0.7,-0.59,-0.48,-0.36,-0.24,-0.12,0.01,0.16,0.28,0.4,0.5,0.59,0.66,0.73,0.79,0.84,0.88,0.91,0.94,0.96,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.05,0.1,0.16,0.23,0.31,0.4,0.48,0.57,0.66,0.75,0.84,0.92,1,1.08,1.15,1.22,1.29,1.35,1.41,1.47,1.52,1.57,1.61,1.66,1.7,1.74,1.77,1.8,1.83,1.85,1.88,1.9,1.92,1.94,1.95,1.96,1.97,1.98,1.99,1.99,2,2,2,2,1.98,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.66,1.62,1.56,1.51,1.46,1.41,1.36,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.97,0.92,0.83,0.73,0.62,0.49,0.36,0.24,0.12,0,-0.14,-0.29,-0.44,-0.58,-0.71,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.94,-0.87,-0.79,-0.7,-0.59,-0.48,-0.36,-0.24,-0.12,0.01,0.16,0.28,0.4,0.5,0.59,0.66,0.73,0.79,0.84,0.88,0.91,0.94,0.96,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_BALL_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.26,-0.28,-0.3,-0.32,-0.34,-0.35,-0.37,-0.39,-0.4,-0.41,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.3,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.1,-0.08,-0.06,-0.04,-0.01,0.01,0.03,0.06,0.08,0.1,0.12,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.36,0.38,0.39,0.41,0.42,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.5,0.5,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.51,0.5,0.48,0.46,0.44,0.42,0.39,0.37,0.34,0.31,0.29,0.26,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.06,0.04,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_Y=0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.1,0.13,0.15,0.18,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.4,0.43,0.45,0.48,0.5,0.52,0.54,0.55,0.56,0.57,0.58,0.58,0.53,0.38,0.18,-0.06,-0.3,-0.53,-0.72,-0.87,-0.97,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.9,-0.87,-0.85,-0.82,-0.79,-0.75,-0.72,-0.68,-0.64,-0.6,-0.56,-0.52,-0.48,-0.43,-0.39,-0.35,-0.3,-0.26,-0.21,-0.17,-0.12,-0.08,-0.04,0.01,0.05,0.09,0.13,0.17,0.21,0.24,0.28,0.31,0.34,0.37,0.4,0.42,0.45,0.47,0.49,0.5,0.52,0.53,0.53,0.54,0.54,0.54,0.52,0.51,0.48,0.45,0.41,0.37,0.33,0.28,0.24,0.18,0.13,0.08,0.03,-0.03,-0.08,-0.13,-0.18,-0.23,-0.27,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.49,-0.5,-0.5,-0.5,-0.49,-0.47,-0.45,-0.42,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.14,-0.09,-0.05,0,0.05,0.09,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.38,0.39,0.41,0.42,0.42,0.41,0.4,0.37,0.33,0.29,0.25,0.2,0.15,0.11,0.06,0.02,-0.01,-0.04,-0.06,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_FORM=0\n\nPARAM_EYE_BALL_KIRAKIRA=0\n\nPARAM_BROW_L_Y=0\n\nPARAM_BROW_R_Y=0\n\nPARAM_BROW_L_X=0\n\nPARAM_BROW_R_X=0\n\nPARAM_BROW_L_ANGLE=0\n\nPARAM_BROW_R_ANGLE=0\n\nPARAM_BROW_L_FORM=0\n\nPARAM_BROW_R_FORM=0\n\nPARAM_MOUTH_OPEN_Y=0\n\nPARAM_MOUTH_FORM=1\n\nPARAM_MOUTH_SIZE=0\n\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\n\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_BODY_Z=0\n\nPARAM_BODY_Y=0\n\nPARAM_BREATH=0\n\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ARM_L_02=0\n\nPARAM_HAND_L=0\n\nPARAM_ARM_R=0\n\nPARAM_ARM_R_02=0\n\nPARAM_HAND_R=0\n\nPARAM_KAMIYURE_FRONT=0\n\nPARAM_KAMIYURE_SIDE_L=0\n\nPARAM_KAMIYURE_SIDE_R=0\n\nPARAM_KAMIYURE_TWIN_L=0\n\nPARAM_KAMIYURE_TWIN_R=0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_02.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.93,-13.84,-13.72,-13.57,-13.39,-13.18,-12.94,-12.68,-12.39,-12.09,-11.75,-11.4,-11.02,-10.63,-10.22,-9.8,-9.36,-8.9,-8.43,-7.96,-7.47,-6.97,-6.47,-5.96,-5.44,-4.92,-4.39,-3.86,-3.33,-2.8,-2.28,-1.75,-1.22,-0.69,-0.18,0.32,0.83,1.32,1.81,2.28,2.74,3.19,3.63,4.05,4.46,4.85,5.22,5.57,5.91,6.22,6.51,6.78,7.03,7.25,7.44,7.61,7.75,7.86,7.93,7.98,8,7.99,7.97,7.93,7.87,7.8,7.72,7.63,7.52,7.4,7.27,7.12,6.97,6.81,6.64,6.46,6.28,6.08,5.88,5.68,5.46,5.24,5.02,4.8,4.57,4.35,4.11,3.88,3.64,3.41,3.18,2.95,2.72,2.49,2.26,2.04,1.82,1.6,1.39,1.19,0.99,0.8,0.61,0.44,0.27,0.1,-0.05,-0.19,-0.32,-0.45,-0.56,-0.66,-0.75,-0.82,-0.88,-0.93,-0.97,-0.99,-1,-1,-1,-1,-0.99,-0.99,-0.98,-0.97,-0.96,-0.95,-0.94,-0.92,-0.9,-0.88,-0.86,-0.83,-0.81,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.53,-0.47,-0.41,-0.35,-0.29,-0.22,-0.15,-0.08,0,0.09,0.18,0.28,0.37,0.46,0.55,0.64,0.73,0.81,0.9,0.98,1.06,1.14,1.22,1.3,1.37,1.44,1.5,1.57,1.63,1.68,1.73,1.78,1.83,1.86,1.9,1.93,1.95,1.97,1.99,2,2,2,1.99,1.98,1.97,1.95,1.93,1.91,1.88,1.85,1.82,1.79,1.75,1.71,1.67,1.62,1.58,1.53,1.48,1.43,1.38,1.33,1.28,1.22,1.17,1.12,1.06,1.01,0.95,0.9,0.84,0.79,0.74,0.68,0.63,0.58,0.53,0.49,0.44,0.39,0.35,0.31,0.27,0.23,0.2,0.17,0.14,0.11,0.08,0.06,0.04,0.03,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Y=0,0.03,0.13,0.28,0.49,0.74,1.04,1.38,1.75,2.16,2.59,3.05,3.52,4.01,4.5,5,5.5,5.99,6.48,6.95,7.41,7.84,8.25,8.62,8.96,9.26,9.51,9.72,9.87,9.97,10,9.98,9.91,9.8,9.65,9.45,9.22,8.96,8.65,8.32,7.95,7.56,7.14,6.68,6.21,5.72,5.19,4.65,4.1,3.51,2.92,2.31,1.69,1.05,0.41,-0.24,-0.9,-1.56,-2.23,-2.9,-3.58,-4.26,-4.92,-5.6,-6.27,-6.93,-7.58,-8.23,-8.87,-9.5,-10.12,-10.72,-11.31,-11.88,-12.43,-12.98,-13.49,-13.99,-14.46,-14.91,-15.34,-15.73,-16.11,-16.45,-16.76,-17.04,-17.29,-17.5,-17.68,-17.82,-17.92,-17.98,-18,-17.98,-17.92,-17.81,-17.67,-17.5,-17.29,-17.04,-16.77,-16.46,-16.13,-15.76,-15.37,-14.96,-14.53,-14.07,-13.59,-13.09,-12.59,-12.06,-11.52,-10.96,-10.4,-9.83,-9.24,-8.66,-8.06,-7.48,-6.87,-6.28,-5.68,-5.09,-4.5,-3.91,-3.34,-2.76,-2.21,-1.65,-1.12,-0.6,-0.09,0.4,0.87,1.33,1.77,2.18,2.57,2.93,3.27,3.58,3.87,4.13,4.35,4.54,4.71,4.83,4.92,4.98,5,5,5,5.01,5.01,5.01,5.01,5,4.99,4.98,4.95,4.92,4.87,4.82,4.75,4.67,4.58,4.48,4.35,4.22,4.06,3.89,3.69,3.48,3.25,2.99,2.72,2.42,2.1,1.76,1.39,1,0.5,-0.1,-0.77,-1.51,-2.3,-3.15,-4.06,-5,-5.96,-6.97,-7.97,-8.99,-10.02,-11.05,-12.08,-13.1,-14.09,-15.05,-15.99,-16.9,-17.76,-18.59,-19.34,-20.06,-20.7,-21.27,-21.78,-22.21,-22.55,-22.79,-22.95,-23,-22.98,-22.91,-22.79,-22.64,-22.45,-22.21,-21.94,-21.64,-21.3,-20.93,-20.53,-20.1,-19.65,-19.18,-18.67,-18.15,-17.61,-17.06,-16.49,-15.9,-15.31,-14.7,-14.08,-13.46,-12.84,-12.21,-11.58,-10.94,-10.32,-9.7,-9.07,-8.47,-7.87,-7.28,-6.7,-6.13,-5.58,-5.05,-4.53,-4.03,-3.56,-3.11,-2.68,-2.28,-1.91,-1.56,-1.25,-0.97,-0.72,-0.5,-0.33,-0.19,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.99,-5.98,-5.95,-5.91,-5.86,-5.79,-5.72,-5.64,-5.56,-5.46,-5.36,-5.24,-5.13,-5,-4.87,-4.73,-4.6,-4.45,-4.3,-4.15,-3.99,-3.83,-3.67,-3.51,-3.35,-3.18,-3.02,-2.86,-2.69,-2.53,-2.37,-2.21,-2.05,-1.9,-1.75,-1.6,-1.46,-1.32,-1.18,-1.05,-0.93,-0.81,-0.7,-0.59,-0.5,-0.41,-0.33,-0.25,-0.19,-0.13,-0.08,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.91,0.73,0.49,0.25,0.07,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.8,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.03,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.02,0.05,0.1,0.16,0.23,0.3,0.38,0.47,0.55,0.63,0.7,0.76,0.81,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.9,0.9,0.9,0.9,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.98,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.66,1.62,1.56,1.51,1.46,1.41,1.37,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.02,0.05,0.1,0.16,0.23,0.3,0.38,0.47,0.55,0.63,0.7,0.76,0.81,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.9,0.9,0.9,0.9,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_BALL_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.26,-0.28,-0.3,-0.32,-0.34,-0.35,-0.37,-0.39,-0.4,-0.41,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.41,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.3,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.18,-0.16,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.02,0,0.02,0.04,0.06,0.08,0.1,0.12,0.14,0.16,0.18,0.2,0.22,0.23,0.25,0.27,0.29,0.3,0.32,0.33,0.35,0.36,0.38,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.5,0.5,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.51,0.5,0.48,0.46,0.44,0.42,0.39,0.37,0.34,0.31,0.29,0.26,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.06,0.04,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,0,0.01,0.02,0.03,0.04,0.05,0.07,0.08,0.1,0.12,0.13,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.37,0.39,0.41,0.43,0.45,0.47,0.49,0.51,0.52,0.54,0.55,0.57,0.58,0.59,0.6,0.62,0.62,0.63,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.63,0.63,0.62,0.61,0.6,0.59,0.58,0.57,0.56,0.54,0.53,0.51,0.5,0.48,0.47,0.45,0.43,0.42,0.4,0.38,0.36,0.34,0.33,0.31,0.29,0.27,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.11,0.1,0.09,0.08,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_Y=0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.1,0.13,0.15,0.18,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.4,0.43,0.45,0.48,0.5,0.52,0.54,0.55,0.56,0.57,0.58,0.58,0.46,0.17,-0.21,-0.59,-0.88,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.52,0.51,0.48,0.45,0.41,0.37,0.33,0.28,0.24,0.18,0.13,0.08,0.03,-0.03,-0.08,-0.13,-0.18,-0.23,-0.27,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.49,-0.5,-0.5,-0.5,-0.49,-0.47,-0.45,-0.42,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.14,-0.09,-0.05,0,0.05,0.09,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.38,0.39,0.41,0.42,0.42,0.41,0.4,0.37,0.34,0.31,0.27,0.23,0.18,0.14,0.09,0.05,0,-0.04,-0.08,-0.12,-0.16,-0.2,-0.24,-0.28,-0.32,-0.35,-0.39,-0.42,-0.45,-0.48,-0.51,-0.54,-0.57,-0.6,-0.62,-0.65,-0.67,-0.69,-0.72,-0.74,-0.76,-0.78,-0.79,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.9,-0.91,-0.92,-0.93,-0.94,-0.95,-0.96,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.98,-0.97,-0.95,-0.94,-0.93,-0.91,-0.89,-0.87,-0.85,-0.83,-0.81,-0.79,-0.77,-0.74,-0.72,-0.69,-0.67,-0.64,-0.61,-0.59,-0.56,-0.53,-0.5,-0.48,-0.45,-0.42,-0.39,-0.37,-0.34,-0.32,-0.29,-0.27,-0.24,-0.22,-0.2,-0.18,-0.15,-0.14,-0.12,-0.1,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_FORM=0\n\nPARAM_EYE_BALL_KIRAKIRA=0\n\nPARAM_BROW_L_Y=0\n\nPARAM_BROW_R_Y=0\n\nPARAM_BROW_L_X=0\n\nPARAM_BROW_R_X=0\n\nPARAM_BROW_L_ANGLE=0\n\nPARAM_BROW_R_ANGLE=0\n\nPARAM_BROW_L_FORM=0\n\nPARAM_BROW_R_FORM=0\n\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.04,0.05,0.05,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_MOUTH_FORM=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.1,-0.1,-0.1,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.2,-0.23,-0.26,-0.29,-0.31,-0.34,-0.37,-0.4,-0.43,-0.46,-0.49,-0.52,-0.54,-0.57,-0.6,-0.62,-0.65,-0.67,-0.69,-0.71,-0.73,-0.75,-0.77,-0.78,-0.79,-0.81,-0.82,-0.83,-0.83,-0.84,-0.85,-0.85,-0.86,-0.86,-0.87,-0.87,-0.87,-0.87,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.87,-0.87,-0.86,-0.85,-0.85,-0.84,-0.83,-0.82,-0.81,-0.8,-0.79,-0.78,-0.77,-0.75,-0.74,-0.73,-0.72,-0.72,-0.71,-0.7,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.68,-0.68,-0.68,-0.68,-0.69,-0.69,-0.69,-0.7,-0.7,-0.7,-0.71,-0.71,-0.71,-0.72,-0.72,-0.72,-0.73,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.77,-0.75,-0.73,-0.71,-0.69,-0.66,-0.63,-0.6,-0.57,-0.53,-0.5,-0.46,-0.43,-0.39,-0.36,-0.33,-0.3,-0.27,-0.25,-0.23,-0.21,-0.19,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17\n\nPARAM_MOUTH_SIZE=0\n\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.65,0.65,0.66,0.66,0.66,0.67,0.67,0.67,0.68,0.68,0.69,0.69,0.69,0.7,0.7,0.71,0.71,0.72,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.77,0.77,0.78,0.78,0.79,0.79,0.8,0.8,0.81,0.81,0.82,0.82,0.83,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.89,0.9,0.9,0.9,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.98,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.92,0.92,0.91,0.9,0.89,0.88,0.87,0.86,0.84,0.83,0.82,0.81,0.8,0.79,0.78,0.77,0.76,0.75,0.74,0.73,0.72,0.71,0.7,0.69,0.68,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\n\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_BODY_Z=0\n\nPARAM_BODY_Y=0\n\nPARAM_BREATH=0\n\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ARM_L_02=0\n\nPARAM_HAND_L=0\n\nPARAM_ARM_R=0\n\nPARAM_ARM_R_02=0\n\nPARAM_HAND_R=0\n\nPARAM_KAMIYURE_FRONT=0\n\nPARAM_KAMIYURE_SIDE_L=0\n\nPARAM_KAMIYURE_SIDE_R=0\n\nPARAM_KAMIYURE_TWIN_L=0\n\nPARAM_KAMIYURE_TWIN_R=0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.91,-13.81,-13.66,-13.47,-13.25,-12.99,-12.7,-12.38,-12.03,-11.65,-11.24,-10.8,-10.34,-9.87,-9.37,-8.84,-8.31,-7.75,-7.17,-6.59,-5.99,-5.37,-4.76,-4.13,-3.49,-2.85,-2.21,-1.56,-0.91,-0.25,0.39,1.04,1.69,2.33,2.96,3.58,4.2,4.81,5.4,5.98,6.55,7.1,7.63,8.16,8.65,9.13,9.59,10.02,10.44,10.81,11.18,11.51,11.81,12.07,12.31,12.52,12.69,12.82,12.92,12.98,13,12.98,12.93,12.84,12.72,12.57,12.38,12.17,11.93,11.66,11.37,11.06,10.72,10.35,9.98,9.58,9.17,8.73,8.29,7.84,7.36,6.88,6.39,5.89,5.38,4.88,4.36,3.85,3.32,2.81,2.28,1.77,1.26,0.75,0.25,-0.25,-0.73,-1.22,-1.68,-2.13,-2.57,-3,-3.41,-3.81,-4.19,-4.55,-4.88,-5.2,-5.5,-5.77,-6.02,-6.24,-6.43,-6.6,-6.74,-6.85,-6.93,-6.98,-7,-6.98,-6.91,-6.8,-6.66,-6.48,-6.27,-6.04,-5.78,-5.5,-5.2,-4.88,-4.56,-4.22,-3.88,-3.54,-3.2,-2.87,-2.54,-2.21,-1.9,-1.61,-1.33,-1.07,-0.84,-0.63,-0.44,-0.29,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.38,-0.84,-1.46,-2.23,-3.13,-4.14,-5.26,-6.47,-7.76,-9.14,-10.56,-12.03,-13.51,-15,-16.49,-17.97,-19.44,-20.86,-22.24,-23.53,-24.74,-25.86,-26.87,-27.77,-28.54,-29.16,-29.62,-29.9,-30,-29.99,-29.95,-29.9,-29.82,-29.72,-29.59,-29.45,-29.28,-29.1,-28.89,-28.67,-28.43,-28.16,-27.88,-27.59,-27.27,-26.94,-26.59,-26.22,-25.83,-25.44,-25.03,-24.59,-24.15,-23.69,-23.21,-22.73,-22.22,-21.71,-21.18,-20.63,-20.09,-19.52,-18.93,-18.34,-17.74,-17.14,-16.51,-15.87,-15.23,-14.58,-13.91,-13.24,-12.56,-11.86,-11.16,-10.45,-9.74,-9.02,-8.27,-7.55,-6.79,-6.04,-5.28,-4.51,-3.74,-2.97,-2.18,-1.39,-0.6,0.2,1,1.82,2.63,3.41,4.17,4.9,5.62,6.31,6.98,7.64,8.29,8.91,9.51,10.09,10.65,11.19,11.72,12.23,12.72,13.19,13.65,14.1,14.52,14.93,15.32,15.69,16.06,16.4,16.73,17.05,17.35,17.64,17.91,18.17,18.42,18.65,18.87,19.08,19.27,19.46,19.63,19.79,19.94,20.08,20.2,20.32,20.43,20.52,20.61,20.69,20.76,20.82,20.87,20.91,20.94,20.97,20.99,21,21,20.94,20.76,20.47,20.08,19.6,19.04,18.4,17.69,16.93,16.11,15.25,14.36,13.45,12.51,11.56,10.62,9.69,8.76,7.85,6.97,6.13,5.33,4.57,3.87,3.23,2.66,2.17,1.75,1.41,1.16,1,0.88,0.77,0.67,0.58,0.5,0.43,0.36,0.3,0.25,0.2,0.16,0.13,0.1,0.07,0.05,0.03,0.02,0,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.99,8.95,8.89,8.81,8.7,8.57,8.42,8.25,8.07,7.86,7.64,7.39,7.13,6.86,6.58,6.28,5.96,5.63,5.29,4.94,4.58,4.21,3.83,3.45,3.06,2.65,2.25,1.83,1.42,1,0.58,0.16,-0.24,-0.64,-1.02,-1.39,-1.76,-2.11,-2.46,-2.8,-3.13,-3.45,-3.77,-4.07,-4.36,-4.65,-4.93,-5.19,-5.45,-5.7,-5.95,-6.19,-6.41,-6.63,-6.84,-7.05,-7.24,-7.43,-7.61,-7.79,-7.95,-8.11,-8.27,-8.41,-8.55,-8.68,-8.8,-8.92,-9.03,-9.13,-9.23,-9.32,-9.41,-9.49,-9.56,-9.63,-9.69,-9.75,-9.79,-9.84,-9.88,-9.91,-9.94,-9.96,-9.98,-9.99,-10,-10,-9.97,-9.87,-9.72,-9.51,-9.26,-8.96,-8.63,-8.25,-7.85,-7.42,-6.97,-6.51,-6.03,-5.55,-5.06,-4.58,-4.1,-3.62,-3.16,-2.72,-2.3,-1.9,-1.54,-1.2,-0.9,-0.63,-0.41,-0.24,-0.11,-0.03,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.95,-5.81,-5.59,-5.29,-4.92,-4.49,-4,-3.48,-2.91,-2.32,-1.68,-1.05,-0.4,0.25,0.88,1.51,2.14,2.72,3.28,3.8,4.28,4.7,5.08,5.4,5.66,5.84,5.96,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,0,0.01,0.05,0.11,0.2,0.31,0.42,0.54,0.65,0.76,0.86,0.93,0.98,1,1,1,1,1,1,1,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,0.99,0.99,0.98,0.95,0.91,0.86,0.8,0.73,0.65,0.57,0.49,0.41,0.33,0.26,0.19,0.13,0.08,0.04,0.02,0.01,0.02,0.04,0.08,0.14,0.2,0.27,0.34,0.42,0.5,0.58,0.66,0.73,0.8,0.86,0.91,0.95,0.98,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,0.97,0.91,0.8,0.67,0.53,0.36,0.19,0.02,-0.15,-0.32,-0.48,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.48,-0.38,-0.28,-0.17,-0.06,0.06,0.17,0.28,0.38,0.48,0.58,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.03,0.08,0.16,0.27,0.38,0.5,0.63,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.98,0.95,0.91,0.86,0.8,0.73,0.66,0.58,0.5,0.41,0.34,0.26,0.19,0.13,0.08,0.04,0.02,0.01,0.02,0.04,0.08,0.14,0.2,0.27,0.34,0.42,0.5,0.58,0.66,0.73,0.8,0.86,0.91,0.95,0.98,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,0.97,0.91,0.8,0.67,0.53,0.36,0.19,0.02,-0.15,-0.32,-0.48,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.48,-0.38,-0.28,-0.17,-0.06,0.06,0.17,0.28,0.38,0.48,0.58,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.21,-0.25,-0.29,-0.32,-0.36,-0.4,-0.45,-0.49,-0.52,-0.56,-0.6,-0.64,-0.67,-0.7,-0.73,-0.75,-0.77,-0.79,-0.8,-0.81,-0.81,-0.79,-0.73,-0.64,-0.55,-0.47,-0.42,-0.38,-0.35,-0.31,-0.28,-0.25,-0.22,-0.18,-0.15,-0.12,-0.1,-0.07,-0.04,-0.01,0.01,0.04,0.06,0.08,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.24,0.26,0.28,0.29,0.31,0.32,0.34,0.35,0.36,0.38,0.39,0.4,0.41,0.42,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.41,0.39,0.36,0.33,0.29,0.25,0.21,0.16,0.12,0.07,0.02,-0.03,-0.08,-0.13,-0.17,-0.22,-0.27,-0.31,-0.35,-0.39,-0.42,-0.45,-0.48,-0.51,-0.52,-0.54,-0.55,-0.55,-0.54,-0.52,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.15,-0.11,-0.09,-0.07,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.08,0.08,0.09,0.1,0.11,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.08,-0.13,-0.42,-0.7,-0.91,-1,-1,-0.99,-0.99,-0.97,-0.96,-0.94,-0.92,-0.9,-0.88,-0.85,-0.82,-0.79,-0.76,-0.73,-0.69,-0.66,-0.62,-0.58,-0.54,-0.5,-0.46,-0.41,-0.37,-0.33,-0.28,-0.24,-0.19,-0.15,-0.1,-0.06,-0.02,0.03,0.07,0.11,0.16,0.2,0.24,0.27,0.31,0.35,0.38,0.42,0.45,0.48,0.51,0.53,0.56,0.58,0.6,0.62,0.63,0.65,0.66,0.66,0.67,0.67,0.67,0.66,0.66,0.65,0.64,0.63,0.62,0.6,0.59,0.57,0.55,0.54,0.52,0.5,0.48,0.47,0.45,0.43,0.42,0.4,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.39,0.39,0.4,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.44,0.41,0.35,0.28,0.2,0.12,0.03,-0.05,-0.12,-0.19,-0.25,-0.29,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.23,-0.23,-0.22,-0.22,-0.21,-0.21,-0.21,-0.2,-0.2,-0.19,-0.19,-0.18,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.15,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.1,-0.1,-0.09,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0,0,0,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.1,-0.12,-0.14,-0.15,-0.17,-0.19,-0.2,-0.22,-0.24,-0.25,-0.27,-0.28,-0.29,-0.3,-0.31,-0.32,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.3,-0.3,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.25,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0,0,0,-0.01,-0.02,-0.02,-0.03,-0.05,-0.06,-0.07,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.21,-0.23,-0.24,-0.26,-0.27,-0.28,-0.3,-0.31,-0.31,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.29,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.25,-0.24,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.1,0.12,0.13,0.15,0.16,0.17,0.19,0.2,0.21,0.23,0.24,0.25,0.26,0.27,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.26,0.26,0.25,0.24,0.23,0.22,0.21,0.2,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.08,0.07,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.11,0.12,0.14,0.16,0.18,0.19,0.21,0.23,0.24,0.26,0.27,0.29,0.3,0.31,0.32,0.33,0.34,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.33,0.33,0.32,0.31,0.3,0.29,0.28,0.27,0.26,0.25,0.23,0.22,0.21,0.2,0.19,0.17,0.16,0.15,0.14,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.36,-0.38,-0.39,-0.4,-0.41,-0.41,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.38,-0.37,-0.35,-0.33,-0.31,-0.29,-0.27,-0.25,-0.22,-0.2,-0.18,-0.15,-0.13,-0.1,-0.08,-0.06,-0.04,-0.01,0,0.02,0.04,0.05,0.07,0.08,0.09,0.09,0.1,0.1,0.1,0.1,0.1,0.1,0.09,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,0,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.1,-0.12,-0.14,-0.16,-0.18,-0.2,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.32,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.02,0,0.02,0.03,0.05,0.06,0.07,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.97,0.96,0.93,0.9,0.87,0.84,0.8,0.75,0.71,0.66,0.61,0.55,0.5,0.44,0.39,0.33,0.27,0.21,0.15,0.09,0.03,-0.02,-0.08,-0.13,-0.19,-0.24,-0.28,-0.33,-0.38,-0.42,-0.46,-0.49,-0.52,-0.55,-0.58,-0.6,-0.62,-0.64,-0.66,-0.67,-0.69,-0.7,-0.71,-0.72,-0.72,-0.73,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.73,-0.73,-0.73,-0.73,-0.73,-0.72,-0.72,-0.72,-0.72,-0.71,-0.71,-0.7,-0.7,-0.7,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.66,-0.66,-0.65,-0.64,-0.64,-0.63,-0.62,-0.61,-0.61,-0.6,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.52,-0.51,-0.5,-0.48,-0.46,-0.43,-0.4,-0.36,-0.32,-0.27,-0.23,-0.17,-0.12,-0.06,-0.01,0.05,0.11,0.17,0.23,0.29,0.35,0.41,0.46,0.52,0.57,0.62,0.66,0.71,0.74,0.78,0.81,0.84,0.86,0.87,0.88,0.89,0.89,0.9,0.9,0.91,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.95,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.9,0.9,0.9,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.8,0.8,0.8,0.79,0.79,0.79,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.71,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\r\r\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.07,-0.27,-0.59,-1.02,-1.56,-2.19,-2.9,-3.68,-4.53,-5.44,-6.4,-7.39,-8.42,-9.46,-10.5,-11.54,-12.58,-13.61,-14.6,-15.56,-16.47,-17.32,-18.1,-18.81,-19.44,-19.98,-20.41,-20.73,-20.93,-21,-20.97,-20.89,-20.76,-20.57,-20.34,-20.06,-19.73,-19.37,-18.96,-18.51,-18.04,-17.52,-16.97,-16.4,-15.8,-15.16,-14.5,-13.83,-13.12,-12.4,-11.66,-10.91,-10.14,-9.36,-8.57,-7.77,-6.96,-6.15,-5.33,-4.51,-3.69,-2.88,-2.06,-1.25,-0.44,0.35,1.13,1.91,2.68,3.43,4.16,4.88,5.57,6.24,6.9,7.53,8.13,8.7,9.25,9.77,10.25,10.7,11.12,11.5,11.83,12.13,12.39,12.61,12.78,12.9,12.97,13,12.99,12.98,12.95,12.91,12.87,12.81,12.74,12.67,12.58,12.49,12.38,12.27,12.15,12.02,11.88,11.73,11.57,11.4,11.23,11.04,10.85,10.65,10.44,10.22,10,9.76,9.51,9.26,9,8.7,8.39,8.07,7.74,7.41,7.08,6.74,6.4,6.06,5.72,5.39,5.06,4.73,4.41,4.1,3.79,3.5,3.21,2.93,2.67,2.42,2.18,1.96,1.75,1.56,1.39,1.24,1.11,1,0.9,0.8,0.72,0.63,0.56,0.49,0.43,0.37,0.32,0.27,0.23,0.19,0.16,0.13,0.11,0.09,0.07,0.05,0.04,0.03,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.33,-0.57,-0.88,-1.24,-1.65,-2.1,-2.6,-3.14,-3.71,-4.31,-4.94,-5.58,-6.24,-6.91,-7.58,-8.27,-8.94,-9.62,-10.28,-10.92,-11.55,-12.15,-12.72,-13.26,-13.76,-14.23,-14.64,-15,-15.34,-15.67,-15.99,-16.31,-16.61,-16.91,-17.19,-17.46,-17.73,-17.99,-18.23,-18.47,-18.71,-18.93,-19.14,-19.35,-19.55,-19.74,-19.93,-20.11,-20.28,-20.45,-20.61,-20.76,-20.9,-21.04,-21.17,-21.3,-21.42,-21.54,-21.65,-21.75,-21.85,-21.94,-22.03,-22.12,-22.19,-22.27,-22.34,-22.41,-22.47,-22.53,-22.58,-22.63,-22.67,-22.72,-22.76,-22.79,-22.82,-22.85,-22.88,-22.9,-22.92,-22.94,-22.95,-22.97,-22.98,-22.99,-22.99,-23,-23,-23,-23,-22.98,-22.96,-22.92,-22.88,-22.81,-22.73,-22.63,-22.51,-22.37,-22.21,-22.03,-21.82,-21.58,-21.32,-21.02,-20.7,-20.35,-19.96,-19.54,-19.09,-18.59,-18.06,-17.5,-16.88,-16.23,-15.53,-14.79,-14,-13.08,-12.16,-11.21,-10.25,-9.29,-8.33,-7.37,-6.42,-5.47,-4.55,-3.64,-2.76,-1.89,-1.06,-0.25,0.52,1.25,1.95,2.6,3.2,3.75,4.25,4.7,5.08,5.4,5.66,5.85,5.96,6,6,6,6,6,6,5.99,5.97,5.95,5.92,5.88,5.83,5.77,5.69,5.6,5.49,5.37,5.24,5.08,4.9,4.71,4.49,4.25,3.99,3.7,3.39,3.06,2.7,2.32,1.91,1.46,1,0.42,-0.22,-0.92,-1.67,-2.46,-3.28,-4.15,-5.04,-5.93,-6.86,-7.78,-8.7,-9.63,-10.56,-11.48,-12.38,-13.26,-14.11,-14.93,-15.72,-16.48,-17.2,-17.85,-18.47,-19.03,-19.52,-19.96,-20.32,-20.61,-20.82,-20.96,-21,-20.98,-20.92,-20.81,-20.67,-20.49,-20.28,-20.03,-19.76,-19.45,-19.11,-18.74,-18.35,-17.94,-17.51,-17.05,-16.57,-16.08,-15.58,-15.05,-14.52,-13.98,-13.42,-12.86,-12.29,-11.72,-11.15,-10.58,-9.99,-9.43,-8.85,-8.28,-7.73,-7.18,-6.64,-6.12,-5.6,-5.1,-4.61,-4.14,-3.68,-3.25,-2.84,-2.45,-2.08,-1.74,-1.43,-1.14,-0.88,-0.66,-0.46,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.06,-0.1,-0.14,-0.2,-0.27,-0.34,-0.41,-0.49,-0.58,-0.67,-0.76,-0.85,-0.94,-1.04,-1.13,-1.22,-1.31,-1.39,-1.48,-1.56,-1.63,-1.7,-1.77,-1.83,-1.88,-1.92,-1.95,-1.98,-1.99,-2,-1.97,-1.87,-1.72,-1.53,-1.28,-0.99,-0.67,-0.32,0.06,0.45,0.88,1.3,1.73,2.16,2.59,3.01,3.42,3.81,4.18,4.53,4.85,5.14,5.39,5.6,5.77,5.9,5.97,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.81,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.38,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.04,1.03,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.92,0.79,0.61,0.43,0.27,0.13,0.04,0.01,0.04,0.12,0.24,0.39,0.56,0.73,0.91,1.07,1.21,1.33,1.42,1.48,1.5,1.5,1.5,1.5,1.5,1.5,1.49,1.49,1.49,1.49,1.48,1.48,1.47,1.47,1.46,1.46,1.45,1.44,1.43,1.43,1.42,1.41,1.4,1.38,1.37,1.36,1.34,1.33,1.31,1.3,1.28,1.26,1.24,1.22,1.2,1.18,1.16,1.14,1.11,1.08,1.06,1.03,1,0.95,0.88,0.79,0.69,0.58,0.47,0.36,0.26,0.18,0.11,0.05,0.02,0.01,0.03,0.08,0.15,0.24,0.34,0.44,0.54,0.65,0.74,0.83,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.99,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.79,0.61,0.43,0.27,0.13,0.04,0.01,0.04,0.12,0.24,0.39,0.56,0.73,0.91,1.07,1.21,1.33,1.42,1.48,1.5,1.5,1.5,1.5,1.5,1.5,1.49,1.49,1.49,1.49,1.48,1.48,1.47,1.47,1.46,1.46,1.45,1.44,1.43,1.43,1.42,1.41,1.4,1.38,1.37,1.36,1.34,1.33,1.31,1.3,1.28,1.26,1.24,1.22,1.2,1.18,1.16,1.14,1.11,1.08,1.06,1.03,1,0.95,0.88,0.79,0.69,0.58,0.47,0.36,0.26,0.18,0.11,0.05,0.02,0.01,0.03,0.08,0.15,0.24,0.34,0.44,0.54,0.65,0.74,0.83,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.22,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.18,-0.16,-0.14,-0.12,-0.09,-0.07,-0.05,-0.03,0,0.02,0.04,0.06,0.09,0.11,0.13,0.15,0.17,0.2,0.22,0.24,0.26,0.28,0.3,0.32,0.33,0.35,0.37,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.5,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.52,0.51,0.5,0.48,0.47,0.45,0.43,0.41,0.39,0.37,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.08,0.07,0.05,0.03,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.2,0.2,0.19,0.19,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.13,0.13,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.15,0.16,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.21,0.12,-0.1,-0.4,-0.69,-0.91,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.53,0.52,0.51,0.49,0.47,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.06,0.04,0.03,0.02,0.01,0,0,0,0.01,0.02,0.03,0.05,0.07,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.29,0.32,0.35,0.37,0.4,0.42,0.44,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.54,0.53,0.5,0.45,0.4,0.34,0.27,0.21,0.14,0.08,0.03,-0.01,-0.05,-0.07,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,0,0.01,0.02,0.04,0.05,0.07,0.09,0.1,0.12,0.14,0.15,0.17,0.19,0.21,0.23,0.24,0.26,0.28,0.3,0.31,0.33,0.34,0.36,0.38,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.48,0.48,0.47,0.46,0.45,0.45,0.44,0.43,0.42,0.41,0.39,0.38,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.27,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.05,-0.06,-0.08,-0.1,-0.12,-0.14,-0.16,-0.18,-0.2,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.4,-0.42,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.4,-0.4,-0.4,-0.4,-0.4,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.07,-0.08,-0.08,-0.09,-0.1,-0.1,-0.11,-0.11,-0.12,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.1,-0.1,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0,0,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.1,-0.12,-0.15,-0.17,-0.2,-0.23,-0.26,-0.29,-0.31,-0.34,-0.37,-0.4,-0.42,-0.45,-0.47,-0.49,-0.51,-0.53,-0.54,-0.55,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.46,-0.45,-0.45,-0.45,-0.45,-0.44,-0.44,-0.44,-0.44,-0.43,-0.43,-0.43,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.4,-0.4,-0.4,-0.4,-0.4,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.37,-0.37,-0.37,-0.37,-0.37,-0.38,-0.38,-0.38,-0.38,-0.39,-0.39,-0.39,-0.39,-0.4,-0.4,-0.4,-0.4,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.45,-0.44,-0.44,-0.43,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.29,-0.28,-0.27,-0.26,-0.24,-0.23,-0.22,-0.21,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.48,-0.5,-0.52,-0.54,-0.55,-0.56,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.45,-0.45,-0.44,-0.44,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.3,-0.29,-0.28,-0.26,-0.25,-0.24,-0.22,-0.21,-0.2,-0.19,-0.17,-0.16,-0.15,-0.14,-0.13,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\r\r\nPARAM_BODY_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.2,-0.24,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.72,-0.74,-0.76,-0.77,-0.78,-0.78,-0.78,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.7,-0.68,-0.66,-0.64,-0.62,-0.6,-0.57,-0.55,-0.52,-0.49,-0.46,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.23,-0.19,-0.16,-0.12,-0.08,-0.04,0,0.04,0.08,0.12,0.15,0.18,0.22,0.25,0.27,0.3,0.32,0.35,0.37,0.39,0.41,0.43,0.44,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.5,0.5,0.49,0.48,0.47,0.46,0.45,0.44,0.42,0.41,0.4,0.39,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idl_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.07,-0.27,-0.59,-1.02,-1.56,-2.19,-2.9,-3.68,-4.53,-5.44,-6.4,-7.39,-8.42,-9.46,-10.5,-11.54,-12.58,-13.61,-14.6,-15.56,-16.47,-17.32,-18.1,-18.81,-19.44,-19.98,-20.41,-20.73,-20.93,-21,-20.97,-20.89,-20.76,-20.57,-20.34,-20.06,-19.73,-19.37,-18.96,-18.51,-18.04,-17.52,-16.97,-16.4,-15.8,-15.16,-14.5,-13.83,-13.12,-12.4,-11.66,-10.91,-10.14,-9.36,-8.57,-7.77,-6.96,-6.15,-5.33,-4.51,-3.69,-2.88,-2.06,-1.25,-0.44,0.35,1.13,1.91,2.68,3.43,4.16,4.88,5.57,6.24,6.9,7.53,8.13,8.7,9.25,9.77,10.25,10.7,11.12,11.5,11.83,12.13,12.39,12.61,12.78,12.9,12.97,13,13,13,12.99,12.98,12.96,12.93,12.9,12.86,12.82,12.76,12.69,12.62,12.53,12.43,12.32,12.19,12.05,11.89,11.72,11.53,11.33,11.11,10.87,10.61,10.33,10.03,9.71,9.36,9,8.57,8.13,7.68,7.22,6.75,6.28,5.81,5.33,4.86,4.4,3.95,3.5,3.06,2.64,2.23,1.83,1.46,1.1,0.76,0.45,0.17,-0.09,-0.32,-0.52,-0.69,-0.82,-0.92,-0.98,-1,-1,-0.99,-0.99,-0.97,-0.96,-0.94,-0.93,-0.91,-0.88,-0.86,-0.83,-0.8,-0.77,-0.74,-0.71,-0.68,-0.64,-0.61,-0.57,-0.54,-0.5,-0.46,-0.43,-0.39,-0.36,-0.32,-0.29,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.07,-0.06,-0.04,-0.03,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.33,-0.57,-0.88,-1.24,-1.65,-2.1,-2.6,-3.14,-3.71,-4.31,-4.94,-5.58,-6.24,-6.91,-7.58,-8.27,-8.94,-9.62,-10.28,-10.92,-11.55,-12.15,-12.72,-13.26,-13.76,-14.23,-14.64,-15,-15.34,-15.67,-15.99,-16.31,-16.61,-16.91,-17.19,-17.46,-17.73,-17.99,-18.23,-18.47,-18.71,-18.93,-19.14,-19.35,-19.55,-19.74,-19.93,-20.11,-20.28,-20.45,-20.61,-20.76,-20.9,-21.04,-21.17,-21.3,-21.42,-21.54,-21.65,-21.75,-21.85,-21.94,-22.03,-22.12,-22.19,-22.27,-22.34,-22.41,-22.47,-22.53,-22.58,-22.63,-22.67,-22.72,-22.76,-22.79,-22.82,-22.85,-22.88,-22.9,-22.92,-22.94,-22.95,-22.97,-22.98,-22.99,-22.99,-23,-23,-23,-22.96,-22.86,-22.7,-22.48,-22.22,-21.91,-21.56,-21.19,-20.79,-20.37,-19.93,-19.48,-19.02,-18.56,-18.1,-17.64,-17.2,-16.76,-16.35,-15.95,-15.59,-15.25,-14.94,-14.67,-14.44,-14.25,-14.11,-14.03,-14,-14.06,-14.24,-14.54,-14.92,-15.39,-15.94,-16.55,-17.22,-17.93,-18.68,-19.46,-20.25,-21.08,-21.89,-22.71,-23.53,-24.31,-25.09,-25.83,-26.53,-27.18,-27.78,-28.33,-28.81,-29.22,-29.55,-29.8,-29.95,-30,-30,-29.99,-29.97,-29.94,-29.91,-29.87,-29.82,-29.76,-29.7,-29.62,-29.54,-29.44,-29.34,-29.22,-29.1,-28.97,-28.82,-28.66,-28.5,-28.32,-28.13,-27.92,-27.71,-27.49,-27.24,-26.99,-26.72,-26.45,-26.16,-25.85,-25.53,-25.2,-24.84,-24.48,-24.1,-23.71,-23.3,-22.87,-22.42,-21.97,-21.49,-21,-20.49,-20,-19.5,-19.01,-18.52,-18.04,-17.57,-17.1,-16.63,-16.17,-15.71,-15.27,-14.82,-14.39,-13.95,-13.52,-13.1,-12.69,-12.27,-11.87,-11.47,-11.08,-10.69,-10.31,-9.94,-9.56,-9.2,-8.85,-8.49,-8.15,-7.82,-7.49,-7.16,-6.84,-6.53,-6.23,-5.93,-5.64,-5.35,-5.08,-4.81,-4.54,-4.28,-4.03,-3.79,-3.56,-3.33,-3.11,-2.89,-2.69,-2.49,-2.3,-2.11,-1.93,-1.76,-1.6,-1.45,-1.3,-1.16,-1.03,-0.91,-0.79,-0.68,-0.58,-0.49,-0.41,-0.33,-0.26,-0.2,-0.15,-0.1,-0.07,-0.04,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.97,8.9,8.78,8.62,8.42,8.19,7.93,7.64,7.32,6.99,6.63,6.26,5.87,5.49,5.1,4.7,4.32,3.93,3.55,3.18,2.84,2.51,2.21,1.93,1.68,1.47,1.29,1.15,1.05,1,0.97,0.95,0.93,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.73,0.71,0.69,0.68,0.66,0.65,0.63,0.62,0.61,0.59,0.58,0.56,0.55,0.54,0.53,0.51,0.5,0.49,0.47,0.46,0.45,0.43,0.42,0.41,0.39,0.38,0.36,0.35,0.33,0.32,0.3,0.29,0.27,0.25,0.24,0.22,0.2,0.18,0.16,0.14,0.12,0.1,0.07,0.05,0.02,0,-0.03,-0.06,-0.1,-0.14,-0.18,-0.23,-0.28,-0.33,-0.38,-0.44,-0.5,-0.56,-0.62,-0.68,-0.75,-0.81,-0.88,-0.94,-1.01,-1.07,-1.14,-1.2,-1.27,-1.33,-1.39,-1.45,-1.51,-1.56,-1.62,-1.67,-1.72,-1.76,-1.8,-1.84,-1.88,-1.91,-1.94,-1.96,-1.98,-1.99,-2,-2,-1.98,-1.92,-1.82,-1.68,-1.52,-1.32,-1.1,-0.86,-0.6,-0.31,-0.02,0.29,0.61,0.94,1.28,1.61,1.96,2.3,2.64,2.96,3.29,3.61,3.91,4.21,4.49,4.75,4.99,5.21,5.41,5.58,5.72,5.84,5.93,5.98,6,5.99,5.95,5.9,5.83,5.73,5.62,5.5,5.36,5.21,5.05,4.87,4.69,4.5,4.3,4.1,3.89,3.68,3.46,3.25,3.03,2.81,2.59,2.38,2.17,1.96,1.76,1.56,1.37,1.19,1.02,0.86,0.71,0.57,0.45,0.33,0.24,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.95,1.92,1.89,1.85,1.81,1.77,1.72,1.68,1.63,1.58,1.53,1.48,1.43,1.39,1.34,1.29,1.25,1.21,1.17,1.14,1.11,1.08,1.06,1.04,1.03,1.02,1.02,1.01,1.01,1.01,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1.01,1.02,1.03,1.04,1.05,1.06,1.08,1.09,1.11,1.12,1.14,1.16,1.17,1.19,1.21,1.23,1.25,1.26,1.28,1.3,1.32,1.33,1.35,1.37,1.38,1.4,1.41,1.43,1.44,1.45,1.46,1.47,1.48,1.49,1.49,1.5,1.5,1.5,1.5,1.48,1.47,1.44,1.41,1.37,1.33,1.29,1.24,1.19,1.13,1.07,1.01,0.95,0.89,0.83,0.76,0.7,0.64,0.58,0.51,0.46,0.4,0.34,0.29,0.24,0.2,0.16,0.12,0.09,0.06,0.04,0.02,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.8,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.81,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.12,1.09,1.07,1.04,1.03,1.02,1.01,1.01,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1.01,1.02,1.03,1.04,1.05,1.06,1.08,1.09,1.11,1.12,1.14,1.16,1.17,1.19,1.21,1.23,1.25,1.26,1.28,1.3,1.32,1.33,1.35,1.37,1.38,1.4,1.41,1.43,1.44,1.45,1.46,1.47,1.48,1.49,1.49,1.5,1.5,1.5,1.5,1.48,1.47,1.44,1.41,1.37,1.33,1.29,1.24,1.19,1.13,1.07,1.01,0.95,0.89,0.83,0.76,0.7,0.64,0.58,0.51,0.46,0.4,0.34,0.29,0.24,0.2,0.16,0.12,0.09,0.06,0.04,0.02,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.8,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.22,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.18,-0.16,-0.14,-0.12,-0.09,-0.07,-0.05,-0.03,0,0.02,0.04,0.06,0.09,0.11,0.13,0.15,0.17,0.2,0.22,0.24,0.26,0.28,0.3,0.32,0.33,0.35,0.37,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.5,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.52,0.51,0.5,0.48,0.47,0.45,0.43,0.41,0.39,0.37,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.08,0.07,0.05,0.03,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,0,0,0.01,0.02,0.04,0.05,0.06,0.08,0.09,0.11,0.12,0.13,0.15,0.16,0.18,0.19,0.2,0.21,0.22,0.23,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.19,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.15,0.16,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.21,0.12,-0.1,-0.4,-0.69,-0.91,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.53,0.52,0.51,0.49,0.47,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.06,0.04,0.03,0.02,0.01,0,0,0,0.01,0.02,0.03,0.05,0.07,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.29,0.32,0.35,0.37,0.4,0.42,0.44,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.54,0.53,0.5,0.45,0.4,0.34,0.27,0.21,0.14,0.08,0.03,-0.01,-0.05,-0.07,-0.08,-0.08,-0.07,-0.06,-0.05,-0.03,-0.01,0.02,0.04,0.07,0.1,0.13,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.37,0.39,0.42,0.44,0.46,0.47,0.48,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.49,0.48,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.43,0.42,0.41,0.4,0.4,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.32,0.31,0.3,0.29,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.21,0.2,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.1,0.09,0.08,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.02,0.03,0.03,0.04,0.05,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.23,0.25,0.26,0.27,0.28,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.38,0.39,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.52,0.53,0.54,0.55,0.56,0.57,0.57,0.58,0.59,0.6,0.61,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.67,0.68,0.68,0.69,0.69,0.7,0.7,0.7,0.7,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.6,0.6,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.41,0.4,0.39,0.39,0.38,0.38,0.37,0.36,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.32,0.31,0.3,0.3,0.29,0.29,0.28,0.27,0.27,0.26,0.26,0.25,0.25,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.2,0.2,0.19,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.24,0.25,0.26,0.27,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.39,0.4,0.41,0.43,0.44,0.45,0.46,0.48,0.49,0.5,0.51,0.53,0.54,0.55,0.56,0.57,0.58,0.6,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.7,0.7,0.71,0.72,0.73,0.73,0.74,0.75,0.75,0.76,0.76,0.77,0.77,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.7,0.7,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.6,0.6,0.59,0.59,0.58,0.57,0.57,0.56,0.56,0.55,0.54,0.54,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.43,0.42,0.41,0.41,0.4,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.31,0.3,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.22,0.21,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_BROW_R_X=-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35\r\r\nPARAM_BROW_L_ANGLE=0.3,0.3,0.3,0.3,0.3,0.31,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.35,0.35,0.36,0.36,0.37,0.38,0.39,0.4,0.4,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.58,0.59,0.6,0.61,0.62,0.63,0.64,0.65,0.67,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.88,0.89,0.9,0.91,0.92,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.91,0.91,0.91,0.9,0.9,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.81,0.81,0.8,0.8,0.79,0.79,0.78,0.78,0.77,0.77,0.76,0.75,0.75,0.74,0.74,0.73,0.72,0.72,0.71,0.71,0.7,0.7,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.61,0.6,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.53,0.52,0.51,0.51,0.5,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.41,0.4,0.4,0.4,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.3,0.3,0.3,0.31,0.31,0.32,0.33,0.33,0.34,0.35,0.35,0.36,0.37,0.38,0.39,0.4,0.4,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.6,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.7,0.71,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.91,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.9,0.9,0.9,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.81,0.81,0.8,0.8,0.79,0.79,0.78,0.78,0.77,0.76,0.76,0.75,0.75,0.74,0.73,0.73,0.72,0.72,0.71,0.7,0.7,0.69,0.69,0.68,0.67,0.67,0.66,0.66,0.65,0.64,0.64,0.63,0.63,0.62,0.61,0.61,0.6,0.59,0.59,0.58,0.58,0.57,0.56,0.56,0.55,0.55,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.42,0.41,0.41,0.4,0.4,0.39,0.39,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28\r\r\nPARAM_BROW_L_FORM=0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.6,0.59,0.58,0.58,0.56,0.55,0.54,0.52,0.51,0.49,0.47,0.45,0.42,0.4,0.37,0.34,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.05,0.02,-0.01,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.25,-0.28,-0.31,-0.34,-0.37,-0.4,-0.42,-0.45,-0.48,-0.5,-0.53,-0.55,-0.58,-0.6,-0.63,-0.65,-0.67,-0.69,-0.71,-0.74,-0.76,-0.77,-0.79,-0.81,-0.83,-0.85,-0.86,-0.88,-0.89,-0.9,-0.92,-0.93,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.93,-0.93,-0.92,-0.92,-0.91,-0.9,-0.89,-0.89,-0.88,-0.87,-0.86,-0.86,-0.85,-0.84,-0.83,-0.82,-0.81,-0.8,-0.79,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.7,-0.69,-0.68,-0.66,-0.65,-0.64,-0.63,-0.62,-0.61,-0.59,-0.58,-0.57,-0.56,-0.54,-0.53,-0.52,-0.51,-0.49,-0.48,-0.47,-0.45,-0.44,-0.43,-0.41,-0.4,-0.39,-0.37,-0.36,-0.35,-0.33,-0.32,-0.3,-0.29,-0.28,-0.26,-0.25,-0.24,-0.22,-0.21,-0.19,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.1,-0.08,-0.07,-0.06,-0.04,-0.03,-0.01,0,0.01,0.03,0.04,0.05,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.16,0.17,0.18,0.19,0.21,0.22,0.23,0.24,0.26,0.27,0.28,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.38,0.39,0.4,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.49,0.5,0.51,0.51,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.6,0.6,0.6,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_BROW_R_FORM=0.77,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.74,0.73,0.73,0.71,0.7,0.69,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.55,0.52,0.5,0.47,0.44,0.41,0.38,0.34,0.31,0.27,0.23,0.19,0.15,0.12,0.08,0.04,0.01,-0.03,-0.06,-0.1,-0.13,-0.16,-0.19,-0.22,-0.26,-0.29,-0.32,-0.34,-0.37,-0.4,-0.43,-0.46,-0.48,-0.51,-0.53,-0.56,-0.58,-0.6,-0.63,-0.65,-0.67,-0.69,-0.71,-0.73,-0.75,-0.76,-0.78,-0.8,-0.82,-0.83,-0.85,-0.86,-0.87,-0.89,-0.9,-0.91,-0.92,-0.93,-0.94,-0.95,-0.96,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.92,-0.92,-0.91,-0.9,-0.89,-0.89,-0.88,-0.87,-0.86,-0.85,-0.84,-0.83,-0.82,-0.82,-0.81,-0.8,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.7,-0.68,-0.67,-0.66,-0.65,-0.64,-0.62,-0.61,-0.6,-0.58,-0.57,-0.56,-0.55,-0.53,-0.52,-0.5,-0.49,-0.48,-0.46,-0.45,-0.43,-0.42,-0.41,-0.39,-0.38,-0.36,-0.35,-0.33,-0.32,-0.3,-0.29,-0.27,-0.26,-0.24,-0.23,-0.21,-0.2,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.01,0.03,0.04,0.06,0.07,0.08,0.1,0.11,0.13,0.14,0.16,0.17,0.19,0.2,0.21,0.23,0.24,0.26,0.27,0.28,0.3,0.31,0.32,0.34,0.35,0.36,0.38,0.39,0.4,0.41,0.43,0.44,0.45,0.46,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.58,0.59,0.6,0.61,0.62,0.63,0.63,0.64,0.65,0.66,0.67,0.67,0.68,0.69,0.69,0.7,0.71,0.71,0.72,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=1\r\r\nPARAM_BODY_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.2,-0.24,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.72,-0.74,-0.76,-0.77,-0.78,-0.78,-0.78,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.7,-0.68,-0.66,-0.64,-0.62,-0.6,-0.57,-0.55,-0.52,-0.49,-0.46,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.23,-0.19,-0.16,-0.12,-0.08,-0.04,0,0.04,0.08,0.12,0.15,0.18,0.22,0.25,0.27,0.3,0.32,0.35,0.37,0.39,0.41,0.43,0.44,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.5,0.5,0.49,0.48,0.47,0.46,0.45,0.44,0.42,0.41,0.4,0.39,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.09,-0.11,-0.12,-0.14,-0.16,-0.17,-0.19,-0.2,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.29,-0.28,-0.27,-0.26,-0.25,-0.23,-0.22,-0.21,-0.19,-0.18,-0.16,-0.15,-0.14,-0.12,-0.11,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.05,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.12,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.21,0.22,0.23,0.24,0.25,0.26,0.26,0.27,0.28,0.29,0.29,0.3,0.31,0.31,0.32,0.32,0.33,0.33,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.33,0.32,0.31,0.3,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.1,0.09,0.08,0.07,0.05,0.04,0.03,0.03,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0,0,-0.01,-0.03,-0.05,-0.07,-0.1,-0.14,-0.18,-0.22,-0.26,-0.3,-0.35,-0.4,-0.45,-0.5,-0.55,-0.6,-0.65,-0.7,-0.74,-0.78,-0.82,-0.86,-0.9,-0.93,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L=0,0,0.01,0.03,0.05,0.07,0.1,0.14,0.18,0.22,0.26,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.74,0.78,0.82,0.86,0.9,0.93,0.95,0.97,0.99,1,1,1,0.99,0.97,0.95,0.93,0.9,0.87,0.83,0.79,0.75,0.71,0.67,0.62,0.58,0.53,0.48,0.44,0.39,0.35,0.3,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.1,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.41,-0.43,-0.46,-0.48,-0.51,-0.54,-0.56,-0.59,-0.61,-0.64,-0.66,-0.69,-0.71,-0.73,-0.76,-0.78,-0.8,-0.82,-0.84,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.96,-0.94,-0.92,-0.89,-0.86,-0.82,-0.79,-0.75,-0.71,-0.67,-0.63,-0.59,-0.55,-0.51,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.07,-0.05,-0.03,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.22,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.89,1.32,1.81,2.35,2.92,3.50,4.08,4.65,5.19,5.68,6.11,6.48,6.76,6.94,7,6.85,6.40,5.69,4.75,3.59,2.27,0.80,-0.79,-2.48,-4.22,-6.03,-7.83,-9.63,-11.35,-13,-14.54,-15.93,-17.19,-18.31,-19.30,-20.19,-20.96,-21.64,-22.21,-22.70,-23.10,-23.43,-23.69,-23.89,-24.03,-24.12,-24.17,-24.19,-24.19,-24.19,-24.18,-24.18,-24.18,-24.17,-24.17,-24.16,-24.16,-24.15,-24.14,-24.14,-24.13,-24.12,-24.11,-24.10,-24.09,-24.08,-24.06,-24.05,-24.04,-24.03,-24.01,-24.00,-23.98,-23.97,-23.95,-23.93,-23.92,-23.91,-23.91,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.89,-23.88,-23.87,-23.85,-23.84,-23.81,-23.79,-23.76,-23.73,-23.70,-23.66,-23.62,-23.57,-23.52,-23.47,-23.41,-23.35,-23.28,-23.21,-23.13,-23.05,-22.97,-22.88,-22.78,-22.68,-22.58,-22.47,-22.35,-22.23,-22.10,-21.97,-21.83,-21.69,-21.54,-21.38,-21.22,-21.05,-20.88,-20.70,-20.51,-20.31,-20.11,-19.91,-19.69,-19.47,-19.24,-19.00,-18.76,-18.51,-18.25,-17.98,-17.71,-17.43,-17.14,-16.84,-16.53,-16.22,-15.90,-15.57,-15.22,-14.88,-14.52,-14.15,-13.78,-13.39,-13,-12.54,-12.00,-11.39,-10.72,-9.99,-9.22,-8.40,-7.56,-6.69,-5.81,-4.90,-4.02,-3.13,-2.26,-1.41,-0.59,0.21,0.96,1.66,2.31,2.91,3.43,3.89,4.29,4.59,4.81,4.95,5,5.00,4.97,4.91,4.83,4.52,4.09,3.70,3.40,2.87,2.39,2.01,1.70,1.30,0.91,0.52,0.14,-0.22,-0.58,-0.93,-1.27,-1.60,-1.93,-2.24,-2.55,-2.85,-3.14,-3.43,-3.70,-3.96,-4.22,-4.47,-4.71,-4.94,-5.16,-5.38,-5.58,-5.78,-5.97,-6.15,-6.32,-6.49,-6.64,-6.79,-6.93,-7.06,-7.18,-7.29,-7.40,-7.49,-7.58,-7.66,-7.73,-7.79,-7.85,-7.90,-7.93,-7.96,-7.98,-8.00,-8,-8,-8,-7.97,-7.87,-7.72,-7.53,-7.28,-6.99,-6.67,-6.32,-5.94,-5.55,-5.12,-4.70,-4.27,-3.84,-3.41,-2.99,-2.58,-2.19,-1.82,-1.47,-1.15,-0.86,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.23,-0.40,-0.62,-0.87,-1.16,-1.48,-1.82,-2.19,-2.59,-3.01,-3.43,-3.87,-4.32,-4.77,-5.23,-5.68,-6.13,-6.57,-6.99,-7.41,-7.81,-8.18,-8.52,-8.84,-9.13,-9.38,-9.60,-9.77,-9.89,-9.97,-10,-9.94,-9.76,-9.49,-9.13,-8.70,-8.20,-7.68,-7.13,-6.56,-5.97,-5.41,-4.85,-4.33,-3.84,-3.39,-3,-2.54,-2.16,-1.84,-1.56,-1.32,-1.11,-0.93,-0.76,-0.61,-0.46,-0.32,-0.17,-0.09,-0.05,-0.03,-0.01,-0.00,0.00,0,-0.03,-0.10,-0.22,-0.38,-0.58,-0.80,-1.06,-1.35,-1.65,-1.98,-2.31,-2.66,-3.02,-3.39,-3.77,-4.14,-4.51,-4.87,-5.23,-5.58,-5.91,-6.23,-6.53,-6.82,-7.07,-7.30,-7.51,-7.68,-7.81,-7.92,-7.98,-8,-7.99,-7.96,-7.92,-7.85,-7.78,-7.68,-7.58,-7.47,-7.34,-7.20,-7.06,-6.91,-6.75,-6.59,-6.43,-6.26,-6.10,-5.93,-5.76,-5.60,-5.44,-5.29,-5.14,-5,-4.87,-4.74,-4.61,-4.50,-4.38,-4.27,-4.16,-4.06,-3.96,-3.86,-3.77,-3.67,-3.58,-3.49,-3.40,-3.32,-3.23,-3.14,-3.05,-2.97,-2.88,-2.79,-2.70,-2.61,-2.51,-2.41,-2.32,-2.21,-2.11,-2,-1.86,-1.72,-1.57,-1.41,-1.24,-1.08,-0.93,-0.77,-0.62,-0.48,-0.34,-0.22,-0.10,0,0.11,0.22,0.32,0.42,0.53,0.63,0.73,0.83,0.92,1.02,1.11,1.21,1.30,1.39,1.48,1.57,1.66,1.75,1.84,1.92,2.01,2.10,2.18,2.26,2.35,2.43,2.51,2.59,2.68,2.76,2.84,2.92,2.99,3.01,3.01,3.01,3.01,3.01,3.01,3,2.95,2.86,2.75,2.62,2.49,2.37,2.25,2.15,2.07,2.02,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.99,1.97,1.93,1.88,1.82,1.75,1.67,1.58,1.48,1.39,1.28,1.17,1.07,0.96,0.85,0.75,0.64,0.55,0.45,0.37,0.29,0.22,0.15,0.10,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.47,0.48,0.49,0.49,0.50,0.50,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.60,0.60,0.60,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.43,0.44,0.45,0.45,0.46,0.47,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,-0.01,-0.04,-0.10,-0.17,-0.27,-0.39,-0.54,-0.71,-0.90,-1.11,-1.35,-1.61,-1.90,-2.21,-2.54,-2.90,-3.28,-3.69,-4.13,-4.59,-5.07,-5.58,-6.13,-6.69,-7.29,-7.90,-8.55,-9.22,-9.92,-10.65,-11.40,-12.19,-13,-13.88,-14.85,-15.89,-16.98,-18.10,-19.26,-20.44,-21.60,-22.74,-23.85,-24.90,-25.88,-26.78,-27.56,-28.24,-28.78,-29.18,-29.41,-29.55,-29.66,-29.76,-29.84,-29.90,-29.94,-29.97,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.99,-29.95,-29.90,-29.84,-29.78,-29.70,-29.62,-29.53,-29.43,-29.32,-29.19,-29.02,-28.82,-28.59,-28.33,-28.05,-27.74,-27.40,-27.04,-26.67,-26.26,-25.84,-25.39,-24.93,-24.45,-23.96,-23.45,-22.92,-22.38,-21.84,-21.28,-20.70,-20.13,-19.54,-18.94,-18.35,-17.73,-17.13,-16.51,-15.90,-15.28,-14.67,-14.05,-13.44,-12.82,-12.21,-11.61,-11.01,-10.41,-9.82,-9.24,-8.68,-8.12,-7.56,-7.03,-6.51,-5.99,-5.50,-5.02,-4.55,-4.10,-3.67,-3.26,-2.88,-2.50,-2.16,-1.83,-1.53,-1.25,-1.00,-0.77,-0.57,-0.40,-0.26,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,-0.01,-0.02,-0.05,-0.09,-0.15,-0.21,-0.29,-0.38,-0.49,-0.61,-0.75,-0.90,-1.06,-1.24,-1.44,-1.65,-1.88,-2.12,-2.38,-2.66,-2.96,-3.27,-3.61,-3.96,-4.33,-4.72,-5.13,-5.55,-6.00,-6.47,-6.96,-7.47,-8,-8.59,-9.27,-10.03,-10.84,-11.68,-12.57,-13.48,-14.39,-15.29,-16.16,-17.00,-17.78,-18.50,-19.12,-19.67,-20.10,-20.41,-20.59,-20.68,-20.77,-20.83,-20.89,-20.93,-20.96,-20.98,-21.00,-21.01,-21.01,-21.01,-21.01,-21.01,-21.00,-21.00,-21,-20.91,-20.66,-20.29,-19.81,-19.25,-18.61,-17.89,-17.13,-16.30,-15.43,-14.51,-13.36,-12.58,-12.00,-11.59,-11.31,-11.13,-11.03,-11,-11.03,-11.12,-11.26,-11.45,-11.69,-11.96,-12.27,-12.61,-12.96,-13.35,-13.76,-14.17,-14.60,-15.04,-15.48,-15.93,-16.37,-16.80,-17.23,-17.64,-18.04,-18.42,-18.78,-19.12,-19.42,-19.69,-19.94,-20.14,-20.31,-20.43,-20.50,-20.53,-20.51,-20.47,-20.40,-20.31,-20.19,-20.05,-19.89,-19.70,-19.50,-19.27,-19.03,-18.76,-18.48,-18.19,-17.87,-17.55,-17.21,-16.85,-16.48,-16.11,-15.72,-15.32,-14.92,-14.51,-14.08,-13.66,-13.22,-12.78,-12.34,-11.90,-11.45,-11.00,-10.55,-10.10,-9.65,-9.20,-8.75,-8.30,-7.86,-7.43,-6.99,-6.57,-6.15,-5.74,-5.34,-4.94,-4.56,-4.18,-3.82,-3.47,-3.13,-2.80,-2.49,-2.20,-1.91,-1.65,-1.40,-1.17,-0.96,-0.76,-0.59,-0.44,-0.31,-0.20,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.50,0.62,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.96,0.90,0.83,0.74,0.64,0.54,0.44,0.34,0.25,0.17,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.75,0.76,0.76,0.77,0.78,0.79,0.80,0.82,0.83,0.84,0.85,0.85,0.86,0.87,0.87,0.87,0.87,0.87,0.86,0.85,0.84,0.83,0.82,0.81,0.79,0.78,0.76,0.74,0.72,0.70,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.55,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.58,0.59,0.60,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.68,0.69,0.70,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.91,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.97,0.95,0.91,0.88,0.83,0.79,0.74,0.68,0.63,0.58,0.52,0.47,0.42,0.37,0.33,0.29,0.26,0.24,0.23,0.22,0.22,0.22,0.22,0.23,0.24,0.26,0.28,0.31,0.36,0.42,0.50,0.59,0.69,0.78,0.86,0.93,0.97,0.99,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.83,0.82,0.81,0.80,0.79,0.78,0.77,0.76,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.83,0.83,0.84,0.85,0.87,0.88,0.90,0.91,0.92,0.93,0.94,0.94,0.71,0.34,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.90,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1.00,1.00,1.00,0.76,0.36,0.09,0,0.24,0.62,0.89,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.57,0.56,0.55,0.54,0.52,0.51,0.50,0.48,0.47,0.45,0.44,0.42,0.40,0.39,0.37,0.35,0.33,0.31,0.30,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.11,0.10,0.09,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.02,0.03,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.99,1.00,1,1.00,0.99,0.98,0.97,0.93,0.88,0.84,0.80,0.74,0.69,0.65,0.62,0.58,0.53,0.49,0.45,0.42,0.38,0.35,0.31,0.28,0.26,0.23,0.20,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.05,0.08,0.10,0.13,0.16,0.19,0.22,0.25,0.28,0.32,0.35,0.38,0.41,0.44,0.47,0.50,0.52,0.54,0.56,0.58,0.59,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.40,0.40,0.39,0.38,0.37,0.36,0.36,0.35,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.35,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.51,0.51,0.52,0.52,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.60,0.60,0.60,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.44,0.44,0.45,0.46,0.47,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.22,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.58,0.57,0.56,0.55,0.53,0.52,0.51,0.49,0.48,0.46,0.44,0.43,0.41,0.39,0.37,0.36,0.34,0.32,0.30,0.28,0.26,0.25,0.23,0.21,0.19,0.18,0.16,0.14,0.13,0.11,0.10,0.09,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.02,0.03,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.99,1.00,1,1.00,0.99,0.98,0.97,0.93,0.88,0.84,0.80,0.74,0.69,0.65,0.62,0.58,0.53,0.49,0.45,0.42,0.38,0.35,0.31,0.28,0.26,0.23,0.20,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.06,0.08,0.10,0.13,0.16,0.19,0.22,0.26,0.29,0.32,0.36,0.39,0.42,0.45,0.48,0.51,0.53,0.55,0.57,0.59,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.83,0.83,0.84,0.85,0.87,0.88,0.90,0.91,0.92,0.93,0.94,0.94,0.71,0.34,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.90,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1.00,1.00,1.00,0.76,0.36,0.09,0,0.24,0.62,0.89,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.16,0.25,0.34,0.43,0.50,0.56,0.60,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.51,0.49,0.48,0.47,0.45,0.44,0.42,0.41,0.39,0.38,0.36,0.35,0.33,0.31,0.30,0.28,0.27,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.14,0.12,0.11,0.10,0.09,0.07,0.06,0.05,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.10,0.11,0.13,0.16,0.18,0.20,0.23,0.25,0.28,0.31,0.33,0.36,0.39,0.42,0.45,0.48,0.51,0.54,0.57,0.61,0.64,0.67,0.70,0.73,0.76,0.79,0.81,0.83,0.84,0.85,0.86,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.86,0.83,0.80,0.76,0.72,0.68,0.63,0.57,0.52,0.46,0.39,0.34,0.30,0.28,0.25,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.26,0.26,0.27,0.27,0.28,0.28,0.29,0.29,0.30,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.28,0.27,0.26,0.26,0.25,0.25,0.24,0.23,0.23,0.22,0.21,0.21,0.20,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.18,-0.18,-0.19,-0.19,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.19,-0.18,-0.18,-0.17,-0.16,-0.15,-0.14,-0.12,-0.11,-0.11,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.10,-0.11,-0.12,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.36,-0.37,-0.38,-0.39,-0.40,-0.41,-0.42,-0.43,-0.44,-0.45,-0.46,-0.47,-0.47,-0.48,-0.49,-0.50,-0.50,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.52,-0.51,-0.49,-0.47,-0.45,-0.43,-0.40,-0.37,-0.35,-0.32,-0.29,-0.26,-0.23,-0.20,-0.17,-0.15,-0.12,-0.10,-0.08,-0.06,-0.04,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Z=0,-0.06,-0.22,-0.48,-0.83,-1.26,-1.76,-2.33,-2.94,-3.61,-4.30,-5.03,-5.78,-6.53,-7.29,-8.03,-8.77,-9.49,-10.17,-10.82,-11.43,-11.99,-12.49,-12.93,-13.31,-13.60,-13.82,-13.95,-14,-13.99,-13.96,-13.90,-13.82,-13.73,-13.61,-13.48,-13.32,-13.15,-12.96,-12.76,-12.54,-12.29,-12.04,-11.77,-11.49,-11.20,-10.89,-10.57,-10.24,-9.89,-9.54,-9.18,-8.81,-8.43,-8.04,-7.64,-7.24,-6.83,-6.41,-5.99,-5.57,-5.13,-4.70,-4.26,-3.83,-3.38,-2.94,-2.50,-2.06,-1.62,-1.17,-0.74,-0.30,0.13,0.57,0.99,1.41,1.83,2.24,2.64,3.04,3.43,3.81,4.18,4.54,4.89,5.24,5.57,5.89,6.20,6.49,6.77,7.04,7.29,7.54,7.76,7.96,8.15,8.32,8.48,8.61,8.73,8.82,8.90,8.96,8.99,9,8.99,8.95,8.89,8.80,8.70,8.57,8.43,8.26,8.08,7.89,7.69,7.47,7.23,6.99,6.74,6.48,6.22,5.95,5.67,5.39,5.10,4.82,4.53,4.25,3.97,3.69,3.41,3.13,2.86,2.60,2.34,2.09,1.85,1.63,1.41,1.20,1.01,0.83,0.67,0.52,0.39,0.27,0.18,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.33,-0.59,-0.90,-1.27,-1.70,-2.18,-2.72,-3.30,-3.91,-4.57,-5.26,-6.00,-6.75,-7.54,-8.36,-9.18,-10.03,-10.89,-11.77,-12.66,-13.55,-14.44,-15.33,-16.23,-17.12,-17.99,-18.87,-19.73,-20.57,-21.38,-22.20,-22.97,-23.73,-24.45,-25.13,-25.79,-26.41,-26.99,-27.52,-28.01,-28.46,-28.85,-29.19,-29.47,-29.70,-29.87,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.98,-29.93,-29.85,-29.74,-29.61,-29.46,-29.28,-29.10,-28.90,-28.69,-28.47,-28.25,-28.02,-27.79,-27.56,-27.33,-27.11,-26.89,-26.69,-26.49,-26.31,-26.14,-25.99,-25.85,-25.74,-25.64,-25.57,-25.53,-25.52,-25.52,-25.52,-25.52,-25.52,-25.52,-25.45,-25.24,-24.92,-24.47,-23.92,-23.26,-22.53,-21.70,-20.79,-19.82,-18.81,-17.73,-16.61,-15.46,-14.31,-13.13,-11.93,-10.74,-9.58,-8.42,-7.28,-6.22,-5.27,-4.42,-3.66,-3.01,-2.43,-1.93,-1.50,-1.14,-0.84,-0.59,-0.40,-0.26,-0.15,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-2,-2.01,-2.04,-2.08,-2.14,-2.22,-2.31,-2.41,-2.53,-2.66,-2.80,-2.96,-3.12,-3.29,-3.48,-3.67,-3.87,-4.08,-4.29,-4.50,-4.73,-4.95,-5.18,-5.42,-5.65,-5.88,-6.12,-6.35,-6.58,-6.82,-7.05,-7.27,-7.50,-7.71,-7.92,-8.13,-8.33,-8.52,-8.71,-8.88,-9.04,-9.20,-9.34,-9.47,-9.59,-9.69,-9.78,-9.86,-9.92,-9.96,-9.99,-10,-9.94,-9.79,-9.53,-9.18,-8.77,-8.29,-7.74,-7.17,-6.54,-5.89,-5.22,-4.56,-3.87,-3.21,-2.56,-1.94,-1.34,-0.78,-0.27,0.20,0.60,0.95,1.29,1.60,1.90,2.18,2.44,2.69,2.92,3.14,3.33,3.52,3.69,3.85,3.99,4.12,4.24,4.35,4.45,4.54,4.61,4.68,4.74,4.80,4.84,4.88,4.91,4.94,4.96,4.97,4.98,4.99,5.00,5.00,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.00,5.00,4.99,4.99,4.98,4.97,4.95,4.94,4.92,4.91,4.89,4.87,4.84,4.82,4.79,4.76,4.73,4.70,4.67,4.63,4.59,4.55,4.51,4.47,4.42,4.38,4.33,4.28,4.23,4.17,4.12,4.06,4.00,3.94,3.88,3.81,3.75,3.68,3.61,3.54,3.47,3.39,3.31,3.24,3.16,3.08,2.99,2.91,2.82,2.73,2.65,2.55,2.46,2.37,2.27,2.17,2.07,1.97,1.87,1.77,1.66,1.56,1.45,1.34,1.23,1.11,1,0.88,0.77,0.67,0.57,0.47,0.38,0.30,0.22,0.14,0.07,0.01,-0.05,-0.11,-0.16,-0.20,-0.24,-0.28,-0.31,-0.34,-0.36,-0.37,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.40,-0.42,-0.45,-0.48,-0.53,-0.59,-0.65,-0.71,-0.78,-0.86,-0.94,-1.02,-1.10,-1.19,-1.27,-1.35,-1.43,-1.50,-1.57,-1.64,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.92,-1.94,-1.96,-1.97,-1.98,-1.99,-2.00,-2.00,-2.00,-2.00,-2.00,-2.00,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\nPARAM_BROW_R_Y=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.72,0.71,0.69,0.68,0.66,0.65,0.64,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.75,0.74,0.73,0.73,0.72,0.71,0.70,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.54,0.54,0.55,0.56,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\nPARAM_ANGLE_Y=18,17.86,17.47,16.83,15.99,14.94,13.73,12.35,10.85,9.24,7.57,5.77,3.97,2.14,0.30,-1.51,-3.29,-5.06,-6.71,-8.28,-9.76,-11.13,-12.33,-13.40,-14.31,-15.03,-15.56,-15.89,-16,-15.71,-14.86,-13.53,-11.84,-9.75,-7.43,-4.86,-2.14,0.74,3.64,6.63,9.59,12.48,15.32,17.97,20.47,22.76,24.81,26.58,28.02,29.10,29.76,30,29.97,29.89,29.75,29.56,29.32,29.03,28.70,28.32,27.89,27.43,26.92,26.38,25.80,25.20,24.55,23.87,23.17,22.44,21.68,20.90,20.10,19.27,18.43,17.57,16.70,15.82,14.93,14.01,13.11,12.18,11.25,10.33,9.41,8.49,7.57,6.65,5.73,4.83,3.93,3.03,2.15,1.30,0.45,-0.38,-1.20,-1.99,-2.76,-3.51,-4.23,-4.93,-5.61,-6.25,-6.86,-7.45,-8,-8.57,-9.08,-9.55,-9.98,-10.36,-10.71,-11.03,-11.32,-11.59,-11.83,-12.05,-12.26,-12.46,-12.64,-12.82,-13.00,-13.17,-13.34,-13.52,-13.70,-13.89,-14.09,-14.31,-14.53,-14.78,-15.05,-15.34,-15.66,-16,-16.40,-16.86,-17.37,-17.91,-18.47,-19.06,-19.65,-20.25,-20.83,-21.40,-21.93,-22.42,-22.87,-23.24,-23.56,-23.80,-23.95,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24.00,-23.98,-23.96,-23.93,-23.89,-23.85,-23.79,-23.73,-23.66,-23.58,-23.49,-23.39,-23.29,-23.17,-23.05,-22.92,-22.78,-22.64,-22.49,-22.33,-22.15,-21.98,-21.79,-21.60,-21.39,-21.19,-20.97,-20.74,-20.51,-20.27,-20.02,-19.76,-19.50,-19.23,-18.95,-18.66,-18.36,-18.06,-17.75,-17.44,-17.11,-16.77,-16.43,-16.08,-15.73,-15.36,-15.00,-14.62,-14.24,-13.84,-13.44,-13.03,-12.62,-12.20,-11.78,-11.34,-10.90,-10.44,-9.99,-9.52,-9.06,-8.58,-8.10,-7.60,-7.11,-6.59,-6.09,-5.56,-5.04,-4.50,-3.97,-3.42,-2.87,-2.31,-1.74,-1.17,-0.58,0,0.58,1.11,1.62,2.10,2.54,2.97,3.36,3.71,4.05,4.36,4.63,4.89,5.12,5.33,5.51,5.67,5.81,5.93,6.03,6.11,6.17,6.21,6.23,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.28,6.38,6.53,6.75,7.01,7.33,7.68,8.08,8.51,8.97,9.45,9.96,10.49,11.03,11.57,12.13,12.68,13.24,13.77,14.30,14.82,15.30,15.72,16.10,16.44,16.73,16.98,17.20,17.39,17.54,17.67,17.77,17.85,17.91,17.95,17.97,17.99,18.00,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18\nPARAM_ANGLE_X=0,-0.05,-0.20,-0.45,-0.78,-1.19,-1.68,-2.24,-2.86,-3.54,-4.27,-5.06,-5.87,-6.72,-7.61,-8.50,-9.42,-10.37,-11.30,-12.24,-13.18,-14.12,-15.02,-15.92,-16.80,-17.64,-18.46,-19.26,-20,-20.80,-21.53,-22.19,-22.75,-23.27,-23.71,-24.11,-24.45,-24.75,-25.00,-25.22,-25.40,-25.55,-25.67,-25.77,-25.85,-25.90,-25.94,-25.97,-25.99,-26.00,-26.00,-26,-25.89,-25.57,-25.05,-24.35,-23.47,-22.45,-21.28,-19.98,-18.56,-17.04,-15.40,-13.71,-11.92,-10.11,-8.26,-6.38,-4.49,-2.57,-0.70,1.18,2.99,4.75,6.45,8.06,9.59,11.03,12.33,13.52,14.55,15.42,16.23,16.99,17.74,18.45,19.12,19.76,20.38,20.96,21.51,22.03,22.52,22.99,23.43,23.85,24.24,24.61,24.95,25.27,25.58,25.86,26.12,26.37,26.59,26.80,27,27.21,27.40,27.58,27.74,27.89,28.03,28.15,28.26,28.36,28.46,28.54,28.61,28.67,28.73,28.78,28.82,28.86,28.89,28.92,28.94,28.96,28.97,28.98,28.99,28.99,29.00,29.00,29.00,29,28.99,28.97,28.93,28.87,28.81,28.74,28.66,28.58,28.50,28.42,28.34,28.26,28.19,28.13,28.07,28.03,28.01,28,28,28,28,28,28,28,28,28,27.99,27.95,27.88,27.79,27.67,27.53,27.36,27.18,26.97,26.74,26.48,26.22,25.92,25.62,25.29,24.95,24.59,24.22,23.82,23.42,23.00,22.58,22.13,21.68,21.21,20.74,20.26,19.77,19.27,18.76,18.25,17.73,17.20,16.68,16.15,15.62,15.08,14.53,14,13.47,12.92,12.38,11.85,11.32,10.80,10.27,9.75,9.24,8.73,8.23,7.74,7.26,6.79,6.32,5.87,5.42,5.00,4.58,4.18,3.78,3.41,3.05,2.71,2.38,2.08,1.78,1.52,1.26,1.03,0.82,0.64,0.47,0.33,0.21,0.12,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.06,0.08,0.11,0.14,0.17,0.21,0.26,0.30,0.35,0.40,0.45,0.51,0.57,0.63,0.69,0.76,0.82,0.89,0.96,0.99,1.00,1,1,1,1,1.00,0.96,0.93,0.88,0.84,0.79,0.74,0.69,0.63,0.58,0.52,0.47,0.41,0.36,0.31,0.26,0.22,0.18,0.14,0.10,0.07,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.08,0.11,0.15,0.19,0.23,0.27,0.32,0.37,0.41,0.46,0.50,0.54,0.58,0.62,0.65,0.68,0.70,0.72,0.73,0.73,0.60,0.39,0.20,0.05,0,0.14,0.37,0.58,0.73,0.79,0.78,0.77,0.75,0.71,0.68,0.63,0.59,0.53,0.48,0.42,0.37,0.31,0.26,0.20,0.16,0.11,0.08,0.04,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.11,0.13,0.13,0.15,0.15,0.16,0.17,0.18,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.24,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.20,0.19,0.19,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.90,0.73,0.58,0.46,0.42,0.42,0.43,0.45,0.48,0.50,0.54,0.57,0.61,0.65,0.69,0.73,0.77,0.81,0.85,0.88,0.92,0.94,0.97,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.50,0.26,0.08,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.94,0.94,0.93,0.92,0.91,0.90,0.86,0.78,0.68,0.57,0.45,0.33,0.23,0.14,0.06,0.02,0,0.02,0.07,0.15,0.25,0.37,0.49,0.60,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.87,0.86,0.70,0.45,0.23,0.06,0,0.15,0.40,0.63,0.79,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.22,0.21,0.20,0.20,0.19,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.72,0.71,0.69,0.68,0.66,0.65,0.64,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.69,0.70,0.70,0.71,0.72,0.73,0.73,0.74,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.75,0.74,0.73,0.73,0.72,0.71,0.70,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.54,0.54,0.55,0.56,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\nPARAM_BROW_R_ANGLE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.50,0.26,0.08,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.87,0.79,0.69,0.57,0.45,0.34,0.23,0.14,0.06,0.02,0,0.02,0.07,0.15,0.25,0.37,0.49,0.60,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.87,0.86,0.70,0.45,0.23,0.06,0,0.15,0.40,0.63,0.79,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.90,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.08,0.13,0.19,0.26,0.34,0.42,0.50,0.58,0.66,0.74,0.81,0.87,0.92,0.96,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.90,0.88,0.86,0.84,0.82,0.79,0.77,0.74,0.71,0.69,0.66,0.63,0.60,0.57,0.54,0.51,0.48,0.45,0.42,0.40,0.37,0.34,0.31,0.28,0.26,0.23,0.21,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.05,0.04,0.03,0.02,0.01,0.00,0.00,0,0.00,0.00,0.01,0.02,0.02,0.03,0.05,0.06,0.07,0.09,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.49,0.51,0.54,0.56,0.59,0.61,0.64,0.66,0.68,0.70,0.73,0.75,0.77,0.78,0.80,0.82,0.83,0.85,0.86,0.87,0.88,0.89,0.89,0.90,0.90,0.90,0.90,0.89,0.87,0.86,0.83,0.81,0.78,0.74,0.71,0.67,0.63,0.59,0.54,0.50,0.46,0.41,0.37,0.33,0.28,0.24,0.21,0.17,0.14,0.11,0.08,0.06,0.04,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.12,-0.14,-0.16,-0.18,-0.20,-0.22,-0.25,-0.28,-0.30,-0.33,-0.36,-0.39,-0.43,-0.46,-0.49,-0.53,-0.57,-0.61,-0.65,-0.68,-0.71,-0.74,-0.77,-0.80,-0.82,-0.85,-0.87,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-0.98,-0.97,-0.95,-0.92,-0.90,-0.86,-0.83,-0.79,-0.74,-0.70,-0.64,-0.59,-0.53,-0.47,-0.41,-0.34,-0.27,-0.21,-0.13,-0.06,0.01,0.10,0.16,0.20,0.23,0.27,0.29,0.32,0.34,0.37,0.41,0.44,0.47,0.49,0.52,0.55,0.57,0.59,0.61,0.63,0.65,0.67,0.68,0.70,0.71,0.72,0.73,0.74,0.74,0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.74,0.72,0.69,0.65,0.60,0.55,0.49,0.43,0.37,0.30,0.23,0.15,0.08,0,-0.08,-0.15,-0.23,-0.30,-0.37,-0.43,-0.49,-0.55,-0.60,-0.65,-0.69,-0.72,-0.74,-0.76,-0.76,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.69,-0.67,-0.65,-0.63,-0.62,-0.60,-0.58,-0.56,-0.55,-0.53,-0.52,-0.51,-0.50,-0.49,-0.48,-0.47,-0.46,-0.45,-0.44,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.30,-0.29,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.21,-0.20,-0.19,-0.18,-0.17,-0.16,-0.16,-0.15,-0.14,-0.13,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.00,0,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.10,-0.12,-0.14,-0.15,-0.17,-0.19,-0.21,-0.22,-0.24,-0.26,-0.27,-0.28,-0.29,-0.30,-0.31,-0.32,-0.33,-0.33,-0.33,-0.32,-0.31,-0.28,-0.25,-0.20,-0.16,-0.10,-0.05,0.01,0.07,0.13,0.19,0.25,0.31,0.37,0.42,0.47,0.51,0.55,0.58,0.61,0.62,0.63,0.63,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.64,0.59,0.53,0.48,0.43,0.38,0.33,0.28,0.24,0.20,0.15,0.12,0.08,0.04,0.01,-0.02,-0.05,-0.07,-0.10,-0.12,-0.13,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.20,-0.20,-0.20,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.19,-0.18,-0.16,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.01,0.00,0.02,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0,-0.00,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.14,-0.16,-0.19,-0.21,-0.24,-0.27,-0.29,-0.31,-0.34,-0.36,-0.37,-0.39,-0.40,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.40,-0.40,-0.39,-0.39,-0.38,-0.37,-0.36,-0.35,-0.33,-0.32,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_03.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.14,-0.16,-0.18,-0.20,-0.22,-0.24,-0.26,-0.29,-0.31,-0.34,-0.36,-0.38,-0.40,-0.42,-0.43,-0.45,-0.46,-0.47,-0.48,-0.49,-0.49,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.40,-0.39,-0.38,-0.36,-0.35,-0.33,-0.31,-0.30,-0.28,-0.26,-0.24,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.02,-0.00,0.01,0.03,0.05,0.06,0.08,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.19,0.20,0.20,0.21,0.22,0.23,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.20,0.20,0.20,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.16,0.16,0.15,0.15,0.15,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.01,-0.06,-0.13,-0.23,-0.36,-0.51,-0.69,-0.90,-1.14,-1.40,-1.69,-2.00,-2.33,-2.70,-3.08,-3.49,-3.92,-4.38,-4.85,-5.35,-5.87,-6.41,-6.98,-7.55,-8.16,-8.78,-9.42,-10.07,-10.76,-11.45,-12.16,-12.88,-13.62,-14.38,-15.16,-15.94,-16.75,-17.56,-18.39,-19.23,-20.09,-20.95,-21.83,-22.84,-23.42,-23.70,-23.82,-23.90,-23.95,-23.98,-23.99,-24.00,-24,-23.92,-23.69,-23.32,-22.81,-22.17,-21.41,-20.55,-19.58,-18.50,-17.35,-16.12,-14.79,-13.40,-11.95,-10.44,-8.90,-7.32,-5.68,-4.01,-2.35,-0.63,1.06,2.80,4.50,6.20,7.88,9.57,11.23,12.84,14.42,15.95,17.44,18.88,20.24,21.53,22.77,23.94,25.02,26.00,26.88,27.68,28.37,28.93,29.39,29.73,29.93,30,29.94,29.75,29.44,29.01,28.48,27.83,27.06,26.21,25.24,24.16,23.02,21.76,20.20,19.00,18.06,17.30,15.94,14.80,13.96,13.36,12.57,11.73,10.83,9.91,9.03,8.16,7.34,6.63,6.00,5.50,5.17,5,4.93,4.86,4.79,4.73,4.66,4.59,4.53,4.46,4.39,4.33,4.27,4.20,4.14,4.07,4.01,3.95,3.88,3.82,3.76,3.70,3.64,3.57,3.51,3.45,3.39,3.33,3.27,3.21,3.15,3.10,3.04,2.98,2.92,2.86,2.80,2.74,2.69,2.63,2.57,2.51,2.46,2.40,2.34,2.29,2.23,2.17,2.12,2.06,2.01,1.95,1.89,1.84,1.78,1.72,1.67,1.61,1.56,1.50,1.45,1.39,1.34,1.28,1.22,1.17,1.11,1.06,1.00,0.94,0.89,0.83,0.78,0.72,0.66,0.61,0.55,0.49,0.44,0.38,0.34,0.31,0.29,0.27,0.25,0.23,0.22,0.20,0.19,0.17,0.16,0.14,0.13,0.12,0.11,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,-0.02,-0.06,-0.13,-0.22,-0.34,-0.47,-0.62,-0.78,-0.95,-1.13,-1.31,-1.50,-1.69,-1.87,-2.05,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3.00,-3.00,-3.01,-3.02,-3.03,-3.04,-3.06,-3.08,-3.10,-3.12,-3.15,-3.17,-3.20,-3.23,-3.27,-3.30,-3.34,-3.38,-3.42,-3.46,-3.51,-3.55,-3.60,-3.65,-3.70,-3.76,-3.81,-3.87,-3.94,-4.00,-4.04,-4.08,-4.15,-4.21,-4.26,-4.29,-4.34,-4.38,-4.43,-4.47,-4.51,-4.55,-4.59,-4.62,-4.65,-4.69,-4.72,-4.75,-4.77,-4.80,-4.82,-4.84,-4.87,-4.88,-4.90,-4.92,-4.93,-4.95,-4.96,-4.97,-4.98,-4.98,-4.99,-4.99,-5.00,-5.00,-5,-4.99,-4.97,-4.94,-4.89,-4.83,-4.76,-4.67,-4.58,-4.47,-4.35,-4.23,-4.09,-3.95,-3.80,-3.64,-3.47,-3.30,-3.12,-2.93,-2.74,-2.55,-2.35,-2.14,-1.94,-1.73,-1.52,-1.31,-1.09,-0.87,-0.66,-0.44,-0.23,-0.01,0.20,0.41,0.62,0.83,1.04,1.24,1.43,1.63,1.81,2,2.18,2.33,2.47,2.58,2.68,2.77,2.85,2.91,2.97,3.02,3.08,3.13,3.19,3.25,3.31,3.39,3.43,3.46,3.48,3.53,3.56,3.59,3.61,3.64,3.67,3.69,3.72,3.74,3.77,3.79,3.81,3.83,3.85,3.86,3.88,3.90,3.91,3.92,3.93,3.95,3.96,3.96,3.97,3.98,3.98,3.99,3.99,4.00,4.00,4.00,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\nPARAM_BODY_ANGLE_Y=0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.63,-0.82,-1.04,-1.27,-1.51,-1.75,-2,-2.25,-2.49,-2.73,-2.96,-3.18,-3.38,-3.55,-3.70,-3.83,-3.92,-3.98,-4,-4.00,-3.98,-3.96,-3.92,-3.88,-3.82,-3.76,-3.68,-3.60,-3.50,-3.40,-3.29,-3.17,-3.04,-2.90,-2.76,-2.61,-2.45,-2.28,-2.02,-1.77,-1.56,-1.39,-1.12,-0.88,-0.68,-0.51,-0.20,0,0.34,0.69,1.02,1.34,1.65,1.96,2.25,2.54,2.82,3.10,3.36,3.62,3.87,4.11,4.35,4.57,4.79,5.00,5.21,5.40,5.60,5.78,5.95,6.12,6.28,6.43,6.58,6.72,6.85,6.97,7.09,7.20,7.31,7.40,7.49,7.57,7.65,7.71,7.77,7.83,7.87,7.91,7.94,7.97,7.99,8.00,8,7.99,7.94,7.87,7.77,7.65,7.49,7.30,7.09,6.85,6.57,6.27,5.94,5.48,5.08,4.77,4.52,4.11,3.78,3.53,3.34,3.11,2.91,2.73,2.57,2.43,2.31,2.22,2.14,2.08,2.03,2.01,2,2.01,2.03,2.08,2.14,2.21,2.31,2.42,2.55,2.69,2.85,3.03,3.23,3.44,3.66,3.90,4.16,4.42,4.71,5,5.36,5.69,6.00,6.28,6.54,6.78,6.99,7.18,7.36,7.50,7.64,7.75,7.84,7.91,7.96,7.99,8,8.00,7.99,7.98,7.96,7.94,7.91,7.88,7.84,7.80,7.75,7.70,7.64,7.58,7.52,7.45,7.37,7.29,7.21,7.12,7.03,6.93,6.83,6.73,6.62,6.50,6.39,6.26,6.14,6.01,5.87,5.73,5.59,5.44,5.29,5.14,4.98,4.81,4.64,4.47,4.29,4.11,3.88,3.69,3.55,3.43,3.23,3.06,2.93,2.83,2.69,2.56,2.44,2.32,2.20,2.10,1.99,1.90,1.81,1.72,1.64,1.56,1.49,1.42,1.36,1.31,1.26,1.21,1.17,1.13,1.10,1.07,1.05,1.03,1.02,1.01,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.44,0.44,0.44,0.44,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.50,0.40,0.33,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,-0.02,-0.07,-0.16,-0.29,-0.45,-0.64,-0.87,-1.13,-1.42,-1.75,-2.11,-2.50,-2.92,-3.38,-3.86,-4.38,-4.91,-5.48,-6.08,-6.70,-7.35,-8.03,-8.73,-9.45,-10.21,-10.99,-11.78,-12.60,-13.46,-14.32,-15.21,-16.12,-17.04,-17.98,-18.96,-19.93,-20.95,-21.96,-22.99,-24.05,-25.12,-26.18,-27.29,-28.55,-29.27,-29.62,-29.76,-29.88,-29.94,-29.97,-29.99,-30,-30,-29.99,-29.96,-29.92,-29.86,-29.77,-29.67,-29.55,-29.42,-29.26,-29.09,-28.90,-28.69,-28.46,-28.21,-27.95,-27.66,-27.36,-27.03,-26.69,-26.34,-25.95,-25.56,-25.14,-24.70,-24.25,-23.77,-23.28,-22.75,-22.22,-21.67,-21.09,-20.50,-19.89,-19.25,-18.59,-17.92,-17.23,-16.52,-15.78,-15.03,-14.24,-13.45,-12.63,-11.79,-10.92,-10.04,-9.14,-8.21,-7.26,-6.29,-5.31,-4.29,-3.25,-2.19,-1.11,0,1.37,2.68,3.91,5.06,6.09,7.01,7.80,8.43,8.91,9.21,9.31,9.19,8.82,8.21,7.40,6.41,5.24,3.91,2.44,0.88,-0.81,-2.59,-4.41,-6.28,-8.19,-10.11,-12.01,-13.90,-15.75,-17.56,-19.31,-20.96,-22.51,-23.96,-25.30,-26.48,-27.51,-28.37,-29.07,-29.58,-29.89,-30,-30.00,-29.99,-29.99,-29.97,-29.96,-29.94,-29.93,-29.91,-29.88,-29.86,-29.83,-29.80,-29.77,-29.74,-29.71,-29.68,-29.64,-29.61,-29.57,-29.54,-29.50,-29.47,-29.43,-29.40,-29.37,-29.33,-29.30,-29.27,-29.24,-29.21,-29.18,-29.15,-29.13,-29.11,-29.09,-29.07,-29.05,-29.03,-29.02,-29.01,-29.01,-29.00,-29,-29.01,-29.05,-29.10,-29.18,-29.26,-29.35,-29.45,-29.55,-29.65,-29.74,-29.82,-29.90,-29.95,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-29.98,-29.93,-29.83,-29.70,-29.51,-29.29,-29.01,-28.69,-28.34,-27.95,-27.51,-27.04,-26.53,-26,-25.35,-24.69,-24.04,-23.39,-22.74,-22.10,-21.46,-20.82,-20.19,-19.56,-18.95,-18.32,-17.71,-17.10,-16.51,-15.91,-15.32,-14.74,-14.16,-13.59,-13.03,-12.48,-11.93,-11.40,-10.87,-10.35,-9.84,-9.34,-8.85,-8.37,-7.90,-7.45,-7.00,-6.56,-6.13,-5.72,-5.32,-4.93,-4.55,-4.19,-3.84,-3.50,-3.18,-2.87,-2.57,-2.29,-2.02,-1.77,-1.54,-1.31,-1.11,-0.92,-0.75,-0.60,-0.46,-0.34,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,-0.01,-0.02,-0.05,-0.09,-0.15,-0.21,-0.29,-0.37,-0.47,-0.58,-0.70,-0.83,-0.97,-1.12,-1.28,-1.45,-1.63,-1.81,-2.01,-2.22,-2.43,-2.66,-2.89,-3.13,-3.39,-3.65,-3.91,-4.18,-4.47,-4.76,-5.05,-5.35,-5.66,-5.98,-6.30,-6.63,-6.97,-7.31,-7.66,-8.01,-8.37,-8.73,-9.10,-9.52,-9.76,-9.88,-9.93,-9.96,-9.98,-9.99,-10.00,-10.00,-10,-9.99,-9.96,-9.91,-9.84,-9.76,-9.66,-9.54,-9.42,-9.27,-9.11,-8.94,-8.76,-8.57,-8.37,-8.16,-7.94,-7.71,-7.48,-7.24,-6.99,-6.74,-6.48,-6.23,-5.96,-5.70,-5.43,-5.17,-4.90,-4.63,-4.37,-4.10,-3.84,-3.59,-3.33,-3.08,-2.84,-2.60,-2.37,-2.15,-1.93,-1.72,-1.52,-1.33,-1.14,-0.97,-0.82,-0.67,-0.54,-0.42,-0.31,-0.22,-0.14,-0.08,-0.04,-0.01,0,-0.09,-0.33,-0.66,-1.08,-1.54,-2.03,-2.55,-3.06,-3.57,-4.05,-4.51,-5.00,-5.45,-5.90,-6.31,-6.71,-7.08,-7.44,-7.77,-8.08,-8.38,-8.66,-8.91,-9.15,-9.38,-9.59,-9.77,-9.95,-10.11,-10.25,-10.38,-10.50,-10.60,-10.69,-10.77,-10.83,-10.88,-10.93,-10.96,-10.98,-11.00,-11,-11.00,-10.99,-10.99,-10.98,-10.97,-10.95,-10.93,-10.91,-10.88,-10.85,-10.82,-10.78,-10.74,-10.69,-10.64,-10.59,-10.53,-10.47,-10.40,-10.32,-10.24,-10.16,-10.07,-9.97,-9.87,-9.76,-9.65,-9.53,-9.41,-9.28,-9.14,-9.00,-8.85,-8.70,-8.53,-8.37,-8.19,-8.01,-7.82,-7.63,-7.42,-7.22,-7,-6.71,-6.29,-5.77,-5.15,-4.45,-3.69,-2.87,-2.02,-1.13,-0.24,0.67,1.55,2.42,3.24,4,4.95,5.77,6.43,6.95,7.87,8.64,9.23,9.65,10.22,10.72,11.16,11.56,11.89,12.18,12.42,12.61,12.76,12.87,12.94,12.99,13,12.99,12.96,12.91,12.84,12.75,12.64,12.52,12.38,12.22,12.05,11.87,11.67,11.46,11.24,11.01,10.77,10.52,10.26,9.99,9.71,9.43,9.14,8.85,8.55,8.25,7.94,7.63,7.32,7.01,6.70,6.38,6.07,5.76,5.45,5.14,4.84,4.54,4.24,3.94,3.66,3.38,3.11,2.84,2.58,2.33,2.09,1.86,1.64,1.43,1.23,1.05,0.88,0.72,0.58,0.45,0.33,0.23,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0.00,0.01,0.02,0.03,0.04,0.06,0.08,0.11,0.13,0.16,0.19,0.23,0.26,0.29,0.33,0.36,0.40,0.44,0.48,0.51,0.55,0.59,0.63,0.66,0.70,0.73,0.76,0.80,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1.00,0.99,0.96,0.89,0.83,0.77,0.73,0.66,0.60,0.55,0.51,0.42,0.38,0.32,0.27,0.22,0.18,0.14,0.11,0.08,0.06,0.04,0.03,0.02,0.01,0.00,0,0.01,0.05,0.10,0.16,0.24,0.32,0.40,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.98,0.93,0.85,0.75,0.64,0.52,0.40,0.30,0.20,0.12,0.06,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.88,0.87,0.86,0.84,0.82,0.81,0.79,0.77,0.75,0.73,0.71,0.69,0.67,0.64,0.62,0.59,0.57,0.54,0.52,0.49,0.46,0.43,0.40,0.37,0.34,0.31,0.28,0.24,0.20,0.16,0.14,0.10,0.07,0.05,0.03,0.00,-0.01,-0.02,-0.03,-0.04,-0.05,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.03,0.03,0.09,0.17,0.26,0.35,0.45,0.54,0.63,0.72,0.79,0.86,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.87,0.88,0.89,0.90,0.92,0.93,0.94,0.96,0.97,0.98,0.99,0.99,1.00,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.97,0.74,0.35,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.61,0.29,0.07,0,0.19,0.50,0.72,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.75,0.36,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.48,0.48,0.47,0.47,0.47,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.49,0.39,0.32,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.05,-0.07,-0.08,-0.09,-0.10,-0.12,-0.14,-0.15,-0.17,-0.19,-0.21,-0.23,-0.26,-0.28,-0.31,-0.33,-0.35,-0.38,-0.40,-0.41,-0.43,-0.44,-0.46,-0.47,-0.48,-0.49,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.44,-0.43,-0.41,-0.40,-0.38,-0.37,-0.35,-0.34,-0.32,-0.30,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.01,0.00,0.02,0.04,0.06,0.08,0.09,0.11,0.13,0.14,0.16,0.17,0.19,0.20,0.21,0.22,0.23,0.24,0.25,0.26,0.26,0.27,0.27,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.20,0.20,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.90,0.91,0.92,0.93,0.95,0.96,0.97,0.98,0.99,1.00,1.00,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.97,0.74,0.35,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.61,0.29,0.07,0,0.19,0.50,0.72,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.75,0.36,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,0.00,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.08,0.09,0.09,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.18,0.18,0.19,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.30,0.28,0.25,0.22,0.19,0.15,0.10,0.06,0.00,-0.05,-0.10,-0.16,-0.22,-0.28,-0.32,-0.34,-0.36,-0.39,-0.42,-0.44,-0.45,-0.47,-0.48,-0.49,-0.51,-0.52,-0.53,-0.53,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.53,-0.53,-0.52,-0.52,-0.51,-0.50,-0.49,-0.48,-0.48,-0.47,-0.46,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.30,-0.28,-0.27,-0.26,-0.24,-0.23,-0.22,-0.20,-0.19,-0.18,-0.17,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.38,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.47,-0.47,-0.48,-0.49,-0.49,-0.50,-0.51,-0.52,-0.53,-0.54,-0.55,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.61,-0.61,-0.61,-0.62,-0.62,-0.62,-0.62,-0.62,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.62,-0.62,-0.61,-0.61,-0.60,-0.59,-0.58,-0.58,-0.57,-0.56,-0.54,-0.53,-0.52,-0.51,-0.50,-0.48,-0.47,-0.46,-0.44,-0.43,-0.41,-0.40,-0.38,-0.37,-0.35,-0.34,-0.32,-0.31,-0.29,-0.28,-0.26,-0.25,-0.23,-0.22,-0.21,-0.19,-0.18,-0.16,-0.15,-0.14,-0.13,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_04.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.25,0.27,0.28,0.29,0.30,0.31,0.31,0.32,0.33,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20\nPARAM_ANGLE_Z=0,-0.03,-0.13,-0.28,-0.49,-0.74,-1.04,-1.37,-1.75,-2.15,-2.58,-3.03,-3.49,-3.97,-4.45,-4.94,-5.42,-5.90,-6.38,-6.84,-7.28,-7.70,-8.10,-8.46,-8.80,-9.10,-9.37,-9.59,-9.76,-9.89,-9.97,-10,-9.99,-9.95,-9.89,-9.81,-9.71,-9.58,-9.43,-9.27,-9.08,-8.88,-8.65,-8.41,-8.15,-7.88,-7.59,-7.29,-6.97,-6.64,-6.30,-5.94,-5.56,-5.19,-4.79,-4.39,-3.98,-3.56,-3.13,-2.69,-2.24,-1.80,-1.34,-0.88,-0.41,0.06,0.54,1.02,1.50,1.98,2.46,2.96,3.44,3.93,4.41,4.89,5.38,5.86,6.34,6.81,7.28,7.75,8.21,8.66,9.11,9.55,9.99,10.41,10.83,11.24,11.64,12.02,12.40,12.77,13.13,13.48,13.81,14.13,14.43,14.72,15.00,15.26,15.51,15.73,15.94,16.14,16.31,16.47,16.61,16.72,16.82,16.90,16.95,16.99,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.97,16.90,16.78,16.61,16.40,16.14,15.84,15.51,15.14,14.73,14.29,13.82,13.31,12.78,12.23,11.64,11.04,10.40,9.75,9.08,8.40,7.69,6.97,6.24,5.49,4.75,3.98,3.21,2.43,1.67,0.88,0.10,-0.68,-1.47,-2.24,-3.01,-3.78,-4.53,-5.28,-6.02,-6.75,-7.46,-8.16,-8.85,-9.51,-10.15,-10.78,-11.39,-11.96,-12.52,-13.05,-13.56,-14.03,-14.48,-14.89,-15.27,-15.63,-15.94,-16.21,-16.45,-16.64,-16.80,-16.91,-16.98,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.99,-16.97,-16.93,-16.88,-16.81,-16.73,-16.64,-16.53,-16.41,-16.27,-16.13,-15.97,-15.80,-15.62,-15.43,-15.22,-15.01,-14.79,-14.55,-14.31,-14.06,-13.79,-13.53,-13.25,-12.96,-12.67,-12.37,-12.06,-11.76,-11.43,-11.11,-10.78,-10.44,-10.10,-9.76,-9.41,-9.05,-8.70,-8.34,-7.97,-7.61,-7.24,-6.87,-6.50,-6.12,-5.75,-5.38,-5,-4.62,-4.25,-3.88,-3.50,-3.13,-2.76,-2.39,-2.03,-1.66,-1.30,-0.95,-0.59,-0.24,0.10,0.44,0.78,1.11,1.43,1.76,2.06,2.37,2.67,2.96,3.25,3.53,3.79,4.06,4.31,4.55,4.79,5.01,5.22,5.43,5.62,5.80,5.97,6.13,6.27,6.41,6.53,6.64,6.73,6.81,6.88,6.93,6.97,6.99,7,6.98,6.91,6.81,6.67,6.50,6.30,6.07,5.82,5.56,5.27,4.98,4.67,4.35,4.03,3.70,3.38,3.06,2.74,2.42,2.12,1.83,1.54,1.28,1.04,0.81,0.61,0.43,0.28,0.16,0.07,0.02,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.33,-0.36,-0.40,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.66,-0.70,-0.73,-0.76,-0.80,-0.82,-0.85,-0.88,-0.90,-0.92,-0.94,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.93,-0.92,-0.91,-0.89,-0.88,-0.86,-0.84,-0.82,-0.81,-0.79,-0.77,-0.75,-0.73,-0.71,-0.68,-0.66,-0.64,-0.62,-0.59,-0.57,-0.55,-0.53,-0.50,-0.48,-0.46,-0.43,-0.41,-0.39,-0.37,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.17,-0.15,-0.13,-0.12,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.86,-0.84,-0.82,-0.80,-0.78,-0.75,-0.73,-0.70,-0.67,-0.64,-0.61,-0.58,-0.55,-0.52,-0.49,-0.46,-0.43,-0.39,-0.36,-0.32,-0.29,-0.25,-0.22,-0.18,-0.15,-0.11,-0.08,-0.04,-0.00,0.03,0.07,0.10,0.14,0.17,0.21,0.25,0.28,0.31,0.35,0.38,0.42,0.45,0.48,0.51,0.54,0.57,0.60,0.63,0.66,0.69,0.71,0.74,0.76,0.79,0.81,0.83,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.94,0.93,0.92,0.90,0.89,0.87,0.85,0.83,0.81,0.79,0.77,0.75,0.72,0.70,0.68,0.65,0.62,0.60,0.57,0.54,0.51,0.48,0.45,0.42,0.39,0.36,0.33,0.30,0.27,0.23,0.20,0.17,0.14,0.10,0.07,0.04,0.00,-0.03,-0.06,-0.10,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.47,-0.50,-0.53,-0.56,-0.59,-0.61,-0.64,-0.66,-0.69,-0.71,-0.74,-0.76,-0.78,-0.80,-0.82,-0.84,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.98,-0.97,-0.96,-0.96,-0.95,-0.94,-0.93,-0.92,-0.91,-0.90,-0.89,-0.88,-0.86,-0.85,-0.84,-0.82,-0.81,-0.79,-0.78,-0.76,-0.75,-0.73,-0.71,-0.70,-0.68,-0.66,-0.64,-0.62,-0.60,-0.58,-0.56,-0.54,-0.52,-0.50,-0.48,-0.46,-0.44,-0.42,-0.39,-0.37,-0.35,-0.33,-0.31,-0.28,-0.26,-0.24,-0.21,-0.19,-0.17,-0.14,-0.12,-0.10,-0.07,-0.05,-0.02,0,0.02,0.05,0.07,0.10,0.12,0.14,0.17,0.19,0.21,0.24,0.26,0.28,0.31,0.33,0.35,0.37,0.39,0.42,0.44,0.46,0.48,0.50,0.52,0.54,0.56,0.58,0.60,0.62,0.64,0.66,0.68,0.70,0.71,0.73,0.75,0.76,0.78,0.79,0.81,0.82,0.84,0.85,0.86,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1.00,0.99,0.98,0.96,0.94,0.91,0.88,0.85,0.82,0.78,0.74,0.70,0.66,0.62,0.57,0.53,0.48,0.44,0.40,0.35,0.31,0.27,0.23,0.20,0.16,0.13,0.10,0.08,0.05,0.04,0.02,0.01,0.00,0\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.27,-0.43,-0.60,-0.82,-1.05,-1.32,-1.61,-1.92,-2.26,-2.63,-3.01,-3.41,-3.83,-4.27,-4.73,-5.21,-5.70,-6.21,-6.73,-7.26,-7.80,-8.37,-8.92,-9.51,-10.09,-10.68,-11.26,-11.87,-12.47,-13.08,-13.70,-14.30,-14.92,-15.53,-16.14,-16.74,-17.36,-17.96,-18.56,-19.15,-19.74,-20.31,-20.88,-21.45,-22.00,-22.53,-23.06,-23.58,-24.08,-24.57,-25.04,-25.50,-25.94,-26.37,-26.77,-27.15,-27.52,-27.86,-28.18,-28.48,-28.75,-29,-29.23,-29.42,-29.59,-29.74,-29.86,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.95,-29.80,-29.56,-29.24,-28.82,-28.34,-27.78,-27.15,-26.47,-25.72,-24.92,-24.07,-23.19,-22.25,-21.30,-20.30,-19.30,-18.27,-17.23,-16.19,-15.13,-14.08,-13.03,-12.01,-10.98,-9.97,-9.00,-8.06,-7.13,-6.25,-5.42,-4.62,-3.88,-3.20,-2.56,-1.99,-1.48,-1.04,-0.68,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_ANGLE=0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.25,0.27,0.28,0.29,0.30,0.31,0.31,0.32,0.33,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.58,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.72,0.73,0.74,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.81,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.72,0.72,0.71,0.71,0.71,0.70,0.70,0.70,0.70,0.70,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.03,0.05,0.07,0.10,0.12,0.13,0.12,0.10,0.08,0.05,0.03,0.02,0.02,0.04,0.07,0.11,0.13,0.14,0.13,0.11,0.08,0.05,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.11,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.16,-0.16,-0.17,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.24,-0.25,-0.25,-0.25,-0.23,-0.22,-0.21,-0.20,-0.19,-0.19,-0.21,-0.24,-0.26,-0.28,-0.29,-0.29,-0.28,-0.26,-0.25,-0.23,-0.21,-0.19,-0.17,-0.16,-0.14,-0.13,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_05.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_Z=-0.38,-1.45,-3.13,-5.26,-7.80,-10.58,-13.51,-16.49,-19.42,-22.20,-24.74,-26.87,-28.55,-29.62,-30,-29.84,-29.37,-28.62,-27.61,-26.38,-24.91,-23.26,-21.44,-19.48,-17.35,-15.13,-12.81,-10.40,-7.91,-5.42,-2.90,-0.31,2.24,4.77,7.23,9.69,12.08,14.35,16.57,18.64,20.59,22.40,24.06,25.54,26.84,27.93,28.81,29.46,29.86,30,29.85,29.42,28.75,27.85,26.79,25.54,24.16,22.68,21.12,19.47,17.80,16.08,14.34,12.66,11.00,9.37,7.84,6.38,5.02,3.80,2.72,1.79,1.03,0.47,0.12,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.03,-0.10,-0.21,-0.35,-0.52,-0.71,-0.90,-1.10,-1.29,-1.48,-1.65,-1.79,-1.90,-1.97,-2,-1.99,-1.96,-1.91,-1.84,-1.76,-1.66,-1.55,-1.43,-1.30,-1.16,-1.01,-0.85,-0.69,-0.53,-0.36,-0.19,-0.02,0.15,0.32,0.48,0.65,0.81,0.96,1.10,1.24,1.37,1.49,1.60,1.70,1.79,1.86,1.92,1.96,1.99,2,1.99,1.96,1.92,1.86,1.79,1.70,1.61,1.51,1.41,1.30,1.19,1.07,0.96,0.84,0.73,0.62,0.52,0.43,0.33,0.25,0.18,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=0.22,0.87,1.83,3.08,4.56,6.23,8.01,9.87,11.78,13.72,15.61,17.45,19.20,20.80,22.27,23.53,24.57,25.33,25.83,26,26.00,25.99,25.98,25.97,25.94,25.92,25.88,25.84,25.79,25.73,25.66,25.58,25.49,25.39,25.27,25.15,25.01,24.86,24.70,24.52,24.33,24.12,23.90,23.66,23.41,23.14,22.86,22.55,22.23,21.89,21.54,21.16,20.77,20.35,19.92,19.47,19,18.35,17.50,16.49,15.32,14.06,12.71,11.30,9.89,8.48,7.09,5.77,4.56,3.43,2.45,1.60,0.92,0.42,0.11,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=-0.03,-0.10,-0.21,-0.36,-0.53,-0.72,-0.92,-1.14,-1.36,-1.58,-1.80,-2.01,-2.22,-2.40,-2.57,-2.72,-2.83,-2.92,-2.98,-3,-2.94,-2.78,-2.51,-2.14,-1.69,-1.15,-0.53,0.14,0.89,1.70,2.55,3.45,4.38,5.34,6.33,7.33,8.35,9.37,10.40,11.40,12.41,13.38,14.33,15.25,16.14,16.99,17.77,18.51,19.20,19.83,20.37,20.85,21.25,21.58,21.81,21.95,22,21.80,21.24,20.38,19.24,17.89,16.36,14.70,12.99,11.23,9.46,7.76,6.16,4.67,3.34,2.19,1.26,0.58,0.15,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.01,0.05,0.11,0.19,0.27,0.36,0.45,0.53,0.60,0.66,0.70,0.73,0.74,0.73,0.69,0.64,0.57,0.50,0.42,0.34,0.27,0.19,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.02,-0.07,-0.16,-0.26,-0.38,-0.50,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.99,-0.98,-0.95,-0.91,-0.86,-0.80,-0.74,-0.67,-0.60,-0.52,-0.43,-0.35,-0.26,-0.17,-0.08,0.01,0.10,0.18,0.26,0.34,0.41,0.48,0.54,0.60,0.65,0.70,0.74,0.78,0.81,0.85,0.87,0.90,0.92,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.99,0.97,0.94,0.91,0.86,0.80,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.20,0.14,0.09,0.06,0.03,0.01,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.01,-0.03,-0.07,-0.11,-0.16,-0.21,-0.26,-0.31,-0.35,-0.39,-0.41,-0.42,-0.41,-0.40,-0.37,-0.33,-0.29,-0.24,-0.18,-0.12,-0.07,-0.01,0.05,0.11,0.16,0.20,0.24,0.27,0.28,0.29,0.29,0.27,0.25,0.23,0.19,0.16,0.11,0.07,0.02,-0.03,-0.09,-0.14,-0.19,-0.24,-0.29,-0.34,-0.39,-0.43,-0.47,-0.50,-0.53,-0.55,-0.57,-0.58,-0.58,-0.58,-0.57,-0.55,-0.52,-0.50,-0.46,-0.43,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.15,-0.12,-0.08,-0.06,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_06.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,-0.04,-0.17,-0.36,-0.64,-0.98,-1.39,-1.85,-2.37,-2.95,-3.58,-4.24,-4.95,-5.70,-6.49,-7.28,-8.12,-8.97,-9.84,-10.71,-11.60,-12.50,-13.40,-14.29,-15.16,-16.03,-16.88,-17.72,-18.51,-19.30,-20.05,-20.76,-21.42,-22.05,-22.63,-23.15,-23.61,-24.02,-24.36,-24.64,-24.83,-24.96,-25,-24.95,-24.81,-24.58,-24.27,-23.88,-23.41,-22.88,-22.28,-21.63,-20.93,-20.18,-19.37,-18.55,-17.68,-16.80,-15.89,-14.98,-14.03,-13.09,-12.15,-11.20,-10.28,-9.36,-8.46,-7.59,-6.73,-5.91,-5.12,-4.38,-3.68,-3.03,-2.43,-1.89,-1.41,-1.00,-0.64,-0.37,-0.17,-0.04,0,-0.01,-0.03,-0.08,-0.13,-0.21,-0.29,-0.40,-0.51,-0.64,-0.79,-0.95,-1.12,-1.30,-1.50,-1.71,-1.93,-2.16,-2.40,-2.65,-2.91,-3.19,-3.47,-3.76,-4.07,-4.38,-4.70,-5.03,-5.37,-5.71,-6.06,-6.42,-6.78,-7.15,-7.54,-7.93,-8.31,-8.71,-9.11,-9.52,-9.93,-10.35,-10.77,-11.20,-11.63,-12.06,-12.50,-12.94,-13.38,-13.83,-14.28,-14.72,-15.17,-15.63,-16.08,-16.54,-17,-17.48,-17.94,-18.36,-18.76,-19.13,-19.48,-19.81,-20.11,-20.39,-20.66,-20.90,-21.13,-21.34,-21.53,-21.71,-21.87,-22.02,-22.16,-22.28,-22.39,-22.49,-22.57,-22.65,-22.72,-22.78,-22.83,-22.87,-22.90,-22.93,-22.96,-22.97,-22.99,-22.99,-23.00,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-22.90,-22.61,-22.13,-21.49,-20.70,-19.75,-18.66,-17.45,-16.13,-14.70,-13.18,-11.58,-9.92,-8.23,-6.46,-4.66,-2.84,-1,0.84,2.66,4.46,6.23,7.92,9.58,11.18,12.70,14.13,15.45,16.66,17.75,18.70,19.49,20.13,20.61,20.90,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20.96,20.86,20.70,20.47,20.18,19.84,19.45,19.01,18.53,18.00,17.44,16.85,16.23,15.58,14.91,14.21,13.51,12.79,12.06,11.33,10.59,9.85,9.12,8.41,7.69,6.98,6.30,5.64,4.99,4.38,3.79,3.24,2.72,2.24,1.79,1.39,1.03,0.73,0.47,0.27,0.12,0.03,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.00,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.21,-0.26,-0.30,-0.36,-0.42,-0.48,-0.55,-0.63,-0.71,-0.80,-0.90,-1,-1.11,-1.23,-1.35,-1.46,-1.58,-1.69,-1.81,-1.93,-2.04,-2.16,-2.28,-2.39,-2.51,-2.63,-2.74,-2.86,-2.97,-3.09,-3.20,-3.32,-3.43,-3.54,-3.66,-3.77,-3.88,-3.99,-4.09,-4.20,-4.31,-4.41,-4.52,-4.62,-4.72,-4.82,-4.92,-5.01,-5.11,-5.20,-5.29,-5.38,-5.47,-5.56,-5.64,-5.72,-5.80,-5.88,-5.96,-6.03,-6.10,-6.17,-6.24,-6.30,-6.36,-6.42,-6.48,-6.53,-6.58,-6.63,-6.68,-6.72,-6.76,-6.80,-6.83,-6.86,-6.89,-6.92,-6.94,-6.96,-6.97,-6.98,-6.99,-7.00,-7,-6.96,-6.85,-6.66,-6.41,-6.11,-5.74,-5.32,-4.86,-4.34,-3.79,-3.21,-2.59,-1.95,-1.29,-0.61,0.09,0.79,1.50,2.21,2.91,3.61,4.29,4.95,5.59,6.21,6.79,7.34,7.86,8.32,8.74,9.11,9.41,9.66,9.85,9.96,10,9.99,9.96,9.92,9.86,9.78,9.69,9.58,9.46,9.33,9.19,9.03,8.86,8.68,8.49,8.29,8.08,7.86,7.64,7.41,7.17,6.93,6.68,6.43,6.18,5.92,5.66,5.40,5.13,4.87,4.60,4.34,4.08,3.82,3.57,3.32,3.07,2.83,2.59,2.36,2.14,1.92,1.71,1.51,1.32,1.14,0.97,0.81,0.67,0.54,0.42,0.31,0.22,0.14,0.08,0.04,0.01,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.05,-0.08,-0.11,-0.15,-0.19,-0.24,-0.29,-0.34,-0.40,-0.46,-0.52,-0.58,-0.65,-0.72,-0.79,-0.86,-0.93,-1,-1.07,-1.14,-1.21,-1.28,-1.35,-1.42,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2.00,-2,-2.00,-2.00,-1.99,-1.98,-1.97,-1.96,-1.94,-1.93,-1.91,-1.89,-1.87,-1.84,-1.82,-1.79,-1.76,-1.73,-1.70,-1.67,-1.64,-1.60,-1.57,-1.53,-1.49,-1.45,-1.42,-1.38,-1.34,-1.30,-1.26,-1.21,-1.17,-1.13,-1.09,-1.05,-1.01,-0.96,-0.92,-0.88,-0.84,-0.80,-0.76,-0.71,-0.67,-0.63,-0.60,-0.56,-0.52,-0.48,-0.45,-0.41,-0.38,-0.34,-0.31,-0.28,-0.25,-0.22,-0.20,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.34,0.34,0.33,0.32,0.32,0.31,0.30,0.30,0.29,0.29,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.43,0.44,0.44,0.44,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.34,-0.59,-0.91,-1.29,-1.73,-2.22,-2.77,-3.35,-4.00,-4.67,-5.40,-6.14,-6.94,-7.75,-8.59,-9.45,-10.32,-11.21,-12.13,-13.05,-13.97,-14.89,-15.81,-16.73,-17.64,-18.53,-19.42,-20.30,-21.15,-21.98,-22.79,-23.56,-24.30,-25.03,-25.70,-26.34,-26.93,-27.48,-27.99,-28.44,-28.84,-29.18,-29.47,-29.70,-29.86,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.95,-29.80,-29.56,-29.24,-28.82,-28.34,-27.78,-27.15,-26.47,-25.72,-24.92,-24.07,-23.19,-22.25,-21.30,-20.30,-19.30,-18.27,-17.23,-16.19,-15.13,-14.08,-13.03,-12.01,-10.98,-9.97,-9.00,-8.06,-7.13,-6.25,-5.42,-4.62,-3.88,-3.20,-2.56,-1.99,-1.48,-1.04,-0.68,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.06,-0.11,-0.17,-0.24,-0.33,-0.43,-0.54,-0.67,-0.81,-0.96,-1.12,-1.30,-1.49,-1.69,-1.90,-2.13,-2.36,-2.61,-2.87,-3.14,-3.43,-3.73,-4.03,-4.35,-4.68,-5.02,-5.37,-5.74,-6.12,-6.50,-6.89,-7.31,-7.73,-8.16,-8.60,-9.05,-9.51,-9.98,-10.47,-10.96,-11.47,-11.99,-12.51,-13.05,-13.60,-14.16,-14.73,-15.31,-15.89,-16.49,-17.10,-17.72,-18.36,-19,-19.69,-20.35,-20.98,-21.58,-22.15,-22.71,-23.24,-23.75,-24.23,-24.70,-25.14,-25.56,-25.96,-26.33,-26.69,-27.02,-27.34,-27.64,-27.92,-28.18,-28.42,-28.64,-28.85,-29.04,-29.21,-29.36,-29.49,-29.61,-29.72,-29.80,-29.88,-29.93,-29.97,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.86,-29.46,-28.81,-27.93,-26.86,-25.56,-24.08,-22.43,-20.63,-18.68,-16.61,-14.43,-12.16,-9.85,-7.44,-4.99,-2.50,0,2.50,4.99,7.44,9.85,12.16,14.43,16.61,18.68,20.63,22.43,24.08,25.56,26.86,27.93,28.81,29.46,29.86,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.95,29.80,29.56,29.24,28.82,28.34,27.78,27.15,26.47,25.72,24.92,24.07,23.19,22.25,21.30,20.30,19.30,18.27,17.23,16.19,15.13,14.08,13.03,12.01,10.98,9.97,9.00,8.06,7.13,6.25,5.42,4.62,3.88,3.20,2.56,1.99,1.48,1.04,0.68,0.38,0.17,0.04,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.24,0.27,0.30,0.33,0.36,0.38,0.40,0.41,0.42,0.42,0.42,0.41,0.40,0.38,0.36,0.33,0.30,0.27,0.24,0.20,0.15,0.11,0.08,0.05,0.02,0.01,0.00,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.20,0.19,0.18,0.16,0.15,0.13,0.11,0.09,0.08,0.06,0.05,0.03,0.02,0.01,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.63,-0.63,-0.63,-0.63,-0.64,-0.64,-0.65,-0.65,-0.65,-0.66,-0.67,-0.67,-0.68,-0.68,-0.69,-0.70,-0.70,-0.71,-0.72,-0.72,-0.73,-0.74,-0.75,-0.75,-0.76,-0.77,-0.78,-0.79,-0.79,-0.80,-0.81,-0.82,-0.83,-0.83,-0.84,-0.85,-0.86,-0.86,-0.87,-0.88,-0.89,-0.89,-0.90,-0.91,-0.92,-0.92,-0.93,-0.93,-0.94,-0.95,-0.95,-0.96,-0.96,-0.97,-0.97,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.98,-0.97,-0.96,-0.96,-0.95,-0.94,-0.93,-0.92,-0.91,-0.90,-0.89,-0.88,-0.87,-0.86,-0.85,-0.84,-0.82,-0.81,-0.80,-0.79,-0.77,-0.76,-0.75,-0.74,-0.73,-0.71,-0.70,-0.69,-0.68,-0.66,-0.65,-0.64,-0.63,-0.62,-0.61,-0.60,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.53,-0.53,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.56,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.57,0.54,0.51,0.46,0.42,0.37,0.33,0.28,0.24,0.19,0.15,0.11,0.08,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.21,0.29,0.37,0.45,0.53,0.61,0.68,0.74,0.80,0.84,0.87,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.80,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.92,-0.94,-0.96,-0.97,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.93,-0.92,-0.92,-0.92,-0.91,-0.91,-0.90,-0.90,-0.90,-0.89,-0.89,-0.88,-0.88,-0.88,-0.87,-0.87,-0.86,-0.86,-0.86,-0.85,-0.85,-0.85,-0.84,-0.84,-0.83,-0.83,-0.83,-0.82,-0.82,-0.82,-0.81,-0.81,-0.81,-0.81,-0.80,-0.80,-0.80,-0.80,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.34,0.34,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.28,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.27,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.43,0.44,0.44,0.44,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_FORM=-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.80,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.92,-0.94,-0.96,-0.97,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.90,-0.90,-0.90,-0.90,-0.90,-0.89,-0.89,-0.89,-0.89,-0.89,-0.88,-0.88,-0.88,-0.88,-0.88,-0.87,-0.87,-0.87,-0.87,-0.87,-0.86,-0.86,-0.86,-0.86,-0.86,-0.85,-0.85,-0.85,-0.85,-0.85,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.81,-0.81,-0.81,-0.81,-0.81,-0.81,-0.81,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.57,0.54,0.51,0.46,0.42,0.37,0.33,0.28,0.24,0.19,0.15,0.11,0.08,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.21,0.29,0.37,0.45,0.53,0.61,0.68,0.74,0.80,0.84,0.87,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.04,0.04,0.05,0.05,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.17,0.17,0.18,0.19,0.19,0.20,0.21,0.21,0.22,0.23,0.24,0.24,0.25,0.26,0.26,0.27,0.28,0.29,0.29,0.30,0.31,0.32,0.32,0.33,0.34,0.35,0.35,0.36,0.37,0.38,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.43,0.44,0.45,0.45,0.46,0.47,0.47,0.48,0.49,0.49,0.50,0.51,0.51,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.51,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.40,0.39,0.38,0.37,0.36,0.34,0.33,0.32,0.31,0.30,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.09,-0.09,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.00,0,0.00,0.01,0.01,0.01,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.04,0.03,0.01,-0.00,-0.02,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.21,-0.17,-0.13,-0.10,-0.09,-0.12,-0.16,-0.20,-0.23,-0.24,-0.21,-0.17,-0.14,-0.13,-0.16,-0.20,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.20,-0.20,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.33,-0.36,-0.40,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.66,-0.70,-0.73,-0.76,-0.80,-0.82,-0.85,-0.88,-0.90,-0.92,-0.94,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-1,-0.99,-0.98,-0.97,-0.95,-0.94,-0.93,-0.92,-0.92,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-0.99,-0.99,-0.97,-0.96,-0.94,-0.93,-0.91,-0.88,-0.86,-0.83,-0.80,-0.77,-0.74,-0.71,-0.68,-0.64,-0.61,-0.57,-0.54,-0.50,-0.47,-0.43,-0.40,-0.37,-0.33,-0.30,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_07.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.43,-0.45,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.58,-0.59,-0.61,-0.62,-0.64,-0.65,-0.66,-0.67,-0.69,-0.70,-0.71,-0.71,-0.72,-0.73,-0.73,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.74,-0.74,-0.72,-0.70,-0.68,-0.67,-0.64,-0.62,-0.61,-0.59,-0.58,-0.56,-0.55,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.64,-0.65,-0.66,-0.67,-0.68,-0.70,-0.71,-0.72,-0.73,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.77,-0.78,-0.80,-0.81,-0.83,-0.85,-0.87,-0.89,-0.91,-0.93,-0.95,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.90,-0.87,-0.84,-0.82,-0.79,-0.75,-0.72,-0.69,-0.65,-0.63,-0.61,-0.61,-0.60,-0.60,-0.60,-0.61,-0.65,-0.70,-0.74,-0.79,-0.82,-0.86,-0.89,-0.92,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.94,-0.93,-0.92,-0.90,-0.89,-0.88,-0.86,-0.85,-0.83,-0.81,-0.80,-0.78,-0.76,-0.75,-0.73,-0.71,-0.69,-0.67,-0.65,-0.63,-0.61,-0.59,-0.57,-0.55,-0.52,-0.50,-0.48,-0.46,-0.44,-0.42,-0.40,-0.37,-0.35,-0.33,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.03,-0.01,0.00,0.02,0.03,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.13,-0.30,-0.53,-0.81,-1.15,-1.54,-1.98,-2.47,-3.00,-3.57,-4.19,-4.84,-5.52,-6.23,-6.98,-7.75,-8.54,-9.35,-10.18,-11.01,-11.86,-12.72,-13.60,-14.45,-15.33,-16.19,-17.06,-17.91,-18.77,-19.59,-20.40,-21.21,-22.00,-22.76,-23.49,-24.20,-24.88,-25.52,-26.13,-26.70,-27.24,-27.75,-28.19,-28.60,-28.96,-29.27,-29.53,-29.73,-29.88,-29.97,-30,-29.97,-29.87,-29.70,-29.48,-29.20,-28.87,-28.48,-28.05,-27.57,-27.06,-26.49,-25.89,-25.26,-24.60,-23.91,-23.19,-22.45,-21.68,-20.90,-20.10,-19.30,-18.47,-17.64,-16.80,-15.94,-15.11,-14.25,-13.42,-12.58,-11.75,-10.94,-10.14,-9.34,-8.56,-7.80,-7.07,-6.36,-5.68,-5.02,-4.39,-3.79,-3.23,-2.71,-2.22,-1.78,-1.38,-1.03,-0.73,-0.47,-0.27,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.67,1.01,1.41,1.86,2.36,2.88,3.46,4.05,4.66,5.29,5.94,6.59,7.25,7.89,8.53,9.15,9.76,10.35,10.91,11.43,11.93,12.37,12.78,13.13,13.43,13.67,13.85,13.96,14,13.99,13.97,13.94,13.89,13.84,13.77,13.68,13.59,13.49,13.37,13.25,13.12,12.97,12.82,12.66,12.50,12.32,12.13,11.95,11.75,11.54,11.33,11.12,10.90,10.67,10.44,10.20,9.96,9.72,9.47,9.23,8.98,8.72,8.47,8.20,7.95,7.69,7.43,7.16,6.90,6.64,6.38,6.12,5.86,5.60,5.35,5.09,4.84,4.59,4.35,4.11,3.87,3.64,3.41,3.19,2.96,2.75,2.54,2.34,2.14,1.95,1.77,1.59,1.42,1.26,1.11,0.97,0.83,0.70,0.59,0.48,0.38,0.30,0.22,0.15,0.10,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.97,-9.90,-9.78,-9.62,-9.42,-9.20,-8.94,-8.65,-8.35,-8.02,-7.69,-7.34,-6.98,-6.61,-6.23,-5.86,-5.49,-5.13,-4.77,-4.42,-4.09,-3.77,-3.47,-3.18,-2.93,-2.70,-2.49,-2.32,-2.19,-2.08,-2.02,-2,-2.01,-2.02,-2.05,-2.08,-2.13,-2.19,-2.25,-2.32,-2.40,-2.49,-2.59,-2.69,-2.80,-2.91,-3.03,-3.16,-3.29,-3.43,-3.58,-3.72,-3.87,-4.03,-4.19,-4.35,-4.51,-4.68,-4.85,-5.02,-5.19,-5.36,-5.54,-5.71,-5.89,-6.06,-6.24,-6.42,-6.59,-6.76,-6.94,-7.11,-7.27,-7.44,-7.60,-7.76,-7.92,-8.07,-8.22,-8.37,-8.51,-8.65,-8.78,-8.91,-9.03,-9.14,-9.25,-9.36,-9.45,-9.54,-9.63,-9.70,-9.77,-9.83,-9.88,-9.92,-9.96,-9.98,-10.00,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.96,-9.91,-9.84,-9.75,-9.65,-9.54,-9.41,-9.27,-9.12,-8.97,-8.81,-8.64,-8.46,-8.29,-8.11,-7.93,-7.76,-7.58,-7.41,-7.24,-7.08,-6.93,-6.78,-6.65,-6.52,-6.41,-6.30,-6.22,-6.14,-6.08,-6.04,-6.01,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.17,0.21,0.25,0.29,0.33,0.38,0.42,0.47,0.52,0.56,0.61,0.65,0.70,0.74,0.78,0.82,0.85,0.88,0.91,0.94,0.96,0.98,0.99,1.00,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.91,0.90,0.89,0.87,0.85,0.84,0.82,0.80,0.78,0.77,0.75,0.73,0.71,0.69,0.67,0.64,0.62,0.60,0.58,0.56,0.54,0.51,0.49,0.47,0.45,0.43,0.40,0.38,0.36,0.34,0.32,0.30,0.28,0.26,0.24,0.22,0.20,0.19,0.17,0.15,0.14,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.34,0.33,0.32,0.32,0.31,0.31,0.30,0.30,0.30,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.10,-0.38,-0.81,-1.38,-2.06,-2.82,-3.65,-4.51,-5.39,-6.27,-7.12,-7.92,-8.67,-9.33,-9.91,-10.37,-10.71,-10.93,-11,-10.86,-10.47,-9.85,-9.07,-8.14,-7.12,-6.05,-4.95,-3.88,-2.86,-1.93,-1.15,-0.53,-0.14,0,-0.20,-0.81,-1.74,-2.85,-5.47,-8.12,-10.39,-12.25,-15.00,-17.41,-19.57,-21.50,-23.19,-24.67,-25.95,-27.04,-27.95,-28.70,-29.26,-29.67,-29.92,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.99,-29.94,-29.87,-29.77,-29.65,-29.50,-29.32,-29.13,-28.90,-28.66,-28.39,-28.11,-27.80,-27.48,-27.14,-26.78,-26.40,-26.00,-25.60,-25.17,-24.73,-24.29,-23.82,-23.35,-22.86,-22.37,-21.86,-21.35,-20.84,-20.30,-19.77,-19.23,-18.69,-18.14,-17.58,-17.03,-16.47,-15.91,-15.35,-14.79,-14.23,-13.67,-13.11,-12.56,-12.01,-11.46,-10.92,-10.38,-9.84,-9.33,-8.81,-8.30,-7.79,-7.30,-6.83,-6.35,-5.89,-5.45,-5.01,-4.59,-4.18,-3.79,-3.41,-3.05,-2.71,-2.38,-2.07,-1.78,-1.51,-1.26,-1.03,-0.82,-0.63,-0.47,-0.33,-0.21,-0.12,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.92,-29.68,-29.30,-28.79,-28.15,-27.39,-26.53,-25.57,-24.55,-23.43,-22.27,-21.04,-19.78,-18.49,-17.17,-15.83,-14.49,-13.18,-11.86,-10.58,-9.33,-8.12,-6.98,-5.87,-4.85,-3.91,-3.04,-2.28,-1.61,-1.05,-0.60,-0.27,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.05,0.10,0.17,0.23,0.29,0.34,0.38,0.40,0.41,0.40,0.36,0.32,0.27,0.21,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.15,-0.18,-0.22,-0.24,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.40,-0.41,-0.42,-0.43,-0.44,-0.45,-0.46,-0.47,-0.47,-0.48,-0.49,-0.50,-0.51,-0.51,-0.52,-0.53,-0.53,-0.54,-0.54,-0.55,-0.55,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59\nPARAM_MOUTH_FORM=-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.66,-0.66,-0.66,-0.67,-0.67,-0.68,-0.68,-0.69,-0.69,-0.69,-0.70,-0.70,-0.70,-0.71,-0.71,-0.71,-0.72,-0.72,-0.72,-0.73,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.75,-0.72,-0.68,-0.65,-0.62,-0.58,-0.54,-0.51,-0.49,-0.46,-0.43,-0.41,-0.39,-0.37,-0.35,-0.34,-0.33,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.33,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.40,-0.41,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.53,-0.55,-0.57,-0.59,-0.61,-0.63,-0.65,-0.67,-0.70,-0.72,-0.75,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.79,-0.80,-0.80,-0.80,-0.81,-0.81,-0.82,-0.82,-0.83,-0.83,-0.84,-0.84,-0.85,-0.86,-0.86,-0.87,-0.88,-0.89,-0.89,-0.90,-0.91,-0.92,-0.92,-0.93,-0.94,-0.95,-0.95,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.93,-0.92,-0.91,-0.91,-0.90,-0.90,-0.89,-0.88,-0.88,-0.87,-0.86,-0.86,-0.85,-0.84,-0.84,-0.83,-0.82,-0.82,-0.81,-0.80,-0.80,-0.79,-0.78,-0.78,-0.77,-0.76,-0.76,-0.75,-0.75,-0.74,-0.73,-0.73,-0.72,-0.72,-0.71,-0.71,-0.70,-0.70,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.66,-0.66,-0.66,-0.66,-0.65,-0.65,-0.65,-0.65,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.61,0.29,0.07,0,0.21,0.54,0.78,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.81,0.61,0.29,0.07,0,0.19,0.51,0.73,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.80,0.81,0.82,0.83,0.83,0.84,0.85,0.86,0.86,0.87,0.87,0.87,0.66,0.31,0.08,0,0.20,0.54,0.77,0.85,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.83,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.13,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.27,-0.29,-0.30,-0.32,-0.33,-0.35,-0.37,-0.38,-0.40,-0.41,-0.43,-0.44,-0.45,-0.47,-0.48,-0.50,-0.51,-0.52,-0.53,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.62,-0.63,-0.64,-0.64,-0.65,-0.65,-0.65,-0.66,-0.66,-0.66,-0.66,-0.66,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.68,-0.68,-0.68,-0.68,-0.69,-0.69,-0.69,-0.70,-0.70,-0.70,-0.71,-0.71,-0.72,-0.72,-0.73,-0.73,-0.74,-0.74,-0.75,-0.75,-0.76,-0.76,-0.77,-0.78,-0.78,-0.79,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80\nPARAM_BROW_L_SIDE=-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.16,-0.19,-0.22,-0.25,-0.26,-0.28,-0.30,-0.31,-0.32,-0.34,-0.35,-0.37,-0.38,-0.39,-0.40,-0.41,-0.42,-0.44,-0.45,-0.46,-0.46,-0.47,-0.48,-0.49,-0.50,-0.51,-0.51,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.56,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.43,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.38,0.37,0.36,0.36,0.35,0.35,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.48,-0.50,-0.52,-0.54,-0.55,-0.57,-0.59,-0.60,-0.62,-0.63,-0.64,-0.66,-0.67,-0.68,-0.69,-0.70,-0.71,-0.72,-0.72,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.73,-0.71,-0.69,-0.68,-0.66,-0.64,-0.62,-0.60,-0.59,-0.58,-0.56,-0.55,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.61,-0.62,-0.63,-0.64,-0.66,-0.67,-0.68,-0.69,-0.70,-0.72,-0.73,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.75,-0.76,-0.77,-0.79,-0.81,-0.83,-0.85,-0.87,-0.89,-0.91,-0.93,-0.95,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.95,-0.93,-0.91,-0.89,-0.86,-0.83,-0.80,-0.76,-0.73,-0.69,-0.66,-0.61,-0.59,-0.58,-0.57,-0.56,-0.56,-0.56,-0.57,-0.62,-0.67,-0.72,-0.76,-0.81,-0.84,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.94,-0.93,-0.91,-0.90,-0.89,-0.87,-0.86,-0.84,-0.83,-0.81,-0.79,-0.78,-0.76,-0.74,-0.72,-0.70,-0.68,-0.66,-0.64,-0.62,-0.60,-0.58,-0.56,-0.54,-0.52,-0.49,-0.47,-0.45,-0.43,-0.41,-0.39,-0.36,-0.34,-0.32,-0.30,-0.28,-0.26,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.06,-0.04,-0.03,-0.01,0.01,0.02,0.04,0.05,0.06,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.17,-0.18,-0.18,-0.19,-0.20,-0.20,-0.21,-0.21,-0.22,-0.22,-0.22,-0.23,-0.23,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.29,-0.29,-0.30,-0.30,-0.31,-0.32,-0.33,-0.34,-0.34,-0.35,-0.37,-0.38,-0.39,-0.40,-0.41,-0.43,-0.44,-0.45,-0.47,-0.48,-0.50,-0.52,-0.53,-0.55,-0.57,-0.59,-0.60,-0.62,-0.64,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.61,0.29,0.07,0,0.21,0.54,0.78,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.81,0.61,0.29,0.07,0,0.19,0.51,0.73,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.81,0.81,0.82,0.83,0.84,0.85,0.86,0.86,0.87,0.88,0.88,0.88,0.67,0.32,0.08,0,0.21,0.54,0.78,0.85,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.76,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.18,0.19,0.20,0.22,0.23,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.35,0.37,0.38,0.40,0.42,0.43,0.45,0.46,0.48,0.49,0.51,0.53,0.54,0.56,0.57,0.59,0.60,0.61,0.63,0.64,0.66,0.67,0.68,0.70,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.80,0.81,0.81,0.82,0.83,0.83,0.84,0.84,0.84,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85\nPARAM_EYE_BALL_X=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.90,-0.80,-0.67,-0.53,-0.38,-0.23,-0.08,0.05,0.18,0.28,0.36,0.41,0.43,0.43,0.43,0.41,0.38,0.32,0.24,0.15,0.06,-0.02,-0.10,-0.17,-0.25,-0.32,-0.39,-0.45,-0.51,-0.57,-0.63,-0.68,-0.73,-0.77,-0.81,-0.85,-0.89,-0.92,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.93,-0.92,-0.91,-0.88,-0.84,-0.77,-0.68,-0.61,-0.55,-0.45,-0.35,-0.28,-0.23,-0.16,-0.10,-0.04,0.01,0.05,0.09,0.12,0.14,0.16,0.17,0.18,0.19,0.19,0.19,0.18,0.18,0.16,0.15,0.13,0.11,0.09,0.07,0.04,0.01,-0.02,-0.05,-0.09,-0.12,-0.16,-0.20,-0.24,-0.29,-0.33,-0.38,-0.43,-0.48,-0.53,-0.58,-0.63,-0.69,-0.74,-0.80,-0.86,-0.90,-0.91,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.90,-0.89,-0.88,-0.86,-0.84,-0.82,-0.79,-0.76,-0.73,-0.70,-0.67,-0.63,-0.59,-0.54,-0.50,-0.45,-0.40,-0.35,-0.30,-0.26,-0.21,-0.17,-0.14,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.01,-0.02,-0.03,-0.05,-0.06,-0.08,-0.10,-0.12,-0.14,-0.17,-0.19,-0.22,-0.24,-0.27,-0.30,-0.33,-0.36,-0.39,-0.42,-0.45,-0.48,-0.51,-0.54,-0.57,-0.60,-0.62,-0.65,-0.67,-0.70,-0.72,-0.74,-0.76,-0.78,-0.79,-0.81,-0.82,-0.83,-0.83,-0.84,-0.84,-0.84,-0.83,-0.82,-0.81,-0.80,-0.78,-0.76,-0.74,-0.71,-0.69,-0.66,-0.63,-0.60,-0.57,-0.54,-0.51,-0.47,-0.44,-0.41,-0.37,-0.34,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.09,-0.09,-0.10,-0.11,-0.11,-0.12,-0.13,-0.14,-0.15,-0.16,-0.17,-0.17,-0.18,-0.19,-0.19,-0.20,-0.20,-0.21,-0.21,-0.21,-0.20,-0.20,-0.19,-0.17,-0.16,-0.15,-0.14,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.22,-0.23,-0.24,-0.26,-0.28,-0.30,-0.33,-0.35,-0.37,-0.40,-0.42,-0.44,-0.46,-0.47,-0.48,-0.49,-0.50,-0.50,-0.49,-0.48,-0.45,-0.41,-0.37,-0.32,-0.27,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,-0.00,-0.04,-0.07,-0.10,-0.13,-0.16,-0.19,-0.21,-0.23,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.36,-0.37,-0.39,-0.41,-0.43,-0.45,-0.47,-0.50,-0.52,-0.54,-0.57,-0.59,-0.62,-0.65,-0.67,-0.70,-0.72,-0.75,-0.77,-0.79,-0.82,-0.84,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1.00,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.95,-0.93,-0.90,-0.88,-0.85,-0.82,-0.79,-0.75,-0.72,-0.68,-0.64,-0.60,-0.56,-0.52,-0.49,-0.45,-0.41,-0.37,-0.33,-0.30,-0.26,-0.23,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.05,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_08.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_ANGLE_Z=0,-0.03,-0.11,-0.25,-0.44,-0.68,-0.96,-1.28,-1.65,-2.06,-2.51,-2.99,-3.50,-4.04,-4.61,-5.21,-5.84,-6.49,-7.15,-7.82,-8.52,-9.22,-9.94,-10.67,-11.40,-12.13,-12.87,-13.60,-14.33,-15.06,-15.78,-16.48,-17.18,-17.85,-18.51,-19.16,-19.79,-20.39,-20.96,-21.50,-22.01,-22.49,-22.94,-23.35,-23.72,-24.04,-24.32,-24.56,-24.75,-24.89,-24.97,-25,-25.00,-25.00,-25.00,-25.00,-24.99,-24.98,-24.97,-24.96,-24.94,-24.92,-24.89,-24.85,-24.81,-24.77,-24.72,-24.65,-24.59,-24.51,-24.42,-24.33,-24.23,-24.11,-23.99,-23.85,-23.71,-23.55,-23.38,-23.20,-23,-22.75,-22.47,-22.14,-21.78,-21.40,-20.99,-20.55,-20.09,-19.62,-19.13,-18.63,-18.13,-17.61,-17.10,-16.58,-16.06,-15.55,-15.04,-14.55,-14.06,-13.59,-13.13,-12.70,-12.28,-11.90,-11.53,-11.19,-10.88,-10.61,-10.37,-10.16,-10,-9.85,-9.70,-9.57,-9.44,-9.32,-9.21,-9.10,-9.00,-8.91,-8.82,-8.73,-8.65,-8.57,-8.49,-8.41,-8.34,-8.27,-8.20,-8.13,-8.06,-7.99,-7.92,-7.85,-7.77,-7.70,-7.62,-7.54,-7.46,-7.37,-7.28,-7.19,-7.09,-6.99,-6.93,-6.88,-6.84,-6.79,-6.72,-6.61,-6.47,-6.29,-6.05,-5.76,-5.41,-5,-4.47,-3.92,-3.36,-2.79,-2.20,-1.62,-1.01,-0.40,0.23,0.85,1.48,2.12,2.77,3.42,4.06,4.72,5.37,6.03,6.70,7.36,8.01,8.68,9.33,9.99,10.65,11.29,11.94,12.58,13.21,13.83,14.46,15.07,15.68,16.28,16.86,17.44,18.01,18.56,19.10,19.63,20.16,20.66,21.14,21.62,22.08,22.52,22.95,23.35,23.74,24.11,24.46,24.80,25.11,25.40,25.66,25.91,26.13,26.33,26.51,26.65,26.78,26.87,26.94,26.99,27,26.99,26.98,26.95,26.91,26.86,26.80,26.72,26.64,26.54,26.43,26.31,26.18,26.04,25.88,25.72,25.54,25.35,25.15,24.94,24.72,24.48,24.24,23.98,23.71,23.43,23.14,22.83,22.52,22.19,21.84,21.49,21.13,20.76,20.38,19.97,19.56,19.14,18.71,18.27,17.81,17.34,16.86,16.36,15.86,15.35,14.82,14.28,13.73,13.16,12.59,12,11.40,10.81,10.24,9.69,9.15,8.62,8.12,7.62,7.14,6.68,6.24,5.80,5.39,4.99,4.60,4.23,3.89,3.55,3.22,2.92,2.63,2.36,2.10,1.86,1.63,1.41,1.22,1.03,0.87,0.71,0.58,0.45,0.35,0.25,0.18,0.11,0.06,0.03,0.01,0\nPARAM_BODY_ANGLE_X=0,-0.01,-0.05,-0.12,-0.20,-0.31,-0.43,-0.58,-0.74,-0.91,-1.09,-1.29,-1.49,-1.71,-1.93,-2.15,-2.38,-2.62,-2.85,-3.09,-3.32,-3.56,-3.78,-4.01,-4.22,-4.44,-4.64,-4.83,-5.02,-5.19,-5.34,-5.49,-5.62,-5.73,-5.82,-5.90,-5.95,-5.99,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.00,-6.00,-5.99,-5.99,-5.98,-5.97,-5.96,-5.94,-5.93,-5.91,-5.89,-5.87,-5.85,-5.82,-5.79,-5.76,-5.73,-5.70,-5.67,-5.63,-5.59,-5.55,-5.51,-5.46,-5.42,-5.37,-5.32,-5.26,-5.21,-5.15,-5.09,-5.03,-4.97,-4.91,-4.84,-4.77,-4.70,-4.62,-4.55,-4.47,-4.39,-4.31,-4.22,-4.14,-4.05,-3.96,-3.86,-3.77,-3.67,-3.57,-3.47,-3.36,-3.26,-3.15,-3.04,-2.92,-2.81,-2.69,-2.57,-2.45,-2.32,-2.19,-2.07,-1.95,-1.83,-1.71,-1.59,-1.47,-1.36,-1.24,-1.13,-1.02,-0.91,-0.80,-0.69,-0.58,-0.47,-0.37,-0.26,-0.16,-0.06,0.04,0.14,0.23,0.33,0.43,0.52,0.61,0.70,0.79,0.88,0.97,1.06,1.14,1.23,1.31,1.39,1.47,1.55,1.63,1.70,1.78,1.85,1.92,2.00,2.07,2.14,2.20,2.27,2.34,2.40,2.46,2.52,2.58,2.64,2.70,2.76,2.81,2.87,2.92,2.97,3.02,3.07,3.12,3.17,3.21,3.26,3.30,3.34,3.38,3.42,3.46,3.49,3.53,3.56,3.60,3.63,3.66,3.69,3.71,3.74,3.77,3.79,3.81,3.83,3.85,3.87,3.89,3.91,3.92,3.93,3.95,3.96,3.97,3.98,3.98,3.99,3.99,4.00,4.00,4,4.00,3.99,3.98,3.96,3.94,3.91,3.88,3.84,3.80,3.76,3.71,3.66,3.60,3.54,3.48,3.42,3.35,3.28,3.21,3.14,3.06,2.99,2.91,2.83,2.74,2.66,2.58,2.49,2.40,2.32,2.23,2.14,2.06,1.97,1.88,1.79,1.71,1.62,1.53,1.45,1.36,1.28,1.20,1.12,1.04,0.96,0.89,0.82,0.74,0.68,0.61,0.55,0.49,0.43,0.37,0.32,0.27,0.23,0.19,0.15,0.12,0.09,0.06,0.04,0.02,0.01,0.00,0\nPARAM_ANGLE_Y=0,-0.06,-0.25,-0.55,-0.95,-1.44,-2.02,-2.68,-3.43,-4.24,-5.09,-6.01,-6.98,-7.97,-8.99,-10.05,-11.13,-12.22,-13.30,-14.41,-15.51,-16.59,-17.65,-18.70,-19.71,-20.70,-21.65,-22.55,-23.41,-24.21,-24.94,-25.61,-26.22,-26.73,-27.18,-27.53,-27.79,-27.95,-28,-28.00,-27.99,-27.98,-27.96,-27.94,-27.92,-27.89,-27.85,-27.81,-27.77,-27.72,-27.67,-27.62,-27.56,-27.50,-27.44,-27.37,-27.30,-27.22,-27.15,-27.06,-26.98,-26.89,-26.80,-26.71,-26.62,-26.52,-26.42,-26.32,-26.22,-26.11,-26.01,-25.90,-25.78,-25.67,-25.56,-25.44,-25.32,-25.20,-25.08,-24.96,-24.84,-24.72,-24.59,-24.47,-24.34,-24.22,-24.09,-23.96,-23.84,-23.71,-23.58,-23.45,-23.33,-23.20,-23.07,-22.94,-22.82,-22.69,-22.57,-22.44,-22.32,-22.20,-22.07,-21.95,-21.83,-21.71,-21.60,-21.48,-21.37,-21.25,-21.14,-21.03,-20.93,-20.82,-20.72,-20.62,-20.52,-20.42,-20.33,-20.24,-20.15,-20.06,-19.98,-19.90,-19.82,-19.74,-19.67,-19.60,-19.54,-19.48,-19.42,-19.36,-19.31,-19.26,-19.22,-19.18,-19.14,-19.11,-19.08,-19.06,-19.04,-19.02,-19.01,-19.00,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-18.95,-18.80,-18.57,-18.24,-17.85,-17.37,-16.83,-16.24,-15.57,-14.86,-14.12,-13.32,-12.50,-11.66,-10.79,-9.91,-9.01,-8.11,-7.21,-6.33,-5.44,-4.59,-3.75,-2.94,-2.16,-1.41,-0.72,-0.07,0.54,1.09,1.57,1.99,2.34,2.63,2.83,2.96,3,2.99,2.97,2.93,2.87,2.80,2.71,2.61,2.50,2.37,2.23,2.08,1.92,1.74,1.55,1.36,1.15,0.93,0.70,0.47,0.23,-0.03,-0.29,-0.55,-0.83,-1.11,-1.39,-1.69,-1.99,-2.29,-2.59,-2.90,-3.22,-3.53,-3.85,-4.17,-4.49,-4.81,-5.13,-5.46,-5.79,-6.10,-6.43,-6.75,-7.07,-7.38,-7.70,-8.01,-8.32,-8.62,-8.92,-9.22,-9.51,-9.79,-10.07,-10.34,-10.61,-10.87,-11.12,-11.36,-11.60,-11.83,-12.04,-12.25,-12.45,-12.64,-12.81,-12.98,-13.14,-13.28,-13.41,-13.53,-13.64,-13.73,-13.81,-13.88,-13.93,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.37,-13.11,-12.81,-12.48,-12.11,-11.72,-11.30,-10.85,-10.39,-9.90,-9.41,-8.90,-8.39,-7.86,-7.33,-6.81,-6.27,-5.75,-5.24,-4.74,-4.25,-3.77,-3.31,-2.87,-2.45,-2.06,-1.70,-1.36,-1.06,-0.79,-0.56,-0.36,-0.21,-0.09,-0.02,0\nPARAM_ANGLE_X=0,-0.06,-0.22,-0.49,-0.85,-1.28,-1.81,-2.40,-3.07,-3.78,-4.54,-5.36,-6.23,-7.11,-8.03,-8.97,-9.93,-10.91,-11.88,-12.87,-13.85,-14.81,-15.76,-16.69,-17.60,-18.48,-19.33,-20.14,-20.90,-21.62,-22.27,-22.87,-23.41,-23.87,-24.27,-24.58,-24.81,-24.95,-25,-25.00,-24.98,-24.96,-24.93,-24.89,-24.84,-24.78,-24.72,-24.65,-24.57,-24.48,-24.38,-24.28,-24.17,-24.06,-23.94,-23.81,-23.67,-23.53,-23.39,-23.23,-23.07,-22.91,-22.74,-22.57,-22.39,-22.21,-22.02,-21.83,-21.64,-21.44,-21.23,-21.02,-20.81,-20.60,-20.38,-20.16,-19.94,-19.72,-19.49,-19.26,-19.03,-18.80,-18.56,-18.33,-18.09,-17.85,-17.61,-17.37,-17.13,-16.89,-16.65,-16.41,-16.17,-15.93,-15.69,-15.45,-15.21,-14.97,-14.74,-14.50,-14.26,-14.04,-13.80,-13.58,-13.35,-13.12,-12.91,-12.68,-12.47,-12.26,-12.05,-11.84,-11.64,-11.44,-11.25,-11.06,-10.87,-10.69,-10.51,-10.34,-10.17,-10.00,-9.85,-9.69,-9.55,-9.41,-9.27,-9.14,-9.02,-8.90,-8.79,-8.68,-8.59,-8.49,-8.41,-8.34,-8.27,-8.21,-8.15,-8.11,-8.07,-8.04,-8.02,-8.00,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.98,-7.91,-7.81,-7.67,-7.49,-7.28,-7.04,-6.78,-6.48,-6.15,-5.81,-5.45,-5.07,-4.67,-4.27,-3.85,-3.42,-2.98,-2.54,-2.10,-1.65,-1.21,-0.77,-0.33,0.09,0.51,0.92,1.31,1.69,2.06,2.40,2.72,3.03,3.31,3.57,3.79,4,4.20,4.40,4.59,4.77,4.96,5.14,5.31,5.48,5.65,5.81,5.97,6.12,6.27,6.42,6.56,6.70,6.83,6.97,7.09,7.22,7.34,7.45,7.57,7.68,7.79,7.89,7.99,8.09,8.18,8.27,8.36,8.45,8.53,8.61,8.68,8.76,8.83,8.90,8.97,9.03,9.09,9.15,9.20,9.26,9.31,9.36,9.40,9.45,9.49,9.53,9.57,9.60,9.64,9.67,9.70,9.73,9.76,9.78,9.80,9.83,9.85,9.87,9.88,9.90,9.91,9.93,9.94,9.95,9.96,9.97,9.97,9.98,9.99,9.99,9.99,10.00,10.00,10.00,10,9.98,9.92,9.83,9.71,9.55,9.36,9.15,8.91,8.65,8.37,8.07,7.75,7.42,7.07,6.72,6.35,5.99,5.61,5.23,4.86,4.48,4.11,3.74,3.39,3.03,2.69,2.36,2.05,1.75,1.47,1.21,0.97,0.76,0.56,0.40,0.26,0.15,0.07,0.02,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.37,0.10,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.63,0.90,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.37,0.10,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,-0.00,-0.00,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.11,-0.12,-0.14,-0.16,-0.18,-0.19,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.34,-0.36,-0.38,-0.39,-0.41,-0.42,-0.44,-0.45,-0.46,-0.47,-0.48,-0.48,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.46,-0.46,-0.45,-0.45,-0.45,-0.44,-0.44,-0.43,-0.42,-0.42,-0.41,-0.41,-0.40,-0.40,-0.39,-0.38,-0.38,-0.37,-0.36,-0.36,-0.35,-0.34,-0.33,-0.33,-0.32,-0.31,-0.30,-0.30,-0.29,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,0.00,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.05,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.08,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.08,0.09,0.11,0.13,0.14,0.16,0.17,0.19,0.20,0.21,0.22,0.24,0.25,0.25,0.26,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.24,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.11,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0\nPARAM_EYE_BALL_Y=0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.10,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.28,-0.28,-0.29,-0.30,-0.30,-0.31,-0.32,-0.32,-0.33,-0.34,-0.34,-0.35,-0.36,-0.36,-0.37,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.41,-0.41,-0.42,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.46,-0.46,-0.46,-0.47,-0.47,-0.48,-0.48,-0.48,-0.49,-0.49,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.52,-0.53,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.56,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.56,-0.51,-0.45,-0.38,-0.31,-0.24,-0.17,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.12,-0.15,-0.19,-0.22,-0.26,-0.29,-0.33,-0.36,-0.40,-0.43,-0.47,-0.50,-0.52,-0.55,-0.57,-0.59,-0.61,-0.62,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.62,-0.62,-0.62,-0.62,-0.62,-0.61,-0.61,-0.61,-0.60,-0.60,-0.60,-0.59,-0.59,-0.59,-0.58,-0.58,-0.57,-0.57,-0.56,-0.56,-0.55,-0.55,-0.54,-0.53,-0.53,-0.52,-0.52,-0.51,-0.50,-0.50,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.45,-0.44,-0.43,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.31,-0.30,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_09.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.16,0.20,0.23,0.27,0.30,0.34,0.37,0.40,0.43,0.45,0.47,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.56,0.57,0.57,0.57,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.56,0.56,0.55,0.53,0.52,0.50,0.48,0.45,0.43,0.41,0.38,0.36,0.34,0.31,0.29,0.26,0.24,0.22,0.20,0.18,0.16,0.14,0.12,0.10,0.09,0.07,0.06,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.06,-0.23,-0.50,-0.85,-1.29,-1.79,-2.33,-2.92,-3.54,-4.18,-4.82,-5.46,-6.08,-6.67,-7.21,-7.71,-8.15,-8.50,-8.77,-8.94,-9,-8.97,-8.86,-8.70,-8.47,-8.19,-7.85,-7.47,-7.04,-6.56,-6.06,-5.51,-4.94,-4.33,-3.71,-3.06,-2.40,-1.72,-1.04,-0.34,0.34,1.04,1.72,2.40,3.06,3.71,4.33,4.94,5.51,6.06,6.56,7.04,7.47,7.85,8.19,8.47,8.70,8.86,8.97,9,8.98,8.91,8.79,8.63,8.43,8.20,7.93,7.63,7.30,6.94,6.56,6.15,5.73,5.30,4.84,4.37,3.90,3.42,2.93,2.44,1.94,1.45,0.96,0.48,0,-0.52,-1.04,-1.53,-1.98,-2.43,-2.87,-3.27,-3.66,-4.04,-4.39,-4.73,-5.05,-5.36,-5.65,-5.93,-6.19,-6.44,-6.68,-6.90,-7.11,-7.30,-7.48,-7.65,-7.81,-7.96,-8.09,-8.22,-8.34,-8.44,-8.54,-8.62,-8.70,-8.76,-8.82,-8.87,-8.91,-8.94,-8.97,-8.99,-9.00,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-9.98,-9.93,-9.84,-9.74,-9.62,-9.50,-9.38,-9.26,-9.16,-9.07,-9.02,-9,-9.02,-9.07,-9.15,-9.25,-9.37,-9.49,-9.60,-9.71,-9.81,-9.89,-9.95,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.94,-9.79,-9.58,-9.31,-9.01,-8.70,-8.38,-8.07,-7.79,-7.53,-7.32,-7.15,-7.04,-7,-7.01,-7.02,-7.05,-7.09,-7.13,-7.19,-7.25,-7.32,-7.39,-7.48,-7.56,-7.65,-7.75,-7.85,-7.95,-8.05,-8.16,-8.27,-8.38,-8.49,-8.59,-8.70,-8.81,-8.92,-9.02,-9.12,-9.22,-9.31,-9.40,-9.49,-9.57,-9.65,-9.72,-9.78,-9.83,-9.88,-9.92,-9.96,-9.98,-9.99,-10,-9.96,-9.85,-9.66,-9.42,-9.13,-8.79,-8.40,-7.99,-7.54,-7.07,-6.59,-6.09,-5.58,-5.07,-4.55,-4.05,-3.55,-3.07,-2.61,-2.17,-1.76,-1.39,-1.04,-0.74,-0.49,-0.28,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.60,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.66,0.66,0.67,0.67,0.68,0.68,0.68,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.64,0.63,0.63,0.62,0.61,0.60,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.53,0.52,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,-0.20,-0.77,-1.66,-2.85,-4.30,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.70,-27.15,-28.34,-29.23,-29.80,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.20,-13.66,-12.14,-10.66,-9.20,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,-0.20,-0.77,-1.66,-2.85,-4.30,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.70,-27.15,-28.34,-29.23,-29.80,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.20,-13.66,-12.14,-10.66,-9.20,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.26,0.38,0.49,0.59,0.65,0.67,0.67,0.65,0.63,0.61,0.57,0.54,0.50,0.45,0.41,0.36,0.31,0.26,0.22,0.17,0.13,0.10,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.16,-0.19,-0.21,-0.24,-0.27,-0.30,-0.32,-0.34,-0.36,-0.38,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.39,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.09,-0.07,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,0.99,0.95,0.89,0.81,0.71,0.60,0.48,0.35,0.21,0.07,-0.07,-0.21,-0.35,-0.48,-0.60,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.83,-0.76,-0.68,-0.60,-0.51,-0.41,-0.32,-0.22,-0.12,-0.01,0.09,0.19,0.29,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.90,0.94,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.71,0.47,0.23,0.07,0,0.07,0.22,0.43,0.65,0.80,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.81,0.65,0.46,0.28,0.13,0.03,0,0.03,0.10,0.19,0.30,0.41,0.53,0.63,0.72,0.79,0.84,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.90,0.90,0.91,0.92,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.09,-0.11,-0.14,-0.17,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.39,-0.41,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.42,-0.41,-0.39,-0.38,-0.36,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.31,-0.33,-0.35,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.60,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.65,0.66,0.66,0.67,0.67,0.68,0.68,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.64,0.63,0.63,0.62,0.61,0.60,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.53,0.52,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.16,0.20,0.23,0.27,0.30,0.34,0.37,0.40,0.43,0.45,0.47,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.52,0.50,0.48,0.45,0.43,0.40,0.38,0.35,0.33,0.31,0.28,0.26,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.31,-0.33,-0.35,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.72,0.47,0.24,0.07,0.01,0.07,0.23,0.44,0.65,0.81,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.81,0.65,0.46,0.28,0.13,0.03,0,0.03,0.10,0.19,0.30,0.42,0.53,0.64,0.73,0.81,0.85,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.89,0.89,0.90,0.90,0.91,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,-0.00,-0.02,-0.03,-0.06,-0.09,-0.12,-0.16,-0.20,-0.24,-0.28,-0.33,-0.37,-0.41,-0.45,-0.49,-0.52,-0.55,-0.58,-0.59,-0.61,-0.61,-0.60,-0.57,-0.52,-0.47,-0.40,-0.33,-0.27,-0.20,-0.15,-0.10,-0.07,-0.06,-0.07,-0.11,-0.16,-0.23,-0.30,-0.38,-0.45,-0.52,-0.58,-0.64,-0.68,-0.70,-0.71,-0.70,-0.67,-0.62,-0.56,-0.50,-0.43,-0.36,-0.30,-0.24,-0.18,-0.14,-0.10,-0.08,-0.07,-0.10,-0.17,-0.28,-0.40,-0.52,-0.64,-0.76,-0.85,-0.93,-0.98,-1,-0.97,-0.90,-0.79,-0.66,-0.52,-0.37,-0.21,-0.06,0.08,0.20,0.31,0.39,0.44,0.46,0.46,0.45,0.44,0.43,0.41,0.39,0.37,0.35,0.32,0.29,0.26,0.23,0.19,0.16,0.12,0.08,0.05,0.01,-0.03,-0.07,-0.11,-0.15,-0.19,-0.22,-0.26,-0.30,-0.33,-0.37,-0.40,-0.43,-0.46,-0.48,-0.51,-0.53,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.61,-0.61,-0.60,-0.59,-0.57,-0.56,-0.54,-0.51,-0.49,-0.46,-0.43,-0.40,-0.37,-0.34,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.11,-0.08,-0.06,-0.05,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.01,-0.03,-0.06,-0.09,-0.14,-0.20,-0.26,-0.32,-0.39,-0.46,-0.54,-0.61,-0.68,-0.74,-0.80,-0.86,-0.91,-0.94,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.94,-0.89,-0.85,-0.80,-0.75,-0.70,-0.66,-0.62,-0.59,-0.56,-0.55,-0.54,-0.54,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.63,-0.64,-0.65,-0.67,-0.69,-0.70,-0.72,-0.73,-0.75,-0.77,-0.78,-0.80,-0.82,-0.83,-0.85,-0.87,-0.88,-0.89,-0.91,-0.92,-0.93,-0.95,-0.96,-0.97,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-0.98,-0.97,-0.94,-0.91,-0.88,-0.84,-0.80,-0.75,-0.71,-0.66,-0.61,-0.56,-0.51,-0.46,-0.40,-0.36,-0.31,-0.26,-0.22,-0.18,-0.14,-0.10,-0.07,-0.05,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_A.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0.02,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.50,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,5,5,5,4.99,4.99,4.98,4.97,4.96,4.95,4.94,4.93,4.91,4.90,4.88,4.86,4.84,4.81,4.79,4.76,4.73,4.70,4.67,4.63,4.60,4.56,4.52,4.47,4.43,4.38,4.33,4.28,4.22,4.17,4.11,4.05,3.98,3.91,3.84,3.77,3.70,3.62,3.54,3.45,3.37,3.28,3.18,3.09,2.99,2.89,2.78,2.67,2.56,2.45,2.33,2.21,2.08,1.95,1.82,1.67,1.52,1.36,1.19,1.01,0.83,0.64,0.45,0.25,0.04,-0.17,-0.39,-0.61,-0.83,-1.06,-1.29,-1.52,-1.75,-1.99,-2.23,-2.46,-2.70,-2.94,-3.18,-3.41,-3.65,-3.88,-4.11,-4.34,-4.56,-4.78,-5,-5.22,-5.43,-5.64,-5.85,-6.05,-6.25,-6.44,-6.63,-6.81,-7,-7.17,-7.35,-7.52,-7.68,-7.84,-8,-8.15,-8.30,-8.45,-8.59,-8.73,-8.86,-8.99,-9.12,-9.24,-9.35,-9.47,-9.58,-9.68,-9.78,-9.88,-9.97,-10.06,-10.14,-10.22,-10.30,-10.37,-10.44,-10.50,-10.57,-10.62,-10.67,-10.72,-10.77,-10.81,-10.84,-10.88,-10.91,-10.93,-10.95,-10.97,-10.98,-10.99,-11,-11,-10.91,-10.65,-10.25,-9.71,-9.07,-8.32,-7.50,-6.61,-5.67,-4.68,-3.68,-2.65,-1.60,-0.59,0.40,1.38,2.29,3.17,3.99,4.72,5.37,5.93,6.38,6.72,6.93,7,6.99,6.95,6.89,6.81,6.71,6.58,6.43,6.27,6.09,5.89,5.68,5.44,5.19,4.93,4.66,4.37,4.08,3.77,3.45,3.12,2.79,2.45,2.10,1.74,1.38,1.02,0.65,0.29,-0.08,-0.46,-0.82,-1.19,-1.56,-1.93,-2.29,-2.64,-2.99,-3.34,-3.68,-4.01,-4.34,-4.65,-4.96,-5.26,-5.54,-5.81,-6.07,-6.32,-6.55,-6.77,-6.97,-7.16,-7.33,-7.48,-7.61,-7.73,-7.83,-7.90,-7.96,-7.99,-8,-7.98,-7.93,-7.84,-7.72,-7.58,-7.41,-7.21,-6.99,-6.75,-6.50,-6.22,-5.93,-5.64,-5.33,-5.02,-4.69,-4.37,-4.04,-3.71,-3.39,-3.07,-2.76,-2.45,-2.16,-1.88,-1.60,-1.35,-1.12,-0.89,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.43,-0.47,-0.50,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.73,-0.76,-0.79,-0.81,-0.83,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-0.99,-0.97,-0.94,-0.90,-0.84,-0.78,-0.70,-0.62,-0.53,-0.43,-0.32,-0.21,-0.09,0.04,0.17,0.30,0.44,0.58,0.71,0.86,1,1.14,1.29,1.42,1.56,1.70,1.83,1.96,2.09,2.21,2.32,2.43,2.53,2.62,2.70,2.78,2.84,2.90,2.94,2.97,2.99,3,3,2.98,2.96,2.93,2.89,2.85,2.79,2.73,2.67,2.59,2.51,2.43,2.34,2.24,2.14,2.04,1.93,1.82,1.70,1.59,1.46,1.34,1.21,1.09,0.96,0.83,0.70,0.57,0.43,0.30,0.17,0.04,-0.09,-0.21,-0.34,-0.46,-0.59,-0.70,-0.82,-0.93,-1.04,-1.14,-1.24,-1.34,-1.43,-1.51,-1.59,-1.67,-1.73,-1.79,-1.85,-1.89,-1.93,-1.96,-1.98,-2,-2,-2,-1.99,-1.98,-1.97,-1.96,-1.94,-1.92,-1.90,-1.87,-1.84,-1.81,-1.77,-1.73,-1.69,-1.65,-1.61,-1.56,-1.51,-1.46,-1.41,-1.35,-1.29,-1.23,-1.17,-1.11,-1.05,-0.98,-0.91,-0.85,-0.78,-0.70,-0.63,-0.56,-0.48,-0.41,-0.33,-0.25,-0.18,-0.10,-0.02,0.06,0.14,0.22,0.30,0.38,0.46,0.54,0.62,0.70,0.78,0.86,0.94,1.02,1.10,1.18,1.25,1.33,1.41,1.48,1.56,1.63,1.70,1.78,1.85,1.91,1.98,2.05,2.11,2.17,2.23,2.29,2.35,2.41,2.46,2.51,2.56,2.61,2.65,2.69,2.73,2.77,2.81,2.84,2.87,2.90,2.92,2.94,2.96,2.97,2.98,2.99,3,3,3,2.99,2.98,2.96,2.93,2.91,2.88,2.84,2.80,2.76,2.71,2.66,2.60,2.55,2.49,2.43,2.36,2.29,2.23,2.15,2.08,2.01,1.93,1.86,1.78,1.70,1.63,1.55,1.47,1.39,1.32,1.24,1.16,1.09,1.01,0.94,0.87,0.80,0.73,0.66,0.60,0.54,0.48,0.42,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.02,0.01,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0,-0.01,-0.03,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.30,-0.35,-0.40,-0.46,-0.52,-0.58,-0.64,-0.70,-0.77,-0.83,-0.90,-0.97,-1.03,-1.10,-1.17,-1.23,-1.30,-1.36,-1.42,-1.48,-1.54,-1.60,-1.65,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.93,-1.96,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.77,-1.72,-1.68,-1.63,-1.58,-1.53,-1.47,-1.41,-1.35,-1.28,-1.22,-1.15,-1.08,-1.01,-0.94,-0.86,-0.78,-0.71,-0.63,-0.55,-0.46,-0.38,-0.30,-0.21,-0.13,-0.04,0.05,0.13,0.22,0.31,0.40,0.49,0.58,0.67,0.75,0.84,0.93,1.02,1.10,1.19,1.27,1.36,1.44,1.52,1.60,1.68,1.76,1.83,1.91,1.98,2.05,2.12,2.19,2.26,2.32,2.38,2.44,2.50,2.55,2.60,2.65,2.70,2.74,2.78,2.82,2.85,2.88,2.91,2.93,2.95,2.97,2.98,2.99,3,3,3,2.99,2.97,2.94,2.91,2.88,2.84,2.79,2.74,2.68,2.62,2.55,2.48,2.41,2.33,2.25,2.17,2.08,1.99,1.90,1.81,1.71,1.61,1.51,1.42,1.32,1.21,1.11,1.01,0.91,0.81,0.71,0.61,0.51,0.41,0.32,0.22,0.13,0.04,-0.05,-0.13,-0.22,-0.30,-0.37,-0.45,-0.52,-0.58,-0.65,-0.70,-0.76,-0.81,-0.85,-0.89,-0.92,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.90,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.30,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.01,-0.02,-0.05,-0.09,-0.14,-0.19,-0.26,-0.34,-0.42,-0.51,-0.61,-0.72,-0.84,-0.96,-1.09,-1.23,-1.37,-1.52,-1.67,-1.83,-1.99,-2.16,-2.33,-2.50,-2.68,-2.86,-3.04,-3.23,-3.42,-3.61,-3.80,-3.99,-4.18,-4.38,-4.57,-4.77,-4.96,-5.15,-5.34,-5.53,-5.72,-5.90,-6.08,-6.27,-6.44,-6.61,-6.79,-6.95,-7.11,-7.27,-7.42,-7.57,-7.71,-7.85,-7.98,-8.10,-8.22,-8.33,-8.43,-8.52,-8.61,-8.69,-8.76,-8.82,-8.88,-8.92,-8.95,-8.98,-8.99,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.95,-8.80,-8.55,-8.23,-7.83,-7.37,-6.84,-6.27,-5.65,-5.01,-4.33,-3.64,-2.94,-2.23,-1.54,-0.86,-0.18,0.45,1.05,1.62,2.14,2.60,3.01,3.36,3.63,3.83,3.96,4,3.98,3.91,3.79,3.64,3.46,3.24,2.99,2.72,2.42,2.10,1.77,1.42,1.06,0.69,0.31,-0.07,-0.45,-0.84,-1.22,-1.58,-1.95,-2.31,-2.65,-2.99,-3.30,-3.59,-3.86,-4.11,-4.33,-4.53,-4.69,-4.82,-4.92,-4.98,-5,-4.99,-4.96,-4.90,-4.82,-4.73,-4.62,-4.49,-4.34,-4.18,-4,-3.81,-3.60,-3.39,-3.16,-2.92,-2.67,-2.42,-2.15,-1.88,-1.61,-1.33,-1.05,-0.76,-0.47,-0.18,0.11,0.40,0.69,0.97,1.26,1.53,1.80,2.07,2.33,2.59,2.83,3.07,3.29,3.51,3.71,3.90,4.08,4.25,4.40,4.53,4.65,4.76,4.84,4.91,4.96,4.99,5,4.97,4.87,4.71,4.50,4.23,3.92,3.55,3.15,2.70,2.22,1.70,1.16,0.59,0,-0.61,-1.23,-1.88,-2.52,-3.18,-3.82,-4.48,-5.12,-5.77,-6.39,-7,-7.59,-8.16,-8.70,-9.22,-9.70,-10.15,-10.55,-10.92,-11.23,-11.50,-11.71,-11.87,-11.97,-12,-11.98,-11.92,-11.83,-11.69,-11.53,-11.34,-11.11,-10.86,-10.59,-10.29,-9.97,-9.63,-9.28,-8.90,-8.52,-8.12,-7.72,-7.31,-6.89,-6.47,-6.05,-5.63,-5.21,-4.80,-4.39,-3.99,-3.60,-3.22,-2.85,-2.50,-2.17,-1.85,-1.55,-1.28,-1.02,-0.80,-0.59,-0.42,-0.27,-0.15,-0.07,-0.02,0\r\r\nPARAM_ANGLE_X=0,0,0.01,0.02,0.04,0.07,0.09,0.13,0.16,0.21,0.25,0.30,0.36,0.42,0.48,0.55,0.62,0.70,0.78,0.86,0.95,1.03,1.13,1.22,1.32,1.42,1.53,1.63,1.74,1.85,1.97,2.08,2.20,2.33,2.45,2.57,2.70,2.83,2.96,3.09,3.22,3.36,3.49,3.63,3.76,3.90,4.04,4.18,4.32,4.46,4.60,4.74,4.88,5.02,5.16,5.30,5.44,5.58,5.72,5.86,6,6.14,6.26,6.38,6.50,6.61,6.72,6.82,6.91,7,7.09,7.16,7.24,7.31,7.37,7.44,7.49,7.55,7.60,7.64,7.68,7.72,7.76,7.79,7.82,7.85,7.87,7.89,7.91,7.93,7.94,7.95,7.96,7.97,7.98,7.99,7.99,7.99,8,8,8,8,8,7.99,7.94,7.87,7.77,7.65,7.50,7.32,7.12,6.90,6.65,6.38,6.10,5.79,5.47,5.13,4.77,4.39,4,3.60,3.22,2.84,2.46,2.10,1.75,1.40,1.05,0.72,0.40,0.08,-0.24,-0.54,-0.84,-1.13,-1.41,-1.69,-1.96,-2.22,-2.47,-2.72,-2.96,-3.19,-3.41,-3.63,-3.84,-4.05,-4.24,-4.43,-4.62,-4.79,-4.96,-5.12,-5.28,-5.43,-5.57,-5.70,-5.83,-5.95,-6.07,-6.17,-6.27,-6.37,-6.46,-6.54,-6.61,-6.68,-6.74,-6.80,-6.84,-6.89,-6.92,-6.95,-6.97,-6.99,-7,-7,-7,-6.99,-6.97,-6.95,-6.91,-6.87,-6.83,-6.77,-6.71,-6.64,-6.56,-6.47,-6.37,-6.26,-6.14,-6.01,-5.88,-5.73,-5.57,-5.41,-5.23,-5.04,-4.85,-4.64,-4.42,-4.18,-3.94,-3.68,-3.42,-3.14,-2.85,-2.55,-2.24,-1.92,-1.59,-1.23,-0.88,-0.51,-0.12,0.27,0.71,1.14,1.56,1.98,2.39,2.79,3.19,3.58,3.96,4.34,4.71,5.08,5.43,5.78,6.12,6.46,6.79,7.11,7.42,7.73,8.02,8.32,8.60,8.87,9.14,9.40,9.65,9.89,10.13,10.35,10.57,10.77,10.98,11.17,11.35,11.52,11.69,11.84,11.99,12.12,12.25,12.37,12.48,12.57,12.66,12.74,12.81,12.87,12.91,12.95,12.98,12.99,13,12.95,12.80,12.56,12.25,11.87,11.43,10.93,10.38,9.80,9.20,8.56,7.92,7.25,6.59,5.92,5.26,4.62,3.99,3.39,2.82,2.29,1.80,1.35,0.97,0.63,0.36,0.16,0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.10,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.39,-0.36,-0.31,-0.27,-0.22,-0.16,-0.11,-0.07,-0.03,-0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.05,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.42,-0.44,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.51,-0.49,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.10,0.12,0.14,0.15,0.17,0.19,0.20,0.22,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.36,0.37,0.38,0.40,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.30,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.03,0.02,0,-0.01,-0.03,-0.05,-0.06,-0.08,-0.10,-0.11,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.41,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.25,-0.22,-0.20,-0.18,-0.15,-0.13,-0.10,-0.08,-0.05,-0.03,0,0.03,0.05,0.08,0.11,0.14,0.16,0.19,0.21,0.24,0.27,0.29,0.31,0.33,0.35,0.37,0.38,0.39,0.40,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.40,0.38,0.36,0.33,0.29,0.26,0.23,0.19,0.16,0.13,0.10,0.08,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=0\r\r\nVISIBLE:PARTS_LEFT_ARM_B=0\r\r\nVISIBLE:PARTS_BODY_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_A2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0.02,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.50,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,5,5,5,4.99,4.99,4.98,4.97,4.96,4.95,4.94,4.93,4.91,4.90,4.88,4.86,4.84,4.81,4.79,4.76,4.73,4.70,4.67,4.63,4.60,4.56,4.52,4.47,4.43,4.38,4.33,4.28,4.22,4.17,4.11,4.05,3.98,3.91,3.84,3.77,3.70,3.62,3.54,3.45,3.37,3.28,3.18,3.09,2.99,2.89,2.78,2.67,2.56,2.45,2.33,2.21,2.08,1.95,1.82,1.67,1.52,1.36,1.19,1.01,0.83,0.64,0.45,0.25,0.04,-0.17,-0.39,-0.61,-0.83,-1.06,-1.29,-1.52,-1.75,-1.99,-2.23,-2.46,-2.70,-2.94,-3.18,-3.41,-3.65,-3.88,-4.11,-4.34,-4.56,-4.78,-5,-5.22,-5.43,-5.64,-5.85,-6.05,-6.25,-6.44,-6.63,-6.81,-7,-7.17,-7.35,-7.52,-7.68,-7.84,-8,-8.15,-8.30,-8.45,-8.59,-8.73,-8.86,-8.99,-9.12,-9.24,-9.35,-9.47,-9.58,-9.68,-9.78,-9.88,-9.97,-10.06,-10.14,-10.22,-10.30,-10.37,-10.44,-10.50,-10.57,-10.62,-10.67,-10.72,-10.77,-10.81,-10.84,-10.88,-10.91,-10.93,-10.95,-10.97,-10.98,-10.99,-11,-11,-10.91,-10.65,-10.25,-9.71,-9.07,-8.32,-7.50,-6.61,-5.67,-4.68,-3.68,-2.65,-1.60,-0.59,0.40,1.38,2.29,3.17,3.99,4.72,5.37,5.93,6.38,6.72,6.93,7,6.99,6.95,6.89,6.81,6.71,6.58,6.43,6.27,6.09,5.89,5.68,5.44,5.19,4.93,4.66,4.37,4.08,3.77,3.45,3.12,2.79,2.45,2.10,1.74,1.38,1.02,0.65,0.29,-0.08,-0.46,-0.82,-1.19,-1.56,-1.93,-2.29,-2.64,-2.99,-3.34,-3.68,-4.01,-4.34,-4.65,-4.96,-5.26,-5.54,-5.81,-6.07,-6.32,-6.55,-6.77,-6.97,-7.16,-7.33,-7.48,-7.61,-7.73,-7.83,-7.90,-7.96,-7.99,-8,-7.98,-7.93,-7.84,-7.72,-7.58,-7.41,-7.21,-6.99,-6.75,-6.50,-6.22,-5.93,-5.64,-5.33,-5.02,-4.69,-4.37,-4.04,-3.71,-3.39,-3.07,-2.76,-2.45,-2.16,-1.88,-1.60,-1.35,-1.12,-0.89,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.43,-0.47,-0.50,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.73,-0.76,-0.79,-0.81,-0.83,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-0.99,-0.97,-0.94,-0.90,-0.84,-0.78,-0.70,-0.62,-0.53,-0.43,-0.32,-0.21,-0.09,0.04,0.17,0.30,0.44,0.58,0.71,0.86,1,1.14,1.29,1.42,1.56,1.70,1.83,1.96,2.09,2.21,2.32,2.43,2.53,2.62,2.70,2.78,2.84,2.90,2.94,2.97,2.99,3,3,2.98,2.96,2.93,2.89,2.85,2.79,2.73,2.67,2.59,2.51,2.43,2.34,2.24,2.14,2.04,1.93,1.82,1.70,1.59,1.46,1.34,1.21,1.09,0.96,0.83,0.70,0.57,0.43,0.30,0.17,0.04,-0.09,-0.21,-0.34,-0.46,-0.59,-0.70,-0.82,-0.93,-1.04,-1.14,-1.24,-1.34,-1.43,-1.51,-1.59,-1.67,-1.73,-1.79,-1.85,-1.89,-1.93,-1.96,-1.98,-2,-2,-2,-1.99,-1.98,-1.97,-1.96,-1.94,-1.92,-1.90,-1.87,-1.84,-1.81,-1.77,-1.73,-1.69,-1.65,-1.61,-1.56,-1.51,-1.46,-1.41,-1.35,-1.29,-1.23,-1.17,-1.11,-1.05,-0.98,-0.91,-0.85,-0.78,-0.70,-0.63,-0.56,-0.48,-0.41,-0.33,-0.25,-0.18,-0.10,-0.02,0.06,0.14,0.22,0.30,0.38,0.46,0.54,0.62,0.70,0.78,0.86,0.94,1.02,1.10,1.18,1.25,1.33,1.41,1.48,1.56,1.63,1.70,1.78,1.85,1.91,1.98,2.05,2.11,2.17,2.23,2.29,2.35,2.41,2.46,2.51,2.56,2.61,2.65,2.69,2.73,2.77,2.81,2.84,2.87,2.90,2.92,2.94,2.96,2.97,2.98,2.99,3,3,3,2.99,2.98,2.96,2.93,2.91,2.88,2.84,2.80,2.76,2.71,2.66,2.60,2.55,2.49,2.43,2.36,2.29,2.23,2.15,2.08,2.01,1.93,1.86,1.78,1.70,1.63,1.55,1.47,1.39,1.32,1.24,1.16,1.09,1.01,0.94,0.87,0.80,0.73,0.66,0.60,0.54,0.48,0.42,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.02,0.01,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0,-0.01,-0.03,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.30,-0.35,-0.40,-0.46,-0.52,-0.58,-0.64,-0.70,-0.77,-0.83,-0.90,-0.97,-1.03,-1.10,-1.17,-1.23,-1.30,-1.36,-1.42,-1.48,-1.54,-1.60,-1.65,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.93,-1.96,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.77,-1.72,-1.68,-1.63,-1.58,-1.53,-1.47,-1.41,-1.35,-1.28,-1.22,-1.15,-1.08,-1.01,-0.94,-0.86,-0.78,-0.71,-0.63,-0.55,-0.46,-0.38,-0.30,-0.21,-0.13,-0.04,0.05,0.13,0.22,0.31,0.40,0.49,0.58,0.67,0.75,0.84,0.93,1.02,1.10,1.19,1.27,1.36,1.44,1.52,1.60,1.68,1.76,1.83,1.91,1.98,2.05,2.12,2.19,2.26,2.32,2.38,2.44,2.50,2.55,2.60,2.65,2.70,2.74,2.78,2.82,2.85,2.88,2.91,2.93,2.95,2.97,2.98,2.99,3,3,3,2.99,2.97,2.94,2.91,2.88,2.84,2.79,2.74,2.68,2.62,2.55,2.48,2.41,2.33,2.25,2.17,2.08,1.99,1.90,1.81,1.71,1.61,1.51,1.42,1.32,1.21,1.11,1.01,0.91,0.81,0.71,0.61,0.51,0.41,0.32,0.22,0.13,0.04,-0.05,-0.13,-0.22,-0.30,-0.37,-0.45,-0.52,-0.58,-0.65,-0.70,-0.76,-0.81,-0.85,-0.89,-0.92,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.90,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.30,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.01,-0.02,-0.05,-0.09,-0.14,-0.19,-0.26,-0.34,-0.42,-0.51,-0.61,-0.72,-0.84,-0.96,-1.09,-1.23,-1.37,-1.52,-1.67,-1.83,-1.99,-2.16,-2.33,-2.50,-2.68,-2.86,-3.04,-3.23,-3.42,-3.61,-3.80,-3.99,-4.18,-4.38,-4.57,-4.77,-4.96,-5.15,-5.34,-5.53,-5.72,-5.90,-6.08,-6.27,-6.44,-6.61,-6.79,-6.95,-7.11,-7.27,-7.42,-7.57,-7.71,-7.85,-7.98,-8.10,-8.22,-8.33,-8.43,-8.52,-8.61,-8.69,-8.76,-8.82,-8.88,-8.92,-8.95,-8.98,-8.99,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.95,-8.80,-8.55,-8.23,-7.83,-7.37,-6.84,-6.27,-5.65,-5.01,-4.33,-3.64,-2.94,-2.23,-1.54,-0.86,-0.18,0.45,1.05,1.62,2.14,2.60,3.01,3.36,3.63,3.83,3.96,4,3.98,3.91,3.79,3.64,3.46,3.24,2.99,2.72,2.42,2.10,1.77,1.42,1.06,0.69,0.31,-0.07,-0.45,-0.84,-1.22,-1.58,-1.95,-2.31,-2.65,-2.99,-3.30,-3.59,-3.86,-4.11,-4.33,-4.53,-4.69,-4.82,-4.92,-4.98,-5,-4.99,-4.96,-4.90,-4.82,-4.73,-4.62,-4.49,-4.34,-4.18,-4,-3.81,-3.60,-3.39,-3.16,-2.92,-2.67,-2.42,-2.15,-1.88,-1.61,-1.33,-1.05,-0.76,-0.47,-0.18,0.11,0.40,0.69,0.97,1.26,1.53,1.80,2.07,2.33,2.59,2.83,3.07,3.29,3.51,3.71,3.90,4.08,4.25,4.40,4.53,4.65,4.76,4.84,4.91,4.96,4.99,5,4.97,4.87,4.71,4.50,4.23,3.92,3.55,3.15,2.70,2.22,1.70,1.16,0.59,0,-0.61,-1.23,-1.88,-2.52,-3.18,-3.82,-4.48,-5.12,-5.77,-6.39,-7,-7.59,-8.16,-8.70,-9.22,-9.70,-10.15,-10.55,-10.92,-11.23,-11.50,-11.71,-11.87,-11.97,-12,-11.98,-11.92,-11.83,-11.69,-11.53,-11.34,-11.11,-10.86,-10.59,-10.29,-9.97,-9.63,-9.28,-8.90,-8.52,-8.12,-7.72,-7.31,-6.89,-6.47,-6.05,-5.63,-5.21,-4.80,-4.39,-3.99,-3.60,-3.22,-2.85,-2.50,-2.17,-1.85,-1.55,-1.28,-1.02,-0.80,-0.59,-0.42,-0.27,-0.15,-0.07,-0.02,0\r\r\nPARAM_ANGLE_X=0,0,0.01,0.02,0.04,0.07,0.09,0.13,0.16,0.21,0.25,0.30,0.36,0.42,0.48,0.55,0.62,0.70,0.78,0.86,0.95,1.03,1.13,1.22,1.32,1.42,1.53,1.63,1.74,1.85,1.97,2.08,2.20,2.33,2.45,2.57,2.70,2.83,2.96,3.09,3.22,3.36,3.49,3.63,3.76,3.90,4.04,4.18,4.32,4.46,4.60,4.74,4.88,5.02,5.16,5.30,5.44,5.58,5.72,5.86,6,6.14,6.26,6.38,6.50,6.61,6.72,6.82,6.91,7,7.09,7.16,7.24,7.31,7.37,7.44,7.49,7.55,7.60,7.64,7.68,7.72,7.76,7.79,7.82,7.85,7.87,7.89,7.91,7.93,7.94,7.95,7.96,7.97,7.98,7.99,7.99,7.99,8,8,8,8,8,7.99,7.94,7.87,7.77,7.65,7.50,7.32,7.12,6.90,6.65,6.38,6.10,5.79,5.47,5.13,4.77,4.39,4,3.60,3.22,2.84,2.46,2.10,1.75,1.40,1.05,0.72,0.40,0.08,-0.24,-0.54,-0.84,-1.13,-1.41,-1.69,-1.96,-2.22,-2.47,-2.72,-2.96,-3.19,-3.41,-3.63,-3.84,-4.05,-4.24,-4.43,-4.62,-4.79,-4.96,-5.12,-5.28,-5.43,-5.57,-5.70,-5.83,-5.95,-6.07,-6.17,-6.27,-6.37,-6.46,-6.54,-6.61,-6.68,-6.74,-6.80,-6.84,-6.89,-6.92,-6.95,-6.97,-6.99,-7,-7,-7,-6.99,-6.97,-6.95,-6.91,-6.87,-6.83,-6.77,-6.71,-6.64,-6.56,-6.47,-6.37,-6.26,-6.14,-6.01,-5.88,-5.73,-5.57,-5.41,-5.23,-5.04,-4.85,-4.64,-4.42,-4.18,-3.94,-3.68,-3.42,-3.14,-2.85,-2.55,-2.24,-1.92,-1.59,-1.23,-0.88,-0.51,-0.12,0.27,0.71,1.14,1.56,1.98,2.39,2.79,3.19,3.58,3.96,4.34,4.71,5.08,5.43,5.78,6.12,6.46,6.79,7.11,7.42,7.73,8.02,8.32,8.60,8.87,9.14,9.40,9.65,9.89,10.13,10.35,10.57,10.77,10.98,11.17,11.35,11.52,11.69,11.84,11.99,12.12,12.25,12.37,12.48,12.57,12.66,12.74,12.81,12.87,12.91,12.95,12.98,12.99,13,12.95,12.80,12.56,12.25,11.87,11.43,10.93,10.38,9.80,9.20,8.56,7.92,7.25,6.59,5.92,5.26,4.62,3.99,3.39,2.82,2.29,1.80,1.35,0.97,0.63,0.36,0.16,0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.10,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.39,-0.36,-0.31,-0.27,-0.22,-0.16,-0.11,-0.07,-0.03,-0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.05,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.42,-0.44,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.51,-0.49,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.10,0.12,0.14,0.15,0.17,0.19,0.20,0.22,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.36,0.37,0.38,0.40,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.30,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.03,0.02,0,-0.01,-0.03,-0.05,-0.06,-0.08,-0.10,-0.11,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.41,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.25,-0.22,-0.20,-0.18,-0.15,-0.13,-0.10,-0.08,-0.05,-0.03,0,0.03,0.05,0.08,0.11,0.14,0.16,0.19,0.21,0.24,0.27,0.29,0.31,0.33,0.35,0.37,0.38,0.39,0.40,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.40,0.38,0.36,0.33,0.29,0.26,0.23,0.19,0.16,0.13,0.10,0.08,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_B.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.29,0.44,0.62,0.82,1.05,1.29,1.55,1.84,2.13,2.44,2.75,3.06,3.39,3.71,4.04,4.35,4.67,4.98,5.27,5.56,5.82,6.08,6.31,6.52,6.71,6.87,7,7.11,7.21,7.31,7.40,7.48,7.55,7.62,7.67,7.73,7.77,7.82,7.85,7.89,7.91,7.94,7.95,7.97,7.98,7.99,8,8,8.01,8.01,8.01,8.01,8.01,8,8,8,8,7.95,7.80,7.55,7.22,6.81,6.33,5.79,5.19,4.55,3.86,3.12,2.37,1.58,0.80,0,-0.80,-1.58,-2.37,-3.12,-3.86,-4.55,-5.19,-5.79,-6.33,-6.81,-7.22,-7.55,-7.80,-7.95,-8,-8,-7.99,-7.97,-7.94,-7.91,-7.88,-7.83,-7.79,-7.73,-7.67,-7.60,-7.53,-7.45,-7.37,-7.28,-7.19,-7.09,-6.99,-6.88,-6.77,-6.65,-6.53,-6.40,-6.27,-6.14,-6,-5.86,-5.72,-5.57,-5.42,-5.27,-5.11,-4.96,-4.79,-4.63,-4.46,-4.30,-4.13,-3.95,-3.78,-3.60,-3.42,-3.24,-3.06,-2.88,-2.70,-2.52,-2.33,-2.15,-1.96,-1.78,-1.59,-1.41,-1.22,-1.04,-0.85,-0.67,-0.48,-0.30,-0.12,0.06,0.24,0.42,0.60,0.78,0.95,1.13,1.30,1.46,1.63,1.79,1.96,2.11,2.27,2.42,2.57,2.72,2.86,3,3.14,3.27,3.40,3.53,3.65,3.77,3.88,3.99,4.09,4.19,4.28,4.37,4.45,4.53,4.60,4.67,4.73,4.79,4.83,4.88,4.91,4.94,4.97,4.99,5,5,4.98,4.91,4.81,4.66,4.49,4.28,4.04,3.78,3.49,3.19,2.86,2.52,2.16,1.80,1.42,1.04,0.65,0.26,-0.13,-0.52,-0.91,-1.29,-1.66,-2.02,-2.37,-2.71,-3.03,-3.33,-3.62,-3.88,-4.12,-4.33,-4.52,-4.68,-4.80,-4.89,-4.95,-4.97,-4.94,-4.84,-4.70,-4.50,-4.26,-3.98,-3.68,-3.36,-3.01,-2.66,-2.31,-1.96,-1.61,-1.29,-0.99,-0.71,-0.47,-0.27,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.02,-0.03,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.32,-0.38,-0.44,-0.50,-0.57,-0.63,-0.70,-0.77,-0.85,-0.92,-0.99,-1.06,-1.14,-1.21,-1.28,-1.35,-1.41,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.76,-1.72,-1.67,-1.62,-1.57,-1.51,-1.46,-1.40,-1.33,-1.27,-1.20,-1.13,-1.05,-0.98,-0.90,-0.82,-0.74,-0.66,-0.58,-0.49,-0.41,-0.32,-0.23,-0.14,-0.05,0.04,0.14,0.23,0.33,0.42,0.52,0.61,0.71,0.81,0.90,1,1.10,1.20,1.29,1.38,1.47,1.55,1.63,1.71,1.79,1.86,1.93,2,2.06,2.12,2.18,2.24,2.29,2.34,2.39,2.44,2.49,2.53,2.57,2.61,2.64,2.68,2.71,2.74,2.77,2.79,2.82,2.84,2.86,2.88,2.90,2.92,2.93,2.94,2.95,2.96,2.97,2.98,2.99,2.99,3,3,3,3,3,3,3,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3,2.99,2.98,2.96,2.95,2.92,2.90,2.87,2.84,2.80,2.75,2.71,2.65,2.59,2.53,2.46,2.38,2.30,2.20,2.11,2,1.88,1.75,1.62,1.48,1.33,1.18,1.03,0.87,0.71,0.55,0.39,0.22,0.05,-0.12,-0.29,-0.46,-0.63,-0.81,-0.98,-1.15,-1.32,-1.48,-1.65,-1.81,-1.96,-2.12,-2.27,-2.42,-2.56,-2.70,-2.83,-2.96,-3.09,-3.20,-3.31,-3.41,-3.51,-3.60,-3.68,-3.75,-3.81,-3.87,-3.92,-3.95,-3.98,-3.99,-4,-4,-3.98,-3.96,-3.94,-3.90,-3.86,-3.82,-3.76,-3.70,-3.64,-3.57,-3.50,-3.42,-3.33,-3.25,-3.16,-3.06,-2.97,-2.87,-2.77,-2.66,-2.56,-2.45,-2.34,-2.23,-2.12,-2.01,-1.90,-1.80,-1.69,-1.58,-1.47,-1.37,-1.27,-1.17,-1.07,-0.97,-0.88,-0.79,-0.70,-0.62,-0.54,-0.47,-0.40,-0.33,-0.27,-0.22,-0.17,-0.13,-0.09,-0.06,-0.03,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.02,0.04,0.06,0.09,0.12,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.46,0.52,0.57,0.63,0.69,0.75,0.81,0.88,0.94,1,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.54,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.98,1.99,2,2,1.99,1.97,1.94,1.89,1.83,1.76,1.67,1.58,1.48,1.37,1.25,1.12,0.99,0.85,0.70,0.55,0.40,0.24,0.08,-0.08,-0.25,-0.42,-0.58,-0.75,-0.92,-1.08,-1.24,-1.40,-1.55,-1.70,-1.85,-1.99,-2.12,-2.25,-2.37,-2.48,-2.58,-2.67,-2.76,-2.83,-2.89,-2.94,-2.97,-2.99,-3,-3,-3,-2.99,-2.99,-2.98,-2.98,-2.97,-2.95,-2.94,-2.93,-2.91,-2.89,-2.87,-2.85,-2.82,-2.79,-2.76,-2.73,-2.70,-2.66,-2.62,-2.57,-2.53,-2.48,-2.42,-2.37,-2.31,-2.25,-2.18,-2.11,-2.04,-1.97,-1.89,-1.80,-1.72,-1.63,-1.53,-1.44,-1.33,-1.23,-1.12,-1,-0.88,-0.75,-0.63,-0.51,-0.39,-0.27,-0.15,-0.04,0.08,0.19,0.30,0.41,0.51,0.62,0.72,0.81,0.91,1,1.09,1.18,1.26,1.34,1.41,1.48,1.55,1.61,1.67,1.73,1.78,1.82,1.86,1.90,1.93,1.95,1.97,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.98,1.97,1.94,1.91,1.87,1.83,1.78,1.73,1.67,1.61,1.55,1.48,1.41,1.34,1.27,1.19,1.12,1.04,0.96,0.88,0.81,0.73,0.66,0.59,0.52,0.45,0.39,0.33,0.27,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,1.99,1.98,1.95,1.91,1.85,1.79,1.72,1.64,1.55,1.45,1.34,1.23,1.10,0.97,0.84,0.69,0.54,0.39,0.23,0.06,-0.11,-0.28,-0.46,-0.64,-0.83,-1.01,-1.20,-1.40,-1.59,-1.78,-1.98,-2.18,-2.37,-2.57,-2.77,-2.97,-3.16,-3.36,-3.55,-3.74,-3.93,-4.12,-4.30,-4.48,-4.66,-4.83,-5,-5.17,-5.33,-5.48,-5.63,-5.77,-5.91,-6.04,-6.16,-6.28,-6.39,-6.49,-6.58,-6.66,-6.74,-6.81,-6.86,-6.91,-6.95,-6.98,-6.99,-7,-6.97,-6.88,-6.74,-6.56,-6.32,-6.04,-5.73,-5.38,-5,-4.59,-4.17,-3.71,-3.25,-2.78,-2.30,-1.81,-1.31,-0.83,-0.35,0.12,0.58,1.02,1.44,1.85,2.22,2.57,2.88,3.16,3.41,3.61,3.78,3.90,3.97,4,3.95,3.83,3.62,3.36,3.04,2.66,2.25,1.80,1.34,0.84,0.34,-0.18,-0.70,-1.20,-1.70,-2.19,-2.65,-3.09,-3.49,-3.86,-4.19,-4.46,-4.69,-4.86,-4.96,-5,-4.97,-4.90,-4.78,-4.62,-4.43,-4.20,-3.96,-3.70,-3.42,-3.14,-2.86,-2.58,-2.30,-2.04,-1.80,-1.57,-1.38,-1.22,-1.10,-1.03,-1\r\r\nPARAM_ANGLE_X=0,-0,-0.02,-0.04,-0.06,-0.10,-0.14,-0.19,-0.24,-0.30,-0.37,-0.44,-0.52,-0.60,-0.69,-0.78,-0.88,-0.98,-1.08,-1.19,-1.30,-1.41,-1.52,-1.64,-1.76,-1.88,-2,-2.13,-2.25,-2.38,-2.50,-2.62,-2.75,-2.87,-3,-3.12,-3.24,-3.36,-3.48,-3.59,-3.70,-3.81,-3.92,-4.02,-4.12,-4.22,-4.31,-4.40,-4.48,-4.56,-4.63,-4.70,-4.76,-4.81,-4.86,-4.90,-4.94,-4.96,-4.98,-5,-5,-4.99,-4.97,-4.93,-4.87,-4.80,-4.72,-4.62,-4.51,-4.39,-4.26,-4.11,-3.96,-3.79,-3.62,-3.44,-3.25,-3.05,-2.84,-2.63,-2.41,-2.18,-1.95,-1.72,-1.48,-1.24,-0.99,-0.75,-0.50,-0.25,0,0.25,0.50,0.75,0.99,1.24,1.48,1.72,1.95,2.18,2.41,2.63,2.84,3.05,3.25,3.44,3.62,3.79,3.96,4.11,4.26,4.39,4.51,4.62,4.72,4.80,4.87,4.93,4.97,4.99,5,5,4.99,4.98,4.97,4.95,4.92,4.90,4.86,4.83,4.79,4.74,4.70,4.65,4.59,4.53,4.47,4.40,4.33,4.26,4.18,4.10,4.02,3.93,3.84,3.75,3.65,3.55,3.44,3.34,3.23,3.11,3,2.88,2.75,2.63,2.50,2.37,2.23,2.10,1.95,1.81,1.67,1.52,1.37,1.21,1.06,0.90,0.74,0.57,0.41,0.23,0.06,-0.11,-0.29,-0.47,-0.65,-0.83,-1.02,-1.21,-1.40,-1.59,-1.79,-1.98,-2.18,-2.38,-2.59,-2.79,-3,-3.21,-3.42,-3.61,-3.79,-3.97,-4.14,-4.29,-4.44,-4.58,-4.72,-4.84,-4.96,-5.06,-5.17,-5.26,-5.35,-5.43,-5.50,-5.57,-5.63,-5.69,-5.74,-5.79,-5.83,-5.86,-5.89,-5.92,-5.94,-5.96,-5.98,-5.99,-5.99,-6,-6,-5.96,-5.86,-5.71,-5.50,-5.25,-4.96,-4.64,-4.29,-3.93,-3.54,-3.15,-2.75,-2.35,-1.95,-1.57,-1.19,-0.83,-0.49,-0.17,0.11,0.37,0.58,0.76,0.89,0.97,1,0.98,0.92,0.83,0.72,0.57,0.40,0.22,0.03,-0.18,-0.39,-0.61,-0.82,-1.03,-1.22,-1.40,-1.57,-1.72,-1.83,-1.92,-1.98,-2\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.08,0.08,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.01,0.01,0,-0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0.01,0.01,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0,-0.01,-0.01,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0,-0,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,-0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_B2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.29,0.44,0.62,0.82,1.05,1.29,1.55,1.84,2.13,2.44,2.75,3.06,3.39,3.71,4.04,4.35,4.67,4.98,5.27,5.56,5.82,6.08,6.31,6.52,6.71,6.87,7,7.11,7.21,7.31,7.40,7.48,7.55,7.62,7.67,7.73,7.77,7.82,7.85,7.89,7.91,7.94,7.95,7.97,7.98,7.99,8,8,8.01,8.01,8.01,8.01,8.01,8,8,8,8,7.95,7.80,7.55,7.22,6.81,6.33,5.79,5.19,4.55,3.86,3.12,2.37,1.58,0.80,0,-0.80,-1.58,-2.37,-3.12,-3.86,-4.55,-5.19,-5.79,-6.33,-6.81,-7.22,-7.55,-7.80,-7.95,-8,-8,-7.99,-7.97,-7.94,-7.91,-7.88,-7.83,-7.79,-7.73,-7.67,-7.60,-7.53,-7.45,-7.37,-7.28,-7.19,-7.09,-6.99,-6.88,-6.77,-6.65,-6.53,-6.40,-6.27,-6.14,-6,-5.86,-5.72,-5.57,-5.42,-5.27,-5.11,-4.96,-4.79,-4.63,-4.46,-4.30,-4.13,-3.95,-3.78,-3.60,-3.42,-3.24,-3.06,-2.88,-2.70,-2.52,-2.33,-2.15,-1.96,-1.78,-1.59,-1.41,-1.22,-1.04,-0.85,-0.67,-0.48,-0.30,-0.12,0.06,0.24,0.42,0.60,0.78,0.95,1.13,1.30,1.46,1.63,1.79,1.96,2.11,2.27,2.42,2.57,2.72,2.86,3,3.14,3.27,3.40,3.53,3.65,3.77,3.88,3.99,4.09,4.19,4.28,4.37,4.45,4.53,4.60,4.67,4.73,4.79,4.83,4.88,4.91,4.94,4.97,4.99,5,5,4.98,4.91,4.81,4.66,4.49,4.28,4.04,3.78,3.49,3.19,2.86,2.52,2.16,1.80,1.42,1.04,0.65,0.26,-0.13,-0.52,-0.91,-1.29,-1.66,-2.02,-2.37,-2.71,-3.03,-3.33,-3.62,-3.88,-4.12,-4.33,-4.52,-4.68,-4.80,-4.89,-4.95,-4.97,-4.94,-4.84,-4.70,-4.50,-4.26,-3.98,-3.68,-3.36,-3.01,-2.66,-2.31,-1.96,-1.61,-1.29,-0.99,-0.71,-0.47,-0.27,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.02,-0.03,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.32,-0.38,-0.44,-0.50,-0.57,-0.63,-0.70,-0.77,-0.85,-0.92,-0.99,-1.06,-1.14,-1.21,-1.28,-1.35,-1.41,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.76,-1.72,-1.67,-1.62,-1.57,-1.51,-1.46,-1.40,-1.33,-1.27,-1.20,-1.13,-1.05,-0.98,-0.90,-0.82,-0.74,-0.66,-0.58,-0.49,-0.41,-0.32,-0.23,-0.14,-0.05,0.04,0.14,0.23,0.33,0.42,0.52,0.61,0.71,0.81,0.90,1,1.10,1.20,1.29,1.38,1.47,1.55,1.63,1.71,1.79,1.86,1.93,2,2.06,2.12,2.18,2.24,2.29,2.34,2.39,2.44,2.49,2.53,2.57,2.61,2.64,2.68,2.71,2.74,2.77,2.79,2.82,2.84,2.86,2.88,2.90,2.92,2.93,2.94,2.95,2.96,2.97,2.98,2.99,2.99,3,3,3,3,3,3,3,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3,2.99,2.98,2.96,2.95,2.92,2.90,2.87,2.84,2.80,2.75,2.71,2.65,2.59,2.53,2.46,2.38,2.30,2.20,2.11,2,1.88,1.75,1.62,1.48,1.33,1.18,1.03,0.87,0.71,0.55,0.39,0.22,0.05,-0.12,-0.29,-0.46,-0.63,-0.81,-0.98,-1.15,-1.32,-1.48,-1.65,-1.81,-1.96,-2.12,-2.27,-2.42,-2.56,-2.70,-2.83,-2.96,-3.09,-3.20,-3.31,-3.41,-3.51,-3.60,-3.68,-3.75,-3.81,-3.87,-3.92,-3.95,-3.98,-3.99,-4,-4,-3.98,-3.96,-3.94,-3.90,-3.86,-3.82,-3.76,-3.70,-3.64,-3.57,-3.50,-3.42,-3.33,-3.25,-3.16,-3.06,-2.97,-2.87,-2.77,-2.66,-2.56,-2.45,-2.34,-2.23,-2.12,-2.01,-1.90,-1.80,-1.69,-1.58,-1.47,-1.37,-1.27,-1.17,-1.07,-0.97,-0.88,-0.79,-0.70,-0.62,-0.54,-0.47,-0.40,-0.33,-0.27,-0.22,-0.17,-0.13,-0.09,-0.06,-0.03,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.02,0.04,0.06,0.09,0.12,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.46,0.52,0.57,0.63,0.69,0.75,0.81,0.88,0.94,1,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.54,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.98,1.99,2,2,1.99,1.97,1.94,1.89,1.83,1.76,1.67,1.58,1.48,1.37,1.25,1.12,0.99,0.85,0.70,0.55,0.40,0.24,0.08,-0.08,-0.25,-0.42,-0.58,-0.75,-0.92,-1.08,-1.24,-1.40,-1.55,-1.70,-1.85,-1.99,-2.12,-2.25,-2.37,-2.48,-2.58,-2.67,-2.76,-2.83,-2.89,-2.94,-2.97,-2.99,-3,-3,-3,-2.99,-2.99,-2.98,-2.98,-2.97,-2.95,-2.94,-2.93,-2.91,-2.89,-2.87,-2.85,-2.82,-2.79,-2.76,-2.73,-2.70,-2.66,-2.62,-2.57,-2.53,-2.48,-2.42,-2.37,-2.31,-2.25,-2.18,-2.11,-2.04,-1.97,-1.89,-1.80,-1.72,-1.63,-1.53,-1.44,-1.33,-1.23,-1.12,-1,-0.88,-0.75,-0.63,-0.51,-0.39,-0.27,-0.15,-0.04,0.08,0.19,0.30,0.41,0.51,0.62,0.72,0.81,0.91,1,1.09,1.18,1.26,1.34,1.41,1.48,1.55,1.61,1.67,1.73,1.78,1.82,1.86,1.90,1.93,1.95,1.97,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.98,1.97,1.94,1.91,1.87,1.83,1.78,1.73,1.67,1.61,1.55,1.48,1.41,1.34,1.27,1.19,1.12,1.04,0.96,0.88,0.81,0.73,0.66,0.59,0.52,0.45,0.39,0.33,0.27,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,1.99,1.98,1.95,1.91,1.85,1.79,1.72,1.64,1.55,1.45,1.34,1.23,1.10,0.97,0.84,0.69,0.54,0.39,0.23,0.06,-0.11,-0.28,-0.46,-0.64,-0.83,-1.01,-1.20,-1.40,-1.59,-1.78,-1.98,-2.18,-2.37,-2.57,-2.77,-2.97,-3.16,-3.36,-3.55,-3.74,-3.93,-4.12,-4.30,-4.48,-4.66,-4.83,-5,-5.17,-5.33,-5.48,-5.63,-5.77,-5.91,-6.04,-6.16,-6.28,-6.39,-6.49,-6.58,-6.66,-6.74,-6.81,-6.86,-6.91,-6.95,-6.98,-6.99,-7,-6.97,-6.88,-6.74,-6.56,-6.32,-6.04,-5.73,-5.38,-5,-4.59,-4.17,-3.71,-3.25,-2.78,-2.30,-1.81,-1.31,-0.83,-0.35,0.12,0.58,1.02,1.44,1.85,2.22,2.57,2.88,3.16,3.41,3.61,3.78,3.90,3.97,4,3.95,3.83,3.62,3.36,3.04,2.66,2.25,1.80,1.34,0.84,0.34,-0.18,-0.70,-1.20,-1.70,-2.19,-2.65,-3.09,-3.49,-3.86,-4.19,-4.46,-4.69,-4.86,-4.96,-5,-4.97,-4.90,-4.78,-4.62,-4.43,-4.20,-3.96,-3.70,-3.42,-3.14,-2.86,-2.58,-2.30,-2.04,-1.80,-1.57,-1.38,-1.22,-1.10,-1.03,-1\r\r\nPARAM_ANGLE_X=0,-0,-0.02,-0.04,-0.06,-0.10,-0.14,-0.19,-0.24,-0.30,-0.37,-0.44,-0.52,-0.60,-0.69,-0.78,-0.88,-0.98,-1.08,-1.19,-1.30,-1.41,-1.52,-1.64,-1.76,-1.88,-2,-2.13,-2.25,-2.38,-2.50,-2.62,-2.75,-2.87,-3,-3.12,-3.24,-3.36,-3.48,-3.59,-3.70,-3.81,-3.92,-4.02,-4.12,-4.22,-4.31,-4.40,-4.48,-4.56,-4.63,-4.70,-4.76,-4.81,-4.86,-4.90,-4.94,-4.96,-4.98,-5,-5,-4.99,-4.97,-4.93,-4.87,-4.80,-4.72,-4.62,-4.51,-4.39,-4.26,-4.11,-3.96,-3.79,-3.62,-3.44,-3.25,-3.05,-2.84,-2.63,-2.41,-2.18,-1.95,-1.72,-1.48,-1.24,-0.99,-0.75,-0.50,-0.25,0,0.25,0.50,0.75,0.99,1.24,1.48,1.72,1.95,2.18,2.41,2.63,2.84,3.05,3.25,3.44,3.62,3.79,3.96,4.11,4.26,4.39,4.51,4.62,4.72,4.80,4.87,4.93,4.97,4.99,5,5,4.99,4.98,4.97,4.95,4.92,4.90,4.86,4.83,4.79,4.74,4.70,4.65,4.59,4.53,4.47,4.40,4.33,4.26,4.18,4.10,4.02,3.93,3.84,3.75,3.65,3.55,3.44,3.34,3.23,3.11,3,2.88,2.75,2.63,2.50,2.37,2.23,2.10,1.95,1.81,1.67,1.52,1.37,1.21,1.06,0.90,0.74,0.57,0.41,0.23,0.06,-0.11,-0.29,-0.47,-0.65,-0.83,-1.02,-1.21,-1.40,-1.59,-1.79,-1.98,-2.18,-2.38,-2.59,-2.79,-3,-3.21,-3.42,-3.61,-3.79,-3.97,-4.14,-4.29,-4.44,-4.58,-4.72,-4.84,-4.96,-5.06,-5.17,-5.26,-5.35,-5.43,-5.50,-5.57,-5.63,-5.69,-5.74,-5.79,-5.83,-5.86,-5.89,-5.92,-5.94,-5.96,-5.98,-5.99,-5.99,-6,-6,-5.96,-5.86,-5.71,-5.50,-5.25,-4.96,-4.64,-4.29,-3.93,-3.54,-3.15,-2.75,-2.35,-1.95,-1.57,-1.19,-0.83,-0.49,-0.17,0.11,0.37,0.58,0.76,0.89,0.97,1,0.98,0.92,0.83,0.72,0.57,0.40,0.22,0.03,-0.18,-0.39,-0.61,-0.82,-1.03,-1.22,-1.40,-1.57,-1.72,-1.83,-1.92,-1.98,-2\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.08,0.08,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.01,0.01,0,-0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0.01,0.01,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0,-0.01,-0.01,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0,-0,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,-0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_C.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.78,-0.85,-0.91,-0.98,-1.06,-1.13,-1.20,-1.28,-1.35,-1.43,-1.50,-1.57,-1.65,-1.72,-1.80,-1.87,-1.94,-2.02,-2.09,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_C2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.78,-0.85,-0.91,-0.98,-1.06,-1.13,-1.20,-1.28,-1.35,-1.43,-1.50,-1.57,-1.65,-1.72,-1.80,-1.87,-1.94,-2.02,-2.09,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/idle_C2_copy.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=-30,-29.62,-28.55,-26.87,-24.74,-22.20,-19.42,-16.49,-13.51,-10.58,-7.80,-5.26,-3.13,-1.45,-0.38,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=-10,0,-0,-0.01,-0.02,-0.04,-0.06,-0.09,-0.12,-0.16,-0.20,-0.24,-0.29,-0.34,-0.39,-0.44,-0.50,-0.56,-0.63,-0.69,-0.76,-0.83,-0.90,-0.97,-1.04,-1.11,-1.19,-1.26,-1.34,-1.41,-1.49,-1.57,-1.64,-1.72,-1.79,-1.87,-1.94,-2.01,-2.08,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=10,0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.11,0.13,0.16,0.19,0.22,0.26,0.30,0.33,0.38,0.42,0.46,0.50,0.55,0.60,0.65,0.69,0.74,0.79,0.84,0.89,0.94,0.99,1.04,1.10,1.14,1.20,1.24,1.29,1.34,1.39,1.43,1.48,1.52,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nSWING_SKIRT=0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nRIBBON_BACK=0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_X=-0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_L_ARM=0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/kurakura1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BASE_X=-1.76,-3.70,-6.12,-8.80,-11.65,-14.45,-17.06,-19.37,-21.32,-22.78,-23.69,-24,-23.99,-23.95,-23.90,-23.82,-23.74,-23.65,-23.55,-23.45,-23.35,-23.26,-23.18,-23.10,-23.05,-23.01,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23\nPARAM_BASE_Y=8.58,16.00,23.24,29.06,32.75,34,31.44,25.24,17,8.76,2.56,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.12,4.48,4.76,4.94,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\nPARAM_ANGLE_Z=-1.99,-4.16,-6.88,-9.90,-13.10,-16.25,-19.19,-21.79,-23.98,-25.62,-26.65,-27,-26.30,-24.35,-21.27,-17.36,-12.69,-7.61,-2.24,3.24,8.61,13.69,18.36,22.27,25.35,27.30,28,27.76,27.07,25.99,24.58,22.92,21.01,18.93,16.75,14.50,12.25,10.07,7.99,6.08,4.42,3.01,1.93,1.24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BODY_ANGLE_X=2.27,4.24,6.15,7.69,8.67,9,8.98,8.93,8.85,8.74,8.59,8.43,8.23,8.02,7.78,7.53,7.25,6.97,6.66,6.35,6.03,5.70,5.36,5.02,4.67,4.33,3.98,3.64,3.30,2.97,2.65,2.34,2.03,1.75,1.47,1.22,0.98,0.77,0.57,0.41,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.59,-1.23,-2.04,-2.93,-3.88,-4.82,-5.69,-6.46,-7.11,-7.59,-7.90,-8,-7.99,-7.96,-7.91,-7.84,-7.74,-7.62,-7.47,-7.29,-7.08,-6.83,-6.54,-6.22,-5.85,-5.45,-5,-4.53,-4.08,-3.65,-3.23,-2.83,-2.45,-2.09,-1.75,-1.44,-1.15,-0.90,-0.67,-0.47,-0.31,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=5.80,10.83,15.72,19.66,22.15,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23\nPARAM_ANGLE_X=0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/kurakura2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.57,0.53,0.47,0.42,0.35,0.28,0.21,0.15,0.08,0.03,-0.02,-0.06,-0.09,-0.11,-0.12,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.20,-27.77,-28.97,-29.73,-30,-29.32,-27.40,-24.37,-20.53,-15.95,-10.96,-5.69,-0.31,4.96,9.95,14.53,18.37,21.40,23.32,24,22.81,19.83,15.79,11.06,6.15,1.31,-3.28,-7.14,-10.25,-12.26,-13,-12.18,-10.04,-6.93,-3.08,1.20,5.67,10.20,14.60,18.70,22.41,25.48,27.90,29.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.73,28.97,27.79,26.23,24.39,22.31,20.05,17.71,15.31,12.90,10.58,8.40,6.36,4.56,2.99,1.72,0.79,0.20,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.96,9.85,9.66,9.41,9.10,8.73,8.29,7.82,7.29,6.73,6.12,5.49,4.81,4.12,3.40,2.67,1.91,1.15,0.38,-0.38,-1.15,-1.91,-2.67,-3.40,-4.12,-4.81,-5.49,-6.12,-6.73,-7.29,-7.82,-8.29,-8.73,-9.10,-9.41,-9.66,-9.85,-9.96,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.90,-5.10,-4.30,-3.53,-2.80,-2.12,-1.52,-1.00,-0.57,-0.26,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.43,-0.74,-1.12,-1.55,-2.05,-2.58,-3.14,-3.72,-4.31,-4.93,-5.53,-6.12,-6.70,-7.25,-7.77,-8.25,-8.68,-9.06,-9.39,-9.65,-9.84,-9.96,-10,-9.90,-9.61,-9.14,-8.52,-7.76,-6.90,-5.90,-4.85,-3.73,-2.55,-1.37,-0.15,1.05,2.24,3.40,4.51,5.54,6.49,7.36,8.13,8.78,9.30,9.68,9.92,10,9.93,9.73,9.40,8.96,8.43,7.83,7.13,6.39,5.61,4.79,3.96,3.10,2.26,1.43,0.62,-0.16,-0.88,-1.55,-2.16,-2.69,-3.15,-3.51,-3.78,-3.94,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=2.93,4.85,7.07,9.49,12.07,14.65,17.28,19.76,22.12,24.29,26.20,27.77,28.97,29.73,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.70,28.83,27.47,25.69,23.60,21.20,18.58,15.83,13,10.17,7.42,4.80,2.40,0.31,-1.47,-2.83,-3.70,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.52,8.26,6.43,4.35,2.18,0.16,-1.56,-2.88,-3.71,-4,-0.25,5.76,11.37,15.42,17,16.72,15.98,14.90,13.52,11.96,10.21,8.30,6.34,4.26,2.16,0,-2.54,-4.68,-6.51,-8.09,-9.42,-10.52,-11.44,-12.19,-12.79,-13.26,-13.59,-13.83,-13.96,-14,-13.81,-13.28,-12.44,-11.34,-10.05,-8.56,-6.95,-5.25,-3.50,-1.75,-0.05,1.56,3.05,4.34,5.44,6.28,6.81,7,6.94,6.76,6.49,6.12,5.69,5.21,4.68,4.13,3.57,3.01,2.47,1.96,1.48,1.06,0.70,0.40,0.18,0.05,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.36,0.53,0.69,0.82,0.91,0.94,0.93,0.89,0.84,0.78,0.70,0.61,0.53,0.44,0.35,0.27,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0.06,0.10,0.15,0.20,0.25,0.30,0.36,0.41,0.46,0.50,0.54,0.57,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.58,0.53,0.47,0.40,0.32,0.24,0.16,0.08,0.00,-0.06,-0.12,-0.17,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.80,0.68,0.53,0.37,0.20,0.02,-0.15,-0.32,-0.47,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.89,-0.87,-0.84,-0.81,-0.77,-0.74,-0.70,-0.66,-0.62,-0.57,-0.53,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.14,-0.08,-0.03,0.02,0.07,0.12,0.17,0.23,0.28,0.32,0.37,0.42,0.47,0.51,0.56,0.60,0.64,0.68,0.72,0.75,0.79,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.91,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0.06,0.10,0.14,0.19,0.24,0.29,0.34,0.39,0.43,0.48,0.52,0.55,0.57,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.55,0.50,0.45,0.38,0.30,0.22,0.15,0.07,-0.00,-0.07,-0.13,-0.18,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0\nPARAM_BROW_R_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.56,0.52,0.47,0.41,0.34,0.27,0.20,0.13,0.06,0.00,-0.05,-0.09,-0.12,-0.14,-0.15,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.85,0.84,0.84,0.84,0.84,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.93,0.94,0.95,0.96,0.97,0.98,0.98,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.05,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.32,-0.36,-0.40,-0.43,-0.45,-0.47,-0.49,-0.49,-0.47,-0.43,-0.36,-0.27,-0.16,-0.04,0.08,0.21,0.33,0.45,0.56,0.65,0.72,0.76,0.78,0.77,0.74,0.70,0.64,0.56,0.48,0.39,0.29,0.18,0.07,-0.03,-0.14,-0.25,-0.35,-0.44,-0.52,-0.60,-0.66,-0.70,-0.73,-0.74,-0.69,-0.59,-0.47,-0.33,-0.17,0.10,0.32,0.46,0.53,0.59,0.62,0.63,0.63,0.63,0.52,0.32,0.09,-0.16,-0.41,-0.62,-0.70,-0.71,-0.70,-0.69,-0.66,-0.62,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.25,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0.08,0.13,0.19,0.25,0.32,0.39,0.45,0.52,0.58,0.64,0.69,0.73,0.76,0.78,0.79,0.79,0.79,0.79,0.78,0.78,0.77,0.76,0.75,0.74,0.72,0.70,0.68,0.65,0.62,0.58,0.54,0.50,0.46,0.42,0.38,0.34,0.31,0.27,0.24,0.20,0.17,0.14,0.11,0.09,0.07,0.05,0.03,0.02,0.01,0.00,0,0.16,0.43,0.67,0.85,0.92,0.87,0.74,0.60,0.46,0.19,-0.01,-0.18,-0.34,-0.50,-0.73,-0.86,-0.94,-0.99,-1,-0.77,-0.37,-0.13,-0.11,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/kurakura3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.57,0.53,0.47,0.42,0.35,0.28,0.21,0.15,0.08,0.03,-0.02,-0.06,-0.09,-0.11,-0.12,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0\nPARAM_ANGLE_Z=-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.20,-27.77,-28.97,-29.73,-30,-29.32,-27.40,-24.37,-20.53,-15.95,-10.96,-5.69,-0.31,4.96,9.95,14.53,18.37,21.40,23.32,24,22.81,19.83,15.79,11.06,6.15,1.31,-3.28,-7.14,-10.25,-12.26,-13,-12.18,-10.04,-6.93,-3.08,1.20,5.67,10.20,14.60,18.70,22.41,25.48,27.90,29.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.73,28.97,27.79,26.23,24.39,22.31,20.05,17.71,15.31,12.90,10.58,8.40,6.36,4.56,2.99,1.72,0.79,0.20,0\nPARAM_BODY_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.96,9.85,9.66,9.41,9.10,8.73,8.29,7.82,7.29,6.73,6.12,5.49,4.81,4.12,3.40,2.67,1.91,1.15,0.38,-0.38,-1.15,-1.91,-2.67,-3.40,-4.12,-4.81,-5.49,-6.12,-6.73,-7.29,-7.82,-8.29,-8.73,-9.10,-9.41,-9.66,-9.85,-9.96,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.90,-5.10,-4.30,-3.53,-2.80,-2.12,-1.52,-1.00,-0.57,-0.26,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.43,-0.74,-1.12,-1.55,-2.05,-2.58,-3.14,-3.72,-4.31,-4.93,-5.53,-6.12,-6.70,-7.25,-7.77,-8.25,-8.68,-9.06,-9.39,-9.65,-9.84,-9.96,-10,-9.90,-9.61,-9.14,-8.52,-7.76,-6.90,-5.90,-4.85,-3.73,-2.55,-1.37,-0.15,1.05,2.24,3.40,4.51,5.54,6.49,7.36,8.13,8.78,9.30,9.68,9.92,10,9.93,9.73,9.40,8.96,8.43,7.83,7.13,6.39,5.61,4.79,3.96,3.10,2.26,1.43,0.62,-0.16,-0.88,-1.55,-2.16,-2.69,-3.15,-3.51,-3.78,-3.94,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0\nPARAM_ANGLE_Y=2.93,4.85,7.07,9.49,12.07,14.65,17.28,19.76,22.12,24.29,26.20,27.77,28.97,29.73,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.70,28.83,27.47,25.69,23.60,21.20,18.58,15.83,13,10.17,7.42,4.80,2.40,0.31,-1.47,-2.83,-3.70,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0\nPARAM_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.52,8.26,6.43,4.35,2.18,0.16,-1.56,-2.88,-3.71,-4,-0.25,5.76,11.37,15.42,17,16.72,15.98,14.90,13.52,11.96,10.21,8.30,6.34,4.26,2.16,0,-2.54,-4.68,-6.51,-8.09,-9.42,-10.52,-11.44,-12.19,-12.79,-13.26,-13.59,-13.83,-13.96,-14,-13.81,-13.28,-12.44,-11.34,-10.05,-8.56,-6.95,-5.25,-3.50,-1.75,-0.05,1.56,3.05,4.34,5.44,6.28,6.81,7,6.94,6.76,6.49,6.12,5.69,5.21,4.68,4.13,3.57,3.01,2.47,1.96,1.48,1.06,0.70,0.40,0.18,0.05,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.36,0.53,0.69,0.82,0.91,0.94,0.93,0.89,0.84,0.78,0.70,0.61,0.53,0.44,0.35,0.27,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0.06,0.10,0.15,0.20,0.25,0.30,0.36,0.41,0.46,0.50,0.54,0.57,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.58,0.53,0.47,0.40,0.32,0.24,0.16,0.08,0.00,-0.06,-0.12,-0.17,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0\nPARAM_MOUTH_FORM=0.80,0.68,0.53,0.37,0.20,0.02,-0.15,-0.32,-0.47,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.89,-0.87,-0.84,-0.81,-0.77,-0.74,-0.70,-0.66,-0.62,-0.57,-0.53,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.14,-0.08,-0.03,0.02,0.07,0.12,0.17,0.23,0.28,0.32,0.37,0.42,0.47,0.51,0.56,0.60,0.64,0.68,0.72,0.75,0.79,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.91,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0.06,0.10,0.14,0.19,0.24,0.29,0.34,0.39,0.43,0.48,0.52,0.55,0.57,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.55,0.50,0.45,0.38,0.30,0.22,0.15,0.07,-0.00,-0.07,-0.13,-0.18,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0\nPARAM_BROW_R_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.56,0.52,0.47,0.41,0.34,0.27,0.20,0.13,0.06,0.00,-0.05,-0.09,-0.12,-0.14,-0.15,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0\nPARAM_BROW_R_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.85,0.84,0.84,0.84,0.84,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.93,0.94,0.95,0.96,0.97,0.98,0.98,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.05,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.32,-0.36,-0.40,-0.43,-0.45,-0.47,-0.49,-0.49,-0.47,-0.43,-0.36,-0.27,-0.16,-0.04,0.08,0.21,0.33,0.45,0.56,0.65,0.72,0.76,0.78,0.77,0.74,0.70,0.64,0.56,0.48,0.39,0.29,0.18,0.07,-0.03,-0.14,-0.25,-0.35,-0.44,-0.52,-0.60,-0.66,-0.70,-0.73,-0.74,-0.69,-0.59,-0.47,-0.33,-0.17,0.10,0.32,0.46,0.53,0.59,0.62,0.63,0.63,0.63,0.52,0.32,0.09,-0.16,-0.41,-0.62,-0.70,-0.71,-0.70,-0.69,-0.66,-0.62,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.25,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0\nPARAM_EYE_BALL_Y=0.08,0.13,0.19,0.25,0.32,0.39,0.45,0.52,0.58,0.64,0.69,0.73,0.76,0.78,0.79,0.79,0.79,0.79,0.78,0.78,0.77,0.76,0.75,0.74,0.72,0.70,0.68,0.65,0.62,0.58,0.54,0.50,0.46,0.42,0.38,0.34,0.31,0.27,0.24,0.20,0.17,0.14,0.11,0.09,0.07,0.05,0.03,0.02,0.01,0.00,0,0.16,0.43,0.67,0.85,0.92,0.87,0.74,0.60,0.46,0.19,-0.01,-0.18,-0.34,-0.50,-0.73,-0.86,-0.94,-0.99,-1,-0.77,-0.37,-0.13,-0.11,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/touch1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.02,0.04,0.06,0.10,0.13,0.18,0.22,0.26,0.30,0.34,0.38,0.41,0.44,0.45,0.47,0.47,0.47,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.39,0.38,0.36,0.34,0.33,0.31,0.29,0.27,0.25,0.23,0.22,0.20,0.18,0.16,0.15,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.05,0.05,0.07,0.08,0.10,0.13,0.16,0.18,0.21,0.23,0.24,0.26,0.26,0.26,0.25,0.24,0.23,0.21,0.19,0.16,0.14,0.11,0.08,0.05,0.02,-0.02,-0.05,-0.08,-0.11,-0.14,-0.17,-0.20,-0.22,-0.25,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.31,-0.29,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.04,-0.02,-0.01,-0.00,0\nPARAM_BASE_X=0,0,-0.97,-2.56,-3.65,-4,-3.86,-3.50,-2.98,-2.38,-1.77,-1.19,-0.70,-0.32,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,1.94,5.11,7.29,8,7.72,7.00,5.96,4.77,3.53,2.38,1.39,0.64,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-0.28,-1.06,-2.27,-3.83,-5.64,-7.63,-9.68,-11.77,-13.81,-15.75,-17.49,-19.03,-20.29,-21.22,-21.80,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-21.99,-21.96,-21.91,-21.84,-21.76,-21.66,-21.54,-21.40,-21.25,-21.08,-20.89,-20.69,-20.48,-20.26,-20.02,-19.76,-19.50,-19.22,-18.94,-18.64,-18.34,-18.02,-17.69,-17.36,-17.01,-16.67,-16.31,-15.94,-15.58,-15.20,-14.82,-14.44,-14.05,-13.65,-13.26,-12.86,-12.46,-12.06,-11.65,-11.25,-10.85,-10.44,-10.04,-9.64,-9.24,-8.85,-8.45,-8.06,-7.67,-7.29,-6.91,-6.54,-6.17,-5.81,-5.45,-5.11,-4.77,-4.43,-4.11,-3.79,-3.49,-3.19,-2.91,-2.63,-2.37,-2.11,-1.88,-1.65,-1.43,-1.23,-1.04,-0.87,-0.71,-0.56,-0.43,-0.32,-0.22,-0.14,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-0.13,-0.48,-1.03,-1.74,-2.56,-3.47,-4.40,-5.35,-6.28,-7.16,-7.95,-8.65,-9.22,-9.64,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.97,-9.90,-9.78,-9.62,-9.44,-9.23,-9.01,-8.77,-8.53,-8.29,-8.06,-7.84,-7.64,-7.46,-7.30,-7.17,-7.08,-7.02,-7,-7.04,-7.15,-7.31,-7.52,-7.75,-8,-8.25,-8.48,-8.69,-8.85,-8.96,-9,-8.97,-8.89,-8.76,-8.59,-8.37,-8.12,-7.84,-7.53,-7.20,-6.85,-6.48,-6.11,-5.74,-5.36,-4.98,-4.62,-4.25,-3.91,-3.59,-3.28,-3.00,-2.76,-2.53,-2.35,-2.20,-2.09,-2.02,-2,-2.02,-2.09,-2.20,-2.35,-2.54,-2.75,-2.99,-3.25,-3.53,-3.83,-4.15,-4.47,-4.79,-5.12,-5.45,-5.77,-6.09,-6.39,-6.67,-6.93,-7.17,-7.38,-7.57,-7.72,-7.83,-7.90,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.85,-7.65,-7.33,-6.92,-6.43,-5.87,-5.26,-4.62,-3.96,-3.30,-2.66,-2.05,-1.49,-1.00,-0.59,-0.27,-0.07,0\nPARAM_BODY_ANGLE_Y=-0.05,-0.19,-0.41,-0.70,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4.00,-3.99,-3.97,-3.95,-3.93,-3.90,-3.86,-3.82,-3.78,-3.73,-3.68,-3.62,-3.56,-3.50,-3.43,-3.36,-3.28,-3.21,-3.13,-3.05,-2.97,-2.88,-2.79,-2.71,-2.62,-2.52,-2.43,-2.34,-2.25,-2.15,-2.06,-1.96,-1.87,-1.78,-1.68,-1.59,-1.50,-1.41,-1.32,-1.23,-1.15,-1.06,-0.98,-0.90,-0.82,-0.75,-0.67,-0.60,-0.54,-0.47,-0.41,-0.35,-0.30,-0.25,-0.21,-0.16,-0.13,-0.09,-0.07,-0.04,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.51,0.52,0.53,0.54,0.55,0.57,0.58,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.56,0.55,0.55,0.55,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.32,-0.70,-1.21,-1.85,-2.61,-3.47,-4.43,-5.45,-6.57,-7.73,-8.96,-10.22,-11.51,-12.83,-14.17,-15.51,-16.82,-18.14,-19.42,-20.67,-21.88,-23.02,-24.13,-25.15,-26.09,-26.96,-27.72,-28.39,-28.95,-29.40,-29.73,-29.93,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.77,-26.20,-24.36,-22.24,-19.93,-17.49,-15,-12.51,-10.07,-7.76,-5.64,-3.80,-2.23,-1.03,-0.27,0\nPARAM_ANGLE_X=-0.38,-1.45,-3.10,-5.23,-7.69,-10.41,-13.20,-16.05,-18.83,-21.48,-23.86,-25.95,-27.67,-28.93,-29.73,-30,-29.91,-29.66,-29.26,-28.71,-28.02,-27.22,-26.30,-25.28,-24.19,-23.00,-21.76,-20.44,-19.10,-17.72,-16.31,-14.89,-13.46,-12.06,-10.65,-9.28,-7.95,-6.66,-5.44,-4.26,-3.18,-2.17,-1.24,-0.43,0.28,0.88,1.36,1.71,1.93,2,1.60,0.53,-1.13,-3.20,-5.50,-8,-10.50,-12.80,-14.88,-16.53,-17.60,-18,-17.91,-17.64,-17.21,-16.64,-15.93,-15.11,-14.18,-13.16,-12.08,-10.94,-9.73,-8.51,-7.27,-6.03,-4.80,-3.60,-2.40,-1.28,-0.22,0.78,1.70,2.52,3.24,3.86,4.34,4.70,4.93,5,4.98,4.92,4.83,4.70,4.55,4.37,4.17,3.94,3.71,3.45,3.19,2.92,2.64,2.36,2.08,1.81,1.55,1.29,1.06,0.83,0.63,0.45,0.30,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.92,0.74,0.50,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.22,0.31,0.39,0.47,0.54,0.59,0.63,0.64,0.63,0.62,0.59,0.56,0.53,0.49,0.44,0.40,0.35,0.30,0.26,0.21,0.17,0.13,0.09,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.16,0.25,0.35,0.44,0.52,0.58,0.62,0.63,0.62,0.61,0.58,0.55,0.51,0.47,0.42,0.37,0.32,0.26,0.21,0.16,0.12,0.08,0.05,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.11,-0.13,-0.15,-0.17,-0.19,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.37,-0.39,-0.41,-0.42,-0.44,-0.45,-0.46,-0.47,-0.48,-0.49,-0.50,-0.50,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.49,-0.47,-0.45,-0.41,-0.38,-0.34,-0.30,-0.26,-0.21,-0.17,-0.13,-0.10,-0.06,-0.04,-0.02,-0.00,0\nPARAM_MOUTH_FORM=0.97,0.90,0.79,0.65,0.49,0.31,0.12,-0.07,-0.26,-0.43,-0.59,-0.73,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.62,-0.48,-0.33,-0.17,0,0.17,0.33,0.48,0.62,0.75,0.85,0.93,0.98,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,0.74,0.26,0,0.73,1,1.00,1.00,0.99,0.98,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.63,0.22,0,0.05,0.15,0.28,0.42,0.55,0.67,0.75,0.80,0.83,0.85,0.87,0.89,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.83,0.82,0.81,0.80,0.79,0.78,0.77,0.77,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.75,0.75,0.76,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.82,0.84,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.89,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.86,0.88,0.90,0.91,0.93,0.95,0.96,0.97,0.98,0.99,1.00,1\nPARAM_BROW_L_FORM=-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.93,-0.93,-0.93,-0.93,-0.93,-0.94,-0.94,-0.94,-0.94,-0.95,-0.95,-0.95,-0.96,-0.96,-0.96,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.50,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.11,-0.11,-0.12,-0.12,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.16,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0\nPARAM_BROW_L_Y=0.50,0.51,0.52,0.53,0.54,0.56,0.57,0.59,0.61,0.62,0.64,0.65,0.66,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.70,0.71,0.71,0.71,0.71,0.71,0.70,0.70,0.69,0.69,0.68,0.68,0.67,0.66,0.66,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.60,0.60,0.59,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0.02,0.04,0.07,0.10,0.14,0.18,0.23,0.27,0.32,0.36,0.39,0.43,0.45,0.47,0.49,0.49,0.49,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.41,0.39,0.38,0.36,0.34,0.32,0.30,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.15,0.14,0.12,0.11,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.05,0.05,0.07,0.09,0.11,0.14,0.17,0.20,0.23,0.25,0.27,0.29,0.29,0.29,0.28,0.27,0.25,0.23,0.20,0.17,0.14,0.11,0.08,0.04,0.00,-0.04,-0.07,-0.11,-0.15,-0.18,-0.22,-0.25,-0.28,-0.31,-0.33,-0.36,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.40,-0.38,-0.36,-0.33,-0.30,-0.27,-0.24,-0.21,-0.17,-0.14,-0.11,-0.08,-0.05,-0.03,-0.01,-0.00,0\nPARAM_BROW_R_FORM=-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.50,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,0.74,0.26,0,0.73,1,1.00,0.99,0.99,0.98,0.97,0.96,0.95,0.94,0.93,0.92,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.85,0.85,0.85,0.85,0.85,0.63,0.22,0,0.05,0.15,0.27,0.41,0.54,0.65,0.74,0.79,0.82,0.85,0.87,0.89,0.90,0.91,0.92,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.88,0.87,0.86,0.85,0.84,0.83,0.82,0.80,0.79,0.78,0.78,0.77,0.76,0.75,0.75,0.74,0.74,0.73,0.73,0.73,0.73,0.73,0.74,0.74,0.75,0.75,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.83,0.85,0.86,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.98,0.99,0.99,1.00,1\nPARAM_TERE=0.51,0.52,0.55,0.59,0.63,0.67,0.72,0.77,0.81,0.86,0.90,0.93,0.96,0.98,1.00,1,0.99,0.98,0.95,0.91,0.87,0.82,0.77,0.73,0.68,0.63,0.59,0.55,0.52,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.56,0.57,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.80,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.91,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,0.98,0.96,0.94,0.91,0.87,0.83,0.79,0.75,0.71,0.67,0.63,0.59,0.56,0.54,0.52,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.04,0.08,0.13,0.19,0.25,0.32,0.39,0.46,0.52,0.58,0.63,0.67,0.70,0.72,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.71,0.70,0.69,0.69,0.68,0.64,0.54,0.40,0.23,0.04,-0.17,-0.38,-0.57,-0.74,-0.88,-0.97,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.49,-0.39,-0.28,-0.18,-0.07,0.04,0.14,0.25,0.35,0.45,0.54,0.63,0.70,0.78,0.84,0.89,0.93,0.96,0.98,0.99,0.99,0.98,0.98,0.97,0.95,0.94,0.92,0.90,0.88,0.85,0.82,0.79,0.76,0.72,0.69,0.65,0.60,0.56,0.51,0.46,0.41,0.35,0.30,0.24,0.18,0.12,0.05,-0.02,-0.05,-0.07,-0.08,-0.08,-0.06,-0.02,0.03,0.09,0.13,0.15,0.12,0.06,-0.03,-0.12,-0.18,-0.21,-0.18,-0.12,-0.03,0.06,0.12,0.15,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_EYE_BALL_Y=-0.01,-0.05,-0.10,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.80,-0.87,-0.92,-0.96,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.95,-0.92,-0.89,-0.86,-0.82,-0.79,-0.76,-0.73,-0.72,-0.71,-0.71,-0.71,-0.72,-0.73,-0.74,-0.75,-0.76,-0.77,-0.78,-0.80,-0.81,-0.83,-0.85,-0.86,-0.88,-0.89,-0.91,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-0.99,-0.98,-0.96,-0.94,-0.92,-0.90,-0.87,-0.84,-0.81,-0.78,-0.74,-0.71,-0.67,-0.64,-0.60,-0.57,-0.54,-0.51,-0.48,-0.46,-0.44,-0.42,-0.40,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.35,-0.33,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.10,-0.07,-0.05,-0.03,-0.01,-0.00,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/touch2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.20,0.25,0.29,0.32,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.33,0.31,0.29,0.26,0.23,0.19,0.16,0.12,0.09,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=2.58,5,7.42,9.25,10,9.25,7.42,5,2.58,0.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.32,1.17,2.40,3.92,5.61,7.38,9.17,10.91,12.53,14.00,15.21,16.17,16.79,17,16.89,16.57,16.06,15.39,14.58,13.66,12.62,11.55,10.40,9.23,8.05,6.91,5.78,4.71,3.71,2.81,2.00,1.31,0.75,0.34,0.09,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.56,0.62,0.68,0.72,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.72,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.61,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BREATH=0.26,0.50,0.74,0.92,1,0.92,0.74,0.50,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0.18,0.35,0.51,0.64,0.69,0.64,0.55,0.43,0.30,0.18,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.56,0.62,0.67,0.71,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.05,0.09,0.15,0.21,0.26,0.31,0.34,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.35,0.33,0.31,0.27,0.24,0.20,0.17,0.13,0.10,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.52,0.56,0.63,0.70,0.78,0.85,0.91,0.96,0.99,1,1,1,1,1,1,1,1,0.99,0.98,0.95,0.91,0.87,0.82,0.77,0.73,0.68,0.63,0.59,0.55,0.52,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.02,0.02,0.03,0.03,0.03,0.02,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.26,-0.50,-0.74,-0.92,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.96,-0.93,-0.89,-0.84,-0.79,-0.74,-0.68,-0.62,-0.56,-0.50,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/touch3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.09,-0.11,-0.14,-0.17,-0.21,-0.24,-0.28,-0.31,-0.34,-0.38,-0.41,-0.44,-0.46,-0.49,-0.51,-0.53,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.51,-0.47,-0.41,-0.35,-0.28,-0.22,-0.16,-0.11,-0.06,-0.03,-0.01,0,0\nPARAM_BASE_X=-0.12,-0.48,-1.05,-1.81,-2.75,-3.82,-5.00,-6.26,-7.59,-9,-10.73,-11.58,-11.92,-12,-11.98,-11.93,-11.85,-11.73,-11.59,-11.42,-11.22,-11.00,-10.76,-10.49,-10.20,-9.90,-9.58,-9.25,-8.90,-8.55,-8.18,-7.80,-7.42,-7.03,-6.64,-6.25,-5.85,-5.46,-5.07,-4.68,-4.31,-3.93,-3.57,-3.22,-2.87,-2.54,-2.23,-1.92,-1.64,-1.38,-1.13,-0.91,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=-0.14,-0.50,-1.02,-1.62,-2.23,-2.81,-3.30,-3.68,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.92,-3.71,-3.38,-2.98,-2.53,-2.06,-1.59,-1.16,-0.77,-0.45,-0.20,-0.05,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.50,-1.10,-1.90,-2.84,-3.93,-5.15,-6.41,-7.76,-9.14,-10.53,-11.87,-13.20,-14.46,-15.64,-16.70,-17.65,-18.46,-19.11,-19.60,-19.90,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-19.60,-18.53,-16.92,-14.90,-12.67,-10.29,-7.96,-5.78,-3.86,-2.24,-1.02,-0.26,0,0\nPARAM_BODY_ANGLE_X=-0.19,-0.69,-1.41,-2.31,-3.30,-4.34,-5.40,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.69,-8.88,-7.84,-6.71,-5.64,-4.72,-4,-3.21,-2.45,-1.71,-1.02,-0.36,0.27,0.86,1.42,1.95,2.45,2.92,3.36,3.77,4.16,4.51,4.84,5.14,5.41,5.67,5.89,6.10,6.28,6.44,6.58,6.69,6.79,6.87,6.93,6.97,6.99,7,6.98,6.93,6.84,6.73,6.59,6.44,6.27,6.10,5.91,5.72,5.52,5.33,5.14,4.96,4.78,4.62,4.47,4.34,4.22,4.13,4.06,4.02,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.92,3.71,3.38,2.98,2.53,2.06,1.59,1.16,0.77,0.45,0.20,0.05,0,0\nPARAM_BODY_ANGLE_Y=-0.17,-0.62,-1.27,-2.02,-2.79,-3.51,-4.13,-4.60,-4.90,-5,-5,-5,-5,-5,-4.95,-4.83,-4.64,-4.41,-4.12,-3.79,-3.42,-3,-2.49,-2.01,-1.57,-1.16,-0.79,-0.46,-0.17,0.09,0.31,0.51,0.66,0.79,0.88,0.95,0.99,1,1.00,0.99,0.99,0.98,0.97,0.95,0.93,0.92,0.90,0.87,0.85,0.82,0.80,0.77,0.74,0.71,0.68,0.65,0.62,0.58,0.55,0.52,0.48,0.45,0.42,0.38,0.35,0.32,0.29,0.26,0.23,0.20,0.18,0.15,0.13,0.10,0.08,0.07,0.05,0.03,0.02,0.01,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.51,0.54,0.57,0.62,0.66,0.70,0.74,0.77,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.77,0.76,0.74,0.72,0.69,0.67,0.64,0.61,0.58,0.56,0.53,0.50,0.47,0.44,0.42,0.39,0.37,0.35,0.34,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.35,0.37,0.39,0.41,0.43,0.45,0.47,0.48,0.49,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.60,-2.21,-4.69,-7.80,-11.26,-15,-18.74,-22.20,-25.31,-27.79,-29.40,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.40,-27.79,-25.38,-22.35,-19.00,-15.44,-11.94,-8.68,-5.78,-3.35,-1.53,-0.39,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.50,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.94,-2.78,-2.54,-2.24,-1.90,-1.54,-1.19,-0.87,-0.58,-0.34,-0.15,-0.04,0,0\nPARAM_MOUTH_OPEN_Y=0.03,0.12,0.25,0.40,0.56,0.70,0.83,0.92,0.98,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.17,0.46,0.66,0.72,0.67,0.54,0.37,0.19,0.06,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.02,-0.05,-0.08,-0.11,-0.16,-0.20,-0.24,-0.28,-0.33,-0.36,-0.39,-0.42,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.43,-0.41,-0.37,-0.33,-0.28,-0.23,-0.18,-0.13,-0.08,-0.05,-0.02,-0.01,0,0\nPARAM_MOUTH_FORM=0.93,0.75,0.49,0.19,-0.12,-0.41,-0.65,-0.84,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.20,0.42,0.61,0.78,0.90,0.97,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.66,0.31,0.08,0,0.21,0.59,0.80,0.81,0.82,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.90,0.91,0.92,0.94,0.95,0.97,0.98,0.99,0.99,1.00,1,1\nPARAM_BROW_L_FORM=-0.03,-0.11,-0.22,-0.36,-0.49,-0.62,-0.73,-0.81,-0.86,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.89,-0.89,-0.89,-0.90,-0.90,-0.91,-0.92,-0.93,-0.93,-0.94,-0.95,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.02,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.35,-0.32,-0.28,-0.24,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0,0\nPARAM_BROW_L_Y=0.51,0.53,0.57,0.61,0.65,0.68,0.71,0.74,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.74,0.73,0.71,0.69,0.67,0.65,0.62,0.60,0.57,0.54,0.52,0.49,0.47,0.44,0.42,0.40,0.38,0.36,0.35,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.36,0.37,0.39,0.41,0.43,0.45,0.47,0.48,0.49,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.05,-0.07,-0.10,-0.12,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.32,-0.35,-0.37,-0.40,-0.42,-0.44,-0.45,-0.46,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.44,-0.40,-0.35,-0.30,-0.24,-0.19,-0.14,-0.09,-0.05,-0.02,-0.01,0,0\nPARAM_BROW_R_FORM=-0.03,-0.11,-0.23,-0.37,-0.51,-0.65,-0.76,-0.85,-0.90,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.93,-0.93,-0.93,-0.94,-0.94,-0.95,-0.95,-0.95,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.66,0.31,0.08,0,0.21,0.59,0.80,0.81,0.82,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.90,0.91,0.92,0.94,0.95,0.97,0.98,0.99,0.99,1.00,1,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.48,0.45,0.41,0.37,0.33,0.28,0.23,0.19,0.14,0.10,0.07,0.04,0.02,0.00,0,0.00,0.01,0.01,0.02,0.04,0.05,0.07,0.09,0.11,0.14,0.16,0.19,0.22,0.25,0.28,0.32,0.35,0.39,0.43,0.47,0.51,0.55,0.59,0.62,0.66,0.69,0.72,0.75,0.78,0.80,0.82,0.85,0.87,0.88,0.90,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.96,0.92,0.87,0.82,0.76,0.70,0.64,0.60,0.56,0.53,0.51,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.03,0.07,0.11,0.16,0.20,0.25,0.30,0.35,0.39,0.42,0.45,0.46,0.47,0.47,0.46,0.45,0.44,0.42,0.40,0.37,0.35,0.32,0.29,0.26,0.24,0.21,0.18,0.15,0.12,0.10,0.07,0.05,0.03,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.10,-0.15,-0.21,-0.27,-0.32,-0.37,-0.41,-0.43,-0.44,-0.42,-0.37,-0.29,-0.21,-0.12,-0.04,0.05,0.12,0.17,0.21,0.22,0.22,0.21,0.20,0.19,0.18,0.16,0.15,0.13,0.11,0.09,0.07,0.06,0.04,0.03,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.02,-0.06,-0.12,-0.20,-0.29,-0.38,-0.47,-0.56,-0.65,-0.72,-0.79,-0.84,-0.87,-0.88,-0.88,-0.86,-0.84,-0.81,-0.78,-0.74,-0.70,-0.65,-0.60,-0.55,-0.50,-0.44,-0.38,-0.33,-0.28,-0.23,-0.18,-0.14,-0.10,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.11,-0.17,-0.25,-0.32,-0.40,-0.47,-0.55,-0.61,-0.67,-0.73,-0.78,-0.81,-0.84,-0.85,-0.86,-0.87,-0.88,-0.88,-0.88,-0.88,-0.87,-0.85,-0.81,-0.77,-0.71,-0.65,-0.58,-0.51,-0.44,-0.37,-0.30,-0.23,-0.17,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/touch4.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.05,0.01,0,0.12,0.32,0.46,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BASE_X=0,0,0,0.48,2.26,5.22,9,17.32,23.85,27.44,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.48,28.43,28.36,28.24,28.11,27.94,27.75,27.52,27.28,27.00,26.71,26.39,26.05,25.69,25.31,24.90,24.49,24.05,23.60,23.14,22.66,22.16,21.65,21.13,20.60,20.06,19.51,18.95,18.39,17.82,17.25,16.66,16.08,15.50,14.91,14.32,13.74,13.14,12.56,11.98,11.41,10.84,10.27,9.71,9.15,8.61,8.07,7.54,7.03,6.52,6.03,5.55,5.09,4.64,4.21,3.78,3.39,3.00,2.64,2.30,1.98,1.68,1.40,1.14,0.91,0.70,0.52,0.37,0.24,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,0,7.75,20.45,29.16,32,24.25,11.55,2.84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=10.83,2.66,0,0.28,1.03,2.16,3.57,5.13,6.79,8.43,9.95,11.30,12.43,13.29,13.82,14,14.00,14.00,14.00,14.00,13.99,13.99,13.98,13.98,13.97,13.96,13.95,13.94,13.93,13.92,13.90,13.89,13.87,13.85,13.83,13.80,13.78,13.75,13.72,13.69,13.65,13.62,13.58,13.54,13.50,13.45,13.40,13.35,13.30,13.24,13.19,13.12,13.06,12.99,12.92,12.85,12.77,12.69,12.60,12.52,12.43,12.33,12.23,12.13,12.03,11.92,11.80,11.69,11.56,11.44,11.31,11.18,11.04,10.90,10.75,10.60,10.45,10.29,10.12,9.95,9.78,9.60,9.42,9.23,9.03,8.83,8.63,8.42,8.20,7.99,7.76,7.53,7.29,7.05,6.80,6.55,6.29,6.03,5.76,5.48,5.20,4.91,4.61,4.31,4,3.67,3.32,2.95,2.57,2.16,1.74,1.31,0.86,0.40,-0.07,-0.56,-1.05,-1.56,-2.08,-2.60,-3.13,-3.67,-4.21,-4.76,-5.31,-5.86,-6.41,-6.97,-7.53,-8.09,-8.65,-9.20,-9.74,-10.29,-10.84,-11.37,-11.90,-12.43,-12.94,-13.44,-13.94,-14.42,-14.90,-15.36,-15.81,-16.25,-16.67,-17.08,-17.47,-17.84,-18.20,-18.54,-18.86,-19.16,-19.44,-19.70,-19.94,-20.15,-20.35,-20.52,-20.66,-20.78,-20.88,-20.94,-20.99,-21,-21.00,-20.98,-20.95,-20.91,-20.84,-20.75,-20.62,-20.47,-20.28,-20.05,-19.77,-19.45,-19.01,-18.44,-17.75,-17.00,-16.22,-15.42,-14.66,-13.96,-13.36,-12.83,-12.30,-11.79,-11.28,-10.79,-10.31,-9.85,-9.39,-8.95,-8.52,-8.10,-7.69,-7.29,-6.90,-6.53,-6.16,-5.81,-5.47,-5.14,-4.81,-4.51,-4.21,-3.92,-3.64,-3.38,-3.12,-2.88,-2.65,-2.43,-2.21,-2.01,-1.82,-1.63,-1.46,-1.30,-1.15,-1.01,-0.87,-0.75,-0.64,-0.53,-0.44,-0.35,-0.28,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-4.50,-4.50,-4.50,-4.86,-5.46,-5.87,-6,-5.64,-5.04,-4.63,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.52,-4.54,-4.57,-4.61,-4.65,-4.71,-4.77,-4.83,-4.91,-4.99,-5.07,-5.16,-5.26,-5.36,-5.46,-5.57,-5.68,-5.80,-5.92,-6.04,-6.17,-6.30,-6.43,-6.56,-6.69,-6.83,-6.96,-7.10,-7.23,-7.37,-7.50,-7.64,-7.77,-7.90,-8.04,-8.16,-8.29,-8.42,-8.54,-8.66,-8.77,-8.89,-8.99,-9.10,-9.20,-9.29,-9.38,-9.47,-9.55,-9.62,-9.69,-9.75,-9.81,-9.86,-9.90,-9.94,-9.96,-9.98,-10.00,-10,-10.00,-10.00,-9.99,-9.97,-9.96,-9.93,-9.89,-9.85,-9.80,-9.73,-9.65,-9.56,-9.44,-9.31,-9.15,-8.97,-8.78,-8.56,-8.32,-8.07,-7.80,-7.52,-7.24,-6.97,-6.70,-6.43,-6.18,-5.92,-5.67,-5.43,-5.19,-4.95,-4.72,-4.50,-4.28,-4.06,-3.85,-3.64,-3.44,-3.25,-3.06,-2.88,-2.70,-2.52,-2.35,-2.19,-2.03,-1.89,-1.74,-1.60,-1.46,-1.34,-1.21,-1.10,-0.98,-0.88,-0.78,-0.68,-0.60,-0.51,-0.44,-0.37,-0.31,-0.25,-0.20,-0.15,-0.11,-0.08,-0.05,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0.36,0.57,0.80,1.03,1.27,1.52,1.75,1.97,2.18,2.38,2.55,2.71,2.83,2.92,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.00,2.98,2.97,2.94,2.91,2.87,2.83,2.78,2.72,2.66,2.60,2.53,2.46,2.38,2.30,2.22,2.14,2.05,1.96,1.87,1.78,1.69,1.59,1.50,1.41,1.31,1.22,1.13,1.04,0.95,0.86,0.78,0.70,0.62,0.54,0.47,0.40,0.34,0.28,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0.00,0,0.00,0.01,0.02,0.04,0.06,0.08,0.11,0.15,0.18,0.22,0.26,0.31,0.36,0.41,0.47,0.53,0.58,0.65,0.71,0.78,0.84,0.91,0.98,1.05,1.12,1.20,1.27,1.34,1.42,1.49,1.56,1.64,1.71,1.79,1.86,1.93,2.00,2.07,2.14,2.20,2.27,2.33,2.39,2.45,2.51,2.56,2.61,2.66,2.71,2.75,2.79,2.83,2.87,2.90,2.92,2.95,2.97,2.98,2.99,3.00,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\nPARAM_BROW_R_Y=0.48,0.54,0.61,0.67,0.72,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56\nPARAM_ANGLE_Y=-30,-30,-30,-15.48,8.34,24.68,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.98,29.94,29.85,29.74,29.60,29.42,29.21,28.98,28.72,28.42,28.10,27.75,27.37,26.97,26.53,26.07,25.59,25.08,24.54,23.99,23.40,22.78,22.16,21.50,20.82,20.13,19.40,18.65,17.90,17.11,16.30,15.49,14.64,13.77,12.90,12.00,11.08,10.16,9.21,8.23,7.27,6.27,5.25,4.24,3.19,2.13,1.09,0,-1.09,-2.15,-3.20,-4.22,-5.21,-6.20,-7.15,-8.07,-8.98,-9.86,-10.72,-11.56,-12.39,-13.19,-13.97,-14.73,-15.46,-16.18,-16.87,-17.55,-18.20,-18.83,-19.44,-20.04,-20.62,-21.17,-21.70,-22.22,-22.72,-23.20,-23.66,-24.11,-24.54,-24.94,-25.33,-25.70,-26.06,-26.40,-26.72,-27.03,-27.32,-27.59,-27.85,-28.09,-28.32,-28.53,-28.73,-28.91,-29.07,-29.23,-29.36,-29.49,-29.60,-29.69,-29.78,-29.85,-29.90,-29.94,-29.98,-29.99,-30,-29.99,-29.97,-29.93,-29.87,-29.77,-29.63,-29.46,-29.24,-28.97,-28.63,-28.25,-27.78,-27.17,-26.35,-25.37,-24.30,-23.18,-22.05,-20.96,-19.96,-19.11,-18.34,-17.60,-16.85,-16.13,-15.43,-14.75,-14.09,-13.44,-12.80,-12.19,-11.59,-11.00,-10.43,-9.88,-9.34,-8.82,-8.31,-7.82,-7.35,-6.89,-6.45,-6.03,-5.61,-5.21,-4.84,-4.47,-4.13,-3.79,-3.47,-3.16,-2.88,-2.60,-2.34,-2.09,-1.86,-1.64,-1.44,-1.25,-1.07,-0.91,-0.77,-0.63,-0.51,-0.40,-0.30,-0.22,-0.15,-0.10,-0.06,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.10,-0.22,-0.38,-0.59,-0.84,-1.13,-1.46,-1.82,-2.22,-2.65,-3.11,-3.61,-4.13,-4.68,-5.25,-5.85,-6.46,-7.10,-7.76,-8.43,-9.10,-9.80,-10.51,-11.23,-11.96,-12.69,-13.42,-14.17,-14.91,-15.65,-16.38,-17.12,-17.85,-18.57,-19.29,-19.99,-20.68,-21.36,-22.03,-22.68,-23.30,-23.92,-24.51,-25.08,-25.62,-26.15,-26.64,-27.10,-27.54,-27.94,-28.32,-28.66,-28.96,-29.23,-29.46,-29.65,-29.80,-29.91,-29.98,-30,-29.99,-29.97,-29.93,-29.87,-29.77,-29.63,-29.46,-29.24,-28.97,-28.63,-28.25,-27.78,-27.17,-26.35,-25.37,-24.30,-23.18,-22.05,-20.96,-19.96,-19.11,-18.34,-17.60,-16.85,-16.13,-15.43,-14.75,-14.09,-13.44,-12.80,-12.19,-11.59,-11.00,-10.43,-9.88,-9.34,-8.82,-8.31,-7.82,-7.35,-6.89,-6.45,-6.03,-5.61,-5.21,-4.84,-4.47,-4.13,-3.79,-3.47,-3.16,-2.88,-2.60,-2.34,-2.09,-1.86,-1.64,-1.44,-1.25,-1.07,-0.91,-0.77,-0.63,-0.51,-0.40,-0.30,-0.22,-0.15,-0.10,-0.06,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0.15,0.04,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.12,0.13,0.15,0.16,0.18,0.19,0.21,0.22,0.24,0.26,0.27,0.29,0.30,0.32,0.33,0.35,0.36,0.38,0.39,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.49,0.50,0.50,0.51,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.49,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.34,0.33,0.32,0.31,0.29,0.28,0.27,0.26,0.24,0.23,0.22,0.21,0.19,0.18,0.17,0.16,0.15,0.14,0.12,0.11,0.10,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.21,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.08,0.26,0.50,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.79,0.75,0.68,0.60,0.50,0.40,0.30,0.21,0.13,0.06,0.02,0,0.03,0.11,0.23,0.36,0.51,0.64,0.76,0.84,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.52,-0.54,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.63,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_BROW_L_SIDE=-0.21,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.48,0.54,0.61,0.67,0.72,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56\nPARAM_BROW_R_ANGLE=0.05,0.01,0,0.12,0.32,0.46,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.52,-0.54,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.63,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_EYE_R_OPEN=0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.08,0.26,0.50,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.79,0.75,0.68,0.60,0.50,0.40,0.30,0.21,0.13,0.06,0.02,0,0.03,0.11,0.23,0.36,0.51,0.64,0.76,0.84,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_TERE=0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.20,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.50,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.80,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1.00,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.91,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,-0.00,-0.02,-0.03,-0.05,-0.08,-0.10,-0.11,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.05,-0.03,0.00,0.03,0.05,0.06,0.02,-0.04,-0.09,-0.10,-0.09,-0.07,-0.04,-0.01,0.01,0.03,0.04,0.05,0.02,-0.03,-0.06,-0.07,-0.06,-0.05,-0.03,-0.00,0.02,0.05,0.07,0.08,0.09,0.05,-0.01,-0.05,-0.06,-0.05,-0.02,0.02,0.05,0.08,0.09,0.10,0.09,0.05,0.01,-0.03,-0.07,-0.08,-0.07,-0.04,0.00,0.05,0.08,0.09,0.06,0.01,-0.03,-0.07,-0.08,-0.07,-0.04,0.00,0.04,0.07,0.10,0.12,0.13,0.08,0.01,-0.04,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03\nPARAM_EYE_BALL_Y=-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.90,-0.90,-0.90,-0.90,-0.90,-0.90,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.88,-0.88,-0.88,-0.88,-0.87,-0.86,-0.84,-0.82,-0.80,-0.78,-0.76,-0.73,-0.71,-0.68,-0.65,-0.63,-0.60,-0.58,-0.55,-0.53,-0.51,-0.49,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.34,-0.33,-0.32,-0.32,-0.31,-0.30,-0.30,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/wait_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.06,0.19,0.36,0.53,0.69,0.83,0.92,0.96,0.97,0.978,0.984,0.989,0.993,0.996,0.998,0.999,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.886,0.876,0.86,0.839,0.81,0.79,0.76,0.73,0.7,0.68,0.65,0.63,0.614,0.604,0.6,0.6,0.601,0.602,0.604,0.606,0.609,0.612,0.616,0.619,0.624,0.628,0.633,0.638,0.644,0.65,0.656,0.662,0.669,0.675,0.682,0.689,0.696,0.704,0.711,0.718,0.726,0.734,0.741,0.749,0.756,0.764,0.772,0.779,0.786,0.794,0.801,0.808,0.815,0.821,0.828,0.834,0.84,0.846,0.852,0.857,0.862,0.866,0.871,0.874,0.878,0.881,0.884,0.886,0.888,0.889,0.89,0.89,0.89,0.89\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0,0.008,0.03,0.07,0.11,0.17,0.23,0.29,0.35,0.41,0.47,0.53,0.57,0.61,0.63,0.64,0.639,0.638,0.635,0.631,0.626,0.62,0.613,0.606,0.597,0.588,0.578,0.567,0.555,0.543,0.53,0.517,0.503,0.489,0.474,0.459,0.443,0.428,0.411,0.395,0.379,0.362,0.345,0.328,0.312,0.295,0.278,0.261,0.245,0.229,0.212,0.197,0.181,0.166,0.151,0.137,0.123,0.11,0.097,0.085,0.073,0.062,0.052,0.043,0.034,0.027,0.02,0.014,0.009,0.005,0.002,0.001,0,0,0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.06,0.18,0.34,0.5,0.65,0.78,0.87,0.92,0.939,0.955,0.967,0.977,0.985,0.991,0.995,0.997,0.999,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.991,-0.97,-0.92,-0.87,-0.8,-0.72,-0.63,-0.54,-0.44,-0.33,-0.22,-0.11,0,0.11,0.22,0.32,0.41,0.5,0.58,0.65,0.7,0.75,0.77,0.78,0.775,0.76,0.74,0.71,0.67,0.62,0.58,0.53,0.47,0.42,0.36,0.31,0.25,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.006,0.024,0.05,0.09,0.13,0.18,0.24,0.29,0.35,0.41,0.47,0.53,0.58,0.63,0.67,0.71,0.74,0.77,0.8,0.82,0.85,0.87,0.889,0.906,0.922,0.935,0.947,0.958,0.967,0.975,0.981,0.986,0.991,0.994,0.996,0.998,0.999,1,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0.006,0.023,0.05,0.08,0.12,0.17,0.22,0.26,0.31,0.36,0.4,0.43,0.46,0.474,0.48,0.48,0.478,0.476,0.473,0.47,0.465,0.46,0.454,0.448,0.441,0.433,0.425,0.417,0.407,0.398,0.388,0.377,0.367,0.355,0.344,0.333,0.321,0.309,0.296,0.284,0.272,0.259,0.246,0.234,0.221,0.208,0.196,0.184,0.171,0.159,0.147,0.136,0.125,0.113,0.103,0.092,0.082,0.073,0.063,0.055,0.047,0.039,0.032,0.026,0.02,0.015,0.01,0.007,0.004,0.002,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.2,0.77,1.67,2.81,4.16,5.64,7.2,8.8,10.36,11.84,13.19,14.33,15.23,15.8,16,15.79,15.2,14.24,12.95,11.42,9.59,7.55,5.39,3.03,0.56,-1.92,-4.5,-7.08,-9.56,-12.03,-14.39,-16.55,-18.59,-20.42,-21.95,-23.24,-24.2,-24.79,-25,-24.93,-24.74,-24.42,-23.99,-23.46,-22.83,-22.11,-21.31,-20.44,-19.51,-18.51,-17.48,-16.41,-15.32,-14.2,-13.07,-11.93,-10.8,-9.68,-8.59,-7.52,-6.49,-5.49,-4.56,-3.69,-2.89,-2.17,-1.54,-1.01,-0.58,-0.26,-0.07,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0.19,0.72,1.56,2.63,3.9,5.29,6.75,8.25,9.71,11.1,12.37,13.44,14.28,14.81,15,14.986,14.95,14.88,14.79,14.67,14.54,14.38,14.2,14,13.78,13.54,13.29,13.02,12.73,12.43,12.12,11.79,11.45,11.11,10.76,10.39,10.02,9.64,9.26,8.88,8.49,8.09,7.7,7.3,6.91,6.51,6.12,5.74,5.36,4.98,4.61,4.24,3.89,3.55,3.21,2.88,2.57,2.27,1.98,1.71,1.46,1.22,1,0.8,0.62,0.46,0.33,0.21,0.12,0.05,0.01,0,0,0\r\r\nPARAM_BROW_R_Y=0,0.009,0.04,0.08,0.13,0.19,0.26,0.33,0.4,0.47,0.54,0.6,0.65,0.69,0.72,0.73,0.729,0.727,0.724,0.72,0.714,0.707,0.7,0.691,0.681,0.671,0.659,0.647,0.633,0.62,0.605,0.59,0.574,0.557,0.541,0.523,0.506,0.488,0.469,0.451,0.432,0.413,0.394,0.375,0.355,0.336,0.317,0.298,0.279,0.261,0.242,0.224,0.207,0.189,0.173,0.156,0.14,0.125,0.11,0.097,0.083,0.071,0.059,0.049,0.039,0.03,0.023,0.016,0.01,0.006,0.003,0.001,0,0,0\r\r\nPARAM_ANGLE_X=0,0.11,0.43,0.94,1.58,2.34,3.17,4.05,4.95,5.83,6.66,7.42,8.06,8.57,8.89,9,8.992,8.97,8.93,8.87,8.8,8.72,8.63,8.52,8.4,8.27,8.12,7.97,7.81,7.64,7.46,7.27,7.07,6.87,6.66,6.45,6.24,6.01,5.79,5.56,5.33,5.09,4.86,4.62,4.38,4.14,3.91,3.67,3.44,3.21,2.99,2.76,2.55,2.34,2.13,1.93,1.73,1.54,1.36,1.19,1.03,0.88,0.73,0.6,0.48,0.37,0.28,0.2,0.13,0.07,0.03,0.01,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=-0.38,-0.385,-0.398,-0.42,-0.44,-0.48,-0.51,-0.55,-0.58,-0.62,-0.65,-0.69,-0.71,-0.73,-0.745,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.751,-0.75,-0.751,-0.75,-0.75,-0.749,-0.748,-0.747,-0.745,-0.743,-0.741,-0.738,-0.735,-0.731,-0.727,-0.722,-0.716,-0.71,-0.703,-0.695,-0.686,-0.677,-0.666,-0.655,-0.644,-0.632,-0.619,-0.606,-0.593,-0.579,-0.566,-0.552,-0.539,-0.525,-0.512,-0.499,-0.486,-0.473,-0.461,-0.45,-0.439,-0.429,-0.419,-0.411,-0.403,-0.396,-0.391,-0.386,-0.383,-0.381,-0.38,-0.38,-0.38\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0,0.006,0.025,0.05,0.09,0.13,0.18,0.23,0.28,0.33,0.38,0.42,0.46,0.49,0.504,0.51,0.51,0.508,0.506,0.503,0.499,0.494,0.489,0.483,0.476,0.468,0.46,0.452,0.443,0.433,0.423,0.412,0.401,0.389,0.378,0.366,0.353,0.341,0.328,0.315,0.302,0.289,0.275,0.262,0.248,0.235,0.221,0.208,0.195,0.182,0.169,0.157,0.144,0.132,0.121,0.109,0.098,0.087,0.077,0.067,0.058,0.05,0.042,0.034,0.027,0.021,0.016,0.011,0.007,0.004,0.002,0,0,0,0\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.905,0.892,0.87,0.84,0.81,0.78,0.74,0.7,0.66,0.63,0.6,0.57,0.55,0.535,0.53,0.53,0.531,0.533,0.535,0.538,0.542,0.546,0.55,0.555,0.561,0.567,0.573,0.58,0.588,0.595,0.603,0.611,0.62,0.629,0.637,0.647,0.656,0.666,0.675,0.685,0.695,0.705,0.715,0.725,0.735,0.745,0.755,0.765,0.774,0.784,0.793,0.803,0.811,0.82,0.829,0.837,0.845,0.852,0.86,0.867,0.873,0.879,0.885,0.89,0.894,0.898,0.902,0.905,0.907,0.909,0.91,0.91,0.91,0.91\r\r\nPARAM_TERE=0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/wait_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0,0.004,0.014,0.03,0.05,0.07,0.1,0.13,0.17,0.2,0.23,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.49,0.51,0.526,0.539,0.547,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.548,0.542,0.532,0.518,0.502,0.483,0.46,0.44,0.41,0.39,0.36,0.33,0.31,0.28,0.25,0.22,0.2,0.17,0.14,0.12,0.1,0.08,0.057,0.041,0.027,0.015,0.007,0.002,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-0.996,-0.985,-0.966,-0.94,-0.91,-0.88,-0.84,-0.8,-0.75,-0.71,-0.66,-0.61,-0.56,-0.51,-0.46,-0.4,-0.36,-0.31,-0.26,-0.22,-0.18,-0.14,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.013,0.029,0.049,0.07,0.1,0.13,0.16,0.2,0.23,0.27,0.3,0.33,0.37,0.4,0.43,0.46,0.48,0.5,0.517,0.529,0.537,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.538,0.532,0.522,0.509,0.493,0.475,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.056,0.04,0.026,0.015,0.007,0.002,0\r\r\nPARAM_BROW_L_ANGLE=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_ANGLE_Z=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.2,-13.66,-12.14,-10.66,-9.2,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.1,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.37,-0.81,-1.36,-2.04,-2.8,-3.63,-4.52,-5.46,-6.4,-7.38,-8.34,-9.29,-10.21,-11.08,-11.89,-12.64,-13.31,-13.88,-14.36,-14.71,-14.92,-15,-15,-15,-15,-15,-15,-15,-15,-14.94,-14.77,-14.5,-14.13,-13.7,-13.18,-12.61,-11.98,-11.31,-10.61,-9.88,-9.14,-8.37,-7.6,-6.83,-6.07,-5.33,-4.6,-3.91,-3.25,-2.65,-2.08,-1.56,-1.12,-0.73,-0.42,-0.19,-0.05,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0,-0.001,-0.005,-0.01,-0.017,-0.026,-0.035,-0.046,-0.057,-0.069,-0.081,-0.093,-0.106,-0.118,-0.129,-0.14,-0.151,-0.16,-0.169,-0.176,-0.182,-0.186,-0.189,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.189,-0.187,-0.184,-0.179,-0.173,-0.167,-0.16,-0.152,-0.143,-0.134,-0.125,-0.116,-0.106,-0.096,-0.087,-0.077,-0.068,-0.058,-0.05,-0.041,-0.034,-0.026,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_ARM_R=0,-0,-0,-0.001,-0,-0.003,-0.004,-0.005,-0.006,-0.007,-0.009,-0.01,-0.011,-0.012,-0.014,-0.015,-0.016,-0.017,-0.018,-0.019,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.018,-0.017,-0.016,-0.02,-0.014,-0.013,-0.012,-0.011,-0.01,-0.009,-0.008,-0.007,-0.006,-0.005,-0.004,-0.004,-0.003,-0,-0.001,-0.001,-0,-0,-0,0\r\r\nPARAM_BODY_Z=0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.15,-0.18,-0.22,-0.26,-0.3,-0.33,-0.37,-0.41,-0.44,-0.48,-0.51,-0.53,-0.56,-0.574,-0.588,-0.597,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.598,-0.591,-0.58,-0.565,-0.548,-0.527,-0.5,-0.48,-0.45,-0.42,-0.4,-0.37,-0.33,-0.3,-0.27,-0.24,-0.21,-0.18,-0.16,-0.13,-0.11,-0.08,-0.06,-0.045,-0.029,-0.017,-0.008,-0.002,0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_ARM_R_02=0,0.002,0.008,0.018,0.03,0.045,0.061,0.08,0.099,0.12,0.141,0.16,0.18,0.2,0.225,0.244,0.262,0.278,0.293,0.305,0.316,0.324,0.328,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.329,0.325,0.319,0.311,0.301,0.29,0.277,0.264,0.249,0.233,0.217,0.201,0.184,0.167,0.15,0.134,0.117,0.101,0.086,0.072,0.058,0.046,0.034,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91\r\r\nPARAM_TERE=0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/wait_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.887,0.878,0.863,0.844,0.82,0.8,0.77,0.74,0.71,0.68,0.65,0.62,0.6,0.58,0.557,0.542,0.533,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.169,-0.164,-0.158,-0.15,-0.14,-0.129,-0.118,-0.105,-0.093,-0.08,-0.068,-0.056,-0.044,-0.034,-0.024,-0.016,-0.009,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_ANGLE_Z=14,14,14,14,14,14,14,13.72,12.91,11.63,10.02,8.02,5.8,3.35,0.74,-2.01,-4.79,-7.65,-10.48,-13.24,-15.96,-18.5,-20.88,-23.08,-25.04,-26.73,-28.11,-29.14,-29.77,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=15,15,15,15,15,15,15,14.9,14.63,14.19,13.64,12.96,12.2,11.37,10.48,9.54,8.6,7.62,6.66,5.71,4.79,3.92,3.11,2.36,1.69,1.12,0.64,0.29,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.018,-0.03,-0.045,-0.062,-0.081,-0.1,-0.12,-0.14,-0.159,-0.178,-0.195,-0.21,-0.222,-0.232,-0.238,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.02,-0.04,-0.07,-0.11,-0.15,-0.19,-0.24,-0.29,-0.33,-0.38,-0.42,-0.46,-0.5,-0.53,-0.55,-0.565,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0.48,0.481,0.483,0.482,0.476,0.463,0.44,0.41,0.38,0.35,0.31,0.28,0.25,0.22,0.18,0.15,0.13,0.1,0.07,0.05,0.035,0.02,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=-0.71,-0.71,-0.71,-0.712,-0.713,-0.714,-0.716,-0.718,-0.72,-0.723,-0.725,-0.727,-0.73,-0.733,-0.735,-0.737,-0.74,-0.742,-0.744,-0.746,-0.747,-0.748,-0.749,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.734,-0.69,-0.62,-0.53,-0.42,-0.3,-0.16,-0.02,0.13,0.27,0.41,0.55,0.67,0.78,0.87,0.94,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.907,0.9,0.888,0.873,0.855,0.83,0.81,0.79,0.77,0.74,0.72,0.7,0.67,0.657,0.642,0.63,0.623,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_TERE=0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/wait_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ARM_L_02=0,0,-0.006,-0.024,-0.05,-0.09,-0.13,-0.18,-0.23,-0.29,-0.35,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.76,-0.81,-0.85,-0.89,-0.92,-0.94,-0.955,-0.96,-0.96,-0.96,-0.954,-0.936,-0.91,-0.87,-0.83,-0.78,-0.73,-0.67,-0.61,-0.55,-0.49,-0.43,-0.37,-0.31,-0.25,-0.2,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.2,0.42,0.61,0.78,0.9,0.97,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0,0,0.003,0.006,0.01,0.015,0.022,0.029,0.038,0.047,0.057,0.068,0.079,0.092,0.104,0.118,0.132,0.146,0.161,0.176,0.191,0.206,0.222,0.237,0.253,0.269,0.284,0.3,0.315,0.33,0.345,0.36,0.374,0.387,0.401,0.413,0.425,0.437,0.448,0.458,0.467,0.476,0.483,0.49,0.496,0.501,0.505,0.508,0.509,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nPARAM_EYE_R_OPEN=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.2,0.42,0.61,0.78,0.9,0.97,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0.23,0.83,1.76,2.91,4.24,5.7,7.24,8.79,10.37,11.86,13.27,14.57,15.72,16.66,17.38,17.84,18,18,18,17.81,17.28,16.44,15.38,14.06,12.6,10.98,9.26,7.45,5.62,3.73,1.87,0.05,-1.74,-3.42,-4.99,-6.44,-7.73,-8.84,-9.75,-10.43,-10.85,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11\r\r\nPARAM_ANGLE_Y=-26,-26,-26,-26,-26,-26,-26,-26,-25.51,-24.2,-22.19,-19.69,-16.81,-13.66,-10.31,-6.96,-3.54,-0.31,2.75,5.57,8.06,10.1,11.66,12.65,13,13,13,12.87,12.48,11.87,11.1,10.15,9.09,7.92,6.67,5.36,4.03,2.67,1.32,-0,-1.3,-2.51,-3.65,-4.7,-5.63,-6.44,-7.1,-7.59,-7.89,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BODY_Y=-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.58,-0.53,-0.44,-0.34,-0.22,-0.09,0.04,0.18,0.32,0.45,0.58,0.7,0.8,0.88,0.94,0.99,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R_02=0,0,-0.002,-0.009,-0.019,-0.032,-0.048,-0.065,-0.085,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.258,-0.277,-0.295,-0.311,-0.324,-0.335,-0.343,-0.348,-0.35,-0.35,-0.35,-0.348,-0.341,-0.331,-0.318,-0.302,-0.285,-0.265,-0.24,-0.22,-0.2,-0.18,-0.16,-0.13,-0.11,-0.092,-0.073,-0.055,-0.039,-0.026,-0.015,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,0.003,0.006,0.01,0.015,0.022,0.029,0.038,0.047,0.057,0.068,0.079,0.092,0.104,0.118,0.132,0.146,0.161,0.176,0.191,0.206,0.222,0.237,0.253,0.269,0.284,0.3,0.315,0.33,0.345,0.36,0.374,0.387,0.401,0.413,0.425,0.437,0.448,0.458,0.467,0.476,0.483,0.49,0.496,0.501,0.505,0.508,0.509,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/motions/wait_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.906,0.896,0.879,0.86,0.83,0.8,0.77,0.74,0.7,0.66,0.62,0.59,0.55,0.52,0.48,0.45,0.42,0.4,0.37,0.355,0.341,0.333,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.328,0.322,0.312,0.299,0.283,0.265,0.245,0.22,0.2,0.18,0.16,0.13,0.11,0.09,0.072,0.054,0.039,0.025,0.015,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.05,0.15,0.28,0.42,0.54,0.65,0.72,0.75,0.756,0.761,0.766,0.77,0.774,0.777,0.78,0.782,0.784,0.786,0.787,0.788,0.79,0.789,0.79,0.79,0.79,0.79,0.77,0.7,0.61,0.48,0.33,0.17,0,-0.17,-0.33,-0.49,-0.63,-0.76,-0.86,-0.94,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39\r\r\nPARAM_HAND_L=0,0,0,0,0,0,0,0.006,0.023,0.05,0.08,0.13,0.17,0.23,0.28,0.34,0.4,0.46,0.52,0.58,0.63,0.69,0.74,0.78,0.83,0.86,0.89,0.91,0.925,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.924,0.907,0.88,0.84,0.8,0.75,0.69,0.63,0.57,0.51,0.44,0.38,0.32,0.26,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.05,0.16,0.3,0.45,0.58,0.69,0.76,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.77,0.7,0.61,0.48,0.33,0.17,0,-0.17,-0.33,-0.49,-0.63,-0.76,-0.86,-0.94,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=1,1,1,1,1,1,1,0.96,0.87,0.73,0.55,0.35,0.14,-0.07,-0.27,-0.44,-0.58,-0.69,-0.76,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.772,-0.75,-0.72,-0.68,-0.63,-0.57,-0.51,-0.45,-0.38,-0.32,-0.25,-0.19,-0.13,-0.08,-0.03,0.02,0.05,0.08,0.094,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1\r\r\nPARAM_EYE_BALL_Y=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.182,-0.22,-0.27,-0.33,-0.4,-0.47,-0.54,-0.61,-0.67,-0.72,-0.76,-0.78,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.781,-0.75,-0.71,-0.66,-0.6,-0.53,-0.46,-0.38,-0.3,-0.22,-0.14,-0.07,0.01,0.07,0.14,0.19,0.23,0.26,0.283,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-4,-4,-4,-4,-4,-4,-4,-4.16,-4.62,-5.34,-6.26,-7.4,-8.66,-10.05,-11.53,-13.1,-14.67,-16.3,-17.91,-19.48,-21.02,-22.46,-23.82,-25.07,-26.18,-27.14,-27.93,-28.51,-28.87,-29,-29,-29,-29,-29,-29,-29,-29,-28.25,-26.15,-22.85,-18.66,-13.65,-8.2,-2.43,3.43,9.2,14.65,19.66,23.85,27.15,29.25,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_BROW_R_Y=0.46\r\r\nPARAM_ANGLE_X=15,15,15,15,15,15,15,14.9,14.63,14.19,13.64,12.96,12.2,11.37,10.48,9.54,8.6,7.62,6.66,5.71,4.79,3.92,3.11,2.36,1.69,1.12,0.64,0.29,0.08,0,0,0,0,0,0,0,0,-0.06,-0.24,-0.52,-0.88,-1.3,-1.76,-2.25,-2.75,-3.24,-3.7,-4.12,-4.48,-4.76,-4.94,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_ARM_R=-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02\r\r\nPARAM_BODY_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.018,0.04,0.06,0.1,0.13,0.17,0.2,0.24,0.27,0.31,0.33,0.35,0.365,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0.48,0.48,0.48,0.48,0.48,0.48,0.48,0.474,0.458,0.43,0.4,0.36,0.32,0.27,0.22,0.16,0.11,0.05,-0,-0.06,-0.11,-0.16,-0.21,-0.25,-0.29,-0.33,-0.35,-0.37,-0.386,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.385,-0.371,-0.35,-0.32,-0.29,-0.25,-0.21,-0.18,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.848,0.847,0.846,0.844,0.843,0.841,0.839,0.837,0.835,0.833,0.831,0.83,0.828,0.826,0.825,0.823,0.822,0.821,0.821,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.815,0.799,0.77,0.74,0.7,0.66,0.61,0.56,0.5,0.45,0.39,0.33,0.28,0.23,0.18,0.14,0.1,0.06,0.04,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.699,-0.67,-0.62,-0.56,-0.48,-0.39,-0.3,-0.19,-0.09,0.02,0.13,0.24,0.35,0.45,0.55,0.65,0.73,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_02=0,0,0,0,0,0,0,0.004,0.017,0.037,0.06,0.09,0.13,0.17,0.21,0.25,0.29,0.34,0.38,0.43,0.47,0.51,0.55,0.58,0.61,0.64,0.66,0.677,0.686,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.685,0.673,0.65,0.62,0.59,0.55,0.51,0.47,0.42,0.37,0.33,0.28,0.23,0.19,0.15,0.11,0.08,0.05,0.03,0.014,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/physics.json",
    "content": "{\n    \"type\": \"Live2D Physics\",\n    \"physics_hair\": [\n    {\n        \"comment\": \"hair front\",\n        \"setup\":\n        {\n            \"length\": 0.17,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_KAMIYURE_FRONT\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair side\",\n        \"setup\":\n        {\n            \"length\": 0.2,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_KAMIYURE_SIDE_R\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_KAMIYURE_SIDE_L\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair side 2\",\n        \"setup\":\n        {\n            \"length\": 0.2,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_KAMIYURE_SIDE_R_02\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_KAMIYURE_SIDE_L_02\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair back\",\n        \"setup\":\n        {\n            \"length\": 0.2,\n            \"regist\": 1.4,\n            \"mass\": 0.3\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": -0.005,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_KAMIYURE_TWIN_R\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_KAMIYURE_TWIN_L\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair back 2\",\n        \"setup\":\n        {\n            \"length\": 0.2,\n            \"regist\": 1.4,\n            \"mass\": 0.3\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_KAMIYURE_TWIN_R_02\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_KAMIYURE_TWIN_L_02\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/pose.json",
    "content": "{\n    \"type\": \"Live2D Pose\",\n    \"parts_visible\": [\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_L_01\"\n        },\n        {\n            \"id\": \"PARTS_01_ARM_L_02\"\n        }]\n    },\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_R_01\"\n        },\n        {\n            \"id\": \"PARTS_01_ARM_R_02\"\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-48/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/expressions/f01.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/expressions/f02.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_X\",\"val\":-0.4},{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":-0.7},{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.7,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.7,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_DONYORI\",\"val\":0.7},{\"id\":\"PARAM_EYE_FORM\",\"val\":0.3},{\"id\":\"PARAM_BODY_Y\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.3},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.3},{\"id\":\"PARAM_BROW_R_X\",\"val\":-0.3},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.5},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":-1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/expressions/f03.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":0.2},{\"id\":\"PARAM_BODY_Y\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.2},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.2},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.4},{\"id\":\"PARAM_BROW_R_X\",\"val\":-0.4},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-1},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.7,\"def\":1},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":0.3}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/expressions/f04.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_BALL_X\",\"val\":-0.4},{\"id\":\"PARAM_EYE_BALL_Y\",\"val\":-0.7},{\"id\":\"PARAM_EYE_BALL_KIRAKIRA\",\"val\":1},{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":1.5,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":1.5,\"def\":1,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.5},{\"id\":\"PARAM_KAMIYURE_TWIN_L_02\",\"val\":0.3},{\"id\":\"PARAM_KAMIYURE_TWIN_R_02\",\"val\":-0.3},{\"id\":\"PARAM_MOUTH_SIZE\",\"val\":1},{\"id\":\"PARAM_TERE\",\"val\":1,\"def\":0.6}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/index.json",
    "content": "{\n    \"name\":\"shizuku_pajama.512\",\n    \"model\":\"model.moc\",\n    \"textures\": [\n        \"textures.512/00.png\",\n        \"textures.512/01.png\",\n        \"textures.512/02.png\",\n        \"textures.512/03.png\",\n\t\t\"textures.512/04.png\",\n\t\t\"textures.512/05.png\",\n\t\t\"textures.512/06.png\",\n\t\t\"textures.512/07.png\",\n\t\t\"textures.512/08.png\"\n    ],\n    \"physics\":\"physics.json\",\n    \"pose\":\"pose.json\",\n    \"expressions\": [\n        {\"name\":\"f01\",\"file\":\"expressions/f01.exp.json\"},\n        {\"name\":\"f02\",\"file\":\"expressions/f02.exp.json\"},\n        {\"name\":\"f03\",\"file\":\"expressions/f03.exp.json\"},\n        {\"name\":\"f04\",\"file\":\"expressions/f04.exp.json\"}\n    ],\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": -0.16,\n        \"width\": 1.8\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"motions\":{\n        \"idle\":[\n\t\t\t{\"file\":\"motions/idl_00.mtn\"},\n\t\t\t{\"file\":\"motions/idl_01.mtn\"},\n\t\t\t{\"file\":\"motions/idl_02.mtn\"},\n\t\t\t{\"file\":\"motions/idl_03.mtn\"},\n\t\t\t{\"file\":\"motions/idl_04.mtn\"},\n\t\t\t{\"file\":\"motions/idl_05.mtn\"},\n\t\t\t{\"file\":\"motions/idle_01.mtn\"},\n\t\t\t{\"file\":\"motions/idle_02.mtn\"},\n\t\t\t{\"file\":\"motions/idle_03.mtn\"},\n\t\t\t{\"file\":\"motions/idle_04.mtn\"},\n\t\t\t{\"file\":\"motions/idle_05.mtn\"},\n\t\t\t{\"file\":\"motions/idle_06.mtn\"},\n\t\t\t{\"file\":\"motions/idle_07.mtn\"},\n\t\t\t{\"file\":\"motions/idle_08.mtn\"},\n\t\t\t{\"file\":\"motions/idle_09.mtn\"},\n\t\t\t{\"file\":\"motions/idle_A.mtn\"},\n\t\t\t{\"file\":\"motions/idle_A2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_B.mtn\"},\n\t\t\t{\"file\":\"motions/idle_B2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C2.mtn\"},\n\t\t\t{\"file\":\"motions/idle_C2_copy.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura1.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura2.mtn\"},\n\t\t\t{\"file\":\"motions/kurakura3.mtn\"},\n\t\t\t{\"file\":\"motions/wait_01.mtn\"},\n\t\t\t{\"file\":\"motions/wait_02.mtn\"},\n\t\t\t{\"file\":\"motions/wait_03.mtn\"},\n\t\t\t{\"file\":\"motions/wait_04.mtn\"},\n\t\t\t{\"file\":\"motions/wait_05.mtn\"}\n        ],\"flick_head\":[\n\t\t\t{\"file\":\"motions/double_tap1.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap2.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap3.mtn\"},\n\t\t\t{\"file\":\"motions/double_tap4.mtn\"}\n\t\t],\"tap_body\":[\n\t\t\t{\"file\":\"motions/touch1.mtn\"},\n\t\t\t{\"file\":\"motions/touch2.mtn\"},\n\t\t\t{\"file\":\"motions/touch3.mtn\"},\n\t\t\t{\"file\":\"motions/touch4.mtn\"}\n\t\t]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/double_tap1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.46,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,0,0,0,0,0,0,0,0,4.47,12.53,17,13.96,9.10,4.56,1.28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.97,2.56,3.65,4,3.55,2.51,1.27,0,-2.08,-3.81,-5.24,-6.45,-7.44,-8.25,-8.91,-9.39,-9.73,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.80,-9.26,-8.46,-7.45,-6.33,-5.15,-3.98,-2.89,-1.93,-1.12,-0.51,-0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.56,0.67,0.74,0.76,0.76,0.74,0.72,0.69,0.66,0.62,0.58,0.55,0.51,0.47,0.44,0.41,0.39,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.39,0.40,0.42,0.43,0.45,0.46,0.47,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,6.78,17.89,25.52,28,27.60,26.47,24.77,22.54,19.93,16.98,13.82,10.54,7.15,3.72,0.38,-2.87,-5.97,-8.80,-11.41,-13.63,-15.46,-16.82,-17.69,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-17.64,-16.68,-15.23,-13.41,-11.40,-9.26,-7.17,-5.21,-3.47,-2.01,-0.92,-0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.48,1.28,1.82,2,1.72,0.94,-0.25,-1.80,-3.61,-5.66,-7.86,-10.14,-12.50,-14.89,-17.21,-19.48,-21.63,-23.60,-25.42,-26.96,-28.23,-29.18,-29.79,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.40,-27.79,-25.38,-22.35,-19.00,-15.44,-11.94,-8.68,-5.78,-3.35,-1.53,-0.39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0.19,0.50,0.71,0.78,0.77,0.74,0.70,0.64,0.58,0.51,0.43,0.35,0.27,0.20,0.14,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0.11,0.29,0.41,0.45,0.44,0.41,0.36,0.29,0.21,0.13,0.04,-0.05,-0.14,-0.22,-0.30,-0.37,-0.42,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.24,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,0.63,0.02,-0.43,-0.60,-0.66,-0.72,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.95,-0.97,-0.98,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.20,0.42,0.61,0.78,0.90,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.70,0.33,0.08,0,0.21,0.57,0.82,0.91,0.94,0.96,0.97,0.98,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0.11,0.28,0.40,0.44,0.43,0.40,0.35,0.28,0.21,0.13,0.04,-0.05,-0.14,-0.22,-0.29,-0.36,-0.41,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.44,-0.42,-0.38,-0.34,-0.28,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.56,0.65,0.72,0.74,0.74,0.72,0.70,0.67,0.64,0.60,0.56,0.53,0.49,0.45,0.42,0.39,0.37,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.36,0.37,0.39,0.41,0.42,0.44,0.46,0.47,0.48,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,-0.12,-0.32,-0.46,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.70,0.33,0.08,0,0.21,0.57,0.82,0.91,0.94,0.96,0.97,0.98,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,0.00,0.01,0.02,0.04,0.06,0.07,0.09,0.11,0.12,0.14,0.15,0.17,0.18,0.19,0.19,0.20,0.20,0.16,0.06,-0.07,-0.22,-0.38,-0.54,-0.68,-0.81,-0.91,-0.98,-1,-0.96,-0.89,-0.85,-0.83,-0.87,-0.94,-0.98,-1,-0.96,-0.88,-0.84,-0.82,-0.82,-0.82,-0.83,-0.83,-0.83,-0.81,-0.77,-0.70,-0.62,-0.53,-0.43,-0.33,-0.24,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,-0.08,-0.21,-0.30,-0.33,-0.33,-0.31,-0.30,-0.27,-0.24,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.03,-0.02,-0.00,0,-0.01,-0.05,-0.09,-0.15,-0.20,-0.26,-0.31,-0.35,-0.39,-0.41,-0.42,-0.41,-0.39,-0.38,-0.38,-0.39,-0.41,-0.42,-0.42,-0.41,-0.39,-0.38,-0.38,-0.40,-0.44,-0.47,-0.49,-0.50,-0.49,-0.46,-0.42,-0.37,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/double_tap2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_BASE_X=0,-1.31,-4.81,-9.88,-15.90,-22.10,-28.12,-33.19,-36.69,-38,-37.01,-34.54,-30.91,-26.28,-20.86,-14.60,-7.71,0,9.51,17.68,24.69,30.39,34.99,38.50,41.05,42.74,43.70,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43.61,42.49,40.73,38.43,35.72,32.61,29.23,25.66,22,18.34,14.77,11.39,8.28,5.57,3.27,1.51,0.39,0\nPARAM_BASE_Y=0,3.58,9.30,14.64,18.50,20,15.16,7.22,1.77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.65,-2.41,-4.94,-7.95,-11.05,-14.06,-16.59,-18.35,-19,-18.89,-18.58,-18.07,-17.40,-16.55,-15.56,-14.45,-13.21,-11.88,-10.46,-8.94,-7.39,-5.77,-4.14,-2.50,-0.86,0.77,2.39,3.94,5.46,6.88,8.21,9.45,10.56,11.55,12.40,13.07,13.58,13.89,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.87,13.52,12.96,12.23,11.37,10.38,9.30,8.16,7,5.84,4.70,3.62,2.63,1.77,1.04,0.48,0.13,0\nPARAM_BODY_ANGLE_X=0,-0.34,-1.27,-2.60,-4.18,-5.82,-7.40,-8.73,-9.66,-10,-9.70,-8.99,-7.97,-6.70,-5.25,-3.62,-1.89,0,2.27,4.18,5.79,7.08,8.09,8.85,9.39,9.75,9.94,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.91,9.66,9.26,8.73,8.12,7.41,6.64,5.83,5,4.17,3.36,2.59,1.88,1.27,0.74,0.34,0.09,0\nPARAM_BODY_ANGLE_Y=0,-0.10,-0.38,-0.78,-1.25,-1.75,-2.22,-2.62,-2.90,-3,-2.93,-2.76,-2.49,-2.14,-1.72,-1.22,-0.65,0,0.82,1.54,2.17,2.69,3.12,3.46,3.71,3.87,3.97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.96,3.86,3.70,3.49,3.25,2.96,2.66,2.33,2,1.67,1.34,1.04,0.75,0.51,0.30,0.14,0.04,0\nPARAM_BROW_R_Y=0.50,0.51,0.53,0.56,0.59,0.63,0.66,0.69,0.71,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.71,0.70,0.69,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.56,0.54,0.53,0.52,0.51,0.50,0.50\nPARAM_ANGLE_Y=0,0.96,3.55,7.28,11.71,16.29,20.72,24.45,27.04,28,27.48,26.00,23.69,20.65,17.09,12.99,8.53,3.82,-1,-5.82,-10.53,-14.99,-19.09,-22.65,-25.69,-28.00,-29.48,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.77,-26.20,-24.36,-22.24,-19.93,-17.49,-15,-12.51,-10.07,-7.76,-5.64,-3.80,-2.23,-1.03,-0.27,0\nPARAM_ANGLE_X=0,-1.03,-3.80,-7.80,-12.55,-17.45,-22.20,-26.20,-28.97,-30,-29.57,-28.35,-26.43,-23.92,-20.97,-17.58,-13.88,-9.99,-6,-2.01,1.88,5.58,8.97,11.92,14.43,16.35,17.57,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.84,17.38,16.66,15.72,14.61,13.34,11.96,10.50,9,7.50,6.04,4.66,3.39,2.28,1.34,0.62,0.16,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0.20,0.53,0.76,0.83,0.77,0.62,0.44,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.07,-0.12,-0.18,-0.24,-0.29,-0.35,-0.40,-0.44,-0.46,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.45,-0.44,-0.41,-0.38,-0.35,-0.31,-0.27,-0.24,-0.20,-0.16,-0.12,-0.09,-0.06,-0.03,-0.02,-0.00,0\nPARAM_MOUTH_FORM=1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.62,-0.48,-0.33,-0.17,0,0.17,0.33,0.48,0.62,0.75,0.85,0.93,0.98,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.23,0.59,0.85,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.90,0.89,0.88,0.87,0.86,0.79,0.63,0.42,0.22,0.06,0,0,0,0.06,0.21,0.41,0.61,0.77,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.97,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.06,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.33,-0.37,-0.42,-0.47,-0.51,-0.55,-0.59,-0.63,-0.66,-0.69,-0.71,-0.73,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.75,-0.73,-0.70,-0.66,-0.62,-0.56,-0.50,-0.44,-0.38,-0.32,-0.26,-0.20,-0.14,-0.10,-0.06,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,-0.00,-0.03,-0.07,-0.12,-0.18,-0.25,-0.31,-0.37,-0.42,-0.46,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.48,-0.46,-0.44,-0.41,-0.37,-0.33,-0.29,-0.25,-0.21,-0.17,-0.13,-0.09,-0.06,-0.04,-0.02,-0.00,0\nPARAM_BROW_L_Y=0.50,0.51,0.53,0.56,0.59,0.63,0.66,0.69,0.71,0.72,0.72,0.72,0.72,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.62,0.61,0.59,0.57,0.55,0.54,0.53,0.52,0.51,0.50,0.50\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.02,-0.04,-0.07,-0.11,-0.15,-0.20,-0.25,-0.31,-0.37,-0.43,-0.49,-0.55,-0.61,-0.66,-0.72,-0.77,-0.82,-0.86,-0.90,-0.93,-0.96,-0.97,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.96,-0.92,-0.86,-0.80,-0.73,-0.66,-0.58,-0.50,-0.41,-0.33,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.23,0.59,0.85,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.90,0.90,0.89,0.88,0.86,0.85,0.77,0.62,0.41,0.21,0.06,0,0,0,0.06,0.21,0.41,0.61,0.77,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.97,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.54,0.58,0.63,0.69,0.75,0.81,0.87,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,0.98,0.96,0.94,0.91,0.87,0.83,0.79,0.75,0.71,0.67,0.63,0.59,0.56,0.54,0.52,0.50,0.50\nPARAM_EYE_BALL_X=0,0.03,0.11,0.23,0.37,0.51,0.65,0.77,0.85,0.88,0.88,0.88,0.88,0.87,0.86,0.85,0.83,0.81,0.79,0.75,0.71,0.67,0.61,0.55,0.47,0.38,0.29,0.20,0.11,0.02,-0.07,-0.15,-0.23,-0.30,-0.36,-0.41,-0.46,-0.49,-0.50,-0.51,-0.44,-0.28,-0.09,0.11,0.29,0.44,0.54,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.56,0.54,0.51,0.47,0.43,0.39,0.34,0.29,0.24,0.19,0.15,0.11,0.07,0.04,0.02,0.01,0\nPARAM_EYE_BALL_Y=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.72,-0.80,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.82,-0.82,-0.81,-0.81,-0.80,-0.79,-0.77,-0.74,-0.70,-0.65,-0.59,-0.53,-0.48,-0.42,-0.36,-0.30,-0.25,-0.21,-0.18,-0.15,-0.14,-0.13,-0.14,-0.17,-0.21,-0.24,-0.28,-0.30,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.31,-0.29,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.04,-0.02,-0.01,-0.00,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/double_tap3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.03,0.11,0.21,0.30,0.38,0.41,0.41,0.41,0.41,0.41,0.40,0.40,0.40,0.40,0.39,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.27,0.26,0.26,0.25,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-2.25,-7.73,-15,-22.27,-27.75,-30,-29.90,-29.62,-29.16,-28.54,-27.77,-26.87,-25.86,-24.74,-23.53,-22.24,-20.86,-19.44,-17.97,-16.49,-15,-13.51,-12.03,-10.56,-9.14,-7.76,-6.47,-5.26,-4.14,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,-0.30,-1.03,-2,-2.97,-3.70,-4,-4.00,-3.99,-3.97,-3.94,-3.91,-3.88,-3.83,-3.79,-3.73,-3.67,-3.61,-3.54,-3.47,-3.39,-3.31,-3.23,-3.14,-3.05,-2.96,-2.87,-2.77,-2.67,-2.57,-2.47,-2.37,-2.26,-2.16,-2.05,-1.95,-1.84,-1.74,-1.63,-1.53,-1.43,-1.33,-1.23,-1.13,-1.04,-0.95,-0.86,-0.77,-0.69,-0.61,-0.53,-0.46,-0.39,-0.33,-0.27,-0.21,-0.17,-0.12,-0.09,-0.06,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.52,0.57,0.64,0.71,0.76,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.71,0.70,0.70,0.69,0.69,0.68,0.68,0.67,0.66,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.55,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,2.25,7.73,15,22.27,27.75,30,29.93,29.72,29.38,28.93,28.36,27.71,26.96,26.14,25.25,24.31,23.29,22.26,21.18,20.09,19,17.91,16.82,15.74,14.71,13.69,12.75,11.86,11.04,10.29,9.64,9.07,8.62,8.28,8.07,8,8.52,9.66,11.07,12.54,13.88,14.99,15.72,16,15.31,13.47,10.80,7.63,4.37,1.20,-1.47,-3.31,-4,-3.74,-3.17,-2.46,-1.73,-1.06,-0.51,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0.45,1.55,3,4.45,5.55,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4.03,-0.22,-5.51,-11.02,-16.04,-20.20,-22.97,-24,-20.85,-14.05,-5.58,3.23,11.26,17.92,22.35,24,22.76,19.44,14.64,8.94,3.06,-2.64,-7.44,-10.76,-12,-11.21,-9.51,-7.39,-5.19,-3.18,-1.52,-0.41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0.15,0.40,0.56,0.62,0.47,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,0.85,0.48,0,-0.48,-0.85,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.95,-0.92,-0.88,-0.83,-0.77,-0.70,-0.64,-0.56,-0.48,-0.40,-0.31,-0.23,-0.14,-0.05,0.05,0.14,0.23,0.31,0.40,0.48,0.56,0.64,0.70,0.77,0.83,0.88,0.92,0.95,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,0.76,0.36,0.09,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.50,0.52,0.57,0.64,0.70,0.75,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.71,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0.03,0.11,0.21,0.31,0.39,0.42,0.42,0.42,0.42,0.42,0.41,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.38,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.21,0.20,0.19,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,0.76,0.36,0.09,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0.00,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.05,0.06,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.22,0.40,0.56,0.68,0.73,0.69,0.57,0.41,0.22,0.03,-0.16,-0.31,-0.43,-0.50,-0.53,-0.51,-0.47,-0.41,-0.32,-0.23,-0.14,-0.04,0.05,0.12,0.19,0.24,0.27,0.28,0.28,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.09,0.08,0.06,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.08,-0.26,-0.50,-0.74,-0.92,-1,-0.99,-0.98,-0.96,-0.93,-0.89,-0.85,-0.81,-0.78,-0.74,-0.70,-0.66,-0.63,-0.60,-0.57,-0.56,-0.54,-0.54,-0.62,-0.75,-0.88,-0.97,-1,-1,-1,-1.00,-0.99,-0.98,-0.96,-0.93,-0.89,-0.85,-0.79,-0.70,-0.61,-0.50,-0.39,-0.28,-0.17,-0.06,0.03,0.10,0.17,0.21,0.24,0.25,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.20,0.19,0.17,0.16,0.15,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/double_tap4.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=-0.26,-0.41,-0.52,-0.56,-0.55,-0.53,-0.51,-0.48,-0.44,-0.41,-0.38,-0.36,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.36,-0.36,-0.36,-0.35,-0.35,-0.34,-0.34,-0.33,-0.33,-0.32,-0.31,-0.31,-0.30,-0.30,-0.29,-0.29,-0.28,-0.27,-0.27,-0.26,-0.25,-0.25,-0.24,-0.23,-0.23,-0.22,-0.21,-0.21,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.15,-0.14,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02\nPARAM_BASE_X=4.06,8.33,13.61,19.48,25.62,31.83,37.87,43.50,48.59,52.80,56.11,58.25,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,58.44,56.82,54.22,50.77,46.48,41.54,35.89,29.78,23.20,16.35,9.01,1.66,-5.82,-13.35,-20.75,-28.04,-35.25,-42.02,-48.46,-54.51,-60.08,-64.99,-69.38,-73.11,-76.03,-78.19,-79.55,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-79.87,-79.50,-78.90,-78.11,-77.12,-75.98,-74.68,-73.27,-71.76,-70.18,-68.49,-66.80,-65.08,-63.34,-61.64,-59.96,-58.30,-56.74,-55.26,-53.87,-52.58,-51.45,-50.44,-49.59,-48.91,-48.42,-48.10,-48,-48.10,-48.40,-48.90,-49.55,-50.38,-51.33,-52.42,-53.61,-54.90,-56.28,-57.75,-59.26,-60.83,-62.41,-64,-65.59,-67.17,-68.74,-70.25,-71.72,-73.10,-74.39,-75.58,-76.67,-77.62,-78.45,-79.10,-79.60,-79.90,-80,-79.78,-79.16,-78.14,-76.76,-75.06,-73.04,-70.74,-68.20,-65.42,-62.44,-59.24,-55.94,-52.52,-49.01,-45.43,-41.82,-38.18,-34.57,-30.99,-27.48,-24.06,-20.76,-17.56,-14.58,-11.80,-9.26,-6.96,-4.94,-3.24,-1.86,-0.84,-0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=16.27,25.62,32.37,35,33.80,30.57,25.90,20.36,14.64,9.10,4.43,1.20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-1.04,14.46,25.64,30,29.28,27.35,24.55,21.24,17.82,14.51,11.71,9.78,9.06,9.86,11.15,12.35,13.21,13.55,13.23,12.66,12.35,12.66,13.23,13.55,13.55,13.55,13.55,13.55,13.55,13.55,13.55,13.41,13.02,12.39,11.56,10.53,9.33,7.97,6.50,4.91,3.25,1.48,-0.29,-2.10,-3.91,-5.70,-7.46,-9.20,-10.83,-12.39,-13.85,-15.19,-16.38,-17.44,-18.34,-19.04,-19.56,-19.89,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-19.80,-19.21,-18.28,-17.04,-15.50,-13.72,-11.69,-9.49,-7.12,-4.66,-2.02,0.63,3.32,6.03,8.69,11.31,13.90,16.34,18.65,20.83,22.84,24.60,26.18,27.52,28.57,29.35,29.84,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30.00,29.99,29.98,29.97,29.95,29.93,29.90,29.88,29.84,29.81,29.77,29.72,29.67,29.62,29.57,29.51,29.45,29.38,29.32,29.24,29.17,29.09,29.00,28.92,28.83,28.74,28.64,28.54,28.44,28.33,28.23,28.11,28,27.89,27.78,27.68,27.58,27.48,27.39,27.31,27.22,27.13,27.05,26.96,26.88,26.79,26.70,26.60,26.51,26.40,26.30,26.19,26.07,25.94,25.81,25.67,25.52,25.35,25.18,25,24.65,24.05,23.19,22.11,20.87,19.49,17.95,16.38,14.72,13.03,11.34,9.72,8.11,6.61,5.19,3.92,2.79,1.82\nPARAM_BODY_ANGLE_X=0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.16,-0.34,-0.59,-0.90,-1.26,-1.66,-2.10,-2.58,-3.07,-3.60,-4.13,-4.66,-5.21,-5.74,-6.26,-6.78,-7.27,-7.73,-8.17,-8.57,-8.92,-9.24,-9.50,-9.71,-9.87,-9.97,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.93,-9.88,-9.82,-9.75,-9.67,-9.58,-9.48,-9.39,-9.28,-9.17,-9.07,-8.96,-8.85,-8.75,-8.64,-8.55,-8.45,-8.37,-8.29,-8.22,-8.15,-8.10,-8.06,-8.03,-8.01,-8,-8.01,-8.03,-8.06,-8.10,-8.15,-8.21,-8.28,-8.35,-8.43,-8.52,-8.61,-8.70,-8.80,-8.90,-9,-9.10,-9.20,-9.30,-9.39,-9.48,-9.57,-9.65,-9.72,-9.79,-9.85,-9.90,-9.94,-9.97,-9.99,-10,-9.98,-9.93,-9.84,-9.72,-9.57,-9.39,-9.19,-8.97,-8.72,-8.46,-8.17,-7.88,-7.57,-7.25,-6.92,-6.59,-6.25,-5.91,-5.57,-5.23,-4.90,-4.57,-4.25,-3.94,-3.65,-3.37,-3.10,-2.86,-2.64,-2.44,-2.26,-2.12,-2,-1.90,-1.80,-1.71,-1.62,-1.53,-1.45,-1.37,-1.29,-1.22,-1.15,-1.08,-1.01,-0.95,-0.89,-0.83,-0.77,-0.72,-0.67,-0.62,-0.58,-0.53,-0.49,-0.45,-0.42,-0.38,-0.35,-0.32,-0.29,-0.26,-0.24,-0.21,-0.19,-0.17,-0.15,-0.13,-0.12,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03\nPARAM_BODY_ANGLE_Y=0.93,1.46,1.85,2,1.99,1.96,1.92,1.84,1.74,1.61,1.45,1.24,1,0.63,0.36,0.17,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.21,-0.36,-0.54,-0.75,-1.00,-1.26,-1.55,-1.84,-2.16,-2.48,-2.80,-3.12,-3.44,-3.76,-4.07,-4.36,-4.64,-4.90,-5.14,-5.35,-5.54,-5.70,-5.83,-5.92,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.95,-5.90,-5.82,-5.72,-5.61,-5.48,-5.34,-5.18,-5.01,-4.83,-4.64,-4.44,-4.24,-4.03,-3.82,-3.61,-3.39,-3.18,-2.96,-2.76,-2.55,-2.35,-2.16,-1.98,-1.80,-1.64,-1.50,-1.36,-1.24,-1.14,-1.06,-1,-0.95,-0.90,-0.85,-0.81,-0.76,-0.72,-0.68,-0.64,-0.60,-0.57,-0.53,-0.50,-0.47,-0.44,-0.41,-0.38,-0.35,-0.33,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.02,-0.01,-0.01\nPARAM_BROW_R_Y=0.62,0.68,0.73,0.75,0.75,0.74,0.73,0.71,0.70,0.68,0.67,0.66,0.66,0.66,0.67,0.67,0.68,0.68,0.68,0.68,0.67,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.60,0.59,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.55,0.55,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51\nPARAM_ANGLE_Y=-2.11,13.92,25.49,30,29.25,27.26,24.37,20.94,17.40,13.97,11.08,9.08,8.34,9.17,10.50,11.74,12.63,12.98,12.65,12.06,11.74,12.06,12.65,12.98,12.98,12.98,12.98,12.98,12.98,12.98,12.98,12.90,12.65,12.26,11.74,11.09,10.35,9.49,8.57,7.58,6.54,5.44,4.33,3.20,2.06,0.94,-0.16,-1.25,-2.27,-3.24,-4.15,-4.99,-5.73,-6.40,-6.96,-7.40,-7.73,-7.93,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8.09,-8.35,-8.76,-9.30,-9.98,-10.76,-11.66,-12.63,-13.67,-14.75,-15.91,-17.08,-18.26,-19.45,-20.62,-21.78,-22.92,-23.99,-25.01,-25.96,-26.85,-27.62,-28.32,-28.91,-29.37,-29.71,-29.93,-30,-29.94,-29.77,-29.50,-29.13,-28.66,-28.13,-27.52,-26.84,-26.11,-25.32,-24.49,-23.63,-22.73,-21.83,-20.91,-19.99,-19.07,-18.16,-17.27,-16.40,-15.58,-14.80,-14.07,-13.40,-12.79,-12.25,-11.80,-11.43,-11.16,-11,-10.89,-10.80,-10.70,-10.62,-10.54,-10.46,-10.39,-10.32,-10.26,-10.20,-10.15,-10.10,-10.05,-10.00,-9.95,-9.91,-9.87,-9.83,-9.78,-9.74,-9.70,-9.65,-9.61,-9.56,-9.51,-9.46,-9.41,-9.35,-9.29,-9.22,-9.15,-9.08,-9,-8.91,-8.82,-8.73,-8.63,-8.52,-8.42,-8.30,-8.18,-8.06,-7.93,-7.79,-7.65,-7.51,-7.36,-7.21,-7.05,-6.88,-6.72,-6.55,-6.37,-6.19,-6.00,-5.81,-5.62,-5.41,-5.21,-5,-4.76,-4.51,-4.24,-3.94,-3.65,-3.34,-3.02,-2.72,-2.41,-2.10,-1.81,-1.53,-1.27,-1.02,-0.80,-0.60,-0.42,-0.27\nPARAM_ANGLE_X=1.64,15.80,26.02,30,29.34,27.58,25.02,22.00,18.87,15.84,13.29,11.52,10.87,11.60,12.77,13.87,14.66,14.97,14.68,14.16,13.87,14.16,14.68,14.97,14.97,14.97,14.97,14.97,14.97,14.97,14.97,14.83,14.45,13.83,13.02,12.00,10.82,9.49,8.04,6.48,4.85,3.11,1.37,-0.41,-2.19,-3.95,-5.68,-7.39,-8.99,-10.52,-11.95,-13.28,-14.44,-15.48,-16.37,-17.06,-17.57,-17.89,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18.05,-18.19,-18.41,-18.71,-19.08,-19.51,-20.00,-20.52,-21.09,-21.68,-22.32,-22.95,-23.60,-24.25,-24.88,-25.51,-26.14,-26.72,-27.28,-27.80,-28.28,-28.70,-29.08,-29.40,-29.66,-29.84,-29.96,-30,-29.99,-29.95,-29.88,-29.79,-29.67,-29.53,-29.36,-29.16,-28.93,-28.67,-28.38,-28.07,-27.72,-27.34,-26.94,-26.51,-26.04,-25.54,-25.01,-24.44,-23.85,-23.23,-22.57,-21.88,-21.16,-20.39,-19.60,-18.76,-17.90,-17,-16.10,-15.21,-14.36,-13.52,-12.71,-11.93,-11.16,-10.43,-9.72,-9.03,-8.36,-7.73,-7.12,-6.55,-5.99,-5.47,-4.97,-4.50,-4.06,-3.65,-3.26,-2.91,-2.58,-2.28,-2.02,-1.78,-1.57,-1.40,-1.26,-1.14,-1.06,-1.02,-1,-1.01,-1.05,-1.10,-1.18,-1.27,-1.38,-1.50,-1.63,-1.78,-1.93,-2.09,-2.25,-2.42,-2.58,-2.75,-2.91,-3.07,-3.22,-3.37,-3.50,-3.62,-3.73,-3.82,-3.90,-3.95,-3.99,-4,-3.97,-3.90,-3.78,-3.62,-3.43,-3.21,-2.97,-2.72,-2.45,-2.17,-1.89,-1.63,-1.36,-1.11,-0.87,-0.66,-0.47,-0.31\nPARAM_MOUTH_OPEN_Y=0.46,0.73,0.92,1,0.99,0.95,0.91,0.85,0.79,0.73,0.68,0.65,0.64,0.66,0.68,0.71,0.72,0.73,0.54,0.19,0,0,0,0,0.03,0.09,0.16,0.24,0.30,0.34,0.35,0.35,0.34,0.34,0.33,0.32,0.31,0.29,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.15,0.13,0.11,0.10,0.08,0.06,0.05,0.04,0.03,0.02,0.01,0.00,0.00,0,0.03,0.11,0.22,0.34,0.47,0.60,0.72,0.82,0.91,0.96,0.98,0.97,0.93,0.88,0.81,0.73,0.63,0.54,0.44,0.35,0.25,0.17,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.46,-0.73,-0.92,-1,-0.99,-0.95,-0.91,-0.85,-0.79,-0.73,-0.68,-0.65,-0.64,-0.65,-0.67,-0.70,-0.71,-0.72,-0.71,-0.70,-0.70,-0.70,-0.71,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.71,-0.71,-0.71,-0.71,-0.70,-0.70,-0.70,-0.69,-0.69,-0.68,-0.68,-0.67,-0.66,-0.66,-0.65,-0.64,-0.63,-0.63,-0.62,-0.61,-0.60,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.52,-0.51,-0.50,-0.49,-0.48,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.39,-0.38,-0.37,-0.36,-0.35,-0.33,-0.32,-0.31,-0.30,-0.29,-0.28,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.19,-0.18,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03\nPARAM_MOUTH_FORM=-0.20,-0.31,-0.39,-0.42,-0.41,-0.40,-0.38,-0.36,-0.33,-0.31,-0.29,-0.27,-0.27,-0.39,-0.59,-0.77,-0.90,-0.95,-0.90,-0.82,-0.77,-0.82,-0.90,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.92,-0.92,-0.91,-0.90,-0.89,-0.87,-0.86,-0.85,-0.83,-0.82,-0.80,-0.79,-0.77,-0.75,-0.73,-0.71,-0.69,-0.67,-0.65,-0.63,-0.61,-0.59,-0.57,-0.54,-0.52,-0.50,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.03,-0.01,0.02,0.04,0.07,0.09,0.12,0.14,0.17,0.19,0.21,0.24,0.26,0.28,0.30,0.32,0.34,0.36,0.38,0.40,0.42,0.44,0.46,0.47,0.49,0.50,0.52,0.53,0.54\nPARAM_EYE_L_OPEN=0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.74,0.26,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.27,-0.43,-0.55,-0.59,-0.58,-0.56,-0.53,-0.50,-0.47,-0.43,-0.40,-0.38,-0.38,-0.39,-0.40,-0.41,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.40,-0.40,-0.40,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.32,-0.32,-0.31,-0.31,-0.31,-0.30,-0.30,-0.29,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.24,-0.24,-0.23,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02\nPARAM_BROW_L_SIDE=-0.15,-0.23,-0.30,-0.32,-0.32,-0.31,-0.29,-0.27,-0.25,-0.23,-0.22,-0.21,-0.20,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01\nPARAM_BROW_L_Y=0.38,0.32,0.27,0.25,0.25,0.26,0.28,0.29,0.31,0.32,0.33,0.34,0.35,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.41,0.41,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49\nPARAM_BROW_R_ANGLE=-0.39,-0.61,-0.77,-0.83,-0.82,-0.79,-0.75,-0.70,-0.66,-0.61,-0.57,-0.54,-0.53,-0.54,-0.56,-0.58,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.56,-0.56,-0.55,-0.54,-0.54,-0.53,-0.53,-0.52,-0.51,-0.51,-0.50,-0.49,-0.48,-0.47,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.30,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.19,-0.18,-0.17,-0.16,-0.15,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.03\nPARAM_BROW_R_FORM=-0.46,-0.73,-0.92,-1,-0.99,-0.95,-0.91,-0.85,-0.79,-0.73,-0.68,-0.65,-0.64,-0.65,-0.67,-0.70,-0.71,-0.72,-0.71,-0.70,-0.70,-0.70,-0.71,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.73,-0.73,-0.74,-0.75,-0.76,-0.78,-0.79,-0.80,-0.82,-0.83,-0.85,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_EYE_R_OPEN=0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.74,0.26,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.12,-0.19,-0.24,-0.26,-0.26,-0.26,-0.25,-0.25,-0.24,-0.23,-0.21,-0.19,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0.03,-0.08,-0.11,-0.08,-0.03,0,-0.02,-0.06,-0.10,-0.15,-0.19,-0.21,-0.22,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.11,-0.09,-0.06,-0.02,0.01,0.04,0.08,0.11,0.15,0.18,0.21,0.25,0.27,0.30,0.33,0.35,0.37,0.39,0.40,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.39,0.32,0.23,0.12,0.00,-0.11,-0.22,-0.31,-0.39,-0.43,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.43,-0.39,-0.34,-0.28,-0.21,-0.14,-0.08,-0.03,0.01,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.03,0.02,0.01,0,-0.02,-0.03,-0.05,-0.06,-0.08,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.24,-0.23,-0.22,-0.20,-0.18,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.06,-0.04,-0.03,-0.02\nPARAM_EYE_BALL_Y=-0.27,-0.42,-0.54,-0.58,-0.58,-0.57,-0.57,-0.55,-0.53,-0.51,-0.47,-0.43,-0.37,-0.26,-0.16,-0.08,-0.02,0,-0.02,-0.06,-0.08,-0.06,-0.02,0,-0.03,-0.10,-0.18,-0.26,-0.32,-0.37,-0.38,-0.38,-0.37,-0.36,-0.35,-0.33,-0.31,-0.29,-0.26,-0.24,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.01,0.02,0.05,0.07,0.09,0.11,0.13,0.14,0.15,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.18,0.22,0.27,0.33,0.38,0.43,0.48,0.51,0.53,0.54,0.54,0.53,0.52,0.51,0.49,0.48,0.47,0.45,0.44,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.41,0.40,0.38,0.36,0.34,0.31,0.29,0.26,0.23,0.20,0.17,0.14,0.12,0.09,0.07,0.05,0.03\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,0.04,0.16,0.36,0.63,0.97,1.35,1.79,2.28,2.8,3.36,3.96,4.57,5.21,5.85,6.5,7.15,7.79,8.43,9.04,9.64,10.2,10.72,11.21,11.65,12.03,12.37,12.64,12.84,12.96,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12.92,12.67,12.27,11.74,11.07,10.29,9.41,8.44,7.39,6.27,5.08,3.85,2.57,1.29,0,-1.29,-2.57,-3.85,-5.08,-6.27,-7.39,-8.44,-9.41,-10.29,-11.07,-11.74,-12.27,-12.67,-12.92,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12.99,-12.97,-12.94,-12.9,-12.85,-12.78,-12.7,-12.62,-12.52,-12.41,-12.3,-12.17,-12.04,-11.89,-11.74,-11.58,-11.42,-11.24,-11.06,-10.88,-10.68,-10.49,-10.28,-10.07,-9.86,-9.64,-9.41,-9.19,-8.96,-8.73,-8.49,-8.25,-8.01,-7.76,-7.52,-7.27,-7.03,-6.78,-6.53,-6.28,-6.04,-5.79,-5.55,-5.3,-5.06,-4.82,-4.58,-4.34,-4.11,-3.88,-3.66,-3.44,-3.22,-3,-2.8,-2.59,-2.4,-2.2,-2.02,-1.84,-1.66,-1.5,-1.34,-1.19,-1.04,-0.91,-0.78,-0.66,-0.55,-0.45,-0.36,-0.28,-0.2,-0.14,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.06,-0.24,-0.53,-0.92,-1.41,-1.98,-2.62,-3.33,-4.1,-4.92,-5.79,-6.69,-7.62,-8.56,-9.5,-10.44,-11.38,-12.31,-13.21,-14.08,-14.9,-15.67,-16.38,-17.02,-17.59,-18.08,-18.47,-18.76,-18.94,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-18.91,-18.65,-18.21,-17.64,-16.92,-16.08,-15.14,-14.09,-12.96,-11.75,-10.47,-9.15,-7.77,-6.39,-5,-3.61,-2.23,-0.85,0.47,1.75,2.96,4.09,5.14,6.08,6.92,7.64,8.21,8.65,8.91,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8.98,8.96,8.93,8.89,8.85,8.8,8.74,8.67,8.59,8.51,8.43,8.33,8.23,8.13,8.02,7.91,7.78,7.66,7.53,7.4,7.26,7.12,6.97,6.82,6.67,6.52,6.36,6.2,6.04,5.87,5.71,5.54,5.38,5.21,5.04,4.87,4.69,4.52,4.35,4.18,4.01,3.84,3.67,3.5,3.34,3.17,3.01,2.85,2.69,2.53,2.38,2.23,2.08,1.94,1.79,1.66,1.52,1.4,1.27,1.15,1.04,0.93,0.82,0.72,0.63,0.54,0.46,0.38,0.31,0.25,0.19,0.14,0.1,0.06,0.04,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.1,-0.18,-0.28,-0.39,-0.52,-0.67,-0.83,-1.01,-1.2,-1.4,-1.62,-1.84,-2.08,-2.31,-2.56,-2.81,-3.08,-3.33,-3.6,-3.87,-4.13,-4.4,-4.67,-4.92,-5.19,-5.44,-5.69,-5.92,-6.16,-6.38,-6.6,-6.8,-6.99,-7.17,-7.33,-7.48,-7.61,-7.72,-7.82,-7.9,-7.95,-7.99,-8,-7.94,-7.76,-7.47,-7.08,-6.59,-6.02,-5.38,-4.67,-3.9,-3.08,-2.21,-1.31,-0.38,0.56,1.5,2.44,3.38,4.31,5.21,6.08,6.9,7.67,8.38,9.02,9.59,10.08,10.47,10.76,10.94,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.96,10.86,10.69,10.47,10.18,9.85,9.48,9.07,8.63,8.15,7.65,7.13,6.59,6.05,5.5,4.95,4.41,3.87,3.35,2.85,2.37,1.93,1.52,1.15,0.82,0.53,0.31,0.14,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.16,-0.15,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.01,0.01,0.04,0.07,0.1,0.12,0.15,0.18,0.2,0.23,0.25,0.27,0.29,0.31,0.33,0.34,0.35,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.12,0.11,0.11,0.1,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.01,0.01,0.02,0.03,0.04,0.06,0.07,0.09,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.36,0.38,0.39,0.4,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.41,0.39,0.37,0.34,0.3,0.26,0.22,0.18,0.13,0.08,0.02,-0.03,-0.09,-0.14,-0.2,-0.26,-0.31,-0.37,-0.42,-0.47,-0.51,-0.55,-0.59,-0.63,-0.66,-0.68,-0.7,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.69,-0.69,-0.69,-0.69,-0.69,-0.68,-0.68,-0.68,-0.68,-0.67,-0.67,-0.67,-0.67,-0.66,-0.66,-0.66,-0.65,-0.65,-0.65,-0.65,-0.64,-0.64,-0.64,-0.63,-0.63,-0.63,-0.62,-0.62,-0.62,-0.61,-0.61,-0.6,-0.6,-0.6,-0.59,-0.59,-0.59,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.56,-0.56,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.45,-0.44,-0.43,-0.42,-0.41,-0.4,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.19,-0.17,-0.15,-0.14,-0.12,-0.1,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TERE=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_01.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.93,-13.84,-13.72,-13.57,-13.39,-13.18,-12.94,-12.68,-12.39,-12.09,-11.75,-11.4,-11.02,-10.63,-10.22,-9.8,-9.36,-8.9,-8.43,-7.96,-7.47,-6.97,-6.47,-5.96,-5.44,-4.92,-4.39,-3.86,-3.33,-2.8,-2.28,-1.75,-1.22,-0.69,-0.18,0.32,0.83,1.32,1.81,2.28,2.74,3.19,3.63,4.05,4.46,4.85,5.22,5.57,5.91,6.22,6.51,6.78,7.03,7.25,7.44,7.61,7.75,7.86,7.93,7.98,8,7.99,7.97,7.93,7.87,7.8,7.72,7.63,7.52,7.4,7.27,7.12,6.97,6.81,6.64,6.46,6.28,6.08,5.88,5.68,5.46,5.24,5.02,4.8,4.57,4.35,4.11,3.88,3.64,3.41,3.18,2.95,2.72,2.49,2.26,2.04,1.82,1.6,1.39,1.19,0.99,0.8,0.61,0.44,0.27,0.1,-0.05,-0.19,-0.32,-0.45,-0.56,-0.66,-0.75,-0.82,-0.88,-0.93,-0.97,-0.99,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.9,-0.86,-0.83,-0.79,-0.74,-0.7,-0.65,-0.6,-0.55,-0.51,-0.46,-0.41,-0.36,-0.32,-0.27,-0.23,-0.19,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Y=0,0.03,0.13,0.28,0.49,0.74,1.04,1.38,1.75,2.16,2.59,3.05,3.52,4.01,4.5,5,5.5,5.99,6.48,6.95,7.41,7.84,8.25,8.62,8.96,9.26,9.51,9.72,9.87,9.97,10,9.98,9.91,9.8,9.65,9.45,9.22,8.96,8.65,8.32,7.95,7.56,7.14,6.68,6.21,5.72,5.19,4.65,4.1,3.51,2.92,2.31,1.69,1.05,0.41,-0.24,-0.9,-1.56,-2.23,-2.9,-3.58,-4.26,-4.92,-5.6,-6.27,-6.93,-7.58,-8.23,-8.87,-9.5,-10.12,-10.72,-11.31,-11.88,-12.43,-12.98,-13.49,-13.99,-14.46,-14.91,-15.34,-15.73,-16.11,-16.45,-16.76,-17.04,-17.29,-17.5,-17.68,-17.82,-17.92,-17.98,-18,-17.98,-17.92,-17.81,-17.67,-17.5,-17.29,-17.04,-16.77,-16.46,-16.13,-15.76,-15.37,-14.96,-14.53,-14.07,-13.59,-13.09,-12.59,-12.06,-11.52,-10.96,-10.4,-9.83,-9.24,-8.66,-8.06,-7.48,-6.87,-6.28,-5.68,-5.09,-4.5,-3.91,-3.34,-2.76,-2.21,-1.65,-1.12,-0.6,-0.09,0.4,0.87,1.33,1.77,2.18,2.57,2.93,3.27,3.58,3.87,4.13,4.35,4.54,4.71,4.83,4.92,4.98,5,4.99,4.96,4.92,4.85,4.78,4.68,4.58,4.46,4.33,4.2,4.05,3.9,3.74,3.57,3.41,3.24,3.06,2.89,2.72,2.54,2.38,2.21,2.05,1.89,1.74,1.59,1.46,1.33,1.21,1.1,1,0.9,0.8,0.72,0.64,0.56,0.5,0.43,0.38,0.33,0.28,0.24,0.2,0.17,0.14,0.12,0.09,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.95,-5.81,-5.59,-5.29,-4.92,-4.49,-4,-3.48,-2.91,-2.32,-1.68,-1.05,-0.4,0.25,0.88,1.51,2.14,2.72,3.28,3.8,4.28,4.7,5.08,5.4,5.66,5.84,5.96,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.95,0.95,0.91,0.82,0.7,0.56,0.41,0.27,0.15,0.07,0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0.01,0.03,0.08,0.13,0.2,0.28,0.36,0.44,0.53,0.61,0.7,0.78,0.86,0.93,1,1.07,1.13,1.19,1.25,1.31,1.37,1.42,1.47,1.52,1.56,1.6,1.65,1.68,1.72,1.75,1.79,1.82,1.84,1.87,1.89,1.91,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.8,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.03,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.97,0.92,0.83,0.73,0.62,0.49,0.36,0.24,0.12,0,-0.14,-0.29,-0.44,-0.58,-0.71,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.94,-0.87,-0.79,-0.7,-0.59,-0.48,-0.36,-0.24,-0.12,0.01,0.16,0.28,0.4,0.5,0.59,0.66,0.73,0.79,0.84,0.88,0.91,0.94,0.96,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.05,0.1,0.16,0.23,0.31,0.4,0.48,0.57,0.66,0.75,0.84,0.92,1,1.08,1.15,1.22,1.29,1.35,1.41,1.47,1.52,1.57,1.61,1.66,1.7,1.74,1.77,1.8,1.83,1.85,1.88,1.9,1.92,1.94,1.95,1.96,1.97,1.98,1.99,1.99,2,2,2,2,1.98,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.66,1.62,1.56,1.51,1.46,1.41,1.36,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.97,0.92,0.83,0.73,0.62,0.49,0.36,0.24,0.12,0,-0.14,-0.29,-0.44,-0.58,-0.71,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.94,-0.87,-0.79,-0.7,-0.59,-0.48,-0.36,-0.24,-0.12,0.01,0.16,0.28,0.4,0.5,0.59,0.66,0.73,0.79,0.84,0.88,0.91,0.94,0.96,0.98,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_BALL_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.26,-0.28,-0.3,-0.32,-0.34,-0.35,-0.37,-0.39,-0.4,-0.41,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.3,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.1,-0.08,-0.06,-0.04,-0.01,0.01,0.03,0.06,0.08,0.1,0.12,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.36,0.38,0.39,0.41,0.42,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.5,0.5,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.51,0.5,0.48,0.46,0.44,0.42,0.39,0.37,0.34,0.31,0.29,0.26,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.06,0.04,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_Y=0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.1,0.13,0.15,0.18,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.4,0.43,0.45,0.48,0.5,0.52,0.54,0.55,0.56,0.57,0.58,0.58,0.53,0.38,0.18,-0.06,-0.3,-0.53,-0.72,-0.87,-0.97,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.9,-0.87,-0.85,-0.82,-0.79,-0.75,-0.72,-0.68,-0.64,-0.6,-0.56,-0.52,-0.48,-0.43,-0.39,-0.35,-0.3,-0.26,-0.21,-0.17,-0.12,-0.08,-0.04,0.01,0.05,0.09,0.13,0.17,0.21,0.24,0.28,0.31,0.34,0.37,0.4,0.42,0.45,0.47,0.49,0.5,0.52,0.53,0.53,0.54,0.54,0.54,0.52,0.51,0.48,0.45,0.41,0.37,0.33,0.28,0.24,0.18,0.13,0.08,0.03,-0.03,-0.08,-0.13,-0.18,-0.23,-0.27,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.49,-0.5,-0.5,-0.5,-0.49,-0.47,-0.45,-0.42,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.14,-0.09,-0.05,0,0.05,0.09,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.38,0.39,0.41,0.42,0.42,0.41,0.4,0.37,0.33,0.29,0.25,0.2,0.15,0.11,0.06,0.02,-0.01,-0.04,-0.06,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_FORM=0\n\nPARAM_EYE_BALL_KIRAKIRA=0\n\nPARAM_BROW_L_Y=0\n\nPARAM_BROW_R_Y=0\n\nPARAM_BROW_L_X=0\n\nPARAM_BROW_R_X=0\n\nPARAM_BROW_L_ANGLE=0\n\nPARAM_BROW_R_ANGLE=0\n\nPARAM_BROW_L_FORM=0\n\nPARAM_BROW_R_FORM=0\n\nPARAM_MOUTH_OPEN_Y=0\n\nPARAM_MOUTH_FORM=1\n\nPARAM_MOUTH_SIZE=0\n\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\n\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_BODY_Z=0\n\nPARAM_BODY_Y=0\n\nPARAM_BREATH=0\n\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ARM_L_02=0\n\nPARAM_HAND_L=0\n\nPARAM_ARM_R=0\n\nPARAM_ARM_R_02=0\n\nPARAM_HAND_R=0\n\nPARAM_KAMIYURE_FRONT=0\n\nPARAM_KAMIYURE_SIDE_L=0\n\nPARAM_KAMIYURE_SIDE_R=0\n\nPARAM_KAMIYURE_TWIN_L=0\n\nPARAM_KAMIYURE_TWIN_R=0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_02.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.93,-13.84,-13.72,-13.57,-13.39,-13.18,-12.94,-12.68,-12.39,-12.09,-11.75,-11.4,-11.02,-10.63,-10.22,-9.8,-9.36,-8.9,-8.43,-7.96,-7.47,-6.97,-6.47,-5.96,-5.44,-4.92,-4.39,-3.86,-3.33,-2.8,-2.28,-1.75,-1.22,-0.69,-0.18,0.32,0.83,1.32,1.81,2.28,2.74,3.19,3.63,4.05,4.46,4.85,5.22,5.57,5.91,6.22,6.51,6.78,7.03,7.25,7.44,7.61,7.75,7.86,7.93,7.98,8,7.99,7.97,7.93,7.87,7.8,7.72,7.63,7.52,7.4,7.27,7.12,6.97,6.81,6.64,6.46,6.28,6.08,5.88,5.68,5.46,5.24,5.02,4.8,4.57,4.35,4.11,3.88,3.64,3.41,3.18,2.95,2.72,2.49,2.26,2.04,1.82,1.6,1.39,1.19,0.99,0.8,0.61,0.44,0.27,0.1,-0.05,-0.19,-0.32,-0.45,-0.56,-0.66,-0.75,-0.82,-0.88,-0.93,-0.97,-0.99,-1,-1,-1,-1,-0.99,-0.99,-0.98,-0.97,-0.96,-0.95,-0.94,-0.92,-0.9,-0.88,-0.86,-0.83,-0.81,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.53,-0.47,-0.41,-0.35,-0.29,-0.22,-0.15,-0.08,0,0.09,0.18,0.28,0.37,0.46,0.55,0.64,0.73,0.81,0.9,0.98,1.06,1.14,1.22,1.3,1.37,1.44,1.5,1.57,1.63,1.68,1.73,1.78,1.83,1.86,1.9,1.93,1.95,1.97,1.99,2,2,2,1.99,1.98,1.97,1.95,1.93,1.91,1.88,1.85,1.82,1.79,1.75,1.71,1.67,1.62,1.58,1.53,1.48,1.43,1.38,1.33,1.28,1.22,1.17,1.12,1.06,1.01,0.95,0.9,0.84,0.79,0.74,0.68,0.63,0.58,0.53,0.49,0.44,0.39,0.35,0.31,0.27,0.23,0.2,0.17,0.14,0.11,0.08,0.06,0.04,0.03,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Y=0,0.03,0.13,0.28,0.49,0.74,1.04,1.38,1.75,2.16,2.59,3.05,3.52,4.01,4.5,5,5.5,5.99,6.48,6.95,7.41,7.84,8.25,8.62,8.96,9.26,9.51,9.72,9.87,9.97,10,9.98,9.91,9.8,9.65,9.45,9.22,8.96,8.65,8.32,7.95,7.56,7.14,6.68,6.21,5.72,5.19,4.65,4.1,3.51,2.92,2.31,1.69,1.05,0.41,-0.24,-0.9,-1.56,-2.23,-2.9,-3.58,-4.26,-4.92,-5.6,-6.27,-6.93,-7.58,-8.23,-8.87,-9.5,-10.12,-10.72,-11.31,-11.88,-12.43,-12.98,-13.49,-13.99,-14.46,-14.91,-15.34,-15.73,-16.11,-16.45,-16.76,-17.04,-17.29,-17.5,-17.68,-17.82,-17.92,-17.98,-18,-17.98,-17.92,-17.81,-17.67,-17.5,-17.29,-17.04,-16.77,-16.46,-16.13,-15.76,-15.37,-14.96,-14.53,-14.07,-13.59,-13.09,-12.59,-12.06,-11.52,-10.96,-10.4,-9.83,-9.24,-8.66,-8.06,-7.48,-6.87,-6.28,-5.68,-5.09,-4.5,-3.91,-3.34,-2.76,-2.21,-1.65,-1.12,-0.6,-0.09,0.4,0.87,1.33,1.77,2.18,2.57,2.93,3.27,3.58,3.87,4.13,4.35,4.54,4.71,4.83,4.92,4.98,5,5,5,5.01,5.01,5.01,5.01,5,4.99,4.98,4.95,4.92,4.87,4.82,4.75,4.67,4.58,4.48,4.35,4.22,4.06,3.89,3.69,3.48,3.25,2.99,2.72,2.42,2.1,1.76,1.39,1,0.5,-0.1,-0.77,-1.51,-2.3,-3.15,-4.06,-5,-5.96,-6.97,-7.97,-8.99,-10.02,-11.05,-12.08,-13.1,-14.09,-15.05,-15.99,-16.9,-17.76,-18.59,-19.34,-20.06,-20.7,-21.27,-21.78,-22.21,-22.55,-22.79,-22.95,-23,-22.98,-22.91,-22.79,-22.64,-22.45,-22.21,-21.94,-21.64,-21.3,-20.93,-20.53,-20.1,-19.65,-19.18,-18.67,-18.15,-17.61,-17.06,-16.49,-15.9,-15.31,-14.7,-14.08,-13.46,-12.84,-12.21,-11.58,-10.94,-10.32,-9.7,-9.07,-8.47,-7.87,-7.28,-6.7,-6.13,-5.58,-5.05,-4.53,-4.03,-3.56,-3.11,-2.68,-2.28,-1.91,-1.56,-1.25,-0.97,-0.72,-0.5,-0.33,-0.19,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.99,-5.98,-5.95,-5.91,-5.86,-5.79,-5.72,-5.64,-5.56,-5.46,-5.36,-5.24,-5.13,-5,-4.87,-4.73,-4.6,-4.45,-4.3,-4.15,-3.99,-3.83,-3.67,-3.51,-3.35,-3.18,-3.02,-2.86,-2.69,-2.53,-2.37,-2.21,-2.05,-1.9,-1.75,-1.6,-1.46,-1.32,-1.18,-1.05,-0.93,-0.81,-0.7,-0.59,-0.5,-0.41,-0.33,-0.25,-0.19,-0.13,-0.08,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.91,0.73,0.49,0.25,0.07,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.8,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.03,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.02,0.05,0.1,0.16,0.23,0.3,0.38,0.47,0.55,0.63,0.7,0.76,0.81,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.9,0.9,0.9,0.9,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.98,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.66,1.62,1.56,1.51,1.46,1.41,1.37,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.96,0.87,0.74,0.59,0.44,0.3,0.18,0.09,0.03,0.01,0.02,0.05,0.1,0.16,0.23,0.3,0.38,0.47,0.55,0.63,0.7,0.76,0.81,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.9,0.9,0.9,0.9,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\n\nPARAM_EYE_BALL_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.26,-0.28,-0.3,-0.32,-0.34,-0.35,-0.37,-0.39,-0.4,-0.41,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.41,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.3,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.18,-0.16,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.02,0,0.02,0.04,0.06,0.08,0.1,0.12,0.14,0.16,0.18,0.2,0.22,0.23,0.25,0.27,0.29,0.3,0.32,0.33,0.35,0.36,0.38,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.5,0.5,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.51,0.5,0.48,0.46,0.44,0.42,0.39,0.37,0.34,0.31,0.29,0.26,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.06,0.04,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,0,0.01,0.02,0.03,0.04,0.05,0.07,0.08,0.1,0.12,0.13,0.15,0.17,0.19,0.21,0.23,0.25,0.27,0.29,0.31,0.33,0.35,0.37,0.39,0.41,0.43,0.45,0.47,0.49,0.51,0.52,0.54,0.55,0.57,0.58,0.59,0.6,0.62,0.62,0.63,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.63,0.63,0.62,0.61,0.6,0.59,0.58,0.57,0.56,0.54,0.53,0.51,0.5,0.48,0.47,0.45,0.43,0.42,0.4,0.38,0.36,0.34,0.33,0.31,0.29,0.27,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.11,0.1,0.09,0.08,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_Y=0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.1,0.13,0.15,0.18,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.4,0.43,0.45,0.48,0.5,0.52,0.54,0.55,0.56,0.57,0.58,0.58,0.46,0.17,-0.21,-0.59,-0.88,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.52,0.51,0.48,0.45,0.41,0.37,0.33,0.28,0.24,0.18,0.13,0.08,0.03,-0.03,-0.08,-0.13,-0.18,-0.23,-0.27,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.49,-0.5,-0.5,-0.5,-0.49,-0.47,-0.45,-0.42,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.14,-0.09,-0.05,0,0.05,0.09,0.14,0.18,0.22,0.26,0.29,0.32,0.35,0.38,0.39,0.41,0.42,0.42,0.41,0.4,0.37,0.34,0.31,0.27,0.23,0.18,0.14,0.09,0.05,0,-0.04,-0.08,-0.12,-0.16,-0.2,-0.24,-0.28,-0.32,-0.35,-0.39,-0.42,-0.45,-0.48,-0.51,-0.54,-0.57,-0.6,-0.62,-0.65,-0.67,-0.69,-0.72,-0.74,-0.76,-0.78,-0.79,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.9,-0.91,-0.92,-0.93,-0.94,-0.95,-0.96,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.98,-0.97,-0.95,-0.94,-0.93,-0.91,-0.89,-0.87,-0.85,-0.83,-0.81,-0.79,-0.77,-0.74,-0.72,-0.69,-0.67,-0.64,-0.61,-0.59,-0.56,-0.53,-0.5,-0.48,-0.45,-0.42,-0.39,-0.37,-0.34,-0.32,-0.29,-0.27,-0.24,-0.22,-0.2,-0.18,-0.15,-0.14,-0.12,-0.1,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_EYE_BALL_FORM=0\n\nPARAM_EYE_BALL_KIRAKIRA=0\n\nPARAM_BROW_L_Y=0\n\nPARAM_BROW_R_Y=0\n\nPARAM_BROW_L_X=0\n\nPARAM_BROW_R_X=0\n\nPARAM_BROW_L_ANGLE=0\n\nPARAM_BROW_R_ANGLE=0\n\nPARAM_BROW_L_FORM=0\n\nPARAM_BROW_R_FORM=0\n\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.04,0.05,0.05,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_MOUTH_FORM=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.1,-0.1,-0.1,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.2,-0.23,-0.26,-0.29,-0.31,-0.34,-0.37,-0.4,-0.43,-0.46,-0.49,-0.52,-0.54,-0.57,-0.6,-0.62,-0.65,-0.67,-0.69,-0.71,-0.73,-0.75,-0.77,-0.78,-0.79,-0.81,-0.82,-0.83,-0.83,-0.84,-0.85,-0.85,-0.86,-0.86,-0.87,-0.87,-0.87,-0.87,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.87,-0.87,-0.86,-0.85,-0.85,-0.84,-0.83,-0.82,-0.81,-0.8,-0.79,-0.78,-0.77,-0.75,-0.74,-0.73,-0.72,-0.72,-0.71,-0.7,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.68,-0.68,-0.68,-0.68,-0.69,-0.69,-0.69,-0.7,-0.7,-0.7,-0.71,-0.71,-0.71,-0.72,-0.72,-0.72,-0.73,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.77,-0.75,-0.73,-0.71,-0.69,-0.66,-0.63,-0.6,-0.57,-0.53,-0.5,-0.46,-0.43,-0.39,-0.36,-0.33,-0.3,-0.27,-0.25,-0.23,-0.21,-0.19,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17\n\nPARAM_MOUTH_SIZE=0\n\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.65,0.65,0.66,0.66,0.66,0.67,0.67,0.67,0.68,0.68,0.69,0.69,0.69,0.7,0.7,0.71,0.71,0.72,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.77,0.77,0.78,0.78,0.79,0.79,0.8,0.8,0.81,0.81,0.82,0.82,0.83,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.89,0.9,0.9,0.9,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.98,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.92,0.92,0.91,0.9,0.89,0.88,0.87,0.86,0.84,0.83,0.82,0.81,0.8,0.79,0.78,0.77,0.76,0.75,0.74,0.73,0.72,0.71,0.7,0.69,0.68,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\n\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_BODY_Z=0\n\nPARAM_BODY_Y=0\n\nPARAM_BREATH=0\n\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nPARAM_ARM_L_02=0\n\nPARAM_HAND_L=0\n\nPARAM_ARM_R=0\n\nPARAM_ARM_R_02=0\n\nPARAM_HAND_R=0\n\nPARAM_KAMIYURE_FRONT=0\n\nPARAM_KAMIYURE_SIDE_L=0\n\nPARAM_KAMIYURE_SIDE_R=0\n\nPARAM_KAMIYURE_TWIN_L=0\n\nPARAM_KAMIYURE_TWIN_R=0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-13.98,-13.91,-13.81,-13.66,-13.47,-13.25,-12.99,-12.7,-12.38,-12.03,-11.65,-11.24,-10.8,-10.34,-9.87,-9.37,-8.84,-8.31,-7.75,-7.17,-6.59,-5.99,-5.37,-4.76,-4.13,-3.49,-2.85,-2.21,-1.56,-0.91,-0.25,0.39,1.04,1.69,2.33,2.96,3.58,4.2,4.81,5.4,5.98,6.55,7.1,7.63,8.16,8.65,9.13,9.59,10.02,10.44,10.81,11.18,11.51,11.81,12.07,12.31,12.52,12.69,12.82,12.92,12.98,13,12.98,12.93,12.84,12.72,12.57,12.38,12.17,11.93,11.66,11.37,11.06,10.72,10.35,9.98,9.58,9.17,8.73,8.29,7.84,7.36,6.88,6.39,5.89,5.38,4.88,4.36,3.85,3.32,2.81,2.28,1.77,1.26,0.75,0.25,-0.25,-0.73,-1.22,-1.68,-2.13,-2.57,-3,-3.41,-3.81,-4.19,-4.55,-4.88,-5.2,-5.5,-5.77,-6.02,-6.24,-6.43,-6.6,-6.74,-6.85,-6.93,-6.98,-7,-6.98,-6.91,-6.8,-6.66,-6.48,-6.27,-6.04,-5.78,-5.5,-5.2,-4.88,-4.56,-4.22,-3.88,-3.54,-3.2,-2.87,-2.54,-2.21,-1.9,-1.61,-1.33,-1.07,-0.84,-0.63,-0.44,-0.29,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.38,-0.84,-1.46,-2.23,-3.13,-4.14,-5.26,-6.47,-7.76,-9.14,-10.56,-12.03,-13.51,-15,-16.49,-17.97,-19.44,-20.86,-22.24,-23.53,-24.74,-25.86,-26.87,-27.77,-28.54,-29.16,-29.62,-29.9,-30,-29.99,-29.95,-29.9,-29.82,-29.72,-29.59,-29.45,-29.28,-29.1,-28.89,-28.67,-28.43,-28.16,-27.88,-27.59,-27.27,-26.94,-26.59,-26.22,-25.83,-25.44,-25.03,-24.59,-24.15,-23.69,-23.21,-22.73,-22.22,-21.71,-21.18,-20.63,-20.09,-19.52,-18.93,-18.34,-17.74,-17.14,-16.51,-15.87,-15.23,-14.58,-13.91,-13.24,-12.56,-11.86,-11.16,-10.45,-9.74,-9.02,-8.27,-7.55,-6.79,-6.04,-5.28,-4.51,-3.74,-2.97,-2.18,-1.39,-0.6,0.2,1,1.82,2.63,3.41,4.17,4.9,5.62,6.31,6.98,7.64,8.29,8.91,9.51,10.09,10.65,11.19,11.72,12.23,12.72,13.19,13.65,14.1,14.52,14.93,15.32,15.69,16.06,16.4,16.73,17.05,17.35,17.64,17.91,18.17,18.42,18.65,18.87,19.08,19.27,19.46,19.63,19.79,19.94,20.08,20.2,20.32,20.43,20.52,20.61,20.69,20.76,20.82,20.87,20.91,20.94,20.97,20.99,21,21,20.94,20.76,20.47,20.08,19.6,19.04,18.4,17.69,16.93,16.11,15.25,14.36,13.45,12.51,11.56,10.62,9.69,8.76,7.85,6.97,6.13,5.33,4.57,3.87,3.23,2.66,2.17,1.75,1.41,1.16,1,0.88,0.77,0.67,0.58,0.5,0.43,0.36,0.3,0.25,0.2,0.16,0.13,0.1,0.07,0.05,0.03,0.02,0,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.99,8.95,8.89,8.81,8.7,8.57,8.42,8.25,8.07,7.86,7.64,7.39,7.13,6.86,6.58,6.28,5.96,5.63,5.29,4.94,4.58,4.21,3.83,3.45,3.06,2.65,2.25,1.83,1.42,1,0.58,0.16,-0.24,-0.64,-1.02,-1.39,-1.76,-2.11,-2.46,-2.8,-3.13,-3.45,-3.77,-4.07,-4.36,-4.65,-4.93,-5.19,-5.45,-5.7,-5.95,-6.19,-6.41,-6.63,-6.84,-7.05,-7.24,-7.43,-7.61,-7.79,-7.95,-8.11,-8.27,-8.41,-8.55,-8.68,-8.8,-8.92,-9.03,-9.13,-9.23,-9.32,-9.41,-9.49,-9.56,-9.63,-9.69,-9.75,-9.79,-9.84,-9.88,-9.91,-9.94,-9.96,-9.98,-9.99,-10,-10,-9.97,-9.87,-9.72,-9.51,-9.26,-8.96,-8.63,-8.25,-7.85,-7.42,-6.97,-6.51,-6.03,-5.55,-5.06,-4.58,-4.1,-3.62,-3.16,-2.72,-2.3,-1.9,-1.54,-1.2,-0.9,-0.63,-0.41,-0.24,-0.11,-0.03,0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-5.95,-5.81,-5.59,-5.29,-4.92,-4.49,-4,-3.48,-2.91,-2.32,-1.68,-1.05,-0.4,0.25,0.88,1.51,2.14,2.72,3.28,3.8,4.28,4.7,5.08,5.4,5.66,5.84,5.96,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,0,0.01,0.05,0.11,0.2,0.31,0.42,0.54,0.65,0.76,0.86,0.93,0.98,1,1,1,1,1,1,1,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,0.99,0.99,0.98,0.95,0.91,0.86,0.8,0.73,0.65,0.57,0.49,0.41,0.33,0.26,0.19,0.13,0.08,0.04,0.02,0.01,0.02,0.04,0.08,0.14,0.2,0.27,0.34,0.42,0.5,0.58,0.66,0.73,0.8,0.86,0.91,0.95,0.98,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,0.97,0.91,0.8,0.67,0.53,0.36,0.19,0.02,-0.15,-0.32,-0.48,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.48,-0.38,-0.28,-0.17,-0.06,0.06,0.17,0.28,0.38,0.48,0.58,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.03,0.08,0.16,0.27,0.38,0.5,0.63,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.98,0.95,0.91,0.86,0.8,0.73,0.66,0.58,0.5,0.41,0.34,0.26,0.19,0.13,0.08,0.04,0.02,0.01,0.02,0.04,0.08,0.14,0.2,0.27,0.34,0.42,0.5,0.58,0.66,0.73,0.8,0.86,0.91,0.95,0.98,1,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,0.97,0.91,0.8,0.67,0.53,0.36,0.19,0.02,-0.15,-0.32,-0.48,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.48,-0.38,-0.28,-0.17,-0.06,0.06,0.17,0.28,0.38,0.48,0.58,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.21,-0.25,-0.29,-0.32,-0.36,-0.4,-0.45,-0.49,-0.52,-0.56,-0.6,-0.64,-0.67,-0.7,-0.73,-0.75,-0.77,-0.79,-0.8,-0.81,-0.81,-0.79,-0.73,-0.64,-0.55,-0.47,-0.42,-0.38,-0.35,-0.31,-0.28,-0.25,-0.22,-0.18,-0.15,-0.12,-0.1,-0.07,-0.04,-0.01,0.01,0.04,0.06,0.08,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.24,0.26,0.28,0.29,0.31,0.32,0.34,0.35,0.36,0.38,0.39,0.4,0.41,0.42,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.41,0.39,0.36,0.33,0.29,0.25,0.21,0.16,0.12,0.07,0.02,-0.03,-0.08,-0.13,-0.17,-0.22,-0.27,-0.31,-0.35,-0.39,-0.42,-0.45,-0.48,-0.51,-0.52,-0.54,-0.55,-0.55,-0.54,-0.52,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.15,-0.11,-0.09,-0.07,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.08,0.08,0.09,0.1,0.11,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.08,-0.13,-0.42,-0.7,-0.91,-1,-1,-0.99,-0.99,-0.97,-0.96,-0.94,-0.92,-0.9,-0.88,-0.85,-0.82,-0.79,-0.76,-0.73,-0.69,-0.66,-0.62,-0.58,-0.54,-0.5,-0.46,-0.41,-0.37,-0.33,-0.28,-0.24,-0.19,-0.15,-0.1,-0.06,-0.02,0.03,0.07,0.11,0.16,0.2,0.24,0.27,0.31,0.35,0.38,0.42,0.45,0.48,0.51,0.53,0.56,0.58,0.6,0.62,0.63,0.65,0.66,0.66,0.67,0.67,0.67,0.66,0.66,0.65,0.64,0.63,0.62,0.6,0.59,0.57,0.55,0.54,0.52,0.5,0.48,0.47,0.45,0.43,0.42,0.4,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.39,0.39,0.4,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.44,0.41,0.35,0.28,0.2,0.12,0.03,-0.05,-0.12,-0.19,-0.25,-0.29,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.23,-0.23,-0.22,-0.22,-0.21,-0.21,-0.21,-0.2,-0.2,-0.19,-0.19,-0.18,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.15,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.1,-0.1,-0.09,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0,0,0,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.1,-0.12,-0.14,-0.15,-0.17,-0.19,-0.2,-0.22,-0.24,-0.25,-0.27,-0.28,-0.29,-0.3,-0.31,-0.32,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.3,-0.3,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.25,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0,0,0,-0.01,-0.02,-0.02,-0.03,-0.05,-0.06,-0.07,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.21,-0.23,-0.24,-0.26,-0.27,-0.28,-0.3,-0.31,-0.31,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.29,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.25,-0.24,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.1,0.12,0.13,0.15,0.16,0.17,0.19,0.2,0.21,0.23,0.24,0.25,0.26,0.27,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.26,0.26,0.25,0.24,0.23,0.22,0.21,0.2,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.08,0.07,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.11,0.12,0.14,0.16,0.18,0.19,0.21,0.23,0.24,0.26,0.27,0.29,0.3,0.31,0.32,0.33,0.34,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.33,0.33,0.32,0.31,0.3,0.29,0.28,0.27,0.26,0.25,0.23,0.22,0.21,0.2,0.19,0.17,0.16,0.15,0.14,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.36,-0.38,-0.39,-0.4,-0.41,-0.41,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.38,-0.37,-0.35,-0.33,-0.31,-0.29,-0.27,-0.25,-0.22,-0.2,-0.18,-0.15,-0.13,-0.1,-0.08,-0.06,-0.04,-0.01,0,0.02,0.04,0.05,0.07,0.08,0.09,0.09,0.1,0.1,0.1,0.1,0.1,0.1,0.09,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,0,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.1,-0.12,-0.14,-0.16,-0.18,-0.2,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.32,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.08,-0.06,-0.04,-0.02,0,0.02,0.03,0.05,0.06,0.07,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.97,0.96,0.93,0.9,0.87,0.84,0.8,0.75,0.71,0.66,0.61,0.55,0.5,0.44,0.39,0.33,0.27,0.21,0.15,0.09,0.03,-0.02,-0.08,-0.13,-0.19,-0.24,-0.28,-0.33,-0.38,-0.42,-0.46,-0.49,-0.52,-0.55,-0.58,-0.6,-0.62,-0.64,-0.66,-0.67,-0.69,-0.7,-0.71,-0.72,-0.72,-0.73,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.73,-0.73,-0.73,-0.73,-0.73,-0.72,-0.72,-0.72,-0.72,-0.71,-0.71,-0.7,-0.7,-0.7,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.66,-0.66,-0.65,-0.64,-0.64,-0.63,-0.62,-0.61,-0.61,-0.6,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.52,-0.51,-0.5,-0.48,-0.46,-0.43,-0.4,-0.36,-0.32,-0.27,-0.23,-0.17,-0.12,-0.06,-0.01,0.05,0.11,0.17,0.23,0.29,0.35,0.41,0.46,0.52,0.57,0.62,0.66,0.71,0.74,0.78,0.81,0.84,0.86,0.87,0.88,0.89,0.89,0.9,0.9,0.91,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.95,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.9,0.9,0.9,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.8,0.8,0.8,0.79,0.79,0.79,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.71,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\r\r\nPARAM_BODY_X=0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.11,-0.12,-0.14,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.2,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.02,0.03,0.05,0.06,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.07,-0.27,-0.59,-1.02,-1.56,-2.19,-2.9,-3.68,-4.53,-5.44,-6.4,-7.39,-8.42,-9.46,-10.5,-11.54,-12.58,-13.61,-14.6,-15.56,-16.47,-17.32,-18.1,-18.81,-19.44,-19.98,-20.41,-20.73,-20.93,-21,-20.97,-20.89,-20.76,-20.57,-20.34,-20.06,-19.73,-19.37,-18.96,-18.51,-18.04,-17.52,-16.97,-16.4,-15.8,-15.16,-14.5,-13.83,-13.12,-12.4,-11.66,-10.91,-10.14,-9.36,-8.57,-7.77,-6.96,-6.15,-5.33,-4.51,-3.69,-2.88,-2.06,-1.25,-0.44,0.35,1.13,1.91,2.68,3.43,4.16,4.88,5.57,6.24,6.9,7.53,8.13,8.7,9.25,9.77,10.25,10.7,11.12,11.5,11.83,12.13,12.39,12.61,12.78,12.9,12.97,13,12.99,12.98,12.95,12.91,12.87,12.81,12.74,12.67,12.58,12.49,12.38,12.27,12.15,12.02,11.88,11.73,11.57,11.4,11.23,11.04,10.85,10.65,10.44,10.22,10,9.76,9.51,9.26,9,8.7,8.39,8.07,7.74,7.41,7.08,6.74,6.4,6.06,5.72,5.39,5.06,4.73,4.41,4.1,3.79,3.5,3.21,2.93,2.67,2.42,2.18,1.96,1.75,1.56,1.39,1.24,1.11,1,0.9,0.8,0.72,0.63,0.56,0.49,0.43,0.37,0.32,0.27,0.23,0.19,0.16,0.13,0.11,0.09,0.07,0.05,0.04,0.03,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.33,-0.57,-0.88,-1.24,-1.65,-2.1,-2.6,-3.14,-3.71,-4.31,-4.94,-5.58,-6.24,-6.91,-7.58,-8.27,-8.94,-9.62,-10.28,-10.92,-11.55,-12.15,-12.72,-13.26,-13.76,-14.23,-14.64,-15,-15.34,-15.67,-15.99,-16.31,-16.61,-16.91,-17.19,-17.46,-17.73,-17.99,-18.23,-18.47,-18.71,-18.93,-19.14,-19.35,-19.55,-19.74,-19.93,-20.11,-20.28,-20.45,-20.61,-20.76,-20.9,-21.04,-21.17,-21.3,-21.42,-21.54,-21.65,-21.75,-21.85,-21.94,-22.03,-22.12,-22.19,-22.27,-22.34,-22.41,-22.47,-22.53,-22.58,-22.63,-22.67,-22.72,-22.76,-22.79,-22.82,-22.85,-22.88,-22.9,-22.92,-22.94,-22.95,-22.97,-22.98,-22.99,-22.99,-23,-23,-23,-23,-22.98,-22.96,-22.92,-22.88,-22.81,-22.73,-22.63,-22.51,-22.37,-22.21,-22.03,-21.82,-21.58,-21.32,-21.02,-20.7,-20.35,-19.96,-19.54,-19.09,-18.59,-18.06,-17.5,-16.88,-16.23,-15.53,-14.79,-14,-13.08,-12.16,-11.21,-10.25,-9.29,-8.33,-7.37,-6.42,-5.47,-4.55,-3.64,-2.76,-1.89,-1.06,-0.25,0.52,1.25,1.95,2.6,3.2,3.75,4.25,4.7,5.08,5.4,5.66,5.85,5.96,6,6,6,6,6,6,5.99,5.97,5.95,5.92,5.88,5.83,5.77,5.69,5.6,5.49,5.37,5.24,5.08,4.9,4.71,4.49,4.25,3.99,3.7,3.39,3.06,2.7,2.32,1.91,1.46,1,0.42,-0.22,-0.92,-1.67,-2.46,-3.28,-4.15,-5.04,-5.93,-6.86,-7.78,-8.7,-9.63,-10.56,-11.48,-12.38,-13.26,-14.11,-14.93,-15.72,-16.48,-17.2,-17.85,-18.47,-19.03,-19.52,-19.96,-20.32,-20.61,-20.82,-20.96,-21,-20.98,-20.92,-20.81,-20.67,-20.49,-20.28,-20.03,-19.76,-19.45,-19.11,-18.74,-18.35,-17.94,-17.51,-17.05,-16.57,-16.08,-15.58,-15.05,-14.52,-13.98,-13.42,-12.86,-12.29,-11.72,-11.15,-10.58,-9.99,-9.43,-8.85,-8.28,-7.73,-7.18,-6.64,-6.12,-5.6,-5.1,-4.61,-4.14,-3.68,-3.25,-2.84,-2.45,-2.08,-1.74,-1.43,-1.14,-0.88,-0.66,-0.46,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.98,8.91,8.79,8.63,8.44,8.22,7.96,7.68,7.37,7.04,6.69,6.33,5.95,5.57,5.19,4.8,4.42,4.03,3.66,3.3,2.95,2.62,2.31,2.03,1.77,1.54,1.35,1.19,1.07,1,0.95,0.9,0.85,0.81,0.76,0.72,0.68,0.64,0.61,0.57,0.53,0.5,0.47,0.44,0.41,0.38,0.36,0.33,0.31,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.12,0.1,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.06,-0.1,-0.14,-0.2,-0.27,-0.34,-0.41,-0.49,-0.58,-0.67,-0.76,-0.85,-0.94,-1.04,-1.13,-1.22,-1.31,-1.39,-1.48,-1.56,-1.63,-1.7,-1.77,-1.83,-1.88,-1.92,-1.95,-1.98,-1.99,-2,-1.97,-1.87,-1.72,-1.53,-1.28,-0.99,-0.67,-0.32,0.06,0.45,0.88,1.3,1.73,2.16,2.59,3.01,3.42,3.81,4.18,4.53,4.85,5.14,5.39,5.6,5.77,5.9,5.97,6,5.98,5.91,5.79,5.64,5.46,5.24,5,4.73,4.45,4.14,3.83,3.5,3.17,2.83,2.5,2.17,1.86,1.55,1.27,1,0.76,0.54,0.36,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.81,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.38,1.33,1.28,1.24,1.2,1.16,1.13,1.1,1.07,1.05,1.04,1.03,1.02,1.02,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.92,0.79,0.61,0.43,0.27,0.13,0.04,0.01,0.04,0.12,0.24,0.39,0.56,0.73,0.91,1.07,1.21,1.33,1.42,1.48,1.5,1.5,1.5,1.5,1.5,1.5,1.49,1.49,1.49,1.49,1.48,1.48,1.47,1.47,1.46,1.46,1.45,1.44,1.43,1.43,1.42,1.41,1.4,1.38,1.37,1.36,1.34,1.33,1.31,1.3,1.28,1.26,1.24,1.22,1.2,1.18,1.16,1.14,1.11,1.08,1.06,1.03,1,0.95,0.88,0.79,0.69,0.58,0.47,0.36,0.26,0.18,0.11,0.05,0.02,0.01,0.03,0.08,0.15,0.24,0.34,0.44,0.54,0.65,0.74,0.83,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.99,1.97,1.94,1.91,1.88,1.84,1.8,1.76,1.71,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.32,1.27,1.23,1.19,1.15,1.12,1.09,1.06,1.04,1.02,1.01,1.01,1.01,1.01,1.01,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.79,0.61,0.43,0.27,0.13,0.04,0.01,0.04,0.12,0.24,0.39,0.56,0.73,0.91,1.07,1.21,1.33,1.42,1.48,1.5,1.5,1.5,1.5,1.5,1.5,1.49,1.49,1.49,1.49,1.48,1.48,1.47,1.47,1.46,1.46,1.45,1.44,1.43,1.43,1.42,1.41,1.4,1.38,1.37,1.36,1.34,1.33,1.31,1.3,1.28,1.26,1.24,1.22,1.2,1.18,1.16,1.14,1.11,1.08,1.06,1.03,1,0.95,0.88,0.79,0.69,0.58,0.47,0.36,0.26,0.18,0.11,0.05,0.02,0.01,0.03,0.08,0.15,0.24,0.34,0.44,0.54,0.65,0.74,0.83,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.22,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.18,-0.16,-0.14,-0.12,-0.09,-0.07,-0.05,-0.03,0,0.02,0.04,0.06,0.09,0.11,0.13,0.15,0.17,0.2,0.22,0.24,0.26,0.28,0.3,0.32,0.33,0.35,0.37,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.5,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.52,0.51,0.5,0.48,0.47,0.45,0.43,0.41,0.39,0.37,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.08,0.07,0.05,0.03,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.19,0.19,0.2,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.2,0.2,0.19,0.19,0.18,0.17,0.17,0.16,0.15,0.15,0.14,0.13,0.13,0.12,0.11,0.11,0.1,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.15,0.16,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.21,0.12,-0.1,-0.4,-0.69,-0.91,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.53,0.52,0.51,0.49,0.47,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.06,0.04,0.03,0.02,0.01,0,0,0,0.01,0.02,0.03,0.05,0.07,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.29,0.32,0.35,0.37,0.4,0.42,0.44,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.54,0.53,0.5,0.45,0.4,0.34,0.27,0.21,0.14,0.08,0.03,-0.01,-0.05,-0.07,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,0,0.01,0.02,0.04,0.05,0.07,0.09,0.1,0.12,0.14,0.15,0.17,0.19,0.21,0.23,0.24,0.26,0.28,0.3,0.31,0.33,0.34,0.36,0.38,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.48,0.48,0.47,0.46,0.45,0.45,0.44,0.43,0.42,0.41,0.39,0.38,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.27,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.15,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0,0,-0.01,-0.01,-0.02,-0.03,-0.05,-0.06,-0.08,-0.1,-0.12,-0.14,-0.16,-0.18,-0.2,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.4,-0.42,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.4,-0.4,-0.4,-0.4,-0.4,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.07,-0.08,-0.08,-0.09,-0.1,-0.1,-0.11,-0.11,-0.12,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.1,-0.1,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0,0,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.1,-0.12,-0.15,-0.17,-0.2,-0.23,-0.26,-0.29,-0.31,-0.34,-0.37,-0.4,-0.42,-0.45,-0.47,-0.49,-0.51,-0.53,-0.54,-0.55,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.46,-0.45,-0.45,-0.45,-0.45,-0.44,-0.44,-0.44,-0.44,-0.43,-0.43,-0.43,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.41,-0.4,-0.4,-0.4,-0.4,-0.4,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.37,-0.37,-0.37,-0.37,-0.37,-0.38,-0.38,-0.38,-0.38,-0.39,-0.39,-0.39,-0.39,-0.4,-0.4,-0.4,-0.4,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.45,-0.45,-0.44,-0.44,-0.43,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.29,-0.28,-0.27,-0.26,-0.24,-0.23,-0.22,-0.21,-0.19,-0.18,-0.17,-0.16,-0.15,-0.13,-0.12,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.48,-0.5,-0.52,-0.54,-0.55,-0.56,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.46,-0.45,-0.45,-0.44,-0.44,-0.43,-0.42,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.3,-0.29,-0.28,-0.26,-0.25,-0.24,-0.22,-0.21,-0.2,-0.19,-0.17,-0.16,-0.15,-0.14,-0.13,-0.11,-0.1,-0.09,-0.08,-0.07,-0.06,-0.05,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=0.6,0.6,0.6,0.6,0.61,0.61,0.61,0.61,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.9,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,0.99,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.72,0.7,0.69,0.67,0.66,0.64,0.63,0.62,0.61,0.61,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\r\r\nPARAM_BODY_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.2,-0.24,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.72,-0.74,-0.76,-0.77,-0.78,-0.78,-0.78,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.7,-0.68,-0.66,-0.64,-0.62,-0.6,-0.57,-0.55,-0.52,-0.49,-0.46,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.23,-0.19,-0.16,-0.12,-0.08,-0.04,0,0.04,0.08,0.12,0.15,0.18,0.22,0.25,0.27,0.3,0.32,0.35,0.37,0.39,0.41,0.43,0.44,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.5,0.5,0.49,0.48,0.47,0.46,0.45,0.44,0.42,0.41,0.4,0.39,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.11,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.2,-0.21,-0.21,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idl_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.07,-0.27,-0.59,-1.02,-1.56,-2.19,-2.9,-3.68,-4.53,-5.44,-6.4,-7.39,-8.42,-9.46,-10.5,-11.54,-12.58,-13.61,-14.6,-15.56,-16.47,-17.32,-18.1,-18.81,-19.44,-19.98,-20.41,-20.73,-20.93,-21,-20.97,-20.89,-20.76,-20.57,-20.34,-20.06,-19.73,-19.37,-18.96,-18.51,-18.04,-17.52,-16.97,-16.4,-15.8,-15.16,-14.5,-13.83,-13.12,-12.4,-11.66,-10.91,-10.14,-9.36,-8.57,-7.77,-6.96,-6.15,-5.33,-4.51,-3.69,-2.88,-2.06,-1.25,-0.44,0.35,1.13,1.91,2.68,3.43,4.16,4.88,5.57,6.24,6.9,7.53,8.13,8.7,9.25,9.77,10.25,10.7,11.12,11.5,11.83,12.13,12.39,12.61,12.78,12.9,12.97,13,13,13,12.99,12.98,12.96,12.93,12.9,12.86,12.82,12.76,12.69,12.62,12.53,12.43,12.32,12.19,12.05,11.89,11.72,11.53,11.33,11.11,10.87,10.61,10.33,10.03,9.71,9.36,9,8.57,8.13,7.68,7.22,6.75,6.28,5.81,5.33,4.86,4.4,3.95,3.5,3.06,2.64,2.23,1.83,1.46,1.1,0.76,0.45,0.17,-0.09,-0.32,-0.52,-0.69,-0.82,-0.92,-0.98,-1,-1,-0.99,-0.99,-0.97,-0.96,-0.94,-0.93,-0.91,-0.88,-0.86,-0.83,-0.8,-0.77,-0.74,-0.71,-0.68,-0.64,-0.61,-0.57,-0.54,-0.5,-0.46,-0.43,-0.39,-0.36,-0.32,-0.29,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.07,-0.06,-0.04,-0.03,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.33,-0.57,-0.88,-1.24,-1.65,-2.1,-2.6,-3.14,-3.71,-4.31,-4.94,-5.58,-6.24,-6.91,-7.58,-8.27,-8.94,-9.62,-10.28,-10.92,-11.55,-12.15,-12.72,-13.26,-13.76,-14.23,-14.64,-15,-15.34,-15.67,-15.99,-16.31,-16.61,-16.91,-17.19,-17.46,-17.73,-17.99,-18.23,-18.47,-18.71,-18.93,-19.14,-19.35,-19.55,-19.74,-19.93,-20.11,-20.28,-20.45,-20.61,-20.76,-20.9,-21.04,-21.17,-21.3,-21.42,-21.54,-21.65,-21.75,-21.85,-21.94,-22.03,-22.12,-22.19,-22.27,-22.34,-22.41,-22.47,-22.53,-22.58,-22.63,-22.67,-22.72,-22.76,-22.79,-22.82,-22.85,-22.88,-22.9,-22.92,-22.94,-22.95,-22.97,-22.98,-22.99,-22.99,-23,-23,-23,-22.96,-22.86,-22.7,-22.48,-22.22,-21.91,-21.56,-21.19,-20.79,-20.37,-19.93,-19.48,-19.02,-18.56,-18.1,-17.64,-17.2,-16.76,-16.35,-15.95,-15.59,-15.25,-14.94,-14.67,-14.44,-14.25,-14.11,-14.03,-14,-14.06,-14.24,-14.54,-14.92,-15.39,-15.94,-16.55,-17.22,-17.93,-18.68,-19.46,-20.25,-21.08,-21.89,-22.71,-23.53,-24.31,-25.09,-25.83,-26.53,-27.18,-27.78,-28.33,-28.81,-29.22,-29.55,-29.8,-29.95,-30,-30,-29.99,-29.97,-29.94,-29.91,-29.87,-29.82,-29.76,-29.7,-29.62,-29.54,-29.44,-29.34,-29.22,-29.1,-28.97,-28.82,-28.66,-28.5,-28.32,-28.13,-27.92,-27.71,-27.49,-27.24,-26.99,-26.72,-26.45,-26.16,-25.85,-25.53,-25.2,-24.84,-24.48,-24.1,-23.71,-23.3,-22.87,-22.42,-21.97,-21.49,-21,-20.49,-20,-19.5,-19.01,-18.52,-18.04,-17.57,-17.1,-16.63,-16.17,-15.71,-15.27,-14.82,-14.39,-13.95,-13.52,-13.1,-12.69,-12.27,-11.87,-11.47,-11.08,-10.69,-10.31,-9.94,-9.56,-9.2,-8.85,-8.49,-8.15,-7.82,-7.49,-7.16,-6.84,-6.53,-6.23,-5.93,-5.64,-5.35,-5.08,-4.81,-4.54,-4.28,-4.03,-3.79,-3.56,-3.33,-3.11,-2.89,-2.69,-2.49,-2.3,-2.11,-1.93,-1.76,-1.6,-1.45,-1.3,-1.16,-1.03,-0.91,-0.79,-0.68,-0.58,-0.49,-0.41,-0.33,-0.26,-0.2,-0.15,-0.1,-0.07,-0.04,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.01,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-3.96,-3.84,-3.64,-3.38,-3.07,-2.69,-2.27,-1.81,-1.32,-0.79,-0.24,0.33,0.91,1.51,2.12,2.73,3.33,3.92,4.5,5.06,5.61,6.13,6.62,7.07,7.49,7.86,8.2,8.47,8.7,8.86,8.96,9,8.97,8.9,8.78,8.62,8.42,8.19,7.93,7.64,7.32,6.99,6.63,6.26,5.87,5.49,5.1,4.7,4.32,3.93,3.55,3.18,2.84,2.51,2.21,1.93,1.68,1.47,1.29,1.15,1.05,1,0.97,0.95,0.93,0.9,0.88,0.86,0.84,0.82,0.8,0.78,0.76,0.74,0.73,0.71,0.69,0.68,0.66,0.65,0.63,0.62,0.61,0.59,0.58,0.56,0.55,0.54,0.53,0.51,0.5,0.49,0.47,0.46,0.45,0.43,0.42,0.41,0.39,0.38,0.36,0.35,0.33,0.32,0.3,0.29,0.27,0.25,0.24,0.22,0.2,0.18,0.16,0.14,0.12,0.1,0.07,0.05,0.02,0,-0.03,-0.06,-0.1,-0.14,-0.18,-0.23,-0.28,-0.33,-0.38,-0.44,-0.5,-0.56,-0.62,-0.68,-0.75,-0.81,-0.88,-0.94,-1.01,-1.07,-1.14,-1.2,-1.27,-1.33,-1.39,-1.45,-1.51,-1.56,-1.62,-1.67,-1.72,-1.76,-1.8,-1.84,-1.88,-1.91,-1.94,-1.96,-1.98,-1.99,-2,-2,-1.98,-1.92,-1.82,-1.68,-1.52,-1.32,-1.1,-0.86,-0.6,-0.31,-0.02,0.29,0.61,0.94,1.28,1.61,1.96,2.3,2.64,2.96,3.29,3.61,3.91,4.21,4.49,4.75,4.99,5.21,5.41,5.58,5.72,5.84,5.93,5.98,6,5.99,5.95,5.9,5.83,5.73,5.62,5.5,5.36,5.21,5.05,4.87,4.69,4.5,4.3,4.1,3.89,3.68,3.46,3.25,3.03,2.81,2.59,2.38,2.17,1.96,1.76,1.56,1.37,1.19,1.02,0.86,0.71,0.57,0.45,0.33,0.24,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.88,0.7,0.47,0.24,0.06,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,0,0,0,0,0,0.01,0.01,0.02,0.04,0.07,0.12,0.17,0.23,0.3,0.37,0.45,0.54,0.63,0.72,0.82,0.92,1.02,1.12,1.21,1.31,1.4,1.49,1.58,1.66,1.73,1.8,1.85,1.9,1.95,1.98,1.99,2,2,1.99,1.97,1.95,1.92,1.89,1.85,1.81,1.77,1.72,1.68,1.63,1.58,1.53,1.48,1.43,1.39,1.34,1.29,1.25,1.21,1.17,1.14,1.11,1.08,1.06,1.04,1.03,1.02,1.02,1.01,1.01,1.01,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1.01,1.02,1.03,1.04,1.05,1.06,1.08,1.09,1.11,1.12,1.14,1.16,1.17,1.19,1.21,1.23,1.25,1.26,1.28,1.3,1.32,1.33,1.35,1.37,1.38,1.4,1.41,1.43,1.44,1.45,1.46,1.47,1.48,1.49,1.49,1.5,1.5,1.5,1.5,1.48,1.47,1.44,1.41,1.37,1.33,1.29,1.24,1.19,1.13,1.07,1.01,0.95,0.89,0.83,0.76,0.7,0.64,0.58,0.51,0.46,0.4,0.34,0.29,0.24,0.2,0.16,0.12,0.09,0.06,0.04,0.02,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.8,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.92,0.74,0.5,0.26,0.08,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.07,0.11,0.16,0.22,0.28,0.36,0.44,0.53,0.62,0.71,0.81,0.91,1.01,1.1,1.2,1.3,1.39,1.48,1.57,1.65,1.73,1.79,1.85,1.9,1.94,1.97,1.99,2,2,1.99,1.97,1.94,1.92,1.88,1.85,1.81,1.76,1.72,1.67,1.62,1.57,1.52,1.47,1.42,1.37,1.33,1.28,1.24,1.2,1.16,1.12,1.09,1.07,1.04,1.03,1.02,1.01,1.01,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,1,1,1.01,1.02,1.03,1.04,1.05,1.06,1.08,1.09,1.11,1.12,1.14,1.16,1.17,1.19,1.21,1.23,1.25,1.26,1.28,1.3,1.32,1.33,1.35,1.37,1.38,1.4,1.41,1.43,1.44,1.45,1.46,1.47,1.48,1.49,1.49,1.5,1.5,1.5,1.5,1.48,1.47,1.44,1.41,1.37,1.33,1.29,1.24,1.19,1.13,1.07,1.01,0.95,0.89,0.83,0.76,0.7,0.64,0.58,0.51,0.46,0.4,0.34,0.29,0.24,0.2,0.16,0.12,0.09,0.06,0.04,0.02,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.8,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.1,-0.12,-0.13,-0.15,-0.16,-0.18,-0.2,-0.22,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.4,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.29,-0.27,-0.26,-0.24,-0.22,-0.2,-0.18,-0.16,-0.14,-0.12,-0.09,-0.07,-0.05,-0.03,0,0.02,0.04,0.06,0.09,0.11,0.13,0.15,0.17,0.2,0.22,0.24,0.26,0.28,0.3,0.32,0.33,0.35,0.37,0.39,0.4,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.5,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.52,0.52,0.51,0.5,0.48,0.47,0.45,0.43,0.41,0.39,0.37,0.35,0.33,0.3,0.28,0.26,0.23,0.21,0.19,0.16,0.14,0.12,0.1,0.08,0.07,0.05,0.03,0.02,0.01,0,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.01,0,0,0.01,0.02,0.04,0.05,0.06,0.08,0.09,0.11,0.12,0.13,0.15,0.16,0.18,0.19,0.2,0.21,0.22,0.23,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.21,0.2,0.2,0.19,0.19,0.19,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.15,0.16,0.16,0.17,0.18,0.19,0.19,0.2,0.2,0.21,0.21,0.21,0.12,-0.1,-0.4,-0.69,-0.91,-1,-1,-0.99,-0.99,-0.98,-0.96,-0.95,-0.93,-0.91,-0.89,-0.86,-0.84,-0.81,-0.78,-0.75,-0.72,-0.68,-0.65,-0.61,-0.57,-0.54,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.21,-0.17,-0.13,-0.09,-0.05,-0.01,0.03,0.07,0.1,0.14,0.18,0.21,0.24,0.28,0.31,0.34,0.36,0.39,0.41,0.44,0.46,0.48,0.49,0.51,0.52,0.53,0.53,0.54,0.54,0.54,0.53,0.52,0.51,0.49,0.47,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.06,0.04,0.03,0.02,0.01,0,0,0,0.01,0.02,0.03,0.05,0.07,0.09,0.11,0.13,0.16,0.18,0.21,0.24,0.27,0.29,0.32,0.35,0.37,0.4,0.42,0.44,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.54,0.53,0.5,0.45,0.4,0.34,0.27,0.21,0.14,0.08,0.03,-0.01,-0.05,-0.07,-0.08,-0.08,-0.07,-0.06,-0.05,-0.03,-0.01,0.02,0.04,0.07,0.1,0.13,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.37,0.39,0.42,0.44,0.46,0.47,0.48,0.49,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.49,0.49,0.48,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.43,0.42,0.41,0.4,0.4,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.32,0.31,0.3,0.29,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.21,0.2,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.1,0.09,0.08,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.02,0.03,0.03,0.04,0.05,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.23,0.25,0.26,0.27,0.28,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.38,0.39,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.52,0.53,0.54,0.55,0.56,0.57,0.57,0.58,0.59,0.6,0.61,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.67,0.68,0.68,0.69,0.69,0.7,0.7,0.7,0.7,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.6,0.6,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.41,0.4,0.39,0.39,0.38,0.38,0.37,0.36,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.32,0.31,0.3,0.3,0.29,0.29,0.28,0.27,0.27,0.26,0.26,0.25,0.25,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.2,0.2,0.19,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.22,0.24,0.25,0.26,0.27,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.39,0.4,0.41,0.43,0.44,0.45,0.46,0.48,0.49,0.5,0.51,0.53,0.54,0.55,0.56,0.57,0.58,0.6,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.7,0.7,0.71,0.72,0.73,0.73,0.74,0.75,0.75,0.76,0.76,0.77,0.77,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.7,0.7,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.6,0.6,0.59,0.59,0.58,0.57,0.57,0.56,0.56,0.55,0.54,0.54,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.47,0.47,0.46,0.45,0.45,0.44,0.43,0.43,0.42,0.41,0.41,0.4,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.33,0.33,0.32,0.31,0.31,0.3,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.22,0.21,0.2,0.2,0.19,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.1,0.1,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.36,-0.36,-0.36,-0.36,-0.36,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.2,-0.2,-0.2,-0.2,-0.2,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_BROW_R_X=-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.32,-0.32,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.3,-0.3,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.27,-0.27,-0.27,-0.26,-0.26,-0.26,-0.26,-0.26,-0.25,-0.25,-0.25,-0.25,-0.25,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35\r\r\nPARAM_BROW_L_ANGLE=0.3,0.3,0.3,0.3,0.3,0.31,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.35,0.35,0.36,0.36,0.37,0.38,0.39,0.4,0.4,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.58,0.59,0.6,0.61,0.62,0.63,0.64,0.65,0.67,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.88,0.89,0.9,0.91,0.92,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.91,0.91,0.91,0.9,0.9,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.81,0.81,0.8,0.8,0.79,0.79,0.78,0.78,0.77,0.77,0.76,0.75,0.75,0.74,0.74,0.73,0.72,0.72,0.71,0.71,0.7,0.7,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.61,0.6,0.59,0.59,0.58,0.58,0.57,0.57,0.56,0.55,0.55,0.54,0.54,0.53,0.53,0.52,0.51,0.51,0.5,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.41,0.4,0.4,0.4,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.3,0.3,0.3,0.31,0.31,0.32,0.33,0.33,0.34,0.35,0.35,0.36,0.37,0.38,0.39,0.4,0.4,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.6,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.7,0.71,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.91,0.91,0.92,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.9,0.9,0.9,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.81,0.81,0.8,0.8,0.79,0.79,0.78,0.78,0.77,0.76,0.76,0.75,0.75,0.74,0.73,0.73,0.72,0.72,0.71,0.7,0.7,0.69,0.69,0.68,0.67,0.67,0.66,0.66,0.65,0.64,0.64,0.63,0.63,0.62,0.61,0.61,0.6,0.59,0.59,0.58,0.58,0.57,0.56,0.56,0.55,0.55,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.5,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.42,0.41,0.41,0.4,0.4,0.39,0.39,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.3,0.3,0.3,0.3,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28\r\r\nPARAM_BROW_L_FORM=0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.6,0.59,0.58,0.58,0.56,0.55,0.54,0.52,0.51,0.49,0.47,0.45,0.42,0.4,0.37,0.34,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.09,0.05,0.02,-0.01,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.25,-0.28,-0.31,-0.34,-0.37,-0.4,-0.42,-0.45,-0.48,-0.5,-0.53,-0.55,-0.58,-0.6,-0.63,-0.65,-0.67,-0.69,-0.71,-0.74,-0.76,-0.77,-0.79,-0.81,-0.83,-0.85,-0.86,-0.88,-0.89,-0.9,-0.92,-0.93,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.93,-0.93,-0.92,-0.92,-0.91,-0.9,-0.89,-0.89,-0.88,-0.87,-0.86,-0.86,-0.85,-0.84,-0.83,-0.82,-0.81,-0.8,-0.79,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.7,-0.69,-0.68,-0.66,-0.65,-0.64,-0.63,-0.62,-0.61,-0.59,-0.58,-0.57,-0.56,-0.54,-0.53,-0.52,-0.51,-0.49,-0.48,-0.47,-0.45,-0.44,-0.43,-0.41,-0.4,-0.39,-0.37,-0.36,-0.35,-0.33,-0.32,-0.3,-0.29,-0.28,-0.26,-0.25,-0.24,-0.22,-0.21,-0.19,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.1,-0.08,-0.07,-0.06,-0.04,-0.03,-0.01,0,0.01,0.03,0.04,0.05,0.07,0.08,0.09,0.11,0.12,0.13,0.14,0.16,0.17,0.18,0.19,0.21,0.22,0.23,0.24,0.26,0.27,0.28,0.29,0.3,0.31,0.32,0.34,0.35,0.36,0.37,0.38,0.39,0.4,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.49,0.5,0.51,0.51,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.6,0.6,0.6,0.61,0.61,0.61,0.62,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_BROW_R_FORM=0.77,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.74,0.73,0.73,0.71,0.7,0.69,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.55,0.52,0.5,0.47,0.44,0.41,0.38,0.34,0.31,0.27,0.23,0.19,0.15,0.12,0.08,0.04,0.01,-0.03,-0.06,-0.1,-0.13,-0.16,-0.19,-0.22,-0.26,-0.29,-0.32,-0.34,-0.37,-0.4,-0.43,-0.46,-0.48,-0.51,-0.53,-0.56,-0.58,-0.6,-0.63,-0.65,-0.67,-0.69,-0.71,-0.73,-0.75,-0.76,-0.78,-0.8,-0.82,-0.83,-0.85,-0.86,-0.87,-0.89,-0.9,-0.91,-0.92,-0.93,-0.94,-0.95,-0.96,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.92,-0.92,-0.91,-0.9,-0.89,-0.89,-0.88,-0.87,-0.86,-0.85,-0.84,-0.83,-0.82,-0.82,-0.81,-0.8,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.7,-0.68,-0.67,-0.66,-0.65,-0.64,-0.62,-0.61,-0.6,-0.58,-0.57,-0.56,-0.55,-0.53,-0.52,-0.5,-0.49,-0.48,-0.46,-0.45,-0.43,-0.42,-0.41,-0.39,-0.38,-0.36,-0.35,-0.33,-0.32,-0.3,-0.29,-0.27,-0.26,-0.24,-0.23,-0.21,-0.2,-0.18,-0.17,-0.15,-0.14,-0.12,-0.11,-0.09,-0.08,-0.06,-0.05,-0.03,-0.02,0,0.01,0.03,0.04,0.06,0.07,0.08,0.1,0.11,0.13,0.14,0.16,0.17,0.19,0.2,0.21,0.23,0.24,0.26,0.27,0.28,0.3,0.31,0.32,0.34,0.35,0.36,0.38,0.39,0.4,0.41,0.43,0.44,0.45,0.46,0.47,0.48,0.5,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.58,0.59,0.6,0.61,0.62,0.63,0.63,0.64,0.65,0.66,0.67,0.67,0.68,0.69,0.69,0.7,0.71,0.71,0.72,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_TERE=1\r\r\nPARAM_BODY_X=0,0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.2,-0.24,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.72,-0.74,-0.76,-0.77,-0.78,-0.78,-0.78,-0.78,-0.77,-0.76,-0.75,-0.74,-0.73,-0.72,-0.7,-0.68,-0.66,-0.64,-0.62,-0.6,-0.57,-0.55,-0.52,-0.49,-0.46,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.23,-0.19,-0.16,-0.12,-0.08,-0.04,0,0.04,0.08,0.12,0.15,0.18,0.22,0.25,0.27,0.3,0.32,0.35,0.37,0.39,0.41,0.43,0.44,0.46,0.47,0.48,0.49,0.5,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.52,0.52,0.51,0.5,0.5,0.49,0.48,0.47,0.46,0.45,0.44,0.42,0.41,0.4,0.39,0.37,0.36,0.35,0.33,0.32,0.31,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.2,0.18,0.17,0.16,0.14,0.13,0.12,0.11,0.1,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ARM_L=0,0,0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.09,-0.11,-0.12,-0.14,-0.16,-0.17,-0.19,-0.2,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.29,-0.29,-0.3,-0.31,-0.31,-0.31,-0.31,-0.31,-0.3,-0.3,-0.29,-0.28,-0.27,-0.26,-0.25,-0.23,-0.22,-0.21,-0.19,-0.18,-0.16,-0.15,-0.14,-0.12,-0.11,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.05,0.05,0.06,0.07,0.07,0.08,0.09,0.1,0.11,0.12,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.2,0.21,0.21,0.22,0.23,0.24,0.25,0.26,0.26,0.27,0.28,0.29,0.29,0.3,0.31,0.31,0.32,0.32,0.33,0.33,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.33,0.32,0.31,0.3,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.1,0.09,0.08,0.07,0.05,0.04,0.03,0.03,0.02,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_02=0,0,-0.01,-0.03,-0.05,-0.07,-0.1,-0.14,-0.18,-0.22,-0.26,-0.3,-0.35,-0.4,-0.45,-0.5,-0.55,-0.6,-0.65,-0.7,-0.74,-0.78,-0.82,-0.86,-0.9,-0.93,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.3,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L=0,0,0.01,0.03,0.05,0.07,0.1,0.14,0.18,0.22,0.26,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.74,0.78,0.82,0.86,0.9,0.93,0.95,0.97,0.99,1,1,1,0.99,0.97,0.95,0.93,0.9,0.87,0.83,0.79,0.75,0.71,0.67,0.62,0.58,0.53,0.48,0.44,0.39,0.35,0.3,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.1,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.41,-0.43,-0.46,-0.48,-0.51,-0.54,-0.56,-0.59,-0.61,-0.64,-0.66,-0.69,-0.71,-0.73,-0.76,-0.78,-0.8,-0.82,-0.84,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.96,-0.94,-0.92,-0.89,-0.86,-0.82,-0.79,-0.75,-0.71,-0.67,-0.63,-0.59,-0.55,-0.51,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.07,-0.05,-0.03,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_KAMIYURE_FRONT=0\r\r\nPARAM_KAMIYURE_SIDE_L=0\r\r\nPARAM_KAMIYURE_SIDE_R=0\r\r\nPARAM_KAMIYURE_TWIN_L=0\r\r\nPARAM_KAMIYURE_TWIN_R=0\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.22,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.89,1.32,1.81,2.35,2.92,3.50,4.08,4.65,5.19,5.68,6.11,6.48,6.76,6.94,7,6.85,6.40,5.69,4.75,3.59,2.27,0.80,-0.79,-2.48,-4.22,-6.03,-7.83,-9.63,-11.35,-13,-14.54,-15.93,-17.19,-18.31,-19.30,-20.19,-20.96,-21.64,-22.21,-22.70,-23.10,-23.43,-23.69,-23.89,-24.03,-24.12,-24.17,-24.19,-24.19,-24.19,-24.18,-24.18,-24.18,-24.17,-24.17,-24.16,-24.16,-24.15,-24.14,-24.14,-24.13,-24.12,-24.11,-24.10,-24.09,-24.08,-24.06,-24.05,-24.04,-24.03,-24.01,-24.00,-23.98,-23.97,-23.95,-23.93,-23.92,-23.91,-23.91,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.90,-23.89,-23.88,-23.87,-23.85,-23.84,-23.81,-23.79,-23.76,-23.73,-23.70,-23.66,-23.62,-23.57,-23.52,-23.47,-23.41,-23.35,-23.28,-23.21,-23.13,-23.05,-22.97,-22.88,-22.78,-22.68,-22.58,-22.47,-22.35,-22.23,-22.10,-21.97,-21.83,-21.69,-21.54,-21.38,-21.22,-21.05,-20.88,-20.70,-20.51,-20.31,-20.11,-19.91,-19.69,-19.47,-19.24,-19.00,-18.76,-18.51,-18.25,-17.98,-17.71,-17.43,-17.14,-16.84,-16.53,-16.22,-15.90,-15.57,-15.22,-14.88,-14.52,-14.15,-13.78,-13.39,-13,-12.54,-12.00,-11.39,-10.72,-9.99,-9.22,-8.40,-7.56,-6.69,-5.81,-4.90,-4.02,-3.13,-2.26,-1.41,-0.59,0.21,0.96,1.66,2.31,2.91,3.43,3.89,4.29,4.59,4.81,4.95,5,5.00,4.97,4.91,4.83,4.52,4.09,3.70,3.40,2.87,2.39,2.01,1.70,1.30,0.91,0.52,0.14,-0.22,-0.58,-0.93,-1.27,-1.60,-1.93,-2.24,-2.55,-2.85,-3.14,-3.43,-3.70,-3.96,-4.22,-4.47,-4.71,-4.94,-5.16,-5.38,-5.58,-5.78,-5.97,-6.15,-6.32,-6.49,-6.64,-6.79,-6.93,-7.06,-7.18,-7.29,-7.40,-7.49,-7.58,-7.66,-7.73,-7.79,-7.85,-7.90,-7.93,-7.96,-7.98,-8.00,-8,-8,-8,-7.97,-7.87,-7.72,-7.53,-7.28,-6.99,-6.67,-6.32,-5.94,-5.55,-5.12,-4.70,-4.27,-3.84,-3.41,-2.99,-2.58,-2.19,-1.82,-1.47,-1.15,-0.86,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.23,-0.40,-0.62,-0.87,-1.16,-1.48,-1.82,-2.19,-2.59,-3.01,-3.43,-3.87,-4.32,-4.77,-5.23,-5.68,-6.13,-6.57,-6.99,-7.41,-7.81,-8.18,-8.52,-8.84,-9.13,-9.38,-9.60,-9.77,-9.89,-9.97,-10,-9.94,-9.76,-9.49,-9.13,-8.70,-8.20,-7.68,-7.13,-6.56,-5.97,-5.41,-4.85,-4.33,-3.84,-3.39,-3,-2.54,-2.16,-1.84,-1.56,-1.32,-1.11,-0.93,-0.76,-0.61,-0.46,-0.32,-0.17,-0.09,-0.05,-0.03,-0.01,-0.00,0.00,0,-0.03,-0.10,-0.22,-0.38,-0.58,-0.80,-1.06,-1.35,-1.65,-1.98,-2.31,-2.66,-3.02,-3.39,-3.77,-4.14,-4.51,-4.87,-5.23,-5.58,-5.91,-6.23,-6.53,-6.82,-7.07,-7.30,-7.51,-7.68,-7.81,-7.92,-7.98,-8,-7.99,-7.96,-7.92,-7.85,-7.78,-7.68,-7.58,-7.47,-7.34,-7.20,-7.06,-6.91,-6.75,-6.59,-6.43,-6.26,-6.10,-5.93,-5.76,-5.60,-5.44,-5.29,-5.14,-5,-4.87,-4.74,-4.61,-4.50,-4.38,-4.27,-4.16,-4.06,-3.96,-3.86,-3.77,-3.67,-3.58,-3.49,-3.40,-3.32,-3.23,-3.14,-3.05,-2.97,-2.88,-2.79,-2.70,-2.61,-2.51,-2.41,-2.32,-2.21,-2.11,-2,-1.86,-1.72,-1.57,-1.41,-1.24,-1.08,-0.93,-0.77,-0.62,-0.48,-0.34,-0.22,-0.10,0,0.11,0.22,0.32,0.42,0.53,0.63,0.73,0.83,0.92,1.02,1.11,1.21,1.30,1.39,1.48,1.57,1.66,1.75,1.84,1.92,2.01,2.10,2.18,2.26,2.35,2.43,2.51,2.59,2.68,2.76,2.84,2.92,2.99,3.01,3.01,3.01,3.01,3.01,3.01,3,2.95,2.86,2.75,2.62,2.49,2.37,2.25,2.15,2.07,2.02,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.99,1.97,1.93,1.88,1.82,1.75,1.67,1.58,1.48,1.39,1.28,1.17,1.07,0.96,0.85,0.75,0.64,0.55,0.45,0.37,0.29,0.22,0.15,0.10,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.47,0.48,0.49,0.49,0.50,0.50,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.60,0.60,0.60,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.43,0.44,0.45,0.45,0.46,0.47,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,-0.01,-0.04,-0.10,-0.17,-0.27,-0.39,-0.54,-0.71,-0.90,-1.11,-1.35,-1.61,-1.90,-2.21,-2.54,-2.90,-3.28,-3.69,-4.13,-4.59,-5.07,-5.58,-6.13,-6.69,-7.29,-7.90,-8.55,-9.22,-9.92,-10.65,-11.40,-12.19,-13,-13.88,-14.85,-15.89,-16.98,-18.10,-19.26,-20.44,-21.60,-22.74,-23.85,-24.90,-25.88,-26.78,-27.56,-28.24,-28.78,-29.18,-29.41,-29.55,-29.66,-29.76,-29.84,-29.90,-29.94,-29.97,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.99,-29.95,-29.90,-29.84,-29.78,-29.70,-29.62,-29.53,-29.43,-29.32,-29.19,-29.02,-28.82,-28.59,-28.33,-28.05,-27.74,-27.40,-27.04,-26.67,-26.26,-25.84,-25.39,-24.93,-24.45,-23.96,-23.45,-22.92,-22.38,-21.84,-21.28,-20.70,-20.13,-19.54,-18.94,-18.35,-17.73,-17.13,-16.51,-15.90,-15.28,-14.67,-14.05,-13.44,-12.82,-12.21,-11.61,-11.01,-10.41,-9.82,-9.24,-8.68,-8.12,-7.56,-7.03,-6.51,-5.99,-5.50,-5.02,-4.55,-4.10,-3.67,-3.26,-2.88,-2.50,-2.16,-1.83,-1.53,-1.25,-1.00,-0.77,-0.57,-0.40,-0.26,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,-0.01,-0.02,-0.05,-0.09,-0.15,-0.21,-0.29,-0.38,-0.49,-0.61,-0.75,-0.90,-1.06,-1.24,-1.44,-1.65,-1.88,-2.12,-2.38,-2.66,-2.96,-3.27,-3.61,-3.96,-4.33,-4.72,-5.13,-5.55,-6.00,-6.47,-6.96,-7.47,-8,-8.59,-9.27,-10.03,-10.84,-11.68,-12.57,-13.48,-14.39,-15.29,-16.16,-17.00,-17.78,-18.50,-19.12,-19.67,-20.10,-20.41,-20.59,-20.68,-20.77,-20.83,-20.89,-20.93,-20.96,-20.98,-21.00,-21.01,-21.01,-21.01,-21.01,-21.01,-21.00,-21.00,-21,-20.91,-20.66,-20.29,-19.81,-19.25,-18.61,-17.89,-17.13,-16.30,-15.43,-14.51,-13.36,-12.58,-12.00,-11.59,-11.31,-11.13,-11.03,-11,-11.03,-11.12,-11.26,-11.45,-11.69,-11.96,-12.27,-12.61,-12.96,-13.35,-13.76,-14.17,-14.60,-15.04,-15.48,-15.93,-16.37,-16.80,-17.23,-17.64,-18.04,-18.42,-18.78,-19.12,-19.42,-19.69,-19.94,-20.14,-20.31,-20.43,-20.50,-20.53,-20.51,-20.47,-20.40,-20.31,-20.19,-20.05,-19.89,-19.70,-19.50,-19.27,-19.03,-18.76,-18.48,-18.19,-17.87,-17.55,-17.21,-16.85,-16.48,-16.11,-15.72,-15.32,-14.92,-14.51,-14.08,-13.66,-13.22,-12.78,-12.34,-11.90,-11.45,-11.00,-10.55,-10.10,-9.65,-9.20,-8.75,-8.30,-7.86,-7.43,-6.99,-6.57,-6.15,-5.74,-5.34,-4.94,-4.56,-4.18,-3.82,-3.47,-3.13,-2.80,-2.49,-2.20,-1.91,-1.65,-1.40,-1.17,-0.96,-0.76,-0.59,-0.44,-0.31,-0.20,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.50,0.62,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.96,0.90,0.83,0.74,0.64,0.54,0.44,0.34,0.25,0.17,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.75,0.76,0.76,0.77,0.78,0.79,0.80,0.82,0.83,0.84,0.85,0.85,0.86,0.87,0.87,0.87,0.87,0.87,0.86,0.85,0.84,0.83,0.82,0.81,0.79,0.78,0.76,0.74,0.72,0.70,0.68,0.66,0.65,0.63,0.61,0.59,0.57,0.55,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.45,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.58,0.59,0.60,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.68,0.69,0.70,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.91,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.97,0.95,0.91,0.88,0.83,0.79,0.74,0.68,0.63,0.58,0.52,0.47,0.42,0.37,0.33,0.29,0.26,0.24,0.23,0.22,0.22,0.22,0.22,0.23,0.24,0.26,0.28,0.31,0.36,0.42,0.50,0.59,0.69,0.78,0.86,0.93,0.97,0.99,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.83,0.82,0.81,0.80,0.79,0.78,0.77,0.76,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.83,0.83,0.84,0.85,0.87,0.88,0.90,0.91,0.92,0.93,0.94,0.94,0.71,0.34,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.90,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1.00,1.00,1.00,0.76,0.36,0.09,0,0.24,0.62,0.89,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.57,0.56,0.55,0.54,0.52,0.51,0.50,0.48,0.47,0.45,0.44,0.42,0.40,0.39,0.37,0.35,0.33,0.31,0.30,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.16,0.14,0.13,0.11,0.10,0.09,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.02,0.03,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.99,1.00,1,1.00,0.99,0.98,0.97,0.93,0.88,0.84,0.80,0.74,0.69,0.65,0.62,0.58,0.53,0.49,0.45,0.42,0.38,0.35,0.31,0.28,0.26,0.23,0.20,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.05,0.08,0.10,0.13,0.16,0.19,0.22,0.25,0.28,0.32,0.35,0.38,0.41,0.44,0.47,0.50,0.52,0.54,0.56,0.58,0.59,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.44,0.44,0.43,0.43,0.42,0.42,0.41,0.40,0.40,0.39,0.38,0.37,0.36,0.36,0.35,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.35,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.43,0.43,0.44,0.44,0.45,0.46,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.51,0.51,0.52,0.52,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.60,0.60,0.60,0.60,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.38,0.37,0.37,0.36,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.36,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.44,0.44,0.45,0.46,0.47,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.18,0.20,0.21,0.22,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.01,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.60,0.60,0.59,0.58,0.57,0.56,0.55,0.53,0.52,0.51,0.49,0.48,0.46,0.44,0.43,0.41,0.39,0.37,0.36,0.34,0.32,0.30,0.28,0.26,0.25,0.23,0.21,0.19,0.18,0.16,0.14,0.13,0.11,0.10,0.09,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.02,0.03,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.99,1.00,1,1.00,0.99,0.98,0.97,0.93,0.88,0.84,0.80,0.74,0.69,0.65,0.62,0.58,0.53,0.49,0.45,0.42,0.38,0.35,0.31,0.28,0.26,0.23,0.20,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.06,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.06,0.08,0.10,0.13,0.16,0.19,0.22,0.26,0.29,0.32,0.36,0.39,0.42,0.45,0.48,0.51,0.53,0.55,0.57,0.59,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.83,0.83,0.84,0.85,0.87,0.88,0.90,0.91,0.92,0.93,0.94,0.94,0.71,0.34,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.88,0.89,0.90,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1.00,1.00,1.00,0.76,0.36,0.09,0,0.24,0.62,0.89,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.16,0.25,0.34,0.43,0.50,0.56,0.60,0.61,0.61,0.61,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.51,0.49,0.48,0.47,0.45,0.44,0.42,0.41,0.39,0.38,0.36,0.35,0.33,0.31,0.30,0.28,0.27,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.14,0.12,0.11,0.10,0.09,0.07,0.06,0.05,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.10,0.11,0.13,0.16,0.18,0.20,0.23,0.25,0.28,0.31,0.33,0.36,0.39,0.42,0.45,0.48,0.51,0.54,0.57,0.61,0.64,0.67,0.70,0.73,0.76,0.79,0.81,0.83,0.84,0.85,0.86,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.86,0.83,0.80,0.76,0.72,0.68,0.63,0.57,0.52,0.46,0.39,0.34,0.30,0.28,0.25,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.26,0.26,0.27,0.27,0.28,0.28,0.29,0.29,0.30,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.28,0.27,0.26,0.26,0.25,0.25,0.24,0.23,0.23,0.22,0.21,0.21,0.20,0.19,0.18,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.18,-0.18,-0.19,-0.19,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.19,-0.18,-0.18,-0.17,-0.16,-0.15,-0.14,-0.12,-0.11,-0.11,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.10,-0.11,-0.12,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.36,-0.37,-0.38,-0.39,-0.40,-0.41,-0.42,-0.43,-0.44,-0.45,-0.46,-0.47,-0.47,-0.48,-0.49,-0.50,-0.50,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.54,-0.54,-0.53,-0.52,-0.51,-0.49,-0.47,-0.45,-0.43,-0.40,-0.37,-0.35,-0.32,-0.29,-0.26,-0.23,-0.20,-0.17,-0.15,-0.12,-0.10,-0.08,-0.06,-0.04,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Z=0,-0.06,-0.22,-0.48,-0.83,-1.26,-1.76,-2.33,-2.94,-3.61,-4.30,-5.03,-5.78,-6.53,-7.29,-8.03,-8.77,-9.49,-10.17,-10.82,-11.43,-11.99,-12.49,-12.93,-13.31,-13.60,-13.82,-13.95,-14,-13.99,-13.96,-13.90,-13.82,-13.73,-13.61,-13.48,-13.32,-13.15,-12.96,-12.76,-12.54,-12.29,-12.04,-11.77,-11.49,-11.20,-10.89,-10.57,-10.24,-9.89,-9.54,-9.18,-8.81,-8.43,-8.04,-7.64,-7.24,-6.83,-6.41,-5.99,-5.57,-5.13,-4.70,-4.26,-3.83,-3.38,-2.94,-2.50,-2.06,-1.62,-1.17,-0.74,-0.30,0.13,0.57,0.99,1.41,1.83,2.24,2.64,3.04,3.43,3.81,4.18,4.54,4.89,5.24,5.57,5.89,6.20,6.49,6.77,7.04,7.29,7.54,7.76,7.96,8.15,8.32,8.48,8.61,8.73,8.82,8.90,8.96,8.99,9,8.99,8.95,8.89,8.80,8.70,8.57,8.43,8.26,8.08,7.89,7.69,7.47,7.23,6.99,6.74,6.48,6.22,5.95,5.67,5.39,5.10,4.82,4.53,4.25,3.97,3.69,3.41,3.13,2.86,2.60,2.34,2.09,1.85,1.63,1.41,1.20,1.01,0.83,0.67,0.52,0.39,0.27,0.18,0.10,0.05,0.01,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.33,-0.59,-0.90,-1.27,-1.70,-2.18,-2.72,-3.30,-3.91,-4.57,-5.26,-6.00,-6.75,-7.54,-8.36,-9.18,-10.03,-10.89,-11.77,-12.66,-13.55,-14.44,-15.33,-16.23,-17.12,-17.99,-18.87,-19.73,-20.57,-21.38,-22.20,-22.97,-23.73,-24.45,-25.13,-25.79,-26.41,-26.99,-27.52,-28.01,-28.46,-28.85,-29.19,-29.47,-29.70,-29.87,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.98,-29.93,-29.85,-29.74,-29.61,-29.46,-29.28,-29.10,-28.90,-28.69,-28.47,-28.25,-28.02,-27.79,-27.56,-27.33,-27.11,-26.89,-26.69,-26.49,-26.31,-26.14,-25.99,-25.85,-25.74,-25.64,-25.57,-25.53,-25.52,-25.52,-25.52,-25.52,-25.52,-25.52,-25.45,-25.24,-24.92,-24.47,-23.92,-23.26,-22.53,-21.70,-20.79,-19.82,-18.81,-17.73,-16.61,-15.46,-14.31,-13.13,-11.93,-10.74,-9.58,-8.42,-7.28,-6.22,-5.27,-4.42,-3.66,-3.01,-2.43,-1.93,-1.50,-1.14,-0.84,-0.59,-0.40,-0.26,-0.15,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-2,-2.01,-2.04,-2.08,-2.14,-2.22,-2.31,-2.41,-2.53,-2.66,-2.80,-2.96,-3.12,-3.29,-3.48,-3.67,-3.87,-4.08,-4.29,-4.50,-4.73,-4.95,-5.18,-5.42,-5.65,-5.88,-6.12,-6.35,-6.58,-6.82,-7.05,-7.27,-7.50,-7.71,-7.92,-8.13,-8.33,-8.52,-8.71,-8.88,-9.04,-9.20,-9.34,-9.47,-9.59,-9.69,-9.78,-9.86,-9.92,-9.96,-9.99,-10,-9.94,-9.79,-9.53,-9.18,-8.77,-8.29,-7.74,-7.17,-6.54,-5.89,-5.22,-4.56,-3.87,-3.21,-2.56,-1.94,-1.34,-0.78,-0.27,0.20,0.60,0.95,1.29,1.60,1.90,2.18,2.44,2.69,2.92,3.14,3.33,3.52,3.69,3.85,3.99,4.12,4.24,4.35,4.45,4.54,4.61,4.68,4.74,4.80,4.84,4.88,4.91,4.94,4.96,4.97,4.98,4.99,5.00,5.00,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.00,5.00,4.99,4.99,4.98,4.97,4.95,4.94,4.92,4.91,4.89,4.87,4.84,4.82,4.79,4.76,4.73,4.70,4.67,4.63,4.59,4.55,4.51,4.47,4.42,4.38,4.33,4.28,4.23,4.17,4.12,4.06,4.00,3.94,3.88,3.81,3.75,3.68,3.61,3.54,3.47,3.39,3.31,3.24,3.16,3.08,2.99,2.91,2.82,2.73,2.65,2.55,2.46,2.37,2.27,2.17,2.07,1.97,1.87,1.77,1.66,1.56,1.45,1.34,1.23,1.11,1,0.88,0.77,0.67,0.57,0.47,0.38,0.30,0.22,0.14,0.07,0.01,-0.05,-0.11,-0.16,-0.20,-0.24,-0.28,-0.31,-0.34,-0.36,-0.37,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.40,-0.42,-0.45,-0.48,-0.53,-0.59,-0.65,-0.71,-0.78,-0.86,-0.94,-1.02,-1.10,-1.19,-1.27,-1.35,-1.43,-1.50,-1.57,-1.64,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.92,-1.94,-1.96,-1.97,-1.98,-1.99,-2.00,-2.00,-2.00,-2.00,-2.00,-2.00,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\nPARAM_BROW_R_Y=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.72,0.71,0.69,0.68,0.66,0.65,0.64,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.75,0.74,0.73,0.73,0.72,0.71,0.70,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.54,0.54,0.55,0.56,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\nPARAM_ANGLE_Y=18,17.86,17.47,16.83,15.99,14.94,13.73,12.35,10.85,9.24,7.57,5.77,3.97,2.14,0.30,-1.51,-3.29,-5.06,-6.71,-8.28,-9.76,-11.13,-12.33,-13.40,-14.31,-15.03,-15.56,-15.89,-16,-15.71,-14.86,-13.53,-11.84,-9.75,-7.43,-4.86,-2.14,0.74,3.64,6.63,9.59,12.48,15.32,17.97,20.47,22.76,24.81,26.58,28.02,29.10,29.76,30,29.97,29.89,29.75,29.56,29.32,29.03,28.70,28.32,27.89,27.43,26.92,26.38,25.80,25.20,24.55,23.87,23.17,22.44,21.68,20.90,20.10,19.27,18.43,17.57,16.70,15.82,14.93,14.01,13.11,12.18,11.25,10.33,9.41,8.49,7.57,6.65,5.73,4.83,3.93,3.03,2.15,1.30,0.45,-0.38,-1.20,-1.99,-2.76,-3.51,-4.23,-4.93,-5.61,-6.25,-6.86,-7.45,-8,-8.57,-9.08,-9.55,-9.98,-10.36,-10.71,-11.03,-11.32,-11.59,-11.83,-12.05,-12.26,-12.46,-12.64,-12.82,-13.00,-13.17,-13.34,-13.52,-13.70,-13.89,-14.09,-14.31,-14.53,-14.78,-15.05,-15.34,-15.66,-16,-16.40,-16.86,-17.37,-17.91,-18.47,-19.06,-19.65,-20.25,-20.83,-21.40,-21.93,-22.42,-22.87,-23.24,-23.56,-23.80,-23.95,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24.00,-23.98,-23.96,-23.93,-23.89,-23.85,-23.79,-23.73,-23.66,-23.58,-23.49,-23.39,-23.29,-23.17,-23.05,-22.92,-22.78,-22.64,-22.49,-22.33,-22.15,-21.98,-21.79,-21.60,-21.39,-21.19,-20.97,-20.74,-20.51,-20.27,-20.02,-19.76,-19.50,-19.23,-18.95,-18.66,-18.36,-18.06,-17.75,-17.44,-17.11,-16.77,-16.43,-16.08,-15.73,-15.36,-15.00,-14.62,-14.24,-13.84,-13.44,-13.03,-12.62,-12.20,-11.78,-11.34,-10.90,-10.44,-9.99,-9.52,-9.06,-8.58,-8.10,-7.60,-7.11,-6.59,-6.09,-5.56,-5.04,-4.50,-3.97,-3.42,-2.87,-2.31,-1.74,-1.17,-0.58,0,0.58,1.11,1.62,2.10,2.54,2.97,3.36,3.71,4.05,4.36,4.63,4.89,5.12,5.33,5.51,5.67,5.81,5.93,6.03,6.11,6.17,6.21,6.23,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.24,6.28,6.38,6.53,6.75,7.01,7.33,7.68,8.08,8.51,8.97,9.45,9.96,10.49,11.03,11.57,12.13,12.68,13.24,13.77,14.30,14.82,15.30,15.72,16.10,16.44,16.73,16.98,17.20,17.39,17.54,17.67,17.77,17.85,17.91,17.95,17.97,17.99,18.00,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18\nPARAM_ANGLE_X=0,-0.05,-0.20,-0.45,-0.78,-1.19,-1.68,-2.24,-2.86,-3.54,-4.27,-5.06,-5.87,-6.72,-7.61,-8.50,-9.42,-10.37,-11.30,-12.24,-13.18,-14.12,-15.02,-15.92,-16.80,-17.64,-18.46,-19.26,-20,-20.80,-21.53,-22.19,-22.75,-23.27,-23.71,-24.11,-24.45,-24.75,-25.00,-25.22,-25.40,-25.55,-25.67,-25.77,-25.85,-25.90,-25.94,-25.97,-25.99,-26.00,-26.00,-26,-25.89,-25.57,-25.05,-24.35,-23.47,-22.45,-21.28,-19.98,-18.56,-17.04,-15.40,-13.71,-11.92,-10.11,-8.26,-6.38,-4.49,-2.57,-0.70,1.18,2.99,4.75,6.45,8.06,9.59,11.03,12.33,13.52,14.55,15.42,16.23,16.99,17.74,18.45,19.12,19.76,20.38,20.96,21.51,22.03,22.52,22.99,23.43,23.85,24.24,24.61,24.95,25.27,25.58,25.86,26.12,26.37,26.59,26.80,27,27.21,27.40,27.58,27.74,27.89,28.03,28.15,28.26,28.36,28.46,28.54,28.61,28.67,28.73,28.78,28.82,28.86,28.89,28.92,28.94,28.96,28.97,28.98,28.99,28.99,29.00,29.00,29.00,29,28.99,28.97,28.93,28.87,28.81,28.74,28.66,28.58,28.50,28.42,28.34,28.26,28.19,28.13,28.07,28.03,28.01,28,28,28,28,28,28,28,28,28,27.99,27.95,27.88,27.79,27.67,27.53,27.36,27.18,26.97,26.74,26.48,26.22,25.92,25.62,25.29,24.95,24.59,24.22,23.82,23.42,23.00,22.58,22.13,21.68,21.21,20.74,20.26,19.77,19.27,18.76,18.25,17.73,17.20,16.68,16.15,15.62,15.08,14.53,14,13.47,12.92,12.38,11.85,11.32,10.80,10.27,9.75,9.24,8.73,8.23,7.74,7.26,6.79,6.32,5.87,5.42,5.00,4.58,4.18,3.78,3.41,3.05,2.71,2.38,2.08,1.78,1.52,1.26,1.03,0.82,0.64,0.47,0.33,0.21,0.12,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.02,0.04,0.06,0.08,0.11,0.14,0.17,0.21,0.26,0.30,0.35,0.40,0.45,0.51,0.57,0.63,0.69,0.76,0.82,0.89,0.96,0.99,1.00,1,1,1,1,1.00,0.96,0.93,0.88,0.84,0.79,0.74,0.69,0.63,0.58,0.52,0.47,0.41,0.36,0.31,0.26,0.22,0.18,0.14,0.10,0.07,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.08,0.11,0.15,0.19,0.23,0.27,0.32,0.37,0.41,0.46,0.50,0.54,0.58,0.62,0.65,0.68,0.70,0.72,0.73,0.73,0.60,0.39,0.20,0.05,0,0.14,0.37,0.58,0.73,0.79,0.78,0.77,0.75,0.71,0.68,0.63,0.59,0.53,0.48,0.42,0.37,0.31,0.26,0.20,0.16,0.11,0.08,0.04,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.11,0.13,0.13,0.15,0.15,0.16,0.17,0.18,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.24,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.24,0.24,0.23,0.23,0.22,0.22,0.21,0.21,0.20,0.19,0.19,0.18,0.17,0.16,0.16,0.15,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.90,0.73,0.58,0.46,0.42,0.42,0.43,0.45,0.48,0.50,0.54,0.57,0.61,0.65,0.69,0.73,0.77,0.81,0.85,0.88,0.92,0.94,0.97,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.50,0.26,0.08,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.94,0.94,0.93,0.92,0.91,0.90,0.86,0.78,0.68,0.57,0.45,0.33,0.23,0.14,0.06,0.02,0,0.02,0.07,0.15,0.25,0.37,0.49,0.60,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.87,0.86,0.70,0.45,0.23,0.06,0,0.15,0.40,0.63,0.79,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.90,0.90,0.90,0.91,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.23,0.23,0.22,0.22,0.22,0.21,0.20,0.20,0.19,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.72,0.71,0.69,0.68,0.66,0.65,0.64,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.68,0.69,0.70,0.70,0.71,0.72,0.73,0.73,0.74,0.74,0.74,0.75,0.75,0.75,0.76,0.76,0.76,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.75,0.75,0.75,0.74,0.73,0.73,0.72,0.71,0.70,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.54,0.54,0.55,0.56,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.66,0.67,0.68,0.69,0.70,0.71,0.71,0.72,0.73,0.73,0.74,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\nPARAM_BROW_R_ANGLE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.50,0.26,0.08,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.87,0.79,0.69,0.57,0.45,0.34,0.23,0.14,0.06,0.02,0,0.02,0.07,0.15,0.25,0.37,0.49,0.60,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.87,0.86,0.70,0.45,0.23,0.06,0,0.15,0.40,0.63,0.79,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.90,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.04,0.08,0.13,0.19,0.26,0.34,0.42,0.50,0.58,0.66,0.74,0.81,0.87,0.92,0.96,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.90,0.88,0.86,0.84,0.82,0.79,0.77,0.74,0.71,0.69,0.66,0.63,0.60,0.57,0.54,0.51,0.48,0.45,0.42,0.40,0.37,0.34,0.31,0.28,0.26,0.23,0.21,0.18,0.16,0.14,0.12,0.10,0.08,0.07,0.05,0.04,0.03,0.02,0.01,0.00,0.00,0,0.00,0.00,0.01,0.02,0.02,0.03,0.05,0.06,0.07,0.09,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.26,0.28,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.49,0.51,0.54,0.56,0.59,0.61,0.64,0.66,0.68,0.70,0.73,0.75,0.77,0.78,0.80,0.82,0.83,0.85,0.86,0.87,0.88,0.89,0.89,0.90,0.90,0.90,0.90,0.89,0.87,0.86,0.83,0.81,0.78,0.74,0.71,0.67,0.63,0.59,0.54,0.50,0.46,0.41,0.37,0.33,0.28,0.24,0.21,0.17,0.14,0.11,0.08,0.06,0.04,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.12,-0.14,-0.16,-0.18,-0.20,-0.22,-0.25,-0.28,-0.30,-0.33,-0.36,-0.39,-0.43,-0.46,-0.49,-0.53,-0.57,-0.61,-0.65,-0.68,-0.71,-0.74,-0.77,-0.80,-0.82,-0.85,-0.87,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-0.98,-0.97,-0.95,-0.92,-0.90,-0.86,-0.83,-0.79,-0.74,-0.70,-0.64,-0.59,-0.53,-0.47,-0.41,-0.34,-0.27,-0.21,-0.13,-0.06,0.01,0.10,0.16,0.20,0.23,0.27,0.29,0.32,0.34,0.37,0.41,0.44,0.47,0.49,0.52,0.55,0.57,0.59,0.61,0.63,0.65,0.67,0.68,0.70,0.71,0.72,0.73,0.74,0.74,0.75,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.74,0.72,0.69,0.65,0.60,0.55,0.49,0.43,0.37,0.30,0.23,0.15,0.08,0,-0.08,-0.15,-0.23,-0.30,-0.37,-0.43,-0.49,-0.55,-0.60,-0.65,-0.69,-0.72,-0.74,-0.76,-0.76,-0.76,-0.75,-0.74,-0.73,-0.72,-0.71,-0.69,-0.67,-0.65,-0.63,-0.62,-0.60,-0.58,-0.56,-0.55,-0.53,-0.52,-0.51,-0.50,-0.49,-0.48,-0.47,-0.46,-0.45,-0.44,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.30,-0.29,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.21,-0.20,-0.19,-0.18,-0.17,-0.16,-0.16,-0.15,-0.14,-0.13,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.00,0,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.07,-0.08,-0.10,-0.12,-0.14,-0.15,-0.17,-0.19,-0.21,-0.22,-0.24,-0.26,-0.27,-0.28,-0.29,-0.30,-0.31,-0.32,-0.33,-0.33,-0.33,-0.32,-0.31,-0.28,-0.25,-0.20,-0.16,-0.10,-0.05,0.01,0.07,0.13,0.19,0.25,0.31,0.37,0.42,0.47,0.51,0.55,0.58,0.61,0.62,0.63,0.63,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.64,0.59,0.53,0.48,0.43,0.38,0.33,0.28,0.24,0.20,0.15,0.12,0.08,0.04,0.01,-0.02,-0.05,-0.07,-0.10,-0.12,-0.13,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.20,-0.20,-0.20,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.19,-0.18,-0.16,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.01,0.00,0.02,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0,-0.00,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.14,-0.16,-0.19,-0.21,-0.24,-0.27,-0.29,-0.31,-0.34,-0.36,-0.37,-0.39,-0.40,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.41,-0.41,-0.40,-0.40,-0.39,-0.39,-0.38,-0.37,-0.36,-0.35,-0.33,-0.32,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_03.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.14,-0.16,-0.18,-0.20,-0.22,-0.24,-0.26,-0.29,-0.31,-0.34,-0.36,-0.38,-0.40,-0.42,-0.43,-0.45,-0.46,-0.47,-0.48,-0.49,-0.49,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.40,-0.39,-0.38,-0.36,-0.35,-0.33,-0.31,-0.30,-0.28,-0.26,-0.24,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.02,-0.00,0.01,0.03,0.05,0.06,0.08,0.10,0.11,0.12,0.14,0.15,0.16,0.17,0.19,0.20,0.20,0.21,0.22,0.23,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.20,0.20,0.20,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.16,0.16,0.15,0.15,0.15,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.01,-0.06,-0.13,-0.23,-0.36,-0.51,-0.69,-0.90,-1.14,-1.40,-1.69,-2.00,-2.33,-2.70,-3.08,-3.49,-3.92,-4.38,-4.85,-5.35,-5.87,-6.41,-6.98,-7.55,-8.16,-8.78,-9.42,-10.07,-10.76,-11.45,-12.16,-12.88,-13.62,-14.38,-15.16,-15.94,-16.75,-17.56,-18.39,-19.23,-20.09,-20.95,-21.83,-22.84,-23.42,-23.70,-23.82,-23.90,-23.95,-23.98,-23.99,-24.00,-24,-23.92,-23.69,-23.32,-22.81,-22.17,-21.41,-20.55,-19.58,-18.50,-17.35,-16.12,-14.79,-13.40,-11.95,-10.44,-8.90,-7.32,-5.68,-4.01,-2.35,-0.63,1.06,2.80,4.50,6.20,7.88,9.57,11.23,12.84,14.42,15.95,17.44,18.88,20.24,21.53,22.77,23.94,25.02,26.00,26.88,27.68,28.37,28.93,29.39,29.73,29.93,30,29.94,29.75,29.44,29.01,28.48,27.83,27.06,26.21,25.24,24.16,23.02,21.76,20.20,19.00,18.06,17.30,15.94,14.80,13.96,13.36,12.57,11.73,10.83,9.91,9.03,8.16,7.34,6.63,6.00,5.50,5.17,5,4.93,4.86,4.79,4.73,4.66,4.59,4.53,4.46,4.39,4.33,4.27,4.20,4.14,4.07,4.01,3.95,3.88,3.82,3.76,3.70,3.64,3.57,3.51,3.45,3.39,3.33,3.27,3.21,3.15,3.10,3.04,2.98,2.92,2.86,2.80,2.74,2.69,2.63,2.57,2.51,2.46,2.40,2.34,2.29,2.23,2.17,2.12,2.06,2.01,1.95,1.89,1.84,1.78,1.72,1.67,1.61,1.56,1.50,1.45,1.39,1.34,1.28,1.22,1.17,1.11,1.06,1.00,0.94,0.89,0.83,0.78,0.72,0.66,0.61,0.55,0.49,0.44,0.38,0.34,0.31,0.29,0.27,0.25,0.23,0.22,0.20,0.19,0.17,0.16,0.14,0.13,0.12,0.11,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,-0.02,-0.06,-0.13,-0.22,-0.34,-0.47,-0.62,-0.78,-0.95,-1.13,-1.31,-1.50,-1.69,-1.87,-2.05,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3.00,-3.00,-3.01,-3.02,-3.03,-3.04,-3.06,-3.08,-3.10,-3.12,-3.15,-3.17,-3.20,-3.23,-3.27,-3.30,-3.34,-3.38,-3.42,-3.46,-3.51,-3.55,-3.60,-3.65,-3.70,-3.76,-3.81,-3.87,-3.94,-4.00,-4.04,-4.08,-4.15,-4.21,-4.26,-4.29,-4.34,-4.38,-4.43,-4.47,-4.51,-4.55,-4.59,-4.62,-4.65,-4.69,-4.72,-4.75,-4.77,-4.80,-4.82,-4.84,-4.87,-4.88,-4.90,-4.92,-4.93,-4.95,-4.96,-4.97,-4.98,-4.98,-4.99,-4.99,-5.00,-5.00,-5,-4.99,-4.97,-4.94,-4.89,-4.83,-4.76,-4.67,-4.58,-4.47,-4.35,-4.23,-4.09,-3.95,-3.80,-3.64,-3.47,-3.30,-3.12,-2.93,-2.74,-2.55,-2.35,-2.14,-1.94,-1.73,-1.52,-1.31,-1.09,-0.87,-0.66,-0.44,-0.23,-0.01,0.20,0.41,0.62,0.83,1.04,1.24,1.43,1.63,1.81,2,2.18,2.33,2.47,2.58,2.68,2.77,2.85,2.91,2.97,3.02,3.08,3.13,3.19,3.25,3.31,3.39,3.43,3.46,3.48,3.53,3.56,3.59,3.61,3.64,3.67,3.69,3.72,3.74,3.77,3.79,3.81,3.83,3.85,3.86,3.88,3.90,3.91,3.92,3.93,3.95,3.96,3.96,3.97,3.98,3.98,3.99,3.99,4.00,4.00,4.00,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\nPARAM_BODY_ANGLE_Y=0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.63,-0.82,-1.04,-1.27,-1.51,-1.75,-2,-2.25,-2.49,-2.73,-2.96,-3.18,-3.38,-3.55,-3.70,-3.83,-3.92,-3.98,-4,-4.00,-3.98,-3.96,-3.92,-3.88,-3.82,-3.76,-3.68,-3.60,-3.50,-3.40,-3.29,-3.17,-3.04,-2.90,-2.76,-2.61,-2.45,-2.28,-2.02,-1.77,-1.56,-1.39,-1.12,-0.88,-0.68,-0.51,-0.20,0,0.34,0.69,1.02,1.34,1.65,1.96,2.25,2.54,2.82,3.10,3.36,3.62,3.87,4.11,4.35,4.57,4.79,5.00,5.21,5.40,5.60,5.78,5.95,6.12,6.28,6.43,6.58,6.72,6.85,6.97,7.09,7.20,7.31,7.40,7.49,7.57,7.65,7.71,7.77,7.83,7.87,7.91,7.94,7.97,7.99,8.00,8,7.99,7.94,7.87,7.77,7.65,7.49,7.30,7.09,6.85,6.57,6.27,5.94,5.48,5.08,4.77,4.52,4.11,3.78,3.53,3.34,3.11,2.91,2.73,2.57,2.43,2.31,2.22,2.14,2.08,2.03,2.01,2,2.01,2.03,2.08,2.14,2.21,2.31,2.42,2.55,2.69,2.85,3.03,3.23,3.44,3.66,3.90,4.16,4.42,4.71,5,5.36,5.69,6.00,6.28,6.54,6.78,6.99,7.18,7.36,7.50,7.64,7.75,7.84,7.91,7.96,7.99,8,8.00,7.99,7.98,7.96,7.94,7.91,7.88,7.84,7.80,7.75,7.70,7.64,7.58,7.52,7.45,7.37,7.29,7.21,7.12,7.03,6.93,6.83,6.73,6.62,6.50,6.39,6.26,6.14,6.01,5.87,5.73,5.59,5.44,5.29,5.14,4.98,4.81,4.64,4.47,4.29,4.11,3.88,3.69,3.55,3.43,3.23,3.06,2.93,2.83,2.69,2.56,2.44,2.32,2.20,2.10,1.99,1.90,1.81,1.72,1.64,1.56,1.49,1.42,1.36,1.31,1.26,1.21,1.17,1.13,1.10,1.07,1.05,1.03,1.02,1.01,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.48,0.48,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.44,0.44,0.44,0.44,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.50,0.40,0.33,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,-0.02,-0.07,-0.16,-0.29,-0.45,-0.64,-0.87,-1.13,-1.42,-1.75,-2.11,-2.50,-2.92,-3.38,-3.86,-4.38,-4.91,-5.48,-6.08,-6.70,-7.35,-8.03,-8.73,-9.45,-10.21,-10.99,-11.78,-12.60,-13.46,-14.32,-15.21,-16.12,-17.04,-17.98,-18.96,-19.93,-20.95,-21.96,-22.99,-24.05,-25.12,-26.18,-27.29,-28.55,-29.27,-29.62,-29.76,-29.88,-29.94,-29.97,-29.99,-30,-30,-29.99,-29.96,-29.92,-29.86,-29.77,-29.67,-29.55,-29.42,-29.26,-29.09,-28.90,-28.69,-28.46,-28.21,-27.95,-27.66,-27.36,-27.03,-26.69,-26.34,-25.95,-25.56,-25.14,-24.70,-24.25,-23.77,-23.28,-22.75,-22.22,-21.67,-21.09,-20.50,-19.89,-19.25,-18.59,-17.92,-17.23,-16.52,-15.78,-15.03,-14.24,-13.45,-12.63,-11.79,-10.92,-10.04,-9.14,-8.21,-7.26,-6.29,-5.31,-4.29,-3.25,-2.19,-1.11,0,1.37,2.68,3.91,5.06,6.09,7.01,7.80,8.43,8.91,9.21,9.31,9.19,8.82,8.21,7.40,6.41,5.24,3.91,2.44,0.88,-0.81,-2.59,-4.41,-6.28,-8.19,-10.11,-12.01,-13.90,-15.75,-17.56,-19.31,-20.96,-22.51,-23.96,-25.30,-26.48,-27.51,-28.37,-29.07,-29.58,-29.89,-30,-30.00,-29.99,-29.99,-29.97,-29.96,-29.94,-29.93,-29.91,-29.88,-29.86,-29.83,-29.80,-29.77,-29.74,-29.71,-29.68,-29.64,-29.61,-29.57,-29.54,-29.50,-29.47,-29.43,-29.40,-29.37,-29.33,-29.30,-29.27,-29.24,-29.21,-29.18,-29.15,-29.13,-29.11,-29.09,-29.07,-29.05,-29.03,-29.02,-29.01,-29.01,-29.00,-29,-29.01,-29.05,-29.10,-29.18,-29.26,-29.35,-29.45,-29.55,-29.65,-29.74,-29.82,-29.90,-29.95,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-29.98,-29.93,-29.83,-29.70,-29.51,-29.29,-29.01,-28.69,-28.34,-27.95,-27.51,-27.04,-26.53,-26,-25.35,-24.69,-24.04,-23.39,-22.74,-22.10,-21.46,-20.82,-20.19,-19.56,-18.95,-18.32,-17.71,-17.10,-16.51,-15.91,-15.32,-14.74,-14.16,-13.59,-13.03,-12.48,-11.93,-11.40,-10.87,-10.35,-9.84,-9.34,-8.85,-8.37,-7.90,-7.45,-7.00,-6.56,-6.13,-5.72,-5.32,-4.93,-4.55,-4.19,-3.84,-3.50,-3.18,-2.87,-2.57,-2.29,-2.02,-1.77,-1.54,-1.31,-1.11,-0.92,-0.75,-0.60,-0.46,-0.34,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,-0.01,-0.02,-0.05,-0.09,-0.15,-0.21,-0.29,-0.37,-0.47,-0.58,-0.70,-0.83,-0.97,-1.12,-1.28,-1.45,-1.63,-1.81,-2.01,-2.22,-2.43,-2.66,-2.89,-3.13,-3.39,-3.65,-3.91,-4.18,-4.47,-4.76,-5.05,-5.35,-5.66,-5.98,-6.30,-6.63,-6.97,-7.31,-7.66,-8.01,-8.37,-8.73,-9.10,-9.52,-9.76,-9.88,-9.93,-9.96,-9.98,-9.99,-10.00,-10.00,-10,-9.99,-9.96,-9.91,-9.84,-9.76,-9.66,-9.54,-9.42,-9.27,-9.11,-8.94,-8.76,-8.57,-8.37,-8.16,-7.94,-7.71,-7.48,-7.24,-6.99,-6.74,-6.48,-6.23,-5.96,-5.70,-5.43,-5.17,-4.90,-4.63,-4.37,-4.10,-3.84,-3.59,-3.33,-3.08,-2.84,-2.60,-2.37,-2.15,-1.93,-1.72,-1.52,-1.33,-1.14,-0.97,-0.82,-0.67,-0.54,-0.42,-0.31,-0.22,-0.14,-0.08,-0.04,-0.01,0,-0.09,-0.33,-0.66,-1.08,-1.54,-2.03,-2.55,-3.06,-3.57,-4.05,-4.51,-5.00,-5.45,-5.90,-6.31,-6.71,-7.08,-7.44,-7.77,-8.08,-8.38,-8.66,-8.91,-9.15,-9.38,-9.59,-9.77,-9.95,-10.11,-10.25,-10.38,-10.50,-10.60,-10.69,-10.77,-10.83,-10.88,-10.93,-10.96,-10.98,-11.00,-11,-11.00,-10.99,-10.99,-10.98,-10.97,-10.95,-10.93,-10.91,-10.88,-10.85,-10.82,-10.78,-10.74,-10.69,-10.64,-10.59,-10.53,-10.47,-10.40,-10.32,-10.24,-10.16,-10.07,-9.97,-9.87,-9.76,-9.65,-9.53,-9.41,-9.28,-9.14,-9.00,-8.85,-8.70,-8.53,-8.37,-8.19,-8.01,-7.82,-7.63,-7.42,-7.22,-7,-6.71,-6.29,-5.77,-5.15,-4.45,-3.69,-2.87,-2.02,-1.13,-0.24,0.67,1.55,2.42,3.24,4,4.95,5.77,6.43,6.95,7.87,8.64,9.23,9.65,10.22,10.72,11.16,11.56,11.89,12.18,12.42,12.61,12.76,12.87,12.94,12.99,13,12.99,12.96,12.91,12.84,12.75,12.64,12.52,12.38,12.22,12.05,11.87,11.67,11.46,11.24,11.01,10.77,10.52,10.26,9.99,9.71,9.43,9.14,8.85,8.55,8.25,7.94,7.63,7.32,7.01,6.70,6.38,6.07,5.76,5.45,5.14,4.84,4.54,4.24,3.94,3.66,3.38,3.11,2.84,2.58,2.33,2.09,1.86,1.64,1.43,1.23,1.05,0.88,0.72,0.58,0.45,0.33,0.23,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0.00,0.01,0.02,0.03,0.04,0.06,0.08,0.11,0.13,0.16,0.19,0.23,0.26,0.29,0.33,0.36,0.40,0.44,0.48,0.51,0.55,0.59,0.63,0.66,0.70,0.73,0.76,0.80,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1.00,0.99,0.96,0.89,0.83,0.77,0.73,0.66,0.60,0.55,0.51,0.42,0.38,0.32,0.27,0.22,0.18,0.14,0.11,0.08,0.06,0.04,0.03,0.02,0.01,0.00,0,0.01,0.05,0.10,0.16,0.24,0.32,0.40,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.98,0.93,0.85,0.75,0.64,0.52,0.40,0.30,0.20,0.12,0.06,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.88,0.87,0.86,0.84,0.82,0.81,0.79,0.77,0.75,0.73,0.71,0.69,0.67,0.64,0.62,0.59,0.57,0.54,0.52,0.49,0.46,0.43,0.40,0.37,0.34,0.31,0.28,0.24,0.20,0.16,0.14,0.10,0.07,0.05,0.03,0.00,-0.01,-0.02,-0.03,-0.04,-0.05,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.03,0.03,0.09,0.17,0.26,0.35,0.45,0.54,0.63,0.72,0.79,0.86,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.87,0.88,0.89,0.90,0.92,0.93,0.94,0.96,0.97,0.98,0.99,0.99,1.00,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.97,0.74,0.35,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.61,0.29,0.07,0,0.19,0.50,0.72,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.96,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.75,0.36,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.48,0.48,0.47,0.47,0.47,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.43,0.43,0.43,0.43,0.43,0.43,0.44,0.44,0.44,0.44,0.45,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.47,0.48,0.48,0.48,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.52,0.53,0.53,0.53,0.53,0.54,0.54,0.54,0.54,0.54,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.49,0.39,0.32,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.34,0.34,0.34,0.34,0.34,0.35,0.35,0.35,0.35,0.36,0.36,0.36,0.37,0.37,0.37,0.37,0.38,0.38,0.38,0.39,0.39,0.39,0.39,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.44,0.45,0.45,0.46,0.47,0.48,0.48,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.05,-0.07,-0.08,-0.09,-0.10,-0.12,-0.14,-0.15,-0.17,-0.19,-0.21,-0.23,-0.26,-0.28,-0.31,-0.33,-0.35,-0.38,-0.40,-0.41,-0.43,-0.44,-0.46,-0.47,-0.48,-0.49,-0.49,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.49,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.44,-0.43,-0.41,-0.40,-0.38,-0.37,-0.35,-0.34,-0.32,-0.30,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.01,0.00,0.02,0.04,0.06,0.08,0.09,0.11,0.13,0.14,0.16,0.17,0.19,0.20,0.21,0.22,0.23,0.24,0.25,0.26,0.26,0.27,0.27,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.23,0.23,0.23,0.22,0.22,0.22,0.21,0.21,0.20,0.20,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.16,0.16,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.86,0.87,0.87,0.88,0.90,0.91,0.92,0.93,0.95,0.96,0.97,0.98,0.99,1.00,1.00,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.92,0.93,0.93,0.93,0.94,0.94,0.94,0.95,0.95,0.95,0.95,0.96,0.96,0.96,0.96,0.97,0.97,0.97,0.97,0.97,0.97,0.74,0.35,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.61,0.29,0.07,0,0.19,0.50,0.72,0.79,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.97,0.97,0.97,0.98,0.98,0.98,0.98,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.75,0.36,0.09,0,0.24,0.63,0.90,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,0.00,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.08,0.09,0.09,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.18,0.18,0.19,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.30,0.28,0.25,0.22,0.19,0.15,0.10,0.06,0.00,-0.05,-0.10,-0.16,-0.22,-0.28,-0.32,-0.34,-0.36,-0.39,-0.42,-0.44,-0.45,-0.47,-0.48,-0.49,-0.51,-0.52,-0.53,-0.53,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.54,-0.53,-0.53,-0.52,-0.52,-0.51,-0.50,-0.49,-0.48,-0.48,-0.47,-0.46,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.37,-0.36,-0.35,-0.34,-0.32,-0.31,-0.30,-0.28,-0.27,-0.26,-0.24,-0.23,-0.22,-0.20,-0.19,-0.18,-0.17,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.05,-0.06,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.38,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.47,-0.47,-0.48,-0.49,-0.49,-0.50,-0.51,-0.52,-0.53,-0.54,-0.55,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.61,-0.61,-0.61,-0.62,-0.62,-0.62,-0.62,-0.62,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.62,-0.62,-0.61,-0.61,-0.60,-0.59,-0.58,-0.58,-0.57,-0.56,-0.54,-0.53,-0.52,-0.51,-0.50,-0.48,-0.47,-0.46,-0.44,-0.43,-0.41,-0.40,-0.38,-0.37,-0.35,-0.34,-0.32,-0.31,-0.29,-0.28,-0.26,-0.25,-0.23,-0.22,-0.21,-0.19,-0.18,-0.16,-0.15,-0.14,-0.13,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_04.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.25,0.27,0.28,0.29,0.30,0.31,0.31,0.32,0.33,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20\nPARAM_ANGLE_Z=0,-0.03,-0.13,-0.28,-0.49,-0.74,-1.04,-1.37,-1.75,-2.15,-2.58,-3.03,-3.49,-3.97,-4.45,-4.94,-5.42,-5.90,-6.38,-6.84,-7.28,-7.70,-8.10,-8.46,-8.80,-9.10,-9.37,-9.59,-9.76,-9.89,-9.97,-10,-9.99,-9.95,-9.89,-9.81,-9.71,-9.58,-9.43,-9.27,-9.08,-8.88,-8.65,-8.41,-8.15,-7.88,-7.59,-7.29,-6.97,-6.64,-6.30,-5.94,-5.56,-5.19,-4.79,-4.39,-3.98,-3.56,-3.13,-2.69,-2.24,-1.80,-1.34,-0.88,-0.41,0.06,0.54,1.02,1.50,1.98,2.46,2.96,3.44,3.93,4.41,4.89,5.38,5.86,6.34,6.81,7.28,7.75,8.21,8.66,9.11,9.55,9.99,10.41,10.83,11.24,11.64,12.02,12.40,12.77,13.13,13.48,13.81,14.13,14.43,14.72,15.00,15.26,15.51,15.73,15.94,16.14,16.31,16.47,16.61,16.72,16.82,16.90,16.95,16.99,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.97,16.90,16.78,16.61,16.40,16.14,15.84,15.51,15.14,14.73,14.29,13.82,13.31,12.78,12.23,11.64,11.04,10.40,9.75,9.08,8.40,7.69,6.97,6.24,5.49,4.75,3.98,3.21,2.43,1.67,0.88,0.10,-0.68,-1.47,-2.24,-3.01,-3.78,-4.53,-5.28,-6.02,-6.75,-7.46,-8.16,-8.85,-9.51,-10.15,-10.78,-11.39,-11.96,-12.52,-13.05,-13.56,-14.03,-14.48,-14.89,-15.27,-15.63,-15.94,-16.21,-16.45,-16.64,-16.80,-16.91,-16.98,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.99,-16.97,-16.93,-16.88,-16.81,-16.73,-16.64,-16.53,-16.41,-16.27,-16.13,-15.97,-15.80,-15.62,-15.43,-15.22,-15.01,-14.79,-14.55,-14.31,-14.06,-13.79,-13.53,-13.25,-12.96,-12.67,-12.37,-12.06,-11.76,-11.43,-11.11,-10.78,-10.44,-10.10,-9.76,-9.41,-9.05,-8.70,-8.34,-7.97,-7.61,-7.24,-6.87,-6.50,-6.12,-5.75,-5.38,-5,-4.62,-4.25,-3.88,-3.50,-3.13,-2.76,-2.39,-2.03,-1.66,-1.30,-0.95,-0.59,-0.24,0.10,0.44,0.78,1.11,1.43,1.76,2.06,2.37,2.67,2.96,3.25,3.53,3.79,4.06,4.31,4.55,4.79,5.01,5.22,5.43,5.62,5.80,5.97,6.13,6.27,6.41,6.53,6.64,6.73,6.81,6.88,6.93,6.97,6.99,7,6.98,6.91,6.81,6.67,6.50,6.30,6.07,5.82,5.56,5.27,4.98,4.67,4.35,4.03,3.70,3.38,3.06,2.74,2.42,2.12,1.83,1.54,1.28,1.04,0.81,0.61,0.43,0.28,0.16,0.07,0.02,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.33,-0.36,-0.40,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.66,-0.70,-0.73,-0.76,-0.80,-0.82,-0.85,-0.88,-0.90,-0.92,-0.94,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.93,-0.92,-0.91,-0.89,-0.88,-0.86,-0.84,-0.82,-0.81,-0.79,-0.77,-0.75,-0.73,-0.71,-0.68,-0.66,-0.64,-0.62,-0.59,-0.57,-0.55,-0.53,-0.50,-0.48,-0.46,-0.43,-0.41,-0.39,-0.37,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.17,-0.15,-0.13,-0.12,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.86,-0.84,-0.82,-0.80,-0.78,-0.75,-0.73,-0.70,-0.67,-0.64,-0.61,-0.58,-0.55,-0.52,-0.49,-0.46,-0.43,-0.39,-0.36,-0.32,-0.29,-0.25,-0.22,-0.18,-0.15,-0.11,-0.08,-0.04,-0.00,0.03,0.07,0.10,0.14,0.17,0.21,0.25,0.28,0.31,0.35,0.38,0.42,0.45,0.48,0.51,0.54,0.57,0.60,0.63,0.66,0.69,0.71,0.74,0.76,0.79,0.81,0.83,0.85,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.94,0.93,0.92,0.90,0.89,0.87,0.85,0.83,0.81,0.79,0.77,0.75,0.72,0.70,0.68,0.65,0.62,0.60,0.57,0.54,0.51,0.48,0.45,0.42,0.39,0.36,0.33,0.30,0.27,0.23,0.20,0.17,0.14,0.10,0.07,0.04,0.00,-0.03,-0.06,-0.10,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.47,-0.50,-0.53,-0.56,-0.59,-0.61,-0.64,-0.66,-0.69,-0.71,-0.74,-0.76,-0.78,-0.80,-0.82,-0.84,-0.86,-0.88,-0.89,-0.91,-0.92,-0.94,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.98,-0.97,-0.96,-0.96,-0.95,-0.94,-0.93,-0.92,-0.91,-0.90,-0.89,-0.88,-0.86,-0.85,-0.84,-0.82,-0.81,-0.79,-0.78,-0.76,-0.75,-0.73,-0.71,-0.70,-0.68,-0.66,-0.64,-0.62,-0.60,-0.58,-0.56,-0.54,-0.52,-0.50,-0.48,-0.46,-0.44,-0.42,-0.39,-0.37,-0.35,-0.33,-0.31,-0.28,-0.26,-0.24,-0.21,-0.19,-0.17,-0.14,-0.12,-0.10,-0.07,-0.05,-0.02,0,0.02,0.05,0.07,0.10,0.12,0.14,0.17,0.19,0.21,0.24,0.26,0.28,0.31,0.33,0.35,0.37,0.39,0.42,0.44,0.46,0.48,0.50,0.52,0.54,0.56,0.58,0.60,0.62,0.64,0.66,0.68,0.70,0.71,0.73,0.75,0.76,0.78,0.79,0.81,0.82,0.84,0.85,0.86,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1.00,0.99,0.98,0.96,0.94,0.91,0.88,0.85,0.82,0.78,0.74,0.70,0.66,0.62,0.57,0.53,0.48,0.44,0.40,0.35,0.31,0.27,0.23,0.20,0.16,0.13,0.10,0.08,0.05,0.04,0.02,0.01,0.00,0\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.27,-0.43,-0.60,-0.82,-1.05,-1.32,-1.61,-1.92,-2.26,-2.63,-3.01,-3.41,-3.83,-4.27,-4.73,-5.21,-5.70,-6.21,-6.73,-7.26,-7.80,-8.37,-8.92,-9.51,-10.09,-10.68,-11.26,-11.87,-12.47,-13.08,-13.70,-14.30,-14.92,-15.53,-16.14,-16.74,-17.36,-17.96,-18.56,-19.15,-19.74,-20.31,-20.88,-21.45,-22.00,-22.53,-23.06,-23.58,-24.08,-24.57,-25.04,-25.50,-25.94,-26.37,-26.77,-27.15,-27.52,-27.86,-28.18,-28.48,-28.75,-29,-29.23,-29.42,-29.59,-29.74,-29.86,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.95,-29.80,-29.56,-29.24,-28.82,-28.34,-27.78,-27.15,-26.47,-25.72,-24.92,-24.07,-23.19,-22.25,-21.30,-20.30,-19.30,-18.27,-17.23,-16.19,-15.13,-14.08,-13.03,-12.01,-10.98,-9.97,-9.00,-8.06,-7.13,-6.25,-5.42,-4.62,-3.88,-3.20,-2.56,-1.99,-1.48,-1.04,-0.68,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.90,0.91,0.91,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_ANGLE=0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.20,0.21,0.22,0.22,0.23,0.24,0.25,0.27,0.28,0.29,0.30,0.31,0.31,0.32,0.33,0.34,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.92,0.92,0.92,0.93,0.93,0.94,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.63,0.62,0.62,0.61,0.61,0.61,0.60,0.60,0.60,0.59,0.59,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.55,0.55,0.54,0.54,0.54,0.53,0.53,0.53,0.52,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.55,0.55,0.56,0.57,0.58,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.72,0.73,0.74,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.92,0.92,0.92,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.81,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.78,0.78,0.78,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.72,0.72,0.71,0.71,0.71,0.70,0.70,0.70,0.70,0.70,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.03,0.05,0.07,0.10,0.12,0.13,0.12,0.10,0.08,0.05,0.03,0.02,0.02,0.04,0.07,0.11,0.13,0.14,0.13,0.11,0.08,0.05,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.11,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.16,-0.16,-0.17,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.24,-0.25,-0.25,-0.25,-0.23,-0.22,-0.21,-0.20,-0.19,-0.19,-0.21,-0.24,-0.26,-0.28,-0.29,-0.29,-0.28,-0.26,-0.25,-0.23,-0.21,-0.19,-0.17,-0.16,-0.14,-0.13,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_05.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_Z=-0.38,-1.45,-3.13,-5.26,-7.80,-10.58,-13.51,-16.49,-19.42,-22.20,-24.74,-26.87,-28.55,-29.62,-30,-29.84,-29.37,-28.62,-27.61,-26.38,-24.91,-23.26,-21.44,-19.48,-17.35,-15.13,-12.81,-10.40,-7.91,-5.42,-2.90,-0.31,2.24,4.77,7.23,9.69,12.08,14.35,16.57,18.64,20.59,22.40,24.06,25.54,26.84,27.93,28.81,29.46,29.86,30,29.85,29.42,28.75,27.85,26.79,25.54,24.16,22.68,21.12,19.47,17.80,16.08,14.34,12.66,11.00,9.37,7.84,6.38,5.02,3.80,2.72,1.79,1.03,0.47,0.12,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.03,-0.10,-0.21,-0.35,-0.52,-0.71,-0.90,-1.10,-1.29,-1.48,-1.65,-1.79,-1.90,-1.97,-2,-1.99,-1.96,-1.91,-1.84,-1.76,-1.66,-1.55,-1.43,-1.30,-1.16,-1.01,-0.85,-0.69,-0.53,-0.36,-0.19,-0.02,0.15,0.32,0.48,0.65,0.81,0.96,1.10,1.24,1.37,1.49,1.60,1.70,1.79,1.86,1.92,1.96,1.99,2,1.99,1.96,1.92,1.86,1.79,1.70,1.61,1.51,1.41,1.30,1.19,1.07,0.96,0.84,0.73,0.62,0.52,0.43,0.33,0.25,0.18,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=0.22,0.87,1.83,3.08,4.56,6.23,8.01,9.87,11.78,13.72,15.61,17.45,19.20,20.80,22.27,23.53,24.57,25.33,25.83,26,26.00,25.99,25.98,25.97,25.94,25.92,25.88,25.84,25.79,25.73,25.66,25.58,25.49,25.39,25.27,25.15,25.01,24.86,24.70,24.52,24.33,24.12,23.90,23.66,23.41,23.14,22.86,22.55,22.23,21.89,21.54,21.16,20.77,20.35,19.92,19.47,19,18.35,17.50,16.49,15.32,14.06,12.71,11.30,9.89,8.48,7.09,5.77,4.56,3.43,2.45,1.60,0.92,0.42,0.11,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=-0.03,-0.10,-0.21,-0.36,-0.53,-0.72,-0.92,-1.14,-1.36,-1.58,-1.80,-2.01,-2.22,-2.40,-2.57,-2.72,-2.83,-2.92,-2.98,-3,-2.94,-2.78,-2.51,-2.14,-1.69,-1.15,-0.53,0.14,0.89,1.70,2.55,3.45,4.38,5.34,6.33,7.33,8.35,9.37,10.40,11.40,12.41,13.38,14.33,15.25,16.14,16.99,17.77,18.51,19.20,19.83,20.37,20.85,21.25,21.58,21.81,21.95,22,21.80,21.24,20.38,19.24,17.89,16.36,14.70,12.99,11.23,9.46,7.76,6.16,4.67,3.34,2.19,1.26,0.58,0.15,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.01,0.05,0.11,0.19,0.27,0.36,0.45,0.53,0.60,0.66,0.70,0.73,0.74,0.73,0.69,0.64,0.57,0.50,0.42,0.34,0.27,0.19,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.02,-0.07,-0.16,-0.26,-0.38,-0.50,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.99,-0.98,-0.95,-0.91,-0.86,-0.80,-0.74,-0.67,-0.60,-0.52,-0.43,-0.35,-0.26,-0.17,-0.08,0.01,0.10,0.18,0.26,0.34,0.41,0.48,0.54,0.60,0.65,0.70,0.74,0.78,0.81,0.85,0.87,0.90,0.92,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.99,0.97,0.94,0.91,0.86,0.80,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.20,0.14,0.09,0.06,0.03,0.01,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.01,-0.03,-0.07,-0.11,-0.16,-0.21,-0.26,-0.31,-0.35,-0.39,-0.41,-0.42,-0.41,-0.40,-0.37,-0.33,-0.29,-0.24,-0.18,-0.12,-0.07,-0.01,0.05,0.11,0.16,0.20,0.24,0.27,0.28,0.29,0.29,0.27,0.25,0.23,0.19,0.16,0.11,0.07,0.02,-0.03,-0.09,-0.14,-0.19,-0.24,-0.29,-0.34,-0.39,-0.43,-0.47,-0.50,-0.53,-0.55,-0.57,-0.58,-0.58,-0.58,-0.57,-0.55,-0.52,-0.50,-0.46,-0.43,-0.39,-0.35,-0.31,-0.27,-0.23,-0.19,-0.15,-0.12,-0.08,-0.06,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_06.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,-0.04,-0.17,-0.36,-0.64,-0.98,-1.39,-1.85,-2.37,-2.95,-3.58,-4.24,-4.95,-5.70,-6.49,-7.28,-8.12,-8.97,-9.84,-10.71,-11.60,-12.50,-13.40,-14.29,-15.16,-16.03,-16.88,-17.72,-18.51,-19.30,-20.05,-20.76,-21.42,-22.05,-22.63,-23.15,-23.61,-24.02,-24.36,-24.64,-24.83,-24.96,-25,-24.95,-24.81,-24.58,-24.27,-23.88,-23.41,-22.88,-22.28,-21.63,-20.93,-20.18,-19.37,-18.55,-17.68,-16.80,-15.89,-14.98,-14.03,-13.09,-12.15,-11.20,-10.28,-9.36,-8.46,-7.59,-6.73,-5.91,-5.12,-4.38,-3.68,-3.03,-2.43,-1.89,-1.41,-1.00,-0.64,-0.37,-0.17,-0.04,0,-0.01,-0.03,-0.08,-0.13,-0.21,-0.29,-0.40,-0.51,-0.64,-0.79,-0.95,-1.12,-1.30,-1.50,-1.71,-1.93,-2.16,-2.40,-2.65,-2.91,-3.19,-3.47,-3.76,-4.07,-4.38,-4.70,-5.03,-5.37,-5.71,-6.06,-6.42,-6.78,-7.15,-7.54,-7.93,-8.31,-8.71,-9.11,-9.52,-9.93,-10.35,-10.77,-11.20,-11.63,-12.06,-12.50,-12.94,-13.38,-13.83,-14.28,-14.72,-15.17,-15.63,-16.08,-16.54,-17,-17.48,-17.94,-18.36,-18.76,-19.13,-19.48,-19.81,-20.11,-20.39,-20.66,-20.90,-21.13,-21.34,-21.53,-21.71,-21.87,-22.02,-22.16,-22.28,-22.39,-22.49,-22.57,-22.65,-22.72,-22.78,-22.83,-22.87,-22.90,-22.93,-22.96,-22.97,-22.99,-22.99,-23.00,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-22.90,-22.61,-22.13,-21.49,-20.70,-19.75,-18.66,-17.45,-16.13,-14.70,-13.18,-11.58,-9.92,-8.23,-6.46,-4.66,-2.84,-1,0.84,2.66,4.46,6.23,7.92,9.58,11.18,12.70,14.13,15.45,16.66,17.75,18.70,19.49,20.13,20.61,20.90,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20.96,20.86,20.70,20.47,20.18,19.84,19.45,19.01,18.53,18.00,17.44,16.85,16.23,15.58,14.91,14.21,13.51,12.79,12.06,11.33,10.59,9.85,9.12,8.41,7.69,6.98,6.30,5.64,4.99,4.38,3.79,3.24,2.72,2.24,1.79,1.39,1.03,0.73,0.47,0.27,0.12,0.03,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.00,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.14,-0.17,-0.21,-0.26,-0.30,-0.36,-0.42,-0.48,-0.55,-0.63,-0.71,-0.80,-0.90,-1,-1.11,-1.23,-1.35,-1.46,-1.58,-1.69,-1.81,-1.93,-2.04,-2.16,-2.28,-2.39,-2.51,-2.63,-2.74,-2.86,-2.97,-3.09,-3.20,-3.32,-3.43,-3.54,-3.66,-3.77,-3.88,-3.99,-4.09,-4.20,-4.31,-4.41,-4.52,-4.62,-4.72,-4.82,-4.92,-5.01,-5.11,-5.20,-5.29,-5.38,-5.47,-5.56,-5.64,-5.72,-5.80,-5.88,-5.96,-6.03,-6.10,-6.17,-6.24,-6.30,-6.36,-6.42,-6.48,-6.53,-6.58,-6.63,-6.68,-6.72,-6.76,-6.80,-6.83,-6.86,-6.89,-6.92,-6.94,-6.96,-6.97,-6.98,-6.99,-7.00,-7,-6.96,-6.85,-6.66,-6.41,-6.11,-5.74,-5.32,-4.86,-4.34,-3.79,-3.21,-2.59,-1.95,-1.29,-0.61,0.09,0.79,1.50,2.21,2.91,3.61,4.29,4.95,5.59,6.21,6.79,7.34,7.86,8.32,8.74,9.11,9.41,9.66,9.85,9.96,10,9.99,9.96,9.92,9.86,9.78,9.69,9.58,9.46,9.33,9.19,9.03,8.86,8.68,8.49,8.29,8.08,7.86,7.64,7.41,7.17,6.93,6.68,6.43,6.18,5.92,5.66,5.40,5.13,4.87,4.60,4.34,4.08,3.82,3.57,3.32,3.07,2.83,2.59,2.36,2.14,1.92,1.71,1.51,1.32,1.14,0.97,0.81,0.67,0.54,0.42,0.31,0.22,0.14,0.08,0.04,0.01,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.05,-0.08,-0.11,-0.15,-0.19,-0.24,-0.29,-0.34,-0.40,-0.46,-0.52,-0.58,-0.65,-0.72,-0.79,-0.86,-0.93,-1,-1.07,-1.14,-1.21,-1.28,-1.35,-1.42,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2.00,-2,-2.00,-2.00,-1.99,-1.98,-1.97,-1.96,-1.94,-1.93,-1.91,-1.89,-1.87,-1.84,-1.82,-1.79,-1.76,-1.73,-1.70,-1.67,-1.64,-1.60,-1.57,-1.53,-1.49,-1.45,-1.42,-1.38,-1.34,-1.30,-1.26,-1.21,-1.17,-1.13,-1.09,-1.05,-1.01,-0.96,-0.92,-0.88,-0.84,-0.80,-0.76,-0.71,-0.67,-0.63,-0.60,-0.56,-0.52,-0.48,-0.45,-0.41,-0.38,-0.34,-0.31,-0.28,-0.25,-0.22,-0.20,-0.17,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.34,0.34,0.33,0.32,0.32,0.31,0.30,0.30,0.29,0.29,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.28,0.28,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.43,0.44,0.44,0.44,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.34,-0.59,-0.91,-1.29,-1.73,-2.22,-2.77,-3.35,-4.00,-4.67,-5.40,-6.14,-6.94,-7.75,-8.59,-9.45,-10.32,-11.21,-12.13,-13.05,-13.97,-14.89,-15.81,-16.73,-17.64,-18.53,-19.42,-20.30,-21.15,-21.98,-22.79,-23.56,-24.30,-25.03,-25.70,-26.34,-26.93,-27.48,-27.99,-28.44,-28.84,-29.18,-29.47,-29.70,-29.86,-29.97,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.95,-29.80,-29.56,-29.24,-28.82,-28.34,-27.78,-27.15,-26.47,-25.72,-24.92,-24.07,-23.19,-22.25,-21.30,-20.30,-19.30,-18.27,-17.23,-16.19,-15.13,-14.08,-13.03,-12.01,-10.98,-9.97,-9.00,-8.06,-7.13,-6.25,-5.42,-4.62,-3.88,-3.20,-2.56,-1.99,-1.48,-1.04,-0.68,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.06,-0.11,-0.17,-0.24,-0.33,-0.43,-0.54,-0.67,-0.81,-0.96,-1.12,-1.30,-1.49,-1.69,-1.90,-2.13,-2.36,-2.61,-2.87,-3.14,-3.43,-3.73,-4.03,-4.35,-4.68,-5.02,-5.37,-5.74,-6.12,-6.50,-6.89,-7.31,-7.73,-8.16,-8.60,-9.05,-9.51,-9.98,-10.47,-10.96,-11.47,-11.99,-12.51,-13.05,-13.60,-14.16,-14.73,-15.31,-15.89,-16.49,-17.10,-17.72,-18.36,-19,-19.69,-20.35,-20.98,-21.58,-22.15,-22.71,-23.24,-23.75,-24.23,-24.70,-25.14,-25.56,-25.96,-26.33,-26.69,-27.02,-27.34,-27.64,-27.92,-28.18,-28.42,-28.64,-28.85,-29.04,-29.21,-29.36,-29.49,-29.61,-29.72,-29.80,-29.88,-29.93,-29.97,-29.99,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.86,-29.46,-28.81,-27.93,-26.86,-25.56,-24.08,-22.43,-20.63,-18.68,-16.61,-14.43,-12.16,-9.85,-7.44,-4.99,-2.50,0,2.50,4.99,7.44,9.85,12.16,14.43,16.61,18.68,20.63,22.43,24.08,25.56,26.86,27.93,28.81,29.46,29.86,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.95,29.80,29.56,29.24,28.82,28.34,27.78,27.15,26.47,25.72,24.92,24.07,23.19,22.25,21.30,20.30,19.30,18.27,17.23,16.19,15.13,14.08,13.03,12.01,10.98,9.97,9.00,8.06,7.13,6.25,5.42,4.62,3.88,3.20,2.56,1.99,1.48,1.04,0.68,0.38,0.17,0.04,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.24,0.27,0.30,0.33,0.36,0.38,0.40,0.41,0.42,0.42,0.42,0.41,0.40,0.38,0.36,0.33,0.30,0.27,0.24,0.20,0.15,0.11,0.08,0.05,0.02,0.01,0.00,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.21,0.20,0.19,0.18,0.16,0.15,0.13,0.11,0.09,0.08,0.06,0.05,0.03,0.02,0.01,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.63,-0.63,-0.63,-0.63,-0.64,-0.64,-0.65,-0.65,-0.65,-0.66,-0.67,-0.67,-0.68,-0.68,-0.69,-0.70,-0.70,-0.71,-0.72,-0.72,-0.73,-0.74,-0.75,-0.75,-0.76,-0.77,-0.78,-0.79,-0.79,-0.80,-0.81,-0.82,-0.83,-0.83,-0.84,-0.85,-0.86,-0.86,-0.87,-0.88,-0.89,-0.89,-0.90,-0.91,-0.92,-0.92,-0.93,-0.93,-0.94,-0.95,-0.95,-0.96,-0.96,-0.97,-0.97,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.98,-0.97,-0.96,-0.96,-0.95,-0.94,-0.93,-0.92,-0.91,-0.90,-0.89,-0.88,-0.87,-0.86,-0.85,-0.84,-0.82,-0.81,-0.80,-0.79,-0.77,-0.76,-0.75,-0.74,-0.73,-0.71,-0.70,-0.69,-0.68,-0.66,-0.65,-0.64,-0.63,-0.62,-0.61,-0.60,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.53,-0.53,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.56,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.57,0.54,0.51,0.46,0.42,0.37,0.33,0.28,0.24,0.19,0.15,0.11,0.08,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.21,0.29,0.37,0.45,0.53,0.61,0.68,0.74,0.80,0.84,0.87,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.80,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.92,-0.94,-0.96,-0.97,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.93,-0.92,-0.92,-0.92,-0.91,-0.91,-0.90,-0.90,-0.90,-0.89,-0.89,-0.88,-0.88,-0.88,-0.87,-0.87,-0.86,-0.86,-0.86,-0.85,-0.85,-0.85,-0.84,-0.84,-0.83,-0.83,-0.83,-0.82,-0.82,-0.82,-0.81,-0.81,-0.81,-0.81,-0.80,-0.80,-0.80,-0.80,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.48,0.48,0.48,0.48,0.48,0.47,0.47,0.47,0.47,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.44,0.43,0.43,0.43,0.42,0.42,0.41,0.41,0.41,0.40,0.40,0.39,0.39,0.39,0.38,0.38,0.38,0.37,0.37,0.37,0.36,0.36,0.35,0.34,0.34,0.33,0.32,0.31,0.30,0.30,0.29,0.28,0.28,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.27,0.28,0.28,0.28,0.28,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.31,0.31,0.32,0.32,0.32,0.33,0.33,0.34,0.34,0.35,0.35,0.36,0.36,0.37,0.37,0.38,0.38,0.39,0.39,0.40,0.40,0.40,0.41,0.41,0.42,0.42,0.43,0.43,0.44,0.44,0.44,0.45,0.45,0.46,0.46,0.46,0.47,0.47,0.47,0.48,0.48,0.48,0.48,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_FORM=-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.80,-0.81,-0.83,-0.84,-0.86,-0.87,-0.89,-0.92,-0.94,-0.96,-0.97,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.90,-0.90,-0.90,-0.90,-0.90,-0.89,-0.89,-0.89,-0.89,-0.89,-0.88,-0.88,-0.88,-0.88,-0.88,-0.87,-0.87,-0.87,-0.87,-0.87,-0.86,-0.86,-0.86,-0.86,-0.86,-0.85,-0.85,-0.85,-0.85,-0.85,-0.84,-0.84,-0.84,-0.84,-0.84,-0.84,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.81,-0.81,-0.81,-0.81,-0.81,-0.81,-0.81,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.96,0.96,0.96,0.95,0.95,0.94,0.94,0.94,0.93,0.93,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.78,0.78,0.78,0.78,0.78,0.78,0.78,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.57,0.54,0.51,0.46,0.42,0.37,0.33,0.28,0.24,0.19,0.15,0.11,0.08,0.05,0.03,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.21,0.29,0.37,0.45,0.53,0.61,0.68,0.74,0.80,0.84,0.87,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.04,0.04,0.05,0.05,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.14,0.15,0.15,0.16,0.17,0.17,0.18,0.19,0.19,0.20,0.21,0.21,0.22,0.23,0.24,0.24,0.25,0.26,0.26,0.27,0.28,0.29,0.29,0.30,0.31,0.32,0.32,0.33,0.34,0.35,0.35,0.36,0.37,0.38,0.38,0.39,0.40,0.40,0.41,0.42,0.43,0.43,0.44,0.45,0.45,0.46,0.47,0.47,0.48,0.49,0.49,0.50,0.51,0.51,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.59,0.59,0.60,0.60,0.61,0.61,0.61,0.62,0.62,0.62,0.63,0.63,0.63,0.63,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.63,0.63,0.62,0.62,0.61,0.61,0.60,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.51,0.50,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.42,0.40,0.39,0.38,0.37,0.36,0.34,0.33,0.32,0.31,0.30,0.28,0.27,0.26,0.25,0.24,0.23,0.22,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.09,-0.09,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.02,-0.02,-0.01,-0.00,0,0.00,0.01,0.01,0.01,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.04,0.03,0.01,-0.00,-0.02,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.21,-0.17,-0.13,-0.10,-0.09,-0.12,-0.16,-0.20,-0.23,-0.24,-0.21,-0.17,-0.14,-0.13,-0.16,-0.20,-0.23,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.20,-0.20,-0.20,-0.20,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.08,-0.11,-0.13,-0.16,-0.19,-0.23,-0.26,-0.29,-0.33,-0.36,-0.40,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.66,-0.70,-0.73,-0.76,-0.80,-0.82,-0.85,-0.88,-0.90,-0.92,-0.94,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-1,-0.99,-0.98,-0.97,-0.95,-0.94,-0.93,-0.92,-0.92,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-0.99,-0.99,-0.97,-0.96,-0.94,-0.93,-0.91,-0.88,-0.86,-0.83,-0.80,-0.77,-0.74,-0.71,-0.68,-0.64,-0.61,-0.57,-0.54,-0.50,-0.47,-0.43,-0.40,-0.37,-0.33,-0.30,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.11,-0.09,-0.07,-0.05,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_07.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.31,-0.33,-0.35,-0.37,-0.39,-0.41,-0.43,-0.45,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.58,-0.59,-0.61,-0.62,-0.64,-0.65,-0.66,-0.67,-0.69,-0.70,-0.71,-0.71,-0.72,-0.73,-0.73,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.74,-0.74,-0.72,-0.70,-0.68,-0.67,-0.64,-0.62,-0.61,-0.59,-0.58,-0.56,-0.55,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.64,-0.65,-0.66,-0.67,-0.68,-0.70,-0.71,-0.72,-0.73,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.77,-0.78,-0.80,-0.81,-0.83,-0.85,-0.87,-0.89,-0.91,-0.93,-0.95,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.90,-0.87,-0.84,-0.82,-0.79,-0.75,-0.72,-0.69,-0.65,-0.63,-0.61,-0.61,-0.60,-0.60,-0.60,-0.61,-0.65,-0.70,-0.74,-0.79,-0.82,-0.86,-0.89,-0.92,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.94,-0.93,-0.92,-0.90,-0.89,-0.88,-0.86,-0.85,-0.83,-0.81,-0.80,-0.78,-0.76,-0.75,-0.73,-0.71,-0.69,-0.67,-0.65,-0.63,-0.61,-0.59,-0.57,-0.55,-0.52,-0.50,-0.48,-0.46,-0.44,-0.42,-0.40,-0.37,-0.35,-0.33,-0.31,-0.29,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.03,-0.01,0.00,0.02,0.03,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.13,-0.30,-0.53,-0.81,-1.15,-1.54,-1.98,-2.47,-3.00,-3.57,-4.19,-4.84,-5.52,-6.23,-6.98,-7.75,-8.54,-9.35,-10.18,-11.01,-11.86,-12.72,-13.60,-14.45,-15.33,-16.19,-17.06,-17.91,-18.77,-19.59,-20.40,-21.21,-22.00,-22.76,-23.49,-24.20,-24.88,-25.52,-26.13,-26.70,-27.24,-27.75,-28.19,-28.60,-28.96,-29.27,-29.53,-29.73,-29.88,-29.97,-30,-29.97,-29.87,-29.70,-29.48,-29.20,-28.87,-28.48,-28.05,-27.57,-27.06,-26.49,-25.89,-25.26,-24.60,-23.91,-23.19,-22.45,-21.68,-20.90,-20.10,-19.30,-18.47,-17.64,-16.80,-15.94,-15.11,-14.25,-13.42,-12.58,-11.75,-10.94,-10.14,-9.34,-8.56,-7.80,-7.07,-6.36,-5.68,-5.02,-4.39,-3.79,-3.23,-2.71,-2.22,-1.78,-1.38,-1.03,-0.73,-0.47,-0.27,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.67,1.01,1.41,1.86,2.36,2.88,3.46,4.05,4.66,5.29,5.94,6.59,7.25,7.89,8.53,9.15,9.76,10.35,10.91,11.43,11.93,12.37,12.78,13.13,13.43,13.67,13.85,13.96,14,13.99,13.97,13.94,13.89,13.84,13.77,13.68,13.59,13.49,13.37,13.25,13.12,12.97,12.82,12.66,12.50,12.32,12.13,11.95,11.75,11.54,11.33,11.12,10.90,10.67,10.44,10.20,9.96,9.72,9.47,9.23,8.98,8.72,8.47,8.20,7.95,7.69,7.43,7.16,6.90,6.64,6.38,6.12,5.86,5.60,5.35,5.09,4.84,4.59,4.35,4.11,3.87,3.64,3.41,3.19,2.96,2.75,2.54,2.34,2.14,1.95,1.77,1.59,1.42,1.26,1.11,0.97,0.83,0.70,0.59,0.48,0.38,0.30,0.22,0.15,0.10,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.97,-9.90,-9.78,-9.62,-9.42,-9.20,-8.94,-8.65,-8.35,-8.02,-7.69,-7.34,-6.98,-6.61,-6.23,-5.86,-5.49,-5.13,-4.77,-4.42,-4.09,-3.77,-3.47,-3.18,-2.93,-2.70,-2.49,-2.32,-2.19,-2.08,-2.02,-2,-2.01,-2.02,-2.05,-2.08,-2.13,-2.19,-2.25,-2.32,-2.40,-2.49,-2.59,-2.69,-2.80,-2.91,-3.03,-3.16,-3.29,-3.43,-3.58,-3.72,-3.87,-4.03,-4.19,-4.35,-4.51,-4.68,-4.85,-5.02,-5.19,-5.36,-5.54,-5.71,-5.89,-6.06,-6.24,-6.42,-6.59,-6.76,-6.94,-7.11,-7.27,-7.44,-7.60,-7.76,-7.92,-8.07,-8.22,-8.37,-8.51,-8.65,-8.78,-8.91,-9.03,-9.14,-9.25,-9.36,-9.45,-9.54,-9.63,-9.70,-9.77,-9.83,-9.88,-9.92,-9.96,-9.98,-10.00,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.96,-9.91,-9.84,-9.75,-9.65,-9.54,-9.41,-9.27,-9.12,-8.97,-8.81,-8.64,-8.46,-8.29,-8.11,-7.93,-7.76,-7.58,-7.41,-7.24,-7.08,-6.93,-6.78,-6.65,-6.52,-6.41,-6.30,-6.22,-6.14,-6.08,-6.04,-6.01,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.17,0.21,0.25,0.29,0.33,0.38,0.42,0.47,0.52,0.56,0.61,0.65,0.70,0.74,0.78,0.82,0.85,0.88,0.91,0.94,0.96,0.98,0.99,1.00,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.91,0.90,0.89,0.87,0.85,0.84,0.82,0.80,0.78,0.77,0.75,0.73,0.71,0.69,0.67,0.64,0.62,0.60,0.58,0.56,0.54,0.51,0.49,0.47,0.45,0.43,0.40,0.38,0.36,0.34,0.32,0.30,0.28,0.26,0.24,0.22,0.20,0.19,0.17,0.15,0.14,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.37,0.37,0.36,0.35,0.35,0.34,0.34,0.33,0.32,0.32,0.31,0.31,0.30,0.30,0.30,0.29,0.29,0.29,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.10,-0.38,-0.81,-1.38,-2.06,-2.82,-3.65,-4.51,-5.39,-6.27,-7.12,-7.92,-8.67,-9.33,-9.91,-10.37,-10.71,-10.93,-11,-10.86,-10.47,-9.85,-9.07,-8.14,-7.12,-6.05,-4.95,-3.88,-2.86,-1.93,-1.15,-0.53,-0.14,0,-0.20,-0.81,-1.74,-2.85,-5.47,-8.12,-10.39,-12.25,-15.00,-17.41,-19.57,-21.50,-23.19,-24.67,-25.95,-27.04,-27.95,-28.70,-29.26,-29.67,-29.92,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.99,-29.94,-29.87,-29.77,-29.65,-29.50,-29.32,-29.13,-28.90,-28.66,-28.39,-28.11,-27.80,-27.48,-27.14,-26.78,-26.40,-26.00,-25.60,-25.17,-24.73,-24.29,-23.82,-23.35,-22.86,-22.37,-21.86,-21.35,-20.84,-20.30,-19.77,-19.23,-18.69,-18.14,-17.58,-17.03,-16.47,-15.91,-15.35,-14.79,-14.23,-13.67,-13.11,-12.56,-12.01,-11.46,-10.92,-10.38,-9.84,-9.33,-8.81,-8.30,-7.79,-7.30,-6.83,-6.35,-5.89,-5.45,-5.01,-4.59,-4.18,-3.79,-3.41,-3.05,-2.71,-2.38,-2.07,-1.78,-1.51,-1.26,-1.03,-0.82,-0.63,-0.47,-0.33,-0.21,-0.12,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.92,-29.68,-29.30,-28.79,-28.15,-27.39,-26.53,-25.57,-24.55,-23.43,-22.27,-21.04,-19.78,-18.49,-17.17,-15.83,-14.49,-13.18,-11.86,-10.58,-9.33,-8.12,-6.98,-5.87,-4.85,-3.91,-3.04,-2.28,-1.61,-1.05,-0.60,-0.27,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.05,0.10,0.17,0.23,0.29,0.34,0.38,0.40,0.41,0.40,0.36,0.32,0.27,0.21,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.15,-0.18,-0.22,-0.24,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.40,-0.41,-0.42,-0.43,-0.44,-0.45,-0.46,-0.47,-0.47,-0.48,-0.49,-0.50,-0.51,-0.51,-0.52,-0.53,-0.53,-0.54,-0.54,-0.55,-0.55,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59\nPARAM_MOUTH_FORM=-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.66,-0.66,-0.66,-0.67,-0.67,-0.68,-0.68,-0.69,-0.69,-0.69,-0.70,-0.70,-0.70,-0.71,-0.71,-0.71,-0.72,-0.72,-0.72,-0.73,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.75,-0.75,-0.75,-0.75,-0.75,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.75,-0.72,-0.68,-0.65,-0.62,-0.58,-0.54,-0.51,-0.49,-0.46,-0.43,-0.41,-0.39,-0.37,-0.35,-0.34,-0.33,-0.32,-0.32,-0.31,-0.31,-0.31,-0.31,-0.31,-0.32,-0.32,-0.33,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.40,-0.41,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.53,-0.55,-0.57,-0.59,-0.61,-0.63,-0.65,-0.67,-0.70,-0.72,-0.75,-0.76,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.77,-0.78,-0.78,-0.78,-0.78,-0.78,-0.79,-0.79,-0.79,-0.80,-0.80,-0.80,-0.81,-0.81,-0.82,-0.82,-0.83,-0.83,-0.84,-0.84,-0.85,-0.86,-0.86,-0.87,-0.88,-0.89,-0.89,-0.90,-0.91,-0.92,-0.92,-0.93,-0.94,-0.95,-0.95,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.93,-0.92,-0.91,-0.91,-0.90,-0.90,-0.89,-0.88,-0.88,-0.87,-0.86,-0.86,-0.85,-0.84,-0.84,-0.83,-0.82,-0.82,-0.81,-0.80,-0.80,-0.79,-0.78,-0.78,-0.77,-0.76,-0.76,-0.75,-0.75,-0.74,-0.73,-0.73,-0.72,-0.72,-0.71,-0.71,-0.70,-0.70,-0.69,-0.69,-0.68,-0.68,-0.67,-0.67,-0.66,-0.66,-0.66,-0.66,-0.65,-0.65,-0.65,-0.65,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.61,0.29,0.07,0,0.21,0.54,0.78,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.81,0.61,0.29,0.07,0,0.19,0.51,0.73,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.80,0.81,0.82,0.83,0.83,0.84,0.85,0.86,0.86,0.87,0.87,0.87,0.66,0.31,0.08,0,0.20,0.54,0.77,0.85,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.83,0.84,0.85,0.85,0.85,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.13,-0.15,-0.16,-0.18,-0.19,-0.21,-0.22,-0.24,-0.25,-0.27,-0.29,-0.30,-0.32,-0.33,-0.35,-0.37,-0.38,-0.40,-0.41,-0.43,-0.44,-0.45,-0.47,-0.48,-0.50,-0.51,-0.52,-0.53,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.62,-0.63,-0.64,-0.64,-0.65,-0.65,-0.65,-0.66,-0.66,-0.66,-0.66,-0.66,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.68,-0.68,-0.68,-0.68,-0.69,-0.69,-0.69,-0.70,-0.70,-0.70,-0.71,-0.71,-0.72,-0.72,-0.73,-0.73,-0.74,-0.74,-0.75,-0.75,-0.76,-0.76,-0.77,-0.78,-0.78,-0.79,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80,-0.80\nPARAM_BROW_L_SIDE=-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.16,-0.19,-0.22,-0.25,-0.26,-0.28,-0.30,-0.31,-0.32,-0.34,-0.35,-0.37,-0.38,-0.39,-0.40,-0.41,-0.42,-0.44,-0.45,-0.46,-0.46,-0.47,-0.48,-0.49,-0.50,-0.51,-0.51,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.56,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.43,0.42,0.41,0.41,0.40,0.39,0.39,0.38,0.38,0.37,0.36,0.36,0.35,0.35,0.34,0.34,0.33,0.33,0.33,0.32,0.32,0.31,0.31,0.31,0.30,0.30,0.30,0.30,0.29,0.29,0.29,0.29,0.29,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.26,0.26,0.26,0.25,0.25,0.25,0.25,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.48,-0.50,-0.52,-0.54,-0.55,-0.57,-0.59,-0.60,-0.62,-0.63,-0.64,-0.66,-0.67,-0.68,-0.69,-0.70,-0.71,-0.72,-0.72,-0.73,-0.73,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.73,-0.71,-0.69,-0.68,-0.66,-0.64,-0.62,-0.60,-0.59,-0.58,-0.56,-0.55,-0.54,-0.53,-0.52,-0.52,-0.51,-0.51,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.53,-0.53,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.61,-0.62,-0.63,-0.64,-0.66,-0.67,-0.68,-0.69,-0.70,-0.72,-0.73,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.75,-0.76,-0.77,-0.79,-0.81,-0.83,-0.85,-0.87,-0.89,-0.91,-0.93,-0.95,-0.96,-0.97,-0.99,-0.99,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.95,-0.93,-0.91,-0.89,-0.86,-0.83,-0.80,-0.76,-0.73,-0.69,-0.66,-0.61,-0.59,-0.58,-0.57,-0.56,-0.56,-0.56,-0.57,-0.62,-0.67,-0.72,-0.76,-0.81,-0.84,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.94,-0.93,-0.91,-0.90,-0.89,-0.87,-0.86,-0.84,-0.83,-0.81,-0.79,-0.78,-0.76,-0.74,-0.72,-0.70,-0.68,-0.66,-0.64,-0.62,-0.60,-0.58,-0.56,-0.54,-0.52,-0.49,-0.47,-0.45,-0.43,-0.41,-0.39,-0.36,-0.34,-0.32,-0.30,-0.28,-0.26,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.06,-0.04,-0.03,-0.01,0.01,0.02,0.04,0.05,0.06,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.07,-0.08,-0.08,-0.09,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.17,-0.18,-0.18,-0.19,-0.20,-0.20,-0.21,-0.21,-0.22,-0.22,-0.22,-0.23,-0.23,-0.24,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.29,-0.29,-0.30,-0.30,-0.31,-0.32,-0.33,-0.34,-0.34,-0.35,-0.37,-0.38,-0.39,-0.40,-0.41,-0.43,-0.44,-0.45,-0.47,-0.48,-0.50,-0.52,-0.53,-0.55,-0.57,-0.59,-0.60,-0.62,-0.64,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65,-0.65\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.97,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.61,0.29,0.07,0,0.21,0.54,0.78,0.86,0.86,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.85,0.85,0.84,0.84,0.84,0.83,0.83,0.82,0.81,0.61,0.29,0.07,0,0.19,0.51,0.73,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.81,0.81,0.82,0.83,0.84,0.85,0.86,0.86,0.87,0.88,0.88,0.88,0.67,0.32,0.08,0,0.21,0.54,0.78,0.85,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.76,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.63,0.30,0.07,0,0.20,0.53,0.75,0.83,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.00,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12,0.14,0.15,0.16,0.18,0.19,0.20,0.22,0.23,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.35,0.37,0.38,0.40,0.42,0.43,0.45,0.46,0.48,0.49,0.51,0.53,0.54,0.56,0.57,0.59,0.60,0.61,0.63,0.64,0.66,0.67,0.68,0.70,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.80,0.81,0.81,0.82,0.83,0.83,0.84,0.84,0.84,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85\nPARAM_EYE_BALL_X=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.90,-0.80,-0.67,-0.53,-0.38,-0.23,-0.08,0.05,0.18,0.28,0.36,0.41,0.43,0.43,0.43,0.41,0.38,0.32,0.24,0.15,0.06,-0.02,-0.10,-0.17,-0.25,-0.32,-0.39,-0.45,-0.51,-0.57,-0.63,-0.68,-0.73,-0.77,-0.81,-0.85,-0.89,-0.92,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.97,-0.97,-0.96,-0.96,-0.95,-0.95,-0.94,-0.93,-0.92,-0.91,-0.88,-0.84,-0.77,-0.68,-0.61,-0.55,-0.45,-0.35,-0.28,-0.23,-0.16,-0.10,-0.04,0.01,0.05,0.09,0.12,0.14,0.16,0.17,0.18,0.19,0.19,0.19,0.18,0.18,0.16,0.15,0.13,0.11,0.09,0.07,0.04,0.01,-0.02,-0.05,-0.09,-0.12,-0.16,-0.20,-0.24,-0.29,-0.33,-0.38,-0.43,-0.48,-0.53,-0.58,-0.63,-0.69,-0.74,-0.80,-0.86,-0.90,-0.91,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.90,-0.89,-0.88,-0.86,-0.84,-0.82,-0.79,-0.76,-0.73,-0.70,-0.67,-0.63,-0.59,-0.54,-0.50,-0.45,-0.40,-0.35,-0.30,-0.26,-0.21,-0.17,-0.14,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.01,-0.02,-0.03,-0.05,-0.06,-0.08,-0.10,-0.12,-0.14,-0.17,-0.19,-0.22,-0.24,-0.27,-0.30,-0.33,-0.36,-0.39,-0.42,-0.45,-0.48,-0.51,-0.54,-0.57,-0.60,-0.62,-0.65,-0.67,-0.70,-0.72,-0.74,-0.76,-0.78,-0.79,-0.81,-0.82,-0.83,-0.83,-0.84,-0.84,-0.84,-0.83,-0.82,-0.81,-0.80,-0.78,-0.76,-0.74,-0.71,-0.69,-0.66,-0.63,-0.60,-0.57,-0.54,-0.51,-0.47,-0.44,-0.41,-0.37,-0.34,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.09,-0.09,-0.10,-0.11,-0.11,-0.12,-0.13,-0.14,-0.15,-0.16,-0.17,-0.17,-0.18,-0.19,-0.19,-0.20,-0.20,-0.21,-0.21,-0.21,-0.20,-0.20,-0.19,-0.17,-0.16,-0.15,-0.14,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.14,-0.15,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.20,-0.20,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.22,-0.23,-0.24,-0.26,-0.28,-0.30,-0.33,-0.35,-0.37,-0.40,-0.42,-0.44,-0.46,-0.47,-0.48,-0.49,-0.50,-0.50,-0.49,-0.48,-0.45,-0.41,-0.37,-0.32,-0.27,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.01,0,0,0,0,0,0,0,0,-0.00,-0.04,-0.07,-0.10,-0.13,-0.16,-0.19,-0.21,-0.23,-0.25,-0.26,-0.27,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.30,-0.31,-0.32,-0.33,-0.34,-0.36,-0.37,-0.39,-0.41,-0.43,-0.45,-0.47,-0.50,-0.52,-0.54,-0.57,-0.59,-0.62,-0.65,-0.67,-0.70,-0.72,-0.75,-0.77,-0.79,-0.82,-0.84,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1.00,-1.00,-1,-1.00,-0.99,-0.98,-0.97,-0.95,-0.93,-0.90,-0.88,-0.85,-0.82,-0.79,-0.75,-0.72,-0.68,-0.64,-0.60,-0.56,-0.52,-0.49,-0.45,-0.41,-0.37,-0.33,-0.30,-0.26,-0.23,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.05,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_08.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_ANGLE_Z=0,-0.03,-0.11,-0.25,-0.44,-0.68,-0.96,-1.28,-1.65,-2.06,-2.51,-2.99,-3.50,-4.04,-4.61,-5.21,-5.84,-6.49,-7.15,-7.82,-8.52,-9.22,-9.94,-10.67,-11.40,-12.13,-12.87,-13.60,-14.33,-15.06,-15.78,-16.48,-17.18,-17.85,-18.51,-19.16,-19.79,-20.39,-20.96,-21.50,-22.01,-22.49,-22.94,-23.35,-23.72,-24.04,-24.32,-24.56,-24.75,-24.89,-24.97,-25,-25.00,-25.00,-25.00,-25.00,-24.99,-24.98,-24.97,-24.96,-24.94,-24.92,-24.89,-24.85,-24.81,-24.77,-24.72,-24.65,-24.59,-24.51,-24.42,-24.33,-24.23,-24.11,-23.99,-23.85,-23.71,-23.55,-23.38,-23.20,-23,-22.75,-22.47,-22.14,-21.78,-21.40,-20.99,-20.55,-20.09,-19.62,-19.13,-18.63,-18.13,-17.61,-17.10,-16.58,-16.06,-15.55,-15.04,-14.55,-14.06,-13.59,-13.13,-12.70,-12.28,-11.90,-11.53,-11.19,-10.88,-10.61,-10.37,-10.16,-10,-9.85,-9.70,-9.57,-9.44,-9.32,-9.21,-9.10,-9.00,-8.91,-8.82,-8.73,-8.65,-8.57,-8.49,-8.41,-8.34,-8.27,-8.20,-8.13,-8.06,-7.99,-7.92,-7.85,-7.77,-7.70,-7.62,-7.54,-7.46,-7.37,-7.28,-7.19,-7.09,-6.99,-6.93,-6.88,-6.84,-6.79,-6.72,-6.61,-6.47,-6.29,-6.05,-5.76,-5.41,-5,-4.47,-3.92,-3.36,-2.79,-2.20,-1.62,-1.01,-0.40,0.23,0.85,1.48,2.12,2.77,3.42,4.06,4.72,5.37,6.03,6.70,7.36,8.01,8.68,9.33,9.99,10.65,11.29,11.94,12.58,13.21,13.83,14.46,15.07,15.68,16.28,16.86,17.44,18.01,18.56,19.10,19.63,20.16,20.66,21.14,21.62,22.08,22.52,22.95,23.35,23.74,24.11,24.46,24.80,25.11,25.40,25.66,25.91,26.13,26.33,26.51,26.65,26.78,26.87,26.94,26.99,27,26.99,26.98,26.95,26.91,26.86,26.80,26.72,26.64,26.54,26.43,26.31,26.18,26.04,25.88,25.72,25.54,25.35,25.15,24.94,24.72,24.48,24.24,23.98,23.71,23.43,23.14,22.83,22.52,22.19,21.84,21.49,21.13,20.76,20.38,19.97,19.56,19.14,18.71,18.27,17.81,17.34,16.86,16.36,15.86,15.35,14.82,14.28,13.73,13.16,12.59,12,11.40,10.81,10.24,9.69,9.15,8.62,8.12,7.62,7.14,6.68,6.24,5.80,5.39,4.99,4.60,4.23,3.89,3.55,3.22,2.92,2.63,2.36,2.10,1.86,1.63,1.41,1.22,1.03,0.87,0.71,0.58,0.45,0.35,0.25,0.18,0.11,0.06,0.03,0.01,0\nPARAM_BODY_ANGLE_X=0,-0.01,-0.05,-0.12,-0.20,-0.31,-0.43,-0.58,-0.74,-0.91,-1.09,-1.29,-1.49,-1.71,-1.93,-2.15,-2.38,-2.62,-2.85,-3.09,-3.32,-3.56,-3.78,-4.01,-4.22,-4.44,-4.64,-4.83,-5.02,-5.19,-5.34,-5.49,-5.62,-5.73,-5.82,-5.90,-5.95,-5.99,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.00,-6.00,-5.99,-5.99,-5.98,-5.97,-5.96,-5.94,-5.93,-5.91,-5.89,-5.87,-5.85,-5.82,-5.79,-5.76,-5.73,-5.70,-5.67,-5.63,-5.59,-5.55,-5.51,-5.46,-5.42,-5.37,-5.32,-5.26,-5.21,-5.15,-5.09,-5.03,-4.97,-4.91,-4.84,-4.77,-4.70,-4.62,-4.55,-4.47,-4.39,-4.31,-4.22,-4.14,-4.05,-3.96,-3.86,-3.77,-3.67,-3.57,-3.47,-3.36,-3.26,-3.15,-3.04,-2.92,-2.81,-2.69,-2.57,-2.45,-2.32,-2.19,-2.07,-1.95,-1.83,-1.71,-1.59,-1.47,-1.36,-1.24,-1.13,-1.02,-0.91,-0.80,-0.69,-0.58,-0.47,-0.37,-0.26,-0.16,-0.06,0.04,0.14,0.23,0.33,0.43,0.52,0.61,0.70,0.79,0.88,0.97,1.06,1.14,1.23,1.31,1.39,1.47,1.55,1.63,1.70,1.78,1.85,1.92,2.00,2.07,2.14,2.20,2.27,2.34,2.40,2.46,2.52,2.58,2.64,2.70,2.76,2.81,2.87,2.92,2.97,3.02,3.07,3.12,3.17,3.21,3.26,3.30,3.34,3.38,3.42,3.46,3.49,3.53,3.56,3.60,3.63,3.66,3.69,3.71,3.74,3.77,3.79,3.81,3.83,3.85,3.87,3.89,3.91,3.92,3.93,3.95,3.96,3.97,3.98,3.98,3.99,3.99,4.00,4.00,4,4.00,3.99,3.98,3.96,3.94,3.91,3.88,3.84,3.80,3.76,3.71,3.66,3.60,3.54,3.48,3.42,3.35,3.28,3.21,3.14,3.06,2.99,2.91,2.83,2.74,2.66,2.58,2.49,2.40,2.32,2.23,2.14,2.06,1.97,1.88,1.79,1.71,1.62,1.53,1.45,1.36,1.28,1.20,1.12,1.04,0.96,0.89,0.82,0.74,0.68,0.61,0.55,0.49,0.43,0.37,0.32,0.27,0.23,0.19,0.15,0.12,0.09,0.06,0.04,0.02,0.01,0.00,0\nPARAM_ANGLE_Y=0,-0.06,-0.25,-0.55,-0.95,-1.44,-2.02,-2.68,-3.43,-4.24,-5.09,-6.01,-6.98,-7.97,-8.99,-10.05,-11.13,-12.22,-13.30,-14.41,-15.51,-16.59,-17.65,-18.70,-19.71,-20.70,-21.65,-22.55,-23.41,-24.21,-24.94,-25.61,-26.22,-26.73,-27.18,-27.53,-27.79,-27.95,-28,-28.00,-27.99,-27.98,-27.96,-27.94,-27.92,-27.89,-27.85,-27.81,-27.77,-27.72,-27.67,-27.62,-27.56,-27.50,-27.44,-27.37,-27.30,-27.22,-27.15,-27.06,-26.98,-26.89,-26.80,-26.71,-26.62,-26.52,-26.42,-26.32,-26.22,-26.11,-26.01,-25.90,-25.78,-25.67,-25.56,-25.44,-25.32,-25.20,-25.08,-24.96,-24.84,-24.72,-24.59,-24.47,-24.34,-24.22,-24.09,-23.96,-23.84,-23.71,-23.58,-23.45,-23.33,-23.20,-23.07,-22.94,-22.82,-22.69,-22.57,-22.44,-22.32,-22.20,-22.07,-21.95,-21.83,-21.71,-21.60,-21.48,-21.37,-21.25,-21.14,-21.03,-20.93,-20.82,-20.72,-20.62,-20.52,-20.42,-20.33,-20.24,-20.15,-20.06,-19.98,-19.90,-19.82,-19.74,-19.67,-19.60,-19.54,-19.48,-19.42,-19.36,-19.31,-19.26,-19.22,-19.18,-19.14,-19.11,-19.08,-19.06,-19.04,-19.02,-19.01,-19.00,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-18.95,-18.80,-18.57,-18.24,-17.85,-17.37,-16.83,-16.24,-15.57,-14.86,-14.12,-13.32,-12.50,-11.66,-10.79,-9.91,-9.01,-8.11,-7.21,-6.33,-5.44,-4.59,-3.75,-2.94,-2.16,-1.41,-0.72,-0.07,0.54,1.09,1.57,1.99,2.34,2.63,2.83,2.96,3,2.99,2.97,2.93,2.87,2.80,2.71,2.61,2.50,2.37,2.23,2.08,1.92,1.74,1.55,1.36,1.15,0.93,0.70,0.47,0.23,-0.03,-0.29,-0.55,-0.83,-1.11,-1.39,-1.69,-1.99,-2.29,-2.59,-2.90,-3.22,-3.53,-3.85,-4.17,-4.49,-4.81,-5.13,-5.46,-5.79,-6.10,-6.43,-6.75,-7.07,-7.38,-7.70,-8.01,-8.32,-8.62,-8.92,-9.22,-9.51,-9.79,-10.07,-10.34,-10.61,-10.87,-11.12,-11.36,-11.60,-11.83,-12.04,-12.25,-12.45,-12.64,-12.81,-12.98,-13.14,-13.28,-13.41,-13.53,-13.64,-13.73,-13.81,-13.88,-13.93,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.37,-13.11,-12.81,-12.48,-12.11,-11.72,-11.30,-10.85,-10.39,-9.90,-9.41,-8.90,-8.39,-7.86,-7.33,-6.81,-6.27,-5.75,-5.24,-4.74,-4.25,-3.77,-3.31,-2.87,-2.45,-2.06,-1.70,-1.36,-1.06,-0.79,-0.56,-0.36,-0.21,-0.09,-0.02,0\nPARAM_ANGLE_X=0,-0.06,-0.22,-0.49,-0.85,-1.28,-1.81,-2.40,-3.07,-3.78,-4.54,-5.36,-6.23,-7.11,-8.03,-8.97,-9.93,-10.91,-11.88,-12.87,-13.85,-14.81,-15.76,-16.69,-17.60,-18.48,-19.33,-20.14,-20.90,-21.62,-22.27,-22.87,-23.41,-23.87,-24.27,-24.58,-24.81,-24.95,-25,-25.00,-24.98,-24.96,-24.93,-24.89,-24.84,-24.78,-24.72,-24.65,-24.57,-24.48,-24.38,-24.28,-24.17,-24.06,-23.94,-23.81,-23.67,-23.53,-23.39,-23.23,-23.07,-22.91,-22.74,-22.57,-22.39,-22.21,-22.02,-21.83,-21.64,-21.44,-21.23,-21.02,-20.81,-20.60,-20.38,-20.16,-19.94,-19.72,-19.49,-19.26,-19.03,-18.80,-18.56,-18.33,-18.09,-17.85,-17.61,-17.37,-17.13,-16.89,-16.65,-16.41,-16.17,-15.93,-15.69,-15.45,-15.21,-14.97,-14.74,-14.50,-14.26,-14.04,-13.80,-13.58,-13.35,-13.12,-12.91,-12.68,-12.47,-12.26,-12.05,-11.84,-11.64,-11.44,-11.25,-11.06,-10.87,-10.69,-10.51,-10.34,-10.17,-10.00,-9.85,-9.69,-9.55,-9.41,-9.27,-9.14,-9.02,-8.90,-8.79,-8.68,-8.59,-8.49,-8.41,-8.34,-8.27,-8.21,-8.15,-8.11,-8.07,-8.04,-8.02,-8.00,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.98,-7.91,-7.81,-7.67,-7.49,-7.28,-7.04,-6.78,-6.48,-6.15,-5.81,-5.45,-5.07,-4.67,-4.27,-3.85,-3.42,-2.98,-2.54,-2.10,-1.65,-1.21,-0.77,-0.33,0.09,0.51,0.92,1.31,1.69,2.06,2.40,2.72,3.03,3.31,3.57,3.79,4,4.20,4.40,4.59,4.77,4.96,5.14,5.31,5.48,5.65,5.81,5.97,6.12,6.27,6.42,6.56,6.70,6.83,6.97,7.09,7.22,7.34,7.45,7.57,7.68,7.79,7.89,7.99,8.09,8.18,8.27,8.36,8.45,8.53,8.61,8.68,8.76,8.83,8.90,8.97,9.03,9.09,9.15,9.20,9.26,9.31,9.36,9.40,9.45,9.49,9.53,9.57,9.60,9.64,9.67,9.70,9.73,9.76,9.78,9.80,9.83,9.85,9.87,9.88,9.90,9.91,9.93,9.94,9.95,9.96,9.97,9.97,9.98,9.99,9.99,9.99,10.00,10.00,10.00,10,9.98,9.92,9.83,9.71,9.55,9.36,9.15,8.91,8.65,8.37,8.07,7.75,7.42,7.07,6.72,6.35,5.99,5.61,5.23,4.86,4.48,4.11,3.74,3.39,3.03,2.69,2.36,2.05,1.75,1.47,1.21,0.97,0.76,0.56,0.40,0.26,0.15,0.07,0.02,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.37,0.10,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_R_ANGLE=0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.15,0.16,0.16,0.16,0.16,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.12,0.12,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.63,0.90,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.37,0.10,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,-0.00,-0.00,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.11,-0.12,-0.14,-0.16,-0.18,-0.19,-0.21,-0.23,-0.25,-0.27,-0.29,-0.31,-0.33,-0.34,-0.36,-0.38,-0.39,-0.41,-0.42,-0.44,-0.45,-0.46,-0.47,-0.48,-0.48,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.48,-0.48,-0.48,-0.48,-0.48,-0.47,-0.47,-0.47,-0.46,-0.46,-0.45,-0.45,-0.45,-0.44,-0.44,-0.43,-0.42,-0.42,-0.41,-0.41,-0.40,-0.40,-0.39,-0.38,-0.38,-0.37,-0.36,-0.36,-0.35,-0.34,-0.33,-0.33,-0.32,-0.31,-0.30,-0.30,-0.29,-0.28,-0.27,-0.26,-0.26,-0.25,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.13,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,0.00,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.05,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.08,0.08,0.09,0.09,0.09,0.08,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.02,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.08,0.09,0.11,0.13,0.14,0.16,0.17,0.19,0.20,0.21,0.22,0.24,0.25,0.25,0.26,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.25,0.24,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.11,0.10,0.09,0.08,0.07,0.06,0.05,0.04,0.04,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0\nPARAM_EYE_BALL_Y=0,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.03,-0.03,-0.04,-0.05,-0.05,-0.06,-0.07,-0.08,-0.09,-0.10,-0.11,-0.12,-0.13,-0.13,-0.14,-0.15,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.24,-0.25,-0.26,-0.27,-0.28,-0.28,-0.29,-0.30,-0.30,-0.31,-0.32,-0.32,-0.33,-0.34,-0.34,-0.35,-0.36,-0.36,-0.37,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.41,-0.41,-0.42,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.46,-0.46,-0.46,-0.47,-0.47,-0.48,-0.48,-0.48,-0.49,-0.49,-0.50,-0.50,-0.50,-0.51,-0.51,-0.51,-0.52,-0.52,-0.52,-0.53,-0.53,-0.53,-0.53,-0.54,-0.54,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.56,-0.56,-0.56,-0.56,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.56,-0.51,-0.45,-0.38,-0.31,-0.24,-0.17,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.03,-0.05,-0.07,-0.09,-0.12,-0.15,-0.19,-0.22,-0.26,-0.29,-0.33,-0.36,-0.40,-0.43,-0.47,-0.50,-0.52,-0.55,-0.57,-0.59,-0.61,-0.62,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.62,-0.62,-0.62,-0.62,-0.62,-0.61,-0.61,-0.61,-0.60,-0.60,-0.60,-0.59,-0.59,-0.59,-0.58,-0.58,-0.57,-0.57,-0.56,-0.56,-0.55,-0.55,-0.54,-0.53,-0.53,-0.52,-0.52,-0.51,-0.50,-0.50,-0.49,-0.48,-0.48,-0.47,-0.46,-0.45,-0.45,-0.44,-0.43,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.37,-0.36,-0.35,-0.34,-0.33,-0.32,-0.31,-0.31,-0.30,-0.29,-0.28,-0.27,-0.26,-0.25,-0.24,-0.23,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,-0.00,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_09.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.16,0.20,0.23,0.27,0.30,0.34,0.37,0.40,0.43,0.45,0.47,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.56,0.57,0.57,0.57,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.56,0.56,0.55,0.53,0.52,0.50,0.48,0.45,0.43,0.41,0.38,0.36,0.34,0.31,0.29,0.26,0.24,0.22,0.20,0.18,0.16,0.14,0.12,0.10,0.09,0.07,0.06,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.06,-0.23,-0.50,-0.85,-1.29,-1.79,-2.33,-2.92,-3.54,-4.18,-4.82,-5.46,-6.08,-6.67,-7.21,-7.71,-8.15,-8.50,-8.77,-8.94,-9,-8.97,-8.86,-8.70,-8.47,-8.19,-7.85,-7.47,-7.04,-6.56,-6.06,-5.51,-4.94,-4.33,-3.71,-3.06,-2.40,-1.72,-1.04,-0.34,0.34,1.04,1.72,2.40,3.06,3.71,4.33,4.94,5.51,6.06,6.56,7.04,7.47,7.85,8.19,8.47,8.70,8.86,8.97,9,8.98,8.91,8.79,8.63,8.43,8.20,7.93,7.63,7.30,6.94,6.56,6.15,5.73,5.30,4.84,4.37,3.90,3.42,2.93,2.44,1.94,1.45,0.96,0.48,0,-0.52,-1.04,-1.53,-1.98,-2.43,-2.87,-3.27,-3.66,-4.04,-4.39,-4.73,-5.05,-5.36,-5.65,-5.93,-6.19,-6.44,-6.68,-6.90,-7.11,-7.30,-7.48,-7.65,-7.81,-7.96,-8.09,-8.22,-8.34,-8.44,-8.54,-8.62,-8.70,-8.76,-8.82,-8.87,-8.91,-8.94,-8.97,-8.99,-9.00,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-9.98,-9.93,-9.84,-9.74,-9.62,-9.50,-9.38,-9.26,-9.16,-9.07,-9.02,-9,-9.02,-9.07,-9.15,-9.25,-9.37,-9.49,-9.60,-9.71,-9.81,-9.89,-9.95,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.94,-9.79,-9.58,-9.31,-9.01,-8.70,-8.38,-8.07,-7.79,-7.53,-7.32,-7.15,-7.04,-7,-7.01,-7.02,-7.05,-7.09,-7.13,-7.19,-7.25,-7.32,-7.39,-7.48,-7.56,-7.65,-7.75,-7.85,-7.95,-8.05,-8.16,-8.27,-8.38,-8.49,-8.59,-8.70,-8.81,-8.92,-9.02,-9.12,-9.22,-9.31,-9.40,-9.49,-9.57,-9.65,-9.72,-9.78,-9.83,-9.88,-9.92,-9.96,-9.98,-9.99,-10,-9.96,-9.85,-9.66,-9.42,-9.13,-8.79,-8.40,-7.99,-7.54,-7.07,-6.59,-6.09,-5.58,-5.07,-4.55,-4.05,-3.55,-3.07,-2.61,-2.17,-1.76,-1.39,-1.04,-0.74,-0.49,-0.28,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.50,0.50,0.50,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.60,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.65,0.65,0.66,0.66,0.67,0.67,0.68,0.68,0.68,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.64,0.63,0.63,0.62,0.61,0.60,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.53,0.52,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,-0.20,-0.77,-1.66,-2.85,-4.30,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.70,-27.15,-28.34,-29.23,-29.80,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.20,-13.66,-12.14,-10.66,-9.20,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,-0.20,-0.77,-1.66,-2.85,-4.30,-5.96,-7.76,-9.74,-11.81,-13.95,-16.05,-18.19,-20.26,-22.24,-24.04,-25.70,-27.15,-28.34,-29.23,-29.80,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.20,-13.66,-12.14,-10.66,-9.20,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.10,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.26,0.38,0.49,0.59,0.65,0.67,0.67,0.65,0.63,0.61,0.57,0.54,0.50,0.45,0.41,0.36,0.31,0.26,0.22,0.17,0.13,0.10,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.16,-0.19,-0.21,-0.24,-0.27,-0.30,-0.32,-0.34,-0.36,-0.38,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.39,-0.39,-0.38,-0.37,-0.35,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.09,-0.07,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=1,0.99,0.95,0.89,0.81,0.71,0.60,0.48,0.35,0.21,0.07,-0.07,-0.21,-0.35,-0.48,-0.60,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.88,-0.83,-0.76,-0.68,-0.60,-0.51,-0.41,-0.32,-0.22,-0.12,-0.01,0.09,0.19,0.29,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.90,0.94,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.71,0.47,0.23,0.07,0,0.07,0.22,0.43,0.65,0.80,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.81,0.65,0.46,0.28,0.13,0.03,0,0.03,0.10,0.19,0.30,0.41,0.53,0.63,0.72,0.79,0.84,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.89,0.89,0.90,0.90,0.91,0.92,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.96,0.97,0.98,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.09,-0.11,-0.14,-0.17,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.39,-0.41,-0.42,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.43,-0.42,-0.42,-0.41,-0.39,-0.38,-0.36,-0.34,-0.32,-0.30,-0.28,-0.26,-0.24,-0.22,-0.20,-0.17,-0.15,-0.13,-0.11,-0.09,-0.08,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.31,-0.33,-0.35,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.50,0.50,0.50,0.51,0.52,0.53,0.54,0.55,0.56,0.57,0.59,0.60,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.68,0.68,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.65,0.66,0.66,0.67,0.67,0.68,0.68,0.69,0.69,0.69,0.69,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.64,0.63,0.63,0.62,0.61,0.60,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.53,0.52,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0.00,0.01,0.03,0.05,0.07,0.10,0.13,0.16,0.20,0.23,0.27,0.30,0.34,0.37,0.40,0.43,0.45,0.47,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.55,0.56,0.56,0.57,0.57,0.58,0.58,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.58,0.57,0.56,0.55,0.54,0.52,0.50,0.48,0.45,0.43,0.40,0.38,0.35,0.33,0.31,0.28,0.26,0.24,0.21,0.19,0.17,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.04,0.03,0.02,0.01,0.01,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.08,-0.10,-0.13,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.31,-0.33,-0.35,-0.37,-0.38,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.38,-0.38,-0.37,-0.36,-0.34,-0.33,-0.31,-0.29,-0.28,-0.26,-0.24,-0.22,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1.00,1.00,0.99,0.99,0.98,0.97,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.72,0.47,0.24,0.07,0.01,0.07,0.23,0.44,0.65,0.81,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.81,0.65,0.46,0.28,0.13,0.03,0,0.03,0.10,0.19,0.30,0.42,0.53,0.64,0.73,0.81,0.85,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.89,0.89,0.90,0.90,0.91,0.91,0.92,0.93,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=0,-0.00,-0.02,-0.03,-0.06,-0.09,-0.12,-0.16,-0.20,-0.24,-0.28,-0.33,-0.37,-0.41,-0.45,-0.49,-0.52,-0.55,-0.58,-0.59,-0.61,-0.61,-0.60,-0.57,-0.52,-0.47,-0.40,-0.33,-0.27,-0.20,-0.15,-0.10,-0.07,-0.06,-0.07,-0.11,-0.16,-0.23,-0.30,-0.38,-0.45,-0.52,-0.58,-0.64,-0.68,-0.70,-0.71,-0.70,-0.67,-0.62,-0.56,-0.50,-0.43,-0.36,-0.30,-0.24,-0.18,-0.14,-0.10,-0.08,-0.07,-0.10,-0.17,-0.28,-0.40,-0.52,-0.64,-0.76,-0.85,-0.93,-0.98,-1,-0.97,-0.90,-0.79,-0.66,-0.52,-0.37,-0.21,-0.06,0.08,0.20,0.31,0.39,0.44,0.46,0.46,0.45,0.44,0.43,0.41,0.39,0.37,0.35,0.32,0.29,0.26,0.23,0.19,0.16,0.12,0.08,0.05,0.01,-0.03,-0.07,-0.11,-0.15,-0.19,-0.22,-0.26,-0.30,-0.33,-0.37,-0.40,-0.43,-0.46,-0.48,-0.51,-0.53,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.61,-0.61,-0.60,-0.59,-0.57,-0.56,-0.54,-0.51,-0.49,-0.46,-0.43,-0.40,-0.37,-0.34,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.11,-0.08,-0.06,-0.05,-0.03,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,-0.01,-0.03,-0.06,-0.09,-0.14,-0.20,-0.26,-0.32,-0.39,-0.46,-0.54,-0.61,-0.68,-0.74,-0.80,-0.86,-0.91,-0.94,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.94,-0.89,-0.85,-0.80,-0.75,-0.70,-0.66,-0.62,-0.59,-0.56,-0.55,-0.54,-0.54,-0.54,-0.55,-0.55,-0.56,-0.57,-0.58,-0.59,-0.60,-0.61,-0.63,-0.64,-0.65,-0.67,-0.69,-0.70,-0.72,-0.73,-0.75,-0.77,-0.78,-0.80,-0.82,-0.83,-0.85,-0.87,-0.88,-0.89,-0.91,-0.92,-0.93,-0.95,-0.96,-0.97,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-0.98,-0.97,-0.94,-0.91,-0.88,-0.84,-0.80,-0.75,-0.71,-0.66,-0.61,-0.56,-0.51,-0.46,-0.40,-0.36,-0.31,-0.26,-0.22,-0.18,-0.14,-0.10,-0.07,-0.05,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_A.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0.02,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.50,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,5,5,5,4.99,4.99,4.98,4.97,4.96,4.95,4.94,4.93,4.91,4.90,4.88,4.86,4.84,4.81,4.79,4.76,4.73,4.70,4.67,4.63,4.60,4.56,4.52,4.47,4.43,4.38,4.33,4.28,4.22,4.17,4.11,4.05,3.98,3.91,3.84,3.77,3.70,3.62,3.54,3.45,3.37,3.28,3.18,3.09,2.99,2.89,2.78,2.67,2.56,2.45,2.33,2.21,2.08,1.95,1.82,1.67,1.52,1.36,1.19,1.01,0.83,0.64,0.45,0.25,0.04,-0.17,-0.39,-0.61,-0.83,-1.06,-1.29,-1.52,-1.75,-1.99,-2.23,-2.46,-2.70,-2.94,-3.18,-3.41,-3.65,-3.88,-4.11,-4.34,-4.56,-4.78,-5,-5.22,-5.43,-5.64,-5.85,-6.05,-6.25,-6.44,-6.63,-6.81,-7,-7.17,-7.35,-7.52,-7.68,-7.84,-8,-8.15,-8.30,-8.45,-8.59,-8.73,-8.86,-8.99,-9.12,-9.24,-9.35,-9.47,-9.58,-9.68,-9.78,-9.88,-9.97,-10.06,-10.14,-10.22,-10.30,-10.37,-10.44,-10.50,-10.57,-10.62,-10.67,-10.72,-10.77,-10.81,-10.84,-10.88,-10.91,-10.93,-10.95,-10.97,-10.98,-10.99,-11,-11,-10.91,-10.65,-10.25,-9.71,-9.07,-8.32,-7.50,-6.61,-5.67,-4.68,-3.68,-2.65,-1.60,-0.59,0.40,1.38,2.29,3.17,3.99,4.72,5.37,5.93,6.38,6.72,6.93,7,6.99,6.95,6.89,6.81,6.71,6.58,6.43,6.27,6.09,5.89,5.68,5.44,5.19,4.93,4.66,4.37,4.08,3.77,3.45,3.12,2.79,2.45,2.10,1.74,1.38,1.02,0.65,0.29,-0.08,-0.46,-0.82,-1.19,-1.56,-1.93,-2.29,-2.64,-2.99,-3.34,-3.68,-4.01,-4.34,-4.65,-4.96,-5.26,-5.54,-5.81,-6.07,-6.32,-6.55,-6.77,-6.97,-7.16,-7.33,-7.48,-7.61,-7.73,-7.83,-7.90,-7.96,-7.99,-8,-7.98,-7.93,-7.84,-7.72,-7.58,-7.41,-7.21,-6.99,-6.75,-6.50,-6.22,-5.93,-5.64,-5.33,-5.02,-4.69,-4.37,-4.04,-3.71,-3.39,-3.07,-2.76,-2.45,-2.16,-1.88,-1.60,-1.35,-1.12,-0.89,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.43,-0.47,-0.50,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.73,-0.76,-0.79,-0.81,-0.83,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-0.99,-0.97,-0.94,-0.90,-0.84,-0.78,-0.70,-0.62,-0.53,-0.43,-0.32,-0.21,-0.09,0.04,0.17,0.30,0.44,0.58,0.71,0.86,1,1.14,1.29,1.42,1.56,1.70,1.83,1.96,2.09,2.21,2.32,2.43,2.53,2.62,2.70,2.78,2.84,2.90,2.94,2.97,2.99,3,3,2.98,2.96,2.93,2.89,2.85,2.79,2.73,2.67,2.59,2.51,2.43,2.34,2.24,2.14,2.04,1.93,1.82,1.70,1.59,1.46,1.34,1.21,1.09,0.96,0.83,0.70,0.57,0.43,0.30,0.17,0.04,-0.09,-0.21,-0.34,-0.46,-0.59,-0.70,-0.82,-0.93,-1.04,-1.14,-1.24,-1.34,-1.43,-1.51,-1.59,-1.67,-1.73,-1.79,-1.85,-1.89,-1.93,-1.96,-1.98,-2,-2,-2,-1.99,-1.98,-1.97,-1.96,-1.94,-1.92,-1.90,-1.87,-1.84,-1.81,-1.77,-1.73,-1.69,-1.65,-1.61,-1.56,-1.51,-1.46,-1.41,-1.35,-1.29,-1.23,-1.17,-1.11,-1.05,-0.98,-0.91,-0.85,-0.78,-0.70,-0.63,-0.56,-0.48,-0.41,-0.33,-0.25,-0.18,-0.10,-0.02,0.06,0.14,0.22,0.30,0.38,0.46,0.54,0.62,0.70,0.78,0.86,0.94,1.02,1.10,1.18,1.25,1.33,1.41,1.48,1.56,1.63,1.70,1.78,1.85,1.91,1.98,2.05,2.11,2.17,2.23,2.29,2.35,2.41,2.46,2.51,2.56,2.61,2.65,2.69,2.73,2.77,2.81,2.84,2.87,2.90,2.92,2.94,2.96,2.97,2.98,2.99,3,3,3,2.99,2.98,2.96,2.93,2.91,2.88,2.84,2.80,2.76,2.71,2.66,2.60,2.55,2.49,2.43,2.36,2.29,2.23,2.15,2.08,2.01,1.93,1.86,1.78,1.70,1.63,1.55,1.47,1.39,1.32,1.24,1.16,1.09,1.01,0.94,0.87,0.80,0.73,0.66,0.60,0.54,0.48,0.42,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.02,0.01,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0,-0.01,-0.03,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.30,-0.35,-0.40,-0.46,-0.52,-0.58,-0.64,-0.70,-0.77,-0.83,-0.90,-0.97,-1.03,-1.10,-1.17,-1.23,-1.30,-1.36,-1.42,-1.48,-1.54,-1.60,-1.65,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.93,-1.96,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.77,-1.72,-1.68,-1.63,-1.58,-1.53,-1.47,-1.41,-1.35,-1.28,-1.22,-1.15,-1.08,-1.01,-0.94,-0.86,-0.78,-0.71,-0.63,-0.55,-0.46,-0.38,-0.30,-0.21,-0.13,-0.04,0.05,0.13,0.22,0.31,0.40,0.49,0.58,0.67,0.75,0.84,0.93,1.02,1.10,1.19,1.27,1.36,1.44,1.52,1.60,1.68,1.76,1.83,1.91,1.98,2.05,2.12,2.19,2.26,2.32,2.38,2.44,2.50,2.55,2.60,2.65,2.70,2.74,2.78,2.82,2.85,2.88,2.91,2.93,2.95,2.97,2.98,2.99,3,3,3,2.99,2.97,2.94,2.91,2.88,2.84,2.79,2.74,2.68,2.62,2.55,2.48,2.41,2.33,2.25,2.17,2.08,1.99,1.90,1.81,1.71,1.61,1.51,1.42,1.32,1.21,1.11,1.01,0.91,0.81,0.71,0.61,0.51,0.41,0.32,0.22,0.13,0.04,-0.05,-0.13,-0.22,-0.30,-0.37,-0.45,-0.52,-0.58,-0.65,-0.70,-0.76,-0.81,-0.85,-0.89,-0.92,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.90,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.30,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.01,-0.02,-0.05,-0.09,-0.14,-0.19,-0.26,-0.34,-0.42,-0.51,-0.61,-0.72,-0.84,-0.96,-1.09,-1.23,-1.37,-1.52,-1.67,-1.83,-1.99,-2.16,-2.33,-2.50,-2.68,-2.86,-3.04,-3.23,-3.42,-3.61,-3.80,-3.99,-4.18,-4.38,-4.57,-4.77,-4.96,-5.15,-5.34,-5.53,-5.72,-5.90,-6.08,-6.27,-6.44,-6.61,-6.79,-6.95,-7.11,-7.27,-7.42,-7.57,-7.71,-7.85,-7.98,-8.10,-8.22,-8.33,-8.43,-8.52,-8.61,-8.69,-8.76,-8.82,-8.88,-8.92,-8.95,-8.98,-8.99,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.95,-8.80,-8.55,-8.23,-7.83,-7.37,-6.84,-6.27,-5.65,-5.01,-4.33,-3.64,-2.94,-2.23,-1.54,-0.86,-0.18,0.45,1.05,1.62,2.14,2.60,3.01,3.36,3.63,3.83,3.96,4,3.98,3.91,3.79,3.64,3.46,3.24,2.99,2.72,2.42,2.10,1.77,1.42,1.06,0.69,0.31,-0.07,-0.45,-0.84,-1.22,-1.58,-1.95,-2.31,-2.65,-2.99,-3.30,-3.59,-3.86,-4.11,-4.33,-4.53,-4.69,-4.82,-4.92,-4.98,-5,-4.99,-4.96,-4.90,-4.82,-4.73,-4.62,-4.49,-4.34,-4.18,-4,-3.81,-3.60,-3.39,-3.16,-2.92,-2.67,-2.42,-2.15,-1.88,-1.61,-1.33,-1.05,-0.76,-0.47,-0.18,0.11,0.40,0.69,0.97,1.26,1.53,1.80,2.07,2.33,2.59,2.83,3.07,3.29,3.51,3.71,3.90,4.08,4.25,4.40,4.53,4.65,4.76,4.84,4.91,4.96,4.99,5,4.97,4.87,4.71,4.50,4.23,3.92,3.55,3.15,2.70,2.22,1.70,1.16,0.59,0,-0.61,-1.23,-1.88,-2.52,-3.18,-3.82,-4.48,-5.12,-5.77,-6.39,-7,-7.59,-8.16,-8.70,-9.22,-9.70,-10.15,-10.55,-10.92,-11.23,-11.50,-11.71,-11.87,-11.97,-12,-11.98,-11.92,-11.83,-11.69,-11.53,-11.34,-11.11,-10.86,-10.59,-10.29,-9.97,-9.63,-9.28,-8.90,-8.52,-8.12,-7.72,-7.31,-6.89,-6.47,-6.05,-5.63,-5.21,-4.80,-4.39,-3.99,-3.60,-3.22,-2.85,-2.50,-2.17,-1.85,-1.55,-1.28,-1.02,-0.80,-0.59,-0.42,-0.27,-0.15,-0.07,-0.02,0\r\r\nPARAM_ANGLE_X=0,0,0.01,0.02,0.04,0.07,0.09,0.13,0.16,0.21,0.25,0.30,0.36,0.42,0.48,0.55,0.62,0.70,0.78,0.86,0.95,1.03,1.13,1.22,1.32,1.42,1.53,1.63,1.74,1.85,1.97,2.08,2.20,2.33,2.45,2.57,2.70,2.83,2.96,3.09,3.22,3.36,3.49,3.63,3.76,3.90,4.04,4.18,4.32,4.46,4.60,4.74,4.88,5.02,5.16,5.30,5.44,5.58,5.72,5.86,6,6.14,6.26,6.38,6.50,6.61,6.72,6.82,6.91,7,7.09,7.16,7.24,7.31,7.37,7.44,7.49,7.55,7.60,7.64,7.68,7.72,7.76,7.79,7.82,7.85,7.87,7.89,7.91,7.93,7.94,7.95,7.96,7.97,7.98,7.99,7.99,7.99,8,8,8,8,8,7.99,7.94,7.87,7.77,7.65,7.50,7.32,7.12,6.90,6.65,6.38,6.10,5.79,5.47,5.13,4.77,4.39,4,3.60,3.22,2.84,2.46,2.10,1.75,1.40,1.05,0.72,0.40,0.08,-0.24,-0.54,-0.84,-1.13,-1.41,-1.69,-1.96,-2.22,-2.47,-2.72,-2.96,-3.19,-3.41,-3.63,-3.84,-4.05,-4.24,-4.43,-4.62,-4.79,-4.96,-5.12,-5.28,-5.43,-5.57,-5.70,-5.83,-5.95,-6.07,-6.17,-6.27,-6.37,-6.46,-6.54,-6.61,-6.68,-6.74,-6.80,-6.84,-6.89,-6.92,-6.95,-6.97,-6.99,-7,-7,-7,-6.99,-6.97,-6.95,-6.91,-6.87,-6.83,-6.77,-6.71,-6.64,-6.56,-6.47,-6.37,-6.26,-6.14,-6.01,-5.88,-5.73,-5.57,-5.41,-5.23,-5.04,-4.85,-4.64,-4.42,-4.18,-3.94,-3.68,-3.42,-3.14,-2.85,-2.55,-2.24,-1.92,-1.59,-1.23,-0.88,-0.51,-0.12,0.27,0.71,1.14,1.56,1.98,2.39,2.79,3.19,3.58,3.96,4.34,4.71,5.08,5.43,5.78,6.12,6.46,6.79,7.11,7.42,7.73,8.02,8.32,8.60,8.87,9.14,9.40,9.65,9.89,10.13,10.35,10.57,10.77,10.98,11.17,11.35,11.52,11.69,11.84,11.99,12.12,12.25,12.37,12.48,12.57,12.66,12.74,12.81,12.87,12.91,12.95,12.98,12.99,13,12.95,12.80,12.56,12.25,11.87,11.43,10.93,10.38,9.80,9.20,8.56,7.92,7.25,6.59,5.92,5.26,4.62,3.99,3.39,2.82,2.29,1.80,1.35,0.97,0.63,0.36,0.16,0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.10,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.39,-0.36,-0.31,-0.27,-0.22,-0.16,-0.11,-0.07,-0.03,-0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.05,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.42,-0.44,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.51,-0.49,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.10,0.12,0.14,0.15,0.17,0.19,0.20,0.22,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.36,0.37,0.38,0.40,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.30,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.03,0.02,0,-0.01,-0.03,-0.05,-0.06,-0.08,-0.10,-0.11,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.41,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.25,-0.22,-0.20,-0.18,-0.15,-0.13,-0.10,-0.08,-0.05,-0.03,0,0.03,0.05,0.08,0.11,0.14,0.16,0.19,0.21,0.24,0.27,0.29,0.31,0.33,0.35,0.37,0.38,0.39,0.40,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.40,0.38,0.36,0.33,0.29,0.26,0.23,0.19,0.16,0.13,0.10,0.08,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=0\r\r\nVISIBLE:PARTS_LEFT_ARM_B=0\r\r\nVISIBLE:PARTS_BODY_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_A2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0.02,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.50,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,5,5,5,4.99,4.99,4.98,4.97,4.96,4.95,4.94,4.93,4.91,4.90,4.88,4.86,4.84,4.81,4.79,4.76,4.73,4.70,4.67,4.63,4.60,4.56,4.52,4.47,4.43,4.38,4.33,4.28,4.22,4.17,4.11,4.05,3.98,3.91,3.84,3.77,3.70,3.62,3.54,3.45,3.37,3.28,3.18,3.09,2.99,2.89,2.78,2.67,2.56,2.45,2.33,2.21,2.08,1.95,1.82,1.67,1.52,1.36,1.19,1.01,0.83,0.64,0.45,0.25,0.04,-0.17,-0.39,-0.61,-0.83,-1.06,-1.29,-1.52,-1.75,-1.99,-2.23,-2.46,-2.70,-2.94,-3.18,-3.41,-3.65,-3.88,-4.11,-4.34,-4.56,-4.78,-5,-5.22,-5.43,-5.64,-5.85,-6.05,-6.25,-6.44,-6.63,-6.81,-7,-7.17,-7.35,-7.52,-7.68,-7.84,-8,-8.15,-8.30,-8.45,-8.59,-8.73,-8.86,-8.99,-9.12,-9.24,-9.35,-9.47,-9.58,-9.68,-9.78,-9.88,-9.97,-10.06,-10.14,-10.22,-10.30,-10.37,-10.44,-10.50,-10.57,-10.62,-10.67,-10.72,-10.77,-10.81,-10.84,-10.88,-10.91,-10.93,-10.95,-10.97,-10.98,-10.99,-11,-11,-10.91,-10.65,-10.25,-9.71,-9.07,-8.32,-7.50,-6.61,-5.67,-4.68,-3.68,-2.65,-1.60,-0.59,0.40,1.38,2.29,3.17,3.99,4.72,5.37,5.93,6.38,6.72,6.93,7,6.99,6.95,6.89,6.81,6.71,6.58,6.43,6.27,6.09,5.89,5.68,5.44,5.19,4.93,4.66,4.37,4.08,3.77,3.45,3.12,2.79,2.45,2.10,1.74,1.38,1.02,0.65,0.29,-0.08,-0.46,-0.82,-1.19,-1.56,-1.93,-2.29,-2.64,-2.99,-3.34,-3.68,-4.01,-4.34,-4.65,-4.96,-5.26,-5.54,-5.81,-6.07,-6.32,-6.55,-6.77,-6.97,-7.16,-7.33,-7.48,-7.61,-7.73,-7.83,-7.90,-7.96,-7.99,-8,-7.98,-7.93,-7.84,-7.72,-7.58,-7.41,-7.21,-6.99,-6.75,-6.50,-6.22,-5.93,-5.64,-5.33,-5.02,-4.69,-4.37,-4.04,-3.71,-3.39,-3.07,-2.76,-2.45,-2.16,-1.88,-1.60,-1.35,-1.12,-0.89,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.09,-0.11,-0.13,-0.16,-0.18,-0.20,-0.23,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.43,-0.47,-0.50,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.73,-0.76,-0.79,-0.81,-0.83,-0.86,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-0.99,-0.97,-0.94,-0.90,-0.84,-0.78,-0.70,-0.62,-0.53,-0.43,-0.32,-0.21,-0.09,0.04,0.17,0.30,0.44,0.58,0.71,0.86,1,1.14,1.29,1.42,1.56,1.70,1.83,1.96,2.09,2.21,2.32,2.43,2.53,2.62,2.70,2.78,2.84,2.90,2.94,2.97,2.99,3,3,2.98,2.96,2.93,2.89,2.85,2.79,2.73,2.67,2.59,2.51,2.43,2.34,2.24,2.14,2.04,1.93,1.82,1.70,1.59,1.46,1.34,1.21,1.09,0.96,0.83,0.70,0.57,0.43,0.30,0.17,0.04,-0.09,-0.21,-0.34,-0.46,-0.59,-0.70,-0.82,-0.93,-1.04,-1.14,-1.24,-1.34,-1.43,-1.51,-1.59,-1.67,-1.73,-1.79,-1.85,-1.89,-1.93,-1.96,-1.98,-2,-2,-2,-1.99,-1.98,-1.97,-1.96,-1.94,-1.92,-1.90,-1.87,-1.84,-1.81,-1.77,-1.73,-1.69,-1.65,-1.61,-1.56,-1.51,-1.46,-1.41,-1.35,-1.29,-1.23,-1.17,-1.11,-1.05,-0.98,-0.91,-0.85,-0.78,-0.70,-0.63,-0.56,-0.48,-0.41,-0.33,-0.25,-0.18,-0.10,-0.02,0.06,0.14,0.22,0.30,0.38,0.46,0.54,0.62,0.70,0.78,0.86,0.94,1.02,1.10,1.18,1.25,1.33,1.41,1.48,1.56,1.63,1.70,1.78,1.85,1.91,1.98,2.05,2.11,2.17,2.23,2.29,2.35,2.41,2.46,2.51,2.56,2.61,2.65,2.69,2.73,2.77,2.81,2.84,2.87,2.90,2.92,2.94,2.96,2.97,2.98,2.99,3,3,3,2.99,2.98,2.96,2.93,2.91,2.88,2.84,2.80,2.76,2.71,2.66,2.60,2.55,2.49,2.43,2.36,2.29,2.23,2.15,2.08,2.01,1.93,1.86,1.78,1.70,1.63,1.55,1.47,1.39,1.32,1.24,1.16,1.09,1.01,0.94,0.87,0.80,0.73,0.66,0.60,0.54,0.48,0.42,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.02,0.01,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0,-0.01,-0.03,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.30,-0.35,-0.40,-0.46,-0.52,-0.58,-0.64,-0.70,-0.77,-0.83,-0.90,-0.97,-1.03,-1.10,-1.17,-1.23,-1.30,-1.36,-1.42,-1.48,-1.54,-1.60,-1.65,-1.70,-1.75,-1.79,-1.83,-1.87,-1.90,-1.93,-1.96,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.77,-1.72,-1.68,-1.63,-1.58,-1.53,-1.47,-1.41,-1.35,-1.28,-1.22,-1.15,-1.08,-1.01,-0.94,-0.86,-0.78,-0.71,-0.63,-0.55,-0.46,-0.38,-0.30,-0.21,-0.13,-0.04,0.05,0.13,0.22,0.31,0.40,0.49,0.58,0.67,0.75,0.84,0.93,1.02,1.10,1.19,1.27,1.36,1.44,1.52,1.60,1.68,1.76,1.83,1.91,1.98,2.05,2.12,2.19,2.26,2.32,2.38,2.44,2.50,2.55,2.60,2.65,2.70,2.74,2.78,2.82,2.85,2.88,2.91,2.93,2.95,2.97,2.98,2.99,3,3,3,2.99,2.97,2.94,2.91,2.88,2.84,2.79,2.74,2.68,2.62,2.55,2.48,2.41,2.33,2.25,2.17,2.08,1.99,1.90,1.81,1.71,1.61,1.51,1.42,1.32,1.21,1.11,1.01,0.91,0.81,0.71,0.61,0.51,0.41,0.32,0.22,0.13,0.04,-0.05,-0.13,-0.22,-0.30,-0.37,-0.45,-0.52,-0.58,-0.65,-0.70,-0.76,-0.81,-0.85,-0.89,-0.92,-0.95,-0.97,-0.99,-1,-1,-1,-0.99,-0.97,-0.95,-0.93,-0.90,-0.87,-0.83,-0.79,-0.75,-0.71,-0.67,-0.62,-0.58,-0.53,-0.48,-0.44,-0.39,-0.35,-0.30,-0.26,-0.22,-0.18,-0.15,-0.12,-0.09,-0.06,-0.04,-0.02,-0.01,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.01,-0.02,-0.05,-0.09,-0.14,-0.19,-0.26,-0.34,-0.42,-0.51,-0.61,-0.72,-0.84,-0.96,-1.09,-1.23,-1.37,-1.52,-1.67,-1.83,-1.99,-2.16,-2.33,-2.50,-2.68,-2.86,-3.04,-3.23,-3.42,-3.61,-3.80,-3.99,-4.18,-4.38,-4.57,-4.77,-4.96,-5.15,-5.34,-5.53,-5.72,-5.90,-6.08,-6.27,-6.44,-6.61,-6.79,-6.95,-7.11,-7.27,-7.42,-7.57,-7.71,-7.85,-7.98,-8.10,-8.22,-8.33,-8.43,-8.52,-8.61,-8.69,-8.76,-8.82,-8.88,-8.92,-8.95,-8.98,-8.99,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.95,-8.80,-8.55,-8.23,-7.83,-7.37,-6.84,-6.27,-5.65,-5.01,-4.33,-3.64,-2.94,-2.23,-1.54,-0.86,-0.18,0.45,1.05,1.62,2.14,2.60,3.01,3.36,3.63,3.83,3.96,4,3.98,3.91,3.79,3.64,3.46,3.24,2.99,2.72,2.42,2.10,1.77,1.42,1.06,0.69,0.31,-0.07,-0.45,-0.84,-1.22,-1.58,-1.95,-2.31,-2.65,-2.99,-3.30,-3.59,-3.86,-4.11,-4.33,-4.53,-4.69,-4.82,-4.92,-4.98,-5,-4.99,-4.96,-4.90,-4.82,-4.73,-4.62,-4.49,-4.34,-4.18,-4,-3.81,-3.60,-3.39,-3.16,-2.92,-2.67,-2.42,-2.15,-1.88,-1.61,-1.33,-1.05,-0.76,-0.47,-0.18,0.11,0.40,0.69,0.97,1.26,1.53,1.80,2.07,2.33,2.59,2.83,3.07,3.29,3.51,3.71,3.90,4.08,4.25,4.40,4.53,4.65,4.76,4.84,4.91,4.96,4.99,5,4.97,4.87,4.71,4.50,4.23,3.92,3.55,3.15,2.70,2.22,1.70,1.16,0.59,0,-0.61,-1.23,-1.88,-2.52,-3.18,-3.82,-4.48,-5.12,-5.77,-6.39,-7,-7.59,-8.16,-8.70,-9.22,-9.70,-10.15,-10.55,-10.92,-11.23,-11.50,-11.71,-11.87,-11.97,-12,-11.98,-11.92,-11.83,-11.69,-11.53,-11.34,-11.11,-10.86,-10.59,-10.29,-9.97,-9.63,-9.28,-8.90,-8.52,-8.12,-7.72,-7.31,-6.89,-6.47,-6.05,-5.63,-5.21,-4.80,-4.39,-3.99,-3.60,-3.22,-2.85,-2.50,-2.17,-1.85,-1.55,-1.28,-1.02,-0.80,-0.59,-0.42,-0.27,-0.15,-0.07,-0.02,0\r\r\nPARAM_ANGLE_X=0,0,0.01,0.02,0.04,0.07,0.09,0.13,0.16,0.21,0.25,0.30,0.36,0.42,0.48,0.55,0.62,0.70,0.78,0.86,0.95,1.03,1.13,1.22,1.32,1.42,1.53,1.63,1.74,1.85,1.97,2.08,2.20,2.33,2.45,2.57,2.70,2.83,2.96,3.09,3.22,3.36,3.49,3.63,3.76,3.90,4.04,4.18,4.32,4.46,4.60,4.74,4.88,5.02,5.16,5.30,5.44,5.58,5.72,5.86,6,6.14,6.26,6.38,6.50,6.61,6.72,6.82,6.91,7,7.09,7.16,7.24,7.31,7.37,7.44,7.49,7.55,7.60,7.64,7.68,7.72,7.76,7.79,7.82,7.85,7.87,7.89,7.91,7.93,7.94,7.95,7.96,7.97,7.98,7.99,7.99,7.99,8,8,8,8,8,7.99,7.94,7.87,7.77,7.65,7.50,7.32,7.12,6.90,6.65,6.38,6.10,5.79,5.47,5.13,4.77,4.39,4,3.60,3.22,2.84,2.46,2.10,1.75,1.40,1.05,0.72,0.40,0.08,-0.24,-0.54,-0.84,-1.13,-1.41,-1.69,-1.96,-2.22,-2.47,-2.72,-2.96,-3.19,-3.41,-3.63,-3.84,-4.05,-4.24,-4.43,-4.62,-4.79,-4.96,-5.12,-5.28,-5.43,-5.57,-5.70,-5.83,-5.95,-6.07,-6.17,-6.27,-6.37,-6.46,-6.54,-6.61,-6.68,-6.74,-6.80,-6.84,-6.89,-6.92,-6.95,-6.97,-6.99,-7,-7,-7,-6.99,-6.97,-6.95,-6.91,-6.87,-6.83,-6.77,-6.71,-6.64,-6.56,-6.47,-6.37,-6.26,-6.14,-6.01,-5.88,-5.73,-5.57,-5.41,-5.23,-5.04,-4.85,-4.64,-4.42,-4.18,-3.94,-3.68,-3.42,-3.14,-2.85,-2.55,-2.24,-1.92,-1.59,-1.23,-0.88,-0.51,-0.12,0.27,0.71,1.14,1.56,1.98,2.39,2.79,3.19,3.58,3.96,4.34,4.71,5.08,5.43,5.78,6.12,6.46,6.79,7.11,7.42,7.73,8.02,8.32,8.60,8.87,9.14,9.40,9.65,9.89,10.13,10.35,10.57,10.77,10.98,11.17,11.35,11.52,11.69,11.84,11.99,12.12,12.25,12.37,12.48,12.57,12.66,12.74,12.81,12.87,12.91,12.95,12.98,12.99,13,12.95,12.80,12.56,12.25,11.87,11.43,10.93,10.38,9.80,9.20,8.56,7.92,7.25,6.59,5.92,5.26,4.62,3.99,3.39,2.82,2.29,1.80,1.35,0.97,0.63,0.36,0.16,0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.08,-0.09,-0.10,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.28,-0.29,-0.31,-0.32,-0.33,-0.34,-0.35,-0.36,-0.37,-0.38,-0.39,-0.39,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.39,-0.36,-0.31,-0.27,-0.22,-0.16,-0.11,-0.07,-0.03,-0,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.11,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.05,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.17,-0.19,-0.21,-0.24,-0.26,-0.29,-0.32,-0.34,-0.37,-0.40,-0.42,-0.44,-0.47,-0.49,-0.51,-0.52,-0.54,-0.56,-0.57,-0.58,-0.59,-0.59,-0.60,-0.60,-0.60,-0.60,-0.60,-0.60,-0.59,-0.59,-0.58,-0.57,-0.56,-0.55,-0.54,-0.53,-0.51,-0.49,-0.47,-0.45,-0.42,-0.40,-0.37,-0.35,-0.32,-0.30,-0.27,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.02,0.03,0.04,0.05,0.06,0.08,0.09,0.10,0.12,0.14,0.15,0.17,0.19,0.20,0.22,0.24,0.26,0.27,0.29,0.31,0.32,0.34,0.36,0.37,0.38,0.40,0.41,0.42,0.43,0.44,0.45,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.45,0.45,0.45,0.44,0.44,0.43,0.42,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.35,0.34,0.33,0.32,0.30,0.29,0.28,0.26,0.25,0.24,0.22,0.21,0.19,0.18,0.16,0.15,0.13,0.12,0.10,0.08,0.07,0.05,0.03,0.02,0,-0.01,-0.03,-0.05,-0.06,-0.08,-0.10,-0.11,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.25,-0.26,-0.27,-0.29,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.39,-0.40,-0.40,-0.41,-0.42,-0.43,-0.43,-0.44,-0.44,-0.45,-0.45,-0.45,-0.46,-0.46,-0.46,-0.46,-0.45,-0.43,-0.39,-0.34,-0.29,-0.23,-0.17,-0.12,-0.07,-0.03,-0.01,0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.09,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.19,-0.20,-0.22,-0.23,-0.24,-0.26,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.35,-0.36,-0.37,-0.38,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.42,-0.42,-0.42,-0.42,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.34,-0.32,-0.31,-0.29,-0.27,-0.25,-0.22,-0.20,-0.18,-0.15,-0.13,-0.10,-0.08,-0.05,-0.03,0,0.03,0.05,0.08,0.11,0.14,0.16,0.19,0.21,0.24,0.27,0.29,0.31,0.33,0.35,0.37,0.38,0.39,0.40,0.41,0.41,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.40,0.38,0.36,0.33,0.29,0.26,0.23,0.19,0.16,0.13,0.10,0.08,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_B.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.29,0.44,0.62,0.82,1.05,1.29,1.55,1.84,2.13,2.44,2.75,3.06,3.39,3.71,4.04,4.35,4.67,4.98,5.27,5.56,5.82,6.08,6.31,6.52,6.71,6.87,7,7.11,7.21,7.31,7.40,7.48,7.55,7.62,7.67,7.73,7.77,7.82,7.85,7.89,7.91,7.94,7.95,7.97,7.98,7.99,8,8,8.01,8.01,8.01,8.01,8.01,8,8,8,8,7.95,7.80,7.55,7.22,6.81,6.33,5.79,5.19,4.55,3.86,3.12,2.37,1.58,0.80,0,-0.80,-1.58,-2.37,-3.12,-3.86,-4.55,-5.19,-5.79,-6.33,-6.81,-7.22,-7.55,-7.80,-7.95,-8,-8,-7.99,-7.97,-7.94,-7.91,-7.88,-7.83,-7.79,-7.73,-7.67,-7.60,-7.53,-7.45,-7.37,-7.28,-7.19,-7.09,-6.99,-6.88,-6.77,-6.65,-6.53,-6.40,-6.27,-6.14,-6,-5.86,-5.72,-5.57,-5.42,-5.27,-5.11,-4.96,-4.79,-4.63,-4.46,-4.30,-4.13,-3.95,-3.78,-3.60,-3.42,-3.24,-3.06,-2.88,-2.70,-2.52,-2.33,-2.15,-1.96,-1.78,-1.59,-1.41,-1.22,-1.04,-0.85,-0.67,-0.48,-0.30,-0.12,0.06,0.24,0.42,0.60,0.78,0.95,1.13,1.30,1.46,1.63,1.79,1.96,2.11,2.27,2.42,2.57,2.72,2.86,3,3.14,3.27,3.40,3.53,3.65,3.77,3.88,3.99,4.09,4.19,4.28,4.37,4.45,4.53,4.60,4.67,4.73,4.79,4.83,4.88,4.91,4.94,4.97,4.99,5,5,4.98,4.91,4.81,4.66,4.49,4.28,4.04,3.78,3.49,3.19,2.86,2.52,2.16,1.80,1.42,1.04,0.65,0.26,-0.13,-0.52,-0.91,-1.29,-1.66,-2.02,-2.37,-2.71,-3.03,-3.33,-3.62,-3.88,-4.12,-4.33,-4.52,-4.68,-4.80,-4.89,-4.95,-4.97,-4.94,-4.84,-4.70,-4.50,-4.26,-3.98,-3.68,-3.36,-3.01,-2.66,-2.31,-1.96,-1.61,-1.29,-0.99,-0.71,-0.47,-0.27,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.02,-0.03,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.32,-0.38,-0.44,-0.50,-0.57,-0.63,-0.70,-0.77,-0.85,-0.92,-0.99,-1.06,-1.14,-1.21,-1.28,-1.35,-1.41,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.76,-1.72,-1.67,-1.62,-1.57,-1.51,-1.46,-1.40,-1.33,-1.27,-1.20,-1.13,-1.05,-0.98,-0.90,-0.82,-0.74,-0.66,-0.58,-0.49,-0.41,-0.32,-0.23,-0.14,-0.05,0.04,0.14,0.23,0.33,0.42,0.52,0.61,0.71,0.81,0.90,1,1.10,1.20,1.29,1.38,1.47,1.55,1.63,1.71,1.79,1.86,1.93,2,2.06,2.12,2.18,2.24,2.29,2.34,2.39,2.44,2.49,2.53,2.57,2.61,2.64,2.68,2.71,2.74,2.77,2.79,2.82,2.84,2.86,2.88,2.90,2.92,2.93,2.94,2.95,2.96,2.97,2.98,2.99,2.99,3,3,3,3,3,3,3,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3,2.99,2.98,2.96,2.95,2.92,2.90,2.87,2.84,2.80,2.75,2.71,2.65,2.59,2.53,2.46,2.38,2.30,2.20,2.11,2,1.88,1.75,1.62,1.48,1.33,1.18,1.03,0.87,0.71,0.55,0.39,0.22,0.05,-0.12,-0.29,-0.46,-0.63,-0.81,-0.98,-1.15,-1.32,-1.48,-1.65,-1.81,-1.96,-2.12,-2.27,-2.42,-2.56,-2.70,-2.83,-2.96,-3.09,-3.20,-3.31,-3.41,-3.51,-3.60,-3.68,-3.75,-3.81,-3.87,-3.92,-3.95,-3.98,-3.99,-4,-4,-3.98,-3.96,-3.94,-3.90,-3.86,-3.82,-3.76,-3.70,-3.64,-3.57,-3.50,-3.42,-3.33,-3.25,-3.16,-3.06,-2.97,-2.87,-2.77,-2.66,-2.56,-2.45,-2.34,-2.23,-2.12,-2.01,-1.90,-1.80,-1.69,-1.58,-1.47,-1.37,-1.27,-1.17,-1.07,-0.97,-0.88,-0.79,-0.70,-0.62,-0.54,-0.47,-0.40,-0.33,-0.27,-0.22,-0.17,-0.13,-0.09,-0.06,-0.03,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.02,0.04,0.06,0.09,0.12,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.46,0.52,0.57,0.63,0.69,0.75,0.81,0.88,0.94,1,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.54,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.98,1.99,2,2,1.99,1.97,1.94,1.89,1.83,1.76,1.67,1.58,1.48,1.37,1.25,1.12,0.99,0.85,0.70,0.55,0.40,0.24,0.08,-0.08,-0.25,-0.42,-0.58,-0.75,-0.92,-1.08,-1.24,-1.40,-1.55,-1.70,-1.85,-1.99,-2.12,-2.25,-2.37,-2.48,-2.58,-2.67,-2.76,-2.83,-2.89,-2.94,-2.97,-2.99,-3,-3,-3,-2.99,-2.99,-2.98,-2.98,-2.97,-2.95,-2.94,-2.93,-2.91,-2.89,-2.87,-2.85,-2.82,-2.79,-2.76,-2.73,-2.70,-2.66,-2.62,-2.57,-2.53,-2.48,-2.42,-2.37,-2.31,-2.25,-2.18,-2.11,-2.04,-1.97,-1.89,-1.80,-1.72,-1.63,-1.53,-1.44,-1.33,-1.23,-1.12,-1,-0.88,-0.75,-0.63,-0.51,-0.39,-0.27,-0.15,-0.04,0.08,0.19,0.30,0.41,0.51,0.62,0.72,0.81,0.91,1,1.09,1.18,1.26,1.34,1.41,1.48,1.55,1.61,1.67,1.73,1.78,1.82,1.86,1.90,1.93,1.95,1.97,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.98,1.97,1.94,1.91,1.87,1.83,1.78,1.73,1.67,1.61,1.55,1.48,1.41,1.34,1.27,1.19,1.12,1.04,0.96,0.88,0.81,0.73,0.66,0.59,0.52,0.45,0.39,0.33,0.27,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,1.99,1.98,1.95,1.91,1.85,1.79,1.72,1.64,1.55,1.45,1.34,1.23,1.10,0.97,0.84,0.69,0.54,0.39,0.23,0.06,-0.11,-0.28,-0.46,-0.64,-0.83,-1.01,-1.20,-1.40,-1.59,-1.78,-1.98,-2.18,-2.37,-2.57,-2.77,-2.97,-3.16,-3.36,-3.55,-3.74,-3.93,-4.12,-4.30,-4.48,-4.66,-4.83,-5,-5.17,-5.33,-5.48,-5.63,-5.77,-5.91,-6.04,-6.16,-6.28,-6.39,-6.49,-6.58,-6.66,-6.74,-6.81,-6.86,-6.91,-6.95,-6.98,-6.99,-7,-6.97,-6.88,-6.74,-6.56,-6.32,-6.04,-5.73,-5.38,-5,-4.59,-4.17,-3.71,-3.25,-2.78,-2.30,-1.81,-1.31,-0.83,-0.35,0.12,0.58,1.02,1.44,1.85,2.22,2.57,2.88,3.16,3.41,3.61,3.78,3.90,3.97,4,3.95,3.83,3.62,3.36,3.04,2.66,2.25,1.80,1.34,0.84,0.34,-0.18,-0.70,-1.20,-1.70,-2.19,-2.65,-3.09,-3.49,-3.86,-4.19,-4.46,-4.69,-4.86,-4.96,-5,-4.97,-4.90,-4.78,-4.62,-4.43,-4.20,-3.96,-3.70,-3.42,-3.14,-2.86,-2.58,-2.30,-2.04,-1.80,-1.57,-1.38,-1.22,-1.10,-1.03,-1\r\r\nPARAM_ANGLE_X=0,-0,-0.02,-0.04,-0.06,-0.10,-0.14,-0.19,-0.24,-0.30,-0.37,-0.44,-0.52,-0.60,-0.69,-0.78,-0.88,-0.98,-1.08,-1.19,-1.30,-1.41,-1.52,-1.64,-1.76,-1.88,-2,-2.13,-2.25,-2.38,-2.50,-2.62,-2.75,-2.87,-3,-3.12,-3.24,-3.36,-3.48,-3.59,-3.70,-3.81,-3.92,-4.02,-4.12,-4.22,-4.31,-4.40,-4.48,-4.56,-4.63,-4.70,-4.76,-4.81,-4.86,-4.90,-4.94,-4.96,-4.98,-5,-5,-4.99,-4.97,-4.93,-4.87,-4.80,-4.72,-4.62,-4.51,-4.39,-4.26,-4.11,-3.96,-3.79,-3.62,-3.44,-3.25,-3.05,-2.84,-2.63,-2.41,-2.18,-1.95,-1.72,-1.48,-1.24,-0.99,-0.75,-0.50,-0.25,0,0.25,0.50,0.75,0.99,1.24,1.48,1.72,1.95,2.18,2.41,2.63,2.84,3.05,3.25,3.44,3.62,3.79,3.96,4.11,4.26,4.39,4.51,4.62,4.72,4.80,4.87,4.93,4.97,4.99,5,5,4.99,4.98,4.97,4.95,4.92,4.90,4.86,4.83,4.79,4.74,4.70,4.65,4.59,4.53,4.47,4.40,4.33,4.26,4.18,4.10,4.02,3.93,3.84,3.75,3.65,3.55,3.44,3.34,3.23,3.11,3,2.88,2.75,2.63,2.50,2.37,2.23,2.10,1.95,1.81,1.67,1.52,1.37,1.21,1.06,0.90,0.74,0.57,0.41,0.23,0.06,-0.11,-0.29,-0.47,-0.65,-0.83,-1.02,-1.21,-1.40,-1.59,-1.79,-1.98,-2.18,-2.38,-2.59,-2.79,-3,-3.21,-3.42,-3.61,-3.79,-3.97,-4.14,-4.29,-4.44,-4.58,-4.72,-4.84,-4.96,-5.06,-5.17,-5.26,-5.35,-5.43,-5.50,-5.57,-5.63,-5.69,-5.74,-5.79,-5.83,-5.86,-5.89,-5.92,-5.94,-5.96,-5.98,-5.99,-5.99,-6,-6,-5.96,-5.86,-5.71,-5.50,-5.25,-4.96,-4.64,-4.29,-3.93,-3.54,-3.15,-2.75,-2.35,-1.95,-1.57,-1.19,-0.83,-0.49,-0.17,0.11,0.37,0.58,0.76,0.89,0.97,1,0.98,0.92,0.83,0.72,0.57,0.40,0.22,0.03,-0.18,-0.39,-0.61,-0.82,-1.03,-1.22,-1.40,-1.57,-1.72,-1.83,-1.92,-1.98,-2\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.08,0.08,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.01,0.01,0,-0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0.01,0.01,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0,-0.01,-0.01,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0,-0,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,-0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_B2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.29,0.44,0.62,0.82,1.05,1.29,1.55,1.84,2.13,2.44,2.75,3.06,3.39,3.71,4.04,4.35,4.67,4.98,5.27,5.56,5.82,6.08,6.31,6.52,6.71,6.87,7,7.11,7.21,7.31,7.40,7.48,7.55,7.62,7.67,7.73,7.77,7.82,7.85,7.89,7.91,7.94,7.95,7.97,7.98,7.99,8,8,8.01,8.01,8.01,8.01,8.01,8,8,8,8,7.95,7.80,7.55,7.22,6.81,6.33,5.79,5.19,4.55,3.86,3.12,2.37,1.58,0.80,0,-0.80,-1.58,-2.37,-3.12,-3.86,-4.55,-5.19,-5.79,-6.33,-6.81,-7.22,-7.55,-7.80,-7.95,-8,-8,-7.99,-7.97,-7.94,-7.91,-7.88,-7.83,-7.79,-7.73,-7.67,-7.60,-7.53,-7.45,-7.37,-7.28,-7.19,-7.09,-6.99,-6.88,-6.77,-6.65,-6.53,-6.40,-6.27,-6.14,-6,-5.86,-5.72,-5.57,-5.42,-5.27,-5.11,-4.96,-4.79,-4.63,-4.46,-4.30,-4.13,-3.95,-3.78,-3.60,-3.42,-3.24,-3.06,-2.88,-2.70,-2.52,-2.33,-2.15,-1.96,-1.78,-1.59,-1.41,-1.22,-1.04,-0.85,-0.67,-0.48,-0.30,-0.12,0.06,0.24,0.42,0.60,0.78,0.95,1.13,1.30,1.46,1.63,1.79,1.96,2.11,2.27,2.42,2.57,2.72,2.86,3,3.14,3.27,3.40,3.53,3.65,3.77,3.88,3.99,4.09,4.19,4.28,4.37,4.45,4.53,4.60,4.67,4.73,4.79,4.83,4.88,4.91,4.94,4.97,4.99,5,5,4.98,4.91,4.81,4.66,4.49,4.28,4.04,3.78,3.49,3.19,2.86,2.52,2.16,1.80,1.42,1.04,0.65,0.26,-0.13,-0.52,-0.91,-1.29,-1.66,-2.02,-2.37,-2.71,-3.03,-3.33,-3.62,-3.88,-4.12,-4.33,-4.52,-4.68,-4.80,-4.89,-4.95,-4.97,-4.94,-4.84,-4.70,-4.50,-4.26,-3.98,-3.68,-3.36,-3.01,-2.66,-2.31,-1.96,-1.61,-1.29,-0.99,-0.71,-0.47,-0.27,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.02,-0.03,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.32,-0.38,-0.44,-0.50,-0.57,-0.63,-0.70,-0.77,-0.85,-0.92,-0.99,-1.06,-1.14,-1.21,-1.28,-1.35,-1.41,-1.48,-1.54,-1.60,-1.66,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.99,-2,-2,-2,-1.99,-1.98,-1.97,-1.95,-1.93,-1.90,-1.87,-1.84,-1.80,-1.76,-1.72,-1.67,-1.62,-1.57,-1.51,-1.46,-1.40,-1.33,-1.27,-1.20,-1.13,-1.05,-0.98,-0.90,-0.82,-0.74,-0.66,-0.58,-0.49,-0.41,-0.32,-0.23,-0.14,-0.05,0.04,0.14,0.23,0.33,0.42,0.52,0.61,0.71,0.81,0.90,1,1.10,1.20,1.29,1.38,1.47,1.55,1.63,1.71,1.79,1.86,1.93,2,2.06,2.12,2.18,2.24,2.29,2.34,2.39,2.44,2.49,2.53,2.57,2.61,2.64,2.68,2.71,2.74,2.77,2.79,2.82,2.84,2.86,2.88,2.90,2.92,2.93,2.94,2.95,2.96,2.97,2.98,2.99,2.99,3,3,3,3,3,3,3,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3.01,3,2.99,2.98,2.96,2.95,2.92,2.90,2.87,2.84,2.80,2.75,2.71,2.65,2.59,2.53,2.46,2.38,2.30,2.20,2.11,2,1.88,1.75,1.62,1.48,1.33,1.18,1.03,0.87,0.71,0.55,0.39,0.22,0.05,-0.12,-0.29,-0.46,-0.63,-0.81,-0.98,-1.15,-1.32,-1.48,-1.65,-1.81,-1.96,-2.12,-2.27,-2.42,-2.56,-2.70,-2.83,-2.96,-3.09,-3.20,-3.31,-3.41,-3.51,-3.60,-3.68,-3.75,-3.81,-3.87,-3.92,-3.95,-3.98,-3.99,-4,-4,-3.98,-3.96,-3.94,-3.90,-3.86,-3.82,-3.76,-3.70,-3.64,-3.57,-3.50,-3.42,-3.33,-3.25,-3.16,-3.06,-2.97,-2.87,-2.77,-2.66,-2.56,-2.45,-2.34,-2.23,-2.12,-2.01,-1.90,-1.80,-1.69,-1.58,-1.47,-1.37,-1.27,-1.17,-1.07,-0.97,-0.88,-0.79,-0.70,-0.62,-0.54,-0.47,-0.40,-0.33,-0.27,-0.22,-0.17,-0.13,-0.09,-0.06,-0.03,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.02,0.04,0.06,0.09,0.12,0.15,0.18,0.22,0.27,0.31,0.36,0.41,0.46,0.52,0.57,0.63,0.69,0.75,0.81,0.88,0.94,1,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.54,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.98,1.99,2,2,1.99,1.97,1.94,1.89,1.83,1.76,1.67,1.58,1.48,1.37,1.25,1.12,0.99,0.85,0.70,0.55,0.40,0.24,0.08,-0.08,-0.25,-0.42,-0.58,-0.75,-0.92,-1.08,-1.24,-1.40,-1.55,-1.70,-1.85,-1.99,-2.12,-2.25,-2.37,-2.48,-2.58,-2.67,-2.76,-2.83,-2.89,-2.94,-2.97,-2.99,-3,-3,-3,-2.99,-2.99,-2.98,-2.98,-2.97,-2.95,-2.94,-2.93,-2.91,-2.89,-2.87,-2.85,-2.82,-2.79,-2.76,-2.73,-2.70,-2.66,-2.62,-2.57,-2.53,-2.48,-2.42,-2.37,-2.31,-2.25,-2.18,-2.11,-2.04,-1.97,-1.89,-1.80,-1.72,-1.63,-1.53,-1.44,-1.33,-1.23,-1.12,-1,-0.88,-0.75,-0.63,-0.51,-0.39,-0.27,-0.15,-0.04,0.08,0.19,0.30,0.41,0.51,0.62,0.72,0.81,0.91,1,1.09,1.18,1.26,1.34,1.41,1.48,1.55,1.61,1.67,1.73,1.78,1.82,1.86,1.90,1.93,1.95,1.97,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.98,1.97,1.94,1.91,1.87,1.83,1.78,1.73,1.67,1.61,1.55,1.48,1.41,1.34,1.27,1.19,1.12,1.04,0.96,0.88,0.81,0.73,0.66,0.59,0.52,0.45,0.39,0.33,0.27,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,1.99,1.98,1.95,1.91,1.85,1.79,1.72,1.64,1.55,1.45,1.34,1.23,1.10,0.97,0.84,0.69,0.54,0.39,0.23,0.06,-0.11,-0.28,-0.46,-0.64,-0.83,-1.01,-1.20,-1.40,-1.59,-1.78,-1.98,-2.18,-2.37,-2.57,-2.77,-2.97,-3.16,-3.36,-3.55,-3.74,-3.93,-4.12,-4.30,-4.48,-4.66,-4.83,-5,-5.17,-5.33,-5.48,-5.63,-5.77,-5.91,-6.04,-6.16,-6.28,-6.39,-6.49,-6.58,-6.66,-6.74,-6.81,-6.86,-6.91,-6.95,-6.98,-6.99,-7,-6.97,-6.88,-6.74,-6.56,-6.32,-6.04,-5.73,-5.38,-5,-4.59,-4.17,-3.71,-3.25,-2.78,-2.30,-1.81,-1.31,-0.83,-0.35,0.12,0.58,1.02,1.44,1.85,2.22,2.57,2.88,3.16,3.41,3.61,3.78,3.90,3.97,4,3.95,3.83,3.62,3.36,3.04,2.66,2.25,1.80,1.34,0.84,0.34,-0.18,-0.70,-1.20,-1.70,-2.19,-2.65,-3.09,-3.49,-3.86,-4.19,-4.46,-4.69,-4.86,-4.96,-5,-4.97,-4.90,-4.78,-4.62,-4.43,-4.20,-3.96,-3.70,-3.42,-3.14,-2.86,-2.58,-2.30,-2.04,-1.80,-1.57,-1.38,-1.22,-1.10,-1.03,-1\r\r\nPARAM_ANGLE_X=0,-0,-0.02,-0.04,-0.06,-0.10,-0.14,-0.19,-0.24,-0.30,-0.37,-0.44,-0.52,-0.60,-0.69,-0.78,-0.88,-0.98,-1.08,-1.19,-1.30,-1.41,-1.52,-1.64,-1.76,-1.88,-2,-2.13,-2.25,-2.38,-2.50,-2.62,-2.75,-2.87,-3,-3.12,-3.24,-3.36,-3.48,-3.59,-3.70,-3.81,-3.92,-4.02,-4.12,-4.22,-4.31,-4.40,-4.48,-4.56,-4.63,-4.70,-4.76,-4.81,-4.86,-4.90,-4.94,-4.96,-4.98,-5,-5,-4.99,-4.97,-4.93,-4.87,-4.80,-4.72,-4.62,-4.51,-4.39,-4.26,-4.11,-3.96,-3.79,-3.62,-3.44,-3.25,-3.05,-2.84,-2.63,-2.41,-2.18,-1.95,-1.72,-1.48,-1.24,-0.99,-0.75,-0.50,-0.25,0,0.25,0.50,0.75,0.99,1.24,1.48,1.72,1.95,2.18,2.41,2.63,2.84,3.05,3.25,3.44,3.62,3.79,3.96,4.11,4.26,4.39,4.51,4.62,4.72,4.80,4.87,4.93,4.97,4.99,5,5,4.99,4.98,4.97,4.95,4.92,4.90,4.86,4.83,4.79,4.74,4.70,4.65,4.59,4.53,4.47,4.40,4.33,4.26,4.18,4.10,4.02,3.93,3.84,3.75,3.65,3.55,3.44,3.34,3.23,3.11,3,2.88,2.75,2.63,2.50,2.37,2.23,2.10,1.95,1.81,1.67,1.52,1.37,1.21,1.06,0.90,0.74,0.57,0.41,0.23,0.06,-0.11,-0.29,-0.47,-0.65,-0.83,-1.02,-1.21,-1.40,-1.59,-1.79,-1.98,-2.18,-2.38,-2.59,-2.79,-3,-3.21,-3.42,-3.61,-3.79,-3.97,-4.14,-4.29,-4.44,-4.58,-4.72,-4.84,-4.96,-5.06,-5.17,-5.26,-5.35,-5.43,-5.50,-5.57,-5.63,-5.69,-5.74,-5.79,-5.83,-5.86,-5.89,-5.92,-5.94,-5.96,-5.98,-5.99,-5.99,-6,-6,-5.96,-5.86,-5.71,-5.50,-5.25,-4.96,-4.64,-4.29,-3.93,-3.54,-3.15,-2.75,-2.35,-1.95,-1.57,-1.19,-0.83,-0.49,-0.17,0.11,0.37,0.58,0.76,0.89,0.97,1,0.98,0.92,0.83,0.72,0.57,0.40,0.22,0.03,-0.18,-0.39,-0.61,-0.82,-1.03,-1.22,-1.40,-1.57,-1.72,-1.83,-1.92,-1.98,-2\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.19,0.50,0.72,0.81,0.84,0.86,0.89,0.91,0.92,0.94,0.95,0.96,0.97,0.98,0.98,0.99,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0.01,0.01,0.01,0.02,0.02,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.08,0.08,0.09,0.10,0.10,0.11,0.12,0.12,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.09,0.09,0.08,0.08,0.07,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.01,0.01,0,-0,-0.01,-0.02,-0.02,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.17,-0.17,-0.17,-0.18,-0.18,-0.18,-0.18,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.18,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.16,-0.15,-0.15,-0.15,-0.14,-0.14,-0.14,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.11,-0.11,-0.10,-0.10,-0.09,-0.09,-0.08,-0.08,-0.07,-0.07,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,0,0.01,0.01,0.02,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.10,0.11,0.12,0.13,0.14,0.15,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.22,0.22,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.25,0.25,0.24,0.24,0.23,0.22,0.21,0.21,0.20,0.19,0.17,0.16,0.15,0.14,0.13,0.12,0.11,0.09,0.08,0.07,0.06,0.05,0.04,0.03,0.02,0.01,0,-0.01,-0.01,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.02,-0.02,-0.02,-0.02,-0.01,-0.01,-0.01,-0.01,-0,-0,-0,-0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.08,-0.10,-0.11,-0.12,-0.13,-0.14,-0.16,-0.17,-0.18,-0.19,-0.20,-0.21,-0.22,-0.23,-0.23,-0.24,-0.24,-0.25,-0.25,-0.25,-0.25,-0.25,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.29,-0.28,-0.28,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.23,-0.22,-0.22,-0.21,-0.20,-0.20,-0.19,-0.18,-0.17,-0.17,-0.16,-0.15,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0.01,0.02,0.03,0.03,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.11,0.12,0.12,0.12,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.12,0.12,0.12,0.12,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.08,0.07,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.07,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.06,-0.06,-0.05,-0.05,-0.04,-0.04,-0.03,-0.03,-0.02,-0.02,-0.01,-0.01,-0,-0,-0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_C.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.78,-0.85,-0.91,-0.98,-1.06,-1.13,-1.20,-1.28,-1.35,-1.43,-1.50,-1.57,-1.65,-1.72,-1.80,-1.87,-1.94,-2.02,-2.09,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_C2.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0,-0,-0.01,-0.02,-0.04,-0.06,-0.08,-0.11,-0.15,-0.18,-0.22,-0.27,-0.31,-0.36,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.78,-0.85,-0.91,-0.98,-1.06,-1.13,-1.20,-1.28,-1.35,-1.43,-1.50,-1.57,-1.65,-1.72,-1.80,-1.87,-1.94,-2.02,-2.09,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0.01,0.01,0.03,0.04,0.06,0.08,0.10,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.66,0.70,0.75,0.80,0.85,0.90,0.95,1,1.05,1.10,1.15,1.20,1.25,1.30,1.34,1.39,1.44,1.48,1.53,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/idle_C2_copy.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_Z=-30,-29.62,-28.55,-26.87,-24.74,-22.20,-19.42,-16.49,-13.51,-10.58,-7.80,-5.26,-3.13,-1.45,-0.38,0,-0.02,-0.08,-0.17,-0.30,-0.45,-0.64,-0.86,-1.11,-1.38,-1.68,-2,-2.34,-2.70,-3.07,-3.47,-3.87,-4.29,-4.73,-5.16,-5.61,-6.06,-6.52,-6.98,-7.45,-7.91,-8.37,-8.82,-9.26,-9.71,-10.15,-10.58,-10.99,-11.39,-11.78,-12.15,-12.51,-12.85,-13.17,-13.47,-13.74,-13.99,-14.22,-14.42,-14.59,-14.74,-14.85,-14.93,-14.98,-15,-15,-15,-15,-15,-14.85,-14.50,-14.06,-13.63,-13.29,-13.07,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13.01,-13.03,-13.07,-13.12,-13.18,-13.24,-13.31,-13.38,-13.45,-13.53,-13.60,-13.67,-13.74,-13.80,-13.86,-13.91,-13.94,-13.97,-13.99,-14,-13.97,-13.89,-13.76,-13.59,-13.38,-13.14,-12.87,-12.58,-12.26,-11.93,-11.59,-11.23,-10.86,-10.50,-10.14,-9.78,-9.43,-9.08,-8.75,-8.43,-8.13,-7.85,-7.60,-7.37,-7.17,-7,-6.84,-6.69,-6.54,-6.39,-6.25,-6.11,-5.98,-5.84,-5.72,-5.59,-5.47,-5.35,-5.23,-5.11,-5,-4.89,-4.78,-4.67,-4.57,-4.46,-4.36,-4.26,-4.15,-4.06,-3.96,-3.86,-3.76,-3.66,-3.56,-3.46,-3.36,-3.27,-3.17,-3.07,-2.97,-2.86,-2.76,-2.66,-2.55,-2.45,-2.34,-2.23,-2.12,-2.01,-1.89,-1.78,-1.66,-1.54,-1.41,-1.28,-1.15,-1.02,-0.89,-0.75,-0.61,-0.46,-0.31,-0.16,0,0.18,0.39,0.65,0.92,1.23,1.56,1.91,2.27,2.65,3.05,3.46,3.87,4.28,4.70,5.11,5.51,5.91,6.30,6.67,7.03,7.36,7.67,7.96,8.22,8.44,8.64,8.79,8.91,8.98,9,8.99,8.97,8.93,8.87,8.81,8.72,8.63,8.52,8.41,8.28,8.14,7.99,7.83,7.67,7.49,7.31,7.12,6.93,6.73,6.52,6.31,6.10,5.88,5.66,5.44,5.21,4.98,4.76,4.53,4.30,4.07,3.85,3.62,3.40,3.18,2.97,2.75,2.54,2.34,2.14,1.95,1.76,1.58,1.41,1.24,1.09,0.94,0.80,0.67,0.55,0.44,0.34,0.25,0.18,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=-10,0,-0,-0.01,-0.02,-0.04,-0.06,-0.09,-0.12,-0.16,-0.20,-0.24,-0.29,-0.34,-0.39,-0.44,-0.50,-0.56,-0.63,-0.69,-0.76,-0.83,-0.90,-0.97,-1.04,-1.11,-1.19,-1.26,-1.34,-1.41,-1.49,-1.57,-1.64,-1.72,-1.79,-1.87,-1.94,-2.01,-2.08,-2.15,-2.22,-2.29,-2.35,-2.41,-2.47,-2.53,-2.59,-2.64,-2.69,-2.73,-2.78,-2.82,-2.85,-2.89,-2.92,-2.94,-2.96,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.97,-2.96,-2.94,-2.91,-2.89,-2.86,-2.83,-2.79,-2.76,-2.72,-2.67,-2.63,-2.58,-2.53,-2.48,-2.43,-2.37,-2.31,-2.25,-2.19,-2.12,-2.06,-1.99,-1.92,-1.85,-1.78,-1.70,-1.63,-1.55,-1.48,-1.40,-1.32,-1.24,-1.16,-1.08,-1,-0.92,-0.83,-0.75,-0.67,-0.58,-0.50,-0.42,-0.33,-0.25,-0.17,-0.08,-0,0.08,0.16,0.24,0.32,0.40,0.48,0.55,0.63,0.70,0.78,0.85,0.92,0.99,1.06,1.12,1.19,1.25,1.31,1.37,1.43,1.48,1.53,1.58,1.63,1.67,1.72,1.76,1.79,1.83,1.86,1.89,1.91,1.94,1.96,1.97,1.98,1.99,2,2,2,1.99,1.98,1.97,1.96,1.94,1.91,1.89,1.86,1.83,1.79,1.76,1.72,1.67,1.63,1.58,1.53,1.48,1.43,1.37,1.31,1.25,1.19,1.12,1.06,0.99,0.92,0.85,0.78,0.70,0.63,0.55,0.48,0.40,0.32,0.24,0.16,0.08,-0,-0.08,-0.17,-0.25,-0.33,-0.42,-0.50,-0.58,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.16,-1.24,-1.32,-1.40,-1.48,-1.55,-1.63,-1.70,-1.78,-1.85,-1.92,-1.99,-2.06,-2.12,-2.19,-2.25,-2.31,-2.37,-2.43,-2.48,-2.53,-2.58,-2.63,-2.67,-2.72,-2.76,-2.79,-2.83,-2.86,-2.89,-2.91,-2.94,-2.96,-2.97,-2.98,-2.99,-3,-3,-3,-2.99,-2.98,-2.96,-2.94,-2.91,-2.88,-2.84,-2.80,-2.76,-2.71,-2.66,-2.61,-2.56,-2.50,-2.44,-2.37,-2.31,-2.24,-2.17,-2.10,-2.03,-1.96,-1.89,-1.81,-1.74,-1.66,-1.59,-1.51,-1.43,-1.36,-1.28,-1.21,-1.13,-1.06,-0.99,-0.92,-0.85,-0.78,-0.71,-0.65,-0.59,-0.53,-0.47,-0.41,-0.36,-0.31,-0.27,-0.22,-0.18,-0.15,-0.11,-0.08,-0.06,-0.04,-0.02,-0.01,-0,0\r\r\nPARAM_BODY_ANGLE_Z=10,0,0,0.01,0.02,0.03,0.04,0.06,0.08,0.11,0.13,0.16,0.19,0.22,0.26,0.30,0.33,0.38,0.42,0.46,0.50,0.55,0.60,0.65,0.69,0.74,0.79,0.84,0.89,0.94,0.99,1.04,1.10,1.14,1.20,1.24,1.29,1.34,1.39,1.43,1.48,1.52,1.57,1.61,1.65,1.69,1.72,1.76,1.79,1.82,1.85,1.88,1.90,1.92,1.94,1.96,1.97,1.99,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.95,1.93,1.92,1.90,1.88,1.85,1.83,1.80,1.78,1.75,1.72,1.69,1.66,1.62,1.59,1.55,1.51,1.47,1.43,1.39,1.35,1.31,1.27,1.22,1.18,1.13,1.09,1.04,0.99,0.94,0.90,0.85,0.80,0.75,0.70,0.65,0.60,0.55,0.50,0.45,0.40,0.35,0.30,0.25,0.20,0.15,0.10,0.06,0.01,-0.04,-0.09,-0.13,-0.18,-0.22,-0.27,-0.31,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.75,-0.78,-0.80,-0.83,-0.85,-0.88,-0.90,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-1,-1,-1,-1,-1,-0.99,-0.98,-0.97,-0.96,-0.95,-0.93,-0.92,-0.90,-0.88,-0.85,-0.83,-0.80,-0.78,-0.75,-0.72,-0.69,-0.66,-0.62,-0.59,-0.55,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.22,-0.18,-0.13,-0.09,-0.04,0.01,0.06,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.94,0.99,1.04,1.09,1.13,1.18,1.22,1.27,1.31,1.35,1.39,1.43,1.47,1.51,1.55,1.59,1.62,1.66,1.69,1.72,1.75,1.78,1.80,1.83,1.85,1.88,1.90,1.92,1.93,1.95,1.96,1.97,1.98,1.99,2,2,2,2,1.99,1.98,1.97,1.96,1.94,1.92,1.89,1.87,1.84,1.81,1.78,1.74,1.70,1.67,1.62,1.58,1.54,1.50,1.45,1.40,1.35,1.31,1.26,1.21,1.16,1.11,1.06,1.01,0.96,0.90,0.86,0.80,0.76,0.71,0.66,0.61,0.57,0.52,0.48,0.43,0.39,0.35,0.31,0.28,0.24,0.21,0.18,0.15,0.12,0.10,0.08,0.06,0.04,0.03,0.01,0.01,0,0\r\r\nPARAM_ANGLE_Y=-30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.13,4.48,4.76,4.94,5.01,4.97,4.85,4.68,4.45,4.18,3.86,3.52,3.16,2.79,2.41,2.04,1.68,1.34,1.03,0.74,0.49,0.28,0.12,0,-0.10,-0.21,-0.30,-0.40,-0.49,-0.59,-0.68,-0.76,-0.85,-0.93,-1.01,-1.09,-1.17,-1.25,-1.32,-1.40,-1.47,-1.54,-1.61,-1.68,-1.75,-1.81,-1.88,-1.95,-2.01,-2.07,-2.14,-2.20,-2.26,-2.33,-2.39,-2.45,-2.51,-2.57,-2.63,-2.69,-2.75,-2.82,-2.88,-2.94,-3,-3.07,-3.13,-3.18,-3.24,-3.28,-3.33,-3.37,-3.42,-3.46,-3.50,-3.54,-3.58,-3.62,-3.67,-3.72,-3.77,-3.82,-3.87,-3.94,-4,-4.13,-4.34,-4.61,-4.91,-5.20,-5.46,-5.69,-5.86,-5.96,-6,-5.99,-5.95,-5.90,-5.83,-5.74,-5.65,-5.56,-5.46,-5.37,-5.28,-5.20,-5.13,-5.08,-5.04,-5.01,-5,-5.01,-5.03,-5.07,-5.13,-5.19,-5.27,-5.36,-5.46,-5.58,-5.70,-5.82,-5.96,-6.10,-6.25,-6.41,-6.56,-6.72,-6.89,-7.06,-7.23,-7.39,-7.56,-7.73,-7.90,-8.07,-8.23,-8.39,-8.55,-8.70,-8.85,-8.99,-9.12,-9.25,-9.37,-9.48,-9.58,-9.67,-9.76,-9.83,-9.89,-9.94,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.97,-9.95,-9.93,-9.90,-9.86,-9.82,-9.78,-9.74,-9.70,-9.65,-9.60,-9.55,-9.50,-9.45,-9.40,-9.35,-9.30,-9.26,-9.22,-9.18,-9.14,-9.10,-9.07,-9.05,-9.03,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.96,-8.86,-8.70,-8.48,-8.22,-7.91,-7.56,-7.19,-6.79,-6.37,-5.93,-5.48,-5.02,-4.56,-4.10,-3.64,-3.20,-2.76,-2.35,-1.95,-1.59,-1.25,-0.94,-0.67,-0.44,-0.25,-0.11,-0.03,0\r\r\nPARAM_ANGLE_X=30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.32,-0.53,-0.80,-1.09,-1.42,-1.77,-2.13,-2.50,-2.88,-3.26,-3.63,-3.99,-4.33,-4.65,-4.94,-5.20,-5.42,-5.61,-5.75,-5.83,-5.86,-5.84,-5.78,-5.71,-5.62,-5.52,-5.42,-5.32,-5.22,-5.14,-5.06,-5,-4.94,-4.88,-4.83,-4.77,-4.72,-4.67,-4.62,-4.57,-4.52,-4.47,-4.42,-4.37,-4.33,-4.28,-4.24,-4.19,-4.15,-4.10,-4.06,-4.01,-3.97,-3.93,-3.88,-3.84,-3.79,-3.75,-3.70,-3.66,-3.61,-3.56,-3.52,-3.47,-3.42,-3.37,-3.32,-3.27,-3.22,-3.17,-3.11,-3.06,-3,-2.93,-2.86,-2.78,-2.70,-2.62,-2.53,-2.44,-2.35,-2.25,-2.15,-2.04,-1.94,-1.83,-1.72,-1.60,-1.49,-1.37,-1.25,-1.13,-1,-0.77,-0.41,0.05,0.55,1.07,1.58,2.04,2.43,2.76,3,3.25,3.51,3.76,4.01,4.26,4.50,4.72,4.93,5.13,5.32,5.48,5.62,5.75,5.85,5.94,6,6.06,6.11,6.17,6.22,6.27,6.32,6.36,6.40,6.44,6.48,6.52,6.56,6.59,6.62,6.65,6.68,6.71,6.73,6.76,6.78,6.80,6.82,6.84,6.86,6.87,6.89,6.90,6.91,6.93,6.94,6.95,6.96,6.96,6.97,6.98,6.98,6.99,6.99,6.99,7,7,7,7,7,6.92,6.68,6.30,5.81,5.22,4.57,3.87,3.14,2.40,1.68,0.98,0.35,-0.21,-0.66,-1,-1.26,-1.51,-1.74,-1.96,-2.16,-2.35,-2.53,-2.69,-2.84,-2.98,-3.11,-3.22,-3.33,-3.43,-3.51,-3.59,-3.66,-3.72,-3.78,-3.82,-3.86,-3.90,-3.92,-3.95,-3.97,-3.98,-3.99,-4,-4,-4,-3.99,-3.97,-3.94,-3.90,-3.85,-3.79,-3.72,-3.64,-3.55,-3.45,-3.35,-3.24,-3.13,-3.01,-2.89,-2.76,-2.63,-2.50,-2.37,-2.24,-2.10,-1.97,-1.84,-1.71,-1.58,-1.46,-1.34,-1.22,-1.11,-1,-0.89,-0.80,-0.71,-0.62,-0.55,-0.48,-0.42,-0.36,-0.31,-0.27,-0.22,-0.19,-0.16,-0.13,-0.10,-0.08,-0.07,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0,-0,-0,-0,-0,0\r\r\nSWING_SKIRT=0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nRIBBON_BACK=0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_X=-0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_L_ARM=0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.07,0.07,0.08,0.09,0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.18,0.19,0.20,0.20,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.20,0.20,0.20,0.20,0.20,0.20,0.19,0.19,0.19,0.19,0.18,0.18,0.18,0.17,0.17,0.17,0.17,0.16,0.16,0.16,0.15,0.15,0.14,0.14,0.14,0.13,0.13,0.13,0.12,0.12,0.12,0.11,0.11,0.11,0.10,0.10,0.10,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.05,0.04,0.03,0.02,0.01,-0.01,-0.02,-0.04,-0.05,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.16,-0.17,-0.19,-0.20,-0.21,-0.21,-0.22,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.20,-0.20,-0.20,-0.19,-0.19,-0.18,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.14,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.09,-0.08,-0.07,-0.06,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.01,-0.01,-0,0.01,0.01,0.02,0.03,0.03,0.04,0.04,0.05,0.06,0.06,0.07,0.07,0.08,0.08,0.08,0.09,0.09,0.09,0.10,0.10,0.10,0.10,0.10,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.10,0.10,0.10,0.10,0.10,0.10,0.09,0.09,0.09,0.09,0.08,0.08,0.08,0.08,0.07,0.07,0.07,0.07,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.03,0.03,0.03,0.03,0.02,0.02,0.02,0.02,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.02,-0.02,-0.02,-0.02,-0.02,-0.03,-0.03,-0.03,-0.04,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.08,-0.09,-0.10,-0.10,-0.11,-0.12,-0.12,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0,0,0,0,0.01,0.01,0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.03,0.03,0.04,0.04,0.04,0.04,0.04,0.04,0.04,0.05,0.05,0.05,0.05,0.05,0.05,0.06,0.06,0.06,0.06,0.06,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.08,0.09,0.09,0.10,0.10,0.11,0.11,0.12,0.13,0.13,0.14,0.14,0.15,0.15,0.16,0.16,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.19,0.19,0.19,0.19,0.19,0.19,0.20,0.20,0.20,0.20,0.20,0.21,0.21,0.21,0.21,0.22,0.22,0.22,0.22,0.23,0.23,0.23,0.23,0.24,0.24,0.24,0.25,0.25,0.25,0.25,0.26,0.26,0.26,0.27,0.27,0.27,0.28,0.28,0.28,0.29,0.29,0.29,0.30,0.30,0.30,0.30,0.31,0.31,0.31,0.31,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.32,0.32,0.32,0.31,0.31,0.30,0.30,0.29,0.29,0.28,0.27,0.27,0.26,0.25,0.25,0.24,0.23,0.22,0.22,0.21,0.20,0.19,0.18,0.17,0.17,0.16,0.15,0.14,0.13,0.12,0.12,0.11,0.10,0.09,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.04,0.03,0.03,0.02,0.02,0.02,0.01,0.01,0.01,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_NECK=0\r\r\nVISIBLE:PARTS_RIBBON_BACK=0\r\r\nVISIBLE:PARTS_RIGHT_ARM=0\r\r\nVISIBLE:PARTS_LEFT_ARM=0\r\r\nVISIBLE:PARTS_LEG=0\r\r\nVISIBLE:PARTS_SKIRT=0\r\r\nVISIBLE:PARTS_01_BODY=0\r\r\nVISIBLE:PARTS_RIBBON_BREAST=0\r\r\nVISIBLE:PARTS_LEG_B=1\r\r\nVISIBLE:PARTS_RIGHT_ARM_B=1\r\r\nVISIBLE:PARTS_LEFT_ARM_B=1\r\r\nVISIBLE:PARTS_BODY_B=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/kurakura1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BASE_X=-1.76,-3.70,-6.12,-8.80,-11.65,-14.45,-17.06,-19.37,-21.32,-22.78,-23.69,-24,-23.99,-23.95,-23.90,-23.82,-23.74,-23.65,-23.55,-23.45,-23.35,-23.26,-23.18,-23.10,-23.05,-23.01,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23\nPARAM_BASE_Y=8.58,16.00,23.24,29.06,32.75,34,31.44,25.24,17,8.76,2.56,0,0.06,0.24,0.52,0.88,1.30,1.76,2.25,2.75,3.24,3.70,4.12,4.48,4.76,4.94,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\nPARAM_ANGLE_Z=-1.99,-4.16,-6.88,-9.90,-13.10,-16.25,-19.19,-21.79,-23.98,-25.62,-26.65,-27,-26.30,-24.35,-21.27,-17.36,-12.69,-7.61,-2.24,3.24,8.61,13.69,18.36,22.27,25.35,27.30,28,27.76,27.07,25.99,24.58,22.92,21.01,18.93,16.75,14.50,12.25,10.07,7.99,6.08,4.42,3.01,1.93,1.24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BODY_ANGLE_X=2.27,4.24,6.15,7.69,8.67,9,8.98,8.93,8.85,8.74,8.59,8.43,8.23,8.02,7.78,7.53,7.25,6.97,6.66,6.35,6.03,5.70,5.36,5.02,4.67,4.33,3.98,3.64,3.30,2.97,2.65,2.34,2.03,1.75,1.47,1.22,0.98,0.77,0.57,0.41,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.59,-1.23,-2.04,-2.93,-3.88,-4.82,-5.69,-6.46,-7.11,-7.59,-7.90,-8,-7.99,-7.96,-7.91,-7.84,-7.74,-7.62,-7.47,-7.29,-7.08,-6.83,-6.54,-6.22,-5.85,-5.45,-5,-4.53,-4.08,-3.65,-3.23,-2.83,-2.45,-2.09,-1.75,-1.44,-1.15,-0.90,-0.67,-0.47,-0.31,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=5.80,10.83,15.72,19.66,22.15,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23\nPARAM_ANGLE_X=0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/kurakura2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.57,0.53,0.47,0.42,0.35,0.28,0.21,0.15,0.08,0.03,-0.02,-0.06,-0.09,-0.11,-0.12,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.20,-27.77,-28.97,-29.73,-30,-29.32,-27.40,-24.37,-20.53,-15.95,-10.96,-5.69,-0.31,4.96,9.95,14.53,18.37,21.40,23.32,24,22.81,19.83,15.79,11.06,6.15,1.31,-3.28,-7.14,-10.25,-12.26,-13,-12.18,-10.04,-6.93,-3.08,1.20,5.67,10.20,14.60,18.70,22.41,25.48,27.90,29.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.73,28.97,27.79,26.23,24.39,22.31,20.05,17.71,15.31,12.90,10.58,8.40,6.36,4.56,2.99,1.72,0.79,0.20,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.96,9.85,9.66,9.41,9.10,8.73,8.29,7.82,7.29,6.73,6.12,5.49,4.81,4.12,3.40,2.67,1.91,1.15,0.38,-0.38,-1.15,-1.91,-2.67,-3.40,-4.12,-4.81,-5.49,-6.12,-6.73,-7.29,-7.82,-8.29,-8.73,-9.10,-9.41,-9.66,-9.85,-9.96,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.90,-5.10,-4.30,-3.53,-2.80,-2.12,-1.52,-1.00,-0.57,-0.26,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.43,-0.74,-1.12,-1.55,-2.05,-2.58,-3.14,-3.72,-4.31,-4.93,-5.53,-6.12,-6.70,-7.25,-7.77,-8.25,-8.68,-9.06,-9.39,-9.65,-9.84,-9.96,-10,-9.90,-9.61,-9.14,-8.52,-7.76,-6.90,-5.90,-4.85,-3.73,-2.55,-1.37,-0.15,1.05,2.24,3.40,4.51,5.54,6.49,7.36,8.13,8.78,9.30,9.68,9.92,10,9.93,9.73,9.40,8.96,8.43,7.83,7.13,6.39,5.61,4.79,3.96,3.10,2.26,1.43,0.62,-0.16,-0.88,-1.55,-2.16,-2.69,-3.15,-3.51,-3.78,-3.94,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=2.93,4.85,7.07,9.49,12.07,14.65,17.28,19.76,22.12,24.29,26.20,27.77,28.97,29.73,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.70,28.83,27.47,25.69,23.60,21.20,18.58,15.83,13,10.17,7.42,4.80,2.40,0.31,-1.47,-2.83,-3.70,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.52,8.26,6.43,4.35,2.18,0.16,-1.56,-2.88,-3.71,-4,-0.25,5.76,11.37,15.42,17,16.72,15.98,14.90,13.52,11.96,10.21,8.30,6.34,4.26,2.16,0,-2.54,-4.68,-6.51,-8.09,-9.42,-10.52,-11.44,-12.19,-12.79,-13.26,-13.59,-13.83,-13.96,-14,-13.81,-13.28,-12.44,-11.34,-10.05,-8.56,-6.95,-5.25,-3.50,-1.75,-0.05,1.56,3.05,4.34,5.44,6.28,6.81,7,6.94,6.76,6.49,6.12,5.69,5.21,4.68,4.13,3.57,3.01,2.47,1.96,1.48,1.06,0.70,0.40,0.18,0.05,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.36,0.53,0.69,0.82,0.91,0.94,0.93,0.89,0.84,0.78,0.70,0.61,0.53,0.44,0.35,0.27,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0.06,0.10,0.15,0.20,0.25,0.30,0.36,0.41,0.46,0.50,0.54,0.57,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.58,0.53,0.47,0.40,0.32,0.24,0.16,0.08,0.00,-0.06,-0.12,-0.17,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.80,0.68,0.53,0.37,0.20,0.02,-0.15,-0.32,-0.47,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.89,-0.87,-0.84,-0.81,-0.77,-0.74,-0.70,-0.66,-0.62,-0.57,-0.53,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.14,-0.08,-0.03,0.02,0.07,0.12,0.17,0.23,0.28,0.32,0.37,0.42,0.47,0.51,0.56,0.60,0.64,0.68,0.72,0.75,0.79,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.91,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0\nPARAM_BROW_L_SIDE=0.06,0.10,0.14,0.19,0.24,0.29,0.34,0.39,0.43,0.48,0.52,0.55,0.57,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.55,0.50,0.45,0.38,0.30,0.22,0.15,0.07,-0.00,-0.07,-0.13,-0.18,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0,0,0,0,0,0,0,0\nPARAM_BROW_R_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.56,0.52,0.47,0.41,0.34,0.27,0.20,0.13,0.06,0.00,-0.05,-0.09,-0.12,-0.14,-0.15,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0,0,0,0,0,0,0,0\nPARAM_BROW_R_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.85,0.84,0.84,0.84,0.84,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.93,0.94,0.95,0.96,0.97,0.98,0.98,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.05,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.32,-0.36,-0.40,-0.43,-0.45,-0.47,-0.49,-0.49,-0.47,-0.43,-0.36,-0.27,-0.16,-0.04,0.08,0.21,0.33,0.45,0.56,0.65,0.72,0.76,0.78,0.77,0.74,0.70,0.64,0.56,0.48,0.39,0.29,0.18,0.07,-0.03,-0.14,-0.25,-0.35,-0.44,-0.52,-0.60,-0.66,-0.70,-0.73,-0.74,-0.69,-0.59,-0.47,-0.33,-0.17,0.10,0.32,0.46,0.53,0.59,0.62,0.63,0.63,0.63,0.52,0.32,0.09,-0.16,-0.41,-0.62,-0.70,-0.71,-0.70,-0.69,-0.66,-0.62,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.25,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0.08,0.13,0.19,0.25,0.32,0.39,0.45,0.52,0.58,0.64,0.69,0.73,0.76,0.78,0.79,0.79,0.79,0.79,0.78,0.78,0.77,0.76,0.75,0.74,0.72,0.70,0.68,0.65,0.62,0.58,0.54,0.50,0.46,0.42,0.38,0.34,0.31,0.27,0.24,0.20,0.17,0.14,0.11,0.09,0.07,0.05,0.03,0.02,0.01,0.00,0,0.16,0.43,0.67,0.85,0.92,0.87,0.74,0.60,0.46,0.19,-0.01,-0.18,-0.34,-0.50,-0.73,-0.86,-0.94,-0.99,-1,-0.77,-0.37,-0.13,-0.11,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,0,0,0,0,0,0,0,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/kurakura3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.57,0.53,0.47,0.42,0.35,0.28,0.21,0.15,0.08,0.03,-0.02,-0.06,-0.09,-0.11,-0.12,-0.12,-0.12,-0.11,-0.10,-0.10,-0.09,-0.08,-0.07,-0.06,-0.05,-0.04,-0.03,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0\nPARAM_ANGLE_Z=-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.20,-27.77,-28.97,-29.73,-30,-29.32,-27.40,-24.37,-20.53,-15.95,-10.96,-5.69,-0.31,4.96,9.95,14.53,18.37,21.40,23.32,24,22.81,19.83,15.79,11.06,6.15,1.31,-3.28,-7.14,-10.25,-12.26,-13,-12.18,-10.04,-6.93,-3.08,1.20,5.67,10.20,14.60,18.70,22.41,25.48,27.90,29.46,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.73,28.97,27.79,26.23,24.39,22.31,20.05,17.71,15.31,12.90,10.58,8.40,6.36,4.56,2.99,1.72,0.79,0.20,0\nPARAM_BODY_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.96,9.85,9.66,9.41,9.10,8.73,8.29,7.82,7.29,6.73,6.12,5.49,4.81,4.12,3.40,2.67,1.91,1.15,0.38,-0.38,-1.15,-1.91,-2.67,-3.40,-4.12,-4.81,-5.49,-6.12,-6.73,-7.29,-7.82,-8.29,-8.73,-9.10,-9.41,-9.66,-9.85,-9.96,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.90,-5.10,-4.30,-3.53,-2.80,-2.12,-1.52,-1.00,-0.57,-0.26,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-0.43,-0.74,-1.12,-1.55,-2.05,-2.58,-3.14,-3.72,-4.31,-4.93,-5.53,-6.12,-6.70,-7.25,-7.77,-8.25,-8.68,-9.06,-9.39,-9.65,-9.84,-9.96,-10,-9.90,-9.61,-9.14,-8.52,-7.76,-6.90,-5.90,-4.85,-3.73,-2.55,-1.37,-0.15,1.05,2.24,3.40,4.51,5.54,6.49,7.36,8.13,8.78,9.30,9.68,9.92,10,9.93,9.73,9.40,8.96,8.43,7.83,7.13,6.39,5.61,4.79,3.96,3.10,2.26,1.43,0.62,-0.16,-0.88,-1.55,-2.16,-2.69,-3.15,-3.51,-3.78,-3.94,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0\nPARAM_ANGLE_Y=2.93,4.85,7.07,9.49,12.07,14.65,17.28,19.76,22.12,24.29,26.20,27.77,28.97,29.73,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.70,28.83,27.47,25.69,23.60,21.20,18.58,15.83,13,10.17,7.42,4.80,2.40,0.31,-1.47,-2.83,-3.70,-4,-3.96,-3.86,-3.71,-3.50,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.40,-0.23,-0.10,-0.03,0\nPARAM_ANGLE_X=0.98,1.62,2.36,3.16,4.02,4.88,5.76,6.59,7.37,8.10,8.73,9.26,9.66,9.91,10,9.52,8.26,6.43,4.35,2.18,0.16,-1.56,-2.88,-3.71,-4,-0.25,5.76,11.37,15.42,17,16.72,15.98,14.90,13.52,11.96,10.21,8.30,6.34,4.26,2.16,0,-2.54,-4.68,-6.51,-8.09,-9.42,-10.52,-11.44,-12.19,-12.79,-13.26,-13.59,-13.83,-13.96,-14,-13.81,-13.28,-12.44,-11.34,-10.05,-8.56,-6.95,-5.25,-3.50,-1.75,-0.05,1.56,3.05,4.34,5.44,6.28,6.81,7,6.94,6.76,6.49,6.12,5.69,5.21,4.68,4.13,3.57,3.01,2.47,1.96,1.48,1.06,0.70,0.40,0.18,0.05,0\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.36,0.53,0.69,0.82,0.91,0.94,0.93,0.89,0.84,0.78,0.70,0.61,0.53,0.44,0.35,0.27,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0.06,0.10,0.15,0.20,0.25,0.30,0.36,0.41,0.46,0.50,0.54,0.57,0.60,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.58,0.53,0.47,0.40,0.32,0.24,0.16,0.08,0.00,-0.06,-0.12,-0.17,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0\nPARAM_MOUTH_FORM=0.80,0.68,0.53,0.37,0.20,0.02,-0.15,-0.32,-0.47,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-1.00,-0.99,-0.98,-0.97,-0.96,-0.94,-0.92,-0.89,-0.87,-0.84,-0.81,-0.77,-0.74,-0.70,-0.66,-0.62,-0.57,-0.53,-0.48,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.14,-0.08,-0.03,0.02,0.07,0.12,0.17,0.23,0.28,0.32,0.37,0.42,0.47,0.51,0.56,0.60,0.64,0.68,0.72,0.75,0.79,0.82,0.85,0.88,0.90,0.92,0.94,0.96,0.97,0.99,0.99,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.95,0.93,0.92,0.91,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0.06,0.10,0.14,0.19,0.24,0.29,0.34,0.39,0.43,0.48,0.52,0.55,0.57,0.58,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.58,0.55,0.50,0.45,0.38,0.30,0.22,0.15,0.07,-0.00,-0.07,-0.13,-0.18,-0.21,-0.23,-0.24,-0.24,-0.23,-0.22,-0.21,-0.20,-0.18,-0.16,-0.14,-0.12,-0.10,-0.08,-0.07,-0.05,-0.04,-0.02,-0.01,-0.01,-0.00,0\nPARAM_BROW_R_ANGLE=0.06,0.10,0.14,0.19,0.24,0.29,0.35,0.40,0.44,0.49,0.52,0.56,0.58,0.59,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.60,0.59,0.56,0.52,0.47,0.41,0.34,0.27,0.20,0.13,0.06,0.00,-0.05,-0.09,-0.12,-0.14,-0.15,-0.15,-0.14,-0.14,-0.13,-0.12,-0.11,-0.10,-0.09,-0.08,-0.06,-0.05,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,-0.00,0\nPARAM_BROW_R_FORM=-0.10,-0.16,-0.24,-0.32,-0.40,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.10,-0.06,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,1.00,0.99,0.98,0.97,0.96,0.94,0.93,0.91,0.90,0.89,0.87,0.86,0.85,0.85,0.84,0.84,0.84,0.84,0.85,0.86,0.86,0.87,0.88,0.89,0.90,0.91,0.93,0.94,0.95,0.96,0.97,0.98,0.98,0.99,1.00,1.00,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_BALL_X=-0.05,-0.08,-0.12,-0.16,-0.20,-0.24,-0.28,-0.32,-0.36,-0.40,-0.43,-0.45,-0.47,-0.49,-0.49,-0.47,-0.43,-0.36,-0.27,-0.16,-0.04,0.08,0.21,0.33,0.45,0.56,0.65,0.72,0.76,0.78,0.77,0.74,0.70,0.64,0.56,0.48,0.39,0.29,0.18,0.07,-0.03,-0.14,-0.25,-0.35,-0.44,-0.52,-0.60,-0.66,-0.70,-0.73,-0.74,-0.69,-0.59,-0.47,-0.33,-0.17,0.10,0.32,0.46,0.53,0.59,0.62,0.63,0.63,0.63,0.52,0.32,0.09,-0.16,-0.41,-0.62,-0.70,-0.71,-0.70,-0.69,-0.66,-0.62,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.25,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0\nPARAM_EYE_BALL_Y=0.08,0.13,0.19,0.25,0.32,0.39,0.45,0.52,0.58,0.64,0.69,0.73,0.76,0.78,0.79,0.79,0.79,0.79,0.78,0.78,0.77,0.76,0.75,0.74,0.72,0.70,0.68,0.65,0.62,0.58,0.54,0.50,0.46,0.42,0.38,0.34,0.31,0.27,0.24,0.20,0.17,0.14,0.11,0.09,0.07,0.05,0.03,0.02,0.01,0.00,0,0.16,0.43,0.67,0.85,0.92,0.87,0.74,0.60,0.46,0.19,-0.01,-0.18,-0.34,-0.50,-0.73,-0.86,-0.94,-0.99,-1,-0.77,-0.37,-0.13,-0.11,-0.10,-0.09,-0.07,-0.06,-0.05,-0.04,-0.04,-0.03,-0.02,-0.02,-0.01,-0.01,-0.01,-0.00,-0.00,-0.00,-0.00,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/touch1.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.02,0.04,0.06,0.10,0.13,0.18,0.22,0.26,0.30,0.34,0.38,0.41,0.44,0.45,0.47,0.47,0.47,0.47,0.46,0.45,0.44,0.43,0.42,0.41,0.39,0.38,0.36,0.34,0.33,0.31,0.29,0.27,0.25,0.23,0.22,0.20,0.18,0.16,0.15,0.13,0.12,0.10,0.09,0.08,0.07,0.06,0.06,0.05,0.05,0.05,0.05,0.07,0.08,0.10,0.13,0.16,0.18,0.21,0.23,0.24,0.26,0.26,0.26,0.25,0.24,0.23,0.21,0.19,0.16,0.14,0.11,0.08,0.05,0.02,-0.02,-0.05,-0.08,-0.11,-0.14,-0.17,-0.20,-0.22,-0.25,-0.27,-0.28,-0.30,-0.31,-0.32,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.32,-0.31,-0.29,-0.27,-0.24,-0.22,-0.19,-0.16,-0.14,-0.11,-0.09,-0.06,-0.04,-0.02,-0.01,-0.00,0\nPARAM_BASE_X=0,0,-0.97,-2.56,-3.65,-4,-3.86,-3.50,-2.98,-2.38,-1.77,-1.19,-0.70,-0.32,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,1.94,5.11,7.29,8,7.72,7.00,5.96,4.77,3.53,2.38,1.39,0.64,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=-0.28,-1.06,-2.27,-3.83,-5.64,-7.63,-9.68,-11.77,-13.81,-15.75,-17.49,-19.03,-20.29,-21.22,-21.80,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-21.99,-21.96,-21.91,-21.84,-21.76,-21.66,-21.54,-21.40,-21.25,-21.08,-20.89,-20.69,-20.48,-20.26,-20.02,-19.76,-19.50,-19.22,-18.94,-18.64,-18.34,-18.02,-17.69,-17.36,-17.01,-16.67,-16.31,-15.94,-15.58,-15.20,-14.82,-14.44,-14.05,-13.65,-13.26,-12.86,-12.46,-12.06,-11.65,-11.25,-10.85,-10.44,-10.04,-9.64,-9.24,-8.85,-8.45,-8.06,-7.67,-7.29,-6.91,-6.54,-6.17,-5.81,-5.45,-5.11,-4.77,-4.43,-4.11,-3.79,-3.49,-3.19,-2.91,-2.63,-2.37,-2.11,-1.88,-1.65,-1.43,-1.23,-1.04,-0.87,-0.71,-0.56,-0.43,-0.32,-0.22,-0.14,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-0.13,-0.48,-1.03,-1.74,-2.56,-3.47,-4.40,-5.35,-6.28,-7.16,-7.95,-8.65,-9.22,-9.64,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.97,-9.90,-9.78,-9.62,-9.44,-9.23,-9.01,-8.77,-8.53,-8.29,-8.06,-7.84,-7.64,-7.46,-7.30,-7.17,-7.08,-7.02,-7,-7.04,-7.15,-7.31,-7.52,-7.75,-8,-8.25,-8.48,-8.69,-8.85,-8.96,-9,-8.97,-8.89,-8.76,-8.59,-8.37,-8.12,-7.84,-7.53,-7.20,-6.85,-6.48,-6.11,-5.74,-5.36,-4.98,-4.62,-4.25,-3.91,-3.59,-3.28,-3.00,-2.76,-2.53,-2.35,-2.20,-2.09,-2.02,-2,-2.02,-2.09,-2.20,-2.35,-2.54,-2.75,-2.99,-3.25,-3.53,-3.83,-4.15,-4.47,-4.79,-5.12,-5.45,-5.77,-6.09,-6.39,-6.67,-6.93,-7.17,-7.38,-7.57,-7.72,-7.83,-7.90,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.92,-7.85,-7.65,-7.33,-6.92,-6.43,-5.87,-5.26,-4.62,-3.96,-3.30,-2.66,-2.05,-1.49,-1.00,-0.59,-0.27,-0.07,0\nPARAM_BODY_ANGLE_Y=-0.05,-0.19,-0.41,-0.70,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4.00,-3.99,-3.97,-3.95,-3.93,-3.90,-3.86,-3.82,-3.78,-3.73,-3.68,-3.62,-3.56,-3.50,-3.43,-3.36,-3.28,-3.21,-3.13,-3.05,-2.97,-2.88,-2.79,-2.71,-2.62,-2.52,-2.43,-2.34,-2.25,-2.15,-2.06,-1.96,-1.87,-1.78,-1.68,-1.59,-1.50,-1.41,-1.32,-1.23,-1.15,-1.06,-0.98,-0.90,-0.82,-0.75,-0.67,-0.60,-0.54,-0.47,-0.41,-0.35,-0.30,-0.25,-0.21,-0.16,-0.13,-0.09,-0.07,-0.04,-0.02,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.51,0.52,0.53,0.54,0.55,0.57,0.58,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.62,0.62,0.62,0.62,0.62,0.62,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.62,0.63,0.63,0.64,0.65,0.65,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.65,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.60,0.60,0.59,0.58,0.58,0.57,0.56,0.56,0.55,0.55,0.55,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.53,0.53,0.53,0.53,0.52,0.52,0.52,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.32,-0.70,-1.21,-1.85,-2.61,-3.47,-4.43,-5.45,-6.57,-7.73,-8.96,-10.22,-11.51,-12.83,-14.17,-15.51,-16.82,-18.14,-19.42,-20.67,-21.88,-23.02,-24.13,-25.15,-26.09,-26.96,-27.72,-28.39,-28.95,-29.40,-29.73,-29.93,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.77,-26.20,-24.36,-22.24,-19.93,-17.49,-15,-12.51,-10.07,-7.76,-5.64,-3.80,-2.23,-1.03,-0.27,0\nPARAM_ANGLE_X=-0.38,-1.45,-3.10,-5.23,-7.69,-10.41,-13.20,-16.05,-18.83,-21.48,-23.86,-25.95,-27.67,-28.93,-29.73,-30,-29.91,-29.66,-29.26,-28.71,-28.02,-27.22,-26.30,-25.28,-24.19,-23.00,-21.76,-20.44,-19.10,-17.72,-16.31,-14.89,-13.46,-12.06,-10.65,-9.28,-7.95,-6.66,-5.44,-4.26,-3.18,-2.17,-1.24,-0.43,0.28,0.88,1.36,1.71,1.93,2,1.60,0.53,-1.13,-3.20,-5.50,-8,-10.50,-12.80,-14.88,-16.53,-17.60,-18,-17.91,-17.64,-17.21,-16.64,-15.93,-15.11,-14.18,-13.16,-12.08,-10.94,-9.73,-8.51,-7.27,-6.03,-4.80,-3.60,-2.40,-1.28,-0.22,0.78,1.70,2.52,3.24,3.86,4.34,4.70,4.93,5,4.98,4.92,4.83,4.70,4.55,4.37,4.17,3.94,3.71,3.45,3.19,2.92,2.64,2.36,2.08,1.81,1.55,1.29,1.06,0.83,0.63,0.45,0.30,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,0.92,0.74,0.50,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.22,0.31,0.39,0.47,0.54,0.59,0.63,0.64,0.63,0.62,0.59,0.56,0.53,0.49,0.44,0.40,0.35,0.30,0.26,0.21,0.17,0.13,0.09,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.16,0.25,0.35,0.44,0.52,0.58,0.62,0.63,0.62,0.61,0.58,0.55,0.51,0.47,0.42,0.37,0.32,0.26,0.21,0.16,0.12,0.08,0.05,0.02,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.06,-0.07,-0.08,-0.10,-0.11,-0.13,-0.15,-0.17,-0.19,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.37,-0.39,-0.41,-0.42,-0.44,-0.45,-0.46,-0.47,-0.48,-0.49,-0.50,-0.50,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.51,-0.49,-0.47,-0.45,-0.41,-0.38,-0.34,-0.30,-0.26,-0.21,-0.17,-0.13,-0.10,-0.06,-0.04,-0.02,-0.00,0\nPARAM_MOUTH_FORM=0.97,0.90,0.79,0.65,0.49,0.31,0.12,-0.07,-0.26,-0.43,-0.59,-0.73,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.62,-0.48,-0.33,-0.17,0,0.17,0.33,0.48,0.62,0.75,0.85,0.93,0.98,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,0.74,0.26,0,0.73,1,1.00,1.00,0.99,0.98,0.97,0.96,0.95,0.94,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.63,0.22,0,0.05,0.15,0.28,0.42,0.55,0.67,0.75,0.80,0.83,0.85,0.87,0.89,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.90,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.83,0.82,0.81,0.80,0.79,0.78,0.77,0.77,0.76,0.75,0.75,0.75,0.74,0.74,0.74,0.74,0.74,0.75,0.75,0.76,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.82,0.84,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.89,0.89,0.89,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.82,0.81,0.81,0.80,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.80,0.81,0.82,0.83,0.84,0.86,0.88,0.90,0.91,0.93,0.95,0.96,0.97,0.98,0.99,1.00,1\nPARAM_BROW_L_FORM=-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1.00,-1.00,-0.99,-0.99,-0.99,-0.98,-0.97,-0.97,-0.96,-0.95,-0.95,-0.94,-0.94,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.93,-0.93,-0.93,-0.93,-0.93,-0.94,-0.94,-0.94,-0.94,-0.95,-0.95,-0.95,-0.96,-0.96,-0.96,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.98,-0.98,-0.99,-0.99,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.50,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.00,-0.00,-0.01,-0.01,-0.01,-0.02,-0.02,-0.03,-0.03,-0.04,-0.04,-0.05,-0.06,-0.06,-0.07,-0.07,-0.08,-0.09,-0.09,-0.10,-0.11,-0.11,-0.12,-0.12,-0.13,-0.14,-0.14,-0.15,-0.15,-0.15,-0.16,-0.16,-0.16,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.16,-0.16,-0.15,-0.14,-0.13,-0.11,-0.10,-0.08,-0.07,-0.06,-0.04,-0.03,-0.02,-0.01,-0.01,-0.00,0\nPARAM_BROW_L_Y=0.50,0.51,0.52,0.53,0.54,0.56,0.57,0.59,0.61,0.62,0.64,0.65,0.66,0.66,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.66,0.66,0.66,0.66,0.66,0.66,0.65,0.65,0.65,0.65,0.65,0.65,0.64,0.64,0.64,0.64,0.64,0.64,0.64,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.64,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.70,0.71,0.71,0.71,0.71,0.71,0.70,0.70,0.69,0.69,0.68,0.68,0.67,0.66,0.66,0.65,0.64,0.64,0.63,0.62,0.62,0.61,0.60,0.60,0.59,0.59,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.57,0.57,0.56,0.56,0.55,0.55,0.54,0.53,0.53,0.52,0.52,0.51,0.51,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0.02,0.04,0.07,0.10,0.14,0.18,0.23,0.27,0.32,0.36,0.39,0.43,0.45,0.47,0.49,0.49,0.49,0.49,0.48,0.47,0.46,0.45,0.44,0.43,0.41,0.39,0.38,0.36,0.34,0.32,0.30,0.28,0.26,0.24,0.22,0.21,0.19,0.17,0.15,0.14,0.12,0.11,0.09,0.08,0.07,0.07,0.06,0.05,0.05,0.05,0.05,0.07,0.09,0.11,0.14,0.17,0.20,0.23,0.25,0.27,0.29,0.29,0.29,0.28,0.27,0.25,0.23,0.20,0.17,0.14,0.11,0.08,0.04,0.00,-0.04,-0.07,-0.11,-0.15,-0.18,-0.22,-0.25,-0.28,-0.31,-0.33,-0.36,-0.38,-0.39,-0.40,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.41,-0.40,-0.38,-0.36,-0.33,-0.30,-0.27,-0.24,-0.21,-0.17,-0.14,-0.11,-0.08,-0.05,-0.03,-0.01,-0.00,0\nPARAM_BROW_R_FORM=-0.00,-0.01,-0.03,-0.05,-0.07,-0.10,-0.14,-0.17,-0.21,-0.26,-0.30,-0.35,-0.40,-0.45,-0.49,-0.54,-0.59,-0.64,-0.68,-0.73,-0.77,-0.81,-0.85,-0.88,-0.91,-0.94,-0.96,-0.98,-0.99,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.50,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,0.74,0.26,0,0.73,1,1.00,0.99,0.99,0.98,0.97,0.96,0.95,0.94,0.93,0.92,0.90,0.89,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.85,0.85,0.85,0.85,0.85,0.63,0.22,0,0.05,0.15,0.27,0.41,0.54,0.65,0.74,0.79,0.82,0.85,0.87,0.89,0.90,0.91,0.92,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.92,0.92,0.91,0.90,0.90,0.89,0.88,0.87,0.86,0.85,0.84,0.83,0.82,0.80,0.79,0.78,0.78,0.77,0.76,0.75,0.75,0.74,0.74,0.73,0.73,0.73,0.73,0.73,0.74,0.74,0.75,0.75,0.76,0.77,0.78,0.79,0.80,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.90,0.91,0.91,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.89,0.89,0.88,0.88,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.84,0.84,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.82,0.82,0.83,0.85,0.86,0.87,0.89,0.91,0.92,0.94,0.95,0.96,0.98,0.99,0.99,1.00,1\nPARAM_TERE=0.51,0.52,0.55,0.59,0.63,0.67,0.72,0.77,0.81,0.86,0.90,0.93,0.96,0.98,1.00,1,0.99,0.98,0.95,0.91,0.87,0.82,0.77,0.73,0.68,0.63,0.59,0.55,0.52,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.51,0.51,0.51,0.52,0.52,0.53,0.53,0.54,0.54,0.55,0.56,0.57,0.57,0.58,0.59,0.60,0.61,0.62,0.63,0.64,0.65,0.66,0.67,0.68,0.69,0.70,0.71,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.80,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.90,0.91,0.91,0.92,0.93,0.94,0.95,0.95,0.96,0.97,0.97,0.98,0.98,0.99,0.99,0.99,1.00,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,0.98,0.96,0.94,0.91,0.87,0.83,0.79,0.75,0.71,0.67,0.63,0.59,0.56,0.54,0.52,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.04,0.08,0.13,0.19,0.25,0.32,0.39,0.46,0.52,0.58,0.63,0.67,0.70,0.72,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.72,0.72,0.72,0.71,0.71,0.71,0.70,0.69,0.69,0.68,0.64,0.54,0.40,0.23,0.04,-0.17,-0.38,-0.57,-0.74,-0.88,-0.97,-1,-0.99,-0.97,-0.93,-0.88,-0.82,-0.75,-0.67,-0.58,-0.49,-0.39,-0.28,-0.18,-0.07,0.04,0.14,0.25,0.35,0.45,0.54,0.63,0.70,0.78,0.84,0.89,0.93,0.96,0.98,0.99,0.99,0.98,0.98,0.97,0.95,0.94,0.92,0.90,0.88,0.85,0.82,0.79,0.76,0.72,0.69,0.65,0.60,0.56,0.51,0.46,0.41,0.35,0.30,0.24,0.18,0.12,0.05,-0.02,-0.05,-0.07,-0.08,-0.08,-0.06,-0.02,0.03,0.09,0.13,0.15,0.12,0.06,-0.03,-0.12,-0.18,-0.21,-0.18,-0.12,-0.03,0.06,0.12,0.15,0.15,0.15,0.14,0.14,0.13,0.13,0.12,0.11,0.10,0.10,0.09,0.08,0.07,0.06,0.06,0.05,0.04,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0\nPARAM_EYE_BALL_Y=-0.01,-0.05,-0.10,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.80,-0.87,-0.92,-0.96,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.95,-0.92,-0.89,-0.86,-0.82,-0.79,-0.76,-0.73,-0.72,-0.71,-0.71,-0.71,-0.72,-0.73,-0.74,-0.75,-0.76,-0.77,-0.78,-0.80,-0.81,-0.83,-0.85,-0.86,-0.88,-0.89,-0.91,-0.92,-0.93,-0.95,-0.96,-0.97,-0.98,-0.99,-0.99,-1.00,-1.00,-1,-1.00,-0.99,-0.98,-0.96,-0.94,-0.92,-0.90,-0.87,-0.84,-0.81,-0.78,-0.74,-0.71,-0.67,-0.64,-0.60,-0.57,-0.54,-0.51,-0.48,-0.46,-0.44,-0.42,-0.40,-0.39,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.35,-0.33,-0.31,-0.28,-0.25,-0.22,-0.19,-0.16,-0.13,-0.10,-0.07,-0.05,-0.03,-0.01,-0.00,0\n\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/touch2.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.14,0.20,0.25,0.29,0.32,0.34,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.33,0.31,0.29,0.26,0.23,0.19,0.16,0.12,0.09,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=2.58,5,7.42,9.25,10,9.25,7.42,5,2.58,0.75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.32,1.17,2.40,3.92,5.61,7.38,9.17,10.91,12.53,14.00,15.21,16.17,16.79,17,16.89,16.57,16.06,15.39,14.58,13.66,12.62,11.55,10.40,9.23,8.05,6.91,5.78,4.71,3.71,2.81,2.00,1.31,0.75,0.34,0.09,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.56,0.62,0.68,0.72,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.73,0.73,0.72,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.61,0.59,0.58,0.57,0.56,0.55,0.54,0.53,0.52,0.52,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BREATH=0.26,0.50,0.74,0.92,1,0.92,0.74,0.50,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0.18,0.35,0.51,0.64,0.69,0.64,0.55,0.43,0.30,0.18,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_BROW_L_Y=0.56,0.62,0.67,0.71,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.73,0.72,0.72,0.71,0.70,0.69,0.68,0.67,0.66,0.64,0.63,0.62,0.60,0.59,0.58,0.56,0.55,0.54,0.53,0.52,0.51,0.50,0.50,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.05,0.09,0.15,0.21,0.26,0.31,0.34,0.36,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.35,0.33,0.31,0.27,0.24,0.20,0.17,0.13,0.10,0.06,0.04,0.02,0.00,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.26,0.74,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.52,0.56,0.63,0.70,0.78,0.85,0.91,0.96,0.99,1,1,1,1,1,1,1,1,0.99,0.98,0.95,0.91,0.87,0.82,0.77,0.73,0.68,0.63,0.59,0.55,0.52,0.51,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.02,0.02,0.03,0.03,0.03,0.02,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.26,-0.50,-0.74,-0.92,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.98,-0.96,-0.93,-0.89,-0.84,-0.79,-0.74,-0.68,-0.62,-0.56,-0.50,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/touch3.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.04,-0.06,-0.09,-0.11,-0.14,-0.17,-0.21,-0.24,-0.28,-0.31,-0.34,-0.38,-0.41,-0.44,-0.46,-0.49,-0.51,-0.53,-0.54,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.55,-0.54,-0.51,-0.47,-0.41,-0.35,-0.28,-0.22,-0.16,-0.11,-0.06,-0.03,-0.01,0,0\nPARAM_BASE_X=-0.12,-0.48,-1.05,-1.81,-2.75,-3.82,-5.00,-6.26,-7.59,-9,-10.73,-11.58,-11.92,-12,-11.98,-11.93,-11.85,-11.73,-11.59,-11.42,-11.22,-11.00,-10.76,-10.49,-10.20,-9.90,-9.58,-9.25,-8.90,-8.55,-8.18,-7.80,-7.42,-7.03,-6.64,-6.25,-5.85,-5.46,-5.07,-4.68,-4.31,-3.93,-3.57,-3.22,-2.87,-2.54,-2.23,-1.92,-1.64,-1.38,-1.13,-0.91,-0.70,-0.52,-0.37,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=-0.14,-0.50,-1.02,-1.62,-2.23,-2.81,-3.30,-3.68,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.92,-3.71,-3.38,-2.98,-2.53,-2.06,-1.59,-1.16,-0.77,-0.45,-0.20,-0.05,0,0\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.50,-1.10,-1.90,-2.84,-3.93,-5.15,-6.41,-7.76,-9.14,-10.53,-11.87,-13.20,-14.46,-15.64,-16.70,-17.65,-18.46,-19.11,-19.60,-19.90,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-19.60,-18.53,-16.92,-14.90,-12.67,-10.29,-7.96,-5.78,-3.86,-2.24,-1.02,-0.26,0,0\nPARAM_BODY_ANGLE_X=-0.19,-0.69,-1.41,-2.31,-3.30,-4.34,-5.40,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.69,-8.88,-7.84,-6.71,-5.64,-4.72,-4,-3.21,-2.45,-1.71,-1.02,-0.36,0.27,0.86,1.42,1.95,2.45,2.92,3.36,3.77,4.16,4.51,4.84,5.14,5.41,5.67,5.89,6.10,6.28,6.44,6.58,6.69,6.79,6.87,6.93,6.97,6.99,7,6.98,6.93,6.84,6.73,6.59,6.44,6.27,6.10,5.91,5.72,5.52,5.33,5.14,4.96,4.78,4.62,4.47,4.34,4.22,4.13,4.06,4.02,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.92,3.71,3.38,2.98,2.53,2.06,1.59,1.16,0.77,0.45,0.20,0.05,0,0\nPARAM_BODY_ANGLE_Y=-0.17,-0.62,-1.27,-2.02,-2.79,-3.51,-4.13,-4.60,-4.90,-5,-5,-5,-5,-5,-4.95,-4.83,-4.64,-4.41,-4.12,-3.79,-3.42,-3,-2.49,-2.01,-1.57,-1.16,-0.79,-0.46,-0.17,0.09,0.31,0.51,0.66,0.79,0.88,0.95,0.99,1,1.00,0.99,0.99,0.98,0.97,0.95,0.93,0.92,0.90,0.87,0.85,0.82,0.80,0.77,0.74,0.71,0.68,0.65,0.62,0.58,0.55,0.52,0.48,0.45,0.42,0.38,0.35,0.32,0.29,0.26,0.23,0.20,0.18,0.15,0.13,0.10,0.08,0.07,0.05,0.03,0.02,0.01,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_Y=0.51,0.54,0.57,0.62,0.66,0.70,0.74,0.77,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.78,0.77,0.76,0.74,0.72,0.69,0.67,0.64,0.61,0.58,0.56,0.53,0.50,0.47,0.44,0.42,0.39,0.37,0.35,0.34,0.33,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.33,0.35,0.37,0.39,0.41,0.43,0.45,0.47,0.48,0.49,0.50,0.50,0.50\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.60,-2.21,-4.69,-7.80,-11.26,-15,-18.74,-22.20,-25.31,-27.79,-29.40,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.40,-27.79,-25.38,-22.35,-19.00,-15.44,-11.94,-8.68,-5.78,-3.35,-1.53,-0.39,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.50,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.94,-2.78,-2.54,-2.24,-1.90,-1.54,-1.19,-0.87,-0.58,-0.34,-0.15,-0.04,0,0\nPARAM_MOUTH_OPEN_Y=0.03,0.12,0.25,0.40,0.56,0.70,0.83,0.92,0.98,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.17,0.46,0.66,0.72,0.67,0.54,0.37,0.19,0.06,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.00,0.00,0.00,0.00,0.00,0.00,0,0\nPARAM_BROW_R_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.02,-0.05,-0.08,-0.11,-0.16,-0.20,-0.24,-0.28,-0.33,-0.36,-0.39,-0.42,-0.43,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.43,-0.41,-0.37,-0.33,-0.28,-0.23,-0.18,-0.13,-0.08,-0.05,-0.02,-0.01,0,0\nPARAM_MOUTH_FORM=0.93,0.75,0.49,0.19,-0.12,-0.41,-0.65,-0.84,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.20,0.42,0.61,0.78,0.90,0.97,1,1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.66,0.31,0.08,0,0.21,0.59,0.80,0.81,0.82,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.90,0.91,0.92,0.94,0.95,0.97,0.98,0.99,0.99,1.00,1,1\nPARAM_BROW_L_FORM=-0.03,-0.11,-0.22,-0.36,-0.49,-0.62,-0.73,-0.81,-0.86,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.88,-0.89,-0.89,-0.89,-0.90,-0.90,-0.91,-0.92,-0.93,-0.93,-0.94,-0.95,-0.95,-0.96,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0\nPARAM_BROW_L_SIDE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.02,-0.04,-0.07,-0.10,-0.13,-0.17,-0.21,-0.25,-0.28,-0.31,-0.34,-0.36,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.37,-0.35,-0.32,-0.28,-0.24,-0.20,-0.15,-0.11,-0.07,-0.04,-0.02,-0.00,0,0\nPARAM_BROW_L_Y=0.51,0.53,0.57,0.61,0.65,0.68,0.71,0.74,0.75,0.76,0.76,0.76,0.76,0.76,0.76,0.75,0.74,0.73,0.71,0.69,0.67,0.65,0.62,0.60,0.57,0.54,0.52,0.49,0.47,0.44,0.42,0.40,0.38,0.36,0.35,0.34,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.34,0.36,0.37,0.39,0.41,0.43,0.45,0.47,0.48,0.49,0.50,0.50,0.50\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.01,-0.02,-0.03,-0.05,-0.07,-0.10,-0.12,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.32,-0.35,-0.37,-0.40,-0.42,-0.44,-0.45,-0.46,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.46,-0.44,-0.40,-0.35,-0.30,-0.24,-0.19,-0.14,-0.09,-0.05,-0.02,-0.01,0,0\nPARAM_BROW_R_FORM=-0.03,-0.11,-0.23,-0.37,-0.51,-0.65,-0.76,-0.85,-0.90,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.93,-0.93,-0.93,-0.94,-0.94,-0.95,-0.95,-0.95,-0.96,-0.97,-0.97,-0.97,-0.98,-0.98,-0.99,-0.99,-0.99,-1.00,-1.00,-1.00,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.40,-0.29,-0.19,-0.11,-0.05,-0.01,0,0\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,0.99,0.99,0.98,0.98,0.97,0.96,0.95,0.94,0.93,0.93,0.92,0.91,0.90,0.89,0.88,0.87,0.87,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.86,0.86,0.86,0.86,0.86,0.87,0.87,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.66,0.31,0.08,0,0.21,0.59,0.80,0.81,0.82,0.83,0.84,0.84,0.85,0.85,0.86,0.86,0.87,0.87,0.87,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.88,0.89,0.90,0.91,0.92,0.94,0.95,0.97,0.98,0.99,0.99,1.00,1,1\nPARAM_TERE=0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.49,0.48,0.45,0.41,0.37,0.33,0.28,0.23,0.19,0.14,0.10,0.07,0.04,0.02,0.00,0,0.00,0.01,0.01,0.02,0.04,0.05,0.07,0.09,0.11,0.14,0.16,0.19,0.22,0.25,0.28,0.32,0.35,0.39,0.43,0.47,0.51,0.55,0.59,0.62,0.66,0.69,0.72,0.75,0.78,0.80,0.82,0.85,0.87,0.88,0.90,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,0.99,1.00,1.00,1.00,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.96,0.92,0.87,0.82,0.76,0.70,0.64,0.60,0.56,0.53,0.51,0.50,0.50\nPARAM_EYE_BALL_X=0.01,0.03,0.07,0.11,0.16,0.20,0.25,0.30,0.35,0.39,0.42,0.45,0.46,0.47,0.47,0.46,0.45,0.44,0.42,0.40,0.37,0.35,0.32,0.29,0.26,0.24,0.21,0.18,0.15,0.12,0.10,0.07,0.05,0.03,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.10,-0.15,-0.21,-0.27,-0.32,-0.37,-0.41,-0.43,-0.44,-0.42,-0.37,-0.29,-0.21,-0.12,-0.04,0.05,0.12,0.17,0.21,0.22,0.22,0.21,0.20,0.19,0.18,0.16,0.15,0.13,0.11,0.09,0.07,0.06,0.04,0.03,0.02,0.01,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=-0.02,-0.06,-0.12,-0.20,-0.29,-0.38,-0.47,-0.56,-0.65,-0.72,-0.79,-0.84,-0.87,-0.88,-0.88,-0.86,-0.84,-0.81,-0.78,-0.74,-0.70,-0.65,-0.60,-0.55,-0.50,-0.44,-0.38,-0.33,-0.28,-0.23,-0.18,-0.14,-0.10,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.05,-0.11,-0.17,-0.25,-0.32,-0.40,-0.47,-0.55,-0.61,-0.67,-0.73,-0.78,-0.81,-0.84,-0.85,-0.86,-0.87,-0.88,-0.88,-0.88,-0.88,-0.87,-0.85,-0.81,-0.77,-0.71,-0.65,-0.58,-0.51,-0.44,-0.37,-0.30,-0.23,-0.17,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/touch4.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=30\nPARAM_BROW_L_ANGLE=0.05,0.01,0,0.12,0.32,0.46,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BASE_X=0,0,0,0.48,2.26,5.22,9,17.32,23.85,27.44,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.50,28.48,28.43,28.36,28.24,28.11,27.94,27.75,27.52,27.28,27.00,26.71,26.39,26.05,25.69,25.31,24.90,24.49,24.05,23.60,23.14,22.66,22.16,21.65,21.13,20.60,20.06,19.51,18.95,18.39,17.82,17.25,16.66,16.08,15.50,14.91,14.32,13.74,13.14,12.56,11.98,11.41,10.84,10.27,9.71,9.15,8.61,8.07,7.54,7.03,6.52,6.03,5.55,5.09,4.64,4.21,3.78,3.39,3.00,2.64,2.30,1.98,1.68,1.40,1.14,0.91,0.70,0.52,0.37,0.24,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BASE_Y=0,0,0,7.75,20.45,29.16,32,24.25,11.55,2.84,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=10.83,2.66,0,0.28,1.03,2.16,3.57,5.13,6.79,8.43,9.95,11.30,12.43,13.29,13.82,14,14.00,14.00,14.00,14.00,13.99,13.99,13.98,13.98,13.97,13.96,13.95,13.94,13.93,13.92,13.90,13.89,13.87,13.85,13.83,13.80,13.78,13.75,13.72,13.69,13.65,13.62,13.58,13.54,13.50,13.45,13.40,13.35,13.30,13.24,13.19,13.12,13.06,12.99,12.92,12.85,12.77,12.69,12.60,12.52,12.43,12.33,12.23,12.13,12.03,11.92,11.80,11.69,11.56,11.44,11.31,11.18,11.04,10.90,10.75,10.60,10.45,10.29,10.12,9.95,9.78,9.60,9.42,9.23,9.03,8.83,8.63,8.42,8.20,7.99,7.76,7.53,7.29,7.05,6.80,6.55,6.29,6.03,5.76,5.48,5.20,4.91,4.61,4.31,4,3.67,3.32,2.95,2.57,2.16,1.74,1.31,0.86,0.40,-0.07,-0.56,-1.05,-1.56,-2.08,-2.60,-3.13,-3.67,-4.21,-4.76,-5.31,-5.86,-6.41,-6.97,-7.53,-8.09,-8.65,-9.20,-9.74,-10.29,-10.84,-11.37,-11.90,-12.43,-12.94,-13.44,-13.94,-14.42,-14.90,-15.36,-15.81,-16.25,-16.67,-17.08,-17.47,-17.84,-18.20,-18.54,-18.86,-19.16,-19.44,-19.70,-19.94,-20.15,-20.35,-20.52,-20.66,-20.78,-20.88,-20.94,-20.99,-21,-21.00,-20.98,-20.95,-20.91,-20.84,-20.75,-20.62,-20.47,-20.28,-20.05,-19.77,-19.45,-19.01,-18.44,-17.75,-17.00,-16.22,-15.42,-14.66,-13.96,-13.36,-12.83,-12.30,-11.79,-11.28,-10.79,-10.31,-9.85,-9.39,-8.95,-8.52,-8.10,-7.69,-7.29,-6.90,-6.53,-6.16,-5.81,-5.47,-5.14,-4.81,-4.51,-4.21,-3.92,-3.64,-3.38,-3.12,-2.88,-2.65,-2.43,-2.21,-2.01,-1.82,-1.63,-1.46,-1.30,-1.15,-1.01,-0.87,-0.75,-0.64,-0.53,-0.44,-0.35,-0.28,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=-4.50,-4.50,-4.50,-4.86,-5.46,-5.87,-6,-5.64,-5.04,-4.63,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.50,-4.52,-4.54,-4.57,-4.61,-4.65,-4.71,-4.77,-4.83,-4.91,-4.99,-5.07,-5.16,-5.26,-5.36,-5.46,-5.57,-5.68,-5.80,-5.92,-6.04,-6.17,-6.30,-6.43,-6.56,-6.69,-6.83,-6.96,-7.10,-7.23,-7.37,-7.50,-7.64,-7.77,-7.90,-8.04,-8.16,-8.29,-8.42,-8.54,-8.66,-8.77,-8.89,-8.99,-9.10,-9.20,-9.29,-9.38,-9.47,-9.55,-9.62,-9.69,-9.75,-9.81,-9.86,-9.90,-9.94,-9.96,-9.98,-10.00,-10,-10.00,-10.00,-9.99,-9.97,-9.96,-9.93,-9.89,-9.85,-9.80,-9.73,-9.65,-9.56,-9.44,-9.31,-9.15,-8.97,-8.78,-8.56,-8.32,-8.07,-7.80,-7.52,-7.24,-6.97,-6.70,-6.43,-6.18,-5.92,-5.67,-5.43,-5.19,-4.95,-4.72,-4.50,-4.28,-4.06,-3.85,-3.64,-3.44,-3.25,-3.06,-2.88,-2.70,-2.52,-2.35,-2.19,-2.03,-1.89,-1.74,-1.60,-1.46,-1.34,-1.21,-1.10,-0.98,-0.88,-0.78,-0.68,-0.60,-0.51,-0.44,-0.37,-0.31,-0.25,-0.20,-0.15,-0.11,-0.08,-0.05,-0.03,-0.01,-0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=0.36,0.57,0.80,1.03,1.27,1.52,1.75,1.97,2.18,2.38,2.55,2.71,2.83,2.92,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.00,2.98,2.97,2.94,2.91,2.87,2.83,2.78,2.72,2.66,2.60,2.53,2.46,2.38,2.30,2.22,2.14,2.05,1.96,1.87,1.78,1.69,1.59,1.50,1.41,1.31,1.22,1.13,1.04,0.95,0.86,0.78,0.70,0.62,0.54,0.47,0.40,0.34,0.28,0.22,0.17,0.13,0.09,0.06,0.03,0.02,0.00,0,0.00,0.01,0.02,0.04,0.06,0.08,0.11,0.15,0.18,0.22,0.26,0.31,0.36,0.41,0.47,0.53,0.58,0.65,0.71,0.78,0.84,0.91,0.98,1.05,1.12,1.20,1.27,1.34,1.42,1.49,1.56,1.64,1.71,1.79,1.86,1.93,2.00,2.07,2.14,2.20,2.27,2.33,2.39,2.45,2.51,2.56,2.61,2.66,2.71,2.75,2.79,2.83,2.87,2.90,2.92,2.95,2.97,2.98,2.99,3.00,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\nPARAM_BROW_R_Y=0.48,0.54,0.61,0.67,0.72,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56\nPARAM_ANGLE_Y=-30,-30,-30,-15.48,8.34,24.68,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.98,29.94,29.85,29.74,29.60,29.42,29.21,28.98,28.72,28.42,28.10,27.75,27.37,26.97,26.53,26.07,25.59,25.08,24.54,23.99,23.40,22.78,22.16,21.50,20.82,20.13,19.40,18.65,17.90,17.11,16.30,15.49,14.64,13.77,12.90,12.00,11.08,10.16,9.21,8.23,7.27,6.27,5.25,4.24,3.19,2.13,1.09,0,-1.09,-2.15,-3.20,-4.22,-5.21,-6.20,-7.15,-8.07,-8.98,-9.86,-10.72,-11.56,-12.39,-13.19,-13.97,-14.73,-15.46,-16.18,-16.87,-17.55,-18.20,-18.83,-19.44,-20.04,-20.62,-21.17,-21.70,-22.22,-22.72,-23.20,-23.66,-24.11,-24.54,-24.94,-25.33,-25.70,-26.06,-26.40,-26.72,-27.03,-27.32,-27.59,-27.85,-28.09,-28.32,-28.53,-28.73,-28.91,-29.07,-29.23,-29.36,-29.49,-29.60,-29.69,-29.78,-29.85,-29.90,-29.94,-29.98,-29.99,-30,-29.99,-29.97,-29.93,-29.87,-29.77,-29.63,-29.46,-29.24,-28.97,-28.63,-28.25,-27.78,-27.17,-26.35,-25.37,-24.30,-23.18,-22.05,-20.96,-19.96,-19.11,-18.34,-17.60,-16.85,-16.13,-15.43,-14.75,-14.09,-13.44,-12.80,-12.19,-11.59,-11.00,-10.43,-9.88,-9.34,-8.82,-8.31,-7.82,-7.35,-6.89,-6.45,-6.03,-5.61,-5.21,-4.84,-4.47,-4.13,-3.79,-3.47,-3.16,-2.88,-2.60,-2.34,-2.09,-1.86,-1.64,-1.44,-1.25,-1.07,-0.91,-0.77,-0.63,-0.51,-0.40,-0.30,-0.22,-0.15,-0.10,-0.06,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.10,-0.22,-0.38,-0.59,-0.84,-1.13,-1.46,-1.82,-2.22,-2.65,-3.11,-3.61,-4.13,-4.68,-5.25,-5.85,-6.46,-7.10,-7.76,-8.43,-9.10,-9.80,-10.51,-11.23,-11.96,-12.69,-13.42,-14.17,-14.91,-15.65,-16.38,-17.12,-17.85,-18.57,-19.29,-19.99,-20.68,-21.36,-22.03,-22.68,-23.30,-23.92,-24.51,-25.08,-25.62,-26.15,-26.64,-27.10,-27.54,-27.94,-28.32,-28.66,-28.96,-29.23,-29.46,-29.65,-29.80,-29.91,-29.98,-30,-29.99,-29.97,-29.93,-29.87,-29.77,-29.63,-29.46,-29.24,-28.97,-28.63,-28.25,-27.78,-27.17,-26.35,-25.37,-24.30,-23.18,-22.05,-20.96,-19.96,-19.11,-18.34,-17.60,-16.85,-16.13,-15.43,-14.75,-14.09,-13.44,-12.80,-12.19,-11.59,-11.00,-10.43,-9.88,-9.34,-8.82,-8.31,-7.82,-7.35,-6.89,-6.45,-6.03,-5.61,-5.21,-4.84,-4.47,-4.13,-3.79,-3.47,-3.16,-2.88,-2.60,-2.34,-2.09,-1.86,-1.64,-1.44,-1.25,-1.07,-0.91,-0.77,-0.63,-0.51,-0.40,-0.30,-0.22,-0.15,-0.10,-0.06,-0.02,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_OPEN_Y=0.15,0.04,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00,0.00,0.01,0.01,0.02,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.12,0.13,0.15,0.16,0.18,0.19,0.21,0.22,0.24,0.26,0.27,0.29,0.30,0.32,0.33,0.35,0.36,0.38,0.39,0.41,0.42,0.43,0.44,0.45,0.46,0.47,0.48,0.49,0.49,0.50,0.50,0.51,0.51,0.51,0.51,0.51,0.51,0.50,0.50,0.50,0.49,0.49,0.48,0.47,0.46,0.46,0.45,0.44,0.43,0.42,0.41,0.40,0.39,0.38,0.37,0.36,0.34,0.33,0.32,0.31,0.29,0.28,0.27,0.26,0.24,0.23,0.22,0.21,0.19,0.18,0.17,0.16,0.15,0.14,0.12,0.11,0.10,0.09,0.08,0.07,0.07,0.06,0.05,0.04,0.03,0.03,0.02,0.02,0.01,0.01,0.01,0.00,0.00,0.00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_R_SIDE=-0.21,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_L_OPEN=0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.08,0.26,0.50,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.79,0.75,0.68,0.60,0.50,0.40,0.30,0.21,0.13,0.06,0.02,0,0.03,0.11,0.23,0.36,0.51,0.64,0.76,0.84,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.52,-0.54,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.63,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_BROW_L_SIDE=-0.21,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0.48,0.54,0.61,0.67,0.72,0.76,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.77,0.76,0.76,0.76,0.75,0.75,0.75,0.74,0.74,0.73,0.73,0.72,0.72,0.71,0.70,0.70,0.69,0.68,0.68,0.67,0.67,0.66,0.65,0.65,0.64,0.63,0.63,0.62,0.61,0.61,0.60,0.60,0.59,0.59,0.58,0.58,0.58,0.57,0.57,0.57,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56\nPARAM_BROW_R_ANGLE=0.05,0.01,0,0.12,0.32,0.46,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50,0.50\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00,-0.00,-0.01,-0.01,-0.02,-0.03,-0.04,-0.05,-0.06,-0.07,-0.09,-0.10,-0.12,-0.13,-0.15,-0.17,-0.18,-0.20,-0.22,-0.24,-0.26,-0.28,-0.30,-0.32,-0.34,-0.36,-0.38,-0.40,-0.42,-0.44,-0.46,-0.47,-0.49,-0.51,-0.52,-0.54,-0.55,-0.57,-0.58,-0.59,-0.60,-0.61,-0.62,-0.63,-0.63,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\nPARAM_EYE_R_OPEN=0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.08,0.26,0.50,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.98,0.98,0.98,0.98,0.98,0.98,0.97,0.97,0.97,0.97,0.97,0.96,0.96,0.96,0.96,0.95,0.95,0.95,0.95,0.95,0.94,0.94,0.94,0.94,0.93,0.93,0.93,0.93,0.92,0.92,0.92,0.92,0.92,0.91,0.91,0.91,0.91,0.90,0.90,0.90,0.90,0.90,0.90,0.89,0.89,0.89,0.89,0.89,0.88,0.88,0.88,0.88,0.88,0.88,0.87,0.87,0.87,0.87,0.87,0.87,0.86,0.86,0.86,0.86,0.86,0.86,0.85,0.85,0.85,0.85,0.85,0.85,0.84,0.84,0.84,0.84,0.84,0.84,0.83,0.83,0.83,0.83,0.83,0.83,0.82,0.82,0.82,0.82,0.82,0.81,0.81,0.81,0.79,0.75,0.68,0.60,0.50,0.40,0.30,0.21,0.13,0.06,0.02,0,0.03,0.11,0.23,0.36,0.51,0.64,0.76,0.84,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87,0.87\nPARAM_TERE=0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.02,0.03,0.04,0.05,0.07,0.09,0.12,0.14,0.17,0.20,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.50,0.54,0.57,0.61,0.64,0.68,0.71,0.74,0.77,0.80,0.83,0.86,0.88,0.91,0.93,0.95,0.96,0.97,0.99,0.99,1.00,1,1.00,1.00,1.00,1.00,0.99,0.99,0.99,0.98,0.98,0.98,0.97,0.97,0.96,0.96,0.95,0.95,0.94,0.93,0.93,0.92,0.91,0.91,0.90,0.90,0.89,0.88,0.88,0.87,0.86,0.86,0.85,0.84,0.84,0.83,0.83,0.82,0.82,0.81,0.81,0.81,0.80,0.80,0.80,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,-0.00,-0.02,-0.03,-0.05,-0.08,-0.10,-0.11,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.13,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.12,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.11,-0.10,-0.10,-0.10,-0.10,-0.10,-0.10,-0.09,-0.09,-0.09,-0.09,-0.09,-0.08,-0.08,-0.08,-0.08,-0.08,-0.07,-0.07,-0.07,-0.07,-0.06,-0.06,-0.05,-0.03,0.00,0.03,0.05,0.06,0.02,-0.04,-0.09,-0.10,-0.09,-0.07,-0.04,-0.01,0.01,0.03,0.04,0.05,0.02,-0.03,-0.06,-0.07,-0.06,-0.05,-0.03,-0.00,0.02,0.05,0.07,0.08,0.09,0.05,-0.01,-0.05,-0.06,-0.05,-0.02,0.02,0.05,0.08,0.09,0.10,0.09,0.05,0.01,-0.03,-0.07,-0.08,-0.07,-0.04,0.00,0.05,0.08,0.09,0.06,0.01,-0.03,-0.07,-0.08,-0.07,-0.04,0.00,0.04,0.07,0.10,0.12,0.13,0.08,0.01,-0.04,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.06,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03,-0.03\nPARAM_EYE_BALL_Y=-0.64,-0.91,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-1.00,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.99,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.98,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.96,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.95,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.93,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.91,-0.90,-0.90,-0.90,-0.90,-0.90,-0.90,-0.89,-0.89,-0.89,-0.89,-0.89,-0.89,-0.88,-0.88,-0.88,-0.88,-0.87,-0.86,-0.84,-0.82,-0.80,-0.78,-0.76,-0.73,-0.71,-0.68,-0.65,-0.63,-0.60,-0.58,-0.55,-0.53,-0.51,-0.49,-0.47,-0.46,-0.45,-0.44,-0.43,-0.42,-0.41,-0.40,-0.39,-0.38,-0.37,-0.36,-0.35,-0.34,-0.34,-0.33,-0.32,-0.32,-0.31,-0.30,-0.30,-0.29,-0.28,-0.28,-0.27,-0.27,-0.26,-0.26,-0.26,-0.25,-0.25,-0.24,-0.24,-0.24,-0.23,-0.23,-0.23,-0.23,-0.22,-0.22,-0.22,-0.22,-0.22,-0.22,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21\nVISIBLE:PARTS_01_ARM_L_01=1\n\nVISIBLE:PARTS_01_ARM_R_01=1\n\nVISIBLE:PARTS_01_ARM_L_02=0\n\nVISIBLE:PARTS_01_ARM_R_02=0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/wait_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.06,0.19,0.36,0.53,0.69,0.83,0.92,0.96,0.97,0.978,0.984,0.989,0.993,0.996,0.998,0.999,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.886,0.876,0.86,0.839,0.81,0.79,0.76,0.73,0.7,0.68,0.65,0.63,0.614,0.604,0.6,0.6,0.601,0.602,0.604,0.606,0.609,0.612,0.616,0.619,0.624,0.628,0.633,0.638,0.644,0.65,0.656,0.662,0.669,0.675,0.682,0.689,0.696,0.704,0.711,0.718,0.726,0.734,0.741,0.749,0.756,0.764,0.772,0.779,0.786,0.794,0.801,0.808,0.815,0.821,0.828,0.834,0.84,0.846,0.852,0.857,0.862,0.866,0.871,0.874,0.878,0.881,0.884,0.886,0.888,0.889,0.89,0.89,0.89,0.89\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0,0.008,0.03,0.07,0.11,0.17,0.23,0.29,0.35,0.41,0.47,0.53,0.57,0.61,0.63,0.64,0.639,0.638,0.635,0.631,0.626,0.62,0.613,0.606,0.597,0.588,0.578,0.567,0.555,0.543,0.53,0.517,0.503,0.489,0.474,0.459,0.443,0.428,0.411,0.395,0.379,0.362,0.345,0.328,0.312,0.295,0.278,0.261,0.245,0.229,0.212,0.197,0.181,0.166,0.151,0.137,0.123,0.11,0.097,0.085,0.073,0.062,0.052,0.043,0.034,0.027,0.02,0.014,0.009,0.005,0.002,0.001,0,0,0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.06,0.18,0.34,0.5,0.65,0.78,0.87,0.92,0.939,0.955,0.967,0.977,0.985,0.991,0.995,0.997,0.999,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.991,-0.97,-0.92,-0.87,-0.8,-0.72,-0.63,-0.54,-0.44,-0.33,-0.22,-0.11,0,0.11,0.22,0.32,0.41,0.5,0.58,0.65,0.7,0.75,0.77,0.78,0.775,0.76,0.74,0.71,0.67,0.62,0.58,0.53,0.47,0.42,0.36,0.31,0.25,0.2,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.006,0.024,0.05,0.09,0.13,0.18,0.24,0.29,0.35,0.41,0.47,0.53,0.58,0.63,0.67,0.71,0.74,0.77,0.8,0.82,0.85,0.87,0.889,0.906,0.922,0.935,0.947,0.958,0.967,0.975,0.981,0.986,0.991,0.994,0.996,0.998,0.999,1,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0,0.006,0.023,0.05,0.08,0.12,0.17,0.22,0.26,0.31,0.36,0.4,0.43,0.46,0.474,0.48,0.48,0.478,0.476,0.473,0.47,0.465,0.46,0.454,0.448,0.441,0.433,0.425,0.417,0.407,0.398,0.388,0.377,0.367,0.355,0.344,0.333,0.321,0.309,0.296,0.284,0.272,0.259,0.246,0.234,0.221,0.208,0.196,0.184,0.171,0.159,0.147,0.136,0.125,0.113,0.103,0.092,0.082,0.073,0.063,0.055,0.047,0.039,0.032,0.026,0.02,0.015,0.01,0.007,0.004,0.002,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.2,0.77,1.67,2.81,4.16,5.64,7.2,8.8,10.36,11.84,13.19,14.33,15.23,15.8,16,15.79,15.2,14.24,12.95,11.42,9.59,7.55,5.39,3.03,0.56,-1.92,-4.5,-7.08,-9.56,-12.03,-14.39,-16.55,-18.59,-20.42,-21.95,-23.24,-24.2,-24.79,-25,-24.93,-24.74,-24.42,-23.99,-23.46,-22.83,-22.11,-21.31,-20.44,-19.51,-18.51,-17.48,-16.41,-15.32,-14.2,-13.07,-11.93,-10.8,-9.68,-8.59,-7.52,-6.49,-5.49,-4.56,-3.69,-2.89,-2.17,-1.54,-1.01,-0.58,-0.26,-0.07,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0.19,0.72,1.56,2.63,3.9,5.29,6.75,8.25,9.71,11.1,12.37,13.44,14.28,14.81,15,14.986,14.95,14.88,14.79,14.67,14.54,14.38,14.2,14,13.78,13.54,13.29,13.02,12.73,12.43,12.12,11.79,11.45,11.11,10.76,10.39,10.02,9.64,9.26,8.88,8.49,8.09,7.7,7.3,6.91,6.51,6.12,5.74,5.36,4.98,4.61,4.24,3.89,3.55,3.21,2.88,2.57,2.27,1.98,1.71,1.46,1.22,1,0.8,0.62,0.46,0.33,0.21,0.12,0.05,0.01,0,0,0\r\r\nPARAM_BROW_R_Y=0,0.009,0.04,0.08,0.13,0.19,0.26,0.33,0.4,0.47,0.54,0.6,0.65,0.69,0.72,0.73,0.729,0.727,0.724,0.72,0.714,0.707,0.7,0.691,0.681,0.671,0.659,0.647,0.633,0.62,0.605,0.59,0.574,0.557,0.541,0.523,0.506,0.488,0.469,0.451,0.432,0.413,0.394,0.375,0.355,0.336,0.317,0.298,0.279,0.261,0.242,0.224,0.207,0.189,0.173,0.156,0.14,0.125,0.11,0.097,0.083,0.071,0.059,0.049,0.039,0.03,0.023,0.016,0.01,0.006,0.003,0.001,0,0,0\r\r\nPARAM_ANGLE_X=0,0.11,0.43,0.94,1.58,2.34,3.17,4.05,4.95,5.83,6.66,7.42,8.06,8.57,8.89,9,8.992,8.97,8.93,8.87,8.8,8.72,8.63,8.52,8.4,8.27,8.12,7.97,7.81,7.64,7.46,7.27,7.07,6.87,6.66,6.45,6.24,6.01,5.79,5.56,5.33,5.09,4.86,4.62,4.38,4.14,3.91,3.67,3.44,3.21,2.99,2.76,2.55,2.34,2.13,1.93,1.73,1.54,1.36,1.19,1.03,0.88,0.73,0.6,0.48,0.37,0.28,0.2,0.13,0.07,0.03,0.01,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=-0.38,-0.385,-0.398,-0.42,-0.44,-0.48,-0.51,-0.55,-0.58,-0.62,-0.65,-0.69,-0.71,-0.73,-0.745,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.751,-0.75,-0.751,-0.75,-0.75,-0.749,-0.748,-0.747,-0.745,-0.743,-0.741,-0.738,-0.735,-0.731,-0.727,-0.722,-0.716,-0.71,-0.703,-0.695,-0.686,-0.677,-0.666,-0.655,-0.644,-0.632,-0.619,-0.606,-0.593,-0.579,-0.566,-0.552,-0.539,-0.525,-0.512,-0.499,-0.486,-0.473,-0.461,-0.45,-0.439,-0.429,-0.419,-0.411,-0.403,-0.396,-0.391,-0.386,-0.383,-0.381,-0.38,-0.38,-0.38\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0,0.006,0.025,0.05,0.09,0.13,0.18,0.23,0.28,0.33,0.38,0.42,0.46,0.49,0.504,0.51,0.51,0.508,0.506,0.503,0.499,0.494,0.489,0.483,0.476,0.468,0.46,0.452,0.443,0.433,0.423,0.412,0.401,0.389,0.378,0.366,0.353,0.341,0.328,0.315,0.302,0.289,0.275,0.262,0.248,0.235,0.221,0.208,0.195,0.182,0.169,0.157,0.144,0.132,0.121,0.109,0.098,0.087,0.077,0.067,0.058,0.05,0.042,0.034,0.027,0.021,0.016,0.011,0.007,0.004,0.002,0,0,0,0\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.905,0.892,0.87,0.84,0.81,0.78,0.74,0.7,0.66,0.63,0.6,0.57,0.55,0.535,0.53,0.53,0.531,0.533,0.535,0.538,0.542,0.546,0.55,0.555,0.561,0.567,0.573,0.58,0.588,0.595,0.603,0.611,0.62,0.629,0.637,0.647,0.656,0.666,0.675,0.685,0.695,0.705,0.715,0.725,0.735,0.745,0.755,0.765,0.774,0.784,0.793,0.803,0.811,0.82,0.829,0.837,0.845,0.852,0.86,0.867,0.873,0.879,0.885,0.89,0.894,0.898,0.902,0.905,0.907,0.909,0.91,0.91,0.91,0.91\r\r\nPARAM_TERE=0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/wait_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0,0.004,0.014,0.03,0.05,0.07,0.1,0.13,0.17,0.2,0.23,0.27,0.31,0.34,0.37,0.41,0.44,0.46,0.49,0.51,0.526,0.539,0.547,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.548,0.542,0.532,0.518,0.502,0.483,0.46,0.44,0.41,0.39,0.36,0.33,0.31,0.28,0.25,0.22,0.2,0.17,0.14,0.12,0.1,0.08,0.057,0.041,0.027,0.015,0.007,0.002,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-0.996,-0.985,-0.966,-0.94,-0.91,-0.88,-0.84,-0.8,-0.75,-0.71,-0.66,-0.61,-0.56,-0.51,-0.46,-0.4,-0.36,-0.31,-0.26,-0.22,-0.18,-0.14,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.013,0.029,0.049,0.07,0.1,0.13,0.16,0.2,0.23,0.27,0.3,0.33,0.37,0.4,0.43,0.46,0.48,0.5,0.517,0.529,0.537,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.538,0.532,0.522,0.509,0.493,0.475,0.45,0.43,0.41,0.38,0.36,0.33,0.3,0.27,0.25,0.22,0.19,0.17,0.14,0.12,0.1,0.07,0.056,0.04,0.026,0.015,0.007,0.002,0\r\r\nPARAM_BROW_L_ANGLE=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_ANGLE_Z=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-29.88,-29.54,-28.99,-28.27,-27.39,-26.37,-25.21,-23.97,-22.62,-21.22,-19.76,-18.27,-16.73,-15.2,-13.66,-12.14,-10.66,-9.2,-7.82,-6.51,-5.29,-4.16,-3.13,-2.23,-1.46,-0.84,-0.38,-0.1,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.37,-0.81,-1.36,-2.04,-2.8,-3.63,-4.52,-5.46,-6.4,-7.38,-8.34,-9.29,-10.21,-11.08,-11.89,-12.64,-13.31,-13.88,-14.36,-14.71,-14.92,-15,-15,-15,-15,-15,-15,-15,-15,-14.94,-14.77,-14.5,-14.13,-13.7,-13.18,-12.61,-11.98,-11.31,-10.61,-9.88,-9.14,-8.37,-7.6,-6.83,-6.07,-5.33,-4.6,-3.91,-3.25,-2.65,-2.08,-1.56,-1.12,-0.73,-0.42,-0.19,-0.05,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0,-0.001,-0.005,-0.01,-0.017,-0.026,-0.035,-0.046,-0.057,-0.069,-0.081,-0.093,-0.106,-0.118,-0.129,-0.14,-0.151,-0.16,-0.169,-0.176,-0.182,-0.186,-0.189,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.189,-0.187,-0.184,-0.179,-0.173,-0.167,-0.16,-0.152,-0.143,-0.134,-0.125,-0.116,-0.106,-0.096,-0.087,-0.077,-0.068,-0.058,-0.05,-0.041,-0.034,-0.026,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_ARM_R=0,-0,-0,-0.001,-0,-0.003,-0.004,-0.005,-0.006,-0.007,-0.009,-0.01,-0.011,-0.012,-0.014,-0.015,-0.016,-0.017,-0.018,-0.019,-0.019,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.019,-0.02,-0.018,-0.017,-0.016,-0.02,-0.014,-0.013,-0.012,-0.011,-0.01,-0.009,-0.008,-0.007,-0.006,-0.005,-0.004,-0.004,-0.003,-0,-0.001,-0.001,-0,-0,-0,0\r\r\nPARAM_BODY_Z=0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.15,-0.18,-0.22,-0.26,-0.3,-0.33,-0.37,-0.41,-0.44,-0.48,-0.51,-0.53,-0.56,-0.574,-0.588,-0.597,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.598,-0.591,-0.58,-0.565,-0.548,-0.527,-0.5,-0.48,-0.45,-0.42,-0.4,-0.37,-0.33,-0.3,-0.27,-0.24,-0.21,-0.18,-0.16,-0.13,-0.11,-0.08,-0.06,-0.045,-0.029,-0.017,-0.008,-0.002,0\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_ARM_R_02=0,0.002,0.008,0.018,0.03,0.045,0.061,0.08,0.099,0.12,0.141,0.16,0.18,0.2,0.225,0.244,0.262,0.278,0.293,0.305,0.316,0.324,0.328,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.329,0.325,0.319,0.311,0.301,0.29,0.277,0.264,0.249,0.233,0.217,0.201,0.184,0.167,0.15,0.134,0.117,0.101,0.086,0.072,0.058,0.046,0.034,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91\r\r\nPARAM_TERE=0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/wait_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.89,0.887,0.878,0.863,0.844,0.82,0.8,0.77,0.74,0.71,0.68,0.65,0.62,0.6,0.58,0.557,0.542,0.533,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.169,-0.164,-0.158,-0.15,-0.14,-0.129,-0.118,-0.105,-0.093,-0.08,-0.068,-0.056,-0.044,-0.034,-0.024,-0.016,-0.009,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_ANGLE=0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_ANGLE_Z=14,14,14,14,14,14,14,13.72,12.91,11.63,10.02,8.02,5.8,3.35,0.74,-2.01,-4.79,-7.65,-10.48,-13.24,-15.96,-18.5,-20.88,-23.08,-25.04,-26.73,-28.11,-29.14,-29.77,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=15,15,15,15,15,15,15,14.9,14.63,14.19,13.64,12.96,12.2,11.37,10.48,9.54,8.6,7.62,6.66,5.71,4.79,3.92,3.11,2.36,1.69,1.12,0.64,0.29,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.018,-0.03,-0.045,-0.062,-0.081,-0.1,-0.12,-0.14,-0.159,-0.178,-0.195,-0.21,-0.222,-0.232,-0.238,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.02,-0.04,-0.07,-0.11,-0.15,-0.19,-0.24,-0.29,-0.33,-0.38,-0.42,-0.46,-0.5,-0.53,-0.55,-0.565,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57,-0.57\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0.48,0.481,0.483,0.482,0.476,0.463,0.44,0.41,0.38,0.35,0.31,0.28,0.25,0.22,0.18,0.15,0.13,0.1,0.07,0.05,0.035,0.02,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_MOUTH_FORM=-0.71,-0.71,-0.71,-0.712,-0.713,-0.714,-0.716,-0.718,-0.72,-0.723,-0.725,-0.727,-0.73,-0.733,-0.735,-0.737,-0.74,-0.742,-0.744,-0.746,-0.747,-0.748,-0.749,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.75,-0.734,-0.69,-0.62,-0.53,-0.42,-0.3,-0.16,-0.02,0.13,0.27,0.41,0.55,0.67,0.78,0.87,0.94,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_02=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.57\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.907,0.9,0.888,0.873,0.855,0.83,0.81,0.79,0.77,0.74,0.72,0.7,0.67,0.657,0.642,0.63,0.623,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_TERE=0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/wait_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ARM_L_02=0,0,-0.006,-0.024,-0.05,-0.09,-0.13,-0.18,-0.23,-0.29,-0.35,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.76,-0.81,-0.85,-0.89,-0.92,-0.94,-0.955,-0.96,-0.96,-0.96,-0.954,-0.936,-0.91,-0.87,-0.83,-0.78,-0.73,-0.67,-0.61,-0.55,-0.49,-0.43,-0.37,-0.31,-0.25,-0.2,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.2,0.42,0.61,0.78,0.9,0.97,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0,0,0.003,0.006,0.01,0.015,0.022,0.029,0.038,0.047,0.057,0.068,0.079,0.092,0.104,0.118,0.132,0.146,0.161,0.176,0.191,0.206,0.222,0.237,0.253,0.269,0.284,0.3,0.315,0.33,0.345,0.36,0.374,0.387,0.401,0.413,0.425,0.437,0.448,0.458,0.467,0.476,0.483,0.49,0.496,0.501,0.505,0.508,0.509,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nPARAM_EYE_R_OPEN=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.85,-0.69,-0.49,-0.27,-0.03,0.2,0.42,0.61,0.78,0.9,0.97,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0.23,0.83,1.76,2.91,4.24,5.7,7.24,8.79,10.37,11.86,13.27,14.57,15.72,16.66,17.38,17.84,18,18,18,17.81,17.28,16.44,15.38,14.06,12.6,10.98,9.26,7.45,5.62,3.73,1.87,0.05,-1.74,-3.42,-4.99,-6.44,-7.73,-8.84,-9.75,-10.43,-10.85,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11\r\r\nPARAM_ANGLE_Y=-26,-26,-26,-26,-26,-26,-26,-26,-25.51,-24.2,-22.19,-19.69,-16.81,-13.66,-10.31,-6.96,-3.54,-0.31,2.75,5.57,8.06,10.1,11.66,12.65,13,13,13,12.87,12.48,11.87,11.1,10.15,9.09,7.92,6.67,5.36,4.03,2.67,1.32,-0,-1.3,-2.51,-3.65,-4.7,-5.63,-6.44,-7.1,-7.59,-7.89,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BODY_Y=-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.58,-0.53,-0.44,-0.34,-0.22,-0.09,0.04,0.18,0.32,0.45,0.58,0.7,0.8,0.88,0.94,0.99,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BODY_Z=0\r\r\nPARAM_BODY_X=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R_02=0,0,-0.002,-0.009,-0.019,-0.032,-0.048,-0.065,-0.085,-0.11,-0.13,-0.15,-0.17,-0.19,-0.22,-0.24,-0.258,-0.277,-0.295,-0.311,-0.324,-0.335,-0.343,-0.348,-0.35,-0.35,-0.35,-0.348,-0.341,-0.331,-0.318,-0.302,-0.285,-0.265,-0.24,-0.22,-0.2,-0.18,-0.16,-0.13,-0.11,-0.092,-0.073,-0.055,-0.039,-0.026,-0.015,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_FORM=0,0,0.003,0.006,0.01,0.015,0.022,0.029,0.038,0.047,0.057,0.068,0.079,0.092,0.104,0.118,0.132,0.146,0.161,0.176,0.191,0.206,0.222,0.237,0.253,0.269,0.284,0.3,0.315,0.33,0.345,0.36,0.374,0.387,0.401,0.413,0.425,0.437,0.448,0.458,0.467,0.476,0.483,0.49,0.496,0.501,0.505,0.508,0.509,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/motions/wait_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_ARM_L_02=0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.906,0.896,0.879,0.86,0.83,0.8,0.77,0.74,0.7,0.66,0.62,0.59,0.55,0.52,0.48,0.45,0.42,0.4,0.37,0.355,0.341,0.333,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.328,0.322,0.312,0.299,0.283,0.265,0.245,0.22,0.2,0.18,0.16,0.13,0.11,0.09,0.072,0.054,0.039,0.025,0.015,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.05,0.15,0.28,0.42,0.54,0.65,0.72,0.75,0.756,0.761,0.766,0.77,0.774,0.777,0.78,0.782,0.784,0.786,0.787,0.788,0.79,0.789,0.79,0.79,0.79,0.79,0.77,0.7,0.61,0.48,0.33,0.17,0,-0.17,-0.33,-0.49,-0.63,-0.76,-0.86,-0.94,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_BROW_L_Y=0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39,0.39\r\r\nPARAM_HAND_L=0,0,0,0,0,0,0,0.006,0.023,0.05,0.08,0.13,0.17,0.23,0.28,0.34,0.4,0.46,0.52,0.58,0.63,0.69,0.74,0.78,0.83,0.86,0.89,0.91,0.925,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.93,0.924,0.907,0.88,0.84,0.8,0.75,0.69,0.63,0.57,0.51,0.44,0.38,0.32,0.26,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.05,0.16,0.3,0.45,0.58,0.69,0.76,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.77,0.7,0.61,0.48,0.33,0.17,0,-0.17,-0.33,-0.49,-0.63,-0.76,-0.86,-0.94,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_X=1,1,1,1,1,1,1,0.96,0.87,0.73,0.55,0.35,0.14,-0.07,-0.27,-0.44,-0.58,-0.69,-0.76,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.78,-0.772,-0.75,-0.72,-0.68,-0.63,-0.57,-0.51,-0.45,-0.38,-0.32,-0.25,-0.19,-0.13,-0.08,-0.03,0.02,0.05,0.08,0.094,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1\r\r\nPARAM_EYE_BALL_Y=-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.182,-0.22,-0.27,-0.33,-0.4,-0.47,-0.54,-0.61,-0.67,-0.72,-0.76,-0.78,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.781,-0.75,-0.71,-0.66,-0.6,-0.53,-0.46,-0.38,-0.3,-0.22,-0.14,-0.07,0.01,0.07,0.14,0.19,0.23,0.26,0.283,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-4,-4,-4,-4,-4,-4,-4,-4.16,-4.62,-5.34,-6.26,-7.4,-8.66,-10.05,-11.53,-13.1,-14.67,-16.3,-17.91,-19.48,-21.02,-22.46,-23.82,-25.07,-26.18,-27.14,-27.93,-28.51,-28.87,-29,-29,-29,-29,-29,-29,-29,-29,-28.25,-26.15,-22.85,-18.66,-13.65,-8.2,-2.43,3.43,9.2,14.65,19.66,23.85,27.15,29.25,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_BROW_R_Y=0.46\r\r\nPARAM_ANGLE_X=15,15,15,15,15,15,15,14.9,14.63,14.19,13.64,12.96,12.2,11.37,10.48,9.54,8.6,7.62,6.66,5.71,4.79,3.92,3.11,2.36,1.69,1.12,0.64,0.29,0.08,0,0,0,0,0,0,0,0,-0.06,-0.24,-0.52,-0.88,-1.3,-1.76,-2.25,-2.75,-3.24,-3.7,-4.12,-4.48,-4.76,-4.94,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BODY_Y=0\r\r\nPARAM_ARM_R=-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02\r\r\nPARAM_BODY_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.018,0.04,0.06,0.1,0.13,0.17,0.2,0.24,0.27,0.31,0.33,0.35,0.365,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37\r\r\nPARAM_EYE_BALL_KIRAKIRA=0\r\r\nPARAM_BODY_X=0.48,0.48,0.48,0.48,0.48,0.48,0.48,0.474,0.458,0.43,0.4,0.36,0.32,0.27,0.22,0.16,0.11,0.05,-0,-0.06,-0.11,-0.16,-0.21,-0.25,-0.29,-0.33,-0.35,-0.37,-0.386,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.385,-0.371,-0.35,-0.32,-0.29,-0.25,-0.21,-0.18,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.848,0.847,0.846,0.844,0.843,0.841,0.839,0.837,0.835,0.833,0.831,0.83,0.828,0.826,0.825,0.823,0.822,0.821,0.821,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.815,0.799,0.77,0.74,0.7,0.66,0.61,0.56,0.5,0.45,0.39,0.33,0.28,0.23,0.18,0.14,0.1,0.06,0.04,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.699,-0.67,-0.62,-0.56,-0.48,-0.39,-0.3,-0.19,-0.09,0.02,0.13,0.24,0.35,0.45,0.55,0.65,0.73,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_02=0,0,0,0,0,0,0,0.004,0.017,0.037,0.06,0.09,0.13,0.17,0.21,0.25,0.29,0.34,0.38,0.43,0.47,0.51,0.55,0.58,0.61,0.64,0.66,0.677,0.686,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.69,0.685,0.673,0.65,0.62,0.59,0.55,0.51,0.47,0.42,0.37,0.33,0.28,0.23,0.19,0.15,0.11,0.08,0.05,0.03,0.014,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_MOUTH_SIZE=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_TERE=0.51\r\r\nVISIBLE:PARTS_01_ARM_L_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_R_01=1\r\n\r\nVISIBLE:PARTS_01_ARM_L_02=0\r\n\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\n"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/physics.json",
    "content": "{\"type\":\"Live2D Physics\",\"physics_hair\":[{\"comment\":\"hair front\",\"setup\":{\"length\":0.17,\"regist\":0.5,\"mass\":0.1},\"src\":[{\"id\":\"PARAM_ANGLE_X\",\"ptype\":\"x\",\"scale\":0.005,\"weight\":1},{\"id\":\"PARAM_ANGLE_Z\",\"ptype\":\"angle\",\"scale\":0.8,\"weight\":1}],\"targets\":[{\"id\":\"PARAM_KAMIYURE_FRONT\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1}]},{\"comment\":\"hair side\",\"setup\":{\"length\":0.2,\"regist\":0.5,\"mass\":0.1},\"src\":[{\"id\":\"PARAM_ANGLE_X\",\"ptype\":\"x\",\"scale\":0.005,\"weight\":1}],\"targets\":[{\"id\":\"PARAM_KAMIYURE_SIDE_R\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1},{\"id\":\"PARAM_KAMIYURE_SIDE_L\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1}]},{\"comment\":\"hair side 2\",\"setup\":{\"length\":0.2,\"regist\":0.5,\"mass\":0.1},\"src\":[{\"id\":\"PARAM_ANGLE_Z\",\"ptype\":\"angle\",\"scale\":0.8,\"weight\":1}],\"targets\":[{\"id\":\"PARAM_KAMIYURE_SIDE_R_02\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1},{\"id\":\"PARAM_KAMIYURE_SIDE_L_02\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1}]},{\"comment\":\"hair back\",\"setup\":{\"length\":0.2,\"regist\":1.4,\"mass\":0.3},\"src\":[{\"id\":\"PARAM_ANGLE_X\",\"ptype\":\"x\",\"scale\":-0.005,\"weight\":1}],\"targets\":[{\"id\":\"PARAM_KAMIYURE_TWIN_R\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1},{\"id\":\"PARAM_KAMIYURE_TWIN_L\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1}]},{\"comment\":\"hair back 2\",\"setup\":{\"length\":0.2,\"regist\":1.4,\"mass\":0.3},\"src\":[{\"id\":\"PARAM_ANGLE_Z\",\"ptype\":\"angle\",\"scale\":0.8,\"weight\":1}],\"targets\":[{\"id\":\"PARAM_KAMIYURE_TWIN_R_02\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1},{\"id\":\"PARAM_KAMIYURE_TWIN_L_02\",\"ptype\":\"angle\",\"scale\":0.025,\"weight\":1}]}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/pose.json",
    "content": "{\"type\":\"Live2D Pose\",\"parts_visible\":[{\"group\":[{\"id\":\"PARTS_01_ARM_PAJAMA_L_01\"},{\"id\":\"PARTS_01_ARM_PAJAMA_L_02\"}]},{\"group\":[{\"id\":\"PARTS_01_ARM_PAJAMA_R_01\"},{\"id\":\"PARTS_01_ARM_PAJAMA_R_02\"}]}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/ShizukuTalk/shizuku-pajama/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/index.json",
    "content": "{\n    \"type\":\"Live2D Model Setting\",\n    \"name\":\"22-3695903\",\n    \"label\":\"22\",\n    \"model\":\"model.moc\",\n    \"textures\":[\n        \"texture_00/closet-default-v2.png\",\n        \"texture_01/default-upper.png\",\n        \"texture_02/default-lower.png\",\n        \"texture_03/default-hat.png\"\n    ],\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": 0.1,\n        \"width\": 2.3,\n        \"height\": 2.5\n    },\n    \"hit_areas_custom\":{\n\t\t\"head_x\":[-0.33, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"motions\":{\n        \"idle\":[\n            {\"file\":\"motions/idle-01.mtn\",\"fade_in\":2000,\"fade_out\":2000},\n            {\"file\":\"motions/idle-02.mtn\",\"fade_in\":2000,\"fade_out\":2000},\n            {\"file\":\"motions/idle-03.mtn\",\"fade_in\":100,\"fade_out\":100}\n        ],\n        \"flick_head\":[\n            {\"file\":\"motions/touch.mtn\",\"fade_in\":500,\"fade_out\":200}\n        ],\n        \"tap_body\":[\n            {\"file\":\"motions/touch.mtn\",\"fade_in\":500,\"fade_out\":200}\n        ],\n        \"thanking\":[\n            {\"file\":\"motions/thanking.mtn\",\"fade_in\":2000,\"fade_out\":2000}\n        ]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/motions/idle-01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=2,1.987,1.95,1.89,1.81,1.7,1.58,1.45,1.3,1.14,0.96,0.78,0.59,0.4,0.2,0,-0.2,-0.4,-0.59,-0.78,-0.96,-1.14,-1.3,-1.45,-1.58,-1.7,-1.81,-1.89,-1.95,-1.99,-2,-1.987,-1.95,-1.89,-1.81,-1.7,-1.58,-1.45,-1.3,-1.14,-0.96,-0.78,-0.59,-0.4,-0.2,0,0.2,0.4,0.59,0.78,0.96,1.14,1.3,1.45,1.58,1.7,1.81,1.89,1.95,1.99,2,1.987,1.95,1.89,1.81,1.7,1.58,1.45,1.3,1.14,0.96,0.78,0.59,0.4,0.2,0,-0.2,-0.4,-0.59,-0.78,-0.96,-1.14,-1.3,-1.45,-1.58,-1.7,-1.81,-1.89,-1.95,-1.99,-2,-1.987,-1.95,-1.89,-1.81,-1.7,-1.58,-1.45,-1.3,-1.14,-0.96,-0.78,-0.59,-0.4,-0.2,0,0.2,0.4,0.59,0.78,0.96,1.14,1.3,1.45,1.58,1.7,1.81,1.89,1.95,1.99,2\r\r\nPARAM_ANGLE_Y=8,7.91,7.66,7.27,6.77,6.18,5.53,4.85,4.15,3.47,2.82,2.23,1.73,1.34,1.09,1,1.11,1.43,1.94,2.58,3.34,4.17,5.05,5.95,6.83,7.66,8.42,9.06,9.57,9.89,10,9.89,9.57,9.06,8.42,7.66,6.83,5.95,5.05,4.17,3.34,2.58,1.94,1.43,1.11,1,1.09,1.34,1.73,2.23,2.82,3.47,4.15,4.85,5.53,6.18,6.77,7.27,7.66,7.91,8,7.91,7.66,7.27,6.77,6.18,5.53,4.85,4.15,3.47,2.82,2.23,1.73,1.34,1.09,1,1.11,1.43,1.94,2.58,3.34,4.17,5.05,5.95,6.83,7.66,8.42,9.06,9.57,9.89,10,9.89,9.57,9.06,8.42,7.66,6.83,5.95,5.05,4.17,3.34,2.58,1.94,1.43,1.11,1,1.09,1.34,1.73,2.23,2.82,3.47,4.15,4.85,5.53,6.18,6.77,7.27,7.66,7.91,8\r\r\nPARAM_ANGLE_Z=6,5.96,5.86,5.69,5.47,5.18,4.85,4.48,4.07,3.63,3.15,2.65,2.13,1.59,1.05,0.5,-0.05,-0.59,-1.13,-1.65,-2.15,-2.63,-3.07,-3.48,-3.85,-4.18,-4.47,-4.69,-4.86,-4.96,-5,-4.96,-4.86,-4.69,-4.47,-4.18,-3.85,-3.48,-3.07,-2.63,-2.15,-1.65,-1.13,-0.59,-0.05,0.5,1.05,1.59,2.13,2.65,3.15,3.63,4.07,4.48,4.85,5.18,5.47,5.69,5.86,5.96,6,5.96,5.86,5.69,5.47,5.18,4.85,4.48,4.07,3.63,3.15,2.65,2.13,1.59,1.05,0.5,-0.05,-0.59,-1.13,-1.65,-2.15,-2.63,-3.07,-3.48,-3.85,-4.18,-4.47,-4.69,-4.86,-4.96,-5,-4.96,-4.86,-4.69,-4.47,-4.18,-3.85,-3.48,-3.07,-2.63,-2.15,-1.65,-1.13,-0.59,-0.05,0.5,1.05,1.59,2.13,2.65,3.15,3.63,4.07,4.48,4.85,5.18,5.47,5.69,5.86,5.96,6\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L=0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYEK_R=0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_X=-0.06,-0.06,-0.059,-0.057,-0.055,-0.052,-0.049,-0.046,-0.041,-0.037,-0.032,-0.026,-0.02,-0.014,-0.007,0,0.007,0.013,0.019,0.024,0.029,0.033,0.037,0.04,0.043,0.045,0.047,0.048,0.049,0.05,0.05,0.049,0.048,0.045,0.041,0.037,0.032,0.027,0.023,0.018,0.013,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.028,-0.041,-0.051,-0.058,-0.06,-0.06,-0.059,-0.057,-0.055,-0.052,-0.049,-0.046,-0.041,-0.037,-0.032,-0.026,-0.02,-0.014,-0.007,0,0.007,0.013,0.019,0.024,0.029,0.033,0.037,0.04,0.043,0.045,0.047,0.048,0.049,0.05,0.05,0.05,0.05,0.048,0.047,0.045,0.043,0.04,0.037,0.033,0.029,0.024,0.019,0.013,0.007,0,-0.007,-0.014,-0.02,-0.026,-0.032,-0.037,-0.041,-0.046,-0.049,-0.052,-0.055,-0.057,-0.059,-0.06,-0.06\r\r\nPARAM_EYE_BALL_Y=-0.25,-0.246,-0.234,-0.216,-0.19,-0.16,-0.13,-0.1,-0.07,-0.04,-0.01,0.02,0.05,0.064,0.076,0.08,0.075,0.06,0.04,0.01,-0.03,-0.06,-0.1,-0.15,-0.19,-0.22,-0.26,-0.29,-0.31,-0.325,-0.33,-0.325,-0.31,-0.29,-0.26,-0.22,-0.19,-0.15,-0.1,-0.06,-0.03,0.01,0.04,0.06,0.075,0.08,0.08,0.078,0.074,0.067,0.057,0.043,0.024,0,-0.04,-0.09,-0.15,-0.19,-0.22,-0.24,-0.25,-0.246,-0.234,-0.216,-0.19,-0.16,-0.13,-0.1,-0.07,-0.04,-0.01,0.02,0.05,0.064,0.076,0.08,0.075,0.06,0.04,0.01,-0.03,-0.06,-0.1,-0.15,-0.19,-0.22,-0.26,-0.29,-0.31,-0.325,-0.33,-0.325,-0.31,-0.29,-0.26,-0.22,-0.19,-0.15,-0.1,-0.06,-0.03,0.01,0.04,0.06,0.075,0.08,0.076,0.064,0.046,0.02,-0.01,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.234,-0.246,-0.25\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0\r\r\nPARAM_ARML_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY2_ANGLE_Z=-1,-0.994,-0.975,-0.94,-0.9,-0.85,-0.79,-0.72,-0.65,-0.57,-0.48,-0.39,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1,0.994,0.975,0.94,0.9,0.85,0.79,0.72,0.65,0.57,0.48,0.39,0.3,0.2,0.1,0,-0.1,-0.2,-0.3,-0.39,-0.48,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.994,-1,-0.994,-0.975,-0.94,-0.9,-0.85,-0.79,-0.72,-0.65,-0.57,-0.48,-0.39,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1,0.994,0.975,0.94,0.9,0.85,0.79,0.72,0.65,0.57,0.48,0.39,0.3,0.2,0.1,0,-0.1,-0.2,-0.3,-0.39,-0.48,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.994,-1\r\r\nPARAM_BODY3_ANGLE_Z=1,0.994,0.975,0.94,0.9,0.85,0.79,0.72,0.65,0.57,0.48,0.39,0.3,0.2,0.1,0,-0.1,-0.2,-0.3,-0.39,-0.48,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.994,-1,-0.994,-0.975,-0.94,-0.9,-0.85,-0.79,-0.72,-0.65,-0.57,-0.48,-0.39,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1,0.994,0.975,0.94,0.9,0.85,0.79,0.72,0.65,0.57,0.48,0.39,0.3,0.2,0.1,0,-0.1,-0.2,-0.3,-0.39,-0.48,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.994,-1,-0.994,-0.975,-0.94,-0.9,-0.85,-0.79,-0.72,-0.65,-0.57,-0.48,-0.39,-0.3,-0.2,-0.1,0,0.1,0.2,0.3,0.39,0.48,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.994,1\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/motions/idle-02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=2,1.998,1.992,1.981,1.965,1.945,1.92,1.89,1.85,1.81,1.76,1.71,1.64,1.58,1.5,1.42,1.33,1.24,1.13,1.02,0.9,0.77,0.64,0.49,0.34,0.17,0,-1.86,-6.09,-11.64,-17.16,-21.3,-23,-22.21,-20.09,-17.02,-13.38,-9.62,-5.98,-2.91,-0.79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.21,0.35,0.51,0.69,0.88,1.07,1.26,1.43,1.59,1.73,1.84,1.93,1.98,2\r\r\nPARAM_ANGLE_Y=8,7.93,7.74,7.43,7.03,6.55,6.01,5.43,4.81,4.18,3.56,2.94,2.37,1.83,1.38,1,0.66,0.41,0.24,0.12,0.05,0.01,-0.011,-0.015,-0.01,-0.004,0,2.25,7.73,15,22.27,27.75,30,28.97,26.2,22.2,17.45,12.55,7.8,3.8,1.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.39,0.83,1.39,2.05,2.78,3.52,4.28,5.02,5.73,6.36,6.92,7.38,7.72,7.93,8\r\r\nPARAM_ANGLE_Z=6,5.987,5.95,5.88,5.78,5.66,5.5,5.32,5.1,4.86,4.58,4.27,3.92,3.53,3.12,2.67,2.17,1.65,1.08,0.47,-0.18,-0.87,-1.6,-2.38,-3.21,-4.08,-5,-7.04,-10.51,-14.73,-18.8,-21.79,-23,-21.45,-17.3,-11.29,-4.18,3.18,10.29,16.3,20.45,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21.82,21.32,20.51,19.44,18.16,16.7,15.05,13.35,11.52,9.67,7.79,5.98,4.18,2.49,0.89,-0.54,-1.82,-2.93,-3.81,-4.46,-4.86,-5,-4.86,-4.47,-3.86,-3.08,-2.18,-1.18,-0.16,0.89,1.9,2.88,3.75,4.52,5.15,5.61,5.9,6\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L=0\r\r\nPARAM_EYEK_R=0\r\r\nPARAM_EYE_BALL_X=-0.06,-0.06,-0.058,-0.056,-0.054,-0.05,-0.046,-0.042,-0.038,-0.033,-0.027,-0.022,-0.016,-0.011,-0.005,0,0.006,0.01,0.013,0.015,0.017,0.018,0.019,0.02,0.02,0.02,0.02,0.02,0.02,0.018,0.016,0.015,0.013,0.011,0.009,0.007,0.005,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.006,-0.01,-0.015,-0.021,-0.026,-0.032,-0.038,-0.043,-0.048,-0.052,-0.055,-0.058,-0.059,-0.06\r\r\nPARAM_EYE_BALL_Y=-0.25,-0.246,-0.234,-0.216,-0.19,-0.16,-0.13,-0.1,-0.07,-0.04,-0.01,0.02,0.05,0.064,0.076,0.08,0.073,0.056,0.03,0.01,-0.02,-0.05,-0.07,-0.1,-0.114,-0.126,-0.13,-0.128,-0.124,-0.116,-0.107,-0.096,-0.084,-0.071,-0.059,-0.046,-0.034,-0.023,-0.014,-0.006,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.012,-0.026,-0.044,-0.06,-0.09,-0.11,-0.13,-0.16,-0.18,-0.199,-0.216,-0.231,-0.241,-0.248,-0.25\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARMR_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.01,-0.022,-0.037,-0.055,-0.074,-0.095,-0.12,-0.136,-0.155,-0.173,-0.188,-0.2,-0.207,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.209,-0.21,-0.21,-0.208,-0.21,-0.207,-0.206,-0.21,-0.204,-0.203,-0.202,-0.201,-0.2,-0.198,-0.194,-0.189,-0.183,-0.175,-0.167,-0.157,-0.147,-0.137,-0.126,-0.114,-0.103,-0.091,-0.079,-0.068,-0.057,-0.046,-0.035,-0.026,-0.016,-0.008,0,0.007,0.01,0.01,0.01,0.01,0.01,0.008,0.007,0.006,0.005,0.004,0.003,0.002,0.001,0,0\r\r\nPARAM_ARML_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.01,-0.022,-0.037,-0.055,-0.074,-0.095,-0.12,-0.136,-0.155,-0.173,-0.188,-0.2,-0.207,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.209,-0.21,-0.208,-0.21,-0.207,-0.21,-0.205,-0.204,-0.203,-0.202,-0.201,-0.2,-0.197,-0.192,-0.185,-0.176,-0.166,-0.154,-0.141,-0.128,-0.114,-0.1,-0.086,-0.072,-0.059,-0.046,-0.034,-0.023,-0.014,-0.005,0.001,0.006,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.008,0.007,0.006,0.005,0.004,0.003,0.002,0.001,0,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,0.995,0.981,0.96,0.93,0.89,0.85,0.81,0.76,0.7,0.65,0.59,0.54,0.48,0.42,0.37,0.31,0.26,0.21,0.17,0.13,0.09,0.06,0.03,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY2_ANGLE_Z=-1,-0.99,-0.96,-0.92,-0.86,-0.79,-0.7,-0.61,-0.51,-0.41,-0.3,-0.19,-0.07,0.04,0.16,0.27,0.38,0.48,0.57,0.67,0.75,0.82,0.88,0.93,0.97,0.99,1,0.993,0.973,0.94,0.9,0.84,0.78,0.71,0.63,0.55,0.46,0.37,0.28,0.18,0.09,0,-0.1,-0.18,-0.27,-0.34,-0.41,-0.48,-0.54,-0.59,-0.64,-0.69,-0.73,-0.77,-0.81,-0.84,-0.87,-0.89,-0.92,-0.934,-0.951,-0.965,-0.976,-0.985,-0.992,-0.996,-0.999,-1,-0.987,-0.95,-0.89,-0.81,-0.72,-0.61,-0.48,-0.36,-0.22,-0.09,0.05,0.19,0.32,0.45,0.56,0.67,0.76,0.85,0.91,0.96,0.99,1,0.97,0.9,0.79,0.65,0.49,0.31,0.12,-0.07,-0.26,-0.43,-0.59,-0.73,-0.84,-0.93,-0.98,-1\r\r\nPARAM_BODY3_ANGLE_Z=1,0.99,0.96,0.92,0.86,0.79,0.7,0.61,0.51,0.41,0.3,0.19,0.07,-0.04,-0.16,-0.27,-0.38,-0.48,-0.57,-0.67,-0.75,-0.82,-0.88,-0.93,-0.97,-0.99,-1,-0.91,-0.66,-0.27,0.23,0.83,1.5,2.22,2.96,3.7,4.43,5.12,5.74,6.28,6.71,7,7.23,7.44,7.63,7.8,7.95,8.1,8.22,8.34,8.44,8.53,8.61,8.68,8.74,8.79,8.84,8.87,8.91,8.93,8.952,8.968,8.98,8.989,8.994,8.998,9,9,8.93,8.75,8.45,8.05,7.58,7.04,6.42,5.79,5.12,4.43,3.74,3.07,2.4,1.77,1.18,0.65,0.18,-0.23,-0.56,-0.8,-0.95,-1,-0.97,-0.9,-0.79,-0.65,-0.49,-0.31,-0.12,0.07,0.26,0.43,0.59,0.73,0.84,0.93,0.98,1\r\r\nPARAM_DM_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.28,-0.45,-0.56,-0.61,-0.52,-0.29,-0.01,0.26,0.48,0.61,0.66,0.58,0.38,0.13,-0.11,-0.3,-0.42,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.5,0.54,0.536,0.526,0.51,0.49,0.46,0.43,0.4,0.37,0.33,0.29,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.024,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/motions/idle-03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,-0.08,-0.27,-0.56,-0.92,-1.32,-1.74,-2.16,-2.57,-2.95,-3.29,-3.58,-3.8,-3.95,-4,-3.86,-3.52,-3.03,-2.43,-1.78,-1.1,-0.4,0.26,0.91,1.49,2,2.48,2.78,2.93,2.99,3.01,3.005,3,2.94,2.76,2.49,2.12,1.69,1.21,0.68,0.13,-0.43,-0.99,-1.53,-2.04,-2.52,-2.94,-3.3,-3.6,-3.82,-3.95,-4,-3.92,-3.7,-3.35,-2.89,-2.36,-1.76,-1.12,-0.46,0.21,0.86,1.45,2,2.48,2.78,2.93,3,3.01,3.005,3,2.9,2.66,2.33,1.95,1.55,1.16,0.79,0.48,0.22,0.06,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=1,1,1,1,1,1,2.03,4.53,7.59,10.57,12.96,14.49,15,13.9,11.21,7.94,4.75,2.18,0.55,0,0.48,1.69,3.33,5.25,7.24,9.2,11.06,12.62,13.88,14.7,15,13.82,10.96,7.47,4.06,1.33,-0.41,-1,-0.68,0.18,1.5,3.16,5,7,9,10.84,12.5,13.82,14.68,15,13.9,11.21,7.94,4.75,2.18,0.55,0,0.28,1.03,2.19,3.64,5.25,7,8.75,10.36,11.81,12.97,13.72,14,12.9,10.21,6.94,3.75,1.18,-0.45,-1,-0.94,-0.77,-0.56,-0.3,-0.04,0.23,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,-0.52,-1.86,-3.81,-6.23,-8.92,-11.72,-14.57,-17.33,-19.91,-22.24,-24.16,-25.68,-26.66,-27,-26.38,-24.74,-22.33,-19.26,-15.73,-11.77,-7.4,-2.89,1.94,6.87,12,17.64,21.61,24.16,25.71,26.54,26.91,27,26.52,25.14,23.03,20.22,16.91,13.16,9.09,4.88,0.55,-3.79,-7.96,-11.89,-15.55,-18.8,-21.62,-23.9,-25.58,-26.64,-27,-26.64,-25.63,-23.97,-21.7,-18.96,-15.66,-11.89,-7.81,-3.27,1.6,6.62,12,17.5,21.42,24,25.6,26.49,26.9,27,26.13,23.96,21.01,17.56,13.97,10.44,7.09,4.28,2.01,0.54,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.74,0.26,0,0.26,0.74,1\r\r\nPARAM_EYE_R_OPEN=1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.74,0.26,0,0.26,0.74,1\r\r\nPARAM_EYE_L=1,0.91,0.76,0.63,0.53,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.474,0.43,0.38,0.32,0.25,0.19,0.13,0.08,0.04,0.01,0,0.26,0.74,1,1,1,1\r\r\nPARAM_EYEK_R=1,0.91,0.76,0.63,0.53,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.49,0.474,0.43,0.38,0.32,0.25,0.19,0.13,0.08,0.04,0.01,0,0.26,0.74,1,1,1,1\r\r\nPARAM_BROW_L_Y=0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=-1,-0.64,-0.07,0.46,0.85,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.94,0.77,0.56,0.3,0.04,-0.23,-0.47,-0.68,-0.85,-0.96,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_1=0\r\r\nPARAM_CHEEK=0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_ARMR_ANGLE_Z=0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.1,-0.13,-0.144,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.148,-0.143,-0.135,-0.126,-0.115,-0.103,-0.09,-0.077,-0.064,-0.051,-0.039,-0.029,-0.019,-0.011,-0.005,-0.001,0\r\r\nPARAM_ARML_ANGLE_Z=0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.1,-0.13,-0.144,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.148,-0.143,-0.135,-0.126,-0.115,-0.103,-0.09,-0.077,-0.064,-0.051,-0.039,-0.029,-0.019,-0.011,-0.005,-0.001,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,-0.04,-0.14,-0.28,-0.46,-0.66,-0.87,-1.08,-1.28,-1.47,-1.65,-1.79,-1.9,-1.97,-2,-1.96,-1.86,-1.7,-1.49,-1.25,-0.96,-0.66,-0.33,0,0.33,0.66,0.96,1.25,1.49,1.7,1.86,1.96,2,1.96,1.86,1.71,1.5,1.25,0.98,0.67,0.36,0.04,-0.28,-0.59,-0.88,-1.15,-1.39,-1.6,-1.77,-1.9,-1.97,-2,-1.96,-1.86,-1.71,-1.5,-1.25,-0.98,-0.67,-0.36,-0.04,0.28,0.59,0.88,1.15,1.39,1.6,1.77,1.9,1.97,2,1.97,1.91,1.8,1.68,1.53,1.37,1.2,1.02,0.85,0.68,0.53,0.38,0.25,0.15,0.07,0.02,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0.08,0.27,0.56,0.92,1.32,1.74,2.16,2.57,2.95,3.29,3.58,3.8,3.95,4,3.93,3.72,3.41,2.99,2.5,1.93,1.31,0.67,0,-0.67,-1.31,-1.93,-2.5,-2.99,-3.41,-3.72,-3.93,-4,-3.93,-3.72,-3.41,-2.99,-2.5,-1.95,-1.35,-0.72,-0.08,0.56,1.18,1.76,2.3,2.78,3.2,3.54,3.79,3.95,4,3.93,3.72,3.41,2.99,2.5,1.95,1.35,0.72,0.08,-0.56,-1.18,-1.76,-2.3,-2.78,-3.2,-3.54,-3.79,-3.95,-4,-3.95,-3.82,-3.61,-3.35,-3.06,-2.73,-2.39,-2.05,-1.7,-1.37,-1.05,-0.76,-0.51,-0.3,-0.14,-0.04,0\r\r\nPARAM_BODY2_ANGLE_Z=0,0,0,0,0,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.97,1.9,1.78,1.62,1.44,1.22,0.99,0.75,0.5,0.25,0.01,-0.22,-0.44,-0.62,-0.78,-0.9,-0.97,-1,-0.97,-0.9,-0.78,-0.62,-0.44,-0.23,-0.01,0.23,0.47,0.71,0.94,1.16,1.36,1.54,1.7,1.83,1.92,1.98,2,1.97,1.9,1.78,1.62,1.44,1.23,1.01,0.77,0.53,0.29,0.06,-0.16,-0.36,-0.54,-0.7,-0.83,-0.92,-0.98,-1,-0.987,-0.95,-0.9,-0.84,-0.76,-0.68,-0.6,-0.51,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_HAIR_FRONT=0,0.002,0.005,0.007,0.009,0.01,-0.06,-0.24,-0.47,-0.68,-0.85,-0.96,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,0.94,0.77,0.56,0.3,0.04,-0.23,-0.47,-0.68,-0.85,-0.96,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,0.96,0.85,0.69,0.48,0.25,0,-0.25,-0.48,-0.69,-0.85,-0.96,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,0.96,0.85,0.69,0.48,0.25,0,-0.25,-0.48,-0.69,-0.85,-0.96,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_DM_Z=0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.982,0.93,0.85,0.75,0.62,0.48,0.33,0.17,0,-0.17,-0.33,-0.48,-0.62,-0.75,-0.85,-0.93,-0.98,-1,-0.982,-0.93,-0.85,-0.75,-0.63,-0.49,-0.34,-0.18,-0.02,0.14,0.29,0.44,0.58,0.7,0.8,0.89,0.95,0.99,1,0.982,0.93,0.85,0.75,0.63,0.49,0.34,0.18,0.02,-0.14,-0.29,-0.44,-0.58,-0.7,-0.8,-0.89,-0.95,-0.99,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0\r\r\nPARAM_fu1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.013,0.025,0.043,0.07,0.1,0.13,0.18,0.24,0.3,0.41,0.56,0.7,0.83,0.92,0.98,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.013,0.025,0.043,0.07,0.1,0.13,0.18,0.24,0.3,0.41,0.56,0.7,0.83,0.92,0.98,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_fu2=0,0,0.003,0.008,0.016,0.029,0.046,0.07,0.1,0.14,0.18,0.24,0.3,0.41,0.55,0.69,0.82,0.92,0.98,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.008,0.016,0.029,0.046,0.07,0.1,0.14,0.18,0.24,0.3,0.41,0.55,0.69,0.82,0.92,0.98,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/motions/thanking.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.27,-1.03,-2.21,-3.77,-5.61,-7.69,-9.95,-12.29,-14.69,-17.1,-19.42,-21.6,-23.64,-25.44,-27.01,-28.28,-29.21,-29.8,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.85,-29.41,-28.71,-27.78,-26.65,-25.35,-23.86,-22.27,-20.59,-18.83,-17.06,-15.22,-13.42,-11.64,-9.91,-8.24,-6.7,-5.26,-3.95,-2.81,-1.83,-1.05,-0.48,-0.12,0\r\r\nPARAM_ANGLE_Y=0,0.03,0.14,0.32,0.58,0.93,1.36,1.89,2.51,3.24,4.06,4.99,6,7.13,8.35,9.69,11.12,12.64,14.27,16,18.67,21.2,23.59,25.71,27.47,28.83,29.69,30,27.5,23.49,19.75,17.05,16,16.011,16.04,16.1,16.17,16.26,16.37,16.49,16.63,16.78,16.94,17.11,17.29,17.48,17.67,17.87,18.07,18.27,18.47,18.68,18.88,19.08,19.28,19.47,19.65,19.83,20,20.15,20.3,20.44,20.57,20.67,20.77,20.85,20.92,20.96,20.99,21,20.55,19.79,19.23,19,18.89,18.78,18.67,18.57,18.47,18.37,18.27,18.18,18.09,18,17.91,17.82,17.74,17.66,17.58,17.5,17.42,17.35,17.28,17.21,17.14,17.08,17.01,16.95,16.9,16.84,16.78,16.73,16.68,16.63,16.58,16.54,16.49,16.45,16.41,16.38,16.34,16.31,16.27,16.24,16.22,16.19,16.16,16.14,16.12,16.101,16.083,16.067,16.053,16.04,16.03,16.021,16.013,16.007,16.003,16.001,16,16,16,16,16,16,16,16,16,16,16,15.92,15.69,15.31,14.82,14.21,13.52,12.72,11.88,10.98,10.04,9.1,8.12,7.16,6.21,5.28,4.39,3.57,2.81,2.11,1.5,0.98,0.56,0.25,0.06,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.09,1.32,1.55,1.81,2.07,2.34,2.61,2.89,3.18,3.46,3.75,4.03,4.31,4.59,4.85,5.11,5.36,5.6,5.82,6.02,6.22,6.39,6.54,6.68,6.79,6.88,6.95,6.99,7,6.52,5.72,5.18,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.34,6.25,7.55,9.04,10.58,12.03,13.26,14.2,14.79,15,14.92,14.71,14.36,13.89,13.32,12.67,11.93,11.14,10.3,9.41,8.53,7.61,6.71,5.82,4.95,4.12,3.35,2.63,1.98,1.4,0.92,0.53,0.24,0.06,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L=0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0\r\r\nPARAM_EYEK_R=0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYEDEFORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.62,0.82,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.989,0.977,0.96,0.94,0.92,0.89,0.86,0.82,0.79,0.75,0.71,0.67,0.63,0.59,0.55,0.51,0.46,0.42,0.38,0.34,0.3,0.26,0.22,0.19,0.16,0.13,0.1,0.07,0.05,0.034,0.02,0.009,0.002,0\r\r\nPARAM_ARMR_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARML_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.24,-0.64,-0.91,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-0.91,-0.76,-0.65,-0.62,-0.71,-0.86,-0.97,-1,-0.89,-0.71,-0.59,-0.55,-0.66,-0.84,-0.96,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.42,-6.39,-9.11,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.66,-8.75,-7.45,-5.96,-4.42,-2.97,-1.74,-0.8,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.18,-5.75,-8.2,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.69,-7.88,-6.71,-5.37,-3.97,-2.68,-1.57,-0.72,-0.19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY2_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.21,-3.19,-4.56,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY3_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.48,1.28,1.82,2,1.995,1.982,1.96,1.93,1.89,1.85,1.8,1.74,1.68,1.61,1.53,1.45,1.37,1.28,1.19,1.09,0.99,0.89,0.79,0.68,0.57,0.46,0.35,0.24,0.13,0.01,-0.1,-0.21,-0.32,-0.43,-0.54,-0.65,-0.75,-0.86,-0.96,-1.06,-1.15,-1.24,-1.33,-1.42,-1.49,-1.57,-1.64,-1.7,-1.76,-1.82,-1.86,-1.9,-1.94,-1.96,-1.984,-1.996,-2,-1.995,-1.979,-1.95,-1.92,-1.88,-1.83,-1.78,-1.71,-1.65,-1.58,-1.5,-1.43,-1.35,-1.26,-1.18,-1.1,-1.01,-0.93,-0.84,-0.76,-0.68,-0.6,-0.52,-0.45,-0.38,-0.31,-0.25,-0.2,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_LEGL_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.52,0.74,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.81,0.78,0.71,0.6,0.48,0.36,0.24,0.14,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_DM_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.76,0.37,0.1,0.01,0.25,0.64,0.91,1,0.76,0.37,0.1,0.01,0.25,0.64,0.91,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/motions/touch.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.38,1.37,2.82,4.61,6.6,8.69,10.79,12.84,14.75,16.47,17.9,19.02,19.75,20,20,20,20,20,20,20,20,20,19.31,17.47,14.8,11.63,8.37,5.2,2.53,0.69,0\r\r\nPARAM_ANGLE_Y=0,-0.36,-1.31,-2.68,-4.38,-6.27,-8.25,-10.25,-12.19,-14.01,-15.65,-17,-18.07,-18.76,-19,-17.43,-14.03,-9.79,-5.39,-1.37,1.96,4.17,5,4.83,4.37,3.7,2.91,2.09,1.3,0.63,0.17,0\r\r\nPARAM_ANGLE_Z=0,0.34,1.24,2.54,4.15,5.94,7.82,9.71,11.55,13.27,14.82,16.11,17.12,17.77,18,17.68,16.92,15.85,14.54,13.08,11.47,9.78,8,6.1,4.51,3.19,2.13,1.32,0.71,0.3,0.07,0\r\r\nPARAM_EYE_L_OPEN=1,0.998,0.991,0.982,0.97,0.957,0.944,0.93,0.917,0.904,0.893,0.884,0.876,0.872,0.87,0.87,0.872,0.874,0.878,0.883,0.89,0.899,0.91,0.924,0.938,0.952,0.964,0.976,0.986,0.993,0.998,1\r\r\nPARAM_EYE_R_OPEN=1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0.03,0.13,0.26,0.42,0.58,0.74,0.87,0.97,1\r\r\nPARAM_EYE_L=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0\r\r\nPARAM_EYEK_R=0\r\r\nPARAM_EYE_BALL_X=0,-0.009,-0.03,-0.07,-0.11,-0.16,-0.2,-0.25,-0.3,-0.35,-0.39,-0.42,-0.45,-0.464,-0.47,-0.47,-0.47,-0.47,-0.47,-0.467,-0.463,-0.458,-0.45,-0.43,-0.38,-0.32,-0.25,-0.18,-0.11,-0.05,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.011,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.43,0.48,0.52,0.55,0.57,0.58,0.572,0.553,0.52,0.49,0.45,0.4,0.35,0.29,0.23,0.17,0.12,0.08,0.05,0.03,0.013,0.003,0\r\r\nPARAM_EYEDEFORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.014,0.05,0.11,0.17,0.25,0.33,0.4,0.48,0.55,0.62,0.67,0.71,0.74,0.75,0.741,0.72,0.68,0.63,0.57,0.51,0.45,0.38,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0\r\r\nPARAM_MOUTH_1=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0,0.005,0.016,0.034,0.06,0.08,0.1,0.13,0.15,0.18,0.2,0.215,0.228,0.237,0.24,0.237,0.229,0.217,0.201,0.183,0.164,0.14,0.12,0.1,0.082,0.063,0.046,0.03,0.018,0.008,0.002,0\r\r\nPARAM_ARML_ANGLE_Z=0,0.002,0.006,0.013,0.021,0.03,0.039,0.049,0.058,0.066,0.074,0.081,0.086,0.089,0.09,0.089,0.086,0.081,0.075,0.069,0.062,0.054,0.046,0.038,0.031,0.024,0.017,0.011,0.007,0.003,0.001,0\r\r\nPARAM_BODY_ANGLE_X=0,0.19,0.69,1.41,2.31,3.3,4.34,5.4,6.42,7.37,8.24,8.95,9.51,9.87,10,9.997,9.96,9.87,9.7,9.45,9.09,8.61,8,7.11,6.05,4.88,3.7,2.58,1.56,0.74,0.2,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.19,-0.69,-1.41,-2.31,-3.3,-4.34,-5.4,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-9.87,-9.54,-9.02,-8.38,-7.64,-6.84,-5.98,-5.12,-4.24,-3.41,-2.63,-1.9,-1.27,-0.74,-0.34,-0.09,0\r\r\nPARAM_BODY2_ANGLE_Z=0,-0.1,-0.34,-0.71,-1.15,-1.65,-2.17,-2.7,-3.21,-3.69,-4.12,-4.47,-4.76,-4.94,-5,-4.94,-4.77,-4.51,-4.19,-3.82,-3.42,-2.99,-2.56,-2.12,-1.71,-1.31,-0.95,-0.63,-0.37,-0.17,-0.04,0\r\r\nPARAM_BODY3_ANGLE_Z=0\r\r\nPARAM_LEGL_ANGLE_Z=0\r\r\nPARAM_DM_Z=0\r\r\nPARAM_L=0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_EYE_DEFORM=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/textures.cache",
    "content": "[[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/xmas-headwear.png\"]]"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/22/textures_order.json",
    "content": "[\n    [\"texture_00\"],\n    [\"texture_01\",\"texture_02\"],\n    [\"texture_03\"]\n]"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/index.json",
    "content": "{\n    \"type\":\"Live2D Model Setting\",\n    \"name\":\"33-3695903\",\n    \"label\":\"33\",\n    \"model\":\"model.moc\",\n    \"textures\":[\n        \"texture_00/closet-default-v2.png\",\n        \"texture_01/default-upper.png\",\n        \"texture_02/default-lower.png\",\n        \"texture_03/default-hat.png\"\n    ],\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": 0.1,\n        \"width\": 2.3,\n        \"height\": 2.5\n    },\n\t\"hit_areas_custom\":{\n\t\t\"head_x\":[-0.35, 0.6],\n\t\t\"head_y\":[0.19, -0.2],\n\t\t\"body_x\":[-0.3, -0.25],\n\t\t\"body_y\":[0.3, -0.9]\n\t},\n    \"motions\":{\n        \"idle\":[\n            {\"file\":\"motions/idle-01.mtn\",\"fade_in\":2000,\"fade_out\":2000},\n            {\"file\":\"motions/idle-02.mtn\",\"fade_in\":2000,\"fade_out\":2000},\n            {\"file\":\"motions/idle-03.mtn\",\"fade_in\":2000,\"fade_out\":2000}\n        ],\n        \"flick_head\":[\n            {\"file\":\"motions/touch.mtn\",\"fade_in\":150,\"fade_out\":100}\n        ],\n        \"tap_body\":[\n            {\"file\":\"motions/touch.mtn\",\"fade_in\":150,\"fade_out\":100}\n        ],\n        \"thanking\":[\n            {\"file\":\"motions/thanking.mtn\",\"fade_in\":2000,\"fade_out\":2000}\n        ]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/motions/idle-01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.03,0.11,0.25,0.44,0.68,0.96,1.28,1.63,2.03,2.45,2.91,3.38,3.89,4.41,4.95,5.5,6.07,6.63,7.21,7.79,8.37,8.93,9.5,10.05,10.59,11.11,11.62,12.09,12.55,12.97,13.37,13.72,14.04,14.32,14.56,14.75,14.89,14.97,15,14.96,14.84,14.65,14.39,14.05,13.66,13.2,12.69,12.11,11.49,10.81,10.1,9.34,8.54,7.71,6.83,5.92,4.99,4.05,3.08,2.09,1.08,0.06,-0.96,-1.99,-3.01,-4.04,-5.06,-6.08,-7.09,-8.08,-9.05,-9.99,-10.92,-11.83,-12.71,-13.54,-14.34,-15.1,-15.81,-16.49,-17.11,-17.69,-18.2,-18.66,-19.05,-19.39,-19.65,-19.84,-19.96,-20,-19.95,-19.79,-19.54,-19.2,-18.79,-18.3,-17.75,-17.15,-16.49,-15.78,-15.04,-14.27,-13.47,-12.64,-11.81,-10.97,-10.1,-9.25,-8.41,-7.59,-6.77,-5.97,-5.22,-4.48,-3.79,-3.14,-2.53,-1.98,-1.49,-1.05,-0.69,-0.4,-0.18,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.21,-0.47,-0.82,-1.27,-1.78,-2.39,-3.05,-3.79,-4.58,-5.43,-6.32,-7.27,-8.23,-9.25,-10.27,-11.33,-12.38,-13.47,-14.53,-15.62,-16.67,-17.73,-18.75,-19.77,-20.73,-21.68,-22.57,-23.42,-24.21,-24.95,-25.61,-26.22,-26.73,-27.18,-27.53,-27.79,-27.95,-28,-27.97,-27.88,-27.72,-27.51,-27.24,-26.93,-26.56,-26.15,-25.69,-25.19,-24.65,-24.08,-23.47,-22.83,-22.16,-21.46,-20.73,-20,-19.24,-18.46,-17.67,-16.86,-16.04,-15.23,-14.41,-13.59,-12.77,-11.96,-11.14,-10.33,-9.54,-8.76,-8,-7.27,-6.54,-5.84,-5.17,-4.53,-3.92,-3.35,-2.81,-2.31,-1.85,-1.44,-1.07,-0.76,-0.49,-0.28,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.008,-0.03,-0.07,-0.12,-0.18,-0.25,-0.34,-0.44,-0.54,-0.65,-0.78,-0.9,-1.04,-1.18,-1.32,-1.47,-1.62,-1.77,-1.92,-2.08,-2.23,-2.38,-2.53,-2.68,-2.82,-2.96,-3.1,-3.22,-3.35,-3.46,-3.56,-3.66,-3.75,-3.82,-3.88,-3.93,-3.97,-3.99,-4,-3.99,-3.96,-3.91,-3.84,-3.76,-3.66,-3.54,-3.41,-3.26,-3.1,-2.92,-2.74,-2.54,-2.34,-2.12,-1.9,-1.66,-1.43,-1.18,-0.93,-0.68,-0.42,-0.16,0.1,0.37,0.63,0.9,1.16,1.42,1.68,1.93,2.18,2.43,2.66,2.9,3.12,3.34,3.54,3.74,3.92,4.1,4.26,4.41,4.54,4.66,4.76,4.84,4.91,4.96,4.99,5,4.987,4.95,4.88,4.8,4.7,4.58,4.44,4.29,4.12,3.95,3.76,3.57,3.37,3.16,2.95,2.74,2.53,2.31,2.1,1.9,1.69,1.49,1.3,1.12,0.95,0.78,0.63,0.5,0.37,0.26,0.17,0.1,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0.004,0.008,0.014,0.022,0.031,0.041,0.052,0.065,0.078,0.093,0.108,0.125,0.141,0.159,0.176,0.194,0.212,0.231,0.249,0.268,0.286,0.304,0.321,0.339,0.355,0.372,0.387,0.402,0.415,0.428,0.439,0.449,0.458,0.466,0.472,0.476,0.479,0.48,0.479,0.475,0.468,0.459,0.448,0.435,0.42,0.403,0.384,0.36,0.34,0.32,0.29,0.26,0.24,0.21,0.18,0.15,0.11,0.08,0.05,0.01,-0.02,-0.05,-0.09,-0.12,-0.16,-0.19,-0.22,-0.26,-0.29,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.5,-0.53,-0.55,-0.57,-0.59,-0.613,-0.63,-0.645,-0.658,-0.669,-0.678,-0.685,-0.689,-0.69,-0.688,-0.683,-0.674,-0.663,-0.648,-0.631,-0.613,-0.59,-0.57,-0.54,-0.52,-0.49,-0.46,-0.44,-0.41,-0.38,-0.35,-0.32,-0.29,-0.26,-0.23,-0.21,-0.18,-0.15,-0.13,-0.11,-0.09,-0.068,-0.051,-0.036,-0.024,-0.014,-0.006,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.002,-0.004,-0.005,-0.007,-0.009,-0.011,-0.013,-0.016,-0.018,-0.021,-0.024,-0.027,-0.03,-0.034,-0.037,-0.041,-0.044,-0.048,-0.052,-0.056,-0.059,-0.063,-0.067,-0.071,-0.074,-0.078,-0.082,-0.086,-0.089,-0.093,-0.096,-0.1,-0.103,-0.106,-0.109,-0.112,-0.114,-0.117,-0.119,-0.121,-0.123,-0.125,-0.126,-0.128,-0.129,-0.129,-0.13,-0.13,-0.13,-0.129,-0.127,-0.125,-0.122,-0.119,-0.115,-0.111,-0.107,-0.103,-0.098,-0.093,-0.088,-0.082,-0.077,-0.071,-0.066,-0.06,-0.055,-0.049,-0.044,-0.039,-0.034,-0.029,-0.025,-0.02,-0.016,-0.013,-0.01,-0.007,-0.004,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0\r\r\nPARAM_ARML_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0,0.004,0.015,0.034,0.06,0.09,0.13,0.17,0.22,0.27,0.33,0.39,0.45,0.52,0.59,0.66,0.73,0.81,0.88,0.96,1.04,1.12,1.19,1.27,1.34,1.41,1.48,1.55,1.61,1.67,1.73,1.78,1.83,1.87,1.91,1.94,1.97,1.985,1.996,2,1.994,1.978,1.95,1.91,1.86,1.81,1.74,1.67,1.59,1.5,1.4,1.3,1.19,1.08,0.96,0.83,0.7,0.57,0.44,0.3,0.16,0.01,-0.13,-0.28,-0.43,-0.57,-0.72,-0.87,-1.01,-1.16,-1.3,-1.44,-1.57,-1.7,-1.83,-1.96,-2.08,-2.19,-2.3,-2.4,-2.5,-2.59,-2.67,-2.74,-2.81,-2.86,-2.91,-2.95,-2.98,-2.994,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY2_ANGLE_Z=0,0.002,0.008,0.017,0.029,0.045,0.064,0.09,0.11,0.14,0.16,0.19,0.23,0.26,0.29,0.33,0.37,0.4,0.44,0.48,0.52,0.56,0.6,0.63,0.67,0.71,0.74,0.77,0.81,0.84,0.86,0.89,0.91,0.94,0.955,0.971,0.983,0.992,0.998,1,0.998,0.991,0.98,0.965,0.946,0.92,0.9,0.87,0.84,0.8,0.76,0.72,0.68,0.63,0.58,0.53,0.48,0.43,0.37,0.32,0.26,0.2,0.15,0.09,0.03,-0.03,-0.09,-0.15,-0.2,-0.26,-0.32,-0.37,-0.43,-0.48,-0.53,-0.58,-0.63,-0.68,-0.72,-0.76,-0.8,-0.84,-0.87,-0.9,-0.92,-0.95,-0.965,-0.98,-0.991,-0.998,-1,-0.997,-0.989,-0.977,-0.96,-0.94,-0.92,-0.89,-0.86,-0.82,-0.79,-0.75,-0.71,-0.67,-0.63,-0.59,-0.55,-0.51,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.07,-0.05,-0.034,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY3_ANGLE_Z=0\r\r\nPARAM_DM_Z=0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/motions/idle-02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,0.004,0.014,0.024,0.031,0.031,0.019,-0.01,-0.05,-0.11,-0.2,-0.31,-0.46,-0.63,-0.84,-1.09,-1.38,-1.71,-2.09,-2.52,-3,-3.63,-4.4,-5.34,-6.42,-7.58,-8.86,-10.23,-11.63,-13.1,-14.61,-16.09,-17.6,-19.09,-20.51,-21.9,-23.22,-24.42,-25.54,-26.53,-27.36,-28.06,-28.57,-28.89,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-27.21,-24.35,-21.68,-19.75,-19,-19,-19,-19,-19,-19,-19,-19,-19,-18.76,-18.08,-17.02,-15.67,-14.06,-12.3,-10.44,-8.56,-6.7,-4.94,-3.33,-1.98,-0.92,-0.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=-1,-1.006,-1.03,-1.07,-1.14,-1.24,-1.38,-1.55,-1.77,-2.03,-2.34,-2.7,-3.13,-3.61,-4.15,-4.78,-5.46,-6.23,-7.05,-7.98,-9,-10.14,-11.27,-12.46,-13.66,-14.83,-16.04,-17.23,-18.39,-19.56,-20.69,-21.77,-22.84,-23.86,-24.8,-25.7,-26.54,-27.29,-27.97,-28.57,-29.06,-29.46,-29.76,-29.94,-30,-29.89,-29.57,-29.06,-28.42,-27.66,-26.83,-25.95,-25.05,-24.17,-23.34,-22.58,-21.94,-21.43,-21.11,-21,-21.18,-21.66,-22.39,-23.29,-24.3,-25.37,-26.42,-27.4,-28.26,-28.99,-29.54,-29.88,-30,-29.87,-29.52,-28.96,-28.25,-27.4,-26.47,-25.5,-24.5,-23.53,-22.6,-21.75,-21.04,-20.48,-20.13,-20,-20.04,-20.16,-20.34,-20.6,-20.91,-21.26,-21.67,-22.11,-22.59,-23.1,-23.62,-24.17,-24.72,-25.28,-25.83,-26.38,-26.9,-27.41,-27.89,-28.33,-28.74,-29.09,-29.4,-29.66,-29.84,-29.96,-30,-23.21,-12.33,-2.18,5.14,8,6.31,3.53,1.62,1,1,1,1,1,0.97,0.9,0.79,0.65,0.48,0.29,0.1,-0.1,-0.29,-0.48,-0.65,-0.79,-0.9,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ANGLE_Z=0,0.004,0.013,0.021,0.026,0.024,0.01,-0.02,-0.06,-0.13,-0.22,-0.33,-0.48,-0.65,-0.86,-1.11,-1.4,-1.73,-2.1,-2.52,-3,-3.61,-4.33,-5.2,-6.18,-7.22,-8.37,-9.59,-10.83,-12.13,-13.46,-14.76,-16.08,-17.38,-18.62,-19.84,-20.98,-22.03,-23,-23.86,-24.58,-25.18,-25.63,-25.9,-26,-25.97,-25.9,-25.79,-25.65,-25.48,-25.29,-25.1,-24.9,-24.71,-24.52,-24.35,-24.21,-24.1,-24.03,-24,-24.04,-24.15,-24.31,-24.51,-24.73,-24.97,-25.2,-25.42,-25.61,-25.78,-25.9,-25.97,-26,-25.97,-25.9,-25.79,-25.65,-25.48,-25.29,-25.1,-24.9,-24.71,-24.52,-24.35,-24.21,-24.1,-24.03,-24,-24.008,-24.03,-24.07,-24.12,-24.18,-24.25,-24.33,-24.42,-24.52,-24.62,-24.72,-24.83,-24.94,-25.06,-25.17,-25.28,-25.38,-25.48,-25.58,-25.67,-25.75,-25.82,-25.88,-25.93,-25.97,-25.99,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-25.67,-24.75,-23.29,-21.44,-19.24,-16.83,-14.29,-11.71,-9.17,-6.76,-4.56,-2.71,-1.25,-0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.998,0.991,0.981,0.968,0.953,0.935,0.917,0.898,0.878,0.857,0.838,0.819,0.801,0.784,0.769,0.756,0.745,0.737,0.732,0.73,0.734,0.744,0.758,0.774,0.791,0.807,0.821,0.831,0.838,0.84,0.824,0.78,0.72,0.65,0.56,0.48,0.39,0.3,0.22,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.36,0.56,0.71,0.77,0.77,0.77,0.77,0.77,0.78,0.8,0.82,0.84,0.86,0.883,0.901,0.918,0.933,0.947,0.958,0.968,0.977,0.984,0.99,0.995,0.998,0.999,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,0.998,0.991,0.982,0.969,0.954,0.938,0.92,0.901,0.882,0.863,0.844,0.825,0.808,0.792,0.777,0.765,0.754,0.747,0.742,0.74,0.743,0.752,0.765,0.78,0.796,0.81,0.823,0.832,0.838,0.84,0.824,0.78,0.72,0.65,0.56,0.48,0.39,0.3,0.22,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.36,0.56,0.71,0.77,0.77,0.77,0.77,0.77,0.78,0.8,0.82,0.84,0.86,0.883,0.901,0.918,0.933,0.947,0.958,0.968,0.977,0.984,0.99,0.995,0.998,0.999,1,0.74,0.26,0,0.24,0.64,0.91,1,0.74,0.26,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.42,0.59,0.65,0.642,0.62,0.58,0.54,0.48,0.42,0.36,0.3,0.24,0.18,0.12,0.08,0.04,0.02,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.007,0.006,0.004,0.003,0.001,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.071,-0.09,-0.12,-0.14,-0.17,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.4,-0.43,-0.46,-0.49,-0.508,-0.522,-0.532,-0.537,-0.54,-0.541,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.538,-0.536,-0.533,-0.529,-0.524,-0.517,-0.509,-0.5,-0.484,-0.46,-0.43,-0.39,-0.35,-0.3,-0.25,-0.21,-0.16,-0.12,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.16,0.23,0.25,0.247,0.238,0.224,0.206,0.18,0.16,0.14,0.11,0.09,0.07,0.04,0.026,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.008,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.007,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.006,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.005,0,0,0,0,0,0,0.004,0,0,0,0,0,0,0,0.003,0,0,0,0,0,0,0,0,0.002,0,0,0,0,0,0,0,0,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.005,0.007,0.009,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.008,0.007,0.01,0.006,0.01,0.004,0.004,0,0.003,0,0.002,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.91,0.77,0.63,0.54,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.63,0.87,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0\r\r\nPARAM_ARML_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.021,0.08,0.17,0.3,0.45,0.63,0.82,1.04,1.27,1.51,1.75,2,2.25,2.49,2.73,2.96,3.18,3.38,3.55,3.7,3.83,3.92,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.95,3.81,3.58,3.3,2.96,2.59,2.2,1.8,1.41,1.04,0.7,0.42,0.19,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/motions/idle-03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.05,-0.2,-0.43,-0.72,-1.09,-1.49,-1.94,-2.41,-2.91,-3.42,-3.94,-4.45,-4.95,-5.45,-5.91,-6.34,-6.74,-7.1,-7.41,-7.66,-7.84,-7.96,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.72,-6.99,-5.92,-4.65,-3.35,-2.08,-1.01,-0.28,0\r\r\nPARAM_ANGLE_Y=1,0.8,0.23,-0.67,-1.81,-3.21,-4.78,-6.5,-8.34,-10.28,-12.24,-14.25,-16.24,-18.19,-20.11,-21.9,-23.58,-25.12,-26.5,-27.7,-28.67,-29.39,-29.84,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.91,-29.66,-29.27,-28.77,-28.18,-27.53,-26.85,-26.15,-25.47,-24.82,-24.23,-23.73,-23.34,-23.09,-23,-23.14,-23.51,-24.09,-24.82,-25.63,-26.5,-27.37,-28.18,-28.91,-29.49,-29.86,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-28.93,-26.07,-21.94,-17.03,-11.97,-7.06,-2.93,-0.07,1\r\r\nPARAM_ANGLE_Z=0,0.17,0.67,1.45,2.44,3.67,5.03,6.54,8.14,9.82,11.53,13.28,15.02,16.72,18.38,19.94,21.41,22.75,23.96,24.99,25.84,26.47,26.86,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,26.07,23.58,19.98,15.71,11.29,7.02,3.42,0.93,0\r\r\nPARAM_EYE_L_OPEN=1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0.016,0.06,0.12,0.21,0.3,0.4,0.49,0.58,0.67,0.73,0.77,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.797,0.817,0.84,0.88,0.91,0.95,0.97,0.993,1\r\r\nPARAM_EYE_R_OPEN=1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0.016,0.06,0.12,0.21,0.3,0.4,0.49,0.58,0.67,0.73,0.77,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.797,0.817,0.84,0.88,0.91,0.95,0.97,0.993,1\r\r\nPARAM_EYE_BALL_X=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0\r\r\nPARAM_EYE_BALL_Y=-0.04,-0.046,-0.064,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.51,-0.57,-0.63,-0.69,-0.75,-0.8,-0.85,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.29,-0.16,-0.07,-0.04\r\r\nPARAM_MOUTH_FORM=0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.01,0.007,0.006,0.005,0.005,0.004,0.003,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0,0.002,0,0.003,0,0.004,0,0.006,0.006,0.01,0.007,0.01,0.008,0.01,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.12,0.18,0.24,0.3,0.36,0.4,0.44,0.47,0.48,0.478,0.471,0.459,0.445,0.426,0.41,0.38,0.36,0.33,0.3,0.27,0.24,0.21,0.19,0.16,0.13,0.11,0.08,0.06,0.045,0.029,0.017,0.008,0.002,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0,0.002,0.007,0.015,0.024,0.037,0.05,0.065,0.081,0.098,0.115,0.133,0.15,0.167,0.184,0.199,0.214,0.228,0.24,0.25,0.258,0.265,0.269,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.261,0.24,0.2,0.16,0.11,0.07,0.03,0.01,0\r\r\nPARAM_ARML_ANGLE_Z=0,0.002,0.007,0.015,0.024,0.037,0.05,0.065,0.081,0.098,0.115,0.133,0.15,0.167,0.184,0.199,0.214,0.228,0.24,0.25,0.258,0.265,0.269,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.261,0.24,0.2,0.16,0.11,0.07,0.03,0.01,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY2_ANGLE_Z=0\r\r\nPARAM_BREATH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_DM_Z=0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0\r\r\nPARAM_tanqi=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.01,0.019,0.033,0.053,0.08,0.11,0.15,0.2,0.24,0.29,0.34,0.39,0.44,0.48,0.53,0.58,0.62,0.66,0.71,0.75,0.78,0.82,0.85,0.88,0.91,0.93,0.95,0.969,0.982,0.992,0.998,1,1,1,1,1,1,1,1,1,1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/motions/thanking.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-0.11,-0.45,-1,-1.73,-2.66,-3.75,-4.99,-6.37,-7.89,-9.51,-11.27,-13.09,-15.02,-16.98,-19,-21.09,-22.88,-24.42,-25.74,-26.83,-27.73,-28.44,-28.98,-29.39,-29.68,-29.87,-29.97,-30,-29.54,-28.23,-26.2,-23.49,-20.29,-16.65,-12.67,-8.51,-4.2,0.17,4.44,8.51,12.39,15.94,19.16,21.91,24.15,25.88,27,27.89,28.58,29.11,29.5,29.77,29.95,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,28.97,26.2,22.2,17.45,12.55,7.8,3.8,1.03,0\r\r\nPARAM_ANGLE_Y=-1,-0.7,0.16,1.5,3.21,5.24,7.46,9.81,12.19,14.54,16.76,18.79,20.5,21.84,22.7,23,21.94,19.1,14.83,9.49,3.57,-2.72,-8.9,-14.67,-19.78,-24.07,-27.3,-29.31,-30,-29.91,-29.66,-29.26,-28.74,-28.13,-27.44,-26.68,-25.9,-25.1,-24.3,-23.53,-22.8,-22.12,-21.52,-21,-20.57,-20.26,-20.07,-20,-20.2,-20.74,-21.54,-22.55,-23.67,-24.85,-26.02,-27.11,-28.07,-28.88,-29.49,-29.87,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29,-26.33,-22.46,-17.87,-13.13,-8.54,-4.67,-2,-1\r\r\nPARAM_ANGLE_Z=0,-0.04,-0.16,-0.37,-0.68,-1.11,-1.64,-2.29,-3.08,-4.01,-5.08,-6.33,-7.72,-9.31,-11.06,-13,-15.21,-17.32,-19.34,-21.27,-23.02,-24.63,-26.04,-27.24,-28.23,-29.01,-29.56,-29.89,-30,-29.46,-27.93,-25.59,-22.46,-18.78,-14.63,-10.1,-5.42,-0.62,4.21,8.85,13.21,17.28,20.89,24.03,26.56,28.43,29.6,30,28.98,26.25,22.14,17,11.3,5.25,-0.7,-6.25,-11.17,-15.3,-18.4,-20.34,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.28,-18.34,-15.54,-12.22,-8.78,-5.46,-2.66,-0.72,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0.24,0.64,0.91,1,0.82,0.54,0.27,0.08,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0.22,0.61,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.61,0.22,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0.24,0.64,0.91,1,0.82,0.54,0.27,0.08,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0.22,0.61,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.61,0.22,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0.01,0.018,0.04,0.08,0.12,0.17,0.23,0.29,0.36,0.42,0.48,0.53,0.57,0.61,0.63,0.64,0.627,0.59,0.54,0.48,0.41,0.33,0.25,0.19,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.08,-0.13,-0.19,-0.25,-0.31,-0.37,-0.42,-0.46,-0.49,-0.513,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.12,0.6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.6,-0.12,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.502,-0.45,-0.38,-0.3,-0.21,-0.13,-0.06,-0.01,0.01\r\r\nPARAM_EYE_BALL_Y=0.08,0.066,0.03,-0.03,-0.11,-0.2,-0.3,-0.41,-0.51,-0.62,-0.72,-0.81,-0.89,-0.95,-0.99,-1,-0.981,-0.93,-0.85,-0.76,-0.65,-0.53,-0.42,-0.32,-0.23,-0.15,-0.09,-0.05,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.03,0,0.04,0.09,0.14,0.2,0.26,0.32,0.36,0.4,0.43,0.453,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.22,-0.22,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.22,0.22,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.447,0.41,0.36,0.3,0.24,0.18,0.13,0.09,0.08\r\r\nPARAM_MOUTH_FORM=0.01,0.01,0.013,0.017,0.023,0.03,0.038,0.047,0.058,0.07,0.083,0.098,0.113,0.129,0.147,0.165,0.184,0.203,0.224,0.24,0.27,0.29,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.48,0.51,0.53,0.55,0.58,0.6,0.63,0.65,0.68,0.7,0.72,0.74,0.77,0.79,0.807,0.826,0.845,0.863,0.881,0.897,0.912,0.927,0.94,0.952,0.963,0.972,0.98,0.987,0.993,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.59,0.42,0.27,0.14,0.04,0.01\r\r\nPARAM_MOUTH_OPEN_Y=1\r\r\nPARAM_CHEEK=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.006,0.013,0.022,0.034,0.049,0.065,0.084,0.1,0.13,0.15,0.18,0.2,0.23,0.26,0.29,0.32,0.35,0.38,0.42,0.45,0.48,0.52,0.55,0.58,0.62,0.65,0.68,0.71,0.74,0.77,0.8,0.82,0.85,0.87,0.9,0.92,0.935,0.951,0.966,0.978,0.987,0.994,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0\r\r\nPARAM_ARMR_ANGLE_Z=0,-0.002,-0.009,-0.019,-0.032,-0.047,-0.063,-0.081,-0.099,-0.117,-0.133,-0.148,-0.161,-0.171,-0.178,-0.18,-0.16,-0.09,0,0.12,0.25,0.39,0.53,0.66,0.77,0.87,0.94,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,1,1,1,1,0.998,1,1,0.997,1,1,0.996,1,0.995,0.99,0.994,0.99,0.993,0.99,0.992,0.99,0.991,0.99,0.99,0.989,0.99,0.988,0.987,0.99,0.985,0.985,0.984,0.98,0.982,0.982,0.981,0.98,0.979,0.978,0.98,0.976,0.975,0.974,0.973,0.972,0.971,0.97,0.969,0.968,0.967,0.965,0.964,0.963,0.962,0.96,0.959,0.958,0.957,0.955,0.954,0.952,0.951,0.95,0.948,0.947,0.945,0.944,0.942,0.941,0.939,0.937,0.936,0.934,0.932,0.931,0.929,0.927,0.925,0.924,0.922,0.92,0.918,0.916,0.914,0.912,0.91,0.908,0.906,0.904,0.902,0.9,0.898,0.896,0.894,0.891,0.889,0.887,0.885,0.882,0.88,0.85,0.77,0.65,0.51,0.37,0.23,0.11,0.03,0\r\r\nPARAM_ARML_ANGLE_Z=0.01,0.008,0.001,-0.01,-0.023,-0.039,-0.057,-0.076,-0.094,-0.113,-0.131,-0.147,-0.16,-0.171,-0.178,-0.18,-0.16,-0.09,0,0.12,0.25,0.39,0.53,0.66,0.77,0.87,0.94,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,1,1,1,1,0.998,1,1,0.997,1,1,0.996,1,0.995,0.99,0.994,0.99,0.993,0.99,0.992,0.99,0.991,0.99,0.99,0.989,0.99,0.988,0.987,0.99,0.985,0.985,0.984,0.98,0.982,0.982,0.981,0.98,0.979,0.978,0.98,0.976,0.975,0.974,0.973,0.972,0.971,0.97,0.969,0.968,0.967,0.965,0.964,0.963,0.962,0.96,0.959,0.958,0.957,0.955,0.954,0.952,0.951,0.95,0.948,0.947,0.945,0.944,0.942,0.941,0.939,0.937,0.936,0.934,0.932,0.931,0.929,0.927,0.925,0.924,0.922,0.92,0.918,0.916,0.914,0.912,0.91,0.908,0.906,0.904,0.902,0.9,0.898,0.896,0.894,0.891,0.889,0.887,0.885,0.882,0.88,0.85,0.77,0.65,0.51,0.37,0.23,0.11,0.03,0\r\r\nPARAM_BODY_ANGLE_X=0,0.03,0.1,0.21,0.35,0.52,0.71,0.9,1.1,1.29,1.48,1.65,1.79,1.9,1.97,2,1.84,1.41,0.77,-0.04,-0.93,-1.88,-2.82,-3.69,-4.46,-5.11,-5.59,-5.9,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.9,-5.63,-5.23,-4.73,-4.17,-3.57,-2.99,-2.45,-1.96,-1.56,-1.25,-1.07,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.87,-0.74,-0.58,-0.42,-0.26,-0.13,-0.03,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,2.84,2.41,1.77,0.96,0.07,-0.88,-1.82,-2.69,-3.46,-4.11,-4.59,-4.9,-5,-4.91,-4.66,-4.26,-3.74,-3.13,-2.44,-1.68,-0.9,-0.1,0.7,1.47,2.2,2.88,3.48,4,4.43,4.74,4.93,5,4.98,4.93,4.85,4.75,4.63,4.51,4.4,4.29,4.19,4.11,4.05,4.01,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.86,3.49,2.96,2.33,1.67,1.04,0.51,0.14,0\r\r\nPARAM_BODY2_ANGLE_Z=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,2.82,2.34,1.61,0.71,-0.3,-1.37,-2.42,-3.4,-4.26,-4.99,-5.54,-5.88,-6,-5.86,-5.45,-4.82,-3.99,-3.01,-1.9,-0.69,0.55,1.84,3.12,4.36,5.52,6.61,7.57,8.41,9.08,9.58,9.89,10,10,10,9.998,9.997,9.996,9.994,9.992,9.989,9.986,9.983,9.979,9.975,9.971,9.966,9.961,9.955,9.95,9.943,9.937,9.93,9.923,9.915,9.907,9.899,9.89,9.881,9.871,9.861,9.851,9.84,9.829,9.818,9.806,9.794,9.781,9.768,9.755,9.741,9.727,9.712,9.697,9.682,9.666,9.65,9.634,9.617,9.6,9.582,9.564,9.545,9.526,9.507,9.487,9.47,9.446,9.43,9.4,9.38,9.36,9.34,9.31,9.29,9.27,9.24,9.22,9.19,9.17,9.14,9.11,9.09,9.06,9.03,9,8.97,8.95,8.92,8.89,8.85,8.82,8.79,8.76,8.73,8.7,8.66,8.63,8.59,8.56,8.53,8.49,8.45,8.42,8.38,8.34,8.31,8.27,8.23,8.19,8.15,8.11,8.07,8.03,7.99,7.94,7.9,7.86,7.81,7.77,7.73,7.68,7.64,7.59,7.54,7.5,7.45,7.4,7.35,7.3,7.25,7.2,7.15,7.1,7.05,7,6.72,6.05,5.11,4.01,2.88,1.79,0.87,0.24,0\r\r\nPARAM_DM_Z=0,0,0.001,0.002,0.004,0.006,0.009,0.012,0.016,0.02,0.024,0.029,0.034,0.04,0.046,0.053,0.059,0.066,0.074,0.082,0.09,0.099,0.107,0.117,0.126,0.136,0.146,0.156,0.167,0.177,0.188,0.2,0.211,0.223,0.234,0.247,0.259,0.271,0.284,0.296,0.309,0.322,0.335,0.349,0.362,0.375,0.389,0.402,0.416,0.43,0.443,0.457,0.471,0.484,0.498,0.512,0.526,0.54,0.553,0.567,0.581,0.594,0.608,0.621,0.635,0.648,0.661,0.674,0.687,0.7,0.712,0.725,0.737,0.749,0.761,0.773,0.785,0.796,0.807,0.818,0.829,0.839,0.85,0.86,0.869,0.879,0.888,0.897,0.905,0.914,0.922,0.929,0.936,0.943,0.95,0.956,0.962,0.967,0.972,0.977,0.981,0.985,0.989,0.992,0.994,0.996,0.998,0.999,1,1,0.995,0.982,0.96,0.93,0.9,0.86,0.81,0.75,0.7,0.64,0.57,0.5,0.43,0.36,0.28,0.21,0.13,0.05,-0.03,-0.11,-0.19,-0.26,-0.34,-0.41,-0.48,-0.55,-0.61,-0.67,-0.73,-0.78,-0.83,-0.87,-0.91,-0.94,-0.97,-0.985,-0.996,-1,-0.997,-0.987,-0.972,-0.95,-0.93,-0.9,-0.87,-0.83,-0.79,-0.75,-0.71,-0.66,-0.62,-0.57,-0.52,-0.48,-0.43,-0.38,-0.34,-0.3,-0.25,-0.21,-0.18,-0.14,-0.11,-0.08,-0.05,-0.03,-0.013,-0.001,0.007,0.01\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/motions/touch.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=0\r\n\r\n$fadeout=0\r\n\r\nPARAM_ANGLE_X=0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.993,-29.94,-29.8,-29.52,-29.08,-28.46,-27.65,-26.63,-25.43,-24,-21.58,-18.58,-15.19,-11.79,-8.52,-5.62,-3.24,-1.47,-0.38,0\r\r\nPARAM_ANGLE_Y=0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.9,-29.59,-29.03,-28.22,-27.13,-25.79,-24.19,-22.36,-20.31,-18,-14.86,-11.92,-9.17,-6.76,-4.67,-2.96,-1.65,-0.73,-0.18,0\r\r\nPARAM_ANGLE_Z=0,-0.16,-0.62,-1.36,-2.33,-3.5,-4.82,-6.25,-7.77,-9.35,-11,-13.05,-14.77,-16.22,-17.38,-18.29,-18.97,-19.46,-19.77,-19.95,-20,-19.31,-17.51,-14.9,-11.92,-8.83,-5.95,-3.48,-1.6,-0.42,0\r\r\nPARAM_EYE_L_OPEN=1,0.992,0.97,0.94,0.9,0.87,0.83,0.8,0.78,0.765,0.76,0.762,0.769,0.779,0.792,0.807,0.824,0.842,0.861,0.88,0.9,0.92,0.944,0.96,0.973,0.983,0.99,0.995,0.998,0.999,1\r\r\nPARAM_EYE_R_OPEN=1,0.992,0.97,0.94,0.9,0.87,0.83,0.8,0.78,0.765,0.76,0.762,0.769,0.779,0.792,0.807,0.824,0.842,0.861,0.88,0.9,0.92,0.944,0.96,0.973,0.983,0.99,0.995,0.998,0.999,1\r\r\nPARAM_EYE_BALL_X=0,0.016,0.06,0.12,0.19,0.26,0.34,0.4,0.46,0.5,0.53,0.55,0.572,0.584,0.593,0.597,0.6,0.601,0.6,0.6,0.6,0.58,0.53,0.45,0.36,0.26,0.18,0.1,0.05,0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.01,0.022,0.04,0.06,0.09,0.12,0.16,0.2,0.25,0.31,0.37,0.42,0.46,0.5,0.53,0.55,0.568,0.577,0.58,0.56,0.51,0.43,0.35,0.26,0.17,0.1,0.05,0.01,0\r\r\nPARAM_BROW_L_Y=0,-0.03,-0.1,-0.2,-0.31,-0.43,-0.54,-0.64,-0.71,-0.75,-0.77,-0.763,-0.744,-0.72,-0.68,-0.63,-0.59,-0.53,-0.48,-0.42,-0.36,-0.31,-0.25,-0.2,-0.15,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_BROW_R_Y=0,-0.03,-0.1,-0.2,-0.32,-0.45,-0.56,-0.66,-0.74,-0.78,-0.8,-0.793,-0.773,-0.74,-0.71,-0.66,-0.61,-0.55,-0.5,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.08,-0.04,-0.02,-0.005,0\r\r\nPARAM_BROW_L_FORM=0,-0.03,-0.12,-0.25,-0.4,-0.56,-0.7,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0\r\r\nPARAM_BROW_R_FORM=0,-0.03,-0.12,-0.25,-0.4,-0.56,-0.7,-0.83,-0.92,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.004,0.017,0.037,0.06,0.09,0.12,0.16,0.2,0.24,0.27,0.31,0.35,0.38,0.42,0.45,0.47,0.49,0.507,0.517,0.52,0.502,0.46,0.39,0.31,0.23,0.15,0.09,0.04,0.01,0\r\r\nPARAM_CHEEK=0\r\r\nPARAM_ARMR_ANGLE_Z=0,-0.001,-0.006,-0.014,-0.026,-0.043,-0.063,-0.09,-0.11,-0.15,-0.18,-0.23,-0.27,-0.31,-0.35,-0.38,-0.41,-0.425,-0.439,-0.447,-0.45,-0.435,-0.39,-0.34,-0.27,-0.2,-0.13,-0.08,-0.04,-0.01,0\r\r\nPARAM_ARML_ANGLE_Z=0,-0.003,-0.01,-0.022,-0.038,-0.057,-0.08,-0.1,-0.13,-0.15,-0.18,-0.21,-0.24,-0.27,-0.286,-0.301,-0.313,-0.321,-0.326,-0.329,-0.33,-0.319,-0.29,-0.25,-0.2,-0.15,-0.1,-0.06,-0.03,-0.007,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.09,-0.33,-0.7,-1.19,-1.75,-2.4,-3.08,-3.79,-4.53,-5.28,-6,-6.71,-7.39,-8,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-9.66,-8.75,-7.45,-5.96,-4.42,-2.97,-1.74,-0.8,-0.21,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0\r\r\nPARAM_BODY2_ANGLE_Z=0,0.017,0.07,0.14,0.24,0.35,0.48,0.62,0.76,0.91,1.06,1.2,1.34,1.48,1.6,1.71,1.81,1.89,1.95,1.99,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0\r\r\nPARAM_BODY3_ANGLE_Z=0,-0.05,-0.2,-0.42,-0.71,-1.05,-1.44,-1.85,-2.28,-2.72,-3.17,-3.6,-4.03,-4.43,-4.8,-5.14,-5.43,-5.67,-5.85,-5.96,-6,-5.79,-5.25,-4.47,-3.58,-2.65,-1.78,-1.05,-0.48,-0.13,0\r\r\nPARAM_DM_Z=0\r\r\nVISIBLE:ROUGH=1\r\r\nVISIBLE:PARTS_01_FACE_001=1\r\r\nVISIBLE:PARTS_01_EYE_001=1\r\r\nVISIBLE:PARTS_01_EYE_BALL_001=1\r\r\nVISIBLE:PARTS_01_BROW_001=1\r\r\nVISIBLE:PARTS_01_MOUTH_001=1\r\r\nVISIBLE:PARTS_01_NOSE_001=1\r\r\nVISIBLE:PARTS_01_EAR_001=1\r\r\nVISIBLE:PARTS_01_HAIR_FRONT_001=1\r\r\nVISIBLE:PARTS_01_HAIR_SIDE_001=1\r\r\nVISIBLE:PARTS_01_HAIR_BACK_001=1\r\r\nVISIBLE:PARTS_01_NECK=1\r\r\nVISIBLE:PARTS_01_BODY=1\r\r\nVISIBLE:PARTS_01_LEGS=1\r\r\nVISIBLE:PARTS_01_BACKGROUND=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/textures.cache",
    "content": "[[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/cba-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/default-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/newyear-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/school2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/spring-2018-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/summer2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/tomo-high-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/tomo-low-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/valley2017-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/vdays-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/xmas-hat.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-normal-upper.png\",\"texture_02/cba-normal-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/cba-super-upper.png\",\"texture_02/cba-super-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/default-upper.png\",\"texture_02/default-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/newyear-upper.png\",\"texture_02/newyear-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/school2017-upper.png\",\"texture_02/school2017-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/spring-2018-upper.png\",\"texture_02/spring-2018-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-high-upper.png\",\"texture_02/summer2017-high-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/summer2017-low-upper.png\",\"texture_02/summer2017-low-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-high-upper.png\",\"texture_02/tomo-high-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/tomo-low-upper.png\",\"texture_02/tomo-low-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/valley2017-upper.png\",\"texture_02/valley2017-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/vdays-upper.png\",\"texture_02/vdays-lower.png\",\"texture_03/xmas-headwear.png\"],[\"texture_00/closet-default-v2.png\",\"texture_01/xmas-upper.png\",\"texture_02/xmas-lower.png\",\"texture_03/xmas-headwear.png\"]]"
  },
  {
    "path": "public/static/home/live2d_api/model/bilibili-live/33/textures_order.json",
    "content": "[\n    [\"texture_00\"],\n    [\"texture_01\",\"texture_02\"],\n    [\"texture_03\"]\n]"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/index.json",
    "content": "{\n    \"version\": \"Sample 1.0.0\",\n    \"model\": \"model.moc\",\n    \"textures\": [\"texture_00.png\"],\n    \"name\": \"hijiki\",\n    \"pose\": \"pose.json\",\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": -0.1,\n        \"width\": 1.9\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.35, 0.6],\n        \"head_y\":[0.19, -0.2],\n        \"body_x\":[-0.3, -0.25],\n        \"body_y\":[0.3, -0.9]\n    },\n    \"motions\":\n    {\n        \"idle\": [\n        {\n            \"file\": \"motions/00_idle.mtn\"\n        }],\n        \"tap_body\": [\n        {\n            \"file\": \"motions/01.mtn\"\n        },\n        {\n            \"file\": \"motions/02.mtn\"\n        },\n        {\n            \"file\": \"motions/03.mtn\"\n        },\n        {\n            \"file\": \"motions/04.mtn\"\n        },\n        {\n            \"file\": \"motions/05.mtn\"\n        },\n        {\n            \"file\": \"motions/06.mtn\"\n        },\n        {\n            \"file\": \"motions/07.mtn\"\n        },\n        {\n            \"file\": \"motions/08.mtn\"\n        }]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/00_idle.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.003,-0.01,-0.022,-0.04,-0.06,-0.09,-0.12,-0.15,-0.19,-0.23,-0.28,-0.33,-0.38,-0.44,-0.5,-0.56,-0.62,-0.69,-0.76,-0.83,-0.91,-0.98,-1.06,-1.14,-1.22,-1.3,-1.39,-1.47,-1.56,-1.65,-1.73,-1.82,-1.91,-2,-2.09,-2.19,-2.28,-2.37,-2.47,-2.56,-2.65,-2.74,-2.83,-2.91,-3,-3.09,-3.17,-3.26,-3.34,-3.43,-3.51,-3.6,-3.68,-3.76,-3.84,-3.92,-4.01,-4.09,-4.17,-4.25,-4.33,-4.41,-4.49,-4.57,-4.65,-4.72,-4.8,-4.88,-4.96,-5.04,-5.12,-5.2,-5.28,-5.36,-5.44,-5.51,-5.59,-5.67,-5.75,-5.83,-5.91,-5.99,-6.07,-6.15,-6.23,-6.32,-6.4,-6.48,-6.56,-6.65,-6.73,-6.81,-6.9,-6.98,-7.07,-7.15,-7.24,-7.33,-7.42,-7.5,-7.59,-7.68,-7.77,-7.87,-7.96,-8.05,-8.15,-8.24,-8.34,-8.43,-8.53,-8.63,-8.73,-8.83,-8.93,-9.03,-9.14,-9.24,-9.34,-9.45,-9.56,-9.67,-9.78,-9.89,-10,-10.12,-10.26,-10.4,-10.55,-10.71,-10.87,-11.04,-11.22,-11.4,-11.6,-11.79,-11.98,-12.19,-12.39,-12.59,-12.8,-13.01,-13.21,-13.42,-13.63,-13.83,-14.04,-14.24,-14.44,-14.63,-14.82,-15,-15.19,-15.36,-15.53,-15.69,-15.85,-15.99,-16.13,-16.26,-16.38,-16.5,-16.6,-16.69,-16.77,-16.84,-16.9,-16.94,-16.97,-16.993,-17,-16.97,-16.89,-16.76,-16.58,-16.35,-16.08,-15.77,-15.42,-15.04,-14.61,-14.17,-13.69,-13.19,-12.65,-12.11,-11.54,-10.96,-10.36,-9.76,-9.15,-8.53,-7.9,-7.27,-6.66,-6.04,-5.42,-4.82,-4.23,-3.64,-3.07,-2.52,-1.99,-1.49,-1,-0.54,-0.11,0.3,0.67,1.01,1.31,1.58,1.81,2,2.18,2.35,2.51,2.65,2.79,2.92,3.03,3.14,3.24,3.34,3.42,3.5,3.57,3.63,3.69,3.74,3.79,3.83,3.87,3.9,3.93,3.95,3.971,3.987,4,4.01,4.017,4.022,4.025,4.027,4.026,4.025,4.022,4.019,4.016,4.012,4.008,4.005,4.002,4.001,4,3.991,3.96,3.92,3.86,3.79,3.7,3.61,3.5,3.38,3.25,3.11,2.96,2.81,2.66,2.5,2.33,2.17,2,1.83,1.67,1.5,1.34,1.19,1.04,0.89,0.75,0.63,0.5,0.39,0.3,0.21,0.14,0.08,0.04,0.01,0\r\r\nPARAM_ANGLE_Y=0,-0.017,-0.07,-0.14,-0.25,-0.39,-0.55,-0.73,-0.93,-1.15,-1.4,-1.65,-1.92,-2.21,-2.5,-2.8,-3.11,-3.42,-3.74,-4.06,-4.38,-4.7,-5.01,-5.32,-5.62,-5.92,-6.21,-6.48,-6.74,-6.99,-7.23,-7.45,-7.65,-7.84,-8,-8.16,-8.32,-8.48,-8.64,-8.79,-8.94,-9.09,-9.23,-9.37,-9.51,-9.65,-9.78,-9.91,-10.04,-10.17,-10.29,-10.41,-10.53,-10.64,-10.76,-10.87,-10.98,-11.08,-11.18,-11.29,-11.38,-11.48,-11.57,-11.67,-11.76,-11.84,-11.93,-12.01,-12.09,-12.17,-12.25,-12.32,-12.4,-12.47,-12.54,-12.6,-12.67,-12.73,-12.79,-12.85,-12.91,-12.97,-13.02,-13.07,-13.12,-13.17,-13.22,-13.26,-13.31,-13.35,-13.39,-13.43,-13.47,-13.5,-13.54,-13.57,-13.6,-13.63,-13.66,-13.69,-13.71,-13.74,-13.76,-13.78,-13.8,-13.824,-13.843,-13.86,-13.877,-13.892,-13.906,-13.919,-13.93,-13.941,-13.951,-13.96,-13.968,-13.975,-13.981,-13.986,-13.99,-13.994,-13.997,-13.999,-14,-14,-13.994,-13.976,-13.95,-13.9,-13.85,-13.78,-13.7,-13.61,-13.5,-13.38,-13.25,-13.1,-12.94,-12.77,-12.59,-12.39,-12.18,-11.95,-11.71,-11.46,-11.19,-10.91,-10.61,-10.31,-9.99,-9.65,-9.3,-8.93,-8.56,-8.17,-7.77,-7.34,-6.91,-6.46,-6,-5.52,-5.03,-4.53,-4.01,-3.48,-2.94,-2.37,-1.8,-1.21,-0.62,0,0.66,1.31,1.93,2.56,3.17,3.75,4.33,4.9,5.45,5.99,6.52,7.03,7.52,8,8.47,8.92,9.36,9.77,10.18,10.57,10.94,11.3,11.64,11.96,12.27,12.57,12.84,13.1,13.35,13.57,13.78,13.98,14.15,14.31,14.46,14.59,14.7,14.79,14.86,14.92,14.97,14.99,15,14.98,14.9,14.79,14.64,14.44,14.21,13.95,13.66,13.34,12.99,12.62,12.23,11.82,11.4,10.96,10.51,10.04,9.57,9.09,8.61,8.13,7.65,7.17,6.69,6.22,5.76,5.3,4.86,4.43,4.01,3.62,3.24,2.88,2.55,2.24,1.96,1.7,1.48,1.28,1.12,1,0.9,0.8,0.71,0.62,0.55,0.48,0.41,0.35,0.3,0.25,0.2,0.17,0.13,0.1,0.07,0.05,0.031,0.015,0.002,-0.009,-0.017,-0.023,-0.026,-0.028,-0.029,-0.028,-0.026,-0.023,-0.019,-0.016,-0.012,-0.008,-0.005,-0.002,-0.001,0\r\r\nPARAM_ANGLE_Z=0,-0.02,-0.09,-0.21,-0.36,-0.56,-0.78,-1.04,-1.33,-1.64,-1.97,-2.32,-2.69,-3.07,-3.45,-3.85,-4.25,-4.65,-5.05,-5.44,-5.83,-6.2,-6.56,-6.91,-7.24,-7.54,-7.83,-8.09,-8.32,-8.52,-8.68,-8.82,-8.92,-8.98,-9,-9,-8.999,-8.998,-8.997,-8.995,-8.993,-8.991,-8.988,-8.984,-8.981,-8.976,-8.972,-8.967,-8.961,-8.955,-8.949,-8.942,-8.935,-8.927,-8.919,-8.91,-8.901,-8.891,-8.88,-8.87,-8.858,-8.846,-8.834,-8.821,-8.808,-8.794,-8.779,-8.764,-8.748,-8.732,-8.715,-8.698,-8.68,-8.661,-8.642,-8.622,-8.6,-8.58,-8.56,-8.54,-8.51,-8.49,-8.47,-8.44,-8.42,-8.39,-8.36,-8.34,-8.31,-8.28,-8.25,-8.22,-8.19,-8.16,-8.12,-8.09,-8.06,-8.02,-7.99,-7.95,-7.91,-7.88,-7.84,-7.8,-7.76,-7.72,-7.68,-7.63,-7.59,-7.55,-7.5,-7.46,-7.41,-7.36,-7.31,-7.27,-7.22,-7.17,-7.11,-7.06,-7.01,-6.95,-6.9,-6.84,-6.79,-6.73,-6.67,-6.61,-6.55,-6.49,-6.43,-6.36,-6.3,-6.24,-6.17,-6.1,-6.03,-5.97,-5.9,-5.82,-5.75,-5.68,-5.61,-5.53,-5.45,-5.38,-5.3,-5.22,-5.14,-5.06,-4.98,-4.9,-4.81,-4.73,-4.64,-4.55,-4.46,-4.37,-4.28,-4.19,-4.1,-4,-3.91,-3.81,-3.72,-3.62,-3.52,-3.42,-3.31,-3.21,-3.1,-3,-2.88,-2.75,-2.6,-2.44,-2.26,-2.08,-1.88,-1.67,-1.45,-1.22,-0.99,-0.75,-0.51,-0.25,0,0.26,0.51,0.77,1.03,1.29,1.54,1.8,2.05,2.29,2.53,2.76,2.99,3.2,3.41,3.61,3.8,3.98,4.15,4.3,4.44,4.56,4.68,4.77,4.85,4.92,4.96,4.99,5,4.997,4.99,4.977,4.959,4.94,4.91,4.88,4.84,4.8,4.76,4.71,4.66,4.61,4.55,4.49,4.42,4.36,4.29,4.21,4.14,4.06,3.98,3.9,3.82,3.73,3.64,3.55,3.46,3.37,3.28,3.18,3.09,3,2.9,2.8,2.71,2.61,2.51,2.42,2.32,2.22,2.13,2.03,1.93,1.84,1.75,1.65,1.56,1.47,1.39,1.3,1.22,1.13,1.05,0.97,0.89,0.82,0.75,0.68,0.61,0.55,0.48,0.43,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.022,0.01,0.002,0\r\r\nPARAM_EYE_L_OPEN=1,0.987,0.974,0.961,0.947,0.934,0.921,0.908,0.895,0.882,0.868,0.855,0.842,0.829,0.816,0.803,0.789,0.776,0.763,0.75,0.735,0.721,0.706,0.691,0.676,0.662,0.647,0.632,0.618,0.603,0.588,0.574,0.559,0.544,0.529,0.515,0.5,0.498,0.497,0.495,0.493,0.492,0.49,0.488,0.487,0.485,0.483,0.482,0.48,0.478,0.477,0.475,0.473,0.472,0.47,0.468,0.467,0.465,0.463,0.462,0.46,0.466,0.473,0.479,0.485,0.491,0.497,0.504,0.51,0.516,0.523,0.529,0.535,0.541,0.548,0.554,0.56,0.566,0.573,0.579,0.585,0.591,0.597,0.604,0.61,0.607,0.603,0.6,0.597,0.593,0.59,0.587,0.583,0.58,0.577,0.573,0.57,0.567,0.563,0.56,0.557,0.553,0.55,0.547,0.543,0.54,0.537,0.533,0.53,0.527,0.523,0.52,0.517,0.513,0.51,0.507,0.503,0.5,0.497,0.493,0.49,0.487,0.483,0.48,0.477,0.473,0.47,0.467,0.463,0.46,0.38,0.31,0.23,0.15,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.21,0.32,0.43,0.53,0.64,0.65,0.66,0.67,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,1\r\r\nPARAM_EYE_R_OPEN=1,0.999,0.995,0.99,0.983,0.973,0.963,0.95,0.937,0.922,0.907,0.891,0.874,0.856,0.839,0.821,0.803,0.785,0.767,0.75,0.73,0.71,0.687,0.667,0.649,0.63,0.613,0.597,0.581,0.567,0.554,0.541,0.53,0.521,0.512,0.505,0.5,0.495,0.491,0.487,0.483,0.48,0.477,0.475,0.472,0.47,0.468,0.467,0.465,0.464,0.463,0.462,0.462,0.461,0.461,0.46,0.46,0.46,0.46,0.46,0.46,0.461,0.463,0.467,0.472,0.478,0.485,0.493,0.501,0.511,0.52,0.53,0.54,0.55,0.56,0.569,0.579,0.587,0.595,0.602,0.608,0.613,0.617,0.619,0.62,0.62,0.62,0.619,0.619,0.618,0.618,0.617,0.616,0.615,0.614,0.612,0.611,0.609,0.607,0.605,0.603,0.601,0.598,0.596,0.593,0.59,0.587,0.583,0.58,0.576,0.572,0.568,0.564,0.56,0.555,0.55,0.545,0.54,0.534,0.529,0.523,0.517,0.51,0.504,0.497,0.49,0.483,0.476,0.468,0.46,0.42,0.33,0.22,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.3,0.45,0.57,0.63,0.65,0.68,0.7,0.72,0.737,0.756,0.774,0.791,0.807,0.823,0.838,0.852,0.865,0.878,0.89,0.901,0.911,0.921,0.93,0.939,0.947,0.954,0.961,0.967,0.973,0.978,0.982,0.986,0.989,0.992,0.995,0.997,0.998,0.999,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1.001,1.001,1.001,1.001,1.001,1.001,1.002,1.002,1.002,1.002,1.002,1.003,1.003,1.003,1.003,1.004,1.004,1.004,1.004,1.005,1.005,1.005,1.006,1.006,1.006,1.007,1.007,1.007,1.008,1.008,1.009,1.009,1.009,1.01,1.01,1.011,1.011,1.011,1.012,1.012,1.013,1.013,1.014,1.014,1.015,1.015,1.016,1.016,1.017,1.017,1.017,1.018,1.018,1.019,1.019,1.02,1.021,1.021,1.022,1.022,1.023,1.023,1.024,1.024,1.025,1.025,1.026,1.026,1.027,1.027,1.028,1.028,1.029,1.029,1.03,1.031,1.031,1.032,1.032,1.033,1.033,1.034,1.034,1.035,1.035,1.036,1.036,1.037,1.037,1.038,1.038,1.039,1.039,1.04,1.041,1.041,1.042,1.042,1.043,1.043,1.043,1.044,1.044,1.045,1.045,1.046,1.046,1.047,1.047,1.048,1.048,1.049,1.049,1.049,1.05,1.05,1.051,1.051,1.051,1.052,1.052,1.053,1.053,1.053,1.054,1.054,1.054,1.055,1.055,1.055,1.056,1.056,1.056,1.056,1.057,1.057,1.057,1.057,1.058,1.058,1.058,1.058,1.058,1.059,1.059,1.059,1.059,1.059,1.059,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,0.98,0.79,0.56,0.34,0.15,0.04,0,0.002,0.017,0.05,0.11,0.2,0.31,0.45,0.71,0.95,1.18,1.38,1.54,1.67,1.75,1.78,1.56,1.22,0.89,0.66,0.57,0.586,0.63,0.68,0.74,0.81,0.87,0.93,0.98,1.02,1.05,1.06,1.06,1.06,1.06,1.06,1.059,1.059,1.059,1.058,1.058,1.058,1.057,1.057,1.056,1.056,1.055,1.054,1.054,1.053,1.052,1.051,1.051,1.05,1.049,1.048,1.047,1.046,1.045,1.044,1.044,1.043,1.042,1.041,1.04,1.039,1.038,1.036,1.035,1.034,1.033,1.032,1.031,1.03,1.029,1.028,1.027,1.026,1.025,1.024,1.023,1.022,1.021,1.02,1.019,1.018,1.017,1.016,1.015,1.014,1.013,1.012,1.011,1.011,1.01,1.009,1.008,1.007,1.007,1.006,1.005,1.005,1.004,1.004,1.003,1.003,1.002,1.002,1.001,1.001,1.001,1.001,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.09,0.16,0.23,0.29,0.33,0.34,0.339,0.335,0.331,0.326,0.323,0.321,0.32,0.34,0.38,0.44,0.5,0.55,0.59,0.62,0.63,0.622,0.6,0.56,0.52,0.47,0.41,0.35,0.29,0.23,0.18,0.13,0.08,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.14,0.22,0.32,0.42,0.51,0.63,0.73,0.79,0.83,0.85,0.867,0.87,0.87,0.866,0.858,0.843,0.82,0.79,0.75,0.7,0.63,0.56,0.5,0.43,0.37,0.31,0.25,0.2,0.16,0.12,0.08,0.05,0.03,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,0,0.001,0.003,0.005,0.008,0.011,0.015,0.02,0.025,0.03,0.036,0.043,0.05,0.057,0.065,0.073,0.082,0.091,0.101,0.111,0.121,0.132,0.143,0.154,0.166,0.178,0.19,0.203,0.215,0.228,0.242,0.255,0.269,0.283,0.297,0.311,0.325,0.34,0.355,0.37,0.384,0.399,0.414,0.43,0.445,0.46,0.475,0.49,0.506,0.521,0.536,0.552,0.566,0.582,0.597,0.612,0.627,0.641,0.656,0.67,0.685,0.699,0.713,0.727,0.74,0.754,0.767,0.78,0.792,0.805,0.817,0.829,0.841,0.852,0.863,0.874,0.884,0.894,0.904,0.913,0.922,0.93,0.938,0.946,0.953,0.959,0.966,0.971,0.977,0.981,0.986,0.989,0.993,0.995,0.997,0.999,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,0.999,0.999,0.998,0.997,0.996,0.994,0.993,0.991,0.99,0.988,0.986,0.983,0.981,0.978,0.976,0.973,0.97,0.967,0.964,0.96,0.957,0.953,0.949,0.945,0.941,0.937,0.933,0.928,0.924,0.919,0.914,0.909,0.904,0.899,0.894,0.889,0.883,0.878,0.872,0.866,0.86,0.854,0.848,0.842,0.836,0.83,0.823,0.817,0.81,0.804,0.797,0.79,0.783,0.776,0.769,0.762,0.755,0.748,0.741,0.733,0.726,0.719,0.711,0.704,0.696,0.688,0.681,0.673,0.665,0.657,0.65,0.642,0.634,0.626,0.618,0.61,0.602,0.594,0.586,0.578,0.569,0.561,0.553,0.545,0.537,0.529,0.521,0.512,0.504,0.496,0.488,0.479,0.471,0.463,0.455,0.447,0.439,0.431,0.422,0.414,0.406,0.398,0.39,0.382,0.374,0.366,0.358,0.35,0.343,0.335,0.327,0.319,0.312,0.304,0.296,0.289,0.281,0.274,0.267,0.259,0.252,0.245,0.238,0.231,0.224,0.217,0.21,0.203,0.196,0.19,0.183,0.177,0.17,0.164,0.158,0.152,0.146,0.14,0.134,0.128,0.122,0.117,0.111,0.106,0.101,0.096,0.091,0.086,0.081,0.076,0.072,0.067,0.063,0.059,0.055,0.051,0.047,0.043,0.04,0.036,0.033,0.03,0.027,0.024,0.022,0.019,0.017,0.014,0.012,0.01,0.009,0.007,0.006,0.004,0.003,0.002,0.001,0.001,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.007,0.025,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.53,0.59,0.66,0.72,0.78,0.83,0.88,0.92,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.012,0.025,0.042,0.062,0.08,0.11,0.13,0.16,0.18,0.2,0.222,0.24,0.251,0.252,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0.007,0.025,0.05,0.08,0.12,0.15,0.18,0.2,0.23,0.24,0.251,0.252,0.251,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.03,-0.12,-0.27,-0.45,-0.68,-0.93,-1.21,-1.51,-1.82,-2.13,-2.46,-2.78,-3.1,-3.4,-3.69,-3.96,-4.21,-4.44,-4.63,-4.79,-4.9,-4.97,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.92,-29.69,-29.28,-28.71,-27.96,-27.05,-25.99,-24.79,-23.47,-22,-19.87,-17.59,-15.18,-12.79,-10.43,-8.19,-6.11,-4.21,-2.51,-1,0.71,2.11,3.26,4.14,4.82,5.31,5.65,5.86,5.97,6,5.62,4.63,3.2,1.56,-0.14,-1.73,-3.08,-4.12,-4.77,-5,-4.97,-4.88,-4.75,-4.6,-4.44,-4.3,-4.17,-4.08,-4.02,-4,-4.07,-4.25,-4.51,-4.81,-5.12,-5.41,-5.65,-5.84,-5.96,-6,-6.001,-5.999,-5.988,-5.96,-5.91,-5.84,-5.74,-5.62,-5.45,-5.25,-5,-4.43,-3.45,-2.18,-0.76,0.71,2.13,3.41,4.51,5.38,6,6.58,7.02,7.36,7.61,7.78,7.89,7.95,7.98,7.997,8,7.91,7.64,7.2,6.62,5.9,5.07,4.15,3.16,2.11,1,-0.43,-1.73,-2.96,-4.15,-5.33,-6.54,-7.79,-9.11,-10.49,-12,-14.24,-16.72,-19.32,-21.83,-24.17,-26.19,-27.82,-29.02,-29.75,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.81,-29.29,-28.5,-27.53,-26.43,-25.27,-24.12,-23.01,-21.97,-21,-19.87,-18.9,-18.04,-17.26,-16.54,-15.85,-15.17,-14.48,-13.76,-13,-12.01,-11.06,-10.16,-9.29,-8.48,-7.69,-6.94,-6.23,-5.57,-4.94,-4.35,-3.79,-3.27,-2.8,-2.36,-1.95,-1.59,-1.26,-0.96,-0.71,-0.5,-0.32,-0.18,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.78,2.24,1.59,0.95,0.44,0.11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-28.69,-25.26,-20.31,-14.65,-8.78,-3.3,1.38,4.95,7.21,8,6.69,3.26,-1.69,-7.35,-13.22,-18.7,-23.38,-26.95,-29.21,-30,-28.28,-23.77,-17.25,-9.81,-2.08,5.13,11.29,15.99,18.96,20,18.28,13.77,7.25,-0.19,-7.92,-15.13,-21.29,-25.99,-28.96,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.14,-26.88,-23.63,-19.9,-16.04,-12.43,-9.35,-7,-5.52,-5,-5.86,-8.12,-11.37,-15.1,-18.96,-22.57,-25.65,-28,-29.48,-30,-29.84,-29.44,-28.89,-28.25,-27.59,-26.93,-26.31,-25.79,-25.37,-25.1,-25,-25.17,-25.62,-26.27,-27.02,-27.79,-28.51,-29.13,-29.6,-29.9,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.41,-27.88,-25.67,-23.13,-20.51,-18.05,-15.96,-14.36,-13.36,-13,-13.59,-15.12,-17.33,-19.87,-22.49,-24.95,-27.04,-28.64,-29.64,-30,-28.97,-26.26,-22.35,-17.88,-13.25,-8.92,-5.23,-2.4,-0.63,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.15,-26.91,-23.66,-19.93,-16.02,-12.32,-9.1,-6.56,-4.83,-4,-3.58,-3.2,-2.85,-2.52,-2.23,-1.95,-1.7,-1.48,-1.28,-1.09,-0.93,-0.78,-0.65,-0.53,-0.43,-0.34,-0.27,-0.2,-0.15,-0.1,-0.07,-0.04,-0.023,-0.01,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.29,1.01,2,3.15,4.34,5.52,6.64,7.57,8.33,8.82,9,8.35,6.63,4.16,1.33,-1.61,-4.35,-6.69,-8.48,-9.6,-10,-9.26,-7.48,-5.29,-3.16,-1.45,-0.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.012,-0.05,-0.12,-0.21,-0.34,-0.49,-0.68,-0.9,-1.15,-1.44,-1.76,-2.13,-2.53,-2.98,-3.46,-3.98,-4.55,-5.17,-5.83,-6.55,-7.32,-8.12,-9,-10.41,-12.38,-14.77,-17.3,-19.84,-22.2,-24.27,-25.96,-27.21,-28,-28.62,-29.1,-29.45,-29.68,-29.84,-29.93,-29.98,-29.997,-30,-30,-29.28,-27.38,-24.6,-21.35,-17.91,-14.58,-11.58,-9.08,-7.2,-6,-5.03,-4.29,-3.69,-3.2,-2.75,-2.32,-1.85,-1.32,-0.72,0,1.22,2.72,4.41,6.11,7.75,9.19,10.38,11.27,11.81,12,12,11.987,11.94,11.86,11.72,11.51,11.24,10.9,10.49,10,8.96,7.37,5.37,3.19,0.95,-1.2,-3.13,-4.77,-6.07,-7,-7.86,-8.53,-9.04,-9.41,-9.66,-9.83,-9.92,-9.97,-10,-10,-9.997,-9.986,-9.96,-9.92,-9.87,-9.79,-9.69,-9.56,-9.41,-9.22,-9,-8.69,-8.34,-7.94,-7.5,-7.01,-6.48,-5.91,-5.31,-4.68,-4,-2.59,-0.41,2.31,5.22,8.11,10.74,12.94,14.6,15.64,16,15.18,13.02,9.87,6.23,2.39,-1.27,-4.5,-7.11,-8.97,-10,-10.66,-11.16,-11.54,-11.85,-12.12,-12.4,-12.71,-13.06,-13.49,-14,-15.13,-16.88,-19.06,-21.38,-23.69,-25.8,-27.56,-28.88,-29.71,-30,-29.95,-29.79,-29.52,-29.15,-28.67,-28.09,-27.43,-26.69,-25.89,-25,-23.84,-22.79,-21.86,-21.06,-20.4,-19.88,-19.48,-19.21,-19.05,-19,-19.21,-19.75,-20.53,-21.42,-22.35,-23.22,-23.95,-24.52,-24.87,-25,-24.87,-24.52,-23.96,-23.21,-22.32,-21.28,-20.14,-18.9,-17.6,-16.22,-14.83,-13.4,-11.95,-10.55,-9.17,-7.81,-6.54,-5.32,-4.18,-3.17,-2.26,-1.49,-0.86,-0.39,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.16,-0.56,-1.11,-1.75,-2.41,-3.07,-3.69,-4.21,-4.63,-4.9,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.999,0.997,0.994,0.988,0.981,0.971,0.959,0.945,0.927,0.91,0.88,0.86,0.82,0.79,0.75,0.54,0.25,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.17,0.46,0.66,0.75,0.79,0.82,0.85,0.88,0.9,0.93,0.942,0.957,0.968,0.978,0.986,0.991,0.995,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,0.999,0.997,0.994,0.988,0.981,0.971,0.959,0.945,0.927,0.91,0.88,0.86,0.82,0.79,0.75,0.54,0.25,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.17,0.46,0.66,0.75,0.79,0.82,0.85,0.88,0.9,0.93,0.942,0.957,0.968,0.978,0.986,0.991,0.995,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.998,-0.998,-0.997,-0.996,-0.995,-0.994,-0.994,-0.993,-0.991,-0.99,-0.989,-0.988,-0.986,-0.985,-0.984,-0.982,-0.98,-0.979,-0.977,-0.975,-0.973,-0.971,-0.969,-0.967,-0.965,-0.963,-0.961,-0.958,-0.956,-0.953,-0.951,-0.948,-0.946,-0.943,-0.94,-0.938,-0.935,-0.932,-0.929,-0.926,-0.923,-0.92,-0.917,-0.913,-0.91,-0.907,-0.904,-0.9,-0.897,-0.893,-0.89,-0.886,-0.882,-0.879,-0.875,-0.871,-0.868,-0.864,-0.86,-0.856,-0.852,-0.848,-0.844,-0.84,-0.836,-0.831,-0.827,-0.823,-0.819,-0.814,-0.81,-0.806,-0.801,-0.797,-0.792,-0.788,-0.783,-0.779,-0.774,-0.769,-0.765,-0.76,-0.755,-0.751,-0.746,-0.741,-0.736,-0.731,-0.726,-0.721,-0.716,-0.712,-0.707,-0.701,-0.696,-0.691,-0.686,-0.681,-0.676,-0.671,-0.666,-0.661,-0.656,-0.65,-0.645,-0.64,-0.635,-0.63,-0.624,-0.619,-0.614,-0.608,-0.603,-0.598,-0.592,-0.587,-0.582,-0.576,-0.571,-0.566,-0.56,-0.555,-0.549,-0.544,-0.539,-0.533,-0.528,-0.522,-0.517,-0.512,-0.506,-0.501,-0.495,-0.49,-0.484,-0.479,-0.474,-0.468,-0.463,-0.457,-0.452,-0.447,-0.441,-0.436,-0.43,-0.425,-0.42,-0.414,-0.409,-0.404,-0.398,-0.393,-0.388,-0.383,-0.377,-0.372,-0.367,-0.361,-0.356,-0.351,-0.346,-0.341,-0.336,-0.33,-0.325,-0.32,-0.315,-0.31,-0.305,-0.3,-0.295,-0.29,-0.285,-0.28,-0.275,-0.27,-0.266,-0.261,-0.256,-0.251,-0.246,-0.242,-0.237,-0.232,-0.228,-0.223,-0.218,-0.214,-0.209,-0.205,-0.2,-0.196,-0.192,-0.187,-0.183,-0.179,-0.175,-0.17,-0.166,-0.162,-0.158,-0.154,-0.15,-0.146,-0.142,-0.138,-0.134,-0.13,-0.127,-0.123,-0.119,-0.116,-0.112,-0.109,-0.105,-0.102,-0.098,-0.095,-0.092,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.067,-0.064,-0.061,-0.059,-0.056,-0.053,-0.051,-0.048,-0.046,-0.043,-0.041,-0.039,-0.037,-0.034,-0.032,-0.03,-0.028,-0.026,-0.024,-0.023,-0.021,-0.019,-0.018,-0.016,-0.015,-0.013,-0.012,-0.011,-0.009,-0.008,-0.007,-0.006,-0.005,-0.005,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,0,0,0,0\r\r\nPARAM_EYE_FORM=0,-0.004,-0.017,-0.037,-0.06,-0.09,-0.13,-0.17,-0.2,-0.24,-0.29,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.487,-0.497,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.499,-0.499,-0.499,-0.498,-0.498,-0.498,-0.497,-0.497,-0.496,-0.496,-0.495,-0.495,-0.494,-0.493,-0.493,-0.492,-0.491,-0.49,-0.489,-0.488,-0.488,-0.487,-0.486,-0.485,-0.484,-0.482,-0.481,-0.48,-0.479,-0.478,-0.477,-0.475,-0.474,-0.473,-0.472,-0.47,-0.469,-0.467,-0.466,-0.464,-0.463,-0.461,-0.46,-0.458,-0.457,-0.455,-0.453,-0.452,-0.45,-0.448,-0.447,-0.445,-0.443,-0.441,-0.439,-0.438,-0.436,-0.434,-0.432,-0.43,-0.428,-0.426,-0.424,-0.422,-0.42,-0.418,-0.416,-0.414,-0.411,-0.409,-0.407,-0.405,-0.403,-0.401,-0.398,-0.396,-0.394,-0.392,-0.389,-0.387,-0.385,-0.382,-0.38,-0.378,-0.375,-0.373,-0.37,-0.368,-0.366,-0.363,-0.361,-0.358,-0.356,-0.353,-0.351,-0.348,-0.346,-0.343,-0.341,-0.338,-0.336,-0.333,-0.33,-0.328,-0.325,-0.323,-0.32,-0.317,-0.315,-0.312,-0.309,-0.307,-0.304,-0.302,-0.299,-0.296,-0.294,-0.291,-0.288,-0.285,-0.283,-0.28,-0.277,-0.275,-0.272,-0.269,-0.267,-0.264,-0.261,-0.258,-0.256,-0.253,-0.25,-0.248,-0.245,-0.242,-0.24,-0.237,-0.234,-0.231,-0.229,-0.226,-0.223,-0.221,-0.218,-0.215,-0.213,-0.21,-0.207,-0.204,-0.202,-0.199,-0.197,-0.194,-0.191,-0.189,-0.186,-0.183,-0.181,-0.178,-0.176,-0.173,-0.17,-0.168,-0.165,-0.163,-0.16,-0.158,-0.155,-0.153,-0.15,-0.147,-0.145,-0.143,-0.14,-0.138,-0.135,-0.133,-0.13,-0.128,-0.126,-0.123,-0.121,-0.118,-0.116,-0.114,-0.112,-0.109,-0.107,-0.105,-0.102,-0.1,-0.098,-0.096,-0.094,-0.092,-0.089,-0.087,-0.085,-0.083,-0.081,-0.079,-0.077,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065,-0.063,-0.061,-0.06,-0.058,-0.056,-0.054,-0.053,-0.051,-0.049,-0.047,-0.046,-0.044,-0.043,-0.041,-0.039,-0.038,-0.036,-0.035,-0.033,-0.032,-0.031,-0.029,-0.028,-0.027,-0.025,-0.024,-0.023,-0.022,-0.021,-0.019,-0.018,-0.017,-0.016,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.01,-0.009,-0.008,-0.007,-0.007,-0.006,-0.005,-0.005,-0.004,-0.004,-0.003,-0.003,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.06,0.23,0.44,0.7,0.96,1.23,1.47,1.68,1.85,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.016,0.06,0.12,0.2,0.29,0.39,0.48,0.57,0.65,0.72,0.8,0.86,0.91,0.94,0.97,0.984,0.993,0.998,1,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0.003,0.011,0.025,0.045,0.07,0.1,0.15,0.19,0.25,0.32,0.39,0.47,0.57,0.67,0.78,0.9,1.03,1.18,1.35,1.53,1.7,1.86,1.96,2,1.52,0.72,0.18,0,0.001,0.005,0.011,0.02,0.03,0.043,0.058,0.074,0.092,0.112,0.13,0.16,0.18,0.21,0.23,0.26,0.29,0.32,0.35,0.38,0.41,0.44,0.47,0.5,0.53,0.56,0.59,0.62,0.65,0.68,0.71,0.74,0.77,0.79,0.82,0.84,0.87,0.89,0.908,0.926,0.942,0.957,0.97,0.98,0.989,0.995,0.999,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.001,0.003,0.006,0.011,0.018,0.027,0.037,0.049,0.063,0.079,0.097,0.117,0.14,0.16,0.19,0.22,0.25,0.29,0.32,0.36,0.41,0.45,0.5,0.56,0.63,0.71,0.77,0.84,0.9,0.94,0.97,0.993,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.017,0.06,0.13,0.2,0.28,0.35,0.41,0.46,0.49,0.5,0.483,0.44,0.37,0.3,0.22,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.013,0.029,0.05,0.07,0.1,0.13,0.16,0.2,0.23,0.26,0.29,0.32,0.34,0.36,0.377,0.387,0.39,0.377,0.34,0.29,0.23,0.17,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.555,0.59,0.64,0.7,0.76,0.82,0.88,0.93,0.97,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.026,0.06,0.09,0.14,0.19,0.25,0.31,0.38,0.44,0.5,0.56,0.61,0.66,0.69,0.72,0.743,0.75,0.72,0.66,0.56,0.45,0.33,0.22,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.87,0.81,0.73,0.65,0.56,0.47,0.37,0.28,0.18,0.09,0,-0.08,-0.16,-0.22,-0.28,-0.32,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.338,-0.31,-0.26,-0.19,-0.11,-0.03,0.07,0.16,0.26,0.36,0.46,0.56,0.65,0.73,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.991,0.98,0.966,0.948,0.93,0.9,0.87,0.84,0.81,0.78,0.74,0.7,0.66,0.62,0.58,0.54,0.5,0.46,0.42,0.38,0.34,0.3,0.26,0.22,0.19,0.16,0.13,0.1,0.07,0.05,0.034,0.02,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.019,-0.033,-0.05,-0.07,-0.09,-0.11,-0.14,-0.16,-0.19,-0.21,-0.24,-0.26,-0.28,-0.3,-0.317,-0.331,-0.341,-0.348,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.347,-0.338,-0.325,-0.308,-0.289,-0.27,-0.24,-0.22,-0.19,-0.17,-0.14,-0.12,-0.09,-0.07,-0.05,-0.033,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.001,-0.004,-0.01,-0.017,-0.027,-0.038,-0.051,-0.065,-0.081,-0.098,-0.117,-0.137,-0.16,-0.18,-0.2,-0.23,-0.25,-0.28,-0.3,-0.33,-0.36,-0.38,-0.41,-0.44,-0.47,-0.5,-0.52,-0.55,-0.58,-0.61,-0.64,-0.66,-0.69,-0.71,-0.74,-0.76,-0.79,-0.81,-0.83,-0.85,-0.874,-0.892,-0.91,-0.926,-0.941,-0.954,-0.966,-0.976,-0.984,-0.991,-0.996,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.989,-0.95,-0.88,-0.76,-0.59,-0.37,-0.11,0.21,0.58,1,1.6,2.21,2.8,3.35,3.84,4.25,4.58,4.81,4.95,5,4.97,4.87,4.72,4.53,4.3,4.04,3.77,3.48,3.19,2.89,2.6,2.32,2.05,1.8,1.57,1.38,1.22,1.1,1.03,1,1.03,1.13,1.28,1.47,1.72,1.99,2.29,2.62,2.97,3.32,3.68,4.03,4.38,4.71,5.01,5.28,5.53,5.72,5.87,5.97,6,5.95,5.82,5.63,5.39,5.14,4.87,4.62,4.38,4.18,4,3.8,3.62,3.45,3.29,3.15,3.01,2.88,2.75,2.62,2.5,2.37,2.25,2.12,1.98,1.84,1.69,1.53,1.37,1.19,1,0.65,0.1,-0.58,-1.31,-2.03,-2.69,-3.24,-3.65,-3.91,-4,-3.999,-3.997,-3.994,-3.989,-3.983,-3.976,-3.968,-3.958,-3.947,-3.935,-3.921,-3.907,-3.891,-3.875,-3.857,-3.838,-3.818,-3.8,-3.78,-3.75,-3.73,-3.7,-3.68,-3.65,-3.62,-3.6,-3.57,-3.54,-3.51,-3.47,-3.44,-3.41,-3.38,-3.34,-3.31,-3.27,-3.23,-3.2,-3.16,-3.12,-3.08,-3.04,-3,-2.96,-2.92,-2.88,-2.84,-2.8,-2.76,-2.71,-2.67,-2.63,-2.58,-2.54,-2.5,-2.45,-2.41,-2.36,-2.32,-2.27,-2.23,-2.18,-2.14,-2.09,-2.05,-2,-1.95,-1.91,-1.86,-1.82,-1.77,-1.73,-1.68,-1.64,-1.59,-1.55,-1.5,-1.46,-1.42,-1.37,-1.33,-1.29,-1.24,-1.2,-1.16,-1.12,-1.08,-1.04,-1,-0.96,-0.92,-0.88,-0.84,-0.8,-0.77,-0.73,-0.69,-0.66,-0.63,-0.59,-0.56,-0.53,-0.49,-0.46,-0.43,-0.4,-0.38,-0.35,-0.32,-0.3,-0.27,-0.25,-0.22,-0.2,-0.18,-0.162,-0.143,-0.125,-0.109,-0.093,-0.079,-0.065,-0.053,-0.042,-0.032,-0.024,-0.017,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.11,-0.44,-0.96,-1.62,-2.45,-3.39,-4.44,-5.58,-6.8,-8.06,-9.38,-10.73,-12.09,-13.47,-14.82,-16.16,-17.46,-18.73,-19.94,-21.09,-22.16,-23.12,-24,-24.82,-25.39,-25.77,-25.99,-26.09,-26.12,-26.09,-26.05,-26.02,-26,-25.95,-25.8,-25.58,-25.29,-24.95,-24.56,-24.15,-23.72,-23.28,-22.83,-22.4,-21.97,-21.57,-21.2,-20.86,-20.57,-20.33,-20.15,-20.04,-20,-20.21,-20.75,-21.53,-22.42,-23.35,-24.22,-24.95,-25.52,-25.87,-26,-25.83,-25.38,-24.73,-23.98,-23.21,-22.49,-21.87,-21.4,-21.1,-21,-21.31,-22.12,-23.29,-24.63,-26.03,-27.32,-28.43,-29.28,-29.81,-30,-29.83,-29.38,-28.73,-27.98,-27.21,-26.49,-25.87,-25.4,-25.1,-25,-25.1,-25.37,-25.76,-26.21,-26.68,-27.11,-27.48,-27.76,-27.94,-28,-27.84,-27.44,-26.89,-26.25,-25.59,-24.93,-24.31,-23.79,-23.37,-23.1,-23,-23.21,-23.75,-24.53,-25.42,-26.35,-27.22,-27.95,-28.52,-28.87,-29,-28.79,-28.25,-27.47,-26.58,-25.65,-24.78,-24.05,-23.48,-23.13,-23,-23.21,-23.75,-24.53,-25.42,-26.35,-27.22,-27.95,-28.52,-28.87,-29,-28.66,-27.75,-26.45,-24.96,-23.42,-21.97,-20.74,-19.8,-19.21,-19,-19.18,-19.68,-20.41,-21.28,-22.22,-23.16,-24.04,-24.83,-25.48,-26,-26.54,-27.03,-27.45,-27.84,-28.18,-28.48,-28.75,-28.97,-29.18,-29.35,-29.5,-29.62,-29.72,-29.81,-29.87,-29.92,-29.96,-29.98,-29.996,-30,-29.93,-29.73,-29.41,-28.97,-28.43,-27.78,-27.04,-26.22,-25.31,-24.34,-23.3,-22.22,-21.08,-19.93,-18.72,-17.49,-16.25,-15,-13.75,-12.51,-11.28,-10.07,-8.92,-7.78,-6.7,-5.66,-4.69,-3.78,-2.96,-2.22,-1.57,-1.03,-0.59,-0.27,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.005,0.02,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.34,0.39,0.44,0.49,0.54,0.58,0.63,0.67,0.7,0.73,0.76,0.775,0.786,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.788,0.783,0.774,0.763,0.749,0.732,0.712,0.69,0.67,0.64,0.61,0.59,0.56,0.52,0.49,0.46,0.43,0.4,0.36,0.33,0.3,0.27,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.058,0.041,0.027,0.016,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.024,0.05,0.08,0.12,0.15,0.19,0.22,0.24,0.251,0.252,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0.007,0.025,0.05,0.08,0.12,0.15,0.18,0.2,0.23,0.24,0.251,0.252,0.251,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0,-0.013,-0.05,-0.11,-0.18,-0.27,-0.37,-0.48,-0.6,-0.73,-0.85,-0.98,-1.11,-1.24,-1.36,-1.48,-1.59,-1.69,-1.77,-1.85,-1.91,-1.96,-1.99,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.998,-1.991,-1.982,-1.972,-1.961,-1.951,-1.942,-1.936,-1.931,-1.93,-1.932,-1.939,-1.948,-1.958,-1.969,-1.979,-1.988,-1.994,-1.999,-2,-1.99,-1.97,-1.93,-1.9,-1.86,-1.82,-1.78,-1.75,-1.72,-1.706,-1.7,-1.71,-1.74,-1.78,-1.82,-1.87,-1.91,-1.95,-1.98,-1.994,-2,-1.998,-1.993,-1.985,-1.976,-1.966,-1.958,-1.95,-1.945,-1.941,-1.94,-1.942,-1.947,-1.955,-1.964,-1.974,-1.982,-1.99,-1.995,-1.999,-2,-1.994,-1.978,-1.95,-1.93,-1.9,-1.87,-1.85,-1.834,-1.824,-1.82,-1.826,-1.842,-1.87,-1.89,-1.92,-1.95,-1.97,-1.986,-1.996,-2,-1.998,-1.993,-1.985,-1.976,-1.966,-1.958,-1.95,-1.945,-1.941,-1.94,-1.942,-1.947,-1.955,-1.964,-1.974,-1.982,-1.99,-1.995,-1.999,-2,-2,-2,-2,-2,-2,-1.994,-1.97,-1.94,-1.9,-1.84,-1.76,-1.67,-1.58,-1.49,-1.4,-1.3,-1.21,-1.11,-1.02,-0.92,-0.83,-0.74,-0.65,-0.57,-0.49,-0.41,-0.34,-0.27,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L_MOVE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.995,-0.98,-0.96,-0.93,-0.89,-0.84,-0.8,-0.74,-0.69,-0.63,-0.57,-0.51,-0.45,-0.39,-0.33,-0.27,-0.22,-0.18,-0.13,-0.09,-0.06,-0.04,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.15,0.22,0.31,0.41,0.53,0.65,0.78,0.91,1.06,1.2,1.35,1.5,1.65,1.8,1.94,2.09,2.22,2.35,2.47,2.59,2.69,2.78,2.85,2.92,2.96,2.99,3,2.97,2.9,2.79,2.64,2.47,2.28,2.08,1.86,1.64,1.42,1.2,0.99,0.78,0.6,0.43,0.28,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.98,-3.11,-5.76,-8.51,-11.02,-13.1,-14.48,-15,-14.85,-14.43,-13.74,-12.81,-11.65,-10.31,-8.79,-7.11,-5.29,-3.35,-1.28,0.83,3.04,5.26,7.5,9.74,11.96,14.17,16.28,18.35,20.29,22.11,23.79,25.31,26.65,27.81,28.74,29.43,29.85,30,29.74,29,27.89,26.44,24.74,22.81,20.75,18.62,16.4,14.17,11.99,9.86,7.84,6,4.3,2.85,1.66,0.77,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.52,-1.66,-3.14,-4.76,-6.34,-7.82,-9.06,-10,-10.82,-11.61,-12.37,-13.07,-13.76,-14.39,-15,-15.57,-16.1,-16.61,-17.08,-17.52,-17.94,-18.32,-18.67,-18.99,-19.29,-19.56,-19.81,-20.03,-20.22,-20.39,-20.54,-20.67,-20.77,-20.86,-20.92,-20.97,-20.99,-21,-20.82,-20.3,-19.52,-18.51,-17.32,-15.97,-14.53,-13.03,-11.48,-9.92,-8.39,-6.91,-5.49,-4.2,-3.01,-1.99,-1.16,-0.54,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.97,0.91,0.83,0.76,0.68,0.62,0.58,0.57,0.571,0.575,0.582,0.591,0.602,0.615,0.629,0.645,0.663,0.681,0.701,0.721,0.74,0.76,0.79,0.81,0.83,0.85,0.869,0.889,0.907,0.925,0.941,0.955,0.968,0.979,0.988,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,0.97,0.91,0.83,0.76,0.68,0.62,0.58,0.57,0.571,0.575,0.582,0.591,0.602,0.615,0.629,0.645,0.663,0.681,0.701,0.721,0.74,0.76,0.79,0.81,0.83,0.85,0.869,0.889,0.907,0.925,0.941,0.955,0.968,0.979,0.988,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.744,0.725,0.7,0.66,0.62,0.57,0.52,0.47,0.41,0.35,0.3,0.25,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,-0.04,-0.13,-0.24,-0.35,-0.46,-0.56,-0.63,-0.67,-0.7,-0.72,-0.74,-0.77,-0.79,-0.807,-0.826,-0.843,-0.859,-0.874,-0.888,-0.901,-0.913,-0.924,-0.934,-0.943,-0.952,-0.959,-0.966,-0.972,-0.978,-0.982,-0.986,-0.99,-0.993,-0.995,-0.997,-0.998,-0.999,-1,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,-0.03,-0.09,-0.18,-0.27,-0.35,-0.43,-0.5,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.73,-0.75,-0.78,-0.8,-0.82,-0.84,-0.859,-0.875,-0.891,-0.905,-0.918,-0.93,-0.941,-0.951,-0.959,-0.967,-0.974,-0.98,-0.985,-0.989,-0.993,-0.995,-0.997,-0.999,-1,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-1.18,-3.73,-6.91,-10.21,-13.22,-15.72,-17.38,-18,-18,-18,-18,-17.998,-17.995,-17.99,-17.982,-17.972,-17.957,-17.94,-17.92,-17.89,-17.86,-17.82,-17.77,-17.72,-17.66,-17.59,-17.52,-17.43,-17.34,-17.24,-17.12,-17,-16.86,-16.72,-16.56,-16.38,-16.2,-16,-15.66,-15.11,-14.41,-13.56,-12.6,-11.56,-10.46,-9.35,-8.2,-7.06,-5.96,-4.89,-3.88,-2.96,-2.11,-1.4,-0.81,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY=1,0.95,0.82,0.67,0.52,0.4,0.33,0.3,0.301,0.302,0.305,0.308,0.313,0.318,0.324,0.331,0.339,0.347,0.357,0.366,0.377,0.388,0.4,0.412,0.425,0.439,0.453,0.467,0.481,0.496,0.512,0.527,0.543,0.559,0.576,0.592,0.609,0.625,0.642,0.658,0.675,0.691,0.708,0.724,0.741,0.757,0.773,0.788,0.804,0.819,0.833,0.847,0.861,0.875,0.888,0.9,0.912,0.923,0.934,0.943,0.953,0.961,0.969,0.976,0.982,0.987,0.992,0.995,0.998,0.999,1\r\r\nPARAM_BREATH=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0.03,0.11,0.22,0.35,0.49,0.62,0.73,0.82,0.87,0.9,0.91,0.919,0.927,0.935,0.942,0.948,0.955,0.96,0.965,0.97,0.974,0.978,0.982,0.985,0.987,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0\r\r\nARM_R_MOVE_02=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.27,1.03,2.21,3.77,5.61,7.69,9.95,12.29,14.69,17.1,19.42,21.6,23.64,25.44,27.01,28.28,29.21,29.8,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.71,28.89,27.58,25.93,23.88,21.61,19.11,16.44,13.63,10.79,7.86,4.97,2.14,-0.64,-3.24,-5.68,-7.92,-9.93,-11.65,-13.07,-14.12,-14.77,-15,-14.87,-14.48,-13.9,-13.12,-12.2,-11.16,-10.03,-8.86,-7.65,-6.45,-5.29,-4.2,-3.18,-2.28,-1.49,-0.86,-0.39,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.09,0.19,0.35,0.54,0.79,1.08,1.41,1.79,2.23,2.7,3.21,3.77,4.38,5.02,5.71,6.43,7.2,8,8.94,9.83,10.68,11.47,12.2,12.87,13.47,14.01,14.48,14.89,15.23,15.51,15.73,15.88,15.97,16,15.986,15.95,15.88,15.77,15.64,15.48,15.28,15.05,14.78,14.48,14.14,13.77,13.36,12.91,12.42,11.9,11.35,10.74,10.11,9.44,8.74,8,7.12,6.26,5.43,4.66,3.9,3.2,2.52,1.88,1.28,0.72,0.19,-0.31,-0.76,-1.17,-1.54,-1.88,-2.17,-2.42,-2.62,-2.79,-2.91,-2.98,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.23,-2.01,-1.77,-1.53,-1.29,-1.06,-0.84,-0.64,-0.46,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=1\r\r\nPARAM_MOUTH_FORM=1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.026,0.06,0.1,0.14,0.19,0.25,0.31,0.38,0.44,0.5,0.56,0.62,0.67,0.72,0.76,0.79,0.81,0.83,0.843,0.855,0.867,0.878,0.888,0.898,0.907,0.916,0.924,0.931,0.938,0.944,0.95,0.956,0.961,0.965,0.97,0.973,0.977,0.98,0.983,0.986,0.988,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.998,0.999,0.999,1,1,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.1,0.15,0.18,0.21,0.24,0.26,0.29,0.31,0.34,0.36,0.38,0.41,0.43,0.45,0.48,0.5,0.53,0.55,0.58,0.6,0.62,0.642,0.66,0.677,0.691,0.704,0.715,0.725,0.733,0.739,0.744,0.747,0.749,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.747,0.74,0.728,0.713,0.694,0.67,0.65,0.63,0.6,0.57,0.55,0.52,0.5,0.47,0.45,0.42,0.405,0.386,0.37,0.358,0.348,0.342,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.339,0.339,0.338,0.338,0.337,0.336,0.335,0.335,0.334,0.333,0.331,0.33,0.329,0.328,0.327,0.326,0.325,0.323,0.322,0.321,0.32,0.319,0.318,0.317,0.316,0.315,0.314,0.313,0.313,0.312,0.311,0.311,0.311,0.31,0.31,0.31\r\r\nPARAM_EAR_R=1,0.998,0.993,0.985,0.972,0.956,0.936,0.91,0.88,0.85,0.81,0.77,0.72,0.67,0.62,0.56,0.49,0.42,0.35,0.27,0.18,0.09,0,-0.1,-0.2,-0.3,-0.4,-0.49,-0.58,-0.66,-0.73,-0.8,-0.86,-0.91,-0.95,-0.98,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.91,-0.8,-0.68,-0.53,-0.37,-0.2,-0.02,0.15,0.32,0.47,0.62,0.75,0.85,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1,0.998,0.993,0.985,0.972,0.956,0.936,0.91,0.88,0.85,0.81,0.77,0.72,0.67,0.62,0.56,0.49,0.42,0.35,0.27,0.18,0.09,0,-0.1,-0.2,-0.3,-0.4,-0.49,-0.58,-0.66,-0.73,-0.8,-0.86,-0.91,-0.95,-0.98,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.91,-0.8,-0.68,-0.53,-0.37,-0.2,-0.02,0.15,0.32,0.47,0.62,0.75,0.85,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.17,0.23,0.3,0.36,0.43,0.49,0.55,0.61,0.66,0.7,0.73,0.75,0.768,0.786,0.802,0.818,0.832,0.846,0.86,0.872,0.884,0.895,0.905,0.914,0.923,0.931,0.939,0.946,0.953,0.959,0.964,0.969,0.973,0.977,0.981,0.984,0.987,0.99,0.992,0.994,0.995,0.996,0.998,0.998,0.999,0.999,1,1,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-3.998,-3.993,-3.984,-3.972,-3.956,-3.938,-3.92,-3.89,-3.86,-3.83,-3.8,-3.76,-3.73,-3.69,-3.64,-3.6,-3.55,-3.5,-3.45,-3.4,-3.34,-3.29,-3.23,-3.17,-3.11,-3.05,-2.98,-2.92,-2.85,-2.78,-2.72,-2.65,-2.58,-2.51,-2.44,-2.37,-2.3,-2.23,-2.15,-2.08,-2.01,-1.94,-1.87,-1.79,-1.72,-1.65,-1.58,-1.51,-1.44,-1.37,-1.3,-1.24,-1.17,-1.1,-1.04,-0.98,-0.91,-0.85,-0.79,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.43,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.08,-0.058,-0.041,-0.026,-0.015,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.22,-0.48,-0.83,-1.27,-1.78,-2.36,-3.01,-3.73,-4.49,-5.32,-6.19,-7.1,-8.07,-9.05,-10.08,-11.14,-12.23,-13.35,-14.49,-15.65,-16.8,-18,-19.3,-20.5,-21.62,-22.61,-23.54,-24.38,-25.14,-25.83,-26.46,-27.01,-27.52,-27.97,-28.36,-28.7,-29,-29.25,-29.46,-29.64,-29.77,-29.88,-29.95,-29.99,-30,-29.999,-29.996,-29.992,-29.985,-29.976,-29.965,-29.952,-29.937,-29.919,-29.899,-29.88,-29.85,-29.82,-29.79,-29.76,-29.73,-29.69,-29.65,-29.6,-29.56,-29.5,-29.45,-29.4,-29.34,-29.27,-29.21,-29.14,-29.06,-28.99,-28.91,-28.82,-28.74,-28.65,-28.55,-28.45,-28.35,-28.24,-28.13,-28.02,-27.9,-27.77,-27.65,-27.52,-27.38,-27.24,-27.09,-26.94,-26.79,-26.63,-26.46,-26.3,-26.12,-25.94,-25.76,-25.57,-25.38,-25.18,-24.97,-24.77,-24.55,-24.33,-24.11,-23.88,-23.64,-23.4,-23.15,-22.9,-22.64,-22.37,-22.1,-21.82,-21.54,-21.25,-20.95,-20.65,-20.34,-20.03,-19.71,-19.38,-19.04,-18.71,-18.36,-18,-17.6,-17.15,-16.66,-16.12,-15.54,-14.94,-14.3,-13.63,-12.95,-12.25,-11.54,-10.81,-10.08,-9.36,-8.63,-7.91,-7.19,-6.5,-5.82,-5.16,-4.53,-3.92,-3.36,-2.81,-2.32,-1.86,-1.44,-1.08,-0.76,-0.49,-0.28,-0.13,-0.03,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.37,-0.81,-1.36,-2.04,-2.8,-3.63,-4.52,-5.46,-6.4,-7.38,-8.34,-9.29,-10.21,-11.08,-11.89,-12.64,-13.31,-13.88,-14.36,-14.71,-14.92,-15,-14.993,-14.973,-14.94,-14.89,-14.84,-14.77,-14.68,-14.59,-14.49,-14.38,-14.25,-14.12,-13.97,-13.82,-13.66,-13.49,-13.32,-13.13,-12.94,-12.74,-12.54,-12.33,-12.11,-11.88,-11.66,-11.42,-11.18,-10.94,-10.69,-10.44,-10.19,-9.93,-9.67,-9.41,-9.15,-8.88,-8.61,-8.34,-8.08,-7.8,-7.53,-7.26,-6.99,-6.73,-6.46,-6.19,-5.92,-5.66,-5.4,-5.14,-4.89,-4.63,-4.38,-4.14,-3.9,-3.66,-3.43,-3.2,-2.98,-2.76,-2.55,-2.35,-2.15,-1.96,-1.77,-1.59,-1.43,-1.27,-1.11,-0.97,-0.83,-0.7,-0.59,-0.48,-0.38,-0.29,-0.22,-0.15,-0.1,-0.06,-0.03,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.497,0.493,0.489,0.483,0.476,0.469,0.462,0.453,0.445,0.437,0.429,0.421,0.413,0.406,0.4,0.394,0.389,0.385,0.382,0.381,0.38,0.381,0.382,0.385,0.389,0.393,0.398,0.403,0.409,0.416,0.422,0.429,0.436,0.443,0.449,0.456,0.463,0.469,0.474,0.48,0.485,0.489,0.493,0.496,0.498,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.497,0.493,0.489,0.483,0.476,0.469,0.462,0.453,0.445,0.437,0.429,0.421,0.413,0.406,0.4,0.394,0.389,0.385,0.382,0.381,0.38,0.381,0.382,0.385,0.389,0.393,0.398,0.403,0.409,0.416,0.422,0.429,0.436,0.443,0.449,0.456,0.463,0.469,0.474,0.48,0.485,0.489,0.493,0.496,0.498,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.002,0.002,0.002,0.003,0.004,0.004,0.005,0.006,0.007,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.014,0.016,0.017,0.018,0.019,0.021,0.022,0.023,0.025,0.026,0.027,0.029,0.03,0.032,0.033,0.035,0.036,0.038,0.039,0.041,0.042,0.044,0.045,0.047,0.048,0.05,0.052,0.053,0.055,0.056,0.058,0.059,0.061,0.062,0.064,0.065,0.067,0.068,0.07,0.071,0.073,0.074,0.075,0.077,0.078,0.079,0.081,0.082,0.083,0.084,0.086,0.087,0.088,0.089,0.09,0.091,0.092,0.093,0.093,0.094,0.095,0.096,0.096,0.097,0.098,0.098,0.098,0.099,0.099,0.099,0.1,0.1,0.1,0.1,0.099,0.098,0.096,0.093,0.089,0.084,0.079,0.074,0.068,0.062,0.056,0.05,0.044,0.038,0.032,0.026,0.021,0.016,0.011,0.007,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.96,-0.91,-0.85,-0.78,-0.69,-0.59,-0.48,-0.37,-0.25,-0.13,0,0.13,0.25,0.37,0.48,0.59,0.69,0.78,0.85,0.91,0.96,0.99,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TONGUE=0\r\r\nPARAM_EAR_R=0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.08,-0.33,-0.71,-1.2,-1.8,-2.47,-3.22,-4.01,-4.85,-5.7,-6.58,-7.46,-8.32,-9.17,-9.97,-10.74,-11.45,-12.1,-12.67,-13.16,-13.55,-13.83,-14,-14.11,-14.21,-14.32,-14.42,-14.52,-14.62,-14.72,-14.81,-14.91,-15,-15.09,-15.17,-15.26,-15.35,-15.43,-15.51,-15.59,-15.67,-15.74,-15.82,-15.89,-15.97,-16.04,-16.1,-16.17,-16.24,-16.3,-16.36,-16.42,-16.49,-16.54,-16.6,-16.66,-16.71,-16.76,-16.81,-16.86,-16.91,-16.96,-17.01,-17.05,-17.1,-17.14,-17.18,-17.22,-17.26,-17.3,-17.33,-17.37,-17.4,-17.43,-17.47,-17.5,-17.53,-17.55,-17.58,-17.61,-17.63,-17.66,-17.68,-17.7,-17.73,-17.746,-17.766,-17.784,-17.802,-17.819,-17.835,-17.85,-17.865,-17.878,-17.891,-17.903,-17.914,-17.925,-17.934,-17.943,-17.951,-17.959,-17.966,-17.972,-17.977,-17.982,-17.987,-17.99,-17.993,-17.996,-17.998,-17.999,-18,-18,-17.91,-17.65,-17.23,-16.67,-15.99,-15.21,-14.31,-13.36,-12.35,-11.3,-10.24,-9.13,-8.05,-6.99,-5.94,-4.94,-4.02,-3.16,-2.37,-1.69,-1.1,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.002,0.006,0.014,0.024,0.036,0.05,0.065,0.081,0.099,0.117,0.136,0.155,0.174,0.193,0.212,0.23,0.248,0.265,0.281,0.295,0.309,0.32,0.33,0.339,0.349,0.358,0.366,0.375,0.383,0.391,0.399,0.407,0.415,0.422,0.429,0.436,0.443,0.45,0.456,0.462,0.468,0.474,0.48,0.485,0.491,0.496,0.501,0.506,0.511,0.515,0.52,0.524,0.528,0.532,0.536,0.54,0.543,0.547,0.55,0.553,0.556,0.559,0.562,0.565,0.567,0.57,0.572,0.575,0.577,0.579,0.581,0.582,0.584,0.586,0.587,0.589,0.59,0.591,0.592,0.593,0.594,0.595,0.596,0.597,0.597,0.598,0.598,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.6,0.599,0.597,0.594,0.591,0.587,0.583,0.578,0.572,0.566,0.559,0.552,0.544,0.536,0.527,0.518,0.509,0.499,0.489,0.478,0.467,0.456,0.445,0.433,0.421,0.409,0.396,0.384,0.371,0.358,0.346,0.332,0.32,0.307,0.293,0.28,0.268,0.254,0.242,0.229,0.216,0.204,0.191,0.179,0.167,0.155,0.144,0.133,0.122,0.111,0.101,0.091,0.082,0.073,0.064,0.056,0.048,0.041,0.034,0.028,0.022,0.017,0.013,0.009,0.006,0.003,0.001,0,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.022,0.05,0.08,0.11,0.14,0.17,0.2,0.22,0.24,0.251,0.252,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0.007,0.026,0.05,0.09,0.12,0.16,0.19,0.22,0.24,0.25,0.252,0.251,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.987,-0.95,-0.9,-0.82,-0.74,-0.65,-0.55,-0.45,-0.35,-0.26,-0.18,-0.1,-0.05,-0.01,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L=0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=1\r\r\nVISIBLE:PARTS_01_ARM_L=1\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.22,-0.82,-1.77,-2.98,-4.35,-5.88,-7.47,-9.03,-10.55,-11.93,-13.09,-14,-14.8,-15.46,-16.02,-16.52,-16.96,-17.36,-17.75,-18.13,-18.52,-18.93,-19.37,-19.85,-20.4,-21,-21.79,-22.62,-23.49,-24.36,-25.21,-26.02,-26.76,-27.41,-27.97,-28.41,-28.74,-28.93,-29,-28.53,-27.34,-25.83,-24.26,-22.85,-21.74,-21,-20.28,-19.66,-19.11,-18.62,-18.16,-17.72,-17.28,-16.83,-16.36,-15.85,-15.29,-14.67,-14,-13.18,-12.36,-11.53,-10.7,-9.89,-9.07,-8.26,-7.48,-6.71,-5.96,-5.25,-4.56,-3.9,-3.29,-2.71,-2.18,-1.7,-1.27,-0.9,-0.59,-0.33,-0.15,-0.04,0\r\r\nPARAM_ANGLE_Y=0,-0.6,-2.21,-4.69,-7.8,-11.26,-15,-18.74,-22.2,-25.31,-27.79,-29.4,-30,-29.62,-28.63,-27.18,-25.39,-23.4,-21.31,-19.21,-17.16,-15.25,-13.53,-12.1,-10.98,-10.25,-10,-10.4,-11.47,-13.08,-15.1,-17.33,-19.71,-22.04,-24.22,-26.14,-27.76,-28.98,-29.74,-30,-29.43,-27.79,-25.29,-22.07,-18.34,-14.27,-10,-4.15,1.05,5.75,9.96,13.59,16.74,19.38,21.51,23.2,24.47,25.34,25.84,26,25.87,25.49,24.88,24.07,23.09,21.94,20.64,19.27,17.77,16.21,14.63,13,11.37,9.79,8.23,6.73,5.36,4.06,2.91,1.93,1.12,0.51,0.13,0\r\r\nPARAM_ANGLE_Z=0,-0.18,-0.66,-1.41,-2.34,-3.38,-4.5,-5.62,-6.66,-7.59,-8.34,-8.82,-9,-8.83,-8.38,-7.73,-6.92,-6.03,-5.09,-4.14,-3.22,-2.36,-1.59,-0.95,-0.44,-0.11,0,-0.52,-1.91,-4.01,-6.63,-9.53,-12.62,-15.65,-18.48,-20.99,-23.09,-24.67,-25.66,-26,-24.22,-19.87,-14.47,-9.1,-4.6,-1.49,0,0.86,1.57,2.16,2.65,3.04,3.35,3.57,3.74,3.86,3.93,3.97,3.995,4,3.98,3.92,3.83,3.7,3.55,3.38,3.18,2.96,2.73,2.49,2.25,2,1.75,1.51,1.27,1.04,0.82,0.63,0.45,0.3,0.17,0.08,0.02,0\r\r\nPARAM_EYE_L_OPEN=0.75,0.69,0.56,0.4,0.24,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_R_OPEN=0.75,0.69,0.56,0.4,0.24,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=-0.5\r\r\nPARAM_MOUTH_FORM=1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.04,0.16,0.33,0.53,0.73,0.91,1.07,1.2,1.27,1.3,1.284,1.24,1.17,1.09,0.99,0.89,0.78,0.67,0.55,0.44,0.34,0.25,0.16,0.1,0.04,0.01,0,0.008,0.03,0.07,0.12,0.18,0.24,0.31,0.39,0.47,0.56,0.64,0.72,0.8,0.89,0.96,1.03,1.1,1.15,1.2,1.24,1.27,1.293,1.3,1.298,1.292,1.283,1.272,1.257,1.24,1.222,1.203,1.18,1.16,1.14,1.12,1.1,1.078,1.06,1.043,1.028,1.017,1.008,1.002,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.5,0.494,0.48,0.46,0.44,0.41,0.39,0.368,0.353,0.343,0.34,0.342,0.347,0.356,0.366,0.378,0.391,0.404,0.418,0.432,0.445,0.458,0.47,0.48,0.488,0.494,0.499,0.5,0.5,0.5,0.499,0.498,0.496,0.494,0.492,0.489,0.485,0.481,0.476,0.47,0.463,0.455,0.447,0.438,0.427,0.416,0.403,0.389,0.374,0.358,0.34,0.32,0.3,0.279,0.26,0.24,0.21,0.19,0.17,0.15,0.13,0.11,0.092,0.074,0.058,0.044,0.031,0.021,0.012,0.005,0.001,0\r\r\nPARAM_TONGUE=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.981,0.93,0.86,0.78,0.7,0.62,0.55,0.5,0.47,0.46,0.467,0.485,0.51,0.55,0.59,0.63,0.68,0.72,0.77,0.82,0.86,0.9,0.93,0.96,0.98,0.995,1,0.999,0.995,0.989,0.98,0.97,0.957,0.942,0.925,0.906,0.886,0.86,0.84,0.81,0.79,0.76,0.72,0.69,0.66,0.62,0.58,0.54,0.5,0.46,0.42,0.37,0.33,0.3,0.26,0.23,0.2,0.17,0.15,0.12,0.1,0.081,0.064,0.049,0.036,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_EAR_R=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.997,-0.989,-0.976,-0.959,-0.94,-0.91,-0.88,-0.85,-0.82,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.53,-0.49,-0.45,-0.41,-0.37,-0.33,-0.3,-0.27,-0.24,-0.21,-0.19,-0.174,-0.161,-0.153,-0.15,-0.158,-0.18,-0.21,-0.26,-0.31,-0.37,-0.43,-0.5,-0.57,-0.63,-0.7,-0.76,-0.82,-0.87,-0.92,-0.95,-0.98,-0.994,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.76,-0.7,-0.64,-0.57,-0.51,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.997,-0.989,-0.975,-0.957,-0.93,-0.91,-0.88,-0.85,-0.81,-0.77,-0.73,-0.69,-0.65,-0.6,-0.56,-0.52,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.24,-0.21,-0.19,-0.16,-0.145,-0.131,-0.123,-0.12,-0.128,-0.15,-0.18,-0.23,-0.28,-0.35,-0.41,-0.48,-0.55,-0.62,-0.69,-0.75,-0.81,-0.87,-0.91,-0.95,-0.98,-0.994,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.76,-0.7,-0.64,-0.57,-0.51,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.08,-0.29,-0.63,-1.04,-1.5,-2,-2.5,-2.96,-3.38,-3.71,-3.92,-4,-3.93,-3.75,-3.49,-3.19,-2.88,-2.59,-2.35,-2.16,-2.04,-2,-2.03,-2.1,-2.21,-2.35,-2.52,-2.71,-2.9,-3.1,-3.29,-3.48,-3.65,-3.79,-3.9,-3.97,-4,-3.97,-3.87,-3.72,-3.53,-3.28,-3.01,-2.71,-2.38,-2.03,-1.68,-1.32,-0.97,-0.62,-0.29,0.01,0.28,0.53,0.72,0.87,0.97,1,0.995,0.98,0.96,0.93,0.89,0.84,0.8,0.74,0.69,0.63,0.57,0.51,0.45,0.39,0.33,0.27,0.22,0.18,0.13,0.09,0.06,0.04,0.016,0.004,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.12,-0.44,-0.94,-1.56,-2.25,-3,-3.75,-4.44,-5.06,-5.56,-5.88,-6,-5.93,-5.75,-5.49,-5.19,-4.88,-4.59,-4.35,-4.16,-4.04,-4,-4.03,-4.1,-4.21,-4.35,-4.52,-4.71,-4.9,-5.1,-5.29,-5.48,-5.65,-5.79,-5.9,-5.97,-6,-5.89,-5.59,-5.12,-4.48,-3.71,-2.82,-1.86,-0.81,0.3,1.44,2.56,3.7,4.81,5.86,6.82,7.71,8.48,9.12,9.59,9.89,10,9.95,9.8,9.57,9.26,8.88,8.45,7.95,7.42,6.86,6.28,5.69,5.07,4.47,3.88,3.3,2.75,2.23,1.75,1.32,0.94,0.61,0.35,0.16,0.04,0\r\r\nPARAM_BIG_FACE=0,0.016,0.06,0.12,0.2,0.29,0.38,0.48,0.56,0.64,0.7,0.75,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.789,0.787,0.784,0.781,0.776,0.771,0.765,0.757,0.748,0.738,0.727,0.714,0.7,0.685,0.668,0.649,0.63,0.61,0.58,0.56,0.53,0.5,0.47,0.43,0.4,0.36,0.33,0.3,0.27,0.24,0.21,0.19,0.16,0.14,0.12,0.09,0.076,0.059,0.044,0.031,0.02,0.011,0.005,0.001,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.996,0.985,0.966,0.94,0.91,0.88,0.84,0.8,0.75,0.71,0.66,0.61,0.56,0.51,0.46,0.4,0.36,0.31,0.26,0.22,0.18,0.14,0.1,0.07,0.05,0.028,0.013,0.003,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0.002,0.007,0.014,0.023,0.034,0.045,0.056,0.067,0.076,0.083,0.088,0.09,0.089,0.087,0.083,0.079,0.073,0.067,0.06,0.053,0.046,0.039,0.032,0.025,0.019,0.014,0.009,0.005,0.002,0.001,0,0.001,0.004,0.008,0.014,0.021,0.03,0.039,0.049,0.06,0.072,0.083,0.095,0.107,0.118,0.13,0.141,0.151,0.16,0.169,0.176,0.182,0.186,0.189,0.19,0.189,0.187,0.183,0.179,0.173,0.166,0.158,0.15,0.141,0.132,0.122,0.112,0.101,0.091,0.081,0.071,0.061,0.052,0.043,0.035,0.027,0.021,0.015,0.009,0.005,0.002,0.001,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0,-0.009,-0.03,-0.07,-0.11,-0.17,-0.22,-0.27,-0.32,-0.36,-0.4,-0.43,-0.444,-0.45,-0.446,-0.438,-0.427,-0.416,-0.406,-0.398,-0.392,-0.39,-0.392,-0.398,-0.407,-0.418,-0.432,-0.448,-0.465,-0.483,-0.503,-0.522,-0.543,-0.562,-0.582,-0.601,-0.619,-0.636,-0.651,-0.665,-0.677,-0.687,-0.694,-0.698,-0.7,-0.686,-0.65,-0.59,-0.52,-0.44,-0.35,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.16,-0.6,-1.27,-2.1,-3.06,-4.11,-5.23,-6.35,-7.49,-8.56,-9.58,-10.52,-11.35,-12.03,-12.55,-12.88,-13,-12.78,-12.19,-11.31,-10.2,-8.97,-7.66,-6.38,-5.18,-4.12,-3.23,-2.56,-2.14,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.009,-2.03,-2.07,-2.12,-2.18,-2.24,-2.31,-2.38,-2.45,-2.53,-2.6,-2.67,-2.74,-2.8,-2.86,-2.91,-2.94,-2.97,-2.993,-3,-2.96,-2.86,-2.71,-2.51,-2.29,-2.05,-1.79,-1.54,-1.27,-1.02,-0.79,-0.57,-0.38,-0.22,-0.1,-0.03,0,-0.1,-0.37,-0.76,-1.22,-1.7,-2.17,-2.58,-2.87,-3,-3.04,-3.07,-3.1,-3.14,-3.17,-3.2,-3.23,-3.26,-3.29,-3.32,-3.35,-3.37,-3.4,-3.43,-3.45,-3.48,-3.5,-3.52,-3.55,-3.57,-3.59,-3.61,-3.628,-3.648,-3.666,-3.684,-3.702,-3.719,-3.735,-3.751,-3.766,-3.781,-3.795,-3.809,-3.822,-3.834,-3.846,-3.858,-3.869,-3.879,-3.889,-3.899,-3.908,-3.917,-3.925,-3.932,-3.94,-3.946,-3.953,-3.959,-3.964,-3.969,-3.974,-3.978,-3.982,-3.986,-3.989,-3.991,-3.994,-3.996,-3.997,-3.998,-3.999,-4,-4,-3.96,-3.86,-3.71,-3.5,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.4,-0.23,-0.1,-0.03,0\r\r\nPARAM_ANGLE_Y=0,-0.38,-1.39,-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.86,-29.47,-28.87,-28.1,-27.19,-26.17,-25.07,-23.93,-22.75,-21.55,-20.39,-19.26,-18.18,-17.2,-16.29,-15.52,-14.88,-14.41,-14.11,-14,-14.2,-14.74,-15.56,-16.59,-17.77,-19.06,-20.44,-21.81,-23.21,-24.54,-25.8,-26.95,-27.97,-28.81,-29.45,-29.86,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.79,-26.23,-24.39,-22.31,-20.05,-17.71,-15.31,-12.9,-10.58,-8.4,-6.36,-4.56,-2.99,-1.72,-0.79,-0.2,0\r\r\nPARAM_ANGLE_Z=0,-0.011,-0.04,-0.1,-0.18,-0.29,-0.42,-0.58,-0.77,-0.99,-1.24,-1.52,-1.84,-2.2,-2.59,-3.02,-3.49,-4,-4.83,-6.07,-7.67,-9.48,-11.35,-13.24,-15.29,-17.1,-18.56,-19.67,-20.43,-20.87,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.994,-20.97,-20.93,-20.86,-20.75,-20.62,-20.44,-20.23,-19.97,-19.65,-19.29,-18.87,-18.38,-17.84,-17.21,-16.53,-15.77,-14.94,-14.02,-13,-11.66,-10.22,-8.67,-7.09,-5.5,-3.91,-2.33,-0.84,0.62,1.94,3.16,4.25,5.19,5.95,6.52,6.88,7,6.97,6.89,6.75,6.57,6.33,6.05,5.72,5.36,4.96,4.52,4.04,3.54,3,2.44,1.85,1.23,0.59,-0.07,-0.73,-1.42,-2.13,-2.84,-3.57,-4.31,-5.04,-5.79,-6.53,-7.29,-8.02,-8.77,-9.51,-10.23,-10.95,-11.67,-12.37,-13.05,-13.72,-14.36,-14.99,-15.6,-16.19,-16.76,-17.29,-17.79,-18.27,-18.71,-19.12,-19.5,-19.84,-20.14,-20.39,-20.6,-20.77,-20.9,-20.97,-21,-20.95,-20.81,-20.59,-20.28,-19.9,-19.45,-18.93,-18.36,-17.73,-17.05,-16.34,-15.58,-14.8,-13.99,-13.17,-12.32,-11.47,-10.61,-9.75,-8.91,-8.06,-7.24,-6.44,-5.67,-4.92,-4.21,-3.55,-2.93,-2.35,-1.83,-1.37,-0.96,-0.63,-0.36,-0.16,-0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=1,1.001,1.004,1.009,1.016,1.024,1.034,1.046,1.058,1.073,1.089,1.106,1.124,1.143,1.163,1.18,1.21,1.23,1.25,1.28,1.3,1.33,1.35,1.38,1.4,1.43,1.46,1.48,1.51,1.54,1.56,1.59,1.62,1.64,1.67,1.69,1.72,1.74,1.76,1.79,1.81,1.83,1.848,1.867,1.886,1.903,1.918,1.933,1.946,1.958,1.969,1.978,1.986,1.992,1.996,1.999,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.03,0.1,0.21,0.35,0.52,0.71,0.9,1.1,1.29,1.48,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.003,0.012,0.027,0.05,0.08,0.12,0.17,0.23,0.3,0.39,0.48,0.59,0.71,0.85,1,1.29,1.57,1.79,1.94,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.736,0.7,0.64,0.58,0.5,0.42,0.35,0.27,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.736,0.7,0.64,0.58,0.5,0.42,0.35,0.27,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.97,0.93,0.86,0.73,0.58,0.43,0.3,0.18,0.08,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.977,0.95,0.91,0.86,0.74,0.6,0.45,0.31,0.19,0.09,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.97,0.93,0.86,0.73,0.58,0.43,0.3,0.18,0.08,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.999,0.994,0.983,0.964,0.94,0.9,0.86,0.76,0.65,0.53,0.41,0.3,0.21,0.13,0.07,0.02,0.005,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.999,0.994,0.983,0.964,0.94,0.9,0.86,0.76,0.63,0.5,0.38,0.26,0.17,0.1,0.07,0.054,0.042,0.031,0.023,0.017,0.012,0.008,0.005,0.003,0.001,0.001,0,0,0\r\r\nPARAM_EAR_R=0\r\r\nPARAM_EAR_R_MOVE=0,-0.001,-0.003,-0.007,-0.013,-0.02,-0.03,-0.042,-0.055,-0.071,-0.089,-0.11,-0.13,-0.16,-0.19,-0.22,-0.25,-0.28,-0.32,-0.36,-0.41,-0.45,-0.5,-0.58,-0.68,-0.79,-0.9,-0.97,-1,-0.82,-0.54,-0.27,-0.08,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.92,-0.74,-0.5,-0.26,-0.08,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.1,-0.37,-0.78,-1.29,-1.89,-2.53,-3.22,-3.91,-4.61,-5.27,-5.9,-6.48,-6.99,-7.41,-7.72,-7.93,-8,-7.96,-7.85,-7.69,-7.49,-7.27,-7.03,-6.8,-6.58,-6.39,-6.22,-6.1,-6.03,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.07,-6.25,-6.51,-6.81,-7.12,-7.41,-7.65,-7.84,-7.96,-8,-7.96,-7.86,-7.69,-7.48,-7.21,-6.92,-6.59,-6.24,-5.88,-5.52,-5.15,-4.8,-4.46,-4.14,-3.84,-3.57,-3.34,-3.15,-3,-2.86,-2.71,-2.58,-2.45,-2.32,-2.2,-2.08,-1.97,-1.86,-1.76,-1.65,-1.56,-1.46,-1.37,-1.29,-1.21,-1.13,-1.05,-0.98,-0.91,-0.85,-0.78,-0.72,-0.67,-0.61,-0.56,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.28,-0.25,-0.22,-0.19,-0.17,-0.15,-0.13,-0.106,-0.089,-0.074,-0.06,-0.048,-0.037,-0.028,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.985,-2.94,-2.87,-2.79,-2.68,-2.55,-2.42,-2.27,-2.11,-1.95,-1.78,-1.61,-1.43,-1.27,-1.1,-0.94,-0.78,-0.64,-0.5,-0.38,-0.27,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.29,-1.06,-2.24,-3.73,-5.46,-7.36,-9.41,-11.48,-13.63,-15.7,-17.71,-19.62,-21.38,-22.92,-24.24,-25.28,-26,-26.57,-27.02,-27.37,-27.63,-27.81,-27.93,-28,-28.04,-28.043,-28.035,-28.02,-28.006,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28.01,-28.024,-28.015,-27.96,-27.85,-27.66,-27.38,-27.01,-26.56,-26,-25.21,-24.35,-23.47,-22.53,-21.59,-20.64,-19.7,-18.79,-17.9,-17.05,-16.27,-15.56,-14.91,-14.35,-13.87,-13.5,-13.23,-13.06,-13,-13.03,-13.11,-13.23,-13.39,-13.59,-13.82,-14.08,-14.35,-14.65,-14.96,-15.28,-15.61,-15.95,-16.29,-16.63,-16.96,-17.29,-17.62,-17.93,-18.22,-18.51,-18.76,-19,-19.23,-19.44,-19.65,-19.85,-20.04,-20.22,-20.39,-20.55,-20.71,-20.86,-21.01,-21.15,-21.29,-21.43,-21.57,-21.71,-21.84,-21.98,-22.12,-22.27,-22.41,-22.56,-22.71,-22.87,-23.04,-23.22,-23.4,-23.59,-23.79,-24,-24.3,-24.74,-25.3,-25.95,-26.62,-27.32,-28.01,-28.63,-29.18,-29.62,-29.9,-30,-29.85,-29.42,-28.75,-27.85,-26.79,-25.54,-24.16,-22.68,-21.12,-19.47,-17.8,-16.08,-14.34,-12.66,-11,-9.37,-7.84,-6.38,-5.02,-3.8,-2.72,-1.79,-1.03,-0.47,-0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.008,0.012,0.016,0.021,0.026,0.032,0.039,0.046,0.053,0.061,0.07,0.079,0.088,0.098,0.108,0.119,0.13,0.141,0.153,0.165,0.178,0.191,0.204,0.217,0.231,0.245,0.259,0.274,0.288,0.303,0.318,0.334,0.349,0.365,0.38,0.396,0.412,0.428,0.444,0.46,0.476,0.492,0.508,0.524,0.54,0.556,0.572,0.588,0.604,0.62,0.635,0.651,0.666,0.682,0.697,0.712,0.726,0.741,0.755,0.769,0.783,0.796,0.809,0.822,0.835,0.847,0.859,0.87,0.881,0.892,0.902,0.912,0.921,0.93,0.939,0.947,0.954,0.961,0.968,0.974,0.979,0.984,0.988,0.992,0.995,0.997,0.999,1,1\r\r\nPARAM_BREATH=0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,-0.03,-0.13,-0.26,-0.42,-0.58,-0.74,-0.87,-0.97,-1,-0.64,-0.07,0.46,0.85,1,0.89,0.63,0.27,-0.08,-0.34,-0.45,-0.42,-0.34,-0.24,-0.14,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.04,0.08,0.12,0.16,0.2,0.22,0.24,0.25,0.251,0.251,0.25,0.241,0.22,0.18,0.15,0.1,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.04,0.08,0.12,0.16,0.2,0.22,0.24,0.25,0.251,0.251,0.25,0.241,0.22,0.18,0.15,0.1,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.97,-0.91,-0.81,-0.69,-0.54,-0.38,-0.2,0,0.22,0.41,0.57,0.71,0.81,0.9,0.95,0.99,1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,-0.07,-0.25,-0.47,-0.68,-0.85,-0.96,-1,-0.988,-0.95,-0.89,-0.8,-0.69,-0.56,-0.4,-0.21,0,0.21,0.4,0.56,0.69,0.8,0.89,0.95,0.99,1,0.992,0.97,0.92,0.85,0.76,0.65,0.52,0.36,0.19,0,-0.35,-0.62,-0.82,-0.95,-1,-0.87,-0.59,-0.23,0.13,0.47,0.75,0.93,1,0.9,0.64,0.31,-0.03,-0.29,-0.39,-0.32,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0,-0.02,-0.08,-0.18,-0.3,-0.44,-0.6,-0.77,-0.95,-1.13,-1.32,-1.5,-1.68,-1.85,-2,-2.14,-2.26,-2.36,-2.44,-2.48,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.496,-2.483,-2.464,-2.44,-2.41,-2.38,-2.34,-2.31,-2.27,-2.24,-2.21,-2.19,-2.167,-2.154,-2.15,-2.157,-2.176,-2.2,-2.24,-2.28,-2.32,-2.36,-2.4,-2.43,-2.46,-2.48,-2.495,-2.5,-2.494,-2.476,-2.45,-2.41,-2.37,-2.32,-2.27,-2.23,-2.18,-2.13,-2.09,-2.05,-2.02,-2.006,-2,-2.017,-2.06,-2.13,-2.2,-2.28,-2.35,-2.41,-2.46,-2.49,-2.5,-2.483,-2.44,-2.37,-2.3,-2.22,-2.15,-2.09,-2.04,-2.01,-2,-2.017,-2.06,-2.13,-2.21,-2.29,-2.37,-2.44,-2.48,-2.5,-2.497,-2.487,-2.47,-2.44,-2.41,-2.37,-2.32,-2.26,-2.18,-2.1,-2,-1.88,-1.76,-1.65,-1.54,-1.44,-1.34,-1.24,-1.14,-1.05,-0.97,-0.88,-0.8,-0.73,-0.65,-0.59,-0.52,-0.46,-0.4,-0.35,-0.3,-0.25,-0.21,-0.17,-0.13,-0.1,-0.08,-0.05,-0.034,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nARM_R_MOVE_02=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.89,0.79,0.67,0.55,0.42,0.31,0.21,0.13,0.08,0.06,0.12,0.25,0.42,0.59,0.75,0.88,0.97,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.987,0.972,0.952,0.93,0.9,0.87,0.83,0.79,0.75,0.71,0.67,0.62,0.58,0.53,0.48,0.44,0.39,0.35,0.3,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.023,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.011,-0.04,-0.1,-0.19,-0.31,-0.46,-0.65,-0.87,-1.13,-1.43,-1.76,-2.13,-2.55,-2.99,-3.48,-4,-4.73,-5.44,-6.1,-6.71,-7.27,-7.76,-8.19,-8.53,-8.78,-8.94,-9,-8.82,-8.37,-7.73,-6.95,-6.09,-5.19,-4.26,-3.37,-2.5,-1.71,-1,-0.33,0.23,0.74,1.2,1.61,2.02,2.42,2.83,3.28,3.78,4.34,5,5.83,6.86,8.01,9.21,10.35,11.39,12.23,12.79,13,12.96,12.84,12.65,12.39,12.07,11.69,11.26,10.79,10.28,9.74,9.18,8.6,8,7.31,6.67,6.05,5.46,4.92,4.39,3.9,3.44,3.01,2.61,2.25,1.9,1.59,1.31,1.06,0.83,0.64,0.46,0.32,0.2,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.18,-0.68,-1.45,-2.44,-3.59,-4.86,-6.16,-7.49,-8.79,-10.03,-11.13,-12.11,-12.91,-13.5,-13.87,-14,-13.95,-13.77,-13.43,-12.88,-12.1,-11.07,-9.73,-8.11,-6.12,-3.79,-1,3.06,7.18,11.16,15.01,18.54,21.72,24.54,26.79,28.53,29.61,30,30,30,30,30,30,30,30,30,30,30,30,30,29.9,29.58,29,28.13,26.94,25.36,23.37,20.93,18,14.61,11.46,8.51,5.76,3.3,1.09,-0.82,-2.42,-3.72,-4.73,-5.44,-5.86,-6,-5.97,-5.88,-5.74,-5.55,-5.33,-5.06,-4.76,-4.45,-4.1,-3.74,-3.38,-3,-2.62,-2.26,-1.9,-1.55,-1.24,-0.94,-0.67,-0.45,-0.26,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-0.86,-0.49,0.09,0.82,1.63,2.5,3.37,4.18,4.91,5.49,5.86,6,5.991,5.97,5.92,5.87,5.79,5.71,5.61,5.5,5.38,5.24,5.1,4.95,4.79,4.62,4.45,4.27,4.09,3.9,3.71,3.52,3.32,3.12,2.93,2.73,2.54,2.34,2.15,1.96,1.78,1.61,1.44,1.27,1.11,0.96,0.82,0.69,0.56,0.45,0.35,0.26,0.18,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0.007,0.028,0.06,0.1,0.15,0.2,0.26,0.31,0.38,0.44,0.5,0.56,0.61,0.66,0.71,0.75,0.78,0.81,0.824,0.83,0.823,0.8,0.77,0.72,0.67,0.62,0.55,0.48,0.42,0.35,0.28,0.21,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.993,0.985,0.975,0.961,0.946,0.927,0.907,0.88,0.86,0.84,0.81,0.78,0.75,0.72,0.69,0.66,0.62,0.59,0.55,0.52,0.49,0.45,0.42,0.39,0.35,0.32,0.29,0.26,0.23,0.2,0.18,0.15,0.13,0.1,0.08,0.065,0.049,0.034,0.022,0.013,0.006,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.019,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.35,0.4,0.45,0.5,0.55,0.59,0.63,0.66,0.69,0.71,0.731,0.746,0.759,0.769,0.777,0.782,0.786,0.789,0.79,0.791,0.791,0.791,0.791,0.79,0.79,0.79,0.79,0.79,0.789,0.789,0.788,0.787,0.786,0.785,0.784,0.782,0.78,0.777,0.774,0.771,0.768,0.764,0.759,0.755,0.749,0.744,0.738,0.731,0.724,0.716,0.708,0.699,0.69,0.67,0.62,0.57,0.49,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.24,-0.52,-0.87,-1.28,-1.73,-2.2,-2.68,-3.14,-3.58,-3.98,-4.33,-4.61,-4.82,-4.96,-5,-4.995,-4.979,-4.95,-4.9,-4.84,-4.76,-4.66,-4.53,-4.38,-4.21,-4,-3.67,-3.29,-2.88,-2.45,-2.03,-1.62,-1.22,-0.86,-0.52,-0.24,0,0.22,0.41,0.59,0.75,0.91,1.06,1.2,1.35,1.5,1.66,1.82,2,2.18,2.35,2.51,2.65,2.77,2.86,2.94,2.98,3,2.97,2.89,2.77,2.62,2.44,2.25,2.04,1.84,1.64,1.45,1.28,1.13,1,0.86,0.73,0.62,0.52,0.43,0.36,0.29,0.24,0.19,0.15,0.11,0.08,0.06,0.04,0.026,0.015,0.008,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.1,-0.39,-0.83,-1.39,-2.05,-2.78,-3.52,-4.28,-5.02,-5.73,-6.36,-6.92,-7.38,-7.72,-7.93,-8,-7.983,-7.93,-7.83,-7.69,-7.49,-7.24,-6.93,-6.56,-6.11,-5.6,-5,-4.14,-3.26,-2.37,-1.44,-0.49,0.49,1.52,2.56,3.67,4.8,6,7.36,8.72,10.12,11.48,12.77,13.99,15.11,16.06,16.87,17.48,17.86,18,17.81,17.28,16.43,15.31,13.98,12.43,10.73,8.9,7,5.02,3.3,1.79,0.49,-0.61,-1.53,-2.27,-2.86,-3.3,-3.63,-3.84,-3.96,-4,-3.97,-3.87,-3.72,-3.53,-3.3,-3.04,-2.77,-2.48,-2.19,-1.89,-1.6,-1.32,-1.05,-0.8,-0.57,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/motions/08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0.16,0.63,1.35,2.28,3.38,4.58,5.85,7.15,8.42,9.62,10.72,11.65,12.37,12.84,13,13.001,12.999,12.992,12.973,12.94,12.88,12.81,12.7,12.55,12.37,12.15,11.88,11.55,11.18,10.74,10.23,9.65,9,8.06,6.66,4.86,2.78,0.44,-2.01,-4.53,-7.05,-9.48,-11.75,-13.81,-15.52,-16.86,-17.7,-18,-17.97,-17.87,-17.69,-17.45,-17.13,-16.74,-16.28,-15.75,-15.14,-14.46,-13.71,-12.89,-12,-11.07,-10.05,-9,-7.7,-6.5,-5.38,-4.34,-3.42,-2.6,-1.89,-1.3,-0.83,-0.46,-0.2,-0.05,0\r\r\nPARAM_ANGLE_Y=0,0.18,0.7,1.53,2.61,3.94,5.43,7.07,8.82,10.64,12.5,14.38,16.19,17.94,19.55,21,22.3,23.47,24.52,25.45,26.26,26.97,27.6,28.13,28.58,28.95,29.25,29.49,29.67,29.81,29.9,29.96,29.99,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.74,29,27.84,26.33,24.55,22.55,20.45,18.25,16.03,13.83,11.75,9.77,7.96,6.4,5.05,4,2.97,2.15,1.5,0.99,0.61,0.35,0.17,0.06,0.01,-0.014,-0.013,-0.005,0\r\r\nPARAM_ANGLE_Z=0,-0.13,-0.5,-1.09,-1.85,-2.76,-3.76,-4.84,-5.95,-7.07,-8.16,-9.2,-10.13,-10.94,-11.57,-12,-12.31,-12.61,-12.89,-13.16,-13.41,-13.65,-13.87,-14.07,-14.27,-14.45,-14.62,-14.77,-14.92,-15.05,-15.17,-15.28,-15.38,-15.47,-15.56,-15.63,-15.69,-15.75,-15.8,-15.85,-15.88,-15.91,-15.94,-15.96,-15.976,-15.987,-15.995,-15.999,-16,-15.94,-15.76,-15.46,-15.08,-14.61,-14.06,-13.45,-12.78,-12.07,-11.32,-10.54,-9.75,-8.92,-8.11,-7.29,-6.47,-5.69,-4.91,-4.17,-3.47,-2.82,-2.22,-1.67,-1.19,-0.78,-0.45,-0.2,-0.05,0\r\r\nPARAM_EYE_L_OPEN=1\r\r\nPARAM_EYE_R_OPEN=1\r\r\nPARAM_EYE_BALL_X=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.995,0.979,0.95,0.92,0.88,0.83,0.77,0.71,0.65,0.58,0.51,0.43,0.36,0.29,0.21,0.14,0.06,-0.02,-0.09,-0.16,-0.23,-0.29,-0.35,-0.4,-0.46,-0.51,-0.55,-0.6,-0.64,-0.68,-0.71,-0.74,-0.77,-0.8,-0.83,-0.85,-0.869,-0.887,-0.902,-0.915,-0.926,-0.935,-0.942,-0.946,-0.949,-0.95,-0.932,-0.88,-0.82,-0.73,-0.64,-0.54,-0.44,-0.34,-0.25,-0.17,-0.1,-0.05,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_EYE_FORM=0,-0.006,-0.023,-0.05,-0.08,-0.12,-0.16,-0.2,-0.24,-0.29,-0.33,-0.37,-0.4,-0.44,-0.46,-0.483,-0.496,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.47,-0.43,-0.38,-0.33,-0.28,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_MOUTH_FORM=0,0.003,0.011,0.025,0.043,0.07,0.09,0.12,0.16,0.19,0.23,0.28,0.32,0.36,0.41,0.46,0.51,0.55,0.6,0.65,0.7,0.74,0.78,0.83,0.87,0.9,0.94,0.97,0.99,1.02,1.035,1.049,1.057,1.06,0.8,0.38,0.09,0,0.011,0.05,0.14,0.26,0.45,0.73,1.01,1.29,1.52,1.67,1.73,1.723,1.704,1.67,1.63,1.58,1.52,1.45,1.38,1.3,1.22,1.14,1.05,0.96,0.88,0.79,0.7,0.61,0.53,0.45,0.38,0.31,0.24,0.18,0.13,0.08,0.05,0.02,0.006,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.22,0.31,0.34,0.341,0.34,0.337,0.331,0.32,0.28,0.22,0.15,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.3,0.44,0.51,0.56,0.573,0.579,0.58,0.58,0.54,0.43,0.29,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.47,-0.47,-1,-0.64,-0.07,0.46,0.85,1,0.47,-0.47,-1,-0.47,0.47,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.005,-0.02,-0.04,-0.08,-0.12,-0.17,-0.23,-0.3,-0.37,-0.45,-0.53,-0.63,-0.72,-0.82,-0.93,-1.04,-1.15,-1.27,-1.38,-1.5,-1.63,-1.75,-1.87,-2,-2.13,-2.25,-2.37,-2.5,-2.62,-2.73,-2.85,-2.96,-3.07,-3.18,-3.28,-3.38,-3.47,-3.55,-3.63,-3.7,-3.77,-3.83,-3.88,-3.92,-3.96,-3.98,-3.995,-4,-3.984,-3.94,-3.87,-3.77,-3.65,-3.52,-3.36,-3.2,-3.02,-2.83,-2.63,-2.44,-2.23,-2.03,-1.82,-1.62,-1.42,-1.23,-1.04,-0.87,-0.71,-0.55,-0.42,-0.3,-0.19,-0.11,-0.05,-0.01,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.26,0.95,1.99,3.31,4.82,6.47,8.23,10.03,11.85,13.67,15.39,17.06,18.62,20,21.41,22.68,23.8,24.82,25.71,26.49,27.18,27.76,28.26,28.68,29.02,29.3,29.52,29.69,29.82,29.91,29.96,29.99,30,29.94,29.78,29.51,29.13,28.65,28.08,27.42,26.66,25.81,24.88,23.85,22.76,21.57,20.32,19,17.57,16.23,14.93,13.71,12.55,11.45,10.4,9.42,8.49,7.62,6.81,6.05,5.32,4.66,4.04,3.46,2.94,2.45,2.02,1.63,1.29,0.98,0.72,0.5,0.32,0.18,0.08,0.02,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.019,0.039,0.06,0.09,0.12,0.14,0.17,0.2,0.22,0.24,0.251,0.252,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0.007,0.026,0.05,0.09,0.12,0.16,0.19,0.22,0.24,0.25,0.252,0.251,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0\r\r\nARM_R_MOVE_02=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/pose.json",
    "content": "{\"type\":\"Live2D Pose\",\"fade_in\":0,\"parts_visible\":[{\"group\":[{\"id\":\"PARTS_01_ARM_R\"},{\"id\":\"PARTS_01_ARM_R_02\"}]},{\"group\":[{\"id\":\"PARTS_01_ARM_L\"},{\"id\":\"PARTS_01_ARM_L_02\"}]}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/blacktom/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f01.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f02.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_L_SMILE\",\"val\":1},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_SMILE\",\"val\":1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.48},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.46}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f03.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.87,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_L_SMILE\",\"val\":1},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.87,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-1},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":1},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":1},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.51},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.51},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f04.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.59},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.59},{\"id\":\"PARAM_BROW_L_X\",\"val\":-1},{\"id\":\"PARAM_BROW_R_X\",\"val\":-1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":-1},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":-1},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-1},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f05.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.42},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.44},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.07},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":1},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":1},{\"id\":\"PARAM_TERE\",\"val\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f06.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_BROW_L_Y\",\"val\":-1},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-1},{\"id\":\"PARAM_BROW_L_X\",\"val\":-0.07},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.73},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.71},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.81},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.81},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f07.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":1.5,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":1.5,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_Y\",\"val\":1},{\"id\":\"PARAM_BROW_R_Y\",\"val\":1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.28},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.31},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":1},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":1},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/expressions/f08.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.75,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.75,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_Y\",\"val\":-0.31},{\"id\":\"PARAM_BROW_R_Y\",\"val\":-0.36},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.61},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.62},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-1},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.53,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/index.json",
    "content": "{\n    \"version\": \"Sample 1.0.0\",\n    \"model\": \"moc/Epsilon2.1.moc\",\n    \"textures\": [\"texture_00.png\"],\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": -0.16,\n        \"width\": 2.0\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.35, 0.6],\n        \"head_y\":[0.19, -0.2],\n        \"body_x\":[-0.3, -0.25],\n        \"body_y\":[0.3, -0.9]\n    },\n    \"expressions\": [\n    {\n        \"name\": \"f04.exp.json\",\n        \"file\": \"expressions/f04.exp.json\"\n    },\n    {\n        \"name\": \"f05.exp.json\",\n        \"file\": \"expressions/f05.exp.json\"\n    },\n    {\n        \"name\": \"f06.exp.json\",\n        \"file\": \"expressions/f06.exp.json\"\n    },\n    {\n        \"name\": \"f07.exp.json\",\n        \"file\": \"expressions/f07.exp.json\"\n    },\n    {\n        \"name\": \"f08.exp.json\",\n        \"file\": \"expressions/f08.exp.json\"\n    },\n    {\n        \"name\": \"f01.exp.json\",\n        \"file\": \"expressions/f01.exp.json\"\n    },\n    {\n        \"name\": \"f02.exp.json\",\n        \"file\": \"expressions/f02.exp.json\"\n    },\n    {\n        \"name\": \"f03.exp.json\",\n        \"file\": \"expressions/f03.exp.json\"\n    }],\n    \"motions\":\n    {\n        \"\": [\n        {\n            \"file\": \"motions/Epsilon2.1_m_01.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_02.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_03.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_04.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_05.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_06.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_07.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_08.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_sp_01.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_sp_02.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_sp_03.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_sp_04.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_m_sp_05.mtn\"\n        },\n        {\n            \"file\": \"motions/Epsilon2.1_shake_01.mtn\"\n        }],\n        \"idle\": [\n        {\n            \"file\": \"motions/Epsilon2.1_idle_01.mtn\"\n        }]\n    },\n    \"physics\": \"physics.json\"\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,-0.04,-0.14,-0.31,-0.53,-0.82,-1.15,-1.52,-1.93,-2.37,-2.85,-3.35,-3.87,-4.41,-4.95,-5.5,-6.05,-6.59,-7.13,-7.65,-8.15,-8.63,-9.07,-9.48,-9.85,-10.18,-10.47,-10.69,-10.86,-10.96,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.95,-10.8,-10.56,-10.23,-9.83,-9.35,-8.8,-8.2,-7.55,-6.84,-6.11,-5.33,-4.53,-3.71,-2.87,-2.03,-1.18,-0.35,0.49,1.3,2.09,2.86,3.58,4.28,4.93,5.53,6.07,6.56,6.98,7.33,7.62,7.83,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.982,7.93,7.84,7.72,7.56,7.38,7.17,6.93,6.66,6.37,6.06,5.72,5.35,4.97,4.57,4.16,3.72,3.27,2.81,2.34,1.86,1.36,0.86,0.35,-0.16,-0.69,-1.21,-1.74,-2.26,-2.79,-3.31,-3.84,-4.35,-4.86,-5.36,-5.86,-6.34,-6.81,-7.27,-7.72,-8.16,-8.57,-8.97,-9.35,-9.72,-10.06,-10.37,-10.66,-10.93,-11.17,-11.38,-11.56,-11.72,-11.84,-11.93,-11.98,-12,-11.95,-11.82,-11.61,-11.32,-10.97,-10.55,-10.08,-9.55,-8.97,-8.37,-7.71,-7.02,-6.31,-5.58,-4.82,-4.05,-3.27,-2.5,-1.71,-0.92,-0.15,0.61,1.35,2.08,2.78,3.46,4.11,4.72,5.29,5.81,6.29,6.73,7.1,7.41,7.66,7.85,7.96,8,7.988,7.95,7.9,7.82,7.73,7.61,7.48,7.33,7.17,6.99,6.8,6.6,6.39,6.16,5.93,5.7,5.45,5.2,4.95,4.69,4.43,4.16,3.9,3.64,3.38,3.12,2.87,2.62,2.38,2.14,1.92,1.69,1.48,1.28,1.1,0.92,0.75,0.6,0.47,0.35,0.25,0.16,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.19,0.32,0.49,0.7,0.93,1.18,1.45,1.75,2.06,2.39,2.73,3.07,3.42,3.78,4.13,4.49,4.84,5.18,5.51,5.84,6.14,6.43,6.71,6.96,7.19,7.39,7.57,7.72,7.84,7.93,7.98,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.98,7.9,7.78,7.62,7.41,7.17,6.88,6.55,6.19,5.8,5.37,4.92,4.43,3.91,3.37,2.81,2.22,1.62,0.99,0.36,-0.29,-0.96,-1.64,-2.32,-3.02,-3.72,-4.43,-5.14,-5.86,-6.57,-7.28,-7.98,-8.68,-9.36,-10.04,-10.71,-11.36,-11.99,-12.62,-13.22,-13.81,-14.37,-14.91,-15.43,-15.92,-16.37,-16.8,-17.19,-17.55,-17.88,-18.17,-18.41,-18.62,-18.78,-18.9,-18.98,-19,-18.94,-18.78,-18.51,-18.15,-17.72,-17.19,-16.6,-15.93,-15.22,-14.46,-13.64,-12.77,-11.89,-10.97,-10.03,-9.07,-8.09,-7.12,-6.13,-5.15,-4.19,-3.24,-2.31,-1.4,-0.52,0.33,1.14,1.9,2.62,3.27,3.87,4.41,4.87,5.27,5.58,5.81,5.95,6,5.94,5.77,5.5,5.15,4.71,4.21,3.67,3.08,2.46,1.82,1.18,0.54,-0.08,-0.67,-1.21,-1.71,-2.15,-2.5,-2.77,-2.94,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.23,-2.06,-1.88,-1.71,-1.52,-1.34,-1.16,-0.99,-0.82,-0.67,-0.53,-0.4,-0.28,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0.001,0.002,0.004,0.006,0.008,0.01,0.012,0.015,0.018,0.022,0.025,0.029,0.034,0.038,0.043,0.048,0.053,0.059,0.065,0.071,0.077,0.084,0.091,0.098,0.105,0.113,0.121,0.129,0.137,0.146,0.154,0.164,0.173,0.182,0.192,0.202,0.212,0.222,0.233,0.243,0.254,0.265,0.277,0.288,0.3,0.312,0.324,0.336,0.349,0.361,0.374,0.387,0.4,0.414,0.427,0.441,0.455,0.469,0.483,0.497,0.511,0.526,0.541,0.555,0.57,0.586,0.601,0.616,0.632,0.648,0.663,0.679,0.695,0.711,0.728,0.744,0.76,0.777,0.794,0.811,0.827,0.845,0.862,0.879,0.896,0.913,0.931,0.948,0.966,0.984,1.001,1.019,1.037,1.055,1.073,1.091,1.109,1.127,1.145,1.164,1.182,1.2,1.219,1.237,1.255,1.274,1.293,1.311,1.33,1.348,1.367,1.386,1.404,1.423,1.442,1.46,1.479,1.498,1.516,1.535,1.554,1.572,1.591,1.61,1.628,1.647,1.666,1.684,1.703,1.721,1.74,1.758,1.777,1.795,1.813,1.832,1.85,1.868,1.886,1.904,1.922,1.94,1.958,1.976,1.994,2.011,2.029,2.047,2.064,2.081,2.099,2.116,2.133,2.15,2.167,2.184,2.2,2.217,2.234,2.25,2.267,2.283,2.299,2.315,2.331,2.347,2.362,2.378,2.393,2.408,2.424,2.438,2.453,2.468,2.483,2.497,2.511,2.525,2.539,2.553,2.567,2.58,2.593,2.607,2.62,2.633,2.645,2.658,2.67,2.682,2.694,2.706,2.717,2.728,2.74,2.751,2.761,2.772,2.782,2.792,2.802,2.812,2.821,2.831,2.84,2.849,2.857,2.866,2.874,2.882,2.889,2.897,2.904,2.911,2.918,2.924,2.931,2.936,2.942,2.948,2.953,2.958,2.963,2.967,2.971,2.975,2.979,2.982,2.985,2.988,2.99,2.993,2.995,2.996,2.998,2.999,2.999,3,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.23,2.13,2.03,1.93,1.83,1.72,1.62,1.51,1.41,1.3,1.2,1.1,1,0.9,0.81,0.71,0.63,0.54,0.46,0.39,0.32,0.26,0.2,0.15,0.1,0.07,0.04,0.02,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.024,-0.05,-0.09,-0.12,-0.16,-0.21,-0.24,-0.28,-0.31,-0.323,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.326,-0.322,-0.316,-0.308,-0.299,-0.289,-0.277,-0.265,-0.251,-0.236,-0.22,-0.203,-0.185,-0.167,-0.149,-0.129,-0.11,-0.09,-0.069,-0.05,-0.03,-0.007,0.013,0.034,0.05,0.074,0.094,0.113,0.131,0.149,0.167,0.183,0.199,0.214,0.228,0.241,0.252,0.263,0.273,0.281,0.287,0.293,0.297,0.299,0.3,0.3,0.299,0.298,0.296,0.294,0.291,0.288,0.284,0.28,0.276,0.271,0.266,0.261,0.256,0.25,0.244,0.237,0.231,0.224,0.217,0.21,0.203,0.196,0.189,0.181,0.174,0.166,0.159,0.151,0.143,0.136,0.128,0.121,0.113,0.106,0.099,0.092,0.085,0.078,0.071,0.065,0.059,0.053,0.047,0.041,0.036,0.031,0.027,0.022,0.018,0.015,0.011,0.008,0.006,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.12,-0.21,-0.3,-0.4,-0.49,-0.58,-0.67,-0.73,-0.77,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.789,-0.784,-0.777,-0.768,-0.756,-0.741,-0.725,-0.706,-0.686,-0.66,-0.64,-0.62,-0.59,-0.56,-0.53,-0.5,-0.47,-0.44,-0.41,-0.38,-0.34,-0.31,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.03,0,0.02,0.05,0.07,0.1,0.116,0.134,0.152,0.166,0.179,0.19,0.199,0.205,0.209,0.21,0.21,0.21,0.208,0.207,0.205,0.204,0.201,0.199,0.196,0.193,0.19,0.186,0.183,0.179,0.175,0.171,0.166,0.162,0.157,0.152,0.147,0.142,0.137,0.132,0.127,0.122,0.116,0.111,0.106,0.1,0.095,0.09,0.085,0.079,0.074,0.069,0.064,0.059,0.055,0.05,0.045,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.016,0.013,0.01,0.008,0.006,0.004,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.004,-0.016,-0.035,-0.06,-0.1,-0.14,-0.18,-0.23,-0.29,-0.35,-0.42,-0.49,-0.57,-0.65,-0.74,-0.82,-0.92,-1.01,-1.1,-1.2,-1.3,-1.41,-1.51,-1.62,-1.72,-1.83,-1.93,-2.04,-2.15,-2.25,-2.36,-2.46,-2.56,-2.67,-2.77,-2.86,-2.96,-3.05,-3.14,-3.23,-3.31,-3.39,-3.47,-3.54,-3.61,-3.67,-3.73,-3.79,-3.83,-3.88,-3.91,-3.94,-3.97,-3.986,-3.996,-4,-3.97,-3.87,-3.72,-3.51,-3.26,-2.96,-2.62,-2.25,-1.84,-1.41,-0.95,-0.48,0.01,0.5,1,1.5,1.99,2.48,2.95,3.41,3.84,4.25,4.62,4.96,5.26,5.51,5.72,5.87,5.97,6,5.96,5.85,5.68,5.46,5.18,4.88,4.55,4.19,3.82,3.44,3.05,2.66,2.29,1.91,1.57,1.24,0.94,0.68,0.45,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.015,-0.06,-0.14,-0.24,-0.36,-0.51,-0.68,-0.87,-1.08,-1.3,-1.54,-1.8,-2.07,-2.34,-2.63,-2.92,-3.21,-3.51,-3.81,-4.11,-4.42,-4.71,-5,-5.29,-5.57,-5.85,-6.11,-6.36,-6.6,-6.82,-7.03,-7.22,-7.4,-7.55,-7.68,-7.79,-7.88,-7.95,-7.99,-8,-7.99,-7.96,-7.91,-7.84,-7.76,-7.66,-7.54,-7.42,-7.27,-7.11,-6.94,-6.76,-6.57,-6.37,-6.16,-5.94,-5.71,-5.48,-5.24,-4.99,-4.74,-4.48,-4.23,-3.96,-3.7,-3.43,-3.17,-2.9,-2.63,-2.37,-2.1,-1.84,-1.59,-1.33,-1.08,-0.84,-0.6,-0.37,-0.15,0.07,0.28,0.48,0.67,0.86,1.03,1.18,1.33,1.46,1.58,1.69,1.78,1.86,1.92,1.96,1.99,2,1.997,1.989,1.975,1.955,1.93,1.9,1.87,1.83,1.79,1.75,1.7,1.65,1.6,1.54,1.48,1.42,1.36,1.3,1.23,1.17,1.1,1.03,0.97,0.9,0.83,0.77,0.7,0.64,0.58,0.52,0.46,0.4,0.35,0.3,0.25,0.21,0.17,0.13,0.1,0.07,0.04,0.025,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,-0.001,0,-0.003,-0.004,-0.006,-0.008,-0.01,-0.012,-0.015,-0.017,-0.02,-0.024,-0.027,-0.03,-0.034,-0.038,-0.043,-0.047,-0.052,-0.057,-0.061,-0.067,-0.072,-0.078,-0.084,-0.09,-0.096,-0.102,-0.109,-0.116,-0.122,-0.13,-0.137,-0.144,-0.152,-0.16,-0.168,-0.176,-0.184,-0.192,-0.201,-0.21,-0.219,-0.227,-0.237,-0.246,-0.255,-0.265,-0.275,-0.285,-0.295,-0.305,-0.315,-0.325,-0.336,-0.346,-0.357,-0.368,-0.379,-0.39,-0.401,-0.412,-0.424,-0.435,-0.447,-0.458,-0.47,-0.482,-0.494,-0.506,-0.518,-0.53,-0.543,-0.555,-0.567,-0.58,-0.592,-0.605,-0.618,-0.63,-0.643,-0.656,-0.669,-0.682,-0.695,-0.708,-0.722,-0.735,-0.748,-0.761,-0.775,-0.788,-0.801,-0.815,-0.828,-0.842,-0.855,-0.869,-0.883,-0.896,-0.91,-0.923,-0.937,-0.951,-0.964,-0.978,-0.992,-1.005,-1.019,-1.032,-1.046,-1.06,-1.073,-1.087,-1.101,-1.114,-1.128,-1.141,-1.155,-1.168,-1.182,-1.195,-1.208,-1.222,-1.235,-1.248,-1.262,-1.275,-1.288,-1.301,-1.314,-1.327,-1.34,-1.353,-1.366,-1.378,-1.391,-1.404,-1.416,-1.429,-1.441,-1.453,-1.466,-1.478,-1.49,-1.502,-1.514,-1.526,-1.537,-1.549,-1.561,-1.572,-1.583,-1.595,-1.606,-1.617,-1.628,-1.639,-1.649,-1.66,-1.67,-1.681,-1.691,-1.701,-1.711,-1.721,-1.731,-1.74,-1.749,-1.759,-1.768,-1.777,-1.786,-1.794,-1.803,-1.812,-1.82,-1.828,-1.836,-1.844,-1.851,-1.859,-1.866,-1.873,-1.88,-1.887,-1.894,-1.9,-1.906,-1.912,-1.918,-1.924,-1.929,-1.935,-1.94,-1.945,-1.95,-1.954,-1.958,-1.963,-1.967,-1.97,-1.974,-1.977,-1.98,-1.983,-1.986,-1.988,-1.99,-1.992,-1.994,-1.996,-1.997,-1.998,-2,-2,-2,-2,-1.97,-1.9,-1.78,-1.62,-1.43,-1.2,-0.96,-0.7,-0.42,-0.14,0.14,0.42,0.7,0.96,1.2,1.43,1.62,1.78,1.9,1.97,2,1.97,1.9,1.78,1.62,1.44,1.22,0.99,0.75,0.5,0.25,0.01,-0.22,-0.44,-0.62,-0.78,-0.9,-0.97,-1,-0.996,-0.984,-0.966,-0.94,-0.91,-0.87,-0.83,-0.79,-0.74,-0.69,-0.64,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,1.31,4.14,7.68,11.34,14.69,17.47,19.31,20,17.28,10.48,1.02,-9.24,-18.35,-25,-28.99,-30,-30,-30,-28.8,-25.57,-20.9,-15.36,-9.64,-4.1,0.57,3.8,5,4.67,3.96,3.08,2.16,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.46,1.45,2.69,3.97,5.14,6.11,6.76,7,6.21,4.51,2.39,0.19,-1.82,-3.48,-4.59,-5,-4.83,-4.37,-3.7,-2.91,-2.09,-1.3,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,-2.21,-7.57,-14.12,-20.51,-25.64,-28.9,-30,-28.21,-23.52,-16.74,-9,-0.96,6.54,12.94,17.83,20.91,22,21.1,18.69,14.97,10.29,5.12,-0.5,-6.12,-11.29,-15.97,-19.69,-22.1,-23,-22.26,-20.41,-17.9,-14.96,-11.9,-8.89,-6.04,-3.64,-1.71,-0.46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.14,-0.5,-1.02,-1.62,-2.23,-2.81,-3.3,-3.68,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.87,-3.55,-3.11,-2.6,-2.07,-1.55,-1.05,-0.63,-0.3,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.26,0.38,0.48,0.54,0.56,0.52,0.42,0.26,0.09,-0.09,-0.26,-0.4,-0.51,-0.58,-0.6,-0.58,-0.51,-0.42,-0.3,-0.16,-0.02,0.12,0.26,0.38,0.47,0.54,0.56,0.549,0.52,0.48,0.43,0.38,0.32,0.26,0.2,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.01,0.016,0.022,0.028,0.033,0.037,0.039,0.04,0.039,0.037,0.034,0.03,0.025,0.02,0.015,0.01,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.79,-1.25,-0.47,0.42,1.35,2.22,2.95,3.52,3.87,4,3.88,3.56,3.06,2.44,1.75,1,0.25,-0.44,-1.06,-1.56,-1.88,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.52,-0.71,-0.9,-1.1,-1.29,-1.48,-1.65,-1.79,-1.9,-1.97,-2,-1.99,-1.96,-1.91,-1.85,-1.78,-1.69,-1.59,-1.48,-1.37,-1.25,-1.13,-1,-0.87,-0.75,-0.63,-0.52,-0.41,-0.31,-0.22,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,1.18,4.04,7.53,10.94,13.67,15.41,16,15.45,14.01,11.92,9.54,7.06,4.76,2.79,1.28,0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.38,-1.39,-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-0.03\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.24,-0.52,-0.89,-1.32,-1.81,-2.35,-2.92,-3.5,-4.08,-4.65,-5.19,-5.68,-6.11,-6.48,-6.76,-6.94,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.84,1.44,0.89,0.25,-0.41,-1.07,-1.69,-2.21,-2.63,-2.9,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-0.56,2.56,6.44,10.48,14.16,17.21,19.24,20,19.31,17.51,14.9,11.92,8.83,5.95,3.48,1.6,0.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.37,1.26,2.35,3.42,4.27,4.82,5,4.9,4.63,4.22,3.7,3.12,2.5,1.88,1.3,0.78,0.37,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.62,-1.15,-1.7,-2.2,-2.62,-2.9,-3,-2.24,-0.26,2.61,5.88,9.29,12.46,15.17,17.24,18.54,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18.83,18.35,17.6,16.61,15.45,14.13,12.7,11.22,9.69,8.17,6.7,5.32,4.03,2.89,1.89,1.09,0.5,0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=-0.5\r\r\nPARAM_BROW_R_Y=-0.52\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0.48\r\r\nPARAM_BROW_R_FORM=0.5\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.26,0.55,0.95,1.43,1.99,2.59,3.25,3.94,4.65,5.35,6.06,6.75,7.41,8.01,8.57,9.05,9.45,9.74,9.93,10,10,10,10,10,10,10,10,10,10,10,10,9.91,9.67,9.3,8.81,8.25,7.6,6.92,6.21,5.47,4.72,4,3.29,2.61,2,1.43,0.95,0.55,0.26,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.34,1.27,2.6,4.18,5.82,7.4,8.73,9.66,10,9.48,8.1,6.1,3.73,1.27,-1.1,-3.1,-4.48,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.96,-4.83,-4.63,-4.37,-4.07,-3.72,-3.34,-2.95,-2.55,-2.15,-1.76,-1.4,-1.06,-0.76,-0.5,-0.29,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=-10\r\r\nPARAM_ARM_R=-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,9.68,6.38,1.9,-3.34,-8.78,-14.15,-19.23,-23.5,-26.95,-29.18,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-28.97,-26.2,-22.2,-17.45,-12.55,-7.8,-3.8,-1.03,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.997,0.99,0.98,0.969,0.957,0.945,0.934,0.924,0.917,0.912,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.911,0.914,0.919,0.926,0.933,0.941,0.95,0.958,0.966,0.974,0.982,0.988,0.993,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.997,0.99,0.98,0.969,0.957,0.945,0.934,0.924,0.917,0.912,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.911,0.914,0.919,0.926,0.933,0.941,0.95,0.958,0.966,0.974,0.982,0.988,0.993,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,-0.002,-0.005,-0.008,-0.011,-0.014,-0.017,-0.018,-0.02,-0.02,-0.019,-0.018,-0.016,-0.013,-0.01,-0.008,-0.005,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.014,-0.05,-0.11,-0.17,-0.23,-0.3,-0.35,-0.39,-0.41,-0.42,-0.37,-0.26,-0.1,0.08,0.27,0.45,0.63,0.77,0.89,0.97,1,1,1,1,1,1,1,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.12,-0.16,-0.2,-0.24,-0.28,-0.31,-0.323,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.326,-0.314,-0.296,-0.27,-0.25,-0.22,-0.18,-0.15,-0.12,-0.09,-0.07,-0.04,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.07,-0.11,-0.15,-0.19,-0.23,-0.26,-0.29,-0.304,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.306,-0.295,-0.278,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.06,-0.04,-0.024,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.18,-0.23,-0.28,-0.33,-0.38,-0.43,-0.48,-0.53,-0.57,-0.61,-0.64,-0.67,-0.69,-0.705,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71\r\r\nPARAM_BROW_R_X=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.15,-0.19,-0.24,-0.29,-0.34,-0.39,-0.44,-0.49,-0.54,-0.58,-0.63,-0.66,-0.69,-0.71,-0.725,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,4,4,4,3.08,1.1,-1.37,-3.94,-6.29,-8.23,-9.52,-10,-10,-10,-10,-10,-10,-10,-10,-9.988,-9.92,-9.76,-9.49,-9.1,-8.6,-8,-5.43,-2.34,0.37,2.27,3,2.8,2.38,1.85,1.3,0.8,0.38,0.1,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=20\r\r\nPARAM_ARM_R=20\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.9,-3.16,-6.21,-9.79,-13.51,-17.17,-20.64,-23.56,-25.92,-27.44,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-27.86,-27.45,-26.8,-25.92,-24.87,-23.63,-22.23,-20.75,-19.14,-17.45,-15.76,-14,-12.24,-10.55,-8.86,-7.25,-5.77,-4.38,-3.13,-2.08,-1.2,-0.55,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.06,-0.21,-0.47,-0.82,-1.23,-1.72,-2.27,-2.85,-3.48,-4.14,-4.81,-5.5,-6.19,-6.86,-7.52,-8.15,-8.73,-9.28,-9.77,-10.18,-10.53,-10.79,-10.94,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.96,-10.83,-10.62,-10.34,-10,-9.61,-9.17,-8.67,-8.15,-7.59,-7.01,-6.41,-5.81,-5.19,-4.59,-3.99,-3.41,-2.85,-2.33,-1.83,-1.39,-1,-0.66,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=1\r\r\nPARAM_BROW_R_ANGLE=1\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.08,0.29,0.62,1.02,1.47,1.94,2.41,2.84,3.23,3.55,3.8,3.95,4,3.61,2.65,1.34,-0.2,-1.79,-3.36,-4.85,-6.1,-7.11,-7.76,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.86,-7.49,-6.93,-6.22,-5.41,-4.52,-3.57,-2.63,-1.66,-0.75,0.11,0.91,1.61,2.18,2.62,2.9,3,2.9,2.63,2.24,1.79,1.32,0.89,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0.96,3.28,6.12,8.89,11.11,12.52,13,12.56,11.49,10.18,8.9,7.87,7.22,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7\r\r\nPARAM_ANGLE_Y=0,1.03,3.74,7.65,12.12,16.75,21.08,24.77,27.6,29.37,30,26.47,17.89,7.41,-2.81,-11.02,-16.23,-18,-16.68,-13.46,-9.53,-5.7,-2.62,-0.66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=17,15.49,12.23,8.17,3.95,0.1,-3.09,-5.21,-6,-5.62,-4.6,-3.03,-1.06,1.13,3.5,5.87,8.06,10.03,11.6,12.62,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13\r\r\nPARAM_EYE_L_OPEN=1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_BALL_X=0,-0.005,-0.018,-0.036,-0.06,-0.08,-0.1,-0.122,-0.135,-0.14,-0.127,-0.09,-0.05,0.01,0.06,0.12,0.17,0.21,0.25,0.27,0.28,0.14,-0.1,-0.26,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31\r\r\nPARAM_EYE_BALL_Y=-1,-1,-1,-1,-0.997,-0.991,-0.982,-0.967,-0.947,-0.92,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.41,-0.32,-0.24,-0.16,-0.08,0.02,0.09,0.12,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13\r\r\nPARAM_BROW_L_Y=1,1,1,1,1,1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=1,1,1,1,1,1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28\r\r\nPARAM_BROW_R_ANGLE=0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.311,0.313,0.315,0.318,0.32,0.322,0.325,0.327,0.329,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33\r\r\nPARAM_BROW_L_FORM=1,1,1,1,1,1,1,1,1,0.96,0.87,0.71,0.52,0.31,0.08,-0.14,-0.35,-0.54,-0.7,-0.79,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83,-0.83\r\r\nPARAM_BROW_R_FORM=1,1,1,1,1,1,1,1,1,0.96,0.86,0.71,0.52,0.3,0.07,-0.16,-0.38,-0.57,-0.72,-0.82,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86\r\r\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.83,-0.75,-0.67,-0.58,-0.5,-0.43,-0.38,-0.34,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,0.26,0.83,1.54,2.27,2.94,3.49,3.86,4,3.92,3.71,3.38,2.96,2.5,2,1.5,1.04,0.63,0.29,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.33,-1.04,-1.92,-2.84,-3.67,-4.37,-4.83,-5,-4.96,-4.86,-4.71,-4.51,-4.29,-4.05,-3.79,-3.54,-3.27,-3.02,-2.79,-2.57,-2.38,-2.22,-2.1,-2.03,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BODY_ANGLE_Y=0,0.66,2.07,3.84,5.67,7.35,8.73,9.66,10,9.15,7.31,5.01,2.63,0.45,-1.35,-2.55,-3,-2.77,-2.23,-1.5,-0.77,-0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0,0,0,0,0,0,0,0,0,0,-0.13,-0.48,-1.04,-1.75,-2.6,-3.53,-4.5,-5.5,-6.47,-7.4,-8.25,-8.96,-9.52,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_R=0,0,0,0,0,0,0,0,0,0,-0.13,-0.48,-1.04,-1.75,-2.6,-3.53,-4.5,-5.5,-6.47,-7.4,-8.25,-8.96,-9.52,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0.16,0.59,1.25,2.08,3,4,5,5.92,6.75,7.41,7.84,8,7.7,6.9,5.69,4.18,2.5,0.72,-1.03,-2.66,-4.11,-5.32,-6.24,-6.8,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_ANGLE_Y=0,0,0,0,0.6,2.21,4.69,7.8,11.26,15,18.74,22.2,25.31,27.79,29.4,30,28.8,25.59,20.76,14.7,8,0.88,-6.11,-12.65,-18.43,-23.29,-26.94,-29.22,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_ANGLE_Z=0,0,0,0,0.18,0.66,1.41,2.34,3.38,4.5,5.62,6.66,7.59,8.34,8.82,9,8.36,6.65,4.07,0.84,-2.73,-6.53,-10.26,-13.74,-16.83,-19.42,-21.37,-22.58,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,0.998,0.99,0.975,0.95,0.92,0.87,0.82,0.75,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_L_SMILE=1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,0.998,0.99,0.975,0.95,0.92,0.87,0.82,0.75,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_R_SMILE=1,1,1,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_Y=-1\r\r\nPARAM_BROW_L_Y=0,0,0,0,-0.006,-0.023,-0.05,-0.08,-0.12,-0.16,-0.19,-0.23,-0.26,-0.29,-0.304,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31\r\r\nPARAM_BROW_R_Y=0,0,0,0,-0.007,-0.026,-0.06,-0.09,-0.14,-0.18,-0.22,-0.27,-0.3,-0.33,-0.353,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0.012,0.04,0.1,0.16,0.23,0.31,0.38,0.45,0.51,0.57,0.6,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61,0.61\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0.012,0.05,0.1,0.16,0.23,0.31,0.39,0.46,0.52,0.57,0.61,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_BROW_L_FORM=0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.997,-0.988,-0.974,-0.955,-0.93,-0.91,-0.88,-0.85,-0.82,-0.79,-0.75,-0.72,-0.69,-0.66,-0.63,-0.61,-0.59,-0.566,-0.551,-0.539,-0.532,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0.06,0.22,0.47,0.78,1.13,1.5,1.87,2.22,2.53,2.78,2.94,3,2.92,2.71,2.38,1.98,1.53,1.06,0.59,0.16,-0.23,-0.55,-0.8,-0.95,-1,-0.97,-0.87,-0.74,-0.58,-0.42,-0.26,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0.08,0.29,0.63,1.04,1.5,2,2.5,2.96,3.38,3.71,3.92,4,3.8,3.26,2.46,1.45,0.33,-0.85,-2.02,-3.11,-4.07,-4.88,-5.49,-5.87,-6,-5.85,-5.5,-5.06,-4.63,-4.29,-4.07,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.74,-1.54,-2.55,-3.67,-4.85,-6.02,-7.11,-8.07,-8.88,-9.49,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.74,-1.54,-2.55,-3.67,-4.85,-6.02,-7.11,-8.07,-8.88,-9.49,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_sp_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,-0.005,-0.012,-0.009,0.02,0.07,0.17,0.31,0.49,0.72,1,1.69,2.76,4.03,5.42,6.81,8.16,9.41,10.45,11.27,11.81,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11.993,11.94,11.79,11.52,11.13,10.62,10,8.64,6.65,4.35,2.19,0.63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.86,3.12,6.37,10.1,13.96,17.57,20.65,23,24.48,25,23.62,20.15,15.46,9.96,4.26,-1.38,-6.7,-11.19,-14.8,-17.14,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-15.28,-8.66,-0.58,7.29,13.62,17.64,19,16.9,11.79,5,-1.79,-6.9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0.48,1.69,3.33,5.25,7.24,9.2,11.06,12.62,13.88,14.7,15,15.005,15.014,15.015,15,14.96,14.89,14.77,14.61,14.4,14.14,13.81,13.44,13,11.65,9.03,5.4,1,-3.76,-8.76,-13.62,-18.13,-22.11,-25.43,-27.92,-29.47,-30,-29.9,-29.62,-29.22,-28.75,-28.25,-27.78,-27.38,-27.1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27\r\r\nPARAM_EYE_L_OPEN=1\r\r\nPARAM_EYE_L_SMILE=0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,-0.002,-0.009,-0.02,-0.034,-0.052,-0.072,-0.09,-0.12,-0.14,-0.17,-0.19,-0.22,-0.24,-0.27,-0.29,-0.308,-0.326,-0.34,-0.351,-0.358,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.36,-0.353,-0.334,-0.3,-0.27,-0.23,-0.19,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.18,0.21,0.25,0.29,0.33,0.36,0.4,0.43,0.46,0.49,0.51,0.526,0.536,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.529,0.5,0.46,0.4,0.34,0.28,0.21,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.74,-1.54,-2.55,-3.67,-4.85,-6.02,-7.11,-8.07,-8.88,-9.49,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Z=0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.88,-1.56,-1.06,-0.44,0.25,1,1.75,2.44,3.06,3.56,3.88,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.72,2.97,1.84,0.43,-1.13,-2.79,-4.43,-5.95,-7.3,-8.43,-9.29,-9.82,-10,-9.93,-9.79,-9.62,-9.43,-9.27,-9.13,-9.03,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_Y=0,0.46,1.45,2.69,3.97,5.14,6.11,6.76,7,6.8,6.26,5.46,4.45,3.33,2.15,0.98,-0.11,-1.07,-1.88,-2.49,-2.87,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.11,-0.68,0.66,1.62,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0,0.13,0.51,1.1,1.9,2.87,3.98,5.18,6.49,7.88,9.3,10.7,12.12,13.51,14.82,16.02,17.13,18.1,18.9,19.49,19.87,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20\r\r\nPARAM_ARM_R=0,-0.07,-0.26,-0.55,-0.95,-1.43,-1.99,-2.59,-3.25,-3.94,-4.65,-5.35,-6.06,-6.75,-7.41,-8.01,-8.57,-9.05,-9.45,-9.74,-9.93,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_sp_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.94,2.76,2.48,2.13,1.72,1.27,0.8,0.32,-0.14,-0.58,-0.98,-1.33,-1.61,-1.82,-1.96,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_ANGLE_Y=15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14.61,13.5,11.8,9.6,7.06,4.24,1.36,-1.59,-4.46,-7.2,-9.65,-11.82,-13.59,-14.9,-15.72,-16,-15.7,-14.97,-14,-13.03,-12.3,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12\r\r\nPARAM_ANGLE_Z=11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11.07,11.25,11.47,11.68,11.85,11.96,12,10.55,6.68,1.07,-5.57,-12.43,-19.07,-24.68,-28.55,-30,-29.11,-27.68,-26.34,-25.38,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25\r\r\nPARAM_EYE_L_OPEN=1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.27,0.7,1.1,1.39,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.27,0.7,1.1,1.39,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.27,0.7,1.1,1.39,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.14,0.54,0.13,0,0,0,0.27,0.7,1.1,1.39,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.25,-0.244,-0.229,-0.2,-0.17,-0.14,-0.1,-0.06,-0.01,0.03,0.07,0.1,0.13,0.16,0.174,0.186,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19\r\r\nPARAM_EYE_BALL_Y=-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.322,-0.3,-0.26,-0.22,-0.16,-0.1,-0.04,0.02,0.08,0.14,0.19,0.24,0.28,0.31,0.324,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33\r\r\nPARAM_BROW_L_Y=0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53\r\r\nPARAM_BROW_R_Y=0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28\r\r\nPARAM_BROW_R_ANGLE=0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=-1\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.51,-0.69,-0.88,-1.07,-1.26,-1.43,-1.59,-1.73,-1.84,-1.93,-1.98,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.37,1.26,2.35,3.42,4.27,4.82,5,4.72,3.99,2.92,1.65,0.35,-0.92,-1.99,-2.72,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_sp_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.92,-2.9,-5.37,-7.94,-10.29,-12.23,-13.52,-14,-12.73,-9.31,-4.38,1.48,7.52,13.38,18.31,21.73,23,21.71,18.49,14.12,9.01,3.7,-1.53,-6.49,-10.66,-14.03,-16.2,-17,-16.79,-16.18,-15.23,-14.02,-12.58,-11.01,-9.35,-7.65,-5.99,-4.42,-2.98,-1.77,-0.82,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,1.97,6.22,11.51,17.02,22.04,26.2,28.97,30,30,30,30,30,30,30,30,29.02,26.89,24.24,21.49,18.98,16.9,15.52,15,15.006,15.03,15.07,15.14,15.23,15.36,15.53,15.74,16,16.33,16.63,16.9,17.15,17.36,17.55,17.71,17.83,17.92,17.98,18,17.64,16.68,15.23,13.41,11.4,9.26,7.17,5.21,3.47,2.01,0.92,0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.52,-1.66,-3.07,-4.54,-5.88,-6.99,-7.72,-8,-7.48,-6.1,-4.1,-1.73,0.73,3.1,5.1,6.48,7,6.61,5.65,4.34,2.8,1.21,-0.36,-1.85,-3.1,-4.11,-4.76,-5,-4.81,-4.3,-3.52,-2.54,-1.45,-0.26,0.92,2.05,3.05,3.83,4.02,4.02,4.003,4.002,4.001,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0.53,0.523,0.504,0.47,0.44,0.39,0.34,0.29,0.24,0.19,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0.42,0.415,0.4,0.38,0.35,0.31,0.27,0.23,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.28,0.282,0.289,0.3,0.313,0.329,0.347,0.366,0.384,0.403,0.421,0.437,0.45,0.461,0.468,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47\r\r\nPARAM_BROW_R_ANGLE=0.22,0.223,0.23,0.241,0.255,0.272,0.291,0.31,0.33,0.349,0.368,0.385,0.399,0.41,0.417,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42\r\r\nPARAM_BROW_L_FORM=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=2\r\r\nPARAM_SWEAT_TEAR=1\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.15,-0.52,-1,-1.48,-1.85,-2,-1.9,-1.63,-1.24,-0.79,-0.32,0.11,0.48,0.76,0.94,1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-0.987,-0.95,-0.9,-0.82,-0.74,-0.65,-0.55,-0.45,-0.35,-0.26,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.26,-0.5,-0.74,-0.92,-1,-0.93,-0.75,-0.49,-0.19,0.12,0.41,0.65,0.84,0.96,1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-0.97,-0.9,-0.79,-0.65,-0.48,-0.29,-0.1,0.1,0.29,0.48,0.65,0.79,0.9,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0,0.1,0.38,0.78,1.25,1.75,2.22,2.62,2.9,3,2.48,1.34,-0.07,-1.54,-2.88,-3.99,-4.72,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,3.08,1.1,-1.37,-3.94,-6.29,-8.23,-9.52,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_R=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,3.08,1.1,-1.37,-3.94,-6.29,-8.23,-9.52,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_sp_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0.36,1.32,2.77,4.59,6.6,8.74,10.83,12.79,14.53,15.99,17.08,17.77,18,16.84,13.94,10.01,5.41,0.63,-4.08,-8.54,-12.3,-15.32,-17.28,-18,-17.97,-17.88,-17.75,-17.6,-17.44,-17.3,-17.17,-17.08,-17.02,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0.15,0.58,1.27,2.22,3.38,4.77,6.32,8.01,9.82,11.76,13.78,15.87,18,20.69,21.95,22.61,22.92,23,19.52,12.02,2.66,-7.06,-15.94,-23.29,-28.18,-30,-29.61,-28.76,-27.7,-26.6,-25.59,-24.76,-24.21,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0.48,1.76,3.7,6.12,8.8,11.65,14.45,17.06,19.37,21.32,22.78,23.69,24,23.26,21.28,18.3,14.57,10.43,6.04,1.73,-2.3,-5.87,-8.86,-11.11,-12.52,-13,-12.74,-12.17,-11.46,-10.73,-10.06,-9.51,-9.14,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.99,0.986,0.982,0.977,0.971,0.964,0.957,0.948,0.94,0.93,0.92,0.67,0.24,0,0,0,0.16,0.43,0.67,0.85,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.99,0.986,0.982,0.977,0.971,0.964,0.957,0.948,0.94,0.93,0.92,0.67,0.24,0,0,0,0.16,0.43,0.67,0.85,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92,0.92\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,-0.04,-0.13,-0.23,-0.35,-0.45,-0.53,-0.59,-0.61,-0.59,-0.52,-0.43,-0.31,-0.17,-0.03,0.12,0.26,0.38,0.47,0.54,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.1,-0.12,-0.15,-0.164,-0.17,-0.159,-0.13,-0.08,-0.03,0.04,0.11,0.17,0.24,0.29,0.34,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=-0.58\r\r\nPARAM_BROW_R_X=-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61\r\r\nPARAM_BROW_L_ANGLE=-1\r\r\nPARAM_BROW_R_ANGLE=-1\r\r\nPARAM_BROW_L_FORM=-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53,-0.53\r\r\nPARAM_BROW_R_FORM=-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56,-0.56\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0.48,1.28,1.82,2,1.85,1.45,0.87,0.15,-0.64,-1.47,-2.32,-3.13,-3.9,-4.59,-5.16,-5.61,-5.9,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.89,0.59,0.15,-0.38,-0.98,-1.61,-2.24,-2.85,-3.42,-3.94,-4.37,-4.71,-4.92,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,1.21,3.19,4.56,5,4.87,4.52,4.01,3.39,2.69,1.96,1.22,0.51,-0.16,-0.76,-1.26,-1.66,-1.91,-2,-1.93,-1.75,-1.48,-1.16,-0.84,-0.52,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=20\r\r\nPARAM_ARM_R=20\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_m_sp_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,1.45,3.13,5.26,7.8,10.58,13.51,16.49,19.42,22.2,24.74,26.87,28.55,29.62,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.987,-0.95,-0.9,-0.82,-0.74,-0.65,-0.55,-0.45,-0.35,-0.26,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0.15,0.58,1.25,2.1,3.12,4.23,5.4,6.6,7.77,8.88,9.9,10.75,11.42,11.85,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12\r\r\nPARAM_EYE_L_OPEN=0.75\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.75\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=1,1,1,1,1,0.997,0.988,0.975,0.957,0.94,0.91,0.89,0.86,0.83,0.8,0.77,0.74,0.71,0.68,0.65,0.63,0.6,0.583,0.565,0.55,0.539,0.532,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.53\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0.53\r\r\nPARAM_BROW_R_Y=0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64,-0.64\r\r\nPARAM_BROW_R_FORM=-0.56\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=-2\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.09,0.34,0.74,1.27,1.88,2.59,3.36,4.17,5,5.83,6.64,7.41,8.12,8.73,9.26,9.66,9.91,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_ARM_L=0,0,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.27,-1.88,-2.59,-3.36,-4.17,-5,-5.83,-6.64,-7.41,-8.12,-8.73,-9.26,-9.66,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_ARM_R=0,0,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.27,-1.88,-2.59,-3.36,-4.17,-5,-5.83,-6.64,-7.41,-8.12,-8.73,-9.26,-9.66,-9.91,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/motions/Epsilon2.1_shake_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\nPARAM_ANGLE_X=0,-5.36,-13.95,-21.96,-27.75,-30,-29.47,-28.1,-26,-23.23,-19.87,-15.86,-11.28,-6,0.04,5.47,10.25,14.36,17.72,20.43,22.4,23.6,24,23.48,22.02,19.73,16.81,13.33,9.54,5.54,1.46,-2.54,-6.33,-9.81,-12.73,-15.02,-16.48,-17,-16.68,-15.83,-14.6,-13.08,-11.39,-9.62,-7.83,-6.09,-4.47,-3,-1.79,-0.83,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,28.16,24.18,19.18,13.96,9.15,5.08,2.27,1,0.67,0.44,0.28,0.14,0.02,-0.13,-0.33,-0.61,-1,-1.62,-2.54,-3.74,-5.15,-6.77,-8.51,-10.35,-12.25,-14.18,-16.08,-17.96,-19.71,-21.35,-22.78,-24,-25.18,-26.15,-26.96,-27.65,-28.22,-28.68,-29.05,-29.35,-29.57,-29.75,-29.87,-29.94,-29.99,-30,-29.43,-27.94,-25.77,-23.08,-20.09,-16.97,-13.81,-10.75,-7.88,-5.29,-3.15,-1.47,-0.38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.6,-2.21,-4.62,-7.65,-11,-14.56,-18.06,-21.32,-24.22,-26.65,-28.47,-29.61,-30,-28.8,-25.59,-20.63,-14.39,-7.49,0,7.49,14.39,20.63,25.59,28.8,30,29,26.32,22.3,17.25,11.67,5.73,-0.1,-5.54,-10.36,-14.41,-17.45,-19.35,-20,-19.36,-17.65,-15.07,-11.84,-8.27,-4.47,-0.74,2.74,5.83,8.42,10.37,11.58,12,11.77,11.18,10.31,9.23,8.04,6.79,5.53,4.3,3.15,2.12,1.26,0.59,0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=-0.87,-0.853,-0.81,-0.73,-0.64,-0.52,-0.39,-0.25,-0.1,0.05,0.2,0.34,0.48,0.6,0.72,0.81,0.89,0.95,0.99,1,0.97,0.89,0.77,0.61,0.44,0.26,0.09,-0.08,-0.23,-0.35,-0.44,-0.5,-0.52,-0.508,-0.47,-0.42,-0.35,-0.27,-0.18,-0.07,0.03,0.14,0.26,0.36,0.47,0.56,0.64,0.71,0.76,0.8,0.81,0.78,0.71,0.6,0.47,0.34,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0.38,0.384,0.394,0.41,0.43,0.46,0.49,0.52,0.55,0.58,0.61,0.65,0.68,0.7,0.73,0.75,0.766,0.779,0.787,0.79,0.76,0.69,0.59,0.45,0.3,0.14,-0.01,-0.16,-0.28,-0.39,-0.47,-0.52,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.521,-0.47,-0.4,-0.31,-0.23,-0.14,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0.63\r\r\nPARAM_BROW_R_Y=0.65\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.25\r\r\nPARAM_BROW_R_ANGLE=0.25\r\r\nPARAM_BROW_L_FORM=-0.52\r\r\nPARAM_BROW_R_FORM=-0.52\r\r\nPARAM_MOUTH_FORM=-0.31\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=1\r\r\nPARAM_SWEAT_TEAR=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.66,-2.07,-3.84,-5.67,-7.35,-8.73,-9.66,-10,-9.75,-9.04,-7.92,-6.49,-4.8,-2.95,-0.99,0.99,2.95,4.8,6.49,7.92,9.04,9.75,10,9.81,9.28,8.44,7.37,6.1,4.71,3.25,1.75,0.29,-1.1,-2.37,-3.44,-4.28,-4.81,-5,-4.87,-4.52,-4.01,-3.39,-2.69,-1.96,-1.22,-0.51,0.16,0.76,1.26,1.66,1.91,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.66,-2.07,-3.84,-5.67,-7.35,-8.73,-9.66,-10,-9.75,-9.04,-7.92,-6.49,-4.8,-2.95,-0.99,0.99,2.95,4.8,6.49,7.92,9.04,9.75,10,9.79,9.18,8.23,7.02,5.58,4.01,2.35,0.65,-1.01,-2.58,-4.02,-5.23,-6.18,-6.79,-7,-6.83,-6.38,-5.73,-4.92,-4.03,-3.09,-2.14,-1.22,-0.36,0.41,1.05,1.56,1.89,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,1.29,2.5,3.71,4.62,5,4.83,4.37,3.7,2.91,2.09,1.3,0.63,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/physics.json",
    "content": "{\n    \"type\": \"Live2D Physics\",\n    \"physics_hair\": [\n    {\n        \"label\": \"hair_front\",\n        \"setup\":\n        {\n            \"length\": 0.15,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.015,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 2.4,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_FRONT\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.022,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"label\": \"hair_side\",\n        \"setup\":\n        {\n            \"length\": 0.35,\n            \"regist\": 0.6,\n            \"mass\": 0.22\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.015,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 2.4,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_SIDE\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.022,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"label\": \"hair_back\",\n        \"setup\":\n        {\n            \"length\": 0.2,\n            \"regist\": 0.7,\n            \"mass\": 0.25\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.012,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 2,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_BACK\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.022,\n            \"weight\": 1\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/epsilon/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f01.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f02.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_MOUTH_FORM\",\"val\":0,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f03.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f04.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_FORM\",\"val\":1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.5,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f05.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_L_SMILE\",\"val\":1},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_SMILE\",\"val\":1},{\"id\":\"PARAM_BROW_L_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.2},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.2}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f06.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":2,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":2,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_BALL_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_L_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.21,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f07.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_FORM\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.25},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.25},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.47},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.43},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":0.5,\"def\":1},{\"id\":\"PARAM_TERE\",\"val\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/expressions/f08.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.8,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.8,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/index.json",
    "content": "{\n    \"type\": \"Live2D Model Setting\",\n    \"name\": \"haru\",\n    \"model\": \"model.moc\",\n    \"textures\": [\n        \"texture_00.png\",\n        \"texture_01.png\",\n        \"texture_02.png\"\n     ],\n    \"physics\": \"physics.json\",\n    \"pose\": \"pose.json\",\n    \"expressions\": [\n    {\n        \"name\": \"f01\",\n        \"file\": \"expressions/f01.exp.json\"\n    },\n    {\n        \"name\": \"f02\",\n        \"file\": \"expressions/f02.exp.json\"\n    },\n    {\n        \"name\": \"f03\",\n        \"file\": \"expressions/f03.exp.json\"\n    },\n    {\n        \"name\": \"f04\",\n        \"file\": \"expressions/f04.exp.json\"\n    },\n    {\n        \"name\": \"f05\",\n        \"file\": \"expressions/f05.exp.json\"\n    },\n    {\n        \"name\": \"f06\",\n        \"file\": \"expressions/f06.exp.json\"\n    },\n    {\n        \"name\": \"f07\",\n        \"file\": \"expressions/f07.exp.json\"\n    },\n    {\n        \"name\": \"f08\",\n        \"file\": \"expressions/f08.exp.json\"\n    }],\n    \"layout\":\n    {\n        \"center_x\": 0,\n        \"center_y\": -0.05,\n        \"width\": 1.8\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.35, 0.6],\n        \"head_y\":[0.19, -0.2],\n        \"body_x\":[-0.3, -0.25],\n        \"body_y\":[0.3, -0.9]\n    },\n    \"hit_areas\": [\n        {\n            \"name\": \"head\",\n            \"id\": \"D_REF.HEAD\"\n        },\n        {\n            \"name\": \"body\",\n            \"id\": \"D_REF.BODY\"\n        }\n    ],\n    \"motions\":\n    {\n        \"idle\": [\n        {\n            \"file\": \"motions/idle_00.mtn\"\n        },\n        {\n            \"file\": \"motions/idle_01.mtn\"\n        },\n        {\n            \"file\": \"motions/idle_02.mtn\"\n        }],\n        \"tap_body\": [\n        {\n            \"file\": \"motions/tapBody_00.mtn\"\n        },\n        {\n            \"file\": \"motions/tapBody_01.mtn\"\n        },\n        {\n            \"file\": \"motions/tapBody_02.mtn\"\n        }],\n        \"pinch_in\": [\n        {\n            \"file\": \"motions/pinchIn_00.mtn\"\n        }],\n        \"pinch_out\": [\n        {\n            \"file\": \"motions/pinchOut_00.mtn\"\n        }],\n        \"shake\": [\n        {\n            \"file\": \"motions/shake_00.mtn\"\n        }],\n        \"flick_head\": [\n        {\n            \"file\": \"motions/flickHead_00.mtn\"\n        }]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/flickHead_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=14,13.79,13.18,12.23,10.96,9.42,7.64,5.72,3.61,1.4,-0.88,-3.12,-5.4,-7.61,-9.72,-11.64,-13.42,-14.96,-16.23,-17.18,-17.79,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_BODY_ANGLE_X=3\r\r\nPARAM_BODY_ANGLE_Y=0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=1,0.94,0.76,0.48,0.12,-0.3,-0.76,-1.25,-1.75,-2.24,-2.7,-3.12,-3.48,-3.76,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=8\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.4,0.79,0.796,0.8,0.7,0.61,0.51,0.42,0.55,0.67,0.55,0.42,0.52,0.61,0.51,0.4,0.396,0.392,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=1\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/idle_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,0.005,0.021,0.05,0.08,0.12,0.18,0.24,0.31,0.39,0.48,0.57,0.68,0.79,0.91,1.03,1.17,1.31,1.46,1.62,1.78,1.95,2.13,2.31,2.5,2.7,2.9,3.11,3.32,3.54,3.77,4,4.24,4.49,4.74,5,5.27,5.54,5.8,6.06,6.3,6.54,6.77,6.99,7.21,7.42,7.62,7.82,8.01,8.19,8.37,8.54,8.7,8.86,9.01,9.15,9.3,9.43,9.56,9.68,9.79,9.9,10.01,10.11,10.2,10.29,10.37,10.45,10.52,10.59,10.65,10.71,10.76,10.81,10.85,10.88,10.91,10.94,10.96,10.979,10.991,10.998,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.95,10.82,10.61,10.33,9.99,9.59,9.14,8.64,8.12,7.54,6.95,6.34,5.71,5.06,4.41,3.75,3.11,2.47,1.85,1.24,0.65,0.09,-0.43,-0.93,-1.37,-1.78,-2.13,-2.43,-2.67,-2.85,-2.96,-3,-3,-3,-3,-3,-3,-3,-2.94,-2.76,-2.49,-2.12,-1.69,-1.21,-0.68,-0.13,0.43,0.99,1.53,2.04,2.52,2.94,3.3,3.6,3.82,3.95,4,3.96,3.86,3.71,3.5,3.25,2.96,2.64,2.29,1.93,1.54,1.15,0.75,0.35,-0.05,-0.43,-0.81,-1.17,-1.51,-1.83,-2.11,-2.37,-2.58,-2.76,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.98,-2.91,-2.79,-2.64,-2.46,-2.25,-2,-1.74,-1.45,-1.16,-0.84,-0.52,-0.2,0.12,0.44,0.76,1.07,1.36,1.64,1.9,2.14,2.35,2.54,2.7,2.83,2.92,2.98,3,2.993,2.973,2.94,2.9,2.84,2.78,2.7,2.62,2.53,2.44,2.33,2.23,2.11,2,1.88,1.76,1.64,1.52,1.39,1.27,1.15,1.03,0.92,0.81,0.7,0.6,0.51,0.42,0.34,0.26,0.2,0.14,0.09,0.05,0.02,0.006,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.003,0.014,0.032,0.06,0.09,0.13,0.18,0.24,0.31,0.38,0.46,0.56,0.66,0.78,0.9,1.03,1.18,1.33,1.5,1.68,1.87,2.07,2.28,2.51,2.75,3,3.28,3.55,3.82,4.09,4.34,4.6,4.85,5.09,5.33,5.56,5.78,6,6.22,6.43,6.64,6.83,7.02,7.21,7.4,7.57,7.74,7.91,8.07,8.22,8.37,8.51,8.64,8.77,8.89,9.01,9.12,9.23,9.32,9.41,9.5,9.58,9.65,9.72,9.77,9.83,9.87,9.91,9.94,9.97,9.986,9.996,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.984,9.94,9.86,9.76,9.64,9.5,9.33,9.16,8.97,8.77,8.56,8.35,8.13,7.92,7.71,7.5,7.29,7.09,6.91,6.73,6.57,6.43,6.31,6.2,6.11,6.05,6.01,6,6,6,6,6,6,6,6,6,6,5.987,5.95,5.89,5.8,5.7,5.58,5.45,5.31,5.15,4.99,4.83,4.66,4.49,4.33,4.16,4,3.81,3.64,3.47,3.32,3.18,3.05,2.93,2.82,2.72,2.62,2.54,2.46,2.39,2.33,2.27,2.22,2.17,2.13,2.1,2.07,2.05,2.031,2.017,2.008,2.002,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.009,2.03,2.07,2.13,2.19,2.26,2.34,2.42,2.5,2.58,2.66,2.74,2.81,2.87,2.93,2.97,2.99,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.22,2.13,2.03,1.92,1.82,1.71,1.61,1.5,1.39,1.29,1.18,1.08,0.97,0.87,0.78,0.68,0.59,0.51,0.43,0.35,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.06,-0.11,-0.17,-0.23,-0.3,-0.38,-0.47,-0.56,-0.65,-0.75,-0.85,-0.95,-1.05,-1.16,-1.26,-1.36,-1.45,-1.55,-1.64,-1.72,-1.8,-1.87,-1.94,-2,-2.06,-2.12,-2.17,-2.22,-2.27,-2.32,-2.36,-2.4,-2.44,-2.48,-2.52,-2.55,-2.59,-2.62,-2.65,-2.68,-2.7,-2.73,-2.75,-2.78,-2.8,-2.816,-2.835,-2.851,-2.867,-2.882,-2.896,-2.908,-2.92,-2.93,-2.94,-2.949,-2.957,-2.964,-2.97,-2.975,-2.98,-2.985,-2.988,-2.991,-2.994,-2.996,-2.997,-2.999,-2.999,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.67,-2.58,-2.48,-2.39,-2.28,-2.17,-2.07,-1.96,-1.85,-1.75,-1.64,-1.55,-1.45,-1.37,-1.29,-1.22,-1.15,-1.1,-1.06,-1.03,-1.006,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.01,-1.04,-1.09,-1.15,-1.23,-1.33,-1.45,-1.57,-1.71,-1.87,-2.03,-2.21,-2.4,-2.59,-2.79,-3,-3.25,-3.49,-3.71,-3.92,-4.12,-4.31,-4.48,-4.65,-4.8,-4.94,-5.08,-5.2,-5.32,-5.42,-5.51,-5.6,-5.68,-5.75,-5.81,-5.86,-5.9,-5.94,-5.96,-5.984,-5.996,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.72,-5.57,-5.4,-5.22,-5.03,-4.82,-4.61,-4.39,-4.18,-3.97,-3.78,-3.6,-3.43,-3.28,-3.17,-3.08,-3.02,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.996,-2.985,-2.967,-2.94,-2.91,-2.87,-2.83,-2.78,-2.72,-2.66,-2.6,-2.52,-2.45,-2.37,-2.28,-2.19,-2.1,-2,-1.9,-1.81,-1.71,-1.62,-1.54,-1.45,-1.37,-1.29,-1.21,-1.14,-1.06,-0.99,-0.93,-0.86,-0.8,-0.74,-0.68,-0.63,-0.58,-0.53,-0.48,-0.43,-0.39,-0.35,-0.31,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.11,-0.085,-0.067,-0.051,-0.038,-0.026,-0.017,-0.009,-0.004,-0.001,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0,-0,-0.002,-0.004,-0.008,-0.015,-0.024,-0.037,-0.053,-0.073,-0.1,-0.13,-0.16,-0.2,-0.25,-0.3,-0.36,-0.42,-0.5,-0.58,-0.67,-0.77,-0.87,-0.99,-1.12,-1.25,-1.4,-1.56,-1.72,-1.91,-2.1,-2.3,-2.52,-2.75,-3,-3.27,-3.55,-3.83,-4.12,-4.4,-4.69,-4.98,-5.27,-5.57,-5.86,-6.15,-6.45,-6.74,-7.03,-7.32,-7.6,-7.88,-8.16,-8.44,-8.71,-8.98,-9.24,-9.5,-9.74,-9.99,-10.22,-10.46,-10.68,-10.9,-11.11,-11.3,-11.5,-11.68,-11.85,-12.01,-12.16,-12.3,-12.43,-12.54,-12.64,-12.74,-12.82,-12.88,-12.93,-12.97,-12.99,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.84,-12.64,-12.37,-12.04,-11.65,-11.21,-10.73,-10.21,-9.65,-9.06,-8.46,-7.84,-7.21,-6.58,-5.95,-5.33,-4.71,-4.11,-3.54,-2.99,-2.48,-2,-1.56,-1.17,-0.82,-0.54,-0.31,-0.14,-0.04,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.26,-1.87,-2.56,-3.32,-4.1,-4.9,-5.7,-6.47,-7.2,-7.88,-8.48,-9,-9.43,-9.74,-9.93,-10,-9.93,-9.75,-9.46,-9.07,-8.61,-8.07,-7.47,-6.83,-6.15,-5.43,-4.71,-3.97,-3.21,-2.48,-1.77,-1.06,-0.4,0.24,0.82,1.35,1.82,2.23,2.55,2.8,2.95,3,2.983,2.93,2.85,2.74,2.59,2.43,2.23,2.02,1.78,1.53,1.25,0.97,0.66,0.35,0.03,-0.3,-0.64,-0.98,-1.33,-1.67,-2.02,-2.36,-2.7,-3.03,-3.35,-3.66,-3.97,-4.25,-4.53,-4.78,-5.02,-5.23,-5.43,-5.59,-5.74,-5.85,-5.93,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.04,-6.16,-6.34,-6.59,-6.9,-7.26,-7.66,-8.1,-8.58,-9.07,-9.6,-10.13,-10.66,-11.21,-11.74,-12.26,-12.78,-13.27,-13.73,-14.17,-14.57,-14.92,-15.24,-15.5,-15.71,-15.87,-15.97,-16,-15.96,-15.86,-15.68,-15.45,-15.16,-14.82,-14.42,-13.99,-13.51,-12.99,-12.45,-11.87,-11.28,-10.66,-10.03,-9.39,-8.74,-8.08,-7.43,-6.79,-6.14,-5.52,-4.91,-4.32,-3.75,-3.21,-2.71,-2.23,-1.79,-1.39,-1.04,-0.73,-0.48,-0.27,-0.12,-0.03,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.019,0.08,0.17,0.29,0.44,0.63,0.83,1.06,1.31,1.59,1.88,2.18,2.5,2.84,3.18,3.53,3.9,4.27,4.64,5.01,5.39,5.77,6.14,6.52,6.88,7.24,7.6,7.94,8.28,8.6,8.91,9.21,9.49,9.75,10,10.24,10.48,10.71,10.92,11.13,11.32,11.51,11.68,11.85,12.01,12.16,12.3,12.44,12.56,12.68,12.8,12.9,13,13.1,13.18,13.26,13.34,13.41,13.47,13.53,13.59,13.64,13.69,13.73,13.77,13.8,13.83,13.86,13.89,13.91,13.925,13.941,13.955,13.966,13.976,13.983,13.989,13.993,13.997,13.999,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.95,13.82,13.61,13.32,12.96,12.55,12.08,11.55,11,10.39,9.76,9.11,8.45,7.77,7.08,6.41,5.73,5.07,4.43,3.81,3.22,2.67,2.15,1.67,1.25,0.89,0.58,0.33,0.15,0.04,0,0,0,0,0,0,0,0,0.003,0.011,0.02,0.03,0.039,0.043,0.041,0.032,0.013,-0.02,-0.06,-0.12,-0.19,-0.28,-0.38,-0.51,-0.65,-0.82,-1,-1.28,-1.66,-2.11,-2.64,-3.22,-3.86,-4.54,-5.24,-5.97,-6.72,-7.47,-8.23,-8.98,-9.71,-10.42,-11.11,-11.76,-12.37,-12.94,-13.44,-13.89,-14.27,-14.58,-14.81,-14.95,-15,-14.989,-14.95,-14.9,-14.82,-14.73,-14.62,-14.49,-14.35,-14.19,-14.02,-13.84,-13.65,-13.44,-13.24,-13.02,-12.8,-12.57,-12.35,-12.11,-11.89,-11.65,-11.43,-11.2,-10.98,-10.76,-10.56,-10.35,-10.16,-9.98,-9.81,-9.65,-9.51,-9.38,-9.27,-9.18,-9.1,-9.05,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.993,-8.973,-8.94,-8.9,-8.84,-8.77,-8.69,-8.61,-8.51,-8.4,-8.28,-8.16,-8.02,-7.88,-7.74,-7.58,-7.42,-7.25,-7.08,-6.9,-6.72,-6.53,-6.35,-6.15,-5.95,-5.76,-5.55,-5.35,-5.14,-4.94,-4.73,-4.53,-4.32,-4.11,-3.91,-3.7,-3.5,-3.3,-3.1,-2.91,-2.71,-2.52,-2.34,-2.16,-1.98,-1.81,-1.65,-1.49,-1.33,-1.19,-1.05,-0.91,-0.78,-0.67,-0.56,-0.46,-0.36,-0.28,-0.21,-0.15,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.017,0.037,0.06,0.09,0.13,0.17,0.2,0.24,0.29,0.32,0.36,0.39,0.42,0.45,0.47,0.487,0.497,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.497,0.488,0.473,0.455,0.43,0.41,0.38,0.35,0.32,0.29,0.25,0.22,0.19,0.16,0.13,0.1,0.08,0.06,0.037,0.021,0.01,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0,-0.001,-0.003,-0.005,-0.008,-0.011,-0.015,-0.019,-0.024,-0.03,-0.036,-0.042,-0.048,-0.056,-0.063,-0.071,-0.079,-0.087,-0.096,-0.105,-0.114,-0.123,-0.133,-0.143,-0.153,-0.163,-0.173,-0.183,-0.194,-0.204,-0.215,-0.225,-0.236,-0.246,-0.257,-0.267,-0.277,-0.287,-0.297,-0.307,-0.317,-0.326,-0.335,-0.344,-0.353,-0.361,-0.369,-0.377,-0.384,-0.392,-0.398,-0.404,-0.41,-0.416,-0.421,-0.425,-0.429,-0.432,-0.435,-0.437,-0.439,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.437,-0.43,-0.418,-0.402,-0.382,-0.36,-0.33,-0.3,-0.27,-0.24,-0.21,-0.17,-0.14,-0.1,-0.07,-0.03,0,0.04,0.07,0.11,0.14,0.17,0.2,0.22,0.24,0.258,0.273,0.287,0.298,0.308,0.316,0.323,0.328,0.332,0.335,0.338,0.339,0.34,0.34,0.29,0.15,-0.02,-0.19,-0.33,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.379,-0.378,-0.375,-0.371,-0.365,-0.359,-0.351,-0.341,-0.331,-0.319,-0.305,-0.291,-0.274,-0.256,-0.237,-0.216,-0.19,-0.17,-0.14,-0.11,-0.08,-0.05,-0.02,0.06,0.14,0.21,0.26,0.28,0.28,0.277,0.274,0.27,0.265,0.259,0.252,0.245,0.236,0.227,0.218,0.208,0.197,0.187,0.176,0.164,0.153,0.141,0.13,0.119,0.107,0.097,0.086,0.076,0.066,0.056,0.047,0.039,0.031,0.024,0.018,0.013,0.008,0.005,0.002,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.002,0.004,0.007,0.011,0.016,0.022,0.028,0.035,0.043,0.051,0.06,0.069,0.079,0.09,0.101,0.113,0.125,0.137,0.15,0.163,0.177,0.191,0.205,0.219,0.233,0.248,0.263,0.278,0.292,0.308,0.322,0.338,0.352,0.367,0.382,0.397,0.411,0.425,0.439,0.453,0.467,0.48,0.493,0.505,0.517,0.529,0.54,0.551,0.561,0.57,0.579,0.587,0.595,0.602,0.608,0.614,0.619,0.623,0.626,0.628,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.628,0.624,0.616,0.606,0.594,0.58,0.563,0.545,0.525,0.5,0.48,0.46,0.44,0.41,0.39,0.36,0.34,0.31,0.29,0.26,0.24,0.22,0.195,0.178,0.162,0.148,0.136,0.125,0.116,0.108,0.101,0.096,0.091,0.087,0.085,0.082,0.081,0.08,0.08,0.096,0.13,0.19,0.24,0.27,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.292,0.296,0.303,0.313,0.324,0.337,0.351,0.365,0.381,0.397,0.413,0.429,0.445,0.46,0.475,0.488,0.501,0.512,0.521,0.529,0.535,0.539,0.54,0.54,0.54,0.54,0.54,0.54,0.539,0.535,0.529,0.521,0.512,0.5,0.487,0.472,0.456,0.438,0.42,0.401,0.381,0.36,0.34,0.32,0.29,0.27,0.25,0.23,0.21,0.19,0.17,0.146,0.127,0.108,0.091,0.075,0.06,0.047,0.035,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.93,-5.74,-5.43,-5.02,-4.53,-3.94,-3.3,-2.59,-1.84,-1.05,-0.25,0.57,1.38,2.17,2.94,3.68,4.37,5,5.61,6.18,6.69,7.14,7.55,7.91,8.23,8.52,8.77,8.99,9.19,9.35,9.49,9.62,9.71,9.79,9.86,9.91,9.95,9.97,9.989,9.997,10,9.97,9.89,9.77,9.59,9.37,9.12,8.82,8.48,8.12,7.72,7.29,6.84,6.37,5.87,5.36,4.83,4.29,3.75,3.19,2.63,2.07,1.51,0.95,0.4,-0.14,-0.68,-1.2,-1.7,-2.2,-2.67,-3.11,-3.54,-3.93,-4.3,-4.64,-4.94,-5.21,-5.44,-5.64,-5.79,-5.91,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.7,-5.54,-5.35,-5.13,-4.89,-4.62,-4.33,-4.02,-3.69,-3.35,-3,-2.63,-2.25,-1.86,-1.46,-1.07,-0.66,-0.25,0.15,0.56,0.96,1.36,1.75,2.14,2.51,2.88,3.23,3.56,3.89,4.2,4.48,4.75,5,5.22,5.42,5.59,5.73,5.85,5.93,5.98,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.02,6.09,6.21,6.36,6.54,6.75,7,7.26,7.55,7.84,8.16,8.48,8.8,9.12,9.44,9.76,10.07,10.36,10.64,10.9,11.14,11.35,11.54,11.7,11.83,11.92,11.98,12,11.982,11.93,11.84,11.73,11.58,11.41,11.2,10.97,10.72,10.44,10.15,9.83,9.49,9.13,8.76,8.38,7.97,7.56,7.13,6.69,6.24,5.79,5.32,4.86,4.38,3.9,3.42,2.94,2.45,1.97,1.49,1.01,0.53,0.06,-0.41,-0.86,-1.31,-1.76,-2.19,-2.61,-3.02,-3.42,-3.8,-4.17,-4.52,-4.85,-5.17,-5.47,-5.75,-6,-6.24,-6.47,-6.69,-6.89,-7.09,-7.27,-7.43,-7.59,-7.74,-7.88,-8,-8.12,-8.23,-8.33,-8.42,-8.5,-8.58,-8.65,-8.71,-8.76,-8.81,-8.85,-8.89,-8.92,-8.95,-8.97,-8.985,-8.999,-9.009,-9.017,-9.021,-9.024,-9.024,-9.023,-9.02,-9.017,-9.013,-9.01,-9.006,-9.003,-9.001,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.14,-0.31,-0.52,-0.77,-1.04,-1.32,-1.61,-1.88,-2.15,-2.39,-2.6,-2.77,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.18,0.25,0.34,0.44,0.54,0.65,0.78,0.9,1.04,1.18,1.32,1.47,1.62,1.77,1.92,2.08,2.23,2.38,2.53,2.68,2.82,2.96,3.1,3.22,3.35,3.46,3.56,3.66,3.75,3.82,3.88,3.93,3.97,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.007,4.026,4.06,4.1,4.16,4.23,4.31,4.4,4.5,4.61,4.73,4.86,5,5.15,5.31,5.47,5.64,5.82,6,6.22,6.42,6.61,6.78,6.94,7.09,7.22,7.34,7.45,7.55,7.64,7.71,7.78,7.84,7.89,7.93,7.96,7.98,7.996,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.981,7.93,7.84,7.72,7.57,7.39,7.19,6.97,6.72,6.46,6.18,5.9,5.6,5.29,4.98,4.66,4.34,4.02,3.71,3.4,3.1,2.82,2.54,2.28,2.03,1.81,1.61,1.43,1.28,1.16,1.07,1.02,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0.011,0.04,0.09,0.16,0.25,0.35,0.46,0.59,0.73,0.88,1.03,1.19,1.36,1.54,1.71,1.89,2.07,2.24,2.42,2.59,2.76,2.92,3.07,3.22,3.35,3.48,3.59,3.7,3.78,3.86,3.92,3.96,3.99,4,3.994,3.975,3.95,3.91,3.86,3.81,3.76,3.7,3.64,3.57,3.51,3.44,3.38,3.32,3.26,3.21,3.16,3.11,3.07,3.04,3.02,3.005,3,3,3,3,3,3,3,3,3,2.992,2.97,2.93,2.88,2.82,2.75,2.66,2.57,2.47,2.37,2.26,2.14,2.02,1.9,1.77,1.64,1.52,1.39,1.26,1.14,1.02,0.9,0.78,0.67,0.57,0.47,0.38,0.3,0.22,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.81,-0.88,-0.96,-1.04,-1.12,-1.19,-1.27,-1.34,-1.41,-1.48,-1.55,-1.61,-1.67,-1.73,-1.78,-1.83,-1.87,-1.91,-1.94,-1.97,-1.985,-1.996,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.018,-2.07,-2.15,-2.25,-2.37,-2.51,-2.66,-2.82,-2.98,-3.14,-3.29,-3.44,-3.58,-3.7,-3.8,-3.89,-3.95,-3.99,-4,-3.983,-3.93,-3.86,-3.76,-3.65,-3.52,-3.38,-3.24,-3.09,-2.94,-2.8,-2.66,-2.52,-2.4,-2.29,-2.19,-2.11,-2.05,-2.01,-2,-2.01,-2.04,-2.08,-2.15,-2.22,-2.31,-2.41,-2.53,-2.65,-2.78,-2.91,-3.06,-3.2,-3.35,-3.5,-3.65,-3.8,-3.94,-4.09,-4.22,-4.35,-4.47,-4.59,-4.69,-4.78,-4.85,-4.92,-4.96,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.987,-4.95,-4.88,-4.8,-4.69,-4.57,-4.42,-4.26,-4.09,-3.9,-3.7,-3.5,-3.28,-3.06,-2.84,-2.61,-2.39,-2.16,-1.94,-1.72,-1.5,-1.3,-1.1,-0.91,-0.74,-0.58,-0.43,-0.31,-0.2,-0.12,-0.05,-0.01,0,0,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.64,-4.45,-4.26,-4.06,-3.86,-3.65,-3.45,-3.24,-3.03,-2.82,-2.61,-2.4,-2.2,-1.99,-1.8,-1.61,-1.43,-1.25,-1.08,-0.92,-0.78,-0.64,-0.51,-0.4,-0.3,-0.21,-0.14,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.9,4.63,4.23,3.69,3.07,2.37,1.61,0.83,0.01,-0.81,-1.61,-2.38,-3.12,-3.8,-4.42,-4.96,-5.39,-5.72,-5.93,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.63,-4.44,-4.25,-4.05,-3.85,-3.64,-3.43,-3.22,-3,-2.78,-2.57,-2.36,-2.15,-1.95,-1.75,-1.56,-1.37,-1.19,-1.02,-0.86,-0.71,-0.57,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,-0.05,-0.19,-0.41,-0.7,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.993,-3.973,-3.94,-3.9,-3.84,-3.78,-3.7,-3.62,-3.53,-3.43,-3.32,-3.21,-3.09,-2.97,-2.84,-2.71,-2.57,-2.44,-2.3,-2.16,-2.02,-1.88,-1.74,-1.6,-1.46,-1.33,-1.2,-1.07,-0.95,-0.83,-0.72,-0.62,-0.52,-0.43,-0.34,-0.27,-0.2,-0.14,-0.09,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.16,0.28,0.42,0.6,0.81,1.04,1.29,1.57,1.87,2.19,2.53,2.88,3.25,3.63,4.02,4.43,4.85,5.26,5.69,6.13,6.56,7,7.44,7.87,8.31,8.74,9.15,9.57,9.98,10.37,10.75,11.12,11.47,11.81,12.13,12.43,12.71,12.96,13.19,13.4,13.58,13.72,13.84,13.93,13.98,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.98,13.91,13.8,13.64,13.45,13.22,12.96,12.67,12.35,11.99,11.63,11.23,10.81,10.37,9.92,9.45,8.98,8.49,8,7.5,7,6.5,6,5.51,5.02,4.55,4.08,3.63,3.19,2.77,2.37,2.01,1.65,1.33,1.04,0.78,0.55,0.36,0.2,0.09,0.02,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.13,0.18,0.24,0.3,0.36,0.4,0.44,0.47,0.493,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.46,0.42,0.37,0.31,0.25,0.19,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,0.003,0.011,0.024,0.04,0.059,0.08,0.1,0.12,0.14,0.165,0.183,0.199,0.212,0.222,0.228,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.229,0.224,0.218,0.209,0.197,0.184,0.169,0.151,0.132,0.11,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.47,-0.493,-0.512,-0.529,-0.545,-0.559,-0.571,-0.581,-0.589,-0.595,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.581,-0.53,-0.47,-0.39,-0.31,-0.23,-0.16,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.017,-0.029,-0.044,-0.062,-0.081,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.4,-0.42,-0.437,-0.453,-0.466,-0.476,-0.484,-0.488,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.489,-0.487,-0.483,-0.478,-0.471,-0.463,-0.454,-0.443,-0.432,-0.42,-0.407,-0.393,-0.378,-0.363,-0.347,-0.331,-0.314,-0.297,-0.28,-0.263,-0.245,-0.227,-0.21,-0.193,-0.176,-0.159,-0.143,-0.127,-0.112,-0.097,-0.083,-0.07,-0.058,-0.047,-0.036,-0.027,-0.019,-0.012,-0.007,-0.003,-0.001,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.012,0.026,0.044,0.06,0.09,0.11,0.13,0.16,0.18,0.199,0.216,0.231,0.241,0.248,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.248,0.246,0.244,0.24,0.236,0.232,0.226,0.221,0.214,0.208,0.201,0.193,0.185,0.178,0.169,0.161,0.152,0.144,0.135,0.126,0.117,0.109,0.1,0.091,0.083,0.075,0.067,0.059,0.052,0.045,0.039,0.032,0.027,0.021,0.017,0.012,0.009,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.002,-0.004,-0.008,-0.012,-0.016,-0.022,-0.027,-0.033,-0.04,-0.047,-0.054,-0.061,-0.068,-0.075,-0.081,-0.088,-0.094,-0.101,-0.106,-0.111,-0.116,-0.12,-0.124,-0.126,-0.128,-0.13,-0.13,-0.127,-0.119,-0.106,-0.09,-0.07,-0.05,-0.03,-0,0.02,0.05,0.07,0.1,0.12,0.14,0.161,0.178,0.191,0.201,0.208,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.205,0.202,0.198,0.194,0.19,0.185,0.18,0.174,0.168,0.162,0.156,0.149,0.142,0.135,0.127,0.12,0.113,0.105,0.097,0.09,0.083,0.075,0.068,0.061,0.054,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.013,-0.05,-0.11,-0.2,-0.31,-0.44,-0.59,-0.75,-0.94,-1.14,-1.35,-1.58,-1.82,-2.07,-2.34,-2.6,-2.88,-3.17,-3.46,-3.75,-4.05,-4.35,-4.65,-4.95,-5.25,-5.54,-5.83,-6.12,-6.4,-6.66,-6.93,-7.18,-7.42,-7.65,-7.86,-8.06,-8.25,-8.41,-8.56,-8.69,-8.8,-8.89,-8.95,-8.99,-9,-8.96,-8.83,-8.63,-8.36,-8.04,-7.64,-7.2,-6.72,-6.19,-5.63,-5.03,-4.42,-3.77,-3.11,-2.45,-1.77,-1.08,-0.4,0.27,0.93,1.58,2.22,2.83,3.42,3.97,4.49,4.97,5.41,5.81,6.16,6.45,6.68,6.86,6.96,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.9,6.63,6.19,5.61,4.91,4.09,3.17,2.17,1.1,-0.02,-1.19,-2.38,-3.61,-4.84,-6.07,-7.29,-8.47,-9.64,-10.74,-11.79,-12.76,-13.68,-14.5,-15.22,-15.83,-16.33,-16.7,-16.92,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.9,-16.62,-16.16,-15.56,-14.83,-13.97,-13.01,-11.97,-10.85,-9.68,-8.47,-7.23,-5.94,-4.66,-3.38,-2.11,-0.88,0.33,1.48,2.58,3.59,4.54,5.4,6.14,6.79,7.3,7.68,7.92,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.9,7.61,7.17,6.57,5.86,5.03,4.11,3.12,2.08,0.98,-0.13,-1.28,-2.44,-3.56,-4.67,-5.75,-6.77,-7.75,-8.65,-9.47,-10.19,-10.81,-11.31,-11.69,-11.92,-12,-11.91,-11.65,-11.24,-10.7,-10.02,-9.24,-8.34,-7.37,-6.33,-5.25,-4.09,-2.92,-1.74,-0.55,0.62,1.78,2.92,3.99,5.01,5.96,6.85,7.62,8.32,8.91,9.37,9.71,9.93,10,9.981,9.92,9.83,9.71,9.55,9.36,9.15,8.91,8.65,8.37,8.07,7.75,7.42,7.07,6.72,6.35,5.99,5.61,5.23,4.86,4.48,4.11,3.74,3.39,3.03,2.69,2.36,2.05,1.75,1.47,1.21,0.97,0.76,0.56,0.4,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,0.019,0.07,0.16,0.27,0.41,0.56,0.73,0.9,1.09,1.28,1.48,1.67,1.86,2.04,2.22,2.38,2.53,2.66,2.78,2.87,2.94,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.008,3.03,3.07,3.12,3.18,3.25,3.33,3.42,3.52,3.62,3.72,3.83,3.94,4.06,4.17,4.28,4.38,4.48,4.58,4.67,4.75,4.82,4.88,4.93,4.97,4.99,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.87,4.72,4.53,4.29,4.02,3.71,3.4,3.06,2.72,2.37,2.03,1.7,1.39,1.09,0.83,0.59,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.998,-3.992,-3.981,-3.967,-3.949,-3.93,-3.9,-3.87,-3.84,-3.8,-3.77,-3.72,-3.68,-3.63,-3.58,-3.53,-3.47,-3.41,-3.35,-3.29,-3.22,-3.16,-3.09,-3.02,-2.94,-2.87,-2.79,-2.71,-2.63,-2.55,-2.47,-2.38,-2.3,-2.21,-2.12,-2.03,-1.94,-1.85,-1.76,-1.67,-1.57,-1.48,-1.38,-1.29,-1.19,-1.1,-1,-0.9,-0.81,-0.72,-0.64,-0.57,-0.5,-0.44,-0.38,-0.33,-0.29,-0.24,-0.21,-0.17,-0.14,-0.12,-0.1,-0.076,-0.059,-0.045,-0.033,-0.024,-0.016,-0.011,-0.006,-0.003,-0.001,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.003,-0.011,-0.025,-0.045,-0.07,-0.1,-0.13,-0.17,-0.21,-0.25,-0.3,-0.35,-0.4,-0.46,-0.52,-0.58,-0.64,-0.7,-0.77,-0.83,-0.9,-0.97,-1.03,-1.1,-1.17,-1.23,-1.3,-1.36,-1.42,-1.48,-1.54,-1.6,-1.65,-1.7,-1.75,-1.79,-1.83,-1.87,-1.9,-1.93,-1.96,-1.975,-1.989,-1.997,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.67,-1.58,-1.48,-1.38,-1.28,-1.17,-1.06,-0.94,-0.83,-0.72,-0.62,-0.52,-0.42,-0.33,-0.25,-0.18,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.9,-0.79,-0.64,-0.46,-0.26,-0.03,0.22,0.48,0.76,1.03,1.32,1.61,1.89,2.17,2.44,2.69,2.94,3.16,3.37,3.55,3.7,3.83,3.92,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.984,3.94,3.86,3.76,3.64,3.5,3.33,3.16,2.97,2.77,2.56,2.35,2.13,1.92,1.71,1.5,1.29,1.09,0.91,0.73,0.57,0.43,0.31,0.2,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.2,-0.43,-0.72,-1.09,-1.49,-1.94,-2.41,-2.91,-3.42,-3.94,-4.45,-4.95,-5.45,-5.91,-6.34,-6.74,-7.1,-7.41,-7.66,-7.84,-7.96,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.96,-7.83,-7.63,-7.36,-7.04,-6.64,-6.2,-5.72,-5.19,-4.63,-4.03,-3.42,-2.77,-2.11,-1.45,-0.77,-0.08,0.6,1.27,1.93,2.58,3.22,3.83,4.42,4.97,5.49,5.97,6.41,6.81,7.16,7.45,7.68,7.86,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.97,7.88,7.73,7.54,7.3,7.03,6.72,6.39,6.03,5.66,5.27,4.87,4.46,4.05,3.64,3.24,2.84,2.45,2.09,1.74,1.41,1.11,0.83,0.59,0.39,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.21,-0.46,-0.79,-1.18,-1.63,-2.14,-2.68,-3.26,-3.86,-4.47,-5.11,-5.74,-6.36,-6.97,-7.56,-8.12,-8.66,-9.16,-9.61,-10,-10.34,-10.62,-10.83,-10.96,-11,-10.989,-10.96,-10.9,-10.83,-10.74,-10.63,-10.5,-10.36,-10.2,-10.02,-9.84,-9.64,-9.43,-9.21,-8.98,-8.73,-8.48,-8.22,-7.96,-7.69,-7.41,-7.13,-6.85,-6.56,-6.27,-5.97,-5.69,-5.39,-5.1,-4.8,-4.51,-4.23,-3.95,-3.67,-3.39,-3.12,-2.86,-2.61,-2.36,-2.12,-1.89,-1.67,-1.46,-1.26,-1.07,-0.9,-0.74,-0.59,-0.46,-0.34,-0.24,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.1,0.37,0.81,1.36,2.04,2.8,3.63,4.52,5.46,6.4,7.38,8.34,9.29,10.21,11.08,11.89,12.64,13.31,13.88,14.36,14.71,14.92,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15.005,15.021,15.05,15.08,15.12,15.17,15.22,15.29,15.35,15.42,15.5,15.57,15.65,15.74,15.82,15.9,15.99,16.07,16.16,16.24,16.32,16.4,16.48,16.55,16.62,16.69,16.75,16.8,16.85,16.89,16.93,16.96,16.98,16.995,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.93,16.74,16.43,16.02,15.52,14.94,14.29,13.58,12.82,12.03,11.2,10.35,9.48,8.61,7.74,6.88,6.04,5.22,4.43,3.69,3,2.35,1.77,1.26,0.83,0.48,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.17,-0.21,-0.25,-0.29,-0.32,-0.36,-0.39,-0.43,-0.46,-0.49,-0.51,-0.54,-0.555,-0.569,-0.577,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.579,-0.578,-0.575,-0.572,-0.568,-0.563,-0.558,-0.551,-0.545,-0.538,-0.53,-0.523,-0.515,-0.506,-0.498,-0.49,-0.481,-0.473,-0.464,-0.456,-0.448,-0.44,-0.432,-0.425,-0.418,-0.411,-0.405,-0.4,-0.395,-0.391,-0.387,-0.384,-0.382,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.378,-0.374,-0.367,-0.358,-0.347,-0.334,-0.319,-0.304,-0.287,-0.269,-0.25,-0.231,-0.212,-0.193,-0.173,-0.154,-0.135,-0.117,-0.099,-0.082,-0.067,-0.053,-0.04,-0.028,-0.018,-0.011,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.002,0.003,0.004,0.006,0.007,0.009,0.011,0.012,0.014,0.016,0.017,0.019,0.021,0.022,0.024,0.025,0.026,0.027,0.028,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.029,0.03,0.03,0.028,0.03,0.027,0.03,0.026,0.03,0.024,0.024,0.02,0.022,0.022,0.021,0.02,0.019,0.019,0.018,0.02,0.016,0.016,0.015,0.014,0.01,0.012,0.012,0.011,0.01,0.01,0.009,0.008,0.01,0.006,0.006,0.01,0.005,0.004,0,0.003,0,0,0.002,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.005,0.011,0.019,0.029,0.039,0.051,0.063,0.076,0.09,0.103,0.117,0.13,0.143,0.155,0.166,0.177,0.186,0.194,0.201,0.206,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.208,0.203,0.195,0.183,0.17,0.153,0.135,0.114,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.06,-0.09,-0.12,-0.15,-0.18,-0.21,-0.23,-0.26,-0.29,-0.31,-0.33,-0.35,-0.38,-0.394,-0.41,-0.425,-0.437,-0.447,-0.454,-0.458,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.458,-0.453,-0.445,-0.433,-0.42,-0.404,-0.387,-0.367,-0.35,-0.33,-0.3,-0.28,-0.26,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.081,-0.064,-0.048,-0.034,-0.022,-0.013,-0.006,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.25,0.29,0.33,0.37,0.41,0.45,0.49,0.52,0.56,0.59,0.62,0.65,0.67,0.686,0.699,0.707,0.71,0.709,0.707,0.704,0.699,0.693,0.686,0.678,0.668,0.658,0.647,0.635,0.622,0.609,0.594,0.579,0.564,0.548,0.531,0.514,0.496,0.479,0.46,0.442,0.423,0.405,0.386,0.367,0.348,0.329,0.31,0.291,0.273,0.255,0.237,0.219,0.202,0.185,0.168,0.152,0.137,0.122,0.108,0.094,0.081,0.069,0.058,0.048,0.038,0.029,0.022,0.015,0.01,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/pinchIn_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,0.27,0.96,1.98,3.23,4.62,6.08,7.55,8.99,10.32,11.53,12.53,13.32,13.82,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0.1,0.34,0.67,1.05,1.45,1.84,2.21,2.52,2.78,2.94,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0.36,0.93,1.46,1.85,2,1.84,1.44,0.89,0.25,-0.41,-1.07,-1.69,-2.21,-2.63,-2.9,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=2,2.16,2.5,2.92,3.36,3.76,4.1,4.32,4.4,4.385,4.35,4.3,4.25,4.22,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.69,-1.41,-2.31,-3.3,-4.34,-5.4,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BROW_R_Y=0,0.006,0.02,0.04,0.07,0.1,0.13,0.16,0.19,0.21,0.24,0.26,0.276,0.286,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_ANGLE_X=0,0.36,1.31,2.68,4.38,6.27,8.25,10.25,12.19,14.01,15.65,17,18.07,18.76,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.22,0.45,0.31,0.16,0.16,0.16,0.16,0.16,0.51,0.86,0.77,0.67,0.7,0.72,0.58,0.44,0.3,0.16,0.45,0.73,0.746,0.763,0.78,0.797,0.814,0.831,0.51,0.19,0.54,0.89,0.85,0.81,0.76,0.72,0.68,0.64,0.647,0.659,0.44,0.23,0.31,0.39,0.376,0.361,0.18,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=2,1.981,1.93,1.86,1.77,1.67,1.57,1.46,1.36,1.26,1.18,1.11,1.05,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0,-0.013,-0.05,-0.1,-0.16,-0.22,-0.3,-0.37,-0.44,-0.5,-0.56,-0.61,-0.65,-0.67,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0,0.005,0.018,0.037,0.06,0.09,0.11,0.14,0.17,0.19,0.21,0.233,0.247,0.257,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0,-0.012,-0.04,-0.09,-0.14,-0.2,-0.26,-0.33,-0.39,-0.45,-0.5,-0.55,-0.58,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61\r\r\nPARAM_EYE_R_OPEN=2,1.981,1.93,1.86,1.77,1.67,1.57,1.46,1.36,1.26,1.18,1.11,1.05,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.04,-0.08,-0.13,-0.19,-0.25,-0.31,-0.37,-0.43,-0.48,-0.52,-0.55,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58\r\r\nPARAM_EYE_BALL_Y=0,0.005,0.017,0.035,0.06,0.08,0.11,0.13,0.16,0.18,0.21,0.224,0.238,0.247,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25\r\r\nPARAM_ARM_L_B=2,2.09,2.29,2.54,2.79,3.03,3.22,3.35,3.4,3.385,3.35,3.3,3.25,3.22,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/pinchOut_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.73,-10.97,-9.77,-8.2,-6.36,-4.24,-1.93,0.51,3,5.49,7.93,10.24,12.36,14.2,15.77,16.97,17.73,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.93,-0.75,-0.48,-0.16,0.16,0.48,0.75,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.92,-0.71,-0.38,0.05,0.54,1.08,1.64,2.21,2.77,3.3,3.77,4.19,4.53,4.79,4.95,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0.21,0.76,1.55,2.54,3.63,4.78,5.93,7.06,8.11,9.06,9.84,10.46,10.86,11,10.86,10.49,9.93,9.22,8.41,7.52,6.57,5.63,4.66,3.75,2.89,2.09,1.39,0.82,0.38,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.36,0.73,0.36,0,0.004,0.008,0.39,0.77,0.68,0.59,0.3,0.02,0.29,0.57,0.48,0.4,0.31,0.22,0.44,0.67,0.45,0.24,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=0.5,0.5,0.5,0.5,0.5,0.497,0.487,0.473,0.456,0.436,0.42,0.39,0.374,0.357,0.343,0.333,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0,0.03,0.1,0.21,0.33,0.46,0.58,0.69,0.76,0.79,0.76,0.7,0.6,0.47,0.34,0.2,0.05,-0.09,-0.22,-0.34,-0.44,-0.51,-0.56,-0.58,-0.571,-0.55,-0.5,-0.45,-0.39,-0.32,-0.24,-0.16,-0.07,0.01,0.09,0.17,0.24,0.3,0.35,0.4,0.42,0.43,0.419,0.39,0.36,0.33,0.31,0.28,0.266,0.26\r\r\nPARAM_HAIR_FRONT=0,0.02,0.08,0.17,0.27,0.38,0.48,0.57,0.63,0.65,0.63,0.57,0.49,0.4,0.29,0.17,0.06,-0.06,-0.16,-0.26,-0.33,-0.4,-0.44,-0.45,-0.442,-0.42,-0.38,-0.33,-0.28,-0.21,-0.14,-0.07,0.01,0.09,0.16,0.23,0.3,0.35,0.4,0.44,0.46,0.47,0.454,0.42,0.37,0.33,0.29,0.25,0.23,0.22\r\r\nPARAM_ARM_L_A=0.5,0.5,0.5,0.5,0.5,0.497,0.489,0.477,0.461,0.444,0.425,0.406,0.389,0.373,0.361,0.353,0.35,0.356,0.371,0.39,0.42,0.44,0.47,0.49,0.51,0.526,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/shake_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.85,2.69,4.99,7.37,9.55,11.35,12.55,13,12.38,10.72,8.16,4.94,1.37,-2.5,-6.37,-9.94,-13.16,-15.72,-17.38,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.26,-0.83,-1.54,-2.27,-2.94,-3.49,-3.86,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Y=5,4.67,3.96,3.08,2.16,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.62,1.15,1.7,2.2,2.62,2.9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.52,-1.66,-3.07,-4.54,-5.88,-6.99,-7.72,-8,-7.86,-7.49,-6.91,-6.18,-5.37,-4.5,-3.63,-2.82,-2.09,-1.51,-1.14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.42,-0.8,-1.24,-1.7,-2.16,-2.6,-3,-3.4,-3.74,-4.03,-4.28,-4.47,-4.64,-4.77,-4.86,-4.93,-4.97,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.24,0.49,0.45,0.42,0.32,0.22,0.31,0.39,0.21,0.03,0.048,0.064,0.08,0.096,0.112,0.128,0.145,0.161,0.177,0.193,0.209,0.225,0.242,0.258,0.274,0.29,0.46,0.63,0.56,0.5,0.51,0.518,0.26,0,0,0,0.23,0.45,0.458,0.461,0.464,0.467,0.47,0.473,0.475,0.478,0.24,0,0,0,0.27,0.54,0.541,0.54,0.54,0.539,0.538,0.54,0.537,0.536,0.54,0.535,0.534,0.53,0.27,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.15,0.22,0.28,0.33,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38\r\r\nPARAM_EYE_L_OPEN=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.996,1.982,1.96,1.93,1.89,1.83,1.77,1.7,1.61,1.52,1.41,1.29,1.15,1,0.78,0.59,0.43,0.28,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.47,0.32,0.13,-0.06,-0.24,-0.39,-0.48,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_A=0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.506,0.523,0.55,0.58,0.62,0.66,0.7,0.74,0.79,0.83,0.87,0.9,0.94,0.96,0.983,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_R_FORM=0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.51,0.35,0.16,-0.04,-0.23,-0.38,-0.48,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_EYE_R_OPEN=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.996,1.982,1.96,1.93,1.89,1.83,1.77,1.7,1.61,1.52,1.41,1.29,1.15,1,0.78,0.59,0.43,0.28,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TERE=0.5\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.506,0.523,0.55,0.58,0.62,0.66,0.7,0.74,0.79,0.83,0.87,0.9,0.94,0.96,0.983,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.13\r\r\nPARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.23,-12.29,-9.67,-6.61,-3.42,-0.28,2.69,5.2,7.22,8.52,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_BODY_ANGLE_X=-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.94,-4.77,-4.56,-4.3,-4.04,-3.77,-3.53,-3.32,-3.15,-3.04,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.45,-0.89,-1.4,-1.93,-2.45,-2.95,-3.37,-3.7,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_R_B=-1\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.49,-14.2,-12.45,-10.4,-8.28,-6.19,-4.2,-2.54,-1.19,-0.32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.45,15.08,13.23,11.05,8.8,6.57,4.47,2.69,1.26,0.34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.32,0.64,0.46,0.29,0.31,0.34,0.28,0.22,0.43,0.64,0.32,0,0.31,0.61,0.54,0.47,0.24,0,0.27,0.53,0.514,0.494,0.475,0.455,0.28,0.11,0.32,0.53,0.528,0.523,0.518,0.512,0.507,0.502,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.38\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0.19\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.694,0.68,0.66,0.64,0.61,0.59,0.57,0.549,0.533,0.524,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52\r\r\nPARAM_BROW_R_FORM=0.38\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.484,-0.44,-0.39,-0.33,-0.26,-0.19,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.76,0.7,0.61,0.51,0.41,0.31,0.21,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_B=3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.419,3.47,3.53,3.61,3.69,3.77,3.84,3.9,3.96,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.216,0.205,0.189,0.169,0.15,0.12,0.1,0.08,0.06,0.039,0.023,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.79,-10.18,-9.23,-8.02,-6.58,-5.01,-3.35,-1.65,0.01,1.58,3.02,4.23,5.18,5.79,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_X=-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.96,-1.86,-1.72,-1.54,-1.34,-1.13,-0.92,-0.72,-0.53,-0.35,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.45,-1.55,-3,-4.45,-5.55,-6,-5.79,-5.24,-4.44,-3.49,-2.51,-1.56,-0.76,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.307,0.299,0.287,0.273,0.257,0.241,0.224,0.207,0.192,0.178,0.167,0.158,0.152,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.24,0.48,0.36,0.24,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.21,0.42,0.46,0.51,0.56,0.6,0.47,0.35,0.5,0.66,0.39,0.12,0.06,0,0.3,0.6,0.56,0.51,0.56,0.61,0.53,0.45,0.23,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.12,0.18,0.23,0.29,0.35,0.4,0.44,0.48,0.51,0.533,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_EYE_L_OPEN=1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.259,1.256,1.251,1.244,1.234,1.221,1.206,1.187,1.17,1.14,1.11,1.08,1.04,1,0.73,0.34,0.08,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.417,0.408,0.395,0.378,0.361,0.342,0.323,0.304,0.287,0.272,0.259,0.249,0.242,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.268,0.262,0.253,0.242,0.23,0.218,0.205,0.193,0.182,0.171,0.163,0.156,0.152,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_BROW_R_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.255,0.242,0.223,0.2,0.17,0.15,0.12,0.09,0.07,0.05,0.027,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.72,0.68,0.63,0.6,0.59,0.603,0.64,0.68,0.73,0.79,0.84,0.89,0.94,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_R_FORM=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.426,0.417,0.403,0.386,0.367,0.347,0.327,0.308,0.29,0.274,0.26,0.249,0.242,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\r\r\nPARAM_EYE_R_OPEN=1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.289,1.286,1.28,1.272,1.26,1.246,1.229,1.208,1.18,1.16,1.12,1.09,1.05,1,0.73,0.34,0.08,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.69,0.65,0.62,0.59,0.58,0.593,0.63,0.67,0.73,0.78,0.84,0.89,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.85,13.43,12.8,11.98,11.02,9.93,8.76,7.55,6.3,5.03,3.79,2.59,1.44,0.4,-0.56,-1.39,-2.06,-2.56,-2.89,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.24,-0.53,-0.91,-1.37,-1.88,-2.44,-3.04,-3.65,-4.27,-4.9,-5.49,-6.05,-6.56,-7,-7.38,-7.71,-7.99,-8.23,-8.43,-8.58,-8.71,-8.81,-8.88,-8.93,-8.97,-8.988,-8.997,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_Y=0,-0.05,-0.19,-0.42,-0.7,-1.04,-1.41,-1.8,-2.2,-2.59,-2.96,-3.3,-3.58,-3.81,-3.95,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.894,0.877,0.85,0.81,0.77,0.72,0.67,0.61,0.55,0.49,0.43,0.37,0.31,0.25,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14.29,-15.01,-16,-17.15,-18.34,-19.52,-20.64,-21.57,-22.33,-22.82,-23,-22.59,-21.48,-19.88,-17.98,-16.02,-14.12,-12.52,-11.41,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.71,9.99,9,7.85,6.66,5.48,4.36,3.43,2.67,2.18,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.03,0.05,0.2,0.35,0.42,0.49,0.38,0.27,0.42,0.56,0.584,0.604,0.51,0.41,0.23,0.05,0.35,0.64,0.5,0.36,0.365,0.369,0.373,0.376,0.51,0.64,0.54,0.44,0.34,0.24,0.34,0.44,0.425,0.412,0.398,0.384,0.44,0.49,0.37,0.25,0.12,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=-0.73\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.82,-0.818,-0.811,-0.8,-0.787,-0.771,-0.753,-0.734,-0.716,-0.697,-0.679,-0.663,-0.65,-0.639,-0.632,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.625,-0.612,-0.591,-0.56,-0.53,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.11,-0.094,-0.084,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08\r\r\nPARAM_EYE_BALL_Y=-0.5,-0.498,-0.494,-0.487,-0.479,-0.469,-0.458,-0.446,-0.434,-0.422,-0.411,-0.401,-0.393,-0.386,-0.382,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.372,-0.35,-0.32,-0.27,-0.22,-0.16,-0.1,-0.03,0.04,0.11,0.17,0.24,0.3,0.36,0.41,0.45,0.49,0.52,0.534,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_ARM_L_B=2.8,2.801,2.805,2.81,2.818,2.826,2.835,2.845,2.855,2.865,2.874,2.882,2.89,2.895,2.899,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.881,2.83,2.74,2.62,2.49,2.33,2.15,1.97,1.77,1.58,1.37,1.18,0.99,0.8,0.63,0.48,0.34,0.22,0.13,0.06,0.01,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,0.9,0.62,0.22,-0.25,-0.75,-1.22,-1.62,-1.9,-2,-1.96,-1.85,-1.69,-1.49,-1.27,-1.03,-0.8,-0.58,-0.39,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6,2.06,4,5.94,7.4,8,7.04,4.45,0.72,-3.71,-8.29,-12.72,-16.45,-19.04,-20,-19.6,-18.53,-16.92,-14.9,-12.67,-10.29,-7.96,-5.78,-3.86,-2.24,-1.02,-0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.21,-0.33,-0.42,-0.45,-0.39,-0.25,-0.06,0.14,0.28,0.34,0.28,0.12,-0.06,-0.25,-0.39,-0.49,-0.52,-0.46,-0.34,-0.18,-0.02,0.13,0.25,0.33,0.36,0.32,0.24,0.13,0.03,-0.05,-0.1,-0.12,-0.111,-0.09,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0.5\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.78,-14.21,-13.45,-12.55,-11.62,-10.71,-9.84,-9.11,-8.52,-8.14,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_BODY_ANGLE_X=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.66,-6.9,-6,-5.05,-4.39,-3.89,-3.53,-3.28,-3.12,-3.03,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.22,-1.99,-1.75,-1.5,-1.25,-1.01,-0.78,-0.56,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=5\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13.97,-13.89,-13.78,-13.65,-13.52,-13.39,-13.26,-13.16,-13.07,-13.02,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.83,-12.63,-12.37,-12.06,-11.71,-11.32,-10.92,-10.5,-10.08,-9.68,-9.29,-8.94,-8.63,-8.37,-8.17,-8.04,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-13.11,-8.34,-2.17,4.36,10.38,15.36,19,22.21,23.04,23.06,23,23,23,23,23,23,23,22.87,22.48,21.88,21.1,20.18,19.12,17.96,16.75,15.5,14.25,13.04,11.88,10.82,9.9,9.12,8.52,8.13,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.5\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=-0.5\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=-1\r\r\nPARAM_BROW_R_FORM=-0.5\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=-1\r\r\nPARAM_EYE_BALL_X=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.447,0.49,0.55,0.62,0.69,0.76,0.82,0.88,0.92,0.95,0.96,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.92,0.87,0.81,0.74,0.66,0.57,0.48,0.38,0.29,0.2,0.11,0.03,-0.04,-0.1,-0.15,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19\r\r\nPARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.543,0.547,0.551,0.557,0.563,0.57,0.578,0.585,0.592,0.6,0.607,0.613,0.619,0.623,0.627,0.629,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.93,-3.72,-3.41,-2.99,-2.5,-1.93,-1.31,-0.67,0,0.67,1.31,1.93,2.5,2.99,3.41,3.72,3.93,4,3.9,3.61,3.17,2.6,1.92,1.18,0.4,-0.4,-1.18,-1.92,-2.6,-3.17,-3.61,-3.9,-4,-3.91,-3.66,-3.28,-2.78,-2.21,-1.57,-0.92,-0.25,0.39,1.01,1.57,2.06,2.46,2.75,2.94,3,2.97,2.9,2.78,2.62,2.44,2.22,1.99,1.75,1.5,1.25,1.01,0.78,0.56,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.86,-0.7,-0.49,-0.25,0.04,0.34,0.67,1,1.33,1.66,1.96,2.25,2.49,2.7,2.86,2.96,3,2.89,2.59,2.15,1.62,1.02,0.39,-0.24,-0.85,-1.42,-1.94,-2.37,-2.71,-2.92,-3,-2.95,-2.81,-2.59,-2.3,-1.98,-1.61,-1.24,-0.86,-0.49,-0.14,0.18,0.46,0.69,0.86,0.96,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.003,-6.014,-6.032,-6.06,-6.1,-6.15,-6.21,-6.28,-6.37,-6.48,-6.6,-6.74,-6.9,-7.07,-7.27,-7.49,-7.73,-8,-8.28,-8.56,-8.85,-9.12,-9.4,-9.66,-9.9,-10.13,-10.34,-10.53,-10.69,-10.82,-10.92,-10.98,-11,-11.003,-11.008,-11.014,-11.017,-11.014,-11.003,-10.98,-10.95,-10.9,-10.83,-10.74,-10.64,-10.51,-10.36,-10.19,-10,-9.7,-9.29,-8.78,-8.18,-7.52,-6.8,-6.04,-5.26,-4.48,-3.71,-2.97,-2.28,-1.65,-1.11,-0.65,-0.3,-0.08,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-11.67,-10.73,-9.25,-7.31,-5.04,-2.42,0.42,3.42,6.5,9.58,12.58,15.42,18.04,20.31,22.25,23.73,24.67,25,24.37,22.59,19.79,16.23,11.99,7.37,2.49,-2.49,-7.37,-11.99,-16.23,-19.79,-22.59,-24.37,-25,-24.39,-22.68,-20.04,-16.64,-12.7,-8.35,-3.88,0.69,5.13,9.37,13.17,16.53,19.27,21.29,22.57,23,22.79,22.21,21.29,20.09,18.67,17.05,15.28,13.41,11.5,9.59,7.72,5.95,4.33,2.91,1.71,0.79,0.21,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_BUST_Y=0,0.001,0.004,0.009,0.016,0.024,0.033,0.044,0.056,0.069,0.083,0.098,0.113,0.128,0.144,0.16,0.176,0.192,0.207,0.222,0.237,0.251,0.264,0.276,0.287,0.296,0.304,0.311,0.316,0.319,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.6,-15.52,-13.87,-11.82,-9.46,-6.88,-4.12,-1.37,1.43,4.08,6.59,8.91,10.95,12.62,13.9,14.71,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15\r\r\nPARAM_BODY_ANGLE_X=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.9,-9.66,-9.33,-8.95,-8.55,-8.16,-7.79,-7.48,-7.22,-7.06,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.92,4.72,4.41,4.03,3.59,3.1,2.59,2.07,1.54,1.05,0.58,0.14,-0.24,-0.55,-0.79,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ARM_R_B=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.996,4.986,4.969,4.95,4.92,4.9,4.87,4.84,4.81,4.79,4.76,4.74,4.723,4.711,4.703,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5.1,-5.37,-5.78,-6.29,-6.89,-7.53,-8.22,-8.91,-9.61,-10.27,-10.9,-11.48,-11.99,-12.41,-12.72,-12.93,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.85,-20.45,-19.83,-19.06,-18.17,-17.2,-16.17,-15.14,-14.09,-13.1,-12.15,-11.29,-10.52,-9.89,-9.41,-9.11,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.61,0.29,0.07,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.014,-0.05,-0.11,-0.17,-0.24,-0.3,-0.36,-0.4,-0.41,-0.396,-0.36,-0.3,-0.23,-0.15,-0.07,0.01,0.09,0.16,0.22,0.26,0.27,0.24,0.15,0.05,-0.04,-0.12,-0.17,-0.19,-0.176,-0.14,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.61,0.29,0.07,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.76,-0.62,-0.44,-0.21,0.01,0.24,0.46,0.64,0.78,0.88,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91\r\r\nPARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.31,0.25,0.17,0.08,-0.01,-0.11,-0.19,-0.27,-0.33,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_ARM_L_B=-1\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-17,-16.85,-16.43,-15.74,-14.81,-13.65,-12.31,-10.79,-9.11,-7.29,-5.35,-3.28,-1.17,1.04,3.26,5.5,7.74,9.96,12.17,14.28,16.35,18.29,20.11,21.79,23.31,24.65,25.81,26.74,27.43,27.85,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27.93,27.71,27.36,26.88,26.28,25.58,24.8,23.92,22.97,21.95,20.88,19.76,18.6,17.42,16.21,15,13.81,13,12.47,12.16,12.03,12,12.85,14.69,16.99,19.37,21.55,23.35,24.55,25,25,25,25,25,25,25,25,24.94,24.75,24.45,24.01,23.45,22.76,21.91,20.94,19.79,18.5,17,15.11,13.32,11.64,10.17,8.88,7.83,7.02,6.45,6.11,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_X=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.9,4.79,4.65,4.48,4.29,4.1,3.9,3.71,3.52,3.35,3.21,3.1,3.03,3,3.06,3.22,3.46,3.76,4.1,4.46,4.81,5.13,5.42,5.66,5.85,5.96,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.31,0.52,0.75,1,1.25,1.48,1.69,1.85,1.96,2,1.93,1.75,1.48,1.16,0.84,0.52,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_B=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.993,-0.974,-0.94,-0.91,-0.86,-0.8,-0.74,-0.68,-0.61,-0.54,-0.46,-0.39,-0.32,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.987,-9.95,-9.9,-9.83,-9.74,-9.65,-9.56,-9.46,-9.37,-9.28,-9.2,-9.13,-9.08,-9.04,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9.13,-9.45,-9.89,-10.4,-10.93,-11.45,-11.95,-12.37,-12.7,-12.92,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.87,16.52,15.97,15.26,14.44,13.53,12.6,11.65,10.72,9.84,9.05,8.35,7.78,7.36,7.09,7,7.15,7.55,8.13,8.85,9.64,10.47,11.32,12.13,12.9,13.59,14.16,14.61,14.9,15,15,15,15,15,15,15,15,14.9,14.66,14.33,13.95,13.55,13.16,12.79,12.48,12.22,12.06,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.29,-0.41,-0.45,-0.41,-0.32,-0.18,-0.03,0.14,0.29,0.42,0.52,0.58,0.6,0.57,0.48,0.35,0.2,0.04,-0.11,-0.24,-0.33,-0.36,-0.32,-0.23,-0.13,-0.01,0.09,0.17,0.23,0.25,0.231,0.19,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0.5\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.469,-0.466,-0.461,-0.454,-0.447,-0.439,-0.43,-0.422,-0.414,-0.406,-0.398,-0.392,-0.387,-0.383,-0.381,-0.38,-0.382,-0.388,-0.397,-0.409,-0.424,-0.442,-0.46,-0.481,-0.5,-0.52,-0.55,-0.57,-0.59,-0.61,-0.628,-0.646,-0.661,-0.673,-0.682,-0.688,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69\r\r\nPARAM_EYE_BALL_Y=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.496,0.486,0.47,0.45,0.43,0.4,0.37,0.34,0.32,0.29,0.27,0.249,0.233,0.22,0.213,0.21,0.21,0.212,0.214,0.218,0.221,0.226,0.231,0.236,0.242,0.247,0.253,0.258,0.264,0.269,0.274,0.279,0.282,0.286,0.288,0.289,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_ARM_L_B=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.015,3.06,3.12,3.21,3.31,3.42,3.53,3.64,3.75,3.86,3.95,4.04,4.11,4.16,4.19,4.2,4.194,4.179,4.16,4.13,4.1,4.07,4.04,4.01,3.98,3.95,3.93,3.915,3.904,3.9,3.9,3.9,3.9,3.9,3.9,3.9,3.9,3.87,3.8,3.68,3.53,3.34,3.12,2.89,2.63,2.36,2.09,1.81,1.54,1.27,1.01,0.78,0.56,0.37,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.65,16.66,15.1,13.06,10.66,7.91,4.91,1.74,-1.5,-4.74,-7.91,-10.91,-13.66,-16.06,-18.1,-19.66,-20.65,-21,-20.29,-18.46,-15.78,-12.46,-8.78,-4.93,-1.04,2.75,6.28,9.47,12.11,14.19,15.53,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\r\r\nPARAM_BODY_ANGLE_X=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.991,2.97,2.93,2.87,2.81,2.74,2.66,2.58,2.5,2.42,2.34,2.26,2.19,2.13,2.07,2.03,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.93,-1.75,-1.48,-1.16,-0.84,-0.52,-0.25,-0.07,0,-0.13,-0.41,-0.77,-1.13,-1.47,-1.75,-1.93,-2,-1.85,-1.48,-1,-0.52,-0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.91,-6.66,-6.26,-5.73,-5.12,-4.41,-3.64,-2.83,-2,-1.17,-0.36,0.41,1.12,1.73,2.26,2.66,2.91,3,2.92,2.73,2.44,2.08,1.68,1.26,0.84,0.43,0.05,-0.29,-0.58,-0.8,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ARM_R_B=4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-8\r\r\nPARAM_BROW_R_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_ANGLE_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.87,9.52,8.96,8.23,7.37,6.38,5.3,4.16,3,1.84,0.7,-0.38,-1.37,-2.23,-2.96,-3.52,-3.87,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.42,0.59,0.65,0.58,0.43,0.24,0.04,-0.14,-0.29,-0.39,-0.43,-0.4,-0.32,-0.21,-0.08,0.06,0.19,0.3,0.38,0.41,0.34,0.18,-0.01,-0.21,-0.36,-0.46,-0.49,-0.42,-0.25,-0.05,0.16,0.35,0.51,0.61,0.65,0.58,0.41,0.19,-0.01,-0.18,-0.28,-0.32,-0.28,-0.19,-0.07,0.06,0.15,0.19,0.16,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32\r\r\nPARAM_EYE_BALL_Y=0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_ARM_L_B=2.5\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/motions/tapBody_09.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.018,-0.05,-0.07,-0.092,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.89,2.32,3.66,4.62,5,4.84,4.44,3.89,3.25,2.59,1.93,1.31,0.79,0.37,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.14,0.22,0.28,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.1,-0.15,-0.19,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.17,-0.11,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.18,1.46,1.73,1.92,2,1.52,0.72,0.18,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.28,-0.38,-0.19,0.12,0.4,0.61,0.69,0.51,0.23,-0.03,-0.23,-0.3,-0.27,-0.18,-0.07,0.04,0.13,0.16,0.13,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09,0.23,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.32,0.04,-0.23,-0.42,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_BALL_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-1,-1,-1,-1,-1,-1,-0.82,-0.54,-0.27,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.14,0.22,0.28,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.018,-0.05,-0.07,-0.092,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.42,0.38,0.34,0.33,0.343,0.38,0.42,0.48,0.53,0.59,0.64,0.68,0.72,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09,0.23,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.32,0.04,-0.23,-0.42,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.18,1.46,1.73,1.92,2,1.52,0.72,0.18,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.13,0.25,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.42,0.38,0.34,0.33,0.343,0.38,0.42,0.48,0.53,0.59,0.64,0.68,0.72,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/physics.json",
    "content": "{\n    \"type\": \"Live2D Physics\",\n    \"physics_hair\": [\n    {\n        \"comment\": \"hair front\",\n        \"setup\":\n        {\n            \"length\": 0.17,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_FRONT\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair back\",\n        \"setup\":\n        {\n            \"length\": 0.34,\n            \"regist\": 0.5,\n            \"mass\": 0.2\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_BACK\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/pose.json",
    "content": "{\n    \"type\": \"Live2D Pose\",\n    \"parts_visible\": [\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_L_A_001\",\n            \"link\": [\"PARTS_01_ARM_L_A_002\"]\n        },\n        {\n            \"id\": \"PARTS_01_ARM_L_B_001\",\n            \"link\": [\"PARTS_01_ARM_L_B_002\"]\n        }]\n    },\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_R_A_001\",\n            \"link\": [\"PARTS_01_ARM_R_A_002\"]\n        },\n        {\n            \"id\": \"PARTS_01_ARM_R_B_001\",\n            \"link\": [\"PARTS_01_ARM_R_B_002\"]\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f01.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f02.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_MOUTH_FORM\",\"val\":0,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f03.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":-0.5},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f04.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_FORM\",\"val\":1},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.5,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f05.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_L_SMILE\",\"val\":1},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_SMILE\",\"val\":1},{\"id\":\"PARAM_BROW_L_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.2},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.2}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f06.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":2,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":2,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_BALL_FORM\",\"val\":-1},{\"id\":\"PARAM_BROW_L_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_R_Y\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-0.21,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f07.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.9,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_FORM\",\"val\":0.3},{\"id\":\"PARAM_BROW_L_ANGLE\",\"val\":0.25},{\"id\":\"PARAM_BROW_R_ANGLE\",\"val\":0.25},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.47},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.43},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":0.5,\"def\":1},{\"id\":\"PARAM_TERE\",\"val\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/expressions/f08.exp.json",
    "content": "{\"type\":\"Live2D Expression\",\"fade_in\":500,\"fade_out\":500,\"params\":[{\"id\":\"PARAM_EYE_L_OPEN\",\"val\":0.8,\"calc\":\"mult\"},{\"id\":\"PARAM_EYE_R_OPEN\",\"val\":0.8,\"calc\":\"mult\"},{\"id\":\"PARAM_BROW_L_FORM\",\"val\":-0.5},{\"id\":\"PARAM_BROW_R_FORM\",\"val\":-0.5},{\"id\":\"PARAM_MOUTH_FORM\",\"val\":-1,\"def\":1}]}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/index.json",
    "content": "{\n    \"type\": \"Live2D Model Setting\",\n    \"name\": \"haru\",\n    \"model\": \"moc/haru01.moc\",\n    \"textures\": [\"texture_00.png\", \"texture_01.png\", \"texture_02.png\"],\n    \"physics\": \"physics.json\",\n    \"pose\": \"pose.json\",\n    \"expressions\": [\n    {\n        \"name\": \"f01\",\n        \"file\": \"expressions/f01.exp.json\"\n    },\n    {\n        \"name\": \"f02\",\n        \"file\": \"expressions/f02.exp.json\"\n    },\n    {\n        \"name\": \"f03\",\n        \"file\": \"expressions/f03.exp.json\"\n    },\n    {\n        \"name\": \"f04\",\n        \"file\": \"expressions/f04.exp.json\"\n    },\n    {\n        \"name\": \"f05\",\n        \"file\": \"expressions/f05.exp.json\"\n    },\n    {\n        \"name\": \"f06\",\n        \"file\": \"expressions/f06.exp.json\"\n    },\n    {\n        \"name\": \"f07\",\n        \"file\": \"expressions/f07.exp.json\"\n    },\n    {\n        \"name\": \"f08\",\n        \"file\": \"expressions/f08.exp.json\"\n    }],\n    \"layout\":\n    {\n        \"center_x\": 0,\n        \"center_y\": -0.05,\n        \"width\": 1.8\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.35, 0.6],\n        \"head_y\":[0.19, -0.2],\n        \"body_x\":[-0.3, -0.25],\n        \"body_y\":[0.3, -0.9]\n    },\n    \"hit_areas\": [\n    {\n        \"name\": \"head\",\n        \"id\": \"D_REF.HEAD\"\n    },\n    {\n        \"name\": \"body\",\n        \"id\": \"D_REF.BODY\"\n    }],\n    \"motions\":\n    {\n        \"idle\": [\n        {\n            \"file\": \"motions/idle_00.mtn\"\n        },\n        {\n            \"file\": \"motions/idle_01.mtn\"\n        },\n        {\n            \"file\": \"motions/idle_02.mtn\"\n        }],\n        \"tap_body\": [\n        {\n            \"file\": \"motions/tapBody_00.mtn\"\n        },\n        {\n            \"file\": \"motions/tapBody_01.mtn\"\n        },\n        {\n            \"file\": \"motions/tapBody_02.mtn\"\n        }],\n        \"pinch_in\": [\n        {\n            \"file\": \"motions/pinchIn_00.mtn\"\n        }],\n        \"pinch_out\": [\n        {\n            \"file\": \"motions/pinchOut_00.mtn\"\n        }],\n        \"shake\": [\n        {\n            \"file\": \"mtn/shake_00.mtn\"\n        }],\n        \"flick_head\": [\n        {\n            \"file\": \"mtn/flickHead_00.mtn\"\n        }]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/flickHead_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=14,13.79,13.18,12.23,10.96,9.42,7.64,5.72,3.61,1.4,-0.88,-3.12,-5.4,-7.61,-9.72,-11.64,-13.42,-14.96,-16.23,-17.18,-17.79,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_BODY_ANGLE_X=3\r\r\nPARAM_BODY_ANGLE_Y=0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=1,0.94,0.76,0.48,0.12,-0.3,-0.76,-1.25,-1.75,-2.24,-2.7,-3.12,-3.48,-3.76,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=8\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.4,0.79,0.796,0.8,0.7,0.61,0.51,0.42,0.55,0.67,0.55,0.42,0.52,0.61,0.51,0.4,0.396,0.392,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=1\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/idle_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,0.005,0.021,0.05,0.08,0.12,0.18,0.24,0.31,0.39,0.48,0.57,0.68,0.79,0.91,1.03,1.17,1.31,1.46,1.62,1.78,1.95,2.13,2.31,2.5,2.7,2.9,3.11,3.32,3.54,3.77,4,4.24,4.49,4.74,5,5.27,5.54,5.8,6.06,6.3,6.54,6.77,6.99,7.21,7.42,7.62,7.82,8.01,8.19,8.37,8.54,8.7,8.86,9.01,9.15,9.3,9.43,9.56,9.68,9.79,9.9,10.01,10.11,10.2,10.29,10.37,10.45,10.52,10.59,10.65,10.71,10.76,10.81,10.85,10.88,10.91,10.94,10.96,10.979,10.991,10.998,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.95,10.82,10.61,10.33,9.99,9.59,9.14,8.64,8.12,7.54,6.95,6.34,5.71,5.06,4.41,3.75,3.11,2.47,1.85,1.24,0.65,0.09,-0.43,-0.93,-1.37,-1.78,-2.13,-2.43,-2.67,-2.85,-2.96,-3,-3,-3,-3,-3,-3,-3,-2.94,-2.76,-2.49,-2.12,-1.69,-1.21,-0.68,-0.13,0.43,0.99,1.53,2.04,2.52,2.94,3.3,3.6,3.82,3.95,4,3.96,3.86,3.71,3.5,3.25,2.96,2.64,2.29,1.93,1.54,1.15,0.75,0.35,-0.05,-0.43,-0.81,-1.17,-1.51,-1.83,-2.11,-2.37,-2.58,-2.76,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.98,-2.91,-2.79,-2.64,-2.46,-2.25,-2,-1.74,-1.45,-1.16,-0.84,-0.52,-0.2,0.12,0.44,0.76,1.07,1.36,1.64,1.9,2.14,2.35,2.54,2.7,2.83,2.92,2.98,3,2.993,2.973,2.94,2.9,2.84,2.78,2.7,2.62,2.53,2.44,2.33,2.23,2.11,2,1.88,1.76,1.64,1.52,1.39,1.27,1.15,1.03,0.92,0.81,0.7,0.6,0.51,0.42,0.34,0.26,0.2,0.14,0.09,0.05,0.02,0.006,0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.003,0.014,0.032,0.06,0.09,0.13,0.18,0.24,0.31,0.38,0.46,0.56,0.66,0.78,0.9,1.03,1.18,1.33,1.5,1.68,1.87,2.07,2.28,2.51,2.75,3,3.28,3.55,3.82,4.09,4.34,4.6,4.85,5.09,5.33,5.56,5.78,6,6.22,6.43,6.64,6.83,7.02,7.21,7.4,7.57,7.74,7.91,8.07,8.22,8.37,8.51,8.64,8.77,8.89,9.01,9.12,9.23,9.32,9.41,9.5,9.58,9.65,9.72,9.77,9.83,9.87,9.91,9.94,9.97,9.986,9.996,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.984,9.94,9.86,9.76,9.64,9.5,9.33,9.16,8.97,8.77,8.56,8.35,8.13,7.92,7.71,7.5,7.29,7.09,6.91,6.73,6.57,6.43,6.31,6.2,6.11,6.05,6.01,6,6,6,6,6,6,6,6,6,6,5.987,5.95,5.89,5.8,5.7,5.58,5.45,5.31,5.15,4.99,4.83,4.66,4.49,4.33,4.16,4,3.81,3.64,3.47,3.32,3.18,3.05,2.93,2.82,2.72,2.62,2.54,2.46,2.39,2.33,2.27,2.22,2.17,2.13,2.1,2.07,2.05,2.031,2.017,2.008,2.002,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.009,2.03,2.07,2.13,2.19,2.26,2.34,2.42,2.5,2.58,2.66,2.74,2.81,2.87,2.93,2.97,2.99,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.22,2.13,2.03,1.92,1.82,1.71,1.61,1.5,1.39,1.29,1.18,1.08,0.97,0.87,0.78,0.68,0.59,0.51,0.43,0.35,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.06,-0.11,-0.17,-0.23,-0.3,-0.38,-0.47,-0.56,-0.65,-0.75,-0.85,-0.95,-1.05,-1.16,-1.26,-1.36,-1.45,-1.55,-1.64,-1.72,-1.8,-1.87,-1.94,-2,-2.06,-2.12,-2.17,-2.22,-2.27,-2.32,-2.36,-2.4,-2.44,-2.48,-2.52,-2.55,-2.59,-2.62,-2.65,-2.68,-2.7,-2.73,-2.75,-2.78,-2.8,-2.816,-2.835,-2.851,-2.867,-2.882,-2.896,-2.908,-2.92,-2.93,-2.94,-2.949,-2.957,-2.964,-2.97,-2.975,-2.98,-2.985,-2.988,-2.991,-2.994,-2.996,-2.997,-2.999,-2.999,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.67,-2.58,-2.48,-2.39,-2.28,-2.17,-2.07,-1.96,-1.85,-1.75,-1.64,-1.55,-1.45,-1.37,-1.29,-1.22,-1.15,-1.1,-1.06,-1.03,-1.006,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.01,-1.04,-1.09,-1.15,-1.23,-1.33,-1.45,-1.57,-1.71,-1.87,-2.03,-2.21,-2.4,-2.59,-2.79,-3,-3.25,-3.49,-3.71,-3.92,-4.12,-4.31,-4.48,-4.65,-4.8,-4.94,-5.08,-5.2,-5.32,-5.42,-5.51,-5.6,-5.68,-5.75,-5.81,-5.86,-5.9,-5.94,-5.96,-5.984,-5.996,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.72,-5.57,-5.4,-5.22,-5.03,-4.82,-4.61,-4.39,-4.18,-3.97,-3.78,-3.6,-3.43,-3.28,-3.17,-3.08,-3.02,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.996,-2.985,-2.967,-2.94,-2.91,-2.87,-2.83,-2.78,-2.72,-2.66,-2.6,-2.52,-2.45,-2.37,-2.28,-2.19,-2.1,-2,-1.9,-1.81,-1.71,-1.62,-1.54,-1.45,-1.37,-1.29,-1.21,-1.14,-1.06,-0.99,-0.93,-0.86,-0.8,-0.74,-0.68,-0.63,-0.58,-0.53,-0.48,-0.43,-0.39,-0.35,-0.31,-0.27,-0.24,-0.21,-0.18,-0.15,-0.13,-0.11,-0.085,-0.067,-0.051,-0.038,-0.026,-0.017,-0.009,-0.004,-0.001,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0,-0,-0.002,-0.004,-0.008,-0.015,-0.024,-0.037,-0.053,-0.073,-0.1,-0.13,-0.16,-0.2,-0.25,-0.3,-0.36,-0.42,-0.5,-0.58,-0.67,-0.77,-0.87,-0.99,-1.12,-1.25,-1.4,-1.56,-1.72,-1.91,-2.1,-2.3,-2.52,-2.75,-3,-3.27,-3.55,-3.83,-4.12,-4.4,-4.69,-4.98,-5.27,-5.57,-5.86,-6.15,-6.45,-6.74,-7.03,-7.32,-7.6,-7.88,-8.16,-8.44,-8.71,-8.98,-9.24,-9.5,-9.74,-9.99,-10.22,-10.46,-10.68,-10.9,-11.11,-11.3,-11.5,-11.68,-11.85,-12.01,-12.16,-12.3,-12.43,-12.54,-12.64,-12.74,-12.82,-12.88,-12.93,-12.97,-12.99,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.84,-12.64,-12.37,-12.04,-11.65,-11.21,-10.73,-10.21,-9.65,-9.06,-8.46,-7.84,-7.21,-6.58,-5.95,-5.33,-4.71,-4.11,-3.54,-2.99,-2.48,-2,-1.56,-1.17,-0.82,-0.54,-0.31,-0.14,-0.04,0,0,0,0,0,0,0,0,-0.09,-0.34,-0.74,-1.26,-1.87,-2.56,-3.32,-4.1,-4.9,-5.7,-6.47,-7.2,-7.88,-8.48,-9,-9.43,-9.74,-9.93,-10,-9.93,-9.75,-9.46,-9.07,-8.61,-8.07,-7.47,-6.83,-6.15,-5.43,-4.71,-3.97,-3.21,-2.48,-1.77,-1.06,-0.4,0.24,0.82,1.35,1.82,2.23,2.55,2.8,2.95,3,2.983,2.93,2.85,2.74,2.59,2.43,2.23,2.02,1.78,1.53,1.25,0.97,0.66,0.35,0.03,-0.3,-0.64,-0.98,-1.33,-1.67,-2.02,-2.36,-2.7,-3.03,-3.35,-3.66,-3.97,-4.25,-4.53,-4.78,-5.02,-5.23,-5.43,-5.59,-5.74,-5.85,-5.93,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.04,-6.16,-6.34,-6.59,-6.9,-7.26,-7.66,-8.1,-8.58,-9.07,-9.6,-10.13,-10.66,-11.21,-11.74,-12.26,-12.78,-13.27,-13.73,-14.17,-14.57,-14.92,-15.24,-15.5,-15.71,-15.87,-15.97,-16,-15.96,-15.86,-15.68,-15.45,-15.16,-14.82,-14.42,-13.99,-13.51,-12.99,-12.45,-11.87,-11.28,-10.66,-10.03,-9.39,-8.74,-8.08,-7.43,-6.79,-6.14,-5.52,-4.91,-4.32,-3.75,-3.21,-2.71,-2.23,-1.79,-1.39,-1.04,-0.73,-0.48,-0.27,-0.12,-0.03,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.019,0.08,0.17,0.29,0.44,0.63,0.83,1.06,1.31,1.59,1.88,2.18,2.5,2.84,3.18,3.53,3.9,4.27,4.64,5.01,5.39,5.77,6.14,6.52,6.88,7.24,7.6,7.94,8.28,8.6,8.91,9.21,9.49,9.75,10,10.24,10.48,10.71,10.92,11.13,11.32,11.51,11.68,11.85,12.01,12.16,12.3,12.44,12.56,12.68,12.8,12.9,13,13.1,13.18,13.26,13.34,13.41,13.47,13.53,13.59,13.64,13.69,13.73,13.77,13.8,13.83,13.86,13.89,13.91,13.925,13.941,13.955,13.966,13.976,13.983,13.989,13.993,13.997,13.999,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.95,13.82,13.61,13.32,12.96,12.55,12.08,11.55,11,10.39,9.76,9.11,8.45,7.77,7.08,6.41,5.73,5.07,4.43,3.81,3.22,2.67,2.15,1.67,1.25,0.89,0.58,0.33,0.15,0.04,0,0,0,0,0,0,0,0,0.003,0.011,0.02,0.03,0.039,0.043,0.041,0.032,0.013,-0.02,-0.06,-0.12,-0.19,-0.28,-0.38,-0.51,-0.65,-0.82,-1,-1.28,-1.66,-2.11,-2.64,-3.22,-3.86,-4.54,-5.24,-5.97,-6.72,-7.47,-8.23,-8.98,-9.71,-10.42,-11.11,-11.76,-12.37,-12.94,-13.44,-13.89,-14.27,-14.58,-14.81,-14.95,-15,-14.989,-14.95,-14.9,-14.82,-14.73,-14.62,-14.49,-14.35,-14.19,-14.02,-13.84,-13.65,-13.44,-13.24,-13.02,-12.8,-12.57,-12.35,-12.11,-11.89,-11.65,-11.43,-11.2,-10.98,-10.76,-10.56,-10.35,-10.16,-9.98,-9.81,-9.65,-9.51,-9.38,-9.27,-9.18,-9.1,-9.05,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-8.993,-8.973,-8.94,-8.9,-8.84,-8.77,-8.69,-8.61,-8.51,-8.4,-8.28,-8.16,-8.02,-7.88,-7.74,-7.58,-7.42,-7.25,-7.08,-6.9,-6.72,-6.53,-6.35,-6.15,-5.95,-5.76,-5.55,-5.35,-5.14,-4.94,-4.73,-4.53,-4.32,-4.11,-3.91,-3.7,-3.5,-3.3,-3.1,-2.91,-2.71,-2.52,-2.34,-2.16,-1.98,-1.81,-1.65,-1.49,-1.33,-1.19,-1.05,-0.91,-0.78,-0.67,-0.56,-0.46,-0.36,-0.28,-0.21,-0.15,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.017,0.037,0.06,0.09,0.13,0.17,0.2,0.24,0.29,0.32,0.36,0.39,0.42,0.45,0.47,0.487,0.497,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.497,0.488,0.473,0.455,0.43,0.41,0.38,0.35,0.32,0.29,0.25,0.22,0.19,0.16,0.13,0.1,0.08,0.06,0.037,0.021,0.01,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0,-0.001,-0.003,-0.005,-0.008,-0.011,-0.015,-0.019,-0.024,-0.03,-0.036,-0.042,-0.048,-0.056,-0.063,-0.071,-0.079,-0.087,-0.096,-0.105,-0.114,-0.123,-0.133,-0.143,-0.153,-0.163,-0.173,-0.183,-0.194,-0.204,-0.215,-0.225,-0.236,-0.246,-0.257,-0.267,-0.277,-0.287,-0.297,-0.307,-0.317,-0.326,-0.335,-0.344,-0.353,-0.361,-0.369,-0.377,-0.384,-0.392,-0.398,-0.404,-0.41,-0.416,-0.421,-0.425,-0.429,-0.432,-0.435,-0.437,-0.439,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.437,-0.43,-0.418,-0.402,-0.382,-0.36,-0.33,-0.3,-0.27,-0.24,-0.21,-0.17,-0.14,-0.1,-0.07,-0.03,0,0.04,0.07,0.11,0.14,0.17,0.2,0.22,0.24,0.258,0.273,0.287,0.298,0.308,0.316,0.323,0.328,0.332,0.335,0.338,0.339,0.34,0.34,0.29,0.15,-0.02,-0.19,-0.33,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.379,-0.378,-0.375,-0.371,-0.365,-0.359,-0.351,-0.341,-0.331,-0.319,-0.305,-0.291,-0.274,-0.256,-0.237,-0.216,-0.19,-0.17,-0.14,-0.11,-0.08,-0.05,-0.02,0.06,0.14,0.21,0.26,0.28,0.28,0.277,0.274,0.27,0.265,0.259,0.252,0.245,0.236,0.227,0.218,0.208,0.197,0.187,0.176,0.164,0.153,0.141,0.13,0.119,0.107,0.097,0.086,0.076,0.066,0.056,0.047,0.039,0.031,0.024,0.018,0.013,0.008,0.005,0.002,0.001,0\r\r\nPARAM_EYE_BALL_Y=0,0,0.002,0.004,0.007,0.011,0.016,0.022,0.028,0.035,0.043,0.051,0.06,0.069,0.079,0.09,0.101,0.113,0.125,0.137,0.15,0.163,0.177,0.191,0.205,0.219,0.233,0.248,0.263,0.278,0.292,0.308,0.322,0.338,0.352,0.367,0.382,0.397,0.411,0.425,0.439,0.453,0.467,0.48,0.493,0.505,0.517,0.529,0.54,0.551,0.561,0.57,0.579,0.587,0.595,0.602,0.608,0.614,0.619,0.623,0.626,0.628,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.628,0.624,0.616,0.606,0.594,0.58,0.563,0.545,0.525,0.5,0.48,0.46,0.44,0.41,0.39,0.36,0.34,0.31,0.29,0.26,0.24,0.22,0.195,0.178,0.162,0.148,0.136,0.125,0.116,0.108,0.101,0.096,0.091,0.087,0.085,0.082,0.081,0.08,0.08,0.096,0.13,0.19,0.24,0.27,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.292,0.296,0.303,0.313,0.324,0.337,0.351,0.365,0.381,0.397,0.413,0.429,0.445,0.46,0.475,0.488,0.501,0.512,0.521,0.529,0.535,0.539,0.54,0.54,0.54,0.54,0.54,0.54,0.539,0.535,0.529,0.521,0.512,0.5,0.487,0.472,0.456,0.438,0.42,0.401,0.381,0.36,0.34,0.32,0.29,0.27,0.25,0.23,0.21,0.19,0.17,0.146,0.127,0.108,0.091,0.075,0.06,0.047,0.035,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.93,-5.74,-5.43,-5.02,-4.53,-3.94,-3.3,-2.59,-1.84,-1.05,-0.25,0.57,1.38,2.17,2.94,3.68,4.37,5,5.61,6.18,6.69,7.14,7.55,7.91,8.23,8.52,8.77,8.99,9.19,9.35,9.49,9.62,9.71,9.79,9.86,9.91,9.95,9.97,9.989,9.997,10,9.97,9.89,9.77,9.59,9.37,9.12,8.82,8.48,8.12,7.72,7.29,6.84,6.37,5.87,5.36,4.83,4.29,3.75,3.19,2.63,2.07,1.51,0.95,0.4,-0.14,-0.68,-1.2,-1.7,-2.2,-2.67,-3.11,-3.54,-3.93,-4.3,-4.64,-4.94,-5.21,-5.44,-5.64,-5.79,-5.91,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.98,-5.92,-5.83,-5.7,-5.54,-5.35,-5.13,-4.89,-4.62,-4.33,-4.02,-3.69,-3.35,-3,-2.63,-2.25,-1.86,-1.46,-1.07,-0.66,-0.25,0.15,0.56,0.96,1.36,1.75,2.14,2.51,2.88,3.23,3.56,3.89,4.2,4.48,4.75,5,5.22,5.42,5.59,5.73,5.85,5.93,5.98,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.02,6.09,6.21,6.36,6.54,6.75,7,7.26,7.55,7.84,8.16,8.48,8.8,9.12,9.44,9.76,10.07,10.36,10.64,10.9,11.14,11.35,11.54,11.7,11.83,11.92,11.98,12,11.982,11.93,11.84,11.73,11.58,11.41,11.2,10.97,10.72,10.44,10.15,9.83,9.49,9.13,8.76,8.38,7.97,7.56,7.13,6.69,6.24,5.79,5.32,4.86,4.38,3.9,3.42,2.94,2.45,1.97,1.49,1.01,0.53,0.06,-0.41,-0.86,-1.31,-1.76,-2.19,-2.61,-3.02,-3.42,-3.8,-4.17,-4.52,-4.85,-5.17,-5.47,-5.75,-6,-6.24,-6.47,-6.69,-6.89,-7.09,-7.27,-7.43,-7.59,-7.74,-7.88,-8,-8.12,-8.23,-8.33,-8.42,-8.5,-8.58,-8.65,-8.71,-8.76,-8.81,-8.85,-8.89,-8.92,-8.95,-8.97,-8.985,-8.999,-9.009,-9.017,-9.021,-9.024,-9.024,-9.023,-9.02,-9.017,-9.013,-9.01,-9.006,-9.003,-9.001,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.14,-0.31,-0.52,-0.77,-1.04,-1.32,-1.61,-1.88,-2.15,-2.39,-2.6,-2.77,-2.89,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.75,-2.66,-2.57,-2.47,-2.37,-2.26,-2.14,-2.02,-1.9,-1.77,-1.64,-1.52,-1.39,-1.26,-1.14,-1.02,-0.9,-0.78,-0.67,-0.57,-0.47,-0.38,-0.3,-0.22,-0.16,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.18,0.25,0.34,0.44,0.54,0.65,0.78,0.9,1.04,1.18,1.32,1.47,1.62,1.77,1.92,2.08,2.23,2.38,2.53,2.68,2.82,2.96,3.1,3.22,3.35,3.46,3.56,3.66,3.75,3.82,3.88,3.93,3.97,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.007,4.026,4.06,4.1,4.16,4.23,4.31,4.4,4.5,4.61,4.73,4.86,5,5.15,5.31,5.47,5.64,5.82,6,6.22,6.42,6.61,6.78,6.94,7.09,7.22,7.34,7.45,7.55,7.64,7.71,7.78,7.84,7.89,7.93,7.96,7.98,7.996,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.981,7.93,7.84,7.72,7.57,7.39,7.19,6.97,6.72,6.46,6.18,5.9,5.6,5.29,4.98,4.66,4.34,4.02,3.71,3.4,3.1,2.82,2.54,2.28,2.03,1.81,1.61,1.43,1.28,1.16,1.07,1.02,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0.011,0.04,0.09,0.16,0.25,0.35,0.46,0.59,0.73,0.88,1.03,1.19,1.36,1.54,1.71,1.89,2.07,2.24,2.42,2.59,2.76,2.92,3.07,3.22,3.35,3.48,3.59,3.7,3.78,3.86,3.92,3.96,3.99,4,3.994,3.975,3.95,3.91,3.86,3.81,3.76,3.7,3.64,3.57,3.51,3.44,3.38,3.32,3.26,3.21,3.16,3.11,3.07,3.04,3.02,3.005,3,3,3,3,3,3,3,3,3,2.992,2.97,2.93,2.88,2.82,2.75,2.66,2.57,2.47,2.37,2.26,2.14,2.02,1.9,1.77,1.64,1.52,1.39,1.26,1.14,1.02,0.9,0.78,0.67,0.57,0.47,0.38,0.3,0.22,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.81,-0.88,-0.96,-1.04,-1.12,-1.19,-1.27,-1.34,-1.41,-1.48,-1.55,-1.61,-1.67,-1.73,-1.78,-1.83,-1.87,-1.91,-1.94,-1.97,-1.985,-1.996,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.018,-2.07,-2.15,-2.25,-2.37,-2.51,-2.66,-2.82,-2.98,-3.14,-3.29,-3.44,-3.58,-3.7,-3.8,-3.89,-3.95,-3.99,-4,-3.983,-3.93,-3.86,-3.76,-3.65,-3.52,-3.38,-3.24,-3.09,-2.94,-2.8,-2.66,-2.52,-2.4,-2.29,-2.19,-2.11,-2.05,-2.01,-2,-2.01,-2.04,-2.08,-2.15,-2.22,-2.31,-2.41,-2.53,-2.65,-2.78,-2.91,-3.06,-3.2,-3.35,-3.5,-3.65,-3.8,-3.94,-4.09,-4.22,-4.35,-4.47,-4.59,-4.69,-4.78,-4.85,-4.92,-4.96,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.987,-4.95,-4.88,-4.8,-4.69,-4.57,-4.42,-4.26,-4.09,-3.9,-3.7,-3.5,-3.28,-3.06,-2.84,-2.61,-2.39,-2.16,-1.94,-1.72,-1.5,-1.3,-1.1,-0.91,-0.74,-0.58,-0.43,-0.31,-0.2,-0.12,-0.05,-0.01,0,0,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.64,-4.45,-4.26,-4.06,-3.86,-3.65,-3.45,-3.24,-3.03,-2.82,-2.61,-2.4,-2.2,-1.99,-1.8,-1.61,-1.43,-1.25,-1.08,-0.92,-0.78,-0.64,-0.51,-0.4,-0.3,-0.21,-0.14,-0.08,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.9,4.63,4.23,3.69,3.07,2.37,1.61,0.83,0.01,-0.81,-1.61,-2.38,-3.12,-3.8,-4.42,-4.96,-5.39,-5.72,-5.93,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.99,-5.96,-5.91,-5.85,-5.76,-5.67,-5.56,-5.43,-5.29,-5.14,-4.98,-4.81,-4.63,-4.44,-4.25,-4.05,-3.85,-3.64,-3.43,-3.22,-3,-2.78,-2.57,-2.36,-2.15,-1.95,-1.75,-1.56,-1.37,-1.19,-1.02,-0.86,-0.71,-0.57,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,-0.05,-0.19,-0.41,-0.7,-1.02,-1.39,-1.76,-2.14,-2.51,-2.86,-3.18,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.993,-3.973,-3.94,-3.9,-3.84,-3.78,-3.7,-3.62,-3.53,-3.43,-3.32,-3.21,-3.09,-2.97,-2.84,-2.71,-2.57,-2.44,-2.3,-2.16,-2.02,-1.88,-1.74,-1.6,-1.46,-1.33,-1.2,-1.07,-0.95,-0.83,-0.72,-0.62,-0.52,-0.43,-0.34,-0.27,-0.2,-0.14,-0.09,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.16,0.28,0.42,0.6,0.81,1.04,1.29,1.57,1.87,2.19,2.53,2.88,3.25,3.63,4.02,4.43,4.85,5.26,5.69,6.13,6.56,7,7.44,7.87,8.31,8.74,9.15,9.57,9.98,10.37,10.75,11.12,11.47,11.81,12.13,12.43,12.71,12.96,13.19,13.4,13.58,13.72,13.84,13.93,13.98,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.98,13.91,13.8,13.64,13.45,13.22,12.96,12.67,12.35,11.99,11.63,11.23,10.81,10.37,9.92,9.45,8.98,8.49,8,7.5,7,6.5,6,5.51,5.02,4.55,4.08,3.63,3.19,2.77,2.37,2.01,1.65,1.33,1.04,0.78,0.55,0.36,0.2,0.09,0.02,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.13,0.18,0.24,0.3,0.36,0.4,0.44,0.47,0.493,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.49,0.46,0.42,0.37,0.31,0.25,0.19,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,0.003,0.011,0.024,0.04,0.059,0.08,0.1,0.12,0.14,0.165,0.183,0.199,0.212,0.222,0.228,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.23,0.229,0.224,0.218,0.209,0.197,0.184,0.169,0.151,0.132,0.11,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.07,-0.09,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.32,-0.35,-0.38,-0.4,-0.43,-0.45,-0.47,-0.493,-0.512,-0.529,-0.545,-0.559,-0.571,-0.581,-0.589,-0.595,-0.599,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.6,-0.581,-0.53,-0.47,-0.39,-0.31,-0.23,-0.16,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.008,-0.017,-0.029,-0.044,-0.062,-0.081,-0.1,-0.13,-0.15,-0.18,-0.2,-0.23,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.4,-0.42,-0.437,-0.453,-0.466,-0.476,-0.484,-0.488,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.49,-0.489,-0.487,-0.483,-0.478,-0.471,-0.463,-0.454,-0.443,-0.432,-0.42,-0.407,-0.393,-0.378,-0.363,-0.347,-0.331,-0.314,-0.297,-0.28,-0.263,-0.245,-0.227,-0.21,-0.193,-0.176,-0.159,-0.143,-0.127,-0.112,-0.097,-0.083,-0.07,-0.058,-0.047,-0.036,-0.027,-0.019,-0.012,-0.007,-0.003,-0.001,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.003,0.012,0.026,0.044,0.06,0.09,0.11,0.13,0.16,0.18,0.199,0.216,0.231,0.241,0.248,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.248,0.246,0.244,0.24,0.236,0.232,0.226,0.221,0.214,0.208,0.201,0.193,0.185,0.178,0.169,0.161,0.152,0.144,0.135,0.126,0.117,0.109,0.1,0.091,0.083,0.075,0.067,0.059,0.052,0.045,0.039,0.032,0.027,0.021,0.017,0.012,0.009,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.002,-0.004,-0.008,-0.012,-0.016,-0.022,-0.027,-0.033,-0.04,-0.047,-0.054,-0.061,-0.068,-0.075,-0.081,-0.088,-0.094,-0.101,-0.106,-0.111,-0.116,-0.12,-0.124,-0.126,-0.128,-0.13,-0.13,-0.127,-0.119,-0.106,-0.09,-0.07,-0.05,-0.03,-0,0.02,0.05,0.07,0.1,0.12,0.14,0.161,0.178,0.191,0.201,0.208,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.207,0.205,0.202,0.198,0.194,0.19,0.185,0.18,0.174,0.168,0.162,0.156,0.149,0.142,0.135,0.127,0.12,0.113,0.105,0.097,0.09,0.083,0.075,0.068,0.061,0.054,0.048,0.042,0.036,0.03,0.025,0.02,0.016,0.012,0.008,0.005,0.003,0.001,0,0,0,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/idle_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.013,-0.05,-0.11,-0.2,-0.31,-0.44,-0.59,-0.75,-0.94,-1.14,-1.35,-1.58,-1.82,-2.07,-2.34,-2.6,-2.88,-3.17,-3.46,-3.75,-4.05,-4.35,-4.65,-4.95,-5.25,-5.54,-5.83,-6.12,-6.4,-6.66,-6.93,-7.18,-7.42,-7.65,-7.86,-8.06,-8.25,-8.41,-8.56,-8.69,-8.8,-8.89,-8.95,-8.99,-9,-8.96,-8.83,-8.63,-8.36,-8.04,-7.64,-7.2,-6.72,-6.19,-5.63,-5.03,-4.42,-3.77,-3.11,-2.45,-1.77,-1.08,-0.4,0.27,0.93,1.58,2.22,2.83,3.42,3.97,4.49,4.97,5.41,5.81,6.16,6.45,6.68,6.86,6.96,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.9,6.63,6.19,5.61,4.91,4.09,3.17,2.17,1.1,-0.02,-1.19,-2.38,-3.61,-4.84,-6.07,-7.29,-8.47,-9.64,-10.74,-11.79,-12.76,-13.68,-14.5,-15.22,-15.83,-16.33,-16.7,-16.92,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.9,-16.62,-16.16,-15.56,-14.83,-13.97,-13.01,-11.97,-10.85,-9.68,-8.47,-7.23,-5.94,-4.66,-3.38,-2.11,-0.88,0.33,1.48,2.58,3.59,4.54,5.4,6.14,6.79,7.3,7.68,7.92,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.9,7.61,7.17,6.57,5.86,5.03,4.11,3.12,2.08,0.98,-0.13,-1.28,-2.44,-3.56,-4.67,-5.75,-6.77,-7.75,-8.65,-9.47,-10.19,-10.81,-11.31,-11.69,-11.92,-12,-11.91,-11.65,-11.24,-10.7,-10.02,-9.24,-8.34,-7.37,-6.33,-5.25,-4.09,-2.92,-1.74,-0.55,0.62,1.78,2.92,3.99,5.01,5.96,6.85,7.62,8.32,8.91,9.37,9.71,9.93,10,9.981,9.92,9.83,9.71,9.55,9.36,9.15,8.91,8.65,8.37,8.07,7.75,7.42,7.07,6.72,6.35,5.99,5.61,5.23,4.86,4.48,4.11,3.74,3.39,3.03,2.69,2.36,2.05,1.75,1.47,1.21,0.97,0.76,0.56,0.4,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,0.019,0.07,0.16,0.27,0.41,0.56,0.73,0.9,1.09,1.28,1.48,1.67,1.86,2.04,2.22,2.38,2.53,2.66,2.78,2.87,2.94,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.008,3.03,3.07,3.12,3.18,3.25,3.33,3.42,3.52,3.62,3.72,3.83,3.94,4.06,4.17,4.28,4.38,4.48,4.58,4.67,4.75,4.82,4.88,4.93,4.97,4.99,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.87,4.72,4.53,4.29,4.02,3.71,3.4,3.06,2.72,2.37,2.03,1.7,1.39,1.09,0.83,0.59,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.998,-3.992,-3.981,-3.967,-3.949,-3.93,-3.9,-3.87,-3.84,-3.8,-3.77,-3.72,-3.68,-3.63,-3.58,-3.53,-3.47,-3.41,-3.35,-3.29,-3.22,-3.16,-3.09,-3.02,-2.94,-2.87,-2.79,-2.71,-2.63,-2.55,-2.47,-2.38,-2.3,-2.21,-2.12,-2.03,-1.94,-1.85,-1.76,-1.67,-1.57,-1.48,-1.38,-1.29,-1.19,-1.1,-1,-0.9,-0.81,-0.72,-0.64,-0.57,-0.5,-0.44,-0.38,-0.33,-0.29,-0.24,-0.21,-0.17,-0.14,-0.12,-0.1,-0.076,-0.059,-0.045,-0.033,-0.024,-0.016,-0.011,-0.006,-0.003,-0.001,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.003,-0.011,-0.025,-0.045,-0.07,-0.1,-0.13,-0.17,-0.21,-0.25,-0.3,-0.35,-0.4,-0.46,-0.52,-0.58,-0.64,-0.7,-0.77,-0.83,-0.9,-0.97,-1.03,-1.1,-1.17,-1.23,-1.3,-1.36,-1.42,-1.48,-1.54,-1.6,-1.65,-1.7,-1.75,-1.79,-1.83,-1.87,-1.9,-1.93,-1.96,-1.975,-1.989,-1.997,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.67,-1.58,-1.48,-1.38,-1.28,-1.17,-1.06,-0.94,-0.83,-0.72,-0.62,-0.52,-0.42,-0.33,-0.25,-0.18,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.9,-0.79,-0.64,-0.46,-0.26,-0.03,0.22,0.48,0.76,1.03,1.32,1.61,1.89,2.17,2.44,2.69,2.94,3.16,3.37,3.55,3.7,3.83,3.92,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.984,3.94,3.86,3.76,3.64,3.5,3.33,3.16,2.97,2.77,2.56,2.35,2.13,1.92,1.71,1.5,1.29,1.09,0.91,0.73,0.57,0.43,0.31,0.2,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.2,-0.43,-0.72,-1.09,-1.49,-1.94,-2.41,-2.91,-3.42,-3.94,-4.45,-4.95,-5.45,-5.91,-6.34,-6.74,-7.1,-7.41,-7.66,-7.84,-7.96,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.96,-7.83,-7.63,-7.36,-7.04,-6.64,-6.2,-5.72,-5.19,-4.63,-4.03,-3.42,-2.77,-2.11,-1.45,-0.77,-0.08,0.6,1.27,1.93,2.58,3.22,3.83,4.42,4.97,5.49,5.97,6.41,6.81,7.16,7.45,7.68,7.86,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.97,7.88,7.73,7.54,7.3,7.03,6.72,6.39,6.03,5.66,5.27,4.87,4.46,4.05,3.64,3.24,2.84,2.45,2.09,1.74,1.41,1.11,0.83,0.59,0.39,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.21,-0.46,-0.79,-1.18,-1.63,-2.14,-2.68,-3.26,-3.86,-4.47,-5.11,-5.74,-6.36,-6.97,-7.56,-8.12,-8.66,-9.16,-9.61,-10,-10.34,-10.62,-10.83,-10.96,-11,-10.989,-10.96,-10.9,-10.83,-10.74,-10.63,-10.5,-10.36,-10.2,-10.02,-9.84,-9.64,-9.43,-9.21,-8.98,-8.73,-8.48,-8.22,-7.96,-7.69,-7.41,-7.13,-6.85,-6.56,-6.27,-5.97,-5.69,-5.39,-5.1,-4.8,-4.51,-4.23,-3.95,-3.67,-3.39,-3.12,-2.86,-2.61,-2.36,-2.12,-1.89,-1.67,-1.46,-1.26,-1.07,-0.9,-0.74,-0.59,-0.46,-0.34,-0.24,-0.16,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0.1,0.37,0.81,1.36,2.04,2.8,3.63,4.52,5.46,6.4,7.38,8.34,9.29,10.21,11.08,11.89,12.64,13.31,13.88,14.36,14.71,14.92,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15.005,15.021,15.05,15.08,15.12,15.17,15.22,15.29,15.35,15.42,15.5,15.57,15.65,15.74,15.82,15.9,15.99,16.07,16.16,16.24,16.32,16.4,16.48,16.55,16.62,16.69,16.75,16.8,16.85,16.89,16.93,16.96,16.98,16.995,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.93,16.74,16.43,16.02,15.52,14.94,14.29,13.58,12.82,12.03,11.2,10.35,9.48,8.61,7.74,6.88,6.04,5.22,4.43,3.69,3,2.35,1.77,1.26,0.83,0.48,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.54,0.27,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.17,-0.21,-0.25,-0.29,-0.32,-0.36,-0.39,-0.43,-0.46,-0.49,-0.51,-0.54,-0.555,-0.569,-0.577,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.579,-0.578,-0.575,-0.572,-0.568,-0.563,-0.558,-0.551,-0.545,-0.538,-0.53,-0.523,-0.515,-0.506,-0.498,-0.49,-0.481,-0.473,-0.464,-0.456,-0.448,-0.44,-0.432,-0.425,-0.418,-0.411,-0.405,-0.4,-0.395,-0.391,-0.387,-0.384,-0.382,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.378,-0.374,-0.367,-0.358,-0.347,-0.334,-0.319,-0.304,-0.287,-0.269,-0.25,-0.231,-0.212,-0.193,-0.173,-0.154,-0.135,-0.117,-0.099,-0.082,-0.067,-0.053,-0.04,-0.028,-0.018,-0.011,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.002,0.003,0.004,0.006,0.007,0.009,0.011,0.012,0.014,0.016,0.017,0.019,0.021,0.022,0.024,0.025,0.026,0.027,0.028,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.029,0.03,0.03,0.028,0.03,0.027,0.03,0.026,0.03,0.024,0.024,0.02,0.022,0.022,0.021,0.02,0.019,0.019,0.018,0.02,0.016,0.016,0.015,0.014,0.01,0.012,0.012,0.011,0.01,0.01,0.009,0.008,0.01,0.006,0.006,0.01,0.005,0.004,0,0.003,0,0,0.002,0,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.005,0.011,0.019,0.029,0.039,0.051,0.063,0.076,0.09,0.103,0.117,0.13,0.143,0.155,0.166,0.177,0.186,0.194,0.201,0.206,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.208,0.203,0.195,0.183,0.17,0.153,0.135,0.114,0.09,0.07,0.04,0.02,-0.01,-0.04,-0.06,-0.09,-0.12,-0.15,-0.18,-0.21,-0.23,-0.26,-0.29,-0.31,-0.33,-0.35,-0.38,-0.394,-0.41,-0.425,-0.437,-0.447,-0.454,-0.458,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.46,-0.458,-0.453,-0.445,-0.433,-0.42,-0.404,-0.387,-0.367,-0.35,-0.33,-0.3,-0.28,-0.26,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.081,-0.064,-0.048,-0.034,-0.022,-0.013,-0.006,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.25,0.29,0.33,0.37,0.41,0.45,0.49,0.52,0.56,0.59,0.62,0.65,0.67,0.686,0.699,0.707,0.71,0.709,0.707,0.704,0.699,0.693,0.686,0.678,0.668,0.658,0.647,0.635,0.622,0.609,0.594,0.579,0.564,0.548,0.531,0.514,0.496,0.479,0.46,0.442,0.423,0.405,0.386,0.367,0.348,0.329,0.31,0.291,0.273,0.255,0.237,0.219,0.202,0.185,0.168,0.152,0.137,0.122,0.108,0.094,0.081,0.069,0.058,0.048,0.038,0.029,0.022,0.015,0.01,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/pinchIn_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,0.27,0.96,1.98,3.23,4.62,6.08,7.55,8.99,10.32,11.53,12.53,13.32,13.82,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0.1,0.34,0.67,1.05,1.45,1.84,2.21,2.52,2.78,2.94,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0.36,0.93,1.46,1.85,2,1.84,1.44,0.89,0.25,-0.41,-1.07,-1.69,-2.21,-2.63,-2.9,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=2,2.16,2.5,2.92,3.36,3.76,4.1,4.32,4.4,4.385,4.35,4.3,4.25,4.22,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.69,-1.41,-2.31,-3.3,-4.34,-5.4,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BROW_R_Y=0,0.006,0.02,0.04,0.07,0.1,0.13,0.16,0.19,0.21,0.24,0.26,0.276,0.286,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_ANGLE_X=0,0.36,1.31,2.68,4.38,6.27,8.25,10.25,12.19,14.01,15.65,17,18.07,18.76,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.22,0.45,0.31,0.16,0.16,0.16,0.16,0.16,0.51,0.86,0.77,0.67,0.7,0.72,0.58,0.44,0.3,0.16,0.45,0.73,0.746,0.763,0.78,0.797,0.814,0.831,0.51,0.19,0.54,0.89,0.85,0.81,0.76,0.72,0.68,0.64,0.647,0.659,0.44,0.23,0.31,0.39,0.376,0.361,0.18,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=2,1.981,1.93,1.86,1.77,1.67,1.57,1.46,1.36,1.26,1.18,1.11,1.05,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0,-0.013,-0.05,-0.1,-0.16,-0.22,-0.3,-0.37,-0.44,-0.5,-0.56,-0.61,-0.65,-0.67,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68,-0.68\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0,0.005,0.018,0.037,0.06,0.09,0.11,0.14,0.17,0.19,0.21,0.233,0.247,0.257,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0,-0.012,-0.04,-0.09,-0.14,-0.2,-0.26,-0.33,-0.39,-0.45,-0.5,-0.55,-0.58,-0.6,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61,-0.61\r\r\nPARAM_EYE_R_OPEN=2,1.981,1.93,1.86,1.77,1.67,1.57,1.46,1.36,1.26,1.18,1.11,1.05,1.01,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0,-0.011,-0.04,-0.08,-0.13,-0.19,-0.25,-0.31,-0.37,-0.43,-0.48,-0.52,-0.55,-0.57,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58\r\r\nPARAM_EYE_BALL_Y=0,0.005,0.017,0.035,0.06,0.08,0.11,0.13,0.16,0.18,0.21,0.224,0.238,0.247,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25\r\r\nPARAM_ARM_L_B=2,2.09,2.29,2.54,2.79,3.03,3.22,3.35,3.4,3.385,3.35,3.3,3.25,3.22,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.2\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/pinchOut_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.73,-10.97,-9.77,-8.2,-6.36,-4.24,-1.93,0.51,3,5.49,7.93,10.24,12.36,14.2,15.77,16.97,17.73,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.93,-0.75,-0.48,-0.16,0.16,0.48,0.75,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-0.92,-0.71,-0.38,0.05,0.54,1.08,1.64,2.21,2.77,3.3,3.77,4.19,4.53,4.79,4.95,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0.21,0.76,1.55,2.54,3.63,4.78,5.93,7.06,8.11,9.06,9.84,10.46,10.86,11,10.86,10.49,9.93,9.22,8.41,7.52,6.57,5.63,4.66,3.75,2.89,2.09,1.39,0.82,0.38,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.36,0.73,0.36,0,0.004,0.008,0.39,0.77,0.68,0.59,0.3,0.02,0.29,0.57,0.48,0.4,0.31,0.22,0.44,0.67,0.45,0.24,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=0.5,0.5,0.5,0.5,0.5,0.497,0.487,0.473,0.456,0.436,0.42,0.39,0.374,0.357,0.343,0.333,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0,0.03,0.1,0.21,0.33,0.46,0.58,0.69,0.76,0.79,0.76,0.7,0.6,0.47,0.34,0.2,0.05,-0.09,-0.22,-0.34,-0.44,-0.51,-0.56,-0.58,-0.571,-0.55,-0.5,-0.45,-0.39,-0.32,-0.24,-0.16,-0.07,0.01,0.09,0.17,0.24,0.3,0.35,0.4,0.42,0.43,0.419,0.39,0.36,0.33,0.31,0.28,0.266,0.26\r\r\nPARAM_HAIR_FRONT=0,0.02,0.08,0.17,0.27,0.38,0.48,0.57,0.63,0.65,0.63,0.57,0.49,0.4,0.29,0.17,0.06,-0.06,-0.16,-0.26,-0.33,-0.4,-0.44,-0.45,-0.442,-0.42,-0.38,-0.33,-0.28,-0.21,-0.14,-0.07,0.01,0.09,0.16,0.23,0.3,0.35,0.4,0.44,0.46,0.47,0.454,0.42,0.37,0.33,0.29,0.25,0.23,0.22\r\r\nPARAM_ARM_L_A=0.5,0.5,0.5,0.5,0.5,0.497,0.489,0.477,0.461,0.444,0.425,0.406,0.389,0.373,0.361,0.353,0.35,0.356,0.371,0.39,0.42,0.44,0.47,0.49,0.51,0.526,0.536,0.54,0.539,0.535,0.531,0.526,0.521,0.515,0.511,0.506,0.503,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/shake_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.85,2.69,4.99,7.37,9.55,11.35,12.55,13,12.38,10.72,8.16,4.94,1.37,-2.5,-6.37,-9.94,-13.16,-15.72,-17.38,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.26,-0.83,-1.54,-2.27,-2.94,-3.49,-3.86,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Y=5,4.67,3.96,3.08,2.16,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0.62,1.15,1.7,2.2,2.62,2.9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.52,-1.66,-3.07,-4.54,-5.88,-6.99,-7.72,-8,-7.86,-7.49,-6.91,-6.18,-5.37,-4.5,-3.63,-2.82,-2.09,-1.51,-1.14,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.42,-0.8,-1.24,-1.7,-2.16,-2.6,-3,-3.4,-3.74,-4.03,-4.28,-4.47,-4.64,-4.77,-4.86,-4.93,-4.97,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.24,0.49,0.45,0.42,0.32,0.22,0.31,0.39,0.21,0.03,0.048,0.064,0.08,0.096,0.112,0.128,0.145,0.161,0.177,0.193,0.209,0.225,0.242,0.258,0.274,0.29,0.46,0.63,0.56,0.5,0.51,0.518,0.26,0,0,0,0.23,0.45,0.458,0.461,0.464,0.467,0.47,0.473,0.475,0.478,0.24,0,0,0,0.27,0.54,0.541,0.54,0.54,0.539,0.538,0.54,0.537,0.536,0.54,0.535,0.534,0.53,0.27,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.15,0.22,0.28,0.33,0.37,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38\r\r\nPARAM_EYE_L_OPEN=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.996,1.982,1.96,1.93,1.89,1.83,1.77,1.7,1.61,1.52,1.41,1.29,1.15,1,0.78,0.59,0.43,0.28,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_L_FORM=0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.47,0.32,0.13,-0.06,-0.24,-0.39,-0.48,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_ARM_R_A=0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.506,0.523,0.55,0.58,0.62,0.66,0.7,0.74,0.79,0.83,0.87,0.9,0.94,0.96,0.983,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_R_FORM=0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.51,0.35,0.16,-0.04,-0.23,-0.38,-0.48,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52,-0.52\r\r\nPARAM_EYE_R_OPEN=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.996,1.982,1.96,1.93,1.89,1.83,1.77,1.7,1.61,1.52,1.41,1.29,1.15,1,0.78,0.59,0.43,0.28,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TERE=0.5\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0,0.03,0.1,0.19,0.28,0.37,0.44,0.48,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.506,0.523,0.55,0.58,0.62,0.66,0.7,0.74,0.79,0.83,0.87,0.9,0.94,0.96,0.983,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_00.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.13\r\r\nPARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.23,-12.29,-9.67,-6.61,-3.42,-0.28,2.69,5.2,7.22,8.52,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_BODY_ANGLE_X=-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.94,-4.77,-4.56,-4.3,-4.04,-3.77,-3.53,-3.32,-3.15,-3.04,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.45,-0.89,-1.4,-1.93,-2.45,-2.95,-3.37,-3.7,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_ARM_R_B=-1\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.49,-14.2,-12.45,-10.4,-8.28,-6.19,-4.2,-2.54,-1.19,-0.32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.45,15.08,13.23,11.05,8.8,6.57,4.47,2.69,1.26,0.34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.32,0.64,0.46,0.29,0.31,0.34,0.28,0.22,0.43,0.64,0.32,0,0.31,0.61,0.54,0.47,0.24,0,0.27,0.53,0.514,0.494,0.475,0.455,0.28,0.11,0.32,0.53,0.528,0.523,0.518,0.512,0.507,0.502,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.38\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0.19\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.694,0.68,0.66,0.64,0.61,0.59,0.57,0.549,0.533,0.524,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52\r\r\nPARAM_BROW_R_FORM=0.38\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.484,-0.44,-0.39,-0.33,-0.26,-0.19,-0.13,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.76,0.7,0.61,0.51,0.41,0.31,0.21,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L_B=3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.4,3.419,3.47,3.53,3.61,3.69,3.77,3.84,3.9,3.96,3.99,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.216,0.205,0.189,0.169,0.15,0.12,0.1,0.08,0.06,0.039,0.023,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.79,-10.18,-9.23,-8.02,-6.58,-5.01,-3.35,-1.65,0.01,1.58,3.02,4.23,5.18,5.79,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_X=-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.96,-1.86,-1.72,-1.54,-1.34,-1.13,-0.92,-0.72,-0.53,-0.35,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.45,-1.55,-3,-4.45,-5.55,-6,-5.79,-5.24,-4.44,-3.49,-2.51,-1.56,-0.76,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.307,0.299,0.287,0.273,0.257,0.241,0.224,0.207,0.192,0.178,0.167,0.158,0.152,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.24,0.48,0.36,0.24,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.21,0.42,0.46,0.51,0.56,0.6,0.47,0.35,0.5,0.66,0.39,0.12,0.06,0,0.3,0.6,0.56,0.51,0.56,0.61,0.53,0.45,0.23,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.12,0.18,0.23,0.29,0.35,0.4,0.44,0.48,0.51,0.533,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_EYE_L_OPEN=1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.26,1.259,1.256,1.251,1.244,1.234,1.221,1.206,1.187,1.17,1.14,1.11,1.08,1.04,1,0.73,0.34,0.08,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.417,0.408,0.395,0.378,0.361,0.342,0.323,0.304,0.287,0.272,0.259,0.249,0.242,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.268,0.262,0.253,0.242,0.23,0.218,0.205,0.193,0.182,0.171,0.163,0.156,0.152,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_BROW_R_ANGLE=0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.255,0.242,0.223,0.2,0.17,0.15,0.12,0.09,0.07,0.05,0.027,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.72,0.68,0.63,0.6,0.59,0.603,0.64,0.68,0.73,0.79,0.84,0.89,0.94,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BROW_R_FORM=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.426,0.417,0.403,0.386,0.367,0.347,0.327,0.308,0.29,0.274,0.26,0.249,0.242,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\r\r\nPARAM_EYE_R_OPEN=1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.29,1.289,1.286,1.28,1.272,1.26,1.246,1.229,1.208,1.18,1.16,1.12,1.09,1.05,1,0.73,0.34,0.08,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.69,0.65,0.62,0.59,0.58,0.593,0.63,0.67,0.73,0.78,0.84,0.89,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.85,13.43,12.8,11.98,11.02,9.93,8.76,7.55,6.3,5.03,3.79,2.59,1.44,0.4,-0.56,-1.39,-2.06,-2.56,-2.89,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.24,-0.53,-0.91,-1.37,-1.88,-2.44,-3.04,-3.65,-4.27,-4.9,-5.49,-6.05,-6.56,-7,-7.38,-7.71,-7.99,-8.23,-8.43,-8.58,-8.71,-8.81,-8.88,-8.93,-8.97,-8.988,-8.997,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_BODY_ANGLE_Y=0,-0.05,-0.19,-0.42,-0.7,-1.04,-1.41,-1.8,-2.2,-2.59,-2.96,-3.3,-3.58,-3.81,-3.95,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.894,0.877,0.85,0.81,0.77,0.72,0.67,0.61,0.55,0.49,0.43,0.37,0.31,0.25,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14.29,-15.01,-16,-17.15,-18.34,-19.52,-20.64,-21.57,-22.33,-22.82,-23,-22.59,-21.48,-19.88,-17.98,-16.02,-14.12,-12.52,-11.41,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10.71,9.99,9,7.85,6.66,5.48,4.36,3.43,2.67,2.18,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0.03,0.05,0.2,0.35,0.42,0.49,0.38,0.27,0.42,0.56,0.584,0.604,0.51,0.41,0.23,0.05,0.35,0.64,0.5,0.36,0.365,0.369,0.373,0.376,0.51,0.64,0.54,0.44,0.34,0.24,0.34,0.44,0.425,0.412,0.398,0.384,0.44,0.49,0.37,0.25,0.12,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72,-0.72\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=-0.73\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=1\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.82,-0.818,-0.811,-0.8,-0.787,-0.771,-0.753,-0.734,-0.716,-0.697,-0.679,-0.663,-0.65,-0.639,-0.632,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.625,-0.612,-0.591,-0.56,-0.53,-0.5,-0.46,-0.42,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.11,-0.094,-0.084,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08\r\r\nPARAM_EYE_BALL_Y=-0.5,-0.498,-0.494,-0.487,-0.479,-0.469,-0.458,-0.446,-0.434,-0.422,-0.411,-0.401,-0.393,-0.386,-0.382,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.372,-0.35,-0.32,-0.27,-0.22,-0.16,-0.1,-0.03,0.04,0.11,0.17,0.24,0.3,0.36,0.41,0.45,0.49,0.52,0.534,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_ARM_L_B=2.8,2.801,2.805,2.81,2.818,2.826,2.835,2.845,2.855,2.865,2.874,2.882,2.89,2.895,2.899,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.9,2.881,2.83,2.74,2.62,2.49,2.33,2.15,1.97,1.77,1.58,1.37,1.18,0.99,0.8,0.63,0.48,0.34,0.22,0.13,0.06,0.01,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,0.9,0.62,0.22,-0.25,-0.75,-1.22,-1.62,-1.9,-2,-1.96,-1.85,-1.69,-1.49,-1.27,-1.03,-0.8,-0.58,-0.39,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.6,2.06,4,5.94,7.4,8,7.04,4.45,0.72,-3.71,-8.29,-12.72,-16.45,-19.04,-20,-19.6,-18.53,-16.92,-14.9,-12.67,-10.29,-7.96,-5.78,-3.86,-2.24,-1.02,-0.26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.21,-0.33,-0.42,-0.45,-0.39,-0.25,-0.06,0.14,0.28,0.34,0.28,0.12,-0.06,-0.25,-0.39,-0.49,-0.52,-0.46,-0.34,-0.18,-0.02,0.13,0.25,0.33,0.36,0.32,0.24,0.13,0.03,-0.05,-0.1,-0.12,-0.111,-0.09,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0.5\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_ANGLE_Z=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.78,-14.21,-13.45,-12.55,-11.62,-10.71,-9.84,-9.11,-8.52,-8.14,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_BODY_ANGLE_X=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.66,-6.9,-6,-5.05,-4.39,-3.89,-3.53,-3.28,-3.12,-3.03,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.22,-1.99,-1.75,-1.5,-1.25,-1.01,-0.78,-0.56,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=5\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-13.97,-13.89,-13.78,-13.65,-13.52,-13.39,-13.26,-13.16,-13.07,-13.02,-13,-13,-13,-13,-13,-13,-13,-12.96,-12.83,-12.63,-12.37,-12.06,-11.71,-11.32,-10.92,-10.5,-10.08,-9.68,-9.29,-8.94,-8.63,-8.37,-8.17,-8.04,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-13.11,-8.34,-2.17,4.36,10.38,15.36,19,22.21,23.04,23.06,23,23,23,23,23,23,23,22.87,22.48,21.88,21.1,20.18,19.12,17.96,16.75,15.5,14.25,13.04,11.88,10.82,9.9,9.12,8.52,8.13,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.5\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=-0.5\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=-1\r\r\nPARAM_BROW_R_FORM=-0.5\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=-1\r\r\nPARAM_EYE_BALL_X=0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.447,0.49,0.55,0.62,0.69,0.76,0.82,0.88,0.92,0.95,0.96,0.96,0.96,0.96,0.96,0.96,0.96,0.95,0.92,0.87,0.81,0.74,0.66,0.57,0.48,0.38,0.29,0.2,0.11,0.03,-0.04,-0.1,-0.15,-0.18,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19\r\r\nPARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.337,0.354,0.38,0.4,0.43,0.46,0.48,0.51,0.524,0.536,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.543,0.547,0.551,0.557,0.563,0.57,0.578,0.585,0.592,0.6,0.607,0.613,0.619,0.623,0.627,0.629,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.93,-3.72,-3.41,-2.99,-2.5,-1.93,-1.31,-0.67,0,0.67,1.31,1.93,2.5,2.99,3.41,3.72,3.93,4,3.9,3.61,3.17,2.6,1.92,1.18,0.4,-0.4,-1.18,-1.92,-2.6,-3.17,-3.61,-3.9,-4,-3.91,-3.66,-3.28,-2.78,-2.21,-1.57,-0.92,-0.25,0.39,1.01,1.57,2.06,2.46,2.75,2.94,3,2.97,2.9,2.78,2.62,2.44,2.22,1.99,1.75,1.5,1.25,1.01,0.78,0.56,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.96,-0.86,-0.7,-0.49,-0.25,0.04,0.34,0.67,1,1.33,1.66,1.96,2.25,2.49,2.7,2.86,2.96,3,2.89,2.59,2.15,1.62,1.02,0.39,-0.24,-0.85,-1.42,-1.94,-2.37,-2.71,-2.92,-3,-2.95,-2.81,-2.59,-2.3,-1.98,-1.61,-1.24,-0.86,-0.49,-0.14,0.18,0.46,0.69,0.86,0.96,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.003,-6.014,-6.032,-6.06,-6.1,-6.15,-6.21,-6.28,-6.37,-6.48,-6.6,-6.74,-6.9,-7.07,-7.27,-7.49,-7.73,-8,-8.28,-8.56,-8.85,-9.12,-9.4,-9.66,-9.9,-10.13,-10.34,-10.53,-10.69,-10.82,-10.92,-10.98,-11,-11.003,-11.008,-11.014,-11.017,-11.014,-11.003,-10.98,-10.95,-10.9,-10.83,-10.74,-10.64,-10.51,-10.36,-10.19,-10,-9.7,-9.29,-8.78,-8.18,-7.52,-6.8,-6.04,-5.26,-4.48,-3.71,-2.97,-2.28,-1.65,-1.11,-0.65,-0.3,-0.08,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-11.67,-10.73,-9.25,-7.31,-5.04,-2.42,0.42,3.42,6.5,9.58,12.58,15.42,18.04,20.31,22.25,23.73,24.67,25,24.37,22.59,19.79,16.23,11.99,7.37,2.49,-2.49,-7.37,-11.99,-16.23,-19.79,-22.59,-24.37,-25,-24.39,-22.68,-20.04,-16.64,-12.7,-8.35,-3.88,0.69,5.13,9.37,13.17,16.53,19.27,21.29,22.57,23,22.79,22.21,21.29,20.09,18.67,17.05,15.28,13.41,11.5,9.59,7.72,5.95,4.33,2.91,1.71,0.79,0.21,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_EYE_L_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_BUST_Y=0,0.001,0.004,0.009,0.016,0.024,0.033,0.044,0.056,0.069,0.083,0.098,0.113,0.128,0.144,0.16,0.176,0.192,0.207,0.222,0.237,0.251,0.264,0.276,0.287,0.296,0.304,0.311,0.316,0.319,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.32\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_R_OPEN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-16.6,-15.52,-13.87,-11.82,-9.46,-6.88,-4.12,-1.37,1.43,4.08,6.59,8.91,10.95,12.62,13.9,14.71,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15\r\r\nPARAM_BODY_ANGLE_X=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.9,-9.66,-9.33,-8.95,-8.55,-8.16,-7.79,-7.48,-7.22,-7.06,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BODY_ANGLE_Z=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.92,4.72,4.41,4.03,3.59,3.1,2.59,2.07,1.54,1.05,0.58,0.14,-0.24,-0.55,-0.79,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ARM_R_B=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.996,4.986,4.969,4.95,4.92,4.9,4.87,4.84,4.81,4.79,4.76,4.74,4.723,4.711,4.703,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7,4.7\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5.1,-5.37,-5.78,-6.29,-6.89,-7.53,-8.22,-8.91,-9.61,-10.27,-10.9,-11.48,-11.99,-12.41,-12.72,-12.93,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.85,-20.45,-19.83,-19.06,-18.17,-17.2,-16.17,-15.14,-14.09,-13.1,-12.15,-11.29,-10.52,-9.89,-9.41,-9.11,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_EYE_L_OPEN=0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.61,0.29,0.07,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.014,-0.05,-0.11,-0.17,-0.24,-0.3,-0.36,-0.4,-0.41,-0.396,-0.36,-0.3,-0.23,-0.15,-0.07,0.01,0.09,0.16,0.22,0.26,0.27,0.24,0.15,0.05,-0.04,-0.12,-0.17,-0.19,-0.176,-0.14,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_EYE_R_OPEN=0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.61,0.29,0.07,0,0,0,0.14,0.37,0.59,0.74,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.82,-0.76,-0.62,-0.44,-0.21,0.01,0.24,0.46,0.64,0.78,0.88,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91\r\r\nPARAM_EYE_BALL_Y=0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.31,0.25,0.17,0.08,-0.01,-0.11,-0.19,-0.27,-0.33,-0.37,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38,-0.38\r\r\nPARAM_ARM_L_B=-1\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=-17,-16.85,-16.43,-15.74,-14.81,-13.65,-12.31,-10.79,-9.11,-7.29,-5.35,-3.28,-1.17,1.04,3.26,5.5,7.74,9.96,12.17,14.28,16.35,18.29,20.11,21.79,23.31,24.65,25.81,26.74,27.43,27.85,28,28,28,28,28,28,28,28,28,28,28,28,28,28,27.93,27.71,27.36,26.88,26.28,25.58,24.8,23.92,22.97,21.95,20.88,19.76,18.6,17.42,16.21,15,13.81,13,12.47,12.16,12.03,12,12.85,14.69,16.99,19.37,21.55,23.35,24.55,25,25,25,25,25,25,25,25,24.94,24.75,24.45,24.01,23.45,22.76,21.91,20.94,19.79,18.5,17,15.11,13.32,11.64,10.17,8.88,7.83,7.02,6.45,6.11,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_X=5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.9,4.79,4.65,4.48,4.29,4.1,3.9,3.71,3.52,3.35,3.21,3.1,3.03,3,3.06,3.22,3.46,3.76,4.1,4.46,4.81,5.13,5.42,5.66,5.85,5.96,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.31,0.52,0.75,1,1.25,1.48,1.69,1.85,1.96,2,1.93,1.75,1.48,1.16,0.84,0.52,0.25,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_R_B=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.993,-0.974,-0.94,-0.91,-0.86,-0.8,-0.74,-0.68,-0.61,-0.54,-0.46,-0.39,-0.32,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.987,-9.95,-9.9,-9.83,-9.74,-9.65,-9.56,-9.46,-9.37,-9.28,-9.2,-9.13,-9.08,-9.04,-9.01,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9.13,-9.45,-9.89,-10.4,-10.93,-11.45,-11.95,-12.37,-12.7,-12.92,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_ANGLE_X=17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,16.87,16.52,15.97,15.26,14.44,13.53,12.6,11.65,10.72,9.84,9.05,8.35,7.78,7.36,7.09,7,7.15,7.55,8.13,8.85,9.64,10.47,11.32,12.13,12.9,13.59,14.16,14.61,14.9,15,15,15,15,15,15,15,15,14.9,14.66,14.33,13.95,13.55,13.16,12.79,12.48,12.22,12.06,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.29,-0.41,-0.45,-0.41,-0.32,-0.18,-0.03,0.14,0.29,0.42,0.52,0.58,0.6,0.57,0.48,0.35,0.2,0.04,-0.11,-0.24,-0.33,-0.36,-0.32,-0.23,-0.13,-0.01,0.09,0.17,0.23,0.25,0.231,0.19,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0.5\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.47,-0.469,-0.466,-0.461,-0.454,-0.447,-0.439,-0.43,-0.422,-0.414,-0.406,-0.398,-0.392,-0.387,-0.383,-0.381,-0.38,-0.382,-0.388,-0.397,-0.409,-0.424,-0.442,-0.46,-0.481,-0.5,-0.52,-0.55,-0.57,-0.59,-0.61,-0.628,-0.646,-0.661,-0.673,-0.682,-0.688,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69\r\r\nPARAM_EYE_BALL_Y=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.496,0.486,0.47,0.45,0.43,0.4,0.37,0.34,0.32,0.29,0.27,0.249,0.233,0.22,0.213,0.21,0.21,0.212,0.214,0.218,0.221,0.226,0.231,0.236,0.242,0.247,0.253,0.258,0.264,0.269,0.274,0.279,0.282,0.286,0.288,0.289,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29,0.29\r\r\nPARAM_ARM_L_B=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.015,3.06,3.12,3.21,3.31,3.42,3.53,3.64,3.75,3.86,3.95,4.04,4.11,4.16,4.19,4.2,4.194,4.179,4.16,4.13,4.1,4.07,4.04,4.01,3.98,3.95,3.93,3.915,3.904,3.9,3.9,3.9,3.9,3.9,3.9,3.9,3.9,3.87,3.8,3.68,3.53,3.34,3.12,2.89,2.63,2.36,2.09,1.81,1.54,1.27,1.01,0.78,0.56,0.37,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_ANGLE_Z=18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,17.65,16.66,15.1,13.06,10.66,7.91,4.91,1.74,-1.5,-4.74,-7.91,-10.91,-13.66,-16.06,-18.1,-19.66,-20.65,-21,-20.29,-18.46,-15.78,-12.46,-8.78,-4.93,-1.04,2.75,6.28,9.47,12.11,14.19,15.53,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\r\r\nPARAM_BODY_ANGLE_X=3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.991,2.97,2.93,2.87,2.81,2.74,2.66,2.58,2.5,2.42,2.34,2.26,2.19,2.13,2.07,2.03,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.93,-1.75,-1.48,-1.16,-0.84,-0.52,-0.25,-0.07,0,-0.13,-0.41,-0.77,-1.13,-1.47,-1.75,-1.93,-2,-1.85,-1.48,-1,-0.52,-0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.91,-6.66,-6.26,-5.73,-5.12,-4.41,-3.64,-2.83,-2,-1.17,-0.36,0.41,1.12,1.73,2.26,2.66,2.91,3,2.92,2.73,2.44,2.08,1.68,1.26,0.84,0.43,0.05,-0.29,-0.58,-0.8,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_ARM_R_B=4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2,4.2\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=-8\r\r\nPARAM_BROW_R_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_ANGLE_X=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.87,9.52,8.96,8.23,7.37,6.38,5.3,4.16,3,1.84,0.7,-0.38,-1.37,-2.23,-2.96,-3.52,-3.87,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.16,0.42,0.59,0.65,0.58,0.43,0.24,0.04,-0.14,-0.29,-0.39,-0.43,-0.4,-0.32,-0.21,-0.08,0.06,0.19,0.3,0.38,0.41,0.34,0.18,-0.01,-0.21,-0.36,-0.46,-0.49,-0.42,-0.25,-0.05,0.16,0.35,0.51,0.61,0.65,0.58,0.41,0.19,-0.01,-0.18,-0.28,-0.32,-0.28,-0.19,-0.07,0.06,0.15,0.19,0.16,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_BROW_L_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_BALL_FORM=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_ARM_R_A=0.5\r\r\nPARAM_BROW_R_FORM=0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_TERE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5\r\r\nPARAM_EYE_BALL_X=-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32\r\r\nPARAM_EYE_BALL_Y=0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.54\r\r\nPARAM_ARM_L_B=2.5\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=0\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/motions/tapBody_09.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.018,-0.05,-0.07,-0.092,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.89,2.32,3.66,4.62,5,4.84,4.44,3.89,3.25,2.59,1.93,1.31,0.79,0.37,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_ARM_R_B=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_ANGLE_Y=0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.14,0.22,0.28,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.1,-0.15,-0.19,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.17,-0.11,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.18,1.46,1.73,1.92,2,1.52,0.72,0.18,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BUST_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.28,-0.38,-0.19,0.12,0.4,0.61,0.69,0.51,0.23,-0.03,-0.23,-0.3,-0.27,-0.18,-0.07,0.04,0.13,0.16,0.13,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09,0.23,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.32,0.04,-0.23,-0.42,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_BALL_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-1,-1,-1,-1,-1,-1,-0.82,-0.54,-0.27,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.14,0.22,0.28,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.018,-0.05,-0.07,-0.092,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_ARM_R_A=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.42,0.38,0.34,0.33,0.343,0.38,0.42,0.48,0.53,0.59,0.64,0.68,0.72,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.09,0.23,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.32,0.04,-0.23,-0.42,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.18,1.46,1.73,1.92,2,1.52,0.72,0.18,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_TERE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.13,0.25,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_ARM_L_A=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.47,0.42,0.38,0.34,0.33,0.343,0.38,0.42,0.48,0.53,0.59,0.64,0.68,0.72,0.74,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_ARM_L_B=0\r\r\nVISIBLE:PARTS_01_ARM_L_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_R_A_001=1\r\r\nVISIBLE:PARTS_01_ARM_L_B_001=0\r\r\nVISIBLE:PARTS_01_ARM_R_B_001=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/physics.json",
    "content": "{\n    \"type\": \"Live2D Physics\",\n    \"physics_hair\": [\n    {\n        \"comment\": \"hair front\",\n        \"setup\":\n        {\n            \"length\": 0.17,\n            \"regist\": 0.5,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_FRONT\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"comment\": \"hair back\",\n        \"setup\":\n        {\n            \"length\": 0.34,\n            \"regist\": 0.5,\n            \"mass\": 0.2\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_BACK\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/haru2/pose.json",
    "content": "{\n    \"type\": \"Live2D Pose\",\n    \"parts_visible\": [\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_L_A_001\",\n            \"link\": [\"PARTS_01_ARM_L_A_002\"]\n        },\n        {\n            \"id\": \"PARTS_01_ARM_L_B_001\",\n            \"link\": [\"PARTS_01_ARM_L_B_002\"]\n        }]\n    },\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_R_A_001\",\n            \"link\": [\"PARTS_01_ARM_R_A_002\"]\n        },\n        {\n            \"id\": \"PARTS_01_ARM_R_B_001\",\n            \"link\": [\"PARTS_01_ARM_R_B_002\"]\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/index.json",
    "content": "{\n    \"type\": \"miku\",\n    \"name\": \"model\",\n    \"model\": \"model.moc\",\n    \"textures\": [\"texture_00.png\"],\n    \"layout\":{\n        \"center_x\":-0.3,\n        \"center_y\":-0.08,\n        \"width\":1.8\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.80, 0.85],\n        \"head_y\":[-0.45, 0.45],\n        \"body_x\":[-0.75, 0.45],\n        \"body_y\":[-0.50, 0]\n    },\n    \"motions\":\n    {\n        \"idle\": [\n            {\"file\": \"motions/miku_idle_01.mtn\"}\n        ],\n        \"sleepy\": [\n            {\"file\": \"motions/miku_m_01.mtn\"},\n            {\"file\": \"motions/miku_m_02.mtn\"},\n            {\"file\": \"motions/miku_m_03.mtn\"},\n            {\"file\": \"motions/miku_m_04.mtn\"},\n            {\"file\": \"motions/miku_m_05.mtn\"},\n            {\"file\": \"motions/miku_m_06.mtn\"},\n            {\"file\": \"motions/miku_shake_01.mtn\"}\n        ]\n    },\n    \"physics\": \"physics.json\"\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_idle_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-0.04,-0.14,-0.31,-0.53,-0.82,-1.15,-1.52,-1.93,-2.37,-2.85,-3.35,-3.87,-4.41,-4.95,-5.5,-6.05,-6.59,-7.13,-7.65,-8.15,-8.63,-9.07,-9.48,-9.85,-10.18,-10.47,-10.69,-10.86,-10.96,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.95,-10.8,-10.56,-10.23,-9.83,-9.35,-8.8,-8.2,-7.55,-6.84,-6.11,-5.33,-4.53,-3.71,-2.87,-2.03,-1.18,-0.35,0.49,1.3,2.09,2.86,3.58,4.28,4.93,5.53,6.07,6.56,6.98,7.33,7.62,7.83,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.982,7.93,7.84,7.72,7.56,7.38,7.17,6.93,6.66,6.37,6.06,5.72,5.35,4.97,4.57,4.16,3.72,3.27,2.81,2.34,1.86,1.36,0.86,0.35,-0.16,-0.69,-1.21,-1.74,-2.26,-2.79,-3.31,-3.84,-4.35,-4.86,-5.36,-5.86,-6.34,-6.81,-7.27,-7.72,-8.16,-8.57,-8.97,-9.35,-9.72,-10.06,-10.37,-10.66,-10.93,-11.17,-11.38,-11.56,-11.72,-11.84,-11.93,-11.98,-12,-11.95,-11.82,-11.61,-11.32,-10.97,-10.55,-10.08,-9.55,-8.97,-8.37,-7.71,-7.02,-6.31,-5.58,-4.82,-4.05,-3.27,-2.5,-1.71,-0.92,-0.15,0.61,1.35,2.08,2.78,3.46,4.11,4.72,5.29,5.81,6.29,6.73,7.1,7.41,7.66,7.85,7.96,8,7.988,7.95,7.9,7.82,7.73,7.61,7.48,7.33,7.17,6.99,6.8,6.6,6.39,6.16,5.93,5.7,5.45,5.2,4.95,4.69,4.43,4.16,3.9,3.64,3.38,3.12,2.87,2.62,2.38,2.14,1.92,1.69,1.48,1.28,1.1,0.92,0.75,0.6,0.47,0.35,0.25,0.16,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.19,0.32,0.49,0.7,0.93,1.18,1.45,1.75,2.06,2.39,2.73,3.07,3.42,3.78,4.13,4.49,4.84,5.18,5.51,5.84,6.14,6.43,6.71,6.96,7.19,7.39,7.57,7.72,7.84,7.93,7.98,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.98,7.9,7.78,7.62,7.41,7.17,6.88,6.55,6.19,5.8,5.37,4.92,4.43,3.91,3.37,2.81,2.22,1.62,0.99,0.36,-0.29,-0.96,-1.64,-2.32,-3.02,-3.72,-4.43,-5.14,-5.86,-6.57,-7.28,-7.98,-8.68,-9.36,-10.04,-10.71,-11.36,-11.99,-12.62,-13.22,-13.81,-14.37,-14.91,-15.43,-15.92,-16.37,-16.8,-17.19,-17.55,-17.88,-18.17,-18.41,-18.62,-18.78,-18.9,-18.98,-19,-18.94,-18.78,-18.51,-18.15,-17.72,-17.19,-16.6,-15.93,-15.22,-14.46,-13.64,-12.77,-11.89,-10.97,-10.03,-9.07,-8.09,-7.12,-6.13,-5.15,-4.19,-3.24,-2.31,-1.4,-0.52,0.33,1.14,1.9,2.62,3.27,3.87,4.41,4.87,5.27,5.58,5.81,5.95,6,5.94,5.77,5.5,5.15,4.71,4.21,3.67,3.08,2.46,1.82,1.18,0.54,-0.08,-0.67,-1.21,-1.71,-2.15,-2.5,-2.77,-2.94,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.23,-2.06,-1.88,-1.71,-1.52,-1.34,-1.16,-0.99,-0.82,-0.67,-0.53,-0.4,-0.28,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0.001,0.002,0.004,0.006,0.008,0.01,0.012,0.015,0.018,0.022,0.025,0.029,0.034,0.038,0.043,0.048,0.053,0.059,0.065,0.071,0.077,0.084,0.091,0.098,0.105,0.113,0.121,0.129,0.137,0.146,0.154,0.164,0.173,0.182,0.192,0.202,0.212,0.222,0.233,0.243,0.254,0.265,0.277,0.288,0.3,0.312,0.324,0.336,0.349,0.361,0.374,0.387,0.4,0.414,0.427,0.441,0.455,0.469,0.483,0.497,0.511,0.526,0.541,0.555,0.57,0.586,0.601,0.616,0.632,0.648,0.663,0.679,0.695,0.711,0.728,0.744,0.76,0.777,0.794,0.811,0.827,0.845,0.862,0.879,0.896,0.913,0.931,0.948,0.966,0.984,1.001,1.019,1.037,1.055,1.073,1.091,1.109,1.127,1.145,1.164,1.182,1.2,1.219,1.237,1.255,1.274,1.293,1.311,1.33,1.348,1.367,1.386,1.404,1.423,1.442,1.46,1.479,1.498,1.516,1.535,1.554,1.572,1.591,1.61,1.628,1.647,1.666,1.684,1.703,1.721,1.74,1.758,1.777,1.795,1.813,1.832,1.85,1.868,1.886,1.904,1.922,1.94,1.958,1.976,1.994,2.011,2.029,2.047,2.064,2.081,2.099,2.116,2.133,2.15,2.167,2.184,2.2,2.217,2.234,2.25,2.267,2.283,2.299,2.315,2.331,2.347,2.362,2.378,2.393,2.408,2.424,2.438,2.453,2.468,2.483,2.497,2.511,2.525,2.539,2.553,2.567,2.58,2.593,2.607,2.62,2.633,2.645,2.658,2.67,2.682,2.694,2.706,2.717,2.728,2.74,2.751,2.761,2.772,2.782,2.792,2.802,2.812,2.821,2.831,2.84,2.849,2.857,2.866,2.874,2.882,2.889,2.897,2.904,2.911,2.918,2.924,2.931,2.936,2.942,2.948,2.953,2.958,2.963,2.967,2.971,2.975,2.979,2.982,2.985,2.988,2.99,2.993,2.995,2.996,2.998,2.999,2.999,3,3,2.995,2.98,2.96,2.92,2.88,2.83,2.78,2.72,2.65,2.57,2.49,2.41,2.32,2.23,2.13,2.03,1.93,1.83,1.72,1.62,1.51,1.41,1.3,1.2,1.1,1,0.9,0.81,0.71,0.63,0.54,0.46,0.39,0.32,0.26,0.2,0.15,0.1,0.07,0.04,0.02,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.024,-0.05,-0.09,-0.12,-0.16,-0.21,-0.24,-0.28,-0.31,-0.323,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.326,-0.322,-0.316,-0.308,-0.299,-0.289,-0.277,-0.265,-0.251,-0.236,-0.22,-0.203,-0.185,-0.167,-0.149,-0.129,-0.11,-0.09,-0.069,-0.05,-0.03,-0.007,0.013,0.034,0.05,0.074,0.094,0.113,0.131,0.149,0.167,0.183,0.199,0.214,0.228,0.241,0.252,0.263,0.273,0.281,0.287,0.293,0.297,0.299,0.3,0.3,0.299,0.298,0.296,0.294,0.291,0.288,0.284,0.28,0.276,0.271,0.266,0.261,0.256,0.25,0.244,0.237,0.231,0.224,0.217,0.21,0.203,0.196,0.189,0.181,0.174,0.166,0.159,0.151,0.143,0.136,0.128,0.121,0.113,0.106,0.099,0.092,0.085,0.078,0.071,0.065,0.059,0.053,0.047,0.041,0.036,0.031,0.027,0.022,0.018,0.015,0.011,0.008,0.006,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.12,-0.21,-0.3,-0.4,-0.49,-0.58,-0.67,-0.73,-0.77,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.79,-0.789,-0.784,-0.777,-0.768,-0.756,-0.741,-0.725,-0.706,-0.686,-0.66,-0.64,-0.62,-0.59,-0.56,-0.53,-0.5,-0.47,-0.44,-0.41,-0.38,-0.34,-0.31,-0.28,-0.25,-0.21,-0.18,-0.15,-0.12,-0.09,-0.06,-0.03,0,0.02,0.05,0.07,0.1,0.116,0.134,0.152,0.166,0.179,0.19,0.199,0.205,0.209,0.21,0.21,0.21,0.208,0.207,0.205,0.204,0.201,0.199,0.196,0.193,0.19,0.186,0.183,0.179,0.175,0.171,0.166,0.162,0.157,0.152,0.147,0.142,0.137,0.132,0.127,0.122,0.116,0.111,0.106,0.1,0.095,0.09,0.085,0.079,0.074,0.069,0.064,0.059,0.055,0.05,0.045,0.041,0.037,0.033,0.029,0.025,0.022,0.019,0.016,0.013,0.01,0.008,0.006,0.004,0.003,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_SWEAT=0\r\r\nPARAM_RAGE=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.004,-0.016,-0.035,-0.06,-0.1,-0.14,-0.18,-0.23,-0.29,-0.35,-0.42,-0.49,-0.57,-0.65,-0.74,-0.82,-0.92,-1.01,-1.1,-1.2,-1.3,-1.41,-1.51,-1.62,-1.72,-1.83,-1.93,-2.04,-2.15,-2.25,-2.36,-2.46,-2.56,-2.67,-2.77,-2.86,-2.96,-3.05,-3.14,-3.23,-3.31,-3.39,-3.47,-3.54,-3.61,-3.67,-3.73,-3.79,-3.83,-3.88,-3.91,-3.94,-3.97,-3.986,-3.996,-4,-3.97,-3.87,-3.72,-3.51,-3.26,-2.96,-2.62,-2.25,-1.84,-1.41,-0.95,-0.48,0.01,0.5,1,1.5,1.99,2.48,2.95,3.41,3.84,4.25,4.62,4.96,5.26,5.51,5.72,5.87,5.97,6,5.96,5.85,5.68,5.46,5.18,4.88,4.55,4.19,3.82,3.44,3.05,2.66,2.29,1.91,1.57,1.24,0.94,0.68,0.45,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.015,-0.06,-0.14,-0.24,-0.36,-0.51,-0.68,-0.87,-1.08,-1.3,-1.54,-1.8,-2.07,-2.34,-2.63,-2.92,-3.21,-3.51,-3.81,-4.11,-4.42,-4.71,-5,-5.29,-5.57,-5.85,-6.11,-6.36,-6.6,-6.82,-7.03,-7.22,-7.4,-7.55,-7.68,-7.79,-7.88,-7.95,-7.99,-8,-7.99,-7.96,-7.91,-7.84,-7.76,-7.66,-7.54,-7.42,-7.27,-7.11,-6.94,-6.76,-6.57,-6.37,-6.16,-5.94,-5.71,-5.48,-5.24,-4.99,-4.74,-4.48,-4.23,-3.96,-3.7,-3.43,-3.17,-2.9,-2.63,-2.37,-2.1,-1.84,-1.59,-1.33,-1.08,-0.84,-0.6,-0.37,-0.15,0.07,0.28,0.48,0.67,0.86,1.03,1.18,1.33,1.46,1.58,1.69,1.78,1.86,1.92,1.96,1.99,2,1.997,1.989,1.975,1.955,1.93,1.9,1.87,1.83,1.79,1.75,1.7,1.65,1.6,1.54,1.48,1.42,1.36,1.3,1.23,1.17,1.1,1.03,0.97,0.9,0.83,0.77,0.7,0.64,0.58,0.52,0.46,0.4,0.35,0.3,0.25,0.21,0.17,0.13,0.1,0.07,0.04,0.025,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,-0.001,0,-0.003,-0.004,-0.006,-0.008,-0.01,-0.012,-0.015,-0.017,-0.02,-0.024,-0.027,-0.03,-0.034,-0.038,-0.043,-0.047,-0.052,-0.057,-0.061,-0.067,-0.072,-0.078,-0.084,-0.09,-0.096,-0.102,-0.109,-0.116,-0.122,-0.13,-0.137,-0.144,-0.152,-0.16,-0.168,-0.176,-0.184,-0.192,-0.201,-0.21,-0.219,-0.227,-0.237,-0.246,-0.255,-0.265,-0.275,-0.285,-0.295,-0.305,-0.315,-0.325,-0.336,-0.346,-0.357,-0.368,-0.379,-0.39,-0.401,-0.412,-0.424,-0.435,-0.447,-0.458,-0.47,-0.482,-0.494,-0.506,-0.518,-0.53,-0.543,-0.555,-0.567,-0.58,-0.592,-0.605,-0.618,-0.63,-0.643,-0.656,-0.669,-0.682,-0.695,-0.708,-0.722,-0.735,-0.748,-0.761,-0.775,-0.788,-0.801,-0.815,-0.828,-0.842,-0.855,-0.869,-0.883,-0.896,-0.91,-0.923,-0.937,-0.951,-0.964,-0.978,-0.992,-1.005,-1.019,-1.032,-1.046,-1.06,-1.073,-1.087,-1.101,-1.114,-1.128,-1.141,-1.155,-1.168,-1.182,-1.195,-1.208,-1.222,-1.235,-1.248,-1.262,-1.275,-1.288,-1.301,-1.314,-1.327,-1.34,-1.353,-1.366,-1.378,-1.391,-1.404,-1.416,-1.429,-1.441,-1.453,-1.466,-1.478,-1.49,-1.502,-1.514,-1.526,-1.537,-1.549,-1.561,-1.572,-1.583,-1.595,-1.606,-1.617,-1.628,-1.639,-1.649,-1.66,-1.67,-1.681,-1.691,-1.701,-1.711,-1.721,-1.731,-1.74,-1.749,-1.759,-1.768,-1.777,-1.786,-1.794,-1.803,-1.812,-1.82,-1.828,-1.836,-1.844,-1.851,-1.859,-1.866,-1.873,-1.88,-1.887,-1.894,-1.9,-1.906,-1.912,-1.918,-1.924,-1.929,-1.935,-1.94,-1.945,-1.95,-1.954,-1.958,-1.963,-1.967,-1.97,-1.974,-1.977,-1.98,-1.983,-1.986,-1.988,-1.99,-1.992,-1.994,-1.996,-1.997,-1.998,-2,-2,-2,-2,-1.97,-1.9,-1.78,-1.62,-1.43,-1.2,-0.96,-0.7,-0.42,-0.14,0.14,0.42,0.7,0.96,1.2,1.43,1.62,1.78,1.9,1.97,2,1.97,1.9,1.78,1.62,1.44,1.22,0.99,0.75,0.5,0.25,0.01,-0.22,-0.44,-0.62,-0.78,-0.9,-0.97,-1,-0.996,-0.984,-0.966,-0.94,-0.91,-0.87,-0.83,-0.79,-0.74,-0.69,-0.64,-0.58,-0.53,-0.47,-0.42,-0.36,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=1\r\r\nPARAM_ARM_R=-1\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,1.31,4.14,7.68,11.34,14.69,17.47,19.31,20,17.28,10.48,1.02,-9.24,-18.35,-25,-28.99,-30,-30,-30,-28.8,-25.57,-20.9,-15.36,-9.64,-4.1,0.57,3.8,5,4.67,3.96,3.08,2.16,1.33,0.63,0.17,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.46,1.45,2.69,3.97,5.14,6.11,6.76,7,6.21,4.51,2.39,0.19,-1.82,-3.48,-4.59,-5,-4.83,-4.37,-3.7,-2.91,-2.09,-1.3,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,-2.21,-7.57,-14.12,-20.51,-25.64,-28.9,-30,-28.21,-23.52,-16.74,-9,-0.96,6.54,12.94,17.83,20.91,22,21.1,18.69,14.97,10.29,5.12,-0.5,-6.12,-11.29,-15.97,-19.69,-22.1,-23,-22.26,-20.41,-17.9,-14.96,-11.9,-8.89,-6.04,-3.64,-1.71,-0.46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.14,-0.5,-1.02,-1.62,-2.23,-2.81,-3.3,-3.68,-3.92,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.87,-3.55,-3.11,-2.6,-2.07,-1.55,-1.05,-0.63,-0.3,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.26,0.38,0.48,0.54,0.56,0.52,0.42,0.26,0.09,-0.09,-0.26,-0.4,-0.51,-0.58,-0.6,-0.58,-0.51,-0.42,-0.3,-0.16,-0.02,0.12,0.26,0.38,0.47,0.54,0.56,0.549,0.52,0.48,0.43,0.38,0.32,0.26,0.2,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.01,0.016,0.022,0.028,0.033,0.037,0.039,0.04,0.039,0.037,0.034,0.03,0.025,0.02,0.015,0.01,0.006,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.52,-0.84,-1.16,-1.48,-1.75,-1.93,-2,-1.79,-1.25,-0.47,0.42,1.35,2.22,2.95,3.52,3.87,4,3.88,3.56,3.06,2.44,1.75,1,0.25,-0.44,-1.06,-1.56,-1.88,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.52,-0.71,-0.9,-1.1,-1.29,-1.48,-1.65,-1.79,-1.9,-1.97,-2,-1.99,-1.96,-1.91,-1.85,-1.78,-1.69,-1.59,-1.48,-1.37,-1.25,-1.13,-1,-0.87,-0.75,-0.63,-0.52,-0.41,-0.31,-0.22,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,1.18,4.04,7.53,10.94,13.67,15.41,16,15.45,14.01,11.92,9.54,7.06,4.76,2.79,1.28,0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,-0.38,-1.39,-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-0.03\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,-0.06,-0.24,-0.52,-0.89,-1.32,-1.81,-2.35,-2.92,-3.5,-4.08,-4.65,-5.19,-5.68,-6.11,-6.48,-6.76,-6.94,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0.15,0.5,0.94,1.37,1.71,1.93,2,1.84,1.44,0.89,0.25,-0.41,-1.07,-1.69,-2.21,-2.63,-2.9,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-0.56,2.56,6.44,10.48,14.16,17.21,19.24,20,19.31,17.51,14.9,11.92,8.83,5.95,3.48,1.6,0.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.37,1.26,2.35,3.42,4.27,4.82,5,4.9,4.63,4.22,3.7,3.12,2.5,1.88,1.3,0.78,0.37,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,-0.2,-0.62,-1.15,-1.7,-2.2,-2.62,-2.9,-3,-2.24,-0.26,2.61,5.88,9.29,12.46,15.17,17.24,18.54,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18.83,18.35,17.6,16.61,15.45,14.13,12.7,11.22,9.69,8.17,6.7,5.32,4.03,2.89,1.89,1.09,0.5,0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=-0.5\r\r\nPARAM_BROW_R_Y=-0.52\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0.48\r\r\nPARAM_BROW_R_FORM=0.5\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.26,0.55,0.95,1.43,1.99,2.59,3.25,3.94,4.65,5.35,6.06,6.75,7.41,8.01,8.57,9.05,9.45,9.74,9.93,10,10,10,10,10,10,10,10,10,10,10,10,9.91,9.67,9.3,8.81,8.25,7.6,6.92,6.21,5.47,4.72,4,3.29,2.61,2,1.43,0.95,0.55,0.26,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0.34,1.27,2.6,4.18,5.82,7.4,8.73,9.66,10,9.48,8.1,6.1,3.73,1.27,-1.1,-3.1,-4.48,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.96,-4.83,-4.63,-4.37,-4.07,-3.72,-3.34,-2.95,-2.55,-2.15,-1.76,-1.4,-1.06,-0.76,-0.5,-0.29,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,9.68,6.38,1.9,-3.34,-8.78,-14.15,-19.23,-23.5,-26.95,-29.18,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-28.97,-26.2,-22.2,-17.45,-12.55,-7.8,-3.8,-1.03,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.997,0.99,0.98,0.969,0.957,0.945,0.934,0.924,0.917,0.912,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.911,0.914,0.919,0.926,0.933,0.941,0.95,0.958,0.966,0.974,0.982,0.988,0.993,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,0.997,0.99,0.98,0.969,0.957,0.945,0.934,0.924,0.917,0.912,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.911,0.914,0.919,0.926,0.933,0.941,0.95,0.958,0.966,0.974,0.982,0.988,0.993,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0,0,-0.002,-0.005,-0.008,-0.011,-0.014,-0.017,-0.018,-0.02,-0.02,-0.019,-0.018,-0.016,-0.013,-0.01,-0.008,-0.005,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.014,-0.05,-0.11,-0.17,-0.23,-0.3,-0.35,-0.39,-0.41,-0.42,-0.37,-0.26,-0.1,0.08,0.27,0.45,0.63,0.77,0.89,0.97,1,1,1,1,1,1,1,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.12,-0.16,-0.2,-0.24,-0.28,-0.31,-0.323,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.326,-0.314,-0.296,-0.27,-0.25,-0.22,-0.18,-0.15,-0.12,-0.09,-0.07,-0.04,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.03,-0.07,-0.11,-0.15,-0.19,-0.23,-0.26,-0.29,-0.304,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.31,-0.306,-0.295,-0.278,-0.26,-0.23,-0.2,-0.17,-0.14,-0.12,-0.09,-0.06,-0.04,-0.024,-0.011,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.18,-0.23,-0.28,-0.33,-0.38,-0.43,-0.48,-0.53,-0.57,-0.61,-0.64,-0.67,-0.69,-0.705,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71,-0.71\r\r\nPARAM_BROW_R_X=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.15,-0.19,-0.24,-0.29,-0.34,-0.39,-0.44,-0.49,-0.54,-0.58,-0.63,-0.66,-0.69,-0.71,-0.725,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.14,0.5,1.02,1.62,2.23,2.81,3.3,3.68,3.92,4,4,4,4,3.08,1.1,-1.37,-3.94,-6.29,-8.23,-9.52,-10,-10,-10,-10,-10,-10,-10,-10,-9.988,-9.92,-9.76,-9.49,-9.1,-8.6,-8,-5.43,-2.34,0.37,2.27,3,2.8,2.38,1.85,1.3,0.8,0.38,0.1,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_m_06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.9,-3.16,-6.21,-9.79,-13.51,-17.17,-20.64,-23.56,-25.92,-27.44,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-27.86,-27.45,-26.8,-25.92,-24.87,-23.63,-22.23,-20.75,-19.14,-17.45,-15.76,-14,-12.24,-10.55,-8.86,-7.25,-5.77,-4.38,-3.13,-2.08,-1.2,-0.55,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.06,-0.21,-0.47,-0.82,-1.23,-1.72,-2.27,-2.85,-3.48,-4.14,-4.81,-5.5,-6.19,-6.86,-7.52,-8.15,-8.73,-9.28,-9.77,-10.18,-10.53,-10.79,-10.94,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10.96,-10.83,-10.62,-10.34,-10,-9.61,-9.17,-8.67,-8.15,-7.59,-7.01,-6.41,-5.81,-5.19,-4.59,-3.99,-3.41,-2.85,-2.33,-1.83,-1.39,-1,-0.66,-0.38,-0.17,-0.04,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=1\r\r\nPARAM_BROW_R_ANGLE=1\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Z=0\r\r\nPARAM_BODY_ANGLE_Y=0,0.08,0.29,0.62,1.02,1.47,1.94,2.41,2.84,3.23,3.55,3.8,3.95,4,3.61,2.65,1.34,-0.2,-1.79,-3.36,-4.85,-6.1,-7.11,-7.76,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.86,-7.49,-6.93,-6.22,-5.41,-4.52,-3.57,-2.63,-1.66,-0.75,0.11,0.91,1.61,2.18,2.62,2.9,3,2.9,2.63,2.24,1.79,1.32,0.89,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/motions/miku_shake_01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\nPARAM_ANGLE_X=0,-5.36,-13.95,-21.96,-27.75,-30,-29.47,-28.1,-26,-23.23,-19.87,-15.86,-11.28,-6,0.04,5.47,10.25,14.36,17.72,20.43,22.4,23.6,24,23.48,22.02,19.73,16.81,13.33,9.54,5.54,1.46,-2.54,-6.33,-9.81,-12.73,-15.02,-16.48,-17,-16.68,-15.83,-14.6,-13.08,-11.39,-9.62,-7.83,-6.09,-4.47,-3,-1.79,-0.83,-0.21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,5.36,13.95,21.96,27.75,30,28.16,24.18,19.18,13.96,9.15,5.08,2.27,1,0.67,0.44,0.28,0.14,0.02,-0.13,-0.33,-0.61,-1,-1.62,-2.54,-3.74,-5.15,-6.77,-8.51,-10.35,-12.25,-14.18,-16.08,-17.96,-19.71,-21.35,-22.78,-24,-25.18,-26.15,-26.96,-27.65,-28.22,-28.68,-29.05,-29.35,-29.57,-29.75,-29.87,-29.94,-29.99,-30,-29.43,-27.94,-25.77,-23.08,-20.09,-16.97,-13.81,-10.75,-7.88,-5.29,-3.15,-1.47,-0.38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.6,-2.21,-4.62,-7.65,-11,-14.56,-18.06,-21.32,-24.22,-26.65,-28.47,-29.61,-30,-28.8,-25.59,-20.63,-14.39,-7.49,0,7.49,14.39,20.63,25.59,28.8,30,29,26.32,22.3,17.25,11.67,5.73,-0.1,-5.54,-10.36,-14.41,-17.45,-19.35,-20,-19.36,-17.65,-15.07,-11.84,-8.27,-4.47,-0.74,2.74,5.83,8.42,10.37,11.58,12,11.77,11.18,10.31,9.23,8.04,6.79,5.53,4.3,3.15,2.12,1.26,0.59,0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_BALL_X=-0.87,-0.853,-0.81,-0.73,-0.64,-0.52,-0.39,-0.25,-0.1,0.05,0.2,0.34,0.48,0.6,0.72,0.81,0.89,0.95,0.99,1,0.97,0.89,0.77,0.61,0.44,0.26,0.09,-0.08,-0.23,-0.35,-0.44,-0.5,-0.52,-0.508,-0.47,-0.42,-0.35,-0.27,-0.18,-0.07,0.03,0.14,0.26,0.36,0.47,0.56,0.64,0.71,0.76,0.8,0.81,0.78,0.71,0.6,0.47,0.34,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0.38,0.384,0.394,0.41,0.43,0.46,0.49,0.52,0.55,0.58,0.61,0.65,0.68,0.7,0.73,0.75,0.766,0.779,0.787,0.79,0.76,0.69,0.59,0.45,0.3,0.14,-0.01,-0.16,-0.28,-0.39,-0.47,-0.52,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.54,-0.521,-0.47,-0.4,-0.31,-0.23,-0.14,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_Y=0.63\r\r\nPARAM_BROW_R_Y=0.65\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.25\r\r\nPARAM_BROW_R_ANGLE=0.25\r\r\nPARAM_BROW_L_FORM=-0.52\r\r\nPARAM_BROW_R_FORM=-0.52\r\r\nPARAM_MOUTH_FORM=-0.31\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TERE=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.66,-2.07,-3.84,-5.67,-7.35,-8.73,-9.66,-10,-9.75,-9.04,-7.92,-6.49,-4.8,-2.95,-0.99,0.99,2.95,4.8,6.49,7.92,9.04,9.75,10,9.81,9.28,8.44,7.37,6.1,4.71,3.25,1.75,0.29,-1.1,-2.37,-3.44,-4.28,-4.81,-5,-4.87,-4.52,-4.01,-3.39,-2.69,-1.96,-1.22,-0.51,0.16,0.76,1.26,1.66,1.91,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.66,-2.07,-3.84,-5.67,-7.35,-8.73,-9.66,-10,-9.75,-9.04,-7.92,-6.49,-4.8,-2.95,-0.99,0.99,2.95,4.8,6.49,7.92,9.04,9.75,10,9.79,9.18,8.23,7.02,5.58,4.01,2.35,0.65,-1.01,-2.58,-4.02,-5.23,-6.18,-6.79,-7,-6.83,-6.38,-5.73,-4.92,-4.03,-3.09,-2.14,-1.22,-0.36,0.41,1.05,1.56,1.89,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,1.29,2.5,3.71,4.62,5,4.83,4.37,3.7,2.91,2.09,1.3,0.63,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_ARM_R=0\r\r\nPARAM_BREATH=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_SIDE_L=0\r\r\nPARAM_HAIR_SIDE_R=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_BACK_L=0\r\r\nPARAM_HAIR_BACK_R=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/physics.json",
    "content": "{\n    \"type\": \"Live2D Physics\",\n    \"physics_hair\": [\n    {\n        \"label\": \"FRONT\",\n        \"setup\":\n        {\n            \"length\": 0.18,\n            \"regist\": 0.6,\n            \"mass\": 0.18\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.015,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 2.4,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_FRONT\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"label\": \"BACK\",\n        \"setup\":\n        {\n            \"length\": 0.15,\n            \"regist\": 0.85,\n            \"mass\": 0.1\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_BODY_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.015,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_BODY_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 2.4,\n            \"weight\": 0.5\n        },\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.7,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_BACK\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.025,\n            \"weight\": 1\n        }]\n    },\n    {\n        \"label\": \"TWIN\",\n        \"setup\":\n        {\n            \"length\": 0.7,\n            \"regist\": 0.5,\n            \"mass\": 0.8\n        },\n        \"src\": [\n        {\n            \"id\": \"PARAM_ANGLE_X\",\n            \"ptype\": \"x\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_ANGLE_Z\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.8,\n            \"weight\": 1\n        }],\n        \"targets\": [\n        {\n            \"id\": \"PARAM_HAIR_BACK_L\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        },\n        {\n            \"id\": \"PARAM_HAIR_BACK_R\",\n            \"ptype\": \"angle\",\n            \"scale\": 0.005,\n            \"weight\": 1\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/miku/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/index.json",
    "content": "{\n\t\"version\": \"Live2D MoePet v1.1\",\n\t\"name\": \"remu\",\n\t\"model\": \"remu.moc\",\n\t\"textures\": [\n\t\t\"texture_00.png\"\n\t],\n\t\"physics\": \"remu.physics.json\",\n\t\"pose\": \"remu.pose.json\",\n\t\"lip_sync\": \"false\",\n\t\"layout\": {\n\t\t\"center_x\":0.0,\n        \"center_y\":-0.05,\n        \"width\":2.0\n\t},\n\t\"hit_areas_custom\":{\n        \"head_x\":[-0.3, 1.12],\n        \"head_y\":[0.26, 0.56],\n        \"body_x\":[-0.41, 0.58],\n        \"body_y\":[0.46, -1.12]\n    },\n\n\t\"motions\": {\n\t\t\"idle\": [{\n\t\t\t\"file\": \"motions/Live2D_remu_idle.mtn\"\n\t\t}],\n\t\t\"flick_head\": [\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu01.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu02.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu03.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu04.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu05.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu21.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu22.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu23.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu24.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu25.mtn\"\n\t\t\t}\n\t\t],\n\t\t\"tap_body\": [\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu06.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu07.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu08.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu09.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu10.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu11.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu12.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu13.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu14.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu15.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu16.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu17.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu18.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu19.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu20.mtn\"\n\t\t\t}\n\t\t],\n\t\t\"sleepy\":[\n\t\t\t{\"file\":\"motions/Live2D_remu_idle.mtn\"}\n        ],\n\t\t\"rest\":[\n\t\t\t{\"file\":\"motions/Live2D_remu_idle.mtn\"}\n        ],\n\t\t\"talk\":[\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu01.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu02.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu03.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu04.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu05.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu21.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu22.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu23.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu24.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu25.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu26.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu06.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu07.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu08.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu09.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu10.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu11.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu12.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu13.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu14.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu15.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu16.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu17.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu18.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu19.mtn\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"file\": \"motions/Live2D_remu20.mtn\"\n\t\t\t}\n\t\t]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.09,0.15,0.22,0.3,0.4,0.49,0.6,0.7,0.81,0.92,1.03,1.14,1.24,1.34,1.44,1.52,1.6,1.67,1.72,1.77,1.8,1.82,1.84,1.865,1.883,1.9,1.915,1.928,1.94,1.951,1.96,1.969,1.975,1.981,1.986,1.99,1.993,1.996,1.998,1.999,2,2.001,2.001,2.001,2.001,2.001,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_ANGLE_Y=0,0.48,1.77,3.64,5.86,8.14,10.36,12.23,13.52,14,13.07,10.58,6.98,2.71,-1.71,-5.98,-9.58,-12.07,-13,-12.51,-11.21,-9.32,-7.09,-4.78,-2.54,-0.65,0.65,1.14,1.05,0.84,0.57,0.29,0.09,0,0.2,0.75,1.63,2.74,4.07,5.52,7.05,8.6,10.13,11.58,12.9,14.02,14.89,15.45,15.65,15.27,14.22,12.56,10.45,7.94,5.19,2.3,-0.65,-3.55,-6.29,-8.8,-10.91,-12.57,-13.63,-14,-13.42,-11.87,-9.47,-6.46,-3.12,0.5,4.12,7.46,10.47,12.87,14.42,15,14.31,12.51,9.9,6.92,3.83,0.95,-1.52,-3.4,-4.58,-5,-4.83,-4.37,-3.7,-2.91,-2.09,-1.3,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.51,1.04,1.67,2.33,2.96,3.49,3.86,4,3.93,3.74,3.45,3.05,2.57,2.01,1.41,0.75,0.06,-0.65,-1.35,-2.06,-2.75,-3.41,-4.01,-4.57,-5.05,-5.45,-5.74,-5.93,-6,-5.81,-5.29,-4.45,-3.34,-2.02,-0.5,1.21,2.97,4.87,6.79,8.74,10.61,12.48,14.24,15.89,17.38,18.71,19.85,20.76,21.44,21.86,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.13,0.26,0.18,0.09,0.79,1,0.87,0.25,0.13,0,0.92,1,1,1,1,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.83,0.64,0.45,0.23,0,0,0,0,0,0,0,0,0,0,0.14,0.28,0.92,1,1,0.93,0.61,1,1,1,1,1,0.89,0.55,0.51,0.48,0.44,0.4,1,1,1,0.4,1,1,1,1,1,0.47,0.29,0.1,0.98,1,0.93,0,0,0,0.87,1,1,1,1,1,0.97,0.54,1,1,1,1,1,1,1,1,1,0.95,0.47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.17,-0.35,-0.59,-0.88,-1.2,-1.54,-1.9,-2.27,-2.64,-3,-3.36,-3.69,-4,-4.28,-4.53,-4.72,-4.87,-4.97,-5,-4.96,-4.86,-4.69,-4.46,-4.19,-3.86,-3.5,-3.1,-2.67,-2.21,-1.74,-1.25,-0.75,-0.25,0.25,0.74,1.21,1.67,2.1,2.5,2.86,3.19,3.46,3.69,3.86,3.96,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_BODY_ANGLE_Y=0,0.22,0.76,1.49,2.35,3.25,4.13,4.96,5.66,6.23,6.6,6.73,6.3,5.17,3.52,1.57,-0.45,-2.4,-4.04,-5.18,-5.61,-5.2,-4.33,-3.24,-2.12,-1.09,-0.23,0.33,0.55,0.5,0.4,0.27,0.13,0.03,-0.01,0.03,0.16,0.37,0.62,0.94,1.3,1.69,2.11,2.54,2.99,3.44,3.9,4.34,4.77,5.18,5.56,5.91,6.22,6.49,6.71,6.88,6.98,7.01,6.99,6.9,6.77,6.6,6.38,6.13,5.85,5.54,5.21,4.86,4.49,4.12,3.74,3.36,2.99,2.62,2.26,1.92,1.59,1.29,1,0.76,0.54,0.35,0.2,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.08,-0.14,-0.21,-0.3,-0.39,-0.49,-0.59,-0.7,-0.81,-0.93,-1.04,-1.16,-1.27,-1.38,-1.48,-1.57,-1.67,-1.75,-1.82,-1.88,-1.93,-1.97,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0.016,0.06,0.12,0.19,0.26,0.32,0.38,0.42,0.45,0.46,0.43,0.37,0.27,0.15,0.03,-0.09,-0.19,-0.25,-0.28,-0.271,-0.25,-0.22,-0.18,-0.14,-0.11,-0.07,-0.04,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.03,-0.12,-0.22,-0.31,-0.39,-0.44,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.49,0.53,0.43,0.21,-0.06,-0.34,-0.59,-0.81,-0.95,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.03,-0.09,-0.16,-0.23,-0.29,-0.33,-0.34,-0.28,-0.15,0.02,0.19,0.32,0.4,0.43,0.36,0.2,0.01,-0.19,-0.37,-0.52,-0.62,-0.66,-0.62,-0.52,-0.41,-0.29,-0.18,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.97,-0.87,-0.74,-0.58,-0.42,-0.26,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.02,-0.04,-0.07,-0.11,-0.16,-0.21,-0.26,-0.32,-0.38,-0.44,-0.5,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.995,-0.981,-0.96,-0.93,-0.89,-0.85,-0.81,-0.76,-0.7,-0.65,-0.59,-0.54,-0.48,-0.42,-0.37,-0.31,-0.26,-0.21,-0.17,-0.13,-0.09,-0.06,-0.03,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.002,0.002,0.003,0.003,0.004,0.004,0.005,0.006,0.006,0.007,0.008,0.008,0.009,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.009,0.008,0.008,0.007,0.007,0.006,0.006,0.005,0.004,0.004,0.003,0.003,0.002,0.002,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.06,0.21,0.42,0.69,0.99,1.3,1.62,1.93,2.21,2.47,2.68,2.85,2.96,3,2.9,2.63,2.24,1.79,1.32,0.89,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.006,-0.01,-0.014,-0.02,-0.027,-0.033,-0.041,-0.049,-0.056,-0.064,-0.073,-0.08,-0.088,-0.096,-0.102,-0.109,-0.114,-0.119,-0.123,-0.126,-0.128,-0.129,-0.128,-0.126,-0.124,-0.12,-0.115,-0.11,-0.104,-0.097,-0.091,-0.084,-0.076,-0.069,-0.062,-0.054,-0.047,-0.04,-0.034,-0.027,-0.022,-0.016,-0.012,-0.008,-0.004,-0.002,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.97,-0.87,-0.74,-0.58,-0.42,-0.26,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.01,0.021,0.037,0.056,0.08,0.1,0.13,0.16,0.19,0.22,0.25,0.28,0.31,0.34,0.37,0.4,0.42,0.44,0.463,0.479,0.49,0.497,0.5,0.497,0.49,0.479,0.464,0.446,0.43,0.4,0.38,0.35,0.32,0.3,0.27,0.24,0.21,0.18,0.16,0.13,0.11,0.08,0.063,0.045,0.03,0.017,0.008,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.019,0.04,0.07,0.11,0.15,0.2,0.26,0.31,0.37,0.43,0.49,0.56,0.62,0.68,0.73,0.79,0.84,0.88,0.92,0.95,0.97,0.985,0.99,0.985,0.971,0.95,0.92,0.88,0.84,0.8,0.75,0.7,0.64,0.59,0.53,0.47,0.42,0.36,0.31,0.26,0.21,0.17,0.13,0.09,0.06,0.03,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.75,-0.87,-1,-1.13,-1.25,-1.37,-1.48,-1.59,-1.69,-1.78,-1.85,-1.91,-1.96,-1.99,-2,-1.99,-1.96,-1.92,-1.86,-1.79,-1.7,-1.61,-1.51,-1.41,-1.3,-1.19,-1.07,-0.96,-0.84,-0.73,-0.62,-0.52,-0.43,-0.33,-0.25,-0.18,-0.12,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.03,-0.12,-0.26,-0.45,-0.67,-0.94,-1.24,-1.55,-1.9,-2.26,-2.62,-3,-3.38,-3.74,-4.1,-4.45,-4.76,-5.06,-5.33,-5.55,-5.74,-5.88,-5.97,-6,-5.96,-5.83,-5.62,-5.35,-5.01,-4.62,-4.17,-3.69,-3.17,-2.62,-2.04,-1.46,-0.87,-0.27,0.31,0.89,1.46,1.99,2.5,2.98,3.42,3.81,4.16,4.45,4.69,4.86,4.96,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.96,4.83,4.65,4.41,4.12,3.8,3.46,3.1,2.73,2.36,2,1.64,1.31,1,0.72,0.47,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.42,1.47,2.89,4.55,6.27,7.97,9.58,10.94,12.03,12.74,13,12.68,11.82,10.5,8.84,7,5,3,1.16,-0.5,-1.82,-2.68,-3,-2.76,-2.08,-1.04,0.31,1.87,3.59,5.36,7.17,8.93,10.61,12.11,13.44,14.52,15.32,15.83,16,15.68,14.82,13.5,11.84,10,8,6,4.16,2.5,1.18,0.32,0,0,0,0,0,0,0,0,0,0,0,-0.11,-0.43,-0.94,-1.58,-2.34,-3.17,-4.05,-4.95,-5.83,-6.66,-7.42,-8.06,-8.57,-8.89,-9,-8.95,-8.8,-8.55,-8.21,-7.78,-7.27,-6.68,-6.01,-5.27,-4.45,-3.59,-2.67,-1.69,-0.67,0.4,1.5,2.63,3.81,5,6.27,7.36,8.35,9.19,9.9,10.5,10.99,11.37,11.66,11.85,11.96,12,11.64,10.68,9.19,7.32,5.25,3,0.75,-1.32,-3.19,-4.68,-5.64,-6,-5.92,-5.71,-5.37,-4.95,-4.44,-3.88,-3.3,-2.7,-2.12,-1.56,-1.05,-0.63,-0.29,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.05,-0.18,-0.39,-0.67,-1.01,-1.41,-1.85,-2.33,-2.85,-3.39,-3.93,-4.5,-5.07,-5.61,-6.15,-6.67,-7.15,-7.59,-7.99,-8.33,-8.61,-8.82,-8.95,-9,-8.93,-8.72,-8.38,-7.93,-7.37,-6.73,-6,-5.19,-4.34,-3.43,-2.48,-1.5,-0.5,0.5,1.5,2.48,3.43,4.34,5.19,6,6.73,7.37,7.93,8.38,8.72,8.93,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9.013,9.05,9.12,9.2,9.31,9.43,9.58,9.74,9.91,10.1,10.3,10.5,10.72,10.94,11.16,11.39,11.61,11.84,12.06,12.28,12.5,12.7,12.9,13.09,13.26,13.42,13.57,13.69,13.8,13.88,13.95,13.99,14,13.72,12.97,11.81,10.36,8.75,7,5.25,3.64,2.19,1.03,0.28,0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_EYE_L_OPEN=1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0.19,0.38,0.72,1,1,1,0.8,0.27,0.14,0,0,0,0.69,1,1,1,1,1,0.61,0,0.95,1,1,1,1,1,0.83,0,0,0,0.23,0.47,0.35,0.23,0.12,0,0.24,0.48,1,1,1,1,0.97,0.01,0.99,1,1,1,1,1,1,1,1,1,0.75,0.02,0.015,0.013,0.012,0.011,0.01,0.009,0.008,0.007,0.006,0.004,0.003,0.002,0.001,0,0.2,0.39,0.59,0.78,0.65,0.51,0.95,1,1,1,1,1,0.96,0,0.35,0.69,0.52,0.35,0.17,0,0,0,0,0,0,0,0.24,0.49,1,1,0.94,0,0.3,0.6,0.49,0.38,0.2,0.01,0.96,1,1,1,1,1,1,1,1,1,1,0.69,0.97,1,1,1,1,1,0.82,0,0.84,1,1,1,1,1,1,1,1,1,1,0.84,0.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.15,-0.32,-0.54,-0.82,-1.12,-1.45,-1.81,-2.18,-2.56,-2.95,-3.34,-3.71,-4.09,-4.43,-4.76,-5.06,-5.32,-5.55,-5.74,-5.88,-5.97,-6,-5.96,-5.86,-5.69,-5.47,-5.18,-4.85,-4.48,-4.07,-3.63,-3.15,-2.65,-2.13,-1.59,-1.05,-0.5,0.05,0.59,1.13,1.65,2.15,2.63,3.07,3.48,3.85,4.18,4.47,4.69,4.86,4.96,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.983,4.93,4.85,4.75,4.61,4.45,4.26,4.05,3.82,3.57,3.31,3.02,2.73,2.42,2.1,1.77,1.43,1.09,0.74,0.4,0.04,-0.31,-0.66,-1,-1.34,-1.68,-2,-2.31,-2.62,-2.92,-3.19,-3.46,-3.71,-3.93,-4.15,-4.34,-4.51,-4.65,-4.77,-4.87,-4.94,-4.99,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BODY_ANGLE_Y=0,0.2,0.74,1.56,2.6,3.75,5,6.25,7.4,8.44,9.26,9.8,10,9.83,9.35,8.62,7.7,6.65,5.52,4.36,3.21,2.09,1,0.18,-0.02,0,-0.002,0.21,1,2.17,3.29,4.39,5.43,6.38,7.27,8.05,8.71,9.26,9.66,9.91,10,9.76,9.12,8.13,6.88,5.5,4,2.5,1.12,-0.13,-1.12,-1.76,-2,-1.78,-1.24,-0.59,0.05,0.56,0.89,1,1,1,1,1,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.74,0.1,-0.78,-1.8,-2.86,-3.91,-4.9,-5.73,-6.41,-6.84,-7,-6.94,-6.76,-6.48,-6.11,-5.68,-5.19,-4.65,-4.08,-3.5,-2.92,-2.35,-1.81,-1.32,-0.89,-0.52,-0.24,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.74,-0.86,-0.99,-1.11,-1.22,-1.34,-1.45,-1.55,-1.65,-1.74,-1.81,-1.88,-1.93,-1.97,-1.99,-2,-1.97,-1.9,-1.78,-1.64,-1.46,-1.25,-1.03,-0.79,-0.54,-0.29,-0.03,0.23,0.48,0.72,0.95,1.17,1.37,1.55,1.7,1.83,1.92,1.98,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.07,2.21,2.38,2.57,2.73,2.87,2.97,3,2.95,2.79,2.56,2.25,1.88,1.46,1.01,0.54,0.06,-0.42,-0.88,-1.32,-1.73,-2.09,-2.4,-2.66,-2.84,-2.96,-3,-2.97,-2.89,-2.78,-2.65,-2.52,-2.39,-2.26,-2.16,-2.07,-2.02,-2,-2.03,-2.1,-2.21,-2.35,-2.51,-2.69,-2.88,-3.07,-3.26,-3.43,-3.59,-3.73,-3.84,-3.93,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.014,-0.05,-0.11,-0.18,-0.26,-0.35,-0.43,-0.51,-0.58,-0.64,-0.68,-0.71,-0.72,-0.68,-0.57,-0.4,-0.21,-0.01,0.18,0.35,0.46,0.5,0.48,0.42,0.34,0.23,0.12,0,-0.13,-0.23,-0.33,-0.41,-0.47,-0.53,-0.58,-0.62,-0.65,-0.68,-0.697,-0.71,-0.718,-0.72,-0.68,-0.57,-0.4,-0.21,-0.01,0.18,0.35,0.46,0.5,0.46,0.37,0.25,0.13,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.009,-0.03,-0.07,-0.11,-0.17,-0.22,-0.27,-0.32,-0.36,-0.4,-0.43,-0.444,-0.45,-0.42,-0.34,-0.23,-0.09,0.05,0.19,0.3,0.38,0.41,0.389,0.34,0.26,0.17,0.08,0,-0.08,-0.14,-0.2,-0.25,-0.29,-0.32,-0.35,-0.37,-0.385,-0.399,-0.408,-0.415,-0.419,-0.42,-0.39,-0.31,-0.2,-0.07,0.07,0.2,0.31,0.39,0.42,0.39,0.31,0.21,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.03,-0.1,-0.22,-0.39,-0.59,-0.83,-1.1,-1.4,-1.73,-2.07,-2.44,-2.81,-3.21,-3.6,-4,-4.4,-4.79,-5.19,-5.56,-5.93,-6.27,-6.6,-6.9,-7.17,-7.41,-7.61,-7.78,-7.9,-7.97,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.98,-7.91,-7.8,-7.65,-7.46,-7.24,-6.98,-6.69,-6.38,-6.04,-5.67,-5.29,-4.89,-4.47,-4.04,-3.6,-3.15,-2.69,-2.23,-1.77,-1.31,-0.85,-0.4,0.04,0.47,0.89,1.29,1.67,2.04,2.38,2.69,2.98,3.24,3.46,3.65,3.8,3.91,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_ANGLE_Y=0,0.08,0.28,0.58,0.96,1.39,1.83,2.27,2.68,3.05,3.36,3.59,3.73,3.78,3.44,2.54,1.16,-0.55,-2.53,-4.7,-7,-9.3,-11.64,-13.86,-15.96,-17.9,-19.61,-21.01,-22.08,-22.76,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-22.83,-22.33,-21.57,-20.53,-19.27,-17.83,-16.27,-14.56,-12.76,-10.91,-9.09,-7.24,-5.44,-3.73,-2.17,-0.73,0.53,1.57,2.33,2.83,3,2.79,2.21,1.34,0.25,-1.01,-2.38,-3.84,-5.3,-6.79,-8.2,-9.53,-10.76,-11.85,-12.74,-13.41,-13.85,-14,-13.82,-13.35,-12.63,-11.74,-10.7,-9.57,-8.37,-7.16,-5.94,-4.78,-3.68,-2.67,-1.77,-1.04,-0.48,-0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.03,-0.1,-0.22,-0.38,-0.58,-0.8,-1.06,-1.35,-1.65,-1.98,-2.31,-2.66,-3.02,-3.39,-3.77,-4.14,-4.51,-4.87,-5.23,-5.58,-5.91,-6.23,-6.53,-6.82,-7.07,-7.3,-7.51,-7.68,-7.81,-7.92,-7.98,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.96,-7.85,-7.67,-7.41,-7.1,-6.73,-6.3,-5.82,-5.29,-4.72,-4.1,-3.46,-2.78,-2.06,-1.33,-0.56,0.21,0.99,1.79,2.59,3.4,4.21,5.01,5.79,6.58,7.36,8.1,8.82,9.53,10.21,10.85,11.46,12.02,12.55,13.04,13.47,13.87,14.2,14.48,14.71,14.87,14.97,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15\r\r\nPARAM_EYE_L_OPEN=1,0.998,0.993,0.984,0.974,0.962,0.949,0.936,0.922,0.908,0.895,0.882,0.87,0.86,0.852,0.846,0.841,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.64,0.3,0.07,0,0,0,0.15,0.39,0.61,0.77,0.84,0.848,0.856,0.864,0.872,0.879,0.886,0.893,0.899,0.905,0.911,0.917,0.922,0.928,0.933,0.938,0.942,0.947,0.951,0.955,0.959,0.962,0.966,0.969,0.972,0.975,0.978,0.98,0.983,0.985,0.987,0.989,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.998,0.999,0.999,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,0.998,0.993,0.985,0.976,0.965,0.953,0.94,0.927,0.914,0.901,0.889,0.879,0.869,0.861,0.855,0.851,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.64,0.31,0.08,0,0,0,0.15,0.39,0.62,0.78,0.85,0.858,0.865,0.873,0.88,0.886,0.893,0.899,0.905,0.911,0.917,0.922,0.927,0.932,0.937,0.941,0.946,0.95,0.954,0.958,0.961,0.965,0.968,0.971,0.974,0.977,0.979,0.981,0.984,0.986,0.988,0.989,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,0.999,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.16,0.16,0.159,0.157,0.155,0.152,0.149,0.146,0.142,0.138,0.133,0.128,0.123,0.118,0.112,0.106,0.1,0.094,0.088,0.082,0.076,0.07,0.063,0.057,0.051,0.046,0.04,0.034,0.029,0.024,0.019,0.014,0.01,0.006,0.003,-0.001,-0.003,-0.006,-0.008,-0.009,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.17,0.172,0.174,0.176,0.178,0.18,0.182,0.183,0.185,0.187,0.188,0.19,0.191,0.192,0.194,0.195,0.196,0.197,0.198,0.199,0.2,0.201,0.202,0.203,0.204,0.205,0.205,0.206,0.206,0.207,0.207,0.208,0.208,0.209,0.209,0.209,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.56\r\r\nPARAM_BROW_R_ANGLE=0.55\r\r\nPARAM_BROW_L_FORM=-1,-0.997,-0.99,-0.978,-0.961,-0.94,-0.92,-0.89,-0.86,-0.83,-0.79,-0.76,-0.72,-0.68,-0.64,-0.6,-0.56,-0.52,-0.48,-0.44,-0.41,-0.37,-0.34,-0.31,-0.28,-0.26,-0.24,-0.222,-0.21,-0.203,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2\r\r\nPARAM_BROW_R_FORM=-1,-0.997,-0.989,-0.976,-0.958,-0.94,-0.91,-0.88,-0.85,-0.81,-0.78,-0.74,-0.7,-0.66,-0.61,-0.57,-0.53,-0.48,-0.44,-0.4,-0.36,-0.33,-0.29,-0.26,-0.23,-0.2,-0.18,-0.164,-0.151,-0.143,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0.13,0.27,0.87,1,1,0.81,1,1,1,1,1,0.61,1,1,0.85,0.03,0.016,0,0.9,1,1,0.74,1,1,1,0.85,1,1,1,1,1,1,1,0.57,1,1,1,1,1,1,1,1,1,1,1,1,1,0.79,0.4,0.2,0,0,0,0,0,0,0.23,0.45,0.23,0,0.24,0.49,0.39,0.29,1,1,1,0.32,0.31,0.298,1,1,0.88,0,0.22,0.43,0.22,0,0.1,0.2,0.3,0.4,0.92,1,1,1,1,0.58,1,1,1,1,0.994,0.51,1,1,1,1,1,1,1,1,1,1,1,0.58,0.05,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.009,-0.04,-0.08,-0.14,-0.21,-0.3,-0.39,-0.5,-0.63,-0.75,-0.89,-1.04,-1.19,-1.34,-1.5,-1.67,-1.83,-2,-2.17,-2.33,-2.5,-2.66,-2.81,-2.96,-3.11,-3.25,-3.38,-3.5,-3.61,-3.7,-3.79,-3.86,-3.92,-3.96,-3.99,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.99,-3.96,-3.92,-3.86,-3.78,-3.69,-3.58,-3.47,-3.34,-3.21,-3.06,-2.91,-2.75,-2.59,-2.42,-2.24,-2.07,-1.89,-1.7,-1.52,-1.34,-1.16,-0.98,-0.81,-0.63,-0.47,-0.3,-0.14,0.01,0.15,0.28,0.41,0.53,0.63,0.72,0.8,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_Y=0,0.06,0.22,0.46,0.76,1.1,1.46,1.81,2.13,2.42,2.66,2.85,2.96,3,2.96,2.86,2.7,2.5,2.25,1.97,1.66,1.32,0.97,0.61,0.24,-0.13,-0.49,-0.86,-1.2,-1.53,-1.84,-2.12,-2.37,-2.59,-2.77,-2.91,-3,-3.07,-3.12,-3.16,-3.19,-3.21,-3.225,-3.239,-3.252,-3.265,-3.281,-3.3,-3.32,-3.35,-3.41,-3.5,-3.61,-3.71,-3.78,-3.81,-3.72,-3.47,-3.08,-2.59,-2.01,-1.38,-0.73,-0.06,0.59,1.21,1.76,2.25,2.65,2.94,3.13,3.19,3.07,2.71,2.16,1.45,0.63,-0.28,-1.21,-2.16,-3.08,-3.97,-4.76,-5.46,-6.03,-6.45,-6.72,-6.81,-6.75,-6.57,-6.31,-5.95,-5.53,-5.06,-4.55,-4.02,-3.47,-2.93,-2.4,-1.91,-1.44,-1.03,-0.68,-0.39,-0.18,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.15,-0.2,-0.25,-0.31,-0.38,-0.45,-0.52,-0.59,-0.67,-0.75,-0.83,-0.92,-1,-1.08,-1.17,-1.25,-1.33,-1.41,-1.48,-1.55,-1.62,-1.69,-1.75,-1.8,-1.85,-1.9,-1.93,-1.96,-1.98,-1.995,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.993,-1.97,-1.94,-1.89,-1.83,-1.76,-1.67,-1.58,-1.48,-1.37,-1.25,-1.12,-0.99,-0.85,-0.7,-0.55,-0.4,-0.24,-0.08,0.08,0.25,0.42,0.58,0.75,0.92,1.08,1.24,1.4,1.55,1.7,1.85,1.99,2.12,2.25,2.37,2.48,2.58,2.67,2.76,2.83,2.89,2.94,2.97,2.99,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.13,-0.17,-0.22,-0.27,-0.33,-0.39,-0.45,-0.52,-0.59,-0.66,-0.73,-0.8,-0.88,-0.95,-1.03,-1.1,-1.18,-1.25,-1.32,-1.39,-1.46,-1.53,-1.59,-1.65,-1.71,-1.76,-1.81,-1.85,-1.89,-1.92,-1.95,-1.97,-1.987,-1.997,-2,-1.996,-1.985,-1.967,-1.94,-1.91,-1.88,-1.84,-1.79,-1.74,-1.69,-1.63,-1.57,-1.5,-1.43,-1.36,-1.29,-1.21,-1.14,-1.06,-0.98,-0.9,-0.81,-0.73,-0.65,-0.57,-0.48,-0.4,-0.32,-0.24,-0.16,-0.08,0,0.08,0.15,0.23,0.29,0.36,0.41,0.47,0.52,0.57,0.61,0.66,0.69,0.73,0.76,0.79,0.82,0.85,0.87,0.89,0.906,0.922,0.936,0.948,0.959,0.968,0.976,0.983,0.988,0.992,0.995,0.997,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P01_ARM_R_2=0,0.002,0.007,0.015,0.025,0.039,0.055,0.074,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.53,0.57,0.6,0.63,0.67,0.7,0.73,0.76,0.79,0.82,0.85,0.87,0.89,0.91,0.934,0.951,0.965,0.977,0.987,0.994,0.999,1,0.999,0.995,0.989,0.981,0.97,0.957,0.942,0.924,0.905,0.88,0.86,0.83,0.8,0.77,0.74,0.71,0.67,0.63,0.6,0.55,0.51,0.47,0.42,0.37,0.32,0.27,0.22,0.17,0.11,0.06,0,-0.06,-0.12,-0.18,-0.24,-0.29,-0.34,-0.39,-0.44,-0.48,-0.53,-0.57,-0.61,-0.64,-0.68,-0.71,-0.74,-0.77,-0.8,-0.82,-0.85,-0.87,-0.89,-0.908,-0.925,-0.939,-0.952,-0.964,-0.974,-0.982,-0.988,-0.994,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P01_ARM_R_3=0,0.003,0.011,0.025,0.044,0.07,0.1,0.13,0.16,0.2,0.25,0.29,0.34,0.39,0.45,0.5,0.56,0.62,0.68,0.74,0.8,0.87,0.93,0.99,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.53,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.978,1.99,1.997,2,1.994,1.975,1.94,1.9,1.85,1.79,1.72,1.65,1.57,1.48,1.39,1.3,1.2,1.1,1,0.9,0.8,0.7,0.61,0.52,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.006,0,0.005,0.021,0.05,0.08,0.12,0.17,0.23,0.3,0.36,0.44,0.52,0.6,0.68,0.77,0.86,0.94,1.03,1.12,1.21,1.29,1.38,1.46,1.53,1.61,1.68,1.74,1.8,1.85,1.89,1.93,1.96,1.98,1.995,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P01_ARM_L_1=0,0.004,0.015,0.034,0.06,0.09,0.13,0.17,0.22,0.27,0.33,0.39,0.45,0.52,0.59,0.66,0.73,0.8,0.88,0.95,1.03,1.1,1.18,1.25,1.32,1.39,1.46,1.53,1.59,1.65,1.71,1.76,1.81,1.85,1.89,1.92,1.95,1.97,1.987,1.997,2,1.996,1.985,1.967,1.94,1.91,1.88,1.84,1.79,1.74,1.69,1.63,1.57,1.5,1.43,1.36,1.29,1.21,1.14,1.06,0.98,0.9,0.81,0.73,0.65,0.57,0.48,0.4,0.32,0.24,0.16,0.08,0,-0.08,-0.15,-0.23,-0.29,-0.36,-0.41,-0.47,-0.52,-0.57,-0.61,-0.66,-0.69,-0.73,-0.76,-0.79,-0.82,-0.85,-0.87,-0.89,-0.906,-0.922,-0.936,-0.948,-0.959,-0.968,-0.976,-0.983,-0.988,-0.992,-0.995,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P01_ARM_L_2=0,0.002,0.007,0.015,0.025,0.039,0.055,0.074,0.09,0.12,0.14,0.17,0.2,0.23,0.26,0.29,0.32,0.36,0.39,0.43,0.46,0.5,0.53,0.57,0.6,0.63,0.67,0.7,0.73,0.76,0.79,0.82,0.85,0.87,0.89,0.91,0.934,0.951,0.965,0.977,0.987,0.994,0.999,1,0.999,0.995,0.989,0.981,0.97,0.957,0.942,0.924,0.905,0.88,0.86,0.83,0.8,0.77,0.74,0.71,0.67,0.63,0.6,0.55,0.51,0.47,0.42,0.37,0.32,0.27,0.22,0.17,0.11,0.06,0,-0.06,-0.12,-0.18,-0.24,-0.29,-0.34,-0.39,-0.44,-0.48,-0.53,-0.57,-0.61,-0.64,-0.68,-0.71,-0.74,-0.77,-0.8,-0.82,-0.85,-0.87,-0.89,-0.908,-0.925,-0.939,-0.952,-0.964,-0.974,-0.982,-0.988,-0.994,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P01_ARM_L_3=0,0.003,0.011,0.025,0.044,0.07,0.1,0.13,0.16,0.2,0.25,0.29,0.34,0.39,0.45,0.5,0.56,0.62,0.68,0.74,0.8,0.87,0.93,0.99,1.06,1.12,1.18,1.24,1.3,1.36,1.42,1.48,1.53,1.59,1.64,1.69,1.73,1.78,1.82,1.85,1.88,1.91,1.94,1.96,1.978,1.99,1.997,2,1.994,1.975,1.94,1.9,1.85,1.79,1.72,1.65,1.57,1.48,1.39,1.3,1.2,1.1,1,0.9,0.8,0.7,0.61,0.52,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.006,0,0.005,0.021,0.05,0.08,0.12,0.17,0.23,0.3,0.36,0.44,0.52,0.6,0.68,0.77,0.86,0.94,1.03,1.12,1.21,1.29,1.38,1.46,1.53,1.61,1.68,1.74,1.8,1.85,1.89,1.93,1.96,1.98,1.995,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.016,-0.06,-0.14,-0.24,-0.37,-0.52,-0.69,-0.87,-1.07,-1.29,-1.51,-1.75,-1.98,-2.23,-2.47,-2.71,-2.95,-3.19,-3.42,-3.64,-3.85,-4.05,-4.23,-4.4,-4.55,-4.68,-4.79,-4.88,-4.95,-4.99,-5,-4.992,-4.97,-4.93,-4.88,-4.82,-4.74,-4.65,-4.55,-4.44,-4.32,-4.19,-4.05,-3.9,-3.75,-3.58,-3.41,-3.23,-3.05,-2.87,-2.67,-2.47,-2.27,-2.07,-1.86,-1.65,-1.44,-1.23,-1.01,-0.8,-0.58,-0.37,-0.16,0.05,0.26,0.47,0.67,0.87,1.07,1.26,1.45,1.63,1.8,1.97,2.13,2.29,2.44,2.58,2.71,2.83,2.95,3.05,3.14,3.22,3.29,3.35,3.4,3.43,3.452,3.459,3.451,3.43,3.39,3.34,3.28,3.21,3.13,3.03,2.94,2.83,2.72,2.6,2.47,2.35,2.22,2.08,1.95,1.82,1.68,1.54,1.41,1.28,1.15,1.02,0.9,0.78,0.67,0.57,0.47,0.38,0.29,0.22,0.16,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.45,1.62,3.31,5.25,7.26,9.13,10.74,11.96,12.73,13,12.78,12.16,11.19,9.89,8.35,6.56,4.58,2.46,0.24,-2.04,-4.33,-6.58,-8.76,-10.79,-12.7,-14.39,-15.84,-17,-18.04,-18.85,-19.49,-19.98,-20.36,-20.63,-20.82,-20.94,-21.01,-21.05,-21.054,-21.046,-21.033,-21.027,-20.61,-19.48,-17.79,-15.67,-13.32,-10.82,-8.37,-6.08,-4.05,-2.35,-1.07,-0.27,0,-0.05,-0.21,-0.46,-0.81,-1.24,-1.74,-2.31,-2.95,-3.65,-4.39,-5.19,-6.01,-6.87,-7.75,-8.64,-9.55,-10.45,-11.36,-12.25,-13.13,-13.99,-14.81,-15.61,-16.35,-17.05,-17.69,-18.26,-18.76,-19.19,-19.54,-19.79,-19.95,-20,-19.84,-19.38,-18.63,-17.65,-16.48,-15.14,-13.63,-12.07,-10.4,-8.7,-6.98,-5.32,-3.67,-2.12,-0.65,0.66,1.83,2.84,3.65,4.25,4.62,4.74,4.48,3.74,2.58,1.11,-0.65,-2.57,-4.6,-6.66,-8.69,-10.6,-12.36,-13.84,-15,-15.74,-16,-15.49,-14.2,-12.45,-10.4,-8.28,-6.19,-4.2,-2.54,-1.19,-0.32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.48,1.77,3.64,5.86,8.14,10.36,12.23,13.52,14,13.07,10.58,6.98,2.71,-1.71,-5.98,-9.58,-12.07,-13,-12.51,-11.21,-9.32,-7.09,-4.78,-2.54,-0.65,0.65,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14\r\r\nPARAM_ANGLE_Z=0,-0.04,-0.15,-0.33,-0.57,-0.86,-1.19,-1.55,-1.95,-2.36,-2.79,-3.21,-3.64,-4.05,-4.45,-4.81,-5.14,-5.43,-5.67,-5.85,-5.96,-6,-5.995,-5.978,-5.95,-5.92,-5.87,-5.81,-5.75,-5.68,-5.6,-5.51,-5.41,-5.3,-5.19,-5.07,-4.95,-4.82,-4.68,-4.54,-4.4,-4.24,-4.09,-3.93,-3.77,-3.61,-3.44,-3.26,-3.09,-2.92,-2.74,-2.56,-2.38,-2.2,-2.02,-1.84,-1.66,-1.49,-1.31,-1.13,-0.96,-0.78,-0.61,-0.45,-0.28,-0.12,0.04,0.19,0.34,0.49,0.62,0.76,0.89,1.02,1.13,1.24,1.35,1.45,1.54,1.62,1.7,1.77,1.83,1.88,1.92,1.96,1.98,1.995,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.92,1.69,1.34,0.86,0.28,-0.39,-1.11,-1.9,-2.73,-3.58,-4.42,-5.27,-6.1,-6.89,-7.61,-8.28,-8.86,-9.34,-9.69,-9.92,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.17,0.17,0.17,0.17,0.169,0.169,0.168,0.168,0.167,0.166,0.166,0.165,0.164,0.163,0.162,0.161,0.16,0.159,0.157,0.156,0.155,0.154,0.152,0.151,0.149,0.148,0.147,0.145,0.144,0.142,0.141,0.139,0.138,0.137,0.135,0.134,0.132,0.131,0.13,0.128,0.127,0.126,0.124,0.123,0.122,0.121,0.12,0.119,0.118,0.117,0.116,0.115,0.114,0.113,0.113,0.112,0.112,0.111,0.111,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11,0.11\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.31,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42,0.42\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.15,0.3,0.51,0.72,0.6,0.47,1,1,1,0.31,1,1,1,1,1,1,0.85,0,0.8,1,1,0.62,1,1,0.71,0,0,0,0.18,0.35,1,1,0.97,0,0.76,1,1,0.64,0.62,0.6,0.6,0.6,0.6,0.6,0.44,0.28,0.14,0,0,0,0.13,0.26,0.22,0.18,0.77,1,0.68,0,0.84,1,1,0.51,1,1,1,1,1,1,0.64,0,0.24,0.49,1,1,1,0.86,0.43,0,0.18,0.36,1,1,1,1,1,1,1,0.4,0.2,0,0.05,0.1,0.84,1,0.79,0,0.96,1,1,0.57,0.86,1,1,1,1,1,1,1,1,0.27,1,1,1,1,1,1,1,1,0.96,0.6,1,1,1,1,1,1,0.57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.42,0.84,0.55,0.27,0.59,0.9,0.45,0,0.98,1,1,1,1,1,0.64,0,0.23,0.45,0.68,0.9,0.85,0.81,0.4,0,0.89,1,1,1,0.998,0.58,1,1,1,1,0.91,0,0.97,1,1,0.89,0.89,0.89,0.89,0.89,0.45,0,0,0,0,0,0.15,0.29,0.97,1,1,1,1,1,1,0.59,0.93,1,1,1,0.97,0,0.72,1,1,1,1,1,1,0.54,1,1,1,1,1,1,1,1,1,1,0.57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.23,-0.49,-0.81,-1.18,-1.58,-2.01,-2.44,-2.88,-3.29,-3.69,-4.05,-4.37,-4.63,-4.83,-4.96,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.99,-4.96,-4.91,-4.84,-4.76,-4.66,-4.54,-4.41,-4.26,-4.1,-3.93,-3.75,-3.56,-3.36,-3.14,-2.92,-2.7,-2.47,-2.23,-1.99,-1.75,-1.5,-1.25,-1,-0.75,-0.5,-0.25,-0.01,0.23,0.47,0.7,0.92,1.14,1.36,1.56,1.75,1.93,2.1,2.26,2.41,2.54,2.66,2.76,2.84,2.91,2.96,2.99,3,2.996,2.986,2.968,2.94,2.92,2.88,2.84,2.8,2.75,2.7,2.64,2.58,2.52,2.46,2.4,2.33,2.26,2.2,2.13,2.06,2,1.93,1.87,1.81,1.75,1.7,1.64,1.6,1.55,1.51,1.48,1.45,1.42,1.407,1.397,1.393,1.393,1.393,1.393,1.39,1.393,1.393,1.39,1.393,1.393,1.39,1.39,1.39,1.39,1.39,1.376,1.33,1.25,1.14,1,0.84,0.65,0.44,0.21,-0.04,-0.32,-0.6,-0.91,-1.23,-1.56,-1.9,-2.26,-2.62,-2.99,-3.36,-3.74,-4.11,-4.5,-4.87,-5.25,-5.62,-5.99,-6.35,-6.7,-7.04,-7.38,-7.69,-8,-8.29,-8.56,-8.81,-9.05,-9.26,-9.45,-9.61,-9.75,-9.85,-9.93,-9.98,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Y=0,0.16,0.59,1.25,2.08,3,4,5,5.92,6.75,7.41,7.84,8,7.94,7.78,7.52,7.16,6.73,6.22,5.64,5,4.31,3.57,2.79,1.99,1.16,0.34,-0.51,-1.35,-2.18,-3,-3.85,-4.54,-5.11,-5.58,-5.96,-6.25,-6.49,-6.66,-6.79,-6.88,-6.94,-6.98,-6.996,-7,-6.68,-5.83,-4.6,-3.08,-1.39,0.38,2.17,3.91,5.53,7,8.21,9.17,9.79,10,9.97,9.9,9.77,9.59,9.37,9.09,8.77,8.4,7.99,7.52,7.02,6.48,5.89,5.28,4.62,3.93,3.21,2.45,1.67,0.82,0.02,-0.72,-1.4,-2.03,-2.59,-3.09,-3.54,-3.93,-4.25,-4.53,-4.73,-4.89,-4.97,-5,-4.92,-4.7,-4.34,-3.86,-3.28,-2.62,-1.9,-1.11,-0.28,0.58,1.42,2.27,3.1,3.89,4.61,5.28,5.86,6.34,6.69,6.92,7,6.76,6.13,5.22,4.17,3.09,2.08,1.22,0.56,0.15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.27,0.46,0.7,0.97,1.28,1.61,1.97,2.34,2.73,3.13,3.54,3.95,4.36,4.76,5.16,5.55,5.91,6.26,6.59,6.89,7.17,7.41,7.61,7.78,7.9,7.97,8,7.95,7.8,7.56,7.24,6.86,6.43,5.94,5.44,4.9,4.35,3.79,3.25,2.72,2.22,1.75,1.32,0.94,0.61,0.35,0.16,0.04,0,0.22,0.76,1.49,2.35,3.25,4.13,4.96,5.66,6.23,6.6,6.73,6.3,5.17,3.52,1.57,-0.45,-2.4,-4.04,-5.18,-5.61,-5.2,-4.33,-3.24,-2.12,-1.09,-0.23,0.33,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_BODY_ANGLE_Z=0,-0.015,-0.06,-0.13,-0.22,-0.34,-0.47,-0.62,-0.78,-0.95,-1.13,-1.31,-1.5,-1.69,-1.87,-2.05,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.992,-2.97,-2.93,-2.88,-2.82,-2.74,-2.65,-2.56,-2.45,-2.33,-2.2,-2.07,-1.92,-1.77,-1.61,-1.45,-1.28,-1.11,-0.94,-0.76,-0.57,-0.39,-0.21,-0.02,0.16,0.35,0.53,0.71,0.88,1.06,1.23,1.4,1.56,1.71,1.86,2.01,2.14,2.27,2.39,2.5,2.6,2.69,2.77,2.84,2.89,2.94,2.97,2.99,3,2.989,2.96,2.91,2.84,2.75,2.65,2.54,2.41,2.27,2.12,1.96,1.8,1.63,1.45,1.27,1.09,0.91,0.73,0.55,0.37,0.2,0.04,-0.12,-0.27,-0.41,-0.54,-0.65,-0.75,-0.84,-0.91,-0.96,-0.99,-1,-1.001,-1.004,-1.008,-1.013,-1.018,-1.023,-1.027,-1.031,-1.033,-1.033,-1.031,-1.026,-1.018,-1.006,-0.991,-0.97,-0.94,-0.91,-0.88,-0.83,-0.78,-0.73,-0.66,-0.6,-0.53,-0.46,-0.39,-0.32,-0.24,-0.16,-0.08,0,0.09,0.17,0.26,0.35,0.44,0.53,0.62,0.71,0.8,0.89,0.98,1.07,1.16,1.25,1.34,1.43,1.52,1.6,1.69,1.77,1.86,1.94,2.02,2.09,2.17,2.24,2.31,2.38,2.44,2.5,2.56,2.62,2.67,2.72,2.77,2.81,2.85,2.88,2.91,2.94,2.96,2.977,2.99,2.997,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.12,-0.22,-0.31,-0.39,-0.44,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.49,0.53,0.43,0.21,-0.06,-0.34,-0.59,-0.81,-0.95,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.2,-0.29,-0.36,-0.4,-0.42,-0.36,-0.21,-0.02,0.15,0.3,0.39,0.42,0.37,0.27,0.14,0,-0.12,-0.23,-0.29,-0.32,-0.3,-0.25,-0.2,-0.14,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.01,-0.04,-0.08,-0.14,-0.21,-0.29,-0.38,-0.46,-0.55,-0.64,-0.73,-0.81,-0.89,-0.95,-1,-1.04,-1.08,-1.12,-1.16,-1.19,-1.22,-1.25,-1.28,-1.3,-1.33,-1.35,-1.366,-1.384,-1.4,-1.414,-1.427,-1.439,-1.449,-1.459,-1.467,-1.473,-1.479,-1.484,-1.489,-1.492,-1.495,-1.497,-1.498,-1.499,-1.5,-1.5,-1.496,-1.486,-1.468,-1.44,-1.42,-1.38,-1.34,-1.3,-1.25,-1.19,-1.14,-1.07,-1.01,-0.94,-0.87,-0.8,-0.73,-0.65,-0.57,-0.5,-0.42,-0.34,-0.26,-0.18,-0.1,-0.02,0.05,0.13,0.21,0.28,0.35,0.42,0.49,0.55,0.61,0.67,0.72,0.77,0.81,0.86,0.89,0.92,0.95,0.97,0.987,0.997,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P01_ARM_R_2=0,0,0,0.001,0.002,0.003,0.004,0.005,0.006,0.006,0.007,0.008,0.009,0.009,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.005,-0.01,-0.03,-0.07,-0.11,-0.16,-0.21,-0.28,-0.35,-0.42,-0.5,-0.59,-0.68,-0.78,-0.87,-0.97,-1.08,-1.19,-1.29,-1.4,-1.51,-1.63,-1.74,-1.85,-1.96,-2.07,-2.18,-2.29,-2.39,-2.5,-2.6,-2.69,-2.79,-2.88,-2.96,-3.04,-3.12,-3.19,-3.25,-3.31,-3.36,-3.41,-3.44,-3.47,-3.5,-3.509,-3.514,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51,-3.51\r\r\nPARAM_P01_ARM_R_3=0,0.006,0.022,0.05,0.08,0.12,0.17,0.22,0.28,0.34,0.4,0.47,0.53,0.6,0.66,0.72,0.77,0.83,0.87,0.91,0.95,0.99,1.03,1.06,1.09,1.12,1.15,1.18,1.21,1.23,1.26,1.28,1.31,1.33,1.36,1.38,1.41,1.44,1.46,1.49,1.52,1.55,1.59,1.62,1.66,1.7,1.74,1.78,1.82,1.87,1.92,1.98,2.04,2.09,2.15,2.21,2.27,2.32,2.38,2.44,2.5,2.56,2.62,2.67,2.73,2.79,2.84,2.9,2.96,3.01,3.06,3.12,3.17,3.22,3.27,3.31,3.36,3.41,3.45,3.49,3.53,3.57,3.61,3.64,3.67,3.7,3.73,3.76,3.78,3.8,3.818,3.834,3.847,3.858,3.865,3.87,3.871,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87,3.87\r\r\nPARAM_P01_ARM_L_1=0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.496,0.482,0.46,0.43,0.39,0.35,0.3,0.24,0.18,0.11,0.04,-0.04,-0.12,-0.2,-0.29,-0.38,-0.47,-0.57,-0.66,-0.76,-0.86,-0.96,-1.06,-1.16,-1.26,-1.36,-1.45,-1.55,-1.64,-1.74,-1.83,-1.91,-2,-2.07,-2.15,-2.22,-2.29,-2.35,-2.41,-2.46,-2.51,-2.55,-2.58,-2.61,-2.627,-2.639,-2.643,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64,-2.64\r\r\nPARAM_P01_ARM_L_2=0,0.013,0.05,0.1,0.17,0.25,0.34,0.44,0.53,0.62,0.71,0.79,0.86,0.91,0.95,0.98,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.99,0.995,1.013,1.04,1.08,1.13,1.18,1.25,1.32,1.4,1.48,1.57,1.67,1.78,1.88,1.99,2.11,2.23,2.35,2.47,2.59,2.72,2.85,2.98,3.1,3.23,3.35,3.48,3.6,3.72,3.84,3.95,4.06,4.17,4.27,4.36,4.45,4.54,4.62,4.69,4.76,4.82,4.87,4.91,4.94,4.97,4.984,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99,4.99\r\r\nPARAM_P01_ARM_L_3=0,-0.007,-0.03,-0.06,-0.11,-0.17,-0.25,-0.33,-0.43,-0.54,-0.66,-0.8,-0.94,-1.09,-1.25,-1.43,-1.61,-1.8,-2,-2.21,-2.4,-2.59,-2.78,-2.95,-3.12,-3.28,-3.43,-3.57,-3.71,-3.84,-3.96,-4.07,-4.18,-4.28,-4.37,-4.45,-4.53,-4.6,-4.67,-4.73,-4.78,-4.83,-4.87,-4.91,-4.94,-4.96,-4.977,-4.99,-4.998,-5,-4.986,-4.94,-4.87,-4.78,-4.66,-4.52,-4.36,-4.18,-3.98,-3.77,-3.54,-3.3,-3.04,-2.77,-2.49,-2.2,-1.91,-1.61,-1.3,-0.99,-0.67,-0.36,-0.04,0.28,0.59,0.9,1.22,1.52,1.82,2.11,2.4,2.67,2.94,3.19,3.43,3.66,3.88,4.08,4.26,4.42,4.57,4.7,4.8,4.89,4.95,4.99,5,4.99,4.96,4.92,4.85,4.78,4.69,4.59,4.47,4.35,4.22,4.09,3.94,3.8,3.65,3.5,3.35,3.2,3.06,2.91,2.78,2.65,2.53,2.41,2.31,2.22,2.15,2.08,2.04,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.02,-0.09,-0.2,-0.34,-0.52,-0.73,-0.97,-1.23,-1.51,-1.81,-2.13,-2.46,-2.81,-3.15,-3.5,-3.85,-4.19,-4.54,-4.87,-5.19,-5.49,-5.77,-6.03,-6.27,-6.48,-6.66,-6.8,-6.91,-6.98,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-6.86,-6.49,-5.93,-5.22,-4.41,-3.52,-2.57,-1.63,-0.66,0.25,1.11,1.91,2.61,3.18,3.62,3.9,4,3.94,3.76,3.49,3.12,2.69,2.21,1.68,1.13,0.57,0.01,-0.53,-1.04,-1.52,-1.94,-2.3,-2.6,-2.82,-2.95,-3,-2.96,-2.83,-2.62,-2.37,-2.05,-1.7,-1.31,-0.89,-0.45,-0.01,0.44,0.89,1.33,1.77,2.17,2.55,2.9,3.21,3.48,3.7,3.86,3.96,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.79,-5.72,-9.2,-12.8,-16.28,-19.21,-21.24,-22,-21.8,-21.24,-20.38,-19.24,-17.89,-16.36,-14.7,-12.99,-11.23,-9.46,-7.76,-6.16,-4.67,-3.34,-2.19,-1.26,-0.58,-0.15,0,-0.28,-1.06,-2.29,-3.86,-5.72,-7.76,-9.91,-12.09,-14.24,-16.28,-18.14,-19.71,-20.94,-21.72,-22,-21.24,-19.26,-16.39,-13.12,-9.71,-6.54,-3.83,-1.76,-0.46,0,-0.06,-0.24,-0.54,-0.92,-1.39,-1.94,-2.55,-3.22,-3.93,-4.68,-5.46,-6.25,-7.08,-7.89,-8.71,-9.53,-10.31,-11.09,-11.83,-12.53,-13.18,-13.78,-14.33,-14.81,-15.22,-15.55,-15.8,-15.95,-16,-15.84,-15.38,-14.68,-13.74,-12.64,-11.39,-10.03,-8.63,-7.18,-5.74,-4.35,-3.04,-1.82,-0.73,0.21,0.97,1.53,1.88,2,1.73,1.03,-0.05,-1.4,-2.95,-4.64,-6.45,-8.25,-10.09,-11.83,-13.48,-15,-16.34,-17.44,-18.28,-18.81,-19,-18.81,-18.32,-17.67,-16.9,-16.11,-15.32,-14.58,-13.95,-13.45,-13.12,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_ANGLE_Z=0,0.03,0.11,0.23,0.4,0.62,0.87,1.16,1.48,1.82,2.19,2.58,2.99,3.41,3.84,4.28,4.72,5.17,5.61,6.05,6.47,6.89,7.29,7.67,8.04,8.38,8.7,8.99,9.24,9.46,9.65,9.8,9.91,9.98,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.997,9.991,9.98,9.963,9.94,9.91,9.86,9.8,9.74,9.65,9.55,9.43,9.3,9.14,8.96,8.76,8.53,8.28,8,7.58,6.93,6.08,5.09,3.96,2.78,1.56,0.34,-0.84,-1.95,-2.95,-3.79,-4.44,-4.85,-5,-4.95,-4.8,-4.55,-4.23,-3.82,-3.36,-2.83,-2.25,-1.64,-0.98,-0.29,0.42,1.14,1.86,2.58,3.29,3.98,4.64,5.25,5.83,6.36,6.82,7.23,7.55,7.8,7.95,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0.002,0.007,0.014,0.024,0.036,0.049,0.064,0.079,0.094,0.111,0.126,0.142,0.157,0.172,0.185,0.198,0.209,0.218,0.225,0.23,0.234,0.238,0.242,0.246,0.25,0.253,0.257,0.26,0.264,0.267,0.27,0.273,0.276,0.279,0.282,0.285,0.288,0.291,0.294,0.296,0.299,0.302,0.305,0.307,0.31,0.313,0.315,0.318,0.321,0.324,0.326,0.329,0.332,0.335,0.337,0.34,0.343,0.346,0.349,0.352,0.356,0.359,0.362,0.366,0.369,0.373,0.376,0.38,0.384,0.388,0.392,0.397,0.401,0.405,0.41,0.414,0.419,0.423,0.427,0.431,0.435,0.439,0.443,0.446,0.449,0.452,0.454,0.456,0.458,0.459,0.46,0.46,0.459,0.457,0.454,0.449,0.444,0.437,0.429,0.421,0.412,0.402,0.391,0.38,0.368,0.356,0.343,0.331,0.318,0.305,0.292,0.279,0.267,0.254,0.242,0.23,0.219,0.208,0.198,0.189,0.181,0.173,0.166,0.161,0.156,0.153,0.151,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.004,0.009,0.015,0.023,0.031,0.04,0.049,0.059,0.069,0.078,0.087,0.096,0.104,0.111,0.118,0.123,0.127,0.129,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.129,0.129,0.128,0.127,0.127,0.126,0.124,0.123,0.121,0.119,0.117,0.115,0.112,0.109,0.106,0.102,0.099,0.094,0.09,0.085,0.08,0.075,0.069,0.064,0.059,0.054,0.049,0.044,0.039,0.034,0.029,0.025,0.02,0.016,0.012,0.007,0.003,0,-0.004,-0.008,-0.011,-0.014,-0.018,-0.02,-0.023,-0.026,-0.028,-0.03,-0.032,-0.034,-0.036,-0.037,-0.038,-0.039,-0.039,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.08\r\r\nPARAM_BROW_R_ANGLE=0.08\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.09,0.17,1,1,1,1,0.73,0.97,1,1,1,1,0.73,0,0.012,0.024,0.17,0.32,0.46,0.61,0.31,0,0.34,0.68,1,1,1,1,1,0.53,1,1,1,1,0.988,0.01,0.004,0,0.15,0.29,0.306,0.322,0.27,0.23,1,1,0.96,0,0.94,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.75,0.37,0,0,0,0,0,0,0,0,0,0,0,0,0.93,1,1,0.25,0.263,0.275,0.95,1,0.89,0.16,0.08,0,0.87,1,0.91,0.08,0.94,1,1,0.42,1,1,1,1,0.9,0.1,0.94,1,1,1,1,1,0.85,0.46,0.87,1,0.94,0.61,1,1,1,1,0.65,0,0.85,1,1,1,1,1,1,1,1,1,1,0.56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.019,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.96,-5.83,-5.63,-5.37,-5.07,-4.72,-4.34,-3.95,-3.55,-3.15,-2.76,-2.4,-2.06,-1.76,-1.5,-1.29,-1.13,-1.03,-1,-1.02,-1.08,-1.17,-1.28,-1.43,-1.59,-1.77,-1.96,-2.16,-2.37,-2.58,-2.78,-2.98,-3.17,-3.35,-3.5,-3.65,-3.77,-3.87,-3.94,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Y=0,-0.32,-1.13,-2.22,-3.5,-4.82,-6.13,-7.37,-8.42,-9.26,-9.8,-10,-9.83,-9.33,-8.59,-7.63,-6.49,-5.21,-3.84,-2.41,-0.94,0.56,2.01,3.42,4.77,6,7.13,8.1,8.9,9.49,9.87,10,9.71,8.97,7.88,6.54,5.05,3.49,1.91,0.37,-1.06,-2.35,-3.42,-4.27,-4.81,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.34,-0.71,-1.15,-1.65,-2.17,-2.7,-3.21,-3.69,-4.12,-4.47,-4.76,-4.94,-5,-4.86,-4.47,-3.85,-3.07,-2.14,-1.12,-0.05,1.05,2.12,3.14,4.07,4.85,5.47,5.86,6,5.93,5.74,5.45,5.05,4.57,4.01,3.41,2.75,2.06,1.35,0.65,-0.06,-0.75,-1.41,-2.01,-2.57,-3.05,-3.45,-3.74,-3.93,-4,-3.74,-3.17,-2.46,-1.73,-1.06,-0.51,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.002,0.008,0.018,0.031,0.048,0.068,0.09,0.12,0.15,0.18,0.21,0.25,0.29,0.33,0.37,0.41,0.46,0.5,0.55,0.6,0.65,0.7,0.75,0.81,0.86,0.91,0.97,1.02,1.07,1.13,1.18,1.23,1.28,1.33,1.38,1.43,1.48,1.53,1.57,1.61,1.66,1.7,1.73,1.77,1.81,1.84,1.87,1.89,1.92,1.94,1.956,1.972,1.984,1.993,1.998,2,2,2,2,2,2,2,2,2,2,2,2,2,1.97,1.9,1.79,1.63,1.44,1.22,0.97,0.71,0.42,0.12,-0.19,-0.5,-0.81,-1.12,-1.42,-1.71,-1.97,-2.22,-2.44,-2.63,-2.79,-2.9,-2.97,-3,-2.97,-2.89,-2.76,-2.58,-2.37,-2.12,-1.83,-1.52,-1.19,-0.83,-0.46,-0.08,0.31,0.69,1.08,1.46,1.83,2.19,2.52,2.83,3.12,3.37,3.58,3.76,3.89,3.97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.028,0.06,0.1,0.14,0.19,0.24,0.29,0.35,0.4,0.44,0.49,0.52,0.56,0.58,0.595,0.6,0.583,0.54,0.47,0.38,0.28,0.18,0.08,-0.02,-0.1,-0.17,-0.23,-0.26,-0.27,-0.261,-0.24,-0.2,-0.16,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.98,0.92,0.83,0.71,0.57,0.4,0.23,0.04,-0.15,-0.35,-0.53,-0.71,-0.87,-1.01,-1.14,-1.23,-1.29,-1.31,-1.299,-1.27,-1.24,-1.19,-1.13,-1.06,-0.99,-0.91,-0.83,-0.75,-0.66,-0.58,-0.5,-0.42,-0.34,-0.27,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.92,0.83,0.71,0.57,0.4,0.23,0.04,-0.15,-0.34,-0.53,-0.71,-0.87,-1.01,-1.13,-1.22,-1.28,-1.301,-1.292,-1.27,-1.23,-1.18,-1.12,-1.05,-0.97,-0.88,-0.8,-0.71,-0.62,-0.53,-0.44,-0.36,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.001,0.004,0.012,0.025,0.05,0.08,0.12,0.17,0.23,0.31,0.41,0.53,0.66,0.82,1,1.2,1.4,1.6,1.81,2.02,2.22,2.42,2.62,2.8,2.98,3.14,3.29,3.42,3.53,3.62,3.68,3.73,3.741,3.71,3.62,3.48,3.3,3.08,2.84,2.59,2.32,2.05,1.77,1.49,1.23,0.98,0.75,0.54,0.36,0.21,0.1,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.98,0.92,0.83,0.71,0.57,0.4,0.23,0.04,-0.15,-0.35,-0.53,-0.71,-0.87,-1.01,-1.14,-1.23,-1.29,-1.31,-1.299,-1.27,-1.24,-1.19,-1.13,-1.06,-0.99,-0.91,-0.83,-0.75,-0.66,-0.58,-0.5,-0.42,-0.34,-0.27,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.92,0.83,0.71,0.57,0.4,0.23,0.04,-0.15,-0.34,-0.53,-0.71,-0.87,-1.01,-1.13,-1.22,-1.28,-1.301,-1.292,-1.27,-1.23,-1.18,-1.12,-1.05,-0.97,-0.88,-0.8,-0.71,-0.62,-0.53,-0.44,-0.36,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.003,0.011,0.027,0.05,0.08,0.12,0.17,0.23,0.3,0.38,0.48,0.59,0.71,0.85,1,1.16,1.31,1.46,1.61,1.75,1.88,2,2.12,2.23,2.33,2.42,2.5,2.57,2.63,2.68,2.71,2.73,2.741,2.72,2.65,2.55,2.42,2.26,2.08,1.9,1.7,1.5,1.29,1.09,0.9,0.72,0.55,0.39,0.26,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.21,0.42,0.69,0.99,1.3,1.62,1.93,2.21,2.47,2.68,2.85,2.96,3,2.9,2.63,2.23,1.73,1.17,0.57,-0.01,-0.55,-1.04,-1.44,-1.75,-1.93,-2,-1.94,-1.77,-1.56,-1.3,-1.04,-0.77,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.52,0.87,1.28,1.73,2.2,2.68,3.14,3.58,3.98,4.33,4.61,4.82,4.96,5,4.88,4.56,4.08,3.47,2.8,2.09,1.39,0.74,0.16,-0.33,-0.69,-0.92,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,2.74,2.04,0.97,-0.38,-1.88,-3.5,-5.12,-6.62,-7.97,-9.04,-9.74,-10,-9.68,-8.87,-7.78,-6.5,-5.18,-3.87,-2.63,-1.58,-0.74,-0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.13,0.48,0.99,1.61,2.31,3.04,3.78,4.49,5.16,5.76,6.26,6.66,6.91,7,6.9,6.61,6.17,5.61,4.95,4.22,3.48,2.72,1.98,1.27,0.64,0.08,-0.38,-0.72,-0.93,-1,-0.96,-0.85,-0.67,-0.43,-0.15,0.18,0.55,0.92,1.33,1.74,2.16,2.56,2.96,3.34,3.69,4.01,4.29,4.54,4.73,4.88,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_P06_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.13,0.29,0.49,0.72,0.97,1.23,1.5,1.75,2,2.22,2.42,2.58,2.69,2.77,2.79,2.76,2.66,2.51,2.31,2.08,1.82,1.56,1.3,1.04,0.79,0.57,0.38,0.22,0.1,0.03,0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P06_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.32,0.54,0.81,1.1,1.43,1.77,2.11,2.46,2.79,3.11,3.4,3.66,3.88,4.06,4.2,4.28,4.31,4.19,3.86,3.34,2.68,1.89,1.03,0.12,-0.81,-1.72,-2.58,-3.37,-4.03,-4.55,-4.88,-5,-4.97,-4.87,-4.72,-4.53,-4.3,-4.04,-3.77,-3.48,-3.19,-2.89,-2.6,-2.32,-2.05,-1.8,-1.57,-1.38,-1.22,-1.1,-1.03,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.08,-0.3,-0.65,-1.12,-1.71,-2.39,-3.16,-3.99,-4.89,-5.83,-6.83,-7.84,-8.86,-9.89,-10.9,-11.9,-12.88,-13.81,-14.69,-15.52,-16.28,-16.95,-17.55,-18.06,-18.46,-18.75,-18.94,-19,-18.98,-18.92,-18.81,-18.67,-18.5,-18.29,-18.05,-17.79,-17.49,-17.17,-16.82,-16.45,-16.05,-15.63,-15.2,-14.74,-14.26,-13.76,-13.24,-12.7,-12.15,-11.59,-11,-10.36,-9.75,-9.15,-8.58,-8.04,-7.51,-7.01,-6.52,-6.05,-5.62,-5.19,-4.78,-4.4,-4.04,-3.69,-3.35,-3.04,-2.75,-2.46,-2.2,-1.95,-1.72,-1.51,-1.31,-1.12,-0.95,-0.79,-0.65,-0.53,-0.42,-0.32,-0.23,-0.16,-0.1,-0.06,-0.03,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.38,-0.84,-1.46,-2.22,-3.11,-4.12,-5.24,-6.44,-7.73,-9.08,-10.47,-11.9,-13.35,-14.82,-16.27,-17.71,-19.13,-20.51,-21.84,-23.1,-24.29,-25.39,-26.41,-27.31,-28.1,-28.76,-29.29,-29.68,-29.92,-30,-29.994,-29.974,-29.94,-29.9,-29.84,-29.77,-29.68,-29.58,-29.47,-29.34,-29.2,-29.05,-28.88,-28.7,-28.5,-28.29,-28.07,-27.83,-27.57,-27.3,-27.02,-26.72,-26.41,-26.08,-25.73,-25.38,-25.01,-24.61,-24.21,-23.79,-23.36,-22.91,-22.44,-21.96,-21.47,-20.95,-20.42,-19.88,-19.32,-18.74,-18.14,-17.53,-16.9,-16.27,-15.62,-14.94,-14.24,-13.54,-12.82,-12.08,-11.33,-10.54,-9.77,-8.96,-8.14,-7.3,-6.44,-5.58,-4.68,-3.78,-2.85,-1.92,-0.97,0,1.3,2.69,4.08,5.45,6.73,7.9,8.94,9.78,10.44,10.85,11,10.11,7.71,4.24,0.12,-4.12,-8.24,-11.71,-14.11,-15,-14.48,-13.1,-11.1,-8.73,-6.27,-3.9,-1.9,-0.52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.019,-0.07,-0.16,-0.28,-0.42,-0.59,-0.78,-0.99,-1.22,-1.46,-1.72,-1.99,-2.27,-2.55,-2.84,-3.14,-3.44,-3.74,-4.04,-4.34,-4.63,-4.92,-5.2,-5.48,-5.74,-6,-6.27,-6.51,-6.73,-6.91,-7.08,-7.23,-7.36,-7.48,-7.58,-7.66,-7.73,-7.8,-7.85,-7.89,-7.92,-7.95,-7.966,-7.98,-7.989,-7.995,-7.999,-8,-8,-7.97,-7.89,-7.77,-7.6,-7.4,-7.15,-6.88,-6.57,-6.25,-5.89,-5.52,-5.13,-4.73,-4.32,-3.9,-3.48,-3.05,-2.63,-2.2,-1.79,-1.39,-0.99,-0.61,-0.24,0.11,0.43,0.73,1.01,1.26,1.47,1.66,1.8,1.91,1.98,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_BALL_X=0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.18,-0.22,-0.27,-0.32,-0.37,-0.42,-0.47,-0.51,-0.55,-0.59,-0.62,-0.65,-0.67,-0.685,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.6,-0.38,-0.09,0.2,0.42,0.51,0.509,0.508,0.505,0.501,0.496,0.49,0.484,0.476,0.468,0.459,0.449,0.439,0.428,0.416,0.404,0.391,0.378,0.365,0.351,0.337,0.323,0.308,0.294,0.279,0.264,0.249,0.235,0.22,0.206,0.191,0.177,0.163,0.149,0.136,0.123,0.111,0.099,0.087,0.076,0.066,0.056,0.047,0.038,0.031,0.024,0.018,0.012,0.008,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.001,-0.002,-0.004,-0.008,-0.011,-0.016,-0.021,-0.026,-0.032,-0.037,-0.043,-0.048,-0.054,-0.059,-0.064,-0.069,-0.072,-0.076,-0.078,-0.079,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.05,0.02,0.1,0.19,0.26,0.29,0.29,0.289,0.287,0.285,0.282,0.279,0.275,0.271,0.266,0.261,0.255,0.25,0.243,0.237,0.23,0.223,0.215,0.207,0.2,0.192,0.184,0.175,0.167,0.159,0.15,0.142,0.134,0.125,0.117,0.109,0.101,0.093,0.085,0.077,0.07,0.063,0.056,0.05,0.043,0.037,0.032,0.027,0.022,0.017,0.014,0.01,0.007,0.005,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=-0.48\r\r\nPARAM_BROW_R_ANGLE=-0.48\r\r\nPARAM_BROW_L_FORM=-0.33\r\r\nPARAM_BROW_R_FORM=-0.33\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.008,0.016,1,1,1,0.29,1,1,1,1,1,0.68,1,1,0.86,0.24,0.27,0.31,0.15,0,0.03,0.06,0.09,0.13,0.25,0.38,1,1,0.96,0.02,0.37,0.73,0.9,1,0.8,0.54,0.75,0.96,0.96,0.96,0.96,0.96,0.96,0.64,0.32,0,0,0,0,0,0,0,0.07,0.15,0.5,0.85,0.54,0.22,0.11,0,0.14,0.27,1,1,1,1,1,0.21,1,1,0.98,0,0.32,0.64,0.52,0.4,0.28,0.16,0.88,1,0.8,0.01,0.01,0.01,1,1,1,1,1,1,1,0.39,1,1,1,0.55,1,1,0.91,0,0.78,1,1,1,0.94,0.2,0.92,1,1,1,1,0.55,0.28,0,0,0,0.93,1,0.93,0,0.78,1,1,1,1,1,1,1,1,1,0.52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.987,-3.95,-3.89,-3.81,-3.7,-3.58,-3.45,-3.3,-3.14,-2.96,-2.78,-2.59,-2.4,-2.2,-2,-1.8,-1.6,-1.41,-1.22,-1.04,-0.86,-0.7,-0.55,-0.42,-0.3,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.012,-0.05,-0.1,-0.18,-0.27,-0.38,-0.5,-0.63,-0.78,-0.93,-1.09,-1.25,-1.42,-1.58,-1.75,-1.91,-2.07,-2.22,-2.37,-2.5,-2.62,-2.73,-2.82,-2.9,-2.95,-2.99,-3,-2.97,-2.9,-2.79,-2.64,-2.47,-2.28,-2.08,-1.86,-1.64,-1.42,-1.2,-0.99,-0.78,-0.6,-0.43,-0.28,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.44,0.92,1.53,2.2,2.91,3.61,4.26,4.84,5.33,5.69,5.92,6,5.28,3.72,1.78,-0.24,-2.08,-3.61,-4.62,-5,-4.83,-4.37,-3.7,-2.91,-2.09,-1.3,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.008,-0.03,-0.07,-0.12,-0.18,-0.25,-0.33,-0.42,-0.52,-0.61,-0.72,-0.83,-0.93,-1.04,-1.15,-1.25,-1.36,-1.45,-1.55,-1.63,-1.71,-1.78,-1.85,-1.9,-1.94,-1.97,-1.994,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.984,-1.94,-1.86,-1.76,-1.63,-1.48,-1.31,-1.13,-0.93,-0.71,-0.49,-0.25,-0.02,0.23,0.47,0.71,0.95,1.19,1.42,1.64,1.85,2.05,2.23,2.4,2.55,2.68,2.79,2.88,2.95,2.99,3,2.99,2.96,2.92,2.85,2.78,2.69,2.59,2.48,2.36,2.23,2.09,1.95,1.81,1.66,1.52,1.37,1.23,1.09,0.95,0.82,0.69,0.57,0.46,0.36,0.27,0.19,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.996,0.984,0.966,0.94,0.91,0.87,0.83,0.79,0.74,0.69,0.64,0.59,0.53,0.48,0.43,0.37,0.32,0.27,0.23,0.18,0.14,0.11,0.08,0.05,0.03,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,-0.001,-0.002,-0.003,-0.004,-0.006,-0.008,-0.01,-0.012,-0.014,-0.017,-0.019,-0.022,-0.025,-0.029,-0.032,-0.036,-0.04,-0.044,-0.048,-0.052,-0.057,-0.061,-0.066,-0.071,-0.076,-0.081,-0.086,-0.091,-0.096,-0.102,-0.108,-0.113,-0.119,-0.125,-0.131,-0.137,-0.143,-0.149,-0.155,-0.162,-0.168,-0.174,-0.18,-0.187,-0.193,-0.2,-0.206,-0.213,-0.219,-0.226,-0.232,-0.239,-0.245,-0.252,-0.258,-0.265,-0.271,-0.278,-0.284,-0.291,-0.297,-0.303,-0.309,-0.315,-0.321,-0.327,-0.333,-0.339,-0.345,-0.35,-0.356,-0.361,-0.367,-0.372,-0.377,-0.382,-0.387,-0.392,-0.397,-0.401,-0.406,-0.41,-0.414,-0.418,-0.422,-0.426,-0.429,-0.433,-0.436,-0.439,-0.441,-0.444,-0.447,-0.449,-0.451,-0.453,-0.454,-0.456,-0.457,-0.458,-0.459,-0.46,-0.46,-0.46,-0.38,-0.22,-0.01,0.2,0.4,0.56,0.67,0.71,0.69,0.62,0.53,0.42,0.31,0.21,0.12,0.06,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,-0.001,-0.002,-0.003,-0.004,-0.005,-0.006,-0.008,-0.01,-0.012,-0.014,-0.016,-0.019,-0.022,-0.024,-0.027,-0.03,-0.034,-0.037,-0.041,-0.044,-0.048,-0.052,-0.056,-0.06,-0.064,-0.068,-0.073,-0.077,-0.082,-0.086,-0.091,-0.096,-0.101,-0.106,-0.111,-0.116,-0.121,-0.126,-0.132,-0.137,-0.142,-0.148,-0.153,-0.158,-0.164,-0.169,-0.175,-0.18,-0.186,-0.192,-0.197,-0.203,-0.208,-0.214,-0.219,-0.225,-0.23,-0.235,-0.241,-0.246,-0.252,-0.257,-0.262,-0.267,-0.272,-0.277,-0.283,-0.287,-0.292,-0.297,-0.302,-0.306,-0.311,-0.315,-0.32,-0.324,-0.328,-0.332,-0.336,-0.34,-0.344,-0.348,-0.351,-0.355,-0.358,-0.361,-0.364,-0.367,-0.369,-0.372,-0.374,-0.377,-0.379,-0.381,-0.382,-0.384,-0.385,-0.387,-0.388,-0.388,-0.389,-0.39,-0.39,-0.39,-0.33,-0.2,-0.04,0.13,0.29,0.41,0.5,0.53,0.512,0.46,0.39,0.32,0.23,0.16,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-0.999,-0.995,-0.989,-0.98,-0.97,-0.958,-0.943,-0.927,-0.909,-0.89,-0.87,-0.85,-0.82,-0.8,-0.77,-0.75,-0.72,-0.69,-0.67,-0.64,-0.61,-0.58,-0.55,-0.52,-0.49,-0.46,-0.43,-0.4,-0.37,-0.34,-0.31,-0.29,-0.26,-0.23,-0.21,-0.19,-0.16,-0.14,-0.12,-0.1,-0.083,-0.066,-0.051,-0.038,-0.027,-0.018,-0.01,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_2=0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-1.997,-1.99,-1.978,-1.961,-1.94,-1.92,-1.89,-1.85,-1.82,-1.78,-1.74,-1.7,-1.65,-1.6,-1.55,-1.5,-1.44,-1.39,-1.33,-1.27,-1.22,-1.16,-1.1,-1.04,-0.98,-0.92,-0.86,-0.8,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.42,-0.37,-0.32,-0.28,-0.24,-0.2,-0.17,-0.13,-0.1,-0.08,-0.05,-0.035,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_3=0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-1.997,-1.99,-1.978,-1.961,-1.94,-1.92,-1.89,-1.85,-1.82,-1.78,-1.74,-1.7,-1.65,-1.6,-1.55,-1.5,-1.44,-1.39,-1.33,-1.27,-1.22,-1.16,-1.1,-1.04,-0.98,-0.92,-0.86,-0.8,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.42,-0.37,-0.32,-0.28,-0.24,-0.2,-0.17,-0.13,-0.1,-0.08,-0.05,-0.035,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.52,-0.71,-0.9,-1.1,-1.29,-1.48,-1.65,-1.79,-1.9,-1.97,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_1=0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-1.997,-1.99,-1.978,-1.961,-1.94,-1.92,-1.89,-1.85,-1.82,-1.78,-1.74,-1.7,-1.65,-1.6,-1.55,-1.5,-1.44,-1.39,-1.33,-1.27,-1.22,-1.16,-1.1,-1.04,-0.98,-0.92,-0.86,-0.8,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.42,-0.37,-0.32,-0.28,-0.24,-0.2,-0.17,-0.13,-0.1,-0.08,-0.05,-0.035,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_2=0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-1.997,-1.99,-1.978,-1.961,-1.94,-1.92,-1.89,-1.85,-1.82,-1.78,-1.74,-1.7,-1.65,-1.6,-1.55,-1.5,-1.44,-1.39,-1.33,-1.27,-1.22,-1.16,-1.1,-1.04,-0.98,-0.92,-0.86,-0.8,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.42,-0.37,-0.32,-0.28,-0.24,-0.2,-0.17,-0.13,-0.1,-0.08,-0.05,-0.035,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_3=0,-0.03,-0.1,-0.22,-0.38,-0.56,-0.77,-0.99,-1.23,-1.47,-1.71,-1.94,-2.16,-2.36,-2.54,-2.7,-2.83,-2.92,-2.98,-3,-2.996,-2.985,-2.967,-2.94,-2.91,-2.87,-2.83,-2.78,-2.73,-2.67,-2.61,-2.54,-2.47,-2.4,-2.32,-2.25,-2.16,-2.08,-2,-1.91,-1.82,-1.73,-1.64,-1.56,-1.47,-1.38,-1.29,-1.2,-1.11,-1.03,-0.94,-0.86,-0.78,-0.7,-0.63,-0.56,-0.49,-0.42,-0.36,-0.3,-0.25,-0.2,-0.15,-0.11,-0.08,-0.05,-0.03,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.52,-0.71,-0.9,-1.1,-1.29,-1.48,-1.65,-1.79,-1.9,-1.97,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=1\r\r\nVISIBLE:PARTS_ARM_P05_L=1\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.016,0.06,0.14,0.24,0.36,0.51,0.67,0.86,1.05,1.27,1.49,1.72,1.96,2.21,2.46,2.71,2.97,3.22,3.48,3.72,3.97,4.21,4.44,4.66,4.86,5.06,5.24,5.41,5.55,5.68,5.79,5.88,5.95,5.99,6,5.996,5.985,5.967,5.94,5.91,5.87,5.83,5.78,5.72,5.66,5.59,5.52,5.44,5.36,5.27,5.18,5.09,4.99,4.89,4.78,4.67,4.56,4.45,4.33,4.21,4.09,3.97,3.85,3.72,3.59,3.47,3.34,3.21,3.08,2.95,2.82,2.7,2.57,2.44,2.31,2.19,2.06,1.94,1.82,1.71,1.59,1.48,1.37,1.26,1.15,1.05,0.95,0.86,0.77,0.68,0.6,0.52,0.45,0.38,0.32,0.26,0.21,0.16,0.12,0.08,0.05,0.03,0.014,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.79,-5.72,-9.2,-12.8,-16.28,-19.21,-21.24,-22,-21.56,-20.38,-18.56,-16.28,-13.75,-11,-8.25,-5.72,-3.44,-1.62,-0.44,0,-0.44,-1.62,-3.44,-5.72,-8.25,-11,-13.75,-16.28,-18.56,-20.38,-21.56,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-21.56,-20.31,-18.39,-15.9,-13.03,-9.86,-6.6,-3.27,-0.03,3.06,5.83,8.28,10.28,11.75,12.69,13,12.68,11.82,10.5,8.84,7,5,3,1.16,-0.5,-1.82,-2.68,-3,-2.64,-1.69,-0.32,1.38,3.27,5.25,7.25,9.19,11.01,12.65,14,15.07,15.76,16,15.49,14.2,12.45,10.4,8.28,6.19,4.2,2.54,1.19,0.32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.04,-0.16,-0.35,-0.61,-0.92,-1.3,-1.73,-2.21,-2.72,-3.27,-3.86,-4.48,-5.12,-5.78,-6.46,-7.15,-7.86,-8.55,-9.26,-9.97,-10.67,-11.35,-12.02,-12.67,-13.31,-13.92,-14.5,-15.05,-15.56,-16.03,-16.47,-16.85,-17.19,-17.47,-17.7,-17.86,-17.97,-18,-17.998,-17.991,-17.979,-17.961,-17.94,-17.91,-17.87,-17.82,-17.77,-17.7,-17.63,-17.55,-17.46,-17.36,-17.25,-17.12,-16.99,-16.84,-16.67,-16.5,-16.31,-16.11,-15.89,-15.66,-15.41,-15.15,-14.87,-14.57,-14.26,-13.93,-13.58,-13.21,-12.83,-12.43,-12,-11.55,-11.09,-10.59,-10.09,-9.56,-9,-8.37,-7.68,-6.89,-6.05,-5.17,-4.23,-3.25,-2.28,-1.26,-0.24,0.74,1.74,2.72,3.63,4.53,5.37,6.13,6.84,7.47,7.99,8.42,8.74,8.93,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_EYE_L_OPEN=1,1,1,1.001,1.001,1.002,1.003,1.004,1.005,1.006,1.007,1.009,1.01,1.012,1.013,1.015,1.017,1.019,1.02,1.022,1.024,1.026,1.028,1.03,1.032,1.034,1.036,1.038,1.04,1.041,1.043,1.045,1.046,1.048,1.049,1.051,1.052,1.053,1.054,1.055,1.056,1.057,1.057,1.058,1.058,1.058,0.98,0.79,0.56,0.33,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=1,1.001,1.003,1.006,1.01,1.016,1.023,1.031,1.039,1.049,1.059,1.07,1.082,1.095,1.108,1.121,1.135,1.15,1.165,1.18,1.195,1.211,1.226,1.242,1.257,1.273,1.288,1.303,1.318,1.333,1.347,1.36,1.373,1.386,1.398,1.409,1.419,1.429,1.438,1.445,1.452,1.458,1.462,1.466,1.468,1.468,1.36,1.1,0.78,0.46,0.21,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,-0.001,-0.004,-0.009,-0.016,-0.024,-0.033,-0.044,-0.056,-0.068,-0.082,-0.097,-0.112,-0.127,-0.144,-0.16,-0.176,-0.193,-0.21,-0.226,-0.242,-0.258,-0.274,-0.288,-0.303,-0.316,-0.329,-0.341,-0.351,-0.361,-0.369,-0.377,-0.382,-0.387,-0.389,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0.72\r\r\nPARAM_BROW_R_Y=0.72\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.28\r\r\nPARAM_BROW_R_FORM=-0.28\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.44,0.87,0.44,0,0.89,1,1,1,1,1,1,0.54,0.45,0.36,0.53,0.71,1,1,1,1,1,1,1,1,1,0.57,1,1,1,0.86,0.86,0.86,0.86,0.86,0.86,0.86,0.58,0.29,0,0,0,0,0,0,0.93,1,0.93,0,0.27,0.54,0.27,0,0.92,1,1,1,0.78,0,0.95,1,0.95,0,0.3,0.59,1,1,1,0.67,1,1,1,1,1,1,0.86,0.59,1,1,1,1,1,1,1,0.55,1,1,0.996,0,0.88,1,1,1,1,0.68,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.12,-0.26,-0.44,-0.67,-0.93,-1.23,-1.55,-1.88,-2.23,-2.59,-2.96,-3.32,-3.67,-4.02,-4.35,-4.66,-4.95,-5.21,-5.44,-5.63,-5.79,-5.9,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.96,-5.83,-5.62,-5.34,-5,-4.61,-4.17,-3.67,-3.15,-2.59,-2.01,-1.41,-0.81,-0.19,0.41,1.01,1.59,2.15,2.67,3.17,3.61,4,4.34,4.62,4.83,4.96,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,-0.32,-1.13,-2.22,-3.5,-4.82,-6.13,-7.37,-8.42,-9.26,-9.8,-10,-9.6,-8.53,-6.92,-4.9,-2.67,-0.29,2.04,4.22,6.14,7.76,8.98,9.74,10,9.52,8.31,6.67,4.75,2.76,0.8,-1.06,-2.62,-3.88,-4.7,-5,-4.67,-3.96,-3.08,-2.16,-1.33,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0.13,0.48,1.04,1.75,2.6,3.53,4.5,5.5,6.47,7.4,8.25,8.96,9.52,9.87,10,9.83,9.35,8.62,7.7,6.65,5.52,4.36,3.21,2.09,1,0.18,-0.02,0,-0.018,0.18,1,2.41,3.8,5.15,6.37,7.46,8.37,9.08,9.59,9.9,10,9.52,8.31,6.67,4.75,2.76,0.8,-1.06,-2.62,-3.88,-4.7,-5,-4.9,-4.63,-4.23,-3.73,-3.17,-2.57,-1.99,-1.45,-0.96,-0.56,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.003,0.013,0.029,0.05,0.08,0.11,0.15,0.19,0.23,0.28,0.33,0.38,0.44,0.5,0.56,0.62,0.69,0.76,0.82,0.89,0.96,1.02,1.09,1.16,1.23,1.29,1.36,1.42,1.48,1.54,1.59,1.65,1.7,1.75,1.79,1.83,1.87,1.9,1.93,1.96,1.974,1.989,1.997,2,2,2,2,2,2,2,2,2,2,1.984,1.94,1.86,1.76,1.64,1.5,1.33,1.15,0.96,0.76,0.55,0.33,0.11,-0.11,-0.33,-0.55,-0.76,-0.96,-1.15,-1.33,-1.5,-1.64,-1.76,-1.86,-1.94,-1.98,-2,-1.97,-1.87,-1.72,-1.53,-1.3,-1.04,-0.77,-0.48,-0.19,0.11,0.4,0.68,0.95,1.2,1.43,1.62,1.78,1.9,1.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.88,-0.64,-0.32,0,0.29,0.54,0.7,0.76,0.73,0.67,0.57,0.45,0.34,0.23,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.08,-0.14,-0.2,-0.27,-0.33,-0.39,-0.44,-0.49,-0.52,-0.54,-0.55,-0.5,-0.37,-0.19,0.02,0.24,0.44,0.61,0.75,0.83,0.86,0.848,0.81,0.76,0.68,0.59,0.49,0.37,0.26,0.13,0,-0.16,-0.29,-0.37,-0.43,-0.47,-0.485,-0.49,-0.41,-0.23,0,0.23,0.44,0.62,0.74,0.78,0.72,0.58,0.41,0.25,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.9,-0.67,-0.4,-0.11,0.15,0.37,0.52,0.57,0.55,0.5,0.42,0.34,0.25,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.07,-0.12,-0.18,-0.23,-0.29,-0.34,-0.39,-0.43,-0.46,-0.474,-0.48,-0.45,-0.37,-0.25,-0.11,0.03,0.16,0.27,0.36,0.41,0.43,0.426,0.414,0.39,0.36,0.32,0.27,0.22,0.15,0.08,0,-0.11,-0.21,-0.3,-0.36,-0.41,-0.43,-0.44,-0.38,-0.26,-0.11,0.05,0.19,0.31,0.39,0.42,0.39,0.31,0.22,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.95,0.83,0.65,0.41,0.16,-0.12,-0.38,-0.63,-0.86,-1.04,-1.18,-1.27,-1.3,-1.284,-1.24,-1.17,-1.09,-0.99,-0.89,-0.78,-0.67,-0.55,-0.44,-0.34,-0.25,-0.16,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.95,0.83,0.65,0.41,0.16,-0.12,-0.38,-0.64,-0.86,-1.04,-1.18,-1.27,-1.3,-1.284,-1.24,-1.17,-1.07,-0.97,-0.85,-0.73,-0.6,-0.48,-0.37,-0.27,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.06,0.24,0.52,0.88,1.3,1.76,2.25,2.75,3.24,3.7,4.12,4.48,4.76,4.94,5,4.999,4.993,4.979,4.95,4.91,4.85,4.76,4.66,4.53,4.37,4.19,3.98,3.74,3.39,3.03,2.66,2.28,1.92,1.57,1.25,0.95,0.68,0.45,0.26,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.95,0.83,0.64,0.41,0.15,-0.12,-0.39,-0.64,-0.86,-1.05,-1.19,-1.28,-1.31,-1.291,-1.25,-1.18,-1.1,-1,-0.89,-0.78,-0.67,-0.55,-0.45,-0.34,-0.25,-0.17,-0.1,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.95,0.83,0.65,0.41,0.16,-0.12,-0.38,-0.64,-0.86,-1.04,-1.18,-1.27,-1.3,-1.284,-1.24,-1.17,-1.07,-0.97,-0.85,-0.73,-0.6,-0.48,-0.37,-0.27,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,3.001,3.003,3.005,3.004,3.001,2.993,2.979,2.958,2.93,2.9,2.85,2.8,2.74,2.62,2.43,2.21,1.95,1.68,1.41,1.14,0.88,0.64,0.43,0.25,0.12,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.016,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.5,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,4.995,4.981,4.96,4.93,4.89,4.85,4.81,4.76,4.7,4.65,4.59,4.54,4.48,4.42,4.37,4.31,4.26,4.21,4.17,4.13,4.09,4.06,4.03,4.016,4.004,4,4.02,4.08,4.19,4.32,4.49,4.7,4.93,5.18,5.45,5.75,6.06,6.39,6.73,7.07,7.42,7.78,8.13,8.49,8.84,9.18,9.51,9.84,10.14,10.43,10.71,10.96,11.19,11.39,11.57,11.72,11.84,11.93,11.98,12,11.982,11.93,11.84,11.72,11.58,11.41,11.21,10.99,10.75,10.5,10.22,9.93,9.64,9.33,9.02,8.69,8.37,8.04,7.71,7.39,7.07,6.76,6.45,6.16,5.88,5.6,5.35,5.12,4.89,4.7,4.52,4.37,4.24,4.14,4.06,4.02,4,4.09,4.34,4.74,5.27,5.88,6.59,7.36,8.17,9,9.83,10.64,11.41,12.12,12.73,13.26,13.66,13.91,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14\r\r\nPARAM_ANGLE_Y=0,0.23,0.87,1.86,3.14,4.61,6.25,7.92,9.63,11.3,12.89,14.31,15.57,16.6,17.36,17.84,18,17.56,16.42,14.75,12.69,10.41,8.01,5.59,3.24,1.04,-0.94,-2.58,-3.88,-4.71,-5,-4.75,-4.11,-3.16,-2,-0.71,0.65,2.01,3.34,4.58,5.71,6.63,7.36,7.84,8,7.71,6.97,5.88,4.54,3.05,1.49,-0.09,-1.63,-3.06,-4.35,-5.42,-6.27,-6.81,-7,-6.7,-5.9,-4.69,-3.18,-1.5,0.28,2.03,3.66,5.11,6.32,7.24,7.8,8,7.35,5.59,3.06,0.05,-3.05,-6.06,-8.59,-10.35,-11,-10.73,-10,-8.92,-7.62,-6.18,-4.73,-3.33,-2.06,-0.94,0,1.01,2.01,2.96,3.85,4.73,5.58,6.38,7.15,7.89,8.6,9.28,9.92,10.54,11.13,11.68,12.22,12.72,13.2,13.66,14.09,14.49,14.88,15.23,15.57,15.88,16.16,16.43,16.68,16.9,17.11,17.29,17.46,17.61,17.73,17.84,17.93,18.01,18.06,18.1,18.13,18.136,16.03,11.48,5.8,-0.09,-5.47,-9.93,-12.89,-14,-13.55,-12.45,-11,-9.55,-8.45,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_ANGLE_Z=0,0.06,0.24,0.52,0.9,1.37,1.91,2.52,3.2,3.91,4.7,5.5,6.33,7.18,8.06,8.94,9.83,10.71,11.57,12.42,13.25,14.05,14.81,15.52,16.19,16.79,17.34,17.83,18.23,18.56,18.8,18.95,19,18.93,18.71,18.35,17.88,17.3,16.61,15.84,14.98,14.07,13.08,12.04,10.97,9.88,8.76,7.63,6.52,5.42,4.34,3.28,2.25,1.29,0.38,-0.47,-1.25,-1.94,-2.54,-3.05,-3.45,-3.75,-3.94,-4,-3.86,-3.47,-2.84,-2.01,-1.01,0.12,1.41,2.73,4.15,5.59,7.05,8.46,9.86,11.18,12.42,13.53,14.53,15.39,16.07,16.58,16.89,17,16.95,16.82,16.6,16.31,15.96,15.55,15.09,14.59,14.05,13.49,12.9,12.31,11.69,11.08,10.46,9.85,9.26,8.68,8.13,7.6,7.12,6.66,6.25,5.89,5.58,5.34,5.15,5.04,5,5.05,5.18,5.4,5.69,6.05,6.48,6.97,7.51,8.1,8.73,9.41,10.11,10.84,11.58,12.35,13.11,13.89,14.65,15.42,16.16,16.89,17.59,18.27,18.9,19.49,20.03,20.52,20.95,21.31,21.6,21.82,21.95,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0.54,1,1,1,1,1,1,0.89,1,1,1,0.87,0.882,0.894,1,1,1,0.95,1,1,1,1,1,1,0.8,0.08,0.18,0.29,0.298,0.306,0.27,0.24,0.2,0.16,0.13,0.09,0.06,0.02,0.97,1,0.988,0.06,0.59,1,1,1,0.87,0.24,0.99,1,0.91,0.07,0.14,0.2,0.98,1,1,0.37,0.388,0.408,0.67,0.94,1,1,1,1,1,1,1,1,0.88,0.05,0.93,1,1,0.27,1,1,1,1,1,1,1,0.61,0,0,0,0,0,0,0,0,0.92,1,1,0.998,0.88,0.76,0.38,0,0.91,1,1,0.78,1,1,0.97,0.15,0.07,0,0.36,0.71,0.71,0.71,0.71,0.71,0.71,0.71,0.48,0.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.49,0.97,1,1,1,1,1,1,1,1,1,1,1,1,0.84,0.42,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.25,-0.51,-0.81,-1.12,-1.41,-1.65,-1.84,-1.96,-2,-1.93,-1.73,-1.44,-1.05,-0.6,-0.08,0.47,1.04,1.63,2.22,2.8,3.37,3.91,4.4,4.85,5.24,5.56,5.79,5.95,6,5.98,5.92,5.83,5.71,5.57,5.41,5.22,5.02,4.82,4.6,4.37,4.14,3.91,3.69,3.47,3.25,3.05,2.85,2.67,2.51,2.36,2.24,2.14,2.06,2.02,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.987,1.95,1.89,1.81,1.72,1.61,1.48,1.36,1.22,1.09,0.95,0.81,0.68,0.55,0.44,0.33,0.24,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.04,0.14,0.31,0.52,0.77,1.04,1.32,1.61,1.88,2.15,2.39,2.6,2.77,2.89,2.97,3,2.94,2.79,2.58,2.31,2.01,1.7,1.38,1.07,0.79,0.53,0.32,0.15,0.04,0,0.11,0.43,0.93,1.57,2.31,3.12,3.96,4.82,5.65,6.45,7.16,7.79,8.3,8.68,8.92,9,8.89,8.57,8.06,7.42,6.66,5.83,4.95,4.05,3.17,2.34,1.58,0.94,0.43,0.11,0,0.2,0.74,1.56,2.6,3.75,5,6.25,7.4,8.44,9.26,9.8,10,9.52,8.23,6.36,4.14,1.86,-0.36,-2.23,-3.52,-4,-3.86,-3.5,-2.98,-2.38,-1.77,-1.19,-0.7,-0.32,-0.08,0,0,0,0,0,0,0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-0.86,-0.47,0.14,0.92,1.82,2.82,3.84,4.89,5.9,6.88,7.75,8.52,9.15,9.61,9.9,10,9.61,8.65,7.34,5.8,4.21,2.64,1.15,-0.1,-1.11,-1.76,-2,-1.71,-0.99,-0.12,0.73,1.42,1.85,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_Z=0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-0.92,-0.7,-0.38,0.01,0.45,0.91,1.37,1.82,2.24,2.62,2.93,3.18,3.34,3.39,3.382,3.35,3.29,3.21,3.11,3,2.86,2.71,2.55,2.38,2.19,1.99,1.79,1.58,1.37,1.15,0.92,0.7,0.47,0.25,0.03,-0.19,-0.4,-0.6,-0.8,-0.98,-1.16,-1.32,-1.47,-1.6,-1.72,-1.81,-1.89,-1.95,-1.99,-2,-1.996,-1.984,-1.966,-1.94,-1.91,-1.87,-1.83,-1.79,-1.74,-1.69,-1.64,-1.58,-1.53,-1.47,-1.42,-1.36,-1.31,-1.26,-1.21,-1.17,-1.13,-1.09,-1.06,-1.03,-1.016,-1.004,-1,-1.021,-1.08,-1.17,-1.3,-1.45,-1.62,-1.82,-2.03,-2.25,-2.49,-2.73,-2.97,-3.21,-3.45,-3.68,-3.9,-4.11,-4.3,-4.47,-4.63,-4.76,-4.86,-4.94,-4.98,-5,-4.95,-4.82,-4.61,-4.33,-3.99,-3.6,-3.17,-2.71,-2.22,-1.7,-1.18,-0.64,-0.09,0.43,0.95,1.46,1.94,2.4,2.83,3.21,3.55,3.84,4.08,4.25,4.36,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4,4.4\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.15,-0.25,-0.36,-0.48,-0.6,-0.7,-0.8,-0.88,-0.94,-0.98,-0.99,-0.88,-0.64,-0.33,-0.02,0.27,0.5,0.66,0.72,0.706,0.67,0.61,0.53,0.45,0.36,0.27,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.93,-0.75,-0.49,-0.19,0.12,0.41,0.65,0.84,0.96,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.12,-0.2,-0.29,-0.38,-0.47,-0.55,-0.63,-0.69,-0.74,-0.77,-0.78,-0.68,-0.47,-0.21,0.07,0.31,0.52,0.66,0.71,0.696,0.66,0.6,0.53,0.44,0.36,0.27,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.94,-0.78,-0.55,-0.29,-0.02,0.23,0.45,0.61,0.71,0.75,0.72,0.66,0.55,0.44,0.31,0.2,0.09,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.499,0.498,0.494,0.489,0.481,0.471,0.457,0.44,0.42,0.39,0.36,0.33,0.29,0.25,0.19,0.14,0.07,0,-0.08,-0.17,-0.26,-0.35,-0.43,-0.52,-0.6,-0.68,-0.75,-0.81,-0.87,-0.91,-0.95,-0.98,-0.995,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.18,-0.3,-0.44,-0.6,-0.77,-0.94,-1.1,-1.26,-1.41,-1.53,-1.62,-1.68,-1.7,-1.66,-1.54,-1.35,-1.11,-0.82,-0.49,-0.12,0.26,0.65,1.04,1.42,1.78,2.12,2.4,2.65,2.84,2.96,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P01_ARM_R_2=0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.497,0.488,0.474,0.455,0.43,0.41,0.38,0.35,0.31,0.28,0.24,0.2,0.16,0.12,0.08,0.04,0,-0.05,-0.09,-0.12,-0.15,-0.18,-0.2,-0.225,-0.242,-0.256,-0.268,-0.277,-0.285,-0.291,-0.295,-0.298,-0.3,-0.3,-0.296,-0.286,-0.271,-0.251,-0.23,-0.21,-0.18,-0.15,-0.13,-0.1,-0.08,-0.06,-0.038,-0.022,-0.01,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.3,0.5,0.73,0.99,1.26,1.53,1.8,2.05,2.28,2.48,2.64,2.76,2.84,2.86,2.856,2.83,2.8,2.75,2.7,2.64,2.57,2.5,2.43,2.36,2.29,2.22,2.16,2.11,2.06,2.03,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P01_ARM_R_3=0,0.03,0.09,0.2,0.32,0.47,0.63,0.8,0.98,1.15,1.32,1.47,1.62,1.75,1.85,1.93,1.98,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0.03,0.13,0.28,0.47,0.7,0.96,1.24,1.53,1.83,2.13,2.42,2.69,2.95,3.17,3.37,3.53,3.64,3.72,3.74,3.69,3.56,3.35,3.08,2.77,2.42,2.06,1.68,1.32,0.97,0.66,0.39,0.18,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.15,0.25,0.38,0.52,0.67,0.83,1,1.17,1.33,1.48,1.62,1.75,1.85,1.93,1.98,2,1.982,1.93,1.85,1.75,1.62,1.48,1.33,1.17,1,0.83,0.67,0.52,0.38,0.25,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.499,0.498,0.494,0.489,0.481,0.471,0.457,0.44,0.42,0.39,0.36,0.33,0.29,0.25,0.19,0.14,0.07,0,-0.08,-0.17,-0.26,-0.35,-0.43,-0.52,-0.6,-0.68,-0.75,-0.81,-0.87,-0.91,-0.95,-0.98,-0.995,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.08,-0.18,-0.31,-0.47,-0.64,-0.83,-1.03,-1.23,-1.44,-1.64,-1.83,-2.01,-2.16,-2.3,-2.41,-2.51,-2.59,-2.67,-2.74,-2.79,-2.84,-2.88,-2.91,-2.94,-2.96,-2.975,-2.986,-2.993,-2.997,-2.999,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P01_ARM_L_2=0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.497,0.487,0.472,0.453,0.43,0.4,0.37,0.34,0.31,0.27,0.24,0.2,0.16,0.12,0.08,0.04,0,-0.04,-0.08,-0.11,-0.14,-0.17,-0.19,-0.207,-0.221,-0.234,-0.244,-0.252,-0.259,-0.264,-0.267,-0.269,-0.27,-0.271,-0.267,-0.258,-0.244,-0.227,-0.207,-0.19,-0.16,-0.14,-0.11,-0.09,-0.07,-0.052,-0.034,-0.02,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.17,0.37,0.64,0.96,1.34,1.74,2.18,2.64,3.11,3.59,4.07,4.55,5,5.45,5.86,6.3,6.7,7.06,7.37,7.65,7.9,8.12,8.31,8.47,8.6,8.71,8.8,8.87,8.92,8.96,8.98,8.996,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_P01_ARM_L_3=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.02,0.09,0.2,0.34,0.51,0.7,0.91,1.12,1.34,1.56,1.77,1.97,2.16,2.32,2.47,2.58,2.67,2.72,2.741,2.71,2.61,2.45,2.26,2.03,1.77,1.51,1.23,0.97,0.71,0.48,0.29,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.15,0.25,0.38,0.52,0.67,0.83,1,1.17,1.33,1.48,1.62,1.75,1.85,1.93,1.98,2,1.97,1.9,1.78,1.62,1.44,1.22,0.99,0.75,0.5,0.25,0.01,-0.22,-0.44,-0.62,-0.78,-0.9,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu09.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.13,-0.48,-0.99,-1.61,-2.31,-3.04,-3.78,-4.49,-5.16,-5.76,-6.26,-6.66,-6.91,-7,-6.96,-6.84,-6.66,-6.41,-6.11,-5.76,-5.36,-4.94,-4.49,-4.02,-3.55,-3.06,-2.58,-2.1,-1.64,-1.2,-0.79,-0.4,-0.05,0.25,0.51,0.72,0.87,0.97,1,0.96,0.83,0.62,0.37,0.05,-0.3,-0.69,-1.11,-1.55,-1.99,-2.44,-2.89,-3.33,-3.77,-4.17,-4.55,-4.9,-5.21,-5.48,-5.7,-5.86,-5.96,-6,-5.77,-5.13,-4.12,-2.84,-1.32,0.35,2.1,3.9,5.65,7.32,8.84,10.12,11.13,11.77,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12.01,12.04,12.09,12.16,12.24,12.34,12.46,12.58,12.73,12.88,13.05,13.23,13.42,13.61,13.82,14.02,14.24,14.46,14.69,14.92,15.15,15.38,15.62,15.85,16.08,16.31,16.54,16.76,16.98,17.18,17.39,17.58,17.77,17.95,18.12,18.27,18.42,18.54,18.66,18.76,18.84,18.91,18.96,18.99,19,18.93,18.72,18.38,17.93,17.36,16.69,15.92,15.08,14.14,13.14,12.06,10.95,9.76,8.55,7.29,6.01,4.69,3.36,2.02,0.66,-0.66,-2.01,-3.32,-4.64,-5.91,-7.15,-8.38,-9.53,-10.65,-11.7,-12.7,-13.63,-14.49,-15.25,-15.94,-16.55,-17.06,-17.46,-17.75,-17.94,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_ANGLE_Y=0,-0.06,-0.23,-0.5,-0.87,-1.32,-1.85,-2.46,-3.12,-3.82,-4.57,-5.36,-6.17,-7,-8.02,-8.98,-9.88,-10.74,-11.53,-12.29,-13,-13.66,-14.26,-14.84,-15.37,-15.86,-16.32,-16.73,-17.1,-17.44,-17.74,-18.01,-18.25,-18.45,-18.62,-18.76,-18.86,-18.94,-18.99,-19,-18.81,-18.28,-17.44,-16.38,-15.06,-13.6,-11.98,-10.26,-8.45,-6.62,-4.73,-2.87,-1.05,0.74,2.42,3.99,5.44,6.73,7.84,8.75,9.43,9.85,10,9.58,8.41,6.56,4.21,1.42,-1.63,-4.86,-8.14,-11.37,-14.42,-17.21,-19.56,-21.41,-22.58,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-22.77,-22.14,-21.11,-19.75,-18.08,-16.17,-13.99,-11.67,-9.2,-6.62,-4.02,-1.32,1.32,3.93,6.47,8.92,11.18,13.29,15.2,16.88,18.31,19.46,20.3,20.82,21,20.36,18.54,15.73,12.12,7.93,3.31,-1.44,-6.29,-11.01,-15.52,-19.56,-23.12,-26.04,-28.18,-29.54,-30,-29.92,-29.73,-29.44,-29.08,-28.68,-28.26,-27.84,-27.43,-27.05,-26.71,-26.42,-26.2,-26.05,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26\r\r\nPARAM_ANGLE_Z=0,-0.1,-0.39,-0.83,-1.4,-2.08,-2.82,-3.6,-4.4,-5.18,-5.92,-6.6,-7.17,-7.61,-7.9,-8,-7.96,-7.84,-7.66,-7.41,-7.11,-6.76,-6.36,-5.94,-5.49,-5.02,-4.55,-4.06,-3.58,-3.1,-2.64,-2.2,-1.79,-1.4,-1.05,-0.75,-0.49,-0.28,-0.13,-0.03,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.75,-0.87,-1,-1.13,-1.25,-1.37,-1.48,-1.59,-1.69,-1.78,-1.85,-1.91,-1.96,-1.99,-2,-1.92,-1.71,-1.37,-0.95,-0.44,0.12,0.7,1.3,1.88,2.44,2.95,3.37,3.71,3.92,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.006,4.023,4.05,4.09,4.14,4.19,4.26,4.33,4.41,4.49,4.58,4.68,4.79,4.89,5,5.12,5.24,5.36,5.48,5.6,5.73,5.86,5.99,6.11,6.24,6.36,6.49,6.61,6.73,6.85,6.96,7.07,7.18,7.28,7.37,7.46,7.55,7.63,7.7,7.77,7.83,7.88,7.92,7.96,7.98,7.995,8,7.99,7.96,7.91,7.84,7.76,7.66,7.54,7.41,7.26,7.1,6.93,6.74,6.54,6.34,6.12,5.89,5.65,5.4,5.15,4.89,4.62,4.35,4.07,3.79,3.51,3.22,2.93,2.65,2.35,2.07,1.78,1.49,1.21,0.93,0.65,0.38,0.11,-0.15,-0.4,-0.65,-0.89,-1.12,-1.34,-1.54,-1.74,-1.93,-2.1,-2.26,-2.41,-2.54,-2.66,-2.76,-2.84,-2.91,-2.96,-2.99,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_EYE_L_OPEN=0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.53,0.25,0.06,0,0,0,0.11,0.29,0.46,0.58,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.48,0.23,0.06,0,0,0,0,0,0.04,0.13,0.24,0.36,0.46,0.55,0.61,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.53,0.25,0.06,0,0,0,0.11,0.29,0.45,0.57,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.47,0.22,0.06,0,0,0,0,0,0.04,0.13,0.24,0.35,0.46,0.54,0.6,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.002,0.002,0.003,0.002,0.001,-0.001,-0.004,-0.008,-0.014,-0.022,-0.032,-0.044,-0.059,-0.076,-0.097,-0.12,-0.15,-0.17,-0.2,-0.22,-0.25,-0.28,-0.3,-0.33,-0.36,-0.39,-0.41,-0.44,-0.47,-0.49,-0.52,-0.54,-0.57,-0.59,-0.62,-0.64,-0.67,-0.69,-0.71,-0.73,-0.76,-0.78,-0.797,-0.816,-0.835,-0.852,-0.869,-0.885,-0.9,-0.914,-0.927,-0.94,-0.951,-0.961,-0.97,-0.978,-0.984,-0.99,-0.994,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0,0,-0.001,-0.003,-0.005,-0.008,-0.013,-0.018,-0.025,-0.032,-0.042,-0.053,-0.065,-0.08,-0.096,-0.112,-0.128,-0.144,-0.16,-0.175,-0.191,-0.207,-0.223,-0.239,-0.254,-0.269,-0.285,-0.3,-0.314,-0.329,-0.343,-0.357,-0.371,-0.385,-0.398,-0.411,-0.424,-0.436,-0.447,-0.459,-0.47,-0.481,-0.491,-0.5,-0.509,-0.518,-0.526,-0.534,-0.541,-0.548,-0.554,-0.559,-0.564,-0.568,-0.572,-0.575,-0.577,-0.579,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.77\r\r\nPARAM_BROW_R_ANGLE=0.77\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.83,1,1,0.39,0.2,0,0.15,0.31,1,1,1,1,1,0.2,0.25,0.29,1,1,1,1,0.91,0,0.92,1,1,0.61,1,1,1,1,1,0.2,1,1,1,1,0.82,0.43,0.8,1,1,1,1,0.37,0.91,1,0.9,0.35,1,1,1,1,1,0.49,1,1,1,1,0.99,0.54,1,1,1,1,0.85,0,0.12,0.24,1,1,0.93,0,0.86,1,1,1,0.82,0,0.85,1,1,1,1,1,1,1,1,1,1,0.61,0.2,0.14,0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.79,1,1,1,0.78,0,0.71,1,1,1,0.81,0,0.87,1,1,1,1,1,0.64,0.25,0.31,0.36,0.34,0.31,0.28,0.26,0.23,0.21,0.18,0.15,0.13,0.1,0.08,0.05,0.03,0,0.86,1,0.86,0,0.97,1,1,1,1,1,1,1,1,0.24,0.32,0.39,1,1,1,1,0.97,0,0.04,0.07,0.92,1,1,1,1,1,0.75,0,0.03,0.06,0.96,1,1,1,1,1,1,1,1,0.47,0.61,0.75,1,1,1,1,0.76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.08,-0.29,-0.63,-1.05,-1.56,-2.12,-2.7,-3.3,-3.88,-4.44,-4.95,-5.37,-5.71,-5.92,-6,-5.97,-5.87,-5.72,-5.52,-5.28,-4.99,-4.67,-4.31,-3.93,-3.52,-3.1,-2.67,-2.22,-1.78,-1.33,-0.9,-0.48,-0.07,0.31,0.67,0.99,1.28,1.52,1.72,1.87,1.97,2,2,2,2,2,1.92,1.7,1.37,0.93,0.42,-0.16,-0.77,-1.42,-2.08,-2.75,-3.4,-4.04,-4.65,-5.2,-5.71,-6.15,-6.5,-6.77,-6.94,-7,-6.87,-6.54,-6.05,-5.45,-4.78,-4.07,-3.36,-2.65,-1.99,-1.38,-0.86,-0.44,-0.15,0,0.07,0.13,0.18,0.22,0.26,0.29,0.31,0.34,0.36,0.38,0.4,0.43,0.46,0.49,0.53,0.57,0.62,0.68,0.74,0.82,0.9,1,1.12,1.27,1.42,1.6,1.79,1.99,2.21,2.45,2.68,2.94,3.2,3.47,3.74,4.02,4.31,4.6,4.89,5.18,5.47,5.77,6.06,6.34,6.63,6.9,7.18,7.44,7.7,7.94,8.19,8.41,8.63,8.83,9.02,9.2,9.36,9.5,9.63,9.74,9.83,9.9,9.96,9.99,10,9.97,9.87,9.71,9.5,9.23,8.91,8.55,8.15,7.7,7.22,6.7,6.16,5.59,4.99,4.38,3.75,3.1,2.44,1.78,1.1,0.42,-0.25,-0.94,-1.61,-2.27,-2.92,-3.56,-4.19,-4.8,-5.38,-5.94,-6.48,-6.99,-7.47,-7.92,-8.33,-8.7,-9.03,-9.31,-9.55,-9.74,-9.89,-9.97,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Y=0,0.06,0.23,0.49,0.81,1.18,1.58,2.01,2.44,2.88,3.29,3.69,4.05,4.37,4.63,4.83,4.96,5,4.95,4.82,4.61,4.33,3.99,3.59,3.15,2.67,2.15,1.61,1.07,0.5,-0.07,-0.61,-1.15,-1.67,-2.15,-2.59,-2.99,-3.33,-3.61,-3.82,-3.95,-4,-4,-4,-4,-4,-3.88,-3.55,-3.04,-2.37,-1.57,-0.67,0.31,1.33,2.37,3.41,4.42,5.36,6.24,7.03,7.71,8.25,8.66,8.91,9,8.83,8.34,7.58,6.6,5.44,4.17,2.83,1.45,0.1,-1.19,-2.39,-3.4,-4.21,-4.76,-5,-5.07,-5.14,-5.2,-5.25,-5.3,-5.35,-5.39,-5.42,-5.46,-5.49,-5.53,-5.56,-5.59,-5.63,-5.66,-5.7,-5.74,-5.78,-5.83,-5.88,-5.94,-6,-6.14,-6.4,-6.74,-7.15,-7.59,-8.06,-8.5,-8.92,-9.28,-9.58,-9.81,-9.95,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.92,-9.69,-9.31,-8.82,-8.2,-7.49,-6.67,-5.8,-4.85,-3.86,-2.81,-1.75,-0.67,0.41,1.47,2.52,3.56,4.53,5.46,6.33,7.13,7.84,8.47,9.01,9.43,9.74,9.94,10,9.75,9.04,7.92,6.49,4.8,2.95,0.99,-0.99,-2.95,-4.8,-6.49,-7.92,-9.04,-9.75,-10,-9.81,-9.31,-8.59,-7.69,-6.7,-5.66,-4.6,-3.58,-2.63,-1.76,-1.05,-0.49,-0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.001,-0.006,-0.013,-0.022,-0.034,-0.048,-0.064,-0.082,-0.102,-0.12,-0.15,-0.17,-0.2,-0.22,-0.25,-0.28,-0.31,-0.34,-0.37,-0.4,-0.43,-0.46,-0.5,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.74,-0.77,-0.79,-0.82,-0.84,-0.87,-0.89,-0.908,-0.926,-0.942,-0.957,-0.97,-0.98,-0.989,-0.995,-0.999,-1,-0.991,-0.96,-0.92,-0.86,-0.79,-0.7,-0.61,-0.5,-0.38,-0.25,-0.11,0.03,0.18,0.33,0.49,0.65,0.82,0.98,1.14,1.3,1.46,1.62,1.77,1.92,2.06,2.2,2.32,2.44,2.55,2.65,2.74,2.82,2.88,2.93,2.97,2.99,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.001,3.001,3.002,3.002,3.003,3.003,3.002,3.002,3,2.998,2.995,2.991,2.986,2.981,2.973,2.965,2.955,2.944,2.931,2.916,2.9,2.882,2.862,2.84,2.81,2.79,2.76,2.73,2.69,2.66,2.62,2.58,2.53,2.49,2.44,2.38,2.33,2.27,2.21,2.14,2.07,2,1.92,1.83,1.73,1.62,1.5,1.38,1.26,1.12,0.98,0.84,0.69,0.54,0.38,0.22,0.07,-0.1,-0.26,-0.42,-0.58,-0.74,-0.9,-1.06,-1.22,-1.37,-1.52,-1.67,-1.81,-1.94,-2.07,-2.2,-2.32,-2.42,-2.53,-2.62,-2.71,-2.78,-2.84,-2.9,-2.94,-2.97,-2.993,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.19,-0.23,-0.28,-0.33,-0.38,-0.43,-0.48,-0.53,-0.57,-0.61,-0.64,-0.67,-0.7,-0.715,-0.726,-0.73,-0.69,-0.59,-0.44,-0.26,-0.07,0.11,0.26,0.36,0.4,0.392,0.37,0.34,0.3,0.25,0.21,0.16,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.017,-0.036,-0.06,-0.09,-0.13,-0.17,-0.21,-0.26,-0.3,-0.35,-0.39,-0.44,-0.48,-0.52,-0.56,-0.59,-0.61,-0.633,-0.646,-0.65,-0.59,-0.44,-0.22,0.04,0.31,0.57,0.79,0.94,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.013,-0.029,-0.05,-0.07,-0.1,-0.13,-0.17,-0.2,-0.24,-0.27,-0.31,-0.34,-0.38,-0.41,-0.43,-0.46,-0.48,-0.497,-0.51,-0.517,-0.52,-0.49,-0.41,-0.3,-0.17,-0.03,0.1,0.21,0.29,0.32,0.314,0.296,0.27,0.24,0.2,0.16,0.13,0.09,0.06,0.04,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.18,-0.22,-0.26,-0.3,-0.34,-0.38,-0.42,-0.45,-0.48,-0.51,-0.53,-0.546,-0.556,-0.56,-0.51,-0.37,-0.16,0.08,0.32,0.56,0.77,0.91,0.96,0.941,0.89,0.81,0.71,0.6,0.48,0.36,0.25,0.15,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,2.97,2.9,2.78,2.64,2.46,2.25,2.03,1.79,1.54,1.29,1.03,0.77,0.52,0.28,0.05,-0.17,-0.37,-0.55,-0.7,-0.83,-0.92,-0.98,-1,-0.98,-0.92,-0.83,-0.71,-0.57,-0.41,-0.22,-0.02,0.18,0.4,0.63,0.86,1.09,1.31,1.53,1.75,1.95,2.15,2.33,2.49,2.64,2.76,2.86,2.94,2.98,3,2.999,2.994,2.987,2.977,2.964,2.947,2.928,2.91,2.88,2.85,2.82,2.79,2.75,2.71,2.66,2.61,2.56,2.51,2.45,2.39,2.32,2.25,2.18,2.1,2.02,1.94,1.85,1.76,1.66,1.56,1.46,1.35,1.24,1.12,1,0.87,0.74,0.62,0.5,0.38,0.26,0.15,0.03,-0.07,-0.18,-0.29,-0.39,-0.49,-0.58,-0.68,-0.77,-0.85,-0.94,-1.02,-1.1,-1.17,-1.25,-1.31,-1.38,-1.44,-1.5,-1.56,-1.61,-1.66,-1.71,-1.75,-1.79,-1.83,-1.86,-1.89,-1.91,-1.94,-1.956,-1.972,-1.984,-1.993,-1.998,-2,-1.98,-1.92,-1.83,-1.7,-1.55,-1.37,-1.17,-0.95,-0.71,-0.47,-0.2,0.06,0.33,0.6,0.87,1.13,1.39,1.63,1.87,2.08,2.28,2.46,2.62,2.75,2.86,2.93,2.98,3,2.97,2.9,2.78,2.62,2.44,2.23,2.01,1.77,1.53,1.29,1.06,0.84,0.64,0.46,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.99,0.96,0.91,0.85,0.78,0.69,0.59,0.48,0.37,0.25,0.13,0,-0.13,-0.25,-0.37,-0.48,-0.59,-0.69,-0.78,-0.85,-0.91,-0.96,-0.99,-1,-0.985,-0.94,-0.87,-0.78,-0.66,-0.53,-0.39,-0.23,-0.06,0.12,0.29,0.48,0.66,0.84,1.01,1.18,1.33,1.47,1.6,1.72,1.82,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.993,1.973,1.94,1.9,1.84,1.78,1.7,1.62,1.53,1.43,1.32,1.21,1.09,0.97,0.84,0.71,0.57,0.44,0.3,0.16,0.02,-0.12,-0.26,-0.4,-0.54,-0.67,-0.8,-0.93,-1.05,-1.17,-1.28,-1.38,-1.48,-1.57,-1.66,-1.73,-1.8,-1.86,-1.91,-1.95,-1.98,-1.994,-2,-1.988,-1.95,-1.9,-1.83,-1.74,-1.64,-1.52,-1.4,-1.26,-1.12,-0.98,-0.83,-0.67,-0.52,-0.37,-0.21,-0.07,0.08,0.22,0.35,0.47,0.58,0.69,0.78,0.85,0.92,0.96,0.99,1,0.97,0.9,0.78,0.62,0.44,0.22,-0.01,-0.25,-0.5,-0.75,-0.99,-1.22,-1.44,-1.62,-1.78,-1.9,-1.97,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P02_ARM_L_3=0,-0.013,-0.05,-0.11,-0.19,-0.28,-0.39,-0.52,-0.64,-0.78,-0.91,-1.05,-1.19,-1.32,-1.45,-1.56,-1.67,-1.76,-1.85,-1.91,-1.96,-1.99,-2,-1.97,-1.9,-1.79,-1.63,-1.44,-1.22,-0.98,-0.71,-0.43,-0.14,0.16,0.46,0.76,1.06,1.35,1.63,1.88,2.12,2.34,2.53,2.69,2.82,2.92,2.98,3,2.95,2.82,2.61,2.33,1.99,1.59,1.15,0.67,0.15,-0.39,-0.93,-1.5,-2.07,-2.61,-3.15,-3.67,-4.15,-4.59,-4.99,-5.33,-5.61,-5.82,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-5.985,-5.94,-5.87,-5.77,-5.65,-5.51,-5.35,-5.17,-4.96,-4.75,-4.52,-4.27,-4.01,-3.75,-3.47,-3.19,-2.9,-2.6,-2.3,-1.99,-1.69,-1.39,-1.08,-0.78,-0.48,-0.19,0.1,0.38,0.66,0.92,1.17,1.42,1.65,1.86,2.06,2.25,2.41,2.56,2.69,2.8,2.88,2.95,2.99,3,2.96,2.83,2.63,2.37,2.04,1.67,1.24,0.79,0.3,-0.22,-0.75,-1.3,-1.86,-2.43,-2.99,-3.55,-4.09,-4.62,-5.13,-5.61,-6.06,-6.48,-6.85,-7.18,-7.47,-7.69,-7.86,-7.96,-8,-7.86,-7.49,-6.93,-6.22,-5.41,-4.52,-3.57,-2.63,-1.66,-0.75,0.11,0.91,1.61,2.18,2.62,2.9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,0.993,0.975,0.94,0.9,0.85,0.79,0.71,0.63,0.54,0.44,0.33,0.22,0.1,-0.03,-0.16,-0.3,-0.44,-0.58,-0.73,-0.88,-1.03,-1.19,-1.34,-1.5,-1.66,-1.81,-1.97,-2.12,-2.27,-2.42,-2.56,-2.7,-2.84,-2.97,-3.1,-3.22,-3.33,-3.44,-3.54,-3.63,-3.71,-3.79,-3.85,-3.9,-3.94,-3.97,-3.993,-4,-3.987,-3.95,-3.89,-3.81,-3.72,-3.61,-3.48,-3.36,-3.22,-3.09,-2.95,-2.81,-2.68,-2.55,-2.44,-2.33,-2.24,-2.15,-2.09,-2.04,-2.01,-2,-2.004,-2.017,-2.037,-2.06,-2.09,-2.13,-2.17,-2.2,-2.24,-2.29,-2.32,-2.36,-2.39,-2.42,-2.45,-2.47,-2.487,-2.497,-2.5,-2.487,-2.45,-2.39,-2.31,-2.21,-2.09,-1.96,-1.81,-1.64,-1.47,-1.28,-1.08,-0.88,-0.66,-0.45,-0.23,0,0.22,0.45,0.67,0.89,1.1,1.31,1.52,1.71,1.9,2.07,2.23,2.39,2.52,2.64,2.75,2.84,2.91,2.96,2.99,3,2.984,2.94,2.87,2.77,2.65,2.52,2.36,2.2,2.02,1.83,1.63,1.44,1.23,1.03,0.82,0.62,0.42,0.23,0.04,-0.13,-0.29,-0.45,-0.58,-0.7,-0.81,-0.89,-0.95,-0.99,-1,-0.95,-0.81,-0.59,-0.3,0.02,0.39,0.76,1.14,1.51,1.86,2.18,2.46,2.69,2.86,2.96,3,2.987,2.95,2.9,2.83,2.74,2.65,2.56,2.46,2.37,2.28,2.2,2.13,2.08,2.04,2.01,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P06_ARM_R_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.97,0.93,0.88,0.82,0.74,0.66,0.57,0.48,0.37,0.27,0.16,0.05,-0.06,-0.17,-0.28,-0.38,-0.48,-0.58,-0.67,-0.75,-0.83,-0.89,-0.95,-1,-1.05,-1.09,-1.14,-1.18,-1.21,-1.25,-1.28,-1.31,-1.33,-1.36,-1.38,-1.4,-1.42,-1.438,-1.453,-1.467,-1.48,-1.491,-1.501,-1.509,-1.517,-1.524,-1.529,-1.534,-1.538,-1.541,-1.544,-1.546,-1.547,-1.548,-1.549,-1.549,-1.549,-1.55,-1.55,-1.542,-1.52,-1.48,-1.43,-1.37,-1.3,-1.21,-1.12,-1.01,-0.9,-0.78,-0.65,-0.52,-0.37,-0.23,-0.08,0.07,0.23,0.39,0.55,0.71,0.87,1.02,1.18,1.33,1.49,1.63,1.78,1.92,2.05,2.18,2.3,2.41,2.52,2.61,2.7,2.78,2.84,2.9,2.94,2.97,2.993,3,2.992,2.97,2.93,2.88,2.83,2.76,2.68,2.6,2.51,2.41,2.32,2.22,2.12,2.01,1.91,1.81,1.71,1.61,1.52,1.43,1.35,1.28,1.21,1.15,1.1,1.06,1.03,1.006,1,1.018,1.07,1.15,1.25,1.38,1.52,1.67,1.83,2,2.17,2.33,2.48,2.62,2.75,2.85,2.93,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P06_ARM_R_3=0,0.01,0.04,0.09,0.16,0.24,0.34,0.45,0.57,0.71,0.86,1.02,1.18,1.35,1.52,1.7,1.89,2.07,2.26,2.45,2.63,2.82,3,3.2,3.38,3.56,3.72,3.87,4.01,4.13,4.25,4.35,4.45,4.53,4.61,4.68,4.74,4.79,4.84,4.88,4.91,4.93,4.96,4.973,4.985,4.994,4.999,5,4.96,4.84,4.66,4.41,4.11,3.75,3.35,2.93,2.47,1.99,1.5,1,0.5,0.01,-0.47,-0.93,-1.35,-1.75,-2.11,-2.41,-2.66,-2.84,-2.96,-3,-2.998,-2.99,-2.978,-2.96,-2.94,-2.91,-2.87,-2.83,-2.79,-2.73,-2.67,-2.61,-2.53,-2.46,-2.37,-2.27,-2.17,-2.06,-1.95,-1.82,-1.69,-1.55,-1.4,-1.25,-1.08,-0.9,-0.72,-0.53,-0.32,-0.11,0.11,0.34,0.58,0.83,1.09,1.36,1.64,1.91,2.18,2.44,2.7,2.96,3.2,3.45,3.69,3.92,4.15,4.38,4.6,4.81,5.01,5.22,5.41,5.61,5.79,5.97,6.14,6.3,6.46,6.61,6.75,6.89,7.02,7.14,7.26,7.36,7.46,7.55,7.64,7.71,7.78,7.84,7.89,7.93,7.96,7.98,7.995,8,7.98,7.91,7.8,7.66,7.48,7.27,7.03,6.77,6.49,6.19,5.87,5.54,5.19,4.85,4.5,4.15,3.81,3.46,3.13,2.81,2.51,2.23,1.97,1.73,1.52,1.34,1.2,1.09,1.02,1,1.09,1.32,1.68,2.13,2.65,3.21,3.82,4.42,5.03,5.61,6.16,6.67,7.11,7.48,7.76,7.94,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu10.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.03,-0.1,-0.21,-0.37,-0.56,-0.8,-1.05,-1.35,-1.66,-2,-2.36,-2.74,-3.13,-3.53,-3.95,-4.37,-4.8,-5.23,-5.66,-6.1,-6.52,-6.94,-7.34,-7.74,-8.13,-8.5,-8.86,-9.2,-9.51,-9.8,-10.06,-10.3,-10.5,-10.68,-10.81,-10.92,-10.98,-11,-10.88,-10.53,-9.98,-9.28,-8.42,-7.46,-6.4,-5.27,-4.09,-2.89,-1.65,-0.43,0.76,1.94,3.03,4.06,5.01,5.86,6.59,7.18,7.63,7.9,8,7.96,7.85,7.67,7.43,7.14,6.81,6.44,6.05,5.63,5.19,4.75,4.29,3.82,3.38,2.93,2.5,2.09,1.7,1.34,1.01,0.72,0.48,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.24,0.54,0.92,1.39,1.94,2.55,3.22,3.93,4.68,5.46,6.25,7.08,7.89,8.71,9.53,10.31,11.09,11.83,12.53,13.18,13.78,14.33,14.81,15.22,15.55,15.8,15.95,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15.86,15.45,14.8,13.93,12.87,11.66,10.27,8.79,7.22,5.57,3.92,2.21,0.53,-1.13,-2.75,-4.31,-5.75,-7.09,-8.31,-9.38,-10.29,-11.02,-11.55,-11.89,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12\r\r\nPARAM_ANGLE_Y=0,0.1,0.39,0.83,1.42,2.15,2.98,3.88,4.87,5.91,6.97,8.03,9.09,10.13,11.12,12.02,12.85,13.58,14.17,14.61,14.9,15,15,14.999,14.997,14.994,14.988,14.979,14.966,14.949,14.93,14.9,14.87,14.83,14.78,14.72,14.66,14.59,14.5,14.41,14.31,14.19,14.06,13.92,13.77,13.6,13.41,13.22,13,12.46,11.39,9.86,7.96,5.81,3.46,1.08,-1.34,-3.68,-5.9,-7.89,-9.64,-11.07,-12.12,-12.78,-13,-12.72,-11.96,-10.82,-9.4,-7.82,-6.14,-4.49,-2.95,-1.59,-0.44,0.42,0.95,1.14,1.16,1.19,1.184,1.13,1,0.78,0.45,0,-0.7,-1.52,-2.44,-3.44,-4.47,-5.52,-6.54,-7.54,-8.48,-9.35,-10.11,-10.77,-11.3,-11.68,-11.92,-12,-11.84,-11.38,-10.66,-9.72,-8.61,-7.34,-5.96,-4.5,-3,-1.5,-0.04,1.34,2.61,3.72,4.66,5.38,5.84,6,5.39,3.8,1.48,-1.38,-4.57,-7.9,-11.26,-14.54,-17.59,-20.35,-22.64,-24.43,-25.6,-26,-26,-26,-26,-26,-26,-26,-26,-26,-25.57,-24.34,-22.48,-20.07,-17.23,-14.02,-10.59,-7.03,-3.34,0.39,4.02,7.56,10.93,14,16.84,19.25,21.24,22.71,23.67,24,22.92,20.03,15.68,10.23,4.2,-2.21,-8.5,-14.38,-19.59,-23.96,-27.25,-29.3,-30,-29.74,-29.04,-27.97,-26.62,-25.12,-23.5,-21.88,-20.38,-19.03,-17.96,-17.26,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17\r\r\nPARAM_ANGLE_Z=0,-0.06,-0.21,-0.47,-0.82,-1.23,-1.72,-2.27,-2.85,-3.48,-4.14,-4.81,-5.5,-6.19,-6.86,-7.52,-8.15,-8.73,-9.28,-9.77,-10.18,-10.53,-10.79,-10.94,-11,-10.96,-10.85,-10.67,-10.43,-10.13,-9.78,-9.38,-8.93,-8.45,-7.93,-7.37,-6.79,-6.19,-5.58,-4.95,-4.32,-3.68,-3.05,-2.42,-1.81,-1.21,-0.63,-0.07,0.45,0.93,1.38,1.78,2.13,2.43,2.67,2.85,2.96,3,2.99,2.96,2.92,2.85,2.78,2.69,2.59,2.48,2.36,2.23,2.09,1.95,1.81,1.66,1.52,1.37,1.23,1.09,0.95,0.82,0.69,0.57,0.46,0.36,0.27,0.19,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.14,0.24,0.37,0.52,0.69,0.87,1.07,1.29,1.51,1.75,1.98,2.23,2.47,2.71,2.95,3.19,3.42,3.64,3.85,4.05,4.23,4.4,4.55,4.68,4.79,4.88,4.95,4.99,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.95,4.83,4.62,4.36,4.04,3.66,3.25,2.8,2.34,1.84,1.34,0.82,0.3,-0.2,-0.7,-1.19,-1.65,-2.09,-2.49,-2.86,-3.19,-3.46,-3.69,-3.86,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_EYE_L_OPEN=1,1,1,0.999,0.999,0.998,0.997,0.996,0.995,0.994,0.993,0.991,0.989,0.987,0.985,0.983,0.981,0.978,0.975,0.973,0.97,0.966,0.963,0.96,0.956,0.952,0.948,0.944,0.94,0.935,0.93,0.926,0.921,0.915,0.91,0.904,0.899,0.893,0.887,0.881,0.874,0.868,0.861,0.854,0.847,0.84,0.832,0.825,0.817,0.809,0.801,0.793,0.784,0.775,0.767,0.758,0.748,0.739,0.73,0.72,0.71,0.7,0.52,0.25,0.06,0,0,0,0.11,0.29,0.46,0.58,0.63,0.632,0.633,0.635,0.636,0.638,0.639,0.641,0.642,0.644,0.645,0.647,0.648,0.65,0.651,0.652,0.654,0.655,0.656,0.657,0.659,0.66,0.661,0.662,0.663,0.665,0.666,0.667,0.668,0.669,0.67,0.671,0.672,0.673,0.674,0.675,0.676,0.677,0.678,0.679,0.679,0.68,0.681,0.682,0.683,0.683,0.684,0.685,0.686,0.686,0.687,0.688,0.688,0.689,0.689,0.69,0.691,0.691,0.692,0.692,0.693,0.693,0.694,0.694,0.694,0.695,0.695,0.696,0.696,0.696,0.697,0.697,0.697,0.698,0.698,0.698,0.698,0.699,0.699,0.699,0.699,0.699,0.699,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.65,0.52,0.37,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,0.999,0.999,0.998,0.997,0.996,0.995,0.994,0.993,0.991,0.989,0.987,0.985,0.983,0.981,0.978,0.975,0.973,0.97,0.966,0.963,0.96,0.956,0.952,0.948,0.944,0.94,0.935,0.93,0.926,0.921,0.915,0.91,0.904,0.899,0.893,0.887,0.881,0.874,0.868,0.861,0.854,0.847,0.84,0.832,0.825,0.817,0.809,0.801,0.793,0.784,0.775,0.767,0.758,0.748,0.739,0.73,0.72,0.71,0.7,0.52,0.25,0.06,0,0,0,0.11,0.29,0.45,0.57,0.62,0.622,0.624,0.626,0.627,0.629,0.631,0.633,0.634,0.636,0.638,0.639,0.641,0.642,0.644,0.645,0.647,0.648,0.65,0.651,0.653,0.654,0.656,0.657,0.658,0.66,0.661,0.662,0.663,0.664,0.666,0.667,0.668,0.669,0.67,0.671,0.672,0.673,0.674,0.675,0.676,0.677,0.678,0.679,0.68,0.681,0.682,0.683,0.683,0.684,0.685,0.686,0.687,0.687,0.688,0.689,0.689,0.69,0.69,0.691,0.692,0.692,0.693,0.693,0.694,0.694,0.695,0.695,0.695,0.696,0.696,0.697,0.697,0.697,0.698,0.698,0.698,0.698,0.699,0.699,0.699,0.699,0.699,0.699,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.65,0.52,0.37,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,-0.004,-0.015,-0.034,-0.06,-0.09,-0.12,-0.16,-0.2,-0.25,-0.29,-0.34,-0.39,-0.44,-0.48,-0.53,-0.57,-0.61,-0.65,-0.69,-0.72,-0.74,-0.76,-0.777,-0.787,-0.79,-0.787,-0.778,-0.764,-0.744,-0.72,-0.69,-0.66,-0.62,-0.58,-0.54,-0.5,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-0.1,-0.05,0,0.05,0.09,0.13,0.17,0.21,0.24,0.27,0.29,0.314,0.328,0.337,0.34,0.339,0.336,0.33,0.323,0.315,0.305,0.293,0.28,0.267,0.252,0.236,0.22,0.204,0.187,0.17,0.153,0.136,0.12,0.104,0.088,0.073,0.06,0.047,0.035,0.025,0.017,0.01,0.004,0.001,0,0.001,0.006,0.012,0.022,0.033,0.047,0.063,0.081,0.1,0.12,0.14,0.17,0.19,0.22,0.25,0.27,0.3,0.33,0.36,0.39,0.42,0.45,0.48,0.51,0.54,0.57,0.59,0.62,0.65,0.67,0.7,0.72,0.74,0.759,0.778,0.794,0.808,0.82,0.831,0.839,0.845,0.849,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.005,0.012,0.02,0.031,0.043,0.058,0.074,0.091,0.109,0.129,0.15,0.17,0.19,0.21,0.24,0.26,0.28,0.3,0.32,0.34,0.365,0.384,0.402,0.419,0.435,0.449,0.462,0.473,0.482,0.49,0.496,0.499,0.5,0.499,0.494,0.487,0.477,0.464,0.45,0.432,0.413,0.39,0.37,0.34,0.31,0.29,0.25,0.22,0.19,0.15,0.12,0.08,0.04,0.01,-0.03,-0.07,-0.11,-0.15,-0.19,-0.24,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.62,-0.66,-0.69,-0.72,-0.76,-0.78,-0.81,-0.84,-0.86,-0.88,-0.902,-0.92,-0.934,-0.947,-0.957,-0.964,-0.969,-0.97,-0.968,-0.963,-0.955,-0.943,-0.929,-0.912,-0.892,-0.87,-0.85,-0.82,-0.79,-0.76,-0.73,-0.7,-0.67,-0.63,-0.6,-0.56,-0.52,-0.49,-0.45,-0.41,-0.38,-0.34,-0.3,-0.27,-0.24,-0.2,-0.17,-0.14,-0.11,-0.08,-0.06,-0.03,-0.01,0.01,0.028,0.044,0.056,0.067,0.074,0.078,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=1\r\r\nPARAM_BROW_R_ANGLE=1\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.21,0.43,0.21,0,0.95,1,1,0.73,1,1,1,1,1,0.47,0.44,0.4,1,1,1,0.33,0.98,1,1,0.79,1,1,0.9,0,0.94,1,0.94,0,0.27,0.54,1,1,1,1,1,0.7,1,1,1,0.61,1,1,0.97,0,0.96,1,1,0.55,1,1,0.85,0,0.98,1,1,0.34,0.36,0.39,0.94,1,1,1,0.76,0.52,0.87,1,1,1,0.95,0,0.78,1,0.78,0,0.91,1,1,1,0.89,0,0.65,1,1,1,1,0.89,0.69,0.48,0.36,0.24,0.12,0,0,0,0,0,0.05,0.11,0.97,1,0.92,0,0.24,0.47,0.39,0.31,1,1,0.98,0.2,0.92,1,1,1,0.58,0,0,0,0,0,0.82,1,1,0.4,1,1,1,1,1,0.51,1,1,1,1,0.93,0.35,1,1,1,1,1,1,1,1,1,1,0.7,0,0,0,0,0,0,0,0,0,0.08,0.16,0.75,1,0.88,0.42,1,1,1,1,1,1,1,1,1,1,1,1,0.59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.04,-0.15,-0.33,-0.57,-0.86,-1.19,-1.56,-1.95,-2.37,-2.81,-3.25,-3.71,-4.18,-4.62,-5.07,-5.5,-5.91,-6.3,-6.66,-6.99,-7.28,-7.52,-7.72,-7.87,-7.97,-8,-7.986,-7.95,-7.88,-7.8,-7.69,-7.56,-7.42,-7.26,-7.08,-6.89,-6.68,-6.46,-6.23,-6,-5.75,-5.5,-5.24,-4.98,-4.71,-4.44,-4.17,-3.9,-3.63,-3.36,-3.09,-2.83,-2.58,-2.32,-2.08,-1.85,-1.62,-1.41,-1.2,-1.01,-0.83,-0.67,-0.52,-0.39,-0.28,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.07,0.15,0.26,0.4,0.56,0.75,0.95,1.18,1.43,1.69,1.96,2.25,2.54,2.85,3.16,3.48,3.8,4.13,4.46,4.78,5.11,5.43,5.75,6.06,6.36,6.66,6.94,7.21,7.47,7.71,7.94,8.15,8.33,8.5,8.65,8.77,8.87,8.94,8.98,9,9,9,9,9,9,9,9,9,9,9,9,9,8.92,8.69,8.31,7.82,7.21,6.52,5.72,4.88,3.98,3.04,2.1,1.12,0.16,-0.79,-1.72,-2.61,-3.43,-4.19,-4.89,-5.5,-6.02,-6.44,-6.75,-6.94,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0,-0.07,-0.26,-0.55,-0.9,-1.32,-1.77,-2.25,-2.72,-3.21,-3.68,-4.11,-4.52,-4.87,-5.17,-5.39,-5.53,-5.58,-5.54,-5.42,-5.24,-4.99,-4.68,-4.32,-3.91,-3.45,-2.96,-2.43,-1.88,-1.3,-0.71,-0.1,0.5,1.12,1.72,2.32,2.9,3.46,4,4.52,4.96,5.35,5.67,5.93,6.15,6.32,6.45,6.55,6.62,6.67,6.7,6.719,6.727,6.73,6.73,6.48,5.82,4.83,3.59,2.21,0.74,-0.69,-2.04,-3.23,-4.23,-4.98,-5.44,-5.61,-5.41,-4.91,-4.24,-3.45,-2.64,-1.83,-1.07,-0.43,0.09,0.42,0.55,0.527,0.48,0.4,0.31,0.22,0.13,0.06,0.01,-0.013,-0.013,-0.013,-0.01,-0.01,-0.01,-0.01,-0.01,-0.24,-0.86,-1.75,-2.8,-3.89,-4.94,-5.83,-6.45,-6.68,-6.54,-6.17,-5.58,-4.82,-3.92,-2.88,-1.75,-0.56,0.66,1.88,3.07,4.2,5.24,6.14,6.91,7.49,7.87,8,7.77,7.18,6.31,5.23,4.04,2.79,1.53,0.3,-0.85,-1.88,-2.74,-3.41,-3.85,-4,-3.87,-3.55,-3.11,-2.6,-2.07,-1.55,-1.05,-0.63,-0.3,-0.08,0,0,0,0,0.18,0.66,1.41,2.34,3.38,4.5,5.62,6.66,7.59,8.34,8.82,9,8.64,7.68,6.19,4.32,2.25,0,-2.25,-4.32,-6.19,-7.68,-8.64,-9,-8.92,-8.69,-8.33,-7.86,-7.31,-6.67,-5.98,-5.25,-4.5,-3.75,-3.02,-2.33,-1.69,-1.14,-0.67,-0.31,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.023,0.05,0.09,0.13,0.19,0.25,0.32,0.39,0.48,0.56,0.65,0.75,0.85,0.95,1.05,1.16,1.27,1.38,1.49,1.59,1.7,1.81,1.92,2.02,2.12,2.22,2.31,2.4,2.49,2.57,2.65,2.72,2.78,2.83,2.88,2.92,2.96,2.98,2.995,3,3,3,3,3,3,3,3,3,3,3,3,3,2.984,2.94,2.86,2.76,2.63,2.48,2.31,2.13,1.93,1.71,1.49,1.25,1.02,0.77,0.53,0.29,0.05,-0.19,-0.42,-0.64,-0.85,-1.05,-1.23,-1.4,-1.55,-1.68,-1.79,-1.88,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.001,-0.002,-0.005,-0.009,-0.014,-0.02,-0.027,-0.034,-0.042,-0.052,-0.061,-0.072,-0.083,-0.094,-0.107,-0.119,-0.132,-0.146,-0.159,-0.173,-0.187,-0.201,-0.216,-0.23,-0.244,-0.259,-0.273,-0.287,-0.301,-0.314,-0.328,-0.341,-0.353,-0.366,-0.377,-0.388,-0.399,-0.408,-0.418,-0.426,-0.433,-0.44,-0.446,-0.451,-0.455,-0.458,-0.459,-0.46,-0.43,-0.34,-0.21,-0.06,0.09,0.24,0.36,0.45,0.51,0.53,0.5,0.42,0.29,0.13,-0.04,-0.24,-0.43,-0.6,-0.76,-0.89,-0.97,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.025,-0.05,-0.09,-0.12,-0.17,-0.21,-0.26,-0.31,-0.35,-0.39,-0.43,-0.46,-0.49,-0.51,-0.525,-0.53,-0.49,-0.38,-0.23,-0.04,0.15,0.34,0.49,0.6,0.64,0.623,0.58,0.51,0.43,0.34,0.24,0.15,0.06,-0.03,-0.11,-0.17,-0.23,-0.26,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.21,-0.05,0.15,0.36,0.52,0.58,0.573,0.552,0.52,0.48,0.43,0.38,0.32,0.26,0.2,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.001,-0.002,-0.005,-0.008,-0.012,-0.018,-0.024,-0.03,-0.038,-0.046,-0.055,-0.064,-0.074,-0.084,-0.095,-0.106,-0.118,-0.13,-0.142,-0.154,-0.167,-0.18,-0.192,-0.205,-0.218,-0.23,-0.243,-0.256,-0.268,-0.28,-0.292,-0.304,-0.315,-0.326,-0.336,-0.346,-0.355,-0.364,-0.372,-0.38,-0.386,-0.392,-0.398,-0.402,-0.405,-0.408,-0.409,-0.41,-0.38,-0.29,-0.17,-0.03,0.11,0.25,0.37,0.45,0.51,0.53,0.5,0.42,0.29,0.13,-0.04,-0.24,-0.43,-0.6,-0.76,-0.89,-0.97,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.018,-0.037,-0.06,-0.09,-0.12,-0.15,-0.19,-0.22,-0.25,-0.28,-0.31,-0.33,-0.352,-0.367,-0.377,-0.38,-0.35,-0.28,-0.17,-0.05,0.09,0.21,0.32,0.39,0.42,0.414,0.398,0.37,0.34,0.31,0.26,0.22,0.17,0.12,0.06,0,-0.05,-0.11,-0.17,-0.23,-0.28,-0.32,-0.36,-0.39,-0.41,-0.427,-0.44,-0.45,-0.456,-0.459,-0.46,-0.44,-0.37,-0.27,-0.16,-0.04,0.07,0.17,0.24,0.26,0.255,0.241,0.22,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.001,-0.004,-0.008,-0.014,-0.022,-0.031,-0.042,-0.054,-0.067,-0.081,-0.097,-0.114,-0.132,-0.151,-0.171,-0.19,-0.21,-0.24,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.41,-0.43,-0.46,-0.49,-0.51,-0.54,-0.57,-0.59,-0.62,-0.64,-0.67,-0.69,-0.72,-0.74,-0.76,-0.79,-0.81,-0.83,-0.849,-0.868,-0.886,-0.903,-0.919,-0.933,-0.946,-0.958,-0.969,-0.978,-0.986,-0.992,-0.996,-0.999,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.001,0.004,0.008,0.014,0.022,0.031,0.042,0.053,0.067,0.081,0.097,0.114,0.132,0.151,0.171,0.19,0.21,0.24,0.26,0.28,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.48,0.51,0.54,0.56,0.59,0.61,0.64,0.66,0.69,0.71,0.73,0.76,0.78,0.8,0.821,0.84,0.859,0.877,0.894,0.91,0.925,0.938,0.951,0.962,0.972,0.98,0.987,0.993,0.997,0.999,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.002,0.01,0.022,0.038,0.059,0.08,0.11,0.15,0.18,0.22,0.26,0.31,0.36,0.41,0.47,0.53,0.58,0.65,0.71,0.78,0.84,0.91,0.98,1.05,1.12,1.2,1.27,1.34,1.42,1.49,1.56,1.64,1.71,1.79,1.86,1.93,2,2.07,2.14,2.2,2.27,2.33,2.39,2.45,2.51,2.56,2.61,2.66,2.71,2.75,2.79,2.83,2.87,2.9,2.92,2.95,2.965,2.98,2.991,2.998,3,2.94,2.79,2.58,2.31,2.01,1.7,1.38,1.07,0.79,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,-0.001,-0.004,-0.008,-0.014,-0.022,-0.031,-0.042,-0.054,-0.067,-0.081,-0.097,-0.114,-0.132,-0.151,-0.171,-0.19,-0.21,-0.24,-0.26,-0.28,-0.31,-0.33,-0.36,-0.38,-0.41,-0.43,-0.46,-0.49,-0.51,-0.54,-0.57,-0.59,-0.62,-0.64,-0.67,-0.69,-0.72,-0.74,-0.76,-0.79,-0.81,-0.83,-0.849,-0.868,-0.886,-0.903,-0.919,-0.933,-0.946,-0.958,-0.969,-0.978,-0.986,-0.992,-0.996,-0.999,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.001,0.004,0.008,0.014,0.022,0.031,0.042,0.053,0.067,0.081,0.097,0.114,0.132,0.151,0.171,0.19,0.21,0.24,0.26,0.28,0.31,0.33,0.36,0.38,0.41,0.43,0.46,0.48,0.51,0.54,0.56,0.59,0.61,0.64,0.66,0.69,0.71,0.73,0.76,0.78,0.8,0.821,0.84,0.859,0.877,0.894,0.91,0.925,0.938,0.951,0.962,0.972,0.98,0.987,0.993,0.997,0.999,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.002,0.006,0.015,0.025,0.039,0.056,0.075,0.1,0.12,0.15,0.18,0.21,0.24,0.28,0.31,0.35,0.39,0.43,0.47,0.52,0.56,0.61,0.65,0.7,0.75,0.8,0.85,0.89,0.94,0.99,1.04,1.09,1.14,1.19,1.24,1.29,1.33,1.38,1.42,1.47,1.51,1.55,1.59,1.63,1.67,1.71,1.74,1.78,1.81,1.84,1.86,1.89,1.91,1.931,1.949,1.964,1.977,1.987,1.994,1.999,2,1.96,1.86,1.72,1.54,1.34,1.13,0.92,0.72,0.53,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.008,0.017,0.029,0.044,0.063,0.08,0.11,0.13,0.16,0.19,0.22,0.25,0.28,0.32,0.35,0.39,0.42,0.46,0.5,0.53,0.57,0.6,0.64,0.67,0.71,0.74,0.77,0.8,0.83,0.86,0.88,0.91,0.926,0.944,0.961,0.975,0.985,0.993,0.998,1,1,1,1,1,0.993,0.97,0.92,0.85,0.76,0.63,0.46,0.25,0,-0.27,-0.53,-0.78,-1.01,-1.22,-1.41,-1.58,-1.72,-1.84,-1.93,-1.98,-2,-1.96,-1.85,-1.69,-1.48,-1.25,-1,-0.75,-0.52,-0.31,-0.15,-0.04,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P06_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.027,0.06,0.1,0.16,0.22,0.3,0.38,0.47,0.57,0.68,0.79,0.91,1.04,1.17,1.3,1.44,1.58,1.71,1.86,2,2.14,2.29,2.42,2.56,2.7,2.83,2.96,3.09,3.21,3.32,3.43,3.53,3.62,3.7,3.78,3.84,3.9,3.94,3.97,3.993,4,4,4,4,4,3.98,3.92,3.83,3.72,3.57,3.4,3.22,3.03,2.82,2.61,2.39,2.18,1.97,1.78,1.6,1.43,1.28,1.17,1.08,1.02,1,1.02,1.07,1.15,1.25,1.37,1.49,1.6,1.71,1.81,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P06_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012,0.05,0.1,0.18,0.27,0.38,0.51,0.65,0.81,0.97,1.15,1.35,1.54,1.75,1.97,2.19,2.41,2.65,2.88,3.12,3.35,3.59,3.83,4.06,4.29,4.52,4.75,4.97,5.18,5.38,5.58,5.77,5.95,6.11,6.27,6.42,6.54,6.66,6.76,6.84,6.91,6.96,6.99,7,7,7,7,7,6.82,6.33,5.61,4.76,3.82,2.89,2,1.21,0.54,0,-0.58,-1.01,-1.33,-1.56,-1.73,-1.85,-1.92,-1.97,-1.99,-1.999,-2,-1.96,-1.85,-1.69,-1.49,-1.27,-1.03,-0.8,-0.58,-0.39,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.1,-0.17,-0.27,-0.38,-0.52,-0.67,-0.83,-1.02,-1.22,-1.44,-1.67,-1.92,-2.18,-2.46,-2.75,-3.06,-3.38,-3.71,-4.06,-4.42,-4.79,-5.18,-5.59,-6,-6.42,-6.8,-7.15,-7.47,-7.75,-8,-8.22,-8.41,-8.57,-8.71,-8.82,-8.9,-8.96,-8.99,-9,-9,-9,-9,-9,-8.95,-8.83,-8.63,-8.39,-8.12,-7.82,-7.53,-7.25,-7,-6.78,-6.58,-6.39,-6.22,-6.06,-5.9,-5.75,-5.6,-5.45,-5.31,-5.16,-5,-4.83,-4.69,-4.55,-4.44,-4.34,-4.25,-4.18,-4.12,-4.07,-4.04,-4.02,-4.004,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_P06_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.15,-0.33,-0.57,-0.85,-1.18,-1.55,-1.92,-2.33,-2.74,-3.16,-3.56,-3.96,-4.34,-4.69,-5.01,-5.29,-5.54,-5.73,-5.88,-5.97,-6,-5.991,-5.97,-5.93,-5.88,-5.82,-5.76,-5.69,-5.62,-5.55,-5.47,-5.4,-5.33,-5.26,-5.2,-5.14,-5.09,-5.06,-5.03,-5.007,-5,-5,-5,-5,-5,-5.03,-5.13,-5.26,-5.42,-5.58,-5.74,-5.87,-5.97,-6,-5.999,-5.993,-5.98,-5.96,-5.92,-5.87,-5.81,-5.72,-5.62,-5.48,-5.33,-5.14,-4.91,-4.68,-4.44,-4.21,-3.98,-3.77,-3.57,-3.4,-3.26,-3.15,-3.07,-3.02,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P06_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.013,-0.05,-0.11,-0.19,-0.28,-0.39,-0.52,-0.64,-0.78,-0.91,-1.05,-1.19,-1.32,-1.45,-1.56,-1.67,-1.76,-1.85,-1.91,-1.96,-1.99,-2,-1.987,-1.95,-1.89,-1.81,-1.72,-1.61,-1.48,-1.36,-1.22,-1.09,-0.95,-0.81,-0.68,-0.55,-0.44,-0.33,-0.24,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,-0.03,-0.12,-0.25,-0.4,-0.56,-0.7,-0.83,-0.92,-0.98,-1,-0.86,-0.49,0.01,0.63,1.29,1.98,2.69,3.35,3.98,4.53,5,5.45,5.82,6.13,6.38,6.57,6.71,6.82,6.9,6.95,6.98,6.992,6.999,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7\r\r\nVISIBLE:PARTS_ARM_P01_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P06_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu11.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.38,-0.81,-1.38,-2.06,-2.82,-3.65,-4.51,-5.39,-6.27,-7.12,-7.92,-8.67,-9.33,-9.91,-10.37,-10.71,-10.93,-11,-11,-11,-11,-11,-11,-11,-11,-10.82,-10.32,-9.51,-8.44,-7.16,-5.7,-4.05,-2.35,-0.52,1.33,3.21,5.02,6.82,8.51,10.11,11.54,12.82,13.93,14.81,15.46,15.86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\r\r\nPARAM_ANGLE_Y=0,1.03,3.53,6.59,9.57,11.96,13.49,14,12.75,10.06,6.71,3.22,0.04,-2.59,-4.35,-5,-4.89,-4.54,-3.91,-2.96,-1.69,0,1.98,3.78,5.43,6.93,8.25,9.42,10.41,11.23,11.88,12.38,12.73,12.93,13,12.53,11.22,9.15,6.51,3.38,-0.04,-3.66,-7.34,-10.96,-14.38,-17.51,-20.15,-22.22,-23.53,-24,-23.64,-22.62,-21.03,-18.93,-16.48,-13.65,-10.57,-7.33,-4,-0.67,2.57,5.65,8.48,10.93,13.03,14.62,15.64,16,15.56,14.31,12.39,9.9,7.03,3.86,0.6,-2.73,-5.97,-9.06,-11.83,-14.28,-16.28,-17.75,-18.69,-19,-18.88,-18.56,-18.08,-17.47,-16.8,-16.09,-15.39,-14.74,-14.16,-13.67,-13.31,-13.08,-13,-13,-13,-13\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.66,-1.41,-2.34,-3.38,-4.5,-5.62,-6.66,-7.59,-8.34,-8.82,-9,-8.94,-8.77,-8.5,-8.14,-7.71,-7.19,-6.61,-5.97,-5.29,-4.55,-3.79,-3.01,-2.19,-1.37,-0.53,0.32,1.14,1.96,2.77,3.55,4.31,5.03,5.7,6.33,6.91,7.43,7.89,8.27,8.58,8.81,8.95,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_EYE_L_OPEN=1,0.998,0.992,0.981,0.963,0.94,0.9,0.86,0.82,0.76,0.7,0.48,0.22,0.05,0,0,0,0.18,0.46,0.73,0.92,1,1,1,0.999,0.998,0.998,0.996,0.995,0.994,0.992,0.99,0.988,0.985,0.983,0.98,0.977,0.974,0.97,0.966,0.962,0.958,0.954,0.949,0.944,0.939,0.933,0.928,0.922,0.916,0.909,0.903,0.896,0.889,0.881,0.873,0.865,0.857,0.849,0.84,0.831,0.822,0.812,0.802,0.792,0.781,0.771,0.76,0.748,0.737,0.725,0.712,0.7,0.52,0.25,0.06,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,0.998,0.992,0.981,0.963,0.94,0.9,0.86,0.82,0.76,0.7,0.48,0.22,0.05,0,0,0,0.18,0.46,0.73,0.92,1,1,1,0.999,0.998,0.998,0.996,0.995,0.994,0.992,0.99,0.988,0.985,0.983,0.98,0.977,0.974,0.97,0.966,0.962,0.958,0.954,0.949,0.944,0.939,0.933,0.928,0.922,0.916,0.909,0.903,0.896,0.889,0.881,0.873,0.865,0.857,0.849,0.84,0.831,0.822,0.812,0.802,0.792,0.781,0.771,0.76,0.748,0.737,0.725,0.712,0.7,0.52,0.25,0.06,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.02,0.034,0.051,0.07,0.09,0.11,0.14,0.16,0.18,0.2,0.219,0.236,0.25,0.261,0.268,0.27,0.269,0.266,0.26,0.253,0.244,0.232,0.22,0.206,0.19,0.174,0.156,0.137,0.118,0.097,0.08,0.05,0.03,0.01,-0.01,-0.03,-0.06,-0.08,-0.1,-0.12,-0.141,-0.16,-0.181,-0.199,-0.217,-0.233,-0.249,-0.263,-0.275,-0.287,-0.297,-0.305,-0.311,-0.316,-0.319,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.24,0.27,0.3,0.33,0.36,0.38,0.396,0.406,0.41,0.41,0.408,0.406,0.404,0.401,0.397,0.392,0.387,0.382,0.376,0.37,0.363,0.356,0.349,0.341,0.333,0.326,0.318,0.31,0.302,0.294,0.286,0.279,0.271,0.264,0.257,0.25,0.243,0.237,0.231,0.225,0.22,0.216,0.212,0.208,0.205,0.203,0.201,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.17,0.34,1,1,1,1,1,1,1,1,1,0.91,0,0,0,0,0,0,0,0,0.83,1,1,0.48,1,1,1,0.42,0.21,0,0.15,0.29,1,1,1,1,0.69,0,0.1,0.2,0.1,0,0.41,0.82,1,1,1,1,0.72,0.01,0.99,1,1,1,1,1,1,1,0.996,0,0.002,0.004,0.006,0.008,0.97,1,1,1,1,0.5,1,1,1,0.63,1,1,0.98,0,0.95,1,1,1,1,1,1,1,0.63,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.97,-5.88,-5.75,-5.56,-5.34,-5.07,-4.76,-4.43,-4.07,-3.68,-3.27,-2.85,-2.41,-1.95,-1.49,-1.03,-0.56,-0.09,0.37,0.83,1.28,1.71,2.13,2.54,2.92,3.28,3.61,3.91,4.18,4.42,4.62,4.78,4.9,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,0.23,0.85,1.75,2.81,3.91,4.98,5.88,6.5,6.73,6.09,4.53,2.62,0.76,-0.73,-1.68,-2,-1.999,-1.95,-1.8,-1.46,-0.89,0,1.17,2.33,3.48,4.6,5.64,6.62,7.48,8.23,8.86,9.36,9.71,9.93,10,9.83,9.35,8.62,7.7,6.65,5.52,4.36,3.21,2.09,1,0.18,-0.02,0,0.04,0.31,1,2.07,3.04,3.95,4.79,5.56,6.26,6.91,7.49,8.01,8.47,8.87,9.21,9.49,9.71,9.87,9.97,10,9.78,9.19,8.28,7.14,5.87,4.5,3.13,1.86,0.72,-0.19,-0.78,-1,-0.9,-0.63,-0.22,0.3,0.88,1.5,2.12,2.7,3.22,3.63,3.9,4,4,4,4,4,4,4,4\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.96,-1.86,-1.7,-1.49,-1.25,-0.96,-0.66,-0.33,0,0.33,0.66,0.96,1.25,1.49,1.7,1.86,1.96,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.08,-0.21,-0.34,-0.43,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.49,0.53,0.46,0.29,0.07,-0.15,-0.32,-0.39,-0.36,-0.31,-0.24,-0.17,-0.1,-0.05,-0.01,0,-0.01,-0.04,-0.08,-0.13,-0.17,-0.22,-0.26,-0.29,-0.3,-0.26,-0.19,-0.09,0.01,0.1,0.17,0.22,0.24,0.229,0.2,0.15,0.09,0.03,-0.04,-0.1,-0.17,-0.22,-0.26,-0.3,-0.34,-0.37,-0.4,-0.42,-0.436,-0.451,-0.463,-0.473,-0.48,-0.485,-0.488,-0.49,-0.49,-0.36,-0.15,0.05,0.19,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.08,-0.21,-0.33,-0.42,-0.45,-0.38,-0.21,0.01,0.21,0.38,0.48,0.52,0.45,0.29,0.06,-0.16,-0.32,-0.39,-0.39,-0.39,-0.389,-0.388,-0.386,-0.384,-0.381,-0.377,-0.373,-0.368,-0.361,-0.354,-0.346,-0.336,-0.326,-0.313,-0.3,-0.25,-0.17,-0.08,0.01,0.09,0.16,0.2,0.22,0.21,0.18,0.14,0.09,0.04,-0.03,-0.09,-0.14,-0.19,-0.23,-0.27,-0.3,-0.33,-0.35,-0.373,-0.39,-0.404,-0.415,-0.424,-0.43,-0.435,-0.438,-0.44,-0.44,-0.33,-0.16,0,0.11,0.16,0.154,0.14,0.12,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.975,0.94,0.9,0.85,0.8,0.73,0.67,0.59,0.52,0.44,0.36,0.28,0.2,0.13,0.06,-0.01,-0.07,-0.13,-0.18,-0.22,-0.25,-0.28,-0.295,-0.3,-0.296,-0.286,-0.269,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0,-0.003,-0.01,-0.022,-0.038,-0.056,-0.08,-0.1,-0.13,-0.15,-0.17,-0.2,-0.22,-0.24,-0.262,-0.278,-0.29,-0.297,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.05,0.18,0.37,0.61,0.88,1.17,1.46,1.75,2.03,2.3,2.53,2.73,2.89,3,3.09,3.16,3.24,3.3,3.36,3.42,3.46,3.51,3.55,3.58,3.61,3.63,3.66,3.675,3.691,3.704,3.714,3.722,3.728,3.733,3.736,3.739,3.74,3.74,3.741,3.67,3.47,3.16,2.79,2.37,1.93,1.49,1.08,0.72,0.42,0.19,0.05,0,0.03,0.12,0.26,0.44,0.66,0.9,1.15,1.42,1.7,1.97,2.25,2.51,2.76,2.99,3.2,3.39,3.53,3.64,3.72,3.74,3.61,3.27,2.79,2.23,1.65,1.11,0.65,0.3,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.975,0.95,0.91,0.86,0.8,0.74,0.67,0.6,0.53,0.45,0.37,0.3,0.22,0.15,0.08,0.01,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.266,-0.271,-0.267,-0.258,-0.243,-0.223,-0.2,-0.18,-0.15,-0.12,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.091,-0.11,-0.14,-0.16,-0.18,-0.2,-0.22,-0.236,-0.251,-0.261,-0.268,-0.271,-0.265,-0.251,-0.23,-0.2,-0.17,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.03,0.11,0.23,0.38,0.55,0.74,0.93,1.12,1.3,1.48,1.64,1.79,1.91,2,2.08,2.16,2.23,2.29,2.35,2.41,2.45,2.5,2.54,2.57,2.6,2.63,2.65,2.668,2.684,2.698,2.709,2.718,2.726,2.731,2.735,2.738,2.739,2.74,2.741,2.69,2.54,2.32,2.04,1.74,1.41,1.09,0.79,0.53,0.31,0.14,0.04,0,0.02,0.09,0.19,0.33,0.48,0.66,0.84,1.04,1.24,1.45,1.65,1.84,2.02,2.19,2.35,2.48,2.59,2.67,2.72,2.741,2.65,2.4,2.04,1.63,1.21,0.81,0.48,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu12.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-2.001,-2.005,-2.011,-2.017,-2.023,-2.029,-2.033,-2.035,-2.034,-2.03,-2.021,-2.008,-1.988,-1.96,-1.93,-1.89,-1.84,-1.78,-1.72,-1.64,-1.55,-1.45,-1.34,-1.22,-1.09,-0.94,-0.78,-0.61,-0.42,-0.22,0,0.27,0.6,0.98,1.41,1.88,2.4,2.96,3.55,4.18,4.83,5.51,6.2,6.92,7.63,8.36,9.1,9.84,10.57,11.3,12.02,12.73,13.41,14.07,14.71,15.32,15.89,16.43,16.93,17.39,17.79,18.15,18.44,18.68,18.86,18.96,19,19,19,19,19,19,19,19,19,19,19,18.84,18.37,17.66,16.75,15.67,14.45,13.14,11.79,10.39,8.97,7.59,6.25,4.97,3.8,2.72,1.8,1.05,0.49,0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.59,1.86,3.45,5.1,6.61,7.86,8.69,9,8.33,6.63,4.34,1.66,-1.13,-3.88,-6.48,-8.67,-10.44,-11.58,-12,-11.66,-10.76,-9.4,-7.7,-5.82,-3.82,-1.86,-0.02,1.6,2.97,3.99,4.63,4.85,4.58,3.87,2.85,1.68,0.47,-0.67,-1.63,-2.37,-2.84,-3,-2.76,-2.08,-1.04,0.31,1.87,3.59,5.36,7.17,8.93,10.61,12.11,13.44,14.52,15.32,15.83,16,15.68,14.82,13.5,11.84,10,8,6,4.16,2.5,1.18,0.32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.55,9.42,7.89,6.1,4.25,2.41,0.68,-0.78,-1.96,-2.72,-3,-2.986,-2.89,-2.63,-2.11,-1.27,0,1.57,3.21,4.86,6.45,7.89,9.14,10.13,10.77,11,10.65,9.76,8.56,7.15,5.69,4.25,2.89,1.74,0.82,0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.1,-0.37,-0.82,-1.41,-2.12,-2.97,-3.91,-4.92,-6.01,-7.16,-8.31,-9.5,-10.69,-11.84,-12.99,-14.08,-15.09,-16.03,-16.88,-17.59,-18.18,-18.63,-18.9,-19,-18.91,-18.66,-18.27,-17.76,-17.13,-16.4,-15.59,-14.72,-13.79,-12.79,-11.76,-10.7,-9.6,-8.51,-7.38,-6.28,-5.17,-4.11,-3.04,-2,-0.89,0.14,1.08,1.96,2.75,3.5,4.17,4.79,5.34,5.86,6.31,6.73,7.1,7.43,7.72,7.97,8.19,8.38,8.54,8.68,8.78,8.87,8.93,8.97,8.99,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,8.92,8.71,8.37,7.93,7.39,6.77,6.08,5.34,4.56,3.73,2.9,2.04,1.17,0.33,-0.5,-1.32,-2.08,-2.81,-3.49,-4.1,-4.64,-5.11,-5.48,-5.76,-5.94,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_EYE_L_OPEN=0.65,0.53,0.35,0.17,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,0.999,0.998,0.996,0.994,0.992,0.989,0.985,0.981,0.977,0.972,0.966,0.96,0.953,0.946,0.938,0.93,0.921,0.912,0.902,0.891,0.88,0.868,0.856,0.843,0.829,0.815,0.801,0.785,0.769,0.753,0.736,0.718,0.7,0.52,0.25,0.06,0,0,0,0.11,0.29,0.46,0.58,0.63,0.631,0.631,0.632,0.633,0.633,0.634,0.635,0.635,0.636,0.636,0.637,0.638,0.638,0.639,0.639,0.64,0.64,0.641,0.641,0.642,0.642,0.642,0.643,0.643,0.644,0.644,0.644,0.645,0.645,0.645,0.646,0.646,0.646,0.647,0.647,0.647,0.647,0.648,0.648,0.648,0.648,0.648,0.649,0.649,0.649,0.649,0.649,0.649,0.649,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.6,0.49,0.34,0.21,0.09,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=0.66,0.54,0.35,0.18,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,0.999,0.998,0.996,0.994,0.992,0.989,0.985,0.981,0.977,0.972,0.966,0.96,0.953,0.946,0.938,0.93,0.921,0.912,0.902,0.891,0.88,0.868,0.856,0.843,0.829,0.815,0.801,0.785,0.769,0.753,0.736,0.718,0.7,0.52,0.25,0.06,0,0,0,0.11,0.29,0.45,0.57,0.62,0.621,0.623,0.624,0.626,0.627,0.628,0.629,0.631,0.632,0.633,0.634,0.635,0.636,0.637,0.638,0.639,0.64,0.641,0.642,0.643,0.644,0.645,0.646,0.647,0.647,0.648,0.649,0.65,0.65,0.651,0.651,0.652,0.653,0.653,0.654,0.654,0.655,0.655,0.656,0.656,0.656,0.657,0.657,0.658,0.658,0.658,0.658,0.659,0.659,0.659,0.659,0.659,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.66,0.61,0.49,0.35,0.21,0.1,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,-0.001,-0.002,-0.004,-0.006,-0.009,-0.012,-0.015,-0.019,-0.023,-0.028,-0.033,-0.038,-0.044,-0.05,-0.057,-0.064,-0.071,-0.078,-0.086,-0.094,-0.102,-0.11,-0.119,-0.128,-0.137,-0.147,-0.156,-0.166,-0.176,-0.186,-0.197,-0.207,-0.218,-0.228,-0.239,-0.25,-0.261,-0.272,-0.284,-0.295,-0.306,-0.318,-0.329,-0.341,-0.352,-0.364,-0.375,-0.387,-0.398,-0.409,-0.421,-0.432,-0.443,-0.455,-0.466,-0.477,-0.488,-0.499,-0.509,-0.52,-0.53,-0.54,-0.55,-0.56,-0.57,-0.58,-0.589,-0.598,-0.607,-0.616,-0.624,-0.632,-0.64,-0.648,-0.655,-0.663,-0.669,-0.676,-0.682,-0.688,-0.693,-0.699,-0.703,-0.708,-0.712,-0.716,-0.719,-0.722,-0.724,-0.726,-0.728,-0.729,-0.73,-0.73,-0.725,-0.711,-0.69,-0.66,-0.63,-0.58,-0.54,-0.49,-0.44,-0.39,-0.34,-0.29,-0.24,-0.19,-0.15,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0.72\r\r\nPARAM_BROW_R_Y=0.72\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.28\r\r\nPARAM_BROW_R_FORM=-0.28\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.41,0.81,1,1,1,1,1,1,1,1,0.71,0,0,0,0,0,0,0,0,0,0,0,0.3,0.6,0.3,0,0.82,1,1,1,0.78,0,0.82,1,1,0.78,1,1,1,1,0.68,1,1,1,1,1,0.96,0.1,0.49,0.88,0.73,0.58,0.29,0,0.39,0.77,0.39,0,0.85,1,1,1,1,1,1,0,0.31,0.62,0.44,0.27,0.76,1,1,1,1,1,1,1,1,1,1,1,0.95,0,0,0,0,0,0.36,0.73,1,1,1,0.58,1,1,1,1,1,1,1,0.62,1,1,0.95,0,0.27,0.54,0.27,0,0,0,0.07,0.13,1,1,1,0.5,0.97,1,1,1,1,0.71,0.38,0.05,0.91,1,1,1,1,1,1,1,0.88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.25,-0.47,-0.68,-0.85,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.016,-1.06,-1.14,-1.24,-1.36,-1.5,-1.66,-1.84,-2.03,-2.24,-2.45,-2.66,-2.89,-3.12,-3.35,-3.59,-3.82,-4.05,-4.27,-4.49,-4.7,-4.9,-5.08,-5.26,-5.42,-5.56,-5.69,-5.8,-5.88,-5.95,-5.99,-6,-5.94,-5.79,-5.53,-5.18,-4.77,-4.28,-3.73,-3.15,-2.52,-1.86,-1.19,-0.5,0.19,0.86,1.52,2.15,2.73,3.28,3.77,4.18,4.53,4.79,4.94,5,4.997,4.989,4.974,4.95,4.92,4.88,4.83,4.77,4.7,4.62,4.53,4.42,4.3,4.16,4.01,3.84,3.66,3.46,3.24,3,2.72,2.45,2.18,1.9,1.64,1.38,1.12,0.88,0.64,0.42,0.2,0.01,-0.18,-0.34,-0.49,-0.62,-0.74,-0.83,-0.9,-0.96,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.34,0.67,1.05,1.45,1.84,2.21,2.52,2.78,2.94,3,2.74,2.1,1.22,0.2,-0.86,-1.91,-2.9,-3.73,-4.41,-4.84,-5,-3.8,-1.33,1,2.61,4,5.26,6.35,7.25,8.03,8.67,9.17,9.54,9.8,9.95,10,9.85,9.45,8.83,8.03,7.13,6.13,5.09,4.09,3.12,2.24,1.54,1,0.57,0.19,-0.18,-0.51,-0.82,-1.1,-1.36,-1.59,-1.8,-1.98,-2.15,-2.3,-2.43,-2.54,-2.64,-2.72,-2.79,-2.85,-2.89,-2.93,-2.96,-2.978,-2.991,-2.998,-3,-2.92,-2.71,-2.38,-1.96,-1.5,-1,-0.5,-0.04,0.38,0.71,0.92,1,0.86,0.5,-0.02,-0.62,-1.23,-1.81,-2.3,-2.68,-2.92,-3,-2.98,-2.86,-2.57,-2.04,-1.22,0,1.6,3.16,4.66,6.02,7.22,8.22,9,9.55,9.89,10,9.86,9.47,8.85,8.07,7.14,6.12,5.05,3.95,2.88,1.86,0.93,0.15,-0.47,-0.86,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.11,0.18,0.27,0.37,0.48,0.6,0.73,0.85,0.98,1.11,1.24,1.36,1.48,1.59,1.69,1.77,1.85,1.91,1.96,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.96,1.85,1.68,1.46,1.18,0.88,0.55,0.19,-0.18,-0.56,-0.95,-1.34,-1.71,-2.09,-2.43,-2.76,-3.06,-3.32,-3.55,-3.74,-3.88,-3.97,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,-0.03,-0.1,-0.18,-0.27,-0.35,-0.42,-0.46,-0.48,-0.45,-0.37,-0.25,-0.1,0.06,0.24,0.41,0.57,0.71,0.83,0.92,0.98,1,0.996,0.985,0.966,0.94,0.91,0.88,0.84,0.8,0.75,0.71,0.66,0.61,0.56,0.51,0.46,0.4,0.36,0.31,0.26,0.22,0.18,0.14,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.12,-0.19,-0.26,-0.33,-0.39,-0.43,-0.46,-0.47,-0.44,-0.37,-0.27,-0.16,-0.04,0.07,0.17,0.24,0.28,0.3,0.27,0.21,0.12,0.01,-0.1,-0.21,-0.31,-0.4,-0.47,-0.51,-0.53,-0.516,-0.48,-0.41,-0.33,-0.23,-0.13,-0.02,0.1,0.21,0.31,0.41,0.49,0.56,0.6,0.61,0.59,0.53,0.45,0.36,0.27,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.08,-0.14,-0.2,-0.26,-0.33,-0.38,-0.44,-0.48,-0.51,-0.533,-0.54,-0.5,-0.42,-0.31,-0.2,-0.1,-0.02,0.04,0.06,0.048,0.02,-0.03,-0.09,-0.16,-0.23,-0.31,-0.38,-0.44,-0.49,-0.52,-0.53,-0.5,-0.41,-0.28,-0.13,0.03,0.18,0.31,0.4,0.43,0.415,0.38,0.32,0.25,0.18,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.12,-0.19,-0.26,-0.32,-0.38,-0.42,-0.45,-0.46,-0.43,-0.36,-0.26,-0.15,-0.03,0.08,0.18,0.25,0.29,0.31,0.29,0.23,0.15,0.05,-0.04,-0.14,-0.23,-0.3,-0.37,-0.41,-0.42,-0.408,-0.38,-0.32,-0.26,-0.18,-0.09,0,0.09,0.18,0.27,0.35,0.41,0.47,0.5,0.51,0.492,0.45,0.38,0.3,0.23,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.09,-0.14,-0.21,-0.27,-0.34,-0.4,-0.45,-0.5,-0.53,-0.55,-0.56,-0.52,-0.44,-0.33,-0.23,-0.13,-0.04,0.01,0.03,0.019,-0.01,-0.05,-0.11,-0.17,-0.24,-0.31,-0.37,-0.43,-0.47,-0.5,-0.51,-0.48,-0.4,-0.29,-0.15,-0.01,0.13,0.24,0.32,0.35,0.338,0.31,0.26,0.2,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.022,-0.05,-0.08,-0.11,-0.15,-0.18,-0.21,-0.24,-0.27,-0.285,-0.296,-0.3,-0.296,-0.286,-0.269,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0,-0.006,-0.022,-0.05,-0.08,-0.11,-0.15,-0.18,-0.21,-0.24,-0.27,-0.285,-0.296,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.16,-0.19,-0.22,-0.25,-0.27,-0.286,-0.296,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0,-0.006,-0.022,-0.05,-0.08,-0.11,-0.15,-0.18,-0.21,-0.24,-0.27,-0.285,-0.296,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.66,0.97,1.32,1.68,2.06,2.42,2.77,3.08,3.35,3.56,3.69,3.74,3.67,3.47,3.16,2.79,2.37,1.93,1.49,1.08,0.72,0.42,0.19,0.05,0,0.05,0.18,0.39,0.66,0.97,1.32,1.68,2.06,2.42,2.77,3.08,3.35,3.56,3.69,3.74,3.61,3.27,2.79,2.23,1.65,1.11,0.65,0.3,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.17,0.37,0.61,0.88,1.18,1.51,1.83,2.15,2.46,2.76,3.03,3.27,3.46,3.61,3.71,3.74,3.61,3.27,2.79,2.23,1.65,1.11,0.65,0.3,0.08,0,0.05,0.18,0.39,0.66,0.97,1.32,1.68,2.06,2.42,2.77,3.08,3.35,3.56,3.69,3.74,3.61,3.27,2.79,2.23,1.65,1.11,0.65,0.3,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.02,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.24,-0.257,-0.267,-0.271,-0.267,-0.258,-0.243,-0.223,-0.2,-0.18,-0.15,-0.12,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0,-0.005,-0.02,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.24,-0.257,-0.267,-0.271,-0.265,-0.251,-0.23,-0.2,-0.17,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.013,-0.028,-0.047,-0.07,-0.1,-0.12,-0.15,-0.18,-0.2,-0.22,-0.243,-0.258,-0.267,-0.271,-0.265,-0.251,-0.23,-0.2,-0.17,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,-0.005,-0.02,-0.04,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.24,-0.257,-0.267,-0.271,-0.265,-0.251,-0.23,-0.2,-0.17,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.29,0.48,0.71,0.97,1.23,1.51,1.77,2.03,2.26,2.45,2.61,2.71,2.74,2.69,2.54,2.32,2.04,1.74,1.41,1.09,0.79,0.53,0.31,0.14,0.04,0,0.03,0.13,0.29,0.48,0.71,0.97,1.23,1.51,1.77,2.03,2.26,2.45,2.61,2.71,2.74,2.65,2.4,2.04,1.63,1.21,0.81,0.48,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.13,0.27,0.44,0.65,0.87,1.1,1.34,1.58,1.81,2.02,2.22,2.39,2.54,2.65,2.72,2.74,2.65,2.4,2.04,1.63,1.21,0.81,0.48,0.22,0.06,0,0.03,0.13,0.29,0.48,0.71,0.97,1.23,1.51,1.77,2.03,2.26,2.45,2.61,2.71,2.74,2.65,2.4,2.04,1.63,1.21,0.81,0.48,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu13.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.002,-0.005,-0.009,-0.012,-0.011,-0.006,0.005,0.024,0.05,0.09,0.14,0.21,0.29,0.39,0.51,0.65,0.81,1,1.23,1.51,1.82,2.19,2.58,3,3.43,3.88,4.34,4.8,5.24,5.68,6.1,6.5,6.85,7.18,7.46,7.69,7.85,7.96,8,7.9,7.62,7.19,6.62,5.94,5.18,4.35,3.49,2.61,1.73,0.88,0.08,-0.67,-1.33,-1.91,-2.37,-2.71,-2.93,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.38,-2.22,-2.05,-1.87,-1.69,-1.5,-1.31,-1.13,-0.95,-0.78,-0.62,-0.47,-0.34,-0.22,-0.13,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.03,-0.11,-0.24,-0.42,-0.64,-0.9,-1.21,-1.56,-1.94,-2.36,-2.81,-3.29,-3.79,-4.32,-4.87,-5.45,-6.04,-6.65,-7.28,-7.92,-8.56,-9.23,-9.89,-10.56,-11.24,-11.91,-12.6,-13.26,-13.93,-14.6,-15.25,-15.89,-16.53,-17.15,-17.76,-18.34,-18.91,-19.46,-19.98,-20.49,-20.97,-21.41,-21.83,-22.22,-22.58,-22.89,-23.18,-23.42,-23.62,-23.79,-23.9,-23.98,-24,-23.97,-23.9,-23.77,-23.59,-23.36,-23.07,-22.73,-22.33,-21.88,-21.38,-20.82,-20.21,-19.52,-18.79,-17.99,-17.13,-16.22,-15.23,-14.19,-13.08,-11.92,-10.67,-9.36,-7.99,-6.53,-5.01,-3.4,-1.74,0,1.94,4.01,6.1,8.13,9.97,11.59,12.87,13.7,14,13.07,10.58,6.98,2.71,-1.71,-5.98,-9.58,-12.07,-13,-12.51,-11.21,-9.32,-7.09,-4.78,-2.54,-0.65,0.65,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14,1.14\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.92,4.72,4.41,4.03,3.59,3.1,2.59,2.07,1.54,1.05,0.58,0.14,-0.24,-0.55,-0.79,-0.95,-1,-0.995,-0.98,-0.96,-0.93,-0.89,-0.84,-0.79,-0.74,-0.68,-0.62,-0.56,-0.5,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.024,0.05,0.09,0.13,0.18,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.73,0.78,0.83,0.87,0.9,0.92,0.935,0.94,0.87,0.7,0.5,0.3,0.14,0.03,0,0.003,0.01,0.021,0.035,0.05,0.065,0.081,0.096,0.111,0.124,0.134,0.143,0.148,0.15,0.149,0.148,0.145,0.141,0.136,0.131,0.125,0.118,0.111,0.104,0.096,0.088,0.08,0.072,0.064,0.056,0.048,0.041,0.034,0.028,0.021,0.016,0.011,0.007,0.004,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0.001,0.002,0.002,0.003,0.005,0.006,0.007,0.009,0.01,0.012,0.014,0.015,0.017,0.019,0.021,0.023,0.025,0.026,0.028,0.03,0.031,0.033,0.034,0.035,0.037,0.038,0.038,0.039,0.04,0.04,0.04,0.037,0.03,0.021,0.013,0.006,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0.23,0.46,1,1,1,1,1,1,0.78,0.02,0.15,0.28,0.24,0.19,0.14,0.09,0.05,0,0.08,0.16,0.32,0.48,0.32,0.16,0.62,1,0.58,0.09,0.11,0.125,0.75,1,0.75,0.13,1,1,1,1,1,1,1,1,1,1,0.88,0,0.97,1,1,0.06,0.11,0.15,0.49,0.83,1,1,1,1,1,0.26,0.19,0.12,0.94,1,1,1,1,1,1,1,0.94,0,0.84,1,1,1,0.87,0.53,1,1,1,1,1,1,1,1,1,1,1,1,0.82,0.1,0.59,1,1,1,1,1,1,1,1,1,1,1,1,1,0.67,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0.014,0.06,0.13,0.22,0.35,0.5,0.68,0.89,1.13,1.39,1.68,2,2.33,2.64,2.94,3.22,3.49,3.75,3.99,4.22,4.44,4.64,4.82,5,5.16,5.3,5.44,5.56,5.66,5.75,5.83,5.89,5.94,5.97,5.993,6,5.94,5.76,5.49,5.12,4.69,4.21,3.68,3.13,2.57,2.01,1.47,0.96,0.48,0.06,-0.3,-0.6,-0.82,-0.95,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.06,-0.22,-0.46,-0.76,-1.1,-1.46,-1.81,-2.13,-2.42,-2.66,-2.85,-2.96,-3,-2.96,-2.86,-2.7,-2.49,-2.23,-1.94,-1.61,-1.26,-0.89,-0.51,-0.13,0.25,0.61,0.95,1.27,1.55,1.8,2,2.17,2.32,2.45,2.57,2.66,2.74,2.81,2.86,2.9,2.94,2.96,2.98,2.991,2.998,3.001,3.002,3.001,3,3,2.95,2.82,2.61,2.35,2.06,1.73,1.39,1.05,0.7,0.37,0.05,-0.24,-0.49,-0.7,-0.86,-0.96,-1,-1,-1,-0.997,-0.989,-0.974,-0.95,-0.92,-0.87,-0.81,-0.73,-0.63,-0.51,-0.36,-0.2,0,0.41,1.06,1.83,2.69,3.54,4.37,5.13,5.77,6.28,6.61,6.73,6.3,5.17,3.52,1.57,-0.45,-2.4,-4.04,-5.18,-5.61,-5.2,-4.33,-3.24,-2.12,-1.09,-0.23,0.33,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.55\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.07,0.14,0.24,0.35,0.48,0.62,0.76,0.91,1.06,1.2,1.34,1.48,1.6,1.71,1.81,1.89,1.95,1.99,2,1.988,1.95,1.9,1.83,1.74,1.64,1.52,1.4,1.26,1.12,0.98,0.83,0.67,0.52,0.37,0.21,0.07,-0.08,-0.22,-0.35,-0.47,-0.58,-0.69,-0.78,-0.85,-0.92,-0.96,-0.99,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.12,-0.22,-0.31,-0.39,-0.44,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.49,0.53,0.43,0.21,-0.06,-0.34,-0.59,-0.81,-0.95,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.2,-0.29,-0.37,-0.41,-0.43,-0.37,-0.23,-0.05,0.12,0.26,0.35,0.38,0.29,0.09,-0.15,-0.4,-0.63,-0.83,-0.95,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.34,0.67,1.05,1.45,1.84,2.21,2.52,2.78,2.94,3,2.9,2.66,2.33,1.95,1.55,1.16,0.79,0.48,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.23,0.44,0.7,0.96,1.23,1.47,1.68,1.85,1.96,2,1.94,1.77,1.56,1.3,1.04,0.77,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu14.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.02,0.09,0.2,0.34,0.52,0.73,0.97,1.23,1.51,1.81,2.13,2.46,2.81,3.15,3.5,3.85,4.19,4.54,4.87,5.19,5.49,5.77,6.03,6.27,6.48,6.66,6.8,6.91,6.98,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.996,6.982,6.96,6.93,6.89,6.85,6.8,6.75,6.69,6.62,6.55,6.48,6.4,6.32,6.23,6.15,6.06,5.97,5.88,5.79,5.71,5.62,5.53,5.45,5.36,5.28,5.21,5.13,5.06,5,4.94,4.88,4.83,4.79,4.75,4.71,4.68,4.65,4.63,4.6,4.58,4.56,4.53,4.51,4.49,4.46,4.43,4.4,4.37,4.33,4.29,4.24,4.19,4.13,4.07,4,3.92,3.83,3.73,3.63,3.52,3.41,3.3,3.18,3.06,2.93,2.8,2.67,2.54,2.41,2.28,2.15,2.02,1.89,1.76,1.63,1.5,1.38,1.26,1.14,1.03,0.92,0.81,0.71,0.61,0.52,0.44,0.36,0.29,0.23,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.79,-5.72,-9.2,-12.8,-16.28,-19.21,-21.24,-22,-21.8,-21.24,-20.38,-19.24,-17.89,-16.36,-14.7,-12.99,-11.23,-9.46,-7.76,-6.16,-4.67,-3.34,-2.19,-1.26,-0.58,-0.15,0,-0.28,-1.06,-2.29,-3.86,-5.72,-7.76,-9.91,-12.09,-14.24,-16.28,-18.14,-19.71,-20.94,-21.72,-22,-22,-21.998,-21.992,-21.979,-21.96,-21.92,-21.87,-21.8,-21.72,-21.61,-21.47,-21.32,-21.13,-20.92,-20.67,-20.4,-20.09,-19.74,-19.36,-18.94,-18.49,-18,-17.03,-15.38,-13.15,-10.46,-7.46,-4.23,-0.96,2.32,5.49,8.49,11.16,13.51,15.42,16.82,17.7,18,17.56,16.42,14.75,12.69,10.41,8.01,5.59,3.24,1.04,-0.94,-2.58,-3.88,-4.71,-5,-4.75,-4.11,-3.16,-2,-0.71,0.65,2.01,3.34,4.58,5.71,6.63,7.36,7.84,8,7.71,6.97,5.88,4.54,3.05,1.49,-0.09,-1.63,-3.06,-4.35,-5.42,-6.27,-6.81,-7,-6.91,-6.64,-6.18,-5.53,-4.7,-3.67,-2.47,-1.1,0.42,2.12,3.95,5.92,8,10.82,13.26,15.35,17.18,18.72,20.02,21.1,21.92,22.52,22.88,23,22.48,21.09,18.99,16.37,13.47,10.38,7.35,4.52,2.01,-0.09,-1.67,-2.66,-3,-3,-3,-3,-3,-2.77,-2.23,-1.5,-0.77,-0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.04,-0.17,-0.37,-0.65,-0.99,-1.39,-1.85,-2.36,-2.91,-3.5,-4.12,-4.78,-5.45,-6.14,-6.84,-7.55,-8.27,-8.97,-9.68,-10.36,-11.03,-11.67,-12.28,-12.87,-13.41,-13.92,-14.38,-14.78,-15.14,-15.44,-15.68,-15.86,-15.96,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.93,-15.73,-15.42,-15,-14.49,-13.89,-13.21,-12.46,-11.67,-10.81,-9.93,-9.01,-8.06,-7.09,-6.11,-5.13,-4.17,-3.21,-2.27,-1.36,-0.48,0.37,1.15,1.89,2.56,3.16,3.7,4.15,4.51,4.78,4.94,5,4.97,4.89,4.75,4.56,4.33,4.07,3.76,3.43,3.07,2.68,2.28,1.86,1.43,0.99,0.55,0.12,-0.31,-0.74,-1.15,-1.55,-1.93,-2.29,-2.62,-2.92,-3.19,-3.43,-3.63,-3.79,-3.9,-3.98,-4,-4,-3.999,-3.995,-3.986,-3.97,-3.95,-3.91,-3.87,-3.81,-3.74,-3.66,-3.55,-3.43,-3.3,-3.14,-2.96,-2.76,-2.53,-2.28,-2,-1.64,-1.23,-0.81,-0.35,0.11,0.59,1.06,1.53,1.99,2.43,2.86,3.26,3.63,3.96,4.26,4.52,4.72,4.87,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,-0.001,-0.005,-0.01,-0.017,-0.026,-0.036,-0.048,-0.06,-0.074,-0.088,-0.102,-0.117,-0.133,-0.148,-0.163,-0.179,-0.193,-0.208,-0.222,-0.235,-0.247,-0.258,-0.269,-0.278,-0.285,-0.292,-0.296,-0.299,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.28,-0.22,-0.15,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.003,-0.013,-0.029,-0.05,-0.07,-0.1,-0.14,-0.17,-0.21,-0.25,-0.29,-0.34,-0.38,-0.42,-0.47,-0.51,-0.55,-0.6,-0.64,-0.67,-0.71,-0.74,-0.77,-0.8,-0.82,-0.836,-0.849,-0.857,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.86,-0.8,-0.64,-0.43,-0.22,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0.72\r\r\nPARAM_BROW_R_Y=0.72\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.28\r\r\nPARAM_BROW_R_FORM=-0.28\r\r\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.96,-0.91,-0.85,-0.78,-0.69,-0.59,-0.48,-0.37,-0.25,-0.13,0,0.13,0.25,0.37,0.48,0.59,0.69,0.78,0.85,0.91,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.62,1,1,0.93,0.77,0.61,1,1,1,0.62,1,1,1,0.48,1,1,1,1,1,1,0.93,0,0.97,1,0.97,0,0.28,0.55,0.55,0.549,1,1,1,1,0.96,0,0.25,0.51,0.97,1,1,1,1,0.58,0.89,1,1,1,1,0.61,0.77,0.93,0.96,1,1,1,1,1,1,1,1,1,0.72,0.37,0.02,0.021,0.019,0.017,0.015,0.013,0.011,0.009,0.006,0.004,0.002,0,0.32,0.64,0.57,0.49,1,1,0.87,0,0.3,0.6,0.3,0,0.84,1,1,0.57,1,1,1,1,0.93,0.62,1,1,0.84,0,0.34,0.68,0.36,0.05,0.02,0,0.85,1,1,1,1,1,0.73,0,0.93,1,0.93,0,0.86,1,1,1,1,1,1,1,1,1,0.96,0,0,0,0,0,0.98,1,0.98,0,0.14,0.28,0.42,0.56,0.28,0,0.98,1,1,0.31,0.15,0,0.31,0.61,1,1,1,0.55,1,1,1,1,1,1,1,0.89,0.45,0,0.78,1,1,1,1,1,1,1,1,1,0.98,0.49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.25,-0.51,-0.81,-1.12,-1.41,-1.65,-1.84,-1.96,-2,-1.93,-1.73,-1.44,-1.05,-0.6,-0.08,0.47,1.04,1.63,2.22,2.8,3.37,3.91,4.4,4.85,5.24,5.56,5.79,5.95,6,5.994,5.976,5.95,5.91,5.85,5.79,5.71,5.62,5.53,5.41,5.29,5.16,5.01,4.85,4.69,4.5,4.31,4.11,3.89,3.66,3.41,3.16,2.89,2.61,2.31,2,1.64,1.31,1,0.74,0.51,0.32,0.18,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.32,-1.13,-2.22,-3.5,-4.82,-6.13,-7.37,-8.42,-9.26,-9.8,-10,-9.83,-9.33,-8.59,-7.63,-6.49,-5.21,-3.84,-2.41,-0.94,0.56,2.01,3.42,4.77,6,7.13,8.1,8.9,9.49,9.87,10,9.71,8.97,7.88,6.54,5.05,3.49,1.91,0.37,-1.06,-2.35,-3.42,-4.27,-4.81,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0.04,0.14,0.31,0.52,0.77,1.04,1.32,1.61,1.88,2.15,2.39,2.6,2.77,2.89,2.97,3,2.94,2.79,2.58,2.31,2.01,1.7,1.38,1.07,0.79,0.53,0.32,0.15,0.04,0,0.11,0.43,0.93,1.57,2.31,3.12,3.96,4.82,5.65,6.45,7.16,7.79,8.3,8.68,8.92,9,8.89,8.57,8.06,7.42,6.66,5.83,4.95,4.05,3.17,2.34,1.58,0.94,0.43,0.11,0,0,0,0,0,0,0.12,0.44,0.94,1.56,2.25,3,3.71,4.33,4.89,5.37,5.77,6.12,6.41,6.63,6.8,6.91,6.98,7,6.85,6.42,5.75,4.9,3.88,2.77,1.6,0.4,-0.77,-1.88,-2.9,-3.75,-4.42,-4.85,-5,-4.94,-4.76,-4.48,-4.12,-3.7,-3.24,-2.75,-2.25,-1.76,-1.3,-0.88,-0.52,-0.24,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.001,-0.006,-0.013,-0.023,-0.036,-0.05,-0.068,-0.088,-0.11,-0.13,-0.16,-0.19,-0.22,-0.25,-0.28,-0.32,-0.35,-0.39,-0.43,-0.47,-0.51,-0.55,-0.59,-0.63,-0.68,-0.72,-0.77,-0.81,-0.86,-0.9,-0.95,-0.99,-1.04,-1.09,-1.13,-1.18,-1.22,-1.27,-1.31,-1.35,-1.4,-1.44,-1.48,-1.52,-1.56,-1.6,-1.63,-1.67,-1.7,-1.74,-1.77,-1.8,-1.83,-1.85,-1.88,-1.9,-1.92,-1.937,-1.954,-1.967,-1.979,-1.988,-1.995,-1.999,-2,-2,-2,-1.997,-1.99,-1.976,-1.95,-1.92,-1.88,-1.82,-1.75,-1.67,-1.57,-1.45,-1.32,-1.17,-1,-0.72,-0.39,0,0.42,0.85,1.28,1.7,2.09,2.45,2.76,3.02,3.22,3.35,3.39,3.376,3.32,3.24,3.12,2.98,2.8,2.61,2.39,2.14,1.88,1.61,1.32,1.02,0.71,0.39,0.06,-0.27,-0.61,-0.94,-1.27,-1.6,-1.92,-2.23,-2.53,-2.82,-3.1,-3.36,-3.6,-3.82,-4.01,-4.19,-4.33,-4.45,-4.53,-4.59,-4.606,-4.59,-4.54,-4.47,-4.37,-4.25,-4.1,-3.93,-3.75,-3.55,-3.33,-3.1,-2.86,-2.61,-2.36,-2.09,-1.82,-1.55,-1.28,-1,-0.73,-0.46,-0.19,0.07,0.32,0.57,0.81,1.03,1.25,1.45,1.63,1.8,1.95,2.08,2.19,2.28,2.34,2.38,2.394,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39,2.39\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.004,-0.013,-0.028,-0.047,-0.07,-0.09,-0.11,-0.13,-0.152,-0.167,-0.176,-0.18,-0.177,-0.168,-0.154,-0.134,-0.11,-0.09,-0.06,-0.03,0.01,0.04,0.07,0.1,0.14,0.17,0.2,0.22,0.24,0.263,0.279,0.29,0.298,0.3,0.29,0.26,0.23,0.18,0.12,0.07,0.01,-0.04,-0.09,-0.13,-0.16,-0.174,-0.18,-0.173,-0.154,-0.13,-0.1,-0.06,-0.03,0.01,0.05,0.08,0.11,0.14,0.17,0.19,0.22,0.237,0.255,0.271,0.285,0.297,0.307,0.316,0.324,0.33,0.336,0.34,0.343,0.346,0.348,0.349,0.35,0.35,0.348,0.341,0.332,0.319,0.303,0.285,0.265,0.24,0.22,0.2,0.17,0.15,0.12,0.1,0.07,0.05,0.02,0,-0.02,-0.04,-0.06,-0.08,-0.102,-0.122,-0.14,-0.159,-0.176,-0.194,-0.21,-0.227,-0.243,-0.259,-0.274,-0.289,-0.304,-0.319,-0.334,-0.349,-0.363,-0.378,-0.392,-0.407,-0.422,-0.436,-0.451,-0.466,-0.481,-0.497,-0.513,-0.528,-0.545,-0.562,-0.578,-0.596,-0.614,-0.632,-0.651,-0.67,-0.7,-0.72,-0.76,-0.79,-0.82,-0.85,-0.88,-0.91,-0.93,-0.96,-0.974,-0.988,-0.997,-1,-0.98,-0.93,-0.85,-0.76,-0.67,-0.57,-0.47,-0.38,-0.3,-0.23,-0.17,-0.12,-0.08,-0.05,-0.029,-0.016,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.006,-0.024,-0.05,-0.08,-0.12,-0.16,-0.19,-0.23,-0.26,-0.28,-0.304,-0.316,-0.32,-0.316,-0.304,-0.285,-0.26,-0.23,-0.19,-0.15,-0.11,-0.06,-0.01,0.03,0.08,0.13,0.18,0.23,0.27,0.32,0.36,0.39,0.42,0.45,0.47,0.487,0.497,0.5,0.48,0.42,0.34,0.24,0.13,0.01,-0.11,-0.23,-0.33,-0.43,-0.51,-0.57,-0.62,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63,-0.63\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.5,0.488,0.45,0.4,0.33,0.24,0.14,0.03,-0.09,-0.21,-0.34,-0.47,-0.6,-0.72,-0.84,-0.95,-1.05,-1.14,-1.21,-1.26,-1.3,-1.307,-1.28,-1.21,-1.11,-0.97,-0.83,-0.67,-0.52,-0.38,-0.25,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.496,0.484,0.465,0.44,0.41,0.37,0.33,0.28,0.23,0.17,0.11,0.05,-0.01,-0.08,-0.14,-0.21,-0.28,-0.34,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.76,-0.8,-0.85,-0.89,-0.92,-0.95,-0.97,-0.987,-0.997,-1,-0.994,-0.978,-0.95,-0.92,-0.88,-0.83,-0.77,-0.71,-0.65,-0.58,-0.5,-0.43,-0.36,-0.28,-0.21,-0.14,-0.07,0,0.06,0.12,0.17,0.22,0.26,0.3,0.33,0.36,0.39,0.41,0.429,0.446,0.46,0.471,0.48,0.487,0.492,0.496,0.498,0.5,0.5,0.496,0.483,0.463,0.44,0.41,0.37,0.33,0.29,0.25,0.21,0.17,0.13,0.09,0.06,0.04,0.017,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.009,-0.03,-0.07,-0.12,-0.19,-0.26,-0.34,-0.42,-0.51,-0.6,-0.7,-0.79,-0.88,-0.96,-1.04,-1.11,-1.18,-1.23,-1.27,-1.29,-1.301,-1.27,-1.21,-1.1,-0.97,-0.82,-0.67,-0.52,-0.38,-0.25,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.498,0.492,0.481,0.468,0.451,0.43,0.41,0.38,0.35,0.32,0.29,0.26,0.23,0.19,0.16,0.12,0.09,0.05,0.02,-0.02,-0.05,-0.08,-0.11,-0.14,-0.17,-0.2,-0.22,-0.24,-0.257,-0.272,-0.284,-0.293,-0.298,-0.3,-0.299,-0.296,-0.291,-0.285,-0.276,-0.265,-0.253,-0.238,-0.221,-0.202,-0.18,-0.16,-0.13,-0.1,-0.07,-0.04,0,0.04,0.08,0.12,0.16,0.19,0.23,0.26,0.29,0.32,0.35,0.37,0.39,0.413,0.431,0.447,0.461,0.473,0.483,0.49,0.496,0.499,0.5,0.494,0.477,0.45,0.42,0.38,0.34,0.3,0.26,0.21,0.17,0.13,0.1,0.06,0.04,0.017,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.06,0.24,0.52,0.88,1.3,1.76,2.25,2.75,3.24,3.7,4.12,4.48,4.76,4.94,5,4.999,4.997,4.993,4.986,4.975,4.959,4.94,4.91,4.88,4.84,4.79,4.74,4.67,4.6,4.51,4.42,4.31,4.19,4.05,3.9,3.74,3.51,3.21,2.85,2.46,2.05,1.64,1.25,0.9,0.59,0.34,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.016,0.06,0.13,0.22,0.33,0.44,0.58,0.71,0.86,1.01,1.16,1.31,1.46,1.6,1.74,1.88,2,2.13,2.25,2.36,2.47,2.57,2.67,2.77,2.85,2.93,3.01,3.08,3.15,3.21,3.27,3.33,3.38,3.42,3.46,3.5,3.54,3.57,3.6,3.62,3.65,3.666,3.683,3.698,3.71,3.72,3.728,3.733,3.737,3.74,3.741,3.69,3.56,3.35,3.08,2.77,2.42,2.06,1.68,1.32,0.97,0.66,0.39,0.18,0.05,0,0.01,0.04,0.09,0.15,0.22,0.31,0.41,0.52,0.63,0.75,0.87,1,1.13,1.25,1.37,1.48,1.59,1.69,1.78,1.85,1.91,1.96,1.99,2,1.97,1.9,1.79,1.65,1.48,1.29,1.1,0.9,0.71,0.52,0.35,0.21,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.985,0.94,0.87,0.78,0.67,0.54,0.4,0.25,0.09,-0.07,-0.23,-0.4,-0.56,-0.71,-0.85,-0.98,-1.09,-1.18,-1.25,-1.29,-1.307,-1.28,-1.21,-1.11,-0.97,-0.83,-0.67,-0.52,-0.38,-0.25,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.496,0.484,0.465,0.44,0.41,0.37,0.33,0.28,0.23,0.17,0.11,0.05,-0.01,-0.08,-0.14,-0.21,-0.28,-0.34,-0.41,-0.47,-0.53,-0.59,-0.65,-0.71,-0.76,-0.8,-0.85,-0.89,-0.92,-0.95,-0.97,-0.987,-0.997,-1,-0.994,-0.978,-0.95,-0.92,-0.88,-0.83,-0.77,-0.71,-0.65,-0.58,-0.5,-0.43,-0.36,-0.28,-0.21,-0.14,-0.07,0,0.06,0.12,0.17,0.22,0.26,0.3,0.33,0.36,0.39,0.41,0.429,0.446,0.46,0.471,0.48,0.487,0.492,0.496,0.498,0.5,0.5,0.496,0.483,0.463,0.44,0.41,0.37,0.33,0.29,0.25,0.21,0.17,0.13,0.09,0.06,0.04,0.017,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.009,-0.03,-0.07,-0.12,-0.19,-0.26,-0.34,-0.42,-0.51,-0.6,-0.7,-0.79,-0.88,-0.96,-1.04,-1.11,-1.18,-1.23,-1.27,-1.29,-1.301,-1.27,-1.21,-1.1,-0.97,-0.82,-0.67,-0.52,-0.38,-0.25,-0.15,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.498,0.492,0.482,0.469,0.452,0.433,0.41,0.39,0.36,0.33,0.3,0.27,0.24,0.2,0.17,0.14,0.1,0.07,0.03,0,-0.03,-0.06,-0.09,-0.12,-0.15,-0.17,-0.19,-0.212,-0.229,-0.244,-0.255,-0.264,-0.269,-0.271,-0.27,-0.268,-0.264,-0.259,-0.251,-0.242,-0.231,-0.219,-0.204,-0.187,-0.168,-0.15,-0.12,-0.1,-0.07,-0.03,0,0.04,0.08,0.12,0.15,0.19,0.22,0.25,0.28,0.31,0.34,0.36,0.39,0.41,0.428,0.444,0.459,0.471,0.482,0.49,0.495,0.499,0.5,0.494,0.477,0.45,0.42,0.38,0.34,0.3,0.26,0.21,0.17,0.13,0.1,0.06,0.04,0.017,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.98,-0.9,-0.79,-0.64,-0.46,-0.26,-0.03,0.21,0.47,0.74,1,1.27,1.53,1.77,2,2.2,2.39,2.53,2.64,2.72,2.74,2.69,2.54,2.32,2.04,1.74,1.41,1.09,0.79,0.53,0.31,0.14,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.33,0.4,0.47,0.55,0.63,0.71,0.81,0.9,1,1.11,1.21,1.31,1.41,1.5,1.59,1.68,1.76,1.84,1.92,1.99,2.06,2.12,2.18,2.24,2.29,2.34,2.39,2.44,2.48,2.51,2.55,2.58,2.61,2.64,2.66,2.678,2.695,2.709,2.72,2.729,2.736,2.739,2.741,2.71,2.61,2.45,2.26,2.03,1.77,1.51,1.23,0.97,0.71,0.48,0.29,0.13,0.03,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu15.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.06,-0.24,-0.52,-0.89,-1.35,-1.88,-2.49,-3.15,-3.86,-4.6,-5.39,-6.19,-6.99,-7.81,-8.61,-9.39,-10.17,-10.9,-11.6,-12.25,-12.85,-13.38,-13.85,-14.26,-14.57,-14.8,-14.95,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-14.95,-14.81,-14.58,-14.27,-13.89,-13.44,-12.94,-12.38,-11.78,-11.14,-10.46,-9.76,-9.05,-8.32,-7.59,-6.86,-6.14,-5.44,-4.75,-4.08,-3.45,-2.86,-2.3,-1.79,-1.34,-0.95,-0.62,-0.36,-0.16,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.17,0.38,0.65,0.99,1.4,1.87,2.39,2.96,3.57,4.22,4.91,5.61,6.34,7.09,7.85,8.62,9.4,10.18,10.94,11.71,12.45,13.17,13.87,14.55,15.19,15.79,16.35,16.88,17.35,17.76,18.13,18.43,18.68,18.86,18.96,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19\r\r\nPARAM_ANGLE_Y=0,-0.1,-0.41,-0.89,-1.54,-2.34,-3.27,-4.32,-5.47,-6.7,-7.98,-9.35,-10.73,-12.12,-13.53,-14.92,-16.28,-17.63,-18.9,-20.1,-21.23,-22.27,-23.19,-24.01,-24.71,-25.26,-25.66,-25.92,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26.03,-26.1,-26.22,-26.38,-26.57,-26.8,-27.04,-27.3,-27.58,-27.86,-28.14,-28.42,-28.7,-28.96,-29.2,-29.43,-29.62,-29.78,-29.9,-29.97,-30,-29.993,-29.97,-29.92,-29.84,-29.72,-29.57,-29.37,-29.12,-28.82,-28.46,-28.05,-27.56,-27,-26.38,-25.67,-24.88,-24,-22.14,-19.07,-15.15,-10.93,-6.68,-2.8,0.46,2.92,4.46,5,3.8,0.64,-3.92,-9.13,-14.55,-19.59,-23.9,-27.19,-29.27,-30,-29.55,-28.42,-26.89,-25.1,-23.25,-21.41,-19.68,-18.22,-17.04,-16.28,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-15.66,-14.76,-13.46,-11.85,-10.06,-8.18,-6.29,-4.45,-2.73,-1.18,0.11,1.12,1.77,2,1.6,0.52,-1.13,-3.18,-5.54,-8.13,-10.88,-13.63,-16.43,-19.08,-21.59,-23.91,-25.95,-27.62,-28.9,-29.71,-30,-29.85,-29.43,-28.79,-27.91,-26.85,-25.63,-24.31,-22.86,-21.34,-19.77,-18.23,-16.66,-15.14,-13.69,-12.37,-11.15,-10.09,-9.21,-8.57,-8.15,-8,-8.55,-9.99,-12.08,-14.46,-16.94,-19.24,-21.21,-22.72,-23.67,-24,-23.74,-23.1,-22.22,-21.2,-20.14,-19.09,-18.1,-17.27,-16.59,-16.16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16\r\r\nPARAM_ANGLE_Z=0,-0.03,-0.11,-0.23,-0.4,-0.62,-0.87,-1.16,-1.48,-1.82,-2.19,-2.58,-2.99,-3.41,-3.84,-4.28,-4.72,-5.17,-5.61,-6.05,-6.47,-6.89,-7.29,-7.67,-8.04,-8.38,-8.7,-8.99,-9.24,-9.46,-9.65,-9.8,-9.91,-9.98,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10.04,-10.14,-10.29,-10.5,-10.75,-11.02,-11.33,-11.64,-11.96,-12.28,-12.59,-12.88,-13.15,-13.39,-13.6,-13.77,-13.9,-13.97,-14,-13.984,-13.93,-13.85,-13.73,-13.57,-13.37,-13.13,-12.85,-12.52,-12.16,-11.75,-11.3,-10.81,-10.28,-9.7,-9.08,-8.43,-7.73,-7,-5.93,-4.99,-4.14,-3.41,-2.82,-2.38,-2.1,-2,-2.29,-3.01,-3.98,-5.13,-6.31,-7.48,-8.59,-9.52,-10.28,-10.76,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.94,-10.86,-10.61,-10.22,-9.7,-9.07,-8.34,-7.51,-6.62,-5.67,-4.67,-3.65,-2.62,-1.59,-0.59,0.39,1.33,2.2,3,3.76,4.43,5.02,5.55,6.01,6.4,6.74,7.03,7.26,7.46,7.61,7.74,7.83,7.89,7.94,7.97,7.99,7.998,8,7.87,7.52,7.01,6.39,5.69,4.96,4.22,3.51,2.84,2.24,1.74,1.34,1.09,1,1.1,1.34,1.71,2.15,2.65,3.17,3.7,4.21,4.69,5.12,5.47,5.76,5.94,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_EYE_L_OPEN=0.7,0.7,0.7,0.699,0.698,0.697,0.696,0.695,0.694,0.692,0.691,0.689,0.688,0.686,0.684,0.683,0.681,0.68,0.678,0.677,0.676,0.674,0.673,0.672,0.671,0.671,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.51,0.24,0.06,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.999,0.999,0.999,0.998,0.998,0.997,0.996,0.996,0.995,0.994,0.993,0.992,0.991,0.99,0.988,0.987,0.986,0.984,0.983,0.981,0.979,0.977,0.976,0.974,0.972,0.969,0.967,0.965,0.963,0.96,0.958,0.955,0.952,0.95,0.947,0.944,0.941,0.938,0.935,0.931,0.928,0.924,0.921,0.917,0.914,0.91,0.906,0.902,0.898,0.894,0.89,0.886,0.881,0.877,0.872,0.867,0.863,0.858,0.853,0.848,0.843,0.838,0.833,0.827,0.822,0.816,0.81,0.805,0.799,0.793,0.787,0.781,0.775,0.768,0.762,0.755,0.749,0.742,0.735,0.728,0.721,0.714,0.707,0.7,0.692,0.684,0.677,0.67,0.663,0.656,0.649,0.643,0.636,0.63,0.625,0.619,0.614,0.61,0.605,0.601,0.597,0.594,0.591,0.588,0.586,0.584,0.582,0.581,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.7,0.7,0.7,0.699,0.699,0.698,0.697,0.697,0.696,0.695,0.694,0.693,0.692,0.691,0.69,0.689,0.687,0.686,0.685,0.685,0.684,0.683,0.682,0.682,0.681,0.681,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.52,0.25,0.06,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,0.999,0.999,0.999,0.998,0.998,0.997,0.996,0.996,0.995,0.994,0.993,0.992,0.991,0.989,0.988,0.987,0.985,0.984,0.982,0.98,0.979,0.977,0.975,0.973,0.971,0.969,0.966,0.964,0.962,0.959,0.957,0.954,0.951,0.949,0.946,0.943,0.94,0.937,0.933,0.93,0.927,0.923,0.92,0.916,0.912,0.909,0.905,0.901,0.897,0.893,0.888,0.884,0.88,0.875,0.871,0.866,0.861,0.856,0.852,0.847,0.841,0.836,0.831,0.826,0.82,0.815,0.809,0.803,0.798,0.792,0.786,0.78,0.774,0.767,0.761,0.755,0.748,0.742,0.735,0.728,0.721,0.714,0.707,0.7,0.692,0.685,0.678,0.671,0.664,0.658,0.651,0.645,0.64,0.634,0.629,0.624,0.62,0.616,0.612,0.608,0.605,0.602,0.599,0.597,0.595,0.593,0.592,0.591,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_BALL_X=0,0.003,0.012,0.026,0.046,0.07,0.1,0.13,0.16,0.2,0.24,0.28,0.33,0.37,0.42,0.46,0.51,0.55,0.6,0.64,0.68,0.72,0.76,0.8,0.83,0.86,0.88,0.9,0.918,0.93,0.937,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.26,0,0,0.001,0.003,0.006,0.009,0.012,0.017,0.021,0.026,0.032,0.038,0.044,0.051,0.058,0.065,0.073,0.08,0.088,0.096,0.104,0.113,0.121,0.129,0.137,0.145,0.153,0.162,0.17,0.177,0.185,0.192,0.2,0.206,0.213,0.219,0.225,0.231,0.236,0.241,0.245,0.249,0.252,0.255,0.257,0.259,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.26,0.261,0.266,0.272,0.281,0.293,0.305,0.32,0.336,0.353,0.371,0.39,0.41,0.43,0.45,0.47,0.49,0.509,0.527,0.544,0.56,0.575,0.587,0.599,0.608,0.614,0.619,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_EYE_BALL_Y=0,0,0.001,0.001,0.003,0.004,0.006,0.008,0.01,0.013,0.015,0.018,0.022,0.025,0.029,0.033,0.037,0.041,0.046,0.05,0.055,0.06,0.065,0.07,0.075,0.08,0.086,0.091,0.096,0.102,0.107,0.113,0.119,0.124,0.13,0.136,0.141,0.147,0.152,0.158,0.163,0.168,0.174,0.179,0.184,0.189,0.193,0.198,0.203,0.207,0.211,0.215,0.219,0.223,0.226,0.23,0.233,0.236,0.238,0.241,0.243,0.245,0.246,0.248,0.249,0.249,0.25,0.25,0.25,0.249,0.249,0.248,0.247,0.246,0.245,0.243,0.241,0.24,0.238,0.236,0.234,0.232,0.23,0.228,0.226,0.224,0.223,0.221,0.219,0.218,0.216,0.215,0.214,0.213,0.212,0.211,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.205,0.192,0.17,0.14,0.11,0.07,0.02,-0.03,-0.08,-0.14,-0.2,-0.26,-0.32,-0.39,-0.45,-0.51,-0.57,-0.63,-0.68,-0.73,-0.78,-0.82,-0.85,-0.88,-0.9,-0.915,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92,-0.92\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.05,-0.15,-0.28,-0.42,-0.54,-0.65,-0.71,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74\r\r\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.05,-0.15,-0.28,-0.42,-0.54,-0.65,-0.71,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74,-0.74\r\r\nPARAM_BROW_L_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.1,-0.12,-0.15,-0.164,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17\r\r\nPARAM_BROW_R_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.011,-0.04,-0.07,-0.1,-0.12,-0.15,-0.164,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17,-0.17\r\r\nPARAM_BROW_L_ANGLE=-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.51,-0.58,-0.67,-0.76,-0.84,-0.91,-0.95,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97\r\r\nPARAM_BROW_R_ANGLE=-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.51,-0.58,-0.67,-0.76,-0.84,-0.91,-0.95,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97,-0.97\r\r\nPARAM_BROW_L_FORM=-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33\r\r\nPARAM_BROW_R_FORM=-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0.04,0.09,0.87,1,1,1,1,1,0.95,0,0.97,1,1,0.27,1,1,0.97,0,0.98,1,1,0.61,0.31,0,0,0,0.98,1,1,1,0.67,0.33,0,0.62,1,1,0.93,0,0.99,1,0.992,0,0.52,1,1,1,1,1,0.82,0.6,0.44,0.28,1,1,1,1,1,0.52,1,1,1,1,0.89,0,0.77,1,1,1,1,0.6,0.3,0,0.93,1,0.93,0,0.94,1,1,1,1,1,1,1,1,1,1,1,0.85,0,0,0,0.45,0.91,0.6,0.29,0.5,0.71,0.54,0.37,0.4,0.42,1,1,1,1,1,0.89,1,1,1,0.5,0.25,0,0,0,1,1,0.996,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.91,0.45,0,0,0,0,0,0,0,0,0,0.41,0.83,0.5,0.16,1,1,1,1,0.7,0,0.92,1,0.97,0.1,0.87,1,1,1,1,1,0.7,0,0,0,0.92,1,0.992,0.14,0.127,0.114,0.1,0.086,0.58,1,0.54,0,0.96,1,0.992,0.06,0.04,0.02,0.41,0.81,1,1,1,1,1,1,1,1,1,1,1,1,1,0.53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.1,-0.21,-0.37,-0.56,-0.78,-1.02,-1.29,-1.57,-1.86,-2.16,-2.46,-2.76,-3.06,-3.35,-3.63,-3.88,-4.12,-4.34,-4.53,-4.69,-4.82,-4.92,-4.98,-5,-4.995,-4.982,-4.96,-4.93,-4.89,-4.85,-4.79,-4.74,-4.67,-4.6,-4.52,-4.44,-4.35,-4.26,-4.16,-4.06,-3.96,-3.85,-3.74,-3.62,-3.51,-3.39,-3.27,-3.14,-3.02,-2.89,-2.77,-2.64,-2.51,-2.39,-2.26,-2.14,-2.01,-1.89,-1.77,-1.65,-1.53,-1.41,-1.3,-1.19,-1.08,-0.98,-0.88,-0.78,-0.69,-0.6,-0.52,-0.44,-0.37,-0.3,-0.24,-0.19,-0.14,-0.1,-0.06,-0.04,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.16,0.34,0.59,0.9,1.26,1.66,2.1,2.58,3.07,3.6,4.13,4.66,5.21,5.74,6.26,6.78,7.27,7.73,8.17,8.57,8.92,9.24,9.5,9.71,9.87,9.97,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_BODY_ANGLE_Y=0,-0.013,-0.05,-0.11,-0.19,-0.3,-0.42,-0.55,-0.7,-0.86,-1.04,-1.22,-1.41,-1.6,-1.8,-2,-2.2,-2.4,-2.59,-2.78,-2.96,-3.14,-3.3,-3.45,-3.58,-3.7,-3.81,-3.89,-3.95,-3.99,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4.05,-4.21,-4.45,-4.76,-5.13,-5.55,-6.01,-6.5,-7,-7.5,-7.99,-8.45,-8.87,-9.24,-9.55,-9.79,-9.95,-10,-9.983,-9.93,-9.82,-9.66,-9.43,-9.14,-8.77,-8.33,-7.82,-7.22,-6.56,-5.81,-5,-3.6,-2.19,-0.82,0.42,1.47,2.29,2.81,3,2.55,1.38,-0.31,-2.25,-4.26,-6.13,-7.74,-8.96,-9.73,-10,-9.85,-9.48,-9,-8.52,-8.15,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.76,-7.12,-6.13,-4.88,-3.5,-2,-0.5,0.88,2.13,3.12,3.76,4,3.87,3.52,2.97,2.24,1.38,0.41,-0.64,-1.73,-2.86,-3.98,-5.06,-6.08,-7.03,-7.87,-8.61,-9.2,-9.63,-9.91,-10,-9.982,-9.93,-9.82,-9.67,-9.47,-9.2,-8.86,-8.46,-7.97,-7.4,-6.76,-6,-5.2,-4.4,-3.63,-2.92,-2.3,-1.77,-1.36,-1.09,-1,-1.1,-1.37,-1.78,-2.3,-2.88,-3.5,-4.12,-4.7,-5.22,-5.63,-5.9,-6,-5.89,-5.59,-5.15,-4.62,-4.02,-3.39,-2.76,-2.15,-1.58,-1.06,-0.63,-0.29,-0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.005,-0.021,-0.05,-0.08,-0.12,-0.17,-0.23,-0.3,-0.36,-0.44,-0.52,-0.6,-0.69,-0.77,-0.86,-0.95,-1.05,-1.14,-1.23,-1.31,-1.4,-1.48,-1.56,-1.64,-1.7,-1.77,-1.83,-1.88,-1.92,-1.95,-1.98,-1.995,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.992,-1.97,-1.93,-1.88,-1.82,-1.75,-1.66,-1.57,-1.47,-1.37,-1.26,-1.14,-1.02,-0.9,-0.77,-0.64,-0.52,-0.39,-0.26,-0.14,-0.02,0.1,0.22,0.33,0.43,0.53,0.62,0.7,0.78,0.84,0.9,0.94,0.97,0.993,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.984,-0.94,-0.87,-0.78,-0.67,-0.55,-0.42,-0.28,-0.14,0,0.13,0.27,0.4,0.51,0.62,0.71,0.79,0.84,0.88,0.89,0.83,0.68,0.47,0.23,-0.02,-0.27,-0.5,-0.7,-0.86,-0.96,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.025,0.05,0.09,0.13,0.18,0.24,0.29,0.35,0.41,0.47,0.52,0.57,0.61,0.65,0.68,0.7,0.715,0.72,0.7,0.63,0.54,0.41,0.28,0.14,0,-0.13,-0.25,-0.35,-0.42,-0.46,-0.48,-0.47,-0.44,-0.4,-0.36,-0.3,-0.24,-0.18,-0.12,-0.08,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.11,-0.15,-0.17,-0.03,0.2,0.36,0.41,0.36,0.26,0.11,-0.04,-0.14,-0.19,-0.17,-0.11,-0.04,0.03,0.09,0.11,0.102,0.082,0.06,0.03,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.994,4.978,4.95,4.91,4.86,4.81,4.74,4.67,4.59,4.5,4.4,4.3,4.19,4.08,3.96,3.84,3.71,3.58,3.44,3.3,3.16,3.02,2.88,2.73,2.59,2.45,2.3,2.16,2.02,1.87,1.73,1.6,1.46,1.33,1.21,1.08,0.97,0.85,0.75,0.64,0.55,0.46,0.38,0.3,0.23,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,-0.02,-0.08,-0.17,-0.3,-0.45,-0.63,-0.83,-1.05,-1.29,-1.53,-1.8,-2.06,-2.33,-2.6,-2.87,-3.13,-3.39,-3.63,-3.87,-4.08,-4.28,-4.46,-4.62,-4.75,-4.86,-4.93,-4.98,-5,-4.994,-4.978,-4.95,-4.91,-4.86,-4.81,-4.74,-4.67,-4.59,-4.5,-4.4,-4.3,-4.19,-4.08,-3.96,-3.84,-3.71,-3.58,-3.44,-3.3,-3.16,-3.02,-2.88,-2.73,-2.59,-2.45,-2.3,-2.16,-2.02,-1.87,-1.73,-1.6,-1.46,-1.33,-1.21,-1.08,-0.97,-0.85,-0.75,-0.64,-0.55,-0.46,-0.38,-0.3,-0.23,-0.17,-0.12,-0.08,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.016,0.06,0.14,0.24,0.36,0.5,0.67,0.84,1.03,1.23,1.44,1.65,1.87,2.08,2.29,2.5,2.71,2.91,3.09,3.27,3.43,3.57,3.69,3.8,3.89,3.95,3.99,4,3.995,3.982,3.96,3.93,3.89,3.85,3.79,3.74,3.67,3.6,3.52,3.44,3.36,3.26,3.17,3.07,2.97,2.86,2.75,2.64,2.53,2.42,2.3,2.19,2.07,1.96,1.84,1.73,1.61,1.5,1.39,1.28,1.17,1.07,0.97,0.87,0.77,0.68,0.6,0.52,0.44,0.37,0.3,0.24,0.19,0.14,0.1,0.06,0.04,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.02,0.08,0.17,0.3,0.45,0.63,0.83,1.05,1.29,1.53,1.8,2.06,2.33,2.6,2.87,3.13,3.39,3.63,3.87,4.08,4.28,4.46,4.62,4.75,4.86,4.93,4.98,5,4.994,4.978,4.95,4.91,4.86,4.81,4.74,4.67,4.59,4.5,4.4,4.3,4.19,4.08,3.96,3.84,3.71,3.58,3.44,3.3,3.16,3.02,2.88,2.73,2.59,2.45,2.3,2.16,2.02,1.87,1.73,1.6,1.46,1.33,1.21,1.08,0.97,0.85,0.75,0.64,0.55,0.46,0.38,0.3,0.23,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,-0.016,-0.06,-0.14,-0.24,-0.36,-0.5,-0.67,-0.84,-1.03,-1.23,-1.44,-1.65,-1.87,-2.08,-2.29,-2.5,-2.71,-2.91,-3.09,-3.27,-3.43,-3.57,-3.69,-3.8,-3.89,-3.95,-3.99,-4,-3.995,-3.982,-3.96,-3.93,-3.89,-3.85,-3.79,-3.74,-3.67,-3.6,-3.52,-3.44,-3.36,-3.26,-3.17,-3.07,-2.97,-2.86,-2.75,-2.64,-2.53,-2.42,-2.3,-2.19,-2.07,-1.96,-1.84,-1.73,-1.61,-1.5,-1.39,-1.28,-1.17,-1.07,-0.97,-0.87,-0.77,-0.68,-0.6,-0.52,-0.44,-0.37,-0.3,-0.24,-0.19,-0.14,-0.1,-0.06,-0.04,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.1,-0.2,-0.35,-0.52,-0.71,-0.92,-1.14,-1.36,-1.58,-1.8,-2,-2.19,-2.36,-2.5,-2.62,-2.7,-2.76,-2.777,-2.762,-2.72,-2.67,-2.6,-2.52,-2.44,-2.36,-2.28,-2.2,-2.14,-2.08,-2.04,-2.01,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.06,-2.22,-2.47,-2.78,-3.13,-3.5,-3.87,-4.22,-4.53,-4.78,-4.94,-5,-4.94,-4.79,-4.58,-4.31,-4.01,-3.7,-3.38,-3.07,-2.79,-2.53,-2.32,-2.15,-2.04,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P05_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.37,-0.56,-0.78,-1.03,-1.29,-1.58,-1.88,-2.19,-2.5,-2.81,-3.12,-3.42,-3.71,-3.97,-4.22,-4.44,-4.63,-4.79,-4.9,-4.97,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.97,-4.87,-4.72,-4.53,-4.3,-4.04,-3.77,-3.48,-3.19,-2.89,-2.6,-2.32,-2.05,-1.8,-1.57,-1.38,-1.22,-1.1,-1.03,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P05_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.021,0.08,0.17,0.3,0.45,0.62,0.82,1.03,1.25,1.49,1.73,1.97,2.21,2.45,2.68,2.9,3.11,3.3,3.47,3.63,3.76,3.86,3.94,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.93,3.72,3.41,2.99,2.5,1.95,1.35,0.72,0.08,-0.56,-1.18,-1.76,-2.3,-2.78,-3.2,-3.54,-3.79,-3.95,-4,-3.97,-3.9,-3.78,-3.64,-3.46,-3.25,-3.03,-2.79,-2.54,-2.29,-2.03,-1.77,-1.52,-1.28,-1.05,-0.83,-0.63,-0.45,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.017,-0.06,-0.14,-0.23,-0.35,-0.47,-0.61,-0.76,-0.91,-1.06,-1.2,-1.33,-1.46,-1.57,-1.67,-1.75,-1.8,-1.84,-1.851,-1.835,-1.79,-1.73,-1.65,-1.57,-1.48,-1.39,-1.3,-1.22,-1.15,-1.09,-1.04,-1.01,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.06,-1.22,-1.47,-1.78,-2.13,-2.5,-2.87,-3.22,-3.53,-3.78,-3.94,-4,-3.94,-3.79,-3.58,-3.31,-3.01,-2.7,-2.38,-2.07,-1.79,-1.53,-1.32,-1.15,-1.04,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P05_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.75,-0.87,-1,-1.13,-1.25,-1.37,-1.48,-1.59,-1.69,-1.78,-1.85,-1.91,-1.96,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.04,-2.14,-2.28,-2.46,-2.66,-2.87,-3.08,-3.28,-3.47,-3.65,-3.79,-3.9,-3.97,-4,-3.97,-3.9,-3.79,-3.64,-3.47,-3.28,-3.08,-2.86,-2.64,-2.42,-2.2,-1.99,-1.78,-1.6,-1.43,-1.28,-1.17,-1.08,-1.02,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P05_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.06,0.13,0.22,0.34,0.47,0.61,0.77,0.94,1.12,1.29,1.48,1.66,1.84,2.01,2.18,2.33,2.47,2.6,2.72,2.82,2.89,2.95,2.99,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2.94,2.76,2.49,2.12,1.69,1.21,0.68,0.13,-0.43,-0.99,-1.53,-2.04,-2.52,-2.94,-3.3,-3.6,-3.82,-3.95,-4,-3.97,-3.9,-3.78,-3.64,-3.46,-3.25,-3.03,-2.79,-2.54,-2.29,-2.03,-1.77,-1.52,-1.28,-1.05,-0.83,-0.63,-0.45,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P05_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu16.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.004,-0.003,0.002,0.011,0.027,0.05,0.08,0.13,0.18,0.25,0.34,0.43,0.55,0.68,0.84,1.01,1.2,1.41,1.65,1.91,2.19,2.51,2.84,3.2,3.59,4,4.48,4.99,5.53,6.1,6.7,7.32,7.96,8.61,9.28,9.96,10.65,11.34,12.03,12.71,13.39,14.06,14.72,15.36,15.98,16.59,17.16,17.71,18.24,18.72,19.16,19.57,19.93,20.24,20.51,20.72,20.87,20.97,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,20.28,18.38,15.65,12.52,9.27,6.24,3.66,1.68,0.44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.19,0.41,0.71,1.09,1.51,2,2.54,3.11,3.71,4.35,5,5.67,6.33,7,7.65,8.29,8.89,9.46,10,10.49,10.91,11.29,11.59,11.81,11.95,12,11.97,11.89,11.76,11.58,11.37,11.12,10.83,10.52,10.19,9.83,9.46,9.08,8.69,8.31,7.92,7.54,7.17,6.81,6.48,6.17,5.88,5.63,5.42,5.24,5.11,5.03,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_ANGLE_Y=0,0.13,0.52,1.1,1.88,2.8,3.84,4.97,6.14,7.35,8.55,9.71,10.8,11.82,12.72,13.51,14.14,14.61,14.9,15,14.7,13.86,12.57,10.85,8.83,6.54,4.06,1.48,-1.16,-3.81,-6.37,-8.76,-11,-12.99,-14.72,-16.11,-17.13,-17.78,-18,-17.92,-17.67,-17.28,-16.75,-16.08,-15.3,-14.4,-13.4,-12.32,-11.16,-9.9,-8.61,-7.26,-5.87,-4.46,-3.02,-1.54,-0.09,1.36,2.81,4.24,5.62,6.98,8.31,9.56,10.77,11.93,13,14.15,14.94,15.47,15.82,16.02,16.11,16.13,16.11,16.06,16.02,16,15.82,15.32,14.54,13.5,12.25,10.8,9.19,7.46,5.64,3.71,1.76,-0.24,-2.27,-4.23,-6.17,-8.07,-9.85,-11.56,-13.14,-14.57,-15.83,-16.92,-17.8,-18.45,-18.86,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19.38,-20.37,-21.8,-23.44,-25.14,-26.73,-28.08,-29.12,-29.77,-30,-29.24,-27.25,-24.35,-20.77,-16.79,-12.63,-8.42,-4.33,-0.51,2.94,5.79,8.04,9.49,10,9.96,9.85,9.66,9.4,9.07,8.68,8.22,7.72,7.14,6.53,5.85,5.14,4.36,3.56,2.71,1.84,0.91,-0.03,-1.01,-2,-3.03,-4.06,-5.13,-6.19,-7.29,-8.37,-9.47,-10.56,-11.67,-12.75,-13.85,-14.92,-16,-17.04,-18.09,-19.09,-20.1,-21.07,-22,-22.89,-23.71,-24.47,-25.16,-25.79,-26.36,-26.88,-27.35,-27.76,-28.13,-28.46,-28.75,-29,-29.22,-29.4,-29.55,-29.67,-29.77,-29.85,-29.91,-29.95,-29.97,-29.991,-29.999,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_ANGLE_Z=0,-0.02,-0.09,-0.21,-0.36,-0.54,-0.76,-1.01,-1.28,-1.58,-1.9,-2.23,-2.58,-2.94,-3.31,-3.69,-4.07,-4.45,-4.84,-5.22,-5.58,-5.95,-6.31,-6.65,-6.99,-7.3,-7.59,-7.86,-8.11,-8.33,-8.53,-8.69,-8.82,-8.92,-8.98,-9,-8.983,-8.93,-8.85,-8.75,-8.62,-8.46,-8.29,-8.1,-7.89,-7.67,-7.43,-7.18,-6.92,-6.65,-6.37,-6.09,-5.8,-5.5,-5.2,-4.9,-4.6,-4.3,-4,-3.68,-3.44,-3.24,-3.08,-2.94,-2.82,-2.69,-2.55,-2.39,-2.2,-1.98,-1.71,-1.38,-1,-0.52,0.02,0.61,1.25,1.94,2.64,3.39,4.16,4.93,5.73,6.53,7.33,8.12,8.9,9.66,10.39,11.09,11.75,12.36,12.93,13.45,13.89,14.27,14.58,14.81,14.95,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15.24,15.64,15.91,16,15.56,14.38,12.56,10.28,7.75,5,2.25,-0.28,-2.56,-4.38,-5.56,-6,-5.93,-5.75,-5.48,-5.16,-4.84,-4.52,-4.25,-4.07,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.9,-3.62,-3.17,-2.58,-1.89,-1.1,-0.26,0.63,1.54,2.46,3.34,4.2,5.02,5.75,6.42,7,7.6,8.14,8.61,9.04,9.4,9.72,9.99,10.22,10.41,10.56,10.69,10.78,10.86,10.91,10.95,10.98,10.992,10.998,11,10.96,10.86,10.7,10.49,10.25,9.96,9.66,9.33,9,8.67,8.34,8.04,7.75,7.51,7.3,7.14,7.04,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7\r\r\nPARAM_EYE_L_OPEN=0.7,0.7,0.699,0.698,0.697,0.696,0.694,0.692,0.69,0.687,0.685,0.682,0.679,0.676,0.673,0.67,0.667,0.664,0.661,0.658,0.655,0.652,0.649,0.646,0.644,0.641,0.639,0.637,0.635,0.634,0.632,0.631,0.631,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.61,0.56,0.49,0.41,0.33,0.24,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.39,0.75,1.11,1.39,1.5,1.499,1.496,1.49,1.482,1.471,1.458,1.442,1.424,1.4,1.38,1.35,1.32,1.29,1.25,1.22,1.17,1.13,1.08,1.03,0.98,0.92,0.86,0.8,0.74,0.67,0.46,0.21,0.05,0,0,0,0.12,0.31,0.49,0.62,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.51,0.24,0.06,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.7,0.7,0.699,0.699,0.698,0.697,0.696,0.694,0.693,0.691,0.689,0.687,0.685,0.683,0.681,0.679,0.676,0.674,0.672,0.67,0.668,0.666,0.664,0.662,0.66,0.658,0.657,0.655,0.654,0.653,0.652,0.651,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.63,0.58,0.51,0.42,0.34,0.25,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.39,0.75,1.11,1.39,1.5,1.499,1.496,1.49,1.482,1.472,1.459,1.443,1.425,1.4,1.38,1.35,1.32,1.29,1.26,1.22,1.18,1.13,1.09,1.04,0.99,0.93,0.87,0.81,0.75,0.68,0.47,0.22,0.05,0,0,0,0.12,0.32,0.5,0.63,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.52,0.25,0.06,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.013,0.05,0.1,0.16,0.22,0.3,0.37,0.44,0.5,0.56,0.61,0.65,0.67,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.68,0.29,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_EYE_BALL_Y=0,-0.001,-0.005,-0.01,-0.018,-0.027,-0.038,-0.051,-0.065,-0.08,-0.096,-0.113,-0.131,-0.15,-0.169,-0.188,-0.208,-0.227,-0.247,-0.266,-0.285,-0.303,-0.321,-0.338,-0.354,-0.369,-0.383,-0.395,-0.407,-0.416,-0.425,-0.431,-0.436,-0.439,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.441,-0.442,-0.445,-0.449,-0.453,-0.459,-0.465,-0.471,-0.479,-0.486,-0.494,-0.503,-0.511,-0.52,-0.529,-0.538,-0.546,-0.555,-0.563,-0.571,-0.579,-0.586,-0.592,-0.598,-0.604,-0.609,-0.613,-0.616,-0.618,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.62,-0.05,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17,0.17\r\r\nPARAM_HI_SCALE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_HI_02=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.074,0.06,0.042,0.025,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_ANGLE=0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.074,0.06,0.042,0.025,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.12,-0.23,-0.33,-0.41,-0.46,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.12,-0.23,-0.33,-0.41,-0.46,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48,-0.48\r\r\nPARAM_MOUTH_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-1,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.22,0.45,0.27,0.09,0.87,1,1,0.72,0.36,0,0.75,1,1,1,0.7,0,0.98,1,0.98,0,0.89,1,1,1,0.96,0,0.22,0.43,0.22,0.02,0.02,0.02,0.99,1,1,0.56,0.84,1,1,1,1,1,1,1,0.73,0.26,0.15,0.04,0.031,0.024,0.79,1,1,1,1,1,0.85,0.16,0.23,0.3,0.59,0.89,0.57,0.26,0.45,0.64,0.48,0.32,0.16,0,0.02,0.039,1,1,1,0.21,0.36,0.51,0.66,0.47,0.29,0.1,0.93,1,0.89,0.02,0.82,1,1,1,1,1,0.992,0.07,0.11,0.14,0.83,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14,0.28,0.37,0.46,0.55,0.64,0.64,0.64,0.64,0.64,0.35,0.06,0.055,0.047,0.039,0.031,0.024,0.016,0.008,0,0.98,1,1,0.55,0.27,0,0,0,0.1,0.2,0.48,0.75,0.43,0.11,0.45,0.78,0.41,0.04,0.3,0.56,0.32,0.09,0.073,0.059,0.045,0.031,1,1,0.988,0,0.84,1,1,1,0.76,0.18,0.86,1,0.77,0,0.93,1,1,1,1,1,1,0.5,0.87,1,1,1,1,0.24,1,1,1,1,1,0.29,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.49,0.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.07,1.25,1.47,1.68,1.85,1.96,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_X=0,-0.008,-0.03,-0.07,-0.12,-0.19,-0.26,-0.35,-0.44,-0.55,-0.66,-0.77,-0.9,-1.02,-1.15,-1.28,-1.42,-1.55,-1.68,-1.81,-1.94,-2.07,-2.19,-2.3,-2.41,-2.51,-2.61,-2.7,-2.77,-2.84,-2.89,-2.94,-2.97,-2.993,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.986,-2.94,-2.87,-2.78,-2.66,-2.52,-2.36,-2.18,-1.98,-1.77,-1.54,-1.3,-1.04,-0.77,-0.49,-0.2,0.09,0.39,0.7,1.01,1.33,1.64,1.96,2.28,2.59,2.9,3.22,3.52,3.82,4.11,4.4,4.67,4.94,5.19,5.43,5.66,5.88,6.08,6.26,6.42,6.57,6.7,6.8,6.89,6.95,6.99,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6.69,5.88,4.71,3.37,1.97,0.68,-0.43,-1.28,-1.81,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.97,-1.88,-1.73,-1.54,-1.3,-1.03,-0.72,-0.39,-0.03,0.34,0.73,1.13,1.54,1.95,2.36,2.76,3.16,3.55,3.91,4.26,4.59,4.89,5.17,5.41,5.61,5.78,5.9,5.97,6,5.985,5.94,5.87,5.79,5.68,5.55,5.42,5.27,5.11,4.95,4.78,4.61,4.43,4.27,4.1,3.94,3.78,3.64,3.5,3.38,3.27,3.18,3.1,3.05,3.01,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BODY_ANGLE_Y=0,0.06,0.23,0.44,0.7,0.96,1.23,1.47,1.68,1.85,1.96,2,1.96,1.84,1.66,1.4,1.09,0.74,0.33,-0.11,-0.59,-1.1,-1.62,-2.17,-2.72,-3.28,-3.83,-4.38,-4.9,-5.41,-5.89,-6.33,-6.74,-7.09,-7.4,-7.66,-7.84,-7.96,-8,-8.001,-8.003,-8.006,-8.008,-8.007,-8.005,-8,-7.991,-7.979,-7.963,-7.87,-7.65,-7.33,-6.91,-6.42,-5.86,-5.27,-4.65,-4.01,-3.38,-2.77,-2.2,-1.66,-1.19,-0.78,-0.45,-0.21,-0.05,0,-0.002,-0.007,-0.017,-0.03,-0.047,-0.068,-0.09,-0.12,-0.15,-0.19,-0.23,-0.28,-0.32,-0.38,-0.43,-0.49,-0.56,-0.63,-0.7,-0.78,-0.86,-0.95,-1.04,-1.14,-1.24,-1.34,-1.45,-1.56,-1.68,-1.8,-1.93,-2.06,-2.2,-2.34,-2.49,-2.64,-2.79,-2.95,-3.12,-3.29,-3.47,-3.65,-3.84,-4.03,-4.23,-4.43,-4.64,-4.85,-5.07,-5.29,-5.52,-5.76,-6,-6.5,-7.27,-8.11,-8.89,-9.49,-9.87,-10,-9.39,-7.86,-5.78,-3.35,-0.83,1.65,4.01,5.99,7.59,8.62,9,8.82,8.34,7.61,6.71,5.7,4.63,3.58,2.6,1.74,1.01,0.46,0.12,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.96,0.83,0.65,0.41,0.12,-0.2,-0.54,-0.9,-1.27,-1.64,-2,-2.36,-2.69,-3,-3.28,-3.53,-3.72,-3.87,-3.97,-4,-3.984,-3.94,-3.86,-3.76,-3.64,-3.5,-3.33,-3.16,-2.97,-2.77,-2.56,-2.35,-2.13,-1.92,-1.71,-1.5,-1.29,-1.09,-0.91,-0.73,-0.57,-0.43,-0.31,-0.2,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.002,-0.009,-0.02,-0.034,-0.052,-0.07,-0.1,-0.13,-0.16,-0.19,-0.22,-0.26,-0.3,-0.34,-0.38,-0.42,-0.46,-0.5,-0.54,-0.58,-0.62,-0.66,-0.7,-0.74,-0.78,-0.81,-0.84,-0.87,-0.9,-0.93,-0.95,-0.966,-0.98,-0.991,-0.998,-1,-0.999,-0.997,-0.994,-0.99,-0.984,-0.977,-0.968,-0.959,-0.947,-0.935,-0.922,-0.907,-0.891,-0.874,-0.855,-0.835,-0.81,-0.79,-0.77,-0.74,-0.72,-0.69,-0.66,-0.63,-0.6,-0.57,-0.53,-0.5,-0.46,-0.42,-0.39,-0.35,-0.3,-0.26,-0.22,-0.17,-0.13,-0.08,-0.03,0.02,0.07,0.12,0.18,0.23,0.29,0.35,0.41,0.47,0.53,0.59,0.66,0.72,0.79,0.86,0.93,1,1.08,1.15,1.22,1.29,1.35,1.41,1.47,1.53,1.58,1.62,1.67,1.71,1.75,1.79,1.82,1.85,1.88,1.91,1.93,1.947,1.963,1.976,1.987,1.994,1.998,2,2,2,2,2,2,2,2,2,1.96,1.86,1.69,1.48,1.23,0.96,0.68,0.39,0.12,-0.15,-0.39,-0.6,-0.77,-0.89,-0.97,-1,-0.997,-0.987,-0.97,-0.95,-0.92,-0.88,-0.83,-0.78,-0.72,-0.66,-0.58,-0.5,-0.41,-0.31,-0.2,-0.08,0.04,0.18,0.32,0.48,0.64,0.81,1,1.21,1.41,1.61,1.8,1.98,2.15,2.31,2.45,2.57,2.69,2.78,2.86,2.92,2.96,2.99,3,2.996,2.984,2.966,2.94,2.91,2.87,2.83,2.79,2.74,2.69,2.64,2.58,2.53,2.47,2.42,2.36,2.31,2.26,2.21,2.17,2.13,2.09,2.06,2.03,2.016,2.004,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.988,0.95,0.9,0.83,0.75,0.66,0.56,0.46,0.36,0.25,0.15,0.05,-0.05,-0.14,-0.22,-0.29,-0.34,-0.38,-0.41,-0.42,-0.417,-0.407,-0.392,-0.372,-0.35,-0.32,-0.29,-0.25,-0.21,-0.17,-0.13,-0.09,-0.04,0,0.05,0.1,0.14,0.19,0.23,0.28,0.32,0.36,0.4,0.43,0.46,0.49,0.52,0.54,0.557,0.569,0.577,0.58,0.577,0.569,0.557,0.54,0.52,0.49,0.46,0.43,0.39,0.35,0.31,0.27,0.22,0.17,0.12,0.07,0.02,-0.04,-0.09,-0.15,-0.2,-0.26,-0.31,-0.37,-0.42,-0.47,-0.53,-0.58,-0.62,-0.67,-0.71,-0.76,-0.8,-0.83,-0.87,-0.9,-0.92,-0.95,-0.964,-0.98,-0.991,-0.998,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.02,-0.08,-0.17,-0.28,-0.43,-0.6,-0.78,-0.97,-1.18,-1.39,-1.61,-1.82,-2.03,-2.22,-2.4,-2.57,-2.72,-2.83,-2.92,-2.98,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.23,-2.06,-1.88,-1.71,-1.52,-1.34,-1.16,-0.99,-0.82,-0.67,-0.53,-0.4,-0.28,-0.18,-0.11,-0.05,-0.01,0,-0.015,-0.06,-0.13,-0.21,-0.32,-0.45,-0.58,-0.73,-0.89,-1.05,-1.22,-1.39,-1.57,-1.73,-1.9,-2.06,-2.22,-2.36,-2.5,-2.62,-2.73,-2.82,-2.9,-2.95,-2.99,-3,-2.995,-2.98,-2.96,-2.92,-2.88,-2.84,-2.78,-2.72,-2.65,-2.58,-2.51,-2.42,-2.34,-2.25,-2.16,-2.06,-1.97,-1.87,-1.77,-1.66,-1.56,-1.46,-1.36,-1.26,-1.16,-1.06,-0.97,-0.87,-0.78,-0.69,-0.61,-0.53,-0.45,-0.38,-0.31,-0.25,-0.2,-0.15,-0.1,-0.07,-0.04,-0.02,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.03,0.1,0.22,0.38,0.57,0.8,1.04,1.3,1.58,1.86,2.14,2.42,2.7,2.96,3.2,3.43,3.62,3.78,3.9,3.97,4,3.98,3.92,3.83,3.7,3.55,3.38,3.18,2.97,2.75,2.51,2.27,2.03,1.79,1.55,1.32,1.1,0.89,0.7,0.53,0.37,0.24,0.14,0.06,0.02,0,0.02,0.08,0.17,0.29,0.43,0.59,0.78,0.98,1.18,1.4,1.63,1.86,2.09,2.31,2.53,2.75,2.95,3.15,3.33,3.49,3.64,3.76,3.86,3.94,3.98,4,3.993,3.974,3.94,3.9,3.85,3.78,3.71,3.63,3.54,3.44,3.34,3.23,3.12,3,2.88,2.75,2.62,2.49,2.36,2.22,2.08,1.95,1.81,1.68,1.55,1.42,1.29,1.16,1.04,0.92,0.81,0.7,0.6,0.51,0.42,0.33,0.26,0.19,0.14,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.03,0.1,0.22,0.38,0.57,0.79,1.03,1.28,1.55,1.83,2.11,2.37,2.64,2.89,3.13,3.34,3.53,3.69,3.82,3.92,3.98,4,3.98,3.92,3.83,3.71,3.57,3.41,3.22,3.02,2.82,2.6,2.37,2.14,1.91,1.69,1.47,1.25,1.05,0.85,0.67,0.51,0.36,0.24,0.14,0.06,0.02,0,0.021,0.08,0.17,0.3,0.45,0.62,0.82,1.03,1.25,1.49,1.73,1.97,2.21,2.45,2.68,2.9,3.11,3.3,3.47,3.63,3.76,3.86,3.94,3.98,4,3.994,3.977,3.95,3.91,3.86,3.81,3.74,3.67,3.58,3.5,3.4,3.3,3.19,3.08,2.96,2.84,2.72,2.59,2.46,2.33,2.2,2.07,1.93,1.8,1.67,1.54,1.41,1.28,1.16,1.04,0.92,0.81,0.7,0.6,0.5,0.42,0.33,0.26,0.19,0.14,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,-0.02,-0.08,-0.17,-0.28,-0.43,-0.6,-0.78,-0.97,-1.18,-1.39,-1.61,-1.82,-2.03,-2.22,-2.4,-2.57,-2.72,-2.83,-2.92,-2.98,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.23,-2.06,-1.88,-1.71,-1.52,-1.34,-1.16,-0.99,-0.82,-0.67,-0.53,-0.4,-0.28,-0.18,-0.11,-0.05,-0.01,0,-0.015,-0.06,-0.13,-0.21,-0.32,-0.45,-0.58,-0.73,-0.89,-1.05,-1.22,-1.39,-1.57,-1.73,-1.9,-2.06,-2.22,-2.36,-2.5,-2.62,-2.73,-2.82,-2.9,-2.95,-2.99,-3,-2.995,-2.98,-2.96,-2.92,-2.88,-2.84,-2.78,-2.72,-2.65,-2.58,-2.51,-2.42,-2.34,-2.25,-2.16,-2.06,-1.97,-1.87,-1.77,-1.66,-1.56,-1.46,-1.36,-1.26,-1.16,-1.06,-0.97,-0.87,-0.78,-0.69,-0.61,-0.53,-0.45,-0.38,-0.31,-0.25,-0.2,-0.15,-0.1,-0.07,-0.04,-0.02,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.04,0.15,0.33,0.57,0.86,1.19,1.55,1.95,2.36,2.79,3.21,3.64,4.05,4.45,4.81,5.14,5.43,5.67,5.85,5.96,6,5.97,5.88,5.74,5.56,5.33,5.07,4.77,4.45,4.12,3.77,3.41,3.04,2.68,2.33,1.98,1.65,1.34,1.05,0.79,0.56,0.37,0.21,0.1,0.02,0,0.03,0.12,0.25,0.43,0.64,0.89,1.17,1.46,1.78,2.11,2.44,2.78,3.13,3.47,3.8,4.13,4.43,4.72,5,5.24,5.46,5.64,5.79,5.91,5.98,6,5.99,5.96,5.91,5.85,5.77,5.67,5.56,5.44,5.31,5.17,5.01,4.85,4.68,4.5,4.31,4.13,3.93,3.73,3.53,3.33,3.13,2.93,2.72,2.52,2.32,2.12,1.93,1.74,1.56,1.39,1.22,1.06,0.9,0.76,0.63,0.5,0.39,0.29,0.21,0.13,0.08,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.03,0.13,0.28,0.47,0.71,0.98,1.29,1.6,1.94,2.28,2.63,2.97,3.3,3.61,3.91,4.17,4.41,4.62,4.78,4.9,4.97,5,4.97,4.9,4.79,4.64,4.46,4.26,4.03,3.78,3.52,3.24,2.97,2.68,2.39,2.11,1.83,1.56,1.31,1.06,0.84,0.63,0.45,0.3,0.17,0.08,0.02,0,0.03,0.1,0.21,0.37,0.56,0.78,1.02,1.29,1.57,1.86,2.16,2.46,2.76,3.06,3.35,3.63,3.88,4.12,4.34,4.53,4.69,4.82,4.92,4.98,5,4.993,4.97,4.94,4.89,4.83,4.76,4.67,4.58,4.48,4.37,4.25,4.12,3.99,3.85,3.7,3.55,3.4,3.24,3.08,2.92,2.75,2.58,2.42,2.25,2.08,1.92,1.76,1.6,1.45,1.3,1.15,1.01,0.88,0.75,0.63,0.52,0.42,0.33,0.24,0.17,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.97,-9.9,-9.79,-9.64,-9.47,-9.28,-9.08,-8.86,-8.64,-8.42,-8.2,-7.99,-7.78,-7.6,-7.43,-7.28,-7.17,-7.08,-7.02,-7,-7.01,-7.04,-7.08,-7.15,-7.22,-7.31,-7.41,-7.53,-7.65,-7.78,-7.91,-8.06,-8.2,-8.35,-8.5,-8.65,-8.8,-8.94,-9.09,-9.22,-9.35,-9.47,-9.59,-9.69,-9.78,-9.85,-9.92,-9.96,-9.99,-10,-9.97,-9.9,-9.79,-9.64,-9.46,-9.26,-9.03,-8.78,-8.52,-8.24,-7.97,-7.68,-7.39,-7.11,-6.83,-6.56,-6.31,-6.06,-5.84,-5.63,-5.45,-5.3,-5.17,-5.08,-5.02,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_P06_ARM_L_2=-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5.03,-5.13,-5.28,-5.47,-5.7,-5.96,-6.23,-6.52,-6.81,-7.11,-7.4,-7.68,-7.95,-8.2,-8.43,-8.62,-8.78,-8.9,-8.97,-9,-8.984,-8.94,-8.86,-8.76,-8.63,-8.48,-8.31,-8.12,-7.92,-7.71,-7.48,-7.24,-7,-6.75,-6.5,-6.25,-6,-5.76,-5.52,-5.29,-5.08,-4.88,-4.69,-4.52,-4.37,-4.24,-4.14,-4.06,-4.02,-4,-4.015,-4.06,-4.13,-4.21,-4.32,-4.45,-4.58,-4.73,-4.89,-5.05,-5.22,-5.39,-5.57,-5.73,-5.9,-6.06,-6.22,-6.36,-6.5,-6.62,-6.73,-6.82,-6.9,-6.95,-6.99,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_P06_ARM_L_3=10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.97,9.87,9.72,9.53,9.28,8.99,8.67,8.32,7.94,7.55,7.12,6.7,6.27,5.84,5.41,4.99,4.58,4.19,3.82,3.47,3.15,2.86,2.61,2.4,2.23,2.1,2.03,2,2.03,2.12,2.27,2.46,2.7,2.97,3.28,3.61,3.97,4.34,4.73,5.13,5.54,5.95,6.36,6.76,7.16,7.55,7.91,8.26,8.59,8.89,9.17,9.41,9.61,9.78,9.9,9.97,10,9.96,9.83,9.62,9.37,9.05,8.7,8.31,7.89,7.45,7.01,6.56,6.11,5.67,5.23,4.83,4.45,4.1,3.79,3.52,3.3,3.14,3.04,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu17.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.05,0.2,0.43,0.72,1.09,1.49,1.94,2.41,2.91,3.42,3.94,4.45,4.95,5.45,5.91,6.34,6.74,7.1,7.41,7.66,7.84,7.96,8,8,8,8,8,8,8,8,8,8,8,8,8.07,8.26,8.57,8.98,9.48,10.06,10.71,11.42,12.18,12.97,13.8,14.65,15.52,16.39,17.26,18.12,18.96,19.78,20.57,21.31,22,22.65,23.23,23.74,24.17,24.52,24.79,24.95,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,24.95,24.8,24.58,24.29,23.95,23.56,23.15,22.72,22.28,21.83,21.4,20.97,20.57,20.2,19.86,19.57,19.33,19.15,19.04,19,19.08,19.29,19.62,20.05,20.54,21.08,21.64,22.21,22.77,23.3,23.77,24.19,24.53,24.79,24.95,25,24.87,24.52,23.96,23.21,22.32,21.28,20.14,18.9,17.6,16.22,14.83,13.4,11.95,10.55,9.17,7.81,6.54,5.32,4.18,3.17,2.26,1.49,0.86,0.39,0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-5.01,-13.02,-20.5,-25.9,-28,-26.83,-23.76,-19.33,-14.27,-9.01,-4.11,0.08,3.28,5.29,6,5.88,5.56,5.06,4.44,3.75,3,2.25,1.56,0.94,0.44,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.17,-0.64,-1.38,-2.37,-3.58,-4.97,-6.47,-8.12,-9.84,-11.62,-13.38,-15.16,-16.88,-18.53,-20.03,-21.42,-22.63,-23.62,-24.36,-24.83,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25.04,-25.17,-25.35,-25.59,-25.88,-26.2,-26.54,-26.9,-27.27,-27.64,-28,-28.36,-28.69,-29,-29.28,-29.53,-29.72,-29.87,-29.97,-30,-30,-30,-30,-30,-29.95,-29.82,-29.61,-29.31,-28.92,-28.41,-27.78,-27.01,-26.08,-25,-23.56,-21.96,-20.23,-18.46,-16.57,-14.67,-12.74,-10.8,-8.86,-6.98,-5.12,-3.32,-1.62,0.02,1.53,2.92,4.17,5.28,6.22,6.98,7.54,7.88,8,7.7,6.86,5.57,3.85,1.83,-0.46,-2.94,-5.52,-8.16,-10.81,-13.37,-15.76,-18,-19.99,-21.72,-23.11,-24.13,-24.78,-25,-24.89,-24.59,-24.12,-23.49,-22.76,-21.93,-21.02,-20.08,-19.12,-18.16,-17.23,-16.36,-15.54,-14.82,-14.19,-13.69,-13.31,-13.08,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_ANGLE_Z=0,0.03,0.12,0.27,0.45,0.68,0.93,1.21,1.51,1.82,2.13,2.46,2.78,3.1,3.4,3.69,3.96,4.21,4.44,4.63,4.79,4.9,4.97,5,4.95,4.82,4.61,4.35,4.06,3.73,3.39,3.05,2.7,2.37,2.05,1.76,1.51,1.3,1.14,1.04,1,1.07,1.25,1.54,1.93,2.39,2.93,3.53,4.17,4.85,5.57,6.29,7.03,7.79,8.52,9.23,9.94,10.6,11.24,11.82,12.35,12.82,13.23,13.55,13.8,13.95,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.95,13.8,13.58,13.29,12.95,12.56,12.15,11.72,11.28,10.83,10.4,9.97,9.57,9.2,8.86,8.57,8.33,8.15,8.04,8,8.06,8.24,8.52,8.87,9.28,9.73,10.2,10.68,11.14,11.58,11.98,12.33,12.61,12.82,12.96,13,12.8,12.24,11.34,10.15,8.73,7.11,5.27,3.38,1.36,-0.71,-2.79,-4.8,-6.8,-8.68,-10.45,-12.05,-13.47,-14.7,-15.67,-16.4,-16.85,-17,-16.9,-16.63,-16.23,-15.69,-15.07,-14.37,-13.61,-12.83,-12.01,-11.19,-10.39,-9.62,-8.88,-8.2,-7.58,-7.04,-6.61,-6.28,-6.07,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_EYE_L_OPEN=1,0.74,0.26,0,0.05,0.19,0.39,0.63,0.87,1.11,1.31,1.45,1.5,1.47,1.4,1.31,1.22,1.13,1.06,1.02,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.995,0.989,0.98,0.97,0.958,0.945,0.93,0.915,0.898,0.88,0.862,0.844,0.826,0.808,0.79,0.772,0.755,0.74,0.725,0.712,0.7,0.69,0.681,0.675,0.671,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.62,0.5,0.34,0.17,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,0.74,0.26,0,0.05,0.19,0.39,0.63,0.87,1.11,1.31,1.45,1.5,1.47,1.4,1.31,1.22,1.13,1.06,1.02,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.995,0.989,0.98,0.97,0.958,0.945,0.93,0.915,0.898,0.88,0.862,0.844,0.826,0.808,0.79,0.772,0.755,0.74,0.725,0.712,0.7,0.69,0.681,0.675,0.671,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.67,0.62,0.5,0.34,0.17,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,-0.001,-0.003,-0.006,-0.008,-0.012,-0.016,-0.02,-0.025,-0.03,-0.035,-0.04,-0.046,-0.052,-0.057,-0.063,-0.069,-0.075,-0.081,-0.087,-0.093,-0.098,-0.103,-0.109,-0.114,-0.118,-0.122,-0.126,-0.13,-0.133,-0.135,-0.137,-0.139,-0.14,-0.14,-0.136,-0.123,-0.102,-0.08,-0.04,-0.01,0.03,0.07,0.11,0.16,0.2,0.25,0.29,0.34,0.38,0.41,0.45,0.48,0.51,0.53,0.546,0.556,0.56,0.56,0.559,0.559,0.558,0.556,0.555,0.553,0.551,0.548,0.546,0.543,0.54,0.536,0.533,0.529,0.525,0.521,0.516,0.512,0.507,0.502,0.497,0.491,0.486,0.48,0.474,0.468,0.462,0.455,0.449,0.442,0.436,0.429,0.422,0.415,0.408,0.4,0.393,0.386,0.378,0.371,0.363,0.355,0.347,0.34,0.332,0.324,0.316,0.308,0.3,0.292,0.284,0.276,0.268,0.26,0.252,0.244,0.236,0.228,0.22,0.213,0.205,0.197,0.189,0.182,0.174,0.167,0.16,0.152,0.145,0.138,0.131,0.124,0.118,0.111,0.105,0.098,0.092,0.086,0.08,0.074,0.069,0.063,0.058,0.053,0.048,0.044,0.039,0.035,0.031,0.027,0.024,0.02,0.017,0.014,0.012,0.009,0.007,0.005,0.004,0.002,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=1\r\r\nPARAM_BROW_R_ANGLE=1\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0.7,1,1,1,1,1,0.84,0.27,0.18,0.09,0,0.002,0.003,0.005,0.007,0.009,0.01,0.012,0.014,0.016,0.31,0.6,0.35,0.1,0.083,0.067,0.05,0.033,0.017,0,0.25,0.5,0.45,0.4,0.2,0,0.85,1,0.85,0,0.41,0.82,0.89,0.96,0.48,0,0.25,0.5,0.25,0,0.97,1,0.97,0,0.15,0.31,0.23,0.15,0.08,0,0.78,1,0.78,0,0.98,1,0.98,0,0.88,1,1,0.6,0.3,0,0.93,1,0.93,0,0.38,0.77,1,1,1,1,1,0.77,0.51,0.25,0.13,0.01,0.006,0.004,0.002,0,0.6,1,0.996,0.8,0.41,0.02,0.37,0.72,0.44,0.15,0.42,0.68,1,1,0.95,0.02,0.95,1,1,0.59,0.29,0,0.9,1,0.9,0,0.65,1,0.98,0.65,0.33,0,0.29,0.58,0.29,0,0.34,0.68,0.34,0,0.93,1,1,0.93,0.46,0,0.49,0.99,1,1,0.988,0,0.96,1,1,1,1,1,0.87,0.22,1,1,1,1,1,0.36,1,1,0.96,0.02,0.84,1,1,1,1,0.998,0.83,0.67,0.5,0.33,0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=2\r\r\nPARAM_BODY_ANGLE_X=0,0.03,0.12,0.26,0.45,0.67,0.94,1.24,1.55,1.9,2.26,2.62,3,3.38,3.74,4.1,4.45,4.76,5.06,5.33,5.55,5.74,5.88,5.97,6,6,6,6,6,6,6,6.013,6.05,6.11,6.19,6.3,6.42,6.55,6.7,6.86,7.04,7.22,7.41,7.6,7.8,8,8.2,8.4,8.59,8.78,8.96,9.14,9.3,9.45,9.58,9.7,9.81,9.89,9.95,9.99,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.97,9.9,9.79,9.64,9.47,9.28,9.08,8.86,8.64,8.42,8.2,7.99,7.78,7.6,7.43,7.28,7.17,7.08,7.02,7,7.06,7.21,7.42,7.69,7.99,8.3,8.62,8.93,9.21,9.47,9.68,9.85,9.96,10,9.95,9.82,9.61,9.32,8.97,8.55,8.06,7.54,6.96,6.35,5.7,5.03,4.34,3.63,2.91,2.18,1.45,0.72,0,-0.83,-1.6,-2.34,-3.03,-3.67,-4.28,-4.85,-5.38,-5.87,-6.33,-6.75,-7.14,-7.51,-7.84,-8.15,-8.43,-8.68,-8.91,-9.11,-9.29,-9.44,-9.58,-9.7,-9.79,-9.87,-9.93,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Y=0,-2.42,-6.39,-9.11,-10,-9.45,-8.01,-5.92,-3.54,-1.06,1.24,3.21,4.72,5.67,6,5.79,5.25,4.47,3.58,2.65,1.78,1.05,0.48,0.13,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.95,1.82,1.61,1.34,1,0.63,0.2,-0.24,-0.72,-1.2,-1.68,-2.15,-2.62,-3.06,-3.47,-3.84,-4.18,-4.46,-4.69,-4.86,-4.96,-5,-4.94,-4.78,-4.54,-4.24,-3.9,-3.54,-3.19,-2.87,-2.58,-2.34,-2.15,-2.04,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.03,-2.13,-2.28,-2.47,-2.71,-2.98,-3.29,-3.6,-3.94,-4.28,-4.63,-4.97,-5.3,-5.61,-5.91,-6.17,-6.41,-6.62,-6.78,-6.9,-6.97,-7,-6.991,-6.96,-6.91,-6.83,-6.72,-6.58,-6.41,-6.19,-5.94,-5.64,-5.31,-4.93,-4.51,-4.05,-3.54,-3,-2.33,-1.66,-1.01,-0.37,0.25,0.84,1.42,1.95,2.45,2.92,3.34,3.72,4.05,4.34,4.58,4.76,4.89,4.97,5,4.92,4.7,4.34,3.86,3.29,2.64,1.91,1.15,0.34,-0.48,-1.32,-2.12,-2.92,-3.67,-4.38,-5.02,-5.59,-6.08,-6.47,-6.76,-6.94,-7,-6.78,-6.21,-5.45,-4.55,-3.62,-2.71,-1.84,-1.11,-0.52,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.02,0.07,0.17,0.29,0.43,0.6,0.8,1,1.22,1.45,1.69,1.93,2.18,2.42,2.66,2.89,3.11,3.32,3.51,3.7,3.86,4,4.14,4.27,4.39,4.49,4.58,4.66,4.73,4.79,4.84,4.88,4.91,4.94,4.96,4.973,4.984,4.992,4.997,5,5.001,5.001,5,5,4.97,4.9,4.78,4.62,4.44,4.23,4.01,3.77,3.53,3.29,3.06,2.84,2.64,2.46,2.3,2.17,2.08,2.02,2,2.018,2.07,2.15,2.25,2.37,2.51,2.66,2.82,2.98,3.14,3.29,3.44,3.58,3.7,3.8,3.89,3.95,3.99,4,3.96,3.86,3.71,3.5,3.25,2.98,2.67,2.36,2.04,1.72,1.41,1.12,0.85,0.61,0.4,0.23,0.1,0.03,0,0.03,0.1,0.21,0.37,0.56,0.78,1.03,1.29,1.58,1.88,2.19,2.5,2.81,3.12,3.42,3.71,3.97,4.22,4.44,4.63,4.79,4.9,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,-0.14,-0.37,-0.53,-0.58,-0.53,-0.38,-0.18,0.06,0.3,0.53,0.72,0.87,0.97,1,0.97,0.9,0.79,0.66,0.51,0.35,0.19,0.05,-0.08,-0.19,-0.27,-0.32,-0.34,-0.34,-0.34,-0.34,-0.34,-0.339,-0.339,-0.339,-0.338,-0.338,-0.337,-0.337,-0.336,-0.335,-0.335,-0.334,-0.333,-0.332,-0.331,-0.33,-0.329,-0.328,-0.326,-0.325,-0.323,-0.322,-0.32,-0.319,-0.317,-0.315,-0.313,-0.311,-0.309,-0.307,-0.305,-0.303,-0.3,-0.298,-0.295,-0.292,-0.29,-0.287,-0.284,-0.281,-0.278,-0.275,-0.271,-0.268,-0.264,-0.261,-0.257,-0.253,-0.25,-0.246,-0.241,-0.237,-0.233,-0.229,-0.224,-0.219,-0.215,-0.21,-0.205,-0.2,-0.195,-0.189,-0.184,-0.179,-0.173,-0.167,-0.161,-0.155,-0.149,-0.143,-0.137,-0.13,-0.124,-0.117,-0.11,-0.103,-0.096,-0.089,-0.081,-0.074,-0.066,-0.058,-0.05,-0.042,-0.034,-0.026,-0.017,-0.009,0,0.015,0.04,0.07,0.12,0.17,0.23,0.29,0.35,0.42,0.49,0.56,0.63,0.69,0.76,0.81,0.86,0.91,0.95,0.98,0.994,1,0.98,0.91,0.82,0.7,0.56,0.41,0.25,0.09,-0.07,-0.23,-0.37,-0.51,-0.62,-0.72,-0.8,-0.84,-0.86,-0.849,-0.82,-0.78,-0.72,-0.66,-0.59,-0.51,-0.44,-0.36,-0.29,-0.23,-0.16,-0.11,-0.06,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.48,1.28,1.82,2,1.67,0.96,0.08,-0.84,-1.67,-2.37,-2.83,-3,-2.9,-2.63,-2.24,-1.79,-1.32,-0.89,-0.52,-0.24,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.23,0.77,1.5,2.23,2.77,3,2.67,1.96,1.08,0.16,-0.67,-1.37,-1.83,-2,-1.96,-1.86,-1.72,-1.54,-1.34,-1.13,-0.92,-0.72,-0.53,-0.35,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0,-0.29,-1.01,-1.88,-2.73,-3.42,-3.85,-4,-3.89,-3.57,-3.06,-2.42,-1.66,-0.83,0.05,0.95,1.83,2.66,3.42,4.06,4.57,4.89,5,4.83,4.38,3.73,2.98,2.21,1.49,0.87,0.4,0.1,0,0.003,0.011,0.025,0.045,0.07,0.1,0.13,0.17,0.21,0.25,0.3,0.35,0.4,0.46,0.52,0.58,0.64,0.7,0.77,0.83,0.9,0.97,1.03,1.1,1.17,1.23,1.3,1.36,1.42,1.48,1.54,1.6,1.65,1.7,1.75,1.79,1.83,1.87,1.9,1.93,1.96,1.975,1.989,1.997,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.04,2.14,2.28,2.46,2.66,2.87,3.08,3.28,3.47,3.65,3.79,3.9,3.97,4,3.994,3.977,3.94,3.9,3.83,3.74,3.63,3.5,3.34,3.16,2.95,2.71,2.44,2.14,1.8,1.42,1,0.53,0.06,-0.41,-0.88,-1.34,-1.79,-2.23,-2.64,-3.04,-3.41,-3.76,-4.06,-4.33,-4.56,-4.75,-4.89,-4.97,-5,-4.98,-4.93,-4.84,-4.74,-4.62,-4.5,-4.38,-4.26,-4.16,-4.07,-4.02,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_P06_ARM_L_2=0,-0.03,-0.1,-0.22,-0.38,-0.57,-0.79,-1.03,-1.28,-1.55,-1.83,-2.11,-2.37,-2.64,-2.89,-3.13,-3.34,-3.53,-3.69,-3.82,-3.92,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4.008,-4.03,-4.06,-4.11,-4.16,-4.22,-4.3,-4.38,-4.46,-4.56,-4.66,-4.76,-4.88,-5,-5.14,-5.27,-5.39,-5.51,-5.63,-5.74,-5.86,-5.97,-6.08,-6.2,-6.32,-6.45,-6.58,-6.71,-6.85,-7,-7.22,-7.48,-7.76,-8.04,-8.31,-8.55,-8.74,-8.88,-8.97,-9,-8.85,-8.45,-7.87,-7.15,-6.36,-5.53,-4.68,-3.87,-3.1,-2.41,-1.84,-1.39,-1.1,-1,-1.06,-1.21,-1.42,-1.69,-1.99,-2.3,-2.62,-2.93,-3.21,-3.47,-3.68,-3.85,-3.96,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_P06_ARM_L_3=0,0.22,0.76,1.41,2.05,2.56,2.89,3,2.95,2.79,2.56,2.25,1.88,1.46,1.01,0.54,0.06,-0.42,-0.88,-1.32,-1.73,-2.09,-2.4,-2.66,-2.84,-2.96,-3,-2.9,-2.63,-2.24,-1.79,-1.32,-0.89,-0.52,-0.24,-0.06,0,-0.019,-0.08,-0.17,-0.29,-0.44,-0.63,-0.83,-1.06,-1.31,-1.58,-1.88,-2.18,-2.5,-2.83,-3.16,-3.51,-3.87,-4.23,-4.59,-4.96,-5.31,-5.68,-6.03,-6.39,-6.73,-7.07,-7.4,-7.71,-8.01,-8.3,-8.57,-8.82,-9.05,-9.26,-9.44,-9.61,-9.75,-9.85,-9.93,-9.98,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.96,-9.86,-9.71,-9.51,-9.29,-9.05,-8.79,-8.54,-8.27,-8.02,-7.79,-7.57,-7.38,-7.22,-7.1,-7.03,-7,-7.007,-7.027,-7.06,-7.1,-7.16,-7.22,-7.3,-7.38,-7.47,-7.56,-7.67,-7.77,-7.89,-8,-8.12,-8.24,-8.36,-8.48,-8.61,-8.73,-8.85,-8.97,-9.08,-9.19,-9.3,-9.4,-9.49,-9.58,-9.66,-9.74,-9.8,-9.86,-9.91,-9.95,-9.98,-9.994,-10,-9.66,-8.75,-7.45,-5.96,-4.42,-2.97,-1.74,-0.8,-0.21,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu18.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.07,0.27,0.59,1.01,1.53,2.14,2.83,3.57,4.38,5.22,6.11,7.01,7.93,8.85,9.75,10.65,11.53,12.35,13.14,13.88,14.56,15.16,15.7,16.16,16.51,16.78,16.95,17,17,17,17,17,17,17,17,17.08,17.29,17.62,18.05,18.54,19.08,19.64,20.21,20.77,21.3,21.77,22.19,22.53,22.79,22.95,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,22.9,22.62,22.15,21.52,20.75,19.82,18.76,17.6,16.3,14.91,13.46,11.9,10.3,8.65,6.96,5.23,3.48,1.72,-0.04,-1.76,-3.5,-5.17,-6.81,-8.39,-9.92,-11.38,-12.73,-14,-15.19,-16.26,-17.2,-18.03,-18.71,-19.27,-19.67,-19.92,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20\r\r\nPARAM_ANGLE_Y=0,0.29,1.01,2,3.15,4.34,5.52,6.64,7.57,8.33,8.82,9,8.22,6.13,2.99,-0.94,-5.3,-9.93,-14.47,-18.72,-22.48,-25.64,-28.01,-29.49,-30,-29.72,-28.97,-27.84,-26.43,-24.87,-23.21,-21.57,-20.05,-18.7,-17.57,-16.71,-16.18,-16,-16.05,-16.18,-16.39,-16.68,-17.04,-17.46,-17.93,-18.45,-19.02,-19.62,-20.27,-20.93,-21.61,-22.3,-23,-23.7,-24.39,-25.07,-25.73,-26.38,-26.98,-27.55,-28.07,-28.54,-28.96,-29.32,-29.61,-29.82,-29.95,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.52,-28.24,-26.25,-23.76,-21,-18,-15,-12.24,-9.75,-7.76,-6.48,-6,-6.3,-7.16,-8.48,-10.18,-12.15,-14.33,-16.56,-18.84,-21.06,-23.19,-25.09,-26.76,-28.14,-29.15,-29.79,-30,-29.84,-29.41,-28.75,-27.92,-27,-26,-25,-24.08,-23.25,-22.59,-22.16,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22\r\r\nPARAM_ANGLE_Z=0,0.06,0.22,0.48,0.83,1.26,1.76,2.33,2.94,3.61,4.3,5.03,5.78,6.53,7.29,8.03,8.77,9.49,10.17,10.82,11.43,11.99,12.49,12.93,13.31,13.6,13.82,13.95,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,13.96,13.86,13.68,13.44,13.14,12.79,12.38,11.93,11.43,10.89,10.31,9.71,9.07,8.41,7.73,7.03,6.31,5.6,4.86,4.14,3.4,2.69,1.97,1.27,0.59,-0.07,-0.71,-1.31,-1.89,-2.43,-2.93,-3.38,-3.79,-4.14,-4.44,-4.68,-4.86,-4.96,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_EYE_L_OPEN=0.7,0.7,0.7,0.7,0.699,0.699,0.699,0.698,0.697,0.697,0.696,0.695,0.694,0.693,0.691,0.69,0.689,0.687,0.685,0.683,0.681,0.679,0.677,0.675,0.673,0.67,0.51,0.24,0.06,0,0,0,0.18,0.46,0.73,0.92,1,0.999,0.997,0.994,0.989,0.982,0.973,0.962,0.949,0.933,0.916,0.895,0.87,0.85,0.82,0.79,0.75,0.71,0.67,0.48,0.22,0.05,0,0,0.18,0.49,0.67,0.51,0.24,0.06,0,0,0.18,0.46,0.73,0.92,1,0.999,0.998,0.995,0.991,0.986,0.98,0.972,0.962,0.951,0.938,0.924,0.908,0.89,0.87,0.85,0.82,0.8,0.77,0.74,0.71,0.67,0.49,0.23,0.06,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.7,0.7,0.7,0.7,0.7,0.699,0.699,0.699,0.698,0.698,0.697,0.697,0.696,0.695,0.694,0.693,0.692,0.691,0.69,0.689,0.688,0.686,0.685,0.683,0.682,0.68,0.51,0.24,0.06,0,0,0,0.18,0.46,0.73,0.92,1,0.999,0.997,0.994,0.989,0.982,0.974,0.963,0.95,0.935,0.918,0.898,0.88,0.85,0.82,0.79,0.76,0.72,0.68,0.49,0.23,0.06,0,0,0.18,0.5,0.68,0.52,0.25,0.06,0,0,0.18,0.46,0.73,0.92,1,1,0.998,0.995,0.992,0.987,0.98,0.973,0.963,0.953,0.94,0.927,0.911,0.893,0.874,0.85,0.83,0.8,0.78,0.75,0.71,0.68,0.49,0.23,0.06,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=1\r\r\nPARAM_EYE_BALL_X=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-1,-1,-1,-1,-0.85,-0.5,-0.06,0.37,0.71,0.93,1,0.999,0.995,0.991,0.986,0.983,0.981,0.98,0.98,0.981,0.982,0.984,0.985,0.987,0.989,0.991,0.993,0.995,0.996,0.998,0.999,1,1,0.87,0.56,0.15,-0.25,-0.56,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.71,-0.77,-0.84,-0.9,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.992,-0.97,-0.93,-0.89,-0.83,-0.76,-0.69,-0.61,-0.52,-0.43,-0.34,-0.24,-0.14,-0.05,0.04,0.13,0.21,0.28,0.35,0.41,0.45,0.49,0.51,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52\r\r\nPARAM_EYE_BALL_Y=0,-0.001,-0.003,-0.006,-0.01,-0.015,-0.02,-0.027,-0.033,-0.039,-0.046,-0.052,-0.058,-0.063,-0.068,-0.072,-0.075,-0.078,-0.079,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.08,-0.15,-0.31,-0.51,-0.71,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.93,-0.75,-0.52,-0.29,-0.11,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.11,-0.28,-0.49,-0.7,-0.86,-0.96,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.992,-0.97,-0.94,-0.89,-0.84,-0.77,-0.7,-0.62,-0.54,-0.45,-0.36,-0.27,-0.18,-0.09,0,0.08,0.16,0.23,0.3,0.35,0.4,0.43,0.45,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46\r\r\nPARAM_HI_SCALE=1\r\r\nPARAM_HI_02=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,0.52,-0.28,-0.82,-1,-0.52,0.28,0.82,1,1,1\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=1\r\r\nPARAM_BROW_L_Y=0,-0.001,-0.005,-0.01,-0.018,-0.028,-0.039,-0.051,-0.065,-0.08,-0.096,-0.113,-0.13,-0.148,-0.167,-0.185,-0.203,-0.222,-0.24,-0.257,-0.274,-0.29,-0.305,-0.319,-0.331,-0.342,-0.352,-0.36,-0.365,-0.369,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37\r\r\nPARAM_BROW_R_Y=0,-0.001,-0.005,-0.01,-0.018,-0.028,-0.039,-0.051,-0.065,-0.08,-0.096,-0.113,-0.13,-0.148,-0.167,-0.185,-0.203,-0.222,-0.24,-0.257,-0.274,-0.29,-0.305,-0.319,-0.331,-0.342,-0.352,-0.36,-0.365,-0.369,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37,-0.37\r\r\nPARAM_BROW_L_X=0,-0.001,-0.003,-0.006,-0.01,-0.015,-0.021,-0.028,-0.035,-0.043,-0.052,-0.061,-0.07,-0.08,-0.09,-0.1,-0.11,-0.12,-0.13,-0.139,-0.148,-0.157,-0.165,-0.172,-0.179,-0.185,-0.19,-0.194,-0.197,-0.199,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2\r\r\nPARAM_BROW_R_X=0,-0.001,-0.003,-0.006,-0.01,-0.015,-0.021,-0.028,-0.035,-0.043,-0.052,-0.061,-0.07,-0.08,-0.09,-0.1,-0.11,-0.12,-0.13,-0.139,-0.148,-0.157,-0.165,-0.172,-0.179,-0.185,-0.19,-0.194,-0.197,-0.199,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2\r\r\nPARAM_BROW_L_ANGLE=0,0,0.001,0.003,0.004,0.007,0.009,0.012,0.016,0.019,0.023,0.027,0.032,0.036,0.041,0.045,0.049,0.054,0.058,0.063,0.067,0.071,0.074,0.078,0.081,0.083,0.086,0.087,0.089,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09\r\r\nPARAM_BROW_R_ANGLE=0,0,0.001,0.003,0.004,0.007,0.009,0.012,0.016,0.019,0.023,0.027,0.032,0.036,0.041,0.045,0.049,0.054,0.058,0.063,0.067,0.071,0.074,0.078,0.081,0.083,0.086,0.087,0.089,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09,0.09\r\r\nPARAM_BROW_L_FORM=-0.48\r\r\nPARAM_BROW_R_FORM=-0.48\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0,1,1,1,0,0.14,0.27,0.98,1,1,0.37,1,1,1,1,0.75,0,0.97,1,1,0.24,0.13,0.02,0.35,0.68,0.34,0,0.16,0.31,0.92,1,1,1,1,1,0.98,0.58,0.3,0.02,0.021,0.019,0.016,0.014,0.012,0.009,0.007,0.005,0.002,0,0.87,1,0.95,0.14,1,1,1,0.62,1,1,1,1,1,1,0.93,0,0.32,0.64,0.32,0,0.1,0.2,0.3,0.4,0.3,0.2,1,1,1,1,1,0.93,1,1,0.6,0.03,0.97,1,1,0.13,0.08,0.04,0.8,1,1,1,1,1,1,1,0.92,0.02,0.11,0.21,1,1,0.93,0,0.55,1,0.55,0,0.84,1,1,0.95,1,1,1,1,0.75,0.08,0.8,1,1,1,1,1,0.984,0.68,0.48,0.28,0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=2\r\r\nPARAM_BODY_ANGLE_X=0,0.03,0.13,0.28,0.49,0.74,1.04,1.37,1.75,2.15,2.58,3.03,3.49,3.97,4.45,4.94,5.42,5.9,6.38,6.84,7.28,7.7,8.1,8.46,8.8,9.1,9.37,9.59,9.76,9.89,9.97,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9.984,9.94,9.85,9.75,9.61,9.44,9.25,9.03,8.79,8.52,8.23,7.93,7.59,7.25,6.88,6.5,6.1,5.69,5.27,4.83,4.38,3.93,3.47,2.99,2.51,2.02,1.54,1.05,0.56,0.06,-0.43,-0.92,-1.42,-1.9,-2.38,-2.86,-3.33,-3.79,-4.24,-4.69,-5.12,-5.54,-5.95,-6.34,-6.72,-7.08,-7.43,-7.76,-8.07,-8.36,-8.63,-8.88,-9.11,-9.31,-9.49,-9.64,-9.77,-9.87,-9.94,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Y=0,0.1,0.38,0.78,1.25,1.75,2.22,2.62,2.9,3,2.87,2.52,2.01,1.39,0.69,-0.04,-0.78,-1.49,-2.16,-2.76,-3.26,-3.66,-3.91,-4,-3.92,-3.71,-3.38,-2.98,-2.53,-2.06,-1.59,-1.16,-0.77,-0.45,-0.2,-0.05,0,-0.008,-0.03,-0.07,-0.13,-0.2,-0.28,-0.37,-0.47,-0.59,-0.71,-0.85,-0.99,-1.13,-1.29,-1.45,-1.62,-1.78,-1.95,-2.13,-2.3,-2.48,-2.65,-2.83,-3,-3.17,-3.34,-3.5,-3.66,-3.81,-3.96,-4.1,-4.23,-4.35,-4.47,-4.57,-4.67,-4.75,-4.83,-4.89,-4.94,-4.97,-4.99,-5,-4.86,-4.49,-3.91,-3.18,-2.37,-1.5,-0.63,0.18,0.91,1.49,1.86,2,1.89,1.57,1.07,0.43,-0.31,-1.12,-1.96,-2.82,-3.65,-4.45,-5.16,-5.79,-6.3,-6.68,-6.92,-7,-6.94,-6.76,-6.49,-6.12,-5.69,-5.21,-4.68,-4.13,-3.57,-3.01,-2.47,-1.96,-1.48,-1.06,-0.7,-0.4,-0.18,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.005,0.019,0.04,0.08,0.12,0.16,0.22,0.29,0.36,0.43,0.52,0.61,0.71,0.81,0.91,1.02,1.14,1.26,1.38,1.51,1.63,1.76,1.9,2.03,2.17,2.31,2.44,2.58,2.72,2.86,3,3.14,3.28,3.41,3.54,3.66,3.77,3.87,3.97,4.07,4.16,4.24,4.32,4.39,4.46,4.52,4.58,4.64,4.69,4.73,4.77,4.81,4.84,4.87,4.9,4.92,4.941,4.958,4.971,4.982,4.99,4.996,4.999,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4.97,4.9,4.79,4.63,4.44,4.22,3.98,3.71,3.43,3.14,2.84,2.54,2.24,1.94,1.65,1.37,1.12,0.88,0.66,0.47,0.31,0.18,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BREATH=0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.992,0.983,0.971,0.956,0.937,0.92,0.89,0.87,0.84,0.81,0.78,0.75,0.72,0.68,0.65,0.61,0.58,0.54,0.5,0.47,0.43,0.4,0.36,0.33,0.29,0.26,0.23,0.2,0.17,0.14,0.12,0.09,0.074,0.056,0.039,0.025,0.015,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_SHOULDER=0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.41,0.47,0.52,0.57,0.63,0.68,0.73,0.77,0.82,0.86,0.89,0.92,0.95,0.97,0.987,0.997,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.996,0.992,0.986,0.979,0.97,0.96,0.949,0.937,0.924,0.91,0.896,0.88,0.864,0.848,0.831,0.814,0.797,0.78,0.762,0.745,0.727,0.71,0.693,0.677,0.661,0.645,0.63,0.615,0.602,0.589,0.577,0.566,0.556,0.547,0.539,0.532,0.527,0.523,0.521,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=1\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.02,0.09,0.2,0.35,0.52,0.73,0.96,1.21,1.48,1.76,2.05,2.35,2.65,2.96,3.27,3.57,3.87,4.16,4.44,4.7,4.94,5.17,5.37,5.55,5.71,5.83,5.92,5.98,6,6.002,6.008,6.017,6.029,6.041,6.054,6.067,6.079,6.089,6.096,6.1,6.1,6.094,6.083,6.066,6.04,6.01,5.97,5.92,5.86,5.79,5.72,5.63,5.52,5.41,5.29,5.15,5,4.83,4.65,4.47,4.28,4.09,3.9,3.7,3.49,3.28,3.07,2.85,2.63,2.41,2.19,1.96,1.73,1.5,1.27,1.03,0.79,0.55,0.32,0.08,-0.16,-0.4,-0.64,-0.89,-1.13,-1.37,-1.61,-1.85,-2.08,-2.32,-2.55,-2.78,-3.01,-3.24,-3.47,-3.69,-3.91,-4.12,-4.33,-4.54,-4.75,-4.95,-5.15,-5.34,-5.53,-5.71,-5.88,-6.06,-6.22,-6.38,-6.54,-6.68,-6.82,-6.96,-7.09,-7.2,-7.32,-7.42,-7.52,-7.61,-7.69,-7.76,-7.82,-7.88,-7.92,-7.95,-7.98,-7.995,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_P01_ARM_R_2=0,0.03,0.13,0.28,0.49,0.74,1.04,1.37,1.75,2.15,2.58,3.03,3.49,3.97,4.45,4.94,5.42,5.9,6.38,6.84,7.28,7.7,8.1,8.46,8.8,9.1,9.37,9.59,9.76,9.89,9.97,10,9.98,9.92,9.83,9.7,9.55,9.37,9.17,8.95,8.71,8.47,8.2,7.94,7.67,7.4,7.13,6.87,6.61,6.37,6.13,5.92,5.72,5.54,5.38,5.25,5.14,5.07,5.02,5,5.003,5.011,5.025,5.045,5.07,5.1,5.13,5.17,5.21,5.26,5.31,5.37,5.43,5.49,5.56,5.63,5.7,5.78,5.86,5.94,6.03,6.12,6.2,6.3,6.39,6.48,6.58,6.68,6.78,6.88,6.98,7.08,7.19,7.29,7.4,7.5,7.6,7.71,7.81,7.92,8.02,8.12,8.22,8.32,8.42,8.52,8.61,8.7,8.8,8.88,8.97,9.06,9.14,9.22,9.3,9.37,9.44,9.51,9.57,9.63,9.69,9.74,9.79,9.83,9.87,9.9,9.93,9.96,9.975,9.989,9.997,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_P01_ARM_R_3=0,0.011,0.04,0.09,0.16,0.25,0.35,0.46,0.59,0.73,0.88,1.04,1.2,1.37,1.55,1.73,1.91,2.09,2.27,2.45,2.63,2.8,2.96,3.12,3.27,3.41,3.54,3.65,3.75,3.84,3.91,3.96,3.99,4,3.988,3.95,3.9,3.82,3.73,3.62,3.5,3.37,3.23,3.08,2.92,2.76,2.6,2.44,2.28,2.12,1.97,1.82,1.68,1.55,1.43,1.32,1.23,1.15,1.09,1.04,1.01,1,1.002,1.007,1.015,1.027,1.041,1.059,1.08,1.1,1.13,1.16,1.19,1.22,1.26,1.3,1.34,1.38,1.42,1.47,1.52,1.57,1.62,1.67,1.72,1.78,1.83,1.89,1.95,2.01,2.07,2.13,2.19,2.25,2.31,2.37,2.44,2.5,2.56,2.63,2.69,2.75,2.81,2.87,2.93,2.99,3.05,3.11,3.17,3.22,3.28,3.33,3.38,3.43,3.48,3.53,3.58,3.62,3.66,3.7,3.74,3.78,3.81,3.84,3.87,3.9,3.92,3.94,3.959,3.973,3.985,3.993,3.998,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=-9,-9.24,-9.64,-9.91,-10,-9.96,-9.86,-9.7,-9.48,-9.22,-8.91,-8.56,-8.19,-7.79,-7.36,-6.94,-6.5,-6.06,-5.64,-5.21,-4.81,-4.44,-4.09,-3.78,-3.52,-3.3,-3.14,-3.04,-3,-3.01,-3.04,-3.09,-3.15,-3.22,-3.31,-3.41,-3.52,-3.63,-3.74,-3.86,-3.99,-4.11,-4.22,-4.34,-4.45,-4.55,-4.65,-4.74,-4.81,-4.88,-4.93,-4.97,-4.99,-5,-4.996,-4.985,-4.966,-4.94,-4.91,-4.87,-4.83,-4.78,-4.73,-4.67,-4.61,-4.55,-4.48,-4.41,-4.34,-4.27,-4.2,-4.12,-4.05,-3.97,-3.9,-3.82,-3.75,-3.68,-3.61,-3.54,-3.47,-3.41,-3.35,-3.29,-3.24,-3.19,-3.15,-3.11,-3.08,-3.05,-3.03,-3.013,-3.003,-3,-3.008,-3.03,-3.07,-3.12,-3.18,-3.25,-3.33,-3.42,-3.52,-3.61,-3.72,-3.83,-3.93,-4.04,-4.15,-4.25,-4.36,-4.45,-4.55,-4.63,-4.71,-4.78,-4.85,-4.9,-4.94,-4.97,-4.994,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_P06_ARM_L_2=1,1,1,1,1,1,1,0.97,0.9,0.79,0.63,0.44,0.22,-0.03,-0.29,-0.58,-0.88,-1.19,-1.5,-1.81,-2.12,-2.42,-2.71,-2.97,-3.22,-3.44,-3.63,-3.79,-3.9,-3.97,-4,-3.995,-3.98,-3.96,-3.93,-3.89,-3.84,-3.8,-3.74,-3.69,-3.63,-3.57,-3.51,-3.45,-3.39,-3.33,-3.27,-3.22,-3.18,-3.13,-3.09,-3.06,-3.04,-3.016,-3.004,-3,-3.002,-3.008,-3.017,-3.029,-3.045,-3.064,-3.08,-3.11,-3.13,-3.16,-3.19,-3.23,-3.26,-3.29,-3.33,-3.36,-3.4,-3.44,-3.48,-3.51,-3.55,-3.59,-3.63,-3.66,-3.7,-3.73,-3.76,-3.8,-3.82,-3.85,-3.88,-3.9,-3.92,-3.944,-3.96,-3.974,-3.985,-3.993,-3.998,-4,-3.996,-3.984,-3.966,-3.94,-3.91,-3.87,-3.83,-3.79,-3.74,-3.69,-3.64,-3.59,-3.53,-3.48,-3.43,-3.37,-3.32,-3.27,-3.23,-3.18,-3.14,-3.11,-3.08,-3.05,-3.03,-3.013,-3.003,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P06_ARM_L_3=6,6.07,6.21,6.38,6.57,6.73,6.87,6.97,7,6.97,6.9,6.79,6.63,6.44,6.22,5.97,5.71,5.42,5.12,4.81,4.5,4.19,3.88,3.58,3.29,3.03,2.78,2.56,2.37,2.21,2.1,2.03,2,2.04,2.16,2.34,2.59,2.89,3.24,3.64,4.06,4.51,4.98,5.45,5.94,6.42,6.9,7.36,7.8,8.21,8.6,8.95,9.25,9.51,9.72,9.87,9.97,10,9.985,9.94,9.86,9.76,9.64,9.49,9.32,9.13,8.92,8.7,8.46,8.2,7.93,7.66,7.37,7.08,6.79,6.49,6.19,5.89,5.58,5.29,5,4.71,4.43,4.15,3.89,3.64,3.4,3.18,2.97,2.78,2.6,2.45,2.32,2.21,2.12,2.05,2.01,2,2.03,2.13,2.28,2.47,2.72,3.01,3.33,3.68,4.06,4.45,4.88,5.3,5.73,6.16,6.59,7.01,7.42,7.81,8.18,8.53,8.85,9.14,9.39,9.6,9.77,9.9,9.97,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=1\r\r\nVISIBLE:PARTS_01_SKETCH=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu19.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.012,-0.05,-0.11,-0.18,-0.29,-0.41,-0.54,-0.7,-0.88,-1.07,-1.28,-1.5,-1.74,-1.98,-2.24,-2.52,-2.8,-3.09,-3.39,-3.7,-4.01,-4.33,-4.66,-4.99,-5.32,-5.66,-6,-6.33,-6.67,-7.01,-7.34,-7.67,-8,-8.32,-8.62,-8.92,-9.2,-9.47,-9.72,-9.96,-10.19,-10.41,-10.62,-10.82,-11,-11.18,-11.35,-11.5,-11.65,-11.79,-11.91,-12.03,-12.14,-12.25,-12.34,-12.43,-12.51,-12.58,-12.65,-12.7,-12.76,-12.8,-12.84,-12.88,-12.91,-12.94,-12.957,-12.973,-12.985,-12.994,-12.998,-13,-12.92,-12.68,-12.3,-11.82,-11.23,-10.58,-9.85,-9.08,-8.27,-7.45,-6.6,-5.77,-4.95,-4.15,-3.4,-2.69,-2.05,-1.47,-0.97,-0.56,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.27,0.96,1.98,3.23,4.62,6.08,7.55,8.99,10.32,11.53,12.53,13.32,13.82,14,13.62,12.54,10.87,8.65,6.04,3.09,-0.13,-3.46,-6.88,-10.32,-13.63,-16.75,-19.67,-22.27,-24.54,-26.38,-27.76,-28.65,-29,-29.07,-29.14,-29.21,-29.27,-29.33,-29.39,-29.44,-29.49,-29.53,-29.58,-29.62,-29.66,-29.69,-29.73,-29.76,-29.78,-29.81,-29.83,-29.86,-29.875,-29.893,-29.909,-29.923,-29.936,-29.947,-29.957,-29.966,-29.973,-29.979,-29.985,-29.989,-29.992,-29.995,-29.997,-29.998,-29.999,-30,-30,-30,-29.94,-29.75,-29.43,-28.99,-28.42,-27.73,-26.92,-25.98,-24.91,-23.73,-22.4,-20.95,-19.38,-17.66,-15.83,-13.86,-11.75,-9.49,-7.08,-4.53,-1.82,0.98,4,7.77,11.37,14.45,16.91,18.66,19.68,20,16.92,9.44,-0.5,-10.44,-17.92,-21,-19.65,-16.36,-12,-7.64,-4.35,-3,-3.03,-3.12,-3.27,-3.47,-3.72,-4.01,-4.34,-4.72,-5.12,-5.54,-6,-6.49,-6.98,-7.5,-8.02,-8.56,-9.11,-9.65,-10.21,-10.76,-11.3,-11.83,-12.35,-12.86,-13.35,-13.82,-14.28,-14.7,-15.1,-15.47,-15.81,-16.11,-16.37,-16.59,-16.76,-16.89,-16.97,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17\r\r\nPARAM_ANGLE_Z=0,-0.03,-0.11,-0.23,-0.4,-0.62,-0.87,-1.16,-1.48,-1.82,-2.19,-2.59,-3.01,-3.43,-3.87,-4.32,-4.77,-5.23,-5.68,-6.13,-6.57,-6.99,-7.41,-7.81,-8.18,-8.52,-8.84,-9.13,-9.38,-9.6,-9.77,-9.89,-9.97,-10,-9.96,-9.85,-9.67,-9.43,-9.15,-8.82,-8.45,-8.08,-7.67,-7.26,-6.84,-6.44,-6.04,-5.66,-5.31,-4.99,-4.71,-4.46,-4.27,-4.12,-4.03,-4,-4.08,-4.28,-4.59,-4.97,-5.41,-5.9,-6.41,-6.93,-7.46,-7.95,-8.42,-8.86,-9.24,-9.55,-9.79,-9.95,-10,-9.94,-9.75,-9.46,-9.09,-8.64,-8.14,-7.58,-6.99,-6.36,-5.73,-5.08,-4.44,-3.81,-3.19,-2.61,-2.07,-1.57,-1.13,-0.74,-0.43,-0.2,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.33,0.57,0.86,1.19,1.56,1.95,2.37,2.81,3.25,3.71,4.18,4.62,5.07,5.5,5.91,6.3,6.66,6.99,7.28,7.52,7.72,7.87,7.97,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.28,0.01,0.01,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.27,0.01,0.01,0.01,0.25,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.28,0.01,0.01,0.01,0.27,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.74,0.26,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0.002,0.006,0.013,0.023,0.035,0.049,0.065,0.083,0.103,0.12,0.15,0.17,0.2,0.22,0.25,0.28,0.3,0.33,0.36,0.38,0.41,0.44,0.46,0.49,0.51,0.54,0.56,0.577,0.595,0.611,0.625,0.637,0.647,0.654,0.658,0.66,0.66,0.659,0.658,0.657,0.655,0.653,0.65,0.647,0.644,0.641,0.637,0.633,0.628,0.623,0.618,0.613,0.607,0.601,0.594,0.588,0.581,0.574,0.567,0.559,0.551,0.543,0.535,0.527,0.518,0.509,0.5,0.491,0.482,0.472,0.462,0.453,0.443,0.433,0.422,0.412,0.402,0.391,0.38,0.37,0.359,0.348,0.337,0.326,0.316,0.304,0.293,0.282,0.271,0.26,0.249,0.238,0.227,0.216,0.204,0.194,0.183,0.172,0.161,0.15,0.14,0.129,0.118,0.108,0.098,0.087,0.077,0.067,0.058,0.048,0.038,0.029,0.02,0.011,0.002,-0.007,-0.015,-0.023,-0.031,-0.039,-0.047,-0.054,-0.061,-0.068,-0.074,-0.081,-0.087,-0.093,-0.098,-0.103,-0.108,-0.113,-0.117,-0.121,-0.124,-0.127,-0.13,-0.133,-0.135,-0.137,-0.138,-0.139,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14\r\r\nPARAM_EYE_BALL_Y=0,0,0.001,0.003,0.006,0.009,0.012,0.016,0.021,0.026,0.032,0.038,0.044,0.051,0.058,0.065,0.072,0.08,0.088,0.096,0.103,0.111,0.119,0.127,0.135,0.143,0.15,0.158,0.165,0.172,0.178,0.185,0.191,0.196,0.201,0.206,0.21,0.214,0.218,0.221,0.225,0.229,0.232,0.236,0.239,0.242,0.246,0.249,0.252,0.256,0.259,0.262,0.265,0.268,0.271,0.274,0.276,0.279,0.282,0.285,0.287,0.29,0.293,0.295,0.298,0.3,0.302,0.305,0.307,0.309,0.311,0.314,0.316,0.318,0.32,0.322,0.324,0.326,0.328,0.329,0.331,0.333,0.335,0.336,0.338,0.34,0.341,0.343,0.344,0.346,0.347,0.348,0.35,0.351,0.352,0.354,0.355,0.356,0.357,0.358,0.359,0.36,0.361,0.362,0.363,0.364,0.365,0.366,0.367,0.368,0.368,0.369,0.37,0.37,0.371,0.372,0.372,0.373,0.373,0.374,0.375,0.375,0.375,0.376,0.376,0.377,0.377,0.377,0.378,0.378,0.378,0.379,0.379,0.379,0.379,0.379,0.379,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38,0.38\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0,-0.008,-0.03,-0.07,-0.12,-0.17,-0.23,-0.29,-0.36,-0.42,-0.48,-0.53,-0.58,-0.62,-0.65,-0.664,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67\r\r\nPARAM_BROW_R_Y=0,-0.008,-0.03,-0.07,-0.12,-0.17,-0.23,-0.29,-0.36,-0.42,-0.48,-0.53,-0.58,-0.62,-0.65,-0.664,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67,-0.67\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=-0.73\r\r\nPARAM_BROW_R_ANGLE=-0.73\r\r\nPARAM_BROW_L_FORM=-0.8\r\r\nPARAM_BROW_R_FORM=-0.8\r\r\nPARAM_MOUTH_FORM=-2\r\r\nPARAM_MOUTH_OPEN_Y=0,0.96,1,0.96,0,1,1,1,1,1,1,0.55,0,1,1,1,1,0.73,0,0.55,1,1,1,1,1,1,1,1,1,0.9,0.72,0.54,0.36,0.18,0,0,0,0,0,0,0,0,0,0.15,0.3,0.302,0.306,0.52,0.73,0.36,0,0.99,1,1,0.06,0.34,0.62,0.58,0.54,0.79,1,0.75,0.45,0.43,0.41,0.98,1,0.83,0.1,0.08,0.05,0.99,1,0.97,0.01,0.75,1,1,1,1,0.89,0.65,0.4,0.75,1,1,1,1,1,1,1,1,0.34,0.28,0.22,0.17,0.11,0.06,0,0,0,0,0,0.3,0.6,0.9,1,0.6,0,0.33,0.65,0.33,0,0.76,1,1,1,1,1,1,0.73,1,1,0.93,0.01,0.05,0.09,0.32,0.56,1,1,1,1,0.77,0.13,0.73,1,0.75,0.17,1,1,0.91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.018,-0.07,-0.15,-0.26,-0.4,-0.56,-0.74,-0.94,-1.16,-1.39,-1.63,-1.88,-2.14,-2.4,-2.68,-2.95,-3.22,-3.5,-3.77,-4.04,-4.3,-4.55,-4.8,-5.03,-5.26,-5.47,-5.66,-5.84,-6,-6.16,-6.31,-6.45,-6.58,-6.7,-6.82,-6.93,-7.03,-7.12,-7.21,-7.29,-7.37,-7.44,-7.5,-7.56,-7.62,-7.66,-7.71,-7.75,-7.79,-7.82,-7.85,-7.87,-7.9,-7.916,-7.933,-7.948,-7.96,-7.971,-7.979,-7.985,-7.99,-7.994,-7.997,-7.998,-7.999,-8,-8,-7.98,-7.92,-7.83,-7.7,-7.55,-7.38,-7.18,-6.96,-6.73,-6.49,-6.25,-6,-5.75,-5.51,-5.27,-5.04,-4.82,-4.63,-4.45,-4.3,-4.17,-4.08,-4.02,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.98,-3.92,-3.83,-3.71,-3.57,-3.41,-3.22,-3.02,-2.82,-2.6,-2.37,-2.14,-1.91,-1.69,-1.47,-1.25,-1.05,-0.85,-0.67,-0.51,-0.36,-0.24,-0.14,-0.06,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,2.79,2.25,1.47,0.58,-0.35,-1.22,-1.95,-2.52,-2.87,-3,-2.89,-2.65,-2.3,-1.89,-1.45,-0.97,-0.49,0,0.58,1.12,1.61,2.05,2.46,2.83,3.16,3.46,3.72,3.96,4.17,4.36,4.52,4.65,4.76,4.85,4.92,4.96,4.99,5,4.982,4.93,4.83,4.69,4.51,4.29,4.02,3.7,3.33,2.92,2.44,1.92,1.33,0.7,0,-0.77,-1.51,-2.21,-2.88,-3.51,-4.12,-4.7,-5.24,-5.75,-6.24,-6.69,-7.11,-7.51,-7.88,-8.21,-8.52,-8.8,-9.05,-9.27,-9.46,-9.63,-9.76,-9.86,-9.94,-9.98,-10,-9.04,-6.72,-3.88,-1.11,1.11,2.52,3,2.02,-0.35,-3.5,-6.65,-9.02,-10,-9.97,-9.85,-9.61,-9.25,-8.74,-8.09,-7.29,-6.34,-5.25,-4,-2.42,-0.88,0.67,2.16,3.54,4.85,6.02,7.01,7.85,8.48,8.86,9,8.59,7.48,5.88,3.98,2.02,0.12,-1.48,-2.59,-3,-2.8,-2.38,-1.85,-1.3,-0.8,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.06,0.23,0.44,0.7,0.96,1.23,1.47,1.68,1.85,1.96,2,1.982,1.93,1.85,1.75,1.63,1.49,1.34,1.18,1.02,0.86,0.71,0.56,0.42,0.3,0.2,0.11,0.05,0.01,0,0.04,0.14,0.3,0.51,0.75,1.04,1.34,1.67,2,2.33,2.66,2.96,3.25,3.49,3.7,3.86,3.96,4,3.97,3.89,3.77,3.6,3.39,3.15,2.88,2.59,2.28,1.95,1.61,1.26,0.9,0.55,0.19,-0.17,-0.51,-0.85,-1.17,-1.48,-1.76,-2.03,-2.27,-2.48,-2.66,-2.8,-2.91,-2.98,-3,-2.96,-2.86,-2.69,-2.48,-2.23,-1.96,-1.68,-1.39,-1.12,-0.85,-0.61,-0.4,-0.23,-0.11,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.012,0.05,0.1,0.18,0.27,0.38,0.5,0.63,0.78,0.93,1.09,1.25,1.42,1.58,1.75,1.91,2.07,2.22,2.37,2.5,2.62,2.73,2.82,2.9,2.95,2.99,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0,0.001,0.002,0.003,0.005,0.007,0.01,0.012,0.015,0.019,0.022,0.026,0.03,0.035,0.039,0.044,0.049,0.055,0.06,0.065,0.071,0.077,0.083,0.089,0.095,0.101,0.107,0.114,0.12,0.126,0.132,0.139,0.145,0.151,0.157,0.164,0.169,0.175,0.181,0.187,0.192,0.198,0.203,0.208,0.213,0.217,0.222,0.226,0.23,0.234,0.237,0.24,0.243,0.245,0.247,0.249,0.25,0.251,0.252,0.252,0.249,0.239,0.223,0.2,0.17,0.14,0.11,0.07,0.02,-0.02,-0.07,-0.12,-0.17,-0.23,-0.28,-0.34,-0.39,-0.45,-0.51,-0.56,-0.61,-0.66,-0.71,-0.75,-0.8,-0.84,-0.87,-0.9,-0.93,-0.96,-0.975,-0.989,-0.997,-1,-0.87,-0.59,-0.23,0.13,0.47,0.75,0.93,1,0.94,0.81,0.63,0.44,0.31,0.25,0.255,0.271,0.3,0.34,0.39,0.45,0.52,0.59,0.65,0.7,0.75,0.8,0.84,0.87,0.9,0.93,0.95,0.97,0.984,0.993,0.998,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0.04,0.15,0.28,0.42,0.53,0.57,0.55,0.48,0.39,0.28,0.16,0.05,-0.04,-0.11,-0.13,-0.11,-0.07,-0.03,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.13,-0.35,-0.5,-0.55,-0.17,0.44,0.86,1,0.9,0.67,0.35,0.03,-0.2,-0.3,-0.27,-0.2,-0.11,-0.02,0.05,0.08,0.074,0.059,0.04,0.021,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0.013,0.04,0.09,0.13,0.16,0.17,0.158,0.12,0.08,0.02,-0.04,-0.1,-0.14,-0.18,-0.19,-0.16,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.04,-0.11,-0.15,-0.17,-0.03,0.2,0.36,0.41,0.36,0.26,0.11,-0.04,-0.14,-0.19,-0.17,-0.11,-0.04,0.03,0.09,0.11,0.102,0.082,0.06,0.03,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.012,-0.05,-0.1,-0.18,-0.27,-0.38,-0.5,-0.63,-0.78,-0.93,-1.09,-1.25,-1.42,-1.58,-1.75,-1.91,-2.07,-2.22,-2.37,-2.5,-2.62,-2.73,-2.82,-2.9,-2.95,-2.99,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.07,-0.12,-0.17,-0.24,-0.32,-0.4,-0.49,-0.59,-0.68,-0.78,-0.88,-0.99,-1.09,-1.19,-1.29,-1.39,-1.48,-1.57,-1.65,-1.72,-1.79,-1.85,-1.9,-1.94,-1.97,-1.994,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P05_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.016,-0.06,-0.14,-0.24,-0.36,-0.5,-0.67,-0.85,-1.04,-1.24,-1.45,-1.67,-1.89,-2.11,-2.33,-2.55,-2.76,-2.96,-3.15,-3.33,-3.5,-3.64,-3.76,-3.86,-3.94,-3.98,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.012,-0.05,-0.1,-0.17,-0.26,-0.36,-0.48,-0.6,-0.74,-0.88,-1.02,-1.17,-1.33,-1.48,-1.63,-1.79,-1.93,-2.08,-2.22,-2.35,-2.47,-2.58,-2.69,-2.78,-2.85,-2.92,-2.96,-2.99,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_L=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P05_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu20.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_ANGLE_Y=300\r\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\n$fadein:PARAM_BODY_ANGLE_X=300\r\r\n$fadein:PARAM_BODY_ANGLE_Y=200\r\r\n$fadein:PARAM_BODY_ANGLE_Z=300\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.007,-0.03,-0.07,-0.13,-0.21,-0.31,-0.44,-0.59,-0.77,-0.99,-1.22,-1.5,-1.81,-2.15,-2.54,-2.97,-3.43,-3.94,-4.5,-5.09,-5.74,-6.45,-7.19,-8,-8.89,-9.8,-10.71,-11.63,-12.53,-13.42,-14.28,-15.1,-15.88,-16.62,-17.29,-17.89,-18.44,-18.9,-19.29,-19.6,-19.82,-19.95,-20,-19.97,-19.87,-19.72,-19.51,-19.26,-18.96,-18.63,-18.25,-17.85,-17.42,-16.97,-16.51,-16.03,-15.55,-15.06,-14.58,-14.1,-13.62,-13.16,-12.72,-12.3,-11.9,-11.54,-11.2,-10.9,-10.63,-10.41,-10.24,-10.11,-10.03,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.93,-9.74,-9.43,-9.02,-8.51,-7.9,-7.22,-6.44,-5.61,-4.73,-3.78,-2.78,-1.75,-0.68,0.41,1.52,2.66,3.78,4.92,6.07,7.18,8.28,9.36,10.42,11.44,12.42,13.36,14.24,15.07,15.83,16.53,17.15,17.69,18.15,18.51,18.78,18.94,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19\r\r\nPARAM_ANGLE_Y=-7,-3.07,3.23,9.1,13.35,15,8.43,-3.43,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.9,-5.1,-4.3,-3.53,-2.8,-2.12,-1.52,-1,-0.57,-0.26,-0.07,0,-0.57,-2.06,-4.23,-6.92,-9.91,-13.03,-16.19,-19.25,-22.12,-24.71,-26.85,-28.53,-29.62,-30,-29.89,-29.56,-29.03,-28.37,-27.55,-26.65,-25.64,-24.57,-23.45,-22.31,-21.15,-19.99,-18.86,-17.74,-16.71,-15.73,-14.83,-14.03,-13.34,-12.77,-12.35,-12.09,-12,-12.05,-12.19,-12.42,-12.72,-13.11,-13.55,-14.07,-14.63,-15.25,-15.91,-16.59,-17.32,-18.07,-18.83,-19.62,-20.41,-21.19,-21.98,-22.76,-23.52,-24.27,-25,-25.69,-26.37,-27,-27.62,-28.14,-28.59,-28.96,-29.26,-29.5,-29.68,-29.81,-29.9,-29.96,-30,-30,-30,-30,-30,-30,-29.999,-29.997,-29.993,-29.988,-29.982,-29.973,-29.962,-29.949,-29.933,-29.915,-29.89,-29.87,-29.84,-29.81,-29.77,-29.73,-29.69,-29.64,-29.58,-29.52,-29.46,-29.39,-29.32,-29.24,-29.15,-29.06,-28.96,-28.85,-28.74,-28.62,-28.49,-28.36,-28.22,-28.07,-27.91,-27.75,-27.57,-27.39,-27.2,-27,-26.63,-25.96,-25.05,-23.89,-22.52,-20.99,-19.36,-17.59,-15.75,-13.87,-12.03,-10.17,-8.37,-6.66,-5.11,-3.68,-2.44,-1.41,-0.66,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.05,-0.18,-0.39,-0.65,-0.94,-1.27,-1.61,-1.95,-2.3,-2.63,-2.95,-3.24,-3.49,-3.7,-3.86,-3.96,-4,-3.999,-3.994,-3.986,-3.975,-3.961,-3.942,-3.92,-3.89,-3.86,-3.83,-3.79,-3.74,-3.69,-3.63,-3.57,-3.5,-3.43,-3.35,-3.26,-3.17,-3.07,-2.97,-2.85,-2.73,-2.61,-2.47,-2.33,-2.18,-2.02,-1.86,-1.68,-1.5,-1.31,-1.11,-0.9,-0.68,-0.45,-0.22,0.03,0.28,0.54,0.81,1.1,1.39,1.69,2,2.33,2.66,2.99,3.31,3.64,3.95,4.27,4.59,4.91,5.22,5.53,5.84,6.14,6.44,6.74,7.04,7.33,7.62,7.9,8.17,8.45,8.72,8.98,9.24,9.5,9.75,9.99,10.23,10.47,10.69,10.92,11.13,11.34,11.54,11.74,11.93,12.11,12.28,12.45,12.61,12.76,12.9,13.04,13.17,13.29,13.4,13.5,13.59,13.68,13.75,13.82,13.87,13.92,13.95,13.98,13.995,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14\r\r\nPARAM_EYE_L_OPEN=0.7,0.78,0.92,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0.26,0.74,1,1,1,0.27,0,0,0.51,0.7,0.7,0.698,0.696,0.694,0.691,0.687,0.683,0.68,0.676,0.671,0.668,0.664,0.661,0.658,0.655,0.653,0.651,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.65,0.18,0.01,0.01,0.01,0.27,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=0.7,0.78,0.92,1,1,1,1,1,1,1,1,1,1,1,0.28,0.01,0.27,0.74,1,1,1,0.28,0.01,0.01,0.51,0.7,0.699,0.697,0.693,0.687,0.681,0.674,0.667,0.659,0.651,0.643,0.635,0.628,0.621,0.615,0.61,0.606,0.603,0.601,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.16,0,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0.88\r\r\nPARAM_EYE_BALL_X=-0.39,-0.39,-0.39,-0.391,-0.391,-0.392,-0.393,-0.393,-0.394,-0.395,-0.395,-0.396,-0.397,-0.397,-0.397,-0.397,-0.397,-0.397,-0.396,-0.395,-0.394,-0.393,-0.391,-0.389,-0.386,-0.383,-0.379,-0.375,-0.371,-0.366,-0.36,-0.353,-0.346,-0.338,-0.328,-0.318,-0.308,-0.296,-0.284,-0.271,-0.258,-0.244,-0.229,-0.214,-0.198,-0.181,-0.165,-0.147,-0.129,-0.111,-0.093,-0.074,-0.055,-0.035,-0.015,0.004,0.025,0.05,0.065,0.086,0.11,0.13,0.15,0.17,0.19,0.21,0.23,0.253,0.27,0.294,0.31,0.334,0.354,0.374,0.394,0.413,0.432,0.451,0.469,0.487,0.504,0.521,0.538,0.554,0.57,0.585,0.599,0.613,0.627,0.639,0.652,0.663,0.674,0.684,0.693,0.702,0.71,0.717,0.723,0.728,0.732,0.736,0.738,0.739,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.74,0.6,0.37,0.21,0.15,0.132,0.115,0.098,0.082,0.067,0.053,0.039,0.025,0.012,0,-0.011,-0.022,-0.033,-0.043,-0.052,-0.061,-0.07,-0.078,-0.085,-0.092,-0.099,-0.105,-0.111,-0.116,-0.121,-0.125,-0.129,-0.133,-0.136,-0.139,-0.142,-0.144,-0.146,-0.147,-0.149,-0.149,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15\r\r\nPARAM_EYE_BALL_Y=-0.58,-0.58,-0.579,-0.578,-0.576,-0.574,-0.572,-0.569,-0.566,-0.562,-0.558,-0.554,-0.55,-0.545,-0.541,-0.536,-0.531,-0.526,-0.52,-0.515,-0.51,-0.504,-0.499,-0.494,-0.489,-0.483,-0.478,-0.474,-0.469,-0.464,-0.46,-0.456,-0.452,-0.448,-0.444,-0.44,-0.436,-0.432,-0.428,-0.425,-0.421,-0.418,-0.415,-0.412,-0.408,-0.405,-0.402,-0.399,-0.397,-0.394,-0.391,-0.388,-0.386,-0.383,-0.381,-0.379,-0.376,-0.374,-0.372,-0.37,-0.368,-0.366,-0.364,-0.362,-0.361,-0.359,-0.357,-0.356,-0.354,-0.353,-0.351,-0.35,-0.349,-0.347,-0.346,-0.345,-0.344,-0.343,-0.342,-0.341,-0.34,-0.339,-0.338,-0.337,-0.337,-0.336,-0.335,-0.335,-0.334,-0.334,-0.333,-0.333,-0.332,-0.332,-0.332,-0.331,-0.331,-0.331,-0.331,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.2,0.02,0.16,0.21,0.209,0.205,0.199,0.192,0.182,0.171,0.158,0.144,0.128,0.112,0.094,0.075,0.056,0.037,0.016,-0.005,-0.03,-0.05,-0.07,-0.09,-0.11,-0.13,-0.151,-0.17,-0.189,-0.207,-0.225,-0.241,-0.257,-0.271,-0.284,-0.296,-0.306,-0.314,-0.321,-0.326,-0.329,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=-0.82,-0.831,-0.849,-0.86,-0.858,-0.853,-0.846,-0.836,-0.824,-0.81,-0.794,-0.777,-0.76,-0.742,-0.725,-0.708,-0.692,-0.676,-0.66,-0.644,-0.629,-0.613,-0.597,-0.582,-0.566,-0.551,-0.535,-0.519,-0.503,-0.487,-0.47,-0.453,-0.437,-0.422,-0.407,-0.392,-0.378,-0.365,-0.352,-0.34,-0.328,-0.316,-0.306,-0.295,-0.286,-0.277,-0.268,-0.26,-0.253,-0.246,-0.24,-0.234,-0.229,-0.225,-0.221,-0.218,-0.215,-0.213,-0.211,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21,-0.21\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0,0.26,0.74,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_R_Y=0,0.26,0.74,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.011,0.023,0.038,0.056,0.076,0.097,0.12,0.14,0.158,0.175,0.19,0.203,0.212,0.218,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.011,0.023,0.038,0.056,0.076,0.097,0.12,0.14,0.158,0.175,0.19,0.203,0.212,0.218,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22\r\r\nPARAM_BROW_L_FORM=0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.323,0.28,0.2,0.11,0,-0.12,-0.25,-0.38,-0.5,-0.62,-0.73,-0.82,-0.9,-0.95,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=-2\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0.7,1,1,1,1,1,0.84,0.27,0.18,0.09,0,0.002,0.003,0.005,0.007,0.009,0.01,0.012,0.014,0.016,0.31,0.6,0.35,0.1,0.083,0.067,0.05,0.033,0.017,0,0.25,0.5,0.45,0.4,0.2,0,0.85,1,0.85,0,0.41,0.82,0.89,0.96,0.48,0,0.26,0.52,1,1,0.97,0,0.91,1,0.91,0,0.95,1,0.96,0.01,0.64,1,1,1,0.55,0,0.94,1,0.94,0,0.71,1,0.71,0,0.99,1,0.988,0,0.95,1,1,1,0.55,0,0.59,1,0.59,0,0.69,1,0.69,0,0.4,0.8,1,1,1,1,1,1,1,1,0.87,0,0.73,1,1,1,1,1,1,1,1,0.67,0.33,0,0,0,0.72,1,0.72,0,0.67,1,1,1,1,1,1,0.6,0.67,0.75,0.37,0,0.68,1,0.68,0,1,1,0.996,0,0.64,1,0.84,0.39,0.22,0.05,0.95,1,1,0.27,1,1,0.98,0.07,0.88,1,0.993,0.3,0.85,1,1,0.93,0.7,0.47,0.23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1,1.001,1.003,1.007,1.013,1.02,1.029,1.039,1.05,1.062,1.075,1.09,1.106,1.122,1.139,1.157,1.177,1.196,1.217,1.24,1.26,1.28,1.3,1.33,1.35,1.37,1.4,1.42,1.44,1.47,1.49,1.51,1.54,1.56,1.58,1.61,1.63,1.65,1.67,1.7,1.72,1.737,1.756,1.775,1.793,1.81,1.827,1.842,1.857,1.87,1.883,1.894,1.905,1.914,1.921,1.928,1.933,1.937,1.939,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94,1.94\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.04,0.08,0.14,0.22,0.31,0.41,0.53,0.67,0.81,0.97,1.14,1.31,1.5,1.7,1.9,2.12,2.34,2.56,2.79,3.03,3.26,3.51,3.75,4,4.25,4.5,4.75,5,5.25,5.49,5.74,5.97,6.21,6.44,6.66,6.88,7.1,7.3,7.5,7.69,7.86,8.03,8.19,8.33,8.47,8.59,8.69,8.78,8.86,8.92,8.96,8.99,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_BODY_ANGLE_Y=0,-0.36,-0.93,-1.46,-1.85,-2,-1.4,0.06,2,3.94,5.4,6,5.28,3.72,1.78,-0.24,-2.08,-3.61,-4.62,-5,-4.69,-3.93,-2.88,-1.73,-0.73,0,0.47,0.89,1.27,1.6,1.89,2.14,2.35,2.52,2.66,2.78,2.87,2.93,2.97,2.99,3,2.86,2.47,1.86,1.08,0.18,-0.82,-1.84,-2.89,-3.9,-4.88,-5.75,-6.52,-7.15,-7.61,-7.9,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.93,-7.75,-7.44,-7.03,-6.55,-5.97,-5.32,-4.64,-3.89,-3.1,-2.32,-1.5,-0.68,0.1,0.89,1.64,2.32,2.97,3.55,4.03,4.44,4.75,4.93,5,4.92,4.71,4.36,3.88,3.32,2.66,1.91,1.12,0.25,-0.65,-1.56,-2.5,-3.44,-4.35,-5.25,-6.12,-6.91,-7.66,-8.32,-8.88,-9.36,-9.71,-9.92,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-9.95,-9.8,-9.55,-9.23,-8.83,-8.37,-7.84,-7.27,-6.65,-6.01,-5.33,-4.64,-3.94,-3.23,-2.54,-1.86,-1.18,-0.55,0.05,0.62,1.14,1.6,2.01,2.36,2.63,2.83,2.96,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.31,0.51,0.73,0.97,1.2,1.42,1.61,1.78,1.9,1.97,2,1.984,1.94,1.86,1.76,1.64,1.5,1.33,1.15,0.96,0.76,0.55,0.33,0.11,-0.11,-0.33,-0.55,-0.76,-0.96,-1.15,-1.33,-1.5,-1.64,-1.76,-1.86,-1.94,-1.98,-2,-1.987,-1.95,-1.88,-1.8,-1.7,-1.58,-1.44,-1.29,-1.12,-0.95,-0.76,-0.57,-0.37,-0.16,0.05,0.26,0.47,0.69,0.9,1.1,1.31,1.51,1.7,1.88,2.05,2.22,2.37,2.5,2.63,2.74,2.83,2.9,2.96,2.99,3,2.999,2.997,2.993,2.988,2.982,2.975,2.966,2.956,2.945,2.932,2.919,2.905,2.89,2.874,2.857,2.84,2.821,2.802,2.782,2.762,2.74,2.72,2.7,2.68,2.65,2.63,2.61,2.58,2.56,2.54,2.51,2.49,2.47,2.44,2.42,2.4,2.38,2.35,2.33,2.31,2.29,2.27,2.24,2.225,2.205,2.186,2.168,2.151,2.134,2.118,2.103,2.088,2.075,2.063,2.051,2.041,2.032,2.023,2.016,2.011,2.006,2.003,2.001,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0.05,0.16,0.3,0.44,0.55,0.62,0.64,0.47,0.15,-0.03,-0.036,-0.042,-0.048,-0.053,-0.057,-0.062,-0.066,-0.069,-0.072,-0.075,-0.078,-0.08,-0.082,-0.084,-0.086,-0.087,-0.088,-0.089,-0.089,-0.09,-0.09,-0.09,-0.09,-0.089,-0.086,-0.081,-0.073,-0.062,-0.046,-0.03,0,0.03,0.06,0.09,0.12,0.14,0.17,0.19,0.22,0.24,0.26,0.28,0.303,0.321,0.338,0.354,0.368,0.381,0.392,0.402,0.411,0.418,0.423,0.427,0.429,0.43,0.428,0.422,0.412,0.399,0.384,0.366,0.346,0.33,0.3,0.28,0.26,0.23,0.21,0.18,0.16,0.13,0.11,0.09,0.072,0.054,0.039,0.026,0.015,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.004,-0.014,-0.03,-0.05,-0.08,-0.11,-0.14,-0.17,-0.2,-0.23,-0.27,-0.3,-0.32,-0.35,-0.37,-0.386,-0.399,-0.407,-0.41,-0.401,-0.38,-0.34,-0.28,-0.22,-0.15,-0.07,0.01,0.1,0.19,0.28,0.37,0.46,0.54,0.62,0.69,0.75,0.81,0.85,0.88,0.903,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91,0.91\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.15,-0.39,-0.56,-0.61,-0.37,0.01,0.36,0.62,0.72,0.55,0.26,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.11,-0.28,-0.44,-0.55,-0.6,-0.28,0.28,0.6,0.57,0.51,0.42,0.34,0.26,0.18,0.09,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=-2,-2.59,-4.02,-5.77,-7.47,-8.84,-9.71,-10,-9.94,-9.78,-9.56,-9.33,-9.14,-9,-8.91,-8.83,-8.75,-8.67,-8.6,-8.53,-8.45,-8.38,-8.31,-8.24,-8.17,-8.11,-8.04,-7.97,-7.9,-7.83,-7.76,-7.69,-7.62,-7.55,-7.48,-7.41,-7.33,-7.25,-7.17,-7.09,-7,-6.9,-6.78,-6.66,-6.52,-6.38,-6.23,-6.08,-5.93,-5.79,-5.65,-5.52,-5.39,-5.27,-5.17,-5.08,-5,-4.92,-4.84,-4.77,-4.69,-4.62,-4.55,-4.48,-4.42,-4.35,-4.28,-4.22,-4.16,-4.1,-4.03,-3.97,-3.91,-3.85,-3.79,-3.73,-3.67,-3.61,-3.55,-3.48,-3.42,-3.36,-3.29,-3.23,-3.16,-3.09,-3.02,-2.95,-2.87,-2.8,-2.72,-2.64,-2.56,-2.47,-2.38,-2.29,-2.2,-2.1,-2,-1.9,-1.79,-1.69,-1.58,-1.48,-1.37,-1.26,-1.16,-1.05,-0.94,-0.83,-0.73,-0.62,-0.51,-0.41,-0.3,-0.19,-0.09,0.01,0.11,0.22,0.32,0.41,0.51,0.6,0.69,0.78,0.87,0.96,1.04,1.12,1.2,1.28,1.35,1.42,1.48,1.55,1.6,1.66,1.71,1.76,1.8,1.84,1.88,1.91,1.94,1.96,1.977,1.99,1.997,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P02_ARM_L_2=-5,-4.74,-4.17,-3.46,-2.73,-2.06,-1.51,-1.14,-1,-1.07,-1.23,-1.45,-1.68,-1.88,-2,-2.07,-2.13,-2.19,-2.24,-2.29,-2.34,-2.38,-2.43,-2.47,-2.52,-2.56,-2.61,-2.67,-2.72,-2.78,-2.85,-2.92,-3,-3.11,-3.26,-3.45,-3.67,-3.89,-4.12,-4.35,-4.55,-4.73,-4.88,-4.97,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-4.997,-4.987,-4.97,-4.95,-4.92,-4.89,-4.85,-4.8,-4.75,-4.7,-4.64,-4.58,-4.51,-4.45,-4.37,-4.3,-4.22,-4.14,-4.06,-3.98,-3.89,-3.81,-3.72,-3.63,-3.54,-3.46,-3.37,-3.28,-3.19,-3.11,-3.02,-2.94,-2.86,-2.78,-2.7,-2.63,-2.55,-2.49,-2.42,-2.36,-2.3,-2.25,-2.2,-2.15,-2.11,-2.08,-2.05,-2.03,-2.013,-2.003,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P02_ARM_L_3=-2,-1.86,-1.49,-0.96,-0.33,0.33,0.96,1.49,1.86,2,1.93,1.77,1.55,1.32,1.12,1,0.93,0.87,0.81,0.76,0.71,0.67,0.62,0.58,0.53,0.49,0.44,0.39,0.34,0.28,0.22,0.15,0.08,0,-0.12,-0.27,-0.46,-0.67,-0.89,-1.11,-1.32,-1.51,-1.68,-1.81,-1.92,-1.98,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.992,-1.97,-1.93,-1.88,-1.81,-1.73,-1.64,-1.54,-1.42,-1.3,-1.16,-1.02,-0.87,-0.71,-0.54,-0.37,-0.18,0,0.19,0.38,0.58,0.78,0.99,1.19,1.4,1.6,1.81,2.01,2.22,2.42,2.62,2.81,3,3.18,3.37,3.54,3.71,3.87,4.02,4.16,4.3,4.42,4.54,4.64,4.73,4.81,4.88,4.93,4.97,4.99,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=6,5.78,5.24,4.59,3.95,3.44,3.11,3,3.08,3.26,3.5,3.74,3.92,4,3.992,3.97,3.93,3.88,3.82,3.75,3.67,3.58,3.48,3.38,3.28,3.17,3.06,2.94,2.83,2.72,2.62,2.52,2.42,2.33,2.25,2.18,2.12,2.07,2.03,2.01,2,2.05,2.19,2.41,2.7,3.02,3.39,3.76,4.14,4.51,4.86,5.18,5.46,5.69,5.86,5.96,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.005,6.018,6.04,6.07,6.11,6.15,6.21,6.26,6.33,6.4,6.48,6.56,6.65,6.74,6.83,6.93,7.04,7.14,7.25,7.36,7.48,7.59,7.71,7.82,7.94,8.06,8.18,8.29,8.41,8.52,8.64,8.75,8.86,8.96,9.07,9.17,9.26,9.35,9.44,9.52,9.6,9.67,9.74,9.79,9.85,9.89,9.93,9.96,9.98,9.995,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_P06_ARM_R_2=3,2.74,2.17,1.46,0.73,0.06,-0.49,-0.86,-1,-0.93,-0.77,-0.55,-0.32,-0.12,0,0.07,0.13,0.19,0.24,0.29,0.34,0.38,0.43,0.47,0.52,0.56,0.61,0.67,0.72,0.78,0.85,0.92,1,1.11,1.26,1.45,1.67,1.89,2.12,2.35,2.55,2.73,2.88,2.97,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.002,3.009,3.02,3.035,3.054,3.08,3.1,3.13,3.16,3.2,3.24,3.28,3.32,3.37,3.42,3.47,3.52,3.57,3.63,3.68,3.74,3.8,3.85,3.91,3.97,4.03,4.09,4.15,4.2,4.26,4.32,4.37,4.43,4.48,4.53,4.58,4.63,4.68,4.72,4.76,4.8,4.84,4.87,4.9,4.92,4.95,4.965,4.98,4.991,4.998,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_P06_ARM_R_3=5,4.79,4.24,3.44,2.49,1.51,0.56,-0.24,-0.79,-1,-0.93,-0.77,-0.55,-0.32,-0.12,0,0.07,0.13,0.18,0.23,0.28,0.33,0.37,0.41,0.46,0.5,0.55,0.6,0.65,0.71,0.77,0.84,0.91,1,1.16,1.43,1.78,2.19,2.63,3.09,3.53,3.94,4.29,4.59,4.81,4.95,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.006,5.022,5.05,5.09,5.14,5.19,5.26,5.33,5.41,5.5,5.6,5.7,5.81,5.92,6.04,6.17,6.3,6.43,6.56,6.7,6.84,6.99,7.13,7.28,7.43,7.57,7.72,7.87,8.01,8.16,8.3,8.44,8.57,8.7,8.83,8.96,9.08,9.19,9.3,9.4,9.5,9.59,9.67,9.74,9.81,9.86,9.91,9.95,9.98,9.994,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu21.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.26,-0.9,-1.78,-2.8,-3.86,-4.91,-5.9,-6.73,-7.41,-7.84,-8,-7.991,-7.97,-7.92,-7.87,-7.8,-7.71,-7.61,-7.5,-7.37,-7.24,-7.09,-6.93,-6.77,-6.6,-6.41,-6.23,-6.03,-5.83,-5.63,-5.42,-5.2,-4.99,-4.77,-4.54,-4.32,-4.1,-3.88,-3.66,-3.44,-3.22,-3,-2.76,-2.55,-2.36,-2.2,-2.05,-1.92,-1.79,-1.67,-1.55,-1.44,-1.32,-1.2,-1.06,-0.92,-0.77,-0.6,-0.42,-0.2,0.04,0.3,0.57,0.83,1.1,1.34,1.55,1.74,1.88,1.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_ANGLE_Y=0,0.32,1.13,2.22,3.5,4.82,6.13,7.37,8.42,9.26,9.8,10,9.36,7.65,5.07,1.84,-1.73,-5.53,-9.26,-12.74,-15.83,-18.42,-20.37,-21.58,-22,-21.87,-21.48,-20.86,-20.02,-18.97,-17.74,-16.33,-14.77,-13.07,-11.25,-9.29,-7.27,-5.17,-3.02,-0.83,1.39,3.61,5.83,8.02,10.17,12.27,14.29,16.25,18.07,19.77,21.33,22.74,23.97,25.02,25.86,26.48,26.87,27,26.72,25.9,24.53,22.68,20.37,17.65,14.6,11.25,7.66,3.79,-3.12,-9.3,-13.56,-16,-18.53,-20.71,-22.63,-24.3,-25.69,-26.86,-27.81,-28.55,-29.11,-29.53,-29.8,-29.95,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30\r\r\nPARAM_ANGLE_Z=0,0.2,0.77,1.67,2.81,4.16,5.64,7.2,8.8,10.36,11.84,13.19,14.33,15.23,15.8,16,15.53,14.3,12.47,10.15,7.51,4.66,1.67,-1.39,-4.41,-7.38,-10.14,-12.73,-15.05,-17,-18.89,-20.42,-21.68,-22.68,-23.44,-24.01,-24.41,-24.69,-24.85,-24.95,-24.99,-25,-25,-24.8,-24.25,-23.35,-22.12,-20.63,-18.87,-16.9,-14.75,-12.47,-10.04,-7.53,-4.94,-2.31,1.02,3.86,6.32,8.47,10.31,11.86,13.17,14.26,15.14,15.84,16.36,16.72,16.93,17,16.92,16.71,16.38,15.95,15.46,14.92,14.36,13.79,13.23,12.7,12.23,11.81,11.47,11.21,11.05,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0.88\r\r\nPARAM_EYE_BALL_X=-0.39,-0.401,-0.43,-0.46,-0.49,-0.52,-0.53,-0.526,-0.515,-0.496,-0.47,-0.44,-0.41,-0.37,-0.33,-0.28,-0.23,-0.19,-0.14,-0.08,-0.03,0.02,0.07,0.12,0.17,0.22,0.26,0.3,0.34,0.37,0.4,0.43,0.45,0.467,0.477,0.48,0.476,0.464,0.446,0.42,0.4,0.37,0.33,0.3,0.26,0.23,0.19,0.16,0.13,0.1,0.07,0.05,0.026,0.012,0.003,0,0.004,0.016,0.034,0.06,0.08,0.11,0.14,0.17,0.2,0.23,0.26,0.28,0.31,0.324,0.338,0.347,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35,0.35\r\r\nPARAM_EYE_BALL_Y=-0.58,-0.54,-0.43,-0.29,-0.15,-0.04,0,0,-0.001,-0.001,-0.002,-0.003,-0.005,-0.006,-0.008,-0.01,-0.012,-0.014,-0.016,-0.018,-0.02,-0.022,-0.024,-0.026,-0.028,-0.03,-0.031,-0.033,-0.034,-0.036,-0.037,-0.038,-0.039,-0.039,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.039,-0.039,-0.038,-0.037,-0.035,-0.033,-0.031,-0.028,-0.025,-0.021,-0.016,-0.012,-0.006,0,0.011,0.027,0.047,0.07,0.09,0.12,0.15,0.18,0.2,0.23,0.25,0.27,0.293,0.308,0.32,0.327,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33,0.33\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=-0.86\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0,0.04,0.13,0.25,0.37,0.46,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_BROW_R_Y=0,0.04,0.13,0.26,0.38,0.47,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.18,0.27,0.35,0.41,0.45,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47,0.47\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.1,0.18,0.26,0.34,0.4,0.44,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46\r\r\nPARAM_BROW_L_FORM=0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.25,0.06,-0.17,-0.42,-0.64,-0.83,-0.95,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_MOUTH_FORM=-2\r\r\nPARAM_MOUTH_OPEN_Y=0,0,1,1,1,1,0.5,0,0.54,1,0.64,0.2,0.95,1,0.85,0,0.98,1,1,0.4,1,1,1,1,0.996,0,0.93,1,0.983,0.1,0.05,0,0.84,1,0.84,0,0.84,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.89,0.67,0.44,0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.019,-0.07,-0.16,-0.28,-0.42,-0.6,-0.79,-1,-1.23,-1.48,-1.74,-2.01,-2.28,-2.55,-2.84,-3.12,-3.39,-3.66,-3.92,-4.16,-4.4,-4.62,-4.81,-4.99,-5.14,-5.28,-5.4,-5.51,-5.6,-5.69,-5.75,-5.81,-5.86,-5.9,-5.93,-5.96,-5.978,-5.99,-5.998,-6.002,-6.004,-6.004,-6.002,-6.001,-6,-5.97,-5.9,-5.8,-5.66,-5.5,-5.32,-5.13,-4.94,-4.76,-4.58,-4.42,-4.27,-4.15,-4.01,-3.88,-3.77,-3.66,-3.57,-3.48,-3.41,-3.34,-3.28,-3.23,-3.18,-3.14,-3.11,-3.08,-3.06,-3.042,-3.027,-3.016,-3.009,-3.004,-3.001,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Y=0,0.01,0.04,0.09,0.15,0.22,0.31,0.41,0.52,0.63,0.75,0.87,1,1.13,1.25,1.37,1.48,1.59,1.69,1.78,1.85,1.91,1.96,1.99,2,1.96,1.84,1.65,1.41,1.12,0.79,0.43,0.06,-0.32,-0.7,-1.06,-1.41,-1.73,-2.01,-2.26,-2.46,-2.6,-2.7,-2.73,-2.733,-2.739,-2.746,-2.748,-2.744,-2.731,-2.71,-2.67,-2.62,-2.55,-2.46,-2.3,-2.08,-1.81,-1.51,-1.18,-0.83,-0.48,-0.13,0.22,0.55,0.85,1.13,1.37,1.57,1.72,1.82,1.85,1.82,1.76,1.65,1.53,1.38,1.22,1.05,0.87,0.7,0.53,0.38,0.23,0.1,0,-0.08,-0.13,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15,-0.15\r\r\nPARAM_BODY_ANGLE_Z=0,0.13,0.48,1.03,1.74,2.56,3.47,4.4,5.35,6.28,7.16,7.95,8.65,9.22,9.64,9.91,10,9.87,9.52,8.95,8.2,7.3,6.27,5.11,3.91,2.63,1.32,0,-1.27,-2.54,-3.73,-4.85,-5.86,-6.76,-7.54,-8.16,-8.62,-8.9,-9,-8.92,-8.68,-8.31,-7.8,-7.19,-6.47,-5.65,-4.75,-3.78,-2.76,-1.69,-0.58,0.54,1.65,2.77,3.88,4.96,6,6.94,7.7,8.34,8.84,9.23,9.52,9.73,9.86,9.95,9.99,9.999,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=-10,-9.92,-9.72,-9.41,-9.03,-8.59,-8.1,-7.59,-7.07,-6.54,-6.05,-5.58,-5.14,-4.76,-4.45,-4.21,-4.05,-4,-4.04,-4.15,-4.33,-4.57,-4.85,-5.18,-5.55,-5.92,-6.33,-6.74,-7.16,-7.56,-7.96,-8.34,-8.69,-9.01,-9.29,-9.54,-9.73,-9.88,-9.97,-10,-9.96,-9.86,-9.71,-9.5,-9.25,-8.98,-8.67,-8.36,-8.04,-7.72,-7.41,-7.12,-6.85,-6.61,-6.4,-6.23,-6.1,-6.03,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_P02_ARM_L_2=-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.007,-6.025,-6.06,-6.09,-6.14,-6.2,-6.26,-6.32,-6.39,-6.46,-6.53,-6.59,-6.66,-6.72,-6.78,-6.83,-6.88,-6.92,-6.96,-6.98,-6.995,-7,-6.991,-6.97,-6.93,-6.87,-6.81,-6.74,-6.67,-6.59,-6.51,-6.43,-6.35,-6.28,-6.21,-6.15,-6.1,-6.06,-6.03,-6.007,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_P02_ARM_L_3=-2,-1.97,-1.9,-1.78,-1.64,-1.46,-1.25,-1.03,-0.79,-0.54,-0.29,-0.03,0.23,0.48,0.72,0.95,1.17,1.37,1.55,1.7,1.83,1.92,1.98,2,1.993,1.975,1.94,1.91,1.86,1.8,1.74,1.68,1.61,1.54,1.47,1.41,1.34,1.28,1.22,1.17,1.12,1.08,1.04,1.02,1.005,1,1.009,1.03,1.07,1.13,1.19,1.26,1.33,1.41,1.49,1.57,1.65,1.72,1.79,1.85,1.9,1.94,1.97,1.993,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=4,3.95,3.82,3.61,3.35,3.06,2.73,2.39,2.05,1.7,1.37,1.05,0.76,0.51,0.3,0.14,0.04,0,0.03,0.1,0.22,0.38,0.57,0.79,1.03,1.28,1.55,1.83,2.11,2.37,2.64,2.89,3.13,3.34,3.53,3.69,3.82,3.92,3.98,4,3.96,3.86,3.71,3.5,3.25,2.98,2.67,2.36,2.04,1.72,1.41,1.12,0.85,0.61,0.4,0.23,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_2=-5,-5,-5,-5,-5.06,-5.23,-5.49,-5.81,-6.18,-6.58,-7.01,-7.44,-7.88,-8.29,-8.69,-9.05,-9.37,-9.63,-9.83,-9.96,-10,-9.97,-9.87,-9.72,-9.53,-9.29,-9.02,-8.71,-8.4,-8.06,-7.72,-7.37,-7.03,-6.7,-6.39,-6.09,-5.83,-5.59,-5.38,-5.22,-5.1,-5.03,-5,-5.04,-5.17,-5.37,-5.63,-5.93,-6.28,-6.66,-7.05,-7.45,-7.85,-8.24,-8.6,-8.94,-9.24,-9.5,-9.71,-9.87,-9.97,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_P06_ARM_R_3=-1,-1,-1,-1,-1,-1,-1.04,-1.17,-1.37,-1.63,-1.94,-2.29,-2.68,-3.08,-3.5,-3.92,-4.32,-4.71,-5.06,-5.37,-5.63,-5.83,-5.96,-6,-5.94,-5.77,-5.5,-5.15,-4.72,-4.23,-3.68,-3.12,-2.51,-1.89,-1.26,-0.66,-0.06,0.5,1.04,1.51,1.94,2.31,2.6,2.82,2.95,3,2.92,2.69,2.34,1.87,1.32,0.69,0.02,-0.69,-1.41,-2.13,-2.83,-3.48,-4.09,-4.63,-5.1,-5.48,-5.76,-5.94,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu22.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.69,2.49,5.1,8.08,11.17,14.05,16.52,18.4,19.58,20,19.63,18.59,16.95,14.81,12.29,9.39,6.23,2.91,-0.5,-3.91,-7.23,-10.39,-13.29,-15.81,-17.95,-19.59,-20.63,-21,-20.86,-20.46,-19.84,-19.01,-17.99,-16.83,-15.56,-14.18,-12.73,-11.24,-9.76,-8.27,-6.82,-5.44,-4.17,-3.01,-1.99,-1.16,-0.54,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.3,0.63,1.07,1.58,2.16,2.77,3.42,4.08,4.75,5.4,6.04,6.65,7.2,7.71,8.15,8.5,8.77,8.94,9,8.75,8.11,7.16,6,4.71,3.35,1.99,0.66,-0.58,-1.71,-2.63,-3.36,-3.84,-4,-3.97,-3.9,-3.78,-3.62,-3.43,-3.2,-2.96,-2.7,-2.42,-2.14,-1.86,-1.58,-1.3,-1.04,-0.8,-0.57,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.74,-5.61,-8.88,-12.29,-15.46,-18.17,-20.24,-21.54,-22,-21.53,-20.21,-18.13,-15.41,-12.22,-8.54,-4.54,-0.32,4,8.32,12.54,16.54,20.22,23.41,26.13,28.21,29.53,30,29.71,28.87,27.57,25.82,23.7,21.25,18.61,15.71,12.67,9.55,6.45,3.33,0.29,-2.61,-5.25,-7.7,-9.82,-11.57,-12.87,-13.71,-14,-13.77,-13.11,-12.06,-10.74,-9.11,-7.29,-5.29,-3.15,-0.9,1.37,3.71,6.03,8.29,10.51,12.59,14.54,16.34,17.94,19.32,20.45,21.3,21.81,22,21.56,20.31,18.4,15.84,12.84,9.44,5.75,1.93,-2,-5.94,-9.72,-13.29,-16.61,-19.56,-22.12,-24.19,-25.71,-26.67,-27,-25.96,-23.18,-18.88,-13.47,-7.49,-1,5.49,11.47,16.88,21.18,23.96,25,24.83,24.37,23.62,22.63,21.44,20.09,18.56,16.99,15.3,13.58,11.84,10.17,8.5,6.93,5.46,4.13,2.94,1.92,1.11,0.5,0.13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.94,-3.23,-6.03,-8.76,-10.95,-12.35,-12.82,-12.11,-10.2,-7.37,-3.98,-0.28,3.45,6.99,10.2,12.94,15.18,17.24,18.83,20.02,20.85,21.39,21.71,21.86,21.91,21.913,21.57,20.57,19.08,17.14,14.86,12.28,9.52,6.65,3.68,0.68,-2.24,-5.08,-7.8,-10.27,-12.55,-14.49,-16.09,-17.28,-18.04,-18.31,-18.1,-17.49,-16.53,-15.27,-13.77,-12.07,-10.26,-8.33,-6.36,-4.35,-2.41,-0.5,1.3,2.95,4.48,5.8,7.28,8.57,9.71,10.68,11.51,12.21,12.79,13.27,13.67,14,14.36,14.68,14.97,15.23,15.46,15.67,15.85,16,16.14,16.25,16.34,16.42,16.48,16.53,16.57,16.59,16.608,16.617,16.62,16.31,15.47,14.18,12.56,10.76,8.81,6.86,5.06,3.44,2.15,1.31,1,1.14,1.53,2.16,2.99,3.99,5.12,6.41,7.73,9.15,10.59,12.05,13.46,14.86,16.18,17.42,18.53,19.53,20.39,21.07,21.58,21.89,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0.63,0.86,0.856,0.845,0.826,0.8,0.77,0.74,0.7,0.65,0.61,0.56,0.51,0.46,0.4,0.35,0.3,0.25,0.2,0.15,0.1,0.06,0.02,-0.01,-0.05,-0.07,-0.092,-0.107,-0.117,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.015,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02,-0.02\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,-0.52,-0.71,-0.706,-0.696,-0.68,-0.66,-0.63,-0.6,-0.56,-0.52,-0.48,-0.44,-0.39,-0.35,-0.3,-0.25,-0.21,-0.16,-0.11,-0.07,-0.03,0.01,0.04,0.07,0.1,0.13,0.145,0.159,0.167,0.17,0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.36,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.42,0.31,0.15,-0.04,-0.23,-0.42,-0.58,-0.69,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73\r\r\nPARAM_BROW_R_ANGLE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.09,-0.19,-0.31,-0.42,-0.54,-0.64,-0.7,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73,-0.73\r\r\nPARAM_BROW_L_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.993,-0.975,-0.95,-0.92,-0.88,-0.85,-0.83,-0.807,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8\r\r\nPARAM_BROW_R_FORM=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.33,-0.47,-0.59,-0.7,-0.77,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8,-0.8\r\r\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1.03,-1.13,-1.26,-1.42,-1.58,-1.74,-1.87,-1.97,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0.74,1,0.74,0,0.91,1,1,0.58,0.55,0.51,0.25,0,0,0,0.89,1,0.89,0,0.27,0.55,1,1,1,1,1,0.6,1,1,0.984,0,0.89,1,1,1,1,1,1,1,1,0.68,0.68,0.68,0.68,0.68,0.34,0,0,0,0,0,0.67,1,0.87,0.4,0.38,0.361,0.88,1,0.86,0.31,0.16,0,0.26,0.52,1,1,0.984,0.16,0.29,0.41,1,1,1,1,1,0.24,0.96,1,1,1,0.988,0.01,0.45,0.89,1,1,1,1,1,1,1,1,1,0.47,0.93,1,1,1,1,1,1,1,1,1,1,1,0.84,0.42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0.02,0.08,0.17,0.28,0.43,0.59,0.77,0.96,1.16,1.37,1.58,1.78,1.98,2.17,2.35,2.5,2.65,2.77,2.87,2.94,2.98,3,2.92,2.68,2.3,1.82,1.23,0.58,-0.15,-0.92,-1.73,-2.55,-3.4,-4.23,-5.05,-5.85,-6.6,-7.31,-7.95,-8.53,-9.03,-9.44,-9.75,-9.93,-10,-9.95,-9.8,-9.56,-9.24,-8.86,-8.43,-7.94,-7.44,-6.9,-6.35,-5.79,-5.25,-4.72,-4.22,-3.75,-3.32,-2.94,-2.61,-2.35,-2.16,-2.04,-2,-2.04,-2.17,-2.37,-2.63,-2.94,-3.29,-3.68,-4.08,-4.5,-4.92,-5.32,-5.71,-6.06,-6.37,-6.63,-6.83,-6.96,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0,-0.21,-0.75,-1.53,-2.42,-3.35,-4.22,-4.95,-5.52,-5.87,-6,-5.88,-5.56,-5.06,-4.44,-3.75,-3,-2.25,-1.56,-0.94,-0.44,-0.12,0,-0.09,-0.34,-0.72,-1.22,-1.79,-2.43,-3.08,-3.75,-4.39,-5.01,-5.57,-6.06,-6.46,-6.75,-6.94,-7,-6.981,-6.92,-6.82,-6.68,-6.5,-6.27,-5.99,-5.67,-5.3,-4.87,-4.41,-3.9,-3.33,-2.73,-2.07,-1.37,-0.63,0.17,1,2.07,3.04,3.95,4.8,5.57,6.26,6.88,7.42,7.89,8.28,8.59,8.81,8.95,9,8.89,8.59,8.12,7.49,6.76,5.93,5.02,4.08,3.12,2.16,1.23,0.36,-0.46,-1.18,-1.81,-2.31,-2.69,-2.92,-3,-2.94,-2.78,-2.53,-2.22,-1.87,-1.5,-1.13,-0.78,-0.47,-0.22,-0.06,0,-0.03,-0.1,-0.22,-0.38,-0.56,-0.78,-1.01,-1.25,-1.5,-1.75,-1.99,-2.22,-2.44,-2.62,-2.78,-2.9,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BODY_ANGLE_Z=0,0.04,0.17,0.37,0.63,0.94,1.3,1.71,2.13,2.57,3.03,3.49,3.94,4.38,4.79,5.19,5.54,5.85,6.12,6.34,6.5,6.6,6.63,6.44,5.91,5.07,4,2.76,1.39,-0.01,-1.45,-2.85,-4.18,-5.38,-6.43,-7.3,-7.93,-8.34,-8.47,-8.33,-7.92,-7.29,-6.44,-5.45,-4.32,-3.08,-1.79,-0.45,0.91,2.23,3.49,4.69,5.78,6.77,7.61,8.29,8.81,9.14,9.4,9.6,9.75,9.86,9.94,9.99,10,10,10,10,10,10,10,10,9.96,9.83,9.62,9.32,8.96,8.52,8.01,7.44,6.8,6.1,5.36,4.57,3.74,2.86,1.94,1,0.03,-0.98,-2,-3.09,-4.03,-4.87,-5.59,-6.2,-6.72,-7.14,-7.46,-7.71,-7.87,-7.97,-8,-7.95,-7.79,-7.55,-7.24,-6.87,-6.45,-5.99,-5.5,-5,-4.5,-4.01,-3.55,-3.13,-2.76,-2.45,-2.21,-2.05,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=-0.73\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=-6,-5.981,-5.93,-5.84,-5.73,-5.59,-5.44,-5.27,-5.1,-4.91,-4.72,-4.52,-4.33,-4.14,-3.96,-3.78,-3.62,-3.47,-3.34,-3.22,-3.13,-3.06,-3.02,-3,-3.06,-3.24,-3.52,-3.89,-4.32,-4.81,-5.35,-5.92,-6.5,-7.08,-7.65,-8.19,-8.68,-9.11,-9.48,-9.76,-9.94,-10,-9.95,-9.82,-9.6,-9.3,-8.94,-8.51,-8.03,-7.49,-6.92,-6.3,-5.65,-4.99,-4.3,-3.6,-2.9,-2.21,-1.52,-0.84,-0.18,0.46,1.06,1.63,2.16,2.65,3.08,3.46,3.77,4.03,4.21,4.33,4.37,4.26,3.96,3.49,2.89,2.17,1.38,0.53,-0.35,-1.23,-2.08,-2.89,-3.61,-4.22,-4.69,-5,-5.21,-5.39,-5.55,-5.67,-5.77,-5.85,-5.9,-5.95,-5.98,-5.994,-6.003,-6.007,-6.006,-6.004,-6.001,-6,-5.981,-5.93,-5.86,-5.77,-5.67,-5.57,-5.46,-5.36,-5.26,-5.18,-5.11,-5.05,-5.01,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_P01_ARM_R_2=-4,-3.97,-3.9,-3.79,-3.63,-3.44,-3.22,-2.97,-2.71,-2.42,-2.12,-1.81,-1.5,-1.19,-0.88,-0.58,-0.29,-0.03,0.22,0.44,0.63,0.79,0.9,0.97,1,0.94,0.76,0.48,0.11,-0.32,-0.81,-1.35,-1.92,-2.5,-3.08,-3.65,-4.19,-4.68,-5.11,-5.48,-5.76,-5.94,-6,-5.994,-5.975,-5.94,-5.9,-5.85,-5.79,-5.73,-5.65,-5.57,-5.48,-5.39,-5.3,-5.21,-5.11,-5.01,-4.92,-4.82,-4.72,-4.63,-4.54,-4.46,-4.38,-4.31,-4.24,-4.18,-4.13,-4.08,-4.05,-4.02,-4.005,-4,-4.016,-4.06,-4.14,-4.24,-4.37,-4.52,-4.69,-4.87,-5.07,-5.29,-5.51,-5.75,-5.98,-6.23,-6.47,-6.71,-6.95,-7.19,-7.42,-7.64,-7.85,-8.05,-8.23,-8.4,-8.55,-8.68,-8.79,-8.88,-8.95,-8.99,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_P01_ARM_R_3=0,0.03,0.1,0.21,0.36,0.54,0.74,0.97,1.22,1.48,1.76,2.03,2.32,2.61,2.89,3.17,3.44,3.69,3.94,4.16,4.37,4.55,4.7,4.83,4.92,4.98,5,4.94,4.76,4.48,4.11,3.68,3.19,2.65,2.08,1.5,0.92,0.35,-0.19,-0.68,-1.11,-1.48,-1.76,-1.94,-2,-1.984,-1.94,-1.86,-1.76,-1.63,-1.48,-1.31,-1.13,-0.93,-0.71,-0.49,-0.25,-0.02,0.23,0.47,0.71,0.95,1.19,1.42,1.64,1.85,2.05,2.23,2.4,2.55,2.68,2.79,2.88,2.95,2.99,3,2.999,2.995,2.989,2.981,2.971,2.959,2.946,2.931,2.915,2.898,2.88,2.862,2.843,2.823,2.804,2.784,2.765,2.746,2.727,2.709,2.692,2.676,2.662,2.648,2.637,2.627,2.619,2.613,2.609,2.608,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61,2.61\r\r\nPARAM_P01_ARM_L_1=-6,-6.03,-6.1,-6.22,-6.36,-6.54,-6.75,-6.97,-7.21,-7.46,-7.71,-7.97,-8.23,-8.48,-8.72,-8.95,-9.17,-9.37,-9.55,-9.7,-9.83,-9.92,-9.98,-10,-9.96,-9.83,-9.63,-9.37,-9.06,-8.71,-8.32,-7.92,-7.5,-7.08,-6.68,-6.29,-5.94,-5.63,-5.37,-5.17,-5.04,-5,-5.003,-5.013,-5.028,-5.049,-5.07,-5.1,-5.14,-5.17,-5.21,-5.26,-5.3,-5.35,-5.4,-5.45,-5.49,-5.54,-5.59,-5.64,-5.68,-5.73,-5.77,-5.81,-5.85,-5.88,-5.91,-5.94,-5.96,-5.976,-5.989,-5.997,-6,-5.987,-5.95,-5.9,-5.82,-5.74,-5.65,-5.55,-5.45,-5.35,-5.26,-5.18,-5.1,-5.05,-5.01,-5,-5.013,-5.05,-5.1,-5.17,-5.26,-5.35,-5.44,-5.54,-5.63,-5.72,-5.8,-5.87,-5.92,-5.96,-5.99,-6,-5.981,-5.93,-5.86,-5.77,-5.67,-5.57,-5.46,-5.36,-5.26,-5.18,-5.11,-5.05,-5.01,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_P01_ARM_L_2=-4,-4.03,-4.1,-4.21,-4.37,-4.56,-4.78,-5.03,-5.29,-5.58,-5.88,-6.19,-6.5,-6.81,-7.12,-7.42,-7.71,-7.97,-8.22,-8.44,-8.63,-8.79,-8.9,-8.97,-9,-8.94,-8.76,-8.48,-8.11,-7.68,-7.19,-6.65,-6.08,-5.5,-4.92,-4.35,-3.81,-3.32,-2.89,-2.52,-2.24,-2.06,-2,-2.003,-2.013,-2.03,-2.05,-2.08,-2.12,-2.16,-2.21,-2.27,-2.33,-2.4,-2.48,-2.56,-2.64,-2.74,-2.84,-2.94,-3.05,-3.17,-3.3,-3.42,-3.56,-3.7,-3.84,-3.99,-4.15,-4.31,-4.47,-4.64,-4.82,-5,-5.2,-5.39,-5.57,-5.75,-5.92,-6.08,-6.23,-6.38,-6.53,-6.66,-6.79,-6.91,-7.03,-7.14,-7.24,-7.33,-7.42,-7.5,-7.58,-7.65,-7.71,-7.77,-7.82,-7.86,-7.9,-7.93,-7.95,-7.975,-7.989,-7.997,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_P01_ARM_L_3=0,-0.02,-0.08,-0.17,-0.29,-0.43,-0.59,-0.78,-0.98,-1.18,-1.4,-1.63,-1.86,-2.09,-2.31,-2.53,-2.75,-2.95,-3.15,-3.33,-3.49,-3.64,-3.76,-3.86,-3.94,-3.98,-4,-3.94,-3.76,-3.48,-3.11,-2.68,-2.19,-1.65,-1.08,-0.5,0.08,0.65,1.19,1.68,2.11,2.48,2.76,2.94,3,2.991,2.96,2.92,2.86,2.78,2.69,2.59,2.47,2.35,2.21,2.07,1.92,1.76,1.6,1.43,1.27,1.1,0.92,0.75,0.58,0.41,0.24,0.08,-0.08,-0.24,-0.38,-0.52,-0.65,-0.78,-0.89,-1,-1.1,-1.2,-1.29,-1.37,-1.45,-1.51,-1.58,-1.63,-1.69,-1.73,-1.78,-1.81,-1.85,-1.88,-1.9,-1.92,-1.94,-1.956,-1.968,-1.978,-1.986,-1.992,-1.996,-1.999,-2,-2.001,-2.001,-2.001,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu23.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.13,-0.48,-1.03,-1.74,-2.56,-3.47,-4.4,-5.35,-6.28,-7.16,-7.95,-8.65,-9.22,-9.64,-9.91,-10,-9.9,-9.63,-9.21,-8.64,-7.97,-7.18,-6.3,-5.36,-4.38,-3.33,-2.27,-1.18,-0.08,0.98,2.03,3.07,4.03,4.96,5.82,6.59,7.28,7.87,8.35,8.7,8.92,9,8.984,8.94,8.86,8.75,8.61,8.43,8.22,7.98,7.7,7.38,7.03,6.63,6.19,5.71,5.19,4.62,4,3.16,2.29,1.5,0.85,0.37,0.09,0,0.1,0.38,0.81,1.38,2.06,2.82,3.65,4.51,5.39,6.27,7.12,7.92,8.67,9.33,9.91,10.37,10.71,10.93,11,10.95,10.79,10.52,10.17,9.74,9.23,8.65,8.02,7.33,6.6,5.82,5.02,4.18,3.35,2.5,1.65,0.82,-0.02,-0.82,-1.6,-2.33,-3.02,-3.65,-4.23,-4.74,-5.17,-5.52,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_ANGLE_Y=0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-0.95,-0.83,-0.62,-0.36,-0.04,0.34,0.75,1.2,1.66,2.16,2.66,3.18,3.7,4.2,4.7,5.19,5.65,6.09,6.49,6.86,7.19,7.46,7.69,7.86,7.96,8,7.73,7.03,5.95,4.6,3.05,1.36,-0.45,-2.25,-4.09,-5.83,-7.48,-9,-10.34,-11.44,-12.28,-12.81,-13,-12.41,-10.88,-8.81,-6.47,-4.12,-1.93,0,2.34,4.5,6.45,8.28,9.92,11.4,12.75,13.93,14.98,15.9,16.69,17.35,17.91,18.36,18.72,18.98,19.16,19.27,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3,19.3\r\r\nPARAM_ANGLE_Z=0,1.13,3.86,7.5,11.14,13.87,15,14.76,14.07,12.99,11.58,9.92,8.01,5.93,3.75,1.5,-0.75,-2.93,-5.01,-6.92,-8.58,-9.99,-11.07,-11.76,-12,-11.81,-11.27,-10.41,-9.32,-7.97,-6.48,-4.83,-3.07,-1.22,0.65,2.58,4.48,6.34,8.17,9.89,11.49,12.97,14.29,15.43,16.36,17.05,17.48,17.63,17.46,16.95,16.15,15.13,13.88,12.48,10.94,9.3,7.58,5.83,4.04,2.26,0.53,-1.18,-2.78,-4.27,-5.65,-6.88,-7.95,-8.81,-9.46,-9.86,-10,-9.74,-9.02,-7.9,-6.41,-4.65,-2.67,-0.51,1.72,4.01,6.31,8.52,10.6,12.54,14.26,15.76,16.97,17.86,18.42,18.61,18.46,18.04,17.36,16.46,15.39,14.17,12.79,11.36,9.83,8.28,6.71,5.2,3.69,2.27,0.93,-0.27,-1.34,-2.26,-3,-3.55,-3.88,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.52,0.7,0.19,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.52,0.7,0.19,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0.88\r\r\nPARAM_EYE_BALL_X=-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.39,-0.47,-0.5,-0.497,-0.487,-0.472,-0.453,-0.43,-0.4,-0.37,-0.34,-0.3,-0.27,-0.23,-0.2,-0.16,-0.13,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,-0.58,0.18,0.46,0.457,0.448,0.435,0.416,0.39,0.37,0.34,0.31,0.28,0.25,0.21,0.18,0.15,0.12,0.09,0.07,0.04,0.025,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=-0.86\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0.34\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-2\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0.13,0.25,1,1,0.96,0.01,0.06,0.11,0.16,0.21,1,1,1,1,1,0.34,0.88,1,1,1,1,0.77,1,1,1,1,1,1,1,0.58,0.91,1,1,0.93,0.47,0,0.002,0.004,0.006,0.008,0.24,0.48,0.24,0,0.19,0.39,0.5,0.6,1,1,1,1,1,0.59,0.98,1,0.9,0.43,1,1,1,1,1,0.49,0.67,0.85,0.64,0.42,0.21,0,0,0,0.2,0.39,1,1,1,0.32,1,1,1,1,0.91,0,0.89,1,1,0.87,0.96,1,1,1,1,1,1,0.7,0.35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.02,-0.08,-0.17,-0.28,-0.43,-0.59,-0.77,-0.96,-1.16,-1.37,-1.58,-1.78,-1.98,-2.17,-2.35,-2.5,-2.65,-2.77,-2.87,-2.94,-2.98,-3,-2.97,-2.9,-2.79,-2.64,-2.47,-2.28,-2.08,-1.86,-1.64,-1.42,-1.2,-0.99,-0.78,-0.6,-0.43,-0.28,-0.17,-0.08,-0.02,0,-0.11,-0.43,-0.93,-1.57,-2.31,-3.12,-3.96,-4.82,-5.65,-6.45,-7.16,-7.79,-8.3,-8.68,-8.92,-9,-8.94,-8.77,-8.5,-8.15,-7.72,-7.23,-6.68,-6.12,-5.51,-4.89,-4.26,-3.66,-3.06,-2.5,-1.96,-1.49,-1.06,-0.69,-0.4,-0.18,-0.05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.21,-0.75,-1.53,-2.42,-3.35,-4.22,-4.95,-5.52,-5.87,-6,-5.88,-5.56,-5.06,-4.44,-3.75,-3,-2.25,-1.56,-0.94,-0.44,-0.12,0,-0.11,-0.41,-0.88,-1.49,-2.19,-2.97,-3.76,-4.58,-5.37,-6.12,-6.8,-7.4,-7.89,-8.25,-8.47,-8.55,-8.51,-8.39,-8.19,-7.93,-7.6,-7.22,-6.79,-6.32,-5.81,-5.26,-4.68,-4.09,-3.48,-2.86,-2.23,-1.62,-1,-0.4,0.19,0.76,1.29,1.8,2.27,2.7,3.09,3.42,3.7,3.93,4.1,4.2,4.23,4.18,4.02,3.78,3.46,3.07,2.61,2.13,1.59,1.03,0.45,-0.12,-0.7,-1.27,-1.8,-2.29,-2.74,-3.13,-3.46,-3.7,-3.85,-3.91,-3.86,-3.72,-3.5,-3.23,-2.91,-2.55,-2.19,-1.82,-1.46,-1.11,-0.8,-0.53,-0.3,-0.14,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.18,-0.67,-1.4,-2.31,-3.33,-4.41,-5.46,-6.45,-7.33,-8.06,-8.62,-8.96,-9.08,-9.03,-8.9,-8.69,-8.41,-8.06,-7.67,-7.22,-6.74,-6.23,-5.7,-5.16,-4.61,-4.06,-3.52,-3,-2.49,-2.03,-1.59,-1.2,-0.85,-0.55,-0.32,-0.14,-0.04,0,-0.07,-0.25,-0.55,-0.95,-1.42,-1.96,-2.58,-3.21,-3.88,-4.57,-5.26,-5.93,-6.6,-7.23,-7.82,-8.35,-8.82,-9.23,-9.56,-9.8,-9.95,-10,-9.98,-9.92,-9.82,-9.68,-9.5,-9.3,-9.06,-8.79,-8.49,-8.16,-7.8,-7.42,-7.02,-6.6,-6.16,-5.7,-5.22,-4.73,-4.22,-3.7,-3.18,-2.64,-2.1,-1.56,-1.01,-0.45,0.1,0.65,1.2,1.74,2.25,2.7,3.11,3.46,3.76,4.02,4.24,4.43,4.58,4.71,4.8,4.87,4.93,4.96,4.98,4.995,4.999,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=-0.73\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.11,-0.39,-0.76,-1.2,-1.66,-2.11,-2.54,-2.9,-3.19,-3.37,-3.44,-3.32,-3,-2.53,-1.96,-1.31,-0.64,0.03,0.69,1.31,1.86,2.32,2.68,2.92,3,2.97,2.87,2.72,2.53,2.28,1.99,1.67,1.32,0.94,0.55,0.12,-0.3,-0.73,-1.16,-1.59,-2.01,-2.42,-2.81,-3.18,-3.53,-3.85,-4.14,-4.39,-4.6,-4.77,-4.9,-4.97,-5,-4.999,-4.994,-4.987,-4.977,-4.963,-4.945,-4.92,-4.9,-4.87,-4.84,-4.8,-4.76,-4.72,-4.67,-4.62,-4.56,-4.49,-4.43,-4.35,-4.27,-4.19,-4.1,-4,-3.89,-3.76,-3.62,-3.46,-3.3,-3.12,-2.94,-2.76,-2.57,-2.38,-2.19,-2,-1.8,-1.61,-1.44,-1.27,-1.12,-0.97,-0.84,-0.71,-0.6,-0.5,-0.4,-0.32,-0.25,-0.18,-0.13,-0.08,-0.05,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,-0.07,-0.26,-0.55,-0.91,-1.32,-1.75,-2.19,-2.6,-2.96,-3.25,-3.44,-3.51,-3.25,-2.58,-1.6,-0.39,0.95,2.36,3.78,5.16,6.45,7.62,8.58,9.34,9.83,10,9.94,9.75,9.45,9.05,8.56,7.99,7.34,6.64,5.88,5.09,4.25,3.4,2.54,1.67,0.82,-0.02,-0.85,-1.63,-2.37,-3.07,-3.71,-4.27,-4.78,-5.21,-5.54,-5.79,-5.95,-6,-5.91,-5.65,-5.25,-4.73,-4.1,-3.39,-2.61,-1.78,-0.91,-0.02,0.89,1.79,2.67,3.53,4.34,5.1,5.8,6.42,6.96,7.4,7.73,7.93,8,7.98,7.92,7.81,7.67,7.48,7.25,6.98,6.67,6.31,5.91,5.48,5,4.47,3.97,3.51,3.08,2.69,2.32,1.99,1.69,1.41,1.16,0.94,0.74,0.56,0.41,0.28,0.18,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,-0.1,-0.36,-0.74,-1.21,-1.74,-2.28,-2.83,-3.37,-3.87,-4.33,-4.7,-5,-5.19,-5.25,-5.08,-4.62,-3.95,-3.12,-2.2,-1.24,-0.26,0.68,1.57,2.37,3.03,3.55,3.88,4,3.96,3.86,3.69,3.47,3.19,2.87,2.5,2.11,1.68,1.24,0.76,0.29,-0.2,-0.68,-1.16,-1.64,-2.1,-2.54,-2.96,-3.35,-3.71,-4.03,-4.31,-4.55,-4.74,-4.88,-4.97,-5,-4.96,-4.84,-4.65,-4.4,-4.1,-3.75,-3.36,-2.94,-2.49,-2.03,-1.53,-1.03,-0.53,-0.01,0.49,1,1.49,1.97,2.43,2.87,3.28,3.65,4,4.31,4.54,4.73,4.86,4.95,5.01,5.04,5.041,5.034,5.02,5.006,5,4.96,4.83,4.65,4.41,4.12,3.8,3.46,3.1,2.73,2.36,2,1.64,1.31,1,0.72,0.47,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.92,-0.73,-0.44,-0.08,0.32,0.74,1.16,1.57,1.95,2.29,2.58,2.8,2.95,3,2.98,2.91,2.79,2.64,2.46,2.25,2,1.74,1.45,1.16,0.84,0.52,0.2,-0.12,-0.44,-0.76,-1.07,-1.36,-1.64,-1.9,-2.14,-2.35,-2.54,-2.7,-2.83,-2.92,-2.98,-3,-2.983,-2.93,-2.85,-2.74,-2.6,-2.43,-2.25,-2.04,-1.81,-1.56,-1.29,-1,-0.7,-0.38,-0.05,0.29,0.64,1.01,1.39,1.78,2.18,2.58,3,3.41,3.75,4.05,4.3,4.49,4.65,4.78,4.87,4.93,4.97,4.994,5,4.96,4.83,4.65,4.41,4.12,3.8,3.46,3.1,2.73,2.36,2,1.64,1.31,1,0.72,0.47,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_2=0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-1.9,-1.66,-1.29,-0.85,-0.35,0.17,0.7,1.21,1.69,2.12,2.47,2.76,2.94,3,2.984,2.94,2.86,2.76,2.64,2.5,2.33,2.16,1.97,1.77,1.56,1.35,1.13,0.92,0.71,0.5,0.29,0.09,-0.09,-0.27,-0.43,-0.57,-0.69,-0.8,-0.89,-0.95,-0.99,-1,-0.987,-0.95,-0.88,-0.8,-0.7,-0.58,-0.44,-0.28,-0.12,0.06,0.25,0.45,0.65,0.87,1.09,1.32,1.55,1.79,2.03,2.27,2.52,2.76,3,3.23,3.42,3.58,3.71,3.81,3.88,3.93,3.97,3.986,3.996,4,4,3.97,3.87,3.72,3.53,3.3,3.04,2.77,2.48,2.19,1.89,1.6,1.32,1.05,0.8,0.57,0.38,0.22,0.1,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_3=0,-0.19,-0.69,-1.41,-2.31,-3.3,-4.34,-5.4,-6.42,-7.37,-8.24,-8.95,-9.51,-9.87,-10,-9.79,-9.24,-8.45,-7.46,-6.37,-5.22,-4.07,-2.94,-1.89,-0.94,-0.16,0.46,0.86,1,0.96,0.83,0.62,0.35,0.01,-0.38,-0.83,-1.31,-1.83,-2.38,-2.96,-3.54,-4.13,-4.73,-5.31,-5.89,-6.46,-6.99,-7.5,-7.98,-8.42,-8.81,-9.16,-9.45,-9.69,-9.86,-9.96,-10,-9.95,-9.79,-9.55,-9.23,-8.84,-8.4,-7.91,-7.37,-6.8,-6.21,-5.6,-4.97,-4.34,-3.7,-3.08,-2.47,-1.88,-1.31,-0.76,-0.25,0.22,0.63,1,1.32,1.56,1.75,1.89,1.98,2.03,2.05,2.056,2.043,2.024,2.007,2,1.983,1.93,1.86,1.76,1.65,1.52,1.38,1.24,1.09,0.94,0.8,0.66,0.52,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu24.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.24,-0.88,-1.85,-3.06,-4.4,-5.82,-7.22,-8.53,-9.69,-10.66,-11.39,-11.84,-12,-11.7,-10.86,-9.57,-7.85,-5.83,-3.54,-1.06,1.52,4.16,6.81,9.37,11.76,14,15.99,17.72,19.11,20.13,20.78,21,20.78,20.17,19.25,18.04,16.63,15.03,13.31,11.53,9.7,7.83,6.02,4.26,2.58,1.05,-0.37,-1.57,-2.57,-3.3,-3.78,-3.94,-3.85,-3.6,-3.21,-2.69,-2.08,-1.39,-0.65,0.13,0.93,1.73,2.49,3.22,3.89,4.49,5.01,5.43,5.74,5.93,6,5.87,5.48,4.88,4.1,3.18,2.12,0.96,-0.25,-1.5,-2.75,-3.96,-5.12,-6.18,-7.1,-7.88,-8.48,-8.87,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_ANGLE_Y=0,-0.23,-0.85,-1.82,-3.08,-4.55,-6.2,-7.95,-9.74,-11.53,-13.29,-14.98,-16.55,-18,-19.61,-21.07,-22.37,-23.56,-24.61,-25.55,-26.38,-27.09,-27.7,-28.23,-28.67,-29.03,-29.33,-29.56,-29.73,-29.86,-29.94,-29.99,-30,-29.985,-29.94,-29.85,-29.73,-29.57,-29.36,-29.11,-28.81,-28.45,-28.04,-27.56,-27.03,-26.42,-25.75,-25.01,-24.21,-23.39,-22.51,-21.59,-20.66,-19.67,-18.64,-17.6,-16.5,-15.36,-14.21,-13,-11.79,-10.62,-9.49,-8.4,-7.37,-6.38,-5.44,-4.57,-3.75,-3.01,-2.34,-1.74,-1.22,-0.8,-0.46,-0.21,-0.05,0,-0.12,-0.45,-0.99,-1.71,-2.56,-3.53,-4.64,-5.77,-6.99,-8.22,-9.47,-10.68,-11.88,-13.01,-14.07,-15.03,-15.88,-16.62,-17.2,-17.64,-17.91,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_ANGLE_Z=0,-0.11,-0.41,-0.9,-1.56,-2.35,-3.28,-4.33,-5.44,-6.64,-7.91,-9.18,-10.5,-11.82,-13.09,-14.36,-15.56,-16.67,-17.72,-18.65,-19.44,-20.1,-20.59,-20.89,-21,-20.91,-20.64,-20.2,-19.62,-18.87,-18.01,-16.99,-15.88,-14.64,-13.32,-11.88,-10.39,-8.8,-7.18,-5.48,-3.77,-1.98,-0.21,1.61,3.39,5.21,6.98,8.77,10.48,12.18,13.8,15.39,16.88,18.32,19.64,20.88,21.99,23.01,23.87,24.62,25.2,25.64,25.91,26,25.89,25.57,25.06,24.38,23.55,22.58,21.49,20.27,19,17.6,16.17,14.68,13.15,11.58,10,8.4,6.84,5.29,3.77,2.29,0.87,-0.5,-1.76,-2.96,-4.05,-5.03,-5.9,-6.63,-7.21,-7.64,-7.91,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0.88\r\r\nPARAM_EYE_BALL_X=-0.39,-0.35,-0.26,-0.13,0.02,0.16,0.27,0.36,0.43,0.49,0.55,0.59,0.62,0.65,0.67,0.685,0.694,0.699,0.7,0.691,0.67,0.63,0.59,0.53,0.48,0.42,0.36,0.3,0.24,0.18,0.13,0.09,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=-0.58,-0.51,-0.35,-0.13,0.1,0.26,0.33,0.321,0.3,0.26,0.21,0.16,0.1,0.04,-0.01,-0.06,-0.1,-0.12,-0.13,-0.128,-0.124,-0.117,-0.109,-0.099,-0.089,-0.078,-0.067,-0.055,-0.044,-0.034,-0.025,-0.016,-0.01,-0.004,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=-0.26\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=-0.37\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.23\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.95,1,0.95,0,0.21,0.41,1,1,0.87,0,0.96,1,1,1,0.988,0.38,0.28,0.19,0.09,0,0.07,0.14,0.8,1,1,1,1,1,1,1,0.93,0.61,0.3,0.68,1,1,1,0.72,1,1,1,1,1,0.21,0.53,0.85,0.89,0.93,0.93,0.93,0.93,0.93,0.93,0.62,0.31,0.01,0.006,0.004,0.002,0,0.96,1,1,0.24,0.27,0.29,1,1,1,1,0.94,0,0.87,1,1,1,1,1,1,1,1,1,1,1,0.86,0.43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.13,-0.28,-0.47,-0.71,-0.98,-1.29,-1.6,-1.94,-2.28,-2.63,-2.97,-3.3,-3.61,-3.91,-4.17,-4.41,-4.62,-4.78,-4.9,-4.97,-5,-4.981,-4.93,-4.84,-4.72,-4.57,-4.39,-4.19,-3.96,-3.71,-3.43,-3.14,-2.83,-2.5,-2.16,-1.81,-1.44,-1.08,-0.7,-0.32,0.07,0.45,0.84,1.22,1.6,1.97,2.34,2.7,3.04,3.39,3.71,4.01,4.31,4.58,4.83,5.06,5.27,5.46,5.62,5.75,5.86,5.94,5.98,6,5.93,5.72,5.39,4.96,4.42,3.81,3.15,2.43,1.67,0.89,0.11,-0.67,-1.43,-2.15,-2.81,-3.42,-3.96,-4.39,-4.72,-4.93,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BODY_ANGLE_Y=0,-0.21,-0.75,-1.53,-2.42,-3.35,-4.22,-4.95,-5.52,-5.87,-6,-5.88,-5.56,-5.06,-4.44,-3.75,-3,-2.25,-1.56,-0.94,-0.44,-0.12,0,-0.09,-0.34,-0.72,-1.22,-1.79,-2.43,-3.08,-3.75,-4.39,-5.01,-5.57,-6.06,-6.46,-6.75,-6.94,-7,-6.93,-6.72,-6.41,-5.99,-5.5,-4.95,-4.35,-3.72,-3.08,-2.44,-1.82,-1.24,-0.7,-0.22,0.2,0.54,0.79,0.95,1,0.982,0.93,0.84,0.72,0.57,0.38,0.17,-0.08,-0.36,-0.66,-0.99,-1.35,-1.73,-2.13,-2.57,-3.02,-3.5,-4,-4.52,-5.01,-5.48,-5.92,-6.33,-6.72,-7.09,-7.43,-7.75,-8.04,-8.31,-8.56,-8.79,-8.99,-9.18,-9.34,-9.49,-9.61,-9.72,-9.81,-9.88,-9.93,-9.97,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10\r\r\nPARAM_BODY_ANGLE_Z=0,-0.04,-0.15,-0.33,-0.57,-0.85,-1.18,-1.55,-1.92,-2.33,-2.74,-3.16,-3.56,-3.96,-4.34,-4.69,-5.01,-5.29,-5.54,-5.73,-5.88,-5.97,-6,-6.001,-6,-5.99,-5.97,-5.92,-5.85,-5.76,-5.63,-5.46,-5.25,-4.99,-4.69,-4.34,-3.95,-3.5,-3,-2.34,-1.6,-0.82,0.01,0.86,1.73,2.61,3.46,4.3,5.1,5.85,6.53,7.15,7.69,8.15,8.51,8.78,8.94,9,8.95,8.82,8.61,8.32,7.96,7.54,7.07,6.55,5.98,5.38,4.73,4.07,3.39,2.7,2,1.3,0.61,-0.07,-0.73,-1.38,-1.98,-2.55,-3.07,-3.54,-3.96,-4.32,-4.61,-4.82,-4.95,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=-0.73\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0.014,0.05,0.11,0.18,0.26,0.34,0.42,0.5,0.57,0.62,0.66,0.69,0.7,0.687,0.65,0.6,0.54,0.47,0.4,0.32,0.25,0.18,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.001,-0.002,-0.017,-0.05,-0.11,-0.21,-0.36,-0.55,-0.8,-1.13,-1.52,-2,-2.54,-3.11,-3.69,-4.28,-4.87,-5.47,-6.06,-6.63,-7.18,-7.7,-8.19,-8.63,-9.02,-9.35,-9.62,-9.83,-9.96,-10,-9.91,-9.68,-9.32,-8.87,-8.35,-7.79,-7.18,-6.58,-5.97,-5.39,-4.84,-4.33,-3.89,-3.52,-3.24,-3.06,-3,-3.06,-3.23,-3.49,-3.83,-4.23,-4.68,-5.16,-5.66,-6.17,-6.69,-7.2,-7.7,-8.17,-8.6,-9,-9.34,-9.61,-9.82,-9.95,-10,-9.96,-9.83,-9.62,-9.37,-9.05,-8.7,-8.31,-7.89,-7.45,-7.01,-6.56,-6.11,-5.67,-5.23,-4.83,-4.45,-4.1,-3.79,-3.52,-3.3,-3.14,-3.04,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P01_ARM_R_2=0,0.2,0.74,1.54,2.55,3.67,4.85,6.02,7.11,8.07,8.88,9.49,9.87,10,9.83,9.35,8.6,7.61,6.45,5.13,3.7,2.22,0.69,-0.83,-2.3,-3.68,-4.97,-6.11,-7.11,-7.91,-8.5,-8.87,-9,-8.8,-8.23,-7.35,-6.21,-4.9,-3.45,-1.96,-0.44,1.04,2.46,3.72,4.84,5.76,6.43,6.86,7,6.92,6.7,6.37,5.93,5.42,4.84,4.23,3.58,2.92,2.25,1.6,0.96,0.35,-0.2,-0.71,-1.15,-1.5,-1.77,-1.94,-2,-1.987,-1.95,-1.89,-1.82,-1.73,-1.63,-1.52,-1.4,-1.27,-1.15,-1.02,-0.89,-0.76,-0.64,-0.52,-0.41,-0.31,-0.23,-0.15,-0.09,-0.04,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.09,0.34,0.72,1.22,1.79,2.43,3.08,3.75,4.39,5.01,5.57,6.06,6.46,6.75,6.94,7,6.93,6.72,6.41,5.99,5.5,4.95,4.35,3.72,3.08,2.44,1.82,1.24,0.7,0.22,-0.2,-0.54,-0.79,-0.95,-1,-0.94,-0.76,-0.48,-0.12,0.3,0.76,1.25,1.75,2.24,2.7,3.12,3.48,3.76,3.94,4,3.92,3.7,3.37,2.93,2.42,1.84,1.23,0.58,-0.08,-0.75,-1.4,-2.04,-2.65,-3.2,-3.71,-4.15,-4.5,-4.77,-4.94,-5,-4.97,-4.88,-4.73,-4.55,-4.32,-4.07,-3.79,-3.49,-3.18,-2.87,-2.54,-2.22,-1.9,-1.6,-1.31,-1.04,-0.79,-0.56,-0.37,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,-0.04,-0.15,-0.31,-0.52,-0.75,-1,-1.25,-1.48,-1.69,-1.85,-1.96,-2,-1.96,-1.83,-1.63,-1.37,-1.06,-0.71,-0.32,0.08,0.5,0.92,1.32,1.71,2.06,2.37,2.63,2.83,2.96,3,2.92,2.72,2.41,2.03,1.59,1.1,0.59,0.07,-0.46,-0.95,-1.42,-1.86,-2.24,-2.55,-2.79,-2.95,-3,-2.97,-2.87,-2.72,-2.53,-2.3,-2.04,-1.77,-1.48,-1.19,-0.89,-0.6,-0.32,-0.05,0.2,0.43,0.62,0.78,0.9,0.97,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_2=0,-0.06,-0.22,-0.46,-0.76,-1.1,-1.46,-1.81,-2.13,-2.42,-2.66,-2.85,-2.96,-3,-2.96,-2.83,-2.63,-2.37,-2.07,-1.72,-1.34,-0.95,-0.55,-0.15,0.24,0.6,0.94,1.24,1.5,1.71,1.87,1.97,2,1.95,1.81,1.59,1.3,0.98,0.61,0.24,-0.14,-0.51,-0.86,-1.18,-1.46,-1.69,-1.86,-1.96,-2,-1.97,-1.87,-1.72,-1.53,-1.3,-1.04,-0.77,-0.48,-0.19,0.11,0.4,0.68,0.95,1.2,1.43,1.62,1.78,1.9,1.97,2,1.987,1.95,1.89,1.82,1.73,1.63,1.52,1.4,1.27,1.15,1.02,0.89,0.76,0.64,0.52,0.41,0.31,0.23,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_3=0,-0.13,-0.48,-1.03,-1.74,-2.56,-3.47,-4.4,-5.35,-6.28,-7.16,-7.95,-8.65,-9.22,-9.64,-9.91,-10,-9.91,-9.66,-9.26,-8.74,-8.13,-7.44,-6.68,-5.9,-5.1,-4.3,-3.53,-2.8,-2.12,-1.52,-1,-0.57,-0.26,-0.07,0,-0.13,-0.48,-1.04,-1.75,-2.6,-3.53,-4.5,-5.5,-6.47,-7.4,-8.25,-8.96,-9.52,-9.87,-10,-9.88,-9.53,-9.02,-8.34,-7.55,-6.65,-5.69,-4.69,-3.66,-2.61,-1.59,-0.6,0.34,1.2,1.99,2.67,3.23,3.64,3.91,4,3.97,3.9,3.78,3.64,3.46,3.25,3.03,2.79,2.54,2.29,2.03,1.77,1.52,1.28,1.05,0.83,0.63,0.45,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu25.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.12,0.44,0.94,1.56,2.25,3,3.75,4.44,5.06,5.56,5.88,6,5.8,5.23,4.35,3.21,1.9,0.45,-1.04,-2.56,-4.04,-5.46,-6.72,-7.84,-8.76,-9.43,-9.86,-10,-9.97,-9.9,-9.77,-9.61,-9.4,-9.15,-8.86,-8.54,-8.19,-7.8,-7.39,-6.96,-6.5,-6.04,-5.54,-5.04,-4.52,-4,-3.45,-2.93,-2.45,-2,-1.59,-1.2,-0.84,-0.51,-0.2,0.08,0.34,0.57,0.79,0.99,1.16,1.32,1.45,1.57,1.68,1.77,1.84,1.9,1.94,1.98,1.994,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_ANGLE_Y=0,-0.6,-2.21,-4.69,-7.8,-11.26,-15,-18.74,-22.2,-25.31,-27.79,-29.4,-30,-29.62,-28.55,-26.9,-24.77,-22.31,-19.59,-16.8,-13.95,-11.17,-8.52,-6.14,-4.05,-2.33,-1.07,-0.27,0,-0.27,-1.03,-2.23,-3.8,-5.64,-7.76,-10.07,-12.51,-15,-17.49,-19.93,-22.24,-24.36,-26.2,-27.77,-28.97,-29.73,-30,-29.66,-28.7,-27.21,-25.3,-23.08,-20.63,-18.12,-15.55,-13.05,-10.66,-8.53,-6.64,-5.1,-3.96,-3.24,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_ANGLE_Z=0,0.53,1.8,3.5,5.2,6.47,7,6.33,4.76,2.59,0.01,-2.81,-5.83,-8.89,-12,-15.32,-18.17,-20.72,-22.9,-24.71,-26.25,-27.49,-28.44,-29.16,-29.64,-29.91,-30,-29.27,-27.39,-24.64,-21.23,-17.45,-13.5,-9.5,-5.61,-1.98,1.29,4.01,6.14,7.52,8,7.91,7.65,7.23,6.66,5.99,5.19,4.29,3.34,2.3,1.22,0.13,-1,-2.13,-3.22,-4.3,-5.34,-6.29,-7.19,-7.99,-8.66,-9.23,-9.65,-9.91,-10,-9.94,-9.76,-9.48,-9.13,-8.72,-8.27,-7.8,-7.32,-6.86,-6.42,-6.02,-5.67,-5.39,-5.18,-5.04,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,-0.001,-0.004,-0.008,-0.014,-0.021,-0.03,-0.039,-0.05,-0.061,-0.074,-0.087,-0.1,-0.114,-0.129,-0.143,-0.158,-0.173,-0.188,-0.203,-0.217,-0.232,-0.245,-0.259,-0.272,-0.284,-0.295,-0.306,-0.315,-0.324,-0.332,-0.338,-0.343,-0.347,-0.349,-0.35,-0.346,-0.333,-0.314,-0.29,-0.26,-0.23,-0.19,-0.16,-0.12,-0.09,-0.06,-0.04,-0.017,-0.004,0,-0.004,-0.016,-0.034,-0.06,-0.08,-0.11,-0.15,-0.18,-0.21,-0.24,-0.26,-0.29,-0.304,-0.318,-0.327,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33,-0.33\r\r\nPARAM_EYE_BALL_Y=0,-0.002,-0.007,-0.016,-0.028,-0.043,-0.06,-0.08,-0.1,-0.12,-0.15,-0.18,-0.2,-0.23,-0.26,-0.29,-0.32,-0.35,-0.38,-0.41,-0.44,-0.47,-0.5,-0.52,-0.55,-0.58,-0.6,-0.62,-0.64,-0.657,-0.673,-0.686,-0.696,-0.704,-0.708,-0.71,-0.701,-0.68,-0.64,-0.59,-0.53,-0.46,-0.39,-0.32,-0.25,-0.18,-0.12,-0.07,-0.03,-0.01,0,-0.008,-0.03,-0.07,-0.11,-0.17,-0.23,-0.29,-0.35,-0.41,-0.47,-0.52,-0.57,-0.61,-0.64,-0.654,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66,-0.66\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0.46\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.99,1,1,1,0.85,0.13,0.18,0.24,1,1,1,1,0.87,0,0.25,0.5,1,1,0.85,0.04,0.04,0.04,0.95,1,1,1,1,1,1,1,1,1,1,1,0.9,0.28,1,1,1,1,1,1,0.94,0.02,0.29,0.56,0.35,0.13,1,1,1,1,1,1,0.89,0.15,0.74,1,1,1,1,0.94,0.71,0.47,0.24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.13,-0.28,-0.47,-0.71,-0.98,-1.29,-1.6,-1.94,-2.28,-2.63,-2.97,-3.3,-3.61,-3.91,-4.17,-4.41,-4.62,-4.78,-4.9,-4.97,-5,-4.89,-4.57,-4.07,-3.43,-2.69,-1.88,-1.04,-0.18,0.65,1.45,2.16,2.79,3.3,3.68,3.92,4,3.9,3.62,3.18,2.61,1.93,1.15,0.31,-0.59,-1.5,-2.41,-3.31,-4.15,-4.93,-5.61,-6.18,-6.62,-6.9,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7,-7\r\r\nPARAM_BODY_ANGLE_Y=0,-0.21,-0.75,-1.53,-2.42,-3.35,-4.22,-4.95,-5.52,-5.87,-6,-5.88,-5.56,-5.06,-4.44,-3.75,-3,-2.25,-1.56,-0.94,-0.44,-0.12,0,-0.06,-0.24,-0.52,-0.87,-1.28,-1.73,-2.2,-2.68,-3.14,-3.58,-3.98,-4.33,-4.61,-4.82,-4.96,-5,-4.92,-4.72,-4.41,-4.03,-3.59,-3.1,-2.59,-2.07,-1.54,-1.05,-0.58,-0.14,0.24,0.55,0.79,0.95,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.1,-0.39,-0.83,-1.4,-2.08,-2.82,-3.6,-4.4,-5.18,-5.92,-6.6,-7.17,-7.61,-7.9,-8,-7.84,-7.38,-6.68,-5.74,-4.64,-3.39,-2.03,-0.63,0.82,2.26,3.65,4.96,6.18,7.27,8.21,8.97,9.53,9.88,10,9.88,9.55,9.01,8.3,7.45,6.48,5.39,4.26,3.05,1.82,0.58,-0.62,-1.81,-2.94,-3.99,-4.94,-5.79,-6.53,-7.11,-7.54,-7.81,-7.9,-7.87,-7.8,-7.68,-7.54,-7.36,-7.15,-6.93,-6.69,-6.44,-6.19,-5.93,-5.67,-5.42,-5.18,-4.95,-4.73,-4.53,-4.35,-4.2,-4.07,-3.98,-3.92,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9,-3.9\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=-0.73\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,-0.03,-0.12,-0.27,-0.45,-0.68,-0.93,-1.21,-1.51,-1.82,-2.13,-2.46,-2.78,-3.1,-3.4,-3.69,-3.96,-4.21,-4.44,-4.63,-4.79,-4.9,-4.97,-5,-4.91,-4.68,-4.32,-3.87,-3.35,-2.79,-2.18,-1.58,-0.97,-0.39,0.16,0.67,1.11,1.48,1.76,1.94,2,1.984,1.94,1.86,1.76,1.64,1.5,1.33,1.16,0.97,0.77,0.56,0.35,0.13,-0.08,-0.29,-0.5,-0.71,-0.91,-1.09,-1.27,-1.43,-1.57,-1.69,-1.8,-1.89,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P02_ARM_L_2=0,-0.015,-0.06,-0.13,-0.22,-0.34,-0.47,-0.62,-0.78,-0.95,-1.13,-1.31,-1.5,-1.69,-1.87,-2.05,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-2.95,-2.82,-2.61,-2.35,-2.06,-1.73,-1.39,-1.05,-0.7,-0.37,-0.05,0.24,0.49,0.7,0.86,0.96,1,0.988,0.95,0.9,0.82,0.73,0.62,0.5,0.37,0.22,0.07,-0.09,-0.25,-0.42,-0.58,-0.75,-0.91,-1.07,-1.22,-1.37,-1.5,-1.62,-1.73,-1.82,-1.9,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P02_ARM_L_3=0,-0.04,-0.16,-0.34,-0.6,-0.91,-1.26,-1.67,-2.11,-2.59,-3.1,-3.62,-4.17,-4.72,-5.28,-5.83,-6.38,-6.9,-7.41,-7.89,-8.33,-8.74,-9.09,-9.4,-9.66,-9.84,-9.96,-10,-9.87,-9.54,-9.02,-8.38,-7.64,-6.84,-5.98,-5.12,-4.24,-3.41,-2.63,-1.9,-1.27,-0.74,-0.34,-0.09,0,-0.015,-0.06,-0.13,-0.21,-0.32,-0.45,-0.58,-0.73,-0.89,-1.05,-1.22,-1.39,-1.57,-1.73,-1.9,-2.06,-2.22,-2.36,-2.5,-2.62,-2.73,-2.82,-2.9,-2.95,-2.99,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,-0.03,-0.12,-0.27,-0.45,-0.68,-0.93,-1.21,-1.51,-1.82,-2.13,-2.46,-2.78,-3.1,-3.4,-3.69,-3.96,-4.21,-4.44,-4.63,-4.79,-4.9,-4.97,-5,-4.91,-4.68,-4.32,-3.87,-3.35,-2.79,-2.18,-1.58,-0.97,-0.39,0.16,0.67,1.11,1.48,1.76,1.94,2,1.98,1.91,1.8,1.66,1.48,1.27,1.04,0.78,0.5,0.2,-0.12,-0.44,-0.78,-1.12,-1.46,-1.8,-2.13,-2.46,-2.79,-3.1,-3.39,-3.67,-3.93,-4.16,-4.37,-4.56,-4.71,-4.83,-4.92,-4.98,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_P06_ARM_R_2=0,-0.015,-0.06,-0.13,-0.22,-0.34,-0.47,-0.62,-0.78,-0.95,-1.13,-1.31,-1.5,-1.69,-1.87,-2.05,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-2.95,-2.82,-2.61,-2.35,-2.06,-1.73,-1.39,-1.05,-0.7,-0.37,-0.05,0.24,0.49,0.7,0.86,0.96,1,0.98,0.92,0.83,0.72,0.57,0.41,0.23,0.04,-0.16,-0.37,-0.58,-0.78,-0.98,-1.17,-1.35,-1.5,-1.65,-1.77,-1.87,-1.94,-1.98,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P06_ARM_R_3=0,-0.03,-0.11,-0.24,-0.42,-0.63,-0.88,-1.17,-1.48,-1.81,-2.17,-2.54,-2.92,-3.31,-3.69,-4.08,-4.46,-4.83,-5.19,-5.52,-5.83,-6.12,-6.37,-6.58,-6.76,-6.89,-6.97,-7,-6.82,-6.35,-5.63,-4.74,-3.7,-2.57,-1.37,-0.16,1.06,2.22,3.32,4.33,5.23,5.96,6.52,6.87,7,6.95,6.81,6.58,6.28,5.93,5.51,5.05,4.56,4.04,3.49,2.93,2.36,1.78,1.22,0.67,0.12,-0.39,-0.87,-1.33,-1.73,-2.09,-2.4,-2.66,-2.84,-2.96,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu26.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.2,0.44,0.76,1.15,1.61,2.13,2.7,3.3,3.95,4.62,5.32,6.02,6.73,7.44,8.13,8.8,9.45,10.05,10.62,11.14,11.6,11.99,12.31,12.55,12.7,12.75,12.73,12.64,12.51,12.31,12.05,11.72,11.31,10.83,10.27,9.62,8.86,7.89,6.99,6.12,5.32,4.57,3.88,3.23,2.65,2.1,1.63,1.21,0.85,0.55,0.31,0.14,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.36,-0.53,-0.72,-0.92,-1.14,-1.36,-1.58,-1.8,-2.01,-2.22,-2.4,-2.57,-2.72,-2.83,-2.92,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_ANGLE_Y=0,-1.84,-5.16,-7,-6.12,-3.83,-0.52,3.27,7.2,10.87,14,16.39,17.9,18.43,15.52,9.23,1.38,-6.77,-14.21,-20.37,-24.47,-26,-24.05,-19.3,-13,-6.7,-1.95,0,0,0,0,0,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,0.13,0.52,1.1,1.88,2.8,3.84,4.97,6.14,7.35,8.55,9.71,10.8,11.82,12.72,13.51,14.14,14.61,14.9,15,14.48,13.13,11.18,8.94,6.62,4.46,2.61,1.2,0.31,0,0.02,0.09,0.22,0.42,0.69,1.05,1.51,2.07,2.74,3.53,4.46,6.05,7.71,9.35,10.85,12.13,13.13,13.77,14,13.52,12.23,10.36,8.14,5.86,3.64,1.77,0.48,0,0.014,0.11,0.4,0.95,1.85,3.23,5.32,7.96,10.83,13.43,15.27,16,14.82,11.96,8.47,5.06,2.33,0.59,0,0.5,1.84,3.85,6.37,9.17,12.13,15.05,17.77,20.18,22.2,23.73,24.67,25,24.14,21.83,18.5,14.54,10.46,6.5,3.17,0.86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.19,0.41,0.71,1.08,1.51,2,2.52,3.09,3.68,4.32,4.95,5.6,6.25,6.88,7.51,8.14,8.72,9.28,9.8,10.28,10.7,11.08,11.4,11.66,11.84,11.96,12,11.91,11.65,11.22,10.66,9.97,9.16,8.24,7.25,6.18,5.07,3.88,2.68,1.47,0.24,-0.96,-2.14,-3.32,-4.41,-5.46,-6.44,-7.35,-8.15,-8.86,-9.47,-9.94,-10.29,-10.51,-10.59,-10.48,-10.19,-9.73,-9.11,-8.35,-7.49,-6.55,-5.53,-4.45,-3.34,-2.25,-1.14,-0.06,0.97,1.9,2.77,3.52,4.14,4.6,4.9,5,4.81,4.27,3.45,2.39,1.14,-0.27,-1.78,-3.35,-4.97,-6.61,-8.21,-9.77,-11.25,-12.6,-13.85,-14.91,-15.79,-16.43,-16.85,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17\r\r\nPARAM_EYE_L_OPEN=1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.001,0.002,0.004,0.008,0.013,0.02,0.1,0.28,0.52,0.75,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.26,0.5,0.74,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,0.27,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.002,0.007,0.014,0.025,0.04,0.06,0.15,0.32,0.55,0.77,0.93,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.27,0,0,0.26,0.74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.021,-0.036,-0.054,-0.08,-0.1,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.3,-0.33,-0.36,-0.38,-0.4,-0.43,-0.444,-0.459,-0.471,-0.478,-0.48,-0.478,-0.474,-0.467,-0.457,-0.445,-0.432,-0.416,-0.399,-0.381,-0.361,-0.341,-0.32,-0.3,-0.28,-0.25,-0.23,-0.21,-0.19,-0.17,-0.15,-0.125,-0.106,-0.088,-0.071,-0.056,-0.042,-0.03,-0.019,-0.011,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.006,-0.01,-0.015,-0.02,-0.027,-0.034,-0.041,-0.049,-0.057,-0.065,-0.073,-0.081,-0.089,-0.096,-0.103,-0.11,-0.115,-0.12,-0.124,-0.127,-0.129,-0.13,-0.13,-0.128,-0.126,-0.124,-0.121,-0.117,-0.113,-0.108,-0.103,-0.098,-0.092,-0.087,-0.081,-0.075,-0.069,-0.063,-0.057,-0.051,-0.045,-0.039,-0.034,-0.029,-0.024,-0.019,-0.015,-0.011,-0.008,-0.005,-0.003,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0.12,0.24,1,1,0.98,0,0.91,1,1,0.91,0.46,0,0.98,1,1,1,1,1,0.87,0,0.95,1,1,1,1,1,0.66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.7,1,0.7,0,0.5,1,1,1,1,0,0.95,1,1,0.9,0.4,0.8,1,1,1,1,1,0.8,0.4,0,0,0,0,0,0,0,0,0,1,1,1,0.26,0.88,1,1,1,0.73,0.06,0.74,1,1,1,0.85,0,1,1,1,1,1,1,1,0,0.94,1,0.94,0,0.31,0.62,0.31,0,0.85,1,0.85,0,0.87,1,0.92,0.1,0.71,1,0.81,0.3,0.8,1,1,1,1,1,0.86,0.02,0.93,1,1,0.28,0.2,0.12,0.91,1,0.26,0.2,1,1,1,1,1,1,0.66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.09,-0.2,-0.35,-0.52,-0.73,-0.96,-1.21,-1.48,-1.76,-2.05,-2.35,-2.65,-2.96,-3.27,-3.57,-3.87,-4.16,-4.44,-4.7,-4.94,-5.17,-5.37,-5.55,-5.71,-5.83,-5.92,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_BODY_ANGLE_Y=0,-0.51,-1.35,-1.93,-2.12,-1.84,-1.1,-0.05,1.16,2.42,3.59,4.59,5.35,5.83,6,5,2.85,0.16,-2.63,-5.18,-7.29,-8.69,-9.22,-8.83,-7.87,-6.61,-5.34,-4.39,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.87,-3.54,-3.02,-2.38,-1.64,-0.84,0.02,0.88,1.76,2.59,3.37,4.1,4.73,5.26,5.66,5.91,6,5.78,5.19,4.28,3.14,1.87,0.5,-0.87,-2.14,-3.28,-4.19,-4.78,-5,-4.996,-4.984,-4.96,-4.93,-4.89,-4.84,-4.78,-4.71,-4.63,-4.54,-4.43,-4.32,-4.18,-4.04,-3.88,-3.71,-3.52,-3.32,-3.1,-2.87,-2.62,-2.36,-2.07,-1.77,-1.45,-1.12,-0.76,-0.38,0.02,0.62,1.43,2.38,3.36,4.31,5.17,5.88,6.4,6.73,6.85,6.34,5.12,3.62,2.17,1,0.25,0,0.21,0.75,1.47,2.32,3.21,4.08,4.9,5.59,6.15,6.51,6.65,6.12,4.72,2.69,0.29,-2.2,-4.6,-6.63,-8.03,-8.55,-8.22,-7.4,-6.41,-5.44,-4.66,-4.17,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.15,0.22,0.31,0.41,0.53,0.65,0.78,0.91,1.06,1.2,1.35,1.5,1.65,1.8,1.94,2.09,2.22,2.35,2.47,2.59,2.69,2.78,2.85,2.92,2.96,2.99,3,2.985,2.94,2.88,2.79,2.68,2.55,2.41,2.25,2.09,1.92,1.75,1.57,1.4,1.23,1.06,0.9,0.75,0.61,0.48,0.37,0.28,0.2,0.15,0.11,0.103,0.111,0.13,0.17,0.22,0.27,0.33,0.4,0.47,0.54,0.61,0.68,0.75,0.81,0.86,0.91,0.95,0.98,0.994,1,0.96,0.86,0.7,0.49,0.25,-0.04,-0.34,-0.67,-1,-1.33,-1.66,-1.96,-2.25,-2.49,-2.7,-2.86,-2.96,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0,0,0,0,0.013,0.05,0.1,0.17,0.25,0.33,0.41,0.49,0.56,0.61,0.65,0.66,0.57,0.36,0.11,-0.15,-0.39,-0.59,-0.72,-0.77,-0.71,-0.57,-0.38,-0.2,-0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.015,0.05,0.11,0.17,0.24,0.3,0.36,0.4,0.42,0.43,0.4,0.32,0.23,0.14,0.06,0.02,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.986,0.95,0.89,0.82,0.76,0.69,0.63,0.59,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.004,-0.015,-0.032,-0.05,-0.08,-0.11,-0.14,-0.17,-0.2,-0.23,-0.25,-0.27,-0.29,-0.301,-0.305,-0.24,-0.07,0.12,0.32,0.48,0.57,0.61,0.51,0.34,0.18,0.06,0,-0.02,-0.05,-0.07,-0.09,-0.11,-0.13,-0.15,-0.18,-0.196,-0.22,-0.236,-0.255,-0.275,-0.294,-0.312,-0.331,-0.349,-0.367,-0.384,-0.402,-0.418,-0.435,-0.451,-0.467,-0.483,-0.499,-0.514,-0.529,-0.544,-0.558,-0.572,-0.586,-0.599,-0.613,-0.626,-0.638,-0.651,-0.663,-0.675,-0.687,-0.698,-0.709,-0.72,-0.731,-0.741,-0.751,-0.761,-0.771,-0.78,-0.789,-0.798,-0.807,-0.815,-0.823,-0.831,-0.839,-0.846,-0.853,-0.86,-0.867,-0.873,-0.88,-0.886,-0.891,-0.897,-0.902,-0.907,-0.912,-0.916,-0.921,-0.925,-0.929,-0.932,-0.936,-0.939,-0.942,-0.944,-0.947,-0.949,-0.951,-0.953,-0.955,-0.956,-0.957,-0.958,-0.959,-0.96,-0.96,-0.96,-0.89,-0.71,-0.45,-0.14,0.18,0.49,0.75,0.93,1,0.96,0.85,0.69,0.48,0.26,0.01,-0.24,-0.46,-0.67,-0.83,-0.94,-0.98,-0.9,-0.7,-0.43,-0.16,0.04,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12,0.12\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.004,-0.016,-0.034,-0.06,-0.08,-0.12,-0.15,-0.18,-0.21,-0.24,-0.27,-0.29,-0.311,-0.322,-0.326,-0.3,-0.23,-0.13,-0.01,0.11,0.23,0.32,0.4,0.44,0.46,0.43,0.35,0.24,0.13,0.04,0,-0.009,-0.018,-0.026,-0.035,-0.043,-0.051,-0.059,-0.067,-0.075,-0.083,-0.09,-0.098,-0.105,-0.112,-0.119,-0.126,-0.133,-0.14,-0.147,-0.153,-0.16,-0.166,-0.172,-0.178,-0.184,-0.19,-0.196,-0.201,-0.207,-0.212,-0.217,-0.222,-0.227,-0.232,-0.237,-0.242,-0.246,-0.251,-0.255,-0.26,-0.264,-0.268,-0.272,-0.276,-0.279,-0.283,-0.287,-0.29,-0.293,-0.297,-0.3,-0.303,-0.306,-0.308,-0.311,-0.314,-0.316,-0.319,-0.321,-0.323,-0.325,-0.328,-0.33,-0.331,-0.333,-0.335,-0.336,-0.338,-0.339,-0.341,-0.342,-0.343,-0.344,-0.345,-0.346,-0.347,-0.347,-0.348,-0.349,-0.349,-0.349,-0.35,-0.35,-0.35,-0.35,-0.333,-0.29,-0.22,-0.14,-0.06,0.02,0.09,0.13,0.15,0.143,0.123,0.09,0.06,0.02,-0.02,-0.06,-0.1,-0.14,-0.17,-0.2,-0.22,-0.235,-0.24,-0.22,-0.17,-0.1,-0.04,0.01,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03,0.03\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,-0.03,-0.1,-0.22,-0.38,-0.56,-0.77,-0.99,-1.23,-1.47,-1.71,-1.94,-2.16,-2.36,-2.54,-2.7,-2.83,-2.92,-2.98,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P01_ARM_R_2=0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P01_ARM_R_3=0,0.03,0.1,0.22,0.38,0.56,0.78,1.01,1.25,1.5,1.75,1.99,2.22,2.44,2.62,2.78,2.9,2.97,3,2.9,2.63,2.24,1.79,1.32,0.89,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.22,0.46,0.76,1.1,1.46,1.81,2.13,2.42,2.66,2.85,2.96,3,2.97,2.9,2.78,2.62,2.44,2.22,1.99,1.75,1.5,1.25,1.01,0.78,0.56,0.38,0.22,0.1,0.03,0,0.03,0.1,0.21,0.36,0.53,0.72,0.92,1.14,1.36,1.58,1.8,2.01,2.22,2.4,2.57,2.72,2.83,2.92,2.98,3,2.97,2.9,2.78,2.62,2.44,2.23,2.01,1.77,1.53,1.29,1.06,0.84,0.64,0.46,0.3,0.17,0.08,0.02,0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P01_ARM_L_1=0,-0.013,-0.05,-0.1,-0.18,-0.26,-0.35,-0.45,-0.55,-0.65,-0.74,-0.82,-0.9,-0.95,-0.99,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.66,-0.58,-0.5,-0.42,-0.34,-0.26,-0.19,-0.13,-0.07,-0.03,-0.01,0,-0.009,-0.03,-0.07,-0.12,-0.18,-0.24,-0.31,-0.38,-0.45,-0.53,-0.6,-0.67,-0.74,-0.8,-0.86,-0.91,-0.94,-0.97,-0.993,-1,-1,-0.999,-0.995,-0.989,-0.978,-0.963,-0.94,-0.91,-0.88,-0.84,-0.78,-0.72,-0.65,-0.57,-0.48,-0.38,-0.26,-0.14,0,0.18,0.37,0.57,0.78,0.99,1.21,1.43,1.64,1.85,2.05,2.23,2.4,2.55,2.68,2.79,2.88,2.95,2.99,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P01_ARM_L_2=0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P01_ARM_L_3=0,0.018,0.07,0.15,0.25,0.38,0.52,0.67,0.83,1,1.17,1.33,1.48,1.62,1.75,1.85,1.93,1.98,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.31,0.51,0.73,0.97,1.2,1.42,1.61,1.78,1.9,1.97,2,1.982,1.93,1.85,1.75,1.62,1.48,1.33,1.17,1,0.83,0.67,0.52,0.38,0.25,0.15,0.07,0.02,0,0.017,0.07,0.14,0.24,0.35,0.48,0.62,0.76,0.91,1.06,1.2,1.34,1.48,1.6,1.71,1.81,1.89,1.95,1.99,2,1.982,1.93,1.85,1.75,1.63,1.49,1.34,1.18,1.02,0.86,0.71,0.56,0.42,0.3,0.2,0.11,0.05,0.01,0,0.018,0.07,0.15,0.25,0.37,0.51,0.66,0.82,0.98,1.14,1.29,1.44,1.58,1.7,1.8,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu27.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.05,-0.18,-0.39,-0.68,-1.04,-1.46,-1.93,-2.45,-3.02,-3.62,-4.27,-4.93,-5.61,-6.3,-7,-7.7,-8.39,-9.07,-9.73,-10.38,-10.98,-11.55,-12.07,-12.54,-12.96,-13.32,-13.61,-13.82,-13.95,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.79,-5.72,-9.2,-12.8,-16.28,-19.21,-21.24,-22,-21.8,-21.24,-20.38,-19.24,-17.89,-16.36,-14.7,-12.99,-11.23,-9.46,-7.76,-6.16,-4.67,-3.34,-2.19,-1.26,-0.58,-0.15,0,-0.28,-1.06,-2.29,-3.86,-5.72,-7.76,-9.91,-12.09,-14.24,-16.28,-18.14,-19.71,-20.94,-21.72,-22,-21.24,-19.26,-16.39,-13.12,-9.71,-6.54,-3.83,-1.76,-0.46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0.03,0.11,0.23,0.4,0.62,0.87,1.16,1.48,1.82,2.19,2.58,2.99,3.41,3.84,4.28,4.72,5.17,5.61,6.05,6.47,6.89,7.29,7.67,8.04,8.38,8.7,8.99,9.24,9.46,9.65,9.8,9.91,9.98,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0.004,0.015,0.032,0.05,0.08,0.11,0.14,0.17,0.2,0.24,0.27,0.3,0.33,0.36,0.39,0.41,0.425,0.438,0.447,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45,0.45\r\r\nPARAM_EYE_BALL_Y=0,0.001,0.004,0.009,0.015,0.023,0.031,0.04,0.049,0.059,0.069,0.078,0.087,0.096,0.104,0.111,0.118,0.123,0.127,0.129,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13,0.13\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.019,-0.08,-0.17,-0.29,-0.43,-0.6,-0.8,-1.01,-1.24,-1.48,-1.74,-2,-2.27,-2.54,-2.82,-3.11,-3.38,-3.65,-3.92,-4.18,-4.44,-4.68,-4.9,-5.11,-5.3,-5.48,-5.63,-5.76,-5.86,-5.94,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_BODY_ANGLE_Y=0,-0.32,-1.13,-2.22,-3.5,-4.82,-6.13,-7.37,-8.42,-9.26,-9.8,-10,-9.83,-9.33,-8.59,-7.63,-6.49,-5.21,-3.84,-2.41,-0.94,0.56,2.01,3.42,4.77,6,7.13,8.1,8.9,9.49,9.87,10,9.71,8.97,7.88,6.54,5.05,3.49,1.91,0.37,-1.06,-2.35,-3.42,-4.27,-4.81,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.002,0.008,0.018,0.031,0.048,0.068,0.09,0.12,0.15,0.18,0.21,0.25,0.29,0.33,0.37,0.41,0.46,0.5,0.55,0.6,0.65,0.7,0.75,0.81,0.86,0.91,0.97,1.02,1.07,1.13,1.18,1.23,1.28,1.33,1.38,1.43,1.48,1.53,1.57,1.61,1.66,1.7,1.73,1.77,1.81,1.84,1.87,1.89,1.92,1.94,1.956,1.972,1.984,1.993,1.998,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.985,0.94,0.87,0.78,0.67,0.54,0.4,0.25,0.09,-0.07,-0.23,-0.4,-0.56,-0.71,-0.85,-0.98,-1.09,-1.18,-1.25,-1.29,-1.307,-1.304,-1.293,-1.277,-1.25,-1.23,-1.19,-1.16,-1.11,-1.07,-1.02,-0.97,-0.92,-0.86,-0.81,-0.75,-0.69,-0.63,-0.57,-0.52,-0.46,-0.41,-0.35,-0.3,-0.26,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.985,0.94,0.87,0.78,0.67,0.54,0.4,0.25,0.09,-0.07,-0.23,-0.39,-0.55,-0.71,-0.84,-0.97,-1.08,-1.17,-1.24,-1.29,-1.301,-1.297,-1.287,-1.27,-1.25,-1.22,-1.19,-1.15,-1.11,-1.06,-1.02,-0.97,-0.91,-0.86,-0.8,-0.74,-0.69,-0.63,-0.57,-0.51,-0.46,-0.4,-0.35,-0.3,-0.25,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.06,0.24,0.52,0.88,1.3,1.76,2.25,2.75,3.24,3.7,4.12,4.48,4.76,4.94,5,4.993,4.97,4.94,4.9,4.84,4.77,4.69,4.6,4.5,4.39,4.28,4.15,4.02,3.88,3.74,3.58,3.42,3.26,3.09,2.92,2.74,2.56,2.39,2.22,2.06,1.91,1.76,1.63,1.49,1.37,1.25,1.14,1.03,0.93,0.83,0.75,0.66,0.58,0.51,0.44,0.38,0.33,0.28,0.23,0.19,0.15,0.12,0.09,0.06,0.044,0.028,0.016,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.985,0.94,0.87,0.78,0.67,0.54,0.4,0.25,0.09,-0.07,-0.23,-0.4,-0.56,-0.71,-0.85,-0.98,-1.09,-1.18,-1.25,-1.29,-1.307,-1.304,-1.293,-1.277,-1.25,-1.23,-1.19,-1.16,-1.11,-1.07,-1.02,-0.97,-0.92,-0.86,-0.81,-0.75,-0.69,-0.63,-0.57,-0.52,-0.46,-0.41,-0.35,-0.3,-0.26,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.985,0.94,0.87,0.78,0.67,0.54,0.4,0.25,0.09,-0.07,-0.23,-0.39,-0.55,-0.71,-0.84,-0.97,-1.08,-1.17,-1.24,-1.29,-1.301,-1.297,-1.287,-1.27,-1.25,-1.22,-1.19,-1.15,-1.11,-1.06,-1.02,-0.97,-0.91,-0.86,-0.8,-0.74,-0.69,-0.63,-0.57,-0.51,-0.46,-0.4,-0.35,-0.3,-0.25,-0.21,-0.17,-0.13,-0.1,-0.07,-0.05,-0.026,-0.012,-0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.04,0.14,0.31,0.53,0.78,1.06,1.35,1.65,1.94,2.22,2.47,2.69,2.86,2.96,3,3.001,3.002,3.005,3.007,3.01,3.012,3.013,3.013,3.012,3.009,3.003,2.995,2.984,2.969,2.951,2.93,2.9,2.87,2.83,2.79,2.74,2.68,2.62,2.54,2.46,2.38,2.29,2.19,2.09,1.99,1.88,1.77,1.66,1.55,1.44,1.33,1.22,1.11,1,0.9,0.8,0.7,0.61,0.52,0.44,0.36,0.29,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu28.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.13,-0.48,-0.99,-1.61,-2.31,-3.04,-3.78,-4.49,-5.16,-5.76,-6.26,-6.66,-6.91,-7,-6.96,-6.84,-6.66,-6.41,-6.11,-5.76,-5.36,-4.94,-4.49,-4.02,-3.55,-3.06,-2.58,-2.1,-1.64,-1.2,-0.79,-0.4,-0.05,0.25,0.51,0.72,0.87,0.97,1,0.96,0.83,0.62,0.37,0.05,-0.3,-0.69,-1.11,-1.55,-1.99,-2.44,-2.89,-3.33,-3.77,-4.17,-4.55,-4.9,-5.21,-5.48,-5.7,-5.86,-5.96,-6,-5.77,-5.13,-4.12,-2.84,-1.32,0.35,2.1,3.9,5.65,7.32,8.84,10.12,11.13,11.77,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12\r\r\nPARAM_ANGLE_Y=0,-0.06,-0.23,-0.5,-0.87,-1.32,-1.85,-2.46,-3.12,-3.82,-4.57,-5.36,-6.17,-7,-8.02,-8.98,-9.88,-10.74,-11.53,-12.29,-13,-13.66,-14.26,-14.84,-15.37,-15.86,-16.32,-16.73,-17.1,-17.44,-17.74,-18.01,-18.25,-18.45,-18.62,-18.76,-18.86,-18.94,-18.99,-19,-18.81,-18.28,-17.44,-16.38,-15.06,-13.6,-11.98,-10.26,-8.45,-6.62,-4.73,-2.87,-1.05,0.74,2.42,3.99,5.44,6.73,7.84,8.75,9.43,9.85,10,9.58,8.41,6.56,4.21,1.42,-1.63,-4.86,-8.14,-11.37,-14.42,-17.21,-19.56,-21.41,-22.58,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23\r\r\nPARAM_ANGLE_Z=0,-0.1,-0.39,-0.83,-1.4,-2.08,-2.82,-3.6,-4.4,-5.18,-5.92,-6.6,-7.17,-7.61,-7.9,-8,-7.96,-7.84,-7.66,-7.41,-7.11,-6.76,-6.36,-5.94,-5.49,-5.02,-4.55,-4.06,-3.58,-3.1,-2.64,-2.2,-1.79,-1.4,-1.05,-0.75,-0.49,-0.28,-0.13,-0.03,0,-0.01,-0.04,-0.09,-0.15,-0.22,-0.31,-0.41,-0.52,-0.63,-0.75,-0.87,-1,-1.13,-1.25,-1.37,-1.48,-1.59,-1.69,-1.78,-1.85,-1.91,-1.96,-1.99,-2,-1.92,-1.71,-1.37,-0.95,-0.44,0.12,0.7,1.3,1.88,2.44,2.95,3.37,3.71,3.92,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,0.999,0.999,0.998,0.997,0.997,0.996,0.995,0.994,0.992,0.991,0.99,0.988,0.986,0.985,0.983,0.981,0.979,0.976,0.974,0.972,0.969,0.966,0.964,0.961,0.958,0.954,0.951,0.948,0.944,0.941,0.937,0.933,0.929,0.925,0.921,0.916,0.912,0.907,0.903,0.898,0.893,0.888,0.882,0.877,0.871,0.866,0.86,0.854,0.848,0.842,0.836,0.829,0.823,0.816,0.809,0.803,0.795,0.788,0.781,0.773,0.766,0.758,0.75,0.742,0.734,0.726,0.717,0.709,0.7,0.53,0.25,0.06,0,0,0,0.11,0.29,0.46,0.58,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,0.999,0.999,0.998,0.997,0.997,0.996,0.995,0.994,0.992,0.991,0.99,0.988,0.986,0.985,0.983,0.981,0.979,0.976,0.974,0.972,0.969,0.966,0.964,0.961,0.958,0.954,0.951,0.948,0.944,0.941,0.937,0.933,0.929,0.925,0.921,0.916,0.912,0.907,0.903,0.898,0.893,0.888,0.882,0.877,0.871,0.866,0.86,0.854,0.848,0.842,0.836,0.829,0.823,0.816,0.809,0.803,0.795,0.788,0.781,0.773,0.766,0.758,0.75,0.742,0.734,0.726,0.717,0.709,0.7,0.53,0.25,0.06,0,0,0,0.11,0.29,0.45,0.57,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=-0.48\r\r\nPARAM_BROW_R_ANGLE=-0.48\r\r\nPARAM_BROW_L_FORM=-0.33\r\r\nPARAM_BROW_R_FORM=-0.33\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.08,-0.29,-0.63,-1.05,-1.56,-2.12,-2.7,-3.3,-3.88,-4.44,-4.95,-5.37,-5.71,-5.92,-6,-5.97,-5.87,-5.72,-5.52,-5.28,-4.99,-4.67,-4.31,-3.93,-3.52,-3.1,-2.67,-2.22,-1.78,-1.33,-0.9,-0.48,-0.07,0.31,0.67,0.99,1.28,1.52,1.72,1.87,1.97,2,2,2,2,2,1.92,1.7,1.37,0.93,0.42,-0.16,-0.77,-1.42,-2.08,-2.75,-3.4,-4.04,-4.65,-5.2,-5.71,-6.15,-6.5,-6.77,-6.94,-7,-6.87,-6.52,-6.01,-5.39,-4.69,-3.96,-3.22,-2.51,-1.84,-1.24,-0.74,-0.34,-0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.06,0.23,0.49,0.81,1.18,1.58,2.01,2.44,2.88,3.29,3.69,4.05,4.37,4.63,4.83,4.96,5,4.95,4.82,4.61,4.33,3.99,3.59,3.15,2.67,2.15,1.61,1.07,0.5,-0.07,-0.61,-1.15,-1.67,-2.15,-2.59,-2.99,-3.33,-3.61,-3.82,-3.95,-4,-4,-4,-4,-4,-3.88,-3.55,-3.04,-2.37,-1.57,-0.67,0.31,1.33,2.37,3.41,4.42,5.36,6.24,7.03,7.71,8.25,8.66,8.91,9,8.82,8.32,7.54,6.55,5.36,4.06,2.7,1.3,-0.06,-1.36,-2.55,-3.54,-4.32,-4.82,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5,-5\r\r\nPARAM_BODY_ANGLE_Z=0,-0.001,-0.006,-0.013,-0.022,-0.034,-0.048,-0.064,-0.082,-0.102,-0.12,-0.15,-0.17,-0.2,-0.22,-0.25,-0.28,-0.31,-0.34,-0.37,-0.4,-0.43,-0.46,-0.5,-0.53,-0.56,-0.59,-0.62,-0.65,-0.68,-0.71,-0.74,-0.77,-0.79,-0.82,-0.84,-0.87,-0.89,-0.908,-0.926,-0.942,-0.957,-0.97,-0.98,-0.989,-0.995,-0.999,-1,-0.993,-0.973,-0.94,-0.9,-0.84,-0.78,-0.7,-0.62,-0.53,-0.44,-0.33,-0.23,-0.11,0,0.12,0.24,0.36,0.48,0.61,0.73,0.85,0.97,1.08,1.19,1.3,1.4,1.49,1.58,1.66,1.74,1.8,1.86,1.91,1.95,1.98,1.994,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.005,-0.018,-0.04,-0.07,-0.1,-0.14,-0.19,-0.23,-0.28,-0.33,-0.38,-0.43,-0.48,-0.53,-0.57,-0.61,-0.64,-0.67,-0.7,-0.715,-0.726,-0.73,-0.69,-0.59,-0.44,-0.26,-0.07,0.11,0.26,0.36,0.4,0.392,0.37,0.34,0.3,0.25,0.21,0.16,0.12,0.08,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.013,-0.029,-0.05,-0.07,-0.1,-0.13,-0.17,-0.2,-0.24,-0.27,-0.31,-0.34,-0.38,-0.41,-0.43,-0.46,-0.48,-0.497,-0.51,-0.517,-0.52,-0.49,-0.41,-0.3,-0.17,-0.03,0.1,0.21,0.29,0.32,0.314,0.296,0.27,0.24,0.2,0.16,0.13,0.09,0.06,0.04,0.016,0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,2.97,2.9,2.78,2.64,2.46,2.25,2.03,1.79,1.54,1.29,1.03,0.77,0.52,0.28,0.05,-0.17,-0.37,-0.55,-0.7,-0.83,-0.92,-0.98,-1,-0.98,-0.92,-0.83,-0.71,-0.57,-0.41,-0.22,-0.02,0.18,0.4,0.63,0.86,1.09,1.31,1.53,1.75,1.95,2.15,2.33,2.49,2.64,2.76,2.86,2.94,2.98,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3\r\r\nPARAM_P02_ARM_L_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.99,0.96,0.91,0.85,0.78,0.69,0.59,0.48,0.37,0.25,0.13,0,-0.13,-0.25,-0.37,-0.48,-0.59,-0.69,-0.78,-0.85,-0.91,-0.96,-0.99,-1,-0.985,-0.94,-0.87,-0.78,-0.66,-0.53,-0.39,-0.23,-0.06,0.12,0.29,0.48,0.66,0.84,1.01,1.18,1.33,1.47,1.6,1.72,1.82,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_P02_ARM_L_3=0,-0.013,-0.05,-0.11,-0.19,-0.28,-0.39,-0.52,-0.64,-0.78,-0.91,-1.05,-1.19,-1.32,-1.45,-1.56,-1.67,-1.76,-1.85,-1.91,-1.96,-1.99,-2,-1.97,-1.9,-1.79,-1.63,-1.44,-1.22,-0.98,-0.71,-0.43,-0.14,0.16,0.46,0.76,1.06,1.35,1.63,1.88,2.12,2.34,2.53,2.69,2.82,2.92,2.98,3,2.95,2.82,2.61,2.33,1.99,1.59,1.15,0.67,0.15,-0.39,-0.93,-1.5,-2.07,-2.61,-3.15,-3.67,-4.15,-4.59,-4.99,-5.33,-5.61,-5.82,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0.004,0.015,0.032,0.06,0.09,0.12,0.17,0.22,0.27,0.33,0.39,0.45,0.52,0.6,0.67,0.75,0.83,0.92,1,1.1,1.19,1.28,1.36,1.43,1.5,1.56,1.62,1.67,1.72,1.77,1.81,1.84,1.87,1.9,1.92,1.95,1.962,1.976,1.987,1.994,1.999,2,1.98,1.92,1.83,1.71,1.57,1.41,1.22,1.02,0.82,0.6,0.37,0.14,-0.09,-0.31,-0.53,-0.75,-0.95,-1.15,-1.33,-1.49,-1.64,-1.76,-1.86,-1.94,-1.98,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_P06_ARM_R_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.99,0.96,0.91,0.85,0.78,0.69,0.59,0.48,0.37,0.26,0.14,0.01,-0.11,-0.22,-0.34,-0.45,-0.55,-0.65,-0.74,-0.81,-0.88,-0.93,-0.97,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P06_ARM_R_3=0,0.01,0.04,0.09,0.16,0.24,0.34,0.45,0.57,0.71,0.86,1.02,1.18,1.35,1.52,1.7,1.89,2.07,2.26,2.45,2.63,2.82,3,3.2,3.38,3.56,3.72,3.87,4.01,4.13,4.25,4.35,4.45,4.53,4.61,4.68,4.74,4.79,4.84,4.88,4.91,4.93,4.96,4.973,4.985,4.994,4.999,5,4.96,4.84,4.66,4.41,4.11,3.75,3.35,2.93,2.47,1.99,1.5,1,0.5,0.01,-0.47,-0.93,-1.35,-1.75,-2.11,-2.41,-2.66,-2.84,-2.96,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu29.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.016,0.06,0.14,0.24,0.36,0.51,0.67,0.86,1.05,1.27,1.49,1.72,1.96,2.21,2.46,2.71,2.97,3.22,3.48,3.72,3.97,4.21,4.44,4.66,4.86,5.06,5.24,5.41,5.55,5.68,5.79,5.88,5.95,5.99,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6\r\r\nPARAM_ANGLE_Y=0,-0.76,-2.79,-5.72,-9.2,-12.8,-16.28,-19.21,-21.24,-22,-21.56,-20.38,-18.56,-16.28,-13.75,-11,-8.25,-5.72,-3.44,-1.62,-0.44,0,-0.44,-1.62,-3.44,-5.72,-8.25,-11,-13.75,-16.28,-18.56,-20.38,-21.56,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22\r\r\nPARAM_ANGLE_Z=0,-0.04,-0.16,-0.35,-0.61,-0.92,-1.3,-1.73,-2.21,-2.72,-3.27,-3.86,-4.48,-5.12,-5.78,-6.46,-7.15,-7.86,-8.55,-9.26,-9.97,-10.67,-11.35,-12.02,-12.67,-13.31,-13.92,-14.5,-15.05,-15.56,-16.03,-16.47,-16.85,-17.19,-17.47,-17.7,-17.86,-17.97,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18\r\r\nPARAM_EYE_L_OPEN=1,1,0.999,0.997,0.995,0.992,0.988,0.984,0.979,0.973,0.966,0.958,0.95,0.94,0.93,0.919,0.906,0.893,0.879,0.864,0.847,0.83,0.811,0.791,0.77,0.75,0.72,0.7,0.52,0.24,0.06,0,0,0,0.11,0.29,0.46,0.58,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63,0.63\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,0.999,0.997,0.995,0.992,0.988,0.984,0.979,0.973,0.966,0.958,0.95,0.94,0.93,0.919,0.906,0.893,0.879,0.864,0.847,0.83,0.811,0.791,0.77,0.75,0.72,0.7,0.52,0.24,0.06,0,0,0,0.11,0.29,0.45,0.57,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62,0.62\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=1\r\r\nPARAM_BROW_R_ANGLE=1\r\r\nPARAM_BROW_L_FORM=-1\r\r\nPARAM_BROW_R_FORM=-1\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.03,-0.12,-0.26,-0.44,-0.67,-0.93,-1.23,-1.55,-1.88,-2.23,-2.59,-2.96,-3.32,-3.67,-4.02,-4.35,-4.66,-4.95,-5.21,-5.44,-5.63,-5.79,-5.9,-5.98,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_BODY_ANGLE_Y=0,-0.32,-1.13,-2.22,-3.5,-4.82,-6.13,-7.37,-8.42,-9.26,-9.8,-10,-9.6,-8.53,-6.92,-4.9,-2.67,-0.29,2.04,4.22,6.14,7.76,8.98,9.74,10,9.52,8.31,6.67,4.75,2.76,0.8,-1.06,-2.62,-3.88,-4.7,-5,-4.67,-3.96,-3.08,-2.16,-1.33,-0.63,-0.17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0.003,0.013,0.029,0.05,0.08,0.11,0.15,0.19,0.23,0.28,0.33,0.38,0.44,0.5,0.56,0.62,0.69,0.76,0.82,0.89,0.96,1.02,1.09,1.16,1.23,1.29,1.36,1.42,1.48,1.54,1.59,1.65,1.7,1.75,1.79,1.83,1.87,1.9,1.93,1.96,1.974,1.989,1.997,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=1\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.88,-0.64,-0.32,0,0.29,0.54,0.7,0.76,0.73,0.67,0.57,0.45,0.34,0.23,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.9,-0.67,-0.4,-0.11,0.15,0.37,0.52,0.57,0.55,0.5,0.42,0.34,0.25,0.17,0.1,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.21,-0.35,-0.51,-0.69,-0.88,-1.07,-1.26,-1.43,-1.59,-1.73,-1.84,-1.93,-1.98,-2,-1.983,-1.93,-1.86,-1.76,-1.65,-1.52,-1.38,-1.24,-1.09,-0.94,-0.8,-0.66,-0.52,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_2=0,0,0,0,0,0,0,0,0,0,0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.34,-0.42,-0.5,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_3=0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.38,-0.57,-0.8,-1.04,-1.3,-1.58,-1.86,-2.14,-2.42,-2.7,-2.96,-3.2,-3.43,-3.62,-3.78,-3.9,-3.97,-4,-3.96,-3.86,-3.7,-3.49,-3.25,-2.96,-2.66,-2.33,-2,-1.67,-1.34,-1.04,-0.75,-0.51,-0.3,-0.14,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_L_1=0,0,0,0,0,0,0,0,0,0,0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_L_2=0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_L_3=0,0,0,0,0,0,0,0,0,0,0,0.05,0.18,0.39,0.66,1,1.39,1.81,2.27,2.76,3.25,3.75,4.24,4.73,5.19,5.61,6,6.34,6.61,6.82,6.95,7,6.94,6.76,6.48,6.11,5.68,5.19,4.65,4.08,3.5,2.92,2.35,1.81,1.32,0.89,0.52,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu30.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.38,-0.81,-1.38,-2.06,-2.82,-3.65,-4.51,-5.39,-6.27,-7.12,-7.92,-8.67,-9.33,-9.91,-10.37,-10.71,-10.93,-11,-11,-11,-11,-11,-11,-11,-11,-10.82,-10.32,-9.51,-8.44,-7.16,-5.7,-4.05,-2.35,-0.52,1.33,3.21,5.02,6.82,8.51,10.11,11.54,12.82,13.93,14.81,15.46,15.86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16\r\r\nPARAM_ANGLE_Y=0,0.26,0.96,2.03,3.38,4.88,6.5,8.12,9.62,10.97,12.04,12.74,13,12.53,11.22,9.15,6.51,3.38,-0.04,-3.66,-7.34,-10.96,-14.38,-17.51,-20.15,-22.22,-23.53,-24,-23.64,-22.62,-21.03,-18.93,-16.48,-13.65,-10.57,-7.33,-4,-0.67,2.57,5.65,8.48,10.93,13.03,14.62,15.64,16,15.56,14.31,12.39,9.9,7.03,3.86,0.6,-2.73,-5.97,-9.06,-11.83,-14.28,-16.28,-17.75,-18.69,-19,-18.88,-18.56,-18.08,-17.47,-16.8,-16.09,-15.39,-14.74,-14.16,-13.67,-13.31,-13.08,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.66,-1.41,-2.34,-3.38,-4.5,-5.62,-6.66,-7.59,-8.34,-8.82,-9,-8.94,-8.77,-8.5,-8.14,-7.71,-7.19,-6.61,-5.97,-5.29,-4.55,-3.79,-3.01,-2.19,-1.37,-0.53,0.32,1.14,1.96,2.77,3.55,4.31,5.03,5.7,6.33,6.91,7.43,7.89,8.27,8.58,8.81,8.95,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9\r\r\nPARAM_EYE_L_OPEN=1,1,1,0.999,0.998,0.997,0.996,0.995,0.993,0.991,0.989,0.986,0.984,0.981,0.978,0.975,0.971,0.967,0.963,0.959,0.955,0.95,0.945,0.94,0.934,0.929,0.923,0.916,0.91,0.903,0.896,0.889,0.882,0.874,0.866,0.857,0.849,0.84,0.831,0.822,0.812,0.802,0.792,0.781,0.771,0.76,0.748,0.737,0.725,0.712,0.7,0.52,0.25,0.06,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,0.999,0.998,0.997,0.996,0.995,0.993,0.991,0.989,0.986,0.984,0.981,0.978,0.975,0.971,0.967,0.963,0.959,0.955,0.95,0.945,0.94,0.934,0.929,0.923,0.916,0.91,0.903,0.896,0.889,0.882,0.874,0.866,0.857,0.849,0.84,0.831,0.822,0.812,0.802,0.792,0.781,0.771,0.76,0.748,0.737,0.725,0.712,0.7,0.52,0.25,0.06,0,0,0,0,0,0.07,0.25,0.47,0.68,0.85,0.96,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.02,0.034,0.051,0.07,0.09,0.11,0.14,0.16,0.18,0.2,0.219,0.236,0.25,0.261,0.268,0.27,0.269,0.266,0.26,0.253,0.244,0.232,0.22,0.206,0.19,0.174,0.156,0.137,0.118,0.097,0.08,0.05,0.03,0.01,-0.01,-0.03,-0.06,-0.08,-0.1,-0.12,-0.141,-0.16,-0.181,-0.199,-0.217,-0.233,-0.249,-0.263,-0.275,-0.287,-0.297,-0.305,-0.311,-0.316,-0.319,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32,-0.32\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.24,0.27,0.3,0.33,0.36,0.38,0.396,0.406,0.41,0.41,0.408,0.406,0.404,0.401,0.397,0.392,0.387,0.382,0.376,0.37,0.363,0.356,0.349,0.341,0.333,0.326,0.318,0.31,0.302,0.294,0.286,0.279,0.271,0.264,0.257,0.25,0.243,0.237,0.231,0.225,0.22,0.216,0.212,0.208,0.205,0.203,0.201,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-5.97,-5.88,-5.75,-5.56,-5.34,-5.07,-4.76,-4.43,-4.07,-3.68,-3.27,-2.85,-2.41,-1.95,-1.49,-1.03,-0.56,-0.09,0.37,0.83,1.28,1.71,2.13,2.54,2.92,3.28,3.61,3.91,4.18,4.42,4.62,4.78,4.9,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,0.16,0.59,1.23,2.04,2.93,3.88,4.82,5.69,6.46,7.11,7.59,7.9,8,7.88,7.54,7.02,6.35,5.56,4.7,3.79,2.86,1.93,1,0.25,0.02,0,0.04,0.31,1,2.07,3.04,3.95,4.79,5.56,6.26,6.91,7.49,8.01,8.47,8.87,9.21,9.49,9.71,9.87,9.97,10,9.78,9.19,8.28,7.14,5.87,4.5,3.13,1.86,0.72,-0.19,-0.78,-1,-0.9,-0.63,-0.22,0.3,0.88,1.5,2.12,2.7,3.22,3.63,3.9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,-0.018,-0.07,-0.15,-0.25,-0.37,-0.51,-0.66,-0.82,-0.98,-1.14,-1.29,-1.44,-1.58,-1.7,-1.8,-1.89,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.96,-1.86,-1.7,-1.49,-1.25,-0.96,-0.66,-0.33,0,0.33,0.66,0.96,1.25,1.49,1.7,1.86,1.96,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,0,0,0,0,-0.01,-0.04,-0.08,-0.13,-0.17,-0.22,-0.26,-0.29,-0.3,-0.26,-0.19,-0.09,0.01,0.1,0.17,0.22,0.24,0.229,0.2,0.15,0.09,0.03,-0.04,-0.1,-0.17,-0.22,-0.26,-0.3,-0.34,-0.37,-0.4,-0.42,-0.436,-0.451,-0.463,-0.473,-0.48,-0.485,-0.488,-0.49,-0.49,-0.36,-0.15,0.05,0.19,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.006,-0.022,-0.05,-0.08,-0.11,-0.15,-0.18,-0.21,-0.24,-0.27,-0.285,-0.296,-0.3,-0.27,-0.19,-0.1,-0.01,0.08,0.15,0.2,0.22,0.21,0.18,0.14,0.09,0.04,-0.03,-0.09,-0.14,-0.19,-0.23,-0.27,-0.3,-0.33,-0.35,-0.373,-0.39,-0.404,-0.415,-0.424,-0.43,-0.435,-0.438,-0.44,-0.44,-0.33,-0.16,0,0.11,0.16,0.154,0.14,0.12,0.1,0.07,0.05,0.028,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_2=0,-0.004,-0.014,-0.031,-0.05,-0.08,-0.11,-0.14,-0.16,-0.19,-0.22,-0.25,-0.27,-0.286,-0.296,-0.3,-0.296,-0.286,-0.269,-0.25,-0.22,-0.19,-0.16,-0.14,-0.11,-0.08,-0.05,-0.03,-0.014,-0.004,0,-0.003,-0.01,-0.022,-0.038,-0.056,-0.08,-0.1,-0.13,-0.15,-0.17,-0.2,-0.22,-0.24,-0.262,-0.278,-0.29,-0.297,-0.3,-0.294,-0.278,-0.25,-0.22,-0.19,-0.15,-0.11,-0.08,-0.05,-0.02,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_R_3=0,0.05,0.17,0.37,0.61,0.88,1.18,1.51,1.83,2.15,2.46,2.76,3.03,3.27,3.46,3.61,3.71,3.74,3.67,3.47,3.16,2.79,2.37,1.93,1.49,1.08,0.72,0.42,0.19,0.05,0,0.03,0.12,0.26,0.44,0.66,0.9,1.15,1.42,1.7,1.97,2.25,2.51,2.76,2.99,3.2,3.39,3.53,3.64,3.72,3.74,3.61,3.27,2.79,2.23,1.65,1.11,0.65,0.3,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_1=0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.987,-0.95,-0.9,-0.83,-0.74,-0.65,-0.56,-0.46,-0.37,-0.28,-0.2,-0.13,-0.08,-0.04,-0.01,0,-0.013,-0.05,-0.1,-0.16,-0.24,-0.32,-0.4,-0.49,-0.58,-0.66,-0.74,-0.81,-0.87,-0.93,-0.97,-0.99,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,-0.003,-0.013,-0.028,-0.047,-0.07,-0.1,-0.12,-0.15,-0.18,-0.2,-0.22,-0.243,-0.258,-0.267,-0.271,-0.267,-0.258,-0.243,-0.223,-0.2,-0.18,-0.15,-0.12,-0.1,-0.07,-0.05,-0.028,-0.013,-0.003,0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.091,-0.11,-0.14,-0.16,-0.18,-0.2,-0.22,-0.236,-0.251,-0.261,-0.268,-0.271,-0.265,-0.251,-0.23,-0.2,-0.17,-0.14,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.03,0.13,0.27,0.44,0.65,0.87,1.1,1.34,1.58,1.81,2.02,2.22,2.39,2.54,2.65,2.72,2.74,2.69,2.54,2.32,2.04,1.74,1.41,1.09,0.79,0.53,0.31,0.14,0.04,0,0.02,0.09,0.19,0.33,0.48,0.66,0.84,1.04,1.24,1.45,1.65,1.84,2.02,2.19,2.35,2.48,2.59,2.67,2.72,2.741,2.65,2.4,2.04,1.63,1.21,0.81,0.48,0.22,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu31.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.22,0.81,1.69,2.8,4.03,5.34,6.62,7.82,8.88,9.77,10.44,10.86,11,10.87,10.52,9.97,9.24,8.38,7.41,6.36,5.27,4.14,3.02,1.94,0.92,-0.03,-0.87,-1.61,-2.2,-2.63,-2.91,-3,-2.97,-2.88,-2.73,-2.55,-2.32,-2.07,-1.79,-1.49,-1.18,-0.87,-0.54,-0.22,0.1,0.4,0.69,0.96,1.21,1.44,1.63,1.79,1.9,1.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_ANGLE_Y=0,-0.32,-1.18,-2.46,-4.08,-5.87,-7.77,-9.63,-11.37,-12.92,-14.21,-15.18,-15.79,-16,-15.84,-15.38,-14.68,-13.74,-12.64,-11.39,-10.03,-8.63,-7.18,-5.74,-4.35,-3.04,-1.82,-0.73,0.21,0.97,1.53,1.88,2,1.73,1.03,-0.05,-1.4,-2.95,-4.64,-6.45,-8.25,-10.09,-11.83,-13.48,-15,-16.34,-17.44,-18.28,-18.81,-19,-18.81,-18.32,-17.67,-16.9,-16.11,-15.32,-14.58,-13.95,-13.45,-13.12,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13\r\r\nPARAM_ANGLE_Z=0,0.1,0.37,0.78,1.29,1.89,2.53,3.22,3.91,4.61,5.27,5.9,6.48,6.99,7.41,7.72,7.93,8,7.84,7.37,6.65,5.72,4.62,3.42,2.15,0.85,-0.42,-1.62,-2.72,-3.65,-4.37,-4.84,-5,-4.95,-4.8,-4.55,-4.23,-3.82,-3.36,-2.83,-2.25,-1.64,-0.98,-0.29,0.42,1.14,1.86,2.58,3.29,3.98,4.64,5.25,5.83,6.36,6.82,7.23,7.55,7.8,7.95,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_EYE_BALL_X=0,0.009,0.03,0.07,0.12,0.17,0.22,0.28,0.33,0.37,0.41,0.44,0.454,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.46,0.23,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15\r\r\nPARAM_EYE_BALL_Y=0,0.002,0.006,0.012,0.02,0.029,0.039,0.048,0.057,0.065,0.071,0.076,0.079,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,0.08,-0.01,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04,-0.04\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=-0.48\r\r\nPARAM_BROW_R_ANGLE=-0.48\r\r\nPARAM_BROW_L_FORM=-0.33\r\r\nPARAM_BROW_R_FORM=-0.33\r\r\nPARAM_MOUTH_FORM=-1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.24,-0.52,-0.89,-1.32,-1.81,-2.35,-2.92,-3.5,-4.08,-4.65,-5.19,-5.68,-6.11,-6.48,-6.76,-6.94,-7,-6.92,-6.7,-6.34,-5.86,-5.29,-4.64,-3.91,-3.15,-2.34,-1.52,-0.68,0.12,0.92,1.67,2.38,3.02,3.59,4.08,4.47,4.76,4.94,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,-0.1,-0.37,-0.78,-1.3,-1.88,-2.5,-3.12,-3.7,-4.22,-4.63,-4.9,-5,-4.86,-4.47,-3.85,-3.07,-2.14,-1.12,-0.05,1.05,2.12,3.14,4.07,4.85,5.47,5.86,6,5.93,5.74,5.45,5.05,4.57,4.01,3.41,2.75,2.06,1.35,0.65,-0.06,-0.75,-1.41,-2.01,-2.57,-3.05,-3.45,-3.74,-3.93,-4,-3.74,-3.17,-2.46,-1.73,-1.06,-0.51,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,-0.019,-0.07,-0.16,-0.27,-0.41,-0.56,-0.73,-0.9,-1.09,-1.28,-1.48,-1.67,-1.86,-2.04,-2.22,-2.38,-2.53,-2.66,-2.78,-2.87,-2.94,-2.98,-3,-2.97,-2.89,-2.76,-2.58,-2.37,-2.12,-1.83,-1.52,-1.19,-0.83,-0.46,-0.08,0.31,0.69,1.08,1.46,1.83,2.19,2.52,2.83,3.12,3.37,3.58,3.76,3.89,3.97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0,0.06,0.21,0.42,0.69,0.99,1.3,1.62,1.93,2.21,2.47,2.68,2.85,2.96,3,2.9,2.63,2.23,1.73,1.17,0.57,-0.01,-0.55,-1.04,-1.44,-1.75,-1.93,-2,-1.94,-1.77,-1.56,-1.3,-1.04,-0.77,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_2=0,0.03,0.1,0.21,0.35,0.51,0.69,0.88,1.07,1.26,1.43,1.59,1.73,1.84,1.93,1.98,2,1.94,1.78,1.54,1.24,0.9,0.54,0.19,-0.13,-0.42,-0.66,-0.85,-0.96,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_3=0,0.03,0.1,0.22,0.38,0.56,0.77,0.99,1.23,1.47,1.71,1.94,2.16,2.36,2.54,2.7,2.83,2.92,2.98,3,2.74,2.04,0.97,-0.38,-1.88,-3.5,-5.12,-6.62,-7.97,-9.04,-9.74,-10,-9.68,-8.87,-7.78,-6.5,-5.18,-3.87,-2.63,-1.58,-0.74,-0.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0,0.13,0.48,0.99,1.61,2.31,3.04,3.78,4.49,5.16,5.76,6.26,6.66,6.91,7,6.9,6.61,6.17,5.61,4.95,4.22,3.48,2.72,1.98,1.27,0.64,0.08,-0.38,-0.72,-0.93,-1,-0.96,-0.85,-0.67,-0.43,-0.15,0.18,0.55,0.92,1.33,1.74,2.16,2.56,2.96,3.34,3.69,4.01,4.29,4.54,4.73,4.88,4.97,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_P06_ARM_R_2=0,0.04,0.13,0.29,0.49,0.72,0.97,1.23,1.5,1.75,2,2.22,2.42,2.58,2.69,2.77,2.79,2.76,2.66,2.51,2.31,2.08,1.82,1.56,1.3,1.04,0.79,0.57,0.38,0.22,0.1,0.03,0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_P06_ARM_R_3=0,0.04,0.15,0.32,0.54,0.81,1.1,1.43,1.77,2.11,2.46,2.79,3.11,3.4,3.66,3.88,4.06,4.2,4.28,4.31,4.19,3.86,3.34,2.68,1.89,1.03,0.12,-0.81,-1.72,-2.58,-3.37,-4.03,-4.55,-4.88,-5,-4.97,-4.87,-4.72,-4.53,-4.3,-4.04,-3.77,-3.48,-3.19,-2.89,-2.6,-2.32,-2.05,-1.8,-1.57,-1.38,-1.22,-1.1,-1.03,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=1\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=1\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu32.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0.38,1.37,2.8,4.44,6.14,7.73,9.08,10.12,10.77,11,10.11,7.71,4.24,0.12,-4.12,-8.24,-11.71,-14.11,-15,-14.51,-13.35,-11.72,-9.74,-7.54,-5.13,-2.63,0,2.86,5.34,7.57,9.5,11.12,12.51,13.64,14.52,15.19,15.65,15.91,16,15.45,14.01,11.92,9.54,7.06,4.76,2.79,1.28,0.33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.05,-0.2,-0.44,-0.75,-1.15,-1.6,-2.11,-2.67,-3.28,-3.9,-4.57,-5.25,-5.93,-6.62,-7.3,-7.97,-8.63,-9.25,-9.83,-10.39,-10.9,-11.35,-11.75,-12.09,-12.36,-12.56,-12.68,-12.72,-12.58,-12.16,-11.49,-10.59,-9.49,-8.22,-6.76,-5.17,-3.48,-1.66,0.23,2.17,4.15,6.13,8.11,10.05,11.94,13.75,15.45,17.04,18.49,19.77,20.87,21.77,22.44,22.86,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0.005,0.018,0.04,0.07,0.11,0.15,0.21,0.27,0.33,0.41,0.49,0.57,0.66,0.76,0.86,0.96,1.07,1.18,1.3,1.41,1.54,1.66,1.79,1.91,2.04,2.17,2.3,2.43,2.57,2.7,2.83,2.96,3.09,3.21,3.34,3.46,3.59,3.7,3.82,3.93,4.04,4.14,4.24,4.34,4.43,4.51,4.59,4.67,4.73,4.79,4.85,4.89,4.93,4.96,4.98,4.995,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5\r\r\nPARAM_BODY_ANGLE_Y=0,0,0,0,0,0,0,0,0.12,0.44,0.94,1.56,2.25,3,3.75,4.44,5.06,5.56,5.88,6,5.19,3.22,0.82,-1.52,-3.4,-4.6,-5,-4.97,-4.85,-4.64,-4.29,-3.82,-3.17,-2.33,-1.28,0,1.64,3.14,4.49,5.72,6.79,7.73,8.53,9.15,9.61,9.9,10,9.48,8.13,6.18,3.94,1.62,-0.54,-2.39,-3.8,-4.69,-5,-4.9,-4.63,-4.22,-3.7,-3.12,-2.5,-1.88,-1.3,-0.78,-0.37,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.17,0.24,0.32,0.4,0.49,0.59,0.68,0.78,0.88,0.99,1.09,1.19,1.29,1.39,1.48,1.57,1.65,1.72,1.79,1.85,1.9,1.94,1.97,1.994,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.93,0.75,0.53,0.32,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0.014,0.05,0.11,0.18,0.26,0.34,0.43,0.5,0.57,0.63,0.67,0.7,0.71,0.68,0.59,0.46,0.32,0.17,0.03,-0.09,-0.18,-0.24,-0.26,-0.255,-0.241,-0.22,-0.19,-0.16,-0.13,-0.1,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.006,-0.022,-0.05,-0.08,-0.12,-0.16,-0.2,-0.25,-0.29,-0.33,-0.37,-0.4,-0.42,-0.444,-0.456,-0.46,-0.38,-0.22,-0.01,0.2,0.4,0.56,0.67,0.71,0.69,0.62,0.53,0.41,0.3,0.18,0.09,0.02,0,0,0,0,0,0,0,0,-0.04,-0.13,-0.25,-0.36,-0.45,-0.49,-0.41,-0.23,0,0.23,0.44,0.62,0.74,0.78,0.72,0.58,0.39,0.2,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.005,-0.019,-0.04,-0.07,-0.1,-0.14,-0.17,-0.21,-0.24,-0.28,-0.31,-0.34,-0.36,-0.376,-0.387,-0.39,-0.33,-0.2,-0.04,0.13,0.29,0.41,0.5,0.53,0.512,0.46,0.39,0.31,0.22,0.14,0.07,0.02,0,0,0,0,0,0,0,0,-0.03,-0.11,-0.22,-0.33,-0.41,-0.44,-0.38,-0.26,-0.11,0.05,0.19,0.31,0.39,0.42,0.39,0.31,0.21,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0\r\r\nPARAM_P01_ARM_L_2=0\r\r\nPARAM_P01_ARM_L_3=0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0,0,0,0,0,0,0,0,0,0,-0.06,-0.23,-0.44,-0.7,-0.96,-1.23,-1.47,-1.68,-1.85,-1.96,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,0,0,0,-0.06,-0.23,-0.44,-0.7,-0.96,-1.23,-1.47,-1.68,-1.85,-1.96,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_2=0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_3=0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.28,-0.46,-0.66,-0.87,-1.08,-1.28,-1.47,-1.65,-1.79,-1.9,-1.97,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,-0.04,-0.14,-0.28,-0.46,-0.66,-0.87,-1.08,-1.28,-1.47,-1.65,-1.79,-1.9,-1.97,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_1=0,0,0,0,0,0,0,0,0,0,-0.06,-0.23,-0.44,-0.7,-0.96,-1.23,-1.47,-1.68,-1.85,-1.96,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,0,0,0,-0.06,-0.23,-0.44,-0.7,-0.96,-1.23,-1.47,-1.68,-1.85,-1.96,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_2=0,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.93,-0.79,-0.62,-0.43,-0.27,-0.13,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_3=0,0,0,0,0,0,0,0,0,0,-0.04,-0.14,-0.28,-0.46,-0.66,-0.87,-1.08,-1.28,-1.47,-1.65,-1.79,-1.9,-1.97,-2,-1.85,-1.5,-1.06,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,-0.04,-0.14,-0.28,-0.46,-0.66,-0.87,-1.08,-1.28,-1.47,-1.65,-1.79,-1.9,-1.97,-2,-1.87,-1.59,-1.23,-0.87,-0.53,-0.25,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=0\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=1\r\r\nVISIBLE:PARTS_ARM_P05_L=1\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu33.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.38,-0.81,-1.38,-2.06,-2.82,-3.65,-4.51,-5.39,-6.27,-7.12,-7.92,-8.67,-9.33,-9.91,-10.37,-10.71,-10.93,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11\r\r\nPARAM_ANGLE_Y=0,1.03,3.53,6.59,9.57,11.96,13.49,14,12.75,10.06,6.71,3.22,0.04,-2.59,-4.35,-5,-4.89,-4.54,-3.91,-2.96,-1.69,0,1.98,3.78,5.43,6.93,8.25,9.42,10.41,11.23,11.88,12.38,12.73,12.93,13,12.29,10.46,7.78,4.46,0.78,-3.07,-6.96,-10.75,-14.28,-17.47,-20.11,-22.19,-23.53,-24,-23.69,-22.86,-21.66,-20.24,-18.76,-17.34,-16.14,-15.31,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.29,-1.01,-2,-3.15,-4.34,-5.52,-6.64,-7.57,-8.33,-8.82,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9\r\r\nPARAM_EYE_L_OPEN=1.5,1.493,1.47,1.43,1.38,1.31,1.22,1.11,0.99,0.85,0.7,0.42,0.18,0.04,0,0,0,0,0.18,0.46,0.73,0.92,1,1,0.998,0.996,0.992,0.987,0.981,0.974,0.966,0.956,0.945,0.932,0.919,0.903,0.887,0.868,0.849,0.83,0.8,0.78,0.76,0.73,0.7,0.51,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_SMILE=1\r\r\nPARAM_EYE_R_OPEN=1.5,1.493,1.47,1.43,1.38,1.31,1.22,1.11,0.99,0.85,0.7,0.42,0.18,0.04,0,0,0,0,0.18,0.46,0.73,0.92,1,1,0.998,0.996,0.992,0.987,0.981,0.974,0.966,0.956,0.945,0.932,0.919,0.903,0.887,0.868,0.849,0.83,0.8,0.78,0.76,0.73,0.7,0.51,0.24,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_R_SMILE=1\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.009,0.02,0.034,0.051,0.07,0.09,0.11,0.14,0.16,0.18,0.2,0.219,0.236,0.25,0.261,0.268,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27,0.27\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.004,0.014,0.03,0.05,0.08,0.11,0.14,0.17,0.21,0.24,0.27,0.3,0.33,0.36,0.38,0.396,0.406,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0.72\r\r\nPARAM_BROW_R_Y=0.72\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.28\r\r\nPARAM_BROW_R_FORM=-0.28\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.29,-0.62,-1.05,-1.54,-2.08,-2.64,-3.21,-3.77,-4.3,-4.77,-5.19,-5.53,-5.79,-5.95,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6\r\r\nPARAM_BODY_ANGLE_Y=0,0.23,0.85,1.75,2.81,3.91,4.98,5.88,6.5,6.73,6.09,4.53,2.62,0.76,-0.73,-1.68,-2,-1.999,-1.95,-1.8,-1.46,-0.89,0,1.17,2.33,3.48,4.6,5.64,6.62,7.48,8.23,8.86,9.36,9.71,9.93,10,9.55,8.38,6.69,4.75,2.74,0.87,-0.74,-1.96,-2.73,-3,-2.9,-2.62,-2.22,-1.75,-1.25,-0.78,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.008,-0.03,-0.07,-0.12,-0.18,-0.25,-0.33,-0.42,-0.52,-0.61,-0.72,-0.83,-0.93,-1.04,-1.15,-1.25,-1.36,-1.45,-1.55,-1.63,-1.71,-1.78,-1.85,-1.9,-1.94,-1.97,-1.994,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0,-0.08,-0.21,-0.34,-0.43,-0.46,-0.39,-0.21,0.01,0.22,0.39,0.49,0.53,0.46,0.29,0.07,-0.15,-0.32,-0.39,-0.36,-0.31,-0.24,-0.17,-0.1,-0.05,-0.01,0,-0.01,-0.04,-0.08,-0.13,-0.17,-0.22,-0.26,-0.29,-0.3,-0.26,-0.19,-0.09,0.01,0.1,0.17,0.22,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24,0.24\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0,-0.08,-0.21,-0.33,-0.42,-0.45,-0.38,-0.21,0.01,0.21,0.38,0.48,0.52,0.45,0.29,0.06,-0.16,-0.32,-0.39,-0.39,-0.39,-0.389,-0.388,-0.386,-0.384,-0.381,-0.377,-0.373,-0.368,-0.361,-0.354,-0.346,-0.336,-0.326,-0.313,-0.3,-0.25,-0.17,-0.08,0.01,0.09,0.16,0.2,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22,0.22\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P01_ARM_R_2=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.975,0.94,0.9,0.85,0.8,0.73,0.67,0.59,0.52,0.44,0.36,0.28,0.2,0.13,0.06,-0.01,-0.07,-0.13,-0.18,-0.22,-0.25,-0.28,-0.295,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3\r\r\nPARAM_P01_ARM_R_3=0,0.05,0.18,0.37,0.61,0.88,1.17,1.46,1.75,2.03,2.3,2.53,2.73,2.89,3,3.09,3.16,3.24,3.3,3.36,3.42,3.46,3.51,3.55,3.58,3.61,3.63,3.66,3.675,3.691,3.704,3.714,3.722,3.728,3.733,3.736,3.739,3.74,3.74,3.741,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74,3.74\r\r\nPARAM_P01_ARM_L_1=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_P01_ARM_L_2=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.975,0.95,0.91,0.86,0.8,0.74,0.67,0.6,0.53,0.45,0.37,0.3,0.22,0.15,0.08,0.01,-0.05,-0.1,-0.15,-0.19,-0.23,-0.25,-0.266,-0.271,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27,-0.27\r\r\nPARAM_P01_ARM_L_3=0,0.03,0.11,0.23,0.38,0.55,0.74,0.93,1.12,1.3,1.48,1.64,1.79,1.91,2,2.08,2.16,2.23,2.29,2.35,2.41,2.45,2.5,2.54,2.57,2.6,2.63,2.65,2.668,2.684,2.698,2.709,2.718,2.726,2.731,2.735,2.738,2.739,2.74,2.741,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74,2.74\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu34.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,0.016,0.06,0.14,0.24,0.37,0.52,0.69,0.88,1.08,1.29,1.52,1.76,2,2.25,2.5,2.75,3,3.24,3.48,3.71,3.92,4.12,4.31,4.48,4.63,4.76,4.86,4.94,4.98,5,4.995,4.981,4.96,4.93,4.89,4.85,4.81,4.76,4.7,4.65,4.59,4.54,4.48,4.42,4.37,4.31,4.26,4.21,4.17,4.13,4.09,4.06,4.03,4.016,4.004,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4\r\r\nPARAM_ANGLE_Y=0,0.23,0.87,1.86,3.14,4.61,6.25,7.92,9.63,11.3,12.89,14.31,15.57,16.6,17.36,17.84,18,17.56,16.42,14.75,12.69,10.41,8.01,5.59,3.24,1.04,-0.94,-2.58,-3.88,-4.71,-5,-4.75,-4.11,-3.16,-2,-0.71,0.65,2.01,3.34,4.58,5.71,6.63,7.36,7.84,8,7.71,6.97,5.88,4.54,3.05,1.49,-0.09,-1.63,-3.06,-4.35,-5.42,-6.27,-6.81,-7,-6.89,-6.57,-6.06,-5.42,-4.66,-3.83,-2.95,-2.05,-1.17,-0.34,0.42,1.06,1.57,1.89,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_ANGLE_Z=0,0.06,0.24,0.52,0.9,1.37,1.91,2.52,3.2,3.91,4.7,5.5,6.33,7.18,8.06,8.94,9.83,10.71,11.57,12.42,13.25,14.05,14.81,15.52,16.19,16.79,17.34,17.83,18.23,18.56,18.8,18.95,19,18.93,18.71,18.35,17.88,17.3,16.61,15.84,14.98,14.07,13.08,12.04,10.97,9.88,8.76,7.63,6.52,5.42,4.34,3.28,2.25,1.29,0.38,-0.47,-1.25,-1.94,-2.54,-3.05,-3.45,-3.75,-3.94,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0\r\r\nPARAM_BROW_R_Y=0\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=0\r\r\nPARAM_BROW_R_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.07,-0.25,-0.51,-0.81,-1.12,-1.41,-1.65,-1.84,-1.96,-2,-1.93,-1.73,-1.44,-1.05,-0.6,-0.08,0.47,1.04,1.63,2.22,2.8,3.37,3.91,4.4,4.85,5.24,5.56,5.79,5.95,6,5.98,5.92,5.83,5.71,5.57,5.41,5.22,5.02,4.82,4.6,4.37,4.14,3.91,3.69,3.47,3.25,3.05,2.85,2.67,2.51,2.36,2.24,2.14,2.06,2.02,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2\r\r\nPARAM_BODY_ANGLE_Y=0,0.04,0.14,0.31,0.52,0.77,1.04,1.32,1.61,1.88,2.15,2.39,2.6,2.77,2.89,2.97,3,2.94,2.79,2.58,2.31,2.01,1.7,1.38,1.07,0.79,0.53,0.32,0.15,0.04,0,0.11,0.43,0.93,1.57,2.31,3.12,3.96,4.82,5.65,6.45,7.16,7.79,8.3,8.68,8.92,9,8.93,8.72,8.38,7.94,7.4,6.79,6.11,5.38,4.61,3.82,3.01,2.22,1.43,0.69,0,-0.54,-0.85,-1,-1.04,-1.019,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\r\r\nPARAM_BODY_ANGLE_Z=0,-0.013,-0.05,-0.1,-0.17,-0.26,-0.35,-0.44,-0.54,-0.63,-0.72,-0.8,-0.87,-0.92,-0.96,-0.99,-1,-0.92,-0.7,-0.38,0.01,0.45,0.91,1.37,1.82,2.24,2.62,2.93,3.18,3.34,3.39,3.382,3.35,3.29,3.21,3.11,3,2.86,2.71,2.55,2.38,2.19,1.99,1.79,1.58,1.37,1.15,0.92,0.7,0.47,0.25,0.03,-0.19,-0.4,-0.6,-0.8,-0.98,-1.16,-1.32,-1.47,-1.6,-1.72,-1.81,-1.89,-1.95,-1.99,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2\r\r\nPARAM_BREATH=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0\r\r\nPARAM_P01_ARM_R_2=0\r\r\nPARAM_P01_ARM_R_3=0\r\r\nPARAM_P01_ARM_L_1=0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.47,0.38,0.24,0.06,-0.16,-0.41,-0.68,-0.96,-1.25,-1.54,-1.82,-2.09,-2.34,-2.56,-2.74,-2.88,-2.97,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.22,-1.99,-1.75,-1.5,-1.25,-1.01,-0.78,-0.56,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_2=0,0.006,0.024,0.05,0.09,0.13,0.18,0.23,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.47,0.38,0.24,0.06,-0.16,-0.41,-0.68,-0.96,-1.25,-1.54,-1.82,-2.09,-2.34,-2.56,-2.74,-2.88,-2.97,-3,-2.91,-2.68,-2.31,-1.83,-1.28,-0.67,-0.04,0.6,1.22,1.82,2.35,2.82,3.21,3.49,3.67,3.73,3.68,3.56,3.36,3.13,2.85,2.55,2.23,1.91,1.58,1.27,0.98,0.71,0.47,0.28,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P01_ARM_L_3=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.96,0.83,0.63,0.37,0.06,-0.29,-0.68,-1.08,-1.5,-1.92,-2.32,-2.71,-3.06,-3.37,-3.63,-3.83,-3.96,-4,-3.91,-3.67,-3.3,-2.83,-2.27,-1.66,-1.03,-0.39,0.23,0.83,1.36,1.83,2.22,2.5,2.68,2.74,2.71,2.61,2.45,2.26,2.03,1.77,1.51,1.23,0.97,0.71,0.48,0.29,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0,0.01,0.03,0.07,0.12,0.17,0.22,0.27,0.32,0.37,0.41,0.45,0.48,0.494,0.5,0.47,0.38,0.24,0.06,-0.16,-0.41,-0.68,-0.96,-1.25,-1.54,-1.82,-2.09,-2.34,-2.56,-2.74,-2.88,-2.97,-3,-2.985,-2.94,-2.87,-2.78,-2.66,-2.53,-2.39,-2.24,-2.09,-1.92,-1.76,-1.6,-1.44,-1.29,-1.14,-1,-0.86,-0.73,-0.61,-0.51,-0.42,-0.34,-0.27,-0.21,-0.16,-0.12,-0.09,-0.06,-0.04,-0.022,-0.012,-0.005,-0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_2=0,-0.001,-0.004,-0.006,-0.007,-0.005,0.002,0.014,0.034,0.06,0.1,0.15,0.22,0.29,0.39,0.5,0.64,0.81,1.01,1.24,1.47,1.73,1.99,2.26,2.52,2.78,3.03,3.26,3.46,3.64,3.79,3.9,3.98,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.95,3.82,3.61,3.35,3.06,2.73,2.39,2.05,1.7,1.37,1.05,0.76,0.51,0.3,0.14,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_R_3=0,-0.001,-0.002,-0.001,0.002,0.011,0.025,0.05,0.08,0.12,0.16,0.23,0.3,0.39,0.49,0.61,0.75,0.9,1.09,1.32,1.57,1.84,2.12,2.42,2.73,3.04,3.34,3.63,3.91,4.17,4.4,4.6,4.77,4.89,4.97,5,4.94,4.76,4.48,4.13,3.72,3.27,2.8,2.32,1.86,1.42,1.02,0.67,0.39,0.18,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=0\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=1\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/motions/Live2D_remu_idle.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=2000\r\n\r\n$fadeout=2000\r\n\r\n$fadein:PARAM_EYE_L_OPEN=250\r\r\n$fadeout:PARAM_EYE_L_OPEN=250\r\r\n$fadein:PARAM_EYE_L_SMILE=250\r\r\n$fadeout:PARAM_EYE_L_SMILE=250\r\r\n$fadein:PARAM_EYE_R_OPEN=250\r\r\n$fadeout:PARAM_EYE_R_OPEN=250\r\r\n$fadein:PARAM_EYE_R_SMILE=250\r\r\n$fadeout:PARAM_EYE_R_SMILE=250\r\r\n$fadein:PARAM_EYE_FORM=250\r\r\n$fadeout:PARAM_EYE_FORM=250\r\r\nPARAM_ANGLE_X=0,-0.018,-0.07,-0.16,-0.27,-0.41,-0.58,-0.77,-0.98,-1.21,-1.45,-1.72,-1.99,-2.28,-2.57,-2.87,-3.18,-3.49,-3.8,-4.12,-4.43,-4.74,-5.04,-5.34,-5.63,-5.91,-6.18,-6.44,-6.69,-6.92,-7.12,-7.32,-7.49,-7.64,-7.76,-7.86,-7.94,-7.98,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.995,-7.978,-7.95,-7.92,-7.87,-7.81,-7.75,-7.68,-7.6,-7.51,-7.41,-7.3,-7.19,-7.07,-6.95,-6.82,-6.68,-6.54,-6.4,-6.24,-6.09,-5.93,-5.77,-5.61,-5.44,-5.26,-5.09,-4.92,-4.74,-4.56,-4.38,-4.2,-4.02,-3.84,-3.66,-3.49,-3.31,-3.13,-2.96,-2.78,-2.61,-2.45,-2.28,-2.12,-1.96,-1.81,-1.66,-1.51,-1.38,-1.24,-1.11,-0.98,-0.87,-0.76,-0.65,-0.55,-0.46,-0.38,-0.3,-0.23,-0.17,-0.12,-0.08,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0.05,0.18,0.39,0.66,0.98,1.33,1.7,2.08,2.45,2.79,3.12,3.38,3.6,3.73,3.78,3.61,3.12,2.34,1.35,0.14,-1.21,-2.7,-4.29,-5.97,-7.66,-9.4,-11.12,-12.8,-14.45,-16,-17.45,-18.79,-19.98,-21.01,-21.85,-22.48,-22.86,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-22.96,-22.83,-22.62,-22.34,-21.98,-21.57,-21.08,-20.53,-19.94,-19.29,-18.6,-17.86,-17.1,-16.29,-15.46,-14.59,-13.72,-12.84,-11.94,-11.03,-10.11,-9.2,-8.29,-7.41,-6.52,-5.64,-4.8,-3.98,-3.18,-2.42,-1.69,-1.01,-0.37,0.23,0.78,1.27,1.72,2.1,2.41,2.67,2.85,2.96,3,2.981,2.93,2.84,2.73,2.59,2.44,2.27,2.1,1.91,1.72,1.52,1.33,1.14,0.96,0.78,0.62,0.47,0.34,0.22,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.002,-0.007,-0.016,-0.028,-0.044,-0.06,-0.09,-0.12,-0.15,-0.19,-0.23,-0.28,-0.33,-0.39,-0.45,-0.52,-0.59,-0.67,-0.76,-0.85,-0.94,-1.04,-1.15,-1.27,-1.39,-1.51,-1.65,-1.79,-1.94,-2.09,-2.25,-2.42,-2.59,-2.77,-2.96,-3.15,-3.35,-3.56,-3.78,-4,-4.25,-4.51,-4.77,-5.03,-5.29,-5.55,-5.8,-6.05,-6.29,-6.52,-6.74,-6.94,-7.13,-7.3,-7.46,-7.6,-7.72,-7.82,-7.9,-7.95,-7.99,-8,-7.991,-7.97,-7.92,-7.87,-7.79,-7.71,-7.6,-7.49,-7.36,-7.21,-7.06,-6.89,-6.71,-6.52,-6.32,-6.11,-5.89,-5.66,-5.42,-5.17,-4.92,-4.66,-4.39,-4.12,-3.84,-3.55,-3.26,-2.96,-2.67,-2.36,-2.06,-1.76,-1.45,-1.13,-0.82,-0.51,-0.2,0.12,0.43,0.74,1.04,1.34,1.65,1.95,2.24,2.53,2.82,3.1,3.37,3.64,3.9,4.15,4.4,4.64,4.87,5.09,5.3,5.5,5.69,5.87,6.04,6.19,6.34,6.47,6.58,6.69,6.78,6.85,6.91,6.95,6.97,6.981,6.971,6.94,6.89,6.83,6.74,6.64,6.53,6.4,6.25,6.1,5.93,5.76,5.57,5.38,5.17,4.96,4.74,4.52,4.3,4.07,3.84,3.61,3.37,3.14,2.91,2.68,2.46,2.24,2.02,1.81,1.61,1.41,1.22,1.05,0.88,0.73,0.58,0.46,0.34,0.24,0.16,0.09,0.04,0.01,0\r\r\nPARAM_EYE_L_OPEN=1,0.999,0.996,0.991,0.985,0.977,0.969,0.959,0.949,0.938,0.927,0.916,0.905,0.894,0.884,0.875,0.866,0.859,0.852,0.847,0.843,0.841,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.84,0.78,0.62,0.42,0.22,0.06,0,0,0,0.05,0.17,0.32,0.47,0.61,0.73,0.81,0.84,0.845,0.85,0.854,0.859,0.864,0.868,0.872,0.877,0.881,0.885,0.889,0.893,0.897,0.901,0.904,0.908,0.911,0.915,0.918,0.922,0.925,0.928,0.931,0.934,0.937,0.94,0.943,0.945,0.948,0.95,0.953,0.955,0.958,0.96,0.962,0.964,0.966,0.968,0.97,0.972,0.974,0.976,0.977,0.979,0.981,0.982,0.983,0.985,0.986,0.987,0.988,0.99,0.991,0.992,0.993,0.993,0.994,0.995,0.996,0.996,0.997,0.997,0.998,0.998,0.999,0.999,0.999,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_L_SMILE=0\r\r\nPARAM_EYE_R_OPEN=1,0.999,0.996,0.992,0.986,0.979,0.971,0.961,0.952,0.942,0.931,0.921,0.911,0.901,0.892,0.883,0.875,0.868,0.862,0.857,0.853,0.851,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.85,0.79,0.63,0.43,0.22,0.06,0,0,0,0.06,0.17,0.32,0.48,0.62,0.74,0.82,0.85,0.855,0.859,0.864,0.868,0.872,0.876,0.88,0.884,0.888,0.892,0.896,0.9,0.903,0.907,0.91,0.914,0.917,0.92,0.923,0.926,0.93,0.932,0.935,0.938,0.941,0.944,0.946,0.949,0.951,0.954,0.956,0.958,0.96,0.962,0.965,0.967,0.969,0.97,0.972,0.974,0.976,0.977,0.979,0.98,0.982,0.983,0.984,0.986,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.995,0.996,0.997,0.997,0.998,0.998,0.999,0.999,0.999,0.999,1,1,1,1,1,0.92,0.74,0.5,0.26,0.08,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_SMILE=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.16,0.16,0.16,0.159,0.158,0.157,0.156,0.155,0.154,0.152,0.15,0.148,0.146,0.144,0.142,0.139,0.137,0.134,0.131,0.128,0.125,0.122,0.119,0.116,0.113,0.109,0.106,0.102,0.099,0.095,0.092,0.088,0.084,0.081,0.077,0.073,0.069,0.066,0.062,0.058,0.055,0.051,0.048,0.044,0.041,0.037,0.034,0.031,0.028,0.025,0.022,0.019,0.016,0.013,0.011,0.008,0.006,0.004,0.002,0,-0.002,-0.004,-0.005,-0.006,-0.007,-0.008,-0.009,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,-0.009,-0.009,-0.009,-0.009,-0.009,-0.009,-0.009,-0.009,-0.008,-0.008,-0.008,-0.008,-0.008,-0.008,-0.007,-0.007,-0.007,-0.007,-0.007,-0.006,-0.006,-0.006,-0.006,-0.006,-0.005,-0.005,-0.005,-0.005,-0.005,-0.004,-0.004,-0.004,-0.004,-0.004,-0.003,-0.003,-0.003,-0.003,-0.003,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.12,0.17,0.171,0.172,0.173,0.175,0.176,0.177,0.178,0.179,0.18,0.181,0.182,0.183,0.184,0.185,0.186,0.187,0.188,0.188,0.189,0.19,0.191,0.192,0.193,0.193,0.194,0.195,0.196,0.196,0.197,0.198,0.198,0.199,0.199,0.2,0.201,0.201,0.202,0.202,0.203,0.203,0.204,0.204,0.205,0.205,0.205,0.206,0.206,0.206,0.207,0.207,0.207,0.208,0.208,0.208,0.208,0.209,0.209,0.209,0.209,0.209,0.209,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.209,0.208,0.207,0.206,0.204,0.203,0.201,0.199,0.197,0.194,0.192,0.189,0.186,0.184,0.18,0.177,0.174,0.17,0.167,0.163,0.159,0.156,0.152,0.148,0.144,0.139,0.135,0.131,0.127,0.122,0.118,0.114,0.109,0.105,0.101,0.096,0.092,0.088,0.083,0.079,0.075,0.071,0.066,0.062,0.058,0.054,0.051,0.047,0.043,0.04,0.036,0.033,0.03,0.026,0.024,0.021,0.018,0.016,0.013,0.011,0.009,0.007,0.006,0.004,0.003,0.002,0.001,0,0,0\r\r\nPARAM_HI_SCALE=0\r\r\nPARAM_HI_02=0\r\r\nPARAM_EYEBALL_SIZE=0\r\r\nPARAM_TEAR=0\r\r\nPARAM_BROW_L_Y=0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72\r\r\nPARAM_BROW_R_Y=0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72,0.72\r\r\nPARAM_BROW_L_X=0\r\r\nPARAM_BROW_R_X=0\r\r\nPARAM_BROW_L_ANGLE=0\r\r\nPARAM_BROW_R_ANGLE=0\r\r\nPARAM_BROW_L_FORM=-0.28,-0.28,-0.279,-0.278,-0.277,-0.276,-0.274,-0.272,-0.27,-0.268,-0.265,-0.263,-0.26,-0.257,-0.254,-0.251,-0.248,-0.245,-0.242,-0.239,-0.236,-0.233,-0.23,-0.227,-0.224,-0.221,-0.218,-0.216,-0.213,-0.211,-0.209,-0.207,-0.205,-0.204,-0.202,-0.201,-0.201,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.201,-0.201,-0.201,-0.201,-0.201,-0.202,-0.202,-0.202,-0.203,-0.203,-0.203,-0.204,-0.204,-0.204,-0.205,-0.205,-0.206,-0.206,-0.207,-0.207,-0.208,-0.208,-0.209,-0.209,-0.21,-0.21,-0.211,-0.212,-0.212,-0.213,-0.214,-0.214,-0.215,-0.216,-0.216,-0.217,-0.218,-0.219,-0.219,-0.22,-0.221,-0.222,-0.222,-0.223,-0.224,-0.225,-0.225,-0.226,-0.227,-0.228,-0.229,-0.229,-0.23,-0.231,-0.232,-0.233,-0.234,-0.234,-0.235,-0.236,-0.237,-0.238,-0.239,-0.24,-0.24,-0.241,-0.242,-0.243,-0.244,-0.245,-0.246,-0.246,-0.247,-0.248,-0.249,-0.25,-0.251,-0.251,-0.252,-0.253,-0.254,-0.255,-0.255,-0.256,-0.257,-0.258,-0.258,-0.259,-0.26,-0.261,-0.261,-0.262,-0.263,-0.264,-0.264,-0.265,-0.266,-0.266,-0.267,-0.268,-0.268,-0.269,-0.27,-0.27,-0.271,-0.271,-0.272,-0.272,-0.273,-0.273,-0.274,-0.274,-0.275,-0.275,-0.276,-0.276,-0.276,-0.277,-0.277,-0.277,-0.278,-0.278,-0.278,-0.279,-0.279,-0.279,-0.279,-0.279,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28,-0.28\r\r\nPARAM_BROW_R_FORM=-0.28,-0.28,-0.279,-0.277,-0.275,-0.273,-0.27,-0.267,-0.263,-0.259,-0.255,-0.25,-0.245,-0.24,-0.235,-0.23,-0.224,-0.219,-0.213,-0.208,-0.202,-0.197,-0.192,-0.187,-0.181,-0.177,-0.172,-0.167,-0.163,-0.159,-0.155,-0.152,-0.149,-0.146,-0.144,-0.142,-0.141,-0.14,-0.14,-0.14,-0.14,-0.14,-0.14,-0.141,-0.141,-0.141,-0.141,-0.142,-0.142,-0.142,-0.143,-0.143,-0.144,-0.144,-0.145,-0.146,-0.146,-0.147,-0.148,-0.148,-0.149,-0.15,-0.151,-0.152,-0.153,-0.153,-0.154,-0.155,-0.156,-0.157,-0.158,-0.159,-0.16,-0.162,-0.163,-0.164,-0.165,-0.166,-0.167,-0.169,-0.17,-0.171,-0.172,-0.174,-0.175,-0.176,-0.178,-0.179,-0.18,-0.182,-0.183,-0.184,-0.186,-0.187,-0.189,-0.19,-0.192,-0.193,-0.194,-0.196,-0.197,-0.199,-0.2,-0.202,-0.203,-0.205,-0.206,-0.208,-0.209,-0.211,-0.212,-0.214,-0.215,-0.217,-0.218,-0.22,-0.221,-0.223,-0.224,-0.226,-0.227,-0.228,-0.23,-0.231,-0.233,-0.234,-0.236,-0.237,-0.238,-0.24,-0.241,-0.242,-0.244,-0.245,-0.246,-0.248,-0.249,-0.25,-0.251,-0.253,-0.254,-0.255,-0.256,-0.257,-0.258,-0.26,-0.261,-0.262,-0.263,-0.264,-0.265,-0.266,-0.267,-0.267,-0.268,-0.269,-0.27,-0.271,-0.272,-0.272,-0.273,-0.274,-0.274,-0.275,-0.276,-0.276,-0.277,-0.277,-0.278,-0.278,-0.278,-0.279,-0.279,-0.279,-0.279,-0.28,-0.28,-0.28,-0.28,-0.28\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_CHEEK=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.006,-0.023,-0.05,-0.09,-0.14,-0.19,-0.26,-0.33,-0.41,-0.49,-0.58,-0.68,-0.79,-0.89,-1,-1.12,-1.24,-1.36,-1.48,-1.6,-1.73,-1.86,-1.99,-2.11,-2.24,-2.36,-2.49,-2.61,-2.73,-2.85,-2.96,-3.07,-3.18,-3.28,-3.37,-3.46,-3.55,-3.63,-3.7,-3.77,-3.83,-3.88,-3.92,-3.96,-3.98,-3.995,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3.997,-3.988,-3.973,-3.952,-3.93,-3.89,-3.86,-3.82,-3.77,-3.72,-3.66,-3.6,-3.54,-3.47,-3.39,-3.32,-3.24,-3.15,-3.07,-2.98,-2.89,-2.79,-2.69,-2.59,-2.49,-2.39,-2.28,-2.17,-2.06,-1.95,-1.84,-1.72,-1.61,-1.49,-1.38,-1.26,-1.15,-1.03,-0.91,-0.8,-0.68,-0.57,-0.45,-0.34,-0.23,-0.12,-0.01,0.1,0.21,0.31,0.42,0.52,0.61,0.71,0.8,0.89,0.98,1.06,1.14,1.22,1.29,1.36,1.42,1.48,1.54,1.59,1.64,1.68,1.72,1.75,1.78,1.8,1.811,1.82,1.824,1.82,1.811,1.797,1.777,1.75,1.72,1.69,1.65,1.61,1.56,1.51,1.46,1.41,1.35,1.29,1.23,1.17,1.11,1.04,0.98,0.91,0.85,0.78,0.72,0.65,0.59,0.53,0.47,0.42,0.36,0.31,0.26,0.22,0.17,0.13,0.1,0.07,0.05,0.026,0.012,0.003,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.003,-0.012,-0.027,-0.047,-0.07,-0.1,-0.14,-0.18,-0.22,-0.27,-0.32,-0.37,-0.43,-0.49,-0.56,-0.63,-0.69,-0.77,-0.84,-0.92,-0.99,-1.07,-1.15,-1.23,-1.32,-1.4,-1.48,-1.57,-1.65,-1.74,-1.82,-1.9,-1.99,-2.07,-2.15,-2.23,-2.31,-2.39,-2.47,-2.54,-2.61,-2.68,-2.75,-2.82,-2.88,-2.94,-3,-3.06,-3.1,-3.14,-3.17,-3.19,-3.208,-3.222,-3.233,-3.243,-3.253,-3.263,-3.275,-3.289,-3.306,-3.33,-3.35,-3.39,-3.45,-3.51,-3.58,-3.65,-3.71,-3.76,-3.79,-3.806,-3.8,-3.782,-3.75,-3.71,-3.67,-3.61,-3.54,-3.47,-3.39,-3.31,-3.22,-3.13,-3.03,-2.93,-2.83,-2.72,-2.62,-2.51,-2.4,-2.29,-2.19,-2.09,-1.98,-1.89,-1.79,-1.7,-1.61,-1.53,-1.45,-1.38,-1.31,-1.25,-1.2,-1.16,-1.12,-1.1,-1.084,-1.078,-1.11,-1.21,-1.37,-1.57,-1.81,-2.09,-2.39,-2.71,-3.05,-3.39,-3.74,-4.09,-4.43,-4.76,-5.07,-5.37,-5.64,-5.88,-6.09,-6.25,-6.38,-6.46,-6.49,-6.478,-6.45,-6.4,-6.34,-6.26,-6.17,-6.07,-5.95,-5.81,-5.67,-5.52,-5.35,-5.18,-5,-4.81,-4.62,-4.42,-4.22,-4.01,-3.8,-3.59,-3.38,-3.16,-2.95,-2.74,-2.53,-2.33,-2.12,-1.93,-1.74,-1.55,-1.37,-1.2,-1.04,-0.89,-0.74,-0.61,-0.49,-0.38,-0.28,-0.2,-0.13,-0.07,-0.03,-0.01,0\r\r\nPARAM_BODY_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.01,-0.04,-0.08,-0.14,-0.21,-0.3,-0.39,-0.49,-0.59,-0.7,-0.81,-0.93,-1.04,-1.16,-1.27,-1.38,-1.48,-1.57,-1.67,-1.75,-1.82,-1.88,-1.93,-1.97,-1.99,-2,-2,-1.998,-1.996,-1.993,-1.989,-1.985,-1.979,-1.973,-1.966,-1.959,-1.95,-1.941,-1.931,-1.921,-1.91,-1.898,-1.886,-1.873,-1.859,-1.845,-1.83,-1.815,-1.799,-1.782,-1.765,-1.748,-1.73,-1.711,-1.692,-1.673,-1.653,-1.633,-1.61,-1.59,-1.57,-1.55,-1.53,-1.5,-1.48,-1.46,-1.44,-1.41,-1.39,-1.36,-1.34,-1.32,-1.29,-1.27,-1.24,-1.22,-1.19,-1.17,-1.14,-1.12,-1.09,-1.06,-1.04,-1.01,-0.99,-0.96,-0.94,-0.91,-0.88,-0.86,-0.83,-0.81,-0.78,-0.76,-0.73,-0.71,-0.68,-0.66,-0.64,-0.61,-0.59,-0.56,-0.54,-0.52,-0.5,-0.47,-0.45,-0.43,-0.41,-0.39,-0.37,-0.347,-0.327,-0.308,-0.289,-0.27,-0.252,-0.235,-0.218,-0.201,-0.185,-0.17,-0.155,-0.141,-0.127,-0.114,-0.102,-0.09,-0.079,-0.069,-0.059,-0.05,-0.041,-0.034,-0.027,-0.021,-0.015,-0.011,-0.007,-0.004,-0.002,0,0\r\r\nPARAM_BREATH=0\r\r\nPARAM_SHOULDER=0\r\r\nPARAM_BUST=0\r\r\nPARAM_HAIR_FRONT=0\r\r\nPARAM_HAIR_SIDE=0\r\r\nPARAM_HAIR_BACK=0\r\r\nPARAM_HAIR_FLUFFY=0\r\r\nPARAM_HAIR_02=0\r\r\nPARAM_SKIRT_01=0\r\r\nPARAM_SKIRT_02=0\r\r\nPARAM_SKIRT_03=0\r\r\nPARAM_BACK=0\r\r\nPARAM_SKIRT_FLUFFY=0\r\r\nPARAM_HAIR_RIBBON=0\r\r\nPARAM_BUST_RIBBON=0\r\r\nPARAM_P01_ARM_R_1=0,-0.005,-0.019,-0.04,-0.07,-0.11,-0.15,-0.2,-0.26,-0.32,-0.38,-0.45,-0.51,-0.58,-0.65,-0.72,-0.79,-0.86,-0.93,-1,-1.08,-1.15,-1.22,-1.28,-1.34,-1.4,-1.45,-1.5,-1.55,-1.6,-1.64,-1.68,-1.71,-1.75,-1.78,-1.81,-1.83,-1.86,-1.88,-1.897,-1.915,-1.931,-1.945,-1.957,-1.968,-1.976,-1.984,-1.99,-1.994,-1.998,-1.999,-2,-2,-1.998,-1.997,-1.994,-1.991,-1.987,-1.982,-1.976,-1.97,-1.963,-1.956,-1.947,-1.938,-1.929,-1.918,-1.908,-1.896,-1.884,-1.871,-1.858,-1.844,-1.829,-1.814,-1.798,-1.782,-1.765,-1.747,-1.729,-1.711,-1.691,-1.672,-1.652,-1.63,-1.61,-1.59,-1.57,-1.54,-1.52,-1.5,-1.47,-1.45,-1.42,-1.4,-1.37,-1.35,-1.32,-1.29,-1.26,-1.24,-1.21,-1.18,-1.15,-1.12,-1.09,-1.06,-1.03,-1,-0.97,-0.94,-0.91,-0.88,-0.85,-0.82,-0.79,-0.76,-0.74,-0.71,-0.69,-0.66,-0.64,-0.61,-0.59,-0.57,-0.54,-0.52,-0.5,-0.48,-0.461,-0.441,-0.422,-0.403,-0.384,-0.367,-0.349,-0.332,-0.316,-0.3,-0.285,-0.27,-0.255,-0.241,-0.228,-0.214,-0.202,-0.189,-0.178,-0.166,-0.155,-0.144,-0.134,-0.124,-0.115,-0.106,-0.097,-0.089,-0.081,-0.074,-0.067,-0.06,-0.054,-0.048,-0.042,-0.037,-0.032,-0.027,-0.023,-0.02,-0.016,-0.013,-0.01,-0.008,-0.006,-0.004,-0.003,-0.001,-0.001,0,0\r\r\nPARAM_P01_ARM_R_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.998,0.994,0.99,0.985,0.979,0.971,0.963,0.953,0.943,0.932,0.92,0.907,0.893,0.879,0.864,0.848,0.831,0.815,0.797,0.779,0.76,0.741,0.722,0.702,0.682,0.66,0.641,0.62,0.6,0.58,0.56,0.54,0.51,0.49,0.47,0.45,0.43,0.41,0.39,0.36,0.344,0.32,0.304,0.284,0.265,0.246,0.228,0.21,0.192,0.175,0.159,0.143,0.128,0.114,0.1,0.087,0.075,0.064,0.053,0.043,0.035,0.027,0.02,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_P01_ARM_R_3=0,0.03,0.1,0.21,0.36,0.53,0.72,0.92,1.14,1.36,1.58,1.8,2.01,2.22,2.4,2.57,2.72,2.83,2.92,2.98,3,2.998,2.991,2.98,2.966,2.949,2.93,2.9,2.88,2.85,2.82,2.79,2.75,2.72,2.68,2.64,2.6,2.56,2.52,2.49,2.45,2.41,2.37,2.33,2.3,2.26,2.23,2.19,2.16,2.14,2.11,2.09,2.06,2.045,2.029,2.017,2.008,2.002,2,2.001,2.004,2.01,2.018,2.027,2.038,2.051,2.066,2.082,2.1,2.12,2.14,2.16,2.18,2.21,2.23,2.26,2.29,2.31,2.34,2.37,2.4,2.43,2.46,2.49,2.51,2.54,2.57,2.6,2.63,2.66,2.69,2.71,2.74,2.77,2.79,2.82,2.84,2.86,2.88,2.9,2.918,2.934,2.949,2.962,2.973,2.982,2.99,2.996,2.999,3,2.998,2.993,2.983,2.971,2.955,2.936,2.91,2.89,2.86,2.83,2.8,2.76,2.72,2.68,2.64,2.59,2.54,2.49,2.44,2.39,2.34,2.28,2.22,2.17,2.11,2.05,1.99,1.92,1.86,1.8,1.73,1.67,1.61,1.54,1.48,1.41,1.35,1.28,1.22,1.16,1.09,1.03,0.97,0.91,0.85,0.8,0.74,0.68,0.63,0.58,0.53,0.48,0.43,0.38,0.34,0.3,0.26,0.22,0.19,0.16,0.13,0.1,0.08,0.06,0.042,0.027,0.015,0.007,0.002,0\r\r\nPARAM_P01_ARM_L_1=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-0.99,-0.96,-0.92,-0.86,-0.78,-0.7,-0.6,-0.49,-0.38,-0.26,-0.13,0,0.13,0.27,0.41,0.55,0.69,0.83,0.96,1.09,1.22,1.34,1.45,1.56,1.65,1.74,1.81,1.88,1.93,1.97,1.99,2,1.997,1.989,1.976,1.958,1.93,1.91,1.88,1.84,1.8,1.76,1.71,1.66,1.6,1.55,1.49,1.42,1.36,1.29,1.22,1.15,1.08,1,0.93,0.85,0.78,0.7,0.62,0.54,0.46,0.38,0.3,0.22,0.15,0.07,0,-0.08,-0.15,-0.22,-0.29,-0.36,-0.42,-0.49,-0.55,-0.6,-0.66,-0.71,-0.76,-0.8,-0.84,-0.88,-0.91,-0.93,-0.96,-0.976,-0.989,-0.997,-1,-0.999,-0.998,-0.994,-0.99,-0.985,-0.979,-0.971,-0.963,-0.954,-0.944,-0.933,-0.921,-0.908,-0.895,-0.881,-0.866,-0.85,-0.834,-0.818,-0.801,-0.783,-0.765,-0.746,-0.727,-0.708,-0.688,-0.668,-0.648,-0.63,-0.607,-0.59,-0.57,-0.54,-0.52,-0.5,-0.48,-0.46,-0.44,-0.419,-0.4,-0.38,-0.357,-0.337,-0.317,-0.298,-0.279,-0.26,-0.241,-0.223,-0.206,-0.189,-0.172,-0.157,-0.141,-0.126,-0.112,-0.099,-0.086,-0.074,-0.063,-0.053,-0.043,-0.034,-0.026,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0\r\r\nPARAM_P01_ARM_L_2=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.998,0.994,0.99,0.985,0.979,0.971,0.963,0.953,0.943,0.932,0.92,0.907,0.893,0.879,0.864,0.848,0.831,0.815,0.797,0.779,0.76,0.741,0.722,0.702,0.682,0.66,0.641,0.62,0.6,0.58,0.56,0.54,0.51,0.49,0.47,0.45,0.43,0.41,0.39,0.36,0.344,0.32,0.304,0.284,0.265,0.246,0.228,0.21,0.192,0.175,0.159,0.143,0.128,0.114,0.1,0.087,0.075,0.064,0.053,0.043,0.035,0.027,0.02,0.014,0.009,0.005,0.002,0.001,0\r\r\nPARAM_P01_ARM_L_3=0,0.017,0.07,0.14,0.24,0.35,0.48,0.62,0.76,0.91,1.06,1.2,1.34,1.48,1.6,1.71,1.81,1.89,1.95,1.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1.999,1.995,1.989,1.981,1.97,1.957,1.942,1.926,1.907,1.886,1.86,1.84,1.81,1.79,1.76,1.73,1.7,1.66,1.63,1.59,1.56,1.52,1.48,1.44,1.4,1.36,1.32,1.28,1.24,1.2,1.16,1.11,1.07,1.03,0.98,0.94,0.9,0.86,0.81,0.77,0.73,0.69,0.65,0.61,0.57,0.53,0.49,0.46,0.42,0.38,0.35,0.32,0.29,0.26,0.23,0.2,0.17,0.15,0.13,0.11,0.087,0.069,0.053,0.04,0.028,0.018,0.01,0.005,0.001,0\r\r\nPARAM_P02_ARM_L_1=0\r\r\nPARAM_P02_ARM_L_2=0\r\r\nPARAM_P02_ARM_L_3=0\r\r\nPARAM_P05_ARM_R_1=0\r\r\nPARAM_P05_ARM_R_2=0\r\r\nPARAM_P05_ARM_R_3=0\r\r\nPARAM_P05_ARM_L_1=0\r\r\nPARAM_P05_ARM_L_2=0\r\r\nPARAM_P05_ARM_L_3=0\r\r\nPARAM_P06_ARM_R_1=0\r\r\nPARAM_P06_ARM_R_2=0\r\r\nPARAM_P06_ARM_R_3=0\r\r\nPARAM_P06_ARM_L_1=0\r\r\nPARAM_P06_ARM_L_2=0\r\r\nPARAM_P06_ARM_L_3=0\r\r\nVISIBLE:PARTS_ARM_P01_R=1\r\r\nVISIBLE:PARTS_ARM_P01_L=1\r\r\nVISIBLE:PARTS_ARM_P02_L=0\r\r\nVISIBLE:PARTS_ARM_P05_R=0\r\r\nVISIBLE:PARTS_ARM_P05_L=0\r\r\nVISIBLE:PARTS_ARM_P06_R=0\r\r\nVISIBLE:PARTS_ARM_P06_L=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/remu.physics.json",
    "content": "{\n\t\"type\":\"Live2D Physics\",\n\t\"physics_hair\":[\n\t\t{\n\t\t\t\"label\":\"hair_front\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.15,\n\t\t\t\t\"regist\":0.5,\n\t\t\t\t\"mass\":0.1\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_FRONT\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_side\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.65,\n\t\t\t\t\"mass\":0.22\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_SIDE\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"hair_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.3,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.23\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"bust\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.14,\n\t\t\t\t\"regist\":0.95,\n\t\t\t\t\"mass\":0.15\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.011,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Y\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":1,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Y\",\n\t\t\t\t\t\"ptype\":\"y\",\n\t\t\t\t\t\"scale\":0.02,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BUST\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":0.9\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"skirt\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.25,\n\t\t\t\t\"regist\":0.7,\n\t\t\t\t\"mass\":0.15\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.015,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2.4,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Y\",\n\t\t\t\t\t\"ptype\":\"y\",\n\t\t\t\t\t\"scale\":0.01,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_SKIRT_01\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_SKIRT_02\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":0.4\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_SKIRT_03\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":0.2\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"RIBBON02\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.15\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BUST_RIBBON\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"skirt_back\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.15\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BACK\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"label\":\"HAIR_RIBBON\",\n\t\t\t\"setup\":{\n\t\t\t\t\"length\":0.2,\n\t\t\t\t\"regist\":0.6,\n\t\t\t\t\"mass\":0.15\n\t\t\t},\n\t\t\t\"src\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.005,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_X\",\n\t\t\t\t\t\"ptype\":\"x\",\n\t\t\t\t\t\"scale\":0.012,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.8,\n\t\t\t\t\t\"weight\":0.5\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_BODY_ANGLE_Z\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":2,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"targets\":[\n\t\t\t\t{\n\t\t\t\t\t\"id\":\"PARAM_HAIR_RIBBON\",\n\t\t\t\t\t\"ptype\":\"angle\",\n\t\t\t\t\t\"scale\":0.022,\n\t\t\t\t\t\"weight\":1\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/rem/remu.pose.json",
    "content": "{\n\t\"type\":\"Live2D Pose\",\n\t\"fade_in\":200,\n\t\"parts_visible\":[\n\t\t{\n\t\t\t\"group\":[\n\t\t\t\t{\"id\":\"PARTS_ARM_P01_L\"},\n\t\t\t\t{\"id\":\"PARTS_ARM_P02_L\"},\n\t\t\t\t{\"id\":\"PARTS_ARM_P05_L\"},\n\t\t\t\t{\"id\":\"PARTS_ARM_P06_L\"}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"group\":[\n\t\t\t\t{\"id\":\"PARTS_ARM_P01_R\"},\n\t\t\t\t{\"id\":\"PARTS_ARM_P05_R\"},\n\t\t\t\t{\"id\":\"PARTS_ARM_P06_R\"}\n\t\t\t]\n\t\t}\n\t]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/index.json",
    "content": "{\n    \"version\": \"Sample 1.0.0\",\n    \"model\": \"moc/tororo.moc\",\n    \"textures\": [\"texture_00.png\"],\n    \"pose\": \"tororo.pose.json\",\n    \"name\": \"tororo\",\n    \"layout\":{\n        \"center_x\": 0,\n        \"center_y\": -0.1,\n        \"width\": 1.9\n    },\n    \"hit_areas_custom\":{\n        \"head_x\":[-0.35, 0.6],\n        \"head_y\":[0.19, -0.2],\n        \"body_x\":[-0.3, -0.25],\n        \"body_y\":[0.3, -0.9]\n    },\n    \"motions\":\n    {\n        \"idle\": [\n        {\n            \"file\": \"motions/00_idle.mtn\"\n        }],\n        \"flick_head\": [\n        {\n            \"file\": \"motions/01.mtn\"\n        },\n        {\n            \"file\": \"motions/02.mtn\"\n        },\n        {\n            \"file\": \"motions/03.mtn\"\n        },\n        {\n            \"file\": \"motions/04.mtn\"\n        },\n        {\n            \"file\": \"motions/05.mtn\"\n        },\n        {\n            \"file\": \"motions/06.mtn\"\n        },\n        {\n            \"file\": \"motions/07.mtn\"\n        },\n        {\n            \"file\": \"motions/08.mtn\"\n        }]\n    }\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/00_idle.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.003,-0.01,-0.022,-0.04,-0.06,-0.09,-0.12,-0.15,-0.19,-0.23,-0.28,-0.33,-0.38,-0.44,-0.5,-0.56,-0.62,-0.69,-0.76,-0.83,-0.91,-0.98,-1.06,-1.14,-1.22,-1.3,-1.39,-1.47,-1.56,-1.65,-1.73,-1.82,-1.91,-2,-2.09,-2.19,-2.28,-2.37,-2.47,-2.56,-2.65,-2.74,-2.83,-2.91,-3,-3.09,-3.17,-3.26,-3.34,-3.43,-3.51,-3.6,-3.68,-3.76,-3.84,-3.92,-4.01,-4.09,-4.17,-4.25,-4.33,-4.41,-4.49,-4.57,-4.65,-4.72,-4.8,-4.88,-4.96,-5.04,-5.12,-5.2,-5.28,-5.36,-5.44,-5.51,-5.59,-5.67,-5.75,-5.83,-5.91,-5.99,-6.07,-6.15,-6.23,-6.32,-6.4,-6.48,-6.56,-6.65,-6.73,-6.81,-6.9,-6.98,-7.07,-7.15,-7.24,-7.33,-7.42,-7.5,-7.59,-7.68,-7.77,-7.87,-7.96,-8.05,-8.15,-8.24,-8.34,-8.43,-8.53,-8.63,-8.73,-8.83,-8.93,-9.03,-9.14,-9.24,-9.34,-9.45,-9.56,-9.67,-9.78,-9.89,-10,-10.12,-10.26,-10.4,-10.55,-10.71,-10.87,-11.04,-11.22,-11.4,-11.6,-11.79,-11.98,-12.19,-12.39,-12.59,-12.8,-13.01,-13.21,-13.42,-13.63,-13.83,-14.04,-14.24,-14.44,-14.63,-14.82,-15,-15.19,-15.36,-15.53,-15.69,-15.85,-15.99,-16.13,-16.26,-16.38,-16.5,-16.6,-16.69,-16.77,-16.84,-16.9,-16.94,-16.97,-16.993,-17,-16.97,-16.89,-16.76,-16.58,-16.35,-16.08,-15.77,-15.42,-15.04,-14.61,-14.17,-13.69,-13.19,-12.65,-12.11,-11.54,-10.96,-10.36,-9.76,-9.15,-8.53,-7.9,-7.27,-6.66,-6.04,-5.42,-4.82,-4.23,-3.64,-3.07,-2.52,-1.99,-1.49,-1,-0.54,-0.11,0.3,0.67,1.01,1.31,1.58,1.81,2,2.18,2.35,2.51,2.65,2.79,2.92,3.03,3.14,3.24,3.34,3.42,3.5,3.57,3.63,3.69,3.74,3.79,3.83,3.87,3.9,3.93,3.95,3.971,3.987,4,4.01,4.017,4.022,4.025,4.027,4.026,4.025,4.022,4.019,4.016,4.012,4.008,4.005,4.002,4.001,4,3.991,3.96,3.92,3.86,3.79,3.7,3.61,3.5,3.38,3.25,3.11,2.96,2.81,2.66,2.5,2.33,2.17,2,1.83,1.67,1.5,1.34,1.19,1.04,0.89,0.75,0.63,0.5,0.39,0.3,0.21,0.14,0.08,0.04,0.01,0\r\r\nPARAM_ANGLE_Y=0,-0.017,-0.07,-0.14,-0.25,-0.39,-0.55,-0.73,-0.93,-1.15,-1.4,-1.65,-1.92,-2.21,-2.5,-2.8,-3.11,-3.42,-3.74,-4.06,-4.38,-4.7,-5.01,-5.32,-5.62,-5.92,-6.21,-6.48,-6.74,-6.99,-7.23,-7.45,-7.65,-7.84,-8,-8.16,-8.32,-8.48,-8.64,-8.79,-8.94,-9.09,-9.23,-9.37,-9.51,-9.65,-9.78,-9.91,-10.04,-10.17,-10.29,-10.41,-10.53,-10.64,-10.76,-10.87,-10.98,-11.08,-11.18,-11.29,-11.38,-11.48,-11.57,-11.67,-11.76,-11.84,-11.93,-12.01,-12.09,-12.17,-12.25,-12.32,-12.4,-12.47,-12.54,-12.6,-12.67,-12.73,-12.79,-12.85,-12.91,-12.97,-13.02,-13.07,-13.12,-13.17,-13.22,-13.26,-13.31,-13.35,-13.39,-13.43,-13.47,-13.5,-13.54,-13.57,-13.6,-13.63,-13.66,-13.69,-13.71,-13.74,-13.76,-13.78,-13.8,-13.824,-13.843,-13.86,-13.877,-13.892,-13.906,-13.919,-13.93,-13.941,-13.951,-13.96,-13.968,-13.975,-13.981,-13.986,-13.99,-13.994,-13.997,-13.999,-14,-14,-13.994,-13.976,-13.95,-13.9,-13.85,-13.78,-13.7,-13.61,-13.5,-13.38,-13.25,-13.1,-12.94,-12.77,-12.59,-12.39,-12.18,-11.95,-11.71,-11.46,-11.19,-10.91,-10.61,-10.31,-9.99,-9.65,-9.3,-8.93,-8.56,-8.17,-7.77,-7.34,-6.91,-6.46,-6,-5.52,-5.03,-4.53,-4.01,-3.48,-2.94,-2.37,-1.8,-1.21,-0.62,0,0.66,1.31,1.93,2.56,3.17,3.75,4.33,4.9,5.45,5.99,6.52,7.03,7.52,8,8.47,8.92,9.36,9.77,10.18,10.57,10.94,11.3,11.64,11.96,12.27,12.57,12.84,13.1,13.35,13.57,13.78,13.98,14.15,14.31,14.46,14.59,14.7,14.79,14.86,14.92,14.97,14.99,15,14.98,14.9,14.79,14.64,14.44,14.21,13.95,13.66,13.34,12.99,12.62,12.23,11.82,11.4,10.96,10.51,10.04,9.57,9.09,8.61,8.13,7.65,7.17,6.69,6.22,5.76,5.3,4.86,4.43,4.01,3.62,3.24,2.88,2.55,2.24,1.96,1.7,1.48,1.28,1.12,1,0.9,0.8,0.71,0.62,0.55,0.48,0.41,0.35,0.3,0.25,0.2,0.17,0.13,0.1,0.07,0.05,0.031,0.015,0.002,-0.009,-0.017,-0.023,-0.026,-0.028,-0.029,-0.028,-0.026,-0.023,-0.019,-0.016,-0.012,-0.008,-0.005,-0.002,-0.001,0\r\r\nPARAM_ANGLE_Z=0,-0.02,-0.09,-0.21,-0.36,-0.56,-0.78,-1.04,-1.33,-1.64,-1.97,-2.32,-2.69,-3.07,-3.45,-3.85,-4.25,-4.65,-5.05,-5.44,-5.83,-6.2,-6.56,-6.91,-7.24,-7.54,-7.83,-8.09,-8.32,-8.52,-8.68,-8.82,-8.92,-8.98,-9,-9,-8.999,-8.998,-8.997,-8.995,-8.993,-8.991,-8.988,-8.984,-8.981,-8.976,-8.972,-8.967,-8.961,-8.955,-8.949,-8.942,-8.935,-8.927,-8.919,-8.91,-8.901,-8.891,-8.88,-8.87,-8.858,-8.846,-8.834,-8.821,-8.808,-8.794,-8.779,-8.764,-8.748,-8.732,-8.715,-8.698,-8.68,-8.661,-8.642,-8.622,-8.6,-8.58,-8.56,-8.54,-8.51,-8.49,-8.47,-8.44,-8.42,-8.39,-8.36,-8.34,-8.31,-8.28,-8.25,-8.22,-8.19,-8.16,-8.12,-8.09,-8.06,-8.02,-7.99,-7.95,-7.91,-7.88,-7.84,-7.8,-7.76,-7.72,-7.68,-7.63,-7.59,-7.55,-7.5,-7.46,-7.41,-7.36,-7.31,-7.27,-7.22,-7.17,-7.11,-7.06,-7.01,-6.95,-6.9,-6.84,-6.79,-6.73,-6.67,-6.61,-6.55,-6.49,-6.43,-6.36,-6.3,-6.24,-6.17,-6.1,-6.03,-5.97,-5.9,-5.82,-5.75,-5.68,-5.61,-5.53,-5.45,-5.38,-5.3,-5.22,-5.14,-5.06,-4.98,-4.9,-4.81,-4.73,-4.64,-4.55,-4.46,-4.37,-4.28,-4.19,-4.1,-4,-3.91,-3.81,-3.72,-3.62,-3.52,-3.42,-3.31,-3.21,-3.1,-3,-2.88,-2.75,-2.6,-2.44,-2.26,-2.08,-1.88,-1.67,-1.45,-1.22,-0.99,-0.75,-0.51,-0.25,0,0.26,0.51,0.77,1.03,1.29,1.54,1.8,2.05,2.29,2.53,2.76,2.99,3.2,3.41,3.61,3.8,3.98,4.15,4.3,4.44,4.56,4.68,4.77,4.85,4.92,4.96,4.99,5,4.997,4.99,4.977,4.959,4.94,4.91,4.88,4.84,4.8,4.76,4.71,4.66,4.61,4.55,4.49,4.42,4.36,4.29,4.21,4.14,4.06,3.98,3.9,3.82,3.73,3.64,3.55,3.46,3.37,3.28,3.18,3.09,3,2.9,2.8,2.71,2.61,2.51,2.42,2.32,2.22,2.13,2.03,1.93,1.84,1.75,1.65,1.56,1.47,1.39,1.3,1.22,1.13,1.05,0.97,0.89,0.82,0.75,0.68,0.61,0.55,0.48,0.43,0.37,0.32,0.27,0.23,0.18,0.15,0.11,0.08,0.06,0.04,0.022,0.01,0.002,0\r\r\nPARAM_EYE_L_OPEN=1,0.987,0.974,0.961,0.947,0.934,0.921,0.908,0.895,0.882,0.868,0.855,0.842,0.829,0.816,0.803,0.789,0.776,0.763,0.75,0.735,0.721,0.706,0.691,0.676,0.662,0.647,0.632,0.618,0.603,0.588,0.574,0.559,0.544,0.529,0.515,0.5,0.498,0.497,0.495,0.493,0.492,0.49,0.488,0.487,0.485,0.483,0.482,0.48,0.478,0.477,0.475,0.473,0.472,0.47,0.468,0.467,0.465,0.463,0.462,0.46,0.466,0.473,0.479,0.485,0.491,0.497,0.504,0.51,0.516,0.523,0.529,0.535,0.541,0.548,0.554,0.56,0.566,0.573,0.579,0.585,0.591,0.597,0.604,0.61,0.607,0.603,0.6,0.597,0.593,0.59,0.587,0.583,0.58,0.577,0.573,0.57,0.567,0.563,0.56,0.557,0.553,0.55,0.547,0.543,0.54,0.537,0.533,0.53,0.527,0.523,0.52,0.517,0.513,0.51,0.507,0.503,0.5,0.497,0.493,0.49,0.487,0.483,0.48,0.477,0.473,0.47,0.467,0.463,0.46,0.38,0.31,0.23,0.15,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.21,0.32,0.43,0.53,0.64,0.65,0.66,0.67,0.68,0.69,0.7,0.71,0.72,0.73,0.74,0.75,0.76,0.77,0.78,0.79,0.8,0.81,0.82,0.83,0.84,0.85,0.86,0.87,0.88,0.89,0.9,0.91,0.92,0.93,0.94,0.95,0.96,0.97,0.98,0.99,1\r\r\nPARAM_EYE_R_OPEN=1,0.999,0.995,0.99,0.983,0.973,0.963,0.95,0.937,0.922,0.907,0.891,0.874,0.856,0.839,0.821,0.803,0.785,0.767,0.75,0.73,0.71,0.687,0.667,0.649,0.63,0.613,0.597,0.581,0.567,0.554,0.541,0.53,0.521,0.512,0.505,0.5,0.495,0.491,0.487,0.483,0.48,0.477,0.475,0.472,0.47,0.468,0.467,0.465,0.464,0.463,0.462,0.462,0.461,0.461,0.46,0.46,0.46,0.46,0.46,0.46,0.461,0.463,0.467,0.472,0.478,0.485,0.493,0.501,0.511,0.52,0.53,0.54,0.55,0.56,0.569,0.579,0.587,0.595,0.602,0.608,0.613,0.617,0.619,0.62,0.62,0.62,0.619,0.619,0.618,0.618,0.617,0.616,0.615,0.614,0.612,0.611,0.609,0.607,0.605,0.603,0.601,0.598,0.596,0.593,0.59,0.587,0.583,0.58,0.576,0.572,0.568,0.564,0.56,0.555,0.55,0.545,0.54,0.534,0.529,0.523,0.517,0.51,0.504,0.497,0.49,0.483,0.476,0.468,0.46,0.42,0.33,0.22,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.15,0.3,0.45,0.57,0.63,0.65,0.68,0.7,0.72,0.737,0.756,0.774,0.791,0.807,0.823,0.838,0.852,0.865,0.878,0.89,0.901,0.911,0.921,0.93,0.939,0.947,0.954,0.961,0.967,0.973,0.978,0.982,0.986,0.989,0.992,0.995,0.997,0.998,0.999,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=1,1,1,1,1,1,1,1,1,1,1.001,1.001,1.001,1.001,1.001,1.001,1.002,1.002,1.002,1.002,1.002,1.003,1.003,1.003,1.003,1.004,1.004,1.004,1.004,1.005,1.005,1.005,1.006,1.006,1.006,1.007,1.007,1.007,1.008,1.008,1.009,1.009,1.009,1.01,1.01,1.011,1.011,1.011,1.012,1.012,1.013,1.013,1.014,1.014,1.015,1.015,1.016,1.016,1.017,1.017,1.017,1.018,1.018,1.019,1.019,1.02,1.021,1.021,1.022,1.022,1.023,1.023,1.024,1.024,1.025,1.025,1.026,1.026,1.027,1.027,1.028,1.028,1.029,1.029,1.03,1.031,1.031,1.032,1.032,1.033,1.033,1.034,1.034,1.035,1.035,1.036,1.036,1.037,1.037,1.038,1.038,1.039,1.039,1.04,1.041,1.041,1.042,1.042,1.043,1.043,1.043,1.044,1.044,1.045,1.045,1.046,1.046,1.047,1.047,1.048,1.048,1.049,1.049,1.049,1.05,1.05,1.051,1.051,1.051,1.052,1.052,1.053,1.053,1.053,1.054,1.054,1.054,1.055,1.055,1.055,1.056,1.056,1.056,1.056,1.057,1.057,1.057,1.057,1.058,1.058,1.058,1.058,1.058,1.059,1.059,1.059,1.059,1.059,1.059,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,1.06,0.98,0.79,0.56,0.34,0.15,0.04,0,0.002,0.017,0.05,0.11,0.2,0.31,0.45,0.71,0.95,1.18,1.38,1.54,1.67,1.75,1.78,1.56,1.22,0.89,0.66,0.57,0.586,0.63,0.68,0.74,0.81,0.87,0.93,0.98,1.02,1.05,1.06,1.06,1.06,1.06,1.06,1.059,1.059,1.059,1.058,1.058,1.058,1.057,1.057,1.056,1.056,1.055,1.054,1.054,1.053,1.052,1.051,1.051,1.05,1.049,1.048,1.047,1.046,1.045,1.044,1.044,1.043,1.042,1.041,1.04,1.039,1.038,1.036,1.035,1.034,1.033,1.032,1.031,1.03,1.029,1.028,1.027,1.026,1.025,1.024,1.023,1.022,1.021,1.02,1.019,1.018,1.017,1.016,1.015,1.014,1.013,1.012,1.011,1.011,1.01,1.009,1.008,1.007,1.007,1.006,1.005,1.005,1.004,1.004,1.003,1.003,1.002,1.002,1.001,1.001,1.001,1.001,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.09,0.16,0.23,0.29,0.33,0.34,0.339,0.335,0.331,0.326,0.323,0.321,0.32,0.34,0.38,0.44,0.5,0.55,0.59,0.62,0.63,0.622,0.6,0.56,0.52,0.47,0.41,0.35,0.29,0.23,0.18,0.13,0.08,0.05,0.02,0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018,0.07,0.14,0.22,0.32,0.42,0.51,0.63,0.73,0.79,0.83,0.85,0.867,0.87,0.87,0.866,0.858,0.843,0.82,0.79,0.75,0.7,0.63,0.56,0.5,0.43,0.37,0.31,0.25,0.2,0.16,0.12,0.08,0.05,0.03,0.013,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,0,0.001,0.003,0.005,0.008,0.011,0.015,0.02,0.025,0.03,0.036,0.043,0.05,0.057,0.065,0.073,0.082,0.091,0.101,0.111,0.121,0.132,0.143,0.154,0.166,0.178,0.19,0.203,0.215,0.228,0.242,0.255,0.269,0.283,0.297,0.311,0.325,0.34,0.355,0.37,0.384,0.399,0.414,0.43,0.445,0.46,0.475,0.49,0.506,0.521,0.536,0.552,0.566,0.582,0.597,0.612,0.627,0.641,0.656,0.67,0.685,0.699,0.713,0.727,0.74,0.754,0.767,0.78,0.792,0.805,0.817,0.829,0.841,0.852,0.863,0.874,0.884,0.894,0.904,0.913,0.922,0.93,0.938,0.946,0.953,0.959,0.966,0.971,0.977,0.981,0.986,0.989,0.993,0.995,0.997,0.999,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,0.999,0.999,0.998,0.997,0.996,0.994,0.993,0.991,0.99,0.988,0.986,0.983,0.981,0.978,0.976,0.973,0.97,0.967,0.964,0.96,0.957,0.953,0.949,0.945,0.941,0.937,0.933,0.928,0.924,0.919,0.914,0.909,0.904,0.899,0.894,0.889,0.883,0.878,0.872,0.866,0.86,0.854,0.848,0.842,0.836,0.83,0.823,0.817,0.81,0.804,0.797,0.79,0.783,0.776,0.769,0.762,0.755,0.748,0.741,0.733,0.726,0.719,0.711,0.704,0.696,0.688,0.681,0.673,0.665,0.657,0.65,0.642,0.634,0.626,0.618,0.61,0.602,0.594,0.586,0.578,0.569,0.561,0.553,0.545,0.537,0.529,0.521,0.512,0.504,0.496,0.488,0.479,0.471,0.463,0.455,0.447,0.439,0.431,0.422,0.414,0.406,0.398,0.39,0.382,0.374,0.366,0.358,0.35,0.343,0.335,0.327,0.319,0.312,0.304,0.296,0.289,0.281,0.274,0.267,0.259,0.252,0.245,0.238,0.231,0.224,0.217,0.21,0.203,0.196,0.19,0.183,0.177,0.17,0.164,0.158,0.152,0.146,0.14,0.134,0.128,0.122,0.117,0.111,0.106,0.101,0.096,0.091,0.086,0.081,0.076,0.072,0.067,0.063,0.059,0.055,0.051,0.047,0.043,0.04,0.036,0.033,0.03,0.027,0.024,0.022,0.019,0.017,0.014,0.012,0.01,0.009,0.007,0.006,0.004,0.003,0.002,0.001,0.001,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.007,0.025,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.53,0.59,0.66,0.72,0.78,0.83,0.88,0.92,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.012,0.025,0.042,0.062,0.08,0.11,0.13,0.16,0.18,0.2,0.222,0.24,0.251,0.252,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0.007,0.025,0.05,0.08,0.12,0.15,0.18,0.2,0.23,0.24,0.251,0.252,0.251,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/01.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.03,-0.12,-0.27,-0.45,-0.68,-0.93,-1.21,-1.51,-1.82,-2.13,-2.46,-2.78,-3.1,-3.4,-3.69,-3.96,-4.21,-4.44,-4.63,-4.79,-4.9,-4.97,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.92,-29.69,-29.28,-28.71,-27.96,-27.05,-25.99,-24.79,-23.47,-22,-19.87,-17.59,-15.18,-12.79,-10.43,-8.19,-6.11,-4.21,-2.51,-1,0.71,2.11,3.26,4.14,4.82,5.31,5.65,5.86,5.97,6,5.62,4.63,3.2,1.56,-0.14,-1.73,-3.08,-4.12,-4.77,-5,-4.97,-4.88,-4.75,-4.6,-4.44,-4.3,-4.17,-4.08,-4.02,-4,-4.07,-4.25,-4.51,-4.81,-5.12,-5.41,-5.65,-5.84,-5.96,-6,-6.001,-5.999,-5.988,-5.96,-5.91,-5.84,-5.74,-5.62,-5.45,-5.25,-5,-4.43,-3.45,-2.18,-0.76,0.71,2.13,3.41,4.51,5.38,6,6.58,7.02,7.36,7.61,7.78,7.89,7.95,7.98,7.997,8,7.91,7.64,7.2,6.62,5.9,5.07,4.15,3.16,2.11,1,-0.43,-1.73,-2.96,-4.15,-5.33,-6.54,-7.79,-9.11,-10.49,-12,-14.24,-16.72,-19.32,-21.83,-24.17,-26.19,-27.82,-29.02,-29.75,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.81,-29.29,-28.5,-27.53,-26.43,-25.27,-24.12,-23.01,-21.97,-21,-19.87,-18.9,-18.04,-17.26,-16.54,-15.85,-15.17,-14.48,-13.76,-13,-12.01,-11.06,-10.16,-9.29,-8.48,-7.69,-6.94,-6.23,-5.57,-4.94,-4.35,-3.79,-3.27,-2.8,-2.36,-1.95,-1.59,-1.26,-0.96,-0.71,-0.5,-0.32,-0.18,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.1,0.37,0.76,1.21,1.68,2.11,2.48,2.76,2.94,3,2.78,2.24,1.59,0.95,0.44,0.11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.19,-0.74,-1.61,-2.72,-4.08,-5.59,-7.26,-9.04,-10.92,-12.81,-14.76,-16.69,-18.57,-20.43,-22.16,-23.78,-25.28,-26.62,-27.77,-28.71,-29.41,-29.85,-30,-28.69,-25.26,-20.31,-14.65,-8.78,-3.3,1.38,4.95,7.21,8,6.69,3.26,-1.69,-7.35,-13.22,-18.7,-23.38,-26.95,-29.21,-30,-28.28,-23.77,-17.25,-9.81,-2.08,5.13,11.29,15.99,18.96,20,18.28,13.77,7.25,-0.19,-7.92,-15.13,-21.29,-25.99,-28.96,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.14,-26.88,-23.63,-19.9,-16.04,-12.43,-9.35,-7,-5.52,-5,-5.86,-8.12,-11.37,-15.1,-18.96,-22.57,-25.65,-28,-29.48,-30,-29.84,-29.44,-28.89,-28.25,-27.59,-26.93,-26.31,-25.79,-25.37,-25.1,-25,-25.17,-25.62,-26.27,-27.02,-27.79,-28.51,-29.13,-29.6,-29.9,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.41,-27.88,-25.67,-23.13,-20.51,-18.05,-15.96,-14.36,-13.36,-13,-13.59,-15.12,-17.33,-19.87,-22.49,-24.95,-27.04,-28.64,-29.64,-30,-28.97,-26.26,-22.35,-17.88,-13.25,-8.92,-5.23,-2.4,-0.63,0,-1.03,-3.74,-7.65,-12.12,-16.75,-21.08,-24.77,-27.6,-29.37,-30,-29.15,-26.91,-23.66,-19.93,-16.02,-12.32,-9.1,-6.56,-4.83,-4,-3.58,-3.2,-2.85,-2.52,-2.23,-1.95,-1.7,-1.48,-1.28,-1.09,-0.93,-0.78,-0.65,-0.53,-0.43,-0.34,-0.27,-0.2,-0.15,-0.1,-0.07,-0.04,-0.023,-0.01,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.29,1.01,2,3.15,4.34,5.52,6.64,7.57,8.33,8.82,9,8.35,6.63,4.16,1.33,-1.61,-4.35,-6.69,-8.48,-9.6,-10,-9.26,-7.48,-5.29,-3.16,-1.45,-0.37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.012,-0.05,-0.12,-0.21,-0.34,-0.49,-0.68,-0.9,-1.15,-1.44,-1.76,-2.13,-2.53,-2.98,-3.46,-3.98,-4.55,-5.17,-5.83,-6.55,-7.32,-8.12,-9,-10.41,-12.38,-14.77,-17.3,-19.84,-22.2,-24.27,-25.96,-27.21,-28,-28.62,-29.1,-29.45,-29.68,-29.84,-29.93,-29.98,-29.997,-30,-30,-29.28,-27.38,-24.6,-21.35,-17.91,-14.58,-11.58,-9.08,-7.2,-6,-5.03,-4.29,-3.69,-3.2,-2.75,-2.32,-1.85,-1.32,-0.72,0,1.22,2.72,4.41,6.11,7.75,9.19,10.38,11.27,11.81,12,12,11.987,11.94,11.86,11.72,11.51,11.24,10.9,10.49,10,8.96,7.37,5.37,3.19,0.95,-1.2,-3.13,-4.77,-6.07,-7,-7.86,-8.53,-9.04,-9.41,-9.66,-9.83,-9.92,-9.97,-10,-10,-9.997,-9.986,-9.96,-9.92,-9.87,-9.79,-9.69,-9.56,-9.41,-9.22,-9,-8.69,-8.34,-7.94,-7.5,-7.01,-6.48,-5.91,-5.31,-4.68,-4,-2.59,-0.41,2.31,5.22,8.11,10.74,12.94,14.6,15.64,16,15.18,13.02,9.87,6.23,2.39,-1.27,-4.5,-7.11,-8.97,-10,-10.66,-11.16,-11.54,-11.85,-12.12,-12.4,-12.71,-13.06,-13.49,-14,-15.13,-16.88,-19.06,-21.38,-23.69,-25.8,-27.56,-28.88,-29.71,-30,-29.95,-29.79,-29.52,-29.15,-28.67,-28.09,-27.43,-26.69,-25.89,-25,-23.84,-22.79,-21.86,-21.06,-20.4,-19.88,-19.48,-19.21,-19.05,-19,-19.21,-19.75,-20.53,-21.42,-22.35,-23.22,-23.95,-24.52,-24.87,-25,-24.87,-24.52,-23.96,-23.21,-22.32,-21.28,-20.14,-18.9,-17.6,-16.22,-14.83,-13.4,-11.95,-10.55,-9.17,-7.81,-6.54,-5.32,-4.18,-3.17,-2.26,-1.49,-0.86,-0.39,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.16,-0.56,-1.11,-1.75,-2.41,-3.07,-3.69,-4.21,-4.63,-4.9,-5,-4.83,-4.38,-3.73,-2.98,-2.21,-1.49,-0.87,-0.4,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.999,0.997,0.994,0.988,0.981,0.971,0.959,0.945,0.927,0.91,0.88,0.86,0.82,0.79,0.75,0.54,0.25,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.17,0.46,0.66,0.75,0.79,0.82,0.85,0.88,0.9,0.93,0.942,0.957,0.968,0.978,0.986,0.991,0.995,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,0.999,0.997,0.994,0.988,0.981,0.971,0.959,0.945,0.927,0.91,0.88,0.86,0.82,0.79,0.75,0.54,0.25,0.06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.17,0.46,0.66,0.75,0.79,0.82,0.85,0.88,0.9,0.93,0.942,0.957,0.968,0.978,0.986,0.991,0.995,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.998,-0.998,-0.997,-0.996,-0.995,-0.994,-0.994,-0.993,-0.991,-0.99,-0.989,-0.988,-0.986,-0.985,-0.984,-0.982,-0.98,-0.979,-0.977,-0.975,-0.973,-0.971,-0.969,-0.967,-0.965,-0.963,-0.961,-0.958,-0.956,-0.953,-0.951,-0.948,-0.946,-0.943,-0.94,-0.938,-0.935,-0.932,-0.929,-0.926,-0.923,-0.92,-0.917,-0.913,-0.91,-0.907,-0.904,-0.9,-0.897,-0.893,-0.89,-0.886,-0.882,-0.879,-0.875,-0.871,-0.868,-0.864,-0.86,-0.856,-0.852,-0.848,-0.844,-0.84,-0.836,-0.831,-0.827,-0.823,-0.819,-0.814,-0.81,-0.806,-0.801,-0.797,-0.792,-0.788,-0.783,-0.779,-0.774,-0.769,-0.765,-0.76,-0.755,-0.751,-0.746,-0.741,-0.736,-0.731,-0.726,-0.721,-0.716,-0.712,-0.707,-0.701,-0.696,-0.691,-0.686,-0.681,-0.676,-0.671,-0.666,-0.661,-0.656,-0.65,-0.645,-0.64,-0.635,-0.63,-0.624,-0.619,-0.614,-0.608,-0.603,-0.598,-0.592,-0.587,-0.582,-0.576,-0.571,-0.566,-0.56,-0.555,-0.549,-0.544,-0.539,-0.533,-0.528,-0.522,-0.517,-0.512,-0.506,-0.501,-0.495,-0.49,-0.484,-0.479,-0.474,-0.468,-0.463,-0.457,-0.452,-0.447,-0.441,-0.436,-0.43,-0.425,-0.42,-0.414,-0.409,-0.404,-0.398,-0.393,-0.388,-0.383,-0.377,-0.372,-0.367,-0.361,-0.356,-0.351,-0.346,-0.341,-0.336,-0.33,-0.325,-0.32,-0.315,-0.31,-0.305,-0.3,-0.295,-0.29,-0.285,-0.28,-0.275,-0.27,-0.266,-0.261,-0.256,-0.251,-0.246,-0.242,-0.237,-0.232,-0.228,-0.223,-0.218,-0.214,-0.209,-0.205,-0.2,-0.196,-0.192,-0.187,-0.183,-0.179,-0.175,-0.17,-0.166,-0.162,-0.158,-0.154,-0.15,-0.146,-0.142,-0.138,-0.134,-0.13,-0.127,-0.123,-0.119,-0.116,-0.112,-0.109,-0.105,-0.102,-0.098,-0.095,-0.092,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.067,-0.064,-0.061,-0.059,-0.056,-0.053,-0.051,-0.048,-0.046,-0.043,-0.041,-0.039,-0.037,-0.034,-0.032,-0.03,-0.028,-0.026,-0.024,-0.023,-0.021,-0.019,-0.018,-0.016,-0.015,-0.013,-0.012,-0.011,-0.009,-0.008,-0.007,-0.006,-0.005,-0.005,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,0,0,0,0\r\r\nPARAM_EYE_FORM=0,-0.004,-0.017,-0.037,-0.06,-0.09,-0.13,-0.17,-0.2,-0.24,-0.29,-0.32,-0.36,-0.39,-0.42,-0.45,-0.47,-0.487,-0.497,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.499,-0.499,-0.499,-0.498,-0.498,-0.498,-0.497,-0.497,-0.496,-0.496,-0.495,-0.495,-0.494,-0.493,-0.493,-0.492,-0.491,-0.49,-0.489,-0.488,-0.488,-0.487,-0.486,-0.485,-0.484,-0.482,-0.481,-0.48,-0.479,-0.478,-0.477,-0.475,-0.474,-0.473,-0.472,-0.47,-0.469,-0.467,-0.466,-0.464,-0.463,-0.461,-0.46,-0.458,-0.457,-0.455,-0.453,-0.452,-0.45,-0.448,-0.447,-0.445,-0.443,-0.441,-0.439,-0.438,-0.436,-0.434,-0.432,-0.43,-0.428,-0.426,-0.424,-0.422,-0.42,-0.418,-0.416,-0.414,-0.411,-0.409,-0.407,-0.405,-0.403,-0.401,-0.398,-0.396,-0.394,-0.392,-0.389,-0.387,-0.385,-0.382,-0.38,-0.378,-0.375,-0.373,-0.37,-0.368,-0.366,-0.363,-0.361,-0.358,-0.356,-0.353,-0.351,-0.348,-0.346,-0.343,-0.341,-0.338,-0.336,-0.333,-0.33,-0.328,-0.325,-0.323,-0.32,-0.317,-0.315,-0.312,-0.309,-0.307,-0.304,-0.302,-0.299,-0.296,-0.294,-0.291,-0.288,-0.285,-0.283,-0.28,-0.277,-0.275,-0.272,-0.269,-0.267,-0.264,-0.261,-0.258,-0.256,-0.253,-0.25,-0.248,-0.245,-0.242,-0.24,-0.237,-0.234,-0.231,-0.229,-0.226,-0.223,-0.221,-0.218,-0.215,-0.213,-0.21,-0.207,-0.204,-0.202,-0.199,-0.197,-0.194,-0.191,-0.189,-0.186,-0.183,-0.181,-0.178,-0.176,-0.173,-0.17,-0.168,-0.165,-0.163,-0.16,-0.158,-0.155,-0.153,-0.15,-0.147,-0.145,-0.143,-0.14,-0.138,-0.135,-0.133,-0.13,-0.128,-0.126,-0.123,-0.121,-0.118,-0.116,-0.114,-0.112,-0.109,-0.107,-0.105,-0.102,-0.1,-0.098,-0.096,-0.094,-0.092,-0.089,-0.087,-0.085,-0.083,-0.081,-0.079,-0.077,-0.075,-0.073,-0.071,-0.069,-0.067,-0.065,-0.063,-0.061,-0.06,-0.058,-0.056,-0.054,-0.053,-0.051,-0.049,-0.047,-0.046,-0.044,-0.043,-0.041,-0.039,-0.038,-0.036,-0.035,-0.033,-0.032,-0.031,-0.029,-0.028,-0.027,-0.025,-0.024,-0.023,-0.022,-0.021,-0.019,-0.018,-0.017,-0.016,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.01,-0.009,-0.008,-0.007,-0.007,-0.006,-0.005,-0.005,-0.004,-0.004,-0.003,-0.003,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.06,0.23,0.44,0.7,0.96,1.23,1.47,1.68,1.85,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.07,0.25,0.51,0.81,1.12,1.41,1.65,1.84,1.96,2,1.93,1.75,1.49,1.19,0.88,0.59,0.35,0.16,0.04,0,0.016,0.06,0.12,0.2,0.29,0.39,0.48,0.57,0.65,0.72,0.8,0.86,0.91,0.94,0.97,0.984,0.993,0.998,1,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0.003,0.011,0.025,0.045,0.07,0.1,0.15,0.19,0.25,0.32,0.39,0.47,0.57,0.67,0.78,0.9,1.03,1.18,1.35,1.53,1.7,1.86,1.96,2,1.52,0.72,0.18,0,0.001,0.005,0.011,0.02,0.03,0.043,0.058,0.074,0.092,0.112,0.13,0.16,0.18,0.21,0.23,0.26,0.29,0.32,0.35,0.38,0.41,0.44,0.47,0.5,0.53,0.56,0.59,0.62,0.65,0.68,0.71,0.74,0.77,0.79,0.82,0.84,0.87,0.89,0.908,0.926,0.942,0.957,0.97,0.98,0.989,0.995,0.999,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.001,0.003,0.006,0.011,0.018,0.027,0.037,0.049,0.063,0.079,0.097,0.117,0.14,0.16,0.19,0.22,0.25,0.29,0.32,0.36,0.41,0.45,0.5,0.56,0.63,0.71,0.77,0.84,0.9,0.94,0.97,0.993,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.017,0.06,0.13,0.2,0.28,0.35,0.41,0.46,0.49,0.5,0.483,0.44,0.37,0.3,0.22,0.15,0.09,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.003,0.013,0.029,0.05,0.07,0.1,0.13,0.16,0.2,0.23,0.26,0.29,0.32,0.34,0.36,0.377,0.387,0.39,0.377,0.34,0.29,0.23,0.17,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18,0.46,0.73,0.92,1,1,1,1,1,1,1,1,1,1,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.555,0.59,0.64,0.7,0.76,0.82,0.88,0.93,0.97,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.984,0.94,0.88,0.81,0.74,0.68,0.62,0.58,0.55,0.54,0.556,0.6,0.66,0.73,0.8,0.86,0.92,0.96,0.99,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.026,0.06,0.09,0.14,0.19,0.25,0.31,0.38,0.44,0.5,0.56,0.61,0.66,0.69,0.72,0.743,0.75,0.72,0.66,0.56,0.45,0.33,0.22,0.13,0.06,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.87,0.81,0.73,0.65,0.56,0.47,0.37,0.28,0.18,0.09,0,-0.08,-0.16,-0.22,-0.28,-0.32,-0.34,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.338,-0.31,-0.26,-0.19,-0.11,-0.03,0.07,0.16,0.26,0.36,0.46,0.56,0.65,0.73,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.991,0.98,0.966,0.948,0.93,0.9,0.87,0.84,0.81,0.78,0.74,0.7,0.66,0.62,0.58,0.54,0.5,0.46,0.42,0.38,0.34,0.3,0.26,0.22,0.19,0.16,0.13,0.1,0.07,0.05,0.034,0.02,0.009,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.009,-0.019,-0.033,-0.05,-0.07,-0.09,-0.11,-0.14,-0.16,-0.19,-0.21,-0.24,-0.26,-0.28,-0.3,-0.317,-0.331,-0.341,-0.348,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.35,-0.347,-0.338,-0.325,-0.308,-0.289,-0.27,-0.24,-0.22,-0.19,-0.17,-0.14,-0.12,-0.09,-0.07,-0.05,-0.033,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.001,-0.004,-0.01,-0.017,-0.027,-0.038,-0.051,-0.065,-0.081,-0.098,-0.117,-0.137,-0.16,-0.18,-0.2,-0.23,-0.25,-0.28,-0.3,-0.33,-0.36,-0.38,-0.41,-0.44,-0.47,-0.5,-0.52,-0.55,-0.58,-0.61,-0.64,-0.66,-0.69,-0.71,-0.74,-0.76,-0.79,-0.81,-0.83,-0.85,-0.874,-0.892,-0.91,-0.926,-0.941,-0.954,-0.966,-0.976,-0.984,-0.991,-0.996,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.989,-0.95,-0.88,-0.76,-0.59,-0.37,-0.11,0.21,0.58,1,1.6,2.21,2.8,3.35,3.84,4.25,4.58,4.81,4.95,5,4.97,4.87,4.72,4.53,4.3,4.04,3.77,3.48,3.19,2.89,2.6,2.32,2.05,1.8,1.57,1.38,1.22,1.1,1.03,1,1.03,1.13,1.28,1.47,1.72,1.99,2.29,2.62,2.97,3.32,3.68,4.03,4.38,4.71,5.01,5.28,5.53,5.72,5.87,5.97,6,5.95,5.82,5.63,5.39,5.14,4.87,4.62,4.38,4.18,4,3.8,3.62,3.45,3.29,3.15,3.01,2.88,2.75,2.62,2.5,2.37,2.25,2.12,1.98,1.84,1.69,1.53,1.37,1.19,1,0.65,0.1,-0.58,-1.31,-2.03,-2.69,-3.24,-3.65,-3.91,-4,-3.999,-3.997,-3.994,-3.989,-3.983,-3.976,-3.968,-3.958,-3.947,-3.935,-3.921,-3.907,-3.891,-3.875,-3.857,-3.838,-3.818,-3.8,-3.78,-3.75,-3.73,-3.7,-3.68,-3.65,-3.62,-3.6,-3.57,-3.54,-3.51,-3.47,-3.44,-3.41,-3.38,-3.34,-3.31,-3.27,-3.23,-3.2,-3.16,-3.12,-3.08,-3.04,-3,-2.96,-2.92,-2.88,-2.84,-2.8,-2.76,-2.71,-2.67,-2.63,-2.58,-2.54,-2.5,-2.45,-2.41,-2.36,-2.32,-2.27,-2.23,-2.18,-2.14,-2.09,-2.05,-2,-1.95,-1.91,-1.86,-1.82,-1.77,-1.73,-1.68,-1.64,-1.59,-1.55,-1.5,-1.46,-1.42,-1.37,-1.33,-1.29,-1.24,-1.2,-1.16,-1.12,-1.08,-1.04,-1,-0.96,-0.92,-0.88,-0.84,-0.8,-0.77,-0.73,-0.69,-0.66,-0.63,-0.59,-0.56,-0.53,-0.49,-0.46,-0.43,-0.4,-0.38,-0.35,-0.32,-0.3,-0.27,-0.25,-0.22,-0.2,-0.18,-0.162,-0.143,-0.125,-0.109,-0.093,-0.079,-0.065,-0.053,-0.042,-0.032,-0.024,-0.017,-0.011,-0.006,-0.003,-0.001,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.11,-0.44,-0.96,-1.62,-2.45,-3.39,-4.44,-5.58,-6.8,-8.06,-9.38,-10.73,-12.09,-13.47,-14.82,-16.16,-17.46,-18.73,-19.94,-21.09,-22.16,-23.12,-24,-24.82,-25.39,-25.77,-25.99,-26.09,-26.12,-26.09,-26.05,-26.02,-26,-25.95,-25.8,-25.58,-25.29,-24.95,-24.56,-24.15,-23.72,-23.28,-22.83,-22.4,-21.97,-21.57,-21.2,-20.86,-20.57,-20.33,-20.15,-20.04,-20,-20.21,-20.75,-21.53,-22.42,-23.35,-24.22,-24.95,-25.52,-25.87,-26,-25.83,-25.38,-24.73,-23.98,-23.21,-22.49,-21.87,-21.4,-21.1,-21,-21.31,-22.12,-23.29,-24.63,-26.03,-27.32,-28.43,-29.28,-29.81,-30,-29.83,-29.38,-28.73,-27.98,-27.21,-26.49,-25.87,-25.4,-25.1,-25,-25.1,-25.37,-25.76,-26.21,-26.68,-27.11,-27.48,-27.76,-27.94,-28,-27.84,-27.44,-26.89,-26.25,-25.59,-24.93,-24.31,-23.79,-23.37,-23.1,-23,-23.21,-23.75,-24.53,-25.42,-26.35,-27.22,-27.95,-28.52,-28.87,-29,-28.79,-28.25,-27.47,-26.58,-25.65,-24.78,-24.05,-23.48,-23.13,-23,-23.21,-23.75,-24.53,-25.42,-26.35,-27.22,-27.95,-28.52,-28.87,-29,-28.66,-27.75,-26.45,-24.96,-23.42,-21.97,-20.74,-19.8,-19.21,-19,-19.18,-19.68,-20.41,-21.28,-22.22,-23.16,-24.04,-24.83,-25.48,-26,-26.54,-27.03,-27.45,-27.84,-28.18,-28.48,-28.75,-28.97,-29.18,-29.35,-29.5,-29.62,-29.72,-29.81,-29.87,-29.92,-29.96,-29.98,-29.996,-30,-29.93,-29.73,-29.41,-28.97,-28.43,-27.78,-27.04,-26.22,-25.31,-24.34,-23.3,-22.22,-21.08,-19.93,-18.72,-17.49,-16.25,-15,-13.75,-12.51,-11.28,-10.07,-8.92,-7.78,-6.7,-5.66,-4.69,-3.78,-2.96,-2.22,-1.57,-1.03,-0.59,-0.27,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.005,0.02,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.34,0.39,0.44,0.49,0.54,0.58,0.63,0.67,0.7,0.73,0.76,0.775,0.786,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.788,0.783,0.774,0.763,0.749,0.732,0.712,0.69,0.67,0.64,0.61,0.59,0.56,0.52,0.49,0.46,0.43,0.4,0.36,0.33,0.3,0.27,0.23,0.2,0.18,0.15,0.12,0.1,0.08,0.058,0.041,0.027,0.016,0.007,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.024,0.05,0.08,0.12,0.15,0.19,0.22,0.24,0.251,0.252,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0.007,0.025,0.05,0.08,0.12,0.15,0.18,0.2,0.23,0.24,0.251,0.252,0.251,0.25,0.242,0.222,0.19,0.16,0.13,0.1,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0,-0.013,-0.05,-0.11,-0.18,-0.27,-0.37,-0.48,-0.6,-0.73,-0.85,-0.98,-1.11,-1.24,-1.36,-1.48,-1.59,-1.69,-1.77,-1.85,-1.91,-1.96,-1.99,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.994,-1.98,-1.96,-1.94,-1.91,-1.89,-1.868,-1.853,-1.843,-1.84,-1.846,-1.86,-1.88,-1.9,-1.93,-1.95,-1.972,-1.987,-1.997,-2,-1.998,-1.991,-1.982,-1.972,-1.961,-1.951,-1.942,-1.936,-1.931,-1.93,-1.932,-1.939,-1.948,-1.958,-1.969,-1.979,-1.988,-1.994,-1.999,-2,-1.99,-1.97,-1.93,-1.9,-1.86,-1.82,-1.78,-1.75,-1.72,-1.706,-1.7,-1.71,-1.74,-1.78,-1.82,-1.87,-1.91,-1.95,-1.98,-1.994,-2,-1.998,-1.993,-1.985,-1.976,-1.966,-1.958,-1.95,-1.945,-1.941,-1.94,-1.942,-1.947,-1.955,-1.964,-1.974,-1.982,-1.99,-1.995,-1.999,-2,-1.994,-1.978,-1.95,-1.93,-1.9,-1.87,-1.85,-1.834,-1.824,-1.82,-1.826,-1.842,-1.87,-1.89,-1.92,-1.95,-1.97,-1.986,-1.996,-2,-1.998,-1.993,-1.985,-1.976,-1.966,-1.958,-1.95,-1.945,-1.941,-1.94,-1.942,-1.947,-1.955,-1.964,-1.974,-1.982,-1.99,-1.995,-1.999,-2,-2,-2,-2,-2,-2,-1.994,-1.97,-1.94,-1.9,-1.84,-1.76,-1.67,-1.58,-1.49,-1.4,-1.3,-1.21,-1.11,-1.02,-0.92,-0.83,-0.74,-0.65,-0.57,-0.49,-0.41,-0.34,-0.27,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L_MOVE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.988,-0.95,-0.89,-0.81,-0.71,-0.59,-0.46,-0.32,-0.16,0,0.21,0.39,0.55,0.68,0.79,0.87,0.93,0.97,0.99,1,0.988,0.95,0.89,0.81,0.71,0.59,0.46,0.32,0.16,0,-0.21,-0.39,-0.55,-0.68,-0.79,-0.87,-0.93,-0.97,-0.99,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.995,-0.98,-0.96,-0.93,-0.89,-0.84,-0.8,-0.74,-0.69,-0.63,-0.57,-0.51,-0.45,-0.39,-0.33,-0.27,-0.22,-0.18,-0.13,-0.09,-0.06,-0.04,-0.016,-0.004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/02.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0.01,0.04,0.08,0.15,0.22,0.31,0.41,0.53,0.65,0.78,0.91,1.06,1.2,1.35,1.5,1.65,1.8,1.94,2.09,2.22,2.35,2.47,2.59,2.69,2.78,2.85,2.92,2.96,2.99,3,2.97,2.9,2.79,2.64,2.47,2.28,2.08,1.86,1.64,1.42,1.2,0.99,0.78,0.6,0.43,0.28,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.98,-3.11,-5.76,-8.51,-11.02,-13.1,-14.48,-15,-14.85,-14.43,-13.74,-12.81,-11.65,-10.31,-8.79,-7.11,-5.29,-3.35,-1.28,0.83,3.04,5.26,7.5,9.74,11.96,14.17,16.28,18.35,20.29,22.11,23.79,25.31,26.65,27.81,28.74,29.43,29.85,30,29.74,29,27.89,26.44,24.74,22.81,20.75,18.62,16.4,14.17,11.99,9.86,7.84,6,4.3,2.85,1.66,0.77,0.2,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.52,-1.66,-3.14,-4.76,-6.34,-7.82,-9.06,-10,-10.82,-11.61,-12.37,-13.07,-13.76,-14.39,-15,-15.57,-16.1,-16.61,-17.08,-17.52,-17.94,-18.32,-18.67,-18.99,-19.29,-19.56,-19.81,-20.03,-20.22,-20.39,-20.54,-20.67,-20.77,-20.86,-20.92,-20.97,-20.99,-21,-20.82,-20.3,-19.52,-18.51,-17.32,-15.97,-14.53,-13.03,-11.48,-9.92,-8.39,-6.91,-5.49,-4.2,-3.01,-1.99,-1.16,-0.54,-0.14,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,0.97,0.91,0.83,0.76,0.68,0.62,0.58,0.57,0.571,0.575,0.582,0.591,0.602,0.615,0.629,0.645,0.663,0.681,0.701,0.721,0.74,0.76,0.79,0.81,0.83,0.85,0.869,0.889,0.907,0.925,0.941,0.955,0.968,0.979,0.988,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,0.97,0.91,0.83,0.76,0.68,0.62,0.58,0.57,0.571,0.575,0.582,0.591,0.602,0.615,0.629,0.645,0.663,0.681,0.701,0.721,0.74,0.76,0.79,0.81,0.83,0.85,0.869,0.889,0.907,0.925,0.941,0.955,0.968,0.979,0.988,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0,-0.07,-0.21,-0.38,-0.57,-0.73,-0.87,-0.97,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.991,-0.97,-0.93,-0.88,-0.82,-0.76,-0.69,-0.62,-0.55,-0.47,-0.4,-0.33,-0.26,-0.2,-0.14,-0.09,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_FORM=1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.744,0.725,0.7,0.66,0.62,0.57,0.52,0.47,0.41,0.35,0.3,0.25,0.2,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=0,-0.04,-0.13,-0.24,-0.35,-0.46,-0.56,-0.63,-0.67,-0.7,-0.72,-0.74,-0.77,-0.79,-0.807,-0.826,-0.843,-0.859,-0.874,-0.888,-0.901,-0.913,-0.924,-0.934,-0.943,-0.952,-0.959,-0.966,-0.972,-0.978,-0.982,-0.986,-0.99,-0.993,-0.995,-0.997,-0.998,-0.999,-1,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,-0.03,-0.09,-0.18,-0.27,-0.35,-0.43,-0.5,-0.54,-0.58,-0.61,-0.64,-0.67,-0.7,-0.73,-0.75,-0.78,-0.8,-0.82,-0.84,-0.859,-0.875,-0.891,-0.905,-0.918,-0.93,-0.941,-0.951,-0.959,-0.967,-0.974,-0.98,-0.985,-0.989,-0.993,-0.995,-0.997,-0.999,-1,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-1.18,-3.73,-6.91,-10.21,-13.22,-15.72,-17.38,-18,-18,-18,-18,-17.998,-17.995,-17.99,-17.982,-17.972,-17.957,-17.94,-17.92,-17.89,-17.86,-17.82,-17.77,-17.72,-17.66,-17.59,-17.52,-17.43,-17.34,-17.24,-17.12,-17,-16.86,-16.72,-16.56,-16.38,-16.2,-16,-15.66,-15.11,-14.41,-13.56,-12.6,-11.56,-10.46,-9.35,-8.2,-7.06,-5.96,-4.89,-3.88,-2.96,-2.11,-1.4,-0.81,-0.38,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY=1,0.95,0.82,0.67,0.52,0.4,0.33,0.3,0.301,0.302,0.305,0.308,0.313,0.318,0.324,0.331,0.339,0.347,0.357,0.366,0.377,0.388,0.4,0.412,0.425,0.439,0.453,0.467,0.481,0.496,0.512,0.527,0.543,0.559,0.576,0.592,0.609,0.625,0.642,0.658,0.675,0.691,0.708,0.724,0.741,0.757,0.773,0.788,0.804,0.819,0.833,0.847,0.861,0.875,0.888,0.9,0.912,0.923,0.934,0.943,0.953,0.961,0.969,0.976,0.982,0.987,0.992,0.995,0.998,0.999,1\r\r\nPARAM_BREATH=0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.991,0.97,0.93,0.87,0.81,0.74,0.67,0.59,0.51,0.43,0.35,0.28,0.21,0.15,0.1,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0.03,0.11,0.22,0.35,0.49,0.62,0.73,0.82,0.87,0.9,0.91,0.919,0.927,0.935,0.942,0.948,0.955,0.96,0.965,0.97,0.974,0.978,0.982,0.985,0.987,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0\r\r\nARM_R_MOVE_02=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/03.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.025,-0.05,-0.09,-0.14,-0.19,-0.24,-0.3,-0.36,-0.43,-0.49,-0.56,-0.62,-0.68,-0.74,-0.79,-0.84,-0.89,-0.93,-0.96,-0.98,-0.995,-1,-0.991,-0.97,-0.93,-0.87,-0.81,-0.74,-0.67,-0.59,-0.51,-0.43,-0.35,-0.28,-0.21,-0.15,-0.1,-0.06,-0.03,-0.007,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.27,1.03,2.21,3.77,5.61,7.69,9.95,12.29,14.69,17.1,19.42,21.6,23.64,25.44,27.01,28.28,29.21,29.8,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.71,28.89,27.58,25.93,23.88,21.61,19.11,16.44,13.63,10.79,7.86,4.97,2.14,-0.64,-3.24,-5.68,-7.92,-9.93,-11.65,-13.07,-14.12,-14.77,-15,-14.87,-14.48,-13.9,-13.12,-12.2,-11.16,-10.03,-8.86,-7.65,-6.45,-5.29,-4.2,-3.18,-2.28,-1.49,-0.86,-0.39,-0.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0.02,0.09,0.19,0.35,0.54,0.79,1.08,1.41,1.79,2.23,2.7,3.21,3.77,4.38,5.02,5.71,6.43,7.2,8,8.94,9.83,10.68,11.47,12.2,12.87,13.47,14.01,14.48,14.89,15.23,15.51,15.73,15.88,15.97,16,15.986,15.95,15.88,15.77,15.64,15.48,15.28,15.05,14.78,14.48,14.14,13.77,13.36,12.91,12.42,11.9,11.35,10.74,10.11,9.44,8.74,8,7.12,6.26,5.43,4.66,3.9,3.2,2.52,1.88,1.28,0.72,0.19,-0.31,-0.76,-1.17,-1.54,-1.88,-2.17,-2.42,-2.62,-2.79,-2.91,-2.98,-3,-2.97,-2.9,-2.78,-2.62,-2.44,-2.23,-2.01,-1.77,-1.53,-1.29,-1.06,-0.84,-0.64,-0.46,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.76,0.36,0.09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.24,0.64,0.91,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=1\r\r\nPARAM_MOUTH_FORM=1,0.97,0.89,0.78,0.65,0.52,0.39,0.26,0.16,0.07,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.007,0.026,0.06,0.1,0.14,0.19,0.25,0.31,0.38,0.44,0.5,0.56,0.62,0.67,0.72,0.76,0.79,0.81,0.83,0.843,0.855,0.867,0.878,0.888,0.898,0.907,0.916,0.924,0.931,0.938,0.944,0.95,0.956,0.961,0.965,0.97,0.973,0.977,0.98,0.983,0.986,0.988,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.998,0.999,0.999,1,1,1,1,1,0.994,0.975,0.95,0.91,0.86,0.81,0.76,0.7,0.64,0.57,0.51,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0.04,0.1,0.15,0.18,0.21,0.24,0.26,0.29,0.31,0.34,0.36,0.38,0.41,0.43,0.45,0.48,0.5,0.53,0.55,0.58,0.6,0.62,0.642,0.66,0.677,0.691,0.704,0.715,0.725,0.733,0.739,0.744,0.747,0.749,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.747,0.74,0.728,0.713,0.694,0.67,0.65,0.63,0.6,0.57,0.55,0.52,0.5,0.47,0.45,0.42,0.405,0.386,0.37,0.358,0.348,0.342,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.34,0.339,0.339,0.338,0.338,0.337,0.336,0.335,0.335,0.334,0.333,0.331,0.33,0.329,0.328,0.327,0.326,0.325,0.323,0.322,0.321,0.32,0.319,0.318,0.317,0.316,0.315,0.314,0.313,0.313,0.312,0.311,0.311,0.311,0.31,0.31,0.31\r\r\nPARAM_EAR_R=1,0.998,0.993,0.985,0.972,0.956,0.936,0.91,0.88,0.85,0.81,0.77,0.72,0.67,0.62,0.56,0.49,0.42,0.35,0.27,0.18,0.09,0,-0.1,-0.2,-0.3,-0.4,-0.49,-0.58,-0.66,-0.73,-0.8,-0.86,-0.91,-0.95,-0.98,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.91,-0.8,-0.68,-0.53,-0.37,-0.2,-0.02,0.15,0.32,0.47,0.62,0.75,0.85,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1,0.998,0.993,0.985,0.972,0.956,0.936,0.91,0.88,0.85,0.81,0.77,0.72,0.67,0.62,0.56,0.49,0.42,0.35,0.27,0.18,0.09,0,-0.1,-0.2,-0.3,-0.4,-0.49,-0.58,-0.66,-0.73,-0.8,-0.86,-0.91,-0.95,-0.98,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.97,-0.91,-0.8,-0.68,-0.53,-0.37,-0.2,-0.02,0.15,0.32,0.47,0.62,0.75,0.85,0.93,0.98,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.03,0.07,0.12,0.17,0.23,0.3,0.36,0.43,0.49,0.55,0.61,0.66,0.7,0.73,0.75,0.768,0.786,0.802,0.818,0.832,0.846,0.86,0.872,0.884,0.895,0.905,0.914,0.923,0.931,0.939,0.946,0.953,0.959,0.964,0.969,0.973,0.977,0.981,0.984,0.987,0.99,0.992,0.994,0.995,0.996,0.998,0.998,0.999,0.999,1,1,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/04.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.03,-0.1,-0.22,-0.36,-0.54,-0.75,-0.97,-1.21,-1.46,-1.71,-1.97,-2.23,-2.48,-2.72,-2.95,-3.17,-3.37,-3.55,-3.7,-3.83,-3.92,-3.98,-4,-3.998,-3.993,-3.984,-3.972,-3.956,-3.938,-3.92,-3.89,-3.86,-3.83,-3.8,-3.76,-3.73,-3.69,-3.64,-3.6,-3.55,-3.5,-3.45,-3.4,-3.34,-3.29,-3.23,-3.17,-3.11,-3.05,-2.98,-2.92,-2.85,-2.78,-2.72,-2.65,-2.58,-2.51,-2.44,-2.37,-2.3,-2.23,-2.15,-2.08,-2.01,-1.94,-1.87,-1.79,-1.72,-1.65,-1.58,-1.51,-1.44,-1.37,-1.3,-1.24,-1.17,-1.1,-1.04,-0.98,-0.91,-0.85,-0.79,-0.74,-0.68,-0.63,-0.57,-0.52,-0.47,-0.43,-0.38,-0.34,-0.3,-0.26,-0.22,-0.19,-0.16,-0.13,-0.1,-0.08,-0.058,-0.041,-0.026,-0.015,-0.007,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.05,-0.22,-0.48,-0.83,-1.27,-1.78,-2.36,-3.01,-3.73,-4.49,-5.32,-6.19,-7.1,-8.07,-9.05,-10.08,-11.14,-12.23,-13.35,-14.49,-15.65,-16.8,-18,-19.3,-20.5,-21.62,-22.61,-23.54,-24.38,-25.14,-25.83,-26.46,-27.01,-27.52,-27.97,-28.36,-28.7,-29,-29.25,-29.46,-29.64,-29.77,-29.88,-29.95,-29.99,-30,-29.999,-29.996,-29.992,-29.985,-29.976,-29.965,-29.952,-29.937,-29.919,-29.899,-29.88,-29.85,-29.82,-29.79,-29.76,-29.73,-29.69,-29.65,-29.6,-29.56,-29.5,-29.45,-29.4,-29.34,-29.27,-29.21,-29.14,-29.06,-28.99,-28.91,-28.82,-28.74,-28.65,-28.55,-28.45,-28.35,-28.24,-28.13,-28.02,-27.9,-27.77,-27.65,-27.52,-27.38,-27.24,-27.09,-26.94,-26.79,-26.63,-26.46,-26.3,-26.12,-25.94,-25.76,-25.57,-25.38,-25.18,-24.97,-24.77,-24.55,-24.33,-24.11,-23.88,-23.64,-23.4,-23.15,-22.9,-22.64,-22.37,-22.1,-21.82,-21.54,-21.25,-20.95,-20.65,-20.34,-20.03,-19.71,-19.38,-19.04,-18.71,-18.36,-18,-17.6,-17.15,-16.66,-16.12,-15.54,-14.94,-14.3,-13.63,-12.95,-12.25,-11.54,-10.81,-10.08,-9.36,-8.63,-7.91,-7.19,-6.5,-5.82,-5.16,-4.53,-3.92,-3.36,-2.81,-2.32,-1.86,-1.44,-1.08,-0.76,-0.49,-0.28,-0.13,-0.03,0\r\r\nPARAM_ANGLE_Z=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.1,-0.37,-0.81,-1.36,-2.04,-2.8,-3.63,-4.52,-5.46,-6.4,-7.38,-8.34,-9.29,-10.21,-11.08,-11.89,-12.64,-13.31,-13.88,-14.36,-14.71,-14.92,-15,-14.993,-14.973,-14.94,-14.89,-14.84,-14.77,-14.68,-14.59,-14.49,-14.38,-14.25,-14.12,-13.97,-13.82,-13.66,-13.49,-13.32,-13.13,-12.94,-12.74,-12.54,-12.33,-12.11,-11.88,-11.66,-11.42,-11.18,-10.94,-10.69,-10.44,-10.19,-9.93,-9.67,-9.41,-9.15,-8.88,-8.61,-8.34,-8.08,-7.8,-7.53,-7.26,-6.99,-6.73,-6.46,-6.19,-5.92,-5.66,-5.4,-5.14,-4.89,-4.63,-4.38,-4.14,-3.9,-3.66,-3.43,-3.2,-2.98,-2.76,-2.55,-2.35,-2.15,-1.96,-1.77,-1.59,-1.43,-1.27,-1.11,-0.97,-0.83,-0.7,-0.59,-0.48,-0.38,-0.29,-0.22,-0.15,-0.1,-0.06,-0.03,-0.006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.497,0.493,0.489,0.483,0.476,0.469,0.462,0.453,0.445,0.437,0.429,0.421,0.413,0.406,0.4,0.394,0.389,0.385,0.382,0.381,0.38,0.381,0.382,0.385,0.389,0.393,0.398,0.403,0.409,0.416,0.422,0.429,0.436,0.443,0.449,0.456,0.463,0.469,0.474,0.48,0.485,0.489,0.493,0.496,0.498,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_R_OPEN=0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.497,0.493,0.489,0.483,0.476,0.469,0.462,0.453,0.445,0.437,0.429,0.421,0.413,0.406,0.4,0.394,0.389,0.385,0.382,0.381,0.38,0.381,0.382,0.385,0.389,0.393,0.398,0.403,0.409,0.416,0.422,0.429,0.436,0.443,0.449,0.456,0.463,0.469,0.474,0.48,0.485,0.489,0.493,0.496,0.498,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5\r\r\nPARAM_EYE_BALL_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.002,0.002,0.002,0.003,0.004,0.004,0.005,0.006,0.007,0.007,0.008,0.009,0.01,0.011,0.012,0.013,0.014,0.016,0.017,0.018,0.019,0.021,0.022,0.023,0.025,0.026,0.027,0.029,0.03,0.032,0.033,0.035,0.036,0.038,0.039,0.041,0.042,0.044,0.045,0.047,0.048,0.05,0.052,0.053,0.055,0.056,0.058,0.059,0.061,0.062,0.064,0.065,0.067,0.068,0.07,0.071,0.073,0.074,0.075,0.077,0.078,0.079,0.081,0.082,0.083,0.084,0.086,0.087,0.088,0.089,0.09,0.091,0.092,0.093,0.093,0.094,0.095,0.096,0.096,0.097,0.098,0.098,0.098,0.099,0.099,0.099,0.1,0.1,0.1,0.1,0.099,0.098,0.096,0.093,0.089,0.084,0.079,0.074,0.068,0.062,0.056,0.05,0.044,0.038,0.032,0.026,0.021,0.016,0.011,0.007,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,-0.009,-0.03,-0.07,-0.13,-0.19,-0.26,-0.33,-0.41,-0.49,-0.57,-0.65,-0.72,-0.79,-0.85,-0.9,-0.94,-0.97,-0.993,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.99,-0.96,-0.91,-0.85,-0.78,-0.69,-0.59,-0.48,-0.37,-0.25,-0.13,0,0.13,0.25,0.37,0.48,0.59,0.69,0.78,0.85,0.91,0.96,0.99,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0\r\r\nPARAM_EYE_FORM=-1\r\r\nPARAM_MOUTH_FORM=1\r\r\nPARAM_MOUTH_OPEN_Y=0\r\r\nPARAM_TONGUE=0\r\r\nPARAM_EAR_R=0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.08,-0.33,-0.71,-1.2,-1.8,-2.47,-3.22,-4.01,-4.85,-5.7,-6.58,-7.46,-8.32,-9.17,-9.97,-10.74,-11.45,-12.1,-12.67,-13.16,-13.55,-13.83,-14,-14.11,-14.21,-14.32,-14.42,-14.52,-14.62,-14.72,-14.81,-14.91,-15,-15.09,-15.17,-15.26,-15.35,-15.43,-15.51,-15.59,-15.67,-15.74,-15.82,-15.89,-15.97,-16.04,-16.1,-16.17,-16.24,-16.3,-16.36,-16.42,-16.49,-16.54,-16.6,-16.66,-16.71,-16.76,-16.81,-16.86,-16.91,-16.96,-17.01,-17.05,-17.1,-17.14,-17.18,-17.22,-17.26,-17.3,-17.33,-17.37,-17.4,-17.43,-17.47,-17.5,-17.53,-17.55,-17.58,-17.61,-17.63,-17.66,-17.68,-17.7,-17.73,-17.746,-17.766,-17.784,-17.802,-17.819,-17.835,-17.85,-17.865,-17.878,-17.891,-17.903,-17.914,-17.925,-17.934,-17.943,-17.951,-17.959,-17.966,-17.972,-17.977,-17.982,-17.987,-17.99,-17.993,-17.996,-17.998,-17.999,-18,-18,-17.91,-17.65,-17.23,-16.67,-15.99,-15.21,-14.31,-13.36,-12.35,-11.3,-10.24,-9.13,-8.05,-6.99,-5.94,-4.94,-4.02,-3.16,-2.37,-1.69,-1.1,-0.63,-0.29,-0.07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0,0.002,0.006,0.014,0.024,0.036,0.05,0.065,0.081,0.099,0.117,0.136,0.155,0.174,0.193,0.212,0.23,0.248,0.265,0.281,0.295,0.309,0.32,0.33,0.339,0.349,0.358,0.366,0.375,0.383,0.391,0.399,0.407,0.415,0.422,0.429,0.436,0.443,0.45,0.456,0.462,0.468,0.474,0.48,0.485,0.491,0.496,0.501,0.506,0.511,0.515,0.52,0.524,0.528,0.532,0.536,0.54,0.543,0.547,0.55,0.553,0.556,0.559,0.562,0.565,0.567,0.57,0.572,0.575,0.577,0.579,0.581,0.582,0.584,0.586,0.587,0.589,0.59,0.591,0.592,0.593,0.594,0.595,0.596,0.597,0.597,0.598,0.598,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.6,0.599,0.597,0.594,0.591,0.587,0.583,0.578,0.572,0.566,0.559,0.552,0.544,0.536,0.527,0.518,0.509,0.499,0.489,0.478,0.467,0.456,0.445,0.433,0.421,0.409,0.396,0.384,0.371,0.358,0.346,0.332,0.32,0.307,0.293,0.28,0.268,0.254,0.242,0.229,0.216,0.204,0.191,0.179,0.167,0.155,0.144,0.133,0.122,0.111,0.101,0.091,0.082,0.073,0.064,0.056,0.048,0.041,0.034,0.028,0.022,0.017,0.013,0.009,0.006,0.003,0.001,0,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.991,0.97,0.93,0.88,0.82,0.76,0.69,0.62,0.55,0.47,0.4,0.33,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.005,0.02,0.04,0.07,0.11,0.16,0.21,0.26,0.32,0.38,0.44,0.5,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.022,0.05,0.08,0.11,0.14,0.17,0.2,0.22,0.24,0.251,0.252,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0.007,0.026,0.05,0.09,0.12,0.16,0.19,0.22,0.24,0.25,0.252,0.251,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.987,-0.95,-0.9,-0.82,-0.74,-0.65,-0.55,-0.45,-0.35,-0.26,-0.18,-0.1,-0.05,-0.01,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.981,-0.93,-0.86,-0.77,-0.67,-0.57,-0.46,-0.36,-0.26,-0.18,-0.11,-0.05,-0.01,0,-0.02,-0.07,-0.15,-0.25,-0.37,-0.49,-0.6,-0.71,-0.81,-0.89,-0.95,-0.99,-1,-0.98,-0.93,-0.84,-0.74,-0.62,-0.5,-0.38,-0.26,-0.16,-0.07,-0.02,0,-0.02,-0.07,-0.16,-0.26,-0.38,-0.5,-0.62,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.88,-0.75,-0.6,-0.44,-0.3,-0.17,-0.08,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L=0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.03,0.11,0.22,0.35,0.48,0.61,0.74,0.84,0.93,0.98,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0,0.02,0.07,0.15,0.25,0.37,0.49,0.6,0.71,0.81,0.89,0.95,0.99,1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=1\r\r\nVISIBLE:PARTS_01_ARM_L=1\r\r\nVISIBLE:PARTS_01_ARM_R_02=0\r\r\nVISIBLE:PARTS_01_ARM_L_02=0\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/05.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.22,-0.82,-1.77,-2.98,-4.35,-5.88,-7.47,-9.03,-10.55,-11.93,-13.09,-14,-14.8,-15.46,-16.02,-16.52,-16.96,-17.36,-17.75,-18.13,-18.52,-18.93,-19.37,-19.85,-20.4,-21,-21.79,-22.62,-23.49,-24.36,-25.21,-26.02,-26.76,-27.41,-27.97,-28.41,-28.74,-28.93,-29,-28.53,-27.34,-25.83,-24.26,-22.85,-21.74,-21,-20.28,-19.66,-19.11,-18.62,-18.16,-17.72,-17.28,-16.83,-16.36,-15.85,-15.29,-14.67,-14,-13.18,-12.36,-11.53,-10.7,-9.89,-9.07,-8.26,-7.48,-6.71,-5.96,-5.25,-4.56,-3.9,-3.29,-2.71,-2.18,-1.7,-1.27,-0.9,-0.59,-0.33,-0.15,-0.04,0\r\r\nPARAM_ANGLE_Y=0,-0.6,-2.21,-4.69,-7.8,-11.26,-15,-18.74,-22.2,-25.31,-27.79,-29.4,-30,-29.62,-28.63,-27.18,-25.39,-23.4,-21.31,-19.21,-17.16,-15.25,-13.53,-12.1,-10.98,-10.25,-10,-10.4,-11.47,-13.08,-15.1,-17.33,-19.71,-22.04,-24.22,-26.14,-27.76,-28.98,-29.74,-30,-29.43,-27.79,-25.29,-22.07,-18.34,-14.27,-10,-4.15,1.05,5.75,9.96,13.59,16.74,19.38,21.51,23.2,24.47,25.34,25.84,26,25.87,25.49,24.88,24.07,23.09,21.94,20.64,19.27,17.77,16.21,14.63,13,11.37,9.79,8.23,6.73,5.36,4.06,2.91,1.93,1.12,0.51,0.13,0\r\r\nPARAM_ANGLE_Z=0,-0.18,-0.66,-1.41,-2.34,-3.38,-4.5,-5.62,-6.66,-7.59,-8.34,-8.82,-9,-8.83,-8.38,-7.73,-6.92,-6.03,-5.09,-4.14,-3.22,-2.36,-1.59,-0.95,-0.44,-0.11,0,-0.52,-1.91,-4.01,-6.63,-9.53,-12.62,-15.65,-18.48,-20.99,-23.09,-24.67,-25.66,-26,-24.22,-19.87,-14.47,-9.1,-4.6,-1.49,0,0.86,1.57,2.16,2.65,3.04,3.35,3.57,3.74,3.86,3.93,3.97,3.995,4,3.98,3.92,3.83,3.7,3.55,3.38,3.18,2.96,2.73,2.49,2.25,2,1.75,1.51,1.27,1.04,0.82,0.63,0.45,0.3,0.17,0.08,0.02,0\r\r\nPARAM_EYE_L_OPEN=0.75,0.69,0.56,0.4,0.24,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_R_OPEN=0.75,0.69,0.56,0.4,0.24,0.11,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06,0.19,0.38,0.56,0.69,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75,0.75\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=-0.5\r\r\nPARAM_MOUTH_FORM=1,0.98,0.93,0.84,0.74,0.62,0.5,0.38,0.26,0.16,0.07,0.02,0,0.04,0.16,0.33,0.53,0.73,0.91,1.07,1.2,1.27,1.3,1.284,1.24,1.17,1.09,0.99,0.89,0.78,0.67,0.55,0.44,0.34,0.25,0.16,0.1,0.04,0.01,0,0.008,0.03,0.07,0.12,0.18,0.24,0.31,0.39,0.47,0.56,0.64,0.72,0.8,0.89,0.96,1.03,1.1,1.15,1.2,1.24,1.27,1.293,1.3,1.298,1.292,1.283,1.272,1.257,1.24,1.222,1.203,1.18,1.16,1.14,1.12,1.1,1.078,1.06,1.043,1.028,1.017,1.008,1.002,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0.01,0.04,0.08,0.13,0.19,0.25,0.31,0.37,0.42,0.46,0.49,0.5,0.494,0.48,0.46,0.44,0.41,0.39,0.368,0.353,0.343,0.34,0.342,0.347,0.356,0.366,0.378,0.391,0.404,0.418,0.432,0.445,0.458,0.47,0.48,0.488,0.494,0.499,0.5,0.5,0.5,0.499,0.498,0.496,0.494,0.492,0.489,0.485,0.481,0.476,0.47,0.463,0.455,0.447,0.438,0.427,0.416,0.403,0.389,0.374,0.358,0.34,0.32,0.3,0.279,0.26,0.24,0.21,0.19,0.17,0.15,0.13,0.11,0.092,0.074,0.058,0.044,0.031,0.021,0.012,0.005,0.001,0\r\r\nPARAM_TONGUE=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.981,0.93,0.86,0.78,0.7,0.62,0.55,0.5,0.47,0.46,0.467,0.485,0.51,0.55,0.59,0.63,0.68,0.72,0.77,0.82,0.86,0.9,0.93,0.96,0.98,0.995,1,0.999,0.995,0.989,0.98,0.97,0.957,0.942,0.925,0.906,0.886,0.86,0.84,0.81,0.79,0.76,0.72,0.69,0.66,0.62,0.58,0.54,0.5,0.46,0.42,0.37,0.33,0.3,0.26,0.23,0.2,0.17,0.15,0.12,0.1,0.081,0.064,0.049,0.036,0.025,0.016,0.009,0.004,0.001,0\r\r\nPARAM_EAR_R=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.997,-0.989,-0.976,-0.959,-0.94,-0.91,-0.88,-0.85,-0.82,-0.78,-0.74,-0.7,-0.66,-0.62,-0.58,-0.53,-0.49,-0.45,-0.41,-0.37,-0.33,-0.3,-0.27,-0.24,-0.21,-0.19,-0.174,-0.161,-0.153,-0.15,-0.158,-0.18,-0.21,-0.26,-0.31,-0.37,-0.43,-0.5,-0.57,-0.63,-0.7,-0.76,-0.82,-0.87,-0.92,-0.95,-0.98,-0.994,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.76,-0.7,-0.64,-0.57,-0.51,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.997,-0.989,-0.975,-0.957,-0.93,-0.91,-0.88,-0.85,-0.81,-0.77,-0.73,-0.69,-0.65,-0.6,-0.56,-0.52,-0.47,-0.43,-0.39,-0.35,-0.31,-0.27,-0.24,-0.21,-0.19,-0.16,-0.145,-0.131,-0.123,-0.12,-0.128,-0.15,-0.18,-0.23,-0.28,-0.35,-0.41,-0.48,-0.55,-0.62,-0.69,-0.75,-0.81,-0.87,-0.91,-0.95,-0.98,-0.994,-1,-0.994,-0.975,-0.95,-0.91,-0.86,-0.81,-0.76,-0.7,-0.64,-0.57,-0.51,-0.44,-0.38,-0.32,-0.26,-0.21,-0.16,-0.11,-0.07,-0.04,-0.02,-0.005,0\r\r\nPARAM_BODY_ANGLE_X=0,-0.08,-0.29,-0.63,-1.04,-1.5,-2,-2.5,-2.96,-3.38,-3.71,-3.92,-4,-3.93,-3.75,-3.49,-3.19,-2.88,-2.59,-2.35,-2.16,-2.04,-2,-2.03,-2.1,-2.21,-2.35,-2.52,-2.71,-2.9,-3.1,-3.29,-3.48,-3.65,-3.79,-3.9,-3.97,-4,-3.97,-3.87,-3.72,-3.53,-3.28,-3.01,-2.71,-2.38,-2.03,-1.68,-1.32,-0.97,-0.62,-0.29,0.01,0.28,0.53,0.72,0.87,0.97,1,0.995,0.98,0.96,0.93,0.89,0.84,0.8,0.74,0.69,0.63,0.57,0.51,0.45,0.39,0.33,0.27,0.22,0.18,0.13,0.09,0.06,0.04,0.016,0.004,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.12,-0.44,-0.94,-1.56,-2.25,-3,-3.75,-4.44,-5.06,-5.56,-5.88,-6,-5.93,-5.75,-5.49,-5.19,-4.88,-4.59,-4.35,-4.16,-4.04,-4,-4.03,-4.1,-4.21,-4.35,-4.52,-4.71,-4.9,-5.1,-5.29,-5.48,-5.65,-5.79,-5.9,-5.97,-6,-5.89,-5.59,-5.12,-4.48,-3.71,-2.82,-1.86,-0.81,0.3,1.44,2.56,3.7,4.81,5.86,6.82,7.71,8.48,9.12,9.59,9.89,10,9.95,9.8,9.57,9.26,8.88,8.45,7.95,7.42,6.86,6.28,5.69,5.07,4.47,3.88,3.3,2.75,2.23,1.75,1.32,0.94,0.61,0.35,0.16,0.04,0\r\r\nPARAM_BIG_FACE=0,0.016,0.06,0.12,0.2,0.29,0.38,0.48,0.56,0.64,0.7,0.75,0.78,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.79,0.789,0.787,0.784,0.781,0.776,0.771,0.765,0.757,0.748,0.738,0.727,0.714,0.7,0.685,0.668,0.649,0.63,0.61,0.58,0.56,0.53,0.5,0.47,0.43,0.4,0.36,0.33,0.3,0.27,0.24,0.21,0.19,0.16,0.14,0.12,0.09,0.076,0.059,0.044,0.031,0.02,0.011,0.005,0.001,0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.02,0.07,0.16,0.26,0.38,0.5,0.62,0.74,0.84,0.93,0.98,1,0.993,0.974,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.46,0.39,0.32,0.26,0.2,0.14,0.09,0.06,0.03,0.007,0,0.007,0.026,0.06,0.09,0.14,0.2,0.26,0.32,0.39,0.46,0.54,0.61,0.68,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.996,0.985,0.966,0.94,0.91,0.88,0.84,0.8,0.75,0.71,0.66,0.61,0.56,0.51,0.46,0.4,0.36,0.31,0.26,0.22,0.18,0.14,0.1,0.07,0.05,0.028,0.013,0.003,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0.002,0.007,0.014,0.023,0.034,0.045,0.056,0.067,0.076,0.083,0.088,0.09,0.089,0.087,0.083,0.079,0.073,0.067,0.06,0.053,0.046,0.039,0.032,0.025,0.019,0.014,0.009,0.005,0.002,0.001,0,0.001,0.004,0.008,0.014,0.021,0.03,0.039,0.049,0.06,0.072,0.083,0.095,0.107,0.118,0.13,0.141,0.151,0.16,0.169,0.176,0.182,0.186,0.189,0.19,0.189,0.187,0.183,0.179,0.173,0.166,0.158,0.15,0.141,0.132,0.122,0.112,0.101,0.091,0.081,0.071,0.061,0.052,0.043,0.035,0.027,0.021,0.015,0.009,0.005,0.002,0.001,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0,-0.009,-0.03,-0.07,-0.11,-0.17,-0.22,-0.27,-0.32,-0.36,-0.4,-0.43,-0.444,-0.45,-0.446,-0.438,-0.427,-0.416,-0.406,-0.398,-0.392,-0.39,-0.392,-0.398,-0.407,-0.418,-0.432,-0.448,-0.465,-0.483,-0.503,-0.522,-0.543,-0.562,-0.582,-0.601,-0.619,-0.636,-0.651,-0.665,-0.677,-0.687,-0.694,-0.698,-0.7,-0.686,-0.65,-0.59,-0.52,-0.44,-0.35,-0.26,-0.18,-0.11,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/06.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.16,-0.6,-1.27,-2.1,-3.06,-4.11,-5.23,-6.35,-7.49,-8.56,-9.58,-10.52,-11.35,-12.03,-12.55,-12.88,-13,-12.78,-12.19,-11.31,-10.2,-8.97,-7.66,-6.38,-5.18,-4.12,-3.23,-2.56,-2.14,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2.009,-2.03,-2.07,-2.12,-2.18,-2.24,-2.31,-2.38,-2.45,-2.53,-2.6,-2.67,-2.74,-2.8,-2.86,-2.91,-2.94,-2.97,-2.993,-3,-2.96,-2.86,-2.71,-2.51,-2.29,-2.05,-1.79,-1.54,-1.27,-1.02,-0.79,-0.57,-0.38,-0.22,-0.1,-0.03,0,-0.1,-0.37,-0.76,-1.22,-1.7,-2.17,-2.58,-2.87,-3,-3.04,-3.07,-3.1,-3.14,-3.17,-3.2,-3.23,-3.26,-3.29,-3.32,-3.35,-3.37,-3.4,-3.43,-3.45,-3.48,-3.5,-3.52,-3.55,-3.57,-3.59,-3.61,-3.628,-3.648,-3.666,-3.684,-3.702,-3.719,-3.735,-3.751,-3.766,-3.781,-3.795,-3.809,-3.822,-3.834,-3.846,-3.858,-3.869,-3.879,-3.889,-3.899,-3.908,-3.917,-3.925,-3.932,-3.94,-3.946,-3.953,-3.959,-3.964,-3.969,-3.974,-3.978,-3.982,-3.986,-3.989,-3.991,-3.994,-3.996,-3.997,-3.998,-3.999,-4,-4,-3.96,-3.86,-3.71,-3.5,-3.25,-2.98,-2.67,-2.36,-2.04,-1.72,-1.41,-1.12,-0.85,-0.61,-0.4,-0.23,-0.1,-0.03,0\r\r\nPARAM_ANGLE_Y=0,-0.38,-1.39,-2.93,-4.85,-7.07,-9.49,-12.07,-14.65,-17.28,-19.76,-22.12,-24.29,-26.2,-27.77,-28.97,-29.73,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.86,-29.47,-28.87,-28.1,-27.19,-26.17,-25.07,-23.93,-22.75,-21.55,-20.39,-19.26,-18.18,-17.2,-16.29,-15.52,-14.88,-14.41,-14.11,-14,-14.2,-14.74,-15.56,-16.59,-17.77,-19.06,-20.44,-21.81,-23.21,-24.54,-25.8,-26.95,-27.97,-28.81,-29.45,-29.86,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-29.73,-28.97,-27.79,-26.23,-24.39,-22.31,-20.05,-17.71,-15.31,-12.9,-10.58,-8.4,-6.36,-4.56,-2.99,-1.72,-0.79,-0.2,0\r\r\nPARAM_ANGLE_Z=0,-0.011,-0.04,-0.1,-0.18,-0.29,-0.42,-0.58,-0.77,-0.99,-1.24,-1.52,-1.84,-2.2,-2.59,-3.02,-3.49,-4,-4.83,-6.07,-7.67,-9.48,-11.35,-13.24,-15.29,-17.1,-18.56,-19.67,-20.43,-20.87,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-20.994,-20.97,-20.93,-20.86,-20.75,-20.62,-20.44,-20.23,-19.97,-19.65,-19.29,-18.87,-18.38,-17.84,-17.21,-16.53,-15.77,-14.94,-14.02,-13,-11.66,-10.22,-8.67,-7.09,-5.5,-3.91,-2.33,-0.84,0.62,1.94,3.16,4.25,5.19,5.95,6.52,6.88,7,6.97,6.89,6.75,6.57,6.33,6.05,5.72,5.36,4.96,4.52,4.04,3.54,3,2.44,1.85,1.23,0.59,-0.07,-0.73,-1.42,-2.13,-2.84,-3.57,-4.31,-5.04,-5.79,-6.53,-7.29,-8.02,-8.77,-9.51,-10.23,-10.95,-11.67,-12.37,-13.05,-13.72,-14.36,-14.99,-15.6,-16.19,-16.76,-17.29,-17.79,-18.27,-18.71,-19.12,-19.5,-19.84,-20.14,-20.39,-20.6,-20.77,-20.9,-20.97,-21,-20.95,-20.81,-20.59,-20.28,-19.9,-19.45,-18.93,-18.36,-17.73,-17.05,-16.34,-15.58,-14.8,-13.99,-13.17,-12.32,-11.47,-10.61,-9.75,-8.91,-8.06,-7.24,-6.44,-5.67,-4.92,-4.21,-3.55,-2.93,-2.35,-1.83,-1.37,-0.96,-0.63,-0.36,-0.16,-0.04,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,0.97,0.87,0.74,0.58,0.42,0.26,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1\r\r\nPARAM_EYE_BALL_X=0\r\r\nPARAM_EYE_BALL_Y=0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=1,1.001,1.004,1.009,1.016,1.024,1.034,1.046,1.058,1.073,1.089,1.106,1.124,1.143,1.163,1.18,1.21,1.23,1.25,1.28,1.3,1.33,1.35,1.38,1.4,1.43,1.46,1.48,1.51,1.54,1.56,1.59,1.62,1.64,1.67,1.69,1.72,1.74,1.76,1.79,1.81,1.83,1.848,1.867,1.886,1.903,1.918,1.933,1.946,1.958,1.969,1.978,1.986,1.992,1.996,1.999,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.03,0.1,0.21,0.35,0.52,0.71,0.9,1.1,1.29,1.48,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.04,0.14,0.28,0.46,0.66,0.87,1.08,1.28,1.47,1.65,1.79,1.9,1.97,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.003,0.012,0.027,0.05,0.08,0.12,0.17,0.23,0.3,0.39,0.48,0.59,0.71,0.85,1,1.29,1.57,1.79,1.94,2,1.87,1.59,1.23,0.87,0.53,0.25,0.07,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.736,0.7,0.64,0.58,0.5,0.42,0.35,0.27,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.736,0.7,0.64,0.58,0.5,0.42,0.35,0.27,0.2,0.13,0.08,0.04,0.01,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0.05,0.16,0.29,0.43,0.55,0.66,0.72,0.75,0.741,0.71,0.67,0.62,0.55,0.49,0.41,0.34,0.26,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.97,0.93,0.86,0.73,0.58,0.43,0.3,0.18,0.08,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.977,0.95,0.91,0.86,0.74,0.6,0.45,0.31,0.19,0.09,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,1,1,0.993,0.97,0.93,0.86,0.73,0.58,0.43,0.3,0.18,0.08,0.02,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.999,0.994,0.983,0.964,0.94,0.9,0.86,0.76,0.65,0.53,0.41,0.3,0.21,0.13,0.07,0.02,0.005,0,0,0,0.07,0.21,0.38,0.57,0.73,0.87,0.97,1,0.999,0.994,0.983,0.964,0.94,0.9,0.86,0.76,0.63,0.5,0.38,0.26,0.17,0.1,0.07,0.054,0.042,0.031,0.023,0.017,0.012,0.008,0.005,0.003,0.001,0.001,0,0,0\r\r\nPARAM_EAR_R=0\r\r\nPARAM_EAR_R_MOVE=0,-0.001,-0.003,-0.007,-0.013,-0.02,-0.03,-0.042,-0.055,-0.071,-0.089,-0.11,-0.13,-0.16,-0.19,-0.22,-0.25,-0.28,-0.32,-0.36,-0.41,-0.45,-0.5,-0.58,-0.68,-0.79,-0.9,-0.97,-1,-0.82,-0.54,-0.27,-0.08,0,-0.019,-0.07,-0.14,-0.23,-0.33,-0.43,-0.54,-0.64,-0.74,-0.82,-0.89,-0.95,-0.99,-1,-0.92,-0.74,-0.5,-0.26,-0.08,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.93,-0.75,-0.53,-0.32,-0.15,-0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_L=0\r\r\nPARAM_BODY_ANGLE_X=0,-0.1,-0.37,-0.78,-1.29,-1.89,-2.53,-3.22,-3.91,-4.61,-5.27,-5.9,-6.48,-6.99,-7.41,-7.72,-7.93,-8,-7.96,-7.85,-7.69,-7.49,-7.27,-7.03,-6.8,-6.58,-6.39,-6.22,-6.1,-6.03,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6,-6.07,-6.25,-6.51,-6.81,-7.12,-7.41,-7.65,-7.84,-7.96,-8,-7.96,-7.86,-7.69,-7.48,-7.21,-6.92,-6.59,-6.24,-5.88,-5.52,-5.15,-4.8,-4.46,-4.14,-3.84,-3.57,-3.34,-3.15,-3,-2.86,-2.71,-2.58,-2.45,-2.32,-2.2,-2.08,-1.97,-1.86,-1.76,-1.65,-1.56,-1.46,-1.37,-1.29,-1.21,-1.13,-1.05,-0.98,-0.91,-0.85,-0.78,-0.72,-0.67,-0.61,-0.56,-0.51,-0.47,-0.43,-0.39,-0.35,-0.31,-0.28,-0.25,-0.22,-0.19,-0.17,-0.15,-0.13,-0.106,-0.089,-0.074,-0.06,-0.048,-0.037,-0.028,-0.02,-0.014,-0.009,-0.005,-0.002,-0.001,0,-0.06,-0.22,-0.47,-0.78,-1.13,-1.5,-1.87,-2.22,-2.53,-2.78,-2.94,-3,-2.985,-2.94,-2.87,-2.79,-2.68,-2.55,-2.42,-2.27,-2.11,-1.95,-1.78,-1.61,-1.43,-1.27,-1.1,-0.94,-0.78,-0.64,-0.5,-0.38,-0.27,-0.18,-0.1,-0.05,-0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.29,-1.06,-2.24,-3.73,-5.46,-7.36,-9.41,-11.48,-13.63,-15.7,-17.71,-19.62,-21.38,-22.92,-24.24,-25.28,-26,-26.57,-27.02,-27.37,-27.63,-27.81,-27.93,-28,-28.04,-28.043,-28.035,-28.02,-28.006,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28.01,-28.024,-28.015,-27.96,-27.85,-27.66,-27.38,-27.01,-26.56,-26,-25.21,-24.35,-23.47,-22.53,-21.59,-20.64,-19.7,-18.79,-17.9,-17.05,-16.27,-15.56,-14.91,-14.35,-13.87,-13.5,-13.23,-13.06,-13,-13.03,-13.11,-13.23,-13.39,-13.59,-13.82,-14.08,-14.35,-14.65,-14.96,-15.28,-15.61,-15.95,-16.29,-16.63,-16.96,-17.29,-17.62,-17.93,-18.22,-18.51,-18.76,-19,-19.23,-19.44,-19.65,-19.85,-20.04,-20.22,-20.39,-20.55,-20.71,-20.86,-21.01,-21.15,-21.29,-21.43,-21.57,-21.71,-21.84,-21.98,-22.12,-22.27,-22.41,-22.56,-22.71,-22.87,-23.04,-23.22,-23.4,-23.59,-23.79,-24,-24.3,-24.74,-25.3,-25.95,-26.62,-27.32,-28.01,-28.63,-29.18,-29.62,-29.9,-30,-29.85,-29.42,-28.75,-27.85,-26.79,-25.54,-24.16,-22.68,-21.12,-19.47,-17.8,-16.08,-14.34,-12.66,-11,-9.37,-7.84,-6.38,-5.02,-3.8,-2.72,-1.79,-1.03,-0.47,-0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.008,0.012,0.016,0.021,0.026,0.032,0.039,0.046,0.053,0.061,0.07,0.079,0.088,0.098,0.108,0.119,0.13,0.141,0.153,0.165,0.178,0.191,0.204,0.217,0.231,0.245,0.259,0.274,0.288,0.303,0.318,0.334,0.349,0.365,0.38,0.396,0.412,0.428,0.444,0.46,0.476,0.492,0.508,0.524,0.54,0.556,0.572,0.588,0.604,0.62,0.635,0.651,0.666,0.682,0.697,0.712,0.726,0.741,0.755,0.769,0.783,0.796,0.809,0.822,0.835,0.847,0.859,0.87,0.881,0.892,0.902,0.912,0.921,0.93,0.939,0.947,0.954,0.961,0.968,0.974,0.979,0.984,0.988,0.992,0.995,0.997,0.999,1,1\r\r\nPARAM_BREATH=0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.013,0.05,0.1,0.17,0.26,0.35,0.44,0.54,0.63,0.72,0.8,0.87,0.92,0.96,0.99,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,0.991,0.97,0.93,0.87,0.81,0.74,0.66,0.58,0.5,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0.009,0.03,0.07,0.13,0.19,0.26,0.33,0.41,0.49,0.57,0.65,0.72,0.79,0.85,0.9,0.94,0.97,0.993,1,0.987,0.95,0.9,0.84,0.76,0.68,0.6,0.51,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.98,-0.93,-0.85,-0.75,-0.63,-0.51,-0.4,-0.29,-0.19,-0.11,-0.05,-0.01,0,-0.03,-0.11,-0.22,-0.35,-0.48,-0.61,-0.74,-0.84,-0.93,-0.98,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,-0.03,-0.13,-0.26,-0.42,-0.58,-0.74,-0.87,-0.97,-1,-0.64,-0.07,0.46,0.85,1,0.89,0.63,0.27,-0.08,-0.34,-0.45,-0.42,-0.34,-0.24,-0.14,-0.07,-0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.04,0.08,0.12,0.16,0.2,0.22,0.24,0.25,0.251,0.251,0.25,0.241,0.22,0.18,0.15,0.1,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014,0.04,0.08,0.12,0.16,0.2,0.22,0.24,0.25,0.251,0.251,0.25,0.241,0.22,0.18,0.15,0.1,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.18,-0.46,-0.73,-0.92,-1,-0.97,-0.91,-0.81,-0.69,-0.54,-0.38,-0.2,0,0.22,0.41,0.57,0.71,0.81,0.9,0.95,0.99,1,0.93,0.75,0.48,0.16,-0.16,-0.48,-0.75,-0.93,-1,-0.97,-0.89,-0.78,-0.65,-0.52,-0.39,-0.26,-0.16,-0.07,-0.02,0,-0.07,-0.25,-0.47,-0.68,-0.85,-0.96,-1,-0.988,-0.95,-0.89,-0.8,-0.69,-0.56,-0.4,-0.21,0,0.21,0.4,0.56,0.69,0.8,0.89,0.95,0.99,1,0.992,0.97,0.92,0.85,0.76,0.65,0.52,0.36,0.19,0,-0.35,-0.62,-0.82,-0.95,-1,-0.87,-0.59,-0.23,0.13,0.47,0.75,0.93,1,0.9,0.64,0.31,-0.03,-0.29,-0.39,-0.32,-0.21,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0,-0.02,-0.08,-0.18,-0.3,-0.44,-0.6,-0.77,-0.95,-1.13,-1.32,-1.5,-1.68,-1.85,-2,-2.14,-2.26,-2.36,-2.44,-2.48,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.5,-2.496,-2.483,-2.464,-2.44,-2.41,-2.38,-2.34,-2.31,-2.27,-2.24,-2.21,-2.19,-2.167,-2.154,-2.15,-2.157,-2.176,-2.2,-2.24,-2.28,-2.32,-2.36,-2.4,-2.43,-2.46,-2.48,-2.495,-2.5,-2.494,-2.476,-2.45,-2.41,-2.37,-2.32,-2.27,-2.23,-2.18,-2.13,-2.09,-2.05,-2.02,-2.006,-2,-2.017,-2.06,-2.13,-2.2,-2.28,-2.35,-2.41,-2.46,-2.49,-2.5,-2.483,-2.44,-2.37,-2.3,-2.22,-2.15,-2.09,-2.04,-2.01,-2,-2.017,-2.06,-2.13,-2.21,-2.29,-2.37,-2.44,-2.48,-2.5,-2.497,-2.487,-2.47,-2.44,-2.41,-2.37,-2.32,-2.26,-2.18,-2.1,-2,-1.88,-1.76,-1.65,-1.54,-1.44,-1.34,-1.24,-1.14,-1.05,-0.97,-0.88,-0.8,-0.73,-0.65,-0.59,-0.52,-0.46,-0.4,-0.35,-0.3,-0.25,-0.21,-0.17,-0.13,-0.1,-0.08,-0.05,-0.034,-0.019,-0.009,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nARM_R_MOVE_02=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.12,0.25,0.4,0.56,0.7,0.83,0.92,0.98,1,0.97,0.89,0.79,0.67,0.55,0.42,0.31,0.21,0.13,0.08,0.06,0.12,0.25,0.42,0.59,0.75,0.88,0.97,1,0.97,0.88,0.75,0.6,0.44,0.3,0.17,0.08,0.02,0,0.013,0.05,0.1,0.18,0.26,0.35,0.45,0.55,0.65,0.74,0.82,0.9,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.987,0.972,0.952,0.93,0.9,0.87,0.83,0.79,0.75,0.71,0.67,0.62,0.58,0.53,0.48,0.44,0.39,0.35,0.3,0.26,0.22,0.18,0.15,0.12,0.09,0.06,0.04,0.023,0.011,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/07.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,-0.011,-0.04,-0.1,-0.19,-0.31,-0.46,-0.65,-0.87,-1.13,-1.43,-1.76,-2.13,-2.55,-2.99,-3.48,-4,-4.73,-5.44,-6.1,-6.71,-7.27,-7.76,-8.19,-8.53,-8.78,-8.94,-9,-8.82,-8.37,-7.73,-6.95,-6.09,-5.19,-4.26,-3.37,-2.5,-1.71,-1,-0.33,0.23,0.74,1.2,1.61,2.02,2.42,2.83,3.28,3.78,4.34,5,5.83,6.86,8.01,9.21,10.35,11.39,12.23,12.79,13,12.96,12.84,12.65,12.39,12.07,11.69,11.26,10.79,10.28,9.74,9.18,8.6,8,7.31,6.67,6.05,5.46,4.92,4.39,3.9,3.44,3.01,2.61,2.25,1.9,1.59,1.31,1.06,0.83,0.64,0.46,0.32,0.2,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Y=0,-0.18,-0.68,-1.45,-2.44,-3.59,-4.86,-6.16,-7.49,-8.79,-10.03,-11.13,-12.11,-12.91,-13.5,-13.87,-14,-13.95,-13.77,-13.43,-12.88,-12.1,-11.07,-9.73,-8.11,-6.12,-3.79,-1,3.06,7.18,11.16,15.01,18.54,21.72,24.54,26.79,28.53,29.61,30,30,30,30,30,30,30,30,30,30,30,30,30,29.9,29.58,29,28.13,26.94,25.36,23.37,20.93,18,14.61,11.46,8.51,5.76,3.3,1.09,-0.82,-2.42,-3.72,-4.73,-5.44,-5.86,-6,-5.97,-5.88,-5.74,-5.55,-5.33,-5.06,-4.76,-4.45,-4.1,-3.74,-3.38,-3,-2.62,-2.26,-1.9,-1.55,-1.24,-0.94,-0.67,-0.45,-0.26,-0.12,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_ANGLE_Z=0,-0.002,-0.009,-0.02,-0.034,-0.051,-0.07,-0.1,-0.12,-0.15,-0.18,-0.21,-0.25,-0.28,-0.32,-0.36,-0.4,-0.44,-0.48,-0.51,-0.55,-0.59,-0.63,-0.67,-0.7,-0.74,-0.77,-0.81,-0.84,-0.86,-0.89,-0.91,-0.94,-0.955,-0.971,-0.983,-0.992,-0.998,-1,-0.86,-0.49,0.09,0.82,1.63,2.5,3.37,4.18,4.91,5.49,5.86,6,5.991,5.97,5.92,5.87,5.79,5.71,5.61,5.5,5.38,5.24,5.1,4.95,4.79,4.62,4.45,4.27,4.09,3.9,3.71,3.52,3.32,3.12,2.93,2.73,2.54,2.34,2.15,1.96,1.78,1.61,1.44,1.27,1.11,0.96,0.82,0.69,0.56,0.45,0.35,0.26,0.18,0.12,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.93,0.79,0.62,0.43,0.27,0.13,0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EYE_BALL_X=0,0.007,0.028,0.06,0.1,0.15,0.2,0.26,0.31,0.38,0.44,0.5,0.56,0.61,0.66,0.71,0.75,0.78,0.81,0.824,0.83,0.823,0.8,0.77,0.72,0.67,0.62,0.55,0.48,0.42,0.35,0.28,0.21,0.16,0.11,0.06,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_BALL_Y=0,0.009,0.03,0.07,0.12,0.18,0.24,0.31,0.38,0.45,0.53,0.6,0.67,0.74,0.8,0.86,0.91,0.94,0.97,0.993,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.993,0.985,0.975,0.961,0.946,0.927,0.907,0.88,0.86,0.84,0.81,0.78,0.75,0.72,0.69,0.66,0.62,0.59,0.55,0.52,0.49,0.45,0.42,0.39,0.35,0.32,0.29,0.26,0.23,0.2,0.18,0.15,0.13,0.1,0.08,0.065,0.049,0.034,0.022,0.013,0.006,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EYE_FORM=0\r\r\nPARAM_MOUTH_FORM=0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009,0.03,0.07,0.13,0.19,0.26,0.34,0.42,0.5,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.93,0.85,0.75,0.63,0.51,0.4,0.29,0.19,0.11,0.05,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.019,0.04,0.07,0.11,0.15,0.19,0.24,0.29,0.35,0.4,0.45,0.5,0.55,0.59,0.63,0.66,0.69,0.71,0.731,0.746,0.759,0.769,0.777,0.782,0.786,0.789,0.79,0.791,0.791,0.791,0.791,0.79,0.79,0.79,0.79,0.79,0.789,0.789,0.788,0.787,0.786,0.785,0.784,0.782,0.78,0.777,0.774,0.771,0.768,0.764,0.759,0.755,0.749,0.744,0.738,0.731,0.724,0.716,0.708,0.699,0.69,0.67,0.62,0.57,0.49,0.42,0.34,0.26,0.19,0.13,0.07,0.03,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.64,0.07,-0.46,-0.85,-1,-0.64,-0.07,0.46,0.85,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.06,-0.24,-0.52,-0.87,-1.28,-1.73,-2.2,-2.68,-3.14,-3.58,-3.98,-4.33,-4.61,-4.82,-4.96,-5,-4.995,-4.979,-4.95,-4.9,-4.84,-4.76,-4.66,-4.53,-4.38,-4.21,-4,-3.67,-3.29,-2.88,-2.45,-2.03,-1.62,-1.22,-0.86,-0.52,-0.24,0,0.22,0.41,0.59,0.75,0.91,1.06,1.2,1.35,1.5,1.66,1.82,2,2.18,2.35,2.51,2.65,2.77,2.86,2.94,2.98,3,2.97,2.89,2.77,2.62,2.44,2.25,2.04,1.84,1.64,1.45,1.28,1.13,1,0.86,0.73,0.62,0.52,0.43,0.36,0.29,0.24,0.19,0.15,0.11,0.08,0.06,0.04,0.026,0.015,0.008,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BODY_ANGLE_Y=0,-0.1,-0.39,-0.83,-1.39,-2.05,-2.78,-3.52,-4.28,-5.02,-5.73,-6.36,-6.92,-7.38,-7.72,-7.93,-8,-7.983,-7.93,-7.83,-7.69,-7.49,-7.24,-6.93,-6.56,-6.11,-5.6,-5,-4.14,-3.26,-2.37,-1.44,-0.49,0.49,1.52,2.56,3.67,4.8,6,7.36,8.72,10.12,11.48,12.77,13.99,15.11,16.06,16.87,17.48,17.86,18,17.81,17.28,16.43,15.31,13.98,12.43,10.73,8.9,7,5.02,3.3,1.79,0.49,-0.61,-1.53,-2.27,-2.86,-3.3,-3.63,-3.84,-3.96,-4,-3.97,-3.87,-3.72,-3.53,-3.3,-3.04,-2.77,-2.48,-2.19,-1.89,-1.6,-1.32,-1.05,-0.8,-0.57,-0.38,-0.22,-0.1,-0.03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.006,0.025,0.05,0.09,0.14,0.19,0.24,0.3,0.36,0.43,0.49,0.56,0.62,0.68,0.74,0.79,0.84,0.89,0.93,0.96,0.98,0.995,1,0.993,0.975,0.94,0.91,0.86,0.8,0.74,0.68,0.61,0.54,0.47,0.41,0.34,0.28,0.22,0.17,0.12,0.08,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984,0.996,1,0.995,0.98,0.96,0.93,0.89,0.84,0.79,0.74,0.68,0.62,0.56,0.5,0.44,0.38,0.32,0.26,0.21,0.16,0.11,0.07,0.04,0.02,0.005,0,0.004,0.016,0.034,0.06,0.09,0.13,0.17,0.21,0.26,0.31,0.36,0.42,0.47,0.53,0.58,0.64,0.69,0.74,0.79,0.83,0.87,0.91,0.94,0.97,0.984\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_HAND_R=0\r\r\nPARAM_HAND_L=0\r\r\nPARAM_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/motions/08.mtn",
    "content": "# Live2D Animator Motion Data\r\n$fps=30\r\n\r\n$fadein=1000\r\n\r\n$fadeout=1000\r\n\r\nPARAM_ANGLE_X=0,0.16,0.63,1.35,2.28,3.38,4.58,5.85,7.15,8.42,9.62,10.72,11.65,12.37,12.84,13,13.001,12.999,12.992,12.973,12.94,12.88,12.81,12.7,12.55,12.37,12.15,11.88,11.55,11.18,10.74,10.23,9.65,9,8.06,6.66,4.86,2.78,0.44,-2.01,-4.53,-7.05,-9.48,-11.75,-13.81,-15.52,-16.86,-17.7,-18,-17.97,-17.87,-17.69,-17.45,-17.13,-16.74,-16.28,-15.75,-15.14,-14.46,-13.71,-12.89,-12,-11.07,-10.05,-9,-7.7,-6.5,-5.38,-4.34,-3.42,-2.6,-1.89,-1.3,-0.83,-0.46,-0.2,-0.05,0\r\r\nPARAM_ANGLE_Y=0,0.18,0.7,1.53,2.61,3.94,5.43,7.07,8.82,10.64,12.5,14.38,16.19,17.94,19.55,21,22.3,23.47,24.52,25.45,26.26,26.97,27.6,28.13,28.58,28.95,29.25,29.49,29.67,29.81,29.9,29.96,29.99,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,29.74,29,27.84,26.33,24.55,22.55,20.45,18.25,16.03,13.83,11.75,9.77,7.96,6.4,5.05,4,2.97,2.15,1.5,0.99,0.61,0.35,0.17,0.06,0.01,-0.014,-0.013,-0.005,0\r\r\nPARAM_ANGLE_Z=0,-0.13,-0.5,-1.09,-1.85,-2.76,-3.76,-4.84,-5.95,-7.07,-8.16,-9.2,-10.13,-10.94,-11.57,-12,-12.31,-12.61,-12.89,-13.16,-13.41,-13.65,-13.87,-14.07,-14.27,-14.45,-14.62,-14.77,-14.92,-15.05,-15.17,-15.28,-15.38,-15.47,-15.56,-15.63,-15.69,-15.75,-15.8,-15.85,-15.88,-15.91,-15.94,-15.96,-15.976,-15.987,-15.995,-15.999,-16,-15.94,-15.76,-15.46,-15.08,-14.61,-14.06,-13.45,-12.78,-12.07,-11.32,-10.54,-9.75,-8.92,-8.11,-7.29,-6.47,-5.69,-4.91,-4.17,-3.47,-2.82,-2.22,-1.67,-1.19,-0.78,-0.45,-0.2,-0.05,0\r\r\nPARAM_EYE_L_OPEN=1\r\r\nPARAM_EYE_R_OPEN=1\r\r\nPARAM_EYE_BALL_X=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.995,0.979,0.95,0.92,0.88,0.83,0.77,0.71,0.65,0.58,0.51,0.43,0.36,0.29,0.21,0.14,0.06,-0.02,-0.09,-0.16,-0.23,-0.29,-0.35,-0.4,-0.46,-0.51,-0.55,-0.6,-0.64,-0.68,-0.71,-0.74,-0.77,-0.8,-0.83,-0.85,-0.869,-0.887,-0.902,-0.915,-0.926,-0.935,-0.942,-0.946,-0.949,-0.95,-0.932,-0.88,-0.82,-0.73,-0.64,-0.54,-0.44,-0.34,-0.25,-0.17,-0.1,-0.05,-0.01,0\r\r\nPARAM_EYE_BALL_Y=0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.981,0.93,0.86,0.77,0.67,0.57,0.46,0.36,0.26,0.18,0.11,0.05,0.01,0\r\r\nPARAM_EYE_FORM=0,-0.006,-0.023,-0.05,-0.08,-0.12,-0.16,-0.2,-0.24,-0.29,-0.33,-0.37,-0.4,-0.44,-0.46,-0.483,-0.496,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.49,-0.47,-0.43,-0.38,-0.33,-0.28,-0.23,-0.18,-0.13,-0.09,-0.05,-0.02,-0.006,0\r\r\nPARAM_MOUTH_FORM=0,0.003,0.011,0.025,0.043,0.07,0.09,0.12,0.16,0.19,0.23,0.28,0.32,0.36,0.41,0.46,0.51,0.55,0.6,0.65,0.7,0.74,0.78,0.83,0.87,0.9,0.94,0.97,0.99,1.02,1.035,1.049,1.057,1.06,0.8,0.38,0.09,0,0.011,0.05,0.14,0.26,0.45,0.73,1.01,1.29,1.52,1.67,1.73,1.723,1.704,1.67,1.63,1.58,1.52,1.45,1.38,1.3,1.22,1.14,1.05,0.96,0.88,0.79,0.7,0.61,0.53,0.45,0.38,0.31,0.24,0.18,0.13,0.08,0.05,0.02,0.006,0\r\r\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08,0.22,0.31,0.34,0.341,0.34,0.337,0.331,0.32,0.28,0.22,0.15,0.08,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_TONGUE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11,0.3,0.44,0.51,0.56,0.573,0.579,0.58,0.58,0.54,0.43,0.29,0.15,0.04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_EAR_R=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.47,-0.47,-1,-0.64,-0.07,0.46,0.85,1,0.47,-0.47,-1,-0.47,0.47,1,1,1,1\r\r\nPARAM_EAR_R_MOVE=0\r\r\nPARAM_EAR_L=1\r\r\nPARAM_BODY_ANGLE_X=0,-0.005,-0.02,-0.04,-0.08,-0.12,-0.17,-0.23,-0.3,-0.37,-0.45,-0.53,-0.63,-0.72,-0.82,-0.93,-1.04,-1.15,-1.27,-1.38,-1.5,-1.63,-1.75,-1.87,-2,-2.13,-2.25,-2.37,-2.5,-2.62,-2.73,-2.85,-2.96,-3.07,-3.18,-3.28,-3.38,-3.47,-3.55,-3.63,-3.7,-3.77,-3.83,-3.88,-3.92,-3.96,-3.98,-3.995,-4,-3.984,-3.94,-3.87,-3.77,-3.65,-3.52,-3.36,-3.2,-3.02,-2.83,-2.63,-2.44,-2.23,-2.03,-1.82,-1.62,-1.42,-1.23,-1.04,-0.87,-0.71,-0.55,-0.42,-0.3,-0.19,-0.11,-0.05,-0.01,0\r\r\nPARAM_BODY_ANGLE_Y=0,0.26,0.95,1.99,3.31,4.82,6.47,8.23,10.03,11.85,13.67,15.39,17.06,18.62,20,21.41,22.68,23.8,24.82,25.71,26.49,27.18,27.76,28.26,28.68,29.02,29.3,29.52,29.69,29.82,29.91,29.96,29.99,30,29.94,29.78,29.51,29.13,28.65,28.08,27.42,26.66,25.81,24.88,23.85,22.76,21.57,20.32,19,17.57,16.23,14.93,13.71,12.55,11.45,10.4,9.42,8.49,7.62,6.81,6.05,5.32,4.66,4.04,3.46,2.94,2.45,2.02,1.63,1.29,0.98,0.72,0.5,0.32,0.18,0.08,0.02,0\r\r\nPARAM_BIG_FACE=0\r\r\nPARAM_BODY=1\r\r\nPARAM_BREATH=0,0.019,0.07,0.14,0.23,0.33,0.43,0.54,0.64,0.74,0.82,0.89,0.95,0.99,1,0.987,0.95,0.9,0.82,0.74,0.65,0.55,0.45,0.35,0.26,0.18,0.1,0.05,0.01,0,0.013,0.05,0.1,0.16,0.24,0.32,0.4,0.49,0.58,0.66,0.74,0.81,0.87,0.93,0.97,0.99,1,0.987,0.95,0.9,0.83,0.74,0.65,0.56,0.46,0.37,0.28,0.2,0.13,0.08,0.04,0.01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\r\r\nPARAM_BLOW_R=0\r\r\nPARAM_BLOW_L=0\r\r\nPARAM_TAIL=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.005,0.019,0.039,0.06,0.09,0.12,0.14,0.17,0.2,0.22,0.24,0.251,0.252,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0.007,0.026,0.05,0.09,0.12,0.16,0.19,0.22,0.24,0.25,0.252,0.251,0.25,0.241,0.22,0.19,0.15,0.11,0.07,0.04,0.02,0.005,0,0,0,0,0,0,0\r\r\nPARAM_TAIL_ANGRY=0\r\r\nPARAM_MUSTACHE_FRONT_R=0\r\r\nPARAM_MUSTACHE_FRONT_L=0\r\r\nPARAM_ARM_L=0\r\r\nPARAM_HAND_L_MOVE=0\r\r\nPARAM_ARM_R_MOVE=0\r\r\nARM_R_MOVE_02=0\r\r\nVISIBLE:PARTS_01_ARM_R=0\r\r\nVISIBLE:PARTS_01_ARM_L=0\r\r\nVISIBLE:PARTS_01_ARM_R_02=1\r\r\nVISIBLE:PARTS_01_ARM_L_02=1\r"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/tom/tororo.pose.json",
    "content": "{\n    \"type\": \"Live2D Pose\",\n    \"fade_in\": 0,\n    \"parts_visible\": [\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_R\"\n        },\n        {\n            \"id\": \"PARTS_01_ARM_R_02\"\n        }]\n    },\n    {\n        \"group\": [\n        {\n            \"id\": \"PARTS_01_ARM_L\"\n        },\n        {\n            \"id\": \"PARTS_01_ARM_L_02\"\n        }]\n    }]\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/index.json",
    "content": "{\n\t\"type\": \"Live2D Model Setting\",\n\t\"name\": \"model\",\n\t\"model\": \"model.moc\",\n\t\"textures\": [\n\t\t\"texture_00.png\"\n\t],\n    \"layout\":{\n        \"center_x\":-0.1,\n        \"center_y\":0,\n        \"width\":2.3\n    },\n\t\"hit_areas_custom\":{\n\t\t\"head_x\":[-0.80, 0.85],\n\t\t\"head_y\":[-0.45, 0.45],\n\t\t\"body_x\":[-0.75, 0.45],\n\t\t\"body_y\":[-0.50, 0]\n\t},\n\t\"motions\":{\n\t\t\"idle\":[\n\t\t\t{\"file\":\"motions/Idle.mtn\"}\n\t\t],\n        \"sleepy\":[\n            {\"file\":\"motions/Nemui.mtn\"}\n        ],\n\t\t\"flick_head\":[\n\t\t\t{\"file\":\"motions/Anone_Synced.mtn\"}\n\t\t],\n\t\t\"tap_body\":[\n\t\t\t{\"file\":\"motions/Dance.mtn\"}\n\t\t]\n\t}\n}"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/motions/Anone_Synced.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=60.0\n\n$fadein=500\n\n$fadeout=500\n\nPARAM_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.027,0.103,0.221,0.38,0.573,0.795,1.035,1.299,1.575,1.859,2.141,2.425,2.701,2.965,3.205,3.427,3.62,3.779,3.897,3.973,4,3.959,3.839,3.644,3.38,3.049,2.664,2.216,1.715,1.166,0.573,-0.059,-0.727,-1.425,-2.137,-2.883,-3.647,-4.424,-5.21,-6,-6.79,-7.576,-8.353,-9.117,-9.863,-10.575,-11.273,-11.941,-12.573,-13.166,-13.715,-14.216,-14.664,-15.049,-15.38,-15.644,-15.839,-15.959,-16,-15.925,-15.709,-15.363,-14.9,-14.333,-13.673,-12.934,-12.127,-11.264,-10.359,-9.434,-8.48,-7.52,-6.566,-5.641,-4.736,-3.873,-3.066,-2.327,-1.667,-1.1,-0.637,-0.291,-0.075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.177,0.683,1.478,2.524,3.782,5.186,6.75,8.411,10.131,11.869,13.589,15.25,16.814,18.218,19.476,20.522,21.317,21.823,22,21.712,20.888,19.558,17.832,15.75,13.37,10.751,7.897,4.978,2,-0.978,-3.897,-6.751,-9.37,-11.75,-13.832,-15.558,-16.888,-17.712,-18,-17.83,-17.356,-16.582,-15.547,-14.311,-12.844,-11.202,-9.459,-7.559,-5.571,-3.574,-1.5,0.574,2.571,4.559,6.459,8.202,9.844,11.311,12.547,13.582,14.356,14.83,15,14.794,14.203,13.289,12.056,10.558,8.838,6.976,4.935,2.792,0.589,-1.589,-3.792,-5.935,-7.976,-9.838,-11.558,-13.056,-14.289,-15.203,-15.794,-16,-15.77,-15.111,-14.046,-12.666,-11,-9.096,-7.001,-4.718,-2.383,0,2.383,4.718,7.001,9.096,11,12.666,14.046,15.111,15.77,16,15.798,15.233,14.318,13.129,11.652,9.986,8.096,6.099,3.946,1.766,-0.5,-2.766,-4.946,-7.099,-9.096,-10.986,-12.652,-14.129,-15.318,-16.233,-16.798,-17,-16.892,-16.59,-16.098,-15.439,-14.652,-13.719,-12.674,-11.565,-10.355,-9.091,-7.82,-6.5,-5.18,-3.909,-2.645,-1.435,-0.326,0.719,1.652,2.439,3.098,3.59,3.892,4,3.959,3.839,3.644,3.38,3.049,2.664,2.216,1.715,1.166,0.573,-0.059,-0.727,-1.425,-2.137,-2.883,-3.647,-4.424,-5.21,-6,-6.79,-7.576,-8.353,-9.117,-9.863,-10.575,-11.273,-11.941,-12.573,-13.166,-13.715,-14.216,-14.664,-15.049,-15.38,-15.644,-15.839,-15.959,-16,-15.925,-15.709,-15.363,-14.9,-14.333,-13.673,-12.934,-12.127,-11.264,-10.359,-9.434,-8.48,-7.52,-6.566,-5.641,-4.736,-3.873,-3.066,-2.327,-1.667,-1.1,-0.637,-0.291,-0.075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.177,0.683,1.478,2.524,3.782,5.186,6.75,8.411,10.131,11.869,13.589,15.25,16.814,18.218,19.476,20.522,21.317,21.823,22,21.712,20.888,19.558,17.832,15.75,13.37,10.751,7.897,4.978,2,-0.978,-3.897,-6.751,-9.37,-11.75,-13.832,-15.558,-16.888,-17.712,-18,-17.83,-17.356,-16.582,-15.547,-14.311,-12.844,-11.202,-9.459,-7.559,-5.571,-3.574,-1.5,0.574,2.571,4.559,6.459,8.202,9.844,11.311,12.547,13.582,14.356,14.83,15,14.794,14.203,13.289,12.056,10.558,8.838,6.976,4.935,2.792,0.589,-1.589,-3.792,-5.935,-7.976,-9.838,-11.558,-13.056,-14.289,-15.203,-15.794,-16,-15.77,-15.111,-14.046,-12.666,-11,-9.096,-7.001,-4.718,-2.383,0,2.383,4.718,7.001,9.096,11,12.666,14.046,15.111,15.77,16,15.798,15.233,14.318,13.129,11.652,9.986,8.096,6.099,3.946,1.766,-0.5,-2.766,-4.946,-7.099,-9.096,-10.986,-12.652,-14.129,-15.318,-16.233,-16.798,-17,-16.896,-16.605,-16.134,-15.521,-14.76,-13.902,-12.928,-11.899,-10.79,-9.667,-8.5,-7.333,-6.21,-5.101,-4.072,-3.098,-2.24,-1.479,-0.866,-0.395,-0.104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.064,0.255,0.559,0.973,1.498,2.11,2.822,3.604,4.459,5.398,6.381,7.416,8.517,9.637,10.788,11.986,13.18,14.385,15.615,16.82,18.014,19.212,20.363,21.483,22.584,23.619,24.602,25.541,26.396,27.178,27.89,28.502,29.027,29.441,29.745,29.936,30,29.903,29.625,29.163,28.539,27.757,26.817,25.757,24.543,23.205,21.783,20.226,18.573,16.87,15.053,13.207,11.262,9.267,7.274,5.206,3.115,1.054,-1.054,-3.115,-5.206,-7.274,-9.267,-11.262,-13.207,-15.053,-16.87,-18.573,-20.226,-21.783,-23.205,-24.543,-25.757,-26.817,-27.757,-28.539,-29.163,-29.625,-29.903,-30,-29.995,-29.98,-29.955,-29.922,-29.878,-29.825,-29.763,-29.692,-29.612,-29.524,-29.427,-29.321,-29.207,-29.086,-28.956,-28.819,-28.675,-28.523,-28.36,-28.194,-28.02,-27.839,-27.652,-27.458,-27.258,-27.048,-26.836,-26.617,-26.392,-26.162,-25.927,-25.686,-25.435,-25.188,-24.928,-24.667,-24.401,-24.131,-23.857,-23.578,-23.295,-23.004,-22.714,-22.42,-22.123,-21.822,-21.518,-21.212,-20.897,-20.585,-20.27,-19.953,-19.634,-19.312,-18.989,-18.658,-18.331,-18.003,-17.673,-17.343,-17.011,-16.678,-16.339,-16.01,-15.67,-15.335,-15,-14.665,-14.33,-13.99,-13.661,-13.322,-12.989,-12.657,-12.327,-11.997,-11.669,-11.342,-11.011,-10.688,-10.366,-10.047,-9.73,-9.415,-9.103,-8.788,-8.482,-8.178,-7.877,-7.58,-7.286,-6.996,-6.705,-6.422,-6.143,-5.869,-5.599,-5.333,-5.072,-4.812,-4.565,-4.314,-4.073,-3.838,-3.608,-3.383,-3.164,-2.952,-2.742,-2.542,-2.348,-2.161,-1.98,-1.806,-1.64,-1.477,-1.325,-1.181,-1.044,-0.914,-0.793,-0.679,-0.573,-0.476,-0.388,-0.308,-0.237,-0.175,-0.122,-0.078,-0.045,-0.02,-0.005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Y=0,-0.337,-1.289,-2.769,-4.688,-6.958,-9.492,-12.202,-15,-17.798,-20.508,-23.042,-25.312,-27.231,-28.711,-29.663,-30,-29.777,-29.129,-28.072,-26.689,-24.936,-22.911,-20.625,-18.11,-15.399,-12.484,-9.519,-6.373,-3.203,0,3.203,6.373,9.519,12.484,15.399,18.11,20.625,22.911,24.936,26.689,28.072,29.129,29.777,30,29.986,29.944,29.876,29.778,29.65,29.492,29.308,29.089,28.84,28.558,28.251,27.904,27.525,27.111,26.673,26.191,25.674,25.121,24.543,23.918,23.255,22.555,21.816,21.054,20.238,19.382,18.486,17.568,16.591,15.572,14.51,13.429,12.282,11.092,9.857,8.605,7.281,5.912,4.496,3.064,1.556,0,-2.202,-5.358,-9.048,-12.65,-15.886,-18.143,-19,-18.38,-16.637,-13.895,-10.409,-6.254,-1.724,3.063,7.937,12.724,17.254,21.409,24.895,27.637,29.38,30,29.472,27.969,25.614,22.528,18.903,14.729,10.19,5.406,0.5,-4.406,-9.19,-13.729,-17.903,-21.528,-24.614,-26.969,-28.472,-29,-28.669,-27.745,-26.248,-24.302,-21.885,-19.158,-16.066,-12.798,-9.276,-5.707,-2,1.707,5.276,8.798,12.066,15.158,17.885,20.302,22.248,23.745,24.669,25,24.822,24.305,23.457,22.329,20.911,19.27,17.41,15.357,13.134,10.765,8.237,5.648,2.946,0.235,-2.5,-5.235,-7.946,-10.648,-13.237,-15.765,-18.134,-20.357,-22.41,-24.27,-25.911,-27.329,-28.457,-29.305,-29.822,-30,-28.344,-24.073,-18.143,-11.857,-5.927,-1.656,0,0,0,0,0,0,-0.003,-0.012,-0.027,-0.048,-0.075,-0.108,-0.146,-0.19,-0.239,-0.293,-0.352,-0.418,-0.488,-0.562,-0.643,-0.727,-0.816,-0.91,-1.008,-1.112,-1.219,-1.33,-1.448,-1.567,-1.69,-1.817,-1.948,-2.083,-2.224,-2.366,-2.511,-2.662,-2.814,-2.969,-3.127,-3.288,-3.455,-3.621,-3.791,-3.966,-4.14,-4.317,-4.497,-4.678,-4.862,-5.051,-5.239,-5.429,-5.624,-5.817,-6.012,-6.208,-6.406,-6.609,-6.809,-7.011,-7.217,-7.421,-7.625,-7.831,-8.037,-8.244,-8.455,-8.663,-8.871,-9.083,-9.291,-9.5,-9.709,-9.917,-10.129,-10.337,-10.545,-10.756,-10.963,-11.169,-11.375,-11.579,-11.783,-11.989,-12.191,-12.391,-12.594,-12.792,-12.988,-13.183,-13.376,-13.571,-13.761,-13.949,-14.138,-14.322,-14.503,-14.683,-14.86,-15.034,-15.209,-15.379,-15.545,-15.712,-15.873,-16.031,-16.186,-16.338,-16.489,-16.634,-16.776,-16.917,-17.052,-17.183,-17.31,-17.433,-17.552,-17.67,-17.781,-17.888,-17.992,-18.09,-18.184,-18.273,-18.357,-18.438,-18.512,-18.582,-18.648,-18.707,-18.761,-18.81,-18.854,-18.892,-18.925,-18.952,-18.973,-18.988,-18.997,-19,-18.38,-16.637,-13.895,-10.409,-6.254,-1.724,3.063,7.937,12.724,17.254,21.409,24.895,27.637,29.38,30,29.472,27.969,25.614,22.528,18.903,14.729,10.19,5.406,0.5,-4.406,-9.19,-13.729,-17.903,-21.528,-24.614,-26.969,-28.472,-29,-28.669,-27.745,-26.248,-24.302,-21.885,-19.158,-16.066,-12.798,-9.276,-5.707,-2,1.707,5.276,8.798,12.066,15.158,17.885,20.302,22.248,23.745,24.669,25,24.822,24.305,23.457,22.329,20.911,19.27,17.41,15.357,13.134,10.765,8.237,5.648,2.946,0.235,-2.5,-5.235,-7.946,-10.648,-13.237,-15.765,-18.134,-20.357,-22.41,-24.27,-25.911,-27.329,-28.457,-29.305,-29.822,-30,-28.344,-24.073,-18.143,-11.857,-5.927,-1.656,0,0,0,0,0,0,-0.002,-0.008,-0.018,-0.031,-0.049,-0.07,-0.095,-0.124,-0.156,-0.192,-0.232,-0.275,-0.322,-0.372,-0.426,-0.482,-0.543,-0.606,-0.674,-0.743,-0.818,-0.894,-0.974,-1.057,-1.143,-1.232,-1.324,-1.419,-1.516,-1.618,-1.721,-1.829,-1.937,-2.05,-2.164,-2.281,-2.401,-2.524,-2.649,-2.777,-2.907,-3.038,-3.175,-3.311,-3.452,-3.593,-3.739,-3.884,-4.032,-4.183,-4.336,-4.491,-4.648,-4.808,-4.967,-5.132,-5.294,-5.463,-5.63,-5.8,-5.972,-6.146,-6.321,-6.498,-6.677,-6.854,-7.038,-7.219,-7.406,-7.59,-7.779,-7.966,-8.156,-8.347,-8.539,-8.733,-8.927,-9.123,-9.317,-9.518,-9.714,-9.917,-10.115,-10.319,-10.519,-10.722,-10.926,-11.131,-11.336,-11.542,-11.749,-11.954,-12.164,-12.37,-12.581,-12.788,-13,-13.208,-13.418,-13.628,-13.839,-14.05,-14.261,-14.473,-14.681,-14.896,-15.104,-15.319,-15.527,-15.739,-15.95,-16.161,-16.372,-16.582,-16.792,-17,-17.212,-17.419,-17.63,-17.836,-18.046,-18.251,-18.458,-18.664,-18.869,-19.074,-19.278,-19.481,-19.681,-19.885,-20.083,-20.286,-20.482,-20.683,-20.877,-21.073,-21.267,-21.461,-21.653,-21.844,-22.034,-22.221,-22.41,-22.594,-22.781,-22.962,-23.146,-23.323,-23.502,-23.679,-23.854,-24.028,-24.2,-24.37,-24.537,-24.706,-24.868,-25.033,-25.192,-25.352,-25.509,-25.664,-25.817,-25.968,-26.116,-26.261,-26.407,-26.548,-26.689,-26.825,-26.962,-27.093,-27.223,-27.351,-27.476,-27.599,-27.719,-27.836,-27.95,-28.063,-28.171,-28.279,-28.382,-28.484,-28.581,-28.676,-28.768,-28.857,-28.943,-29.026,-29.106,-29.182,-29.257,-29.326,-29.394,-29.457,-29.518,-29.574,-29.628,-29.678,-29.725,-29.768,-29.808,-29.844,-29.876,-29.905,-29.93,-29.951,-29.969,-29.982,-29.992,-29.998,-30,-29.998,-29.992,-29.982,-29.969,-29.952,-29.93,-29.906,-29.878,-29.845,-29.809,-29.77,-29.728,-29.681,-29.632,-29.579,-29.522,-29.462,-29.399,-29.333,-29.263,-29.19,-29.114,-29.035,-28.952,-28.867,-28.78,-28.688,-28.593,-28.497,-28.396,-28.293,-28.188,-28.081,-27.969,-27.855,-27.739,-27.621,-27.497,-27.374,-27.248,-27.118,-26.986,-26.853,-26.718,-26.579,-26.437,-26.295,-26.149,-26.001,-25.852,-25.702,-25.547,-25.391,-25.234,-25.073,-24.911,-24.749,-24.585,-24.417,-24.247,-24.077,-23.904,-23.729,-23.555,-23.379,-23.2,-23.018,-22.838,-22.656,-22.468,-22.284,-22.098,-21.909,-21.718,-21.528,-21.338,-21.144,-20.948,-20.754,-20.557,-20.358,-20.161,-19.964,-19.762,-19.56,-19.36,-19.156,-18.952,-18.749,-18.546,-18.339,-18.132,-17.928,-17.722,-17.511,-17.304,-17.098,-16.888,-16.678,-16.47,-16.262,-16.051,-15.84,-15.632,-15.42,-15.209,-15,-14.791,-14.58,-14.368,-14.16,-13.949,-13.738,-13.53,-13.322,-13.112,-12.902,-12.696,-12.489,-12.278,-12.072,-11.868,-11.661,-11.454,-11.251,-11.048,-10.844,-10.64,-10.44,-10.238,-10.036,-9.839,-9.642,-9.443,-9.246,-9.052,-8.856,-8.662,-8.472,-8.282,-8.091,-7.902,-7.716,-7.532,-7.344,-7.162,-6.982,-6.8,-6.621,-6.445,-6.271,-6.096,-5.923,-5.753,-5.583,-5.415,-5.251,-5.089,-4.927,-4.766,-4.609,-4.453,-4.298,-4.148,-3.999,-3.851,-3.705,-3.563,-3.421,-3.282,-3.147,-3.014,-2.882,-2.752,-2.626,-2.503,-2.379,-2.261,-2.145,-2.031,-1.919,-1.812,-1.707,-1.604,-1.503,-1.407,-1.312,-1.22,-1.133,-1.048,-0.965,-0.886,-0.81,-0.737,-0.667,-0.601,-0.538,-0.478,-0.421,-0.368,-0.319,-0.272,-0.23,-0.191,-0.155,-0.122,-0.094,-0.07,-0.048,-0.031,-0.018,-0.008,-0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=0,-0.045,-0.172,-0.369,-0.625,-0.928,-1.266,-1.627,-2,-2.373,-2.734,-3.072,-3.375,-3.631,-3.828,-3.955,-4,-3.985,-3.942,-3.871,-3.779,-3.662,-3.527,-3.375,-3.207,-3.027,-2.832,-2.635,-2.425,-2.214,-2,-1.786,-1.575,-1.365,-1.168,-0.973,-0.793,-0.625,-0.473,-0.338,-0.221,-0.129,-0.058,-0.015,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.135,0.516,1.107,1.875,2.783,3.797,4.881,6,7.119,8.203,9.217,10.125,10.893,11.484,11.865,12,12,12,12.001,12.001,12.001,12.001,12.001,12,11.999,11.998,11.996,11.993,11.99,11.985,11.98,11.974,11.967,11.958,11.949,11.938,11.925,11.912,11.896,11.879,11.86,11.84,11.818,11.793,11.767,11.739,11.707,11.675,11.639,11.602,11.561,11.518,11.472,11.424,11.372,11.319,11.261,11.2,11.137,11.07,11,10.868,10.622,10.264,9.813,9.263,8.64,7.944,7.184,6.368,5.504,4.587,3.652,2.681,1.709,0.731,-0.245,-1.21,-2.17,-3.088,-3.983,-4.821,-5.606,-6.33,-6.985,-7.563,-8.062,-8.458,-8.756,-8.938,-9,-8.977,-8.894,-8.742,-8.502,-8.159,-7.706,-7.107,-6.379,-5.481,-4.407,-3.158,-1.67,0,1.795,3.568,5.311,7.014,8.67,10.24,11.776,13.238,14.617,15.907,17.096,18.178,19.143,19.968,20.677,21.243,21.658,21.913,22,21.705,20.861,19.497,17.728,15.594,13.154,10.47,7.545,4.553,1.5,-1.553,-4.545,-7.47,-10.154,-12.594,-14.728,-16.497,-17.861,-18.705,-19,-18.815,-18.297,-17.453,-16.324,-14.975,-13.375,-11.584,-9.682,-7.609,-5.441,-3.262,-1,1.262,3.441,5.609,7.682,9.584,11.375,12.975,14.324,15.453,16.297,16.815,17,16.747,16.022,14.903,13.391,11.556,9.447,7.165,4.662,2.036,-0.665,-3.335,-6.036,-8.662,-11.165,-13.447,-15.556,-17.391,-18.903,-20.022,-20.747,-21,-20.741,-20,-18.802,-17.249,-15.375,-13.233,-10.876,-8.308,-5.681,-3,-0.319,2.308,4.876,7.233,9.375,11.249,12.802,14,14.741,15,14.804,14.256,13.369,12.216,10.784,9.168,7.335,5.399,3.311,1.197,-1,-3.197,-5.311,-7.399,-9.335,-11.168,-12.784,-14.216,-15.369,-16.256,-16.804,-17,-16.767,-16.1,-15.052,-13.673,-12.015,-10.164,-8.102,-5.912,-3.646,-1.354,0.912,3.102,5.164,7.015,8.673,10.052,11.1,11.767,12,12,12,12.001,12.001,12.001,12.001,12.001,12,11.999,11.998,11.996,11.993,11.99,11.985,11.98,11.974,11.967,11.958,11.949,11.938,11.925,11.912,11.896,11.879,11.86,11.84,11.818,11.793,11.767,11.739,11.707,11.675,11.639,11.602,11.561,11.518,11.472,11.424,11.372,11.319,11.261,11.2,11.137,11.07,11,10.868,10.622,10.264,9.813,9.263,8.64,7.944,7.184,6.368,5.504,4.587,3.652,2.681,1.709,0.731,-0.245,-1.21,-2.17,-3.088,-3.983,-4.821,-5.606,-6.33,-6.985,-7.563,-8.062,-8.458,-8.756,-8.938,-9,-8.977,-8.894,-8.742,-8.502,-8.159,-7.706,-7.107,-6.379,-5.481,-4.407,-3.158,-1.67,0,1.795,3.568,5.311,7.014,8.67,10.24,11.776,13.238,14.617,15.907,17.096,18.178,19.143,19.968,20.677,21.243,21.658,21.913,22,21.705,20.861,19.497,17.728,15.594,13.154,10.47,7.545,4.553,1.5,-1.553,-4.545,-7.47,-10.154,-12.594,-14.728,-16.497,-17.861,-18.705,-19,-18.815,-18.297,-17.453,-16.324,-14.975,-13.375,-11.584,-9.682,-7.609,-5.441,-3.262,-1,1.262,3.441,5.609,7.682,9.584,11.375,12.975,14.324,15.453,16.297,16.815,17,16.747,16.022,14.903,13.391,11.556,9.447,7.165,4.662,2.036,-0.665,-3.335,-6.036,-8.662,-11.165,-13.447,-15.556,-17.391,-18.903,-20.022,-20.747,-21,-20.741,-20,-18.802,-17.249,-15.375,-13.233,-10.876,-8.308,-5.681,-3,-0.319,2.308,4.876,7.233,9.375,11.249,12.802,14,14.741,15,14.804,14.256,13.369,12.216,10.784,9.168,7.335,5.399,3.311,1.197,-1,-3.197,-5.311,-7.399,-9.335,-11.168,-12.784,-14.216,-15.369,-16.256,-16.804,-17,-16.904,-16.634,-16.197,-15.627,-14.916,-14.113,-13.198,-12.228,-11.177,-10.107,-8.989,-7.862,-6.768,-5.677,-4.65,-3.662,-2.771,-1.955,-1.265,-0.689,-0.268,0,0.177,0.354,0.529,0.704,0.877,1.05,1.222,1.392,1.562,1.73,1.898,2.065,2.23,2.394,2.558,2.72,2.881,3.041,3.2,3.357,3.514,3.669,3.823,3.976,4.13,4.278,4.429,4.574,4.723,4.866,5.012,5.152,5.295,5.433,5.573,5.708,5.845,5.977,6.112,6.241,6.373,6.501,6.627,6.752,6.876,6.998,7.118,7.237,7.354,7.47,7.584,7.696,7.807,7.916,8.023,8.129,8.233,8.335,8.435,8.534,8.631,8.726,8.819,8.91,9,9.089,9.174,9.259,9.341,9.422,9.503,9.58,9.657,9.732,9.804,9.877,9.948,10.015,10.083,10.148,10.213,10.276,10.337,10.397,10.456,10.513,10.569,10.623,10.677,10.729,10.779,10.828,10.877,10.923,10.969,11.012,11.056,11.098,11.138,11.178,11.216,11.253,11.289,11.324,11.358,11.391,11.422,11.453,11.483,11.511,11.539,11.566,11.591,11.616,11.64,11.663,11.685,11.706,11.726,11.746,11.764,11.782,11.798,11.814,11.83,11.844,11.858,11.871,11.883,11.894,11.905,11.915,11.925,11.934,11.942,11.95,11.957,11.963,11.969,11.974,11.979,11.983,11.987,11.99,11.993,11.995,11.997,11.998,11.999,12,12,11.98,11.92,11.822,11.687,11.517,11.312,11.075,10.805,10.505,10.176,9.819,9.436,9.027,8.594,8.139,7.662,7.165,6.65,6.116,5.567,5.003,4.425,3.826,3.234,2.614,2.004,1.368,0.745,0.098,-0.532,-1.184,-1.816,-2.468,-3.098,-3.745,-4.368,-5.004,-5.614,-6.234,-6.826,-7.425,-8.003,-8.567,-9.116,-9.65,-10.165,-10.662,-11.139,-11.594,-12.027,-12.436,-12.819,-13.176,-13.505,-13.805,-14.075,-14.312,-14.517,-14.687,-14.822,-14.92,-14.98,-15,-14.989,-14.958,-14.907,-14.837,-14.748,-14.64,-14.516,-14.375,-14.217,-14.045,-13.857,-13.656,-13.441,-13.213,-12.973,-12.722,-12.46,-12.187,-11.906,-11.615,-11.316,-11.01,-10.697,-10.377,-10.047,-9.722,-9.383,-9.05,-8.704,-8.366,-8.016,-7.676,-7.324,-6.984,-6.634,-6.296,-5.95,-5.617,-5.278,-4.953,-4.623,-4.303,-3.99,-3.684,-3.385,-3.094,-2.813,-2.54,-2.278,-2.027,-1.787,-1.559,-1.344,-1.143,-0.955,-0.783,-0.625,-0.484,-0.36,-0.252,-0.163,-0.093,-0.042,-0.011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.672,-1.147,-1.719,-2.357,-3.068,-3.823,-4.605,-5.395,-6.177,-6.932,-7.643,-8.281,-8.853,-9.328,-9.69,-9.92,-10,-9.856,-9.444,-8.779,-7.916,-6.875,-5.685,-4.376,-2.949,-1.489,0,1.489,2.949,4.376,5.685,6.875,7.916,8.779,9.444,9.856,10,9.839,9.38,8.657,7.706,6.562,5.286,3.863,2.353,0.79,-0.79,-2.353,-3.863,-5.286,-6.562,-7.706,-8.657,-9.38,-9.839,-10,-9.906,-9.636,-9.204,-8.625,-7.916,-7.092,-6.167,-5.159,-4.081,-2.949,-1.793,-0.6,0.6,1.793,2.949,4.081,5.159,6.167,7.092,7.916,8.625,9.204,9.636,9.906,10,9.867,9.486,8.896,8.1,7.134,6.025,4.823,3.507,2.124,0.703,-0.703,-2.124,-3.507,-4.823,-6.025,-7.134,-8.1,-8.896,-9.486,-9.867,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.722,8.967,7.83,6.474,5,3.526,2.17,1.033,0.278,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.672,-1.147,-1.719,-2.357,-3.068,-3.823,-4.605,-5.395,-6.177,-6.932,-7.643,-8.281,-8.853,-9.328,-9.69,-9.92,-10,-9.856,-9.444,-8.779,-7.916,-6.875,-5.685,-4.376,-2.949,-1.489,0,1.489,2.949,4.376,5.685,6.875,7.916,8.779,9.444,9.856,10,9.839,9.38,8.657,7.706,6.562,5.286,3.863,2.353,0.79,-0.79,-2.353,-3.863,-5.286,-6.562,-7.706,-8.657,-9.38,-9.839,-10,-9.906,-9.636,-9.204,-8.625,-7.916,-7.092,-6.167,-5.159,-4.081,-2.949,-1.793,-0.6,0.6,1.793,2.949,4.081,5.159,6.167,7.092,7.916,8.625,9.204,9.636,9.906,10,9.867,9.486,8.896,8.1,7.134,6.025,4.823,3.507,2.124,0.703,-0.703,-2.124,-3.507,-4.823,-6.025,-7.134,-8.1,-8.896,-9.486,-9.867,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.955,9.828,9.621,9.348,9.005,8.614,8.163,7.678,7.146,6.596,6.01,5.406,4.806,4.19,3.59,2.987,2.414,1.852,1.333,0.839,0.399,0,-0.364,-0.707,-1.047,-1.374,-1.683,-1.987,-2.28,-2.556,-2.827,-3.088,-3.332,-3.572,-3.801,-4.016,-4.226,-4.427,-4.614,-4.796,-4.969,-5.13,-5.286,-5.434,-5.571,-5.703,-5.827,-5.941,-6.05,-6.152,-6.245,-6.334,-6.416,-6.49,-6.56,-6.623,-6.68,-6.732,-6.779,-6.82,-6.857,-6.89,-6.917,-6.94,-6.959,-6.974,-6.986,-6.994,-6.998,-7,-6.875,-6.518,-5.959,-5.227,-4.367,-3.376,-2.299,-1.164,0,1.164,2.299,3.376,4.367,5.227,5.959,6.518,6.875,7,6.98,6.92,6.822,6.689,6.523,6.322,6.095,5.84,5.56,5.257,4.932,4.581,4.219,3.841,3.442,3.039,2.625,2.204,1.778,1.34,0.907,0.475,0.038,-0.388,-0.808,-1.22,-1.622,-2.012,-2.394,-2.754,-3.096,-3.424,-3.724,-4,-4.26,-4.512,-4.761,-4.999,-5.233,-5.456,-5.673,-5.882,-6.085,-6.281,-6.474,-6.657,-6.836,-7.007,-7.172,-7.33,-7.483,-7.632,-7.773,-7.91,-8.04,-8.165,-8.285,-8.399,-8.508,-8.614,-8.714,-8.81,-8.9,-8.986,-9.067,-9.144,-9.218,-9.287,-9.353,-9.413,-9.471,-9.524,-9.574,-9.621,-9.665,-9.705,-9.742,-9.776,-9.807,-9.835,-9.861,-9.884,-9.905,-9.923,-9.939,-9.953,-9.965,-9.975,-9.983,-9.989,-9.994,-9.998,-9.999,-10,-9.988,-9.954,-9.896,-9.816,-9.717,-9.596,-9.455,-9.294,-9.118,-8.921,-8.707,-8.48,-8.234,-7.972,-7.701,-7.411,-7.108,-6.798,-6.47,-6.132,-5.783,-5.43,-5.063,-4.693,-4.309,-3.918,-3.52,-3.124,-2.716,-2.303,-1.894,-1.475,-1.053,-0.63,-0.212,0.212,0.63,1.053,1.475,1.894,2.303,2.716,3.124,3.52,3.918,4.309,4.693,5.063,5.43,5.783,6.132,6.47,6.798,7.108,7.411,7.701,7.972,8.234,8.48,8.707,8.921,9.118,9.294,9.455,9.596,9.717,9.816,9.896,9.954,9.988,10,9.987,9.95,9.888,9.802,9.698,9.57,9.423,9.261,9.077,8.877,8.667,8.438,8.195,7.946,7.681,7.405,7.128,6.836,6.538,6.241,5.933,5.621,5.315,5,4.685,4.379,4.067,3.759,3.462,3.164,2.872,2.595,2.319,2.054,1.805,1.562,1.333,1.123,0.923,0.739,0.577,0.43,0.302,0.198,0.112,0.05,0.013,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BODY_ANGLE_Y=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-7.974,-7.899,-7.776,-7.611,-7.405,-7.166,-6.896,-6.597,-6.274,-5.929,-5.562,-5.185,-4.792,-4.398,-4,-3.602,-3.208,-2.815,-2.438,-2.071,-1.726,-1.403,-1.104,-0.834,-0.595,-0.389,-0.224,-0.101,-0.026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.552,-1.976,-3.952,-6.048,-8.024,-9.448,-10,-9.747,-9.035,-7.916,-6.493,-4.797,-2.949,-0.995,0.995,2.949,4.797,6.493,7.916,9.035,9.747,10,9.821,9.312,8.513,7.467,6.238,4.823,3.285,1.663,0,-1.663,-3.285,-4.823,-6.238,-7.467,-8.513,-9.312,-9.821,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.839,9.38,8.657,7.706,6.562,5.286,3.863,2.353,0.79,-0.79,-2.353,-3.863,-5.286,-6.562,-7.706,-8.657,-9.38,-9.839,-10,-9.91,-9.656,-9.257,-8.733,-8.119,-7.412,-6.642,-5.832,-5,-4.168,-3.358,-2.588,-1.881,-1.267,-0.743,-0.344,-0.09,0,-0.001,-0.006,-0.013,-0.024,-0.037,-0.053,-0.072,-0.093,-0.118,-0.144,-0.174,-0.206,-0.24,-0.278,-0.317,-0.359,-0.404,-0.45,-0.499,-0.55,-0.603,-0.659,-0.717,-0.776,-0.838,-0.902,-0.968,-1.035,-1.105,-1.175,-1.249,-1.323,-1.4,-1.478,-1.557,-1.639,-1.722,-1.805,-1.891,-1.979,-2.066,-2.156,-2.247,-2.338,-2.432,-2.525,-2.621,-2.718,-2.814,-2.913,-3.012,-3.111,-3.212,-3.314,-3.415,-3.519,-3.621,-3.725,-3.831,-3.934,-4.04,-4.147,-4.252,-4.359,-4.464,-4.572,-4.678,-4.786,-4.894,-5,-5.106,-5.214,-5.322,-5.428,-5.534,-5.641,-5.746,-5.853,-5.958,-6.062,-6.168,-6.271,-6.376,-6.478,-6.58,-6.681,-6.783,-6.882,-6.981,-7.079,-7.176,-7.274,-7.369,-7.464,-7.557,-7.649,-7.74,-7.83,-7.919,-8.006,-8.093,-8.177,-8.261,-8.342,-8.422,-8.502,-8.579,-8.654,-8.728,-8.801,-8.871,-8.94,-9.008,-9.073,-9.137,-9.198,-9.257,-9.315,-9.37,-9.424,-9.475,-9.524,-9.57,-9.616,-9.658,-9.698,-9.736,-9.771,-9.804,-9.835,-9.863,-9.889,-9.912,-9.932,-9.95,-9.965,-9.978,-9.987,-9.994,-9.999,-10,-9.747,-9.035,-7.916,-6.493,-4.797,-2.949,-0.995,0.995,2.949,4.797,6.493,7.916,9.035,9.747,10,9.821,9.312,8.513,7.467,6.238,4.823,3.285,1.663,0,-1.663,-3.285,-4.823,-6.238,-7.467,-8.513,-9.312,-9.821,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.839,9.38,8.657,7.706,6.562,5.286,3.863,2.353,0.79,-0.79,-2.353,-3.863,-5.286,-6.562,-7.706,-8.657,-9.38,-9.839,-10,-9.91,-9.656,-9.257,-8.733,-8.119,-7.412,-6.642,-5.832,-5,-4.168,-3.358,-2.588,-1.881,-1.267,-0.743,-0.344,-0.09,0,-0,-0.001,-0.002,-0.004,-0.005,-0.008,-0.011,-0.014,-0.018,-0.022,-0.026,-0.031,-0.036,-0.042,-0.048,-0.054,-0.061,-0.068,-0.075,-0.083,-0.091,-0.1,-0.109,-0.118,-0.128,-0.138,-0.148,-0.158,-0.169,-0.181,-0.192,-0.204,-0.216,-0.229,-0.241,-0.254,-0.268,-0.281,-0.295,-0.309,-0.324,-0.338,-0.353,-0.368,-0.384,-0.4,-0.415,-0.431,-0.448,-0.465,-0.481,-0.498,-0.516,-0.533,-0.551,-0.569,-0.587,-0.605,-0.624,-0.642,-0.661,-0.68,-0.7,-0.719,-0.738,-0.758,-0.778,-0.798,-0.818,-0.838,-0.859,-0.879,-0.9,-0.92,-0.942,-0.962,-0.983,-1.005,-1.026,-1.047,-1.069,-1.09,-1.112,-1.134,-1.156,-1.178,-1.2,-1.222,-1.243,-1.266,-1.288,-1.31,-1.332,-1.355,-1.377,-1.4,-1.421,-1.444,-1.466,-1.489,-1.511,-1.534,-1.556,-1.579,-1.6,-1.623,-1.645,-1.668,-1.69,-1.712,-1.734,-1.757,-1.778,-1.8,-1.822,-1.844,-1.866,-1.888,-1.91,-1.931,-1.953,-1.974,-1.995,-2.017,-2.038,-2.058,-2.08,-2.1,-2.121,-2.141,-2.162,-2.182,-2.202,-2.222,-2.242,-2.262,-2.281,-2.3,-2.32,-2.339,-2.358,-2.376,-2.395,-2.413,-2.431,-2.449,-2.467,-2.484,-2.502,-2.519,-2.535,-2.552,-2.569,-2.585,-2.6,-2.616,-2.632,-2.647,-2.662,-2.676,-2.691,-2.705,-2.719,-2.732,-2.746,-2.759,-2.771,-2.784,-2.796,-2.808,-2.819,-2.831,-2.842,-2.852,-2.862,-2.872,-2.882,-2.891,-2.9,-2.909,-2.917,-2.925,-2.932,-2.939,-2.946,-2.952,-2.958,-2.964,-2.969,-2.974,-2.978,-2.982,-2.986,-2.989,-2.992,-2.995,-2.996,-2.998,-2.999,-3,-3,-2.997,-2.987,-2.971,-2.95,-2.922,-2.89,-2.851,-2.809,-2.761,-2.71,-2.654,-2.594,-2.531,-2.465,-2.395,-2.323,-2.248,-2.17,-2.092,-2.009,-1.928,-1.843,-1.758,-1.673,-1.586,-1.5,-1.414,-1.327,-1.242,-1.157,-1.072,-0.991,-0.908,-0.83,-0.752,-0.677,-0.605,-0.535,-0.469,-0.406,-0.346,-0.29,-0.239,-0.191,-0.149,-0.11,-0.078,-0.05,-0.029,-0.013,-0.003,-0,-0,-0.002,-0.004,-0.007,-0.011,-0.016,-0.022,-0.029,-0.036,-0.044,-0.054,-0.064,-0.074,-0.086,-0.098,-0.112,-0.126,-0.141,-0.156,-0.172,-0.189,-0.207,-0.226,-0.245,-0.265,-0.286,-0.307,-0.329,-0.352,-0.376,-0.4,-0.425,-0.451,-0.476,-0.503,-0.531,-0.559,-0.588,-0.617,-0.647,-0.678,-0.709,-0.74,-0.773,-0.806,-0.839,-0.872,-0.907,-0.942,-0.978,-1.014,-1.05,-1.087,-1.125,-1.163,-1.201,-1.24,-1.28,-1.319,-1.36,-1.4,-1.442,-1.484,-1.525,-1.567,-1.61,-1.654,-1.697,-1.741,-1.785,-1.83,-1.876,-1.921,-1.966,-2.012,-2.059,-2.105,-2.152,-2.199,-2.247,-2.294,-2.343,-2.391,-2.44,-2.489,-2.537,-2.586,-2.636,-2.686,-2.736,-2.785,-2.836,-2.887,-2.938,-2.988,-3.039,-3.09,-3.142,-3.193,-3.244,-3.296,-3.348,-3.399,-3.451,-3.503,-3.556,-3.608,-3.66,-3.712,-3.764,-3.817,-3.869,-3.921,-3.974,-4.026,-4.079,-4.131,-4.183,-4.236,-4.288,-4.34,-4.392,-4.444,-4.497,-4.549,-4.601,-4.652,-4.704,-4.756,-4.807,-4.858,-4.91,-4.961,-5.012,-5.062,-5.113,-5.164,-5.215,-5.264,-5.314,-5.364,-5.414,-5.463,-5.511,-5.56,-5.609,-5.657,-5.706,-5.753,-5.801,-5.848,-5.895,-5.941,-5.988,-6.034,-6.079,-6.124,-6.17,-6.215,-6.259,-6.303,-6.346,-6.39,-6.433,-6.475,-6.516,-6.558,-6.6,-6.64,-6.681,-6.72,-6.76,-6.799,-6.837,-6.875,-6.913,-6.95,-6.986,-7.022,-7.058,-7.093,-7.128,-7.161,-7.194,-7.227,-7.26,-7.291,-7.322,-7.353,-7.383,-7.412,-7.441,-7.469,-7.497,-7.524,-7.549,-7.575,-7.6,-7.624,-7.648,-7.671,-7.693,-7.714,-7.735,-7.755,-7.774,-7.793,-7.811,-7.828,-7.844,-7.859,-7.874,-7.888,-7.902,-7.914,-7.926,-7.936,-7.946,-7.956,-7.964,-7.971,-7.978,-7.984,-7.989,-7.993,-7.996,-7.998,-8,-8\nBODY_STRETCH=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.672,-1.147,-1.719,-2.357,-3.068,-3.823,-4.605,-5.395,-6.177,-6.932,-7.643,-8.281,-8.853,-9.328,-9.69,-9.92,-10,-9.856,-9.444,-8.779,-7.916,-6.875,-5.685,-4.376,-2.949,-1.489,0,1.489,2.949,4.376,5.685,6.875,7.916,8.779,9.444,9.856,10,9.89,9.573,9.062,8.397,7.568,6.63,5.561,4.429,3.201,1.952,0.644,-0.644,-1.952,-3.201,-4.429,-5.561,-6.63,-7.568,-8.397,-9.062,-9.573,-9.89,-10,-9.821,-9.312,-8.513,-7.467,-6.238,-4.823,-3.285,-1.663,0,1.663,3.285,4.823,6.238,7.467,8.513,9.312,9.821,10,9.897,9.609,9.141,8.513,7.764,6.875,5.88,4.823,3.672,2.467,1.257,0,-1.257,-2.467,-3.672,-4.823,-5.88,-6.875,-7.764,-8.513,-9.141,-9.609,-9.897,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.991,9.966,9.925,9.868,9.797,9.712,9.611,9.497,9.373,9.236,9.086,8.927,8.759,8.578,8.388,8.192,7.988,7.774,7.557,7.333,7.101,6.863,6.625,6.383,6.134,5.886,5.636,5.381,5.128,4.872,4.619,4.364,4.114,3.866,3.617,3.375,3.137,2.899,2.667,2.443,2.226,2.012,1.808,1.612,1.422,1.241,1.073,0.914,0.764,0.627,0.503,0.389,0.288,0.203,0.132,0.075,0.034,0.009,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.08,-0.31,-0.672,-1.147,-1.719,-2.357,-3.068,-3.823,-4.605,-5.395,-6.177,-6.932,-7.643,-8.281,-8.853,-9.328,-9.69,-9.92,-10,-9.856,-9.444,-8.779,-7.916,-6.875,-5.685,-4.376,-2.949,-1.489,0,1.489,2.949,4.376,5.685,6.875,7.916,8.779,9.444,9.856,10,9.89,9.573,9.062,8.397,7.568,6.63,5.561,4.429,3.201,1.952,0.644,-0.644,-1.952,-3.201,-4.429,-5.561,-6.63,-7.568,-8.397,-9.062,-9.573,-9.89,-10,-9.821,-9.312,-8.513,-7.467,-6.238,-4.823,-3.285,-1.663,0,1.663,3.285,4.823,6.238,7.467,8.513,9.312,9.821,10,9.897,9.609,9.141,8.513,7.764,6.875,5.88,4.823,3.672,2.467,1.257,0,-1.257,-2.467,-3.672,-4.823,-5.88,-6.875,-7.764,-8.513,-9.141,-9.609,-9.897,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.955,9.827,9.618,9.344,9,8.606,8.153,7.667,7.133,6.58,5.992,5.388,4.786,4.169,3.569,2.967,2.395,1.836,1.318,0.828,0.393,0,-0.356,-0.705,-1.045,-1.378,-1.703,-2.02,-2.33,-2.632,-2.927,-3.214,-3.498,-3.771,-4.037,-4.295,-4.547,-4.792,-5.029,-5.261,-5.485,-5.703,-5.914,-6.12,-6.321,-6.514,-6.7,-6.88,-7.054,-7.222,-7.385,-7.541,-7.692,-7.837,-7.977,-8.111,-8.24,-8.363,-8.482,-8.595,-8.703,-8.806,-8.904,-8.998,-9.087,-9.172,-9.251,-9.326,-9.397,-9.463,-9.524,-9.582,-9.636,-9.685,-9.731,-9.772,-9.81,-9.845,-9.876,-9.903,-9.926,-9.946,-9.963,-9.976,-9.987,-9.994,-9.999,-10,-9.992,-9.968,-9.929,-9.875,-9.807,-9.725,-9.629,-9.52,-9.398,-9.265,-9.119,-8.962,-8.794,-8.619,-8.431,-8.234,-8.028,-7.812,-7.589,-7.358,-7.12,-6.876,-6.629,-6.372,-6.11,-5.842,-5.57,-5.294,-5.015,-4.732,-4.447,-4.164,-3.875,-3.584,-3.292,-3,-2.708,-2.416,-2.125,-1.836,-1.553,-1.268,-0.985,-0.706,-0.43,-0.158,0.11,0.372,0.629,0.876,1.12,1.358,1.589,1.812,2.028,2.234,2.431,2.619,2.794,2.962,3.119,3.265,3.398,3.52,3.629,3.725,3.807,3.875,3.929,3.968,3.992,4,3.999,3.998,3.995,3.991,3.985,3.979,3.971,3.963,3.953,3.942,3.931,3.918,3.904,3.89,3.874,3.857,3.839,3.821,3.802,3.781,3.76,3.738,3.716,3.692,3.668,3.642,3.616,3.589,3.562,3.534,3.505,3.476,3.445,3.415,3.383,3.351,3.318,3.285,3.251,3.217,3.182,3.147,3.111,3.075,3.038,3.001,2.963,2.925,2.886,2.848,2.809,2.769,2.73,2.69,2.649,2.608,2.567,2.526,2.485,2.443,2.402,2.36,2.318,2.276,2.234,2.192,2.149,2.106,2.064,2.021,1.979,1.936,1.894,1.851,1.808,1.766,1.724,1.682,1.64,1.598,1.557,1.515,1.474,1.433,1.392,1.351,1.31,1.27,1.231,1.191,1.152,1.114,1.075,1.037,0.999,0.962,0.925,0.889,0.853,0.818,0.783,0.749,0.715,0.682,0.649,0.617,0.585,0.555,0.524,0.495,0.466,0.438,0.411,0.384,0.358,0.332,0.308,0.284,0.262,0.24,0.219,0.198,0.179,0.161,0.143,0.126,0.11,0.096,0.082,0.069,0.058,0.047,0.037,0.029,0.021,0.015,0.009,0.005,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BREATH=-0,0,0.001,0.003,0.005,0.008,0.012,0.016,0.021,0.026,0.032,0.039,0.046,0.053,0.061,0.07,0.079,0.088,0.098,0.108,0.119,0.13,0.141,0.153,0.165,0.178,0.191,0.204,0.217,0.231,0.245,0.259,0.274,0.288,0.303,0.318,0.334,0.349,0.365,0.38,0.396,0.412,0.428,0.444,0.46,0.476,0.492,0.508,0.524,0.54,0.556,0.572,0.588,0.604,0.62,0.635,0.651,0.666,0.682,0.697,0.712,0.726,0.741,0.755,0.769,0.783,0.796,0.809,0.822,0.835,0.847,0.859,0.87,0.881,0.892,0.902,0.912,0.921,0.93,0.939,0.947,0.954,0.961,0.968,0.974,0.979,0.984,0.988,0.992,0.995,0.997,0.999,1,1,1,0.998,0.996,0.992,0.988,0.983,0.977,0.97,0.962,0.954,0.945,0.935,0.924,0.913,0.901,0.888,0.875,0.861,0.847,0.833,0.817,0.802,0.785,0.769,0.752,0.735,0.717,0.7,0.681,0.663,0.644,0.626,0.607,0.587,0.568,0.549,0.529,0.51,0.49,0.471,0.451,0.432,0.413,0.393,0.374,0.356,0.337,0.319,0.3,0.283,0.265,0.248,0.231,0.215,0.198,0.183,0.167,0.153,0.139,0.125,0.112,0.099,0.087,0.076,0.065,0.055,0.046,0.038,0.03,0.023,0.017,0.012,0.008,0.004,0.002,0,0,0,0.001,0.003,0.006,0.009,0.013,0.018,0.023,0.029,0.035,0.042,0.05,0.058,0.066,0.076,0.085,0.095,0.106,0.117,0.129,0.141,0.153,0.166,0.179,0.193,0.206,0.22,0.235,0.249,0.264,0.28,0.295,0.311,0.326,0.342,0.359,0.375,0.391,0.408,0.424,0.441,0.458,0.475,0.492,0.508,0.525,0.542,0.559,0.576,0.592,0.609,0.625,0.641,0.658,0.674,0.689,0.705,0.72,0.736,0.751,0.765,0.78,0.794,0.807,0.821,0.834,0.847,0.859,0.871,0.883,0.894,0.905,0.915,0.924,0.934,0.942,0.95,0.958,0.965,0.971,0.977,0.982,0.987,0.991,0.994,0.997,0.999,1,1,1,0.998,0.996,0.992,0.988,0.983,0.977,0.97,0.962,0.954,0.945,0.935,0.924,0.913,0.901,0.888,0.875,0.861,0.847,0.833,0.817,0.802,0.785,0.769,0.752,0.735,0.717,0.7,0.681,0.663,0.644,0.626,0.607,0.587,0.568,0.549,0.529,0.51,0.49,0.471,0.451,0.432,0.413,0.393,0.374,0.356,0.337,0.319,0.3,0.283,0.265,0.248,0.231,0.215,0.198,0.183,0.167,0.153,0.139,0.125,0.112,0.099,0.087,0.076,0.065,0.055,0.046,0.038,0.03,0.023,0.017,0.012,0.008,0.004,0.002,0,0,0,0.001,0.003,0.006,0.009,0.012,0.017,0.022,0.027,0.034,0.04,0.048,0.055,0.064,0.073,0.082,0.092,0.102,0.113,0.124,0.135,0.147,0.159,0.172,0.185,0.198,0.212,0.226,0.24,0.254,0.269,0.284,0.299,0.314,0.33,0.346,0.361,0.377,0.393,0.41,0.426,0.442,0.459,0.475,0.492,0.508,0.525,0.541,0.558,0.574,0.59,0.607,0.623,0.639,0.654,0.67,0.686,0.701,0.716,0.731,0.746,0.76,0.774,0.788,0.802,0.815,0.828,0.841,0.853,0.865,0.876,0.887,0.898,0.908,0.918,0.927,0.936,0.945,0.952,0.96,0.966,0.973,0.978,0.983,0.988,0.991,0.994,0.997,0.999,1,1,1,0.998,0.996,0.992,0.988,0.983,0.977,0.97,0.962,0.954,0.945,0.935,0.924,0.913,0.901,0.888,0.875,0.861,0.847,0.833,0.817,0.802,0.785,0.769,0.752,0.735,0.717,0.7,0.681,0.663,0.644,0.626,0.607,0.587,0.568,0.549,0.529,0.51,0.49,0.471,0.451,0.432,0.413,0.393,0.374,0.356,0.337,0.319,0.3,0.283,0.265,0.248,0.231,0.215,0.198,0.183,0.167,0.153,0.139,0.125,0.112,0.099,0.087,0.076,0.065,0.055,0.046,0.038,0.03,0.023,0.017,0.012,0.008,0.004,0.002,0,0,0,0.002,0.004,0.007,0.011,0.016,0.022,0.028,0.035,0.043,0.051,0.061,0.071,0.081,0.092,0.104,0.116,0.129,0.142,0.156,0.17,0.185,0.201,0.216,0.232,0.248,0.265,0.282,0.299,0.316,0.334,0.352,0.37,0.388,0.407,0.425,0.444,0.463,0.481,0.5,0.519,0.537,0.556,0.575,0.593,0.612,0.63,0.648,0.666,0.684,0.701,0.718,0.735,0.752,0.768,0.784,0.799,0.815,0.83,0.844,0.858,0.871,0.884,0.896,0.908,0.919,0.929,0.939,0.949,0.957,0.965,0.972,0.978,0.984,0.989,0.993,0.996,0.998,1,1,1,0.998,0.996,0.992,0.988,0.983,0.977,0.97,0.962,0.954,0.945,0.935,0.924,0.913,0.901,0.888,0.875,0.861,0.847,0.833,0.817,0.802,0.785,0.769,0.752,0.735,0.717,0.7,0.681,0.663,0.644,0.626,0.607,0.587,0.568,0.549,0.529,0.51,0.49,0.471,0.451,0.432,0.413,0.393,0.374,0.356,0.337,0.319,0.3,0.283,0.265,0.248,0.231,0.215,0.198,0.183,0.167,0.153,0.139,0.125,0.112,0.099,0.087,0.076,0.065,0.055,0.046,0.038,0.03,0.023,0.017,0.012,0.008,0.004,0.002,0,0,0,0.001,0.003,0.005,0.007,0.011,0.014,0.019,0.023,0.029,0.034,0.041,0.047,0.054,0.062,0.07,0.078,0.087,0.096,0.106,0.116,0.126,0.137,0.148,0.159,0.171,0.183,0.195,0.207,0.22,0.233,0.246,0.259,0.273,0.287,0.301,0.315,0.329,0.343,0.358,0.372,0.387,0.402,0.417,0.432,0.447,0.462,0.477,0.492,0.508,0.523,0.538,0.553,0.568,0.583,0.598,0.613,0.628,0.642,0.657,0.671,0.685,0.699,0.713,0.727,0.741,0.754,0.767,0.78,0.793,0.805,0.817,0.829,0.841,0.852,0.863,0.874,0.884,0.894,0.904,0.913,0.922,0.93,0.938,0.946,0.953,0.959,0.966,0.971,0.977,0.981,0.986,0.989,0.993,0.995,0.997,0.999,1,1,1,0.998,0.996,0.992,0.988,0.983,0.977,0.97,0.962,0.954,0.945,0.935,0.924,0.913,0.901,0.888,0.875,0.861,0.847,0.833,0.817,0.802,0.785,0.769,0.752,0.735,0.717,0.7,0.681,0.663,0.644,0.626,0.607,0.587,0.568,0.549,0.529,0.51,0.49,0.471,0.451,0.432,0.413,0.393,0.374,0.356,0.337,0.319,0.3,0.283,0.265,0.248,0.231,0.215,0.198,0.183,0.167,0.153,0.139,0.125,0.112,0.099,0.087,0.076,0.065,0.055,0.046,0.038,0.03,0.023,0.017,0.012,0.008,0.004,0.002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nCHAR_POS_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.007,-0.015,-0.025,-0.038,-0.052,-0.067,-0.083,-0.1,-0.117,-0.133,-0.148,-0.162,-0.175,-0.185,-0.193,-0.198,-0.2,-0.196,-0.186,-0.169,-0.148,-0.121,-0.091,-0.056,-0.02,0.019,0.059,0.1,0.141,0.181,0.22,0.256,0.291,0.321,0.348,0.369,0.386,0.396,0.4,0.395,0.379,0.356,0.324,0.285,0.241,0.193,0.14,0.085,0.028,-0.028,-0.085,-0.14,-0.193,-0.241,-0.285,-0.324,-0.356,-0.379,-0.395,-0.4,-0.396,-0.384,-0.364,-0.339,-0.308,-0.272,-0.232,-0.19,-0.144,-0.098,-0.05,-0.002,0.044,0.09,0.132,0.172,0.208,0.239,0.264,0.284,0.296,0.3,0.295,0.282,0.261,0.234,0.2,0.161,0.119,0.073,0.024,-0.025,-0.075,-0.124,-0.173,-0.219,-0.261,-0.3,-0.334,-0.361,-0.382,-0.395,-0.4,-0.394,-0.379,-0.354,-0.322,-0.281,-0.236,-0.184,-0.13,-0.071,-0.012,0.05,0.112,0.171,0.23,0.284,0.336,0.381,0.422,0.454,0.479,0.494,0.5,0.483,0.437,0.37,0.291,0.209,0.13,0.063,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.002,-0.007,-0.015,-0.025,-0.038,-0.052,-0.067,-0.083,-0.1,-0.117,-0.133,-0.148,-0.162,-0.175,-0.185,-0.193,-0.198,-0.2,-0.196,-0.186,-0.169,-0.148,-0.121,-0.091,-0.056,-0.02,0.019,0.059,0.1,0.141,0.181,0.22,0.256,0.291,0.321,0.348,0.369,0.386,0.396,0.4,0.395,0.379,0.356,0.324,0.285,0.241,0.193,0.14,0.085,0.028,-0.028,-0.085,-0.14,-0.193,-0.241,-0.285,-0.324,-0.356,-0.379,-0.395,-0.4,-0.396,-0.384,-0.364,-0.339,-0.308,-0.272,-0.232,-0.19,-0.144,-0.098,-0.05,-0.002,0.044,0.09,0.132,0.172,0.208,0.239,0.264,0.284,0.296,0.3,0.295,0.282,0.261,0.234,0.2,0.161,0.119,0.073,0.024,-0.025,-0.075,-0.124,-0.173,-0.219,-0.261,-0.3,-0.334,-0.361,-0.382,-0.395,-0.4,-0.394,-0.379,-0.354,-0.322,-0.281,-0.236,-0.184,-0.13,-0.071,-0.012,0.05,0.112,0.171,0.23,0.284,0.336,0.381,0.422,0.454,0.479,0.494,0.5,0.497,0.488,0.475,0.457,0.434,0.409,0.38,0.35,0.317,0.284,0.25,0.216,0.183,0.15,0.12,0.091,0.066,0.043,0.025,0.012,0.003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nFLAG2=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,0.087,0.183,0.3,0.433,0.567,0.7,0.817,0.913,0.976,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.969,0.933,0.885,0.828,0.764,0.693,0.618,0.54,0.46,0.382,0.307,0.236,0.172,0.115,0.067,0.031,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nARM_LEFT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,0.087,0.183,0.3,0.433,0.567,0.7,0.817,0.913,0.976,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.969,0.933,0.885,0.828,0.764,0.693,0.618,0.54,0.46,0.382,0.307,0.236,0.172,0.115,0.067,0.031,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nARM_RIGHT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,0.087,0.183,0.3,0.433,0.567,0.7,0.817,0.913,0.976,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.969,0.933,0.885,0.828,0.764,0.693,0.618,0.54,0.46,0.382,0.307,0.236,0.172,0.115,0.067,0.031,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nARM_2_LEFT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.031,0.067,0.115,0.172,0.236,0.307,0.382,0.46,0.54,0.618,0.693,0.764,0.828,0.885,0.933,0.969,0.992,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.983,0.936,0.865,0.774,0.67,0.558,0.442,0.33,0.226,0.135,0.064,0.017,0\nARM_2_RIGHT=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.031,0.067,0.115,0.172,0.236,0.307,0.382,0.46,0.54,0.618,0.693,0.764,0.828,0.885,0.933,0.969,0.992,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.983,0.936,0.865,0.774,0.67,0.558,0.442,0.33,0.226,0.135,0.064,0.017,0\nARM_3_LEFT=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.926,0.844,0.74,0.625,0.5,0.375,0.26,0.156,0.074,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.064,0.135,0.226,0.33,0.442,0.558,0.67,0.774,0.865,0.936,0.983,1\nARM_3_RIGHT=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.98,0.926,0.844,0.74,0.625,0.5,0.375,0.26,0.156,0.074,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.017,0.064,0.135,0.226,0.33,0.442,0.558,0.67,0.774,0.865,0.936,0.983,1\nSTEP_LEFT=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.953,-0.826,-0.633,-0.4,-0.134,0.134,0.4,0.633,0.826,0.953,1,0.994,0.975,0.942,0.896,0.834,0.757,0.662,0.551,0.419,0.271,0.1,-0.076,-0.237,-0.388,-0.522,-0.644,-0.747,-0.836,-0.906,-0.958,-0.989,-1,-0.992,-0.969,-0.93,-0.876,-0.803,-0.715,-0.608,-0.485,-0.341,-0.182,-0,0.181,0.346,0.496,0.626,0.738,0.83,0.903,0.957,0.989,1,0.992,0.967,0.925,0.868,0.793,0.703,0.595,0.472,0.33,0.175,0,-0.175,-0.33,-0.472,-0.595,-0.703,-0.793,-0.868,-0.925,-0.967,-0.992,-1,-0.994,-0.976,-0.945,-0.901,-0.843,-0.77,-0.682,-0.581,-0.461,-0.323,-0.172,-0,0.173,0.334,0.482,0.612,0.725,0.821,0.897,0.954,0.988,1,0.982,0.931,0.851,0.747,0.624,0.482,0.328,0.166,0,-0.166,-0.328,-0.482,-0.624,-0.747,-0.851,-0.931,-0.982,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.953,-0.826,-0.633,-0.4,-0.134,0.134,0.4,0.633,0.826,0.953,1,0.994,0.975,0.942,0.896,0.834,0.757,0.662,0.551,0.419,0.271,0.1,-0.076,-0.237,-0.388,-0.522,-0.644,-0.747,-0.836,-0.906,-0.958,-0.989,-1,-0.992,-0.969,-0.93,-0.876,-0.803,-0.715,-0.608,-0.485,-0.341,-0.182,-0,0.181,0.346,0.496,0.626,0.738,0.83,0.903,0.957,0.989,1,0.992,0.967,0.925,0.868,0.793,0.703,0.595,0.472,0.33,0.175,0,-0.175,-0.33,-0.472,-0.595,-0.703,-0.793,-0.868,-0.925,-0.967,-0.992,-1,-0.994,-0.976,-0.945,-0.901,-0.843,-0.77,-0.682,-0.581,-0.461,-0.323,-0.172,-0,0.173,0.334,0.482,0.612,0.725,0.821,0.897,0.954,0.988,1,0.988,0.954,0.898,0.826,0.736,0.635,0.521,0.4,0.269,0.137,0,-0.137,-0.269,-0.4,-0.521,-0.635,-0.736,-0.826,-0.898,-0.954,-0.988,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nSTEP_RIGHT=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.975,-0.904,-0.792,-0.649,-0.48,-0.295,-0.099,0.099,0.295,0.48,0.649,0.792,0.904,0.975,1,0.931,0.747,0.48,0.163,-0.163,-0.48,-0.747,-0.931,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.992,-0.967,-0.925,-0.868,-0.793,-0.703,-0.595,-0.472,-0.33,-0.175,0,0.175,0.33,0.472,0.595,0.703,0.793,0.868,0.925,0.967,0.992,1,0.992,0.969,0.93,0.876,0.803,0.715,0.608,0.485,0.341,0.182,0,-0.181,-0.346,-0.496,-0.626,-0.738,-0.83,-0.903,-0.957,-0.989,-1,-0.992,-0.967,-0.925,-0.868,-0.793,-0.703,-0.595,-0.472,-0.33,-0.175,0,0.175,0.33,0.472,0.595,0.703,0.793,0.868,0.925,0.967,0.992,1,0.992,0.969,0.93,0.876,0.808,0.723,0.622,0.509,0.379,0.233,0.076,-0.1,-0.272,-0.425,-0.563,-0.679,-0.777,-0.857,-0.92,-0.965,-0.991,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.975,-0.904,-0.792,-0.649,-0.48,-0.295,-0.099,0.099,0.295,0.48,0.649,0.792,0.904,0.975,1,0.931,0.747,0.48,0.163,-0.163,-0.48,-0.747,-0.931,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.992,-0.967,-0.925,-0.868,-0.793,-0.703,-0.595,-0.472,-0.33,-0.175,0,0.175,0.33,0.472,0.595,0.703,0.793,0.868,0.925,0.967,0.992,1,0.992,0.969,0.93,0.876,0.803,0.715,0.608,0.485,0.341,0.182,0,-0.181,-0.346,-0.496,-0.626,-0.738,-0.83,-0.903,-0.957,-0.989,-1,-0.992,-0.967,-0.925,-0.868,-0.793,-0.703,-0.595,-0.472,-0.33,-0.175,0,0.175,0.33,0.472,0.595,0.703,0.793,0.868,0.925,0.967,0.992,1,0.992,0.969,0.93,0.876,0.808,0.723,0.622,0.509,0.379,0.233,0.076,-0.1,-0.272,-0.425,-0.563,-0.679,-0.777,-0.857,-0.92,-0.965,-0.991,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.986,0.976,0.962,0.944,0.922,0.894,0.86,0.82,0.668,0.388,0.12,0,0.018,0.068,0.142,0.231,0.33,0.429,0.522,0.6,0.665,0.722,0.774,0.818,0.857,0.889,0.917,0.94,0.958,0.973,0.984,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.989,0.985,0.98,0.975,0.969,0.962,0.956,0.949,0.941,0.934,0.926,0.918,0.91,0.902,0.894,0.886,0.879,0.871,0.864,0.858,0.851,0.845,0.84,0.835,0.831,0.827,0.824,0.822,0.82,0.82,0.82,0.82,0.821,0.821,0.822,0.823,0.824,0.825,0.826,0.827,0.829,0.83,0.832,0.834,0.836,0.838,0.84,0.842,0.845,0.847,0.849,0.852,0.855,0.857,0.86,0.863,0.866,0.869,0.872,0.875,0.878,0.881,0.884,0.887,0.89,0.894,0.897,0.9,0.903,0.907,0.91,0.913,0.917,0.92,0.923,0.926,0.93,0.933,0.936,0.939,0.942,0.945,0.948,0.951,0.954,0.957,0.96,0.963,0.965,0.968,0.971,0.973,0.975,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,0.844,0.5,0.156,0,0.103,0.35,0.65,0.897,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.986,0.976,0.962,0.944,0.922,0.894,0.86,0.82,0.668,0.388,0.12,0,0.018,0.068,0.142,0.231,0.33,0.429,0.522,0.6,0.665,0.722,0.774,0.818,0.857,0.889,0.917,0.94,0.958,0.973,0.984,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.989,0.985,0.98,0.975,0.969,0.962,0.956,0.949,0.941,0.934,0.926,0.918,0.91,0.902,0.894,0.886,0.879,0.871,0.864,0.858,0.851,0.845,0.84,0.835,0.831,0.827,0.824,0.822,0.82,0.82,0.82,0.82,0.821,0.821,0.822,0.823,0.824,0.825,0.826,0.827,0.829,0.83,0.832,0.834,0.836,0.838,0.84,0.842,0.845,0.847,0.849,0.852,0.855,0.857,0.86,0.863,0.866,0.869,0.872,0.875,0.878,0.881,0.884,0.887,0.89,0.894,0.897,0.9,0.903,0.907,0.91,0.913,0.917,0.92,0.923,0.926,0.93,0.933,0.936,0.939,0.942,0.945,0.948,0.951,0.954,0.957,0.96,0.963,0.965,0.968,0.971,0.973,0.975,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,0.844,0.5,0.156,0,0.103,0.35,0.65,0.897,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.988,0.973,0.954,0.931,0.906,0.877,0.847,0.816,0.784,0.753,0.723,0.694,0.669,0.646,0.627,0.612,0.603,0.6,0.6,0.6,0.601,0.602,0.603,0.604,0.605,0.607,0.609,0.611,0.613,0.616,0.618,0.621,0.624,0.627,0.63,0.634,0.637,0.641,0.645,0.649,0.653,0.658,0.662,0.667,0.671,0.676,0.681,0.686,0.692,0.697,0.702,0.708,0.714,0.719,0.725,0.731,0.737,0.743,0.749,0.755,0.762,0.768,0.774,0.781,0.787,0.794,0.8,0.807,0.813,0.82,0.826,0.832,0.838,0.842,0.847,0.851,0.855,0.858,0.862,0.865,0.869,0.872,0.875,0.879,0.882,0.886,0.891,0.895,0.9,0.905,0.91,0.915,0.92,0.925,0.929,0.934,0.938,0.942,0.946,0.951,0.954,0.958,0.962,0.965,0.969,0.972,0.975,0.978,0.981,0.983,0.986,0.988,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.999,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0.075,0.258,0.5,0.742,0.925,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0,0.009,0.034,0.074,0.127,0.188,0.259,0.336,0.417,0.5,0.583,0.664,0.741,0.812,0.873,0.926,0.966,0.991,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.031,0.067,0.115,0.172,0.236,0.307,0.382,0.46,0.54,0.618,0.693,0.764,0.828,0.885,0.933,0.969,0.992,1\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.986,0.976,0.962,0.944,0.922,0.894,0.86,0.82,0.668,0.388,0.12,0,0.018,0.068,0.142,0.231,0.33,0.429,0.522,0.6,0.665,0.722,0.774,0.818,0.857,0.889,0.917,0.94,0.958,0.973,0.984,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.989,0.985,0.98,0.975,0.969,0.962,0.956,0.949,0.941,0.934,0.926,0.918,0.91,0.902,0.894,0.886,0.879,0.871,0.864,0.858,0.851,0.845,0.84,0.835,0.831,0.827,0.824,0.822,0.82,0.82,0.82,0.82,0.821,0.821,0.822,0.823,0.824,0.825,0.826,0.827,0.829,0.83,0.832,0.834,0.836,0.838,0.84,0.842,0.845,0.847,0.849,0.852,0.855,0.857,0.86,0.863,0.866,0.869,0.872,0.875,0.878,0.881,0.884,0.887,0.89,0.894,0.897,0.9,0.903,0.907,0.91,0.913,0.917,0.92,0.923,0.926,0.93,0.933,0.936,0.939,0.942,0.945,0.948,0.951,0.954,0.957,0.96,0.963,0.965,0.968,0.971,0.973,0.975,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,0.844,0.5,0.156,0,0.103,0.35,0.65,0.897,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.986,0.976,0.962,0.944,0.922,0.894,0.86,0.82,0.668,0.388,0.12,0,0.018,0.068,0.142,0.231,0.33,0.429,0.522,0.6,0.665,0.722,0.774,0.818,0.857,0.889,0.917,0.94,0.958,0.973,0.984,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.998,0.996,0.993,0.989,0.985,0.98,0.975,0.969,0.962,0.956,0.949,0.941,0.934,0.926,0.918,0.91,0.902,0.894,0.886,0.879,0.871,0.864,0.858,0.851,0.845,0.84,0.835,0.831,0.827,0.824,0.822,0.82,0.82,0.82,0.82,0.821,0.821,0.822,0.823,0.824,0.825,0.826,0.827,0.829,0.83,0.832,0.834,0.836,0.838,0.84,0.842,0.845,0.847,0.849,0.852,0.855,0.857,0.86,0.863,0.866,0.869,0.872,0.875,0.878,0.881,0.884,0.887,0.89,0.894,0.897,0.9,0.903,0.907,0.91,0.913,0.917,0.92,0.923,0.926,0.93,0.933,0.936,0.939,0.942,0.945,0.948,0.951,0.954,0.957,0.96,0.963,0.965,0.968,0.971,0.973,0.975,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,0.844,0.5,0.156,0,0.103,0.35,0.65,0.897,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.997,0.988,0.973,0.954,0.931,0.906,0.877,0.847,0.816,0.784,0.753,0.723,0.694,0.669,0.646,0.627,0.612,0.603,0.6,0.6,0.6,0.601,0.602,0.603,0.604,0.605,0.607,0.609,0.611,0.613,0.616,0.618,0.621,0.624,0.627,0.63,0.634,0.637,0.641,0.645,0.649,0.653,0.658,0.662,0.667,0.671,0.676,0.681,0.686,0.692,0.697,0.702,0.708,0.714,0.719,0.725,0.731,0.737,0.743,0.749,0.755,0.762,0.768,0.774,0.781,0.787,0.794,0.8,0.807,0.813,0.82,0.826,0.832,0.838,0.842,0.847,0.851,0.855,0.858,0.862,0.865,0.869,0.872,0.875,0.879,0.882,0.886,0.891,0.895,0.9,0.905,0.91,0.915,0.92,0.925,0.929,0.934,0.938,0.942,0.946,0.951,0.954,0.958,0.962,0.965,0.969,0.972,0.975,0.978,0.981,0.983,0.986,0.988,0.99,0.992,0.993,0.995,0.996,0.997,0.998,0.999,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0.075,0.258,0.5,0.742,0.925,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0,0.009,0.034,0.074,0.127,0.188,0.259,0.336,0.417,0.5,0.583,0.664,0.741,0.812,0.873,0.926,0.966,0.991,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.008,0.031,0.067,0.115,0.172,0.236,0.307,0.382,0.46,0.54,0.618,0.693,0.764,0.828,0.885,0.933,0.969,0.992,1\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.008,0.017,0.029,0.045,0.064,0.085,0.109,0.135,0.163,0.194,0.226,0.259,0.294,0.33,0.367,0.405,0.442,0.481,0.519,0.558,0.595,0.633,0.67,0.706,0.741,0.774,0.806,0.837,0.865,0.891,0.915,0.936,0.955,0.971,0.983,0.992,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.969,0.933,0.885,0.828,0.764,0.693,0.618,0.54,0.46,0.382,0.307,0.236,0.172,0.115,0.067,0.031,0.008,0\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.008,0.017,0.029,0.045,0.064,0.085,0.109,0.135,0.163,0.194,0.226,0.259,0.294,0.33,0.367,0.405,0.442,0.481,0.519,0.558,0.595,0.633,0.67,0.706,0.741,0.774,0.806,0.837,0.865,0.891,0.915,0.936,0.955,0.971,0.983,0.992,0.998,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.992,0.969,0.933,0.885,0.828,0.764,0.693,0.618,0.54,0.46,0.382,0.307,0.236,0.172,0.115,0.067,0.031,0.008,0\nPARAM_EYE_BALL_X=0,0,0.002,0.004,0.006,0.01,0.013,0.018,0.023,0.028,0.033,0.039,0.044,0.05,0.056,0.061,0.067,0.072,0.077,0.082,0.087,0.09,0.094,0.096,0.098,0.1,0.1,0.1,0.1,0.099,0.099,0.098,0.097,0.096,0.095,0.094,0.093,0.091,0.09,0.088,0.086,0.084,0.082,0.08,0.078,0.076,0.074,0.072,0.07,0.067,0.065,0.062,0.06,0.057,0.055,0.052,0.05,0.048,0.045,0.043,0.04,0.038,0.035,0.033,0.03,0.028,0.026,0.024,0.022,0.02,0.018,0.016,0.014,0.012,0.01,0.009,0.007,0.006,0.005,0.004,0.003,0.002,0.001,0.001,0,0,0,0.002,0.008,0.017,0.029,0.045,0.064,0.086,0.111,0.138,0.168,0.2,0.231,0.26,0.286,0.309,0.329,0.346,0.361,0.373,0.383,0.391,0.396,0.399,0.4,0.4,0.4,0.399,0.398,0.397,0.396,0.394,0.392,0.39,0.388,0.385,0.382,0.379,0.376,0.372,0.368,0.364,0.36,0.355,0.35,0.345,0.339,0.333,0.327,0.321,0.314,0.307,0.299,0.292,0.284,0.276,0.267,0.258,0.249,0.24,0.23,0.22,0.209,0.198,0.187,0.176,0.164,0.152,0.14,0.127,0.114,0.1,0.087,0.073,0.058,0.043,0.028,0.012,-0.003,-0.019,-0.036,-0.053,-0.07,-0.088,-0.106,-0.125,-0.144,-0.163,-0.182,-0.203,-0.223,-0.243,-0.265,-0.286,-0.308,-0.331,-0.353,-0.377,-0.4,-0.424,-0.448,-0.473,-0.497,-0.521,-0.545,-0.569,-0.592,-0.615,-0.637,-0.658,-0.678,-0.697,-0.715,-0.732,-0.746,-0.76,-0.772,-0.782,-0.789,-0.795,-0.799,-0.8,-0.793,-0.773,-0.742,-0.701,-0.652,-0.597,-0.535,-0.469,-0.401,-0.331,-0.262,-0.195,-0.131,-0.073,-0.02,0.025,0.061,0.087,0.1,0.107,0.113,0.119,0.125,0.13,0.135,0.14,0.145,0.149,0.154,0.157,0.161,0.165,0.168,0.171,0.174,0.177,0.179,0.181,0.184,0.186,0.187,0.189,0.19,0.192,0.193,0.194,0.195,0.196,0.197,0.197,0.198,0.198,0.199,0.199,0.199,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.203,0.213,0.227,0.245,0.266,0.288,0.312,0.334,0.355,0.373,0.387,0.397,0.4,0.4,0.4,0.399,0.398,0.397,0.396,0.394,0.392,0.39,0.388,0.385,0.382,0.379,0.376,0.372,0.368,0.364,0.36,0.355,0.35,0.345,0.339,0.333,0.327,0.321,0.314,0.307,0.299,0.292,0.284,0.276,0.267,0.258,0.249,0.24,0.23,0.22,0.209,0.198,0.187,0.176,0.164,0.152,0.14,0.127,0.114,0.1,0.087,0.073,0.058,0.043,0.028,0.012,-0.003,-0.019,-0.036,-0.053,-0.07,-0.088,-0.106,-0.125,-0.144,-0.163,-0.182,-0.203,-0.223,-0.243,-0.265,-0.286,-0.308,-0.331,-0.353,-0.377,-0.4,-0.424,-0.448,-0.473,-0.497,-0.521,-0.545,-0.569,-0.592,-0.615,-0.637,-0.658,-0.678,-0.697,-0.715,-0.732,-0.746,-0.76,-0.772,-0.782,-0.789,-0.795,-0.799,-0.8,-0.793,-0.773,-0.742,-0.701,-0.652,-0.597,-0.535,-0.469,-0.401,-0.331,-0.262,-0.195,-0.131,-0.073,-0.02,0.025,0.061,0.087,0.1,0.107,0.113,0.119,0.125,0.13,0.135,0.14,0.145,0.149,0.154,0.157,0.161,0.165,0.168,0.171,0.174,0.177,0.179,0.181,0.184,0.186,0.187,0.189,0.19,0.192,0.193,0.194,0.195,0.196,0.197,0.197,0.198,0.198,0.199,0.199,0.199,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.199,0.199,0.198,0.198,0.197,0.196,0.195,0.194,0.193,0.192,0.191,0.19,0.188,0.187,0.185,0.184,0.182,0.18,0.179,0.177,0.175,0.173,0.17,0.168,0.166,0.164,0.161,0.159,0.156,0.154,0.151,0.148,0.145,0.143,0.14,0.137,0.134,0.131,0.127,0.124,0.121,0.118,0.114,0.111,0.107,0.104,0.1,0.097,0.093,0.089,0.086,0.082,0.078,0.074,0.07,0.066,0.062,0.058,0.054,0.05,0.046,0.042,0.037,0.033,0.029,0.025,0.02,0.016,0.011,0.007,0.003,-0.002,-0.006,-0.011,-0.015,-0.02,-0.025,-0.029,-0.034,-0.038,-0.043,-0.048,-0.052,-0.057,-0.062,-0.067,-0.071,-0.076,-0.081,-0.086,-0.09,-0.095,-0.1,-0.105,-0.109,-0.114,-0.118,-0.122,-0.126,-0.13,-0.134,-0.137,-0.141,-0.144,-0.147,-0.15,-0.153,-0.156,-0.159,-0.161,-0.164,-0.166,-0.169,-0.171,-0.173,-0.175,-0.177,-0.178,-0.18,-0.182,-0.183,-0.185,-0.186,-0.187,-0.189,-0.19,-0.191,-0.192,-0.193,-0.193,-0.194,-0.195,-0.196,-0.196,-0.197,-0.197,-0.198,-0.198,-0.198,-0.199,-0.199,-0.199,-0.199,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.199,-0.199,-0.198,-0.197,-0.196,-0.195,-0.194,-0.192,-0.191,-0.189,-0.187,-0.185,-0.183,-0.181,-0.179,-0.176,-0.173,-0.171,-0.168,-0.165,-0.162,-0.159,-0.156,-0.152,-0.149,-0.145,-0.141,-0.138,-0.134,-0.13,-0.126,-0.122,-0.118,-0.113,-0.109,-0.105,-0.1,-0.096,-0.091,-0.086,-0.082,-0.077,-0.072,-0.067,-0.062,-0.057,-0.052,-0.047,-0.042,-0.037,-0.031,-0.026,-0.021,-0.016,-0.01,-0.005,0.001,0.006,0.012,0.017,0.022,0.028,0.033,0.039,0.045,0.05,0.055,0.061,0.067,0.072,0.078,0.083,0.088,0.094,0.099,0.105,0.11,0.116,0.121,0.126,0.131,0.137,0.142,0.147,0.152,0.157,0.162,0.167,0.172,0.177,0.182,0.186,0.191,0.196,0.2,0.205,0.209,0.213,0.218,0.222,0.226,0.23,0.234,0.238,0.241,0.245,0.249,0.252,0.256,0.259,0.262,0.265,0.268,0.271,0.273,0.276,0.279,0.281,0.283,0.285,0.287,0.289,0.291,0.292,0.294,0.295,0.296,0.297,0.298,0.299,0.299,0.3,0.3,0.3,0.3,0.299,0.298,0.296,0.294,0.291,0.288,0.285,0.281,0.277,0.273,0.268,0.263,0.257,0.252,0.246,0.24,0.233,0.227,0.22,0.213,0.206,0.199,0.191,0.184,0.177,0.169,0.161,0.154,0.146,0.139,0.131,0.123,0.116,0.109,0.101,0.094,0.087,0.08,0.073,0.067,0.06,0.054,0.048,0.043,0.037,0.032,0.027,0.023,0.019,0.015,0.012,0.009,0.006,0.004,0.002,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0.004,0.017,0.037,0.064,0.097,0.135,0.179,0.226,0.277,0.33,0.385,0.443,0.5,0.557,0.615,0.67,0.723,0.774,0.821,0.865,0.903,0.936,0.963,0.983,0.996,1,1,0.999,0.998,0.997,0.995,0.992,0.99,0.986,0.983,0.979,0.974,0.969,0.963,0.957,0.95,0.943,0.935,0.927,0.918,0.909,0.899,0.889,0.878,0.866,0.854,0.841,0.828,0.814,0.799,0.784,0.768,0.752,0.734,0.717,0.698,0.679,0.659,0.639,0.618,0.596,0.573,0.55,0.526,0.501,0.476,0.449,0.423,0.395,0.366,0.337,0.307,0.276,0.244,0.212,0.179,0.145,0.11,0.074,0.037,0,-0.051,-0.12,-0.207,-0.301,-0.402,-0.501,-0.595,-0.676,-0.742,-0.784,-0.8,-0.77,-0.685,-0.557,-0.394,-0.206,-0.005,0.205,0.406,0.594,0.757,0.885,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.996,0.985,0.967,0.944,0.915,0.882,0.845,0.805,0.762,0.718,0.673,0.627,0.582,0.538,0.495,0.455,0.418,0.385,0.356,0.333,0.315,0.304,0.3,0.304,0.316,0.334,0.357,0.386,0.418,0.453,0.491,0.53,0.57,0.609,0.647,0.682,0.714,0.743,0.766,0.784,0.796,0.8,0.8,0.8,0.8,0.8,0.801,0.801,0.801,0.801,0.8,0.8,0.799,0.798,0.797,0.795,0.794,0.791,0.789,0.786,0.782,0.778,0.774,0.768,0.763,0.756,0.749,0.742,0.733,0.724,0.714,0.704,0.692,0.68,0.666,0.652,0.637,0.621,0.603,0.585,0.565,0.545,0.523,0.5,0.476,0.452,0.427,0.402,0.377,0.351,0.325,0.298,0.271,0.244,0.216,0.189,0.161,0.134,0.106,0.078,0.05,0.022,-0.006,-0.034,-0.063,-0.091,-0.118,-0.146,-0.173,-0.201,-0.228,-0.254,-0.281,-0.307,-0.332,-0.358,-0.383,-0.407,-0.431,-0.455,-0.478,-0.5,-0.522,-0.543,-0.564,-0.584,-0.604,-0.622,-0.64,-0.657,-0.673,-0.689,-0.703,-0.717,-0.729,-0.741,-0.752,-0.762,-0.771,-0.778,-0.785,-0.79,-0.794,-0.798,-0.799,-0.8,-0.77,-0.685,-0.557,-0.394,-0.206,-0.005,0.205,0.406,0.594,0.757,0.885,0.97,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.996,0.985,0.967,0.944,0.915,0.882,0.845,0.805,0.762,0.718,0.673,0.627,0.582,0.538,0.495,0.455,0.418,0.385,0.356,0.333,0.315,0.304,0.3,0.304,0.316,0.334,0.357,0.386,0.418,0.453,0.491,0.53,0.57,0.609,0.647,0.682,0.714,0.743,0.766,0.784,0.796,0.8,0.8,0.799,0.799,0.797,0.796,0.794,0.792,0.789,0.787,0.783,0.78,0.776,0.772,0.767,0.762,0.757,0.752,0.746,0.74,0.733,0.726,0.719,0.711,0.703,0.695,0.686,0.677,0.668,0.658,0.648,0.638,0.627,0.616,0.604,0.593,0.581,0.568,0.555,0.542,0.528,0.514,0.5,0.485,0.471,0.457,0.443,0.43,0.416,0.402,0.389,0.376,0.362,0.35,0.337,0.324,0.312,0.299,0.287,0.275,0.263,0.251,0.24,0.228,0.217,0.206,0.195,0.184,0.174,0.163,0.152,0.142,0.132,0.122,0.112,0.103,0.093,0.084,0.075,0.066,0.057,0.048,0.039,0.031,0.023,0.014,0.007,-0.001,-0.009,-0.016,-0.024,-0.031,-0.038,-0.045,-0.052,-0.059,-0.065,-0.071,-0.078,-0.084,-0.09,-0.095,-0.101,-0.106,-0.111,-0.117,-0.122,-0.126,-0.131,-0.136,-0.14,-0.144,-0.148,-0.152,-0.156,-0.159,-0.163,-0.166,-0.169,-0.172,-0.175,-0.178,-0.18,-0.183,-0.185,-0.187,-0.189,-0.191,-0.192,-0.194,-0.195,-0.196,-0.197,-0.198,-0.199,-0.199,-0.2,-0.2,-0.2,-0.199,-0.196,-0.191,-0.184,-0.175,-0.164,-0.152,-0.138,-0.122,-0.105,-0.087,-0.067,-0.046,-0.024,-0,0.024,0.049,0.075,0.102,0.129,0.158,0.187,0.216,0.246,0.277,0.307,0.338,0.369,0.4,0.431,0.462,0.493,0.523,0.554,0.584,0.613,0.642,0.671,0.698,0.725,0.751,0.776,0.8,0.824,0.846,0.867,0.887,0.905,0.922,0.938,0.952,0.964,0.975,0.984,0.991,0.996,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.997,0.993,0.987,0.98,0.971,0.961,0.95,0.937,0.924,0.909,0.893,0.876,0.858,0.839,0.819,0.799,0.777,0.756,0.733,0.71,0.686,0.662,0.638,0.613,0.589,0.564,0.538,0.513,0.487,0.462,0.436,0.411,0.387,0.362,0.338,0.314,0.29,0.267,0.244,0.223,0.201,0.181,0.161,0.142,0.124,0.107,0.091,0.076,0.063,0.05,0.039,0.029,0.02,0.013,0.007,0.003,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.987,-0.949,-0.892,-0.819,-0.736,-0.647,-0.553,-0.464,-0.381,-0.308,-0.251,-0.213,-0.2,-0.231,-0.305,-0.395,-0.469,-0.5,-0.483,-0.437,-0.37,-0.291,-0.209,-0.13,-0.063,-0.017,-0,-0.044,-0.158,-0.316,-0.484,-0.642,-0.756,-0.8,-0.791,-0.769,-0.737,-0.7,-0.663,-0.631,-0.609,-0.6,-0.663,-0.8,-0.938,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.979,-0.922,-0.835,-0.73,-0.61,-0.49,-0.37,-0.265,-0.178,-0.121,-0.1,-0.139,-0.241,-0.385,-0.55,-0.715,-0.859,-0.961,-1,-0.886,-0.615,-0.285,-0.014,0.1,-0.189,-0.711,-1,-1,-1,-1,-1,-1,-0.737,-0.263,0,0.002,0.003,-0.001,-0.017,-0.047,-0.1,-0.188,-0.314,-0.461,-0.615,-0.761,-0.884,-0.968,-1,-0.828,-0.45,-0.072,0.1,-0.072,-0.45,-0.828,-1,-0.859,-0.55,-0.241,-0.1,-0.168,-0.332,-0.55,-0.768,-0.932,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.988,-0.957,-0.898,-0.8,-0.326,0.407,0.8,0.758,0.637,0.436,0.159,-0.182,-0.6,-0.912,-1,-0.922,-0.75,-0.578,-0.5,-0.552,-0.675,-0.825,-0.948,-1,-0.842,-0.558,-0.4,-0.426,-0.494,-0.59,-0.7,-0.81,-0.906,-0.974,-1,-0.976,-0.911,-0.818,-0.707,-0.593,-0.482,-0.389,-0.324,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.188,0.052,0.3,0.462,0.552,0.591,0.6,0.572,0.497,0.383,0.247,0.1,-0.047,-0.183,-0.297,-0.372,-0.4,-0.295,-0.105,0,-0.263,-0.737,-1,-0.906,-0.7,-0.494,-0.4,-0.7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.835,-0.522,-0.3,-0.223,-0.159,-0.109,-0.07,-0.042,-0.021,-0.009,-0.002,0,-0.075,-0.258,-0.5,-0.742,-0.925,-1,-1,-1,-1,-1,-1,-1,-0.969,-0.895,-0.805,-0.731,-0.7,-0.731,-0.805,-0.895,-0.969,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.953,-0.828,-0.652,-0.45,-0.248,-0.072,0.053,0.1,0.006,-0.2,-0.406,-0.5,-0.47,-0.397,-0.3,-0.203,-0.13,-0.1,-0.15,-0.278,-0.456,-0.644,-0.822,-0.95,-1,-0.902,-0.665,-0.35,-0.035,0.202,0.3,0.244,0.097,-0.111,-0.35,-0.589,-0.797,-0.944,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.947,-0.853,-0.8,-0.815,-0.852,-0.9,-0.948,-0.985,-1,-0.895,-0.705,-0.6,-0.63,-0.703,-0.8,-0.897,-0.97,-1,-0.828,-0.45,-0.072,0.1,0.059,-0.04,-0.16,-0.259,-0.3,-0.247,-0.12,0.05,0.22,0.347,0.4,0.19,-0.19,-0.4,-0.386,-0.345,-0.275,-0.177,-0.054,0.1,0.254,0.377,0.475,0.545,0.586,0.6,0.18,-0.58,-1,-0.85,-0.7,-0.779,-0.921,-1,-0.737,-0.263,0,-0.004,-0.015,-0.033,-0.056,-0.085,-0.118,-0.155,-0.195,-0.238,-0.282,-0.327,-0.373,-0.418,-0.462,-0.505,-0.545,-0.582,-0.615,-0.644,-0.667,-0.685,-0.696,-0.7,-0.685,-0.627,-0.505,-0.3,-0.029,0.199,0.3,0.3,0.3,0.3,-0.042,-0.658,-1,-1,-1,-1,-1,-0.886,-0.615,-0.285,-0.014,0.1,-0.072,-0.45,-0.828,-1,-0.869,-0.631,-0.5,-0.552,-0.675,-0.825,-0.948,-1,-0.993,-0.972,-0.941,-0.901,-0.854,-0.803,-0.75,-0.697,-0.646,-0.599,-0.559,-0.528,-0.507,-0.5,-0.75,-1,-0.606,0.106,0.5,0.345,-0.025,-0.475,-0.845,-1,-0.816,-0.484,-0.3,-0.484,-0.816,-1,-0.737,-0.263,0,-0.003,-0.017,-0.047,-0.101,-0.182,-0.3,-0.439,-0.578,-0.71,-0.824,-0.917,-0.978,-1,-0.945,-0.802,-0.605,-0.395,-0.198,-0.055,0,-0.038,-0.133,-0.263,-0.4,-0.532,-0.652,-0.746,-0.8,-0.828,-0.854,-0.877,-0.897,-0.916,-0.932,-0.946,-0.959,-0.969,-0.978,-0.985,-0.991,-0.995,-0.998,-0.999,-1,-0.995,-0.981,-0.958,-0.928,-0.89,-0.846,-0.797,-0.742,-0.684,-0.62,-0.556,-0.488,-0.419,-0.35,-0.281,-0.212,-0.144,-0.08,-0.016,0.042,0.097,0.146,0.19,0.228,0.258,0.281,0.295,0.3,0.258,0.137,-0.056,-0.304,-0.6,-0.846,-0.966,-1,-0.895,-0.639,-0.3,0.039,0.295,0.4,0.295,0.039,-0.3,-0.639,-0.895,-1,-0.947,-0.82,-0.65,-0.48,-0.353,-0.3,-0.352,-0.475,-0.625,-0.748,-0.8,-0.74,-0.594,-0.4,-0.206,-0.06,0,-0.026,-0.097,-0.208,-0.345,-0.5,-0.647,-0.764,-0.856,-0.922,-0.967,-0.992,-1,-0.987,-0.948,-0.88,-0.783,-0.658,-0.5,-0.335,-0.189,-0.061,0.048,0.137,0.208,0.259,0.29,0.3,-0.042,-0.658,-1,-0.932,-0.768,-0.55,-0.332,-0.168,-0.1,-0.147,-0.25,-0.353,-0.4,-0.275,0,0.275,0.4,0.375,0.284,0.101,-0.2,-0.574,-0.873,-1,-0.97,-0.897,-0.8,-0.703,-0.63,-0.6,-0.608,-0.629,-0.663,-0.704,-0.75,-0.8,-0.85,-0.896,-0.938,-0.971,-0.992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.996,-0.99,-0.983,-0.974,-0.963,-0.95,-0.935,-0.919,-0.901,-0.881,-0.859,-0.837,-0.812,-0.787,-0.759,-0.731,-0.701,-0.671,-0.639,-0.606,-0.572,-0.537,-0.501,-0.465,-0.428,-0.39,-0.351,-0.311,-0.271,-0.231,-0.19,-0.149,-0.107,-0.065,-0.022,0.02,0.062,0.105,0.147,0.19,0.232,0.275,0.317,0.358,0.4,0.44,0.481,0.522,0.561,0.6,0.637,0.672,0.705,0.735,0.764,0.79,0.814,0.836,0.857,0.875,0.893,0.908,0.922,0.934,0.945,0.955,0.963,0.971,0.977,0.983,0.987,0.991,0.994,0.996,0.998,0.999,1,1,1,1,1,1,1,0.998,0.991,0.979,0.964,0.944,0.92,0.893,0.863,0.829,0.792,0.752,0.71,0.665,0.617,0.568,0.517,0.464,0.409,0.353,0.296,0.238,0.179,0.12,0.06,0,-0.06,-0.12,-0.179,-0.238,-0.296,-0.353,-0.409,-0.464,-0.517,-0.568,-0.617,-0.665,-0.71,-0.752,-0.792,-0.829,-0.863,-0.893,-0.92,-0.944,-0.964,-0.979,-0.991,-0.998,-1\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0.03,0.109,0.221,0.35,0.479,0.591,0.67,0.7,0.647,0.52,0.35,0.18,0.053,0,0.039,0.138,0.277,0.423,0.562,0.661,0.7,0.648,0.525,0.375,0.252,0.2,0.217,0.263,0.33,0.409,0.491,0.57,0.637,0.683,0.7,0.661,0.562,0.423,0.277,0.138,0.039,0,0.039,0.141,0.285,0.45,0.615,0.759,0.861,0.9,0.759,0.45,0.141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.034,0.127,0.26,0.418,0.582,0.74,0.873,0.966,1,0.991,0.967,0.931,0.886,0.838,0.788,0.741,0.7,0.671,0.654,0.64,0.624,0.6,0.429,0.151,0,0.041,0.14,0.26,0.359,0.4,0.295,0.105,0,0.075,0.258,0.5,0.742,0.925,1,0.992,0.97,0.937,0.895,0.848,0.797,0.747,0.7,0.668,0.651,0.633,0.6,0.48,0.277,0.085,0,0.094,0.3,0.506,0.6,0.555,0.445,0.3,0.155,0.045,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.103,0.35,0.65,0.897,1,0.966,0.873,0.74,0.582,0.418,0.26,0.127,0.034,0,0.216,0.5,0.608,0.668,0.694,0.7,0.628,0.455,0.245,0.072,0,0.184,0.516,0.7,0.67,0.591,0.479,0.35,0.221,0.109,0.03,0,0.034,0.127,0.26,0.418,0.582,0.74,0.873,0.966,1,0.999,0.993,0.977,0.948,0.9,0.769,0.592,0.5,0.562,0.7,0.837,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.835,0.663,0.4,0.163,0.039,0,0.156,0.5,0.844,1,0.55,0.1,0.193,0.415,0.685,0.907,1,0.737,0.263,0,0.21,0.59,0.8,0.797,0.787,0.774,0.758,0.742,0.726,0.713,0.703,0.7,0.723,0.777,0.85,0.923,0.977,1,1,0.979,0.9,0.611,0.21,0,0.103,0.35,0.65,0.897,1,0.897,0.65,0.35,0.103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.263,0.737,1,0.983,0.93,0.833,0.692,0.5,0.298,0.14,0.037,0,0.075,0.258,0.5,0.742,0.925,1,0.945,0.802,0.605,0.395,0.198,0.055,0,0.075,0.258,0.5,0.742,0.925,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.263,0.737,1,0.925,0.742,0.5,0.258,0.075,0,0.263,0.737,1,0.925,0.742,0.5,0.258,0.075,0,0.156,0.5,0.844,1,0.928,0.755,0.545,0.372,0.3,0.338,0.429,0.55,0.671,0.762,0.8,0.669,0.431,0.3,0.302,0.309,0.329,0.364,0.419,0.5,0.604,0.713,0.821,0.913,0.976,1,0.737,0.263,0,0.2,0.4,0.295,0.105,0,0.158,0.442,0.6,0.583,0.541,0.481,0.419,0.359,0.317,0.3,0.347,0.45,0.553,0.6,0.442,0.158,0,0.052,0.175,0.325,0.448,0.5,0.453,0.35,0.247,0.2,0.263,0.4,0.538,0.6,0.547,0.453,0.4,0.453,0.547,0.6,0.442,0.158,0,0,0,0,0,0.103,0.35,0.65,0.897,1,0.844,0.5,0.156,0,0.236,0.664,0.9,0.875,0.807,0.705,0.583,0.45,0.317,0.195,0.093,0.025,0,0.075,0.258,0.5,0.742,0.925,1,0.897,0.65,0.35,0.103,0,0.184,0.516,0.7,0.628,0.455,0.245,0.072,0,0.158,0.442,0.6,0.442,0.158,0,0.184,0.516,0.7,0.693,0.67,0.63,0.573,0.497,0.4,0.299,0.212,0.137,0.079,0.035,0.009,0,0.033,0.119,0.237,0.363,0.481,0.567,0.6,0.522,0.35,0.178,0.1,0.209,0.45,0.691,0.8,0.791,0.766,0.726,0.675,0.614,0.547,0.475,0.4,0.325,0.253,0.186,0.125,0.074,0.034,0.009,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.03,0.081,0.168,0.3,0.501,0.704,0.8,0.799,0.793,0.775,0.74,0.685,0.6,0.485,0.357,0.225,0.11,0.031,0,0.075,0.258,0.5,0.742,0.925,1,0.897,0.65,0.35,0.103,0,0.012,0.049,0.115,0.211,0.337,0.5,0.667,0.805,0.911,0.977,1,0.945,0.802,0.605,0.395,0.198,0.055,0,0.053,0.18,0.35,0.52,0.647,0.7,0.699,0.697,0.693,0.687,0.678,0.665,0.648,0.626,0.6,0.429,0.151,0,0.045,0.155,0.3,0.445,0.555,0.6,0.553,0.45,0.347,0.3,0.409,0.65,0.891,1,0.974,0.89,0.736,0.5,0.244,0.068,0,0.075,0.258,0.5,0.742,0.925,1,0.98,0.926,0.844,0.74,0.625,0.5,0.375,0.26,0.156,0.074,0.02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.006,-0.01,-0.016,-0.023,-0.03,-0.039,-0.049,-0.06,-0.072,-0.085,-0.098,-0.113,-0.128,-0.144,-0.16,-0.178,-0.196,-0.214,-0.233,-0.253,-0.273,-0.293,-0.314,-0.335,-0.356,-0.378,-0.4,-0.422,-0.444,-0.466,-0.489,-0.511,-0.534,-0.556,-0.578,-0.6,-0.622,-0.644,-0.665,-0.686,-0.707,-0.727,-0.747,-0.767,-0.786,-0.804,-0.822,-0.84,-0.856,-0.872,-0.887,-0.902,-0.915,-0.928,-0.94,-0.951,-0.961,-0.97,-0.977,-0.984,-0.99,-0.994,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.995,-0.99,-0.982,-0.972,-0.96,-0.947,-0.931,-0.914,-0.896,-0.876,-0.855,-0.832,-0.809,-0.784,-0.759,-0.732,-0.705,-0.677,-0.648,-0.619,-0.59,-0.56,-0.53,-0.5,-0.47,-0.44,-0.41,-0.381,-0.352,-0.323,-0.295,-0.268,-0.241,-0.216,-0.191,-0.168,-0.145,-0.124,-0.104,-0.086,-0.069,-0.053,-0.04,-0.028,-0.018,-0.01,-0.005,-0.001,0\nPARAM_BROW_R_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.001,-0.003,-0.006,-0.01,-0.016,-0.023,-0.03,-0.039,-0.049,-0.06,-0.072,-0.085,-0.098,-0.113,-0.128,-0.144,-0.16,-0.178,-0.196,-0.214,-0.233,-0.253,-0.273,-0.293,-0.314,-0.335,-0.356,-0.378,-0.4,-0.422,-0.444,-0.466,-0.489,-0.511,-0.534,-0.556,-0.578,-0.6,-0.622,-0.644,-0.665,-0.686,-0.707,-0.727,-0.747,-0.767,-0.786,-0.804,-0.822,-0.84,-0.856,-0.872,-0.887,-0.902,-0.915,-0.928,-0.94,-0.951,-0.961,-0.97,-0.977,-0.984,-0.99,-0.994,-0.997,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.995,-0.99,-0.982,-0.972,-0.96,-0.947,-0.931,-0.914,-0.896,-0.876,-0.855,-0.832,-0.809,-0.784,-0.759,-0.732,-0.705,-0.677,-0.648,-0.619,-0.59,-0.56,-0.53,-0.5,-0.47,-0.44,-0.41,-0.381,-0.352,-0.323,-0.295,-0.268,-0.241,-0.216,-0.191,-0.168,-0.145,-0.124,-0.104,-0.086,-0.069,-0.053,-0.04,-0.028,-0.018,-0.01,-0.005,-0.001,0\nPARAM_BROW_L_ANGLE=-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.297,-0.297,-0.296,-0.295,-0.294,-0.293,-0.292,-0.291,-0.289,-0.288,-0.286,-0.285,-0.283,-0.281,-0.279,-0.276,-0.274,-0.272,-0.269,-0.266,-0.263,-0.26,-0.257,-0.253,-0.25,-0.246,-0.242,-0.238,-0.233,-0.229,-0.224,-0.219,-0.214,-0.209,-0.203,-0.198,-0.192,-0.185,-0.179,-0.173,-0.166,-0.159,-0.151,-0.144,-0.136,-0.128,-0.12,-0.111,-0.102,-0.093,-0.084,-0.075,-0.065,-0.055,-0.044,-0.034,-0.023,-0.011,0,0.012,0.023,0.035,0.047,0.058,0.07,0.082,0.094,0.105,0.117,0.128,0.14,0.152,0.163,0.174,0.186,0.197,0.208,0.22,0.231,0.242,0.253,0.264,0.275,0.285,0.296,0.306,0.317,0.327,0.337,0.347,0.357,0.367,0.377,0.386,0.396,0.405,0.414,0.423,0.432,0.44,0.449,0.457,0.465,0.473,0.48,0.488,0.495,0.502,0.509,0.516,0.522,0.529,0.535,0.54,0.546,0.551,0.556,0.561,0.566,0.57,0.574,0.578,0.581,0.584,0.587,0.59,0.592,0.594,0.596,0.597,0.599,0.599,0.6,0.6,0.599,0.596,0.591,0.584,0.575,0.564,0.552,0.538,0.523,0.506,0.489,0.469,0.449,0.428,0.406,0.383,0.359,0.334,0.309,0.283,0.257,0.231,0.204,0.177,0.15,0.123,0.096,0.069,0.043,0.017,-0.009,-0.034,-0.059,-0.083,-0.106,-0.128,-0.149,-0.169,-0.189,-0.206,-0.223,-0.238,-0.252,-0.264,-0.275,-0.284,-0.291,-0.296,-0.299,-0.3\nPARAM_BROW_R_ANGLE=-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.297,-0.297,-0.296,-0.295,-0.294,-0.293,-0.292,-0.291,-0.289,-0.288,-0.286,-0.285,-0.283,-0.281,-0.279,-0.276,-0.274,-0.272,-0.269,-0.266,-0.263,-0.26,-0.257,-0.253,-0.25,-0.246,-0.242,-0.238,-0.233,-0.229,-0.224,-0.219,-0.214,-0.209,-0.203,-0.198,-0.192,-0.185,-0.179,-0.173,-0.166,-0.159,-0.151,-0.144,-0.136,-0.128,-0.12,-0.111,-0.102,-0.093,-0.084,-0.075,-0.065,-0.055,-0.044,-0.034,-0.023,-0.011,0,0.012,0.023,0.035,0.047,0.058,0.07,0.082,0.094,0.105,0.117,0.128,0.14,0.152,0.163,0.174,0.186,0.197,0.208,0.22,0.231,0.242,0.253,0.264,0.275,0.285,0.296,0.306,0.317,0.327,0.337,0.347,0.357,0.367,0.377,0.386,0.396,0.405,0.414,0.423,0.432,0.44,0.449,0.457,0.465,0.473,0.48,0.488,0.495,0.502,0.509,0.516,0.522,0.529,0.535,0.54,0.546,0.551,0.556,0.561,0.566,0.57,0.574,0.578,0.581,0.584,0.587,0.59,0.592,0.594,0.596,0.597,0.599,0.599,0.6,0.6,0.599,0.596,0.591,0.584,0.575,0.564,0.552,0.538,0.523,0.506,0.489,0.469,0.449,0.428,0.406,0.383,0.359,0.334,0.309,0.283,0.257,0.231,0.204,0.177,0.15,0.123,0.096,0.069,0.043,0.017,-0.009,-0.034,-0.059,-0.083,-0.106,-0.128,-0.149,-0.169,-0.189,-0.206,-0.223,-0.238,-0.252,-0.264,-0.275,-0.284,-0.291,-0.296,-0.299,-0.3\nPARAM_BROW_R_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.994,-0.987,-0.978,-0.967,-0.953,-0.937,-0.92,-0.901,-0.881,-0.859,-0.837,-0.813,-0.789,-0.764,-0.739,-0.713,-0.687,-0.661,-0.636,-0.611,-0.587,-0.563,-0.541,-0.519,-0.499,-0.48,-0.463,-0.447,-0.433,-0.422,-0.413,-0.406,-0.401,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.401,-0.401,-0.401,-0.402,-0.402,-0.402,-0.403,-0.403,-0.404,-0.404,-0.405,-0.406,-0.407,-0.407,-0.408,-0.409,-0.41,-0.411,-0.412,-0.413,-0.415,-0.416,-0.417,-0.419,-0.42,-0.422,-0.423,-0.425,-0.427,-0.429,-0.431,-0.432,-0.435,-0.437,-0.439,-0.441,-0.443,-0.446,-0.448,-0.451,-0.454,-0.456,-0.459,-0.462,-0.465,-0.468,-0.471,-0.475,-0.478,-0.481,-0.485,-0.489,-0.492,-0.496,-0.5,-0.513,-0.542,-0.585,-0.637,-0.694,-0.756,-0.817,-0.873,-0.924,-0.964,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.994,-0.987,-0.978,-0.967,-0.953,-0.937,-0.92,-0.901,-0.881,-0.859,-0.837,-0.813,-0.789,-0.764,-0.739,-0.713,-0.687,-0.661,-0.636,-0.611,-0.587,-0.563,-0.541,-0.519,-0.499,-0.48,-0.463,-0.447,-0.433,-0.422,-0.413,-0.406,-0.401,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.401,-0.401,-0.401,-0.402,-0.402,-0.402,-0.403,-0.403,-0.404,-0.404,-0.405,-0.406,-0.407,-0.407,-0.408,-0.409,-0.41,-0.411,-0.412,-0.413,-0.415,-0.416,-0.417,-0.419,-0.42,-0.422,-0.423,-0.425,-0.427,-0.429,-0.431,-0.432,-0.435,-0.437,-0.439,-0.441,-0.443,-0.446,-0.448,-0.451,-0.454,-0.456,-0.459,-0.462,-0.465,-0.468,-0.471,-0.475,-0.478,-0.481,-0.485,-0.489,-0.492,-0.496,-0.5,-0.513,-0.542,-0.585,-0.637,-0.694,-0.756,-0.817,-0.873,-0.924,-0.964,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.995,-0.989,-0.981,-0.97,-0.957,-0.942,-0.925,-0.906,-0.886,-0.863,-0.839,-0.813,-0.786,-0.757,-0.727,-0.695,-0.663,-0.628,-0.593,-0.557,-0.52,-0.482,-0.443,-0.404,-0.363,-0.323,-0.282,-0.24,-0.198,-0.156,-0.114,-0.071,-0.029,0.014,0.056,0.098,0.14,0.182,0.223,0.263,0.304,0.343,0.382,0.42,0.457,0.493,0.528,0.563,0.595,0.627,0.657,0.686,0.713,0.739,0.763,0.786,0.806,0.825,0.842,0.857,0.87,0.881,0.889,0.895,0.899,0.9,0.9,0.9,0.899,0.899,0.898,0.897,0.896,0.895,0.894,0.892,0.89,0.888,0.886,0.884,0.881,0.878,0.875,0.872,0.869,0.865,0.861,0.856,0.852,0.847,0.842,0.836,0.831,0.825,0.818,0.812,0.805,0.798,0.79,0.782,0.774,0.765,0.756,0.747,0.738,0.728,0.717,0.706,0.695,0.684,0.672,0.66,0.647,0.634,0.62,0.606,0.592,0.577,0.561,0.546,0.529,0.513,0.495,0.478,0.46,0.441,0.422,0.402,0.382,0.362,0.341,0.319,0.297,0.274,0.251,0.227,0.203,0.178,0.152,0.127,0.1,0.073,0.045,0.017,-0.011,-0.04,-0.069,-0.098,-0.127,-0.157,-0.187,-0.216,-0.246,-0.276,-0.305,-0.335,-0.364,-0.394,-0.423,-0.452,-0.481,-0.509,-0.537,-0.564,-0.591,-0.618,-0.644,-0.669,-0.694,-0.718,-0.742,-0.765,-0.787,-0.808,-0.828,-0.847,-0.865,-0.883,-0.899,-0.914,-0.928,-0.941,-0.953,-0.964,-0.973,-0.981,-0.988,-0.993,-0.997,-0.999,-1\nPARAM_BROW_L_FORM=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.994,-0.987,-0.978,-0.967,-0.953,-0.937,-0.92,-0.901,-0.881,-0.859,-0.837,-0.813,-0.789,-0.764,-0.739,-0.713,-0.687,-0.661,-0.636,-0.611,-0.587,-0.563,-0.541,-0.519,-0.499,-0.48,-0.463,-0.447,-0.433,-0.422,-0.413,-0.406,-0.401,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.401,-0.401,-0.401,-0.402,-0.402,-0.402,-0.403,-0.403,-0.404,-0.404,-0.405,-0.406,-0.407,-0.407,-0.408,-0.409,-0.41,-0.411,-0.412,-0.413,-0.415,-0.416,-0.417,-0.419,-0.42,-0.422,-0.423,-0.425,-0.427,-0.429,-0.431,-0.432,-0.435,-0.437,-0.439,-0.441,-0.443,-0.446,-0.448,-0.451,-0.454,-0.456,-0.459,-0.462,-0.465,-0.468,-0.471,-0.475,-0.478,-0.481,-0.485,-0.489,-0.492,-0.496,-0.5,-0.513,-0.542,-0.585,-0.637,-0.694,-0.756,-0.817,-0.873,-0.924,-0.964,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.994,-0.987,-0.978,-0.967,-0.953,-0.937,-0.92,-0.901,-0.881,-0.859,-0.837,-0.813,-0.789,-0.764,-0.739,-0.713,-0.687,-0.661,-0.636,-0.611,-0.587,-0.563,-0.541,-0.519,-0.499,-0.48,-0.463,-0.447,-0.433,-0.422,-0.413,-0.406,-0.401,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.401,-0.401,-0.401,-0.402,-0.402,-0.402,-0.403,-0.403,-0.404,-0.404,-0.405,-0.406,-0.407,-0.407,-0.408,-0.409,-0.41,-0.411,-0.412,-0.413,-0.415,-0.416,-0.417,-0.419,-0.42,-0.422,-0.423,-0.425,-0.427,-0.429,-0.431,-0.432,-0.435,-0.437,-0.439,-0.441,-0.443,-0.446,-0.448,-0.451,-0.454,-0.456,-0.459,-0.462,-0.465,-0.468,-0.471,-0.475,-0.478,-0.481,-0.485,-0.489,-0.492,-0.496,-0.5,-0.513,-0.542,-0.585,-0.637,-0.694,-0.756,-0.817,-0.873,-0.924,-0.964,-0.99,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.995,-0.989,-0.981,-0.97,-0.957,-0.942,-0.925,-0.906,-0.886,-0.863,-0.839,-0.813,-0.786,-0.757,-0.727,-0.695,-0.663,-0.628,-0.593,-0.557,-0.52,-0.482,-0.443,-0.404,-0.363,-0.323,-0.282,-0.24,-0.198,-0.156,-0.114,-0.071,-0.029,0.014,0.056,0.098,0.14,0.182,0.223,0.263,0.304,0.343,0.382,0.42,0.457,0.493,0.528,0.563,0.595,0.627,0.657,0.686,0.713,0.739,0.763,0.786,0.806,0.825,0.842,0.857,0.87,0.881,0.889,0.895,0.899,0.9,0.9,0.9,0.899,0.899,0.898,0.897,0.896,0.895,0.894,0.892,0.89,0.888,0.886,0.884,0.881,0.878,0.875,0.872,0.869,0.865,0.861,0.856,0.852,0.847,0.842,0.836,0.831,0.825,0.818,0.812,0.805,0.798,0.79,0.782,0.774,0.765,0.756,0.747,0.738,0.728,0.717,0.706,0.695,0.684,0.672,0.66,0.647,0.634,0.62,0.606,0.592,0.577,0.561,0.546,0.529,0.513,0.495,0.478,0.46,0.441,0.422,0.402,0.382,0.362,0.341,0.319,0.297,0.274,0.251,0.227,0.203,0.178,0.152,0.127,0.1,0.073,0.045,0.017,-0.011,-0.04,-0.069,-0.098,-0.127,-0.157,-0.187,-0.216,-0.246,-0.276,-0.305,-0.335,-0.364,-0.394,-0.423,-0.452,-0.481,-0.509,-0.537,-0.564,-0.591,-0.618,-0.644,-0.669,-0.694,-0.718,-0.742,-0.765,-0.787,-0.808,-0.828,-0.847,-0.865,-0.883,-0.899,-0.914,-0.928,-0.941,-0.953,-0.964,-0.973,-0.981,-0.988,-0.993,-0.997,-0.999,-1\n"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/motions/Dance.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=60.0\n\n$fadein=500\n\n$fadeout=500\n\nPARAM_ANGLE_X=-30,-29.89,-29.568,-29.033,-28.317,-27.422,-26.359,-25.141,-23.749,-22.248,-20.625,-18.89,-17.055,-15.091,-13.087,-11.016,-8.888,-6.717,-4.468,-2.239,0,2.239,4.468,6.717,8.888,11.016,13.087,15.091,17.055,18.89,20.625,22.248,23.749,25.141,26.359,27.422,28.317,29.033,29.568,29.89,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.886,-29.543,-28.984,-28.237,-27.286,-26.178,-24.884,-23.465,-21.877,-20.193,-18.36,-16.46,-14.431,-12.363,-10.187,-7.999,-5.725,-3.465,-1.142,1.142,3.465,5.725,7.999,10.187,12.363,14.431,16.46,18.36,20.193,21.877,23.465,24.884,26.178,27.286,28.237,28.984,29.543,29.886,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.894,-29.585,-29.082,-28.395,-27.536,-26.515,-25.342,-24.028,-22.583,-21.017,-19.377,-17.604,-15.743,-13.803,-11.794,-9.729,-7.616,-5.466,-3.29,-1.098,1.098,3.29,5.466,7.616,9.729,11.794,13.803,15.743,17.604,19.377,21.017,22.583,24.028,25.342,26.515,27.536,28.395,29.082,29.585,29.894,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.89,-29.568,-29.033,-28.317,-27.422,-26.359,-25.141,-23.749,-22.248,-20.625,-18.89,-17.055,-15.091,-13.087,-11.016,-8.888,-6.717,-4.468,-2.239,0,2.239,4.468,6.717,8.888,11.016,13.087,15.091,17.055,18.89,20.625,22.248,23.749,25.141,26.359,27.422,28.317,29.033,29.568,29.89,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.886,-29.543,-28.984,-28.237,-27.286,-26.178,-24.884,-23.465,-21.877,-20.193,-18.36,-16.46,-14.431,-12.363,-10.187,-7.999,-5.725,-3.465,-1.142,1.142,3.465,5.725,7.999,10.187,12.363,14.431,16.46,18.36,20.193,21.877,23.465,24.884,26.178,27.286,28.237,28.984,29.543,29.886,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.894,-29.585,-29.082,-28.395,-27.536,-26.515,-25.342,-24.028,-22.583,-21.017,-19.377,-17.604,-15.743,-13.803,-11.794,-9.729,-7.616,-5.466,-3.29,-1.098,1.098,3.29,5.466,7.616,9.729,11.794,13.803,15.743,17.604,19.377,21.017,22.583,24.028,25.342,26.515,27.536,28.395,29.082,29.585,29.894,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30\nPARAM_ANGLE_Y=-20,-19.781,-19.151,-18.179,-16.866,-15.272,-13.441,-11.459,-9.286,-7.005,-4.659,-2.341,0.005,2.286,4.459,6.441,8.272,9.866,11.179,12.151,12.781,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20,-19.763,-19.083,-17.985,-16.562,-14.844,-12.88,-10.72,-8.365,-5.957,-3.5,-1.043,1.365,3.72,5.88,7.844,9.562,10.985,12.083,12.763,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20,-19.798,-19.233,-18.318,-17.129,-15.652,-13.986,-12.096,-10.099,-7.946,-5.766,-3.5,-1.234,0.946,3.099,5.096,6.986,8.652,10.129,11.318,12.233,12.798,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20,-19.781,-19.151,-18.179,-16.866,-15.272,-13.441,-11.459,-9.286,-7.005,-4.659,-2.341,0.005,2.286,4.459,6.441,8.272,9.866,11.179,12.151,12.781,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20,-19.763,-19.083,-17.985,-16.562,-14.844,-12.88,-10.72,-8.365,-5.957,-3.5,-1.043,1.365,3.72,5.88,7.844,9.562,10.985,12.083,12.763,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20,-19.798,-19.233,-18.318,-17.129,-15.652,-13.986,-12.096,-10.099,-7.946,-5.766,-3.5,-1.234,0.946,3.099,5.096,6.986,8.652,10.129,11.318,12.233,12.798,13,12.734,11.976,10.784,9.214,7.327,5.221,2.875,0.383,-2.196,-4.804,-7.383,-9.875,-12.221,-14.327,-16.214,-17.784,-18.976,-19.734,-20,-19.714,-18.894,-17.627,-15.916,-13.839,-11.453,-8.871,-6.039,-3.067,-0.011,3.011,6.067,9.039,11.871,14.453,16.839,18.916,20.627,21.894,22.714,23,22.654,21.666,20.112,18.067,15.608,12.864,9.806,6.559,3.199,-0.199,-3.559,-6.806,-9.864,-12.608,-15.067,-17.112,-18.666,-19.654,-20\nPARAM_ANGLE_Z=-30,-29.89,-29.568,-29.033,-28.317,-27.422,-26.359,-25.141,-23.749,-22.248,-20.625,-18.89,-17.055,-15.091,-13.087,-11.016,-8.888,-6.717,-4.468,-2.239,0,2.239,4.468,6.717,8.888,11.016,13.087,15.091,17.055,18.89,20.625,22.248,23.749,25.141,26.359,27.422,28.317,29.033,29.568,29.89,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.886,-29.543,-28.984,-28.237,-27.286,-26.178,-24.884,-23.465,-21.877,-20.193,-18.36,-16.46,-14.431,-12.363,-10.187,-7.999,-5.725,-3.465,-1.142,1.142,3.465,5.725,7.999,10.187,12.363,14.431,16.46,18.36,20.193,21.877,23.465,24.884,26.178,27.286,28.237,28.984,29.543,29.886,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.894,-29.585,-29.082,-28.395,-27.536,-26.515,-25.342,-24.028,-22.583,-21.017,-19.377,-17.604,-15.743,-13.803,-11.794,-9.729,-7.616,-5.466,-3.29,-1.098,1.098,3.29,5.466,7.616,9.729,11.794,13.803,15.743,17.604,19.377,21.017,22.583,24.028,25.342,26.515,27.536,28.395,29.082,29.585,29.894,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.89,-29.568,-29.033,-28.317,-27.422,-26.359,-25.141,-23.749,-22.248,-20.625,-18.89,-17.055,-15.091,-13.087,-11.016,-8.888,-6.717,-4.468,-2.239,0,2.239,4.468,6.717,8.888,11.016,13.087,15.091,17.055,18.89,20.625,22.248,23.749,25.141,26.359,27.422,28.317,29.033,29.568,29.89,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.886,-29.543,-28.984,-28.237,-27.286,-26.178,-24.884,-23.465,-21.877,-20.193,-18.36,-16.46,-14.431,-12.363,-10.187,-7.999,-5.725,-3.465,-1.142,1.142,3.465,5.725,7.999,10.187,12.363,14.431,16.46,18.36,20.193,21.877,23.465,24.884,26.178,27.286,28.237,28.984,29.543,29.886,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30,-29.894,-29.585,-29.082,-28.395,-27.536,-26.515,-25.342,-24.028,-22.583,-21.017,-19.377,-17.604,-15.743,-13.803,-11.794,-9.729,-7.616,-5.466,-3.29,-1.098,1.098,3.29,5.466,7.616,9.729,11.794,13.803,15.743,17.604,19.377,21.017,22.583,24.028,25.342,26.515,27.536,28.395,29.082,29.585,29.894,30,29.89,29.568,29.033,28.317,27.422,26.359,25.141,23.749,22.248,20.625,18.89,17.055,15.091,13.087,11.016,8.888,6.717,4.468,2.239,0,-2.239,-4.468,-6.717,-8.888,-11.016,-13.087,-15.091,-17.055,-18.89,-20.625,-22.248,-23.749,-25.141,-26.359,-27.422,-28.317,-29.033,-29.568,-29.89,-30\nPARAM_BODY_ANGLE_X=-10,-9.962,-9.848,-9.661,-9.412,-9.095,-8.726,-8.295,-7.822,-7.292,-6.731,-6.12,-5.487,-4.81,-4.121,-3.396,-2.666,-1.908,-1.155,-0.381,0.381,1.155,1.908,2.666,3.396,4.121,4.81,5.487,6.12,6.731,7.292,7.822,8.295,8.726,9.095,9.412,9.661,9.848,9.962,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10,-9.959,-9.839,-9.644,-9.38,-9.049,-8.664,-8.216,-7.715,-7.166,-6.573,-5.941,-5.273,-4.575,-3.863,-3.117,-2.353,-1.576,-0.79,0,0.79,1.576,2.353,3.117,3.863,4.575,5.273,5.941,6.573,7.166,7.715,8.216,8.664,9.049,9.38,9.644,9.839,9.959,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10,-9.963,-9.856,-9.678,-9.439,-9.141,-8.786,-8.38,-7.916,-7.416,-6.875,-6.297,-5.685,-5.03,-4.362,-3.672,-2.963,-2.239,-1.489,-0.746,0,0.746,1.489,2.239,2.963,3.672,4.362,5.03,5.685,6.297,6.875,7.416,7.916,8.38,8.786,9.141,9.439,9.678,9.856,9.963,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10,-9.962,-9.848,-9.661,-9.412,-9.095,-8.726,-8.295,-7.822,-7.292,-6.731,-6.12,-5.487,-4.81,-4.121,-3.396,-2.666,-1.908,-1.155,-0.381,0.381,1.155,1.908,2.666,3.396,4.121,4.81,5.487,6.12,6.731,7.292,7.822,8.295,8.726,9.095,9.412,9.661,9.848,9.962,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10,-9.959,-9.839,-9.644,-9.38,-9.049,-8.664,-8.216,-7.715,-7.166,-6.573,-5.941,-5.273,-4.575,-3.863,-3.117,-2.353,-1.576,-0.79,0,0.79,1.576,2.353,3.117,3.863,4.575,5.273,5.941,6.573,7.166,7.715,8.216,8.664,9.049,9.38,9.644,9.839,9.959,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10,-9.963,-9.856,-9.678,-9.439,-9.141,-8.786,-8.38,-7.916,-7.416,-6.875,-6.297,-5.685,-5.03,-4.362,-3.672,-2.963,-2.239,-1.489,-0.746,0,0.746,1.489,2.239,2.963,3.672,4.362,5.03,5.685,6.297,6.875,7.416,7.916,8.38,8.786,9.141,9.439,9.678,9.856,9.963,10,7,6.15,5.322,4.501,3.718,2.958,2.22,1.504,0.798,0.127,-0.522,-1.149,-1.754,-2.348,-2.909,-3.448,-3.965,-4.46,-4.943,-5.395,-5.825,-6.234,-6.622,-6.995,-7.339,-7.662,-7.964,-8.245,-8.51,-8.748,-8.966,-9.162,-9.338,-9.496,-9.63,-9.743,-9.835,-9.907,-9.959,-9.99,-10\nPARAM_BODY_ANGLE_Y=-10,-9.867,-9.486,-8.896,-8.1,-7.134,-6.025,-4.823,-3.507,-2.124,-0.703,0.703,2.124,3.507,4.823,6.025,7.134,8.1,8.896,9.486,9.867,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10,-9.839,-9.288,-8.278,-6.742,-4.745,-2.496,-0.264,1.75,3.479,4.901,6.108,7.092,7.879,8.513,9.015,9.396,9.674,9.862,9.966,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10,-9.867,-9.475,-8.838,-7.991,-6.941,-5.734,-4.402,-2.977,-1.489,0,1.489,2.921,4.296,5.537,6.675,7.667,8.497,9.141,9.618,9.904,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10,-9.856,-9.444,-8.779,-7.916,-6.875,-5.685,-4.376,-2.949,-1.489,0,1.489,2.949,4.376,5.685,6.875,7.916,8.779,9.444,9.856,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10,-9.877,-9.535,-8.981,-8.26,-7.365,-6.355,-5.21,-3.999,-2.695,-1.373,0,1.373,2.695,3.999,5.21,6.355,7.365,8.26,8.981,9.535,9.877,10,9.864,9.475,8.858,8.042,7.052,5.937,4.683,3.335,1.92,0.465,-1.003,-2.457,-3.871,-5.194,-6.449,-7.584,-8.572,-9.386,-10,-9.182,-8.233,-7.151,-5.995,-4.766,-3.48,-2.157,-0.789,0.552,1.875,3.161,4.391,5.568,6.629,7.578,8.397,9.067,9.578,9.891,10,9.881,9.539,8.983,8.256,7.372,6.352,5.219,3.968,2.671,1.325,-0.046,-1.422,-2.808,-4.126,-5.384,-6.558,-7.628,-8.588,-9.379,-10\nBODY_STRETCH=-10,-9.963,-9.856,-9.678,-9.439,-9.141,-8.786,-8.38,-7.916,-7.416,-6.875,-6.297,-5.685,-5.03,-4.362,-3.672,-2.963,-2.239,-1.489,-0.746,0,0.746,1.489,2.239,2.963,3.672,4.362,5.03,5.685,6.297,6.875,7.416,7.916,8.38,8.786,9.141,9.439,9.678,9.856,9.963,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10,-9.962,-9.848,-9.661,-9.412,-9.095,-8.726,-8.295,-7.822,-7.292,-6.731,-6.12,-5.487,-4.81,-4.121,-3.396,-2.666,-1.908,-1.155,-0.381,0.381,1.155,1.908,2.666,3.396,4.121,4.81,5.487,6.12,6.731,7.292,7.822,8.295,8.726,9.095,9.412,9.661,9.848,9.962,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10,-9.965,-9.862,-9.694,-9.465,-9.179,-8.838,-8.447,-8.009,-7.528,-7.006,-6.459,-5.868,-5.248,-4.601,-3.931,-3.243,-2.539,-1.822,-1.097,-0.366,0.366,1.097,1.822,2.539,3.243,3.931,4.601,5.248,5.868,6.459,7.006,7.528,8.009,8.447,8.838,9.179,9.465,9.694,9.862,9.965,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10,-9.963,-9.856,-9.678,-9.439,-9.141,-8.786,-8.38,-7.916,-7.416,-6.875,-6.297,-5.685,-5.03,-4.362,-3.672,-2.963,-2.239,-1.489,-0.746,0,0.746,1.489,2.239,2.963,3.672,4.362,5.03,5.685,6.297,6.875,7.416,7.916,8.38,8.786,9.141,9.439,9.678,9.856,9.963,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10,-9.962,-9.848,-9.661,-9.412,-9.095,-8.726,-8.295,-7.822,-7.292,-6.731,-6.12,-5.487,-4.81,-4.121,-3.396,-2.666,-1.908,-1.155,-0.381,0.381,1.155,1.908,2.666,3.396,4.121,4.81,5.487,6.12,6.731,7.292,7.822,8.295,8.726,9.095,9.412,9.661,9.848,9.962,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10,-9.965,-9.862,-9.694,-9.465,-9.179,-8.838,-8.447,-8.009,-7.528,-7.006,-6.459,-5.868,-5.248,-4.601,-3.931,-3.243,-2.539,-1.822,-1.097,-0.366,0.366,1.097,1.822,2.539,3.243,3.931,4.601,5.248,5.868,6.459,7.006,7.528,8.009,8.447,8.838,9.179,9.465,9.694,9.862,9.965,10,9.963,9.856,9.678,9.439,9.141,8.786,8.38,7.916,7.416,6.875,6.297,5.685,5.03,4.362,3.672,2.963,2.239,1.489,0.746,0,-0.746,-1.489,-2.239,-2.963,-3.672,-4.362,-5.03,-5.685,-6.297,-6.875,-7.416,-7.916,-8.38,-8.786,-9.141,-9.439,-9.678,-9.856,-9.963,-10\nPARAM_BREATH=0,0.002,0.007,0.016,0.028,0.043,0.061,0.081,0.104,0.129,0.156,0.185,0.216,0.248,0.282,0.316,0.352,0.388,0.426,0.463,0.5,0.537,0.574,0.612,0.648,0.684,0.718,0.752,0.784,0.815,0.844,0.871,0.896,0.919,0.939,0.957,0.972,0.984,0.993,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0,0.002,0.008,0.017,0.029,0.045,0.064,0.085,0.109,0.135,0.163,0.194,0.226,0.259,0.294,0.33,0.367,0.405,0.442,0.481,0.519,0.558,0.595,0.633,0.67,0.706,0.741,0.774,0.806,0.837,0.865,0.891,0.915,0.936,0.955,0.971,0.983,0.992,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0,0.002,0.007,0.015,0.027,0.041,0.058,0.078,0.1,0.124,0.15,0.177,0.207,0.238,0.27,0.303,0.338,0.373,0.409,0.445,0.482,0.518,0.555,0.591,0.627,0.662,0.697,0.73,0.762,0.793,0.823,0.85,0.876,0.9,0.922,0.942,0.959,0.973,0.985,0.993,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0,0.002,0.007,0.016,0.028,0.043,0.061,0.081,0.104,0.129,0.156,0.185,0.216,0.248,0.282,0.316,0.352,0.388,0.426,0.463,0.5,0.537,0.574,0.612,0.648,0.684,0.718,0.752,0.784,0.815,0.844,0.871,0.896,0.919,0.939,0.957,0.972,0.984,0.993,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0,0.002,0.008,0.017,0.029,0.045,0.064,0.085,0.109,0.135,0.163,0.194,0.226,0.259,0.294,0.33,0.367,0.405,0.442,0.481,0.519,0.558,0.595,0.633,0.67,0.706,0.741,0.774,0.806,0.837,0.865,0.891,0.915,0.936,0.955,0.971,0.983,0.992,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0,0.002,0.007,0.015,0.027,0.041,0.058,0.078,0.1,0.124,0.15,0.177,0.207,0.238,0.27,0.303,0.338,0.373,0.409,0.445,0.482,0.518,0.555,0.591,0.627,0.662,0.697,0.73,0.762,0.793,0.823,0.85,0.876,0.9,0.922,0.942,0.959,0.973,0.985,0.993,0.998,1,0.998,0.993,0.984,0.972,0.957,0.939,0.919,0.896,0.871,0.844,0.815,0.784,0.752,0.718,0.684,0.648,0.612,0.574,0.537,0.5,0.463,0.426,0.388,0.352,0.316,0.282,0.248,0.216,0.185,0.156,0.129,0.104,0.081,0.061,0.043,0.028,0.016,0.007,0.002,0\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.99,0.989,0.988,0.987,0.986,0.985,0.984,0.983,0.981,0.98,0.979,0.978,0.976,0.975,0.973,0.972,0.97,0.969,0.967,0.966,0.964,0.962,0.96,0.958,0.956,0.954,0.952,0.95,0.948,0.946,0.944,0.941,0.939,0.937,0.934,0.932,0.929,0.926,0.924,0.921,0.918,0.915,0.912,0.909,0.906,0.903,0.9,0.891,0.873,0.848,0.816,0.782,0.745,0.709,0.675,0.645,0.621,0.606,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.603,0.603,0.603,0.603,0.603,0.603,0.603,0.603,0.604,0.604,0.604,0.604,0.604,0.604,0.604,0.605,0.605,0.605,0.605,0.605,0.605,0.606,0.606,0.606,0.606,0.606,0.607,0.607,0.607,0.607,0.607,0.608,0.608,0.608,0.608,0.608,0.609,0.609,0.609,0.609,0.61,0.61,0.61,0.61,0.611,0.611,0.611,0.611,0.612,0.612,0.612,0.613,0.613,0.613,0.613,0.614,0.614,0.614,0.615,0.615,0.615,0.616,0.616,0.616,0.617,0.617,0.617,0.618,0.618,0.618,0.619,0.619,0.62,0.62,0.62,0.621,0.621,0.621,0.622,0.622,0.623,0.623,0.624,0.624,0.624,0.625,0.625,0.626,0.626,0.627,0.627,0.628,0.628,0.629,0.629,0.63,0.63,0.632,0.636,0.642,0.651,0.661,0.673,0.686,0.701,0.717,0.734,0.751,0.77,0.788,0.807,0.826,0.845,0.864,0.882,0.9,0.916,0.932,0.946,0.959,0.971,0.981,0.989,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.983,0.936,0.865,0.774,0.67,0.558,0.442,0.33,0.226,0.135,0.064,0.017,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,0.995,0.982,0.961,0.935,0.904,0.87,0.833,0.797,0.76,0.726,0.695,0.669,0.648,0.635,0.63,0.63,0.63,0.631,0.631,0.632,0.632,0.633,0.634,0.635,0.636,0.638,0.639,0.641,0.642,0.644,0.646,0.648,0.65,0.652,0.654,0.656,0.659,0.661,0.664,0.666,0.669,0.672,0.675,0.678,0.681,0.684,0.687,0.69,0.694,0.697,0.7,0.704,0.707,0.711,0.715,0.718,0.722,0.726,0.73,0.734,0.738,0.742,0.746,0.75,0.754,0.758,0.762,0.766,0.77,0.774,0.779,0.783,0.787,0.791,0.796,0.8,0.804,0.809,0.813,0.817,0.821,0.826,0.83,0.834,0.839,0.843,0.847,0.851,0.856,0.86,0.864,0.868,0.872,0.876,0.88,0.884,0.888,0.892,0.896,0.9,0.904,0.908,0.912,0.915,0.919,0.923,0.926,0.93,0.933,0.936,0.94,0.943,0.946,0.949,0.952,0.955,0.958,0.961,0.964,0.966,0.969,0.971,0.974,0.976,0.978,0.98,0.982,0.984,0.986,0.988,0.989,0.991,0.992,0.994,0.995,0.996,0.997,0.998,0.998,0.999,0.999,1,1,1\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.99,0.989,0.988,0.987,0.986,0.985,0.984,0.983,0.981,0.98,0.979,0.978,0.976,0.975,0.973,0.972,0.97,0.969,0.967,0.966,0.964,0.962,0.96,0.958,0.956,0.954,0.952,0.95,0.948,0.946,0.944,0.941,0.939,0.937,0.934,0.932,0.929,0.926,0.924,0.921,0.918,0.915,0.912,0.909,0.906,0.903,0.9,0.891,0.873,0.848,0.816,0.782,0.745,0.709,0.675,0.645,0.621,0.606,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.601,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.602,0.603,0.603,0.603,0.603,0.603,0.603,0.603,0.603,0.604,0.604,0.604,0.604,0.604,0.604,0.604,0.605,0.605,0.605,0.605,0.605,0.605,0.606,0.606,0.606,0.606,0.606,0.607,0.607,0.607,0.607,0.607,0.608,0.608,0.608,0.608,0.608,0.609,0.609,0.609,0.609,0.61,0.61,0.61,0.61,0.611,0.611,0.611,0.611,0.612,0.612,0.612,0.613,0.613,0.613,0.613,0.614,0.614,0.614,0.615,0.615,0.615,0.616,0.616,0.616,0.617,0.617,0.617,0.618,0.618,0.618,0.619,0.619,0.62,0.62,0.62,0.621,0.621,0.621,0.622,0.622,0.623,0.623,0.624,0.624,0.624,0.625,0.625,0.626,0.626,0.627,0.627,0.628,0.628,0.629,0.629,0.63,0.63,0.632,0.636,0.642,0.651,0.661,0.673,0.686,0.701,0.717,0.734,0.751,0.77,0.788,0.807,0.826,0.845,0.864,0.882,0.9,0.916,0.932,0.946,0.959,0.971,0.981,0.989,0.995,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.976,0.913,0.817,0.7,0.567,0.433,0.3,0.183,0.087,0.024,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,0.995,0.982,0.961,0.935,0.904,0.87,0.833,0.797,0.76,0.726,0.695,0.669,0.648,0.635,0.63,0.63,0.63,0.631,0.631,0.632,0.632,0.633,0.634,0.635,0.636,0.638,0.639,0.641,0.642,0.644,0.646,0.648,0.65,0.652,0.654,0.656,0.659,0.661,0.664,0.666,0.669,0.672,0.675,0.678,0.681,0.684,0.687,0.69,0.694,0.697,0.7,0.704,0.707,0.711,0.715,0.718,0.722,0.726,0.73,0.734,0.738,0.742,0.746,0.75,0.754,0.758,0.762,0.766,0.77,0.774,0.779,0.783,0.787,0.791,0.796,0.8,0.804,0.809,0.813,0.817,0.821,0.826,0.83,0.834,0.839,0.843,0.847,0.851,0.856,0.86,0.864,0.868,0.872,0.876,0.88,0.884,0.888,0.892,0.896,0.9,0.904,0.908,0.912,0.915,0.919,0.923,0.926,0.93,0.933,0.936,0.94,0.943,0.946,0.949,0.952,0.955,0.958,0.961,0.964,0.966,0.969,0.971,0.974,0.976,0.978,0.98,0.982,0.984,0.986,0.988,0.989,0.991,0.992,0.994,0.995,0.996,0.997,0.998,0.998,0.999,0.999,1,1,1\nPARAM_EYE_L_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,0.087,0.183,0.3,0.433,0.567,0.7,0.817,0.913,0.976,1,0.983,0.936,0.865,0.774,0.67,0.558,0.442,0.33,0.226,0.135,0.064,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_R_SMILE=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.024,0.087,0.183,0.3,0.433,0.567,0.7,0.817,0.913,0.976,1,0.983,0.936,0.865,0.774,0.67,0.558,0.442,0.33,0.226,0.135,0.064,0.017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_X=0.5,0.499,0.495,0.488,0.479,0.468,0.455,0.44,0.424,0.405,0.386,0.364,0.342,0.318,0.294,0.269,0.243,0.217,0.19,0.163,0.137,0.11,0.083,0.057,0.031,0.006,-0.018,-0.042,-0.064,-0.086,-0.105,-0.124,-0.14,-0.155,-0.168,-0.179,-0.188,-0.195,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5,0.499,0.494,0.488,0.478,0.467,0.453,0.438,0.42,0.401,0.38,0.358,0.335,0.31,0.285,0.259,0.232,0.205,0.178,0.15,0.122,0.095,0.068,0.041,0.015,-0.01,-0.035,-0.058,-0.08,-0.101,-0.12,-0.138,-0.153,-0.167,-0.178,-0.188,-0.194,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5,0.499,0.495,0.489,0.48,0.47,0.458,0.443,0.427,0.41,0.391,0.37,0.349,0.326,0.303,0.279,0.254,0.228,0.202,0.176,0.15,0.124,0.098,0.072,0.046,0.021,-0.003,-0.026,-0.049,-0.07,-0.091,-0.11,-0.127,-0.143,-0.158,-0.17,-0.18,-0.189,-0.195,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5,0.499,0.495,0.488,0.479,0.468,0.455,0.44,0.424,0.405,0.386,0.364,0.342,0.318,0.294,0.269,0.243,0.217,0.19,0.163,0.137,0.11,0.083,0.057,0.031,0.006,-0.018,-0.042,-0.064,-0.086,-0.105,-0.124,-0.14,-0.155,-0.168,-0.179,-0.188,-0.195,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5,0.499,0.494,0.488,0.478,0.467,0.453,0.438,0.42,0.401,0.38,0.358,0.335,0.31,0.285,0.259,0.232,0.205,0.178,0.15,0.122,0.095,0.068,0.041,0.015,-0.01,-0.035,-0.058,-0.08,-0.101,-0.12,-0.138,-0.153,-0.167,-0.178,-0.188,-0.194,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5,0.499,0.495,0.489,0.48,0.47,0.458,0.443,0.427,0.41,0.391,0.37,0.349,0.326,0.303,0.279,0.254,0.228,0.202,0.176,0.15,0.124,0.098,0.072,0.046,0.021,-0.003,-0.026,-0.049,-0.07,-0.091,-0.11,-0.127,-0.143,-0.158,-0.17,-0.18,-0.189,-0.195,-0.199,-0.2,-0.199,-0.195,-0.189,-0.181,-0.171,-0.159,-0.146,-0.13,-0.113,-0.095,-0.076,-0.055,-0.034,-0.011,0.012,0.037,0.061,0.086,0.112,0.137,0.163,0.188,0.214,0.239,0.263,0.288,0.311,0.334,0.355,0.376,0.395,0.413,0.43,0.446,0.459,0.471,0.481,0.489,0.495,0.499,0.5\nPARAM_EYE_BALL_Y=-0,-0,-0.001,-0.002,-0.003,-0.005,-0.006,-0.009,-0.011,-0.014,-0.016,-0.019,-0.023,-0.026,-0.029,-0.033,-0.037,-0.04,-0.044,-0.048,-0.052,-0.056,-0.06,-0.063,-0.067,-0.071,-0.074,-0.077,-0.081,-0.084,-0.086,-0.089,-0.091,-0.094,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.045,-0.041,-0.037,-0.034,-0.03,-0.027,-0.024,-0.021,-0.018,-0.015,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0,0,-0,-0.001,-0.002,-0.003,-0.005,-0.007,-0.009,-0.011,-0.014,-0.017,-0.02,-0.024,-0.027,-0.031,-0.034,-0.038,-0.042,-0.046,-0.05,-0.054,-0.058,-0.062,-0.066,-0.069,-0.073,-0.076,-0.08,-0.083,-0.086,-0.089,-0.091,-0.093,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.045,-0.041,-0.037,-0.034,-0.03,-0.027,-0.024,-0.021,-0.018,-0.015,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0,0,-0,-0.001,-0.002,-0.003,-0.004,-0.006,-0.008,-0.01,-0.013,-0.016,-0.019,-0.022,-0.025,-0.028,-0.032,-0.035,-0.039,-0.043,-0.046,-0.05,-0.054,-0.057,-0.061,-0.065,-0.068,-0.072,-0.075,-0.078,-0.081,-0.084,-0.087,-0.09,-0.092,-0.094,-0.096,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.045,-0.041,-0.037,-0.034,-0.03,-0.027,-0.024,-0.021,-0.018,-0.015,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0,0,-0,-0.001,-0.002,-0.003,-0.005,-0.006,-0.009,-0.011,-0.014,-0.016,-0.019,-0.023,-0.026,-0.029,-0.033,-0.037,-0.04,-0.044,-0.048,-0.052,-0.056,-0.06,-0.063,-0.067,-0.071,-0.074,-0.077,-0.081,-0.084,-0.086,-0.089,-0.091,-0.094,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.085,-0.082,-0.079,-0.076,-0.073,-0.07,-0.066,-0.063,-0.059,-0.055,-0.052,-0.048,-0.045,-0.041,-0.037,-0.034,-0.03,-0.027,-0.024,-0.021,-0.018,-0.015,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0,0,-0,-0.001,-0.002,-0.003,-0.005,-0.007,-0.009,-0.011,-0.014,-0.017,-0.02,-0.024,-0.027,-0.031,-0.034,-0.038,-0.042,-0.046,-0.05,-0.054,-0.058,-0.062,-0.066,-0.069,-0.073,-0.076,-0.08,-0.083,-0.086,-0.089,-0.091,-0.093,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.1,-0.099,-0.099,-0.099,-0.099,-0.099,-0.098,-0.098,-0.098,-0.097,-0.097,-0.096,-0.096,-0.095,-0.094,-0.094,-0.093,-0.092,-0.091,-0.09,-0.089,-0.088,-0.087,-0.086,-0.084,-0.083,-0.081,-0.08,-0.078,-0.076,-0.074,-0.072,-0.07,-0.068,-0.066,-0.064,-0.062,-0.059,-0.057,-0.054,-0.052,-0.05,-0.047,-0.045,-0.042,-0.04,-0.037,-0.035,-0.032,-0.03,-0.028,-0.025,-0.023,-0.021,-0.019,-0.017,-0.015,-0.013,-0.011,-0.01,-0.008,-0.007,-0.005,-0.004,-0.003,-0.002,-0.001,-0.001,-0,-0,0\nPARAM_MOUTH_FORM=1,1,0.999,0.997,0.995,0.992,0.989,0.985,0.98,0.975,0.97,0.964,0.958,0.951,0.945,0.937,0.93,0.922,0.914,0.906,0.898,0.889,0.881,0.872,0.863,0.854,0.846,0.837,0.828,0.819,0.811,0.802,0.794,0.786,0.778,0.77,0.763,0.755,0.749,0.742,0.736,0.73,0.725,0.72,0.715,0.711,0.708,0.705,0.703,0.701,0.7,0.7,0.702,0.707,0.715,0.726,0.74,0.755,0.772,0.79,0.81,0.829,0.85,0.871,0.89,0.91,0.928,0.945,0.96,0.974,0.985,0.993,0.998,1,0.999,0.995,0.99,0.982,0.972,0.961,0.947,0.931,0.914,0.895,0.874,0.852,0.828,0.803,0.776,0.748,0.718,0.688,0.656,0.623,0.589,0.554,0.518,0.482,0.444,0.406,0.367,0.328,0.288,0.247,0.207,0.166,0.125,0.083,0.042,0,-0.042,-0.083,-0.125,-0.166,-0.207,-0.247,-0.288,-0.328,-0.367,-0.406,-0.444,-0.482,-0.518,-0.554,-0.589,-0.623,-0.656,-0.688,-0.718,-0.748,-0.776,-0.803,-0.828,-0.852,-0.874,-0.895,-0.914,-0.931,-0.947,-0.961,-0.972,-0.982,-0.99,-0.995,-0.999,-1,-0.999,-0.998,-0.995,-0.992,-0.987,-0.982,-0.976,-0.969,-0.961,-0.953,-0.944,-0.935,-0.925,-0.915,-0.905,-0.894,-0.884,-0.872,-0.861,-0.85,-0.839,-0.828,-0.816,-0.806,-0.795,-0.785,-0.775,-0.765,-0.756,-0.747,-0.739,-0.731,-0.724,-0.718,-0.713,-0.708,-0.705,-0.702,-0.701,-0.7,-0.708,-0.731,-0.765,-0.806,-0.85,-0.894,-0.935,-0.969,-0.992,-1,-1,-0.999,-0.999,-0.997,-0.996,-0.994,-0.992,-0.99,-0.987,-0.984,-0.98,-0.976,-0.972,-0.967,-0.962,-0.957,-0.951,-0.945,-0.939,-0.932,-0.924,-0.916,-0.908,-0.9,-0.891,-0.881,-0.871,-0.861,-0.85,-0.839,-0.827,-0.815,-0.802,-0.789,-0.776,-0.762,-0.747,-0.732,-0.717,-0.701,-0.684,-0.667,-0.65,-0.632,-0.613,-0.594,-0.575,-0.555,-0.534,-0.513,-0.491,-0.469,-0.446,-0.422,-0.398,-0.374,-0.348,-0.323,-0.297,-0.269,-0.242,-0.214,-0.185,-0.156,-0.126,-0.095,-0.064,-0.032,0,0.051,0.131,0.235,0.353,0.482,0.608,0.73,0.836,0.923,0.979,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1\nPARAM_MOUTH_OPEN_Y=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.006,0.023,0.051,0.087,0.132,0.182,0.24,0.3,0.365,0.431,0.5,0.569,0.635,0.7,0.76,0.818,0.868,0.913,0.949,0.977,0.994,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.999,0.998,0.997,0.996,0.995,0.993,0.991,0.99,0.987,0.985,0.982,0.979,0.976,0.973,0.969,0.965,0.961,0.956,0.951,0.946,0.94,0.934,0.928,0.921,0.914,0.907,0.899,0.891,0.883,0.874,0.865,0.855,0.845,0.834,0.823,0.812,0.8,0.779,0.743,0.695,0.642,0.585,0.529,0.479,0.437,0.41,0.4,0.4,0.4,0.401,0.401,0.402,0.402,0.403,0.404,0.405,0.406,0.407,0.408,0.409,0.411,0.412,0.414,0.415,0.417,0.419,0.42,0.422,0.424,0.426,0.428,0.43,0.432,0.434,0.436,0.438,0.44,0.442,0.445,0.447,0.449,0.451,0.453,0.455,0.458,0.46,0.462,0.464,0.466,0.468,0.47,0.472,0.474,0.476,0.478,0.48,0.481,0.483,0.485,0.486,0.488,0.489,0.491,0.492,0.493,0.494,0.495,0.496,0.497,0.498,0.498,0.499,0.499,0.5,0.5,0.5,0.488,0.457,0.408,0.35,0.284,0.216,0.15,0.092,0.043,0.012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_BROW_L_Y=0,-0.001,-0.002,-0.005,-0.009,-0.013,-0.019,-0.026,-0.033,-0.042,-0.051,-0.061,-0.072,-0.084,-0.096,-0.109,-0.123,-0.137,-0.152,-0.168,-0.184,-0.201,-0.218,-0.235,-0.253,-0.272,-0.29,-0.309,-0.328,-0.348,-0.368,-0.388,-0.408,-0.428,-0.449,-0.469,-0.49,-0.51,-0.531,-0.551,-0.572,-0.592,-0.612,-0.632,-0.652,-0.672,-0.691,-0.71,-0.728,-0.747,-0.765,-0.782,-0.799,-0.816,-0.832,-0.848,-0.863,-0.877,-0.891,-0.904,-0.916,-0.928,-0.939,-0.949,-0.958,-0.967,-0.974,-0.981,-0.987,-0.991,-0.995,-0.998,-0.999,-1,-1,-0.999,-0.997,-0.995,-0.992,-0.988,-0.984,-0.979,-0.974,-0.968,-0.961,-0.954,-0.947,-0.939,-0.931,-0.922,-0.913,-0.903,-0.893,-0.882,-0.872,-0.861,-0.849,-0.838,-0.826,-0.814,-0.801,-0.789,-0.775,-0.762,-0.749,-0.736,-0.722,-0.709,-0.695,-0.681,-0.667,-0.653,-0.639,-0.625,-0.611,-0.597,-0.583,-0.569,-0.556,-0.542,-0.528,-0.515,-0.501,-0.488,-0.475,-0.463,-0.45,-0.438,-0.426,-0.414,-0.402,-0.391,-0.38,-0.37,-0.36,-0.35,-0.34,-0.331,-0.323,-0.315,-0.307,-0.3,-0.293,-0.286,-0.28,-0.273,-0.267,-0.261,-0.254,-0.248,-0.242,-0.236,-0.23,-0.225,-0.219,-0.213,-0.208,-0.203,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.168,-0.163,-0.159,-0.154,-0.15,-0.145,-0.141,-0.137,-0.133,-0.129,-0.125,-0.121,-0.117,-0.114,-0.11,-0.107,-0.103,-0.1,-0.097,-0.093,-0.09,-0.087,-0.084,-0.081,-0.078,-0.075,-0.073,-0.07,-0.067,-0.065,-0.062,-0.06,-0.058,-0.055,-0.053,-0.051,-0.049,-0.047,-0.045,-0.043,-0.041,-0.039,-0.037,-0.036,-0.034,-0.032,-0.031,-0.029,-0.028,-0.026,-0.025,-0.024,-0.022,-0.021,-0.02,-0.019,-0.018,-0.017,-0.016,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.01,-0.009,-0.008,-0.008,-0.007,-0.006,-0.006,-0.005,-0.005,-0.004,-0.004,-0.003,-0.003,-0.003,-0.002,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0,-0,-0,-0,-0,-0,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.006,-0.021,-0.047,-0.08,-0.122,-0.169,-0.222,-0.279,-0.34,-0.402,-0.468,-0.532,-0.598,-0.66,-0.721,-0.778,-0.831,-0.878,-0.92,-0.953,-0.979,-0.994,-1,-0.966,-0.875,-0.747,-0.6,-0.453,-0.325,-0.234,-0.2,-0.2,-0.202,-0.204,-0.207,-0.211,-0.215,-0.221,-0.227,-0.233,-0.241,-0.249,-0.258,-0.267,-0.277,-0.288,-0.298,-0.31,-0.322,-0.334,-0.347,-0.36,-0.374,-0.388,-0.403,-0.417,-0.432,-0.447,-0.463,-0.478,-0.494,-0.51,-0.527,-0.543,-0.559,-0.575,-0.592,-0.608,-0.625,-0.641,-0.657,-0.673,-0.69,-0.706,-0.722,-0.737,-0.753,-0.768,-0.783,-0.797,-0.812,-0.826,-0.84,-0.853,-0.866,-0.878,-0.89,-0.902,-0.912,-0.923,-0.933,-0.942,-0.951,-0.959,-0.967,-0.973,-0.979,-0.985,-0.989,-0.993,-0.996,-0.998,-1,-1,-0.999,-0.997,-0.994,-0.99,-0.985,-0.978,-0.97,-0.962,-0.952,-0.942,-0.93,-0.918,-0.904,-0.89,-0.875,-0.86,-0.844,-0.827,-0.81,-0.791,-0.773,-0.754,-0.734,-0.714,-0.694,-0.673,-0.652,-0.631,-0.609,-0.588,-0.566,-0.544,-0.522,-0.5,-0.478,-0.456,-0.434,-0.412,-0.391,-0.369,-0.348,-0.327,-0.306,-0.286,-0.266,-0.246,-0.227,-0.209,-0.19,-0.173,-0.156,-0.14,-0.125,-0.11,-0.096,-0.082,-0.07,-0.058,-0.048,-0.038,-0.03,-0.022,-0.015,-0.01,-0.006,-0.003,-0.001,0\nPARAM_BROW_R_Y=0,-0.001,-0.002,-0.005,-0.009,-0.013,-0.019,-0.026,-0.033,-0.042,-0.051,-0.061,-0.072,-0.084,-0.096,-0.109,-0.123,-0.137,-0.152,-0.168,-0.184,-0.201,-0.218,-0.235,-0.253,-0.272,-0.29,-0.309,-0.328,-0.348,-0.368,-0.388,-0.408,-0.428,-0.449,-0.469,-0.49,-0.51,-0.531,-0.551,-0.572,-0.592,-0.612,-0.632,-0.652,-0.672,-0.691,-0.71,-0.728,-0.747,-0.765,-0.782,-0.799,-0.816,-0.832,-0.848,-0.863,-0.877,-0.891,-0.904,-0.916,-0.928,-0.939,-0.949,-0.958,-0.967,-0.974,-0.981,-0.987,-0.991,-0.995,-0.998,-0.999,-1,-1,-0.999,-0.997,-0.995,-0.992,-0.988,-0.984,-0.979,-0.974,-0.968,-0.961,-0.954,-0.947,-0.939,-0.931,-0.922,-0.913,-0.903,-0.893,-0.882,-0.872,-0.861,-0.849,-0.838,-0.826,-0.814,-0.801,-0.789,-0.775,-0.762,-0.749,-0.736,-0.722,-0.709,-0.695,-0.681,-0.667,-0.653,-0.639,-0.625,-0.611,-0.597,-0.583,-0.569,-0.556,-0.542,-0.528,-0.515,-0.501,-0.488,-0.475,-0.463,-0.45,-0.438,-0.426,-0.414,-0.402,-0.391,-0.38,-0.37,-0.36,-0.35,-0.34,-0.331,-0.323,-0.315,-0.307,-0.3,-0.293,-0.286,-0.28,-0.273,-0.267,-0.261,-0.254,-0.248,-0.242,-0.236,-0.23,-0.225,-0.219,-0.213,-0.208,-0.203,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.168,-0.163,-0.159,-0.154,-0.15,-0.145,-0.141,-0.137,-0.133,-0.129,-0.125,-0.121,-0.117,-0.114,-0.11,-0.107,-0.103,-0.1,-0.097,-0.093,-0.09,-0.087,-0.084,-0.081,-0.078,-0.075,-0.073,-0.07,-0.067,-0.065,-0.062,-0.06,-0.058,-0.055,-0.053,-0.051,-0.049,-0.047,-0.045,-0.043,-0.041,-0.039,-0.037,-0.036,-0.034,-0.032,-0.031,-0.029,-0.028,-0.026,-0.025,-0.024,-0.022,-0.021,-0.02,-0.019,-0.018,-0.017,-0.016,-0.015,-0.014,-0.013,-0.012,-0.011,-0.01,-0.01,-0.009,-0.008,-0.008,-0.007,-0.006,-0.006,-0.005,-0.005,-0.004,-0.004,-0.003,-0.003,-0.003,-0.002,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0,-0,-0,-0,-0,-0,-0,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.003,-0.011,-0.023,-0.04,-0.061,-0.084,-0.111,-0.139,-0.17,-0.201,-0.234,-0.266,-0.299,-0.33,-0.361,-0.389,-0.416,-0.439,-0.46,-0.477,-0.489,-0.497,-0.5,-0.487,-0.453,-0.405,-0.35,-0.295,-0.247,-0.213,-0.2,-0.2,-0.202,-0.204,-0.207,-0.211,-0.215,-0.221,-0.227,-0.233,-0.241,-0.249,-0.258,-0.267,-0.277,-0.288,-0.298,-0.31,-0.322,-0.334,-0.347,-0.36,-0.374,-0.388,-0.403,-0.417,-0.432,-0.447,-0.463,-0.478,-0.494,-0.51,-0.527,-0.543,-0.559,-0.575,-0.592,-0.608,-0.625,-0.641,-0.657,-0.673,-0.69,-0.706,-0.722,-0.737,-0.753,-0.768,-0.783,-0.797,-0.812,-0.826,-0.84,-0.853,-0.866,-0.878,-0.89,-0.902,-0.912,-0.923,-0.933,-0.942,-0.951,-0.959,-0.967,-0.973,-0.979,-0.985,-0.989,-0.993,-0.996,-0.998,-1,-1,-0.999,-0.997,-0.994,-0.99,-0.985,-0.978,-0.97,-0.962,-0.952,-0.942,-0.93,-0.918,-0.904,-0.89,-0.875,-0.86,-0.844,-0.827,-0.81,-0.791,-0.773,-0.754,-0.734,-0.714,-0.694,-0.673,-0.652,-0.631,-0.609,-0.588,-0.566,-0.544,-0.522,-0.5,-0.478,-0.456,-0.434,-0.412,-0.391,-0.369,-0.348,-0.327,-0.306,-0.286,-0.266,-0.246,-0.227,-0.209,-0.19,-0.173,-0.156,-0.14,-0.125,-0.11,-0.096,-0.082,-0.07,-0.058,-0.048,-0.038,-0.03,-0.022,-0.015,-0.01,-0.006,-0.003,-0.001,0\nPARAM_BROW_R_FORM=0,0,0.001,0.002,0.003,0.005,0.008,0.01,0.013,0.017,0.02,0.024,0.029,0.034,0.039,0.044,0.049,0.055,0.061,0.067,0.074,0.08,0.087,0.094,0.101,0.109,0.116,0.124,0.131,0.139,0.147,0.155,0.163,0.171,0.18,0.188,0.196,0.204,0.212,0.22,0.229,0.237,0.245,0.253,0.261,0.269,0.276,0.284,0.291,0.299,0.306,0.313,0.32,0.326,0.333,0.339,0.345,0.351,0.356,0.361,0.366,0.371,0.376,0.38,0.383,0.387,0.39,0.392,0.395,0.397,0.398,0.399,0.4,0.4,0.392,0.37,0.334,0.288,0.23,0.164,0.089,0.01,-0.076,-0.163,-0.255,-0.345,-0.437,-0.524,-0.61,-0.689,-0.764,-0.83,-0.888,-0.934,-0.97,-0.992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.981,-0.928,-0.843,-0.734,-0.604,-0.456,-0.298,-0.133,0.033,0.198,0.356,0.504,0.634,0.743,0.828,0.881,0.9,0.9,0.899,0.898,0.897,0.895,0.893,0.89,0.887,0.884,0.88,0.876,0.872,0.867,0.862,0.857,0.851,0.846,0.839,0.833,0.826,0.819,0.811,0.804,0.796,0.788,0.78,0.771,0.762,0.753,0.744,0.734,0.725,0.715,0.705,0.694,0.684,0.673,0.663,0.652,0.641,0.63,0.618,0.607,0.595,0.584,0.572,0.56,0.548,0.536,0.524,0.512,0.499,0.487,0.475,0.462,0.45,0.438,0.425,0.412,0.4,0.388,0.375,0.362,0.35,0.338,0.325,0.313,0.301,0.288,0.276,0.264,0.252,0.24,0.228,0.216,0.205,0.193,0.182,0.17,0.159,0.148,0.137,0.127,0.116,0.106,0.095,0.085,0.075,0.066,0.056,0.047,0.038,0.029,0.02,0.012,0.004,-0.004,-0.011,-0.019,-0.026,-0.033,-0.039,-0.046,-0.051,-0.057,-0.062,-0.067,-0.072,-0.076,-0.08,-0.084,-0.087,-0.09,-0.093,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.086,-0.084,-0.081,-0.079,-0.076,-0.073,-0.07,-0.067,-0.064,-0.061,-0.058,-0.055,-0.052,-0.048,-0.045,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0.001,-0,0,-0.006,-0.021,-0.047,-0.08,-0.122,-0.169,-0.222,-0.279,-0.34,-0.402,-0.468,-0.532,-0.598,-0.66,-0.721,-0.778,-0.831,-0.878,-0.92,-0.953,-0.979,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.997,-0.994,-0.99,-0.985,-0.978,-0.97,-0.962,-0.952,-0.942,-0.93,-0.918,-0.904,-0.89,-0.875,-0.86,-0.844,-0.827,-0.81,-0.791,-0.773,-0.754,-0.734,-0.714,-0.694,-0.673,-0.652,-0.631,-0.609,-0.588,-0.566,-0.544,-0.522,-0.5,-0.478,-0.456,-0.434,-0.412,-0.391,-0.369,-0.348,-0.327,-0.306,-0.286,-0.266,-0.246,-0.227,-0.209,-0.19,-0.173,-0.156,-0.14,-0.125,-0.11,-0.096,-0.082,-0.07,-0.058,-0.048,-0.038,-0.03,-0.022,-0.015,-0.01,-0.006,-0.003,-0.001,0\nPARAM_BROW_L_FORM=0,0,0.001,0.002,0.003,0.005,0.008,0.01,0.013,0.017,0.02,0.024,0.029,0.034,0.039,0.044,0.049,0.055,0.061,0.067,0.074,0.08,0.087,0.094,0.101,0.109,0.116,0.124,0.131,0.139,0.147,0.155,0.163,0.171,0.18,0.188,0.196,0.204,0.212,0.22,0.229,0.237,0.245,0.253,0.261,0.269,0.276,0.284,0.291,0.299,0.306,0.313,0.32,0.326,0.333,0.339,0.345,0.351,0.356,0.361,0.366,0.371,0.376,0.38,0.383,0.387,0.39,0.392,0.395,0.397,0.398,0.399,0.4,0.4,0.392,0.37,0.334,0.288,0.23,0.164,0.089,0.01,-0.076,-0.163,-0.255,-0.345,-0.437,-0.524,-0.61,-0.689,-0.764,-0.83,-0.888,-0.934,-0.97,-0.992,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.981,-0.928,-0.843,-0.734,-0.604,-0.456,-0.298,-0.133,0.033,0.198,0.356,0.504,0.634,0.743,0.828,0.881,0.9,0.9,0.899,0.898,0.897,0.895,0.893,0.89,0.887,0.884,0.88,0.876,0.872,0.867,0.862,0.857,0.851,0.846,0.839,0.833,0.826,0.819,0.811,0.804,0.796,0.788,0.78,0.771,0.762,0.753,0.744,0.734,0.725,0.715,0.705,0.694,0.684,0.673,0.663,0.652,0.641,0.63,0.618,0.607,0.595,0.584,0.572,0.56,0.548,0.536,0.524,0.512,0.499,0.487,0.475,0.462,0.45,0.438,0.425,0.412,0.4,0.388,0.375,0.362,0.35,0.338,0.325,0.313,0.301,0.288,0.276,0.264,0.252,0.24,0.228,0.216,0.205,0.193,0.182,0.17,0.159,0.148,0.137,0.127,0.116,0.106,0.095,0.085,0.075,0.066,0.056,0.047,0.038,0.029,0.02,0.012,0.004,-0.004,-0.011,-0.019,-0.026,-0.033,-0.039,-0.046,-0.051,-0.057,-0.062,-0.067,-0.072,-0.076,-0.08,-0.084,-0.087,-0.09,-0.093,-0.095,-0.097,-0.098,-0.099,-0.1,-0.1,-0.1,-0.099,-0.099,-0.098,-0.097,-0.096,-0.094,-0.092,-0.09,-0.088,-0.086,-0.084,-0.081,-0.079,-0.076,-0.073,-0.07,-0.067,-0.064,-0.061,-0.058,-0.055,-0.052,-0.048,-0.045,-0.042,-0.039,-0.036,-0.033,-0.03,-0.027,-0.024,-0.021,-0.019,-0.016,-0.014,-0.012,-0.01,-0.008,-0.006,-0.004,-0.003,-0.002,-0.001,-0.001,-0,0,-0.006,-0.021,-0.047,-0.08,-0.122,-0.169,-0.222,-0.279,-0.34,-0.402,-0.468,-0.532,-0.598,-0.66,-0.721,-0.778,-0.831,-0.878,-0.92,-0.953,-0.979,-0.994,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.997,-0.994,-0.99,-0.985,-0.978,-0.97,-0.962,-0.952,-0.942,-0.93,-0.918,-0.904,-0.89,-0.875,-0.86,-0.844,-0.827,-0.81,-0.791,-0.773,-0.754,-0.734,-0.714,-0.694,-0.673,-0.652,-0.631,-0.609,-0.588,-0.566,-0.544,-0.522,-0.5,-0.478,-0.456,-0.434,-0.412,-0.391,-0.369,-0.348,-0.327,-0.306,-0.286,-0.266,-0.246,-0.227,-0.209,-0.19,-0.173,-0.156,-0.14,-0.125,-0.11,-0.096,-0.082,-0.07,-0.058,-0.048,-0.038,-0.03,-0.022,-0.015,-0.01,-0.006,-0.003,-0.001,0\n"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/motions/Idle.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=60.0\n\n$fadein=500\n\n$fadeout=500\n\nPARAM_CHEEK=0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.601,0.603,0.606,0.61,0.615,0.621,0.628,0.636,0.645,0.655,0.665,0.676,0.688,0.7,0.712,0.725,0.738,0.752,0.765,0.779,0.793,0.807,0.821,0.835,0.848,0.862,0.875,0.888,0.9,0.912,0.924,0.935,0.945,0.955,0.964,0.972,0.979,0.985,0.99,0.994,0.997,0.999,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.995,0.994,0.994,0.993,0.993,0.992,0.991,0.991,0.99,0.989,0.988,0.988,0.987,0.986,0.985,0.984,0.983,0.983,0.982,0.981,0.98,0.979,0.978,0.977,0.975,0.974,0.973,0.972,0.971,0.97,0.969,0.967,0.966,0.965,0.964,0.962,0.961,0.96,0.958,0.957,0.956,0.954,0.953,0.951,0.95,0.948,0.947,0.945,0.944,0.942,0.941,0.939,0.937,0.936,0.934,0.933,0.931,0.929,0.927,0.926,0.924,0.922,0.921,0.919,0.917,0.915,0.913,0.912,0.91,0.908,0.906,0.904,0.902,0.9,0.898,0.896,0.895,0.893,0.891,0.889,0.887,0.885,0.883,0.881,0.879,0.877,0.875,0.872,0.87,0.868,0.866,0.864,0.862,0.86,0.858,0.856,0.853,0.851,0.849,0.847,0.845,0.843,0.84,0.838,0.836,0.834,0.832,0.829,0.827,0.825,0.823,0.82,0.818,0.816,0.814,0.811,0.809,0.807,0.804,0.802,0.8,0.798,0.795,0.793,0.791,0.788,0.786,0.784,0.781,0.779,0.777,0.775,0.772,0.77,0.768,0.765,0.763,0.761,0.758,0.756,0.754,0.751,0.749,0.746,0.744,0.742,0.739,0.737,0.735,0.732,0.73,0.728,0.725,0.723,0.721,0.719,0.716,0.714,0.712,0.709,0.707,0.705,0.702,0.7,0.698,0.696,0.693,0.691,0.689,0.686,0.684,0.682,0.68,0.677,0.675,0.673,0.671,0.668,0.666,0.664,0.662,0.66,0.657,0.655,0.653,0.651,0.649,0.647,0.644,0.642,0.64,0.638,0.636,0.634,0.632,0.63,0.628,0.625,0.623,0.621,0.619,0.617,0.615,0.613,0.611,0.609,0.607,0.605,0.604,0.602,0.6,0.598,0.596,0.594,0.592,0.59,0.588,0.587,0.585,0.583,0.581,0.579,0.578,0.576,0.574,0.573,0.571,0.569,0.567,0.566,0.564,0.563,0.561,0.559,0.558,0.556,0.555,0.553,0.552,0.55,0.549,0.547,0.546,0.544,0.543,0.542,0.54,0.539,0.538,0.536,0.535,0.534,0.533,0.531,0.53,0.529,0.528,0.527,0.526,0.525,0.523,0.522,0.521,0.52,0.519,0.518,0.517,0.517,0.516,0.515,0.514,0.513,0.512,0.512,0.511,0.51,0.509,0.509,0.508,0.507,0.507,0.506,0.506,0.505,0.505,0.504,0.504,0.503,0.503,0.502,0.502,0.502,0.501,0.501,0.501,0.501,0.501,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.501,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.502,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.503,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.504,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.505,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.506,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.507,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.508,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.509,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.511,0.511,0.511,0.511,0.511,0.511,0.511,0.511,0.511,0.511,0.512,0.512,0.512,0.512,0.512,0.512,0.512,0.512,0.512,0.512,0.513,0.513,0.513,0.513,0.513,0.513,0.513,0.513,0.513,0.513,0.514,0.514,0.514,0.514,0.514,0.514,0.514,0.514,0.514,0.514,0.515,0.515,0.515,0.515,0.515,0.515,0.515,0.515,0.515,0.516,0.516,0.516,0.516,0.516,0.516,0.516,0.516,0.516,0.516,0.517,0.517,0.517,0.517,0.517,0.517,0.517,0.517,0.518,0.518,0.518,0.518,0.518,0.518,0.518,0.518,0.518,0.519,0.519,0.519,0.519,0.519,0.519,0.519,0.519,0.519,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.52,0.521,0.521,0.521,0.521,0.521,0.521,0.521,0.521,0.521,0.522,0.522,0.522,0.522,0.522,0.522,0.522,0.522,0.523,0.523,0.523,0.523,0.523,0.523,0.523,0.523,0.524,0.524,0.524,0.524,0.524,0.524,0.524,0.524,0.525,0.525,0.525,0.525,0.525,0.525,0.525,0.525,0.526,0.526,0.526,0.526,0.526,0.526,0.526,0.526,0.527,0.527,0.527,0.527,0.527,0.527,0.527,0.528,0.528,0.528,0.528,0.528,0.528,0.528,0.528,0.529,0.529,0.529,0.529,0.529,0.529,0.529,0.529,0.53,0.53,0.53,0.53,0.53,0.53,0.53,0.531,0.531,0.531,0.531,0.531,0.531,0.531,0.532,0.532,0.532,0.532,0.532,0.532,0.532,0.532,0.533,0.533,0.533,0.533,0.533,0.533,0.533,0.534,0.534,0.534,0.534,0.534,0.534,0.534,0.535,0.535,0.535,0.535,0.535,0.535,0.535,0.535,0.536,0.536,0.536,0.536,0.536,0.536,0.536,0.537,0.537,0.537,0.537,0.537,0.537,0.537,0.538,0.538,0.538,0.538,0.538,0.538,0.538,0.539,0.539,0.539,0.539,0.539,0.539,0.539,0.54,0.54,0.54,0.54,0.54,0.54,0.54,0.541,0.541,0.541,0.541,0.541,0.541,0.541,0.542,0.542,0.542,0.542,0.542,0.542,0.542,0.543,0.543,0.543,0.543,0.543,0.543,0.543,0.544,0.544,0.544,0.544,0.544,0.544,0.544,0.545,0.545,0.545,0.545,0.545,0.545,0.545,0.546,0.546,0.546,0.546,0.546,0.546,0.546,0.547,0.547,0.547,0.547,0.547,0.547,0.547,0.548,0.548,0.548,0.548,0.548,0.548,0.548,0.549,0.549,0.549,0.549,0.549,0.549,0.549,0.55,0.55,0.55,0.55,0.55,0.55,0.55,0.551,0.551,0.551,0.551,0.551,0.551,0.551,0.552,0.552,0.552,0.552,0.552,0.552,0.552,0.553,0.553,0.553,0.553,0.553,0.553,0.553,0.554,0.554,0.554,0.554,0.554,0.554,0.554,0.555,0.555,0.555,0.555,0.555,0.555,0.555,0.556,0.556,0.556,0.556,0.556,0.556,0.556,0.557,0.557,0.557,0.557,0.557,0.557,0.557,0.558,0.558,0.558,0.558,0.558,0.558,0.558,0.559,0.559,0.559,0.559,0.559,0.559,0.559,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.561,0.561,0.561,0.561,0.561,0.561,0.561,0.562,0.562,0.562,0.562,0.562,0.562,0.562,0.563,0.563,0.563,0.563,0.563,0.563,0.563,0.564,0.564,0.564,0.564,0.564,0.564,0.564,0.565,0.565,0.565,0.565,0.565,0.565,0.565,0.565,0.566,0.566,0.566,0.566,0.566,0.566,0.566,0.567,0.567,0.567,0.567,0.567,0.567,0.567,0.568,0.568,0.568,0.568,0.568,0.568,0.568,0.568,0.569,0.569,0.569,0.569,0.569,0.569,0.569,0.57,0.57,0.57,0.57,0.57,0.57,0.57,0.571,0.571,0.571,0.571,0.571,0.571,0.571,0.571,0.572,0.572,0.572,0.572,0.572,0.572,0.572,0.572,0.573,0.573,0.573,0.573,0.573,0.573,0.573,0.574,0.574,0.574,0.574,0.574,0.574,0.574,0.574,0.575,0.575,0.575,0.575,0.575,0.575,0.575,0.575,0.576,0.576,0.576,0.576,0.576,0.576,0.576,0.576,0.577,0.577,0.577,0.577,0.577,0.577,0.577,0.577,0.578,0.578,0.578,0.578,0.578,0.578,0.578,0.578,0.579,0.579,0.579,0.579,0.579,0.579,0.579,0.579,0.579,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.58,0.581,0.581,0.581,0.581,0.581,0.581,0.581,0.581,0.581,0.582,0.582,0.582,0.582,0.582,0.582,0.582,0.582,0.582,0.583,0.583,0.583,0.583,0.583,0.583,0.583,0.583,0.584,0.584,0.584,0.584,0.584,0.584,0.584,0.584,0.584,0.584,0.585,0.585,0.585,0.585,0.585,0.585,0.585,0.585,0.585,0.586,0.586,0.586,0.586,0.586,0.586,0.586,0.586,0.586,0.586,0.587,0.587,0.587,0.587,0.587,0.587,0.587,0.587,0.587,0.587,0.588,0.588,0.588,0.588,0.588,0.588,0.588,0.588,0.588,0.588,0.589,0.589,0.589,0.589,0.589,0.589,0.589,0.589,0.589,0.589,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.59,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.591,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.592,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.593,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.594,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\nPARAM_ANGLE_X=-12,-11.997,-11.987,-11.972,-11.95,-11.923,-11.889,-11.849,-11.804,-11.753,-11.696,-11.634,-11.567,-11.494,-11.417,-11.334,-11.246,-11.153,-11.055,-10.952,-10.844,-10.732,-10.615,-10.497,-10.371,-10.241,-10.108,-9.97,-9.828,-9.682,-9.532,-9.379,-9.225,-9.064,-8.9,-8.733,-8.562,-8.389,-8.212,-8.032,-7.849,-7.667,-7.478,-7.287,-7.094,-6.897,-6.699,-6.498,-6.295,-6.09,-5.886,-5.677,-5.466,-5.254,-5.039,-4.823,-4.605,-4.386,-4.166,-3.949,-3.726,-3.502,-3.277,-3.052,-2.825,-2.598,-2.37,-2.142,-1.918,-1.688,-1.459,-1.23,-1,-0.77,-0.541,-0.312,-0.082,0.142,0.37,0.598,0.825,1.052,1.277,1.502,1.726,1.949,2.166,2.386,2.605,2.823,3.039,3.254,3.466,3.677,3.886,4.09,4.295,4.498,4.699,4.897,5.094,5.287,5.478,5.667,5.849,6.032,6.212,6.389,6.562,6.733,6.9,7.064,7.225,7.379,7.532,7.682,7.828,7.97,8.108,8.241,8.371,8.497,8.615,8.732,8.844,8.952,9.055,9.153,9.246,9.334,9.417,9.494,9.567,9.634,9.696,9.753,9.804,9.849,9.889,9.923,9.95,9.972,9.987,9.997,10,9.991,9.964,9.92,9.859,9.782,9.691,9.583,9.464,9.329,9.182,9.025,8.852,8.673,8.484,8.28,8.073,7.854,7.628,7.398,7.156,6.914,6.664,6.409,6.154,5.889,5.628,5.366,5.095,4.831,4.563,4.296,4.034,3.767,3.51,3.252,2.998,2.752,2.505,2.269,2.04,1.813,1.599,1.39,1.191,1.003,0.821,0.655,0.498,0.353,0.223,0.103,0,-0.097,-0.193,-0.287,-0.381,-0.475,-0.569,-0.661,-0.752,-0.845,-0.935,-1.025,-1.115,-1.203,-1.292,-1.379,-1.466,-1.553,-1.637,-1.724,-1.808,-1.892,-1.975,-2.057,-2.141,-2.221,-2.302,-2.383,-2.463,-2.542,-2.62,-2.698,-2.776,-2.853,-2.929,-3.004,-3.08,-3.154,-3.228,-3.302,-3.374,-3.447,-3.518,-3.589,-3.66,-3.729,-3.8,-3.868,-3.936,-4.004,-4.071,-4.139,-4.204,-4.27,-4.335,-4.399,-4.464,-4.526,-4.59,-4.652,-4.714,-4.775,-4.836,-4.896,-4.956,-5.015,-5.074,-5.131,-5.19,-5.246,-5.303,-5.359,-5.414,-5.47,-5.524,-5.578,-5.632,-5.684,-5.738,-5.789,-5.841,-5.892,-5.942,-5.993,-6.042,-6.091,-6.14,-6.187,-6.236,-6.282,-6.329,-6.376,-6.421,-6.467,-6.511,-6.555,-6.599,-6.643,-6.686,-6.728,-6.77,-6.812,-6.853,-6.893,-6.933,-6.973,-7.012,-7.051,-7.09,-7.127,-7.165,-7.202,-7.239,-7.275,-7.31,-7.346,-7.381,-7.415,-7.449,-7.482,-7.516,-7.548,-7.581,-7.613,-7.644,-7.675,-7.706,-7.736,-7.766,-7.795,-7.825,-7.853,-7.881,-7.909,-7.936,-7.964,-7.99,-8.017,-8.042,-8.068,-8.093,-8.117,-8.142,-8.165,-8.189,-8.212,-8.235,-8.257,-8.279,-8.301,-8.322,-8.343,-8.364,-8.384,-8.404,-8.423,-8.442,-8.461,-8.479,-8.497,-8.515,-8.532,-8.549,-8.566,-8.582,-8.598,-8.614,-8.629,-8.644,-8.659,-8.673,-8.687,-8.7,-8.713,-8.726,-8.739,-8.751,-8.763,-8.775,-8.786,-8.797,-8.808,-8.818,-8.828,-8.838,-8.848,-8.857,-8.866,-8.874,-8.882,-8.89,-8.898,-8.905,-8.913,-8.919,-8.926,-8.932,-8.938,-8.944,-8.949,-8.954,-8.959,-8.963,-8.968,-8.972,-8.975,-8.979,-8.982,-8.985,-8.988,-8.99,-8.992,-8.994,-8.996,-8.997,-8.998,-8.999,-9,-9,-9,-8.998,-8.992,-8.982,-8.969,-8.951,-8.93,-8.906,-8.877,-8.846,-8.811,-8.772,-8.731,-8.686,-8.639,-8.587,-8.534,-8.477,-8.417,-8.355,-8.29,-8.222,-8.151,-8.079,-8.004,-7.926,-7.846,-7.764,-7.679,-7.594,-7.506,-7.416,-7.323,-7.23,-7.134,-7.036,-6.938,-6.837,-6.735,-6.632,-6.527,-6.421,-6.315,-6.208,-6.097,-5.987,-5.877,-5.765,-5.652,-5.54,-5.425,-5.31,-5.196,-5.08,-4.964,-4.849,-4.732,-4.615,-4.5,-4.385,-4.268,-4.151,-4.036,-3.92,-3.804,-3.69,-3.575,-3.46,-3.348,-3.235,-3.123,-3.013,-2.903,-2.792,-2.685,-2.579,-2.473,-2.368,-2.265,-2.163,-2.062,-1.964,-1.866,-1.77,-1.677,-1.584,-1.494,-1.406,-1.321,-1.236,-1.154,-1.074,-0.996,-0.921,-0.849,-0.778,-0.71,-0.645,-0.583,-0.523,-0.466,-0.413,-0.361,-0.314,-0.269,-0.228,-0.189,-0.154,-0.123,-0.094,-0.07,-0.049,-0.031,-0.018,-0.008,-0.002,0,-0.002,-0.007,-0.015,-0.026,-0.041,-0.059,-0.08,-0.104,-0.131,-0.161,-0.194,-0.23,-0.268,-0.31,-0.354,-0.401,-0.45,-0.502,-0.557,-0.614,-0.673,-0.735,-0.799,-0.867,-0.935,-1.006,-1.079,-1.155,-1.232,-1.311,-1.393,-1.477,-1.563,-1.65,-1.738,-1.829,-1.921,-2.015,-2.111,-2.208,-2.307,-2.409,-2.51,-2.613,-2.717,-2.823,-2.93,-3.038,-3.147,-3.259,-3.371,-3.483,-3.596,-3.711,-3.826,-3.942,-4.058,-4.176,-4.294,-4.415,-4.535,-4.655,-4.775,-4.896,-5.017,-5.139,-5.261,-5.386,-5.508,-5.631,-5.754,-5.877,-6,-6.123,-6.246,-6.369,-6.492,-6.614,-6.739,-6.861,-6.983,-7.104,-7.225,-7.345,-7.465,-7.585,-7.706,-7.824,-7.942,-8.058,-8.174,-8.289,-8.404,-8.517,-8.629,-8.741,-8.853,-8.962,-9.07,-9.177,-9.283,-9.387,-9.49,-9.591,-9.693,-9.792,-9.889,-9.985,-10.079,-10.171,-10.262,-10.35,-10.437,-10.523,-10.607,-10.689,-10.768,-10.845,-10.921,-10.994,-11.065,-11.133,-11.201,-11.265,-11.327,-11.386,-11.443,-11.498,-11.55,-11.599,-11.646,-11.69,-11.732,-11.77,-11.806,-11.839,-11.869,-11.896,-11.92,-11.941,-11.959,-11.974,-11.985,-11.993,-11.998,-12,-11.999,-11.997,-11.994,-11.99,-11.984,-11.978,-11.97,-11.961,-11.95,-11.939,-11.926,-11.912,-11.897,-11.881,-11.864,-11.846,-11.826,-11.806,-11.785,-11.762,-11.738,-11.714,-11.688,-11.661,-11.633,-11.605,-11.575,-11.544,-11.513,-11.481,-11.447,-11.412,-11.377,-11.34,-11.303,-11.265,-11.226,-11.186,-11.145,-11.104,-11.062,-11.019,-10.974,-10.93,-10.884,-10.837,-10.79,-10.743,-10.694,-10.644,-10.594,-10.543,-10.492,-10.439,-10.386,-10.332,-10.278,-10.223,-10.168,-10.111,-10.054,-9.997,-9.938,-9.879,-9.82,-9.76,-9.7,-9.638,-9.577,-9.515,-9.452,-9.389,-9.326,-9.261,-9.196,-9.131,-9.066,-9,-8.933,-8.867,-8.799,-8.732,-8.663,-8.595,-8.526,-8.456,-8.387,-8.318,-8.247,-8.176,-8.106,-8.034,-7.962,-7.891,-7.82,-7.747,-7.674,-7.602,-7.53,-7.456,-7.382,-7.309,-7.235,-7.16,-7.087,-7.013,-6.938,-6.863,-6.789,-6.714,-6.639,-6.564,-6.49,-6.414,-6.338,-6.264,-6.189,-6.113,-6.037,-5.963,-5.887,-5.811,-5.736,-5.662,-5.586,-5.51,-5.436,-5.361,-5.286,-5.211,-5.137,-5.062,-4.987,-4.913,-4.84,-4.765,-4.691,-4.618,-4.544,-4.47,-4.398,-4.326,-4.253,-4.18,-4.109,-4.038,-3.966,-3.894,-3.824,-3.753,-3.682,-3.613,-3.544,-3.474,-3.405,-3.337,-3.268,-3.201,-3.133,-3.067,-3,-2.934,-2.869,-2.804,-2.739,-2.674,-2.611,-2.548,-2.485,-2.423,-2.362,-2.3,-2.24,-2.18,-2.121,-2.062,-2.003,-1.946,-1.889,-1.832,-1.777,-1.722,-1.668,-1.614,-1.561,-1.508,-1.457,-1.406,-1.356,-1.306,-1.257,-1.21,-1.163,-1.116,-1.07,-1.026,-0.981,-0.938,-0.896,-0.855,-0.814,-0.774,-0.735,-0.697,-0.66,-0.623,-0.588,-0.553,-0.519,-0.487,-0.456,-0.425,-0.395,-0.367,-0.339,-0.312,-0.286,-0.262,-0.238,-0.215,-0.194,-0.174,-0.154,-0.136,-0.119,-0.103,-0.088,-0.074,-0.061,-0.05,-0.039,-0.03,-0.022,-0.016,-0.01,-0.006,-0.003,-0.001,0,-0,-0,-0.001,-0.002,-0.002,-0.003,-0.005,-0.006,-0.008,-0.009,-0.011,-0.013,-0.016,-0.018,-0.021,-0.024,-0.026,-0.03,-0.033,-0.036,-0.04,-0.044,-0.048,-0.052,-0.056,-0.06,-0.065,-0.07,-0.074,-0.079,-0.085,-0.09,-0.095,-0.101,-0.107,-0.112,-0.118,-0.125,-0.131,-0.137,-0.144,-0.15,-0.157,-0.164,-0.171,-0.178,-0.185,-0.193,-0.2,-0.208,-0.216,-0.224,-0.232,-0.24,-0.248,-0.256,-0.265,-0.273,-0.282,-0.29,-0.299,-0.308,-0.317,-0.326,-0.335,-0.345,-0.354,-0.363,-0.373,-0.383,-0.392,-0.402,-0.412,-0.422,-0.432,-0.442,-0.452,-0.463,-0.473,-0.483,-0.494,-0.504,-0.515,-0.526,-0.536,-0.547,-0.558,-0.569,-0.58,-0.591,-0.602,-0.613,-0.624,-0.636,-0.647,-0.658,-0.67,-0.681,-0.692,-0.704,-0.716,-0.727,-0.739,-0.75,-0.762,-0.774,-0.785,-0.797,-0.809,-0.821,-0.833,-0.845,-0.857,-0.868,-0.88,-0.892,-0.904,-0.916,-0.928,-0.94,-0.952,-0.964,-0.976,-0.988,-1,-1.012,-1.024,-1.036,-1.048,-1.06,-1.072,-1.084,-1.096,-1.108,-1.12,-1.132,-1.143,-1.155,-1.167,-1.179,-1.191,-1.203,-1.215,-1.226,-1.238,-1.25,-1.261,-1.273,-1.284,-1.296,-1.308,-1.319,-1.33,-1.342,-1.353,-1.364,-1.376,-1.387,-1.398,-1.409,-1.42,-1.431,-1.442,-1.453,-1.464,-1.474,-1.485,-1.496,-1.506,-1.517,-1.527,-1.537,-1.548,-1.558,-1.568,-1.578,-1.588,-1.598,-1.608,-1.617,-1.627,-1.637,-1.646,-1.655,-1.665,-1.674,-1.683,-1.692,-1.701,-1.71,-1.718,-1.727,-1.735,-1.744,-1.752,-1.76,-1.768,-1.776,-1.784,-1.792,-1.8,-1.807,-1.815,-1.822,-1.829,-1.836,-1.843,-1.85,-1.856,-1.863,-1.869,-1.875,-1.882,-1.888,-1.893,-1.899,-1.905,-1.91,-1.915,-1.921,-1.926,-1.93,-1.935,-1.94,-1.944,-1.948,-1.952,-1.956,-1.96,-1.964,-1.967,-1.97,-1.974,-1.976,-1.979,-1.982,-1.984,-1.987,-1.989,-1.991,-1.992,-1.994,-1.995,-1.997,-1.998,-1.998,-1.999,-2,-2,-2,-1.999,-1.998,-1.995,-1.992,-1.987,-1.981,-1.975,-1.967,-1.959,-1.949,-1.939,-1.927,-1.915,-1.902,-1.888,-1.873,-1.856,-1.84,-1.822,-1.803,-1.784,-1.764,-1.743,-1.721,-1.698,-1.675,-1.65,-1.625,-1.599,-1.572,-1.545,-1.517,-1.488,-1.458,-1.428,-1.397,-1.366,-1.333,-1.3,-1.266,-1.232,-1.196,-1.161,-1.125,-1.088,-1.05,-1.012,-0.973,-0.934,-0.894,-0.854,-0.813,-0.771,-0.729,-0.686,-0.643,-0.6,-0.556,-0.511,-0.466,-0.421,-0.375,-0.328,-0.281,-0.234,-0.187,-0.138,-0.09,-0.042,0.008,0.058,0.107,0.158,0.209,0.259,0.31,0.362,0.414,0.466,0.518,0.571,0.624,0.676,0.73,0.784,0.837,0.892,0.946,1,1.054,1.109,1.165,1.219,1.274,1.33,1.385,1.441,1.497,1.553,1.608,1.663,1.72,1.776,1.832,1.888,1.944,2,2.056,2.112,2.168,2.224,2.28,2.337,2.392,2.447,2.503,2.559,2.615,2.67,2.726,2.781,2.835,2.891,2.946,3,3.054,3.108,3.163,3.216,3.27,3.324,3.376,3.429,3.482,3.534,3.586,3.638,3.69,3.741,3.791,3.842,3.893,3.942,3.992,4.042,4.09,4.138,4.187,4.234,4.281,4.328,4.375,4.421,4.466,4.511,4.556,4.6,4.643,4.686,4.729,4.771,4.813,4.854,4.894,4.934,4.973,5.012,5.05,5.088,5.125,5.161,5.196,5.232,5.266,5.3,5.333,5.366,5.397,5.428,5.458,5.488,5.517,5.545,5.572,5.599,5.625,5.65,5.675,5.698,5.721,5.743,5.764,5.784,5.803,5.822,5.84,5.856,5.873,5.888,5.902,5.915,5.927,5.939,5.949,5.959,5.967,5.975,5.981,5.987,5.992,5.995,5.998,5.999,6,6,5.999,5.998,5.997,5.996,5.994,5.992,5.989,5.986,5.983,5.979,5.975,5.971,5.966,5.961,5.956,5.951,5.945,5.938,5.932,5.925,5.917,5.91,5.902,5.893,5.885,5.876,5.867,5.857,5.847,5.836,5.826,5.815,5.804,5.792,5.78,5.768,5.755,5.742,5.729,5.715,5.702,5.687,5.673,5.658,5.643,5.627,5.611,5.595,5.579,5.562,5.545,5.528,5.51,5.491,5.473,5.455,5.436,5.416,5.396,5.377,5.356,5.336,5.315,5.293,5.272,5.25,5.228,5.205,5.183,5.16,5.136,5.113,5.088,5.064,5.039,5.015,4.989,4.964,4.938,4.912,4.885,4.858,4.831,4.804,4.776,4.748,4.72,4.691,4.662,4.633,4.604,4.574,4.544,4.513,4.483,4.452,4.421,4.389,4.357,4.325,4.293,4.26,4.227,4.194,4.16,4.126,4.092,4.057,4.023,3.988,3.952,3.916,3.88,3.844,3.808,3.771,3.734,3.696,3.659,3.621,3.583,3.544,3.505,3.466,3.427,3.387,3.347,3.307,3.266,3.226,3.185,3.143,3.101,3.06,3.018,2.975,2.932,2.889,2.846,2.803,2.759,2.715,2.67,2.626,2.581,2.536,2.49,2.444,2.399,2.353,2.306,2.259,2.212,2.165,2.117,2.069,2.021,1.973,1.924,1.875,1.826,1.776,1.727,1.677,1.627,1.576,1.525,1.474,1.423,1.372,1.319,1.267,1.215,1.163,1.11,1.057,1.003,0.95,0.896,0.842,0.787,0.732,0.678,0.623,0.568,0.512,0.455,0.4,0.344,0.287,0.23,0.172,0.116,0.058,0,-0.058,-0.115,-0.173,-0.231,-0.288,-0.346,-0.402,-0.459,-0.516,-0.573,-0.629,-0.686,-0.741,-0.798,-0.854,-0.909,-0.965,-1.02,-1.075,-1.131,-1.186,-1.24,-1.295,-1.35,-1.404,-1.459,-1.512,-1.566,-1.62,-1.674,-1.728,-1.781,-1.834,-1.887,-1.94,-1.993,-2.046,-2.098,-2.15,-2.203,-2.254,-2.307,-2.358,-2.41,-2.462,-2.513,-2.564,-2.616,-2.666,-2.717,-2.768,-2.818,-2.869,-2.919,-2.969,-3.019,-3.069,-3.118,-3.168,-3.217,-3.266,-3.316,-3.364,-3.413,-3.462,-3.51,-3.559,-3.607,-3.654,-3.703,-3.75,-3.798,-3.846,-3.893,-3.94,-3.987,-4.034,-4.081,-4.128,-4.174,-4.22,-4.266,-4.312,-4.359,-4.404,-4.45,-4.496,-4.541,-4.586,-4.631,-4.675,-4.721,-4.766,-4.809,-4.854,-4.898,-4.942,-4.986,-5.03,-5.073,-5.117,-5.161,-5.204,-5.247,-5.289,-5.332,-5.376,-5.417,-5.46,-5.502,-5.544,-5.586,-5.628,-5.67,-5.711,-5.753,-5.794,-5.835,-5.875,-5.917,-5.958,-5.998,-6.038,-6.078,-6.118,-6.159,-6.198,-6.238,-6.278,-6.317,-6.356,-6.396,-6.434,-6.473,-6.512,-6.55,-6.589,-6.627,-6.665,-6.703,-6.741,-6.779,-6.817,-6.853,-6.891,-6.928,-6.965,-7.002,-7.039,-7.075,-7.112,-7.148,-7.184,-7.221,-7.256,-7.292,-7.328,-7.363,-7.398,-7.434,-7.468,-7.504,-7.538,-7.573,-7.608,-7.642,-7.676,-7.71,-7.744,-7.778,-7.812,-7.845,-7.879,-7.912,-7.945,-7.978,-8.011,-8.043,-8.076,-8.108,-8.141,-8.173,-8.205,-8.237,-8.269,-8.3,-8.332,-8.363,-8.394,-8.425,-8.456,-8.487,-8.518,-8.548,-8.578,-8.609,-8.638,-8.668,-8.699,-8.728,-8.758,-8.787,-8.816,-8.845,-8.874,-8.903,-8.932,-8.96,-8.989,-9.017,-9.045,-9.073,-9.101,-9.129,-9.157,-9.184,-9.211,-9.239,-9.266,-9.293,-9.32,-9.346,-9.373,-9.399,-9.425,-9.451,-9.478,-9.503,-9.529,-9.554,-9.58,-9.605,-9.63,-9.655,-9.68,-9.705,-9.73,-9.754,-9.778,-9.803,-9.827,-9.851,-9.875,-9.898,-9.922,-9.945,-9.968,-9.991,-10.015,-10.037,-10.06,-10.083,-10.105,-10.127,-10.15,-10.172,-10.194,-10.215,-10.237,-10.259,-10.28,-10.301,-10.322,-10.343,-10.364,-10.385,-10.405,-10.426,-10.446,-10.466,-10.486,-10.506,-10.526,-10.546,-10.565,-10.584,-10.604,-10.623,-10.642,-10.661,-10.679,-10.698,-10.716,-10.734,-10.753,-10.771,-10.789,-10.807,-10.824,-10.841,-10.859,-10.876,-10.893,-10.91,-10.927,-10.944,-10.96,-10.977,-10.993,-11.009,-11.025,-11.041,-11.057,-11.072,-11.088,-11.103,-11.119,-11.134,-11.149,-11.164,-11.178,-11.193,-11.207,-11.222,-11.236,-11.25,-11.264,-11.277,-11.291,-11.305,-11.318,-11.331,-11.344,-11.357,-11.37,-11.383,-11.396,-11.408,-11.42,-11.433,-11.445,-11.457,-11.469,-11.48,-11.492,-11.503,-11.514,-11.526,-11.537,-11.547,-11.558,-11.569,-11.579,-11.59,-11.6,-11.61,-11.62,-11.63,-11.64,-11.649,-11.659,-11.668,-11.677,-11.686,-11.695,-11.704,-11.713,-11.721,-11.73,-11.738,-11.746,-11.754,-11.762,-11.77,-11.777,-11.785,-11.792,-11.8,-11.807,-11.814,-11.821,-11.827,-11.834,-11.84,-11.847,-11.853,-11.859,-11.865,-11.871,-11.876,-11.882,-11.887,-11.893,-11.898,-11.903,-11.908,-11.913,-11.917,-11.922,-11.926,-11.931,-11.935,-11.939,-11.943,-11.946,-11.95,-11.954,-11.957,-11.96,-11.963,-11.966,-11.969,-11.972,-11.975,-11.977,-11.979,-11.982,-11.984,-11.986,-11.988,-11.989,-11.991,-11.992,-11.994,-11.995,-11.996,-11.997,-11.998,-11.998,-11.999,-11.999,-12,-12,-12\nPARAM_ANGLE_Y=0,0.005,0.019,0.041,0.072,0.112,0.161,0.216,0.28,0.352,0.431,0.516,0.609,0.709,0.816,0.926,1.045,1.169,1.3,1.432,1.573,1.719,1.869,2.024,2.18,2.343,2.51,2.68,2.851,3.028,3.208,3.39,3.571,3.759,3.948,4.139,4.328,4.522,4.717,4.913,5.106,5.303,5.5,5.697,5.894,6.087,6.283,6.478,6.672,6.861,7.052,7.241,7.429,7.61,7.792,7.972,8.149,8.32,8.49,8.657,8.82,8.976,9.131,9.281,9.427,9.568,9.7,9.831,9.955,10.074,10.184,10.291,10.391,10.484,10.569,10.648,10.72,10.784,10.839,10.888,10.928,10.959,10.981,10.995,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.992,-12.969,-12.93,-12.876,-12.807,-12.724,-12.628,-12.518,-12.395,-12.259,-12.11,-11.949,-11.775,-11.588,-11.393,-11.186,-10.969,-10.742,-10.505,-10.259,-10,-9.735,-9.459,-9.177,-8.888,-8.591,-8.287,-7.976,-7.659,-7.331,-6.998,-6.663,-6.323,-5.978,-5.628,-5.274,-4.917,-4.555,-4.187,-3.815,-3.446,-3.074,-2.7,-2.325,-1.948,-1.571,-1.189,-0.811,-0.429,-0.052,0.325,0.7,1.074,1.446,1.815,2.187,2.555,2.917,3.274,3.628,3.978,4.323,4.663,4.998,5.331,5.659,5.976,6.287,6.591,6.888,7.177,7.459,7.735,8,8.259,8.505,8.742,8.969,9.186,9.393,9.588,9.775,9.949,10.11,10.259,10.395,10.518,10.628,10.724,10.807,10.876,10.93,10.969,10.992,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.99,-12.962,-12.914,-12.849,-12.766,-12.665,-12.55,-12.416,-12.265,-12.103,-11.922,-11.727,-11.521,-11.298,-11.066,-10.817,-10.556,-10.288,-10.003,-9.707,-9.407,-9.091,-8.771,-8.436,-8.093,-7.748,-7.388,-7.021,-6.655,-6.275,-5.897,-5.505,-5.108,-4.715,-4.31,-3.901,-3.497,-3.082,-2.669,-2.255,-1.834,-1.422,-1,-0.578,-0.166,0.255,0.669,1.082,1.497,1.901,2.31,2.715,3.108,3.505,3.897,4.275,4.655,5.021,5.388,5.748,6.093,6.436,6.771,7.091,7.407,7.707,8.003,8.288,8.556,8.817,9.066,9.298,9.521,9.727,9.922,10.103,10.265,10.416,10.55,10.665,10.766,10.849,10.914,10.962,10.99,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.99,-12.959,-12.908,-12.839,-12.749,-12.642,-12.518,-12.373,-12.215,-12.039,-11.846,-11.641,-11.416,-11.181,-10.933,-10.666,-10.392,-10.105,-9.801,-9.491,-9.171,-8.833,-8.493,-8.143,-7.778,-7.411,-7.037,-6.647,-6.259,-5.864,-5.456,-5.05,-4.631,-4.217,-3.798,-3.368,-2.944,-2.517,-2.08,-1.65,-1.22,-0.78,-0.35,0.08,0.517,0.944,1.368,1.798,2.217,2.631,3.05,3.456,3.864,4.259,4.647,5.037,5.411,5.778,6.143,6.493,6.833,7.171,7.491,7.801,8.105,8.392,8.666,8.933,9.181,9.416,9.641,9.846,10.039,10.215,10.373,10.518,10.642,10.749,10.839,10.908,10.959,10.99,11,10.992,10.969,10.932,10.88,10.815,10.736,10.645,10.541,10.426,10.299,10.162,10.014,9.857,9.69,9.514,9.329,9.137,8.937,8.731,8.518,8.299,8.074,7.844,7.61,7.368,7.13,6.881,6.637,6.383,6.135,5.878,5.629,5.371,5.122,4.865,4.617,4.363,4.119,3.87,3.632,3.39,3.156,2.926,2.701,2.482,2.269,2.063,1.863,1.671,1.486,1.31,1.143,0.986,0.838,0.701,0.574,0.459,0.355,0.264,0.185,0.12,0.068,0.031,0.008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.003,0.005,0.007,0.01,0.014,0.018,0.023,0.028,0.034,0.04,0.047,0.054,0.062,0.071,0.079,0.089,0.099,0.109,0.12,0.131,0.143,0.155,0.168,0.181,0.195,0.209,0.223,0.238,0.254,0.27,0.286,0.303,0.32,0.337,0.355,0.374,0.393,0.412,0.431,0.451,0.471,0.492,0.513,0.535,0.556,0.579,0.601,0.624,0.647,0.671,0.695,0.719,0.743,0.768,0.794,0.819,0.845,0.871,0.897,0.924,0.951,0.978,1.006,1.034,1.062,1.09,1.119,1.148,1.177,1.206,1.236,1.266,1.296,1.326,1.357,1.388,1.419,1.45,1.481,1.513,1.545,1.577,1.609,1.642,1.674,1.707,1.74,1.773,1.806,1.839,1.873,1.907,1.941,1.975,2.009,2.043,2.077,2.112,2.147,2.182,2.216,2.251,2.286,2.321,2.356,2.392,2.427,2.463,2.498,2.534,2.57,2.605,2.64,2.676,2.713,2.748,2.784,2.82,2.856,2.892,2.928,2.964,3,3.036,3.072,3.108,3.144,3.18,3.216,3.252,3.287,3.324,3.36,3.395,3.43,3.466,3.502,3.537,3.573,3.608,3.644,3.679,3.714,3.749,3.784,3.818,3.853,3.888,3.923,3.957,3.991,4.025,4.059,4.093,4.127,4.161,4.194,4.227,4.26,4.293,4.326,4.358,4.391,4.423,4.455,4.487,4.519,4.55,4.581,4.612,4.643,4.674,4.704,4.734,4.764,4.794,4.823,4.852,4.881,4.91,4.938,4.966,4.994,5.022,5.049,5.076,5.103,5.129,5.155,5.181,5.206,5.232,5.257,5.281,5.305,5.329,5.353,5.376,5.399,5.421,5.444,5.466,5.487,5.508,5.529,5.549,5.569,5.588,5.607,5.626,5.645,5.663,5.68,5.697,5.714,5.73,5.746,5.762,5.777,5.791,5.805,5.819,5.832,5.845,5.857,5.869,5.88,5.891,5.901,5.911,5.921,5.929,5.938,5.946,5.953,5.96,5.966,5.972,5.977,5.982,5.986,5.99,5.993,5.995,5.997,5.999,6,6,5.999,5.997,5.993,5.988,5.981,5.972,5.962,5.951,5.938,5.924,5.908,5.891,5.872,5.853,5.832,5.809,5.785,5.76,5.733,5.705,5.676,5.646,5.614,5.581,5.547,5.512,5.475,5.437,5.399,5.359,5.317,5.275,5.232,5.188,5.142,5.096,5.048,4.999,4.95,4.899,4.847,4.794,4.741,4.687,4.631,4.575,4.518,4.46,4.4,4.341,4.281,4.219,4.156,4.094,4.029,3.964,3.899,3.834,3.767,3.699,3.631,3.563,3.492,3.422,3.352,3.28,3.207,3.135,3.063,2.987,2.914,2.839,2.763,2.687,2.611,2.535,2.457,2.379,2.302,2.223,2.143,2.065,1.985,1.905,1.824,1.744,1.662,1.581,1.5,1.418,1.336,1.253,1.171,1.089,1.004,0.922,0.839,0.755,0.671,0.588,0.505,0.42,0.336,0.253,0.168,0.083,0,-0.083,-0.168,-0.253,-0.336,-0.42,-0.505,-0.588,-0.671,-0.755,-0.839,-0.922,-1.004,-1.089,-1.171,-1.253,-1.336,-1.418,-1.5,-1.581,-1.662,-1.744,-1.824,-1.905,-1.985,-2.065,-2.143,-2.223,-2.302,-2.379,-2.457,-2.535,-2.611,-2.687,-2.763,-2.839,-2.914,-2.987,-3.063,-3.135,-3.207,-3.28,-3.352,-3.422,-3.492,-3.563,-3.631,-3.699,-3.767,-3.834,-3.899,-3.964,-4.029,-4.094,-4.156,-4.219,-4.281,-4.341,-4.4,-4.46,-4.518,-4.575,-4.631,-4.687,-4.741,-4.794,-4.847,-4.899,-4.95,-4.999,-5.048,-5.096,-5.142,-5.188,-5.232,-5.275,-5.317,-5.359,-5.399,-5.437,-5.475,-5.512,-5.547,-5.581,-5.614,-5.646,-5.676,-5.705,-5.733,-5.76,-5.785,-5.809,-5.832,-5.853,-5.872,-5.891,-5.908,-5.924,-5.938,-5.951,-5.962,-5.972,-5.981,-5.988,-5.993,-5.997,-5.999,-6,-6,-5.998,-5.996,-5.993,-5.988,-5.983,-5.978,-5.971,-5.963,-5.955,-5.945,-5.935,-5.924,-5.913,-5.9,-5.886,-5.872,-5.858,-5.842,-5.825,-5.808,-5.79,-5.772,-5.752,-5.732,-5.711,-5.69,-5.668,-5.645,-5.621,-5.597,-5.572,-5.547,-5.521,-5.494,-5.467,-5.439,-5.411,-5.382,-5.352,-5.322,-5.291,-5.261,-5.229,-5.196,-5.163,-5.131,-5.097,-5.062,-5.028,-4.992,-4.957,-4.921,-4.885,-4.848,-4.811,-4.773,-4.735,-4.696,-4.657,-4.618,-4.579,-4.539,-4.499,-4.458,-4.417,-4.376,-4.335,-4.293,-4.25,-4.208,-4.166,-4.123,-4.08,-4.036,-3.993,-3.95,-3.906,-3.861,-3.817,-3.773,-3.728,-3.683,-3.638,-3.593,-3.548,-3.503,-3.458,-3.412,-3.366,-3.321,-3.275,-3.229,-3.183,-3.137,-3.092,-3.046,-3,-2.954,-2.908,-2.863,-2.817,-2.771,-2.725,-2.679,-2.634,-2.588,-2.542,-2.497,-2.452,-2.407,-2.362,-2.317,-2.272,-2.227,-2.183,-2.139,-2.094,-2.05,-2.007,-1.964,-1.92,-1.877,-1.834,-1.792,-1.75,-1.707,-1.665,-1.624,-1.583,-1.542,-1.501,-1.461,-1.421,-1.382,-1.343,-1.304,-1.265,-1.227,-1.189,-1.152,-1.115,-1.079,-1.043,-1.008,-0.972,-0.938,-0.903,-0.869,-0.837,-0.804,-0.771,-0.739,-0.709,-0.678,-0.648,-0.618,-0.589,-0.561,-0.533,-0.506,-0.479,-0.453,-0.428,-0.403,-0.379,-0.355,-0.332,-0.31,-0.289,-0.268,-0.248,-0.228,-0.21,-0.192,-0.175,-0.158,-0.142,-0.128,-0.114,-0.1,-0.087,-0.076,-0.065,-0.055,-0.045,-0.037,-0.029,-0.022,-0.017,-0.012,-0.007,-0.004,-0.002,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_ANGLE_Z=8,7.998,7.993,7.984,7.971,7.955,7.935,7.912,7.885,7.856,7.822,7.786,7.746,7.703,7.658,7.609,7.556,7.502,7.444,7.382,7.319,7.253,7.183,7.111,7.037,6.959,6.88,6.798,6.712,6.625,6.536,6.443,6.349,6.251,6.152,6.052,5.947,5.843,5.736,5.625,5.514,5.402,5.285,5.169,5.051,4.929,4.807,4.684,4.557,4.431,4.303,4.172,4.041,3.906,3.773,3.639,3.5,3.363,3.225,3.083,2.943,2.801,2.656,2.513,2.369,2.221,2.075,1.929,1.778,1.631,1.482,1.33,1.18,1.029,0.877,0.726,0.571,0.42,0.268,0.113,-0.04,-0.192,-0.347,-0.5,-0.653,-0.808,-0.96,-1.113,-1.268,-1.42,-1.571,-1.726,-1.877,-2.029,-2.18,-2.33,-2.482,-2.631,-2.778,-2.929,-3.075,-3.221,-3.369,-3.513,-3.656,-3.801,-3.943,-4.083,-4.225,-4.363,-4.5,-4.639,-4.773,-4.906,-5.041,-5.172,-5.303,-5.431,-5.557,-5.684,-5.807,-5.929,-6.051,-6.169,-6.285,-6.402,-6.514,-6.625,-6.736,-6.843,-6.947,-7.052,-7.152,-7.251,-7.349,-7.443,-7.536,-7.625,-7.712,-7.798,-7.88,-7.959,-8.037,-8.111,-8.183,-8.253,-8.319,-8.382,-8.444,-8.502,-8.556,-8.609,-8.658,-8.703,-8.746,-8.786,-8.822,-8.856,-8.885,-8.912,-8.935,-8.955,-8.971,-8.984,-8.993,-8.998,-9,-8.998,-8.992,-8.981,-8.967,-8.948,-8.926,-8.9,-8.869,-8.836,-8.798,-8.756,-8.711,-8.662,-8.61,-8.554,-8.494,-8.432,-8.366,-8.295,-8.223,-8.147,-8.067,-7.985,-7.901,-7.811,-7.72,-7.625,-7.527,-7.428,-7.324,-7.219,-7.111,-6.998,-6.885,-6.77,-6.65,-6.529,-6.407,-6.279,-6.151,-6.022,-5.887,-5.753,-5.616,-5.476,-5.336,-5.191,-5.047,-4.901,-4.75,-4.601,-4.45,-4.294,-4.139,-3.983,-3.822,-3.663,-3.503,-3.338,-3.175,-3.009,-2.841,-2.674,-2.503,-2.334,-2.164,-1.989,-1.817,-1.644,-1.467,-1.292,-1.117,-0.937,-0.761,-0.583,-0.402,-0.223,-0.043,0.138,0.318,0.502,0.682,0.862,1.046,1.227,1.408,1.592,1.773,1.954,2.138,2.318,2.498,2.682,2.862,3.043,3.223,3.402,3.583,3.761,3.937,4.117,4.292,4.467,4.644,4.817,4.989,5.164,5.334,5.503,5.674,5.841,6.009,6.175,6.338,6.503,6.663,6.822,6.983,7.139,7.294,7.45,7.601,7.75,7.901,8.047,8.191,8.336,8.476,8.616,8.753,8.887,9.022,9.151,9.279,9.407,9.529,9.65,9.77,9.885,9.998,10.111,10.219,10.324,10.428,10.527,10.625,10.72,10.811,10.901,10.985,11.067,11.147,11.223,11.295,11.366,11.432,11.494,11.554,11.61,11.662,11.711,11.756,11.798,11.836,11.869,11.9,11.926,11.948,11.967,11.981,11.992,11.998,12,11.999,11.994,11.987,11.976,11.963,11.947,11.928,11.906,11.881,11.853,11.823,11.791,11.755,11.717,11.676,11.633,11.587,11.539,11.488,11.435,11.379,11.32,11.26,11.197,11.133,11.066,10.995,10.923,10.849,10.773,10.695,10.615,10.532,10.447,10.361,10.273,10.183,10.091,9.997,9.9,9.802,9.703,9.602,9.5,9.394,9.287,9.18,9.07,8.96,8.847,8.732,8.616,8.499,8.381,8.262,8.141,8.017,7.892,7.768,7.642,7.515,7.386,7.256,7.123,6.992,6.859,6.726,6.591,6.454,6.316,6.178,6.04,5.901,5.761,5.619,5.475,5.333,5.191,5.047,4.903,4.757,4.61,4.464,4.318,4.171,4.024,3.874,3.724,3.576,3.428,3.279,3.129,2.978,2.829,2.677,2.527,2.377,2.227,2.075,1.925,1.773,1.623,1.473,1.323,1.173,1.022,0.871,0.721,0.572,0.424,0.276,0.126,-0.024,-0.171,-0.318,-0.464,-0.61,-0.757,-0.903,-1.047,-1.191,-1.333,-1.475,-1.619,-1.761,-1.901,-2.04,-2.178,-2.316,-2.454,-2.591,-2.726,-2.859,-2.992,-3.123,-3.256,-3.386,-3.515,-3.642,-3.768,-3.892,-4.017,-4.141,-4.262,-4.381,-4.499,-4.616,-4.732,-4.847,-4.96,-5.07,-5.18,-5.287,-5.394,-5.5,-5.602,-5.703,-5.802,-5.9,-5.997,-6.091,-6.183,-6.273,-6.361,-6.447,-6.532,-6.615,-6.695,-6.773,-6.849,-6.923,-6.995,-7.066,-7.133,-7.197,-7.26,-7.32,-7.379,-7.435,-7.488,-7.539,-7.587,-7.633,-7.676,-7.717,-7.755,-7.791,-7.823,-7.853,-7.881,-7.906,-7.928,-7.947,-7.963,-7.976,-7.987,-7.994,-7.999,-8,-7.998,-7.99,-7.978,-7.961,-7.939,-7.913,-7.883,-7.847,-7.808,-7.764,-7.715,-7.663,-7.606,-7.546,-7.481,-7.413,-7.34,-7.264,-7.185,-7.101,-7.014,-6.925,-6.83,-6.734,-6.634,-6.531,-6.424,-6.314,-6.202,-6.086,-5.968,-5.846,-5.722,-5.596,-5.467,-5.335,-5.202,-5.065,-4.929,-4.789,-4.646,-4.501,-4.354,-4.206,-4.055,-3.903,-3.749,-3.594,-3.436,-3.278,-3.118,-2.957,-2.794,-2.633,-2.466,-2.303,-2.136,-1.968,-1.8,-1.63,-1.46,-1.29,-1.119,-0.947,-0.775,-0.603,-0.43,-0.258,-0.088,0.088,0.258,0.43,0.603,0.775,0.947,1.119,1.29,1.46,1.63,1.8,1.968,2.136,2.303,2.466,2.633,2.794,2.957,3.118,3.278,3.436,3.594,3.749,3.903,4.055,4.206,4.354,4.501,4.646,4.789,4.929,5.065,5.202,5.335,5.467,5.596,5.722,5.846,5.968,6.086,6.202,6.314,6.424,6.531,6.634,6.734,6.83,6.925,7.014,7.101,7.185,7.264,7.34,7.413,7.481,7.546,7.606,7.663,7.715,7.764,7.808,7.847,7.883,7.913,7.939,7.961,7.978,7.99,7.998,8,8,8,7.999,7.999,7.998,7.997,7.996,7.995,7.994,7.992,7.991,7.989,7.987,7.985,7.983,7.98,7.977,7.975,7.972,7.969,7.965,7.962,7.958,7.954,7.95,7.946,7.941,7.937,7.932,7.927,7.921,7.916,7.91,7.904,7.898,7.892,7.886,7.879,7.872,7.865,7.858,7.85,7.843,7.835,7.826,7.818,7.809,7.801,7.792,7.782,7.773,7.763,7.753,7.743,7.732,7.722,7.711,7.699,7.688,7.676,7.664,7.652,7.64,7.627,7.614,7.601,7.588,7.574,7.56,7.546,7.531,7.516,7.502,7.486,7.471,7.455,7.439,7.422,7.406,7.389,7.372,7.354,7.336,7.318,7.3,7.281,7.262,7.243,7.224,7.204,7.184,7.163,7.142,7.121,7.1,7.079,7.056,7.034,7.012,6.989,6.966,6.942,6.918,6.894,6.87,6.845,6.82,6.794,6.769,6.743,6.716,6.69,6.663,6.635,6.607,6.579,6.551,6.522,6.493,6.464,6.434,6.403,6.373,6.342,6.311,6.279,6.247,6.215,6.182,6.149,6.116,6.082,6.048,6.014,5.979,5.943,5.908,5.872,5.835,5.798,5.761,5.724,5.686,5.648,5.609,5.57,5.531,5.491,5.451,5.41,5.369,5.327,5.286,5.243,5.2,5.158,5.114,5.07,5.026,4.982,4.936,4.89,4.845,4.799,4.752,4.704,4.657,4.608,4.56,4.511,4.462,4.412,4.362,4.311,4.261,4.209,4.156,4.104,4.051,3.997,3.944,3.89,3.835,3.78,3.725,3.668,3.612,3.555,3.498,3.44,3.381,3.323,3.264,3.204,3.143,3.083,3.021,2.959,2.898,2.835,2.772,2.708,2.644,2.58,2.515,2.449,2.383,2.316,2.249,2.182,2.115,2.046,1.976,1.907,1.837,1.767,1.695,1.624,1.552,1.479,1.406,1.333,1.258,1.183,1.109,1.032,0.956,0.88,0.803,0.725,0.646,0.567,0.488,0.408,0.327,0.247,0.165,0.082,0,-0.089,-0.191,-0.305,-0.431,-0.565,-0.712,-0.87,-1.038,-1.216,-1.403,-1.599,-1.804,-2.016,-2.233,-2.46,-2.695,-2.936,-3.184,-3.437,-3.696,-3.959,-4.228,-4.496,-4.772,-5.052,-5.335,-5.621,-5.909,-6.199,-6.491,-6.784,-7.072,-7.366,-7.66,-7.954,-8.247,-8.538,-8.828,-9.117,-9.402,-9.681,-9.961,-10.238,-10.51,-10.779,-11.043,-11.302,-11.555,-11.803,-12.04,-12.275,-12.503,-12.723,-12.936,-13.141,-13.337,-13.524,-13.702,-13.868,-14.026,-14.174,-14.311,-14.437,-14.551,-14.654,-14.743,-14.82,-14.883,-14.934,-14.97,-14.993,-15,-14.997,-14.99,-14.978,-14.961,-14.94,-14.914,-14.883,-14.849,-14.81,-14.766,-14.72,-14.669,-14.613,-14.556,-14.493,-14.427,-14.359,-14.285,-14.209,-14.131,-14.048,-13.962,-13.875,-13.784,-13.69,-13.595,-13.495,-13.393,-13.291,-13.185,-13.076,-12.968,-12.855,-12.741,-12.627,-12.509,-12.389,-12.271,-12.148,-12.024,-11.902,-11.776,-11.649,-11.524,-11.395,-11.265,-11.138,-11.007,-10.876,-10.747,-10.615,-10.483,-10.354,-10.222,-10.09,-9.962,-9.83,-9.699,-9.572,-9.442,-9.313,-9.187,-9.06,-8.933,-8.811,-8.687,-8.564,-8.445,-8.325,-8.206,-8.092,-7.977,-7.863,-7.755,-7.645,-7.538,-7.435,-7.333,-7.232,-7.137,-7.042,-6.949,-6.862,-6.775,-6.691,-6.612,-6.535,-6.461,-6.391,-6.324,-6.26,-6.201,-6.145,-6.092,-6.045,-6,-5.958,-5.915,-5.873,-5.831,-5.789,-5.747,-5.704,-5.662,-5.62,-5.577,-5.536,-5.494,-5.451,-5.409,-5.367,-5.325,-5.283,-5.241,-5.198,-5.157,-5.115,-5.072,-5.031,-4.989,-4.946,-4.905,-4.863,-4.821,-4.779,-4.737,-4.695,-4.654,-4.611,-4.57,-4.528,-4.486,-4.445,-4.403,-4.361,-4.32,-4.278,-4.236,-4.195,-4.153,-4.112,-4.07,-4.028,-3.987,-3.946,-3.904,-3.863,-3.822,-3.78,-3.74,-3.699,-3.657,-3.616,-3.575,-3.534,-3.493,-3.452,-3.411,-3.37,-3.33,-3.288,-3.248,-3.207,-3.166,-3.126,-3.085,-3.044,-3.004,-2.963,-2.923,-2.883,-2.842,-2.802,-2.762,-2.721,-2.681,-2.64,-2.601,-2.561,-2.52,-2.481,-2.441,-2.401,-2.361,-2.322,-2.282,-2.242,-2.203,-2.163,-2.124,-2.085,-2.045,-2.006,-1.967,-1.927,-1.888,-1.849,-1.81,-1.771,-1.732,-1.693,-1.655,-1.615,-1.577,-1.539,-1.5,-1.461,-1.423,-1.385,-1.346,-1.309,-1.27,-1.232,-1.194,-1.156,-1.118,-1.08,-1.043,-1.005,-0.967,-0.93,-0.893,-0.855,-0.818,-0.781,-0.743,-0.706,-0.669,-0.632,-0.595,-0.559,-0.522,-0.485,-0.449,-0.412,-0.376,-0.34,-0.303,-0.267,-0.231,-0.195,-0.159,-0.123,-0.087,-0.052,-0.016,0.019,0.054,0.09,0.125,0.161,0.196,0.23,0.266,0.3,0.335,0.37,0.404,0.438,0.473,0.507,0.541,0.576,0.609,0.643,0.677,0.711,0.744,0.778,0.811,0.844,0.878,0.911,0.944,0.977,1.01,1.043,1.075,1.108,1.14,1.173,1.205,1.237,1.269,1.301,1.333,1.364,1.396,1.427,1.459,1.49,1.521,1.552,1.583,1.614,1.645,1.675,1.706,1.736,1.767,1.797,1.826,1.857,1.886,1.916,1.946,1.975,2.004,2.034,2.063,2.092,2.121,2.149,2.178,2.207,2.235,2.264,2.292,2.319,2.348,2.375,2.403,2.431,2.458,2.486,2.513,2.539,2.567,2.593,2.62,2.647,2.673,2.699,2.725,2.751,2.777,2.803,2.828,2.854,2.879,2.904,2.929,2.955,2.979,3.004,3.029,3.053,3.077,3.101,3.125,3.149,3.173,3.196,3.22,3.243,3.266,3.289,3.312,3.335,3.357,3.38,3.402,3.424,3.446,3.468,3.49,3.511,3.533,3.554,3.575,3.596,3.617,3.637,3.658,3.678,3.698,3.718,3.738,3.758,3.778,3.797,3.816,3.835,3.854,3.873,3.892,3.91,3.928,3.947,3.964,3.982,4,4.018,4.035,4.052,4.069,4.086,4.103,4.12,4.136,4.152,4.169,4.185,4.201,4.217,4.232,4.248,4.264,4.279,4.294,4.309,4.324,4.339,4.354,4.368,4.383,4.397,4.411,4.426,4.439,4.453,4.467,4.481,4.494,4.508,4.521,4.534,4.548,4.56,4.573,4.586,4.599,4.612,4.624,4.636,4.649,4.661,4.673,4.685,4.697,4.709,4.72,4.732,4.743,4.755,4.766,4.777,4.789,4.8,4.811,4.822,4.833,4.843,4.854,4.864,4.875,4.886,4.896,4.906,4.916,4.927,4.937,4.947,4.956,4.966,4.976,4.986,4.996,5.005,5.015,5.024,5.034,5.043,5.052,5.062,5.071,5.08,5.089,5.098,5.107,5.116,5.125,5.134,5.142,5.151,5.16,5.169,5.177,5.186,5.194,5.203,5.211,5.219,5.228,5.236,5.244,5.253,5.261,5.269,5.277,5.285,5.293,5.301,5.31,5.318,5.326,5.334,5.341,5.349,5.357,5.365,5.373,5.381,5.389,5.397,5.404,5.412,5.42,5.428,5.436,5.443,5.451,5.459,5.467,5.474,5.482,5.49,5.497,5.505,5.513,5.521,5.528,5.536,5.544,5.552,5.559,5.567,5.575,5.583,5.591,5.598,5.606,5.614,5.622,5.63,5.638,5.645,5.653,5.661,5.669,5.677,5.685,5.693,5.702,5.71,5.718,5.726,5.734,5.742,5.751,5.759,5.767,5.776,5.784,5.793,5.801,5.81,5.818,5.827,5.835,5.844,5.853,5.862,5.871,5.879,5.888,5.897,5.906,5.916,5.925,5.934,5.943,5.952,5.962,5.971,5.981,5.99,6,6.01,6.019,6.029,6.038,6.048,6.058,6.067,6.077,6.086,6.095,6.105,6.114,6.123,6.133,6.142,6.151,6.161,6.17,6.179,6.188,6.198,6.207,6.216,6.225,6.234,6.243,6.252,6.261,6.27,6.279,6.288,6.297,6.306,6.315,6.323,6.332,6.341,6.35,6.358,6.367,6.376,6.384,6.393,6.402,6.41,6.419,6.427,6.436,6.444,6.453,6.461,6.47,6.478,6.487,6.495,6.503,6.511,6.52,6.528,6.536,6.544,6.553,6.561,6.569,6.577,6.585,6.593,6.601,6.609,6.617,6.625,6.633,6.641,6.649,6.657,6.665,6.672,6.68,6.688,6.696,6.703,6.711,6.719,6.726,6.734,6.742,6.749,6.757,6.764,6.772,6.779,6.787,6.794,6.802,6.809,6.816,6.824,6.831,6.838,6.846,6.853,6.86,6.867,6.875,6.882,6.889,6.896,6.903,6.91,6.917,6.924,6.931,6.938,6.945,6.952,6.959,6.966,6.973,6.979,6.986,6.993,7,7.006,7.013,7.02,7.026,7.033,7.04,7.046,7.053,7.059,7.066,7.072,7.079,7.085,7.092,7.098,7.104,7.111,7.117,7.124,7.13,7.136,7.142,7.148,7.155,7.161,7.167,7.173,7.179,7.185,7.191,7.197,7.203,7.209,7.215,7.221,7.227,7.233,7.239,7.245,7.251,7.256,7.262,7.268,7.274,7.279,7.285,7.291,7.296,7.302,7.307,7.313,7.319,7.324,7.33,7.335,7.341,7.346,7.351,7.357,7.362,7.367,7.373,7.378,7.383,7.389,7.394,7.399,7.404,7.409,7.414,7.42,7.425,7.43,7.435,7.44,7.445,7.45,7.455,7.46,7.464,7.469,7.474,7.479,7.484,7.489,7.493,7.498,7.503,7.508,7.512,7.517,7.521,7.526,7.531,7.535,7.54,7.544,7.549,7.553,7.558,7.562,7.567,7.571,7.575,7.58,7.584,7.588,7.592,7.597,7.601,7.605,7.609,7.613,7.618,7.622,7.626,7.63,7.634,7.638,7.642,7.646,7.65,7.654,7.658,7.661,7.665,7.669,7.673,7.677,7.68,7.684,7.688,7.692,7.695,7.699,7.703,7.706,7.71,7.713,7.717,7.72,7.724,7.727,7.731,7.734,7.738,7.741,7.744,7.748,7.751,7.754,7.758,7.761,7.764,7.767,7.77,7.774,7.777,7.78,7.783,7.786,7.789,7.792,7.795,7.798,7.801,7.804,7.807,7.81,7.813,7.816,7.818,7.821,7.824,7.827,7.829,7.832,7.835,7.838,7.84,7.843,7.845,7.848,7.851,7.853,7.856,7.858,7.861,7.863,7.865,7.868,7.87,7.873,7.875,7.877,7.88,7.882,7.884,7.886,7.889,7.891,7.893,7.895,7.897,7.899,7.901,7.903,7.905,7.907,7.909,7.911,7.913,7.915,7.917,7.919,7.921,7.923,7.925,7.926,7.928,7.93,7.932,7.933,7.935,7.937,7.938,7.94,7.942,7.943,7.945,7.946,7.948,7.949,7.951,7.952,7.954,7.955,7.956,7.958,7.959,7.96,7.962,7.963,7.964,7.965,7.967,7.968,7.969,7.97,7.971,7.972,7.973,7.974,7.975,7.976,7.977,7.978,7.979,7.98,7.981,7.982,7.983,7.984,7.985,7.985,7.986,7.987,7.988,7.988,7.989,7.99,7.99,7.991,7.992,7.992,7.993,7.993,7.994,7.994,7.995,7.995,7.996,7.996,7.997,7.997,7.997,7.998,7.998,7.998,7.998,7.999,7.999,7.999,7.999,7.999,8,8,8,8,8,8,8\nPARAM_BODY_ANGLE_X=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.004,0.01,0.017,0.027,0.039,0.053,0.069,0.086,0.106,0.128,0.151,0.176,0.204,0.233,0.264,0.296,0.33,0.367,0.404,0.443,0.484,0.526,0.571,0.615,0.662,0.711,0.76,0.811,0.864,0.918,0.972,1.028,1.086,1.144,1.204,1.265,1.328,1.39,1.455,1.52,1.587,1.653,1.721,1.79,1.861,1.93,2.002,2.075,2.146,2.22,2.295,2.37,2.445,2.522,2.599,2.675,2.753,2.832,2.911,2.989,3.069,3.149,3.229,3.309,3.39,3.471,3.553,3.633,3.715,3.796,3.877,3.959,4.041,4.123,4.204,4.285,4.367,4.447,4.529,4.61,4.691,4.771,4.851,4.931,5.011,5.089,5.168,5.247,5.325,5.401,5.478,5.555,5.63,5.705,5.78,5.854,5.925,5.998,6.07,6.139,6.21,6.279,6.347,6.413,6.48,6.545,6.61,6.672,6.735,6.796,6.856,6.914,6.972,7.028,7.082,7.136,7.189,7.24,7.289,7.338,7.385,7.429,7.474,7.516,7.557,7.596,7.633,7.67,7.704,7.736,7.767,7.796,7.824,7.849,7.872,7.894,7.914,7.931,7.947,7.961,7.973,7.983,7.99,7.996,7.999,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,7.999,7.999,7.999,7.999,7.999,7.999,7.999,7.999,7.999,7.999,7.999,7.998,7.998,7.998,7.998,7.998,7.998,7.998,7.997,7.997,7.997,7.997,7.997,7.997,7.996,7.996,7.996,7.996,7.996,7.995,7.995,7.995,7.995,7.994,7.994,7.994,7.994,7.993,7.993,7.993,7.993,7.992,7.992,7.992,7.992,7.991,7.991,7.991,7.99,7.99,7.99,7.989,7.989,7.989,7.989,7.988,7.988,7.987,7.987,7.987,7.986,7.986,7.986,7.985,7.985,7.985,7.984,7.984,7.983,7.983,7.983,7.982,7.982,7.981,7.981,7.98,7.98,7.979,7.979,7.979,7.978,7.978,7.977,7.977,7.976,7.976,7.975,7.975,7.974,7.974,7.973,7.973,7.972,7.972,7.971,7.971,7.97,7.969,7.969,7.968,7.968,7.967,7.967,7.966,7.965,7.965,7.964,7.964,7.963,7.962,7.962,7.961,7.961,7.96,7.959,7.959,7.958,7.957,7.957,7.956,7.955,7.955,7.954,7.953,7.953,7.952,7.951,7.951,7.95,7.949,7.949,7.948,7.947,7.946,7.946,7.945,7.944,7.943,7.943,7.942,7.941,7.94,7.939,7.939,7.938,7.937,7.936,7.936,7.935,7.934,7.933,7.932,7.931,7.931,7.93,7.929,7.928,7.927,7.926,7.925,7.925,7.924,7.923,7.922,7.921,7.92,7.919,7.918,7.917,7.916,7.916,7.915,7.914,7.913,7.912,7.911,7.91,7.909,7.908,7.907,7.906,7.905,7.904,7.903,7.902,7.901,7.9,7.899,7.898,7.897,7.896,7.895,7.894,7.893,7.892,7.891,7.89,7.889,7.887,7.886,7.885,7.884,7.883,7.882,7.881,7.88,7.879,7.878,7.876,7.875,7.874,7.873,7.872,7.871,7.87,7.868,7.867,7.866,7.865,7.864,7.862,7.861,7.86,7.859,7.858,7.856,7.855,7.854,7.853,7.851,7.85,7.849,7.848,7.846,7.845,7.844,7.843,7.841,7.84,7.839,7.837,7.836,7.835,7.833,7.832,7.831,7.829,7.828,7.827,7.825,7.824,7.823,7.821,7.82,7.819,7.817,7.816,7.814,7.813,7.812,7.81,7.809,7.807,7.806,7.805,7.803,7.802,7.8,7.799,7.797,7.796,7.794,7.793,7.791,7.79,7.788,7.787,7.785,7.784,7.782,7.781,7.779,7.778,7.776,7.775,7.773,7.772,7.77,7.768,7.767,7.765,7.764,7.762,7.761,7.759,7.757,7.756,7.754,7.752,7.751,7.749,7.748,7.746,7.744,7.743,7.741,7.739,7.738,7.736,7.734,7.733,7.731,7.729,7.727,7.726,7.724,7.722,7.721,7.719,7.717,7.715,7.714,7.712,7.71,7.708,7.706,7.705,7.703,7.701,7.699,7.697,7.696,7.694,7.692,7.69,7.688,7.687,7.685,7.683,7.681,7.679,7.677,7.675,7.673,7.672,7.67,7.668,7.666,7.664,7.662,7.66,7.658,7.656,7.654,7.652,7.65,7.649,7.647,7.645,7.643,7.641,7.639,7.637,7.635,7.633,7.631,7.629,7.627,7.625,7.623,7.621,7.618,7.616,7.614,7.612,7.61,7.608,7.606,7.604,7.602,7.6,7.598,7.596,7.594,7.591,7.589,7.587,7.585,7.583,7.581,7.579,7.576,7.574,7.572,7.57,7.568,7.566,7.563,7.561,7.559,7.557,7.554,7.552,7.55,7.548,7.546,7.543,7.541,7.539,7.537,7.534,7.532,7.53,7.527,7.525,7.523,7.52,7.518,7.516,7.514,7.511,7.509,7.507,7.504,7.502,7.499,7.497,7.495,7.492,7.49,7.488,7.485,7.483,7.48,7.478,7.476,7.473,7.471,7.468,7.466,7.463,7.461,7.458,7.456,7.453,7.451,7.448,7.446,7.443,7.441,7.438,7.436,7.433,7.431,7.428,7.426,7.423,7.421,7.418,7.416,7.413,7.41,7.408,7.405,7.403,7.4,7.397,7.395,7.392,7.39,7.387,7.384,7.382,7.379,7.376,7.374,7.371,7.368,7.366,7.363,7.36,7.358,7.355,7.352,7.349,7.347,7.344,7.341,7.339,7.336,7.333,7.33,7.327,7.325,7.322,7.319,7.316,7.314,7.311,7.308,7.305,7.302,7.299,7.297,7.294,7.291,7.288,7.285,7.282,7.279,7.277,7.274,7.271,7.268,7.265,7.262,7.259,7.256,7.253,7.25,7.247,7.245,7.242,7.239,7.236,7.233,7.23,7.227,7.224,7.221,7.218,7.215,7.212,7.209,7.206,7.203,7.199,7.196,7.193,7.19,7.187,7.184,7.181,7.178,7.175,7.172,7.169,7.166,7.162,7.159,7.156,7.153,7.15,7.147,7.144,7.141,7.137,7.134,7.131,7.128,7.125,7.121,7.118,7.115,7.112,7.109,7.105,7.102,7.099,7.096,7.092,7.089,7.086,7.082,7.079,7.076,7.073,7.069,7.066,7.063,7.059,7.056,7.053,7.049,7.046,7.043,7.039,7.036,7.033,7.029,7.026,7.022,7.019,7.016,7.012,7.009,7.005,7.002,6.998,6.995,6.992,6.988,6.985,6.981,6.978,6.974,6.971,6.967,6.964,6.96,6.957,6.953,6.95,6.946,6.943,6.939,6.936,6.932,6.928,6.925,6.921,6.918,6.914,6.91,6.907,6.903,6.9,6.896,6.892,6.889,6.885,6.881,6.878,6.874,6.87,6.867,6.863,6.859,6.856,6.852,6.848,6.844,6.841,6.837,6.833,6.83,6.826,6.822,6.818,6.815,6.811,6.807,6.803,6.799,6.796,6.792,6.788,6.784,6.78,6.776,6.773,6.769,6.765,6.761,6.757,6.753,6.749,6.745,6.742,6.738,6.734,6.73,6.726,6.722,6.718,6.714,6.71,6.706,6.702,6.698,6.694,6.69,6.686,6.682,6.678,6.674,6.67,6.666,6.662,6.658,6.654,6.65,6.646,6.642,6.638,6.634,6.63,6.626,6.622,6.617,6.613,6.609,6.605,6.601,6.597,6.593,6.589,6.584,6.58,6.576,6.572,6.568,6.564,6.559,6.555,6.551,6.547,6.542,6.538,6.534,6.53,6.525,6.521,6.517,6.513,6.508,6.504,6.5,6.495,6.491,6.487,6.483,6.478,6.474,6.47,6.465,6.461,6.456,6.452,6.448,6.443,6.439,6.435,6.43,6.426,6.421,6.417,6.413,6.408,6.404,6.399,6.395,6.39,6.386,6.381,6.377,6.372,6.368,6.363,6.359,6.354,6.35,6.345,6.341,6.336,6.332,6.327,6.322,6.318,6.313,6.309,6.304,6.299,6.295,6.29,6.286,6.281,6.276,6.272,6.267,6.262,6.258,6.253,6.248,6.244,6.239,6.234,6.23,6.225,6.22,6.215,6.211,6.206,6.201,6.196,6.192,6.187,6.182,6.177,6.173,6.168,6.163,6.158,6.153,6.148,6.144,6.139,6.134,6.129,6.124,6.119,6.114,6.11,6.105,6.1,6.095,6.09,6.085,6.08,6.075,6.07,6.065,6.06,6.055,6.05,6.045,6.04,6.035,6.03,6.025,6.02,6.015,6.01,6.005,6,5.995,5.99,5.985,5.98,5.975,5.97,5.965,5.96,5.955,5.95,5.944,5.939,5.934,5.929,5.924,5.919,5.914,5.908,5.903,5.898,5.893,5.888,5.882,5.877,5.872,5.867,5.862,5.856,5.851,5.846,5.841,5.835,5.83,5.825,5.819,5.814,5.809,5.804,5.798,5.793,5.788,5.782,5.777,5.772,5.766,5.761,5.755,5.75,5.745,5.739,5.734,5.728,5.723,5.718,5.712,5.707,5.701,5.696,5.69,5.685,5.679,5.674,5.668,5.663,5.657,5.652,5.646,5.641,5.635,5.63,5.624,5.619,5.613,5.607,5.602,5.596,5.591,5.585,5.579,5.574,5.568,5.563,5.557,5.551,5.546,5.54,5.534,5.529,5.523,5.517,5.512,5.506,5.5,5.494,5.489,5.483,5.477,5.471,5.466,5.46,5.454,5.448,5.443,5.437,5.431,5.425,5.419,5.414,5.408,5.402,5.396,5.39,5.384,5.378,5.373,5.367,5.361,5.355,5.349,5.343,5.337,5.331,5.325,5.319,5.313,5.307,5.302,5.296,5.29,5.284,5.278,5.272,5.266,5.26,5.254,5.248,5.241,5.235,5.229,5.223,5.217,5.211,5.205,5.199,5.193,5.187,5.181,5.174,5.168,5.162,5.156,5.15,5.144,5.138,5.131,5.125,5.119,5.113,5.107,5.1,5.094,5.088,5.082,5.075,5.069,5.063,5.057,5.051,5.044,5.038,5.032,5.025,5.019,5.013,5.006,5,4.991,4.976,4.955,4.929,4.897,4.861,4.818,4.772,4.72,4.664,4.603,4.537,4.468,4.394,4.317,4.234,4.15,4.06,3.969,3.872,3.775,3.672,3.566,3.459,3.348,3.236,3.12,3.004,2.883,2.763,2.638,2.515,2.387,2.258,2.13,1.998,1.868,1.735,1.603,1.468,1.335,1.2,1.066,0.93,0.794,0.661,0.526,0.394,0.259,0.129,-0.004,-0.133,-0.264,-0.39,-0.518,-0.644,-0.766,-0.888,-1.006,-1.125,-1.239,-1.352,-1.461,-1.57,-1.673,-1.776,-1.876,-1.97,-2.063,-2.151,-2.237,-2.317,-2.396,-2.468,-2.538,-2.603,-2.664,-2.72,-2.771,-2.818,-2.859,-2.896,-2.927,-2.953,-2.973,-2.988,-2.997,-3,-2.998,-2.991,-2.98,-2.965,-2.946,-2.924,-2.897,-2.867,-2.834,-2.797,-2.758,-2.715,-2.67,-2.622,-2.571,-2.518,-2.463,-2.406,-2.346,-2.285,-2.223,-2.158,-2.092,-2.026,-1.957,-1.889,-1.819,-1.749,-1.678,-1.608,-1.535,-1.465,-1.392,-1.322,-1.251,-1.181,-1.111,-1.043,-0.974,-0.908,-0.842,-0.777,-0.715,-0.654,-0.594,-0.537,-0.482,-0.429,-0.378,-0.33,-0.285,-0.242,-0.203,-0.166,-0.133,-0.103,-0.076,-0.054,-0.035,-0.02,-0.009,-0.002,0\nPARAM_BODY_ANGLE_Y=-4,-3.998,-3.992,-3.983,-3.97,-3.954,-3.934,-3.911,-3.885,-3.856,-3.824,-3.789,-3.751,-3.711,-3.668,-3.622,-3.574,-3.524,-3.472,-3.417,-3.361,-3.302,-3.242,-3.181,-3.117,-3.052,-2.985,-2.918,-2.848,-2.778,-2.708,-2.636,-2.563,-2.489,-2.415,-2.34,-2.264,-2.19,-2.114,-2.038,-1.962,-1.886,-1.81,-1.736,-1.66,-1.585,-1.511,-1.437,-1.364,-1.292,-1.222,-1.152,-1.082,-1.015,-0.948,-0.883,-0.819,-0.758,-0.698,-0.639,-0.583,-0.528,-0.476,-0.426,-0.378,-0.332,-0.289,-0.249,-0.211,-0.176,-0.144,-0.115,-0.089,-0.066,-0.046,-0.03,-0.017,-0.008,-0.002,0,-0,-0,-0.001,-0.002,-0.002,-0.004,-0.005,-0.006,-0.008,-0.01,-0.012,-0.014,-0.016,-0.019,-0.021,-0.024,-0.027,-0.03,-0.034,-0.037,-0.041,-0.044,-0.048,-0.052,-0.057,-0.061,-0.065,-0.07,-0.075,-0.08,-0.085,-0.09,-0.095,-0.101,-0.106,-0.112,-0.118,-0.123,-0.13,-0.136,-0.142,-0.148,-0.155,-0.161,-0.168,-0.174,-0.181,-0.188,-0.195,-0.202,-0.209,-0.217,-0.224,-0.231,-0.239,-0.247,-0.254,-0.262,-0.27,-0.277,-0.285,-0.293,-0.301,-0.309,-0.317,-0.326,-0.334,-0.342,-0.35,-0.359,-0.367,-0.375,-0.384,-0.392,-0.401,-0.409,-0.418,-0.427,-0.435,-0.444,-0.452,-0.461,-0.47,-0.478,-0.487,-0.496,-0.504,-0.513,-0.522,-0.53,-0.539,-0.548,-0.556,-0.565,-0.573,-0.582,-0.591,-0.599,-0.608,-0.616,-0.625,-0.633,-0.641,-0.65,-0.658,-0.666,-0.674,-0.683,-0.691,-0.699,-0.707,-0.715,-0.723,-0.73,-0.738,-0.746,-0.753,-0.761,-0.769,-0.776,-0.783,-0.791,-0.798,-0.805,-0.812,-0.819,-0.826,-0.832,-0.839,-0.845,-0.852,-0.858,-0.864,-0.87,-0.877,-0.882,-0.888,-0.894,-0.899,-0.905,-0.91,-0.915,-0.92,-0.925,-0.93,-0.935,-0.939,-0.943,-0.948,-0.952,-0.956,-0.959,-0.963,-0.966,-0.97,-0.973,-0.976,-0.979,-0.981,-0.984,-0.986,-0.988,-0.99,-0.992,-0.994,-0.995,-0.996,-0.998,-0.998,-0.999,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.998,-0.998,-0.997,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.989,-0.988,-0.987,-0.986,-0.984,-0.983,-0.981,-0.979,-0.978,-0.976,-0.974,-0.972,-0.97,-0.968,-0.966,-0.964,-0.962,-0.96,-0.957,-0.955,-0.953,-0.95,-0.948,-0.945,-0.942,-0.94,-0.937,-0.934,-0.931,-0.928,-0.925,-0.922,-0.919,-0.916,-0.913,-0.91,-0.907,-0.903,-0.9,-0.897,-0.893,-0.89,-0.886,-0.883,-0.879,-0.875,-0.872,-0.868,-0.864,-0.86,-0.857,-0.853,-0.849,-0.845,-0.841,-0.837,-0.833,-0.828,-0.824,-0.82,-0.816,-0.812,-0.807,-0.803,-0.799,-0.794,-0.79,-0.785,-0.781,-0.776,-0.772,-0.767,-0.763,-0.758,-0.753,-0.749,-0.744,-0.739,-0.734,-0.73,-0.725,-0.72,-0.715,-0.71,-0.705,-0.7,-0.695,-0.69,-0.685,-0.681,-0.675,-0.67,-0.665,-0.66,-0.655,-0.65,-0.645,-0.64,-0.635,-0.629,-0.624,-0.619,-0.614,-0.609,-0.603,-0.598,-0.593,-0.588,-0.582,-0.577,-0.572,-0.567,-0.561,-0.556,-0.551,-0.545,-0.54,-0.535,-0.529,-0.524,-0.519,-0.513,-0.508,-0.503,-0.497,-0.492,-0.487,-0.481,-0.476,-0.471,-0.465,-0.46,-0.455,-0.449,-0.444,-0.439,-0.433,-0.428,-0.423,-0.418,-0.412,-0.407,-0.402,-0.397,-0.391,-0.386,-0.381,-0.376,-0.371,-0.365,-0.36,-0.355,-0.35,-0.345,-0.34,-0.335,-0.33,-0.325,-0.319,-0.315,-0.31,-0.305,-0.3,-0.295,-0.29,-0.285,-0.28,-0.275,-0.27,-0.266,-0.261,-0.256,-0.251,-0.247,-0.242,-0.237,-0.233,-0.228,-0.224,-0.219,-0.215,-0.21,-0.206,-0.201,-0.197,-0.193,-0.188,-0.184,-0.18,-0.176,-0.172,-0.167,-0.163,-0.159,-0.155,-0.151,-0.147,-0.143,-0.14,-0.136,-0.132,-0.128,-0.125,-0.121,-0.117,-0.114,-0.11,-0.107,-0.103,-0.1,-0.097,-0.093,-0.09,-0.087,-0.084,-0.081,-0.078,-0.075,-0.072,-0.069,-0.066,-0.063,-0.06,-0.058,-0.055,-0.052,-0.05,-0.047,-0.045,-0.043,-0.04,-0.038,-0.036,-0.034,-0.032,-0.03,-0.028,-0.026,-0.024,-0.022,-0.021,-0.019,-0.017,-0.016,-0.014,-0.013,-0.012,-0.011,-0.009,-0.008,-0.007,-0.006,-0.005,-0.004,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,-0,-0,-0,0,-0,-0,-0,-0,-0.001,-0.001,-0.002,-0.003,-0.003,-0.005,-0.006,-0.008,-0.01,-0.012,-0.015,-0.018,-0.021,-0.025,-0.029,-0.033,-0.038,-0.044,-0.05,-0.056,-0.063,-0.071,-0.079,-0.088,-0.098,-0.108,-0.119,-0.13,-0.142,-0.155,-0.169,-0.184,-0.199,-0.215,-0.232,-0.25,-0.269,-0.289,-0.309,-0.331,-0.354,-0.377,-0.402,-0.428,-0.454,-0.482,-0.511,-0.542,-0.573,-0.605,-0.639,-0.674,-0.71,-0.747,-0.786,-0.826,-0.868,-0.91,-0.954,-1,-1.046,-1.093,-1.141,-1.189,-1.237,-1.285,-1.334,-1.384,-1.433,-1.483,-1.533,-1.583,-1.634,-1.684,-1.735,-1.785,-1.836,-1.887,-1.938,-1.989,-2.039,-2.09,-2.141,-2.192,-2.242,-2.292,-2.342,-2.392,-2.442,-2.491,-2.54,-2.588,-2.637,-2.685,-2.732,-2.779,-2.825,-2.872,-2.917,-2.962,-3.006,-3.05,-3.094,-3.136,-3.178,-3.219,-3.259,-3.299,-3.338,-3.376,-3.413,-3.449,-3.485,-3.519,-3.552,-3.585,-3.616,-3.647,-3.676,-3.705,-3.732,-3.758,-3.783,-3.806,-3.829,-3.85,-3.87,-3.889,-3.906,-3.922,-3.936,-3.949,-3.961,-3.971,-3.98,-3.987,-3.993,-3.997,-3.999,-4,-3.999,-3.998,-3.995,-3.991,-3.986,-3.981,-3.974,-3.966,-3.957,-3.947,-3.936,-3.924,-3.912,-3.898,-3.884,-3.868,-3.852,-3.835,-3.817,-3.798,-3.779,-3.758,-3.737,-3.715,-3.692,-3.669,-3.645,-3.62,-3.594,-3.568,-3.541,-3.514,-3.486,-3.457,-3.428,-3.398,-3.367,-3.336,-3.305,-3.273,-3.24,-3.207,-3.174,-3.139,-3.105,-3.07,-3.035,-2.999,-2.963,-2.927,-2.89,-2.852,-2.815,-2.777,-2.739,-2.701,-2.662,-2.623,-2.584,-2.545,-2.506,-2.466,-2.426,-2.385,-2.346,-2.305,-2.264,-2.224,-2.184,-2.143,-2.102,-2.062,-2.021,-1.979,-1.938,-1.898,-1.857,-1.816,-1.776,-1.736,-1.695,-1.654,-1.615,-1.574,-1.534,-1.494,-1.455,-1.416,-1.377,-1.338,-1.299,-1.261,-1.223,-1.185,-1.148,-1.11,-1.073,-1.037,-1.001,-0.965,-0.93,-0.895,-0.861,-0.826,-0.793,-0.76,-0.727,-0.695,-0.664,-0.633,-0.602,-0.572,-0.543,-0.514,-0.486,-0.459,-0.432,-0.406,-0.38,-0.355,-0.331,-0.308,-0.285,-0.263,-0.242,-0.221,-0.202,-0.183,-0.165,-0.148,-0.132,-0.116,-0.102,-0.088,-0.076,-0.064,-0.053,-0.043,-0.034,-0.026,-0.019,-0.014,-0.009,-0.005,-0.002,-0.001,-0,-0,-0.002,-0.003,-0.006,-0.009,-0.014,-0.018,-0.024,-0.03,-0.037,-0.044,-0.053,-0.061,-0.071,-0.081,-0.091,-0.102,-0.114,-0.126,-0.139,-0.153,-0.167,-0.181,-0.196,-0.211,-0.227,-0.243,-0.26,-0.277,-0.295,-0.312,-0.331,-0.35,-0.369,-0.388,-0.408,-0.428,-0.448,-0.469,-0.49,-0.511,-0.533,-0.555,-0.577,-0.599,-0.622,-0.644,-0.667,-0.69,-0.713,-0.737,-0.76,-0.784,-0.808,-0.832,-0.855,-0.879,-0.903,-0.928,-0.952,-0.976,-1,-1.024,-1.048,-1.072,-1.097,-1.121,-1.145,-1.168,-1.192,-1.216,-1.24,-1.263,-1.287,-1.31,-1.333,-1.356,-1.378,-1.401,-1.423,-1.445,-1.467,-1.489,-1.51,-1.531,-1.552,-1.572,-1.592,-1.612,-1.631,-1.65,-1.669,-1.688,-1.705,-1.723,-1.74,-1.757,-1.773,-1.789,-1.804,-1.819,-1.833,-1.847,-1.861,-1.874,-1.886,-1.898,-1.909,-1.919,-1.929,-1.939,-1.947,-1.956,-1.963,-1.97,-1.976,-1.982,-1.986,-1.991,-1.994,-1.997,-1.998,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1.998,-1.996,-1.993,-1.989,-1.984,-1.978,-1.972,-1.965,-1.957,-1.948,-1.938,-1.928,-1.917,-1.905,-1.893,-1.88,-1.866,-1.852,-1.837,-1.821,-1.805,-1.789,-1.772,-1.754,-1.735,-1.717,-1.697,-1.678,-1.657,-1.637,-1.616,-1.594,-1.572,-1.55,-1.528,-1.505,-1.482,-1.458,-1.434,-1.41,-1.386,-1.361,-1.336,-1.311,-1.286,-1.26,-1.235,-1.209,-1.183,-1.157,-1.131,-1.105,-1.079,-1.053,-1.026,-1,-0.974,-0.947,-0.921,-0.895,-0.869,-0.843,-0.817,-0.791,-0.765,-0.74,-0.714,-0.689,-0.664,-0.639,-0.614,-0.59,-0.566,-0.542,-0.518,-0.495,-0.472,-0.45,-0.428,-0.406,-0.384,-0.363,-0.343,-0.322,-0.303,-0.283,-0.265,-0.246,-0.228,-0.211,-0.195,-0.179,-0.163,-0.148,-0.134,-0.12,-0.107,-0.095,-0.083,-0.072,-0.062,-0.052,-0.043,-0.035,-0.028,-0.022,-0.016,-0.011,-0.007,-0.004,-0.002,-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0,-0.001,-0.001,-0.002,-0.003,-0.005,-0.006,-0.008,-0.01,-0.013,-0.015,-0.018,-0.021,-0.025,-0.028,-0.032,-0.036,-0.04,-0.045,-0.049,-0.054,-0.059,-0.065,-0.07,-0.076,-0.082,-0.088,-0.095,-0.101,-0.108,-0.115,-0.123,-0.13,-0.137,-0.145,-0.153,-0.162,-0.17,-0.178,-0.187,-0.196,-0.205,-0.215,-0.224,-0.234,-0.244,-0.254,-0.264,-0.274,-0.285,-0.295,-0.306,-0.317,-0.328,-0.34,-0.351,-0.363,-0.375,-0.386,-0.399,-0.411,-0.423,-0.436,-0.448,-0.461,-0.474,-0.487,-0.5,-0.513,-0.527,-0.541,-0.554,-0.568,-0.582,-0.596,-0.61,-0.625,-0.639,-0.653,-0.668,-0.683,-0.698,-0.713,-0.728,-0.743,-0.758,-0.773,-0.789,-0.804,-0.82,-0.835,-0.851,-0.867,-0.883,-0.899,-0.915,-0.932,-0.948,-0.964,-0.98,-0.997,-1.014,-1.03,-1.047,-1.064,-1.08,-1.097,-1.114,-1.131,-1.148,-1.165,-1.182,-1.199,-1.217,-1.234,-1.251,-1.269,-1.286,-1.303,-1.321,-1.338,-1.356,-1.373,-1.391,-1.408,-1.426,-1.444,-1.461,-1.479,-1.497,-1.514,-1.532,-1.55,-1.567,-1.585,-1.603,-1.621,-1.638,-1.656,-1.674,-1.691,-1.709,-1.727,-1.744,-1.762,-1.78,-1.797,-1.815,-1.832,-1.85,-1.868,-1.885,-1.902,-1.92,-1.937,-1.955,-1.972,-1.989,-2.007,-2.024,-2.041,-2.058,-2.075,-2.092,-2.109,-2.126,-2.143,-2.16,-2.176,-2.193,-2.21,-2.226,-2.243,-2.259,-2.276,-2.292,-2.308,-2.324,-2.34,-2.356,-2.372,-2.388,-2.404,-2.419,-2.435,-2.45,-2.466,-2.481,-2.496,-2.511,-2.526,-2.541,-2.555,-2.57,-2.585,-2.599,-2.613,-2.628,-2.642,-2.656,-2.67,-2.683,-2.697,-2.71,-2.724,-2.737,-2.75,-2.763,-2.775,-2.788,-2.801,-2.813,-2.825,-2.837,-2.849,-2.861,-2.873,-2.884,-2.896,-2.907,-2.918,-2.929,-2.939,-2.95,-2.96,-2.971,-2.98,-2.99,-3,-3.009,-3.019,-3.028,-3.038,-3.047,-3.056,-3.066,-3.075,-3.084,-3.093,-3.102,-3.111,-3.12,-3.128,-3.137,-3.146,-3.154,-3.163,-3.171,-3.18,-3.188,-3.197,-3.205,-3.213,-3.221,-3.229,-3.237,-3.245,-3.253,-3.261,-3.269,-3.277,-3.284,-3.292,-3.3,-3.307,-3.315,-3.322,-3.329,-3.337,-3.344,-3.351,-3.358,-3.366,-3.373,-3.38,-3.387,-3.394,-3.4,-3.407,-3.414,-3.421,-3.427,-3.434,-3.44,-3.447,-3.453,-3.46,-3.466,-3.472,-3.478,-3.485,-3.491,-3.497,-3.503,-3.509,-3.515,-3.521,-3.527,-3.533,-3.538,-3.544,-3.55,-3.555,-3.561,-3.566,-3.572,-3.577,-3.583,-3.588,-3.593,-3.598,-3.604,-3.609,-3.614,-3.619,-3.624,-3.629,-3.634,-3.639,-3.644,-3.649,-3.653,-3.658,-3.663,-3.667,-3.672,-3.676,-3.681,-3.685,-3.69,-3.694,-3.699,-3.703,-3.707,-3.711,-3.715,-3.72,-3.724,-3.728,-3.732,-3.736,-3.74,-3.744,-3.747,-3.751,-3.755,-3.759,-3.762,-3.766,-3.77,-3.773,-3.777,-3.78,-3.784,-3.787,-3.791,-3.794,-3.797,-3.801,-3.804,-3.807,-3.81,-3.813,-3.817,-3.82,-3.823,-3.826,-3.829,-3.832,-3.835,-3.837,-3.84,-3.843,-3.846,-3.849,-3.851,-3.854,-3.857,-3.859,-3.862,-3.864,-3.867,-3.869,-3.872,-3.874,-3.877,-3.879,-3.881,-3.884,-3.886,-3.888,-3.89,-3.893,-3.895,-3.897,-3.899,-3.901,-3.903,-3.905,-3.907,-3.909,-3.911,-3.913,-3.915,-3.917,-3.918,-3.92,-3.922,-3.924,-3.925,-3.927,-3.929,-3.93,-3.932,-3.934,-3.935,-3.937,-3.938,-3.94,-3.941,-3.943,-3.944,-3.945,-3.947,-3.948,-3.95,-3.951,-3.952,-3.953,-3.955,-3.956,-3.957,-3.958,-3.959,-3.96,-3.962,-3.963,-3.964,-3.965,-3.966,-3.967,-3.968,-3.969,-3.97,-3.971,-3.971,-3.972,-3.973,-3.974,-3.975,-3.976,-3.977,-3.977,-3.978,-3.979,-3.98,-3.98,-3.981,-3.982,-3.982,-3.983,-3.984,-3.984,-3.985,-3.985,-3.986,-3.987,-3.987,-3.988,-3.988,-3.989,-3.989,-3.99,-3.99,-3.99,-3.991,-3.991,-3.992,-3.992,-3.992,-3.993,-3.993,-3.994,-3.994,-3.994,-3.994,-3.995,-3.995,-3.995,-3.996,-3.996,-3.996,-3.996,-3.997,-3.997,-3.997,-3.997,-3.997,-3.998,-3.998,-3.998,-3.998,-3.998,-3.998,-3.998,-3.999,-3.999,-3.999,-3.999,-3.999,-3.999,-3.999,-3.999,-3.999,-3.999,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4\nBODY_STRETCH=0,0,0.002,0.004,0.007,0.011,0.016,0.021,0.028,0.035,0.043,0.051,0.061,0.071,0.082,0.093,0.105,0.118,0.132,0.146,0.16,0.176,0.192,0.208,0.225,0.242,0.26,0.279,0.298,0.317,0.337,0.358,0.379,0.4,0.421,0.443,0.465,0.488,0.511,0.534,0.558,0.581,0.605,0.63,0.654,0.679,0.704,0.729,0.754,0.78,0.806,0.831,0.857,0.883,0.909,0.935,0.961,0.987,1.013,1.039,1.065,1.091,1.117,1.143,1.169,1.194,1.22,1.246,1.271,1.296,1.321,1.346,1.37,1.395,1.419,1.442,1.466,1.489,1.512,1.535,1.557,1.579,1.6,1.621,1.642,1.663,1.683,1.702,1.721,1.74,1.758,1.775,1.792,1.808,1.824,1.84,1.854,1.868,1.882,1.895,1.907,1.918,1.929,1.939,1.949,1.957,1.965,1.972,1.979,1.984,1.989,1.993,1.996,1.998,2,2,2,1.999,1.997,1.995,1.992,1.989,1.985,1.981,1.976,1.97,1.964,1.957,1.95,1.942,1.934,1.925,1.916,1.906,1.896,1.885,1.873,1.861,1.849,1.836,1.823,1.809,1.795,1.781,1.765,1.75,1.734,1.718,1.701,1.684,1.666,1.648,1.63,1.611,1.592,1.572,1.552,1.532,1.512,1.49,1.469,1.447,1.426,1.403,1.38,1.358,1.334,1.311,1.287,1.263,1.239,1.214,1.189,1.164,1.139,1.113,1.087,1.061,1.034,1.008,0.981,0.954,0.927,0.899,0.872,0.844,0.816,0.788,0.759,0.731,0.702,0.674,0.644,0.615,0.586,0.557,0.528,0.498,0.468,0.438,0.408,0.379,0.349,0.319,0.288,0.258,0.228,0.197,0.168,0.137,0.107,0.076,0.045,0.015,-0.015,-0.045,-0.076,-0.107,-0.137,-0.168,-0.197,-0.228,-0.258,-0.288,-0.319,-0.349,-0.379,-0.408,-0.438,-0.468,-0.498,-0.528,-0.557,-0.586,-0.615,-0.644,-0.674,-0.702,-0.731,-0.759,-0.788,-0.816,-0.844,-0.872,-0.899,-0.927,-0.954,-0.981,-1.008,-1.034,-1.061,-1.087,-1.113,-1.139,-1.164,-1.189,-1.214,-1.239,-1.263,-1.287,-1.311,-1.334,-1.358,-1.38,-1.403,-1.426,-1.447,-1.469,-1.49,-1.512,-1.532,-1.552,-1.572,-1.592,-1.611,-1.63,-1.648,-1.666,-1.684,-1.701,-1.718,-1.734,-1.75,-1.765,-1.781,-1.795,-1.809,-1.823,-1.836,-1.849,-1.861,-1.873,-1.885,-1.896,-1.906,-1.916,-1.925,-1.934,-1.942,-1.95,-1.957,-1.964,-1.97,-1.976,-1.981,-1.985,-1.989,-1.992,-1.995,-1.997,-1.999,-2,-2,-2,-1.999,-1.998,-1.996,-1.994,-1.991,-1.988,-1.984,-1.98,-1.976,-1.971,-1.965,-1.959,-1.953,-1.946,-1.939,-1.931,-1.923,-1.915,-1.906,-1.897,-1.887,-1.877,-1.866,-1.856,-1.844,-1.833,-1.821,-1.808,-1.795,-1.782,-1.769,-1.755,-1.741,-1.726,-1.711,-1.696,-1.68,-1.665,-1.649,-1.632,-1.615,-1.598,-1.58,-1.563,-1.545,-1.526,-1.508,-1.489,-1.47,-1.45,-1.431,-1.411,-1.39,-1.37,-1.349,-1.328,-1.307,-1.285,-1.264,-1.242,-1.22,-1.197,-1.175,-1.152,-1.129,-1.106,-1.082,-1.059,-1.035,-1.011,-0.987,-0.963,-0.939,-0.914,-0.889,-0.864,-0.839,-0.814,-0.789,-0.763,-0.738,-0.712,-0.686,-0.66,-0.634,-0.608,-0.581,-0.555,-0.529,-0.502,-0.475,-0.448,-0.422,-0.395,-0.368,-0.341,-0.314,-0.287,-0.259,-0.232,-0.205,-0.178,-0.151,-0.123,-0.096,-0.068,-0.041,-0.014,0.014,0.041,0.068,0.096,0.123,0.151,0.178,0.205,0.232,0.259,0.287,0.314,0.341,0.368,0.395,0.422,0.448,0.475,0.502,0.529,0.555,0.581,0.608,0.634,0.66,0.686,0.712,0.738,0.763,0.789,0.814,0.839,0.864,0.889,0.914,0.939,0.963,0.987,1.011,1.035,1.059,1.082,1.106,1.129,1.152,1.175,1.197,1.22,1.242,1.264,1.285,1.307,1.328,1.349,1.37,1.39,1.411,1.431,1.45,1.47,1.489,1.508,1.526,1.545,1.563,1.58,1.598,1.615,1.632,1.649,1.665,1.68,1.696,1.711,1.726,1.741,1.755,1.769,1.782,1.795,1.808,1.821,1.833,1.844,1.856,1.866,1.877,1.887,1.897,1.906,1.915,1.923,1.931,1.939,1.946,1.953,1.959,1.965,1.971,1.976,1.98,1.984,1.988,1.991,1.994,1.996,1.998,1.999,2,2,2,1.999,1.999,1.997,1.996,1.994,1.992,1.99,1.987,1.984,1.981,1.978,1.974,1.97,1.965,1.961,1.956,1.951,1.945,1.939,1.933,1.927,1.921,1.914,1.907,1.899,1.892,1.884,1.876,1.868,1.859,1.85,1.841,1.832,1.823,1.813,1.803,1.793,1.783,1.772,1.761,1.75,1.739,1.728,1.716,1.704,1.692,1.68,1.668,1.655,1.642,1.629,1.616,1.603,1.59,1.576,1.562,1.548,1.534,1.52,1.505,1.491,1.476,1.461,1.446,1.431,1.416,1.4,1.385,1.369,1.353,1.337,1.321,1.305,1.289,1.272,1.256,1.239,1.222,1.205,1.188,1.171,1.154,1.137,1.12,1.102,1.084,1.067,1.049,1.032,1.014,0.996,0.978,0.96,0.942,0.924,0.905,0.887,0.869,0.85,0.832,0.814,0.795,0.777,0.758,0.739,0.721,0.702,0.683,0.665,0.646,0.627,0.608,0.59,0.571,0.552,0.533,0.514,0.496,0.477,0.458,0.439,0.42,0.402,0.383,0.364,0.346,0.327,0.309,0.29,0.272,0.253,0.235,0.216,0.198,0.18,0.161,0.143,0.125,0.107,0.089,0.071,0.053,0.035,0.018,0,-0.017,-0.035,-0.052,-0.07,-0.087,-0.104,-0.121,-0.138,-0.155,-0.171,-0.188,-0.204,-0.221,-0.237,-0.253,-0.269,-0.286,-0.301,-0.317,-0.333,-0.349,-0.364,-0.38,-0.395,-0.411,-0.426,-0.441,-0.456,-0.471,-0.486,-0.5,-0.515,-0.53,-0.544,-0.559,-0.573,-0.587,-0.601,-0.616,-0.629,-0.643,-0.657,-0.671,-0.684,-0.698,-0.711,-0.725,-0.738,-0.751,-0.764,-0.777,-0.79,-0.803,-0.816,-0.829,-0.841,-0.854,-0.866,-0.879,-0.891,-0.903,-0.915,-0.927,-0.939,-0.951,-0.963,-0.975,-0.986,-0.998,-1.009,-1.021,-1.032,-1.043,-1.054,-1.065,-1.076,-1.087,-1.098,-1.109,-1.12,-1.13,-1.141,-1.151,-1.161,-1.172,-1.182,-1.192,-1.202,-1.212,-1.222,-1.232,-1.242,-1.251,-1.261,-1.27,-1.28,-1.289,-1.299,-1.308,-1.317,-1.326,-1.335,-1.344,-1.353,-1.362,-1.37,-1.379,-1.388,-1.396,-1.404,-1.413,-1.421,-1.429,-1.437,-1.446,-1.454,-1.462,-1.469,-1.477,-1.485,-1.493,-1.5,-1.508,-1.515,-1.523,-1.53,-1.537,-1.544,-1.552,-1.559,-1.566,-1.573,-1.579,-1.586,-1.593,-1.6,-1.606,-1.613,-1.619,-1.626,-1.632,-1.638,-1.645,-1.651,-1.657,-1.663,-1.669,-1.675,-1.68,-1.686,-1.692,-1.698,-1.703,-1.709,-1.714,-1.72,-1.725,-1.73,-1.736,-1.741,-1.746,-1.751,-1.756,-1.761,-1.766,-1.771,-1.775,-1.78,-1.785,-1.789,-1.794,-1.798,-1.803,-1.807,-1.811,-1.816,-1.82,-1.824,-1.828,-1.832,-1.836,-1.84,-1.844,-1.848,-1.852,-1.855,-1.859,-1.863,-1.866,-1.87,-1.873,-1.876,-1.88,-1.883,-1.886,-1.89,-1.893,-1.896,-1.899,-1.902,-1.905,-1.908,-1.91,-1.913,-1.916,-1.919,-1.921,-1.924,-1.926,-1.929,-1.931,-1.934,-1.936,-1.938,-1.941,-1.943,-1.945,-1.947,-1.949,-1.951,-1.953,-1.955,-1.957,-1.959,-1.961,-1.963,-1.964,-1.966,-1.968,-1.969,-1.971,-1.972,-1.974,-1.975,-1.977,-1.978,-1.979,-1.98,-1.982,-1.983,-1.984,-1.985,-1.986,-1.987,-1.988,-1.989,-1.99,-1.991,-1.991,-1.992,-1.993,-1.994,-1.994,-1.995,-1.996,-1.996,-1.997,-1.997,-1.998,-1.998,-1.998,-1.999,-1.999,-1.999,-1.999,-2,-2,-2,-2,-2,-2,-2,-1.999,-1.999,-1.998,-1.996,-1.995,-1.993,-1.991,-1.988,-1.986,-1.983,-1.979,-1.976,-1.972,-1.968,-1.964,-1.959,-1.954,-1.949,-1.944,-1.938,-1.933,-1.926,-1.92,-1.914,-1.907,-1.9,-1.893,-1.885,-1.878,-1.87,-1.862,-1.853,-1.845,-1.836,-1.827,-1.818,-1.809,-1.799,-1.79,-1.78,-1.77,-1.759,-1.749,-1.738,-1.728,-1.717,-1.705,-1.694,-1.682,-1.671,-1.659,-1.647,-1.635,-1.623,-1.61,-1.598,-1.585,-1.572,-1.559,-1.546,-1.532,-1.519,-1.505,-1.492,-1.478,-1.464,-1.45,-1.435,-1.421,-1.407,-1.392,-1.378,-1.363,-1.348,-1.333,-1.318,-1.303,-1.288,-1.272,-1.257,-1.242,-1.226,-1.21,-1.195,-1.179,-1.163,-1.147,-1.131,-1.115,-1.099,-1.083,-1.067,-1.05,-1.034,-1.018,-1.002,-0.985,-0.969,-0.952,-0.936,-0.919,-0.902,-0.886,-0.869,-0.853,-0.836,-0.819,-0.802,-0.786,-0.769,-0.753,-0.736,-0.719,-0.702,-0.686,-0.669,-0.652,-0.636,-0.619,-0.603,-0.586,-0.569,-0.553,-0.536,-0.52,-0.504,-0.487,-0.471,-0.454,-0.438,-0.422,-0.406,-0.39,-0.374,-0.358,-0.342,-0.326,-0.31,-0.295,-0.279,-0.264,-0.248,-0.233,-0.217,-0.202,-0.187,-0.172,-0.157,-0.142,-0.128,-0.113,-0.098,-0.084,-0.07,-0.056,-0.042,-0.027,-0.014,0,0.014,0.027,0.041,0.054,0.068,0.081,0.094,0.108,0.121,0.134,0.148,0.161,0.174,0.187,0.2,0.213,0.226,0.239,0.252,0.265,0.278,0.291,0.304,0.316,0.329,0.342,0.355,0.367,0.38,0.392,0.405,0.417,0.43,0.442,0.454,0.467,0.479,0.491,0.503,0.515,0.528,0.54,0.552,0.564,0.576,0.588,0.6,0.612,0.624,0.636,0.647,0.659,0.671,0.682,0.694,0.706,0.717,0.729,0.74,0.752,0.763,0.775,0.786,0.797,0.809,0.82,0.831,0.842,0.854,0.865,0.876,0.887,0.898,0.909,0.92,0.931,0.942,0.953,0.963,0.974,0.985,0.996,1.006,1.017,1.028,1.038,1.049,1.059,1.07,1.08,1.091,1.101,1.111,1.122,1.132,1.142,1.152,1.163,1.173,1.183,1.193,1.203,1.213,1.223,1.233,1.243,1.253,1.263,1.272,1.282,1.292,1.302,1.311,1.321,1.331,1.34,1.35,1.359,1.369,1.378,1.388,1.397,1.406,1.416,1.425,1.434,1.444,1.453,1.462,1.471,1.48,1.489,1.498,1.507,1.516,1.525,1.534,1.543,1.552,1.561,1.57,1.578,1.587,1.596,1.604,1.613,1.622,1.63,1.639,1.647,1.656,1.664,1.673,1.681,1.689,1.698,1.706,1.714,1.722,1.731,1.739,1.747,1.755,1.763,1.771,1.779,1.787,1.795,1.803,1.811,1.819,1.827,1.834,1.842,1.85,1.858,1.865,1.873,1.881,1.888,1.896,1.903,1.911,1.918,1.926,1.933,1.94,1.948,1.955,1.962,1.97,1.977,1.984,1.991,1.998,2.005,2.013,2.02,2.027,2.034,2.041,2.048,2.054,2.061,2.068,2.075,2.082,2.089,2.095,2.102,2.109,2.115,2.122,2.129,2.135,2.142,2.148,2.155,2.161,2.168,2.174,2.18,2.187,2.193,2.199,2.206,2.212,2.218,2.224,2.23,2.236,2.242,2.249,2.255,2.261,2.267,2.272,2.278,2.284,2.29,2.296,2.302,2.308,2.313,2.319,2.325,2.33,2.336,2.342,2.347,2.353,2.358,2.364,2.369,2.375,2.38,2.386,2.391,2.396,2.402,2.407,2.412,2.417,2.423,2.428,2.433,2.438,2.443,2.448,2.453,2.458,2.463,2.468,2.473,2.478,2.483,2.488,2.493,2.498,2.502,2.507,2.512,2.517,2.521,2.526,2.531,2.535,2.54,2.545,2.549,2.554,2.558,2.563,2.567,2.571,2.576,2.58,2.584,2.589,2.593,2.597,2.602,2.606,2.61,2.614,2.618,2.622,2.626,2.63,2.634,2.639,2.642,2.646,2.65,2.654,2.658,2.662,2.666,2.67,2.673,2.677,2.681,2.685,2.688,2.692,2.696,2.699,2.703,2.707,2.71,2.714,2.717,2.721,2.724,2.727,2.731,2.734,2.738,2.741,2.744,2.748,2.751,2.754,2.757,2.76,2.764,2.767,2.77,2.773,2.776,2.779,2.782,2.785,2.788,2.791,2.794,2.797,2.8,2.803,2.806,2.808,2.811,2.814,2.817,2.82,2.822,2.825,2.828,2.83,2.833,2.836,2.838,2.841,2.843,2.846,2.848,2.851,2.853,2.856,2.858,2.86,2.863,2.865,2.867,2.87,2.872,2.874,2.876,2.879,2.881,2.883,2.885,2.887,2.889,2.891,2.894,2.896,2.898,2.9,2.902,2.904,2.905,2.907,2.909,2.911,2.913,2.915,2.917,2.918,2.92,2.922,2.924,2.925,2.927,2.929,2.93,2.932,2.934,2.935,2.937,2.938,2.94,2.941,2.943,2.944,2.946,2.947,2.949,2.95,2.951,2.953,2.954,2.955,2.957,2.958,2.959,2.96,2.961,2.963,2.964,2.965,2.966,2.967,2.968,2.969,2.97,2.971,2.972,2.973,2.974,2.975,2.976,2.977,2.978,2.979,2.98,2.981,2.982,2.982,2.983,2.984,2.985,2.985,2.986,2.987,2.988,2.988,2.989,2.989,2.99,2.991,2.991,2.992,2.992,2.993,2.993,2.994,2.994,2.995,2.995,2.995,2.996,2.996,2.997,2.997,2.997,2.998,2.998,2.998,2.998,2.999,2.999,2.999,2.999,2.999,2.999,3,3,3,3,3,3,3,3,3,3,2.999,2.999,2.999,2.998,2.997,2.996,2.995,2.994,2.993,2.992,2.99,2.989,2.987,2.985,2.983,2.981,2.979,2.977,2.975,2.972,2.97,2.967,2.964,2.961,2.958,2.955,2.952,2.949,2.946,2.942,2.939,2.935,2.931,2.927,2.923,2.919,2.915,2.911,2.907,2.902,2.898,2.893,2.888,2.883,2.879,2.874,2.869,2.863,2.858,2.853,2.847,2.842,2.836,2.831,2.825,2.819,2.813,2.807,2.801,2.795,2.788,2.782,2.776,2.769,2.763,2.756,2.749,2.742,2.735,2.728,2.721,2.714,2.707,2.7,2.692,2.685,2.678,2.67,2.662,2.655,2.647,2.639,2.631,2.623,2.615,2.607,2.599,2.591,2.582,2.574,2.566,2.557,2.549,2.54,2.531,2.523,2.514,2.505,2.496,2.487,2.478,2.469,2.46,2.451,2.441,2.432,2.423,2.413,2.404,2.394,2.385,2.375,2.366,2.356,2.346,2.336,2.327,2.317,2.307,2.297,2.287,2.277,2.267,2.256,2.246,2.236,2.226,2.215,2.205,2.195,2.184,2.174,2.163,2.153,2.142,2.132,2.121,2.11,2.099,2.089,2.078,2.067,2.056,2.045,2.035,2.024,2.012,2.002,1.991,1.979,1.968,1.957,1.946,1.935,1.924,1.913,1.902,1.89,1.879,1.868,1.856,1.845,1.834,1.822,1.811,1.8,1.788,1.777,1.765,1.754,1.743,1.731,1.72,1.708,1.697,1.685,1.674,1.662,1.651,1.639,1.627,1.616,1.604,1.593,1.581,1.569,1.558,1.546,1.535,1.523,1.512,1.5,1.488,1.477,1.465,1.454,1.442,1.431,1.419,1.407,1.396,1.384,1.373,1.361,1.349,1.338,1.326,1.315,1.303,1.292,1.28,1.269,1.257,1.246,1.235,1.223,1.212,1.2,1.189,1.178,1.166,1.155,1.144,1.132,1.121,1.11,1.098,1.087,1.076,1.065,1.054,1.043,1.032,1.021,1.009,0.998,0.988,0.976,0.965,0.955,0.944,0.933,0.922,0.911,0.901,0.89,0.879,0.868,0.858,0.847,0.837,0.826,0.816,0.805,0.795,0.785,0.774,0.764,0.754,0.744,0.733,0.723,0.713,0.703,0.693,0.683,0.673,0.664,0.654,0.644,0.634,0.625,0.615,0.606,0.596,0.587,0.577,0.568,0.559,0.549,0.54,0.531,0.522,0.513,0.504,0.495,0.486,0.477,0.469,0.46,0.451,0.443,0.434,0.426,0.418,0.409,0.401,0.393,0.385,0.377,0.369,0.361,0.353,0.345,0.338,0.33,0.322,0.315,0.308,0.3,0.293,0.286,0.279,0.272,0.265,0.258,0.251,0.244,0.237,0.231,0.224,0.218,0.212,0.205,0.199,0.193,0.187,0.181,0.175,0.169,0.164,0.158,0.153,0.147,0.142,0.137,0.131,0.126,0.121,0.117,0.112,0.107,0.102,0.098,0.093,0.089,0.085,0.081,0.077,0.073,0.069,0.065,0.061,0.058,0.054,0.051,0.048,0.045,0.042,0.039,0.036,0.033,0.03,0.028,0.025,0.023,0.021,0.019,0.017,0.015,0.013,0.011,0.01,0.008,0.007,0.006,0.005,0.004,0.003,0.002,0.001,0.001,0.001,0,0,0\nPARAM_BREATH=0,0,0.002,0.004,0.007,0.011,0.015,0.021,0.027,0.034,0.041,0.049,0.058,0.067,0.077,0.088,0.099,0.111,0.123,0.136,0.149,0.163,0.177,0.192,0.207,0.222,0.238,0.254,0.27,0.287,0.304,0.321,0.338,0.355,0.373,0.391,0.409,0.427,0.445,0.463,0.482,0.5,0.518,0.537,0.555,0.573,0.591,0.609,0.627,0.645,0.662,0.679,0.696,0.713,0.73,0.746,0.762,0.778,0.793,0.808,0.823,0.837,0.851,0.864,0.877,0.889,0.901,0.912,0.923,0.933,0.942,0.951,0.959,0.966,0.973,0.979,0.985,0.989,0.993,0.996,0.998,1,1,1,0.999,0.997,0.995,0.993,0.989,0.986,0.982,0.977,0.972,0.966,0.96,0.953,0.946,0.938,0.931,0.922,0.914,0.905,0.895,0.885,0.875,0.865,0.854,0.843,0.832,0.82,0.808,0.796,0.784,0.771,0.758,0.745,0.732,0.719,0.705,0.692,0.678,0.664,0.65,0.636,0.622,0.607,0.593,0.579,0.564,0.55,0.536,0.521,0.507,0.493,0.478,0.464,0.45,0.436,0.422,0.408,0.395,0.381,0.368,0.355,0.342,0.329,0.316,0.304,0.292,0.28,0.268,0.257,0.246,0.235,0.225,0.215,0.205,0.195,0.186,0.178,0.169,0.162,0.154,0.147,0.14,0.134,0.128,0.123,0.118,0.114,0.111,0.107,0.105,0.103,0.101,0.1,0.1,0.1,0.101,0.103,0.105,0.107,0.111,0.114,0.118,0.123,0.128,0.134,0.14,0.147,0.154,0.162,0.169,0.178,0.186,0.195,0.205,0.215,0.225,0.235,0.246,0.257,0.268,0.28,0.292,0.304,0.316,0.329,0.342,0.355,0.368,0.381,0.395,0.408,0.422,0.436,0.45,0.464,0.478,0.493,0.507,0.521,0.536,0.55,0.564,0.579,0.593,0.607,0.622,0.636,0.65,0.664,0.678,0.692,0.705,0.719,0.732,0.745,0.758,0.771,0.784,0.796,0.808,0.82,0.832,0.843,0.854,0.865,0.875,0.885,0.895,0.905,0.914,0.922,0.931,0.938,0.946,0.953,0.96,0.966,0.972,0.977,0.982,0.986,0.989,0.993,0.995,0.997,0.999,1,1,1,0.998,0.996,0.993,0.99,0.985,0.98,0.975,0.968,0.961,0.953,0.945,0.936,0.926,0.916,0.905,0.894,0.882,0.87,0.857,0.844,0.83,0.816,0.802,0.787,0.772,0.756,0.741,0.725,0.708,0.692,0.675,0.658,0.641,0.624,0.607,0.589,0.571,0.553,0.536,0.518,0.5,0.482,0.464,0.447,0.429,0.411,0.393,0.376,0.359,0.342,0.325,0.308,0.292,0.275,0.259,0.244,0.228,0.213,0.198,0.184,0.17,0.156,0.143,0.13,0.118,0.106,0.095,0.084,0.074,0.064,0.055,0.047,0.039,0.032,0.025,0.02,0.015,0.01,0.007,0.004,0.002,0,0,0,0.002,0.003,0.006,0.009,0.013,0.018,0.023,0.029,0.035,0.042,0.05,0.058,0.067,0.076,0.085,0.096,0.106,0.117,0.129,0.141,0.153,0.166,0.178,0.192,0.205,0.219,0.233,0.248,0.262,0.277,0.292,0.308,0.323,0.339,0.354,0.37,0.386,0.402,0.418,0.434,0.45,0.466,0.482,0.498,0.514,0.53,0.546,0.561,0.577,0.592,0.608,0.623,0.638,0.652,0.667,0.681,0.695,0.708,0.722,0.734,0.747,0.759,0.771,0.783,0.794,0.804,0.815,0.824,0.833,0.842,0.85,0.858,0.865,0.871,0.877,0.882,0.887,0.891,0.894,0.897,0.898,0.9,0.9,0.9,0.899,0.897,0.895,0.893,0.89,0.886,0.882,0.877,0.872,0.867,0.861,0.854,0.847,0.84,0.832,0.824,0.815,0.806,0.797,0.787,0.778,0.767,0.757,0.746,0.735,0.723,0.712,0.7,0.687,0.675,0.662,0.65,0.637,0.624,0.61,0.597,0.583,0.57,0.556,0.542,0.528,0.514,0.5,0.486,0.471,0.457,0.443,0.429,0.414,0.4,0.386,0.372,0.358,0.344,0.33,0.317,0.303,0.29,0.276,0.263,0.25,0.238,0.225,0.213,0.2,0.188,0.177,0.165,0.154,0.143,0.133,0.122,0.113,0.103,0.094,0.085,0.076,0.068,0.06,0.053,0.046,0.039,0.033,0.028,0.023,0.018,0.014,0.01,0.007,0.005,0.003,0.001,0,0,0,0.002,0.004,0.007,0.011,0.015,0.021,0.027,0.034,0.041,0.049,0.058,0.067,0.077,0.088,0.099,0.111,0.123,0.136,0.149,0.163,0.177,0.192,0.207,0.222,0.238,0.254,0.27,0.287,0.304,0.321,0.338,0.355,0.373,0.391,0.409,0.427,0.445,0.463,0.482,0.5,0.518,0.537,0.555,0.573,0.591,0.609,0.627,0.645,0.662,0.679,0.696,0.713,0.73,0.746,0.762,0.778,0.793,0.808,0.823,0.837,0.851,0.864,0.877,0.889,0.901,0.912,0.923,0.933,0.942,0.951,0.959,0.966,0.973,0.979,0.985,0.989,0.993,0.996,0.998,1,1,0.999,0.997,0.993,0.988,0.982,0.974,0.965,0.954,0.943,0.93,0.917,0.902,0.887,0.87,0.853,0.835,0.816,0.796,0.776,0.755,0.733,0.711,0.689,0.666,0.643,0.62,0.596,0.572,0.548,0.524,0.5,0.476,0.452,0.428,0.404,0.38,0.357,0.334,0.311,0.289,0.267,0.245,0.224,0.204,0.184,0.165,0.147,0.13,0.113,0.098,0.083,0.07,0.057,0.046,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0,0,0.001,0.003,0.006,0.009,0.012,0.017,0.021,0.027,0.033,0.04,0.047,0.054,0.062,0.071,0.08,0.09,0.1,0.11,0.121,0.133,0.144,0.156,0.169,0.181,0.195,0.208,0.222,0.235,0.25,0.264,0.279,0.294,0.309,0.324,0.34,0.355,0.371,0.387,0.403,0.419,0.435,0.451,0.467,0.484,0.5,0.516,0.533,0.549,0.565,0.581,0.597,0.613,0.629,0.645,0.66,0.676,0.691,0.706,0.721,0.736,0.75,0.765,0.778,0.792,0.805,0.819,0.831,0.844,0.856,0.867,0.879,0.89,0.9,0.91,0.92,0.929,0.938,0.946,0.953,0.96,0.967,0.973,0.979,0.983,0.988,0.991,0.994,0.997,0.999,1,1,1,0.999,0.997,0.995,0.993,0.989,0.986,0.982,0.977,0.972,0.966,0.96,0.953,0.946,0.938,0.931,0.922,0.914,0.905,0.895,0.885,0.875,0.865,0.854,0.843,0.832,0.82,0.808,0.796,0.784,0.771,0.758,0.745,0.732,0.719,0.705,0.692,0.678,0.664,0.65,0.636,0.622,0.607,0.593,0.579,0.564,0.55,0.536,0.521,0.507,0.493,0.478,0.464,0.45,0.436,0.422,0.408,0.395,0.381,0.368,0.355,0.342,0.329,0.316,0.304,0.292,0.28,0.268,0.257,0.246,0.235,0.225,0.215,0.205,0.195,0.186,0.178,0.169,0.162,0.154,0.147,0.14,0.134,0.128,0.123,0.118,0.114,0.111,0.107,0.105,0.103,0.101,0.1,0.1,0.1,0.101,0.103,0.105,0.107,0.111,0.114,0.118,0.123,0.128,0.134,0.14,0.147,0.154,0.162,0.169,0.178,0.186,0.195,0.205,0.215,0.225,0.235,0.246,0.257,0.268,0.28,0.292,0.304,0.316,0.329,0.342,0.355,0.368,0.381,0.395,0.408,0.422,0.436,0.45,0.464,0.478,0.493,0.507,0.521,0.536,0.55,0.564,0.579,0.593,0.607,0.622,0.636,0.65,0.664,0.678,0.692,0.705,0.719,0.732,0.745,0.758,0.771,0.784,0.796,0.808,0.82,0.832,0.843,0.854,0.865,0.875,0.885,0.895,0.905,0.914,0.922,0.931,0.938,0.946,0.953,0.96,0.966,0.972,0.977,0.982,0.986,0.989,0.993,0.995,0.997,0.999,1,1,1,0.998,0.996,0.993,0.99,0.985,0.98,0.975,0.968,0.961,0.953,0.945,0.936,0.926,0.916,0.905,0.894,0.882,0.87,0.857,0.844,0.83,0.816,0.802,0.787,0.772,0.756,0.741,0.725,0.708,0.692,0.675,0.658,0.641,0.624,0.607,0.589,0.571,0.553,0.536,0.518,0.5,0.482,0.464,0.447,0.429,0.411,0.393,0.376,0.359,0.342,0.325,0.308,0.292,0.275,0.259,0.244,0.228,0.213,0.198,0.184,0.17,0.156,0.143,0.13,0.118,0.106,0.095,0.084,0.074,0.064,0.055,0.047,0.039,0.032,0.025,0.02,0.015,0.01,0.007,0.004,0.002,0,0,0,0.002,0.003,0.006,0.009,0.013,0.018,0.023,0.029,0.035,0.042,0.05,0.058,0.067,0.076,0.085,0.096,0.106,0.117,0.129,0.141,0.153,0.166,0.178,0.192,0.205,0.219,0.233,0.248,0.262,0.277,0.292,0.308,0.323,0.339,0.354,0.37,0.386,0.402,0.418,0.434,0.45,0.466,0.482,0.498,0.514,0.53,0.546,0.561,0.577,0.592,0.608,0.623,0.638,0.652,0.667,0.681,0.695,0.708,0.722,0.734,0.747,0.759,0.771,0.783,0.794,0.804,0.815,0.824,0.833,0.842,0.85,0.858,0.865,0.871,0.877,0.882,0.887,0.891,0.894,0.897,0.898,0.9,0.9,0.9,0.899,0.897,0.895,0.892,0.889,0.885,0.881,0.876,0.871,0.865,0.859,0.852,0.845,0.837,0.829,0.821,0.812,0.803,0.793,0.783,0.773,0.762,0.751,0.74,0.728,0.717,0.704,0.692,0.68,0.667,0.654,0.641,0.627,0.614,0.6,0.586,0.572,0.558,0.544,0.529,0.515,0.501,0.486,0.472,0.457,0.443,0.428,0.414,0.399,0.385,0.371,0.356,0.342,0.328,0.314,0.3,0.286,0.273,0.259,0.246,0.233,0.22,0.208,0.196,0.183,0.172,0.16,0.149,0.138,0.127,0.117,0.107,0.097,0.088,0.079,0.071,0.063,0.055,0.048,0.041,0.035,0.029,0.024,0.019,0.015,0.011,0.008,0.005,0.003,0.001,0,0,0.001,0.002,0.005,0.008,0.013,0.019,0.025,0.033,0.041,0.05,0.06,0.07,0.082,0.094,0.107,0.12,0.134,0.149,0.164,0.18,0.196,0.213,0.23,0.247,0.265,0.284,0.302,0.321,0.34,0.36,0.379,0.399,0.419,0.439,0.459,0.48,0.5,0.52,0.541,0.561,0.581,0.601,0.621,0.64,0.66,0.679,0.698,0.716,0.735,0.753,0.77,0.787,0.804,0.82,0.836,0.851,0.866,0.88,0.893,0.906,0.918,0.93,0.94,0.95,0.959,0.967,0.975,0.981,0.987,0.992,0.995,0.998,0.999,1,0.999,0.998,0.995,0.992,0.987,0.982,0.976,0.968,0.96,0.951,0.942,0.931,0.92,0.908,0.896,0.883,0.869,0.855,0.84,0.825,0.809,0.792,0.776,0.758,0.741,0.723,0.704,0.686,0.667,0.648,0.629,0.609,0.59,0.57,0.55,0.53,0.51,0.49,0.47,0.45,0.43,0.41,0.391,0.371,0.352,0.333,0.314,0.296,0.277,0.259,0.242,0.224,0.208,0.191,0.175,0.16,0.145,0.131,0.117,0.104,0.092,0.08,0.069,0.058,0.049,0.04,0.032,0.024,0.018,0.013,0.008,0.005,0.002,0.001,0,0.001,0.003,0.006,0.011,0.016,0.023,0.031,0.04,0.051,0.062,0.074,0.087,0.101,0.116,0.132,0.148,0.165,0.183,0.201,0.22,0.239,0.259,0.28,0.301,0.322,0.343,0.365,0.387,0.41,0.432,0.455,0.477,0.5,0.523,0.545,0.568,0.59,0.613,0.635,0.657,0.678,0.699,0.72,0.741,0.761,0.78,0.799,0.817,0.835,0.852,0.868,0.884,0.899,0.913,0.926,0.938,0.949,0.96,0.969,0.977,0.984,0.989,0.994,0.997,0.999,1,1,0.998,0.997,0.994,0.991,0.987,0.982,0.977,0.971,0.965,0.958,0.95,0.942,0.933,0.924,0.915,0.904,0.894,0.883,0.871,0.859,0.847,0.834,0.822,0.808,0.795,0.781,0.767,0.752,0.738,0.723,0.708,0.692,0.677,0.661,0.646,0.63,0.614,0.598,0.582,0.566,0.55,0.534,0.518,0.502,0.486,0.47,0.454,0.439,0.423,0.408,0.392,0.377,0.362,0.348,0.333,0.319,0.305,0.292,0.278,0.266,0.253,0.241,0.229,0.217,0.206,0.196,0.185,0.176,0.167,0.158,0.15,0.142,0.135,0.129,0.123,0.118,0.113,0.109,0.106,0.103,0.102,0.1,0.1,0.1,0.101,0.103,0.106,0.109,0.113,0.117,0.122,0.128,0.134,0.141,0.149,0.157,0.165,0.174,0.184,0.194,0.204,0.215,0.226,0.238,0.25,0.262,0.275,0.288,0.301,0.315,0.329,0.343,0.357,0.372,0.387,0.402,0.417,0.432,0.448,0.463,0.479,0.494,0.51,0.526,0.542,0.558,0.574,0.59,0.606,0.621,0.637,0.652,0.668,0.683,0.698,0.713,0.728,0.743,0.757,0.771,0.785,0.799,0.812,0.825,0.838,0.85,0.862,0.874,0.885,0.896,0.906,0.916,0.926,0.935,0.943,0.951,0.959,0.966,0.972,0.978,0.983,0.987,0.991,0.994,0.997,0.999,1,1,0.999,0.998,0.995,0.992,0.988,0.982,0.976,0.969,0.961,0.953,0.943,0.933,0.922,0.911,0.899,0.886,0.872,0.858,0.844,0.829,0.813,0.797,0.781,0.764,0.747,0.729,0.711,0.693,0.674,0.656,0.637,0.617,0.598,0.579,0.559,0.54,0.52,0.5,0.48,0.46,0.441,0.421,0.402,0.383,0.363,0.344,0.326,0.307,0.289,0.271,0.253,0.236,0.219,0.203,0.187,0.171,0.156,0.142,0.128,0.114,0.101,0.089,0.078,0.067,0.057,0.047,0.039,0.031,0.024,0.018,0.012,0.008,0.005,0.002,0.001,0,0,0.002,0.004,0.007,0.011,0.016,0.022,0.029,0.036,0.044,0.052,0.062,0.072,0.082,0.094,0.105,0.118,0.131,0.144,0.158,0.172,0.187,0.202,0.218,0.233,0.25,0.266,0.283,0.3,0.317,0.334,0.352,0.369,0.387,0.405,0.423,0.441,0.459,0.477,0.495,0.513,0.531,0.548,0.566,0.583,0.6,0.617,0.634,0.65,0.667,0.682,0.698,0.713,0.728,0.742,0.756,0.769,0.782,0.795,0.806,0.818,0.828,0.838,0.848,0.856,0.864,0.871,0.878,0.884,0.889,0.893,0.896,0.898,0.9,0.9,0.9,0.899,0.897,0.894,0.891,0.887,0.883,0.878,0.872,0.866,0.86,0.852,0.845,0.836,0.827,0.818,0.808,0.798,0.788,0.777,0.765,0.753,0.741,0.729,0.716,0.703,0.69,0.676,0.662,0.648,0.634,0.619,0.604,0.589,0.574,0.559,0.544,0.528,0.513,0.497,0.481,0.466,0.45,0.434,0.419,0.403,0.387,0.372,0.356,0.341,0.326,0.311,0.296,0.281,0.266,0.252,0.238,0.224,0.21,0.197,0.184,0.171,0.159,0.147,0.135,0.123,0.112,0.102,0.092,0.082,0.073,0.064,0.055,0.048,0.04,0.034,0.028,0.022,0.017,0.013,0.009,0.006,0.003,0.001,0,0,0,0.001,0.003,0.005,0.007,0.011,0.014,0.018,0.023,0.028,0.034,0.04,0.047,0.054,0.062,0.069,0.078,0.086,0.095,0.105,0.115,0.125,0.135,0.146,0.157,0.168,0.18,0.192,0.204,0.216,0.229,0.242,0.255,0.268,0.281,0.295,0.308,0.322,0.336,0.35,0.364,0.378,0.393,0.407,0.421,0.436,0.45,0.464,0.479,0.493,0.507,0.522,0.536,0.55,0.564,0.578,0.592,0.605,0.619,0.632,0.645,0.658,0.671,0.684,0.696,0.708,0.72,0.732,0.743,0.754,0.765,0.775,0.785,0.795,0.805,0.814,0.822,0.831,0.838,0.846,0.853,0.86,0.866,0.872,0.877,0.882,0.886,0.889,0.893,0.895,0.897,0.899,0.9,0.9,0.899,0.898,0.895,0.891,0.886,0.88,0.873,0.865,0.856,0.846,0.835,0.824,0.811,0.799,0.785,0.771,0.756,0.74,0.724,0.707,0.69,0.673,0.655,0.636,0.618,0.598,0.579,0.56,0.54,0.52,0.5,0.48,0.46,0.44,0.42,0.4,0.38,0.36,0.34,0.321,0.302,0.282,0.264,0.245,0.227,0.21,0.193,0.176,0.16,0.144,0.129,0.115,0.101,0.089,0.076,0.065,0.054,0.044,0.035,0.027,0.02,0.014,0.009,0.005,0.002,0.001,0\nCHAR_POS_X=0\nFLAG2=1\nARM_LEFT=1\nARM_RIGHT=1\nARM_2_LEFT=0\nARM_2_RIGHT=0\nARM_3_LEFT=0\nARM_3_RIGHT=0\nSTEP_LEFT=-1\nSTEP_RIGHT=-1\nPARAM_EYE_L_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.989,0.989,0.988,0.987,0.986,0.985,0.984,0.983,0.981,0.98,0.979,0.978,0.977,0.975,0.974,0.972,0.971,0.97,0.968,0.967,0.965,0.963,0.962,0.96,0.958,0.957,0.955,0.953,0.951,0.949,0.947,0.945,0.943,0.941,0.939,0.937,0.935,0.932,0.93,0.928,0.925,0.923,0.921,0.918,0.916,0.913,0.911,0.908,0.905,0.903,0.9,0.897,0.894,0.891,0.889,0.886,0.883,0.88,0.876,0.873,0.87,0.867,0.864,0.861,0.857,0.854,0.85,0.847,0.843,0.84,0.836,0.833,0.829,0.825,0.822,0.818,0.814,0.81,0.806,0.802,0.798,0.794,0.79,0.786,0.782,0.778,0.773,0.769,0.765,0.76,0.756,0.751,0.747,0.742,0.738,0.733,0.728,0.723,0.719,0.714,0.709,0.704,0.699,0.694,0.689,0.684,0.679,0.673,0.668,0.663,0.657,0.652,0.647,0.641,0.636,0.63,0.604,0.543,0.459,0.36,0.258,0.16,0.078,0.021,0,0,0,0,0,0,0.103,0.35,0.65,0.897,1,1,1,1,1,0.999,0.999,0.999,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.989,0.988,0.987,0.986,0.984,0.983,0.982,0.981,0.979,0.978,0.977,0.975,0.974,0.972,0.971,0.969,0.968,0.966,0.964,0.963,0.961,0.959,0.957,0.955,0.954,0.952,0.95,0.948,0.946,0.944,0.942,0.94,0.938,0.936,0.934,0.932,0.929,0.927,0.925,0.923,0.921,0.919,0.916,0.914,0.912,0.909,0.907,0.905,0.902,0.9,0.898,0.895,0.893,0.891,0.888,0.886,0.883,0.881,0.878,0.876,0.874,0.871,0.869,0.866,0.864,0.861,0.859,0.856,0.854,0.851,0.849,0.846,0.844,0.841,0.839,0.836,0.834,0.831,0.829,0.826,0.824,0.822,0.819,0.817,0.814,0.812,0.809,0.807,0.805,0.802,0.8,0.798,0.795,0.793,0.791,0.788,0.786,0.784,0.781,0.779,0.777,0.775,0.773,0.771,0.768,0.766,0.764,0.762,0.76,0.758,0.756,0.754,0.752,0.75,0.748,0.746,0.745,0.743,0.741,0.739,0.737,0.736,0.734,0.732,0.731,0.729,0.728,0.726,0.725,0.723,0.722,0.721,0.719,0.718,0.717,0.716,0.714,0.713,0.712,0.711,0.71,0.709,0.708,0.707,0.707,0.706,0.705,0.704,0.704,0.703,0.703,0.702,0.702,0.701,0.701,0.701,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.702,0.702,0.702,0.702,0.702,0.702,0.702,0.703,0.703,0.703,0.703,0.703,0.703,0.704,0.704,0.704,0.704,0.704,0.705,0.705,0.705,0.705,0.706,0.706,0.706,0.706,0.707,0.707,0.707,0.707,0.708,0.708,0.708,0.709,0.709,0.709,0.71,0.71,0.71,0.711,0.711,0.712,0.712,0.712,0.713,0.713,0.714,0.714,0.714,0.715,0.715,0.716,0.716,0.717,0.717,0.718,0.718,0.719,0.719,0.72,0.72,0.721,0.721,0.722,0.723,0.723,0.724,0.724,0.725,0.726,0.726,0.727,0.728,0.728,0.729,0.73,0.73,0.731,0.732,0.732,0.733,0.734,0.735,0.735,0.736,0.737,0.738,0.739,0.739,0.74,0.741,0.742,0.743,0.744,0.744,0.745,0.746,0.747,0.748,0.749,0.75,0.751,0.752,0.753,0.754,0.755,0.756,0.757,0.758,0.759,0.76,0.761,0.762,0.763,0.765,0.766,0.767,0.768,0.769,0.77,0.771,0.773,0.774,0.775,0.776,0.778,0.779,0.78,0.781,0.783,0.784,0.785,0.787,0.788,0.79,0.791,0.792,0.794,0.795,0.797,0.798,0.8,0.801,0.803,0.804,0.806,0.807,0.809,0.81,0.812,0.813,0.815,0.817,0.818,0.82,0.822,0.824,0.825,0.828,0.83,0.832,0.834,0.837,0.839,0.842,0.844,0.847,0.85,0.853,0.855,0.858,0.861,0.864,0.868,0.871,0.874,0.877,0.88,0.884,0.887,0.89,0.894,0.897,0.9,0.904,0.907,0.91,0.914,0.917,0.92,0.924,0.927,0.93,0.933,0.937,0.94,0.943,0.946,0.949,0.952,0.955,0.958,0.961,0.963,0.966,0.969,0.971,0.974,0.976,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.997,0.997,0.997,0.997,0.997,0.997,0.997,0.997,0.996,0.996,0.996,0.996,0.996,0.996,0.996,0.996,0.995,0.995,0.995,0.995,0.995,0.995,0.994,0.994,0.994,0.994,0.994,0.994,0.993,0.993,0.993,0.993,0.993,0.993,0.992,0.992,0.992,0.992,0.992,0.992,0.991,0.991,0.991,0.991,0.991,0.99,0.99,0.99,0.99,0.99,0.989,0.989,0.989,0.989,0.989,0.988,0.988,0.988,0.988,0.987,0.987,0.987,0.987,0.987,0.986,0.986,0.986,0.986,0.985,0.985,0.985,0.985,0.984,0.984,0.984,0.984,0.983,0.983,0.983,0.983,0.982,0.982,0.982,0.982,0.981,0.981,0.981,0.981,0.98,0.98,0.98,0.98,0.979,0.979,0.979,0.979,0.978,0.978,0.978,0.978,0.977,0.977,0.977,0.976,0.976,0.976,0.976,0.975,0.975,0.975,0.974,0.974,0.974,0.974,0.973,0.973,0.973,0.972,0.972,0.972,0.972,0.971,0.971,0.971,0.97,0.97,0.97,0.97,0.969,0.969,0.969,0.968,0.968,0.968,0.967,0.967,0.967,0.967,0.966,0.966,0.966,0.965,0.965,0.965,0.964,0.964,0.964,0.963,0.963,0.963,0.963,0.962,0.962,0.962,0.961,0.961,0.961,0.96,0.96,0.96,0.959,0.959,0.959,0.958,0.958,0.958,0.957,0.957,0.957,0.957,0.956,0.956,0.956,0.955,0.955,0.955,0.954,0.954,0.954,0.953,0.953,0.953,0.952,0.952,0.952,0.951,0.951,0.951,0.95,0.95,0.95,0.95,0.949,0.949,0.949,0.948,0.948,0.948,0.947,0.947,0.947,0.946,0.946,0.946,0.945,0.945,0.945,0.944,0.944,0.944,0.943,0.943,0.943,0.943,0.942,0.942,0.942,0.941,0.941,0.941,0.94,0.94,0.94,0.939,0.939,0.939,0.938,0.938,0.938,0.937,0.937,0.937,0.937,0.936,0.936,0.936,0.935,0.935,0.935,0.934,0.934,0.934,0.933,0.933,0.933,0.933,0.932,0.932,0.932,0.931,0.931,0.931,0.93,0.93,0.93,0.93,0.929,0.929,0.929,0.928,0.928,0.928,0.928,0.927,0.927,0.927,0.926,0.926,0.926,0.926,0.925,0.925,0.925,0.924,0.924,0.924,0.924,0.923,0.923,0.923,0.922,0.922,0.922,0.922,0.921,0.921,0.921,0.921,0.92,0.92,0.92,0.92,0.919,0.919,0.919,0.919,0.918,0.918,0.918,0.918,0.917,0.917,0.917,0.917,0.916,0.916,0.916,0.916,0.915,0.915,0.915,0.915,0.914,0.914,0.914,0.914,0.913,0.913,0.913,0.913,0.913,0.912,0.912,0.912,0.912,0.911,0.911,0.911,0.911,0.911,0.91,0.91,0.91,0.91,0.91,0.909,0.909,0.909,0.909,0.909,0.908,0.908,0.908,0.908,0.908,0.908,0.907,0.907,0.907,0.907,0.907,0.907,0.906,0.906,0.906,0.906,0.906,0.906,0.905,0.905,0.905,0.905,0.905,0.905,0.904,0.904,0.904,0.904,0.904,0.904,0.904,0.904,0.903,0.903,0.903,0.903,0.903,0.903,0.903,0.903,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.902,0.902,0.902,0.902,0.902,0.902,0.903,0.903,0.903,0.903,0.904,0.904,0.904,0.904,0.905,0.905,0.905,0.905,0.906,0.906,0.906,0.907,0.907,0.907,0.908,0.908,0.908,0.909,0.909,0.909,0.91,0.91,0.911,0.911,0.911,0.912,0.912,0.913,0.913,0.914,0.914,0.914,0.915,0.915,0.916,0.916,0.917,0.917,0.918,0.918,0.919,0.919,0.92,0.92,0.921,0.921,0.922,0.922,0.923,0.923,0.924,0.924,0.925,0.925,0.926,0.926,0.927,0.927,0.928,0.928,0.929,0.93,0.93,0.931,0.931,0.932,0.932,0.933,0.934,0.934,0.935,0.935,0.936,0.936,0.937,0.938,0.938,0.939,0.939,0.94,0.941,0.941,0.942,0.942,0.943,0.944,0.944,0.945,0.945,0.946,0.947,0.947,0.948,0.948,0.949,0.95,0.95,0.951,0.952,0.952,0.953,0.953,0.954,0.955,0.955,0.956,0.956,0.957,0.958,0.958,0.959,0.959,0.96,0.961,0.961,0.962,0.962,0.963,0.964,0.964,0.965,0.965,0.966,0.966,0.967,0.968,0.968,0.969,0.969,0.97,0.97,0.971,0.972,0.972,0.973,0.973,0.974,0.974,0.975,0.975,0.976,0.976,0.977,0.977,0.978,0.978,0.979,0.979,0.98,0.98,0.981,0.981,0.982,0.982,0.983,0.983,0.984,0.984,0.985,0.985,0.986,0.986,0.986,0.987,0.987,0.988,0.988,0.989,0.989,0.989,0.99,0.99,0.991,0.991,0.991,0.992,0.992,0.992,0.993,0.993,0.993,0.994,0.994,0.994,0.995,0.995,0.995,0.995,0.996,0.996,0.996,0.996,0.997,0.997,0.997,0.997,0.998,0.998,0.998,0.998,0.998,0.998,0.999,0.999,0.999,0.999,0.999,0.999,0.999,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.998,0.996,0.994,0.991,0.988,0.984,0.98,0.976,0.972,0.967,0.962,0.957,0.952,0.946,0.94,0.934,0.928,0.922,0.916,0.91,0.904,0.898,0.892,0.886,0.88,0.874,0.868,0.863,0.858,0.853,0.848,0.844,0.84,0.836,0.832,0.829,0.826,0.824,0.822,0.821,0.82,0.82,0.82,0.82,0.82,0.82,0.821,0.821,0.821,0.821,0.822,0.822,0.823,0.823,0.823,0.824,0.824,0.825,0.825,0.826,0.826,0.827,0.828,0.828,0.829,0.829,0.83,0.83,0.831,0.831,0.831,0.832,0.832,0.833,0.833,0.833,0.833,0.834,0.834,0.834,0.834,0.834,0.788,0.669,0.504,0.33,0.165,0.046,0,0,0,0,0.045,0.161,0.322,0.493,0.655,0.773,0.82,0.823,0.826,0.828,0.831,0.834,0.836,0.839,0.842,0.844,0.847,0.849,0.852,0.854,0.857,0.859,0.862,0.864,0.867,0.869,0.871,0.874,0.876,0.878,0.881,0.883,0.885,0.887,0.889,0.891,0.894,0.896,0.898,0.9,0.902,0.904,0.906,0.908,0.91,0.912,0.914,0.915,0.917,0.919,0.921,0.923,0.924,0.926,0.928,0.93,0.931,0.933,0.935,0.936,0.938,0.939,0.941,0.943,0.944,0.946,0.947,0.948,0.95,0.951,0.953,0.954,0.955,0.957,0.958,0.959,0.96,0.962,0.963,0.964,0.965,0.966,0.968,0.969,0.97,0.971,0.972,0.973,0.974,0.975,0.976,0.977,0.978,0.979,0.98,0.981,0.981,0.982,0.983,0.984,0.985,0.985,0.986,0.987,0.987,0.988,0.989,0.989,0.99,0.991,0.991,0.992,0.992,0.993,0.993,0.994,0.994,0.995,0.995,0.996,0.996,0.996,0.997,0.997,0.997,0.998,0.998,0.998,0.998,0.999,0.999,0.999,0.999,0.999,1,1,1,1,1,1,1\nPARAM_EYE_R_OPEN=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.989,0.989,0.988,0.987,0.986,0.985,0.984,0.983,0.981,0.98,0.979,0.978,0.977,0.975,0.974,0.972,0.971,0.97,0.968,0.967,0.965,0.963,0.962,0.96,0.958,0.957,0.955,0.953,0.951,0.949,0.947,0.945,0.943,0.941,0.939,0.937,0.935,0.932,0.93,0.928,0.925,0.923,0.921,0.918,0.916,0.913,0.911,0.908,0.905,0.903,0.9,0.897,0.894,0.891,0.889,0.886,0.883,0.88,0.876,0.873,0.87,0.867,0.864,0.861,0.857,0.854,0.85,0.847,0.843,0.84,0.836,0.833,0.829,0.825,0.822,0.818,0.814,0.81,0.806,0.802,0.798,0.794,0.79,0.786,0.782,0.778,0.773,0.769,0.765,0.76,0.756,0.751,0.747,0.742,0.738,0.733,0.728,0.723,0.719,0.714,0.709,0.704,0.699,0.694,0.689,0.684,0.679,0.673,0.668,0.663,0.657,0.652,0.647,0.641,0.636,0.63,0.604,0.543,0.459,0.36,0.258,0.16,0.078,0.021,0,0,0,0,0,0,0.103,0.35,0.65,0.897,1,1,1,1,1,0.999,0.999,0.999,0.998,0.998,0.997,0.997,0.996,0.996,0.995,0.994,0.993,0.993,0.992,0.991,0.99,0.989,0.988,0.987,0.986,0.984,0.983,0.982,0.981,0.979,0.978,0.977,0.975,0.974,0.972,0.971,0.969,0.968,0.966,0.964,0.963,0.961,0.959,0.957,0.955,0.954,0.952,0.95,0.948,0.946,0.944,0.942,0.94,0.938,0.936,0.934,0.932,0.929,0.927,0.925,0.923,0.921,0.919,0.916,0.914,0.912,0.909,0.907,0.905,0.902,0.9,0.898,0.895,0.893,0.891,0.888,0.886,0.883,0.881,0.878,0.876,0.874,0.871,0.869,0.866,0.864,0.861,0.859,0.856,0.854,0.851,0.849,0.846,0.844,0.841,0.839,0.836,0.834,0.831,0.829,0.826,0.824,0.822,0.819,0.817,0.814,0.812,0.809,0.807,0.805,0.802,0.8,0.798,0.795,0.793,0.791,0.788,0.786,0.784,0.781,0.779,0.777,0.775,0.773,0.771,0.768,0.766,0.764,0.762,0.76,0.758,0.756,0.754,0.752,0.75,0.748,0.746,0.745,0.743,0.741,0.739,0.737,0.736,0.734,0.732,0.731,0.729,0.728,0.726,0.725,0.723,0.722,0.721,0.719,0.718,0.717,0.716,0.714,0.713,0.712,0.711,0.71,0.709,0.708,0.707,0.707,0.706,0.705,0.704,0.704,0.703,0.703,0.702,0.702,0.701,0.701,0.701,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.7,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.701,0.702,0.702,0.702,0.702,0.702,0.702,0.702,0.703,0.703,0.703,0.703,0.703,0.703,0.704,0.704,0.704,0.704,0.704,0.705,0.705,0.705,0.705,0.706,0.706,0.706,0.706,0.707,0.707,0.707,0.707,0.708,0.708,0.708,0.709,0.709,0.709,0.71,0.71,0.71,0.711,0.711,0.712,0.712,0.712,0.713,0.713,0.714,0.714,0.714,0.715,0.715,0.716,0.716,0.717,0.717,0.718,0.718,0.719,0.719,0.72,0.72,0.721,0.721,0.722,0.723,0.723,0.724,0.724,0.725,0.726,0.726,0.727,0.728,0.728,0.729,0.73,0.73,0.731,0.732,0.732,0.733,0.734,0.735,0.735,0.736,0.737,0.738,0.739,0.739,0.74,0.741,0.742,0.743,0.744,0.744,0.745,0.746,0.747,0.748,0.749,0.75,0.751,0.752,0.753,0.754,0.755,0.756,0.757,0.758,0.759,0.76,0.761,0.762,0.763,0.765,0.766,0.767,0.768,0.769,0.77,0.771,0.773,0.774,0.775,0.776,0.778,0.779,0.78,0.781,0.783,0.784,0.785,0.787,0.788,0.79,0.791,0.792,0.794,0.795,0.797,0.798,0.8,0.801,0.803,0.804,0.806,0.807,0.809,0.81,0.812,0.813,0.815,0.817,0.818,0.82,0.822,0.824,0.825,0.828,0.83,0.832,0.834,0.837,0.839,0.842,0.844,0.847,0.85,0.853,0.855,0.858,0.861,0.864,0.868,0.871,0.874,0.877,0.88,0.884,0.887,0.89,0.894,0.897,0.9,0.904,0.907,0.91,0.914,0.917,0.92,0.924,0.927,0.93,0.933,0.937,0.94,0.943,0.946,0.949,0.952,0.955,0.958,0.961,0.963,0.966,0.969,0.971,0.974,0.976,0.978,0.98,0.982,0.984,0.986,0.988,0.99,0.991,0.993,0.994,0.995,0.996,0.997,0.998,0.999,0.999,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.957,0.844,0.684,0.5,0.316,0.156,0.043,0,0,0,0,0,0,0.043,0.156,0.316,0.5,0.684,0.844,0.957,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.998,0.997,0.997,0.997,0.997,0.997,0.997,0.997,0.997,0.996,0.996,0.996,0.996,0.996,0.996,0.996,0.996,0.995,0.995,0.995,0.995,0.995,0.995,0.994,0.994,0.994,0.994,0.994,0.994,0.993,0.993,0.993,0.993,0.993,0.993,0.992,0.992,0.992,0.992,0.992,0.992,0.991,0.991,0.991,0.991,0.991,0.99,0.99,0.99,0.99,0.99,0.989,0.989,0.989,0.989,0.989,0.988,0.988,0.988,0.988,0.987,0.987,0.987,0.987,0.987,0.986,0.986,0.986,0.986,0.985,0.985,0.985,0.985,0.984,0.984,0.984,0.984,0.983,0.983,0.983,0.983,0.982,0.982,0.982,0.982,0.981,0.981,0.981,0.981,0.98,0.98,0.98,0.98,0.979,0.979,0.979,0.979,0.978,0.978,0.978,0.978,0.977,0.977,0.977,0.976,0.976,0.976,0.976,0.975,0.975,0.975,0.974,0.974,0.974,0.974,0.973,0.973,0.973,0.972,0.972,0.972,0.972,0.971,0.971,0.971,0.97,0.97,0.97,0.97,0.969,0.969,0.969,0.968,0.968,0.968,0.967,0.967,0.967,0.967,0.966,0.966,0.966,0.965,0.965,0.965,0.964,0.964,0.964,0.963,0.963,0.963,0.963,0.962,0.962,0.962,0.961,0.961,0.961,0.96,0.96,0.96,0.959,0.959,0.959,0.958,0.958,0.958,0.957,0.957,0.957,0.957,0.956,0.956,0.956,0.955,0.955,0.955,0.954,0.954,0.954,0.953,0.953,0.953,0.952,0.952,0.952,0.951,0.951,0.951,0.95,0.95,0.95,0.95,0.949,0.949,0.949,0.948,0.948,0.948,0.947,0.947,0.947,0.946,0.946,0.946,0.945,0.945,0.945,0.944,0.944,0.944,0.943,0.943,0.943,0.943,0.942,0.942,0.942,0.941,0.941,0.941,0.94,0.94,0.94,0.939,0.939,0.939,0.938,0.938,0.938,0.937,0.937,0.937,0.937,0.936,0.936,0.936,0.935,0.935,0.935,0.934,0.934,0.934,0.933,0.933,0.933,0.933,0.932,0.932,0.932,0.931,0.931,0.931,0.93,0.93,0.93,0.93,0.929,0.929,0.929,0.928,0.928,0.928,0.928,0.927,0.927,0.927,0.926,0.926,0.926,0.926,0.925,0.925,0.925,0.924,0.924,0.924,0.924,0.923,0.923,0.923,0.922,0.922,0.922,0.922,0.921,0.921,0.921,0.921,0.92,0.92,0.92,0.92,0.919,0.919,0.919,0.919,0.918,0.918,0.918,0.918,0.917,0.917,0.917,0.917,0.916,0.916,0.916,0.916,0.915,0.915,0.915,0.915,0.914,0.914,0.914,0.914,0.913,0.913,0.913,0.913,0.913,0.912,0.912,0.912,0.912,0.911,0.911,0.911,0.911,0.911,0.91,0.91,0.91,0.91,0.91,0.909,0.909,0.909,0.909,0.909,0.908,0.908,0.908,0.908,0.908,0.908,0.907,0.907,0.907,0.907,0.907,0.907,0.906,0.906,0.906,0.906,0.906,0.906,0.905,0.905,0.905,0.905,0.905,0.905,0.904,0.904,0.904,0.904,0.904,0.904,0.904,0.904,0.903,0.903,0.903,0.903,0.903,0.903,0.903,0.903,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.902,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.901,0.901,0.901,0.901,0.901,0.901,0.901,0.902,0.902,0.902,0.902,0.902,0.902,0.903,0.903,0.903,0.903,0.904,0.904,0.904,0.904,0.905,0.905,0.905,0.905,0.906,0.906,0.906,0.907,0.907,0.907,0.908,0.908,0.908,0.909,0.909,0.909,0.91,0.91,0.911,0.911,0.911,0.912,0.912,0.913,0.913,0.914,0.914,0.914,0.915,0.915,0.916,0.916,0.917,0.917,0.918,0.918,0.919,0.919,0.92,0.92,0.921,0.921,0.922,0.922,0.923,0.923,0.924,0.924,0.925,0.925,0.926,0.926,0.927,0.927,0.928,0.928,0.929,0.93,0.93,0.931,0.931,0.932,0.932,0.933,0.934,0.934,0.935,0.935,0.936,0.936,0.937,0.938,0.938,0.939,0.939,0.94,0.941,0.941,0.942,0.942,0.943,0.944,0.944,0.945,0.945,0.946,0.947,0.947,0.948,0.948,0.949,0.95,0.95,0.951,0.952,0.952,0.953,0.953,0.954,0.955,0.955,0.956,0.956,0.957,0.958,0.958,0.959,0.959,0.96,0.961,0.961,0.962,0.962,0.963,0.964,0.964,0.965,0.965,0.966,0.966,0.967,0.968,0.968,0.969,0.969,0.97,0.97,0.971,0.972,0.972,0.973,0.973,0.974,0.974,0.975,0.975,0.976,0.976,0.977,0.977,0.978,0.978,0.979,0.979,0.98,0.98,0.981,0.981,0.982,0.982,0.983,0.983,0.984,0.984,0.985,0.985,0.986,0.986,0.986,0.987,0.987,0.988,0.988,0.989,0.989,0.989,0.99,0.99,0.991,0.991,0.991,0.992,0.992,0.992,0.993,0.993,0.993,0.994,0.994,0.994,0.995,0.995,0.995,0.995,0.996,0.996,0.996,0.996,0.997,0.997,0.997,0.997,0.998,0.998,0.998,0.998,0.998,0.998,0.999,0.999,0.999,0.999,0.999,0.999,0.999,1,1,1,1,1,1,1,1,1,1,1,1,0.999,0.998,0.996,0.994,0.991,0.988,0.984,0.98,0.976,0.972,0.967,0.962,0.957,0.952,0.946,0.94,0.934,0.928,0.922,0.916,0.91,0.904,0.898,0.892,0.886,0.88,0.874,0.868,0.863,0.858,0.853,0.848,0.844,0.84,0.836,0.832,0.829,0.826,0.824,0.822,0.821,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.82,0.775,0.658,0.496,0.324,0.162,0.045,0,0,0,0,0.045,0.161,0.322,0.493,0.655,0.773,0.82,0.823,0.826,0.828,0.831,0.834,0.836,0.839,0.842,0.844,0.847,0.849,0.852,0.854,0.857,0.859,0.862,0.864,0.867,0.869,0.871,0.874,0.876,0.878,0.881,0.883,0.885,0.887,0.889,0.891,0.894,0.896,0.898,0.9,0.902,0.904,0.906,0.908,0.91,0.912,0.914,0.915,0.917,0.919,0.921,0.923,0.924,0.926,0.928,0.93,0.931,0.933,0.935,0.936,0.938,0.939,0.941,0.943,0.944,0.946,0.947,0.948,0.95,0.951,0.953,0.954,0.955,0.957,0.958,0.959,0.96,0.962,0.963,0.964,0.965,0.966,0.968,0.969,0.97,0.971,0.972,0.973,0.974,0.975,0.976,0.977,0.978,0.979,0.98,0.981,0.981,0.982,0.983,0.984,0.985,0.985,0.986,0.987,0.987,0.988,0.989,0.989,0.99,0.991,0.991,0.992,0.992,0.993,0.993,0.994,0.994,0.995,0.995,0.996,0.996,0.996,0.997,0.997,0.997,0.998,0.998,0.998,0.998,0.999,0.999,0.999,0.999,0.999,1,1,1,1,1,1,1\nPARAM_EYE_L_SMILE=0\nPARAM_EYE_R_SMILE=0\nPARAM_EYE_BALL_X=0,0,0.002,0.004,0.006,0.01,0.013,0.018,0.023,0.028,0.033,0.039,0.044,0.05,0.056,0.061,0.067,0.072,0.077,0.082,0.087,0.09,0.094,0.096,0.098,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.094,0.094,0.094,0.094,0.094,0.094,0.094,0.094,0.093,0.093,0.093,0.093,0.093,0.093,0.093,0.092,0.092,0.092,0.092,0.092,0.092,0.092,0.091,0.091,0.091,0.091,0.091,0.091,0.091,0.09,0.09,0.09,0.09,0.09,0.09,0.089,0.089,0.089,0.089,0.089,0.089,0.088,0.088,0.088,0.088,0.088,0.088,0.087,0.087,0.087,0.087,0.087,0.087,0.086,0.086,0.086,0.086,0.086,0.086,0.085,0.085,0.085,0.085,0.085,0.084,0.084,0.084,0.084,0.084,0.083,0.083,0.083,0.083,0.083,0.083,0.082,0.082,0.082,0.082,0.082,0.081,0.081,0.081,0.081,0.081,0.08,0.08,0.08,0.08,0.08,0.079,0.079,0.079,0.079,0.079,0.078,0.078,0.078,0.078,0.077,0.077,0.077,0.077,0.077,0.076,0.076,0.076,0.076,0.076,0.075,0.075,0.075,0.075,0.074,0.074,0.074,0.074,0.074,0.073,0.073,0.073,0.073,0.072,0.072,0.072,0.072,0.072,0.071,0.071,0.071,0.071,0.07,0.07,0.07,0.07,0.069,0.069,0.069,0.069,0.069,0.068,0.068,0.068,0.068,0.067,0.067,0.067,0.067,0.066,0.066,0.066,0.066,0.066,0.065,0.065,0.065,0.065,0.064,0.064,0.064,0.064,0.063,0.063,0.063,0.063,0.062,0.062,0.062,0.062,0.061,0.061,0.061,0.061,0.06,0.06,0.06,0.06,0.059,0.059,0.059,0.059,0.059,0.058,0.058,0.058,0.058,0.057,0.057,0.057,0.057,0.056,0.056,0.056,0.056,0.055,0.055,0.055,0.055,0.054,0.054,0.054,0.054,0.053,0.053,0.053,0.053,0.052,0.052,0.052,0.052,0.051,0.051,0.051,0.051,0.05,0.05,0.05,0.05,0.049,0.049,0.049,0.049,0.048,0.048,0.048,0.048,0.047,0.047,0.047,0.047,0.046,0.046,0.046,0.046,0.045,0.045,0.045,0.045,0.044,0.044,0.044,0.044,0.043,0.043,0.043,0.043,0.042,0.042,0.042,0.042,0.041,0.041,0.041,0.041,0.041,0.04,0.04,0.04,0.04,0.039,0.039,0.039,0.039,0.038,0.038,0.038,0.038,0.037,0.037,0.037,0.037,0.036,0.036,0.036,0.036,0.035,0.035,0.035,0.035,0.034,0.034,0.034,0.034,0.034,0.033,0.033,0.033,0.033,0.032,0.032,0.032,0.032,0.031,0.031,0.031,0.031,0.031,0.03,0.03,0.03,0.03,0.029,0.029,0.029,0.029,0.028,0.028,0.028,0.028,0.028,0.027,0.027,0.027,0.027,0.026,0.026,0.026,0.026,0.026,0.025,0.025,0.025,0.025,0.024,0.024,0.024,0.024,0.024,0.023,0.023,0.023,0.023,0.023,0.022,0.022,0.022,0.022,0.021,0.021,0.021,0.021,0.021,0.02,0.02,0.02,0.02,0.02,0.019,0.019,0.019,0.019,0.019,0.018,0.018,0.018,0.018,0.018,0.017,0.017,0.017,0.017,0.017,0.017,0.016,0.016,0.016,0.016,0.016,0.015,0.015,0.015,0.015,0.015,0.014,0.014,0.014,0.014,0.014,0.014,0.013,0.013,0.013,0.013,0.013,0.013,0.012,0.012,0.012,0.012,0.012,0.012,0.011,0.011,0.011,0.011,0.011,0.011,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.009,0.009,0.009,0.009,0.009,0.009,0.008,0.008,0.008,0.008,0.008,0.008,0.008,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.006,0.006,0.006,0.006,0.006,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.002,0.002,0.003,0.003,0.004,0.004,0.005,0.006,0.007,0.008,0.008,0.009,0.01,0.011,0.013,0.014,0.015,0.016,0.017,0.019,0.02,0.021,0.023,0.024,0.026,0.027,0.029,0.031,0.032,0.034,0.036,0.038,0.039,0.041,0.043,0.045,0.047,0.049,0.051,0.053,0.055,0.058,0.06,0.062,0.064,0.067,0.069,0.071,0.074,0.076,0.078,0.081,0.083,0.086,0.089,0.091,0.094,0.096,0.099,0.102,0.105,0.107,0.11,0.113,0.116,0.119,0.121,0.124,0.127,0.13,0.133,0.136,0.139,0.142,0.145,0.148,0.151,0.155,0.158,0.161,0.164,0.167,0.17,0.174,0.177,0.18,0.183,0.187,0.19,0.193,0.196,0.2,0.203,0.206,0.21,0.213,0.217,0.22,0.223,0.227,0.23,0.234,0.237,0.241,0.244,0.248,0.251,0.254,0.258,0.261,0.265,0.268,0.272,0.275,0.279,0.282,0.286,0.289,0.293,0.296,0.3,0.304,0.307,0.311,0.314,0.318,0.321,0.325,0.328,0.332,0.335,0.339,0.342,0.346,0.349,0.352,0.356,0.359,0.363,0.366,0.37,0.373,0.377,0.38,0.383,0.387,0.39,0.394,0.397,0.4,0.404,0.407,0.41,0.413,0.417,0.42,0.423,0.426,0.43,0.433,0.436,0.439,0.442,0.445,0.449,0.452,0.455,0.458,0.461,0.464,0.467,0.47,0.473,0.476,0.479,0.481,0.484,0.487,0.49,0.493,0.495,0.498,0.501,0.504,0.506,0.509,0.511,0.514,0.517,0.519,0.522,0.524,0.526,0.529,0.531,0.533,0.536,0.538,0.54,0.542,0.545,0.547,0.549,0.551,0.553,0.555,0.557,0.559,0.561,0.562,0.564,0.566,0.568,0.569,0.571,0.573,0.574,0.576,0.577,0.579,0.58,0.581,0.583,0.584,0.585,0.586,0.587,0.589,0.59,0.591,0.592,0.592,0.593,0.594,0.595,0.596,0.596,0.597,0.597,0.598,0.598,0.599,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.598,0.591,0.58,0.566,0.548,0.526,0.501,0.474,0.444,0.411,0.377,0.341,0.303,0.264,0.224,0.183,0.142,0.1,0.058,0.017,-0.024,-0.064,-0.103,-0.141,-0.177,-0.211,-0.244,-0.274,-0.301,-0.326,-0.348,-0.366,-0.38,-0.391,-0.398,-0.4,-0.4,-0.399,-0.399,-0.398,-0.396,-0.395,-0.393,-0.391,-0.388,-0.385,-0.383,-0.379,-0.376,-0.372,-0.369,-0.365,-0.36,-0.356,-0.351,-0.347,-0.342,-0.337,-0.331,-0.326,-0.32,-0.315,-0.309,-0.303,-0.297,-0.291,-0.284,-0.278,-0.272,-0.265,-0.258,-0.252,-0.245,-0.238,-0.231,-0.225,-0.218,-0.211,-0.204,-0.197,-0.19,-0.183,-0.176,-0.169,-0.162,-0.155,-0.148,-0.142,-0.135,-0.128,-0.122,-0.115,-0.109,-0.102,-0.096,-0.09,-0.084,-0.078,-0.072,-0.067,-0.061,-0.056,-0.051,-0.046,-0.041,-0.036,-0.031,-0.027,-0.023,-0.019,-0.015,-0.012,-0.008,-0.005,-0.003,0,0.002,0.005,0.007,0.01,0.012,0.014,0.016,0.019,0.021,0.023,0.025,0.027,0.029,0.031,0.033,0.035,0.037,0.039,0.041,0.043,0.045,0.047,0.049,0.051,0.052,0.054,0.056,0.058,0.06,0.061,0.063,0.065,0.066,0.068,0.069,0.071,0.073,0.074,0.076,0.077,0.079,0.08,0.082,0.083,0.085,0.086,0.088,0.089,0.091,0.092,0.094,0.095,0.096,0.098,0.099,0.101,0.102,0.103,0.105,0.106,0.107,0.109,0.11,0.111,0.113,0.114,0.116,0.117,0.118,0.12,0.121,0.122,0.124,0.125,0.126,0.128,0.129,0.13,0.132,0.133,0.134,0.136,0.137,0.138,0.14,0.141,0.143,0.144,0.145,0.147,0.148,0.15,0.151,0.153,0.154,0.156,0.157,0.159,0.16,0.162,0.163,0.165,0.166,0.168,0.17,0.171,0.173,0.175,0.176,0.178,0.18,0.181,0.183,0.185,0.187,0.189,0.19,0.192,0.194,0.196,0.198,0.2,0.203,0.206,0.211,0.217,0.224,0.231,0.239,0.248,0.257,0.267,0.276,0.286,0.297,0.307,0.317,0.327,0.337,0.346,0.355,0.364,0.371,0.378,0.385,0.39,0.394,0.397,0.399,0.4,0.4,0.399,0.399,0.398,0.396,0.395,0.393,0.391,0.389,0.386,0.383,0.38,0.377,0.373,0.37,0.366,0.361,0.357,0.352,0.348,0.343,0.338,0.332,0.327,0.321,0.315,0.309,0.303,0.297,0.29,0.284,0.277,0.27,0.263,0.256,0.249,0.242,0.235,0.227,0.22,0.212,0.204,0.197,0.189,0.181,0.173,0.165,0.157,0.149,0.141,0.133,0.125,0.116,0.108,0.1,0.092,0.084,0.075,0.067,0.059,0.051,0.043,0.035,0.027,0.019,0.011,0.003,-0.004,-0.012,-0.02,-0.027,-0.035,-0.042,-0.049,-0.056,-0.063,-0.07,-0.077,-0.084,-0.09,-0.097,-0.103,-0.109,-0.115,-0.121,-0.127,-0.132,-0.138,-0.143,-0.148,-0.152,-0.157,-0.161,-0.166,-0.17,-0.173,-0.177,-0.18,-0.183,-0.186,-0.189,-0.191,-0.193,-0.195,-0.196,-0.198,-0.199,-0.199,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.2,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.199,-0.198,-0.198,-0.198,-0.198,-0.198,-0.198,-0.198,-0.198,-0.198,-0.197,-0.197,-0.197,-0.197,-0.197,-0.197,-0.197,-0.197,-0.196,-0.196,-0.196,-0.196,-0.196,-0.196,-0.195,-0.195,-0.195,-0.195,-0.195,-0.195,-0.194,-0.194,-0.194,-0.194,-0.194,-0.193,-0.193,-0.193,-0.193,-0.193,-0.192,-0.192,-0.192,-0.192,-0.192,-0.191,-0.191,-0.191,-0.191,-0.19,-0.19,-0.19,-0.19,-0.189,-0.189,-0.189,-0.189,-0.188,-0.188,-0.188,-0.188,-0.187,-0.187,-0.187,-0.187,-0.186,-0.186,-0.186,-0.186,-0.185,-0.185,-0.185,-0.184,-0.184,-0.184,-0.183,-0.183,-0.183,-0.183,-0.182,-0.182,-0.182,-0.181,-0.181,-0.181,-0.18,-0.18,-0.18,-0.179,-0.179,-0.179,-0.178,-0.178,-0.178,-0.177,-0.177,-0.177,-0.176,-0.176,-0.176,-0.175,-0.175,-0.175,-0.174,-0.174,-0.174,-0.173,-0.173,-0.173,-0.172,-0.172,-0.171,-0.171,-0.171,-0.17,-0.17,-0.17,-0.169,-0.169,-0.168,-0.168,-0.168,-0.167,-0.167,-0.167,-0.166,-0.166,-0.165,-0.165,-0.165,-0.164,-0.164,-0.163,-0.163,-0.163,-0.162,-0.162,-0.161,-0.161,-0.16,-0.16,-0.16,-0.159,-0.159,-0.158,-0.158,-0.158,-0.157,-0.157,-0.156,-0.156,-0.155,-0.155,-0.155,-0.154,-0.154,-0.153,-0.153,-0.152,-0.152,-0.151,-0.151,-0.151,-0.15,-0.15,-0.149,-0.149,-0.148,-0.148,-0.147,-0.147,-0.146,-0.146,-0.146,-0.145,-0.145,-0.144,-0.144,-0.143,-0.143,-0.142,-0.142,-0.141,-0.141,-0.14,-0.14,-0.14,-0.139,-0.139,-0.138,-0.138,-0.137,-0.137,-0.136,-0.136,-0.135,-0.135,-0.134,-0.134,-0.133,-0.133,-0.132,-0.132,-0.131,-0.131,-0.13,-0.13,-0.129,-0.129,-0.128,-0.128,-0.127,-0.127,-0.126,-0.126,-0.125,-0.125,-0.124,-0.124,-0.123,-0.123,-0.122,-0.122,-0.121,-0.121,-0.12,-0.12,-0.119,-0.119,-0.118,-0.118,-0.117,-0.117,-0.116,-0.116,-0.115,-0.115,-0.114,-0.114,-0.113,-0.113,-0.112,-0.112,-0.111,-0.111,-0.11,-0.11,-0.109,-0.109,-0.108,-0.108,-0.107,-0.107,-0.106,-0.106,-0.105,-0.105,-0.104,-0.104,-0.103,-0.103,-0.102,-0.102,-0.101,-0.101,-0.1,-0.1,-0.099,-0.099,-0.098,-0.098,-0.097,-0.097,-0.096,-0.096,-0.095,-0.095,-0.094,-0.094,-0.093,-0.093,-0.092,-0.092,-0.091,-0.091,-0.09,-0.09,-0.089,-0.089,-0.088,-0.088,-0.087,-0.087,-0.086,-0.086,-0.085,-0.085,-0.084,-0.084,-0.083,-0.083,-0.082,-0.082,-0.081,-0.081,-0.08,-0.08,-0.079,-0.079,-0.078,-0.078,-0.077,-0.077,-0.076,-0.076,-0.075,-0.075,-0.074,-0.074,-0.073,-0.073,-0.072,-0.072,-0.071,-0.071,-0.07,-0.07,-0.069,-0.069,-0.068,-0.068,-0.067,-0.067,-0.066,-0.066,-0.065,-0.065,-0.064,-0.064,-0.063,-0.063,-0.062,-0.062,-0.061,-0.061,-0.06,-0.06,-0.06,-0.059,-0.059,-0.058,-0.058,-0.057,-0.057,-0.056,-0.056,-0.055,-0.055,-0.054,-0.054,-0.054,-0.053,-0.053,-0.052,-0.052,-0.051,-0.051,-0.05,-0.05,-0.049,-0.049,-0.049,-0.048,-0.048,-0.047,-0.047,-0.046,-0.046,-0.045,-0.045,-0.045,-0.044,-0.044,-0.043,-0.043,-0.042,-0.042,-0.042,-0.041,-0.041,-0.04,-0.04,-0.04,-0.039,-0.039,-0.038,-0.038,-0.037,-0.037,-0.037,-0.036,-0.036,-0.035,-0.035,-0.035,-0.034,-0.034,-0.033,-0.033,-0.033,-0.032,-0.032,-0.032,-0.031,-0.031,-0.03,-0.03,-0.03,-0.029,-0.029,-0.029,-0.028,-0.028,-0.027,-0.027,-0.027,-0.026,-0.026,-0.026,-0.025,-0.025,-0.025,-0.024,-0.024,-0.024,-0.023,-0.023,-0.023,-0.022,-0.022,-0.022,-0.021,-0.021,-0.021,-0.02,-0.02,-0.02,-0.019,-0.019,-0.019,-0.018,-0.018,-0.018,-0.017,-0.017,-0.017,-0.017,-0.016,-0.016,-0.016,-0.015,-0.015,-0.015,-0.014,-0.014,-0.014,-0.014,-0.013,-0.013,-0.013,-0.013,-0.012,-0.012,-0.012,-0.012,-0.011,-0.011,-0.011,-0.011,-0.01,-0.01,-0.01,-0.01,-0.009,-0.009,-0.009,-0.009,-0.008,-0.008,-0.008,-0.008,-0.008,-0.007,-0.007,-0.007,-0.007,-0.007,-0.006,-0.006,-0.006,-0.006,-0.006,-0.005,-0.005,-0.005,-0.005,-0.005,-0.005,-0.004,-0.004,-0.004,-0.004,-0.004,-0.004,-0.003,-0.003,-0.003,-0.003,-0.003,-0.003,-0.003,-0.003,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,0\nPARAM_EYE_BALL_Y=0,0.004,0.017,0.037,0.064,0.097,0.135,0.179,0.226,0.277,0.33,0.385,0.443,0.5,0.557,0.615,0.67,0.723,0.774,0.821,0.865,0.903,0.936,0.963,0.983,0.996,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.998,0.997,0.997,0.997,0.996,0.996,0.996,0.995,0.995,0.995,0.994,0.994,0.993,0.993,0.992,0.992,0.991,0.991,0.99,0.99,0.989,0.989,0.988,0.987,0.987,0.986,0.986,0.985,0.984,0.984,0.983,0.982,0.981,0.981,0.98,0.979,0.978,0.978,0.977,0.976,0.975,0.974,0.973,0.972,0.972,0.971,0.97,0.969,0.968,0.967,0.966,0.965,0.964,0.963,0.962,0.961,0.96,0.959,0.958,0.957,0.956,0.954,0.953,0.952,0.951,0.95,0.949,0.948,0.946,0.945,0.944,0.943,0.941,0.94,0.939,0.938,0.936,0.935,0.934,0.932,0.931,0.93,0.928,0.927,0.926,0.924,0.923,0.922,0.92,0.919,0.917,0.916,0.914,0.913,0.911,0.91,0.908,0.907,0.905,0.904,0.902,0.901,0.899,0.898,0.896,0.894,0.893,0.891,0.89,0.888,0.886,0.885,0.883,0.881,0.88,0.878,0.876,0.875,0.873,0.871,0.869,0.868,0.866,0.864,0.862,0.861,0.859,0.857,0.855,0.853,0.852,0.85,0.848,0.846,0.844,0.842,0.84,0.839,0.837,0.835,0.833,0.831,0.829,0.827,0.825,0.823,0.821,0.819,0.817,0.815,0.813,0.812,0.81,0.807,0.805,0.803,0.801,0.799,0.797,0.795,0.793,0.791,0.789,0.787,0.785,0.783,0.781,0.779,0.777,0.775,0.772,0.77,0.768,0.766,0.764,0.762,0.76,0.757,0.755,0.753,0.751,0.749,0.747,0.744,0.742,0.74,0.738,0.736,0.733,0.731,0.729,0.727,0.724,0.722,0.72,0.718,0.715,0.713,0.711,0.709,0.706,0.704,0.702,0.699,0.697,0.695,0.693,0.69,0.688,0.686,0.683,0.681,0.679,0.676,0.674,0.672,0.669,0.667,0.665,0.662,0.66,0.657,0.655,0.653,0.65,0.648,0.646,0.643,0.641,0.638,0.636,0.634,0.631,0.629,0.626,0.624,0.622,0.619,0.617,0.614,0.612,0.61,0.607,0.605,0.602,0.6,0.597,0.595,0.592,0.59,0.588,0.585,0.583,0.58,0.578,0.575,0.573,0.57,0.568,0.566,0.563,0.561,0.558,0.556,0.553,0.551,0.548,0.546,0.543,0.541,0.538,0.536,0.533,0.531,0.529,0.526,0.524,0.521,0.519,0.516,0.514,0.511,0.509,0.506,0.504,0.501,0.499,0.496,0.494,0.491,0.489,0.486,0.484,0.481,0.479,0.476,0.474,0.471,0.469,0.467,0.464,0.462,0.459,0.457,0.454,0.452,0.449,0.447,0.444,0.442,0.439,0.437,0.434,0.432,0.43,0.427,0.425,0.422,0.42,0.417,0.415,0.412,0.41,0.408,0.405,0.403,0.4,0.398,0.395,0.393,0.39,0.388,0.386,0.383,0.381,0.378,0.376,0.374,0.371,0.369,0.366,0.364,0.362,0.359,0.357,0.354,0.352,0.35,0.347,0.345,0.343,0.34,0.338,0.335,0.333,0.331,0.328,0.326,0.324,0.321,0.319,0.317,0.314,0.312,0.31,0.307,0.305,0.303,0.301,0.298,0.296,0.294,0.291,0.289,0.287,0.285,0.282,0.28,0.278,0.276,0.273,0.271,0.269,0.267,0.264,0.262,0.26,0.258,0.256,0.253,0.251,0.249,0.247,0.245,0.243,0.24,0.238,0.236,0.234,0.232,0.23,0.228,0.225,0.223,0.221,0.219,0.217,0.215,0.213,0.211,0.209,0.207,0.205,0.203,0.201,0.199,0.197,0.195,0.193,0.19,0.188,0.187,0.185,0.183,0.181,0.179,0.177,0.175,0.173,0.171,0.169,0.167,0.165,0.163,0.161,0.16,0.158,0.156,0.154,0.152,0.15,0.148,0.147,0.145,0.143,0.141,0.139,0.138,0.136,0.134,0.132,0.131,0.129,0.127,0.125,0.124,0.122,0.12,0.119,0.117,0.115,0.114,0.112,0.11,0.109,0.107,0.106,0.104,0.102,0.101,0.099,0.098,0.096,0.095,0.093,0.092,0.09,0.089,0.087,0.086,0.084,0.083,0.081,0.08,0.078,0.077,0.076,0.074,0.073,0.072,0.07,0.069,0.068,0.066,0.065,0.064,0.062,0.061,0.06,0.059,0.057,0.056,0.055,0.054,0.052,0.051,0.05,0.049,0.048,0.047,0.046,0.044,0.043,0.042,0.041,0.04,0.039,0.038,0.037,0.036,0.035,0.034,0.033,0.032,0.031,0.03,0.029,0.028,0.028,0.027,0.026,0.025,0.024,0.023,0.022,0.022,0.021,0.02,0.019,0.019,0.018,0.017,0.016,0.016,0.015,0.014,0.014,0.013,0.013,0.012,0.011,0.011,0.01,0.01,0.009,0.009,0.008,0.008,0.007,0.007,0.006,0.006,0.005,0.005,0.005,0.004,0.004,0.004,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.001,0.001,0.002,0.002,0.003,0.003,0.004,0.004,0.005,0.006,0.007,0.008,0.008,0.009,0.01,0.011,0.013,0.014,0.015,0.016,0.017,0.019,0.02,0.021,0.023,0.024,0.026,0.027,0.029,0.031,0.032,0.034,0.036,0.038,0.039,0.041,0.043,0.045,0.047,0.049,0.051,0.053,0.055,0.058,0.06,0.062,0.064,0.067,0.069,0.071,0.074,0.076,0.078,0.081,0.083,0.086,0.089,0.091,0.094,0.096,0.099,0.102,0.105,0.107,0.11,0.113,0.116,0.119,0.121,0.124,0.127,0.13,0.133,0.136,0.139,0.142,0.145,0.148,0.151,0.155,0.158,0.161,0.164,0.167,0.17,0.174,0.177,0.18,0.183,0.187,0.19,0.193,0.196,0.2,0.203,0.206,0.21,0.213,0.217,0.22,0.223,0.227,0.23,0.234,0.237,0.241,0.244,0.248,0.251,0.254,0.258,0.261,0.265,0.268,0.272,0.275,0.279,0.282,0.286,0.289,0.293,0.296,0.3,0.304,0.307,0.311,0.314,0.318,0.321,0.325,0.328,0.332,0.335,0.339,0.342,0.346,0.349,0.352,0.356,0.359,0.363,0.366,0.37,0.373,0.377,0.38,0.383,0.387,0.39,0.394,0.397,0.4,0.404,0.407,0.41,0.413,0.417,0.42,0.423,0.426,0.43,0.433,0.436,0.439,0.442,0.445,0.449,0.452,0.455,0.458,0.461,0.464,0.467,0.47,0.473,0.476,0.479,0.481,0.484,0.487,0.49,0.493,0.495,0.498,0.501,0.504,0.506,0.509,0.511,0.514,0.517,0.519,0.522,0.524,0.526,0.529,0.531,0.533,0.536,0.538,0.54,0.542,0.545,0.547,0.549,0.551,0.553,0.555,0.557,0.559,0.561,0.562,0.564,0.566,0.568,0.569,0.571,0.573,0.574,0.576,0.577,0.579,0.58,0.581,0.583,0.584,0.585,0.586,0.587,0.589,0.59,0.591,0.592,0.592,0.593,0.594,0.595,0.596,0.596,0.597,0.597,0.598,0.598,0.599,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.598,0.592,0.582,0.569,0.553,0.533,0.511,0.486,0.459,0.43,0.399,0.366,0.332,0.298,0.262,0.225,0.188,0.15,0.112,0.075,0.038,0.002,-0.032,-0.066,-0.099,-0.13,-0.159,-0.186,-0.211,-0.233,-0.253,-0.269,-0.282,-0.292,-0.298,-0.3,-0.3,-0.3,-0.299,-0.298,-0.297,-0.296,-0.295,-0.293,-0.292,-0.29,-0.288,-0.285,-0.283,-0.28,-0.278,-0.275,-0.272,-0.269,-0.265,-0.262,-0.259,-0.255,-0.251,-0.247,-0.243,-0.239,-0.235,-0.231,-0.226,-0.222,-0.217,-0.213,-0.208,-0.203,-0.198,-0.194,-0.189,-0.184,-0.179,-0.174,-0.169,-0.164,-0.158,-0.153,-0.148,-0.143,-0.138,-0.133,-0.128,-0.123,-0.118,-0.113,-0.108,-0.103,-0.098,-0.093,-0.088,-0.083,-0.078,-0.074,-0.069,-0.064,-0.06,-0.055,-0.051,-0.047,-0.043,-0.039,-0.035,-0.031,-0.027,-0.024,-0.02,-0.017,-0.014,-0.011,-0.008,-0.005,-0.002,0,0.002,0.005,0.007,0.009,0.012,0.014,0.016,0.018,0.02,0.022,0.024,0.026,0.028,0.03,0.032,0.034,0.036,0.038,0.04,0.042,0.044,0.046,0.048,0.049,0.051,0.053,0.055,0.056,0.058,0.06,0.061,0.063,0.065,0.066,0.068,0.069,0.071,0.073,0.074,0.076,0.077,0.079,0.08,0.082,0.083,0.085,0.086,0.088,0.089,0.09,0.092,0.093,0.095,0.096,0.097,0.099,0.1,0.102,0.103,0.104,0.106,0.107,0.108,0.11,0.111,0.113,0.114,0.115,0.117,0.118,0.119,0.121,0.122,0.123,0.125,0.126,0.127,0.129,0.13,0.132,0.133,0.134,0.136,0.137,0.139,0.14,0.142,0.143,0.144,0.146,0.147,0.149,0.15,0.152,0.153,0.155,0.156,0.158,0.159,0.161,0.163,0.164,0.166,0.167,0.169,0.171,0.172,0.174,0.176,0.178,0.179,0.181,0.183,0.185,0.187,0.188,0.19,0.192,0.194,0.196,0.198,0.2,0.204,0.212,0.224,0.239,0.257,0.278,0.302,0.327,0.354,0.383,0.413,0.444,0.475,0.507,0.538,0.57,0.6,0.629,0.658,0.684,0.709,0.731,0.751,0.768,0.781,0.792,0.798,0.8,0.8,0.799,0.797,0.795,0.793,0.79,0.786,0.782,0.777,0.772,0.766,0.76,0.754,0.747,0.739,0.731,0.723,0.714,0.705,0.695,0.685,0.675,0.665,0.653,0.642,0.631,0.619,0.606,0.594,0.581,0.568,0.554,0.541,0.527,0.513,0.499,0.484,0.469,0.455,0.439,0.424,0.409,0.393,0.378,0.362,0.346,0.33,0.314,0.298,0.282,0.265,0.249,0.233,0.216,0.2,0.184,0.167,0.151,0.135,0.118,0.102,0.086,0.07,0.054,0.038,0.022,0.007,-0.009,-0.024,-0.039,-0.055,-0.069,-0.084,-0.099,-0.113,-0.127,-0.141,-0.154,-0.168,-0.181,-0.194,-0.206,-0.219,-0.231,-0.242,-0.253,-0.265,-0.275,-0.285,-0.295,-0.305,-0.314,-0.323,-0.331,-0.339,-0.347,-0.354,-0.36,-0.366,-0.372,-0.377,-0.382,-0.386,-0.39,-0.393,-0.395,-0.397,-0.399,-0.4,-0.4,-0.4,-0.399,-0.398,-0.396,-0.394,-0.391,-0.388,-0.384,-0.38,-0.376,-0.371,-0.366,-0.36,-0.354,-0.347,-0.341,-0.333,-0.326,-0.318,-0.31,-0.301,-0.292,-0.283,-0.274,-0.264,-0.254,-0.244,-0.234,-0.223,-0.212,-0.201,-0.19,-0.178,-0.167,-0.155,-0.143,-0.131,-0.118,-0.106,-0.093,-0.081,-0.068,-0.055,-0.042,-0.029,-0.016,-0.003,0.01,0.024,0.037,0.05,0.063,0.076,0.09,0.103,0.116,0.129,0.142,0.155,0.168,0.181,0.193,0.206,0.218,0.231,0.243,0.255,0.267,0.278,0.29,0.301,0.312,0.323,0.334,0.344,0.354,0.364,0.374,0.383,0.392,0.401,0.41,0.418,0.426,0.433,0.441,0.447,0.454,0.46,0.466,0.471,0.476,0.48,0.484,0.488,0.491,0.494,0.496,0.498,0.499,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.499,0.499,0.499,0.499,0.499,0.499,0.499,0.499,0.498,0.498,0.498,0.498,0.498,0.498,0.497,0.497,0.497,0.497,0.496,0.496,0.496,0.496,0.495,0.495,0.495,0.495,0.494,0.494,0.494,0.493,0.493,0.493,0.492,0.492,0.492,0.491,0.491,0.491,0.49,0.49,0.489,0.489,0.489,0.488,0.488,0.487,0.487,0.486,0.486,0.485,0.485,0.485,0.484,0.484,0.483,0.483,0.482,0.482,0.481,0.48,0.48,0.479,0.479,0.478,0.478,0.477,0.477,0.476,0.475,0.475,0.474,0.474,0.473,0.472,0.472,0.471,0.47,0.47,0.469,0.469,0.468,0.467,0.467,0.466,0.465,0.464,0.464,0.463,0.462,0.462,0.461,0.46,0.459,0.459,0.458,0.457,0.456,0.456,0.455,0.454,0.453,0.453,0.452,0.451,0.45,0.449,0.449,0.448,0.447,0.446,0.445,0.445,0.444,0.443,0.442,0.441,0.44,0.439,0.439,0.438,0.437,0.436,0.435,0.434,0.433,0.432,0.431,0.431,0.43,0.429,0.428,0.427,0.426,0.425,0.424,0.423,0.422,0.421,0.42,0.419,0.418,0.417,0.416,0.415,0.414,0.413,0.412,0.411,0.41,0.409,0.408,0.407,0.406,0.405,0.404,0.403,0.402,0.401,0.4,0.399,0.398,0.397,0.396,0.395,0.394,0.393,0.392,0.391,0.39,0.388,0.387,0.386,0.385,0.384,0.383,0.382,0.381,0.38,0.379,0.377,0.376,0.375,0.374,0.373,0.372,0.371,0.37,0.368,0.367,0.366,0.365,0.364,0.363,0.362,0.36,0.359,0.358,0.357,0.356,0.355,0.353,0.352,0.351,0.35,0.349,0.348,0.346,0.345,0.344,0.343,0.342,0.34,0.339,0.338,0.337,0.336,0.334,0.333,0.332,0.331,0.33,0.328,0.327,0.326,0.325,0.323,0.322,0.321,0.32,0.319,0.317,0.316,0.315,0.314,0.312,0.311,0.31,0.309,0.307,0.306,0.305,0.304,0.302,0.301,0.3,0.299,0.297,0.296,0.295,0.294,0.292,0.291,0.29,0.289,0.287,0.286,0.285,0.284,0.282,0.281,0.28,0.279,0.277,0.276,0.275,0.274,0.272,0.271,0.27,0.268,0.267,0.266,0.265,0.263,0.262,0.261,0.26,0.258,0.257,0.256,0.254,0.253,0.252,0.251,0.249,0.248,0.247,0.246,0.244,0.243,0.242,0.24,0.239,0.238,0.237,0.235,0.234,0.233,0.232,0.23,0.229,0.228,0.226,0.225,0.224,0.223,0.221,0.22,0.219,0.218,0.216,0.215,0.214,0.213,0.211,0.21,0.209,0.208,0.206,0.205,0.204,0.203,0.201,0.2,0.199,0.198,0.196,0.195,0.194,0.193,0.191,0.19,0.189,0.188,0.186,0.185,0.184,0.183,0.181,0.18,0.179,0.178,0.177,0.175,0.174,0.173,0.172,0.17,0.169,0.168,0.167,0.166,0.164,0.163,0.162,0.161,0.16,0.158,0.157,0.156,0.155,0.154,0.152,0.151,0.15,0.149,0.148,0.147,0.145,0.144,0.143,0.142,0.141,0.14,0.138,0.137,0.136,0.135,0.134,0.133,0.132,0.13,0.129,0.128,0.127,0.126,0.125,0.124,0.123,0.121,0.12,0.119,0.118,0.117,0.116,0.115,0.114,0.113,0.112,0.11,0.109,0.108,0.107,0.106,0.105,0.104,0.103,0.102,0.101,0.1,0.099,0.098,0.097,0.096,0.095,0.094,0.093,0.092,0.091,0.09,0.089,0.088,0.087,0.086,0.085,0.084,0.083,0.082,0.081,0.08,0.079,0.078,0.077,0.076,0.075,0.074,0.073,0.072,0.071,0.07,0.069,0.069,0.068,0.067,0.066,0.065,0.064,0.063,0.062,0.061,0.061,0.06,0.059,0.058,0.057,0.056,0.055,0.055,0.054,0.053,0.052,0.051,0.051,0.05,0.049,0.048,0.047,0.047,0.046,0.045,0.044,0.044,0.043,0.042,0.041,0.041,0.04,0.039,0.038,0.038,0.037,0.036,0.036,0.035,0.034,0.033,0.033,0.032,0.031,0.031,0.03,0.03,0.029,0.028,0.028,0.027,0.026,0.026,0.025,0.025,0.024,0.023,0.023,0.022,0.022,0.021,0.021,0.02,0.02,0.019,0.018,0.018,0.017,0.017,0.016,0.016,0.015,0.015,0.015,0.014,0.014,0.013,0.013,0.012,0.012,0.011,0.011,0.011,0.01,0.01,0.009,0.009,0.009,0.008,0.008,0.008,0.007,0.007,0.007,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=-1,-1,-0.999,-0.999,-0.998,-0.997,-0.995,-0.994,-0.992,-0.99,-0.987,-0.985,-0.982,-0.979,-0.976,-0.973,-0.97,-0.966,-0.962,-0.958,-0.954,-0.95,-0.946,-0.941,-0.937,-0.932,-0.927,-0.922,-0.917,-0.912,-0.907,-0.902,-0.897,-0.891,-0.886,-0.88,-0.875,-0.869,-0.864,-0.858,-0.853,-0.847,-0.842,-0.836,-0.831,-0.825,-0.82,-0.814,-0.809,-0.803,-0.798,-0.793,-0.788,-0.783,-0.778,-0.773,-0.768,-0.763,-0.759,-0.754,-0.75,-0.746,-0.742,-0.738,-0.734,-0.73,-0.727,-0.724,-0.721,-0.718,-0.715,-0.713,-0.71,-0.708,-0.706,-0.705,-0.703,-0.702,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.701,-0.701,-0.702,-0.703,-0.704,-0.706,-0.707,-0.709,-0.711,-0.713,-0.715,-0.717,-0.719,-0.722,-0.724,-0.727,-0.73,-0.733,-0.736,-0.739,-0.743,-0.746,-0.75,-0.753,-0.757,-0.761,-0.764,-0.768,-0.772,-0.776,-0.781,-0.785,-0.789,-0.793,-0.798,-0.802,-0.807,-0.811,-0.815,-0.82,-0.825,-0.829,-0.834,-0.838,-0.843,-0.848,-0.852,-0.857,-0.862,-0.866,-0.871,-0.875,-0.88,-0.885,-0.889,-0.893,-0.898,-0.902,-0.907,-0.911,-0.915,-0.919,-0.924,-0.928,-0.932,-0.936,-0.939,-0.943,-0.947,-0.95,-0.954,-0.957,-0.961,-0.964,-0.967,-0.97,-0.973,-0.976,-0.978,-0.981,-0.983,-0.985,-0.987,-0.989,-0.991,-0.993,-0.994,-0.996,-0.997,-0.998,-0.999,-0.999,-1,-1,-1,-1,-0.999,-0.998,-0.996,-0.994,-0.991,-0.988,-0.985,-0.981,-0.977,-0.972,-0.967,-0.962,-0.956,-0.95,-0.944,-0.937,-0.93,-0.923,-0.915,-0.907,-0.899,-0.891,-0.882,-0.873,-0.864,-0.855,-0.845,-0.835,-0.825,-0.815,-0.805,-0.794,-0.784,-0.773,-0.762,-0.751,-0.74,-0.729,-0.718,-0.707,-0.696,-0.684,-0.673,-0.661,-0.65,-0.639,-0.627,-0.616,-0.604,-0.593,-0.582,-0.571,-0.56,-0.549,-0.538,-0.527,-0.516,-0.506,-0.495,-0.485,-0.475,-0.465,-0.455,-0.445,-0.436,-0.427,-0.418,-0.409,-0.401,-0.393,-0.385,-0.377,-0.37,-0.363,-0.356,-0.35,-0.344,-0.338,-0.333,-0.328,-0.323,-0.319,-0.315,-0.312,-0.309,-0.306,-0.304,-0.302,-0.301,-0.3,-0.3,-0.3,-0.301,-0.303,-0.305,-0.308,-0.311,-0.315,-0.319,-0.324,-0.329,-0.335,-0.342,-0.348,-0.356,-0.363,-0.371,-0.38,-0.388,-0.398,-0.407,-0.417,-0.427,-0.437,-0.448,-0.459,-0.47,-0.481,-0.493,-0.505,-0.517,-0.529,-0.541,-0.554,-0.566,-0.579,-0.592,-0.605,-0.618,-0.631,-0.644,-0.656,-0.669,-0.682,-0.695,-0.708,-0.721,-0.734,-0.746,-0.759,-0.771,-0.783,-0.795,-0.807,-0.819,-0.83,-0.841,-0.852,-0.863,-0.873,-0.883,-0.893,-0.902,-0.912,-0.92,-0.929,-0.937,-0.944,-0.952,-0.958,-0.965,-0.971,-0.976,-0.981,-0.985,-0.989,-0.992,-0.995,-0.997,-0.999,-1,-1,-1,-0.999,-0.999,-0.998,-0.996,-0.995,-0.993,-0.991,-0.989,-0.986,-0.984,-0.981,-0.977,-0.974,-0.97,-0.967,-0.963,-0.958,-0.954,-0.95,-0.945,-0.94,-0.935,-0.93,-0.925,-0.919,-0.914,-0.908,-0.902,-0.896,-0.89,-0.884,-0.878,-0.872,-0.866,-0.859,-0.853,-0.846,-0.84,-0.833,-0.827,-0.82,-0.813,-0.807,-0.8,-0.793,-0.787,-0.78,-0.773,-0.767,-0.76,-0.754,-0.747,-0.741,-0.734,-0.728,-0.722,-0.716,-0.71,-0.704,-0.698,-0.692,-0.686,-0.681,-0.675,-0.67,-0.665,-0.66,-0.655,-0.65,-0.646,-0.642,-0.637,-0.633,-0.63,-0.626,-0.623,-0.619,-0.616,-0.614,-0.611,-0.609,-0.607,-0.605,-0.604,-0.602,-0.601,-0.601,-0.6,-0.6,-0.6,-0.6,-0.601,-0.601,-0.602,-0.603,-0.604,-0.605,-0.607,-0.608,-0.61,-0.612,-0.614,-0.616,-0.618,-0.62,-0.623,-0.625,-0.628,-0.631,-0.633,-0.636,-0.639,-0.642,-0.645,-0.649,-0.652,-0.655,-0.659,-0.662,-0.665,-0.669,-0.673,-0.676,-0.68,-0.683,-0.687,-0.691,-0.694,-0.698,-0.702,-0.706,-0.709,-0.713,-0.717,-0.72,-0.724,-0.727,-0.731,-0.735,-0.738,-0.741,-0.745,-0.748,-0.751,-0.755,-0.758,-0.761,-0.764,-0.767,-0.769,-0.772,-0.775,-0.777,-0.78,-0.782,-0.784,-0.786,-0.788,-0.79,-0.792,-0.793,-0.795,-0.796,-0.797,-0.798,-0.799,-0.799,-0.8,-0.8,-0.8,-0.8,-0.799,-0.798,-0.796,-0.794,-0.792,-0.789,-0.786,-0.782,-0.778,-0.774,-0.769,-0.764,-0.759,-0.753,-0.747,-0.74,-0.734,-0.726,-0.719,-0.711,-0.703,-0.695,-0.686,-0.678,-0.668,-0.659,-0.65,-0.64,-0.63,-0.619,-0.609,-0.598,-0.587,-0.576,-0.565,-0.554,-0.542,-0.531,-0.519,-0.507,-0.495,-0.482,-0.47,-0.457,-0.445,-0.432,-0.419,-0.407,-0.394,-0.381,-0.368,-0.355,-0.342,-0.329,-0.316,-0.302,-0.289,-0.276,-0.263,-0.25,-0.237,-0.224,-0.211,-0.198,-0.185,-0.173,-0.16,-0.147,-0.135,-0.122,-0.11,-0.098,-0.086,-0.074,-0.062,-0.05,-0.039,-0.028,-0.016,-0.006,0.005,0.016,0.026,0.036,0.046,0.056,0.065,0.075,0.084,0.092,0.101,0.109,0.117,0.124,0.132,0.138,0.145,0.151,0.157,0.163,0.168,0.173,0.178,0.182,0.186,0.189,0.192,0.195,0.197,0.199,0.2,0.201,0.202,0.203,0.204,0.205,0.206,0.207,0.208,0.209,0.21,0.211,0.212,0.213,0.214,0.215,0.216,0.217,0.218,0.219,0.219,0.22,0.221,0.222,0.223,0.223,0.224,0.225,0.226,0.226,0.227,0.228,0.229,0.229,0.23,0.231,0.231,0.232,0.233,0.233,0.234,0.235,0.235,0.236,0.237,0.237,0.238,0.238,0.239,0.24,0.24,0.241,0.241,0.242,0.242,0.243,0.243,0.244,0.245,0.245,0.246,0.246,0.247,0.247,0.248,0.248,0.249,0.249,0.25,0.25,0.251,0.251,0.252,0.252,0.252,0.253,0.253,0.254,0.254,0.255,0.255,0.256,0.256,0.257,0.257,0.258,0.258,0.259,0.259,0.26,0.26,0.261,0.261,0.262,0.262,0.262,0.263,0.263,0.264,0.264,0.265,0.265,0.266,0.266,0.267,0.268,0.268,0.269,0.269,0.27,0.27,0.271,0.271,0.272,0.272,0.273,0.274,0.274,0.275,0.275,0.276,0.277,0.277,0.278,0.278,0.279,0.28,0.28,0.281,0.282,0.282,0.283,0.284,0.284,0.285,0.286,0.287,0.287,0.288,0.289,0.29,0.291,0.291,0.292,0.293,0.294,0.295,0.295,0.296,0.297,0.298,0.299,0.3,0.301,0.304,0.307,0.311,0.315,0.321,0.327,0.334,0.342,0.35,0.359,0.369,0.379,0.389,0.4,0.412,0.424,0.437,0.45,0.463,0.477,0.491,0.505,0.52,0.534,0.549,0.564,0.58,0.595,0.611,0.626,0.642,0.658,0.673,0.689,0.704,0.72,0.735,0.75,0.765,0.78,0.795,0.809,0.823,0.837,0.85,0.863,0.876,0.888,0.899,0.91,0.921,0.931,0.941,0.95,0.958,0.966,0.972,0.979,0.984,0.989,0.993,0.996,0.998,1,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.998,0.997,0.997,0.997,0.996,0.996,0.996,0.995,0.995,0.995,0.994,0.994,0.993,0.993,0.992,0.992,0.991,0.991,0.99,0.99,0.989,0.989,0.988,0.987,0.987,0.986,0.985,0.985,0.984,0.983,0.983,0.982,0.981,0.981,0.98,0.979,0.978,0.978,0.977,0.976,0.975,0.974,0.974,0.973,0.972,0.971,0.97,0.969,0.968,0.967,0.966,0.965,0.964,0.964,0.963,0.962,0.961,0.96,0.959,0.958,0.956,0.955,0.954,0.953,0.952,0.951,0.95,0.949,0.948,0.947,0.946,0.944,0.943,0.942,0.941,0.94,0.939,0.937,0.936,0.935,0.934,0.933,0.931,0.93,0.929,0.927,0.926,0.925,0.924,0.922,0.921,0.92,0.918,0.917,0.916,0.914,0.913,0.912,0.91,0.909,0.908,0.906,0.905,0.903,0.902,0.901,0.899,0.898,0.896,0.895,0.894,0.892,0.891,0.889,0.888,0.886,0.885,0.883,0.882,0.88,0.879,0.877,0.876,0.874,0.873,0.871,0.87,0.868,0.867,0.865,0.864,0.862,0.861,0.859,0.858,0.856,0.855,0.853,0.851,0.85,0.848,0.847,0.845,0.844,0.842,0.841,0.839,0.837,0.836,0.834,0.833,0.831,0.829,0.828,0.826,0.825,0.823,0.821,0.82,0.818,0.817,0.815,0.813,0.812,0.81,0.809,0.807,0.805,0.804,0.802,0.8,0.799,0.797,0.796,0.794,0.792,0.791,0.789,0.788,0.786,0.784,0.783,0.781,0.779,0.778,0.776,0.775,0.773,0.771,0.77,0.768,0.767,0.765,0.763,0.762,0.76,0.759,0.757,0.755,0.754,0.752,0.751,0.749,0.748,0.746,0.744,0.743,0.741,0.74,0.738,0.737,0.735,0.733,0.732,0.73,0.729,0.727,0.726,0.724,0.723,0.721,0.72,0.718,0.717,0.715,0.714,0.712,0.711,0.709,0.708,0.706,0.705,0.703,0.702,0.7,0.699,0.697,0.696,0.695,0.693,0.692,0.69,0.689,0.688,0.686,0.685,0.683,0.682,0.681,0.679,0.678,0.677,0.675,0.674,0.672,0.671,0.67,0.669,0.667,0.666,0.665,0.663,0.662,0.661,0.66,0.658,0.657,0.656,0.655,0.653,0.652,0.651,0.65,0.649,0.648,0.646,0.645,0.644,0.643,0.642,0.641,0.64,0.639,0.637,0.636,0.635,0.634,0.633,0.632,0.631,0.63,0.629,0.628,0.627,0.626,0.625,0.624,0.623,0.622,0.621,0.621,0.62,0.619,0.618,0.617,0.616,0.615,0.614,0.614,0.613,0.612,0.611,0.611,0.61,0.609,0.608,0.608,0.607,0.606,0.606,0.605,0.604,0.604,0.603,0.602,0.602,0.601,0.601,0.6,0.599,0.599,0.598,0.598,0.597,0.597,0.596,0.596,0.595,0.595,0.594,0.594,0.593,0.593,0.592,0.592,0.591,0.591,0.59,0.59,0.589,0.589,0.588,0.588,0.587,0.587,0.586,0.586,0.585,0.585,0.584,0.584,0.584,0.583,0.583,0.582,0.582,0.581,0.581,0.581,0.58,0.58,0.579,0.579,0.578,0.578,0.578,0.577,0.577,0.576,0.576,0.576,0.575,0.575,0.574,0.574,0.574,0.573,0.573,0.573,0.572,0.572,0.571,0.571,0.571,0.57,0.57,0.57,0.569,0.569,0.569,0.568,0.568,0.567,0.567,0.567,0.566,0.566,0.566,0.565,0.565,0.565,0.564,0.564,0.564,0.563,0.563,0.563,0.563,0.562,0.562,0.562,0.561,0.561,0.561,0.56,0.56,0.56,0.559,0.559,0.559,0.559,0.558,0.558,0.558,0.557,0.557,0.557,0.557,0.556,0.556,0.556,0.555,0.555,0.555,0.555,0.554,0.554,0.554,0.554,0.553,0.553,0.553,0.553,0.552,0.552,0.552,0.552,0.551,0.551,0.551,0.551,0.55,0.55,0.55,0.55,0.549,0.549,0.549,0.549,0.548,0.548,0.548,0.548,0.547,0.547,0.547,0.547,0.546,0.546,0.546,0.546,0.545,0.545,0.545,0.545,0.545,0.544,0.544,0.544,0.544,0.543,0.543,0.543,0.543,0.543,0.542,0.542,0.542,0.542,0.541,0.541,0.541,0.541,0.541,0.54,0.54,0.54,0.54,0.539,0.539,0.539,0.539,0.539,0.538,0.538,0.538,0.538,0.537,0.537,0.537,0.537,0.537,0.536,0.536,0.536,0.536,0.535,0.535,0.535,0.535,0.535,0.534,0.534,0.534,0.534,0.534,0.533,0.533,0.533,0.533,0.532,0.532,0.532,0.532,0.532,0.531,0.531,0.531,0.531,0.53,0.53,0.53,0.53,0.53,0.529,0.529,0.529,0.529,0.528,0.528,0.528,0.528,0.527,0.527,0.527,0.527,0.526,0.526,0.526,0.526,0.526,0.525,0.525,0.525,0.525,0.524,0.524,0.524,0.524,0.523,0.523,0.523,0.523,0.522,0.522,0.522,0.522,0.521,0.521,0.521,0.521,0.52,0.52,0.52,0.519,0.519,0.519,0.519,0.518,0.518,0.518,0.518,0.517,0.517,0.517,0.516,0.516,0.516,0.516,0.515,0.515,0.515,0.514,0.514,0.514,0.514,0.513,0.513,0.513,0.512,0.512,0.512,0.511,0.511,0.511,0.51,0.51,0.51,0.509,0.509,0.509,0.509,0.508,0.508,0.508,0.507,0.507,0.507,0.506,0.506,0.505,0.505,0.505,0.504,0.504,0.504,0.503,0.503,0.503,0.502,0.502,0.502,0.501,0.501,0.5,0.5,0.499,0.498,0.497,0.495,0.492,0.489,0.486,0.482,0.478,0.474,0.469,0.463,0.458,0.452,0.446,0.439,0.432,0.425,0.418,0.41,0.402,0.393,0.385,0.376,0.367,0.358,0.349,0.34,0.33,0.32,0.31,0.301,0.29,0.28,0.27,0.259,0.249,0.238,0.228,0.217,0.207,0.196,0.185,0.175,0.164,0.154,0.143,0.133,0.123,0.112,0.102,0.092,0.082,0.072,0.063,0.053,0.044,0.035,0.026,0.017,0.009,0,-0.008,-0.016,-0.023,-0.03,-0.037,-0.044,-0.05,-0.056,-0.062,-0.067,-0.072,-0.077,-0.081,-0.085,-0.088,-0.091,-0.094,-0.096,-0.098,-0.099,-0.1,-0.1,-0.1,-0.1,-0.1,-0.099,-0.099,-0.099,-0.098,-0.098,-0.097,-0.097,-0.096,-0.096,-0.095,-0.094,-0.093,-0.092,-0.091,-0.09,-0.089,-0.088,-0.087,-0.085,-0.084,-0.083,-0.081,-0.08,-0.078,-0.077,-0.075,-0.073,-0.072,-0.07,-0.068,-0.066,-0.064,-0.062,-0.06,-0.058,-0.056,-0.054,-0.051,-0.049,-0.047,-0.044,-0.042,-0.039,-0.037,-0.034,-0.032,-0.029,-0.026,-0.024,-0.021,-0.018,-0.015,-0.012,-0.009,-0.006,-0.003,-0,0.003,0.006,0.009,0.012,0.016,0.019,0.022,0.026,0.029,0.033,0.036,0.04,0.043,0.047,0.05,0.054,0.058,0.061,0.065,0.069,0.073,0.077,0.081,0.085,0.088,0.092,0.096,0.1,0.104,0.109,0.113,0.117,0.121,0.125,0.13,0.134,0.138,0.142,0.147,0.151,0.155,0.16,0.164,0.169,0.173,0.178,0.182,0.187,0.191,0.196,0.2,0.205,0.21,0.214,0.219,0.224,0.228,0.233,0.238,0.243,0.247,0.252,0.257,0.262,0.267,0.272,0.276,0.281,0.286,0.291,0.296,0.301,0.306,0.311,0.316,0.321,0.326,0.331,0.336,0.341,0.346,0.351,0.356,0.361,0.366,0.371,0.376,0.381,0.386,0.391,0.396,0.402,0.407,0.412,0.417,0.422,0.427,0.432,0.437,0.442,0.447,0.453,0.458,0.463,0.468,0.473,0.478,0.483,0.488,0.493,0.498,0.504,0.509,0.514,0.519,0.524,0.529,0.534,0.539,0.544,0.549,0.554,0.559,0.564,0.569,0.574,0.579,0.584,0.589,0.594,0.599,0.604,0.609,0.614,0.619,0.624,0.628,0.633,0.638,0.643,0.648,0.653,0.657,0.662,0.667,0.672,0.676,0.681,0.686,0.69,0.695,0.7,0.704,0.709,0.713,0.718,0.722,0.727,0.731,0.736,0.74,0.745,0.749,0.753,0.758,0.762,0.766,0.77,0.775,0.779,0.783,0.787,0.791,0.796,0.8,0.804,0.808,0.812,0.815,0.819,0.823,0.827,0.831,0.835,0.839,0.842,0.846,0.85,0.853,0.857,0.86,0.864,0.867,0.871,0.874,0.878,0.881,0.884,0.888,0.891,0.894,0.897,0.9,0.903,0.906,0.909,0.912,0.915,0.918,0.921,0.924,0.926,0.929,0.932,0.934,0.937,0.939,0.942,0.944,0.947,0.949,0.951,0.954,0.956,0.958,0.96,0.962,0.964,0.966,0.968,0.97,0.972,0.973,0.975,0.977,0.978,0.98,0.981,0.983,0.984,0.985,0.987,0.988,0.989,0.99,0.991,0.992,0.993,0.994,0.995,0.996,0.996,0.997,0.997,0.998,0.998,0.999,0.999,0.999,1,1,1,1,0.999,0.995,0.989,0.981,0.97,0.957,0.942,0.926,0.907,0.886,0.864,0.84,0.814,0.786,0.758,0.727,0.696,0.663,0.629,0.593,0.557,0.52,0.482,0.442,0.403,0.362,0.321,0.279,0.237,0.194,0.152,0.108,0.065,0.022,-0.022,-0.065,-0.108,-0.152,-0.194,-0.237,-0.279,-0.321,-0.362,-0.403,-0.442,-0.482,-0.52,-0.557,-0.593,-0.629,-0.663,-0.696,-0.727,-0.758,-0.786,-0.814,-0.84,-0.864,-0.886,-0.907,-0.926,-0.942,-0.957,-0.97,-0.981,-0.989,-0.995,-0.999,-1\nPARAM_MOUTH_OPEN_Y=0.2,0.2,0.201,0.201,0.202,0.203,0.205,0.206,0.208,0.21,0.213,0.215,0.218,0.221,0.224,0.227,0.23,0.234,0.238,0.242,0.246,0.25,0.254,0.259,0.263,0.268,0.273,0.278,0.283,0.288,0.293,0.298,0.303,0.309,0.314,0.32,0.325,0.331,0.336,0.342,0.347,0.353,0.358,0.364,0.369,0.375,0.38,0.386,0.391,0.397,0.402,0.407,0.412,0.417,0.422,0.427,0.432,0.437,0.441,0.446,0.45,0.454,0.458,0.462,0.466,0.47,0.473,0.476,0.479,0.482,0.485,0.487,0.49,0.492,0.494,0.495,0.497,0.498,0.499,0.499,0.5,0.5,0.5,0.499,0.499,0.498,0.496,0.495,0.493,0.49,0.488,0.485,0.482,0.479,0.475,0.472,0.468,0.464,0.459,0.455,0.45,0.445,0.44,0.435,0.429,0.423,0.417,0.411,0.405,0.399,0.393,0.386,0.379,0.373,0.366,0.359,0.352,0.345,0.337,0.33,0.322,0.315,0.308,0.3,0.292,0.285,0.277,0.269,0.262,0.254,0.246,0.238,0.231,0.223,0.215,0.208,0.2,0.192,0.185,0.178,0.17,0.163,0.155,0.148,0.141,0.134,0.127,0.121,0.114,0.107,0.101,0.095,0.089,0.083,0.077,0.071,0.065,0.06,0.055,0.05,0.045,0.041,0.036,0.032,0.028,0.025,0.021,0.018,0.015,0.012,0.01,0.007,0.005,0.004,0.002,0.001,0.001,0,0,0,0.001,0.002,0.003,0.004,0.006,0.008,0.011,0.013,0.016,0.02,0.023,0.027,0.031,0.036,0.04,0.045,0.05,0.055,0.061,0.066,0.072,0.078,0.084,0.091,0.097,0.104,0.111,0.118,0.125,0.132,0.139,0.147,0.154,0.162,0.17,0.178,0.185,0.193,0.201,0.209,0.217,0.225,0.234,0.242,0.25,0.258,0.266,0.275,0.283,0.291,0.299,0.307,0.315,0.322,0.33,0.338,0.346,0.353,0.361,0.368,0.375,0.382,0.389,0.396,0.403,0.409,0.416,0.422,0.428,0.434,0.439,0.445,0.45,0.455,0.46,0.464,0.469,0.473,0.477,0.48,0.484,0.487,0.489,0.492,0.494,0.496,0.497,0.498,0.499,0.5,0.5,0.5,0.499,0.499,0.498,0.497,0.495,0.494,0.492,0.49,0.487,0.485,0.482,0.479,0.476,0.473,0.47,0.466,0.462,0.458,0.454,0.45,0.446,0.441,0.437,0.432,0.427,0.422,0.417,0.412,0.407,0.402,0.397,0.391,0.386,0.38,0.375,0.369,0.364,0.358,0.353,0.347,0.342,0.336,0.331,0.325,0.32,0.314,0.309,0.303,0.298,0.293,0.288,0.283,0.278,0.273,0.268,0.263,0.259,0.254,0.25,0.246,0.242,0.238,0.234,0.23,0.227,0.224,0.221,0.218,0.215,0.213,0.21,0.208,0.206,0.205,0.203,0.202,0.201,0.201,0.2,0.2,0.2,0.2,0.201,0.202,0.203,0.204,0.205,0.207,0.208,0.21,0.212,0.215,0.217,0.22,0.222,0.225,0.228,0.231,0.234,0.238,0.241,0.245,0.249,0.253,0.257,0.261,0.265,0.269,0.273,0.278,0.282,0.287,0.291,0.296,0.301,0.306,0.31,0.315,0.32,0.325,0.33,0.335,0.34,0.345,0.35,0.355,0.36,0.365,0.37,0.375,0.38,0.385,0.39,0.394,0.399,0.404,0.409,0.413,0.418,0.422,0.427,0.431,0.435,0.439,0.443,0.447,0.451,0.455,0.459,0.462,0.466,0.469,0.472,0.475,0.478,0.48,0.483,0.485,0.488,0.49,0.492,0.493,0.495,0.496,0.497,0.498,0.499,0.5,0.5,0.5,0.5,0.5,0.499,0.499,0.498,0.498,0.497,0.496,0.495,0.494,0.492,0.491,0.489,0.488,0.486,0.484,0.482,0.48,0.478,0.475,0.473,0.471,0.468,0.465,0.462,0.46,0.457,0.453,0.45,0.447,0.444,0.44,0.437,0.433,0.43,0.426,0.422,0.418,0.414,0.41,0.406,0.402,0.397,0.393,0.389,0.384,0.38,0.375,0.37,0.366,0.361,0.356,0.351,0.346,0.342,0.336,0.331,0.326,0.321,0.316,0.311,0.306,0.3,0.295,0.289,0.284,0.279,0.273,0.268,0.262,0.257,0.251,0.245,0.24,0.234,0.229,0.223,0.217,0.211,0.206,0.2,0.194,0.189,0.183,0.178,0.173,0.167,0.162,0.157,0.153,0.148,0.143,0.139,0.134,0.13,0.125,0.121,0.117,0.113,0.109,0.105,0.101,0.098,0.094,0.09,0.087,0.084,0.08,0.077,0.074,0.071,0.068,0.065,0.062,0.06,0.057,0.054,0.052,0.049,0.047,0.045,0.042,0.04,0.038,0.036,0.034,0.032,0.03,0.029,0.027,0.025,0.024,0.022,0.021,0.019,0.018,0.017,0.015,0.014,0.013,0.012,0.011,0.01,0.009,0.008,0.007,0.007,0.006,0.005,0.005,0.004,0.003,0.003,0.003,0.002,0.002,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.001,0.005,0.011,0.019,0.029,0.04,0.054,0.068,0.083,0.099,0.116,0.133,0.15,0.167,0.184,0.201,0.217,0.232,0.246,0.26,0.271,0.281,0.289,0.295,0.299,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.299,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.298,0.297,0.297,0.297,0.297,0.297,0.297,0.297,0.297,0.297,0.297,0.296,0.296,0.296,0.296,0.296,0.296,0.296,0.296,0.296,0.295,0.295,0.295,0.295,0.295,0.295,0.295,0.295,0.294,0.294,0.294,0.294,0.294,0.294,0.294,0.293,0.293,0.293,0.293,0.293,0.293,0.293,0.292,0.292,0.292,0.292,0.292,0.292,0.291,0.291,0.291,0.291,0.291,0.291,0.29,0.29,0.29,0.29,0.29,0.289,0.289,0.289,0.289,0.289,0.288,0.288,0.288,0.288,0.288,0.287,0.287,0.287,0.287,0.287,0.286,0.286,0.286,0.286,0.285,0.285,0.285,0.285,0.285,0.284,0.284,0.284,0.284,0.283,0.283,0.283,0.283,0.282,0.282,0.282,0.282,0.281,0.281,0.281,0.28,0.28,0.28,0.28,0.279,0.279,0.279,0.279,0.278,0.278,0.278,0.277,0.277,0.277,0.277,0.276,0.276,0.276,0.275,0.275,0.275,0.274,0.274,0.274,0.273,0.273,0.273,0.272,0.272,0.272,0.271,0.271,0.271,0.27,0.27,0.27,0.269,0.269,0.269,0.268,0.268,0.268,0.267,0.267,0.266,0.266,0.266,0.265,0.265,0.265,0.264,0.264,0.263,0.263,0.263,0.262,0.262,0.261,0.261,0.261,0.26,0.26,0.259,0.259,0.259,0.258,0.258,0.257,0.257,0.256,0.256,0.256,0.255,0.255,0.254,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.251,0.25,0.25,0.249,0.249,0.248,0.248,0.247,0.247,0.246,0.246,0.245,0.245,0.244,0.244,0.243,0.243,0.242,0.242,0.241,0.241,0.24,0.24,0.239,0.239,0.238,0.238,0.237,0.237,0.236,0.236,0.235,0.235,0.234,0.233,0.233,0.232,0.232,0.231,0.231,0.23,0.229,0.229,0.228,0.228,0.227,0.227,0.226,0.225,0.225,0.224,0.224,0.223,0.222,0.222,0.221,0.221,0.22,0.219,0.219,0.218,0.217,0.217,0.216,0.216,0.215,0.214,0.214,0.213,0.212,0.212,0.211,0.21,0.21,0.209,0.208,0.208,0.207,0.206,0.206,0.205,0.204,0.204,0.203,0.202,0.201,0.201,0.2,0.199,0.198,0.197,0.195,0.193,0.191,0.188,0.185,0.182,0.179,0.176,0.172,0.169,0.165,0.161,0.157,0.153,0.148,0.144,0.139,0.134,0.129,0.125,0.12,0.115,0.11,0.105,0.1,0.095,0.09,0.085,0.08,0.075,0.07,0.065,0.061,0.056,0.052,0.047,0.043,0.039,0.035,0.031,0.027,0.024,0.021,0.018,0.015,0.012,0.01,0.007,0.006,0.004,0.003,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.002,0.004,0.007,0.01,0.015,0.02,0.025,0.031,0.038,0.045,0.052,0.059,0.067,0.075,0.083,0.092,0.1,0.108,0.117,0.125,0.133,0.141,0.148,0.155,0.162,0.169,0.175,0.18,0.185,0.19,0.193,0.196,0.198,0.2,0.2\nPARAM_BROW_L_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.993,-0.992,-0.992,-0.992,-0.992,-0.991,-0.991,-0.991,-0.991,-0.99,-0.99,-0.99,-0.99,-0.989,-0.989,-0.989,-0.989,-0.988,-0.988,-0.988,-0.987,-0.987,-0.987,-0.987,-0.986,-0.986,-0.986,-0.985,-0.985,-0.985,-0.984,-0.984,-0.984,-0.983,-0.983,-0.983,-0.982,-0.982,-0.982,-0.981,-0.981,-0.981,-0.98,-0.98,-0.98,-0.979,-0.979,-0.978,-0.978,-0.978,-0.977,-0.977,-0.977,-0.976,-0.976,-0.975,-0.975,-0.975,-0.974,-0.974,-0.973,-0.973,-0.973,-0.972,-0.972,-0.971,-0.971,-0.97,-0.97,-0.97,-0.969,-0.969,-0.968,-0.968,-0.967,-0.967,-0.967,-0.966,-0.966,-0.965,-0.965,-0.964,-0.964,-0.963,-0.963,-0.962,-0.962,-0.961,-0.961,-0.961,-0.96,-0.96,-0.959,-0.959,-0.958,-0.958,-0.957,-0.957,-0.956,-0.956,-0.955,-0.955,-0.954,-0.954,-0.953,-0.953,-0.952,-0.952,-0.951,-0.951,-0.95,-0.95,-0.949,-0.948,-0.948,-0.947,-0.947,-0.946,-0.946,-0.945,-0.945,-0.944,-0.944,-0.943,-0.943,-0.942,-0.941,-0.941,-0.94,-0.94,-0.939,-0.939,-0.938,-0.938,-0.937,-0.936,-0.936,-0.935,-0.935,-0.934,-0.934,-0.933,-0.932,-0.932,-0.931,-0.931,-0.93,-0.93,-0.929,-0.928,-0.928,-0.927,-0.927,-0.926,-0.925,-0.925,-0.924,-0.924,-0.923,-0.922,-0.922,-0.921,-0.921,-0.92,-0.919,-0.919,-0.918,-0.918,-0.917,-0.916,-0.916,-0.915,-0.914,-0.914,-0.913,-0.913,-0.912,-0.911,-0.911,-0.91,-0.909,-0.909,-0.908,-0.908,-0.907,-0.906,-0.906,-0.905,-0.904,-0.904,-0.903,-0.903,-0.902,-0.901,-0.901,-0.9,-0.899,-0.899,-0.898,-0.897,-0.897,-0.896,-0.895,-0.895,-0.894,-0.893,-0.893,-0.892,-0.892,-0.891,-0.89,-0.89,-0.889,-0.888,-0.888,-0.887,-0.886,-0.886,-0.885,-0.884,-0.884,-0.883,-0.882,-0.882,-0.881,-0.88,-0.88,-0.879,-0.878,-0.878,-0.877,-0.876,-0.876,-0.875,-0.874,-0.874,-0.873,-0.872,-0.872,-0.871,-0.87,-0.87,-0.869,-0.868,-0.868,-0.867,-0.866,-0.866,-0.865,-0.864,-0.864,-0.863,-0.862,-0.862,-0.861,-0.86,-0.859,-0.859,-0.858,-0.857,-0.857,-0.856,-0.855,-0.855,-0.854,-0.853,-0.853,-0.852,-0.851,-0.851,-0.85,-0.849,-0.849,-0.848,-0.847,-0.847,-0.846,-0.845,-0.845,-0.844,-0.843,-0.843,-0.842,-0.841,-0.841,-0.84,-0.839,-0.838,-0.838,-0.837,-0.836,-0.836,-0.835,-0.834,-0.834,-0.833,-0.832,-0.832,-0.831,-0.83,-0.83,-0.829,-0.828,-0.828,-0.827,-0.826,-0.826,-0.825,-0.824,-0.824,-0.823,-0.822,-0.822,-0.821,-0.82,-0.82,-0.819,-0.818,-0.818,-0.817,-0.816,-0.816,-0.815,-0.814,-0.814,-0.813,-0.812,-0.812,-0.811,-0.81,-0.81,-0.809,-0.808,-0.808,-0.807,-0.807,-0.806,-0.805,-0.805,-0.804,-0.803,-0.803,-0.802,-0.801,-0.801,-0.8,-0.799,-0.799,-0.798,-0.797,-0.797,-0.796,-0.796,-0.795,-0.794,-0.794,-0.793,-0.792,-0.792,-0.791,-0.791,-0.79,-0.789,-0.789,-0.788,-0.787,-0.787,-0.786,-0.786,-0.785,-0.784,-0.784,-0.783,-0.782,-0.782,-0.781,-0.781,-0.78,-0.779,-0.779,-0.778,-0.778,-0.777,-0.776,-0.776,-0.775,-0.775,-0.774,-0.773,-0.773,-0.772,-0.772,-0.771,-0.77,-0.77,-0.769,-0.769,-0.768,-0.768,-0.767,-0.766,-0.766,-0.765,-0.765,-0.764,-0.764,-0.763,-0.762,-0.762,-0.761,-0.761,-0.76,-0.76,-0.759,-0.759,-0.758,-0.757,-0.757,-0.756,-0.756,-0.755,-0.755,-0.754,-0.754,-0.753,-0.753,-0.752,-0.752,-0.751,-0.75,-0.75,-0.749,-0.749,-0.748,-0.748,-0.747,-0.747,-0.746,-0.746,-0.745,-0.745,-0.744,-0.744,-0.743,-0.743,-0.742,-0.742,-0.741,-0.741,-0.74,-0.74,-0.739,-0.739,-0.739,-0.738,-0.738,-0.737,-0.737,-0.736,-0.736,-0.735,-0.735,-0.734,-0.734,-0.733,-0.733,-0.733,-0.732,-0.732,-0.731,-0.731,-0.73,-0.73,-0.73,-0.729,-0.729,-0.728,-0.728,-0.727,-0.727,-0.727,-0.726,-0.726,-0.725,-0.725,-0.725,-0.724,-0.724,-0.723,-0.723,-0.723,-0.722,-0.722,-0.722,-0.721,-0.721,-0.72,-0.72,-0.72,-0.719,-0.719,-0.719,-0.718,-0.718,-0.718,-0.717,-0.717,-0.717,-0.716,-0.716,-0.716,-0.715,-0.715,-0.715,-0.714,-0.714,-0.714,-0.713,-0.713,-0.713,-0.713,-0.712,-0.712,-0.712,-0.711,-0.711,-0.711,-0.711,-0.71,-0.71,-0.71,-0.71,-0.709,-0.709,-0.709,-0.709,-0.708,-0.708,-0.708,-0.708,-0.707,-0.707,-0.707,-0.707,-0.706,-0.706,-0.706,-0.706,-0.706,-0.705,-0.705,-0.705,-0.705,-0.705,-0.704,-0.704,-0.704,-0.704,-0.704,-0.704,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.705,-0.719,-0.74,-0.768,-0.799,-0.832,-0.868,-0.901,-0.932,-0.96,-0.981,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.992,-0.992,-0.991,-0.991,-0.991,-0.99,-0.99,-0.989,-0.989,-0.988,-0.988,-0.987,-0.987,-0.986,-0.986,-0.985,-0.985,-0.984,-0.983,-0.983,-0.982,-0.982,-0.981,-0.98,-0.98,-0.979,-0.978,-0.977,-0.977,-0.976,-0.975,-0.974,-0.973,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.964,-0.963,-0.962,-0.961,-0.96,-0.959,-0.958,-0.957,-0.956,-0.955,-0.954,-0.952,-0.951,-0.95,-0.949,-0.947,-0.946,-0.945,-0.943,-0.942,-0.941,-0.939,-0.938,-0.936,-0.935,-0.933,-0.932,-0.93,-0.929,-0.927,-0.926,-0.924,-0.922,-0.921,-0.919,-0.917,-0.915,-0.914,-0.912,-0.91,-0.908,-0.906,-0.904,-0.903,-0.901,-0.899,-0.897,-0.895,-0.893,-0.89,-0.888,-0.886,-0.884,-0.882,-0.88,-0.877,-0.875,-0.873,-0.871,-0.868,-0.866,-0.863,-0.861,-0.859,-0.856,-0.854,-0.851,-0.848,-0.846,-0.843,-0.841,-0.838,-0.835,-0.832,-0.83,-0.827,-0.824,-0.821,-0.818,-0.815,-0.812,-0.809,-0.806,-0.803,-0.8,-0.797,-0.794,-0.791,-0.787,-0.784,-0.781,-0.778,-0.775,-0.771,-0.768,-0.765,-0.762,-0.758,-0.755,-0.752,-0.748,-0.745,-0.742,-0.738,-0.735,-0.732,-0.728,-0.725,-0.722,-0.718,-0.715,-0.711,-0.708,-0.704,-0.701,-0.697,-0.694,-0.69,-0.687,-0.683,-0.68,-0.676,-0.673,-0.669,-0.666,-0.662,-0.659,-0.655,-0.652,-0.648,-0.644,-0.641,-0.637,-0.634,-0.63,-0.626,-0.623,-0.619,-0.616,-0.612,-0.608,-0.605,-0.601,-0.597,-0.594,-0.59,-0.586,-0.583,-0.579,-0.575,-0.572,-0.568,-0.564,-0.56,-0.557,-0.553,-0.549,-0.546,-0.542,-0.538,-0.535,-0.531,-0.527,-0.523,-0.52,-0.516,-0.512,-0.509,-0.505,-0.501,-0.498,-0.494,-0.49,-0.486,-0.483,-0.479,-0.475,-0.472,-0.468,-0.464,-0.461,-0.457,-0.453,-0.45,-0.446,-0.442,-0.438,-0.435,-0.431,-0.427,-0.424,-0.42,-0.416,-0.413,-0.409,-0.406,-0.402,-0.398,-0.395,-0.391,-0.387,-0.384,-0.38,-0.377,-0.373,-0.369,-0.366,-0.362,-0.359,-0.355,-0.352,-0.348,-0.345,-0.341,-0.338,-0.334,-0.331,-0.327,-0.324,-0.32,-0.317,-0.313,-0.31,-0.306,-0.303,-0.299,-0.296,-0.293,-0.289,-0.286,-0.282,-0.279,-0.276,-0.272,-0.269,-0.266,-0.263,-0.259,-0.256,-0.253,-0.249,-0.246,-0.243,-0.24,-0.237,-0.233,-0.23,-0.227,-0.224,-0.221,-0.218,-0.215,-0.212,-0.209,-0.205,-0.202,-0.199,-0.196,-0.193,-0.19,-0.187,-0.185,-0.182,-0.179,-0.176,-0.173,-0.17,-0.167,-0.164,-0.162,-0.159,-0.156,-0.153,-0.151,-0.148,-0.145,-0.143,-0.14,-0.137,-0.135,-0.132,-0.129,-0.127,-0.124,-0.122,-0.119,-0.117,-0.114,-0.112,-0.11,-0.107,-0.105,-0.102,-0.1,-0.098,-0.096,-0.093,-0.091,-0.089,-0.087,-0.084,-0.082,-0.08,-0.078,-0.076,-0.074,-0.072,-0.07,-0.068,-0.066,-0.064,-0.062,-0.06,-0.058,-0.057,-0.055,-0.053,-0.051,-0.05,-0.048,-0.046,-0.044,-0.043,-0.041,-0.04,-0.038,-0.037,-0.035,-0.034,-0.032,-0.031,-0.03,-0.028,-0.027,-0.026,-0.024,-0.023,-0.022,-0.021,-0.02,-0.019,-0.017,-0.016,-0.015,-0.014,-0.013,-0.013,-0.012,-0.011,-0.01,-0.009,-0.008,-0.008,-0.007,-0.006,-0.006,-0.005,-0.004,-0.004,-0.003,-0.003,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0,-0,-0,-0,-0,0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.003,-0.004,-0.004,-0.004,-0.004,-0.005,-0.005,-0.005,-0.006,-0.006,-0.006,-0.006,-0.007,-0.007,-0.007,-0.008,-0.008,-0.009,-0.009,-0.009,-0.01,-0.01,-0.011,-0.011,-0.011,-0.012,-0.012,-0.013,-0.013,-0.014,-0.014,-0.015,-0.015,-0.016,-0.016,-0.017,-0.017,-0.018,-0.018,-0.019,-0.019,-0.02,-0.02,-0.021,-0.021,-0.022,-0.023,-0.023,-0.024,-0.024,-0.025,-0.026,-0.026,-0.027,-0.028,-0.028,-0.029,-0.03,-0.03,-0.031,-0.032,-0.032,-0.033,-0.034,-0.034,-0.035,-0.036,-0.037,-0.037,-0.038,-0.039,-0.04,-0.04,-0.041,-0.042,-0.043,-0.043,-0.044,-0.045,-0.046,-0.047,-0.048,-0.048,-0.049,-0.05,-0.051,-0.052,-0.053,-0.053,-0.054,-0.055,-0.056,-0.057,-0.058,-0.059,-0.06,-0.061,-0.062,-0.063,-0.064,-0.064,-0.065,-0.066,-0.067,-0.068,-0.069,-0.07,-0.071,-0.072,-0.073,-0.074,-0.075,-0.076,-0.077,-0.078,-0.079,-0.08,-0.081,-0.082,-0.084,-0.085,-0.086,-0.087,-0.088,-0.089,-0.09,-0.091,-0.092,-0.093,-0.094,-0.096,-0.097,-0.098,-0.099,-0.1,-0.101,-0.102,-0.104,-0.105,-0.106,-0.107,-0.108,-0.109,-0.111,-0.112,-0.113,-0.114,-0.115,-0.117,-0.118,-0.119,-0.12,-0.121,-0.123,-0.124,-0.125,-0.126,-0.128,-0.129,-0.13,-0.132,-0.133,-0.134,-0.135,-0.137,-0.138,-0.139,-0.141,-0.142,-0.143,-0.145,-0.146,-0.147,-0.148,-0.15,-0.151,-0.153,-0.154,-0.155,-0.157,-0.158,-0.159,-0.161,-0.162,-0.163,-0.165,-0.166,-0.168,-0.169,-0.17,-0.172,-0.173,-0.175,-0.176,-0.177,-0.179,-0.18,-0.182,-0.183,-0.185,-0.186,-0.188,-0.189,-0.19,-0.192,-0.193,-0.195,-0.196,-0.198,-0.199,-0.201,-0.202,-0.204,-0.205,-0.207,-0.208,-0.21,-0.211,-0.213,-0.214,-0.216,-0.217,-0.219,-0.22,-0.222,-0.224,-0.225,-0.227,-0.228,-0.23,-0.231,-0.233,-0.234,-0.236,-0.238,-0.239,-0.241,-0.242,-0.244,-0.245,-0.247,-0.249,-0.25,-0.252,-0.253,-0.255,-0.257,-0.258,-0.26,-0.261,-0.263,-0.265,-0.266,-0.268,-0.27,-0.271,-0.273,-0.274,-0.276,-0.278,-0.279,-0.281,-0.283,-0.284,-0.286,-0.288,-0.289,-0.291,-0.293,-0.294,-0.296,-0.298,-0.299,-0.301,-0.303,-0.304,-0.306,-0.308,-0.309,-0.311,-0.313,-0.314,-0.316,-0.318,-0.32,-0.321,-0.323,-0.325,-0.326,-0.328,-0.33,-0.332,-0.333,-0.335,-0.337,-0.338,-0.34,-0.342,-0.344,-0.345,-0.347,-0.349,-0.351,-0.352,-0.354,-0.356,-0.358,-0.359,-0.361,-0.363,-0.365,-0.366,-0.368,-0.37,-0.372,-0.373,-0.375,-0.377,-0.379,-0.38,-0.382,-0.384,-0.386,-0.387,-0.389,-0.391,-0.393,-0.395,-0.396,-0.398,-0.4,-0.402,-0.403,-0.405,-0.407,-0.409,-0.411,-0.412,-0.414,-0.416,-0.418,-0.42,-0.421,-0.423,-0.425,-0.427,-0.429,-0.43,-0.432,-0.434,-0.436,-0.438,-0.439,-0.441,-0.443,-0.445,-0.447,-0.448,-0.45,-0.452,-0.454,-0.456,-0.457,-0.459,-0.461,-0.463,-0.465,-0.466,-0.468,-0.47,-0.472,-0.474,-0.476,-0.477,-0.479,-0.481,-0.483,-0.485,-0.486,-0.488,-0.49,-0.492,-0.494,-0.495,-0.497,-0.499,-0.501,-0.503,-0.505,-0.506,-0.508,-0.51,-0.512,-0.514,-0.515,-0.517,-0.519,-0.521,-0.523,-0.524,-0.526,-0.528,-0.53,-0.532,-0.534,-0.535,-0.537,-0.539,-0.541,-0.543,-0.544,-0.546,-0.548,-0.55,-0.552,-0.553,-0.555,-0.557,-0.559,-0.561,-0.562,-0.564,-0.566,-0.568,-0.57,-0.571,-0.573,-0.575,-0.577,-0.579,-0.58,-0.582,-0.584,-0.586,-0.588,-0.589,-0.591,-0.593,-0.595,-0.597,-0.598,-0.6,-0.602,-0.604,-0.605,-0.607,-0.609,-0.611,-0.613,-0.614,-0.616,-0.618,-0.62,-0.621,-0.623,-0.625,-0.627,-0.628,-0.63,-0.632,-0.634,-0.635,-0.637,-0.639,-0.641,-0.642,-0.644,-0.646,-0.648,-0.649,-0.651,-0.653,-0.655,-0.656,-0.658,-0.66,-0.662,-0.663,-0.665,-0.667,-0.668,-0.67,-0.672,-0.674,-0.675,-0.677,-0.679,-0.68,-0.682,-0.684,-0.686,-0.687,-0.689,-0.691,-0.692,-0.694,-0.696,-0.697,-0.699,-0.701,-0.702,-0.704,-0.706,-0.707,-0.709,-0.711,-0.712,-0.714,-0.716,-0.717,-0.719,-0.721,-0.722,-0.724,-0.726,-0.727,-0.729,-0.73,-0.732,-0.734,-0.735,-0.737,-0.739,-0.74,-0.742,-0.743,-0.745,-0.747,-0.748,-0.75,-0.751,-0.753,-0.755,-0.756,-0.758,-0.759,-0.761,-0.762,-0.764,-0.766,-0.767,-0.769,-0.77,-0.772,-0.773,-0.775,-0.776,-0.778,-0.78,-0.781,-0.783,-0.784,-0.786,-0.787,-0.789,-0.79,-0.792,-0.793,-0.795,-0.796,-0.798,-0.799,-0.801,-0.802,-0.804,-0.805,-0.807,-0.808,-0.81,-0.811,-0.812,-0.814,-0.815,-0.817,-0.818,-0.82,-0.821,-0.823,-0.824,-0.825,-0.827,-0.828,-0.83,-0.831,-0.832,-0.834,-0.835,-0.837,-0.838,-0.839,-0.841,-0.842,-0.843,-0.845,-0.846,-0.847,-0.849,-0.85,-0.852,-0.853,-0.854,-0.855,-0.857,-0.858,-0.859,-0.861,-0.862,-0.863,-0.865,-0.866,-0.867,-0.868,-0.87,-0.871,-0.872,-0.874,-0.875,-0.876,-0.877,-0.879,-0.88,-0.881,-0.882,-0.883,-0.885,-0.886,-0.887,-0.888,-0.889,-0.891,-0.892,-0.893,-0.894,-0.895,-0.896,-0.898,-0.899,-0.9,-0.901,-0.902,-0.903,-0.904,-0.906,-0.907,-0.908,-0.909,-0.91,-0.911,-0.912,-0.913,-0.914,-0.915,-0.916,-0.918,-0.919,-0.92,-0.921,-0.922,-0.923,-0.924,-0.925,-0.926,-0.927,-0.928,-0.929,-0.93,-0.931,-0.932,-0.933,-0.934,-0.935,-0.936,-0.936,-0.937,-0.938,-0.939,-0.94,-0.941,-0.942,-0.943,-0.944,-0.945,-0.946,-0.947,-0.947,-0.948,-0.949,-0.95,-0.951,-0.952,-0.952,-0.953,-0.954,-0.955,-0.956,-0.957,-0.957,-0.958,-0.959,-0.96,-0.96,-0.961,-0.962,-0.963,-0.963,-0.964,-0.965,-0.966,-0.966,-0.967,-0.968,-0.968,-0.969,-0.97,-0.97,-0.971,-0.972,-0.972,-0.973,-0.974,-0.974,-0.975,-0.976,-0.976,-0.977,-0.977,-0.978,-0.979,-0.979,-0.98,-0.98,-0.981,-0.981,-0.982,-0.982,-0.983,-0.983,-0.984,-0.984,-0.985,-0.985,-0.986,-0.986,-0.987,-0.987,-0.988,-0.988,-0.989,-0.989,-0.989,-0.99,-0.99,-0.991,-0.991,-0.991,-0.992,-0.992,-0.993,-0.993,-0.993,-0.994,-0.994,-0.994,-0.994,-0.995,-0.995,-0.995,-0.996,-0.996,-0.996,-0.996,-0.997,-0.997,-0.997,-0.997,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_BROW_R_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.993,-0.992,-0.992,-0.992,-0.992,-0.991,-0.991,-0.991,-0.991,-0.99,-0.99,-0.99,-0.99,-0.989,-0.989,-0.989,-0.989,-0.988,-0.988,-0.988,-0.987,-0.987,-0.987,-0.987,-0.986,-0.986,-0.986,-0.985,-0.985,-0.985,-0.984,-0.984,-0.984,-0.983,-0.983,-0.983,-0.982,-0.982,-0.982,-0.981,-0.981,-0.981,-0.98,-0.98,-0.98,-0.979,-0.979,-0.978,-0.978,-0.978,-0.977,-0.977,-0.977,-0.976,-0.976,-0.975,-0.975,-0.975,-0.974,-0.974,-0.973,-0.973,-0.973,-0.972,-0.972,-0.971,-0.971,-0.97,-0.97,-0.97,-0.969,-0.969,-0.968,-0.968,-0.967,-0.967,-0.967,-0.966,-0.966,-0.965,-0.965,-0.964,-0.964,-0.963,-0.963,-0.962,-0.962,-0.961,-0.961,-0.961,-0.96,-0.96,-0.959,-0.959,-0.958,-0.958,-0.957,-0.957,-0.956,-0.956,-0.955,-0.955,-0.954,-0.954,-0.953,-0.953,-0.952,-0.952,-0.951,-0.951,-0.95,-0.95,-0.949,-0.948,-0.948,-0.947,-0.947,-0.946,-0.946,-0.945,-0.945,-0.944,-0.944,-0.943,-0.943,-0.942,-0.941,-0.941,-0.94,-0.94,-0.939,-0.939,-0.938,-0.938,-0.937,-0.936,-0.936,-0.935,-0.935,-0.934,-0.934,-0.933,-0.932,-0.932,-0.931,-0.931,-0.93,-0.93,-0.929,-0.928,-0.928,-0.927,-0.927,-0.926,-0.925,-0.925,-0.924,-0.924,-0.923,-0.922,-0.922,-0.921,-0.921,-0.92,-0.919,-0.919,-0.918,-0.918,-0.917,-0.916,-0.916,-0.915,-0.914,-0.914,-0.913,-0.913,-0.912,-0.911,-0.911,-0.91,-0.909,-0.909,-0.908,-0.908,-0.907,-0.906,-0.906,-0.905,-0.904,-0.904,-0.903,-0.903,-0.902,-0.901,-0.901,-0.9,-0.899,-0.899,-0.898,-0.897,-0.897,-0.896,-0.895,-0.895,-0.894,-0.893,-0.893,-0.892,-0.892,-0.891,-0.89,-0.89,-0.889,-0.888,-0.888,-0.887,-0.886,-0.886,-0.885,-0.884,-0.884,-0.883,-0.882,-0.882,-0.881,-0.88,-0.88,-0.879,-0.878,-0.878,-0.877,-0.876,-0.876,-0.875,-0.874,-0.874,-0.873,-0.872,-0.872,-0.871,-0.87,-0.87,-0.869,-0.868,-0.868,-0.867,-0.866,-0.866,-0.865,-0.864,-0.864,-0.863,-0.862,-0.862,-0.861,-0.86,-0.859,-0.859,-0.858,-0.857,-0.857,-0.856,-0.855,-0.855,-0.854,-0.853,-0.853,-0.852,-0.851,-0.851,-0.85,-0.849,-0.849,-0.848,-0.847,-0.847,-0.846,-0.845,-0.845,-0.844,-0.843,-0.843,-0.842,-0.841,-0.841,-0.84,-0.839,-0.838,-0.838,-0.837,-0.836,-0.836,-0.835,-0.834,-0.834,-0.833,-0.832,-0.832,-0.831,-0.83,-0.83,-0.829,-0.828,-0.828,-0.827,-0.826,-0.826,-0.825,-0.824,-0.824,-0.823,-0.822,-0.822,-0.821,-0.82,-0.82,-0.819,-0.818,-0.818,-0.817,-0.816,-0.816,-0.815,-0.814,-0.814,-0.813,-0.812,-0.812,-0.811,-0.81,-0.81,-0.809,-0.808,-0.808,-0.807,-0.807,-0.806,-0.805,-0.805,-0.804,-0.803,-0.803,-0.802,-0.801,-0.801,-0.8,-0.799,-0.799,-0.798,-0.797,-0.797,-0.796,-0.796,-0.795,-0.794,-0.794,-0.793,-0.792,-0.792,-0.791,-0.791,-0.79,-0.789,-0.789,-0.788,-0.787,-0.787,-0.786,-0.786,-0.785,-0.784,-0.784,-0.783,-0.782,-0.782,-0.781,-0.781,-0.78,-0.779,-0.779,-0.778,-0.778,-0.777,-0.776,-0.776,-0.775,-0.775,-0.774,-0.773,-0.773,-0.772,-0.772,-0.771,-0.77,-0.77,-0.769,-0.769,-0.768,-0.768,-0.767,-0.766,-0.766,-0.765,-0.765,-0.764,-0.764,-0.763,-0.762,-0.762,-0.761,-0.761,-0.76,-0.76,-0.759,-0.759,-0.758,-0.757,-0.757,-0.756,-0.756,-0.755,-0.755,-0.754,-0.754,-0.753,-0.753,-0.752,-0.752,-0.751,-0.75,-0.75,-0.749,-0.749,-0.748,-0.748,-0.747,-0.747,-0.746,-0.746,-0.745,-0.745,-0.744,-0.744,-0.743,-0.743,-0.742,-0.742,-0.741,-0.741,-0.74,-0.74,-0.739,-0.739,-0.739,-0.738,-0.738,-0.737,-0.737,-0.736,-0.736,-0.735,-0.735,-0.734,-0.734,-0.733,-0.733,-0.733,-0.732,-0.732,-0.731,-0.731,-0.73,-0.73,-0.73,-0.729,-0.729,-0.728,-0.728,-0.727,-0.727,-0.727,-0.726,-0.726,-0.725,-0.725,-0.725,-0.724,-0.724,-0.723,-0.723,-0.723,-0.722,-0.722,-0.722,-0.721,-0.721,-0.72,-0.72,-0.72,-0.719,-0.719,-0.719,-0.718,-0.718,-0.718,-0.717,-0.717,-0.717,-0.716,-0.716,-0.716,-0.715,-0.715,-0.715,-0.714,-0.714,-0.714,-0.713,-0.713,-0.713,-0.713,-0.712,-0.712,-0.712,-0.711,-0.711,-0.711,-0.711,-0.71,-0.71,-0.71,-0.71,-0.709,-0.709,-0.709,-0.709,-0.708,-0.708,-0.708,-0.708,-0.707,-0.707,-0.707,-0.707,-0.706,-0.706,-0.706,-0.706,-0.706,-0.705,-0.705,-0.705,-0.705,-0.705,-0.704,-0.704,-0.704,-0.704,-0.704,-0.704,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.705,-0.719,-0.74,-0.768,-0.799,-0.832,-0.868,-0.901,-0.932,-0.96,-0.981,-0.995,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.992,-0.992,-0.991,-0.991,-0.991,-0.99,-0.99,-0.989,-0.989,-0.988,-0.988,-0.987,-0.987,-0.986,-0.986,-0.985,-0.985,-0.984,-0.983,-0.983,-0.982,-0.982,-0.981,-0.98,-0.98,-0.979,-0.978,-0.977,-0.977,-0.976,-0.975,-0.974,-0.973,-0.973,-0.972,-0.971,-0.97,-0.969,-0.968,-0.967,-0.966,-0.965,-0.964,-0.963,-0.962,-0.961,-0.96,-0.959,-0.958,-0.957,-0.956,-0.955,-0.954,-0.952,-0.951,-0.95,-0.949,-0.947,-0.946,-0.945,-0.943,-0.942,-0.941,-0.939,-0.938,-0.936,-0.935,-0.933,-0.932,-0.93,-0.929,-0.927,-0.926,-0.924,-0.922,-0.921,-0.919,-0.917,-0.915,-0.914,-0.912,-0.91,-0.908,-0.906,-0.904,-0.903,-0.901,-0.899,-0.897,-0.895,-0.893,-0.89,-0.888,-0.886,-0.884,-0.882,-0.88,-0.877,-0.875,-0.873,-0.871,-0.868,-0.866,-0.863,-0.861,-0.859,-0.856,-0.854,-0.851,-0.848,-0.846,-0.843,-0.841,-0.838,-0.835,-0.832,-0.83,-0.827,-0.824,-0.821,-0.818,-0.815,-0.812,-0.809,-0.806,-0.803,-0.8,-0.797,-0.794,-0.791,-0.787,-0.784,-0.781,-0.778,-0.775,-0.771,-0.768,-0.765,-0.762,-0.758,-0.755,-0.752,-0.748,-0.745,-0.742,-0.738,-0.735,-0.732,-0.728,-0.725,-0.722,-0.718,-0.715,-0.711,-0.708,-0.704,-0.701,-0.697,-0.694,-0.69,-0.687,-0.683,-0.68,-0.676,-0.673,-0.669,-0.666,-0.662,-0.659,-0.655,-0.652,-0.648,-0.644,-0.641,-0.637,-0.634,-0.63,-0.626,-0.623,-0.619,-0.616,-0.612,-0.608,-0.605,-0.601,-0.597,-0.594,-0.59,-0.586,-0.583,-0.579,-0.575,-0.572,-0.568,-0.564,-0.56,-0.557,-0.553,-0.549,-0.546,-0.542,-0.538,-0.535,-0.531,-0.527,-0.523,-0.52,-0.516,-0.512,-0.509,-0.505,-0.501,-0.498,-0.494,-0.49,-0.486,-0.483,-0.479,-0.475,-0.472,-0.468,-0.464,-0.461,-0.457,-0.453,-0.45,-0.446,-0.442,-0.438,-0.435,-0.431,-0.427,-0.424,-0.42,-0.416,-0.413,-0.409,-0.406,-0.402,-0.398,-0.395,-0.391,-0.387,-0.384,-0.38,-0.377,-0.373,-0.369,-0.366,-0.362,-0.359,-0.355,-0.352,-0.348,-0.345,-0.341,-0.338,-0.334,-0.331,-0.327,-0.324,-0.32,-0.317,-0.313,-0.31,-0.306,-0.303,-0.299,-0.296,-0.293,-0.289,-0.286,-0.282,-0.279,-0.276,-0.272,-0.269,-0.266,-0.263,-0.259,-0.256,-0.253,-0.249,-0.246,-0.243,-0.24,-0.237,-0.233,-0.23,-0.227,-0.224,-0.221,-0.218,-0.215,-0.212,-0.209,-0.205,-0.202,-0.199,-0.196,-0.193,-0.19,-0.187,-0.185,-0.182,-0.179,-0.176,-0.173,-0.17,-0.167,-0.164,-0.162,-0.159,-0.156,-0.153,-0.151,-0.148,-0.145,-0.143,-0.14,-0.137,-0.135,-0.132,-0.129,-0.127,-0.124,-0.122,-0.119,-0.117,-0.114,-0.112,-0.11,-0.107,-0.105,-0.102,-0.1,-0.098,-0.096,-0.093,-0.091,-0.089,-0.087,-0.084,-0.082,-0.08,-0.078,-0.076,-0.074,-0.072,-0.07,-0.068,-0.066,-0.064,-0.062,-0.06,-0.058,-0.057,-0.055,-0.053,-0.051,-0.05,-0.048,-0.046,-0.044,-0.043,-0.041,-0.04,-0.038,-0.037,-0.035,-0.034,-0.032,-0.031,-0.03,-0.028,-0.027,-0.026,-0.024,-0.023,-0.022,-0.021,-0.02,-0.019,-0.017,-0.016,-0.015,-0.014,-0.013,-0.013,-0.012,-0.011,-0.01,-0.009,-0.008,-0.008,-0.007,-0.006,-0.006,-0.005,-0.004,-0.004,-0.003,-0.003,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,-0.001,-0,-0,-0,-0,-0,0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.003,-0.004,-0.004,-0.004,-0.004,-0.005,-0.005,-0.005,-0.006,-0.006,-0.006,-0.006,-0.007,-0.007,-0.007,-0.008,-0.008,-0.009,-0.009,-0.009,-0.01,-0.01,-0.011,-0.011,-0.011,-0.012,-0.012,-0.013,-0.013,-0.014,-0.014,-0.015,-0.015,-0.016,-0.016,-0.017,-0.017,-0.018,-0.018,-0.019,-0.019,-0.02,-0.02,-0.021,-0.021,-0.022,-0.023,-0.023,-0.024,-0.024,-0.025,-0.026,-0.026,-0.027,-0.028,-0.028,-0.029,-0.03,-0.03,-0.031,-0.032,-0.032,-0.033,-0.034,-0.034,-0.035,-0.036,-0.037,-0.037,-0.038,-0.039,-0.04,-0.04,-0.041,-0.042,-0.043,-0.043,-0.044,-0.045,-0.046,-0.047,-0.048,-0.048,-0.049,-0.05,-0.051,-0.052,-0.053,-0.053,-0.054,-0.055,-0.056,-0.057,-0.058,-0.059,-0.06,-0.061,-0.062,-0.063,-0.064,-0.064,-0.065,-0.066,-0.067,-0.068,-0.069,-0.07,-0.071,-0.072,-0.073,-0.074,-0.075,-0.076,-0.077,-0.078,-0.079,-0.08,-0.081,-0.082,-0.084,-0.085,-0.086,-0.087,-0.088,-0.089,-0.09,-0.091,-0.092,-0.093,-0.094,-0.096,-0.097,-0.098,-0.099,-0.1,-0.101,-0.102,-0.104,-0.105,-0.106,-0.107,-0.108,-0.109,-0.111,-0.112,-0.113,-0.114,-0.115,-0.117,-0.118,-0.119,-0.12,-0.121,-0.123,-0.124,-0.125,-0.126,-0.128,-0.129,-0.13,-0.132,-0.133,-0.134,-0.135,-0.137,-0.138,-0.139,-0.141,-0.142,-0.143,-0.145,-0.146,-0.147,-0.148,-0.15,-0.151,-0.153,-0.154,-0.155,-0.157,-0.158,-0.159,-0.161,-0.162,-0.163,-0.165,-0.166,-0.168,-0.169,-0.17,-0.172,-0.173,-0.175,-0.176,-0.177,-0.179,-0.18,-0.182,-0.183,-0.185,-0.186,-0.188,-0.189,-0.19,-0.192,-0.193,-0.195,-0.196,-0.198,-0.199,-0.201,-0.202,-0.204,-0.205,-0.207,-0.208,-0.21,-0.211,-0.213,-0.214,-0.216,-0.217,-0.219,-0.22,-0.222,-0.224,-0.225,-0.227,-0.228,-0.23,-0.231,-0.233,-0.234,-0.236,-0.238,-0.239,-0.241,-0.242,-0.244,-0.245,-0.247,-0.249,-0.25,-0.252,-0.253,-0.255,-0.257,-0.258,-0.26,-0.261,-0.263,-0.265,-0.266,-0.268,-0.27,-0.271,-0.273,-0.274,-0.276,-0.278,-0.279,-0.281,-0.283,-0.284,-0.286,-0.288,-0.289,-0.291,-0.293,-0.294,-0.296,-0.298,-0.299,-0.301,-0.303,-0.304,-0.306,-0.308,-0.309,-0.311,-0.313,-0.314,-0.316,-0.318,-0.32,-0.321,-0.323,-0.325,-0.326,-0.328,-0.33,-0.332,-0.333,-0.335,-0.337,-0.338,-0.34,-0.342,-0.344,-0.345,-0.347,-0.349,-0.351,-0.352,-0.354,-0.356,-0.358,-0.359,-0.361,-0.363,-0.365,-0.366,-0.368,-0.37,-0.372,-0.373,-0.375,-0.377,-0.379,-0.38,-0.382,-0.384,-0.386,-0.387,-0.389,-0.391,-0.393,-0.395,-0.396,-0.398,-0.4,-0.402,-0.403,-0.405,-0.407,-0.409,-0.411,-0.412,-0.414,-0.416,-0.418,-0.42,-0.421,-0.423,-0.425,-0.427,-0.429,-0.43,-0.432,-0.434,-0.436,-0.438,-0.439,-0.441,-0.443,-0.445,-0.447,-0.448,-0.45,-0.452,-0.454,-0.456,-0.457,-0.459,-0.461,-0.463,-0.465,-0.466,-0.468,-0.47,-0.472,-0.474,-0.476,-0.477,-0.479,-0.481,-0.483,-0.485,-0.486,-0.488,-0.49,-0.492,-0.494,-0.495,-0.497,-0.499,-0.501,-0.503,-0.505,-0.506,-0.508,-0.51,-0.512,-0.514,-0.515,-0.517,-0.519,-0.521,-0.523,-0.524,-0.526,-0.528,-0.53,-0.532,-0.534,-0.535,-0.537,-0.539,-0.541,-0.543,-0.544,-0.546,-0.548,-0.55,-0.552,-0.553,-0.555,-0.557,-0.559,-0.561,-0.562,-0.564,-0.566,-0.568,-0.57,-0.571,-0.573,-0.575,-0.577,-0.579,-0.58,-0.582,-0.584,-0.586,-0.588,-0.589,-0.591,-0.593,-0.595,-0.597,-0.598,-0.6,-0.602,-0.604,-0.605,-0.607,-0.609,-0.611,-0.613,-0.614,-0.616,-0.618,-0.62,-0.621,-0.623,-0.625,-0.627,-0.628,-0.63,-0.632,-0.634,-0.635,-0.637,-0.639,-0.641,-0.642,-0.644,-0.646,-0.648,-0.649,-0.651,-0.653,-0.655,-0.656,-0.658,-0.66,-0.662,-0.663,-0.665,-0.667,-0.668,-0.67,-0.672,-0.674,-0.675,-0.677,-0.679,-0.68,-0.682,-0.684,-0.686,-0.687,-0.689,-0.691,-0.692,-0.694,-0.696,-0.697,-0.699,-0.701,-0.702,-0.704,-0.706,-0.707,-0.709,-0.711,-0.712,-0.714,-0.716,-0.717,-0.719,-0.721,-0.722,-0.724,-0.726,-0.727,-0.729,-0.73,-0.732,-0.734,-0.735,-0.737,-0.739,-0.74,-0.742,-0.743,-0.745,-0.747,-0.748,-0.75,-0.751,-0.753,-0.755,-0.756,-0.758,-0.759,-0.761,-0.762,-0.764,-0.766,-0.767,-0.769,-0.77,-0.772,-0.773,-0.775,-0.776,-0.778,-0.78,-0.781,-0.783,-0.784,-0.786,-0.787,-0.789,-0.79,-0.792,-0.793,-0.795,-0.796,-0.798,-0.799,-0.801,-0.802,-0.804,-0.805,-0.807,-0.808,-0.81,-0.811,-0.812,-0.814,-0.815,-0.817,-0.818,-0.82,-0.821,-0.823,-0.824,-0.825,-0.827,-0.828,-0.83,-0.831,-0.832,-0.834,-0.835,-0.837,-0.838,-0.839,-0.841,-0.842,-0.843,-0.845,-0.846,-0.847,-0.849,-0.85,-0.852,-0.853,-0.854,-0.855,-0.857,-0.858,-0.859,-0.861,-0.862,-0.863,-0.865,-0.866,-0.867,-0.868,-0.87,-0.871,-0.872,-0.874,-0.875,-0.876,-0.877,-0.879,-0.88,-0.881,-0.882,-0.883,-0.885,-0.886,-0.887,-0.888,-0.889,-0.891,-0.892,-0.893,-0.894,-0.895,-0.896,-0.898,-0.899,-0.9,-0.901,-0.902,-0.903,-0.904,-0.906,-0.907,-0.908,-0.909,-0.91,-0.911,-0.912,-0.913,-0.914,-0.915,-0.916,-0.918,-0.919,-0.92,-0.921,-0.922,-0.923,-0.924,-0.925,-0.926,-0.927,-0.928,-0.929,-0.93,-0.931,-0.932,-0.933,-0.934,-0.935,-0.936,-0.936,-0.937,-0.938,-0.939,-0.94,-0.941,-0.942,-0.943,-0.944,-0.945,-0.946,-0.947,-0.947,-0.948,-0.949,-0.95,-0.951,-0.952,-0.952,-0.953,-0.954,-0.955,-0.956,-0.957,-0.957,-0.958,-0.959,-0.96,-0.96,-0.961,-0.962,-0.963,-0.963,-0.964,-0.965,-0.966,-0.966,-0.967,-0.968,-0.968,-0.969,-0.97,-0.97,-0.971,-0.972,-0.972,-0.973,-0.974,-0.974,-0.975,-0.976,-0.976,-0.977,-0.977,-0.978,-0.979,-0.979,-0.98,-0.98,-0.981,-0.981,-0.982,-0.982,-0.983,-0.983,-0.984,-0.984,-0.985,-0.985,-0.986,-0.986,-0.987,-0.987,-0.988,-0.988,-0.989,-0.989,-0.989,-0.99,-0.99,-0.991,-0.991,-0.991,-0.992,-0.992,-0.993,-0.993,-0.993,-0.994,-0.994,-0.994,-0.994,-0.995,-0.995,-0.995,-0.996,-0.996,-0.996,-0.996,-0.997,-0.997,-0.997,-0.997,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1\nPARAM_BROW_L_ANGLE=0\nPARAM_BROW_R_ANGLE=0\nPARAM_BROW_R_FORM=0.6,0.6,0.6,0.599,0.598,0.597,0.596,0.595,0.593,0.592,0.59,0.588,0.585,0.583,0.58,0.577,0.574,0.571,0.568,0.564,0.561,0.557,0.553,0.548,0.544,0.54,0.535,0.53,0.525,0.52,0.515,0.509,0.504,0.498,0.492,0.486,0.48,0.474,0.468,0.461,0.455,0.448,0.441,0.434,0.427,0.42,0.413,0.405,0.398,0.39,0.382,0.374,0.367,0.359,0.351,0.342,0.334,0.326,0.318,0.309,0.3,0.292,0.283,0.274,0.266,0.257,0.248,0.239,0.229,0.22,0.211,0.202,0.192,0.183,0.174,0.164,0.155,0.145,0.136,0.126,0.117,0.107,0.097,0.088,0.078,0.068,0.059,0.049,0.039,0.029,0.02,0.01,0,-0.01,-0.02,-0.029,-0.039,-0.049,-0.059,-0.068,-0.078,-0.088,-0.097,-0.107,-0.117,-0.126,-0.136,-0.145,-0.155,-0.164,-0.174,-0.183,-0.192,-0.202,-0.211,-0.22,-0.229,-0.239,-0.248,-0.257,-0.266,-0.274,-0.283,-0.292,-0.3,-0.309,-0.318,-0.326,-0.334,-0.342,-0.351,-0.359,-0.367,-0.374,-0.382,-0.39,-0.398,-0.405,-0.413,-0.42,-0.427,-0.434,-0.441,-0.448,-0.455,-0.461,-0.468,-0.474,-0.48,-0.486,-0.492,-0.498,-0.504,-0.509,-0.515,-0.52,-0.525,-0.53,-0.535,-0.54,-0.544,-0.548,-0.553,-0.557,-0.561,-0.564,-0.568,-0.571,-0.574,-0.577,-0.58,-0.583,-0.585,-0.588,-0.59,-0.592,-0.593,-0.595,-0.596,-0.597,-0.598,-0.599,-0.6,-0.6,-0.6,-0.6,-0.599,-0.598,-0.597,-0.595,-0.593,-0.591,-0.588,-0.585,-0.581,-0.577,-0.573,-0.569,-0.564,-0.559,-0.554,-0.548,-0.542,-0.536,-0.53,-0.524,-0.517,-0.51,-0.503,-0.495,-0.488,-0.48,-0.472,-0.464,-0.456,-0.447,-0.439,-0.43,-0.421,-0.412,-0.403,-0.394,-0.385,-0.376,-0.367,-0.357,-0.348,-0.338,-0.329,-0.319,-0.31,-0.3,-0.29,-0.281,-0.271,-0.262,-0.252,-0.243,-0.233,-0.224,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,-0.161,-0.153,-0.144,-0.136,-0.128,-0.12,-0.112,-0.105,-0.097,-0.09,-0.083,-0.076,-0.07,-0.064,-0.058,-0.052,-0.046,-0.041,-0.036,-0.031,-0.027,-0.023,-0.019,-0.015,-0.012,-0.009,-0.007,-0.005,-0.003,-0.002,-0.001,-0,0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.004,-0.004,-0.005,-0.005,-0.006,-0.006,-0.007,-0.007,-0.008,-0.008,-0.009,-0.01,-0.01,-0.011,-0.012,-0.013,-0.013,-0.014,-0.015,-0.016,-0.017,-0.017,-0.018,-0.019,-0.02,-0.021,-0.022,-0.023,-0.024,-0.025,-0.026,-0.027,-0.028,-0.029,-0.03,-0.031,-0.032,-0.033,-0.035,-0.036,-0.037,-0.038,-0.039,-0.041,-0.042,-0.043,-0.044,-0.046,-0.047,-0.048,-0.049,-0.051,-0.052,-0.054,-0.055,-0.056,-0.058,-0.059,-0.06,-0.062,-0.063,-0.065,-0.066,-0.068,-0.069,-0.071,-0.072,-0.074,-0.075,-0.077,-0.078,-0.08,-0.081,-0.083,-0.085,-0.086,-0.088,-0.089,-0.091,-0.093,-0.094,-0.096,-0.097,-0.099,-0.101,-0.102,-0.104,-0.106,-0.107,-0.109,-0.111,-0.112,-0.114,-0.116,-0.117,-0.119,-0.121,-0.122,-0.124,-0.126,-0.128,-0.129,-0.131,-0.133,-0.134,-0.136,-0.138,-0.14,-0.141,-0.143,-0.145,-0.147,-0.148,-0.15,-0.152,-0.153,-0.155,-0.157,-0.159,-0.16,-0.162,-0.164,-0.166,-0.167,-0.169,-0.171,-0.172,-0.174,-0.176,-0.178,-0.179,-0.181,-0.183,-0.184,-0.186,-0.188,-0.189,-0.191,-0.193,-0.194,-0.196,-0.198,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.209,-0.211,-0.212,-0.214,-0.215,-0.217,-0.219,-0.22,-0.222,-0.223,-0.225,-0.226,-0.228,-0.229,-0.231,-0.232,-0.234,-0.235,-0.237,-0.238,-0.24,-0.241,-0.242,-0.244,-0.245,-0.246,-0.248,-0.249,-0.251,-0.252,-0.253,-0.254,-0.256,-0.257,-0.258,-0.259,-0.261,-0.262,-0.263,-0.264,-0.265,-0.267,-0.268,-0.269,-0.27,-0.271,-0.272,-0.273,-0.274,-0.275,-0.276,-0.277,-0.278,-0.279,-0.28,-0.281,-0.282,-0.283,-0.283,-0.284,-0.285,-0.286,-0.287,-0.287,-0.288,-0.289,-0.29,-0.29,-0.291,-0.292,-0.292,-0.293,-0.293,-0.294,-0.294,-0.295,-0.295,-0.296,-0.296,-0.297,-0.297,-0.297,-0.298,-0.298,-0.298,-0.299,-0.299,-0.299,-0.299,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.298,-0.298,-0.297,-0.297,-0.296,-0.296,-0.295,-0.294,-0.293,-0.293,-0.292,-0.291,-0.29,-0.288,-0.287,-0.286,-0.285,-0.283,-0.282,-0.28,-0.278,-0.277,-0.275,-0.273,-0.271,-0.269,-0.266,-0.264,-0.262,-0.259,-0.256,-0.253,-0.251,-0.248,-0.244,-0.241,-0.238,-0.234,-0.231,-0.227,-0.223,-0.219,-0.215,-0.211,-0.206,-0.202,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.166,-0.16,-0.154,-0.148,-0.142,-0.136,-0.129,-0.122,-0.116,-0.108,-0.101,-0.094,-0.086,-0.079,-0.071,-0.062,-0.054,-0.046,-0.037,-0.028,-0.019,-0.009,0,0.01,0.02,0.031,0.042,0.054,0.066,0.079,0.091,0.104,0.118,0.131,0.145,0.16,0.174,0.188,0.203,0.218,0.233,0.247,0.262,0.277,0.292,0.307,0.321,0.336,0.35,0.365,0.379,0.393,0.407,0.42,0.434,0.446,0.459,0.471,0.483,0.494,0.505,0.516,0.526,0.535,0.544,0.553,0.56,0.568,0.574,0.58,0.585,0.59,0.593,0.596,0.598,0.6,0.6,0.597,0.589,0.575,0.557,0.534,0.508,0.477,0.444,0.407,0.368,0.327,0.284,0.239,0.193,0.147,0.1,0.053,0.007,-0.039,-0.084,-0.127,-0.168,-0.207,-0.244,-0.277,-0.308,-0.334,-0.357,-0.375,-0.389,-0.397,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.4,-0.399,-0.399,-0.399,-0.399,-0.399,-0.398,-0.398,-0.398,-0.397,-0.397,-0.396,-0.396,-0.395,-0.395,-0.394,-0.393,-0.392,-0.392,-0.391,-0.39,-0.389,-0.388,-0.387,-0.386,-0.384,-0.383,-0.382,-0.38,-0.379,-0.377,-0.376,-0.374,-0.372,-0.371,-0.369,-0.367,-0.365,-0.363,-0.36,-0.358,-0.356,-0.353,-0.351,-0.348,-0.345,-0.342,-0.34,-0.337,-0.333,-0.33,-0.327,-0.323,-0.32,-0.316,-0.313,-0.309,-0.305,-0.301,-0.297,-0.292,-0.288,-0.283,-0.279,-0.274,-0.269,-0.264,-0.259,-0.254,-0.248,-0.243,-0.237,-0.231,-0.226,-0.219,-0.213,-0.207,-0.201,-0.194,-0.187,-0.18,-0.173,-0.166,-0.159,-0.151,-0.144,-0.136,-0.128,-0.12,-0.112,-0.103,-0.095,-0.086,-0.077,-0.068,-0.059,-0.05,-0.04,-0.03,-0.02,-0.01,0,0.011,0.021,0.033,0.044,0.056,0.069,0.081,0.095,0.108,0.121,0.135,0.149,0.164,0.178,0.193,0.208,0.223,0.238,0.254,0.269,0.285,0.301,0.316,0.332,0.348,0.364,0.38,0.396,0.412,0.428,0.444,0.461,0.476,0.492,0.508,0.524,0.539,0.555,0.57,0.585,0.6,0.615,0.629,0.644,0.658,0.671,0.685,0.698,0.711,0.724,0.736,0.749,0.76,0.772,0.783,0.793,0.803,0.813,0.822,0.831,0.84,0.848,0.855,0.862,0.868,0.874,0.879,0.884,0.888,0.892,0.895,0.897,0.899,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.899,0.899,0.899,0.899,0.899,0.898,0.898,0.898,0.898,0.897,0.897,0.897,0.896,0.896,0.896,0.895,0.895,0.894,0.894,0.893,0.893,0.892,0.892,0.891,0.89,0.89,0.889,0.888,0.888,0.887,0.886,0.886,0.885,0.884,0.883,0.883,0.882,0.881,0.88,0.879,0.878,0.877,0.876,0.875,0.874,0.873,0.872,0.871,0.87,0.869,0.868,0.867,0.865,0.864,0.863,0.862,0.861,0.859,0.858,0.857,0.855,0.854,0.853,0.851,0.85,0.848,0.847,0.845,0.844,0.842,0.841,0.839,0.838,0.836,0.834,0.833,0.831,0.829,0.827,0.826,0.824,0.822,0.82,0.818,0.817,0.815,0.813,0.811,0.809,0.807,0.805,0.803,0.801,0.799,0.797,0.794,0.792,0.79,0.788,0.786,0.783,0.781,0.779,0.777,0.774,0.772,0.77,0.767,0.765,0.762,0.76,0.757,0.755,0.752,0.75,0.747,0.744,0.742,0.739,0.736,0.734,0.731,0.728,0.725,0.723,0.72,0.717,0.714,0.711,0.708,0.705,0.702,0.699,0.696,0.693,0.69,0.687,0.684,0.68,0.677,0.674,0.671,0.668,0.664,0.661,0.658,0.654,0.651,0.647,0.644,0.64,0.637,0.633,0.63,0.626,0.623,0.619,0.615,0.612,0.608,0.604,0.6,0.597,0.593,0.589,0.585,0.581,0.577,0.573,0.569,0.565,0.561,0.557,0.553,0.549,0.545,0.541,0.537,0.532,0.528,0.524,0.52,0.515,0.511,0.506,0.502,0.498,0.493,0.489,0.484,0.48,0.475,0.47,0.466,0.461,0.456,0.452,0.447,0.442,0.437,0.433,0.428,0.423,0.418,0.413,0.408,0.403,0.398,0.393,0.388,0.383,0.378,0.372,0.367,0.362,0.357,0.351,0.346,0.341,0.335,0.33,0.324,0.319,0.313,0.308,0.302,0.297,0.291,0.286,0.28,0.274,0.268,0.263,0.257,0.251,0.245,0.239,0.233,0.227,0.221,0.215,0.209,0.203,0.197,0.191,0.185,0.179,0.173,0.166,0.16,0.154,0.147,0.141,0.135,0.128,0.122,0.115,0.109,0.102,0.096,0.089,0.082,0.076,0.069,0.062,0.055,0.049,0.042,0.035,0.028,0.021,0.014,0.007,0,-0.007,-0.015,-0.023,-0.031,-0.039,-0.048,-0.057,-0.066,-0.075,-0.085,-0.094,-0.104,-0.114,-0.124,-0.134,-0.144,-0.155,-0.165,-0.175,-0.185,-0.196,-0.206,-0.216,-0.226,-0.236,-0.246,-0.255,-0.265,-0.274,-0.284,-0.293,-0.301,-0.31,-0.318,-0.326,-0.334,-0.341,-0.348,-0.355,-0.361,-0.367,-0.372,-0.377,-0.382,-0.386,-0.39,-0.393,-0.395,-0.397,-0.399,-0.4,-0.4,-0.4,-0.4,-0.399,-0.398,-0.397,-0.396,-0.394,-0.393,-0.391,-0.388,-0.386,-0.384,-0.381,-0.378,-0.375,-0.372,-0.368,-0.365,-0.361,-0.357,-0.353,-0.349,-0.345,-0.34,-0.336,-0.331,-0.326,-0.321,-0.316,-0.311,-0.306,-0.301,-0.295,-0.29,-0.284,-0.278,-0.273,-0.267,-0.261,-0.255,-0.249,-0.243,-0.237,-0.231,-0.225,-0.219,-0.213,-0.207,-0.201,-0.194,-0.188,-0.182,-0.176,-0.17,-0.164,-0.158,-0.152,-0.146,-0.14,-0.134,-0.128,-0.122,-0.116,-0.111,-0.105,-0.099,-0.094,-0.089,-0.083,-0.078,-0.073,-0.068,-0.063,-0.058,-0.054,-0.049,-0.045,-0.041,-0.037,-0.033,-0.029,-0.025,-0.022,-0.018,-0.015,-0.012,-0.009,-0.007,-0.004,-0.002,0,0.002,0.004,0.006,0.008,0.01,0.012,0.013,0.015,0.017,0.019,0.021,0.023,0.025,0.027,0.029,0.031,0.032,0.034,0.036,0.038,0.04,0.042,0.044,0.045,0.047,0.049,0.051,0.053,0.055,0.056,0.058,0.06,0.062,0.064,0.066,0.067,0.069,0.071,0.073,0.075,0.076,0.078,0.08,0.082,0.084,0.085,0.087,0.089,0.091,0.092,0.094,0.096,0.098,0.099,0.101,0.103,0.105,0.106,0.108,0.11,0.111,0.113,0.115,0.117,0.118,0.12,0.122,0.123,0.125,0.127,0.128,0.13,0.132,0.134,0.135,0.137,0.139,0.14,0.142,0.143,0.145,0.147,0.148,0.15,0.152,0.153,0.155,0.157,0.158,0.16,0.161,0.163,0.165,0.166,0.168,0.17,0.171,0.173,0.174,0.176,0.177,0.179,0.181,0.182,0.184,0.185,0.187,0.188,0.19,0.192,0.193,0.195,0.196,0.198,0.199,0.201,0.202,0.204,0.205,0.207,0.208,0.21,0.211,0.213,0.214,0.216,0.217,0.219,0.22,0.222,0.223,0.225,0.226,0.228,0.229,0.231,0.232,0.234,0.235,0.237,0.238,0.239,0.241,0.242,0.244,0.245,0.247,0.248,0.25,0.251,0.252,0.254,0.255,0.257,0.258,0.259,0.261,0.262,0.264,0.265,0.266,0.268,0.269,0.27,0.272,0.273,0.275,0.276,0.277,0.279,0.28,0.281,0.283,0.284,0.285,0.287,0.288,0.289,0.291,0.292,0.293,0.295,0.296,0.297,0.299,0.3,0.301,0.302,0.304,0.305,0.306,0.308,0.309,0.31,0.311,0.313,0.314,0.315,0.317,0.318,0.319,0.32,0.322,0.323,0.324,0.325,0.327,0.328,0.329,0.33,0.331,0.333,0.334,0.335,0.336,0.338,0.339,0.34,0.341,0.342,0.344,0.345,0.346,0.347,0.348,0.349,0.351,0.352,0.353,0.354,0.355,0.356,0.358,0.359,0.36,0.361,0.362,0.363,0.364,0.366,0.367,0.368,0.369,0.37,0.371,0.372,0.373,0.375,0.376,0.377,0.378,0.379,0.38,0.381,0.382,0.383,0.384,0.385,0.387,0.388,0.389,0.39,0.391,0.392,0.393,0.394,0.395,0.396,0.397,0.398,0.399,0.4,0.401,0.402,0.403,0.404,0.405,0.406,0.407,0.408,0.409,0.41,0.411,0.412,0.413,0.414,0.415,0.416,0.417,0.418,0.419,0.42,0.421,0.422,0.423,0.424,0.425,0.426,0.427,0.428,0.429,0.43,0.431,0.432,0.433,0.434,0.435,0.436,0.437,0.437,0.438,0.439,0.44,0.441,0.442,0.443,0.444,0.445,0.446,0.447,0.447,0.448,0.449,0.45,0.451,0.452,0.453,0.454,0.455,0.455,0.456,0.457,0.458,0.459,0.46,0.461,0.461,0.462,0.463,0.464,0.465,0.466,0.466,0.467,0.468,0.469,0.47,0.47,0.471,0.472,0.473,0.474,0.475,0.475,0.476,0.477,0.478,0.479,0.479,0.48,0.481,0.482,0.482,0.483,0.484,0.485,0.485,0.486,0.487,0.488,0.488,0.489,0.49,0.491,0.491,0.492,0.493,0.494,0.494,0.495,0.496,0.497,0.497,0.498,0.499,0.499,0.5,0.501,0.502,0.502,0.503,0.504,0.504,0.505,0.506,0.506,0.507,0.508,0.508,0.509,0.51,0.51,0.511,0.512,0.512,0.513,0.514,0.514,0.515,0.516,0.516,0.517,0.518,0.518,0.519,0.52,0.52,0.521,0.521,0.522,0.523,0.523,0.524,0.524,0.525,0.526,0.526,0.527,0.527,0.528,0.529,0.529,0.53,0.53,0.531,0.532,0.532,0.533,0.533,0.534,0.534,0.535,0.536,0.536,0.537,0.537,0.538,0.538,0.539,0.539,0.54,0.54,0.541,0.542,0.542,0.543,0.543,0.544,0.544,0.545,0.545,0.546,0.546,0.547,0.547,0.548,0.548,0.549,0.549,0.55,0.55,0.551,0.551,0.552,0.552,0.553,0.553,0.553,0.554,0.554,0.555,0.555,0.556,0.556,0.557,0.557,0.558,0.558,0.558,0.559,0.559,0.56,0.56,0.561,0.561,0.561,0.562,0.562,0.563,0.563,0.564,0.564,0.564,0.565,0.565,0.566,0.566,0.566,0.567,0.567,0.568,0.568,0.568,0.569,0.569,0.569,0.57,0.57,0.571,0.571,0.571,0.572,0.572,0.572,0.573,0.573,0.573,0.574,0.574,0.574,0.575,0.575,0.575,0.576,0.576,0.576,0.577,0.577,0.577,0.578,0.578,0.578,0.579,0.579,0.579,0.58,0.58,0.58,0.581,0.581,0.581,0.581,0.582,0.582,0.582,0.583,0.583,0.583,0.583,0.584,0.584,0.584,0.584,0.585,0.585,0.585,0.585,0.586,0.586,0.586,0.586,0.587,0.587,0.587,0.587,0.588,0.588,0.588,0.588,0.589,0.589,0.589,0.589,0.589,0.59,0.59,0.59,0.59,0.59,0.591,0.591,0.591,0.591,0.591,0.592,0.592,0.592,0.592,0.592,0.593,0.593,0.593,0.593,0.593,0.593,0.594,0.594,0.594,0.594,0.594,0.594,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\nPARAM_BROW_L_FORM=0.6,0.6,0.6,0.599,0.598,0.597,0.596,0.595,0.593,0.592,0.59,0.588,0.585,0.583,0.58,0.577,0.574,0.571,0.568,0.564,0.561,0.557,0.553,0.548,0.544,0.54,0.535,0.53,0.525,0.52,0.515,0.509,0.504,0.498,0.492,0.486,0.48,0.474,0.468,0.461,0.455,0.448,0.441,0.434,0.427,0.42,0.413,0.405,0.398,0.39,0.382,0.374,0.367,0.359,0.351,0.342,0.334,0.326,0.318,0.309,0.3,0.292,0.283,0.274,0.266,0.257,0.248,0.239,0.229,0.22,0.211,0.202,0.192,0.183,0.174,0.164,0.155,0.145,0.136,0.126,0.117,0.107,0.097,0.088,0.078,0.068,0.059,0.049,0.039,0.029,0.02,0.01,0,-0.01,-0.02,-0.029,-0.039,-0.049,-0.059,-0.068,-0.078,-0.088,-0.097,-0.107,-0.117,-0.126,-0.136,-0.145,-0.155,-0.164,-0.174,-0.183,-0.192,-0.202,-0.211,-0.22,-0.229,-0.239,-0.248,-0.257,-0.266,-0.274,-0.283,-0.292,-0.3,-0.309,-0.318,-0.326,-0.334,-0.342,-0.351,-0.359,-0.367,-0.374,-0.382,-0.39,-0.398,-0.405,-0.413,-0.42,-0.427,-0.434,-0.441,-0.448,-0.455,-0.461,-0.468,-0.474,-0.48,-0.486,-0.492,-0.498,-0.504,-0.509,-0.515,-0.52,-0.525,-0.53,-0.535,-0.54,-0.544,-0.548,-0.553,-0.557,-0.561,-0.564,-0.568,-0.571,-0.574,-0.577,-0.58,-0.583,-0.585,-0.588,-0.59,-0.592,-0.593,-0.595,-0.596,-0.597,-0.598,-0.599,-0.6,-0.6,-0.6,-0.6,-0.599,-0.598,-0.597,-0.595,-0.593,-0.591,-0.588,-0.585,-0.581,-0.577,-0.573,-0.569,-0.564,-0.559,-0.554,-0.548,-0.542,-0.536,-0.53,-0.524,-0.517,-0.51,-0.503,-0.495,-0.488,-0.48,-0.472,-0.464,-0.456,-0.447,-0.439,-0.43,-0.421,-0.412,-0.403,-0.394,-0.385,-0.376,-0.367,-0.357,-0.348,-0.338,-0.329,-0.319,-0.31,-0.3,-0.29,-0.281,-0.271,-0.262,-0.252,-0.243,-0.233,-0.224,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,-0.161,-0.153,-0.144,-0.136,-0.128,-0.12,-0.112,-0.105,-0.097,-0.09,-0.083,-0.076,-0.07,-0.064,-0.058,-0.052,-0.046,-0.041,-0.036,-0.031,-0.027,-0.023,-0.019,-0.015,-0.012,-0.009,-0.007,-0.005,-0.003,-0.002,-0.001,-0,0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.004,-0.004,-0.005,-0.005,-0.006,-0.006,-0.007,-0.007,-0.008,-0.008,-0.009,-0.01,-0.01,-0.011,-0.012,-0.013,-0.013,-0.014,-0.015,-0.016,-0.017,-0.017,-0.018,-0.019,-0.02,-0.021,-0.022,-0.023,-0.024,-0.025,-0.026,-0.027,-0.028,-0.029,-0.03,-0.031,-0.032,-0.033,-0.035,-0.036,-0.037,-0.038,-0.039,-0.041,-0.042,-0.043,-0.044,-0.046,-0.047,-0.048,-0.049,-0.051,-0.052,-0.054,-0.055,-0.056,-0.058,-0.059,-0.06,-0.062,-0.063,-0.065,-0.066,-0.068,-0.069,-0.071,-0.072,-0.074,-0.075,-0.077,-0.078,-0.08,-0.081,-0.083,-0.085,-0.086,-0.088,-0.089,-0.091,-0.093,-0.094,-0.096,-0.097,-0.099,-0.101,-0.102,-0.104,-0.106,-0.107,-0.109,-0.111,-0.112,-0.114,-0.116,-0.117,-0.119,-0.121,-0.122,-0.124,-0.126,-0.128,-0.129,-0.131,-0.133,-0.134,-0.136,-0.138,-0.14,-0.141,-0.143,-0.145,-0.147,-0.148,-0.15,-0.152,-0.153,-0.155,-0.157,-0.159,-0.16,-0.162,-0.164,-0.166,-0.167,-0.169,-0.171,-0.172,-0.174,-0.176,-0.178,-0.179,-0.181,-0.183,-0.184,-0.186,-0.188,-0.189,-0.191,-0.193,-0.194,-0.196,-0.198,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.209,-0.211,-0.212,-0.214,-0.215,-0.217,-0.219,-0.22,-0.222,-0.223,-0.225,-0.226,-0.228,-0.229,-0.231,-0.232,-0.234,-0.235,-0.237,-0.238,-0.24,-0.241,-0.242,-0.244,-0.245,-0.246,-0.248,-0.249,-0.251,-0.252,-0.253,-0.254,-0.256,-0.257,-0.258,-0.259,-0.261,-0.262,-0.263,-0.264,-0.265,-0.267,-0.268,-0.269,-0.27,-0.271,-0.272,-0.273,-0.274,-0.275,-0.276,-0.277,-0.278,-0.279,-0.28,-0.281,-0.282,-0.283,-0.283,-0.284,-0.285,-0.286,-0.287,-0.287,-0.288,-0.289,-0.29,-0.29,-0.291,-0.292,-0.292,-0.293,-0.293,-0.294,-0.294,-0.295,-0.295,-0.296,-0.296,-0.297,-0.297,-0.297,-0.298,-0.298,-0.298,-0.299,-0.299,-0.299,-0.299,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.298,-0.298,-0.297,-0.297,-0.296,-0.296,-0.295,-0.294,-0.293,-0.293,-0.292,-0.291,-0.29,-0.288,-0.287,-0.286,-0.285,-0.283,-0.282,-0.28,-0.278,-0.277,-0.275,-0.273,-0.271,-0.269,-0.266,-0.264,-0.262,-0.259,-0.256,-0.253,-0.251,-0.248,-0.244,-0.241,-0.238,-0.234,-0.231,-0.227,-0.223,-0.219,-0.215,-0.211,-0.206,-0.202,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.166,-0.16,-0.154,-0.148,-0.142,-0.136,-0.129,-0.122,-0.116,-0.108,-0.101,-0.094,-0.086,-0.079,-0.071,-0.062,-0.054,-0.046,-0.037,-0.028,-0.019,-0.009,0,0.01,0.02,0.031,0.042,0.054,0.066,0.079,0.091,0.104,0.118,0.131,0.145,0.16,0.174,0.188,0.203,0.218,0.233,0.247,0.262,0.277,0.292,0.307,0.321,0.336,0.35,0.365,0.379,0.393,0.407,0.42,0.434,0.446,0.459,0.471,0.483,0.494,0.505,0.516,0.526,0.535,0.544,0.553,0.56,0.568,0.574,0.58,0.585,0.59,0.593,0.596,0.598,0.6,0.6,0.597,0.588,0.573,0.553,0.528,0.498,0.465,0.428,0.388,0.345,0.299,0.252,0.203,0.153,0.101,0.05,-0.001,-0.053,-0.103,-0.152,-0.199,-0.245,-0.288,-0.328,-0.365,-0.398,-0.428,-0.453,-0.473,-0.488,-0.497,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.499,-0.499,-0.499,-0.499,-0.498,-0.498,-0.497,-0.497,-0.496,-0.496,-0.495,-0.495,-0.494,-0.493,-0.492,-0.491,-0.49,-0.489,-0.488,-0.487,-0.486,-0.485,-0.483,-0.482,-0.48,-0.479,-0.477,-0.475,-0.473,-0.472,-0.47,-0.467,-0.465,-0.463,-0.461,-0.458,-0.456,-0.453,-0.45,-0.447,-0.444,-0.441,-0.438,-0.435,-0.432,-0.428,-0.424,-0.421,-0.417,-0.413,-0.409,-0.405,-0.4,-0.396,-0.391,-0.386,-0.382,-0.377,-0.372,-0.366,-0.361,-0.355,-0.35,-0.344,-0.338,-0.332,-0.326,-0.319,-0.313,-0.306,-0.299,-0.292,-0.285,-0.278,-0.27,-0.262,-0.255,-0.247,-0.238,-0.23,-0.222,-0.213,-0.204,-0.195,-0.186,-0.176,-0.167,-0.157,-0.147,-0.137,-0.127,-0.116,-0.105,-0.095,-0.083,-0.072,-0.061,-0.049,-0.037,-0.025,-0.013,0,0.013,0.026,0.04,0.053,0.068,0.082,0.097,0.112,0.128,0.144,0.16,0.176,0.192,0.209,0.225,0.242,0.259,0.277,0.294,0.311,0.329,0.347,0.364,0.382,0.4,0.418,0.435,0.453,0.471,0.488,0.506,0.524,0.541,0.559,0.576,0.593,0.61,0.627,0.644,0.66,0.676,0.692,0.708,0.724,0.739,0.754,0.769,0.783,0.797,0.811,0.824,0.837,0.85,0.862,0.874,0.885,0.896,0.907,0.917,0.926,0.935,0.944,0.952,0.959,0.966,0.972,0.978,0.983,0.987,0.991,0.994,0.997,0.999,1,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.997,0.997,0.997,0.996,0.996,0.996,0.995,0.995,0.994,0.994,0.993,0.993,0.992,0.991,0.991,0.99,0.99,0.989,0.988,0.987,0.987,0.986,0.985,0.984,0.984,0.983,0.982,0.981,0.98,0.979,0.978,0.977,0.976,0.975,0.974,0.973,0.972,0.971,0.97,0.968,0.967,0.966,0.965,0.964,0.962,0.961,0.96,0.958,0.957,0.955,0.954,0.953,0.951,0.95,0.948,0.947,0.945,0.943,0.942,0.94,0.939,0.937,0.935,0.933,0.932,0.93,0.928,0.926,0.924,0.922,0.921,0.919,0.917,0.915,0.913,0.911,0.909,0.906,0.904,0.902,0.9,0.898,0.896,0.893,0.891,0.889,0.887,0.884,0.882,0.879,0.877,0.875,0.872,0.87,0.867,0.865,0.862,0.859,0.857,0.854,0.851,0.849,0.846,0.843,0.84,0.838,0.835,0.832,0.829,0.826,0.823,0.82,0.817,0.814,0.811,0.808,0.805,0.802,0.799,0.795,0.792,0.789,0.786,0.782,0.779,0.776,0.772,0.769,0.765,0.762,0.758,0.755,0.751,0.748,0.744,0.74,0.737,0.733,0.729,0.725,0.722,0.718,0.714,0.71,0.706,0.702,0.698,0.694,0.69,0.686,0.682,0.678,0.674,0.67,0.666,0.661,0.657,0.653,0.648,0.644,0.64,0.635,0.631,0.626,0.622,0.617,0.613,0.608,0.604,0.599,0.594,0.589,0.585,0.58,0.575,0.57,0.565,0.56,0.556,0.551,0.546,0.541,0.535,0.53,0.525,0.52,0.515,0.51,0.505,0.499,0.494,0.489,0.483,0.478,0.472,0.467,0.461,0.456,0.45,0.445,0.439,0.433,0.428,0.422,0.416,0.41,0.404,0.399,0.393,0.387,0.381,0.375,0.369,0.363,0.357,0.35,0.344,0.338,0.332,0.326,0.319,0.313,0.307,0.3,0.294,0.287,0.281,0.274,0.268,0.261,0.254,0.248,0.241,0.234,0.228,0.221,0.214,0.207,0.2,0.193,0.186,0.179,0.172,0.165,0.158,0.151,0.144,0.136,0.129,0.122,0.114,0.107,0.1,0.092,0.085,0.077,0.07,0.062,0.054,0.047,0.039,0.031,0.024,0.016,0.008,0,-0.008,-0.017,-0.026,-0.035,-0.045,-0.055,-0.066,-0.077,-0.088,-0.1,-0.112,-0.124,-0.136,-0.148,-0.161,-0.173,-0.186,-0.199,-0.212,-0.225,-0.238,-0.251,-0.263,-0.276,-0.289,-0.301,-0.314,-0.326,-0.338,-0.35,-0.361,-0.372,-0.383,-0.394,-0.404,-0.414,-0.423,-0.433,-0.441,-0.449,-0.457,-0.464,-0.47,-0.476,-0.482,-0.486,-0.49,-0.494,-0.496,-0.498,-0.5,-0.5,-0.5,-0.499,-0.499,-0.498,-0.496,-0.494,-0.493,-0.49,-0.488,-0.485,-0.482,-0.479,-0.475,-0.472,-0.468,-0.464,-0.459,-0.455,-0.45,-0.445,-0.44,-0.434,-0.429,-0.423,-0.417,-0.411,-0.405,-0.399,-0.392,-0.386,-0.379,-0.372,-0.365,-0.358,-0.351,-0.344,-0.337,-0.329,-0.322,-0.314,-0.307,-0.299,-0.291,-0.284,-0.276,-0.268,-0.26,-0.253,-0.245,-0.237,-0.229,-0.222,-0.214,-0.206,-0.198,-0.191,-0.183,-0.176,-0.168,-0.161,-0.153,-0.146,-0.139,-0.132,-0.125,-0.118,-0.111,-0.105,-0.098,-0.092,-0.086,-0.079,-0.073,-0.068,-0.062,-0.057,-0.051,-0.046,-0.041,-0.037,-0.032,-0.028,-0.024,-0.02,-0.016,-0.013,-0.01,-0.007,-0.004,-0.002,0,0.002,0.004,0.006,0.008,0.01,0.012,0.014,0.015,0.017,0.019,0.021,0.023,0.025,0.027,0.029,0.031,0.033,0.034,0.036,0.038,0.04,0.042,0.044,0.046,0.048,0.049,0.051,0.053,0.055,0.057,0.059,0.06,0.062,0.064,0.066,0.068,0.07,0.071,0.073,0.075,0.077,0.079,0.08,0.082,0.084,0.086,0.087,0.089,0.091,0.093,0.095,0.096,0.098,0.1,0.102,0.103,0.105,0.107,0.109,0.11,0.112,0.114,0.115,0.117,0.119,0.121,0.122,0.124,0.126,0.127,0.129,0.131,0.132,0.134,0.136,0.137,0.139,0.141,0.142,0.144,0.146,0.147,0.149,0.151,0.152,0.154,0.156,0.157,0.159,0.161,0.162,0.164,0.165,0.167,0.169,0.17,0.172,0.173,0.175,0.177,0.178,0.18,0.181,0.183,0.185,0.186,0.188,0.189,0.191,0.192,0.194,0.195,0.197,0.199,0.2,0.202,0.203,0.205,0.206,0.208,0.209,0.211,0.212,0.214,0.215,0.217,0.218,0.22,0.221,0.223,0.224,0.226,0.227,0.229,0.23,0.232,0.233,0.235,0.236,0.237,0.239,0.24,0.242,0.243,0.245,0.246,0.248,0.249,0.25,0.252,0.253,0.255,0.256,0.258,0.259,0.26,0.262,0.263,0.265,0.266,0.267,0.269,0.27,0.271,0.273,0.274,0.276,0.277,0.278,0.28,0.281,0.282,0.284,0.285,0.286,0.288,0.289,0.29,0.292,0.293,0.294,0.296,0.297,0.298,0.3,0.301,0.302,0.303,0.305,0.306,0.307,0.309,0.31,0.311,0.312,0.314,0.315,0.316,0.318,0.319,0.32,0.321,0.323,0.324,0.325,0.326,0.328,0.329,0.33,0.331,0.332,0.334,0.335,0.336,0.337,0.339,0.34,0.341,0.342,0.343,0.345,0.346,0.347,0.348,0.349,0.35,0.352,0.353,0.354,0.355,0.356,0.357,0.359,0.36,0.361,0.362,0.363,0.364,0.365,0.367,0.368,0.369,0.37,0.371,0.372,0.373,0.374,0.376,0.377,0.378,0.379,0.38,0.381,0.382,0.383,0.384,0.385,0.386,0.388,0.389,0.39,0.391,0.392,0.393,0.394,0.395,0.396,0.397,0.398,0.399,0.4,0.401,0.402,0.403,0.404,0.405,0.406,0.407,0.408,0.409,0.41,0.411,0.412,0.413,0.414,0.415,0.416,0.417,0.418,0.419,0.42,0.421,0.422,0.423,0.424,0.425,0.426,0.427,0.428,0.429,0.43,0.431,0.432,0.433,0.434,0.435,0.436,0.437,0.437,0.438,0.439,0.44,0.441,0.442,0.443,0.444,0.445,0.446,0.447,0.447,0.448,0.449,0.45,0.451,0.452,0.453,0.454,0.455,0.455,0.456,0.457,0.458,0.459,0.46,0.461,0.461,0.462,0.463,0.464,0.465,0.466,0.466,0.467,0.468,0.469,0.47,0.471,0.471,0.472,0.473,0.474,0.475,0.475,0.476,0.477,0.478,0.479,0.479,0.48,0.481,0.482,0.482,0.483,0.484,0.485,0.486,0.486,0.487,0.488,0.489,0.489,0.49,0.491,0.492,0.492,0.493,0.494,0.494,0.495,0.496,0.497,0.497,0.498,0.499,0.499,0.5,0.501,0.502,0.502,0.503,0.504,0.504,0.505,0.506,0.506,0.507,0.508,0.508,0.509,0.51,0.51,0.511,0.512,0.512,0.513,0.514,0.514,0.515,0.516,0.516,0.517,0.518,0.518,0.519,0.52,0.52,0.521,0.521,0.522,0.523,0.523,0.524,0.524,0.525,0.526,0.526,0.527,0.527,0.528,0.529,0.529,0.53,0.53,0.531,0.532,0.532,0.533,0.533,0.534,0.534,0.535,0.536,0.536,0.537,0.537,0.538,0.538,0.539,0.539,0.54,0.54,0.541,0.541,0.542,0.543,0.543,0.544,0.544,0.545,0.545,0.546,0.546,0.547,0.547,0.548,0.548,0.549,0.549,0.55,0.55,0.551,0.551,0.552,0.552,0.553,0.553,0.553,0.554,0.554,0.555,0.555,0.556,0.556,0.557,0.557,0.558,0.558,0.558,0.559,0.559,0.56,0.56,0.561,0.561,0.561,0.562,0.562,0.563,0.563,0.564,0.564,0.564,0.565,0.565,0.566,0.566,0.566,0.567,0.567,0.568,0.568,0.568,0.569,0.569,0.569,0.57,0.57,0.571,0.571,0.571,0.572,0.572,0.572,0.573,0.573,0.573,0.574,0.574,0.574,0.575,0.575,0.575,0.576,0.576,0.576,0.577,0.577,0.577,0.578,0.578,0.578,0.579,0.579,0.579,0.58,0.58,0.58,0.58,0.581,0.581,0.581,0.582,0.582,0.582,0.582,0.583,0.583,0.583,0.584,0.584,0.584,0.584,0.585,0.585,0.585,0.585,0.586,0.586,0.586,0.586,0.587,0.587,0.587,0.587,0.588,0.588,0.588,0.588,0.588,0.589,0.589,0.589,0.589,0.59,0.59,0.59,0.59,0.59,0.591,0.591,0.591,0.591,0.591,0.592,0.592,0.592,0.592,0.592,0.593,0.593,0.593,0.593,0.593,0.593,0.594,0.594,0.594,0.594,0.594,0.594,0.595,0.595,0.595,0.595,0.595,0.595,0.595,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.596,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.597,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.598,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.599,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6,0.6\n"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/motions/Nemui.mtn",
    "content": "# Live2D Animator Motion Data\n$fps=60.0\n\n$fadein=500\n\n$fadeout=500\n\nSIGN=0\nSTONES=0\nPARAM_CHEEK=0.6\nPARAM_ANGLE_X=-12,-11.997,-11.987,-11.972,-11.95,-11.923,-11.889,-11.849,-11.804,-11.753,-11.696,-11.634,-11.567,-11.494,-11.417,-11.334,-11.246,-11.153,-11.055,-10.952,-10.844,-10.732,-10.615,-10.497,-10.371,-10.241,-10.108,-9.97,-9.828,-9.682,-9.532,-9.379,-9.225,-9.064,-8.9,-8.733,-8.562,-8.389,-8.212,-8.032,-7.849,-7.667,-7.478,-7.287,-7.094,-6.897,-6.699,-6.498,-6.295,-6.09,-5.886,-5.677,-5.466,-5.254,-5.039,-4.823,-4.605,-4.386,-4.166,-3.949,-3.726,-3.502,-3.277,-3.052,-2.825,-2.598,-2.37,-2.142,-1.918,-1.688,-1.459,-1.23,-1,-0.77,-0.541,-0.312,-0.082,0.142,0.37,0.598,0.825,1.052,1.277,1.502,1.726,1.949,2.166,2.386,2.605,2.823,3.039,3.254,3.466,3.677,3.886,4.09,4.295,4.498,4.699,4.897,5.094,5.287,5.478,5.667,5.849,6.032,6.212,6.389,6.562,6.733,6.9,7.064,7.225,7.379,7.532,7.682,7.828,7.97,8.108,8.241,8.371,8.497,8.615,8.732,8.844,8.952,9.055,9.153,9.246,9.334,9.417,9.494,9.567,9.634,9.696,9.753,9.804,9.849,9.889,9.923,9.95,9.972,9.987,9.997,10,9.991,9.964,9.92,9.859,9.782,9.691,9.583,9.464,9.329,9.182,9.025,8.852,8.673,8.484,8.28,8.073,7.854,7.628,7.398,7.156,6.914,6.664,6.409,6.154,5.889,5.628,5.366,5.095,4.831,4.563,4.296,4.034,3.767,3.51,3.252,2.998,2.752,2.505,2.269,2.04,1.813,1.599,1.39,1.191,1.003,0.821,0.655,0.498,0.353,0.223,0.103,0,-0.097,-0.193,-0.287,-0.381,-0.475,-0.569,-0.661,-0.752,-0.845,-0.935,-1.025,-1.115,-1.203,-1.292,-1.379,-1.466,-1.553,-1.637,-1.724,-1.808,-1.892,-1.975,-2.057,-2.141,-2.221,-2.302,-2.383,-2.463,-2.542,-2.62,-2.698,-2.776,-2.853,-2.929,-3.004,-3.08,-3.154,-3.228,-3.302,-3.374,-3.447,-3.518,-3.589,-3.66,-3.729,-3.8,-3.868,-3.936,-4.004,-4.071,-4.139,-4.204,-4.27,-4.335,-4.399,-4.464,-4.526,-4.59,-4.652,-4.714,-4.775,-4.836,-4.896,-4.956,-5.015,-5.074,-5.131,-5.19,-5.246,-5.303,-5.359,-5.414,-5.47,-5.524,-5.578,-5.632,-5.684,-5.738,-5.789,-5.841,-5.892,-5.942,-5.993,-6.042,-6.091,-6.14,-6.187,-6.236,-6.282,-6.329,-6.376,-6.421,-6.467,-6.511,-6.555,-6.599,-6.643,-6.686,-6.728,-6.77,-6.812,-6.853,-6.893,-6.933,-6.973,-7.012,-7.051,-7.09,-7.127,-7.165,-7.202,-7.239,-7.275,-7.31,-7.346,-7.381,-7.415,-7.449,-7.482,-7.516,-7.548,-7.581,-7.613,-7.644,-7.675,-7.706,-7.736,-7.766,-7.795,-7.825,-7.853,-7.881,-7.909,-7.936,-7.964,-7.99,-8.017,-8.042,-8.068,-8.093,-8.117,-8.142,-8.165,-8.189,-8.212,-8.235,-8.257,-8.279,-8.301,-8.322,-8.343,-8.364,-8.384,-8.404,-8.423,-8.442,-8.461,-8.479,-8.497,-8.515,-8.532,-8.549,-8.566,-8.582,-8.598,-8.614,-8.629,-8.644,-8.659,-8.673,-8.687,-8.7,-8.713,-8.726,-8.739,-8.751,-8.763,-8.775,-8.786,-8.797,-8.808,-8.818,-8.828,-8.838,-8.848,-8.857,-8.866,-8.874,-8.882,-8.89,-8.898,-8.905,-8.913,-8.919,-8.926,-8.932,-8.938,-8.944,-8.949,-8.954,-8.959,-8.963,-8.968,-8.972,-8.975,-8.979,-8.982,-8.985,-8.988,-8.99,-8.992,-8.994,-8.996,-8.997,-8.998,-8.999,-9,-9,-9,-8.998,-8.992,-8.982,-8.969,-8.951,-8.93,-8.906,-8.877,-8.846,-8.811,-8.772,-8.731,-8.686,-8.639,-8.587,-8.534,-8.477,-8.417,-8.355,-8.29,-8.222,-8.151,-8.079,-8.004,-7.926,-7.846,-7.764,-7.679,-7.594,-7.506,-7.416,-7.323,-7.23,-7.134,-7.036,-6.938,-6.837,-6.735,-6.632,-6.527,-6.421,-6.315,-6.208,-6.097,-5.987,-5.877,-5.765,-5.652,-5.54,-5.425,-5.31,-5.196,-5.08,-4.964,-4.849,-4.732,-4.615,-4.5,-4.385,-4.268,-4.151,-4.036,-3.92,-3.804,-3.69,-3.575,-3.46,-3.348,-3.235,-3.123,-3.013,-2.903,-2.792,-2.685,-2.579,-2.473,-2.368,-2.265,-2.163,-2.062,-1.964,-1.866,-1.77,-1.677,-1.584,-1.494,-1.406,-1.321,-1.236,-1.154,-1.074,-0.996,-0.921,-0.849,-0.778,-0.71,-0.645,-0.583,-0.523,-0.466,-0.413,-0.361,-0.314,-0.269,-0.228,-0.189,-0.154,-0.123,-0.094,-0.07,-0.049,-0.031,-0.018,-0.008,-0.002,0,-0.002,-0.007,-0.015,-0.026,-0.041,-0.059,-0.08,-0.104,-0.131,-0.161,-0.194,-0.23,-0.268,-0.31,-0.354,-0.401,-0.45,-0.502,-0.557,-0.614,-0.673,-0.735,-0.799,-0.867,-0.935,-1.006,-1.079,-1.155,-1.232,-1.311,-1.393,-1.477,-1.563,-1.65,-1.738,-1.829,-1.921,-2.015,-2.111,-2.208,-2.307,-2.409,-2.51,-2.613,-2.717,-2.823,-2.93,-3.038,-3.147,-3.259,-3.371,-3.483,-3.596,-3.711,-3.826,-3.942,-4.058,-4.176,-4.294,-4.415,-4.535,-4.655,-4.775,-4.896,-5.017,-5.139,-5.261,-5.386,-5.508,-5.631,-5.754,-5.877,-6,-6.123,-6.246,-6.369,-6.492,-6.614,-6.739,-6.861,-6.983,-7.104,-7.225,-7.345,-7.465,-7.585,-7.706,-7.824,-7.942,-8.058,-8.174,-8.289,-8.404,-8.517,-8.629,-8.741,-8.853,-8.962,-9.07,-9.177,-9.283,-9.387,-9.49,-9.591,-9.693,-9.792,-9.889,-9.985,-10.079,-10.171,-10.262,-10.35,-10.437,-10.523,-10.607,-10.689,-10.768,-10.845,-10.921,-10.994,-11.065,-11.133,-11.201,-11.265,-11.327,-11.386,-11.443,-11.498,-11.55,-11.599,-11.646,-11.69,-11.732,-11.77,-11.806,-11.839,-11.869,-11.896,-11.92,-11.941,-11.959,-11.974,-11.985,-11.993,-11.998,-12\nPARAM_ANGLE_Y=0,0.005,0.019,0.041,0.072,0.112,0.161,0.216,0.28,0.352,0.431,0.516,0.609,0.709,0.816,0.926,1.045,1.169,1.3,1.432,1.573,1.719,1.869,2.024,2.18,2.343,2.51,2.68,2.851,3.028,3.208,3.39,3.571,3.759,3.948,4.139,4.328,4.522,4.717,4.913,5.106,5.303,5.5,5.697,5.894,6.087,6.283,6.478,6.672,6.861,7.052,7.241,7.429,7.61,7.792,7.972,8.149,8.32,8.49,8.657,8.82,8.976,9.131,9.281,9.427,9.568,9.7,9.831,9.955,10.074,10.184,10.291,10.391,10.484,10.569,10.648,10.72,10.784,10.839,10.888,10.928,10.959,10.981,10.995,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.992,-12.969,-12.93,-12.876,-12.807,-12.724,-12.628,-12.518,-12.395,-12.259,-12.11,-11.949,-11.775,-11.588,-11.393,-11.186,-10.969,-10.742,-10.505,-10.259,-10,-9.735,-9.459,-9.177,-8.888,-8.591,-8.287,-7.976,-7.659,-7.331,-6.998,-6.663,-6.323,-5.978,-5.628,-5.274,-4.917,-4.555,-4.187,-3.815,-3.446,-3.074,-2.7,-2.325,-1.948,-1.571,-1.189,-0.811,-0.429,-0.052,0.325,0.7,1.074,1.446,1.815,2.187,2.555,2.917,3.274,3.628,3.978,4.323,4.663,4.998,5.331,5.659,5.976,6.287,6.591,6.888,7.177,7.459,7.735,8,8.259,8.505,8.742,8.969,9.186,9.393,9.588,9.775,9.949,10.11,10.259,10.395,10.518,10.628,10.724,10.807,10.876,10.93,10.969,10.992,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.99,-12.962,-12.914,-12.849,-12.766,-12.665,-12.55,-12.416,-12.265,-12.103,-11.922,-11.727,-11.521,-11.298,-11.066,-10.817,-10.556,-10.288,-10.003,-9.707,-9.407,-9.091,-8.771,-8.436,-8.093,-7.748,-7.388,-7.021,-6.655,-6.275,-5.897,-5.505,-5.108,-4.715,-4.31,-3.901,-3.497,-3.082,-2.669,-2.255,-1.834,-1.422,-1,-0.578,-0.166,0.255,0.669,1.082,1.497,1.901,2.31,2.715,3.108,3.505,3.897,4.275,4.655,5.021,5.388,5.748,6.093,6.436,6.771,7.091,7.407,7.707,8.003,8.288,8.556,8.817,9.066,9.298,9.521,9.727,9.922,10.103,10.265,10.416,10.55,10.665,10.766,10.849,10.914,10.962,10.99,11,10.991,10.963,10.918,10.856,10.776,10.681,10.568,10.442,10.298,10.142,9.969,9.781,9.584,9.369,9.147,8.907,8.661,8.397,8.129,7.844,7.555,7.25,6.936,6.619,6.287,5.954,5.606,5.259,4.897,4.537,4.163,3.791,3.406,3.017,2.631,2.234,1.841,1.437,1.039,0.63,0.229,-0.183,-0.587,-1,-1.413,-1.817,-2.229,-2.63,-3.039,-3.437,-3.841,-4.234,-4.631,-5.017,-5.406,-5.791,-6.163,-6.537,-6.897,-7.259,-7.606,-7.954,-8.287,-8.619,-8.936,-9.25,-9.555,-9.844,-10.129,-10.397,-10.661,-10.907,-11.147,-11.369,-11.584,-11.781,-11.969,-12.142,-12.298,-12.442,-12.568,-12.681,-12.776,-12.856,-12.918,-12.963,-12.991,-13,-12.99,-12.959,-12.908,-12.839,-12.749,-12.642,-12.518,-12.373,-12.215,-12.039,-11.846,-11.641,-11.416,-11.181,-10.933,-10.666,-10.392,-10.105,-9.801,-9.491,-9.171,-8.833,-8.493,-8.143,-7.778,-7.411,-7.037,-6.647,-6.259,-5.864,-5.456,-5.05,-4.631,-4.217,-3.798,-3.368,-2.944,-2.517,-2.08,-1.65,-1.22,-0.78,-0.35,0.08,0.517,0.944,1.368,1.798,2.217,2.631,3.05,3.456,3.864,4.259,4.647,5.037,5.411,5.778,6.143,6.493,6.833,7.171,7.491,7.801,8.105,8.392,8.666,8.933,9.181,9.416,9.641,9.846,10.039,10.215,10.373,10.518,10.642,10.749,10.839,10.908,10.959,10.99,11,10.992,10.969,10.932,10.88,10.815,10.736,10.645,10.541,10.426,10.299,10.162,10.014,9.857,9.69,9.514,9.329,9.137,8.937,8.731,8.518,8.299,8.074,7.844,7.61,7.368,7.13,6.881,6.637,6.383,6.135,5.878,5.629,5.371,5.122,4.865,4.617,4.363,4.119,3.87,3.632,3.39,3.156,2.926,2.701,2.482,2.269,2.063,1.863,1.671,1.486,1.31,1.143,0.986,0.838,0.701,0.574,0.459,0.355,0.264,0.185,0.12,0.068,0.031,0.008,0\nPARAM_ANGLE_Z=8,7.998,7.993,7.984,7.971,7.955,7.935,7.912,7.885,7.856,7.822,7.786,7.746,7.703,7.658,7.609,7.556,7.502,7.444,7.382,7.319,7.253,7.183,7.111,7.037,6.959,6.88,6.798,6.712,6.625,6.536,6.443,6.349,6.251,6.152,6.052,5.947,5.843,5.736,5.625,5.514,5.402,5.285,5.169,5.051,4.929,4.807,4.684,4.557,4.431,4.303,4.172,4.041,3.906,3.773,3.639,3.5,3.363,3.225,3.083,2.943,2.801,2.656,2.513,2.369,2.221,2.075,1.929,1.778,1.631,1.482,1.33,1.18,1.029,0.877,0.726,0.571,0.42,0.268,0.113,-0.04,-0.192,-0.347,-0.5,-0.653,-0.808,-0.96,-1.113,-1.268,-1.42,-1.571,-1.726,-1.877,-2.029,-2.18,-2.33,-2.482,-2.631,-2.778,-2.929,-3.075,-3.221,-3.369,-3.513,-3.656,-3.801,-3.943,-4.083,-4.225,-4.363,-4.5,-4.639,-4.773,-4.906,-5.041,-5.172,-5.303,-5.431,-5.557,-5.684,-5.807,-5.929,-6.051,-6.169,-6.285,-6.402,-6.514,-6.625,-6.736,-6.843,-6.947,-7.052,-7.152,-7.251,-7.349,-7.443,-7.536,-7.625,-7.712,-7.798,-7.88,-7.959,-8.037,-8.111,-8.183,-8.253,-8.319,-8.382,-8.444,-8.502,-8.556,-8.609,-8.658,-8.703,-8.746,-8.786,-8.822,-8.856,-8.885,-8.912,-8.935,-8.955,-8.971,-8.984,-8.993,-8.998,-9,-8.998,-8.992,-8.981,-8.967,-8.948,-8.926,-8.9,-8.869,-8.836,-8.798,-8.756,-8.711,-8.662,-8.61,-8.554,-8.494,-8.432,-8.366,-8.295,-8.223,-8.147,-8.067,-7.985,-7.901,-7.811,-7.72,-7.625,-7.527,-7.428,-7.324,-7.219,-7.111,-6.998,-6.885,-6.77,-6.65,-6.529,-6.407,-6.279,-6.151,-6.022,-5.887,-5.753,-5.616,-5.476,-5.336,-5.191,-5.047,-4.901,-4.75,-4.601,-4.45,-4.294,-4.139,-3.983,-3.822,-3.663,-3.503,-3.338,-3.175,-3.009,-2.841,-2.674,-2.503,-2.334,-2.164,-1.989,-1.817,-1.644,-1.467,-1.292,-1.117,-0.937,-0.761,-0.583,-0.402,-0.223,-0.043,0.138,0.318,0.502,0.682,0.862,1.046,1.227,1.408,1.592,1.773,1.954,2.138,2.318,2.498,2.682,2.862,3.043,3.223,3.402,3.583,3.761,3.937,4.117,4.292,4.467,4.644,4.817,4.989,5.164,5.334,5.503,5.674,5.841,6.009,6.175,6.338,6.503,6.663,6.822,6.983,7.139,7.294,7.45,7.601,7.75,7.901,8.047,8.191,8.336,8.476,8.616,8.753,8.887,9.022,9.151,9.279,9.407,9.529,9.65,9.77,9.885,9.998,10.111,10.219,10.324,10.428,10.527,10.625,10.72,10.811,10.901,10.985,11.067,11.147,11.223,11.295,11.366,11.432,11.494,11.554,11.61,11.662,11.711,11.756,11.798,11.836,11.869,11.9,11.926,11.948,11.967,11.981,11.992,11.998,12,11.999,11.994,11.987,11.976,11.963,11.947,11.928,11.906,11.881,11.853,11.823,11.791,11.755,11.717,11.676,11.633,11.587,11.539,11.488,11.435,11.379,11.32,11.26,11.197,11.133,11.066,10.995,10.923,10.849,10.773,10.695,10.615,10.532,10.447,10.361,10.273,10.183,10.091,9.997,9.9,9.802,9.703,9.602,9.5,9.394,9.287,9.18,9.07,8.96,8.847,8.732,8.616,8.499,8.381,8.262,8.141,8.017,7.892,7.768,7.642,7.515,7.386,7.256,7.123,6.992,6.859,6.726,6.591,6.454,6.316,6.178,6.04,5.901,5.761,5.619,5.475,5.333,5.191,5.047,4.903,4.757,4.61,4.464,4.318,4.171,4.024,3.874,3.724,3.576,3.428,3.279,3.129,2.978,2.829,2.677,2.527,2.377,2.227,2.075,1.925,1.773,1.623,1.473,1.323,1.173,1.022,0.871,0.721,0.572,0.424,0.276,0.126,-0.024,-0.171,-0.318,-0.464,-0.61,-0.757,-0.903,-1.047,-1.191,-1.333,-1.475,-1.619,-1.761,-1.901,-2.04,-2.178,-2.316,-2.454,-2.591,-2.726,-2.859,-2.992,-3.123,-3.256,-3.386,-3.515,-3.642,-3.768,-3.892,-4.017,-4.141,-4.262,-4.381,-4.499,-4.616,-4.732,-4.847,-4.96,-5.07,-5.18,-5.287,-5.394,-5.5,-5.602,-5.703,-5.802,-5.9,-5.997,-6.091,-6.183,-6.273,-6.361,-6.447,-6.532,-6.615,-6.695,-6.773,-6.849,-6.923,-6.995,-7.066,-7.133,-7.197,-7.26,-7.32,-7.379,-7.435,-7.488,-7.539,-7.587,-7.633,-7.676,-7.717,-7.755,-7.791,-7.823,-7.853,-7.881,-7.906,-7.928,-7.947,-7.963,-7.976,-7.987,-7.994,-7.999,-8,-7.998,-7.99,-7.978,-7.961,-7.939,-7.913,-7.883,-7.847,-7.808,-7.764,-7.715,-7.663,-7.606,-7.546,-7.481,-7.413,-7.34,-7.264,-7.185,-7.101,-7.014,-6.925,-6.83,-6.734,-6.634,-6.531,-6.424,-6.314,-6.202,-6.086,-5.968,-5.846,-5.722,-5.596,-5.467,-5.335,-5.202,-5.065,-4.929,-4.789,-4.646,-4.501,-4.354,-4.206,-4.055,-3.903,-3.749,-3.594,-3.436,-3.278,-3.118,-2.957,-2.794,-2.633,-2.466,-2.303,-2.136,-1.968,-1.8,-1.63,-1.46,-1.29,-1.119,-0.947,-0.775,-0.603,-0.43,-0.258,-0.088,0.088,0.258,0.43,0.603,0.775,0.947,1.119,1.29,1.46,1.63,1.8,1.968,2.136,2.303,2.466,2.633,2.794,2.957,3.118,3.278,3.436,3.594,3.749,3.903,4.055,4.206,4.354,4.501,4.646,4.789,4.929,5.065,5.202,5.335,5.467,5.596,5.722,5.846,5.968,6.086,6.202,6.314,6.424,6.531,6.634,6.734,6.83,6.925,7.014,7.101,7.185,7.264,7.34,7.413,7.481,7.546,7.606,7.663,7.715,7.764,7.808,7.847,7.883,7.913,7.939,7.961,7.978,7.99,7.998,8\nPARAM_BODY_ANGLE_X=0\nPARAM_BODY_ANGLE_Y=-4,-3.998,-3.992,-3.983,-3.97,-3.954,-3.934,-3.911,-3.885,-3.856,-3.824,-3.789,-3.751,-3.711,-3.668,-3.622,-3.574,-3.524,-3.472,-3.417,-3.361,-3.302,-3.242,-3.181,-3.117,-3.052,-2.985,-2.918,-2.848,-2.778,-2.708,-2.636,-2.563,-2.489,-2.415,-2.34,-2.264,-2.19,-2.114,-2.038,-1.962,-1.886,-1.81,-1.736,-1.66,-1.585,-1.511,-1.437,-1.364,-1.292,-1.222,-1.152,-1.082,-1.015,-0.948,-0.883,-0.819,-0.758,-0.698,-0.639,-0.583,-0.528,-0.476,-0.426,-0.378,-0.332,-0.289,-0.249,-0.211,-0.176,-0.144,-0.115,-0.089,-0.066,-0.046,-0.03,-0.017,-0.008,-0.002,0,-0,-0,-0.001,-0.002,-0.002,-0.004,-0.005,-0.006,-0.008,-0.01,-0.012,-0.014,-0.016,-0.019,-0.021,-0.024,-0.027,-0.03,-0.034,-0.037,-0.041,-0.044,-0.048,-0.052,-0.057,-0.061,-0.065,-0.07,-0.075,-0.08,-0.085,-0.09,-0.095,-0.101,-0.106,-0.112,-0.118,-0.123,-0.13,-0.136,-0.142,-0.148,-0.155,-0.161,-0.168,-0.174,-0.181,-0.188,-0.195,-0.202,-0.209,-0.217,-0.224,-0.231,-0.239,-0.247,-0.254,-0.262,-0.27,-0.277,-0.285,-0.293,-0.301,-0.309,-0.317,-0.326,-0.334,-0.342,-0.35,-0.359,-0.367,-0.375,-0.384,-0.392,-0.401,-0.409,-0.418,-0.427,-0.435,-0.444,-0.452,-0.461,-0.47,-0.478,-0.487,-0.496,-0.504,-0.513,-0.522,-0.53,-0.539,-0.548,-0.556,-0.565,-0.573,-0.582,-0.591,-0.599,-0.608,-0.616,-0.625,-0.633,-0.641,-0.65,-0.658,-0.666,-0.674,-0.683,-0.691,-0.699,-0.707,-0.715,-0.723,-0.73,-0.738,-0.746,-0.753,-0.761,-0.769,-0.776,-0.783,-0.791,-0.798,-0.805,-0.812,-0.819,-0.826,-0.832,-0.839,-0.845,-0.852,-0.858,-0.864,-0.87,-0.877,-0.882,-0.888,-0.894,-0.899,-0.905,-0.91,-0.915,-0.92,-0.925,-0.93,-0.935,-0.939,-0.943,-0.948,-0.952,-0.956,-0.959,-0.963,-0.966,-0.97,-0.973,-0.976,-0.979,-0.981,-0.984,-0.986,-0.988,-0.99,-0.992,-0.994,-0.995,-0.996,-0.998,-0.998,-0.999,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.998,-0.998,-0.997,-0.996,-0.996,-0.995,-0.994,-0.993,-0.992,-0.991,-0.989,-0.988,-0.987,-0.986,-0.984,-0.983,-0.981,-0.979,-0.978,-0.976,-0.974,-0.972,-0.97,-0.968,-0.966,-0.964,-0.962,-0.96,-0.957,-0.955,-0.953,-0.95,-0.948,-0.945,-0.942,-0.94,-0.937,-0.934,-0.931,-0.928,-0.925,-0.922,-0.919,-0.916,-0.913,-0.91,-0.907,-0.903,-0.9,-0.897,-0.893,-0.89,-0.886,-0.883,-0.879,-0.875,-0.872,-0.868,-0.864,-0.86,-0.857,-0.853,-0.849,-0.845,-0.841,-0.837,-0.833,-0.828,-0.824,-0.82,-0.816,-0.812,-0.807,-0.803,-0.799,-0.794,-0.79,-0.785,-0.781,-0.776,-0.772,-0.767,-0.763,-0.758,-0.753,-0.749,-0.744,-0.739,-0.734,-0.73,-0.725,-0.72,-0.715,-0.71,-0.705,-0.7,-0.695,-0.69,-0.685,-0.681,-0.675,-0.67,-0.665,-0.66,-0.655,-0.65,-0.645,-0.64,-0.635,-0.629,-0.624,-0.619,-0.614,-0.609,-0.603,-0.598,-0.593,-0.588,-0.582,-0.577,-0.572,-0.567,-0.561,-0.556,-0.551,-0.545,-0.54,-0.535,-0.529,-0.524,-0.519,-0.513,-0.508,-0.503,-0.497,-0.492,-0.487,-0.481,-0.476,-0.471,-0.465,-0.46,-0.455,-0.449,-0.444,-0.439,-0.433,-0.428,-0.423,-0.418,-0.412,-0.407,-0.402,-0.397,-0.391,-0.386,-0.381,-0.376,-0.371,-0.365,-0.36,-0.355,-0.35,-0.345,-0.34,-0.335,-0.33,-0.325,-0.319,-0.315,-0.31,-0.305,-0.3,-0.295,-0.29,-0.285,-0.28,-0.275,-0.27,-0.266,-0.261,-0.256,-0.251,-0.247,-0.242,-0.237,-0.233,-0.228,-0.224,-0.219,-0.215,-0.21,-0.206,-0.201,-0.197,-0.193,-0.188,-0.184,-0.18,-0.176,-0.172,-0.167,-0.163,-0.159,-0.155,-0.151,-0.147,-0.143,-0.14,-0.136,-0.132,-0.128,-0.125,-0.121,-0.117,-0.114,-0.11,-0.107,-0.103,-0.1,-0.097,-0.093,-0.09,-0.087,-0.084,-0.081,-0.078,-0.075,-0.072,-0.069,-0.066,-0.063,-0.06,-0.058,-0.055,-0.052,-0.05,-0.047,-0.045,-0.043,-0.04,-0.038,-0.036,-0.034,-0.032,-0.03,-0.028,-0.026,-0.024,-0.022,-0.021,-0.019,-0.017,-0.016,-0.014,-0.013,-0.012,-0.011,-0.009,-0.008,-0.007,-0.006,-0.005,-0.004,-0.004,-0.003,-0.002,-0.002,-0.001,-0.001,-0.001,-0,-0,-0,0,-0,-0,-0,-0,-0.001,-0.001,-0.002,-0.003,-0.003,-0.005,-0.006,-0.008,-0.01,-0.012,-0.015,-0.018,-0.021,-0.025,-0.029,-0.033,-0.038,-0.044,-0.05,-0.056,-0.063,-0.071,-0.079,-0.088,-0.098,-0.108,-0.119,-0.13,-0.142,-0.155,-0.169,-0.184,-0.199,-0.215,-0.232,-0.25,-0.269,-0.289,-0.309,-0.331,-0.354,-0.377,-0.402,-0.428,-0.454,-0.482,-0.511,-0.542,-0.573,-0.605,-0.639,-0.674,-0.71,-0.747,-0.786,-0.826,-0.868,-0.91,-0.954,-1,-1.046,-1.093,-1.141,-1.189,-1.237,-1.285,-1.334,-1.384,-1.433,-1.483,-1.533,-1.583,-1.634,-1.684,-1.735,-1.785,-1.836,-1.887,-1.938,-1.989,-2.039,-2.09,-2.141,-2.192,-2.242,-2.292,-2.342,-2.392,-2.442,-2.491,-2.54,-2.588,-2.637,-2.685,-2.732,-2.779,-2.825,-2.872,-2.917,-2.962,-3.006,-3.05,-3.094,-3.136,-3.178,-3.219,-3.259,-3.299,-3.338,-3.376,-3.413,-3.449,-3.485,-3.519,-3.552,-3.585,-3.616,-3.647,-3.676,-3.705,-3.732,-3.758,-3.783,-3.806,-3.829,-3.85,-3.87,-3.889,-3.906,-3.922,-3.936,-3.949,-3.961,-3.971,-3.98,-3.987,-3.993,-3.997,-3.999,-4\nBODY_STRETCH=0,0,0.002,0.004,0.007,0.011,0.016,0.021,0.028,0.035,0.043,0.051,0.061,0.071,0.082,0.093,0.105,0.118,0.132,0.146,0.16,0.176,0.192,0.208,0.225,0.242,0.26,0.279,0.298,0.317,0.337,0.358,0.379,0.4,0.421,0.443,0.465,0.488,0.511,0.534,0.558,0.581,0.605,0.63,0.654,0.679,0.704,0.729,0.754,0.78,0.806,0.831,0.857,0.883,0.909,0.935,0.961,0.987,1.013,1.039,1.065,1.091,1.117,1.143,1.169,1.194,1.22,1.246,1.271,1.296,1.321,1.346,1.37,1.395,1.419,1.442,1.466,1.489,1.512,1.535,1.557,1.579,1.6,1.621,1.642,1.663,1.683,1.702,1.721,1.74,1.758,1.775,1.792,1.808,1.824,1.84,1.854,1.868,1.882,1.895,1.907,1.918,1.929,1.939,1.949,1.957,1.965,1.972,1.979,1.984,1.989,1.993,1.996,1.998,2,2,2,1.999,1.997,1.995,1.992,1.989,1.985,1.981,1.976,1.97,1.964,1.957,1.95,1.942,1.934,1.925,1.916,1.906,1.896,1.885,1.873,1.861,1.849,1.836,1.823,1.809,1.795,1.781,1.765,1.75,1.734,1.718,1.701,1.684,1.666,1.648,1.63,1.611,1.592,1.572,1.552,1.532,1.512,1.49,1.469,1.447,1.426,1.403,1.38,1.358,1.334,1.311,1.287,1.263,1.239,1.214,1.189,1.164,1.139,1.113,1.087,1.061,1.034,1.008,0.981,0.954,0.927,0.899,0.872,0.844,0.816,0.788,0.759,0.731,0.702,0.674,0.644,0.615,0.586,0.557,0.528,0.498,0.468,0.438,0.408,0.379,0.349,0.319,0.288,0.258,0.228,0.197,0.168,0.137,0.107,0.076,0.045,0.015,-0.015,-0.045,-0.076,-0.107,-0.137,-0.168,-0.197,-0.228,-0.258,-0.288,-0.319,-0.349,-0.379,-0.408,-0.438,-0.468,-0.498,-0.528,-0.557,-0.586,-0.615,-0.644,-0.674,-0.702,-0.731,-0.759,-0.788,-0.816,-0.844,-0.872,-0.899,-0.927,-0.954,-0.981,-1.008,-1.034,-1.061,-1.087,-1.113,-1.139,-1.164,-1.189,-1.214,-1.239,-1.263,-1.287,-1.311,-1.334,-1.358,-1.38,-1.403,-1.426,-1.447,-1.469,-1.49,-1.512,-1.532,-1.552,-1.572,-1.592,-1.611,-1.63,-1.648,-1.666,-1.684,-1.701,-1.718,-1.734,-1.75,-1.765,-1.781,-1.795,-1.809,-1.823,-1.836,-1.849,-1.861,-1.873,-1.885,-1.896,-1.906,-1.916,-1.925,-1.934,-1.942,-1.95,-1.957,-1.964,-1.97,-1.976,-1.981,-1.985,-1.989,-1.992,-1.995,-1.997,-1.999,-2,-2,-2,-1.999,-1.998,-1.996,-1.994,-1.991,-1.988,-1.984,-1.98,-1.976,-1.971,-1.965,-1.959,-1.953,-1.946,-1.939,-1.931,-1.923,-1.915,-1.906,-1.897,-1.887,-1.877,-1.866,-1.856,-1.844,-1.833,-1.821,-1.808,-1.795,-1.782,-1.769,-1.755,-1.741,-1.726,-1.711,-1.696,-1.68,-1.665,-1.649,-1.632,-1.615,-1.598,-1.58,-1.563,-1.545,-1.526,-1.508,-1.489,-1.47,-1.45,-1.431,-1.411,-1.39,-1.37,-1.349,-1.328,-1.307,-1.285,-1.264,-1.242,-1.22,-1.197,-1.175,-1.152,-1.129,-1.106,-1.082,-1.059,-1.035,-1.011,-0.987,-0.963,-0.939,-0.914,-0.889,-0.864,-0.839,-0.814,-0.789,-0.763,-0.738,-0.712,-0.686,-0.66,-0.634,-0.608,-0.581,-0.555,-0.529,-0.502,-0.475,-0.448,-0.422,-0.395,-0.368,-0.341,-0.314,-0.287,-0.259,-0.232,-0.205,-0.178,-0.151,-0.123,-0.096,-0.068,-0.041,-0.014,0.014,0.041,0.068,0.096,0.123,0.151,0.178,0.205,0.232,0.259,0.287,0.314,0.341,0.368,0.395,0.422,0.448,0.475,0.502,0.529,0.555,0.581,0.608,0.634,0.66,0.686,0.712,0.738,0.763,0.789,0.814,0.839,0.864,0.889,0.914,0.939,0.963,0.987,1.011,1.035,1.059,1.082,1.106,1.129,1.152,1.175,1.197,1.22,1.242,1.264,1.285,1.307,1.328,1.349,1.37,1.39,1.411,1.431,1.45,1.47,1.489,1.508,1.526,1.545,1.563,1.58,1.598,1.615,1.632,1.649,1.665,1.68,1.696,1.711,1.726,1.741,1.755,1.769,1.782,1.795,1.808,1.821,1.833,1.844,1.856,1.866,1.877,1.887,1.897,1.906,1.915,1.923,1.931,1.939,1.946,1.953,1.959,1.965,1.971,1.976,1.98,1.984,1.988,1.991,1.994,1.996,1.998,1.999,2,2,2,1.999,1.998,1.996,1.993,1.99,1.987,1.983,1.978,1.973,1.968,1.962,1.955,1.948,1.941,1.933,1.925,1.916,1.907,1.898,1.888,1.878,1.867,1.856,1.844,1.832,1.82,1.808,1.795,1.781,1.768,1.754,1.74,1.725,1.71,1.695,1.68,1.664,1.648,1.632,1.616,1.599,1.582,1.564,1.547,1.53,1.512,1.494,1.476,1.457,1.438,1.42,1.401,1.382,1.362,1.343,1.324,1.304,1.284,1.264,1.244,1.224,1.204,1.184,1.164,1.143,1.123,1.102,1.082,1.061,1.041,1.021,1,0.979,0.959,0.939,0.918,0.898,0.877,0.857,0.836,0.816,0.796,0.776,0.756,0.736,0.716,0.696,0.676,0.657,0.638,0.618,0.599,0.58,0.562,0.543,0.524,0.506,0.488,0.47,0.453,0.436,0.418,0.401,0.384,0.368,0.352,0.336,0.32,0.305,0.29,0.275,0.26,0.246,0.232,0.219,0.205,0.192,0.18,0.168,0.156,0.144,0.133,0.122,0.112,0.102,0.093,0.084,0.075,0.067,0.059,0.052,0.045,0.038,0.032,0.027,0.022,0.017,0.013,0.01,0.007,0.004,0.002,0.001,0,0\nPARAM_BREATH=0,0,0.002,0.004,0.007,0.011,0.015,0.021,0.027,0.034,0.041,0.049,0.058,0.067,0.077,0.088,0.099,0.111,0.123,0.136,0.149,0.163,0.177,0.192,0.207,0.222,0.238,0.254,0.27,0.287,0.304,0.321,0.338,0.355,0.373,0.391,0.409,0.427,0.445,0.463,0.482,0.5,0.518,0.537,0.555,0.573,0.591,0.609,0.627,0.645,0.662,0.679,0.696,0.713,0.73,0.746,0.762,0.778,0.793,0.808,0.823,0.837,0.851,0.864,0.877,0.889,0.901,0.912,0.923,0.933,0.942,0.951,0.959,0.966,0.973,0.979,0.985,0.989,0.993,0.996,0.998,1,1,1,0.999,0.997,0.995,0.993,0.989,0.986,0.982,0.977,0.972,0.966,0.96,0.953,0.946,0.938,0.931,0.922,0.914,0.905,0.895,0.885,0.875,0.865,0.854,0.843,0.832,0.82,0.808,0.796,0.784,0.771,0.758,0.745,0.732,0.719,0.705,0.692,0.678,0.664,0.65,0.636,0.622,0.607,0.593,0.579,0.564,0.55,0.536,0.521,0.507,0.493,0.478,0.464,0.45,0.436,0.422,0.408,0.395,0.381,0.368,0.355,0.342,0.329,0.316,0.304,0.292,0.28,0.268,0.257,0.246,0.235,0.225,0.215,0.205,0.195,0.186,0.178,0.169,0.162,0.154,0.147,0.14,0.134,0.128,0.123,0.118,0.114,0.111,0.107,0.105,0.103,0.101,0.1,0.1,0.1,0.101,0.103,0.105,0.107,0.111,0.114,0.118,0.123,0.128,0.134,0.14,0.147,0.154,0.162,0.169,0.178,0.186,0.195,0.205,0.215,0.225,0.235,0.246,0.257,0.268,0.28,0.292,0.304,0.316,0.329,0.342,0.355,0.368,0.381,0.395,0.408,0.422,0.436,0.45,0.464,0.478,0.493,0.507,0.521,0.536,0.55,0.564,0.579,0.593,0.607,0.622,0.636,0.65,0.664,0.678,0.692,0.705,0.719,0.732,0.745,0.758,0.771,0.784,0.796,0.808,0.82,0.832,0.843,0.854,0.865,0.875,0.885,0.895,0.905,0.914,0.922,0.931,0.938,0.946,0.953,0.96,0.966,0.972,0.977,0.982,0.986,0.989,0.993,0.995,0.997,0.999,1,1,1,0.998,0.996,0.993,0.99,0.985,0.98,0.975,0.968,0.961,0.953,0.945,0.936,0.926,0.916,0.905,0.894,0.882,0.87,0.857,0.844,0.83,0.816,0.802,0.787,0.772,0.756,0.741,0.725,0.708,0.692,0.675,0.658,0.641,0.624,0.607,0.589,0.571,0.553,0.536,0.518,0.5,0.482,0.464,0.447,0.429,0.411,0.393,0.376,0.359,0.342,0.325,0.308,0.292,0.275,0.259,0.244,0.228,0.213,0.198,0.184,0.17,0.156,0.143,0.13,0.118,0.106,0.095,0.084,0.074,0.064,0.055,0.047,0.039,0.032,0.025,0.02,0.015,0.01,0.007,0.004,0.002,0,0,0,0.002,0.003,0.006,0.009,0.013,0.018,0.023,0.029,0.035,0.042,0.05,0.058,0.067,0.076,0.085,0.096,0.106,0.117,0.129,0.141,0.153,0.166,0.178,0.192,0.205,0.219,0.233,0.248,0.262,0.277,0.292,0.308,0.323,0.339,0.354,0.37,0.386,0.402,0.418,0.434,0.45,0.466,0.482,0.498,0.514,0.53,0.546,0.561,0.577,0.592,0.608,0.623,0.638,0.652,0.667,0.681,0.695,0.708,0.722,0.734,0.747,0.759,0.771,0.783,0.794,0.804,0.815,0.824,0.833,0.842,0.85,0.858,0.865,0.871,0.877,0.882,0.887,0.891,0.894,0.897,0.898,0.9,0.9,0.9,0.899,0.897,0.895,0.893,0.89,0.886,0.882,0.877,0.872,0.867,0.861,0.854,0.847,0.84,0.832,0.824,0.815,0.806,0.797,0.787,0.778,0.767,0.757,0.746,0.735,0.723,0.712,0.7,0.687,0.675,0.662,0.65,0.637,0.624,0.61,0.597,0.583,0.57,0.556,0.542,0.528,0.514,0.5,0.486,0.471,0.457,0.443,0.429,0.414,0.4,0.386,0.372,0.358,0.344,0.33,0.317,0.303,0.29,0.276,0.263,0.25,0.238,0.225,0.213,0.2,0.188,0.177,0.165,0.154,0.143,0.133,0.122,0.113,0.103,0.094,0.085,0.076,0.068,0.06,0.053,0.046,0.039,0.033,0.028,0.023,0.018,0.014,0.01,0.007,0.005,0.003,0.001,0,0,0,0.002,0.004,0.007,0.011,0.015,0.021,0.027,0.034,0.041,0.049,0.058,0.067,0.077,0.088,0.099,0.111,0.123,0.136,0.149,0.163,0.177,0.192,0.207,0.222,0.238,0.254,0.27,0.287,0.304,0.321,0.338,0.355,0.373,0.391,0.409,0.427,0.445,0.463,0.482,0.5,0.518,0.537,0.555,0.573,0.591,0.609,0.627,0.645,0.662,0.679,0.696,0.713,0.73,0.746,0.762,0.778,0.793,0.808,0.823,0.837,0.851,0.864,0.877,0.889,0.901,0.912,0.923,0.933,0.942,0.951,0.959,0.966,0.973,0.979,0.985,0.989,0.993,0.996,0.998,1,1,0.999,0.997,0.993,0.988,0.982,0.974,0.965,0.954,0.943,0.93,0.917,0.902,0.887,0.87,0.853,0.835,0.816,0.796,0.776,0.755,0.733,0.711,0.689,0.666,0.643,0.62,0.596,0.572,0.548,0.524,0.5,0.476,0.452,0.428,0.404,0.38,0.357,0.334,0.311,0.289,0.267,0.245,0.224,0.204,0.184,0.165,0.147,0.13,0.113,0.098,0.083,0.07,0.057,0.046,0.035,0.026,0.018,0.012,0.007,0.003,0.001,0\nCHAR_POS_X=0\nFLAG2=1\nARM_LEFT=1\nARM_RIGHT=1\nARM_2_LEFT=0\nARM_2_RIGHT=0\nARM_3_LEFT=0\nARM_3_RIGHT=0\nSTAR_EYE=0\nPARAM_EYE_L_OPEN=0\nPARAM_EYE_R_OPEN=0\nPARAM_EYE_L_SMILE=0\nPARAM_EYE_R_SMILE=0\nPARAM_EYE_BALL_X=0,0,0.002,0.004,0.006,0.01,0.013,0.018,0.023,0.028,0.033,0.039,0.044,0.05,0.056,0.061,0.067,0.072,0.077,0.082,0.087,0.09,0.094,0.096,0.098,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.099,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.098,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.097,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.096,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.095,0.094,0.094,0.094,0.094,0.094,0.094,0.094,0.094,0.093,0.093,0.093,0.093,0.093,0.093,0.093,0.092,0.092,0.092,0.092,0.092,0.092,0.092,0.091,0.091,0.091,0.091,0.091,0.091,0.091,0.09,0.09,0.09,0.09,0.09,0.09,0.089,0.089,0.089,0.089,0.089,0.089,0.088,0.088,0.088,0.088,0.088,0.088,0.087,0.087,0.087,0.087,0.087,0.087,0.086,0.086,0.086,0.086,0.086,0.086,0.085,0.085,0.085,0.085,0.085,0.084,0.084,0.084,0.084,0.084,0.083,0.083,0.083,0.083,0.083,0.083,0.082,0.082,0.082,0.082,0.082,0.081,0.081,0.081,0.081,0.081,0.08,0.08,0.08,0.08,0.08,0.079,0.079,0.079,0.079,0.079,0.078,0.078,0.078,0.078,0.077,0.077,0.077,0.077,0.077,0.076,0.076,0.076,0.076,0.076,0.075,0.075,0.075,0.075,0.074,0.074,0.074,0.074,0.074,0.073,0.073,0.073,0.073,0.072,0.072,0.072,0.072,0.072,0.071,0.071,0.071,0.071,0.07,0.07,0.07,0.07,0.069,0.069,0.069,0.069,0.069,0.068,0.068,0.068,0.068,0.067,0.067,0.067,0.067,0.066,0.066,0.066,0.066,0.066,0.065,0.065,0.065,0.065,0.064,0.064,0.064,0.064,0.063,0.063,0.063,0.063,0.062,0.062,0.062,0.062,0.061,0.061,0.061,0.061,0.06,0.06,0.06,0.06,0.059,0.059,0.059,0.059,0.059,0.058,0.058,0.058,0.058,0.057,0.057,0.057,0.057,0.056,0.056,0.056,0.056,0.055,0.055,0.055,0.055,0.054,0.054,0.054,0.054,0.053,0.053,0.053,0.053,0.052,0.052,0.052,0.052,0.051,0.051,0.051,0.051,0.05,0.05,0.05,0.05,0.049,0.049,0.049,0.049,0.048,0.048,0.048,0.048,0.047,0.047,0.047,0.047,0.046,0.046,0.046,0.046,0.045,0.045,0.045,0.045,0.044,0.044,0.044,0.044,0.043,0.043,0.043,0.043,0.042,0.042,0.042,0.042,0.041,0.041,0.041,0.041,0.041,0.04,0.04,0.04,0.04,0.039,0.039,0.039,0.039,0.038,0.038,0.038,0.038,0.037,0.037,0.037,0.037,0.036,0.036,0.036,0.036,0.035,0.035,0.035,0.035,0.034,0.034,0.034,0.034,0.034,0.033,0.033,0.033,0.033,0.032,0.032,0.032,0.032,0.031,0.031,0.031,0.031,0.031,0.03,0.03,0.03,0.03,0.029,0.029,0.029,0.029,0.028,0.028,0.028,0.028,0.028,0.027,0.027,0.027,0.027,0.026,0.026,0.026,0.026,0.026,0.025,0.025,0.025,0.025,0.024,0.024,0.024,0.024,0.024,0.023,0.023,0.023,0.023,0.023,0.022,0.022,0.022,0.022,0.021,0.021,0.021,0.021,0.021,0.02,0.02,0.02,0.02,0.02,0.019,0.019,0.019,0.019,0.019,0.018,0.018,0.018,0.018,0.018,0.017,0.017,0.017,0.017,0.017,0.017,0.016,0.016,0.016,0.016,0.016,0.015,0.015,0.015,0.015,0.015,0.014,0.014,0.014,0.014,0.014,0.014,0.013,0.013,0.013,0.013,0.013,0.013,0.012,0.012,0.012,0.012,0.012,0.012,0.011,0.011,0.011,0.011,0.011,0.011,0.01,0.01,0.01,0.01,0.01,0.01,0.009,0.009,0.009,0.009,0.009,0.009,0.009,0.008,0.008,0.008,0.008,0.008,0.008,0.008,0.007,0.007,0.007,0.007,0.007,0.007,0.007,0.006,0.006,0.006,0.006,0.006,0.006,0.006,0.006,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.005,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.004,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_EYE_BALL_Y=0,0.004,0.017,0.037,0.064,0.097,0.135,0.179,0.226,0.277,0.33,0.385,0.443,0.5,0.557,0.615,0.67,0.723,0.774,0.821,0.865,0.903,0.936,0.963,0.983,0.996,1,1,1,1,1,1,1,1,0.999,0.999,0.999,0.999,0.999,0.999,0.998,0.998,0.998,0.998,0.997,0.997,0.997,0.996,0.996,0.996,0.995,0.995,0.995,0.994,0.994,0.993,0.993,0.992,0.992,0.991,0.991,0.99,0.99,0.989,0.989,0.988,0.987,0.987,0.986,0.986,0.985,0.984,0.984,0.983,0.982,0.981,0.981,0.98,0.979,0.978,0.978,0.977,0.976,0.975,0.974,0.973,0.972,0.972,0.971,0.97,0.969,0.968,0.967,0.966,0.965,0.964,0.963,0.962,0.961,0.96,0.959,0.958,0.957,0.956,0.954,0.953,0.952,0.951,0.95,0.949,0.948,0.946,0.945,0.944,0.943,0.941,0.94,0.939,0.938,0.936,0.935,0.934,0.932,0.931,0.93,0.928,0.927,0.926,0.924,0.923,0.922,0.92,0.919,0.917,0.916,0.914,0.913,0.911,0.91,0.908,0.907,0.905,0.904,0.902,0.901,0.899,0.898,0.896,0.894,0.893,0.891,0.89,0.888,0.886,0.885,0.883,0.881,0.88,0.878,0.876,0.875,0.873,0.871,0.869,0.868,0.866,0.864,0.862,0.861,0.859,0.857,0.855,0.853,0.852,0.85,0.848,0.846,0.844,0.842,0.84,0.839,0.837,0.835,0.833,0.831,0.829,0.827,0.825,0.823,0.821,0.819,0.817,0.815,0.813,0.812,0.81,0.807,0.805,0.803,0.801,0.799,0.797,0.795,0.793,0.791,0.789,0.787,0.785,0.783,0.781,0.779,0.777,0.775,0.772,0.77,0.768,0.766,0.764,0.762,0.76,0.757,0.755,0.753,0.751,0.749,0.747,0.744,0.742,0.74,0.738,0.736,0.733,0.731,0.729,0.727,0.724,0.722,0.72,0.718,0.715,0.713,0.711,0.709,0.706,0.704,0.702,0.699,0.697,0.695,0.693,0.69,0.688,0.686,0.683,0.681,0.679,0.676,0.674,0.672,0.669,0.667,0.665,0.662,0.66,0.657,0.655,0.653,0.65,0.648,0.646,0.643,0.641,0.638,0.636,0.634,0.631,0.629,0.626,0.624,0.622,0.619,0.617,0.614,0.612,0.61,0.607,0.605,0.602,0.6,0.597,0.595,0.592,0.59,0.588,0.585,0.583,0.58,0.578,0.575,0.573,0.57,0.568,0.566,0.563,0.561,0.558,0.556,0.553,0.551,0.548,0.546,0.543,0.541,0.538,0.536,0.533,0.531,0.529,0.526,0.524,0.521,0.519,0.516,0.514,0.511,0.509,0.506,0.504,0.501,0.499,0.496,0.494,0.491,0.489,0.486,0.484,0.481,0.479,0.476,0.474,0.471,0.469,0.467,0.464,0.462,0.459,0.457,0.454,0.452,0.449,0.447,0.444,0.442,0.439,0.437,0.434,0.432,0.43,0.427,0.425,0.422,0.42,0.417,0.415,0.412,0.41,0.408,0.405,0.403,0.4,0.398,0.395,0.393,0.39,0.388,0.386,0.383,0.381,0.378,0.376,0.374,0.371,0.369,0.366,0.364,0.362,0.359,0.357,0.354,0.352,0.35,0.347,0.345,0.343,0.34,0.338,0.335,0.333,0.331,0.328,0.326,0.324,0.321,0.319,0.317,0.314,0.312,0.31,0.307,0.305,0.303,0.301,0.298,0.296,0.294,0.291,0.289,0.287,0.285,0.282,0.28,0.278,0.276,0.273,0.271,0.269,0.267,0.264,0.262,0.26,0.258,0.256,0.253,0.251,0.249,0.247,0.245,0.243,0.24,0.238,0.236,0.234,0.232,0.23,0.228,0.225,0.223,0.221,0.219,0.217,0.215,0.213,0.211,0.209,0.207,0.205,0.203,0.201,0.199,0.197,0.195,0.193,0.19,0.188,0.187,0.185,0.183,0.181,0.179,0.177,0.175,0.173,0.171,0.169,0.167,0.165,0.163,0.161,0.16,0.158,0.156,0.154,0.152,0.15,0.148,0.147,0.145,0.143,0.141,0.139,0.138,0.136,0.134,0.132,0.131,0.129,0.127,0.125,0.124,0.122,0.12,0.119,0.117,0.115,0.114,0.112,0.11,0.109,0.107,0.106,0.104,0.102,0.101,0.099,0.098,0.096,0.095,0.093,0.092,0.09,0.089,0.087,0.086,0.084,0.083,0.081,0.08,0.078,0.077,0.076,0.074,0.073,0.072,0.07,0.069,0.068,0.066,0.065,0.064,0.062,0.061,0.06,0.059,0.057,0.056,0.055,0.054,0.052,0.051,0.05,0.049,0.048,0.047,0.046,0.044,0.043,0.042,0.041,0.04,0.039,0.038,0.037,0.036,0.035,0.034,0.033,0.032,0.031,0.03,0.029,0.028,0.028,0.027,0.026,0.025,0.024,0.023,0.022,0.022,0.021,0.02,0.019,0.019,0.018,0.017,0.016,0.016,0.015,0.014,0.014,0.013,0.013,0.012,0.011,0.011,0.01,0.01,0.009,0.009,0.008,0.008,0.007,0.007,0.006,0.006,0.005,0.005,0.005,0.004,0.004,0.004,0.003,0.003,0.003,0.002,0.002,0.002,0.002,0.001,0.001,0.001,0.001,0.001,0.001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nPARAM_MOUTH_FORM=-1,-1,-0.999,-0.999,-0.998,-0.997,-0.995,-0.994,-0.992,-0.99,-0.987,-0.985,-0.982,-0.979,-0.976,-0.973,-0.97,-0.966,-0.962,-0.958,-0.954,-0.95,-0.946,-0.941,-0.937,-0.932,-0.927,-0.922,-0.917,-0.912,-0.907,-0.902,-0.897,-0.891,-0.886,-0.88,-0.875,-0.869,-0.864,-0.858,-0.853,-0.847,-0.842,-0.836,-0.831,-0.825,-0.82,-0.814,-0.809,-0.803,-0.798,-0.793,-0.788,-0.783,-0.778,-0.773,-0.768,-0.763,-0.759,-0.754,-0.75,-0.746,-0.742,-0.738,-0.734,-0.73,-0.727,-0.724,-0.721,-0.718,-0.715,-0.713,-0.71,-0.708,-0.706,-0.705,-0.703,-0.702,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.701,-0.701,-0.702,-0.703,-0.704,-0.706,-0.707,-0.709,-0.711,-0.713,-0.715,-0.717,-0.719,-0.722,-0.724,-0.727,-0.73,-0.733,-0.736,-0.739,-0.743,-0.746,-0.75,-0.753,-0.757,-0.761,-0.764,-0.768,-0.772,-0.776,-0.781,-0.785,-0.789,-0.793,-0.798,-0.802,-0.807,-0.811,-0.815,-0.82,-0.825,-0.829,-0.834,-0.838,-0.843,-0.848,-0.852,-0.857,-0.862,-0.866,-0.871,-0.875,-0.88,-0.885,-0.889,-0.893,-0.898,-0.902,-0.907,-0.911,-0.915,-0.919,-0.924,-0.928,-0.932,-0.936,-0.939,-0.943,-0.947,-0.95,-0.954,-0.957,-0.961,-0.964,-0.967,-0.97,-0.973,-0.976,-0.978,-0.981,-0.983,-0.985,-0.987,-0.989,-0.991,-0.993,-0.994,-0.996,-0.997,-0.998,-0.999,-0.999,-1,-1,-1,-1,-0.999,-0.998,-0.996,-0.994,-0.991,-0.988,-0.985,-0.981,-0.977,-0.972,-0.967,-0.962,-0.956,-0.95,-0.944,-0.937,-0.93,-0.923,-0.915,-0.907,-0.899,-0.891,-0.882,-0.873,-0.864,-0.855,-0.845,-0.835,-0.825,-0.815,-0.805,-0.794,-0.784,-0.773,-0.762,-0.751,-0.74,-0.729,-0.718,-0.707,-0.696,-0.684,-0.673,-0.661,-0.65,-0.639,-0.627,-0.616,-0.604,-0.593,-0.582,-0.571,-0.56,-0.549,-0.538,-0.527,-0.516,-0.506,-0.495,-0.485,-0.475,-0.465,-0.455,-0.445,-0.436,-0.427,-0.418,-0.409,-0.401,-0.393,-0.385,-0.377,-0.37,-0.363,-0.356,-0.35,-0.344,-0.338,-0.333,-0.328,-0.323,-0.319,-0.315,-0.312,-0.309,-0.306,-0.304,-0.302,-0.301,-0.3,-0.3,-0.3,-0.301,-0.303,-0.305,-0.308,-0.311,-0.315,-0.319,-0.324,-0.329,-0.335,-0.342,-0.348,-0.356,-0.363,-0.371,-0.38,-0.388,-0.398,-0.407,-0.417,-0.427,-0.437,-0.448,-0.459,-0.47,-0.481,-0.493,-0.505,-0.517,-0.529,-0.541,-0.554,-0.566,-0.579,-0.592,-0.605,-0.618,-0.631,-0.644,-0.656,-0.669,-0.682,-0.695,-0.708,-0.721,-0.734,-0.746,-0.759,-0.771,-0.783,-0.795,-0.807,-0.819,-0.83,-0.841,-0.852,-0.863,-0.873,-0.883,-0.893,-0.902,-0.912,-0.92,-0.929,-0.937,-0.944,-0.952,-0.958,-0.965,-0.971,-0.976,-0.981,-0.985,-0.989,-0.992,-0.995,-0.997,-0.999,-1,-1,-1,-0.999,-0.999,-0.998,-0.996,-0.995,-0.993,-0.991,-0.989,-0.986,-0.984,-0.981,-0.977,-0.974,-0.97,-0.967,-0.963,-0.958,-0.954,-0.95,-0.945,-0.94,-0.935,-0.93,-0.925,-0.919,-0.914,-0.908,-0.902,-0.896,-0.89,-0.884,-0.878,-0.872,-0.866,-0.859,-0.853,-0.846,-0.84,-0.833,-0.827,-0.82,-0.813,-0.807,-0.8,-0.793,-0.787,-0.78,-0.773,-0.767,-0.76,-0.754,-0.747,-0.741,-0.734,-0.728,-0.722,-0.716,-0.71,-0.704,-0.698,-0.692,-0.686,-0.681,-0.675,-0.67,-0.665,-0.66,-0.655,-0.65,-0.646,-0.642,-0.637,-0.633,-0.63,-0.626,-0.623,-0.619,-0.616,-0.614,-0.611,-0.609,-0.607,-0.605,-0.604,-0.602,-0.601,-0.601,-0.6,-0.6,-0.6,-0.6,-0.601,-0.601,-0.602,-0.603,-0.604,-0.605,-0.607,-0.608,-0.61,-0.612,-0.614,-0.616,-0.618,-0.62,-0.623,-0.625,-0.628,-0.631,-0.633,-0.636,-0.639,-0.642,-0.645,-0.649,-0.652,-0.655,-0.659,-0.662,-0.665,-0.669,-0.673,-0.676,-0.68,-0.683,-0.687,-0.691,-0.694,-0.698,-0.702,-0.706,-0.709,-0.713,-0.717,-0.72,-0.724,-0.727,-0.731,-0.735,-0.738,-0.741,-0.745,-0.748,-0.751,-0.755,-0.758,-0.761,-0.764,-0.767,-0.769,-0.772,-0.775,-0.777,-0.78,-0.782,-0.784,-0.786,-0.788,-0.79,-0.792,-0.793,-0.795,-0.796,-0.797,-0.798,-0.799,-0.799,-0.8,-0.8,-0.8,-0.8,-0.799,-0.798,-0.797,-0.796,-0.794,-0.792,-0.79,-0.787,-0.784,-0.781,-0.777,-0.773,-0.769,-0.765,-0.761,-0.756,-0.751,-0.746,-0.741,-0.735,-0.729,-0.723,-0.717,-0.711,-0.705,-0.698,-0.691,-0.685,-0.678,-0.67,-0.663,-0.656,-0.648,-0.641,-0.633,-0.625,-0.618,-0.61,-0.602,-0.594,-0.586,-0.578,-0.57,-0.562,-0.554,-0.546,-0.538,-0.53,-0.522,-0.514,-0.506,-0.498,-0.49,-0.482,-0.475,-0.467,-0.459,-0.452,-0.444,-0.437,-0.43,-0.422,-0.415,-0.409,-0.402,-0.395,-0.389,-0.383,-0.377,-0.371,-0.365,-0.359,-0.354,-0.349,-0.344,-0.339,-0.335,-0.331,-0.327,-0.323,-0.319,-0.316,-0.313,-0.31,-0.308,-0.306,-0.304,-0.303,-0.302,-0.301,-0.3,-0.3,-0.301,-0.302,-0.305,-0.308,-0.313,-0.318,-0.325,-0.332,-0.34,-0.349,-0.358,-0.369,-0.379,-0.391,-0.403,-0.416,-0.429,-0.443,-0.457,-0.471,-0.487,-0.502,-0.518,-0.534,-0.55,-0.566,-0.583,-0.599,-0.616,-0.633,-0.65,-0.667,-0.684,-0.701,-0.717,-0.734,-0.75,-0.766,-0.782,-0.798,-0.813,-0.829,-0.843,-0.857,-0.871,-0.884,-0.897,-0.909,-0.921,-0.931,-0.942,-0.951,-0.96,-0.968,-0.975,-0.982,-0.987,-0.992,-0.995,-0.998,-0.999,-1\nPARAM_MOUTH_OPEN_Y=0.2,0.2,0.201,0.201,0.202,0.203,0.205,0.206,0.208,0.21,0.213,0.215,0.218,0.221,0.224,0.227,0.23,0.234,0.238,0.242,0.246,0.25,0.254,0.259,0.263,0.268,0.273,0.278,0.283,0.288,0.293,0.298,0.303,0.309,0.314,0.32,0.325,0.331,0.336,0.342,0.347,0.353,0.358,0.364,0.369,0.375,0.38,0.386,0.391,0.397,0.402,0.407,0.412,0.417,0.422,0.427,0.432,0.437,0.441,0.446,0.45,0.454,0.458,0.462,0.466,0.47,0.473,0.476,0.479,0.482,0.485,0.487,0.49,0.492,0.494,0.495,0.497,0.498,0.499,0.499,0.5,0.5,0.5,0.499,0.499,0.498,0.496,0.495,0.493,0.49,0.488,0.485,0.482,0.479,0.475,0.472,0.468,0.464,0.459,0.455,0.45,0.445,0.44,0.435,0.429,0.423,0.417,0.411,0.405,0.399,0.393,0.386,0.379,0.373,0.366,0.359,0.352,0.345,0.337,0.33,0.322,0.315,0.308,0.3,0.292,0.285,0.277,0.269,0.262,0.254,0.246,0.238,0.231,0.223,0.215,0.208,0.2,0.192,0.185,0.178,0.17,0.163,0.155,0.148,0.141,0.134,0.127,0.121,0.114,0.107,0.101,0.095,0.089,0.083,0.077,0.071,0.065,0.06,0.055,0.05,0.045,0.041,0.036,0.032,0.028,0.025,0.021,0.018,0.015,0.012,0.01,0.007,0.005,0.004,0.002,0.001,0.001,0,0,0,0.001,0.002,0.003,0.004,0.006,0.008,0.011,0.013,0.016,0.02,0.023,0.027,0.031,0.036,0.04,0.045,0.05,0.055,0.061,0.066,0.072,0.078,0.084,0.091,0.097,0.104,0.111,0.118,0.125,0.132,0.139,0.147,0.154,0.162,0.17,0.178,0.185,0.193,0.201,0.209,0.217,0.225,0.234,0.242,0.25,0.258,0.266,0.275,0.283,0.291,0.299,0.307,0.315,0.322,0.33,0.338,0.346,0.353,0.361,0.368,0.375,0.382,0.389,0.396,0.403,0.409,0.416,0.422,0.428,0.434,0.439,0.445,0.45,0.455,0.46,0.464,0.469,0.473,0.477,0.48,0.484,0.487,0.489,0.492,0.494,0.496,0.497,0.498,0.499,0.5,0.5,0.5,0.499,0.499,0.498,0.497,0.495,0.494,0.492,0.49,0.487,0.485,0.482,0.479,0.476,0.473,0.47,0.466,0.462,0.458,0.454,0.45,0.446,0.441,0.437,0.432,0.427,0.422,0.417,0.412,0.407,0.402,0.397,0.391,0.386,0.38,0.375,0.369,0.364,0.358,0.353,0.347,0.342,0.336,0.331,0.325,0.32,0.314,0.309,0.303,0.298,0.293,0.288,0.283,0.278,0.273,0.268,0.263,0.259,0.254,0.25,0.246,0.242,0.238,0.234,0.23,0.227,0.224,0.221,0.218,0.215,0.213,0.21,0.208,0.206,0.205,0.203,0.202,0.201,0.201,0.2,0.2,0.2,0.2,0.201,0.202,0.203,0.204,0.205,0.207,0.208,0.21,0.212,0.215,0.217,0.22,0.222,0.225,0.228,0.231,0.234,0.238,0.241,0.245,0.249,0.253,0.257,0.261,0.265,0.269,0.273,0.278,0.282,0.287,0.291,0.296,0.301,0.306,0.31,0.315,0.32,0.325,0.33,0.335,0.34,0.345,0.35,0.355,0.36,0.365,0.37,0.375,0.38,0.385,0.39,0.394,0.399,0.404,0.409,0.413,0.418,0.422,0.427,0.431,0.435,0.439,0.443,0.447,0.451,0.455,0.459,0.462,0.466,0.469,0.472,0.475,0.478,0.48,0.483,0.485,0.488,0.49,0.492,0.493,0.495,0.496,0.497,0.498,0.499,0.5,0.5,0.5,0.5,0.499,0.499,0.498,0.497,0.495,0.494,0.492,0.49,0.487,0.485,0.482,0.479,0.476,0.473,0.47,0.466,0.462,0.458,0.454,0.45,0.446,0.441,0.437,0.432,0.427,0.422,0.417,0.412,0.407,0.402,0.397,0.391,0.386,0.38,0.375,0.369,0.364,0.358,0.353,0.347,0.342,0.336,0.331,0.325,0.32,0.314,0.309,0.303,0.298,0.293,0.288,0.283,0.278,0.273,0.268,0.263,0.259,0.254,0.25,0.246,0.242,0.238,0.234,0.23,0.227,0.224,0.221,0.218,0.215,0.213,0.21,0.208,0.206,0.205,0.203,0.202,0.201,0.201,0.2,0.2,0.2,0.2,0.201,0.202,0.203,0.204,0.205,0.206,0.208,0.21,0.212,0.214,0.216,0.218,0.221,0.224,0.226,0.229,0.232,0.236,0.239,0.242,0.246,0.25,0.253,0.257,0.261,0.265,0.269,0.273,0.278,0.282,0.286,0.291,0.295,0.3,0.305,0.309,0.314,0.319,0.324,0.328,0.333,0.338,0.343,0.348,0.352,0.357,0.362,0.367,0.372,0.376,0.381,0.386,0.391,0.395,0.4,0.405,0.409,0.414,0.418,0.422,0.427,0.431,0.435,0.439,0.443,0.447,0.45,0.454,0.458,0.461,0.464,0.468,0.471,0.474,0.476,0.479,0.482,0.484,0.486,0.488,0.49,0.492,0.494,0.495,0.496,0.497,0.498,0.499,0.5,0.5,0.5,0.5,0.499,0.498,0.496,0.494,0.492,0.489,0.486,0.483,0.479,0.475,0.471,0.466,0.461,0.456,0.45,0.445,0.439,0.433,0.427,0.42,0.413,0.407,0.4,0.393,0.386,0.379,0.372,0.364,0.357,0.35,0.343,0.336,0.328,0.321,0.314,0.307,0.3,0.293,0.287,0.28,0.273,0.267,0.261,0.255,0.25,0.244,0.239,0.234,0.229,0.225,0.221,0.217,0.214,0.211,0.208,0.206,0.204,0.202,0.201,0.2,0.2\nPARAM_BROW_L_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.993,-0.992,-0.992,-0.992,-0.992,-0.991,-0.991,-0.991,-0.991,-0.99,-0.99,-0.99,-0.99,-0.989,-0.989,-0.989,-0.989,-0.988,-0.988,-0.988,-0.987,-0.987,-0.987,-0.987,-0.986,-0.986,-0.986,-0.985,-0.985,-0.985,-0.984,-0.984,-0.984,-0.983,-0.983,-0.983,-0.982,-0.982,-0.982,-0.981,-0.981,-0.981,-0.98,-0.98,-0.98,-0.979,-0.979,-0.978,-0.978,-0.978,-0.977,-0.977,-0.977,-0.976,-0.976,-0.975,-0.975,-0.975,-0.974,-0.974,-0.973,-0.973,-0.973,-0.972,-0.972,-0.971,-0.971,-0.97,-0.97,-0.97,-0.969,-0.969,-0.968,-0.968,-0.967,-0.967,-0.967,-0.966,-0.966,-0.965,-0.965,-0.964,-0.964,-0.963,-0.963,-0.962,-0.962,-0.961,-0.961,-0.961,-0.96,-0.96,-0.959,-0.959,-0.958,-0.958,-0.957,-0.957,-0.956,-0.956,-0.955,-0.955,-0.954,-0.954,-0.953,-0.953,-0.952,-0.952,-0.951,-0.951,-0.95,-0.95,-0.949,-0.948,-0.948,-0.947,-0.947,-0.946,-0.946,-0.945,-0.945,-0.944,-0.944,-0.943,-0.943,-0.942,-0.941,-0.941,-0.94,-0.94,-0.939,-0.939,-0.938,-0.938,-0.937,-0.936,-0.936,-0.935,-0.935,-0.934,-0.934,-0.933,-0.932,-0.932,-0.931,-0.931,-0.93,-0.93,-0.929,-0.928,-0.928,-0.927,-0.927,-0.926,-0.925,-0.925,-0.924,-0.924,-0.923,-0.922,-0.922,-0.921,-0.921,-0.92,-0.919,-0.919,-0.918,-0.918,-0.917,-0.916,-0.916,-0.915,-0.914,-0.914,-0.913,-0.913,-0.912,-0.911,-0.911,-0.91,-0.909,-0.909,-0.908,-0.908,-0.907,-0.906,-0.906,-0.905,-0.904,-0.904,-0.903,-0.903,-0.902,-0.901,-0.901,-0.9,-0.899,-0.899,-0.898,-0.897,-0.897,-0.896,-0.895,-0.895,-0.894,-0.893,-0.893,-0.892,-0.892,-0.891,-0.89,-0.89,-0.889,-0.888,-0.888,-0.887,-0.886,-0.886,-0.885,-0.884,-0.884,-0.883,-0.882,-0.882,-0.881,-0.88,-0.88,-0.879,-0.878,-0.878,-0.877,-0.876,-0.876,-0.875,-0.874,-0.874,-0.873,-0.872,-0.872,-0.871,-0.87,-0.87,-0.869,-0.868,-0.868,-0.867,-0.866,-0.866,-0.865,-0.864,-0.864,-0.863,-0.862,-0.862,-0.861,-0.86,-0.859,-0.859,-0.858,-0.857,-0.857,-0.856,-0.855,-0.855,-0.854,-0.853,-0.853,-0.852,-0.851,-0.851,-0.85,-0.849,-0.849,-0.848,-0.847,-0.847,-0.846,-0.845,-0.845,-0.844,-0.843,-0.843,-0.842,-0.841,-0.841,-0.84,-0.839,-0.838,-0.838,-0.837,-0.836,-0.836,-0.835,-0.834,-0.834,-0.833,-0.832,-0.832,-0.831,-0.83,-0.83,-0.829,-0.828,-0.828,-0.827,-0.826,-0.826,-0.825,-0.824,-0.824,-0.823,-0.822,-0.822,-0.821,-0.82,-0.82,-0.819,-0.818,-0.818,-0.817,-0.816,-0.816,-0.815,-0.814,-0.814,-0.813,-0.812,-0.812,-0.811,-0.81,-0.81,-0.809,-0.808,-0.808,-0.807,-0.807,-0.806,-0.805,-0.805,-0.804,-0.803,-0.803,-0.802,-0.801,-0.801,-0.8,-0.799,-0.799,-0.798,-0.797,-0.797,-0.796,-0.796,-0.795,-0.794,-0.794,-0.793,-0.792,-0.792,-0.791,-0.791,-0.79,-0.789,-0.789,-0.788,-0.787,-0.787,-0.786,-0.786,-0.785,-0.784,-0.784,-0.783,-0.782,-0.782,-0.781,-0.781,-0.78,-0.779,-0.779,-0.778,-0.778,-0.777,-0.776,-0.776,-0.775,-0.775,-0.774,-0.773,-0.773,-0.772,-0.772,-0.771,-0.77,-0.77,-0.769,-0.769,-0.768,-0.768,-0.767,-0.766,-0.766,-0.765,-0.765,-0.764,-0.764,-0.763,-0.762,-0.762,-0.761,-0.761,-0.76,-0.76,-0.759,-0.759,-0.758,-0.757,-0.757,-0.756,-0.756,-0.755,-0.755,-0.754,-0.754,-0.753,-0.753,-0.752,-0.752,-0.751,-0.75,-0.75,-0.749,-0.749,-0.748,-0.748,-0.747,-0.747,-0.746,-0.746,-0.745,-0.745,-0.744,-0.744,-0.743,-0.743,-0.742,-0.742,-0.741,-0.741,-0.74,-0.74,-0.739,-0.739,-0.739,-0.738,-0.738,-0.737,-0.737,-0.736,-0.736,-0.735,-0.735,-0.734,-0.734,-0.733,-0.733,-0.733,-0.732,-0.732,-0.731,-0.731,-0.73,-0.73,-0.73,-0.729,-0.729,-0.728,-0.728,-0.727,-0.727,-0.727,-0.726,-0.726,-0.725,-0.725,-0.725,-0.724,-0.724,-0.723,-0.723,-0.723,-0.722,-0.722,-0.722,-0.721,-0.721,-0.72,-0.72,-0.72,-0.719,-0.719,-0.719,-0.718,-0.718,-0.718,-0.717,-0.717,-0.717,-0.716,-0.716,-0.716,-0.715,-0.715,-0.715,-0.714,-0.714,-0.714,-0.713,-0.713,-0.713,-0.713,-0.712,-0.712,-0.712,-0.711,-0.711,-0.711,-0.711,-0.71,-0.71,-0.71,-0.71,-0.709,-0.709,-0.709,-0.709,-0.708,-0.708,-0.708,-0.708,-0.707,-0.707,-0.707,-0.707,-0.706,-0.706,-0.706,-0.706,-0.706,-0.705,-0.705,-0.705,-0.705,-0.705,-0.704,-0.704,-0.704,-0.704,-0.704,-0.704,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.705,-0.719,-0.74,-0.768,-0.799,-0.832,-0.868,-0.901,-0.932,-0.96,-0.981,-0.995,-1\nPARAM_BROW_R_Y=-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.999,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.998,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.997,-0.996,-0.996,-0.996,-0.996,-0.996,-0.996,-0.995,-0.995,-0.995,-0.995,-0.995,-0.994,-0.994,-0.994,-0.994,-0.994,-0.993,-0.993,-0.993,-0.993,-0.992,-0.992,-0.992,-0.992,-0.991,-0.991,-0.991,-0.991,-0.99,-0.99,-0.99,-0.99,-0.989,-0.989,-0.989,-0.989,-0.988,-0.988,-0.988,-0.987,-0.987,-0.987,-0.987,-0.986,-0.986,-0.986,-0.985,-0.985,-0.985,-0.984,-0.984,-0.984,-0.983,-0.983,-0.983,-0.982,-0.982,-0.982,-0.981,-0.981,-0.981,-0.98,-0.98,-0.98,-0.979,-0.979,-0.978,-0.978,-0.978,-0.977,-0.977,-0.977,-0.976,-0.976,-0.975,-0.975,-0.975,-0.974,-0.974,-0.973,-0.973,-0.973,-0.972,-0.972,-0.971,-0.971,-0.97,-0.97,-0.97,-0.969,-0.969,-0.968,-0.968,-0.967,-0.967,-0.967,-0.966,-0.966,-0.965,-0.965,-0.964,-0.964,-0.963,-0.963,-0.962,-0.962,-0.961,-0.961,-0.961,-0.96,-0.96,-0.959,-0.959,-0.958,-0.958,-0.957,-0.957,-0.956,-0.956,-0.955,-0.955,-0.954,-0.954,-0.953,-0.953,-0.952,-0.952,-0.951,-0.951,-0.95,-0.95,-0.949,-0.948,-0.948,-0.947,-0.947,-0.946,-0.946,-0.945,-0.945,-0.944,-0.944,-0.943,-0.943,-0.942,-0.941,-0.941,-0.94,-0.94,-0.939,-0.939,-0.938,-0.938,-0.937,-0.936,-0.936,-0.935,-0.935,-0.934,-0.934,-0.933,-0.932,-0.932,-0.931,-0.931,-0.93,-0.93,-0.929,-0.928,-0.928,-0.927,-0.927,-0.926,-0.925,-0.925,-0.924,-0.924,-0.923,-0.922,-0.922,-0.921,-0.921,-0.92,-0.919,-0.919,-0.918,-0.918,-0.917,-0.916,-0.916,-0.915,-0.914,-0.914,-0.913,-0.913,-0.912,-0.911,-0.911,-0.91,-0.909,-0.909,-0.908,-0.908,-0.907,-0.906,-0.906,-0.905,-0.904,-0.904,-0.903,-0.903,-0.902,-0.901,-0.901,-0.9,-0.899,-0.899,-0.898,-0.897,-0.897,-0.896,-0.895,-0.895,-0.894,-0.893,-0.893,-0.892,-0.892,-0.891,-0.89,-0.89,-0.889,-0.888,-0.888,-0.887,-0.886,-0.886,-0.885,-0.884,-0.884,-0.883,-0.882,-0.882,-0.881,-0.88,-0.88,-0.879,-0.878,-0.878,-0.877,-0.876,-0.876,-0.875,-0.874,-0.874,-0.873,-0.872,-0.872,-0.871,-0.87,-0.87,-0.869,-0.868,-0.868,-0.867,-0.866,-0.866,-0.865,-0.864,-0.864,-0.863,-0.862,-0.862,-0.861,-0.86,-0.859,-0.859,-0.858,-0.857,-0.857,-0.856,-0.855,-0.855,-0.854,-0.853,-0.853,-0.852,-0.851,-0.851,-0.85,-0.849,-0.849,-0.848,-0.847,-0.847,-0.846,-0.845,-0.845,-0.844,-0.843,-0.843,-0.842,-0.841,-0.841,-0.84,-0.839,-0.838,-0.838,-0.837,-0.836,-0.836,-0.835,-0.834,-0.834,-0.833,-0.832,-0.832,-0.831,-0.83,-0.83,-0.829,-0.828,-0.828,-0.827,-0.826,-0.826,-0.825,-0.824,-0.824,-0.823,-0.822,-0.822,-0.821,-0.82,-0.82,-0.819,-0.818,-0.818,-0.817,-0.816,-0.816,-0.815,-0.814,-0.814,-0.813,-0.812,-0.812,-0.811,-0.81,-0.81,-0.809,-0.808,-0.808,-0.807,-0.807,-0.806,-0.805,-0.805,-0.804,-0.803,-0.803,-0.802,-0.801,-0.801,-0.8,-0.799,-0.799,-0.798,-0.797,-0.797,-0.796,-0.796,-0.795,-0.794,-0.794,-0.793,-0.792,-0.792,-0.791,-0.791,-0.79,-0.789,-0.789,-0.788,-0.787,-0.787,-0.786,-0.786,-0.785,-0.784,-0.784,-0.783,-0.782,-0.782,-0.781,-0.781,-0.78,-0.779,-0.779,-0.778,-0.778,-0.777,-0.776,-0.776,-0.775,-0.775,-0.774,-0.773,-0.773,-0.772,-0.772,-0.771,-0.77,-0.77,-0.769,-0.769,-0.768,-0.768,-0.767,-0.766,-0.766,-0.765,-0.765,-0.764,-0.764,-0.763,-0.762,-0.762,-0.761,-0.761,-0.76,-0.76,-0.759,-0.759,-0.758,-0.757,-0.757,-0.756,-0.756,-0.755,-0.755,-0.754,-0.754,-0.753,-0.753,-0.752,-0.752,-0.751,-0.75,-0.75,-0.749,-0.749,-0.748,-0.748,-0.747,-0.747,-0.746,-0.746,-0.745,-0.745,-0.744,-0.744,-0.743,-0.743,-0.742,-0.742,-0.741,-0.741,-0.74,-0.74,-0.739,-0.739,-0.739,-0.738,-0.738,-0.737,-0.737,-0.736,-0.736,-0.735,-0.735,-0.734,-0.734,-0.733,-0.733,-0.733,-0.732,-0.732,-0.731,-0.731,-0.73,-0.73,-0.73,-0.729,-0.729,-0.728,-0.728,-0.727,-0.727,-0.727,-0.726,-0.726,-0.725,-0.725,-0.725,-0.724,-0.724,-0.723,-0.723,-0.723,-0.722,-0.722,-0.722,-0.721,-0.721,-0.72,-0.72,-0.72,-0.719,-0.719,-0.719,-0.718,-0.718,-0.718,-0.717,-0.717,-0.717,-0.716,-0.716,-0.716,-0.715,-0.715,-0.715,-0.714,-0.714,-0.714,-0.713,-0.713,-0.713,-0.713,-0.712,-0.712,-0.712,-0.711,-0.711,-0.711,-0.711,-0.71,-0.71,-0.71,-0.71,-0.709,-0.709,-0.709,-0.709,-0.708,-0.708,-0.708,-0.708,-0.707,-0.707,-0.707,-0.707,-0.706,-0.706,-0.706,-0.706,-0.706,-0.705,-0.705,-0.705,-0.705,-0.705,-0.704,-0.704,-0.704,-0.704,-0.704,-0.704,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.703,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.702,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.701,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.7,-0.705,-0.719,-0.74,-0.768,-0.799,-0.832,-0.868,-0.901,-0.932,-0.96,-0.981,-0.995,-1\nPARAM_BROW_R_FORM=0.6,0.6,0.6,0.599,0.598,0.597,0.596,0.595,0.593,0.592,0.59,0.588,0.585,0.583,0.58,0.577,0.574,0.571,0.568,0.564,0.561,0.557,0.553,0.548,0.544,0.54,0.535,0.53,0.525,0.52,0.515,0.509,0.504,0.498,0.492,0.486,0.48,0.474,0.468,0.461,0.455,0.448,0.441,0.434,0.427,0.42,0.413,0.405,0.398,0.39,0.382,0.374,0.367,0.359,0.351,0.342,0.334,0.326,0.318,0.309,0.3,0.292,0.283,0.274,0.266,0.257,0.248,0.239,0.229,0.22,0.211,0.202,0.192,0.183,0.174,0.164,0.155,0.145,0.136,0.126,0.117,0.107,0.097,0.088,0.078,0.068,0.059,0.049,0.039,0.029,0.02,0.01,0,-0.01,-0.02,-0.029,-0.039,-0.049,-0.059,-0.068,-0.078,-0.088,-0.097,-0.107,-0.117,-0.126,-0.136,-0.145,-0.155,-0.164,-0.174,-0.183,-0.192,-0.202,-0.211,-0.22,-0.229,-0.239,-0.248,-0.257,-0.266,-0.274,-0.283,-0.292,-0.3,-0.309,-0.318,-0.326,-0.334,-0.342,-0.351,-0.359,-0.367,-0.374,-0.382,-0.39,-0.398,-0.405,-0.413,-0.42,-0.427,-0.434,-0.441,-0.448,-0.455,-0.461,-0.468,-0.474,-0.48,-0.486,-0.492,-0.498,-0.504,-0.509,-0.515,-0.52,-0.525,-0.53,-0.535,-0.54,-0.544,-0.548,-0.553,-0.557,-0.561,-0.564,-0.568,-0.571,-0.574,-0.577,-0.58,-0.583,-0.585,-0.588,-0.59,-0.592,-0.593,-0.595,-0.596,-0.597,-0.598,-0.599,-0.6,-0.6,-0.6,-0.6,-0.599,-0.598,-0.597,-0.595,-0.593,-0.591,-0.588,-0.585,-0.581,-0.577,-0.573,-0.569,-0.564,-0.559,-0.554,-0.548,-0.542,-0.536,-0.53,-0.524,-0.517,-0.51,-0.503,-0.495,-0.488,-0.48,-0.472,-0.464,-0.456,-0.447,-0.439,-0.43,-0.421,-0.412,-0.403,-0.394,-0.385,-0.376,-0.367,-0.357,-0.348,-0.338,-0.329,-0.319,-0.31,-0.3,-0.29,-0.281,-0.271,-0.262,-0.252,-0.243,-0.233,-0.224,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,-0.161,-0.153,-0.144,-0.136,-0.128,-0.12,-0.112,-0.105,-0.097,-0.09,-0.083,-0.076,-0.07,-0.064,-0.058,-0.052,-0.046,-0.041,-0.036,-0.031,-0.027,-0.023,-0.019,-0.015,-0.012,-0.009,-0.007,-0.005,-0.003,-0.002,-0.001,-0,0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.004,-0.004,-0.005,-0.005,-0.006,-0.006,-0.007,-0.007,-0.008,-0.008,-0.009,-0.01,-0.01,-0.011,-0.012,-0.013,-0.013,-0.014,-0.015,-0.016,-0.017,-0.017,-0.018,-0.019,-0.02,-0.021,-0.022,-0.023,-0.024,-0.025,-0.026,-0.027,-0.028,-0.029,-0.03,-0.031,-0.032,-0.033,-0.035,-0.036,-0.037,-0.038,-0.039,-0.041,-0.042,-0.043,-0.044,-0.046,-0.047,-0.048,-0.049,-0.051,-0.052,-0.054,-0.055,-0.056,-0.058,-0.059,-0.06,-0.062,-0.063,-0.065,-0.066,-0.068,-0.069,-0.071,-0.072,-0.074,-0.075,-0.077,-0.078,-0.08,-0.081,-0.083,-0.085,-0.086,-0.088,-0.089,-0.091,-0.093,-0.094,-0.096,-0.097,-0.099,-0.101,-0.102,-0.104,-0.106,-0.107,-0.109,-0.111,-0.112,-0.114,-0.116,-0.117,-0.119,-0.121,-0.122,-0.124,-0.126,-0.128,-0.129,-0.131,-0.133,-0.134,-0.136,-0.138,-0.14,-0.141,-0.143,-0.145,-0.147,-0.148,-0.15,-0.152,-0.153,-0.155,-0.157,-0.159,-0.16,-0.162,-0.164,-0.166,-0.167,-0.169,-0.171,-0.172,-0.174,-0.176,-0.178,-0.179,-0.181,-0.183,-0.184,-0.186,-0.188,-0.189,-0.191,-0.193,-0.194,-0.196,-0.198,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.209,-0.211,-0.212,-0.214,-0.215,-0.217,-0.219,-0.22,-0.222,-0.223,-0.225,-0.226,-0.228,-0.229,-0.231,-0.232,-0.234,-0.235,-0.237,-0.238,-0.24,-0.241,-0.242,-0.244,-0.245,-0.246,-0.248,-0.249,-0.251,-0.252,-0.253,-0.254,-0.256,-0.257,-0.258,-0.259,-0.261,-0.262,-0.263,-0.264,-0.265,-0.267,-0.268,-0.269,-0.27,-0.271,-0.272,-0.273,-0.274,-0.275,-0.276,-0.277,-0.278,-0.279,-0.28,-0.281,-0.282,-0.283,-0.283,-0.284,-0.285,-0.286,-0.287,-0.287,-0.288,-0.289,-0.29,-0.29,-0.291,-0.292,-0.292,-0.293,-0.293,-0.294,-0.294,-0.295,-0.295,-0.296,-0.296,-0.297,-0.297,-0.297,-0.298,-0.298,-0.298,-0.299,-0.299,-0.299,-0.299,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.298,-0.298,-0.297,-0.297,-0.296,-0.296,-0.295,-0.294,-0.293,-0.293,-0.292,-0.291,-0.29,-0.288,-0.287,-0.286,-0.285,-0.283,-0.282,-0.28,-0.278,-0.277,-0.275,-0.273,-0.271,-0.269,-0.266,-0.264,-0.262,-0.259,-0.256,-0.253,-0.251,-0.248,-0.244,-0.241,-0.238,-0.234,-0.231,-0.227,-0.223,-0.219,-0.215,-0.211,-0.206,-0.202,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.166,-0.16,-0.154,-0.148,-0.142,-0.136,-0.129,-0.122,-0.116,-0.108,-0.101,-0.094,-0.086,-0.079,-0.071,-0.062,-0.054,-0.046,-0.037,-0.028,-0.019,-0.009,0,0.01,0.02,0.031,0.042,0.054,0.066,0.079,0.091,0.104,0.118,0.131,0.145,0.16,0.174,0.188,0.203,0.218,0.233,0.247,0.262,0.277,0.292,0.307,0.321,0.336,0.35,0.365,0.379,0.393,0.407,0.42,0.434,0.446,0.459,0.471,0.483,0.494,0.505,0.516,0.526,0.535,0.544,0.553,0.56,0.568,0.574,0.58,0.585,0.59,0.593,0.596,0.598,0.6,0.6\nPARAM_BROW_L_FORM=0.6,0.6,0.6,0.599,0.598,0.597,0.596,0.595,0.593,0.592,0.59,0.588,0.585,0.583,0.58,0.577,0.574,0.571,0.568,0.564,0.561,0.557,0.553,0.548,0.544,0.54,0.535,0.53,0.525,0.52,0.515,0.509,0.504,0.498,0.492,0.486,0.48,0.474,0.468,0.461,0.455,0.448,0.441,0.434,0.427,0.42,0.413,0.405,0.398,0.39,0.382,0.374,0.367,0.359,0.351,0.342,0.334,0.326,0.318,0.309,0.3,0.292,0.283,0.274,0.266,0.257,0.248,0.239,0.229,0.22,0.211,0.202,0.192,0.183,0.174,0.164,0.155,0.145,0.136,0.126,0.117,0.107,0.097,0.088,0.078,0.068,0.059,0.049,0.039,0.029,0.02,0.01,0,-0.01,-0.02,-0.029,-0.039,-0.049,-0.059,-0.068,-0.078,-0.088,-0.097,-0.107,-0.117,-0.126,-0.136,-0.145,-0.155,-0.164,-0.174,-0.183,-0.192,-0.202,-0.211,-0.22,-0.229,-0.239,-0.248,-0.257,-0.266,-0.274,-0.283,-0.292,-0.3,-0.309,-0.318,-0.326,-0.334,-0.342,-0.351,-0.359,-0.367,-0.374,-0.382,-0.39,-0.398,-0.405,-0.413,-0.42,-0.427,-0.434,-0.441,-0.448,-0.455,-0.461,-0.468,-0.474,-0.48,-0.486,-0.492,-0.498,-0.504,-0.509,-0.515,-0.52,-0.525,-0.53,-0.535,-0.54,-0.544,-0.548,-0.553,-0.557,-0.561,-0.564,-0.568,-0.571,-0.574,-0.577,-0.58,-0.583,-0.585,-0.588,-0.59,-0.592,-0.593,-0.595,-0.596,-0.597,-0.598,-0.599,-0.6,-0.6,-0.6,-0.6,-0.599,-0.598,-0.597,-0.595,-0.593,-0.591,-0.588,-0.585,-0.581,-0.577,-0.573,-0.569,-0.564,-0.559,-0.554,-0.548,-0.542,-0.536,-0.53,-0.524,-0.517,-0.51,-0.503,-0.495,-0.488,-0.48,-0.472,-0.464,-0.456,-0.447,-0.439,-0.43,-0.421,-0.412,-0.403,-0.394,-0.385,-0.376,-0.367,-0.357,-0.348,-0.338,-0.329,-0.319,-0.31,-0.3,-0.29,-0.281,-0.271,-0.262,-0.252,-0.243,-0.233,-0.224,-0.215,-0.206,-0.197,-0.188,-0.179,-0.17,-0.161,-0.153,-0.144,-0.136,-0.128,-0.12,-0.112,-0.105,-0.097,-0.09,-0.083,-0.076,-0.07,-0.064,-0.058,-0.052,-0.046,-0.041,-0.036,-0.031,-0.027,-0.023,-0.019,-0.015,-0.012,-0.009,-0.007,-0.005,-0.003,-0.002,-0.001,-0,0,-0,-0,-0,-0,-0,-0,-0.001,-0.001,-0.001,-0.001,-0.002,-0.002,-0.002,-0.003,-0.003,-0.003,-0.004,-0.004,-0.005,-0.005,-0.006,-0.006,-0.007,-0.007,-0.008,-0.008,-0.009,-0.01,-0.01,-0.011,-0.012,-0.013,-0.013,-0.014,-0.015,-0.016,-0.017,-0.017,-0.018,-0.019,-0.02,-0.021,-0.022,-0.023,-0.024,-0.025,-0.026,-0.027,-0.028,-0.029,-0.03,-0.031,-0.032,-0.033,-0.035,-0.036,-0.037,-0.038,-0.039,-0.041,-0.042,-0.043,-0.044,-0.046,-0.047,-0.048,-0.049,-0.051,-0.052,-0.054,-0.055,-0.056,-0.058,-0.059,-0.06,-0.062,-0.063,-0.065,-0.066,-0.068,-0.069,-0.071,-0.072,-0.074,-0.075,-0.077,-0.078,-0.08,-0.081,-0.083,-0.085,-0.086,-0.088,-0.089,-0.091,-0.093,-0.094,-0.096,-0.097,-0.099,-0.101,-0.102,-0.104,-0.106,-0.107,-0.109,-0.111,-0.112,-0.114,-0.116,-0.117,-0.119,-0.121,-0.122,-0.124,-0.126,-0.128,-0.129,-0.131,-0.133,-0.134,-0.136,-0.138,-0.14,-0.141,-0.143,-0.145,-0.147,-0.148,-0.15,-0.152,-0.153,-0.155,-0.157,-0.159,-0.16,-0.162,-0.164,-0.166,-0.167,-0.169,-0.171,-0.172,-0.174,-0.176,-0.178,-0.179,-0.181,-0.183,-0.184,-0.186,-0.188,-0.189,-0.191,-0.193,-0.194,-0.196,-0.198,-0.199,-0.201,-0.203,-0.204,-0.206,-0.207,-0.209,-0.211,-0.212,-0.214,-0.215,-0.217,-0.219,-0.22,-0.222,-0.223,-0.225,-0.226,-0.228,-0.229,-0.231,-0.232,-0.234,-0.235,-0.237,-0.238,-0.24,-0.241,-0.242,-0.244,-0.245,-0.246,-0.248,-0.249,-0.251,-0.252,-0.253,-0.254,-0.256,-0.257,-0.258,-0.259,-0.261,-0.262,-0.263,-0.264,-0.265,-0.267,-0.268,-0.269,-0.27,-0.271,-0.272,-0.273,-0.274,-0.275,-0.276,-0.277,-0.278,-0.279,-0.28,-0.281,-0.282,-0.283,-0.283,-0.284,-0.285,-0.286,-0.287,-0.287,-0.288,-0.289,-0.29,-0.29,-0.291,-0.292,-0.292,-0.293,-0.293,-0.294,-0.294,-0.295,-0.295,-0.296,-0.296,-0.297,-0.297,-0.297,-0.298,-0.298,-0.298,-0.299,-0.299,-0.299,-0.299,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.3,-0.299,-0.299,-0.299,-0.298,-0.298,-0.298,-0.297,-0.297,-0.296,-0.296,-0.295,-0.294,-0.293,-0.293,-0.292,-0.291,-0.29,-0.288,-0.287,-0.286,-0.285,-0.283,-0.282,-0.28,-0.278,-0.277,-0.275,-0.273,-0.271,-0.269,-0.266,-0.264,-0.262,-0.259,-0.256,-0.253,-0.251,-0.248,-0.244,-0.241,-0.238,-0.234,-0.231,-0.227,-0.223,-0.219,-0.215,-0.211,-0.206,-0.202,-0.197,-0.192,-0.187,-0.182,-0.177,-0.172,-0.166,-0.16,-0.154,-0.148,-0.142,-0.136,-0.129,-0.122,-0.116,-0.108,-0.101,-0.094,-0.086,-0.079,-0.071,-0.062,-0.054,-0.046,-0.037,-0.028,-0.019,-0.009,0,0.01,0.02,0.031,0.042,0.054,0.066,0.079,0.091,0.104,0.118,0.131,0.145,0.16,0.174,0.188,0.203,0.218,0.233,0.247,0.262,0.277,0.292,0.307,0.321,0.336,0.35,0.365,0.379,0.393,0.407,0.42,0.434,0.446,0.459,0.471,0.483,0.494,0.505,0.516,0.526,0.535,0.544,0.553,0.56,0.568,0.574,0.58,0.585,0.59,0.593,0.596,0.598,0.6,0.6\n"
  },
  {
    "path": "public/static/home/live2d_api/model/live2d-add/xiaoban/textures.cache",
    "content": "null"
  },
  {
    "path": "public/static/home/live2d_api/model_list.json",
    "content": "{\n    \"models\": [\n        \"Potion-Maker/Pio\",\n        \"Potion-Maker/Tia\",\n        \"bilibili-live/22\",\n        \"bilibili-live/33\",\n        [\n            \"ShizukuTalk/shizuku-48\",\n            \"ShizukuTalk/shizuku-pajama\"\n        ],\n        [\n            \"HyperdimensionNeptunia/neptune_classic\",\n            \"HyperdimensionNeptunia/nepnep\",\n            \"HyperdimensionNeptunia/neptune_santa\",\n            \"HyperdimensionNeptunia/nepmaid\",\n            \"HyperdimensionNeptunia/nepswim\",\n            \"HyperdimensionNeptunia/noir_classic\",\n            \"HyperdimensionNeptunia/noir\",\n            \"HyperdimensionNeptunia/noir_santa\",\n            \"HyperdimensionNeptunia/noireswim\",\n            \"HyperdimensionNeptunia/blanc_classic\",\n            \"HyperdimensionNeptunia/blanc_normal\",\n            \"HyperdimensionNeptunia/blanc_swimwear\",\n            \"HyperdimensionNeptunia/vert_classic\",\n            \"HyperdimensionNeptunia/vert_normal\",\n            \"HyperdimensionNeptunia/vert_swimwear\",\n            \"HyperdimensionNeptunia/nepgear\",\n            \"HyperdimensionNeptunia/nepgear_extra\",\n            \"HyperdimensionNeptunia/nepgearswim\",\n            \"HyperdimensionNeptunia/histoire\",\n            \"HyperdimensionNeptunia/histoirenohover\"\n        ],\n        \"KantaiCollection/murakumo\",\n        \"live2d-add/xiaoban\",\n        \"live2d-add/miku\",\n        \"live2d-add/epsilon\",\n        [\n            \"live2d-add/haru\",\n            \"live2d-add/haru2\"\n        ],\n        \"live2d-add/tom\",\n        \"live2d-add/rem\",\n        \"live2d-add/blacktom\"\n    ],\n    \"messages\": [\n        \"来自 Potion Maker 的 Pio 酱 ~\",\n        \"来自 Potion Maker 的 Tia 酱 ~\",\n        \"来自 Bilibili Live 的 22 哦 ~\",\n        \"来自 Bilibili Live 的 33 的说\",\n        \"Shizuku Talk ！这里是 Shizuku ~\",\n        \"Nep! Nep! 超次元游戏：海王星 系列\",\n        \"艦隊これくしょん / 叢雲(むらくも)\",\n        \"超级可爱的~~~血小板\",\n        \"超级可爱的~~~miku\",\n        \"超级可爱的~~~epsilon\",\n        \"超级可爱的~~~haru\",\n        \"超级可爱的~~~White cat\",\n        \"超级可爱的~~~rem\",\n        \"超级可爱的~~~Black cat\"\n    ]\n}"
  },
  {
    "path": "public/static/home/live2d_api/rand/index.php",
    "content": "<?php\nisset($_GET['id']) ? $modelId = (int)$_GET['id'] : exit('error');\n\nrequire '../tools/modelList.php';\n\n$modelList = new modelList();\n\n$modelList = $modelList->get_list();\n\n$modelRandNewId = true;\nwhile ($modelRandNewId) {\n    $modelRandId = rand(0, count($modelList['models'])-1)+1;\n    $modelRandNewId = $modelRandId == $modelId ? true : false;\n}\n\nheader(\"Content-type: application/json\");\necho json_encode(array('model' => array(\n    'id' => $modelRandId,\n    'name' => $modelList['models'][$modelRandId-1],\n    'message' => $modelList['messages'][$modelRandId-1]\n)), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\n"
  },
  {
    "path": "public/static/home/live2d_api/rand_textures/index.php",
    "content": "<?php\nisset($_GET['id']) ? $id = $_GET['id'] : exit('error');\n\nrequire '../tools/modelList.php';\nrequire '../tools/modelTextures.php';\n\n$modelList = new modelList();\n$modelTextures = new modelTextures();\n\n$id = explode('-', $id);\n$modelId = (int)$id[0];\n$modelTexturesId = isset($id[1]) ? (int)$id[1] : false;\n\n$modelName = $modelList->id_to_name($modelId);\n$modelTexturesList = is_array($modelName) ? ['textures' => $modelName] : $modelTextures->get_list($modelName);\n\nif (count($modelTexturesList['textures']) <= 1) {\n    $modelTexturesNewId = 1;\n} else {\n    $modelTexturesGenNewId = true;\n    if ($modelTexturesId == 0) $modelTexturesId = 1;\n    while ($modelTexturesGenNewId) {\n        $modelTexturesNewId = rand(0, count($modelTexturesList['textures'])-1)+1;\n        $modelTexturesGenNewId = $modelTexturesNewId == $modelTexturesId ? true : false;\n    }\n}\n\nheader(\"Content-type: application/json\");\necho json_encode(array('textures' => array(\n    'id' => $modelTexturesNewId,\n    'name' => $modelTexturesList['textures'][$modelTexturesNewId-1],\n    'model' => is_array($modelName) ? $modelName[$modelTexturesNewId-1] : $modelName\n)), JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);\n"
  },
  {
    "path": "public/static/home/live2d_api/switch/index.php",
    "content": "<?php\nisset($_GET['id']) ? $modelId = (int)$_GET['id'] : exit('error');\n\nrequire '../tools/modelList.php';\n\n$modelList = new modelList();\n\n$modelList = $modelList->get_list();\n$modelSwitchId = $modelId + 1;\nif (!isset($modelList['models'][$modelSwitchId-1])) $modelSwitchId = 1;\n\nheader(\"Content-type: application/json\");\necho json_encode(array('model' => array(\n    'id' => $modelSwitchId,\n    'name' => $modelList['models'][$modelSwitchId-1],\n    'message' => $modelList['messages'][$modelSwitchId-1]\n)), JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);\n"
  },
  {
    "path": "public/static/home/live2d_api/switch_textures/index.php",
    "content": "<?php\nisset($_GET['id']) ? $id = $_GET['id'] : exit('error');\n\nrequire '../tools/modelList.php';\nrequire '../tools/modelTextures.php';\n\n$modelList = new modelList();\n$modelTextures = new modelTextures();\n\n$id = explode('-', $id);\n$modelId = (int)$id[0];\n$modelTexturesId = isset($id[1]) ? (int)$id[1] : 0;\n\n$modelName = $modelList->id_to_name($modelId);\n$modelTexturesList = is_array($modelName) ? ['textures' => $modelName] : $modelTextures->get_list($modelName);\n$modelTexturesNewId = $modelTexturesId == 0 ? 2 : $modelTexturesId + 1;\nif (!isset($modelTexturesList['textures'][$modelTexturesNewId-1])) $modelTexturesNewId = 1;\n\nheader(\"Content-type: application/json\");\necho json_encode(array('textures' => array(\n    'id' => $modelTexturesNewId,\n    'name' => $modelTexturesList['textures'][$modelTexturesNewId-1],\n    'model' => is_array($modelName) ? $modelName[$modelTexturesNewId-1] : $modelName\n)), JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);\n"
  },
  {
    "path": "public/static/home/live2d_api/tools/modelList.php",
    "content": "<?php class modelList {\n    \n    /* 获取模型列表 */\n    function get_list() {\n        return json_decode(file_get_contents('../model_list.json'), 1);\n    }\n    \n    /* 获取模组名称 */\n    function id_to_name($id) {\n        $list = self::get_list();\n        return $list['models'][(int)$id-1];\n    }\n    \n    /* 转换模型名称 */\n    function name_to_id($name) {\n        $list = self::get_list();\n        $id = array_search($name, $list['models']);\n        return is_numeric($id) ? $id + 1 : false;\n    }\n    \n}\n"
  },
  {
    "path": "public/static/home/live2d_api/tools/modelTextures.php",
    "content": "<?php class modelTextures {\n    \n    /* 获取材质名称 */\n    function get_name($modelName, $id) {\n        $list = self::get_list($modelName);\n        return $list['textures'][(int)$id-1];\n    }\n    \n    /* 获取列表缓存 */\n    function get_list($modelName) {\n        if (file_exists('../model/'.$modelName.'/textures.cache')) {\n            $textures = json_decode(file_get_contents('../model/'.$modelName.'/textures.cache'), true);\n        } else {\n            $textures = self::get_textures($modelName);\n            file_put_contents('../model/'.$modelName.'/textures.cache', json_encode($textures, JSON_UNESCAPED_SLASHES));\n        } return isset($textures) ? array('textures' => $textures) : false;\n    }\n    \n    /* 获取材质列表 */\n    function get_textures($modelName) {\n        if (file_exists('../model/'.$modelName.'/textures_order.json')) {                   // 读取材质组合规则\n            $tmp = array(); foreach (json_decode(file_get_contents('../model/'.$modelName.'/textures_order.json'), 1) as $k => $v) {\n                $tmp2 = array(); foreach ($v as $textures_dir) {\n                    $tmp3 = array(); foreach (glob('../model/'.$modelName.'/'.$textures_dir.'/*') as $n => $m)\n                        $tmp3['merge'.$n] = str_replace('../model/'.$modelName.'/', '', $m);\n                $tmp2 = array_merge_recursive($tmp2, $tmp3);   }\n                foreach ($tmp2 as $v4) $tmp4[$k][] = json_encode($v4, JSON_UNESCAPED_SLASHES);\n                $tmp = self::array_exhaustive($tmp, $tmp4[$k]);                                                                    }\n            foreach ($tmp as $v) $textures[] = json_decode('['.$v.']', 1); return $textures;\n        } else {\n            foreach (glob('../model/'.$modelName.'/textures/*') as $v)\n                $textures[] = str_replace('../model/'.$modelName.'/', '', $v);\n            return $textures;\n        }\n    }\n    \n    /* 数组穷举合并 */\n    function array_exhaustive($arr1, $arr2) {\n        foreach ($arr2 as $k => $v) {\n            if (empty($arr1)) $out[] = $v;\n            else foreach ($arr1 as $k2 => $v2) $out[] = str_replace('\"[\"', '\",\"', str_replace('\"]\"', '\",\"', $v2.$v));\n        } return $out;\n    }\n    \n}\n"
  },
  {
    "path": "public/static/home/live2d_api/tools/name-to-lower.php",
    "content": "<?php\n\n      /* 批量转换 文件名为 小写英文 + 使用 连字符-替换-空格 */\n$path = '../model/test-path';//<--- 在此输入目录路径，并执行本面页\n\n\n/*-----------------------------------------------------------------*/\n                $path = str_replace('\\\\', '/', $path);\n          if (substr($path, -1) != '/') $path = $path . '/';\n/*-----------------------------------------------------------------*/\nforeach ( glob($path.'*') as $file ) {\n    $new_filename = str_replace(' ', '-', strtolower($file));\n    rename($file, $new_name); echo $file.' -> '.$new_name.\" ok. \\n\";\n}\n/*-----------------------------------------------------------------*/\n"
  },
  {
    "path": "public/static/home/pjax/jquery.pjax.js",
    "content": "/*!\n * Copyright 2012, Chris Wanstrath\n * Released under the MIT License\n * https://github.com/defunkt/jquery-pjax\n */\n\n(function($){\n\n// When called on a container with a selector, fetches the href with\n// ajax into the container or with the data-pjax attribute on the link\n// itself.\n//\n// Tries to make sure the back button and ctrl+click work the way\n// you'd expect.\n//\n// Exported as $.fn.pjax\n//\n// Accepts a jQuery ajax options object that may include these\n// pjax specific options:\n//\n//\n// container - String selector for the element where to place the response body.\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// For convenience the second parameter can be either the container or\n// the options object.\n//\n// Returns the jQuery object\nfunction fnPjax(selector, container, options) {\n  options = optionsFor(container, options)\n  return this.on('click.pjax', selector, function(event) {\n    var opts = options\n    if (!opts.container) {\n      opts = $.extend({}, options)\n      opts.container = $(this).attr('data-pjax')\n    }\n    handleClick(event, opts)\n  })\n}\n\n// Public: pjax on click handler\n//\n// Exported as $.pjax.click.\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//   $(document).on('click', 'a', $.pjax.click)\n//   // is the same as\n//   $(document).pjax('a')\n//\n// Returns nothing.\nfunction handleClick(event, container, options) {\n  options = optionsFor(container, options)\n\n  var link = event.currentTarget\n  var $link = $(link)\n\n  if (link.tagName.toUpperCase() !== 'A')\n    throw \"$.fn.pjax or $.pjax.click requires an anchor element\"\n\n  // Middle click, cmd click, and ctrl click should open\n  // links in a new tab as normal.\n  if ( event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey )\n    return\n\n  // Ignore cross origin links\n  if ( location.protocol !== link.protocol || location.hostname !== link.hostname )\n    return\n\n  // Ignore case when a hash is being tacked on the current URL\n  if ( link.href.indexOf('#') > -1 && stripHash(link) == stripHash(location) )\n    return\n\n  // Ignore event with default prevented\n  if (event.isDefaultPrevented())\n    return\n\n  var defaults = {\n    url: link.href,\n    container: $link.attr('data-pjax'),\n    target: link\n  }\n\n  var opts = $.extend({}, defaults, options)\n  var clickEvent = $.Event('pjax:click')\n  $link.trigger(clickEvent, [opts])\n\n  if (!clickEvent.isDefaultPrevented()) {\n    pjax(opts)\n    event.preventDefault()\n    $link.trigger('pjax:clicked', [opts])\n  }\n}\n\n// Public: pjax on form submit handler\n//\n// Exported as $.pjax.submit\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//  $(document).on('submit', 'form', function(event) {\n//    $.pjax.submit(event, '[data-pjax-container]')\n//  })\n//\n// Returns nothing.\nfunction handleSubmit(event, container, options) {\n  options = optionsFor(container, options)\n\n  var form = event.currentTarget\n  var $form = $(form)\n\n  if (form.tagName.toUpperCase() !== 'FORM')\n    throw \"$.pjax.submit requires a form element\"\n\n  var defaults = {\n    type: ($form.attr('method') || 'GET').toUpperCase(),\n    url: $form.attr('action'),\n    container: $form.attr('data-pjax'),\n    target: form\n  }\n\n  if (defaults.type !== 'GET' && window.FormData !== undefined) {\n    defaults.data = new FormData(form)\n    defaults.processData = false\n    defaults.contentType = false\n  } else {\n    // Can't handle file uploads, exit\n    if ($form.find(':file').length) {\n      return\n    }\n\n    // Fallback to manually serializing the fields\n    defaults.data = $form.serializeArray()\n  }\n\n  pjax($.extend({}, defaults, options))\n\n  event.preventDefault()\n}\n\n// Loads a URL with ajax, puts the response body inside a container,\n// then pushState()'s the loaded URL.\n//\n// Works just like $.ajax in that it accepts a jQuery ajax\n// settings object (with keys like url, type, data, etc).\n//\n// Accepts these extra keys:\n//\n// container - String selector for where to stick the response body.\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// Use it just like $.ajax:\n//\n//   var xhr = $.pjax({ url: this.href, container: '#main' })\n//   console.log( xhr.readyState )\n//\n// Returns whatever $.ajax returns.\nfunction pjax(options) {\n  options = $.extend(true, {}, $.ajaxSettings, pjax.defaults, options)\n\n  if ($.isFunction(options.url)) {\n    options.url = options.url()\n  }\n\n  var hash = parseURL(options.url).hash\n\n  var containerType = $.type(options.container)\n  if (containerType !== 'string') {\n    throw \"expected string value for 'container' option; got \" + containerType\n  }\n  var context = options.context = $(options.container)\n  if (!context.length) {\n    throw \"the container selector '\" + options.container + \"' did not match anything\"\n  }\n\n  // We want the browser to maintain two separate internal caches: one\n  // for pjax'd partial page loads and one for normal page loads.\n  // Without adding this secret parameter, some browsers will often\n  // confuse the two.\n  if (!options.data) options.data = {}\n  if ($.isArray(options.data)) {\n    options.data.push({name: '_pjax', value: options.container})\n  } else {\n    options.data._pjax = options.container\n  }\n\n  function fire(type, args, props) {\n    if (!props) props = {}\n    props.relatedTarget = options.target\n    var event = $.Event(type, props)\n    context.trigger(event, args)\n    return !event.isDefaultPrevented()\n  }\n\n  var timeoutTimer\n\n  options.beforeSend = function(xhr, settings) {\n    // No timeout for non-GET requests\n    // Its not safe to request the resource again with a fallback method.\n    if (settings.type !== 'GET') {\n      settings.timeout = 0\n    }\n\n    xhr.setRequestHeader('X-PJAX', 'true')\n    xhr.setRequestHeader('X-PJAX-Container', options.container)\n\n    if (!fire('pjax:beforeSend', [xhr, settings]))\n      return false\n\n    if (settings.timeout > 0) {\n      timeoutTimer = setTimeout(function() {\n        if (fire('pjax:timeout', [xhr, options]))\n          xhr.abort('timeout')\n      }, settings.timeout)\n\n      // Clear timeout setting so jquerys internal timeout isn't invoked\n      settings.timeout = 0\n    }\n\n    var url = parseURL(settings.url)\n    if (hash) url.hash = hash\n    options.requestUrl = stripInternalParams(url)\n  }\n\n  options.complete = function(xhr, textStatus) {\n    if (timeoutTimer)\n      clearTimeout(timeoutTimer)\n\n    fire('pjax:complete', [xhr, textStatus, options])\n\n    fire('pjax:end', [xhr, options])\n  }\n\n  options.error = function(xhr, textStatus, errorThrown) {\n    var container = extractContainer(\"\", xhr, options)\n\n    var allowed = fire('pjax:error', [xhr, textStatus, errorThrown, options])\n    if (options.type == 'GET' && textStatus !== 'abort' && allowed) {\n      locationReplace(container.url)\n    }\n  }\n\n  options.success = function(data, status, xhr) {\n    var previousState = pjax.state\n\n    // If $.pjax.defaults.version is a function, invoke it first.\n    // Otherwise it can be a static string.\n    var currentVersion = typeof $.pjax.defaults.version === 'function' ?\n      $.pjax.defaults.version() :\n      $.pjax.defaults.version\n\n    var latestVersion = xhr.getResponseHeader('X-PJAX-Version')\n\n    var container = extractContainer(data, xhr, options)\n\n    var url = parseURL(container.url)\n    if (hash) {\n      url.hash = hash\n      container.url = url.href\n    }\n\n    // If there is a layout version mismatch, hard load the new url\n    if (currentVersion && latestVersion && currentVersion !== latestVersion) {\n      locationReplace(container.url)\n      return\n    }\n\n    // If the new response is missing a body, hard load the page\n    if (!container.contents) {\n      locationReplace(container.url)\n      return\n    }\n\n    pjax.state = {\n      id: options.id || uniqueId(),\n      url: container.url,\n      title: container.title,\n      container: options.container,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n\n    if (options.push || options.replace) {\n      window.history.replaceState(pjax.state, container.title, container.url)\n    }\n\n    // Only blur the focus if the focused element is within the container.\n    var blurFocus = $.contains(context, document.activeElement)\n\n    // Clear out any focused controls before inserting new page contents.\n    if (blurFocus) {\n      try {\n        document.activeElement.blur()\n      } catch (e) { /* ignore */ }\n    }\n\n    if (container.title) document.title = container.title\n\n    fire('pjax:beforeReplace', [container.contents, options], {\n      state: pjax.state,\n      previousState: previousState\n    })\n    context.html(container.contents)\n\n    // FF bug: Won't autofocus fields that are inserted via JS.\n    // This behavior is incorrect. So if theres no current focus, autofocus\n    // the last field.\n    //\n    // http://www.w3.org/html/wg/drafts/html/master/forms.html\n    var autofocusEl = context.find('input[autofocus], textarea[autofocus]').last()[0]\n    if (autofocusEl && document.activeElement !== autofocusEl) {\n      autofocusEl.focus()\n    }\n\n    executeScriptTags(container.scripts)\n\n    var scrollTo = options.scrollTo\n\n    // Ensure browser scrolls to the element referenced by the URL anchor\n    if (hash) {\n      var name = decodeURIComponent(hash.slice(1))\n      var target = document.getElementById(name) || document.getElementsByName(name)[0]\n      if (target) scrollTo = $(target).offset().top\n    }\n\n    if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)\n\n    fire('pjax:success', [data, status, xhr, options])\n  }\n\n\n  // Initialize pjax.state for the initial page load. Assume we're\n  // using the container and options of the link we're loading for the\n  // back button to the initial page. This ensures good back button\n  // behavior.\n  if (!pjax.state) {\n    pjax.state = {\n      id: uniqueId(),\n      url: window.location.href,\n      title: document.title,\n      container: options.container,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n    window.history.replaceState(pjax.state, document.title)\n  }\n\n  // Cancel the current request if we're already pjaxing\n  abortXHR(pjax.xhr)\n\n  pjax.options = options\n  var xhr = pjax.xhr = $.ajax(options)\n\n  if (xhr.readyState > 0) {\n    if (options.push && !options.replace) {\n      // Cache current container element before replacing it\n      cachePush(pjax.state.id, [options.container, cloneContents(context)])\n\n      window.history.pushState(null, \"\", options.requestUrl)\n    }\n\n    fire('pjax:start', [xhr, options])\n    fire('pjax:send', [xhr, options])\n  }\n\n  return pjax.xhr\n}\n\n// Public: Reload current page with pjax.\n//\n// Returns whatever $.pjax returns.\nfunction pjaxReload(container, options) {\n  var defaults = {\n    url: window.location.href,\n    push: false,\n    replace: true,\n    scrollTo: false\n  }\n\n  return pjax($.extend(defaults, optionsFor(container, options)))\n}\n\n// Internal: Hard replace current state with url.\n//\n// Work for around WebKit\n//   https://bugs.webkit.org/show_bug.cgi?id=93506\n//\n// Returns nothing.\nfunction locationReplace(url) {\n  window.history.replaceState(null, \"\", pjax.state.url)\n  window.location.replace(url)\n}\n\n\nvar initialPop = true\nvar initialURL = window.location.href\nvar initialState = window.history.state\n\n// Initialize $.pjax.state if possible\n// Happens when reloading a page and coming forward from a different\n// session history.\nif (initialState && initialState.container) {\n  pjax.state = initialState\n}\n\n// Non-webkit browsers don't fire an initial popstate event\nif ('state' in window.history) {\n  initialPop = false\n}\n\n// popstate handler takes care of the back and forward buttons\n//\n// You probably shouldn't use pjax on pages with other pushState\n// stuff yet.\nfunction onPjaxPopstate(event) {\n\n  // Hitting back or forward should override any pending PJAX request.\n  if (!initialPop) {\n    abortXHR(pjax.xhr)\n  }\n\n  var previousState = pjax.state\n  var state = event.state\n  var direction\n\n  if (state && state.container) {\n    // When coming forward from a separate history session, will get an\n    // initial pop with a state we are already at. Skip reloading the current\n    // page.\n    if (initialPop && initialURL == state.url) return\n\n    if (previousState) {\n      // If popping back to the same state, just skip.\n      // Could be clicking back from hashchange rather than a pushState.\n      if (previousState.id === state.id) return\n\n      // Since state IDs always increase, we can deduce the navigation direction\n      direction = previousState.id < state.id ? 'forward' : 'back'\n    }\n\n    var cache = cacheMapping[state.id] || []\n    var containerSelector = cache[0] || state.container\n    var container = $(containerSelector), contents = cache[1]\n\n    if (container.length) {\n      if (previousState) {\n        // Cache current container before replacement and inform the\n        // cache which direction the history shifted.\n        cachePop(direction, previousState.id, [containerSelector, cloneContents(container)])\n      }\n\n      var popstateEvent = $.Event('pjax:popstate', {\n        state: state,\n        direction: direction\n      })\n      container.trigger(popstateEvent)\n\n      var options = {\n        id: state.id,\n        url: state.url,\n        container: containerSelector,\n        push: false,\n        fragment: state.fragment,\n        timeout: state.timeout,\n        scrollTo: false\n      }\n\n      if (contents) {\n        container.trigger('pjax:start', [null, options])\n\n        pjax.state = state\n        if (state.title) document.title = state.title\n        var beforeReplaceEvent = $.Event('pjax:beforeReplace', {\n          state: state,\n          previousState: previousState\n        })\n        container.trigger(beforeReplaceEvent, [contents, options])\n        container.html(contents)\n\n        container.trigger('pjax:end', [null, options])\n      } else {\n        pjax(options)\n      }\n\n      // Force reflow/relayout before the browser tries to restore the\n      // scroll position.\n      container[0].offsetHeight // eslint-disable-line no-unused-expressions\n    } else {\n      locationReplace(location.href)\n    }\n  }\n  initialPop = false\n}\n\n// Fallback version of main pjax function for browsers that don't\n// support pushState.\n//\n// Returns nothing since it retriggers a hard form submission.\nfunction fallbackPjax(options) {\n  var url = $.isFunction(options.url) ? options.url() : options.url,\n      method = options.type ? options.type.toUpperCase() : 'GET'\n\n  var form = $('<form>', {\n    method: method === 'GET' ? 'GET' : 'POST',\n    action: url,\n    style: 'display:none'\n  })\n\n  if (method !== 'GET' && method !== 'POST') {\n    form.append($('<input>', {\n      type: 'hidden',\n      name: '_method',\n      value: method.toLowerCase()\n    }))\n  }\n\n  var data = options.data\n  if (typeof data === 'string') {\n    $.each(data.split('&'), function(index, value) {\n      var pair = value.split('=')\n      form.append($('<input>', {type: 'hidden', name: pair[0], value: pair[1]}))\n    })\n  } else if ($.isArray(data)) {\n    $.each(data, function(index, value) {\n      form.append($('<input>', {type: 'hidden', name: value.name, value: value.value}))\n    })\n  } else if (typeof data === 'object') {\n    var key\n    for (key in data)\n      form.append($('<input>', {type: 'hidden', name: key, value: data[key]}))\n  }\n\n  $(document.body).append(form)\n  form.submit()\n}\n\n// Internal: Abort an XmlHttpRequest if it hasn't been completed,\n// also removing its event handlers.\nfunction abortXHR(xhr) {\n  if ( xhr && xhr.readyState < 4) {\n    xhr.onreadystatechange = $.noop\n    xhr.abort()\n  }\n}\n\n// Internal: Generate unique id for state object.\n//\n// Use a timestamp instead of a counter since ids should still be\n// unique across page loads.\n//\n// Returns Number.\nfunction uniqueId() {\n  return (new Date).getTime()\n}\n\nfunction cloneContents(container) {\n  var cloned = container.clone()\n  // Unmark script tags as already being eval'd so they can get executed again\n  // when restored from cache. HAXX: Uses jQuery internal method.\n  cloned.find('script').each(function(){\n    if (!this.src) $._data(this, 'globalEval', false)\n  })\n  return cloned.contents()\n}\n\n// Internal: Strip internal query params from parsed URL.\n//\n// Returns sanitized url.href String.\nfunction stripInternalParams(url) {\n  url.search = url.search.replace(/([?&])(_pjax|_)=[^&]*/g, '').replace(/^&/, '')\n  return url.href.replace(/\\?($|#)/, '$1')\n}\n\n// Internal: Parse URL components and returns a Locationish object.\n//\n// url - String URL\n//\n// Returns HTMLAnchorElement that acts like Location.\nfunction parseURL(url) {\n  var a = document.createElement('a')\n  a.href = url\n  return a\n}\n\n// Internal: Return the `href` component of given URL object with the hash\n// portion removed.\n//\n// location - Location or HTMLAnchorElement\n//\n// Returns String\nfunction stripHash(location) {\n  return location.href.replace(/#.*/, '')\n}\n\n// Internal: Build options Object for arguments.\n//\n// For convenience the first parameter can be either the container or\n// the options object.\n//\n// Examples\n//\n//   optionsFor('#container')\n//   // => {container: '#container'}\n//\n//   optionsFor('#container', {push: true})\n//   // => {container: '#container', push: true}\n//\n//   optionsFor({container: '#container', push: true})\n//   // => {container: '#container', push: true}\n//\n// Returns options Object.\nfunction optionsFor(container, options) {\n  if (container && options) {\n    options = $.extend({}, options)\n    options.container = container\n    return options\n  } else if ($.isPlainObject(container)) {\n    return container\n  } else {\n    return {container: container}\n  }\n}\n\n// Internal: Filter and find all elements matching the selector.\n//\n// Where $.fn.find only matches descendants, findAll will test all the\n// top level elements in the jQuery object as well.\n//\n// elems    - jQuery object of Elements\n// selector - String selector to match\n//\n// Returns a jQuery object.\nfunction findAll(elems, selector) {\n  return elems.filter(selector).add(elems.find(selector))\n}\n\nfunction parseHTML(html) {\n  return $.parseHTML(html, document, true)\n}\n\n// Internal: Extracts container and metadata from response.\n//\n// 1. Extracts X-PJAX-URL header if set\n// 2. Extracts inline <title> tags\n// 3. Builds response Element and extracts fragment if set\n//\n// data    - String response data\n// xhr     - XHR response\n// options - pjax options Object\n//\n// Returns an Object with url, title, and contents keys.\nfunction extractContainer(data, xhr, options) {\n  var obj = {}, fullDocument = /<html/i.test(data)\n\n  // Prefer X-PJAX-URL header if it was set, otherwise fallback to\n  // using the original requested url.\n  var serverUrl = xhr.getResponseHeader('X-PJAX-URL')\n  obj.url = serverUrl ? stripInternalParams(parseURL(serverUrl)) : options.requestUrl\n\n  var $head, $body\n  // Attempt to parse response html into elements\n  if (fullDocument) {\n    $body = $(parseHTML(data.match(/<body[^>]*>([\\s\\S.]*)<\\/body>/i)[0]))\n    var head = data.match(/<head[^>]*>([\\s\\S.]*)<\\/head>/i)\n    $head = head != null ? $(parseHTML(head[0])) : $body\n  } else {\n    $head = $body = $(parseHTML(data))\n  }\n\n  // If response data is empty, return fast\n  if ($body.length === 0)\n    return obj\n\n  // If there's a <title> tag in the header, use it as\n  // the page's title.\n  obj.title = findAll($head, 'title').last().text()\n\n  if (options.fragment) {\n    var $fragment = $body\n    // If they specified a fragment, look for it in the response\n    // and pull it out.\n    if (options.fragment !== 'body') {\n      $fragment = findAll($fragment, options.fragment).first()\n    }\n\n    if ($fragment.length) {\n      obj.contents = options.fragment === 'body' ? $fragment : $fragment.contents()\n\n      // If there's no title, look for data-title and title attributes\n      // on the fragment\n      if (!obj.title)\n        obj.title = $fragment.attr('title') || $fragment.data('title')\n    }\n\n  } else if (!fullDocument) {\n    obj.contents = $body\n  }\n\n  // Clean up any <title> tags\n  if (obj.contents) {\n    // Remove any parent title elements\n    obj.contents = obj.contents.not(function() { return $(this).is('title') })\n\n    // Then scrub any titles from their descendants\n    obj.contents.find('title').remove()\n\n    // Gather all script[src] elements\n    obj.scripts = findAll(obj.contents, 'script[src]').remove()\n    obj.contents = obj.contents.not(obj.scripts)\n  }\n\n  // Trim any whitespace off the title\n  if (obj.title) obj.title = $.trim(obj.title)\n\n  return obj\n}\n\n// Load an execute scripts using standard script request.\n//\n// Avoids jQuery's traditional $.getScript which does a XHR request and\n// globalEval.\n//\n// scripts - jQuery object of script Elements\n//\n// Returns nothing.\nfunction executeScriptTags(scripts) {\n  if (!scripts) return\n\n  var existingScripts = $('script[src]')\n\n  scripts.each(function() {\n    var src = this.src\n    var matchedScripts = existingScripts.filter(function() {\n      return this.src === src\n    })\n    if (matchedScripts.length) return\n\n    var script = document.createElement('script')\n    var type = $(this).attr('type')\n    if (type) script.type = type\n    script.src = $(this).attr('src')\n    document.head.appendChild(script)\n  })\n}\n\n// Internal: History DOM caching class.\nvar cacheMapping      = {}\nvar cacheForwardStack = []\nvar cacheBackStack    = []\n\n// Push previous state id and container contents into the history\n// cache. Should be called in conjunction with `pushState` to save the\n// previous container contents.\n//\n// id    - State ID Number\n// value - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePush(id, value) {\n  cacheMapping[id] = value\n  cacheBackStack.push(id)\n\n  // Remove all entries in forward history stack after pushing a new page.\n  trimCacheStack(cacheForwardStack, 0)\n\n  // Trim back history stack to max cache length.\n  trimCacheStack(cacheBackStack, pjax.defaults.maxCacheLength)\n}\n\n// Shifts cache from directional history cache. Should be\n// called on `popstate` with the previous state id and container\n// contents.\n//\n// direction - \"forward\" or \"back\" String\n// id        - State ID Number\n// value     - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePop(direction, id, value) {\n  var pushStack, popStack\n  cacheMapping[id] = value\n\n  if (direction === 'forward') {\n    pushStack = cacheBackStack\n    popStack  = cacheForwardStack\n  } else {\n    pushStack = cacheForwardStack\n    popStack  = cacheBackStack\n  }\n\n  pushStack.push(id)\n  id = popStack.pop()\n  if (id) delete cacheMapping[id]\n\n  // Trim whichever stack we just pushed to to max cache length.\n  trimCacheStack(pushStack, pjax.defaults.maxCacheLength)\n}\n\n// Trim a cache stack (either cacheBackStack or cacheForwardStack) to be no\n// longer than the specified length, deleting cached DOM elements as necessary.\n//\n// stack  - Array of state IDs\n// length - Maximum length to trim to\n//\n// Returns nothing.\nfunction trimCacheStack(stack, length) {\n  while (stack.length > length)\n    delete cacheMapping[stack.shift()]\n}\n\n// Public: Find version identifier for the initial page load.\n//\n// Returns String version or undefined.\nfunction findVersion() {\n  return $('meta').filter(function() {\n    var name = $(this).attr('http-equiv')\n    return name && name.toUpperCase() === 'X-PJAX-VERSION'\n  }).attr('content')\n}\n\n// Install pjax functions on $.pjax to enable pushState behavior.\n//\n// Does nothing if already enabled.\n//\n// Examples\n//\n//     $.pjax.enable()\n//\n// Returns nothing.\nfunction enable() {\n  $.fn.pjax = fnPjax\n  $.pjax = pjax\n  $.pjax.enable = $.noop\n  $.pjax.disable = disable\n  $.pjax.click = handleClick\n  $.pjax.submit = handleSubmit\n  $.pjax.reload = pjaxReload\n  $.pjax.defaults = {\n    timeout: 650,\n    push: true,\n    replace: false,\n    type: 'GET',\n    dataType: 'html',\n    scrollTo: 0,\n    maxCacheLength: 20,\n    version: findVersion\n  }\n  $(window).on('popstate.pjax', onPjaxPopstate)\n}\n\n// Disable pushState behavior.\n//\n// This is the case when a browser doesn't support pushState. It is\n// sometimes useful to disable pushState for debugging on a modern\n// browser.\n//\n// Examples\n//\n//     $.pjax.disable()\n//\n// Returns nothing.\nfunction disable() {\n  $.fn.pjax = function() { return this }\n  $.pjax = fallbackPjax\n  $.pjax.enable = enable\n  $.pjax.disable = $.noop\n  $.pjax.click = $.noop\n  $.pjax.submit = $.noop\n  $.pjax.reload = function() { window.location.reload() }\n\n  $(window).off('popstate.pjax', onPjaxPopstate)\n}\n\n\n// Add the state property to jQuery's event object so we can use it in\n// $(window).bind('popstate')\nif ($.event.props && $.inArray('state', $.event.props) < 0) {\n  $.event.props.push('state')\n} else if (!('state' in $.Event.prototype)) {\n  $.event.addProp('state')\n}\n\n// Is pjax supported by this browser?\n$.support.pjax =\n  window.history && window.history.pushState && window.history.replaceState &&\n  // pushState isn't reliable on iOS until 5.\n  !navigator.userAgent.match(/((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/)\n\nif ($.support.pjax) {\n  enable()\n} else {\n  disable()\n}\n\n})(jQuery)\n"
  },
  {
    "path": "public/static/home/toc-helper/css/toc-helper.css",
    "content": "body{\n    font-size: 1rem;\n    line-height: 1.5;\n}\n\n.toc, .toc * {\n    box-sizing: border-box;\n}\n.toc {\n    padding: 1rem 0;\n    /* box-shadow: 0 0 .2rem .2rem #eee; */\n    width: 100%;\n    max-width: 350px;\n    margin: 0;\n    color: #333;\n    position: relative;\n    background: #fff;\n}\n.toc.shadow{\n    box-shadow: 0 0 0.5rem #eee;\n}\n.toc.toc-fixed{\n    position: fixed;\n    top: 24px;\n    z-index:10;\n}\n.toc-hightlight {\n    width: 100%;\n    background: #eee;\n    position: absolute;\n    left: 0;\n    top: 0;\n    border-left: 3px solid #009a61;\n    transition: all .2s ease;\n}\n\n.toc-brand {\n    padding: 0 1.25rem;\n    font-weight: bold;\n    font-size: 1rem;\n    line-height: inherit;\n    white-space: nowrap;\n    display: block;\n    width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n.toc-navbar {\n    position: relative;\n    display: block;\n    /* max-height: 500px;\n    overflow-y: auto; */\n    scroll-behavior: smooth;\n}\n/* 滚动条 */\n.toc-navbar::-webkit-scrollbar-thumb:horizontal { /*水平滚动条的样式*/\n\twidth: 5px;\n\tbackground-color: #CCCCCC;\n\tborder-radius: 6px;\n}\n.toc-navbar::-webkit-scrollbar-track-piece {\n\tbackground-color: #fff; /*滚动条的背景颜色*/\n\tborder-radius: 0; /*滚动条的圆角宽度*/\n}\n.toc-navbar::-webkit-scrollbar {\n\twidth: 10px; /*滚动条的宽度*/\n\theight: 8px; /*滚动条的高度*/\n}\n.toc-navbar::-webkit-scrollbar-thumb:vertical { /*垂直滚动条的样式*/\n\theight: 50px;\n\tbackground-color: #999;\n\tborder-radius: 4px;\n\toutline: 2px solid #fff;\n\toutline-offset: -2px;\n\tborder: 2px solid #fff;\n}\n.toc-navbar::-webkit-scrollbar-thumb:hover { /*滚动条的hover样式*/\n\theight: 50px;\n\tbackground-color: #9f9f9f;\n    border-radius: 4px;\n}\n\n.toc-nav {\n    display: block;\n    padding-left: 0;\n    margin-bottom: 0;\n    transition: all .3s ease;\n}\n\n.toc-link {\n    display: block;\n    padding: 0.2rem 1.7rem;\n    font-size: 0.9rem;\n    text-decoration: none;\n    color: #555;\n    position: relative;\n}\n\n.toc-link::before {\n    content: ' ';\n    height: .25rem;\n    width: 0.25rem;\n    background: #555;\n    position: absolute;\n    top: .8rem;\n    left: 1rem;\n}\n\n.toc-link.active::before,\n.toc-link:hover::before {\n    background: #009a61;\n}\n\n.toc-link.active,\n.toc-link:hover {\n    color: #009a61;\n}\n\n/* .toc-link+.toc-nav{\n    max-height: 0;\n    overflow: hidden;\n}\n\n.toc-link.active+.toc-nav{\n    max-height: 1000rem;\n} */\n\n.toc-link.ml-1 {\n    margin-left: 1rem !important;\n}\n\n.toc-link.ml-2 {\n    margin-left: 2rem !important;\n}\n\n.toc-link.ml-3 {\n    margin-left: 3rem !important;\n}\n\n.toc-link.ml-4 {\n    margin-left: 4rem !important;\n}\n\n.toc-link.ml-5 {\n    margin-left: 5rem !important;\n}\n\n.toc-link.ml-6 {\n    margin-left: 6rem !important;\n}\n"
  },
  {
    "path": "public/static/home/toc-helper/js/toc-helper.js",
    "content": "\n'use strict';\n\n\nconst doc = document,\n    win = window,\n    body = doc.body,\n    $ = doc.querySelector.bind(doc),\n    $$ = doc.querySelectorAll.bind(doc),\n    animate = win.requestAnimationFrame,\n    isMobile = (/Mobile|Android|iOS|iPhone|iPad|iPod|Windows Phone|KFAPWI/i.test(navigator.userAgent)),\n    enterEvent = isMobile ? 'touchstart' : 'mouseenter',\n    leaveEvent = isMobile ? 'touchend' : 'mouseleave',\n    clickEvent = isMobile ? 'touchend' : 'click',\n    resize = isMobile ? 'orientationchange' : 'resize',\n    scrollEvent = 'scroll',\n\n    scrollDir = {\n        V: 'vertical',   //竖\n        H: 'horizontal'  // 水平\n    },\n    isHTMLElement = function (el) {\n        return el instanceof HTMLElement\n    },\n    isString = function (o) {\n        return typeof o === 'string'\n    },\n    isObject = function (o) {\n        return Object.prototype.toString.call(o) === '[object Object]'\n    },\n    getDom = (selector) => {\n        try {\n            return $(selector)\n        } catch (error) {\n            return null\n        }\n    },\n    css = function (el, key, value) {\n        if (el && !value) {\n            return win.getComputedStyle(el).getPropertyValue(key)\n        }\n        el.style[key] = value\n    },\n    isPosition = function (el) {\n        const position = css(el, 'position')\n        return position && position !== 'static'\n    },\n    hasScrollbar = function (el, dir = scrollDir.V) { //horizontal 水平\n        return dir === scrollDir.V ? el.scrollHeight > el.clientHeight : (dir === scrollDir.H ? el.scrollWidth > el.clientWidth : false)\n    }\n\n// 窗口可视高度\nlet viewHeight = doc.documentElement.clientHeight\n\n\nconst CLASS_NAMES = {\n    TOC: 'toc'\n}\nconst SELECTORS = {\n    DATA_TOC: '*[data-toc]'\n}\nconst defaultOptions = {\n    dom: SELECTORS.DATA_TOC,\n    classNames: {\n        toc: CLASS_NAMES.TOC,\n        fxied: `${CLASS_NAMES.TOC}-fixed`,\n        brand: `${CLASS_NAMES.TOC}-brand`,\n        navbar: `${CLASS_NAMES.TOC}-navbar`,\n        hightlight: `${CLASS_NAMES.TOC}-hightlight`,\n        nav: `${CLASS_NAMES.TOC}-nav`,\n        link: `${CLASS_NAMES.TOC}-link`,\n        active: 'active',\n        marginLeft1: 'ml-1',\n        marginLeft2: 'ml-2',\n        marginLeft3: 'ml-3',\n        marginLeft4: 'ml-4',\n        marginLeft5: 'ml-5',\n        marginLeft6: 'ml-6'\n    },\n    hightlight: true,\n    brand: '目录',\n    shadow: 'shadow',\n    idPrefix: 'toc-heading-',\n    offsetBody: body,\n    tocFixed: {\n        top: 24,\n        left: 0\n    },\n    maxDepth: 6,\n    autoScroll: true    //自动添加滚动条\n}\n\nconst TocHelper = function (selector, options = defaultOptions) {\n\n    if (isString(selector) || isHTMLElement(selector)) {\n        options.dom = selector\n    } else if (isObject(selector)) {\n        options = selector\n    }\n    this.options = Object.assign({}, defaultOptions, options)\n\n    this.megre()\n\n    this.winEvents()\n\n    return this\n\n}\n\nTocHelper.prototype = {\n    megre: function (newOptions = {}) {\n        if (!isObject(newOptions)) return\n        this.options = Object.assign({}, this.options, newOptions)\n\n        if (isString(this.options.dom)) {\n            this.options.dom = $(this.options.dom) || $(SELECTORS.DATA_TOC)\n        }\n        if (!this.options.dom || !isHTMLElement(this.options.dom)) {\n            throw new Error('Not found any content, Please sure this dom is exist')\n        }\n\n        let maxDepth = null\n        this.options.maxDepth = (maxDepth = parseInt(this.options.maxDepth || 6), maxDepth >= 1 && maxDepth <= 6 ? maxDepth : 6)\n\n        let offsetBody = this.options.offsetBody\n        if (!offsetBody || offsetBody === body) {\n            this.options.offsetBody = body\n        } else if (isHTMLElement(offsetBody)) {\n            this.options.offsetBody = isPosition(offsetBody) ? offsetBody : body\n        } else if (isString(offsetBody)) {\n            const _offsetBody = getDom(offsetBody)\n            if (!_offsetBody || _offsetBody === body) {\n                this.options.offsetBody = body\n            } else {\n                this.options.offsetBody = isPosition(offsetBody) ? _offsetBody : body\n            }\n        } else {\n            this.options.offsetBody = body\n        }\n\n        this.toc = $(this.options.dom.dataset.toc) || $(`.${this.options.classNames.toc}`)\n        const tocClassList = this.toc && this.toc.classList\n        tocClassList && !tocClassList.contains(this.options.classNames.toc) && tocClassList.add(this.options.classNames.toc)\n\n        return this\n    },\n    reload: function () {\n\n        this.hightlight = this.options.hightlight === true ? $(`.${this.options.classNames.hightlight}`) : null\n\n        this.navbar = this.navbar || $(`.${this.options.classNames.navbar}`)\n\n        this.tocEvent()\n\n        this.fixed()\n\n        this.shadow()\n\n        !this.elements && (this.elements = this.loadHeadings());\n        this.events = [this.offsetBodyScrollEvent.bind(this)]\n\n        this.offsetBodyScrollDebounce()\n        // 默认激活\n        this.activeToc()\n        // 滚动条位置同步\n        this.syncTocScroll()\n\n        // 自动生成滚动条\n        this.setTocScroll()\n    },\n    winEvents: function () {\n        const _this = this\n        win.addEventListener(resize, function () {\n            // 设备大小变化后重新设置高度\n            viewHeight = doc.documentElement.clientHeight\n            _this.debounce(_this.setTocScroll, 200).call(_this)\n        })\n    },\n    // 设置navbar的滚动条样式\n    setTocScroll: function () {\n        this.resetTocScroll()\n        const tocFixed = this.options.tocFixed,\n            navbar = this.navbar\n        if (this.options.autoScroll && tocFixed && this.toc.offsetHeight + (tocFixed.top || 0) > viewHeight) {\n            const maxHeight = (viewHeight - this.getOffsetY(navbar) - (tocFixed.top || 0))\n            navbar.style.maxHeight = maxHeight + 'px'\n            navbar.style.overflowY = 'auto'\n        }\n    },\n    // 重置样式\n    resetTocScroll: function () {\n        this.navbar.style.maxHeight = 'inherit'\n        this.navbar.style.overflowY = 'inherit'\n    },\n    // 若有滚动条计算滚动条的位置\n    syncTocScroll: function () {\n        const navbar = this.navbar, active = this.active\n        if (!active || !hasScrollbar(navbar)) return\n        const activeTop = active.offsetTop\n        navbar.scrollTo(0, activeTop)\n    },\n    // 内容/文章的滚动事件处理\n    offsetBodyScrollEvent: function () {\n        // 目录高亮显示\n        this.activeToc()\n        // 目录滚动条同步\n        this.syncTocScroll()\n    },\n    addOffsetBodyScrollEvent: function () {\n        const el = this.options.offsetBody === body ? win : this.options.offsetBody\n        el.addEventListener(scrollEvent, this.events[0])\n    },\n    removeOffsetBodyScrollEvent: function () {\n        const el = this.options.offsetBody === body ? win : this.options.offsetBody\n        el.removeEventListener(scrollEvent, this.events[0])\n    },\n    offsetBodyScrollDebounce: function () {\n        this.removeOffsetBodyScrollEvent()\n        // 防止抖动\n        this.debounce(this.addOffsetBodyScrollEvent, 200).call(this)\n    },\n    reset: function () {\n\n        this.clear()\n\n        const frag = doc.createDocumentFragment()\n        const elements = this.elements = this.loadHeadings(),\n            targets = elements.targets,\n            levels = elements.levels\n\n        // 创建 brand = 目录\n        if (typeof this.options.brand === 'string') {\n            const brand = doc.createElement('div')\n            brand.classList.add(this.options.classNames.brand)\n            brand.textContent = this.options.brand\n            frag.appendChild(brand)\n        }\n\n        // 创建navbar\n        const navbar = doc.createElement('div')\n        navbar.classList.add(this.options.classNames.navbar)\n        frag.appendChild(navbar)\n\n        this.navbar = navbar\n\n        // 创建hightlight\n        if (this.options.hightlight === true) {\n            const hightlight = doc.createElement('div')\n            hightlight.classList.add(this.options.classNames.hightlight)\n            navbar.appendChild(hightlight)\n        }\n\n        const navClassName = this.options.classNames.nav\n        // 将节点添加到文档中\n        let lastNavNode = null, lastLevel = 1;\n        levels.forEach((level, index, thisArray) => {\n            const target = targets[index]\n            if (!target) return\n\n            if (index === 0 || thisArray[index - 1] !== level) {\n                // 创建nav\n                const nav = doc.createElement('nav')\n                nav.classList.add(navClassName)\n                nav.appendChild(target)\n\n                if (level === 1) {\n                    // 层级为1 \n                    navbar.appendChild(nav)\n                } else if (level >= lastLevel) {\n                    lastNavNode.appendChild(nav)\n                } else {\n                    let _lastLevelNode = lastNavNode.parentNode\n                    for (let i = 0; i < lastLevel - level - 1; i++) {\n                        _lastLevelNode = _lastLevelNode.parentNode\n                    }\n                    _lastLevelNode && _lastLevelNode.appendChild(nav)\n                }\n                lastNavNode = nav\n                lastLevel = level\n\n            } else {\n                lastNavNode.appendChild(target)\n            }\n        })\n\n        this.toc.appendChild(frag)\n\n        this.reload()\n    },\n    getOffsetBodyScrollTop: function () {\n        const offsetBody = this.options.offsetBody\n        return offsetBody === win ? offsetBody.pageYOffset : offsetBody === body ? doc.documentElement.scrollTop || body.scrollTop : offsetBody.scrollTop\n    },\n    // __GID().next().value\n    GID: function () {\n        let current_id = 0, idPrefix = this.options.idPrefix\n        return {\n            next: function () {\n                current_id++;\n                const value = `${idPrefix}${current_id}`\n                return { value }\n            }\n        }\n    },\n    debounce: function (fn, delay) {\n        return function () {\n            var _this = this, args = arguments\n            fn.timer && clearTimeout(fn.timer)\n            fn.timer = setTimeout(() => {\n                fn.apply(_this, args)\n            }, delay)\n        }\n    },\n    empty: function (parent) {\n        if (!parent || !isHTMLElement(parent)) return\n        while (parent.lastChild) {\n            parent.removeChild(parent.lastChild)\n        }\n    },\n    clear: function () {\n        this.empty(this.toc)\n        this.elements = null\n    },\n\n    activeToc: function () {\n        const _this = this,\n            elements = _this.elements,\n            offsets = elements.offsets,\n            targets = elements.targets,\n            top = _this.getOffsetBodyScrollTop(),\n            // 判断当前滚动条在那个区间\n            index = offsets.findIndex(el => Number(el) > top)\n\n        let tocLink = targets[index];\n\n        tocLink && (this.setActive(tocLink))\n    },\n    getOffsetY: function (el, stopParent = body) {\n        let y = el.offsetTop\n        if (el.offsetParent && el.offsetParent !== stopParent) {\n            y += this.getOffsetY(el.offsetParent)\n        }\n        return y\n    },\n    /**\n     * 获取heading对应的信息\n     * @returns levels 所有元素的层级\n     * @returns offsets heading元素的偏移量\n     * @returns sources heading元素集合\n     * @returns targets heading元素对于的目录元素\n     */\n    loadHeadings: function () {\n        const _this = this, maxDepth = this.options.maxDepth,\n            rootLevel = 1, lastLevel = maxDepth,\n            headings = Array.from(this.options.dom.querySelectorAll(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].slice(0, maxDepth).join(',')) || []),\n            GID_GENERATE = this.GID()\n\n        /**\n         * 元素退级处理\n         * @param {*} headings heading元素集合\n         * @param {*} curIndex 当前元素在headings集合中的下表\n         * @param {*} curOriginaLevel 当前元素原始的层级\n         */\n        const backLevel = function (headings, curIndex, curOriginaLevel) {\n\n            // if (headings[curIndex].textContent.indexOf('Test') > -1) debugger\n\n            // 小于1 和当前为第一个heading的层级均为1\n            if (curOriginaLevel <= rootLevel || curIndex === 0) return rootLevel\n\n            // 大于最大层级的heading层级均为maxDepth\n            if (curOriginaLevel > lastLevel) return lastLevel\n\n            // 将当前heading的层级和heading之前的层级对比，进行退级或保留层级操作\n            const _headings = headings.filter((head, i) => i < curIndex)\n\n            for (let i = _headings.length - 1; i >= 0; i--) {\n\n                // 上一个heading的层级 - 经过退级操作的层级\n                const preLevel = _headings[i][1]\n                // 上一个heading\n                const preHeading = _headings[i][3]\n\n                // 上一个heading的元素原始层级\n                const preOriginaLevel = +preHeading.nodeName[1]\n\n                if (curOriginaLevel < preOriginaLevel) {\n                    // 当前层级比上一层级小直接退级到上一层级 - 对比原始层级\n                    if (curOriginaLevel > preLevel) {\n                        // 当前层级比上一层级退级的大\n                        return preLevel\n                    }\n                    return curOriginaLevel//preLevel\n                } else if (curOriginaLevel === preOriginaLevel) {\n                    // 当前层级于上一层级相等直接等于上一层级 - 对比原始层级\n                    return preLevel\n                } else if (preOriginaLevel < curOriginaLevel) {\n                    // 当前层级比上一层级大 ， 退级到上一层级+1 - 对比原始层级\n                    // 此处对比原始层级无意义\n                    return preLevel + 1\n                }\n                // 继续 对比\n            }\n        }\n        /**\n         * 设置heading的id\n         * @param {*} heading 给没有ID或ID重复的heading设置Id\n         */\n\n        const setId = function (heading) {\n            if (!heading.id || $$(`#${heading.id}`).length !== 1) {\n                heading.id = GID_GENERATE.next().value\n            }\n            return heading\n        }\n        /**\n         * 获取当前heading元素到offsetBody元素的距离\n         * @param {*} heading  heading元素\n         */\n        /* const getOffsetY = function (heading) {\n            let y = heading.offsetTop\n            if (heading.offsetParent && heading.offsetParent !== _this.options.offsetBody) {\n                y += getOffsetY(heading.offsetParent)\n            }\n            return y\n        } */\n        /**\n         * 获取toclink\n         * @param {*} heading \n         * @param {*} level \n         */\n        const loadTocLink = function (heading, level) {\n            if (!heading.textContent.replace(/\\s/g, '')) return false\n            let tocLink = _this.toc.querySelector(`a[href=\"#${heading.id}\"]`)\n            if (!tocLink) {\n                // 不存在就创建一个\n                tocLink = doc.createElement('a')\n                tocLink.href = `#${heading.id}`\n                tocLink.classList.add(_this.options.classNames.link)\n                if (level >= 2) {\n                    tocLink.classList.add(`${_this.options.classNames[`marginLeft${level - 1}`]}`)\n                }\n                tocLink.textContent = heading.textContent\n            }\n            return tocLink\n        }\n\n        headings.forEach((heading, i, thisArray) => {\n            // 获取层级\n            const level = backLevel(thisArray, i, +heading.nodeName[1]),\n                // 获取当前heading元素距离父级的距离\n                y = _this.getOffsetY(heading, _this.options.offsetBody)\n            // 设置ID\n            setId(heading)\n            // 获取toc目录\n            const tocLink = loadTocLink(heading, level)\n            /* if(tocLink === false){\n                thisArray.splice(i, 1)\n                i = i - 1\n            }else{\n            } */\n            /* * @returns 0 heading元素下标 */\n            /* * @returns 1 heading元素的层级 */\n            /* * @returns 2 heading到父级（offsetBody ）的距离*/\n            /* * @returns 3 heading元素本身 */\n            /* * @returns 4 heading元素对应的link元素 */\n            // [0, level, offsetTop, element, tocLinkElement]\n            thisArray.splice(i, 1, [i, level, y, heading, tocLink])\n\n        })\n\n        const elements = { levels: [], offsets: [], sources: [], targets: [] }\n        headings.forEach((headingItem, i) => {\n            elements.levels[i] = headingItem[1]\n            elements.offsets[i] = headingItem[2]\n            elements.sources[i] = headingItem[3]\n            elements.targets[i] = headingItem[4]\n        })\n        return elements\n    },\n    setActive: function (el) {\n\n        let active = this.active,\n            classList = active ? active.classList : []\n\n        const activeClassName = this.options.classNames.active,\n            defaultActiveSelector = `.${this.options.classNames.link}.${this.options.classNames.active}`\n\n        // 移除激活状态\n        active && classList.contains(activeClassName) && classList.remove(activeClassName)\n\n        active = this.active = el && isHTMLElement(el) ? el : $(defaultActiveSelector)\n        classList = active && (active.classList || [])\n\n        // 激活状态\n        active && !classList.contains(activeClassName) && classList.add(activeClassName)\n\n        // 设置高亮\n        this.setHightlight(active)\n\n    },\n    setHightlight: function (active) {\n        if (!this.hightlight) return\n        if (!active) {\n            this.hightlight.style.top = 0\n            this.hightlight.style.height = 0\n        } else {\n            this.hightlight.style.top = active.offsetTop + 'px'\n            this.hightlight.style.height = active.offsetHeight + 'px'\n        }\n    },\n    __enter: function (e) {\n        this.setHightlight(e.target)\n    },\n    __leave: function () {\n        this.setActive(this.active)\n    },\n    __click: function (e) {\n        // 防止滚动条抖动\n        this.offsetBodyScrollDebounce()\n        this.setActive(e.target)\n    },\n    // toc 事件\n    tocEvent: function () {\n        if (!this.hightlight) return\n\n        const _this = this\n        Array.from($$(`.${this.options.classNames.toc} .${this.options.classNames.link}`) || []).forEach(a => {\n            // 悬停事件\n            a.addEventListener(enterEvent, _this.__enter.bind(_this))\n            // 离开事件\n            a.addEventListener(leaveEvent, _this.__leave.bind(_this))\n            // 点击事件\n            a.addEventListener(clickEvent, _this.__click.bind(_this))\n        })\n\n    },\n    // 阴影\n    shadow: function () {\n        if (this.options.shadow === false) return\n        const toc = this.toc, classList = toc && (toc.classList || []), shadow = this.options.shadow\n        !classList.contains(shadow) && classList.add(shadow)\n    },\n    // fixed\n    fixed: function () {\n        const toc = this.toc\n        let tocFixed = this.options.tocFixed\n        if (!toc) return\n        const tocFixedClassName = this.options.classNames.fxied\n        const classList = toc.classList\n        if (tocFixed === false) {\n            toc.style.top = 'inherit'\n            toc.style.left = 'inherit'\n            classList.contains(tocFixedClassName) && classList.remove(tocFixedClassName)\n        } else {\n            !classList.contains(tocFixedClassName) && classList.add(tocFixedClassName)\n            tocFixed.top && (toc.style.top = tocFixed.top + 'px')\n            tocFixed.left && (toc.style.left = tocFixed.left + 'px')\n        }\n    }\n}\n\nmodule.exports = TocHelper\nmodule.exports.default = TocHelper"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/.babelrc.js",
    "content": "module.exports = {\n    presets: [\n        [\n            '@babel/env',\n            {\n                \"targets\": {\n                    \"browsers\": [   //https://github.com/browserslist/browserslist\n                        \"last 2 versions\",\n                    ]\n                },\n                \"useBuiltIns\": false,\n                \"modules\": false,\n                \"debug\": false\n            }\n        ]\n    ],\n    plugins: [\n        [\n            \"@babel/plugin-transform-runtime\",{\n                corejs: false,\n                helpers: false,\n                regenerator: false,\n                useESModules: false\n            }\n        ]\n    ]\n}"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/.gitignore",
    "content": "node_modules\nyarn*\ntoc-helper.zip"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 it浪子\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/README.md",
    "content": "# toc-helper\n<center>\n    <img src=\"./images/toc.png\" title=\"toc-helper\" alt=\"toc-helper\">\n</center>  \n\n演示站点:  <a href=\"http://www.itlangzi.com/toc-helper\" title=\"TocHelper演示站点\" target=\"_blank\">http://www.itlangzi.com/toc-helper</a>   \n## 一、 简介\n`TocHelper` 是一款给文章自动生成目录及侧边栏目录滚动特效的插件  \n**特点**  \n- jQuery Free  \n- 方便、灵活、高度定制化  \n- 自动退级  \n- `Hash` 定位  \n- 目录跟随 `Body / div` 滚动  \n\n## 二、 使用  \n### 2.1  浏览器  \n2.1.1 引入css和js\n```html\n<link href=\"css/toc-helper.min.css\" rel=\"stylesheet\" />\n<script src=\"js/toc-helper.min.js\"></script>\n```  \n2.1.2 文章内容添加 `data` 属性，值指向目录元素： `data-toc=\"#toc\"`  \n```html\n<div data-toc=\"#toc\"> </div>\n```  \n**注意：** `#toc` 选择器对应的目录元素必须存在  \n```html\n<div id=\"toc\"> </div>\n```  \n2.1.3 目录已经存在, 调用 `reload()` 方法\n```javascript\nnew TocHelper().reload();\n```  \n2.1.4 目录若不存在, 调用 `reset()` 方法，自动创建目录    \n```javascript\nnew TocHelper().reset();\n```  \n### 2.2  使用 `Webpack`, `Browserify`, `Gulp`, `Rollup` 等构建工具   \n2.2.1 使用 `npm` 安装 `TocHelper`  \n`npm install toc-helper --save`  OR  `yarn add toc-helper`  \n2.2.2 使用 `require` 引入 \n```javascript\nrequire('toc-helper/css/toc-helper.min.css')\nconst TocHelper = require('toc-helper')\n```  \n2.2.3 使用 `import` 引入  \n```javascript\nimport 'toc-helper/css/toc-helper.min.css'\nimport TocHelper from 'toc-helper'\n```  \n2.2.4 简单应用  \n```javascript\nnew TocHelper().reload()\n```  \n\n## 三、API  \n### `TocHelper([selector,options])`  \n> 构造器方法, 只能通过 `new` 创建实例  \n\n**selector**  \n类型：`string | HTMLElement | Object `  \n默认值： `无`  \n> `selector` 若为字符串，则必须是选择器，切可以通过该选择器获取相应的元素，否则无效  \n> `selector` 若为 `Object` ，则 `options = selector` 第二个参数无效  \n\n**options**  \n类型：` Object `  \n默认值： `{}`   \n> 合并初始的 `options` 参数，并重新 `load`; 比如 `class` 样式发生改变; `megre` 之后需要调用 `reload` 方法  \n\n### reload()  \n> 无参  \n\n实例化以及重新 `megre` 之后需要调用该方法  \n>实例化后若目录已经存在则调用该方法，若不存在则调用 `reset` 方法，生成目录会自动调用该方法  \n\n### reset()  \n> 无参  \n\n目录不存在或需要重新生成目录使用该方法  \n\n## 四、配置\n### `options `  \n#### 1. `dom`  \n> 文章内容 `Dom` 元素， 选择器或 `HTMLElement` 类型的 `Dom` 元素  \n\n类型：`string | HTMLElement`  \n默认值：`*[data-toc]`  \n\n### 2. `classNames`\n`class` 选择器名称  \n\n#### 2.1 `toc`  \n> 目录元素的 `class` 选择器名称  \n\n类型：`string`  \n默认值：`toc`  \n\n#### 2.2 `fxied`  \n> 目录元素 `position=fixed` 的 `class` 选择器名称 \n\n类型：`string`  \n默认值：`toc-fixed`  \n\n#### 2.3 `brand`  \n> `目录` 字的 `class` 选择器名称\n\n类型：`string`  \n默认值：`toc-brand`  \n\n#### 2.4 `navbar`  \n> 目录菜单 `class` 选择器名称\n\n类型：`string`  \n默认值：`toc-navbar`  \n\n#### 2.5 `hightlight`  \n> 激活高亮/鼠标悬停高亮的 `class` 选择器名称\n\n类型：`string`  \n默认值：`toc-hightlight`  \n\n#### 2.6 `nav`  \n> 菜单父级节点`class`选择器名称\n\n类型：`string`  \n默认值：`toc-nav`  \n\n#### 2.7 `link`  \n> 菜单项`class`选择器名称\n\n类型：`string`  \n默认值：`toc-link`  \n\n#### 2.8 `active`  \n> 菜单项激活后的`class`选择器名称\n\n类型：`string`  \n默认值：`active`  \n\n#### 2.9 `marginLeft1`  \n> 二级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-1`  \n\n#### 2.10 `marginLeft1`  \n> 二级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-1`  \n\n#### 2.11 `marginLeft2`  \n> 三级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-2`  \n\n#### 2.12 `marginLeft3`  \n> 四级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-3`  \n\n#### 2.13 `marginLeft4`  \n> 五级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-4`  \n\n#### 2.14 `marginLeft5`  \n> 六级标题偏移的`class`选择器名称\n\n类型：`string`  \n默认值：`ml-5`  \n\n#### ~~2.15 `marginLeft6`~~\n> ~~暂无使用~~  \n\n### 3. `hightlight`  \n> 是否高亮显示  \n\n类型：` Boolean `  \n默认值：`true`  \n\n### 4. `brand`  \n> 目录文本  \n\n类型：` string `  \n默认值：`目录`  \n\n### 5. `shadow`  \n> 目录阴影   \n\n类型：` string | false `  \n默认值：`shadow`  \n> 若为`string` ，则提供阴影的样式`class`选择器名称,` false`表示禁用阴影\n\n### 6. `idPrefix`  \n> 生成`ID`选择器的前缀  \n\n类型：`string`  \n默认值：`toc-heading-`  \n> 后缀由数字组成  \n\n### 7. `offsetBody`  \n> 内容父级定位元素，该元素必须存在`position`属性，切`position`的值不等于`static`, 否则此值等于`body`   \n\n类型：`string | HTMLElement`  \n默认值：`document.body`  \n> 为`string`类型时，必须是选择器；无论是`string`类型，还是`HTMLElement`类型，都必须有`position`属性，切`position`的值不等于`static`，否则此值等于`body`  \n\n### 8. `topFixed`  \n> 不使用或设置目录`fixed`定位   \n\n类型：`false | Object`  \n默认值：`如下`  \n> `false`表示不使用`fixed`定位；`Object`如下：  \n\n#### 8.1 `top`  \n> 目录距离文档顶部的偏移量  \n\n类型： `Number`  \n默认值：`24`  \n\n#### 8.2 `left`  \n> 目录距离文档左侧的偏移量  \n\n类型： `Number`  \n默认值：`无`  \n\n### 9 `maxDepth`  \n> 目录最大层级  \n\n类型： `Number`  \n默认值：`6`  \n> 层级最大为`6` ，最小为`1`，其他值无效\n\n### 10 `autoScroll`  \n> 自动添加滚动条  \n\n类型： `Boolean`  \n默认值：`true`  \n>若 `autoScroll=true` 需满足以下条件：\n>- 目录高度要大于可视高度 \n>- `tocFixed` 不等于 `false`\n\n ## 五、示例`options`全部配置信息  \n ```javascript\n {\n    dom: '*[data-toc]', // 文章内容元素 选择器 或 HTMLElement\n    classNames: {       // class选择器\n        toc: 'toc',\n        fxied: 'toc-fixed',\n        brand: 'toc-brand',\n        navbar: 'toc-navbar',\n        hightlight: 'toc-hightlight',\n        nav: 'toc-nav',\n        link: 'toc-link',\n        active: 'active',\n        marginLeft1: 'ml-1',\n        marginLeft2: 'ml-2',\n        marginLeft3: 'ml-3',\n        marginLeft4: 'ml-4',\n        marginLeft5: 'ml-5',\n        marginLeft6: 'ml-6'\n    },\n    hightlight: true,\n    brand: '目录',\n    shadow: 'shadow',\n    idPrefix: 'toc-heading-',\n    offsetBody: document.body,\n    tocFixed: {\n        top: 24,\n        left: 0\n    },\n    maxDepth: 6,\n    autoScroll: true\n}\n ```  \n\n# 注意：\n使用锚点 / `Hash`定位时，若存在头部使用了`fixed`或`absolute`定位，会出现定位没达到预期效果; 可将所有的标题`padding-top`等于头部的高, `margin-top`等于头部高的相反值，这样可以解决定位不准切不会影响布局；\n\n**示例代码如下:**  \n```css\n*[data-toc] h1,\n*[data-toc] h2,\n*[data-toc] h3,\n*[data-toc] h4,\n*[data-toc] h5,\n*[data-toc] h6 {\n    margin-top: -83px;\n    padding-top: 83px;\n}\n```  \n# 即将支持的功能  \n- ~~目录自动添加滚动条 已实现~~\n- ~~实现内容->目录联动滚动 已实现~~\n- 自动折叠/展开\n- 支持横向目录\n- 同步高亮文章中的标题\n\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/css/toc-helper.css",
    "content": "body{\n    font-size: 1rem;\n    line-height: 1.5;\n}\n\n.toc, .toc * {\n    box-sizing: border-box;\n}\n.toc {\n    padding: 1rem 0;\n    /* box-shadow: 0 0 .2rem .2rem #eee; */\n    width: 100%;\n    max-width: 350px;\n    margin: 1rem 0;\n    color: #333;\n    position: relative;\n    background: #fff;\n}\n.toc.shadow{\n    box-shadow: 0 0 0.5rem #eee;\n}\n.toc.toc-fixed{\n    position: fixed;\n    top: 24px;\n    z-index:10;\n}\n.toc-hightlight {\n    width: 100%;\n    background: #eee;\n    position: absolute;\n    left: 0;\n    top: 0;\n    border-left: 3px solid #009a61;\n    transition: all .2s ease;\n}\n\n.toc-brand {\n    padding: 0 1.25rem;\n    font-weight: bold;\n    font-size: 1rem;\n    line-height: inherit;\n    white-space: nowrap;\n    display: block;\n    width: 100%;\n    overflow: hidden;\n    text-overflow: ellipsis;\n}\n\n.toc-navbar {\n    position: relative;\n    display: block;\n    /* max-height: 500px;\n    overflow-y: auto; */\n    scroll-behavior: smooth;\n}\n/* 滚动条 */\n.toc-navbar::-webkit-scrollbar-thumb:horizontal { /*水平滚动条的样式*/\n\twidth: 5px;\n\tbackground-color: #CCCCCC;\n\tborder-radius: 6px;\n}\n.toc-navbar::-webkit-scrollbar-track-piece {\n\tbackground-color: #fff; /*滚动条的背景颜色*/\n\tborder-radius: 0; /*滚动条的圆角宽度*/\n}\n.toc-navbar::-webkit-scrollbar {\n\twidth: 10px; /*滚动条的宽度*/\n\theight: 8px; /*滚动条的高度*/\n}\n.toc-navbar::-webkit-scrollbar-thumb:vertical { /*垂直滚动条的样式*/\n\theight: 50px;\n\tbackground-color: #999;\n\tborder-radius: 4px;\n\toutline: 2px solid #fff;\n\toutline-offset: -2px;\n\tborder: 2px solid #fff;\n}\n.toc-navbar::-webkit-scrollbar-thumb:hover { /*滚动条的hover样式*/\n\theight: 50px;\n\tbackground-color: #9f9f9f;\n    border-radius: 4px;\n}\n\n.toc-nav {\n    display: block;\n    padding-left: 0;\n    margin-bottom: 0;\n    transition: all .3s ease;\n}\n\n.toc-link {\n    display: block;\n    padding: 0.2rem 1.7rem;\n    font-size: 0.9rem;\n    text-decoration: none;\n    color: #555;\n    position: relative;\n}\n\n.toc-link::before {\n    content: ' ';\n    height: .25rem;\n    width: 0.25rem;\n    background: #555;\n    position: absolute;\n    top: .8rem;\n    left: 1rem;\n}\n\n.toc-link.active::before,\n.toc-link:hover::before {\n    background: #009a61;\n}\n\n.toc-link.active,\n.toc-link:hover {\n    color: #009a61;\n}\n\n/* .toc-link+.toc-nav{\n    max-height: 0;\n    overflow: hidden;\n}\n\n.toc-link.active+.toc-nav{\n    max-height: 1000rem;\n} */\n\n.toc-link.ml-1 {\n    margin-left: 1rem !important;\n}\n\n.toc-link.ml-2 {\n    margin-left: 2rem !important;\n}\n\n.toc-link.ml-3 {\n    margin-left: 3rem !important;\n}\n\n.toc-link.ml-4 {\n    margin-left: 4rem !important;\n}\n\n.toc-link.ml-5 {\n    margin-left: 5rem !important;\n}\n\n.toc-link.ml-6 {\n    margin-left: 6rem !important;\n}\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/gulpfile.js",
    "content": "const gulp = require('gulp');\nconst rollup = require('rollup');\nconst del = require('del')\nconst autoprefixer = require('autoprefixer');\nconst postcss = require('gulp-postcss')\nconst cssnano = require('cssnano')\nconst cleancss = require('gulp-clean-css');\nconst rename = require('gulp-rename')\nconst zip = require('gulp-zip')\n\nconst rollupConfig = require('./rollup.config.js')\n\nconst clean = function () {\n    return del(['./js/toc-helper.min.js', './css/toc-helper.min.css'])\n}\nconst buildjs = async function () {\n    const bundle = await rollup.rollup({\n        input: rollupConfig.input,\n        plugins: rollupConfig.plugins\n    })\n    await bundle.write(rollupConfig.output)\n}\n\nconst buildcss = function () {\n    return gulp.src('./css/toc-helper.css')\n        .pipe(postcss([\n            autoprefixer(['last 5 version']),\n            cssnano()\n        ]))\n        .pipe(cleancss({\n            level: 2\n        }))\n        .pipe(rename({\n            suffix: '.min'\n        }))\n        .pipe(gulp.dest('./css'))\n}\nconst watch = function (done) { \n    gulp.watch('./css/toc-helper.css', gulp.series(buildcss))\n    gulp.watch('./js/toc-helper.js', gulp.series(buildjs))\n    done()\n}\nconst buildZip = function(){\n    return gulp.src(['./css/*.css','./js/*.js'])\n        .pipe(zip('toc-helper.zip', {compress: true}))\n        .pipe(gulp.dest('./'))\n}\ngulp.task('dev', gulp.series(clean, gulp.parallel(buildjs, buildcss, watch)))\ngulp.task('default', gulp.series(clean, gulp.parallel(buildjs, buildcss), buildZip), function () {\n    console.log('build completed!!!')\n})"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/js/toc-helper.js",
    "content": "\n'use strict';\n\n\nconst doc = document,\n    win = window,\n    body = doc.body,\n    $ = doc.querySelector.bind(doc),\n    $$ = doc.querySelectorAll.bind(doc),\n    animate = win.requestAnimationFrame,\n    isMobile = (/Mobile|Android|iOS|iPhone|iPad|iPod|Windows Phone|KFAPWI/i.test(navigator.userAgent)),\n    enterEvent = isMobile ? 'touchstart' : 'mouseenter',\n    leaveEvent = isMobile ? 'touchend' : 'mouseleave',\n    clickEvent = isMobile ? 'touchend' : 'click',\n    resize = isMobile ? 'orientationchange' : 'resize',\n    scrollEvent = 'scroll',\n\n    scrollDir = {\n        V: 'vertical',   //竖\n        H: 'horizontal'  // 水平\n    },\n    isHTMLElement = function (el) {\n        return el instanceof HTMLElement\n    },\n    isString = function (o) {\n        return typeof o === 'string'\n    },\n    isObject = function (o) {\n        return Object.prototype.toString.call(o) === '[object Object]'\n    },\n    getDom = (selector) => {\n        try {\n            return $(selector)\n        } catch (error) {\n            return null\n        }\n    },\n    css = function (el, key, value) {\n        if (el && !value) {\n            return win.getComputedStyle(el).getPropertyValue(key)\n        }\n        el.style[key] = value\n    },\n    isPosition = function (el) {\n        const position = css(el, 'position')\n        return position && position !== 'static'\n    },\n    hasScrollbar = function (el, dir = scrollDir.V) { //horizontal 水平\n        return dir === scrollDir.V ? el.scrollHeight > el.clientHeight : (dir === scrollDir.H ? el.scrollWidth > el.clientWidth : false)\n    }\n\n// 窗口可视高度\nlet viewHeight = doc.documentElement.clientHeight\n\n\nconst CLASS_NAMES = {\n    TOC: 'toc'\n}\nconst SELECTORS = {\n    DATA_TOC: '*[data-toc]'\n}\nconst defaultOptions = {\n    dom: SELECTORS.DATA_TOC,\n    classNames: {\n        toc: CLASS_NAMES.TOC,\n        fxied: `${CLASS_NAMES.TOC}-fixed`,\n        brand: `${CLASS_NAMES.TOC}-brand`,\n        navbar: `${CLASS_NAMES.TOC}-navbar`,\n        hightlight: `${CLASS_NAMES.TOC}-hightlight`,\n        nav: `${CLASS_NAMES.TOC}-nav`,\n        link: `${CLASS_NAMES.TOC}-link`,\n        active: 'active',\n        marginLeft1: 'ml-1',\n        marginLeft2: 'ml-2',\n        marginLeft3: 'ml-3',\n        marginLeft4: 'ml-4',\n        marginLeft5: 'ml-5',\n        marginLeft6: 'ml-6'\n    },\n    hightlight: true,\n    brand: '目录',\n    shadow: 'shadow',\n    idPrefix: 'toc-heading-',\n    offsetBody: body,\n    tocFixed: {\n        top: 24,\n        left: 0\n    },\n    maxDepth: 6,\n    autoScroll: true    //自动添加滚动条\n}\n\nconst TocHelper = function (selector, options = defaultOptions) {\n\n    if (isString(selector) || isHTMLElement(selector)) {\n        options.dom = selector\n    } else if (isObject(selector)) {\n        options = selector\n    }\n    this.options = Object.assign({}, defaultOptions, options)\n\n    this.megre()\n\n    this.winEvents()\n\n    return this\n\n}\n\nTocHelper.prototype = {\n    megre: function (newOptions = {}) {\n        if (!isObject(newOptions)) return\n        this.options = Object.assign({}, this.options, newOptions)\n\n        if (isString(this.options.dom)) {\n            this.options.dom = $(this.options.dom) || $(SELECTORS.DATA_TOC)\n        }\n        if (!this.options.dom || !isHTMLElement(this.options.dom)) {\n            throw new Error('Not found any content, Please sure this dom is exist')\n        }\n\n        let maxDepth = null\n        this.options.maxDepth = (maxDepth = parseInt(this.options.maxDepth || 6), maxDepth >= 1 && maxDepth <= 6 ? maxDepth : 6)\n\n        let offsetBody = this.options.offsetBody\n        if (!offsetBody || offsetBody === body) {\n            this.options.offsetBody = body\n        } else if (isHTMLElement(offsetBody)) {\n            this.options.offsetBody = isPosition(offsetBody) ? offsetBody : body\n        } else if (isString(offsetBody)) {\n            const _offsetBody = getDom(offsetBody)\n            if (!_offsetBody || _offsetBody === body) {\n                this.options.offsetBody = body\n            } else {\n                this.options.offsetBody = isPosition(offsetBody) ? _offsetBody : body\n            }\n        } else {\n            this.options.offsetBody = body\n        }\n\n        this.toc = $(this.options.dom.dataset.toc) || $(`.${this.options.classNames.toc}`)\n        const tocClassList = this.toc && this.toc.classList\n        tocClassList && !tocClassList.contains(this.options.classNames.toc) && tocClassList.add(this.options.classNames.toc)\n\n        return this\n    },\n    reload: function () {\n\n        this.hightlight = this.options.hightlight === true ? $(`.${this.options.classNames.hightlight}`) : null\n\n        this.navbar = this.navbar || $(`.${this.options.classNames.navbar}`)\n\n        this.tocEvent()\n\n        this.fixed()\n\n        this.shadow()\n\n        !this.elements && (this.elements = this.loadHeadings());\n        this.events = [this.offsetBodyScrollEvent.bind(this)]\n\n        this.offsetBodyScrollDebounce()\n        // 默认激活\n        this.activeToc()\n        // 滚动条位置同步\n        this.syncTocScroll()\n\n        // 自动生成滚动条\n        this.setTocScroll()\n    },\n    winEvents: function () {\n        const _this = this\n        win.addEventListener(resize, function () {\n            // 设备大小变化后重新设置高度\n            viewHeight = doc.documentElement.clientHeight\n            _this.debounce(_this.setTocScroll, 200).call(_this)\n        })\n    },\n    // 设置navbar的滚动条样式\n    setTocScroll: function () {\n        this.resetTocScroll()\n        const tocFixed = this.options.tocFixed,\n            navbar = this.navbar\n        if (this.options.autoScroll && tocFixed && this.toc.offsetHeight + (tocFixed.top || 0) > viewHeight) {\n            const maxHeight = (viewHeight - this.getOffsetY(navbar) - (tocFixed.top || 0))\n            navbar.style.maxHeight = maxHeight + 'px'\n            navbar.style.overflowY = 'auto'\n        }\n    },\n    // 重置样式\n    resetTocScroll: function () {\n        this.navbar.style.maxHeight = 'inherit'\n        this.navbar.style.overflowY = 'inherit'\n    },\n    // 若有滚动条计算滚动条的位置\n    syncTocScroll: function () {\n        const navbar = this.navbar, active = this.active\n        if (!active || !hasScrollbar(navbar)) return\n        const activeTop = active.offsetTop\n        navbar.scrollTo(0, activeTop)\n    },\n    // 内容/文章的滚动事件处理\n    offsetBodyScrollEvent: function () {\n        // 目录高亮显示\n        this.activeToc()\n        // 目录滚动条同步\n        this.syncTocScroll()\n    },\n    addOffsetBodyScrollEvent: function () {\n        const el = this.options.offsetBody === body ? win : this.options.offsetBody\n        el.addEventListener(scrollEvent, this.events[0])\n    },\n    removeOffsetBodyScrollEvent: function () {\n        const el = this.options.offsetBody === body ? win : this.options.offsetBody\n        el.removeEventListener(scrollEvent, this.events[0])\n    },\n    offsetBodyScrollDebounce: function () {\n        this.removeOffsetBodyScrollEvent()\n        // 防止抖动\n        this.debounce(this.addOffsetBodyScrollEvent, 200).call(this)\n    },\n    reset: function () {\n\n        this.clear()\n\n        const frag = doc.createDocumentFragment()\n        const elements = this.elements = this.loadHeadings(),\n            targets = elements.targets,\n            levels = elements.levels\n\n        // 创建 brand = 目录\n        if (typeof this.options.brand === 'string') {\n            const brand = doc.createElement('div')\n            brand.classList.add(this.options.classNames.brand)\n            brand.textContent = this.options.brand\n            frag.appendChild(brand)\n        }\n\n        // 创建navbar\n        const navbar = doc.createElement('div')\n        navbar.classList.add(this.options.classNames.navbar)\n        frag.appendChild(navbar)\n\n        this.navbar = navbar\n\n        // 创建hightlight\n        if (this.options.hightlight === true) {\n            const hightlight = doc.createElement('div')\n            hightlight.classList.add(this.options.classNames.hightlight)\n            navbar.appendChild(hightlight)\n        }\n\n        const navClassName = this.options.classNames.nav\n        // 将节点添加到文档中\n        let lastNavNode = null, lastLevel = 1;\n        levels.forEach((level, index, thisArray) => {\n            const target = targets[index]\n            if (!target) return\n\n            if (index === 0 || thisArray[index - 1] !== level) {\n                // 创建nav\n                const nav = doc.createElement('nav')\n                nav.classList.add(navClassName)\n                nav.appendChild(target)\n\n                if (level === 1) {\n                    // 层级为1 \n                    navbar.appendChild(nav)\n                } else if (level >= lastLevel) {\n                    lastNavNode.appendChild(nav)\n                } else {\n                    let _lastLevelNode = lastNavNode.parentNode\n                    for (let i = 0; i < lastLevel - level - 1; i++) {\n                        _lastLevelNode = _lastLevelNode.parentNode\n                    }\n                    _lastLevelNode && _lastLevelNode.appendChild(nav)\n                }\n                lastNavNode = nav\n                lastLevel = level\n\n            } else {\n                lastNavNode.appendChild(target)\n            }\n        })\n\n        this.toc.appendChild(frag)\n\n        this.reload()\n    },\n    getOffsetBodyScrollTop: function () {\n        const offsetBody = this.options.offsetBody\n        return offsetBody === win ? offsetBody.pageYOffset : offsetBody === body ? doc.documentElement.scrollTop || body.scrollTop : offsetBody.scrollTop\n    },\n    // __GID().next().value\n    GID: function () {\n        let current_id = 0, idPrefix = this.options.idPrefix\n        return {\n            next: function () {\n                current_id++;\n                const value = `${idPrefix}${current_id}`\n                return { value }\n            }\n        }\n    },\n    debounce: function (fn, delay) {\n        return function () {\n            var _this = this, args = arguments\n            fn.timer && clearTimeout(fn.timer)\n            fn.timer = setTimeout(() => {\n                fn.apply(_this, args)\n            }, delay)\n        }\n    },\n    empty: function (parent) {\n        if (!parent || !isHTMLElement(parent)) return\n        while (parent.lastChild) {\n            parent.removeChild(parent.lastChild)\n        }\n    },\n    clear: function () {\n        this.empty(this.toc)\n        this.elements = null\n    },\n\n    activeToc: function () {\n        const _this = this,\n            elements = _this.elements,\n            offsets = elements.offsets,\n            targets = elements.targets,\n            top = _this.getOffsetBodyScrollTop(),\n            // 判断当前滚动条在那个区间\n            index = offsets.findIndex(el => Number(el) > top)\n\n        let tocLink = targets[index];\n\n        tocLink && (this.setActive(tocLink))\n    },\n    getOffsetY: function (el, stopParent = body) {\n        let y = el.offsetTop\n        if (el.offsetParent && el.offsetParent !== stopParent) {\n            y += this.getOffsetY(el.offsetParent)\n        }\n        return y\n    },\n    /**\n     * 获取heading对应的信息\n     * @returns levels 所有元素的层级\n     * @returns offsets heading元素的偏移量\n     * @returns sources heading元素集合\n     * @returns targets heading元素对于的目录元素\n     */\n    loadHeadings: function () {\n        const _this = this, maxDepth = this.options.maxDepth,\n            rootLevel = 1, lastLevel = maxDepth,\n            headings = Array.from(this.options.dom.querySelectorAll(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].slice(0, maxDepth).join(',')) || []),\n            GID_GENERATE = this.GID()\n\n        /**\n         * 元素退级处理\n         * @param {*} headings heading元素集合\n         * @param {*} curIndex 当前元素在headings集合中的下表\n         * @param {*} curOriginaLevel 当前元素原始的层级\n         */\n        const backLevel = function (headings, curIndex, curOriginaLevel) {\n\n            // if (headings[curIndex].textContent.indexOf('Test') > -1) debugger\n\n            // 小于1 和当前为第一个heading的层级均为1\n            if (curOriginaLevel <= rootLevel || curIndex === 0) return rootLevel\n\n            // 大于最大层级的heading层级均为maxDepth\n            if (curOriginaLevel > lastLevel) return lastLevel\n\n            // 将当前heading的层级和heading之前的层级对比，进行退级或保留层级操作\n            const _headings = headings.filter((head, i) => i < curIndex)\n\n            for (let i = _headings.length - 1; i >= 0; i--) {\n\n                // 上一个heading的层级 - 经过退级操作的层级\n                const preLevel = _headings[i][1]\n                // 上一个heading\n                const preHeading = _headings[i][3]\n\n                // 上一个heading的元素原始层级\n                const preOriginaLevel = +preHeading.nodeName[1]\n\n                if (curOriginaLevel < preOriginaLevel) {\n                    // 当前层级比上一层级小直接退级到上一层级 - 对比原始层级\n                    if (curOriginaLevel > preLevel) {\n                        // 当前层级比上一层级退级的大\n                        return preLevel\n                    }\n                    return curOriginaLevel//preLevel\n                } else if (curOriginaLevel === preOriginaLevel) {\n                    // 当前层级于上一层级相等直接等于上一层级 - 对比原始层级\n                    return preLevel\n                } else if (preOriginaLevel < curOriginaLevel) {\n                    // 当前层级比上一层级大 ， 退级到上一层级+1 - 对比原始层级\n                    // 此处对比原始层级无意义\n                    return preLevel + 1\n                }\n                // 继续 对比\n            }\n        }\n        /**\n         * 设置heading的id\n         * @param {*} heading 给没有ID或ID重复的heading设置Id\n         */\n\n        const setId = function (heading) {\n            if (!heading.id || $$(`#${heading.id}`).length !== 1) {\n                heading.id = GID_GENERATE.next().value\n            }\n            return heading\n        }\n        /**\n         * 获取当前heading元素到offsetBody元素的距离\n         * @param {*} heading  heading元素\n         */\n        /* const getOffsetY = function (heading) {\n            let y = heading.offsetTop\n            if (heading.offsetParent && heading.offsetParent !== _this.options.offsetBody) {\n                y += getOffsetY(heading.offsetParent)\n            }\n            return y\n        } */\n        /**\n         * 获取toclink\n         * @param {*} heading \n         * @param {*} level \n         */\n        const loadTocLink = function (heading, level) {\n            if (!heading.textContent.replace(/\\s/g, '')) return false\n            let tocLink = _this.toc.querySelector(`a[href=\"#${heading.id}\"]`)\n            if (!tocLink) {\n                // 不存在就创建一个\n                tocLink = doc.createElement('a')\n                tocLink.href = `#${heading.id}`\n                tocLink.classList.add(_this.options.classNames.link)\n                if (level >= 2) {\n                    tocLink.classList.add(`${_this.options.classNames[`marginLeft${level - 1}`]}`)\n                }\n                tocLink.textContent = heading.textContent\n            }\n            return tocLink\n        }\n\n        headings.forEach((heading, i, thisArray) => {\n            // 获取层级\n            const level = backLevel(thisArray, i, +heading.nodeName[1]),\n                // 获取当前heading元素距离父级的距离\n                y = _this.getOffsetY(heading, _this.options.offsetBody)\n            // 设置ID\n            setId(heading)\n            // 获取toc目录\n            const tocLink = loadTocLink(heading, level)\n            /* if(tocLink === false){\n                thisArray.splice(i, 1)\n                i = i - 1\n            }else{\n            } */\n            /* * @returns 0 heading元素下标 */\n            /* * @returns 1 heading元素的层级 */\n            /* * @returns 2 heading到父级（offsetBody ）的距离*/\n            /* * @returns 3 heading元素本身 */\n            /* * @returns 4 heading元素对应的link元素 */\n            // [0, level, offsetTop, element, tocLinkElement]\n            thisArray.splice(i, 1, [i, level, y, heading, tocLink])\n\n        })\n\n        const elements = { levels: [], offsets: [], sources: [], targets: [] }\n        headings.forEach((headingItem, i) => {\n            elements.levels[i] = headingItem[1]\n            elements.offsets[i] = headingItem[2]\n            elements.sources[i] = headingItem[3]\n            elements.targets[i] = headingItem[4]\n        })\n        return elements\n    },\n    setActive: function (el) {\n\n        let active = this.active,\n            classList = active ? active.classList : []\n\n        const activeClassName = this.options.classNames.active,\n            defaultActiveSelector = `.${this.options.classNames.link}.${this.options.classNames.active}`\n\n        // 移除激活状态\n        active && classList.contains(activeClassName) && classList.remove(activeClassName)\n\n        active = this.active = el && isHTMLElement(el) ? el : $(defaultActiveSelector)\n        classList = active && (active.classList || [])\n\n        // 激活状态\n        active && !classList.contains(activeClassName) && classList.add(activeClassName)\n\n        // 设置高亮\n        this.setHightlight(active)\n\n    },\n    setHightlight: function (active) {\n        if (!this.hightlight) return\n        if (!active) {\n            this.hightlight.style.top = 0\n            this.hightlight.style.height = 0\n        } else {\n            this.hightlight.style.top = active.offsetTop + 'px'\n            this.hightlight.style.height = active.offsetHeight + 'px'\n        }\n    },\n    __enter: function (e) {\n        this.setHightlight(e.target)\n    },\n    __leave: function () {\n        this.setActive(this.active)\n    },\n    __click: function (e) {\n        // 防止滚动条抖动\n        this.offsetBodyScrollDebounce()\n        this.setActive(e.target)\n    },\n    // toc 事件\n    tocEvent: function () {\n        if (!this.hightlight) return\n\n        const _this = this\n        Array.from($$(`.${this.options.classNames.toc} .${this.options.classNames.link}`) || []).forEach(a => {\n            // 悬停事件\n            a.addEventListener(enterEvent, _this.__enter.bind(_this))\n            // 离开事件\n            a.addEventListener(leaveEvent, _this.__leave.bind(_this))\n            // 点击事件\n            a.addEventListener(clickEvent, _this.__click.bind(_this))\n        })\n\n    },\n    // 阴影\n    shadow: function () {\n        if (this.options.shadow === false) return\n        const toc = this.toc, classList = toc && (toc.classList || []), shadow = this.options.shadow\n        !classList.contains(shadow) && classList.add(shadow)\n    },\n    // fixed\n    fixed: function () {\n        const toc = this.toc\n        let tocFixed = this.options.tocFixed\n        if (!toc) return\n        const tocFixedClassName = this.options.classNames.fxied\n        const classList = toc.classList\n        if (tocFixed === false) {\n            toc.style.top = 'inherit'\n            toc.style.left = 'inherit'\n            classList.contains(tocFixedClassName) && classList.remove(tocFixedClassName)\n        } else {\n            !classList.contains(tocFixedClassName) && classList.add(tocFixedClassName)\n            tocFixed.top && (toc.style.top = tocFixed.top + 'px')\n            tocFixed.left && (toc.style.left = tocFixed.left + 'px')\n        }\n    }\n}\n\nmodule.exports = TocHelper\nmodule.exports.default = TocHelper"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/lib/prism.css",
    "content": "/* PrismJS 1.15.0\nhttps://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript&plugins=line-numbers */\n/**\n * okaidia theme for JavaScript, CSS and HTML\n * Loosely based on Monokai textmate theme by http://www.monokai.nl/\n * @author ocodia\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tcolor: #f8f8f2;\n\tbackground: none;\n\ttext-shadow: 0 1px rgba(0, 0, 0, 0.3);\n\tfont-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n\tborder-radius: 0.3em;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n\tbackground: #272822;\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: slategray;\n}\n\n.token.punctuation {\n\tcolor: #f8f8f2;\n}\n\n.namespace {\n\topacity: .7;\n}\n\n.token.property,\n.token.tag,\n.token.constant,\n.token.symbol,\n.token.deleted {\n\tcolor: #f92672;\n}\n\n.token.boolean,\n.token.number {\n\tcolor: #ae81ff;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n\tcolor: #a6e22e;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string,\n.token.variable {\n\tcolor: #f8f8f2;\n}\n\n.token.atrule,\n.token.attr-value,\n.token.function,\n.token.class-name {\n\tcolor: #e6db74;\n}\n\n.token.keyword {\n\tcolor: #66d9ef;\n}\n\n.token.regex,\n.token.important {\n\tcolor: #fd971f;\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n\npre[class*=\"language-\"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*=\"language-\"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tpointer-events: none;\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/lib/prism.js",
    "content": "/* PrismJS 1.15.0\nhttps://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript&plugins=line-numbers */\nvar _self=\"undefined\"!=typeof window?window:\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=0,a=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof n?new n(e.type,a.util.encode(e.content),e.alias):\"Array\"===a.util.type(e)?e.map(a.util.encode):e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/\\u00a0/g,\" \")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,\"__id\",{value:++t}),e.__id},clone:function i(e,t){var n,r,l=a.util.type(e);switch(t=t||{},l){case\"Object\":if(r=a.util.objId(e),t[r])return t[r];n={},t[r]=n;for(var o in e)e.hasOwnProperty(o)&&(n[o]=i(e[o],t));return n;case\"Array\":return r=a.util.objId(e),t[r]?t[r]:(n=[],t[r]=n,e.forEach(function(e,a){n[a]=i(e,t)}),n);default:return e}}},languages:{extend:function(e,t){var n=a.util.clone(a.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r=r||a.languages;var i=r[e],l={};for(var o in i)if(i.hasOwnProperty(o)){if(o==t)for(var s in n)n.hasOwnProperty(s)&&(l[s]=n[s]);n.hasOwnProperty(o)||(l[o]=i[o])}var u=r[e];return r[e]=l,a.languages.DFS(a.languages,function(t,a){a===u&&t!=e&&(this[t]=l)}),l},DFS:function l(e,t,n,r){r=r||{};var i=a.util.objId;for(var o in e)if(e.hasOwnProperty(o)){t.call(e,o,e[o],n||o);var s=e[o],u=a.util.type(s);\"Object\"!==u||r[i(s)]?\"Array\"!==u||r[i(s)]||(r[i(s)]=!0,l(s,t,o,r)):(r[i(s)]=!0,l(s,t,null,r))}}},plugins:{},highlightAll:function(e,t){a.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var r={callback:n,selector:'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'};a.hooks.run(\"before-highlightall\",r);for(var i,l=r.elements||e.querySelectorAll(r.selector),o=0;i=l[o++];)a.highlightElement(i,t===!0,r.callback)},highlightElement:function(t,n,r){for(var i,l,o=t;o&&!e.test(o.className);)o=o.parentNode;o&&(i=(o.className.match(e)||[,\"\"])[1].toLowerCase(),l=a.languages[i]),t.className=t.className.replace(e,\"\").replace(/\\s+/g,\" \")+\" language-\"+i,t.parentNode&&(o=t.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,\"\").replace(/\\s+/g,\" \")+\" language-\"+i));var s=t.textContent,u={element:t,language:i,grammar:l,code:s},g=function(e){u.highlightedCode=e,a.hooks.run(\"before-insert\",u),u.element.innerHTML=u.highlightedCode,a.hooks.run(\"after-highlight\",u),a.hooks.run(\"complete\",u),r&&r.call(u.element)};if(a.hooks.run(\"before-sanity-check\",u),!u.code)return a.hooks.run(\"complete\",u),void 0;if(a.hooks.run(\"before-highlight\",u),!u.grammar)return g(a.util.encode(u.code)),void 0;if(n&&_self.Worker){var c=new Worker(a.filename);c.onmessage=function(e){g(e.data)},c.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else g(a.highlight(u.code,u.grammar,u.language))},highlight:function(e,t,r){var i={code:e,grammar:t,language:r};return a.hooks.run(\"before-tokenize\",i),i.tokens=a.tokenize(i.code,i.grammar),a.hooks.run(\"after-tokenize\",i),n.stringify(a.util.encode(i.tokens),i.language)},matchGrammar:function(e,t,n,r,i,l,o){var s=a.Token;for(var u in n)if(n.hasOwnProperty(u)&&n[u]){if(u==o)return;var g=n[u];g=\"Array\"===a.util.type(g)?g:[g];for(var c=0;c<g.length;++c){var f=g[c],h=f.inside,d=!!f.lookbehind,m=!!f.greedy,p=0,y=f.alias;if(m&&!f.pattern.global){var v=f.pattern.toString().match(/[imuy]*$/)[0];f.pattern=RegExp(f.pattern.source,v+\"g\")}f=f.pattern||f;for(var k=r,b=i;k<t.length;b+=t[k].length,++k){var w=t[k];if(t.length>e.length)return;if(!(w instanceof s)){if(m&&k!=t.length-1){f.lastIndex=b;var _=f.exec(e);if(!_)break;for(var P=_.index+(d?_[1].length:0),A=_.index+_[0].length,O=k,x=b,N=t.length;N>O&&(A>x||!t[O].type&&!t[O-1].greedy);++O)x+=t[O].length,P>=x&&(++k,b=x);if(t[k]instanceof s)continue;j=O-k,w=e.slice(b,x),_.index-=b}else{f.lastIndex=0;var _=f.exec(w),j=1}if(_){d&&(p=_[1]?_[1].length:0);var P=_.index+p,_=_[0].slice(p),A=P+_.length,S=w.slice(0,P),E=w.slice(A),C=[k,j];S&&(++k,b+=S.length,C.push(S));var M=new s(u,h?a.tokenize(_,h):_,y,_,m);if(C.push(M),E&&C.push(E),Array.prototype.splice.apply(t,C),1!=j&&a.matchGrammar(e,t,n,k,b,!0,u),l)break}else if(l)break}}}}},tokenize:function(e,t){var n=[e],r=t.rest;if(r){for(var i in r)t[i]=r[i];delete t.rest}return a.matchGrammar(e,n,t,0,0,!1),n},hooks:{all:{},add:function(e,t){var n=a.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=a.hooks.all[e];if(n&&n.length)for(var r,i=0;r=n[i++];)r(t)}}},n=a.Token=function(e,t,a,n,r){this.type=e,this.content=t,this.alias=a,this.length=0|(n||\"\").length,this.greedy=!!r};if(n.stringify=function(e,t,r){if(\"string\"==typeof e)return e;if(\"Array\"===a.util.type(e))return e.map(function(a){return n.stringify(a,t,e)}).join(\"\");var i={type:e.type,content:n.stringify(e.content,t,r),tag:\"span\",classes:[\"token\",e.type],attributes:{},language:t,parent:r};if(e.alias){var l=\"Array\"===a.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}a.hooks.run(\"wrap\",i);var o=Object.keys(i.attributes).map(function(e){return e+'=\"'+(i.attributes[e]||\"\").replace(/\"/g,\"&quot;\")+'\"'}).join(\" \");return\"<\"+i.tag+' class=\"'+i.classes.join(\" \")+'\"'+(o?\" \"+o:\"\")+\">\"+i.content+\"</\"+i.tag+\">\"},!_self.document)return _self.addEventListener?(a.disableWorkerMessageHandler||_self.addEventListener(\"message\",function(e){var t=JSON.parse(e.data),n=t.language,r=t.code,i=t.immediateClose;_self.postMessage(a.highlight(r,a.languages[n],n)),i&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName(\"script\")).pop();return r&&(a.filename=r.src,a.manual||r.hasAttribute(\"data-manual\")||(\"loading\"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(a.highlightAll):window.setTimeout(a.highlightAll,16):document.addEventListener(\"DOMContentLoaded\",a.highlightAll))),_self.Prism}();\"undefined\"!=typeof module&&module.exports&&(module.exports=Prism),\"undefined\"!=typeof global&&(global.Prism=Prism);\nPrism.languages.markup={comment:/<!--[\\s\\S]*?-->/,prolog:/<\\?[\\s\\S]+?\\?>/,doctype:/<!DOCTYPE[\\s\\S]+?>/i,cdata:/<!\\[CDATA\\[[\\s\\S]*?]]>/i,tag:{pattern:/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s\\/>])))+)?\\s*\\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\\/?[^\\s>\\/]+/i,inside:{punctuation:/^<\\/?/,namespace:/^[^\\s>\\/:]+:/}},\"attr-value\":{pattern:/=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\\s*)[\"']|[\"']$/,lookbehind:!0}]}},punctuation:/\\/?>/,\"attr-name\":{pattern:/[^\\s>\\/]+/,inside:{namespace:/^[^\\s>\\/:]+:/}}}},entity:/&#?[\\da-z]{1,8};/i},Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add(\"wrap\",function(a){\"entity\"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,\"&\"))}),Prism.languages.xml=Prism.languages.extend(\"markup\",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;\nPrism.languages.css={comment:/\\/\\*[\\s\\S]*?\\*\\//,atrule:{pattern:/@[\\w-]+?[\\s\\S]*?(?:;|(?=\\s*\\{))/i,inside:{rule:/@[\\w-]+/}},url:/url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,selector:/[^{}\\s][^{};]*?(?=\\s*\\{)/,string:{pattern:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},property:/[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,important:/!important\\b/i,\"function\":/[-a-z0-9]+(?=\\()/i,punctuation:/[(){};:,]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore(\"markup\",\"tag\",{style:{pattern:/(<style[\\s\\S]*?>)[\\s\\S]*?(?=<\\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:\"language-css\",greedy:!0}}),Prism.languages.insertBefore(\"inside\",\"attr-value\",{\"style-attr\":{pattern:/\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,inside:{\"attr-name\":{pattern:/^\\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\\s*=\\s*['\"]|['\"]\\s*$/,\"attr-value\":{pattern:/.+/i,inside:Prism.languages.css}},alias:\"language-css\"}},Prism.languages.markup.tag));\nPrism.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\"boolean\":/\\b(?:true|false)\\b/,\"function\":/\\w+(?=\\()/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.javascript=Prism.languages.extend(\"clike\",{\"class-name\":[Prism.languages.clike[\"class-name\"],{pattern:/(^|[^$\\w\\xA0-\\uFFFF])[_$A-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\\s*)(?:catch|finally)\\b/,lookbehind:!0},/\\b(?:as|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/],number:/\\b(?:(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\\d+n|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\"function\":/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,operator:/-[-=]?|\\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/}),Prism.languages.javascript[\"class-name\"][0].pattern=/(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/,Prism.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*]|\\\\.|[^\\/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/,alias:\"function\"},parameter:[{pattern:/(function(?:\\s+[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)?\\s*\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:[_$A-Za-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\s*)\\(\\s*)(?!\\s)(?:[^()]|\\([^()]*\\))+?(?=\\s*\\)\\s*\\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/}),Prism.languages.insertBefore(\"javascript\",\"string\",{\"template-string\":{pattern:/`(?:\\\\[\\s\\S]|\\${[^}]+}|[^\\\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\\${[^}]+}/,inside:{\"interpolation-punctuation\":{pattern:/^\\${|}$/,alias:\"punctuation\"},rest:Prism.languages.javascript}},string:/[\\s\\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore(\"markup\",\"tag\",{script:{pattern:/(<script[\\s\\S]*?>)[\\s\\S]*?(?=<\\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:\"language-javascript\",greedy:!0}}),Prism.languages.js=Prism.languages.javascript;\n!function(){if(\"undefined\"!=typeof self&&self.Prism&&self.document){var e=\"line-numbers\",t=/\\n(?!$)/g,n=function(e){var n=r(e),s=n[\"white-space\"];if(\"pre-wrap\"===s||\"pre-line\"===s){var l=e.querySelector(\"code\"),i=e.querySelector(\".line-numbers-rows\"),a=e.querySelector(\".line-numbers-sizer\"),o=l.textContent.split(t);a||(a=document.createElement(\"span\"),a.className=\"line-numbers-sizer\",l.appendChild(a)),a.style.display=\"block\",o.forEach(function(e,t){a.textContent=e||\"\\n\";var n=a.getBoundingClientRect().height;i.children[t].style.height=n+\"px\"}),a.textContent=\"\",a.style.display=\"none\"}},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener(\"resize\",function(){Array.prototype.forEach.call(document.querySelectorAll(\"pre.\"+e),n)}),Prism.hooks.add(\"complete\",function(e){if(e.code){var r=e.element.parentNode,s=/\\s*\\bline-numbers\\b\\s*/;if(r&&/pre/i.test(r.nodeName)&&(s.test(r.className)||s.test(e.element.className))&&!e.element.querySelector(\".line-numbers-rows\")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s,\" \")),s.test(r.className)||(r.className+=\" line-numbers\");var l,i=e.code.match(t),a=i?i.length+1:1,o=new Array(a+1);o=o.join(\"<span></span>\"),l=document.createElement(\"span\"),l.setAttribute(\"aria-hidden\",\"true\"),l.className=\"line-numbers-rows\",l.innerHTML=o,r.hasAttribute(\"data-start\")&&(r.style.counterReset=\"linenumber \"+(parseInt(r.getAttribute(\"data-start\"),10)-1)),e.element.appendChild(l),n(r),Prism.hooks.run(\"line-numbers\",e)}}}),Prism.hooks.add(\"line-numbers\",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(t,n){if(\"PRE\"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(\".line-numbers-rows\"),s=parseInt(t.getAttribute(\"data-start\"),10)||1,l=s+(r.children.length-1);s>n&&(n=s),n>l&&(n=l);var i=n-s;return r.children[i]}}}}}();\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/package.json",
    "content": "{\n  \"name\": \"toc-helper\",\n  \"version\": \"1.1.1\",\n  \"description\": \"文章目录结构自动生成工具\",\n  \"main\": \"./js/toc-helper.min.js\",\n  \"author\": \"xiaolang\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"start\": \"gulp dev\",\n    \"build\": \"gulp\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/itlangzi/toc-helper\"\n  },\n  \"keywords\": [\n    \"toc\",\n    \"toc-helper\",\n    \"it浪子\",\n    \"itlangzi\"\n  ],\n  \"devDependencies\": {\n    \"@babel/core\": \"^7.3.4\",\n    \"@babel/plugin-transform-runtime\": \"^7.3.4\",\n    \"@babel/preset-env\": \"^7.3.4\",\n    \"autoprefixer\": \"^9.4.9\",\n    \"cssnano\": \"^4.1.10\",\n    \"del\": \"^3.0.0\",\n    \"gulp\": \"^4.0.0\",\n    \"gulp-clean-css\": \"^4.0.0\",\n    \"gulp-postcss\": \"^8.0.0\",\n    \"gulp-rename\": \"^1.4.0\",\n    \"gulp-zip\": \"^4.2.0\",\n    \"rollup\": \"^1.4.0\",\n    \"rollup-plugin-babel\": \"^4.3.2\",\n    \"rollup-plugin-commonjs\": \"^9.2.1\",\n    \"rollup-plugin-node-resolve\": \"^4.0.1\",\n    \"rollup-plugin-terser\": \"^4.0.4\"\n  },\n  \"dependencies\": {}\n}\n"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/rollup.config.js",
    "content": "const babel = require('rollup-plugin-babel');\nconst resolve = require('rollup-plugin-node-resolve')\nconst commonjs = require('rollup-plugin-commonjs')\nconst terser = require('rollup-plugin-terser')\nconst pkg = require('./package.json')\n\nmodule.exports = {\n    input: './js/toc-helper.js',\n    output: {\n        file: './js/toc-helper.min.js',\n        format: 'umd',\n        name: 'TocHelper',\n        banner: `/*!\\nDate ${new Date()} \\nVersion ${pkg.version} \\nCopyright © 2018-${new Date().getFullYear()} Design By ${pkg.author}\\n*/`,\n    },\n    plugins: [\n        commonjs({\n            // exclude: ['node_modules/**']\n        }),\n        resolve({\n            jsnext: true,\n            main: true,\n            browser: true\n        }),\n        babel({\n            babelrc: true,\n            externalHelpers: false,\n            runtimeHelpers: false,\n            exclude: 'node_modules/**'\n        }),\n        terser.terser({\n            mangle:{\n                properties:{\n                    // 混淆所有的方法名\n                    regex:/(winEvents|setTocScroll|resetTocScroll|syncTocScroll|offsetBodyScrollEvent|addOffsetBodyScrollEvent|removeOffsetBodyScrollEvent|offsetBodyScrollDebounce|getOffsetBodyScrollTop|GID|debounce|empty|clear|activeToc|getOffsetY|loadHeadings|setHash|setActive|setHightlight|__enter|__leave|__click|tocEvent|shadow|fixed)/\n                }\n            },\n            output: {\n                comments: /^!/\n            }\n        })\n    ]\n};"
  },
  {
    "path": "public/static/home/tool/toc-helper-master/toc-helper.html",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\n    <meta name=\"author\" content=\"小浪\">\n    <meta name=\"keywords\" content=\"it浪子,文章目录生成,TOC,侧边栏目录的滚动效果\">\n    <meta name=\"description\" content=\"为文章动态生成侧边栏目录以及静态侧边栏目录的滚动效果\">\n    <meta name=\"robots\" content=\"all\">\n    <meta name=\"renderer\" content=\"webkit\">\n    <title>TOC 文章目录生成</title>\n    <link href=\"lib/prism.css\" rel=\"stylesheet\">\n    <link href=\"./css/toc-helper.min.css\" rel=\"stylesheet\">\n    <style>\n        html {\n            font-size: 16px;\n        }\n\n        @media (min-width: 576px) {\n            .container {\n                max-width: 540px;\n            }\n        }\n\n        @media (min-width: 768px) {\n            .container {\n                max-width: 720px;\n            }\n        }\n\n        @media (min-width: 992px) {\n            .container {\n                max-width: 960px;\n            }\n        }\n\n        @media (min-width: 1200px) {\n            .container {\n                max-width: 1140px;\n            }\n        }\n\n        .container {\n            width: 100%;\n            padding-right: 15px;\n            padding-left: 15px;\n            margin-right: auto;\n            margin-left: auto;\n        }\n\n        .row {\n            display: flex;\n            flex-wrap: wrap;\n            margin-right: -15px;\n            margin-left: -15px;\n            position: relative;\n        }\n\n        .col-sm-8 {\n            flex: 0 0 66.66667%;\n            max-width: 66.66667%;\n        }\n\n        .col-sm-9 {\n            flex: 0 0 75%;\n            max-width: 75%;\n            padding-left: 15px;\n            padding-right: 15px;\n        }\n\n        .col-sm-3 {\n            flex: 0 0 25%;\n            max-width: 25%;\n        }\n\n        .col-sm-4 {\n            flex: 0 0 33.33333%;\n            max-width: 33.33333%;\n        }\n\n        .col-sm-6 {\n            flex: 0 0 50%;\n            max-width: 50%;\n        }\n\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n\n        header {\n            background: #00a3e8;\n            color: #fff;\n            font-size: 1.25rem;\n            padding: .5rem;\n            position: fixed;\n            width: 100%;\n            top: 0;\n            z-index: 10;\n        }\n\n        header .nav {\n            display: flex;\n            align-items: center;\n        }\n\n        .logo>img {\n            height: 60px;\n        }\n\n        .github {\n            margin-left: auto !important;\n        }\n\n        code.code {\n            color: #333;\n            background: #eee;\n            font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n            padding: 3px 10px;\n            border-radius: 4px;\n            font-size: 12px;\n        }\n\n        pre {\n            background: #ccc;\n            border-radius: 4px;\n            color: #333;\n            padding: 5px 10px;\n            margin: 5px 0;\n        }\n\n\n        h1,\n        h2,\n        h3,\n        h4,\n        h5 {\n            margin-bottom: 10px;\n        }\n\n        p {\n            margin: 15px 0;\n        }\n\n        p.api {\n            font-weight: bold;\n        }\n\n        strong {\n            font-size: 15px;\n        }\n\n        small {\n            color: #555;\n            padding-left: 10px;\n        }\n\n        button {\n            position: fixed;\n            top: 93px;\n            z-index: 5;\n            background: #00a3e8;\n            color: #fff;\n            border: 0;\n            padding: 10px 15px;\n            cursor: pointer;\n        }\n\n        footer {\n            background: #343a40;\n            color: #999;\n            padding: 20px 0;\n            font-size: 13px;\n        }\n\n        footer p {\n            margin: 0;\n        }\n\n        footer a {\n            color: #fff;\n            text-decoration: none;\n        }\n\n        footer a:hover {\n            color: #ccc;\n        }\n\n        footer .container {\n            text-align: center;\n        }\n\n        .blockquote-footer {\n            display: block;\n            font-size: 80%;\n            color: #6c757d;\n        }\n\n        .normal h1,\n        .normal h2,\n        .normal h3,\n        .normal h4,\n        .normal h5,\n        .normal h6 {\n            margin-top: -83px;\n            padding-top: 83px;\n        }\n\n        .scroll {\n            position: relative;\n            max-height: 500px;\n            overflow: auto;\n        }\n    </style>\n</head>\n\n<body>\n    <header>\n        <div class=\"container\">\n            <div class=\"nav\">\n                <div class=\"logo\">\n                    <img src=\"./images/toc-logo.png\">\n                </div>\n                <div class=\"github\">\n                    <a href=\"https://github.com/itlangzi\" target=\"_blank\">\n                        <svg t=\"1551410826325\" class=\"icon\" style=\"\" viewBox=\"0 0 1028 1024\" version=\"1.1\"\n                            xmlns=\"http://www.w3.org/2000/svg\" p-id=\"2179\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n                            width=\"40\" height=\"40\">\n                            <path\n                                d=\"M316.806387 841.06986q0-9.197605 9.197605-9.197605t9.197605 9.197605-9.197605 9.197605-9.197605-9.197605zM274.906188 830.850299q0-9.197605 9.197605-9.197605 10.219561 0 10.219561 9.197605 0 10.219561-10.219561 10.219561-9.197605 0-9.197605-10.219561zM509.956088 0q106.283433 0 199.792415 40.367265t163.001996 109.860279 109.860279 163.001996 40.367265 199.792415q0 82.778443-25.037924 158.914172t-69.493014 138.986028-106.794411 110.371257-135.92016 74.091816q-11.241517 2.043912-25.548902 1.021956t-17.373253-18.39521q-2.043912-12.263473-3.576846-32.702595t-2.043912-41.9002-1.021956-40.878244-0.510978-28.61477-3.576846-23.50499-8.175649-27.592814-9.197605-24.015968-6.642715-13.796407q-2.043912-2.043912 14.307385-4.598802t41.389222-9.708583 54.674651-20.439122 55.185629-35.257485 42.411178-54.163673 16.862275-78.179641q0-69.493014-8.175649-108.327345t-17.373253-58.251497q-11.241517-22.483034-25.548902-28.61477 6.131737-33.724551 9.197605-61.317365 2.043912-23.50499 0.510978-44.966068t-12.774451-27.592814q-11.241517-5.10978-33.213573 2.043912t-45.477046 18.39521q-26.570858 13.285429-57.229541 32.702595-15.329341-5.10978-33.724551-9.197605-16.351297-4.087824-38.834331-7.153693t-50.075848-3.065868-52.630739 3.065868-44.45509 6.131737q-22.483034 4.087824-41.9002 9.197605-30.658683-17.373253-57.229541-29.636727-23.50499-11.241517-45.988024-18.39521t-32.702595-3.065868q-11.241517 5.10978-13.796407 26.05988t-1.532934 45.477046q1.021956 28.61477 5.10978 63.361277-14.307385 15.329341-25.548902 36.790419-10.219561 18.39521-17.884232 44.966068t-7.664671 59.273453q0 47.00998 9.708583 82.778443t26.05988 61.828343 37.301397 43.944112 42.411178 29.125749q51.097804 26.570858 116.502994 30.658683-8.175649 9.197605-14.307385 17.373253-5.10978 7.153693-9.197605 13.796407t-4.087824 9.708583-0.510978 7.664671-1.532934 9.708583l-2.043912 10.219561q-10.219561 4.087824-21.461078 7.153693-9.197605 3.065868-20.439122 5.10978t-22.483034 2.043912-27.592814-11.752495-33.213573-27.081836-30.658683-30.147705-19.928144-20.9501q-6.131737-5.10978-16.351297-8.686627t-20.439122-5.620758-18.39521-2.55489-11.241517 0.510978q-6.131737 3.065868-9.197605 8.686627t5.10978 8.686627q4.087824 2.043912 11.752495 7.664671t15.840319 13.285429 15.329341 15.329341 10.219561 12.774451 9.197605 22.483034 19.928144 35.768463 36.790419 32.702595 61.828343 14.307385q26.570858 0 40.367265-0.510978t20.9501-1.532934l0 78.690619q0 6.131737-1.532934 13.796407t-5.620758 13.285429-11.241517 8.175649-18.39521-0.510978q-2.043912-1.021956-6.131737-1.021956-74.602794-26.570858-136.942116-74.091816t-107.816367-110.882236-71.025948-139.497006-25.548902-159.936128q0-106.283433 40.367265-199.792415t109.860279-163.001996 163.512974-109.860279 200.303393-40.367265zM380.167665 878.882236q4.087824 1.021956 6.131737 2.043912 5.10978 3.065868-6.131737 4.087824l0-6.131737zM359.728543 833.916168q0-10.219561 9.197605-10.219561t9.197605 10.219561q0 9.197605-9.197605 9.197605t-9.197605-9.197605zM177.820359 731.720559q0-6.131737 7.153693-6.131737t7.153693 6.131737q0 7.153693-7.153693 7.153693t-7.153693-7.153693zM246.291417 809.389222q0-9.197605 9.197605-9.197605t9.197605 9.197605q0 10.219561-9.197605 10.219561t-9.197605-10.219561zM207.457086 747.0499q7.153693 0 7.153693 7.153693t-7.153693 7.153693-7.153693-7.153693 7.153693-7.153693zM217.676647 780.774451q0-9.197605 9.197605-9.197605t9.197605 9.197605q0 10.219561-9.197605 10.219561t-9.197605-10.219561z\"\n                                p-id=\"2180\" fill=\"#ffffff\"></path>\n                        </svg>\n                    </a>\n                </div>\n            </div>\n        </div>\n    </header>\n    <div class=\"container\" style=\"margin-top:83px;\">\n        <div class=\"row\">\n            <div class=\"col-sm-6\" style=\"text-align:right;\"><button onclick=\"switchBtn()\">切换body/div</button></div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9 normal\" id=\"scroll\">\n\n                <div data-toc=\"#toc\">\n                    <h1>TOC目录生成</h1>\n                    <h2>一、简介</h2>\n                    <code class=\"code\">TocHelper</code> , 是一款给文章自动生成目录及侧边栏目录滚动特效的插件\n                    <div style=\"padding: 20px\">\n                        <strong>特点：</strong>\n                        <ul>\n                            <li><code class=\"code\">jQuery Free</code></li>\n                            <li>方便、灵活、高度定制化</li>\n                            <li>自动退级</li>\n                            <li><code class=\"code\">Hash</code>定位</li>\n                            <li>目录跟随<code class=\"code\">body/div</code>滚动</li>\n                        </ul>\n                    </div>\n\n                    <h2>二、使用</h2>\n                    <h3> 2.1 浏览器</h3>\n                    2.1.1 引入css和js\n                    <pre class=\"language-html line-numbers\"><code>&lt;link href=\"css/toc-helper.min.css\" rel=\"stylesheet\" /&gt;\n&lt;script src=\"js/toc-helper.min.js\"&gt;&lt;/script&gt;</code></pre>\n                    2.1.2 文章内容添加 <code class=\"code\">data</code> 属性，值指向目录元素：<code class=\"code\">data-toc=\"#toc\"</code>\n                    <pre class=\"language-html line-numbers\"><code>&lt;div data-toc=\"#toc\"&gt; &lt;/div&gt;</code></pre>\n                    <strong>注意：</strong><code class=\"code\">#toc</code>选择器对应的目录元素必须存在\n                    <pre class=\"language-html line-numbers\"><code>&lt;div id=\"toc\"&gt; &lt;/div&gt;</code></pre>\n                    2.1.3 目录已经存在, 调用<code class=\"code\">reload()</code>方法\n                    <pre class=\"language-javascript line-numbers\"><code>new TocHelper().reload();</code></pre>\n                    2.1.4 目录若不存在, 调用<code class=\"code\">reset()</code>方法，自动创建目录\n                    <pre class=\"language-javascript line-numbers\"><code>new TocHelper().reset();</code></pre>\n\n                    <h3> 2.2 使用<code class=\"code\">Webpack</code>, <code class=\"code\">Browserify</code>, <code\n                            class=\"code\">Gulp</code>，<code class=\"code\">Rollup</code> 等构建工具</h3>\n                    <p>2.2.1 使用 <code class=\"code\">npm</code> 安装 <code class=\"code\">TocHelper</code></p>\n                    <p>\n                        <code class=\"code\">npm install toc-helper --save</code> OR <code\n                            class=\"code\"> yarn add toc-helper </code>\n                    </p>\n\n                    <p>2.2.2 使用<code class=\"code\">require</code> 引入</p>\n                    <pre class=\"language-javascript line-numbers\"><code>require('toc-helper/css/toc-helper.min.css')\nconst TocHelper = require('toc-helper')</code></pre>\n\n                    <p>2.2.3 使用<code class=\"code\">import</code> 引入</p>\n                    <pre class=\"language-javascript line-numbers\"><code>import 'toc-helper/css/toc-helper.min.css'\nimport TocHelper from 'toc-helper'</code></pre>\n\n                    <p>2.2.4 简单应用</p>\n                    <pre class=\"language-javascript line-numbers\"><code>new TocHelper().reload()</code></pre>\n\n                    <h2>三 、API</h2>\n                    <h3> TocHelper([selector,options])</h3>\n                    <small>构造器方法, 只能通过<code class=\"code\">new</code>创建实例</small>\n                    <p><code class=\"code\"><strong> selector </strong> </code></p>\n                    <p>类型: <code class=\"code\"> string | HTMLElement | Object </code></p>\n                    <p>默认值: <code class=\"code\"> 无 </code></p>\n                    <p><code class=\"code\">selector</code> 若为字符串，则必须是选择器，切可以通过该选择器获取相应的元素，否则无效</p>\n                    <p><code class=\"code\">selector</code> 若为<code class=\"code\">Object</code> ，则 <code\n                            class=\"code\">options = selector</code> 第二个参数无效</p>\n                    <p><code class=\"code\"><strong>options</strong></code></p>\n                    <h3>megre(newOptions)</h3>\n                    <small>TocHelper 的实例方法</small>\n                    <p><code class=\"code\"><strong> newOptions </strong> </code></p>\n                    <p>类型: <code class=\"code\"> Object </code></p>\n                    <p>默认值: <code class=\"code\"> {} </code></p>\n                    <p>合并初始的 <code class=\"code\">options</code> 参数，并重新<code class=\"code\">load</code>; 比如 <code\n                            class=\"code\">class</code> 样式发生改变, <code class=\"code\">megre</code> 之后需要调用 <code\n                            class=\"code\">reload</code> 方法</p>\n                    <h3> reload() </h3>\n                    <small>无参</small>\n                    <p>实例化以及重新<code class=\"code\">megre</code>之后需要调用该方法</p>\n                    <small> 实例化后若目录已经存在则调用该方法，若不存在则调用<code class=\"code\">reset</code> 方法，生成目录会自动调用该方法 </small>\n                    <h3> reset() </h3>\n                    <small>无参</small>\n                    <p>目录不存在或需要重新生成目录使用该方法</p>\n                    <h2>四、配置</h2>\n                    <h3><strong>options </strong></h3>\n                    <h4><code class=\"code\"><strong>dom</strong></code> </h4>\n                    <small>文章内容<code class=\"code\">Dom</code>元素， 选择器或 <code class=\"code\">HTMLElement</code> 类型的<code\n                            class=\"code\">Dom</code>元素</small>\n                    <p>类型：<code class=\"code\">string | HTMLElement</code></p>\n                    <p>默认值：<code class=\"code\">*[data-toc]</code></p>\n\n                    <h4><code class=\"code\"><strong>classNames </strong></code> </h4>\n                    <small><code class=\"code\">class</code>选择器名称</small>\n\n                    <h5><code class=\"code\"><strong> toc </strong></code> </h5>\n                    <small>目录元素的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc</code></p>\n\n                    <h5><code class=\"code\"><strong> fxied </strong></code> </h5>\n                    <small>目录元素<code class=\"code\">position=fixed</code>的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-fixed</code></p>\n\n                    <h5><code class=\"code\"><strong> brand </strong></code> </h5>\n                    <small>目录字的（两个字）<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-brand</code></p>\n\n                    <h5><code class=\"code\"><strong> navbar </strong></code> </h5>\n                    <small>目录菜单<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-navbar</code></p>\n\n                    <h5><code class=\"code\"><strong> hightlight </strong></code> </h5>\n                    <small>激活高亮/鼠标悬停高亮的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-hightlight</code></p>\n\n                    <h5><code class=\"code\"><strong> nav </strong></code> </h5>\n                    <small>菜单父级节点<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-nav</code></p>\n\n                    <h5><code class=\"code\"><strong> link </strong></code> </h5>\n                    <small>菜单项<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-link</code></p>\n\n                    <h5><code class=\"code\"><strong> active </strong></code> </h5>\n                    <small>菜单项激活后的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">active</code></p>\n\n                    <h5><code class=\"code\"><strong> marginLeft1 </strong></code> </h5>\n                    <small>二级标题偏移的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">ml-1</code></p>\n\n                    <h5><code class=\"code\"><strong> marginLeft2 </strong></code> </h5>\n                    <small>三级标题偏移的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">ml-2</code></p>\n\n                    <h5><code class=\"code\"><strong> marginLeft3 </strong></code> </h5>\n                    <small>四级标题偏移的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">ml-3</code></p>\n\n                    <h5><code class=\"code\"><strong> marginLeft4 </strong></code> </h5>\n                    <small>五级标题偏移的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">ml-4</code></p>\n\n                    <h5><code class=\"code\"><strong> marginLeft5 </strong></code> </h5>\n                    <small>六级标题偏移的<code class=\"code\">class</code>选择器名称</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">ml-5</code></p>\n\n                    <h5><code class=\"code\"><strong><del> marginLeft6 </del></strong></code> </h5>\n                    <small><del>暂无</del></small>\n\n                    <h4><code class=\"code\"><strong> hightlight </strong></code> </h4>\n                    <small>是否高亮显示</small>\n                    <p>类型：<code class=\"code\">Boolean</code></p>\n                    <p>默认值：<code class=\"code\">true</code></p>\n\n                    <h4><code class=\"code\"><strong> brand </strong></code> </h4>\n                    <small>目录文本</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">目录</code></p>\n\n                    <h4><code class=\"code\"><strong> shadow </strong></code></h4>\n                    <small>目录阴影</small>\n                    <p>类型：<code class=\"code\">string | false</code></p>\n                    <p>默认值：<code class=\"code\">shadow</code></p>\n                    <small>若为<code class=\"code\">string</code> ，则提供阴影的样式<code class=\"code\">class</code>选择器名称, <code\n                            class=\"code\">false</code>表示禁用阴影</small>\n\n                    <h4><code class=\"code\"><strong> idPrefix </strong></code></h4>\n                    <small>生成ID选择器的前缀</small>\n                    <p>类型：<code class=\"code\">string</code></p>\n                    <p>默认值：<code class=\"code\">toc-heading-</code></p>\n                    <small>后缀由数字组成</small>\n\n                    <h4><code class=\"code\"><strong> offsetBody </strong></code></h4>\n                    <small>内容父级定位元素，该元素必须存在<code class=\"code\">position</code>属性，切<code\n                            class=\"code\">position</code>的值不等于<code class=\"code\">static</code>, 否则此值等于<code\n                            class=\"code\">body</code></small>\n                    <p>类型：<code class=\"code\">string | HTMLElement</code></p>\n                    <p>默认值：<code class=\"code\">document.body</code></p>\n                    <small>为<code class=\"code\">string</code>类型时，必须是选择器；无论是<code class=\"code\">string</code>类型，还是<code\n                            class=\"code\">HTMLElement</code>类型，都必须有<code class=\"position\">position</code>属性，切<code\n                            class=\"position\">position</code>的值不等于<code class=\"code\">static</code>, 否则此值等于<code\n                            class=\"code\">body</code></small>\n\n                    <h4><code class=\"code\"><strong> tocFixed </strong></code></h4>\n                    <small>不使用或设置目录<code class=\"code\">fixed</code>定位</small>\n                    <p>类型：<code class=\"code\"> false | Object </code></p>\n                    <p>默认值：<code class=\"code\">如下</code></p>\n                    <small><code class=\"code\">false</code>表示不使用<code class=\"code\">fixed</code>定位；<code\n                            class=\"code\">Object</code>如下：</small>\n\n                    <h5><code class=\"code\"><strong> top </strong></code></h5>\n                    <small>目录距离文档顶部的偏移量</small>\n                    <p>类型：<code class=\"code\"> Number </code></p>\n                    <p>默认值：<code class=\"code\">24</code></p>\n\n                    <h5><code class=\"code\"><strong> left </strong></code></h5>\n                    <small>目录距离文档左侧的偏移量</small>\n                    <p>类型：<code class=\"code\"> Number </code></p>\n                    <p>默认值：<code class=\"code\">无</code></p>\n\n                    <h4><code class=\"code\"><strong> maxDepth </strong></code></h4>\n                    <small>目录最大层级</small>\n                    <p>类型：<code class=\"code\"> Number </code></p>\n                    <p>默认值：<code class=\"code\">6</code></p>\n                    <small>层级最大为<code class=\"code\">6</code> ，最小为<code class=\"code\">1</code>，其他值无效</small>\n\n                    <h4><code class=\"code\"><strong> autoScroll </strong></code></h4>\n                    <small>自动添加滚动条; 若<code class=\"code\">autoScroll=true</code>需满足以下条件：<br/>1、目录高度要大于可视高度 <br/>2、<code class=\"code\">tocFixed</code>不等于<code class=\"code\">false</code></small>\n                    <p>类型：<code class=\"code\"> Boolean </code></p>\n                    <p>默认值：<code class=\"code\">true</code></p>\n\n                    <h2>五、示例<code class=\"code\">options</code>全部配置信息</h2>\n\n                    <pre class=\"language-javascript line-numbers\"><code>\n{\n    dom: '*[data-toc]', // 文章内容元素 选择器 或 HTMLElement\n    classNames: {       // class选择器\n        toc: 'toc',\n        fxied: 'toc-fixed',\n        brand: 'toc-brand',\n        navbar: 'toc-navbar',\n        hightlight: 'toc-hightlight',\n        nav: 'toc-nav',\n        link: 'toc-link',\n        active: 'active',\n        marginLeft1: 'ml-1',\n        marginLeft2: 'ml-2',\n        marginLeft3: 'ml-3',\n        marginLeft4: 'ml-4',\n        marginLeft5: 'ml-5',\n        marginLeft6: 'ml-6'\n    },\n    hightlight: true,\n    brand: '目录',\n    shadow: 'shadow',\n    idPrefix: 'toc-heading-',\n    offsetBody: document.body,\n    tocFixed: {\n        top: 24,\n        left: 0\n    },\n    maxDepth: 6,\n    autoScroll: true\n}\n                    </code></pre>\n                    <h1>注意：</h1>\n                    <p>使用锚点 /<code class=\"code\">Hash</code>定位时，若存在头部使用了<code class=\"code\">fixed</code>或<code\n                            class=\"code\">absolute</code>定位，会出现定位没达到预期效果; 可将所有的标题<code\n                            class=\"code\">padding-top</code>等于头部的高, <code\n                            class=\"code\">margin-top</code>等于头部高的相反值，这样可以解决定位不准切不会影响布局；</p>\n                    <p>示例代码如下:</p>\n                    <small>本示例也是本页中所使用的方案, 本页中头部高度为<code class=\"code\">83px</code></small>\n                    <pre class=\"language-css\"><code>*[data-toc] h1,\n*[data-toc] h2,\n*[data-toc] h3,\n*[data-toc] h4,\n*[data-toc] h5,\n*[data-toc] h6 {\n    margin-top: -83px;\n    padding-top: 83px;\n}</code></pre>\n                    <h1>即将支持的功能</h1>\n                    <ol style=\"padding:20px;\">\n                        <li><del>目录自动添加滚动条 已实现</del></li>\n                        <li><del>实现内容->目录联动滚动 已实现</del></li>\n                        <li>自动折叠/展开</li>\n                        <li>支持横向目录</li>\n                        <li>同步高亮文章中的标题</li>\n                    </ol>\n                </div>\n            </div>\n\n            <div class=\"col-sm-3\">\n                <div class=\"toc\" id=\"toc\">\n                    <!-- <div class=\"toc-brand\">目录</div>\n                    <nav class=\"toc-navbar\">\n                        <div class=\"toc-hightlight\"></div>\n                        <nav class=\"toc-nav\">\n                            <a class=\"toc-link\" href=\"#test-h5-1\">123131</a>\n                            <a class=\"toc-link\" href=\"#test-h4-1\">测试2</a>\n                            <a class=\"toc-link\" href=\"#test-h1-1\">长度</a>\n                            <nav class=\"toc-nav\">\n                                <a class=\"toc-link ml-1\" href=\"#test-h2-1\">长度123132</a>\n                                <a class=\"toc-link ml-1\" href=\"#toc-heading-1\">长度456</a>\n                                <nav class=\"toc-nav\">\n                                    <a class=\"toc-link ml-2\" href=\"#toc-heading-2\">面积123123</a>\n                                    <nav class=\"toc-nav\">\n                                        <a class=\"toc-link ml-4\"\n                                            href=\"\">面积123123面积123123面积123123面积123123面积123123面积123123面积123123面积123123面积123123面积123123面积123123面积123123</a>\n                                    </nav>\n                                </nav>\n                            </nav>\n                        </nav>\n                    </nav> -->\n                </div>\n            </div>\n        </div>\n\n\n    </div>\n    <footer>\n        <div class=\"container\">\n            <blockquote class=\"blockquote\">\n                <p class=\"mb-0\"> Copyright © 2019-2020 <a href=\"http://www.itlangzi.com\" target=\"_blank\">it浪子技术博客</a>\n                    版权所有 </p>\n                <div class=\"blockquote-footer\">Design By <cite title=\"小浪\"> 小浪 </cite></div>\n            </blockquote>\n        </div>\n    </footer>\n\n    <script src=\"./lib/prism.js\"></script>\n    <script src=\"./js/toc-helper.min.js\"></script>\n    <script>\n        const tocHelper = new TocHelper({\n            dom: 'div[data-toc]',\n            offsetBody: document.querySelector('#scroll'),\n            tocFixed: {\n                top: 83\n            }\n        })\n        tocHelper.reset()\n        const switchBtn = function () {\n            const scroll = document.querySelector('#scroll')\n            scroll.classList.contains('normal') ? (scroll.classList.remove('normal'), scroll.classList.add('scroll')) : (scroll.classList.add('normal'), scroll.classList.remove('scroll'))\n            tocHelper.megre({ offsetBody: document.querySelector('#scroll') }).reload()\n        }\n\n    </script>\n</body>\n\n</html>"
  },
  {
    "path": "public/vendor/aetherupload/js/aetherupload.js",
    "content": "var AetherUpload = {\n\n    upload: function () {\n\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n\n        this.resourceDom = this.wrapperDom.find('#aetherupload-resource'),\n\n            this.outputDom = this.wrapperDom.find('#aetherupload-output'),\n\n            this.progressBarDom = this.wrapperDom.find('#aetherupload-progressbar'),\n\n            this.resource = this.resourceDom[0].files[0],\n\n            this.resourceName = this.resource.name,\n\n            this.resourceSize = this.resource.size,\n\n            this.resourceTempBaseName = '',\n\n            this.resourceExt = '',\n\n            this.chunkSize = 0,\n\n            this.chunkCount = 0,\n\n            this.groupSubDir = '',\n\n            this.savedPath = '',\n\n            this.resourceHash = '',\n\n            this.blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,\n\n            this.i = 0,\n\n            this.locale,\n\n            this.messages = this.getLocalizedMessages(),\n\n            this.storageHost = $('#aetherupload-storage-host').length ? $('#aetherupload-storage-host').val() : '';\n\n        if (!this.blobSlice) {\n\n            this.outputDom.text(this.messages.error_unsupported_browser);\n\n            return;\n\n        }\n\n        if (this.resourceSize === 0) {\n\n            this.outputDom.text(this.messages.error_invalid_resource_size);\n\n            return;\n\n        }\n\n        if (this.resourceName.substring(this.resourceName.lastIndexOf('.') + 1, this.resourceName.length) === '') {\n\n            this.outputDom.text(this.messages.error_invalid_resource_type);\n\n            return;\n\n        }\n\n        this.outputDom.text(this.messages.status_upload_begin);\n\n        if (!('FileReader' in window) || !('File' in window) || typeof SparkMD5 === 'undefined') {\n\n            this.preprocess(); //浏览器不支持读取本地文件，跳过计算hash\n\n        } else if (this.laxMode === true) {\n\n            this.preprocess(); //宽松模式，跳过计算hash\n\n        } else {\n\n            this.calculateHash();\n\n        }\n\n    },\n\n    calculateHash: function () { //计算hash\n\n        var _this = this,\n\n            clientChunkSize = 4000000,\n\n            chunks = Math.ceil(_this.resource.size / clientChunkSize),\n\n            currentChunk = 0,\n\n            spark = new SparkMD5.ArrayBuffer(),\n\n            fileReader = new FileReader();\n\n        fileReader.onload = function (e) {\n\n            spark.append(e.target.result);\n\n            ++currentChunk;\n\n            _this.outputDom.text(_this.messages.status_hashing + ' ' + parseInt(currentChunk / chunks * 100) + '%');\n\n            if (currentChunk < chunks) {\n\n                loadNext();\n\n            } else {\n\n                _this.resourceHash = spark.end();\n\n                _this.preprocess();\n\n            }\n        };\n\n        fileReader.onerror = function () {\n\n            _this.preprocess();\n\n        };\n\n        function loadNext() {\n\n            var start = currentChunk * clientChunkSize,\n\n                end = start + clientChunkSize >= _this.resource.size ? _this.resource.size : start + clientChunkSize;\n\n            fileReader.readAsArrayBuffer(_this.blobSlice.call(_this.resource, start, end));\n\n        }\n\n        loadNext();\n\n    },\n\n    preprocess: function () { //预处理\n\n        var _this = this;\n\n        $.ajax({\n\n            url: _this.storageHost + _this.preprocessRoute,\n\n            type: 'POST',\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            crossDomain: true,\n\n            data: {\n\n                resource_name: _this.resourceName,\n\n                resource_size: _this.resourceSize,\n\n                resource_hash: _this.resourceHash,\n\n                locale: _this.locale,\n\n                group: _this.group\n\n            },\n\n            success: function (rst) {\n\n                if (rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n                }\n\n                _this.resourceTempBaseName = rst.resourceTempBaseName;\n\n                _this.resourceExt = rst.resourceExt;\n\n                _this.chunkSize = rst.chunkSize;\n\n                _this.chunkCount = Math.ceil(_this.resourceSize / _this.chunkSize);\n\n                _this.groupSubDir = rst.groupSubDir;\n\n                if (rst.savedPath.length === 0) {\n\n                    _this.uploadChunk();\n\n\n                } else {\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_instant_completion_success);\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                }\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                _this.outputDom.text(_this.messages.error_upload_fail);\n\n            }\n\n        });\n\n    },\n\n    uploadChunk: function () {\n\n        var _this = this,\n\n            start = this.i * this.chunkSize,\n\n            end = Math.min(this.resourceSize, start + this.chunkSize),\n\n            form = new FormData();\n\n        form.append('resource_chunk', this.resource.slice(start, end));\n\n        form.append('resource_ext', this.resourceExt);\n\n        form.append('chunk_total', this.chunkCount);\n\n        form.append('chunk_index', this.i + 1);\n\n        form.append('resource_temp_basename', this.resourceTempBaseName);\n\n        form.append('group', this.group);\n\n        form.append('group_subdir', this.groupSubDir);\n\n        form.append('locale', this.locale);\n\n        form.append('resource_hash', this.resourceHash);\n\n        $.ajax({\n\n            url: _this.storageHost + _this.uploadingRoute,\n\n            type: 'POST',\n\n            data: form,\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            cache: false,\n\n            crossDomain: true,\n\n            processData: false,\n\n            contentType: false,\n\n            success: function (rst) {\n\n                if ((rst instanceof Object) !== true) {\n\n                    _this.outputDom.text(_this.messages.error_invalid_server_return);\n\n                    return;\n                }\n\n                if (rst.error === 'undefined' || rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n\n                }\n\n                var percent = parseInt((_this.i + 1) / _this.chunkCount * 100);\n\n                _this.progressBarDom.css('width', percent + '%');\n\n                _this.outputDom.text(_this.messages.status_uploading + ' ' + percent + '%');\n\n                if (rst.savedPath !== 'undefined' && rst.savedPath !== '') {\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_upload_succeed);\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                } else {\n\n                    ++_this.i;\n\n                    _this.uploadChunk();\n\n                }\n\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                if (XMLHttpRequest.status === 0) {\n\n                    _this.outputDom.text(_this.messages.status_retrying);\n\n                    _this.sleep(5000);\n\n                    _this.uploadChunk();\n\n                } else {\n\n                    _this.outputDom.text(_this.messages.error_upload_fail);\n\n                }\n            }\n\n        });\n\n    },\n\n    sleep: function (milliSecond) {\n\n        var wakeUpTime = new Date().getTime() + milliSecond;\n\n        while (true) {\n\n            if (new Date().getTime() > wakeUpTime) {\n\n                return;\n            }\n        }\n    },\n\n    success: function (callback) {\n\n        this.callback = callback;\n\n        return this;\n    },\n\n    setPreprocessRoute: function (route) {\n\n        this.preprocessRoute = route;\n\n        return this;\n    },\n\n    setUploadingRoute: function (route) {\n\n        this.uploadingRoute = route;\n\n        return this;\n    },\n\n    setGroup: function (group) {\n\n        this.group = group;\n\n        return this;\n    },\n\n    setSavedPathField: function (selector) {\n\n        this.savedPathDom = $(selector);\n\n        return this;\n    },\n\n    setLaxMode: function (isLax) {\n\n        this.laxMode = isLax;\n\n        return this;\n    },\n\n    getLocalizedMessages: function () {\n\n        var lang = navigator.language ? navigator.language : navigator.browserLanguage;\n\n        var locales = Object.getOwnPropertyNames(this.text);\n\n        for (var k in locales) {\n\n            if (lang.indexOf(locales[k]) > -1) {\n\n                this.locale = locales[k];\n\n                return this.text[this.locale];\n\n            }\n\n        }\n\n        this.locale = 'en';\n\n        return this.text[this.locale];\n\n    },\n\n    text: {\n        en: {\n            status_upload_begin: 'upload begin',\n            error_unsupported_browser: 'Error: unsupported browser',\n            status_hashing: 'hashing',\n            status_instant_completion_success: 'upload succeed (instant completion) ',\n            status_uploading: 'uploading',\n            status_upload_succeed: 'upload succeed',\n            status_retrying: 'network problem, retrying...',\n            error_upload_fail: 'Error: upload fail',\n            error_invalid_server_return: 'Error: invalid server return value',\n            error_invalid_resource_size: 'Error: invalid resource size',\n            error_invalid_resource_type: 'Error: invalid resource type'\n        },\n        zh: {\n            status_upload_begin: '开始上传',\n            error_unsupported_browser: '错误：上传组件不被此浏览器支持',\n            status_hashing: '正在哈希',\n            status_instant_completion_success: '上传成功（秒传）',\n            status_uploading: '正在上传',\n            status_upload_succeed: '上传成功',\n            status_retrying: '网络故障，正在重试……',\n            error_upload_fail: '错误：上传失败',\n            error_invalid_server_return: '错误：无效的服务器返回值',\n            error_invalid_resource_size: '错误：无效的文件大小',\n            error_invalid_resource_type: '错误：无效的文件类型'\n        }\n    }\n\n\n};\n\n/*\n * 创建AetherUpload对象的全局方法\n * resource 文件对象\n * group 分组名\n */\nfunction aetherupload(resource) {\n\n    var newInstance = Object.create(AetherUpload);\n\n    newInstance.wrapperDom = $(resource).parents('#aetherupload-wrapper');\n\n    newInstance.group = 'file'; //分组的默认值\n\n    newInstance.savedPathDom = newInstance.wrapperDom.find('#aetherupload-savedpath'); //资源储存地址所在节点的默认值\n\n    newInstance.preprocessRoute = '/aetherupload/preprocess'; //预处理路由的默认值\n\n    newInstance.uploadingRoute = '/aetherupload/uploading'; //上传路由的默认值\n\n    newInstance.laxMode = false; //宽松模式\n\n    return newInstance;\n}\n\n\n\n\n\n\n\n"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/bootstrap-slider.js",
    "content": "/*! =========================================================\n * bootstrap-slider.js\n *\n * Maintainers: \n *\t\tKyle Kemp \n *\t\t\t- Twitter: @seiyria\n *\t\t\t- Github:  seiyria\n *\t\tRohit Kalkur\n *\t\t\t- Twitter: @Rovolutionary\n *\t\t\t- Github:  rovolution\n *\n * =========================================================\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n\n\n/**\n * Bridget makes jQuery widgets\n * v1.0.1\n * MIT license\n */\n( function( $ ) {\n\n\t( function( $ ) {\n\n\t\t'use strict';\n\n\t\t// -------------------------- utils -------------------------- //\n\n\t\tvar slice = Array.prototype.slice;\n\n\t\tfunction noop() {}\n\n\t\t// -------------------------- definition -------------------------- //\n\n\t\tfunction defineBridget( $ ) {\n\n\t\t\t// bail if no jQuery\n\t\t\tif ( !$ ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// -------------------------- addOptionMethod -------------------------- //\n\n\t\t\t/**\n\t\t\t * adds option method -> $().plugin('option', {...})\n\t\t\t * @param {Function} PluginClass - constructor class\n\t\t\t */\n\t\t\tfunction addOptionMethod( PluginClass ) {\n\t\t\t\t// don't overwrite original option method\n\t\t\t\tif ( PluginClass.prototype.option ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t  // option setter\n\t\t\t  PluginClass.prototype.option = function( opts ) {\n\t\t\t    // bail out if not an object\n\t\t\t    if ( !$.isPlainObject( opts ) ){\n\t\t\t      return;\n\t\t\t    }\n\t\t\t    this.options = $.extend( true, this.options, opts );\n\t\t\t  };\n\t\t\t}\n\n\n\t\t\t// -------------------------- plugin bridge -------------------------- //\n\n\t\t\t// helper function for logging errors\n\t\t\t// $.error breaks jQuery chaining\n\t\t\tvar logError = typeof console === 'undefined' ? noop :\n\t\t\t  function( message ) {\n\t\t\t    console.error( message );\n\t\t\t  };\n\n\t\t\t/**\n\t\t\t * jQuery plugin bridge, access methods like $elem.plugin('method')\n\t\t\t * @param {String} namespace - plugin name\n\t\t\t * @param {Function} PluginClass - constructor class\n\t\t\t */\n\t\t\tfunction bridge( namespace, PluginClass ) {\n\t\t\t  // add to jQuery fn namespace\n\t\t\t  $.fn[ namespace ] = function( options ) {\n\t\t\t    if ( typeof options === 'string' ) {\n\t\t\t      // call plugin method when first argument is a string\n\t\t\t      // get arguments for method\n\t\t\t      var args = slice.call( arguments, 1 );\n\n\t\t\t      for ( var i=0, len = this.length; i < len; i++ ) {\n\t\t\t        var elem = this[i];\n\t\t\t        var instance = $.data( elem, namespace );\n\t\t\t        if ( !instance ) {\n\t\t\t          logError( \"cannot call methods on \" + namespace + \" prior to initialization; \" +\n\t\t\t            \"attempted to call '\" + options + \"'\" );\n\t\t\t          continue;\n\t\t\t        }\n\t\t\t        if ( !$.isFunction( instance[options] ) || options.charAt(0) === '_' ) {\n\t\t\t          logError( \"no such method '\" + options + \"' for \" + namespace + \" instance\" );\n\t\t\t          continue;\n\t\t\t        }\n\n\t\t\t        // trigger method with arguments\n\t\t\t        var returnValue = instance[ options ].apply( instance, args);\n\n\t\t\t        // break look and return first value if provided\n\t\t\t        if ( returnValue !== undefined && returnValue !== instance) {\n\t\t\t          return returnValue;\n\t\t\t        }\n\t\t\t      }\n\t\t\t      // return this if no return value\n\t\t\t      return this;\n\t\t\t    } else {\n\t\t\t      var objects = this.map( function() {\n\t\t\t        var instance = $.data( this, namespace );\n\t\t\t        if ( instance ) {\n\t\t\t          // apply options & init\n\t\t\t          instance.option( options );\n\t\t\t          instance._init();\n\t\t\t        } else {\n\t\t\t          // initialize new instance\n\t\t\t          instance = new PluginClass( this, options );\n\t\t\t          $.data( this, namespace, instance );\n\t\t\t        }\n\t\t\t        return $(this);\n\t\t\t      });\n\n\t\t\t      if(!objects || objects.length > 1) {\n\t\t\t      \treturn objects;\n\t\t\t      } else {\n\t\t\t      \treturn objects[0];\n\t\t\t      }\n\t\t\t    }\n\t\t\t  };\n\n\t\t\t}\n\n\t\t\t// -------------------------- bridget -------------------------- //\n\n\t\t\t/**\n\t\t\t * converts a Prototypical class into a proper jQuery plugin\n\t\t\t *   the class must have a ._init method\n\t\t\t * @param {String} namespace - plugin name, used in $().pluginName\n\t\t\t * @param {Function} PluginClass - constructor class\n\t\t\t */\n\t\t\t$.bridget = function( namespace, PluginClass ) {\n\t\t\t  addOptionMethod( PluginClass );\n\t\t\t  bridge( namespace, PluginClass );\n\t\t\t};\n\n\t\t\treturn $.bridget;\n\n\t\t}\n\n\t  \t// get jquery from browser global\n\t  \tdefineBridget( $ );\n\n\t})( $ );\n\n\n\t/*************************************************\n\t\t\t\t\t\n\t\t\tBOOTSTRAP-SLIDER SOURCE CODE\n\n\t**************************************************/\n\n\t(function( $ ) {\n\n\t\tvar ErrorMsgs = {\n\t\t\tformatInvalidInputErrorMsg : function(input) {\n\t\t\t\treturn \"Invalid input value '\" + input + \"' passed in\";\n\t\t\t},\n\t\t\tcallingContextNotSliderInstance : \"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method\"\n\t\t};\n\n\n\n\t\t/*************************************************\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCONSTRUCTOR\n\n\t\t**************************************************/\n\t\tvar Slider = function(element, options) {\n\t\t\tcreateNewSlider.call(this, element, options);\n\t\t\treturn this;\n\t\t};\n\n\t\tfunction createNewSlider(element, options) {\n\t\t\t/*************************************************\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCreate Markup\n\n\t\t\t**************************************************/\n\t\t\tif(typeof element === \"string\") {\n\t\t\t\tthis.element = document.querySelector(element);\n\t\t\t} else if(element instanceof HTMLElement) {\n\t\t\t\tthis.element = element;\n\t\t\t}\n\t\t\t\n\t\t\tvar origWidth = this.element.style.width;\n\t\t\tvar updateSlider = false;\n\t\t\tvar parent = this.element.parentNode;\n\t\t\tvar sliderTrackSelection;\n\t\t\tvar sliderMinHandle;\n\t\t\tvar sliderMaxHandle;\n\n\t\t\tif (this.sliderElem) {\n\t\t\t\tupdateSlider = true;\n\t\t\t} else {\n\t\t\t\t/* Create elements needed for slider */\n\t\t\t\tthis.sliderElem = document.createElement(\"div\");\n\t\t\t\tthis.sliderElem.className = \"slider\";\n\n\t\t\t\t/* Create slider track elements */\n\t\t\t\tvar sliderTrack = document.createElement(\"div\");\n\t\t\t\tsliderTrack.className = \"slider-track\";\n\n\t\t\t\tsliderTrackSelection = document.createElement(\"div\");\n\t\t\t\tsliderTrackSelection.className = \"slider-selection\";\n\n\t\t\t\tsliderMinHandle = document.createElement(\"div\");\n\t\t\t\tsliderMinHandle.className = \"slider-handle min-slider-handle\";\n\n\t\t\t\tsliderMaxHandle = document.createElement(\"div\");\n\t\t\t\tsliderMaxHandle.className = \"slider-handle max-slider-handle\";\n\n\t\t\t\tsliderTrack.appendChild(sliderTrackSelection);\n\t\t\t\tsliderTrack.appendChild(sliderMinHandle);\n\t\t\t\tsliderTrack.appendChild(sliderMaxHandle);\n\n\t\t\t\tvar createAndAppendTooltipSubElements = function(tooltipElem) {\n\t\t\t\t\tvar arrow = document.createElement(\"div\");\n\t\t\t\t\tarrow.className = \"tooltip-arrow\";\n\n\t\t\t\t\tvar inner = document.createElement(\"div\");\n\t\t\t\t\tinner.className = \"tooltip-inner\";\n\n\t\t\t\t\ttooltipElem.appendChild(arrow);\n\t\t\t\t\ttooltipElem.appendChild(inner);\n\t\t\t\t};\n\n\t\t\t\t/* Create tooltip elements */\n\t\t\t\tvar sliderTooltip = document.createElement(\"div\");\n\t\t\t\tsliderTooltip.className = \"tooltip tooltip-main\";\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltip);\n\n\t\t\t\tvar sliderTooltipMin = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMin.className = \"tooltip tooltip-min\";\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMin);\n\n\t\t\t\tvar sliderTooltipMax = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMax.className = \"tooltip tooltip-max\";\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMax);\n\n\n\t\t\t\t/* Append components to sliderElem */\n\t\t\t\tthis.sliderElem.appendChild(sliderTrack);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltip);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMin);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMax);\n\n\t\t\t\t/* Append slider element to parent container, right before the original <input> element */\n\t\t\t\tparent.insertBefore(this.sliderElem, this.element);\n\t\t\t\t\n\t\t\t\t/* Hide original <input> element */\n\t\t\t\tthis.element.style.display = \"none\";\n\t\t\t}\n\t\t\t/* If JQuery exists, cache JQ references */\n\t\t\tif($) {\n\t\t\t\tthis.$element = $(this.element);\n\t\t\t\tthis.$sliderElem = $(this.sliderElem);\n\t\t\t}\n\n\t\t\t/*************************************************\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tProcess Options\n\n\t\t\t**************************************************/\n\t\t\toptions = options ? options : {};\n\t\t\tvar optionTypes = Object.keys(this.defaultOptions);\n\n\t\t\tfor(var i = 0; i < optionTypes.length; i++) {\n\t\t\t\tvar optName = optionTypes[i];\n\n\t\t\t\t// First check if an option was passed in via the constructor\n\t\t\t\tvar val = options[optName];\n\t\t\t\t// If no data attrib, then check data atrributes\n\t\t\t\tval = (typeof val !== 'undefined') ? val : getDataAttrib(this.element, optName);\n\t\t\t\t// Finally, if nothing was specified, use the defaults\n\t\t\t\tval = (val !== null) ? val : this.defaultOptions[optName];\n\n\t\t\t\t// Set all options on the instance of the Slider\n\t\t\t\tif(!this.options) {\n\t\t\t\t\tthis.options = {};\n\t\t\t\t}\n\t\t\t\tthis.options[optName] = val;\n\t\t\t}\n\n\t\t\tfunction getDataAttrib(element, optName) {\n\t\t\t\tvar dataName = \"data-slider-\" + optName;\n\t\t\t\tvar dataValString = element.getAttribute(dataName);\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(dataValString);\n\t\t\t\t}\n\t\t\t\tcatch(err) {\n\t\t\t\t\treturn dataValString;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*************************************************\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSetup\n\n\t\t\t**************************************************/\n\t\t\tthis.eventToCallbackMap = {};\n\t\t\tthis.sliderElem.id = this.options.id;\n\n\t\t\tthis.touchCapable = 'ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch);\n\n\t\t\tthis.tooltip = this.sliderElem.querySelector('.tooltip-main');\n\t\t\tthis.tooltipInner = this.tooltip.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_min = this.sliderElem.querySelector('.tooltip-min');\n\t\t\tthis.tooltipInner_min = this.tooltip_min.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_max = this.sliderElem.querySelector('.tooltip-max');\n\t\t\tthis.tooltipInner_max= this.tooltip_max.querySelector('.tooltip-inner');\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-vertical');\n\t\t\t\tthis._removeClass(this.tooltip, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_max, 'hide');\n\n\t\t\t\t// Undo existing inline styles for track\n\t\t\t\t[\"left\", \"top\", \"width\", \"height\"].forEach(function(prop) {\n\t\t\t\t\tthis._removeProperty(this.trackSelection, prop);\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles on handles\n\t\t\t\t[this.handle1, this.handle2].forEach(function(handle) {\n\t\t\t\t\tthis._removeProperty(handle, 'left');\n\t\t\t\t\tthis._removeProperty(handle, 'top');\t\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles and classes on tooltips\n\t\t\t\t[this.tooltip, this.tooltip_min, this.tooltip_max].forEach(function(tooltip) {\n\t\t\t\t\tthis._removeProperty(tooltip, 'left');\n\t\t\t\t\tthis._removeProperty(tooltip, 'top');\n\t\t\t\t\tthis._removeProperty(tooltip, 'margin-left');\n\t\t\t\t\tthis._removeProperty(tooltip, 'margin-top');\n\n\t\t\t\t\tthis._removeClass(tooltip, 'right');\n\t\t\t\t\tthis._removeClass(tooltip, 'top');\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tif(this.options.orientation === 'vertical') {\n\t\t\t\tthis._addClass(this.sliderElem,'slider-vertical');\n\t\t\t\t\n\t\t\t\tthis.stylePos = 'top';\n\t\t\t\tthis.mousePos = 'pageY';\n\t\t\t\tthis.sizePos = 'offsetHeight';\n\n\t\t\t\tthis._addClass(this.tooltip, 'right');\n\t\t\t\tthis.tooltip.style.left = '100%';\n\t\t\t\t\n\t\t\t\tthis._addClass(this.tooltip_min, 'right');\n\t\t\t\tthis.tooltip_min.style.left = '100%';\n\n\t\t\t\tthis._addClass(this.tooltip_max, 'right');\n\t\t\t\tthis.tooltip_max.style.left = '100%';\n\t\t\t} else {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis.sliderElem.style.width = origWidth;\n\n\t\t\t\tthis.options.orientation = 'horizontal';\n\t\t\t\tthis.stylePos = 'left';\n\t\t\t\tthis.mousePos = 'pageX';\n\t\t\t\tthis.sizePos = 'offsetWidth';\n\t\t\t\t\n\t\t\t\tthis._addClass(this.tooltip, 'top');\n\t\t\t\tthis.tooltip.style.top = -this.tooltip.outerHeight - 14 + 'px';\n\t\t\t\t\n\t\t\t\tthis._addClass(this.tooltip_min, 'top');\n\t\t\t\tthis.tooltip_min.style.top = -this.tooltip_min.outerHeight - 14 + 'px';\n\n\t\t\t\tthis._addClass(this.tooltip_max, 'top');\n\t\t\t\tthis.tooltip_max.style.top = -this.tooltip_max.outerHeight - 14 + 'px';\n\t\t\t}\n\n\t\t\tif (this.options.value instanceof Array) {\n\t\t\t\tthis.options.range = true;\n\t\t\t} else if (this.options.range) {\n\t\t\t\t// User wants a range, but value is not an array\n\t\t\t\tthis.options.value = [this.options.value, this.options.max];\n\t\t\t}\n\n\t\t\tthis.trackSelection = sliderTrackSelection || this.trackSelection;\n\t\t\tif (this.options.selection === 'none') {\n\t\t\t\tthis._addClass(this.trackSelection, 'hide');\n\t\t\t}\n\n\t\t\tthis.handle1 = sliderMinHandle || this.handle1;\n\t\t\tthis.handle2 = sliderMaxHandle || this.handle2;\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.handle1, 'round triangle');\n\t\t\t\tthis._removeClass(this.handle2, 'round triangle hide');\n\t\t\t}\n\n\t\t\tvar availableHandleModifiers = ['round', 'triangle', 'custom'];\n\t\t\tvar isValidHandleType = availableHandleModifiers.indexOf(this.options.handle) !== -1;\n\t\t\tif (isValidHandleType) {\n\t\t\t\tthis._addClass(this.handle1, this.options.handle);\n\t\t\t\tthis._addClass(this.handle2, this.options.handle);\n\t\t\t}\n\n\t\t\tthis.offset = this._offset(this.sliderElem);\n\t\t\tthis.size = this.sliderElem[this.sizePos];\n\t\t\tthis.setValue(this.options.value);\n\n\t\t\t/******************************************\n\t\t\t\t\t\t\n\t\t\t\t\t\tBind Event Listeners\n\n\t\t\t******************************************/\n\n\t\t\t// Bind keyboard handlers\n\t\t\tthis.handle1Keydown = this._keydown.bind(this, 0);\n\t\t\tthis.handle1.addEventListener(\"keydown\", this.handle1Keydown, false);\n\n\t\t\tthis.handle2Keydown = this._keydown.bind(this, 0);\n\t\t\tthis.handle2.addEventListener(\"keydown\", this.handle2Keydown, false);\n\n\t\t\tif (this.touchCapable) {\n\t\t\t\t// Bind touch handlers\n\t\t\t\tthis.mousedown = this._mousedown.bind(this);\n\t\t\t\tthis.sliderElem.addEventListener(\"touchstart\", this.mousedown, false);\n\t\t\t} else {\n\t\t\t\t// Bind mouse handlers\n\t\t\t\tthis.mousedown = this._mousedown.bind(this);\n\t\t\t\tthis.sliderElem.addEventListener(\"mousedown\", this.mousedown, false);\n\t\t\t}\n\n\t\t\t// Bind tooltip-related handlers\n\t\t\tif(this.options.tooltip === 'hide') {\n\t\t\t\tthis._addClass(this.tooltip, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_max, 'hide');\n\t\t\t} else if(this.options.tooltip === 'always') {\n\t\t\t\tthis._showTooltip();\n\t\t\t\tthis._alwaysShowTooltip = true;\n\t\t\t} else {\n\t\t\t\tthis.showTooltip = this._showTooltip.bind(this);\n\t\t\t\tthis.hideTooltip = this._hideTooltip.bind(this);\n\n\t\t\t\tthis.sliderElem.addEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\tthis.sliderElem.addEventListener(\"mouseleave\", this.hideTooltip, false);\n\n\t\t\t\tthis.handle1.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle1.addEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\tthis.handle2.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle2.addEventListener(\"blur\", this.hideTooltip, false);\n\t\t\t}\n\n\t\t\tif(this.options.enabled) {\n\t\t\t\tthis.enable();\n\t\t\t} else {\n\t\t\t\tthis.disable();\n\t\t\t}\n\t\t}\n\n\t\t/*************************************************\n\t\t\t\t\t\t\n\t\t\t\t\tINSTANCE PROPERTIES/METHODS\n\n\t\t- Any methods bound to the prototype are considered \n\t\tpart of the plugin's `public` interface\n\n\t\t**************************************************/\n\t\tSlider.prototype = {\n\t\t\t_init: function() {}, // NOTE: Must exist to support bridget\n\n\t\t\tconstructor: Slider,\n\n\t\t\tdefaultOptions: {\n\t\t\t\tid: \"\",\n\t\t\t  \tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: 1,\n\t\t\t\tprecision: 0,\n\t\t\t\torientation: 'horizontal',\n\t\t\t\tvalue: 5,\n\t\t\t\trange: false,\n\t\t\t\tselection: 'before',\n\t\t\t\ttooltip: 'show',\n\t\t\t\ttooltip_split: false,\n\t\t\t\thandle: 'round',\n\t\t\t\treversed: false,\n\t\t\t\tenabled: true,\n\t\t\t\tformatter: function(val) {\n\t\t\t\t\tif(val instanceof Array) {\n\t\t\t\t\t\treturn val[0] + \" : \" + val[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnatural_arrow_keys: false\n\t\t\t},\n\t\t\t\n\t\t\tover: false,\n\t\t\t\n\t\t\tinDrag: false,\n\n\t\t\tgetValue: function() {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\treturn this.options.value;\n\t\t\t\t}\n\t\t\t\treturn this.options.value[0];\n\t\t\t},\n\n\t\t\tsetValue: function(val, triggerSlideEvent) {\n\t\t\t\tif (!val) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tthis.options.value = this._validateInputValue(val);\n\t\t\t\tvar applyPrecision = this._applyPrecision.bind(this);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tthis.options.value[0] = applyPrecision(this.options.value[0]);\n\t\t\t\t\tthis.options.value[1] = applyPrecision(this.options.value[1]); \n\n\t\t\t\t\tthis.options.value[0] = Math.max(this.options.min, Math.min(this.options.max, this.options.value[0]));\n\t\t\t\t\tthis.options.value[1] = Math.max(this.options.min, Math.min(this.options.max, this.options.value[1]));\n\t\t\t\t} else {\n\t\t\t\t\tthis.options.value = applyPrecision(this.options.value);\n\t\t\t\t\tthis.options.value = [ Math.max(this.options.min, Math.min(this.options.max, this.options.value))];\n\t\t\t\t\tthis._addClass(this.handle2, 'hide');\n\t\t\t\t\tif (this.options.selection === 'after') {\n\t\t\t\t\t\tthis.options.value[1] = this.options.max;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.options.value[1] = this.options.min;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.diff = this.options.max - this.options.min;\n\t\t\t\tif (this.diff > 0) {\n\t\t\t\t\tthis.percentage = [\n\t\t\t\t\t\t(this.options.value[0] - this.options.min) * 100 / this.diff,\n\t\t\t\t\t\t(this.options.value[1] - this.options.min) * 100 / this.diff,\n\t\t\t\t\t\tthis.options.step * 100 / this.diff\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tthis.percentage = [0, 0, 100];\n\t\t\t\t}\n\n\t\t\t\tthis._layout();\n\n\t\t\t\tvar sliderValue = this.options.range ? this.options.value : this.options.value[0];\n\t\t\t\tthis._setDataVal(sliderValue);\n\n\t\t\t\tif(triggerSlideEvent === true) {\n\t\t\t\t\tthis._trigger('slide', sliderValue);\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tdestroy: function(){\n\t\t\t\t// Remove event handlers on slider elements\n\t\t\t\tthis._removeSliderEventHandlers();\n\n\t\t\t\t// Remove the slider from the DOM\n\t\t\t\tthis.sliderElem.parentNode.removeChild(this.sliderElem);\n\t\t\t\t/* Show original <input> element */\n\t\t\t\tthis.element.style.display = \"\";\n\n\t\t\t\t// Clear out custom event bindings\n\t\t\t\tthis._cleanUpEventCallbacksMap();\n\n\t\t\t\t// Remove data values\n\t\t\t\tthis.element.removeAttribute(\"data\");\n\n\t\t\t\t// Remove JQuery handlers/data\n\t\t\t\tif($) {\n\t\t\t\t\tthis._unbindJQueryEventHandlers();\n\t\t\t\t\tthis.$element.removeData('slider');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tdisable: function() {\n\t\t\t\tthis.options.enabled = false;\n\t\t\t\tthis.handle1.removeAttribute(\"tabindex\");\n\t\t\t\tthis.handle2.removeAttribute(\"tabindex\");\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideDisabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tenable: function() {\n\t\t\t\tthis.options.enabled = true;\n\t\t\t\tthis.handle1.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis.handle2.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideEnabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\ttoggle: function() {\n\t\t\t\tif(this.options.enabled) {\n\t\t\t\t\tthis.disable();\n\t\t\t\t} else {\n\t\t\t\t\tthis.enable();\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tisEnabled: function() {\n\t\t\t\treturn this.options.enabled;\n\t\t\t},\n\n\t\t\ton: function(evt, callback) {\n\t\t\t\tif($) {\n\t\t\t\t\tthis.$element.on(evt, callback);\n\t\t\t\t\tthis.$sliderElem.on(evt, callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis._bindNonQueryEventHandler(evt, callback);\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tgetAttribute: function(attribute) {\n\t\t\t\tif(attribute) {\n\t\t\t\t\treturn this.options[attribute];\t\t\n\t\t\t\t} else {\n\t\t\t\t\treturn this.options;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsetAttribute: function(attribute, value) {\n\t\t\t\tthis.options[attribute] = value;\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\trefresh: function() {\n\t\t\t\tthis._removeSliderEventHandlers();\n\t\t\t\tcreateNewSlider.call(this, this.element, this.options);\n\t\t\t\tif($) {\n\t\t\t\t\t// Bind new instance of slider to the element\n\t\t\t\t\t$.data(this.element, 'slider', this);\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t\n\t\t\t/******************************+\n\t\t\t\t\t\n\t\t\t\t\t\tHELPERS\n\n\t\t\t- Any method that is not part of the public interface.\n\t\t\t- Place it underneath this comment block and write its signature like so:\n\n\t\t\t  \t\t\t\t\t_fnName : function() {...}\n\n\t\t\t********************************/\n\t\t\t_removeSliderEventHandlers: function() {\n\t\t\t\t// Remove event listeners from handle1\n\t\t\t\tthis.handle1.removeEventListener(\"keydown\", this.handle1Keydown, false);\n\t\t\t\tthis.handle1.removeEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle1.removeEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\t// Remove event listeners from handle2\n\t\t\t\tthis.handle2.removeEventListener(\"keydown\", this.handle2Keydown, false);\n\t\t\t\tthis.handle2.removeEventListener(\"focus\", this.handle2Keydown, false);\n\t\t\t\tthis.handle2.removeEventListener(\"blur\", this.handle2Keydown, false);\n\n\t\t\t\t// Remove event listeners from sliderElem\n\t\t\t\tthis.sliderElem.removeEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\tthis.sliderElem.removeEventListener(\"mouseleave\", this.hideTooltip, false);\n\t\t\t\tthis.sliderElem.removeEventListener(\"touchstart\", this.mousedown, false);\n\t\t\t\tthis.sliderElem.removeEventListener(\"mousedown\", this.mousedown, false);\n\t\t\t},\n\t\t\t_bindNonQueryEventHandler: function(evt, callback) {\n\t\t\t\tif(this.eventToCallbackMap[evt]===undefined) {\n\t\t\t\t\tthis.eventToCallbackMap[evt] = [];\n\t\t\t\t}\n\t\t\t\tthis.eventToCallbackMap[evt].push(callback);\n\t\t\t},\n\t\t\t_cleanUpEventCallbacksMap: function() {\n\t\t\t\tvar eventNames = Object.keys(this.eventToCallbackMap);\n\t\t\t\tfor(var i = 0; i < eventNames.length; i++) {\n\t\t\t\t\tvar eventName = eventNames[i];\n\t\t\t\t\tthis.eventToCallbackMap[eventName] = null;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_showTooltip: function() {\n\t\t\t\tif (this.options.tooltip_split === false ){\n\t            \tthis._addClass(this.tooltip, 'in');\n\t\t        } else {\n\t\t            this._addClass(this.tooltip_min, 'in');\n\t\t            this._addClass(this.tooltip_max, 'in');\n\t\t        }\n\t\t\t\tthis.over = true;\n\t\t\t},\n\t\t\t_hideTooltip: function() {\n\t\t\t\tif (this.inDrag === false && this.alwaysShowTooltip !== true) {\n\t\t\t\t\tthis._removeClass(this.tooltip, 'in');\n\t\t\t\t\tthis._removeClass(this.tooltip_min, 'in');\n\t\t\t\t\tthis._removeClass(this.tooltip_max, 'in');\n\t\t\t\t}\n\t\t\t\tthis.over = false;\n\t\t\t},\n\t\t\t\t_layout: function() {\t\t\t\n\t\t\t\tvar positionPercentages;\n\n\t\t\t\tif(this.options.reversed) {\n\t\t\t\t\tpositionPercentages = [ 100 - this.percentage[0], this.percentage[1] ];\n\t\t\t\t} else {\n\t\t\t\t\tpositionPercentages = [ this.percentage[0], this.percentage[1] ];\n\t\t\t\t}\n\n\t\t\t\tthis.handle1.style[this.stylePos] = positionPercentages[0]+'%';\n\t\t\t\tthis.handle2.style[this.stylePos] = positionPercentages[1]+'%';\n\n\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\tthis.trackSelection.style.top = Math.min(positionPercentages[0], positionPercentages[1]) +'%';\n\t\t\t\t\tthis.trackSelection.style.height = Math.abs(positionPercentages[0] - positionPercentages[1]) +'%';\n\t\t\t\t} else {\n\t\t\t\t\tthis.trackSelection.style.left = Math.min(positionPercentages[0], positionPercentages[1]) +'%';\n\t\t\t\t\tthis.trackSelection.style.width = Math.abs(positionPercentages[0] - positionPercentages[1]) +'%';\n\n\t\t\t        var offset_min = this.tooltip_min.getBoundingClientRect();\n\t\t\t        var offset_max = this.tooltip_max.getBoundingClientRect();\n\n\t\t\t        if (offset_min.right > offset_max.left) {\n\t\t\t            this._removeClass(this.tooltip_max, 'top');\n\t\t\t            this._addClass(this.tooltip_max, 'bottom');\n\t\t\t            this.tooltip_max.style.top = 18 + 'px';\n\t\t\t        } else {\n\t\t\t            this._removeClass(this.tooltip_max, 'bottom');\n\t\t\t            this._addClass(this.tooltip_max, 'top');\n\t\t\t            this.tooltip_max.style.top = -30 + 'px';\n\t\t\t        }\n\t \t\t\t}\n\n\n\t \t\t\tvar formattedTooltipVal;\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this.options.value);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = (positionPercentages[1] + positionPercentages[0])/2 + '%';\n\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-top', -this.tooltip.offsetHeight / 2 + 'px');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-left', -this.tooltip.offsetWidth / 2 + 'px');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-top', -this.tooltip.offsetHeight / 2 + 'px');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-left', -this.tooltip.offsetWidth / 2 + 'px');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar innerTooltipMinText = this.options.formatter(this.options.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner_min, innerTooltipMinText);\n\n\t\t\t\t\tvar innerTooltipMaxText = this.options.formatter(this.options.value[1]);\n\t\t\t\t\tthis._setText(this.tooltipInner_max, innerTooltipMaxText);\n\n\t\t\t\t\tthis.tooltip_min.style[this.stylePos] = positionPercentages[0] + '%';\n\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tthis._css(this.tooltip_min, 'margin-top', -this.tooltip_min.offsetHeight / 2 + 'px');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._css(this.tooltip_min, 'margin-left', -this.tooltip_min.offsetWidth / 2 + 'px');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.tooltip_max.style[this.stylePos] = positionPercentages[1] + '%';\n\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tthis._css(this.tooltip_max, 'margin-top', -this.tooltip_max.offsetHeight / 2 + 'px');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._css(this.tooltip_max, 'margin-left', -this.tooltip_max.offsetWidth / 2 + 'px');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this.options.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = positionPercentages[0] + '%';\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-top', -this.tooltip.offsetHeight / 2 + 'px');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._css(this.tooltip, 'margin-left', -this.tooltip.offsetWidth / 2 + 'px');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_removeProperty: function(element, prop) {\n\t\t\t\tif (element.style.removeProperty) {\n\t\t\t\t    element.style.removeProperty(prop);\n\t\t\t\t} else {\n\t\t\t\t    element.style.removeAttribute(prop);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mousedown: function(ev) {\n\t\t\t\tif(!this.options.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis._triggerFocusOnHandle();\n\n\t\t\t\tthis.offset = this._offset(this.sliderElem);\n\t\t\t\tthis.size = this.sliderElem[this.sizePos];\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tvar diff1 = Math.abs(this.percentage[0] - percentage);\n\t\t\t\t\tvar diff2 = Math.abs(this.percentage[1] - percentage);\n\t\t\t\t\tthis.dragged = (diff1 < diff2) ? 0 : 1;\n\t\t\t\t} else {\n\t\t\t\t\tthis.dragged = 0;\n\t\t\t\t}\n\n\t\t\t\tthis.percentage[this.dragged] = this.options.reversed ? 100 - percentage : percentage;\n\t\t\t\tthis._layout();\n\n\t\t\t\tthis.mousemove = this._mousemove.bind(this);\n\t\t\t\tthis.mouseup = this._mouseup.bind(this);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Bind touch events:\n\t\t\t\t\tdocument.addEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.addEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t} else {\n\t\t\t\t\t// Bind mouse events:\n\t\t\t\t\tdocument.addEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\t\tdocument.addEventListener(\"mouseup\", this.mouseup, false);\n\t\t\t\t}\n\n\t\t\t\tthis.inDrag = true;\n\n\t\t\t\tvar val = this._calculateValue();\n\t\t\t\tthis._trigger('slideStart', val);\n\t\t\t\tthis._setDataVal(val);\n\t\t\t\tthis.setValue(val);\n\n\t\t\t\tthis._pauseEvent(ev);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\t_triggerFocusOnHandle: function(handleIdx) {\n\t\t\t\tif(handleIdx === 0) {\n\t\t\t\t\tthis.handle1.focus();\n\t\t\t\t}\n\t\t\t\tif(handleIdx === 1) {\n\t\t\t\t\tthis.handle2.focus();\n\t\t\t\t}\n\t\t\t},\n\t\t\t_keydown: function(handleIdx, ev) {\n\t\t\t\tif(!this.options.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar dir;\n\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\tcase 37: // left\n\t\t\t\t\tcase 40: // down\n\t\t\t\t\t\tdir = -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39: // right\n\t\t\t\t\tcase 38: // up\n\t\t\t\t\t\tdir = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dir) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// use natural arrow keys instead of from min to max\n\t\t\t\tif (this.options.natural_arrow_keys) {\n\t\t\t\t\tvar ifVerticalAndNotReversed = (this.options.orientation === 'vertical' && !this.options.reversed);\n\t\t\t\t\tvar ifHorizontalAndReversed = (this.options.orientation === 'horizontal' && this.options.reversed);\n\n\t\t\t\t\tif (ifVerticalAndNotReversed || ifHorizontalAndReversed) {\n\t\t\t\t\t\tdir = dir * -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar oneStepValuePercentageChange = dir * this.percentage[2];\n\t\t\t\tvar percentage = this.percentage[handleIdx] + oneStepValuePercentageChange;\n\n\t\t\t\tif (percentage > 100) {\n\t\t\t\t\tpercentage = 100;\n\t\t\t\t} else if (percentage < 0) {\n\t\t\t\t\tpercentage = 0;\n\t\t\t\t}\n\n\t\t\t\tthis.dragged = handleIdx;\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis.percentage[this.dragged] = percentage;\n\t\t\t\tthis._layout();\n\n\t\t\t\tvar val = this._calculateValue();\n\t\t\t\t\n\t\t\t\tthis._trigger('slideStart', val);\n\t\t\t\tthis._setDataVal(val);\n\t\t\t\tthis.setValue(val, true);\n\n\t\t\t\tthis._trigger('slideStop', val);\n\t\t\t\tthis._setDataVal(val);\n\t\t\t\t\n\t\t\t\tthis._pauseEvent(ev);\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_pauseEvent: function(ev) {\n\t\t\t\tif(ev.stopPropagation) {\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t}\n\t\t\t    if(ev.preventDefault) {\n\t\t\t    \tev.preventDefault();\n\t\t\t    }\n\t\t\t    ev.cancelBubble=true;\n\t\t\t    ev.returnValue=false;\t\t\t\n\t\t\t},\n\t\t\t_mousemove: function(ev) {\n\t\t\t\tif(!this.options.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis.percentage[this.dragged] = this.options.reversed ? 100 - percentage : percentage;\n\t\t\t\tthis._layout();\n\n\t\t\t\tvar val = this._calculateValue();\n\t\t\t\tthis.setValue(val, true);\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_adjustPercentageForRangeSliders: function(percentage) {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tif (this.dragged === 0 && this.percentage[1] < percentage) {\n\t\t\t\t\t\tthis.percentage[0] = this.percentage[1];\n\t\t\t\t\t\tthis.dragged = 1;\n\t\t\t\t\t} else if (this.dragged === 1 && this.percentage[0] > percentage) {\n\t\t\t\t\t\tthis.percentage[1] = this.percentage[0];\n\t\t\t\t\t\tthis.dragged = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mouseup: function() {\n\t\t\t\tif(!this.options.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Unbind touch event handlers:\n\t\t\t\t\tdocument.removeEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t} else {\n\t\t\t\t\t// Unbind mouse event handlers:\n\t\t\t\t\tdocument.removeEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseup, false);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.inDrag = false;\n\t\t\t\tif (this.over === false) {\n\t\t\t\t\tthis._hideTooltip();\n\t\t\t\t}\n\t\t\t\tvar val = this._calculateValue();\n\t\t\t\t\n\t\t\t\tthis._layout();\n\t\t\t\tthis._setDataVal(val);\n\t\t\t\tthis._trigger('slideStop', val);\n\t\t\t\t\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_calculateValue: function() {\n\t\t\t\tvar val;\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tval = [this.options.min,this.options.max];\n\t\t\t        if (this.percentage[0] !== 0){\n\t\t\t            val[0] = (Math.max(this.options.min, this.options.min + Math.round((this.diff * this.percentage[0]/100)/this.options.step)*this.options.step));\n\t\t\t            val[0] = this._applyPrecision(val[0]);\n\t\t\t        }\n\t\t\t        if (this.percentage[1] !== 100){\n\t\t\t            val[1] = (Math.min(this.options.max, this.options.min + Math.round((this.diff * this.percentage[1]/100)/this.options.step)*this.options.step));\n\t\t\t            val[1] = this._applyPrecision(val[1]);\n\t\t\t        }\n\t\t\t\t\tthis.options.value = val;\n\t\t\t\t} else {\n\t\t\t\t\tval = (this.options.min + Math.round((this.diff * this.percentage[0]/100)/this.options.step)*this.options.step);\n\t\t\t\t\tif (val < this.options.min) {\n\t\t\t\t\t\tval = this.options.min;\n\t\t\t\t\t}\n\t\t\t\t\telse if (val > this.options.max) {\n\t\t\t\t\t\tval = this.options.max;\n\t\t\t\t\t}\n\t\t\t\t\tval = parseFloat(val);\n\t\t\t\t\tval = this._applyPrecision(val);\n\t\t\t\t\tthis.options.value = [val, this.options.value[1]];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\t_applyPrecision: function(val) {\n\t\t\t\tvar precision = this.options.precision || this._getNumDigitsAfterDecimalPlace(this.step);\n\t\t\t\treturn this._applyToFixedAndParseFloat(val, precision);\n\t\t\t},\n\t\t\t_getNumDigitsAfterDecimalPlace: function(num) {\n\t\t\t\tvar match = (''+num).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\t\t\t\tif (!match) { return 0; }\n\t\t\t\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\n\t\t\t},\n\t\t\t_applyToFixedAndParseFloat: function(num, toFixedInput) {\n\t\t\t\tvar truncatedNum = num.toFixed(toFixedInput);\n\t\t\t\treturn parseFloat(truncatedNum);\n\t\t\t},\n\t\t\t/*\n\t\t\t\tCredits to Mike Samuel for the following method!\n\t\t\t\tSource: http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number\n\t\t\t*/\n\t\t\t_getPercentage: function(ev) {\n\t\t\t\tif (this.touchCapable && (ev.type === 'touchstart' || ev.type === 'touchmove')) {\n\t\t\t\t\tev = ev.touches[0];\n\t\t\t\t}\n\t\t\t\tvar percentage = (ev[this.mousePos] - this.offset[this.stylePos])*100/this.size;\n\t\t\t\tpercentage = Math.round(percentage/this.percentage[2])*this.percentage[2];\n\t\t\t\treturn Math.max(0, Math.min(100, percentage));\n\t\t\t},\n\t\t\t_validateInputValue: function(val) {\n\t\t\t\tif(typeof val === 'number') {\n\t\t\t\t\treturn val;\n\t\t\t\t} else if(val instanceof Array) {\n\t\t\t\t\tthis._validateArray(val);\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error( ErrorMsgs.formatInvalidInputErrorMsg(val) );\n\t\t\t\t}\n\t\t\t},\n\t\t\t_validateArray: function(val) {\n\t\t\t\tfor(var i = 0; i < val.length; i++) {\n\t\t\t\t\tvar input =  val[i];\n\t\t\t\t\tif (typeof input !== 'number') { throw new Error( ErrorMsgs.formatInvalidInputErrorMsg(input) ); }\n\t\t\t\t}\n\t\t\t},\n\t\t\t_setDataVal: function(val) {\n\t\t\t\tvar value = \"value: '\" + val + \"'\";\n\t\t\t\tthis.element.setAttribute('data', value);\n\t\t\t\tthis.element.setAttribute('value', val);\n\t\t\t},\n\t\t\t_trigger: function(evt, val) {\n\t\t\t\tval = val || undefined;\n\n\t\t\t\tvar callbackFnArray = this.eventToCallbackMap[evt];\n\t\t\t\tif(callbackFnArray && callbackFnArray.length) {\n\t\t\t\t\tfor(var i = 0; i < callbackFnArray.length; i++) {\n\t\t\t\t\t\tvar callbackFn = callbackFnArray[i];\n\t\t\t\t\t\tcallbackFn(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* If JQuery exists, trigger JQuery events */\n\t\t\t\tif($) {\n\t\t\t\t\tthis._triggerJQueryEvent(evt, val);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_triggerJQueryEvent: function(evt, val) {\n\t\t\t\tvar eventData = {\n\t\t\t\t\ttype: evt,\n\t\t\t\t\tvalue: val\n\t\t\t\t};\n\t\t\t\tthis.$element.trigger(eventData);\n\t\t\t\tthis.$sliderElem.trigger(eventData);\n\t\t\t},\n\t\t\t_unbindJQueryEventHandlers: function() {\n\t\t\t\tthis.$element.off();\n\t\t\t\tthis.$sliderElem.off();\n\t\t\t},\n\t\t\t_setText: function(element, text) {\n\t\t\t\tif(typeof element.innerText !== \"undefined\") {\n\t\t\t \t\telement.innerText = text;\n\t\t\t \t} else if(typeof element.textContent !== \"undefined\") {\n\t\t\t \t\telement.textContent = text;\n\t\t\t \t}\n\t\t\t},\n\t\t\t_removeClass: function(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor(var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tnewClasses = newClasses.replace(regex, \" \");\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_addClass: function(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor(var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tvar ifClassExists = regex.test(newClasses);\n\t\t\t\t\t\n\t\t\t\t\tif(!ifClassExists) {\n\t\t\t\t\t\tnewClasses += \" \" + classTag;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_offset: function (obj) {\n\t\t\t\tvar ol = 0;\n\t\t\t\tvar ot = 0;\n\t\t\t\tif (obj.offsetParent) {\n\t\t\t\t\tdo {\n\t\t\t\t\t  ol += obj.offsetLeft;\n\t\t\t\t\t  ot += obj.offsetTop;\n\t\t\t\t\t} while (obj = obj.offsetParent);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tleft: ol,\n\t\t\t\t\ttop: ot\n\t\t\t\t};\n\t\t\t},\n\t\t\t_css: function(elementRef, styleName, value) {\n\t\t\t\telementRef.style[styleName] = value;\n\t\t\t}\n\t\t};\n\n\t\t/*********************************\n\n\t\t\tAttach to global namespace\n\n\t\t*********************************/\n\t\tif($) {\n\t\t\tvar namespace = $.fn.slider ? 'bootstrapSlider' : 'slider';\n\t\t\t$.bridget(namespace, Slider);\n\t\t} else {\n\t\t\twindow.Slider = Slider;\n\t\t}\n\n\n\t})( $ );\n\n})( window.jQuery );"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/bootstrap-slider/slider.css",
    "content": "/*!\n * Slider for Bootstrap\n *\n * Copyright 2012 Stefan Petre\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n.slider {\n    display: block;\n    vertical-align: middle;\n    position: relative;\n\n}\n.slider.slider-horizontal {\n    width: 100%;\n    height: 20px;\n    margin-bottom: 20px;\n}\n.slider.slider-horizontal:last-of-type {\n    margin-bottom: 0;\n}\n.slider.slider-horizontal .slider-track {\n    height: 10px;\n    width: 100%;\n    margin-top: -5px;\n    top: 50%;\n    left: 0;\n}\n.slider.slider-horizontal .slider-selection {\n    height: 100%;\n    top: 0;\n    bottom: 0;\n}\n.slider.slider-horizontal .slider-handle {\n    margin-left: -10px;\n    margin-top: -5px;\n}\n.slider.slider-horizontal .slider-handle.triangle {\n    border-width: 0 10px 10px 10px;\n    width: 0;\n    height: 0;\n    border-bottom-color: #0480be;\n    margin-top: 0;\n}\n.slider.slider-vertical {\n    height: 230px;\n    width: 20px;\n    margin-right: 20px;\n    display: inline-block;\n}\n.slider.slider-vertical:last-of-type {\n    margin-right: 0;\n}\n.slider.slider-vertical .slider-track {\n    width: 10px;\n    height: 100%;\n    margin-left: -5px;\n    left: 50%;\n    top: 0;\n}\n.slider.slider-vertical .slider-selection {\n    width: 100%;\n    left: 0;\n    top: 0;\n    bottom: 0;\n}\n.slider.slider-vertical .slider-handle {\n    margin-left: -5px;\n    margin-top: -10px;\n}\n.slider.slider-vertical .slider-handle.triangle {\n    border-width: 10px 0 10px 10px;\n    width: 1px;\n    height: 1px;\n    border-left-color: #0480be;\n    margin-left: 0;\n}\n.slider input {\n    display: none;\n}\n.slider .tooltip-inner {\n    white-space: nowrap;\n}\n.slider-track {\n    position: absolute;\n    cursor: pointer;\n    background-color: #f7f7f7;\n    background-image: -moz-linear-gradient(top, #f0f0f0, #f9f9f9);\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f0f0f0), to(#f9f9f9));\n    background-image: -webkit-linear-gradient(top, #f0f0f0, #f9f9f9);\n    background-image: -o-linear-gradient(top, #f0f0f0, #f9f9f9);\n    background-image: linear-gradient(to bottom, #f0f0f0, #f9f9f9);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0f0f0', endColorstr='#fff9f9f9', GradientType=0);\n    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n    -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    border-radius: 4px;\n}\n.slider-selection {\n    position: absolute;\n    background-color: #f7f7f7;\n    background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5);\n    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5));\n    background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5);\n    background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5);\n    background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5);\n    background-repeat: repeat-x;\n    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);\n    -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n    -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n    -webkit-box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    box-sizing: border-box;\n    -webkit-border-radius: 4px;\n    -moz-border-radius: 4px;\n    border-radius: 4px;\n}\n.slider-handle {\n    position: absolute;\n    width: 20px;\n    height: 20px;\n    background-color: #444;\n    -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);\n    -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);\n    box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);\n    opacity: 1;\n    border: 0px solid transparent;\n}\n.slider-handle.round {\n    -webkit-border-radius: 20px;\n    -moz-border-radius: 20px;\n    border-radius: 20px;\n}\n.slider-handle.triangle {\n    background: transparent none;\n}\n\n.slider-disabled .slider-selection {\n    opacity: 0.5;\n}\n\n#red .slider-selection {\n    background: #f56954;\n}\n\n#blue .slider-selection {\n    background: #3c8dbc;\n}\n\n#green .slider-selection {\n    background: #00a65a;\n}\n\n#yellow .slider-selection {\n    background: #f39c12;\n}\n\n#aqua .slider-selection {\n    background: #00c0ef;\n}\n\n#purple .slider-selection {\n    background: #932ab6;\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/all.css",
    "content": "/* iCheck plugin skins\n----------------------------------- */\n@import url(\"minimal/_all.css\");\n/*\n@import url(\"minimal/minimal.css\");\n@import url(\"minimal/red.css\");\n@import url(\"minimal/green.css\");\n@import url(\"minimal/blue.css\");\n@import url(\"minimal/aero.css\");\n@import url(\"minimal/grey.css\");\n@import url(\"minimal/orange.css\");\n@import url(\"minimal/yellow.css\");\n@import url(\"minimal/pink.css\");\n@import url(\"minimal/purple.css\");\n*/\n\n@import url(\"square/_all.css\");\n/*\n@import url(\"square/square.css\");\n@import url(\"square/red.css\");\n@import url(\"square/green.css\");\n@import url(\"square/blue.css\");\n@import url(\"square/aero.css\");\n@import url(\"square/grey.css\");\n@import url(\"square/orange.css\");\n@import url(\"square/yellow.css\");\n@import url(\"square/pink.css\");\n@import url(\"square/purple.css\");\n*/\n\n@import url(\"flat/_all.css\");\n/*\n@import url(\"flat/flat.css\");\n@import url(\"flat/red.css\");\n@import url(\"flat/green.css\");\n@import url(\"flat/blue.css\");\n@import url(\"flat/aero.css\");\n@import url(\"flat/grey.css\");\n@import url(\"flat/orange.css\");\n@import url(\"flat/yellow.css\");\n@import url(\"flat/pink.css\");\n@import url(\"flat/purple.css\");\n*/\n\n@import url(\"line/_all.css\");\n/*\n@import url(\"line/line.css\");\n@import url(\"line/red.css\");\n@import url(\"line/green.css\");\n@import url(\"line/blue.css\");\n@import url(\"line/aero.css\");\n@import url(\"line/grey.css\");\n@import url(\"line/orange.css\");\n@import url(\"line/yellow.css\");\n@import url(\"line/pink.css\");\n@import url(\"line/purple.css\");\n*/\n\n@import url(\"polaris/polaris.css\");\n\n@import url(\"futurico/futurico.css\");"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/_all.css",
    "content": "/* iCheck plugin Flat skin\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* red */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* green */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* blue */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* aero */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* grey */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* orange */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* yellow */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* pink */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}\n\n/* purple */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/aero.css",
    "content": "/* iCheck plugin Flat skin, aero\n----------------------------------- */\n.icheckbox_flat-aero,\n.iradio_flat-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-aero {\n    background-position: 0 0;\n}\n    .icheckbox_flat-aero.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-aero.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-aero.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-aero {\n    background-position: -88px 0;\n}\n    .iradio_flat-aero.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-aero.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-aero.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-aero,\n    .iradio_flat-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/blue.css",
    "content": "/* iCheck plugin Flat skin, blue\n----------------------------------- */\n.icheckbox_flat-blue,\n.iradio_flat-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-blue {\n    background-position: 0 0;\n}\n    .icheckbox_flat-blue.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-blue.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-blue.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-blue {\n    background-position: -88px 0;\n}\n    .iradio_flat-blue.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-blue.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-blue.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-blue,\n    .iradio_flat-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/flat.css",
    "content": "/* iCheck plugin flat skin, black\n----------------------------------- */\n.icheckbox_flat,\n.iradio_flat {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(flat.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat {\n    background-position: 0 0;\n}\n    .icheckbox_flat.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat {\n    background-position: -88px 0;\n}\n    .iradio_flat.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat,\n    .iradio_flat {\n        background-image: url(flat@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/green.css",
    "content": "/* iCheck plugin Flat skin, green\n----------------------------------- */\n.icheckbox_flat-green,\n.iradio_flat-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-green {\n    background-position: 0 0;\n}\n    .icheckbox_flat-green.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-green.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-green.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-green {\n    background-position: -88px 0;\n}\n    .iradio_flat-green.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-green.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-green.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-green,\n    .iradio_flat-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/grey.css",
    "content": "/* iCheck plugin Flat skin, grey\n----------------------------------- */\n.icheckbox_flat-grey,\n.iradio_flat-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-grey {\n    background-position: 0 0;\n}\n    .icheckbox_flat-grey.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-grey.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-grey.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-grey {\n    background-position: -88px 0;\n}\n    .iradio_flat-grey.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-grey.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-grey.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-grey,\n    .iradio_flat-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/orange.css",
    "content": "/* iCheck plugin Flat skin, orange\n----------------------------------- */\n.icheckbox_flat-orange,\n.iradio_flat-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-orange {\n    background-position: 0 0;\n}\n    .icheckbox_flat-orange.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-orange.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-orange.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-orange {\n    background-position: -88px 0;\n}\n    .iradio_flat-orange.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-orange.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-orange.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-orange,\n    .iradio_flat-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/pink.css",
    "content": "/* iCheck plugin Flat skin, pink\n----------------------------------- */\n.icheckbox_flat-pink,\n.iradio_flat-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-pink {\n    background-position: 0 0;\n}\n    .icheckbox_flat-pink.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-pink.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-pink.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-pink {\n    background-position: -88px 0;\n}\n    .iradio_flat-pink.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-pink.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-pink.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-pink,\n    .iradio_flat-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/purple.css",
    "content": "/* iCheck plugin Flat skin, purple\n----------------------------------- */\n.icheckbox_flat-purple,\n.iradio_flat-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-purple {\n    background-position: 0 0;\n}\n    .icheckbox_flat-purple.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-purple.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-purple.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-purple {\n    background-position: -88px 0;\n}\n    .iradio_flat-purple.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-purple.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-purple.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-purple,\n    .iradio_flat-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/red.css",
    "content": "/* iCheck plugin Flat skin, red\n----------------------------------- */\n.icheckbox_flat-red,\n.iradio_flat-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-red {\n    background-position: 0 0;\n}\n    .icheckbox_flat-red.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-red.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-red.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-red {\n    background-position: -88px 0;\n}\n    .iradio_flat-red.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-red.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-red.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-red,\n    .iradio_flat-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/flat/yellow.css",
    "content": "/* iCheck plugin Flat skin, yellow\n----------------------------------- */\n.icheckbox_flat-yellow,\n.iradio_flat-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 20px;\n    height: 20px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_flat-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_flat-yellow.checked {\n        background-position: -22px 0;\n    }\n    .icheckbox_flat-yellow.disabled {\n        background-position: -44px 0;\n        cursor: default;\n    }\n    .icheckbox_flat-yellow.checked.disabled {\n        background-position: -66px 0;\n    }\n\n.iradio_flat-yellow {\n    background-position: -88px 0;\n}\n    .iradio_flat-yellow.checked {\n        background-position: -110px 0;\n    }\n    .iradio_flat-yellow.disabled {\n        background-position: -132px 0;\n        cursor: default;\n    }\n    .iradio_flat-yellow.checked.disabled {\n        background-position: -154px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_flat-yellow,\n    .iradio_flat-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 176px 22px;\n        background-size: 176px 22px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/futurico/futurico.css",
    "content": "/* iCheck plugin Futurico skin\n----------------------------------- */\n.icheckbox_futurico,\n.iradio_futurico {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 16px;\n    height: 17px;\n    background: url(futurico.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_futurico {\n    background-position: 0 0;\n}\n    .icheckbox_futurico.checked {\n        background-position: -18px 0;\n    }\n    .icheckbox_futurico.disabled {\n        background-position: -36px 0;\n        cursor: default;\n    }\n    .icheckbox_futurico.checked.disabled {\n        background-position: -54px 0;\n    }\n\n.iradio_futurico {\n    background-position: -72px 0;\n}\n    .iradio_futurico.checked {\n        background-position: -90px 0;\n    }\n    .iradio_futurico.disabled {\n        background-position: -108px 0;\n        cursor: default;\n    }\n    .iradio_futurico.checked.disabled {\n        background-position: -126px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_futurico,\n    .iradio_futurico {\n        background-image: url(futurico@2x.png);\n        -webkit-background-size: 144px 19px;\n        background-size: 144px 19px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/_all.css",
    "content": "/* iCheck plugin Line skin\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* red */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* green */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* blue */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* aero */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* grey */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* orange */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* yellow */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* pink */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}\n\n/* purple */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/aero.css",
    "content": "/* iCheck plugin Line skin, aero\n----------------------------------- */\n.icheckbox_line-aero,\n.iradio_line-aero {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #9cc2cb;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-aero.hover,\n    .icheckbox_line-aero.checked.hover,\n    .iradio_line-aero.hover {\n        background: #B5D1D8;\n    }\n    .icheckbox_line-aero.checked,\n    .iradio_line-aero.checked {\n        background: #9cc2cb;\n    }\n        .icheckbox_line-aero.checked .icheck_line-icon,\n        .iradio_line-aero.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-aero.disabled,\n    .iradio_line-aero.disabled {\n        background: #D2E4E8;\n        cursor: default;\n    }\n        .icheckbox_line-aero.disabled .icheck_line-icon,\n        .iradio_line-aero.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-aero.checked.disabled,\n    .iradio_line-aero.checked.disabled {\n        background: #D2E4E8;\n    }\n        .icheckbox_line-aero.checked.disabled .icheck_line-icon,\n        .iradio_line-aero.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-aero .icheck_line-icon,\n    .iradio_line-aero .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/blue.css",
    "content": "/* iCheck plugin Line skin, blue\n----------------------------------- */\n.icheckbox_line-blue,\n.iradio_line-blue {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #2489c5;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-blue.hover,\n    .icheckbox_line-blue.checked.hover,\n    .iradio_line-blue.hover {\n        background: #3DA0DB;\n    }\n    .icheckbox_line-blue.checked,\n    .iradio_line-blue.checked {\n        background: #2489c5;\n    }\n        .icheckbox_line-blue.checked .icheck_line-icon,\n        .iradio_line-blue.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-blue.disabled,\n    .iradio_line-blue.disabled {\n        background: #ADD7F0;\n        cursor: default;\n    }\n        .icheckbox_line-blue.disabled .icheck_line-icon,\n        .iradio_line-blue.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-blue.checked.disabled,\n    .iradio_line-blue.checked.disabled {\n        background: #ADD7F0;\n    }\n        .icheckbox_line-blue.checked.disabled .icheck_line-icon,\n        .iradio_line-blue.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-blue .icheck_line-icon,\n    .iradio_line-blue .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/green.css",
    "content": "/* iCheck plugin Line skin, green\n----------------------------------- */\n.icheckbox_line-green,\n.iradio_line-green {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #1b7e5a;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-green.hover,\n    .icheckbox_line-green.checked.hover,\n    .iradio_line-green.hover {\n        background: #24AA7A;\n    }\n    .icheckbox_line-green.checked,\n    .iradio_line-green.checked {\n        background: #1b7e5a;\n    }\n        .icheckbox_line-green.checked .icheck_line-icon,\n        .iradio_line-green.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-green.disabled,\n    .iradio_line-green.disabled {\n        background: #89E6C4;\n        cursor: default;\n    }\n        .icheckbox_line-green.disabled .icheck_line-icon,\n        .iradio_line-green.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-green.checked.disabled,\n    .iradio_line-green.checked.disabled {\n        background: #89E6C4;\n    }\n        .icheckbox_line-green.checked.disabled .icheck_line-icon,\n        .iradio_line-green.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-green .icheck_line-icon,\n    .iradio_line-green .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/grey.css",
    "content": "/* iCheck plugin Line skin, grey\n----------------------------------- */\n.icheckbox_line-grey,\n.iradio_line-grey {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #73716e;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-grey.hover,\n    .icheckbox_line-grey.checked.hover,\n    .iradio_line-grey.hover {\n        background: #8B8986;\n    }\n    .icheckbox_line-grey.checked,\n    .iradio_line-grey.checked {\n        background: #73716e;\n    }\n        .icheckbox_line-grey.checked .icheck_line-icon,\n        .iradio_line-grey.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-grey.disabled,\n    .iradio_line-grey.disabled {\n        background: #D5D4D3;\n        cursor: default;\n    }\n        .icheckbox_line-grey.disabled .icheck_line-icon,\n        .iradio_line-grey.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-grey.checked.disabled,\n    .iradio_line-grey.checked.disabled {\n        background: #D5D4D3;\n    }\n        .icheckbox_line-grey.checked.disabled .icheck_line-icon,\n        .iradio_line-grey.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-grey .icheck_line-icon,\n    .iradio_line-grey .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/line.css",
    "content": "/* iCheck plugin Line skin, black\n----------------------------------- */\n.icheckbox_line,\n.iradio_line {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #000;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line.hover,\n    .icheckbox_line.checked.hover,\n    .iradio_line.hover {\n        background: #444;\n    }\n    .icheckbox_line.checked,\n    .iradio_line.checked {\n        background: #000;\n    }\n        .icheckbox_line.checked .icheck_line-icon,\n        .iradio_line.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line.disabled,\n    .iradio_line.disabled {\n        background: #ccc;\n        cursor: default;\n    }\n        .icheckbox_line.disabled .icheck_line-icon,\n        .iradio_line.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line.checked.disabled,\n    .iradio_line.checked.disabled {\n        background: #ccc;\n    }\n        .icheckbox_line.checked.disabled .icheck_line-icon,\n        .iradio_line.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line .icheck_line-icon,\n    .iradio_line .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/orange.css",
    "content": "/* iCheck plugin Line skin, orange\n----------------------------------- */\n.icheckbox_line-orange,\n.iradio_line-orange {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #f70;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-orange.hover,\n    .icheckbox_line-orange.checked.hover,\n    .iradio_line-orange.hover {\n        background: #FF9233;\n    }\n    .icheckbox_line-orange.checked,\n    .iradio_line-orange.checked {\n        background: #f70;\n    }\n        .icheckbox_line-orange.checked .icheck_line-icon,\n        .iradio_line-orange.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-orange.disabled,\n    .iradio_line-orange.disabled {\n        background: #FFD6B3;\n        cursor: default;\n    }\n        .icheckbox_line-orange.disabled .icheck_line-icon,\n        .iradio_line-orange.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-orange.checked.disabled,\n    .iradio_line-orange.checked.disabled {\n        background: #FFD6B3;\n    }\n        .icheckbox_line-orange.checked.disabled .icheck_line-icon,\n        .iradio_line-orange.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-orange .icheck_line-icon,\n    .iradio_line-orange .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/pink.css",
    "content": "/* iCheck plugin Line skin, pink\n----------------------------------- */\n.icheckbox_line-pink,\n.iradio_line-pink {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #a77a94;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-pink.hover,\n    .icheckbox_line-pink.checked.hover,\n    .iradio_line-pink.hover {\n        background: #B995A9;\n    }\n    .icheckbox_line-pink.checked,\n    .iradio_line-pink.checked {\n        background: #a77a94;\n    }\n        .icheckbox_line-pink.checked .icheck_line-icon,\n        .iradio_line-pink.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-pink.disabled,\n    .iradio_line-pink.disabled {\n        background: #E0D0DA;\n        cursor: default;\n    }\n        .icheckbox_line-pink.disabled .icheck_line-icon,\n        .iradio_line-pink.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-pink.checked.disabled,\n    .iradio_line-pink.checked.disabled {\n        background: #E0D0DA;\n    }\n        .icheckbox_line-pink.checked.disabled .icheck_line-icon,\n        .iradio_line-pink.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-pink .icheck_line-icon,\n    .iradio_line-pink .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/purple.css",
    "content": "/* iCheck plugin Line skin, purple\n----------------------------------- */\n.icheckbox_line-purple,\n.iradio_line-purple {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #6a5a8c;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-purple.hover,\n    .icheckbox_line-purple.checked.hover,\n    .iradio_line-purple.hover {\n        background: #8677A7;\n    }\n    .icheckbox_line-purple.checked,\n    .iradio_line-purple.checked {\n        background: #6a5a8c;\n    }\n        .icheckbox_line-purple.checked .icheck_line-icon,\n        .iradio_line-purple.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-purple.disabled,\n    .iradio_line-purple.disabled {\n        background: #D2CCDE;\n        cursor: default;\n    }\n        .icheckbox_line-purple.disabled .icheck_line-icon,\n        .iradio_line-purple.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-purple.checked.disabled,\n    .iradio_line-purple.checked.disabled {\n        background: #D2CCDE;\n    }\n        .icheckbox_line-purple.checked.disabled .icheck_line-icon,\n        .iradio_line-purple.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-purple .icheck_line-icon,\n    .iradio_line-purple .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/red.css",
    "content": "/* iCheck plugin Line skin, red\n----------------------------------- */\n.icheckbox_line-red,\n.iradio_line-red {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #e56c69;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-red.hover,\n    .icheckbox_line-red.checked.hover,\n    .iradio_line-red.hover {\n        background: #E98582;\n    }\n    .icheckbox_line-red.checked,\n    .iradio_line-red.checked {\n        background: #e56c69;\n    }\n        .icheckbox_line-red.checked .icheck_line-icon,\n        .iradio_line-red.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-red.disabled,\n    .iradio_line-red.disabled {\n        background: #F7D3D2;\n        cursor: default;\n    }\n        .icheckbox_line-red.disabled .icheck_line-icon,\n        .iradio_line-red.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-red.checked.disabled,\n    .iradio_line-red.checked.disabled {\n        background: #F7D3D2;\n    }\n        .icheckbox_line-red.checked.disabled .icheck_line-icon,\n        .iradio_line-red.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-red .icheck_line-icon,\n    .iradio_line-red .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/line/yellow.css",
    "content": "/* iCheck plugin Line skin, yellow\n----------------------------------- */\n.icheckbox_line-yellow,\n.iradio_line-yellow {\n    position: relative;\n    display: block;\n    margin: 0;\n    padding: 5px 15px 5px 38px;\n    font-size: 13px;\n    line-height: 17px;\n    color: #fff;\n    background: #FFC414;\n    border: none;\n    -webkit-border-radius: 3px;\n    -moz-border-radius: 3px;\n    border-radius: 3px;\n    cursor: pointer;\n}\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        position: absolute;\n        top: 50%;\n        left: 13px;\n        width: 13px;\n        height: 11px;\n        margin: -5px 0 0 0;\n        padding: 0;\n        overflow: hidden;\n        background: url(line.png) no-repeat;\n        border: none;\n    }\n    .icheckbox_line-yellow.hover,\n    .icheckbox_line-yellow.checked.hover,\n    .iradio_line-yellow.hover {\n        background: #FFD34F;\n    }\n    .icheckbox_line-yellow.checked,\n    .iradio_line-yellow.checked {\n        background: #FFC414;\n    }\n        .icheckbox_line-yellow.checked .icheck_line-icon,\n        .iradio_line-yellow.checked .icheck_line-icon {\n            background-position: -15px 0;\n        }\n    .icheckbox_line-yellow.disabled,\n    .iradio_line-yellow.disabled {\n        background: #FFE495;\n        cursor: default;\n    }\n        .icheckbox_line-yellow.disabled .icheck_line-icon,\n        .iradio_line-yellow.disabled .icheck_line-icon {\n            background-position: -30px 0;\n        }\n    .icheckbox_line-yellow.checked.disabled,\n    .iradio_line-yellow.checked.disabled {\n        background: #FFE495;\n    }\n        .icheckbox_line-yellow.checked.disabled .icheck_line-icon,\n        .iradio_line-yellow.checked.disabled .icheck_line-icon {\n            background-position: -45px 0;\n        }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_line-yellow .icheck_line-icon,\n    .iradio_line-yellow .icheck_line-icon {\n        background-image: url(line@2x.png);\n        -webkit-background-size: 60px 13px;\n        background-size: 60px 13px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/_all.css",
    "content": "/* red */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* green */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* blue */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* aero */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* grey */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* orange */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* yellow */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* pink */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}\n\n/* purple */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/aero.css",
    "content": "/* iCheck plugin Minimal skin, aero\n----------------------------------- */\n.icheckbox_minimal-aero,\n.iradio_minimal-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-aero {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-aero.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-aero.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-aero.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-aero.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-aero {\n    background-position: -100px 0;\n}\n    .iradio_minimal-aero.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-aero.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-aero.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-aero.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-aero,\n    .iradio_minimal-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/blue.css",
    "content": "/* iCheck plugin Minimal skin, blue\n----------------------------------- */\n.icheckbox_minimal-blue,\n.iradio_minimal-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-blue {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-blue.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-blue.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-blue.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-blue.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-blue {\n    background-position: -100px 0;\n}\n    .iradio_minimal-blue.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-blue.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-blue.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-blue.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-blue,\n    .iradio_minimal-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/green.css",
    "content": "/* iCheck plugin Minimal skin, green\n----------------------------------- */\n.icheckbox_minimal-green,\n.iradio_minimal-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-green {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-green.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-green.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-green.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-green.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-green {\n    background-position: -100px 0;\n}\n    .iradio_minimal-green.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-green.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-green.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-green.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-green,\n    .iradio_minimal-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/grey.css",
    "content": "/* iCheck plugin Minimal skin, grey\n----------------------------------- */\n.icheckbox_minimal-grey,\n.iradio_minimal-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-grey {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-grey.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-grey.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-grey.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-grey.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-grey {\n    background-position: -100px 0;\n}\n    .iradio_minimal-grey.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-grey.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-grey.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-grey.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-grey,\n    .iradio_minimal-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/minimal.css",
    "content": "/* iCheck plugin Minimal skin, black\n----------------------------------- */\n.icheckbox_minimal,\n.iradio_minimal {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(minimal.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal {\n    background-position: 0 0;\n}\n    .icheckbox_minimal.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal {\n    background-position: -100px 0;\n}\n    .iradio_minimal.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal,\n    .iradio_minimal {\n        background-image: url(minimal@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/orange.css",
    "content": "/* iCheck plugin Minimal skin, orange\n----------------------------------- */\n.icheckbox_minimal-orange,\n.iradio_minimal-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-orange {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-orange.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-orange.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-orange.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-orange.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-orange {\n    background-position: -100px 0;\n}\n    .iradio_minimal-orange.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-orange.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-orange.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-orange.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-orange,\n    .iradio_minimal-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/pink.css",
    "content": "/* iCheck plugin Minimal skin, pink\n----------------------------------- */\n.icheckbox_minimal-pink,\n.iradio_minimal-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-pink {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-pink.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-pink.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-pink.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-pink.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-pink {\n    background-position: -100px 0;\n}\n    .iradio_minimal-pink.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-pink.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-pink.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-pink.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-pink,\n    .iradio_minimal-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/purple.css",
    "content": "/* iCheck plugin Minimal skin, purple\n----------------------------------- */\n.icheckbox_minimal-purple,\n.iradio_minimal-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-purple {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-purple.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-purple.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-purple.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-purple.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-purple {\n    background-position: -100px 0;\n}\n    .iradio_minimal-purple.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-purple.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-purple.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-purple.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-purple,\n    .iradio_minimal-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/red.css",
    "content": "/* iCheck plugin Minimal skin, red\n----------------------------------- */\n.icheckbox_minimal-red,\n.iradio_minimal-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-red {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-red.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-red.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-red.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-red.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-red {\n    background-position: -100px 0;\n}\n    .iradio_minimal-red.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-red.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-red.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-red.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-red,\n    .iradio_minimal-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/minimal/yellow.css",
    "content": "/* iCheck plugin Minimal skin, yellow\n----------------------------------- */\n.icheckbox_minimal-yellow,\n.iradio_minimal-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 18px;\n    height: 18px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_minimal-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_minimal-yellow.hover {\n        background-position: -20px 0;\n    }\n    .icheckbox_minimal-yellow.checked {\n        background-position: -40px 0;\n    }\n    .icheckbox_minimal-yellow.disabled {\n        background-position: -60px 0;\n        cursor: default;\n    }\n    .icheckbox_minimal-yellow.checked.disabled {\n        background-position: -80px 0;\n    }\n\n.iradio_minimal-yellow {\n    background-position: -100px 0;\n}\n    .iradio_minimal-yellow.hover {\n        background-position: -120px 0;\n    }\n    .iradio_minimal-yellow.checked {\n        background-position: -140px 0;\n    }\n    .iradio_minimal-yellow.disabled {\n        background-position: -160px 0;\n        cursor: default;\n    }\n    .iradio_minimal-yellow.checked.disabled {\n        background-position: -180px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 1.5),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_minimal-yellow,\n    .iradio_minimal-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 200px 20px;\n        background-size: 200px 20px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/polaris/polaris.css",
    "content": "/* iCheck plugin Polaris skin\n----------------------------------- */\n.icheckbox_polaris,\n.iradio_polaris {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 29px;\n    height: 29px;\n    background: url(polaris.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_polaris {\n    background-position: 0 0;\n}\n    .icheckbox_polaris.hover {\n        background-position: -31px 0;\n    }\n    .icheckbox_polaris.checked {\n        background-position: -62px 0;\n    }\n    .icheckbox_polaris.disabled {\n        background-position: -93px 0;\n        cursor: default;\n    }\n    .icheckbox_polaris.checked.disabled {\n        background-position: -124px 0;\n    }\n\n.iradio_polaris {\n    background-position: -155px 0;\n}\n    .iradio_polaris.hover {\n        background-position: -186px 0;\n    }\n    .iradio_polaris.checked {\n        background-position: -217px 0;\n    }\n    .iradio_polaris.disabled {\n        background-position: -248px 0;\n        cursor: default;\n    }\n    .iradio_polaris.checked.disabled {\n        background-position: -279px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_polaris,\n    .iradio_polaris {\n        background-image: url(polaris@2x.png);\n        -webkit-background-size: 310px 31px;\n        background-size: 310px 31px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/_all.css",
    "content": "/* iCheck plugin Square skin\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* red */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* green */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* blue */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* aero */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* grey */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* orange */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* yellow */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* pink */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}\n\n/* purple */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/aero.css",
    "content": "/* iCheck plugin Square skin, aero\n----------------------------------- */\n.icheckbox_square-aero,\n.iradio_square-aero {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(aero.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-aero {\n    background-position: 0 0;\n}\n    .icheckbox_square-aero.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-aero.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-aero.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-aero.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-aero {\n    background-position: -120px 0;\n}\n    .iradio_square-aero.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-aero.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-aero.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-aero.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-aero,\n    .iradio_square-aero {\n        background-image: url(aero@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/blue.css",
    "content": "/* iCheck plugin Square skin, blue\n----------------------------------- */\n.icheckbox_square-blue,\n.iradio_square-blue {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(blue.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-blue {\n    background-position: 0 0;\n}\n    .icheckbox_square-blue.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-blue.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-blue.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-blue.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-blue {\n    background-position: -120px 0;\n}\n    .iradio_square-blue.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-blue.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-blue.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-blue.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-blue,\n    .iradio_square-blue {\n        background-image: url(blue@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/green.css",
    "content": "/* iCheck plugin Square skin, green\n----------------------------------- */\n.icheckbox_square-green,\n.iradio_square-green {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(green.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-green {\n    background-position: 0 0;\n}\n    .icheckbox_square-green.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-green.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-green.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-green.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-green {\n    background-position: -120px 0;\n}\n    .iradio_square-green.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-green.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-green.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-green.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-green,\n    .iradio_square-green {\n        background-image: url(green@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/grey.css",
    "content": "/* iCheck plugin Square skin, grey\n----------------------------------- */\n.icheckbox_square-grey,\n.iradio_square-grey {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(grey.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-grey {\n    background-position: 0 0;\n}\n    .icheckbox_square-grey.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-grey.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-grey.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-grey.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-grey {\n    background-position: -120px 0;\n}\n    .iradio_square-grey.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-grey.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-grey.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-grey.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-grey,\n    .iradio_square-grey {\n        background-image: url(grey@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/orange.css",
    "content": "/* iCheck plugin Square skin, orange\n----------------------------------- */\n.icheckbox_square-orange,\n.iradio_square-orange {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(orange.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-orange {\n    background-position: 0 0;\n}\n    .icheckbox_square-orange.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-orange.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-orange.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-orange.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-orange {\n    background-position: -120px 0;\n}\n    .iradio_square-orange.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-orange.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-orange.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-orange.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-orange,\n    .iradio_square-orange {\n        background-image: url(orange@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/pink.css",
    "content": "/* iCheck plugin Square skin, pink\n----------------------------------- */\n.icheckbox_square-pink,\n.iradio_square-pink {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(pink.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-pink {\n    background-position: 0 0;\n}\n    .icheckbox_square-pink.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-pink.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-pink.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-pink.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-pink {\n    background-position: -120px 0;\n}\n    .iradio_square-pink.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-pink.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-pink.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-pink.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-pink,\n    .iradio_square-pink {\n        background-image: url(pink@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/purple.css",
    "content": "/* iCheck plugin Square skin, purple\n----------------------------------- */\n.icheckbox_square-purple,\n.iradio_square-purple {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(purple.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-purple {\n    background-position: 0 0;\n}\n    .icheckbox_square-purple.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-purple.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-purple.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-purple.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-purple {\n    background-position: -120px 0;\n}\n    .iradio_square-purple.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-purple.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-purple.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-purple.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-purple,\n    .iradio_square-purple {\n        background-image: url(purple@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/red.css",
    "content": "/* iCheck plugin Square skin, red\n----------------------------------- */\n.icheckbox_square-red,\n.iradio_square-red {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(red.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-red {\n    background-position: 0 0;\n}\n    .icheckbox_square-red.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-red.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-red.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-red.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-red {\n    background-position: -120px 0;\n}\n    .iradio_square-red.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-red.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-red.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-red.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-red,\n    .iradio_square-red {\n        background-image: url(red@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/square.css",
    "content": "/* iCheck plugin Square skin, black\n----------------------------------- */\n.icheckbox_square,\n.iradio_square {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(square.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square {\n    background-position: 0 0;\n}\n    .icheckbox_square.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square {\n    background-position: -120px 0;\n}\n    .iradio_square.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square,\n    .iradio_square {\n        background-image: url(square@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/iCheck/square/yellow.css",
    "content": "/* iCheck plugin Square skin, yellow\n----------------------------------- */\n.icheckbox_square-yellow,\n.iradio_square-yellow {\n    display: inline-block;\n    *display: inline;\n    vertical-align: middle;\n    margin: 0;\n    padding: 0;\n    width: 22px;\n    height: 22px;\n    background: url(yellow.png) no-repeat;\n    border: none;\n    cursor: pointer;\n}\n\n.icheckbox_square-yellow {\n    background-position: 0 0;\n}\n    .icheckbox_square-yellow.hover {\n        background-position: -24px 0;\n    }\n    .icheckbox_square-yellow.checked {\n        background-position: -48px 0;\n    }\n    .icheckbox_square-yellow.disabled {\n        background-position: -72px 0;\n        cursor: default;\n    }\n    .icheckbox_square-yellow.checked.disabled {\n        background-position: -96px 0;\n    }\n\n.iradio_square-yellow {\n    background-position: -120px 0;\n}\n    .iradio_square-yellow.hover {\n        background-position: -144px 0;\n    }\n    .iradio_square-yellow.checked {\n        background-position: -168px 0;\n    }\n    .iradio_square-yellow.disabled {\n        background-position: -192px 0;\n        cursor: default;\n    }\n    .iradio_square-yellow.checked.disabled {\n        background-position: -216px 0;\n    }\n\n/* Retina support */\n@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n       only screen and (-moz-min-device-pixel-ratio: 1.5),\n       only screen and (-o-min-device-pixel-ratio: 3/2),\n       only screen and (min-device-pixel-ratio: 1.5) {\n    .icheckbox_square-yellow,\n    .iradio_square-yellow {\n        background-image: url(yellow@2x.png);\n        -webkit-background-size: 240px 24px;\n        background-size: 240px 24px;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-be.json",
    "content": "[\n\t{ \"mask\": \"+32(53)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Aalst (Alost)\" },\n\t{ \"mask\": \"+32(3)###-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Antwerpen (Anvers)\" },\n\t{ \"mask\": \"+32(63)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Arlon\" },\n\t{ \"mask\": \"+32(67)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Ath\" },\n\t{ \"mask\": \"+32(50)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Brugge (Bruges)\" },\n\t{ \"mask\": \"+32(2)###-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Brussel/Bruxelles (Brussels)\" },\n\t{ \"mask\": \"+32(71)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Charleroi\" },\n\t{ \"mask\": \"+32(60)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Chimay\" },\n\t{ \"mask\": \"+32(83)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Ciney\" },\n\t{ \"mask\": \"+32(52)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Dendermonde\" },\n\t{ \"mask\": \"+32(13)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Diest\" },\n\t{ \"mask\": \"+32(82)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Dinant\" },\n\t{ \"mask\": \"+32(86)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Durbuy\" },\n\t{ \"mask\": \"+32(89)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Genk\" },\n\t{ \"mask\": \"+32(9)###-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Gent (Gand)\" },\n\t{ \"mask\": \"+32(11)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Hasselt\" },\n\t{ \"mask\": \"+32(14)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Herentals\" },\n\t{ \"mask\": \"+32(85)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Huy (Hoei)\" },\n\t{ \"mask\": \"+32(64)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"La Louvière\" },\n\t{ \"mask\": \"+32(16)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Leuven (Louvain)\" },\n\t{ \"mask\": \"+32(61)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Libramont\" },\n\t{ \"mask\": \"+32(4)###-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Liège (Luik)\" },\n\t{ \"mask\": \"+32(15)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Mechelen (Malines)\" },\n\t{ \"mask\": \"+32(47#)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Mobile Phones\" },    \n\t{ \"mask\": \"+32(48#)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Mobile Phones\" },    \n\t{ \"mask\": \"+32(49#)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Mobile Phones\" },    \n\t{ \"mask\": \"+32(65)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Mons (Bergen)\" },\n\t{ \"mask\": \"+32(81)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Namur (Namen)\" },\t\n\t{ \"mask\": \"+32(58)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Nieuwpoort (Nieuport)\" },\t\n\t{ \"mask\": \"+32(54)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Ninove\" },\n\t{ \"mask\": \"+32(67)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Nivelles (Nijvel)\" },\n\t{ \"mask\": \"+32(59)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Oostende (Ostende)\" },\n\t{ \"mask\": \"+32(51)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Roeselare (Roulers)\" },\n\t{ \"mask\": \"+32(55)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Ronse\" },\t\n\t{ \"mask\": \"+32(80)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Stavelot\" },\n\t{ \"mask\": \"+32(12)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Tongeren (Tongres)\" },\n\t{ \"mask\": \"+32(69)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Tounai\" },\n\t{ \"mask\": \"+32(14)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Turnhout\" },\n\t{ \"mask\": \"+32(87)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Verviers\" },\n\t{ \"mask\": \"+32(58)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Veurne\" },\n\t{ \"mask\": \"+32(19)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Wareme\" },\n\t{ \"mask\": \"+32(10)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Wavre (Waver)\" },\n\t{ \"mask\": \"+32(50)##-##-##\", \"cc\": \"BE\", \"cd\": \"Belgium\", \"city\": \"Zeebrugge\" }\n]"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/phone-codes.json",
    "content": "[\n\t{ \"mask\": \"+247-####\", \"cc\": \"AC\", \"name_en\": \"Ascension\", \"desc_en\": \"\", \"name_ru\": \"Остров Вознесения\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+376-###-###\", \"cc\": \"AD\", \"name_en\": \"Andorra\", \"desc_en\": \"\", \"name_ru\": \"Андорра\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+971-5#-###-####\", \"cc\": \"AE\", \"name_en\": \"United Arab Emirates\", \"desc_en\": \"mobile\", \"name_ru\": \"Объединенные Арабские Эмираты\", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+971-#-###-####\", \"cc\": \"AE\", \"name_en\": \"United Arab Emirates\", \"desc_en\": \"\", \"name_ru\": \"Объединенные Арабские Эмираты\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+93-##-###-####\", \"cc\": \"AF\", \"name_en\": \"Afghanistan\", \"desc_en\": \"\", \"name_ru\": \"Афганистан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(268)###-####\", \"cc\": \"AG\", \"name_en\": \"Antigua & Barbuda\", \"desc_en\": \"\", \"name_ru\": \"Антигуа и Барбуда\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(264)###-####\", \"cc\": \"AI\", \"name_en\": \"Anguilla\", \"desc_en\": \"\", \"name_ru\": \"Ангилья\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+355(###)###-###\", \"cc\": \"AL\", \"name_en\": \"Albania\", \"desc_en\": \"\", \"name_ru\": \"Албания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+374-##-###-###\", \"cc\": \"AM\", \"name_en\": \"Armenia\", \"desc_en\": \"\", \"name_ru\": \"Армения\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+599-###-####\", \"cc\": \"AN\", \"name_en\": \"Caribbean Netherlands\", \"desc_en\": \"\", \"name_ru\": \"Карибские Нидерланды\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+599-###-####\", \"cc\": \"AN\", \"name_en\": \"Netherlands Antilles\", \"desc_en\": \"\", \"name_ru\": \"Нидерландские Антильские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+599-9###-####\", \"cc\": \"AN\", \"name_en\": \"Netherlands Antilles\", \"desc_en\": \"Curacao\", \"name_ru\": \"Нидерландские Антильские острова\", \"desc_ru\": \"Кюрасао\" },\n\t{ \"mask\": \"+244(###)###-###\", \"cc\": \"AO\", \"name_en\": \"Angola\", \"desc_en\": \"\", \"name_ru\": \"Ангола\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+672-1##-###\", \"cc\": \"AQ\", \"name_en\": \"Australian bases in Antarctica\", \"desc_en\": \"\", \"name_ru\": \"Австралийская антарктическая база\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+54(###)###-####\", \"cc\": \"AR\", \"name_en\": \"Argentina\", \"desc_en\": \"\", \"name_ru\": \"Аргентина\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(684)###-####\", \"cc\": \"AS\", \"name_en\": \"American Samoa\", \"desc_en\": \"\", \"name_ru\": \"Американское Самоа\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+43(###)###-####\", \"cc\": \"AT\", \"name_en\": \"Austria\", \"desc_en\": \"\", \"name_ru\": \"Австрия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+61-#-####-####\", \"cc\": \"AU\", \"name_en\": \"Australia\", \"desc_en\": \"\", \"name_ru\": \"Австралия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+297-###-####\", \"cc\": \"AW\", \"name_en\": \"Aruba\", \"desc_en\": \"\", \"name_ru\": \"Аруба\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+994-##-###-##-##\", \"cc\": \"AZ\", \"name_en\": \"Azerbaijan\", \"desc_en\": \"\", \"name_ru\": \"Азербайджан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+387-##-#####\", \"cc\": \"BA\", \"name_en\": \"Bosnia and Herzegovina\", \"desc_en\": \"\", \"name_ru\": \"Босния и Герцеговина\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+387-##-####\", \"cc\": \"BA\", \"name_en\": \"Bosnia and Herzegovina\", \"desc_en\": \"\", \"name_ru\": \"Босния и Герцеговина\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(246)###-####\", \"cc\": \"BB\", \"name_en\": \"Barbados\", \"desc_en\": \"\", \"name_ru\": \"Барбадос\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+880-##-###-###\", \"cc\": \"BD\", \"name_en\": \"Bangladesh\", \"desc_en\": \"\", \"name_ru\": \"Бангладеш\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+32(###)###-###\", \"cc\": \"BE\", \"name_en\": \"Belgium\", \"desc_en\": \"\", \"name_ru\": \"Бельгия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+226-##-##-####\", \"cc\": \"BF\", \"name_en\": \"Burkina Faso\", \"desc_en\": \"\", \"name_ru\": \"Буркина Фасо\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+359(###)###-###\", \"cc\": \"BG\", \"name_en\": \"Bulgaria\", \"desc_en\": \"\", \"name_ru\": \"Болгария\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+973-####-####\", \"cc\": \"BH\", \"name_en\": \"Bahrain\", \"desc_en\": \"\", \"name_ru\": \"Бахрейн\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+257-##-##-####\", \"cc\": \"BI\", \"name_en\": \"Burundi\", \"desc_en\": \"\", \"name_ru\": \"Бурунди\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+229-##-##-####\", \"cc\": \"BJ\", \"name_en\": \"Benin\", \"desc_en\": \"\", \"name_ru\": \"Бенин\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(441)###-####\", \"cc\": \"BM\", \"name_en\": \"Bermuda\", \"desc_en\": \"\", \"name_ru\": \"Бермудские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+673-###-####\", \"cc\": \"BN\", \"name_en\": \"Brunei Darussalam\", \"desc_en\": \"\", \"name_ru\": \"Бруней-Даруссалам\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+591-#-###-####\", \"cc\": \"BO\", \"name_en\": \"Bolivia\", \"desc_en\": \"\", \"name_ru\": \"Боливия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+55-##-####[#]-####\", \"cc\": \"BR\", \"name_en\": \"Brazil\", \"desc_en\": \"\", \"name_ru\": \"Бразилия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(242)###-####\", \"cc\": \"BS\", \"name_en\": \"Bahamas\", \"desc_en\": \"\", \"name_ru\": \"Багамские Острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+975-17-###-###\", \"cc\": \"BT\", \"name_en\": \"Bhutan\", \"desc_en\": \"\", \"name_ru\": \"Бутан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+975-#-###-###\", \"cc\": \"BT\", \"name_en\": \"Bhutan\", \"desc_en\": \"\", \"name_ru\": \"Бутан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+267-##-###-###\", \"cc\": \"BW\", \"name_en\": \"Botswana\", \"desc_en\": \"\", \"name_ru\": \"Ботсвана\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+375(##)###-##-##\", \"cc\": \"BY\", \"name_en\": \"Belarus\", \"desc_en\": \"\", \"name_ru\": \"Беларусь (Белоруссия)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+501-###-####\", \"cc\": \"BZ\", \"name_en\": \"Belize\", \"desc_en\": \"\", \"name_ru\": \"Белиз\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+243(###)###-###\", \"cc\": \"CD\", \"name_en\": \"Dem. Rep. Congo\", \"desc_en\": \"\", \"name_ru\": \"Дем. Респ. Конго (Киншаса)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+236-##-##-####\", \"cc\": \"CF\", \"name_en\": \"Central African Republic\", \"desc_en\": \"\", \"name_ru\": \"Центральноафриканская Республика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+242-##-###-####\", \"cc\": \"CG\", \"name_en\": \"Congo (Brazzaville)\", \"desc_en\": \"\", \"name_ru\": \"Конго (Браззавиль)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+41-##-###-####\", \"cc\": \"CH\", \"name_en\": \"Switzerland\", \"desc_en\": \"\", \"name_ru\": \"Швейцария\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+225-##-###-###\", \"cc\": \"CI\", \"name_en\": \"Cote d’Ivoire (Ivory Coast)\", \"desc_en\": \"\", \"name_ru\": \"Кот-д’Ивуар\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+682-##-###\", \"cc\": \"CK\", \"name_en\": \"Cook Islands\", \"desc_en\": \"\", \"name_ru\": \"Острова Кука\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+56-#-####-####\", \"cc\": \"CL\", \"name_en\": \"Chile\", \"desc_en\": \"\", \"name_ru\": \"Чили\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+237-####-####\", \"cc\": \"CM\", \"name_en\": \"Cameroon\", \"desc_en\": \"\", \"name_ru\": \"Камерун\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+86(###)####-####\", \"cc\": \"CN\", \"name_en\": \"China (PRC)\", \"desc_en\": \"\", \"name_ru\": \"Китайская Н.Р.\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+86(###)####-###\", \"cc\": \"CN\", \"name_en\": \"China (PRC)\", \"desc_en\": \"\", \"name_ru\": \"Китайская Н.Р.\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+86-##-#####-#####\", \"cc\": \"CN\", \"name_en\": \"China (PRC)\", \"desc_en\": \"\", \"name_ru\": \"Китайская Н.Р.\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+57(###)###-####\", \"cc\": \"CO\", \"name_en\": \"Colombia\", \"desc_en\": \"\", \"name_ru\": \"Колумбия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+506-####-####\", \"cc\": \"CR\", \"name_en\": \"Costa Rica\", \"desc_en\": \"\", \"name_ru\": \"Коста-Рика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+53-#-###-####\", \"cc\": \"CU\", \"name_en\": \"Cuba\", \"desc_en\": \"\", \"name_ru\": \"Куба\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+238(###)##-##\", \"cc\": \"CV\", \"name_en\": \"Cape Verde\", \"desc_en\": \"\", \"name_ru\": \"Кабо-Верде\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+599-###-####\", \"cc\": \"CW\", \"name_en\": \"Curacao\", \"desc_en\": \"\", \"name_ru\": \"Кюрасао\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+357-##-###-###\", \"cc\": \"CY\", \"name_en\": \"Cyprus\", \"desc_en\": \"\", \"name_ru\": \"Кипр\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+420(###)###-###\", \"cc\": \"CZ\", \"name_en\": \"Czech Republic\", \"desc_en\": \"\", \"name_ru\": \"Чехия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49(####)###-####\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49(###)###-####\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49(###)##-####\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49(###)##-###\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49(###)##-##\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+49-###-###\", \"cc\": \"DE\", \"name_en\": \"Germany\", \"desc_en\": \"\", \"name_ru\": \"Германия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+253-##-##-##-##\", \"cc\": \"DJ\", \"name_en\": \"Djibouti\", \"desc_en\": \"\", \"name_ru\": \"Джибути\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+45-##-##-##-##\", \"cc\": \"DK\", \"name_en\": \"Denmark\", \"desc_en\": \"\", \"name_ru\": \"Дания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(767)###-####\", \"cc\": \"DM\", \"name_en\": \"Dominica\", \"desc_en\": \"\", \"name_ru\": \"Доминика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(809)###-####\", \"cc\": \"DO\", \"name_en\": \"Dominican Republic\", \"desc_en\": \"\", \"name_ru\": \"Доминиканская Республика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(829)###-####\", \"cc\": \"DO\", \"name_en\": \"Dominican Republic\", \"desc_en\": \"\", \"name_ru\": \"Доминиканская Республика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(849)###-####\", \"cc\": \"DO\", \"name_en\": \"Dominican Republic\", \"desc_en\": \"\", \"name_ru\": \"Доминиканская Республика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+213-##-###-####\", \"cc\": \"DZ\", \"name_en\": \"Algeria\", \"desc_en\": \"\", \"name_ru\": \"Алжир\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+593-##-###-####\", \"cc\": \"EC\", \"name_en\": \"Ecuador \", \"desc_en\": \"mobile\", \"name_ru\": \"Эквадор \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+593-#-###-####\", \"cc\": \"EC\", \"name_en\": \"Ecuador\", \"desc_en\": \"\", \"name_ru\": \"Эквадор\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+372-####-####\", \"cc\": \"EE\", \"name_en\": \"Estonia \", \"desc_en\": \"mobile\", \"name_ru\": \"Эстония \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+372-###-####\", \"cc\": \"EE\", \"name_en\": \"Estonia\", \"desc_en\": \"\", \"name_ru\": \"Эстония\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+20(###)###-####\", \"cc\": \"EG\", \"name_en\": \"Egypt\", \"desc_en\": \"\", \"name_ru\": \"Египет\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+291-#-###-###\", \"cc\": \"ER\", \"name_en\": \"Eritrea\", \"desc_en\": \"\", \"name_ru\": \"Эритрея\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+34(###)###-###\", \"cc\": \"ES\", \"name_en\": \"Spain\", \"desc_en\": \"\", \"name_ru\": \"Испания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+251-##-###-####\", \"cc\": \"ET\", \"name_en\": \"Ethiopia\", \"desc_en\": \"\", \"name_ru\": \"Эфиопия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+358(###)###-##-##\", \"cc\": \"FI\", \"name_en\": \"Finland\", \"desc_en\": \"\", \"name_ru\": \"Финляндия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+679-##-#####\", \"cc\": \"FJ\", \"name_en\": \"Fiji\", \"desc_en\": \"\", \"name_ru\": \"Фиджи\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+500-#####\", \"cc\": \"FK\", \"name_en\": \"Falkland Islands\", \"desc_en\": \"\", \"name_ru\": \"Фолклендские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+691-###-####\", \"cc\": \"FM\", \"name_en\": \"F.S. Micronesia\", \"desc_en\": \"\", \"name_ru\": \"Ф.Ш. Микронезии\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+298-###-###\", \"cc\": \"FO\", \"name_en\": \"Faroe Islands\", \"desc_en\": \"\", \"name_ru\": \"Фарерские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+262-#####-####\", \"cc\": \"FR\", \"name_en\": \"Mayotte\", \"desc_en\": \"\", \"name_ru\": \"Майотта\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+33(###)###-###\", \"cc\": \"FR\", \"name_en\": \"France\", \"desc_en\": \"\", \"name_ru\": \"Франция\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+508-##-####\", \"cc\": \"FR\", \"name_en\": \"St Pierre & Miquelon\", \"desc_en\": \"\", \"name_ru\": \"Сен-Пьер и Микелон\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+590(###)###-###\", \"cc\": \"FR\", \"name_en\": \"Guadeloupe\", \"desc_en\": \"\", \"name_ru\": \"Гваделупа\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+241-#-##-##-##\", \"cc\": \"GA\", \"name_en\": \"Gabon\", \"desc_en\": \"\", \"name_ru\": \"Габон\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(473)###-####\", \"cc\": \"GD\", \"name_en\": \"Grenada\", \"desc_en\": \"\", \"name_ru\": \"Гренада\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+995(###)###-###\", \"cc\": \"GE\", \"name_en\": \"Rep. of Georgia\", \"desc_en\": \"\", \"name_ru\": \"Грузия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+594-#####-####\", \"cc\": \"GF\", \"name_en\": \"Guiana (French)\", \"desc_en\": \"\", \"name_ru\": \"Фр. Гвиана\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+233(###)###-###\", \"cc\": \"GH\", \"name_en\": \"Ghana\", \"desc_en\": \"\", \"name_ru\": \"Гана\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+350-###-#####\", \"cc\": \"GI\", \"name_en\": \"Gibraltar\", \"desc_en\": \"\", \"name_ru\": \"Гибралтар\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+299-##-##-##\", \"cc\": \"GL\", \"name_en\": \"Greenland\", \"desc_en\": \"\", \"name_ru\": \"Гренландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+220(###)##-##\", \"cc\": \"GM\", \"name_en\": \"Gambia\", \"desc_en\": \"\", \"name_ru\": \"Гамбия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+224-##-###-###\", \"cc\": \"GN\", \"name_en\": \"Guinea\", \"desc_en\": \"\", \"name_ru\": \"Гвинея\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+240-##-###-####\", \"cc\": \"GQ\", \"name_en\": \"Equatorial Guinea\", \"desc_en\": \"\", \"name_ru\": \"Экваториальная Гвинея\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+30(###)###-####\", \"cc\": \"GR\", \"name_en\": \"Greece\", \"desc_en\": \"\", \"name_ru\": \"Греция\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+502-#-###-####\", \"cc\": \"GT\", \"name_en\": \"Guatemala\", \"desc_en\": \"\", \"name_ru\": \"Гватемала\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(671)###-####\", \"cc\": \"GU\", \"name_en\": \"Guam\", \"desc_en\": \"\", \"name_ru\": \"Гуам\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+245-#-######\", \"cc\": \"GW\", \"name_en\": \"Guinea-Bissau\", \"desc_en\": \"\", \"name_ru\": \"Гвинея-Бисау\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+592-###-####\", \"cc\": \"GY\", \"name_en\": \"Guyana\", \"desc_en\": \"\", \"name_ru\": \"Гайана\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+852-####-####\", \"cc\": \"HK\", \"name_en\": \"Hong Kong\", \"desc_en\": \"\", \"name_ru\": \"Гонконг\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+504-####-####\", \"cc\": \"HN\", \"name_en\": \"Honduras\", \"desc_en\": \"\", \"name_ru\": \"Гондурас\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+385-##-###-###\", \"cc\": \"HR\", \"name_en\": \"Croatia\", \"desc_en\": \"\", \"name_ru\": \"Хорватия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+509-##-##-####\", \"cc\": \"HT\", \"name_en\": \"Haiti\", \"desc_en\": \"\", \"name_ru\": \"Гаити\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+36(###)###-###\", \"cc\": \"HU\", \"name_en\": \"Hungary\", \"desc_en\": \"\", \"name_ru\": \"Венгрия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+62(8##)###-####\", \"cc\": \"ID\", \"name_en\": \"Indonesia \", \"desc_en\": \"mobile\", \"name_ru\": \"Индонезия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+62-##-###-##\", \"cc\": \"ID\", \"name_en\": \"Indonesia\", \"desc_en\": \"\", \"name_ru\": \"Индонезия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+62-##-###-###\", \"cc\": \"ID\", \"name_en\": \"Indonesia\", \"desc_en\": \"\", \"name_ru\": \"Индонезия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+62-##-###-####\", \"cc\": \"ID\", \"name_en\": \"Indonesia\", \"desc_en\": \"\", \"name_ru\": \"Индонезия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+62(8##)###-###\", \"cc\": \"ID\", \"name_en\": \"Indonesia \", \"desc_en\": \"mobile\", \"name_ru\": \"Индонезия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+62(8##)###-##-###\", \"cc\": \"ID\", \"name_en\": \"Indonesia \", \"desc_en\": \"mobile\", \"name_ru\": \"Индонезия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+353(###)###-###\", \"cc\": \"IE\", \"name_en\": \"Ireland\", \"desc_en\": \"\", \"name_ru\": \"Ирландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+972-5#-###-####\", \"cc\": \"IL\", \"name_en\": \"Israel \", \"desc_en\": \"mobile\", \"name_ru\": \"Израиль \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+972-#-###-####\", \"cc\": \"IL\", \"name_en\": \"Israel\", \"desc_en\": \"\", \"name_ru\": \"Израиль\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+91(####)###-###\", \"cc\": \"IN\", \"name_en\": \"India\", \"desc_en\": \"\", \"name_ru\": \"Индия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+246-###-####\", \"cc\": \"IO\", \"name_en\": \"Diego Garcia\", \"desc_en\": \"\", \"name_ru\": \"Диего-Гарсия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+964(###)###-####\", \"cc\": \"IQ\", \"name_en\": \"Iraq\", \"desc_en\": \"\", \"name_ru\": \"Ирак\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+98(###)###-####\", \"cc\": \"IR\", \"name_en\": \"Iran\", \"desc_en\": \"\", \"name_ru\": \"Иран\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+354-###-####\", \"cc\": \"IS\", \"name_en\": \"Iceland\", \"desc_en\": \"\", \"name_ru\": \"Исландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+39(###)####-###\", \"cc\": \"IT\", \"name_en\": \"Italy\", \"desc_en\": \"\", \"name_ru\": \"Италия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(876)###-####\", \"cc\": \"JM\", \"name_en\": \"Jamaica\", \"desc_en\": \"\", \"name_ru\": \"Ямайка\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+962-#-####-####\", \"cc\": \"JO\", \"name_en\": \"Jordan\", \"desc_en\": \"\", \"name_ru\": \"Иордания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+81-##-####-####\", \"cc\": \"JP\", \"name_en\": \"Japan \", \"desc_en\": \"mobile\", \"name_ru\": \"Япония \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+81(###)###-###\", \"cc\": \"JP\", \"name_en\": \"Japan\", \"desc_en\": \"\", \"name_ru\": \"Япония\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+254-###-######\", \"cc\": \"KE\", \"name_en\": \"Kenya\", \"desc_en\": \"\", \"name_ru\": \"Кения\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+996(###)###-###\", \"cc\": \"KG\", \"name_en\": \"Kyrgyzstan\", \"desc_en\": \"\", \"name_ru\": \"Киргизия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+855-##-###-###\", \"cc\": \"KH\", \"name_en\": \"Cambodia\", \"desc_en\": \"\", \"name_ru\": \"Камбоджа\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+686-##-###\", \"cc\": \"KI\", \"name_en\": \"Kiribati\", \"desc_en\": \"\", \"name_ru\": \"Кирибати\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+269-##-#####\", \"cc\": \"KM\", \"name_en\": \"Comoros\", \"desc_en\": \"\", \"name_ru\": \"Коморы\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(869)###-####\", \"cc\": \"KN\", \"name_en\": \"Saint Kitts & Nevis\", \"desc_en\": \"\", \"name_ru\": \"Сент-Китс и Невис\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+850-191-###-####\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North) \", \"desc_en\": \"mobile\", \"name_ru\": \"Корейская НДР \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+850-##-###-###\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North)\", \"desc_en\": \"\", \"name_ru\": \"Корейская НДР\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+850-###-####-###\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North)\", \"desc_en\": \"\", \"name_ru\": \"Корейская НДР\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+850-###-###\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North)\", \"desc_en\": \"\", \"name_ru\": \"Корейская НДР\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+850-####-####\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North)\", \"desc_en\": \"\", \"name_ru\": \"Корейская НДР\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+850-####-#############\", \"cc\": \"KP\", \"name_en\": \"DPR Korea (North)\", \"desc_en\": \"\", \"name_ru\": \"Корейская НДР\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+82-##-###-####\", \"cc\": \"KR\", \"name_en\": \"Korea (South)\", \"desc_en\": \"\", \"name_ru\": \"Респ. Корея\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+965-####-####\", \"cc\": \"KW\", \"name_en\": \"Kuwait\", \"desc_en\": \"\", \"name_ru\": \"Кувейт\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(345)###-####\", \"cc\": \"KY\", \"name_en\": \"Cayman Islands\", \"desc_en\": \"\", \"name_ru\": \"Каймановы острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+7(6##)###-##-##\", \"cc\": \"KZ\", \"name_en\": \"Kazakhstan\", \"desc_en\": \"\", \"name_ru\": \"Казахстан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+7(7##)###-##-##\", \"cc\": \"KZ\", \"name_en\": \"Kazakhstan\", \"desc_en\": \"\", \"name_ru\": \"Казахстан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+856(20##)###-###\", \"cc\": \"LA\", \"name_en\": \"Laos \", \"desc_en\": \"mobile\", \"name_ru\": \"Лаос \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+856-##-###-###\", \"cc\": \"LA\", \"name_en\": \"Laos\", \"desc_en\": \"\", \"name_ru\": \"Лаос\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+961-##-###-###\", \"cc\": \"LB\", \"name_en\": \"Lebanon \", \"desc_en\": \"mobile\", \"name_ru\": \"Ливан \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+961-#-###-###\", \"cc\": \"LB\", \"name_en\": \"Lebanon\", \"desc_en\": \"\", \"name_ru\": \"Ливан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(758)###-####\", \"cc\": \"LC\", \"name_en\": \"Saint Lucia\", \"desc_en\": \"\", \"name_ru\": \"Сент-Люсия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+423(###)###-####\", \"cc\": \"LI\", \"name_en\": \"Liechtenstein\", \"desc_en\": \"\", \"name_ru\": \"Лихтенштейн\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+94-##-###-####\", \"cc\": \"LK\", \"name_en\": \"Sri Lanka\", \"desc_en\": \"\", \"name_ru\": \"Шри-Ланка\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+231-##-###-###\", \"cc\": \"LR\", \"name_en\": \"Liberia\", \"desc_en\": \"\", \"name_ru\": \"Либерия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+266-#-###-####\", \"cc\": \"LS\", \"name_en\": \"Lesotho\", \"desc_en\": \"\", \"name_ru\": \"Лесото\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+370(###)##-###\", \"cc\": \"LT\", \"name_en\": \"Lithuania\", \"desc_en\": \"\", \"name_ru\": \"Литва\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+352(###)###-###\", \"cc\": \"LU\", \"name_en\": \"Luxembourg\", \"desc_en\": \"\", \"name_ru\": \"Люксембург\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+371-##-###-###\", \"cc\": \"LV\", \"name_en\": \"Latvia\", \"desc_en\": \"\", \"name_ru\": \"Латвия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+218-##-###-###\", \"cc\": \"LY\", \"name_en\": \"Libya\", \"desc_en\": \"\", \"name_ru\": \"Ливия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+218-21-###-####\", \"cc\": \"LY\", \"name_en\": \"Libya\", \"desc_en\": \"Tripoli\", \"name_ru\": \"Ливия\", \"desc_ru\": \"Триполи\" },\n\t{ \"mask\": \"+212-##-####-###\", \"cc\": \"MA\", \"name_en\": \"Morocco\", \"desc_en\": \"\", \"name_ru\": \"Марокко\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+377(###)###-###\", \"cc\": \"MC\", \"name_en\": \"Monaco\", \"desc_en\": \"\", \"name_ru\": \"Монако\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+377-##-###-###\", \"cc\": \"MC\", \"name_en\": \"Monaco\", \"desc_en\": \"\", \"name_ru\": \"Монако\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+373-####-####\", \"cc\": \"MD\", \"name_en\": \"Moldova\", \"desc_en\": \"\", \"name_ru\": \"Молдова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+382-##-###-###\", \"cc\": \"ME\", \"name_en\": \"Montenegro\", \"desc_en\": \"\", \"name_ru\": \"Черногория\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+261-##-##-#####\", \"cc\": \"MG\", \"name_en\": \"Madagascar\", \"desc_en\": \"\", \"name_ru\": \"Мадагаскар\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+692-###-####\", \"cc\": \"MH\", \"name_en\": \"Marshall Islands\", \"desc_en\": \"\", \"name_ru\": \"Маршалловы Острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+389-##-###-###\", \"cc\": \"MK\", \"name_en\": \"Republic of Macedonia\", \"desc_en\": \"\", \"name_ru\": \"Респ. Македония\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+223-##-##-####\", \"cc\": \"ML\", \"name_en\": \"Mali\", \"desc_en\": \"\", \"name_ru\": \"Мали\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+95-##-###-###\", \"cc\": \"MM\", \"name_en\": \"Burma (Myanmar)\", \"desc_en\": \"\", \"name_ru\": \"Бирма (Мьянма)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+95-#-###-###\", \"cc\": \"MM\", \"name_en\": \"Burma (Myanmar)\", \"desc_en\": \"\", \"name_ru\": \"Бирма (Мьянма)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+95-###-###\", \"cc\": \"MM\", \"name_en\": \"Burma (Myanmar)\", \"desc_en\": \"\", \"name_ru\": \"Бирма (Мьянма)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+976-##-##-####\", \"cc\": \"MN\", \"name_en\": \"Mongolia\", \"desc_en\": \"\", \"name_ru\": \"Монголия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+853-####-####\", \"cc\": \"MO\", \"name_en\": \"Macau\", \"desc_en\": \"\", \"name_ru\": \"Макао\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(670)###-####\", \"cc\": \"MP\", \"name_en\": \"Northern Mariana Islands\", \"desc_en\": \"\", \"name_ru\": \"Северные Марианские острова Сайпан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+596(###)##-##-##\", \"cc\": \"MQ\", \"name_en\": \"Martinique\", \"desc_en\": \"\", \"name_ru\": \"Мартиника\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+222-##-##-####\", \"cc\": \"MR\", \"name_en\": \"Mauritania\", \"desc_en\": \"\", \"name_ru\": \"Мавритания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(664)###-####\", \"cc\": \"MS\", \"name_en\": \"Montserrat\", \"desc_en\": \"\", \"name_ru\": \"Монтсеррат\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+356-####-####\", \"cc\": \"MT\", \"name_en\": \"Malta\", \"desc_en\": \"\", \"name_ru\": \"Мальта\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+230-###-####\", \"cc\": \"MU\", \"name_en\": \"Mauritius\", \"desc_en\": \"\", \"name_ru\": \"Маврикий\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+960-###-####\", \"cc\": \"MV\", \"name_en\": \"Maldives\", \"desc_en\": \"\", \"name_ru\": \"Мальдивские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+265-1-###-###\", \"cc\": \"MW\", \"name_en\": \"Malawi\", \"desc_en\": \"Telecom Ltd\", \"name_ru\": \"Малави\", \"desc_ru\": \"Telecom Ltd\" },\n\t{ \"mask\": \"+265-#-####-####\", \"cc\": \"MW\", \"name_en\": \"Malawi\", \"desc_en\": \"\", \"name_ru\": \"Малави\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+52(###)###-####\", \"cc\": \"MX\", \"name_en\": \"Mexico\", \"desc_en\": \"\", \"name_ru\": \"Мексика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+52-##-##-####\", \"cc\": \"MX\", \"name_en\": \"Mexico\", \"desc_en\": \"\", \"name_ru\": \"Мексика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+60-##-###-####\", \"cc\": \"MY\", \"name_en\": \"Malaysia \", \"desc_en\": \"mobile\", \"name_ru\": \"Малайзия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+60(###)###-###\", \"cc\": \"MY\", \"name_en\": \"Malaysia\", \"desc_en\": \"\", \"name_ru\": \"Малайзия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+60-##-###-###\", \"cc\": \"MY\", \"name_en\": \"Malaysia\", \"desc_en\": \"\", \"name_ru\": \"Малайзия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+60-#-###-###\", \"cc\": \"MY\", \"name_en\": \"Malaysia\", \"desc_en\": \"\", \"name_ru\": \"Малайзия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+258-##-###-###\", \"cc\": \"MZ\", \"name_en\": \"Mozambique\", \"desc_en\": \"\", \"name_ru\": \"Мозамбик\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+264-##-###-####\", \"cc\": \"NA\", \"name_en\": \"Namibia\", \"desc_en\": \"\", \"name_ru\": \"Намибия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+687-##-####\", \"cc\": \"NC\", \"name_en\": \"New Caledonia\", \"desc_en\": \"\", \"name_ru\": \"Новая Каледония\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+227-##-##-####\", \"cc\": \"NE\", \"name_en\": \"Niger\", \"desc_en\": \"\", \"name_ru\": \"Нигер\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+672-3##-###\", \"cc\": \"NF\", \"name_en\": \"Norfolk Island\", \"desc_en\": \"\", \"name_ru\": \"Норфолк (остров)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+234(###)###-####\", \"cc\": \"NG\", \"name_en\": \"Nigeria\", \"desc_en\": \"\", \"name_ru\": \"Нигерия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+234-##-###-###\", \"cc\": \"NG\", \"name_en\": \"Nigeria\", \"desc_en\": \"\", \"name_ru\": \"Нигерия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+234-##-###-##\", \"cc\": \"NG\", \"name_en\": \"Nigeria\", \"desc_en\": \"\", \"name_ru\": \"Нигерия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+234(###)###-####\", \"cc\": \"NG\", \"name_en\": \"Nigeria \", \"desc_en\": \"mobile\", \"name_ru\": \"Нигерия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+505-####-####\", \"cc\": \"NI\", \"name_en\": \"Nicaragua\", \"desc_en\": \"\", \"name_ru\": \"Никарагуа\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+31-##-###-####\", \"cc\": \"NL\", \"name_en\": \"Netherlands\", \"desc_en\": \"\", \"name_ru\": \"Нидерланды\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+47(###)##-###\", \"cc\": \"NO\", \"name_en\": \"Norway\", \"desc_en\": \"\", \"name_ru\": \"Норвегия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+977-##-###-###\", \"cc\": \"NP\", \"name_en\": \"Nepal\", \"desc_en\": \"\", \"name_ru\": \"Непал\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+674-###-####\", \"cc\": \"NR\", \"name_en\": \"Nauru\", \"desc_en\": \"\", \"name_ru\": \"Науру\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+683-####\", \"cc\": \"NU\", \"name_en\": \"Niue\", \"desc_en\": \"\", \"name_ru\": \"Ниуэ\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+64(###)###-###\", \"cc\": \"NZ\", \"name_en\": \"New Zealand\", \"desc_en\": \"\", \"name_ru\": \"Новая Зеландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+64-##-###-###\", \"cc\": \"NZ\", \"name_en\": \"New Zealand\", \"desc_en\": \"\", \"name_ru\": \"Новая Зеландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+64(###)###-####\", \"cc\": \"NZ\", \"name_en\": \"New Zealand\", \"desc_en\": \"\", \"name_ru\": \"Новая Зеландия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+968-##-###-###\", \"cc\": \"OM\", \"name_en\": \"Oman\", \"desc_en\": \"\", \"name_ru\": \"Оман\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+507-###-####\", \"cc\": \"PA\", \"name_en\": \"Panama\", \"desc_en\": \"\", \"name_ru\": \"Панама\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+51(###)###-###\", \"cc\": \"PE\", \"name_en\": \"Peru\", \"desc_en\": \"\", \"name_ru\": \"Перу\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+689-##-##-##\", \"cc\": \"PF\", \"name_en\": \"French Polynesia\", \"desc_en\": \"\", \"name_ru\": \"Французская Полинезия (Таити)\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+675(###)##-###\", \"cc\": \"PG\", \"name_en\": \"Papua New Guinea\", \"desc_en\": \"\", \"name_ru\": \"Папуа-Новая Гвинея\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+63(###)###-####\", \"cc\": \"PH\", \"name_en\": \"Philippines\", \"desc_en\": \"\", \"name_ru\": \"Филиппины\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+92(###)###-####\", \"cc\": \"PK\", \"name_en\": \"Pakistan\", \"desc_en\": \"\", \"name_ru\": \"Пакистан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+48(###)###-###\", \"cc\": \"PL\", \"name_en\": \"Poland\", \"desc_en\": \"\", \"name_ru\": \"Польша\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+970-##-###-####\", \"cc\": \"PS\", \"name_en\": \"Palestine\", \"desc_en\": \"\", \"name_ru\": \"Палестина\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+351-##-###-####\", \"cc\": \"PT\", \"name_en\": \"Portugal\", \"desc_en\": \"\", \"name_ru\": \"Португалия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+680-###-####\", \"cc\": \"PW\", \"name_en\": \"Palau\", \"desc_en\": \"\", \"name_ru\": \"Палау\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+595(###)###-###\", \"cc\": \"PY\", \"name_en\": \"Paraguay\", \"desc_en\": \"\", \"name_ru\": \"Парагвай\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+974-####-####\", \"cc\": \"QA\", \"name_en\": \"Qatar\", \"desc_en\": \"\", \"name_ru\": \"Катар\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+262-#####-####\", \"cc\": \"RE\", \"name_en\": \"Reunion\", \"desc_en\": \"\", \"name_ru\": \"Реюньон\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+40-##-###-####\", \"cc\": \"RO\", \"name_en\": \"Romania\", \"desc_en\": \"\", \"name_ru\": \"Румыния\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+381-##-###-####\", \"cc\": \"RS\", \"name_en\": \"Serbia\", \"desc_en\": \"\", \"name_ru\": \"Сербия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+7(###)###-##-##\", \"cc\": \"RU\", \"name_en\": \"Russia\", \"desc_en\": \"\", \"name_ru\": \"Россия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+250(###)###-###\", \"cc\": \"RW\", \"name_en\": \"Rwanda\", \"desc_en\": \"\", \"name_ru\": \"Руанда\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+966-5-####-####\", \"cc\": \"SA\", \"name_en\": \"Saudi Arabia \", \"desc_en\": \"mobile\", \"name_ru\": \"Саудовская Аравия \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+966-#-###-####\", \"cc\": \"SA\", \"name_en\": \"Saudi Arabia\", \"desc_en\": \"\", \"name_ru\": \"Саудовская Аравия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+677-###-####\", \"cc\": \"SB\", \"name_en\": \"Solomon Islands \", \"desc_en\": \"mobile\", \"name_ru\": \"Соломоновы Острова \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+677-#####\", \"cc\": \"SB\", \"name_en\": \"Solomon Islands\", \"desc_en\": \"\", \"name_ru\": \"Соломоновы Острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+248-#-###-###\", \"cc\": \"SC\", \"name_en\": \"Seychelles\", \"desc_en\": \"\", \"name_ru\": \"Сейшелы\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+249-##-###-####\", \"cc\": \"SD\", \"name_en\": \"Sudan\", \"desc_en\": \"\", \"name_ru\": \"Судан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+46-##-###-####\", \"cc\": \"SE\", \"name_en\": \"Sweden\", \"desc_en\": \"\", \"name_ru\": \"Швеция\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+65-####-####\", \"cc\": \"SG\", \"name_en\": \"Singapore\", \"desc_en\": \"\", \"name_ru\": \"Сингапур\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+290-####\", \"cc\": \"SH\", \"name_en\": \"Saint Helena\", \"desc_en\": \"\", \"name_ru\": \"Остров Святой Елены\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+290-####\", \"cc\": \"SH\", \"name_en\": \"Tristan da Cunha\", \"desc_en\": \"\", \"name_ru\": \"Тристан-да-Кунья\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+386-##-###-###\", \"cc\": \"SI\", \"name_en\": \"Slovenia\", \"desc_en\": \"\", \"name_ru\": \"Словения\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+421(###)###-###\", \"cc\": \"SK\", \"name_en\": \"Slovakia\", \"desc_en\": \"\", \"name_ru\": \"Словакия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+232-##-######\", \"cc\": \"SL\", \"name_en\": \"Sierra Leone\", \"desc_en\": \"\", \"name_ru\": \"Сьерра-Леоне\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+378-####-######\", \"cc\": \"SM\", \"name_en\": \"San Marino\", \"desc_en\": \"\", \"name_ru\": \"Сан-Марино\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+221-##-###-####\", \"cc\": \"SN\", \"name_en\": \"Senegal\", \"desc_en\": \"\", \"name_ru\": \"Сенегал\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+252-##-###-###\", \"cc\": \"SO\", \"name_en\": \"Somalia\", \"desc_en\": \"\", \"name_ru\": \"Сомали\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+252-#-###-###\", \"cc\": \"SO\", \"name_en\": \"Somalia\", \"desc_en\": \"\", \"name_ru\": \"Сомали\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+252-#-###-###\", \"cc\": \"SO\", \"name_en\": \"Somalia \", \"desc_en\": \"mobile\", \"name_ru\": \"Сомали \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+597-###-####\", \"cc\": \"SR\", \"name_en\": \"Suriname \", \"desc_en\": \"mobile\", \"name_ru\": \"Суринам \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+597-###-###\", \"cc\": \"SR\", \"name_en\": \"Suriname\", \"desc_en\": \"\", \"name_ru\": \"Суринам\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+211-##-###-####\", \"cc\": \"SS\", \"name_en\": \"South Sudan\", \"desc_en\": \"\", \"name_ru\": \"Южный Судан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+239-##-#####\", \"cc\": \"ST\", \"name_en\": \"Sao Tome and Principe\", \"desc_en\": \"\", \"name_ru\": \"Сан-Томе и Принсипи\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+503-##-##-####\", \"cc\": \"SV\", \"name_en\": \"El Salvador\", \"desc_en\": \"\", \"name_ru\": \"Сальвадор\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(721)###-####\", \"cc\": \"SX\", \"name_en\": \"Sint Maarten\", \"desc_en\": \"\", \"name_ru\": \"Синт-Маартен\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+963-##-####-###\", \"cc\": \"SY\", \"name_en\": \"Syrian Arab Republic\", \"desc_en\": \"\", \"name_ru\": \"Сирийская арабская республика\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+268-##-##-####\", \"cc\": \"SZ\", \"name_en\": \"Swaziland\", \"desc_en\": \"\", \"name_ru\": \"Свазиленд\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(649)###-####\", \"cc\": \"TC\", \"name_en\": \"Turks & Caicos\", \"desc_en\": \"\", \"name_ru\": \"Тёркс и Кайкос\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+235-##-##-##-##\", \"cc\": \"TD\", \"name_en\": \"Chad\", \"desc_en\": \"\", \"name_ru\": \"Чад\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+228-##-###-###\", \"cc\": \"TG\", \"name_en\": \"Togo\", \"desc_en\": \"\", \"name_ru\": \"Того\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+66-##-###-####\", \"cc\": \"TH\", \"name_en\": \"Thailand \", \"desc_en\": \"mobile\", \"name_ru\": \"Таиланд \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+66-##-###-###\", \"cc\": \"TH\", \"name_en\": \"Thailand\", \"desc_en\": \"\", \"name_ru\": \"Таиланд\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+992-##-###-####\", \"cc\": \"TJ\", \"name_en\": \"Tajikistan\", \"desc_en\": \"\", \"name_ru\": \"Таджикистан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+690-####\", \"cc\": \"TK\", \"name_en\": \"Tokelau\", \"desc_en\": \"\", \"name_ru\": \"Токелау\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+670-###-####\", \"cc\": \"TL\", \"name_en\": \"East Timor\", \"desc_en\": \"\", \"name_ru\": \"Восточный Тимор\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+670-77#-#####\", \"cc\": \"TL\", \"name_en\": \"East Timor\", \"desc_en\": \"Timor Telecom\", \"name_ru\": \"Восточный Тимор\", \"desc_ru\": \"Timor Telecom\" },\n\t{ \"mask\": \"+670-78#-#####\", \"cc\": \"TL\", \"name_en\": \"East Timor\", \"desc_en\": \"Timor Telecom\", \"name_ru\": \"Восточный Тимор\", \"desc_ru\": \"Timor Telecom\" },\n\t{ \"mask\": \"+993-#-###-####\", \"cc\": \"TM\", \"name_en\": \"Turkmenistan\", \"desc_en\": \"\", \"name_ru\": \"Туркменистан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+216-##-###-###\", \"cc\": \"TN\", \"name_en\": \"Tunisia\", \"desc_en\": \"\", \"name_ru\": \"Тунис\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+676-#####\", \"cc\": \"TO\", \"name_en\": \"Tonga\", \"desc_en\": \"\", \"name_ru\": \"Тонга\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+90(###)###-####\", \"cc\": \"TR\", \"name_en\": \"Turkey\", \"desc_en\": \"\", \"name_ru\": \"Турция\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(868)###-####\", \"cc\": \"TT\", \"name_en\": \"Trinidad & Tobago\", \"desc_en\": \"\", \"name_ru\": \"Тринидад и Тобаго\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+688-90####\", \"cc\": \"TV\", \"name_en\": \"Tuvalu \", \"desc_en\": \"mobile\", \"name_ru\": \"Тувалу \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+688-2####\", \"cc\": \"TV\", \"name_en\": \"Tuvalu\", \"desc_en\": \"\", \"name_ru\": \"Тувалу\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+886-#-####-####\", \"cc\": \"TW\", \"name_en\": \"Taiwan\", \"desc_en\": \"\", \"name_ru\": \"Тайвань\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+886-####-####\", \"cc\": \"TW\", \"name_en\": \"Taiwan\", \"desc_en\": \"\", \"name_ru\": \"Тайвань\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+255-##-###-####\", \"cc\": \"TZ\", \"name_en\": \"Tanzania\", \"desc_en\": \"\", \"name_ru\": \"Танзания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+380(##)###-##-##\", \"cc\": \"UA\", \"name_en\": \"Ukraine\", \"desc_en\": \"\", \"name_ru\": \"Украина\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+256(###)###-###\", \"cc\": \"UG\", \"name_en\": \"Uganda\", \"desc_en\": \"\", \"name_ru\": \"Уганда\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+44-##-####-####\", \"cc\": \"UK\", \"name_en\": \"United Kingdom\", \"desc_en\": \"\", \"name_ru\": \"Великобритания\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+598-#-###-##-##\", \"cc\": \"UY\", \"name_en\": \"Uruguay\", \"desc_en\": \"\", \"name_ru\": \"Уругвай\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+998-##-###-####\", \"cc\": \"UZ\", \"name_en\": \"Uzbekistan\", \"desc_en\": \"\", \"name_ru\": \"Узбекистан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+39-6-698-#####\", \"cc\": \"VA\", \"name_en\": \"Vatican City\", \"desc_en\": \"\", \"name_ru\": \"Ватикан\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(784)###-####\", \"cc\": \"VC\", \"name_en\": \"Saint Vincent & the Grenadines\", \"desc_en\": \"\", \"name_ru\": \"Сент-Винсент и Гренадины\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+58(###)###-####\", \"cc\": \"VE\", \"name_en\": \"Venezuela\", \"desc_en\": \"\", \"name_ru\": \"Венесуэла\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(284)###-####\", \"cc\": \"VG\", \"name_en\": \"British Virgin Islands\", \"desc_en\": \"\", \"name_ru\": \"Британские Виргинские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(340)###-####\", \"cc\": \"VI\", \"name_en\": \"US Virgin Islands\", \"desc_en\": \"\", \"name_ru\": \"Американские Виргинские острова\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+84-##-####-###\", \"cc\": \"VN\", \"name_en\": \"Vietnam\", \"desc_en\": \"\", \"name_ru\": \"Вьетнам\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+84(###)####-###\", \"cc\": \"VN\", \"name_en\": \"Vietnam\", \"desc_en\": \"\", \"name_ru\": \"Вьетнам\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+678-##-#####\", \"cc\": \"VU\", \"name_en\": \"Vanuatu \", \"desc_en\": \"mobile\", \"name_ru\": \"Вануату \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+678-#####\", \"cc\": \"VU\", \"name_en\": \"Vanuatu\", \"desc_en\": \"\", \"name_ru\": \"Вануату\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+681-##-####\", \"cc\": \"WF\", \"name_en\": \"Wallis and Futuna\", \"desc_en\": \"\", \"name_ru\": \"Уоллис и Футуна\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+685-##-####\", \"cc\": \"WS\", \"name_en\": \"Samoa\", \"desc_en\": \"\", \"name_ru\": \"Самоа\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+967-###-###-###\", \"cc\": \"YE\", \"name_en\": \"Yemen \", \"desc_en\": \"mobile\", \"name_ru\": \"Йемен \", \"desc_ru\": \"мобильные\" },\n\t{ \"mask\": \"+967-#-###-###\", \"cc\": \"YE\", \"name_en\": \"Yemen\", \"desc_en\": \"\", \"name_ru\": \"Йемен\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+967-##-###-###\", \"cc\": \"YE\", \"name_en\": \"Yemen\", \"desc_en\": \"\", \"name_ru\": \"Йемен\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+27-##-###-####\", \"cc\": \"ZA\", \"name_en\": \"South Africa\", \"desc_en\": \"\", \"name_ru\": \"Южно-Африканская Респ.\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+260-##-###-####\", \"cc\": \"ZM\", \"name_en\": \"Zambia\", \"desc_en\": \"\", \"name_ru\": \"Замбия\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+263-#-######\", \"cc\": \"ZW\", \"name_en\": \"Zimbabwe\", \"desc_en\": \"\", \"name_ru\": \"Зимбабве\", \"desc_ru\": \"\" },\n\t{ \"mask\": \"+1(###)###-####\", \"cc\": [\"US\", \"CA\"], \"name_en\": \"USA and Canada\", \"desc_en\": \"\", \"name_ru\": \"США и Канада\", \"desc_ru\": \"\" }\n]\n"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/input-mask/phone-codes/readme.txt",
    "content": "more phone masks can be found at https://github.com/andr-04/inputmask-multi "
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.css",
    "content": "/* Ion.RangeSlider\n// css version 1.8.5\n// by Denis Ineshin | ionden.com\n// ===================================================================================================================*/\n\n/* =====================================================================================================================\n// RangeSlider */\n\n.irs {\n    position: relative; display: block;\n}\n    .irs-line {\n        position: relative; display: block;\n        overflow: hidden;\n    }\n        .irs-line-left, .irs-line-mid, .irs-line-right {\n            position: absolute; display: block;\n            top: 0;\n        }\n        .irs-line-left {\n            left: 0; width: 10%;\n        }\n        .irs-line-mid {\n            left: 10%; width: 80%;\n        }\n        .irs-line-right {\n            right: 0; width: 10%;\n        }\n\n    .irs-diapason {\n        position: absolute; display: block;\n        left: 0; width: 100%;\n    }\n    .irs-slider {\n        position: absolute; display: block;\n        cursor: default;\n        z-index: 1;\n    }\n        .irs-slider.single {\n            left: 10px;\n        }\n            .irs-slider.single:before {\n                position: absolute; display: block; content: \"\";\n                top: -30%; left: -30%;\n                width: 160%; height: 160%;\n                background: rgba(0,0,0,0.0);\n            }\n        .irs-slider.from {\n            left: 100px;\n        }\n            .irs-slider.from:before {\n                position: absolute; display: block; content: \"\";\n                top: -30%; left: -30%;\n                width: 130%; height: 160%;\n                background: rgba(0,0,0,0.0);\n            }\n        .irs-slider.to {\n            left: 300px;\n        }\n            .irs-slider.to:before {\n                position: absolute; display: block; content: \"\";\n                top: -30%; left: 0;\n                width: 130%; height: 160%;\n                background: rgba(0,0,0,0.0);\n            }\n        .irs-slider.last {\n            z-index: 2;\n        }\n\n    .irs-min {\n        position: absolute; display: block;\n        left: 0;\n        cursor: default;\n    }\n    .irs-max {\n        position: absolute; display: block;\n        right: 0;\n        cursor: default;\n    }\n\n    .irs-from, .irs-to, .irs-single {\n        position: absolute; display: block;\n        top: 0; left: 0;\n        cursor: default;\n        white-space: nowrap;\n    }\n\n\n.irs-grid {\n    position: absolute; display: none;\n    bottom: 0; left: 0;\n    width: 100%; height: 20px;\n}\n.irs-with-grid .irs-grid {\n    display: block;\n}\n    .irs-grid-pol {\n        position: absolute;\n        top: 0; left: 0;\n        width: 1px; height: 8px;\n        background: #000;\n    }\n    .irs-grid-pol.small {\n        height: 4px;\n    }\n    .irs-grid-text {\n        position: absolute;\n        bottom: 0; left: 0;\n        width: 100px;\n        white-space: nowrap;\n        text-align: center;\n        font-size: 9px; line-height: 9px;\n        color: #000;\n    }\n\n.irs-disable-mask {\n    position: absolute; display: block;\n    top: 0; left: 0;\n    width: 100%; height: 100%;\n    cursor: default;\n    background: rgba(0,0,0,0.0);\n    z-index: 2;\n}\n.irs-disabled {\n    opacity: 0.4;\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinFlat.css",
    "content": "/* Ion.RangeSlider, Flat UI Skin\n// css version 1.8.5\n// by Denis Ineshin | ionden.com\n// ===================================================================================================================*/\n\n/* =====================================================================================================================\n// Skin details */\n\n.irs-line-mid,\n.irs-line-left,\n.irs-line-right,\n.irs-diapason,\n.irs-slider {\n    background: url(img/sprite-skin-flat.png) repeat-x;\n}\n\n.irs {\n    height: 40px;\n}\n.irs-with-grid {\n    height: 60px;\n}\n.irs-line {\n    height: 12px; top: 25px;\n}\n    .irs-line-left {\n        height: 12px;\n        background-position: 0 -30px;\n    }\n    .irs-line-mid {\n        height: 12px;\n        background-position: 0 0;\n    }\n    .irs-line-right {\n        height: 12px;\n        background-position: 100% -30px;\n    }\n\n.irs-diapason {\n    height: 12px; top: 25px;\n    background-position: 0 -60px;\n}\n\n.irs-slider {\n    width: 16px; height: 18px;\n    top: 22px;\n    background-position: 0 -90px;\n}\n#irs-active-slider, .irs-slider:hover {\n    background-position: 0 -120px;\n}\n\n.irs-min, .irs-max {\n    color: #999;\n    font-size: 10px; line-height: 1.333;\n    text-shadow: none;\n    top: 0; padding: 1px 3px;\n    background: #e1e4e9;\n    border-radius: 4px;\n}\n\n.irs-from, .irs-to, .irs-single {\n    color: #fff;\n    font-size: 10px; line-height: 1.333;\n    text-shadow: none;\n    padding: 1px 5px;\n    background: #ed5565;\n    border-radius: 4px;\n}\n.irs-from:after, .irs-to:after, .irs-single:after {\n    position: absolute; display: block; content: \"\";\n    bottom: -6px; left: 50%;\n    width: 0; height: 0;\n    margin-left: -3px;\n    overflow: hidden;\n    border: 3px solid transparent;\n    border-top-color: #ed5565;\n}\n\n\n.irs-grid-pol {\n    background: #e1e4e9;\n}\n.irs-grid-text {\n    color: #999;\n}\n\n.irs-disabled {\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/ionslider/ion.rangeSlider.skinNice.css",
    "content": "/* Ion.RangeSlider, Nice Skin\n// css version 1.8.5\n// by Denis Ineshin | ionden.com\n// ===================================================================================================================*/\n\n/* =====================================================================================================================\n// Skin details */\n\n.irs-line-mid,\n.irs-line-left,\n.irs-line-right,\n.irs-diapason,\n.irs-slider {\n    background: url(img/sprite-skin-nice.png) repeat-x;\n}\n\n.irs {\n    height: 40px;\n}\n.irs-with-grid {\n    height: 60px;\n}\n.irs-line {\n    height: 8px; top: 25px;\n}\n    .irs-line-left {\n        height: 8px;\n        background-position: 0 -30px;\n    }\n    .irs-line-mid {\n        height: 8px;\n        background-position: 0 0;\n    }\n    .irs-line-right {\n        height: 8px;\n        background-position: 100% -30px;\n    }\n\n.irs-diapason {\n    height: 8px; top: 25px;\n    background-position: 0 -60px;\n}\n\n.irs-slider {\n    width: 22px; height: 22px;\n    top: 17px;\n    background-position: 0 -90px;\n}\n#irs-active-slider, .irs-slider:hover {\n    background-position: 0 -120px;\n}\n\n.irs-min, .irs-max {\n    color: #999;\n    font-size: 10px; line-height: 1.333;\n    text-shadow: none;\n    top: 0; padding: 1px 3px;\n    background: rgba(0,0,0,0.1);\n    border-radius: 3px;\n}\n.lt-ie9 .irs-min, .lt-ie9 .irs-max {\n    background: #ccc;\n}\n\n.irs-from, .irs-to, .irs-single {\n    color: #fff;\n    font-size: 10px; line-height: 1.333;\n    text-shadow: none;\n    padding: 1px 5px;\n    background: rgba(0,0,0,0.3);\n    border-radius: 3px;\n}\n.lt-ie9 .irs-from, .lt-ie9 .irs-to, .lt-ie9 .irs-single {\n    background: #999;\n}\n\n.irs-grid-pol {\n    background: #99a4ac;\n}\n.irs-grid-text {\n    color: #99a4ac;\n}\n\n.irs-disabled {\n}"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/af.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/af\",[],function(){return{errorLoading:function(){return\"Die resultate kon nie gelaai word nie.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Verwyders asseblief \"+n+\" character\";return 1!=n&&(r+=\"s\"),r},inputTooShort:function(e){return\"Voer asseblief \"+(e.minimum-e.input.length)+\" of meer karakters\"},loadingMore:function(){return\"Meer resultate word gelaai…\"},maximumSelected:function(e){var n=\"Kies asseblief net \"+e.maximum+\" item\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"Geen resultate gevind\"},searching:function(){return\"Besig…\"},removeAllItems:function(){return\"Verwyder alle items\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ar.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ar\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(n){return\"الرجاء حذف \"+(n.input.length-n.maximum)+\" عناصر\"},inputTooShort:function(n){return\"الرجاء إضافة \"+(n.minimum-n.input.length)+\" عناصر\"},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(n){return\"تستطيع إختيار \"+n.maximum+\" بنود فقط\"},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"},removeAllItems:function(){return\"قم بإزالة كل العناصر\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/az.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/az\",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+\" simvol silin\"},inputTooShort:function(n){return n.minimum-n.input.length+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(n){return\"Sadəcə \"+n.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"},removeAllItems:function(){return\"Bütün elementləri sil\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bg.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/bg\",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"Моля въведете с \"+e+\" по-малко символ\";return e>1&&(u+=\"a\"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u=\"Моля въведете още \"+e+\" символ\";return e>1&&(u+=\"a\"),u},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(n){var e=\"Можете да направите до \"+n.maximum+\" \";return n.maximum>1?e+=\"избора\":e+=\"избор\",e},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"},removeAllItems:function(){return\"Премахнете всички елементи\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bn.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/bn\",[],function(){return{errorLoading:function(){return\"ফলাফলগুলি লোড করা যায়নি।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"অনুগ্রহ করে \"+e+\" টি অক্ষর মুছে দিন।\";return 1!=e&&(u=\"অনুগ্রহ করে \"+e+\" টি অক্ষর মুছে দিন।\"),u},inputTooShort:function(n){return n.minimum-n.input.length+\" টি অক্ষর অথবা অধিক অক্ষর লিখুন।\"},loadingMore:function(){return\"আরো ফলাফল লোড হচ্ছে ...\"},maximumSelected:function(n){var e=n.maximum+\" টি আইটেম নির্বাচন করতে পারবেন।\";return 1!=n.maximum&&(e=n.maximum+\" টি আইটেম নির্বাচন করতে পারবেন।\"),e},noResults:function(){return\"কোন ফলাফল পাওয়া যায়নি।\"},searching:function(){return\"অনুসন্ধান করা হচ্ছে ...\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/bs.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/bs\",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return\"Preuzimanje nije uspijelo.\"},inputTooLong:function(n){var r=n.input.length-n.maximum,t=\"Obrišite \"+r+\" simbol\";return t+=e(r,\"\",\"a\",\"a\")},inputTooShort:function(n){var r=n.minimum-n.input.length,t=\"Ukucajte bar još \"+r+\" simbol\";return t+=e(r,\"\",\"a\",\"a\")},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(n){var r=\"Možete izabrati samo \"+n.maximum+\" stavk\";return r+=e(n.maximum,\"u\",\"e\",\"i\")},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Uklonite sve stavke\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ca.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/ca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Si us plau, elimina \"+n+\" car\";return r+=1==n?\"àcter\":\"àcters\"},inputTooShort:function(e){var n=e.minimum-e.input.length,r=\"Si us plau, introdueix \"+n+\" car\";return r+=1==n?\"àcter\":\"àcters\"},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var n=\"Només es pot seleccionar \"+e.maximum+\" element\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"},removeAllItems:function(){return\"Treu tots els elements\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/cs.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/cs\",[],function(){function e(e,n){switch(e){case 2:return n?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?\"Prosím, zadejte o jeden znak méně.\":t<=4?\"Prosím, zadejte o \"+e(t,!0)+\" znaky méně.\":\"Prosím, zadejte o \"+t+\" znaků méně.\"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?\"Prosím, zadejte ještě jeden znak.\":t<=4?\"Prosím, zadejte ještě další \"+e(t,!0)+\" znaky.\":\"Prosím, zadejte ještě dalších \"+t+\" znaků.\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(n){var t=n.maximum;return 1==t?\"Můžete zvolit jen jednu položku.\":t<=4?\"Můžete zvolit maximálně \"+e(t,!1)+\" položky.\":\"Můžete zvolit maximálně \"+t+\" položek.\"},noResults:function(){return\"Nenalezeny žádné položky.\"},searching:function(){return\"Vyhledávání…\"},removeAllItems:function(){return\"Odstraňte všechny položky\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/da.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/da\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){return\"Angiv venligst \"+(e.input.length-e.maximum)+\" tegn mindre\"},inputTooShort:function(e){return\"Angiv venligst \"+(e.minimum-e.input.length)+\" tegn mere\"},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var n=\"Du kan kun vælge \"+e.maximum+\" emne\";return 1!=e.maximum&&(n+=\"r\"),n},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"},removeAllItems:function(){return\"Fjern alle elementer\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/de.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/de\",[],function(){return{errorLoading:function(){return\"Die Ergebnisse konnten nicht geladen werden.\"},inputTooLong:function(e){return\"Bitte \"+(e.input.length-e.maximum)+\" Zeichen weniger eingeben\"},inputTooShort:function(e){return\"Bitte \"+(e.minimum-e.input.length)+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var n=\"Sie können nur \"+e.maximum+\" Element\";return 1!=e.maximum&&(n+=\"e\"),n+=\" auswählen\"},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"},removeAllItems:function(){return\"Entferne alle Elemente\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/dsb.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/dsb\",[],function(){var n=[\"znamuško\",\"znamušce\",\"znamuška\",\"znamuškow\"],e=[\"zapisk\",\"zapiska\",\"zapiski\",\"zapiskow\"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return\"Wuslědki njejsu se dali zacytaś.\"},inputTooLong:function(e){var a=e.input.length-e.maximum;return\"Pšosym lašuj \"+a+\" \"+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return\"Pšosym zapódaj nanejmjenjej \"+a+\" \"+u(a,n)},loadingMore:function(){return\"Dalšne wuslědki se zacytaju…\"},maximumSelected:function(n){return\"Móžoš jano \"+n.maximum+\" \"+u(n.maximum,e)+\"wubraś.\"},noResults:function(){return\"Žedne wuslědki namakane\"},searching:function(){return\"Pyta se…\"},removeAllItems:function(){return\"Remove all items\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/el.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/el\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"Παρακαλώ διαγράψτε \"+e+\" χαρακτήρ\";return 1==e&&(u+=\"α\"),1!=e&&(u+=\"ες\"),u},inputTooShort:function(n){return\"Παρακαλώ συμπληρώστε \"+(n.minimum-n.input.length)+\" ή περισσότερους χαρακτήρες\"},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(n){var e=\"Μπορείτε να επιλέξετε μόνο \"+n.maximum+\" επιλογ\";return 1==n.maximum&&(e+=\"ή\"),1!=n.maximum&&(e+=\"ές\"),e},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"},removeAllItems:function(){return\"Καταργήστε όλα τα στοιχεία\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/en.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Please delete \"+n+\" character\";return 1!=n&&(r+=\"s\"),r},inputTooShort:function(e){return\"Please enter \"+(e.minimum-e.input.length)+\" or more characters\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var n=\"You can only select \"+e.maximum+\" item\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"},removeAllItems:function(){return\"Remove all items\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/es.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/es\",[],function(){return{errorLoading:function(){return\"No se pudieron cargar los resultados\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Por favor, elimine \"+n+\" car\";return r+=1==n?\"ácter\":\"acteres\"},inputTooShort:function(e){var n=e.minimum-e.input.length,r=\"Por favor, introduzca \"+n+\" car\";return r+=1==n?\"ácter\":\"acteres\"},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var n=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return 1!=e.maximum&&(n+=\"s\"),n},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Eliminar todos los elementos\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/et.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/et\",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Sisesta \"+n+\" täht\";return 1!=n&&(t+=\"e\"),t+=\" vähem\"},inputTooShort:function(e){var n=e.minimum-e.input.length,t=\"Sisesta \"+n+\" täht\";return 1!=n&&(t+=\"e\"),t+=\" rohkem\"},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var n=\"Saad vaid \"+e.maximum+\" tulemus\";return 1==e.maximum?n+=\"e\":n+=\"t\",n+=\" valida\"},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"},removeAllItems:function(){return\"Eemalda kõik esemed\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/eu.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/eu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return n+=1==t?\"karaktere bat\":t+\" karaktere\",n+=\" gutxiago\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return n+=1==t?\"karaktere bat\":t+\" karaktere\",n+=\" gehiago\"},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return 1===e.maximum?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"},removeAllItems:function(){return\"Kendu elementu guztiak\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fa.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/fa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(n){return\"لطفاً \"+(n.input.length-n.maximum)+\" کاراکتر را حذف نمایید\"},inputTooShort:function(n){return\"لطفاً تعداد \"+(n.minimum-n.input.length)+\" کاراکتر یا بیشتر وارد نمایید\"},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(n){return\"شما تنها می‌توانید \"+n.maximum+\" آیتم را انتخاب نمایید\"},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"},removeAllItems:function(){return\"همه موارد را حذف کنید\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fi.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/fi\",[],function(){return{errorLoading:function(){return\"Tuloksia ei saatu ladattua.\"},inputTooLong:function(n){return\"Ole hyvä ja anna \"+(n.input.length-n.maximum)+\" merkkiä vähemmän\"},inputTooShort:function(n){return\"Ole hyvä ja anna \"+(n.minimum-n.input.length)+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(n){return\"Voit valita ainoastaan \"+n.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){return\"Haetaan…\"},removeAllItems:function(){return\"Poista kaikki kohteet\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/fr.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/fr\",[],function(){return{errorLoading:function(){return\"Les résultats ne peuvent pas être chargés.\"},inputTooLong:function(e){var n=e.input.length-e.maximum;return\"Supprimez \"+n+\" caractère\"+(n>1?\"s\":\"\")},inputTooShort:function(e){var n=e.minimum-e.input.length;return\"Saisissez au moins \"+n+\" caractère\"+(n>1?\"s\":\"\")},loadingMore:function(){return\"Chargement de résultats supplémentaires…\"},maximumSelected:function(e){return\"Vous pouvez seulement sélectionner \"+e.maximum+\" élément\"+(e.maximum>1?\"s\":\"\")},noResults:function(){return\"Aucun résultat trouvé\"},searching:function(){return\"Recherche en cours…\"},removeAllItems:function(){return\"Supprimer tous les éléments\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/gl.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/gl\",[],function(){return{errorLoading:function(){return\"Non foi posíbel cargar os resultados.\"},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?\"Elimine un carácter\":\"Elimine \"+n+\" caracteres\"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?\"Engada un carácter\":\"Engada \"+n+\" caracteres\"},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){return 1===e.maximum?\"Só pode seleccionar un elemento\":\"Só pode seleccionar \"+e.maximum+\" elementos\"},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Elimina todos os elementos\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/he.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/he\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=\"נא למחוק \";return r+=1===e?\"תו אחד\":e+\" תווים\"},inputTooShort:function(n){var e=n.minimum-n.input.length,r=\"נא להכניס \";return r+=1===e?\"תו אחד\":e+\" תווים\",r+=\" או יותר\"},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(n){var e=\"באפשרותך לבחור עד \";return 1===n.maximum?e+=\"פריט אחד\":e+=n.maximum+\" פריטים\",e},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"},removeAllItems:function(){return\"הסר את כל הפריטים\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hi.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+\" अक्षर को हटा दें\";return e>1&&(r=e+\" अक्षरों को हटा दें \"),r},inputTooShort:function(n){return\"कृपया \"+(n.minimum-n.input.length)+\" या अधिक अक्षर दर्ज करें\"},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(n){return\"आप केवल \"+n.maximum+\" आइटम का चयन कर सकते हैं\"},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"},removeAllItems:function(){return\"सभी वस्तुओं को हटा दें\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hr.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hr\",[],function(){function n(n){var e=\" \"+n+\" znak\";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+=\"a\"):e+=\"ova\",e}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(e){return\"Unesite \"+n(e.input.length-e.maximum)},inputTooShort:function(e){return\"Unesite još \"+n(e.minimum-e.input.length)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(n){return\"Maksimalan broj odabranih stavki je \"+n.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Ukloni sve stavke\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hsb.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hsb\",[],function(){var n=[\"znamješko\",\"znamješce\",\"znamješka\",\"znamješkow\"],e=[\"zapisk\",\"zapiskaj\",\"zapiski\",\"zapiskow\"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return\"Wuslědki njedachu so začitać.\"},inputTooLong:function(e){var a=e.input.length-e.maximum;return\"Prošu zhašej \"+a+\" \"+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return\"Prošu zapodaj znajmjeńša \"+a+\" \"+u(a,n)},loadingMore:function(){return\"Dalše wuslědki so začitaja…\"},maximumSelected:function(n){return\"Móžeš jenož \"+n.maximum+\" \"+u(n.maximum,e)+\"wubrać\"},noResults:function(){return\"Žane wuslědki namakane\"},searching:function(){return\"Pyta so…\"},removeAllItems:function(){return\"Remove all items\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hu.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/hu\",[],function(){return{errorLoading:function(){return\"Az eredmények betöltése nem sikerült.\"},inputTooLong:function(e){return\"Túl hosszú. \"+(e.input.length-e.maximum)+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){return\"Túl rövid. Még \"+(e.minimum-e.input.length)+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"},removeAllItems:function(){return\"Távolítson el minden elemet\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/hy.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/hy\",[],function(){return{errorLoading:function(){return\"Արդյունքները հնարավոր չէ բեռնել։\"},inputTooLong:function(n){return\"Խնդրում ենք հեռացնել \"+(n.input.length-n.maximum)+\" նշան\"},inputTooShort:function(n){return\"Խնդրում ենք մուտքագրել \"+(n.minimum-n.input.length)+\" կամ ավել նշաններ\"},loadingMore:function(){return\"Բեռնվում են նոր արդյունքներ․․․\"},maximumSelected:function(n){return\"Դուք կարող եք ընտրել առավելագույնը \"+n.maximum+\" կետ\"},noResults:function(){return\"Արդյունքներ չեն գտնվել\"},searching:function(){return\"Որոնում․․․\"},removeAllItems:function(){return\"Հեռացնել բոլոր տարրերը\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/id.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/id\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(n){return\"Hapuskan \"+(n.input.length-n.maximum)+\" huruf\"},inputTooShort:function(n){return\"Masukkan \"+(n.minimum-n.input.length)+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(n){return\"Anda hanya dapat memilih \"+n.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"},removeAllItems:function(){return\"Hapus semua item\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/is.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/is\",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t<=1?e:e+\"i\"},inputTooShort:function(n){var t=n.minimum-n.input.length,e=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(e+=\"i\"),e+=\" í viðbót\"},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(n){return\"Þú getur aðeins valið \"+n.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"},removeAllItems:function(){return\"Fjarlægðu öll atriði\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/it.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/it\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Per favore cancella \"+n+\" caratter\";return t+=1!==n?\"i\":\"e\"},inputTooShort:function(e){return\"Per favore inserisci \"+(e.minimum-e.input.length)+\" o più caratteri\"},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var n=\"Puoi selezionare solo \"+e.maximum+\" element\";return 1!==e.maximum?n+=\"i\":n+=\"o\",n},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"},removeAllItems:function(){return\"Rimuovi tutti gli oggetti\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ja.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(n){return n.input.length-n.maximum+\" 文字を削除してください\"},inputTooShort:function(n){return\"少なくとも \"+(n.minimum-n.input.length)+\" 文字を入力してください\"},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(n){return n.maximum+\" 件しか選択できません\"},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"},removeAllItems:function(){return\"すべてのアイテムを削除\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ka.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ka\",[],function(){return{errorLoading:function(){return\"მონაცემების ჩატვირთვა შეუძლებელია.\"},inputTooLong:function(n){return\"გთხოვთ აკრიფეთ \"+(n.input.length-n.maximum)+\" სიმბოლოთი ნაკლები\"},inputTooShort:function(n){return\"გთხოვთ აკრიფეთ \"+(n.minimum-n.input.length)+\" სიმბოლო ან მეტი\"},loadingMore:function(){return\"მონაცემების ჩატვირთვა…\"},maximumSelected:function(n){return\"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს \"+n.maximum+\" ელემენტი\"},noResults:function(){return\"რეზულტატი არ მოიძებნა\"},searching:function(){return\"ძიება…\"},removeAllItems:function(){return\"ამოიღე ყველა ელემენტი\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/km.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/km\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(n){return\"សូមលុបចេញ  \"+(n.input.length-n.maximum)+\" អក្សរ\"},inputTooShort:function(n){return\"សូមបញ្ចូល\"+(n.minimum-n.input.length)+\" អក្សរ រឺ ច្រើនជាងនេះ\"},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(n){return\"អ្នកអាចជ្រើសរើសបានតែ \"+n.maximum+\" ជម្រើសប៉ុណ្ណោះ\"},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"},removeAllItems:function(){return\"លុបធាតុទាំងអស់\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ko.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(n){return\"너무 깁니다. \"+(n.input.length-n.maximum)+\" 글자 지워주세요.\"},inputTooShort:function(n){return\"너무 짧습니다. \"+(n.minimum-n.input.length)+\" 글자 더 입력해주세요.\"},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(n){return\"최대 \"+n.maximum+\"개까지만 선택 가능합니다.\"},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"},removeAllItems:function(){return\"모든 항목 삭제\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lt.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/lt\",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t=\"Pašalinkite \"+i+\" simbol\";return t+=n(i,\"į\",\"ius\",\"ių\")},inputTooShort:function(e){var i=e.minimum-e.input.length,t=\"Įrašykite dar \"+i+\" simbol\";return t+=n(i,\"į\",\"ius\",\"ių\")},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(e){var i=\"Jūs galite pasirinkti tik \"+e.maximum+\" element\";return i+=n(e.maximum,\"ą\",\"us\",\"ų\")},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"},removeAllItems:function(){return\"Pašalinti visus elementus\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/lv.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/lv\",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i=\"Lūdzu ievadiet par  \"+u;return(i+=\" simbol\"+e(u,\"iem\",\"u\",\"iem\"))+\" mazāk\"},inputTooShort:function(n){var u=n.minimum-n.input.length,i=\"Lūdzu ievadiet vēl \"+u;return i+=\" simbol\"+e(u,\"us\",\"u\",\"us\")},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(n){var u=\"Jūs varat izvēlēties ne vairāk kā \"+n.maximum;return u+=\" element\"+e(n.maximum,\"us\",\"u\",\"us\")},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"},removeAllItems:function(){return\"Noņemt visus vienumus\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/mk.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/mk\",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,\"Ве молиме внесете \"+n.maximum+\" помалку карактер\");return 1!==n.maximum&&(e+=\"и\"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,\"Ве молиме внесете уште \"+n.maximum+\" карактер\");return 1!==n.maximum&&(e+=\"и\"),e},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(n){var e=\"Можете да изберете само \"+n.maximum+\" ставк\";return 1===n.maximum?e+=\"а\":e+=\"и\",e},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"},removeAllItems:function(){return\"Отстрани ги сите предмети\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ms.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(n){return\"Sila hapuskan \"+(n.input.length-n.maximum)+\" aksara\"},inputTooShort:function(n){return\"Sila masukkan \"+(n.minimum-n.input.length)+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(n){return\"Anda hanya boleh memilih \"+n.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"},removeAllItems:function(){return\"Keluarkan semua item\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nb.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/nb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){return\"Vennligst fjern \"+(e.input.length-e.maximum)+\" tegn\"},inputTooShort:function(e){return\"Vennligst skriv inn \"+(e.minimum-e.input.length)+\" tegn til\"},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"},removeAllItems:function(){return\"Fjern alle elementer\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ne.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ne\",[],function(){return{errorLoading:function(){return\"नतिजाहरु देखाउन सकिएन।\"},inputTooLong:function(n){var e=n.input.length-n.maximum,u=\"कृपया \"+e+\" अक्षर मेटाउनुहोस्।\";return 1!=e&&(u+=\"कृपया \"+e+\" अक्षरहरु मेटाउनुहोस्।\"),u},inputTooShort:function(n){return\"कृपया बाँकी रहेका \"+(n.minimum-n.input.length)+\" वा अरु धेरै अक्षरहरु भर्नुहोस्।\"},loadingMore:function(){return\"अरु नतिजाहरु भरिँदैछन् …\"},maximumSelected:function(n){var e=\"तँपाई \"+n.maximum+\" वस्तु मात्र छान्न पाउँनुहुन्छ।\";return 1!=n.maximum&&(e=\"तँपाई \"+n.maximum+\" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।\"),e},noResults:function(){return\"कुनै पनि नतिजा भेटिएन।\"},searching:function(){return\"खोजि हुँदैछ…\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/nl.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/nl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){return\"Gelieve \"+(e.input.length-e.maximum)+\" karakters te verwijderen\"},inputTooShort:function(e){return\"Gelieve \"+(e.minimum-e.input.length)+\" of meer karakters in te voeren\"},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var n=1==e.maximum?\"kan\":\"kunnen\",r=\"Er \"+n+\" maar \"+e.maximum+\" item\";return 1!=e.maximum&&(r+=\"s\"),r+=\" worden geselecteerd\"},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"},removeAllItems:function(){return\"Verwijder alle items\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pl.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/pl\",[],function(){var n=[\"znak\",\"znaki\",\"znaków\"],e=[\"element\",\"elementy\",\"elementów\"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Usuń \"+t+\" \"+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Podaj przynajmniej \"+t+\" \"+r(t,n)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(n){return\"Możesz zaznaczyć tylko \"+n.maximum+\" \"+r(n.maximum,e)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"},removeAllItems:function(){return\"Usuń wszystkie przedmioty\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ps.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ps\",[],function(){return{errorLoading:function(){return\"پايلي نه سي ترلاسه کېدای\"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=\"د مهربانۍ لمخي \"+e+\" توری ړنګ کړئ\";return 1!=e&&(r=r.replace(\"توری\",\"توري\")),r},inputTooShort:function(n){return\"لږ تر لږه \"+(n.minimum-n.input.length)+\" يا ډېر توري وليکئ\"},loadingMore:function(){return\"نوري پايلي ترلاسه کيږي...\"},maximumSelected:function(n){var e=\"تاسو يوازي \"+n.maximum+\" قلم په نښه کولای سی\";return 1!=n.maximum&&(e=e.replace(\"قلم\",\"قلمونه\")),e},noResults:function(){return\"پايلي و نه موندل سوې\"},searching:function(){return\"لټول کيږي...\"},removeAllItems:function(){return\"ټول توکي لرې کړئ\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt-BR.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/pt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,r=\"Apague \"+n+\" caracter\";return 1!=n&&(r+=\"es\"),r},inputTooShort:function(e){return\"Digite \"+(e.minimum-e.input.length)+\" ou mais caracteres\"},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var n=\"Você só pode selecionar \"+e.maximum+\" ite\";return 1==e.maximum?n+=\"m\":n+=\"ns\",n},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"},removeAllItems:function(){return\"Remover todos os itens\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/pt.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/pt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,n=\"Por favor apague \"+r+\" \";return n+=1!=r?\"caracteres\":\"caractere\"},inputTooShort:function(e){return\"Introduza \"+(e.minimum-e.input.length)+\" ou mais caracteres\"},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var r=\"Apenas pode seleccionar \"+e.maximum+\" \";return r+=1!=e.maximum?\"itens\":\"item\"},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"},removeAllItems:function(){return\"Remover todos os itens\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ro.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/ro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return 1!==t&&(n+=\"e\"),n},inputTooShort:function(e){return\"Vă rugăm să introduceți \"+(e.minimum-e.input.length)+\" sau mai multe caractere\"},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",1!==e.maximum&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"},removeAllItems:function(){return\"Eliminați toate elementele\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/ru.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/ru\",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(e){var r=e.input.length-e.maximum,u=\"Пожалуйста, введите на \"+r+\" символ\";return u+=n(r,\"\",\"a\",\"ов\"),u+=\" меньше\"},inputTooShort:function(e){var r=e.minimum-e.input.length,u=\"Пожалуйста, введите ещё хотя бы \"+r+\" символ\";return u+=n(r,\"\",\"a\",\"ов\")},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(e){var r=\"Вы можете выбрать не более \"+e.maximum+\" элемент\";return r+=n(e.maximum,\"\",\"a\",\"ов\")},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"},removeAllItems:function(){return\"Удалить все элементы\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sk.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{errorLoading:function(){return\"Výsledky sa nepodarilo načítať.\"},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?\"Prosím, zadajte o jeden znak menej\":t>=2&&t<=4?\"Prosím, zadajte o \"+e[t](!0)+\" znaky menej\":\"Prosím, zadajte o \"+t+\" znakov menej\"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?\"Prosím, zadajte ešte jeden znak\":t<=4?\"Prosím, zadajte ešte ďalšie \"+e[t](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+t+\" znakov\"},loadingMore:function(){return\"Načítanie ďalších výsledkov…\"},maximumSelected:function(n){return 1==n.maximum?\"Môžete zvoliť len jednu položku\":n.maximum>=2&&n.maximum<=4?\"Môžete zvoliť najviac \"+e[n.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+n.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"},removeAllItems:function(){return\"Odstráňte všetky položky\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sl.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sl\",[],function(){return{errorLoading:function(){return\"Zadetkov iskanja ni bilo mogoče naložiti.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Prosim zbrišite \"+n+\" znak\";return 2==n?t+=\"a\":1!=n&&(t+=\"e\"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t=\"Prosim vpišite še \"+n+\" znak\";return 2==n?t+=\"a\":1!=n&&(t+=\"e\"),t},loadingMore:function(){return\"Nalagam več zadetkov…\"},maximumSelected:function(e){var n=\"Označite lahko največ \"+e.maximum+\" predmet\";return 2==e.maximum?n+=\"a\":1!=e.maximum&&(n+=\"e\"),n},noResults:function(){return\"Ni zadetkov.\"},searching:function(){return\"Iščem…\"},removeAllItems:function(){return\"Odstranite vse elemente\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sq.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/sq\",[],function(){return{errorLoading:function(){return\"Rezultatet nuk mund të ngarkoheshin.\"},inputTooLong:function(e){var n=e.input.length-e.maximum,t=\"Të lutem fshi \"+n+\" karakter\";return 1!=n&&(t+=\"e\"),t},inputTooShort:function(e){return\"Të lutem shkruaj \"+(e.minimum-e.input.length)+\" ose më shumë karaktere\"},loadingMore:function(){return\"Duke ngarkuar më shumë rezultate…\"},maximumSelected:function(e){var n=\"Mund të zgjedhësh vetëm \"+e.maximum+\" element\";return 1!=e.maximum&&(n+=\"e\"),n},noResults:function(){return\"Nuk u gjet asnjë rezultat\"},searching:function(){return\"Duke kërkuar…\"},removeAllItems:function(){return\"Hiq të gjitha sendet\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr-Cyrl.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sr-Cyrl\",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,u=\"Обришите \"+r+\" симбол\";return u+=n(r,\"\",\"а\",\"а\")},inputTooShort:function(e){var r=e.minimum-e.input.length,u=\"Укуцајте бар још \"+r+\" симбол\";return u+=n(r,\"\",\"а\",\"а\")},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(e){var r=\"Можете изабрати само \"+e.maximum+\" ставк\";return r+=n(e.maximum,\"у\",\"е\",\"и\")},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"},removeAllItems:function(){return\"Уклоните све ставке\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sr.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sr\",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(e){var r=e.input.length-e.maximum,t=\"Obrišite \"+r+\" simbol\";return t+=n(r,\"\",\"a\",\"a\")},inputTooShort:function(e){var r=e.minimum-e.input.length,t=\"Ukucajte bar još \"+r+\" simbol\";return t+=n(r,\"\",\"a\",\"a\")},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(e){var r=\"Možete izabrati samo \"+e.maximum+\" stavk\";return r+=n(e.maximum,\"u\",\"e\",\"i\")},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"},removeAllItems:function(){return\"Уклоните све ставке\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/sv.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/sv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(n){return\"Vänligen sudda ut \"+(n.input.length-n.maximum)+\" tecken\"},inputTooShort:function(n){return\"Vänligen skriv in \"+(n.minimum-n.input.length)+\" eller fler tecken\"},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(n){return\"Du kan max välja \"+n.maximum+\" element\"},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"},removeAllItems:function(){return\"Ta bort alla objekt\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/th.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/th\",[],function(){return{errorLoading:function(){return\"ไม่สามารถค้นข้อมูลได้\"},inputTooLong:function(n){return\"โปรดลบออก \"+(n.input.length-n.maximum)+\" ตัวอักษร\"},inputTooShort:function(n){return\"โปรดพิมพ์เพิ่มอีก \"+(n.minimum-n.input.length)+\" ตัวอักษร\"},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(n){return\"คุณสามารถเลือกได้ไม่เกิน \"+n.maximum+\" รายการ\"},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"},removeAllItems:function(){return\"ลบรายการทั้งหมด\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/tk.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define(\"select2/i18n/tk\",[],function(){return{errorLoading:function(){return\"Netije ýüklenmedi.\"},inputTooLong:function(e){return e.input.length-e.maximum+\" harp bozuň.\"},inputTooShort:function(e){return\"Ýene-de iň az \"+(e.minimum-e.input.length)+\" harp ýazyň.\"},loadingMore:function(){return\"Köpräk netije görkezilýär…\"},maximumSelected:function(e){return\"Diňe \"+e.maximum+\" sanysyny saýlaň.\"},noResults:function(){return\"Netije tapylmady.\"},searching:function(){return\"Gözlenýär…\"},removeAllItems:function(){return\"Remove all items\"}}}),e.define,e.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/tr.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/tr\",[],function(){return{errorLoading:function(){return\"Sonuç yüklenemedi\"},inputTooLong:function(n){return n.input.length-n.maximum+\" karakter daha girmelisiniz\"},inputTooShort:function(n){return\"En az \"+(n.minimum-n.input.length)+\" karakter daha girmelisiniz\"},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(n){return\"Sadece \"+n.maximum+\" seçim yapabilirsiniz\"},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"},removeAllItems:function(){return\"Tüm öğeleri kaldır\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/uk.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/uk\",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(e){return\"Будь ласка, видаліть \"+(e.input.length-e.maximum)+\" \"+n(e.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(n){return\"Будь ласка, введіть \"+(n.minimum-n.input.length)+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(e){return\"Ви можете вибрати лише \"+e.maximum+\" \"+n(e.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"},removeAllItems:function(){return\"Видалити всі елементи\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/vi.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/vi\",[],function(){return{inputTooLong:function(n){return\"Vui lòng xóa bớt \"+(n.input.length-n.maximum)+\" ký tự\"},inputTooShort:function(n){return\"Vui lòng nhập thêm từ \"+(n.minimum-n.input.length)+\" ký tự trở lên\"},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(n){return\"Chỉ có thể chọn được \"+n.maximum+\" lựa chọn\"},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"},removeAllItems:function(){return\"Xóa tất cả các mục\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-CN.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/zh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(n){return\"请删除\"+(n.input.length-n.maximum)+\"个字符\"},inputTooShort:function(n){return\"请再输入至少\"+(n.minimum-n.input.length)+\"个字符\"},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(n){return\"最多只能选择\"+n.maximum+\"个项目\"},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"},removeAllItems:function(){return\"删除所有项目\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/i18n/zh-TW.js",
    "content": "/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define(\"select2/i18n/zh-TW\",[],function(){return{inputTooLong:function(n){return\"請刪掉\"+(n.input.length-n.maximum)+\"個字元\"},inputTooShort:function(n){return\"請再輸入\"+(n.minimum-n.input.length)+\"個字元\"},loadingMore:function(){return\"載入中…\"},maximumSelected:function(n){return\"你只能選擇最多\"+n.maximum+\"項\"},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"},removeAllItems:function(){return\"刪除所有項目\"}}}),n.define,n.require}();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ar.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ar\",[],function(){return{errorLoading:function(){return\"لا يمكن تحميل النتائج\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"الرجاء حذف \"+t+\" عناصر\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"الرجاء إضافة \"+t+\" عناصر\";return n},loadingMore:function(){return\"جاري تحميل نتائج إضافية...\"},maximumSelected:function(e){var t=\"تستطيع إختيار \"+e.maximum+\" بنود فقط\";return t},noResults:function(){return\"لم يتم العثور على أي نتائج\"},searching:function(){return\"جاري البحث…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/az.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/az\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+\" simvol silin\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+\" simvol daxil edin\"},loadingMore:function(){return\"Daha çox nəticə yüklənir…\"},maximumSelected:function(e){return\"Sadəcə \"+e.maximum+\" element seçə bilərsiniz\"},noResults:function(){return\"Nəticə tapılmadı\"},searching:function(){return\"Axtarılır…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/bg.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/bg\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Моля въведете с \"+t+\" по-малко символ\";return t>1&&(n+=\"a\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Моля въведете още \"+t+\" символ\";return t>1&&(n+=\"a\"),n},loadingMore:function(){return\"Зареждат се още…\"},maximumSelected:function(e){var t=\"Можете да направите до \"+e.maximum+\" \";return e.maximum>1?t+=\"избора\":t+=\"избор\",t},noResults:function(){return\"Няма намерени съвпадения\"},searching:function(){return\"Търсене…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ca.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ca\",[],function(){return{errorLoading:function(){return\"La càrrega ha fallat\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Si us plau, elimina \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Si us plau, introdueix \"+t+\" car\";return t==1?n+=\"àcter\":n+=\"àcters\",n},loadingMore:function(){return\"Carregant més resultats…\"},maximumSelected:function(e){var t=\"Només es pot seleccionar \"+e.maximum+\" element\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No s'han trobat resultats\"},searching:function(){return\"Cercant…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/cs.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/cs\",[],function(){function e(e,t){switch(e){case 2:return t?\"dva\":\"dvě\";case 3:return\"tři\";case 4:return\"čtyři\"}return\"\"}return{errorLoading:function(){return\"Výsledky nemohly být načteny.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím zadejte o jeden znak méně\":n<=4?\"Prosím zadejte o \"+e(n,!0)+\" znaky méně\":\"Prosím zadejte o \"+n+\" znaků méně\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím zadejte ještě jeden znak\":n<=4?\"Prosím zadejte ještě další \"+e(n,!0)+\" znaky\":\"Prosím zadejte ještě dalších \"+n+\" znaků\"},loadingMore:function(){return\"Načítají se další výsledky…\"},maximumSelected:function(t){var n=t.maximum;return n==1?\"Můžete zvolit jen jednu položku\":n<=4?\"Můžete zvolit maximálně \"+e(n,!1)+\" položky\":\"Můžete zvolit maximálně \"+n+\" položek\"},noResults:function(){return\"Nenalezeny žádné položky\"},searching:function(){return\"Vyhledávání…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/da.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/da\",[],function(){return{errorLoading:function(){return\"Resultaterne kunne ikke indlæses.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Angiv venligst \"+t+\" tegn mindre\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Angiv venligst \"+t+\" tegn mere\";return n},loadingMore:function(){return\"Indlæser flere resultater…\"},maximumSelected:function(e){var t=\"Du kan kun vælge \"+e.maximum+\" emne\";return e.maximum!=1&&(t+=\"r\"),t},noResults:function(){return\"Ingen resultater fundet\"},searching:function(){return\"Søger…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/de.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/de\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Bitte \"+t+\" Zeichen weniger eingeben\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Bitte \"+t+\" Zeichen mehr eingeben\"},loadingMore:function(){return\"Lade mehr Ergebnisse…\"},maximumSelected:function(e){var t=\"Sie können nur \"+e.maximum+\" Eintr\";return e.maximum===1?t+=\"ag\":t+=\"äge\",t+=\" auswählen\",t},noResults:function(){return\"Keine Übereinstimmungen gefunden\"},searching:function(){return\"Suche…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/el.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/el\",[],function(){return{errorLoading:function(){return\"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Παρακαλώ διαγράψτε \"+t+\" χαρακτήρ\";return t==1&&(n+=\"α\"),t!=1&&(n+=\"ες\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Παρακαλώ συμπληρώστε \"+t+\" ή περισσότερους χαρακτήρες\";return n},loadingMore:function(){return\"Φόρτωση περισσότερων αποτελεσμάτων…\"},maximumSelected:function(e){var t=\"Μπορείτε να επιλέξετε μόνο \"+e.maximum+\" επιλογ\";return e.maximum==1&&(t+=\"ή\"),e.maximum!=1&&(t+=\"ές\"),t},noResults:function(){return\"Δεν βρέθηκαν αποτελέσματα\"},searching:function(){return\"Αναζήτηση…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/en.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/en\",[],function(){return{errorLoading:function(){return\"The results could not be loaded.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Please delete \"+t+\" character\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Please enter \"+t+\" or more characters\";return n},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(e){var t=\"You can only select \"+e.maximum+\" item\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No results found\"},searching:function(){return\"Searching…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/es.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/es\",[],function(){return{errorLoading:function(){return\"La carga falló\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor, elimine \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Por favor, introduzca \"+t+\" car\";return t==1?n+=\"ácter\":n+=\"acteres\",n},loadingMore:function(){return\"Cargando más resultados…\"},maximumSelected:function(e){var t=\"Sólo puede seleccionar \"+e.maximum+\" elemento\";return e.maximum!=1&&(t+=\"s\"),t},noResults:function(){return\"No se encontraron resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/et.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/et\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" vähem\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Sisesta \"+t+\" täht\";return t!=1&&(n+=\"e\"),n+=\" rohkem\",n},loadingMore:function(){return\"Laen tulemusi…\"},maximumSelected:function(e){var t=\"Saad vaid \"+e.maximum+\" tulemus\";return e.maximum==1?t+=\"e\":t+=\"t\",t+=\" valida\",t},noResults:function(){return\"Tulemused puuduvad\"},searching:function(){return\"Otsin…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/eu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/eu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gutxiago\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Idatzi \";return t==1?n+=\"karaktere bat\":n+=t+\" karaktere\",n+=\" gehiago\",n},loadingMore:function(){return\"Emaitza gehiago kargatzen…\"},maximumSelected:function(e){return e.maximum===1?\"Elementu bakarra hauta dezakezu\":e.maximum+\" elementu hauta ditzakezu soilik\"},noResults:function(){return\"Ez da bat datorrenik aurkitu\"},searching:function(){return\"Bilatzen…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/fa.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fa\",[],function(){return{errorLoading:function(){return\"امکان بارگذاری نتایج وجود ندارد.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"لطفاً \"+t+\" کاراکتر را حذف نمایید\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"لطفاً تعداد \"+t+\" کاراکتر یا بیشتر وارد نمایید\";return n},loadingMore:function(){return\"در حال بارگذاری نتایج بیشتر...\"},maximumSelected:function(e){var t=\"شما تنها می‌توانید \"+e.maximum+\" آیتم را انتخاب نمایید\";return t},noResults:function(){return\"هیچ نتیجه‌ای یافت نشد\"},searching:function(){return\"در حال جستجو...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/fi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Ole hyvä ja anna \"+t+\" merkkiä vähemmän\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Ole hyvä ja anna \"+t+\" merkkiä lisää\"},loadingMore:function(){return\"Ladataan lisää tuloksia…\"},maximumSelected:function(e){return\"Voit valita ainoastaan \"+e.maximum+\" kpl\"},noResults:function(){return\"Ei tuloksia\"},searching:function(){}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/fr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/fr\",[],function(){return{errorLoading:function(){return\"Les résultats ne peuvent pas être chargés.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Supprimez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Saisissez \"+t+\" caractère\";return t!==1&&(n+=\"s\"),n},loadingMore:function(){return\"Chargement de résultats supplémentaires…\"},maximumSelected:function(e){var t=\"Vous pouvez seulement sélectionner \"+e.maximum+\" élément\";return e.maximum!==1&&(t+=\"s\"),t},noResults:function(){return\"Aucun résultat trouvé\"},searching:function(){return\"Recherche en cours…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/gl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/gl\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Elimine \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Engada \";return t===1?n+=\"un carácter\":n+=t+\" caracteres\",n},loadingMore:function(){return\"Cargando máis resultados…\"},maximumSelected:function(e){var t=\"Só pode \";return e.maximum===1?t+=\"un elemento\":t+=e.maximum+\" elementos\",t},noResults:function(){return\"Non se atoparon resultados\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/he.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/he\",[],function(){return{errorLoading:function(){return\"שגיאה בטעינת התוצאות\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"נא למחוק \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"נא להכניס \";return t===1?n+=\"תו אחד\":n+=t+\" תווים\",n+=\" או יותר\",n},loadingMore:function(){return\"טוען תוצאות נוספות…\"},maximumSelected:function(e){var t=\"באפשרותך לבחור עד \";return e.maximum===1?t+=\"פריט אחד\":t+=e.maximum+\" פריטים\",t},noResults:function(){return\"לא נמצאו תוצאות\"},searching:function(){return\"מחפש…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/hi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hi\",[],function(){return{errorLoading:function(){return\"परिणामों को लोड नहीं किया जा सका।\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" अक्षर को हटा दें\";return t>1&&(n=t+\" अक्षरों को हटा दें \"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"कृपया \"+t+\" या अधिक अक्षर दर्ज करें\";return n},loadingMore:function(){return\"अधिक परिणाम लोड हो रहे है...\"},maximumSelected:function(e){var t=\"आप केवल \"+e.maximum+\" आइटम का चयन कर सकते हैं\";return t},noResults:function(){return\"कोई परिणाम नहीं मिला\"},searching:function(){return\"खोज रहा है...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/hr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hr\",[],function(){function e(e){var t=\" \"+e+\" znak\";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+=\"a\"):t+=\"ova\",t}return{errorLoading:function(){return\"Preuzimanje nije uspjelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Unesite \"+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return\"Unesite još \"+e(n)},loadingMore:function(){return\"Učitavanje rezultata…\"},maximumSelected:function(e){return\"Maksimalan broj odabranih stavki je \"+e.maximum},noResults:function(){return\"Nema rezultata\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/hu.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/hu\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Túl hosszú. \"+t+\" karakterrel több, mint kellene.\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Túl rövid. Még \"+t+\" karakter hiányzik.\"},loadingMore:function(){return\"Töltés…\"},maximumSelected:function(e){return\"Csak \"+e.maximum+\" elemet lehet kiválasztani.\"},noResults:function(){return\"Nincs találat.\"},searching:function(){return\"Keresés…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/id.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/id\",[],function(){return{errorLoading:function(){return\"Data tidak boleh diambil.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Hapuskan \"+t+\" huruf\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Masukkan \"+t+\" huruf lagi\"},loadingMore:function(){return\"Mengambil data…\"},maximumSelected:function(e){return\"Anda hanya dapat memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tidak ada data yang sesuai\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/is.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/is\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vinsamlegast styttið texta um \"+t+\" staf\";return t<=1?n:n+\"i\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vinsamlegast skrifið \"+t+\" staf\";return t>1&&(n+=\"i\"),n+=\" í viðbót\",n},loadingMore:function(){return\"Sæki fleiri niðurstöður…\"},maximumSelected:function(e){return\"Þú getur aðeins valið \"+e.maximum+\" atriði\"},noResults:function(){return\"Ekkert fannst\"},searching:function(){return\"Leita…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/it.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/it\",[],function(){return{errorLoading:function(){return\"I risultati non possono essere caricati.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Per favore cancella \"+t+\" caratter\";return t!==1?n+=\"i\":n+=\"e\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Per favore inserisci \"+t+\" o più caratteri\";return n},loadingMore:function(){return\"Caricando più risultati…\"},maximumSelected:function(e){var t=\"Puoi selezionare solo \"+e.maximum+\" element\";return e.maximum!==1?t+=\"i\":t+=\"o\",t},noResults:function(){return\"Nessun risultato trovato\"},searching:function(){return\"Sto cercando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ja.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ja\",[],function(){return{errorLoading:function(){return\"結果が読み込まれませんでした\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" 文字を削除してください\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"少なくとも \"+t+\" 文字を入力してください\";return n},loadingMore:function(){return\"読み込み中…\"},maximumSelected:function(e){var t=e.maximum+\" 件しか選択できません\";return t},noResults:function(){return\"対象が見つかりません\"},searching:function(){return\"検索しています…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/km.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/km\",[],function(){return{errorLoading:function(){return\"មិនអាចទាញយកទិន្នន័យ\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"សូមលុបចេញ  \"+t+\" អក្សរ\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"សូមបញ្ចូល\"+t+\" អក្សរ រឺ ច្រើនជាងនេះ\";return n},loadingMore:function(){return\"កំពុងទាញយកទិន្នន័យបន្ថែម...\"},maximumSelected:function(e){var t=\"អ្នកអាចជ្រើសរើសបានតែ \"+e.maximum+\" ជម្រើសប៉ុណ្ណោះ\";return t},noResults:function(){return\"មិនមានលទ្ធផល\"},searching:function(){return\"កំពុងស្វែងរក...\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ko.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ko\",[],function(){return{errorLoading:function(){return\"결과를 불러올 수 없습니다.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"너무 깁니다. \"+t+\" 글자 지워주세요.\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"너무 짧습니다. \"+t+\" 글자 더 입력해주세요.\";return n},loadingMore:function(){return\"불러오는 중…\"},maximumSelected:function(e){var t=\"최대 \"+e.maximum+\"개까지만 선택 가능합니다.\";return t},noResults:function(){return\"결과가 없습니다.\"},searching:function(){return\"검색 중…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/lt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lt\",[],function(){function e(e,t,n,r){return e%10===1&&(e%100<11||e%100>19)?t:e%10>=2&&e%10<=9&&(e%100<11||e%100>19)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Pašalinkite \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Įrašykite dar \"+n+\" simbol\";return r+=e(n,\"į\",\"ius\",\"ių\"),r},loadingMore:function(){return\"Kraunama daugiau rezultatų…\"},maximumSelected:function(t){var n=\"Jūs galite pasirinkti tik \"+t.maximum+\" element\";return n+=e(t.maximum,\"ą\",\"us\",\"ų\"),n},noResults:function(){return\"Atitikmenų nerasta\"},searching:function(){return\"Ieškoma…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/lv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/lv\",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Lūdzu ievadiet par  \"+n;return r+=\" simbol\"+e(n,\"iem\",\"u\",\"iem\"),r+\" mazāk\"},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Lūdzu ievadiet vēl \"+n;return r+=\" simbol\"+e(n,\"us\",\"u\",\"us\"),r},loadingMore:function(){return\"Datu ielāde…\"},maximumSelected:function(t){var n=\"Jūs varat izvēlēties ne vairāk kā \"+t.maximum;return n+=\" element\"+e(t.maximum,\"us\",\"u\",\"us\"),n},noResults:function(){return\"Sakritību nav\"},searching:function(){return\"Meklēšana…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/mk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/mk\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Ве молиме внесете \"+e.maximum+\" помалку карактер\";return e.maximum!==1&&(n+=\"и\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Ве молиме внесете уште \"+e.maximum+\" карактер\";return e.maximum!==1&&(n+=\"и\"),n},loadingMore:function(){return\"Вчитување резултати…\"},maximumSelected:function(e){var t=\"Можете да изберете само \"+e.maximum+\" ставк\";return e.maximum===1?t+=\"а\":t+=\"и\",t},noResults:function(){return\"Нема пронајдено совпаѓања\"},searching:function(){return\"Пребарување…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ms.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ms\",[],function(){return{errorLoading:function(){return\"Keputusan tidak berjaya dimuatkan.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Sila hapuskan \"+t+\" aksara\"},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Sila masukkan \"+t+\" atau lebih aksara\"},loadingMore:function(){return\"Sedang memuatkan keputusan…\"},maximumSelected:function(e){return\"Anda hanya boleh memilih \"+e.maximum+\" pilihan\"},noResults:function(){return\"Tiada padanan yang ditemui\"},searching:function(){return\"Mencari…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/nb.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nb\",[],function(){return{errorLoading:function(){return\"Kunne ikke hente resultater.\"},inputTooLong:function(e){var t=e.input.length-e.maximum;return\"Vennligst fjern \"+t+\" tegn\"},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vennligst skriv inn \";return t>1?n+=\" flere tegn\":n+=\" tegn til\",n},loadingMore:function(){return\"Laster flere resultater…\"},maximumSelected:function(e){return\"Du kan velge maks \"+e.maximum+\" elementer\"},noResults:function(){return\"Ingen treff\"},searching:function(){return\"Søker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/nl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/nl\",[],function(){return{errorLoading:function(){return\"De resultaten konden niet worden geladen.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Gelieve \"+t+\" karakters te verwijderen\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Gelieve \"+t+\" of meer karakters in te voeren\";return n},loadingMore:function(){return\"Meer resultaten laden…\"},maximumSelected:function(e){var t=e.maximum==1?\"kan\":\"kunnen\",n=\"Er \"+t+\" maar \"+e.maximum+\" item\";return e.maximum!=1&&(n+=\"s\"),n+=\" worden geselecteerd\",n},noResults:function(){return\"Geen resultaten gevonden…\"},searching:function(){return\"Zoeken…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/pl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pl\",[],function(){var e=[\"znak\",\"znaki\",\"znaków\"],t=[\"element\",\"elementy\",\"elementów\"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return\"Nie można załadować wyników.\"},inputTooLong:function(t){var r=t.input.length-t.maximum;return\"Usuń \"+r+\" \"+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return\"Podaj przynajmniej \"+r+\" \"+n(r,e)},loadingMore:function(){return\"Trwa ładowanie…\"},maximumSelected:function(e){return\"Możesz zaznaczyć tylko \"+e.maximum+\" \"+n(e.maximum,t)},noResults:function(){return\"Brak wyników\"},searching:function(){return\"Trwa wyszukiwanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/pt-BR.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt-BR\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Apague \"+t+\" caracter\";return t!=1&&(n+=\"es\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Digite \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"Carregando mais resultados…\"},maximumSelected:function(e){var t=\"Você só pode selecionar \"+e.maximum+\" ite\";return e.maximum==1?t+=\"m\":t+=\"ns\",t},noResults:function(){return\"Nenhum resultado encontrado\"},searching:function(){return\"Buscando…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/pt.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/pt\",[],function(){return{errorLoading:function(){return\"Os resultados não puderam ser carregados.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Por favor apague \"+t+\" \";return n+=t!=1?\"caracteres\":\"carácter\",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Introduza \"+t+\" ou mais caracteres\";return n},loadingMore:function(){return\"A carregar mais resultados…\"},maximumSelected:function(e){var t=\"Apenas pode seleccionar \"+e.maximum+\" \";return t+=e.maximum!=1?\"itens\":\"item\",t},noResults:function(){return\"Sem resultados\"},searching:function(){return\"A procurar…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ro.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ro\",[],function(){return{errorLoading:function(){return\"Rezultatele nu au putut fi incărcate.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vă rugăm să ștergeți\"+t+\" caracter\";return t!==1&&(n+=\"e\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vă rugăm să introduceți \"+t+\"sau mai multe caractere\";return n},loadingMore:function(){return\"Se încarcă mai multe rezultate…\"},maximumSelected:function(e){var t=\"Aveți voie să selectați cel mult \"+e.maximum;return t+=\" element\",e.maximum!==1&&(t+=\"e\"),t},noResults:function(){return\"Nu au fost găsite rezultate\"},searching:function(){return\"Căutare…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/ru.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/ru\",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return\"Невозможно загрузить результаты\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Пожалуйста, введите на \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r+=\" меньше\",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Пожалуйста, введите еще хотя бы \"+n+\" символ\";return r+=e(n,\"\",\"a\",\"ов\"),r},loadingMore:function(){return\"Загрузка данных…\"},maximumSelected:function(t){var n=\"Вы можете выбрать не более \"+t.maximum+\" элемент\";return n+=e(t.maximum,\"\",\"a\",\"ов\"),n},noResults:function(){return\"Совпадений не найдено\"},searching:function(){return\"Поиск…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/sk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sk\",[],function(){var e={2:function(e){return e?\"dva\":\"dve\"},3:function(){return\"tri\"},4:function(){return\"štyri\"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?\"Prosím, zadajte o jeden znak menej\":n>=2&&n<=4?\"Prosím, zadajte o \"+e[n](!0)+\" znaky menej\":\"Prosím, zadajte o \"+n+\" znakov menej\"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?\"Prosím, zadajte ešte jeden znak\":n<=4?\"Prosím, zadajte ešte ďalšie \"+e[n](!0)+\" znaky\":\"Prosím, zadajte ešte ďalších \"+n+\" znakov\"},loadingMore:function(){return\"Loading more results…\"},maximumSelected:function(t){return t.maximum==1?\"Môžete zvoliť len jednu položku\":t.maximum>=2&&t.maximum<=4?\"Môžete zvoliť najviac \"+e[t.maximum](!1)+\" položky\":\"Môžete zvoliť najviac \"+t.maximum+\" položiek\"},noResults:function(){return\"Nenašli sa žiadne položky\"},searching:function(){return\"Vyhľadávanie…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/sr-Cyrl.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr-Cyrl\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Преузимање није успело.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Обришите \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Укуцајте бар још \"+n+\" симбол\";return r+=e(n,\"\",\"а\",\"а\"),r},loadingMore:function(){return\"Преузимање још резултата…\"},maximumSelected:function(t){var n=\"Можете изабрати само \"+t.maximum+\" ставк\";return n+=e(t.maximum,\"у\",\"е\",\"и\"),n},noResults:function(){return\"Ништа није пронађено\"},searching:function(){return\"Претрага…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/sr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sr\",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{errorLoading:function(){return\"Preuzimanje nije uspelo.\"},inputTooLong:function(t){var n=t.input.length-t.maximum,r=\"Obrišite \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r=\"Ukucajte bar još \"+n+\" simbol\";return r+=e(n,\"\",\"a\",\"a\"),r},loadingMore:function(){return\"Preuzimanje još rezultata…\"},maximumSelected:function(t){var n=\"Možete izabrati samo \"+t.maximum+\" stavk\";return n+=e(t.maximum,\"u\",\"e\",\"i\"),n},noResults:function(){return\"Ništa nije pronađeno\"},searching:function(){return\"Pretraga…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/sv.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/sv\",[],function(){return{errorLoading:function(){return\"Resultat kunde inte laddas.\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vänligen sudda ut \"+t+\" tecken\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vänligen skriv in \"+t+\" eller fler tecken\";return n},loadingMore:function(){return\"Laddar fler resultat…\"},maximumSelected:function(e){var t=\"Du kan max välja \"+e.maximum+\" element\";return t},noResults:function(){return\"Inga träffar\"},searching:function(){return\"Söker…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/th.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/th\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"โปรดลบออก \"+t+\" ตัวอักษร\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"โปรดพิมพ์เพิ่มอีก \"+t+\" ตัวอักษร\";return n},loadingMore:function(){return\"กำลังค้นข้อมูลเพิ่ม…\"},maximumSelected:function(e){var t=\"คุณสามารถเลือกได้ไม่เกิน \"+e.maximum+\" รายการ\";return t},noResults:function(){return\"ไม่พบข้อมูล\"},searching:function(){return\"กำลังค้นข้อมูล…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/tr.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/tr\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+\" karakter daha girmelisiniz\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"En az \"+t+\" karakter daha girmelisiniz\";return n},loadingMore:function(){return\"Daha fazla…\"},maximumSelected:function(e){var t=\"Sadece \"+e.maximum+\" seçim yapabilirsiniz\";return t},noResults:function(){return\"Sonuç bulunamadı\"},searching:function(){return\"Aranıyor…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/uk.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/uk\",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return\"Неможливо завантажити результати\"},inputTooLong:function(t){var n=t.input.length-t.maximum;return\"Будь ласка, видаліть \"+n+\" \"+e(t.maximum,\"літеру\",\"літери\",\"літер\")},inputTooShort:function(e){var t=e.minimum-e.input.length;return\"Будь ласка, введіть \"+t+\" або більше літер\"},loadingMore:function(){return\"Завантаження інших результатів…\"},maximumSelected:function(t){return\"Ви можете вибрати лише \"+t.maximum+\" \"+e(t.maximum,\"пункт\",\"пункти\",\"пунктів\")},noResults:function(){return\"Нічого не знайдено\"},searching:function(){return\"Пошук…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/vi.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/vi\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"Vui lòng nhập ít hơn \"+t+\" ký tự\";return t!=1&&(n+=\"s\"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"Vui lòng nhập nhiều hơn \"+t+' ký tự\"';return n},loadingMore:function(){return\"Đang lấy thêm kết quả…\"},maximumSelected:function(e){var t=\"Chỉ có thể chọn được \"+e.maximum+\" lựa chọn\";return t},noResults:function(){return\"Không tìm thấy kết quả\"},searching:function(){return\"Đang tìm…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/zh-CN.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-CN\",[],function(){return{errorLoading:function(){return\"无法载入结果。\"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"请删除\"+t+\"个字符\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"请再输入至少\"+t+\"个字符\";return n},loadingMore:function(){return\"载入更多结果…\"},maximumSelected:function(e){var t=\"最多只能选择\"+e.maximum+\"个项目\";return t},noResults:function(){return\"未找到结果\"},searching:function(){return\"搜索中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/old_i18n/zh-TW.js",
    "content": "/*! Select2 4.0.3 | https://github.com/select2/select2/blob/master/LICENSE.md */\n\n(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define(\"select2/i18n/zh-TW\",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=\"請刪掉\"+t+\"個字元\";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n=\"請再輸入\"+t+\"個字元\";return n},loadingMore:function(){return\"載入中…\"},maximumSelected:function(e){var t=\"你只能選擇最多\"+e.maximum+\"項\";return t},noResults:function(){return\"沒有找到相符的項目\"},searching:function(){return\"搜尋中…\"}}}),{define:e.define,require:e.require}})();"
  },
  {
    "path": "public/vendor/laravel-admin/AdminLTE/plugins/select2/select2.full.js",
    "content": "/*!\n * Select2 4.0.5\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n(function (factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(['jquery'], factory);\n    } else if (typeof module === 'object' && module.exports) {\n        // Node/CommonJS\n        module.exports = function (root, jQuery) {\n            if (jQuery === undefined) {\n                // require('jQuery') returns a factory that requires window to\n                // build a jQuery instance, we normalize how we use modules\n                // that require this pattern but the window provided is a noop\n                // if it's defined (how jquery works)\n                if (typeof window !== 'undefined') {\n                    jQuery = require('jquery');\n                }\n                else {\n                    jQuery = require('jquery')(root);\n                }\n            }\n            factory(jQuery);\n            return jQuery;\n        };\n    } else {\n        // Browser globals\n        factory(jQuery);\n    }\n} (function (jQuery) {\n    // This is needed so we can catch the AMD loader configuration and use it\n    // The inner file should be wrapped (by `banner.start.js`) in a function that\n    // returns the AMD loader references.\n    var S2 =(function () {\n        // Restore the Select2 AMD loader so it can be used\n        // Needed mostly in the language files, where the loader is not inserted\n        if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n            var S2 = jQuery.fn.select2.amd;\n        }\n        var S2;(function () { if (!S2 || !S2.requirejs) {\n            if (!S2) { S2 = {}; } else { require = S2; }\n            /**\n             * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n             * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n             */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n            /*global setTimeout: false */\n\n            var requirejs, require, define;\n            (function (undef) {\n                var main, req, makeMap, handlers,\n                    defined = {},\n                    waiting = {},\n                    config = {},\n                    defining = {},\n                    hasOwn = Object.prototype.hasOwnProperty,\n                    aps = [].slice,\n                    jsSuffixRegExp = /\\.js$/;\n\n                function hasProp(obj, prop) {\n                    return hasOwn.call(obj, prop);\n                }\n\n                /**\n                 * Given a relative module name, like ./something, normalize it to\n                 * a real name that can be mapped to a path.\n                 * @param {String} name the relative name\n                 * @param {String} baseName a real name that the name arg is relative\n                 * to.\n                 * @returns {String} normalized name\n                 */\n                function normalize(name, baseName) {\n                    var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n                        foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n                        baseParts = baseName && baseName.split(\"/\"),\n                        map = config.map,\n                        starMap = (map && map['*']) || {};\n\n                    //Adjust any relative paths.\n                    if (name) {\n                        name = name.split('/');\n                        lastIndex = name.length - 1;\n\n                        // If wanting node ID compatibility, strip .js from end\n                        // of IDs. Have to do this here, and not in nameToUrl\n                        // because node allows either .js or non .js to map\n                        // to same file.\n                        if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n                            name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n                        }\n\n                        // Starts with a '.' so need the baseName\n                        if (name[0].charAt(0) === '.' && baseParts) {\n                            //Convert baseName to array, and lop off the last part,\n                            //so that . matches that 'directory' and not name of the baseName's\n                            //module. For instance, baseName of 'one/two/three', maps to\n                            //'one/two/three.js', but we want the directory, 'one/two' for\n                            //this normalization.\n                            normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n                            name = normalizedBaseParts.concat(name);\n                        }\n\n                        //start trimDots\n                        for (i = 0; i < name.length; i++) {\n                            part = name[i];\n                            if (part === '.') {\n                                name.splice(i, 1);\n                                i -= 1;\n                            } else if (part === '..') {\n                                // If at the start, or previous value is still ..,\n                                // keep them so that when converted to a path it may\n                                // still work when converted to a path, even though\n                                // as an ID it is less than ideal. In larger point\n                                // releases, may be better to just kick out an error.\n                                if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n                                    continue;\n                                } else if (i > 0) {\n                                    name.splice(i - 1, 2);\n                                    i -= 2;\n                                }\n                            }\n                        }\n                        //end trimDots\n\n                        name = name.join('/');\n                    }\n\n                    //Apply map config if available.\n                    if ((baseParts || starMap) && map) {\n                        nameParts = name.split('/');\n\n                        for (i = nameParts.length; i > 0; i -= 1) {\n                            nameSegment = nameParts.slice(0, i).join(\"/\");\n\n                            if (baseParts) {\n                                //Find the longest baseName segment match in the config.\n                                //So, do joins on the biggest to smallest lengths of baseParts.\n                                for (j = baseParts.length; j > 0; j -= 1) {\n                                    mapValue = map[baseParts.slice(0, j).join('/')];\n\n                                    //baseName segment has  config, find if it has one for\n                                    //this name.\n                                    if (mapValue) {\n                                        mapValue = mapValue[nameSegment];\n                                        if (mapValue) {\n                                            //Match, update name to the new value.\n                                            foundMap = mapValue;\n                                            foundI = i;\n                                            break;\n                                        }\n                                    }\n                                }\n                            }\n\n                            if (foundMap) {\n                                break;\n                            }\n\n                            //Check for a star map match, but just hold on to it,\n                            //if there is a shorter segment match later in a matching\n                            //config, then favor over this star map.\n                            if (!foundStarMap && starMap && starMap[nameSegment]) {\n                                foundStarMap = starMap[nameSegment];\n                                starI = i;\n                            }\n                        }\n\n                        if (!foundMap && foundStarMap) {\n                            foundMap = foundStarMap;\n                            foundI = starI;\n                        }\n\n                        if (foundMap) {\n                            nameParts.splice(0, foundI, foundMap);\n                            name = nameParts.join('/');\n                        }\n                    }\n\n                    return name;\n                }\n\n                function makeRequire(relName, forceSync) {\n                    return function () {\n                        //A version of a require function that passes a moduleName\n                        //value for items that may need to\n                        //look up paths relative to the moduleName\n                        var args = aps.call(arguments, 0);\n\n                        //If first arg is not require('string'), and there is only\n                        //one arg, it is the array form without a callback. Insert\n                        //a null so that the following concat is correct.\n                        if (typeof args[0] !== 'string' && args.length === 1) {\n                            args.push(null);\n                        }\n                        return req.apply(undef, args.concat([relName, forceSync]));\n                    };\n                }\n\n                function makeNormalize(relName) {\n                    return function (name) {\n                        return normalize(name, relName);\n                    };\n                }\n\n                function makeLoad(depName) {\n                    return function (value) {\n                        defined[depName] = value;\n                    };\n                }\n\n                function callDep(name) {\n                    if (hasProp(waiting, name)) {\n                        var args = waiting[name];\n                        delete waiting[name];\n                        defining[name] = true;\n                        main.apply(undef, args);\n                    }\n\n                    if (!hasProp(defined, name) && !hasProp(defining, name)) {\n                        throw new Error('No ' + name);\n                    }\n                    return defined[name];\n                }\n\n                //Turns a plugin!resource to [plugin, resource]\n                //with the plugin being undefined if the name\n                //did not have a plugin prefix.\n                function splitPrefix(name) {\n                    var prefix,\n                        index = name ? name.indexOf('!') : -1;\n                    if (index > -1) {\n                        prefix = name.substring(0, index);\n                        name = name.substring(index + 1, name.length);\n                    }\n                    return [prefix, name];\n                }\n\n                //Creates a parts array for a relName where first part is plugin ID,\n                //second part is resource ID. Assumes relName has already been normalized.\n                function makeRelParts(relName) {\n                    return relName ? splitPrefix(relName) : [];\n                }\n\n                /**\n                 * Makes a name map, normalizing the name, and using a plugin\n                 * for normalization if necessary. Grabs a ref to plugin\n                 * too, as an optimization.\n                 */\n                makeMap = function (name, relParts) {\n                    var plugin,\n                        parts = splitPrefix(name),\n                        prefix = parts[0],\n                        relResourceName = relParts[1];\n\n                    name = parts[1];\n\n                    if (prefix) {\n                        prefix = normalize(prefix, relResourceName);\n                        plugin = callDep(prefix);\n                    }\n\n                    //Normalize according\n                    if (prefix) {\n                        if (plugin && plugin.normalize) {\n                            name = plugin.normalize(name, makeNormalize(relResourceName));\n                        } else {\n                            name = normalize(name, relResourceName);\n                        }\n                    } else {\n                        name = normalize(name, relResourceName);\n                        parts = splitPrefix(name);\n                        prefix = parts[0];\n                        name = parts[1];\n                        if (prefix) {\n                            plugin = callDep(prefix);\n                        }\n                    }\n\n                    //Using ridiculous property names for space reasons\n                    return {\n                        f: prefix ? prefix + '!' + name : name, //fullName\n                        n: name,\n                        pr: prefix,\n                        p: plugin\n                    };\n                };\n\n                function makeConfig(name) {\n                    return function () {\n                        return (config && config.config && config.config[name]) || {};\n                    };\n                }\n\n                handlers = {\n                    require: function (name) {\n                        return makeRequire(name);\n                    },\n                    exports: function (name) {\n                        var e = defined[name];\n                        if (typeof e !== 'undefined') {\n                            return e;\n                        } else {\n                            return (defined[name] = {});\n                        }\n                    },\n                    module: function (name) {\n                        return {\n                            id: name,\n                            uri: '',\n                            exports: defined[name],\n                            config: makeConfig(name)\n                        };\n                    }\n                };\n\n                main = function (name, deps, callback, relName) {\n                    var cjsModule, depName, ret, map, i, relParts,\n                        args = [],\n                        callbackType = typeof callback,\n                        usingExports;\n\n                    //Use name if no relName\n                    relName = relName || name;\n                    relParts = makeRelParts(relName);\n\n                    //Call the callback to define the module, if necessary.\n                    if (callbackType === 'undefined' || callbackType === 'function') {\n                        //Pull out the defined dependencies and pass the ordered\n                        //values to the callback.\n                        //Default to [require, exports, module] if no deps\n                        deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n                        for (i = 0; i < deps.length; i += 1) {\n                            map = makeMap(deps[i], relParts);\n                            depName = map.f;\n\n                            //Fast path CommonJS standard dependencies.\n                            if (depName === \"require\") {\n                                args[i] = handlers.require(name);\n                            } else if (depName === \"exports\") {\n                                //CommonJS module spec 1.1\n                                args[i] = handlers.exports(name);\n                                usingExports = true;\n                            } else if (depName === \"module\") {\n                                //CommonJS module spec 1.1\n                                cjsModule = args[i] = handlers.module(name);\n                            } else if (hasProp(defined, depName) ||\n                                hasProp(waiting, depName) ||\n                                hasProp(defining, depName)) {\n                                args[i] = callDep(depName);\n                            } else if (map.p) {\n                                map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n                                args[i] = defined[depName];\n                            } else {\n                                throw new Error(name + ' missing ' + depName);\n                            }\n                        }\n\n                        ret = callback ? callback.apply(defined[name], args) : undefined;\n\n                        if (name) {\n                            //If setting exports via \"module\" is in play,\n                            //favor that over return value and exports. After that,\n                            //favor a non-undefined return value over exports use.\n                            if (cjsModule && cjsModule.exports !== undef &&\n                                cjsModule.exports !== defined[name]) {\n                                defined[name] = cjsModule.exports;\n                            } else if (ret !== undef || !usingExports) {\n                                //Use the return value from the function.\n                                defined[name] = ret;\n                            }\n                        }\n                    } else if (name) {\n                        //May just be an object definition for the module. Only\n                        //worry about defining if have a module name.\n                        defined[name] = callback;\n                    }\n                };\n\n                requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n                    if (typeof deps === \"string\") {\n                        if (handlers[deps]) {\n                            //callback in this case is really relName\n                            return handlers[deps](callback);\n                        }\n                        //Just return the module wanted. In this scenario, the\n                        //deps arg is the module name, and second arg (if passed)\n                        //is just the relName.\n                        //Normalize module name, if it contains . or ..\n                        return callDep(makeMap(deps, makeRelParts(callback)).f);\n                    } else if (!deps.splice) {\n                        //deps is a config object, not an array.\n                        config = deps;\n                        if (config.deps) {\n                            req(config.deps, config.callback);\n                        }\n                        if (!callback) {\n                            return;\n                        }\n\n                        if (callback.splice) {\n                            //callback is an array, which means it is a dependency list.\n                            //Adjust args if there are dependencies\n                            deps = callback;\n                            callback = relName;\n                            relName = null;\n                        } else {\n                            deps = undef;\n                        }\n                    }\n\n                    //Support require(['a'])\n                    callback = callback || function () {};\n\n                    //If relName is a function, it is an errback handler,\n                    //so remove it.\n                    if (typeof relName === 'function') {\n                        relName = forceSync;\n                        forceSync = alt;\n                    }\n\n                    //Simulate async callback;\n                    if (forceSync) {\n                        main(undef, deps, callback, relName);\n                    } else {\n                        //Using a non-zero value because of concern for what old browsers\n                        //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n                        //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n                        //If want a value immediately, use require('id') instead -- something\n                        //that works in almond on the global level, but not guaranteed and\n                        //unlikely to work in other AMD implementations.\n                        setTimeout(function () {\n                            main(undef, deps, callback, relName);\n                        }, 4);\n                    }\n\n                    return req;\n                };\n\n                /**\n                 * Just drops the config on the floor, but returns req in case\n                 * the config return value is used.\n                 */\n                req.config = function (cfg) {\n                    return req(cfg);\n                };\n\n                /**\n                 * Expose module registry for debugging and tooling\n                 */\n                requirejs._defined = defined;\n\n                define = function (name, deps, callback) {\n                    if (typeof name !== 'string') {\n                        throw new Error('See almond README: incorrect module build, no module name');\n                    }\n\n                    //This module may not have dependencies\n                    if (!deps.splice) {\n                        //deps is not an array, so probably means\n                        //an object literal or factory function for\n                        //the value. Adjust args.\n                        callback = deps;\n                        deps = [];\n                    }\n\n                    if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n                        waiting[name] = [name, deps, callback];\n                    }\n                };\n\n                define.amd = {\n                    jQuery: true\n                };\n            }());\n\n            S2.requirejs = requirejs;S2.require = require;S2.define = define;\n        }\n        }());\n        S2.define(\"almond\", function(){});\n\n        /* global jQuery:false, $:false */\n        S2.define('jquery',[],function () {\n            var _$ = jQuery || $;\n\n            if (_$ == null && console && console.error) {\n                console.error(\n                    'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n                    'found. Make sure that you are including jQuery before Select2 on your ' +\n                    'web page.'\n                );\n            }\n\n            return _$;\n        });\n\n        S2.define('select2/utils',[\n            'jquery'\n        ], function ($) {\n            var Utils = {};\n\n            Utils.Extend = function (ChildClass, SuperClass) {\n                var __hasProp = {}.hasOwnProperty;\n\n                function BaseConstructor () {\n                    this.constructor = ChildClass;\n                }\n\n                for (var key in SuperClass) {\n                    if (__hasProp.call(SuperClass, key)) {\n                        ChildClass[key] = SuperClass[key];\n                    }\n                }\n\n                BaseConstructor.prototype = SuperClass.prototype;\n                ChildClass.prototype = new BaseConstructor();\n                ChildClass.__super__ = SuperClass.prototype;\n\n                return ChildClass;\n            };\n\n            function getMethods (theClass) {\n                var proto = theClass.prototype;\n\n                var methods = [];\n\n                for (var methodName in proto) {\n                    var m = proto[methodName];\n\n                    if (typeof m !== 'function') {\n                        continue;\n                    }\n\n                    if (methodName === 'constructor') {\n                        continue;\n                    }\n\n                    methods.push(methodName);\n                }\n\n                return methods;\n            }\n\n            Utils.Decorate = function (SuperClass, DecoratorClass) {\n                var decoratedMethods = getMethods(DecoratorClass);\n                var superMethods = getMethods(SuperClass);\n\n                function DecoratedClass () {\n                    var unshift = Array.prototype.unshift;\n\n                    var argCount = DecoratorClass.prototype.constructor.length;\n\n                    var calledConstructor = SuperClass.prototype.constructor;\n\n                    if (argCount > 0) {\n                        unshift.call(arguments, SuperClass.prototype.constructor);\n\n                        calledConstructor = DecoratorClass.prototype.constructor;\n                    }\n\n                    calledConstructor.apply(this, arguments);\n                }\n\n                DecoratorClass.displayName = SuperClass.displayName;\n\n                function ctr () {\n                    this.constructor = DecoratedClass;\n                }\n\n                DecoratedClass.prototype = new ctr();\n\n                for (var m = 0; m < superMethods.length; m++) {\n                    var superMethod = superMethods[m];\n\n                    DecoratedClass.prototype[superMethod] =\n                        SuperClass.prototype[superMethod];\n                }\n\n                var calledMethod = function (methodName) {\n                    // Stub out the original method if it's not decorating an actual method\n                    var originalMethod = function () {};\n\n                    if (methodName in DecoratedClass.prototype) {\n                        originalMethod = DecoratedClass.prototype[methodName];\n                    }\n\n                    var decoratedMethod = DecoratorClass.prototype[methodName];\n\n                    return function () {\n                        var unshift = Array.prototype.unshift;\n\n                        unshift.call(arguments, originalMethod);\n\n                        return decoratedMethod.apply(this, arguments);\n                    };\n                };\n\n                for (var d = 0; d < decoratedMethods.length; d++) {\n                    var decoratedMethod = decoratedMethods[d];\n\n                    DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n                }\n\n                return DecoratedClass;\n            };\n\n            var Observable = function () {\n                this.listeners = {};\n            };\n\n            Observable.prototype.on = function (event, callback) {\n                this.listeners = this.listeners || {};\n\n                if (event in this.listeners) {\n                    this.listeners[event].push(callback);\n                } else {\n                    this.listeners[event] = [callback];\n                }\n            };\n\n            Observable.prototype.trigger = function (event) {\n                var slice = Array.prototype.slice;\n                var params = slice.call(arguments, 1);\n\n                this.listeners = this.listeners || {};\n\n                // Params should always come in as an array\n                if (params == null) {\n                    params = [];\n                }\n\n                // If there are no arguments to the event, use a temporary object\n                if (params.length === 0) {\n                    params.push({});\n                }\n\n                // Set the `_type` of the first object to the event\n                params[0]._type = event;\n\n                if (event in this.listeners) {\n                    this.invoke(this.listeners[event], slice.call(arguments, 1));\n                }\n\n                if ('*' in this.listeners) {\n                    this.invoke(this.listeners['*'], arguments);\n                }\n            };\n\n            Observable.prototype.invoke = function (listeners, params) {\n                for (var i = 0, len = listeners.length; i < len; i++) {\n                    listeners[i].apply(this, params);\n                }\n            };\n\n            Utils.Observable = Observable;\n\n            Utils.generateChars = function (length) {\n                var chars = '';\n\n                for (var i = 0; i < length; i++) {\n                    var randomChar = Math.floor(Math.random() * 36);\n                    chars += randomChar.toString(36);\n                }\n\n                return chars;\n            };\n\n            Utils.bind = function (func, context) {\n                return function () {\n                    func.apply(context, arguments);\n                };\n            };\n\n            Utils._convertData = function (data) {\n                for (var originalKey in data) {\n                    var keys = originalKey.split('-');\n\n                    var dataLevel = data;\n\n                    if (keys.length === 1) {\n                        continue;\n                    }\n\n                    for (var k = 0; k < keys.length; k++) {\n                        var key = keys[k];\n\n                        // Lowercase the first letter\n                        // By default, dash-separated becomes camelCase\n                        key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n                        if (!(key in dataLevel)) {\n                            dataLevel[key] = {};\n                        }\n\n                        if (k == keys.length - 1) {\n                            dataLevel[key] = data[originalKey];\n                        }\n\n                        dataLevel = dataLevel[key];\n                    }\n\n                    delete data[originalKey];\n                }\n\n                return data;\n            };\n\n            Utils.hasScroll = function (index, el) {\n                // Adapted from the function created by @ShadowScripter\n                // and adapted by @BillBarry on the Stack Exchange Code Review website.\n                // The original code can be found at\n                // http://codereview.stackexchange.com/q/13338\n                // and was designed to be used with the Sizzle selector engine.\n\n                var $el = $(el);\n                var overflowX = el.style.overflowX;\n                var overflowY = el.style.overflowY;\n\n                //Check both x and y declarations\n                if (overflowX === overflowY &&\n                    (overflowY === 'hidden' || overflowY === 'visible')) {\n                    return false;\n                }\n\n                if (overflowX === 'scroll' || overflowY === 'scroll') {\n                    return true;\n                }\n\n                return ($el.innerHeight() < el.scrollHeight ||\n                    $el.innerWidth() < el.scrollWidth);\n            };\n\n            Utils.escapeMarkup = function (markup) {\n                var replaceMap = {\n                    '\\\\': '&#92;',\n                    '&': '&amp;',\n                    '<': '&lt;',\n                    '>': '&gt;',\n                    '\"': '&quot;',\n                    '\\'': '&#39;',\n                    '/': '&#47;'\n                };\n\n                // Do not try to escape the markup if it's not a string\n                if (typeof markup !== 'string') {\n                    return markup;\n                }\n\n                return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n                    return replaceMap[match];\n                });\n            };\n\n            // Append an array of jQuery nodes to a given element.\n            Utils.appendMany = function ($element, $nodes) {\n                // jQuery 1.7.x does not support $.fn.append() with an array\n                // Fall back to a jQuery object collection using $.fn.add()\n                if ($.fn.jquery.substr(0, 3) === '1.7') {\n                    var $jqNodes = $();\n\n                    $.map($nodes, function (node) {\n                        $jqNodes = $jqNodes.add(node);\n                    });\n\n                    $nodes = $jqNodes;\n                }\n\n                $element.append($nodes);\n            };\n\n            return Utils;\n        });\n\n        S2.define('select2/results',[\n            'jquery',\n            './utils'\n        ], function ($, Utils) {\n            function Results ($element, options, dataAdapter) {\n                this.$element = $element;\n                this.data = dataAdapter;\n                this.options = options;\n\n                Results.__super__.constructor.call(this);\n            }\n\n            Utils.Extend(Results, Utils.Observable);\n\n            Results.prototype.render = function () {\n                var $results = $(\n                    '<ul class=\"select2-results__options\" role=\"tree\"></ul>'\n                );\n\n                if (this.options.get('multiple')) {\n                    $results.attr('aria-multiselectable', 'true');\n                }\n\n                this.$results = $results;\n\n                return $results;\n            };\n\n            Results.prototype.clear = function () {\n                this.$results.empty();\n            };\n\n            Results.prototype.displayMessage = function (params) {\n                var escapeMarkup = this.options.get('escapeMarkup');\n\n                this.clear();\n                this.hideLoading();\n\n                var $message = $(\n                    '<li role=\"treeitem\" aria-live=\"assertive\"' +\n                    ' class=\"select2-results__option\"></li>'\n                );\n\n                var message = this.options.get('translations').get(params.message);\n\n                $message.append(\n                    escapeMarkup(\n                        message(params.args)\n                    )\n                );\n\n                $message[0].className += ' select2-results__message';\n\n                this.$results.append($message);\n            };\n\n            Results.prototype.hideMessages = function () {\n                this.$results.find('.select2-results__message').remove();\n            };\n\n            Results.prototype.append = function (data) {\n                this.hideLoading();\n\n                var $options = [];\n\n                if (data.results == null || data.results.length === 0) {\n                    if (this.$results.children().length === 0) {\n                        this.trigger('results:message', {\n                            message: 'noResults'\n                        });\n                    }\n\n                    return;\n                }\n\n                data.results = this.sort(data.results);\n\n                for (var d = 0; d < data.results.length; d++) {\n                    var item = data.results[d];\n\n                    var $option = this.option(item);\n\n                    $options.push($option);\n                }\n\n                this.$results.append($options);\n            };\n\n            Results.prototype.position = function ($results, $dropdown) {\n                var $resultsContainer = $dropdown.find('.select2-results');\n                $resultsContainer.append($results);\n            };\n\n            Results.prototype.sort = function (data) {\n                var sorter = this.options.get('sorter');\n\n                return sorter(data);\n            };\n\n            Results.prototype.highlightFirstItem = function () {\n                var $options = this.$results\n                    .find('.select2-results__option[aria-selected]');\n\n                var $selected = $options.filter('[aria-selected=true]');\n\n                // Check if there are any selected options\n                if ($selected.length > 0) {\n                    // If there are selected options, highlight the first\n                    $selected.first().trigger('mouseenter');\n                } else {\n                    // If there are no selected options, highlight the first option\n                    // in the dropdown\n                    $options.first().trigger('mouseenter');\n                }\n\n                this.ensureHighlightVisible();\n            };\n\n            Results.prototype.setClasses = function () {\n                var self = this;\n\n                this.data.current(function (selected) {\n                    var selectedIds = $.map(selected, function (s) {\n                        return s.id.toString();\n                    });\n\n                    var $options = self.$results\n                        .find('.select2-results__option[aria-selected]');\n\n                    $options.each(function () {\n                        var $option = $(this);\n\n                        var item = $.data(this, 'data');\n\n                        // id needs to be converted to a string when comparing\n                        var id = '' + item.id;\n\n                        if ((item.element != null && item.element.selected) ||\n                            (item.element == null && $.inArray(id, selectedIds) > -1)) {\n                            $option.attr('aria-selected', 'true');\n                        } else {\n                            $option.attr('aria-selected', 'false');\n                        }\n                    });\n\n                });\n            };\n\n            Results.prototype.showLoading = function (params) {\n                this.hideLoading();\n\n                var loadingMore = this.options.get('translations').get('searching');\n\n                var loading = {\n                    disabled: true,\n                    loading: true,\n                    text: loadingMore(params)\n                };\n                var $loading = this.option(loading);\n                $loading.className += ' loading-results';\n\n                this.$results.prepend($loading);\n            };\n\n            Results.prototype.hideLoading = function () {\n                this.$results.find('.loading-results').remove();\n            };\n\n            Results.prototype.option = function (data) {\n                var option = document.createElement('li');\n                option.className = 'select2-results__option';\n\n                var attrs = {\n                    'role': 'treeitem',\n                    'aria-selected': 'false'\n                };\n\n                if (data.disabled) {\n                    delete attrs['aria-selected'];\n                    attrs['aria-disabled'] = 'true';\n                }\n\n                if (data.id == null) {\n                    delete attrs['aria-selected'];\n                }\n\n                if (data._resultId != null) {\n                    option.id = data._resultId;\n                }\n\n                if (data.title) {\n                    option.title = data.title;\n                }\n\n                if (data.children) {\n                    attrs.role = 'group';\n                    attrs['aria-label'] = data.text;\n                    delete attrs['aria-selected'];\n                }\n\n                for (var attr in attrs) {\n                    var val = attrs[attr];\n\n                    option.setAttribute(attr, val);\n                }\n\n                if (data.children) {\n                    var $option = $(option);\n\n                    var label = document.createElement('strong');\n                    label.className = 'select2-results__group';\n\n                    var $label = $(label);\n                    this.template(data, label);\n\n                    var $children = [];\n\n                    for (var c = 0; c < data.children.length; c++) {\n                        var child = data.children[c];\n\n                        var $child = this.option(child);\n\n                        $children.push($child);\n                    }\n\n                    var $childrenContainer = $('<ul></ul>', {\n                        'class': 'select2-results__options select2-results__options--nested'\n                    });\n\n                    $childrenContainer.append($children);\n\n                    $option.append(label);\n                    $option.append($childrenContainer);\n                } else {\n                    this.template(data, option);\n                }\n\n                $.data(option, 'data', data);\n\n                return option;\n            };\n\n            Results.prototype.bind = function (container, $container) {\n                var self = this;\n\n                var id = container.id + '-results';\n\n                this.$results.attr('id', id);\n\n                container.on('results:all', function (params) {\n                    self.clear();\n                    self.append(params.data);\n\n                    if (container.isOpen()) {\n                        self.setClasses();\n                        self.highlightFirstItem();\n                    }\n                });\n\n                container.on('results:append', function (params) {\n                    self.append(params.data);\n\n                    if (container.isOpen()) {\n                        self.setClasses();\n                    }\n                });\n\n                container.on('query', function (params) {\n                    self.hideMessages();\n                    self.showLoading(params);\n                });\n\n                container.on('select', function () {\n                    if (!container.isOpen()) {\n                        return;\n                    }\n\n                    self.setClasses();\n                    self.highlightFirstItem();\n                });\n\n                container.on('unselect', function () {\n                    if (!container.isOpen()) {\n                        return;\n                    }\n\n                    self.setClasses();\n                    self.highlightFirstItem();\n                });\n\n                container.on('open', function () {\n                    // When the dropdown is open, aria-expended=\"true\"\n                    self.$results.attr('aria-expanded', 'true');\n                    self.$results.attr('aria-hidden', 'false');\n\n                    self.setClasses();\n                    self.ensureHighlightVisible();\n                });\n\n                container.on('close', function () {\n                    // When the dropdown is closed, aria-expended=\"false\"\n                    self.$results.attr('aria-expanded', 'false');\n                    self.$results.attr('aria-hidden', 'true');\n                    self.$results.removeAttr('aria-activedescendant');\n                });\n\n                container.on('results:toggle', function () {\n                    var $highlighted = self.getHighlightedResults();\n\n                    if ($highlighted.length === 0) {\n                        return;\n                    }\n\n                    $highlighted.trigger('mouseup');\n                });\n\n                container.on('results:select', function () {\n                    var $highlighted = self.getHighlightedResults();\n\n                    if ($highlighted.length === 0) {\n                        return;\n                    }\n\n                    var data = $highlighted.data('data');\n\n                    if ($highlighted.attr('aria-selected') == 'true') {\n                        self.trigger('close', {});\n                    } else {\n                        self.trigger('select', {\n                            data: data\n                        });\n                    }\n                });\n\n                container.on('results:previous', function () {\n                    var $highlighted = self.getHighlightedResults();\n\n                    var $options = self.$results.find('[aria-selected]');\n\n                    var currentIndex = $options.index($highlighted);\n\n                    // If we are already at te top, don't move further\n                    if (currentIndex === 0) {\n                        return;\n                    }\n\n                    var nextIndex = currentIndex - 1;\n\n                    // If none are highlighted, highlight the first\n                    if ($highlighted.length === 0) {\n                        nextIndex = 0;\n                    }\n\n                    var $next = $options.eq(nextIndex);\n\n                    $next.trigger('mouseenter');\n\n                    var currentOffset = self.$results.offset().top;\n                    var nextTop = $next.offset().top;\n                    var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n                    if (nextIndex === 0) {\n                        self.$results.scrollTop(0);\n                    } else if (nextTop - currentOffset < 0) {\n                        self.$results.scrollTop(nextOffset);\n                    }\n                });\n\n                container.on('results:next', function () {\n                    var $highlighted = self.getHighlightedResults();\n\n                    var $options = self.$results.find('[aria-selected]');\n\n                    var currentIndex = $options.index($highlighted);\n\n                    var nextIndex = currentIndex + 1;\n\n                    // If we are at the last option, stay there\n                    if (nextIndex >= $options.length) {\n                        return;\n                    }\n\n                    var $next = $options.eq(nextIndex);\n\n                    $next.trigger('mouseenter');\n\n                    var currentOffset = self.$results.offset().top +\n                        self.$results.outerHeight(false);\n                    var nextBottom = $next.offset().top + $next.outerHeight(false);\n                    var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n                    if (nextIndex === 0) {\n                        self.$results.scrollTop(0);\n                    } else if (nextBottom > currentOffset) {\n                        self.$results.scrollTop(nextOffset);\n                    }\n                });\n\n                container.on('results:focus', function (params) {\n                    params.element.addClass('select2-results__option--highlighted');\n                });\n\n                container.on('results:message', function (params) {\n                    self.displayMessage(params);\n                });\n\n                if ($.fn.mousewheel) {\n                    this.$results.on('mousewheel', function (e) {\n                        var top = self.$results.scrollTop();\n\n                        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n                        var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n                        var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n                        if (isAtTop) {\n                            self.$results.scrollTop(0);\n\n                            e.preventDefault();\n                            e.stopPropagation();\n                        } else if (isAtBottom) {\n                            self.$results.scrollTop(\n                                self.$results.get(0).scrollHeight - self.$results.height()\n                            );\n\n                            e.preventDefault();\n                            e.stopPropagation();\n                        }\n                    });\n                }\n\n                this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n                    function (evt) {\n                        var $this = $(this);\n\n                        var data = $this.data('data');\n\n                        if ($this.attr('aria-selected') === 'true') {\n                            if (self.options.get('multiple')) {\n                                self.trigger('unselect', {\n                                    originalEvent: evt,\n                                    data: data\n                                });\n                            } else {\n                                self.trigger('close', {});\n                            }\n\n                            return;\n                        }\n\n                        self.trigger('select', {\n                            originalEvent: evt,\n                            data: data\n                        });\n                    });\n\n                this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n                    function (evt) {\n                        var data = $(this).data('data');\n\n                        self.getHighlightedResults()\n                            .removeClass('select2-results__option--highlighted');\n\n                        self.trigger('results:focus', {\n                            data: data,\n                            element: $(this)\n                        });\n                    });\n            };\n\n            Results.prototype.getHighlightedResults = function () {\n                var $highlighted = this.$results\n                    .find('.select2-results__option--highlighted');\n\n                return $highlighted;\n            };\n\n            Results.prototype.destroy = function () {\n                this.$results.remove();\n            };\n\n            Results.prototype.ensureHighlightVisible = function () {\n                var $highlighted = this.getHighlightedResults();\n\n                if ($highlighted.length === 0) {\n                    return;\n                }\n\n                var $options = this.$results.find('[aria-selected]');\n\n                var currentIndex = $options.index($highlighted);\n\n                var currentOffset = this.$results.offset().top;\n                var nextTop = $highlighted.offset().top;\n                var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n                var offsetDelta = nextTop - currentOffset;\n                nextOffset -= $highlighted.outerHeight(false) * 2;\n\n                if (currentIndex <= 2) {\n                    this.$results.scrollTop(0);\n                } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n                    this.$results.scrollTop(nextOffset);\n                }\n            };\n\n            Results.prototype.template = function (result, container) {\n                var template = this.options.get('templateResult');\n                var escapeMarkup = this.options.get('escapeMarkup');\n\n                var content = template(result, container);\n\n                if (content == null) {\n                    container.style.display = 'none';\n                } else if (typeof content === 'string') {\n                    container.innerHTML = escapeMarkup(content);\n                } else {\n                    $(container).append(content);\n                }\n            };\n\n            return Results;\n        });\n\n        S2.define('select2/keys',[\n\n        ], function () {\n            var KEYS = {\n                BACKSPACE: 8,\n                TAB: 9,\n                ENTER: 13,\n                SHIFT: 16,\n                CTRL: 17,\n                ALT: 18,\n                ESC: 27,\n                SPACE: 32,\n                PAGE_UP: 33,\n                PAGE_DOWN: 34,\n                END: 35,\n                HOME: 36,\n                LEFT: 37,\n                UP: 38,\n                RIGHT: 39,\n                DOWN: 40,\n                DELETE: 46\n            };\n\n            return KEYS;\n        });\n\n        S2.define('select2/selection/base',[\n            'jquery',\n            '../utils',\n            '../keys'\n        ], function ($, Utils, KEYS) {\n            function BaseSelection ($element, options) {\n                this.$element = $element;\n                this.options = options;\n\n                BaseSelection.__super__.constructor.call(this);\n            }\n\n            Utils.Extend(BaseSelection, Utils.Observable);\n\n            BaseSelection.prototype.render = function () {\n                var $selection = $(\n                    '<span class=\"select2-selection\" role=\"combobox\" ' +\n                    ' aria-haspopup=\"true\" aria-expanded=\"false\">' +\n                    '</span>'\n                );\n\n                this._tabindex = 0;\n\n                if (this.$element.data('old-tabindex') != null) {\n                    this._tabindex = this.$element.data('old-tabindex');\n                } else if (this.$element.attr('tabindex') != null) {\n                    this._tabindex = this.$element.attr('tabindex');\n                }\n\n                $selection.attr('title', this.$element.attr('title'));\n                $selection.attr('tabindex', this._tabindex);\n\n                this.$selection = $selection;\n\n                return $selection;\n            };\n\n            BaseSelection.prototype.bind = function (container, $container) {\n                var self = this;\n\n                var id = container.id + '-container';\n                var resultsId = container.id + '-results';\n\n                this.container = container;\n\n                this.$selection.on('focus', function (evt) {\n                    self.trigger('focus', evt);\n                });\n\n                this.$selection.on('blur', function (evt) {\n                    self._handleBlur(evt);\n                });\n\n                this.$selection.on('keydown', function (evt) {\n                    self.trigger('keypress', evt);\n\n                    if (evt.which === KEYS.SPACE) {\n                        evt.preventDefault();\n                    }\n                });\n\n                container.on('results:focus', function (params) {\n                    self.$selection.attr('aria-activedescendant', params.data._resultId);\n                });\n\n                container.on('selection:update', function (params) {\n                    self.update(params.data);\n                });\n\n                container.on('open', function () {\n                    // When the dropdown is open, aria-expanded=\"true\"\n                    self.$selection.attr('aria-expanded', 'true');\n                    self.$selection.attr('aria-owns', resultsId);\n\n                    self._attachCloseHandler(container);\n                });\n\n                container.on('close', function () {\n                    // When the dropdown is closed, aria-expanded=\"false\"\n                    self.$selection.attr('aria-expanded', 'false');\n                    self.$selection.removeAttr('aria-activedescendant');\n                    self.$selection.removeAttr('aria-owns');\n\n                    self.$selection.focus();\n\n                    self._detachCloseHandler(container);\n                });\n\n                container.on('enable', function () {\n                    self.$selection.attr('tabindex', self._tabindex);\n                });\n\n                container.on('disable', function () {\n                    self.$selection.attr('tabindex', '-1');\n                });\n            };\n\n            BaseSelection.prototype._handleBlur = function (evt) {\n                var self = this;\n\n                // This needs to be delayed as the active element is the body when the tab\n                // key is pressed, possibly along with others.\n                window.setTimeout(function () {\n                    // Don't trigger `blur` if the focus is still in the selection\n                    if (\n                        (document.activeElement == self.$selection[0]) ||\n                        ($.contains(self.$selection[0], document.activeElement))\n                    ) {\n                        return;\n                    }\n\n                    self.trigger('blur', evt);\n                }, 1);\n            };\n\n            BaseSelection.prototype._attachCloseHandler = function (container) {\n                var self = this;\n\n                $(document.body).on('mousedown.select2.' + container.id, function (e) {\n                    var $target = $(e.target);\n\n                    var $select = $target.closest('.select2');\n\n                    var $all = $('.select2.select2-container--open');\n\n                    $all.each(function () {\n                        var $this = $(this);\n\n                        if (this == $select[0]) {\n                            return;\n                        }\n\n                        var $element = $this.data('element');\n\n                        $element.select2('close');\n                    });\n                });\n            };\n\n            BaseSelection.prototype._detachCloseHandler = function (container) {\n                $(document.body).off('mousedown.select2.' + container.id);\n            };\n\n            BaseSelection.prototype.position = function ($selection, $container) {\n                var $selectionContainer = $container.find('.selection');\n                $selectionContainer.append($selection);\n            };\n\n            BaseSelection.prototype.destroy = function () {\n                this._detachCloseHandler(this.container);\n            };\n\n            BaseSelection.prototype.update = function (data) {\n                throw new Error('The `update` method must be defined in child classes.');\n            };\n\n            return BaseSelection;\n        });\n\n        S2.define('select2/selection/single',[\n            'jquery',\n            './base',\n            '../utils',\n            '../keys'\n        ], function ($, BaseSelection, Utils, KEYS) {\n            function SingleSelection () {\n                SingleSelection.__super__.constructor.apply(this, arguments);\n            }\n\n            Utils.Extend(SingleSelection, BaseSelection);\n\n            SingleSelection.prototype.render = function () {\n                var $selection = SingleSelection.__super__.render.call(this);\n\n                $selection.addClass('select2-selection--single');\n\n                $selection.html(\n                    '<span class=\"select2-selection__rendered\"></span>' +\n                    '<span class=\"select2-selection__arrow\" role=\"presentation\">' +\n                    '<b role=\"presentation\"></b>' +\n                    '</span>'\n                );\n\n                return $selection;\n            };\n\n            SingleSelection.prototype.bind = function (container, $container) {\n                var self = this;\n\n                SingleSelection.__super__.bind.apply(this, arguments);\n\n                var id = container.id + '-container';\n\n                this.$selection.find('.select2-selection__rendered').attr('id', id);\n                this.$selection.attr('aria-labelledby', id);\n\n                this.$selection.on('mousedown', function (evt) {\n                    // Only respond to left clicks\n                    if (evt.which !== 1) {\n                        return;\n                    }\n\n                    self.trigger('toggle', {\n                        originalEvent: evt\n                    });\n                });\n\n                this.$selection.on('focus', function (evt) {\n                    // User focuses on the container\n                });\n\n                this.$selection.on('blur', function (evt) {\n                    // User exits the container\n                });\n\n                container.on('focus', function (evt) {\n                    if (!container.isOpen()) {\n                        self.$selection.focus();\n                    }\n                });\n\n                container.on('selection:update', function (params) {\n                    self.update(params.data);\n                });\n            };\n\n            SingleSelection.prototype.clear = function () {\n                this.$selection.find('.select2-selection__rendered').empty();\n            };\n\n            SingleSelection.prototype.display = function (data, container) {\n                var template = this.options.get('templateSelection');\n                var escapeMarkup = this.options.get('escapeMarkup');\n\n                return escapeMarkup(template(data, container));\n            };\n\n            SingleSelection.prototype.selectionContainer = function () {\n                return $('<span></span>');\n            };\n\n            SingleSelection.prototype.update = function (data) {\n                if (data.length === 0) {\n                    this.clear();\n                    return;\n                }\n\n                var selection = data[0];\n\n                var $rendered = this.$selection.find('.select2-selection__rendered');\n                var formatted = this.display(selection, $rendered);\n\n                $rendered.empty().append(formatted);\n                $rendered.prop('title', selection.title || selection.text);\n            };\n\n            return SingleSelection;\n        });\n\n        S2.define('select2/selection/multiple',[\n            'jquery',\n            './base',\n            '../utils'\n        ], function ($, BaseSelection, Utils) {\n            function MultipleSelection ($element, options) {\n                MultipleSelection.__super__.constructor.apply(this, arguments);\n            }\n\n            Utils.Extend(MultipleSelection, BaseSelection);\n\n            MultipleSelection.prototype.render = function () {\n                var $selection = MultipleSelection.__super__.render.call(this);\n\n                $selection.addClass('select2-selection--multiple');\n\n                $selection.html(\n                    '<ul class=\"select2-selection__rendered\"></ul>'\n                );\n\n                return $selection;\n            };\n\n            MultipleSelection.prototype.bind = function (container, $container) {\n                var self = this;\n\n                MultipleSelection.__super__.bind.apply(this, arguments);\n\n                this.$selection.on('click', function (evt) {\n                    self.trigger('toggle', {\n                        originalEvent: evt\n                    });\n                });\n\n                this.$selection.on(\n                    'click',\n                    '.select2-selection__choice__remove',\n                    function (evt) {\n                        // Ignore the event if it is disabled\n                        if (self.options.get('disabled')) {\n                            return;\n                        }\n\n                        var $remove = $(this);\n                        var $selection = $remove.parent();\n\n                        var data = $selection.data('data');\n\n                        self.trigger('unselect', {\n                            originalEvent: evt,\n                            data: data\n                        });\n                    }\n                );\n            };\n\n            MultipleSelection.prototype.clear = function () {\n                this.$selection.find('.select2-selection__rendered').empty();\n            };\n\n            MultipleSelection.prototype.display = function (data, container) {\n                var template = this.options.get('templateSelection');\n                var escapeMarkup = this.options.get('escapeMarkup');\n\n                return escapeMarkup(template(data, container));\n            };\n\n            MultipleSelection.prototype.selectionContainer = function () {\n                var $container = $(\n                    '<li class=\"select2-selection__choice\">' +\n                    '<span class=\"select2-selection__choice__remove\" role=\"presentation\">' +\n                    '&times;' +\n                    '</span>' +\n                    '</li>'\n                );\n\n                return $container;\n            };\n\n            MultipleSelection.prototype.update = function (data) {\n                this.clear();\n\n                if (data.length === 0) {\n                    return;\n                }\n\n                var $selections = [];\n\n                for (var d = 0; d < data.length; d++) {\n                    var selection = data[d];\n\n                    var $selection = this.selectionContainer();\n                    var formatted = this.display(selection, $selection);\n\n                    $selection.append(formatted);\n                    $selection.prop('title', selection.title || selection.text);\n\n                    $selection.data('data', selection);\n\n                    $selections.push($selection);\n                }\n\n                var $rendered = this.$selection.find('.select2-selection__rendered');\n\n                Utils.appendMany($rendered, $selections);\n            };\n\n            return MultipleSelection;\n        });\n\n        S2.define('select2/selection/placeholder',[\n            '../utils'\n        ], function (Utils) {\n            function Placeholder (decorated, $element, options) {\n                this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n                decorated.call(this, $element, options);\n            }\n\n            Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n                if (typeof placeholder === 'string') {\n                    placeholder = {\n                        id: '',\n                        text: placeholder\n                    };\n                }\n\n                return placeholder;\n            };\n\n            Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n                var $placeholder = this.selectionContainer();\n\n                $placeholder.html(this.display(placeholder));\n                $placeholder.addClass('select2-selection__placeholder')\n                    .removeClass('select2-selection__choice');\n\n                return $placeholder;\n            };\n\n            Placeholder.prototype.update = function (decorated, data) {\n                var singlePlaceholder = (\n                    data.length == 1 && data[0].id != this.placeholder.id\n                );\n                var multipleSelections = data.length > 1;\n\n                if (multipleSelections || singlePlaceholder) {\n                    return decorated.call(this, data);\n                }\n\n                this.clear();\n\n                var $placeholder = this.createPlaceholder(this.placeholder);\n\n                this.$selection.find('.select2-selection__rendered').append($placeholder);\n            };\n\n            return Placeholder;\n        });\n\n        S2.define('select2/selection/allowClear',[\n            'jquery',\n            '../keys'\n        ], function ($, KEYS) {\n            function AllowClear () { }\n\n            AllowClear.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                if (this.placeholder == null) {\n                    if (this.options.get('debug') && window.console && console.error) {\n                        console.error(\n                            'Select2: The `allowClear` option should be used in combination ' +\n                            'with the `placeholder` option.'\n                        );\n                    }\n                }\n\n                this.$selection.on('mousedown', '.select2-selection__clear',\n                    function (evt) {\n                        self._handleClear(evt);\n                    });\n\n                container.on('keypress', function (evt) {\n                    self._handleKeyboardClear(evt, container);\n                });\n            };\n\n            AllowClear.prototype._handleClear = function (_, evt) {\n                // Ignore the event if it is disabled\n                if (this.options.get('disabled')) {\n                    return;\n                }\n\n                var $clear = this.$selection.find('.select2-selection__clear');\n\n                // Ignore the event if nothing has been selected\n                if ($clear.length === 0) {\n                    return;\n                }\n\n                evt.stopPropagation();\n\n                var data = $clear.data('data');\n\n                for (var d = 0; d < data.length; d++) {\n                    var unselectData = {\n                        data: data[d]\n                    };\n\n                    // Trigger the `unselect` event, so people can prevent it from being\n                    // cleared.\n                    this.trigger('unselect', unselectData);\n\n                    // If the event was prevented, don't clear it out.\n                    if (unselectData.prevented) {\n                        return;\n                    }\n                }\n\n                this.$element.val(this.placeholder.id).trigger('change');\n\n                this.trigger('toggle', {});\n            };\n\n            AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n                if (container.isOpen()) {\n                    return;\n                }\n\n                if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n                    this._handleClear(evt);\n                }\n            };\n\n            AllowClear.prototype.update = function (decorated, data) {\n                decorated.call(this, data);\n\n                if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n                    data.length === 0) {\n                    return;\n                }\n\n                var $remove = $(\n                    '<span class=\"select2-selection__clear\">' +\n                    '&times;' +\n                    '</span>'\n                );\n                $remove.data('data', data);\n\n                this.$selection.find('.select2-selection__rendered').prepend($remove);\n            };\n\n            return AllowClear;\n        });\n\n        S2.define('select2/selection/search',[\n            'jquery',\n            '../utils',\n            '../keys'\n        ], function ($, Utils, KEYS) {\n            function Search (decorated, $element, options) {\n                decorated.call(this, $element, options);\n            }\n\n            Search.prototype.render = function (decorated) {\n                var $search = $(\n                    '<li class=\"select2-search select2-search--inline\">' +\n                    '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n                    ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n                    ' spellcheck=\"false\" role=\"textbox\" aria-autocomplete=\"list\" />' +\n                    '</li>'\n                );\n\n                this.$searchContainer = $search;\n                this.$search = $search.find('input');\n\n                var $rendered = decorated.call(this);\n\n                this._transferTabIndex();\n\n                return $rendered;\n            };\n\n            Search.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                container.on('open', function () {\n                    self.$search.trigger('focus');\n                });\n\n                container.on('close', function () {\n                    self.$search.val('');\n                    self.$search.removeAttr('aria-activedescendant');\n                    self.$search.trigger('focus');\n                });\n\n                container.on('enable', function () {\n                    self.$search.prop('disabled', false);\n\n                    self._transferTabIndex();\n                });\n\n                container.on('disable', function () {\n                    self.$search.prop('disabled', true);\n                });\n\n                container.on('focus', function (evt) {\n                    self.$search.trigger('focus');\n                });\n\n                container.on('results:focus', function (params) {\n                    self.$search.attr('aria-activedescendant', params.id);\n                });\n\n                this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n                    self.trigger('focus', evt);\n                });\n\n                this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n                    self._handleBlur(evt);\n                });\n\n                this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n                    evt.stopPropagation();\n\n                    self.trigger('keypress', evt);\n\n                    self._keyUpPrevented = evt.isDefaultPrevented();\n\n                    var key = evt.which;\n\n                    if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n                        var $previousChoice = self.$searchContainer\n                            .prev('.select2-selection__choice');\n\n                        if ($previousChoice.length > 0) {\n                            var item = $previousChoice.data('data');\n\n                            self.searchRemoveChoice(item);\n\n                            evt.preventDefault();\n                        }\n                    }\n                });\n\n                // Try to detect the IE version should the `documentMode` property that\n                // is stored on the document. This is only implemented in IE and is\n                // slightly cleaner than doing a user agent check.\n                // This property is not available in Edge, but Edge also doesn't have\n                // this bug.\n                var msie = document.documentMode;\n                var disableInputEvents = msie && msie <= 11;\n\n                var flag = true;\n                this.$selection.on('compositionstart',function(){\n                    flag = false;\n                })\n                this.$selection.on('compositionend',function(){\n                    flag = true;\n                })\n\n                // Workaround for browsers which do not support the `input` event\n                // This will prevent double-triggering of events for browsers which support\n                // both the `keyup` and `input` events.\n                this.$selection.on(\n                    'input.searchcheck',\n                    '.select2-search--inline',\n                    function (evt) {\n                        if(flag){//增加这个判断\n                            // IE will trigger the `input` event when a placeholder is used on a\n                            // search box. To get around this issue, we are forced to ignore all\n                            // `input` events in IE and keep using `keyup`.\n                            if (disableInputEvents) {\n                                self.$selection.off('input.search input.searchcheck');\n                                return;\n                            }\n                            // Unbind the duplicated `keyup` event\n                            self.$selection.off('keyup.search');\n                        }\n                    }\n                );\n\n                this.$selection.on(\n                    'keyup.search input.search',\n                    '.select2-search--inline',\n                    function (evt) {\n                        if(flag){//增加这个判断\n                            // IE will trigger the `input` event when a placeholder is used on a\n                            // search box. To get around this issue, we are forced to ignore all\n                            // `input` events in IE and keep using `keyup`.\n                            if (disableInputEvents && evt.type === 'input') {\n                                self.$selection.off('input.search input.searchcheck');\n                                return;\n                            }\n\n                            var key = evt.which;\n\n                            // We can freely ignore events from modifier keys\n                            if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n                                return;\n                            }\n\n                            // Tabbing will be handled during the `keydown` phase\n                            if (key == KEYS.TAB) {\n                                return;\n                            }\n\n                            self.handleSearch(evt);\n                        }\n                    }\n                );\n            };\n\n            /**\n             * This method will transfer the tabindex attribute from the rendered\n             * selection to the search box. This allows for the search box to be used as\n             * the primary focus instead of the selection container.\n             *\n             * @private\n             */\n            Search.prototype._transferTabIndex = function (decorated) {\n                this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n                this.$selection.attr('tabindex', '-1');\n            };\n\n            Search.prototype.createPlaceholder = function (decorated, placeholder) {\n                this.$search.attr('placeholder', placeholder.text);\n            };\n\n            Search.prototype.update = function (decorated, data) {\n                var searchHadFocus = this.$search[0] == document.activeElement;\n\n                this.$search.attr('placeholder', '');\n\n                decorated.call(this, data);\n\n                this.$selection.find('.select2-selection__rendered')\n                    .append(this.$searchContainer);\n\n                this.resizeSearch();\n                if (searchHadFocus) {\n                    this.$search.focus();\n                }\n            };\n\n            Search.prototype.handleSearch = function () {\n                this.resizeSearch();\n\n                if (!this._keyUpPrevented) {\n                    var input = this.$search.val();\n\n                    this.trigger('query', {\n                        term: input\n                    });\n                }\n\n                this._keyUpPrevented = false;\n            };\n\n            Search.prototype.searchRemoveChoice = function (decorated, item) {\n                this.trigger('unselect', {\n                    data: item\n                });\n\n                this.$search.val(item.text);\n                this.handleSearch();\n            };\n\n            Search.prototype.resizeSearch = function () {\n                this.$search.css('width', '25px');\n\n                var width = '';\n\n                if (this.$search.attr('placeholder') !== '') {\n                    width = this.$selection.find('.select2-selection__rendered').innerWidth();\n                } else {\n                    var minimumWidth = this.$search.val().length + 1;\n\n                    width = (minimumWidth * 0.75) + 'em';\n                }\n\n                this.$search.css('width', width);\n            };\n\n            return Search;\n        });\n\n        S2.define('select2/selection/eventRelay',[\n            'jquery'\n        ], function ($) {\n            function EventRelay () { }\n\n            EventRelay.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n                var relayEvents = [\n                    'open', 'opening',\n                    'close', 'closing',\n                    'select', 'selecting',\n                    'unselect', 'unselecting'\n                ];\n\n                var preventableEvents = ['opening', 'closing', 'selecting', 'unselecting'];\n\n                decorated.call(this, container, $container);\n\n                container.on('*', function (name, params) {\n                    // Ignore events that should not be relayed\n                    if ($.inArray(name, relayEvents) === -1) {\n                        return;\n                    }\n\n                    // The parameters should always be an object\n                    params = params || {};\n\n                    // Generate the jQuery event for the Select2 event\n                    var evt = $.Event('select2:' + name, {\n                        params: params\n                    });\n\n                    self.$element.trigger(evt);\n\n                    // Only handle preventable events if it was one\n                    if ($.inArray(name, preventableEvents) === -1) {\n                        return;\n                    }\n\n                    params.prevented = evt.isDefaultPrevented();\n                });\n            };\n\n            return EventRelay;\n        });\n\n        S2.define('select2/translation',[\n            'jquery',\n            'require'\n        ], function ($, require) {\n            function Translation (dict) {\n                this.dict = dict || {};\n            }\n\n            Translation.prototype.all = function () {\n                return this.dict;\n            };\n\n            Translation.prototype.get = function (key) {\n                return this.dict[key];\n            };\n\n            Translation.prototype.extend = function (translation) {\n                this.dict = $.extend({}, translation.all(), this.dict);\n            };\n\n            // Static functions\n\n            Translation._cache = {};\n\n            Translation.loadPath = function (path) {\n                if (!(path in Translation._cache)) {\n                    var translations = require(path);\n\n                    Translation._cache[path] = translations;\n                }\n\n                return new Translation(Translation._cache[path]);\n            };\n\n            return Translation;\n        });\n\n        S2.define('select2/diacritics',[\n\n        ], function () {\n            var diacritics = {\n                '\\u24B6': 'A',\n                '\\uFF21': 'A',\n                '\\u00C0': 'A',\n                '\\u00C1': 'A',\n                '\\u00C2': 'A',\n                '\\u1EA6': 'A',\n                '\\u1EA4': 'A',\n                '\\u1EAA': 'A',\n                '\\u1EA8': 'A',\n                '\\u00C3': 'A',\n                '\\u0100': 'A',\n                '\\u0102': 'A',\n                '\\u1EB0': 'A',\n                '\\u1EAE': 'A',\n                '\\u1EB4': 'A',\n                '\\u1EB2': 'A',\n                '\\u0226': 'A',\n                '\\u01E0': 'A',\n                '\\u00C4': 'A',\n                '\\u01DE': 'A',\n                '\\u1EA2': 'A',\n                '\\u00C5': 'A',\n                '\\u01FA': 'A',\n                '\\u01CD': 'A',\n                '\\u0200': 'A',\n                '\\u0202': 'A',\n                '\\u1EA0': 'A',\n                '\\u1EAC': 'A',\n                '\\u1EB6': 'A',\n                '\\u1E00': 'A',\n                '\\u0104': 'A',\n                '\\u023A': 'A',\n                '\\u2C6F': 'A',\n                '\\uA732': 'AA',\n                '\\u00C6': 'AE',\n                '\\u01FC': 'AE',\n                '\\u01E2': 'AE',\n                '\\uA734': 'AO',\n                '\\uA736': 'AU',\n                '\\uA738': 'AV',\n                '\\uA73A': 'AV',\n                '\\uA73C': 'AY',\n                '\\u24B7': 'B',\n                '\\uFF22': 'B',\n                '\\u1E02': 'B',\n                '\\u1E04': 'B',\n                '\\u1E06': 'B',\n                '\\u0243': 'B',\n                '\\u0182': 'B',\n                '\\u0181': 'B',\n                '\\u24B8': 'C',\n                '\\uFF23': 'C',\n                '\\u0106': 'C',\n                '\\u0108': 'C',\n                '\\u010A': 'C',\n                '\\u010C': 'C',\n                '\\u00C7': 'C',\n                '\\u1E08': 'C',\n                '\\u0187': 'C',\n                '\\u023B': 'C',\n                '\\uA73E': 'C',\n                '\\u24B9': 'D',\n                '\\uFF24': 'D',\n                '\\u1E0A': 'D',\n                '\\u010E': 'D',\n                '\\u1E0C': 'D',\n                '\\u1E10': 'D',\n                '\\u1E12': 'D',\n                '\\u1E0E': 'D',\n                '\\u0110': 'D',\n                '\\u018B': 'D',\n                '\\u018A': 'D',\n                '\\u0189': 'D',\n                '\\uA779': 'D',\n                '\\u01F1': 'DZ',\n                '\\u01C4': 'DZ',\n                '\\u01F2': 'Dz',\n                '\\u01C5': 'Dz',\n                '\\u24BA': 'E',\n                '\\uFF25': 'E',\n                '\\u00C8': 'E',\n                '\\u00C9': 'E',\n                '\\u00CA': 'E',\n                '\\u1EC0': 'E',\n                '\\u1EBE': 'E',\n                '\\u1EC4': 'E',\n                '\\u1EC2': 'E',\n                '\\u1EBC': 'E',\n                '\\u0112': 'E',\n                '\\u1E14': 'E',\n                '\\u1E16': 'E',\n                '\\u0114': 'E',\n                '\\u0116': 'E',\n                '\\u00CB': 'E',\n                '\\u1EBA': 'E',\n                '\\u011A': 'E',\n                '\\u0204': 'E',\n                '\\u0206': 'E',\n                '\\u1EB8': 'E',\n                '\\u1EC6': 'E',\n                '\\u0228': 'E',\n                '\\u1E1C': 'E',\n                '\\u0118': 'E',\n                '\\u1E18': 'E',\n                '\\u1E1A': 'E',\n                '\\u0190': 'E',\n                '\\u018E': 'E',\n                '\\u24BB': 'F',\n                '\\uFF26': 'F',\n                '\\u1E1E': 'F',\n                '\\u0191': 'F',\n                '\\uA77B': 'F',\n                '\\u24BC': 'G',\n                '\\uFF27': 'G',\n                '\\u01F4': 'G',\n                '\\u011C': 'G',\n                '\\u1E20': 'G',\n                '\\u011E': 'G',\n                '\\u0120': 'G',\n                '\\u01E6': 'G',\n                '\\u0122': 'G',\n                '\\u01E4': 'G',\n                '\\u0193': 'G',\n                '\\uA7A0': 'G',\n                '\\uA77D': 'G',\n                '\\uA77E': 'G',\n                '\\u24BD': 'H',\n                '\\uFF28': 'H',\n                '\\u0124': 'H',\n                '\\u1E22': 'H',\n                '\\u1E26': 'H',\n                '\\u021E': 'H',\n                '\\u1E24': 'H',\n                '\\u1E28': 'H',\n                '\\u1E2A': 'H',\n                '\\u0126': 'H',\n                '\\u2C67': 'H',\n                '\\u2C75': 'H',\n                '\\uA78D': 'H',\n                '\\u24BE': 'I',\n                '\\uFF29': 'I',\n                '\\u00CC': 'I',\n                '\\u00CD': 'I',\n                '\\u00CE': 'I',\n                '\\u0128': 'I',\n                '\\u012A': 'I',\n                '\\u012C': 'I',\n                '\\u0130': 'I',\n                '\\u00CF': 'I',\n                '\\u1E2E': 'I',\n                '\\u1EC8': 'I',\n                '\\u01CF': 'I',\n                '\\u0208': 'I',\n                '\\u020A': 'I',\n                '\\u1ECA': 'I',\n                '\\u012E': 'I',\n                '\\u1E2C': 'I',\n                '\\u0197': 'I',\n                '\\u24BF': 'J',\n                '\\uFF2A': 'J',\n                '\\u0134': 'J',\n                '\\u0248': 'J',\n                '\\u24C0': 'K',\n                '\\uFF2B': 'K',\n                '\\u1E30': 'K',\n                '\\u01E8': 'K',\n                '\\u1E32': 'K',\n                '\\u0136': 'K',\n                '\\u1E34': 'K',\n                '\\u0198': 'K',\n                '\\u2C69': 'K',\n                '\\uA740': 'K',\n                '\\uA742': 'K',\n                '\\uA744': 'K',\n                '\\uA7A2': 'K',\n                '\\u24C1': 'L',\n                '\\uFF2C': 'L',\n                '\\u013F': 'L',\n                '\\u0139': 'L',\n                '\\u013D': 'L',\n                '\\u1E36': 'L',\n                '\\u1E38': 'L',\n                '\\u013B': 'L',\n                '\\u1E3C': 'L',\n                '\\u1E3A': 'L',\n                '\\u0141': 'L',\n                '\\u023D': 'L',\n                '\\u2C62': 'L',\n                '\\u2C60': 'L',\n                '\\uA748': 'L',\n                '\\uA746': 'L',\n                '\\uA780': 'L',\n                '\\u01C7': 'LJ',\n                '\\u01C8': 'Lj',\n                '\\u24C2': 'M',\n                '\\uFF2D': 'M',\n                '\\u1E3E': 'M',\n                '\\u1E40': 'M',\n                '\\u1E42': 'M',\n                '\\u2C6E': 'M',\n                '\\u019C': 'M',\n                '\\u24C3': 'N',\n                '\\uFF2E': 'N',\n                '\\u01F8': 'N',\n                '\\u0143': 'N',\n                '\\u00D1': 'N',\n                '\\u1E44': 'N',\n                '\\u0147': 'N',\n                '\\u1E46': 'N',\n                '\\u0145': 'N',\n                '\\u1E4A': 'N',\n                '\\u1E48': 'N',\n                '\\u0220': 'N',\n                '\\u019D': 'N',\n                '\\uA790': 'N',\n                '\\uA7A4': 'N',\n                '\\u01CA': 'NJ',\n                '\\u01CB': 'Nj',\n                '\\u24C4': 'O',\n                '\\uFF2F': 'O',\n                '\\u00D2': 'O',\n                '\\u00D3': 'O',\n                '\\u00D4': 'O',\n                '\\u1ED2': 'O',\n                '\\u1ED0': 'O',\n                '\\u1ED6': 'O',\n                '\\u1ED4': 'O',\n                '\\u00D5': 'O',\n                '\\u1E4C': 'O',\n                '\\u022C': 'O',\n                '\\u1E4E': 'O',\n                '\\u014C': 'O',\n                '\\u1E50': 'O',\n                '\\u1E52': 'O',\n                '\\u014E': 'O',\n                '\\u022E': 'O',\n                '\\u0230': 'O',\n                '\\u00D6': 'O',\n                '\\u022A': 'O',\n                '\\u1ECE': 'O',\n                '\\u0150': 'O',\n                '\\u01D1': 'O',\n                '\\u020C': 'O',\n                '\\u020E': 'O',\n                '\\u01A0': 'O',\n                '\\u1EDC': 'O',\n                '\\u1EDA': 'O',\n                '\\u1EE0': 'O',\n                '\\u1EDE': 'O',\n                '\\u1EE2': 'O',\n                '\\u1ECC': 'O',\n                '\\u1ED8': 'O',\n                '\\u01EA': 'O',\n                '\\u01EC': 'O',\n                '\\u00D8': 'O',\n                '\\u01FE': 'O',\n                '\\u0186': 'O',\n                '\\u019F': 'O',\n                '\\uA74A': 'O',\n                '\\uA74C': 'O',\n                '\\u01A2': 'OI',\n                '\\uA74E': 'OO',\n                '\\u0222': 'OU',\n                '\\u24C5': 'P',\n                '\\uFF30': 'P',\n                '\\u1E54': 'P',\n                '\\u1E56': 'P',\n                '\\u01A4': 'P',\n                '\\u2C63': 'P',\n                '\\uA750': 'P',\n                '\\uA752': 'P',\n                '\\uA754': 'P',\n                '\\u24C6': 'Q',\n                '\\uFF31': 'Q',\n                '\\uA756': 'Q',\n                '\\uA758': 'Q',\n                '\\u024A': 'Q',\n                '\\u24C7': 'R',\n                '\\uFF32': 'R',\n                '\\u0154': 'R',\n                '\\u1E58': 'R',\n                '\\u0158': 'R',\n                '\\u0210': 'R',\n                '\\u0212': 'R',\n                '\\u1E5A': 'R',\n                '\\u1E5C': 'R',\n                '\\u0156': 'R',\n                '\\u1E5E': 'R',\n                '\\u024C': 'R',\n                '\\u2C64': 'R',\n                '\\uA75A': 'R',\n                '\\uA7A6': 'R',\n                '\\uA782': 'R',\n                '\\u24C8': 'S',\n                '\\uFF33': 'S',\n                '\\u1E9E': 'S',\n                '\\u015A': 'S',\n                '\\u1E64': 'S',\n                '\\u015C': 'S',\n                '\\u1E60': 'S',\n                '\\u0160': 'S',\n                '\\u1E66': 'S',\n                '\\u1E62': 'S',\n                '\\u1E68': 'S',\n                '\\u0218': 'S',\n                '\\u015E': 'S',\n                '\\u2C7E': 'S',\n                '\\uA7A8': 'S',\n                '\\uA784': 'S',\n                '\\u24C9': 'T',\n                '\\uFF34': 'T',\n                '\\u1E6A': 'T',\n                '\\u0164': 'T',\n                '\\u1E6C': 'T',\n                '\\u021A': 'T',\n                '\\u0162': 'T',\n                '\\u1E70': 'T',\n                '\\u1E6E': 'T',\n                '\\u0166': 'T',\n                '\\u01AC': 'T',\n                '\\u01AE': 'T',\n                '\\u023E': 'T',\n                '\\uA786': 'T',\n                '\\uA728': 'TZ',\n                '\\u24CA': 'U',\n                '\\uFF35': 'U',\n                '\\u00D9': 'U',\n                '\\u00DA': 'U',\n                '\\u00DB': 'U',\n                '\\u0168': 'U',\n                '\\u1E78': 'U',\n                '\\u016A': 'U',\n                '\\u1E7A': 'U',\n                '\\u016C': 'U',\n                '\\u00DC': 'U',\n                '\\u01DB': 'U',\n                '\\u01D7': 'U',\n                '\\u01D5': 'U',\n                '\\u01D9': 'U',\n                '\\u1EE6': 'U',\n                '\\u016E': 'U',\n                '\\u0170': 'U',\n                '\\u01D3': 'U',\n                '\\u0214': 'U',\n                '\\u0216': 'U',\n                '\\u01AF': 'U',\n                '\\u1EEA': 'U',\n                '\\u1EE8': 'U',\n                '\\u1EEE': 'U',\n                '\\u1EEC': 'U',\n                '\\u1EF0': 'U',\n                '\\u1EE4': 'U',\n                '\\u1E72': 'U',\n                '\\u0172': 'U',\n                '\\u1E76': 'U',\n                '\\u1E74': 'U',\n                '\\u0244': 'U',\n                '\\u24CB': 'V',\n                '\\uFF36': 'V',\n                '\\u1E7C': 'V',\n                '\\u1E7E': 'V',\n                '\\u01B2': 'V',\n                '\\uA75E': 'V',\n                '\\u0245': 'V',\n                '\\uA760': 'VY',\n                '\\u24CC': 'W',\n                '\\uFF37': 'W',\n                '\\u1E80': 'W',\n                '\\u1E82': 'W',\n                '\\u0174': 'W',\n                '\\u1E86': 'W',\n                '\\u1E84': 'W',\n                '\\u1E88': 'W',\n                '\\u2C72': 'W',\n                '\\u24CD': 'X',\n                '\\uFF38': 'X',\n                '\\u1E8A': 'X',\n                '\\u1E8C': 'X',\n                '\\u24CE': 'Y',\n                '\\uFF39': 'Y',\n                '\\u1EF2': 'Y',\n                '\\u00DD': 'Y',\n                '\\u0176': 'Y',\n                '\\u1EF8': 'Y',\n                '\\u0232': 'Y',\n                '\\u1E8E': 'Y',\n                '\\u0178': 'Y',\n                '\\u1EF6': 'Y',\n                '\\u1EF4': 'Y',\n                '\\u01B3': 'Y',\n                '\\u024E': 'Y',\n                '\\u1EFE': 'Y',\n                '\\u24CF': 'Z',\n                '\\uFF3A': 'Z',\n                '\\u0179': 'Z',\n                '\\u1E90': 'Z',\n                '\\u017B': 'Z',\n                '\\u017D': 'Z',\n                '\\u1E92': 'Z',\n                '\\u1E94': 'Z',\n                '\\u01B5': 'Z',\n                '\\u0224': 'Z',\n                '\\u2C7F': 'Z',\n                '\\u2C6B': 'Z',\n                '\\uA762': 'Z',\n                '\\u24D0': 'a',\n                '\\uFF41': 'a',\n                '\\u1E9A': 'a',\n                '\\u00E0': 'a',\n                '\\u00E1': 'a',\n                '\\u00E2': 'a',\n                '\\u1EA7': 'a',\n                '\\u1EA5': 'a',\n                '\\u1EAB': 'a',\n                '\\u1EA9': 'a',\n                '\\u00E3': 'a',\n                '\\u0101': 'a',\n                '\\u0103': 'a',\n                '\\u1EB1': 'a',\n                '\\u1EAF': 'a',\n                '\\u1EB5': 'a',\n                '\\u1EB3': 'a',\n                '\\u0227': 'a',\n                '\\u01E1': 'a',\n                '\\u00E4': 'a',\n                '\\u01DF': 'a',\n                '\\u1EA3': 'a',\n                '\\u00E5': 'a',\n                '\\u01FB': 'a',\n                '\\u01CE': 'a',\n                '\\u0201': 'a',\n                '\\u0203': 'a',\n                '\\u1EA1': 'a',\n                '\\u1EAD': 'a',\n                '\\u1EB7': 'a',\n                '\\u1E01': 'a',\n                '\\u0105': 'a',\n                '\\u2C65': 'a',\n                '\\u0250': 'a',\n                '\\uA733': 'aa',\n                '\\u00E6': 'ae',\n                '\\u01FD': 'ae',\n                '\\u01E3': 'ae',\n                '\\uA735': 'ao',\n                '\\uA737': 'au',\n                '\\uA739': 'av',\n                '\\uA73B': 'av',\n                '\\uA73D': 'ay',\n                '\\u24D1': 'b',\n                '\\uFF42': 'b',\n                '\\u1E03': 'b',\n                '\\u1E05': 'b',\n                '\\u1E07': 'b',\n                '\\u0180': 'b',\n                '\\u0183': 'b',\n                '\\u0253': 'b',\n                '\\u24D2': 'c',\n                '\\uFF43': 'c',\n                '\\u0107': 'c',\n                '\\u0109': 'c',\n                '\\u010B': 'c',\n                '\\u010D': 'c',\n                '\\u00E7': 'c',\n                '\\u1E09': 'c',\n                '\\u0188': 'c',\n                '\\u023C': 'c',\n                '\\uA73F': 'c',\n                '\\u2184': 'c',\n                '\\u24D3': 'd',\n                '\\uFF44': 'd',\n                '\\u1E0B': 'd',\n                '\\u010F': 'd',\n                '\\u1E0D': 'd',\n                '\\u1E11': 'd',\n                '\\u1E13': 'd',\n                '\\u1E0F': 'd',\n                '\\u0111': 'd',\n                '\\u018C': 'd',\n                '\\u0256': 'd',\n                '\\u0257': 'd',\n                '\\uA77A': 'd',\n                '\\u01F3': 'dz',\n                '\\u01C6': 'dz',\n                '\\u24D4': 'e',\n                '\\uFF45': 'e',\n                '\\u00E8': 'e',\n                '\\u00E9': 'e',\n                '\\u00EA': 'e',\n                '\\u1EC1': 'e',\n                '\\u1EBF': 'e',\n                '\\u1EC5': 'e',\n                '\\u1EC3': 'e',\n                '\\u1EBD': 'e',\n                '\\u0113': 'e',\n                '\\u1E15': 'e',\n                '\\u1E17': 'e',\n                '\\u0115': 'e',\n                '\\u0117': 'e',\n                '\\u00EB': 'e',\n                '\\u1EBB': 'e',\n                '\\u011B': 'e',\n                '\\u0205': 'e',\n                '\\u0207': 'e',\n                '\\u1EB9': 'e',\n                '\\u1EC7': 'e',\n                '\\u0229': 'e',\n                '\\u1E1D': 'e',\n                '\\u0119': 'e',\n                '\\u1E19': 'e',\n                '\\u1E1B': 'e',\n                '\\u0247': 'e',\n                '\\u025B': 'e',\n                '\\u01DD': 'e',\n                '\\u24D5': 'f',\n                '\\uFF46': 'f',\n                '\\u1E1F': 'f',\n                '\\u0192': 'f',\n                '\\uA77C': 'f',\n                '\\u24D6': 'g',\n                '\\uFF47': 'g',\n                '\\u01F5': 'g',\n                '\\u011D': 'g',\n                '\\u1E21': 'g',\n                '\\u011F': 'g',\n                '\\u0121': 'g',\n                '\\u01E7': 'g',\n                '\\u0123': 'g',\n                '\\u01E5': 'g',\n                '\\u0260': 'g',\n                '\\uA7A1': 'g',\n                '\\u1D79': 'g',\n                '\\uA77F': 'g',\n                '\\u24D7': 'h',\n                '\\uFF48': 'h',\n                '\\u0125': 'h',\n                '\\u1E23': 'h',\n                '\\u1E27': 'h',\n                '\\u021F': 'h',\n                '\\u1E25': 'h',\n                '\\u1E29': 'h',\n                '\\u1E2B': 'h',\n                '\\u1E96': 'h',\n                '\\u0127': 'h',\n                '\\u2C68': 'h',\n                '\\u2C76': 'h',\n                '\\u0265': 'h',\n                '\\u0195': 'hv',\n                '\\u24D8': 'i',\n                '\\uFF49': 'i',\n                '\\u00EC': 'i',\n                '\\u00ED': 'i',\n                '\\u00EE': 'i',\n                '\\u0129': 'i',\n                '\\u012B': 'i',\n                '\\u012D': 'i',\n                '\\u00EF': 'i',\n                '\\u1E2F': 'i',\n                '\\u1EC9': 'i',\n                '\\u01D0': 'i',\n                '\\u0209': 'i',\n                '\\u020B': 'i',\n                '\\u1ECB': 'i',\n                '\\u012F': 'i',\n                '\\u1E2D': 'i',\n                '\\u0268': 'i',\n                '\\u0131': 'i',\n                '\\u24D9': 'j',\n                '\\uFF4A': 'j',\n                '\\u0135': 'j',\n                '\\u01F0': 'j',\n                '\\u0249': 'j',\n                '\\u24DA': 'k',\n                '\\uFF4B': 'k',\n                '\\u1E31': 'k',\n                '\\u01E9': 'k',\n                '\\u1E33': 'k',\n                '\\u0137': 'k',\n                '\\u1E35': 'k',\n                '\\u0199': 'k',\n                '\\u2C6A': 'k',\n                '\\uA741': 'k',\n                '\\uA743': 'k',\n                '\\uA745': 'k',\n                '\\uA7A3': 'k',\n                '\\u24DB': 'l',\n                '\\uFF4C': 'l',\n                '\\u0140': 'l',\n                '\\u013A': 'l',\n                '\\u013E': 'l',\n                '\\u1E37': 'l',\n                '\\u1E39': 'l',\n                '\\u013C': 'l',\n                '\\u1E3D': 'l',\n                '\\u1E3B': 'l',\n                '\\u017F': 'l',\n                '\\u0142': 'l',\n                '\\u019A': 'l',\n                '\\u026B': 'l',\n                '\\u2C61': 'l',\n                '\\uA749': 'l',\n                '\\uA781': 'l',\n                '\\uA747': 'l',\n                '\\u01C9': 'lj',\n                '\\u24DC': 'm',\n                '\\uFF4D': 'm',\n                '\\u1E3F': 'm',\n                '\\u1E41': 'm',\n                '\\u1E43': 'm',\n                '\\u0271': 'm',\n                '\\u026F': 'm',\n                '\\u24DD': 'n',\n                '\\uFF4E': 'n',\n                '\\u01F9': 'n',\n                '\\u0144': 'n',\n                '\\u00F1': 'n',\n                '\\u1E45': 'n',\n                '\\u0148': 'n',\n                '\\u1E47': 'n',\n                '\\u0146': 'n',\n                '\\u1E4B': 'n',\n                '\\u1E49': 'n',\n                '\\u019E': 'n',\n                '\\u0272': 'n',\n                '\\u0149': 'n',\n                '\\uA791': 'n',\n                '\\uA7A5': 'n',\n                '\\u01CC': 'nj',\n                '\\u24DE': 'o',\n                '\\uFF4F': 'o',\n                '\\u00F2': 'o',\n                '\\u00F3': 'o',\n                '\\u00F4': 'o',\n                '\\u1ED3': 'o',\n                '\\u1ED1': 'o',\n                '\\u1ED7': 'o',\n                '\\u1ED5': 'o',\n                '\\u00F5': 'o',\n                '\\u1E4D': 'o',\n                '\\u022D': 'o',\n                '\\u1E4F': 'o',\n                '\\u014D': 'o',\n                '\\u1E51': 'o',\n                '\\u1E53': 'o',\n                '\\u014F': 'o',\n                '\\u022F': 'o',\n                '\\u0231': 'o',\n                '\\u00F6': 'o',\n                '\\u022B': 'o',\n                '\\u1ECF': 'o',\n                '\\u0151': 'o',\n                '\\u01D2': 'o',\n                '\\u020D': 'o',\n                '\\u020F': 'o',\n                '\\u01A1': 'o',\n                '\\u1EDD': 'o',\n                '\\u1EDB': 'o',\n                '\\u1EE1': 'o',\n                '\\u1EDF': 'o',\n                '\\u1EE3': 'o',\n                '\\u1ECD': 'o',\n                '\\u1ED9': 'o',\n                '\\u01EB': 'o',\n                '\\u01ED': 'o',\n                '\\u00F8': 'o',\n                '\\u01FF': 'o',\n                '\\u0254': 'o',\n                '\\uA74B': 'o',\n                '\\uA74D': 'o',\n                '\\u0275': 'o',\n                '\\u01A3': 'oi',\n                '\\u0223': 'ou',\n                '\\uA74F': 'oo',\n                '\\u24DF': 'p',\n                '\\uFF50': 'p',\n                '\\u1E55': 'p',\n                '\\u1E57': 'p',\n                '\\u01A5': 'p',\n                '\\u1D7D': 'p',\n                '\\uA751': 'p',\n                '\\uA753': 'p',\n                '\\uA755': 'p',\n                '\\u24E0': 'q',\n                '\\uFF51': 'q',\n                '\\u024B': 'q',\n                '\\uA757': 'q',\n                '\\uA759': 'q',\n                '\\u24E1': 'r',\n                '\\uFF52': 'r',\n                '\\u0155': 'r',\n                '\\u1E59': 'r',\n                '\\u0159': 'r',\n                '\\u0211': 'r',\n                '\\u0213': 'r',\n                '\\u1E5B': 'r',\n                '\\u1E5D': 'r',\n                '\\u0157': 'r',\n                '\\u1E5F': 'r',\n                '\\u024D': 'r',\n                '\\u027D': 'r',\n                '\\uA75B': 'r',\n                '\\uA7A7': 'r',\n                '\\uA783': 'r',\n                '\\u24E2': 's',\n                '\\uFF53': 's',\n                '\\u00DF': 's',\n                '\\u015B': 's',\n                '\\u1E65': 's',\n                '\\u015D': 's',\n                '\\u1E61': 's',\n                '\\u0161': 's',\n                '\\u1E67': 's',\n                '\\u1E63': 's',\n                '\\u1E69': 's',\n                '\\u0219': 's',\n                '\\u015F': 's',\n                '\\u023F': 's',\n                '\\uA7A9': 's',\n                '\\uA785': 's',\n                '\\u1E9B': 's',\n                '\\u24E3': 't',\n                '\\uFF54': 't',\n                '\\u1E6B': 't',\n                '\\u1E97': 't',\n                '\\u0165': 't',\n                '\\u1E6D': 't',\n                '\\u021B': 't',\n                '\\u0163': 't',\n                '\\u1E71': 't',\n                '\\u1E6F': 't',\n                '\\u0167': 't',\n                '\\u01AD': 't',\n                '\\u0288': 't',\n                '\\u2C66': 't',\n                '\\uA787': 't',\n                '\\uA729': 'tz',\n                '\\u24E4': 'u',\n                '\\uFF55': 'u',\n                '\\u00F9': 'u',\n                '\\u00FA': 'u',\n                '\\u00FB': 'u',\n                '\\u0169': 'u',\n                '\\u1E79': 'u',\n                '\\u016B': 'u',\n                '\\u1E7B': 'u',\n                '\\u016D': 'u',\n                '\\u00FC': 'u',\n                '\\u01DC': 'u',\n                '\\u01D8': 'u',\n                '\\u01D6': 'u',\n                '\\u01DA': 'u',\n                '\\u1EE7': 'u',\n                '\\u016F': 'u',\n                '\\u0171': 'u',\n                '\\u01D4': 'u',\n                '\\u0215': 'u',\n                '\\u0217': 'u',\n                '\\u01B0': 'u',\n                '\\u1EEB': 'u',\n                '\\u1EE9': 'u',\n                '\\u1EEF': 'u',\n                '\\u1EED': 'u',\n                '\\u1EF1': 'u',\n                '\\u1EE5': 'u',\n                '\\u1E73': 'u',\n                '\\u0173': 'u',\n                '\\u1E77': 'u',\n                '\\u1E75': 'u',\n                '\\u0289': 'u',\n                '\\u24E5': 'v',\n                '\\uFF56': 'v',\n                '\\u1E7D': 'v',\n                '\\u1E7F': 'v',\n                '\\u028B': 'v',\n                '\\uA75F': 'v',\n                '\\u028C': 'v',\n                '\\uA761': 'vy',\n                '\\u24E6': 'w',\n                '\\uFF57': 'w',\n                '\\u1E81': 'w',\n                '\\u1E83': 'w',\n                '\\u0175': 'w',\n                '\\u1E87': 'w',\n                '\\u1E85': 'w',\n                '\\u1E98': 'w',\n                '\\u1E89': 'w',\n                '\\u2C73': 'w',\n                '\\u24E7': 'x',\n                '\\uFF58': 'x',\n                '\\u1E8B': 'x',\n                '\\u1E8D': 'x',\n                '\\u24E8': 'y',\n                '\\uFF59': 'y',\n                '\\u1EF3': 'y',\n                '\\u00FD': 'y',\n                '\\u0177': 'y',\n                '\\u1EF9': 'y',\n                '\\u0233': 'y',\n                '\\u1E8F': 'y',\n                '\\u00FF': 'y',\n                '\\u1EF7': 'y',\n                '\\u1E99': 'y',\n                '\\u1EF5': 'y',\n                '\\u01B4': 'y',\n                '\\u024F': 'y',\n                '\\u1EFF': 'y',\n                '\\u24E9': 'z',\n                '\\uFF5A': 'z',\n                '\\u017A': 'z',\n                '\\u1E91': 'z',\n                '\\u017C': 'z',\n                '\\u017E': 'z',\n                '\\u1E93': 'z',\n                '\\u1E95': 'z',\n                '\\u01B6': 'z',\n                '\\u0225': 'z',\n                '\\u0240': 'z',\n                '\\u2C6C': 'z',\n                '\\uA763': 'z',\n                '\\u0386': '\\u0391',\n                '\\u0388': '\\u0395',\n                '\\u0389': '\\u0397',\n                '\\u038A': '\\u0399',\n                '\\u03AA': '\\u0399',\n                '\\u038C': '\\u039F',\n                '\\u038E': '\\u03A5',\n                '\\u03AB': '\\u03A5',\n                '\\u038F': '\\u03A9',\n                '\\u03AC': '\\u03B1',\n                '\\u03AD': '\\u03B5',\n                '\\u03AE': '\\u03B7',\n                '\\u03AF': '\\u03B9',\n                '\\u03CA': '\\u03B9',\n                '\\u0390': '\\u03B9',\n                '\\u03CC': '\\u03BF',\n                '\\u03CD': '\\u03C5',\n                '\\u03CB': '\\u03C5',\n                '\\u03B0': '\\u03C5',\n                '\\u03C9': '\\u03C9',\n                '\\u03C2': '\\u03C3'\n            };\n\n            return diacritics;\n        });\n\n        S2.define('select2/data/base',[\n            '../utils'\n        ], function (Utils) {\n            function BaseAdapter ($element, options) {\n                BaseAdapter.__super__.constructor.call(this);\n            }\n\n            Utils.Extend(BaseAdapter, Utils.Observable);\n\n            BaseAdapter.prototype.current = function (callback) {\n                throw new Error('The `current` method must be defined in child classes.');\n            };\n\n            BaseAdapter.prototype.query = function (params, callback) {\n                throw new Error('The `query` method must be defined in child classes.');\n            };\n\n            BaseAdapter.prototype.bind = function (container, $container) {\n                // Can be implemented in subclasses\n            };\n\n            BaseAdapter.prototype.destroy = function () {\n                // Can be implemented in subclasses\n            };\n\n            BaseAdapter.prototype.generateResultId = function (container, data) {\n                var id = container.id + '-result-';\n\n                id += Utils.generateChars(4);\n\n                if (data.id != null) {\n                    id += '-' + data.id.toString();\n                } else {\n                    id += '-' + Utils.generateChars(4);\n                }\n                return id;\n            };\n\n            return BaseAdapter;\n        });\n\n        S2.define('select2/data/select',[\n            './base',\n            '../utils',\n            'jquery'\n        ], function (BaseAdapter, Utils, $) {\n            function SelectAdapter ($element, options) {\n                this.$element = $element;\n                this.options = options;\n\n                SelectAdapter.__super__.constructor.call(this);\n            }\n\n            Utils.Extend(SelectAdapter, BaseAdapter);\n\n            SelectAdapter.prototype.current = function (callback) {\n                var data = [];\n                var self = this;\n\n                this.$element.find(':selected').each(function () {\n                    var $option = $(this);\n\n                    var option = self.item($option);\n\n                    data.push(option);\n                });\n\n                callback(data);\n            };\n\n            SelectAdapter.prototype.select = function (data) {\n                var self = this;\n\n                data.selected = true;\n\n                // If data.element is a DOM node, use it instead\n                if ($(data.element).is('option')) {\n                    data.element.selected = true;\n\n                    this.$element.trigger('change');\n\n                    return;\n                }\n\n                if (this.$element.prop('multiple')) {\n                    this.current(function (currentData) {\n                        var val = [];\n\n                        data = [data];\n                        data.push.apply(data, currentData);\n\n                        for (var d = 0; d < data.length; d++) {\n                            var id = data[d].id;\n\n                            if ($.inArray(id, val) === -1) {\n                                val.push(id);\n                            }\n                        }\n\n                        self.$element.val(val);\n                        self.$element.trigger('change');\n                    });\n                } else {\n                    var val = data.id;\n\n                    this.$element.val(val);\n                    this.$element.trigger('change');\n                }\n            };\n\n            SelectAdapter.prototype.unselect = function (data) {\n                var self = this;\n\n                if (!this.$element.prop('multiple')) {\n                    return;\n                }\n\n                data.selected = false;\n\n                if ($(data.element).is('option')) {\n                    data.element.selected = false;\n\n                    this.$element.trigger('change');\n\n                    return;\n                }\n\n                this.current(function (currentData) {\n                    var val = [];\n\n                    for (var d = 0; d < currentData.length; d++) {\n                        var id = currentData[d].id;\n\n                        if (id !== data.id && $.inArray(id, val) === -1) {\n                            val.push(id);\n                        }\n                    }\n\n                    self.$element.val(val);\n\n                    self.$element.trigger('change');\n                });\n            };\n\n            SelectAdapter.prototype.bind = function (container, $container) {\n                var self = this;\n\n                this.container = container;\n\n                container.on('select', function (params) {\n                    self.select(params.data);\n                });\n\n                container.on('unselect', function (params) {\n                    self.unselect(params.data);\n                });\n            };\n\n            SelectAdapter.prototype.destroy = function () {\n                // Remove anything added to child elements\n                this.$element.find('*').each(function () {\n                    // Remove any custom data set by Select2\n                    $.removeData(this, 'data');\n                });\n            };\n\n            SelectAdapter.prototype.query = function (params, callback) {\n                var data = [];\n                var self = this;\n\n                var $options = this.$element.children();\n\n                $options.each(function () {\n                    var $option = $(this);\n\n                    if (!$option.is('option') && !$option.is('optgroup')) {\n                        return;\n                    }\n\n                    var option = self.item($option);\n\n                    var matches = self.matches(params, option);\n\n                    if (matches !== null) {\n                        data.push(matches);\n                    }\n                });\n\n                callback({\n                    results: data\n                });\n            };\n\n            SelectAdapter.prototype.addOptions = function ($options) {\n                Utils.appendMany(this.$element, $options);\n            };\n\n            SelectAdapter.prototype.option = function (data) {\n                var option;\n\n                if (data.children) {\n                    option = document.createElement('optgroup');\n                    option.label = data.text;\n                } else {\n                    option = document.createElement('option');\n\n                    if (option.textContent !== undefined) {\n                        option.textContent = data.text;\n                    } else {\n                        option.innerText = data.text;\n                    }\n                }\n\n                if (data.id !== undefined) {\n                    option.value = data.id;\n                }\n\n                if (data.disabled) {\n                    option.disabled = true;\n                }\n\n                if (data.selected) {\n                    option.selected = true;\n                }\n\n                if (data.title) {\n                    option.title = data.title;\n                }\n\n                var $option = $(option);\n\n                var normalizedData = this._normalizeItem(data);\n                normalizedData.element = option;\n\n                // Override the option's data with the combined data\n                $.data(option, 'data', normalizedData);\n\n                return $option;\n            };\n\n            SelectAdapter.prototype.item = function ($option) {\n                var data = {};\n\n                data = $.data($option[0], 'data');\n\n                if (data != null) {\n                    return data;\n                }\n\n                if ($option.is('option')) {\n                    data = {\n                        id: $option.val(),\n                        text: $option.text(),\n                        disabled: $option.prop('disabled'),\n                        selected: $option.prop('selected'),\n                        title: $option.prop('title')\n                    };\n                } else if ($option.is('optgroup')) {\n                    data = {\n                        text: $option.prop('label'),\n                        children: [],\n                        title: $option.prop('title')\n                    };\n\n                    var $children = $option.children('option');\n                    var children = [];\n\n                    for (var c = 0; c < $children.length; c++) {\n                        var $child = $($children[c]);\n\n                        var child = this.item($child);\n\n                        children.push(child);\n                    }\n\n                    data.children = children;\n                }\n\n                data = this._normalizeItem(data);\n                data.element = $option[0];\n\n                $.data($option[0], 'data', data);\n\n                return data;\n            };\n\n            SelectAdapter.prototype._normalizeItem = function (item) {\n                if (!$.isPlainObject(item)) {\n                    item = {\n                        id: item,\n                        text: item\n                    };\n                }\n\n                item = $.extend({}, {\n                    text: ''\n                }, item);\n\n                var defaults = {\n                    selected: false,\n                    disabled: false\n                };\n\n                if (item.id != null) {\n                    item.id = item.id.toString();\n                }\n\n                if (item.text != null) {\n                    item.text = item.text.toString();\n                }\n\n                if (item._resultId == null && item.id && this.container != null) {\n                    item._resultId = this.generateResultId(this.container, item);\n                }\n\n                return $.extend({}, defaults, item);\n            };\n\n            SelectAdapter.prototype.matches = function (params, data) {\n                var matcher = this.options.get('matcher');\n\n                return matcher(params, data);\n            };\n\n            return SelectAdapter;\n        });\n\n        S2.define('select2/data/array',[\n            './select',\n            '../utils',\n            'jquery'\n        ], function (SelectAdapter, Utils, $) {\n            function ArrayAdapter ($element, options) {\n                var data = options.get('data') || [];\n\n                ArrayAdapter.__super__.constructor.call(this, $element, options);\n\n                this.addOptions(this.convertToOptions(data));\n            }\n\n            Utils.Extend(ArrayAdapter, SelectAdapter);\n\n            ArrayAdapter.prototype.select = function (data) {\n                var $option = this.$element.find('option').filter(function (i, elm) {\n                    return elm.value == data.id.toString();\n                });\n\n                if ($option.length === 0) {\n                    $option = this.option(data);\n\n                    this.addOptions($option);\n                }\n\n                ArrayAdapter.__super__.select.call(this, data);\n            };\n\n            ArrayAdapter.prototype.convertToOptions = function (data) {\n                var self = this;\n\n                var $existing = this.$element.find('option');\n                var existingIds = $existing.map(function () {\n                    return self.item($(this)).id;\n                }).get();\n\n                var $options = [];\n\n                // Filter out all items except for the one passed in the argument\n                function onlyItem (item) {\n                    return function () {\n                        return $(this).val() == item.id;\n                    };\n                }\n\n                for (var d = 0; d < data.length; d++) {\n                    var item = this._normalizeItem(data[d]);\n\n                    // Skip items which were pre-loaded, only merge the data\n                    if ($.inArray(item.id, existingIds) >= 0) {\n                        var $existingOption = $existing.filter(onlyItem(item));\n\n                        var existingData = this.item($existingOption);\n                        var newData = $.extend(true, {}, item, existingData);\n\n                        var $newOption = this.option(newData);\n\n                        $existingOption.replaceWith($newOption);\n\n                        continue;\n                    }\n\n                    var $option = this.option(item);\n\n                    if (item.children) {\n                        var $children = this.convertToOptions(item.children);\n\n                        Utils.appendMany($option, $children);\n                    }\n\n                    $options.push($option);\n                }\n\n                return $options;\n            };\n\n            return ArrayAdapter;\n        });\n\n        S2.define('select2/data/ajax',[\n            './array',\n            '../utils',\n            'jquery'\n        ], function (ArrayAdapter, Utils, $) {\n            function AjaxAdapter ($element, options) {\n                this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n                if (this.ajaxOptions.processResults != null) {\n                    this.processResults = this.ajaxOptions.processResults;\n                }\n\n                AjaxAdapter.__super__.constructor.call(this, $element, options);\n            }\n\n            Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n            AjaxAdapter.prototype._applyDefaults = function (options) {\n                var defaults = {\n                    data: function (params) {\n                        return $.extend({}, params, {\n                            q: params.term\n                        });\n                    },\n                    transport: function (params, success, failure) {\n                        var $request = $.ajax(params);\n\n                        $request.then(success);\n                        $request.fail(failure);\n\n                        return $request;\n                    }\n                };\n\n                return $.extend({}, defaults, options, true);\n            };\n\n            AjaxAdapter.prototype.processResults = function (results) {\n                return results;\n            };\n\n            AjaxAdapter.prototype.query = function (params, callback) {\n                var matches = [];\n                var self = this;\n\n                if (this._request != null) {\n                    // JSONP requests cannot always be aborted\n                    if ($.isFunction(this._request.abort)) {\n                        this._request.abort();\n                    }\n\n                    this._request = null;\n                }\n\n                var options = $.extend({\n                    type: 'GET'\n                }, this.ajaxOptions);\n\n                if (typeof options.url === 'function') {\n                    options.url = options.url.call(this.$element, params);\n                }\n\n                if (typeof options.data === 'function') {\n                    options.data = options.data.call(this.$element, params);\n                }\n\n                function request () {\n                    var $request = options.transport(options, function (data) {\n                        var results = self.processResults(data, params);\n\n                        if (self.options.get('debug') && window.console && console.error) {\n                            // Check to make sure that the response included a `results` key.\n                            if (!results || !results.results || !$.isArray(results.results)) {\n                                console.error(\n                                    'Select2: The AJAX results did not return an array in the ' +\n                                    '`results` key of the response.'\n                                );\n                            }\n                        }\n\n                        callback(results);\n                    }, function () {\n                        // Attempt to detect if a request was aborted\n                        // Only works if the transport exposes a status property\n                        if ($request.status && $request.status === '0') {\n                            return;\n                        }\n\n                        self.trigger('results:message', {\n                            message: 'errorLoading'\n                        });\n                    });\n\n                    self._request = $request;\n                }\n\n                if (this.ajaxOptions.delay && params.term != null) {\n                    if (this._queryTimeout) {\n                        window.clearTimeout(this._queryTimeout);\n                    }\n\n                    this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n                } else {\n                    request();\n                }\n            };\n\n            return AjaxAdapter;\n        });\n\n        S2.define('select2/data/tags',[\n            'jquery'\n        ], function ($) {\n            function Tags (decorated, $element, options) {\n                var tags = options.get('tags');\n\n                var createTag = options.get('createTag');\n\n                if (createTag !== undefined) {\n                    this.createTag = createTag;\n                }\n\n                var insertTag = options.get('insertTag');\n\n                if (insertTag !== undefined) {\n                    this.insertTag = insertTag;\n                }\n\n                decorated.call(this, $element, options);\n\n                if ($.isArray(tags)) {\n                    for (var t = 0; t < tags.length; t++) {\n                        var tag = tags[t];\n                        var item = this._normalizeItem(tag);\n\n                        var $option = this.option(item);\n\n                        this.$element.append($option);\n                    }\n                }\n            }\n\n            Tags.prototype.query = function (decorated, params, callback) {\n                var self = this;\n\n                this._removeOldTags();\n\n                if (params.term == null || params.page != null) {\n                    decorated.call(this, params, callback);\n                    return;\n                }\n\n                function wrapper (obj, child) {\n                    var data = obj.results;\n\n                    for (var i = 0; i < data.length; i++) {\n                        var option = data[i];\n\n                        var checkChildren = (\n                            option.children != null &&\n                            !wrapper({\n                                results: option.children\n                            }, true)\n                        );\n\n                        var optionText = (option.text || '').toUpperCase();\n                        var paramsTerm = (params.term || '').toUpperCase();\n\n                        var checkText = optionText === paramsTerm;\n\n                        if (checkText || checkChildren) {\n                            if (child) {\n                                return false;\n                            }\n\n                            obj.data = data;\n                            callback(obj);\n\n                            return;\n                        }\n                    }\n\n                    if (child) {\n                        return true;\n                    }\n\n                    var tag = self.createTag(params);\n\n                    if (tag != null) {\n                        var $option = self.option(tag);\n                        $option.attr('data-select2-tag', true);\n\n                        self.addOptions([$option]);\n\n                        self.insertTag(data, tag);\n                    }\n\n                    obj.results = data;\n\n                    callback(obj);\n                }\n\n                decorated.call(this, params, wrapper);\n            };\n\n            Tags.prototype.createTag = function (decorated, params) {\n                var term = $.trim(params.term);\n\n                if (term === '') {\n                    return null;\n                }\n\n                return {\n                    id: term,\n                    text: term\n                };\n            };\n\n            Tags.prototype.insertTag = function (_, data, tag) {\n                data.unshift(tag);\n            };\n\n            Tags.prototype._removeOldTags = function (_) {\n                var tag = this._lastTag;\n\n                var $options = this.$element.find('option[data-select2-tag]');\n\n                $options.each(function () {\n                    if (this.selected) {\n                        return;\n                    }\n\n                    $(this).remove();\n                });\n            };\n\n            return Tags;\n        });\n\n        S2.define('select2/data/tokenizer',[\n            'jquery'\n        ], function ($) {\n            function Tokenizer (decorated, $element, options) {\n                var tokenizer = options.get('tokenizer');\n\n                if (tokenizer !== undefined) {\n                    this.tokenizer = tokenizer;\n                }\n\n                decorated.call(this, $element, options);\n            }\n\n            Tokenizer.prototype.bind = function (decorated, container, $container) {\n                decorated.call(this, container, $container);\n\n                this.$search =  container.dropdown.$search || container.selection.$search ||\n                    $container.find('.select2-search__field');\n            };\n\n            Tokenizer.prototype.query = function (decorated, params, callback) {\n                var self = this;\n\n                function createAndSelect (data) {\n                    // Normalize the data object so we can use it for checks\n                    var item = self._normalizeItem(data);\n\n                    // Check if the data object already exists as a tag\n                    // Select it if it doesn't\n                    var $existingOptions = self.$element.find('option').filter(function () {\n                        return $(this).val() === item.id;\n                    });\n\n                    // If an existing option wasn't found for it, create the option\n                    if (!$existingOptions.length) {\n                        var $option = self.option(item);\n                        $option.attr('data-select2-tag', true);\n\n                        self._removeOldTags();\n                        self.addOptions([$option]);\n                    }\n\n                    // Select the item, now that we know there is an option for it\n                    select(item);\n                }\n\n                function select (data) {\n                    self.trigger('select', {\n                        data: data\n                    });\n                }\n\n                params.term = params.term || '';\n\n                var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n                if (tokenData.term !== params.term) {\n                    // Replace the search term if we have the search box\n                    if (this.$search.length) {\n                        this.$search.val(tokenData.term);\n                        this.$search.focus();\n                    }\n\n                    params.term = tokenData.term;\n                }\n\n                decorated.call(this, params, callback);\n            };\n\n            Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n                var separators = options.get('tokenSeparators') || [];\n                var term = params.term;\n                var i = 0;\n\n                var createTag = this.createTag || function (params) {\n                    return {\n                        id: params.term,\n                        text: params.term\n                    };\n                };\n\n                while (i < term.length) {\n                    var termChar = term[i];\n\n                    if ($.inArray(termChar, separators) === -1) {\n                        i++;\n\n                        continue;\n                    }\n\n                    var part = term.substr(0, i);\n                    var partParams = $.extend({}, params, {\n                        term: part\n                    });\n\n                    var data = createTag(partParams);\n\n                    if (data == null) {\n                        i++;\n                        continue;\n                    }\n\n                    callback(data);\n\n                    // Reset the term to not include the tokenized portion\n                    term = term.substr(i + 1) || '';\n                    i = 0;\n                }\n\n                return {\n                    term: term\n                };\n            };\n\n            return Tokenizer;\n        });\n\n        S2.define('select2/data/minimumInputLength',[\n\n        ], function () {\n            function MinimumInputLength (decorated, $e, options) {\n                this.minimumInputLength = options.get('minimumInputLength');\n\n                decorated.call(this, $e, options);\n            }\n\n            MinimumInputLength.prototype.query = function (decorated, params, callback) {\n                params.term = params.term || '';\n\n                if (params.term.length < this.minimumInputLength) {\n                    this.trigger('results:message', {\n                        message: 'inputTooShort',\n                        args: {\n                            minimum: this.minimumInputLength,\n                            input: params.term,\n                            params: params\n                        }\n                    });\n\n                    return;\n                }\n\n                decorated.call(this, params, callback);\n            };\n\n            return MinimumInputLength;\n        });\n\n        S2.define('select2/data/maximumInputLength',[\n\n        ], function () {\n            function MaximumInputLength (decorated, $e, options) {\n                this.maximumInputLength = options.get('maximumInputLength');\n\n                decorated.call(this, $e, options);\n            }\n\n            MaximumInputLength.prototype.query = function (decorated, params, callback) {\n                params.term = params.term || '';\n\n                if (this.maximumInputLength > 0 &&\n                    params.term.length > this.maximumInputLength) {\n                    this.trigger('results:message', {\n                        message: 'inputTooLong',\n                        args: {\n                            maximum: this.maximumInputLength,\n                            input: params.term,\n                            params: params\n                        }\n                    });\n\n                    return;\n                }\n\n                decorated.call(this, params, callback);\n            };\n\n            return MaximumInputLength;\n        });\n\n        S2.define('select2/data/maximumSelectionLength',[\n\n        ], function (){\n            function MaximumSelectionLength (decorated, $e, options) {\n                this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n                decorated.call(this, $e, options);\n            }\n\n            MaximumSelectionLength.prototype.query =\n                function (decorated, params, callback) {\n                    var self = this;\n\n                    this.current(function (currentData) {\n                        var count = currentData != null ? currentData.length : 0;\n                        if (self.maximumSelectionLength > 0 &&\n                            count >= self.maximumSelectionLength) {\n                            self.trigger('results:message', {\n                                message: 'maximumSelected',\n                                args: {\n                                    maximum: self.maximumSelectionLength\n                                }\n                            });\n                            return;\n                        }\n                        decorated.call(self, params, callback);\n                    });\n                };\n\n            return MaximumSelectionLength;\n        });\n\n        S2.define('select2/dropdown',[\n            'jquery',\n            './utils'\n        ], function ($, Utils) {\n            function Dropdown ($element, options) {\n                this.$element = $element;\n                this.options = options;\n\n                Dropdown.__super__.constructor.call(this);\n            }\n\n            Utils.Extend(Dropdown, Utils.Observable);\n\n            Dropdown.prototype.render = function () {\n                var $dropdown = $(\n                    '<span class=\"select2-dropdown\">' +\n                    '<span class=\"select2-results\"></span>' +\n                    '</span>'\n                );\n\n                $dropdown.attr('dir', this.options.get('dir'));\n\n                this.$dropdown = $dropdown;\n\n                return $dropdown;\n            };\n\n            Dropdown.prototype.bind = function () {\n                // Should be implemented in subclasses\n            };\n\n            Dropdown.prototype.position = function ($dropdown, $container) {\n                // Should be implmented in subclasses\n            };\n\n            Dropdown.prototype.destroy = function () {\n                // Remove the dropdown from the DOM\n                this.$dropdown.remove();\n            };\n\n            return Dropdown;\n        });\n\n        S2.define('select2/dropdown/search',[\n            'jquery',\n            '../utils'\n        ], function ($, Utils) {\n            function Search () { }\n\n            Search.prototype.render = function (decorated) {\n                var $rendered = decorated.call(this);\n\n                var $search = $(\n                    '<span class=\"select2-search select2-search--dropdown\">' +\n                    '<input class=\"select2-search__field\" type=\"search\" tabindex=\"-1\"' +\n                    ' autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"none\"' +\n                    ' spellcheck=\"false\" role=\"textbox\" />' +\n                    '</span>'\n                );\n\n                this.$searchContainer = $search;\n                this.$search = $search.find('input');\n\n                $rendered.prepend($search);\n\n                return $rendered;\n            };\n\n            Search.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                this.$search.on('keydown', function (evt) {\n                    self.trigger('keypress', evt);\n\n                    self._keyUpPrevented = evt.isDefaultPrevented();\n                });\n\n                // Workaround for browsers which do not support the `input` event\n                // This will prevent double-triggering of events for browsers which support\n                // both the `keyup` and `input` events.\n                this.$search.on('input', function (evt) {\n                    // Unbind the duplicated `keyup` event\n                    $(this).off('keyup');\n                });\n\n                this.$search.on('keyup input', function (evt) {\n                    self.handleSearch(evt);\n                });\n\n                container.on('open', function () {\n                    self.$search.attr('tabindex', 0);\n\n                    self.$search.focus();\n\n                    window.setTimeout(function () {\n                        self.$search.focus();\n                    }, 0);\n                });\n\n                container.on('close', function () {\n                    self.$search.attr('tabindex', -1);\n\n                    self.$search.val('');\n                });\n\n                container.on('focus', function () {\n                    if (!container.isOpen()) {\n                        self.$search.focus();\n                    }\n                });\n\n                container.on('results:all', function (params) {\n                    if (params.query.term == null || params.query.term === '') {\n                        var showSearch = self.showSearch(params);\n\n                        if (showSearch) {\n                            self.$searchContainer.removeClass('select2-search--hide');\n                        } else {\n                            self.$searchContainer.addClass('select2-search--hide');\n                        }\n                    }\n                });\n            };\n\n            Search.prototype.handleSearch = function (evt) {\n                if (!this._keyUpPrevented) {\n                    var input = this.$search.val();\n\n                    this.trigger('query', {\n                        term: input\n                    });\n                }\n\n                this._keyUpPrevented = false;\n            };\n\n            Search.prototype.showSearch = function (_, params) {\n                return true;\n            };\n\n            return Search;\n        });\n\n        S2.define('select2/dropdown/hidePlaceholder',[\n\n        ], function () {\n            function HidePlaceholder (decorated, $element, options, dataAdapter) {\n                this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n                decorated.call(this, $element, options, dataAdapter);\n            }\n\n            HidePlaceholder.prototype.append = function (decorated, data) {\n                data.results = this.removePlaceholder(data.results);\n\n                decorated.call(this, data);\n            };\n\n            HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n                if (typeof placeholder === 'string') {\n                    placeholder = {\n                        id: '',\n                        text: placeholder\n                    };\n                }\n\n                return placeholder;\n            };\n\n            HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n                var modifiedData = data.slice(0);\n\n                for (var d = data.length - 1; d >= 0; d--) {\n                    var item = data[d];\n\n                    if (this.placeholder.id === item.id) {\n                        modifiedData.splice(d, 1);\n                    }\n                }\n\n                return modifiedData;\n            };\n\n            return HidePlaceholder;\n        });\n\n        S2.define('select2/dropdown/infiniteScroll',[\n            'jquery'\n        ], function ($) {\n            function InfiniteScroll (decorated, $element, options, dataAdapter) {\n                this.lastParams = {};\n\n                decorated.call(this, $element, options, dataAdapter);\n\n                this.$loadingMore = this.createLoadingMore();\n                this.loading = false;\n            }\n\n            InfiniteScroll.prototype.append = function (decorated, data) {\n                this.$loadingMore.remove();\n                this.loading = false;\n\n                decorated.call(this, data);\n\n                if (this.showLoadingMore(data)) {\n                    this.$results.append(this.$loadingMore);\n                }\n            };\n\n            InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                container.on('query', function (params) {\n                    self.lastParams = params;\n                    self.loading = true;\n                });\n\n                container.on('query:append', function (params) {\n                    self.lastParams = params;\n                    self.loading = true;\n                });\n\n                this.$results.on('scroll', function () {\n                    var isLoadMoreVisible = $.contains(\n                        document.documentElement,\n                        self.$loadingMore[0]\n                    );\n\n                    if (self.loading || !isLoadMoreVisible) {\n                        return;\n                    }\n\n                    var currentOffset = self.$results.offset().top +\n                        self.$results.outerHeight(false);\n                    var loadingMoreOffset = self.$loadingMore.offset().top +\n                        self.$loadingMore.outerHeight(false);\n\n                    if (currentOffset + 50 >= loadingMoreOffset) {\n                        self.loadMore();\n                    }\n                });\n            };\n\n            InfiniteScroll.prototype.loadMore = function () {\n                this.loading = true;\n\n                var params = $.extend({}, {page: 1}, this.lastParams);\n\n                params.page++;\n\n                this.trigger('query:append', params);\n            };\n\n            InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n                return data.pagination && data.pagination.more;\n            };\n\n            InfiniteScroll.prototype.createLoadingMore = function () {\n                var $option = $(\n                    '<li ' +\n                    'class=\"select2-results__option select2-results__option--load-more\"' +\n                    'role=\"treeitem\" aria-disabled=\"true\"></li>'\n                );\n\n                var message = this.options.get('translations').get('loadingMore');\n\n                $option.html(message(this.lastParams));\n\n                return $option;\n            };\n\n            return InfiniteScroll;\n        });\n\n        S2.define('select2/dropdown/attachBody',[\n            'jquery',\n            '../utils'\n        ], function ($, Utils) {\n            function AttachBody (decorated, $element, options) {\n                this.$dropdownParent = options.get('dropdownParent') || $(document.body);\n\n                decorated.call(this, $element, options);\n            }\n\n            AttachBody.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                var setupResultsEvents = false;\n\n                decorated.call(this, container, $container);\n\n                container.on('open', function () {\n                    self._showDropdown();\n                    self._attachPositioningHandler(container);\n\n                    if (!setupResultsEvents) {\n                        setupResultsEvents = true;\n\n                        container.on('results:all', function () {\n                            self._positionDropdown();\n                            self._resizeDropdown();\n                        });\n\n                        container.on('results:append', function () {\n                            self._positionDropdown();\n                            self._resizeDropdown();\n                        });\n                    }\n                });\n\n                container.on('close', function () {\n                    self._hideDropdown();\n                    self._detachPositioningHandler(container);\n                });\n\n                this.$dropdownContainer.on('mousedown', function (evt) {\n                    evt.stopPropagation();\n                });\n            };\n\n            AttachBody.prototype.destroy = function (decorated) {\n                decorated.call(this);\n\n                this.$dropdownContainer.remove();\n            };\n\n            AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n                // Clone all of the container classes\n                $dropdown.attr('class', $container.attr('class'));\n\n                $dropdown.removeClass('select2');\n                $dropdown.addClass('select2-container--open');\n\n                $dropdown.css({\n                    position: 'absolute',\n                    top: -999999\n                });\n\n                this.$container = $container;\n            };\n\n            AttachBody.prototype.render = function (decorated) {\n                var $container = $('<span></span>');\n\n                var $dropdown = decorated.call(this);\n                $container.append($dropdown);\n\n                this.$dropdownContainer = $container;\n\n                return $container;\n            };\n\n            AttachBody.prototype._hideDropdown = function (decorated) {\n                this.$dropdownContainer.detach();\n            };\n\n            AttachBody.prototype._attachPositioningHandler =\n                function (decorated, container) {\n                    var self = this;\n\n                    var scrollEvent = 'scroll.select2.' + container.id;\n                    var resizeEvent = 'resize.select2.' + container.id;\n                    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n                    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n                    $watchers.each(function () {\n                        $(this).data('select2-scroll-position', {\n                            x: $(this).scrollLeft(),\n                            y: $(this).scrollTop()\n                        });\n                    });\n\n                    $watchers.on(scrollEvent, function (ev) {\n                        var position = $(this).data('select2-scroll-position');\n                        $(this).scrollTop(position.y);\n                    });\n\n                    $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n                        function (e) {\n                            self._positionDropdown();\n                            self._resizeDropdown();\n                        });\n                };\n\n            AttachBody.prototype._detachPositioningHandler =\n                function (decorated, container) {\n                    var scrollEvent = 'scroll.select2.' + container.id;\n                    var resizeEvent = 'resize.select2.' + container.id;\n                    var orientationEvent = 'orientationchange.select2.' + container.id;\n\n                    var $watchers = this.$container.parents().filter(Utils.hasScroll);\n                    $watchers.off(scrollEvent);\n\n                    $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n                };\n\n            AttachBody.prototype._positionDropdown = function () {\n                var $window = $(window);\n\n                var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n                var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n                var newDirection = null;\n\n                var offset = this.$container.offset();\n\n                offset.bottom = offset.top + this.$container.outerHeight(false);\n\n                var container = {\n                    height: this.$container.outerHeight(false)\n                };\n\n                container.top = offset.top;\n                container.bottom = offset.top + container.height;\n\n                var dropdown = {\n                    height: this.$dropdown.outerHeight(false)\n                };\n\n                var viewport = {\n                    top: $window.scrollTop(),\n                    bottom: $window.scrollTop() + $window.height()\n                };\n\n                var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n                var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n                var css = {\n                    left: offset.left,\n                    top: container.bottom\n                };\n\n                // Determine what the parent element is to use for calciulating the offset\n                var $offsetParent = this.$dropdownParent;\n\n                // For statically positoned elements, we need to get the element\n                // that is determining the offset\n                if ($offsetParent.css('position') === 'static') {\n                    $offsetParent = $offsetParent.offsetParent();\n                }\n\n                var parentOffset = $offsetParent.offset();\n\n                css.top -= parentOffset.top;\n                css.left -= parentOffset.left;\n\n                if (!isCurrentlyAbove && !isCurrentlyBelow) {\n                    newDirection = 'below';\n                }\n\n                if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n                    newDirection = 'above';\n                } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n                    newDirection = 'below';\n                }\n\n                if (newDirection == 'above' ||\n                    (isCurrentlyAbove && newDirection !== 'below')) {\n                    css.top = container.top - parentOffset.top - dropdown.height;\n                }\n\n                if (newDirection != null) {\n                    this.$dropdown\n                        .removeClass('select2-dropdown--below select2-dropdown--above')\n                        .addClass('select2-dropdown--' + newDirection);\n                    this.$container\n                        .removeClass('select2-container--below select2-container--above')\n                        .addClass('select2-container--' + newDirection);\n                }\n\n                this.$dropdownContainer.css(css);\n            };\n\n            AttachBody.prototype._resizeDropdown = function () {\n                var css = {\n                    width: this.$container.outerWidth(false) + 'px'\n                };\n\n                if (this.options.get('dropdownAutoWidth')) {\n                    css.minWidth = css.width;\n                    css.position = 'relative';\n                    css.width = 'auto';\n                }\n\n                this.$dropdown.css(css);\n            };\n\n            AttachBody.prototype._showDropdown = function (decorated) {\n                this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n                this._positionDropdown();\n                this._resizeDropdown();\n            };\n\n            return AttachBody;\n        });\n\n        S2.define('select2/dropdown/minimumResultsForSearch',[\n\n        ], function () {\n            function countResults (data) {\n                var count = 0;\n\n                for (var d = 0; d < data.length; d++) {\n                    var item = data[d];\n\n                    if (item.children) {\n                        count += countResults(item.children);\n                    } else {\n                        count++;\n                    }\n                }\n\n                return count;\n            }\n\n            function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n                this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n                if (this.minimumResultsForSearch < 0) {\n                    this.minimumResultsForSearch = Infinity;\n                }\n\n                decorated.call(this, $element, options, dataAdapter);\n            }\n\n            MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n                if (countResults(params.data.results) < this.minimumResultsForSearch) {\n                    return false;\n                }\n\n                return decorated.call(this, params);\n            };\n\n            return MinimumResultsForSearch;\n        });\n\n        S2.define('select2/dropdown/selectOnClose',[\n\n        ], function () {\n            function SelectOnClose () { }\n\n            SelectOnClose.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                container.on('close', function (params) {\n                    self._handleSelectOnClose(params);\n                });\n            };\n\n            SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n                if (params && params.originalSelect2Event != null) {\n                    var event = params.originalSelect2Event;\n\n                    // Don't select an item if the close event was triggered from a select or\n                    // unselect event\n                    if (event._type === 'select' || event._type === 'unselect') {\n                        return;\n                    }\n                }\n\n                var $highlightedResults = this.getHighlightedResults();\n\n                // Only select highlighted results\n                if ($highlightedResults.length < 1) {\n                    return;\n                }\n\n                var data = $highlightedResults.data('data');\n\n                // Don't re-select already selected resulte\n                if (\n                    (data.element != null && data.element.selected) ||\n                    (data.element == null && data.selected)\n                ) {\n                    return;\n                }\n\n                this.trigger('select', {\n                    data: data\n                });\n            };\n\n            return SelectOnClose;\n        });\n\n        S2.define('select2/dropdown/closeOnSelect',[\n\n        ], function () {\n            function CloseOnSelect () { }\n\n            CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n                var self = this;\n\n                decorated.call(this, container, $container);\n\n                container.on('select', function (evt) {\n                    self._selectTriggered(evt);\n                });\n\n                container.on('unselect', function (evt) {\n                    self._selectTriggered(evt);\n                });\n            };\n\n            CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n                var originalEvent = evt.originalEvent;\n\n                // Don't close if the control key is being held\n                if (originalEvent && originalEvent.ctrlKey) {\n                    return;\n                }\n\n                this.trigger('close', {\n                    originalEvent: originalEvent,\n                    originalSelect2Event: evt\n                });\n            };\n\n            return CloseOnSelect;\n        });\n\n        S2.define('select2/i18n/en',[],function () {\n            // English\n            return {\n                errorLoading: function () {\n                    return 'The results could not be loaded.';\n                },\n                inputTooLong: function (args) {\n                    var overChars = args.input.length - args.maximum;\n\n                    var message = 'Please delete ' + overChars + ' character';\n\n                    if (overChars != 1) {\n                        message += 's';\n                    }\n\n                    return message;\n                },\n                inputTooShort: function (args) {\n                    var remainingChars = args.minimum - args.input.length;\n\n                    var message = 'Please enter ' + remainingChars + ' or more characters';\n\n                    return message;\n                },\n                loadingMore: function () {\n                    return 'Loading more results…';\n                },\n                maximumSelected: function (args) {\n                    var message = 'You can only select ' + args.maximum + ' item';\n\n                    if (args.maximum != 1) {\n                        message += 's';\n                    }\n\n                    return message;\n                },\n                noResults: function () {\n                    return 'No results found';\n                },\n                searching: function () {\n                    return 'Searching…';\n                }\n            };\n        });\n\n        S2.define('select2/defaults',[\n            'jquery',\n            'require',\n\n            './results',\n\n            './selection/single',\n            './selection/multiple',\n            './selection/placeholder',\n            './selection/allowClear',\n            './selection/search',\n            './selection/eventRelay',\n\n            './utils',\n            './translation',\n            './diacritics',\n\n            './data/select',\n            './data/array',\n            './data/ajax',\n            './data/tags',\n            './data/tokenizer',\n            './data/minimumInputLength',\n            './data/maximumInputLength',\n            './data/maximumSelectionLength',\n\n            './dropdown',\n            './dropdown/search',\n            './dropdown/hidePlaceholder',\n            './dropdown/infiniteScroll',\n            './dropdown/attachBody',\n            './dropdown/minimumResultsForSearch',\n            './dropdown/selectOnClose',\n            './dropdown/closeOnSelect',\n\n            './i18n/en'\n        ], function ($, require,\n\n                     ResultsList,\n\n                     SingleSelection, MultipleSelection, Placeholder, AllowClear,\n                     SelectionSearch, EventRelay,\n\n                     Utils, Translation, DIACRITICS,\n\n                     SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n                     MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n                     Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n                     AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n                     EnglishTranslation) {\n            function Defaults () {\n                this.reset();\n            }\n\n            Defaults.prototype.apply = function (options) {\n                options = $.extend(true, {}, this.defaults, options);\n\n                if (options.dataAdapter == null) {\n                    if (options.ajax != null) {\n                        options.dataAdapter = AjaxData;\n                    } else if (options.data != null) {\n                        options.dataAdapter = ArrayData;\n                    } else {\n                        options.dataAdapter = SelectData;\n                    }\n\n                    if (options.minimumInputLength > 0) {\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            MinimumInputLength\n                        );\n                    }\n\n                    if (options.maximumInputLength > 0) {\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            MaximumInputLength\n                        );\n                    }\n\n                    if (options.maximumSelectionLength > 0) {\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            MaximumSelectionLength\n                        );\n                    }\n\n                    if (options.tags) {\n                        options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n                    }\n\n                    if (options.tokenSeparators != null || options.tokenizer != null) {\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            Tokenizer\n                        );\n                    }\n\n                    if (options.query != null) {\n                        var Query = require(options.amdBase + 'compat/query');\n\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            Query\n                        );\n                    }\n\n                    if (options.initSelection != null) {\n                        var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n                        options.dataAdapter = Utils.Decorate(\n                            options.dataAdapter,\n                            InitSelection\n                        );\n                    }\n                }\n\n                if (options.resultsAdapter == null) {\n                    options.resultsAdapter = ResultsList;\n\n                    if (options.ajax != null) {\n                        options.resultsAdapter = Utils.Decorate(\n                            options.resultsAdapter,\n                            InfiniteScroll\n                        );\n                    }\n\n                    if (options.placeholder != null) {\n                        options.resultsAdapter = Utils.Decorate(\n                            options.resultsAdapter,\n                            HidePlaceholder\n                        );\n                    }\n\n                    if (options.selectOnClose) {\n                        options.resultsAdapter = Utils.Decorate(\n                            options.resultsAdapter,\n                            SelectOnClose\n                        );\n                    }\n                }\n\n                if (options.dropdownAdapter == null) {\n                    if (options.multiple) {\n                        options.dropdownAdapter = Dropdown;\n                    } else {\n                        var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n                        options.dropdownAdapter = SearchableDropdown;\n                    }\n\n                    if (options.minimumResultsForSearch !== 0) {\n                        options.dropdownAdapter = Utils.Decorate(\n                            options.dropdownAdapter,\n                            MinimumResultsForSearch\n                        );\n                    }\n\n                    if (options.closeOnSelect) {\n                        options.dropdownAdapter = Utils.Decorate(\n                            options.dropdownAdapter,\n                            CloseOnSelect\n                        );\n                    }\n\n                    if (\n                        options.dropdownCssClass != null ||\n                        options.dropdownCss != null ||\n                        options.adaptDropdownCssClass != null\n                    ) {\n                        var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n                        options.dropdownAdapter = Utils.Decorate(\n                            options.dropdownAdapter,\n                            DropdownCSS\n                        );\n                    }\n\n                    options.dropdownAdapter = Utils.Decorate(\n                        options.dropdownAdapter,\n                        AttachBody\n                    );\n                }\n\n                if (options.selectionAdapter == null) {\n                    if (options.multiple) {\n                        options.selectionAdapter = MultipleSelection;\n                    } else {\n                        options.selectionAdapter = SingleSelection;\n                    }\n\n                    // Add the placeholder mixin if a placeholder was specified\n                    if (options.placeholder != null) {\n                        options.selectionAdapter = Utils.Decorate(\n                            options.selectionAdapter,\n                            Placeholder\n                        );\n                    }\n\n                    if (options.allowClear) {\n                        options.selectionAdapter = Utils.Decorate(\n                            options.selectionAdapter,\n                            AllowClear\n                        );\n                    }\n\n                    if (options.multiple) {\n                        options.selectionAdapter = Utils.Decorate(\n                            options.selectionAdapter,\n                            SelectionSearch\n                        );\n                    }\n\n                    if (\n                        options.containerCssClass != null ||\n                        options.containerCss != null ||\n                        options.adaptContainerCssClass != null\n                    ) {\n                        var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n                        options.selectionAdapter = Utils.Decorate(\n                            options.selectionAdapter,\n                            ContainerCSS\n                        );\n                    }\n\n                    options.selectionAdapter = Utils.Decorate(\n                        options.selectionAdapter,\n                        EventRelay\n                    );\n                }\n\n                if (typeof options.language === 'string') {\n                    // Check if the language is specified with a region\n                    if (options.language.indexOf('-') > 0) {\n                        // Extract the region information if it is included\n                        var languageParts = options.language.split('-');\n                        var baseLanguage = languageParts[0];\n\n                        options.language = [options.language, baseLanguage];\n                    } else {\n                        options.language = [options.language];\n                    }\n                }\n\n                if ($.isArray(options.language)) {\n                    var languages = new Translation();\n                    options.language.push('en');\n\n                    var languageNames = options.language;\n\n                    for (var l = 0; l < languageNames.length; l++) {\n                        var name = languageNames[l];\n                        var language = {};\n\n                        try {\n                            // Try to load it with the original name\n                            language = Translation.loadPath(name);\n                        } catch (e) {\n                            try {\n                                // If we couldn't load it, check if it wasn't the full path\n                                name = this.defaults.amdLanguageBase + name;\n                                language = Translation.loadPath(name);\n                            } catch (ex) {\n                                // The translation could not be loaded at all. Sometimes this is\n                                // because of a configuration problem, other times this can be\n                                // because of how Select2 helps load all possible translation files.\n                                if (options.debug && window.console && console.warn) {\n                                    console.warn(\n                                        'Select2: The language file for \"' + name + '\" could not be ' +\n                                        'automatically loaded. A fallback will be used instead.'\n                                    );\n                                }\n\n                                continue;\n                            }\n                        }\n\n                        languages.extend(language);\n                    }\n\n                    options.translations = languages;\n                } else {\n                    var baseTranslation = Translation.loadPath(\n                        this.defaults.amdLanguageBase + 'en'\n                    );\n                    var customTranslation = new Translation(options.language);\n\n                    customTranslation.extend(baseTranslation);\n\n                    options.translations = customTranslation;\n                }\n\n                return options;\n            };\n\n            Defaults.prototype.reset = function () {\n                function stripDiacritics (text) {\n                    // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n                    function match(a) {\n                        return DIACRITICS[a] || a;\n                    }\n\n                    return text.replace(/[^\\u0000-\\u007E]/g, match);\n                }\n\n                function matcher (params, data) {\n                    // Always return the object if there is nothing to compare\n                    if ($.trim(params.term) === '') {\n                        return data;\n                    }\n\n                    // Do a recursive check for options with children\n                    if (data.children && data.children.length > 0) {\n                        // Clone the data object if there are children\n                        // This is required as we modify the object to remove any non-matches\n                        var match = $.extend(true, {}, data);\n\n                        // Check each child of the option\n                        for (var c = data.children.length - 1; c >= 0; c--) {\n                            var child = data.children[c];\n\n                            var matches = matcher(params, child);\n\n                            // If there wasn't a match, remove the object in the array\n                            if (matches == null) {\n                                match.children.splice(c, 1);\n                            }\n                        }\n\n                        // If any children matched, return the new object\n                        if (match.children.length > 0) {\n                            return match;\n                        }\n\n                        // If there were no matching children, check just the plain object\n                        return matcher(params, match);\n                    }\n\n                    var original = stripDiacritics(data.text).toUpperCase();\n                    var term = stripDiacritics(params.term).toUpperCase();\n\n                    // Check if the text contains the term\n                    if (original.indexOf(term) > -1) {\n                        return data;\n                    }\n\n                    // If it doesn't contain the term, don't return anything\n                    return null;\n                }\n\n                this.defaults = {\n                    amdBase: './',\n                    amdLanguageBase: './i18n/',\n                    closeOnSelect: true,\n                    debug: false,\n                    dropdownAutoWidth: false,\n                    escapeMarkup: Utils.escapeMarkup,\n                    language: EnglishTranslation,\n                    matcher: matcher,\n                    minimumInputLength: 0,\n                    maximumInputLength: 0,\n                    maximumSelectionLength: 0,\n                    minimumResultsForSearch: 0,\n                    selectOnClose: false,\n                    sorter: function (data) {\n                        return data;\n                    },\n                    templateResult: function (result) {\n                        return result.text;\n                    },\n                    templateSelection: function (selection) {\n                        return selection.text;\n                    },\n                    theme: 'default',\n                    width: 'resolve'\n                };\n            };\n\n            Defaults.prototype.set = function (key, value) {\n                var camelKey = $.camelCase(key);\n\n                var data = {};\n                data[camelKey] = value;\n\n                var convertedData = Utils._convertData(data);\n\n                $.extend(this.defaults, convertedData);\n            };\n\n            var defaults = new Defaults();\n\n            return defaults;\n        });\n\n        S2.define('select2/options',[\n            'require',\n            'jquery',\n            './defaults',\n            './utils'\n        ], function (require, $, Defaults, Utils) {\n            function Options (options, $element) {\n                this.options = options;\n\n                if ($element != null) {\n                    this.fromElement($element);\n                }\n\n                this.options = Defaults.apply(this.options);\n\n                if ($element && $element.is('input')) {\n                    var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n                    this.options.dataAdapter = Utils.Decorate(\n                        this.options.dataAdapter,\n                        InputCompat\n                    );\n                }\n            }\n\n            Options.prototype.fromElement = function ($e) {\n                var excludedData = ['select2'];\n\n                if (this.options.multiple == null) {\n                    this.options.multiple = $e.prop('multiple');\n                }\n\n                if (this.options.disabled == null) {\n                    this.options.disabled = $e.prop('disabled');\n                }\n\n                if (this.options.language == null) {\n                    if ($e.prop('lang')) {\n                        this.options.language = $e.prop('lang').toLowerCase();\n                    } else if ($e.closest('[lang]').prop('lang')) {\n                        this.options.language = $e.closest('[lang]').prop('lang');\n                    }\n                }\n\n                if (this.options.dir == null) {\n                    if ($e.prop('dir')) {\n                        this.options.dir = $e.prop('dir');\n                    } else if ($e.closest('[dir]').prop('dir')) {\n                        this.options.dir = $e.closest('[dir]').prop('dir');\n                    } else {\n                        this.options.dir = 'ltr';\n                    }\n                }\n\n                $e.prop('disabled', this.options.disabled);\n                $e.prop('multiple', this.options.multiple);\n\n                if ($e.data('select2Tags')) {\n                    if (this.options.debug && window.console && console.warn) {\n                        console.warn(\n                            'Select2: The `data-select2-tags` attribute has been changed to ' +\n                            'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n                            'removed in future versions of Select2.'\n                        );\n                    }\n\n                    $e.data('data', $e.data('select2Tags'));\n                    $e.data('tags', true);\n                }\n\n                if ($e.data('ajaxUrl')) {\n                    if (this.options.debug && window.console && console.warn) {\n                        console.warn(\n                            'Select2: The `data-ajax-url` attribute has been changed to ' +\n                            '`data-ajax--url` and support for the old attribute will be removed' +\n                            ' in future versions of Select2.'\n                        );\n                    }\n\n                    $e.attr('ajax--url', $e.data('ajaxUrl'));\n                    $e.data('ajax--url', $e.data('ajaxUrl'));\n                }\n\n                var dataset = {};\n\n                // Prefer the element's `dataset` attribute if it exists\n                // jQuery 1.x does not correctly handle data attributes with multiple dashes\n                if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n                    dataset = $.extend(true, {}, $e[0].dataset, $e.data());\n                } else {\n                    dataset = $e.data();\n                }\n\n                var data = $.extend(true, {}, dataset);\n\n                data = Utils._convertData(data);\n\n                for (var key in data) {\n                    if ($.inArray(key, excludedData) > -1) {\n                        continue;\n                    }\n\n                    if ($.isPlainObject(this.options[key])) {\n                        $.extend(this.options[key], data[key]);\n                    } else {\n                        this.options[key] = data[key];\n                    }\n                }\n\n                return this;\n            };\n\n            Options.prototype.get = function (key) {\n                return this.options[key];\n            };\n\n            Options.prototype.set = function (key, val) {\n                this.options[key] = val;\n            };\n\n            return Options;\n        });\n\n        S2.define('select2/core',[\n            'jquery',\n            './options',\n            './utils',\n            './keys'\n        ], function ($, Options, Utils, KEYS) {\n            var Select2 = function ($element, options) {\n                if ($element.data('select2') != null) {\n                    $element.data('select2').destroy();\n                }\n\n                this.$element = $element;\n\n                this.id = this._generateId($element);\n\n                options = options || {};\n\n                this.options = new Options(options, $element);\n\n                Select2.__super__.constructor.call(this);\n\n                // Set up the tabindex\n\n                var tabindex = $element.attr('tabindex') || 0;\n                $element.data('old-tabindex', tabindex);\n                $element.attr('tabindex', '-1');\n\n                // Set up containers and adapters\n\n                var DataAdapter = this.options.get('dataAdapter');\n                this.dataAdapter = new DataAdapter($element, this.options);\n\n                var $container = this.render();\n\n                this._placeContainer($container);\n\n                var SelectionAdapter = this.options.get('selectionAdapter');\n                this.selection = new SelectionAdapter($element, this.options);\n                this.$selection = this.selection.render();\n\n                this.selection.position(this.$selection, $container);\n\n                var DropdownAdapter = this.options.get('dropdownAdapter');\n                this.dropdown = new DropdownAdapter($element, this.options);\n                this.$dropdown = this.dropdown.render();\n\n                this.dropdown.position(this.$dropdown, $container);\n\n                var ResultsAdapter = this.options.get('resultsAdapter');\n                this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n                this.$results = this.results.render();\n\n                this.results.position(this.$results, this.$dropdown);\n\n                // Bind events\n\n                var self = this;\n\n                // Bind the container to all of the adapters\n                this._bindAdapters();\n\n                // Register any DOM event handlers\n                this._registerDomEvents();\n\n                // Register any internal event handlers\n                this._registerDataEvents();\n                this._registerSelectionEvents();\n                this._registerDropdownEvents();\n                this._registerResultsEvents();\n                this._registerEvents();\n\n                // Set the initial state\n                this.dataAdapter.current(function (initialData) {\n                    self.trigger('selection:update', {\n                        data: initialData\n                    });\n                });\n\n                // Hide the original select\n                $element.addClass('select2-hidden-accessible');\n                $element.attr('aria-hidden', 'true');\n\n                // Synchronize any monitored attributes\n                this._syncAttributes();\n\n                $element.data('select2', this);\n            };\n\n            Utils.Extend(Select2, Utils.Observable);\n\n            Select2.prototype._generateId = function ($element) {\n                var id = '';\n\n                if ($element.attr('id') != null) {\n                    id = $element.attr('id');\n                } else if ($element.attr('name') != null) {\n                    id = $element.attr('name') + '-' + Utils.generateChars(2);\n                } else {\n                    id = Utils.generateChars(4);\n                }\n\n                id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n                id = 'select2-' + id;\n\n                return id;\n            };\n\n            Select2.prototype._placeContainer = function ($container) {\n                $container.insertAfter(this.$element);\n\n                var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n                if (width != null) {\n                    $container.css('width', width);\n                }\n            };\n\n            Select2.prototype._resolveWidth = function ($element, method) {\n                var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n                if (method == 'resolve') {\n                    var styleWidth = this._resolveWidth($element, 'style');\n\n                    if (styleWidth != null) {\n                        return styleWidth;\n                    }\n\n                    return this._resolveWidth($element, 'element');\n                }\n\n                if (method == 'element') {\n                    var elementWidth = $element.outerWidth(false);\n\n                    if (elementWidth <= 0) {\n                        return 'auto';\n                    }\n\n                    return elementWidth + 'px';\n                }\n\n                if (method == 'style') {\n                    var style = $element.attr('style');\n\n                    if (typeof(style) !== 'string') {\n                        return null;\n                    }\n\n                    var attrs = style.split(';');\n\n                    for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n                        var attr = attrs[i].replace(/\\s/g, '');\n                        var matches = attr.match(WIDTH);\n\n                        if (matches !== null && matches.length >= 1) {\n                            return matches[1];\n                        }\n                    }\n\n                    return null;\n                }\n\n                return method;\n            };\n\n            Select2.prototype._bindAdapters = function () {\n                this.dataAdapter.bind(this, this.$container);\n                this.selection.bind(this, this.$container);\n\n                this.dropdown.bind(this, this.$container);\n                this.results.bind(this, this.$container);\n            };\n\n            Select2.prototype._registerDomEvents = function () {\n                var self = this;\n\n                this.$element.on('change.select2', function () {\n                    self.dataAdapter.current(function (data) {\n                        self.trigger('selection:update', {\n                            data: data\n                        });\n                    });\n                });\n\n                this.$element.on('focus.select2', function (evt) {\n                    self.trigger('focus', evt);\n                });\n\n                this._syncA = Utils.bind(this._syncAttributes, this);\n                this._syncS = Utils.bind(this._syncSubtree, this);\n\n                if (this.$element[0].attachEvent) {\n                    this.$element[0].attachEvent('onpropertychange', this._syncA);\n                }\n\n                var observer = window.MutationObserver ||\n                    window.WebKitMutationObserver ||\n                    window.MozMutationObserver\n                ;\n\n                if (observer != null) {\n                    this._observer = new observer(function (mutations) {\n                        $.each(mutations, self._syncA);\n                        $.each(mutations, self._syncS);\n                    });\n                    this._observer.observe(this.$element[0], {\n                        attributes: true,\n                        childList: true,\n                        subtree: false\n                    });\n                } else if (this.$element[0].addEventListener) {\n                    this.$element[0].addEventListener(\n                        'DOMAttrModified',\n                        self._syncA,\n                        false\n                    );\n                    this.$element[0].addEventListener(\n                        'DOMNodeInserted',\n                        self._syncS,\n                        false\n                    );\n                    this.$element[0].addEventListener(\n                        'DOMNodeRemoved',\n                        self._syncS,\n                        false\n                    );\n                }\n            };\n\n            Select2.prototype._registerDataEvents = function () {\n                var self = this;\n\n                this.dataAdapter.on('*', function (name, params) {\n                    self.trigger(name, params);\n                });\n            };\n\n            Select2.prototype._registerSelectionEvents = function () {\n                var self = this;\n                var nonRelayEvents = ['toggle', 'focus'];\n\n                this.selection.on('toggle', function () {\n                    self.toggleDropdown();\n                });\n\n                this.selection.on('focus', function (params) {\n                    self.focus(params);\n                });\n\n                this.selection.on('*', function (name, params) {\n                    if ($.inArray(name, nonRelayEvents) !== -1) {\n                        return;\n                    }\n\n                    self.trigger(name, params);\n                });\n            };\n\n            Select2.prototype._registerDropdownEvents = function () {\n                var self = this;\n\n                this.dropdown.on('*', function (name, params) {\n                    self.trigger(name, params);\n                });\n            };\n\n            Select2.prototype._registerResultsEvents = function () {\n                var self = this;\n\n                this.results.on('*', function (name, params) {\n                    self.trigger(name, params);\n                });\n            };\n\n            Select2.prototype._registerEvents = function () {\n                var self = this;\n\n                this.on('open', function () {\n                    self.$container.addClass('select2-container--open');\n                });\n\n                this.on('close', function () {\n                    self.$container.removeClass('select2-container--open');\n                });\n\n                this.on('enable', function () {\n                    self.$container.removeClass('select2-container--disabled');\n                });\n\n                this.on('disable', function () {\n                    self.$container.addClass('select2-container--disabled');\n                });\n\n                this.on('blur', function () {\n                    self.$container.removeClass('select2-container--focus');\n                });\n\n                this.on('query', function (params) {\n                    if (!self.isOpen()) {\n                        self.trigger('open', {});\n                    }\n\n                    this.dataAdapter.query(params, function (data) {\n                        self.trigger('results:all', {\n                            data: data,\n                            query: params\n                        });\n                    });\n                });\n\n                this.on('query:append', function (params) {\n                    this.dataAdapter.query(params, function (data) {\n                        self.trigger('results:append', {\n                            data: data,\n                            query: params\n                        });\n                    });\n                });\n\n                this.on('keypress', function (evt) {\n                    var key = evt.which;\n\n                    if (self.isOpen()) {\n                        if (key === KEYS.ESC || key === KEYS.TAB ||\n                            (key === KEYS.UP && evt.altKey)) {\n                            self.close();\n\n                            evt.preventDefault();\n                        } else if (key === KEYS.ENTER) {\n                            self.trigger('results:select', {});\n\n                            evt.preventDefault();\n                        } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n                            self.trigger('results:toggle', {});\n\n                            evt.preventDefault();\n                        } else if (key === KEYS.UP) {\n                            self.trigger('results:previous', {});\n\n                            evt.preventDefault();\n                        } else if (key === KEYS.DOWN) {\n                            self.trigger('results:next', {});\n\n                            evt.preventDefault();\n                        }\n                    } else {\n                        if (key === KEYS.ENTER || key === KEYS.SPACE ||\n                            (key === KEYS.DOWN && evt.altKey)) {\n                            self.open();\n\n                            evt.preventDefault();\n                        }\n                    }\n                });\n            };\n\n            Select2.prototype._syncAttributes = function () {\n                this.options.set('disabled', this.$element.prop('disabled'));\n\n                if (this.options.get('disabled')) {\n                    if (this.isOpen()) {\n                        this.close();\n                    }\n\n                    this.trigger('disable', {});\n                } else {\n                    this.trigger('enable', {});\n                }\n            };\n\n            Select2.prototype._syncSubtree = function (evt, mutations) {\n                var changed = false;\n                var self = this;\n\n                // Ignore any mutation events raised for elements that aren't options or\n                // optgroups. This handles the case when the select element is destroyed\n                if (\n                    evt && evt.target && (\n                        evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n                    )\n                ) {\n                    return;\n                }\n\n                if (!mutations) {\n                    // If mutation events aren't supported, then we can only assume that the\n                    // change affected the selections\n                    changed = true;\n                } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n                    for (var n = 0; n < mutations.addedNodes.length; n++) {\n                        var node = mutations.addedNodes[n];\n\n                        if (node.selected) {\n                            changed = true;\n                        }\n                    }\n                } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n                    changed = true;\n                }\n\n                // Only re-pull the data if we think there is a change\n                if (changed) {\n                    this.dataAdapter.current(function (currentData) {\n                        self.trigger('selection:update', {\n                            data: currentData\n                        });\n                    });\n                }\n            };\n\n            /**\n             * Override the trigger method to automatically trigger pre-events when\n             * there are events that can be prevented.\n             */\n            Select2.prototype.trigger = function (name, args) {\n                var actualTrigger = Select2.__super__.trigger;\n                var preTriggerMap = {\n                    'open': 'opening',\n                    'close': 'closing',\n                    'select': 'selecting',\n                    'unselect': 'unselecting'\n                };\n\n                if (args === undefined) {\n                    args = {};\n                }\n\n                if (name in preTriggerMap) {\n                    var preTriggerName = preTriggerMap[name];\n                    var preTriggerArgs = {\n                        prevented: false,\n                        name: name,\n                        args: args\n                    };\n\n                    actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n                    if (preTriggerArgs.prevented) {\n                        args.prevented = true;\n\n                        return;\n                    }\n                }\n\n                actualTrigger.call(this, name, args);\n            };\n\n            Select2.prototype.toggleDropdown = function () {\n                if (this.options.get('disabled')) {\n                    return;\n                }\n\n                if (this.isOpen()) {\n                    this.close();\n                } else {\n                    this.open();\n                }\n            };\n\n            Select2.prototype.open = function () {\n                if (this.isOpen()) {\n                    return;\n                }\n\n                this.trigger('query', {});\n            };\n\n            Select2.prototype.close = function () {\n                if (!this.isOpen()) {\n                    return;\n                }\n\n                this.trigger('close', {});\n            };\n\n            Select2.prototype.isOpen = function () {\n                return this.$container.hasClass('select2-container--open');\n            };\n\n            Select2.prototype.hasFocus = function () {\n                return this.$container.hasClass('select2-container--focus');\n            };\n\n            Select2.prototype.focus = function (data) {\n                // No need to re-trigger focus events if we are already focused\n                if (this.hasFocus()) {\n                    return;\n                }\n\n                this.$container.addClass('select2-container--focus');\n                this.trigger('focus', {});\n            };\n\n            Select2.prototype.enable = function (args) {\n                if (this.options.get('debug') && window.console && console.warn) {\n                    console.warn(\n                        'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n                        ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n                        ' instead.'\n                    );\n                }\n\n                if (args == null || args.length === 0) {\n                    args = [true];\n                }\n\n                var disabled = !args[0];\n\n                this.$element.prop('disabled', disabled);\n            };\n\n            Select2.prototype.data = function () {\n                if (this.options.get('debug') &&\n                    arguments.length > 0 && window.console && console.warn) {\n                    console.warn(\n                        'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n                        'should consider setting the value instead using `$element.val()`.'\n                    );\n                }\n\n                var data = [];\n\n                this.dataAdapter.current(function (currentData) {\n                    data = currentData;\n                });\n\n                return data;\n            };\n\n            Select2.prototype.val = function (args) {\n                if (this.options.get('debug') && window.console && console.warn) {\n                    console.warn(\n                        'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n                        ' removed in later Select2 versions. Use $element.val() instead.'\n                    );\n                }\n\n                if (args == null || args.length === 0) {\n                    return this.$element.val();\n                }\n\n                var newVal = args[0];\n\n                if ($.isArray(newVal)) {\n                    newVal = $.map(newVal, function (obj) {\n                        return obj.toString();\n                    });\n                }\n\n                this.$element.val(newVal).trigger('change');\n            };\n\n            Select2.prototype.destroy = function () {\n                this.$container.remove();\n\n                if (this.$element[0].detachEvent) {\n                    this.$element[0].detachEvent('onpropertychange', this._syncA);\n                }\n\n                if (this._observer != null) {\n                    this._observer.disconnect();\n                    this._observer = null;\n                } else if (this.$element[0].removeEventListener) {\n                    this.$element[0]\n                        .removeEventListener('DOMAttrModified', this._syncA, false);\n                    this.$element[0]\n                        .removeEventListener('DOMNodeInserted', this._syncS, false);\n                    this.$element[0]\n                        .removeEventListener('DOMNodeRemoved', this._syncS, false);\n                }\n\n                this._syncA = null;\n                this._syncS = null;\n\n                this.$element.off('.select2');\n                this.$element.attr('tabindex', this.$element.data('old-tabindex'));\n\n                this.$element.removeClass('select2-hidden-accessible');\n                this.$element.attr('aria-hidden', 'false');\n                this.$element.removeData('select2');\n\n                this.dataAdapter.destroy();\n                this.selection.destroy();\n                this.dropdown.destroy();\n                this.results.destroy();\n\n                this.dataAdapter = null;\n                this.selection = null;\n                this.dropdown = null;\n                this.results = null;\n            };\n\n            Select2.prototype.render = function () {\n                var $container = $(\n                    '<span class=\"select2 select2-container\">' +\n                    '<span class=\"selection\"></span>' +\n                    '<span class=\"dropdown-wrapper\" aria-hidden=\"true\"></span>' +\n                    '</span>'\n                );\n\n                $container.attr('dir', this.options.get('dir'));\n\n                this.$container = $container;\n\n                this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n                $container.data('element', this.$element);\n\n                return $container;\n            };\n\n            return Select2;\n        });\n\n        S2.define('select2/compat/utils',[\n            'jquery'\n        ], function ($) {\n            function syncCssClasses ($dest, $src, adapter) {\n                var classes, replacements = [], adapted;\n\n                classes = $.trim($dest.attr('class'));\n\n                if (classes) {\n                    classes = '' + classes; // for IE which returns object\n\n                    $(classes.split(/\\s+/)).each(function () {\n                        // Save all Select2 classes\n                        if (this.indexOf('select2-') === 0) {\n                            replacements.push(this);\n                        }\n                    });\n                }\n\n                classes = $.trim($src.attr('class'));\n\n                if (classes) {\n                    classes = '' + classes; // for IE which returns object\n\n                    $(classes.split(/\\s+/)).each(function () {\n                        // Only adapt non-Select2 classes\n                        if (this.indexOf('select2-') !== 0) {\n                            adapted = adapter(this);\n\n                            if (adapted != null) {\n                                replacements.push(adapted);\n                            }\n                        }\n                    });\n                }\n\n                $dest.attr('class', replacements.join(' '));\n            }\n\n            return {\n                syncCssClasses: syncCssClasses\n            };\n        });\n\n        S2.define('select2/compat/containerCss',[\n            'jquery',\n            './utils'\n        ], function ($, CompatUtils) {\n            // No-op CSS adapter that discards all classes by default\n            function _containerAdapter (clazz) {\n                return null;\n            }\n\n            function ContainerCSS () { }\n\n            ContainerCSS.prototype.render = function (decorated) {\n                var $container = decorated.call(this);\n\n                var containerCssClass = this.options.get('containerCssClass') || '';\n\n                if ($.isFunction(containerCssClass)) {\n                    containerCssClass = containerCssClass(this.$element);\n                }\n\n                var containerCssAdapter = this.options.get('adaptContainerCssClass');\n                containerCssAdapter = containerCssAdapter || _containerAdapter;\n\n                if (containerCssClass.indexOf(':all:') !== -1) {\n                    containerCssClass = containerCssClass.replace(':all:', '');\n\n                    var _cssAdapter = containerCssAdapter;\n\n                    containerCssAdapter = function (clazz) {\n                        var adapted = _cssAdapter(clazz);\n\n                        if (adapted != null) {\n                            // Append the old one along with the adapted one\n                            return adapted + ' ' + clazz;\n                        }\n\n                        return clazz;\n                    };\n                }\n\n                var containerCss = this.options.get('containerCss') || {};\n\n                if ($.isFunction(containerCss)) {\n                    containerCss = containerCss(this.$element);\n                }\n\n                CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\n\n                $container.css(containerCss);\n                $container.addClass(containerCssClass);\n\n                return $container;\n            };\n\n            return ContainerCSS;\n        });\n\n        S2.define('select2/compat/dropdownCss',[\n            'jquery',\n            './utils'\n        ], function ($, CompatUtils) {\n            // No-op CSS adapter that discards all classes by default\n            function _dropdownAdapter (clazz) {\n                return null;\n            }\n\n            function DropdownCSS () { }\n\n            DropdownCSS.prototype.render = function (decorated) {\n                var $dropdown = decorated.call(this);\n\n                var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n                if ($.isFunction(dropdownCssClass)) {\n                    dropdownCssClass = dropdownCssClass(this.$element);\n                }\n\n                var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\n                dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\n\n                if (dropdownCssClass.indexOf(':all:') !== -1) {\n                    dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n                    var _cssAdapter = dropdownCssAdapter;\n\n                    dropdownCssAdapter = function (clazz) {\n                        var adapted = _cssAdapter(clazz);\n\n                        if (adapted != null) {\n                            // Append the old one along with the adapted one\n                            return adapted + ' ' + clazz;\n                        }\n\n                        return clazz;\n                    };\n                }\n\n                var dropdownCss = this.options.get('dropdownCss') || {};\n\n                if ($.isFunction(dropdownCss)) {\n                    dropdownCss = dropdownCss(this.$element);\n                }\n\n                CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\n\n                $dropdown.css(dropdownCss);\n                $dropdown.addClass(dropdownCssClass);\n\n                return $dropdown;\n            };\n\n            return DropdownCSS;\n        });\n\n        S2.define('select2/compat/initSelection',[\n            'jquery'\n        ], function ($) {\n            function InitSelection (decorated, $element, options) {\n                if (options.get('debug') && window.console && console.warn) {\n                    console.warn(\n                        'Select2: The `initSelection` option has been deprecated in favor' +\n                        ' of a custom data adapter that overrides the `current` method. ' +\n                        'This method is now called multiple times instead of a single ' +\n                        'time when the instance is initialized. Support will be removed ' +\n                        'for the `initSelection` option in future versions of Select2'\n                    );\n                }\n\n                this.initSelection = options.get('initSelection');\n                this._isInitialized = false;\n\n                decorated.call(this, $element, options);\n            }\n\n            InitSelection.prototype.current = function (decorated, callback) {\n                var self = this;\n\n                if (this._isInitialized) {\n                    decorated.call(this, callback);\n\n                    return;\n                }\n\n                this.initSelection.call(null, this.$element, function (data) {\n                    self._isInitialized = true;\n\n                    if (!$.isArray(data)) {\n                        data = [data];\n                    }\n\n                    callback(data);\n                });\n            };\n\n            return InitSelection;\n        });\n\n        S2.define('select2/compat/inputData',[\n            'jquery'\n        ], function ($) {\n            function InputData (decorated, $element, options) {\n                this._currentData = [];\n                this._valueSeparator = options.get('valueSeparator') || ',';\n\n                if ($element.prop('type') === 'hidden') {\n                    if (options.get('debug') && console && console.warn) {\n                        console.warn(\n                            'Select2: Using a hidden input with Select2 is no longer ' +\n                            'supported and may stop working in the future. It is recommended ' +\n                            'to use a `<select>` element instead.'\n                        );\n                    }\n                }\n\n                decorated.call(this, $element, options);\n            }\n\n            InputData.prototype.current = function (_, callback) {\n                function getSelected (data, selectedIds) {\n                    var selected = [];\n\n                    if (data.selected || $.inArray(data.id, selectedIds) !== -1) {\n                        data.selected = true;\n                        selected.push(data);\n                    } else {\n                        data.selected = false;\n                    }\n\n                    if (data.children) {\n                        selected.push.apply(selected, getSelected(data.children, selectedIds));\n                    }\n\n                    return selected;\n                }\n\n                var selected = [];\n\n                for (var d = 0; d < this._currentData.length; d++) {\n                    var data = this._currentData[d];\n\n                    selected.push.apply(\n                        selected,\n                        getSelected(\n                            data,\n                            this.$element.val().split(\n                                this._valueSeparator\n                            )\n                        )\n                    );\n                }\n\n                callback(selected);\n            };\n\n            InputData.prototype.select = function (_, data) {\n                if (!this.options.get('multiple')) {\n                    this.current(function (allData) {\n                        $.map(allData, function (data) {\n                            data.selected = false;\n                        });\n                    });\n\n                    this.$element.val(data.id);\n                    this.$element.trigger('change');\n                } else {\n                    var value = this.$element.val();\n                    value += this._valueSeparator + data.id;\n\n                    this.$element.val(value);\n                    this.$element.trigger('change');\n                }\n            };\n\n            InputData.prototype.unselect = function (_, data) {\n                var self = this;\n\n                data.selected = false;\n\n                this.current(function (allData) {\n                    var values = [];\n\n                    for (var d = 0; d < allData.length; d++) {\n                        var item = allData[d];\n\n                        if (data.id == item.id) {\n                            continue;\n                        }\n\n                        values.push(item.id);\n                    }\n\n                    self.$element.val(values.join(self._valueSeparator));\n                    self.$element.trigger('change');\n                });\n            };\n\n            InputData.prototype.query = function (_, params, callback) {\n                var results = [];\n\n                for (var d = 0; d < this._currentData.length; d++) {\n                    var data = this._currentData[d];\n\n                    var matches = this.matches(params, data);\n\n                    if (matches !== null) {\n                        results.push(matches);\n                    }\n                }\n\n                callback({\n                    results: results\n                });\n            };\n\n            InputData.prototype.addOptions = function (_, $options) {\n                var options = $.map($options, function ($option) {\n                    return $.data($option[0], 'data');\n                });\n\n                this._currentData.push.apply(this._currentData, options);\n            };\n\n            return InputData;\n        });\n\n        S2.define('select2/compat/matcher',[\n            'jquery'\n        ], function ($) {\n            function oldMatcher (matcher) {\n                function wrappedMatcher (params, data) {\n                    var match = $.extend(true, {}, data);\n\n                    if (params.term == null || $.trim(params.term) === '') {\n                        return match;\n                    }\n\n                    if (data.children) {\n                        for (var c = data.children.length - 1; c >= 0; c--) {\n                            var child = data.children[c];\n\n                            // Check if the child object matches\n                            // The old matcher returned a boolean true or false\n                            var doesMatch = matcher(params.term, child.text, child);\n\n                            // If the child didn't match, pop it off\n                            if (!doesMatch) {\n                                match.children.splice(c, 1);\n                            }\n                        }\n\n                        if (match.children.length > 0) {\n                            return match;\n                        }\n                    }\n\n                    if (matcher(params.term, data.text, data)) {\n                        return match;\n                    }\n\n                    return null;\n                }\n\n                return wrappedMatcher;\n            }\n\n            return oldMatcher;\n        });\n\n        S2.define('select2/compat/query',[\n\n        ], function () {\n            function Query (decorated, $element, options) {\n                if (options.get('debug') && window.console && console.warn) {\n                    console.warn(\n                        'Select2: The `query` option has been deprecated in favor of a ' +\n                        'custom data adapter that overrides the `query` method. Support ' +\n                        'will be removed for the `query` option in future versions of ' +\n                        'Select2.'\n                    );\n                }\n\n                decorated.call(this, $element, options);\n            }\n\n            Query.prototype.query = function (_, params, callback) {\n                params.callback = callback;\n\n                var query = this.options.get('query');\n\n                query.call(null, params);\n            };\n\n            return Query;\n        });\n\n        S2.define('select2/dropdown/attachContainer',[\n\n        ], function () {\n            function AttachContainer (decorated, $element, options) {\n                decorated.call(this, $element, options);\n            }\n\n            AttachContainer.prototype.position =\n                function (decorated, $dropdown, $container) {\n                    var $dropdownContainer = $container.find('.dropdown-wrapper');\n                    $dropdownContainer.append($dropdown);\n\n                    $dropdown.addClass('select2-dropdown--below');\n                    $container.addClass('select2-container--below');\n                };\n\n            return AttachContainer;\n        });\n\n        S2.define('select2/dropdown/stopPropagation',[\n\n        ], function () {\n            function StopPropagation () { }\n\n            StopPropagation.prototype.bind = function (decorated, container, $container) {\n                decorated.call(this, container, $container);\n\n                var stoppedEvents = [\n                    'blur',\n                    'change',\n                    'click',\n                    'dblclick',\n                    'focus',\n                    'focusin',\n                    'focusout',\n                    'input',\n                    'keydown',\n                    'keyup',\n                    'keypress',\n                    'mousedown',\n                    'mouseenter',\n                    'mouseleave',\n                    'mousemove',\n                    'mouseover',\n                    'mouseup',\n                    'search',\n                    'touchend',\n                    'touchstart'\n                ];\n\n                this.$dropdown.on(stoppedEvents.join(' '), function (evt) {\n                    evt.stopPropagation();\n                });\n            };\n\n            return StopPropagation;\n        });\n\n        S2.define('select2/selection/stopPropagation',[\n\n        ], function () {\n            function StopPropagation () { }\n\n            StopPropagation.prototype.bind = function (decorated, container, $container) {\n                decorated.call(this, container, $container);\n\n                var stoppedEvents = [\n                    'blur',\n                    'change',\n                    'click',\n                    'dblclick',\n                    'focus',\n                    'focusin',\n                    'focusout',\n                    'input',\n                    'keydown',\n                    'keyup',\n                    'keypress',\n                    'mousedown',\n                    'mouseenter',\n                    'mouseleave',\n                    'mousemove',\n                    'mouseover',\n                    'mouseup',\n                    'search',\n                    'touchend',\n                    'touchstart'\n                ];\n\n                this.$selection.on(stoppedEvents.join(' '), function (evt) {\n                    evt.stopPropagation();\n                });\n            };\n\n            return StopPropagation;\n        });\n\n        /*!\n * jQuery Mousewheel 3.1.13\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n */\n\n        (function (factory) {\n            if ( typeof S2.define === 'function' && S2.define.amd ) {\n                // AMD. Register as an anonymous module.\n                S2.define('jquery-mousewheel',['jquery'], factory);\n            } else if (typeof exports === 'object') {\n                // Node/CommonJS style for Browserify\n                module.exports = factory;\n            } else {\n                // Browser globals\n                factory(jQuery);\n            }\n        }(function ($) {\n\n            var toFix  = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\n                toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\n                    ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\n                slice  = Array.prototype.slice,\n                nullLowestDeltaTimeout, lowestDelta;\n\n            if ( $.event.fixHooks ) {\n                for ( var i = toFix.length; i; ) {\n                    $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\n                }\n            }\n\n            var special = $.event.special.mousewheel = {\n                version: '3.1.12',\n\n                setup: function() {\n                    if ( this.addEventListener ) {\n                        for ( var i = toBind.length; i; ) {\n                            this.addEventListener( toBind[--i], handler, false );\n                        }\n                    } else {\n                        this.onmousewheel = handler;\n                    }\n                    // Store the line height and page height for this particular element\n                    $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\n                    $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\n                },\n\n                teardown: function() {\n                    if ( this.removeEventListener ) {\n                        for ( var i = toBind.length; i; ) {\n                            this.removeEventListener( toBind[--i], handler, false );\n                        }\n                    } else {\n                        this.onmousewheel = null;\n                    }\n                    // Clean up the data we added to the element\n                    $.removeData(this, 'mousewheel-line-height');\n                    $.removeData(this, 'mousewheel-page-height');\n                },\n\n                getLineHeight: function(elem) {\n                    var $elem = $(elem),\n                        $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\n                    if (!$parent.length) {\n                        $parent = $('body');\n                    }\n                    return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\n                },\n\n                getPageHeight: function(elem) {\n                    return $(elem).height();\n                },\n\n                settings: {\n                    adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\n                    normalizeOffset: true  // calls getBoundingClientRect for each event\n                }\n            };\n\n            $.fn.extend({\n                mousewheel: function(fn) {\n                    return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\n                },\n\n                unmousewheel: function(fn) {\n                    return this.unbind('mousewheel', fn);\n                }\n            });\n\n\n            function handler(event) {\n                var orgEvent   = event || window.event,\n                    args       = slice.call(arguments, 1),\n                    delta      = 0,\n                    deltaX     = 0,\n                    deltaY     = 0,\n                    absDelta   = 0,\n                    offsetX    = 0,\n                    offsetY    = 0;\n                event = $.event.fix(orgEvent);\n                event.type = 'mousewheel';\n\n                // Old school scrollwheel delta\n                if ( 'detail'      in orgEvent ) { deltaY = orgEvent.detail * -1;      }\n                if ( 'wheelDelta'  in orgEvent ) { deltaY = orgEvent.wheelDelta;       }\n                if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY;      }\n                if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\n\n                // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\n                if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\n                    deltaX = deltaY * -1;\n                    deltaY = 0;\n                }\n\n                // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\n                delta = deltaY === 0 ? deltaX : deltaY;\n\n                // New school wheel delta (wheel event)\n                if ( 'deltaY' in orgEvent ) {\n                    deltaY = orgEvent.deltaY * -1;\n                    delta  = deltaY;\n                }\n                if ( 'deltaX' in orgEvent ) {\n                    deltaX = orgEvent.deltaX;\n                    if ( deltaY === 0 ) { delta  = deltaX * -1; }\n                }\n\n                // No change actually happened, no reason to go any further\n                if ( deltaY === 0 && deltaX === 0 ) { return; }\n\n                // Need to convert lines and pages to pixels if we aren't already in pixels\n                // There are three delta modes:\n                //   * deltaMode 0 is by pixels, nothing to do\n                //   * deltaMode 1 is by lines\n                //   * deltaMode 2 is by pages\n                if ( orgEvent.deltaMode === 1 ) {\n                    var lineHeight = $.data(this, 'mousewheel-line-height');\n                    delta  *= lineHeight;\n                    deltaY *= lineHeight;\n                    deltaX *= lineHeight;\n                } else if ( orgEvent.deltaMode === 2 ) {\n                    var pageHeight = $.data(this, 'mousewheel-page-height');\n                    delta  *= pageHeight;\n                    deltaY *= pageHeight;\n                    deltaX *= pageHeight;\n                }\n\n                // Store lowest absolute delta to normalize the delta values\n                absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\n\n                if ( !lowestDelta || absDelta < lowestDelta ) {\n                    lowestDelta = absDelta;\n\n                    // Adjust older deltas if necessary\n                    if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n                        lowestDelta /= 40;\n                    }\n                }\n\n                // Adjust older deltas if necessary\n                if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\n                    // Divide all the things by 40!\n                    delta  /= 40;\n                    deltaX /= 40;\n                    deltaY /= 40;\n                }\n\n                // Get a whole, normalized value for the deltas\n                delta  = Math[ delta  >= 1 ? 'floor' : 'ceil' ](delta  / lowestDelta);\n                deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\n                deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\n\n                // Normalise offsetX and offsetY properties\n                if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\n                    var boundingRect = this.getBoundingClientRect();\n                    offsetX = event.clientX - boundingRect.left;\n                    offsetY = event.clientY - boundingRect.top;\n                }\n\n                // Add information to the event object\n                event.deltaX = deltaX;\n                event.deltaY = deltaY;\n                event.deltaFactor = lowestDelta;\n                event.offsetX = offsetX;\n                event.offsetY = offsetY;\n                // Go ahead and set deltaMode to 0 since we converted to pixels\n                // Although this is a little odd since we overwrite the deltaX/Y\n                // properties with normalized deltas.\n                event.deltaMode = 0;\n\n                // Add event and delta to the front of the arguments\n                args.unshift(event, delta, deltaX, deltaY);\n\n                // Clearout lowestDelta after sometime to better\n                // handle multiple device types that give different\n                // a different lowestDelta\n                // Ex: trackpad = 3 and mouse wheel = 120\n                if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\n                nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\n\n                return ($.event.dispatch || $.event.handle).apply(this, args);\n            }\n\n            function nullLowestDelta() {\n                lowestDelta = null;\n            }\n\n            function shouldAdjustOldDeltas(orgEvent, absDelta) {\n                // If this is an older event and the delta is divisable by 120,\n                // then we are assuming that the browser is treating this as an\n                // older mouse wheel event and that we should divide the deltas\n                // by 40 to try and get a more usable deltaFactor.\n                // Side note, this actually impacts the reported scroll distance\n                // in older browsers and can cause scrolling to be slower than native.\n                // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\n                return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\n            }\n\n        }));\n\n        S2.define('jquery.select2',[\n            'jquery',\n            'jquery-mousewheel',\n\n            './select2/core',\n            './select2/defaults'\n        ], function ($, _, Select2, Defaults) {\n            if ($.fn.select2 == null) {\n                // All methods that should return the element\n                var thisMethods = ['open', 'close', 'destroy'];\n\n                $.fn.select2 = function (options) {\n                    options = options || {};\n\n                    if (typeof options === 'object') {\n                        this.each(function () {\n                            var instanceOptions = $.extend(true, {}, options);\n\n                            var instance = new Select2($(this), instanceOptions);\n                        });\n\n                        return this;\n                    } else if (typeof options === 'string') {\n                        var ret;\n                        var args = Array.prototype.slice.call(arguments, 1);\n\n                        this.each(function () {\n                            var instance = $(this).data('select2');\n\n                            if (instance == null && window.console && console.error) {\n                                console.error(\n                                    'The select2(\\'' + options + '\\') method was called on an ' +\n                                    'element that is not using Select2.'\n                                );\n                            }\n\n                            ret = instance[options].apply(instance, args);\n                        });\n\n                        // Check if we should be returning `this`\n                        if ($.inArray(options, thisMethods) > -1) {\n                            return this;\n                        }\n\n                        return ret;\n                    } else {\n                        throw new Error('Invalid arguments for Select2: ' + options);\n                    }\n                };\n            }\n\n            if ($.fn.select2.defaults == null) {\n                $.fn.select2.defaults = Defaults;\n            }\n\n            return Select2;\n        });\n\n        // Return the AMD loader configuration so it can be used outside of this file\n        return {\n            define: S2.define,\n            require: S2.require\n        };\n    }());\n\n    // Autoload the jQuery bindings\n    // We know that all of the modules exist above this, so we're safe\n    var select2 = S2.require('jquery.select2');\n\n    // Hold the AMD module references on the jQuery function that was just loaded\n    // This allows Select2 to use the internal loader outside of this file, such\n    // as in the language files.\n    jQuery.fn.select2.amd = S2;\n\n    // Return the Select2 instance for anyone who is importing it.\n    return select2;\n}));"
  },
  {
    "path": "public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/canvas-to-blob.js",
    "content": "/*\n * JavaScript Canvas to Blob 2.0.5\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/*jslint nomen: true, regexp: true */\n/*global window, atob, Blob, ArrayBuffer, Uint8Array, define */\n\n(function (window) {\n    'use strict';\n    var CanvasPrototype = window.HTMLCanvasElement &&\n            window.HTMLCanvasElement.prototype,\n        hasBlobConstructor = window.Blob && (function () {\n            try {\n                return Boolean(new Blob());\n            } catch (e) {\n                return false;\n            }\n        }()),\n        hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array &&\n            (function () {\n                try {\n                    return new Blob([new Uint8Array(100)]).size === 100;\n                } catch (e) {\n                    return false;\n                }\n            }()),\n        BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n            window.MozBlobBuilder || window.MSBlobBuilder,\n        dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&\n            window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n                var byteString,\n                    arrayBuffer,\n                    intArray,\n                    i,\n                    mimeString,\n                    bb;\n                if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n                    // Convert base64 to raw binary data held in a string:\n                    byteString = atob(dataURI.split(',')[1]);\n                } else {\n                    // Convert base64/URLEncoded data component to raw binary data:\n                    byteString = decodeURIComponent(dataURI.split(',')[1]);\n                }\n                // Write the bytes of the string to an ArrayBuffer:\n                arrayBuffer = new ArrayBuffer(byteString.length);\n                intArray = new Uint8Array(arrayBuffer);\n                for (i = 0; i < byteString.length; i += 1) {\n                    intArray[i] = byteString.charCodeAt(i);\n                }\n                // Separate out the mime component:\n                mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n                // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n                if (hasBlobConstructor) {\n                    return new Blob(\n                        [hasArrayBufferViewSupport ? intArray : arrayBuffer],\n                        {type: mimeString}\n                    );\n                }\n                bb = new BlobBuilder();\n                bb.append(arrayBuffer);\n                return bb.getBlob(mimeString);\n            };\n    if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n        if (CanvasPrototype.mozGetAsFile) {\n            CanvasPrototype.toBlob = function (callback, type, quality) {\n                if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n                    callback(dataURLtoBlob(this.toDataURL(type, quality)));\n                } else {\n                    callback(this.mozGetAsFile('blob', type));\n                }\n            };\n        } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n            CanvasPrototype.toBlob = function (callback, type, quality) {\n                callback(dataURLtoBlob(this.toDataURL(type, quality)));\n            };\n        }\n    }\n    if (typeof define === 'function' && define.amd) {\n        define(function () {\n            return dataURLtoBlob;\n        });\n    } else {\n        window.dataURLtoBlob = dataURLtoBlob;\n    }\n}(window));\n"
  },
  {
    "path": "public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/piexif.js",
    "content": "/* piexifjs\n\nThe MIT License (MIT)\n\nCopyright (c) 2014, 2015 hMatoba(https://github.com/hMatoba)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n(function () {\n    \"use strict\";\n    var that = {};\n    that.version = \"1.03\";\n\n    that.remove = function (jpeg) {\n        var b64 = false;\n        if (jpeg.slice(0, 2) == \"\\xff\\xd8\") {\n        } else if (jpeg.slice(0, 23) == \"data:image/jpeg;base64,\" || jpeg.slice(0, 22) == \"data:image/jpg;base64,\") {\n            jpeg = atob(jpeg.split(\",\")[1]);\n            b64 = true;\n        } else {\n            throw (\"Given data is not jpeg.\");\n        }\n        \n        var segments = splitIntoSegments(jpeg);\n        if (segments[1].slice(0, 2) == \"\\xff\\xe1\" && \n               segments[1].slice(4, 10) == \"Exif\\x00\\x00\") {\n            segments = [segments[0]].concat(segments.slice(2));\n        } else if (segments[2].slice(0, 2) == \"\\xff\\xe1\" &&\n                   segments[2].slice(4, 10) == \"Exif\\x00\\x00\") {\n            segments = segments.slice(0, 2).concat(segments.slice(3));\n        } else {\n            throw(\"Exif not found.\");\n        }\n        \n        var new_data = segments.join(\"\");\n        if (b64) {\n            new_data = \"data:image/jpeg;base64,\" + btoa(new_data);\n        }\n\n        return new_data;\n    };\n\n\n    that.insert = function (exif, jpeg) {\n        var b64 = false;\n        if (exif.slice(0, 6) != \"\\x45\\x78\\x69\\x66\\x00\\x00\") {\n            throw (\"Given data is not exif.\");\n        }\n        if (jpeg.slice(0, 2) == \"\\xff\\xd8\") {\n        } else if (jpeg.slice(0, 23) == \"data:image/jpeg;base64,\" || jpeg.slice(0, 22) == \"data:image/jpg;base64,\") {\n            jpeg = atob(jpeg.split(\",\")[1]);\n            b64 = true;\n        } else {\n            throw (\"Given data is not jpeg.\");\n        }\n\n        var exifStr = \"\\xff\\xe1\" + pack(\">H\", [exif.length + 2]) + exif;\n        var segments = splitIntoSegments(jpeg);\n        var new_data = mergeSegments(segments, exifStr);\n        if (b64) {\n            new_data = \"data:image/jpeg;base64,\" + btoa(new_data);\n        }\n\n        return new_data;\n    };\n\n\n    that.load = function (data) {\n        var input_data;\n        if (typeof (data) == \"string\") {\n            if (data.slice(0, 2) == \"\\xff\\xd8\") {\n                input_data = data;\n            } else if (data.slice(0, 23) == \"data:image/jpeg;base64,\" || data.slice(0, 22) == \"data:image/jpg;base64,\") {\n                input_data = atob(data.split(\",\")[1]);\n            } else if (data.slice(0, 4) == \"Exif\") {\n                input_data = data.slice(6);\n            } else {\n                throw (\"'load' gots invalid file data.\");\n            }\n        } else {\n            throw (\"'load' gots invalid type argument.\");\n        }\n\n        var exifDict = {};\n        var exif_dict = {\n            \"0th\": {},\n            \"Exif\": {},\n            \"GPS\": {},\n            \"Interop\": {},\n            \"1st\": {},\n            \"thumbnail\": null\n        };\n        var exifReader = new ExifReader(input_data);\n        if (exifReader.tiftag === null) {\n            return exif_dict;\n        }\n\n        if (exifReader.tiftag.slice(0, 2) == \"\\x49\\x49\") {\n            exifReader.endian_mark = \"<\";\n        } else {\n            exifReader.endian_mark = \">\";\n        }\n\n        var pointer = unpack(exifReader.endian_mark + \"L\",\n            exifReader.tiftag.slice(4, 8))[0];\n        exif_dict[\"0th\"] = exifReader.get_ifd(pointer, \"0th\");\n\n        var first_ifd_pointer = exif_dict[\"0th\"][\"first_ifd_pointer\"];\n        delete exif_dict[\"0th\"][\"first_ifd_pointer\"];\n\n        if (34665 in exif_dict[\"0th\"]) {\n            pointer = exif_dict[\"0th\"][34665];\n            exif_dict[\"Exif\"] = exifReader.get_ifd(pointer, \"Exif\");\n        }\n        if (34853 in exif_dict[\"0th\"]) {\n            pointer = exif_dict[\"0th\"][34853];\n            exif_dict[\"GPS\"] = exifReader.get_ifd(pointer, \"GPS\");\n        }\n        if (40965 in exif_dict[\"Exif\"]) {\n            pointer = exif_dict[\"Exif\"][40965];\n            exif_dict[\"Interop\"] = exifReader.get_ifd(pointer, \"Interop\");\n        }\n        if (first_ifd_pointer != \"\\x00\\x00\\x00\\x00\") {\n            pointer = unpack(exifReader.endian_mark + \"L\",\n                first_ifd_pointer)[0];\n            exif_dict[\"1st\"] = exifReader.get_ifd(pointer, \"1st\");\n            if ((513 in exif_dict[\"1st\"]) && (514 in exif_dict[\"1st\"])) {\n                var end = exif_dict[\"1st\"][513] + exif_dict[\"1st\"][514];\n                var thumb = exifReader.tiftag.slice(exif_dict[\"1st\"][513], end);\n                exif_dict[\"thumbnail\"] = thumb;\n            }\n        }\n\n        return exif_dict;\n    };\n\n\n    that.dump = function (exif_dict_original) {\n        var TIFF_HEADER_LENGTH = 8;\n\n        var exif_dict = copy(exif_dict_original);\n        var header = \"Exif\\x00\\x00\\x4d\\x4d\\x00\\x2a\\x00\\x00\\x00\\x08\";\n        var exif_is = false;\n        var gps_is = false;\n        var interop_is = false;\n        var first_is = false;\n\n        var zeroth_ifd,\n            exif_ifd,\n            interop_ifd,\n            gps_ifd,\n            first_ifd;\n        \n        if (\"0th\" in exif_dict) {\n            zeroth_ifd = exif_dict[\"0th\"];\n        } else {\n            zeroth_ifd = {};\n        }\n        \n        if (((\"Exif\" in exif_dict) && (Object.keys(exif_dict[\"Exif\"]).length)) ||\n            ((\"Interop\" in exif_dict) && (Object.keys(exif_dict[\"Interop\"]).length))) {\n            zeroth_ifd[34665] = 1;\n            exif_is = true;\n            exif_ifd = exif_dict[\"Exif\"];\n            if ((\"Interop\" in exif_dict) && Object.keys(exif_dict[\"Interop\"]).length) {\n                exif_ifd[40965] = 1;\n                interop_is = true;\n                interop_ifd = exif_dict[\"Interop\"];\n            } else if (Object.keys(exif_ifd).indexOf(that.ExifIFD.InteroperabilityTag.toString()) > -1) {\n                delete exif_ifd[40965];\n            }\n        } else if (Object.keys(zeroth_ifd).indexOf(that.ImageIFD.ExifTag.toString()) > -1) {\n            delete zeroth_ifd[34665];\n        }\n\n        if ((\"GPS\" in exif_dict) && (Object.keys(exif_dict[\"GPS\"]).length)) {\n            zeroth_ifd[that.ImageIFD.GPSTag] = 1;\n            gps_is = true;\n            gps_ifd = exif_dict[\"GPS\"];\n        } else if (Object.keys(zeroth_ifd).indexOf(that.ImageIFD.GPSTag.toString()) > -1) {\n            delete zeroth_ifd[that.ImageIFD.GPSTag];\n        }\n        \n        if ((\"1st\" in exif_dict) &&\n            (\"thumbnail\" in exif_dict) &&\n            (exif_dict[\"thumbnail\"] != null)) {\n            first_is = true;\n            exif_dict[\"1st\"][513] = 1;\n            exif_dict[\"1st\"][514] = 1;\n            first_ifd = exif_dict[\"1st\"];\n        }\n        \n        var zeroth_set = _dict_to_bytes(zeroth_ifd, \"0th\", 0);\n        var zeroth_length = (zeroth_set[0].length + exif_is * 12 + gps_is * 12 + 4 +\n            zeroth_set[1].length);\n\n        var exif_set,\n            exif_bytes = \"\",\n            exif_length = 0,\n            gps_set,\n            gps_bytes = \"\",\n            gps_length = 0,\n            interop_set,\n            interop_bytes = \"\",\n            interop_length = 0,\n            first_set,\n            first_bytes = \"\",\n            thumbnail;\n        if (exif_is) {\n            exif_set = _dict_to_bytes(exif_ifd, \"Exif\", zeroth_length);\n            exif_length = exif_set[0].length + interop_is * 12 + exif_set[1].length;\n        }\n        if (gps_is) {\n            gps_set = _dict_to_bytes(gps_ifd, \"GPS\", zeroth_length + exif_length);\n            gps_bytes = gps_set.join(\"\");\n            gps_length = gps_bytes.length;\n        }\n        if (interop_is) {\n            var offset = zeroth_length + exif_length + gps_length;\n            interop_set = _dict_to_bytes(interop_ifd, \"Interop\", offset);\n            interop_bytes = interop_set.join(\"\");\n            interop_length = interop_bytes.length;\n        }\n        if (first_is) {\n            var offset = zeroth_length + exif_length + gps_length + interop_length;\n            first_set = _dict_to_bytes(first_ifd, \"1st\", offset);\n            thumbnail = _get_thumbnail(exif_dict[\"thumbnail\"]);\n            if (thumbnail.length > 64000) {\n                throw (\"Given thumbnail is too large. max 64kB\");\n            }\n        }\n\n        var exif_pointer = \"\",\n            gps_pointer = \"\",\n            interop_pointer = \"\",\n            first_ifd_pointer = \"\\x00\\x00\\x00\\x00\";\n        if (exif_is) {\n            var pointer_value = TIFF_HEADER_LENGTH + zeroth_length;\n            var pointer_str = pack(\">L\", [pointer_value]);\n            var key = 34665;\n            var key_str = pack(\">H\", [key]);\n            var type_str = pack(\">H\", [TYPES[\"Long\"]]);\n            var length_str = pack(\">L\", [1]);\n            exif_pointer = key_str + type_str + length_str + pointer_str;\n        }\n        if (gps_is) {\n            var pointer_value = TIFF_HEADER_LENGTH + zeroth_length + exif_length;\n            var pointer_str = pack(\">L\", [pointer_value]);\n            var key = 34853;\n            var key_str = pack(\">H\", [key]);\n            var type_str = pack(\">H\", [TYPES[\"Long\"]]);\n            var length_str = pack(\">L\", [1]);\n            gps_pointer = key_str + type_str + length_str + pointer_str;\n        }\n        if (interop_is) {\n            var pointer_value = (TIFF_HEADER_LENGTH +\n                zeroth_length + exif_length + gps_length);\n            var pointer_str = pack(\">L\", [pointer_value]);\n            var key = 40965;\n            var key_str = pack(\">H\", [key]);\n            var type_str = pack(\">H\", [TYPES[\"Long\"]]);\n            var length_str = pack(\">L\", [1]);\n            interop_pointer = key_str + type_str + length_str + pointer_str;\n        }\n        if (first_is) {\n            var pointer_value = (TIFF_HEADER_LENGTH + zeroth_length +\n                exif_length + gps_length + interop_length);\n            first_ifd_pointer = pack(\">L\", [pointer_value]);\n            var thumbnail_pointer = (pointer_value + first_set[0].length + 24 +\n                4 + first_set[1].length);\n            var thumbnail_p_bytes = (\"\\x02\\x01\\x00\\x04\\x00\\x00\\x00\\x01\" +\n                pack(\">L\", [thumbnail_pointer]));\n            var thumbnail_length_bytes = (\"\\x02\\x02\\x00\\x04\\x00\\x00\\x00\\x01\" +\n                pack(\">L\", [thumbnail.length]));\n            first_bytes = (first_set[0] + thumbnail_p_bytes +\n                thumbnail_length_bytes + \"\\x00\\x00\\x00\\x00\" +\n                first_set[1] + thumbnail);\n        }\n\n        var zeroth_bytes = (zeroth_set[0] + exif_pointer + gps_pointer +\n            first_ifd_pointer + zeroth_set[1]);\n        if (exif_is) {\n            exif_bytes = exif_set[0] + interop_pointer + exif_set[1];\n        }\n\n        return (header + zeroth_bytes + exif_bytes + gps_bytes +\n            interop_bytes + first_bytes);\n    };\n\n\n    function copy(obj) {\n        return JSON.parse(JSON.stringify(obj));\n    }\n\n\n    function _get_thumbnail(jpeg) {\n        var segments = splitIntoSegments(jpeg);\n        while ((\"\\xff\\xe0\" <= segments[1].slice(0, 2)) && (segments[1].slice(0, 2) <= \"\\xff\\xef\")) {\n            segments = [segments[0]].concat(segments.slice(2));\n        }\n        return segments.join(\"\");\n    }\n\n\n    function _pack_byte(array) {\n        return pack(\">\" + nStr(\"B\", array.length), array);\n    }\n\n\n    function _pack_short(array) {\n        return pack(\">\" + nStr(\"H\", array.length), array);\n    }\n\n\n    function _pack_long(array) {\n        return pack(\">\" + nStr(\"L\", array.length), array);\n    }\n\n\n    function _value_to_bytes(raw_value, value_type, offset) {\n        var four_bytes_over = \"\";\n        var value_str = \"\";\n        var length,\n            new_value,\n            num,\n            den;\n\n        if (value_type == \"Byte\") {\n            length = raw_value.length;\n            if (length <= 4) {\n                value_str = (_pack_byte(raw_value) +\n                    nStr(\"\\x00\", 4 - length));\n            } else {\n                value_str = pack(\">L\", [offset]);\n                four_bytes_over = _pack_byte(raw_value);\n            }\n        } else if (value_type == \"Short\") {\n            length = raw_value.length;\n            if (length <= 2) {\n                value_str = (_pack_short(raw_value) +\n                    nStr(\"\\x00\\x00\", 2 - length));\n            } else {\n                value_str = pack(\">L\", [offset]);\n                four_bytes_over = _pack_short(raw_value);\n            }\n        } else if (value_type == \"Long\") {\n            length = raw_value.length;\n            if (length <= 1) {\n                value_str = _pack_long(raw_value);\n            } else {\n                value_str = pack(\">L\", [offset]);\n                four_bytes_over = _pack_long(raw_value);\n            }\n        } else if (value_type == \"Ascii\") {\n            new_value = raw_value + \"\\x00\";\n            length = new_value.length;\n            if (length > 4) {\n                value_str = pack(\">L\", [offset]);\n                four_bytes_over = new_value;\n            } else {\n                value_str = new_value + nStr(\"\\x00\", 4 - length);\n            }\n        } else if (value_type == \"Rational\") {\n            if (typeof (raw_value[0]) == \"number\") {\n                length = 1;\n                num = raw_value[0];\n                den = raw_value[1];\n                new_value = pack(\">L\", [num]) + pack(\">L\", [den]);\n            } else {\n                length = raw_value.length;\n                new_value = \"\";\n                for (var n = 0; n < length; n++) {\n                    num = raw_value[n][0];\n                    den = raw_value[n][1];\n                    new_value += (pack(\">L\", [num]) +\n                        pack(\">L\", [den]));\n                }\n            }\n            value_str = pack(\">L\", [offset]);\n            four_bytes_over = new_value;\n        } else if (value_type == \"SRational\") {\n            if (typeof (raw_value[0]) == \"number\") {\n                length = 1;\n                num = raw_value[0];\n                den = raw_value[1];\n                new_value = pack(\">l\", [num]) + pack(\">l\", [den]);\n            } else {\n                length = raw_value.length;\n                new_value = \"\";\n                for (var n = 0; n < length; n++) {\n                    num = raw_value[n][0];\n                    den = raw_value[n][1];\n                    new_value += (pack(\">l\", [num]) +\n                        pack(\">l\", [den]));\n                }\n            }\n            value_str = pack(\">L\", [offset]);\n            four_bytes_over = new_value;\n        } else if (value_type == \"Undefined\") {\n            length = raw_value.length;\n            if (length > 4) {\n                value_str = pack(\">L\", [offset]);\n                four_bytes_over = raw_value;\n            } else {\n                value_str = raw_value + nStr(\"\\x00\", 4 - length);\n            }\n        }\n\n        var length_str = pack(\">L\", [length]);\n\n        return [length_str, value_str, four_bytes_over];\n    }\n\n    function _dict_to_bytes(ifd_dict, ifd, ifd_offset) {\n        var TIFF_HEADER_LENGTH = 8;\n        var tag_count = Object.keys(ifd_dict).length;\n        var entry_header = pack(\">H\", [tag_count]);\n        var entries_length;\n        if ([\"0th\", \"1st\"].indexOf(ifd) > -1) {\n            entries_length = 2 + tag_count * 12 + 4;\n        } else {\n            entries_length = 2 + tag_count * 12;\n        }\n        var entries = \"\";\n        var values = \"\";\n        var key;\n\n        for (var key in ifd_dict) {\n            if (typeof (key) == \"string\") {\n                key = parseInt(key);\n            }\n            if ((ifd == \"0th\") && ([34665, 34853].indexOf(key) > -1)) {\n                continue;\n            } else if ((ifd == \"Exif\") && (key == 40965)) {\n                continue;\n            } else if ((ifd == \"1st\") && ([513, 514].indexOf(key) > -1)) {\n                continue;\n            }\n\n            var raw_value = ifd_dict[key];\n            var key_str = pack(\">H\", [key]);\n            var value_type = TAGS[ifd][key][\"type\"];\n            var type_str = pack(\">H\", [TYPES[value_type]]);\n\n            if (typeof (raw_value) == \"number\") {\n                raw_value = [raw_value];\n            }\n            var offset = TIFF_HEADER_LENGTH + entries_length + ifd_offset + values.length;\n            var b = _value_to_bytes(raw_value, value_type, offset);\n            var length_str = b[0];\n            var value_str = b[1];\n            var four_bytes_over = b[2];\n\n            entries += key_str + type_str + length_str + value_str;\n            values += four_bytes_over;\n        }\n\n        return [entry_header + entries, values];\n    }\n\n\n\n    function ExifReader(data) {\n        var segments,\n            app1;\n        if (data.slice(0, 2) == \"\\xff\\xd8\") { // JPEG\n            segments = splitIntoSegments(data);\n            app1 = getExifSeg(segments);\n            if (app1) {\n                this.tiftag = app1.slice(10);\n            } else {\n                this.tiftag = null;\n            }\n        } else if ([\"\\x49\\x49\", \"\\x4d\\x4d\"].indexOf(data.slice(0, 2)) > -1) { // TIFF\n            this.tiftag = data;\n        } else if (data.slice(0, 4) == \"Exif\") { // Exif\n            this.tiftag = data.slice(6);\n        } else {\n            throw (\"Given file is neither JPEG nor TIFF.\");\n        }\n    }\n\n    ExifReader.prototype = {\n        get_ifd: function (pointer, ifd_name) {\n            var ifd_dict = {};\n            var tag_count = unpack(this.endian_mark + \"H\",\n                this.tiftag.slice(pointer, pointer + 2))[0];\n            var offset = pointer + 2;\n            var t;\n            if ([\"0th\", \"1st\"].indexOf(ifd_name) > -1) {\n                t = \"Image\";\n            } else {\n                t = ifd_name;\n            }\n\n            for (var x = 0; x < tag_count; x++) {\n                pointer = offset + 12 * x;\n                var tag = unpack(this.endian_mark + \"H\",\n                    this.tiftag.slice(pointer, pointer + 2))[0];\n                var value_type = unpack(this.endian_mark + \"H\",\n                    this.tiftag.slice(pointer + 2, pointer + 4))[0];\n                var value_num = unpack(this.endian_mark + \"L\",\n                    this.tiftag.slice(pointer + 4, pointer + 8))[0];\n                var value = this.tiftag.slice(pointer + 8, pointer + 12);\n\n                var v_set = [value_type, value_num, value];\n                if (tag in TAGS[t]) {\n                    ifd_dict[tag] = this.convert_value(v_set);\n                }\n            }\n\n            if (ifd_name == \"0th\") {\n                pointer = offset + 12 * tag_count;\n                ifd_dict[\"first_ifd_pointer\"] = this.tiftag.slice(pointer, pointer + 4);\n            }\n\n            return ifd_dict;\n        },\n\n        convert_value: function (val) {\n            var data = null;\n            var t = val[0];\n            var length = val[1];\n            var value = val[2];\n            var pointer;\n\n            if (t == 1) { // BYTE\n                if (length > 4) {\n                    pointer = unpack(this.endian_mark + \"L\", value)[0];\n                    data = unpack(this.endian_mark + nStr(\"B\", length),\n                        this.tiftag.slice(pointer, pointer + length));\n                } else {\n                    data = unpack(this.endian_mark + nStr(\"B\", length), value.slice(0, length));\n                }\n            } else if (t == 2) { // ASCII\n                if (length > 4) {\n                    pointer = unpack(this.endian_mark + \"L\", value)[0];\n                    data = this.tiftag.slice(pointer, pointer + length - 1);\n                } else {\n                    data = value.slice(0, length - 1);\n                }\n            } else if (t == 3) { // SHORT\n                if (length > 2) {\n                    pointer = unpack(this.endian_mark + \"L\", value)[0];\n                    data = unpack(this.endian_mark + nStr(\"H\", length),\n                        this.tiftag.slice(pointer, pointer + length * 2));\n                } else {\n                    data = unpack(this.endian_mark + nStr(\"H\", length),\n                        value.slice(0, length * 2));\n                }\n            } else if (t == 4) { // LONG\n                if (length > 1) {\n                    pointer = unpack(this.endian_mark + \"L\", value)[0];\n                    data = unpack(this.endian_mark + nStr(\"L\", length),\n                        this.tiftag.slice(pointer, pointer + length * 4));\n                } else {\n                    data = unpack(this.endian_mark + nStr(\"L\", length),\n                        value);\n                }\n            } else if (t == 5) { // RATIONAL\n                pointer = unpack(this.endian_mark + \"L\", value)[0];\n                if (length > 1) {\n                    data = [];\n                    for (var x = 0; x < length; x++) {\n                        data.push([unpack(this.endian_mark + \"L\",\n                                this.tiftag.slice(pointer + x * 8, pointer + 4 + x * 8))[0],\n                                   unpack(this.endian_mark + \"L\",\n                                this.tiftag.slice(pointer + 4 + x * 8, pointer + 8 + x * 8))[0]\n                                   ]);\n                    }\n                } else {\n                    data = [unpack(this.endian_mark + \"L\",\n                            this.tiftag.slice(pointer, pointer + 4))[0],\n                            unpack(this.endian_mark + \"L\",\n                            this.tiftag.slice(pointer + 4, pointer + 8))[0]\n                            ];\n                }\n            } else if (t == 7) { // UNDEFINED BYTES\n                if (length > 4) {\n                    pointer = unpack(this.endian_mark + \"L\", value)[0];\n                    data = this.tiftag.slice(pointer, pointer + length);\n                } else {\n                    data = value.slice(0, length);\n                }\n            } else if (t == 10) { // SRATIONAL\n                pointer = unpack(this.endian_mark + \"L\", value)[0];\n                if (length > 1) {\n                    data = [];\n                    for (var x = 0; x < length; x++) {\n                        data.push([unpack(this.endian_mark + \"l\",\n                                this.tiftag.slice(pointer + x * 8, pointer + 4 + x * 8))[0],\n                                   unpack(this.endian_mark + \"l\",\n                                this.tiftag.slice(pointer + 4 + x * 8, pointer + 8 + x * 8))[0]\n                                  ]);\n                    }\n                } else {\n                    data = [unpack(this.endian_mark + \"l\",\n                            this.tiftag.slice(pointer, pointer + 4))[0],\n                            unpack(this.endian_mark + \"l\",\n                            this.tiftag.slice(pointer + 4, pointer + 8))[0]\n                           ];\n                }\n            } else {\n                throw (\"Exif might be wrong. Got incorrect value \" +\n                    \"type to decode. type:\" + t);\n            }\n\n            if ((data instanceof Array) && (data.length == 1)) {\n                return data[0];\n            } else {\n                return data;\n            }\n        },\n    };\n\n\n    if (typeof window !== \"undefined\" && typeof window.btoa === \"function\") {\n        var btoa = window.btoa;\n    }\n    if (typeof btoa === \"undefined\") {\n        var btoa = function (input) {        var output = \"\";\n            var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n            var i = 0;\n            var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n            while (i < input.length) {\n\n                chr1 = input.charCodeAt(i++);\n                chr2 = input.charCodeAt(i++);\n                chr3 = input.charCodeAt(i++);\n\n                enc1 = chr1 >> 2;\n                enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n                enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n                enc4 = chr3 & 63;\n\n                if (isNaN(chr2)) {\n                    enc3 = enc4 = 64;\n                } else if (isNaN(chr3)) {\n                    enc4 = 64;\n                }\n\n                output = output +\n                keyStr.charAt(enc1) + keyStr.charAt(enc2) +\n                keyStr.charAt(enc3) + keyStr.charAt(enc4);\n\n            }\n\n            return output;\n        };\n    }\n    \n    \n    if (typeof window !== \"undefined\" && typeof window.atob === \"function\") {\n        var atob = window.atob;\n    }\n    if (typeof atob === \"undefined\") {\n        var atob = function (input) {\n            var output = \"\";\n            var chr1, chr2, chr3;\n            var enc1, enc2, enc3, enc4;\n            var i = 0;\n            var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n            input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n            while (i < input.length) {\n\n                enc1 = keyStr.indexOf(input.charAt(i++));\n                enc2 = keyStr.indexOf(input.charAt(i++));\n                enc3 = keyStr.indexOf(input.charAt(i++));\n                enc4 = keyStr.indexOf(input.charAt(i++));\n\n                chr1 = (enc1 << 2) | (enc2 >> 4);\n                chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n                chr3 = ((enc3 & 3) << 6) | enc4;\n\n                output = output + String.fromCharCode(chr1);\n\n                if (enc3 != 64) {\n                    output = output + String.fromCharCode(chr2);\n                }\n                if (enc4 != 64) {\n                    output = output + String.fromCharCode(chr3);\n                }\n\n            }\n\n            return output;\n        };\n    }\n\n\n    function getImageSize(imageArray) {\n        var segments = slice2Segments(imageArray);\n        var seg,\n            width,\n            height,\n            SOF = [192, 193, 194, 195, 197, 198, 199, 201, 202, 203, 205, 206, 207];\n\n        for (var x = 0; x < segments.length; x++) {\n            seg = segments[x];\n            if (SOF.indexOf(seg[1]) >= 0) {\n                height = seg[5] * 256 + seg[6];\n                width = seg[7] * 256 + seg[8];\n                break;\n            }\n        }\n        return [width, height];\n    }\n\n\n    function pack(mark, array) {\n        if (!(array instanceof Array)) {\n            throw (\"'pack' error. Got invalid type argument.\");\n        }\n        if ((mark.length - 1) != array.length) {\n            throw (\"'pack' error. \" + (mark.length - 1) + \" marks, \" + array.length + \" elements.\");\n        }\n\n        var littleEndian;\n        if (mark[0] == \"<\") {\n            littleEndian = true;\n        } else if (mark[0] == \">\") {\n            littleEndian = false;\n        } else {\n            throw (\"\");\n        }\n        var packed = \"\";\n        var p = 1;\n        var val = null;\n        var c = null;\n        var valStr = null;\n\n        while (c = mark[p]) {\n            if (c.toLowerCase() == \"b\") {\n                val = array[p - 1];\n                if ((c == \"b\") && (val < 0)) {\n                    val += 0x100;\n                }\n                if ((val > 0xff) || (val < 0)) {\n                    throw (\"'pack' error.\");\n                } else {\n                    valStr = String.fromCharCode(val);\n                }\n            } else if (c == \"H\") {\n                val = array[p - 1];\n                if ((val > 0xffff) || (val < 0)) {\n                    throw (\"'pack' error.\");\n                } else {\n                    valStr = String.fromCharCode(Math.floor((val % 0x10000) / 0x100)) +\n                        String.fromCharCode(val % 0x100);\n                    if (littleEndian) {\n                        valStr = valStr.split(\"\").reverse().join(\"\");\n                    }\n                }\n            } else if (c.toLowerCase() == \"l\") {\n                val = array[p - 1];\n                if ((c == \"l\") && (val < 0)) {\n                    val += 0x100000000;\n                }\n                if ((val > 0xffffffff) || (val < 0)) {\n                    throw (\"'pack' error.\");\n                } else {\n                    valStr = String.fromCharCode(Math.floor(val / 0x1000000)) +\n                        String.fromCharCode(Math.floor((val % 0x1000000) / 0x10000)) +\n                        String.fromCharCode(Math.floor((val % 0x10000) / 0x100)) +\n                        String.fromCharCode(val % 0x100);\n                    if (littleEndian) {\n                        valStr = valStr.split(\"\").reverse().join(\"\");\n                    }\n                }\n            } else {\n                throw (\"'pack' error.\");\n            }\n\n            packed += valStr;\n            p += 1;\n        }\n\n        return packed;\n    }\n\n    function unpack(mark, str) {\n        if (typeof (str) != \"string\") {\n            throw (\"'unpack' error. Got invalid type argument.\");\n        }\n        var l = 0;\n        for (var markPointer = 1; markPointer < mark.length; markPointer++) {\n            if (mark[markPointer].toLowerCase() == \"b\") {\n                l += 1;\n            } else if (mark[markPointer].toLowerCase() == \"h\") {\n                l += 2;\n            } else if (mark[markPointer].toLowerCase() == \"l\") {\n                l += 4;\n            } else {\n                throw (\"'unpack' error. Got invalid mark.\");\n            }\n        }\n\n        if (l != str.length) {\n            throw (\"'unpack' error. Mismatch between symbol and string length. \" + l + \":\" + str.length);\n        }\n\n        var littleEndian;\n        if (mark[0] == \"<\") {\n            littleEndian = true;\n        } else if (mark[0] == \">\") {\n            littleEndian = false;\n        } else {\n            throw (\"'unpack' error.\");\n        }\n        var unpacked = [];\n        var strPointer = 0;\n        var p = 1;\n        var val = null;\n        var c = null;\n        var length = null;\n        var sliced = \"\";\n\n        while (c = mark[p]) {\n            if (c.toLowerCase() == \"b\") {\n                length = 1;\n                sliced = str.slice(strPointer, strPointer + length);\n                val = sliced.charCodeAt(0);\n                if ((c == \"b\") && (val >= 0x80)) {\n                    val -= 0x100;\n                }\n            } else if (c == \"H\") {\n                length = 2;\n                sliced = str.slice(strPointer, strPointer + length);\n                if (littleEndian) {\n                    sliced = sliced.split(\"\").reverse().join(\"\");\n                }\n                val = sliced.charCodeAt(0) * 0x100 +\n                    sliced.charCodeAt(1);\n            } else if (c.toLowerCase() == \"l\") {\n                length = 4;\n                sliced = str.slice(strPointer, strPointer + length);\n                if (littleEndian) {\n                    sliced = sliced.split(\"\").reverse().join(\"\");\n                }\n                val = sliced.charCodeAt(0) * 0x1000000 +\n                    sliced.charCodeAt(1) * 0x10000 +\n                    sliced.charCodeAt(2) * 0x100 +\n                    sliced.charCodeAt(3);\n                if ((c == \"l\") && (val >= 0x80000000)) {\n                    val -= 0x100000000;\n                }\n            } else {\n                throw (\"'unpack' error. \" + c);\n            }\n\n            unpacked.push(val);\n            strPointer += length;\n            p += 1;\n        }\n\n        return unpacked;\n    }\n\n    function nStr(ch, num) {\n        var str = \"\";\n        for (var i = 0; i < num; i++) {\n            str += ch;\n        }\n        return str;\n    }\n\n    function splitIntoSegments(data) {\n        if (data.slice(0, 2) != \"\\xff\\xd8\") {\n            throw (\"Given data isn't JPEG.\");\n        }\n\n        var head = 2;\n        var segments = [\"\\xff\\xd8\"];\n        while (true) {\n            if (data.slice(head, head + 2) == \"\\xff\\xda\") {\n                segments.push(data.slice(head));\n                break;\n            } else {\n                var length = unpack(\">H\", data.slice(head + 2, head + 4))[0];\n                var endPoint = head + length + 2;\n                segments.push(data.slice(head, endPoint));\n                head = endPoint;\n            }\n\n            if (head >= data.length) {\n                throw (\"Wrong JPEG data.\");\n            }\n        }\n        return segments;\n    }\n\n\n    function getExifSeg(segments) {\n        var seg;\n        for (var i = 0; i < segments.length; i++) {\n            seg = segments[i];\n            if (seg.slice(0, 2) == \"\\xff\\xe1\" &&\n                   seg.slice(4, 10) == \"Exif\\x00\\x00\") {\n                return seg;\n            }\n        }\n        return null;\n    }\n\n\n    function mergeSegments(segments, exif) {\n        \n        if (segments[1].slice(0, 2) == \"\\xff\\xe0\" &&\n            (segments[2].slice(0, 2) == \"\\xff\\xe1\" &&\n             segments[2].slice(4, 10) == \"Exif\\x00\\x00\")) {\n            if (exif) {\n                segments[2] = exif;\n                segments = [\"\\xff\\xd8\"].concat(segments.slice(2));\n            } else if (exif == null) {\n                segments = segments.slice(0, 2).concat(segments.slice(3));\n            } else {\n                segments = segments.slice(0).concat(segments.slice(2));\n            }\n        } else if (segments[1].slice(0, 2) == \"\\xff\\xe0\") {\n            if (exif) {\n                segments[1] = exif;\n            }\n        } else if (segments[1].slice(0, 2) == \"\\xff\\xe1\" &&\n                   segments[1].slice(4, 10) == \"Exif\\x00\\x00\") {\n            if (exif) {\n                segments[1] = exif;\n            } else if (exif == null) {\n                segments = segments.slice(0).concat(segments.slice(2));\n            }\n        } else {\n            if (exif) {\n                segments = [segments[0], exif].concat(segments.slice(1));\n            }\n        }\n        \n        return segments.join(\"\");\n    }\n\n\n    function toHex(str) {\n        var hexStr = \"\";\n        for (var i = 0; i < str.length; i++) {\n            var h = str.charCodeAt(i);\n            var hex = ((h < 10) ? \"0\" : \"\") + h.toString(16);\n            hexStr += hex + \" \";\n        }\n        return hexStr;\n    }\n\n\n    var TYPES = {\n        \"Byte\": 1,\n        \"Ascii\": 2,\n        \"Short\": 3,\n        \"Long\": 4,\n        \"Rational\": 5,\n        \"Undefined\": 7,\n        \"SLong\": 9,\n        \"SRational\": 10\n    };\n\n\n    var TAGS = {\n        'Image': {\n            11: {\n                'name': 'ProcessingSoftware',\n                'type': 'Ascii'\n            },\n            254: {\n                'name': 'NewSubfileType',\n                'type': 'Long'\n            },\n            255: {\n                'name': 'SubfileType',\n                'type': 'Short'\n            },\n            256: {\n                'name': 'ImageWidth',\n                'type': 'Long'\n            },\n            257: {\n                'name': 'ImageLength',\n                'type': 'Long'\n            },\n            258: {\n                'name': 'BitsPerSample',\n                'type': 'Short'\n            },\n            259: {\n                'name': 'Compression',\n                'type': 'Short'\n            },\n            262: {\n                'name': 'PhotometricInterpretation',\n                'type': 'Short'\n            },\n            263: {\n                'name': 'Threshholding',\n                'type': 'Short'\n            },\n            264: {\n                'name': 'CellWidth',\n                'type': 'Short'\n            },\n            265: {\n                'name': 'CellLength',\n                'type': 'Short'\n            },\n            266: {\n                'name': 'FillOrder',\n                'type': 'Short'\n            },\n            269: {\n                'name': 'DocumentName',\n                'type': 'Ascii'\n            },\n            270: {\n                'name': 'ImageDescription',\n                'type': 'Ascii'\n            },\n            271: {\n                'name': 'Make',\n                'type': 'Ascii'\n            },\n            272: {\n                'name': 'Model',\n                'type': 'Ascii'\n            },\n            273: {\n                'name': 'StripOffsets',\n                'type': 'Long'\n            },\n            274: {\n                'name': 'Orientation',\n                'type': 'Short'\n            },\n            277: {\n                'name': 'SamplesPerPixel',\n                'type': 'Short'\n            },\n            278: {\n                'name': 'RowsPerStrip',\n                'type': 'Long'\n            },\n            279: {\n                'name': 'StripByteCounts',\n                'type': 'Long'\n            },\n            282: {\n                'name': 'XResolution',\n                'type': 'Rational'\n            },\n            283: {\n                'name': 'YResolution',\n                'type': 'Rational'\n            },\n            284: {\n                'name': 'PlanarConfiguration',\n                'type': 'Short'\n            },\n            290: {\n                'name': 'GrayResponseUnit',\n                'type': 'Short'\n            },\n            291: {\n                'name': 'GrayResponseCurve',\n                'type': 'Short'\n            },\n            292: {\n                'name': 'T4Options',\n                'type': 'Long'\n            },\n            293: {\n                'name': 'T6Options',\n                'type': 'Long'\n            },\n            296: {\n                'name': 'ResolutionUnit',\n                'type': 'Short'\n            },\n            301: {\n                'name': 'TransferFunction',\n                'type': 'Short'\n            },\n            305: {\n                'name': 'Software',\n                'type': 'Ascii'\n            },\n            306: {\n                'name': 'DateTime',\n                'type': 'Ascii'\n            },\n            315: {\n                'name': 'Artist',\n                'type': 'Ascii'\n            },\n            316: {\n                'name': 'HostComputer',\n                'type': 'Ascii'\n            },\n            317: {\n                'name': 'Predictor',\n                'type': 'Short'\n            },\n            318: {\n                'name': 'WhitePoint',\n                'type': 'Rational'\n            },\n            319: {\n                'name': 'PrimaryChromaticities',\n                'type': 'Rational'\n            },\n            320: {\n                'name': 'ColorMap',\n                'type': 'Short'\n            },\n            321: {\n                'name': 'HalftoneHints',\n                'type': 'Short'\n            },\n            322: {\n                'name': 'TileWidth',\n                'type': 'Short'\n            },\n            323: {\n                'name': 'TileLength',\n                'type': 'Short'\n            },\n            324: {\n                'name': 'TileOffsets',\n                'type': 'Short'\n            },\n            325: {\n                'name': 'TileByteCounts',\n                'type': 'Short'\n            },\n            330: {\n                'name': 'SubIFDs',\n                'type': 'Long'\n            },\n            332: {\n                'name': 'InkSet',\n                'type': 'Short'\n            },\n            333: {\n                'name': 'InkNames',\n                'type': 'Ascii'\n            },\n            334: {\n                'name': 'NumberOfInks',\n                'type': 'Short'\n            },\n            336: {\n                'name': 'DotRange',\n                'type': 'Byte'\n            },\n            337: {\n                'name': 'TargetPrinter',\n                'type': 'Ascii'\n            },\n            338: {\n                'name': 'ExtraSamples',\n                'type': 'Short'\n            },\n            339: {\n                'name': 'SampleFormat',\n                'type': 'Short'\n            },\n            340: {\n                'name': 'SMinSampleValue',\n                'type': 'Short'\n            },\n            341: {\n                'name': 'SMaxSampleValue',\n                'type': 'Short'\n            },\n            342: {\n                'name': 'TransferRange',\n                'type': 'Short'\n            },\n            343: {\n                'name': 'ClipPath',\n                'type': 'Byte'\n            },\n            344: {\n                'name': 'XClipPathUnits',\n                'type': 'Long'\n            },\n            345: {\n                'name': 'YClipPathUnits',\n                'type': 'Long'\n            },\n            346: {\n                'name': 'Indexed',\n                'type': 'Short'\n            },\n            347: {\n                'name': 'JPEGTables',\n                'type': 'Undefined'\n            },\n            351: {\n                'name': 'OPIProxy',\n                'type': 'Short'\n            },\n            512: {\n                'name': 'JPEGProc',\n                'type': 'Long'\n            },\n            513: {\n                'name': 'JPEGInterchangeFormat',\n                'type': 'Long'\n            },\n            514: {\n                'name': 'JPEGInterchangeFormatLength',\n                'type': 'Long'\n            },\n            515: {\n                'name': 'JPEGRestartInterval',\n                'type': 'Short'\n            },\n            517: {\n                'name': 'JPEGLosslessPredictors',\n                'type': 'Short'\n            },\n            518: {\n                'name': 'JPEGPointTransforms',\n                'type': 'Short'\n            },\n            519: {\n                'name': 'JPEGQTables',\n                'type': 'Long'\n            },\n            520: {\n                'name': 'JPEGDCTables',\n                'type': 'Long'\n            },\n            521: {\n                'name': 'JPEGACTables',\n                'type': 'Long'\n            },\n            529: {\n                'name': 'YCbCrCoefficients',\n                'type': 'Rational'\n            },\n            530: {\n                'name': 'YCbCrSubSampling',\n                'type': 'Short'\n            },\n            531: {\n                'name': 'YCbCrPositioning',\n                'type': 'Short'\n            },\n            532: {\n                'name': 'ReferenceBlackWhite',\n                'type': 'Rational'\n            },\n            700: {\n                'name': 'XMLPacket',\n                'type': 'Byte'\n            },\n            18246: {\n                'name': 'Rating',\n                'type': 'Short'\n            },\n            18249: {\n                'name': 'RatingPercent',\n                'type': 'Short'\n            },\n            32781: {\n                'name': 'ImageID',\n                'type': 'Ascii'\n            },\n            33421: {\n                'name': 'CFARepeatPatternDim',\n                'type': 'Short'\n            },\n            33422: {\n                'name': 'CFAPattern',\n                'type': 'Byte'\n            },\n            33423: {\n                'name': 'BatteryLevel',\n                'type': 'Rational'\n            },\n            33432: {\n                'name': 'Copyright',\n                'type': 'Ascii'\n            },\n            33434: {\n                'name': 'ExposureTime',\n                'type': 'Rational'\n            },\n            34377: {\n                'name': 'ImageResources',\n                'type': 'Byte'\n            },\n            34665: {\n                'name': 'ExifTag',\n                'type': 'Long'\n            },\n            34675: {\n                'name': 'InterColorProfile',\n                'type': 'Undefined'\n            },\n            34853: {\n                'name': 'GPSTag',\n                'type': 'Long'\n            },\n            34857: {\n                'name': 'Interlace',\n                'type': 'Short'\n            },\n            34858: {\n                'name': 'TimeZoneOffset',\n                'type': 'Long'\n            },\n            34859: {\n                'name': 'SelfTimerMode',\n                'type': 'Short'\n            },\n            37387: {\n                'name': 'FlashEnergy',\n                'type': 'Rational'\n            },\n            37388: {\n                'name': 'SpatialFrequencyResponse',\n                'type': 'Undefined'\n            },\n            37389: {\n                'name': 'Noise',\n                'type': 'Undefined'\n            },\n            37390: {\n                'name': 'FocalPlaneXResolution',\n                'type': 'Rational'\n            },\n            37391: {\n                'name': 'FocalPlaneYResolution',\n                'type': 'Rational'\n            },\n            37392: {\n                'name': 'FocalPlaneResolutionUnit',\n                'type': 'Short'\n            },\n            37393: {\n                'name': 'ImageNumber',\n                'type': 'Long'\n            },\n            37394: {\n                'name': 'SecurityClassification',\n                'type': 'Ascii'\n            },\n            37395: {\n                'name': 'ImageHistory',\n                'type': 'Ascii'\n            },\n            37397: {\n                'name': 'ExposureIndex',\n                'type': 'Rational'\n            },\n            37398: {\n                'name': 'TIFFEPStandardID',\n                'type': 'Byte'\n            },\n            37399: {\n                'name': 'SensingMethod',\n                'type': 'Short'\n            },\n            40091: {\n                'name': 'XPTitle',\n                'type': 'Byte'\n            },\n            40092: {\n                'name': 'XPComment',\n                'type': 'Byte'\n            },\n            40093: {\n                'name': 'XPAuthor',\n                'type': 'Byte'\n            },\n            40094: {\n                'name': 'XPKeywords',\n                'type': 'Byte'\n            },\n            40095: {\n                'name': 'XPSubject',\n                'type': 'Byte'\n            },\n            50341: {\n                'name': 'PrintImageMatching',\n                'type': 'Undefined'\n            },\n            50706: {\n                'name': 'DNGVersion',\n                'type': 'Byte'\n            },\n            50707: {\n                'name': 'DNGBackwardVersion',\n                'type': 'Byte'\n            },\n            50708: {\n                'name': 'UniqueCameraModel',\n                'type': 'Ascii'\n            },\n            50709: {\n                'name': 'LocalizedCameraModel',\n                'type': 'Byte'\n            },\n            50710: {\n                'name': 'CFAPlaneColor',\n                'type': 'Byte'\n            },\n            50711: {\n                'name': 'CFALayout',\n                'type': 'Short'\n            },\n            50712: {\n                'name': 'LinearizationTable',\n                'type': 'Short'\n            },\n            50713: {\n                'name': 'BlackLevelRepeatDim',\n                'type': 'Short'\n            },\n            50714: {\n                'name': 'BlackLevel',\n                'type': 'Rational'\n            },\n            50715: {\n                'name': 'BlackLevelDeltaH',\n                'type': 'SRational'\n            },\n            50716: {\n                'name': 'BlackLevelDeltaV',\n                'type': 'SRational'\n            },\n            50717: {\n                'name': 'WhiteLevel',\n                'type': 'Short'\n            },\n            50718: {\n                'name': 'DefaultScale',\n                'type': 'Rational'\n            },\n            50719: {\n                'name': 'DefaultCropOrigin',\n                'type': 'Short'\n            },\n            50720: {\n                'name': 'DefaultCropSize',\n                'type': 'Short'\n            },\n            50721: {\n                'name': 'ColorMatrix1',\n                'type': 'SRational'\n            },\n            50722: {\n                'name': 'ColorMatrix2',\n                'type': 'SRational'\n            },\n            50723: {\n                'name': 'CameraCalibration1',\n                'type': 'SRational'\n            },\n            50724: {\n                'name': 'CameraCalibration2',\n                'type': 'SRational'\n            },\n            50725: {\n                'name': 'ReductionMatrix1',\n                'type': 'SRational'\n            },\n            50726: {\n                'name': 'ReductionMatrix2',\n                'type': 'SRational'\n            },\n            50727: {\n                'name': 'AnalogBalance',\n                'type': 'Rational'\n            },\n            50728: {\n                'name': 'AsShotNeutral',\n                'type': 'Short'\n            },\n            50729: {\n                'name': 'AsShotWhiteXY',\n                'type': 'Rational'\n            },\n            50730: {\n                'name': 'BaselineExposure',\n                'type': 'SRational'\n            },\n            50731: {\n                'name': 'BaselineNoise',\n                'type': 'Rational'\n            },\n            50732: {\n                'name': 'BaselineSharpness',\n                'type': 'Rational'\n            },\n            50733: {\n                'name': 'BayerGreenSplit',\n                'type': 'Long'\n            },\n            50734: {\n                'name': 'LinearResponseLimit',\n                'type': 'Rational'\n            },\n            50735: {\n                'name': 'CameraSerialNumber',\n                'type': 'Ascii'\n            },\n            50736: {\n                'name': 'LensInfo',\n                'type': 'Rational'\n            },\n            50737: {\n                'name': 'ChromaBlurRadius',\n                'type': 'Rational'\n            },\n            50738: {\n                'name': 'AntiAliasStrength',\n                'type': 'Rational'\n            },\n            50739: {\n                'name': 'ShadowScale',\n                'type': 'SRational'\n            },\n            50740: {\n                'name': 'DNGPrivateData',\n                'type': 'Byte'\n            },\n            50741: {\n                'name': 'MakerNoteSafety',\n                'type': 'Short'\n            },\n            50778: {\n                'name': 'CalibrationIlluminant1',\n                'type': 'Short'\n            },\n            50779: {\n                'name': 'CalibrationIlluminant2',\n                'type': 'Short'\n            },\n            50780: {\n                'name': 'BestQualityScale',\n                'type': 'Rational'\n            },\n            50781: {\n                'name': 'RawDataUniqueID',\n                'type': 'Byte'\n            },\n            50827: {\n                'name': 'OriginalRawFileName',\n                'type': 'Byte'\n            },\n            50828: {\n                'name': 'OriginalRawFileData',\n                'type': 'Undefined'\n            },\n            50829: {\n                'name': 'ActiveArea',\n                'type': 'Short'\n            },\n            50830: {\n                'name': 'MaskedAreas',\n                'type': 'Short'\n            },\n            50831: {\n                'name': 'AsShotICCProfile',\n                'type': 'Undefined'\n            },\n            50832: {\n                'name': 'AsShotPreProfileMatrix',\n                'type': 'SRational'\n            },\n            50833: {\n                'name': 'CurrentICCProfile',\n                'type': 'Undefined'\n            },\n            50834: {\n                'name': 'CurrentPreProfileMatrix',\n                'type': 'SRational'\n            },\n            50879: {\n                'name': 'ColorimetricReference',\n                'type': 'Short'\n            },\n            50931: {\n                'name': 'CameraCalibrationSignature',\n                'type': 'Byte'\n            },\n            50932: {\n                'name': 'ProfileCalibrationSignature',\n                'type': 'Byte'\n            },\n            50934: {\n                'name': 'AsShotProfileName',\n                'type': 'Byte'\n            },\n            50935: {\n                'name': 'NoiseReductionApplied',\n                'type': 'Rational'\n            },\n            50936: {\n                'name': 'ProfileName',\n                'type': 'Byte'\n            },\n            50937: {\n                'name': 'ProfileHueSatMapDims',\n                'type': 'Long'\n            },\n            50938: {\n                'name': 'ProfileHueSatMapData1',\n                'type': 'Float'\n            },\n            50939: {\n                'name': 'ProfileHueSatMapData2',\n                'type': 'Float'\n            },\n            50940: {\n                'name': 'ProfileToneCurve',\n                'type': 'Float'\n            },\n            50941: {\n                'name': 'ProfileEmbedPolicy',\n                'type': 'Long'\n            },\n            50942: {\n                'name': 'ProfileCopyright',\n                'type': 'Byte'\n            },\n            50964: {\n                'name': 'ForwardMatrix1',\n                'type': 'SRational'\n            },\n            50965: {\n                'name': 'ForwardMatrix2',\n                'type': 'SRational'\n            },\n            50966: {\n                'name': 'PreviewApplicationName',\n                'type': 'Byte'\n            },\n            50967: {\n                'name': 'PreviewApplicationVersion',\n                'type': 'Byte'\n            },\n            50968: {\n                'name': 'PreviewSettingsName',\n                'type': 'Byte'\n            },\n            50969: {\n                'name': 'PreviewSettingsDigest',\n                'type': 'Byte'\n            },\n            50970: {\n                'name': 'PreviewColorSpace',\n                'type': 'Long'\n            },\n            50971: {\n                'name': 'PreviewDateTime',\n                'type': 'Ascii'\n            },\n            50972: {\n                'name': 'RawImageDigest',\n                'type': 'Undefined'\n            },\n            50973: {\n                'name': 'OriginalRawFileDigest',\n                'type': 'Undefined'\n            },\n            50974: {\n                'name': 'SubTileBlockSize',\n                'type': 'Long'\n            },\n            50975: {\n                'name': 'RowInterleaveFactor',\n                'type': 'Long'\n            },\n            50981: {\n                'name': 'ProfileLookTableDims',\n                'type': 'Long'\n            },\n            50982: {\n                'name': 'ProfileLookTableData',\n                'type': 'Float'\n            },\n            51008: {\n                'name': 'OpcodeList1',\n                'type': 'Undefined'\n            },\n            51009: {\n                'name': 'OpcodeList2',\n                'type': 'Undefined'\n            },\n            51022: {\n                'name': 'OpcodeList3',\n                'type': 'Undefined'\n            }\n        },\n        'Exif': {\n            33434: {\n                'name': 'ExposureTime',\n                'type': 'Rational'\n            },\n            33437: {\n                'name': 'FNumber',\n                'type': 'Rational'\n            },\n            34850: {\n                'name': 'ExposureProgram',\n                'type': 'Short'\n            },\n            34852: {\n                'name': 'SpectralSensitivity',\n                'type': 'Ascii'\n            },\n            34855: {\n                'name': 'ISOSpeedRatings',\n                'type': 'Short'\n            },\n            34856: {\n                'name': 'OECF',\n                'type': 'Undefined'\n            },\n            34864: {\n                'name': 'SensitivityType',\n                'type': 'Short'\n            },\n            34865: {\n                'name': 'StandardOutputSensitivity',\n                'type': 'Long'\n            },\n            34866: {\n                'name': 'RecommendedExposureIndex',\n                'type': 'Long'\n            },\n            34867: {\n                'name': 'ISOSpeed',\n                'type': 'Long'\n            },\n            34868: {\n                'name': 'ISOSpeedLatitudeyyy',\n                'type': 'Long'\n            },\n            34869: {\n                'name': 'ISOSpeedLatitudezzz',\n                'type': 'Long'\n            },\n            36864: {\n                'name': 'ExifVersion',\n                'type': 'Undefined'\n            },\n            36867: {\n                'name': 'DateTimeOriginal',\n                'type': 'Ascii'\n            },\n            36868: {\n                'name': 'DateTimeDigitized',\n                'type': 'Ascii'\n            },\n            37121: {\n                'name': 'ComponentsConfiguration',\n                'type': 'Undefined'\n            },\n            37122: {\n                'name': 'CompressedBitsPerPixel',\n                'type': 'Rational'\n            },\n            37377: {\n                'name': 'ShutterSpeedValue',\n                'type': 'SRational'\n            },\n            37378: {\n                'name': 'ApertureValue',\n                'type': 'Rational'\n            },\n            37379: {\n                'name': 'BrightnessValue',\n                'type': 'SRational'\n            },\n            37380: {\n                'name': 'ExposureBiasValue',\n                'type': 'SRational'\n            },\n            37381: {\n                'name': 'MaxApertureValue',\n                'type': 'Rational'\n            },\n            37382: {\n                'name': 'SubjectDistance',\n                'type': 'Rational'\n            },\n            37383: {\n                'name': 'MeteringMode',\n                'type': 'Short'\n            },\n            37384: {\n                'name': 'LightSource',\n                'type': 'Short'\n            },\n            37385: {\n                'name': 'Flash',\n                'type': 'Short'\n            },\n            37386: {\n                'name': 'FocalLength',\n                'type': 'Rational'\n            },\n            37396: {\n                'name': 'SubjectArea',\n                'type': 'Short'\n            },\n            37500: {\n                'name': 'MakerNote',\n                'type': 'Undefined'\n            },\n            37510: {\n                'name': 'UserComment',\n                'type': 'Ascii'\n            },\n            37520: {\n                'name': 'SubSecTime',\n                'type': 'Ascii'\n            },\n            37521: {\n                'name': 'SubSecTimeOriginal',\n                'type': 'Ascii'\n            },\n            37522: {\n                'name': 'SubSecTimeDigitized',\n                'type': 'Ascii'\n            },\n            40960: {\n                'name': 'FlashpixVersion',\n                'type': 'Undefined'\n            },\n            40961: {\n                'name': 'ColorSpace',\n                'type': 'Short'\n            },\n            40962: {\n                'name': 'PixelXDimension',\n                'type': 'Long'\n            },\n            40963: {\n                'name': 'PixelYDimension',\n                'type': 'Long'\n            },\n            40964: {\n                'name': 'RelatedSoundFile',\n                'type': 'Ascii'\n            },\n            40965: {\n                'name': 'InteroperabilityTag',\n                'type': 'Long'\n            },\n            41483: {\n                'name': 'FlashEnergy',\n                'type': 'Rational'\n            },\n            41484: {\n                'name': 'SpatialFrequencyResponse',\n                'type': 'Undefined'\n            },\n            41486: {\n                'name': 'FocalPlaneXResolution',\n                'type': 'Rational'\n            },\n            41487: {\n                'name': 'FocalPlaneYResolution',\n                'type': 'Rational'\n            },\n            41488: {\n                'name': 'FocalPlaneResolutionUnit',\n                'type': 'Short'\n            },\n            41492: {\n                'name': 'SubjectLocation',\n                'type': 'Short'\n            },\n            41493: {\n                'name': 'ExposureIndex',\n                'type': 'Rational'\n            },\n            41495: {\n                'name': 'SensingMethod',\n                'type': 'Short'\n            },\n            41728: {\n                'name': 'FileSource',\n                'type': 'Undefined'\n            },\n            41729: {\n                'name': 'SceneType',\n                'type': 'Undefined'\n            },\n            41730: {\n                'name': 'CFAPattern',\n                'type': 'Undefined'\n            },\n            41985: {\n                'name': 'CustomRendered',\n                'type': 'Short'\n            },\n            41986: {\n                'name': 'ExposureMode',\n                'type': 'Short'\n            },\n            41987: {\n                'name': 'WhiteBalance',\n                'type': 'Short'\n            },\n            41988: {\n                'name': 'DigitalZoomRatio',\n                'type': 'Rational'\n            },\n            41989: {\n                'name': 'FocalLengthIn35mmFilm',\n                'type': 'Short'\n            },\n            41990: {\n                'name': 'SceneCaptureType',\n                'type': 'Short'\n            },\n            41991: {\n                'name': 'GainControl',\n                'type': 'Short'\n            },\n            41992: {\n                'name': 'Contrast',\n                'type': 'Short'\n            },\n            41993: {\n                'name': 'Saturation',\n                'type': 'Short'\n            },\n            41994: {\n                'name': 'Sharpness',\n                'type': 'Short'\n            },\n            41995: {\n                'name': 'DeviceSettingDescription',\n                'type': 'Undefined'\n            },\n            41996: {\n                'name': 'SubjectDistanceRange',\n                'type': 'Short'\n            },\n            42016: {\n                'name': 'ImageUniqueID',\n                'type': 'Ascii'\n            },\n            42032: {\n                'name': 'CameraOwnerName',\n                'type': 'Ascii'\n            },\n            42033: {\n                'name': 'BodySerialNumber',\n                'type': 'Ascii'\n            },\n            42034: {\n                'name': 'LensSpecification',\n                'type': 'Rational'\n            },\n            42035: {\n                'name': 'LensMake',\n                'type': 'Ascii'\n            },\n            42036: {\n                'name': 'LensModel',\n                'type': 'Ascii'\n            },\n            42037: {\n                'name': 'LensSerialNumber',\n                'type': 'Ascii'\n            },\n            42240: {\n                'name': 'Gamma',\n                'type': 'Rational'\n            }\n        },\n        'GPS': {\n            0: {\n                'name': 'GPSVersionID',\n                'type': 'Byte'\n            },\n            1: {\n                'name': 'GPSLatitudeRef',\n                'type': 'Ascii'\n            },\n            2: {\n                'name': 'GPSLatitude',\n                'type': 'Rational'\n            },\n            3: {\n                'name': 'GPSLongitudeRef',\n                'type': 'Ascii'\n            },\n            4: {\n                'name': 'GPSLongitude',\n                'type': 'Rational'\n            },\n            5: {\n                'name': 'GPSAltitudeRef',\n                'type': 'Byte'\n            },\n            6: {\n                'name': 'GPSAltitude',\n                'type': 'Rational'\n            },\n            7: {\n                'name': 'GPSTimeStamp',\n                'type': 'Rational'\n            },\n            8: {\n                'name': 'GPSSatellites',\n                'type': 'Ascii'\n            },\n            9: {\n                'name': 'GPSStatus',\n                'type': 'Ascii'\n            },\n            10: {\n                'name': 'GPSMeasureMode',\n                'type': 'Ascii'\n            },\n            11: {\n                'name': 'GPSDOP',\n                'type': 'Rational'\n            },\n            12: {\n                'name': 'GPSSpeedRef',\n                'type': 'Ascii'\n            },\n            13: {\n                'name': 'GPSSpeed',\n                'type': 'Rational'\n            },\n            14: {\n                'name': 'GPSTrackRef',\n                'type': 'Ascii'\n            },\n            15: {\n                'name': 'GPSTrack',\n                'type': 'Rational'\n            },\n            16: {\n                'name': 'GPSImgDirectionRef',\n                'type': 'Ascii'\n            },\n            17: {\n                'name': 'GPSImgDirection',\n                'type': 'Rational'\n            },\n            18: {\n                'name': 'GPSMapDatum',\n                'type': 'Ascii'\n            },\n            19: {\n                'name': 'GPSDestLatitudeRef',\n                'type': 'Ascii'\n            },\n            20: {\n                'name': 'GPSDestLatitude',\n                'type': 'Rational'\n            },\n            21: {\n                'name': 'GPSDestLongitudeRef',\n                'type': 'Ascii'\n            },\n            22: {\n                'name': 'GPSDestLongitude',\n                'type': 'Rational'\n            },\n            23: {\n                'name': 'GPSDestBearingRef',\n                'type': 'Ascii'\n            },\n            24: {\n                'name': 'GPSDestBearing',\n                'type': 'Rational'\n            },\n            25: {\n                'name': 'GPSDestDistanceRef',\n                'type': 'Ascii'\n            },\n            26: {\n                'name': 'GPSDestDistance',\n                'type': 'Rational'\n            },\n            27: {\n                'name': 'GPSProcessingMethod',\n                'type': 'Undefined'\n            },\n            28: {\n                'name': 'GPSAreaInformation',\n                'type': 'Undefined'\n            },\n            29: {\n                'name': 'GPSDateStamp',\n                'type': 'Ascii'\n            },\n            30: {\n                'name': 'GPSDifferential',\n                'type': 'Short'\n            },\n            31: {\n                'name': 'GPSHPositioningError',\n                'type': 'Rational'\n            }\n        },\n        'Interop': {\n            1: {\n                'name': 'InteroperabilityIndex',\n                'type': 'Ascii'\n            }\n        },\n    };\n    TAGS[\"0th\"] = TAGS[\"Image\"];\n    TAGS[\"1st\"] = TAGS[\"Image\"];\n    that.TAGS = TAGS;\n\n    \n    that.ImageIFD = {\n        ProcessingSoftware:11,\n        NewSubfileType:254,\n        SubfileType:255,\n        ImageWidth:256,\n        ImageLength:257,\n        BitsPerSample:258,\n        Compression:259,\n        PhotometricInterpretation:262,\n        Threshholding:263,\n        CellWidth:264,\n        CellLength:265,\n        FillOrder:266,\n        DocumentName:269,\n        ImageDescription:270,\n        Make:271,\n        Model:272,\n        StripOffsets:273,\n        Orientation:274,\n        SamplesPerPixel:277,\n        RowsPerStrip:278,\n        StripByteCounts:279,\n        XResolution:282,\n        YResolution:283,\n        PlanarConfiguration:284,\n        GrayResponseUnit:290,\n        GrayResponseCurve:291,\n        T4Options:292,\n        T6Options:293,\n        ResolutionUnit:296,\n        TransferFunction:301,\n        Software:305,\n        DateTime:306,\n        Artist:315,\n        HostComputer:316,\n        Predictor:317,\n        WhitePoint:318,\n        PrimaryChromaticities:319,\n        ColorMap:320,\n        HalftoneHints:321,\n        TileWidth:322,\n        TileLength:323,\n        TileOffsets:324,\n        TileByteCounts:325,\n        SubIFDs:330,\n        InkSet:332,\n        InkNames:333,\n        NumberOfInks:334,\n        DotRange:336,\n        TargetPrinter:337,\n        ExtraSamples:338,\n        SampleFormat:339,\n        SMinSampleValue:340,\n        SMaxSampleValue:341,\n        TransferRange:342,\n        ClipPath:343,\n        XClipPathUnits:344,\n        YClipPathUnits:345,\n        Indexed:346,\n        JPEGTables:347,\n        OPIProxy:351,\n        JPEGProc:512,\n        JPEGInterchangeFormat:513,\n        JPEGInterchangeFormatLength:514,\n        JPEGRestartInterval:515,\n        JPEGLosslessPredictors:517,\n        JPEGPointTransforms:518,\n        JPEGQTables:519,\n        JPEGDCTables:520,\n        JPEGACTables:521,\n        YCbCrCoefficients:529,\n        YCbCrSubSampling:530,\n        YCbCrPositioning:531,\n        ReferenceBlackWhite:532,\n        XMLPacket:700,\n        Rating:18246,\n        RatingPercent:18249,\n        ImageID:32781,\n        CFARepeatPatternDim:33421,\n        CFAPattern:33422,\n        BatteryLevel:33423,\n        Copyright:33432,\n        ExposureTime:33434,\n        ImageResources:34377,\n        ExifTag:34665,\n        InterColorProfile:34675,\n        GPSTag:34853,\n        Interlace:34857,\n        TimeZoneOffset:34858,\n        SelfTimerMode:34859,\n        FlashEnergy:37387,\n        SpatialFrequencyResponse:37388,\n        Noise:37389,\n        FocalPlaneXResolution:37390,\n        FocalPlaneYResolution:37391,\n        FocalPlaneResolutionUnit:37392,\n        ImageNumber:37393,\n        SecurityClassification:37394,\n        ImageHistory:37395,\n        ExposureIndex:37397,\n        TIFFEPStandardID:37398,\n        SensingMethod:37399,\n        XPTitle:40091,\n        XPComment:40092,\n        XPAuthor:40093,\n        XPKeywords:40094,\n        XPSubject:40095,\n        PrintImageMatching:50341,\n        DNGVersion:50706,\n        DNGBackwardVersion:50707,\n        UniqueCameraModel:50708,\n        LocalizedCameraModel:50709,\n        CFAPlaneColor:50710,\n        CFALayout:50711,\n        LinearizationTable:50712,\n        BlackLevelRepeatDim:50713,\n        BlackLevel:50714,\n        BlackLevelDeltaH:50715,\n        BlackLevelDeltaV:50716,\n        WhiteLevel:50717,\n        DefaultScale:50718,\n        DefaultCropOrigin:50719,\n        DefaultCropSize:50720,\n        ColorMatrix1:50721,\n        ColorMatrix2:50722,\n        CameraCalibration1:50723,\n        CameraCalibration2:50724,\n        ReductionMatrix1:50725,\n        ReductionMatrix2:50726,\n        AnalogBalance:50727,\n        AsShotNeutral:50728,\n        AsShotWhiteXY:50729,\n        BaselineExposure:50730,\n        BaselineNoise:50731,\n        BaselineSharpness:50732,\n        BayerGreenSplit:50733,\n        LinearResponseLimit:50734,\n        CameraSerialNumber:50735,\n        LensInfo:50736,\n        ChromaBlurRadius:50737,\n        AntiAliasStrength:50738,\n        ShadowScale:50739,\n        DNGPrivateData:50740,\n        MakerNoteSafety:50741,\n        CalibrationIlluminant1:50778,\n        CalibrationIlluminant2:50779,\n        BestQualityScale:50780,\n        RawDataUniqueID:50781,\n        OriginalRawFileName:50827,\n        OriginalRawFileData:50828,\n        ActiveArea:50829,\n        MaskedAreas:50830,\n        AsShotICCProfile:50831,\n        AsShotPreProfileMatrix:50832,\n        CurrentICCProfile:50833,\n        CurrentPreProfileMatrix:50834,\n        ColorimetricReference:50879,\n        CameraCalibrationSignature:50931,\n        ProfileCalibrationSignature:50932,\n        AsShotProfileName:50934,\n        NoiseReductionApplied:50935,\n        ProfileName:50936,\n        ProfileHueSatMapDims:50937,\n        ProfileHueSatMapData1:50938,\n        ProfileHueSatMapData2:50939,\n        ProfileToneCurve:50940,\n        ProfileEmbedPolicy:50941,\n        ProfileCopyright:50942,\n        ForwardMatrix1:50964,\n        ForwardMatrix2:50965,\n        PreviewApplicationName:50966,\n        PreviewApplicationVersion:50967,\n        PreviewSettingsName:50968,\n        PreviewSettingsDigest:50969,\n        PreviewColorSpace:50970,\n        PreviewDateTime:50971,\n        RawImageDigest:50972,\n        OriginalRawFileDigest:50973,\n        SubTileBlockSize:50974,\n        RowInterleaveFactor:50975,\n        ProfileLookTableDims:50981,\n        ProfileLookTableData:50982,\n        OpcodeList1:51008,\n        OpcodeList2:51009,\n        OpcodeList3:51022,\n        NoiseProfile:51041,\n    };\n\n    \n    that.ExifIFD = {\n        ExposureTime:33434,\n        FNumber:33437,\n        ExposureProgram:34850,\n        SpectralSensitivity:34852,\n        ISOSpeedRatings:34855,\n        OECF:34856,\n        SensitivityType:34864,\n        StandardOutputSensitivity:34865,\n        RecommendedExposureIndex:34866,\n        ISOSpeed:34867,\n        ISOSpeedLatitudeyyy:34868,\n        ISOSpeedLatitudezzz:34869,\n        ExifVersion:36864,\n        DateTimeOriginal:36867,\n        DateTimeDigitized:36868,\n        ComponentsConfiguration:37121,\n        CompressedBitsPerPixel:37122,\n        ShutterSpeedValue:37377,\n        ApertureValue:37378,\n        BrightnessValue:37379,\n        ExposureBiasValue:37380,\n        MaxApertureValue:37381,\n        SubjectDistance:37382,\n        MeteringMode:37383,\n        LightSource:37384,\n        Flash:37385,\n        FocalLength:37386,\n        SubjectArea:37396,\n        MakerNote:37500,\n        UserComment:37510,\n        SubSecTime:37520,\n        SubSecTimeOriginal:37521,\n        SubSecTimeDigitized:37522,\n        FlashpixVersion:40960,\n        ColorSpace:40961,\n        PixelXDimension:40962,\n        PixelYDimension:40963,\n        RelatedSoundFile:40964,\n        InteroperabilityTag:40965,\n        FlashEnergy:41483,\n        SpatialFrequencyResponse:41484,\n        FocalPlaneXResolution:41486,\n        FocalPlaneYResolution:41487,\n        FocalPlaneResolutionUnit:41488,\n        SubjectLocation:41492,\n        ExposureIndex:41493,\n        SensingMethod:41495,\n        FileSource:41728,\n        SceneType:41729,\n        CFAPattern:41730,\n        CustomRendered:41985,\n        ExposureMode:41986,\n        WhiteBalance:41987,\n        DigitalZoomRatio:41988,\n        FocalLengthIn35mmFilm:41989,\n        SceneCaptureType:41990,\n        GainControl:41991,\n        Contrast:41992,\n        Saturation:41993,\n        Sharpness:41994,\n        DeviceSettingDescription:41995,\n        SubjectDistanceRange:41996,\n        ImageUniqueID:42016,\n        CameraOwnerName:42032,\n        BodySerialNumber:42033,\n        LensSpecification:42034,\n        LensMake:42035,\n        LensModel:42036,\n        LensSerialNumber:42037,\n        Gamma:42240,\n    };\n\n\n    that.GPSIFD = {\n        GPSVersionID:0,\n        GPSLatitudeRef:1,\n        GPSLatitude:2,\n        GPSLongitudeRef:3,\n        GPSLongitude:4,\n        GPSAltitudeRef:5,\n        GPSAltitude:6,\n        GPSTimeStamp:7,\n        GPSSatellites:8,\n        GPSStatus:9,\n        GPSMeasureMode:10,\n        GPSDOP:11,\n        GPSSpeedRef:12,\n        GPSSpeed:13,\n        GPSTrackRef:14,\n        GPSTrack:15,\n        GPSImgDirectionRef:16,\n        GPSImgDirection:17,\n        GPSMapDatum:18,\n        GPSDestLatitudeRef:19,\n        GPSDestLatitude:20,\n        GPSDestLongitudeRef:21,\n        GPSDestLongitude:22,\n        GPSDestBearingRef:23,\n        GPSDestBearing:24,\n        GPSDestDistanceRef:25,\n        GPSDestDistance:26,\n        GPSProcessingMethod:27,\n        GPSAreaInformation:28,\n        GPSDateStamp:29,\n        GPSDifferential:30,\n        GPSHPositioningError:31,\n    };\n\n\n    that.InteropIFD = {\n        InteroperabilityIndex:1,\n    };\n\n    that.GPSHelper = {\n        degToDmsRational:function (degFloat) {\n            var minFloat = degFloat % 1 * 60;\n            var secFloat = minFloat % 1 * 60;\n            var deg = Math.floor(degFloat);\n            var min = Math.floor(minFloat);\n            var sec = Math.round(secFloat * 100);\n\n            return [[deg, 1], [min, 1], [sec, 100]];\n        }\n    };\n    \n    \n    if (typeof exports !== 'undefined') {\n        if (typeof module !== 'undefined' && module.exports) {\n            exports = module.exports = that;\n        }\n        exports.piexif = that;\n    } else {\n        window.piexif = that;\n    }\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/purify.js",
    "content": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nvar html = ['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'];\n\n// SVG\nvar svg = ['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern'];\n\nvar svgFilters = ['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence'];\n\nvar mathMl = ['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmuliscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mpspace', 'msqrt', 'mystyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover'];\n\nvar text = ['#text'];\n\nvar html$1 = ['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns'];\n\nvar svg$1 = ['accent-height', 'accumulate', 'additivive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan'];\n\nvar mathMl$1 = ['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns'];\n\nvar xml = ['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink'];\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n  var l = array.length;\n  while (l--) {\n    if (typeof array[l] === 'string') {\n      array[l] = array[l].toLowerCase();\n    }\n    set[array[l]] = true;\n  }\n  return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n  var newObject = {};\n  var property = void 0;\n  for (property in object) {\n    if (Object.prototype.hasOwnProperty.call(object, property)) {\n      newObject[property] = object[property];\n    }\n  }\n  return newObject;\n}\n\nvar MUSTACHE_EXPR = /\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm; // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = /<%[\\s\\S]*|[\\s\\S]*%>/gm;\nvar DATA_ATTR = /^data-[\\-\\w.\\u00B7-\\uFFFF]/; // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = /^aria-[\\-\\w]+$/; // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nvar IS_SCRIPT_OR_DATA = /^(?:\\w+script|data):/i;\nvar ATTR_WHITESPACE = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g; // eslint-disable-line no-control-regex\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n  return typeof window === 'undefined' ? null : window;\n};\n\nfunction createDOMPurify() {\n  var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n  var DOMPurify = function DOMPurify(root) {\n    return createDOMPurify(root);\n  };\n\n  /**\n   * Version label, exposed for easier checks\n   * if DOMPurify is up to date or not\n   */\n  DOMPurify.version = '1.0.7';\n\n  /**\n   * Array of elements that DOMPurify removed during sanitation.\n   * Empty if nothing was removed.\n   */\n  DOMPurify.removed = [];\n\n  if (!window || !window.document || window.document.nodeType !== 9) {\n    // Not running in a browser, provide a factory function\n    // so that you can pass your own Window\n    DOMPurify.isSupported = false;\n\n    return DOMPurify;\n  }\n\n  var originalDocument = window.document;\n  var useDOMParser = false; // See comment below\n  var removeTitle = false; // See comment below\n\n  var document = window.document;\n  var DocumentFragment = window.DocumentFragment,\n      HTMLTemplateElement = window.HTMLTemplateElement,\n      Node = window.Node,\n      NodeFilter = window.NodeFilter,\n      _window$NamedNodeMap = window.NamedNodeMap,\n      NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n      Text = window.Text,\n      Comment = window.Comment,\n      DOMParser = window.DOMParser;\n\n  // As per issue #47, the web-components registry is inherited by a\n  // new document created via createHTMLDocument. As per the spec\n  // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n  // a new empty registry is used when creating a template contents owner\n  // document, so we use that as our parent document to ensure nothing\n  // is inherited.\n\n  if (typeof HTMLTemplateElement === 'function') {\n    var template = document.createElement('template');\n    if (template.content && template.content.ownerDocument) {\n      document = template.content.ownerDocument;\n    }\n  }\n\n  var _document = document,\n      implementation = _document.implementation,\n      createNodeIterator = _document.createNodeIterator,\n      getElementsByTagName = _document.getElementsByTagName,\n      createDocumentFragment = _document.createDocumentFragment;\n  var importNode = originalDocument.importNode;\n\n\n  var hooks = {};\n\n  /**\n   * Expose whether this browser supports running the full DOMPurify.\n   */\n  DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n  var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n      ERB_EXPR$$1 = ERB_EXPR,\n      DATA_ATTR$$1 = DATA_ATTR,\n      ARIA_ATTR$$1 = ARIA_ATTR,\n      IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n  var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n  /**\n   * We consider the elements and attributes below to be safe. Ideally\n   * don't add any new ones but feel free to remove unwanted ones.\n   */\n\n  /* allowed element names */\n\n  var ALLOWED_TAGS = null;\n  var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n  /* Allowed attribute names */\n  var ALLOWED_ATTR = null;\n  var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n  /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n  var FORBID_TAGS = null;\n\n  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n  var FORBID_ATTR = null;\n\n  /* Decide if ARIA attributes are okay */\n  var ALLOW_ARIA_ATTR = true;\n\n  /* Decide if custom data attributes are okay */\n  var ALLOW_DATA_ATTR = true;\n\n  /* Decide if unknown protocols are okay */\n  var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n  /* Output should be safe for jQuery's $() factory? */\n  var SAFE_FOR_JQUERY = false;\n\n  /* Output should be safe for common template engines.\n   * This means, DOMPurify removes data attributes, mustaches and ERB\n   */\n  var SAFE_FOR_TEMPLATES = false;\n\n  /* Decide if document with <html>... should be returned */\n  var WHOLE_DOCUMENT = false;\n\n  /* Track whether config is already set on this instance of DOMPurify. */\n  var SET_CONFIG = false;\n\n  /* Decide if all elements (e.g. style, script) must be children of\n   * document.body. By default, browsers might move them to document.head */\n  var FORCE_BODY = false;\n\n  /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html string.\n   * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n   */\n  var RETURN_DOM = false;\n\n  /* Decide if a DOM `DocumentFragment` should be returned, instead of a html string */\n  var RETURN_DOM_FRAGMENT = false;\n\n  /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n   * `Node` is imported into the current `Document`. If this flag is not enabled the\n   * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n   * DOMPurify. */\n  var RETURN_DOM_IMPORT = false;\n\n  /* Output should be free from DOM clobbering attacks? */\n  var SANITIZE_DOM = true;\n\n  /* Keep element content when removing element? */\n  var KEEP_CONTENT = true;\n\n  /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n   * of importing it into a new Document and returning a sanitized copy */\n  var IN_PLACE = false;\n\n  /* Allow usage of profiles like html, svg and mathMl */\n  var USE_PROFILES = {};\n\n  /* Tags to ignore content of when KEEP_CONTENT is true */\n  var FORBID_CONTENTS = addToSet({}, ['audio', 'head', 'math', 'script', 'style', 'template', 'svg', 'video']);\n\n  /* Tags that are safe for data: URIs */\n  var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n  /* Attributes safe for values like \"javascript:\" */\n  var URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n  /* Keep a reference to config to pass to hooks */\n  var CONFIG = null;\n\n  /* Ideally, do not touch anything below this line */\n  /* ______________________________________________ */\n\n  var formElement = document.createElement('form');\n\n  /**\n   * _parseConfig\n   *\n   * @param  {Object} cfg optional config literal\n   */\n  // eslint-disable-next-line complexity\n  var _parseConfig = function _parseConfig(cfg) {\n    /* Shield configuration object from tampering */\n    if ((typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n      cfg = {};\n    }\n    /* Set configuration parameters */\n    ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n    ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n    FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n    FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n    USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n    SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n    RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n    RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n    FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n    SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n    KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n    IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n    IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n\n    if (SAFE_FOR_TEMPLATES) {\n      ALLOW_DATA_ATTR = false;\n    }\n\n    if (RETURN_DOM_FRAGMENT) {\n      RETURN_DOM = true;\n    }\n\n    /* Parse profile info */\n    if (USE_PROFILES) {\n      ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n      ALLOWED_ATTR = [];\n      if (USE_PROFILES.html === true) {\n        addToSet(ALLOWED_TAGS, html);\n        addToSet(ALLOWED_ATTR, html$1);\n      }\n      if (USE_PROFILES.svg === true) {\n        addToSet(ALLOWED_TAGS, svg);\n        addToSet(ALLOWED_ATTR, svg$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.svgFilters === true) {\n        addToSet(ALLOWED_TAGS, svgFilters);\n        addToSet(ALLOWED_ATTR, svg$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.mathMl === true) {\n        addToSet(ALLOWED_TAGS, mathMl);\n        addToSet(ALLOWED_ATTR, mathMl$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n    }\n\n    /* Merge configuration parameters */\n    if (cfg.ADD_TAGS) {\n      if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n        ALLOWED_TAGS = clone(ALLOWED_TAGS);\n      }\n      addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n    }\n    if (cfg.ADD_ATTR) {\n      if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n        ALLOWED_ATTR = clone(ALLOWED_ATTR);\n      }\n      addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n    }\n    if (cfg.ADD_URI_SAFE_ATTR) {\n      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n    }\n\n    /* Add #text in case KEEP_CONTENT is set to true */\n    if (KEEP_CONTENT) {\n      ALLOWED_TAGS['#text'] = true;\n    }\n\n    /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n    if (WHOLE_DOCUMENT) {\n      addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n    }\n\n    /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286 */\n    if (ALLOWED_TAGS.table) {\n      addToSet(ALLOWED_TAGS, ['tbody']);\n    }\n\n    // Prevent further manipulation of configuration.\n    // Not available in IE8, Safari 5, etc.\n    if (Object && 'freeze' in Object) {\n      Object.freeze(cfg);\n    }\n\n    CONFIG = cfg;\n  };\n\n  /**\n   * _forceRemove\n   *\n   * @param  {Node} node a DOM node\n   */\n  var _forceRemove = function _forceRemove(node) {\n    DOMPurify.removed.push({ element: node });\n    try {\n      node.parentNode.removeChild(node);\n    } catch (err) {\n      node.outerHTML = '';\n    }\n  };\n\n  /**\n   * _removeAttribute\n   *\n   * @param  {String} name an Attribute name\n   * @param  {Node} node a DOM node\n   */\n  var _removeAttribute = function _removeAttribute(name, node) {\n    try {\n      DOMPurify.removed.push({\n        attribute: node.getAttributeNode(name),\n        from: node\n      });\n    } catch (err) {\n      DOMPurify.removed.push({\n        attribute: null,\n        from: node\n      });\n    }\n    node.removeAttribute(name);\n  };\n\n  /**\n   * _initDocument\n   *\n   * @param  {String} dirty a string of dirty markup\n   * @return {Document} a DOM, filled with the dirty markup\n   */\n  var _initDocument = function _initDocument(dirty) {\n    /* Create a HTML document */\n    var doc = void 0;\n\n    if (FORCE_BODY) {\n      dirty = '<remove></remove>' + dirty;\n    }\n\n    /* Use DOMParser to workaround Firefox bug (see comment below) */\n    if (useDOMParser) {\n      try {\n        doc = new DOMParser().parseFromString(dirty, 'text/html');\n      } catch (err) {}\n    }\n\n    /* Remove title to fix an mXSS bug in older MS Edge */\n    if (removeTitle) {\n      addToSet(FORBID_TAGS, ['title']);\n    }\n\n    /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n    Safari (see comment below) */\n    if (!doc || !doc.documentElement) {\n      doc = implementation.createHTMLDocument('');\n      var _doc = doc,\n          body = _doc.body;\n\n      body.parentNode.removeChild(body.parentNode.firstElementChild);\n      body.outerHTML = dirty;\n    }\n\n    /* Work on whole document or just its body */\n    return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n  };\n\n  // Firefox uses a different parser for innerHTML rather than\n  // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n  // which means that you *must* use DOMParser, otherwise the output may\n  // not be safe if used in a document.write context later.\n  //\n  // So we feature detect the Firefox bug and use the DOMParser if necessary.\n  //\n  // MS Edge, in older versions, is affected by an mXSS behavior. The second\n  // check tests for the behavior and fixes it if necessary.\n  if (DOMPurify.isSupported) {\n    (function () {\n      try {\n        var doc = _initDocument('<svg><p><style><img src=\"</style><img src=x onerror=alert(1)//\">');\n        if (doc.querySelector('svg img')) {\n          useDOMParser = true;\n        }\n      } catch (err) {}\n    })();\n    (function () {\n      try {\n        var doc = _initDocument('<x/><title>&lt;/title&gt;&lt;img&gt;');\n        if (doc.querySelector('title').textContent.match(/<\\/title/)) {\n          removeTitle = true;\n        }\n      } catch (err) {}\n    })();\n  }\n\n  /**\n   * _createIterator\n   *\n   * @param  {Document} root document/fragment to create iterator for\n   * @return {Iterator} iterator instance\n   */\n  var _createIterator = function _createIterator(root) {\n    return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n      return NodeFilter.FILTER_ACCEPT;\n    }, false);\n  };\n\n  /**\n   * _isClobbered\n   *\n   * @param  {Node} elm element to check for clobbering attacks\n   * @return {Boolean} true if clobbered, false if safe\n   */\n  var _isClobbered = function _isClobbered(elm) {\n    if (elm instanceof Text || elm instanceof Comment) {\n      return false;\n    }\n    if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function') {\n      return true;\n    }\n    return false;\n  };\n\n  /**\n   * _isNode\n   *\n   * @param  {Node} obj object to check whether it's a DOM node\n   * @return {Boolean} true is object is a DOM node\n   */\n  var _isNode = function _isNode(obj) {\n    return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n  };\n\n  /**\n   * _executeHook\n   * Execute user configurable hooks\n   *\n   * @param  {String} entryPoint  Name of the hook's entry point\n   * @param  {Node} currentNode node to work on with the hook\n   * @param  {Object} data additional hook parameters\n   */\n  var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n    if (!hooks[entryPoint]) {\n      return;\n    }\n\n    hooks[entryPoint].forEach(function (hook) {\n      hook.call(DOMPurify, currentNode, data, CONFIG);\n    });\n  };\n\n  /**\n   * _sanitizeElements\n   *\n   * @protect nodeName\n   * @protect textContent\n   * @protect removeChild\n   *\n   * @param   {Node} currentNode to check for permission to exist\n   * @return  {Boolean} true if node was killed, false if left alive\n   */\n  var _sanitizeElements = function _sanitizeElements(currentNode) {\n    var content = void 0;\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeElements', currentNode, null);\n\n    /* Check if element is clobbered or can clobber */\n    if (_isClobbered(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Now let's check the element's type and name */\n    var tagName = currentNode.nodeName.toLowerCase();\n\n    /* Execute a hook if present */\n    _executeHook('uponSanitizeElement', currentNode, {\n      tagName: tagName,\n      allowedTags: ALLOWED_TAGS\n    });\n\n    /* Remove element if anything forbids its presence */\n    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n      /* Keep content except for black-listed elements */\n      if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n        try {\n          currentNode.insertAdjacentHTML('AfterEnd', currentNode.innerHTML);\n        } catch (err) {}\n      }\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Convert markup to cover jQuery behavior */\n    if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && /</g.test(currentNode.textContent)) {\n      DOMPurify.removed.push({ element: currentNode.cloneNode() });\n      if (currentNode.innerHTML) {\n        currentNode.innerHTML = currentNode.innerHTML.replace(/</g, '&lt;');\n      } else {\n        currentNode.innerHTML = currentNode.textContent.replace(/</g, '&lt;');\n      }\n    }\n\n    /* Sanitize element content to be template-safe */\n    if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n      /* Get the element's text content */\n      content = currentNode.textContent;\n      content = content.replace(MUSTACHE_EXPR$$1, ' ');\n      content = content.replace(ERB_EXPR$$1, ' ');\n      if (currentNode.textContent !== content) {\n        DOMPurify.removed.push({ element: currentNode.cloneNode() });\n        currentNode.textContent = content;\n      }\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeElements', currentNode, null);\n\n    return false;\n  };\n\n  /**\n   * _isValidAttribute\n   *\n   * @param  {string} lcTag Lowercase tag name of containing element.\n   * @param  {string} lcName Lowercase attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid, otherwise false.\n   */\n  var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n    /* Make sure attribute cannot clobber */\n    if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n      return false;\n    }\n\n    /* Sanitize attribute content to be template-safe */\n    if (SAFE_FOR_TEMPLATES) {\n      value = value.replace(MUSTACHE_EXPR$$1, ' ');\n      value = value.replace(ERB_EXPR$$1, ' ');\n    }\n\n    /* Allow valid data-* attributes: At least one character after \"-\"\n        (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n        XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n        We don't need to check the value; it's always URI safe. */\n    if (ALLOW_DATA_ATTR && DATA_ATTR$$1.test(lcName)) {\n      // This attribute is safe\n    } else if (ALLOW_ARIA_ATTR && ARIA_ATTR$$1.test(lcName)) {\n      // This attribute is safe\n      /* Otherwise, check the name is permitted */\n    } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n      return false;\n\n      /* Check value is safe. First, is attr inert? If so, is safe */\n    } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n      // This attribute is safe\n      /* Check no script, data or unknown possibly unsafe URI\n        unless we know URI values are safe for that attribute */\n    } else if (IS_ALLOWED_URI$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n      // This attribute is safe\n      /* Keep image data URIs alive if src/xlink:href is allowed */\n    } else if ((lcName === 'src' || lcName === 'xlink:href') && value.indexOf('data:') === 0 && DATA_URI_TAGS[lcTag]) {\n      // This attribute is safe\n      /* Allow unknown protocols: This provides support for links that\n        are handled by protocol handlers which may be unknown ahead of\n        time, e.g. fb:, spotify: */\n    } else if (ALLOW_UNKNOWN_PROTOCOLS && !IS_SCRIPT_OR_DATA$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n      // This attribute is safe\n      /* Check for binary attributes */\n      // eslint-disable-next-line no-negated-condition\n    } else if (!value) {\n      // Binary attributes are safe at this point\n      /* Anything else, presume unsafe, do not add it back */\n    } else {\n      return false;\n    }\n    return true;\n  };\n\n  /**\n   * _sanitizeAttributes\n   *\n   * @protect attributes\n   * @protect nodeName\n   * @protect removeAttribute\n   * @protect setAttribute\n   *\n   * @param  {Node} node to sanitize\n   */\n  // eslint-disable-next-line complexity\n  var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n    var attr = void 0;\n    var value = void 0;\n    var lcName = void 0;\n    var idAttr = void 0;\n    var l = void 0;\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n    var attributes = currentNode.attributes;\n\n    /* Check if we have attributes; if not we might have a text node */\n\n    if (!attributes) {\n      return;\n    }\n\n    var hookEvent = {\n      attrName: '',\n      attrValue: '',\n      keepAttr: true,\n      allowedAttributes: ALLOWED_ATTR\n    };\n    l = attributes.length;\n\n    /* Go backwards over all attributes; safely remove bad ones */\n    while (l--) {\n      attr = attributes[l];\n      var _attr = attr,\n          name = _attr.name;\n\n      value = attr.value.trim();\n      lcName = name.toLowerCase();\n\n      /* Execute a hook if present */\n      hookEvent.attrName = lcName;\n      hookEvent.attrValue = value;\n      hookEvent.keepAttr = true;\n      _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n      value = hookEvent.attrValue;\n\n      /* Remove attribute */\n      // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n      // remove a \"name\" attribute from an <img> tag that has an \"id\"\n      // attribute at the time.\n      if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n        idAttr = attributes.id;\n        attributes = Array.prototype.slice.apply(attributes);\n        _removeAttribute('id', currentNode);\n        _removeAttribute(name, currentNode);\n        if (attributes.indexOf(idAttr) > l) {\n          currentNode.setAttribute('id', idAttr.value);\n        }\n      } else if (\n      // This works around a bug in Safari, where input[type=file]\n      // cannot be dynamically set after type has been removed\n      currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n        continue;\n      } else {\n        // This avoids a crash in Safari v9.0 with double-ids.\n        // The trick is to first set the id to be empty and then to\n        // remove the attribute\n        if (name === 'id') {\n          currentNode.setAttribute(name, '');\n        }\n        _removeAttribute(name, currentNode);\n      }\n\n      /* Did the hooks approve of the attribute? */\n      if (!hookEvent.keepAttr) {\n        continue;\n      }\n\n      /* Is `value` valid for this attribute? */\n      var lcTag = currentNode.nodeName.toLowerCase();\n      if (!_isValidAttribute(lcTag, lcName, value)) {\n        continue;\n      }\n\n      /* Handle invalid data-* attribute set by try-catching it */\n      try {\n        currentNode.setAttribute(name, value);\n        DOMPurify.removed.pop();\n      } catch (err) {}\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeAttributes', currentNode, null);\n  };\n\n  /**\n   * _sanitizeShadowDOM\n   *\n   * @param  {DocumentFragment} fragment to iterate over recursively\n   */\n  var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n    var shadowNode = void 0;\n    var shadowIterator = _createIterator(fragment);\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n    while (shadowNode = shadowIterator.nextNode()) {\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(shadowNode)) {\n        continue;\n      }\n\n      /* Deep shadow DOM detected */\n      if (shadowNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(shadowNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(shadowNode);\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeShadowDOM', fragment, null);\n  };\n\n  /**\n   * Sanitize\n   * Public method providing core sanitation functionality\n   *\n   * @param {String|Node} dirty string or DOM node\n   * @param {Object} configuration object\n   */\n  // eslint-disable-next-line complexity\n  DOMPurify.sanitize = function (dirty, cfg) {\n    var body = void 0;\n    var importedNode = void 0;\n    var currentNode = void 0;\n    var oldNode = void 0;\n    var returnNode = void 0;\n    /* Make sure we have a string to sanitize.\n      DO NOT return early, as this will return the wrong type if\n      the user has requested a DOM object rather than a string */\n    if (!dirty) {\n      dirty = '<!-->';\n    }\n\n    /* Stringify, in case dirty is an object */\n    if (typeof dirty !== 'string' && !_isNode(dirty)) {\n      // eslint-disable-next-line no-negated-condition\n      if (typeof dirty.toString !== 'function') {\n        throw new TypeError('toString is not a function');\n      } else {\n        dirty = dirty.toString();\n        if (typeof dirty !== 'string') {\n          throw new TypeError('dirty is not a string, aborting');\n        }\n      }\n    }\n\n    /* Check we can run. Otherwise fall back or ignore */\n    if (!DOMPurify.isSupported) {\n      if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n        if (typeof dirty === 'string') {\n          return window.toStaticHTML(dirty);\n        }\n        if (_isNode(dirty)) {\n          return window.toStaticHTML(dirty.outerHTML);\n        }\n      }\n      return dirty;\n    }\n\n    /* Assign config vars */\n    if (!SET_CONFIG) {\n      _parseConfig(cfg);\n    }\n\n    /* Clean up removed elements */\n    DOMPurify.removed = [];\n\n    if (IN_PLACE) {\n      /* No special handling necessary for in-place sanitization */\n    } else if (dirty instanceof Node) {\n      /* If dirty is a DOM element, append to an empty document to avoid\n         elements being stripped by the parser */\n      body = _initDocument('<!-->');\n      importedNode = body.ownerDocument.importNode(dirty, true);\n      if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n        /* Node is already a body, use as is */\n        body = importedNode;\n      } else {\n        body.appendChild(importedNode);\n      }\n    } else {\n      /* Exit directly if we have nothing to do */\n      if (!RETURN_DOM && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {\n        return dirty;\n      }\n\n      /* Initialize the document to work on */\n      body = _initDocument(dirty);\n\n      /* Check we have a DOM node from the data */\n      if (!body) {\n        return RETURN_DOM ? null : '';\n      }\n    }\n\n    /* Remove first element node (ours) if FORCE_BODY is set */\n    if (body && FORCE_BODY) {\n      _forceRemove(body.firstChild);\n    }\n\n    /* Get node iterator */\n    var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n    /* Now start iterating over the created document */\n    while (currentNode = nodeIterator.nextNode()) {\n      /* Fix IE's strange behavior with manipulated textNodes #89 */\n      if (currentNode.nodeType === 3 && currentNode === oldNode) {\n        continue;\n      }\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(currentNode)) {\n        continue;\n      }\n\n      /* Shadow DOM detected, sanitize it */\n      if (currentNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(currentNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(currentNode);\n\n      oldNode = currentNode;\n    }\n\n    /* If we sanitized `dirty` in-place, return it. */\n    if (IN_PLACE) {\n      return dirty;\n    }\n\n    /* Return sanitized string or DOM */\n    if (RETURN_DOM) {\n      if (RETURN_DOM_FRAGMENT) {\n        returnNode = createDocumentFragment.call(body.ownerDocument);\n\n        while (body.firstChild) {\n          returnNode.appendChild(body.firstChild);\n        }\n      } else {\n        returnNode = body;\n      }\n\n      if (RETURN_DOM_IMPORT) {\n        /* AdoptNode() is not used because internal state is not reset\n               (e.g. the past names map of a HTMLFormElement), this is safe\n               in theory but we would rather not risk another attack vector.\n               The state that is cloned by importNode() is explicitly defined\n               by the specs. */\n        returnNode = importNode.call(originalDocument, returnNode, true);\n      }\n\n      return returnNode;\n    }\n\n    return WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n  };\n\n  /**\n   * Public method to set the configuration once\n   * setConfig\n   *\n   * @param {Object} cfg configuration object\n   */\n  DOMPurify.setConfig = function (cfg) {\n    _parseConfig(cfg);\n    SET_CONFIG = true;\n  };\n\n  /**\n   * Public method to remove the configuration\n   * clearConfig\n   *\n   */\n  DOMPurify.clearConfig = function () {\n    CONFIG = null;\n    SET_CONFIG = false;\n  };\n\n  /**\n   * Public method to check if an attribute value is valid.\n   * Uses last set config, if any. Otherwise, uses config defaults.\n   * isValidAttribute\n   *\n   * @param  {string} tag Tag name of containing element.\n   * @param  {string} attr Attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n   */\n  DOMPurify.isValidAttribute = function (tag, attr, value) {\n    /* Initialize shared config vars if necessary. */\n    if (!CONFIG) {\n      _parseConfig({});\n    }\n    var lcTag = tag.toLowerCase();\n    var lcName = attr.toLowerCase();\n    return _isValidAttribute(lcTag, lcName, value);\n  };\n\n  /**\n   * AddHook\n   * Public method to add DOMPurify hooks\n   *\n   * @param {String} entryPoint entry point for the hook to add\n   * @param {Function} hookFunction function to execute\n   */\n  DOMPurify.addHook = function (entryPoint, hookFunction) {\n    if (typeof hookFunction !== 'function') {\n      return;\n    }\n    hooks[entryPoint] = hooks[entryPoint] || [];\n    hooks[entryPoint].push(hookFunction);\n  };\n\n  /**\n   * RemoveHook\n   * Public method to remove a DOMPurify hook at a given entryPoint\n   * (pops it from the stack of hooks if more are present)\n   *\n   * @param {String} entryPoint entry point for the hook to remove\n   */\n  DOMPurify.removeHook = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint].pop();\n    }\n  };\n\n  /**\n   * RemoveHooks\n   * Public method to remove all DOMPurify hooks at a given entryPoint\n   *\n   * @param  {String} entryPoint entry point for the hooks to remove\n   */\n  DOMPurify.removeHooks = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint] = [];\n    }\n  };\n\n  /**\n   * RemoveAllHooks\n   * Public method to remove all DOMPurify hooks\n   *\n   */\n  DOMPurify.removeAllHooks = function () {\n    hooks = {};\n  };\n\n  return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));"
  },
  {
    "path": "public/vendor/laravel-admin/bootstrap-fileinput/js/plugins/sortable.js",
    "content": "/**!\n * KvSortable\n * @author\tRubaXa   <trash@rubaxa.org>\n * @license MIT\n *\n * Changed kvsortable plugin naming to prevent conflict with JQuery UI Sortable\n * @author Kartik Visweswaran\n */\n\n(function kvsortableModule(factory) {\n\t\"use strict\";\n\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(factory);\n\t}\n\telse if (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t\tmodule.exports = factory();\n\t}\n\telse {\n\t\t/* jshint sub:true */\n\t\twindow[\"KvSortable\"] = factory();\n\t}\n})(function kvsortableFactory() {\n\t\"use strict\";\n\n\tif (typeof window === \"undefined\" || !window.document) {\n\t\treturn function kvsortableError() {\n\t\t\tthrow new Error(\"KvSortable.js requires a window with a document\");\n\t\t};\n\t}\n\n\tvar dragEl,\n\t\tparentEl,\n\t\tghostEl,\n\t\tcloneEl,\n\t\trootEl,\n\t\tnextEl,\n\t\tlastDownEl,\n\n\t\tscrollEl,\n\t\tscrollParentEl,\n\t\tscrollCustomFn,\n\n\t\tlastEl,\n\t\tlastCSS,\n\t\tlastParentCSS,\n\n\t\toldIndex,\n\t\tnewIndex,\n\n\t\tactiveGroup,\n\t\tputKvSortable,\n\n\t\tautoScroll = {},\n\n\t\ttapEvt,\n\t\ttouchEvt,\n\n\t\tmoved,\n\n\t\t/** @const */\n\t\tR_SPACE = /\\s+/g,\n\t\tR_FLOAT = /left|right|inline/,\n\n\t\texpando = 'KvSortable' + (new Date).getTime(),\n\n\t\twin = window,\n\t\tdocument = win.document,\n\t\tparseInt = win.parseInt,\n\t\tsetTimeout = win.setTimeout,\n\n\t\t$ = win.jQuery || win.Zepto,\n\t\tPolymer = win.Polymer,\n\n\t\tcaptureMode = false,\n\t\tpassiveMode = false,\n\n\t\tsupportDraggable = ('draggable' in document.createElement('div')),\n\t\tsupportCssPointerEvents = (function (el) {\n\t\t\t// false when IE11\n\t\t\tif (!!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\\.|msie)/i)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tel = document.createElement('x');\n\t\t\tel.style.cssText = 'pointer-events:auto';\n\t\t\treturn el.style.pointerEvents === 'auto';\n\t\t})(),\n\n\t\t_silent = false,\n\n\t\tabs = Math.abs,\n\t\tmin = Math.min,\n\n\t\tsavedInputChecked = [],\n\t\ttouchDragOverListeners = [],\n\n\t\t_autoScroll = _throttle(function (/**Event*/evt, /**Object*/options, /**HTMLElement*/rootEl) {\n\t\t\t// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n\t\t\tif (rootEl && options.scroll) {\n\t\t\t\tvar _this = rootEl[expando],\n\t\t\t\t\tel,\n\t\t\t\t\trect,\n\t\t\t\t\tsens = options.scrollSensitivity,\n\t\t\t\t\tspeed = options.scrollSpeed,\n\n\t\t\t\t\tx = evt.clientX,\n\t\t\t\t\ty = evt.clientY,\n\n\t\t\t\t\twinWidth = window.innerWidth,\n\t\t\t\t\twinHeight = window.innerHeight,\n\n\t\t\t\t\tvx,\n\t\t\t\t\tvy,\n\n\t\t\t\t\tscrollOffsetX,\n\t\t\t\t\tscrollOffsetY\n\t\t\t\t;\n\n\t\t\t\t// Delect scrollEl\n\t\t\t\tif (scrollParentEl !== rootEl) {\n\t\t\t\t\tscrollEl = options.scroll;\n\t\t\t\t\tscrollParentEl = rootEl;\n\t\t\t\t\tscrollCustomFn = options.scrollFn;\n\n\t\t\t\t\tif (scrollEl === true) {\n\t\t\t\t\t\tscrollEl = rootEl;\n\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif ((scrollEl.offsetWidth < scrollEl.scrollWidth) ||\n\t\t\t\t\t\t\t\t(scrollEl.offsetHeight < scrollEl.scrollHeight)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* jshint boss:true */\n\t\t\t\t\t\t} while (scrollEl = scrollEl.parentNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (scrollEl) {\n\t\t\t\t\tel = scrollEl;\n\t\t\t\t\trect = scrollEl.getBoundingClientRect();\n\t\t\t\t\tvx = (abs(rect.right - x) <= sens) - (abs(rect.left - x) <= sens);\n\t\t\t\t\tvy = (abs(rect.bottom - y) <= sens) - (abs(rect.top - y) <= sens);\n\t\t\t\t}\n\n\n\t\t\t\tif (!(vx || vy)) {\n\t\t\t\t\tvx = (winWidth - x <= sens) - (x <= sens);\n\t\t\t\t\tvy = (winHeight - y <= sens) - (y <= sens);\n\n\t\t\t\t\t/* jshint expr:true */\n\t\t\t\t\t(vx || vy) && (el = win);\n\t\t\t\t}\n\n\n\t\t\t\tif (autoScroll.vx !== vx || autoScroll.vy !== vy || autoScroll.el !== el) {\n\t\t\t\t\tautoScroll.el = el;\n\t\t\t\t\tautoScroll.vx = vx;\n\t\t\t\t\tautoScroll.vy = vy;\n\n\t\t\t\t\tclearInterval(autoScroll.pid);\n\n\t\t\t\t\tif (el) {\n\t\t\t\t\t\tautoScroll.pid = setInterval(function () {\n\t\t\t\t\t\t\tscrollOffsetY = vy ? vy * speed : 0;\n\t\t\t\t\t\t\tscrollOffsetX = vx ? vx * speed : 0;\n\n\t\t\t\t\t\t\tif ('function' === typeof(scrollCustomFn)) {\n\t\t\t\t\t\t\t\treturn scrollCustomFn.call(_this, scrollOffsetX, scrollOffsetY, evt);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (el === win) {\n\t\t\t\t\t\t\t\twin.scrollTo(win.pageXOffset + scrollOffsetX, win.pageYOffset + scrollOffsetY);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tel.scrollTop += scrollOffsetY;\n\t\t\t\t\t\t\t\tel.scrollLeft += scrollOffsetX;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 24);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 30),\n\n\t\t_prepareGroup = function (options) {\n\t\t\tfunction toFn(value, pull) {\n\t\t\t\tif (value === void 0 || value === true) {\n\t\t\t\t\tvalue = group.name;\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\treturn value;\n\t\t\t\t} else {\n\t\t\t\t\treturn function (to, from) {\n\t\t\t\t\t\tvar fromGroup = from.options.group.name;\n\n\t\t\t\t\t\treturn pull\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: value && (value.join\n\t\t\t\t\t\t\t\t? value.indexOf(fromGroup) > -1\n\t\t\t\t\t\t\t\t: (fromGroup == value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar group = {};\n\t\t\tvar originalGroup = options.group;\n\n\t\t\tif (!originalGroup || typeof originalGroup != 'object') {\n\t\t\t\toriginalGroup = {name: originalGroup};\n\t\t\t}\n\n\t\t\tgroup.name = originalGroup.name;\n\t\t\tgroup.checkPull = toFn(originalGroup.pull, true);\n\t\t\tgroup.checkPut = toFn(originalGroup.put);\n\t\t\tgroup.revertClone = originalGroup.revertClone;\n\n\t\t\toptions.group = group;\n\t\t}\n\t;\n\n\t// Detect support a passive mode\n\ttry {\n\t\twindow.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n\t\t\tget: function () {\n\t\t\t\t// `false`, because everything starts to work incorrectly and instead of d'n'd,\n\t\t\t\t// begins the page has scrolled.\n\t\t\t\tpassiveMode = false;\n\t\t\t\tcaptureMode = {\n\t\t\t\t\tcapture: false,\n\t\t\t\t\tpassive: passiveMode\n\t\t\t\t};\n\t\t\t}\n\t\t}));\n\t} catch (err) {}\n\n\t/**\n\t * @class  KvSortable\n\t * @param  {HTMLElement}  el\n\t * @param  {Object}       [options]\n\t */\n\tfunction KvSortable(el, options) {\n\t\tif (!(el && el.nodeType && el.nodeType === 1)) {\n\t\t\tthrow 'KvSortable: `el` must be HTMLElement, and not ' + {}.toString.call(el);\n\t\t}\n\n\t\tthis.el = el; // root element\n\t\tthis.options = options = _extend({}, options);\n\n\n\t\t// Export instance\n\t\tel[expando] = this;\n\n\t\t// Default options\n\t\tvar defaults = {\n\t\t\tgroup: Math.random(),\n\t\t\tsort: true,\n\t\t\tdisabled: false,\n\t\t\tstore: null,\n\t\t\thandle: null,\n\t\t\tscroll: true,\n\t\t\tscrollSensitivity: 30,\n\t\t\tscrollSpeed: 10,\n\t\t\tdraggable: /[uo]l/i.test(el.nodeName) ? 'li' : '>*',\n\t\t\tghostClass: 'kvsortable-ghost',\n\t\t\tchosenClass: 'kvsortable-chosen',\n\t\t\tdragClass: 'kvsortable-drag',\n\t\t\tignore: 'a, img',\n\t\t\tfilter: null,\n\t\t\tpreventOnFilter: true,\n\t\t\tanimation: 0,\n\t\t\tsetData: function (dataTransfer, dragEl) {\n\t\t\t\tdataTransfer.setData('Text', dragEl.textContent);\n\t\t\t},\n\t\t\tdropBubble: false,\n\t\t\tdragoverBubble: false,\n\t\t\tdataIdAttr: 'data-id',\n\t\t\tdelay: 0,\n\t\t\tforceFallback: false,\n\t\t\tfallbackClass: 'kvsortable-fallback',\n\t\t\tfallbackOnBody: false,\n\t\t\tfallbackTolerance: 0,\n\t\t\tfallbackOffset: {x: 0, y: 0},\n\t\t\tsupportPointer: KvSortable.supportPointer !== false\n\t\t};\n\n\n\t\t// Set default options\n\t\tfor (var name in defaults) {\n\t\t\t!(name in options) && (options[name] = defaults[name]);\n\t\t}\n\n\t\t_prepareGroup(options);\n\n\t\t// Bind all private methods\n\t\tfor (var fn in this) {\n\t\t\tif (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n\t\t\t\tthis[fn] = this[fn].bind(this);\n\t\t\t}\n\t\t}\n\n\t\t// Setup drag mode\n\t\tthis.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n\t\t// Bind events\n\t\t_on(el, 'mousedown', this._onTapStart);\n\t\t_on(el, 'touchstart', this._onTapStart);\n\t\toptions.supportPointer && _on(el, 'pointerdown', this._onTapStart);\n\n\t\tif (this.nativeDraggable) {\n\t\t\t_on(el, 'dragover', this);\n\t\t\t_on(el, 'dragenter', this);\n\t\t}\n\n\t\ttouchDragOverListeners.push(this._onDragOver);\n\n\t\t// Restore sorting\n\t\toptions.store && this.sort(options.store.get(this));\n\t}\n\n\n\tKvSortable.prototype = /** @lends KvSortable.prototype */ {\n\t\tconstructor: KvSortable,\n\n\t\t_onTapStart: function (/** Event|TouchEvent */evt) {\n\t\t\tvar _this = this,\n\t\t\t\tel = this.el,\n\t\t\t\toptions = this.options,\n\t\t\t\tpreventOnFilter = options.preventOnFilter,\n\t\t\t\ttype = evt.type,\n\t\t\t\ttouch = evt.touches && evt.touches[0],\n\t\t\t\ttarget = (touch || evt).target,\n\t\t\t\toriginalTarget = evt.target.shadowRoot && (evt.path && evt.path[0]) || target,\n\t\t\t\tfilter = options.filter,\n\t\t\t\tstartIndex;\n\n\t\t\t_saveInputCheckedState(el);\n\n\n\t\t\t// Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\t\t\tif (dragEl) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n\t\t\t\treturn; // only left button or enabled\n\t\t\t}\n\n\t\t\t// cancel dnd if original target is content editable\n\t\t\tif (originalTarget.isContentEditable) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget = _closest(target, options.draggable, el);\n\n\t\t\tif (!target) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lastDownEl === target) {\n\t\t\t\t// Ignoring duplicate `down`\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Get the index of the dragged element within its parent\n\t\t\tstartIndex = _index(target, options.draggable);\n\n\t\t\t// Check filter\n\t\t\tif (typeof filter === 'function') {\n\t\t\t\tif (filter.call(this, evt, target, this)) {\n\t\t\t\t\t_dispatchEvent(_this, originalTarget, 'filter', target, el, el, startIndex);\n\t\t\t\t\tpreventOnFilter && evt.preventDefault();\n\t\t\t\t\treturn; // cancel dnd\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (filter) {\n\t\t\t\tfilter = filter.split(',').some(function (criteria) {\n\t\t\t\t\tcriteria = _closest(originalTarget, criteria.trim(), el);\n\n\t\t\t\t\tif (criteria) {\n\t\t\t\t\t\t_dispatchEvent(_this, criteria, 'filter', target, el, el, startIndex);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (filter) {\n\t\t\t\t\tpreventOnFilter && evt.preventDefault();\n\t\t\t\t\treturn; // cancel dnd\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.handle && !_closest(originalTarget, options.handle, el)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Prepare `dragstart`\n\t\t\tthis._prepareDragStart(evt, touch, target, startIndex);\n\t\t},\n\n\t\t_prepareDragStart: function (/** Event */evt, /** Touch */touch, /** HTMLElement */target, /** Number */startIndex) {\n\t\t\tvar _this = this,\n\t\t\t\tel = _this.el,\n\t\t\t\toptions = _this.options,\n\t\t\t\townerDocument = el.ownerDocument,\n\t\t\t\tdragStartFn;\n\n\t\t\tif (target && !dragEl && (target.parentNode === el)) {\n\t\t\t\ttapEvt = evt;\n\n\t\t\t\trootEl = el;\n\t\t\t\tdragEl = target;\n\t\t\t\tparentEl = dragEl.parentNode;\n\t\t\t\tnextEl = dragEl.nextSibling;\n\t\t\t\tlastDownEl = target;\n\t\t\t\tactiveGroup = options.group;\n\t\t\t\toldIndex = startIndex;\n\n\t\t\t\tthis._lastX = (touch || evt).clientX;\n\t\t\t\tthis._lastY = (touch || evt).clientY;\n\n\t\t\t\tdragEl.style['will-change'] = 'all';\n\n\t\t\t\tdragStartFn = function () {\n\t\t\t\t\t// Delayed drag has been triggered\n\t\t\t\t\t// we can re-enable the events: touchmove/mousemove\n\t\t\t\t\t_this._disableDelayedDrag();\n\n\t\t\t\t\t// Make the element draggable\n\t\t\t\t\tdragEl.draggable = _this.nativeDraggable;\n\n\t\t\t\t\t// Chosen item\n\t\t\t\t\t_toggleClass(dragEl, options.chosenClass, true);\n\n\t\t\t\t\t// Bind the events: dragstart/dragend\n\t\t\t\t\t_this._triggerDragStart(evt, touch);\n\n\t\t\t\t\t// Drag start event\n\t\t\t\t\t_dispatchEvent(_this, rootEl, 'choose', dragEl, rootEl, rootEl, oldIndex);\n\t\t\t\t};\n\n\t\t\t\t// Disable \"draggable\"\n\t\t\t\toptions.ignore.split(',').forEach(function (criteria) {\n\t\t\t\t\t_find(dragEl, criteria.trim(), _disableDraggable);\n\t\t\t\t});\n\n\t\t\t\t_on(ownerDocument, 'mouseup', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'touchend', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'touchcancel', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'selectstart', _this);\n\t\t\t\toptions.supportPointer && _on(ownerDocument, 'pointercancel', _this._onDrop);\n\n\t\t\t\tif (options.delay) {\n\t\t\t\t\t// If the user moves the pointer or let go the click or touch\n\t\t\t\t\t// before the delay has been reached:\n\t\t\t\t\t// disable the delayed drag\n\t\t\t\t\t_on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'mousemove', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchmove', _this._disableDelayedDrag);\n\t\t\t\t\toptions.supportPointer && _on(ownerDocument, 'pointermove', _this._disableDelayedDrag);\n\n\t\t\t\t\t_this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n\t\t\t\t} else {\n\t\t\t\t\tdragStartFn();\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t},\n\n\t\t_disableDelayedDrag: function () {\n\t\t\tvar ownerDocument = this.el.ownerDocument;\n\n\t\t\tclearTimeout(this._dragStartTimer);\n\t\t\t_off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchend', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'mousemove', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchmove', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'pointermove', this._disableDelayedDrag);\n\t\t},\n\n\t\t_triggerDragStart: function (/** Event */evt, /** Touch */touch) {\n\t\t\ttouch = touch || (evt.pointerType == 'touch' ? evt : null);\n\n\t\t\tif (touch) {\n\t\t\t\t// Touch device support\n\t\t\t\ttapEvt = {\n\t\t\t\t\ttarget: dragEl,\n\t\t\t\t\tclientX: touch.clientX,\n\t\t\t\t\tclientY: touch.clientY\n\t\t\t\t};\n\n\t\t\t\tthis._onDragStart(tapEvt, 'touch');\n\t\t\t}\n\t\t\telse if (!this.nativeDraggable) {\n\t\t\t\tthis._onDragStart(tapEvt, true);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_on(dragEl, 'dragend', this);\n\t\t\t\t_on(rootEl, 'dragstart', this._onDragStart);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (document.selection) {\n\t\t\t\t\t// Timeout neccessary for IE9\n\t\t\t\t\t_nextTick(function () {\n\t\t\t\t\t\tdocument.selection.empty();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twindow.getSelection().removeAllRanges();\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t}\n\t\t},\n\n\t\t_dragStarted: function () {\n\t\t\tif (rootEl && dragEl) {\n\t\t\t\tvar options = this.options;\n\n\t\t\t\t// Apply effect\n\t\t\t\t_toggleClass(dragEl, options.ghostClass, true);\n\t\t\t\t_toggleClass(dragEl, options.dragClass, false);\n\n\t\t\t\tKvSortable.active = this;\n\n\t\t\t\t// Drag start event\n\t\t\t\t_dispatchEvent(this, rootEl, 'start', dragEl, rootEl, rootEl, oldIndex);\n\t\t\t} else {\n\t\t\t\tthis._nulling();\n\t\t\t}\n\t\t},\n\n\t\t_emulateDragOver: function () {\n\t\t\tif (touchEvt) {\n\t\t\t\tif (this._lastX === touchEvt.clientX && this._lastY === touchEvt.clientY) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis._lastX = touchEvt.clientX;\n\t\t\t\tthis._lastY = touchEvt.clientY;\n\n\t\t\t\tif (!supportCssPointerEvents) {\n\t\t\t\t\t_css(ghostEl, 'display', 'none');\n\t\t\t\t}\n\n\t\t\t\tvar target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n\t\t\t\tvar parent = target;\n\t\t\t\tvar i = touchDragOverListeners.length;\n\n\t\t\t\tif (target && target.shadowRoot) {\n\t\t\t\t\ttarget = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n\t\t\t\t\tparent = target;\n\t\t\t\t}\n\n\t\t\t\tif (parent) {\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif (parent[expando]) {\n\t\t\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\t\t\ttouchDragOverListeners[i]({\n\t\t\t\t\t\t\t\t\tclientX: touchEvt.clientX,\n\t\t\t\t\t\t\t\t\tclientY: touchEvt.clientY,\n\t\t\t\t\t\t\t\t\ttarget: target,\n\t\t\t\t\t\t\t\t\trootEl: parent\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttarget = parent; // store last element\n\t\t\t\t\t}\n\t\t\t\t\t/* jshint boss:true */\n\t\t\t\t\twhile (parent = parent.parentNode);\n\t\t\t\t}\n\n\t\t\t\tif (!supportCssPointerEvents) {\n\t\t\t\t\t_css(ghostEl, 'display', '');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t_onTouchMove: function (/**TouchEvent*/evt) {\n\t\t\tif (tapEvt) {\n\t\t\t\tvar\toptions = this.options,\n\t\t\t\t\tfallbackTolerance = options.fallbackTolerance,\n\t\t\t\t\tfallbackOffset = options.fallbackOffset,\n\t\t\t\t\ttouch = evt.touches ? evt.touches[0] : evt,\n\t\t\t\t\tdx = (touch.clientX - tapEvt.clientX) + fallbackOffset.x,\n\t\t\t\t\tdy = (touch.clientY - tapEvt.clientY) + fallbackOffset.y,\n\t\t\t\t\ttranslate3d = evt.touches ? 'translate3d(' + dx + 'px,' + dy + 'px,0)' : 'translate(' + dx + 'px,' + dy + 'px)';\n\n\t\t\t\t// only set the status to dragging, when we are actually dragging\n\t\t\t\tif (!KvSortable.active) {\n\t\t\t\t\tif (fallbackTolerance &&\n\t\t\t\t\t\tmin(abs(touch.clientX - this._lastX), abs(touch.clientY - this._lastY)) < fallbackTolerance\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._dragStarted();\n\t\t\t\t}\n\n\t\t\t\t// as well as creating the ghost element on the document body\n\t\t\t\tthis._appendGhost();\n\n\t\t\t\tmoved = true;\n\t\t\t\ttouchEvt = touch;\n\n\t\t\t\t_css(ghostEl, 'webkitTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'mozTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'msTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'transform', translate3d);\n\n\t\t\t\tevt.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_appendGhost: function () {\n\t\t\tif (!ghostEl) {\n\t\t\t\tvar rect = dragEl.getBoundingClientRect(),\n\t\t\t\t\tcss = _css(dragEl),\n\t\t\t\t\toptions = this.options,\n\t\t\t\t\tghostRect;\n\n\t\t\t\tghostEl = dragEl.cloneNode(true);\n\n\t\t\t\t_toggleClass(ghostEl, options.ghostClass, false);\n\t\t\t\t_toggleClass(ghostEl, options.fallbackClass, true);\n\t\t\t\t_toggleClass(ghostEl, options.dragClass, true);\n\n\t\t\t\t_css(ghostEl, 'top', rect.top - parseInt(css.marginTop, 10));\n\t\t\t\t_css(ghostEl, 'left', rect.left - parseInt(css.marginLeft, 10));\n\t\t\t\t_css(ghostEl, 'width', rect.width);\n\t\t\t\t_css(ghostEl, 'height', rect.height);\n\t\t\t\t_css(ghostEl, 'opacity', '0.8');\n\t\t\t\t_css(ghostEl, 'position', 'fixed');\n\t\t\t\t_css(ghostEl, 'zIndex', '100000');\n\t\t\t\t_css(ghostEl, 'pointerEvents', 'none');\n\n\t\t\t\toptions.fallbackOnBody && document.body.appendChild(ghostEl) || rootEl.appendChild(ghostEl);\n\n\t\t\t\t// Fixing dimensions.\n\t\t\t\tghostRect = ghostEl.getBoundingClientRect();\n\t\t\t\t_css(ghostEl, 'width', rect.width * 2 - ghostRect.width);\n\t\t\t\t_css(ghostEl, 'height', rect.height * 2 - ghostRect.height);\n\t\t\t}\n\t\t},\n\n\t\t_onDragStart: function (/**Event*/evt, /**boolean*/useFallback) {\n\t\t\tvar _this = this;\n\t\t\tvar dataTransfer = evt.dataTransfer;\n\t\t\tvar options = _this.options;\n\n\t\t\t_this._offUpEvents();\n\n\t\t\tif (activeGroup.checkPull(_this, _this, dragEl, evt)) {\n\t\t\t\tcloneEl = _clone(dragEl);\n\n\t\t\t\tcloneEl.draggable = false;\n\t\t\t\tcloneEl.style['will-change'] = '';\n\n\t\t\t\t_css(cloneEl, 'display', 'none');\n\t\t\t\t_toggleClass(cloneEl, _this.options.chosenClass, false);\n\n\t\t\t\t// #1143: IFrame support workaround\n\t\t\t\t_this._cloneId = _nextTick(function () {\n\t\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\n\t\t\t\t\t_dispatchEvent(_this, rootEl, 'clone', dragEl);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t_toggleClass(dragEl, options.dragClass, true);\n\n\t\t\tif (useFallback) {\n\t\t\t\tif (useFallback === 'touch') {\n\t\t\t\t\t// Bind touch events\n\t\t\t\t\t_on(document, 'touchmove', _this._onTouchMove);\n\t\t\t\t\t_on(document, 'touchend', _this._onDrop);\n\t\t\t\t\t_on(document, 'touchcancel', _this._onDrop);\n\n\t\t\t\t\tif (options.supportPointer) {\n\t\t\t\t\t\t_on(document, 'pointermove', _this._onTouchMove);\n\t\t\t\t\t\t_on(document, 'pointerup', _this._onDrop);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Old brwoser\n\t\t\t\t\t_on(document, 'mousemove', _this._onTouchMove);\n\t\t\t\t\t_on(document, 'mouseup', _this._onDrop);\n\t\t\t\t}\n\n\t\t\t\t_this._loopId = setInterval(_this._emulateDragOver, 50);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (dataTransfer) {\n\t\t\t\t\tdataTransfer.effectAllowed = 'move';\n\t\t\t\t\toptions.setData && options.setData.call(_this, dataTransfer, dragEl);\n\t\t\t\t}\n\n\t\t\t\t_on(document, 'drop', _this);\n\n\t\t\t\t// #1143: Бывает элемент с IFrame внутри блокирует `drop`,\n\t\t\t\t// поэтому если вызвался `mouseover`, значит надо отменять весь d'n'd.\n\t\t\t\t// Breaking Chrome 62+\n\t\t\t\t// _on(document, 'mouseover', _this);\n\n\t\t\t\t_this._dragStartId = _nextTick(_this._dragStarted);\n\t\t\t}\n\t\t},\n\n\t\t_onDragOver: function (/**Event*/evt) {\n\t\t\tvar el = this.el,\n\t\t\t\ttarget,\n\t\t\t\tdragRect,\n\t\t\t\ttargetRect,\n\t\t\t\trevert,\n\t\t\t\toptions = this.options,\n\t\t\t\tgroup = options.group,\n\t\t\t\tactiveKvSortable = KvSortable.active,\n\t\t\t\tisOwner = (activeGroup === group),\n\t\t\t\tisMovingBetweenKvSortable = false,\n\t\t\t\tcanSort = options.sort;\n\n\t\t\tif (evt.preventDefault !== void 0) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\t!options.dragoverBubble && evt.stopPropagation();\n\t\t\t}\n\n\t\t\tif (dragEl.animated) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmoved = true;\n\n\t\t\tif (activeKvSortable && !options.disabled &&\n\t\t\t\t(isOwner\n\t\t\t\t\t? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n\t\t\t\t\t: (\n\t\t\t\t\t\tputKvSortable === this ||\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(activeKvSortable.lastPullMode = activeGroup.checkPull(this, activeKvSortable, dragEl, evt)) &&\n\t\t\t\t\t\t\tgroup.checkPut(this, activeKvSortable, dragEl, evt)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) &&\n\t\t\t\t(evt.rootEl === void 0 || evt.rootEl === this.el) // touch fallback\n\t\t\t) {\n\t\t\t\t// Smart auto-scrolling\n\t\t\t\t_autoScroll(evt, options, this.el);\n\n\t\t\t\tif (_silent) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttarget = _closest(evt.target, options.draggable, el);\n\t\t\t\tdragRect = dragEl.getBoundingClientRect();\n\n\t\t\t\tif (putKvSortable !== this) {\n\t\t\t\t\tputKvSortable = this;\n\t\t\t\t\tisMovingBetweenKvSortable = true;\n\t\t\t\t}\n\n\t\t\t\tif (revert) {\n\t\t\t\t\t_cloneHide(activeKvSortable, true);\n\t\t\t\t\tparentEl = rootEl; // actualization\n\n\t\t\t\t\tif (cloneEl || nextEl) {\n\t\t\t\t\t\trootEl.insertBefore(dragEl, cloneEl || nextEl);\n\t\t\t\t\t}\n\t\t\t\t\telse if (!canSort) {\n\t\t\t\t\t\trootEl.appendChild(dragEl);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\n\t\t\t\tif ((el.children.length === 0) || (el.children[0] === ghostEl) ||\n\t\t\t\t\t(el === evt.target) && (_ghostIsLast(el, evt))\n\t\t\t\t) {\n\t\t\t\t\t//assign target only if condition is true\n\t\t\t\t\tif (el.children.length !== 0 && el.children[0] !== ghostEl && el === evt.target) {\n\t\t\t\t\t\ttarget = el.lastElementChild;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target) {\n\t\t\t\t\t\tif (target.animated) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttargetRect = target.getBoundingClientRect();\n\t\t\t\t\t}\n\n\t\t\t\t\t_cloneHide(activeKvSortable, isOwner);\n\n\t\t\t\t\tif (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt) !== false) {\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\n\t\t\t\t\t\t\tel.appendChild(dragEl);\n\t\t\t\t\t\t\tparentEl = el; // actualization\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\n\t\t\t\t\t\ttarget && this._animate(targetRect, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (target && !target.animated && target !== dragEl && (target.parentNode[expando] !== void 0)) {\n\t\t\t\t\tif (lastEl !== target) {\n\t\t\t\t\t\tlastEl = target;\n\t\t\t\t\t\tlastCSS = _css(target);\n\t\t\t\t\t\tlastParentCSS = _css(target.parentNode);\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetRect = target.getBoundingClientRect();\n\n\t\t\t\t\tvar width = targetRect.right - targetRect.left,\n\t\t\t\t\t\theight = targetRect.bottom - targetRect.top,\n\t\t\t\t\t\tfloating = R_FLOAT.test(lastCSS.cssFloat + lastCSS.display)\n\t\t\t\t\t\t\t|| (lastParentCSS.display == 'flex' && lastParentCSS['flex-direction'].indexOf('row') === 0),\n\t\t\t\t\t\tisWide = (target.offsetWidth > dragEl.offsetWidth),\n\t\t\t\t\t\tisLong = (target.offsetHeight > dragEl.offsetHeight),\n\t\t\t\t\t\thalfway = (floating ? (evt.clientX - targetRect.left) / width : (evt.clientY - targetRect.top) / height) > 0.5,\n\t\t\t\t\t\tnextSibling = target.nextElementSibling,\n\t\t\t\t\t\tafter = false\n\t\t\t\t\t;\n\n\t\t\t\t\tif (floating) {\n\t\t\t\t\t\tvar elTop = dragEl.offsetTop,\n\t\t\t\t\t\t\ttgTop = target.offsetTop;\n\n\t\t\t\t\t\tif (elTop === tgTop) {\n\t\t\t\t\t\t\tafter = (target.previousElementSibling === dragEl) && !isWide || halfway && isWide;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (target.previousElementSibling === dragEl || dragEl.previousElementSibling === target) {\n\t\t\t\t\t\t\tafter = (evt.clientY - targetRect.top) / height > 0.5;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tafter = tgTop > elTop;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!isMovingBetweenKvSortable) {\n\t\t\t\t\t\tafter = (nextSibling !== dragEl) && !isLong || halfway && isLong;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n\t\t\t\t\tif (moveVector !== false) {\n\t\t\t\t\t\tif (moveVector === 1 || moveVector === -1) {\n\t\t\t\t\t\t\tafter = (moveVector === 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_silent = true;\n\t\t\t\t\t\tsetTimeout(_unsilent, 30);\n\n\t\t\t\t\t\t_cloneHide(activeKvSortable, isOwner);\n\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\n\t\t\t\t\t\t\tif (after && !nextSibling) {\n\t\t\t\t\t\t\t\tel.appendChild(dragEl);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttarget.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tparentEl = dragEl.parentNode; // actualization\n\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\n\t\t\t\t\t\tthis._animate(targetRect, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_animate: function (prevRect, target) {\n\t\t\tvar ms = this.options.animation;\n\n\t\t\tif (ms) {\n\t\t\t\tvar currentRect = target.getBoundingClientRect();\n\n\t\t\t\tif (prevRect.nodeType === 1) {\n\t\t\t\t\tprevRect = prevRect.getBoundingClientRect();\n\t\t\t\t}\n\n\t\t\t\t_css(target, 'transition', 'none');\n\t\t\t\t_css(target, 'transform', 'translate3d('\n\t\t\t\t\t+ (prevRect.left - currentRect.left) + 'px,'\n\t\t\t\t\t+ (prevRect.top - currentRect.top) + 'px,0)'\n\t\t\t\t);\n\n\t\t\t\ttarget.offsetWidth; // repaint\n\n\t\t\t\t_css(target, 'transition', 'all ' + ms + 'ms');\n\t\t\t\t_css(target, 'transform', 'translate3d(0,0,0)');\n\n\t\t\t\tclearTimeout(target.animated);\n\t\t\t\ttarget.animated = setTimeout(function () {\n\t\t\t\t\t_css(target, 'transition', '');\n\t\t\t\t\t_css(target, 'transform', '');\n\t\t\t\t\ttarget.animated = false;\n\t\t\t\t}, ms);\n\t\t\t}\n\t\t},\n\n\t\t_offUpEvents: function () {\n\t\t\tvar ownerDocument = this.el.ownerDocument;\n\n\t\t\t_off(document, 'touchmove', this._onTouchMove);\n\t\t\t_off(document, 'pointermove', this._onTouchMove);\n\t\t\t_off(ownerDocument, 'mouseup', this._onDrop);\n\t\t\t_off(ownerDocument, 'touchend', this._onDrop);\n\t\t\t_off(ownerDocument, 'pointerup', this._onDrop);\n\t\t\t_off(ownerDocument, 'touchcancel', this._onDrop);\n\t\t\t_off(ownerDocument, 'pointercancel', this._onDrop);\n\t\t\t_off(ownerDocument, 'selectstart', this);\n\t\t},\n\n\t\t_onDrop: function (/**Event*/evt) {\n\t\t\tvar el = this.el,\n\t\t\t\toptions = this.options;\n\n\t\t\tclearInterval(this._loopId);\n\t\t\tclearInterval(autoScroll.pid);\n\t\t\tclearTimeout(this._dragStartTimer);\n\n\t\t\t_cancelNextTick(this._cloneId);\n\t\t\t_cancelNextTick(this._dragStartId);\n\n\t\t\t// Unbind events\n\t\t\t_off(document, 'mouseover', this);\n\t\t\t_off(document, 'mousemove', this._onTouchMove);\n\n\t\t\tif (this.nativeDraggable) {\n\t\t\t\t_off(document, 'drop', this);\n\t\t\t\t_off(el, 'dragstart', this._onDragStart);\n\t\t\t}\n\n\t\t\tthis._offUpEvents();\n\n\t\t\tif (evt) {\n\t\t\t\tif (moved) {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t!options.dropBubble && evt.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n\t\t\t\tif (rootEl === parentEl || KvSortable.active.lastPullMode !== 'clone') {\n\t\t\t\t\t// Remove clone\n\t\t\t\t\tcloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n\t\t\t\t}\n\n\t\t\t\tif (dragEl) {\n\t\t\t\t\tif (this.nativeDraggable) {\n\t\t\t\t\t\t_off(dragEl, 'dragend', this);\n\t\t\t\t\t}\n\n\t\t\t\t\t_disableDraggable(dragEl);\n\t\t\t\t\tdragEl.style['will-change'] = '';\n\n\t\t\t\t\t// Remove class's\n\t\t\t\t\t_toggleClass(dragEl, this.options.ghostClass, false);\n\t\t\t\t\t_toggleClass(dragEl, this.options.chosenClass, false);\n\n\t\t\t\t\t// Drag stop event\n\t\t\t\t\t_dispatchEvent(this, rootEl, 'unchoose', dragEl, parentEl, rootEl, oldIndex);\n\n\t\t\t\t\tif (rootEl !== parentEl) {\n\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\n\n\t\t\t\t\t\tif (newIndex >= 0) {\n\t\t\t\t\t\t\t// Add event\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'add', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t\t// Remove event\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'remove', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t\t// drag from one list and drop into another\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (dragEl.nextSibling !== nextEl) {\n\t\t\t\t\t\t\t// Get the index of the dragged element within its parent\n\t\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\n\n\t\t\t\t\t\t\tif (newIndex >= 0) {\n\t\t\t\t\t\t\t\t// drag & drop within the same list\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'update', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (KvSortable.active) {\n\t\t\t\t\t\t/* jshint eqnull:true */\n\t\t\t\t\t\tif (newIndex == null || newIndex === -1) {\n\t\t\t\t\t\t\tnewIndex = oldIndex;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'end', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t// Save sorting\n\t\t\t\t\t\tthis.save();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._nulling();\n\t\t},\n\n\t\t_nulling: function() {\n\t\t\trootEl =\n\t\t\tdragEl =\n\t\t\tparentEl =\n\t\t\tghostEl =\n\t\t\tnextEl =\n\t\t\tcloneEl =\n\t\t\tlastDownEl =\n\n\t\t\tscrollEl =\n\t\t\tscrollParentEl =\n\n\t\t\ttapEvt =\n\t\t\ttouchEvt =\n\n\t\t\tmoved =\n\t\t\tnewIndex =\n\n\t\t\tlastEl =\n\t\t\tlastCSS =\n\n\t\t\tputKvSortable =\n\t\t\tactiveGroup =\n\t\t\tKvSortable.active = null;\n\n\t\t\tsavedInputChecked.forEach(function (el) {\n\t\t\t\tel.checked = true;\n\t\t\t});\n\t\t\tsavedInputChecked.length = 0;\n\t\t},\n\n\t\thandleEvent: function (/**Event*/evt) {\n\t\t\tswitch (evt.type) {\n\t\t\t\tcase 'drop':\n\t\t\t\tcase 'dragend':\n\t\t\t\t\tthis._onDrop(evt);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'dragover':\n\t\t\t\tcase 'dragenter':\n\t\t\t\t\tif (dragEl) {\n\t\t\t\t\t\tthis._onDragOver(evt);\n\t\t\t\t\t\t_globalDragOver(evt);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mouseover':\n\t\t\t\t\tthis._onDrop(evt);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'selectstart':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Serializes the item into an array of string.\n\t\t * @returns {String[]}\n\t\t */\n\t\ttoArray: function () {\n\t\t\tvar order = [],\n\t\t\t\tel,\n\t\t\t\tchildren = this.el.children,\n\t\t\t\ti = 0,\n\t\t\t\tn = children.length,\n\t\t\t\toptions = this.options;\n\n\t\t\tfor (; i < n; i++) {\n\t\t\t\tel = children[i];\n\t\t\t\tif (_closest(el, options.draggable, this.el)) {\n\t\t\t\t\torder.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn order;\n\t\t},\n\n\n\t\t/**\n\t\t * Sorts the elements according to the array.\n\t\t * @param  {String[]}  order  order of the items\n\t\t */\n\t\tsort: function (order) {\n\t\t\tvar items = {}, rootEl = this.el;\n\n\t\t\tthis.toArray().forEach(function (id, i) {\n\t\t\t\tvar el = rootEl.children[i];\n\n\t\t\t\tif (_closest(el, this.options.draggable, rootEl)) {\n\t\t\t\t\titems[id] = el;\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\torder.forEach(function (id) {\n\t\t\t\tif (items[id]) {\n\t\t\t\t\trootEl.removeChild(items[id]);\n\t\t\t\t\trootEl.appendChild(items[id]);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Save the current sorting\n\t\t */\n\t\tsave: function () {\n\t\t\tvar store = this.options.store;\n\t\t\tstore && store.set(this);\n\t\t},\n\n\n\t\t/**\n\t\t * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n\t\t * @param   {HTMLElement}  el\n\t\t * @param   {String}       [selector]  default: `options.draggable`\n\t\t * @returns {HTMLElement|null}\n\t\t */\n\t\tclosest: function (el, selector) {\n\t\t\treturn _closest(el, selector || this.options.draggable, this.el);\n\t\t},\n\n\n\t\t/**\n\t\t * Set/get option\n\t\t * @param   {string} name\n\t\t * @param   {*}      [value]\n\t\t * @returns {*}\n\t\t */\n\t\toption: function (name, value) {\n\t\t\tvar options = this.options;\n\n\t\t\tif (value === void 0) {\n\t\t\t\treturn options[name];\n\t\t\t} else {\n\t\t\t\toptions[name] = value;\n\n\t\t\t\tif (name === 'group') {\n\t\t\t\t\t_prepareGroup(options);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Destroy\n\t\t */\n\t\tdestroy: function () {\n\t\t\tvar el = this.el;\n\n\t\t\tel[expando] = null;\n\n\t\t\t_off(el, 'mousedown', this._onTapStart);\n\t\t\t_off(el, 'touchstart', this._onTapStart);\n\t\t\t_off(el, 'pointerdown', this._onTapStart);\n\n\t\t\tif (this.nativeDraggable) {\n\t\t\t\t_off(el, 'dragover', this);\n\t\t\t\t_off(el, 'dragenter', this);\n\t\t\t}\n\n\t\t\t// Remove draggable attributes\n\t\t\tArray.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n\t\t\t\tel.removeAttribute('draggable');\n\t\t\t});\n\n\t\t\ttouchDragOverListeners.splice(touchDragOverListeners.indexOf(this._onDragOver), 1);\n\n\t\t\tthis._onDrop();\n\n\t\t\tthis.el = el = null;\n\t\t}\n\t};\n\n\n\tfunction _cloneHide(kvsortable, state) {\n\t\tif (kvsortable.lastPullMode !== 'clone') {\n\t\t\tstate = true;\n\t\t}\n\n\t\tif (cloneEl && (cloneEl.state !== state)) {\n\t\t\t_css(cloneEl, 'display', state ? 'none' : '');\n\n\t\t\tif (!state) {\n\t\t\t\tif (cloneEl.state) {\n\t\t\t\t\tif (kvsortable.options.group.revertClone) {\n\t\t\t\t\t\trootEl.insertBefore(cloneEl, nextEl);\n\t\t\t\t\t\tkvsortable._animate(dragEl, cloneEl);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcloneEl.state = state;\n\t\t}\n\t}\n\n\n\tfunction _closest(/**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx) {\n\t\tif (el) {\n\t\t\tctx = ctx || document;\n\n\t\t\tdo {\n\t\t\t\tif ((selector === '>*' && el.parentNode === ctx) || _matches(el, selector)) {\n\t\t\t\t\treturn el;\n\t\t\t\t}\n\t\t\t\t/* jshint boss:true */\n\t\t\t} while (el = _getParentOrHost(el));\n\t\t}\n\n\t\treturn null;\n\t}\n\n\n\tfunction _getParentOrHost(el) {\n\t\tvar parent = el.host;\n\n\t\treturn (parent && parent.nodeType) ? parent : el.parentNode;\n\t}\n\n\n\tfunction _globalDragOver(/**Event*/evt) {\n\t\tif (evt.dataTransfer) {\n\t\t\tevt.dataTransfer.dropEffect = 'move';\n\t\t}\n\t\tevt.preventDefault();\n\t}\n\n\n\tfunction _on(el, event, fn) {\n\t\tel.addEventListener(event, fn, captureMode);\n\t}\n\n\n\tfunction _off(el, event, fn) {\n\t\tel.removeEventListener(event, fn, captureMode);\n\t}\n\n\n\tfunction _toggleClass(el, name, state) {\n\t\tif (el) {\n\t\t\tif (el.classList) {\n\t\t\t\tel.classList[state ? 'add' : 'remove'](name);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n\t\t\t\tel.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n\t\t\t}\n\t\t}\n\t}\n\n\n\tfunction _css(el, prop, val) {\n\t\tvar style = el && el.style;\n\n\t\tif (style) {\n\t\t\tif (val === void 0) {\n\t\t\t\tif (document.defaultView && document.defaultView.getComputedStyle) {\n\t\t\t\t\tval = document.defaultView.getComputedStyle(el, '');\n\t\t\t\t}\n\t\t\t\telse if (el.currentStyle) {\n\t\t\t\t\tval = el.currentStyle;\n\t\t\t\t}\n\n\t\t\t\treturn prop === void 0 ? val : val[prop];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!(prop in style)) {\n\t\t\t\t\tprop = '-webkit-' + prop;\n\t\t\t\t}\n\n\t\t\t\tstyle[prop] = val + (typeof val === 'string' ? '' : 'px');\n\t\t\t}\n\t\t}\n\t}\n\n\n\tfunction _find(ctx, tagName, iterator) {\n\t\tif (ctx) {\n\t\t\tvar list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\n\n\t\t\tif (iterator) {\n\t\t\t\tfor (; i < n; i++) {\n\t\t\t\t\titerator(list[i], i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\n\n\tfunction _dispatchEvent(kvsortable, rootEl, name, targetEl, toEl, fromEl, startIndex, newIndex) {\n\t\tkvsortable = (kvsortable || rootEl[expando]);\n\n\t\tvar evt = document.createEvent('Event'),\n\t\t\toptions = kvsortable.options,\n\t\t\tonName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n\n\t\tevt.initEvent(name, true, true);\n\n\t\tevt.to = toEl || rootEl;\n\t\tevt.from = fromEl || rootEl;\n\t\tevt.item = targetEl || rootEl;\n\t\tevt.clone = cloneEl;\n\n\t\tevt.oldIndex = startIndex;\n\t\tevt.newIndex = newIndex;\n\n\t\trootEl.dispatchEvent(evt);\n\n\t\tif (options[onName]) {\n\t\t\toptions[onName].call(kvsortable, evt);\n\t\t}\n\t}\n\n\n\tfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvt, willInsertAfter) {\n\t\tvar evt,\n\t\t\tkvsortable = fromEl[expando],\n\t\t\tonMoveFn = kvsortable.options.onMove,\n\t\t\tretVal;\n\n\t\tevt = document.createEvent('Event');\n\t\tevt.initEvent('move', true, true);\n\n\t\tevt.to = toEl;\n\t\tevt.from = fromEl;\n\t\tevt.dragged = dragEl;\n\t\tevt.draggedRect = dragRect;\n\t\tevt.related = targetEl || toEl;\n\t\tevt.relatedRect = targetRect || toEl.getBoundingClientRect();\n\t\tevt.willInsertAfter = willInsertAfter;\n\n\t\tfromEl.dispatchEvent(evt);\n\n\t\tif (onMoveFn) {\n\t\t\tretVal = onMoveFn.call(kvsortable, evt, originalEvt);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\n\tfunction _disableDraggable(el) {\n\t\tel.draggable = false;\n\t}\n\n\n\tfunction _unsilent() {\n\t\t_silent = false;\n\t}\n\n\n\t/** @returns {HTMLElement|false} */\n\tfunction _ghostIsLast(el, evt) {\n\t\tvar lastEl = el.lastElementChild,\n\t\t\trect = lastEl.getBoundingClientRect();\n\n\t\t// 5 — min delta\n\t\t// abs — нельзя добавлять, а то глюки при наведении сверху\n\t\treturn (evt.clientY - (rect.top + rect.height) > 5) ||\n\t\t\t(evt.clientX - (rect.left + rect.width) > 5);\n\t}\n\n\n\t/**\n\t * Generate id\n\t * @param   {HTMLElement} el\n\t * @returns {String}\n\t * @private\n\t */\n\tfunction _generateId(el) {\n\t\tvar str = el.tagName + el.className + el.src + el.href + el.textContent,\n\t\t\ti = str.length,\n\t\t\tsum = 0;\n\n\t\twhile (i--) {\n\t\t\tsum += str.charCodeAt(i);\n\t\t}\n\n\t\treturn sum.toString(36);\n\t}\n\n\t/**\n\t * Returns the index of an element within its parent for a selected set of\n\t * elements\n\t * @param  {HTMLElement} el\n\t * @param  {selector} selector\n\t * @return {number}\n\t */\n\tfunction _index(el, selector) {\n\t\tvar index = 0;\n\n\t\tif (!el || !el.parentNode) {\n\t\t\treturn -1;\n\t\t}\n\n\t\twhile (el && (el = el.previousElementSibling)) {\n\t\t\tif ((el.nodeName.toUpperCase() !== 'TEMPLATE') && (selector === '>*' || _matches(el, selector))) {\n\t\t\t\tindex++;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}\n\n\tfunction _matches(/**HTMLElement*/el, /**String*/selector) {\n\t\tif (el) {\n\t\t\tselector = selector.split('.');\n\n\t\t\tvar tag = selector.shift().toUpperCase(),\n\t\t\t\tre = new RegExp('\\\\s(' + selector.join('|') + ')(?=\\\\s)', 'g');\n\n\t\t\treturn (\n\t\t\t\t(tag === '' || el.nodeName.toUpperCase() == tag) &&\n\t\t\t\t(!selector.length || ((' ' + el.className + ' ').match(re) || []).length == selector.length)\n\t\t\t);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction _throttle(callback, ms) {\n\t\tvar args, _this;\n\n\t\treturn function () {\n\t\t\tif (args === void 0) {\n\t\t\t\targs = arguments;\n\t\t\t\t_this = this;\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tif (args.length === 1) {\n\t\t\t\t\t\tcallback.call(_this, args[0]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback.apply(_this, args);\n\t\t\t\t\t}\n\n\t\t\t\t\targs = void 0;\n\t\t\t\t}, ms);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction _extend(dst, src) {\n\t\tif (dst && src) {\n\t\t\tfor (var key in src) {\n\t\t\t\tif (src.hasOwnProperty(key)) {\n\t\t\t\t\tdst[key] = src[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn dst;\n\t}\n\n\tfunction _clone(el) {\n\t\tif (Polymer && Polymer.dom) {\n\t\t\treturn Polymer.dom(el).cloneNode(true);\n\t\t}\n\t\telse if ($) {\n\t\t\treturn $(el).clone(true)[0];\n\t\t}\n\t\telse {\n\t\t\treturn el.cloneNode(true);\n\t\t}\n\t}\n\n\tfunction _saveInputCheckedState(root) {\n\t\tvar inputs = root.getElementsByTagName('input');\n\t\tvar idx = inputs.length;\n\n\t\twhile (idx--) {\n\t\t\tvar el = inputs[idx];\n\t\t\tel.checked && savedInputChecked.push(el);\n\t\t}\n\t}\n\n\tfunction _nextTick(fn) {\n\t\treturn setTimeout(fn, 0);\n\t}\n\n\tfunction _cancelNextTick(id) {\n\t\treturn clearTimeout(id);\n\t}\n\n\t// Fixed #973:\n\t_on(document, 'touchmove', function (evt) {\n\t\tif (KvSortable.active) {\n\t\t\tevt.preventDefault();\n\t\t}\n\t});\n\n\t// Export utils\n\tKvSortable.utils = {\n\t\ton: _on,\n\t\toff: _off,\n\t\tcss: _css,\n\t\tfind: _find,\n\t\tis: function (el, selector) {\n\t\t\treturn !!_closest(el, selector, el);\n\t\t},\n\t\textend: _extend,\n\t\tthrottle: _throttle,\n\t\tclosest: _closest,\n\t\ttoggleClass: _toggleClass,\n\t\tclone: _clone,\n\t\tindex: _index,\n\t\tnextTick: _nextTick,\n\t\tcancelNextTick: _cancelNextTick\n\t};\n\n\n\t/**\n\t * Create kvsortable instance\n\t * @param {HTMLElement}  el\n\t * @param {Object}      [options]\n\t */\n\tKvSortable.create = function (el, options) {\n\t\treturn new KvSortable(el, options);\n\t};\n\n\n\t// Export\n\tKvSortable.version = '1.7.0';\n\treturn KvSortable;\n});\n/**\n * jQuery plugin for KvSortable\n */\n(function (factory) {\n    \"use strict\";\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"jquery\"], factory);\n    }\n    else {\n        /* jshint sub:true */\n        factory(jQuery);\n    }\n})(function ($) {\n    \"use strict\";\n    $.fn.kvsortable = function (options) {\n        var retVal,\n            args = arguments;\n\n        this.each(function () {\n            var $el = $(this), kvsortable = $el.data('kvsortable');\n\n            if (!kvsortable && (options instanceof Object || !options)) {\n                kvsortable = new KvSortable(this, options);\n                $el.data('kvsortable', kvsortable);\n            }\n\n            if (kvsortable) {\n                if (options === 'widget') {\n                    retVal = kvsortable;\n                }\n                else if (options === 'destroy') {\n                    kvsortable.destroy();\n                    $el.removeData('kvsortable');\n                }\n                else if (typeof kvsortable[options] === 'function') {\n                    retVal = kvsortable[options].apply(kvsortable, [].slice.call(args, 1));\n                }\n                else if (options in kvsortable.options) {\n                    retVal = kvsortable.option.apply(kvsortable, args);\n                }\n            }\n        });\n\n        return (retVal === void 0) ? this : retVal;\n    };\n});"
  },
  {
    "path": "public/vendor/laravel-admin/bootstrap3-editable/css/bootstrap-editable.css",
    "content": "/*! X-editable - v1.5.1 \n* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery\n* http://github.com/vitalets/x-editable\n* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */\n.editableform {\n    margin-bottom: 0; /* overwrites bootstrap margin */\n}\n\n.editableform .control-group {\n    margin-bottom: 0; /* overwrites bootstrap margin */\n    white-space: nowrap; /* prevent wrapping buttons on new line */\n    line-height: 20px; /* overwriting bootstrap line-height. See #133 */\n}\n\n/* \n  BS3 width:1005 for inputs breaks editable form in popup \n  See: https://github.com/vitalets/x-editable/issues/393\n*/\n.editableform .form-control {\n    width: auto;\n}\n\n.editable-buttons {\n   display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */\n   vertical-align: top;\n   margin-left: 7px;\n   /* inline-block emulation for IE7*/\n   zoom: 1; \n   *display: inline;\n}\n\n.editable-buttons.editable-buttons-bottom {\n   display: block; \n   margin-top: 7px;\n   margin-left: 0;\n}\n\n.editable-input {\n    vertical-align: top; \n    display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */\n    width: auto; /* bootstrap-responsive has width: 100% that breakes layout */\n    white-space: normal; /* reset white-space decalred in parent*/\n   /* display-inline emulation for IE7*/\n   zoom: 1; \n   *display: inline;   \n}\n\n.editable-buttons .editable-cancel {\n   margin-left: 7px; \n}\n\n/*for jquery-ui buttons need set height to look more pretty*/\n.editable-buttons button.ui-button-icon-only {\n   height: 24px; \n   width: 30px;\n}\n\n.editableform-loading {\n    background: url('../img/loading.gif') center center no-repeat;  \n    height: 25px;\n    width: auto; \n    min-width: 25px; \n}\n\n.editable-inline .editableform-loading {\n    background-position: left 5px;      \n}\n\n .editable-error-block {\n    max-width: 300px;\n    margin: 5px 0 0 0;\n    width: auto;\n    white-space: normal;\n}\n\n/*add padding for jquery ui*/\n.editable-error-block.ui-state-error {\n    padding: 3px;  \n}  \n\n.editable-error {\n   color: red;  \n}\n\n/* ---- For specific types ---- */\n\n.editableform .editable-date {\n    padding: 0; \n    margin: 0;\n    float: left;\n}\n\n/* move datepicker icon to center of add-on button. See https://github.com/vitalets/x-editable/issues/183 */\n.editable-inline .add-on .icon-th {\n   margin-top: 3px;\n   margin-left: 1px; \n}\n\n\n/* checklist vertical alignment */\n.editable-checklist label input[type=\"checkbox\"], \n.editable-checklist label span {\n    vertical-align: middle;\n    margin: 0;\n}\n\n.editable-checklist label {\n    white-space: nowrap; \n}\n\n/* set exact width of textarea to fit buttons toolbar */\n.editable-wysihtml5 {\n    width: 566px; \n    height: 250px; \n}\n\n/* clear button shown as link in date inputs */\n.editable-clear {\n   clear: both;\n   font-size: 0.9em;\n   text-decoration: none;\n   text-align: right;\n}\n\n/* IOS-style clear button for text inputs */\n.editable-clear-x {\n   background: url('../img/clear.png') center center no-repeat;\n   display: block;\n   width: 13px;    \n   height: 13px;\n   position: absolute;\n   opacity: 0.6;\n   z-index: 100;\n   \n   top: 50%;\n   right: 6px;\n   margin-top: -6px;\n   \n}\n\n.editable-clear-x:hover {\n   opacity: 1;\n}\n\n.editable-pre-wrapped {\n   white-space: pre-wrap;\n}\n.editable-container.editable-popup {\n    max-width: none !important; /* without this rule poshytip/tooltip does not stretch */\n}  \n\n.editable-container.popover {\n    width: auto; /* without this rule popover does not stretch */\n}\n\n.editable-container.editable-inline {\n    display: inline-block; \n    vertical-align: middle;\n    width: auto;\n    /* inline-block emulation for IE7*/\n    zoom: 1; \n    *display: inline;    \n}\n\n.editable-container.ui-widget {\n   font-size: inherit;  /* jqueryui widget font 1.1em too big, overwrite it */\n   z-index: 9990; /* should be less than select2 dropdown z-index to close dropdown first when click */\n}\n.editable-click, \na.editable-click, \na.editable-click:hover {\n    text-decoration: none;\n    border-bottom: dashed 1px #0088cc;\n}\n\n.editable-click.editable-disabled, \na.editable-click.editable-disabled, \na.editable-click.editable-disabled:hover {\n   color: #585858;  \n   cursor: default;\n   border-bottom: none;\n}\n\n.editable-empty, .editable-empty:hover, .editable-empty:focus{\n  font-style: italic; \n  color: #DD1144;  \n  /* border-bottom: none; */\n  text-decoration: none;\n}\n\n.editable-unsaved {\n  font-weight: bold; \n}\n\n.editable-unsaved:after {\n/*    content: '*'*/\n}\n\n.editable-bg-transition {\n  -webkit-transition: background-color 1400ms ease-out;\n  -moz-transition: background-color 1400ms ease-out;\n  -o-transition: background-color 1400ms ease-out;\n  -ms-transition: background-color 1400ms ease-out;\n  transition: background-color 1400ms ease-out;  \n}\n\n/*see https://github.com/vitalets/x-editable/issues/139 */\n.form-horizontal .editable\n{ \n    padding-top: 5px;\n    display:inline-block;\n}\n\n\n/*!\n * Datepicker for Bootstrap\n *\n * Copyright 2012 Stefan Petre\n * Improvements by Andrew Rowls\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n */\n.datepicker {\n  padding: 4px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  direction: ltr;\n  /*.dow {\n\t\tborder-top: 1px solid #ddd !important;\n\t}*/\n\n}\n.datepicker-inline {\n  width: 220px;\n}\n.datepicker.datepicker-rtl {\n  direction: rtl;\n}\n.datepicker.datepicker-rtl table tr td span {\n  float: right;\n}\n.datepicker-dropdown {\n  top: 0;\n  left: 0;\n}\n.datepicker-dropdown:before {\n  content: '';\n  display: inline-block;\n  border-left: 7px solid transparent;\n  border-right: 7px solid transparent;\n  border-bottom: 7px solid #ccc;\n  border-bottom-color: rgba(0, 0, 0, 0.2);\n  position: absolute;\n  top: -7px;\n  left: 6px;\n}\n.datepicker-dropdown:after {\n  content: '';\n  display: inline-block;\n  border-left: 6px solid transparent;\n  border-right: 6px solid transparent;\n  border-bottom: 6px solid #ffffff;\n  position: absolute;\n  top: -6px;\n  left: 7px;\n}\n.datepicker > div {\n  display: none;\n}\n.datepicker.days div.datepicker-days {\n  display: block;\n}\n.datepicker.months div.datepicker-months {\n  display: block;\n}\n.datepicker.years div.datepicker-years {\n  display: block;\n}\n.datepicker table {\n  margin: 0;\n}\n.datepicker td,\n.datepicker th {\n  text-align: center;\n  width: 20px;\n  height: 20px;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n  border: none;\n}\n.table-striped .datepicker table tr td,\n.table-striped .datepicker table tr th {\n  background-color: transparent;\n}\n.datepicker table tr td.day:hover {\n  background: #eeeeee;\n  cursor: pointer;\n}\n.datepicker table tr td.old,\n.datepicker table tr td.new {\n  color: #999999;\n}\n.datepicker table tr td.disabled,\n.datepicker table tr td.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td.today,\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today.disabled:hover {\n  background-color: #fde19a;\n  background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));\n  background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);\n  background-image: linear-gradient(top, #fdd49a, #fdf59a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);\n  border-color: #fdf59a #fdf59a #fbed50;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #000;\n}\n.datepicker table tr td.today:hover,\n.datepicker table tr td.today:hover:hover,\n.datepicker table tr td.today.disabled:hover,\n.datepicker table tr td.today.disabled:hover:hover,\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active,\n.datepicker table tr td.today.disabled,\n.datepicker table tr td.today:hover.disabled,\n.datepicker table tr td.today.disabled.disabled,\n.datepicker table tr td.today.disabled:hover.disabled,\n.datepicker table tr td.today[disabled],\n.datepicker table tr td.today:hover[disabled],\n.datepicker table tr td.today.disabled[disabled],\n.datepicker table tr td.today.disabled:hover[disabled] {\n  background-color: #fdf59a;\n}\n.datepicker table tr td.today:active,\n.datepicker table tr td.today:hover:active,\n.datepicker table tr td.today.disabled:active,\n.datepicker table tr td.today.disabled:hover:active,\n.datepicker table tr td.today.active,\n.datepicker table tr td.today:hover.active,\n.datepicker table tr td.today.disabled.active,\n.datepicker table tr td.today.disabled:hover.active {\n  background-color: #fbf069 \\9;\n}\n.datepicker table tr td.today:hover:hover {\n  color: #000;\n}\n.datepicker table tr td.today.active:hover {\n  color: #fff;\n}\n.datepicker table tr td.range,\n.datepicker table tr td.range:hover,\n.datepicker table tr td.range.disabled,\n.datepicker table tr td.range.disabled:hover {\n  background: #eeeeee;\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today,\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today.disabled:hover {\n  background-color: #f3d17a;\n  background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a);\n  background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));\n  background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a);\n  background-image: -o-linear-gradient(top, #f3c17a, #f3e97a);\n  background-image: linear-gradient(top, #f3c17a, #f3e97a);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);\n  border-color: #f3e97a #f3e97a #edde34;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  -webkit-border-radius: 0;\n  -moz-border-radius: 0;\n  border-radius: 0;\n}\n.datepicker table tr td.range.today:hover,\n.datepicker table tr td.range.today:hover:hover,\n.datepicker table tr td.range.today.disabled:hover,\n.datepicker table tr td.range.today.disabled:hover:hover,\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active,\n.datepicker table tr td.range.today.disabled,\n.datepicker table tr td.range.today:hover.disabled,\n.datepicker table tr td.range.today.disabled.disabled,\n.datepicker table tr td.range.today.disabled:hover.disabled,\n.datepicker table tr td.range.today[disabled],\n.datepicker table tr td.range.today:hover[disabled],\n.datepicker table tr td.range.today.disabled[disabled],\n.datepicker table tr td.range.today.disabled:hover[disabled] {\n  background-color: #f3e97a;\n}\n.datepicker table tr td.range.today:active,\n.datepicker table tr td.range.today:hover:active,\n.datepicker table tr td.range.today.disabled:active,\n.datepicker table tr td.range.today.disabled:hover:active,\n.datepicker table tr td.range.today.active,\n.datepicker table tr td.range.today:hover.active,\n.datepicker table tr td.range.today.disabled.active,\n.datepicker table tr td.range.today.disabled:hover.active {\n  background-color: #efe24b \\9;\n}\n.datepicker table tr td.selected,\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected.disabled:hover {\n  background-color: #9e9e9e;\n  background-image: -moz-linear-gradient(top, #b3b3b3, #808080);\n  background-image: -ms-linear-gradient(top, #b3b3b3, #808080);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));\n  background-image: -webkit-linear-gradient(top, #b3b3b3, #808080);\n  background-image: -o-linear-gradient(top, #b3b3b3, #808080);\n  background-image: linear-gradient(top, #b3b3b3, #808080);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);\n  border-color: #808080 #808080 #595959;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.selected:hover,\n.datepicker table tr td.selected:hover:hover,\n.datepicker table tr td.selected.disabled:hover,\n.datepicker table tr td.selected.disabled:hover:hover,\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active,\n.datepicker table tr td.selected.disabled,\n.datepicker table tr td.selected:hover.disabled,\n.datepicker table tr td.selected.disabled.disabled,\n.datepicker table tr td.selected.disabled:hover.disabled,\n.datepicker table tr td.selected[disabled],\n.datepicker table tr td.selected:hover[disabled],\n.datepicker table tr td.selected.disabled[disabled],\n.datepicker table tr td.selected.disabled:hover[disabled] {\n  background-color: #808080;\n}\n.datepicker table tr td.selected:active,\n.datepicker table tr td.selected:hover:active,\n.datepicker table tr td.selected.disabled:active,\n.datepicker table tr td.selected.disabled:hover:active,\n.datepicker table tr td.selected.active,\n.datepicker table tr td.selected:hover.active,\n.datepicker table tr td.selected.disabled.active,\n.datepicker table tr td.selected.disabled:hover.active {\n  background-color: #666666 \\9;\n}\n.datepicker table tr td.active,\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td.active:hover,\n.datepicker table tr td.active:hover:hover,\n.datepicker table tr td.active.disabled:hover,\n.datepicker table tr td.active.disabled:hover:hover,\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active,\n.datepicker table tr td.active.disabled,\n.datepicker table tr td.active:hover.disabled,\n.datepicker table tr td.active.disabled.disabled,\n.datepicker table tr td.active.disabled:hover.disabled,\n.datepicker table tr td.active[disabled],\n.datepicker table tr td.active:hover[disabled],\n.datepicker table tr td.active.disabled[disabled],\n.datepicker table tr td.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td.active:active,\n.datepicker table tr td.active:hover:active,\n.datepicker table tr td.active.disabled:active,\n.datepicker table tr td.active.disabled:hover:active,\n.datepicker table tr td.active.active,\n.datepicker table tr td.active:hover.active,\n.datepicker table tr td.active.disabled.active,\n.datepicker table tr td.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span {\n  display: block;\n  width: 23%;\n  height: 54px;\n  line-height: 54px;\n  float: left;\n  margin: 1%;\n  cursor: pointer;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  border-radius: 4px;\n}\n.datepicker table tr td span:hover {\n  background: #eeeeee;\n}\n.datepicker table tr td span.disabled,\n.datepicker table tr td span.disabled:hover {\n  background: none;\n  color: #999999;\n  cursor: default;\n}\n.datepicker table tr td span.active,\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active.disabled:hover {\n  background-color: #006dcc;\n  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -ms-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));\n  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);\n  background-image: -o-linear-gradient(top, #0088cc, #0044cc);\n  background-image: linear-gradient(top, #0088cc, #0044cc);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);\n  border-color: #0044cc #0044cc #002a80;\n  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);\n  color: #fff;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.datepicker table tr td span.active:hover,\n.datepicker table tr td span.active:hover:hover,\n.datepicker table tr td span.active.disabled:hover,\n.datepicker table tr td span.active.disabled:hover:hover,\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active,\n.datepicker table tr td span.active.disabled,\n.datepicker table tr td span.active:hover.disabled,\n.datepicker table tr td span.active.disabled.disabled,\n.datepicker table tr td span.active.disabled:hover.disabled,\n.datepicker table tr td span.active[disabled],\n.datepicker table tr td span.active:hover[disabled],\n.datepicker table tr td span.active.disabled[disabled],\n.datepicker table tr td span.active.disabled:hover[disabled] {\n  background-color: #0044cc;\n}\n.datepicker table tr td span.active:active,\n.datepicker table tr td span.active:hover:active,\n.datepicker table tr td span.active.disabled:active,\n.datepicker table tr td span.active.disabled:hover:active,\n.datepicker table tr td span.active.active,\n.datepicker table tr td span.active:hover.active,\n.datepicker table tr td span.active.disabled.active,\n.datepicker table tr td span.active.disabled:hover.active {\n  background-color: #003399 \\9;\n}\n.datepicker table tr td span.old,\n.datepicker table tr td span.new {\n  color: #999999;\n}\n.datepicker th.datepicker-switch {\n  width: 145px;\n}\n.datepicker thead tr:first-child th,\n.datepicker tfoot tr th {\n  cursor: pointer;\n}\n.datepicker thead tr:first-child th:hover,\n.datepicker tfoot tr th:hover {\n  background: #eeeeee;\n}\n.datepicker .cw {\n  font-size: 10px;\n  width: 12px;\n  padding: 0 2px 0 5px;\n  vertical-align: middle;\n}\n.datepicker thead tr:first-child th.cw {\n  cursor: default;\n  background-color: transparent;\n}\n.input-append.date .add-on i,\n.input-prepend.date .add-on i {\n  display: block;\n  cursor: pointer;\n  width: 16px;\n  height: 16px;\n}\n.input-daterange input {\n  text-align: center;\n}\n.input-daterange input:first-child {\n  -webkit-border-radius: 3px 0 0 3px;\n  -moz-border-radius: 3px 0 0 3px;\n  border-radius: 3px 0 0 3px;\n}\n.input-daterange input:last-child {\n  -webkit-border-radius: 0 3px 3px 0;\n  -moz-border-radius: 0 3px 3px 0;\n  border-radius: 0 3px 3px 0;\n}\n.input-daterange .add-on {\n  display: inline-block;\n  width: auto;\n  min-width: 16px;\n  height: 18px;\n  padding: 4px 5px;\n  font-weight: normal;\n  line-height: 18px;\n  text-align: center;\n  text-shadow: 0 1px 0 #ffffff;\n  vertical-align: middle;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  margin-left: -5px;\n  margin-right: -5px;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin/google-fonts/fonts.css",
    "content": "@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: normal;\n  font-weight: 300;\n  src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(fonts/Source-Sans-Pro-Light.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Light.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Light.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: normal;\n  font-weight: 400;\n  src: url(fonts/Source-Sans-Pro.eot);\n  src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url(fonts/Source-Sans-Pro.woff2) format('woff2'), url(fonts/Source-Sans-Pro.ttf) format('truetype'), url(fonts/Source-Sans-Pro.svg#SourceSansPro) format('svg'), url(fonts/Source-Sans-Pro.eot?#iefix) format('embedded-opentype'), url(fonts/Source-Sans-Pro.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: normal;\n  font-weight: 600;\n  src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url(fonts/Source-Sans-Pro-Semibold.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Semibold.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Semibold.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: normal;\n  font-weight: 700;\n  src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url(fonts/Source-Sans-Pro-Bold.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Bold.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Bold.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: italic;\n  font-weight: 300;\n  src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url(fonts/Source-Sans-Pro-Light-Italic.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Light-Italic.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Light-Italic.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: italic;\n  font-weight: 400;\n  src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url(fonts/Source-Sans-Pro-Italic.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Italic.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Italic.woff) format('woff');\n}\n\n@font-face {\n  font-family: 'Source Sans Pro';\n  font-style: italic;\n  font-weight: 600;\n  src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url(fonts/Source-Sans-Pro-Semibold-Italic.woff2) format('woff2'), url(fonts/Source-Sans-Pro-Semibold-Italic.ttf) format('truetype'), url(fonts/Source-Sans-Pro-Semibold-Italic.woff) format('woff');\n}\n\n"
  },
  {
    "path": "public/vendor/laravel-admin/jquery-pjax/jquery.pjax.js",
    "content": "/*!\n * Copyright 2012, Chris Wanstrath\n * Released under the MIT License\n * https://github.com/defunkt/jquery-pjax\n */\n\n(function($){\n\n// When called on a container with a selector, fetches the href with\n// ajax into the container or with the data-pjax attribute on the link\n// itself.\n//\n// Tries to make sure the back button and ctrl+click work the way\n// you'd expect.\n//\n// Exported as $.fn.pjax\n//\n// Accepts a jQuery ajax options object that may include these\n// pjax specific options:\n//\n//\n// container - Where to stick the response body. Usually a String selector.\n//             $(container).html(xhr.responseBody)\n//             (default: current jquery context)\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// For convenience the second parameter can be either the container or\n// the options object.\n//\n// Returns the jQuery object\nfunction fnPjax(selector, container, options) {\n  var context = this\n  return this.on('click.pjax', selector, function(event) {\n    var opts = $.extend({}, optionsFor(container, options))\n    if (!opts.container)\n      opts.container = $(this).attr('data-pjax') || context\n    handleClick(event, opts)\n  })\n}\n\n// Public: pjax on click handler\n//\n// Exported as $.pjax.click.\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//   $(document).on('click', 'a', $.pjax.click)\n//   // is the same as\n//   $(document).pjax('a')\n//\n//  $(document).on('click', 'a', function(event) {\n//    var container = $(this).closest('[data-pjax-container]')\n//    $.pjax.click(event, container)\n//  })\n//\n// Returns nothing.\nfunction handleClick(event, container, options) {\n  options = optionsFor(container, options)\n\n  var link = event.currentTarget\n\n  if (link.tagName.toUpperCase() !== 'A')\n    throw \"$.fn.pjax or $.pjax.click requires an anchor element\"\n\n  // Middle click, cmd click, and ctrl click should open\n  // links in a new tab as normal.\n  if ( event.which > 1 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey )\n    return\n\n  // Ignore cross origin links\n  if ( location.protocol !== link.protocol || location.hostname !== link.hostname )\n    return\n\n  // Ignore case when a hash is being tacked on the current URL\n  if ( link.href.indexOf('#') > -1 && stripHash(link) == stripHash(location) )\n    return\n\n  // Ignore event with default prevented\n  if (event.isDefaultPrevented())\n    return\n\n  var defaults = {\n    url: link.href,\n    container: $(link).attr('data-pjax'),\n    target: link\n  }\n\n  var opts = $.extend({}, defaults, options)\n  var clickEvent = $.Event('pjax:click')\n  $(link).trigger(clickEvent, [opts])\n\n  if (!clickEvent.isDefaultPrevented()) {\n    pjax(opts)\n    event.preventDefault()\n    $(link).trigger('pjax:clicked', [opts])\n  }\n}\n\n// Public: pjax on form submit handler\n//\n// Exported as $.pjax.submit\n//\n// event   - \"click\" jQuery.Event\n// options - pjax options\n//\n// Examples\n//\n//  $(document).on('submit', 'form', function(event) {\n//    var container = $(this).closest('[data-pjax-container]')\n//    $.pjax.submit(event, container)\n//  })\n//\n// Returns nothing.\nfunction handleSubmit(event, container, options) {\n  options = optionsFor(container, options)\n\n  var form = event.currentTarget\n  var $form = $(form)\n\n  if (form.tagName.toUpperCase() !== 'FORM')\n    throw \"$.pjax.submit requires a form element\"\n\n  var defaults = {\n    type: ($form.attr('method') || 'GET').toUpperCase(),\n    url: $form.attr('action'),\n    container: $form.attr('data-pjax'),\n    target: form\n  }\n\n  if (defaults.type !== 'GET' && window.FormData !== undefined) {\n    defaults.data = new FormData(form);\n    defaults.processData = false;\n    defaults.contentType = false;\n  } else {\n    // Can't handle file uploads, exit\n    if ($(form).find(':file').length) {\n      return;\n    }\n\n    // Fallback to manually serializing the fields\n    defaults.data = $(form).serializeArray();\n  }\n\n  pjax($.extend({}, defaults, options))\n\n  event.preventDefault()\n}\n\n// Loads a URL with ajax, puts the response body inside a container,\n// then pushState()'s the loaded URL.\n//\n// Works just like $.ajax in that it accepts a jQuery ajax\n// settings object (with keys like url, type, data, etc).\n//\n// Accepts these extra keys:\n//\n// container - Where to stick the response body.\n//             $(container).html(xhr.responseBody)\n//      push - Whether to pushState the URL. Defaults to true (of course).\n//   replace - Want to use replaceState instead? That's cool.\n//\n// Use it just like $.ajax:\n//\n//   var xhr = $.pjax({ url: this.href, container: '#main' })\n//   console.log( xhr.readyState )\n//\n// Returns whatever $.ajax returns.\nfunction pjax(options) {\n  options = $.extend(true, {}, $.ajaxSettings, pjax.defaults, options)\n\n  if ($.isFunction(options.url)) {\n    options.url = options.url()\n  }\n\n  var target = options.target\n\n  var hash = parseURL(options.url).hash\n\n  var context = options.context = findContainerFor(options.container)\n\n  // We want the browser to maintain two separate internal caches: one\n  // for pjax'd partial page loads and one for normal page loads.\n  // Without adding this secret parameter, some browsers will often\n  // confuse the two.\n  if (!options.data) options.data = {}\n  if ($.isArray(options.data)) {\n    options.data.push({name: '_pjax', value: context.selector})\n  } else {\n    options.data._pjax = context.selector\n  }\n\n  function fire(type, args, props) {\n    if (!props) props = {}\n    props.relatedTarget = target\n    var event = $.Event(type, props)\n    context.trigger(event, args)\n    return !event.isDefaultPrevented()\n  }\n\n  var timeoutTimer\n\n  options.beforeSend = function(xhr, settings) {\n    // No timeout for non-GET requests\n    // Its not safe to request the resource again with a fallback method.\n    if (settings.type !== 'GET') {\n      settings.timeout = 0\n    }\n\n    xhr.setRequestHeader('X-PJAX', 'true')\n    xhr.setRequestHeader('X-PJAX-Container', context.selector)\n\n    if (!fire('pjax:beforeSend', [xhr, settings]))\n      return false\n\n    if (settings.timeout > 0) {\n      timeoutTimer = setTimeout(function() {\n        if (fire('pjax:timeout', [xhr, options]))\n          xhr.abort('timeout')\n      }, settings.timeout)\n\n      // Clear timeout setting so jquerys internal timeout isn't invoked\n      settings.timeout = 0\n    }\n\n    var url = parseURL(settings.url)\n    if (hash) url.hash = hash\n    options.requestUrl = stripInternalParams(url)\n  }\n\n  options.complete = function(xhr, textStatus) {\n    if (timeoutTimer)\n      clearTimeout(timeoutTimer)\n\n    fire('pjax:complete', [xhr, textStatus, options])\n\n    fire('pjax:end', [xhr, options])\n  }\n\n  options.error = function(xhr, textStatus, errorThrown) {\n    var container = extractContainer(\"\", xhr, options)\n\n    var allowed = fire('pjax:error', [xhr, textStatus, errorThrown, options])\n    if (options.type == 'GET' && textStatus !== 'abort' && allowed) {\n      locationReplace(container.url)\n    }\n  }\n\n  options.success = function(data, status, xhr) {\n    var previousState = pjax.state;\n\n    // If $.pjax.defaults.version is a function, invoke it first.\n    // Otherwise it can be a static string.\n    var currentVersion = (typeof $.pjax.defaults.version === 'function') ?\n      $.pjax.defaults.version() :\n      $.pjax.defaults.version\n\n    var latestVersion = xhr.getResponseHeader('X-PJAX-Version')\n\n    var container = extractContainer(data, xhr, options)\n\n    var url = parseURL(container.url)\n    if (hash) {\n      url.hash = hash\n      container.url = url.href\n    }\n\n    // If there is a layout version mismatch, hard load the new url\n    if (currentVersion && latestVersion && currentVersion !== latestVersion) {\n      locationReplace(container.url)\n      return\n    }\n\n    // If the new response is missing a body, hard load the page\n    if (!container.contents) {\n      locationReplace(container.url)\n      return\n    }\n\n    pjax.state = {\n      id: options.id || uniqueId(),\n      url: container.url,\n      title: container.title,\n      container: context.selector,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n\n    if (options.push || options.replace) {\n      window.history.replaceState(pjax.state, container.title, container.url)\n    }\n\n    // Only blur the focus if the focused element is within the container.\n    var blurFocus = $.contains(options.container, document.activeElement)\n\n    // Clear out any focused controls before inserting new page contents.\n    if (blurFocus) {\n      try {\n        document.activeElement.blur()\n      } catch (e) { }\n    }\n\n    if (container.title) document.title = container.title\n\n    fire('pjax:beforeReplace', [container.contents, options], {\n      state: pjax.state,\n      previousState: previousState\n    })\n    context.html(container.contents)\n\n    // FF bug: Won't autofocus fields that are inserted via JS.\n    // This behavior is incorrect. So if theres no current focus, autofocus\n    // the last field.\n    //\n    // http://www.w3.org/html/wg/drafts/html/master/forms.html\n    var autofocusEl = context.find('input[autofocus], textarea[autofocus]').last()[0]\n    if (autofocusEl && document.activeElement !== autofocusEl) {\n      autofocusEl.focus();\n    }\n\n    executeScriptTags(container.scripts, context)\n\n    var scrollTo = options.scrollTo\n\n    // Ensure browser scrolls to the element referenced by the URL anchor\n    if (hash) {\n      var name = decodeURIComponent(hash.slice(1))\n      var target = document.getElementById(name) || document.getElementsByName(name)[0]\n      if (target) scrollTo = $(target).offset().top\n    }\n\n    if (typeof scrollTo == 'number') $(window).scrollTop(scrollTo)\n\n    fire('pjax:success', [data, status, xhr, options])\n  }\n\n\n  // Initialize pjax.state for the initial page load. Assume we're\n  // using the container and options of the link we're loading for the\n  // back button to the initial page. This ensures good back button\n  // behavior.\n  if (!pjax.state) {\n    pjax.state = {\n      id: uniqueId(),\n      url: window.location.href,\n      title: document.title,\n      container: context.selector,\n      fragment: options.fragment,\n      timeout: options.timeout\n    }\n    window.history.replaceState(pjax.state, document.title)\n  }\n\n  // Cancel the current request if we're already pjaxing\n  abortXHR(pjax.xhr)\n\n  pjax.options = options\n  var xhr = pjax.xhr = $.ajax(options)\n\n  if (xhr.readyState > 0) {\n    if (options.push && !options.replace) {\n      // Cache current container element before replacing it\n      cachePush(pjax.state.id, cloneContents(context))\n\n      window.history.pushState(null, \"\", options.requestUrl)\n    }\n\n    fire('pjax:start', [xhr, options])\n    fire('pjax:send', [xhr, options])\n  }\n\n  return pjax.xhr\n}\n\n// Public: Reload current page with pjax.\n//\n// Returns whatever $.pjax returns.\nfunction pjaxReload(container, options) {\n  var defaults = {\n    url: window.location.href,\n    push: false,\n    replace: true,\n    scrollTo: false\n  }\n\n  return pjax($.extend(defaults, optionsFor(container, options)))\n}\n\n// Internal: Hard replace current state with url.\n//\n// Work for around WebKit\n//   https://bugs.webkit.org/show_bug.cgi?id=93506\n//\n// Returns nothing.\nfunction locationReplace(url) {\n  window.history.replaceState(null, \"\", pjax.state.url)\n  window.location.replace(url)\n}\n\n\nvar initialPop = true\nvar initialURL = window.location.href\nvar initialState = window.history.state\n\n// Initialize $.pjax.state if possible\n// Happens when reloading a page and coming forward from a different\n// session history.\nif (initialState && initialState.container) {\n  pjax.state = initialState\n}\n\n// Non-webkit browsers don't fire an initial popstate event\nif ('state' in window.history) {\n  initialPop = false\n}\n\n// popstate handler takes care of the back and forward buttons\n//\n// You probably shouldn't use pjax on pages with other pushState\n// stuff yet.\nfunction onPjaxPopstate(event) {\n\n  // Hitting back or forward should override any pending PJAX request.\n  if (!initialPop) {\n    abortXHR(pjax.xhr)\n  }\n\n  var previousState = pjax.state\n  var state = event.state\n  var direction\n\n  if (state && state.container) {\n    // When coming forward from a separate history session, will get an\n    // initial pop with a state we are already at. Skip reloading the current\n    // page.\n    if (initialPop && initialURL == state.url) return\n\n    if (previousState) {\n      // If popping back to the same state, just skip.\n      // Could be clicking back from hashchange rather than a pushState.\n      if (previousState.id === state.id) return\n\n      // Since state IDs always increase, we can deduce the navigation direction\n      direction = previousState.id < state.id ? 'forward' : 'back'\n    }\n\n    var cache = cacheMapping[state.id] || []\n    var container = $(cache[0] || state.container), contents = cache[1]\n\n    if (container.length) {\n      if (previousState) {\n        // Cache current container before replacement and inform the\n        // cache which direction the history shifted.\n        cachePop(direction, previousState.id, cloneContents(container))\n      }\n\n      var popstateEvent = $.Event('pjax:popstate', {\n        state: state,\n        direction: direction\n      })\n      container.trigger(popstateEvent)\n\n      var options = {\n        id: state.id,\n        url: state.url,\n        container: container,\n        push: false,\n        fragment: state.fragment,\n        timeout: state.timeout,\n        scrollTo: false\n      }\n\n      if (contents) {\n        container.trigger('pjax:start', [null, options])\n\n        pjax.state = state\n        if (state.title) document.title = state.title\n        var beforeReplaceEvent = $.Event('pjax:beforeReplace', {\n          state: state,\n          previousState: previousState\n        })\n        container.trigger(beforeReplaceEvent, [contents, options])\n        container.html(contents)\n\n        container.trigger('pjax:end', [null, options])\n      } else {\n        pjax(options)\n      }\n\n      // Force reflow/relayout before the browser tries to restore the\n      // scroll position.\n      container[0].offsetHeight\n    } else {\n      locationReplace(location.href)\n    }\n  }\n  initialPop = false\n}\n\n// Fallback version of main pjax function for browsers that don't\n// support pushState.\n//\n// Returns nothing since it retriggers a hard form submission.\nfunction fallbackPjax(options) {\n  var url = $.isFunction(options.url) ? options.url() : options.url,\n      method = options.type ? options.type.toUpperCase() : 'GET'\n\n  var form = $('<form>', {\n    method: method === 'GET' ? 'GET' : 'POST',\n    action: url,\n    style: 'display:none'\n  })\n\n  if (method !== 'GET' && method !== 'POST') {\n    form.append($('<input>', {\n      type: 'hidden',\n      name: '_method',\n      value: method.toLowerCase()\n    }))\n  }\n\n  var data = options.data\n  if (typeof data === 'string') {\n    $.each(data.split('&'), function(index, value) {\n      var pair = value.split('=')\n      form.append($('<input>', {type: 'hidden', name: pair[0], value: pair[1]}))\n    })\n  } else if ($.isArray(data)) {\n    $.each(data, function(index, value) {\n      form.append($('<input>', {type: 'hidden', name: value.name, value: value.value}))\n    })\n  } else if (typeof data === 'object') {\n    var key\n    for (key in data)\n      form.append($('<input>', {type: 'hidden', name: key, value: data[key]}))\n  }\n\n  $(document.body).append(form)\n  form.submit()\n}\n\n// Internal: Abort an XmlHttpRequest if it hasn't been completed,\n// also removing its event handlers.\nfunction abortXHR(xhr) {\n  if ( xhr && xhr.readyState < 4) {\n    xhr.onreadystatechange = $.noop\n    xhr.abort()\n  }\n}\n\n// Internal: Generate unique id for state object.\n//\n// Use a timestamp instead of a counter since ids should still be\n// unique across page loads.\n//\n// Returns Number.\nfunction uniqueId() {\n  return (new Date).getTime()\n}\n\nfunction cloneContents(container) {\n  var cloned = container.clone()\n  // Unmark script tags as already being eval'd so they can get executed again\n  // when restored from cache. HAXX: Uses jQuery internal method.\n  cloned.find('script').each(function(){\n    if (!this.src) jQuery._data(this, 'globalEval', false)\n  })\n  return [container.selector, cloned.contents()]\n}\n\n// Internal: Strip internal query params from parsed URL.\n//\n// Returns sanitized url.href String.\nfunction stripInternalParams(url) {\n  url.search = url.search.replace(/([?&])(_pjax|_)=[^&]*/g, '')\n  return url.href.replace(/\\?($|#)/, '$1')\n}\n\n// Internal: Parse URL components and returns a Locationish object.\n//\n// url - String URL\n//\n// Returns HTMLAnchorElement that acts like Location.\nfunction parseURL(url) {\n  var a = document.createElement('a')\n  a.href = url\n  return a\n}\n\n// Internal: Return the `href` component of given URL object with the hash\n// portion removed.\n//\n// location - Location or HTMLAnchorElement\n//\n// Returns String\nfunction stripHash(location) {\n  return location.href.replace(/#.*/, '')\n}\n\n// Internal: Build options Object for arguments.\n//\n// For convenience the first parameter can be either the container or\n// the options object.\n//\n// Examples\n//\n//   optionsFor('#container')\n//   // => {container: '#container'}\n//\n//   optionsFor('#container', {push: true})\n//   // => {container: '#container', push: true}\n//\n//   optionsFor({container: '#container', push: true})\n//   // => {container: '#container', push: true}\n//\n// Returns options Object.\nfunction optionsFor(container, options) {\n  // Both container and options\n  if ( container && options )\n    options.container = container\n\n  // First argument is options Object\n  else if ( $.isPlainObject(container) )\n    options = container\n\n  // Only container\n  else\n    options = {container: container}\n\n  // Find and validate container\n  if (options.container)\n    options.container = findContainerFor(options.container)\n\n  return options\n}\n\n// Internal: Find container element for a variety of inputs.\n//\n// Because we can't persist elements using the history API, we must be\n// able to find a String selector that will consistently find the Element.\n//\n// container - A selector String, jQuery object, or DOM Element.\n//\n// Returns a jQuery object whose context is `document` and has a selector.\nfunction findContainerFor(container) {\n  container = $(container)\n\n  if ( !container.length ) {\n    throw \"no pjax container for \" + container.selector\n  } else if ( container.selector !== '' && container.context === document ) {\n    return container\n  } else if ( container.attr('id') ) {\n    return $('#' + container.attr('id'))\n  } else {\n    throw \"cant get selector for pjax container!\"\n  }\n}\n\n// Internal: Filter and find all elements matching the selector.\n//\n// Where $.fn.find only matches descendants, findAll will test all the\n// top level elements in the jQuery object as well.\n//\n// elems    - jQuery object of Elements\n// selector - String selector to match\n//\n// Returns a jQuery object.\nfunction findAll(elems, selector) {\n  return elems.filter(selector).add(elems.find(selector));\n}\n\nfunction parseHTML(html) {\n  return $.parseHTML(html, document, true)\n}\n\n// Internal: Extracts container and metadata from response.\n//\n// 1. Extracts X-PJAX-URL header if set\n// 2. Extracts inline <title> tags\n// 3. Builds response Element and extracts fragment if set\n//\n// data    - String response data\n// xhr     - XHR response\n// options - pjax options Object\n//\n// Returns an Object with url, title, and contents keys.\nfunction extractContainer(data, xhr, options) {\n  var obj = {}, fullDocument = /<html/i.test(data)\n\n  // Prefer X-PJAX-URL header if it was set, otherwise fallback to\n  // using the original requested url.\n  var serverUrl = xhr.getResponseHeader('X-PJAX-URL')\n  obj.url = serverUrl ? stripInternalParams(parseURL(serverUrl)) : options.requestUrl\n\n  // Attempt to parse response html into elements\n  if (fullDocument) {\n    var $head = $(parseHTML(data.match(/<head[^>]*>([\\s\\S.]*)<\\/head>/i)[0]))\n    var $body = $(parseHTML(data.match(/<body[^>]*>([\\s\\S.]*)<\\/body>/i)[0]))\n  } else {\n    var $head = $body = $(parseHTML(data))\n  }\n\n  // If response data is empty, return fast\n  if ($body.length === 0)\n    return obj\n\n  // If there's a <title> tag in the header, use it as\n  // the page's title.\n  obj.title = findAll($head, 'title').last().text()\n\n  if (options.fragment) {\n    // If they specified a fragment, look for it in the response\n    // and pull it out.\n    if (options.fragment === 'body') {\n      var $fragment = $body\n    } else {\n      var $fragment = findAll($body, options.fragment).first()\n    }\n\n    if ($fragment.length) {\n      obj.contents = options.fragment === 'body' ? $fragment : $fragment.contents()\n\n      // If there's no title, look for data-title and title attributes\n      // on the fragment\n      if (!obj.title)\n        obj.title = $fragment.attr('title') || $fragment.data('title')\n    }\n\n  } else if (!fullDocument) {\n    obj.contents = $body\n  }\n\n  // Clean up any <title> tags\n  if (obj.contents) {\n    // Remove any parent title elements\n    obj.contents = obj.contents.not(function() { return $(this).is('title') })\n\n    // Then scrub any titles from their descendants\n    obj.contents.find('title').remove()\n\n    // Gather all script[src] elements\n    obj.scripts = findAll(obj.contents, 'script').remove()\n    obj.contents = obj.contents.not(obj.scripts)\n  }\n\n  // Trim any whitespace off the title\n  if (obj.title) obj.title = $.trim(obj.title)\n\n  return obj\n}\n\n// Load an execute scripts using standard script request.\n//\n// Avoids jQuery's traditional $.getScript which does a XHR request and\n// globalEval.\n//\n// scripts - jQuery object of script Elements\n// context - jQuery object whose context is `document` and has a selector\n//\n// Returns nothing.\nfunction executeScriptTags(scripts, context) {\n  if (!scripts) return\n\n  var existingScripts = $('script[src]')\n\n  var cb = function (next) {\n    var src = this.src\n    var matchedScripts = existingScripts.filter(function () {\n      return this.src === src\n    })\n\n      if (matchedScripts.length) {\n          next()\n          return\n      }\n      if (this.src) {\n          var script = document.createElement('script')\n          var type = $(this).attr('type')\n          if (type) script.type = type\n          var done = function () {\n              script.onload = null;\n              script.onerror = null;\n              next()\n          }\n          script.onload = script.onerror = done\n          script.src = $(this).attr('src')\n          document.head.appendChild(script)\n      } else {\n          context.append(this)\n          next()\n      }\n  }\n    var i = 0;\n    var next = function () {\n        if (i >= scripts.length) {\n            return\n        }\n        var script = scripts[i]\n        i++\n        cb.call(script, next)\n    }\n    next()\n}\n\n// Internal: History DOM caching class.\nvar cacheMapping      = {}\nvar cacheForwardStack = []\nvar cacheBackStack    = []\n\n// Push previous state id and container contents into the history\n// cache. Should be called in conjunction with `pushState` to save the\n// previous container contents.\n//\n// id    - State ID Number\n// value - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePush(id, value) {\n  cacheMapping[id] = value\n  cacheBackStack.push(id)\n\n  // Remove all entries in forward history stack after pushing a new page.\n  trimCacheStack(cacheForwardStack, 0)\n\n  // Trim back history stack to max cache length.\n  trimCacheStack(cacheBackStack, pjax.defaults.maxCacheLength)\n}\n\n// Shifts cache from directional history cache. Should be\n// called on `popstate` with the previous state id and container\n// contents.\n//\n// direction - \"forward\" or \"back\" String\n// id        - State ID Number\n// value     - DOM Element to cache\n//\n// Returns nothing.\nfunction cachePop(direction, id, value) {\n  var pushStack, popStack\n  cacheMapping[id] = value\n\n  if (direction === 'forward') {\n    pushStack = cacheBackStack\n    popStack  = cacheForwardStack\n  } else {\n    pushStack = cacheForwardStack\n    popStack  = cacheBackStack\n  }\n\n  pushStack.push(id)\n  if (id = popStack.pop())\n    delete cacheMapping[id]\n\n  // Trim whichever stack we just pushed to to max cache length.\n  trimCacheStack(pushStack, pjax.defaults.maxCacheLength)\n}\n\n// Trim a cache stack (either cacheBackStack or cacheForwardStack) to be no\n// longer than the specified length, deleting cached DOM elements as necessary.\n//\n// stack  - Array of state IDs\n// length - Maximum length to trim to\n//\n// Returns nothing.\nfunction trimCacheStack(stack, length) {\n  while (stack.length > length)\n    delete cacheMapping[stack.shift()]\n}\n\n// Public: Find version identifier for the initial page load.\n//\n// Returns String version or undefined.\nfunction findVersion() {\n  return $('meta').filter(function() {\n    var name = $(this).attr('http-equiv')\n    return name && name.toUpperCase() === 'X-PJAX-VERSION'\n  }).attr('content')\n}\n\n// Install pjax functions on $.pjax to enable pushState behavior.\n//\n// Does nothing if already enabled.\n//\n// Examples\n//\n//     $.pjax.enable()\n//\n// Returns nothing.\nfunction enable() {\n  $.fn.pjax = fnPjax\n  $.pjax = pjax\n  $.pjax.enable = $.noop\n  $.pjax.disable = disable\n  $.pjax.click = handleClick\n  $.pjax.submit = handleSubmit\n  $.pjax.reload = pjaxReload\n  $.pjax.defaults = {\n    timeout: 650,\n    push: true,\n    replace: false,\n    type: 'GET',\n    dataType: 'html',\n    scrollTo: 0,\n    maxCacheLength: 20,\n    version: findVersion\n  }\n  $(window).on('popstate.pjax', onPjaxPopstate)\n}\n\n// Disable pushState behavior.\n//\n// This is the case when a browser doesn't support pushState. It is\n// sometimes useful to disable pushState for debugging on a modern\n// browser.\n//\n// Examples\n//\n//     $.pjax.disable()\n//\n// Returns nothing.\nfunction disable() {\n  $.fn.pjax = function() { return this }\n  $.pjax = fallbackPjax\n  $.pjax.enable = enable\n  $.pjax.disable = $.noop\n  $.pjax.click = $.noop\n  $.pjax.submit = $.noop\n  $.pjax.reload = function() { window.location.reload() }\n\n  $(window).off('popstate.pjax', onPjaxPopstate)\n}\n\n\n// Add the state property to jQuery's event object so we can use it in\n// $(window).bind('popstate')\nif ( $.inArray('state', $.event.props) < 0 )\n  $.event.props.push('state')\n\n// Is pjax supported by this browser?\n$.support.pjax =\n  window.history && window.history.pushState && window.history.replaceState &&\n  // pushState isn't reliable on iOS until 5.\n  !navigator.userAgent.match(/((iPod|iPhone|iPad).+\\bOS\\s+[1-4]\\D|WebApps\\/.+CFNetwork)/)\n\n$.support.pjax ? enable() : disable()\n\n})(jQuery);\n"
  },
  {
    "path": "public/vendor/laravel-admin/laravel-admin/laravel-admin.css",
    "content": "input.content {\n    min-height: 0 !important;\n    padding: 6px 12px !important;\n    margin: 0 !important;\n}\n\ninput.label:empty {\n    display: inherit !important;\n}\n\ninput.label {\n    display: inherit !important;\n    padding: 6px 12px !important;\n    font-size: 14px !important;\n    font-weight: inherit !important;\n    line-height: 1.42857143 !important;\n    color: #555 !important;\n    text-align: inherit !important;\n    white-space: inherit !important;\n    vertical-align: inherit !important;\n    border-radius: inherit !important;\n}\n\n.box-show {\n    border-radius: 0 !important;\n    box-shadow: none !important;\n}\n\na.editable-empty {\n    color: #3c8dbc;\n    border-bottom: none !important;\n}\n\n.form-group > label.asterisk:before {\n    content: \" *\";\n    color: red;\n}\n\n.mailbox-attachments li {\n    width: 300px !important;\n}\n\n.table-has-many .form-group {\n    margin-bottom: 0 !important;\n}\n\n\n.table-has-many label.control-label[for=inputError] {\n    position: absolute;\n    z-index: 100;\n    background-color: #fff;\n    border: 1px solid #dd4b39;\n    border-radius: 5px;\n    text-align: left;\n    top: 34px;\n    padding: 8px;\n    line-height: 1.2;\n}\n\n.table-has-many label.control-label[for=inputError]+br {\n    display: none;\n}\n\n#totop {\n    display: none;\n    position: fixed;\n    bottom: 40px;\n    right: 20px;\n    z-index: 99999;\n    outline: none;\n    background-color: rgb(34, 45, 50);\n    color: rgb(238, 238, 238);\n    cursor: pointer;\n    padding: 10px 15px;\n    border-radius: 4px;\n    opacity: 0.5;\n}\n\n#totop:hover {\n    opacity: 1;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin/laravel-admin/laravel-admin.js",
    "content": "$.fn.editable.defaults.params = function (params) {\n    params._token = LA.token;\n    params._editable = 1;\n    params._method = 'PUT';\n    return params;\n};\n\n$.fn.editable.defaults.error = function (data) {\n    var msg = '';\n    if (data.responseJSON.errors) {\n        $.each(data.responseJSON.errors, function (k, v) {\n            msg += v + \"\\n\";\n        });\n    }\n    return msg\n};\n\ntoastr.options = {\n    closeButton: true,\n    progressBar: true,\n    showMethod: 'slideDown',\n    timeOut: 4000\n};\n\n$.pjax.defaults.timeout = 5000;\n$.pjax.defaults.maxCacheLength = 0;\n$(document).pjax('a:not(a[target=\"_blank\"])', {\n    container: '#pjax-container'\n});\n\nNProgress.configure({parent: '#app'});\n\n$(document).on('pjax:timeout', function (event) {\n    event.preventDefault();\n})\n\n$(document).on('submit', 'form[pjax-container]', function (event) {\n    $.pjax.submit(event, '#pjax-container')\n});\n\n$(document).on(\"pjax:popstate\", function () {\n\n    $(document).one(\"pjax:end\", function (event) {\n        $(event.target).find(\"script[data-exec-on-popstate]\").each(function () {\n            $.globalEval(this.text || this.textContent || this.innerHTML || '');\n        });\n    });\n});\n\n$(document).on('pjax:send', function (xhr) {\n    if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {\n        $submit_btn = $('form[pjax-container] :submit');\n        if ($submit_btn) {\n            $submit_btn.button('loading')\n        }\n    }\n    NProgress.start();\n});\n\n$(document).on('pjax:complete', function (xhr) {\n    if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {\n        $submit_btn = $('form[pjax-container] :submit');\n        if ($submit_btn) {\n            $submit_btn.button('reset')\n        }\n    }\n    NProgress.done();\n    $.admin.grid.selects = {};\n});\n\n$(document).click(function () {\n    $('.sidebar-form .dropdown-menu').hide();\n});\n\n$(function () {\n    $('.sidebar-menu li:not(.treeview) > a').on('click', function () {\n        var $parent = $(this).parent().addClass('active');\n        $parent.siblings('.treeview.active').find('> a').trigger('click');\n        $parent.siblings().removeClass('active').find('li').removeClass('active');\n    });\n    var menu = $('.sidebar-menu li > a[href=\"' + (location.pathname + location.search + location.hash) + '\"]').parent().addClass('active');\n    menu.parents('ul.treeview-menu').addClass('menu-open');\n    menu.parents('li.treeview').addClass('active');\n\n    $('[data-toggle=\"popover\"]').popover();\n\n    // Sidebar form autocomplete\n    $('.sidebar-form .autocomplete').on('keyup focus', function () {\n        var $menu = $('.sidebar-form .dropdown-menu');\n        var text = $(this).val();\n\n        if (text === '') {\n            $menu.hide();\n            return;\n        }\n\n        var regex = new RegExp(text, 'i');\n        var matched = false;\n\n        $menu.find('li').each(function () {\n            if (!regex.test($(this).find('a').text())) {\n                $(this).hide();\n            } else {\n                $(this).show();\n                matched = true;\n            }\n        });\n\n        if (matched) {\n            $menu.show();\n        }\n    }).click(function(event){\n        event.stopPropagation();\n    });\n\n    $('.sidebar-form .dropdown-menu li a').click(function (){\n        $('.sidebar-form .autocomplete').val($(this).text());\n    });\n});\n\n$(window).scroll(function() {\n    if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {\n        $('#totop').fadeIn(500);\n    } else {\n        $('#totop').fadeOut(500);\n    }\n});\n\n$('#totop').on('click', function (e) {\n    e.preventDefault();\n    $('html,body').animate({scrollTop: 0}, 500);\n});\n\n(function ($) {\n\n    var Grid = function () {\n        this.selects = {};\n    };\n\n    Grid.prototype.select = function (id) {\n        this.selects[id] = id;\n    };\n\n    Grid.prototype.unselect = function (id) {\n        delete this.selects[id];\n    };\n\n    Grid.prototype.selected = function () {\n        var rows = [];\n        $.each(this.selects, function (key, val) {\n            rows.push(key);\n        });\n\n        return rows;\n    };\n\n    $.fn.admin = LA;\n    $.admin = LA;\n    $.admin.swal = swal;\n    $.admin.toastr = toastr;\n    $.admin.grid = new Grid();\n\n    $.admin.reload = function () {\n        $.pjax.reload('#pjax-container');\n        $.admin.grid = new Grid();\n    };\n\n    $.admin.redirect = function (url) {\n        $.pjax({container:'#pjax-container', url: url });\n        $.admin.grid = new Grid();\n    };\n\n    $.admin.getToken = function () {\n        return $('meta[name=\"csrf-token\"]').attr('content');\n    };\n\n})(jQuery);\n"
  },
  {
    "path": "public/vendor/laravel-admin/nestable/jquery.nestable.js",
    "content": "/*!\n * Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/\n * Dual-licensed under the BSD or MIT licenses\n */\n;(function($, window, document, undefined)\n{\n    var hasTouch = 'ontouchstart' in document;\n\n    /**\n     * Detect CSS pointer-events property\n     * events are normally disabled on the dragging element to avoid conflicts\n     * https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js\n     */\n    var hasPointerEvents = (function()\n    {\n        var el    = document.createElement('div'),\n            docEl = document.documentElement;\n        if (!('pointerEvents' in el.style)) {\n            return false;\n        }\n        el.style.pointerEvents = 'auto';\n        el.style.pointerEvents = 'x';\n        docEl.appendChild(el);\n        var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto';\n        docEl.removeChild(el);\n        return !!supports;\n    })();\n\n    var defaults = {\n            listNodeName    : 'ol',\n            itemNodeName    : 'li',\n            rootClass       : 'dd',\n            listClass       : 'dd-list',\n            itemClass       : 'dd-item',\n            dragClass       : 'dd-dragel',\n            handleClass     : 'dd-handle',\n            collapsedClass  : 'dd-collapsed',\n            placeClass      : 'dd-placeholder',\n            noDragClass     : 'dd-nodrag',\n            emptyClass      : 'dd-empty',\n            expandBtnHTML   : '<button data-action=\"expand\" type=\"button\">Expand</button>',\n            collapseBtnHTML : '<button data-action=\"collapse\" type=\"button\">Collapse</button>',\n            group           : 0,\n            maxDepth        : 5,\n            threshold       : 20\n        };\n\n    function Plugin(element, options)\n    {\n        this.w  = $(document);\n        this.el = $(element);\n        this.options = $.extend({}, defaults, options);\n        this.init();\n    }\n\n    Plugin.prototype = {\n\n        init: function()\n        {\n            var list = this;\n\n            list.reset();\n\n            list.el.data('nestable-group', this.options.group);\n\n            list.placeEl = $('<div class=\"' + list.options.placeClass + '\"/>');\n\n            $.each(this.el.find(list.options.itemNodeName), function(k, el) {\n                list.setParent($(el));\n            });\n\n            list.el.on('click', 'button', function(e) {\n                if (list.dragEl) {\n                    return;\n                }\n                var target = $(e.currentTarget),\n                    action = target.data('action'),\n                    item   = target.parent(list.options.itemNodeName);\n                if (action === 'collapse') {\n                    list.collapseItem(item);\n                }\n                if (action === 'expand') {\n                    list.expandItem(item);\n                }\n            });\n\n            var onStartEvent = function(e)\n            {\n                var handle = $(e.target);\n                if (!handle.hasClass(list.options.handleClass)) {\n                    if (handle.closest('.' + list.options.noDragClass).length) {\n                        return;\n                    }\n                    handle = handle.closest('.' + list.options.handleClass);\n                }\n\n                if (!handle.length || list.dragEl) {\n                    return;\n                }\n\n                list.isTouch = /^touch/.test(e.type);\n                if (list.isTouch && e.touches.length !== 1) {\n                    return;\n                }\n\n                e.preventDefault();\n                list.dragStart(e.touches ? e.touches[0] : e);\n            };\n\n            var onMoveEvent = function(e)\n            {\n                if (list.dragEl) {\n                    e.preventDefault();\n                    list.dragMove(e.touches ? e.touches[0] : e);\n                }\n            };\n\n            var onEndEvent = function(e)\n            {\n                if (list.dragEl) {\n                    e.preventDefault();\n                    list.dragStop(e.touches ? e.touches[0] : e);\n                }\n            };\n\n            if (hasTouch) {\n                list.el[0].addEventListener('touchstart', onStartEvent, false);\n                window.addEventListener('touchmove', onMoveEvent, false);\n                window.addEventListener('touchend', onEndEvent, false);\n                window.addEventListener('touchcancel', onEndEvent, false);\n            }\n\n            list.el.on('mousedown', onStartEvent);\n            list.w.on('mousemove', onMoveEvent);\n            list.w.on('mouseup', onEndEvent);\n\n        },\n\n        serialize: function()\n        {\n            var data,\n                depth = 0,\n                list  = this;\n                step  = function(level, depth)\n                {\n                    var array = [ ],\n                        items = level.children(list.options.itemNodeName);\n                    items.each(function()\n                    {\n                        var li   = $(this),\n                            item = $.extend({}, li.data()),\n                            sub  = li.children(list.options.listNodeName);\n                        if (sub.length) {\n                            item.children = step(sub, depth + 1);\n                        }\n                        array.push(item);\n                    });\n                    return array;\n                };\n            data = step(list.el.find(list.options.listNodeName).first(), depth);\n            return data;\n        },\n\n        serialise: function()\n        {\n            return this.serialize();\n        },\n\n        reset: function()\n        {\n            this.mouse = {\n                offsetX   : 0,\n                offsetY   : 0,\n                startX    : 0,\n                startY    : 0,\n                lastX     : 0,\n                lastY     : 0,\n                nowX      : 0,\n                nowY      : 0,\n                distX     : 0,\n                distY     : 0,\n                dirAx     : 0,\n                dirX      : 0,\n                dirY      : 0,\n                lastDirX  : 0,\n                lastDirY  : 0,\n                distAxX   : 0,\n                distAxY   : 0\n            };\n            this.isTouch    = false;\n            this.moving     = false;\n            this.dragEl     = null;\n            this.dragRootEl = null;\n            this.dragDepth  = 0;\n            this.hasNewRoot = false;\n            this.pointEl    = null;\n        },\n\n        expandItem: function(li)\n        {\n            li.removeClass(this.options.collapsedClass);\n            li.children('[data-action=\"expand\"]').hide();\n            li.children('[data-action=\"collapse\"]').show();\n            li.children(this.options.listNodeName).show();\n        },\n\n        collapseItem: function(li)\n        {\n            var lists = li.children(this.options.listNodeName);\n            if (lists.length) {\n                li.addClass(this.options.collapsedClass);\n                li.children('[data-action=\"collapse\"]').hide();\n                li.children('[data-action=\"expand\"]').show();\n                li.children(this.options.listNodeName).hide();\n            }\n        },\n\n        expandAll: function()\n        {\n            var list = this;\n            list.el.find(list.options.itemNodeName).each(function() {\n                list.expandItem($(this));\n            });\n        },\n\n        collapseAll: function()\n        {\n            var list = this;\n            list.el.find(list.options.itemNodeName).each(function() {\n                list.collapseItem($(this));\n            });\n        },\n\n        setParent: function(li)\n        {\n            if (li.children(this.options.listNodeName).length) {\n                li.prepend($(this.options.expandBtnHTML));\n                li.prepend($(this.options.collapseBtnHTML));\n            }\n            li.children('[data-action=\"expand\"]').hide();\n        },\n\n        unsetParent: function(li)\n        {\n            li.removeClass(this.options.collapsedClass);\n            li.children('[data-action]').remove();\n            li.children(this.options.listNodeName).remove();\n        },\n\n        dragStart: function(e)\n        {\n            var mouse    = this.mouse,\n                target   = $(e.target),\n                dragItem = target.closest(this.options.itemNodeName);\n\n            this.placeEl.css('height', dragItem.height());\n\n            mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left;\n            mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top;\n            mouse.startX = mouse.lastX = e.pageX;\n            mouse.startY = mouse.lastY = e.pageY;\n\n            this.dragRootEl = this.el;\n\n            this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass);\n            this.dragEl.css('width', dragItem.width());\n\n            dragItem.after(this.placeEl);\n            dragItem[0].parentNode.removeChild(dragItem[0]);\n            dragItem.appendTo(this.dragEl);\n\n            $(document.body).append(this.dragEl);\n            this.dragEl.css({\n                'left' : e.pageX - mouse.offsetX,\n                'top'  : e.pageY - mouse.offsetY\n            });\n            // total depth of dragging item\n            var i, depth,\n                items = this.dragEl.find(this.options.itemNodeName);\n            for (i = 0; i < items.length; i++) {\n                depth = $(items[i]).parents(this.options.listNodeName).length;\n                if (depth > this.dragDepth) {\n                    this.dragDepth = depth;\n                }\n            }\n        },\n\n        dragStop: function(e)\n        {\n            var el = this.dragEl.children(this.options.itemNodeName).first();\n            el[0].parentNode.removeChild(el[0]);\n            this.placeEl.replaceWith(el);\n\n            this.dragEl.remove();\n            this.el.trigger('change');\n            if (this.hasNewRoot) {\n                this.dragRootEl.trigger('change');\n            }\n            this.reset();\n        },\n\n        dragMove: function(e)\n        {\n            var list, parent, prev, next, depth,\n                opt   = this.options,\n                mouse = this.mouse;\n\n            this.dragEl.css({\n                'left' : e.pageX - mouse.offsetX,\n                'top'  : e.pageY - mouse.offsetY\n            });\n\n            // mouse position last events\n            mouse.lastX = mouse.nowX;\n            mouse.lastY = mouse.nowY;\n            // mouse position this events\n            mouse.nowX  = e.pageX;\n            mouse.nowY  = e.pageY;\n            // distance mouse moved between events\n            mouse.distX = mouse.nowX - mouse.lastX;\n            mouse.distY = mouse.nowY - mouse.lastY;\n            // direction mouse was moving\n            mouse.lastDirX = mouse.dirX;\n            mouse.lastDirY = mouse.dirY;\n            // direction mouse is now moving (on both axis)\n            mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1;\n            mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1;\n            // axis mouse is now moving on\n            var newAx   = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0;\n\n            // do nothing on first move\n            if (!mouse.moving) {\n                mouse.dirAx  = newAx;\n                mouse.moving = true;\n                return;\n            }\n\n            // calc distance moved on this axis (and direction)\n            if (mouse.dirAx !== newAx) {\n                mouse.distAxX = 0;\n                mouse.distAxY = 0;\n            } else {\n                mouse.distAxX += Math.abs(mouse.distX);\n                if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) {\n                    mouse.distAxX = 0;\n                }\n                mouse.distAxY += Math.abs(mouse.distY);\n                if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) {\n                    mouse.distAxY = 0;\n                }\n            }\n            mouse.dirAx = newAx;\n\n            /**\n             * move horizontal\n             */\n            if (mouse.dirAx && mouse.distAxX >= opt.threshold) {\n                // reset move distance on x-axis for new phase\n                mouse.distAxX = 0;\n                prev = this.placeEl.prev(opt.itemNodeName);\n                // increase horizontal level if previous sibling exists and is not collapsed\n                if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass)) {\n                    // cannot increase level when item above is collapsed\n                    list = prev.find(opt.listNodeName).last();\n                    // check if depth limit has reached\n                    depth = this.placeEl.parents(opt.listNodeName).length;\n                    if (depth + this.dragDepth <= opt.maxDepth) {\n                        // create new sub-level if one doesn't exist\n                        if (!list.length) {\n                            list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass);\n                            list.append(this.placeEl);\n                            prev.append(list);\n                            this.setParent(prev);\n                        } else {\n                            // else append to next level up\n                            list = prev.children(opt.listNodeName).last();\n                            list.append(this.placeEl);\n                        }\n                    }\n                }\n                // decrease horizontal level\n                if (mouse.distX < 0) {\n                    // we can't decrease a level if an item preceeds the current one\n                    next = this.placeEl.next(opt.itemNodeName);\n                    if (!next.length) {\n                        parent = this.placeEl.parent();\n                        this.placeEl.closest(opt.itemNodeName).after(this.placeEl);\n                        if (!parent.children().length) {\n                            this.unsetParent(parent.parent());\n                        }\n                    }\n                }\n            }\n\n            var isEmpty = false;\n\n            // find list item under cursor\n            if (!hasPointerEvents) {\n                this.dragEl[0].style.visibility = 'hidden';\n            }\n            this.pointEl = $(document.elementFromPoint(e.pageX - document.body.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop)));\n            if (!hasPointerEvents) {\n                this.dragEl[0].style.visibility = 'visible';\n            }\n            if (this.pointEl.hasClass(opt.handleClass)) {\n                this.pointEl = this.pointEl.parent(opt.itemNodeName);\n            }\n            if (this.pointEl.hasClass(opt.emptyClass)) {\n                isEmpty = true;\n            }\n            else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) {\n                return;\n            }\n\n            // find parent list of item under cursor\n            var pointElRoot = this.pointEl.closest('.' + opt.rootClass),\n                isNewRoot   = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id');\n\n            /**\n             * move vertical\n             */\n            if (!mouse.dirAx || isNewRoot || isEmpty) {\n                // check if groups match if dragging over new root\n                if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) {\n                    return;\n                }\n                // check depth limit\n                depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length;\n                if (depth > opt.maxDepth) {\n                    return;\n                }\n                var before = e.pageY < (this.pointEl.offset().top + this.pointEl.height() / 2);\n                    parent = this.placeEl.parent();\n                // if empty create new list to replace empty placeholder\n                if (isEmpty) {\n                    list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass);\n                    list.append(this.placeEl);\n                    this.pointEl.replaceWith(list);\n                }\n                else if (before) {\n                    this.pointEl.before(this.placeEl);\n                }\n                else {\n                    this.pointEl.after(this.placeEl);\n                }\n                if (!parent.children().length) {\n                    this.unsetParent(parent.parent());\n                }\n                if (!this.dragRootEl.find(opt.itemNodeName).length) {\n                    this.dragRootEl.append('<div class=\"' + opt.emptyClass + '\"/>');\n                }\n                // parent root list has changed\n                if (isNewRoot) {\n                    this.dragRootEl = pointElRoot;\n                    this.hasNewRoot = this.el[0] !== this.dragRootEl[0];\n                }\n            }\n        }\n\n    };\n\n    $.fn.nestable = function(params)\n    {\n        var lists  = this,\n            retval = this;\n\n        lists.each(function()\n        {\n            var plugin = $(this).data(\"nestable\");\n\n            if (!plugin) {\n                $(this).data(\"nestable\", new Plugin(this, params));\n                $(this).data(\"nestable-id\", new Date().getTime());\n            } else {\n                if (typeof params === 'string' && typeof plugin[params] === 'function') {\n                    retval = plugin[params]();\n                }\n            }\n        });\n\n        return retval || lists;\n    };\n\n})(window.jQuery || window.Zepto, window, document);\n"
  },
  {
    "path": "public/vendor/laravel-admin/nestable/nestable.css",
    "content": ".dd { position: relative; display: block; margin: 10px; padding: 0; list-style: none; font-size: 13px; line-height: 20px; }\n\n.dd-list { display: block; position: relative; margin: 0; padding: 0; list-style: none; }\n.dd-list .dd-list { padding-left: 30px; }\n.dd-collapsed .dd-list { display: none; }\n\n.dd-item,\n.dd-empty,\n.dd-placeholder { display: block; position: relative; margin: 0; padding: 0;}\n\n.dd-handle {\n    display: block;\n\n    margin: 1px 0;\n    padding: 8px 10px;\n    color: #333;\n    text-decoration: none;\n    border: 1px solid #ddd;\n    background: #fff;\n}\n.dd-handle:hover { color: #2ea8e5; background: #fff; }\n\n.dd-item > button { display: block; position: relative; cursor: pointer; float: left; width: 25px; height: 20px; margin: 5px 0; padding: 0; text-indent: 100%; white-space: nowrap; overflow: hidden; border: 0; background: transparent; font-size: 12px; line-height: 1; text-align: center; font-weight: bold; }\n.dd-item > button:before { content: '+'; display: block; position: absolute; width: 100%; text-align: center; text-indent: 0; }\n.dd-item > button[data-action=\"collapse\"]:before { content: '-'; }\n\n.dd-placeholder { margin: 5px 0; padding: 0; min-height: 30px; background: #f2fbff; border: 1px dashed #b6bcbf; box-sizing: border-box; -moz-box-sizing: border-box; }\n\n.dd-dragel { position: absolute; pointer-events: none; z-index: 9999; }\n.dd-dragel > .dd-item .dd-handle { margin-top: 0; }\n.dd-dragel .dd-handle {\n-webkit-box-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);\nbox-shadow: 2px 4px 6px 0 rgba(0,0,0,.1);\n}"
  },
  {
    "path": "public/vendor/laravel-admin/nprogress/nprogress.css",
    "content": "/* Make clicks pass-through */\n#nprogress {\n  pointer-events: none;\n}\n\n#nprogress .bar {\n  background: #dd441f;\n\n  position: fixed;\n  z-index: 1031;\n  top: 0;\n  left: 0;\n\n  width: 100%;\n  height: 2px;\n}\n\n/* Fancy blur effect */\n#nprogress .peg {\n  display: block;\n  position: absolute;\n  right: 0px;\n  width: 100px;\n  height: 100%;\n  box-shadow: 0 0 10px #29d, 0 0 5px #29d;\n  opacity: 1.0;\n\n  -webkit-transform: rotate(3deg) translate(0px, -4px);\n      -ms-transform: rotate(3deg) translate(0px, -4px);\n          transform: rotate(3deg) translate(0px, -4px);\n}\n\n/* Remove these to get rid of the spinner */\n#nprogress .spinner {\n  display: block;\n  position: fixed;\n  z-index: 1031;\n  top: 15px;\n  right: 15px;\n}\n\n#nprogress .spinner-icon {\n  width: 18px;\n  height: 18px;\n  box-sizing: border-box;\n\n  border: solid 2px transparent;\n  border-top-color: #29d;\n  border-left-color: #29d;\n  border-radius: 50%;\n\n  -webkit-animation: nprogress-spinner 400ms linear infinite;\n          animation: nprogress-spinner 400ms linear infinite;\n}\n\n.nprogress-custom-parent {\n  overflow: hidden;\n  position: relative;\n}\n\n.nprogress-custom-parent #nprogress .spinner,\n.nprogress-custom-parent #nprogress .bar {\n  position: absolute;\n}\n\n@-webkit-keyframes nprogress-spinner {\n  0%   { -webkit-transform: rotate(0deg); }\n  100% { -webkit-transform: rotate(360deg); }\n}\n@keyframes nprogress-spinner {\n  0%   { transform: rotate(0deg); }\n  100% { transform: rotate(360deg); }\n}\n\n"
  },
  {
    "path": "public/vendor/laravel-admin/nprogress/nprogress.js",
    "content": "/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n  if (typeof define === 'function' && define.amd) {\n    define(factory);\n  } else if (typeof exports === 'object') {\n    module.exports = factory();\n  } else {\n    root.NProgress = factory();\n  }\n\n})(this, function() {\n  var NProgress = {};\n\n  NProgress.version = '0.2.0';\n\n  var Settings = NProgress.settings = {\n    minimum: 0.08,\n    easing: 'ease',\n    positionUsing: '',\n    speed: 200,\n    trickle: true,\n    trickleRate: 0.02,\n    trickleSpeed: 800,\n    showSpinner: true,\n    barSelector: '[role=\"bar\"]',\n    spinnerSelector: '[role=\"spinner\"]',\n    parent: 'body',\n    template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n  };\n\n  /**\n   * Updates configuration.\n   *\n   *     NProgress.configure({\n   *       minimum: 0.1\n   *     });\n   */\n  NProgress.configure = function(options) {\n    var key, value;\n    for (key in options) {\n      value = options[key];\n      if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n    }\n\n    return this;\n  };\n\n  /**\n   * Last number.\n   */\n\n  NProgress.status = null;\n\n  /**\n   * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n   *\n   *     NProgress.set(0.4);\n   *     NProgress.set(1.0);\n   */\n\n  NProgress.set = function(n) {\n    var started = NProgress.isStarted();\n\n    n = clamp(n, Settings.minimum, 1);\n    NProgress.status = (n === 1 ? null : n);\n\n    var progress = NProgress.render(!started),\n        bar      = progress.querySelector(Settings.barSelector),\n        speed    = Settings.speed,\n        ease     = Settings.easing;\n\n    progress.offsetWidth; /* Repaint */\n\n    queue(function(next) {\n      // Set positionUsing if it hasn't already been set\n      if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n      // Add transition\n      css(bar, barPositionCSS(n, speed, ease));\n\n      if (n === 1) {\n        // Fade out\n        css(progress, { \n          transition: 'none', \n          opacity: 1 \n        });\n        progress.offsetWidth; /* Repaint */\n\n        setTimeout(function() {\n          css(progress, { \n            transition: 'all ' + speed + 'ms linear', \n            opacity: 0 \n          });\n          setTimeout(function() {\n            NProgress.remove();\n            next();\n          }, speed);\n        }, speed);\n      } else {\n        setTimeout(next, speed);\n      }\n    });\n\n    return this;\n  };\n\n  NProgress.isStarted = function() {\n    return typeof NProgress.status === 'number';\n  };\n\n  /**\n   * Shows the progress bar.\n   * This is the same as setting the status to 0%, except that it doesn't go backwards.\n   *\n   *     NProgress.start();\n   *\n   */\n  NProgress.start = function() {\n    if (!NProgress.status) NProgress.set(0);\n\n    var work = function() {\n      setTimeout(function() {\n        if (!NProgress.status) return;\n        NProgress.trickle();\n        work();\n      }, Settings.trickleSpeed);\n    };\n\n    if (Settings.trickle) work();\n\n    return this;\n  };\n\n  /**\n   * Hides the progress bar.\n   * This is the *sort of* the same as setting the status to 100%, with the\n   * difference being `done()` makes some placebo effect of some realistic motion.\n   *\n   *     NProgress.done();\n   *\n   * If `true` is passed, it will show the progress bar even if its hidden.\n   *\n   *     NProgress.done(true);\n   */\n\n  NProgress.done = function(force) {\n    if (!force && !NProgress.status) return this;\n\n    return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n  };\n\n  /**\n   * Increments by a random amount.\n   */\n\n  NProgress.inc = function(amount) {\n    var n = NProgress.status;\n\n    if (!n) {\n      return NProgress.start();\n    } else {\n      if (typeof amount !== 'number') {\n        amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n      }\n\n      n = clamp(n + amount, 0, 0.994);\n      return NProgress.set(n);\n    }\n  };\n\n  NProgress.trickle = function() {\n    return NProgress.inc(Math.random() * Settings.trickleRate);\n  };\n\n  /**\n   * Waits for all supplied jQuery promises and\n   * increases the progress as the promises resolve.\n   *\n   * @param $promise jQUery Promise\n   */\n  (function() {\n    var initial = 0, current = 0;\n\n    NProgress.promise = function($promise) {\n      if (!$promise || $promise.state() === \"resolved\") {\n        return this;\n      }\n\n      if (current === 0) {\n        NProgress.start();\n      }\n\n      initial++;\n      current++;\n\n      $promise.always(function() {\n        current--;\n        if (current === 0) {\n            initial = 0;\n            NProgress.done();\n        } else {\n            NProgress.set((initial - current) / initial);\n        }\n      });\n\n      return this;\n    };\n\n  })();\n\n  /**\n   * (Internal) renders the progress bar markup based on the `template`\n   * setting.\n   */\n\n  NProgress.render = function(fromStart) {\n    if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n    addClass(document.documentElement, 'nprogress-busy');\n    \n    var progress = document.createElement('div');\n    progress.id = 'nprogress';\n    progress.innerHTML = Settings.template;\n\n    var bar      = progress.querySelector(Settings.barSelector),\n        perc     = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n        parent   = document.querySelector(Settings.parent),\n        spinner;\n    \n    css(bar, {\n      transition: 'all 0 linear',\n      transform: 'translate3d(' + perc + '%,0,0)'\n    });\n\n    if (!Settings.showSpinner) {\n      spinner = progress.querySelector(Settings.spinnerSelector);\n      spinner && removeElement(spinner);\n    }\n\n    if (parent != document.body) {\n      addClass(parent, 'nprogress-custom-parent');\n    }\n\n    parent.appendChild(progress);\n    return progress;\n  };\n\n  /**\n   * Removes the element. Opposite of render().\n   */\n\n  NProgress.remove = function() {\n    removeClass(document.documentElement, 'nprogress-busy');\n    removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n    var progress = document.getElementById('nprogress');\n    progress && removeElement(progress);\n  };\n\n  /**\n   * Checks if the progress bar is rendered.\n   */\n\n  NProgress.isRendered = function() {\n    return !!document.getElementById('nprogress');\n  };\n\n  /**\n   * Determine which positioning CSS rule to use.\n   */\n\n  NProgress.getPositioningCSS = function() {\n    // Sniff on document.body.style\n    var bodyStyle = document.body.style;\n\n    // Sniff prefixes\n    var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n                       ('MozTransform' in bodyStyle) ? 'Moz' :\n                       ('msTransform' in bodyStyle) ? 'ms' :\n                       ('OTransform' in bodyStyle) ? 'O' : '';\n\n    if (vendorPrefix + 'Perspective' in bodyStyle) {\n      // Modern browsers with 3D support, e.g. Webkit, IE10\n      return 'translate3d';\n    } else if (vendorPrefix + 'Transform' in bodyStyle) {\n      // Browsers without 3D support, e.g. IE9\n      return 'translate';\n    } else {\n      // Browsers without translate() support, e.g. IE7-8\n      return 'margin';\n    }\n  };\n\n  /**\n   * Helpers\n   */\n\n  function clamp(n, min, max) {\n    if (n < min) return min;\n    if (n > max) return max;\n    return n;\n  }\n\n  /**\n   * (Internal) converts a percentage (`0..1`) to a bar translateX\n   * percentage (`-100%..0%`).\n   */\n\n  function toBarPerc(n) {\n    return (-1 + n) * 100;\n  }\n\n\n  /**\n   * (Internal) returns the correct CSS for changing the bar's\n   * position given an n percentage, and speed and ease from Settings\n   */\n\n  function barPositionCSS(n, speed, ease) {\n    var barCSS;\n\n    if (Settings.positionUsing === 'translate3d') {\n      barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n    } else if (Settings.positionUsing === 'translate') {\n      barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n    } else {\n      barCSS = { 'margin-left': toBarPerc(n)+'%' };\n    }\n\n    barCSS.transition = 'all '+speed+'ms '+ease;\n\n    return barCSS;\n  }\n\n  /**\n   * (Internal) Queues a function to be executed.\n   */\n\n  var queue = (function() {\n    var pending = [];\n    \n    function next() {\n      var fn = pending.shift();\n      if (fn) {\n        fn(next);\n      }\n    }\n\n    return function(fn) {\n      pending.push(fn);\n      if (pending.length == 1) next();\n    };\n  })();\n\n  /**\n   * (Internal) Applies css properties to an element, similar to the jQuery \n   * css method.\n   *\n   * While this helper does assist with vendor prefixed property names, it \n   * does not perform any manipulation of values prior to setting styles.\n   */\n\n  var css = (function() {\n    var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n        cssProps    = {};\n\n    function camelCase(string) {\n      return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n        return letter.toUpperCase();\n      });\n    }\n\n    function getVendorProp(name) {\n      var style = document.body.style;\n      if (name in style) return name;\n\n      var i = cssPrefixes.length,\n          capName = name.charAt(0).toUpperCase() + name.slice(1),\n          vendorName;\n      while (i--) {\n        vendorName = cssPrefixes[i] + capName;\n        if (vendorName in style) return vendorName;\n      }\n\n      return name;\n    }\n\n    function getStyleProp(name) {\n      name = camelCase(name);\n      return cssProps[name] || (cssProps[name] = getVendorProp(name));\n    }\n\n    function applyCss(element, prop, value) {\n      prop = getStyleProp(prop);\n      element.style[prop] = value;\n    }\n\n    return function(element, properties) {\n      var args = arguments,\n          prop, \n          value;\n\n      if (args.length == 2) {\n        for (prop in properties) {\n          value = properties[prop];\n          if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n        }\n      } else {\n        applyCss(element, args[1], args[2]);\n      }\n    }\n  })();\n\n  /**\n   * (Internal) Determines if an element or space separated list of class names contains a class name.\n   */\n\n  function hasClass(element, name) {\n    var list = typeof element == 'string' ? element : classList(element);\n    return list.indexOf(' ' + name + ' ') >= 0;\n  }\n\n  /**\n   * (Internal) Adds a class to an element.\n   */\n\n  function addClass(element, name) {\n    var oldList = classList(element),\n        newList = oldList + name;\n\n    if (hasClass(oldList, name)) return; \n\n    // Trim the opening space.\n    element.className = newList.substring(1);\n  }\n\n  /**\n   * (Internal) Removes a class from an element.\n   */\n\n  function removeClass(element, name) {\n    var oldList = classList(element),\n        newList;\n\n    if (!hasClass(element, name)) return;\n\n    // Replace the class name.\n    newList = oldList.replace(' ' + name + ' ', ' ');\n\n    // Trim the opening and closing spaces.\n    element.className = newList.substring(1, newList.length - 1);\n  }\n\n  /**\n   * (Internal) Gets a space separated list of the class names on the element. \n   * The list is wrapped with a single space on each end to facilitate finding \n   * matches within the list.\n   */\n\n  function classList(element) {\n    return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n  }\n\n  /**\n   * (Internal) Removes an element from the DOM.\n   */\n\n  function removeElement(element) {\n    element && element.parentNode && element.parentNode.removeChild(element);\n  }\n\n  return NProgress;\n});\n\n"
  },
  {
    "path": "public/vendor/laravel-admin/number-input/bootstrap-number-input.js",
    "content": "/* ========================================================================\n * bootstrap-spin - v1.0\n * https://github.com/wpic/bootstrap-spin\n * ========================================================================\n * Copyright 2014 WPIC, Hamed Abdollahpour\n *\n * ========================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================================\n */\n\n(function ($) {\n\n    $.fn.bootstrapNumber = function (options) {\n\n        var settings = $.extend({\n            upClass: 'default',\n            downClass: 'default',\n            center: true\n        }, options);\n\n        return this.each(function (e) {\n            var self = $(this);\n            var clone = self.clone();\n\n            var min = self.attr('min');\n            var max = self.attr('max');\n\n            function setText(n) {\n                if ((min && n < min) || (max && n > max)) {\n                    return false;\n                }\n\n                clone.focus().val(n);\n                return true;\n            }\n\n            var group = $(\"<div class='input-group'></div>\");\n            var down = $(\"<button type='button'>-</button>\").attr('class', 'btn btn-' + settings.downClass).click(function () {\n                setText(parseInt(clone.val()) - 1);\n            });\n            var up = $(\"<button type='button'>+</button>\").attr('class', 'btn btn-' + settings.upClass).click(function () {\n                setText(parseInt(clone.val()) + 1);\n            });\n            $(\"<span class='input-group-btn'></span>\").append(down).appendTo(group);\n            clone.appendTo(group);\n            if (clone) {\n                clone.css('text-align', 'center');\n            }\n            $(\"<span class='input-group-btn'></span>\").append(up).appendTo(group);\n\n            // remove spins from original\n            clone.prop('type', 'text').keydown(function (e) {\n                if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||\n\t\t\t\t\t(e.keyCode == 65 && e.ctrlKey === true) ||\n\t\t\t\t\t(e.keyCode >= 35 && e.keyCode <= 39)) {\n                    return;\n                }\n                if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n                    e.preventDefault();\n                }\n\n                var c = String.fromCharCode(e.which);\n                var n = parseInt(clone.val() + c);\n\n                //if ((min && n < min) || (max && n > max)) {\n                //    e.preventDefault();\n                //}\n            });\n\n            clone.prop('type', 'text').blur(function (e) {\n                var c = String.fromCharCode(e.which);\n                var n = parseInt(clone.val() + c);\n                if ((min && n < min)) {\n                    setText(min);\n                }\n                else if (max && n > max) {\n                    setText(max);\n                }\n            });\n\n\n            self.replaceWith(group);\n        });\n    };\n}(jQuery));\n"
  },
  {
    "path": "public/vendor/laravel-admin/sweetalert2/dist/sweetalert2.css",
    "content": "@-webkit-keyframes swal2-show {\n  0% {\n    -webkit-transform: scale(0.7);\n            transform: scale(0.7); }\n  45% {\n    -webkit-transform: scale(1.05);\n            transform: scale(1.05); }\n  80% {\n    -webkit-transform: scale(0.95);\n            transform: scale(0.95); }\n  100% {\n    -webkit-transform: scale(1);\n            transform: scale(1); } }\n\n@keyframes swal2-show {\n  0% {\n    -webkit-transform: scale(0.7);\n            transform: scale(0.7); }\n  45% {\n    -webkit-transform: scale(1.05);\n            transform: scale(1.05); }\n  80% {\n    -webkit-transform: scale(0.95);\n            transform: scale(0.95); }\n  100% {\n    -webkit-transform: scale(1);\n            transform: scale(1); } }\n\n@-webkit-keyframes swal2-hide {\n  0% {\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; }\n  100% {\n    -webkit-transform: scale(0.5);\n            transform: scale(0.5);\n    opacity: 0; } }\n\n@keyframes swal2-hide {\n  0% {\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; }\n  100% {\n    -webkit-transform: scale(0.5);\n            transform: scale(0.5);\n    opacity: 0; } }\n\n@-webkit-keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: 1.0625em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: 2.1875em;\n    left: -.375em;\n    width: 3.125em; }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em; }\n  100% {\n    top: 2.8125em;\n    left: .875em;\n    width: 1.5625em; } }\n\n@keyframes swal2-animate-success-line-tip {\n  0% {\n    top: 1.1875em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: 1.0625em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: 2.1875em;\n    left: -.375em;\n    width: 3.125em; }\n  84% {\n    top: 3em;\n    left: 1.3125em;\n    width: 1.0625em; }\n  100% {\n    top: 2.8125em;\n    left: .875em;\n    width: 1.5625em; } }\n\n@-webkit-keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em; }\n  100% {\n    top: 2.375em;\n    right: .5em;\n    width: 2.9375em; } }\n\n@keyframes swal2-animate-success-line-long {\n  0% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  65% {\n    top: 3.375em;\n    right: 2.875em;\n    width: 0; }\n  84% {\n    top: 2.1875em;\n    right: 0;\n    width: 3.4375em; }\n  100% {\n    top: 2.375em;\n    right: .5em;\n    width: 2.9375em; } }\n\n@-webkit-keyframes swal2-rotate-success-circular-line {\n  0% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  5% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  12% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); }\n  100% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); } }\n\n@keyframes swal2-rotate-success-circular-line {\n  0% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  5% {\n    -webkit-transform: rotate(-45deg);\n            transform: rotate(-45deg); }\n  12% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); }\n  100% {\n    -webkit-transform: rotate(-405deg);\n            transform: rotate(-405deg); } }\n\n@-webkit-keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 1.625em;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -.375em;\n    -webkit-transform: scale(1.15);\n            transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-x-mark {\n  0% {\n    margin-top: 1.625em;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  50% {\n    margin-top: 1.625em;\n    -webkit-transform: scale(0.4);\n            transform: scale(0.4);\n    opacity: 0; }\n  80% {\n    margin-top: -.375em;\n    -webkit-transform: scale(1.15);\n            transform: scale(1.15); }\n  100% {\n    margin-top: 0;\n    -webkit-transform: scale(1);\n            transform: scale(1);\n    opacity: 1; } }\n\n@-webkit-keyframes swal2-animate-error-icon {\n  0% {\n    -webkit-transform: rotateX(100deg);\n            transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    -webkit-transform: rotateX(0deg);\n            transform: rotateX(0deg);\n    opacity: 1; } }\n\n@keyframes swal2-animate-error-icon {\n  0% {\n    -webkit-transform: rotateX(100deg);\n            transform: rotateX(100deg);\n    opacity: 0; }\n  100% {\n    -webkit-transform: rotateX(0deg);\n            transform: rotateX(0deg);\n    opacity: 1; } }\n\nbody.swal2-toast-shown .swal2-container {\n  position: fixed;\n  background-color: transparent; }\n  body.swal2-toast-shown .swal2-container.swal2-shown {\n    background-color: transparent; }\n  body.swal2-toast-shown .swal2-container.swal2-top {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right {\n    top: 0;\n    right: 0;\n    bottom: auto;\n    left: auto; }\n  body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left {\n    top: 0;\n    right: auto;\n    bottom: auto;\n    left: 0; }\n  body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-center {\n    top: 50%;\n    right: auto;\n    bottom: auto;\n    left: 50%;\n    -webkit-transform: translate(-50%, -50%);\n            transform: translate(-50%, -50%); }\n  body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right {\n    top: 50%;\n    right: 0;\n    bottom: auto;\n    left: auto;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 0; }\n  body.swal2-toast-shown .swal2-container.swal2-bottom {\n    top: auto;\n    right: auto;\n    bottom: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right {\n    top: auto;\n    right: 0;\n    bottom: 0;\n    left: auto; }\n\nbody.swal2-toast-column .swal2-toast {\n  flex-direction: column;\n  align-items: stretch; }\n  body.swal2-toast-column .swal2-toast .swal2-actions {\n    flex: 1;\n    align-self: stretch;\n    height: 2.2em;\n    margin-top: .3125em; }\n  body.swal2-toast-column .swal2-toast .swal2-loading {\n    justify-content: center; }\n  body.swal2-toast-column .swal2-toast .swal2-input {\n    height: 2em;\n    margin: .3125em auto;\n    font-size: 1em; }\n  body.swal2-toast-column .swal2-toast .swal2-validationerror {\n    font-size: 1em; }\n\n.swal2-popup.swal2-toast {\n  flex-direction: row;\n  align-items: center;\n  width: auto;\n  padding: 0.625em;\n  box-shadow: 0 0 0.625em #d9d9d9;\n  overflow-y: hidden; }\n  .swal2-popup.swal2-toast .swal2-header {\n    flex-direction: row; }\n  .swal2-popup.swal2-toast .swal2-title {\n    flex-grow: 1;\n    justify-content: flex-start;\n    margin: 0 .6em;\n    font-size: 1em; }\n  .swal2-popup.swal2-toast .swal2-footer {\n    margin: 0.5em 0 0;\n    padding: 0.5em 0 0;\n    font-size: 0.8em; }\n  .swal2-popup.swal2-toast .swal2-close {\n    position: initial;\n    width: 0.8em;\n    height: 0.8em;\n    line-height: 0.8; }\n  .swal2-popup.swal2-toast .swal2-content {\n    justify-content: flex-start;\n    font-size: 1em; }\n  .swal2-popup.swal2-toast .swal2-icon {\n    width: 2em;\n    min-width: 2em;\n    height: 2em;\n    margin: 0; }\n    .swal2-popup.swal2-toast .swal2-icon-text {\n      font-size: 2em;\n      font-weight: bold;\n      line-height: 1em; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n      width: 2em;\n      height: 2em; }\n    .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      top: .875em;\n      width: 1.375em; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: .3125em; }\n      .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: .3125em; }\n  .swal2-popup.swal2-toast .swal2-actions {\n    height: auto;\n    margin: 0 .3125em; }\n  .swal2-popup.swal2-toast .swal2-styled {\n    margin: 0 .3125em;\n    padding: .3125em .625em;\n    font-size: 1em; }\n    .swal2-popup.swal2-toast .swal2-styled:focus {\n      box-shadow: 0 0 0 0.0625em #fff, 0 0 0 0.125em rgba(50, 100, 150, 0.4); }\n  .swal2-popup.swal2-toast .swal2-success {\n    border-color: #a5dc86; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 2em;\n      height: 2.8125em;\n      -webkit-transform: rotate(45deg);\n              transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -.25em;\n        left: -.9375em;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 2em 2em;\n                transform-origin: 2em 2em;\n        border-radius: 4em 0 0 4em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -.25em;\n        left: .9375em;\n        -webkit-transform-origin: 0 2em;\n                transform-origin: 0 2em;\n        border-radius: 0 4em 4em 0; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n      width: 2em;\n      height: 2em; }\n    .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n      top: 0;\n      left: .4375em;\n      width: .4375em;\n      height: 2.6875em; }\n    .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n      height: .3125em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 1.125em;\n        left: .1875em;\n        width: .75em; }\n      .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: .9375em;\n        right: .1875em;\n        width: 1.375em; }\n  .swal2-popup.swal2-toast.swal2-show {\n    -webkit-animation: showSweetToast .5s;\n            animation: showSweetToast .5s; }\n  .swal2-popup.swal2-toast.swal2-hide {\n    -webkit-animation: hideSweetToast .2s forwards;\n            animation: hideSweetToast .2s forwards; }\n  .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip {\n    -webkit-animation: animate-toast-success-tip .75s;\n            animation: animate-toast-success-tip .75s; }\n  .swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long {\n    -webkit-animation: animate-toast-success-long .75s;\n            animation: animate-toast-success-long .75s; }\n\n@-webkit-keyframes showSweetToast {\n  0% {\n    -webkit-transform: translateY(-0.625em) rotateZ(2deg);\n            transform: translateY(-0.625em) rotateZ(2deg);\n    opacity: 0; }\n  33% {\n    -webkit-transform: translateY(0) rotateZ(-2deg);\n            transform: translateY(0) rotateZ(-2deg);\n    opacity: .5; }\n  66% {\n    -webkit-transform: translateY(0.3125em) rotateZ(2deg);\n            transform: translateY(0.3125em) rotateZ(2deg);\n    opacity: .7; }\n  100% {\n    -webkit-transform: translateY(0) rotateZ(0);\n            transform: translateY(0) rotateZ(0);\n    opacity: 1; } }\n\n@keyframes showSweetToast {\n  0% {\n    -webkit-transform: translateY(-0.625em) rotateZ(2deg);\n            transform: translateY(-0.625em) rotateZ(2deg);\n    opacity: 0; }\n  33% {\n    -webkit-transform: translateY(0) rotateZ(-2deg);\n            transform: translateY(0) rotateZ(-2deg);\n    opacity: .5; }\n  66% {\n    -webkit-transform: translateY(0.3125em) rotateZ(2deg);\n            transform: translateY(0.3125em) rotateZ(2deg);\n    opacity: .7; }\n  100% {\n    -webkit-transform: translateY(0) rotateZ(0);\n            transform: translateY(0) rotateZ(0);\n    opacity: 1; } }\n\n@-webkit-keyframes hideSweetToast {\n  0% {\n    opacity: 1; }\n  33% {\n    opacity: .5; }\n  100% {\n    -webkit-transform: rotateZ(1deg);\n            transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@keyframes hideSweetToast {\n  0% {\n    opacity: 1; }\n  33% {\n    opacity: .5; }\n  100% {\n    -webkit-transform: rotateZ(1deg);\n            transform: rotateZ(1deg);\n    opacity: 0; } }\n\n@-webkit-keyframes animate-toast-success-tip {\n  0% {\n    top: .5625em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: .125em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: .625em;\n    left: -.25em;\n    width: 1.625em; }\n  84% {\n    top: 1.0625em;\n    left: .75em;\n    width: .5em; }\n  100% {\n    top: 1.125em;\n    left: .1875em;\n    width: .75em; } }\n\n@keyframes animate-toast-success-tip {\n  0% {\n    top: .5625em;\n    left: .0625em;\n    width: 0; }\n  54% {\n    top: .125em;\n    left: .125em;\n    width: 0; }\n  70% {\n    top: .625em;\n    left: -.25em;\n    width: 1.625em; }\n  84% {\n    top: 1.0625em;\n    left: .75em;\n    width: .5em; }\n  100% {\n    top: 1.125em;\n    left: .1875em;\n    width: .75em; } }\n\n@-webkit-keyframes animate-toast-success-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0; }\n  65% {\n    top: 1.25em;\n    right: .9375em;\n    width: 0; }\n  84% {\n    top: .9375em;\n    right: 0;\n    width: 1.125em; }\n  100% {\n    top: .9375em;\n    right: .1875em;\n    width: 1.375em; } }\n\n@keyframes animate-toast-success-long {\n  0% {\n    top: 1.625em;\n    right: 1.375em;\n    width: 0; }\n  65% {\n    top: 1.25em;\n    right: .9375em;\n    width: 0; }\n  84% {\n    top: .9375em;\n    right: 0;\n    width: 1.125em; }\n  100% {\n    top: .9375em;\n    right: .1875em;\n    width: 1.375em; } }\n\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n  overflow-y: hidden; }\n\nbody.swal2-height-auto {\n  height: auto !important; }\n\nbody.swal2-no-backdrop .swal2-shown {\n  top: auto;\n  right: auto;\n  bottom: auto;\n  left: auto;\n  background-color: transparent; }\n  body.swal2-no-backdrop .swal2-shown > .swal2-modal {\n    box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n  body.swal2-no-backdrop .swal2-shown.swal2-top {\n    top: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-top-start, body.swal2-no-backdrop .swal2-shown.swal2-top-left {\n    top: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-top-end, body.swal2-no-backdrop .swal2-shown.swal2-top-right {\n    top: 0;\n    right: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-center {\n    top: 50%;\n    left: 50%;\n    -webkit-transform: translate(-50%, -50%);\n            transform: translate(-50%, -50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-center-start, body.swal2-no-backdrop .swal2-shown.swal2-center-left {\n    top: 50%;\n    left: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-center-end, body.swal2-no-backdrop .swal2-shown.swal2-center-right {\n    top: 50%;\n    right: 0;\n    -webkit-transform: translateY(-50%);\n            transform: translateY(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom {\n    bottom: 0;\n    left: 50%;\n    -webkit-transform: translateX(-50%);\n            transform: translateX(-50%); }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop .swal2-shown.swal2-bottom-left {\n    bottom: 0;\n    left: 0; }\n  body.swal2-no-backdrop .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop .swal2-shown.swal2-bottom-right {\n    right: 0;\n    bottom: 0; }\n\n.swal2-container {\n  display: flex;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  padding: 10px;\n  background-color: transparent;\n  z-index: 1060;\n  overflow-x: hidden;\n  -webkit-overflow-scrolling: touch; }\n  .swal2-container.swal2-top {\n    align-items: flex-start; }\n  .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n    align-items: flex-start;\n    justify-content: flex-start; }\n  .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n    align-items: flex-start;\n    justify-content: flex-end; }\n  .swal2-container.swal2-center {\n    align-items: center; }\n  .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n    align-items: center;\n    justify-content: flex-start; }\n  .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n    align-items: center;\n    justify-content: flex-end; }\n  .swal2-container.swal2-bottom {\n    align-items: flex-end; }\n  .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n    align-items: flex-end;\n    justify-content: flex-start; }\n  .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n    align-items: flex-end;\n    justify-content: flex-end; }\n  .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n    display: flex !important;\n    flex: 1;\n    align-self: stretch;\n    justify-content: center; }\n  .swal2-container.swal2-grow-row > .swal2-modal {\n    display: flex !important;\n    flex: 1;\n    align-content: center;\n    justify-content: center; }\n  .swal2-container.swal2-grow-column {\n    flex: 1;\n    flex-direction: column; }\n    .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n      align-items: center; }\n    .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n      align-items: flex-start; }\n    .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n      align-items: flex-end; }\n    .swal2-container.swal2-grow-column > .swal2-modal {\n      display: flex !important;\n      flex: 1;\n      align-content: center;\n      justify-content: center; }\n  .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal {\n    margin: auto; }\n  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n    .swal2-container .swal2-modal {\n      margin: 0 !important; } }\n  .swal2-container.swal2-fade {\n    transition: background-color .1s; }\n  .swal2-container.swal2-shown {\n    background-color: rgba(0, 0, 0, 0.4); }\n\n.swal2-popup {\n  display: none;\n  position: relative;\n  flex-direction: column;\n  justify-content: center;\n  width: 32em;\n  max-width: 100%;\n  padding: 1.25em;\n  border-radius: 0.3125em;\n  background: #fff;\n  font-family: inherit;\n  font-size: 1rem;\n  box-sizing: border-box; }\n  .swal2-popup:focus {\n    outline: none; }\n  .swal2-popup.swal2-loading {\n    overflow-y: hidden; }\n  .swal2-popup .swal2-header {\n    display: flex;\n    flex-direction: column;\n    align-items: center; }\n  .swal2-popup .swal2-title {\n    display: block;\n    position: relative;\n    max-width: 100%;\n    margin: 0 0 0.4em;\n    padding: 0;\n    color: #595959;\n    font-size: 1.875em;\n    font-weight: 600;\n    text-align: center;\n    text-transform: none;\n    word-wrap: break-word; }\n  .swal2-popup .swal2-actions {\n    align-items: center;\n    justify-content: center;\n    margin: 1.25em auto 0;\n    z-index: 1; }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled[disabled] {\n      opacity: .4; }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:hover {\n      background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }\n    .swal2-popup .swal2-actions:not(.swal2-loading) .swal2-styled:active {\n      background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); }\n    .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-confirm {\n      width: 2.5em;\n      height: 2.5em;\n      margin: .46875em;\n      padding: 0;\n      border: .25em solid transparent;\n      border-radius: 100%;\n      border-color: transparent;\n      background-color: transparent !important;\n      color: transparent;\n      cursor: default;\n      box-sizing: border-box;\n      -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n              animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n      -webkit-user-select: none;\n         -moz-user-select: none;\n          -ms-user-select: none;\n              user-select: none; }\n    .swal2-popup .swal2-actions.swal2-loading .swal2-styled.swal2-cancel {\n      margin-right: 30px;\n      margin-left: 30px; }\n    .swal2-popup .swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after {\n      display: inline-block;\n      width: 15px;\n      height: 15px;\n      margin-left: 5px;\n      border: 3px solid #999999;\n      border-radius: 50%;\n      border-right-color: transparent;\n      box-shadow: 1px 1px 1px #fff;\n      content: '';\n      -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal;\n              animation: swal2-rotate-loading 1.5s linear 0s infinite normal; }\n  .swal2-popup .swal2-styled {\n    margin: 0 .3125em;\n    padding: .625em 2em;\n    font-weight: 500;\n    box-shadow: none; }\n    .swal2-popup .swal2-styled:not([disabled]) {\n      cursor: pointer; }\n    .swal2-popup .swal2-styled.swal2-confirm {\n      border: 0;\n      border-radius: 0.25em;\n      background: initial;\n      background-color: #3085d6;\n      color: #fff;\n      font-size: 1.0625em; }\n    .swal2-popup .swal2-styled.swal2-cancel {\n      border: 0;\n      border-radius: 0.25em;\n      background: initial;\n      background-color: #aaa;\n      color: #fff;\n      font-size: 1.0625em; }\n    .swal2-popup .swal2-styled:focus {\n      outline: none;\n      box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); }\n    .swal2-popup .swal2-styled::-moz-focus-inner {\n      border: 0; }\n  .swal2-popup .swal2-footer {\n    justify-content: center;\n    margin: 1.25em 0 0;\n    padding: 1em 0 0;\n    border-top: 1px solid #eee;\n    color: #545454;\n    font-size: 1em; }\n  .swal2-popup .swal2-image {\n    max-width: 100%;\n    margin: 1.25em auto; }\n  .swal2-popup .swal2-close {\n    position: absolute;\n    top: 0;\n    right: 0;\n    justify-content: center;\n    width: 1.2em;\n    height: 1.2em;\n    padding: 0;\n    transition: color 0.1s ease-out;\n    border: none;\n    border-radius: 0;\n    background: transparent;\n    color: #cccccc;\n    font-family: serif;\n    font-size: 2.5em;\n    line-height: 1.2;\n    cursor: pointer;\n    overflow: hidden; }\n    .swal2-popup .swal2-close:hover {\n      -webkit-transform: none;\n              transform: none;\n      color: #f27474; }\n  .swal2-popup > .swal2-input,\n  .swal2-popup > .swal2-file,\n  .swal2-popup > .swal2-textarea,\n  .swal2-popup > .swal2-select,\n  .swal2-popup > .swal2-radio,\n  .swal2-popup > .swal2-checkbox {\n    display: none; }\n  .swal2-popup .swal2-content {\n    justify-content: center;\n    margin: 0;\n    padding: 0;\n    color: #545454;\n    font-size: 1.125em;\n    font-weight: 300;\n    line-height: normal;\n    z-index: 1;\n    word-wrap: break-word; }\n  .swal2-popup #swal2-content {\n    text-align: center; }\n  .swal2-popup .swal2-input,\n  .swal2-popup .swal2-file,\n  .swal2-popup .swal2-textarea,\n  .swal2-popup .swal2-select,\n  .swal2-popup .swal2-radio,\n  .swal2-popup .swal2-checkbox {\n    margin: 1em auto; }\n  .swal2-popup .swal2-input,\n  .swal2-popup .swal2-file,\n  .swal2-popup .swal2-textarea {\n    width: 100%;\n    transition: border-color .3s, box-shadow .3s;\n    border: 1px solid #d9d9d9;\n    border-radius: 0.1875em;\n    font-size: 1.125em;\n    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n    box-sizing: border-box; }\n    .swal2-popup .swal2-input.swal2-inputerror,\n    .swal2-popup .swal2-file.swal2-inputerror,\n    .swal2-popup .swal2-textarea.swal2-inputerror {\n      border-color: #f27474 !important;\n      box-shadow: 0 0 2px #f27474 !important; }\n    .swal2-popup .swal2-input:focus,\n    .swal2-popup .swal2-file:focus,\n    .swal2-popup .swal2-textarea:focus {\n      border: 1px solid #b4dbed;\n      outline: none;\n      box-shadow: 0 0 3px #c4e6f5; }\n    .swal2-popup .swal2-input::-webkit-input-placeholder,\n    .swal2-popup .swal2-file::-webkit-input-placeholder,\n    .swal2-popup .swal2-textarea::-webkit-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input:-ms-input-placeholder,\n    .swal2-popup .swal2-file:-ms-input-placeholder,\n    .swal2-popup .swal2-textarea:-ms-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input::-ms-input-placeholder,\n    .swal2-popup .swal2-file::-ms-input-placeholder,\n    .swal2-popup .swal2-textarea::-ms-input-placeholder {\n      color: #cccccc; }\n    .swal2-popup .swal2-input::placeholder,\n    .swal2-popup .swal2-file::placeholder,\n    .swal2-popup .swal2-textarea::placeholder {\n      color: #cccccc; }\n  .swal2-popup .swal2-range input {\n    width: 80%; }\n  .swal2-popup .swal2-range output {\n    width: 20%;\n    font-weight: 600;\n    text-align: center; }\n  .swal2-popup .swal2-range input,\n  .swal2-popup .swal2-range output {\n    height: 2.625em;\n    margin: 1em auto;\n    padding: 0;\n    font-size: 1.125em;\n    line-height: 2.625em; }\n  .swal2-popup .swal2-input {\n    height: 2.625em;\n    padding: 0.75em; }\n    .swal2-popup .swal2-input[type='number'] {\n      max-width: 10em; }\n  .swal2-popup .swal2-file {\n    font-size: 1.125em; }\n  .swal2-popup .swal2-textarea {\n    height: 6.75em;\n    padding: 0.75em; }\n  .swal2-popup .swal2-select {\n    min-width: 50%;\n    max-width: 100%;\n    padding: .375em .625em;\n    color: #545454;\n    font-size: 1.125em; }\n  .swal2-popup .swal2-radio,\n  .swal2-popup .swal2-checkbox {\n    align-items: center;\n    justify-content: center; }\n    .swal2-popup .swal2-radio label,\n    .swal2-popup .swal2-checkbox label {\n      margin: 0 .6em;\n      font-size: 1.125em; }\n    .swal2-popup .swal2-radio input,\n    .swal2-popup .swal2-checkbox input {\n      margin: 0 .4em; }\n  .swal2-popup .swal2-validationerror {\n    display: none;\n    align-items: center;\n    justify-content: center;\n    padding: 0.625em;\n    background: #f0f0f0;\n    color: #666666;\n    font-size: 1em;\n    font-weight: 300;\n    overflow: hidden; }\n    .swal2-popup .swal2-validationerror::before {\n      display: inline-block;\n      width: 1.5em;\n      min-width: 1.5em;\n      height: 1.5em;\n      margin: 0 .625em;\n      border-radius: 50%;\n      background-color: #f27474;\n      color: #fff;\n      font-weight: 600;\n      line-height: 1.5em;\n      text-align: center;\n      content: '!';\n      zoom: normal; }\n\n@supports (-ms-accelerator: true) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  .swal2-range input {\n    width: 100% !important; }\n  .swal2-range output {\n    display: none; } }\n\n@-moz-document url-prefix() {\n  .swal2-close:focus {\n    outline: 2px solid rgba(50, 100, 150, 0.4); } }\n\n.swal2-icon {\n  position: relative;\n  justify-content: center;\n  width: 5em;\n  height: 5em;\n  margin: 1.25em auto 1.875em;\n  border: .25em solid transparent;\n  border-radius: 50%;\n  line-height: 5em;\n  cursor: default;\n  box-sizing: content-box;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  zoom: normal; }\n  .swal2-icon-text {\n    font-size: 3.75em; }\n  .swal2-icon.swal2-error {\n    border-color: #f27474; }\n    .swal2-icon.swal2-error .swal2-x-mark {\n      position: relative;\n      flex-grow: 1; }\n    .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n      display: block;\n      position: absolute;\n      top: 2.3125em;\n      width: 2.9375em;\n      height: .3125em;\n      border-radius: .125em;\n      background-color: #f27474; }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n        left: 1.0625em;\n        -webkit-transform: rotate(45deg);\n                transform: rotate(45deg); }\n      .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n        right: 1em;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg); }\n  .swal2-icon.swal2-warning {\n    border-color: #facea8;\n    color: #f8bb86; }\n  .swal2-icon.swal2-info {\n    border-color: #9de0f6;\n    color: #3fc3ee; }\n  .swal2-icon.swal2-question {\n    border-color: #c9dae1;\n    color: #87adbd; }\n  .swal2-icon.swal2-success {\n    border-color: #a5dc86; }\n    .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n      position: absolute;\n      width: 3.75em;\n      height: 7.5em;\n      -webkit-transform: rotate(45deg);\n              transform: rotate(45deg);\n      border-radius: 50%; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n        top: -.4375em;\n        left: -2.0635em;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 3.75em 3.75em;\n                transform-origin: 3.75em 3.75em;\n        border-radius: 7.5em 0 0 7.5em; }\n      .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n        top: -.6875em;\n        left: 1.875em;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg);\n        -webkit-transform-origin: 0 3.75em;\n                transform-origin: 0 3.75em;\n        border-radius: 0 7.5em 7.5em 0; }\n    .swal2-icon.swal2-success .swal2-success-ring {\n      position: absolute;\n      top: -.25em;\n      left: -.25em;\n      width: 100%;\n      height: 100%;\n      border: 0.25em solid rgba(165, 220, 134, 0.3);\n      border-radius: 50%;\n      z-index: 2;\n      box-sizing: content-box; }\n    .swal2-icon.swal2-success .swal2-success-fix {\n      position: absolute;\n      top: .5em;\n      left: 1.625em;\n      width: .4375em;\n      height: 5.625em;\n      -webkit-transform: rotate(-45deg);\n              transform: rotate(-45deg);\n      z-index: 1; }\n    .swal2-icon.swal2-success [class^='swal2-success-line'] {\n      display: block;\n      position: absolute;\n      height: .3125em;\n      border-radius: .125em;\n      background-color: #a5dc86;\n      z-index: 2; }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n        top: 2.875em;\n        left: .875em;\n        width: 1.5625em;\n        -webkit-transform: rotate(45deg);\n                transform: rotate(45deg); }\n      .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n        top: 2.375em;\n        right: .5em;\n        width: 2.9375em;\n        -webkit-transform: rotate(-45deg);\n                transform: rotate(-45deg); }\n\n.swal2-progresssteps {\n  align-items: center;\n  margin: 0 0 1.25em;\n  padding: 0;\n  font-weight: 600; }\n  .swal2-progresssteps li {\n    display: inline-block;\n    position: relative; }\n  .swal2-progresssteps .swal2-progresscircle {\n    width: 2em;\n    height: 2em;\n    border-radius: 2em;\n    background: #3085d6;\n    color: #fff;\n    line-height: 2em;\n    text-align: center;\n    z-index: 20; }\n    .swal2-progresssteps .swal2-progresscircle:first-child {\n      margin-left: 0; }\n    .swal2-progresssteps .swal2-progresscircle:last-child {\n      margin-right: 0; }\n    .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {\n      background: #3085d6; }\n      .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {\n        background: #add8e6; }\n      .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {\n        background: #add8e6; }\n  .swal2-progresssteps .swal2-progressline {\n    width: 2.5em;\n    height: .4em;\n    margin: 0 -1px;\n    background: #3085d6;\n    z-index: 10; }\n\n[class^='swal2'] {\n  -webkit-tap-highlight-color: transparent; }\n\n.swal2-show {\n  -webkit-animation: swal2-show 0.3s;\n          animation: swal2-show 0.3s; }\n  .swal2-show.swal2-noanimation {\n    -webkit-animation: none;\n            animation: none; }\n\n.swal2-hide {\n  -webkit-animation: swal2-hide 0.15s forwards;\n          animation: swal2-hide 0.15s forwards; }\n  .swal2-hide.swal2-noanimation {\n    -webkit-animation: none;\n            animation: none; }\n\n[dir='rtl'] .swal2-close {\n  right: auto;\n  left: 0; }\n\n.swal2-animate-success-icon .swal2-success-line-tip {\n  -webkit-animation: swal2-animate-success-line-tip 0.75s;\n          animation: swal2-animate-success-line-tip 0.75s; }\n\n.swal2-animate-success-icon .swal2-success-line-long {\n  -webkit-animation: swal2-animate-success-line-long 0.75s;\n          animation: swal2-animate-success-line-long 0.75s; }\n\n.swal2-animate-success-icon .swal2-success-circular-line-right {\n  -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in;\n          animation: swal2-rotate-success-circular-line 4.25s ease-in; }\n\n.swal2-animate-error-icon {\n  -webkit-animation: swal2-animate-error-icon 0.5s;\n          animation: swal2-animate-error-icon 0.5s; }\n  .swal2-animate-error-icon .swal2-x-mark {\n    -webkit-animation: swal2-animate-error-x-mark 0.5s;\n            animation: swal2-animate-error-x-mark 0.5s; }\n\n@-webkit-keyframes swal2-rotate-loading {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n\n@keyframes swal2-rotate-loading {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg); }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg); } }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/css/editormd.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n@charset \"UTF-8\";\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n.editormd {\n  width: 90%;\n  height: 640px;\n  margin: 0 auto;\n  text-align: left;\n  overflow: hidden;\n  position: relative;\n  margin-bottom: 15px;\n  border: 1px solid #ddd;\n  font-family: \"Meiryo UI\", \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n}\n.editormd *, .editormd *:before, .editormd *:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.editormd a {\n  text-decoration: none;\n}\n.editormd img {\n  border: none;\n  vertical-align: middle;\n}\n.editormd > textarea,\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  width: 0;\n  height: 0;\n  outline: 0;\n  resize: none;\n}\n.editormd .editormd-html-textarea,\n.editormd .editormd-markdown-textarea {\n  display: none;\n}\n.editormd input[type=\"text\"],\n.editormd input[type=\"button\"],\n.editormd input[type=\"submit\"],\n.editormd select, .editormd textarea, .editormd button {\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  -ms-appearance: none;\n  appearance: none;\n}\n.editormd ::-webkit-scrollbar {\n  height: 10px;\n  width: 7px;\n  background: rgba(0, 0, 0, 0.1);\n}\n.editormd ::-webkit-scrollbar:hover {\n  background: rgba(0, 0, 0, 0.2);\n}\n.editormd ::-webkit-scrollbar-thumb {\n  background: rgba(0, 0, 0, 0.3);\n  -webkit-border-radius: 6px;\n  -moz-border-radius: 6px;\n  -ms-border-radius: 6px;\n  -o-border-radius: 6px;\n  border-radius: 6px;\n}\n.editormd ::-webkit-scrollbar-thumb:hover {\n  -webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Webkit browsers */\n  -moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Firefox */\n  -ms-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9 */\n  -o-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* Opera(Old) */\n  box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);\n  /* IE9+, News */\n  background-color: rgba(0, 0, 0, 0.4);\n}\n\n.editormd-user-unselect {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-toolbar {\n  width: 100%;\n  min-height: 37px;\n  background: #fff;\n  display: none;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  border-bottom: 1px solid #ddd;\n}\n\n.editormd-toolbar-container {\n  padding: 0 8px;\n  min-height: 35px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  -o-user-select: none;\n  user-select: none;\n}\n\n.editormd-menu {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.editormd-menu > li {\n  margin: 0;\n  padding: 5px 1px;\n  display: inline-block;\n  position: relative;\n}\n.editormd-menu > li.divider {\n  display: inline-block;\n  text-indent: -9999px;\n  margin: 0 5px;\n  height: 65%;\n  border-right: 1px solid #ddd;\n}\n.editormd-menu > li > a {\n  outline: 0;\n  color: #666;\n  display: inline-block;\n  min-width: 24px;\n  font-size: 16px;\n  text-decoration: none;\n  text-align: center;\n  -webkit-border-radius: 2px;\n  -moz-border-radius: 2px;\n  -ms-border-radius: 2px;\n  -o-border-radius: 2px;\n  border-radius: 2px;\n  border: 1px solid #fff;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-menu > li > a:hover, .editormd-menu > li > a.active {\n  border: 1px solid #ddd;\n  background: #eee;\n}\n.editormd-menu > li > a > .fa {\n  text-align: center;\n  display: block;\n  padding: 5px;\n}\n.editormd-menu > li > a > .editormd-bold {\n  padding: 5px 2px;\n  display: inline-block;\n  font-weight: bold;\n}\n.editormd-menu > li:hover .editormd-dropdown-menu {\n  display: block;\n}\n.editormd-menu > li + li > a {\n  margin-left: 3px;\n}\n\n.editormd-dropdown-menu {\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  width: 148px;\n  list-style: none;\n  position: absolute;\n  top: 33px;\n  left: 0;\n  z-index: 100;\n  -webkit-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Webkit browsers */\n  -moz-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Firefox */\n  -ms-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9 */\n  -o-box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* Opera(Old) */\n  box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.15);\n  /* IE9+, News */\n}\n.editormd-dropdown-menu:before, .editormd-dropdown-menu:after {\n  width: 0;\n  height: 0;\n  display: block;\n  content: \"\";\n  position: absolute;\n  top: -11px;\n  left: 8px;\n  border: 5px solid transparent;\n}\n.editormd-dropdown-menu:before {\n  border-bottom-color: #ccc;\n}\n.editormd-dropdown-menu:after {\n  border-bottom-color: #ffffff;\n  top: -10px;\n}\n.editormd-dropdown-menu > li > a {\n  color: #666;\n  display: block;\n  text-decoration: none;\n  padding: 8px 10px;\n}\n.editormd-dropdown-menu > li > a:hover {\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dropdown-menu > li + li {\n  border-top: 1px solid #ddd;\n}\n\n.editormd-container {\n  margin: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  padding: 35px 0 0;\n  position: relative;\n  background: #fff;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.editormd-dialog {\n  color: #666;\n  position: fixed;\n  z-index: 99999;\n  display: none;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Firefox */\n  -ms-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9 */\n  -o-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* Opera(Old) */\n  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\n  /* IE9+, News */\n  background: #fff;\n  font-size: 14px;\n}\n\n.editormd-dialog-container {\n  position: relative;\n  padding: 20px;\n  line-height: 1.4;\n}\n.editormd-dialog-container h1 {\n  font-size: 24px;\n  margin-bottom: 10px;\n}\n.editormd-dialog-container h1 .fa {\n  color: #2C7EEA;\n  padding-right: 5px;\n}\n.editormd-dialog-container h1 small {\n  padding-left: 5px;\n  font-weight: normal;\n  font-size: 12px;\n  color: #999;\n}\n.editormd-dialog-container select {\n  color: #999;\n  padding: 3px 8px;\n  border: 1px solid #ddd;\n}\n\n.editormd-dialog-close {\n  position: absolute;\n  top: 12px;\n  right: 15px;\n  font-size: 18px;\n  color: #ccc;\n  -webkit-transition: color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-close:hover {\n  color: #999;\n}\n\n.editormd-dialog-header {\n  padding: 11px 20px;\n  border-bottom: 1px solid #eee;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-dialog-header:hover {\n  background: #f6f6f6;\n}\n\n.editormd-dialog-title {\n  font-size: 14px;\n}\n\n.editormd-dialog-footer {\n  padding: 10px 0 0 0;\n  text-align: right;\n}\n\n.editormd-dialog-info {\n  width: 420px;\n}\n.editormd-dialog-info h1 {\n  font-weight: normal;\n}\n.editormd-dialog-info .editormd-dialog-container {\n  padding: 20px 25px 25px;\n}\n.editormd-dialog-info .editormd-dialog-close {\n  top: 10px;\n  right: 10px;\n}\n.editormd-dialog-info p > a, .editormd-dialog-info .hover-link:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info .hover-link {\n  color: #666;\n}\n.editormd-dialog-info a .fa-external-link {\n  display: none;\n}\n.editormd-dialog-info a:hover {\n  color: #2196F3;\n}\n.editormd-dialog-info a:hover .fa-external-link {\n  display: inline-block;\n}\n\n.editormd-mask,\n.editormd-container-mask,\n.editormd-dialog-mask {\n  display: none;\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n}\n\n.editormd-mask,\n.editormd-dialog-mask-bg {\n  background: #fff;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n\n.editormd-mask {\n  position: fixed;\n  background: #000;\n  opacity: 0.2;\n  /* W3C */\n  filter: alpha(opacity=20);\n  /* IE */\n  z-index: 99998;\n}\n\n.editormd-container-mask,\n.editormd-dialog-mask-con {\n  background: url(../images/loading.gif) no-repeat center center;\n  -webkit-background-size: 32px 32px;\n  /* Chrome, iOS, Safari */\n  -moz-background-size: 32px 32px;\n  /* Firefox 3.6~4.0 */\n  -o-background-size: 32px 32px;\n  /* Opera 9.5 */\n  background-size: 32px 32px;\n  /* IE9+, New */\n}\n\n.editormd-container-mask {\n  z-index: 20;\n  display: block;\n  background-color: #fff;\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@2x.gif);\n  }\n}\n@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {\n  .editormd-container-mask,\n  .editormd-dialog-mask-con {\n    background-image: url(../images/loading@3x.gif);\n  }\n}\n.editormd-code-block-dialog textarea,\n.editormd-preformatted-text-dialog textarea {\n  width: 100%;\n  height: 400px;\n  margin-bottom: 6px;\n  overflow: auto;\n  border: 1px solid #eee;\n  background: #fff;\n  padding: 15px;\n  resize: none;\n}\n\n.editormd-code-toolbar {\n  color: #999;\n  font-size: 14px;\n  margin: -5px 0 10px;\n}\n\n.editormd-grid-table {\n  width: 99%;\n  display: table;\n  border: 1px solid #ddd;\n  border-collapse: collapse;\n}\n\n.editormd-grid-table-row {\n  width: 100%;\n  display: table-row;\n}\n.editormd-grid-table-row a {\n  font-size: 1.4em;\n  width: 5%;\n  height: 36px;\n  color: #999;\n  text-align: center;\n  display: table-cell;\n  vertical-align: middle;\n  border: 1px solid #ddd;\n  text-decoration: none;\n  -webkit-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out, color 100ms ease-in;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-grid-table-row a.selected {\n  color: #666;\n  background-color: #eee;\n}\n.editormd-grid-table-row a:hover {\n  color: #777;\n  background-color: #f6f6f6;\n}\n\n.editormd-tab-head {\n  list-style: none;\n  border-bottom: 1px solid #ddd;\n}\n.editormd-tab-head li {\n  display: inline-block;\n}\n.editormd-tab-head li a {\n  color: #999;\n  display: block;\n  padding: 6px 12px 5px;\n  text-align: center;\n  text-decoration: none;\n  margin-bottom: -1px;\n  border: 1px solid #ddd;\n  -webkit-border-top-left-radius: 3px;\n  -moz-border-top-left-radius: 3px;\n  -ms-border-top-left-radius: 3px;\n  -o-border-top-left-radius: 3px;\n  border-top-left-radius: 3px;\n  -webkit-border-top-right-radius: 3px;\n  -moz-border-top-right-radius: 3px;\n  -ms-border-top-right-radius: 3px;\n  -o-border-top-right-radius: 3px;\n  border-top-right-radius: 3px;\n  background: #f6f6f6;\n  -webkit-transition: all 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: all 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: all 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-tab-head li a:hover {\n  color: #666;\n  background: #eee;\n}\n.editormd-tab-head li.active a {\n  color: #666;\n  background: #fff;\n  border-bottom-color: #fff;\n}\n.editormd-tab-head li + li {\n  margin-left: 3px;\n}\n\n.editormd-tab-box {\n  padding: 20px 0;\n}\n\n.editormd-form {\n  color: #666;\n}\n.editormd-form label {\n  float: left;\n  display: block;\n  width: 75px;\n  text-align: left;\n  padding: 7px 0 15px 5px;\n  margin: 0 0 2px;\n  font-weight: normal;\n}\n.editormd-form br {\n  clear: both;\n}\n.editormd-form iframe {\n  display: none;\n}\n.editormd-form input:focus {\n  outline: 0;\n}\n.editormd-form input[type=\"text\"], .editormd-form input[type=\"number\"] {\n  color: #999;\n  padding: 8px;\n  border: 1px solid #ddd;\n}\n.editormd-form input[type=\"number\"] {\n  width: 40px;\n  display: inline-block;\n  padding: 6px 8px;\n}\n.editormd-form input[type=\"text\"] {\n  display: inline-block;\n  width: 264px;\n}\n.editormd-form .fa-btns {\n  display: inline-block;\n}\n.editormd-form .fa-btns a {\n  color: #999;\n  padding: 7px 10px 0 0;\n  display: inline-block;\n  text-decoration: none;\n  text-align: center;\n}\n.editormd-form .fa-btns .fa {\n  font-size: 1.3em;\n}\n.editormd-form .fa-btns label {\n  float: none;\n  display: inline-block;\n  width: auto;\n  text-align: left;\n  padding: 0 0 0 5px;\n  cursor: pointer;\n}\n\n.editormd-form input[type=\"submit\"], .editormd-form .editormd-btn, .editormd-form button,\n.editormd-dialog-container input[type=\"submit\"],\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-container button,\n.editormd-dialog-footer input[type=\"submit\"],\n.editormd-dialog-footer .editormd-btn,\n.editormd-dialog-footer button {\n  color: #666;\n  min-width: 75px;\n  cursor: pointer;\n  background: #fff;\n  padding: 7px 10px;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  -webkit-transition: background 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-form input[type=\"submit\"]:hover, .editormd-form .editormd-btn:hover, .editormd-form button:hover,\n.editormd-dialog-container input[type=\"submit\"]:hover,\n.editormd-dialog-container .editormd-btn:hover,\n.editormd-dialog-container button:hover,\n.editormd-dialog-footer input[type=\"submit\"]:hover,\n.editormd-dialog-footer .editormd-btn:hover,\n.editormd-dialog-footer button:hover {\n  background: #eee;\n}\n.editormd-form .editormd-btn,\n.editormd-dialog-container .editormd-btn,\n.editormd-dialog-footer .editormd-btn {\n  padding: 5px 8px 4px\\0;\n}\n.editormd-form .editormd-btn + .editormd-btn,\n.editormd-dialog-container .editormd-btn + .editormd-btn,\n.editormd-dialog-footer .editormd-btn + .editormd-btn {\n  margin-left: 8px;\n}\n\n.editormd-file-input {\n  width: 75px;\n  height: 32px;\n  margin-left: 8px;\n  position: relative;\n  display: inline-block;\n}\n.editormd-file-input input[type=\"file\"] {\n  width: 75px;\n  height: 32px;\n  opacity: 0;\n  cursor: pointer;\n  background: #000;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  right: 0;\n}\n.editormd-file-input input[type=\"file\"]::-webkit-file-upload-button {\n  visibility: hidden;\n}\n.editormd-file-input:hover input[type=\"submit\"] {\n  background: #eee;\n}\n\n.editormd .CodeMirror, .editormd-preview {\n  display: inline-block;\n  width: 50%;\n  height: 100%;\n  vertical-align: top;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  margin: 0;\n}\n\n.editormd-preview {\n  position: absolute;\n  top: 35px;\n  right: 0;\n  right: -1px\\0;\n  overflow: auto;\n  line-height: 1.6;\n  display: none;\n  background: #fff;\n}\n\n.editormd .CodeMirror {\n  z-index: 10;\n  float: left;\n  border-right: 1px solid #ddd;\n  font-size: 14px;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"微软雅黑\", \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", courier, monospace;\n  line-height: 1.6;\n  margin-top: 35px;\n}\n.editormd .CodeMirror pre {\n  font-size: 14px;\n  padding: 0 12px;\n}\n.editormd .CodeMirror-linenumbers {\n  padding: 0 5px;\n}\n.editormd .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror-focused .CodeMirror-selected {\n  background: #70B7FF;\n}\n.editormd .CodeMirror, .editormd .CodeMirror-scroll, .editormd .editormd-preview {\n  -webkit-overflow-scrolling: touch;\n}\n.editormd .styled-background {\n  background-color: #ff7;\n}\n.editormd .CodeMirror-focused .cm-matchhighlight {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);\n  background-position: bottom;\n  background-repeat: repeat-x;\n}\n.editormd .CodeMirror-empty.CodeMirror-focused {\n  outline: none;\n}\n.editormd .CodeMirror pre.CodeMirror-placeholder {\n  color: #999;\n}\n.editormd .cm-trailingspace {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n.editormd .cm-tab {\n  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n  background-position: right;\n  background-repeat: no-repeat;\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url(\"../fonts/fontawesome-webfont.eot?v=4.3.0\");\n  src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.3.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.3.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.3.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.fa.pull-left {\n  margin-right: .3em;\n}\n\n.fa.pull-right {\n  margin-left: .3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.fa-stack-1x {\n  line-height: inherit;\n}\n\n.fa-stack-2x {\n  font-size: 2em;\n}\n\n.fa-inverse {\n  color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n\n.fa-music:before {\n  content: \"\\f001\";\n}\n\n.fa-search:before {\n  content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n\n.fa-heart:before {\n  content: \"\\f004\";\n}\n\n.fa-star:before {\n  content: \"\\f005\";\n}\n\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n\n.fa-user:before {\n  content: \"\\f007\";\n}\n\n.fa-film:before {\n  content: \"\\f008\";\n}\n\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n\n.fa-th:before {\n  content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n\n.fa-check:before {\n  content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n\n.fa-signal:before {\n  content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n\n.fa-home:before {\n  content: \"\\f015\";\n}\n\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n\n.fa-road:before {\n  content: \"\\f018\";\n}\n\n.fa-download:before {\n  content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n\n.fa-lock:before {\n  content: \"\\f023\";\n}\n\n.fa-flag:before {\n  content: \"\\f024\";\n}\n\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n\n.fa-book:before {\n  content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n\n.fa-print:before {\n  content: \"\\f02f\";\n}\n\n.fa-camera:before {\n  content: \"\\f030\";\n}\n\n.fa-font:before {\n  content: \"\\f031\";\n}\n\n.fa-bold:before {\n  content: \"\\f032\";\n}\n\n.fa-italic:before {\n  content: \"\\f033\";\n}\n\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n\n.fa-list:before {\n  content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n\n.fa-tint:before {\n  content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n\n.fa-play:before {\n  content: \"\\f04b\";\n}\n\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n\n.fa-eject:before {\n  content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n\n.fa-expand:before {\n  content: \"\\f065\";\n}\n\n.fa-compress:before {\n  content: \"\\f066\";\n}\n\n.fa-plus:before {\n  content: \"\\f067\";\n}\n\n.fa-minus:before {\n  content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n\n.fa-plane:before {\n  content: \"\\f072\";\n}\n\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n\n.fa-random:before {\n  content: \"\\f074\";\n}\n\n.fa-comment:before {\n  content: \"\\f075\";\n}\n\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n\n.fa-key:before {\n  content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n\n.fa-comments:before {\n  content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n\n.fa-upload:before {\n  content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n\n.fa-phone:before {\n  content: \"\\f095\";\n}\n\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n\n.fa-github:before {\n  content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n\n.fa-circle:before {\n  content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n\n.fa-code:before {\n  content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n\n.fa-crop:before {\n  content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n\n.fa-question:before {\n  content: \"\\f128\";\n}\n\n.fa-info:before {\n  content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n\n.fa-shield:before {\n  content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n\n.fa-file:before {\n  content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n\n.fa-xing:before {\n  content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n\n.fa-adn:before {\n  content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n\n.fa-apple:before {\n  content: \"\\f179\";\n}\n\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n\n.fa-android:before {\n  content: \"\\f17b\";\n}\n\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n\n.fa-trello:before {\n  content: \"\\f181\";\n}\n\n.fa-female:before {\n  content: \"\\f182\";\n}\n\n.fa-male:before {\n  content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n\n.fa-archive:before {\n  content: \"\\f187\";\n}\n\n.fa-bug:before {\n  content: \"\\f188\";\n}\n\n.fa-vk:before {\n  content: \"\\f189\";\n}\n\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n\n.fa-slack:before {\n  content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n\n.fa-history:before {\n  content: \"\\f1da\";\n}\n\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n\n.fa-bus:before {\n  content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n\n.fa-venus:before {\n  content: \"\\f221\";\n}\n\n.fa-mars:before {\n  content: \"\\f222\";\n}\n\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n\n.fa-server:before {\n  content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n\n.fa-train:before {\n  content: \"\\f238\";\n}\n\n.fa-subway:before {\n  content: \"\\f239\";\n}\n\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\".../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\"woff\");\n}\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body > *:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body > *:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li > p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote > :first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote > :last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0, 0, 0, 0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre > code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item + .task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked + .radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n\n.editormd-preview-container, .editormd-html-preview {\n  text-align: left;\n  font-size: 14px;\n  line-height: 1.6;\n  padding: 20px;\n  overflow: auto;\n  width: 100%;\n  background-color: #fff;\n}\n.editormd-preview-container blockquote, .editormd-html-preview blockquote {\n  color: #666;\n  border-left: 4px solid #ddd;\n  padding-left: 20px;\n  margin-left: 0;\n  font-size: 14px;\n  font-style: italic;\n}\n.editormd-preview-container p code, .editormd-html-preview p code {\n  margin-left: 5px;\n  margin-right: 4px;\n}\n.editormd-preview-container abbr, .editormd-html-preview abbr {\n  background: #ffffdd;\n}\n.editormd-preview-container hr, .editormd-html-preview hr {\n  height: 1px;\n  border: none;\n  border-top: 1px solid #ddd;\n  background: none;\n}\n.editormd-preview-container code, .editormd-html-preview code {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 3px;\n  border-radius: 3px;\n  font-size: 14px;\n}\n.editormd-preview-container pre, .editormd-html-preview pre {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 10px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n}\n.editormd-preview-container pre code, .editormd-html-preview pre code {\n  padding: 0;\n}\n.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n}\n.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {\n  background-color: #F8F8F8;\n}\n.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {\n  text-align: center;\n}\n.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {\n  margin: 0 5px;\n}\n.editormd-preview-container .emoji, .editormd-html-preview .emoji {\n  width: 24px;\n  height: 24px;\n}\n.editormd-preview-container .katex, .editormd-html-preview .katex {\n  font-size: 1.4em;\n}\n.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {\n  margin: 0 auto;\n  text-align: center;\n}\n.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {\n  margin: 0 auto;\n}\n.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {\n  font-size: 15px !important;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n}\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n  color: #000;\n}\n\n/* plain text */\n@media screen {\n  .str {\n    color: #080;\n  }\n\n  /* string content */\n  .kwd {\n    color: #008;\n  }\n\n  /* a keyword */\n  .com {\n    color: #800;\n  }\n\n  /* a comment */\n  .typ {\n    color: #606;\n  }\n\n  /* a type name */\n  .lit {\n    color: #066;\n  }\n\n  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo {\n    color: #660;\n  }\n\n  .tag {\n    color: #008;\n  }\n\n  /* a markup tag name */\n  .atn {\n    color: #606;\n  }\n\n  /* a markup attribute name */\n  .atv {\n    color: #080;\n  }\n\n  /* a markup attribute value */\n  .dec, .var {\n    color: #606;\n  }\n\n  /* a declaration; a variable name */\n  .fun {\n    color: red;\n  }\n\n  /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060;\n  }\n\n  .kwd {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .com {\n    color: #600;\n    font-style: italic;\n  }\n\n  .typ {\n    color: #404;\n    font-weight: bold;\n  }\n\n  .lit {\n    color: #044;\n  }\n\n  .pun, .opn, .clo {\n    color: #440;\n  }\n\n  .tag {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .atn {\n    color: #404;\n  }\n\n  .atv {\n    color: #060;\n  }\n}\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint {\n  padding: 2px;\n  border: 1px solid #888;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n  list-style-type: none;\n}\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  background: #eee;\n}\n\n.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {\n  padding: 10px;\n  border: 1px solid #ddd;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {\n  color: #999;\n  padding-left: 2.5em;\n}\n.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {\n  list-style-type: decimal;\n}\n.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {\n  border: none;\n  background: none;\n  padding: 0;\n}\n\n.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {\n  margin: 8px 0 12px 0;\n  display: inline-block;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {\n  position: relative;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  display: inline-block;\n  font-size: 1em;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {\n  width: 160%;\n  min-width: 180px;\n  position: absolute;\n  left: -1px;\n  top: -2px;\n  z-index: 100;\n  padding: 0 10px 10px;\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {\n  width: 100%;\n  min-width: 180px;\n  border: 1px solid #ddd;\n  display: none;\n  background: #fff;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {\n  color: #666;\n  padding: 6px 10px;\n  display: block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {\n  position: relative;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {\n  position: absolute;\n  top: 32px;\n  left: 10%;\n  display: none;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  pointer-events: pointer-events;\n  position: absolute;\n  left: 15px;\n  top: -6px;\n  display: block;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border: 6px solid transparent;\n  border-width: 0 6px 6px;\n  z-index: 10;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {\n  border-bottom-color: #ccc;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  border-bottom-color: #ffffff;\n  top: -5px;\n}\n.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {\n  list-style: none;\n}\n.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {\n  text-decoration: none;\n}\n.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {\n  font-size: 16px;\n  padding: 5px 0 10px 10px;\n  line-height: 1;\n  border-bottom: 1px solid #eee;\n}\n.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {\n  padding-left: 10px;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {\n  color: #666;\n  min-width: 180px;\n  padding: 5px 10px;\n  border-radius: 4px;\n  display: inline-block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {\n  float: right;\n  padding: 3px 0 0 10px;\n  font-size: 1.3em;\n}\n\n.markdown-body .editormd-toc-menu ul {\n  padding-left: 0;\n}\n.markdown-body .highlight pre, .markdown-body pre {\n  line-height: 1.6;\n}\n\nhr.editormd-page-break {\n  border: 1px dotted #ccc;\n  font-size: 0;\n  height: 2px;\n}\n\n@media only print {\n  hr.editormd-page-break {\n    background: none;\n    border: none;\n    height: 0;\n  }\n}\n.editormd-html-preview textarea {\n  display: none;\n}\n.editormd-html-preview hr.editormd-page-break {\n  background: none;\n  border: none;\n  height: 0;\n}\n\n.editormd-preview-close-btn {\n  color: #fff;\n  padding: 4px 6px;\n  font-size: 18px;\n  -webkit-border-radius: 500px;\n  -moz-border-radius: 500px;\n  -ms-border-radius: 500px;\n  -o-border-radius: 500px;\n  border-radius: 500px;\n  display: none;\n  background-color: #ccc;\n  position: absolute;\n  top: 25px;\n  right: 35px;\n  z-index: 19;\n  -webkit-transition: background-color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-close-btn:hover {\n  background-color: #999;\n}\n\n.editormd-preview-active {\n  width: 100%;\n  padding: 40px;\n}\n\n/* Preview dark theme */\n.editormd-preview-theme-dark {\n  color: #777;\n  background: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container {\n  color: #888;\n  background-color: #2C2827;\n}\n.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container blockquote {\n  color: #555;\n  padding: 0.5em;\n  background: #222;\n  border-color: #333;\n}\n.editormd-preview-theme-dark .editormd-preview-container abbr {\n  color: #fff;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #ff9900;\n}\n.editormd-preview-theme-dark .editormd-preview-container code {\n  color: #fff;\n  border: none;\n  padding: 1px 3px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n  background: #5A9600;\n}\n.editormd-preview-theme-dark .editormd-preview-container table {\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-preview-container .fa-emoji {\n  color: #B4BF42;\n}\n.editormd-preview-theme-dark .editormd-preview-container .katex {\n  color: #FEC93F;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc {\n  background: #fff;\n  border: none;\n}\n.editormd-preview-theme-dark .editormd-toc-menu > .markdown-toc h1 {\n  border-color: #ddd;\n}\n.editormd-preview-theme-dark .markdown-body h1, .editormd-preview-theme-dark .markdown-body h2, .editormd-preview-theme-dark .markdown-body hr {\n  border-color: #222;\n}\n.editormd-preview-theme-dark pre {\n  color: #999;\n  background-color: #111;\n  background-color: rgba(0, 0, 0, 0.4);\n  /* plain text */\n}\n.editormd-preview-theme-dark pre .pln {\n  color: #999;\n}\n.editormd-preview-theme-dark li.L1, .editormd-preview-theme-dark li.L3, .editormd-preview-theme-dark li.L5, .editormd-preview-theme-dark li.L7, .editormd-preview-theme-dark li.L9 {\n  background: none;\n}\n.editormd-preview-theme-dark [class*=editormd-logo] {\n  color: #2196F3;\n}\n.editormd-preview-theme-dark .sequence-diagram text {\n  fill: #fff;\n}\n.editormd-preview-theme-dark .sequence-diagram rect, .editormd-preview-theme-dark .sequence-diagram path {\n  color: #fff;\n  fill: #64D1CB;\n  stroke: #64D1CB;\n}\n.editormd-preview-theme-dark .flowchart rect, .editormd-preview-theme-dark .flowchart path {\n  stroke: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart rect {\n  fill: #A6C6FF;\n}\n.editormd-preview-theme-dark .flowchart text {\n  fill: #5879B4;\n}\n\n@media screen {\n  .editormd-preview-theme-dark {\n    /* string content */\n    /* a keyword */\n    /* a comment */\n    /* a type name */\n    /* a literal value */\n    /* punctuation, lisp open bracket, lisp close bracket */\n    /* a markup tag name */\n    /* a markup attribute name */\n    /* a markup attribute value */\n    /* a declaration; a variable name */\n    /* a function name */\n  }\n  .editormd-preview-theme-dark .str {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .kwd {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .com {\n    color: #444444;\n  }\n  .editormd-preview-theme-dark .typ {\n    color: #606;\n  }\n  .editormd-preview-theme-dark .lit {\n    color: #066;\n  }\n  .editormd-preview-theme-dark .pun, .editormd-preview-theme-dark .opn, .editormd-preview-theme-dark .clo {\n    color: #660;\n  }\n  .editormd-preview-theme-dark .tag {\n    color: #ff9900;\n  }\n  .editormd-preview-theme-dark .atn {\n    color: #6C95F5;\n  }\n  .editormd-preview-theme-dark .atv {\n    color: #080;\n  }\n  .editormd-preview-theme-dark .dec, .editormd-preview-theme-dark .var {\n    color: #008BA7;\n  }\n  .editormd-preview-theme-dark .fun {\n    color: red;\n  }\n}\n.editormd-onlyread .editormd-toolbar {\n  display: none;\n}\n.editormd-onlyread .CodeMirror {\n  margin-top: 0;\n}\n.editormd-onlyread .editormd-preview {\n  top: 0;\n}\n\n.editormd-fullscreen {\n  position: fixed;\n  top: 0;\n  left: 0;\n  border: none;\n  margin: 0 auto;\n}\n\n/* Editor.md Dark theme */\n.editormd-theme-dark {\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-toolbar {\n  background: #1A1A17;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a {\n  color: #777;\n  border-color: #1a1a17;\n}\n.editormd-theme-dark .editormd-menu > li > a:hover, .editormd-theme-dark .editormd-menu > li > a.active {\n  border-color: #333;\n  background: #333;\n}\n.editormd-theme-dark .editormd-menu > li.divider {\n  border-right: 1px solid #111;\n}\n.editormd-theme-dark .CodeMirror {\n  border-right: 1px solid rgba(0, 0, 0, 0.1);\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/css/editormd.logo.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.logo.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\".../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/css/editormd.preview.css",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.preview.css \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n@charset \"UTF-8\";\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url(\"../fonts/fontawesome-webfont.eot?v=4.3.0\");\n  src: url(\"../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0\") format(\"embedded-opentype\"), url(\"../fonts/fontawesome-webfont.woff2?v=4.3.0\") format(\"woff2\"), url(\"../fonts/fontawesome-webfont.woff?v=4.3.0\") format(\"woff\"), url(\"../fonts/fontawesome-webfont.ttf?v=4.3.0\") format(\"truetype\"), url(\"../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n\n.pull-right {\n  float: right;\n}\n\n.pull-left {\n  float: left;\n}\n\n.fa.pull-left {\n  margin-right: .3em;\n}\n\n.fa.pull-right {\n  margin-left: .3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n\n.fa-stack-1x {\n  line-height: inherit;\n}\n\n.fa-stack-2x {\n  font-size: 2em;\n}\n\n.fa-inverse {\n  color: #ffffff;\n}\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n\n.fa-music:before {\n  content: \"\\f001\";\n}\n\n.fa-search:before {\n  content: \"\\f002\";\n}\n\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n\n.fa-heart:before {\n  content: \"\\f004\";\n}\n\n.fa-star:before {\n  content: \"\\f005\";\n}\n\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n\n.fa-user:before {\n  content: \"\\f007\";\n}\n\n.fa-film:before {\n  content: \"\\f008\";\n}\n\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n\n.fa-th:before {\n  content: \"\\f00a\";\n}\n\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n\n.fa-check:before {\n  content: \"\\f00c\";\n}\n\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n\n.fa-signal:before {\n  content: \"\\f012\";\n}\n\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n\n.fa-home:before {\n  content: \"\\f015\";\n}\n\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n\n.fa-road:before {\n  content: \"\\f018\";\n}\n\n.fa-download:before {\n  content: \"\\f019\";\n}\n\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n\n.fa-lock:before {\n  content: \"\\f023\";\n}\n\n.fa-flag:before {\n  content: \"\\f024\";\n}\n\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n\n.fa-book:before {\n  content: \"\\f02d\";\n}\n\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n\n.fa-print:before {\n  content: \"\\f02f\";\n}\n\n.fa-camera:before {\n  content: \"\\f030\";\n}\n\n.fa-font:before {\n  content: \"\\f031\";\n}\n\n.fa-bold:before {\n  content: \"\\f032\";\n}\n\n.fa-italic:before {\n  content: \"\\f033\";\n}\n\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n\n.fa-list:before {\n  content: \"\\f03a\";\n}\n\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n\n.fa-tint:before {\n  content: \"\\f043\";\n}\n\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n\n.fa-play:before {\n  content: \"\\f04b\";\n}\n\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n\n.fa-eject:before {\n  content: \"\\f052\";\n}\n\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n\n.fa-expand:before {\n  content: \"\\f065\";\n}\n\n.fa-compress:before {\n  content: \"\\f066\";\n}\n\n.fa-plus:before {\n  content: \"\\f067\";\n}\n\n.fa-minus:before {\n  content: \"\\f068\";\n}\n\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n\n.fa-plane:before {\n  content: \"\\f072\";\n}\n\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n\n.fa-random:before {\n  content: \"\\f074\";\n}\n\n.fa-comment:before {\n  content: \"\\f075\";\n}\n\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n\n.fa-key:before {\n  content: \"\\f084\";\n}\n\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n\n.fa-comments:before {\n  content: \"\\f086\";\n}\n\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n\n.fa-upload:before {\n  content: \"\\f093\";\n}\n\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n\n.fa-phone:before {\n  content: \"\\f095\";\n}\n\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n\n.fa-github:before {\n  content: \"\\f09b\";\n}\n\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n\n.fa-circle:before {\n  content: \"\\f111\";\n}\n\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n\n.fa-code:before {\n  content: \"\\f121\";\n}\n\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n\n.fa-crop:before {\n  content: \"\\f125\";\n}\n\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n\n.fa-question:before {\n  content: \"\\f128\";\n}\n\n.fa-info:before {\n  content: \"\\f129\";\n}\n\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n\n.fa-shield:before {\n  content: \"\\f132\";\n}\n\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n\n.fa-file:before {\n  content: \"\\f15b\";\n}\n\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n\n.fa-xing:before {\n  content: \"\\f168\";\n}\n\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n\n.fa-adn:before {\n  content: \"\\f170\";\n}\n\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n\n.fa-apple:before {\n  content: \"\\f179\";\n}\n\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n\n.fa-android:before {\n  content: \"\\f17b\";\n}\n\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n\n.fa-trello:before {\n  content: \"\\f181\";\n}\n\n.fa-female:before {\n  content: \"\\f182\";\n}\n\n.fa-male:before {\n  content: \"\\f183\";\n}\n\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n\n.fa-archive:before {\n  content: \"\\f187\";\n}\n\n.fa-bug:before {\n  content: \"\\f188\";\n}\n\n.fa-vk:before {\n  content: \"\\f189\";\n}\n\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n\n.fa-slack:before {\n  content: \"\\f198\";\n}\n\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n\n.fa-history:before {\n  content: \"\\f1da\";\n}\n\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n\n.fa-bus:before {\n  content: \"\\f207\";\n}\n\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n\n.fa-venus:before {\n  content: \"\\f221\";\n}\n\n.fa-mars:before {\n  content: \"\\f222\";\n}\n\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n\n.fa-server:before {\n  content: \"\\f233\";\n}\n\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n\n.fa-train:before {\n  content: \"\\f238\";\n}\n\n.fa-subway:before {\n  content: \"\\f239\";\n}\n\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n@font-face {\n  font-family: 'editormd-logo';\n  src: url(\"../fonts/editormd-logo.eot?-5y8q6h\");\n  src: url(\".../fonts/editormd-logo.eot?#iefix-5y8q6h\") format(\"embedded-opentype\"), url(\"../fonts/editormd-logo.woff?-5y8q6h\") format(\"woff\"), url(\"../fonts/editormd-logo.ttf?-5y8q6h\") format(\"truetype\"), url(\"../fonts/editormd-logo.svg?-5y8q6h#icomoon\") format(\"svg\");\n  font-weight: normal;\n  font-style: normal;\n}\n.editormd-logo,\n.editormd-logo-1x,\n.editormd-logo-2x,\n.editormd-logo-3x,\n.editormd-logo-4x,\n.editormd-logo-5x,\n.editormd-logo-6x,\n.editormd-logo-7x,\n.editormd-logo-8x {\n  font-family: 'editormd-logo';\n  speak: none;\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-transform: none;\n  font-size: inherit;\n  line-height: 1;\n  display: inline-block;\n  text-rendering: auto;\n  vertical-align: inherit;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.editormd-logo:before,\n.editormd-logo-1x:before,\n.editormd-logo-2x:before,\n.editormd-logo-3x:before,\n.editormd-logo-4x:before,\n.editormd-logo-5x:before,\n.editormd-logo-6x:before,\n.editormd-logo-7x:before,\n.editormd-logo-8x:before {\n  content: \"\\e1987\";\n  /* \n  HTML Entity &#xe1987; \n  example: <span class=\"editormd-logo\">&#xe1987;</span>\n  */\n}\n\n.editormd-logo-1x {\n  font-size: 1em;\n}\n\n.editormd-logo-lg {\n  font-size: 1.2em;\n}\n\n.editormd-logo-2x {\n  font-size: 2em;\n}\n\n.editormd-logo-3x {\n  font-size: 3em;\n}\n\n.editormd-logo-4x {\n  font-size: 4em;\n}\n\n.editormd-logo-5x {\n  font-size: 5em;\n}\n\n.editormd-logo-6x {\n  font-size: 6em;\n}\n\n.editormd-logo-7x {\n  font-size: 7em;\n}\n\n.editormd-logo-8x {\n  font-size: 8em;\n}\n\n.editormd-logo-color {\n  color: #2196F3;\n}\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format(\"woff\");\n}\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body > *:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body > *:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li > p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote > :first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote > :last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0, 0, 0, 0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre > code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item + .task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked + .radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n\n.editormd-preview-container, .editormd-html-preview {\n  text-align: left;\n  font-size: 14px;\n  line-height: 1.6;\n  padding: 20px;\n  overflow: auto;\n  width: 100%;\n  background-color: #fff;\n}\n.editormd-preview-container blockquote, .editormd-html-preview blockquote {\n  color: #666;\n  border-left: 4px solid #ddd;\n  padding-left: 20px;\n  margin-left: 0;\n  font-size: 14px;\n  font-style: italic;\n}\n.editormd-preview-container p code, .editormd-html-preview p code {\n  margin-left: 5px;\n  margin-right: 4px;\n}\n.editormd-preview-container abbr, .editormd-html-preview abbr {\n  background: #ffffdd;\n}\n.editormd-preview-container hr, .editormd-html-preview hr {\n  height: 1px;\n  border: none;\n  border-top: 1px solid #ddd;\n  background: none;\n}\n.editormd-preview-container code, .editormd-html-preview code {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 3px;\n  border-radius: 3px;\n  font-size: 14px;\n}\n.editormd-preview-container pre, .editormd-html-preview pre {\n  border: 1px solid #ddd;\n  background: #f6f6f6;\n  padding: 10px;\n  -webkit-border-radius: 3px;\n  -moz-border-radius: 3px;\n  -ms-border-radius: 3px;\n  -o-border-radius: 3px;\n  border-radius: 3px;\n}\n.editormd-preview-container pre code, .editormd-html-preview pre code {\n  padding: 0;\n}\n.editormd-preview-container pre, .editormd-preview-container code, .editormd-preview-container kbd, .editormd-html-preview pre, .editormd-html-preview code, .editormd-html-preview kbd {\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n}\n.editormd-preview-container table thead tr, .editormd-html-preview table thead tr {\n  background-color: #F8F8F8;\n}\n.editormd-preview-container p.editormd-tex, .editormd-html-preview p.editormd-tex {\n  text-align: center;\n}\n.editormd-preview-container span.editormd-tex, .editormd-html-preview span.editormd-tex {\n  margin: 0 5px;\n}\n.editormd-preview-container .emoji, .editormd-html-preview .emoji {\n  width: 24px;\n  height: 24px;\n}\n.editormd-preview-container .katex, .editormd-html-preview .katex {\n  font-size: 1.4em;\n}\n.editormd-preview-container .sequence-diagram, .editormd-preview-container .flowchart, .editormd-html-preview .sequence-diagram, .editormd-html-preview .flowchart {\n  margin: 0 auto;\n  text-align: center;\n}\n.editormd-preview-container .sequence-diagram svg, .editormd-preview-container .flowchart svg, .editormd-html-preview .sequence-diagram svg, .editormd-html-preview .flowchart svg {\n  margin: 0 auto;\n}\n.editormd-preview-container .sequence-diagram text, .editormd-preview-container .flowchart text, .editormd-html-preview .sequence-diagram text, .editormd-html-preview .flowchart text {\n  font-size: 15px !important;\n  font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n}\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln {\n  color: #000;\n}\n\n/* plain text */\n@media screen {\n  .str {\n    color: #080;\n  }\n\n  /* string content */\n  .kwd {\n    color: #008;\n  }\n\n  /* a keyword */\n  .com {\n    color: #800;\n  }\n\n  /* a comment */\n  .typ {\n    color: #606;\n  }\n\n  /* a type name */\n  .lit {\n    color: #066;\n  }\n\n  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo {\n    color: #660;\n  }\n\n  .tag {\n    color: #008;\n  }\n\n  /* a markup tag name */\n  .atn {\n    color: #606;\n  }\n\n  /* a markup attribute name */\n  .atv {\n    color: #080;\n  }\n\n  /* a markup attribute value */\n  .dec, .var {\n    color: #606;\n  }\n\n  /* a declaration; a variable name */\n  .fun {\n    color: red;\n  }\n\n  /* a function name */\n}\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str {\n    color: #060;\n  }\n\n  .kwd {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .com {\n    color: #600;\n    font-style: italic;\n  }\n\n  .typ {\n    color: #404;\n    font-weight: bold;\n  }\n\n  .lit {\n    color: #044;\n  }\n\n  .pun, .opn, .clo {\n    color: #440;\n  }\n\n  .tag {\n    color: #006;\n    font-weight: bold;\n  }\n\n  .atn {\n    color: #404;\n  }\n\n  .atv {\n    color: #060;\n  }\n}\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint {\n  padding: 2px;\n  border: 1px solid #888;\n}\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n/* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 {\n  list-style-type: none;\n}\n\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 {\n  background: #eee;\n}\n\n.editormd-preview-container pre.prettyprint, .editormd-html-preview pre.prettyprint {\n  padding: 10px;\n  border: 1px solid #ddd;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n.editormd-preview-container ol.linenums, .editormd-html-preview ol.linenums {\n  color: #999;\n  padding-left: 2.5em;\n}\n.editormd-preview-container ol.linenums li, .editormd-html-preview ol.linenums li {\n  list-style-type: decimal;\n}\n.editormd-preview-container ol.linenums li code, .editormd-html-preview ol.linenums li code {\n  border: none;\n  background: none;\n  padding: 0;\n}\n\n.editormd-preview-container .editormd-toc-menu, .editormd-html-preview .editormd-toc-menu {\n  margin: 8px 0 12px 0;\n  display: inline-block;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc, .editormd-html-preview .editormd-toc-menu > .markdown-toc {\n  position: relative;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  border: 1px solid #ddd;\n  display: inline-block;\n  font-size: 1em;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul {\n  width: 160%;\n  min-width: 180px;\n  position: absolute;\n  left: -1px;\n  top: -2px;\n  z-index: 100;\n  padding: 0 10px 10px;\n  display: none;\n  background: #fff;\n  border: 1px solid #ddd;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li ul {\n  width: 100%;\n  min-width: 180px;\n  border: 1px solid #ddd;\n  display: none;\n  background: #fff;\n  -webkit-border-radius: 4px;\n  -moz-border-radius: 4px;\n  -ms-border-radius: 4px;\n  -o-border-radius: 4px;\n  border-radius: 4px;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a {\n  color: #666;\n  padding: 6px 10px;\n  display: block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc > ul > li a:hover, .editormd-html-preview .editormd-toc-menu > .markdown-toc > ul > li a:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li, .editormd-html-preview .editormd-toc-menu > .markdown-toc li {\n  position: relative;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul {\n  position: absolute;\n  top: 32px;\n  left: 10%;\n  display: none;\n  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Webkit browsers */\n  -moz-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Firefox */\n  -ms-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9 */\n  -o-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* Opera(Old) */\n  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n  /* IE9+, News */\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  pointer-events: pointer-events;\n  position: absolute;\n  left: 15px;\n  top: -6px;\n  display: block;\n  content: \"\";\n  width: 0;\n  height: 0;\n  border: 6px solid transparent;\n  border-width: 0 6px 6px;\n  z-index: 10;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:before, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:before {\n  border-bottom-color: #ccc;\n}\n.editormd-preview-container .editormd-toc-menu > .markdown-toc li > ul:after, .editormd-html-preview .editormd-toc-menu > .markdown-toc li > ul:after {\n  border-bottom-color: #ffffff;\n  top: -5px;\n}\n.editormd-preview-container .editormd-toc-menu ul, .editormd-html-preview .editormd-toc-menu ul {\n  list-style: none;\n}\n.editormd-preview-container .editormd-toc-menu a, .editormd-html-preview .editormd-toc-menu a {\n  text-decoration: none;\n}\n.editormd-preview-container .editormd-toc-menu h1, .editormd-html-preview .editormd-toc-menu h1 {\n  font-size: 16px;\n  padding: 5px 0 10px 10px;\n  line-height: 1;\n  border-bottom: 1px solid #eee;\n}\n.editormd-preview-container .editormd-toc-menu h1 .fa, .editormd-html-preview .editormd-toc-menu h1 .fa {\n  padding-left: 10px;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn, .editormd-html-preview .editormd-toc-menu .toc-menu-btn {\n  color: #666;\n  min-width: 180px;\n  padding: 5px 10px;\n  border-radius: 4px;\n  display: inline-block;\n  -webkit-transition: background-color 500ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 500ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 500ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover, .editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover {\n  background-color: #f6f6f6;\n}\n.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa, .editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa {\n  float: right;\n  padding: 3px 0 0 10px;\n  font-size: 1.3em;\n}\n\n.markdown-body .editormd-toc-menu ul {\n  padding-left: 0;\n}\n.markdown-body .highlight pre, .markdown-body pre {\n  line-height: 1.6;\n}\n\nhr.editormd-page-break {\n  border: 1px dotted #ccc;\n  font-size: 0;\n  height: 2px;\n}\n\n@media only print {\n  hr.editormd-page-break {\n    background: none;\n    border: none;\n    height: 0;\n  }\n}\n.editormd-html-preview textarea {\n  display: none;\n}\n.editormd-html-preview hr.editormd-page-break {\n  background: none;\n  border: none;\n  height: 0;\n}\n\n.editormd-preview-close-btn {\n  color: #fff;\n  padding: 4px 6px;\n  font-size: 18px;\n  -webkit-border-radius: 500px;\n  -moz-border-radius: 500px;\n  -ms-border-radius: 500px;\n  -o-border-radius: 500px;\n  border-radius: 500px;\n  display: none;\n  background-color: #ccc;\n  position: absolute;\n  top: 25px;\n  right: 35px;\n  z-index: 19;\n  -webkit-transition: background-color 300ms ease-out;\n  /* Safari, Chrome */\n  -moz-transition: background-color 300ms ease-out;\n  /* Firefox 4.0~16.0 */\n  transition: background-color 300ms ease-out;\n  /* IE >9, FF >15, Opera >12.0 */\n}\n.editormd-preview-close-btn:hover {\n  background-color: #999;\n}\n\n.editormd-preview-active {\n  width: 100%;\n  padding: 40px;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/js/editormd.js",
    "content": "/*\n * Editor.md\n *\n * @file        editormd.js \n * @version     v1.5.0 \n * @description Open source online markdown editor.\n * @license     MIT License\n * @author      Pandao\n * {@link       https://github.com/pandao/editor.md}\n * @updateTime  2015-06-09\n */\n\n;(function(factory) {\n    \"use strict\";\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n\t{\n        if (define.amd) // for Require.js\n        {\n            /* Require.js define replace */\n        } \n        else \n        {\n\t\t    define([\"jquery\"], factory);  // for Sea.js\n        }\n\t} \n\telse\n\t{ \n        window.editormd = factory();\n\t}\n    \n}(function() {    \n\n    /* Require.js assignment replace */\n    \n    \"use strict\";\n    \n    var $ = (typeof (jQuery) !== \"undefined\") ? jQuery : Zepto;\n\n\tif (typeof ($) === \"undefined\") {\n\t\treturn ;\n\t}\n    \n    /**\n     * editormd\n     * \n     * @param   {String} id           编辑器的ID\n     * @param   {Object} options      配置选项 Key/Value\n     * @returns {Object} editormd     返回editormd对象\n     */\n    \n    var editormd         = function (id, options) {\n        return new editormd.fn.init(id, options);\n    };\n    \n    editormd.title        = editormd.$name = \"Editor.md\";\n    editormd.version      = \"1.5.0\";\n    editormd.homePage     = \"https://pandao.github.io/editor.md/\";\n    editormd.classPrefix  = \"editormd-\";\n    \n    editormd.toolbarModes = {\n        full : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"ucwords\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"link\", \"reference-link\", \"image\", \"code\", \"preformatted-text\", \"code-block\", \"table\", \"datetime\", \"emoji\", \"html-entities\", \"pagebreak\", \"|\",\n            \"goto-line\", \"watch\", \"preview\", \"fullscreen\", \"clear\", \"search\", \"|\",\n            \"help\", \"info\"\n        ],\n        simple : [\n            \"undo\", \"redo\", \"|\", \n            \"bold\", \"del\", \"italic\", \"quote\", \"uppercase\", \"lowercase\", \"|\", \n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"|\", \n            \"list-ul\", \"list-ol\", \"hr\", \"|\",\n            \"watch\", \"preview\", \"fullscreen\", \"|\",\n            \"help\", \"info\"\n        ],\n        mini : [\n            \"undo\", \"redo\", \"|\",\n            \"watch\", \"preview\", \"|\",\n            \"help\", \"info\"\n        ]\n    };\n    \n    editormd.defaults     = {\n        mode                 : \"gfm\",          //gfm or markdown\n        name                 : \"\",             // Form element name\n        value                : \"\",             // value for CodeMirror, if mode not gfm/markdown\n        theme                : \"\",             // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty\n        editorTheme          : \"default\",      // Editor area, this is CodeMirror theme at v1.5.0\n        previewTheme         : \"\",             // Preview area theme, default empty\n        markdown             : \"\",             // Markdown source code\n        appendMarkdown       : \"\",             // if in init textarea value not empty, append markdown to textarea\n        width                : \"100%\",\n        height               : \"100%\",\n        path                 : \"./lib/\",       // Dependents module file directory\n        pluginPath           : \"\",             // If this empty, default use settings.path + \"../plugins/\"\n        delay                : 300,            // Delay parse markdown to html, Uint : ms\n        autoLoadModules      : true,           // Automatic load dependent module files\n        watch                : true,\n        placeholder          : \"Enjoy Markdown! coding now...\",\n        gotoLine             : true,\n        codeFold             : false,\n        autoHeight           : false,\n\t\tautoFocus            : true,\n        autoCloseTags        : true,\n        searchReplace        : true,\n        syncScrolling        : true,           // true | false | \"single\", default true\n        readOnly             : false,\n        tabSize              : 4,\n\t\tindentUnit           : 4,\n        lineNumbers          : true,\n\t\tlineWrapping         : true,\n\t\tautoCloseBrackets    : true,\n\t\tshowTrailingSpace    : true,\n\t\tmatchBrackets        : true,\n\t\tindentWithTabs       : true,\n\t\tstyleSelectedText    : true,\n        matchWordHighlight   : true,           // options: true, false, \"onselected\"\n        styleActiveLine      : true,           // Highlight the current line\n        dialogLockScreen     : true,\n        dialogShowMask       : true,\n        dialogDraggable      : true,\n        dialogMaskBgColor    : \"#fff\",\n        dialogMaskOpacity    : 0.1,\n        fontSize             : \"13px\",\n        saveHTMLToTextarea   : false,\n        disabledKeyMaps      : [],\n        \n        onload               : function() {},\n        onresize             : function() {},\n        onchange             : function() {},\n        onwatch              : null,\n        onunwatch            : null,\n        onpreviewing         : function() {},\n        onpreviewed          : function() {},\n        onfullscreen         : function() {},\n        onfullscreenExit     : function() {},\n        onscroll             : function() {},\n        onpreviewscroll      : function() {},\n        \n        imageUpload          : false,\n        imageFormats         : [\"jpg\", \"jpeg\", \"gif\", \"png\", \"bmp\", \"webp\"],\n        imageUploadURL       : \"\",\n        crossDomainUpload    : false,\n        uploadCallbackURL    : \"\",\n        \n        toc                  : true,           // Table of contents\n        tocm                 : false,           // Using [TOCM], auto create ToC dropdown menu\n        tocTitle             : \"\",             // for ToC dropdown menu btn\n        tocDropdown          : false,\n        tocContainer         : \"\",\n        tocStartLevel        : 1,              // Said from H1 to create ToC\n        htmlDecode           : false,          // Open the HTML tag identification \n        pageBreak            : true,           // Enable parse page break [========]\n        atLink               : true,           // for @link\n        emailLink            : true,           // for email address auto link\n        taskList             : false,          // Enable Github Flavored Markdown task lists\n        emoji                : false,          // :emoji: , Support Github emoji, Twitter Emoji (Twemoji);\n                                               // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts;\n                                               // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x;\n        tex                  : false,          // TeX(LaTeX), based on KaTeX\n        flowChart            : false,          // flowChart.js only support IE9+\n        sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        previewCodeHighlight : true,\n                \n        toolbar              : true,           // show/hide toolbar\n        toolbarAutoFixed     : true,           // on window scroll auto fixed position\n        toolbarIcons         : \"full\",\n        toolbarTitles        : {},\n        toolbarHandlers      : {\n            ucwords : function() {\n                return editormd.toolbarHandlers.ucwords;\n            },\n            lowercase : function() {\n                return editormd.toolbarHandlers.lowercase;\n            }\n        },\n        toolbarCustomIcons   : {               // using html tag create toolbar icon, unused default <a> tag.\n            lowercase        : \"<a href=\\\"javascript:;\\\" title=\\\"Lowercase\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"lowercase\\\" style=\\\"font-size:24px;margin-top: -10px;\\\">a</i></a>\",\n            \"ucwords\"        : \"<a href=\\\"javascript:;\\\" title=\\\"ucwords\\\" unselectable=\\\"on\\\"><i class=\\\"fa\\\" name=\\\"ucwords\\\" style=\\\"font-size:20px;margin-top: -3px;\\\">Aa</i></a>\"\n        }, \n        toolbarIconsClass    : {\n            undo             : \"fa-undo\",\n            redo             : \"fa-repeat\",\n            bold             : \"fa-bold\",\n            del              : \"fa-strikethrough\",\n            italic           : \"fa-italic\",\n            quote            : \"fa-quote-left\",\n            uppercase        : \"fa-font\",\n            h1               : editormd.classPrefix + \"bold\",\n            h2               : editormd.classPrefix + \"bold\",\n            h3               : editormd.classPrefix + \"bold\",\n            h4               : editormd.classPrefix + \"bold\",\n            h5               : editormd.classPrefix + \"bold\",\n            h6               : editormd.classPrefix + \"bold\",\n            \"list-ul\"        : \"fa-list-ul\",\n            \"list-ol\"        : \"fa-list-ol\",\n            hr               : \"fa-minus\",\n            link             : \"fa-link\",\n            \"reference-link\" : \"fa-anchor\",\n            image            : \"fa-picture-o\",\n            code             : \"fa-code\",\n            \"preformatted-text\" : \"fa-file-code-o\",\n            \"code-block\"     : \"fa-file-code-o\",\n            table            : \"fa-table\",\n            datetime         : \"fa-clock-o\",\n            emoji            : \"fa-smile-o\",\n            \"html-entities\"  : \"fa-copyright\",\n            pagebreak        : \"fa-newspaper-o\",\n            \"goto-line\"      : \"fa-terminal\", // fa-crosshairs\n            watch            : \"fa-eye-slash\",\n            unwatch          : \"fa-eye\",\n            preview          : \"fa-desktop\",\n            search           : \"fa-search\",\n            fullscreen       : \"fa-arrows-alt\",\n            clear            : \"fa-eraser\",\n            help             : \"fa-question-circle\",\n            info             : \"fa-info-circle\"\n        },        \n        toolbarIconTexts     : {},\n        \n        lang : {\n            name        : \"zh-cn\",\n            description : \"开源在线Markdown编辑器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目录\",\n            toolbar     : {\n                undo             : \"撤销（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗体\",\n                del              : \"删除线\",\n                italic           : \"斜体\",\n                quote            : \"引用\",\n                ucwords          : \"将每个单词首字母转成大写\",\n                uppercase        : \"将所选转换成大写\",\n                lowercase        : \"将所选转换成小写\",\n                h1               : \"标题1\",\n                h2               : \"标题2\",\n                h3               : \"标题3\",\n                h4               : \"标题4\",\n                h5               : \"标题5\",\n                h6               : \"标题6\",\n                \"list-ul\"        : \"无序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用链接\",\n                image            : \"添加图片\",\n                code             : \"行内代码\",\n                \"preformatted-text\" : \"预格式文本 / 代码块（缩进风格）\",\n                \"code-block\"     : \"代码块（多语言风格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期时间\",\n                emoji            : \"Emoji表情\",\n                \"html-entities\"  : \"HTML实体字符\",\n                pagebreak        : \"插入分页符\",\n                \"goto-line\"      : \"跳转到行\",\n                watch            : \"关闭实时预览\",\n                unwatch          : \"开启实时预览\",\n                preview          : \"全窗口预览HTML（按 Shift + ESC还原）\",\n                fullscreen       : \"全屏（按ESC还原）\",\n                clear            : \"清空\",\n                search           : \"搜索\",\n                help             : \"使用帮助\",\n                info             : \"关于\" + editormd.title\n            },\n            buttons : {\n                enter  : \"确定\",\n                cancel : \"取消\",\n                close  : \"关闭\"\n            },\n            dialog : {\n                link : {\n                    title    : \"添加链接\",\n                    url      : \"链接地址\",\n                    urlTitle : \"链接标题\",\n                    urlEmpty : \"错误：请填写链接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用链接\",\n                    name     : \"引用名称\",\n                    url      : \"链接地址\",\n                    urlId    : \"链接ID\",\n                    urlTitle : \"链接标题\",\n                    nameEmpty: \"错误：引用链接的名称不能为空。\",\n                    idEmpty  : \"错误：请填写引用链接的ID。\",\n                    urlEmpty : \"错误：请填写引用链接的URL地址。\"\n                },\n                image : {\n                    title    : \"添加图片\",\n                    url      : \"图片地址\",\n                    link     : \"图片链接\",\n                    alt      : \"图片描述\",\n                    uploadButton     : \"本地上传\",\n                    imageURLEmpty    : \"错误：图片地址不能为空。\",\n                    uploadFileEmpty  : \"错误：上传的图片不能为空。\",\n                    formatNotAllowed : \"错误：只允许上传图片文件，允许上传的图片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加预格式文本或代码块\", \n                    emptyAlert        : \"错误：请填写预格式文本或代码的内容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代码块\",                    \n                    selectLabel       : \"代码语言：\",\n                    selectDefaultText : \"请选择代码语言\",\n                    otherLanguage     : \"其他语言\",\n                    unselectedLanguageAlert : \"错误：请选择代码所属的语言类型。\",\n                    codeEmptyAlert    : \"错误：请填写代码内容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML 实体字符\"\n                },\n                help : {\n                    title : \"使用帮助\"\n                }\n            }\n        }\n    };\n    \n    editormd.classNames  = {\n        tex : editormd.classPrefix + \"tex\"\n    };\n\n    editormd.dialogZindex = 99999;\n    \n    editormd.$katex       = null;\n    editormd.$marked      = null;\n    editormd.$CodeMirror  = null;\n    editormd.$prettyPrint = null;\n    \n    var timer, flowchartTimer;\n\n    editormd.prototype    = editormd.fn = {\n        state : {\n            watching   : false,\n            loaded     : false,\n            preview    : false,\n            fullscreen : false\n        },\n        \n        /**\n         * 构造函数/实例初始化\n         * Constructor / instance initialization\n         * \n         * @param   {String}   id            编辑器的ID\n         * @param   {Object}   [options={}]  配置选项 Key/Value\n         * @returns {editormd}               返回editormd的实例对象\n         */\n        \n        init : function (id, options) {\n            \n            options              = options || {};\n            \n            if (typeof id === \"object\")\n            {\n                options = id;\n            }\n            \n            var _this            = this;\n            var classPrefix      = this.classPrefix  = editormd.classPrefix; \n            var settings         = this.settings     = $.extend(true, editormd.defaults, options);\n            \n            id                   = (typeof id === \"object\") ? settings.id : id;\n            \n            var editor           = this.editor       = $(\"#\" + id);\n            \n            this.id              = id;\n            this.lang            = settings.lang;\n            \n            var classNames       = this.classNames   = {\n                textarea : {\n                    html     : classPrefix + \"html-textarea\",\n                    markdown : classPrefix + \"markdown-textarea\"\n                }\n            };\n            \n            settings.pluginPath = (settings.pluginPath === \"\") ? settings.path + \"../plugins/\" : settings.pluginPath; \n            \n            this.state.watching = (settings.watch) ? true : false;\n            \n            if ( !editor.hasClass(\"editormd\") ) {\n                editor.addClass(\"editormd\");\n            }\n            \n            editor.css({\n                width  : (typeof settings.width  === \"number\") ? settings.width  + \"px\" : settings.width,\n                height : (typeof settings.height === \"number\") ? settings.height + \"px\" : settings.height\n            });\n            \n            if (settings.autoHeight)\n            {\n                editor.css(\"height\", \"auto\");\n            }\n                        \n            var markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            \n            if (markdownTextarea.length < 1)\n            {\n                editor.append(\"<textarea></textarea>\");\n                markdownTextarea = this.markdownTextarea = editor.children(\"textarea\");\n            }\n            \n            markdownTextarea.addClass(classNames.textarea.markdown).attr(\"placeholder\", settings.placeholder);\n            \n            if (typeof markdownTextarea.attr(\"name\") === \"undefined\" || markdownTextarea.attr(\"name\") === \"\")\n            {\n                markdownTextarea.attr(\"name\", (settings.name !== \"\") ? settings.name : id + \"-markdown-doc\");\n            }\n            \n            var appendElements = [\n                (!settings.readOnly) ? \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"preview-close-btn\\\"></a>\" : \"\",\n                ( (settings.saveHTMLToTextarea) ? \"<textarea class=\\\"\" + classNames.textarea.html + \"\\\" name=\\\"\" + id + \"-html-code\\\"></textarea>\" : \"\" ),\n                \"<div class=\\\"\" + classPrefix + \"preview\\\"><div class=\\\"markdown-body \" + classPrefix + \"preview-container\\\"></div></div>\",\n                \"<div class=\\\"\" + classPrefix + \"container-mask\\\" style=\\\"display:block;\\\"></div>\",\n                \"<div class=\\\"\" + classPrefix + \"mask\\\"></div>\"\n            ].join(\"\\n\");\n            \n            editor.append(appendElements).addClass(classPrefix + \"vertical\");\n            \n            if (settings.theme !== \"\") \n            {\n                editor.addClass(classPrefix + \"theme-\" + settings.theme);\n            }\n            \n            this.mask          = editor.children(\".\" + classPrefix + \"mask\");    \n            this.containerMask = editor.children(\".\" + classPrefix  + \"container-mask\");\n            \n            if (settings.markdown !== \"\")\n            {\n                markdownTextarea.val(settings.markdown);\n            }\n            \n            if (settings.appendMarkdown !== \"\")\n            {\n                markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown);\n            }\n            \n            this.htmlTextarea     = editor.children(\".\" + classNames.textarea.html);            \n            this.preview          = editor.children(\".\" + classPrefix + \"preview\");\n            this.previewContainer = this.preview.children(\".\" + classPrefix + \"preview-container\");\n            \n            if (settings.previewTheme !== \"\") \n            {\n                this.preview.addClass(classPrefix + \"preview-theme-\" + settings.previewTheme);\n            }\n            \n            if (typeof define === \"function\" && define.amd)\n            {\n                if (typeof katex !== \"undefined\") \n                {\n                    editormd.$katex = katex;\n                }\n                \n                if (settings.searchReplace && !settings.readOnly) \n                {\n                    editormd.loadCSS(settings.path + \"codemirror/addon/dialog/dialog\");\n                    editormd.loadCSS(settings.path + \"codemirror/addon/search/matchesonscrollbar\");\n                }\n            }\n            \n            if ((typeof define === \"function\" && define.amd) || !settings.autoLoadModules)\n            {\n                if (typeof CodeMirror !== \"undefined\") {\n                    editormd.$CodeMirror = CodeMirror;\n                }\n                \n                if (typeof marked     !== \"undefined\") {\n                    editormd.$marked     = marked;\n                }\n                \n                this.setCodeMirror().setToolbar().loadedDisplay();\n            } \n            else \n            {\n                this.loadQueues();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 所需组件加载队列\n         * Required components loading queue\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        loadQueues : function() {\n            var _this        = this;\n            var settings     = this.settings;\n            var loadPath     = settings.path;\n                                \n            var loadFlowChartOrSequenceDiagram = function() {\n                \n                if (editormd.isIE8) \n                {\n                    _this.loadedDisplay();\n                    \n                    return ;\n                }\n\n                if (settings.flowChart || settings.sequenceDiagram) \n                {\n                    editormd.loadScript(loadPath + \"raphael.min\", function() {\n\n                        editormd.loadScript(loadPath + \"underscore.min\", function() {  \n\n                            if (!settings.flowChart && settings.sequenceDiagram) \n                            {\n                                editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                    _this.loadedDisplay();\n                                });\n                            }\n                            else if (settings.flowChart && !settings.sequenceDiagram) \n                            {      \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        _this.loadedDisplay();\n                                    });\n                                });\n                            }\n                            else if (settings.flowChart && settings.sequenceDiagram) \n                            {  \n                                editormd.loadScript(loadPath + \"flowchart.min\", function() {  \n                                    editormd.loadScript(loadPath + \"jquery.flowchart.min\", function() {\n                                        editormd.loadScript(loadPath + \"sequence-diagram.min\", function() {\n                                            _this.loadedDisplay();\n                                        });\n                                    });\n                                });\n                            }\n                        });\n\n                    });\n                } \n                else\n                {\n                    _this.loadedDisplay();\n                }\n            }; \n\n            editormd.loadCSS(loadPath + \"codemirror/codemirror.min\");\n            \n            if (settings.searchReplace && !settings.readOnly)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/dialog/dialog\");\n                editormd.loadCSS(loadPath + \"codemirror/addon/search/matchesonscrollbar\");\n            }\n            \n            if (settings.codeFold)\n            {\n                editormd.loadCSS(loadPath + \"codemirror/addon/fold/foldgutter\");            \n            }\n            \n            editormd.loadScript(loadPath + \"codemirror/codemirror.min\", function() {\n                editormd.$CodeMirror = CodeMirror;\n                \n                editormd.loadScript(loadPath + \"codemirror/modes.min\", function() {\n                    \n                    editormd.loadScript(loadPath + \"codemirror/addons.min\", function() {\n                        \n                        _this.setCodeMirror();\n                        \n                        if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n                        {\n                            _this.loadedDisplay();\n                            \n                            return false;\n                        }\n                        \n                        _this.setToolbar();\n\n                        editormd.loadScript(loadPath + \"marked.min\", function() {\n\n                            editormd.$marked = marked;\n                                \n                            if (settings.previewCodeHighlight) \n                            {\n                                editormd.loadScript(loadPath + \"prettify.min\", function() {\n                                    loadFlowChartOrSequenceDiagram();\n                                });\n                            } \n                            else\n                            {                  \n                                loadFlowChartOrSequenceDiagram();\n                            }\n                        });\n                        \n                    });\n                    \n                });\n                \n            });\n\n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的整体主题，主要是工具栏\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setTheme : function(theme) {\n            var editor      = this.editor;\n            var oldTheme    = this.settings.theme;\n            var themePrefix = this.classPrefix + \"theme-\";\n            \n            editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.theme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 设置 CodeMirror（编辑区）的主题\n         * Setting CodeMirror (Editor area) theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setEditorTheme : function(theme) {  \n            var settings   = this.settings;  \n            settings.editorTheme = theme;  \n            \n            if (theme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            this.cm.setOption(\"theme\", theme);\n            \n            return this;\n        },\n        \n        /**\n         * setEditorTheme() 的别名\n         * setEditorTheme() alias\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorTheme : function (theme) {            \n            this.setEditorTheme(theme);\n            \n            return this;\n        },\n        \n        /**\n         * 设置 Editor.md 的主题\n         * Setting Editor.md theme\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setPreviewTheme : function(theme) {  \n            var preview     = this.preview;\n            var oldTheme    = this.settings.previewTheme;\n            var themePrefix = this.classPrefix + \"preview-theme-\";\n            \n            preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme);\n            \n            this.settings.previewTheme = theme;\n            \n            return this;\n        },\n        \n        /**\n         * 配置和初始化CodeMirror组件\n         * CodeMirror initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirror : function() { \n            var settings         = this.settings;\n            var editor           = this.editor;\n            \n            if (settings.editorTheme !== \"default\")\n            {\n                editormd.loadCSS(settings.path + \"codemirror/theme/\" + settings.editorTheme);\n            }\n            \n            var codeMirrorConfig = {\n                mode                      : settings.mode,\n                theme                     : settings.editorTheme,\n                tabSize                   : settings.tabSize,\n                dragDrop                  : false,\n                autofocus                 : settings.autoFocus,\n                autoCloseTags             : settings.autoCloseTags,\n                readOnly                  : (settings.readOnly) ? \"nocursor\" : false,\n                indentUnit                : settings.indentUnit,\n                lineNumbers               : settings.lineNumbers,\n                lineWrapping              : settings.lineWrapping,\n                extraKeys                 : {\n                                                \"Ctrl-Q\": function(cm) { \n                                                    cm.foldCode(cm.getCursor()); \n                                                }\n                                            },\n                foldGutter                : settings.codeFold,\n                gutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n                matchBrackets             : settings.matchBrackets,\n                indentWithTabs            : settings.indentWithTabs,\n                styleActiveLine           : settings.styleActiveLine,\n                styleSelectedText         : settings.styleSelectedText,\n                autoCloseBrackets         : settings.autoCloseBrackets,\n                showTrailingSpace         : settings.showTrailingSpace,\n                highlightSelectionMatches : ( (!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === \"onselected\") ? false : /\\w/ } )\n            };\n            \n            this.codeEditor = this.cm        = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig);\n            this.codeMirror = this.cmElement = editor.children(\".CodeMirror\");\n            \n            if (settings.value !== \"\")\n            {\n                this.cm.setValue(settings.value);\n            }\n\n            this.codeMirror.css({\n                fontSize : settings.fontSize,\n                width    : (!settings.watch) ? \"100%\" : \"50%\"\n            });\n            \n            if (settings.autoHeight)\n            {\n                this.codeMirror.css(\"height\", \"auto\");\n                this.cm.setOption(\"viewportMargin\", Infinity);\n            }\n            \n            if (!settings.lineNumbers)\n            {\n                this.codeMirror.find(\".CodeMirror-gutters\").css(\"border-right\", \"none\");\n            }\n\n            return this;\n        },\n        \n        /**\n         * 获取CodeMirror的配置选项\n         * Get CodeMirror setting options\n         * \n         * @returns {Mixed}                  return CodeMirror setting option value\n         */\n        \n        getCodeMirrorOption : function(key) {            \n            return this.cm.getOption(key);\n        },\n        \n        /**\n         * 配置和重配置CodeMirror的选项\n         * CodeMirror setting options / resettings\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setCodeMirrorOption : function(key, value) {\n            \n            this.cm.setOption(key, value);\n            \n            return this;\n        },\n        \n        /**\n         * 添加 CodeMirror 键盘快捷键\n         * Add CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        addKeyMap : function(map, bottom) {\n            this.cm.addKeyMap(map, bottom);\n            \n            return this;\n        },\n        \n        /**\n         * 移除 CodeMirror 键盘快捷键\n         * Remove CodeMirror keyboard shortcuts key map\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        removeKeyMap : function(map) {\n            this.cm.removeKeyMap(map);\n            \n            return this;\n        },\n        \n        /**\n         * 跳转到指定的行\n         * Goto CodeMirror line\n         * \n         * @param   {String|Intiger}   line      line number or \"first\"|\"last\"\n         * @returns {editormd}                   返回editormd的实例对象\n         */\n        \n        gotoLine : function (line) {\n            \n            var settings = this.settings;\n            \n            if (!settings.gotoLine)\n            {\n                return this;\n            }\n            \n            var cm       = this.cm;\n            var editor   = this.editor;\n            var count    = cm.lineCount();\n            var preview  = this.preview;\n            \n            if (typeof line === \"string\")\n            {\n                if(line === \"last\")\n                {\n                    line = count;\n                }\n            \n                if (line === \"first\")\n                {\n                    line = 1;\n                }\n            }\n            \n            if (typeof line !== \"number\") \n            {  \n                alert(\"Error: The line number must be an integer.\");\n                return this;\n            }\n            \n            line  = parseInt(line) - 1;\n            \n            if (line > count)\n            {\n                alert(\"Error: The line number range 1-\" + count);\n                \n                return this;\n            }\n            \n            cm.setCursor( {line : line, ch : 0} );\n            \n            var scrollInfo   = cm.getScrollInfo();\n            var clientHeight = scrollInfo.clientHeight; \n            var coords       = cm.charCoords({line : line, ch : 0}, \"local\");\n            \n            cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2);\n            \n            if (settings.watch)\n            {            \n                var cmScroll  = this.codeMirror.find(\".CodeMirror-scroll\")[0];\n                var height    = $(cmScroll).height(); \n                var scrollTop = cmScroll.scrollTop;         \n                var percent   = (scrollTop / cmScroll.scrollHeight);\n\n                if (scrollTop === 0)\n                {\n                    preview.scrollTop(0);\n                } \n                else if (scrollTop + height >= cmScroll.scrollHeight - 16)\n                { \n                    preview.scrollTop(preview[0].scrollHeight);                    \n                } \n                else\n                {                    \n                    preview.scrollTop(preview[0].scrollHeight * percent);\n                }\n            }\n\n            cm.focus();\n            \n            return this;\n        },\n        \n        /**\n         * 扩展当前实例对象，可同时设置多个或者只设置一个\n         * Extend editormd instance object, can mutil setting.\n         * \n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        extend : function() {\n            if (typeof arguments[1] !== \"undefined\")\n            {\n                if (typeof arguments[1] === \"function\")\n                {\n                    arguments[1] = $.proxy(arguments[1], this);\n                }\n\n                this[arguments[0]] = arguments[1];\n            }\n            \n            if (typeof arguments[0] === \"object\" && typeof arguments[0].length === \"undefined\")\n            {\n                $.extend(true, this, arguments[0]);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 设置或扩展当前实例对象，单个设置\n         * Extend editormd instance object, one by one\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        set : function (key, value) {\n            \n            if (typeof value !== \"undefined\" && typeof value === \"function\")\n            {\n                value = $.proxy(value, this);\n            }\n            \n            this[key] = value;\n\n            return this;\n        },\n        \n        /**\n         * 重新配置\n         * Resetting editor options\n         * \n         * @param   {String|Object}   key       option key\n         * @param   {String|Object}   value     option value\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        config : function(key, value) {\n            var settings = this.settings;\n            \n            if (typeof key === \"object\")\n            {\n                settings = $.extend(true, settings, key);\n            }\n            \n            if (typeof key === \"string\")\n            {\n                settings[key] = value;\n            }\n            \n            this.settings = settings;\n            this.recreate();\n            \n            return this;\n        },\n        \n        /**\n         * 注册事件处理方法\n         * Bind editor event handle\n         * \n         * @param   {String}     eventType      event type\n         * @param   {Function}   callback       回调函数\n         * @returns {editormd}                  this(editormd instance object.)\n         */\n        \n        on : function(eventType, callback) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {                \n                settings[\"on\" + eventType] = $.proxy(callback, this);      \n            }\n\n            return this;\n        },\n        \n        /**\n         * 解除事件处理方法\n         * Unbind editor event handle\n         * \n         * @param   {String}   eventType          event type\n         * @returns {editormd}                    this(editormd instance object.)\n         */\n        \n        off : function(eventType) {\n            var settings = this.settings;\n            \n            if (typeof settings[\"on\" + eventType] !== \"undefined\") \n            {\n                settings[\"on\" + eventType] = function(){};\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 显示工具栏\n         * Display toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showToolbar : function(callback) {\n            var settings = this.settings;\n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find(\".\" + this.classPrefix + \"menu\").html() === \"\") )\n            {\n                this.setToolbar();\n            }\n            \n            settings.toolbar = true; \n            \n            this.toolbar.show();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏工具栏\n         * Hide toolbar\n         * \n         * @param   {Function} [callback=function(){}] 回调函数\n         * @returns {editormd}                         this(editormd instance object.)\n         */\n        \n        hideToolbar : function(callback) { \n            var settings = this.settings;\n            \n            settings.toolbar = false;  \n            this.toolbar.hide();\n            this.resize();\n            \n            $.proxy(callback || function(){}, this)();\n\n            return this;\n        },\n        \n        /**\n         * 页面滚动时工具栏的固定定位\n         * Set toolbar in window scroll auto fixed position\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarAutoFixed : function(fixed) {\n            \n            var state    = this.state;\n            var editor   = this.editor;\n            var toolbar  = this.toolbar;\n            var settings = this.settings;\n            \n            if (typeof fixed !== \"undefined\")\n            {\n                settings.toolbarAutoFixed = fixed;\n            }\n            \n            var autoFixedHandle = function(){\n                var $window = $(window);\n                var top     = $window.scrollTop();\n                \n                if (!settings.toolbarAutoFixed)\n                {\n                    return false;\n                }\n\n                if (top - editor.offset().top > 10 && top < editor.height())\n                {\n                    toolbar.css({\n                        position : \"fixed\",\n                        width    : editor.width() + \"px\",\n                        left     : ($window.width() - editor.width()) / 2 + 25 + \"px\"\n                    });\n                }\n                else\n                {\n                    toolbar.css({\n                        position : \"absolute\",\n                        width    : \"100%\",\n                        left     : 0\n                    });\n                }\n            };\n            \n            if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed)\n            {\n                $(window).bind(\"scroll\", autoFixedHandle);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 配置和初始化工具栏\n         * Set toolbar and Initialization\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbar : function() {\n            var settings    = this.settings;  \n            \n            if(settings.readOnly) {\n                return this;\n            }\n            \n            var editor      = this.editor;\n            var preview     = this.preview;\n            var classPrefix = this.classPrefix;\n            \n            var toolbar     = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            \n            if (settings.toolbar && toolbar.length < 1)\n            {            \n                var toolbarHTML = \"<div class=\\\"\" + classPrefix + \"toolbar\\\"><div class=\\\"\" + classPrefix + \"toolbar-container\\\"><ul class=\\\"\" + classPrefix + \"menu\\\"></ul></div></div>\";\n                \n                editor.append(toolbarHTML);\n                toolbar = this.toolbar = editor.children(\".\" + classPrefix + \"toolbar\");\n            }\n            \n            if (!settings.toolbar) \n            {\n                toolbar.hide();\n                \n                return this;\n            }\n            \n            toolbar.show();\n            \n            var icons       = (typeof settings.toolbarIcons === \"function\") ? settings.toolbarIcons() \n                            : ((typeof settings.toolbarIcons === \"string\")  ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons);\n            \n            var toolbarMenu = toolbar.find(\".\" + this.classPrefix + \"menu\"), menu = \"\";\n            var pullRight   = false;\n            \n            for (var i = 0, len = icons.length; i < len; i++)\n            {\n                var name = icons[i];\n\n                if (name === \"||\") \n                { \n                    pullRight = true;\n                } \n                else if (name === \"|\")\n                {\n                    menu += \"<li class=\\\"divider\\\" unselectable=\\\"on\\\">|</li>\";\n                }\n                else\n                {\n                    var isHeader = (/h(\\d)/.test(name));\n                    var index    = name;\n                    \n                    if (name === \"watch\" && !settings.watch) {\n                        index = \"unwatch\";\n                    }\n                    \n                    var title     = settings.lang.toolbar[index];\n                    var iconTexts = settings.toolbarIconTexts[index];\n                    var iconClass = settings.toolbarIconsClass[index];\n                    \n                    title     = (typeof title     === \"undefined\") ? \"\" : title;\n                    iconTexts = (typeof iconTexts === \"undefined\") ? \"\" : iconTexts;\n                    iconClass = (typeof iconClass === \"undefined\") ? \"\" : iconClass;\n\n                    var menuItem = pullRight ? \"<li class=\\\"pull-right\\\">\" : \"<li>\";\n                    \n                    if (typeof settings.toolbarCustomIcons[name] !== \"undefined\" && typeof settings.toolbarCustomIcons[name] !== \"function\")\n                    {\n                        menuItem += settings.toolbarCustomIcons[name];\n                    }\n                    else \n                    {\n                        menuItem += \"<a href=\\\"javascript:;\\\" title=\\\"\" + title + \"\\\" unselectable=\\\"on\\\">\";\n                        menuItem += \"<i class=\\\"fa \" + iconClass + \"\\\" name=\\\"\"+name+\"\\\" unselectable=\\\"on\\\">\"+((isHeader) ? name.toUpperCase() : ( (iconClass === \"\") ? iconTexts : \"\") ) + \"</i>\";\n                        menuItem += \"</a>\";\n                    }\n\n                    menuItem += \"</li>\";\n\n                    menu = pullRight ? menuItem + menu : menu + menuItem;\n                }\n            }\n\n            toolbarMenu.html(menu);\n            \n            toolbarMenu.find(\"[title=\\\"Lowercase\\\"]\").attr(\"title\", settings.lang.toolbar.lowercase);\n            toolbarMenu.find(\"[title=\\\"ucwords\\\"]\").attr(\"title\", settings.lang.toolbar.ucwords);\n            \n            this.setToolbarHandler();\n            this.setToolbarAutoFixed();\n\n            return this;\n        },\n        \n        /**\n         * 工具栏图标事件处理对象序列\n         * Get toolbar icons event handlers\n         * \n         * @param   {Object}   cm    CodeMirror的实例对象\n         * @param   {String}   name  要获取的事件处理器名称\n         * @returns {Object}         返回处理对象序列\n         */\n            \n        dialogLockScreen : function() {\n            $.proxy(editormd.dialogLockScreen, this)();\n            \n            return this;\n        },\n\n        dialogShowMask : function(dialog) {\n            $.proxy(editormd.dialogShowMask, this)(dialog);\n            \n            return this;\n        },\n        \n        getToolbarHandles : function(name) {  \n            var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers;\n            \n            return (name && typeof toolbarIconHandlers[name] !== \"undefined\") ? toolbarHandlers[name] : toolbarHandlers;\n        },\n        \n        /**\n         * 工具栏图标事件处理器\n         * Bind toolbar icons event handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        setToolbarHandler : function() {\n            var _this               = this;\n            var settings            = this.settings;\n            \n            if (!settings.toolbar || settings.readOnly) {\n                return this;\n            }\n            \n            var toolbar             = this.toolbar;\n            var cm                  = this.cm;\n            var classPrefix         = this.classPrefix;           \n            var toolbarIcons        = this.toolbarIcons = toolbar.find(\".\" + classPrefix + \"menu > li > a\");  \n            var toolbarIconHandlers = this.getToolbarHandles();  \n                \n            toolbarIcons.bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(event) {\n\n                var icon                = $(this).children(\".fa\");\n                var name                = icon.attr(\"name\");\n                var cursor              = cm.getCursor();\n                var selection           = cm.getSelection();\n\n                if (name === \"\") {\n                    return ;\n                }\n                \n                _this.activeIcon = icon;\n\n                if (typeof toolbarIconHandlers[name] !== \"undefined\") \n                {\n                    $.proxy(toolbarIconHandlers[name], _this)(cm);\n                }\n                else \n                {\n                    if (typeof settings.toolbarHandlers[name] !== \"undefined\") \n                    {\n                        $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection);\n                    }\n                }\n                \n                if (name !== \"link\" && name !== \"reference-link\" && name !== \"image\" && name !== \"code-block\" && \n                    name !== \"preformatted-text\" && name !== \"watch\" && name !== \"preview\" && name !== \"search\" && name !== \"fullscreen\" && name !== \"info\") \n                {\n                    cm.focus();\n                }\n\n                return false;\n\n            });\n\n            return this;\n        },\n        \n        /**\n         * 动态创建对话框\n         * Creating custom dialogs\n         * \n         * @param   {Object} options  配置项键值对 Key/Value\n         * @returns {dialog}          返回创建的dialog的jQuery实例对象\n         */\n        \n        createDialog : function(options) {            \n            return $.proxy(editormd.createDialog, this)(options);\n        },\n        \n        /**\n         * 创建关于Editor.md的对话框\n         * Create about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        createInfoDialog : function() {\n            var _this        = this;\n\t\t\tvar editor       = this.editor;\n            var classPrefix  = this.classPrefix;  \n            \n            var infoDialogHTML = [\n                \"<div class=\\\"\" + classPrefix + \"dialog \" + classPrefix + \"dialog-info\\\" style=\\\"\\\">\",\n                \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\",\n                \"<h1><i class=\\\"editormd-logo editormd-logo-lg editormd-logo-color\\\"></i> \" + editormd.title + \"<small>v\" + editormd.version + \"</small></h1>\",\n                \"<p>\" + this.lang.description + \"</p>\",\n                \"<p style=\\\"margin: 10px 0 20px 0;\\\"><a href=\\\"\" + editormd.homePage + \"\\\" target=\\\"_blank\\\">\" + editormd.homePage + \" <i class=\\\"fa fa-external-link\\\"></i></a></p>\",\n                \"<p style=\\\"font-size: 0.85em;\\\">Copyright &copy; 2015 <a href=\\\"https://github.com/pandao\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">Pandao</a>, The <a href=\\\"https://github.com/pandao/editor.md/blob/master/LICENSE\\\" target=\\\"_blank\\\" class=\\\"hover-link\\\">MIT</a> License.</p>\",\n                \"</div>\",\n                \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\",\n                \"</div>\"\n            ].join(\"\\n\");\n\n            editor.append(infoDialogHTML);\n            \n            var infoDialog  = this.infoDialog = editor.children(\".\" + classPrefix + \"dialog-info\");\n\n            infoDialog.find(\".\" + classPrefix + \"dialog-close\").bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function() {\n                _this.hideInfoDialog();\n            });\n            \n            infoDialog.css(\"border\", (editormd.isIE8) ? \"1px solid #ddd\" : \"\").css(\"z-index\", editormd.dialogZindex).show();\n            \n            this.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 关于Editor.md对话居中定位\n         * Editor.md dialog position handle\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        infoDialogPosition : function() {\n            var infoDialog = this.infoDialog;\n            \n\t\t\tvar _infoDialogPosition = function() {\n\t\t\t\tinfoDialog.css({\n\t\t\t\t\ttop  : ($(window).height() - infoDialog.height()) / 2 + \"px\",\n\t\t\t\t\tleft : ($(window).width()  - infoDialog.width()) / 2  + \"px\"\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t_infoDialogPosition();\n\n\t\t\t$(window).resize(_infoDialogPosition);\n            \n            return this;\n        },\n        \n        /**\n         * 显示关于Editor.md\n         * Display about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        showInfoDialog : function() {\n\n            $(\"html,body\").css(\"overflow-x\", \"hidden\");\n            \n            var _this       = this;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;         \n\t\t\tvar infoDialog  = this.infoDialog = editor.children(\".\" + this.classPrefix + \"dialog-info\");\n            \n            if (infoDialog.length < 1)\n            {\n                this.createInfoDialog();\n            }\n            \n            this.lockScreen(true);\n            \n            this.mask.css({\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t}).show();\n\n\t\t\tinfoDialog.css(\"z-index\", editormd.dialogZindex).show();\n\n\t\t\tthis.infoDialogPosition();\n\n            return this;\n        },\n        \n        /**\n         * 隐藏关于Editor.md\n         * Hide about Editor.md dialog\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        hideInfoDialog : function() {            \n            $(\"html,body\").css(\"overflow-x\", \"\");\n            this.infoDialog.hide();\n            this.mask.hide();\n            this.lockScreen(false);\n\n            return this;\n        },\n        \n        /**\n         * 锁屏\n         * lock screen\n         * \n         * @param   {Boolean}    lock    Boolean 布尔值，是否锁屏\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        lockScreen : function(lock) {\n            editormd.lockScreen(lock);\n            this.resize();\n\n            return this;\n        },\n        \n        /**\n         * 编辑器界面重建，用于动态语言包或模块加载等\n         * Recreate editor\n         * \n         * @returns {editormd}  返回editormd的实例对象\n         */\n        \n        recreate : function() {\n            var _this            = this;\n            var editor           = this.editor;\n            var settings         = this.settings;\n            \n            this.codeMirror.remove();\n            \n            this.setCodeMirror();\n\n            if (!settings.readOnly) \n            {\n                if (editor.find(\".editormd-dialog\").length > 0) {\n                    editor.find(\".editormd-dialog\").remove();\n                }\n                \n                if (settings.toolbar) \n                {  \n                    this.getToolbarHandles();                  \n                    this.setToolbar();\n                }\n            }\n            \n            this.loadedDisplay(true);\n\n            return this;\n        },\n        \n        /**\n         * 高亮预览HTML的pre代码部分\n         * highlight of preview codes\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        previewCodeHighlight : function() {    \n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (settings.previewCodeHighlight) \n            {\n                previewContainer.find(\"pre\").addClass(\"prettyprint linenums\");\n                \n                if (typeof prettyPrint !== \"undefined\")\n                {                    \n                    prettyPrint();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析TeX(KaTeX)科学公式\n         * TeX(KaTeX) Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        katexRender : function() {\n            \n            if (timer === null)\n            {\n                return this;\n            }\n            \n            this.previewContainer.find(\".\" + editormd.classNames.tex).each(function(){\n                var tex  = $(this);\n                editormd.$katex.render(tex.text(), tex[0]);\n                \n                tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n            });   \n\n            return this;\n        },\n        \n        /**\n         * 解析和渲染流程图及时序图\n         * FlowChart and SequenceDiagram Renderer\n         * \n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        flowChartAndSequenceDiagramRender : function() {\n            var $this            = this;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            \n            if (editormd.isIE8) {\n                return this;\n            }\n\n            if (settings.flowChart) {\n                if (flowchartTimer === null) {\n                    return this;\n                }\n                \n                previewContainer.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                previewContainer.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n                    \n            var preview    = $this.preview;\n            var codeMirror = $this.codeMirror;\n            var codeView   = codeMirror.find(\".CodeMirror-scroll\");\n\n            var height    = codeView.height();\n            var scrollTop = codeView.scrollTop();                    \n            var percent   = (scrollTop / codeView[0].scrollHeight);\n            var tocHeight = 0;\n\n            preview.find(\".markdown-toc-list\").each(function(){\n                tocHeight += $(this).height();\n            });\n\n            var tocMenuHeight = preview.find(\".editormd-toc-menu\").height(); \n            tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n            if (scrollTop === 0) \n            {\n                preview.scrollTop(0);\n            } \n            else if (scrollTop + height >= codeView[0].scrollHeight - 16)\n            { \n                preview.scrollTop(preview[0].scrollHeight);                        \n            } \n            else\n            {                  \n                preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent);\n            }\n\n            return this;\n        },\n        \n        /**\n         * 注册键盘快捷键处理\n         * Register CodeMirror keyMaps (keyboard shortcuts).\n         * \n         * @param   {Object}    keyMap      KeyMap key/value {\"(Ctrl/Shift/Alt)-Key\" : function(){}}\n         * @returns {editormd}              return this\n         */\n        \n        registerKeyMaps : function(keyMap) {\n            \n            var _this           = this;\n            var cm              = this.cm;\n            var settings        = this.settings;\n            var toolbarHandlers = editormd.toolbarHandlers;\n            var disabledKeyMaps = settings.disabledKeyMaps;\n            \n            keyMap              = keyMap || null;\n            \n            if (keyMap)\n            {\n                for (var i in keyMap)\n                {\n                    if ($.inArray(i, disabledKeyMaps) < 0)\n                    {\n                        var map = {};\n                        map[i]  = keyMap[i];\n\n                        cm.addKeyMap(keyMap);\n                    }\n                }\n            }\n            else\n            {\n                for (var k in editormd.keyMaps)\n                {\n                    var _keyMap = editormd.keyMaps[k];\n                    var handle = (typeof _keyMap === \"string\") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this);\n                    \n                    if ($.inArray(k, [\"F9\", \"F10\", \"F11\"]) < 0 && $.inArray(k, disabledKeyMaps) < 0)\n                    {\n                        var _map = {};\n                        _map[k] = handle;\n\n                        cm.addKeyMap(_map);\n                    }\n                }\n                \n                $(window).keydown(function(event) {\n                    \n                    var keymaps = {\n                        \"120\" : \"F9\",\n                        \"121\" : \"F10\",\n                        \"122\" : \"F11\"\n                    };\n                    \n                    if ( $.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0 )\n                    {\n                        switch (event.keyCode)\n                        {\n                            case 120:\n                                    $.proxy(toolbarHandlers[\"watch\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 121:\n                                    $.proxy(toolbarHandlers[\"preview\"], _this)();\n                                    return false;\n                                break;\n                                \n                            case 122:\n                                    $.proxy(toolbarHandlers[\"fullscreen\"], _this)();                        \n                                    return false;\n                                break;\n                                \n                            default:\n                                break;\n                        }\n                    }\n                });\n            }\n\n            return this;\n        },\n        \n        /**\n         * 绑定同步滚动\n         * \n         * @returns {editormd} return this\n         */\n        \n        bindScrollEvent : function() {\n            \n            var _this            = this;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var mouseOrTouch     = editormd.mouseOrTouch;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n                \n            var cmBindScroll = function() {    \n                codeMirror.find(\".CodeMirror-scroll\").bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();                    \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    \n                    var tocHeight = 0;\n                    \n                    preview.find(\".markdown-toc-list\").each(function(){\n                        tocHeight += $(this).height();\n                    });\n                    \n                    var tocMenuHeight = preview.find(\".editormd-toc-menu\").height();\n                    tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight;\n\n                    if (scrollTop === 0) \n                    {\n                        preview.scrollTop(0);\n                    } \n                    else if (scrollTop + height >= $(this)[0].scrollHeight - 16)\n                    { \n                        preview.scrollTop(preview[0].scrollHeight);                        \n                    } \n                    else\n                    {\n                        preview.scrollTop((preview[0].scrollHeight  + tocHeight + tocMenuHeight) * percent);\n                    }\n                    \n                    $.proxy(settings.onscroll, _this)(event);\n                });\n            };\n\n            var cmUnbindScroll = function() {\n                codeMirror.find(\".CodeMirror-scroll\").unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            };\n\n            var previewBindScroll = function() {\n                \n                preview.bind(mouseOrTouch(\"scroll\", \"touchmove\"), function(event) {\n                    var height    = $(this).height();\n                    var scrollTop = $(this).scrollTop();         \n                    var percent   = (scrollTop / $(this)[0].scrollHeight);\n                    var codeView  = codeMirror.find(\".CodeMirror-scroll\");\n\n                    if(scrollTop === 0) \n                    {\n                        codeView.scrollTop(0);\n                    }\n                    else if (scrollTop + height >= $(this)[0].scrollHeight)\n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight);                        \n                    }\n                    else \n                    {\n                        codeView.scrollTop(codeView[0].scrollHeight * percent);\n                    }\n                    \n                    $.proxy(settings.onpreviewscroll, _this)(event);\n                });\n\n            };\n\n            var previewUnbindScroll = function() {\n                preview.unbind(mouseOrTouch(\"scroll\", \"touchmove\"));\n            }; \n\n\t\t\tcodeMirror.bind({\n\t\t\t\tmouseover  : cmBindScroll,\n\t\t\t\tmouseout   : cmUnbindScroll,\n\t\t\t\ttouchstart : cmBindScroll,\n\t\t\t\ttouchend   : cmUnbindScroll\n\t\t\t});\n            \n            if (settings.syncScrolling === \"single\") {\n                return this;\n            }\n            \n\t\t\tpreview.bind({\n\t\t\t\tmouseover  : previewBindScroll,\n\t\t\t\tmouseout   : previewUnbindScroll,\n\t\t\t\ttouchstart : previewBindScroll,\n\t\t\t\ttouchend   : previewUnbindScroll\n\t\t\t});\n\n            return this;\n        },\n        \n        bindChangeEvent : function() {\n            \n            var _this            = this;\n            var cm               = this.cm;\n            var settings         = this.settings;\n            \n            if (!settings.syncScrolling) {\n                return this;\n            }\n            \n            cm.on(\"change\", function(_cm, changeObj) {\n                \n                if (settings.watch)\n                {\n                    _this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                }\n                \n                timer = setTimeout(function() {\n                    clearTimeout(timer);\n                    _this.save();\n                    timer = null;\n                }, settings.delay);\n            });\n\n            return this;\n        },\n        \n        /**\n         * 加载队列完成之后的显示处理\n         * Display handle of the module queues loaded after.\n         * \n         * @param   {Boolean}   recreate   是否为重建编辑器\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        loadedDisplay : function(recreate) {\n            \n            recreate             = recreate || false;\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var settings         = this.settings;\n            \n            this.containerMask.hide();\n            \n            this.save();\n            \n            if (settings.watch) {\n                preview.show();\n            }\n            \n            editor.data(\"oldWidth\", editor.width()).data(\"oldHeight\", editor.height()); // 为了兼容Zepto\n            \n            this.resize();\n            this.registerKeyMaps();\n            \n            $(window).resize(function(){\n                _this.resize();\n            });\n            \n            this.bindScrollEvent().bindChangeEvent();\n            \n            if (!recreate)\n            {\n                $.proxy(settings.onload, this)();\n            }\n            \n            this.state.loaded = true;\n\n            return this;\n        },\n        \n        /**\n         * 设置编辑器的宽度\n         * Set editor width\n         * \n         * @param   {Number|String} width  编辑器宽度值\n         * @returns {editormd}             返回editormd的实例对象\n         */\n        \n        width : function(width) {\n                \n            this.editor.css(\"width\", (typeof width === \"number\") ? width  + \"px\" : width);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 设置编辑器的高度\n         * Set editor height\n         * \n         * @param   {Number|String} height  编辑器高度值\n         * @returns {editormd}              返回editormd的实例对象\n         */\n        \n        height : function(height) {\n                \n            this.editor.css(\"height\", (typeof height === \"number\")  ? height  + \"px\" : height);            \n            this.resize();\n            \n            return this;\n        },\n        \n        /**\n         * 调整编辑器的尺寸和布局\n         * Resize editor layout\n         * \n         * @param   {Number|String} [width=null]  编辑器宽度值\n         * @param   {Number|String} [height=null] 编辑器高度值\n         * @returns {editormd}                    返回editormd的实例对象\n         */\n        \n        resize : function(width, height) {\n            \n            width  = width  || null;\n            height = height || null;\n            \n            var state      = this.state;\n            var editor     = this.editor;\n            var preview    = this.preview;\n            var toolbar    = this.toolbar;\n            var settings   = this.settings;\n            var codeMirror = this.codeMirror;\n            \n            if (width)\n            {\n                editor.css(\"width\", (typeof width  === \"number\") ? width  + \"px\" : width);\n            }\n            \n            if (settings.autoHeight && !state.fullscreen && !state.preview)\n            {\n                editor.css(\"height\", \"auto\");\n                codeMirror.css(\"height\", \"auto\");\n            } \n            else \n            {\n                if (height) \n                {\n                    editor.css(\"height\", (typeof height === \"number\") ? height + \"px\" : height);\n                }\n                \n                if (state.fullscreen)\n                {\n                    editor.height($(window).height());\n                }\n\n                if (settings.toolbar && !settings.readOnly) \n                {\n                    codeMirror.css(\"margin-top\", toolbar.height() + 1).height(editor.height() - toolbar.height());\n                } \n                else\n                {\n                    codeMirror.css(\"margin-top\", 0).height(editor.height());\n                }\n            }\n            \n            if(settings.watch) \n            {\n                codeMirror.width(editor.width() / 2);\n                preview.width((!state.preview) ? editor.width() / 2 : editor.width());\n                \n                this.previewContainer.css(\"padding\", settings.autoHeight ? \"20px 20px 50px 40px\" : \"20px\");\n                \n                if (settings.toolbar && !settings.readOnly) \n                {\n                    preview.css(\"top\", toolbar.height() + 1);\n                } \n                else \n                {\n                    preview.css(\"top\", 0);\n                }\n                \n                if (settings.autoHeight && !state.fullscreen && !state.preview)\n                {\n                    preview.height(\"\");\n                }\n                else\n                {                \n                    var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height();\n                    \n                    preview.height(previewHeight);\n                }\n            } \n            else \n            {\n                codeMirror.width(editor.width());\n                preview.hide();\n            }\n            \n            if (state.loaded) \n            {\n                $.proxy(settings.onresize, this)();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 解析和保存Markdown代码\n         * Parse & Saving Markdown source code\n         * \n         * @returns {editormd}     返回editormd的实例对象\n         */\n        \n        save : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var settings         = this.settings;\n\n            if (timer === null && !(!settings.watch && state.preview))\n            {\n                return this;\n            }\n            \n            var cm               = this.cm;            \n            var cmValue          = cm.getValue();\n            var previewContainer = this.previewContainer;\n\n            if (settings.mode !== \"gfm\" && settings.mode !== \"markdown\") \n            {\n                this.markdownTextarea.val(cmValue);\n                \n                return this;\n            }\n            \n            var marked          = editormd.$marked;\n            var markdownToC     = this.markdownToC = [];            \n            var rendererOptions = this.markedRendererOptions = {  \n                toc                  : settings.toc,\n                tocm                 : settings.tocm,\n                tocStartLevel        : settings.tocStartLevel,\n                pageBreak            : settings.pageBreak,\n                taskList             : settings.taskList,\n                emoji                : settings.emoji,\n                tex                  : settings.tex,\n                atLink               : settings.atLink,           // for @link\n                emailLink            : settings.emailLink,        // for mail address auto link\n                flowChart            : settings.flowChart,\n                sequenceDiagram      : settings.sequenceDiagram,\n                previewCodeHighlight : settings.previewCodeHighlight,\n            };\n            \n            var markedOptions = this.markedOptions = {\n                renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n                gfm         : true,\n                tables      : true,\n                breaks      : true,\n                pedantic    : false,\n                sanitize    : (settings.htmlDecode) ? false : true,  // 关闭忽略HTML标签，即开启识别HTML标签，默认为false\n                smartLists  : true,\n                smartypants : true\n            };\n            \n            marked.setOptions(markedOptions);\n                    \n            var newMarkdownDoc = editormd.$marked(cmValue, markedOptions);\n            \n            //console.info(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode);\n            \n            //console.error(\"cmValue\", cmValue, newMarkdownDoc);\n            \n            this.markdownTextarea.text(cmValue);\n            \n            cm.save();\n            \n            if (settings.saveHTMLToTextarea) \n            {\n                this.htmlTextarea.text(newMarkdownDoc);\n            }\n            \n            if(settings.watch || (!settings.watch && state.preview))\n            {\n                previewContainer.html(newMarkdownDoc);\n\n                this.previewCodeHighlight();\n                \n                if (settings.toc) \n                {\n                    var tocContainer = (settings.tocContainer === \"\") ? previewContainer : $(settings.tocContainer);\n                    var tocMenu      = tocContainer.find(\".\" + this.classPrefix + \"toc-menu\");\n                    \n                    tocContainer.attr(\"previewContainer\", (settings.tocContainer === \"\") ? \"true\" : \"false\");\n                    \n                    if (settings.tocContainer !== \"\" && tocMenu.length > 0)\n                    {\n                        tocMenu.remove();\n                    }\n                    \n                    editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n                    if (settings.tocDropdown || tocContainer.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n                    {\n                        editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== \"\") ? settings.tocTitle : this.lang.tocTitle);\n                    }\n            \n                    if (settings.tocContainer !== \"\")\n                    {\n                        previewContainer.find(\".markdown-toc\").css(\"border\", \"none\");\n                    }\n                }\n                \n                if (settings.tex)\n                {\n                    if (!editormd.kaTeXLoaded && settings.autoLoadModules) \n                    {\n                        editormd.loadKaTeX(function() {\n                            editormd.$katex = katex;\n                            editormd.kaTeXLoaded = true;\n                            _this.katexRender();\n                        });\n                    } \n                    else \n                    {\n                        editormd.$katex = katex;\n                        this.katexRender();\n                    }\n                }                \n                \n                if (settings.flowChart || settings.sequenceDiagram)\n                {\n                    flowchartTimer = setTimeout(function(){\n                        clearTimeout(flowchartTimer);\n                        _this.flowChartAndSequenceDiagramRender();\n                        flowchartTimer = null;\n                    }, 10);\n                }\n\n                if (state.loaded) \n                {\n                    $.proxy(settings.onchange, this)();\n                }\n            }\n\n            return this;\n        },\n        \n        /**\n         * 聚焦光标位置\n         * Focusing the cursor position\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        focus : function() {\n            this.cm.focus();\n\n            return this;\n        },\n        \n        /**\n         * 设置光标的位置\n         * Set cursor position\n         * \n         * @param   {Object}    cursor 要设置的光标位置键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setCursor : function(cursor) {\n            this.cm.setCursor(cursor);\n\n            return this;\n        },\n        \n        /**\n         * 获取当前光标的位置\n         * Get the current position of the cursor\n         * \n         * @returns {Cursor}         返回一个光标Cursor对象\n         */\n        \n        getCursor : function() {\n            return this.cm.getCursor();\n        },\n        \n        /**\n         * 设置光标选中的范围\n         * Set cursor selected ranges\n         * \n         * @param   {Object}    from   开始位置的光标键值对象，例：{line:1, ch:0}\n         * @param   {Object}    to     结束位置的光标键值对象，例：{line:1, ch:0}\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setSelection : function(from, to) {\n        \n            this.cm.setSelection(from, to);\n        \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本\n         * Get the texts from cursor selected\n         * \n         * @returns {String}         返回选中文本的字符串形式\n         */\n        \n        getSelection : function() {\n            return this.cm.getSelection();\n        },\n        \n        /**\n         * 设置光标选中的文本范围\n         * Set the cursor selection ranges\n         * \n         * @param   {Array}    ranges  cursor selection ranges array\n         * @returns {Array}            return this\n         */\n        \n        setSelections : function(ranges) {\n            this.cm.setSelections(ranges);\n            \n            return this;\n        },\n        \n        /**\n         * 获取光标选中的文本范围\n         * Get the cursor selection ranges\n         * \n         * @returns {Array}         return selection ranges array\n         */\n        \n        getSelections : function() {\n            return this.cm.getSelections();\n        },\n        \n        /**\n         * 替换当前光标选中的文本或在当前光标处插入新字符\n         * Replace the text at the current cursor selected or insert a new character at the current cursor position\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        replaceSelection : function(value) {\n            this.cm.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 在当前光标处插入新字符\n         * Insert a new character at the current cursor position\n         *\n         * 同replaceSelection()方法\n         * With the replaceSelection() method\n         * \n         * @param   {String}    value  要插入的字符值\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        insertValue : function(value) {\n            this.replaceSelection(value);\n\n            return this;\n        },\n        \n        /**\n         * 追加markdown\n         * append Markdown to editor\n         * \n         * @param   {String}    md     要追加的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        appendMarkdown : function(md) {\n            var settings = this.settings;\n            var cm       = this.cm;\n            \n            cm.setValue(cm.getValue() + md);\n            \n            return this;\n        },\n        \n        /**\n         * 设置和传入编辑器的markdown源文档\n         * Set Markdown source document\n         * \n         * @param   {String}    md     要传入的markdown源文档\n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        setMarkdown : function(md) {\n            this.cm.setValue(md || this.settings.markdown);\n            \n            return this;\n        },\n        \n        /**\n         * 获取编辑器的markdown源文档\n         * Set Editor.md markdown/CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getMarkdown : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 获取编辑器的源文档\n         * Get CodeMirror value\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getValue : function() {\n            return this.cm.getValue();\n        },\n        \n        /**\n         * 设置编辑器的源文档\n         * Set CodeMirror value\n         * \n         * @param   {String}     value   set code/value/string/text\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        setValue : function(value) {\n            this.cm.setValue(value);\n            \n            return this;\n        },\n        \n        /**\n         * 清空编辑器\n         * Empty CodeMirror editor container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        clear : function() {\n            this.cm.setValue(\"\");\n            \n            return this;\n        },\n        \n        /**\n         * 获取解析后存放在Textarea的HTML源码\n         * Get parsed html code from Textarea\n         * \n         * @returns {String}               返回HTML源码\n         */\n        \n        getHTML : function() {\n            if (!this.settings.saveHTMLToTextarea)\n            {\n                alert(\"Error: settings.saveHTMLToTextarea == false\");\n\n                return false;\n            }\n            \n            return this.htmlTextarea.val();\n        },\n        \n        /**\n         * getHTML()的别名\n         * getHTML (alias)\n         * \n         * @returns {String}           Return html code 返回HTML源码\n         */\n        \n        getTextareaSavedHTML : function() {\n            return this.getHTML();\n        },\n        \n        /**\n         * 获取预览窗口的HTML源码\n         * Get html from preview container\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        getPreviewedHTML : function() {\n            if (!this.settings.watch)\n            {\n                alert(\"Error: settings.watch == false\");\n\n                return false;\n            }\n            \n            return this.previewContainer.html();\n        },\n        \n        /**\n         * 开启实时预览\n         * Enable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        watch : function(callback) {     \n            var settings        = this.settings;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0)\n            {\n                return this;\n            }\n            \n            this.state.watching = settings.watch = true;\n            this.preview.show();\n            \n            if (this.toolbar)\n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon        = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.watch);\n                icon.removeClass(unWatchIcon).addClass(watchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"1px solid #ddd\").width(this.editor.width() / 2); \n            \n            timer = 0;\n            \n            this.save().resize();\n            \n            if (!settings.onwatch)\n            {\n                settings.onwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 关闭实时预览\n         * Disable real-time watching\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        unwatch : function(callback) {\n            var settings        = this.settings;\n            this.state.watching = settings.watch = false;\n            this.preview.hide();\n            \n            if (this.toolbar) \n            {\n                var watchIcon   = settings.toolbarIconsClass.watch;\n                var unWatchIcon = settings.toolbarIconsClass.unwatch;\n                \n                var icon    = this.toolbar.find(\".fa[name=watch]\");\n                icon.parent().attr(\"title\", settings.lang.toolbar.unwatch);\n                icon.removeClass(watchIcon).addClass(unWatchIcon);\n            }\n            \n            this.codeMirror.css(\"border-right\", \"none\").width(this.editor.width());\n            \n            this.resize();\n            \n            if (!settings.onunwatch)\n            {\n                settings.onunwatch = callback || function() {};\n            }\n            \n            $.proxy(settings.onunwatch, this)();\n            \n            return this;\n        },\n        \n        /**\n         * 显示编辑器\n         * Show editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        show : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.show(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器\n         * Hide editor\n         * \n         * @param   {Function} [callback=function()] 回调函数\n         * @returns {editormd}                       返回editormd的实例对象\n         */\n        \n        hide : function(callback) {\n            callback  = callback || function() {};\n            \n            var _this = this;\n            this.editor.hide(0, function() {\n                $.proxy(callback, _this)();\n            });\n            \n            return this;\n        },\n        \n        /**\n         * 隐藏编辑器部分，只预览HTML\n         * Enter preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewing : function() {\n            \n            var _this            = this;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var codeMirror       = this.codeMirror;\n            var previewContainer = this.previewContainer;\n            \n            if ($.inArray(settings.mode, [\"gfm\", \"markdown\"]) < 0) {\n                return this;\n            }\n            \n            if (settings.toolbar && toolbar) {\n                toolbar.toggle();\n                toolbar.find(\".fa[name=preview]\").toggleClass(\"active\");\n            }\n            \n            codeMirror.toggle();\n            \n            var escHandle = function(event) {\n                if (event.shiftKey && event.keyCode === 27) {\n                    _this.previewed();\n                }\n            };\n\n            if (codeMirror.css(\"display\") === \"none\") // 为了兼容Zepto，而不使用codeMirror.is(\":hidden\")\n            {\n                this.state.preview = true;\n\n                if (this.state.fullscreen) {\n                    preview.css(\"background\", \"#fff\");\n                }\n                \n                editor.find(\".\" + this.classPrefix + \"preview-close-btn\").show().bind(editormd.mouseOrTouch(\"click\", \"touchend\"), function(){\n                    _this.previewed();\n                });\n            \n                if (!settings.watch)\n                {\n                    this.save();\n                } \n                else \n                {\n                    previewContainer.css(\"padding\", \"\");\n                }\n                \n                previewContainer.addClass(this.classPrefix + \"preview-active\");\n\n                preview.show().css({\n                    position  : \"\",\n                    top       : 0,\n                    width     : editor.width(),\n                    height    : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height()\n                });\n                \n                if (this.state.loaded)\n                {\n                    $.proxy(settings.onpreviewing, this)();\n                }\n\n                $(window).bind(\"keyup\", escHandle);\n            } \n            else \n            {\n                $(window).unbind(\"keyup\", escHandle);\n                this.previewed();\n            }\n        },\n        \n        /**\n         * 显示编辑器部分，退出只预览HTML\n         * Exit preview html state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        previewed : function() {\n            \n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var previewContainer = this.previewContainer;\n            var previewCloseBtn  = editor.find(\".\" + this.classPrefix + \"preview-close-btn\");\n\n            this.state.preview   = false;\n            \n            this.codeMirror.show();\n            \n            if (settings.toolbar) {\n                toolbar.show();\n            }\n            \n            preview[(settings.watch) ? \"show\" : \"hide\"]();\n            \n            previewCloseBtn.hide().unbind(editormd.mouseOrTouch(\"click\", \"touchend\"));\n                \n            previewContainer.removeClass(this.classPrefix + \"preview-active\");\n                \n            if (settings.watch)\n            {\n                previewContainer.css(\"padding\", \"20px\");\n            }\n            \n            preview.css({ \n                background : null,\n                position   : \"absolute\",\n                width      : editor.width() / 2,\n                height     : (settings.autoHeight && !this.state.fullscreen) ? \"auto\" : editor.height() - toolbar.height(),\n                top        : (settings.toolbar)    ? toolbar.height() : 0\n            });\n\n            if (this.state.loaded)\n            {\n                $.proxy(settings.onpreviewed, this)();\n            }\n            \n            return this;\n        },\n        \n        /**\n         * 编辑器全屏显示\n         * Fullscreen show\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreen : function() {\n            \n            var _this            = this;\n            var state            = this.state;\n            var editor           = this.editor;\n            var preview          = this.preview;\n            var toolbar          = this.toolbar;\n            var settings         = this.settings;\n            var fullscreenClass  = this.classPrefix + \"fullscreen\";\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().toggleClass(\"active\"); \n            }\n            \n            var escHandle = function(event) {\n                if (!event.shiftKey && event.keyCode === 27) \n                {\n                    if (state.fullscreen)\n                    {\n                        _this.fullscreenExit();\n                    }\n                }\n            };\n\n            if (!editor.hasClass(fullscreenClass)) \n            {\n                state.fullscreen = true;\n\n                $(\"html,body\").css(\"overflow\", \"hidden\");\n                \n                editor.css({\n                    width    : $(window).width(),\n                    height   : $(window).height()\n                }).addClass(fullscreenClass);\n\n                this.resize();\n    \n                $.proxy(settings.onfullscreen, this)();\n\n                $(window).bind(\"keyup\", escHandle);\n            }\n            else\n            {           \n                $(window).unbind(\"keyup\", escHandle); \n                this.fullscreenExit();\n            }\n\n            return this;\n        },\n        \n        /**\n         * 编辑器退出全屏显示\n         * Exit fullscreen state\n         * \n         * @returns {editormd}         返回editormd的实例对象\n         */\n        \n        fullscreenExit : function() {\n            \n            var editor            = this.editor;\n            var settings          = this.settings;\n            var toolbar           = this.toolbar;\n            var fullscreenClass   = this.classPrefix + \"fullscreen\";  \n            \n            this.state.fullscreen = false;\n            \n            if (toolbar) {\n                toolbar.find(\".fa[name=fullscreen]\").parent().removeClass(\"active\"); \n            }\n\n            $(\"html,body\").css(\"overflow\", \"\");\n\n            editor.css({\n                width    : editor.data(\"oldWidth\"),\n                height   : editor.data(\"oldHeight\")\n            }).removeClass(fullscreenClass);\n\n            this.resize();\n            \n            $.proxy(settings.onfullscreenExit, this)();\n\n            return this;\n        },\n        \n        /**\n         * 加载并执行插件\n         * Load and execute the plugin\n         * \n         * @param   {String}     name    plugin name / function name\n         * @param   {String}     path    plugin load path\n         * @returns {editormd}           返回editormd的实例对象\n         */\n        \n        executePlugin : function(name, path) {\n            \n            var _this    = this;\n            var cm       = this.cm;\n            var settings = this.settings;\n            \n            path = settings.pluginPath + path;\n            \n            if (typeof define === \"function\") \n            {            \n                if (typeof this[name] === \"undefined\")\n                {\n                    alert(\"Error: \" + name + \" plugin is not found, you are not load this plugin.\");\n                    \n                    return this;\n                }\n                \n                this[name](cm);\n                \n                return this;\n            }\n            \n            if ($.inArray(path, editormd.loadFiles.plugin) < 0)\n            {\n                editormd.loadPlugin(path, function() {\n                    editormd.loadPlugins[name] = _this[name];\n                    _this[name](cm);\n                });\n            }\n            else\n            {\n                $.proxy(editormd.loadPlugins[name], this)(cm);\n            }\n            \n            return this;\n        },\n                \n        /**\n         * 搜索替换\n         * Search & replace\n         * \n         * @param   {String}     command    CodeMirror serach commands, \"find, fintNext, fintPrev, clearSearch, replace, replaceAll\"\n         * @returns {editormd}              return this\n         */\n        \n        search : function(command) {\n            var settings = this.settings;\n            \n            if (!settings.searchReplace)\n            {\n                alert(\"Error: settings.searchReplace == false\");\n                return this;\n            }\n            \n            if (!settings.readOnly)\n            {\n                this.cm.execCommand(command || \"find\");\n            }\n            \n            return this;\n        },\n        \n        searchReplace : function() {            \n            this.search(\"replace\");\n            \n            return this;\n        },\n        \n        searchReplaceAll : function() {          \n            this.search(\"replaceAll\");\n            \n            return this;\n        }\n    };\n    \n    editormd.fn.init.prototype = editormd.fn; \n   \n    /**\n     * 锁屏\n     * lock screen when dialog opening\n     * \n     * @returns {void}\n     */\n\n    editormd.dialogLockScreen = function() {\n        var settings = this.settings || {dialogLockScreen : true};\n        \n        if (settings.dialogLockScreen) \n        {            \n            $(\"html,body\").css(\"overflow\", \"hidden\");\n            this.resize();\n        }\n    };\n   \n    /**\n     * 显示透明背景层\n     * Display mask layer when dialog opening\n     * \n     * @param   {Object}     dialog    dialog jQuery object\n     * @returns {void}\n     */\n    \n    editormd.dialogShowMask = function(dialog) {\n        var editor   = this.editor;\n        var settings = this.settings || {dialogShowMask : true};\n        \n        dialog.css({\n            top  : ($(window).height() - dialog.height()) / 2 + \"px\",\n            left : ($(window).width()  - dialog.width())  / 2 + \"px\"\n        });\n\n        if (settings.dialogShowMask) {\n            editor.children(\".\" + this.classPrefix + \"mask\").css(\"z-index\", parseInt(dialog.css(\"z-index\")) - 1).show();\n        }\n    };\n\n    editormd.toolbarHandlers = {\n        undo : function() {\n            this.cm.undo();\n        },\n        \n        redo : function() {\n            this.cm.redo();\n        },\n        \n        bold : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"**\" + selection + \"**\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n        \n        del : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"~~\" + selection + \"~~\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        italic : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"*\" + selection + \"*\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        quote : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"> \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"> \" + selection);\n            }\n\n            //cm.replaceSelection(\"> \" + selection);\n            //cm.setCursor(cursor.line, (selection === \"\") ? cursor.ch + 2 : cursor.ch + selection.length + 2);\n        },\n        \n        ucfirst : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.firstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        ucwords : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(editormd.wordsFirstUpperCase(selection));\n            cm.setSelections(selections);\n        },\n        \n        uppercase : function() {\n            var cm         = this.cm;\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n\n            cm.replaceSelection(selection.toUpperCase());\n            cm.setSelections(selections);\n        },\n        \n        lowercase : function() {\n            var cm         = this.cm;\n            var cursor     = cm.getCursor();\n            var selection  = cm.getSelection();\n            var selections = cm.listSelections();\n            \n            cm.replaceSelection(selection.toLowerCase());\n            cm.setSelections(selections);\n        },\n\n        h1 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"# \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n            else\n            {\n                cm.replaceSelection(\"# \" + selection);\n            }\n        },\n\n        h2 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"## \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            }\n            else\n            {\n                cm.replaceSelection(\"## \" + selection);\n            }\n        },\n\n        h3 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n            else\n            {\n                cm.replaceSelection(\"### \" + selection);\n            }\n        },\n\n        h4 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"#### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 5);\n            }\n            else\n            {\n                cm.replaceSelection(\"#### \" + selection);\n            }\n        },\n\n        h5 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"##### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 6);\n            }\n            else\n            {\n                cm.replaceSelection(\"##### \" + selection);\n            }\n        },\n\n        h6 : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (cursor.ch !== 0)\n            {\n                cm.setCursor(cursor.line, 0);\n                cm.replaceSelection(\"###### \" + selection);\n                cm.setCursor(cursor.line, cursor.ch + 7);\n            }\n            else\n            {\n                cm.replaceSelection(\"###### \" + selection);\n            }\n        },\n\n        \"list-ul\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if (selection === \"\") \n            {\n                cm.replaceSelection(\"- \" + selection);\n            } \n            else \n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : \"- \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        \"list-ol\" : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            if(selection === \"\") \n            {\n                cm.replaceSelection(\"1. \" + selection);\n            }\n            else\n            {\n                var selectionText = selection.split(\"\\n\");\n\n                for (var i = 0, len = selectionText.length; i < len; i++) \n                {\n                    selectionText[i] = (selectionText[i] === \"\") ? \"\" : (i+1) + \". \" + selectionText[i];\n                }\n\n                cm.replaceSelection(selectionText.join(\"\\n\"));\n            }\n        },\n\n        hr : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(((cursor.ch !== 0) ? \"\\n\\n\" : \"\\n\") + \"------------\\n\\n\");\n        },\n\n        tex : function() {\n            if (!this.settings.tex)\n            {\n                alert(\"settings.tex === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"$$\" + selection + \"$$\");\n\n            if(selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 2);\n            }\n        },\n\n        link : function() {\n            this.executePlugin(\"linkDialog\", \"link-dialog/link-dialog\");\n        },\n\n        \"reference-link\" : function() {\n            this.executePlugin(\"referenceLinkDialog\", \"reference-link-dialog/reference-link-dialog\");\n        },\n\n        pagebreak : function() {\n            if (!this.settings.pageBreak)\n            {\n                alert(\"settings.pageBreak === false\");\n                return this;\n            }\n            \n            var cm        = this.cm;\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"\\r\\n[========]\\r\\n\");\n        },\n\n        image : function() {\n            this.executePlugin(\"imageDialog\", \"image-dialog/image-dialog\");\n        },\n        \n        code : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n\n            cm.replaceSelection(\"`\" + selection + \"`\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n\n        \"code-block\" : function() {\n            this.executePlugin(\"codeBlockDialog\", \"code-block-dialog/code-block-dialog\");            \n        },\n\n        \"preformatted-text\" : function() {\n            this.executePlugin(\"preformattedTextDialog\", \"preformatted-text-dialog/preformatted-text-dialog\");\n        },\n        \n        table : function() {\n            this.executePlugin(\"tableDialog\", \"table-dialog/table-dialog\");         \n        },\n        \n        datetime : function() {\n            var cm        = this.cm;\n            var selection = cm.getSelection();\n            var date      = new Date();\n            var langName  = this.settings.lang.name;\n            var datefmt   = editormd.dateFormat() + \" \" + editormd.dateFormat((langName === \"zh-cn\" || langName === \"zh-tw\") ? \"cn-week-day\" : \"week-day\");\n\n            cm.replaceSelection(datefmt);\n        },\n        \n        emoji : function() {\n            this.executePlugin(\"emojiDialog\", \"emoji-dialog/emoji-dialog\");\n        },\n                \n        \"html-entities\" : function() {\n            this.executePlugin(\"htmlEntitiesDialog\", \"html-entities-dialog/html-entities-dialog\");\n        },\n                \n        \"goto-line\" : function() {\n            this.executePlugin(\"gotoLineDialog\", \"goto-line-dialog/goto-line-dialog\");\n        },\n\n        watch : function() {    \n            this[this.settings.watch ? \"unwatch\" : \"watch\"]();\n        },\n\n        preview : function() {\n            this.previewing();\n        },\n\n        fullscreen : function() {\n            this.fullscreen();\n        },\n\n        clear : function() {\n            this.clear();\n        },\n        \n        search : function() {\n            this.search();\n        },\n\n        help : function() {\n            this.executePlugin(\"helpDialog\", \"help-dialog/help-dialog\");\n        },\n\n        info : function() {\n            this.showInfoDialog();\n        }\n    };\n    \n    editormd.keyMaps = {\n        \"Ctrl-1\"       : \"h1\",\n        \"Ctrl-2\"       : \"h2\",\n        \"Ctrl-3\"       : \"h3\",\n        \"Ctrl-4\"       : \"h4\",\n        \"Ctrl-5\"       : \"h5\",\n        \"Ctrl-6\"       : \"h6\",\n        \"Ctrl-B\"       : \"bold\",  // if this is string ==  editormd.toolbarHandlers.xxxx\n        \"Ctrl-D\"       : \"datetime\",\n        \n        \"Ctrl-E\"       : function() { // emoji\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.emoji)\n            {\n                alert(\"Error: settings.emoji == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\":\" + selection + \":\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-Alt-G\"   : \"goto-line\",\n        \"Ctrl-H\"       : \"hr\",\n        \"Ctrl-I\"       : \"italic\",\n        \"Ctrl-K\"       : \"code\",\n        \n        \"Ctrl-L\"        : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"[\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \"Ctrl-U\"         : \"list-ul\",\n        \n        \"Shift-Ctrl-A\"   : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            if (!this.settings.atLink)\n            {\n                alert(\"Error: settings.atLink == false\");\n                return ;\n            }\n\n            cm.replaceSelection(\"@\" + selection);\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 1);\n            }\n        },\n        \n        \"Shift-Ctrl-C\"     : \"code\",\n        \"Shift-Ctrl-Q\"     : \"quote\",\n        \"Shift-Ctrl-S\"     : \"del\",\n        \"Shift-Ctrl-K\"     : \"tex\",  // KaTeX\n        \n        \"Shift-Alt-C\"      : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            cm.replaceSelection([\"```\", selection, \"```\"].join(\"\\n\"));\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 3);\n            } \n        },\n        \n        \"Shift-Ctrl-Alt-C\" : \"code-block\",\n        \"Shift-Ctrl-H\"     : \"html-entities\",\n        \"Shift-Alt-H\"      : \"help\",\n        \"Shift-Ctrl-E\"     : \"emoji\",\n        \"Shift-Ctrl-U\"     : \"uppercase\",\n        \"Shift-Alt-U\"      : \"ucwords\",\n        \"Shift-Ctrl-Alt-U\" : \"ucfirst\",\n        \"Shift-Alt-L\"      : \"lowercase\",\n        \n        \"Shift-Ctrl-I\"     : function() {\n            var cm        = this.cm;\n            var cursor    = cm.getCursor();\n            var selection = cm.getSelection();\n            \n            var title = (selection === \"\") ? \"\" : \" \\\"\"+selection+\"\\\"\";\n\n            cm.replaceSelection(\"![\" + selection + \"](\"+title+\")\");\n\n            if (selection === \"\") {\n                cm.setCursor(cursor.line, cursor.ch + 4);\n            }\n        },\n        \n        \"Shift-Ctrl-Alt-I\" : \"image\",\n        \"Shift-Ctrl-L\"     : \"link\",\n        \"Shift-Ctrl-O\"     : \"list-ol\",\n        \"Shift-Ctrl-P\"     : \"preformatted-text\",\n        \"Shift-Ctrl-T\"     : \"table\",\n        \"Shift-Alt-P\"      : \"pagebreak\",\n        \"F9\"               : \"watch\",\n        \"F10\"              : \"preview\",\n        \"F11\"              : \"fullscreen\",\n    };\n    \n    /**\n     * 清除字符串两边的空格\n     * Clear the space of strings both sides.\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   trimed string    \n     */\n    \n    var trim = function(str) {\n        return (!String.prototype.trim) ? str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\") : str.trim();\n    };\n    \n    editormd.trim = trim;\n    \n    /**\n     * 所有单词首字母大写\n     * Words first to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var ucwords = function (str) {\n        return str.toLowerCase().replace(/\\b(\\w)|\\s(\\w)/g, function($1) {  \n            return $1.toUpperCase();\n        });\n    };\n    \n    editormd.ucwords = editormd.wordsFirstUpperCase = ucwords;\n    \n    /**\n     * 字符串首字母大写\n     * Only string first char to uppercase\n     * \n     * @param   {String}    str            string\n     * @returns {String}                   string\n     */\n    \n    var firstUpperCase = function(str) {        \n        return str.toLowerCase().replace(/\\b(\\w)/, function($1){\n            return $1.toUpperCase();\n        });\n    };\n    \n    var ucfirst = firstUpperCase;\n    \n    editormd.firstUpperCase = editormd.ucfirst = firstUpperCase;\n    \n    editormd.urls = {\n        atLinkBase : \"https://github.com/\"\n    };\n    \n    editormd.regexs = {\n        atLink        : /@(\\w+)/g,\n        email         : /(\\w+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emailLink     : /(mailto:)?([\\w\\.\\_]+)@(\\w+)\\.(\\w+)\\.?(\\w+)?/g,\n        emoji         : /:([\\w\\+-]+):/g,\n        emojiDatetime : /(\\d{2}:\\d{2}:\\d{2})/g,\n        twemoji       : /:(tw-([\\w]+)-?(\\w+)?):/g,\n        fontAwesome   : /:(fa-([\\w]+)(-(\\w+)){0,}):/g,\n        editormdLogo  : /:(editormd-logo-?(\\w+)?):/g,\n        pageBreak     : /^\\[[=]{8,}\\]$/\n    };\n\n    // Emoji graphics files url path\n    editormd.emoji     = {\n        path  : \"http://www.emoji-cheat-sheet.com/graphics/emojis/\",\n        ext   : \".png\"\n    };\n\n    // Twitter Emoji (Twemoji)  graphics files url path    \n    editormd.twemoji = {\n        path : \"http://twemoji.maxcdn.com/36x36/\",\n        ext  : \".png\"\n    };\n\n    /**\n     * 自定义marked的解析器\n     * Custom Marked renderer rules\n     * \n     * @param   {Array}    markdownToC     传入用于接收TOC的数组\n     * @returns {Renderer} markedRenderer  返回marked的Renderer自定义对象\n     */\n\n    editormd.markedRenderer = function(markdownToC, options) {\n        var defaults = {\n            toc                  : true,           // Table of contents\n            tocm                 : false,\n            tocStartLevel        : 1,              // Said from H1 to create ToC  \n            pageBreak            : true,\n            atLink               : true,           // for @link\n            emailLink            : true,           // for mail address auto link\n            taskList             : false,          // Enable Github Flavored Markdown task lists\n            emoji                : false,          // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis.\n            tex                  : false,          // TeX(LaTeX), based on KaTeX\n            flowChart            : false,          // flowChart.js only support IE9+\n            sequenceDiagram      : false,          // sequenceDiagram.js only support IE9+\n        };\n        \n        var settings        = $.extend(defaults, options || {});    \n        var marked          = editormd.$marked;\n        var markedRenderer  = new marked.Renderer();\n        markdownToC         = markdownToC || [];        \n            \n        var regexs          = editormd.regexs;\n        var atLinkReg       = regexs.atLink;\n        var emojiReg        = regexs.emoji;\n        var emailReg        = regexs.email;\n        var emailLinkReg    = regexs.emailLink;\n        var twemojiReg      = regexs.twemoji;\n        var faIconReg       = regexs.fontAwesome;\n        var editormdLogoReg = regexs.editormdLogo;\n        var pageBreakReg    = regexs.pageBreak;\n\n        markedRenderer.emoji = function(text) {\n            \n            text = text.replace(editormd.regexs.emojiDatetime, function($1) {           \n                return $1.replace(/:/g, \"&#58;\");\n            });\n            \n            var matchs = text.match(emojiReg);\n\n            if (!matchs || !settings.emoji) {\n                return text;\n            }\n\n            for (var i = 0, len = matchs.length; i < len; i++)\n            {            \n                if (matchs[i] === \":+1:\") {\n                    matchs[i] = \":\\\\+1:\";\n                }\n\n                text = text.replace(new RegExp(matchs[i]), function($1, $2){\n                    var faMatchs = $1.match(faIconReg);\n                    var name     = $1.replace(/:/g, \"\");\n\n                    if (faMatchs)\n                    {                        \n                        for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++)\n                        {\n                            var faName = faMatchs[fa].replace(/:/g, \"\");\n                            \n                            return \"<i class=\\\"fa \" + faName + \" fa-emoji\\\" title=\\\"\" + faName.replace(\"fa-\", \"\") + \"\\\"></i>\";\n                        }\n                    }\n                    else\n                    {\n                        var emdlogoMathcs = $1.match(editormdLogoReg);\n                        var twemojiMatchs = $1.match(twemojiReg);\n\n                        if (emdlogoMathcs)                                        \n                        {                            \n                            for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++)\n                            {\n                                var logoName = emdlogoMathcs[x].replace(/:/g, \"\");\n                                return \"<i class=\\\"\" + logoName + \"\\\" title=\\\"Editor.md logo (\" + logoName + \")\\\"></i>\";\n                            }\n                        }\n                        else if (twemojiMatchs) \n                        {\n                            for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++)\n                            {\n                                var twe = twemojiMatchs[t].replace(/:/g, \"\").replace(\"tw-\", \"\");\n                                return \"<img src=\\\"\" + editormd.twemoji.path + twe + editormd.twemoji.ext + \"\\\" title=\\\"twemoji-\" + twe + \"\\\" alt=\\\"twemoji-\" + twe + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                            }\n                        }\n                        else\n                        {\n                            var src = (name === \"+1\") ? \"plus1\" : name;\n                            src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                            src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n\n                            return \"<img src=\\\"\" + editormd.emoji.path + src + editormd.emoji.ext + \"\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + name + \"&#58;\\\" alt=\\\"&#58;\" + name + \"&#58;\\\" />\";\n                        }\n                    }\n                });\n            }\n\n            return text;\n        };\n\n        markedRenderer.atLink = function(text) {\n\n            if (atLinkReg.test(text))\n            { \n                if (settings.atLink) \n                {\n                    text = text.replace(emailReg, function($1, $2, $3, $4) {\n                        return $1.replace(/@/g, \"_#_&#64;_#_\");\n                    });\n\n                    text = text.replace(atLinkReg, function($1, $2) {\n                        return \"<a href=\\\"\" + editormd.urls.atLinkBase + \"\" + $2 + \"\\\" title=\\\"&#64;\" + $2 + \"\\\" class=\\\"at-link\\\">\" + $1 + \"</a>\";\n                    }).replace(/_#_&#64;_#_/g, \"@\");\n                }\n                \n                if (settings.emailLink)\n                {\n                    text = text.replace(emailLinkReg, function($1, $2, $3, $4, $5) {\n                        return (!$2 && $.inArray($5, \"jpg|jpeg|png|gif|webp|ico|icon|pdf\".split(\"|\")) < 0) ? \"<a href=\\\"mailto:\" + $1 + \"\\\">\"+$1+\"</a>\" : $1;\n                    });\n                }\n\n                return text;\n            }\n\n            return text;\n        };\n                \n        markedRenderer.link = function (href, title, text) {\n\n            if (this.options.sanitize) {\n                try {\n                    var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g,\"\").toLowerCase();\n                } catch(e) {\n                    return \"\";\n                }\n\n                if (prot.indexOf(\"javascript:\") === 0) {\n                    return \"\";\n                }\n            }\n\n            var out = \"<a href=\\\"\" + href + \"\\\"\";\n            \n            if (atLinkReg.test(title) || atLinkReg.test(text))\n            {\n                if (title)\n                {\n                    out += \" title=\\\"\" + title.replace(/@/g, \"&#64;\");\n                }\n                \n                return out + \"\\\">\" + text.replace(/@/g, \"&#64;\") + \"</a>\";\n            }\n\n            if (title) {\n                out += \" title=\\\"\" + title + \"\\\"\";\n            }\n\n            out += \">\" + text + \"</a>\";\n\n            return out;\n        };\n        \n        markedRenderer.heading = function(text, level, raw) {\n                    \n            var linkText       = text;\n            var hasLinkReg     = /\\s*\\<a\\s*href\\=\\\"(.*)\\\"\\s*([^\\>]*)\\>(.*)\\<\\/a\\>\\s*/;\n            var getLinkTextReg = /\\s*\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>\\s*/g;\n\n            if (hasLinkReg.test(text)) \n            {\n                var tempText = [];\n                text         = text.split(/\\<a\\s*([^\\>]+)\\>([^\\>]*)\\<\\/a\\>/);\n\n                for (var i = 0, len = text.length; i < len; i++)\n                {\n                    tempText.push(text[i].replace(/\\s*href\\=\\\"(.*)\\\"\\s*/g, \"\"));\n                }\n\n                text = tempText.join(\" \");\n            }\n            \n            text = trim(text);\n            \n            var escapedText    = text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n            var toc = {\n                text  : text,\n                level : level,\n                slug  : escapedText\n            };\n            \n            var isChinese = /^[\\u4e00-\\u9fa5]+$/.test(text);\n            var id        = (isChinese) ? escape(text).replace(/\\%/g, \"\") : text.toLowerCase().replace(/[^\\w]+/g, \"-\");\n\n            markdownToC.push(toc);\n            \n            var headingHTML = \"<h\" + level + \" id=\\\"h\"+ level + \"-\" + this.options.headerPrefix + id +\"\\\">\";\n            \n            headingHTML    += \"<a name=\\\"\" + text + \"\\\" class=\\\"reference-link\\\"></a>\";\n            headingHTML    += \"<span class=\\\"header-link octicon octicon-link\\\"></span>\";\n            headingHTML    += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text));\n            headingHTML    += \"</h\" + level + \">\";\n\n            return headingHTML;\n        };\n        \n        markedRenderer.pageBreak = function(text) {\n            if (pageBreakReg.test(text) && settings.pageBreak)\n            {\n                text = \"<hr style=\\\"page-break-after:always;\\\" class=\\\"page-break editormd-page-break\\\" />\";\n            }\n            \n            return text;\n        };\n\n        markedRenderer.paragraph = function(text) {\n            var isTeXInline     = /\\$\\$(.*)\\$\\$/g.test(text);\n            var isTeXLine       = /^\\$\\$(.*)\\$\\$$/.test(text);\n            var isTeXAddClass   = (isTeXLine)     ? \" class=\\\"\" + editormd.classNames.tex + \"\\\"\" : \"\";\n            var isToC           = (settings.tocm) ? /^(\\[TOC\\]|\\[TOCM\\])$/.test(text) : /^\\[TOC\\]$/.test(text);\n            var isToCMenu       = /^\\[TOCM\\]$/.test(text);\n            \n            if (!isTeXLine && isTeXInline) \n            {\n                text = text.replace(/(\\$\\$([^\\$]*)\\$\\$)+/g, function($1, $2) {\n                    return \"<span class=\\\"\" + editormd.classNames.tex + \"\\\">\" + $2.replace(/\\$/g, \"\") + \"</span>\";\n                });\n            } \n            else \n            {\n                text = (isTeXLine) ? text.replace(/\\$/g, \"\") : text;\n            }\n            \n            var tocHTML = \"<div class=\\\"markdown-toc editormd-markdown-toc\\\">\" + text + \"</div>\";\n            \n            return (isToC) ? ( (isToCMenu) ? \"<div class=\\\"editormd-toc-menu\\\">\" + tocHTML + \"</div><br/>\" : tocHTML )\n                           : ( (pageBreakReg.test(text)) ? this.pageBreak(text) : \"<p\" + isTeXAddClass + \">\" + this.atLink(this.emoji(text)) + \"</p>\\n\" );\n        };\n\n        markedRenderer.code = function (code, lang, escaped) { \n\n            if (lang === \"seq\" || lang === \"sequence\")\n            {\n                return \"<div class=\\\"sequence-diagram\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"flow\")\n            {\n                return \"<div class=\\\"flowchart\\\">\" + code + \"</div>\";\n            } \n            else if ( lang === \"math\" || lang === \"latex\" || lang === \"katex\")\n            {\n                return \"<p class=\\\"\" + editormd.classNames.tex + \"\\\">\" + code + \"</p>\";\n            } \n            else \n            {\n\n                return marked.Renderer.prototype.code.apply(this, arguments);\n            }\n        };\n\n        markedRenderer.tablecell = function(content, flags) {\n            var type = (flags.header) ? \"th\" : \"td\";\n            var tag  = (flags.align)  ? \"<\" + type +\" style=\\\"text-align:\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n            \n            return tag + this.atLink(this.emoji(content)) + \"</\" + type + \">\\n\";\n        };\n\n        markedRenderer.listitem = function(text) {\n            if (settings.taskList && /^\\s*\\[[x\\s]\\]\\s*/.test(text)) \n            {\n                text = text.replace(/^\\s*\\[\\s\\]\\s*/, \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" /> \")\n                           .replace(/^\\s*\\[x\\]\\s*/,  \"<input type=\\\"checkbox\\\" class=\\\"task-list-item-checkbox\\\" checked disabled /> \");\n\n                return \"<li style=\\\"list-style: none;\\\">\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n            else \n            {\n                return \"<li>\" + this.atLink(this.emoji(text)) + \"</li>\";\n            }\n        };\n        \n        return markedRenderer;\n    };\n    \n    /**\n     *\n     * 生成TOC(Table of Contents)\n     * Creating ToC (Table of Contents)\n     * \n     * @param   {Array}    toc             从marked获取的TOC数组列表\n     * @param   {Element}  container       插入TOC的容器元素\n     * @param   {Integer}  startLevel      Hx 起始层级\n     * @returns {Object}   tocContainer    返回ToC列表容器层的jQuery对象元素\n     */\n    \n    editormd.markdownToCRenderer = function(toc, container, tocDropdown, startLevel) {\n        \n        var html        = \"\";    \n        var lastLevel   = 0;\n        var classPrefix = this.classPrefix;\n        \n        startLevel      = startLevel  || 1;\n        \n        for (var i = 0, len = toc.length; i < len; i++) \n        {\n            var text  = toc[i].text;\n            var level = toc[i].level;\n            \n            if (level < startLevel) {\n                continue;\n            }\n            \n            if (level > lastLevel) \n            {\n                html += \"\";\n            }\n            else if (level < lastLevel) \n            {\n                html += (new Array(lastLevel - level + 2)).join(\"</ul></li>\");\n            } \n            else \n            {\n                html += \"</ul></li>\";\n            }\n\n            html += \"<li><a class=\\\"toc-level-\" + level + \"\\\" href=\\\"#\" + text + \"\\\" level=\\\"\" + level + \"\\\">\" + text + \"</a><ul>\";\n            lastLevel = level;\n        }\n        \n        var tocContainer = container.find(\".markdown-toc\");\n        \n        if ((tocContainer.length < 1 && container.attr(\"previewContainer\") === \"false\"))\n        {\n            var tocHTML = \"<div class=\\\"markdown-toc \" + classPrefix + \"markdown-toc\\\"></div>\";\n            \n            tocHTML = (tocDropdown) ? \"<div class=\\\"\" + classPrefix + \"toc-menu\\\">\" + tocHTML + \"</div>\" : tocHTML;\n            \n            container.html(tocHTML);\n            \n            tocContainer = container.find(\".markdown-toc\");\n        }\n        \n        if (tocDropdown)\n        {\n            tocContainer.wrap(\"<div class=\\\"\" + classPrefix + \"toc-menu\\\"></div><br/>\");\n        }\n        \n        tocContainer.html(\"<ul class=\\\"markdown-toc-list\\\"></ul>\").children(\".markdown-toc-list\").html(html.replace(/\\r?\\n?\\<ul\\>\\<\\/ul\\>/g, \"\"));\n        \n        return tocContainer;\n    };\n    \n    /**\n     *\n     * 生成TOC下拉菜单\n     * Creating ToC dropdown menu\n     * \n     * @param   {Object}   container       插入TOC的容器jQuery对象元素\n     * @param   {String}   tocTitle        ToC title\n     * @returns {Object}                   return toc-menu object\n     */\n    \n    editormd.tocDropdownMenu = function(container, tocTitle) {\n        \n        tocTitle      = tocTitle || \"Table of Contents\";\n        \n        var zindex    = 400;\n        var tocMenus  = container.find(\".\" + this.classPrefix + \"toc-menu\");\n\n        tocMenus.each(function() {\n            var $this  = $(this);\n            var toc    = $this.children(\".markdown-toc\");\n            var icon   = \"<i class=\\\"fa fa-angle-down\\\"></i>\";\n            var btn    = \"<a href=\\\"javascript:;\\\" class=\\\"toc-menu-btn\\\">\" + icon + tocTitle + \"</a>\";\n            var menu   = toc.children(\"ul\");            \n            var list   = menu.find(\"li\");\n            \n            toc.append(btn);\n            \n            list.first().before(\"<li><h1>\" + tocTitle + \" \" + icon + \"</h1></li>\");\n            \n            $this.mouseover(function(){\n                menu.show();\n\n                list.each(function(){\n                    var li = $(this);\n                    var ul = li.children(\"ul\");\n\n                    if (ul.html() === \"\")\n                    {\n                        ul.remove();\n                    }\n\n                    if (ul.length > 0 && ul.html() !== \"\")\n                    {\n                        var firstA = li.children(\"a\").first();\n\n                        if (firstA.children(\".fa\").length < 1)\n                        {\n                            firstA.append( $(icon).css({ float:\"right\", paddingTop:\"4px\" }) );\n                        }\n                    }\n\n                    li.mouseover(function(){\n                        ul.css(\"z-index\", zindex).show();\n                        zindex += 1;\n                    }).mouseleave(function(){\n                        ul.hide();\n                    });\n                });\n            }).mouseleave(function(){\n                menu.hide();\n            }); \n        });       \n        \n        return tocMenus;\n    };\n    \n    /**\n     * 简单地过滤指定的HTML标签\n     * Filter custom html tags\n     * \n     * @param   {String}   html          要过滤HTML\n     * @param   {String}   filters       要过滤的标签\n     * @returns {String}   html          返回过滤的HTML\n     */\n    \n    editormd.filterHTMLTags = function(html, filters) {\n        \n        if (typeof html !== \"string\") {\n            html = new String(html);\n        }\n            \n        if (typeof filters !== \"string\") {\n            return html;\n        }\n\n        var expression = filters.split(\"|\");\n        var filterTags = expression[0].split(\",\");\n        var attrs      = expression[1];\n\n        for (var i = 0, len = filterTags.length; i < len; i++)\n        {\n            var tag = filterTags[i];\n\n            html = html.replace(new RegExp(\"\\<\\s*\" + tag + \"\\s*([^\\>]*)\\>([^\\>]*)\\<\\s*\\/\" + tag + \"\\s*\\>\", \"igm\"), \"\");\n        }\n        \n        //return html;\n\n        if (typeof attrs !== \"undefined\")\n        {\n            var htmlTagRegex = /\\<(\\w+)\\s*([^\\>]*)\\>([^\\>]*)\\<\\/(\\w+)\\>/ig;\n\n            if (attrs === \"*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    return \"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\";\n                });         \n            }\n            else if (attrs === \"on*\")\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4, $5) {\n                    var el = $(\"<\" + $2 + \">\" + $4 + \"</\" + $5 + \">\");\n                    var _attrs = $($1)[0].attributes;\n                    var $attrs = {};\n                    \n                    $.each(_attrs, function(i, e) {\n                        if (e.nodeName !== '\"') $attrs[e.nodeName] = e.nodeValue;\n                    });\n                    \n                    $.each($attrs, function(i) {                        \n                        if (i.indexOf(\"on\") === 0) {\n                            delete $attrs[i];\n                        }\n                    });\n                    \n                    el.attr($attrs);\n                    \n                    var text = (typeof el[1] !== \"undefined\") ? $(el[1]).text() : \"\";\n\n                    return el[0].outerHTML + text;\n                });\n            }\n            else\n            {\n                html = html.replace(htmlTagRegex, function($1, $2, $3, $4) {\n                    var filterAttrs = attrs.split(\",\");\n                    var el = $($1);\n                    el.html($4);\n\n                    $.each(filterAttrs, function(i) {\n                        el.attr(filterAttrs[i], null);\n                    });\n\n                    return el[0].outerHTML;\n                });\n            }\n        }\n        \n        return html;\n    };\n    \n    /**\n     * 将Markdown文档解析为HTML用于前台显示\n     * Parse Markdown to HTML for Font-end preview.\n     * \n     * @param   {String}   id            用于显示HTML的对象ID\n     * @param   {Object}   [options={}]  配置选项，可选\n     * @returns {Object}   div           返回jQuery对象元素\n     */\n    \n    editormd.markdownToHTML = function(id, options) {\n        var defaults = {\n            gfm                  : true,\n            toc                  : true,\n            tocm                 : false,\n            tocStartLevel        : 1,\n            tocTitle             : \"目录\",\n            tocDropdown          : false,\n            tocContainer         : \"\",\n            markdown             : \"\",\n            markdownSourceCode   : false,\n            htmlDecode           : false,\n            autoLoadKaTeX        : true,\n            pageBreak            : true,\n            atLink               : true,    // for @link\n            emailLink            : true,    // for mail address auto link\n            tex                  : false,\n            taskList             : false,   // Github Flavored Markdown task lists\n            emoji                : false,\n            flowChart            : false,\n            sequenceDiagram      : false,\n            previewCodeHighlight : true\n        };\n        \n        editormd.$marked  = marked;\n\n        var div           = $(\"#\" + id);\n        var settings      = div.settings = $.extend(true, defaults, options || {});\n        var saveTo        = div.find(\"textarea\");\n        \n        if (saveTo.length < 1)\n        {\n            div.append(\"<textarea></textarea>\");\n            saveTo        = div.find(\"textarea\");\n        }        \n        \n        var markdownDoc   = (settings.markdown === \"\") ? saveTo.val() : settings.markdown; \n        var markdownToC   = [];\n\n        var rendererOptions = {  \n            toc                  : settings.toc,\n            tocm                 : settings.tocm,\n            tocStartLevel        : settings.tocStartLevel,\n            taskList             : settings.taskList,\n            emoji                : settings.emoji,\n            tex                  : settings.tex,\n            pageBreak            : settings.pageBreak,\n            atLink               : settings.atLink,           // for @link\n            emailLink            : settings.emailLink,        // for mail address auto link\n            flowChart            : settings.flowChart,\n            sequenceDiagram      : settings.sequenceDiagram,\n            previewCodeHighlight : settings.previewCodeHighlight,\n        };\n\n        var markedOptions = {\n            renderer    : editormd.markedRenderer(markdownToC, rendererOptions),\n            gfm         : settings.gfm,\n            tables      : true,\n            breaks      : true,\n            pedantic    : false,\n            sanitize    : (settings.htmlDecode) ? false : true, // 是否忽略HTML标签，即是否开启HTML标签解析，为了安全性，默认不开启\n            smartLists  : true,\n            smartypants : true\n        };\n        \n\t\tmarkdownDoc = new String(markdownDoc);\n        \n        var markdownParsed = marked(markdownDoc, markedOptions);\n        \n        markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode);\n        \n        if (settings.markdownSourceCode) {\n            saveTo.text(markdownDoc);\n        } else {\n            saveTo.remove();\n        }\n        \n        div.addClass(\"markdown-body \" + this.classPrefix + \"html-preview\").append(markdownParsed);\n        \n        var tocContainer = (settings.tocContainer !== \"\") ? $(settings.tocContainer) : div;\n        \n        if (settings.tocContainer !== \"\")\n        {\n            tocContainer.attr(\"previewContainer\", false);\n        }\n         \n        if (settings.toc) \n        {\n            div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel);\n            \n            if (settings.tocDropdown || div.find(\".\" + this.classPrefix + \"toc-menu\").length > 0)\n            {\n                this.tocDropdownMenu(div, settings.tocTitle);\n            }\n            \n            if (settings.tocContainer !== \"\")\n            {\n                div.find(\".editormd-toc-menu, .editormd-markdown-toc\").remove();\n            }\n        }\n            \n        if (settings.previewCodeHighlight) \n        {\n            div.find(\"pre\").addClass(\"prettyprint linenums\");\n            prettyPrint();\n        }\n        \n        if (!editormd.isIE8) \n        {\n            if (settings.flowChart) {\n                div.find(\".flowchart\").flowChart(); \n            }\n\n            if (settings.sequenceDiagram) {\n                div.find(\".sequence-diagram\").sequenceDiagram({theme: \"simple\"});\n            }\n        }\n\n        if (settings.tex)\n        {\n            var katexHandle = function() {\n                div.find(\".\" + editormd.classNames.tex).each(function(){\n                    var tex  = $(this);                    \n                    katex.render(tex.html().replace(/&lt;/g, \"<\").replace(/&gt;/g, \">\"), tex[0]);                    \n                    tex.find(\".katex\").css(\"font-size\", \"1.6em\");\n                });\n            };\n            \n            if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded)\n            {\n                this.loadKaTeX(function() {\n                    editormd.$katex      = katex;\n                    editormd.kaTeXLoaded = true;\n                    katexHandle();\n                });\n            }\n            else\n            {\n                katexHandle();\n            }\n        }\n        \n        div.getMarkdown = function() {            \n            return saveTo.val();\n        };\n        \n        return div;\n    };\n    \n    // Editor.md themes, change toolbar themes etc.\n    // added @1.5.0\n    editormd.themes        = [\"default\", \"dark\"];\n    \n    // Preview area themes\n    // added @1.5.0\n    editormd.previewThemes = [\"default\", \"dark\"];\n    \n    // CodeMirror / editor area themes\n    // @1.5.0 rename -> editorThemes, old version -> themes\n    editormd.editorThemes = [\n        \"default\", \"3024-day\", \"3024-night\",\n        \"ambiance\", \"ambiance-mobile\",\n        \"base16-dark\", \"base16-light\", \"blackboard\",\n        \"cobalt\",\n        \"eclipse\", \"elegant\", \"erlang-dark\",\n        \"lesser-dark\",\n        \"mbo\", \"mdn-like\", \"midnight\", \"monokai\",\n        \"neat\", \"neo\", \"night\",\n        \"paraiso-dark\", \"paraiso-light\", \"pastel-on-dark\",\n        \"rubyblue\",\n        \"solarized\",\n        \"the-matrix\", \"tomorrow-night-eighties\", \"twilight\",\n        \"vibrant-ink\",\n        \"xq-dark\", \"xq-light\"\n    ];\n\n    editormd.loadPlugins = {};\n    \n    editormd.loadFiles = {\n        js     : [],\n        css    : [],\n        plugin : []\n    };\n    \n    /**\n     * 动态加载Editor.md插件，但不立即执行\n     * Load editor.md plugins\n     * \n     * @param {String}   fileName              插件文件路径\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadPlugin = function(fileName, callback, into) {\n        callback   = callback || function() {};\n        \n        this.loadScript(fileName, function() {\n            editormd.loadFiles.plugin.push(fileName);\n            callback();\n        }, into);\n    };\n    \n    /**\n     * 动态加载CSS文件的方法\n     * Load css file method\n     * \n     * @param {String}   fileName              CSS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n    \n    editormd.loadCSS   = function(fileName, callback, into) {\n        into       = into     || \"head\";        \n        callback   = callback || function() {};\n        \n        var css    = document.createElement(\"link\");\n        css.type   = \"text/css\";\n        css.rel    = \"stylesheet\";\n        css.onload = css.onreadystatechange = function() {\n            editormd.loadFiles.css.push(fileName);\n            callback();\n        };\n\n        css.href   = fileName + \".css\";\n\n        if(into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(css);\n        } else {\n            document.body.appendChild(css);\n        }\n    };\n    \n    editormd.isIE    = (navigator.appName == \"Microsoft Internet Explorer\");\n    editormd.isIE8   = (editormd.isIE && navigator.appVersion.match(/8./i) == \"8.\");\n\n    /**\n     * 动态加载JS文件的方法\n     * Load javascript file method\n     * \n     * @param {String}   fileName              JS文件名\n     * @param {Function} [callback=function()] 加载成功后执行的回调函数\n     * @param {String}   [into=\"head\"]         嵌入页面的位置\n     */\n\n    editormd.loadScript = function(fileName, callback, into) {\n        \n        into          = into     || \"head\";\n        callback      = callback || function() {};\n        \n        var script    = null; \n        script        = document.createElement(\"script\");\n        script.id     = fileName.replace(/[\\./]+/g, \"-\");\n        script.type   = \"text/javascript\";        \n        script.src    = fileName + \".js\";\n        \n        if (editormd.isIE8) \n        {            \n            script.onreadystatechange = function() {\n                if(script.readyState) \n                {\n                    if (script.readyState === \"loaded\" || script.readyState === \"complete\") \n                    {\n                        script.onreadystatechange = null; \n                        editormd.loadFiles.js.push(fileName);\n                        callback();\n                    }\n                } \n            };\n        }\n        else\n        {\n            script.onload = function() {\n                editormd.loadFiles.js.push(fileName);\n                callback();\n            };\n        }\n\n        if (into === \"head\") {\n            document.getElementsByTagName(\"head\")[0].appendChild(script);\n        } else {\n            document.body.appendChild(script);\n        }\n    };\n    \n    // 使用国外的CDN，加载速度有时会很慢，或者自定义URL\n    // You can custom KaTeX load url.\n    editormd.katexURL  = {\n        css : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\",\n        js  : \"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min\"\n    };\n    \n    editormd.kaTeXLoaded = false;\n    \n    /**\n     * 加载KaTeX文件\n     * load KaTeX files\n     * \n     * @param {Function} [callback=function()]  加载成功后执行的回调函数\n     */\n    \n    editormd.loadKaTeX = function (callback) {\n        editormd.loadCSS(editormd.katexURL.css, function(){\n            editormd.loadScript(editormd.katexURL.js, callback || function(){});\n        });\n    };\n        \n    /**\n     * 锁屏\n     * lock screen\n     * \n     * @param   {Boolean}   lock   Boolean 布尔值，是否锁屏\n     * @returns {void}\n     */\n    \n    editormd.lockScreen = function(lock) {\n        $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n    };\n        \n    /**\n     * 动态创建对话框\n     * Creating custom dialogs\n     * \n     * @param   {Object} options 配置项键值对 Key/Value\n     * @returns {dialog} 返回创建的dialog的jQuery实例对象\n     */\n\n    editormd.createDialog = function(options) {\n        var defaults = {\n            name : \"\",\n            width : 420,\n            height: 240,\n            title : \"\",\n            drag  : true,\n            closed : true,\n            content : \"\",\n            mask : true,\n            maskStyle : {\n                backgroundColor : \"#fff\",\n                opacity : 0.1\n            },\n            lockScreen : true,\n            footer : true,\n            buttons : false\n        };\n\n        options          = $.extend(true, defaults, options);\n        \n        var $this        = this;\n        var editor       = this.editor;\n        var classPrefix  = editormd.classPrefix;\n        var guid         = (new Date()).getTime();\n        var dialogName   = ( (options.name === \"\") ? classPrefix + \"dialog-\" + guid : options.name);\n        var mouseOrTouch = editormd.mouseOrTouch;\n\n        var html         = \"<div class=\\\"\" + classPrefix + \"dialog \" + dialogName + \"\\\">\";\n\n        if (options.title !== \"\")\n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-header\\\"\" + ( (options.drag) ? \" style=\\\"cursor: move;\\\"\" : \"\" ) + \">\";\n            html += \"<strong class=\\\"\" + classPrefix + \"dialog-title\\\">\" + options.title + \"</strong>\";\n            html += \"</div>\";\n        }\n\n        if (options.closed)\n        {\n            html += \"<a href=\\\"javascript:;\\\" class=\\\"fa fa-close \" + classPrefix + \"dialog-close\\\"></a>\";\n        }\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-container\\\">\" + options.content;                    \n\n        if (options.footer || typeof options.footer === \"string\") \n        {\n            html += \"<div class=\\\"\" + classPrefix + \"dialog-footer\\\">\" + ( (typeof options.footer === \"boolean\") ? \"\" : options.footer) + \"</div>\";\n        }\n\n        html += \"</div>\";\n\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-bg\\\"></div>\";\n        html += \"<div class=\\\"\" + classPrefix + \"dialog-mask \" + classPrefix + \"dialog-mask-con\\\"></div>\";\n        html += \"</div>\";\n\n        editor.append(html);\n\n        var dialog = editor.find(\".\" + dialogName);\n\n        dialog.lockScreen = function(lock) {\n            if (options.lockScreen)\n            {                \n                $(\"html,body\").css(\"overflow\", (lock) ? \"hidden\" : \"\");\n                $this.resize();\n            }\n\n            return dialog;\n        };\n\n        dialog.showMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").css(options.maskStyle).css(\"z-index\", editormd.dialogZindex - 1).show();\n            }\n            return dialog;\n        };\n\n        dialog.hideMask = function() {\n            if (options.mask)\n            {\n                editor.find(\".\" + classPrefix + \"mask\").hide();\n            }\n\n            return dialog;\n        };\n\n        dialog.loading = function(show) {                        \n            var loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n            loading[(show) ? \"show\" : \"hide\"]();\n\n            return dialog;\n        };\n\n        dialog.lockScreen(true).showMask();\n\n        dialog.show().css({\n            zIndex : editormd.dialogZindex,\n            border : (editormd.isIE8) ? \"1px solid #ddd\" : \"\",\n            width  : (typeof options.width  === \"number\") ? options.width + \"px\"  : options.width,\n            height : (typeof options.height === \"number\") ? options.height + \"px\" : options.height\n        });\n\n        var dialogPosition = function(){\n            dialog.css({\n                top    : ($(window).height() - dialog.height()) / 2 + \"px\",\n                left   : ($(window).width() - dialog.width()) / 2 + \"px\"\n            });\n        };\n\n        dialogPosition();\n\n        $(window).resize(dialogPosition);\n\n        dialog.children(\".\" + classPrefix + \"dialog-close\").bind(mouseOrTouch(\"click\", \"touchend\"), function() {\n            dialog.hide().lockScreen(false).hideMask();\n        });\n\n        if (typeof options.buttons === \"object\")\n        {\n            var footer = dialog.footer = dialog.find(\".\" + classPrefix + \"dialog-footer\");\n\n            for (var key in options.buttons)\n            {\n                var btn = options.buttons[key];\n                var btnClassName = classPrefix + key + \"-btn\";\n\n                footer.append(\"<button class=\\\"\" + classPrefix + \"btn \" + btnClassName + \"\\\">\" + btn[0] + \"</button>\");\n                btn[1] = $.proxy(btn[1], dialog);\n                footer.children(\".\" + btnClassName).bind(mouseOrTouch(\"click\", \"touchend\"), btn[1]);\n            }\n        }\n\n        if (options.title !== \"\" && options.drag)\n        {                        \n            var posX, posY;\n            var dialogHeader = dialog.children(\".\" + classPrefix + \"dialog-header\");\n\n            if (!options.mask) {\n                dialogHeader.bind(mouseOrTouch(\"click\", \"touchend\"), function(){\n                    editormd.dialogZindex += 2;\n                    dialog.css(\"z-index\", editormd.dialogZindex);\n                });\n            }\n\n            dialogHeader.mousedown(function(e) {\n                e = e || window.event;  //IE\n                posX = e.clientX - parseInt(dialog[0].style.left);\n                posY = e.clientY - parseInt(dialog[0].style.top);\n\n                document.onmousemove = moveAction;                   \n            });\n\n            var userCanSelect = function (obj) {\n                obj.removeClass(classPrefix + \"user-unselect\").off(\"selectstart\");\n            };\n\n            var userUnselect = function (obj) {\n                obj.addClass(classPrefix + \"user-unselect\").on(\"selectstart\", function(event) { // selectstart for IE                        \n                    return false;\n                });\n            };\n\n            var moveAction = function (e) {\n                e = e || window.event;  //IE\n\n                var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top);\n\n                if( nowLeft >= 0 ) {\n                    if( nowLeft + dialog.width() <= $(window).width()) {\n                        left = e.clientX - posX;\n                    } else {\t\n                        left = $(window).width() - dialog.width();\n                        document.onmousemove = null;\n                    }\n                } else {\n                    left = 0;\n                    document.onmousemove = null;\n                }\n\n                if( nowTop >= 0 ) {\n                    top = e.clientY - posY;\n                } else {\n                    top = 0;\n                    document.onmousemove = null;\n                }\n\n\n                document.onselectstart = function() {\n                    return false;\n                };\n\n                userUnselect($(\"body\"));\n                userUnselect(dialog);\n                dialog[0].style.left = left + \"px\";\n                dialog[0].style.top  = top + \"px\";\n            };\n\n            document.onmouseup = function() {                            \n                userCanSelect($(\"body\"));\n                userCanSelect(dialog);\n\n                document.onselectstart = null;         \n                document.onmousemove = null;\n            };\n\n            dialogHeader.touchDraggable = function() {\n                var offset = null;\n                var start  = function(e) {\n                    var orig = e.originalEvent; \n                    var pos  = $(this).parent().position();\n\n                    offset = {\n                        x : orig.changedTouches[0].pageX - pos.left,\n                        y : orig.changedTouches[0].pageY - pos.top\n                    };\n                };\n\n                var move = function(e) {\n                    e.preventDefault();\n                    var orig = e.originalEvent;\n\n                    $(this).parent().css({\n                        top  : orig.changedTouches[0].pageY - offset.y,\n                        left : orig.changedTouches[0].pageX - offset.x\n                    });\n                };\n\n                this.bind(\"touchstart\", start).bind(\"touchmove\", move);\n            };\n\n            dialogHeader.touchDraggable();\n        }\n\n        editormd.dialogZindex += 2;\n\n        return dialog;\n    };\n    \n    /**\n     * 鼠标和触摸事件的判断/选择方法\n     * MouseEvent or TouchEvent type switch\n     * \n     * @param   {String} [mouseEventType=\"click\"]    供选择的鼠标事件\n     * @param   {String} [touchEventType=\"touchend\"] 供选择的触摸事件\n     * @returns {String} EventType                   返回事件类型名称\n     */\n    \n    editormd.mouseOrTouch = function(mouseEventType, touchEventType) {\n        mouseEventType = mouseEventType || \"click\";\n        touchEventType = touchEventType || \"touchend\";\n        \n        var eventType  = mouseEventType;\n\n        try {\n            document.createEvent(\"TouchEvent\");\n            eventType = touchEventType;\n        } catch(e) {}\n\n        return eventType;\n    };\n    \n    /**\n     * 日期时间的格式化方法\n     * Datetime format method\n     * \n     * @param   {String}   [format=\"\"]  日期时间的格式，类似PHP的格式\n     * @returns {String}   datefmt      返回格式化后的日期时间字符串\n     */\n    \n    editormd.dateFormat = function(format) {                \n        format      = format || \"\";\n\n        var addZero = function(d) {\n            return (d < 10) ? \"0\" + d : d;\n        };\n\n        var date    = new Date(); \n        var year    = date.getFullYear();\n        var year2   = year.toString().slice(2, 4);\n        var month   = addZero(date.getMonth() + 1);\n        var day     = addZero(date.getDate());\n        var weekDay = date.getDay();\n        var hour    = addZero(date.getHours());\n        var min     = addZero(date.getMinutes());\n        var second  = addZero(date.getSeconds());\n        var ms      = addZero(date.getMilliseconds()); \n        var datefmt = \"\";\n\n        var ymd     = year2 + \"-\" + month + \"-\" + day;\n        var fymd    = year  + \"-\" + month + \"-\" + day;\n        var hms     = hour  + \":\" + min   + \":\" + second;\n\n        switch (format) \n        {\n            case \"UNIX Time\" :\n                    datefmt = date.getTime();\n                break;\n\n            case \"UTC\" :\n                    datefmt = date.toUTCString();\n                break;\t\n\n            case \"yy\" :\n                    datefmt = year2;\n                break;\t\n\n            case \"year\" :\n            case \"yyyy\" :\n                    datefmt = year;\n                break;\n\n            case \"month\" :\n            case \"mm\" :\n                    datefmt = month;\n                break;                        \n\n            case \"cn-week-day\" :\n            case \"cn-wd\" :\n                    var cnWeekDays = [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"];\n                    datefmt = \"星期\" + cnWeekDays[weekDay];\n                break;\n\n            case \"week-day\" :\n            case \"wd\" :\n                    var weekDays = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n                    datefmt = weekDays[weekDay];\n                break;\n\n            case \"day\" :\n            case \"dd\" :\n                    datefmt = day;\n                break;\n\n            case \"hour\" :\n            case \"hh\" :\n                    datefmt = hour;\n                break;\n\n            case \"min\" :\n            case \"ii\" :\n                    datefmt = min;\n                break;\n\n            case \"second\" :\n            case \"ss\" :\n                    datefmt = second;\n                break;\n\n            case \"ms\" :\n                    datefmt = ms;\n                break;\n\n            case \"yy-mm-dd\" :\n                    datefmt = ymd;\n                break;\n\n            case \"yyyy-mm-dd\" :\n                    datefmt = fymd;\n                break;\n\n            case \"yyyy-mm-dd h:i:s ms\" :\n            case \"full + ms\" : \n                    datefmt = fymd + \" \" + hms + \" \" + ms;\n                break;\n\n            case \"full\" :\n            case \"yyyy-mm-dd h:i:s\" :\n                default:\n                    datefmt = fymd + \" \" + hms;\n                break;\n        }\n\n        return datefmt;\n    };\n\n    return editormd;\n\n}));\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/languages/en.js",
    "content": "(function(){\n    var factory = function (exports) {\n        var lang = {\n            name : \"en\",\n            description : \"Open source online Markdown editor.\",\n            tocTitle    : \"Table of Contents\",\n            toolbar : {\n                undo             : \"Undo(Ctrl+Z)\",\n                redo             : \"Redo(Ctrl+Y)\",\n                bold             : \"Bold\",\n                del              : \"Strikethrough\",\n                italic           : \"Italic\",\n                quote            : \"Block quote\",\n                ucwords          : \"Words first letter convert to uppercase\",\n                uppercase        : \"Selection text convert to uppercase\",\n                lowercase        : \"Selection text convert to lowercase\",\n                h1               : \"Heading 1\",\n                h2               : \"Heading 2\",\n                h3               : \"Heading 3\",\n                h4               : \"Heading 4\",\n                h5               : \"Heading 5\",\n                h6               : \"Heading 6\",\n                \"list-ul\"        : \"Unordered list\",\n                \"list-ol\"        : \"Ordered list\",\n                hr               : \"Horizontal rule\",\n                link             : \"Link\",\n                \"reference-link\" : \"Reference link\",\n                image            : \"Image\",\n                code             : \"Code inline\",\n                \"preformatted-text\" : \"Preformatted text / Code block (Tab indent)\",\n                \"code-block\"     : \"Code block (Multi-languages)\",\n                table            : \"Tables\",\n                datetime         : \"Datetime\",\n                emoji            : \"Emoji\",\n                \"html-entities\"  : \"HTML Entities\",\n                pagebreak        : \"Page break\",\n                watch            : \"Unwatch\",\n                unwatch          : \"Watch\",\n                preview          : \"HTML Preview (Press Shift + ESC exit)\",\n                fullscreen       : \"Fullscreen (Press ESC exit)\",\n                clear            : \"Clear\",\n                search           : \"Search\",\n                help             : \"Help\",\n                info             : \"About \" + exports.title\n            },\n            buttons : {\n                enter  : \"Enter\",\n                cancel : \"Cancel\",\n                close  : \"Close\"\n            },\n            dialog : {\n                link : {\n                    title    : \"Link\",\n                    url      : \"Address\",\n                    urlTitle : \"Title\",\n                    urlEmpty : \"Error: Please fill in the link address.\"\n                },\n                referenceLink : {\n                    title    : \"Reference link\",\n                    name     : \"Name\",\n                    url      : \"Address\",\n                    urlId    : \"ID\",\n                    urlTitle : \"Title\",\n                    nameEmpty: \"Error: Reference name can't be empty.\",\n                    idEmpty  : \"Error: Please fill in reference link id.\",\n                    urlEmpty : \"Error: Please fill in reference link url address.\"\n                },\n                image : {\n                    title    : \"Image\",\n                    url      : \"Address\",\n                    link     : \"Link\",\n                    alt      : \"Title\",\n                    uploadButton     : \"Upload\",\n                    imageURLEmpty    : \"Error: picture url address can't be empty.\",\n                    uploadFileEmpty  : \"Error: upload pictures cannot be empty!\",\n                    formatNotAllowed : \"Error: only allows to upload pictures file, upload allowed image file format:\"\n                },\n                preformattedText : {\n                    title             : \"Preformatted text / Codes\", \n                    emptyAlert        : \"Error: Please fill in the Preformatted text or content of the codes.\"\n                },\n                codeBlock : {\n                    title             : \"Code block\",         \n                    selectLabel       : \"Languages: \",\n                    selectDefaultText : \"select a code language...\",\n                    otherLanguage     : \"Other languages\",\n                    unselectedLanguageAlert : \"Error: Please select the code language.\",\n                    codeEmptyAlert    : \"Error: Please fill in the code content.\"\n                },\n                htmlEntities : {\n                    title : \"HTML Entities\"\n                },\n                help : {\n                    title : \"Help\"\n                }\n            }\n        };\n        \n        exports.defaults.lang = lang;\n    };\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n    \n})();"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/languages/zh-tw.js",
    "content": "(function(){\n    var factory = function (exports) {\n        var lang = {\n            name : \"zh-tw\",\n            description : \"開源在線Markdown編輯器<br/>Open source online Markdown editor.\",\n            tocTitle    : \"目錄\",\n            toolbar     : {\n                undo             : \"撤銷（Ctrl+Z）\",\n                redo             : \"重做（Ctrl+Y）\",\n                bold             : \"粗體\",\n                del              : \"刪除線\",\n                italic           : \"斜體\",\n                quote            : \"引用\",\n                ucwords          : \"將所選的每個單詞首字母轉成大寫\",\n                uppercase        : \"將所選文本轉成大寫\",\n                lowercase        : \"將所選文本轉成小寫\",\n                h1               : \"標題1\",\n                h2               : \"標題2\",\n                h3               : \"標題3\",\n                h4               : \"標題4\",\n                h5               : \"標題5\",\n                h6               : \"標題6\",\n                \"list-ul\"        : \"無序列表\",\n                \"list-ol\"        : \"有序列表\",\n                hr               : \"横线\",\n                link             : \"链接\",\n                \"reference-link\" : \"引用鏈接\",\n                image            : \"圖片\",\n                code             : \"行內代碼\",\n                \"preformatted-text\" : \"預格式文本 / 代碼塊（縮進風格）\",\n                \"code-block\"     : \"代碼塊（多語言風格）\",\n                table            : \"添加表格\",\n                datetime         : \"日期時間\",\n                emoji            : \"Emoji 表情\",\n                \"html-entities\"  : \"HTML 實體字符\",\n                pagebreak        : \"插入分頁符\",\n                watch            : \"關閉實時預覽\",\n                unwatch          : \"開啟實時預覽\",\n                preview          : \"全窗口預覽HTML（按 Shift + ESC 退出）\",\n                fullscreen       : \"全屏（按 ESC 退出）\",\n                clear            : \"清空\",\n                search           : \"搜尋\",\n                help             : \"使用幫助\",\n                info             : \"關於\" + exports.title\n            },\n            buttons : {\n                enter  : \"確定\",\n                cancel : \"取消\",\n                close  : \"關閉\"\n            },\n            dialog : {\n                link   : {\n                    title    : \"添加鏈接\",\n                    url      : \"鏈接地址\",\n                    urlTitle : \"鏈接標題\",\n                    urlEmpty : \"錯誤：請填寫鏈接地址。\"\n                },\n                referenceLink : {\n                    title    : \"添加引用鏈接\",\n                    name     : \"引用名稱\",\n                    url      : \"鏈接地址\",\n                    urlId    : \"鏈接ID\",\n                    urlTitle : \"鏈接標題\",\n                    nameEmpty: \"錯誤：引用鏈接的名稱不能為空。\",\n                    idEmpty  : \"錯誤：請填寫引用鏈接的ID。\",\n                    urlEmpty : \"錯誤：請填寫引用鏈接的URL地址。\"\n                },\n                image  : {\n                    title    : \"添加圖片\",\n                    url      : \"圖片地址\",\n                    link     : \"圖片鏈接\",\n                    alt      : \"圖片描述\",\n                    uploadButton     : \"本地上傳\",\n                    imageURLEmpty    : \"錯誤：圖片地址不能為空。\",\n                    uploadFileEmpty  : \"錯誤：上傳的圖片不能為空！\",\n                    formatNotAllowed : \"錯誤：只允許上傳圖片文件，允許上傳的圖片文件格式有：\"\n                },\n                preformattedText : {\n                    title             : \"添加預格式文本或代碼塊\", \n                    emptyAlert        : \"錯誤：請填寫預格式文本或代碼的內容。\"\n                },\n                codeBlock : {\n                    title             : \"添加代碼塊\",                 \n                    selectLabel       : \"代碼語言：\",\n                    selectDefaultText : \"請語言代碼語言\",\n                    otherLanguage     : \"其他語言\",\n                    unselectedLanguageAlert : \"錯誤：請選擇代碼所屬的語言類型。\",\n                    codeEmptyAlert    : \"錯誤：請填寫代碼內容。\"\n                },\n                htmlEntities : {\n                    title : \"HTML實體字符\"\n                },\n                help : {\n                    title : \"使用幫助\"\n                }\n            }\n        };\n        \n        exports.defaults.lang = lang;\n    };\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n    \n})();"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/AUTHORS",
    "content": "List of CodeMirror contributors. Updated before every release.\n\n4r2r\nAaron Brooks\nAbdelouahab\nAbe Fettig\nAdam Ahmed\nAdam King\nadanlobato\nAdán Lobato\nAdrian Aichner\naeroson\nAhmad Amireh\nAhmad M. Zawawi\nahoward\nAkeksandr Motsjonov\nAlberto González Palomo\nAlberto Pose\nAlbert Xing\nAlexander Pavlov\nAlexander Schepanovski\nAlexander Shvets\nAlexander Solovyov\nAlexandre Bique\nalexey-k\nAlex Piggott\nAliaksei Chapyzhenka\nAmsul\namuntean\nAmy\nAnanya Sen\nanaran\nAndersMad\nAnders Nawroth\nAnderson Mesquita\nAndrea G\nAndreas Reischuck\nAndre von Houck\nAndrey Fedorov\nAndrey Klyuchnikov\nAndrey Lushnikov\nAndy Joslin\nAndy Kimball\nAndy Li\nangelozerr\nangelo.zerr@gmail.com\nAnkit\nAnkit Ahuja\nAnsel Santosa\nAnthony Grimes\nAnton Kovalyov\nareos\nas3boyan\nAtomicPages LLC\nAtul Bhouraskar\nAurelian Oancea\nBastian Müller\nBem Jones-Bey\nbenbro\nBeni Cherniavsky-Paskin\nBenjamin DeCoste\nBen Keen\nBernhard Sirlinger\nBert Chang\nBilly Moon\nbinny\nB Krishna Chaitanya\nBlaine G\nblukat29\nboomyjee\nborawjm\nBrandon Frohs\nBrandon Wamboldt\nBrett Zamir\nBrian Grinstead\nBrian Sletten\nBruce Mitchener\nChandra Sekhar Pydi\nCharles Skelton\nCheah Chu Yeow\nChris Coyier\nChris Granger\nChris Houseknecht\nChris Morgan\nChristian Oyarzun\nChristian Petrov\nChristopher Brown\nciaranj\nCodeAnimal\nComFreek\nCurtis Gagliardi\ndagsta\ndaines\nDale Jung\nDan Bentley\nDan Heberden\nDaniel, Dao Quang Minh\nDaniele Di Sarli\nDaniel Faust\nDaniel Huigens\nDaniel KJ\nDaniel Neel\nDaniel Parnell\nDanny Yoo\ndarealshinji\nDarius Roberts\nDave Myers\nDavid Mignot\nDavid Pathakjee\nDavid Vázquez\ndeebugger\nDeep Thought\nDevon Carew\ndignifiedquire\nDimage Sapelkin\nDmitry Kiselyov\ndomagoj412\nDominator008\nDomizio Demichelis\nDoug Wikle\nDrew Bratcher\nDrew Hintz\nDrew Khoury\nDror BG\nduralog\neborden\nedsharp\nekhaled\nEnam Mijbah Noor\nEric Allam\neustas\nFabien O'Carroll\nFabio Zendhi Nagao\nFaiza Alsaied\nFauntleroy\nfbuchinger\nfeizhang365\nFelipe Lalanne\nFelix Raab\nFilip Noetzel\nflack\nForbesLindesay\nForbes Lindesay\nFord_Lawnmower\nForrest Oliphant\nFrank Wiegand\nGabriel Gheorghian\nGabriel Horner\nGabriel Nahmias\ngalambalazs\nGautam Mehta\ngekkoe\nGerard Braad\nGergely Hegykozi\nGiovanni Calò\nGlenn Jorde\nGlenn Ruehle\nGolevka\nGordon Smith\nGrant Skinner\ngreengiant\nGregory Koberger\nGuillaume Massé\nGuillaume Massé\nGustavo Rodrigues\nHakan Tunc\nHans Engel\nHardest\nHasan Karahan\nHerculano Campos\nHiroyuki Makino\nhitsthings\nHocdoc\nIan Beck\nIan Dickinson\nIan Wehrman\nIan Wetherbee\nIce White\nICHIKAWA, Yuji\nilvalle\nIngo Richter\nIrakli Gozalishvili\nIvan Kurnosov\nJacob Lee\nJakob Miland\nJakub Vrana\nJakub Vrána\nJames Campos\nJames Thorne\nJamie Hill\nJan Jongboom\njankeromnes\nJan Keromnes\nJan Odvarko\nJan T. Sott\nJared Forsyth\nJason\nJason Barnabe\nJason Grout\nJason Johnston\nJason San Jose\nJason Siefken\nJaydeep Solanki\nJean Boussier\njeffkenton\nJeff Pickhardt\njem (graphite)\nJeremy Parmenter\nJochen Berger\nJohan Ask\nJohn Connor\nJohn Lees-Miller\nJohn Snelson\nJohn Van Der Loo\nJonathan Malmaud\njongalloway\nJon Malmaud\nJon Sangster\nJoost-Wim Boekesteijn\nJoseph Pecoraro\nJoshua Newman\nJosh Watzman\njots\njsoojeon\nJuan Benavides Romero\nJucovschi Constantin\nJuho Vuori\nJustin Hileman\njwallers@gmail.com\nkaniga\nKen Newman\nKen Rockot\nKevin Sawicki\nKevin Ushey\nKlaus Silveira\nKoh Zi Han, Cliff\nkomakino\nKonstantin Lopuhin\nkoops\nks-ifware\nkubelsmieci\nKwanEsq\nLanfei\nLanny\nLaszlo Vidacs\nleaf corcoran\nLeonid Khachaturov\nLeon Sorokin\nLeonya Khachaturov\nLiam Newman\nLM\nlochel\nLorenzo Stoakes\nLuciano Longo\nLuke Stagner\nlynschinzer\nMaksim Lin\nMaksym Taran\nMalay Majithia\nManuel Rego Casasnovas\nMarat Dreizin\nMarcel Gerber\nMarco Aurélio\nMarco Munizaga\nMarcus Bointon\nMarek Rudnicki\nMarijn Haverbeke\nMário Gonçalves\nMario Pietsch\nMark Lentczner\nMarko Bonaci\nMartin Balek\nMartín Gaitán\nMartin Hasoň\nMason Malone\nMateusz Paprocki\nMathias Bynens\nmats cronqvist\nMatthew Beale\nMatthias Bussonnier\nMatthias BUSSONNIER\nMatt McDonald\nMatt Pass\nMatt Sacks\nmauricio\nMaximilian Hils\nMaxim Kraev\nMax Kirsch\nMax Xiantu\nmbarkhau\nMetatheos\nMicah Dubinko\nMichael Lehenbauer\nMichael Zhou\nMighty Guava\nMiguel Castillo\nmihailik\nMike\nMike Brevoort\nMike Diaz\nMike Ivanov\nMike Kadin\nMinRK\nMiraculix87\nmisfo\nmloginov\nMoritz Schwörer\nmps\nmtaran-google\nNarciso Jaramillo\nNathan Williams\nndr\nnerbert\nnextrevision\nngn\nnguillaumin\nNg Zhi An\nNicholas Bollweg\nNicholas Bollweg (Nick)\nNick Small\nNiels van Groningen\nnightwing\nNikita Beloglazov\nNikita Vasilyev\nNikolay Kostov\nnilp0inter\nNisarg Jhaveri\nnlwillia\nNorman Rzepka\npablo\nPage\nPanupong Pasupat\nparis\nPatil Arpith\nPatrick Stoica\nPatrick Strawderman\nPaul Garvin\nPaul Ivanov\nPavel Feldman\nPavel Strashkin\nPaweł Bartkiewicz\npeteguhl\nPeter Flynn\npeterkroon\nPeter Kroon\nprasanthj\nPrasanth J\nRadek Piórkowski\nRahul\nRandall Mason\nRandy Burden\nRandy Edmunds\nRasmus Erik Voel Jensen\nRay Ratchup\nRichard van der Meer\nRichard Z.H. Wang\nRobert Crossfield\nRoberto Abdelkader Martínez Pérez\nrobertop23\nRobert Plummer\nRuslan Osmanov\nRyan Prior\nsabaca\nSamuel Ainsworth\nsandeepshetty\nSander AKA Redsandro\nsantec\nSascha Peilicke\nsatchmorun\nsathyamoorthi\nSCLINIC\\jdecker\nScott Aikin\nScott Goodhew\nSebastian Zaha\nshaund\nshaun gilchrist\nShawn A\nsheopory\nShiv Deepak\nShmuel Englard\nShubham Jain\nsilverwind\nsnasa\nsoliton4\nsonson\nspastorelli\nsrajanpaliwal\nStanislav Oaserele\nStas Kobzar\nStefan Borsje\nSteffen Beyer\nSteve O'Hara\nstoskov\nTaha Jahangir\nTakuji Shimokawa\nTarmil\ntel\ntfjgeorge\nThaddee Tyl\nTheHowl\nthink\nThomas Dvornik\nThomas Schmid\nTim Alby\nTim Baumann\nTimothy Farrell\nTimothy Hatcher\nTobiasBg\nTomas-A\nTomas Varaneckas\nTom Erik Støwer\nTom MacWright\nTony Jian\nTravis Heppe\nTriangle717\ntwifkak\nVestimir Markov\nvf\nVincent Woo\nVolker Mische\nwenli\nWesley Wiser\nWill Binns-Smith\nWilliam Jamieson\nWilliam Stein\nWilly\nWojtek Ptak\nXavier Mendez\nYassin N. Hassan\nYNH Webdev\nYunchi Luo\nYuvi Panda\nZachary Dremann\nZhang Hao\nzziuni\n魏鹏刚\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/LICENSE",
    "content": "Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/README.md",
    "content": "# CodeMirror\n[![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror)\n[![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror)  \n[Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/)\n\nCodeMirror is a JavaScript component that provides a code editor in\nthe browser. When a mode is available for the language you are coding\nin, it will color your code, and optionally help with indentation.\n\nThe project page is http://codemirror.net  \nThe manual is at http://codemirror.net/doc/manual.html  \nThe contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md)\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/comment/comment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var noOptions = {};\n  var nonWS = /[^\\s\\u00a0]/;\n  var Pos = CodeMirror.Pos;\n\n  function firstNonWS(str) {\n    var found = str.search(nonWS);\n    return found == -1 ? 0 : found;\n  }\n\n  CodeMirror.commands.toggleComment = function(cm) {\n    var minLine = Infinity, ranges = cm.listSelections(), mode = null;\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var from = ranges[i].from(), to = ranges[i].to();\n      if (from.line >= minLine) continue;\n      if (to.line >= minLine) to = Pos(minLine, 0);\n      minLine = from.line;\n      if (mode == null) {\n        if (cm.uncomment(from, to)) mode = \"un\";\n        else { cm.lineComment(from, to); mode = \"line\"; }\n      } else if (mode == \"un\") {\n        cm.uncomment(from, to);\n      } else {\n        cm.lineComment(from, to);\n      }\n    }\n  };\n\n  CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var commentString = options.lineComment || mode.lineComment;\n    if (!commentString) {\n      if (options.blockCommentStart || mode.blockCommentStart) {\n        options.fullLines = true;\n        self.blockComment(from, to, options);\n      }\n      return;\n    }\n    var firstLine = self.getLine(from.line);\n    if (firstLine == null) return;\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n    var pad = options.padding == null ? \" \" : options.padding;\n    var blankLines = options.commentBlankLines || from.line == to.line;\n\n    self.operation(function() {\n      if (options.indent) {\n        var baseString = firstLine.slice(0, firstNonWS(firstLine));\n        for (var i = from.line; i < end; ++i) {\n          var line = self.getLine(i), cut = baseString.length;\n          if (!blankLines && !nonWS.test(line)) continue;\n          if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n          self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n        }\n      } else {\n        for (var i = from.line; i < end; ++i) {\n          if (blankLines || nonWS.test(self.getLine(i)))\n            self.replaceRange(commentString + pad, Pos(i, 0));\n        }\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) {\n      if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n        self.lineComment(from, to, options);\n      return;\n    }\n\n    var end = Math.min(to.line, self.lastLine());\n    if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n    var pad = options.padding == null ? \" \" : options.padding;\n    if (from.line > end) return;\n\n    self.operation(function() {\n      if (options.fullLines != false) {\n        var lastLineHasText = nonWS.test(self.getLine(end));\n        self.replaceRange(pad + endString, Pos(end));\n        self.replaceRange(startString + pad, Pos(from.line, 0));\n        var lead = options.blockCommentLead || mode.blockCommentLead;\n        if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n          if (i != end || lastLineHasText)\n            self.replaceRange(lead + pad, Pos(i, 0));\n      } else {\n        self.replaceRange(endString, to);\n        self.replaceRange(startString, from);\n      }\n    });\n  });\n\n  CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n    if (!options) options = noOptions;\n    var self = this, mode = self.getModeAt(from);\n    var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n    // Try finding line comments\n    var lineString = options.lineComment || mode.lineComment, lines = [];\n    var pad = options.padding == null ? \" \" : options.padding, didSomething;\n    lineComment: {\n      if (!lineString) break lineComment;\n      for (var i = start; i <= end; ++i) {\n        var line = self.getLine(i);\n        var found = line.indexOf(lineString);\n        if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n        if (found == -1 && (i != end || i == start) && nonWS.test(line)) break lineComment;\n        if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n        lines.push(line);\n      }\n      self.operation(function() {\n        for (var i = start; i <= end; ++i) {\n          var line = lines[i - start];\n          var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n          if (pos < 0) continue;\n          if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n          didSomething = true;\n          self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n        }\n      });\n      if (didSomething) return true;\n    }\n\n    // Try block comments\n    var startString = options.blockCommentStart || mode.blockCommentStart;\n    var endString = options.blockCommentEnd || mode.blockCommentEnd;\n    if (!startString || !endString) return false;\n    var lead = options.blockCommentLead || mode.blockCommentLead;\n    var startLine = self.getLine(start), endLine = end == start ? startLine : self.getLine(end);\n    var open = startLine.indexOf(startString), close = endLine.lastIndexOf(endString);\n    if (close == -1 && start != end) {\n      endLine = self.getLine(--end);\n      close = endLine.lastIndexOf(endString);\n    }\n    if (open == -1 || close == -1 ||\n        !/comment/.test(self.getTokenTypeAt(Pos(start, open + 1))) ||\n        !/comment/.test(self.getTokenTypeAt(Pos(end, close + 1))))\n      return false;\n\n    // Avoid killing block comments completely outside the selection.\n    // Positions of the last startString before the start of the selection, and the first endString after it.\n    var lastStart = startLine.lastIndexOf(startString, from.ch);\n    var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n    if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n    // Positions of the first endString after the end of the selection, and the last startString before it.\n    firstEnd = endLine.indexOf(endString, to.ch);\n    var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n    lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n    if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n    self.operation(function() {\n      self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n                        Pos(end, close + endString.length));\n      var openEnd = open + startString.length;\n      if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n      self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n      if (lead) for (var i = start + 1; i <= end; ++i) {\n        var line = self.getLine(i), found = line.indexOf(lead);\n        if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n        var foundEnd = found + lead.length;\n        if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n        self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n      }\n    });\n    return true;\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/comment/continuecomment.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var modes = [\"clike\", \"css\", \"javascript\"];\n\n  for (var i = 0; i < modes.length; ++i)\n    CodeMirror.extendMode(modes[i], {blockCommentContinue: \" * \"});\n\n  function continueComment(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), mode, inserts = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head, token = cm.getTokenAt(pos);\n      if (token.type != \"comment\") return CodeMirror.Pass;\n      var modeHere = CodeMirror.innerMode(cm.getMode(), token.state).mode;\n      if (!mode) mode = modeHere;\n      else if (mode != modeHere) return CodeMirror.Pass;\n\n      var insert = null;\n      if (mode.blockCommentStart && mode.blockCommentContinue) {\n        var end = token.string.indexOf(mode.blockCommentEnd);\n        var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found;\n        if (end != -1 && end == token.string.length - mode.blockCommentEnd.length && pos.ch >= end) {\n          // Comment ended, don't continue it\n        } else if (token.string.indexOf(mode.blockCommentStart) == 0) {\n          insert = full.slice(0, token.start);\n          if (!/^\\s*$/.test(insert)) {\n            insert = \"\";\n            for (var j = 0; j < token.start; ++j) insert += \" \";\n          }\n        } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 &&\n                   found + mode.blockCommentContinue.length > token.start &&\n                   /^\\s*$/.test(full.slice(0, found))) {\n          insert = full.slice(0, found);\n        }\n        if (insert != null) insert += mode.blockCommentContinue;\n      }\n      if (insert == null && mode.lineComment && continueLineCommentEnabled(cm)) {\n        var line = cm.getLine(pos.line), found = line.indexOf(mode.lineComment);\n        if (found > -1) {\n          insert = line.slice(0, found);\n          if (/\\S/.test(insert)) insert = null;\n          else insert += mode.lineComment + line.slice(found + mode.lineComment.length).match(/^\\s*/)[0];\n        }\n      }\n      if (insert == null) return CodeMirror.Pass;\n      inserts[i] = \"\\n\" + insert;\n    }\n\n    cm.operation(function() {\n      for (var i = ranges.length - 1; i >= 0; i--)\n        cm.replaceRange(inserts[i], ranges[i].from(), ranges[i].to(), \"+insert\");\n    });\n  }\n\n  function continueLineCommentEnabled(cm) {\n    var opt = cm.getOption(\"continueComments\");\n    if (opt && typeof opt == \"object\")\n      return opt.continueLineComment !== false;\n    return true;\n  }\n\n  CodeMirror.defineOption(\"continueComments\", null, function(cm, val, prev) {\n    if (prev && prev != CodeMirror.Init)\n      cm.removeKeyMap(\"continueComment\");\n    if (val) {\n      var key = \"Enter\";\n      if (typeof val == \"string\")\n        key = val;\n      else if (typeof val == \"object\" && val.key)\n        key = val.key;\n      var map = {name: \"continueComment\"};\n      map[key] = continueComment;\n      cm.addKeyMap(map);\n    }\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/dialog/dialog.css",
    "content": ".CodeMirror-dialog {\n  position: absolute;\n  left: 0; right: 0;\n  background: white;\n  z-index: 15;\n  padding: .1em .8em;\n  overflow: hidden;\n  color: #333;\n}\n\n.CodeMirror-dialog-top {\n  border-bottom: 1px solid #eee;\n  top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n  border-top: 1px solid #eee;\n  bottom: 0;\n}\n\n.CodeMirror-dialog input {\n  border: none;\n  outline: none;\n  background: transparent;\n  width: 20em;\n  color: inherit;\n  font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n  font-size: 70%;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/dialog/dialog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Open simple dialogs on top of an editor. Relies on dialog.css.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  function dialogDiv(cm, template, bottom) {\n    var wrap = cm.getWrapperElement();\n    var dialog;\n    dialog = wrap.appendChild(document.createElement(\"div\"));\n    if (bottom)\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-bottom\";\n    else\n      dialog.className = \"CodeMirror-dialog CodeMirror-dialog-top\";\n\n    if (typeof template == \"string\") {\n      dialog.innerHTML = template;\n    } else { // Assuming it's a detached DOM element.\n      dialog.appendChild(template);\n    }\n    return dialog;\n  }\n\n  function closeNotification(cm, newVal) {\n    if (cm.state.currentNotificationClose)\n      cm.state.currentNotificationClose();\n    cm.state.currentNotificationClose = newVal;\n  }\n\n  CodeMirror.defineExtension(\"openDialog\", function(template, callback, options) {\n    if (!options) options = {};\n\n    closeNotification(this, null);\n\n    var dialog = dialogDiv(this, template, options.bottom);\n    var closed = false, me = this;\n    function close(newVal) {\n      if (typeof newVal == 'string') {\n        inp.value = newVal;\n      } else {\n        if (closed) return;\n        closed = true;\n        dialog.parentNode.removeChild(dialog);\n        me.focus();\n\n        if (options.onClose) options.onClose(dialog);\n      }\n    }\n\n    var inp = dialog.getElementsByTagName(\"input\")[0], button;\n    if (inp) {\n      if (options.value) {\n        inp.value = options.value;\n        inp.select();\n      }\n\n      if (options.onInput)\n        CodeMirror.on(inp, \"input\", function(e) { options.onInput(e, inp.value, close);});\n      if (options.onKeyUp)\n        CodeMirror.on(inp, \"keyup\", function(e) {options.onKeyUp(e, inp.value, close);});\n\n      CodeMirror.on(inp, \"keydown\", function(e) {\n        if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; }\n        if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) {\n          inp.blur();\n          CodeMirror.e_stop(e);\n          close();\n        }\n        if (e.keyCode == 13) callback(inp.value, e);\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(inp, \"blur\", close);\n\n      inp.focus();\n    } else if (button = dialog.getElementsByTagName(\"button\")[0]) {\n      CodeMirror.on(button, \"click\", function() {\n        close();\n        me.focus();\n      });\n\n      if (options.closeOnBlur !== false) CodeMirror.on(button, \"blur\", close);\n\n      button.focus();\n    }\n    return close;\n  });\n\n  CodeMirror.defineExtension(\"openConfirm\", function(template, callbacks, options) {\n    closeNotification(this, null);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var buttons = dialog.getElementsByTagName(\"button\");\n    var closed = false, me = this, blurring = 1;\n    function close() {\n      if (closed) return;\n      closed = true;\n      dialog.parentNode.removeChild(dialog);\n      me.focus();\n    }\n    buttons[0].focus();\n    for (var i = 0; i < buttons.length; ++i) {\n      var b = buttons[i];\n      (function(callback) {\n        CodeMirror.on(b, \"click\", function(e) {\n          CodeMirror.e_preventDefault(e);\n          close();\n          if (callback) callback(me);\n        });\n      })(callbacks[i]);\n      CodeMirror.on(b, \"blur\", function() {\n        --blurring;\n        setTimeout(function() { if (blurring <= 0) close(); }, 200);\n      });\n      CodeMirror.on(b, \"focus\", function() { ++blurring; });\n    }\n  });\n\n  /*\n   * openNotification\n   * Opens a notification, that can be closed with an optional timer\n   * (default 5000ms timer) and always closes on click.\n   *\n   * If a notification is opened while another is opened, it will close the\n   * currently opened one and open the new one immediately.\n   */\n  CodeMirror.defineExtension(\"openNotification\", function(template, options) {\n    closeNotification(this, close);\n    var dialog = dialogDiv(this, template, options && options.bottom);\n    var closed = false, doneTimer;\n    var duration = options && typeof options.duration !== \"undefined\" ? options.duration : 5000;\n\n    function close() {\n      if (closed) return;\n      closed = true;\n      clearTimeout(doneTimer);\n      dialog.parentNode.removeChild(dialog);\n    }\n\n    CodeMirror.on(dialog, 'click', function(e) {\n      CodeMirror.e_preventDefault(e);\n      close();\n    });\n\n    if (duration)\n      doneTimer = setTimeout(close, duration);\n\n    return close;\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/display/fullscreen.css",
    "content": ".CodeMirror-fullscreen {\n  position: fixed;\n  top: 0; left: 0; right: 0; bottom: 0;\n  height: auto;\n  z-index: 9;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/display/fullscreen.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"fullScreen\", false, function(cm, val, old) {\n    if (old == CodeMirror.Init) old = false;\n    if (!old == !val) return;\n    if (val) setFullscreen(cm);\n    else setNormal(cm);\n  });\n\n  function setFullscreen(cm) {\n    var wrap = cm.getWrapperElement();\n    cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,\n                                  width: wrap.style.width, height: wrap.style.height};\n    wrap.style.width = \"\";\n    wrap.style.height = \"auto\";\n    wrap.className += \" CodeMirror-fullscreen\";\n    document.documentElement.style.overflow = \"hidden\";\n    cm.refresh();\n  }\n\n  function setNormal(cm) {\n    var wrap = cm.getWrapperElement();\n    wrap.className = wrap.className.replace(/\\s*CodeMirror-fullscreen\\b/, \"\");\n    document.documentElement.style.overflow = \"\";\n    var info = cm.state.fullScreenRestore;\n    wrap.style.width = info.width; wrap.style.height = info.height;\n    window.scrollTo(info.scrollLeft, info.scrollTop);\n    cm.refresh();\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/display/panel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineExtension(\"addPanel\", function(node, options) {\n    if (!this.state.panels) initPanels(this);\n\n    var info = this.state.panels;\n    if (options && options.position == \"bottom\")\n      info.wrapper.appendChild(node);\n    else\n      info.wrapper.insertBefore(node, info.wrapper.firstChild);\n    var height = (options && options.height) || node.offsetHeight;\n    this._setSize(null, info.heightLeft -= height);\n    info.panels++;\n    return new Panel(this, node, options, height);\n  });\n\n  function Panel(cm, node, options, height) {\n    this.cm = cm;\n    this.node = node;\n    this.options = options;\n    this.height = height;\n    this.cleared = false;\n  }\n\n  Panel.prototype.clear = function() {\n    if (this.cleared) return;\n    this.cleared = true;\n    var info = this.cm.state.panels;\n    this.cm._setSize(null, info.heightLeft += this.height);\n    info.wrapper.removeChild(this.node);\n    if (--info.panels == 0) removePanels(this.cm);\n  };\n\n  Panel.prototype.changed = function(height) {\n    var newHeight = height == null ? this.node.offsetHeight : height;\n    var info = this.cm.state.panels;\n    this.cm._setSize(null, info.height += (newHeight - this.height));\n    this.height = newHeight;\n  };\n\n  function initPanels(cm) {\n    var wrap = cm.getWrapperElement();\n    var style = window.getComputedStyle ? window.getComputedStyle(wrap) : wrap.currentStyle;\n    var height = parseInt(style.height);\n    var info = cm.state.panels = {\n      setHeight: wrap.style.height,\n      heightLeft: height,\n      panels: 0,\n      wrapper: document.createElement(\"div\")\n    };\n    wrap.parentNode.insertBefore(info.wrapper, wrap);\n    var hasFocus = cm.hasFocus();\n    info.wrapper.appendChild(wrap);\n    if (hasFocus) cm.focus();\n\n    cm._setSize = cm.setSize;\n    if (height != null) cm.setSize = function(width, newHeight) {\n      if (newHeight == null) return this._setSize(width, newHeight);\n      info.setHeight = newHeight;\n      if (typeof newHeight != \"number\") {\n        var px = /^(\\d+\\.?\\d*)px$/.exec(newHeight);\n        if (px) {\n          newHeight = Number(px[1]);\n        } else {\n          info.wrapper.style.height = newHeight;\n          newHeight = info.wrapper.offsetHeight;\n          info.wrapper.style.height = \"\";\n        }\n      }\n      cm._setSize(width, info.heightLeft += (newHeight - height));\n      height = newHeight;\n    };\n  }\n\n  function removePanels(cm) {\n    var info = cm.state.panels;\n    cm.state.panels = null;\n\n    var wrap = cm.getWrapperElement();\n    info.wrapper.parentNode.replaceChild(wrap, info.wrapper);\n    wrap.style.height = info.setHeight;\n    cm.setSize = cm._setSize;\n    cm.setSize();\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/display/placeholder.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"placeholder\", \"\", function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.on(\"blur\", onBlur);\n      cm.on(\"change\", onChange);\n      onChange(cm);\n    } else if (!val && prev) {\n      cm.off(\"blur\", onBlur);\n      cm.off(\"change\", onChange);\n      clearPlaceholder(cm);\n      var wrapper = cm.getWrapperElement();\n      wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\");\n    }\n\n    if (val && !cm.hasFocus()) onBlur(cm);\n  });\n\n  function clearPlaceholder(cm) {\n    if (cm.state.placeholder) {\n      cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);\n      cm.state.placeholder = null;\n    }\n  }\n  function setPlaceholder(cm) {\n    clearPlaceholder(cm);\n    var elt = cm.state.placeholder = document.createElement(\"pre\");\n    elt.style.cssText = \"height: 0; overflow: visible\";\n    elt.className = \"CodeMirror-placeholder\";\n    elt.appendChild(document.createTextNode(cm.getOption(\"placeholder\")));\n    cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);\n  }\n\n  function onBlur(cm) {\n    if (isEmpty(cm)) setPlaceholder(cm);\n  }\n  function onChange(cm) {\n    var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);\n    wrapper.className = wrapper.className.replace(\" CodeMirror-empty\", \"\") + (empty ? \" CodeMirror-empty\" : \"\");\n\n    if (empty) setPlaceholder(cm);\n    else clearPlaceholder(cm);\n  }\n\n  function isEmpty(cm) {\n    return (cm.lineCount() === 1) && (cm.getLine(0) === \"\");\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/display/rulers.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"rulers\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      clearRulers(cm);\n      cm.off(\"refresh\", refreshRulers);\n    }\n    if (val && val.length) {\n      setRulers(cm);\n      cm.on(\"refresh\", refreshRulers);\n    }\n  });\n\n  function clearRulers(cm) {\n    for (var i = cm.display.lineSpace.childNodes.length - 1; i >= 0; i--) {\n      var node = cm.display.lineSpace.childNodes[i];\n      if (/(^|\\s)CodeMirror-ruler($|\\s)/.test(node.className))\n        node.parentNode.removeChild(node);\n    }\n  }\n\n  function setRulers(cm) {\n    var val = cm.getOption(\"rulers\");\n    var cw = cm.defaultCharWidth();\n    var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), \"div\").left;\n    var minH = cm.display.scroller.offsetHeight + 30;\n    for (var i = 0; i < val.length; i++) {\n      var elt = document.createElement(\"div\");\n      elt.className = \"CodeMirror-ruler\";\n      var col, cls = null, conf = val[i];\n      if (typeof conf == \"number\") {\n        col = conf;\n      } else {\n        col = conf.column;\n        if (conf.className) elt.className += \" \" + conf.className;\n        if (conf.color) elt.style.borderColor = conf.color;\n        if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;\n        if (conf.width) elt.style.borderLeftWidth = conf.width;\n        cls = val[i].className;\n      }\n      elt.style.left = (left + col * cw) + \"px\";\n      elt.style.top = \"-50px\";\n      elt.style.bottom = \"-20px\";\n      elt.style.minHeight = minH + \"px\";\n      cm.display.lineSpace.insertBefore(elt, cm.display.cursorDiv);\n    }\n  }\n\n  function refreshRulers(cm) {\n    clearRulers(cm);\n    setRulers(cm);\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/closebrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var DEFAULT_BRACKETS = \"()[]{}''\\\"\\\"\";\n  var DEFAULT_TRIPLES = \"'\\\"\";\n  var DEFAULT_EXPLODE_ON_ENTER = \"[]{}\";\n  var SPACE_CHAR_REGEX = /\\s/;\n\n  var Pos = CodeMirror.Pos;\n\n  CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n    if (old != CodeMirror.Init && old)\n      cm.removeKeyMap(\"autoCloseBrackets\");\n    if (!val) return;\n    var pairs = DEFAULT_BRACKETS, triples = DEFAULT_TRIPLES, explode = DEFAULT_EXPLODE_ON_ENTER;\n    if (typeof val == \"string\") pairs = val;\n    else if (typeof val == \"object\") {\n      if (val.pairs != null) pairs = val.pairs;\n      if (val.triples != null) triples = val.triples;\n      if (val.explode != null) explode = val.explode;\n    }\n    var map = buildKeymap(pairs, triples);\n    if (explode) map.Enter = buildExplodeHandler(explode);\n    cm.addKeyMap(map);\n  });\n\n  function charsAround(cm, pos) {\n    var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n                          Pos(pos.line, pos.ch + 1));\n    return str.length == 2 ? str : null;\n  }\n\n  // Project the token type that will exists after the given char is\n  // typed, and use it to determine whether it would cause the start\n  // of a string token.\n  function enteringString(cm, pos, ch) {\n    var line = cm.getLine(pos.line);\n    var token = cm.getTokenAt(pos);\n    if (/\\bstring2?\\b/.test(token.type)) return false;\n    var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);\n    stream.pos = stream.start = token.start;\n    for (;;) {\n      var type1 = cm.getMode().token(stream, token.state);\n      if (stream.pos >= pos.ch + 1) return /\\bstring2?\\b/.test(type1);\n      stream.start = stream.pos;\n    }\n  }\n\n  function buildKeymap(pairs, triples) {\n    var map = {\n      name : \"autoCloseBrackets\",\n      Backspace: function(cm) {\n        if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n        var ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          if (!ranges[i].empty()) return CodeMirror.Pass;\n          var around = charsAround(cm, ranges[i].head);\n          if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n        }\n        for (var i = ranges.length - 1; i >= 0; i--) {\n          var cur = ranges[i].head;\n          cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1));\n        }\n      }\n    };\n    var closingBrackets = \"\";\n    for (var i = 0; i < pairs.length; i += 2) (function(left, right) {\n      closingBrackets += right;\n      map[\"'\" + left + \"'\"] = function(cm) {\n        if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n        var ranges = cm.listSelections(), type, next;\n        for (var i = 0; i < ranges.length; i++) {\n          var range = ranges[i], cur = range.head, curType;\n          var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n          if (!range.empty()) {\n            curType = \"surround\";\n          } else if (left == right && next == right) {\n            if (cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == left + left + left)\n              curType = \"skipThree\";\n            else\n              curType = \"skip\";\n          } else if (left == right && cur.ch > 1 && triples.indexOf(left) >= 0 &&\n                     cm.getRange(Pos(cur.line, cur.ch - 2), cur) == left + left &&\n                     (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != left)) {\n            curType = \"addFour\";\n          } else if (left == '\"' || left == \"'\") {\n            if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, left)) curType = \"both\";\n            else return CodeMirror.Pass;\n          } else if (cm.getLine(cur.line).length == cur.ch || closingBrackets.indexOf(next) >= 0 || SPACE_CHAR_REGEX.test(next)) {\n            curType = \"both\";\n          } else {\n            return CodeMirror.Pass;\n          }\n          if (!type) type = curType;\n          else if (type != curType) return CodeMirror.Pass;\n        }\n\n        cm.operation(function() {\n          if (type == \"skip\") {\n            cm.execCommand(\"goCharRight\");\n          } else if (type == \"skipThree\") {\n            for (var i = 0; i < 3; i++)\n              cm.execCommand(\"goCharRight\");\n          } else if (type == \"surround\") {\n            var sels = cm.getSelections();\n            for (var i = 0; i < sels.length; i++)\n              sels[i] = left + sels[i] + right;\n            cm.replaceSelections(sels, \"around\");\n          } else if (type == \"both\") {\n            cm.replaceSelection(left + right, null);\n            cm.execCommand(\"goCharLeft\");\n          } else if (type == \"addFour\") {\n            cm.replaceSelection(left + left + left + left, \"before\");\n            cm.execCommand(\"goCharRight\");\n          }\n        });\n      };\n      if (left != right) map[\"'\" + right + \"'\"] = function(cm) {\n        var ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          var range = ranges[i];\n          if (!range.empty() ||\n              cm.getRange(range.head, Pos(range.head.line, range.head.ch + 1)) != right)\n            return CodeMirror.Pass;\n        }\n        cm.execCommand(\"goCharRight\");\n      };\n    })(pairs.charAt(i), pairs.charAt(i + 1));\n    return map;\n  }\n\n  function buildExplodeHandler(pairs) {\n    return function(cm) {\n      if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n      var ranges = cm.listSelections();\n      for (var i = 0; i < ranges.length; i++) {\n        if (!ranges[i].empty()) return CodeMirror.Pass;\n        var around = charsAround(cm, ranges[i].head);\n        if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n      }\n      cm.operation(function() {\n        cm.replaceSelection(\"\\n\\n\", null);\n        cm.execCommand(\"goCharLeft\");\n        ranges = cm.listSelections();\n        for (var i = 0; i < ranges.length; i++) {\n          var line = ranges[i].head.line;\n          cm.indentLine(line, null, true);\n          cm.indentLine(line + 1, null, true);\n        }\n      });\n    };\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/closetag.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Tag-closer extension for CodeMirror.\n *\n * This extension adds an \"autoCloseTags\" option that can be set to\n * either true to get the default behavior, or an object to further\n * configure its behavior.\n *\n * These are supported options:\n *\n * `whenClosing` (default true)\n *   Whether to autoclose when the '/' of a closing tag is typed.\n * `whenOpening` (default true)\n *   Whether to autoclose the tag when the final '>' of an opening\n *   tag is typed.\n * `dontCloseTags` (default is empty tags for HTML, none for XML)\n *   An array of tag names that should not be autoclosed.\n * `indentTags` (default is block tags for HTML, none for XML)\n *   An array of tag names that should, when opened, cause a\n *   blank line to be added inside the tag, and the blank line and\n *   closing line to be indented.\n *\n * See demos/closetag.html for a usage example.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"autoCloseTags\", false, function(cm, val, old) {\n    if (old != CodeMirror.Init && old)\n      cm.removeKeyMap(\"autoCloseTags\");\n    if (!val) return;\n    var map = {name: \"autoCloseTags\"};\n    if (typeof val != \"object\" || val.whenClosing)\n      map[\"'/'\"] = function(cm) { return autoCloseSlash(cm); };\n    if (typeof val != \"object\" || val.whenOpening)\n      map[\"'>'\"] = function(cm) { return autoCloseGT(cm); };\n    cm.addKeyMap(map);\n  });\n\n  var htmlDontClose = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\",\n                       \"source\", \"track\", \"wbr\"];\n  var htmlIndent = [\"applet\", \"blockquote\", \"body\", \"button\", \"div\", \"dl\", \"fieldset\", \"form\", \"frameset\", \"h1\", \"h2\", \"h3\", \"h4\",\n                    \"h5\", \"h6\", \"head\", \"html\", \"iframe\", \"layer\", \"legend\", \"object\", \"ol\", \"p\", \"select\", \"table\", \"ul\"];\n\n  function autoCloseGT(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      if (inner.mode.name != \"xml\" || !state.tagName) return CodeMirror.Pass;\n\n      var opt = cm.getOption(\"autoCloseTags\"), html = inner.mode.configuration == \"html\";\n      var dontCloseTags = (typeof opt == \"object\" && opt.dontCloseTags) || (html && htmlDontClose);\n      var indentTags = (typeof opt == \"object\" && opt.indentTags) || (html && htmlIndent);\n\n      var tagName = state.tagName;\n      if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch);\n      var lowerTagName = tagName.toLowerCase();\n      // Don't process the '>' at the end of an end-tag or self-closing tag\n      if (!tagName ||\n          tok.type == \"string\" && (tok.end != pos.ch || !/[\\\"\\']/.test(tok.string.charAt(tok.string.length - 1)) || tok.string.length == 1) ||\n          tok.type == \"tag\" && state.type == \"closeTag\" ||\n          tok.string.indexOf(\"/\") == (tok.string.length - 1) || // match something like <someTagName />\n          dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1 ||\n          closingTagExists(cm, tagName, pos, state, true))\n        return CodeMirror.Pass;\n\n      var indent = indentTags && indexOf(indentTags, lowerTagName) > -1;\n      replacements[i] = {indent: indent,\n                         text: \">\" + (indent ? \"\\n\\n\" : \"\") + \"</\" + tagName + \">\",\n                         newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};\n    }\n\n    for (var i = ranges.length - 1; i >= 0; i--) {\n      var info = replacements[i];\n      cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, \"+insert\");\n      var sel = cm.listSelections().slice(0);\n      sel[i] = {head: info.newPos, anchor: info.newPos};\n      cm.setSelections(sel);\n      if (info.indent) {\n        cm.indentLine(info.newPos.line, null, true);\n        cm.indentLine(info.newPos.line + 1, null, true);\n      }\n    }\n  }\n\n  function autoCloseCurrent(cm, typingSlash) {\n    var ranges = cm.listSelections(), replacements = [];\n    var head = typingSlash ? \"/\" : \"</\";\n    for (var i = 0; i < ranges.length; i++) {\n      if (!ranges[i].empty()) return CodeMirror.Pass;\n      var pos = ranges[i].head, tok = cm.getTokenAt(pos);\n      var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;\n      if (typingSlash && (tok.type == \"string\" || tok.string.charAt(0) != \"<\" ||\n                          tok.start != pos.ch - 1))\n        return CodeMirror.Pass;\n      // Kludge to get around the fact that we are not in XML mode\n      // when completing in JS/CSS snippet in htmlmixed mode. Does not\n      // work for other XML embedded languages (there is no general\n      // way to go from a mixed mode to its current XML state).\n      if (inner.mode.name != \"xml\") {\n        if (cm.getMode().name == \"htmlmixed\" && inner.mode.name == \"javascript\")\n          replacements[i] = head + \"script>\";\n        else if (cm.getMode().name == \"htmlmixed\" && inner.mode.name == \"css\")\n          replacements[i] = head + \"style>\";\n        else\n          return CodeMirror.Pass;\n      } else {\n        if (!state.context || !state.context.tagName ||\n            closingTagExists(cm, state.context.tagName, pos, state))\n          return CodeMirror.Pass;\n        replacements[i] = head + state.context.tagName + \">\";\n      }\n    }\n    cm.replaceSelections(replacements);\n    ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++)\n      if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)\n        cm.indentLine(ranges[i].head.line);\n  }\n\n  function autoCloseSlash(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    return autoCloseCurrent(cm, true);\n  }\n\n  CodeMirror.commands.closeTag = function(cm) { return autoCloseCurrent(cm); };\n\n  function indexOf(collection, elt) {\n    if (collection.indexOf) return collection.indexOf(elt);\n    for (var i = 0, e = collection.length; i < e; ++i)\n      if (collection[i] == elt) return i;\n    return -1;\n  }\n\n  // If xml-fold is loaded, we use its functionality to try and verify\n  // whether a given tag is actually unclosed.\n  function closingTagExists(cm, tagName, pos, state, newTag) {\n    if (!CodeMirror.scanForClosingTag) return false;\n    var end = Math.min(cm.lastLine() + 1, pos.line + 500);\n    var nextClose = CodeMirror.scanForClosingTag(cm, pos, null, end);\n    if (!nextClose || nextClose.tag != tagName) return false;\n    var cx = state.context;\n    // If the immediate wrapping context contains onCx instances of\n    // the same tag, a closing tag only exists if there are at least\n    // that many closing tags of that type following.\n    for (var onCx = newTag ? 1 : 0; cx && cx.tagName == tagName; cx = cx.prev) ++onCx;\n    pos = nextClose.to;\n    for (var i = 1; i < onCx; i++) {\n      var next = CodeMirror.scanForClosingTag(cm, pos, null, end);\n      if (!next || next.tag != tagName) return false;\n      pos = next.to;\n    }\n    return true;\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/continuelist.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var listRE = /^(\\s*)(>[> ]*|[*+-]\\s|(\\d+)\\.)(\\s*)/,\n      emptyListRE = /^(\\s*)(>[> ]*|[*+-]|(\\d+)\\.)(\\s*)$/,\n      unorderedListRE = /[*+-]\\s/;\n\n  CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) {\n    if (cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n    var ranges = cm.listSelections(), replacements = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var pos = ranges[i].head, match;\n      var eolState = cm.getStateAfter(pos.line);\n      var inList = eolState.list !== false;\n      var inQuote = eolState.quote !== false;\n\n      if (!ranges[i].empty() || (!inList && !inQuote) || !(match = cm.getLine(pos.line).match(listRE))) {\n        cm.execCommand(\"newlineAndIndent\");\n        return;\n      }\n      if (cm.getLine(pos.line).match(emptyListRE)) {\n        cm.replaceRange(\"\", {\n          line: pos.line, ch: 0\n        }, {\n          line: pos.line, ch: pos.ch + 1\n        });\n        replacements[i] = \"\\n\";\n\n      } else {\n        var indent = match[1], after = match[4];\n        var bullet = unorderedListRE.test(match[2]) || match[2].indexOf(\">\") >= 0\n          ? match[2]\n          : (parseInt(match[3], 10) + 1) + \".\";\n\n        replacements[i] = \"\\n\" + indent + bullet + after;\n      }\n    }\n\n    cm.replaceSelections(replacements);\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/matchbrackets.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n    (document.documentMode == null || document.documentMode < 8);\n\n  var Pos = CodeMirror.Pos;\n\n  var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\"};\n\n  function findMatchingBracket(cm, where, strict, config) {\n    var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n    var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];\n    if (!match) return null;\n    var dir = match.charAt(1) == \">\" ? 1 : -1;\n    if (strict && (dir > 0) != (pos == where.ch)) return null;\n    var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n    var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config);\n    if (found == null) return null;\n    return {from: Pos(where.line, pos), to: found && found.pos,\n            match: found && found.ch == match.charAt(0), forward: dir > 0};\n  }\n\n  // bracketRegex is used to specify which type of bracket to scan\n  // should be a regexp, e.g. /[[\\]]/\n  //\n  // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n  //\n  // Returns false when no bracket was found, null when it reached\n  // maxScanLines and gave up\n  function scanForBracket(cm, where, dir, style, config) {\n    var maxScanLen = (config && config.maxScanLineLength) || 10000;\n    var maxScanLines = (config && config.maxScanLines) || 1000;\n\n    var stack = [];\n    var re = config && config.bracketRegex ? config.bracketRegex : /[(){}[\\]]/;\n    var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n                          : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n    for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n      var line = cm.getLine(lineNo);\n      if (!line) continue;\n      var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n      if (line.length > maxScanLen) continue;\n      if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n      for (; pos != end; pos += dir) {\n        var ch = line.charAt(pos);\n        if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) {\n          var match = matching[ch];\n          if ((match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n          else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n          else stack.pop();\n        }\n      }\n    }\n    return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n  }\n\n  function matchBrackets(cm, autoclear, config) {\n    // Disable brace matching in long lines, since it'll cause hugely slow updates\n    var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000;\n    var marks = [], ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++) {\n      var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, false, config);\n      if (match && cm.getLine(match.from.line).length <= maxHighlightLen) {\n        var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n        marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n        if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n          marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n      }\n    }\n\n    if (marks.length) {\n      // Kludge to work around the IE bug from issue #1193, where text\n      // input stops going to the textare whever this fires.\n      if (ie_lt8 && cm.state.focused) cm.focus();\n\n      var clear = function() {\n        cm.operation(function() {\n          for (var i = 0; i < marks.length; i++) marks[i].clear();\n        });\n      };\n      if (autoclear) setTimeout(clear, 800);\n      else return clear;\n    }\n  }\n\n  var currentlyHighlighted = null;\n  function doMatchBrackets(cm) {\n    cm.operation(function() {\n      if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}\n      currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n    });\n  }\n\n  CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init)\n      cm.off(\"cursorActivity\", doMatchBrackets);\n    if (val) {\n      cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n      cm.on(\"cursorActivity\", doMatchBrackets);\n    }\n  });\n\n  CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n  CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, strict, config){\n    return findMatchingBracket(this, pos, strict, config);\n  });\n  CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n    return scanForBracket(this, pos, dir, style, config);\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/matchtags.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../fold/xml-fold\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../fold/xml-fold\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"matchTags\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"cursorActivity\", doMatchTags);\n      cm.off(\"viewportChange\", maybeUpdateMatch);\n      clear(cm);\n    }\n    if (val) {\n      cm.state.matchBothTags = typeof val == \"object\" && val.bothTags;\n      cm.on(\"cursorActivity\", doMatchTags);\n      cm.on(\"viewportChange\", maybeUpdateMatch);\n      doMatchTags(cm);\n    }\n  });\n\n  function clear(cm) {\n    if (cm.state.tagHit) cm.state.tagHit.clear();\n    if (cm.state.tagOther) cm.state.tagOther.clear();\n    cm.state.tagHit = cm.state.tagOther = null;\n  }\n\n  function doMatchTags(cm) {\n    cm.state.failedTagMatch = false;\n    cm.operation(function() {\n      clear(cm);\n      if (cm.somethingSelected()) return;\n      var cur = cm.getCursor(), range = cm.getViewport();\n      range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);\n      var match = CodeMirror.findMatchingTag(cm, cur, range);\n      if (!match) return;\n      if (cm.state.matchBothTags) {\n        var hit = match.at == \"open\" ? match.open : match.close;\n        if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: \"CodeMirror-matchingtag\"});\n      }\n      var other = match.at == \"close\" ? match.open : match.close;\n      if (other)\n        cm.state.tagOther = cm.markText(other.from, other.to, {className: \"CodeMirror-matchingtag\"});\n      else\n        cm.state.failedTagMatch = true;\n    });\n  }\n\n  function maybeUpdateMatch(cm) {\n    if (cm.state.failedTagMatch) doMatchTags(cm);\n  }\n\n  CodeMirror.commands.toMatchingTag = function(cm) {\n    var found = CodeMirror.findMatchingTag(cm, cm.getCursor());\n    if (found) {\n      var other = found.at == \"close\" ? found.open : found.close;\n      if (other) cm.extendSelection(other.to, other.from);\n    }\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/edit/trailingspace.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  CodeMirror.defineOption(\"showTrailingSpace\", false, function(cm, val, prev) {\n    if (prev == CodeMirror.Init) prev = false;\n    if (prev && !val)\n      cm.removeOverlay(\"trailingspace\");\n    else if (!prev && val)\n      cm.addOverlay({\n        token: function(stream) {\n          for (var l = stream.string.length, i = l; i && /\\s/.test(stream.string.charAt(i - 1)); --i) {}\n          if (i > stream.pos) { stream.pos = i; return null; }\n          stream.pos = l;\n          return \"trailingspace\";\n        },\n        name: \"trailingspace\"\n      });\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/brace-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n  var line = start.line, lineText = cm.getLine(line);\n  var startCh, tokenType;\n\n  function findOpening(openCh) {\n    for (var at = start.ch, pass = 0;;) {\n      var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n      if (found == -1) {\n        if (pass == 1) break;\n        pass = 1;\n        at = lineText.length;\n        continue;\n      }\n      if (pass == 1 && found < start.ch) break;\n      tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n      if (!/^(comment|string)/.test(tokenType)) return found + 1;\n      at = found - 1;\n    }\n  }\n\n  var startToken = \"{\", endToken = \"}\", startCh = findOpening(\"{\");\n  if (startCh == null) {\n    startToken = \"[\", endToken = \"]\";\n    startCh = findOpening(\"[\");\n  }\n\n  if (startCh == null) return;\n  var count = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n        if (pos == nextOpen) ++count;\n        else if (!--count) { end = i; endCh = pos; break outer; }\n      }\n      ++pos;\n    }\n  }\n  if (end == null || line == end && endCh == startCh) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n  function hasImport(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type != \"keyword\" || start.string != \"import\") return null;\n    // Now find closing semicolon, return its position\n    for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n      var text = cm.getLine(i), semi = text.indexOf(\";\");\n      if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n    }\n  }\n\n  var start = start.line, has = hasImport(start), prev;\n  if (!has || hasImport(start - 1) || ((prev = hasImport(start - 2)) && prev.end.line == start - 1))\n    return null;\n  for (var end = has.end;;) {\n    var next = hasImport(end.line + 1);\n    if (next == null) break;\n    end = next.end;\n  }\n  return {from: cm.clipPos(CodeMirror.Pos(start, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n  function hasInclude(line) {\n    if (line < cm.firstLine() || line > cm.lastLine()) return null;\n    var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n    if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n    if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n  }\n\n  var start = start.line, has = hasInclude(start);\n  if (has == null || hasInclude(start - 1) != null) return null;\n  for (var end = start;;) {\n    var next = hasInclude(end + 1);\n    if (next == null) break;\n    ++end;\n  }\n  return {from: CodeMirror.Pos(start, has + 1),\n          to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/comment-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerGlobalHelper(\"fold\", \"comment\", function(mode) {\n  return mode.blockCommentStart && mode.blockCommentEnd;\n}, function(cm, start) {\n  var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;\n  if (!startToken || !endToken) return;\n  var line = start.line, lineText = cm.getLine(line);\n\n  var startCh;\n  for (var at = start.ch, pass = 0;;) {\n    var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);\n    if (found == -1) {\n      if (pass == 1) return;\n      pass = 1;\n      at = lineText.length;\n      continue;\n    }\n    if (pass == 1 && found < start.ch) return;\n    if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {\n      startCh = found + startToken.length;\n      break;\n    }\n    at = found - 1;\n  }\n\n  var depth = 1, lastLine = cm.lastLine(), end, endCh;\n  outer: for (var i = line; i <= lastLine; ++i) {\n    var text = cm.getLine(i), pos = i == line ? startCh : 0;\n    for (;;) {\n      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n      if (nextOpen < 0) nextOpen = text.length;\n      if (nextClose < 0) nextClose = text.length;\n      pos = Math.min(nextOpen, nextClose);\n      if (pos == text.length) break;\n      if (pos == nextOpen) ++depth;\n      else if (!--depth) { end = i; endCh = pos; break outer; }\n      ++pos;\n    }\n  }\n  if (end == null || line == end && endCh == startCh) return;\n  return {from: CodeMirror.Pos(line, startCh),\n          to: CodeMirror.Pos(end, endCh)};\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/foldcode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function doFold(cm, pos, options, force) {\n    if (options && options.call) {\n      var finder = options;\n      options = null;\n    } else {\n      var finder = getOption(cm, options, \"rangeFinder\");\n    }\n    if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n    var minSize = getOption(cm, options, \"minFoldSize\");\n\n    function getRange(allowFolded) {\n      var range = finder(cm, pos);\n      if (!range || range.to.line - range.from.line < minSize) return null;\n      var marks = cm.findMarksAt(range.from);\n      for (var i = 0; i < marks.length; ++i) {\n        if (marks[i].__isFold && force !== \"fold\") {\n          if (!allowFolded) return null;\n          range.cleared = true;\n          marks[i].clear();\n        }\n      }\n      return range;\n    }\n\n    var range = getRange(true);\n    if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n      pos = CodeMirror.Pos(pos.line - 1, 0);\n      range = getRange(false);\n    }\n    if (!range || range.cleared || force === \"unfold\") return;\n\n    var myWidget = makeWidget(cm, options);\n    CodeMirror.on(myWidget, \"mousedown\", function(e) {\n      myRange.clear();\n      CodeMirror.e_preventDefault(e);\n    });\n    var myRange = cm.markText(range.from, range.to, {\n      replacedWith: myWidget,\n      clearOnEnter: true,\n      __isFold: true\n    });\n    myRange.on(\"clear\", function(from, to) {\n      CodeMirror.signal(cm, \"unfold\", cm, from, to);\n    });\n    CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n  }\n\n  function makeWidget(cm, options) {\n    var widget = getOption(cm, options, \"widget\");\n    if (typeof widget == \"string\") {\n      var text = document.createTextNode(widget);\n      widget = document.createElement(\"span\");\n      widget.appendChild(text);\n      widget.className = \"CodeMirror-foldmarker\";\n    }\n    return widget;\n  }\n\n  // Clumsy backwards-compatible interface\n  CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n    return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n  };\n\n  // New-style interface\n  CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n    doFold(this, pos, options, force);\n  });\n\n  CodeMirror.defineExtension(\"isFolded\", function(pos) {\n    var marks = this.findMarksAt(pos);\n    for (var i = 0; i < marks.length; ++i)\n      if (marks[i].__isFold) return true;\n  });\n\n  CodeMirror.commands.toggleFold = function(cm) {\n    cm.foldCode(cm.getCursor());\n  };\n  CodeMirror.commands.fold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"fold\");\n  };\n  CodeMirror.commands.unfold = function(cm) {\n    cm.foldCode(cm.getCursor(), null, \"unfold\");\n  };\n  CodeMirror.commands.foldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"fold\");\n    });\n  };\n  CodeMirror.commands.unfoldAll = function(cm) {\n    cm.operation(function() {\n      for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n        cm.foldCode(CodeMirror.Pos(i, 0), null, \"unfold\");\n    });\n  };\n\n  CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n    var funcs = Array.prototype.slice.call(arguments, 0);\n    return function(cm, start) {\n      for (var i = 0; i < funcs.length; ++i) {\n        var found = funcs[i](cm, start);\n        if (found) return found;\n      }\n    };\n  });\n\n  CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n    var helpers = cm.getHelpers(start, \"fold\");\n    for (var i = 0; i < helpers.length; i++) {\n      var cur = helpers[i](cm, start);\n      if (cur) return cur;\n    }\n  });\n\n  var defaultOptions = {\n    rangeFinder: CodeMirror.fold.auto,\n    widget: \"\\u2194\",\n    minFoldSize: 0,\n    scanUp: false\n  };\n\n  CodeMirror.defineOption(\"foldOptions\", null);\n\n  function getOption(cm, options, name) {\n    if (options && options[name] !== undefined)\n      return options[name];\n    var editorOptions = cm.options.foldOptions;\n    if (editorOptions && editorOptions[name] !== undefined)\n      return editorOptions[name];\n    return defaultOptions[name];\n  }\n\n  CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n    return getOption(this, options, name);\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/foldgutter.css",
    "content": ".CodeMirror-foldmarker {\n  color: blue;\n  text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;\n  font-family: arial;\n  line-height: .3;\n  cursor: pointer;\n}\n.CodeMirror-foldgutter {\n  width: .7em;\n}\n.CodeMirror-foldgutter-open,\n.CodeMirror-foldgutter-folded {\n  cursor: pointer;\n}\n.CodeMirror-foldgutter-open:after {\n  content: \"\\25BE\";\n}\n.CodeMirror-foldgutter-folded:after {\n  content: \"\\25B8\";\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/foldgutter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.clearGutter(cm.state.foldGutter.options.gutter);\n      cm.state.foldGutter = null;\n      cm.off(\"gutterClick\", onGutterClick);\n      cm.off(\"change\", onChange);\n      cm.off(\"viewportChange\", onViewportChange);\n      cm.off(\"fold\", onFold);\n      cm.off(\"unfold\", onFold);\n      cm.off(\"swapDoc\", updateInViewport);\n    }\n    if (val) {\n      cm.state.foldGutter = new State(parseOptions(val));\n      updateInViewport(cm);\n      cm.on(\"gutterClick\", onGutterClick);\n      cm.on(\"change\", onChange);\n      cm.on(\"viewportChange\", onViewportChange);\n      cm.on(\"fold\", onFold);\n      cm.on(\"unfold\", onFold);\n      cm.on(\"swapDoc\", updateInViewport);\n    }\n  });\n\n  var Pos = CodeMirror.Pos;\n\n  function State(options) {\n    this.options = options;\n    this.from = this.to = 0;\n  }\n\n  function parseOptions(opts) {\n    if (opts === true) opts = {};\n    if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n    if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n    if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n    return opts;\n  }\n\n  function isFolded(cm, line) {\n    var marks = cm.findMarksAt(Pos(line));\n    for (var i = 0; i < marks.length; ++i)\n      if (marks[i].__isFold && marks[i].find().from.line == line) return true;\n  }\n\n  function marker(spec) {\n    if (typeof spec == \"string\") {\n      var elt = document.createElement(\"div\");\n      elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n      return elt;\n    } else {\n      return spec.cloneNode(true);\n    }\n  }\n\n  function updateFoldInfo(cm, from, to) {\n    var opts = cm.state.foldGutter.options, cur = from;\n    var minSize = cm.foldOption(opts, \"minFoldSize\");\n    var func = cm.foldOption(opts, \"rangeFinder\");\n    cm.eachLine(from, to, function(line) {\n      var mark = null;\n      if (isFolded(cm, cur)) {\n        mark = marker(opts.indicatorFolded);\n      } else {\n        var pos = Pos(cur, 0);\n        var range = func && func(cm, pos);\n        if (range && range.to.line - range.from.line >= minSize)\n          mark = marker(opts.indicatorOpen);\n      }\n      cm.setGutterMarker(line, opts.gutter, mark);\n      ++cur;\n    });\n  }\n\n  function updateInViewport(cm) {\n    var vp = cm.getViewport(), state = cm.state.foldGutter;\n    if (!state) return;\n    cm.operation(function() {\n      updateFoldInfo(cm, vp.from, vp.to);\n    });\n    state.from = vp.from; state.to = vp.to;\n  }\n\n  function onGutterClick(cm, line, gutter) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    if (gutter != opts.gutter) return;\n    cm.foldCode(Pos(line, 0), opts.rangeFinder);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    state.from = state.to = 0;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n  }\n\n  function onViewportChange(cm) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var opts = state.options;\n    clearTimeout(state.changeUpdate);\n    state.changeUpdate = setTimeout(function() {\n      var vp = cm.getViewport();\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        updateInViewport(cm);\n      } else {\n        cm.operation(function() {\n          if (vp.from < state.from) {\n            updateFoldInfo(cm, vp.from, state.from);\n            state.from = vp.from;\n          }\n          if (vp.to > state.to) {\n            updateFoldInfo(cm, state.to, vp.to);\n            state.to = vp.to;\n          }\n        });\n      }\n    }, opts.updateViewportTimeSpan || 400);\n  }\n\n  function onFold(cm, from) {\n    var state = cm.state.foldGutter;\n    if (!state) return;\n    var line = from.line;\n    if (line >= state.from && line < state.to)\n      updateFoldInfo(cm, line, line + 1);\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/indent-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"indent\", function(cm, start) {\n  var tabSize = cm.getOption(\"tabSize\"), firstLine = cm.getLine(start.line);\n  if (!/\\S/.test(firstLine)) return;\n  var getIndent = function(line) {\n    return CodeMirror.countColumn(line, null, tabSize);\n  };\n  var myIndent = getIndent(firstLine);\n  var lastLineInFold = null;\n  // Go through lines until we find a line that definitely doesn't belong in\n  // the block we're folding, or to the end.\n  for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {\n    var curLine = cm.getLine(i);\n    var curIndent = getIndent(curLine);\n    if (curIndent > myIndent) {\n      // Lines with a greater indent are considered part of the block.\n      lastLineInFold = i;\n    } else if (!/\\S/.test(curLine)) {\n      // Empty lines might be breaks within the block we're trying to fold.\n    } else {\n      // A non-empty line at an indent equal to or less than ours marks the\n      // start of another block.\n      break;\n    }\n  }\n  if (lastLineInFold) return {\n    from: CodeMirror.Pos(start.line, firstLine.length),\n    to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/markdown-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"markdown\", function(cm, start) {\n  var maxDepth = 100;\n\n  function isHeader(lineNo) {\n    var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));\n    return tokentype && /\\bheader\\b/.test(tokentype);\n  }\n\n  function headerLevel(lineNo, line, nextLine) {\n    var match = line && line.match(/^#+/);\n    if (match && isHeader(lineNo)) return match[0].length;\n    match = nextLine && nextLine.match(/^[=\\-]+\\s*$/);\n    if (match && isHeader(lineNo + 1)) return nextLine[0] == \"=\" ? 1 : 2;\n    return maxDepth;\n  }\n\n  var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);\n  var level = headerLevel(start.line, firstLine, nextLine);\n  if (level === maxDepth) return undefined;\n\n  var lastLineNo = cm.lastLine();\n  var end = start.line, nextNextLine = cm.getLine(end + 2);\n  while (end < lastLineNo) {\n    if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;\n    ++end;\n    nextLine = nextNextLine;\n    nextNextLine = cm.getLine(end + 2);\n  }\n\n  return {\n    from: CodeMirror.Pos(start.line, firstLine.length),\n    to: CodeMirror.Pos(end, cm.getLine(end).length)\n  };\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/fold/xml-fold.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n  function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }\n\n  var nameStartChar = \"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n  var nameChar = nameStartChar + \"\\-\\:\\.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n  var xmlTagStart = new RegExp(\"<(/?)([\" + nameStartChar + \"][\" + nameChar + \"]*)\", \"g\");\n\n  function Iter(cm, line, ch, range) {\n    this.line = line; this.ch = ch;\n    this.cm = cm; this.text = cm.getLine(line);\n    this.min = range ? range.from : cm.firstLine();\n    this.max = range ? range.to - 1 : cm.lastLine();\n  }\n\n  function tagAt(iter, ch) {\n    var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));\n    return type && /\\btag\\b/.test(type);\n  }\n\n  function nextLine(iter) {\n    if (iter.line >= iter.max) return;\n    iter.ch = 0;\n    iter.text = iter.cm.getLine(++iter.line);\n    return true;\n  }\n  function prevLine(iter) {\n    if (iter.line <= iter.min) return;\n    iter.text = iter.cm.getLine(--iter.line);\n    iter.ch = iter.text.length;\n    return true;\n  }\n\n  function toTagEnd(iter) {\n    for (;;) {\n      var gt = iter.text.indexOf(\">\", iter.ch);\n      if (gt == -1) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n  function toTagStart(iter) {\n    for (;;) {\n      var lt = iter.ch ? iter.text.lastIndexOf(\"<\", iter.ch - 1) : -1;\n      if (lt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }\n      xmlTagStart.lastIndex = lt;\n      iter.ch = lt;\n      var match = xmlTagStart.exec(iter.text);\n      if (match && match.index == lt) return match;\n    }\n  }\n\n  function toNextTag(iter) {\n    for (;;) {\n      xmlTagStart.lastIndex = iter.ch;\n      var found = xmlTagStart.exec(iter.text);\n      if (!found) { if (nextLine(iter)) continue; else return; }\n      if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }\n      iter.ch = found.index + found[0].length;\n      return found;\n    }\n  }\n  function toPrevTag(iter) {\n    for (;;) {\n      var gt = iter.ch ? iter.text.lastIndexOf(\">\", iter.ch - 1) : -1;\n      if (gt == -1) { if (prevLine(iter)) continue; else return; }\n      if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }\n      var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n      var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n      iter.ch = gt + 1;\n      return selfClose ? \"selfClose\" : \"regular\";\n    }\n  }\n\n  function findMatchingClose(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);\n      if (!next || !(end = toTagEnd(iter))) return;\n      if (end == \"selfClose\") continue;\n      if (next[1]) { // closing tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == next[2])) return {\n          tag: next[2],\n          from: Pos(startLine, startCh),\n          to: Pos(iter.line, iter.ch)\n        };\n      } else { // opening tag\n        stack.push(next[2]);\n      }\n    }\n  }\n  function findMatchingOpen(iter, tag) {\n    var stack = [];\n    for (;;) {\n      var prev = toPrevTag(iter);\n      if (!prev) return;\n      if (prev == \"selfClose\") { toTagStart(iter); continue; }\n      var endLine = iter.line, endCh = iter.ch;\n      var start = toTagStart(iter);\n      if (!start) return;\n      if (start[1]) { // closing tag\n        stack.push(start[2]);\n      } else { // opening tag\n        for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {\n          stack.length = i;\n          break;\n        }\n        if (i < 0 && (!tag || tag == start[2])) return {\n          tag: start[2],\n          from: Pos(iter.line, iter.ch),\n          to: Pos(endLine, endCh)\n        };\n      }\n    }\n  }\n\n  CodeMirror.registerHelper(\"fold\", \"xml\", function(cm, start) {\n    var iter = new Iter(cm, start.line, 0);\n    for (;;) {\n      var openTag = toNextTag(iter), end;\n      if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;\n      if (!openTag[1] && end != \"selfClose\") {\n        var start = Pos(iter.line, iter.ch);\n        var close = findMatchingClose(iter, openTag[2]);\n        return close && {from: start, to: close.from};\n      }\n    }\n  });\n  CodeMirror.findMatchingTag = function(cm, pos, range) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    if (iter.text.indexOf(\">\") == -1 && iter.text.indexOf(\"<\") == -1) return;\n    var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);\n    var start = end && toTagStart(iter);\n    if (!end || !start || cmp(iter, pos) > 0) return;\n    var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};\n    if (end == \"selfClose\") return {open: here, close: null, at: \"open\"};\n\n    if (start[1]) { // closing tag\n      return {open: findMatchingOpen(iter, start[2]), close: here, at: \"close\"};\n    } else { // opening tag\n      iter = new Iter(cm, to.line, to.ch, range);\n      return {open: here, close: findMatchingClose(iter, start[2]), at: \"open\"};\n    }\n  };\n\n  CodeMirror.findEnclosingTag = function(cm, pos, range) {\n    var iter = new Iter(cm, pos.line, pos.ch, range);\n    for (;;) {\n      var open = findMatchingOpen(iter);\n      if (!open) break;\n      var forward = new Iter(cm, pos.line, pos.ch, range);\n      var close = findMatchingClose(forward, open.tag);\n      if (close) return {open: open, close: close};\n    }\n  };\n\n  // Used by addon/edit/closetag.js\n  CodeMirror.scanForClosingTag = function(cm, pos, name, end) {\n    var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);\n    return findMatchingClose(iter, name);\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/anyword-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var WORD = /[\\w$]+/, RANGE = 500;\n\n  CodeMirror.registerHelper(\"hint\", \"anyword\", function(editor, options) {\n    var word = options && options.word || WORD;\n    var range = options && options.range || RANGE;\n    var cur = editor.getCursor(), curLine = editor.getLine(cur.line);\n    var end = cur.ch, start = end;\n    while (start && word.test(curLine.charAt(start - 1))) --start;\n    var curWord = start != end && curLine.slice(start, end);\n\n    var list = [], seen = {};\n    var re = new RegExp(word.source, \"g\");\n    for (var dir = -1; dir <= 1; dir += 2) {\n      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;\n      for (; line != endLine; line += dir) {\n        var text = editor.getLine(line), m;\n        while (m = re.exec(text)) {\n          if (line == cur.line && m[0] === curWord) continue;\n          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {\n            seen[m[0]] = true;\n            list.push(m[0]);\n          }\n        }\n      }\n    }\n    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/css-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var pseudoClasses = {link: 1, visited: 1, active: 1, hover: 1, focus: 1,\n                       \"first-letter\": 1, \"first-line\": 1, \"first-child\": 1,\n                       before: 1, after: 1, lang: 1};\n\n  CodeMirror.registerHelper(\"hint\", \"css\", function(cm) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (inner.mode.name != \"css\") return;\n\n    var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);\n    if (/[^\\w$_-]/.test(word)) {\n      word = \"\"; start = end = cur.ch;\n    }\n\n    var spec = CodeMirror.resolveMode(\"text/css\");\n\n    var result = [];\n    function add(keywords) {\n      for (var name in keywords)\n        if (!word || name.lastIndexOf(word, 0) == 0)\n          result.push(name);\n    }\n\n    var st = inner.state.state;\n    if (st == \"pseudo\" || token.type == \"variable-3\") {\n      add(pseudoClasses);\n    } else if (st == \"block\" || st == \"maybeprop\") {\n      add(spec.propertyKeywords);\n    } else if (st == \"prop\" || st == \"parens\" || st == \"at\" || st == \"params\") {\n      add(spec.valueKeywords);\n      add(spec.colorKeywords);\n    } else if (st == \"media\" || st == \"media_parens\") {\n      add(spec.mediaTypes);\n      add(spec.mediaFeatures);\n    }\n\n    if (result.length) return {\n      list: result,\n      from: CodeMirror.Pos(cur.line, start),\n      to: CodeMirror.Pos(cur.line, end)\n    };\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/html-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./xml-hint\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./xml-hint\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var langs = \"ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu\".split(\" \");\n  var targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\n  var charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\n  var methods = [\"get\", \"post\", \"put\", \"delete\"];\n  var encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\n  var media = [\"all\", \"screen\", \"print\", \"embossed\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\", \"tty\", \"tv\", \"speech\",\n               \"3d-glasses\", \"resolution [>][<][=] [X]\", \"device-aspect-ratio: X/Y\", \"orientation:portrait\",\n               \"orientation:landscape\", \"device-height: [X]\", \"device-width: [X]\"];\n  var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags\n\n  var data = {\n    a: {\n      attrs: {\n        href: null, ping: null, type: null,\n        media: media,\n        target: targets,\n        hreflang: langs\n      }\n    },\n    abbr: s,\n    acronym: s,\n    address: s,\n    applet: s,\n    area: {\n      attrs: {\n        alt: null, coords: null, href: null, target: null, ping: null,\n        media: media, hreflang: langs, type: null,\n        shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n      }\n    },\n    article: s,\n    aside: s,\n    audio: {\n      attrs: {\n        src: null, mediagroup: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"none\", \"metadata\", \"auto\"],\n        autoplay: [\"\", \"autoplay\"],\n        loop: [\"\", \"loop\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    b: s,\n    base: { attrs: { href: null, target: targets } },\n    basefont: s,\n    bdi: s,\n    bdo: s,\n    big: s,\n    blockquote: { attrs: { cite: null } },\n    body: s,\n    br: s,\n    button: {\n      attrs: {\n        form: null, formaction: null, name: null, value: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"autofocus\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        type: [\"submit\", \"reset\", \"button\"]\n      }\n    },\n    canvas: { attrs: { width: null, height: null } },\n    caption: s,\n    center: s,\n    cite: s,\n    code: s,\n    col: { attrs: { span: null } },\n    colgroup: { attrs: { span: null } },\n    command: {\n      attrs: {\n        type: [\"command\", \"checkbox\", \"radio\"],\n        label: null, icon: null, radiogroup: null, command: null, title: null,\n        disabled: [\"\", \"disabled\"],\n        checked: [\"\", \"checked\"]\n      }\n    },\n    data: { attrs: { value: null } },\n    datagrid: { attrs: { disabled: [\"\", \"disabled\"], multiple: [\"\", \"multiple\"] } },\n    datalist: { attrs: { data: null } },\n    dd: s,\n    del: { attrs: { cite: null, datetime: null } },\n    details: { attrs: { open: [\"\", \"open\"] } },\n    dfn: s,\n    dir: s,\n    div: s,\n    dl: s,\n    dt: s,\n    em: s,\n    embed: { attrs: { src: null, type: null, width: null, height: null } },\n    eventsource: { attrs: { src: null } },\n    fieldset: { attrs: { disabled: [\"\", \"disabled\"], form: null, name: null } },\n    figcaption: s,\n    figure: s,\n    font: s,\n    footer: s,\n    form: {\n      attrs: {\n        action: null, name: null,\n        \"accept-charset\": charsets,\n        autocomplete: [\"on\", \"off\"],\n        enctype: encs,\n        method: methods,\n        novalidate: [\"\", \"novalidate\"],\n        target: targets\n      }\n    },\n    frame: s,\n    frameset: s,\n    h1: s, h2: s, h3: s, h4: s, h5: s, h6: s,\n    head: {\n      attrs: {},\n      children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n    },\n    header: s,\n    hgroup: s,\n    hr: s,\n    html: {\n      attrs: { manifest: null },\n      children: [\"head\", \"body\"]\n    },\n    i: s,\n    iframe: {\n      attrs: {\n        src: null, srcdoc: null, name: null, width: null, height: null,\n        sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n        seamless: [\"\", \"seamless\"]\n      }\n    },\n    img: {\n      attrs: {\n        alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"]\n      }\n    },\n    input: {\n      attrs: {\n        alt: null, dirname: null, form: null, formaction: null,\n        height: null, list: null, max: null, maxlength: null, min: null,\n        name: null, pattern: null, placeholder: null, size: null, src: null,\n        step: null, value: null, width: null,\n        accept: [\"audio/*\", \"video/*\", \"image/*\"],\n        autocomplete: [\"on\", \"off\"],\n        autofocus: [\"\", \"autofocus\"],\n        checked: [\"\", \"checked\"],\n        disabled: [\"\", \"disabled\"],\n        formenctype: encs,\n        formmethod: methods,\n        formnovalidate: [\"\", \"novalidate\"],\n        formtarget: targets,\n        multiple: [\"\", \"multiple\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n               \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n               \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n      }\n    },\n    ins: { attrs: { cite: null, datetime: null } },\n    kbd: s,\n    keygen: {\n      attrs: {\n        challenge: null, form: null, name: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        keytype: [\"RSA\"]\n      }\n    },\n    label: { attrs: { \"for\": null, form: null } },\n    legend: s,\n    li: { attrs: { value: null } },\n    link: {\n      attrs: {\n        href: null, type: null,\n        hreflang: langs,\n        media: media,\n        sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n      }\n    },\n    map: { attrs: { name: null } },\n    mark: s,\n    menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n    meta: {\n      attrs: {\n        content: null,\n        charset: charsets,\n        name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n        \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n      }\n    },\n    meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n    nav: s,\n    noframes: s,\n    noscript: s,\n    object: {\n      attrs: {\n        data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n        typemustmatch: [\"\", \"typemustmatch\"]\n      }\n    },\n    ol: { attrs: { reversed: [\"\", \"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] } },\n    optgroup: { attrs: { disabled: [\"\", \"disabled\"], label: null } },\n    option: { attrs: { disabled: [\"\", \"disabled\"], label: null, selected: [\"\", \"selected\"], value: null } },\n    output: { attrs: { \"for\": null, form: null, name: null } },\n    p: s,\n    param: { attrs: { name: null, value: null } },\n    pre: s,\n    progress: { attrs: { value: null, max: null } },\n    q: { attrs: { cite: null } },\n    rp: s,\n    rt: s,\n    ruby: s,\n    s: s,\n    samp: s,\n    script: {\n      attrs: {\n        type: [\"text/javascript\"],\n        src: null,\n        async: [\"\", \"async\"],\n        defer: [\"\", \"defer\"],\n        charset: charsets\n      }\n    },\n    section: s,\n    select: {\n      attrs: {\n        form: null, name: null, size: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        multiple: [\"\", \"multiple\"]\n      }\n    },\n    small: s,\n    source: { attrs: { src: null, type: null, media: null } },\n    span: s,\n    strike: s,\n    strong: s,\n    style: {\n      attrs: {\n        type: [\"text/css\"],\n        media: media,\n        scoped: null\n      }\n    },\n    sub: s,\n    summary: s,\n    sup: s,\n    table: s,\n    tbody: s,\n    td: { attrs: { colspan: null, rowspan: null, headers: null } },\n    textarea: {\n      attrs: {\n        dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n        rows: null, cols: null,\n        autofocus: [\"\", \"autofocus\"],\n        disabled: [\"\", \"disabled\"],\n        readonly: [\"\", \"readonly\"],\n        required: [\"\", \"required\"],\n        wrap: [\"soft\", \"hard\"]\n      }\n    },\n    tfoot: s,\n    th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n    thead: s,\n    time: { attrs: { datetime: null } },\n    title: s,\n    tr: s,\n    track: {\n      attrs: {\n        src: null, label: null, \"default\": null,\n        kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n        srclang: langs\n      }\n    },\n    tt: s,\n    u: s,\n    ul: s,\n    \"var\": s,\n    video: {\n      attrs: {\n        src: null, poster: null, width: null, height: null,\n        crossorigin: [\"anonymous\", \"use-credentials\"],\n        preload: [\"auto\", \"metadata\", \"none\"],\n        autoplay: [\"\", \"autoplay\"],\n        mediagroup: [\"movie\"],\n        muted: [\"\", \"muted\"],\n        controls: [\"\", \"controls\"]\n      }\n    },\n    wbr: s\n  };\n\n  var globalAttrs = {\n    accesskey: [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    \"class\": null,\n    contenteditable: [\"true\", \"false\"],\n    contextmenu: null,\n    dir: [\"ltr\", \"rtl\", \"auto\"],\n    draggable: [\"true\", \"false\", \"auto\"],\n    dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n    hidden: [\"hidden\"],\n    id: null,\n    inert: [\"inert\"],\n    itemid: null,\n    itemprop: null,\n    itemref: null,\n    itemscope: [\"itemscope\"],\n    itemtype: null,\n    lang: [\"en\", \"es\"],\n    spellcheck: [\"true\", \"false\"],\n    style: null,\n    tabindex: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n    title: null,\n    translate: [\"yes\", \"no\"],\n    onclick: null,\n    rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"]\n  };\n  function populate(obj) {\n    for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr))\n      obj.attrs[attr] = globalAttrs[attr];\n  }\n\n  populate(s);\n  for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s)\n    populate(data[tag]);\n\n  CodeMirror.htmlSchema = data;\n  function htmlHint(cm, options) {\n    var local = {schemaInfo: data};\n    if (options) for (var opt in options) local[opt] = options[opt];\n    return CodeMirror.hint.xml(cm, local);\n  }\n  CodeMirror.registerHelper(\"hint\", \"html\", htmlHint);\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/javascript-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  var Pos = CodeMirror.Pos;\n\n  function forEach(arr, f) {\n    for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]);\n  }\n\n  function arrayContains(arr, item) {\n    if (!Array.prototype.indexOf) {\n      var i = arr.length;\n      while (i--) {\n        if (arr[i] === item) {\n          return true;\n        }\n      }\n      return false;\n    }\n    return arr.indexOf(item) != -1;\n  }\n\n  function scriptHint(editor, keywords, getToken, options) {\n    // Find the token at the cursor\n    var cur = editor.getCursor(), token = getToken(editor, cur);\n    if (/\\b(?:string|comment)\\b/.test(token.type)) return;\n    token.state = CodeMirror.innerMode(editor.getMode(), token.state).state;\n\n    // If it's not a 'word-style' token, ignore the token.\n    if (!/^[\\w$_]*$/.test(token.string)) {\n      token = {start: cur.ch, end: cur.ch, string: \"\", state: token.state,\n               type: token.string == \".\" ? \"property\" : null};\n    } else if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    var tprop = token;\n    // If it is a property, find out what it is a property of.\n    while (tprop.type == \"property\") {\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (tprop.string != \".\") return;\n      tprop = getToken(editor, Pos(cur.line, tprop.start));\n      if (!context) var context = [];\n      context.push(tprop);\n    }\n    return {list: getCompletions(token, context, keywords, options),\n            from: Pos(cur.line, token.start),\n            to: Pos(cur.line, token.end)};\n  }\n\n  function javascriptHint(editor, options) {\n    return scriptHint(editor, javascriptKeywords,\n                      function (e, cur) {return e.getTokenAt(cur);},\n                      options);\n  };\n  CodeMirror.registerHelper(\"hint\", \"javascript\", javascriptHint);\n\n  function getCoffeeScriptToken(editor, cur) {\n  // This getToken, it is for coffeescript, imitates the behavior of\n  // getTokenAt method in javascript.js, that is, returning \"property\"\n  // type and treat \".\" as indepenent token.\n    var token = editor.getTokenAt(cur);\n    if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') {\n      token.end = token.start;\n      token.string = '.';\n      token.type = \"property\";\n    }\n    else if (/^\\.[\\w$_]*$/.test(token.string)) {\n      token.type = \"property\";\n      token.start++;\n      token.string = token.string.replace(/\\./, '');\n    }\n    return token;\n  }\n\n  function coffeescriptHint(editor, options) {\n    return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options);\n  }\n  CodeMirror.registerHelper(\"hint\", \"coffeescript\", coffeescriptHint);\n\n  var stringProps = (\"charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight \" +\n                     \"toUpperCase toLowerCase split concat match replace search\").split(\" \");\n  var arrayProps = (\"length concat join splice push pop shift unshift slice reverse sort indexOf \" +\n                    \"lastIndexOf every some filter forEach map reduce reduceRight \").split(\" \");\n  var funcProps = \"prototype apply call bind\".split(\" \");\n  var javascriptKeywords = (\"break case catch continue debugger default delete do else false finally for function \" +\n                  \"if in instanceof new null return switch throw true try typeof var void while with\").split(\" \");\n  var coffeescriptKeywords = (\"and break catch class continue delete do else extends false finally for \" +\n                  \"if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes\").split(\" \");\n\n  function getCompletions(token, context, keywords, options) {\n    var found = [], start = token.string, global = options && options.globalScope || window;\n    function maybeAdd(str) {\n      if (str.lastIndexOf(start, 0) == 0 && !arrayContains(found, str)) found.push(str);\n    }\n    function gatherCompletions(obj) {\n      if (typeof obj == \"string\") forEach(stringProps, maybeAdd);\n      else if (obj instanceof Array) forEach(arrayProps, maybeAdd);\n      else if (obj instanceof Function) forEach(funcProps, maybeAdd);\n      for (var name in obj) maybeAdd(name);\n    }\n\n    if (context && context.length) {\n      // If this is a property, see if it belongs to some object we can\n      // find in the current environment.\n      var obj = context.pop(), base;\n      if (obj.type && obj.type.indexOf(\"variable\") === 0) {\n        if (options && options.additionalContext)\n          base = options.additionalContext[obj.string];\n        if (!options || options.useGlobalScope !== false)\n          base = base || global[obj.string];\n      } else if (obj.type == \"string\") {\n        base = \"\";\n      } else if (obj.type == \"atom\") {\n        base = 1;\n      } else if (obj.type == \"function\") {\n        if (global.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') &&\n            (typeof global.jQuery == 'function'))\n          base = global.jQuery();\n        else if (global._ != null && (obj.string == '_') && (typeof global._ == 'function'))\n          base = global._();\n      }\n      while (base != null && context.length)\n        base = base[context.pop().string];\n      if (base != null) gatherCompletions(base);\n    } else {\n      // If not, just look in the global object and any local scope\n      // (reading into JS mode internals to get at the local and global variables)\n      for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name);\n      for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name);\n      if (!options || options.useGlobalScope !== false)\n        gatherCompletions(global);\n      forEach(keywords, maybeAdd);\n    }\n    return found;\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/show-hint.css",
    "content": ".CodeMirror-hints {\n  position: absolute;\n  z-index: 10;\n  overflow: hidden;\n  list-style: none;\n\n  margin: 0;\n  padding: 2px;\n\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  border-radius: 3px;\n  border: 1px solid silver;\n\n  background: white;\n  font-size: 90%;\n  font-family: monospace;\n\n  max-height: 20em;\n  overflow-y: auto;\n}\n\n.CodeMirror-hint {\n  margin: 0;\n  padding: 0 4px;\n  border-radius: 2px;\n  max-width: 19em;\n  overflow: hidden;\n  white-space: pre;\n  color: black;\n  cursor: pointer;\n}\n\nli.CodeMirror-hint-active {\n  background: #08f;\n  color: white;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/show-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var HINT_ELEMENT_CLASS        = \"CodeMirror-hint\";\n  var ACTIVE_HINT_ELEMENT_CLASS = \"CodeMirror-hint-active\";\n\n  // This is the old interface, kept around for now to stay\n  // backwards-compatible.\n  CodeMirror.showHint = function(cm, getHints, options) {\n    if (!getHints) return cm.showHint(options);\n    if (options && options.async) getHints.async = true;\n    var newOpts = {hint: getHints};\n    if (options) for (var prop in options) newOpts[prop] = options[prop];\n    return cm.showHint(newOpts);\n  };\n\n  var asyncRunID = 0;\n  function retrieveHints(getter, cm, options, then) {\n    if (getter.async) {\n      var id = ++asyncRunID;\n      getter(cm, function(hints) {\n        if (asyncRunID == id) then(hints);\n      }, options);\n    } else {\n      then(getter(cm, options));\n    }\n  }\n\n  CodeMirror.defineExtension(\"showHint\", function(options) {\n    // We want a single cursor position.\n    if (this.listSelections().length > 1 || this.somethingSelected()) return;\n\n    if (this.state.completionActive) this.state.completionActive.close();\n    var completion = this.state.completionActive = new Completion(this, options);\n    var getHints = completion.options.hint;\n    if (!getHints) return;\n\n    CodeMirror.signal(this, \"startCompletion\", this);\n    return retrieveHints(getHints, this, completion.options, function(hints) { completion.showHints(hints); });\n  });\n\n  function Completion(cm, options) {\n    this.cm = cm;\n    this.options = this.buildOptions(options);\n    this.widget = this.onClose = null;\n  }\n\n  Completion.prototype = {\n    close: function() {\n      if (!this.active()) return;\n      this.cm.state.completionActive = null;\n\n      if (this.widget) this.widget.close();\n      if (this.onClose) this.onClose();\n      CodeMirror.signal(this.cm, \"endCompletion\", this.cm);\n    },\n\n    active: function() {\n      return this.cm.state.completionActive == this;\n    },\n\n    pick: function(data, i) {\n      var completion = data.list[i];\n      if (completion.hint) completion.hint(this.cm, data, completion);\n      else this.cm.replaceRange(getText(completion), completion.from || data.from,\n                                completion.to || data.to, \"complete\");\n      CodeMirror.signal(data, \"pick\", completion);\n      this.close();\n    },\n\n    showHints: function(data) {\n      if (!data || !data.list.length || !this.active()) return this.close();\n\n      if (this.options.completeSingle && data.list.length == 1)\n        this.pick(data, 0);\n      else\n        this.showWidget(data);\n    },\n\n    showWidget: function(data) {\n      this.widget = new Widget(this, data);\n      CodeMirror.signal(data, \"shown\");\n\n      var debounce = 0, completion = this, finished;\n      var closeOn = this.options.closeCharacters;\n      var startPos = this.cm.getCursor(), startLen = this.cm.getLine(startPos.line).length;\n\n      var requestAnimationFrame = window.requestAnimationFrame || function(fn) {\n        return setTimeout(fn, 1000/60);\n      };\n      var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;\n\n      function done() {\n        if (finished) return;\n        finished = true;\n        completion.close();\n        completion.cm.off(\"cursorActivity\", activity);\n        if (data) CodeMirror.signal(data, \"close\");\n      }\n\n      function update() {\n        if (finished) return;\n        CodeMirror.signal(data, \"update\");\n        retrieveHints(completion.options.hint, completion.cm, completion.options, finishUpdate);\n      }\n      function finishUpdate(data_) {\n        data = data_;\n        if (finished) return;\n        if (!data || !data.list.length) return done();\n        if (completion.widget) completion.widget.close();\n        completion.widget = new Widget(completion, data);\n      }\n\n      function clearDebounce() {\n        if (debounce) {\n          cancelAnimationFrame(debounce);\n          debounce = 0;\n        }\n      }\n\n      function activity() {\n        clearDebounce();\n        var pos = completion.cm.getCursor(), line = completion.cm.getLine(pos.line);\n        if (pos.line != startPos.line || line.length - pos.ch != startLen - startPos.ch ||\n            pos.ch < startPos.ch || completion.cm.somethingSelected() ||\n            (pos.ch && closeOn.test(line.charAt(pos.ch - 1)))) {\n          completion.close();\n        } else {\n          debounce = requestAnimationFrame(update);\n          if (completion.widget) completion.widget.close();\n        }\n      }\n      this.cm.on(\"cursorActivity\", activity);\n      this.onClose = done;\n    },\n\n    buildOptions: function(options) {\n      var editor = this.cm.options.hintOptions;\n      var out = {};\n      for (var prop in defaultOptions) out[prop] = defaultOptions[prop];\n      if (editor) for (var prop in editor)\n        if (editor[prop] !== undefined) out[prop] = editor[prop];\n      if (options) for (var prop in options)\n        if (options[prop] !== undefined) out[prop] = options[prop];\n      return out;\n    }\n  };\n\n  function getText(completion) {\n    if (typeof completion == \"string\") return completion;\n    else return completion.text;\n  }\n\n  function buildKeyMap(completion, handle) {\n    var baseMap = {\n      Up: function() {handle.moveFocus(-1);},\n      Down: function() {handle.moveFocus(1);},\n      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},\n      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},\n      Home: function() {handle.setFocus(0);},\n      End: function() {handle.setFocus(handle.length - 1);},\n      Enter: handle.pick,\n      Tab: handle.pick,\n      Esc: handle.close\n    };\n    var custom = completion.options.customKeys;\n    var ourMap = custom ? {} : baseMap;\n    function addBinding(key, val) {\n      var bound;\n      if (typeof val != \"string\")\n        bound = function(cm) { return val(cm, handle); };\n      // This mechanism is deprecated\n      else if (baseMap.hasOwnProperty(val))\n        bound = baseMap[val];\n      else\n        bound = val;\n      ourMap[key] = bound;\n    }\n    if (custom)\n      for (var key in custom) if (custom.hasOwnProperty(key))\n        addBinding(key, custom[key]);\n    var extra = completion.options.extraKeys;\n    if (extra)\n      for (var key in extra) if (extra.hasOwnProperty(key))\n        addBinding(key, extra[key]);\n    return ourMap;\n  }\n\n  function getHintElement(hintsElement, el) {\n    while (el && el != hintsElement) {\n      if (el.nodeName.toUpperCase() === \"LI\" && el.parentNode == hintsElement) return el;\n      el = el.parentNode;\n    }\n  }\n\n  function Widget(completion, data) {\n    this.completion = completion;\n    this.data = data;\n    var widget = this, cm = completion.cm;\n\n    var hints = this.hints = document.createElement(\"ul\");\n    hints.className = \"CodeMirror-hints\";\n    this.selectedHint = data.selectedHint || 0;\n\n    var completions = data.list;\n    for (var i = 0; i < completions.length; ++i) {\n      var elt = hints.appendChild(document.createElement(\"li\")), cur = completions[i];\n      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? \"\" : \" \" + ACTIVE_HINT_ELEMENT_CLASS);\n      if (cur.className != null) className = cur.className + \" \" + className;\n      elt.className = className;\n      if (cur.render) cur.render(elt, data, cur);\n      else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));\n      elt.hintId = i;\n    }\n\n    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);\n    var left = pos.left, top = pos.bottom, below = true;\n    hints.style.left = left + \"px\";\n    hints.style.top = top + \"px\";\n    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.\n    var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);\n    var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);\n    (completion.options.container || document.body).appendChild(hints);\n    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;\n    if (overlapY > 0) {\n      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);\n      if (curTop - height > 0) { // Fits above cursor\n        hints.style.top = (top = pos.top - height) + \"px\";\n        below = false;\n      } else if (height > winH) {\n        hints.style.height = (winH - 5) + \"px\";\n        hints.style.top = (top = pos.bottom - box.top) + \"px\";\n        var cursor = cm.getCursor();\n        if (data.from.ch != cursor.ch) {\n          pos = cm.cursorCoords(cursor);\n          hints.style.left = (left = pos.left) + \"px\";\n          box = hints.getBoundingClientRect();\n        }\n      }\n    }\n    var overlapX = box.right - winW;\n    if (overlapX > 0) {\n      if (box.right - box.left > winW) {\n        hints.style.width = (winW - 5) + \"px\";\n        overlapX -= (box.right - box.left) - winW;\n      }\n      hints.style.left = (left = pos.left - overlapX) + \"px\";\n    }\n\n    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {\n      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },\n      setFocus: function(n) { widget.changeActive(n); },\n      menuSize: function() { return widget.screenAmount(); },\n      length: completions.length,\n      close: function() { completion.close(); },\n      pick: function() { widget.pick(); },\n      data: data\n    }));\n\n    if (completion.options.closeOnUnfocus) {\n      var closingOnBlur;\n      cm.on(\"blur\", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });\n      cm.on(\"focus\", this.onFocus = function() { clearTimeout(closingOnBlur); });\n    }\n\n    var startScroll = cm.getScrollInfo();\n    cm.on(\"scroll\", this.onScroll = function() {\n      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();\n      var newTop = top + startScroll.top - curScroll.top;\n      var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);\n      if (!below) point += hints.offsetHeight;\n      if (point <= editor.top || point >= editor.bottom) return completion.close();\n      hints.style.top = newTop + \"px\";\n      hints.style.left = (left + startScroll.left - curScroll.left) + \"px\";\n    });\n\n    CodeMirror.on(hints, \"dblclick\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}\n    });\n\n    CodeMirror.on(hints, \"click\", function(e) {\n      var t = getHintElement(hints, e.target || e.srcElement);\n      if (t && t.hintId != null) {\n        widget.changeActive(t.hintId);\n        if (completion.options.completeOnSingleClick) widget.pick();\n      }\n    });\n\n    CodeMirror.on(hints, \"mousedown\", function() {\n      setTimeout(function(){cm.focus();}, 20);\n    });\n\n    CodeMirror.signal(data, \"select\", completions[0], hints.firstChild);\n    return true;\n  }\n\n  Widget.prototype = {\n    close: function() {\n      if (this.completion.widget != this) return;\n      this.completion.widget = null;\n      this.hints.parentNode.removeChild(this.hints);\n      this.completion.cm.removeKeyMap(this.keyMap);\n\n      var cm = this.completion.cm;\n      if (this.completion.options.closeOnUnfocus) {\n        cm.off(\"blur\", this.onBlur);\n        cm.off(\"focus\", this.onFocus);\n      }\n      cm.off(\"scroll\", this.onScroll);\n    },\n\n    pick: function() {\n      this.completion.pick(this.data, this.selectedHint);\n    },\n\n    changeActive: function(i, avoidWrap) {\n      if (i >= this.data.list.length)\n        i = avoidWrap ? this.data.list.length - 1 : 0;\n      else if (i < 0)\n        i = avoidWrap ? 0  : this.data.list.length - 1;\n      if (this.selectedHint == i) return;\n      var node = this.hints.childNodes[this.selectedHint];\n      node.className = node.className.replace(\" \" + ACTIVE_HINT_ELEMENT_CLASS, \"\");\n      node = this.hints.childNodes[this.selectedHint = i];\n      node.className += \" \" + ACTIVE_HINT_ELEMENT_CLASS;\n      if (node.offsetTop < this.hints.scrollTop)\n        this.hints.scrollTop = node.offsetTop - 3;\n      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)\n        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;\n      CodeMirror.signal(this.data, \"select\", this.data.list[this.selectedHint], node);\n    },\n\n    screenAmount: function() {\n      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;\n    }\n  };\n\n  CodeMirror.registerHelper(\"hint\", \"auto\", function(cm, options) {\n    var helpers = cm.getHelpers(cm.getCursor(), \"hint\"), words;\n    if (helpers.length) {\n      for (var i = 0; i < helpers.length; i++) {\n        var cur = helpers[i](cm, options);\n        if (cur && cur.list.length) return cur;\n      }\n    } else if (words = cm.getHelper(cm.getCursor(), \"hintWords\")) {\n      if (words) return CodeMirror.hint.fromList(cm, {words: words});\n    } else if (CodeMirror.hint.anyword) {\n      return CodeMirror.hint.anyword(cm, options);\n    }\n  });\n\n  CodeMirror.registerHelper(\"hint\", \"fromList\", function(cm, options) {\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    var found = [];\n    for (var i = 0; i < options.words.length; i++) {\n      var word = options.words[i];\n      if (word.slice(0, token.string.length) == token.string)\n        found.push(word);\n    }\n\n    if (found.length) return {\n      list: found,\n      from: CodeMirror.Pos(cur.line, token.start),\n            to: CodeMirror.Pos(cur.line, token.end)\n    };\n  });\n\n  CodeMirror.commands.autocomplete = CodeMirror.showHint;\n\n  var defaultOptions = {\n    hint: CodeMirror.hint.auto,\n    completeSingle: true,\n    alignWithWord: true,\n    closeCharacters: /[\\s()\\[\\]{};:>,]/,\n    closeOnUnfocus: true,\n    completeOnSingleClick: false,\n    container: null,\n    customKeys: null,\n    extraKeys: null\n  };\n\n  CodeMirror.defineOption(\"hintOptions\", null);\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/sql-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../mode/sql/sql\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../mode/sql/sql\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var tables;\n  var defaultTable;\n  var keywords;\n  var CONS = {\n    QUERY_DIV: \";\",\n    ALIAS_KEYWORD: \"AS\"\n  };\n  var Pos = CodeMirror.Pos;\n\n  function getKeywords(editor) {\n    var mode = editor.doc.modeOption;\n    if (mode === \"sql\") mode = \"text/x-sql\";\n    return CodeMirror.resolveMode(mode).keywords;\n  }\n\n  function getText(item) {\n    return typeof item == \"string\" ? item : item.text;\n  }\n\n  function getItem(list, item) {\n    if (!list.slice) return list[item];\n    for (var i = list.length - 1; i >= 0; i--) if (getText(list[i]) == item)\n      return list[i];\n  }\n\n  function shallowClone(object) {\n    var result = {};\n    for (var key in object) if (object.hasOwnProperty(key))\n      result[key] = object[key];\n    return result;\n  }\n\n  function match(string, word) {\n    var len = string.length;\n    var sub = getText(word).substr(0, len);\n    return string.toUpperCase() === sub.toUpperCase();\n  }\n\n  function addMatches(result, search, wordlist, formatter) {\n    for (var word in wordlist) {\n      if (!wordlist.hasOwnProperty(word)) continue;\n      if (Array.isArray(wordlist)) {\n        word = wordlist[word];\n      }\n      if (match(search, word)) {\n        result.push(formatter(word));\n      }\n    }\n  }\n\n  function cleanName(name) {\n    // Get rid name from backticks(`) and preceding dot(.)\n    if (name.charAt(0) == \".\") {\n      name = name.substr(1);\n    }\n    return name.replace(/`/g, \"\");\n  }\n\n  function insertBackticks(name) {\n    var nameParts = getText(name).split(\".\");\n    for (var i = 0; i < nameParts.length; i++)\n      nameParts[i] = \"`\" + nameParts[i] + \"`\";\n    var escaped = nameParts.join(\".\");\n    if (typeof name == \"string\") return escaped;\n    name = shallowClone(name);\n    name.text = escaped;\n    return name;\n  }\n\n  function nameCompletion(cur, token, result, editor) {\n    // Try to complete table, colunm names and return start position of completion\n    var useBacktick = false;\n    var nameParts = [];\n    var start = token.start;\n    var cont = true;\n    while (cont) {\n      cont = (token.string.charAt(0) == \".\");\n      useBacktick = useBacktick || (token.string.charAt(0) == \"`\");\n\n      start = token.start;\n      nameParts.unshift(cleanName(token.string));\n\n      token = editor.getTokenAt(Pos(cur.line, token.start));\n      if (token.string == \".\") {\n        cont = true;\n        token = editor.getTokenAt(Pos(cur.line, token.start));\n      }\n    }\n\n    // Try to complete table names\n    var string = nameParts.join(\".\");\n    addMatches(result, string, tables, function(w) {\n      return useBacktick ? insertBackticks(w) : w;\n    });\n\n    // Try to complete columns from defaultTable\n    addMatches(result, string, defaultTable, function(w) {\n      return useBacktick ? insertBackticks(w) : w;\n    });\n\n    // Try to complete columns\n    string = nameParts.pop();\n    var table = nameParts.join(\".\");\n\n    // Check if table is available. If not, find table by Alias\n    if (!getItem(tables, table))\n      table = findTableByAlias(table, editor);\n\n    var columns = getItem(tables, table);\n    if (columns && Array.isArray(tables) && columns.columns)\n      columns = columns.columns;\n\n    if (columns) {\n      addMatches(result, string, columns, function(w) {\n        if (typeof w == \"string\") {\n          w = table + \".\" + w;\n        } else {\n          w = shallowClone(w);\n          w.text = table + \".\" + w.text;\n        }\n        return useBacktick ? insertBackticks(w) : w;\n      });\n    }\n\n    return start;\n  }\n\n  function eachWord(lineText, f) {\n    if (!lineText) return;\n    var excepted = /[,;]/g;\n    var words = lineText.split(\" \");\n    for (var i = 0; i < words.length; i++) {\n      f(words[i]?words[i].replace(excepted, '') : '');\n    }\n  }\n\n  function convertCurToNumber(cur) {\n    // max characters of a line is 999,999.\n    return cur.line + cur.ch / Math.pow(10, 6);\n  }\n\n  function convertNumberToCur(num) {\n    return Pos(Math.floor(num), +num.toString().split('.').pop());\n  }\n\n  function findTableByAlias(alias, editor) {\n    var doc = editor.doc;\n    var fullQuery = doc.getValue();\n    var aliasUpperCase = alias.toUpperCase();\n    var previousWord = \"\";\n    var table = \"\";\n    var separator = [];\n    var validRange = {\n      start: Pos(0, 0),\n      end: Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).length)\n    };\n\n    //add separator\n    var indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV);\n    while(indexOfSeparator != -1) {\n      separator.push(doc.posFromIndex(indexOfSeparator));\n      indexOfSeparator = fullQuery.indexOf(CONS.QUERY_DIV, indexOfSeparator+1);\n    }\n    separator.unshift(Pos(0, 0));\n    separator.push(Pos(editor.lastLine(), editor.getLineHandle(editor.lastLine()).text.length));\n\n    //find valid range\n    var prevItem = 0;\n    var current = convertCurToNumber(editor.getCursor());\n    for (var i=0; i< separator.length; i++) {\n      var _v = convertCurToNumber(separator[i]);\n      if (current > prevItem && current <= _v) {\n        validRange = { start: convertNumberToCur(prevItem), end: convertNumberToCur(_v) };\n        break;\n      }\n      prevItem = _v;\n    }\n\n    var query = doc.getRange(validRange.start, validRange.end, false);\n\n    for (var i = 0; i < query.length; i++) {\n      var lineText = query[i];\n      eachWord(lineText, function(word) {\n        var wordUpperCase = word.toUpperCase();\n        if (wordUpperCase === aliasUpperCase && getItem(tables, previousWord))\n          table = previousWord;\n        if (wordUpperCase !== CONS.ALIAS_KEYWORD)\n          previousWord = word;\n      });\n      if (table) break;\n    }\n    return table;\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"sql\", function(editor, options) {\n    tables = (options && options.tables) || {};\n    var defaultTableName = options && options.defaultTable;\n    defaultTable = (defaultTableName && getItem(tables, defaultTableName)) || [];\n    keywords = keywords || getKeywords(editor);\n\n    var cur = editor.getCursor();\n    var result = [];\n    var token = editor.getTokenAt(cur), start, end, search;\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n\n    if (token.string.match(/^[.`\\w@]\\w*$/)) {\n      search = token.string;\n      start = token.start;\n      end = token.end;\n    } else {\n      start = end = cur.ch;\n      search = \"\";\n    }\n    if (search.charAt(0) == \".\" || search.charAt(0) == \"`\") {\n      start = nameCompletion(cur, token, result, editor);\n    } else {\n      addMatches(result, search, tables, function(w) {return w;});\n      addMatches(result, search, defaultTable, function(w) {return w;});\n      addMatches(result, search, keywords, function(w) {return w.toUpperCase();});\n    }\n\n    return {list: result, from: Pos(cur.line, start), to: Pos(cur.line, end)};\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/hint/xml-hint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function getHints(cm, options) {\n    var tags = options && options.schemaInfo;\n    var quote = (options && options.quoteChar) || '\"';\n    if (!tags) return;\n    var cur = cm.getCursor(), token = cm.getTokenAt(cur);\n    if (token.end > cur.ch) {\n      token.end = cur.ch;\n      token.string = token.string.slice(0, cur.ch - token.start);\n    }\n    var inner = CodeMirror.innerMode(cm.getMode(), token.state);\n    if (inner.mode.name != \"xml\") return;\n    var result = [], replaceToken = false, prefix;\n    var tag = /\\btag\\b/.test(token.type) && !/>$/.test(token.string);\n    var tagName = tag && /^\\w/.test(token.string), tagStart;\n\n    if (tagName) {\n      var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start);\n      var tagType = /<\\/$/.test(before) ? \"close\" : /<$/.test(before) ? \"open\" : null;\n      if (tagType) tagStart = token.start - (tagType == \"close\" ? 2 : 1);\n    } else if (tag && token.string == \"<\") {\n      tagType = \"open\";\n    } else if (tag && token.string == \"</\") {\n      tagType = \"close\";\n    }\n\n    if (!tag && !inner.state.tagName || tagType) {\n      if (tagName)\n        prefix = token.string;\n      replaceToken = tagType;\n      var cx = inner.state.context, curTag = cx && tags[cx.tagName];\n      var childList = cx ? curTag && curTag.children : tags[\"!top\"];\n      if (childList && tagType != \"close\") {\n        for (var i = 0; i < childList.length; ++i) if (!prefix || childList[i].lastIndexOf(prefix, 0) == 0)\n          result.push(\"<\" + childList[i]);\n      } else if (tagType != \"close\") {\n        for (var name in tags)\n          if (tags.hasOwnProperty(name) && name != \"!top\" && name != \"!attrs\" && (!prefix || name.lastIndexOf(prefix, 0) == 0))\n            result.push(\"<\" + name);\n      }\n      if (cx && (!prefix || tagType == \"close\" && cx.tagName.lastIndexOf(prefix, 0) == 0))\n        result.push(\"</\" + cx.tagName + \">\");\n    } else {\n      // Attribute completion\n      var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs;\n      var globalAttrs = tags[\"!attrs\"];\n      if (!attrs && !globalAttrs) return;\n      if (!attrs) {\n        attrs = globalAttrs;\n      } else if (globalAttrs) { // Combine tag-local and global attributes\n        var set = {};\n        for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm];\n        for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm];\n        attrs = set;\n      }\n      if (token.type == \"string\" || token.string == \"=\") { // A value\n        var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)),\n                                 Pos(cur.line, token.type == \"string\" ? token.start : token.end));\n        var atName = before.match(/([^\\s\\u00a0=<>\\\"\\']+)=$/), atValues;\n        if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return;\n        if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget\n        if (token.type == \"string\") {\n          prefix = token.string;\n          var n = 0;\n          if (/['\"]/.test(token.string.charAt(0))) {\n            quote = token.string.charAt(0);\n            prefix = token.string.slice(1);\n            n++;\n          }\n          var len = token.string.length;\n          if (/['\"]/.test(token.string.charAt(len - 1))) {\n            quote = token.string.charAt(len - 1);\n            prefix = token.string.substr(n, len - 2);\n          }\n          replaceToken = true;\n        }\n        for (var i = 0; i < atValues.length; ++i) if (!prefix || atValues[i].lastIndexOf(prefix, 0) == 0)\n          result.push(quote + atValues[i] + quote);\n      } else { // An attribute name\n        if (token.type == \"attribute\") {\n          prefix = token.string;\n          replaceToken = true;\n        }\n        for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || attr.lastIndexOf(prefix, 0) == 0))\n          result.push(attr);\n      }\n    }\n    return {\n      list: result,\n      from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur,\n      to: replaceToken ? Pos(cur.line, token.end) : cur\n    };\n  }\n\n  CodeMirror.registerHelper(\"hint\", \"xml\", getHints);\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/coffeescript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js\n\n// declare global: coffeelint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"coffeescript\", function(text) {\n  var found = [];\n  var parseError = function(err) {\n    var loc = err.lineNumber;\n    found.push({from: CodeMirror.Pos(loc-1, 0),\n                to: CodeMirror.Pos(loc, 0),\n                severity: err.level,\n                message: err.message});\n  };\n  try {\n    var res = coffeelint.lint(text);\n    for(var i = 0; i < res.length; i++) {\n      parseError(res[i]);\n    }\n  } catch(e) {\n    found.push({from: CodeMirror.Pos(e.location.first_line, 0),\n                to: CodeMirror.Pos(e.location.last_line, e.location.last_column),\n                severity: 'error',\n                message: e.message});\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/css-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on csslint.js from https://github.com/stubbornella/csslint\n\n// declare global: CSSLint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"css\", function(text) {\n  var found = [];\n  if (!window.CSSLint) return found;\n  var results = CSSLint.verify(text), messages = results.messages, message = null;\n  for ( var i = 0; i < messages.length; i++) {\n    message = messages[i];\n    var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;\n    found.push({\n      from: CodeMirror.Pos(startLine, startCol),\n      to: CodeMirror.Pos(endLine, endCol),\n      message: message.message,\n      severity : message.type\n    });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/javascript-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: JSHINT\n\n  var bogus = [ \"Dangerous comment\" ];\n\n  var warnings = [ [ \"Expected '{'\",\n                     \"Statement body should be inside '{ }' braces.\" ] ];\n\n  var errors = [ \"Missing semicolon\", \"Extra comma\", \"Missing property name\",\n                 \"Unmatched \", \" and instead saw\", \" is not defined\",\n                 \"Unclosed string\", \"Stopping, unable to continue\" ];\n\n  function validator(text, options) {\n    if (!window.JSHINT) return [];\n    JSHINT(text, options);\n    var errors = JSHINT.data().errors, result = [];\n    if (errors) parseErrors(errors, result);\n    return result;\n  }\n\n  CodeMirror.registerHelper(\"lint\", \"javascript\", validator);\n\n  function cleanup(error) {\n    // All problems are warnings by default\n    fixWith(error, warnings, \"warning\", true);\n    fixWith(error, errors, \"error\");\n\n    return isBogus(error) ? null : error;\n  }\n\n  function fixWith(error, fixes, severity, force) {\n    var description, fix, find, replace, found;\n\n    description = error.description;\n\n    for ( var i = 0; i < fixes.length; i++) {\n      fix = fixes[i];\n      find = (typeof fix === \"string\" ? fix : fix[0]);\n      replace = (typeof fix === \"string\" ? null : fix[1]);\n      found = description.indexOf(find) !== -1;\n\n      if (force || found) {\n        error.severity = severity;\n      }\n      if (found && replace) {\n        error.description = replace;\n      }\n    }\n  }\n\n  function isBogus(error) {\n    var description = error.description;\n    for ( var i = 0; i < bogus.length; i++) {\n      if (description.indexOf(bogus[i]) !== -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  function parseErrors(errors, output) {\n    for ( var i = 0; i < errors.length; i++) {\n      var error = errors[i];\n      if (error) {\n        var linetabpositions, index;\n\n        linetabpositions = [];\n\n        // This next block is to fix a problem in jshint. Jshint\n        // replaces\n        // all tabs with spaces then performs some checks. The error\n        // positions (character/space) are then reported incorrectly,\n        // not taking the replacement step into account. Here we look\n        // at the evidence line and try to adjust the character position\n        // to the correct value.\n        if (error.evidence) {\n          // Tab positions are computed once per line and cached\n          var tabpositions = linetabpositions[error.line];\n          if (!tabpositions) {\n            var evidence = error.evidence;\n            tabpositions = [];\n            // ugggh phantomjs does not like this\n            // forEachChar(evidence, function(item, index) {\n            Array.prototype.forEach.call(evidence, function(item,\n                                                            index) {\n              if (item === '\\t') {\n                // First col is 1 (not 0) to match error\n                // positions\n                tabpositions.push(index + 1);\n              }\n            });\n            linetabpositions[error.line] = tabpositions;\n          }\n          if (tabpositions.length > 0) {\n            var pos = error.character;\n            tabpositions.forEach(function(tabposition) {\n              if (pos > tabposition) pos -= 1;\n            });\n            error.character = pos;\n          }\n        }\n\n        var start = error.character - 1, end = start + 1;\n        if (error.evidence) {\n          index = error.evidence.substring(start).search(/.\\b/);\n          if (index > -1) {\n            end += index;\n          }\n        }\n\n        // Convert to format expected by validation service\n        error.description = error.reason;// + \"(jshint)\";\n        error.start = error.character;\n        error.end = end;\n        error = cleanup(error);\n\n        if (error)\n          output.push({message: error.description,\n                       severity: error.severity,\n                       from: CodeMirror.Pos(error.line - 1, start),\n                       to: CodeMirror.Pos(error.line - 1, end)});\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/json-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Depends on jsonlint.js from https://github.com/zaach/jsonlint\n\n// declare global: jsonlint\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"lint\", \"json\", function(text) {\n  var found = [];\n  jsonlint.parseError = function(str, hash) {\n    var loc = hash.loc;\n    found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),\n                to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),\n                message: str});\n  };\n  try { jsonlint.parse(text); }\n  catch(e) {}\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/lint.css",
    "content": "/* The lint marker gutter */\n.CodeMirror-lint-markers {\n  width: 16px;\n}\n\n.CodeMirror-lint-tooltip {\n  background-color: infobackground;\n  border: 1px solid black;\n  border-radius: 4px 4px 4px 4px;\n  color: infotext;\n  font-family: monospace;\n  font-size: 10pt;\n  overflow: hidden;\n  padding: 2px 5px;\n  position: fixed;\n  white-space: pre;\n  white-space: pre-wrap;\n  z-index: 100;\n  max-width: 600px;\n  opacity: 0;\n  transition: opacity .4s;\n  -moz-transition: opacity .4s;\n  -webkit-transition: opacity .4s;\n  -o-transition: opacity .4s;\n  -ms-transition: opacity .4s;\n}\n\n.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {\n  background-position: left bottom;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-lint-mark-error {\n  background-image:\n  url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==\")\n  ;\n}\n\n.CodeMirror-lint-mark-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {\n  background-position: center center;\n  background-repeat: no-repeat;\n  cursor: pointer;\n  display: inline-block;\n  height: 16px;\n  width: 16px;\n  vertical-align: middle;\n  position: relative;\n}\n\n.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {\n  padding-left: 18px;\n  background-position: top left;\n  background-repeat: no-repeat;\n}\n\n.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\");\n}\n\n.CodeMirror-lint-marker-multiple {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\");\n  background-repeat: no-repeat;\n  background-position: right bottom;\n  width: 100%; height: 100%;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var GUTTER_ID = \"CodeMirror-lint-markers\";\n\n  function showTooltip(e, content) {\n    var tt = document.createElement(\"div\");\n    tt.className = \"CodeMirror-lint-tooltip\";\n    tt.appendChild(content.cloneNode(true));\n    document.body.appendChild(tt);\n\n    function position(e) {\n      if (!tt.parentNode) return CodeMirror.off(document, \"mousemove\", position);\n      tt.style.top = Math.max(0, e.clientY - tt.offsetHeight - 5) + \"px\";\n      tt.style.left = (e.clientX + 5) + \"px\";\n    }\n    CodeMirror.on(document, \"mousemove\", position);\n    position(e);\n    if (tt.style.opacity != null) tt.style.opacity = 1;\n    return tt;\n  }\n  function rm(elt) {\n    if (elt.parentNode) elt.parentNode.removeChild(elt);\n  }\n  function hideTooltip(tt) {\n    if (!tt.parentNode) return;\n    if (tt.style.opacity == null) rm(tt);\n    tt.style.opacity = 0;\n    setTimeout(function() { rm(tt); }, 600);\n  }\n\n  function showTooltipFor(e, content, node) {\n    var tooltip = showTooltip(e, content);\n    function hide() {\n      CodeMirror.off(node, \"mouseout\", hide);\n      if (tooltip) { hideTooltip(tooltip); tooltip = null; }\n    }\n    var poll = setInterval(function() {\n      if (tooltip) for (var n = node;; n = n.parentNode) {\n        if (n && n.nodeType == 11) n = n.host;\n        if (n == document.body) return;\n        if (!n) { hide(); break; }\n      }\n      if (!tooltip) return clearInterval(poll);\n    }, 400);\n    CodeMirror.on(node, \"mouseout\", hide);\n  }\n\n  function LintState(cm, options, hasGutter) {\n    this.marked = [];\n    this.options = options;\n    this.timeout = null;\n    this.hasGutter = hasGutter;\n    this.onMouseOver = function(e) { onMouseOver(cm, e); };\n  }\n\n  function parseOptions(cm, options) {\n    if (options instanceof Function) return {getAnnotations: options};\n    if (!options || options === true) options = {};\n    if (!options.getAnnotations) options.getAnnotations = cm.getHelper(CodeMirror.Pos(0, 0), \"lint\");\n    if (!options.getAnnotations) throw new Error(\"Required option 'getAnnotations' missing (lint addon)\");\n    return options;\n  }\n\n  function clearMarks(cm) {\n    var state = cm.state.lint;\n    if (state.hasGutter) cm.clearGutter(GUTTER_ID);\n    for (var i = 0; i < state.marked.length; ++i)\n      state.marked[i].clear();\n    state.marked.length = 0;\n  }\n\n  function makeMarker(labels, severity, multiple, tooltips) {\n    var marker = document.createElement(\"div\"), inner = marker;\n    marker.className = \"CodeMirror-lint-marker-\" + severity;\n    if (multiple) {\n      inner = marker.appendChild(document.createElement(\"div\"));\n      inner.className = \"CodeMirror-lint-marker-multiple\";\n    }\n\n    if (tooltips != false) CodeMirror.on(inner, \"mouseover\", function(e) {\n      showTooltipFor(e, labels, inner);\n    });\n\n    return marker;\n  }\n\n  function getMaxSeverity(a, b) {\n    if (a == \"error\") return a;\n    else return b;\n  }\n\n  function groupByLine(annotations) {\n    var lines = [];\n    for (var i = 0; i < annotations.length; ++i) {\n      var ann = annotations[i], line = ann.from.line;\n      (lines[line] || (lines[line] = [])).push(ann);\n    }\n    return lines;\n  }\n\n  function annotationTooltip(ann) {\n    var severity = ann.severity;\n    if (!severity) severity = \"error\";\n    var tip = document.createElement(\"div\");\n    tip.className = \"CodeMirror-lint-message-\" + severity;\n    tip.appendChild(document.createTextNode(ann.message));\n    return tip;\n  }\n\n  function startLinting(cm) {\n    var state = cm.state.lint, options = state.options;\n    var passOptions = options.options || options; // Support deprecated passing of `options` property in options\n    if (options.async || options.getAnnotations.async)\n      options.getAnnotations(cm.getValue(), updateLinting, passOptions, cm);\n    else\n      updateLinting(cm, options.getAnnotations(cm.getValue(), passOptions, cm));\n  }\n\n  function updateLinting(cm, annotationsNotSorted) {\n    clearMarks(cm);\n    var state = cm.state.lint, options = state.options;\n\n    var annotations = groupByLine(annotationsNotSorted);\n\n    for (var line = 0; line < annotations.length; ++line) {\n      var anns = annotations[line];\n      if (!anns) continue;\n\n      var maxSeverity = null;\n      var tipLabel = state.hasGutter && document.createDocumentFragment();\n\n      for (var i = 0; i < anns.length; ++i) {\n        var ann = anns[i];\n        var severity = ann.severity;\n        if (!severity) severity = \"error\";\n        maxSeverity = getMaxSeverity(maxSeverity, severity);\n\n        if (options.formatAnnotation) ann = options.formatAnnotation(ann);\n        if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann));\n\n        if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, {\n          className: \"CodeMirror-lint-mark-\" + severity,\n          __annotation: ann\n        }));\n      }\n\n      if (state.hasGutter)\n        cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1,\n                                                       state.options.tooltips));\n    }\n    if (options.onUpdateLinting) options.onUpdateLinting(annotationsNotSorted, annotations, cm);\n  }\n\n  function onChange(cm) {\n    var state = cm.state.lint;\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500);\n  }\n\n  function popupSpanTooltip(ann, e) {\n    var target = e.target || e.srcElement;\n    showTooltipFor(e, annotationTooltip(ann), target);\n  }\n\n  function onMouseOver(cm, e) {\n    var target = e.target || e.srcElement;\n    if (!/\\bCodeMirror-lint-mark-/.test(target.className)) return;\n    var box = target.getBoundingClientRect(), x = (box.left + box.right) / 2, y = (box.top + box.bottom) / 2;\n    var spans = cm.findMarksAt(cm.coordsChar({left: x, top: y}, \"client\"));\n    for (var i = 0; i < spans.length; ++i) {\n      var ann = spans[i].__annotation;\n      if (ann) return popupSpanTooltip(ann, e);\n    }\n  }\n\n  CodeMirror.defineOption(\"lint\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      clearMarks(cm);\n      cm.off(\"change\", onChange);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseover\", cm.state.lint.onMouseOver);\n      delete cm.state.lint;\n    }\n\n    if (val) {\n      var gutters = cm.getOption(\"gutters\"), hasLintGutter = false;\n      for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true;\n      var state = cm.state.lint = new LintState(cm, parseOptions(cm, val), hasLintGutter);\n      cm.on(\"change\", onChange);\n      if (state.options.tooltips != false)\n        CodeMirror.on(cm.getWrapperElement(), \"mouseover\", state.onMouseOver);\n\n      startLinting(cm);\n    }\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/lint/yaml-lint.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n// Depends on js-yaml.js from https://github.com/nodeca/js-yaml\n\n// declare global: jsyaml\n\nCodeMirror.registerHelper(\"lint\", \"yaml\", function(text) {\n  var found = [];\n  try { jsyaml.load(text); }\n  catch(e) {\n      var loc = e.mark;\n      found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message });\n  }\n  return found;\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/merge/merge.css",
    "content": ".CodeMirror-merge {\n  position: relative;\n  border: 1px solid #ddd;\n  white-space: pre;\n}\n\n.CodeMirror-merge, .CodeMirror-merge .CodeMirror {\n  height: 350px;\n}\n\n.CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }\n.CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }\n.CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }\n\n.CodeMirror-merge-pane {\n  display: inline-block;\n  white-space: normal;\n  vertical-align: top;\n}\n.CodeMirror-merge-pane-rightmost {\n  position: absolute;\n  right: 0px;\n  z-index: 1;\n}\n\n.CodeMirror-merge-gap {\n  z-index: 2;\n  display: inline-block;\n  height: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  overflow: hidden;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #ddd;\n  position: relative;\n  background: #f8f8f8;\n}\n\n.CodeMirror-merge-scrolllock-wrap {\n  position: absolute;\n  bottom: 0; left: 50%;\n}\n.CodeMirror-merge-scrolllock {\n  position: relative;\n  left: -50%;\n  cursor: pointer;\n  color: #555;\n  line-height: 1;\n}\n\n.CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {\n  position: absolute;\n  left: 0; top: 0;\n  right: 0; bottom: 0;\n  line-height: 1;\n}\n\n.CodeMirror-merge-copy {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n}\n\n.CodeMirror-merge-copy-reverse {\n  position: absolute;\n  cursor: pointer;\n  color: #44c;\n}\n\n.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }\n.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }\n\n.CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {\n  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);\n  background-position: bottom left;\n  background-repeat: repeat-x;\n}\n\n.CodeMirror-merge-r-chunk { background: #ffffe0; }\n.CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }\n.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }\n.CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk { background: #eef; }\n.CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }\n.CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }\n.CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }\n\n.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }\n.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }\n.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }\n\n.CodeMirror-merge-collapsed-widget:before {\n  content: \"(...)\";\n}\n.CodeMirror-merge-collapsed-widget {\n  cursor: pointer;\n  color: #88b;\n  background: #eef;\n  border: 1px solid #ddf;\n  font-size: 90%;\n  padding: 0 3px;\n  border-radius: 4px;\n}\n.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/merge/merge.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// declare global: diff_match_patch, DIFF_INSERT, DIFF_DELETE, DIFF_EQUAL\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"diff_match_patch\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"diff_match_patch\"], mod);\n  else // Plain browser env\n    mod(CodeMirror, diff_match_patch);\n})(function(CodeMirror, diff_match_patch) {\n  \"use strict\";\n  var Pos = CodeMirror.Pos;\n  var svgNS = \"http://www.w3.org/2000/svg\";\n\n  function DiffView(mv, type) {\n    this.mv = mv;\n    this.type = type;\n    this.classes = type == \"left\"\n      ? {chunk: \"CodeMirror-merge-l-chunk\",\n         start: \"CodeMirror-merge-l-chunk-start\",\n         end: \"CodeMirror-merge-l-chunk-end\",\n         insert: \"CodeMirror-merge-l-inserted\",\n         del: \"CodeMirror-merge-l-deleted\",\n         connect: \"CodeMirror-merge-l-connect\"}\n      : {chunk: \"CodeMirror-merge-r-chunk\",\n         start: \"CodeMirror-merge-r-chunk-start\",\n         end: \"CodeMirror-merge-r-chunk-end\",\n         insert: \"CodeMirror-merge-r-inserted\",\n         del: \"CodeMirror-merge-r-deleted\",\n         connect: \"CodeMirror-merge-r-connect\"};\n  }\n\n  DiffView.prototype = {\n    constructor: DiffView,\n    init: function(pane, orig, options) {\n      this.edit = this.mv.edit;\n      this.orig = CodeMirror(pane, copyObj({value: orig, readOnly: !this.mv.options.allowEditingOriginals}, copyObj(options)));\n\n      this.diff = getDiff(asString(orig), asString(options.value));\n      this.chunks = getChunks(this.diff);\n      this.diffOutOfDate = this.dealigned = false;\n\n      this.showDifferences = options.showDifferences !== false;\n      this.forceUpdate = registerUpdate(this);\n      setScrollLock(this, true, false);\n      registerScroll(this);\n    },\n    setShowDifferences: function(val) {\n      val = val !== false;\n      if (val != this.showDifferences) {\n        this.showDifferences = val;\n        this.forceUpdate(\"full\");\n      }\n    }\n  };\n\n  function ensureDiff(dv) {\n    if (dv.diffOutOfDate) {\n      dv.diff = getDiff(dv.orig.getValue(), dv.edit.getValue());\n      dv.chunks = getChunks(dv.diff);\n      dv.diffOutOfDate = false;\n      CodeMirror.signal(dv.edit, \"updateDiff\", dv.diff);\n    }\n  }\n\n  var updating = false;\n  function registerUpdate(dv) {\n    var edit = {from: 0, to: 0, marked: []};\n    var orig = {from: 0, to: 0, marked: []};\n    var debounceChange, updatingFast = false;\n    function update(mode) {\n      updating = true;\n      updatingFast = false;\n      if (mode == \"full\") {\n        if (dv.svg) clear(dv.svg);\n        if (dv.copyButtons) clear(dv.copyButtons);\n        clearMarks(dv.edit, edit.marked, dv.classes);\n        clearMarks(dv.orig, orig.marked, dv.classes);\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      ensureDiff(dv);\n      if (dv.showDifferences) {\n        updateMarks(dv.edit, dv.diff, edit, DIFF_INSERT, dv.classes);\n        updateMarks(dv.orig, dv.diff, orig, DIFF_DELETE, dv.classes);\n      }\n      makeConnections(dv);\n\n      if (dv.mv.options.connect == \"align\")\n        alignChunks(dv);\n      updating = false;\n    }\n    function setDealign(fast) {\n      if (updating) return;\n      dv.dealigned = true;\n      set(fast);\n    }\n    function set(fast) {\n      if (updating || updatingFast) return;\n      clearTimeout(debounceChange);\n      if (fast === true) updatingFast = true;\n      debounceChange = setTimeout(update, fast === true ? 20 : 250);\n    }\n    function change(_cm, change) {\n      if (!dv.diffOutOfDate) {\n        dv.diffOutOfDate = true;\n        edit.from = edit.to = orig.from = orig.to = 0;\n      }\n      // Update faster when a line was added/removed\n      setDealign(change.text.length - 1 != change.to.line - change.from.line);\n    }\n    dv.edit.on(\"change\", change);\n    dv.orig.on(\"change\", change);\n    dv.edit.on(\"markerAdded\", setDealign);\n    dv.edit.on(\"markerCleared\", setDealign);\n    dv.orig.on(\"markerAdded\", setDealign);\n    dv.orig.on(\"markerCleared\", setDealign);\n    dv.edit.on(\"viewportChange\", function() { set(false); });\n    dv.orig.on(\"viewportChange\", function() { set(false); });\n    update();\n    return update;\n  }\n\n  function registerScroll(dv) {\n    dv.edit.on(\"scroll\", function() {\n      syncScroll(dv, DIFF_INSERT) && makeConnections(dv);\n    });\n    dv.orig.on(\"scroll\", function() {\n      syncScroll(dv, DIFF_DELETE) && makeConnections(dv);\n    });\n  }\n\n  function syncScroll(dv, type) {\n    // Change handler will do a refresh after a timeout when diff is out of date\n    if (dv.diffOutOfDate) return false;\n    if (!dv.lockScroll) return true;\n    var editor, other, now = +new Date;\n    if (type == DIFF_INSERT) { editor = dv.edit; other = dv.orig; }\n    else { editor = dv.orig; other = dv.edit; }\n    // Don't take action if the position of this editor was recently set\n    // (to prevent feedback loops)\n    if (editor.state.scrollSetBy == dv && (editor.state.scrollSetAt || 0) + 50 > now) return false;\n\n    var sInfo = editor.getScrollInfo();\n    if (dv.mv.options.connect == \"align\") {\n      targetPos = sInfo.top;\n    } else {\n      var halfScreen = .5 * sInfo.clientHeight, midY = sInfo.top + halfScreen;\n      var mid = editor.lineAtHeight(midY, \"local\");\n      var around = chunkBoundariesAround(dv.chunks, mid, type == DIFF_INSERT);\n      var off = getOffsets(editor, type == DIFF_INSERT ? around.edit : around.orig);\n      var offOther = getOffsets(other, type == DIFF_INSERT ? around.orig : around.edit);\n      var ratio = (midY - off.top) / (off.bot - off.top);\n      var targetPos = (offOther.top - halfScreen) + ratio * (offOther.bot - offOther.top);\n\n      var botDist, mix;\n      // Some careful tweaking to make sure no space is left out of view\n      // when scrolling to top or bottom.\n      if (targetPos > sInfo.top && (mix = sInfo.top / halfScreen) < 1) {\n        targetPos = targetPos * mix + sInfo.top * (1 - mix);\n      } else if ((botDist = sInfo.height - sInfo.clientHeight - sInfo.top) < halfScreen) {\n        var otherInfo = other.getScrollInfo();\n        var botDistOther = otherInfo.height - otherInfo.clientHeight - targetPos;\n        if (botDistOther > botDist && (mix = botDist / halfScreen) < 1)\n          targetPos = targetPos * mix + (otherInfo.height - otherInfo.clientHeight - botDist) * (1 - mix);\n      }\n    }\n\n    other.scrollTo(sInfo.left, targetPos);\n    other.state.scrollSetAt = now;\n    other.state.scrollSetBy = dv;\n    return true;\n  }\n\n  function getOffsets(editor, around) {\n    var bot = around.after;\n    if (bot == null) bot = editor.lastLine() + 1;\n    return {top: editor.heightAtLine(around.before || 0, \"local\"),\n            bot: editor.heightAtLine(bot, \"local\")};\n  }\n\n  function setScrollLock(dv, val, action) {\n    dv.lockScroll = val;\n    if (val && action != false) syncScroll(dv, DIFF_INSERT) && makeConnections(dv);\n    dv.lockButton.innerHTML = val ? \"\\u21db\\u21da\" : \"\\u21db&nbsp;&nbsp;\\u21da\";\n  }\n\n  // Updating the marks for editor content\n\n  function clearMarks(editor, arr, classes) {\n    for (var i = 0; i < arr.length; ++i) {\n      var mark = arr[i];\n      if (mark instanceof CodeMirror.TextMarker) {\n        mark.clear();\n      } else if (mark.parent) {\n        editor.removeLineClass(mark, \"background\", classes.chunk);\n        editor.removeLineClass(mark, \"background\", classes.start);\n        editor.removeLineClass(mark, \"background\", classes.end);\n      }\n    }\n    arr.length = 0;\n  }\n\n  // FIXME maybe add a margin around viewport to prevent too many updates\n  function updateMarks(editor, diff, state, type, classes) {\n    var vp = editor.getViewport();\n    editor.operation(function() {\n      if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n        clearMarks(editor, state.marked, classes);\n        markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes);\n        state.from = vp.from; state.to = vp.to;\n      } else {\n        if (vp.from < state.from) {\n          markChanges(editor, diff, type, state.marked, vp.from, state.from, classes);\n          state.from = vp.from;\n        }\n        if (vp.to > state.to) {\n          markChanges(editor, diff, type, state.marked, state.to, vp.to, classes);\n          state.to = vp.to;\n        }\n      }\n    });\n  }\n\n  function markChanges(editor, diff, type, marks, from, to, classes) {\n    var pos = Pos(0, 0);\n    var top = Pos(from, 0), bot = editor.clipPos(Pos(to - 1));\n    var cls = type == DIFF_DELETE ? classes.del : classes.insert;\n    function markChunk(start, end) {\n      var bfrom = Math.max(from, start), bto = Math.min(to, end);\n      for (var i = bfrom; i < bto; ++i) {\n        var line = editor.addLineClass(i, \"background\", classes.chunk);\n        if (i == start) editor.addLineClass(line, \"background\", classes.start);\n        if (i == end - 1) editor.addLineClass(line, \"background\", classes.end);\n        marks.push(line);\n      }\n      // When the chunk is empty, make sure a horizontal line shows up\n      if (start == end && bfrom == end && bto == end) {\n        if (bfrom)\n          marks.push(editor.addLineClass(bfrom - 1, \"background\", classes.end));\n        else\n          marks.push(editor.addLineClass(bfrom, \"background\", classes.start));\n      }\n    }\n\n    var chunkStart = 0;\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0], str = part[1];\n      if (tp == DIFF_EQUAL) {\n        var cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1);\n        moveOver(pos, str);\n        var cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0);\n        if (cleanTo > cleanFrom) {\n          if (i) markChunk(chunkStart, cleanFrom);\n          chunkStart = cleanTo;\n        }\n      } else {\n        if (tp == type) {\n          var end = moveOver(pos, str, true);\n          var a = posMax(top, pos), b = posMin(bot, end);\n          if (!posEq(a, b))\n            marks.push(editor.markText(a, b, {className: cls}));\n          pos = end;\n        }\n      }\n    }\n    if (chunkStart <= pos.line) markChunk(chunkStart, pos.line + 1);\n  }\n\n  // Updating the gap between editor and original\n\n  function makeConnections(dv) {\n    if (!dv.showDifferences) return;\n\n    if (dv.svg) {\n      clear(dv.svg);\n      var w = dv.gap.offsetWidth;\n      attrs(dv.svg, \"width\", w, \"height\", dv.gap.offsetHeight);\n    }\n    if (dv.copyButtons) clear(dv.copyButtons);\n\n    var vpEdit = dv.edit.getViewport(), vpOrig = dv.orig.getViewport();\n    var sTopEdit = dv.edit.getScrollInfo().top, sTopOrig = dv.orig.getScrollInfo().top;\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var ch = dv.chunks[i];\n      if (ch.editFrom <= vpEdit.to && ch.editTo >= vpEdit.from &&\n          ch.origFrom <= vpOrig.to && ch.origTo >= vpOrig.from)\n        drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w);\n    }\n  }\n\n  function getMatchingOrigLine(editLine, chunks) {\n    var editStart = 0, origStart = 0;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      if (chunk.editTo > editLine && chunk.editFrom <= editLine) return null;\n      if (chunk.editFrom > editLine) break;\n      editStart = chunk.editTo;\n      origStart = chunk.origTo;\n    }\n    return origStart + (editLine - editStart);\n  }\n\n  function findAlignedLines(dv, other) {\n    var linesToAlign = [];\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var chunk = dv.chunks[i];\n      linesToAlign.push([chunk.origTo, chunk.editTo, other ? getMatchingOrigLine(chunk.editTo, other.chunks) : null]);\n    }\n    if (other) {\n      for (var i = 0; i < other.chunks.length; i++) {\n        var chunk = other.chunks[i];\n        for (var j = 0; j < linesToAlign.length; j++) {\n          var align = linesToAlign[j];\n          if (align[1] == chunk.editTo) {\n            j = -1;\n            break;\n          } else if (align[1] > chunk.editTo) {\n            break;\n          }\n        }\n        if (j > -1)\n          linesToAlign.splice(j - 1, 0, [getMatchingOrigLine(chunk.editTo, dv.chunks), chunk.editTo, chunk.origTo]);\n      }\n    }\n    return linesToAlign;\n  }\n\n  function alignChunks(dv, force) {\n    if (!dv.dealigned && !force) return;\n    if (!dv.orig.curOp) return dv.orig.operation(function() {\n      alignChunks(dv, force);\n    });\n\n    dv.dealigned = false;\n    var other = dv.mv.left == dv ? dv.mv.right : dv.mv.left;\n    if (other) {\n      ensureDiff(other);\n      other.dealigned = false;\n    }\n    var linesToAlign = findAlignedLines(dv, other);\n\n    // Clear old aligners\n    var aligners = dv.mv.aligners;\n    for (var i = 0; i < aligners.length; i++)\n      aligners[i].clear();\n    aligners.length = 0;\n\n    var cm = [dv.orig, dv.edit], scroll = [];\n    if (other) cm.push(other.orig);\n    for (var i = 0; i < cm.length; i++)\n      scroll.push(cm[i].getScrollInfo().top);\n\n    for (var ln = 0; ln < linesToAlign.length; ln++)\n      alignLines(cm, linesToAlign[ln], aligners);\n\n    for (var i = 0; i < cm.length; i++)\n      cm[i].scrollTo(null, scroll[i]);\n  }\n\n  function alignLines(cm, lines, aligners) {\n    var maxOffset = 0, offset = [];\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var off = cm[i].heightAtLine(lines[i], \"local\");\n      offset[i] = off;\n      maxOffset = Math.max(maxOffset, off);\n    }\n    for (var i = 0; i < cm.length; i++) if (lines[i] != null) {\n      var diff = maxOffset - offset[i];\n      if (diff > 1)\n        aligners.push(padAbove(cm[i], lines[i], diff));\n    }\n  }\n\n  function padAbove(cm, line, size) {\n    var above = true;\n    if (line > cm.lastLine()) {\n      line--;\n      above = false;\n    }\n    var elt = document.createElement(\"div\");\n    elt.className = \"CodeMirror-merge-spacer\";\n    elt.style.height = size + \"px\"; elt.style.minWidth = \"1px\";\n    return cm.addLineWidget(line, elt, {height: size, above: above});\n  }\n\n  function drawConnectorsForChunk(dv, chunk, sTopOrig, sTopEdit, w) {\n    var flip = dv.type == \"left\";\n    var top = dv.orig.heightAtLine(chunk.origFrom, \"local\") - sTopOrig;\n    if (dv.svg) {\n      var topLpx = top;\n      var topRpx = dv.edit.heightAtLine(chunk.editFrom, \"local\") - sTopEdit;\n      if (flip) { var tmp = topLpx; topLpx = topRpx; topRpx = tmp; }\n      var botLpx = dv.orig.heightAtLine(chunk.origTo, \"local\") - sTopOrig;\n      var botRpx = dv.edit.heightAtLine(chunk.editTo, \"local\") - sTopEdit;\n      if (flip) { var tmp = botLpx; botLpx = botRpx; botRpx = tmp; }\n      var curveTop = \" C \" + w/2 + \" \" + topRpx + \" \" + w/2 + \" \" + topLpx + \" \" + (w + 2) + \" \" + topLpx;\n      var curveBot = \" C \" + w/2 + \" \" + botLpx + \" \" + w/2 + \" \" + botRpx + \" -1 \" + botRpx;\n      attrs(dv.svg.appendChild(document.createElementNS(svgNS, \"path\")),\n            \"d\", \"M -1 \" + topRpx + curveTop + \" L \" + (w + 2) + \" \" + botLpx + curveBot + \" z\",\n            \"class\", dv.classes.connect);\n    }\n    if (dv.copyButtons) {\n      var copy = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"left\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                \"CodeMirror-merge-copy\"));\n      var editOriginals = dv.mv.options.allowEditingOriginals;\n      copy.title = editOriginals ? \"Push to left\" : \"Revert chunk\";\n      copy.chunk = chunk;\n      copy.style.top = top + \"px\";\n\n      if (editOriginals) {\n        var topReverse = dv.orig.heightAtLine(chunk.editFrom, \"local\") - sTopEdit;\n        var copyReverse = dv.copyButtons.appendChild(elt(\"div\", dv.type == \"right\" ? \"\\u21dd\" : \"\\u21dc\",\n                                                         \"CodeMirror-merge-copy-reverse\"));\n        copyReverse.title = \"Push to right\";\n        copyReverse.chunk = {editFrom: chunk.origFrom, editTo: chunk.origTo,\n                             origFrom: chunk.editFrom, origTo: chunk.editTo};\n        copyReverse.style.top = topReverse + \"px\";\n        dv.type == \"right\" ? copyReverse.style.left = \"2px\" : copyReverse.style.right = \"2px\";\n      }\n    }\n  }\n\n  function copyChunk(dv, to, from, chunk) {\n    if (dv.diffOutOfDate) return;\n    to.replaceRange(from.getRange(Pos(chunk.origFrom, 0), Pos(chunk.origTo, 0)),\n                         Pos(chunk.editFrom, 0), Pos(chunk.editTo, 0));\n  }\n\n  // Merge view, containing 0, 1, or 2 diff views.\n\n  var MergeView = CodeMirror.MergeView = function(node, options) {\n    if (!(this instanceof MergeView)) return new MergeView(node, options);\n\n    this.options = options;\n    var origLeft = options.origLeft, origRight = options.origRight == null ? options.orig : options.origRight;\n\n    var hasLeft = origLeft != null, hasRight = origRight != null;\n    var panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0);\n    var wrap = [], left = this.left = null, right = this.right = null;\n    var self = this;\n\n    if (hasLeft) {\n      left = this.left = new DiffView(this, \"left\");\n      var leftPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n      wrap.push(leftPane);\n      wrap.push(buildGap(left));\n    }\n\n    var editPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n    wrap.push(editPane);\n\n    if (hasRight) {\n      right = this.right = new DiffView(this, \"right\");\n      wrap.push(buildGap(right));\n      var rightPane = elt(\"div\", null, \"CodeMirror-merge-pane\");\n      wrap.push(rightPane);\n    }\n\n    (hasRight ? rightPane : editPane).className += \" CodeMirror-merge-pane-rightmost\";\n\n    wrap.push(elt(\"div\", null, null, \"height: 0; clear: both;\"));\n\n    var wrapElt = this.wrap = node.appendChild(elt(\"div\", wrap, \"CodeMirror-merge CodeMirror-merge-\" + panes + \"pane\"));\n    this.edit = CodeMirror(editPane, copyObj(options));\n\n    if (left) left.init(leftPane, origLeft, options);\n    if (right) right.init(rightPane, origRight, options);\n\n    if (options.collapseIdentical) {\n      updating = true;\n      this.editor().operation(function() {\n        collapseIdenticalStretches(self, options.collapseIdentical);\n      });\n      updating = false;\n    }\n    if (options.connect == \"align\") {\n      this.aligners = [];\n      alignChunks(this.left || this.right, true);\n    }\n\n    var onResize = function() {\n      if (left) makeConnections(left);\n      if (right) makeConnections(right);\n    };\n    CodeMirror.on(window, \"resize\", onResize);\n    var resizeInterval = setInterval(function() {\n      for (var p = wrapElt.parentNode; p && p != document.body; p = p.parentNode) {}\n      if (!p) { clearInterval(resizeInterval); CodeMirror.off(window, \"resize\", onResize); }\n    }, 5000);\n  };\n\n  function buildGap(dv) {\n    var lock = dv.lockButton = elt(\"div\", null, \"CodeMirror-merge-scrolllock\");\n    lock.title = \"Toggle locked scrolling\";\n    var lockWrap = elt(\"div\", [lock], \"CodeMirror-merge-scrolllock-wrap\");\n    CodeMirror.on(lock, \"click\", function() { setScrollLock(dv, !dv.lockScroll); });\n    var gapElts = [lockWrap];\n    if (dv.mv.options.revertButtons !== false) {\n      dv.copyButtons = elt(\"div\", null, \"CodeMirror-merge-copybuttons-\" + dv.type);\n      CodeMirror.on(dv.copyButtons, \"click\", function(e) {\n        var node = e.target || e.srcElement;\n        if (!node.chunk) return;\n        if (node.className == \"CodeMirror-merge-copy-reverse\") {\n          copyChunk(dv, dv.orig, dv.edit, node.chunk);\n          return;\n        }\n        copyChunk(dv, dv.edit, dv.orig, node.chunk);\n      });\n      gapElts.unshift(dv.copyButtons);\n    }\n    if (dv.mv.options.connect != \"align\") {\n      var svg = document.createElementNS && document.createElementNS(svgNS, \"svg\");\n      if (svg && !svg.createSVGRect) svg = null;\n      dv.svg = svg;\n      if (svg) gapElts.push(svg);\n    }\n\n    return dv.gap = elt(\"div\", gapElts, \"CodeMirror-merge-gap\");\n  }\n\n  MergeView.prototype = {\n    constuctor: MergeView,\n    editor: function() { return this.edit; },\n    rightOriginal: function() { return this.right && this.right.orig; },\n    leftOriginal: function() { return this.left && this.left.orig; },\n    setShowDifferences: function(val) {\n      if (this.right) this.right.setShowDifferences(val);\n      if (this.left) this.left.setShowDifferences(val);\n    },\n    rightChunks: function() {\n      if (this.right) { ensureDiff(this.right); return this.right.chunks; }\n    },\n    leftChunks: function() {\n      if (this.left) { ensureDiff(this.left); return this.left.chunks; }\n    }\n  };\n\n  function asString(obj) {\n    if (typeof obj == \"string\") return obj;\n    else return obj.getValue();\n  }\n\n  // Operations on diffs\n\n  var dmp = new diff_match_patch();\n  function getDiff(a, b) {\n    var diff = dmp.diff_main(a, b);\n    dmp.diff_cleanupSemantic(diff);\n    // The library sometimes leaves in empty parts, which confuse the algorithm\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i];\n      if (!part[1]) {\n        diff.splice(i--, 1);\n      } else if (i && diff[i - 1][0] == part[0]) {\n        diff.splice(i--, 1);\n        diff[i][1] += part[1];\n      }\n    }\n    return diff;\n  }\n\n  function getChunks(diff) {\n    var chunks = [];\n    var startEdit = 0, startOrig = 0;\n    var edit = Pos(0, 0), orig = Pos(0, 0);\n    for (var i = 0; i < diff.length; ++i) {\n      var part = diff[i], tp = part[0];\n      if (tp == DIFF_EQUAL) {\n        var startOff = startOfLineClean(diff, i) ? 0 : 1;\n        var cleanFromEdit = edit.line + startOff, cleanFromOrig = orig.line + startOff;\n        moveOver(edit, part[1], null, orig);\n        var endOff = endOfLineClean(diff, i) ? 1 : 0;\n        var cleanToEdit = edit.line + endOff, cleanToOrig = orig.line + endOff;\n        if (cleanToEdit > cleanFromEdit) {\n          if (i) chunks.push({origFrom: startOrig, origTo: cleanFromOrig,\n                              editFrom: startEdit, editTo: cleanFromEdit});\n          startEdit = cleanToEdit; startOrig = cleanToOrig;\n        }\n      } else {\n        moveOver(tp == DIFF_INSERT ? edit : orig, part[1]);\n      }\n    }\n    if (startEdit <= edit.line || startOrig <= orig.line)\n      chunks.push({origFrom: startOrig, origTo: orig.line + 1,\n                   editFrom: startEdit, editTo: edit.line + 1});\n    return chunks;\n  }\n\n  function endOfLineClean(diff, i) {\n    if (i == diff.length - 1) return true;\n    var next = diff[i + 1][1];\n    if (next.length == 1 || next.charCodeAt(0) != 10) return false;\n    if (i == diff.length - 2) return true;\n    next = diff[i + 2][1];\n    return next.length > 1 && next.charCodeAt(0) == 10;\n  }\n\n  function startOfLineClean(diff, i) {\n    if (i == 0) return true;\n    var last = diff[i - 1][1];\n    if (last.charCodeAt(last.length - 1) != 10) return false;\n    if (i == 1) return true;\n    last = diff[i - 2][1];\n    return last.charCodeAt(last.length - 1) == 10;\n  }\n\n  function chunkBoundariesAround(chunks, n, nInEdit) {\n    var beforeE, afterE, beforeO, afterO;\n    for (var i = 0; i < chunks.length; i++) {\n      var chunk = chunks[i];\n      var fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom;\n      var toLocal = nInEdit ? chunk.editTo : chunk.origTo;\n      if (afterE == null) {\n        if (fromLocal > n) { afterE = chunk.editFrom; afterO = chunk.origFrom; }\n        else if (toLocal > n) { afterE = chunk.editTo; afterO = chunk.origTo; }\n      }\n      if (toLocal <= n) { beforeE = chunk.editTo; beforeO = chunk.origTo; }\n      else if (fromLocal <= n) { beforeE = chunk.editFrom; beforeO = chunk.origFrom; }\n    }\n    return {edit: {before: beforeE, after: afterE}, orig: {before: beforeO, after: afterO}};\n  }\n\n  function collapseSingle(cm, from, to) {\n    cm.addLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    var widget = document.createElement(\"span\");\n    widget.className = \"CodeMirror-merge-collapsed-widget\";\n    widget.title = \"Identical text collapsed. Click to expand.\";\n    var mark = cm.markText(Pos(from, 0), Pos(to - 1), {\n      inclusiveLeft: true,\n      inclusiveRight: true,\n      replacedWith: widget,\n      clearOnEnter: true\n    });\n    function clear() {\n      mark.clear();\n      cm.removeLineClass(from, \"wrap\", \"CodeMirror-merge-collapsed-line\");\n    }\n    widget.addEventListener(\"click\", clear);\n    return {mark: mark, clear: clear};\n  }\n\n  function collapseStretch(size, editors) {\n    var marks = [];\n    function clear() {\n      for (var i = 0; i < marks.length; i++) marks[i].clear();\n    }\n    for (var i = 0; i < editors.length; i++) {\n      var editor = editors[i];\n      var mark = collapseSingle(editor.cm, editor.line, editor.line + size);\n      marks.push(mark);\n      mark.mark.on(\"clear\", clear);\n    }\n    return marks[0].mark;\n  }\n\n  function unclearNearChunks(dv, margin, off, clear) {\n    for (var i = 0; i < dv.chunks.length; i++) {\n      var chunk = dv.chunks[i];\n      for (var l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) {\n        var pos = l + off;\n        if (pos >= 0 && pos < clear.length) clear[pos] = false;\n      }\n    }\n  }\n\n  function collapseIdenticalStretches(mv, margin) {\n    if (typeof margin != \"number\") margin = 2;\n    var clear = [], edit = mv.editor(), off = edit.firstLine();\n    for (var l = off, e = edit.lastLine(); l <= e; l++) clear.push(true);\n    if (mv.left) unclearNearChunks(mv.left, margin, off, clear);\n    if (mv.right) unclearNearChunks(mv.right, margin, off, clear);\n\n    for (var i = 0; i < clear.length; i++) {\n      if (clear[i]) {\n        var line = i + off;\n        for (var size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {}\n        if (size > margin) {\n          var editors = [{line: line, cm: edit}];\n          if (mv.left) editors.push({line: getMatchingOrigLine(line, mv.left.chunks), cm: mv.left.orig});\n          if (mv.right) editors.push({line: getMatchingOrigLine(line, mv.right.chunks), cm: mv.right.orig});\n          var mark = collapseStretch(size, editors);\n          if (mv.options.onCollapse) mv.options.onCollapse(mv, line, size, mark);\n        }\n      }\n    }\n  }\n\n  // General utilities\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") e.appendChild(document.createTextNode(content));\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  function clear(node) {\n    for (var count = node.childNodes.length; count > 0; --count)\n      node.removeChild(node.firstChild);\n  }\n\n  function attrs(elt) {\n    for (var i = 1; i < arguments.length; i += 2)\n      elt.setAttribute(arguments[i], arguments[i+1]);\n  }\n\n  function copyObj(obj, target) {\n    if (!target) target = {};\n    for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop];\n    return target;\n  }\n\n  function moveOver(pos, str, copy, other) {\n    var out = copy ? Pos(pos.line, pos.ch) : pos, at = 0;\n    for (;;) {\n      var nl = str.indexOf(\"\\n\", at);\n      if (nl == -1) break;\n      ++out.line;\n      if (other) ++other.line;\n      at = nl + 1;\n    }\n    out.ch = (at ? 0 : out.ch) + (str.length - at);\n    if (other) other.ch = (at ? 0 : other.ch) + (str.length - at);\n    return out;\n  }\n\n  function posMin(a, b) { return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; }\n  function posMax(a, b) { return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; }\n  function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/mode/loadmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), \"cjs\");\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], function(CM) { mod(CM, \"amd\"); });\n  else // Plain browser env\n    mod(CodeMirror, \"plain\");\n})(function(CodeMirror, env) {\n  if (!CodeMirror.modeURL) CodeMirror.modeURL = \"../mode/%N/%N.js\";\n\n  var loading = {};\n  function splitCallback(cont, n) {\n    var countDown = n;\n    return function() { if (--countDown == 0) cont(); };\n  }\n  function ensureDeps(mode, cont) {\n    var deps = CodeMirror.modes[mode].dependencies;\n    if (!deps) return cont();\n    var missing = [];\n    for (var i = 0; i < deps.length; ++i) {\n      if (!CodeMirror.modes.hasOwnProperty(deps[i]))\n        missing.push(deps[i]);\n    }\n    if (!missing.length) return cont();\n    var split = splitCallback(cont, missing.length);\n    for (var i = 0; i < missing.length; ++i)\n      CodeMirror.requireMode(missing[i], split);\n  }\n\n  CodeMirror.requireMode = function(mode, cont) {\n    if (typeof mode != \"string\") mode = mode.name;\n    if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);\n    if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);\n\n    var file = CodeMirror.modeURL.replace(/%N/g, mode);\n    if (env == \"plain\") {\n      var script = document.createElement(\"script\");\n      script.src = file;\n      var others = document.getElementsByTagName(\"script\")[0];\n      var list = loading[mode] = [cont];\n      CodeMirror.on(script, \"load\", function() {\n        ensureDeps(mode, function() {\n          for (var i = 0; i < list.length; ++i) list[i]();\n        });\n      });\n      others.parentNode.insertBefore(script, others);\n    } else if (env == \"cjs\") {\n      require(file);\n      cont();\n    } else if (env == \"amd\") {\n      requirejs([file], cont);\n    }\n  };\n\n  CodeMirror.autoLoadMode = function(instance, mode) {\n    if (!CodeMirror.modes.hasOwnProperty(mode))\n      CodeMirror.requireMode(mode, function() {\n        instance.setOption(\"mode\", instance.getOption(\"mode\"));\n      });\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/mode/multiplex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n  // Others should be {open, close, mode [, delimStyle] [, innerStyle]} objects\n  var others = Array.prototype.slice.call(arguments, 1);\n  var n_others = others.length;\n\n  function indexOf(string, pattern, from) {\n    if (typeof pattern == \"string\") return string.indexOf(pattern, from);\n    var m = pattern.exec(from ? string.slice(from) : string);\n    return m ? m.index + from : -1;\n  }\n\n  return {\n    startState: function() {\n      return {\n        outer: CodeMirror.startState(outer),\n        innerActive: null,\n        inner: null\n      };\n    },\n\n    copyState: function(state) {\n      return {\n        outer: CodeMirror.copyState(outer, state.outer),\n        innerActive: state.innerActive,\n        inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner)\n      };\n    },\n\n    token: function(stream, state) {\n      if (!state.innerActive) {\n        var cutOff = Infinity, oldContent = stream.string;\n        for (var i = 0; i < n_others; ++i) {\n          var other = others[i];\n          var found = indexOf(oldContent, other.open, stream.pos);\n          if (found == stream.pos) {\n            stream.match(other.open);\n            state.innerActive = other;\n            state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, \"\") : 0);\n            return other.delimStyle;\n          } else if (found != -1 && found < cutOff) {\n            cutOff = found;\n          }\n        }\n        if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n        var outerToken = outer.token(stream, state.outer);\n        if (cutOff != Infinity) stream.string = oldContent;\n        return outerToken;\n      } else {\n        var curInner = state.innerActive, oldContent = stream.string;\n        if (!curInner.close && stream.sol()) {\n          state.innerActive = state.inner = null;\n          return this.token(stream, state);\n        }\n        var found = curInner.close ? indexOf(oldContent, curInner.close, stream.pos) : -1;\n        if (found == stream.pos) {\n          stream.match(curInner.close);\n          state.innerActive = state.inner = null;\n          return curInner.delimStyle;\n        }\n        if (found > -1) stream.string = oldContent.slice(0, found);\n        var innerToken = curInner.mode.token(stream, state.inner);\n        if (found > -1) stream.string = oldContent;\n\n        if (curInner.innerStyle) {\n          if (innerToken) innerToken = innerToken + ' ' + curInner.innerStyle;\n          else innerToken = curInner.innerStyle;\n        }\n\n        return innerToken;\n      }\n    },\n\n    indent: function(state, textAfter) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (!mode.indent) return CodeMirror.Pass;\n      return mode.indent(state.innerActive ? state.inner : state.outer, textAfter);\n    },\n\n    blankLine: function(state) {\n      var mode = state.innerActive ? state.innerActive.mode : outer;\n      if (mode.blankLine) {\n        mode.blankLine(state.innerActive ? state.inner : state.outer);\n      }\n      if (!state.innerActive) {\n        for (var i = 0; i < n_others; ++i) {\n          var other = others[i];\n          if (other.open === \"\\n\") {\n            state.innerActive = other;\n            state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\") : 0);\n          }\n        }\n      } else if (state.innerActive.close === \"\\n\") {\n        state.innerActive = state.inner = null;\n      }\n    },\n\n    electricChars: outer.electricChars,\n\n    innerMode: function(state) {\n      return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/mode/multiplex_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  CodeMirror.defineMode(\"markdown_with_stex\", function(){\n    var inner = CodeMirror.getMode({}, \"stex\");\n    var outer = CodeMirror.getMode({}, \"markdown\");\n\n    var innerOptions = {\n      open: '$',\n      close: '$',\n      mode: inner,\n      delimStyle: 'delim',\n      innerStyle: 'inner'\n    };\n\n    return CodeMirror.multiplexingMode(outer, innerOptions);\n  });\n\n  var mode = CodeMirror.getMode({}, \"markdown_with_stex\");\n\n  function MT(name) {\n    test.mode(\n      name,\n      mode,\n      Array.prototype.slice.call(arguments, 1),\n      'multiplexing');\n  }\n\n  MT(\n    \"stexInsideMarkdown\",\n    \"[strong **Equation:**] [delim $][inner&tag \\\\pi][delim $]\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/mode/overlay.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n  return {\n    startState: function() {\n      return {\n        base: CodeMirror.startState(base),\n        overlay: CodeMirror.startState(overlay),\n        basePos: 0, baseCur: null,\n        overlayPos: 0, overlayCur: null,\n        streamSeen: null\n      };\n    },\n    copyState: function(state) {\n      return {\n        base: CodeMirror.copyState(base, state.base),\n        overlay: CodeMirror.copyState(overlay, state.overlay),\n        basePos: state.basePos, baseCur: null,\n        overlayPos: state.overlayPos, overlayCur: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream != state.streamSeen ||\n          Math.min(state.basePos, state.overlayPos) < stream.start) {\n        state.streamSeen = stream;\n        state.basePos = state.overlayPos = stream.start;\n      }\n\n      if (stream.start == state.basePos) {\n        state.baseCur = base.token(stream, state.base);\n        state.basePos = stream.pos;\n      }\n      if (stream.start == state.overlayPos) {\n        stream.pos = stream.start;\n        state.overlayCur = overlay.token(stream, state.overlay);\n        state.overlayPos = stream.pos;\n      }\n      stream.pos = Math.min(state.basePos, state.overlayPos);\n\n      // state.overlay.combineTokens always takes precedence over combine,\n      // unless set to null\n      if (state.overlayCur == null) return state.baseCur;\n      else if (state.baseCur != null &&\n               state.overlay.combineTokens ||\n               combine && state.overlay.combineTokens == null)\n        return state.baseCur + \" \" + state.overlayCur;\n      else return state.overlayCur;\n    },\n\n    indent: base.indent && function(state, textAfter) {\n      return base.indent(state.base, textAfter);\n    },\n    electricChars: base.electricChars,\n\n    innerMode: function(state) { return {state: state.base, mode: base}; },\n\n    blankLine: function(state) {\n      if (base.blankLine) base.blankLine(state.base);\n      if (overlay.blankLine) overlay.blankLine(state.overlay);\n    }\n  };\n};\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/mode/simple.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineSimpleMode = function(name, states) {\n    CodeMirror.defineMode(name, function(config) {\n      return CodeMirror.simpleMode(config, states);\n    });\n  };\n\n  CodeMirror.simpleMode = function(config, states) {\n    ensureState(states, \"start\");\n    var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n    for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n      var list = states_[state] = [], orig = states[state];\n      for (var i = 0; i < orig.length; i++) {\n        var data = orig[i];\n        list.push(new Rule(data, states));\n        if (data.indent || data.dedent) hasIndentation = true;\n      }\n    }\n    var mode = {\n      startState: function() {\n        return {state: \"start\", pending: null,\n                local: null, localState: null,\n                indent: hasIndentation ? [] : null};\n      },\n      copyState: function(state) {\n        var s = {state: state.state, pending: state.pending,\n                 local: state.local, localState: null,\n                 indent: state.indent && state.indent.slice(0)};\n        if (state.localState)\n          s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n        if (state.stack)\n          s.stack = state.stack.slice(0);\n        for (var pers = state.persistentStates; pers; pers = pers.next)\n          s.persistentStates = {mode: pers.mode,\n                                spec: pers.spec,\n                                state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n                                next: s.persistentStates};\n        return s;\n      },\n      token: tokenFunction(states_, config),\n      innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n      indent: indentFunction(states_, meta)\n    };\n    if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n      mode[prop] = meta[prop];\n    return mode;\n  };\n\n  function ensureState(states, name) {\n    if (!states.hasOwnProperty(name))\n      throw new Error(\"Undefined state \" + name + \"in simple mode\");\n  }\n\n  function toRegex(val, caret) {\n    if (!val) return /(?:)/;\n    var flags = \"\";\n    if (val instanceof RegExp) {\n      if (val.ignoreCase) flags = \"i\";\n      val = val.source;\n    } else {\n      val = String(val);\n    }\n    return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n  }\n\n  function asToken(val) {\n    if (!val) return null;\n    if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n    var result = [];\n    for (var i = 0; i < val.length; i++)\n      result.push(val[i] && val[i].replace(/\\./g, \" \"));\n    return result;\n  }\n\n  function Rule(data, states) {\n    if (data.next || data.push) ensureState(states, data.next || data.push);\n    this.regex = toRegex(data.regex);\n    this.token = asToken(data.token);\n    this.data = data;\n  }\n\n  function tokenFunction(states, config) {\n    return function(stream, state) {\n      if (state.pending) {\n        var pend = state.pending.shift();\n        if (state.pending.length == 0) state.pending = null;\n        stream.pos += pend.text.length;\n        return pend.token;\n      }\n\n      if (state.local) {\n        if (state.local.end && stream.match(state.local.end)) {\n          var tok = state.local.endToken || null;\n          state.local = state.localState = null;\n          return tok;\n        } else {\n          var tok = state.local.mode.token(stream, state.localState), m;\n          if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n            stream.pos = stream.start + m.index;\n          return tok;\n        }\n      }\n\n      var curState = states[state.state];\n      for (var i = 0; i < curState.length; i++) {\n        var rule = curState[i];\n        var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n        if (matches) {\n          if (rule.data.next) {\n            state.state = rule.data.next;\n          } else if (rule.data.push) {\n            (state.stack || (state.stack = [])).push(state.state);\n            state.state = rule.data.push;\n          } else if (rule.data.pop && state.stack && state.stack.length) {\n            state.state = state.stack.pop();\n          }\n\n          if (rule.data.mode)\n            enterLocalMode(config, state, rule.data.mode, rule.token);\n          if (rule.data.indent)\n            state.indent.push(stream.indentation() + config.indentUnit);\n          if (rule.data.dedent)\n            state.indent.pop();\n          if (matches.length > 2) {\n            state.pending = [];\n            for (var j = 2; j < matches.length; j++)\n              if (matches[j])\n                state.pending.push({text: matches[j], token: rule.token[j - 1]});\n            stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n            return rule.token[0];\n          } else if (rule.token && rule.token.join) {\n            return rule.token[0];\n          } else {\n            return rule.token;\n          }\n        }\n      }\n      stream.next();\n      return null;\n    };\n  }\n\n  function cmp(a, b) {\n    if (a === b) return true;\n    if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n    var props = 0;\n    for (var prop in a) if (a.hasOwnProperty(prop)) {\n      if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n      props++;\n    }\n    for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n    return props == 0;\n  }\n\n  function enterLocalMode(config, state, spec, token) {\n    var pers;\n    if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n      if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n    var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n    var lState = pers ? pers.state : CodeMirror.startState(mode);\n    if (spec.persistent && !pers)\n      state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n    state.localState = lState;\n    state.local = {mode: mode,\n                   end: spec.end && toRegex(spec.end),\n                   endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n                   endToken: token && token.join ? token[token.length - 1] : token};\n  }\n\n  function indexOf(val, arr) {\n    for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n  }\n\n  function indentFunction(states, meta) {\n    return function(state, textAfter, line) {\n      if (state.local && state.local.mode.indent)\n        return state.local.mode.indent(state.localState, textAfter, line);\n      if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n        return CodeMirror.Pass;\n\n      var pos = state.indent.length - 1, rules = states[state.state];\n      scan: for (;;) {\n        for (var i = 0; i < rules.length; i++) {\n          var rule = rules[i];\n          if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n            var m = rule.regex.exec(textAfter);\n            if (m && m[0]) {\n              pos--;\n              if (rule.next || rule.push) rules = states[rule.next || rule.push];\n              textAfter = textAfter.slice(m[0].length);\n              continue scan;\n            }\n          }\n        }\n        break;\n      }\n      return pos < 0 ? 0 : state.indent[pos];\n    };\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/runmode/colorize.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./runmode\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./runmode\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var isBlock = /^(p|li|div|h\\\\d|pre|blockquote|td)$/;\n\n  function textContent(node, out) {\n    if (node.nodeType == 3) return out.push(node.nodeValue);\n    for (var ch = node.firstChild; ch; ch = ch.nextSibling) {\n      textContent(ch, out);\n      if (isBlock.test(node.nodeType)) out.push(\"\\n\");\n    }\n  }\n\n  CodeMirror.colorize = function(collection, defaultMode) {\n    if (!collection) collection = document.body.getElementsByTagName(\"pre\");\n\n    for (var i = 0; i < collection.length; ++i) {\n      var node = collection[i];\n      var mode = node.getAttribute(\"data-lang\") || defaultMode;\n      if (!mode) continue;\n\n      var text = [];\n      textContent(node, text);\n      node.innerHTML = \"\";\n      CodeMirror.runMode(text.join(\"\"), mode, node);\n\n      node.className += \" cm-s-default\";\n    }\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/runmode/runmode-standalone.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\nwindow.CodeMirror = {};\n\n(function() {\n\"use strict\";\n\nfunction splitLines(string){ return string.split(/\\r?\\n|\\r/); };\n\nfunction StringStream(string) {\n  this.pos = this.start = 0;\n  this.string = string;\n  this.lineStart = 0;\n}\nStringStream.prototype = {\n  eol: function() {return this.pos >= this.string.length;},\n  sol: function() {return this.pos == 0;},\n  peek: function() {return this.string.charAt(this.pos) || null;},\n  next: function() {\n    if (this.pos < this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch && (match.test ? match.test(ch) : match(ch));\n    if (ok) {++this.pos; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start;\n  },\n  eatSpace: function() {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n    return this.pos > start;\n  },\n  skipToEnd: function() {this.pos = this.string.length;},\n  skipTo: function(ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true;}\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.start - this.lineStart;},\n  indentation: function() {return 0;},\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) this.pos += pattern.length;\n        return true;\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) return null;\n      if (match && consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  },\n  current: function(){return this.string.slice(this.start, this.pos);},\n  hideFirstChars: function(n, inner) {\n    this.lineStart += n;\n    try { return inner(); }\n    finally { this.lineStart -= n; }\n  }\n};\nCodeMirror.StringStream = StringStream;\n\nCodeMirror.startState = function (mode, a1, a2) {\n  return mode.startState ? mode.startState(a1, a2) : true;\n};\n\nvar modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\nCodeMirror.defineMode = function (name, mode) {\n  if (arguments.length > 2)\n    mode.dependencies = Array.prototype.slice.call(arguments, 2);\n  modes[name] = mode;\n};\nCodeMirror.defineMIME = function (mime, spec) { mimeModes[mime] = spec; };\nCodeMirror.resolveMode = function(spec) {\n  if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n    spec = mimeModes[spec];\n  } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n    spec = mimeModes[spec.name];\n  }\n  if (typeof spec == \"string\") return {name: spec};\n  else return spec || {name: \"null\"};\n};\nCodeMirror.getMode = function (options, spec) {\n  spec = CodeMirror.resolveMode(spec);\n  var mfactory = modes[spec.name];\n  if (!mfactory) throw new Error(\"Unknown mode: \" + spec);\n  return mfactory(options, spec);\n};\nCodeMirror.registerHelper = CodeMirror.registerGlobalHelper = Math.min;\nCodeMirror.defineMode(\"null\", function() {\n  return {token: function(stream) {stream.skipToEnd();}};\n});\nCodeMirror.defineMIME(\"text/plain\", \"null\");\n\nCodeMirror.runMode = function (string, modespec, callback, options) {\n  var mode = CodeMirror.getMode({ indentUnit: 2 }, modespec);\n\n  if (callback.nodeType == 1) {\n    var tabSize = (options && options.tabSize) || 4;\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function (text, style) {\n      if (text == \"\\n\") {\n        node.appendChild(document.createElement(\"br\"));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0; ;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) content += \" \";\n          pos = idx + 1;\n        }\n      }\n\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new CodeMirror.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/runmode/runmode.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n  var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n  var ie = /MSIE \\d/.test(navigator.userAgent);\n  var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n\n  if (callback.nodeType == 1) {\n    var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n    var node = callback, col = 0;\n    node.innerHTML = \"\";\n    callback = function(text, style) {\n      if (text == \"\\n\") {\n        // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n        // Emitting a carriage return makes everything ok.\n        node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n        col = 0;\n        return;\n      }\n      var content = \"\";\n      // replace tabs\n      for (var pos = 0;;) {\n        var idx = text.indexOf(\"\\t\", pos);\n        if (idx == -1) {\n          content += text.slice(pos);\n          col += text.length - pos;\n          break;\n        } else {\n          col += idx - pos;\n          content += text.slice(pos, idx);\n          var size = tabSize - col % tabSize;\n          col += size;\n          for (var i = 0; i < size; ++i) content += \" \";\n          pos = idx + 1;\n        }\n      }\n\n      if (style) {\n        var sp = node.appendChild(document.createElement(\"span\"));\n        sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n        sp.appendChild(document.createTextNode(content));\n      } else {\n        node.appendChild(document.createTextNode(content));\n      }\n    };\n  }\n\n  var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new CodeMirror.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/runmode/runmode.node.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/* Just enough of CodeMirror to run runMode under node.js */\n\n// declare global: StringStream\n\nfunction splitLines(string){ return string.split(/\\r?\\n|\\r/); };\n\nfunction StringStream(string) {\n  this.pos = this.start = 0;\n  this.string = string;\n  this.lineStart = 0;\n}\nStringStream.prototype = {\n  eol: function() {return this.pos >= this.string.length;},\n  sol: function() {return this.pos == 0;},\n  peek: function() {return this.string.charAt(this.pos) || null;},\n  next: function() {\n    if (this.pos < this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch && (match.test ? match.test(ch) : match(ch));\n    if (ok) {++this.pos; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match)){}\n    return this.pos > start;\n  },\n  eatSpace: function() {\n    var start = this.pos;\n    while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n    return this.pos > start;\n  },\n  skipToEnd: function() {this.pos = this.string.length;},\n  skipTo: function(ch) {\n    var found = this.string.indexOf(ch, this.pos);\n    if (found > -1) {this.pos = found; return true;}\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.start - this.lineStart;},\n  indentation: function() {return 0;},\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n      var substr = this.string.substr(this.pos, pattern.length);\n      if (cased(substr) == cased(pattern)) {\n        if (consume !== false) this.pos += pattern.length;\n        return true;\n      }\n    } else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match && match.index > 0) return null;\n      if (match && consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  },\n  current: function(){return this.string.slice(this.start, this.pos);},\n  hideFirstChars: function(n, inner) {\n    this.lineStart += n;\n    try { return inner(); }\n    finally { this.lineStart -= n; }\n  }\n};\nexports.StringStream = StringStream;\n\nexports.startState = function(mode, a1, a2) {\n  return mode.startState ? mode.startState(a1, a2) : true;\n};\n\nvar modes = exports.modes = {}, mimeModes = exports.mimeModes = {};\nexports.defineMode = function(name, mode) {\n  if (arguments.length > 2)\n    mode.dependencies = Array.prototype.slice.call(arguments, 2);\n  modes[name] = mode;\n};\nexports.defineMIME = function(mime, spec) { mimeModes[mime] = spec; };\n\nexports.defineMode(\"null\", function() {\n  return {token: function(stream) {stream.skipToEnd();}};\n});\nexports.defineMIME(\"text/plain\", \"null\");\n\nexports.resolveMode = function(spec) {\n  if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n    spec = mimeModes[spec];\n  } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n    spec = mimeModes[spec.name];\n  }\n  if (typeof spec == \"string\") return {name: spec};\n  else return spec || {name: \"null\"};\n};\nexports.getMode = function(options, spec) {\n  spec = exports.resolveMode(spec);\n  var mfactory = modes[spec.name];\n  if (!mfactory) throw new Error(\"Unknown mode: \" + spec);\n  return mfactory(options, spec);\n};\nexports.registerHelper = exports.registerGlobalHelper = Math.min;\n\nexports.runMode = function(string, modespec, callback, options) {\n  var mode = exports.getMode({indentUnit: 2}, modespec);\n  var lines = splitLines(string), state = (options && options.state) || exports.startState(mode);\n  for (var i = 0, e = lines.length; i < e; ++i) {\n    if (i) callback(\"\\n\");\n    var stream = new exports.StringStream(lines[i]);\n    if (!stream.string && mode.blankLine) mode.blankLine(state);\n    while (!stream.eol()) {\n      var style = mode.token(stream, state);\n      callback(stream.current(), style, i, stream.start, state);\n      stream.start = stream.pos;\n    }\n  }\n};\n\nrequire.cache[require.resolve(\"../../lib/codemirror\")] = require.cache[require.resolve(\"./runmode.node\")];\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/scroll/annotatescrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"annotateScrollbar\", function(options) {\n    if (typeof options == \"string\") options = {className: options};\n    return new Annotation(this, options);\n  });\n\n  CodeMirror.defineOption(\"scrollButtonHeight\", 0);\n\n  function Annotation(cm, options) {\n    this.cm = cm;\n    this.options = options;\n    this.buttonHeight = options.scrollButtonHeight || cm.getOption(\"scrollButtonHeight\");\n    this.annotations = [];\n    this.doRedraw = this.doUpdate = null;\n    this.div = cm.getWrapperElement().appendChild(document.createElement(\"div\"));\n    this.div.style.cssText = \"position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none\";\n    this.computeScale();\n\n    function scheduleRedraw(delay) {\n      clearTimeout(self.doRedraw);\n      self.doRedraw = setTimeout(function() { self.redraw(); }, delay);\n    }\n\n    var self = this;\n    cm.on(\"refresh\", this.resizeHandler = function() {\n      clearTimeout(self.doUpdate);\n      self.doUpdate = setTimeout(function() {\n        if (self.computeScale()) scheduleRedraw(20);\n      }, 100);\n    });\n    cm.on(\"markerAdded\", this.resizeHandler);\n    cm.on(\"markerCleared\", this.resizeHandler);\n    if (options.listenForChanges !== false)\n      cm.on(\"change\", this.changeHandler = function() {\n        scheduleRedraw(250);\n      });\n  }\n\n  Annotation.prototype.computeScale = function() {\n    var cm = this.cm;\n    var hScale = (cm.getWrapperElement().clientHeight - cm.display.barHeight - this.buttonHeight * 2) /\n      cm.heightAtLine(cm.lastLine() + 1, \"local\");\n    if (hScale != this.hScale) {\n      this.hScale = hScale;\n      return true;\n    }\n  };\n\n  Annotation.prototype.update = function(annotations) {\n    this.annotations = annotations;\n    this.redraw();\n  };\n\n  Annotation.prototype.redraw = function(compute) {\n    if (compute !== false) this.computeScale();\n    var cm = this.cm, hScale = this.hScale;\n\n    var frag = document.createDocumentFragment(), anns = this.annotations;\n    if (cm.display.barWidth) for (var i = 0, nextTop; i < anns.length; i++) {\n      var ann = anns[i];\n      var top = nextTop || cm.charCoords(ann.from, \"local\").top * hScale;\n      var bottom = cm.charCoords(ann.to, \"local\").bottom * hScale;\n      while (i < anns.length - 1) {\n        nextTop = cm.charCoords(anns[i + 1].from, \"local\").top * hScale;\n        if (nextTop > bottom + .9) break;\n        ann = anns[++i];\n        bottom = cm.charCoords(ann.to, \"local\").bottom * hScale;\n      }\n      if (bottom == top) continue;\n      var height = Math.max(bottom - top, 3);\n\n      var elt = frag.appendChild(document.createElement(\"div\"));\n      elt.style.cssText = \"position: absolute; right: 0px; width: \" + Math.max(cm.display.barWidth - 1, 2) + \"px; top: \"\n        + (top + this.buttonHeight) + \"px; height: \" + height + \"px\";\n      elt.className = this.options.className;\n    }\n    this.div.textContent = \"\";\n    this.div.appendChild(frag);\n  };\n\n  Annotation.prototype.clear = function() {\n    this.cm.off(\"refresh\", this.resizeHandler);\n    this.cm.off(\"markerAdded\", this.resizeHandler);\n    this.cm.off(\"markerCleared\", this.resizeHandler);\n    if (this.changeHandler) this.cm.off(\"change\", this.changeHandler);\n    this.div.parentNode.removeChild(this.div);\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/scroll/scrollpastend.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"scrollPastEnd\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      cm.off(\"change\", onChange);\n      cm.off(\"refresh\", updateBottomMargin);\n      cm.display.lineSpace.parentNode.style.paddingBottom = \"\";\n      cm.state.scrollPastEndPadding = null;\n    }\n    if (val) {\n      cm.on(\"change\", onChange);\n      cm.on(\"refresh\", updateBottomMargin);\n      updateBottomMargin(cm);\n    }\n  });\n\n  function onChange(cm, change) {\n    if (CodeMirror.changeEnd(change).line == cm.lastLine())\n      updateBottomMargin(cm);\n  }\n\n  function updateBottomMargin(cm) {\n    var padding = \"\";\n    if (cm.lineCount() > 1) {\n      var totalH = cm.display.scroller.clientHeight - 30,\n          lastLineH = cm.getLineHandle(cm.lastLine()).height;\n      padding = (totalH - lastLineH) + \"px\";\n    }\n    if (cm.state.scrollPastEndPadding != padding) {\n      cm.state.scrollPastEndPadding = padding;\n      cm.display.lineSpace.parentNode.style.paddingBottom = padding;\n      cm.setSize();\n    }\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/scroll/simplescrollbars.css",
    "content": ".CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {\n  position: absolute;\n  background: #ccc;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  border: 1px solid #bbb;\n  border-radius: 2px;\n}\n\n.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {\n  position: absolute;\n  z-index: 6;\n  background: #eee;\n}\n\n.CodeMirror-simplescroll-horizontal {\n  bottom: 0; left: 0;\n  height: 8px;\n}\n.CodeMirror-simplescroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-simplescroll-vertical {\n  right: 0; top: 0;\n  width: 8px;\n}\n.CodeMirror-simplescroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n\n\n.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {\n  display: none;\n}\n\n.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {\n  position: absolute;\n  background: #bcd;\n  border-radius: 3px;\n}\n\n.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {\n  position: absolute;\n  z-index: 6;\n}\n\n.CodeMirror-overlayscroll-horizontal {\n  bottom: 0; left: 0;\n  height: 6px;\n}\n.CodeMirror-overlayscroll-horizontal div {\n  bottom: 0;\n  height: 100%;\n}\n\n.CodeMirror-overlayscroll-vertical {\n  right: 0; top: 0;\n  width: 6px;\n}\n.CodeMirror-overlayscroll-vertical div {\n  right: 0;\n  width: 100%;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/scroll/simplescrollbars.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function Bar(cls, orientation, scroll) {\n    this.orientation = orientation;\n    this.scroll = scroll;\n    this.screen = this.total = this.size = 1;\n    this.pos = 0;\n\n    this.node = document.createElement(\"div\");\n    this.node.className = cls + \"-\" + orientation;\n    this.inner = this.node.appendChild(document.createElement(\"div\"));\n\n    var self = this;\n    CodeMirror.on(this.inner, \"mousedown\", function(e) {\n      if (e.which != 1) return;\n      CodeMirror.e_preventDefault(e);\n      var axis = self.orientation == \"horizontal\" ? \"pageX\" : \"pageY\";\n      var start = e[axis], startpos = self.pos;\n      function done() {\n        CodeMirror.off(document, \"mousemove\", move);\n        CodeMirror.off(document, \"mouseup\", done);\n      }\n      function move(e) {\n        if (e.which != 1) return done();\n        self.moveTo(startpos + (e[axis] - start) * (self.total / self.size));\n      }\n      CodeMirror.on(document, \"mousemove\", move);\n      CodeMirror.on(document, \"mouseup\", done);\n    });\n\n    CodeMirror.on(this.node, \"click\", function(e) {\n      CodeMirror.e_preventDefault(e);\n      var innerBox = self.inner.getBoundingClientRect(), where;\n      if (self.orientation == \"horizontal\")\n        where = e.clientX < innerBox.left ? -1 : e.clientX > innerBox.right ? 1 : 0;\n      else\n        where = e.clientY < innerBox.top ? -1 : e.clientY > innerBox.bottom ? 1 : 0;\n      self.moveTo(self.pos + where * self.screen);\n    });\n\n    function onWheel(e) {\n      var moved = CodeMirror.wheelEventPixels(e)[self.orientation == \"horizontal\" ? \"x\" : \"y\"];\n      var oldPos = self.pos;\n      self.moveTo(self.pos + moved);\n      if (self.pos != oldPos) CodeMirror.e_preventDefault(e);\n    }\n    CodeMirror.on(this.node, \"mousewheel\", onWheel);\n    CodeMirror.on(this.node, \"DOMMouseScroll\", onWheel);\n  }\n\n  Bar.prototype.moveTo = function(pos, update) {\n    if (pos < 0) pos = 0;\n    if (pos > this.total - this.screen) pos = this.total - this.screen;\n    if (pos == this.pos) return;\n    this.pos = pos;\n    this.inner.style[this.orientation == \"horizontal\" ? \"left\" : \"top\"] =\n      (pos * (this.size / this.total)) + \"px\";\n    if (update !== false) this.scroll(pos, this.orientation);\n  };\n\n  Bar.prototype.update = function(scrollSize, clientSize, barSize) {\n    this.screen = clientSize;\n    this.total = scrollSize;\n    this.size = barSize;\n\n    // FIXME clip to min size?\n    this.inner.style[this.orientation == \"horizontal\" ? \"width\" : \"height\"] =\n      this.screen * (this.size / this.total) + \"px\";\n    this.inner.style[this.orientation == \"horizontal\" ? \"left\" : \"top\"] =\n      this.pos * (this.size / this.total) + \"px\";\n  };\n\n  function SimpleScrollbars(cls, place, scroll) {\n    this.addClass = cls;\n    this.horiz = new Bar(cls, \"horizontal\", scroll);\n    place(this.horiz.node);\n    this.vert = new Bar(cls, \"vertical\", scroll);\n    place(this.vert.node);\n    this.width = null;\n  }\n\n  SimpleScrollbars.prototype.update = function(measure) {\n    if (this.width == null) {\n      var style = window.getComputedStyle ? window.getComputedStyle(this.horiz.node) : this.horiz.node.currentStyle;\n      if (style) this.width = parseInt(style.height);\n    }\n    var width = this.width || 0;\n\n    var needsH = measure.scrollWidth > measure.clientWidth + 1;\n    var needsV = measure.scrollHeight > measure.clientHeight + 1;\n    this.vert.node.style.display = needsV ? \"block\" : \"none\";\n    this.horiz.node.style.display = needsH ? \"block\" : \"none\";\n\n    if (needsV) {\n      this.vert.update(measure.scrollHeight, measure.clientHeight,\n                       measure.viewHeight - (needsH ? width : 0));\n      this.vert.node.style.display = \"block\";\n      this.vert.node.style.bottom = needsH ? width + \"px\" : \"0\";\n    }\n    if (needsH) {\n      this.horiz.update(measure.scrollWidth, measure.clientWidth,\n                        measure.viewWidth - (needsV ? width : 0) - measure.barLeft);\n      this.horiz.node.style.right = needsV ? width + \"px\" : \"0\";\n      this.horiz.node.style.left = measure.barLeft + \"px\";\n    }\n\n    return {right: needsV ? width : 0, bottom: needsH ? width : 0};\n  };\n\n  SimpleScrollbars.prototype.setScrollTop = function(pos) {\n    this.vert.moveTo(pos, false);\n  };\n\n  SimpleScrollbars.prototype.setScrollLeft = function(pos) {\n    this.horiz.moveTo(pos, false);\n  };\n\n  SimpleScrollbars.prototype.clear = function() {\n    var parent = this.horiz.node.parentNode;\n    parent.removeChild(this.horiz.node);\n    parent.removeChild(this.vert.node);\n  };\n\n  CodeMirror.scrollbarModel.simple = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-simplescroll\", place, scroll);\n  };\n  CodeMirror.scrollbarModel.overlay = function(place, scroll) {\n    return new SimpleScrollbars(\"CodeMirror-overlayscroll\", place, scroll);\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/search/match-highlighter.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Highlighting text that matches the selection\n//\n// Defines an option highlightSelectionMatches, which, when enabled,\n// will style strings that match the selection throughout the\n// document.\n//\n// The option can be set to true to simply enable it, or to a\n// {minChars, style, wordsOnly, showToken, delay} object to explicitly\n// configure it. minChars is the minimum amount of characters that should be\n// selected for the behavior to occur, and style is the token style to\n// apply to the matches. This will be prefixed by \"cm-\" to create an\n// actual CSS class name. If wordsOnly is enabled, the matches will be\n// highlighted only if the selected text is a word. showToken, when enabled,\n// will cause the current token to be highlighted when nothing is selected.\n// delay is used to specify how much time to wait, in milliseconds, before\n// highlighting the matches.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var DEFAULT_MIN_CHARS = 2;\n  var DEFAULT_TOKEN_STYLE = \"matchhighlight\";\n  var DEFAULT_DELAY = 100;\n  var DEFAULT_WORDS_ONLY = false;\n\n  function State(options) {\n    if (typeof options == \"object\") {\n      this.minChars = options.minChars;\n      this.style = options.style;\n      this.showToken = options.showToken;\n      this.delay = options.delay;\n      this.wordsOnly = options.wordsOnly;\n    }\n    if (this.style == null) this.style = DEFAULT_TOKEN_STYLE;\n    if (this.minChars == null) this.minChars = DEFAULT_MIN_CHARS;\n    if (this.delay == null) this.delay = DEFAULT_DELAY;\n    if (this.wordsOnly == null) this.wordsOnly = DEFAULT_WORDS_ONLY;\n    this.overlay = this.timeout = null;\n  }\n\n  CodeMirror.defineOption(\"highlightSelectionMatches\", false, function(cm, val, old) {\n    if (old && old != CodeMirror.Init) {\n      var over = cm.state.matchHighlighter.overlay;\n      if (over) cm.removeOverlay(over);\n      clearTimeout(cm.state.matchHighlighter.timeout);\n      cm.state.matchHighlighter = null;\n      cm.off(\"cursorActivity\", cursorActivity);\n    }\n    if (val) {\n      cm.state.matchHighlighter = new State(val);\n      highlightMatches(cm);\n      cm.on(\"cursorActivity\", cursorActivity);\n    }\n  });\n\n  function cursorActivity(cm) {\n    var state = cm.state.matchHighlighter;\n    clearTimeout(state.timeout);\n    state.timeout = setTimeout(function() {highlightMatches(cm);}, state.delay);\n  }\n\n  function highlightMatches(cm) {\n    cm.operation(function() {\n      var state = cm.state.matchHighlighter;\n      if (state.overlay) {\n        cm.removeOverlay(state.overlay);\n        state.overlay = null;\n      }\n      if (!cm.somethingSelected() && state.showToken) {\n        var re = state.showToken === true ? /[\\w$]/ : state.showToken;\n        var cur = cm.getCursor(), line = cm.getLine(cur.line), start = cur.ch, end = start;\n        while (start && re.test(line.charAt(start - 1))) --start;\n        while (end < line.length && re.test(line.charAt(end))) ++end;\n        if (start < end)\n          cm.addOverlay(state.overlay = makeOverlay(line.slice(start, end), re, state.style));\n        return;\n      }\n      var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n      if (from.line != to.line) return;\n      if (state.wordsOnly && !isWord(cm, from, to)) return;\n      var selection = cm.getRange(from, to).replace(/^\\s+|\\s+$/g, \"\");\n      if (selection.length >= state.minChars)\n        cm.addOverlay(state.overlay = makeOverlay(selection, false, state.style));\n    });\n  }\n\n  function isWord(cm, from, to) {\n    var str = cm.getRange(from, to);\n    if (str.match(/^\\w+$/) !== null) {\n        if (from.ch > 0) {\n            var pos = {line: from.line, ch: from.ch - 1};\n            var chr = cm.getRange(pos, from);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        if (to.ch < cm.getLine(from.line).length) {\n            var pos = {line: to.line, ch: to.ch + 1};\n            var chr = cm.getRange(to, pos);\n            if (chr.match(/\\W/) === null) return false;\n        }\n        return true;\n    } else return false;\n  }\n\n  function boundariesAround(stream, re) {\n    return (!stream.start || !re.test(stream.string.charAt(stream.start - 1))) &&\n      (stream.pos == stream.string.length || !re.test(stream.string.charAt(stream.pos)));\n  }\n\n  function makeOverlay(query, hasBoundary, style) {\n    return {token: function(stream) {\n      if (stream.match(query) &&\n          (!hasBoundary || boundariesAround(stream, hasBoundary)))\n        return style;\n      stream.next();\n      stream.skipTo(query.charAt(0)) || stream.skipToEnd();\n    }};\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/search/matchesonscrollbar.css",
    "content": ".CodeMirror-search-match {\n  background: gold;\n  border-top: 1px solid orange;\n  border-bottom: 1px solid orange;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  opacity: .5;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/search/matchesonscrollbar.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../scroll/annotatescrollbar\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../scroll/annotatescrollbar\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineExtension(\"showMatchesOnScrollbar\", function(query, caseFold, options) {\n    if (typeof options == \"string\") options = {className: options};\n    if (!options) options = {};\n    return new SearchAnnotation(this, query, caseFold, options);\n  });\n\n  function SearchAnnotation(cm, query, caseFold, options) {\n    this.cm = cm;\n    var annotateOptions = {listenForChanges: false};\n    for (var prop in options) annotateOptions[prop] = options[prop];\n    if (!annotateOptions.className) annotateOptions.className = \"CodeMirror-search-match\";\n    this.annotation = cm.annotateScrollbar(annotateOptions);\n    this.query = query;\n    this.caseFold = caseFold;\n    this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};\n    this.matches = [];\n    this.update = null;\n\n    this.findMatches();\n    this.annotation.update(this.matches);\n\n    var self = this;\n    cm.on(\"change\", this.changeHandler = function(_cm, change) { self.onChange(change); });\n  }\n\n  var MAX_MATCHES = 1000;\n\n  SearchAnnotation.prototype.findMatches = function() {\n    if (!this.gap) return;\n    for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      if (match.from.line >= this.gap.to) break;\n      if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);\n    }\n    var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), this.caseFold);\n    while (cursor.findNext()) {\n      var match = {from: cursor.from(), to: cursor.to()};\n      if (match.from.line >= this.gap.to) break;\n      this.matches.splice(i++, 0, match);\n      if (this.matches.length > MAX_MATCHES) break;\n    }\n    this.gap = null;\n  };\n\n  function offsetLine(line, changeStart, sizeChange) {\n    if (line <= changeStart) return line;\n    return Math.max(changeStart, line + sizeChange);\n  }\n\n  SearchAnnotation.prototype.onChange = function(change) {\n    var startLine = change.from.line;\n    var endLine = CodeMirror.changeEnd(change).line;\n    var sizeChange = endLine - change.to.line;\n    if (this.gap) {\n      this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);\n      this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);\n    } else {\n      this.gap = {from: change.from.line, to: endLine + 1};\n    }\n\n    if (sizeChange) for (var i = 0; i < this.matches.length; i++) {\n      var match = this.matches[i];\n      var newFrom = offsetLine(match.from.line, startLine, sizeChange);\n      if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);\n      var newTo = offsetLine(match.to.line, startLine, sizeChange);\n      if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);\n    }\n    clearTimeout(this.update);\n    var self = this;\n    this.update = setTimeout(function() { self.updateAfterChange(); }, 250);\n  };\n\n  SearchAnnotation.prototype.updateAfterChange = function() {\n    this.findMatches();\n    this.annotation.update(this.matches);\n  };\n\n  SearchAnnotation.prototype.clear = function() {\n    this.cm.off(\"change\", this.changeHandler);\n    this.annotation.clear();\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/search/search.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  function searchOverlay(query, caseInsensitive) {\n    if (typeof query == \"string\")\n      query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n    else if (!query.global)\n      query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n    return {token: function(stream) {\n      query.lastIndex = stream.pos;\n      var match = query.exec(stream.string);\n      if (match && match.index == stream.pos) {\n        stream.pos += match[0].length;\n        return \"searching\";\n      } else if (match) {\n        stream.pos = match.index;\n      } else {\n        stream.skipToEnd();\n      }\n    }};\n  }\n\n  function SearchState() {\n    this.posFrom = this.posTo = this.query = null;\n    this.overlay = null;\n  }\n  function getSearchState(cm) {\n    return cm.state.search || (cm.state.search = new SearchState());\n  }\n  function queryCaseInsensitive(query) {\n    return typeof query == \"string\" && query == query.toLowerCase();\n  }\n  function getSearchCursor(cm, query, pos) {\n    // Heuristic: if the query string is all lowercase, do a case insensitive search.\n    return cm.getSearchCursor(query, pos, queryCaseInsensitive(query));\n  }\n  function dialog(cm, text, shortText, deflt, f) {\n    if (cm.openDialog) cm.openDialog(text, f, {value: deflt});\n    else f(prompt(shortText, deflt));\n  }\n  function confirmDialog(cm, text, shortText, fs) {\n    if (cm.openConfirm) cm.openConfirm(text, fs);\n    else if (confirm(shortText)) fs[0]();\n  }\n  function parseQuery(query) {\n    var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n    if (isRE) {\n      try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n      catch(e) {} // Not a regular expression after all, do a string search\n    }\n    if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n      query = /x^/;\n    return query;\n  }\n  var queryDialog =\n    'Search: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';\n  function doSearch(cm, rev) {\n    var state = getSearchState(cm);\n    if (state.query) return findNext(cm, rev);\n    dialog(cm, queryDialog, \"Search for:\", cm.getSelection(), function(query) {\n      cm.operation(function() {\n        if (!query || state.query) return;\n        state.query = parseQuery(query);\n        cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n        state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n        cm.addOverlay(state.overlay);\n        if (cm.showMatchesOnScrollbar) {\n          if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n          state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n        }\n        state.posFrom = state.posTo = cm.getCursor();\n        findNext(cm, rev);\n      });\n    });\n  }\n  function findNext(cm, rev) {cm.operation(function() {\n    var state = getSearchState(cm);\n    var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n    if (!cursor.find(rev)) {\n      cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n      if (!cursor.find(rev)) return;\n    }\n    cm.setSelection(cursor.from(), cursor.to());\n    cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n    state.posFrom = cursor.from(); state.posTo = cursor.to();\n  });}\n  function clearSearch(cm) {cm.operation(function() {\n    var state = getSearchState(cm);\n    if (!state.query) return;\n    state.query = null;\n    cm.removeOverlay(state.overlay);\n    if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n  });}\n\n  var replaceQueryDialog =\n    'Replace: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';\n  var replacementQueryDialog = 'With: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>';\n  var doReplaceConfirm = \"Replace? <button>Yes</button> <button>No</button> <button>Stop</button>\";\n  function replace(cm, all) {\n    if (cm.getOption(\"readOnly\")) return;\n    dialog(cm, replaceQueryDialog, \"Replace:\", cm.getSelection(), function(query) {\n      if (!query) return;\n      query = parseQuery(query);\n      dialog(cm, replacementQueryDialog, \"Replace with:\", \"\", function(text) {\n        if (all) {\n          cm.operation(function() {\n            for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n              if (typeof query != \"string\") {\n                var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n                cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n              } else cursor.replace(text);\n            }\n          });\n        } else {\n          clearSearch(cm);\n          var cursor = getSearchCursor(cm, query, cm.getCursor());\n          var advance = function() {\n            var start = cursor.from(), match;\n            if (!(match = cursor.findNext())) {\n              cursor = getSearchCursor(cm, query);\n              if (!(match = cursor.findNext()) ||\n                  (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n            }\n            cm.setSelection(cursor.from(), cursor.to());\n            cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n            confirmDialog(cm, doReplaceConfirm, \"Replace?\",\n                          [function() {doReplace(match);}, advance]);\n          };\n          var doReplace = function(match) {\n            cursor.replace(typeof query == \"string\" ? text :\n                           text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n            advance();\n          };\n          advance();\n        }\n      });\n    });\n  }\n\n  CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n  CodeMirror.commands.findNext = doSearch;\n  CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n  CodeMirror.commands.clearSearch = clearSearch;\n  CodeMirror.commands.replace = replace;\n  CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/search/searchcursor.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var Pos = CodeMirror.Pos;\n\n  function SearchCursor(doc, query, pos, caseFold) {\n    this.atOccurrence = false; this.doc = doc;\n    if (caseFold == null && typeof query == \"string\") caseFold = false;\n\n    pos = pos ? doc.clipPos(pos) : Pos(0, 0);\n    this.pos = {from: pos, to: pos};\n\n    // The matches method is filled in based on the type of query.\n    // It takes a position and a direction, and returns an object\n    // describing the next occurrence of the query, or null if no\n    // more matches were found.\n    if (typeof query != \"string\") { // Regexp match\n      if (!query.global) query = new RegExp(query.source, query.ignoreCase ? \"ig\" : \"g\");\n      this.matches = function(reverse, pos) {\n        if (reverse) {\n          query.lastIndex = 0;\n          var line = doc.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start;\n          for (;;) {\n            query.lastIndex = cutOff;\n            var newMatch = query.exec(line);\n            if (!newMatch) break;\n            match = newMatch;\n            start = match.index;\n            cutOff = match.index + (match[0].length || 1);\n            if (cutOff == line.length) break;\n          }\n          var matchLen = (match && match[0].length) || 0;\n          if (!matchLen) {\n            if (start == 0 && line.length == 0) {match = undefined;}\n            else if (start != doc.getLine(pos.line).length) {\n              matchLen++;\n            }\n          }\n        } else {\n          query.lastIndex = pos.ch;\n          var line = doc.getLine(pos.line), match = query.exec(line);\n          var matchLen = (match && match[0].length) || 0;\n          var start = match && match.index;\n          if (start + matchLen != line.length && !matchLen) matchLen = 1;\n        }\n        if (match && matchLen)\n          return {from: Pos(pos.line, start),\n                  to: Pos(pos.line, start + matchLen),\n                  match: match};\n      };\n    } else { // String query\n      var origQuery = query;\n      if (caseFold) query = query.toLowerCase();\n      var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;};\n      var target = query.split(\"\\n\");\n      // Different methods for single-line and multi-line queries\n      if (target.length == 1) {\n        if (!query.length) {\n          // Empty string would match anything and never progress, so\n          // we define it to match nothing instead.\n          this.matches = function() {};\n        } else {\n          this.matches = function(reverse, pos) {\n            if (reverse) {\n              var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig);\n              var match = line.lastIndexOf(query);\n              if (match > -1) {\n                match = adjustPos(orig, line, match);\n                return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};\n              }\n             } else {\n               var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig);\n               var match = line.indexOf(query);\n               if (match > -1) {\n                 match = adjustPos(orig, line, match) + pos.ch;\n                 return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)};\n               }\n            }\n          };\n        }\n      } else {\n        var origTarget = origQuery.split(\"\\n\");\n        this.matches = function(reverse, pos) {\n          var last = target.length - 1;\n          if (reverse) {\n            if (pos.line - (target.length - 1) < doc.firstLine()) return;\n            if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return;\n            var to = Pos(pos.line, origTarget[last].length);\n            for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln)\n              if (target[i] != fold(doc.getLine(ln))) return;\n            var line = doc.getLine(ln), cut = line.length - origTarget[0].length;\n            if (fold(line.slice(cut)) != target[0]) return;\n            return {from: Pos(ln, cut), to: to};\n          } else {\n            if (pos.line + (target.length - 1) > doc.lastLine()) return;\n            var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length;\n            if (fold(line.slice(cut)) != target[0]) return;\n            var from = Pos(pos.line, cut);\n            for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln)\n              if (target[i] != fold(doc.getLine(ln))) return;\n            if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return;\n            return {from: from, to: Pos(ln, origTarget[last].length)};\n          }\n        };\n      }\n    }\n  }\n\n  SearchCursor.prototype = {\n    findNext: function() {return this.find(false);},\n    findPrevious: function() {return this.find(true);},\n\n    find: function(reverse) {\n      var self = this, pos = this.doc.clipPos(reverse ? this.pos.from : this.pos.to);\n      function savePosAndFail(line) {\n        var pos = Pos(line, 0);\n        self.pos = {from: pos, to: pos};\n        self.atOccurrence = false;\n        return false;\n      }\n\n      for (;;) {\n        if (this.pos = this.matches(reverse, pos)) {\n          this.atOccurrence = true;\n          return this.pos.match || true;\n        }\n        if (reverse) {\n          if (!pos.line) return savePosAndFail(0);\n          pos = Pos(pos.line-1, this.doc.getLine(pos.line-1).length);\n        }\n        else {\n          var maxLine = this.doc.lineCount();\n          if (pos.line == maxLine - 1) return savePosAndFail(maxLine);\n          pos = Pos(pos.line + 1, 0);\n        }\n      }\n    },\n\n    from: function() {if (this.atOccurrence) return this.pos.from;},\n    to: function() {if (this.atOccurrence) return this.pos.to;},\n\n    replace: function(newText) {\n      if (!this.atOccurrence) return;\n      var lines = CodeMirror.splitLines(newText);\n      this.doc.replaceRange(lines, this.pos.from, this.pos.to);\n      this.pos.to = Pos(this.pos.from.line + lines.length - 1,\n                        lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0));\n    }\n  };\n\n  // Maps a position in a case-folded line back to a position in the original line\n  // (compensating for codepoints increasing in number during folding)\n  function adjustPos(orig, folded, pos) {\n    if (orig.length == folded.length) return pos;\n    for (var pos1 = Math.min(pos, orig.length);;) {\n      var len1 = orig.slice(0, pos1).toLowerCase().length;\n      if (len1 < pos) ++pos1;\n      else if (len1 > pos) --pos1;\n      else return pos1;\n    }\n  }\n\n  CodeMirror.defineExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this.doc, query, pos, caseFold);\n  });\n  CodeMirror.defineDocExtension(\"getSearchCursor\", function(query, pos, caseFold) {\n    return new SearchCursor(this, query, pos, caseFold);\n  });\n\n  CodeMirror.defineExtension(\"selectMatches\", function(query, caseFold) {\n    var ranges = [], next;\n    var cur = this.getSearchCursor(query, this.getCursor(\"from\"), caseFold);\n    while (next = cur.findNext()) {\n      if (CodeMirror.cmpPos(cur.to(), this.getCursor(\"to\")) > 0) break;\n      ranges.push({anchor: cur.from(), head: cur.to()});\n    }\n    if (ranges.length)\n      this.setSelections(ranges, 0);\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/selection/active-line.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Because sometimes you need to style the cursor's line.\n//\n// Adds an option 'styleActiveLine' which, when enabled, gives the\n// active line's wrapping <div> the CSS class \"CodeMirror-activeline\",\n// and gives its background <div> the class \"CodeMirror-activeline-background\".\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var WRAP_CLASS = \"CodeMirror-activeline\";\n  var BACK_CLASS = \"CodeMirror-activeline-background\";\n\n  CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.state.activeLines = [];\n      updateActiveLines(cm, cm.listSelections());\n      cm.on(\"beforeSelectionChange\", selectionChange);\n    } else if (!val && prev) {\n      cm.off(\"beforeSelectionChange\", selectionChange);\n      clearActiveLines(cm);\n      delete cm.state.activeLines;\n    }\n  });\n\n  function clearActiveLines(cm) {\n    for (var i = 0; i < cm.state.activeLines.length; i++) {\n      cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n      cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n    }\n  }\n\n  function sameArray(a, b) {\n    if (a.length != b.length) return false;\n    for (var i = 0; i < a.length; i++)\n      if (a[i] != b[i]) return false;\n    return true;\n  }\n\n  function updateActiveLines(cm, ranges) {\n    var active = [];\n    for (var i = 0; i < ranges.length; i++) {\n      var range = ranges[i];\n      if (!range.empty()) continue;\n      var line = cm.getLineHandleVisualStart(range.head.line);\n      if (active[active.length - 1] != line) active.push(line);\n    }\n    if (sameArray(cm.state.activeLines, active)) return;\n    cm.operation(function() {\n      clearActiveLines(cm);\n      for (var i = 0; i < active.length; i++) {\n        cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n        cm.addLineClass(active[i], \"background\", BACK_CLASS);\n      }\n      cm.state.activeLines = active;\n    });\n  }\n\n  function selectionChange(cm, sel) {\n    updateActiveLines(cm, sel.ranges);\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/selection/mark-selection.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n    var prev = old && old != CodeMirror.Init;\n    if (val && !prev) {\n      cm.state.markedSelection = [];\n      cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n      reset(cm);\n      cm.on(\"cursorActivity\", onCursorActivity);\n      cm.on(\"change\", onChange);\n    } else if (!val && prev) {\n      cm.off(\"cursorActivity\", onCursorActivity);\n      cm.off(\"change\", onChange);\n      clear(cm);\n      cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n    }\n  });\n\n  function onCursorActivity(cm) {\n    cm.operation(function() { update(cm); });\n  }\n\n  function onChange(cm) {\n    if (cm.state.markedSelection.length)\n      cm.operation(function() { clear(cm); });\n  }\n\n  var CHUNK_SIZE = 8;\n  var Pos = CodeMirror.Pos;\n  var cmp = CodeMirror.cmpPos;\n\n  function coverRange(cm, from, to, addAt) {\n    if (cmp(from, to) == 0) return;\n    var array = cm.state.markedSelection;\n    var cls = cm.state.markedSelectionStyle;\n    for (var line = from.line;;) {\n      var start = line == from.line ? from : Pos(line, 0);\n      var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n      var end = atEnd ? to : Pos(endLine, 0);\n      var mark = cm.markText(start, end, {className: cls});\n      if (addAt == null) array.push(mark);\n      else array.splice(addAt++, 0, mark);\n      if (atEnd) break;\n      line = endLine;\n    }\n  }\n\n  function clear(cm) {\n    var array = cm.state.markedSelection;\n    for (var i = 0; i < array.length; ++i) array[i].clear();\n    array.length = 0;\n  }\n\n  function reset(cm) {\n    clear(cm);\n    var ranges = cm.listSelections();\n    for (var i = 0; i < ranges.length; i++)\n      coverRange(cm, ranges[i].from(), ranges[i].to());\n  }\n\n  function update(cm) {\n    if (!cm.somethingSelected()) return clear(cm);\n    if (cm.listSelections().length > 1) return reset(cm);\n\n    var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n    var array = cm.state.markedSelection;\n    if (!array.length) return coverRange(cm, from, to);\n\n    var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n    if (!coverStart || !coverEnd || to.line - from.line < CHUNK_SIZE ||\n        cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n      return reset(cm);\n\n    while (cmp(from, coverStart.from) > 0) {\n      array.shift().clear();\n      coverStart = array[0].find();\n    }\n    if (cmp(from, coverStart.from) < 0) {\n      if (coverStart.to.line - from.line < CHUNK_SIZE) {\n        array.shift().clear();\n        coverRange(cm, from, coverStart.to, 0);\n      } else {\n        coverRange(cm, from, coverStart.from, 0);\n      }\n    }\n\n    while (cmp(to, coverEnd.to) < 0) {\n      array.pop().clear();\n      coverEnd = array[array.length - 1].find();\n    }\n    if (cmp(to, coverEnd.to) > 0) {\n      if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n        array.pop().clear();\n        coverRange(cm, coverEnd.from, to);\n      } else {\n        coverRange(cm, coverEnd.to, to);\n      }\n    }\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/selection/selection-pointer.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineOption(\"selectionPointer\", false, function(cm, val) {\n    var data = cm.state.selectionPointer;\n    if (data) {\n      CodeMirror.off(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.off(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.off(window, \"scroll\", data.windowScroll);\n      cm.off(\"cursorActivity\", reset);\n      cm.off(\"scroll\", reset);\n      cm.state.selectionPointer = null;\n      cm.display.lineDiv.style.cursor = \"\";\n    }\n    if (val) {\n      data = cm.state.selectionPointer = {\n        value: typeof val == \"string\" ? val : \"default\",\n        mousemove: function(event) { mousemove(cm, event); },\n        mouseout: function(event) { mouseout(cm, event); },\n        windowScroll: function() { reset(cm); },\n        rects: null,\n        mouseX: null, mouseY: null,\n        willUpdate: false\n      };\n      CodeMirror.on(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n      CodeMirror.on(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n      CodeMirror.on(window, \"scroll\", data.windowScroll);\n      cm.on(\"cursorActivity\", reset);\n      cm.on(\"scroll\", reset);\n    }\n  });\n\n  function mousemove(cm, event) {\n    var data = cm.state.selectionPointer;\n    if (event.buttons == null ? event.which : event.buttons) {\n      data.mouseX = data.mouseY = null;\n    } else {\n      data.mouseX = event.clientX;\n      data.mouseY = event.clientY;\n    }\n    scheduleUpdate(cm);\n  }\n\n  function mouseout(cm, event) {\n    if (!cm.getWrapperElement().contains(event.relatedTarget)) {\n      var data = cm.state.selectionPointer;\n      data.mouseX = data.mouseY = null;\n      scheduleUpdate(cm);\n    }\n  }\n\n  function reset(cm) {\n    cm.state.selectionPointer.rects = null;\n    scheduleUpdate(cm);\n  }\n\n  function scheduleUpdate(cm) {\n    if (!cm.state.selectionPointer.willUpdate) {\n      cm.state.selectionPointer.willUpdate = true;\n      setTimeout(function() {\n        update(cm);\n        cm.state.selectionPointer.willUpdate = false;\n      }, 50);\n    }\n  }\n\n  function update(cm) {\n    var data = cm.state.selectionPointer;\n    if (!data) return;\n    if (data.rects == null && data.mouseX != null) {\n      data.rects = [];\n      if (cm.somethingSelected()) {\n        for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)\n          data.rects.push(sel.getBoundingClientRect());\n      }\n    }\n    var inside = false;\n    if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {\n      var rect = data.rects[i];\n      if (rect.left <= data.mouseX && rect.right >= data.mouseX &&\n          rect.top <= data.mouseY && rect.bottom >= data.mouseY)\n        inside = true;\n    }\n    var cursor = inside ? data.value : \"\";\n    if (cm.display.lineDiv.style.cursor != cursor)\n      cm.display.lineDiv.style.cursor = cursor;\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/tern/tern.css",
    "content": ".CodeMirror-Tern-completion {\n  padding-left: 22px;\n  position: relative;\n}\n.CodeMirror-Tern-completion:before {\n  position: absolute;\n  left: 2px;\n  bottom: 2px;\n  border-radius: 50%;\n  font-size: 12px;\n  font-weight: bold;\n  height: 15px;\n  width: 15px;\n  line-height: 16px;\n  text-align: center;\n  color: white;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n.CodeMirror-Tern-completion-unknown:before {\n  content: \"?\";\n  background: #4bb;\n}\n.CodeMirror-Tern-completion-object:before {\n  content: \"O\";\n  background: #77c;\n}\n.CodeMirror-Tern-completion-fn:before {\n  content: \"F\";\n  background: #7c7;\n}\n.CodeMirror-Tern-completion-array:before {\n  content: \"A\";\n  background: #c66;\n}\n.CodeMirror-Tern-completion-number:before {\n  content: \"1\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-string:before {\n  content: \"S\";\n  background: #999;\n}\n.CodeMirror-Tern-completion-bool:before {\n  content: \"B\";\n  background: #999;\n}\n\n.CodeMirror-Tern-completion-guess {\n  color: #999;\n}\n\n.CodeMirror-Tern-tooltip {\n  border: 1px solid silver;\n  border-radius: 3px;\n  color: #444;\n  padding: 2px 5px;\n  font-size: 90%;\n  font-family: monospace;\n  background-color: white;\n  white-space: pre-wrap;\n\n  max-width: 40em;\n  position: absolute;\n  z-index: 10;\n  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n  box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n\n  transition: opacity 1s;\n  -moz-transition: opacity 1s;\n  -webkit-transition: opacity 1s;\n  -o-transition: opacity 1s;\n  -ms-transition: opacity 1s;\n}\n\n.CodeMirror-Tern-hint-doc {\n  max-width: 25em;\n  margin-top: -3px;\n}\n\n.CodeMirror-Tern-fname { color: black; }\n.CodeMirror-Tern-farg { color: #70a; }\n.CodeMirror-Tern-farg-current { text-decoration: underline; }\n.CodeMirror-Tern-type { color: #07c; }\n.CodeMirror-Tern-fhint-guess { opacity: .7; }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/tern/tern.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Glue code between CodeMirror and Tern.\n//\n// Create a CodeMirror.TernServer to wrap an actual Tern server,\n// register open documents (CodeMirror.Doc instances) with it, and\n// call its methods to activate the assisting functions that Tern\n// provides.\n//\n// Options supported (all optional):\n// * defs: An array of JSON definition data structures.\n// * plugins: An object mapping plugin names to configuration\n//   options.\n// * getFile: A function(name, c) that can be used to access files in\n//   the project that haven't been loaded yet. Simply do c(null) to\n//   indicate that a file is not available.\n// * fileFilter: A function(value, docName, doc) that will be applied\n//   to documents before passing them on to Tern.\n// * switchToDoc: A function(name, doc) that should, when providing a\n//   multi-file view, switch the view or focus to the named file.\n// * showError: A function(editor, message) that can be used to\n//   override the way errors are displayed.\n// * completionTip: Customize the content in tooltips for completions.\n//   Is passed a single argument—the completion's data as returned by\n//   Tern—and may return a string, DOM node, or null to indicate that\n//   no tip should be shown. By default the docstring is shown.\n// * typeTip: Like completionTip, but for the tooltips shown for type\n//   queries.\n// * responseFilter: A function(doc, query, request, error, data) that\n//   will be applied to the Tern responses before treating them\n//\n//\n// It is possible to run the Tern server in a web worker by specifying\n// these additional options:\n// * useWorker: Set to true to enable web worker mode. You'll probably\n//   want to feature detect the actual value you use here, for example\n//   !!window.Worker.\n// * workerScript: The main script of the worker. Point this to\n//   wherever you are hosting worker.js from this directory.\n// * workerDeps: An array of paths pointing (relative to workerScript)\n//   to the Acorn and Tern libraries and any Tern plugins you want to\n//   load. Or, if you minified those into a single script and included\n//   them in the workerScript, simply leave this undefined.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  // declare global: tern\n\n  CodeMirror.TernServer = function(options) {\n    var self = this;\n    this.options = options || {};\n    var plugins = this.options.plugins || (this.options.plugins = {});\n    if (!plugins.doc_comment) plugins.doc_comment = true;\n    if (this.options.useWorker) {\n      this.server = new WorkerServer(this);\n    } else {\n      this.server = new tern.Server({\n        getFile: function(name, c) { return getFile(self, name, c); },\n        async: true,\n        defs: this.options.defs || [],\n        plugins: plugins\n      });\n    }\n    this.docs = Object.create(null);\n    this.trackChange = function(doc, change) { trackChange(self, doc, change); };\n\n    this.cachedArgHints = null;\n    this.activeArgHints = null;\n    this.jumpStack = [];\n\n    this.getHint = function(cm, c) { return hint(self, cm, c); };\n    this.getHint.async = true;\n  };\n\n  CodeMirror.TernServer.prototype = {\n    addDoc: function(name, doc) {\n      var data = {doc: doc, name: name, changed: null};\n      this.server.addFile(name, docValue(this, data));\n      CodeMirror.on(doc, \"change\", this.trackChange);\n      return this.docs[name] = data;\n    },\n\n    delDoc: function(id) {\n      var found = resolveDoc(this, id);\n      if (!found) return;\n      CodeMirror.off(found.doc, \"change\", this.trackChange);\n      delete this.docs[found.name];\n      this.server.delFile(found.name);\n    },\n\n    hideDoc: function(id) {\n      closeArgHints(this);\n      var found = resolveDoc(this, id);\n      if (found && found.changed) sendDoc(this, found);\n    },\n\n    complete: function(cm) {\n      cm.showHint({hint: this.getHint});\n    },\n\n    showType: function(cm, pos, c) { showContextInfo(this, cm, pos, \"type\", c); },\n\n    showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, \"documentation\", c); },\n\n    updateArgHints: function(cm) { updateArgHints(this, cm); },\n\n    jumpToDef: function(cm) { jumpToDef(this, cm); },\n\n    jumpBack: function(cm) { jumpBack(this, cm); },\n\n    rename: function(cm) { rename(this, cm); },\n\n    selectName: function(cm) { selectName(this, cm); },\n\n    request: function (cm, query, c, pos) {\n      var self = this;\n      var doc = findDoc(this, cm.getDoc());\n      var request = buildRequest(this, doc, query, pos);\n\n      this.server.request(request, function (error, data) {\n        if (!error && self.options.responseFilter)\n          data = self.options.responseFilter(doc, query, request, error, data);\n        c(error, data);\n      });\n    },\n\n    destroy: function () {\n      if (this.worker) {\n        this.worker.terminate();\n        this.worker = null;\n      }\n    }\n  };\n\n  var Pos = CodeMirror.Pos;\n  var cls = \"CodeMirror-Tern-\";\n  var bigDoc = 250;\n\n  function getFile(ts, name, c) {\n    var buf = ts.docs[name];\n    if (buf)\n      c(docValue(ts, buf));\n    else if (ts.options.getFile)\n      ts.options.getFile(name, c);\n    else\n      c(null);\n  }\n\n  function findDoc(ts, doc, name) {\n    for (var n in ts.docs) {\n      var cur = ts.docs[n];\n      if (cur.doc == doc) return cur;\n    }\n    if (!name) for (var i = 0;; ++i) {\n      n = \"[doc\" + (i || \"\") + \"]\";\n      if (!ts.docs[n]) { name = n; break; }\n    }\n    return ts.addDoc(name, doc);\n  }\n\n  function resolveDoc(ts, id) {\n    if (typeof id == \"string\") return ts.docs[id];\n    if (id instanceof CodeMirror) id = id.getDoc();\n    if (id instanceof CodeMirror.Doc) return findDoc(ts, id);\n  }\n\n  function trackChange(ts, doc, change) {\n    var data = findDoc(ts, doc);\n\n    var argHints = ts.cachedArgHints;\n    if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) <= 0)\n      ts.cachedArgHints = null;\n\n    var changed = data.changed;\n    if (changed == null)\n      data.changed = changed = {from: change.from.line, to: change.from.line};\n    var end = change.from.line + (change.text.length - 1);\n    if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end);\n    if (end >= changed.to) changed.to = end + 1;\n    if (changed.from > change.from.line) changed.from = change.from.line;\n\n    if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() {\n      if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data);\n    }, 200);\n  }\n\n  function sendDoc(ts, doc) {\n    ts.server.request({files: [{type: \"full\", name: doc.name, text: docValue(ts, doc)}]}, function(error) {\n      if (error) window.console.error(error);\n      else doc.changed = null;\n    });\n  }\n\n  // Completion\n\n  function hint(ts, cm, c) {\n    ts.request(cm, {type: \"completions\", types: true, docs: true, urls: true}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var completions = [], after = \"\";\n      var from = data.start, to = data.end;\n      if (cm.getRange(Pos(from.line, from.ch - 2), from) == \"[\\\"\" &&\n          cm.getRange(to, Pos(to.line, to.ch + 2)) != \"\\\"]\")\n        after = \"\\\"]\";\n\n      for (var i = 0; i < data.completions.length; ++i) {\n        var completion = data.completions[i], className = typeToIcon(completion.type);\n        if (data.guess) className += \" \" + cls + \"guess\";\n        completions.push({text: completion.name + after,\n                          displayText: completion.name,\n                          className: className,\n                          data: completion});\n      }\n\n      var obj = {from: from, to: to, list: completions};\n      var tooltip = null;\n      CodeMirror.on(obj, \"close\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"update\", function() { remove(tooltip); });\n      CodeMirror.on(obj, \"select\", function(cur, node) {\n        remove(tooltip);\n        var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc;\n        if (content) {\n          tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset,\n                                node.getBoundingClientRect().top + window.pageYOffset, content);\n          tooltip.className += \" \" + cls + \"hint-doc\";\n        }\n      });\n      c(obj);\n    });\n  }\n\n  function typeToIcon(type) {\n    var suffix;\n    if (type == \"?\") suffix = \"unknown\";\n    else if (type == \"number\" || type == \"string\" || type == \"bool\") suffix = type;\n    else if (/^fn\\(/.test(type)) suffix = \"fn\";\n    else if (/^\\[/.test(type)) suffix = \"array\";\n    else suffix = \"object\";\n    return cls + \"completion \" + cls + \"completion-\" + suffix;\n  }\n\n  // Type queries\n\n  function showContextInfo(ts, cm, pos, queryName, c) {\n    ts.request(cm, queryName, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      if (ts.options.typeTip) {\n        var tip = ts.options.typeTip(data);\n      } else {\n        var tip = elt(\"span\", null, elt(\"strong\", null, data.type || \"not found\"));\n        if (data.doc)\n          tip.appendChild(document.createTextNode(\" — \" + data.doc));\n        if (data.url) {\n          tip.appendChild(document.createTextNode(\" \"));\n          var child = tip.appendChild(elt(\"a\", null, \"[docs]\"));\n          child.href = data.url;\n          child.target = \"_blank\";\n        }\n      }\n      tempTooltip(cm, tip);\n      if (c) c();\n    }, pos);\n  }\n\n  // Maintaining argument hints\n\n  function updateArgHints(ts, cm) {\n    closeArgHints(ts);\n\n    if (cm.somethingSelected()) return;\n    var state = cm.getTokenAt(cm.getCursor()).state;\n    var inner = CodeMirror.innerMode(cm.getMode(), state);\n    if (inner.mode.name != \"javascript\") return;\n    var lex = inner.state.lexical;\n    if (lex.info != \"call\") return;\n\n    var ch, argPos = lex.pos || 0, tabSize = cm.getOption(\"tabSize\");\n    for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) {\n      var str = cm.getLine(line), extra = 0;\n      for (var pos = 0;;) {\n        var tab = str.indexOf(\"\\t\", pos);\n        if (tab == -1) break;\n        extra += tabSize - (tab + extra) % tabSize - 1;\n        pos = tab + 1;\n      }\n      ch = lex.column - extra;\n      if (str.charAt(ch) == \"(\") {found = true; break;}\n    }\n    if (!found) return;\n\n    var start = Pos(line, ch);\n    var cache = ts.cachedArgHints;\n    if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0)\n      return showArgHints(ts, cm, argPos);\n\n    ts.request(cm, {type: \"type\", preferFunction: true, end: start}, function(error, data) {\n      if (error || !data.type || !(/^fn\\(/).test(data.type)) return;\n      ts.cachedArgHints = {\n        start: pos,\n        type: parseFnType(data.type),\n        name: data.exprName || data.name || \"fn\",\n        guess: data.guess,\n        doc: cm.getDoc()\n      };\n      showArgHints(ts, cm, argPos);\n    });\n  }\n\n  function showArgHints(ts, cm, pos) {\n    closeArgHints(ts);\n\n    var cache = ts.cachedArgHints, tp = cache.type;\n    var tip = elt(\"span\", cache.guess ? cls + \"fhint-guess\" : null,\n                  elt(\"span\", cls + \"fname\", cache.name), \"(\");\n    for (var i = 0; i < tp.args.length; ++i) {\n      if (i) tip.appendChild(document.createTextNode(\", \"));\n      var arg = tp.args[i];\n      tip.appendChild(elt(\"span\", cls + \"farg\" + (i == pos ? \" \" + cls + \"farg-current\" : \"\"), arg.name || \"?\"));\n      if (arg.type != \"?\") {\n        tip.appendChild(document.createTextNode(\":\\u00a0\"));\n        tip.appendChild(elt(\"span\", cls + \"type\", arg.type));\n      }\n    }\n    tip.appendChild(document.createTextNode(tp.rettype ? \") ->\\u00a0\" : \")\"));\n    if (tp.rettype) tip.appendChild(elt(\"span\", cls + \"type\", tp.rettype));\n    var place = cm.cursorCoords(null, \"page\");\n    ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip);\n  }\n\n  function parseFnType(text) {\n    var args = [], pos = 3;\n\n    function skipMatching(upto) {\n      var depth = 0, start = pos;\n      for (;;) {\n        var next = text.charAt(pos);\n        if (upto.test(next) && !depth) return text.slice(start, pos);\n        if (/[{\\[\\(]/.test(next)) ++depth;\n        else if (/[}\\]\\)]/.test(next)) --depth;\n        ++pos;\n      }\n    }\n\n    // Parse arguments\n    if (text.charAt(pos) != \")\") for (;;) {\n      var name = text.slice(pos).match(/^([^, \\(\\[\\{]+): /);\n      if (name) {\n        pos += name[0].length;\n        name = name[1];\n      }\n      args.push({name: name, type: skipMatching(/[\\),]/)});\n      if (text.charAt(pos) == \")\") break;\n      pos += 2;\n    }\n\n    var rettype = text.slice(pos).match(/^\\) -> (.*)$/);\n\n    return {args: args, rettype: rettype && rettype[1]};\n  }\n\n  // Moving to the definition of something\n\n  function jumpToDef(ts, cm) {\n    function inner(varName) {\n      var req = {type: \"definition\", variable: varName || null};\n      var doc = findDoc(ts, cm.getDoc());\n      ts.server.request(buildRequest(ts, doc, req), function(error, data) {\n        if (error) return showError(ts, cm, error);\n        if (!data.file && data.url) { window.open(data.url); return; }\n\n        if (data.file) {\n          var localDoc = ts.docs[data.file], found;\n          if (localDoc && (found = findContext(localDoc.doc, data))) {\n            ts.jumpStack.push({file: doc.name,\n                               start: cm.getCursor(\"from\"),\n                               end: cm.getCursor(\"to\")});\n            moveTo(ts, doc, localDoc, found.start, found.end);\n            return;\n          }\n        }\n        showError(ts, cm, \"Could not find a definition.\");\n      });\n    }\n\n    if (!atInterestingExpression(cm))\n      dialog(cm, \"Jump to variable\", function(name) { if (name) inner(name); });\n    else\n      inner();\n  }\n\n  function jumpBack(ts, cm) {\n    var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file];\n    if (!doc) return;\n    moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end);\n  }\n\n  function moveTo(ts, curDoc, doc, start, end) {\n    doc.doc.setSelection(start, end);\n    if (curDoc != doc && ts.options.switchToDoc) {\n      closeArgHints(ts);\n      ts.options.switchToDoc(doc.name, doc.doc);\n    }\n  }\n\n  // The {line,ch} representation of positions makes this rather awkward.\n  function findContext(doc, data) {\n    var before = data.context.slice(0, data.contextOffset).split(\"\\n\");\n    var startLine = data.start.line - (before.length - 1);\n    var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length);\n\n    var text = doc.getLine(startLine).slice(start.ch);\n    for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur)\n      text += \"\\n\" + doc.getLine(cur);\n    if (text.slice(0, data.context.length) == data.context) return data;\n\n    var cursor = doc.getSearchCursor(data.context, 0, false);\n    var nearest, nearestDist = Infinity;\n    while (cursor.findNext()) {\n      var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000;\n      if (!dist) dist = Math.abs(from.ch - start.ch);\n      if (dist < nearestDist) { nearest = from; nearestDist = dist; }\n    }\n    if (!nearest) return null;\n\n    if (before.length == 1)\n      nearest.ch += before[0].length;\n    else\n      nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length);\n    if (data.start.line == data.end.line)\n      var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch));\n    else\n      var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch);\n    return {start: nearest, end: end};\n  }\n\n  function atInterestingExpression(cm) {\n    var pos = cm.getCursor(\"end\"), tok = cm.getTokenAt(pos);\n    if (tok.start < pos.ch && (tok.type == \"comment\" || tok.type == \"string\")) return false;\n    return /\\w/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1));\n  }\n\n  // Variable renaming\n\n  function rename(ts, cm) {\n    var token = cm.getTokenAt(cm.getCursor());\n    if (!/\\w/.test(token.string)) return showError(ts, cm, \"Not at a variable\");\n    dialog(cm, \"New name for \" + token.string, function(newName) {\n      ts.request(cm, {type: \"rename\", newName: newName, fullDocs: true}, function(error, data) {\n        if (error) return showError(ts, cm, error);\n        applyChanges(ts, data.changes);\n      });\n    });\n  }\n\n  function selectName(ts, cm) {\n    var name = findDoc(ts, cm.doc).name;\n    ts.request(cm, {type: \"refs\"}, function(error, data) {\n      if (error) return showError(ts, cm, error);\n      var ranges = [], cur = 0;\n      for (var i = 0; i < data.refs.length; i++) {\n        var ref = data.refs[i];\n        if (ref.file == name) {\n          ranges.push({anchor: ref.start, head: ref.end});\n          if (cmpPos(cur, ref.start) >= 0 && cmpPos(cur, ref.end) <= 0)\n            cur = ranges.length - 1;\n        }\n      }\n      cm.setSelections(ranges, cur);\n    });\n  }\n\n  var nextChangeOrig = 0;\n  function applyChanges(ts, changes) {\n    var perFile = Object.create(null);\n    for (var i = 0; i < changes.length; ++i) {\n      var ch = changes[i];\n      (perFile[ch.file] || (perFile[ch.file] = [])).push(ch);\n    }\n    for (var file in perFile) {\n      var known = ts.docs[file], chs = perFile[file];;\n      if (!known) continue;\n      chs.sort(function(a, b) { return cmpPos(b.start, a.start); });\n      var origin = \"*rename\" + (++nextChangeOrig);\n      for (var i = 0; i < chs.length; ++i) {\n        var ch = chs[i];\n        known.doc.replaceRange(ch.text, ch.start, ch.end, origin);\n      }\n    }\n  }\n\n  // Generic request-building helper\n\n  function buildRequest(ts, doc, query, pos) {\n    var files = [], offsetLines = 0, allowFragments = !query.fullDocs;\n    if (!allowFragments) delete query.fullDocs;\n    if (typeof query == \"string\") query = {type: query};\n    query.lineCharPositions = true;\n    if (query.end == null) {\n      query.end = pos || doc.doc.getCursor(\"end\");\n      if (doc.doc.somethingSelected())\n        query.start = doc.doc.getCursor(\"start\");\n    }\n    var startPos = query.start || query.end;\n\n    if (doc.changed) {\n      if (doc.doc.lineCount() > bigDoc && allowFragments !== false &&\n          doc.changed.to - doc.changed.from < 100 &&\n          doc.changed.from <= startPos.line && doc.changed.to > query.end.line) {\n        files.push(getFragmentAround(doc, startPos, query.end));\n        query.file = \"#0\";\n        var offsetLines = files[0].offsetLines;\n        if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch);\n        query.end = Pos(query.end.line - offsetLines, query.end.ch);\n      } else {\n        files.push({type: \"full\",\n                    name: doc.name,\n                    text: docValue(ts, doc)});\n        query.file = doc.name;\n        doc.changed = null;\n      }\n    } else {\n      query.file = doc.name;\n    }\n    for (var name in ts.docs) {\n      var cur = ts.docs[name];\n      if (cur.changed && cur != doc) {\n        files.push({type: \"full\", name: cur.name, text: docValue(ts, cur)});\n        cur.changed = null;\n      }\n    }\n\n    return {query: query, files: files};\n  }\n\n  function getFragmentAround(data, start, end) {\n    var doc = data.doc;\n    var minIndent = null, minLine = null, endLine, tabSize = 4;\n    for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) {\n      var line = doc.getLine(p), fn = line.search(/\\bfunction\\b/);\n      if (fn < 0) continue;\n      var indent = CodeMirror.countColumn(line, null, tabSize);\n      if (minIndent != null && minIndent <= indent) continue;\n      minIndent = indent;\n      minLine = p;\n    }\n    if (minLine == null) minLine = min;\n    var max = Math.min(doc.lastLine(), end.line + 20);\n    if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize))\n      endLine = max;\n    else for (endLine = end.line + 1; endLine < max; ++endLine) {\n      var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize);\n      if (indent <= minIndent) break;\n    }\n    var from = Pos(minLine, 0);\n\n    return {type: \"part\",\n            name: data.name,\n            offsetLines: from.line,\n            text: doc.getRange(from, Pos(endLine, 0))};\n  }\n\n  // Generic utilities\n\n  var cmpPos = CodeMirror.cmpPos;\n\n  function elt(tagname, cls /*, ... elts*/) {\n    var e = document.createElement(tagname);\n    if (cls) e.className = cls;\n    for (var i = 2; i < arguments.length; ++i) {\n      var elt = arguments[i];\n      if (typeof elt == \"string\") elt = document.createTextNode(elt);\n      e.appendChild(elt);\n    }\n    return e;\n  }\n\n  function dialog(cm, text, f) {\n    if (cm.openDialog)\n      cm.openDialog(text + \": <input type=text>\", f);\n    else\n      f(prompt(text, \"\"));\n  }\n\n  // Tooltips\n\n  function tempTooltip(cm, content) {\n    if (cm.state.ternTooltip) remove(cm.state.ternTooltip);\n    var where = cm.cursorCoords();\n    var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content);\n    function maybeClear() {\n      old = true;\n      if (!mouseOnTip) clear();\n    }\n    function clear() {\n      cm.state.ternTooltip = null;\n      if (!tip.parentNode) return;\n      cm.off(\"cursorActivity\", clear);\n      cm.off('blur', clear);\n      cm.off('scroll', clear);\n      fadeOut(tip);\n    }\n    var mouseOnTip = false, old = false;\n    CodeMirror.on(tip, \"mousemove\", function() { mouseOnTip = true; });\n    CodeMirror.on(tip, \"mouseout\", function(e) {\n      if (!CodeMirror.contains(tip, e.relatedTarget || e.toElement)) {\n        if (old) clear();\n        else mouseOnTip = false;\n      }\n    });\n    setTimeout(maybeClear, 1700);\n    cm.on(\"cursorActivity\", clear);\n    cm.on('blur', clear);\n    cm.on('scroll', clear);\n  }\n\n  function makeTooltip(x, y, content) {\n    var node = elt(\"div\", cls + \"tooltip\", content);\n    node.style.left = x + \"px\";\n    node.style.top = y + \"px\";\n    document.body.appendChild(node);\n    return node;\n  }\n\n  function remove(node) {\n    var p = node && node.parentNode;\n    if (p) p.removeChild(node);\n  }\n\n  function fadeOut(tooltip) {\n    tooltip.style.opacity = \"0\";\n    setTimeout(function() { remove(tooltip); }, 1100);\n  }\n\n  function showError(ts, cm, msg) {\n    if (ts.options.showError)\n      ts.options.showError(cm, msg);\n    else\n      tempTooltip(cm, String(msg));\n  }\n\n  function closeArgHints(ts) {\n    if (ts.activeArgHints) { remove(ts.activeArgHints); ts.activeArgHints = null; }\n  }\n\n  function docValue(ts, doc) {\n    var val = doc.doc.getValue();\n    if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc);\n    return val;\n  }\n\n  // Worker wrapper\n\n  function WorkerServer(ts) {\n    var worker = ts.worker = new Worker(ts.options.workerScript);\n    worker.postMessage({type: \"init\",\n                        defs: ts.options.defs,\n                        plugins: ts.options.plugins,\n                        scripts: ts.options.workerDeps});\n    var msgId = 0, pending = {};\n\n    function send(data, c) {\n      if (c) {\n        data.id = ++msgId;\n        pending[msgId] = c;\n      }\n      worker.postMessage(data);\n    }\n    worker.onmessage = function(e) {\n      var data = e.data;\n      if (data.type == \"getFile\") {\n        getFile(ts, data.name, function(err, text) {\n          send({type: \"getFile\", err: String(err), text: text, id: data.id});\n        });\n      } else if (data.type == \"debug\") {\n        window.console.log(data.message);\n      } else if (data.id && pending[data.id]) {\n        pending[data.id](data.err, data.body);\n        delete pending[data.id];\n      }\n    };\n    worker.onerror = function(e) {\n      for (var id in pending) pending[id](e);\n      pending = {};\n    };\n\n    this.addFile = function(name, text) { send({type: \"add\", name: name, text: text}); };\n    this.delFile = function(name) { send({type: \"del\", name: name}); };\n    this.request = function(body, c) { send({type: \"req\", body: body}, c); };\n  }\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/tern/worker.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// declare global: tern, server\n\nvar server;\n\nthis.onmessage = function(e) {\n  var data = e.data;\n  switch (data.type) {\n  case \"init\": return startServer(data.defs, data.plugins, data.scripts);\n  case \"add\": return server.addFile(data.name, data.text);\n  case \"del\": return server.delFile(data.name);\n  case \"req\": return server.request(data.body, function(err, reqData) {\n    postMessage({id: data.id, body: reqData, err: err && String(err)});\n  });\n  case \"getFile\":\n    var c = pending[data.id];\n    delete pending[data.id];\n    return c(data.err, data.text);\n  default: throw new Error(\"Unknown message type: \" + data.type);\n  }\n};\n\nvar nextId = 0, pending = {};\nfunction getFile(file, c) {\n  postMessage({type: \"getFile\", name: file, id: ++nextId});\n  pending[nextId] = c;\n}\n\nfunction startServer(defs, plugins, scripts) {\n  if (scripts) importScripts.apply(null, scripts);\n\n  server = new tern.Server({\n    getFile: getFile,\n    async: true,\n    defs: defs,\n    plugins: plugins\n  });\n}\n\nvar console = {\n  log: function(v) { postMessage({type: \"debug\", message: v}); }\n};\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/addon/wrap/hardwrap.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var Pos = CodeMirror.Pos;\n\n  function findParagraph(cm, pos, options) {\n    var startRE = options.paragraphStart || cm.getHelper(pos, \"paragraphStart\");\n    for (var start = pos.line, first = cm.firstLine(); start > first; --start) {\n      var line = cm.getLine(start);\n      if (startRE && startRE.test(line)) break;\n      if (!/\\S/.test(line)) { ++start; break; }\n    }\n    var endRE = options.paragraphEnd || cm.getHelper(pos, \"paragraphEnd\");\n    for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) {\n      var line = cm.getLine(end);\n      if (endRE && endRE.test(line)) { ++end; break; }\n      if (!/\\S/.test(line)) break;\n    }\n    return {from: start, to: end};\n  }\n\n  function findBreakPoint(text, column, wrapOn, killTrailingSpace) {\n    for (var at = column; at > 0; --at)\n      if (wrapOn.test(text.slice(at - 1, at + 1))) break;\n    if (at == 0) at = column;\n    var endOfText = at;\n    if (killTrailingSpace)\n      while (text.charAt(endOfText - 1) == \" \") --endOfText;\n    return {from: endOfText, to: at};\n  }\n\n  function wrapRange(cm, from, to, options) {\n    from = cm.clipPos(from); to = cm.clipPos(to);\n    var column = options.column || 80;\n    var wrapOn = options.wrapOn || /\\s\\S|-[^\\.\\d]/;\n    var killTrailing = options.killTrailingSpace !== false;\n    var changes = [], curLine = \"\", curNo = from.line;\n    var lines = cm.getRange(from, to, false);\n    if (!lines.length) return null;\n    var leadingSpace = lines[0].match(/^[ \\t]*/)[0];\n\n    for (var i = 0; i < lines.length; ++i) {\n      var text = lines[i], oldLen = curLine.length, spaceInserted = 0;\n      if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) {\n        curLine += \" \";\n        spaceInserted = 1;\n      }\n      var spaceTrimmed = \"\";\n      if (i) {\n        spaceTrimmed = text.match(/^\\s*/)[0];\n        text = text.slice(spaceTrimmed.length);\n      }\n      curLine += text;\n      if (i) {\n        var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed &&\n          findBreakPoint(curLine, column, wrapOn, killTrailing);\n        // If this isn't broken, or is broken at a different point, remove old break\n        if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) {\n          changes.push({text: [spaceInserted ? \" \" : \"\"],\n                        from: Pos(curNo, oldLen),\n                        to: Pos(curNo + 1, spaceTrimmed.length)});\n        } else {\n          curLine = leadingSpace + text;\n          ++curNo;\n        }\n      }\n      while (curLine.length > column) {\n        var bp = findBreakPoint(curLine, column, wrapOn, killTrailing);\n        changes.push({text: [\"\", leadingSpace],\n                      from: Pos(curNo, bp.from),\n                      to: Pos(curNo, bp.to)});\n        curLine = leadingSpace + curLine.slice(bp.to);\n        ++curNo;\n      }\n    }\n    if (changes.length) cm.operation(function() {\n      for (var i = 0; i < changes.length; ++i) {\n        var change = changes[i];\n        cm.replaceRange(change.text, change.from, change.to);\n      }\n    });\n    return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null;\n  }\n\n  CodeMirror.defineExtension(\"wrapParagraph\", function(pos, options) {\n    options = options || {};\n    if (!pos) pos = this.getCursor();\n    var para = findParagraph(this, pos, options);\n    return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options);\n  });\n\n  CodeMirror.commands.wrapLines = function(cm) {\n    cm.operation(function() {\n      var ranges = cm.listSelections(), at = cm.lastLine() + 1;\n      for (var i = ranges.length - 1; i >= 0; i--) {\n        var range = ranges[i], span;\n        if (range.empty()) {\n          var para = findParagraph(cm, range.head, {});\n          span = {from: Pos(para.from, 0), to: Pos(para.to - 1)};\n        } else {\n          span = {from: range.from(), to: range.to()};\n        }\n        if (span.to.line >= at) continue;\n        at = span.from.line;\n        wrapRange(cm, span.from, span.to, {});\n      }\n    });\n  };\n\n  CodeMirror.defineExtension(\"wrapRange\", function(from, to, options) {\n    return wrapRange(this, from, to, options || {});\n  });\n\n  CodeMirror.defineExtension(\"wrapParagraphsInRange\", function(from, to, options) {\n    options = options || {};\n    var cm = this, paras = [];\n    for (var line = from.line; line <= to.line;) {\n      var para = findParagraph(cm, Pos(line, 0), options);\n      paras.push(para);\n      line = para.to;\n    }\n    var madeChange = false;\n    if (paras.length) cm.operation(function() {\n      for (var i = paras.length - 1; i >= 0; --i)\n        madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options);\n    });\n    return madeChange;\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/bower.json",
    "content": "{\n  \"name\": \"codemirror\",\n  \"version\":\"5.0.0\",\n  \"main\": [\"lib/codemirror.js\", \"lib/codemirror.css\"],\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"components\",\n    \"bin\",\n    \"demo\",\n    \"doc\",\n    \"test\",\n    \"index.html\",\n    \"package.json\"\n  ]\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/lib/codemirror.css",
    "content": "/*!\n// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// This is CodeMirror (http://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n*/\n\n/* BASICS */\n\n.CodeMirror {\n  /* Set height, width, borders, and global font properties here */\n  font-family: monospace;\n  height: 300px;\n  color: black;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n  padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre {\n  padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n  border-right: 1px solid #ddd;\n  background-color: #f7f7f7;\n  white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n  padding: 0 3px 0 5px;\n  min-width: 20px;\n  text-align: right;\n  color: #999;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror div.CodeMirror-cursor {\n  border-left: 1px solid black;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n  border-left: 1px solid silver;\n}\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {\n  width: auto;\n  border: 0;\n  background: #7e7;\n}\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {\n  z-index: 1;\n}\n\n.cm-animate-fat-cursor {\n  width: auto;\n  border: 0;\n  -webkit-animation: blink 1.06s steps(1) infinite;\n  -moz-animation: blink 1.06s steps(1) infinite;\n  animation: blink 1.06s steps(1) infinite;\n}\n@-moz-keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n@-webkit-keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n@keyframes blink {\n  0% { background: #7e7; }\n  50% { background: none; }\n  100% { background: #7e7; }\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\ndiv.CodeMirror-overwrite div.CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-ruler {\n  border-left: 1px solid #ccc;\n  position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3 {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n   the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n  position: relative;\n  overflow: hidden;\n  background: white;\n}\n\n.CodeMirror-scroll {\n  overflow: scroll !important; /* Things will break if this is overridden */\n  /* 30px is the magic margin used to hide the element's real scrollbars */\n  /* See overflow: hidden in .CodeMirror */\n  margin-bottom: -30px; margin-right: -30px;\n  padding-bottom: 30px;\n  height: 100%;\n  outline: none; /* Prevent dragging from highlighting the element */\n  position: relative;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n.CodeMirror-sizer {\n  position: relative;\n  border-right: 30px solid transparent;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n   before actuall scrolling happens, thus preventing shaking and\n   flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n  position: absolute;\n  z-index: 6;\n  display: none;\n}\n.CodeMirror-vscrollbar {\n  right: 0; top: 0;\n  overflow-x: hidden;\n  overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n  bottom: 0; left: 0;\n  overflow-y: hidden;\n  overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n  right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n  left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n  position: absolute; left: 0; top: 0;\n  z-index: 3;\n}\n.CodeMirror-gutter {\n  white-space: normal;\n  height: 100%;\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  display: inline-block;\n  margin-bottom: -30px;\n  /* Hack to make IE7 behave */\n  *zoom:1;\n  *display:inline;\n}\n.CodeMirror-gutter-wrapper {\n  position: absolute;\n  z-index: 4;\n  height: 100%;\n}\n.CodeMirror-gutter-elt {\n  position: absolute;\n  cursor: default;\n  z-index: 4;\n}\n.CodeMirror-gutter-wrapper {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  user-select: none;\n}\n\n.CodeMirror-lines {\n  cursor: text;\n  min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre {\n  /* Reset some styles that the rest of the page might have set */\n  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n  border-width: 0;\n  background: transparent;\n  font-family: inherit;\n  font-size: inherit;\n  margin: 0;\n  white-space: pre;\n  word-wrap: normal;\n  line-height: inherit;\n  color: inherit;\n  z-index: 2;\n  position: relative;\n  overflow: visible;\n  -webkit-tap-highlight-color: transparent;\n}\n.CodeMirror-wrap pre {\n  word-wrap: break-word;\n  white-space: pre-wrap;\n  word-break: normal;\n}\n\n.CodeMirror-linebackground {\n  position: absolute;\n  left: 0; right: 0; top: 0; bottom: 0;\n  z-index: 0;\n}\n\n.CodeMirror-linewidget {\n  position: relative;\n  z-index: 2;\n  overflow: auto;\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-code {\n  outline: none;\n}\n\n.CodeMirror-measure {\n  position: absolute;\n  width: 100%;\n  height: 0;\n  overflow: hidden;\n  visibility: hidden;\n}\n.CodeMirror-measure pre { position: static; }\n\n.CodeMirror div.CodeMirror-cursor {\n  position: absolute;\n  border-right: none;\n  width: 0;\n}\n\ndiv.CodeMirror-cursors {\n  visibility: hidden;\n  position: relative;\n  z-index: 3;\n}\n.CodeMirror-focused div.CodeMirror-cursors {\n  visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror ::selection { background: #d7d4f0; }\n.CodeMirror ::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n  background: #ffa;\n  background: rgba(255, 255, 0, .4);\n}\n\n/* IE7 hack to prevent it from returning funny offsetTops on the spans */\n.CodeMirror span { *vertical-align: text-bottom; }\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n  /* Hide the cursor when printing */\n  .CodeMirror div.CodeMirror-cursors {\n    visibility: hidden;\n  }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/lib/codemirror.js",
    "content": "// CodeMirror v5.0, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// This is CodeMirror (http://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    module.exports = mod();\n  else if (typeof define == \"function\" && define.amd) // AMD\n    return define([], mod);\n  else // Plain browser env\n    this.CodeMirror = mod();\n})(function() {\n  \"use strict\";\n\n  // BROWSER SNIFFING\n\n  // Kludges for bugs and behavior differences that can't be feature\n  // detected are enabled based on userAgent etc sniffing.\n\n  var gecko = /gecko\\/\\d/i.test(navigator.userAgent);\n  var ie_upto10 = /MSIE \\d/.test(navigator.userAgent);\n  var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);\n  var ie = ie_upto10 || ie_11up;\n  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);\n  var webkit = /WebKit\\//.test(navigator.userAgent);\n  var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(navigator.userAgent);\n  var chrome = /Chrome\\//.test(navigator.userAgent);\n  var presto = /Opera\\//.test(navigator.userAgent);\n  var safari = /Apple Computer/.test(navigator.vendor);\n  var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(navigator.userAgent);\n  var phantom = /PhantomJS/.test(navigator.userAgent);\n\n  var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\\/\\w+/.test(navigator.userAgent);\n  // This is woefully incomplete. Suggestions for alternative methods welcome.\n  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent);\n  var mac = ios || /Mac/.test(navigator.platform);\n  var windows = /win/i.test(navigator.platform);\n\n  var presto_version = presto && navigator.userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n  if (presto_version) presto_version = Number(presto_version[1]);\n  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n  var captureRightClick = gecko || (ie && ie_version >= 9);\n\n  // Optimize some code when these features are not used.\n  var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n  // EDITOR CONSTRUCTOR\n\n  // A CodeMirror instance represents an editor. This is the object\n  // that user code is usually dealing with.\n\n  function CodeMirror(place, options) {\n    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);\n\n    this.options = options = options ? copyObj(options) : {};\n    // Determine effective options based on given values and defaults.\n    copyObj(defaults, options, false);\n    setGuttersForLineNumbers(options);\n\n    var doc = options.value;\n    if (typeof doc == \"string\") doc = new Doc(doc, options.mode);\n    this.doc = doc;\n\n    var input = new CodeMirror.inputStyles[options.inputStyle](this);\n    var display = this.display = new Display(place, doc, input);\n    display.wrapper.CodeMirror = this;\n    updateGutters(this);\n    themeChanged(this);\n    if (options.lineWrapping)\n      this.display.wrapper.className += \" CodeMirror-wrap\";\n    if (options.autofocus && !mobile) display.input.focus();\n    initScrollbars(this);\n\n    this.state = {\n      keyMaps: [],  // stores maps added by addKeyMap\n      overlays: [], // highlighting overlays, as added by addOverlay\n      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info\n      overwrite: false, focused: false,\n      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n      pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll\n      draggingText: false,\n      highlight: new Delayed(), // stores highlight worker timeout\n      keySeq: null  // Unfinished key sequence\n    };\n\n    var cm = this;\n\n    // Override magic textarea content restore that IE sometimes does\n    // on our hidden textarea on reload\n    if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);\n\n    registerEventHandlers(this);\n    ensureGlobalHandlers();\n\n    startOperation(this);\n    this.curOp.forceUpdate = true;\n    attachDoc(this, doc);\n\n    if ((options.autofocus && !mobile) || cm.hasFocus())\n      setTimeout(bind(onFocus, this), 20);\n    else\n      onBlur(this);\n\n    for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))\n      optionHandlers[opt](this, options[opt], Init);\n    maybeUpdateLineNumberWidth(this);\n    if (options.finishInit) options.finishInit(this);\n    for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);\n    endOperation(this);\n    // Suppress optimizelegibility in Webkit, since it breaks text\n    // measuring on line wrapping boundaries.\n    if (webkit && options.lineWrapping &&\n        getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n      display.lineDiv.style.textRendering = \"auto\";\n  }\n\n  // DISPLAY CONSTRUCTOR\n\n  // The display handles the DOM integration, both for input reading\n  // and content drawing. It holds references to DOM nodes and\n  // display-related state.\n\n  function Display(place, doc, input) {\n    var d = this;\n    this.input = input;\n\n    // Covers bottom-right square when both scrollbars are present.\n    d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n    d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Covers bottom of gutter when coverGutterNextToScrollbar is on\n    // and h scrollbar is present.\n    d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n    d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n    // Will contain the actual code, positioned to cover the viewport.\n    d.lineDiv = elt(\"div\", null, \"CodeMirror-code\");\n    // Elements are added to these to represent selection and cursors.\n    d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n    d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n    // A visibility: hidden element used to find the size of things.\n    d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n    // When lines outside of the viewport are measured, they are drawn in this.\n    d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n    // Wraps everything that needs to exist inside the vertically-padded coordinate system\n    d.lineSpace = elt(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n                      null, \"position: relative; outline: none\");\n    // Moved around its parent to cover visible view.\n    d.mover = elt(\"div\", [elt(\"div\", [d.lineSpace], \"CodeMirror-lines\")], null, \"position: relative\");\n    // Set to the height of the document, allowing scrolling.\n    d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n    d.sizerWidth = null;\n    // Behavior of elts with overflow: auto and padding is\n    // inconsistent across browsers. This is used to ensure the\n    // scrollable area is big enough.\n    d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n    // Will contain the gutters, if any.\n    d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n    d.lineGutter = null;\n    // Actual scrollable element.\n    d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n    d.scroller.setAttribute(\"tabIndex\", \"-1\");\n    // The element in which the editor lives.\n    d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n    if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;\n\n    if (place) {\n      if (place.appendChild) place.appendChild(d.wrapper);\n      else place(d.wrapper);\n    }\n\n    // Current rendered range (may be bigger than the view window).\n    d.viewFrom = d.viewTo = doc.first;\n    d.reportedViewFrom = d.reportedViewTo = doc.first;\n    // Information about the rendered lines.\n    d.view = [];\n    d.renderedView = null;\n    // Holds info about a single rendered line when it was rendered\n    // for measurement, while not in view.\n    d.externalMeasured = null;\n    // Empty space (in pixels) above the view\n    d.viewOffset = 0;\n    d.lastWrapHeight = d.lastWrapWidth = 0;\n    d.updateLineNumbers = null;\n\n    d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n    d.scrollbarsClipped = false;\n\n    // Used to only resize the line number gutter when necessary (when\n    // the amount of lines crosses a boundary that makes its width change)\n    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n    // Set to true when a non-horizontal-scrolling line widget is\n    // added. As an optimization, line widget aligning is skipped when\n    // this is false.\n    d.alignWidgets = false;\n\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n    // Tracks the maximum line length so that the horizontal scrollbar\n    // can be kept static when scrolling.\n    d.maxLine = null;\n    d.maxLineLength = 0;\n    d.maxLineChanged = false;\n\n    // Used for measuring wheel scrolling granularity\n    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n    // True when shift is held down.\n    d.shift = false;\n\n    // Used to track whether anything happened since the context menu\n    // was opened.\n    d.selForContextMenu = null;\n\n    d.activeTouch = null;\n\n    input.init(d);\n  }\n\n  // STATE UPDATES\n\n  // Used to get the editor into a consistent state again when options change.\n\n  function loadMode(cm) {\n    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);\n    resetModeState(cm);\n  }\n\n  function resetModeState(cm) {\n    cm.doc.iter(function(line) {\n      if (line.stateAfter) line.stateAfter = null;\n      if (line.styles) line.styles = null;\n    });\n    cm.doc.frontier = cm.doc.first;\n    startWorker(cm, 100);\n    cm.state.modeGen++;\n    if (cm.curOp) regChange(cm);\n  }\n\n  function wrappingChanged(cm) {\n    if (cm.options.lineWrapping) {\n      addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      cm.display.sizer.style.minWidth = \"\";\n      cm.display.sizerWidth = null;\n    } else {\n      rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n      findMaxLine(cm);\n    }\n    estimateLineHeights(cm);\n    regChange(cm);\n    clearCaches(cm);\n    setTimeout(function(){updateScrollbars(cm);}, 100);\n  }\n\n  // Returns a function that estimates the height of a line, to use as\n  // first approximation until the line becomes visible (and is thus\n  // properly measurable).\n  function estimateHeight(cm) {\n    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n    return function(line) {\n      if (lineIsHidden(cm.doc, line)) return 0;\n\n      var widgetsHeight = 0;\n      if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {\n        if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;\n      }\n\n      if (wrapping)\n        return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;\n      else\n        return widgetsHeight + th;\n    };\n  }\n\n  function estimateLineHeights(cm) {\n    var doc = cm.doc, est = estimateHeight(cm);\n    doc.iter(function(line) {\n      var estHeight = est(line);\n      if (estHeight != line.height) updateLineHeight(line, estHeight);\n    });\n  }\n\n  function themeChanged(cm) {\n    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n      cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n    clearCaches(cm);\n  }\n\n  function guttersChanged(cm) {\n    updateGutters(cm);\n    regChange(cm);\n    setTimeout(function(){alignHorizontally(cm);}, 20);\n  }\n\n  // Rebuild the gutter elements, ensure the margin to the left of the\n  // code matches their width.\n  function updateGutters(cm) {\n    var gutters = cm.display.gutters, specs = cm.options.gutters;\n    removeChildren(gutters);\n    for (var i = 0; i < specs.length; ++i) {\n      var gutterClass = specs[i];\n      var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + gutterClass));\n      if (gutterClass == \"CodeMirror-linenumbers\") {\n        cm.display.lineGutter = gElt;\n        gElt.style.width = (cm.display.lineNumWidth || 1) + \"px\";\n      }\n    }\n    gutters.style.display = i ? \"\" : \"none\";\n    updateGutterSpace(cm);\n  }\n\n  function updateGutterSpace(cm) {\n    var width = cm.display.gutters.offsetWidth;\n    cm.display.sizer.style.marginLeft = width + \"px\";\n  }\n\n  // Compute the character length of a line, taking into account\n  // collapsed ranges (see markText) that might hide parts, and join\n  // other lines onto it.\n  function lineLength(line) {\n    if (line.height == 0) return 0;\n    var len = line.text.length, merged, cur = line;\n    while (merged = collapsedSpanAtStart(cur)) {\n      var found = merged.find(0, true);\n      cur = found.from.line;\n      len += found.from.ch - found.to.ch;\n    }\n    cur = line;\n    while (merged = collapsedSpanAtEnd(cur)) {\n      var found = merged.find(0, true);\n      len -= cur.text.length - found.from.ch;\n      cur = found.to.line;\n      len += cur.text.length - found.to.ch;\n    }\n    return len;\n  }\n\n  // Find the longest line in the document.\n  function findMaxLine(cm) {\n    var d = cm.display, doc = cm.doc;\n    d.maxLine = getLine(doc, doc.first);\n    d.maxLineLength = lineLength(d.maxLine);\n    d.maxLineChanged = true;\n    doc.iter(function(line) {\n      var len = lineLength(line);\n      if (len > d.maxLineLength) {\n        d.maxLineLength = len;\n        d.maxLine = line;\n      }\n    });\n  }\n\n  // Make sure the gutters options contains the element\n  // \"CodeMirror-linenumbers\" when the lineNumbers option is true.\n  function setGuttersForLineNumbers(options) {\n    var found = indexOf(options.gutters, \"CodeMirror-linenumbers\");\n    if (found == -1 && options.lineNumbers) {\n      options.gutters = options.gutters.concat([\"CodeMirror-linenumbers\"]);\n    } else if (found > -1 && !options.lineNumbers) {\n      options.gutters = options.gutters.slice(0);\n      options.gutters.splice(found, 1);\n    }\n  }\n\n  // SCROLLBARS\n\n  // Prepare DOM reads needed to update the scrollbars. Done in one\n  // shot to minimize update/measure roundtrips.\n  function measureForScrollbars(cm) {\n    var d = cm.display, gutterW = d.gutters.offsetWidth;\n    var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n    return {\n      clientHeight: d.scroller.clientHeight,\n      viewHeight: d.wrapper.clientHeight,\n      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n      viewWidth: d.wrapper.clientWidth,\n      barLeft: cm.options.fixedGutter ? gutterW : 0,\n      docHeight: docH,\n      scrollHeight: docH + scrollGap(cm) + d.barHeight,\n      nativeBarWidth: d.nativeBarWidth,\n      gutterWidth: gutterW\n    };\n  }\n\n  function NativeScrollbars(place, scroll, cm) {\n    this.cm = cm;\n    var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n    var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n    place(vert); place(horiz);\n\n    on(vert, \"scroll\", function() {\n      if (vert.clientHeight) scroll(vert.scrollTop, \"vertical\");\n    });\n    on(horiz, \"scroll\", function() {\n      if (horiz.clientWidth) scroll(horiz.scrollLeft, \"horizontal\");\n    });\n\n    this.checkedOverlay = false;\n    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n    if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\";\n  }\n\n  NativeScrollbars.prototype = copyObj({\n    update: function(measure) {\n      var needsH = measure.scrollWidth > measure.clientWidth + 1;\n      var needsV = measure.scrollHeight > measure.clientHeight + 1;\n      var sWidth = measure.nativeBarWidth;\n\n      if (needsV) {\n        this.vert.style.display = \"block\";\n        this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n        var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n        // A bug in IE8 can cause this value to be negative, so guard it.\n        this.vert.firstChild.style.height =\n          Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n      } else {\n        this.vert.style.display = \"\";\n        this.vert.firstChild.style.height = \"0\";\n      }\n\n      if (needsH) {\n        this.horiz.style.display = \"block\";\n        this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n        this.horiz.style.left = measure.barLeft + \"px\";\n        var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n        this.horiz.firstChild.style.width =\n          (measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n      } else {\n        this.horiz.style.display = \"\";\n        this.horiz.firstChild.style.width = \"0\";\n      }\n\n      if (!this.checkedOverlay && measure.clientHeight > 0) {\n        if (sWidth == 0) this.overlayHack();\n        this.checkedOverlay = true;\n      }\n\n      return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};\n    },\n    setScrollLeft: function(pos) {\n      if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;\n    },\n    setScrollTop: function(pos) {\n      if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;\n    },\n    overlayHack: function() {\n      var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n      this.horiz.style.minHeight = this.vert.style.minWidth = w;\n      var self = this;\n      var barMouseDown = function(e) {\n        if (e_target(e) != self.vert && e_target(e) != self.horiz)\n          operation(self.cm, onMouseDown)(e);\n      };\n      on(this.vert, \"mousedown\", barMouseDown);\n      on(this.horiz, \"mousedown\", barMouseDown);\n    },\n    clear: function() {\n      var parent = this.horiz.parentNode;\n      parent.removeChild(this.horiz);\n      parent.removeChild(this.vert);\n    }\n  }, NativeScrollbars.prototype);\n\n  function NullScrollbars() {}\n\n  NullScrollbars.prototype = copyObj({\n    update: function() { return {bottom: 0, right: 0}; },\n    setScrollLeft: function() {},\n    setScrollTop: function() {},\n    clear: function() {}\n  }, NullScrollbars.prototype);\n\n  CodeMirror.scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n  function initScrollbars(cm) {\n    if (cm.display.scrollbars) {\n      cm.display.scrollbars.clear();\n      if (cm.display.scrollbars.addClass)\n        rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);\n    }\n\n    cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {\n      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n      // Prevent clicks in the scrollbars from killing focus\n      on(node, \"mousedown\", function() {\n        if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);\n      });\n      node.setAttribute(\"cm-not-content\", \"true\");\n    }, function(pos, axis) {\n      if (axis == \"horizontal\") setScrollLeft(cm, pos);\n      else setScrollTop(cm, pos);\n    }, cm);\n    if (cm.display.scrollbars.addClass)\n      addClass(cm.display.wrapper, cm.display.scrollbars.addClass);\n  }\n\n  function updateScrollbars(cm, measure) {\n    if (!measure) measure = measureForScrollbars(cm);\n    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n    updateScrollbarsInner(cm, measure);\n    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n        updateHeightsInViewport(cm);\n      updateScrollbarsInner(cm, measureForScrollbars(cm));\n      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n    }\n  }\n\n  // Re-synchronize the fake scrollbars with the actual size of the\n  // content.\n  function updateScrollbarsInner(cm, measure) {\n    var d = cm.display;\n    var sizes = d.scrollbars.update(measure);\n\n    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n\n    if (sizes.right && sizes.bottom) {\n      d.scrollbarFiller.style.display = \"block\";\n      d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n      d.scrollbarFiller.style.width = sizes.right + \"px\";\n    } else d.scrollbarFiller.style.display = \"\";\n    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n      d.gutterFiller.style.display = \"block\";\n      d.gutterFiller.style.height = sizes.bottom + \"px\";\n      d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n    } else d.gutterFiller.style.display = \"\";\n  }\n\n  // Compute the lines that are visible in a given viewport (defaults\n  // the the current scroll position). viewport may contain top,\n  // height, and ensure (see op.scrollToPos) properties.\n  function visibleLines(display, doc, viewport) {\n    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n    top = Math.floor(top - paddingTop(display));\n    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n    // forces those lines into the viewport (if possible).\n    if (viewport && viewport.ensure) {\n      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n      if (ensureFrom < from) {\n        from = ensureFrom;\n        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n        to = ensureTo;\n      }\n    }\n    return {from: from, to: Math.max(to, from + 1)};\n  }\n\n  // LINE NUMBERS\n\n  // Re-align line numbers and gutter marks to compensate for\n  // horizontal scrolling.\n  function alignHorizontally(cm) {\n    var display = cm.display, view = display.view;\n    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;\n    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n    var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n    for (var i = 0; i < view.length; i++) if (!view[i].hidden) {\n      if (cm.options.fixedGutter && view[i].gutter)\n        view[i].gutter.style.left = left;\n      var align = view[i].alignable;\n      if (align) for (var j = 0; j < align.length; j++)\n        align[j].style.left = left;\n    }\n    if (cm.options.fixedGutter)\n      display.gutters.style.left = (comp + gutterW) + \"px\";\n  }\n\n  // Used to ensure that the line number gutter is still the right\n  // size for the current document size. Returns true when an update\n  // is needed.\n  function maybeUpdateLineNumberWidth(cm) {\n    if (!cm.options.lineNumbers) return false;\n    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n    if (last.length != display.lineNumChars) {\n      var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n                                                 \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n      display.lineGutter.style.width = \"\";\n      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding);\n      display.lineNumWidth = display.lineNumInnerWidth + padding;\n      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n      display.lineGutter.style.width = display.lineNumWidth + \"px\";\n      updateGutterSpace(cm);\n      return true;\n    }\n    return false;\n  }\n\n  function lineNumberFor(options, i) {\n    return String(options.lineNumberFormatter(i + options.firstLineNumber));\n  }\n\n  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n  // but using getBoundingClientRect to get a sub-pixel-accurate\n  // result.\n  function compensateForHScroll(display) {\n    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;\n  }\n\n  // DISPLAY DRAWING\n\n  function DisplayUpdate(cm, viewport, force) {\n    var display = cm.display;\n\n    this.viewport = viewport;\n    // Store some values that we'll need later (but don't want to force a relayout for)\n    this.visible = visibleLines(display, cm.doc, viewport);\n    this.editorIsHidden = !display.wrapper.offsetWidth;\n    this.wrapperHeight = display.wrapper.clientHeight;\n    this.wrapperWidth = display.wrapper.clientWidth;\n    this.oldDisplayWidth = displayWidth(cm);\n    this.force = force;\n    this.dims = getDimensions(cm);\n    this.events = [];\n  }\n\n  DisplayUpdate.prototype.signal = function(emitter, type) {\n    if (hasHandler(emitter, type))\n      this.events.push(arguments);\n  };\n  DisplayUpdate.prototype.finish = function() {\n    for (var i = 0; i < this.events.length; i++)\n      signal.apply(null, this.events[i]);\n  };\n\n  function maybeClipScrollbars(cm) {\n    var display = cm.display;\n    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n      display.heightForcer.style.height = scrollGap(cm) + \"px\";\n      display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n      display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n      display.scrollbarsClipped = true;\n    }\n  }\n\n  // Does the actual updating of the line display. Bails out\n  // (returning false) when there is nothing to be done and forced is\n  // false.\n  function updateDisplayIfNeeded(cm, update) {\n    var display = cm.display, doc = cm.doc;\n\n    if (update.editorIsHidden) {\n      resetView(cm);\n      return false;\n    }\n\n    // Bail out if the visible area is already rendered and nothing changed.\n    if (!update.force &&\n        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n        display.renderedView == display.view && countDirtyView(cm) == 0)\n      return false;\n\n    if (maybeUpdateLineNumberWidth(cm)) {\n      resetView(cm);\n      update.dims = getDimensions(cm);\n    }\n\n    // Compute a suitable new viewport (from & to)\n    var end = doc.first + doc.size;\n    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n    if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);\n    if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);\n    if (sawCollapsedSpans) {\n      from = visualLineNo(cm.doc, from);\n      to = visualLineEndNo(cm.doc, to);\n    }\n\n    var different = from != display.viewFrom || to != display.viewTo ||\n      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n    adjustView(cm, from, to);\n\n    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n    // Position the mover div to align with the current scroll position\n    cm.display.mover.style.top = display.viewOffset + \"px\";\n\n    var toUpdate = countDirtyView(cm);\n    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n      return false;\n\n    // For big changes, we hide the enclosing element during the\n    // update, since that speeds up the operations on most browsers.\n    var focused = activeElt();\n    if (toUpdate > 4) display.lineDiv.style.display = \"none\";\n    patchDisplay(cm, display.updateLineNumbers, update.dims);\n    if (toUpdate > 4) display.lineDiv.style.display = \"\";\n    display.renderedView = display.view;\n    // There might have been a widget with a focused element that got\n    // hidden or updated, if so re-focus it.\n    if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();\n\n    // Prevent selection and cursors from interfering with the scroll\n    // width and height.\n    removeChildren(display.cursorDiv);\n    removeChildren(display.selectionDiv);\n    display.gutters.style.height = 0;\n\n    if (different) {\n      display.lastWrapHeight = update.wrapperHeight;\n      display.lastWrapWidth = update.wrapperWidth;\n      startWorker(cm, 400);\n    }\n\n    display.updateLineNumbers = null;\n\n    return true;\n  }\n\n  function postUpdateDisplay(cm, update) {\n    var force = update.force, viewport = update.viewport;\n    for (var first = true;; first = false) {\n      if (first && cm.options.lineWrapping && update.oldDisplayWidth != displayWidth(cm)) {\n        force = true;\n      } else {\n        force = false;\n        // Clip forced viewport to actual scrollable area.\n        if (viewport && viewport.top != null)\n          viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};\n        // Updated line heights might result in the drawn area not\n        // actually covering the viewport. Keep looping until it does.\n        update.visible = visibleLines(cm.display, cm.doc, viewport);\n        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n          break;\n      }\n      if (!updateDisplayIfNeeded(cm, update)) break;\n      updateHeightsInViewport(cm);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      setDocumentHeight(cm, barMeasure);\n      updateScrollbars(cm, barMeasure);\n    }\n\n    update.signal(cm, \"update\", cm);\n    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n      update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n    }\n  }\n\n  function updateDisplaySimple(cm, viewport) {\n    var update = new DisplayUpdate(cm, viewport);\n    if (updateDisplayIfNeeded(cm, update)) {\n      updateHeightsInViewport(cm);\n      postUpdateDisplay(cm, update);\n      var barMeasure = measureForScrollbars(cm);\n      updateSelection(cm);\n      setDocumentHeight(cm, barMeasure);\n      updateScrollbars(cm, barMeasure);\n      update.finish();\n    }\n  }\n\n  function setDocumentHeight(cm, measure) {\n    cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n    var total = measure.docHeight + cm.display.barHeight;\n    cm.display.heightForcer.style.top = total + \"px\";\n    cm.display.gutters.style.height = Math.max(total + scrollGap(cm), measure.clientHeight) + \"px\";\n  }\n\n  // Read the actual heights of the rendered lines, and update their\n  // stored heights to match.\n  function updateHeightsInViewport(cm) {\n    var display = cm.display;\n    var prevBottom = display.lineDiv.offsetTop;\n    for (var i = 0; i < display.view.length; i++) {\n      var cur = display.view[i], height;\n      if (cur.hidden) continue;\n      if (ie && ie_version < 8) {\n        var bot = cur.node.offsetTop + cur.node.offsetHeight;\n        height = bot - prevBottom;\n        prevBottom = bot;\n      } else {\n        var box = cur.node.getBoundingClientRect();\n        height = box.bottom - box.top;\n      }\n      var diff = cur.line.height - height;\n      if (height < 2) height = textHeight(display);\n      if (diff > .001 || diff < -.001) {\n        updateLineHeight(cur.line, height);\n        updateWidgetHeight(cur.line);\n        if (cur.rest) for (var j = 0; j < cur.rest.length; j++)\n          updateWidgetHeight(cur.rest[j]);\n      }\n    }\n  }\n\n  // Read and store the height of line widgets associated with the\n  // given line.\n  function updateWidgetHeight(line) {\n    if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)\n      line.widgets[i].height = line.widgets[i].node.offsetHeight;\n  }\n\n  // Do a bulk-read of the DOM positions and sizes needed to draw the\n  // view, so that we don't interleave reading and writing to the DOM.\n  function getDimensions(cm) {\n    var d = cm.display, left = {}, width = {};\n    var gutterLeft = d.gutters.clientLeft;\n    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n      left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;\n      width[cm.options.gutters[i]] = n.clientWidth;\n    }\n    return {fixedPos: compensateForHScroll(d),\n            gutterTotalWidth: d.gutters.offsetWidth,\n            gutterLeft: left,\n            gutterWidth: width,\n            wrapperWidth: d.wrapper.clientWidth};\n  }\n\n  // Sync the actual display DOM structure with display.view, removing\n  // nodes for lines that are no longer in view, and creating the ones\n  // that are not there yet, and updating the ones that are out of\n  // date.\n  function patchDisplay(cm, updateNumbersFrom, dims) {\n    var display = cm.display, lineNumbers = cm.options.lineNumbers;\n    var container = display.lineDiv, cur = container.firstChild;\n\n    function rm(node) {\n      var next = node.nextSibling;\n      // Works around a throw-scroll bug in OS X Webkit\n      if (webkit && mac && cm.display.currentWheelTarget == node)\n        node.style.display = \"none\";\n      else\n        node.parentNode.removeChild(node);\n      return next;\n    }\n\n    var view = display.view, lineN = display.viewFrom;\n    // Loop over the elements in the view, syncing cur (the DOM nodes\n    // in display.lineDiv) with the view as we go.\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (lineView.hidden) {\n      } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n        var node = buildLineElement(cm, lineView, lineN, dims);\n        container.insertBefore(node, cur);\n      } else { // Already drawn\n        while (cur != lineView.node) cur = rm(cur);\n        var updateNumber = lineNumbers && updateNumbersFrom != null &&\n          updateNumbersFrom <= lineN && lineView.lineNumber;\n        if (lineView.changes) {\n          if (indexOf(lineView.changes, \"gutter\") > -1) updateNumber = false;\n          updateLineForChanges(cm, lineView, lineN, dims);\n        }\n        if (updateNumber) {\n          removeChildren(lineView.lineNumber);\n          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n        }\n        cur = lineView.node.nextSibling;\n      }\n      lineN += lineView.size;\n    }\n    while (cur) cur = rm(cur);\n  }\n\n  // When an aspect of a line changes, a string is added to\n  // lineView.changes. This updates the relevant part of the line's\n  // DOM structure.\n  function updateLineForChanges(cm, lineView, lineN, dims) {\n    for (var j = 0; j < lineView.changes.length; j++) {\n      var type = lineView.changes[j];\n      if (type == \"text\") updateLineText(cm, lineView);\n      else if (type == \"gutter\") updateLineGutter(cm, lineView, lineN, dims);\n      else if (type == \"class\") updateLineClasses(lineView);\n      else if (type == \"widget\") updateLineWidgets(cm, lineView, dims);\n    }\n    lineView.changes = null;\n  }\n\n  // Lines with gutter elements, widgets or a background class need to\n  // be wrapped, and have the extra elements added to the wrapper div\n  function ensureLineWrapped(lineView) {\n    if (lineView.node == lineView.text) {\n      lineView.node = elt(\"div\", null, null, \"position: relative\");\n      if (lineView.text.parentNode)\n        lineView.text.parentNode.replaceChild(lineView.node, lineView.text);\n      lineView.node.appendChild(lineView.text);\n      if (ie && ie_version < 8) lineView.node.style.zIndex = 2;\n    }\n    return lineView.node;\n  }\n\n  function updateLineBackground(lineView) {\n    var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n    if (cls) cls += \" CodeMirror-linebackground\";\n    if (lineView.background) {\n      if (cls) lineView.background.className = cls;\n      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n    } else if (cls) {\n      var wrap = ensureLineWrapped(lineView);\n      lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n    }\n  }\n\n  // Wrapper around buildLineContent which will reuse the structure\n  // in display.externalMeasured when possible.\n  function getLineContent(cm, lineView) {\n    var ext = cm.display.externalMeasured;\n    if (ext && ext.line == lineView.line) {\n      cm.display.externalMeasured = null;\n      lineView.measure = ext.measure;\n      return ext.built;\n    }\n    return buildLineContent(cm, lineView);\n  }\n\n  // Redraw the line's text. Interacts with the background and text\n  // classes because the mode may output tokens that influence these\n  // classes.\n  function updateLineText(cm, lineView) {\n    var cls = lineView.text.className;\n    var built = getLineContent(cm, lineView);\n    if (lineView.text == lineView.node) lineView.node = built.pre;\n    lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n    lineView.text = built.pre;\n    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n      lineView.bgClass = built.bgClass;\n      lineView.textClass = built.textClass;\n      updateLineClasses(lineView);\n    } else if (cls) {\n      lineView.text.className = cls;\n    }\n  }\n\n  function updateLineClasses(lineView) {\n    updateLineBackground(lineView);\n    if (lineView.line.wrapClass)\n      ensureLineWrapped(lineView).className = lineView.line.wrapClass;\n    else if (lineView.node != lineView.text)\n      lineView.node.className = \"\";\n    var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n    lineView.text.className = textClass || \"\";\n  }\n\n  function updateLineGutter(cm, lineView, lineN, dims) {\n    if (lineView.gutter) {\n      lineView.node.removeChild(lineView.gutter);\n      lineView.gutter = null;\n    }\n    var markers = lineView.line.gutterMarkers;\n    if (cm.options.lineNumbers || markers) {\n      var wrap = ensureLineWrapped(lineView);\n      var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", \"left: \" +\n                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +\n                                             \"px; width: \" + dims.gutterTotalWidth + \"px\");\n      cm.display.input.setUneditable(gutterWrap);\n      wrap.insertBefore(gutterWrap, lineView.text);\n      if (lineView.line.gutterClass)\n        gutterWrap.className += \" \" + lineView.line.gutterClass;\n      if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n        lineView.lineNumber = gutterWrap.appendChild(\n          elt(\"div\", lineNumberFor(cm.options, lineN),\n              \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n              \"left: \" + dims.gutterLeft[\"CodeMirror-linenumbers\"] + \"px; width: \"\n              + cm.display.lineNumInnerWidth + \"px\"));\n      if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {\n        var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];\n        if (found)\n          gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\", \"left: \" +\n                                     dims.gutterLeft[id] + \"px; width: \" + dims.gutterWidth[id] + \"px\"));\n      }\n    }\n  }\n\n  function updateLineWidgets(cm, lineView, dims) {\n    if (lineView.alignable) lineView.alignable = null;\n    for (var node = lineView.node.firstChild, next; node; node = next) {\n      var next = node.nextSibling;\n      if (node.className == \"CodeMirror-linewidget\")\n        lineView.node.removeChild(node);\n    }\n    insertLineWidgets(cm, lineView, dims);\n  }\n\n  // Build a line's DOM representation from scratch\n  function buildLineElement(cm, lineView, lineN, dims) {\n    var built = getLineContent(cm, lineView);\n    lineView.text = lineView.node = built.pre;\n    if (built.bgClass) lineView.bgClass = built.bgClass;\n    if (built.textClass) lineView.textClass = built.textClass;\n\n    updateLineClasses(lineView);\n    updateLineGutter(cm, lineView, lineN, dims);\n    insertLineWidgets(cm, lineView, dims);\n    return lineView.node;\n  }\n\n  // A lineView may contain multiple logical lines (when merged by\n  // collapsed spans). The widgets for all of them need to be drawn.\n  function insertLineWidgets(cm, lineView, dims) {\n    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n    if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)\n      insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);\n  }\n\n  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n    if (!line.widgets) return;\n    var wrap = ensureLineWrapped(lineView);\n    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n      var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\");\n      if (!widget.handleMouseEvents) node.setAttribute(\"cm-ignore-events\", \"true\");\n      positionLineWidget(widget, node, lineView, dims);\n      cm.display.input.setUneditable(node);\n      if (allowAbove && widget.above)\n        wrap.insertBefore(node, lineView.gutter || lineView.text);\n      else\n        wrap.appendChild(node);\n      signalLater(widget, \"redraw\");\n    }\n  }\n\n  function positionLineWidget(widget, node, lineView, dims) {\n    if (widget.noHScroll) {\n      (lineView.alignable || (lineView.alignable = [])).push(node);\n      var width = dims.wrapperWidth;\n      node.style.left = dims.fixedPos + \"px\";\n      if (!widget.coverGutter) {\n        width -= dims.gutterTotalWidth;\n        node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n      }\n      node.style.width = width + \"px\";\n    }\n    if (widget.coverGutter) {\n      node.style.zIndex = 5;\n      node.style.position = \"relative\";\n      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + \"px\";\n    }\n  }\n\n  // POSITION OBJECT\n\n  // A Pos instance represents a position within the text.\n  var Pos = CodeMirror.Pos = function(line, ch) {\n    if (!(this instanceof Pos)) return new Pos(line, ch);\n    this.line = line; this.ch = ch;\n  };\n\n  // Compare two positions, return 0 if they are the same, a negative\n  // number when a is less, and a positive number otherwise.\n  var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };\n\n  function copyPos(x) {return Pos(x.line, x.ch);}\n  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }\n  function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }\n\n  // INPUT HANDLING\n\n  function ensureFocus(cm) {\n    if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }\n  }\n\n  function isReadOnly(cm) {\n    return cm.options.readOnly || cm.doc.cantEdit;\n  }\n\n  // This will be set to an array of strings when copying, so that,\n  // when pasting, we know what kind of selections the copied text\n  // was made out of.\n  var lastCopied = null;\n\n  function applyTextInput(cm, inserted, deleted, sel) {\n    var doc = cm.doc;\n    cm.display.shift = false;\n    if (!sel) sel = doc.sel;\n\n    var textLines = splitLines(inserted), multiPaste = null;\n    // When pasing N lines into N selections, insert one line per selection\n    if (cm.state.pasteIncoming && sel.ranges.length > 1) {\n      if (lastCopied && lastCopied.join(\"\\n\") == inserted)\n        multiPaste = sel.ranges.length % lastCopied.length == 0 && map(lastCopied, splitLines);\n      else if (textLines.length == sel.ranges.length)\n        multiPaste = map(textLines, function(l) { return [l]; });\n    }\n\n    // Normal behavior is to insert the new text into every selection\n    for (var i = sel.ranges.length - 1; i >= 0; i--) {\n      var range = sel.ranges[i];\n      var from = range.from(), to = range.to();\n      if (range.empty()) {\n        if (deleted && deleted > 0) // Handle deletion\n          from = Pos(from.line, from.ch - deleted);\n        else if (cm.state.overwrite && !cm.state.pasteIncoming) // Handle overwrite\n          to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));\n      }\n      var updateInput = cm.curOp.updateInput;\n      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,\n                         origin: cm.state.pasteIncoming ? \"paste\" : cm.state.cutIncoming ? \"cut\" : \"+input\"};\n      makeChange(cm.doc, changeEvent);\n      signalLater(cm, \"inputRead\", cm, changeEvent);\n      // When an 'electric' character is inserted, immediately trigger a reindent\n      if (inserted && !cm.state.pasteIncoming && cm.options.electricChars &&\n          cm.options.smartIndent && range.head.ch < 100 &&\n          (!i || sel.ranges[i - 1].head.line != range.head.line)) {\n        var mode = cm.getModeAt(range.head);\n        var end = changeEnd(changeEvent);\n        if (mode.electricChars) {\n          for (var j = 0; j < mode.electricChars.length; j++)\n            if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n              indentLine(cm, end.line, \"smart\");\n              break;\n            }\n        } else if (mode.electricInput) {\n          if (mode.electricInput.test(getLine(doc, end.line).text.slice(0, end.ch)))\n            indentLine(cm, end.line, \"smart\");\n        }\n      }\n    }\n    ensureCursorVisible(cm);\n    cm.curOp.updateInput = updateInput;\n    cm.curOp.typing = true;\n    cm.state.pasteIncoming = cm.state.cutIncoming = false;\n  }\n\n  function copyableRanges(cm) {\n    var text = [], ranges = [];\n    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n      var line = cm.doc.sel.ranges[i].head.line;\n      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n      ranges.push(lineRange);\n      text.push(cm.getRange(lineRange.anchor, lineRange.head));\n    }\n    return {text: text, ranges: ranges};\n  }\n\n  function disableBrowserMagic(field) {\n    field.setAttribute(\"autocorrect\", \"off\");\n    field.setAttribute(\"autocapitalize\", \"off\");\n    field.setAttribute(\"spellcheck\", \"false\");\n  }\n\n  // TEXTAREA INPUT STYLE\n\n  function TextareaInput(cm) {\n    this.cm = cm;\n    // See input.poll and input.reset\n    this.prevInput = \"\";\n\n    // Flag that indicates whether we expect input to appear real soon\n    // now (after some event like 'keypress' or 'input') and are\n    // polling intensively.\n    this.pollingFast = false;\n    // Self-resetting timeout for the poller\n    this.polling = new Delayed();\n    // Tracks when input.reset has punted to just putting a short\n    // string into the textarea instead of the full selection.\n    this.inaccurateSelection = false;\n    // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n    this.hasSelection = false;\n  };\n\n  function hiddenTextarea() {\n    var te = elt(\"textarea\", null, null, \"position: absolute; padding: 0; width: 1px; height: 1em; outline: none\");\n    var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n    // The textarea is kept positioned near the cursor to prevent the\n    // fact that it'll be scrolled into view on input from scrolling\n    // our fake cursor out of view. On webkit, when wrap=off, paste is\n    // very slow. So make the area wide instead.\n    if (webkit) te.style.width = \"1000px\";\n    else te.setAttribute(\"wrap\", \"off\");\n    // If border: 0; -- iOS fails to open keyboard (issue #1287)\n    if (ios) te.style.border = \"1px solid black\";\n    disableBrowserMagic(te);\n    return div;\n  }\n\n  TextareaInput.prototype = copyObj({\n    init: function(display) {\n      var input = this, cm = this.cm;\n\n      // Wraps and hides input textarea\n      var div = this.wrapper = hiddenTextarea();\n      // The semihidden textarea that is focused when the editor is\n      // focused, and receives input.\n      var te = this.textarea = div.firstChild;\n      display.wrapper.insertBefore(div, display.wrapper.firstChild);\n\n      // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n      if (ios) te.style.width = \"0px\";\n\n      on(te, \"input\", function() {\n        if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;\n        input.poll();\n      });\n\n      on(te, \"paste\", function() {\n        // Workaround for webkit bug https://bugs.webkit.org/show_bug.cgi?id=90206\n        // Add a char to the end of textarea before paste occur so that\n        // selection doesn't span to the end of textarea.\n        if (webkit && !cm.state.fakedLastChar && !(new Date - cm.state.lastMiddleDown < 200)) {\n          var start = te.selectionStart, end = te.selectionEnd;\n          te.value += \"$\";\n          // The selection end needs to be set before the start, otherwise there\n          // can be an intermediate non-empty selection between the two, which\n          // can override the middle-click paste buffer on linux and cause the\n          // wrong thing to get pasted.\n          te.selectionEnd = end;\n          te.selectionStart = start;\n          cm.state.fakedLastChar = true;\n        }\n        cm.state.pasteIncoming = true;\n        input.fastPoll();\n      });\n\n      function prepareCopyCut(e) {\n        if (cm.somethingSelected()) {\n          lastCopied = cm.getSelections();\n          if (input.inaccurateSelection) {\n            input.prevInput = \"\";\n            input.inaccurateSelection = false;\n            te.value = lastCopied.join(\"\\n\");\n            selectInput(te);\n          }\n        } else {\n          var ranges = copyableRanges(cm);\n          lastCopied = ranges.text;\n          if (e.type == \"cut\") {\n            cm.setSelections(ranges.ranges, null, sel_dontScroll);\n          } else {\n            input.prevInput = \"\";\n            te.value = ranges.text.join(\"\\n\");\n            selectInput(te);\n          }\n        }\n        if (e.type == \"cut\") cm.state.cutIncoming = true;\n      }\n      on(te, \"cut\", prepareCopyCut);\n      on(te, \"copy\", prepareCopyCut);\n\n      on(display.scroller, \"paste\", function(e) {\n        if (eventInWidget(display, e)) return;\n        cm.state.pasteIncoming = true;\n        input.focus();\n      });\n\n      // Prevent normal selection in the editor (we handle our own)\n      on(display.lineSpace, \"selectstart\", function(e) {\n        if (!eventInWidget(display, e)) e_preventDefault(e);\n      });\n    },\n\n    prepareSelection: function() {\n      // Redraw the selection and/or cursor\n      var cm = this.cm, display = cm.display, doc = cm.doc;\n      var result = prepareSelection(cm);\n\n      // Move the hidden textarea near the cursor to prevent scrolling artifacts\n      if (cm.options.moveInputWithCursor) {\n        var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n        var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n        result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n                                            headPos.top + lineOff.top - wrapOff.top));\n        result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n                                             headPos.left + lineOff.left - wrapOff.left));\n      }\n\n      return result;\n    },\n\n    showSelection: function(drawn) {\n      var cm = this.cm, display = cm.display;\n      removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n      removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n      if (drawn.teTop != null) {\n        this.wrapper.style.top = drawn.teTop + \"px\";\n        this.wrapper.style.left = drawn.teLeft + \"px\";\n      }\n    },\n\n    // Reset the input to correspond to the selection (or to be empty,\n    // when not typing and nothing is selected)\n    reset: function(typing) {\n      if (this.contextMenuPending) return;\n      var minimal, selected, cm = this.cm, doc = cm.doc;\n      if (cm.somethingSelected()) {\n        this.prevInput = \"\";\n        var range = doc.sel.primary();\n        minimal = hasCopyEvent &&\n          (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);\n        var content = minimal ? \"-\" : selected || cm.getSelection();\n        this.textarea.value = content;\n        if (cm.state.focused) selectInput(this.textarea);\n        if (ie && ie_version >= 9) this.hasSelection = content;\n      } else if (!typing) {\n        this.prevInput = this.textarea.value = \"\";\n        if (ie && ie_version >= 9) this.hasSelection = null;\n      }\n      this.inaccurateSelection = minimal;\n    },\n\n    getField: function() { return this.textarea; },\n\n    supportsTouch: function() { return false; },\n\n    focus: function() {\n      if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n        try { this.textarea.focus(); }\n        catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n      }\n    },\n\n    blur: function() { this.textarea.blur(); },\n\n    resetPosition: function() {\n      this.wrapper.style.top = this.wrapper.style.left = 0;\n    },\n\n    receivedFocus: function() { this.slowPoll(); },\n\n    // Poll for input changes, using the normal rate of polling. This\n    // runs as long as the editor is focused.\n    slowPoll: function() {\n      var input = this;\n      if (input.pollingFast) return;\n      input.polling.set(this.cm.options.pollInterval, function() {\n        input.poll();\n        if (input.cm.state.focused) input.slowPoll();\n      });\n    },\n\n    // When an event has just come in that is likely to add or change\n    // something in the input textarea, we poll faster, to ensure that\n    // the change appears on the screen quickly.\n    fastPoll: function() {\n      var missed = false, input = this;\n      input.pollingFast = true;\n      function p() {\n        var changed = input.poll();\n        if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n        else {input.pollingFast = false; input.slowPoll();}\n      }\n      input.polling.set(20, p);\n    },\n\n    // Read input from the textarea, and update the document to match.\n    // When something is selected, it is present in the textarea, and\n    // selected (unless it is huge, in which case a placeholder is\n    // used). When nothing is selected, the cursor sits after previously\n    // seen text (can be empty), which is stored in prevInput (we must\n    // not reset the textarea when typing, because that breaks IME).\n    poll: function() {\n      var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n      // Since this is called a *lot*, try to bail out as cheaply as\n      // possible when it is clear that nothing happened. hasSelection\n      // will be the case when there is a lot of text in the textarea,\n      // in which case reading its value would be expensive.\n      if (!cm.state.focused || (hasSelection(input) && !prevInput) ||\n          isReadOnly(cm) || cm.options.disableInput || cm.state.keySeq)\n        return false;\n      // See paste handler for more on the fakedLastChar kludge\n      if (cm.state.pasteIncoming && cm.state.fakedLastChar) {\n        input.value = input.value.substring(0, input.value.length - 1);\n        cm.state.fakedLastChar = false;\n      }\n      var text = input.value;\n      // If nothing changed, bail.\n      if (text == prevInput && !cm.somethingSelected()) return false;\n      // Work around nonsensical selection resetting in IE9/10, and\n      // inexplicable appearance of private area unicode characters on\n      // some key combos in Mac (#2689).\n      if (ie && ie_version >= 9 && this.hasSelection === text ||\n          mac && /[\\uf700-\\uf7ff]/.test(text)) {\n        cm.display.input.reset();\n        return false;\n      }\n\n      if (text.charCodeAt(0) == 0x200b && cm.doc.sel == cm.display.selForContextMenu && !prevInput)\n        prevInput = \"\\u200b\";\n      // Find the part of the input that is actually new\n      var same = 0, l = Math.min(prevInput.length, text.length);\n      while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;\n\n      var self = this;\n      runInOp(cm, function() {\n        applyTextInput(cm, text.slice(same), prevInput.length - same);\n\n        // Don't leave long text in the textarea, since it makes further polling slow\n        if (text.length > 1000 || text.indexOf(\"\\n\") > -1) input.value = self.prevInput = \"\";\n        else self.prevInput = text;\n      });\n      return true;\n    },\n\n    ensurePolled: function() {\n      if (this.pollingFast && this.poll()) this.pollingFast = false;\n    },\n\n    onKeyPress: function() {\n      if (ie && ie_version >= 9) this.hasSelection = null;\n      this.fastPoll();\n    },\n\n    onContextMenu: function(e) {\n      var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n      var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n      if (!pos || presto) return; // Opera is difficult.\n\n      // Reset the current text selection only if the click is done outside of the selection\n      // and 'resetSelectionOnContextMenu' option is true.\n      var reset = cm.options.resetSelectionOnContextMenu;\n      if (reset && cm.doc.sel.contains(pos) == -1)\n        operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);\n\n      var oldCSS = te.style.cssText;\n      input.wrapper.style.position = \"absolute\";\n      te.style.cssText = \"position: fixed; width: 30px; height: 30px; top: \" + (e.clientY - 5) +\n        \"px; left: \" + (e.clientX - 5) + \"px; z-index: 1000; background: \" +\n        (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") +\n        \"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)\n      display.input.focus();\n      if (webkit) window.scrollTo(null, oldScrollY);\n      display.input.reset();\n      // Adds \"Select all\" to context menu in FF\n      if (!cm.somethingSelected()) te.value = input.prevInput = \" \";\n      input.contextMenuPending = true;\n      display.selForContextMenu = cm.doc.sel;\n      clearTimeout(display.detectingSelectAll);\n\n      // Select-all will be greyed out if there's nothing to select, so\n      // this adds a zero-width space so that we can later check whether\n      // it got selected.\n      function prepareSelectAllHack() {\n        if (te.selectionStart != null) {\n          var selected = cm.somethingSelected();\n          var extval = te.value = \"\\u200b\" + (selected ? te.value : \"\");\n          input.prevInput = selected ? \"\" : \"\\u200b\";\n          te.selectionStart = 1; te.selectionEnd = extval.length;\n          // Re-set this, in case some other handler touched the\n          // selection in the meantime.\n          display.selForContextMenu = cm.doc.sel;\n        }\n      }\n      function rehide() {\n        input.contextMenuPending = false;\n        input.wrapper.style.position = \"relative\";\n        te.style.cssText = oldCSS;\n        if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);\n\n        // Try to detect the user choosing select-all\n        if (te.selectionStart != null) {\n          if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();\n          var i = 0, poll = function() {\n            if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0)\n              operation(cm, commands.selectAll)(cm);\n            else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);\n            else display.input.reset();\n          };\n          display.detectingSelectAll = setTimeout(poll, 200);\n        }\n      }\n\n      if (ie && ie_version >= 9) prepareSelectAllHack();\n      if (captureRightClick) {\n        e_stop(e);\n        var mouseup = function() {\n          off(window, \"mouseup\", mouseup);\n          setTimeout(rehide, 20);\n        };\n        on(window, \"mouseup\", mouseup);\n      } else {\n        setTimeout(rehide, 50);\n      }\n    },\n\n    setUneditable: nothing,\n\n    needsContentAttribute: false\n  }, TextareaInput.prototype);\n\n  // CONTENTEDITABLE INPUT STYLE\n\n  function ContentEditableInput(cm) {\n    this.cm = cm;\n    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n    this.polling = new Delayed();\n  }\n\n  ContentEditableInput.prototype = copyObj({\n    init: function(display) {\n      var input = this, cm = input.cm;\n      var div = input.div = display.lineDiv;\n      div.contentEditable = \"true\";\n      disableBrowserMagic(div);\n\n      on(div, \"paste\", function(e) {\n        var pasted = e.clipboardData && e.clipboardData.getData(\"text/plain\");\n        if (pasted) {\n          e.preventDefault();\n          cm.replaceSelection(pasted, null, \"paste\");\n        }\n      });\n\n      on(div, \"compositionstart\", function(e) {\n        var data = e.data;\n        input.composing = {sel: cm.doc.sel, data: data, startData: data};\n        if (!data) return;\n        var prim = cm.doc.sel.primary();\n        var line = cm.getLine(prim.head.line);\n        var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));\n        if (found > -1 && found <= prim.head.ch)\n          input.composing.sel = simpleSelection(Pos(prim.head.line, found),\n                                                Pos(prim.head.line, found + data.length));\n      });\n      on(div, \"compositionupdate\", function(e) {\n        input.composing.data = e.data;\n      });\n      on(div, \"compositionend\", function(e) {\n        var ours = input.composing;\n        if (!ours) return;\n        if (e.data != ours.startData && !/\\u200b/.test(e.data))\n          ours.data = e.data;\n        // Need a small delay to prevent other code (input event,\n        // selection polling) from doing damage when fired right after\n        // compositionend.\n        setTimeout(function() {\n          if (!ours.handled)\n            input.applyComposition(ours);\n          if (input.composing == ours)\n            input.composing = null;\n        }, 50);\n      });\n\n      on(div, \"touchstart\", function() {\n        input.forceCompositionEnd();\n      });\n\n      on(div, \"input\", function() {\n        if (input.composing) return;\n        if (!input.pollContent())\n          runInOp(input.cm, function() {regChange(cm);});\n      });\n\n      function onCopyCut(e) {\n        if (cm.somethingSelected()) {\n          lastCopied = cm.getSelections();\n          if (e.type == \"cut\") cm.replaceSelection(\"\", null, \"cut\");\n        } else {\n          var ranges = copyableRanges(cm);\n          lastCopied = ranges.text;\n          if (e.type == \"cut\") {\n            cm.operation(function() {\n              cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n              cm.replaceSelection(\"\", null, \"cut\");\n            });\n          }\n        }\n        // iOS exposes the clipboard API, but seems to discard content inserted into it\n        if (e.clipboardData && !ios) {\n          e.preventDefault();\n          e.clipboardData.clearData();\n          e.clipboardData.setData(\"text/plain\", lastCopied.join(\"\\n\"));\n        } else {\n          // Old-fashioned briefly-focus-a-textarea hack\n          var kludge = hiddenTextarea(), te = kludge.firstChild;\n          cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n          te.value = lastCopied.join(\"\\n\");\n          var hadFocus = document.activeElement;\n          selectInput(te);\n          setTimeout(function() {\n            cm.display.lineSpace.removeChild(kludge);\n            hadFocus.focus();\n          }, 50);\n        }\n      }\n      on(div, \"copy\", onCopyCut);\n      on(div, \"cut\", onCopyCut);\n    },\n\n    prepareSelection: function() {\n      var result = prepareSelection(this.cm, false);\n      result.focus = this.cm.state.focused;\n      return result;\n    },\n\n    showSelection: function(info) {\n      if (!info || !this.cm.display.view.length) return;\n      if (info.focus) this.showPrimarySelection();\n      this.showMultipleSelections(info);\n    },\n\n    showPrimarySelection: function() {\n      var sel = window.getSelection(), prim = this.cm.doc.sel.primary();\n      var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);\n      var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);\n      if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n          cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&\n          cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)\n        return;\n\n      var start = posToDOM(this.cm, prim.from());\n      var end = posToDOM(this.cm, prim.to());\n      if (!start && !end) return;\n\n      var view = this.cm.display.view;\n      var old = sel.rangeCount && sel.getRangeAt(0);\n      if (!start) {\n        start = {node: view[0].measure.map[2], offset: 0};\n      } else if (!end) { // FIXME dangerously hacky\n        var measure = view[view.length - 1].measure;\n        var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n        end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n      }\n\n      try { var rng = range(start.node, start.offset, end.offset, end.node); }\n      catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n      if (rng) {\n        sel.removeAllRanges();\n        sel.addRange(rng);\n        if (old && sel.anchorNode == null) sel.addRange(old);\n      }\n      this.rememberSelection();\n    },\n\n    showMultipleSelections: function(info) {\n      removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n      removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n    },\n\n    rememberSelection: function() {\n      var sel = window.getSelection();\n      this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n      this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n    },\n\n    selectionInEditor: function() {\n      var sel = window.getSelection();\n      if (!sel.rangeCount) return false;\n      var node = sel.getRangeAt(0).commonAncestorContainer;\n      return contains(this.div, node);\n    },\n\n    focus: function() {\n      if (this.cm.options.readOnly != \"nocursor\") this.div.focus();\n    },\n    blur: function() { this.div.blur(); },\n    getField: function() { return this.div; },\n\n    supportsTouch: function() { return true; },\n\n    receivedFocus: function() {\n      var input = this;\n      if (this.selectionInEditor())\n        this.pollSelection();\n      else\n        runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });\n\n      function poll() {\n        if (input.cm.state.focused) {\n          input.pollSelection();\n          input.polling.set(input.cm.options.pollInterval, poll);\n        }\n      }\n      this.polling.set(this.cm.options.pollInterval, poll);\n    },\n\n    pollSelection: function() {\n      if (this.composing) return;\n\n      var sel = window.getSelection(), cm = this.cm;\n      if (sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n          sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset) {\n        this.rememberSelection();\n        var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n        var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n        if (anchor && head) runInOp(cm, function() {\n          setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n          if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;\n        });\n      }\n    },\n\n    pollContent: function() {\n      var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n      var from = sel.from(), to = sel.to();\n      if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;\n\n      var fromIndex;\n      if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n        var fromLine = lineNo(display.view[0].line);\n        var fromNode = display.view[0].node;\n      } else {\n        var fromLine = lineNo(display.view[fromIndex].line);\n        var fromNode = display.view[fromIndex - 1].node.nextSibling;\n      }\n      var toIndex = findViewIndex(cm, to.line);\n      if (toIndex == display.view.length - 1) {\n        var toLine = display.viewTo - 1;\n        var toNode = display.view[toIndex].node;\n      } else {\n        var toLine = lineNo(display.view[toIndex + 1].line) - 1;\n        var toNode = display.view[toIndex + 1].node.previousSibling;\n      }\n\n      var newText = splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n      var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n      while (newText.length > 1 && oldText.length > 1) {\n        if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n        else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n        else break;\n      }\n\n      var cutFront = 0, cutEnd = 0;\n      var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n      while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n        ++cutFront;\n      var newBot = lst(newText), oldBot = lst(oldText);\n      var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n                               oldBot.length - (oldText.length == 1 ? cutFront : 0));\n      while (cutEnd < maxCutEnd &&\n             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n        ++cutEnd;\n\n      newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);\n      newText[0] = newText[0].slice(cutFront);\n\n      var chFrom = Pos(fromLine, cutFront);\n      var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n      if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n        replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n        return true;\n      }\n    },\n\n    ensurePolled: function() {\n      this.forceCompositionEnd();\n    },\n    reset: function() {\n      this.forceCompositionEnd();\n    },\n    forceCompositionEnd: function() {\n      if (!this.composing || this.composing.handled) return;\n      this.applyComposition(this.composing);\n      this.composing.handled = true;\n      this.div.blur();\n      this.div.focus();\n    },\n    applyComposition: function(composing) {\n      if (composing.data && composing.data != composing.startData)\n        operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);\n    },\n\n    setUneditable: function(node) {\n      node.setAttribute(\"contenteditable\", \"false\");\n    },\n\n    onKeyPress: function(e) {\n      e.preventDefault();\n      operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);\n    },\n\n    onContextMenu: nothing,\n    resetPosition: nothing,\n\n    needsContentAttribute: true\n  }, ContentEditableInput.prototype);\n\n  function posToDOM(cm, pos) {\n    var view = findViewForLine(cm, pos.line);\n    if (!view || view.hidden) return null;\n    var line = getLine(cm.doc, pos.line);\n    var info = mapFromLineView(view, line, pos.line);\n\n    var order = getOrder(line), side = \"left\";\n    if (order) {\n      var partPos = getBidiPartAt(order, pos.ch);\n      side = partPos % 2 ? \"right\" : \"left\";\n    }\n    var result = nodeAndOffsetInLineMap(info.map, pos.ch, \"left\");\n    result.offset = result.collapse == \"right\" ? result.end : result.start;\n    return result;\n  }\n\n  function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }\n\n  function domToPos(cm, node, offset) {\n    var lineNode;\n    if (node == cm.display.lineDiv) {\n      lineNode = cm.display.lineDiv.childNodes[offset];\n      if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);\n      node = null; offset = 0;\n    } else {\n      for (lineNode = node;; lineNode = lineNode.parentNode) {\n        if (!lineNode || lineNode == cm.display.lineDiv) return null;\n        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;\n      }\n    }\n    for (var i = 0; i < cm.display.view.length; i++) {\n      var lineView = cm.display.view[i];\n      if (lineView.node == lineNode)\n        return locateNodeInLineView(lineView, node, offset);\n    }\n  }\n\n  function locateNodeInLineView(lineView, node, offset) {\n    var wrapper = lineView.text.firstChild, bad = false;\n    if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);\n    if (node == wrapper) {\n      bad = true;\n      node = wrapper.childNodes[offset];\n      offset = 0;\n      if (!node) {\n        var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n        return badPos(Pos(lineNo(line), line.text.length), bad);\n      }\n    }\n\n    var textNode = node.nodeType == 3 ? node : null, topNode = node;\n    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n      textNode = node.firstChild;\n      if (offset) offset = textNode.nodeValue.length;\n    }\n    while (topNode.parentNode != wrapper) topNode = topNode.parentNode;\n    var measure = lineView.measure, maps = measure.maps;\n\n    function find(textNode, topNode, offset) {\n      for (var i = -1; i < (maps ? maps.length : 0); i++) {\n        var map = i < 0 ? measure.map : maps[i];\n        for (var j = 0; j < map.length; j += 3) {\n          var curNode = map[j + 2];\n          if (curNode == textNode || curNode == topNode) {\n            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n            var ch = map[j] + offset;\n            if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];\n            return Pos(line, ch);\n          }\n        }\n      }\n    }\n    var found = find(textNode, topNode, offset);\n    if (found) return badPos(found, bad);\n\n    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n      found = find(after, after.firstChild, 0);\n      if (found)\n        return badPos(Pos(found.line, found.ch - dist), bad);\n      else\n        dist += after.textContent.length;\n    }\n    for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {\n      found = find(before, before.firstChild, -1);\n      if (found)\n        return badPos(Pos(found.line, found.ch + dist), bad);\n      else\n        dist += after.textContent.length;\n    }\n  }\n\n  function domTextBetween(cm, from, to, fromLine, toLine) {\n    var text = \"\", closing = false;\n    function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }\n    function walk(node) {\n      if (node.nodeType == 1) {\n        var cmText = node.getAttribute(\"cm-text\");\n        if (cmText != null) {\n          if (cmText == \"\") cmText = node.textContent.replace(/\\u200b/g, \"\");\n          text += cmText;\n          return;\n        }\n        var markerID = node.getAttribute(\"cm-marker\"), range;\n        if (markerID) {\n          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n          if (found.length && (range = found[0].find()))\n            text += getBetween(cm.doc, range.from, range.to).join(\"\\n\");\n          return;\n        }\n        if (node.getAttribute(\"contenteditable\") == \"false\") return;\n        for (var i = 0; i < node.childNodes.length; i++)\n          walk(node.childNodes[i]);\n        if (/^(pre|div|p)$/i.test(node.nodeName))\n          closing = true;\n      } else if (node.nodeType == 3) {\n        var val = node.nodeValue;\n        if (!val) return;\n        if (closing) {\n          text += \"\\n\";\n          closing = false;\n        }\n        text += val;\n      }\n    }\n    for (;;) {\n      walk(from);\n      if (from == to) break;\n      from = from.nextSibling;\n    }\n    return text;\n  }\n\n  CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n  // SELECTION / CURSOR\n\n  // Selection objects are immutable. A new one is created every time\n  // the selection changes. A selection is one or more non-overlapping\n  // (and non-touching) ranges, sorted, and an integer that indicates\n  // which one is the primary selection (the one that's scrolled into\n  // view, that getCursor returns, etc).\n  function Selection(ranges, primIndex) {\n    this.ranges = ranges;\n    this.primIndex = primIndex;\n  }\n\n  Selection.prototype = {\n    primary: function() { return this.ranges[this.primIndex]; },\n    equals: function(other) {\n      if (other == this) return true;\n      if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;\n      for (var i = 0; i < this.ranges.length; i++) {\n        var here = this.ranges[i], there = other.ranges[i];\n        if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;\n      }\n      return true;\n    },\n    deepCopy: function() {\n      for (var out = [], i = 0; i < this.ranges.length; i++)\n        out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));\n      return new Selection(out, this.primIndex);\n    },\n    somethingSelected: function() {\n      for (var i = 0; i < this.ranges.length; i++)\n        if (!this.ranges[i].empty()) return true;\n      return false;\n    },\n    contains: function(pos, end) {\n      if (!end) end = pos;\n      for (var i = 0; i < this.ranges.length; i++) {\n        var range = this.ranges[i];\n        if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n          return i;\n      }\n      return -1;\n    }\n  };\n\n  function Range(anchor, head) {\n    this.anchor = anchor; this.head = head;\n  }\n\n  Range.prototype = {\n    from: function() { return minPos(this.anchor, this.head); },\n    to: function() { return maxPos(this.anchor, this.head); },\n    empty: function() {\n      return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;\n    }\n  };\n\n  // Take an unsorted, potentially overlapping set of ranges, and\n  // build a selection out of it. 'Consumes' ranges array (modifying\n  // it).\n  function normalizeSelection(ranges, primIndex) {\n    var prim = ranges[primIndex];\n    ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });\n    primIndex = indexOf(ranges, prim);\n    for (var i = 1; i < ranges.length; i++) {\n      var cur = ranges[i], prev = ranges[i - 1];\n      if (cmp(prev.to(), cur.from()) >= 0) {\n        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n        if (i <= primIndex) --primIndex;\n        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n      }\n    }\n    return new Selection(ranges, primIndex);\n  }\n\n  function simpleSelection(anchor, head) {\n    return new Selection([new Range(anchor, head || anchor)], 0);\n  }\n\n  // Most of the external API clips given positions to make sure they\n  // actually exist within the document.\n  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}\n  function clipPos(doc, pos) {\n    if (pos.line < doc.first) return Pos(doc.first, 0);\n    var last = doc.first + doc.size - 1;\n    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);\n    return clipToLen(pos, getLine(doc, pos.line).text.length);\n  }\n  function clipToLen(pos, linelen) {\n    var ch = pos.ch;\n    if (ch == null || ch > linelen) return Pos(pos.line, linelen);\n    else if (ch < 0) return Pos(pos.line, 0);\n    else return pos;\n  }\n  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}\n  function clipPosArray(doc, array) {\n    for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);\n    return out;\n  }\n\n  // SELECTION UPDATES\n\n  // The 'scroll' parameter given to many of these indicated whether\n  // the new cursor position should be scrolled into view after\n  // modifying the selection.\n\n  // If shift is held or the extend flag is set, extends a range to\n  // include a given position (and optionally a second position).\n  // Otherwise, simply returns the range between the given positions.\n  // Used for cursor motion and such.\n  function extendRange(doc, range, head, other) {\n    if (doc.cm && doc.cm.display.shift || doc.extend) {\n      var anchor = range.anchor;\n      if (other) {\n        var posBefore = cmp(head, anchor) < 0;\n        if (posBefore != (cmp(other, anchor) < 0)) {\n          anchor = head;\n          head = other;\n        } else if (posBefore != (cmp(head, other) < 0)) {\n          head = other;\n        }\n      }\n      return new Range(anchor, head);\n    } else {\n      return new Range(other || head, head);\n    }\n  }\n\n  // Extend the primary selection range, discard the rest.\n  function extendSelection(doc, head, other, options) {\n    setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);\n  }\n\n  // Extend all selections (pos is an array of selections with length\n  // equal the number of selections)\n  function extendSelections(doc, heads, options) {\n    for (var out = [], i = 0; i < doc.sel.ranges.length; i++)\n      out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);\n    var newSel = normalizeSelection(out, doc.sel.primIndex);\n    setSelection(doc, newSel, options);\n  }\n\n  // Updates a single range in the selection.\n  function replaceOneSelection(doc, i, range, options) {\n    var ranges = doc.sel.ranges.slice(0);\n    ranges[i] = range;\n    setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);\n  }\n\n  // Reset the selection to a single range.\n  function setSimpleSelection(doc, anchor, head, options) {\n    setSelection(doc, simpleSelection(anchor, head), options);\n  }\n\n  // Give beforeSelectionChange handlers a change to influence a\n  // selection update.\n  function filterSelectionChange(doc, sel) {\n    var obj = {\n      ranges: sel.ranges,\n      update: function(ranges) {\n        this.ranges = [];\n        for (var i = 0; i < ranges.length; i++)\n          this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n                                     clipPos(doc, ranges[i].head));\n      }\n    };\n    signal(doc, \"beforeSelectionChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj);\n    if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);\n    else return sel;\n  }\n\n  function setSelectionReplaceHistory(doc, sel, options) {\n    var done = doc.history.done, last = lst(done);\n    if (last && last.ranges) {\n      done[done.length - 1] = sel;\n      setSelectionNoUndo(doc, sel, options);\n    } else {\n      setSelection(doc, sel, options);\n    }\n  }\n\n  // Set a new selection.\n  function setSelection(doc, sel, options) {\n    setSelectionNoUndo(doc, sel, options);\n    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n  }\n\n  function setSelectionNoUndo(doc, sel, options) {\n    if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n      sel = filterSelectionChange(doc, sel);\n\n    var bias = options && options.bias ||\n      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n    if (!(options && options.scroll === false) && doc.cm)\n      ensureCursorVisible(doc.cm);\n  }\n\n  function setSelectionInner(doc, sel) {\n    if (sel.equals(doc.sel)) return;\n\n    doc.sel = sel;\n\n    if (doc.cm) {\n      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;\n      signalCursorActivity(doc.cm);\n    }\n    signalLater(doc, \"cursorActivity\", doc);\n  }\n\n  // Verify that the selection does not partially select any atomic\n  // marked ranges.\n  function reCheckSelection(doc) {\n    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);\n  }\n\n  // Return a selection that does not partially select any atomic\n  // ranges.\n  function skipAtomicInSelection(doc, sel, bias, mayClear) {\n    var out;\n    for (var i = 0; i < sel.ranges.length; i++) {\n      var range = sel.ranges[i];\n      var newAnchor = skipAtomic(doc, range.anchor, bias, mayClear);\n      var newHead = skipAtomic(doc, range.head, bias, mayClear);\n      if (out || newAnchor != range.anchor || newHead != range.head) {\n        if (!out) out = sel.ranges.slice(0, i);\n        out[i] = new Range(newAnchor, newHead);\n      }\n    }\n    return out ? normalizeSelection(out, sel.primIndex) : sel;\n  }\n\n  // Ensure a given position is not inside an atomic range.\n  function skipAtomic(doc, pos, bias, mayClear) {\n    var flipped = false, curPos = pos;\n    var dir = bias || 1;\n    doc.cantEdit = false;\n    search: for (;;) {\n      var line = getLine(doc, curPos.line);\n      if (line.markedSpans) {\n        for (var i = 0; i < line.markedSpans.length; ++i) {\n          var sp = line.markedSpans[i], m = sp.marker;\n          if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) &&\n              (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) {\n            if (mayClear) {\n              signal(m, \"beforeCursorEnter\");\n              if (m.explicitlyCleared) {\n                if (!line.markedSpans) break;\n                else {--i; continue;}\n              }\n            }\n            if (!m.atomic) continue;\n            var newPos = m.find(dir < 0 ? -1 : 1);\n            if (cmp(newPos, curPos) == 0) {\n              newPos.ch += dir;\n              if (newPos.ch < 0) {\n                if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1));\n                else newPos = null;\n              } else if (newPos.ch > line.text.length) {\n                if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0);\n                else newPos = null;\n              }\n              if (!newPos) {\n                if (flipped) {\n                  // Driven in a corner -- no valid cursor position found at all\n                  // -- try again *with* clearing, if we didn't already\n                  if (!mayClear) return skipAtomic(doc, pos, bias, true);\n                  // Otherwise, turn off editing until further notice, and return the start of the doc\n                  doc.cantEdit = true;\n                  return Pos(doc.first, 0);\n                }\n                flipped = true; newPos = pos; dir = -dir;\n              }\n            }\n            curPos = newPos;\n            continue search;\n          }\n        }\n      }\n      return curPos;\n    }\n  }\n\n  // SELECTION DRAWING\n\n  function updateSelection(cm) {\n    cm.display.input.showSelection(cm.display.input.prepareSelection());\n  }\n\n  function prepareSelection(cm, primary) {\n    var doc = cm.doc, result = {};\n    var curFragment = result.cursors = document.createDocumentFragment();\n    var selFragment = result.selection = document.createDocumentFragment();\n\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      if (primary === false && i == doc.sel.primIndex) continue;\n      var range = doc.sel.ranges[i];\n      var collapsed = range.empty();\n      if (collapsed || cm.options.showCursorWhenSelecting)\n        drawSelectionCursor(cm, range, curFragment);\n      if (!collapsed)\n        drawSelectionRange(cm, range, selFragment);\n    }\n    return result;\n  }\n\n  // Draws a cursor for the given range\n  function drawSelectionCursor(cm, range, output) {\n    var pos = cursorCoords(cm, range.head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n    var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n    cursor.style.left = pos.left + \"px\";\n    cursor.style.top = pos.top + \"px\";\n    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n    if (pos.other) {\n      // Secondary cursor, shown when on a 'jump' in bi-directional text\n      var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n      otherCursor.style.display = \"\";\n      otherCursor.style.left = pos.other.left + \"px\";\n      otherCursor.style.top = pos.other.top + \"px\";\n      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n    }\n  }\n\n  // Draws the given range as a highlighted selection\n  function drawSelectionRange(cm, range, output) {\n    var display = cm.display, doc = cm.doc;\n    var fragment = document.createDocumentFragment();\n    var padding = paddingH(cm.display), leftSide = padding.left;\n    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n\n    function add(left, top, width, bottom) {\n      if (top < 0) top = 0;\n      top = Math.round(top);\n      bottom = Math.round(bottom);\n      fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", \"position: absolute; left: \" + left +\n                               \"px; top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) +\n                               \"px; height: \" + (bottom - top) + \"px\"));\n    }\n\n    function drawForLine(line, fromArg, toArg) {\n      var lineObj = getLine(doc, line);\n      var lineLen = lineObj.text.length;\n      var start, end;\n      function coords(ch, bias) {\n        return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias);\n      }\n\n      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {\n        var leftPos = coords(from, \"left\"), rightPos, left, right;\n        if (from == to) {\n          rightPos = leftPos;\n          left = right = leftPos.left;\n        } else {\n          rightPos = coords(to - 1, \"right\");\n          if (dir == \"rtl\") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }\n          left = leftPos.left;\n          right = rightPos.right;\n        }\n        if (fromArg == null && from == 0) left = leftSide;\n        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part\n          add(left, leftPos.top, null, leftPos.bottom);\n          left = leftSide;\n          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);\n        }\n        if (toArg == null && to == lineLen) right = rightSide;\n        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)\n          start = leftPos;\n        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)\n          end = rightPos;\n        if (left < leftSide + 1) left = leftSide;\n        add(left, rightPos.top, right - left, rightPos.bottom);\n      });\n      return {start: start, end: end};\n    }\n\n    var sFrom = range.from(), sTo = range.to();\n    if (sFrom.line == sTo.line) {\n      drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n    } else {\n      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n      var singleVLine = visualLine(fromLine) == visualLine(toLine);\n      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n      if (singleVLine) {\n        if (leftEnd.top < rightStart.top - 2) {\n          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n        } else {\n          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n        }\n      }\n      if (leftEnd.bottom < rightStart.top)\n        add(leftSide, leftEnd.bottom, null, rightStart.top);\n    }\n\n    output.appendChild(fragment);\n  }\n\n  // Cursor-blinking\n  function restartBlink(cm) {\n    if (!cm.state.focused) return;\n    var display = cm.display;\n    clearInterval(display.blinker);\n    var on = true;\n    display.cursorDiv.style.visibility = \"\";\n    if (cm.options.cursorBlinkRate > 0)\n      display.blinker = setInterval(function() {\n        display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n      }, cm.options.cursorBlinkRate);\n    else if (cm.options.cursorBlinkRate < 0)\n      display.cursorDiv.style.visibility = \"hidden\";\n  }\n\n  // HIGHLIGHT WORKER\n\n  function startWorker(cm, time) {\n    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)\n      cm.state.highlight.set(time, bind(highlightWorker, cm));\n  }\n\n  function highlightWorker(cm) {\n    var doc = cm.doc;\n    if (doc.frontier < doc.first) doc.frontier = doc.first;\n    if (doc.frontier >= cm.display.viewTo) return;\n    var end = +new Date + cm.options.workTime;\n    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));\n    var changedLines = [];\n\n    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {\n      if (doc.frontier >= cm.display.viewFrom) { // Visible\n        var oldStyles = line.styles;\n        var highlighted = highlightLine(cm, line, state, true);\n        line.styles = highlighted.styles;\n        var oldCls = line.styleClasses, newCls = highlighted.classes;\n        if (newCls) line.styleClasses = newCls;\n        else if (oldCls) line.styleClasses = null;\n        var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];\n        if (ischange) changedLines.push(doc.frontier);\n        line.stateAfter = copyState(doc.mode, state);\n      } else {\n        processLine(cm, line.text, state);\n        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;\n      }\n      ++doc.frontier;\n      if (+new Date > end) {\n        startWorker(cm, cm.options.workDelay);\n        return true;\n      }\n    });\n    if (changedLines.length) runInOp(cm, function() {\n      for (var i = 0; i < changedLines.length; i++)\n        regLineChange(cm, changedLines[i], \"text\");\n    });\n  }\n\n  // Finds the line to start with when starting a parse. Tries to\n  // find a line with a stateAfter, so that it can start with a\n  // valid state. If that fails, it returns the line with the\n  // smallest indentation, which tends to need the least context to\n  // parse correctly.\n  function findStartLine(cm, n, precise) {\n    var minindent, minline, doc = cm.doc;\n    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n    for (var search = n; search > lim; --search) {\n      if (search <= doc.first) return doc.first;\n      var line = getLine(doc, search - 1);\n      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;\n      var indented = countColumn(line.text, null, cm.options.tabSize);\n      if (minline == null || minindent > indented) {\n        minline = search - 1;\n        minindent = indented;\n      }\n    }\n    return minline;\n  }\n\n  function getStateBefore(cm, n, precise) {\n    var doc = cm.doc, display = cm.display;\n    if (!doc.mode.startState) return true;\n    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;\n    if (!state) state = startState(doc.mode);\n    else state = copyState(doc.mode, state);\n    doc.iter(pos, n, function(line) {\n      processLine(cm, line.text, state);\n      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;\n      line.stateAfter = save ? copyState(doc.mode, state) : null;\n      ++pos;\n    });\n    if (precise) doc.frontier = pos;\n    return state;\n  }\n\n  // POSITION MEASUREMENT\n\n  function paddingTop(display) {return display.lineSpace.offsetTop;}\n  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}\n  function paddingH(display) {\n    if (display.cachedPaddingH) return display.cachedPaddingH;\n    var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\"));\n    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n    if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;\n    return data;\n  }\n\n  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }\n  function displayWidth(cm) {\n    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;\n  }\n  function displayHeight(cm) {\n    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;\n  }\n\n  // Ensure the lineView.wrapping.heights array is populated. This is\n  // an array of bottom offsets for the lines that make up a drawn\n  // line. When lineWrapping is on, there might be more than one\n  // height.\n  function ensureLineHeights(cm, lineView, rect) {\n    var wrapping = cm.options.lineWrapping;\n    var curWidth = wrapping && displayWidth(cm);\n    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n      var heights = lineView.measure.heights = [];\n      if (wrapping) {\n        lineView.measure.width = curWidth;\n        var rects = lineView.text.firstChild.getClientRects();\n        for (var i = 0; i < rects.length - 1; i++) {\n          var cur = rects[i], next = rects[i + 1];\n          if (Math.abs(cur.bottom - next.bottom) > 2)\n            heights.push((cur.bottom + next.top) / 2 - rect.top);\n        }\n      }\n      heights.push(rect.bottom - rect.top);\n    }\n  }\n\n  // Find a line map (mapping character offsets to text nodes) and a\n  // measurement cache for the given line number. (A line view might\n  // contain multiple lines when collapsed ranges are present.)\n  function mapFromLineView(lineView, line, lineN) {\n    if (lineView.line == line)\n      return {map: lineView.measure.map, cache: lineView.measure.cache};\n    for (var i = 0; i < lineView.rest.length; i++)\n      if (lineView.rest[i] == line)\n        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};\n    for (var i = 0; i < lineView.rest.length; i++)\n      if (lineNo(lineView.rest[i]) > lineN)\n        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};\n  }\n\n  // Render a line into the hidden node display.externalMeasured. Used\n  // when measurement is needed for a line that's not in the viewport.\n  function updateExternalMeasurement(cm, line) {\n    line = visualLine(line);\n    var lineN = lineNo(line);\n    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n    view.lineN = lineN;\n    var built = view.built = buildLineContent(cm, view);\n    view.text = built.pre;\n    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n    return view;\n  }\n\n  // Get a {top, bottom, left, right} box (in line-local coordinates)\n  // for a given character.\n  function measureChar(cm, line, ch, bias) {\n    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);\n  }\n\n  // Find a line view that corresponds to the given line number.\n  function findViewForLine(cm, lineN) {\n    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n      return cm.display.view[findViewIndex(cm, lineN)];\n    var ext = cm.display.externalMeasured;\n    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n      return ext;\n  }\n\n  // Measurement can be split in two steps, the set-up work that\n  // applies to the whole line, and the measurement of the actual\n  // character. Functions like coordsChar, that need to do a lot of\n  // measurements in a row, can thus ensure that the set-up work is\n  // only done once.\n  function prepareMeasureForLine(cm, line) {\n    var lineN = lineNo(line);\n    var view = findViewForLine(cm, lineN);\n    if (view && !view.text)\n      view = null;\n    else if (view && view.changes)\n      updateLineForChanges(cm, view, lineN, getDimensions(cm));\n    if (!view)\n      view = updateExternalMeasurement(cm, line);\n\n    var info = mapFromLineView(view, line, lineN);\n    return {\n      line: line, view: view, rect: null,\n      map: info.map, cache: info.cache, before: info.before,\n      hasHeights: false\n    };\n  }\n\n  // Given a prepared measurement object, measures the position of an\n  // actual character (or fetches it from the cache).\n  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n    if (prepared.before) ch = -1;\n    var key = ch + (bias || \"\"), found;\n    if (prepared.cache.hasOwnProperty(key)) {\n      found = prepared.cache[key];\n    } else {\n      if (!prepared.rect)\n        prepared.rect = prepared.view.text.getBoundingClientRect();\n      if (!prepared.hasHeights) {\n        ensureLineHeights(cm, prepared.view, prepared.rect);\n        prepared.hasHeights = true;\n      }\n      found = measureCharInner(cm, prepared, ch, bias);\n      if (!found.bogus) prepared.cache[key] = found;\n    }\n    return {left: found.left, right: found.right,\n            top: varHeight ? found.rtop : found.top,\n            bottom: varHeight ? found.rbottom : found.bottom};\n  }\n\n  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n  function nodeAndOffsetInLineMap(map, ch, bias) {\n    var node, start, end, collapse;\n    // First, search the line map for the text node corresponding to,\n    // or closest to, the target character.\n    for (var i = 0; i < map.length; i += 3) {\n      var mStart = map[i], mEnd = map[i + 1];\n      if (ch < mStart) {\n        start = 0; end = 1;\n        collapse = \"left\";\n      } else if (ch < mEnd) {\n        start = ch - mStart;\n        end = start + 1;\n      } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n        end = mEnd - mStart;\n        start = end - 1;\n        if (ch >= mEnd) collapse = \"right\";\n      }\n      if (start != null) {\n        node = map[i + 2];\n        if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n          collapse = bias;\n        if (bias == \"left\" && start == 0)\n          while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n            node = map[(i -= 3) + 2];\n            collapse = \"left\";\n          }\n        if (bias == \"right\" && start == mEnd - mStart)\n          while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n            node = map[(i += 3) + 2];\n            collapse = \"right\";\n          }\n        break;\n      }\n    }\n    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};\n  }\n\n  function measureCharInner(cm, prepared, ch, bias) {\n    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n    var rect;\n    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n      for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;\n        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;\n        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) {\n          rect = node.parentNode.getBoundingClientRect();\n        } else if (ie && cm.options.lineWrapping) {\n          var rects = range(node, start, end).getClientRects();\n          if (rects.length)\n            rect = rects[bias == \"right\" ? rects.length - 1 : 0];\n          else\n            rect = nullRect;\n        } else {\n          rect = range(node, start, end).getBoundingClientRect() || nullRect;\n        }\n        if (rect.left || rect.right || start == 0) break;\n        end = start;\n        start = start - 1;\n        collapse = \"right\";\n      }\n      if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);\n    } else { // If it is a widget, simply get the box for the whole widget.\n      if (start > 0) collapse = bias = \"right\";\n      var rects;\n      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n        rect = rects[bias == \"right\" ? rects.length - 1 : 0];\n      else\n        rect = node.getBoundingClientRect();\n    }\n    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n      var rSpan = node.parentNode.getClientRects()[0];\n      if (rSpan)\n        rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};\n      else\n        rect = nullRect;\n    }\n\n    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n    var mid = (rtop + rbot) / 2;\n    var heights = prepared.view.measure.heights;\n    for (var i = 0; i < heights.length - 1; i++)\n      if (mid < heights[i]) break;\n    var top = i ? heights[i - 1] : 0, bot = heights[i];\n    var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n                  right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n                  top: top, bottom: bot};\n    if (!rect.left && !rect.right) result.bogus = true;\n    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n    return result;\n  }\n\n  // Work around problem with bounding client rects on ranges being\n  // returned incorrectly when zoomed on IE10 and below.\n  function maybeUpdateRectForZooming(measure, rect) {\n    if (!window.screen || screen.logicalXDPI == null ||\n        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n      return rect;\n    var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n    var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n    return {left: rect.left * scaleX, right: rect.right * scaleX,\n            top: rect.top * scaleY, bottom: rect.bottom * scaleY};\n  }\n\n  function clearLineMeasurementCacheFor(lineView) {\n    if (lineView.measure) {\n      lineView.measure.cache = {};\n      lineView.measure.heights = null;\n      if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)\n        lineView.measure.caches[i] = {};\n    }\n  }\n\n  function clearLineMeasurementCache(cm) {\n    cm.display.externalMeasure = null;\n    removeChildren(cm.display.lineMeasure);\n    for (var i = 0; i < cm.display.view.length; i++)\n      clearLineMeasurementCacheFor(cm.display.view[i]);\n  }\n\n  function clearCaches(cm) {\n    clearLineMeasurementCache(cm);\n    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;\n    cm.display.lineNumChars = null;\n  }\n\n  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }\n  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }\n\n  // Converts a {top, bottom, left, right} box from line-local\n  // coordinates into another coordinate system. Context may be one of\n  // \"line\", \"div\" (display.lineDiv), \"local\"/null (editor), \"window\",\n  // or \"page\".\n  function intoCoordSystem(cm, lineObj, rect, context) {\n    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {\n      var size = widgetHeight(lineObj.widgets[i]);\n      rect.top += size; rect.bottom += size;\n    }\n    if (context == \"line\") return rect;\n    if (!context) context = \"local\";\n    var yOff = heightAtLine(lineObj);\n    if (context == \"local\") yOff += paddingTop(cm.display);\n    else yOff -= cm.display.viewOffset;\n    if (context == \"page\" || context == \"window\") {\n      var lOff = cm.display.lineSpace.getBoundingClientRect();\n      yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n      var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n      rect.left += xOff; rect.right += xOff;\n    }\n    rect.top += yOff; rect.bottom += yOff;\n    return rect;\n  }\n\n  // Coverts a box from \"div\" coords to another coordinate system.\n  // Context may be \"window\", \"page\", \"div\", or \"local\"/null.\n  function fromCoordSystem(cm, coords, context) {\n    if (context == \"div\") return coords;\n    var left = coords.left, top = coords.top;\n    // First move into \"page\" coordinate system\n    if (context == \"page\") {\n      left -= pageScrollX();\n      top -= pageScrollY();\n    } else if (context == \"local\" || !context) {\n      var localBox = cm.display.sizer.getBoundingClientRect();\n      left += localBox.left;\n      top += localBox.top;\n    }\n\n    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};\n  }\n\n  function charCoords(cm, pos, context, lineObj, bias) {\n    if (!lineObj) lineObj = getLine(cm.doc, pos.line);\n    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);\n  }\n\n  // Returns a box for a given cursor position, which may have an\n  // 'other' property containing the position of the secondary cursor\n  // on a bidi boundary.\n  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n    lineObj = lineObj || getLine(cm.doc, pos.line);\n    if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);\n    function get(ch, right) {\n      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n      if (right) m.left = m.right; else m.right = m.left;\n      return intoCoordSystem(cm, lineObj, m, context);\n    }\n    function getBidi(ch, partPos) {\n      var part = order[partPos], right = part.level % 2;\n      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {\n        part = order[--partPos];\n        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);\n        right = true;\n      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {\n        part = order[++partPos];\n        ch = bidiLeft(part) - part.level % 2;\n        right = false;\n      }\n      if (right && ch == part.to && ch > part.from) return get(ch - 1);\n      return get(ch, right);\n    }\n    var order = getOrder(lineObj), ch = pos.ch;\n    if (!order) return get(ch);\n    var partPos = getBidiPartAt(order, ch);\n    var val = getBidi(ch, partPos);\n    if (bidiOther != null) val.other = getBidi(ch, bidiOther);\n    return val;\n  }\n\n  // Used to cheaply estimate the coordinates for a position. Used for\n  // intermediate scroll updates.\n  function estimateCoords(cm, pos) {\n    var left = 0, pos = clipPos(cm.doc, pos);\n    if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;\n    var lineObj = getLine(cm.doc, pos.line);\n    var top = heightAtLine(lineObj) + paddingTop(cm.display);\n    return {left: left, right: left, top: top, bottom: top + lineObj.height};\n  }\n\n  // Positions returned by coordsChar contain some extra information.\n  // xRel is the relative x position of the input coordinates compared\n  // to the found position (so xRel > 0 means the coordinates are to\n  // the right of the character position, for example). When outside\n  // is true, that means the coordinates lie outside the line's\n  // vertical range.\n  function PosWithInfo(line, ch, outside, xRel) {\n    var pos = Pos(line, ch);\n    pos.xRel = xRel;\n    if (outside) pos.outside = true;\n    return pos;\n  }\n\n  // Compute the character position closest to the given coordinates.\n  // Input must be lineSpace-local (\"div\" coordinate system).\n  function coordsChar(cm, x, y) {\n    var doc = cm.doc;\n    y += cm.display.viewOffset;\n    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);\n    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n    if (lineN > last)\n      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);\n    if (x < 0) x = 0;\n\n    var lineObj = getLine(doc, lineN);\n    for (;;) {\n      var found = coordsCharInner(cm, lineObj, lineN, x, y);\n      var merged = collapsedSpanAtEnd(lineObj);\n      var mergedPos = merged && merged.find(0, true);\n      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))\n        lineN = lineNo(lineObj = mergedPos.to.line);\n      else\n        return found;\n    }\n  }\n\n  function coordsCharInner(cm, lineObj, lineNo, x, y) {\n    var innerOff = y - heightAtLine(lineObj);\n    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;\n    var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n\n    function getX(ch) {\n      var sp = cursorCoords(cm, Pos(lineNo, ch), \"line\", lineObj, preparedMeasure);\n      wrongLine = true;\n      if (innerOff > sp.bottom) return sp.left - adjust;\n      else if (innerOff < sp.top) return sp.left + adjust;\n      else wrongLine = false;\n      return sp.left;\n    }\n\n    var bidi = getOrder(lineObj), dist = lineObj.text.length;\n    var from = lineLeft(lineObj), to = lineRight(lineObj);\n    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;\n\n    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);\n    // Do a binary search between these bounds.\n    for (;;) {\n      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {\n        var ch = x < fromX || x - fromX <= toX - x ? from : to;\n        var xDiff = x - (ch == from ? fromX : toX);\n        while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;\n        var pos = PosWithInfo(lineNo, ch, ch == from ? fromOutside : toOutside,\n                              xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);\n        return pos;\n      }\n      var step = Math.ceil(dist / 2), middle = from + step;\n      if (bidi) {\n        middle = from;\n        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);\n      }\n      var middleX = getX(middle);\n      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}\n      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}\n    }\n  }\n\n  var measureText;\n  // Compute the default text height.\n  function textHeight(display) {\n    if (display.cachedTextHeight != null) return display.cachedTextHeight;\n    if (measureText == null) {\n      measureText = elt(\"pre\");\n      // Measure a bunch of lines, for browsers that compute\n      // fractional heights.\n      for (var i = 0; i < 49; ++i) {\n        measureText.appendChild(document.createTextNode(\"x\"));\n        measureText.appendChild(elt(\"br\"));\n      }\n      measureText.appendChild(document.createTextNode(\"x\"));\n    }\n    removeChildrenAndAdd(display.measure, measureText);\n    var height = measureText.offsetHeight / 50;\n    if (height > 3) display.cachedTextHeight = height;\n    removeChildren(display.measure);\n    return height || 1;\n  }\n\n  // Compute the default character width.\n  function charWidth(display) {\n    if (display.cachedCharWidth != null) return display.cachedCharWidth;\n    var anchor = elt(\"span\", \"xxxxxxxxxx\");\n    var pre = elt(\"pre\", [anchor]);\n    removeChildrenAndAdd(display.measure, pre);\n    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n    if (width > 2) display.cachedCharWidth = width;\n    return width || 10;\n  }\n\n  // OPERATIONS\n\n  // Operations are used to wrap a series of changes to the editor\n  // state in such a way that each change won't have to update the\n  // cursor and display (which would be awkward, slow, and\n  // error-prone). Instead, display updates are batched and then all\n  // combined and executed at once.\n\n  var operationGroup = null;\n\n  var nextOpId = 0;\n  // Start a new operation.\n  function startOperation(cm) {\n    cm.curOp = {\n      cm: cm,\n      viewChanged: false,      // Flag that indicates that lines might need to be redrawn\n      startHeight: cm.doc.height, // Used to detect need to update scrollbar\n      forceUpdate: false,      // Used to force a redraw\n      updateInput: null,       // Whether to reset the input textarea\n      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)\n      changeObjs: null,        // Accumulated changes, for firing change events\n      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n      selectionChanged: false, // Whether the selection needs to be redrawn\n      updateMaxLine: false,    // Set when the widest line needs to be determined anew\n      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n      scrollToPos: null,       // Used to scroll to a specific position\n      id: ++nextOpId           // Unique ID\n    };\n    if (operationGroup) {\n      operationGroup.ops.push(cm.curOp);\n    } else {\n      cm.curOp.ownsGroup = operationGroup = {\n        ops: [cm.curOp],\n        delayedCallbacks: []\n      };\n    }\n  }\n\n  function fireCallbacksForOps(group) {\n    // Calls delayed callbacks and cursorActivity handlers until no\n    // new ones appear\n    var callbacks = group.delayedCallbacks, i = 0;\n    do {\n      for (; i < callbacks.length; i++)\n        callbacks[i]();\n      for (var j = 0; j < group.ops.length; j++) {\n        var op = group.ops[j];\n        if (op.cursorActivityHandlers)\n          while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n            op.cursorActivityHandlers[op.cursorActivityCalled++](op.cm);\n      }\n    } while (i < callbacks.length);\n  }\n\n  // Finish an operation, updating the display and signalling delayed events\n  function endOperation(cm) {\n    var op = cm.curOp, group = op.ownsGroup;\n    if (!group) return;\n\n    try { fireCallbacksForOps(group); }\n    finally {\n      operationGroup = null;\n      for (var i = 0; i < group.ops.length; i++)\n        group.ops[i].cm.curOp = null;\n      endOperations(group);\n    }\n  }\n\n  // The DOM updates done when an operation finishes are batched so\n  // that the minimum number of relayouts are required.\n  function endOperations(group) {\n    var ops = group.ops;\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_R1(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)\n      endOperation_W1(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_R2(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)\n      endOperation_W2(ops[i]);\n    for (var i = 0; i < ops.length; i++) // Read DOM\n      endOperation_finish(ops[i]);\n  }\n\n  function endOperation_R1(op) {\n    var cm = op.cm, display = cm.display;\n    maybeClipScrollbars(cm);\n    if (op.updateMaxLine) findMaxLine(cm);\n\n    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n                         op.scrollToPos.to.line >= display.viewTo) ||\n      display.maxLineChanged && cm.options.lineWrapping;\n    op.update = op.mustUpdate &&\n      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n  }\n\n  function endOperation_W1(op) {\n    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n  }\n\n  function endOperation_R2(op) {\n    var cm = op.cm, display = cm.display;\n    if (op.updatedDisplay) updateHeightsInViewport(cm);\n\n    op.barMeasure = measureForScrollbars(cm);\n\n    // If the max line changed since it was last measured, measure it,\n    // and ensure the document's width matches it.\n    // updateDisplay_W2 will use these properties to do the actual resizing\n    if (display.maxLineChanged && !cm.options.lineWrapping) {\n      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n      cm.display.sizerWidth = op.adjustWidthTo;\n      op.barMeasure.scrollWidth =\n        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n    }\n\n    if (op.updatedDisplay || op.selectionChanged)\n      op.preparedSelection = display.input.prepareSelection();\n  }\n\n  function endOperation_W2(op) {\n    var cm = op.cm;\n\n    if (op.adjustWidthTo != null) {\n      cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n      if (op.maxScrollLeft < cm.doc.scrollLeft)\n        setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);\n      cm.display.maxLineChanged = false;\n    }\n\n    if (op.preparedSelection)\n      cm.display.input.showSelection(op.preparedSelection);\n    if (op.updatedDisplay)\n      setDocumentHeight(cm, op.barMeasure);\n    if (op.updatedDisplay || op.startHeight != cm.doc.height)\n      updateScrollbars(cm, op.barMeasure);\n\n    if (op.selectionChanged) restartBlink(cm);\n\n    if (cm.state.focused && op.updateInput)\n      cm.display.input.reset(op.typing);\n  }\n\n  function endOperation_finish(op) {\n    var cm = op.cm, display = cm.display, doc = cm.doc;\n\n    if (op.updatedDisplay) postUpdateDisplay(cm, op.update);\n\n    // Abort mouse wheel delta measurement, when scrolling explicitly\n    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n      display.wheelStartX = display.wheelStartY = null;\n\n    // Propagate the scroll position to the actual DOM scroller\n    if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {\n      doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));\n      display.scrollbars.setScrollTop(doc.scrollTop);\n      display.scroller.scrollTop = doc.scrollTop;\n    }\n    if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {\n      doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - displayWidth(cm), op.scrollLeft));\n      display.scrollbars.setScrollLeft(doc.scrollLeft);\n      display.scroller.scrollLeft = doc.scrollLeft;\n      alignHorizontally(cm);\n    }\n    // If we need to scroll a specific position into view, do so.\n    if (op.scrollToPos) {\n      var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n                                     clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n      if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);\n    }\n\n    // Fire events for markers that are hidden/unidden by editing or\n    // undoing\n    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n    if (hidden) for (var i = 0; i < hidden.length; ++i)\n      if (!hidden[i].lines.length) signal(hidden[i], \"hide\");\n    if (unhidden) for (var i = 0; i < unhidden.length; ++i)\n      if (unhidden[i].lines.length) signal(unhidden[i], \"unhide\");\n\n    if (display.wrapper.offsetHeight)\n      doc.scrollTop = cm.display.scroller.scrollTop;\n\n    // Fire change events, and delayed event handlers\n    if (op.changeObjs)\n      signal(cm, \"changes\", cm, op.changeObjs);\n    if (op.update)\n      op.update.finish();\n  }\n\n  // Run the given function in an operation\n  function runInOp(cm, f) {\n    if (cm.curOp) return f();\n    startOperation(cm);\n    try { return f(); }\n    finally { endOperation(cm); }\n  }\n  // Wraps a function in an operation. Returns the wrapped function.\n  function operation(cm, f) {\n    return function() {\n      if (cm.curOp) return f.apply(cm, arguments);\n      startOperation(cm);\n      try { return f.apply(cm, arguments); }\n      finally { endOperation(cm); }\n    };\n  }\n  // Used to add methods to editor and doc instances, wrapping them in\n  // operations.\n  function methodOp(f) {\n    return function() {\n      if (this.curOp) return f.apply(this, arguments);\n      startOperation(this);\n      try { return f.apply(this, arguments); }\n      finally { endOperation(this); }\n    };\n  }\n  function docMethodOp(f) {\n    return function() {\n      var cm = this.cm;\n      if (!cm || cm.curOp) return f.apply(this, arguments);\n      startOperation(cm);\n      try { return f.apply(this, arguments); }\n      finally { endOperation(cm); }\n    };\n  }\n\n  // VIEW TRACKING\n\n  // These objects are used to represent the visible (currently drawn)\n  // part of the document. A LineView may correspond to multiple\n  // logical lines, if those are connected by collapsed ranges.\n  function LineView(doc, line, lineN) {\n    // The starting line\n    this.line = line;\n    // Continuing lines, if any\n    this.rest = visualLineContinued(line);\n    // Number of logical lines in this visual line\n    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n    this.node = this.text = null;\n    this.hidden = lineIsHidden(doc, line);\n  }\n\n  // Create a range of LineView objects for the given lines.\n  function buildViewArray(cm, from, to) {\n    var array = [], nextPos;\n    for (var pos = from; pos < to; pos = nextPos) {\n      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n      nextPos = pos + view.size;\n      array.push(view);\n    }\n    return array;\n  }\n\n  // Updates the display.view data structure for a given change to the\n  // document. From and to are in pre-change coordinates. Lendiff is\n  // the amount of lines added or subtracted by the change. This is\n  // used for changes that span multiple lines, or change the way\n  // lines are divided into visual lines. regLineChange (below)\n  // registers single-line changes.\n  function regChange(cm, from, to, lendiff) {\n    if (from == null) from = cm.doc.first;\n    if (to == null) to = cm.doc.first + cm.doc.size;\n    if (!lendiff) lendiff = 0;\n\n    var display = cm.display;\n    if (lendiff && to < display.viewTo &&\n        (display.updateLineNumbers == null || display.updateLineNumbers > from))\n      display.updateLineNumbers = from;\n\n    cm.curOp.viewChanged = true;\n\n    if (from >= display.viewTo) { // Change after\n      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n        resetView(cm);\n    } else if (to <= display.viewFrom) { // Change before\n      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n        resetView(cm);\n      } else {\n        display.viewFrom += lendiff;\n        display.viewTo += lendiff;\n      }\n    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n      resetView(cm);\n    } else if (from <= display.viewFrom) { // Top overlap\n      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cut) {\n        display.view = display.view.slice(cut.index);\n        display.viewFrom = cut.lineN;\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    } else if (to >= display.viewTo) { // Bottom overlap\n      var cut = viewCuttingPoint(cm, from, from, -1);\n      if (cut) {\n        display.view = display.view.slice(0, cut.index);\n        display.viewTo = cut.lineN;\n      } else {\n        resetView(cm);\n      }\n    } else { // Gap in the middle\n      var cutTop = viewCuttingPoint(cm, from, from, -1);\n      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n      if (cutTop && cutBot) {\n        display.view = display.view.slice(0, cutTop.index)\n          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n          .concat(display.view.slice(cutBot.index));\n        display.viewTo += lendiff;\n      } else {\n        resetView(cm);\n      }\n    }\n\n    var ext = display.externalMeasured;\n    if (ext) {\n      if (to < ext.lineN)\n        ext.lineN += lendiff;\n      else if (from < ext.lineN + ext.size)\n        display.externalMeasured = null;\n    }\n  }\n\n  // Register a change to a single line. Type must be one of \"text\",\n  // \"gutter\", \"class\", \"widget\"\n  function regLineChange(cm, line, type) {\n    cm.curOp.viewChanged = true;\n    var display = cm.display, ext = cm.display.externalMeasured;\n    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n      display.externalMeasured = null;\n\n    if (line < display.viewFrom || line >= display.viewTo) return;\n    var lineView = display.view[findViewIndex(cm, line)];\n    if (lineView.node == null) return;\n    var arr = lineView.changes || (lineView.changes = []);\n    if (indexOf(arr, type) == -1) arr.push(type);\n  }\n\n  // Clear the view.\n  function resetView(cm) {\n    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n    cm.display.view = [];\n    cm.display.viewOffset = 0;\n  }\n\n  // Find the view element corresponding to a given line. Return null\n  // when the line isn't visible.\n  function findViewIndex(cm, n) {\n    if (n >= cm.display.viewTo) return null;\n    n -= cm.display.viewFrom;\n    if (n < 0) return null;\n    var view = cm.display.view;\n    for (var i = 0; i < view.length; i++) {\n      n -= view[i].size;\n      if (n < 0) return i;\n    }\n  }\n\n  function viewCuttingPoint(cm, oldN, newN, dir) {\n    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n      return {index: index, lineN: newN};\n    for (var i = 0, n = cm.display.viewFrom; i < index; i++)\n      n += view[i].size;\n    if (n != oldN) {\n      if (dir > 0) {\n        if (index == view.length - 1) return null;\n        diff = (n + view[index].size) - oldN;\n        index++;\n      } else {\n        diff = n - oldN;\n      }\n      oldN += diff; newN += diff;\n    }\n    while (visualLineNo(cm.doc, newN) != newN) {\n      if (index == (dir < 0 ? 0 : view.length - 1)) return null;\n      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n      index += dir;\n    }\n    return {index: index, lineN: newN};\n  }\n\n  // Force the view to cover a given range, adding empty view element\n  // or clipping off existing ones as needed.\n  function adjustView(cm, from, to) {\n    var display = cm.display, view = display.view;\n    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n      display.view = buildViewArray(cm, from, to);\n      display.viewFrom = from;\n    } else {\n      if (display.viewFrom > from)\n        display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);\n      else if (display.viewFrom < from)\n        display.view = display.view.slice(findViewIndex(cm, from));\n      display.viewFrom = from;\n      if (display.viewTo < to)\n        display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));\n      else if (display.viewTo > to)\n        display.view = display.view.slice(0, findViewIndex(cm, to));\n    }\n    display.viewTo = to;\n  }\n\n  // Count the number of lines in the view whose DOM representation is\n  // out of date (or nonexistent).\n  function countDirtyView(cm) {\n    var view = cm.display.view, dirty = 0;\n    for (var i = 0; i < view.length; i++) {\n      var lineView = view[i];\n      if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;\n    }\n    return dirty;\n  }\n\n  // EVENT HANDLERS\n\n  // Attach the necessary event handlers when initializing the editor\n  function registerEventHandlers(cm) {\n    var d = cm.display;\n    on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n    // Older IE's will not fire a second mousedown for a double click\n    if (ie && ie_version < 11)\n      on(d.scroller, \"dblclick\", operation(cm, function(e) {\n        if (signalDOMEvent(cm, e)) return;\n        var pos = posFromMouse(cm, e);\n        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;\n        e_preventDefault(e);\n        var word = cm.findWordAt(pos);\n        extendSelection(cm.doc, word.anchor, word.head);\n      }));\n    else\n      on(d.scroller, \"dblclick\", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });\n    // Some browsers fire contextmenu *after* opening the menu, at\n    // which point we can't mess with it anymore. Context menu is\n    // handled in onMouseDown for these browsers.\n    if (!captureRightClick) on(d.scroller, \"contextmenu\", function(e) {onContextMenu(cm, e);});\n\n    // Used to suppress mouse event handling when a touch happens\n    var touchFinished, prevTouch = {end: 0};\n    function finishTouch() {\n      if (d.activeTouch) {\n        touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);\n        prevTouch = d.activeTouch;\n        prevTouch.end = +new Date;\n      }\n    };\n    function isMouseLikeTouchEvent(e) {\n      if (e.touches.length != 1) return false;\n      var touch = e.touches[0];\n      return touch.radiusX <= 1 && touch.radiusY <= 1;\n    }\n    function farAway(touch, other) {\n      if (other.left == null) return true;\n      var dx = other.left - touch.left, dy = other.top - touch.top;\n      return dx * dx + dy * dy > 20 * 20;\n    }\n    on(d.scroller, \"touchstart\", function(e) {\n      if (!isMouseLikeTouchEvent(e)) {\n        clearTimeout(touchFinished);\n        var now = +new Date;\n        d.activeTouch = {start: now, moved: false,\n                         prev: now - prevTouch.end <= 300 ? prevTouch : null};\n        if (e.touches.length == 1) {\n          d.activeTouch.left = e.touches[0].pageX;\n          d.activeTouch.top = e.touches[0].pageY;\n        }\n      }\n    });\n    on(d.scroller, \"touchmove\", function() {\n      if (d.activeTouch) d.activeTouch.moved = true;\n    });\n    on(d.scroller, \"touchend\", function(e) {\n      var touch = d.activeTouch;\n      if (touch && !eventInWidget(d, e) && touch.left != null &&\n          !touch.moved && new Date - touch.start < 300) {\n        var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n        if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n          range = new Range(pos, pos);\n        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n          range = cm.findWordAt(pos);\n        else // Triple tap\n          range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));\n        cm.setSelection(range.anchor, range.head);\n        cm.focus();\n        e_preventDefault(e);\n      }\n      finishTouch();\n    });\n    on(d.scroller, \"touchcancel\", finishTouch);\n\n    // Sync scrolling between fake scrollbars and real scrollable\n    // area, ensure viewport is updated when scrolling.\n    on(d.scroller, \"scroll\", function() {\n      if (d.scroller.clientHeight) {\n        setScrollTop(cm, d.scroller.scrollTop);\n        setScrollLeft(cm, d.scroller.scrollLeft, true);\n        signal(cm, \"scroll\", cm);\n      }\n    });\n\n    // Listen to wheel events in order to try and update the viewport on time.\n    on(d.scroller, \"mousewheel\", function(e){onScrollWheel(cm, e);});\n    on(d.scroller, \"DOMMouseScroll\", function(e){onScrollWheel(cm, e);});\n\n    // Prevent wrapper from ever scrolling\n    on(d.wrapper, \"scroll\", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n    function drag_(e) {\n      if (!signalDOMEvent(cm, e)) e_stop(e);\n    }\n    if (cm.options.dragDrop) {\n      on(d.scroller, \"dragstart\", function(e){onDragStart(cm, e);});\n      on(d.scroller, \"dragenter\", drag_);\n      on(d.scroller, \"dragover\", drag_);\n      on(d.scroller, \"drop\", operation(cm, onDrop));\n    }\n\n    var inp = d.input.getField();\n    on(inp, \"keyup\", function(e) { onKeyUp.call(cm, e); });\n    on(inp, \"keydown\", operation(cm, onKeyDown));\n    on(inp, \"keypress\", operation(cm, onKeyPress));\n    on(inp, \"focus\", bind(onFocus, cm));\n    on(inp, \"blur\", bind(onBlur, cm));\n  }\n\n  // Called when the window resizes\n  function onResize(cm) {\n    var d = cm.display;\n    if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)\n      return;\n    // Might be a text scaling operation, clear size caches.\n    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n    d.scrollbarsClipped = false;\n    cm.setSize();\n  }\n\n  // MOUSE EVENTS\n\n  // Return true when the given mouse event happened in a widget\n  function eventInWidget(display, e) {\n    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n      if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n          (n.parentNode == display.sizer && n != display.mover))\n        return true;\n    }\n  }\n\n  // Given a mouse event, find the corresponding position. If liberal\n  // is false, it checks whether a gutter or scrollbar was clicked,\n  // and returns null if it was. forRect is used by rectangular\n  // selections, and tries to estimate a character position even for\n  // coordinates beyond the right of the text.\n  function posFromMouse(cm, e, liberal, forRect) {\n    var display = cm.display;\n    if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") return null;\n\n    var x, y, space = display.lineSpace.getBoundingClientRect();\n    // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n    try { x = e.clientX - space.left; y = e.clientY - space.top; }\n    catch (e) { return null; }\n    var coords = coordsChar(cm, x, y), line;\n    if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n    }\n    return coords;\n  }\n\n  // A mouse down can be a single click, double click, triple click,\n  // start of selection drag, start of text drag, new cursor\n  // (ctrl-click), rectangle drag (alt-drag), or xwin\n  // middle-click-paste. Or it might be a click on something we should\n  // not interfere with, such as a scrollbar or widget.\n  function onMouseDown(e) {\n    var cm = this, display = cm.display;\n    if (display.activeTouch && display.input.supportsTouch() || signalDOMEvent(cm, e)) return;\n    display.shift = e.shiftKey;\n\n    if (eventInWidget(display, e)) {\n      if (!webkit) {\n        // Briefly turn off draggability, to allow widgets to do\n        // normal dragging things.\n        display.scroller.draggable = false;\n        setTimeout(function(){display.scroller.draggable = true;}, 100);\n      }\n      return;\n    }\n    if (clickInGutter(cm, e)) return;\n    var start = posFromMouse(cm, e);\n    window.focus();\n\n    switch (e_button(e)) {\n    case 1:\n      if (start)\n        leftButtonDown(cm, e, start);\n      else if (e_target(e) == display.scroller)\n        e_preventDefault(e);\n      break;\n    case 2:\n      if (webkit) cm.state.lastMiddleDown = +new Date;\n      if (start) extendSelection(cm.doc, start);\n      setTimeout(function() {display.input.focus();}, 20);\n      e_preventDefault(e);\n      break;\n    case 3:\n      if (captureRightClick) onContextMenu(cm, e);\n      break;\n    }\n  }\n\n  var lastClick, lastDoubleClick;\n  function leftButtonDown(cm, e, start) {\n    if (ie) setTimeout(bind(ensureFocus, cm), 0);\n    else ensureFocus(cm);\n\n    var now = +new Date, type;\n    if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {\n      type = \"triple\";\n    } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {\n      type = \"double\";\n      lastDoubleClick = {time: now, pos: start};\n    } else {\n      type = \"single\";\n      lastClick = {time: now, pos: start};\n    }\n\n    var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;\n    if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) &&\n        type == \"single\" && (contained = sel.contains(start)) > -1 &&\n        !sel.ranges[contained].empty())\n      leftButtonStartDrag(cm, e, start, modifier);\n    else\n      leftButtonSelect(cm, e, start, type, modifier);\n  }\n\n  // Start a text drag. When it ends, see if any dragging actually\n  // happen, and treat as a click if it didn't.\n  function leftButtonStartDrag(cm, e, start, modifier) {\n    var display = cm.display;\n    var dragEnd = operation(cm, function(e2) {\n      if (webkit) display.scroller.draggable = false;\n      cm.state.draggingText = false;\n      off(document, \"mouseup\", dragEnd);\n      off(display.scroller, \"drop\", dragEnd);\n      if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {\n        e_preventDefault(e2);\n        if (!modifier)\n          extendSelection(cm.doc, start);\n        display.input.focus();\n        // Work around unexplainable focus problem in IE9 (#2127)\n        if (ie && ie_version == 9)\n          setTimeout(function() {document.body.focus(); display.input.focus();}, 20);\n      }\n    });\n    // Let the drag handler handle this.\n    if (webkit) display.scroller.draggable = true;\n    cm.state.draggingText = dragEnd;\n    // IE's approach to draggable\n    if (display.scroller.dragDrop) display.scroller.dragDrop();\n    on(document, \"mouseup\", dragEnd);\n    on(display.scroller, \"drop\", dragEnd);\n  }\n\n  // Normal selection, as opposed to text dragging.\n  function leftButtonSelect(cm, e, start, type, addNew) {\n    var display = cm.display, doc = cm.doc;\n    e_preventDefault(e);\n\n    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n    if (addNew && !e.shiftKey) {\n      ourIndex = doc.sel.contains(start);\n      if (ourIndex > -1)\n        ourRange = ranges[ourIndex];\n      else\n        ourRange = new Range(start, start);\n    } else {\n      ourRange = doc.sel.primary();\n    }\n\n    if (e.altKey) {\n      type = \"rect\";\n      if (!addNew) ourRange = new Range(start, start);\n      start = posFromMouse(cm, e, true, true);\n      ourIndex = -1;\n    } else if (type == \"double\") {\n      var word = cm.findWordAt(start);\n      if (cm.display.shift || doc.extend)\n        ourRange = extendRange(doc, ourRange, word.anchor, word.head);\n      else\n        ourRange = word;\n    } else if (type == \"triple\") {\n      var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));\n      if (cm.display.shift || doc.extend)\n        ourRange = extendRange(doc, ourRange, line.anchor, line.head);\n      else\n        ourRange = line;\n    } else {\n      ourRange = extendRange(doc, ourRange, start);\n    }\n\n    if (!addNew) {\n      ourIndex = 0;\n      setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n      startSel = doc.sel;\n    } else if (ourIndex == -1) {\n      ourIndex = ranges.length;\n      setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),\n                   {scroll: false, origin: \"*mouse\"});\n    } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == \"single\") {\n      setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0));\n      startSel = doc.sel;\n    } else {\n      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n    }\n\n    var lastPos = start;\n    function extendTo(pos) {\n      if (cmp(lastPos, pos) == 0) return;\n      lastPos = pos;\n\n      if (type == \"rect\") {\n        var ranges = [], tabSize = cm.options.tabSize;\n        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n             line <= end; line++) {\n          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n          if (left == right)\n            ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));\n          else if (text.length > leftPos)\n            ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));\n        }\n        if (!ranges.length) ranges.push(new Range(start, start));\n        setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n                     {origin: \"*mouse\", scroll: false});\n        cm.scrollIntoView(pos);\n      } else {\n        var oldRange = ourRange;\n        var anchor = oldRange.anchor, head = pos;\n        if (type != \"single\") {\n          if (type == \"double\")\n            var range = cm.findWordAt(pos);\n          else\n            var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));\n          if (cmp(range.anchor, anchor) > 0) {\n            head = range.head;\n            anchor = minPos(oldRange.from(), range.anchor);\n          } else {\n            head = range.anchor;\n            anchor = maxPos(oldRange.to(), range.head);\n          }\n        }\n        var ranges = startSel.ranges.slice(0);\n        ranges[ourIndex] = new Range(clipPos(doc, anchor), head);\n        setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);\n      }\n    }\n\n    var editorSize = display.wrapper.getBoundingClientRect();\n    // Used to ensure timeout re-tries don't fire when another extend\n    // happened in the meantime (clearTimeout isn't reliable -- at\n    // least on Chrome, the timeouts still happen even when cleared,\n    // if the clear happens after their scheduled firing time).\n    var counter = 0;\n\n    function extend(e) {\n      var curCount = ++counter;\n      var cur = posFromMouse(cm, e, true, type == \"rect\");\n      if (!cur) return;\n      if (cmp(cur, lastPos) != 0) {\n        ensureFocus(cm);\n        extendTo(cur);\n        var visible = visibleLines(display, doc);\n        if (cur.line >= visible.to || cur.line < visible.from)\n          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);\n      } else {\n        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n        if (outside) setTimeout(operation(cm, function() {\n          if (counter != curCount) return;\n          display.scroller.scrollTop += outside;\n          extend(e);\n        }), 50);\n      }\n    }\n\n    function done(e) {\n      counter = Infinity;\n      e_preventDefault(e);\n      display.input.focus();\n      off(document, \"mousemove\", move);\n      off(document, \"mouseup\", up);\n      doc.history.lastSelOrigin = null;\n    }\n\n    var move = operation(cm, function(e) {\n      if (!e_button(e)) done(e);\n      else extend(e);\n    });\n    var up = operation(cm, done);\n    on(document, \"mousemove\", move);\n    on(document, \"mouseup\", up);\n  }\n\n  // Determines whether an event happened in the gutter, and fires the\n  // handlers for the corresponding event.\n  function gutterEvent(cm, e, type, prevent, signalfn) {\n    try { var mX = e.clientX, mY = e.clientY; }\n    catch(e) { return false; }\n    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;\n    if (prevent) e_preventDefault(e);\n\n    var display = cm.display;\n    var lineBox = display.lineDiv.getBoundingClientRect();\n\n    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);\n    mY -= lineBox.top - display.viewOffset;\n\n    for (var i = 0; i < cm.options.gutters.length; ++i) {\n      var g = display.gutters.childNodes[i];\n      if (g && g.getBoundingClientRect().right >= mX) {\n        var line = lineAtHeight(cm.doc, mY);\n        var gutter = cm.options.gutters[i];\n        signalfn(cm, type, cm, line, gutter, e);\n        return e_defaultPrevented(e);\n      }\n    }\n  }\n\n  function clickInGutter(cm, e) {\n    return gutterEvent(cm, e, \"gutterClick\", true, signalLater);\n  }\n\n  // Kludge to work around strange IE behavior where it'll sometimes\n  // re-fire a series of drag-related events right after the drop (#1551)\n  var lastDrop = 0;\n\n  function onDrop(e) {\n    var cm = this;\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n      return;\n    e_preventDefault(e);\n    if (ie) lastDrop = +new Date;\n    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n    if (!pos || isReadOnly(cm)) return;\n    // Might be a file drop, in which case we simply extract the text\n    // and insert it.\n    if (files && files.length && window.FileReader && window.File) {\n      var n = files.length, text = Array(n), read = 0;\n      var loadFile = function(file, i) {\n        var reader = new FileReader;\n        reader.onload = operation(cm, function() {\n          text[i] = reader.result;\n          if (++read == n) {\n            pos = clipPos(cm.doc, pos);\n            var change = {from: pos, to: pos, text: splitLines(text.join(\"\\n\")), origin: \"paste\"};\n            makeChange(cm.doc, change);\n            setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));\n          }\n        });\n        reader.readAsText(file);\n      };\n      for (var i = 0; i < n; ++i) loadFile(files[i], i);\n    } else { // Normal drop\n      // Don't do a replace if the drop happened inside of the selected text.\n      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n        cm.state.draggingText(e);\n        // Ensure the editor is re-focused\n        setTimeout(function() {cm.display.input.focus();}, 20);\n        return;\n      }\n      try {\n        var text = e.dataTransfer.getData(\"Text\");\n        if (text) {\n          if (cm.state.draggingText && !(mac ? e.metaKey : e.ctrlKey))\n            var selected = cm.listSelections();\n          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n          if (selected) for (var i = 0; i < selected.length; ++i)\n            replaceRange(cm.doc, \"\", selected[i].anchor, selected[i].head, \"drag\");\n          cm.replaceSelection(text, \"around\", \"paste\");\n          cm.display.input.focus();\n        }\n      }\n      catch(e){}\n    }\n  }\n\n  function onDragStart(cm, e) {\n    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }\n    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;\n\n    e.dataTransfer.setData(\"Text\", cm.getSelection());\n\n    // Use dummy image instead of default browsers image.\n    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n    if (e.dataTransfer.setDragImage && !safari) {\n      var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n      img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n      if (presto) {\n        img.width = img.height = 1;\n        cm.display.wrapper.appendChild(img);\n        // Force a relayout, or Opera won't use our image for some obscure reason\n        img._top = img.offsetTop;\n      }\n      e.dataTransfer.setDragImage(img, 0, 0);\n      if (presto) img.parentNode.removeChild(img);\n    }\n  }\n\n  // SCROLL EVENTS\n\n  // Sync the scrollable area and scrollbars, ensure the viewport\n  // covers the visible area.\n  function setScrollTop(cm, val) {\n    if (Math.abs(cm.doc.scrollTop - val) < 2) return;\n    cm.doc.scrollTop = val;\n    if (!gecko) updateDisplaySimple(cm, {top: val});\n    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;\n    cm.display.scrollbars.setScrollTop(val);\n    if (gecko) updateDisplaySimple(cm);\n    startWorker(cm, 100);\n  }\n  // Sync scroller and scrollbar, ensure the gutter elements are\n  // aligned.\n  function setScrollLeft(cm, val, isScroller) {\n    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;\n    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);\n    cm.doc.scrollLeft = val;\n    alignHorizontally(cm);\n    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;\n    cm.display.scrollbars.setScrollLeft(val);\n  }\n\n  // Since the delta values reported on mouse wheel events are\n  // unstandardized between browsers and even browser versions, and\n  // generally horribly unpredictable, this code starts by measuring\n  // the scroll effect that the first few mouse wheel events have,\n  // and, from that, detects the way it can convert deltas to pixel\n  // offsets afterwards.\n  //\n  // The reason we want to know the amount a wheel event will scroll\n  // is that it gives us a chance to update the display before the\n  // actual scrolling happens, reducing flickering.\n\n  var wheelSamples = 0, wheelPixelsPerUnit = null;\n  // Fill in a browser-detected starting value on browsers where we\n  // know one. These don't have to be accurate -- the result of them\n  // being wrong would just be a slight flicker on the first wheel\n  // scroll (if it is large enough).\n  if (ie) wheelPixelsPerUnit = -.53;\n  else if (gecko) wheelPixelsPerUnit = 15;\n  else if (chrome) wheelPixelsPerUnit = -.7;\n  else if (safari) wheelPixelsPerUnit = -1/3;\n\n  var wheelEventDelta = function(e) {\n    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;\n    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;\n    else if (dy == null) dy = e.wheelDelta;\n    return {x: dx, y: dy};\n  };\n  CodeMirror.wheelEventPixels = function(e) {\n    var delta = wheelEventDelta(e);\n    delta.x *= wheelPixelsPerUnit;\n    delta.y *= wheelPixelsPerUnit;\n    return delta;\n  };\n\n  function onScrollWheel(cm, e) {\n    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n    var display = cm.display, scroll = display.scroller;\n    // Quit if there's nothing to scroll here\n    if (!(dx && scroll.scrollWidth > scroll.clientWidth ||\n          dy && scroll.scrollHeight > scroll.clientHeight)) return;\n\n    // Webkit browsers on OS X abort momentum scrolls when the target\n    // of the scroll event is removed from the scrollable element.\n    // This hack (see related code in patchDisplay) makes sure the\n    // element is kept around.\n    if (dy && mac && webkit) {\n      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n        for (var i = 0; i < view.length; i++) {\n          if (view[i].node == cur) {\n            cm.display.currentWheelTarget = cur;\n            break outer;\n          }\n        }\n      }\n    }\n\n    // On some browsers, horizontal scrolling will cause redraws to\n    // happen before the gutter has been realigned, causing it to\n    // wriggle around in a most unseemly way. When we have an\n    // estimated pixels/delta value, we just handle horizontal\n    // scrolling entirely here. It'll be slightly off from native, but\n    // better than glitching out.\n    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n      if (dy)\n        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));\n      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));\n      e_preventDefault(e);\n      display.wheelStartX = null; // Abort measurement, if in progress\n      return;\n    }\n\n    // 'Project' the visible viewport to cover the area that is being\n    // scrolled into view (if we know enough to estimate it).\n    if (dy && wheelPixelsPerUnit != null) {\n      var pixels = dy * wheelPixelsPerUnit;\n      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n      if (pixels < 0) top = Math.max(0, top + pixels - 50);\n      else bot = Math.min(cm.doc.height, bot + pixels + 50);\n      updateDisplaySimple(cm, {top: top, bottom: bot});\n    }\n\n    if (wheelSamples < 20) {\n      if (display.wheelStartX == null) {\n        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n        display.wheelDX = dx; display.wheelDY = dy;\n        setTimeout(function() {\n          if (display.wheelStartX == null) return;\n          var movedX = scroll.scrollLeft - display.wheelStartX;\n          var movedY = scroll.scrollTop - display.wheelStartY;\n          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n            (movedX && display.wheelDX && movedX / display.wheelDX);\n          display.wheelStartX = display.wheelStartY = null;\n          if (!sample) return;\n          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n          ++wheelSamples;\n        }, 200);\n      } else {\n        display.wheelDX += dx; display.wheelDY += dy;\n      }\n    }\n  }\n\n  // KEY EVENTS\n\n  // Run a handler that was bound to a key.\n  function doHandleBinding(cm, bound, dropShift) {\n    if (typeof bound == \"string\") {\n      bound = commands[bound];\n      if (!bound) return false;\n    }\n    // Ensure previous input has been read, so that the handler sees a\n    // consistent view of the document\n    cm.display.input.ensurePolled();\n    var prevShift = cm.display.shift, done = false;\n    try {\n      if (isReadOnly(cm)) cm.state.suppressEdits = true;\n      if (dropShift) cm.display.shift = false;\n      done = bound(cm) != Pass;\n    } finally {\n      cm.display.shift = prevShift;\n      cm.state.suppressEdits = false;\n    }\n    return done;\n  }\n\n  function lookupKeyForEditor(cm, name, handle) {\n    for (var i = 0; i < cm.state.keyMaps.length; i++) {\n      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n      if (result) return result;\n    }\n    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n      || lookupKey(name, cm.options.keyMap, handle, cm);\n  }\n\n  var stopSeq = new Delayed;\n  function dispatchKey(cm, name, e, handle) {\n    var seq = cm.state.keySeq;\n    if (seq) {\n      if (isModifierKey(name)) return \"handled\";\n      stopSeq.set(50, function() {\n        if (cm.state.keySeq == seq) {\n          cm.state.keySeq = null;\n          cm.display.input.reset();\n        }\n      });\n      name = seq + \" \" + name;\n    }\n    var result = lookupKeyForEditor(cm, name, handle);\n\n    if (result == \"multi\")\n      cm.state.keySeq = name;\n    if (result == \"handled\")\n      signalLater(cm, \"keyHandled\", cm, name, e);\n\n    if (result == \"handled\" || result == \"multi\") {\n      e_preventDefault(e);\n      restartBlink(cm);\n    }\n\n    if (seq && !result && /\\'$/.test(name)) {\n      e_preventDefault(e);\n      return true;\n    }\n    return !!result;\n  }\n\n  // Handle a key from the keydown event.\n  function handleKeyBinding(cm, e) {\n    var name = keyName(e, true);\n    if (!name) return false;\n\n    if (e.shiftKey && !cm.state.keySeq) {\n      // First try to resolve full name (including 'Shift-'). Failing\n      // that, see if there is a cursor-motion command (starting with\n      // 'go') bound to the keyname without 'Shift-'.\n      return dispatchKey(cm, \"Shift-\" + name, e, function(b) {return doHandleBinding(cm, b, true);})\n          || dispatchKey(cm, name, e, function(b) {\n               if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n                 return doHandleBinding(cm, b);\n             });\n    } else {\n      return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });\n    }\n  }\n\n  // Handle a key from the keypress event\n  function handleCharBinding(cm, e, ch) {\n    return dispatchKey(cm, \"'\" + ch + \"'\", e,\n                       function(b) { return doHandleBinding(cm, b, true); });\n  }\n\n  var lastStoppedKey = null;\n  function onKeyDown(e) {\n    var cm = this;\n    ensureFocus(cm);\n    if (signalDOMEvent(cm, e)) return;\n    // IE does strange things with escape.\n    if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;\n    var code = e.keyCode;\n    cm.display.shift = code == 16 || e.shiftKey;\n    var handled = handleKeyBinding(cm, e);\n    if (presto) {\n      lastStoppedKey = handled ? code : null;\n      // Opera has no cut event... we try to at least catch the key combo\n      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n        cm.replaceSelection(\"\", null, \"cut\");\n    }\n\n    // Turn mouse into crosshair when Alt is held on Mac.\n    if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n      showCrossHair(cm);\n  }\n\n  function showCrossHair(cm) {\n    var lineDiv = cm.display.lineDiv;\n    addClass(lineDiv, \"CodeMirror-crosshair\");\n\n    function up(e) {\n      if (e.keyCode == 18 || !e.altKey) {\n        rmClass(lineDiv, \"CodeMirror-crosshair\");\n        off(document, \"keyup\", up);\n        off(document, \"mouseover\", up);\n      }\n    }\n    on(document, \"keyup\", up);\n    on(document, \"mouseover\", up);\n  }\n\n  function onKeyUp(e) {\n    if (e.keyCode == 16) this.doc.sel.shift = false;\n    signalDOMEvent(this, e);\n  }\n\n  function onKeyPress(e) {\n    var cm = this;\n    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;\n    var keyCode = e.keyCode, charCode = e.charCode;\n    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}\n    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;\n    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n    if (handleCharBinding(cm, e, ch)) return;\n    cm.display.input.onKeyPress(e);\n  }\n\n  // FOCUS/BLUR EVENTS\n\n  function onFocus(cm) {\n    if (cm.options.readOnly == \"nocursor\") return;\n    if (!cm.state.focused) {\n      signal(cm, \"focus\", cm);\n      cm.state.focused = true;\n      addClass(cm.display.wrapper, \"CodeMirror-focused\");\n      // This test prevents this from firing when a context\n      // menu is closed (since the input reset would kill the\n      // select-all detection hack)\n      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n        cm.display.input.reset();\n        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730\n      }\n      cm.display.input.receivedFocus();\n    }\n    restartBlink(cm);\n  }\n  function onBlur(cm) {\n    if (cm.state.focused) {\n      signal(cm, \"blur\", cm);\n      cm.state.focused = false;\n      rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n    }\n    clearInterval(cm.display.blinker);\n    setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);\n  }\n\n  // CONTEXT MENU HANDLING\n\n  // To make the context menu work, we need to briefly unhide the\n  // textarea (making it as unobtrusive as possible) to let the\n  // right-click take effect on it.\n  function onContextMenu(cm, e) {\n    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;\n    cm.display.input.onContextMenu(e);\n  }\n\n  function contextMenuInGutter(cm, e) {\n    if (!hasHandler(cm, \"gutterContextMenu\")) return false;\n    return gutterEvent(cm, e, \"gutterContextMenu\", false, signal);\n  }\n\n  // UPDATING\n\n  // Compute the position of the end of a change (its 'to' property\n  // refers to the pre-change end).\n  var changeEnd = CodeMirror.changeEnd = function(change) {\n    if (!change.text) return change.to;\n    return Pos(change.from.line + change.text.length - 1,\n               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));\n  };\n\n  // Adjust a position to refer to the post-change position of the\n  // same text, or the end of the change if the change covers it.\n  function adjustForChange(pos, change) {\n    if (cmp(pos, change.from) < 0) return pos;\n    if (cmp(pos, change.to) <= 0) return changeEnd(change);\n\n    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n    if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;\n    return Pos(line, ch);\n  }\n\n  function computeSelAfterChange(doc, change) {\n    var out = [];\n    for (var i = 0; i < doc.sel.ranges.length; i++) {\n      var range = doc.sel.ranges[i];\n      out.push(new Range(adjustForChange(range.anchor, change),\n                         adjustForChange(range.head, change)));\n    }\n    return normalizeSelection(out, doc.sel.primIndex);\n  }\n\n  function offsetPos(pos, old, nw) {\n    if (pos.line == old.line)\n      return Pos(nw.line, pos.ch - old.ch + nw.ch);\n    else\n      return Pos(nw.line + (pos.line - old.line), pos.ch);\n  }\n\n  // Used by replaceSelections to allow moving the selection to the\n  // start or around the replaced test. Hint may be \"start\" or \"around\".\n  function computeReplacedSel(doc, changes, hint) {\n    var out = [];\n    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n    for (var i = 0; i < changes.length; i++) {\n      var change = changes[i];\n      var from = offsetPos(change.from, oldPrev, newPrev);\n      var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n      oldPrev = change.to;\n      newPrev = to;\n      if (hint == \"around\") {\n        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n        out[i] = new Range(inv ? to : from, inv ? from : to);\n      } else {\n        out[i] = new Range(from, from);\n      }\n    }\n    return new Selection(out, doc.sel.primIndex);\n  }\n\n  // Allow \"beforeChange\" event handlers to influence a change\n  function filterChange(doc, change, update) {\n    var obj = {\n      canceled: false,\n      from: change.from,\n      to: change.to,\n      text: change.text,\n      origin: change.origin,\n      cancel: function() { this.canceled = true; }\n    };\n    if (update) obj.update = function(from, to, text, origin) {\n      if (from) this.from = clipPos(doc, from);\n      if (to) this.to = clipPos(doc, to);\n      if (text) this.text = text;\n      if (origin !== undefined) this.origin = origin;\n    };\n    signal(doc, \"beforeChange\", doc, obj);\n    if (doc.cm) signal(doc.cm, \"beforeChange\", doc.cm, obj);\n\n    if (obj.canceled) return null;\n    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};\n  }\n\n  // Apply a change to a document, and add it to the document's\n  // history, and propagating it to all linked documents.\n  function makeChange(doc, change, ignoreReadOnly) {\n    if (doc.cm) {\n      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);\n      if (doc.cm.state.suppressEdits) return;\n    }\n\n    if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n      change = filterChange(doc, change, true);\n      if (!change) return;\n    }\n\n    // Possibly split or suppress the update based on the presence\n    // of read-only spans in its range.\n    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n    if (split) {\n      for (var i = split.length - 1; i >= 0; --i)\n        makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text});\n    } else {\n      makeChangeInner(doc, change);\n    }\n  }\n\n  function makeChangeInner(doc, change) {\n    if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) return;\n    var selAfter = computeSelAfterChange(doc, change);\n    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n    var rebased = [];\n\n    linkedDocs(doc, function(doc, sharedHist) {\n      if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n        rebaseHist(doc.history, change);\n        rebased.push(doc.history);\n      }\n      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n    });\n  }\n\n  // Revert a change stored in a document's history.\n  function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n    if (doc.cm && doc.cm.state.suppressEdits) return;\n\n    var hist = doc.history, event, selAfter = doc.sel;\n    var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n    // Verify that there is a useable event (so that ctrl-z won't\n    // needlessly clear selection events)\n    for (var i = 0; i < source.length; i++) {\n      event = source[i];\n      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n        break;\n    }\n    if (i == source.length) return;\n    hist.lastOrigin = hist.lastSelOrigin = null;\n\n    for (;;) {\n      event = source.pop();\n      if (event.ranges) {\n        pushSelectionToHistory(event, dest);\n        if (allowSelectionOnly && !event.equals(doc.sel)) {\n          setSelection(doc, event, {clearRedo: false});\n          return;\n        }\n        selAfter = event;\n      }\n      else break;\n    }\n\n    // Build up a reverse change object to add to the opposite history\n    // stack (redo when undoing, and vice versa).\n    var antiChanges = [];\n    pushSelectionToHistory(selAfter, dest);\n    dest.push({changes: antiChanges, generation: hist.generation});\n    hist.generation = event.generation || ++hist.maxGeneration;\n\n    var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n    for (var i = event.changes.length - 1; i >= 0; --i) {\n      var change = event.changes[i];\n      change.origin = type;\n      if (filter && !filterChange(doc, change, false)) {\n        source.length = 0;\n        return;\n      }\n\n      antiChanges.push(historyChangeFromChange(doc, change));\n\n      var after = i ? computeSelAfterChange(doc, change) : lst(source);\n      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n      if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});\n      var rebased = [];\n\n      // Propagate to the linked documents\n      linkedDocs(doc, function(doc, sharedHist) {\n        if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n          rebaseHist(doc.history, change);\n          rebased.push(doc.history);\n        }\n        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n      });\n    }\n  }\n\n  // Sub-views need their line numbers shifted when text is added\n  // above or below them in the parent document.\n  function shiftDoc(doc, distance) {\n    if (distance == 0) return;\n    doc.first += distance;\n    doc.sel = new Selection(map(doc.sel.ranges, function(range) {\n      return new Range(Pos(range.anchor.line + distance, range.anchor.ch),\n                       Pos(range.head.line + distance, range.head.ch));\n    }), doc.sel.primIndex);\n    if (doc.cm) {\n      regChange(doc.cm, doc.first, doc.first - distance, distance);\n      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n        regLineChange(doc.cm, l, \"gutter\");\n    }\n  }\n\n  // More lower-level change function, handling only a single document\n  // (not linked ones).\n  function makeChangeSingleDoc(doc, change, selAfter, spans) {\n    if (doc.cm && !doc.cm.curOp)\n      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);\n\n    if (change.to.line < doc.first) {\n      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n      return;\n    }\n    if (change.from.line > doc.lastLine()) return;\n\n    // Clip the change to the size of this doc\n    if (change.from.line < doc.first) {\n      var shift = change.text.length - 1 - (doc.first - change.from.line);\n      shiftDoc(doc, shift);\n      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n                text: [lst(change.text)], origin: change.origin};\n    }\n    var last = doc.lastLine();\n    if (change.to.line > last) {\n      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n                text: [change.text[0]], origin: change.origin};\n    }\n\n    change.removed = getBetween(doc, change.from, change.to);\n\n    if (!selAfter) selAfter = computeSelAfterChange(doc, change);\n    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);\n    else updateDoc(doc, change, spans);\n    setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n  }\n\n  // Handle the interaction of a change to a document with the editor\n  // that this document is part of.\n  function makeChangeSingleDocInEditor(cm, change, spans) {\n    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n    var recomputeMaxLength = false, checkWidthStart = from.line;\n    if (!cm.options.lineWrapping) {\n      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n      doc.iter(checkWidthStart, to.line + 1, function(line) {\n        if (line == display.maxLine) {\n          recomputeMaxLength = true;\n          return true;\n        }\n      });\n    }\n\n    if (doc.sel.contains(change.from, change.to) > -1)\n      signalCursorActivity(cm);\n\n    updateDoc(doc, change, spans, estimateHeight(cm));\n\n    if (!cm.options.lineWrapping) {\n      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {\n        var len = lineLength(line);\n        if (len > display.maxLineLength) {\n          display.maxLine = line;\n          display.maxLineLength = len;\n          display.maxLineChanged = true;\n          recomputeMaxLength = false;\n        }\n      });\n      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;\n    }\n\n    // Adjust frontier, schedule worker\n    doc.frontier = Math.min(doc.frontier, from.line);\n    startWorker(cm, 400);\n\n    var lendiff = change.text.length - (to.line - from.line) - 1;\n    // Remember that these lines changed, for updating the display\n    if (change.full)\n      regChange(cm);\n    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n      regLineChange(cm, from.line, \"text\");\n    else\n      regChange(cm, from.line, to.line + 1, lendiff);\n\n    var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n    if (changeHandler || changesHandler) {\n      var obj = {\n        from: from, to: to,\n        text: change.text,\n        removed: change.removed,\n        origin: change.origin\n      };\n      if (changeHandler) signalLater(cm, \"change\", cm, obj);\n      if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);\n    }\n    cm.display.selForContextMenu = null;\n  }\n\n  function replaceRange(doc, code, from, to, origin) {\n    if (!to) to = from;\n    if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }\n    if (typeof code == \"string\") code = splitLines(code);\n    makeChange(doc, {from: from, to: to, text: code, origin: origin});\n  }\n\n  // SCROLLING THINGS INTO VIEW\n\n  // If an editor sits on the top or bottom of the window, partially\n  // scrolled out of view, this ensures that the cursor is visible.\n  function maybeScrollWindow(cm, coords) {\n    if (signalDOMEvent(cm, \"scrollCursorIntoView\")) return;\n\n    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n    if (coords.top + box.top < 0) doScroll = true;\n    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;\n    if (doScroll != null && !phantom) {\n      var scrollNode = elt(\"div\", \"\\u200b\", null, \"position: absolute; top: \" +\n                           (coords.top - display.viewOffset - paddingTop(cm.display)) + \"px; height: \" +\n                           (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + \"px; left: \" +\n                           coords.left + \"px; width: 2px;\");\n      cm.display.lineSpace.appendChild(scrollNode);\n      scrollNode.scrollIntoView(doScroll);\n      cm.display.lineSpace.removeChild(scrollNode);\n    }\n  }\n\n  // Scroll a given position into view (immediately), verifying that\n  // it actually became visible (as line heights are accurately\n  // measured, the position of something may 'drift' during drawing).\n  function scrollPosIntoView(cm, pos, end, margin) {\n    if (margin == null) margin = 0;\n    for (var limit = 0; limit < 5; limit++) {\n      var changed = false, coords = cursorCoords(cm, pos);\n      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),\n                                         Math.min(coords.top, endCoords.top) - margin,\n                                         Math.max(coords.left, endCoords.left),\n                                         Math.max(coords.bottom, endCoords.bottom) + margin);\n      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n      if (scrollPos.scrollTop != null) {\n        setScrollTop(cm, scrollPos.scrollTop);\n        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;\n      }\n      if (scrollPos.scrollLeft != null) {\n        setScrollLeft(cm, scrollPos.scrollLeft);\n        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;\n      }\n      if (!changed) break;\n    }\n    return coords;\n  }\n\n  // Scroll a given set of coordinates into view (immediately).\n  function scrollIntoView(cm, x1, y1, x2, y2) {\n    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);\n    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);\n    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);\n  }\n\n  // Calculate a new scroll position needed to scroll the given\n  // rectangle into view. Returns an object with scrollTop and\n  // scrollLeft properties. When these are undefined, the\n  // vertical/horizontal position does not need to be adjusted.\n  function calculateScrollPos(cm, x1, y1, x2, y2) {\n    var display = cm.display, snapMargin = textHeight(cm.display);\n    if (y1 < 0) y1 = 0;\n    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n    var screen = displayHeight(cm), result = {};\n    if (y2 - y1 > screen) y2 = y1 + screen;\n    var docBottom = cm.doc.height + paddingVert(display);\n    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;\n    if (y1 < screentop) {\n      result.scrollTop = atTop ? 0 : y1;\n    } else if (y2 > screentop + screen) {\n      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);\n      if (newTop != screentop) result.scrollTop = newTop;\n    }\n\n    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;\n    var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);\n    var tooWide = x2 - x1 > screenw;\n    if (tooWide) x2 = x1 + screenw;\n    if (x1 < 10)\n      result.scrollLeft = 0;\n    else if (x1 < screenleft)\n      result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));\n    else if (x2 > screenw + screenleft - 3)\n      result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;\n    return result;\n  }\n\n  // Store a relative adjustment to the scroll position in the current\n  // operation (to be applied when the operation finishes).\n  function addToScrollPos(cm, left, top) {\n    if (left != null || top != null) resolveScrollToPos(cm);\n    if (left != null)\n      cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;\n    if (top != null)\n      cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n  }\n\n  // Make sure that at the end of the operation the current cursor is\n  // shown.\n  function ensureCursorVisible(cm) {\n    resolveScrollToPos(cm);\n    var cur = cm.getCursor(), from = cur, to = cur;\n    if (!cm.options.lineWrapping) {\n      from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;\n      to = Pos(cur.line, cur.ch + 1);\n    }\n    cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};\n  }\n\n  // When an operation has its scrollToPos property set, and another\n  // scroll action is applied before the end of the operation, this\n  // 'simulates' scrolling that position into view in a cheap way, so\n  // that the effect of intermediate scroll commands is not ignored.\n  function resolveScrollToPos(cm) {\n    var range = cm.curOp.scrollToPos;\n    if (range) {\n      cm.curOp.scrollToPos = null;\n      var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n      var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),\n                                    Math.min(from.top, to.top) - range.margin,\n                                    Math.max(from.right, to.right),\n                                    Math.max(from.bottom, to.bottom) + range.margin);\n      cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);\n    }\n  }\n\n  // API UTILITIES\n\n  // Indent the given line. The how parameter can be \"smart\",\n  // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n  // (typically set to true for forced single-line indents), empty\n  // lines are not indented, and places where the mode returns Pass\n  // are left alone.\n  function indentLine(cm, n, how, aggressive) {\n    var doc = cm.doc, state;\n    if (how == null) how = \"add\";\n    if (how == \"smart\") {\n      // Fall back to \"prev\" when the mode doesn't have an indentation\n      // method.\n      if (!doc.mode.indent) how = \"prev\";\n      else state = getStateBefore(cm, n);\n    }\n\n    var tabSize = cm.options.tabSize;\n    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n    if (line.stateAfter) line.stateAfter = null;\n    var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n    if (!aggressive && !/\\S/.test(line.text)) {\n      indentation = 0;\n      how = \"not\";\n    } else if (how == \"smart\") {\n      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n      if (indentation == Pass || indentation > 150) {\n        if (!aggressive) return;\n        how = \"prev\";\n      }\n    }\n    if (how == \"prev\") {\n      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);\n      else indentation = 0;\n    } else if (how == \"add\") {\n      indentation = curSpace + cm.options.indentUnit;\n    } else if (how == \"subtract\") {\n      indentation = curSpace - cm.options.indentUnit;\n    } else if (typeof how == \"number\") {\n      indentation = curSpace + how;\n    }\n    indentation = Math.max(0, indentation);\n\n    var indentString = \"\", pos = 0;\n    if (cm.options.indentWithTabs)\n      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";}\n    if (pos < indentation) indentString += spaceStr(indentation - pos);\n\n    if (indentString != curSpaceString) {\n      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n    } else {\n      // Ensure that, if the cursor was in the whitespace at the start\n      // of the line, it is moved to the end of that space.\n      for (var i = 0; i < doc.sel.ranges.length; i++) {\n        var range = doc.sel.ranges[i];\n        if (range.head.line == n && range.head.ch < curSpaceString.length) {\n          var pos = Pos(n, curSpaceString.length);\n          replaceOneSelection(doc, i, new Range(pos, pos));\n          break;\n        }\n      }\n    }\n    line.stateAfter = null;\n  }\n\n  // Utility for applying a change to a line by handle or number,\n  // returning the number and optionally registering the line as\n  // changed.\n  function changeLine(doc, handle, changeType, op) {\n    var no = handle, line = handle;\n    if (typeof handle == \"number\") line = getLine(doc, clipLine(doc, handle));\n    else no = lineNo(handle);\n    if (no == null) return null;\n    if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);\n    return line;\n  }\n\n  // Helper for deleting text near the selection(s), used to implement\n  // backspace, delete, and similar functionality.\n  function deleteNearSelection(cm, compute) {\n    var ranges = cm.doc.sel.ranges, kill = [];\n    // Build up a set of ranges to kill first, merging overlapping\n    // ranges.\n    for (var i = 0; i < ranges.length; i++) {\n      var toKill = compute(ranges[i]);\n      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n        var replaced = kill.pop();\n        if (cmp(replaced.from, toKill.from) < 0) {\n          toKill.from = replaced.from;\n          break;\n        }\n      }\n      kill.push(toKill);\n    }\n    // Next, remove those actual ranges.\n    runInOp(cm, function() {\n      for (var i = kill.length - 1; i >= 0; i--)\n        replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\");\n      ensureCursorVisible(cm);\n    });\n  }\n\n  // Used for horizontal relative motion. Dir is -1 or 1 (left or\n  // right), unit can be \"char\", \"column\" (like char, but doesn't\n  // cross line boundaries), \"word\" (across next word), or \"group\" (to\n  // the start of next group of word or non-word-non-whitespace\n  // chars). The visually param controls whether, in right-to-left\n  // text, direction 1 means to move towards the next index in the\n  // string, or towards the character to the right of the current\n  // position. The resulting position will have a hitSide=true\n  // property if it reached the end of the document.\n  function findPosH(doc, pos, dir, unit, visually) {\n    var line = pos.line, ch = pos.ch, origDir = dir;\n    var lineObj = getLine(doc, line);\n    var possible = true;\n    function findNextLine() {\n      var l = line + dir;\n      if (l < doc.first || l >= doc.first + doc.size) return (possible = false);\n      line = l;\n      return lineObj = getLine(doc, l);\n    }\n    function moveOnce(boundToLine) {\n      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);\n      if (next == null) {\n        if (!boundToLine && findNextLine()) {\n          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);\n          else ch = dir < 0 ? lineObj.text.length : 0;\n        } else return (possible = false);\n      } else ch = next;\n      return true;\n    }\n\n    if (unit == \"char\") moveOnce();\n    else if (unit == \"column\") moveOnce(true);\n    else if (unit == \"word\" || unit == \"group\") {\n      var sawType = null, group = unit == \"group\";\n      var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n      for (var first = true;; first = false) {\n        if (dir < 0 && !moveOnce(!first)) break;\n        var cur = lineObj.text.charAt(ch) || \"\\n\";\n        var type = isWordChar(cur, helper) ? \"w\"\n          : group && cur == \"\\n\" ? \"n\"\n          : !group || /\\s/.test(cur) ? null\n          : \"p\";\n        if (group && !first && !type) type = \"s\";\n        if (sawType && sawType != type) {\n          if (dir < 0) {dir = 1; moveOnce();}\n          break;\n        }\n\n        if (type) sawType = type;\n        if (dir > 0 && !moveOnce(!first)) break;\n      }\n    }\n    var result = skipAtomic(doc, Pos(line, ch), origDir, true);\n    if (!possible) result.hitSide = true;\n    return result;\n  }\n\n  // For relative vertical movement. Dir may be -1 or 1. Unit can be\n  // \"page\" or \"line\". The resulting position will have a hitSide=true\n  // property if it reached the end of the document.\n  function findPosV(cm, pos, dir, unit) {\n    var doc = cm.doc, x = pos.left, y;\n    if (unit == \"page\") {\n      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));\n    } else if (unit == \"line\") {\n      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n    }\n    for (;;) {\n      var target = coordsChar(cm, x, y);\n      if (!target.outside) break;\n      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }\n      y += dir * 5;\n    }\n    return target;\n  }\n\n  // EDITOR METHODS\n\n  // The publicly visible API. Note that methodOp(f) means\n  // 'wrap f in an operation, performed on its `this` parameter'.\n\n  // This is not the complete set of editor methods. Most of the\n  // methods defined on the Doc type are also injected into\n  // CodeMirror.prototype, for backwards compatibility and\n  // convenience.\n\n  CodeMirror.prototype = {\n    constructor: CodeMirror,\n    focus: function(){window.focus(); this.display.input.focus();},\n\n    setOption: function(option, value) {\n      var options = this.options, old = options[option];\n      if (options[option] == value && option != \"mode\") return;\n      options[option] = value;\n      if (optionHandlers.hasOwnProperty(option))\n        operation(this, optionHandlers[option])(this, value, old);\n    },\n\n    getOption: function(option) {return this.options[option];},\n    getDoc: function() {return this.doc;},\n\n    addKeyMap: function(map, bottom) {\n      this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n    },\n    removeKeyMap: function(map) {\n      var maps = this.state.keyMaps;\n      for (var i = 0; i < maps.length; ++i)\n        if (maps[i] == map || maps[i].name == map) {\n          maps.splice(i, 1);\n          return true;\n        }\n    },\n\n    addOverlay: methodOp(function(spec, options) {\n      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n      if (mode.startState) throw new Error(\"Overlays may not be stateful.\");\n      this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque});\n      this.state.modeGen++;\n      regChange(this);\n    }),\n    removeOverlay: methodOp(function(spec) {\n      var overlays = this.state.overlays;\n      for (var i = 0; i < overlays.length; ++i) {\n        var cur = overlays[i].modeSpec;\n        if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n          overlays.splice(i, 1);\n          this.state.modeGen++;\n          regChange(this);\n          return;\n        }\n      }\n    }),\n\n    indentLine: methodOp(function(n, dir, aggressive) {\n      if (typeof dir != \"string\" && typeof dir != \"number\") {\n        if (dir == null) dir = this.options.smartIndent ? \"smart\" : \"prev\";\n        else dir = dir ? \"add\" : \"subtract\";\n      }\n      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);\n    }),\n    indentSelection: methodOp(function(how) {\n      var ranges = this.doc.sel.ranges, end = -1;\n      for (var i = 0; i < ranges.length; i++) {\n        var range = ranges[i];\n        if (!range.empty()) {\n          var from = range.from(), to = range.to();\n          var start = Math.max(end, from.line);\n          end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n          for (var j = start; j < end; ++j)\n            indentLine(this, j, how);\n          var newRanges = this.doc.sel.ranges;\n          if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n            replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);\n        } else if (range.head.line > end) {\n          indentLine(this, range.head.line, how, true);\n          end = range.head.line;\n          if (i == this.doc.sel.primIndex) ensureCursorVisible(this);\n        }\n      }\n    }),\n\n    // Fetch the parser token for a given character. Useful for hacks\n    // that want to inspect the mode state (say, for completion).\n    getTokenAt: function(pos, precise) {\n      return takeToken(this, pos, precise);\n    },\n\n    getLineTokens: function(line, precise) {\n      return takeToken(this, Pos(line), precise, true);\n    },\n\n    getTokenTypeAt: function(pos) {\n      pos = clipPos(this.doc, pos);\n      var styles = getLineStyles(this, getLine(this.doc, pos.line));\n      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n      var type;\n      if (ch == 0) type = styles[2];\n      else for (;;) {\n        var mid = (before + after) >> 1;\n        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;\n        else if (styles[mid * 2 + 1] < ch) before = mid + 1;\n        else { type = styles[mid * 2 + 2]; break; }\n      }\n      var cut = type ? type.indexOf(\"cm-overlay \") : -1;\n      return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);\n    },\n\n    getModeAt: function(pos) {\n      var mode = this.doc.mode;\n      if (!mode.innerMode) return mode;\n      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;\n    },\n\n    getHelper: function(pos, type) {\n      return this.getHelpers(pos, type)[0];\n    },\n\n    getHelpers: function(pos, type) {\n      var found = [];\n      if (!helpers.hasOwnProperty(type)) return helpers;\n      var help = helpers[type], mode = this.getModeAt(pos);\n      if (typeof mode[type] == \"string\") {\n        if (help[mode[type]]) found.push(help[mode[type]]);\n      } else if (mode[type]) {\n        for (var i = 0; i < mode[type].length; i++) {\n          var val = help[mode[type][i]];\n          if (val) found.push(val);\n        }\n      } else if (mode.helperType && help[mode.helperType]) {\n        found.push(help[mode.helperType]);\n      } else if (help[mode.name]) {\n        found.push(help[mode.name]);\n      }\n      for (var i = 0; i < help._global.length; i++) {\n        var cur = help._global[i];\n        if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n          found.push(cur.val);\n      }\n      return found;\n    },\n\n    getStateAfter: function(line, precise) {\n      var doc = this.doc;\n      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n      return getStateBefore(this, line + 1, precise);\n    },\n\n    cursorCoords: function(start, mode) {\n      var pos, range = this.doc.sel.primary();\n      if (start == null) pos = range.head;\n      else if (typeof start == \"object\") pos = clipPos(this.doc, start);\n      else pos = start ? range.from() : range.to();\n      return cursorCoords(this, pos, mode || \"page\");\n    },\n\n    charCoords: function(pos, mode) {\n      return charCoords(this, clipPos(this.doc, pos), mode || \"page\");\n    },\n\n    coordsChar: function(coords, mode) {\n      coords = fromCoordSystem(this, coords, mode || \"page\");\n      return coordsChar(this, coords.left, coords.top);\n    },\n\n    lineAtHeight: function(height, mode) {\n      height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n      return lineAtHeight(this.doc, height + this.display.viewOffset);\n    },\n    heightAtLine: function(line, mode) {\n      var end = false, last = this.doc.first + this.doc.size - 1;\n      if (line < this.doc.first) line = this.doc.first;\n      else if (line > last) { line = last; end = true; }\n      var lineObj = getLine(this.doc, line);\n      return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\").top +\n        (end ? this.doc.height - heightAtLine(lineObj) : 0);\n    },\n\n    defaultTextHeight: function() { return textHeight(this.display); },\n    defaultCharWidth: function() { return charWidth(this.display); },\n\n    setGutterMarker: methodOp(function(line, gutterID, value) {\n      return changeLine(this.doc, line, \"gutter\", function(line) {\n        var markers = line.gutterMarkers || (line.gutterMarkers = {});\n        markers[gutterID] = value;\n        if (!value && isEmpty(markers)) line.gutterMarkers = null;\n        return true;\n      });\n    }),\n\n    clearGutter: methodOp(function(gutterID) {\n      var cm = this, doc = cm.doc, i = doc.first;\n      doc.iter(function(line) {\n        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n          line.gutterMarkers[gutterID] = null;\n          regLineChange(cm, i, \"gutter\");\n          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;\n        }\n        ++i;\n      });\n    }),\n\n    addLineWidget: methodOp(function(handle, node, options) {\n      return addLineWidget(this, handle, node, options);\n    }),\n\n    removeLineWidget: function(widget) { widget.clear(); },\n\n    lineInfo: function(line) {\n      if (typeof line == \"number\") {\n        if (!isLine(this.doc, line)) return null;\n        var n = line;\n        line = getLine(this.doc, line);\n        if (!line) return null;\n      } else {\n        var n = lineNo(line);\n        if (n == null) return null;\n      }\n      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n              widgets: line.widgets};\n    },\n\n    getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},\n\n    addWidget: function(pos, node, scroll, vert, horiz) {\n      var display = this.display;\n      pos = cursorCoords(this, clipPos(this.doc, pos));\n      var top = pos.bottom, left = pos.left;\n      node.style.position = \"absolute\";\n      node.setAttribute(\"cm-ignore-events\", \"true\");\n      this.display.input.setUneditable(node);\n      display.sizer.appendChild(node);\n      if (vert == \"over\") {\n        top = pos.top;\n      } else if (vert == \"above\" || vert == \"near\") {\n        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n        // Default to positioning above (if specified and possible); otherwise default to positioning below\n        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n          top = pos.top - node.offsetHeight;\n        else if (pos.bottom + node.offsetHeight <= vspace)\n          top = pos.bottom;\n        if (left + node.offsetWidth > hspace)\n          left = hspace - node.offsetWidth;\n      }\n      node.style.top = top + \"px\";\n      node.style.left = node.style.right = \"\";\n      if (horiz == \"right\") {\n        left = display.sizer.clientWidth - node.offsetWidth;\n        node.style.right = \"0px\";\n      } else {\n        if (horiz == \"left\") left = 0;\n        else if (horiz == \"middle\") left = (display.sizer.clientWidth - node.offsetWidth) / 2;\n        node.style.left = left + \"px\";\n      }\n      if (scroll)\n        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);\n    },\n\n    triggerOnKeyDown: methodOp(onKeyDown),\n    triggerOnKeyPress: methodOp(onKeyPress),\n    triggerOnKeyUp: onKeyUp,\n\n    execCommand: function(cmd) {\n      if (commands.hasOwnProperty(cmd))\n        return commands[cmd](this);\n    },\n\n    findPosH: function(from, amount, unit, visually) {\n      var dir = 1;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        cur = findPosH(this.doc, cur, dir, unit, visually);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveH: methodOp(function(dir, unit) {\n      var cm = this;\n      cm.extendSelectionsBy(function(range) {\n        if (cm.display.shift || cm.doc.extend || range.empty())\n          return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);\n        else\n          return dir < 0 ? range.from() : range.to();\n      }, sel_move);\n    }),\n\n    deleteH: methodOp(function(dir, unit) {\n      var sel = this.doc.sel, doc = this.doc;\n      if (sel.somethingSelected())\n        doc.replaceSelection(\"\", null, \"+delete\");\n      else\n        deleteNearSelection(this, function(range) {\n          var other = findPosH(doc, range.head, dir, unit, false);\n          return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};\n        });\n    }),\n\n    findPosV: function(from, amount, unit, goalColumn) {\n      var dir = 1, x = goalColumn;\n      if (amount < 0) { dir = -1; amount = -amount; }\n      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {\n        var coords = cursorCoords(this, cur, \"div\");\n        if (x == null) x = coords.left;\n        else coords.left = x;\n        cur = findPosV(this, coords, dir, unit);\n        if (cur.hitSide) break;\n      }\n      return cur;\n    },\n\n    moveV: methodOp(function(dir, unit) {\n      var cm = this, doc = this.doc, goals = [];\n      var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();\n      doc.extendSelectionsBy(function(range) {\n        if (collapse)\n          return dir < 0 ? range.from() : range.to();\n        var headPos = cursorCoords(cm, range.head, \"div\");\n        if (range.goalColumn != null) headPos.left = range.goalColumn;\n        goals.push(headPos.left);\n        var pos = findPosV(cm, headPos, dir, unit);\n        if (unit == \"page\" && range == doc.sel.primary())\n          addToScrollPos(cm, null, charCoords(cm, pos, \"div\").top - headPos.top);\n        return pos;\n      }, sel_move);\n      if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)\n        doc.sel.ranges[i].goalColumn = goals[i];\n    }),\n\n    // Find the word at the given position (as returned by coordsChar).\n    findWordAt: function(pos) {\n      var doc = this.doc, line = getLine(doc, pos.line).text;\n      var start = pos.ch, end = pos.ch;\n      if (line) {\n        var helper = this.getHelper(pos, \"wordChars\");\n        if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;\n        var startChar = line.charAt(start);\n        var check = isWordChar(startChar, helper)\n          ? function(ch) { return isWordChar(ch, helper); }\n          : /\\s/.test(startChar) ? function(ch) {return /\\s/.test(ch);}\n          : function(ch) {return !/\\s/.test(ch) && !isWordChar(ch);};\n        while (start > 0 && check(line.charAt(start - 1))) --start;\n        while (end < line.length && check(line.charAt(end))) ++end;\n      }\n      return new Range(Pos(pos.line, start), Pos(pos.line, end));\n    },\n\n    toggleOverwrite: function(value) {\n      if (value != null && value == this.state.overwrite) return;\n      if (this.state.overwrite = !this.state.overwrite)\n        addClass(this.display.cursorDiv, \"CodeMirror-overwrite\");\n      else\n        rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\");\n\n      signal(this, \"overwriteToggle\", this, this.state.overwrite);\n    },\n    hasFocus: function() { return this.display.input.getField() == activeElt(); },\n\n    scrollTo: methodOp(function(x, y) {\n      if (x != null || y != null) resolveScrollToPos(this);\n      if (x != null) this.curOp.scrollLeft = x;\n      if (y != null) this.curOp.scrollTop = y;\n    }),\n    getScrollInfo: function() {\n      var scroller = this.display.scroller;\n      return {left: scroller.scrollLeft, top: scroller.scrollTop,\n              height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n              width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n              clientHeight: displayHeight(this), clientWidth: displayWidth(this)};\n    },\n\n    scrollIntoView: methodOp(function(range, margin) {\n      if (range == null) {\n        range = {from: this.doc.sel.primary().head, to: null};\n        if (margin == null) margin = this.options.cursorScrollMargin;\n      } else if (typeof range == \"number\") {\n        range = {from: Pos(range, 0), to: null};\n      } else if (range.from == null) {\n        range = {from: range, to: null};\n      }\n      if (!range.to) range.to = range.from;\n      range.margin = margin || 0;\n\n      if (range.from.line != null) {\n        resolveScrollToPos(this);\n        this.curOp.scrollToPos = range;\n      } else {\n        var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),\n                                      Math.min(range.from.top, range.to.top) - range.margin,\n                                      Math.max(range.from.right, range.to.right),\n                                      Math.max(range.from.bottom, range.to.bottom) + range.margin);\n        this.scrollTo(sPos.scrollLeft, sPos.scrollTop);\n      }\n    }),\n\n    setSize: methodOp(function(width, height) {\n      var cm = this;\n      function interpret(val) {\n        return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val;\n      }\n      if (width != null) cm.display.wrapper.style.width = interpret(width);\n      if (height != null) cm.display.wrapper.style.height = interpret(height);\n      if (cm.options.lineWrapping) clearLineMeasurementCache(this);\n      var lineNo = cm.display.viewFrom;\n      cm.doc.iter(lineNo, cm.display.viewTo, function(line) {\n        if (line.widgets) for (var i = 0; i < line.widgets.length; i++)\n          if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, \"widget\"); break; }\n        ++lineNo;\n      });\n      cm.curOp.forceUpdate = true;\n      signal(cm, \"refresh\", this);\n    }),\n\n    operation: function(f){return runInOp(this, f);},\n\n    refresh: methodOp(function() {\n      var oldHeight = this.display.cachedTextHeight;\n      regChange(this);\n      this.curOp.forceUpdate = true;\n      clearCaches(this);\n      this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);\n      updateGutterSpace(this);\n      if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)\n        estimateLineHeights(this);\n      signal(this, \"refresh\", this);\n    }),\n\n    swapDoc: methodOp(function(doc) {\n      var old = this.doc;\n      old.cm = null;\n      attachDoc(this, doc);\n      clearCaches(this);\n      this.display.input.reset();\n      this.scrollTo(doc.scrollLeft, doc.scrollTop);\n      this.curOp.forceScroll = true;\n      signalLater(this, \"swapDoc\", this, old);\n      return old;\n    }),\n\n    getInputField: function(){return this.display.input.getField();},\n    getWrapperElement: function(){return this.display.wrapper;},\n    getScrollerElement: function(){return this.display.scroller;},\n    getGutterElement: function(){return this.display.gutters;}\n  };\n  eventMixin(CodeMirror);\n\n  // OPTION DEFAULTS\n\n  // The default configuration options.\n  var defaults = CodeMirror.defaults = {};\n  // Functions to run when options are changed.\n  var optionHandlers = CodeMirror.optionHandlers = {};\n\n  function option(name, deflt, handle, notOnInit) {\n    CodeMirror.defaults[name] = deflt;\n    if (handle) optionHandlers[name] =\n      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;\n  }\n\n  // Passed to option handlers when there is no old value.\n  var Init = CodeMirror.Init = {toString: function(){return \"CodeMirror.Init\";}};\n\n  // These two are, on init, called from the constructor because they\n  // have to be initialized before the editor can start at all.\n  option(\"value\", \"\", function(cm, val) {\n    cm.setValue(val);\n  }, true);\n  option(\"mode\", null, function(cm, val) {\n    cm.doc.modeOption = val;\n    loadMode(cm);\n  }, true);\n\n  option(\"indentUnit\", 2, loadMode, true);\n  option(\"indentWithTabs\", false);\n  option(\"smartIndent\", true);\n  option(\"tabSize\", 4, function(cm) {\n    resetModeState(cm);\n    clearCaches(cm);\n    regChange(cm);\n  }, true);\n  option(\"specialChars\", /[\\t\\u0000-\\u0019\\u00ad\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g, function(cm, val) {\n    cm.options.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n    cm.refresh();\n  }, true);\n  option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);\n  option(\"electricChars\", true);\n  option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function() {\n    throw new Error(\"inputStyle can not (yet) be changed in a running editor\"); // FIXME\n  }, true);\n  option(\"rtlMoveVisually\", !windows);\n  option(\"wholeLineUpdateBefore\", true);\n\n  option(\"theme\", \"default\", function(cm) {\n    themeChanged(cm);\n    guttersChanged(cm);\n  }, true);\n  option(\"keyMap\", \"default\", function(cm, val, old) {\n    var next = getKeyMap(val);\n    var prev = old != CodeMirror.Init && getKeyMap(old);\n    if (prev && prev.detach) prev.detach(cm, next);\n    if (next.attach) next.attach(cm, prev || null);\n  });\n  option(\"extraKeys\", null);\n\n  option(\"lineWrapping\", false, wrappingChanged, true);\n  option(\"gutters\", [], function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"fixedGutter\", true, function(cm, val) {\n    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n    cm.refresh();\n  }, true);\n  option(\"coverGutterNextToScrollbar\", false, function(cm) {updateScrollbars(cm);}, true);\n  option(\"scrollbarStyle\", \"native\", function(cm) {\n    initScrollbars(cm);\n    updateScrollbars(cm);\n    cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n    cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n  }, true);\n  option(\"lineNumbers\", false, function(cm) {\n    setGuttersForLineNumbers(cm.options);\n    guttersChanged(cm);\n  }, true);\n  option(\"firstLineNumber\", 1, guttersChanged, true);\n  option(\"lineNumberFormatter\", function(integer) {return integer;}, guttersChanged, true);\n  option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n  option(\"resetSelectionOnContextMenu\", true);\n\n  option(\"readOnly\", false, function(cm, val) {\n    if (val == \"nocursor\") {\n      onBlur(cm);\n      cm.display.input.blur();\n      cm.display.disabled = true;\n    } else {\n      cm.display.disabled = false;\n      if (!val) cm.display.input.reset();\n    }\n  });\n  option(\"disableInput\", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);\n  option(\"dragDrop\", true);\n\n  option(\"cursorBlinkRate\", 530);\n  option(\"cursorScrollMargin\", 0);\n  option(\"cursorHeight\", 1, updateSelection, true);\n  option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n  option(\"workTime\", 100);\n  option(\"workDelay\", 100);\n  option(\"flattenSpans\", true, resetModeState, true);\n  option(\"addModeClass\", false, resetModeState, true);\n  option(\"pollInterval\", 100);\n  option(\"undoDepth\", 200, function(cm, val){cm.doc.history.undoDepth = val;});\n  option(\"historyEventDelay\", 1250);\n  option(\"viewportMargin\", 10, function(cm){cm.refresh();}, true);\n  option(\"maxHighlightLength\", 10000, resetModeState, true);\n  option(\"moveInputWithCursor\", true, function(cm, val) {\n    if (!val) cm.display.input.resetPosition();\n  });\n\n  option(\"tabindex\", null, function(cm, val) {\n    cm.display.input.getField().tabIndex = val || \"\";\n  });\n  option(\"autofocus\", null);\n\n  // MODE DEFINITION AND QUERYING\n\n  // Known modes, by name and by MIME\n  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};\n\n  // Extra arguments are stored as the mode's dependencies, which is\n  // used by (legacy) mechanisms like loadmode.js to automatically\n  // load a mode. (Preferred mechanism is the require/define calls.)\n  CodeMirror.defineMode = function(name, mode) {\n    if (!CodeMirror.defaults.mode && name != \"null\") CodeMirror.defaults.mode = name;\n    if (arguments.length > 2)\n      mode.dependencies = Array.prototype.slice.call(arguments, 2);\n    modes[name] = mode;\n  };\n\n  CodeMirror.defineMIME = function(mime, spec) {\n    mimeModes[mime] = spec;\n  };\n\n  // Given a MIME type, a {name, ...options} config object, or a name\n  // string, return a mode config object.\n  CodeMirror.resolveMode = function(spec) {\n    if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n      spec = mimeModes[spec];\n    } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n      var found = mimeModes[spec.name];\n      if (typeof found == \"string\") found = {name: found};\n      spec = createObj(found, spec);\n      spec.name = found.name;\n    } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n      return CodeMirror.resolveMode(\"application/xml\");\n    }\n    if (typeof spec == \"string\") return {name: spec};\n    else return spec || {name: \"null\"};\n  };\n\n  // Given a mode spec (anything that resolveMode accepts), find and\n  // initialize an actual mode object.\n  CodeMirror.getMode = function(options, spec) {\n    var spec = CodeMirror.resolveMode(spec);\n    var mfactory = modes[spec.name];\n    if (!mfactory) return CodeMirror.getMode(options, \"text/plain\");\n    var modeObj = mfactory(options, spec);\n    if (modeExtensions.hasOwnProperty(spec.name)) {\n      var exts = modeExtensions[spec.name];\n      for (var prop in exts) {\n        if (!exts.hasOwnProperty(prop)) continue;\n        if (modeObj.hasOwnProperty(prop)) modeObj[\"_\" + prop] = modeObj[prop];\n        modeObj[prop] = exts[prop];\n      }\n    }\n    modeObj.name = spec.name;\n    if (spec.helperType) modeObj.helperType = spec.helperType;\n    if (spec.modeProps) for (var prop in spec.modeProps)\n      modeObj[prop] = spec.modeProps[prop];\n\n    return modeObj;\n  };\n\n  // Minimal default mode.\n  CodeMirror.defineMode(\"null\", function() {\n    return {token: function(stream) {stream.skipToEnd();}};\n  });\n  CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n  // This can be used to attach properties to mode objects from\n  // outside the actual mode definition.\n  var modeExtensions = CodeMirror.modeExtensions = {};\n  CodeMirror.extendMode = function(mode, properties) {\n    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n    copyObj(properties, exts);\n  };\n\n  // EXTENSIONS\n\n  CodeMirror.defineExtension = function(name, func) {\n    CodeMirror.prototype[name] = func;\n  };\n  CodeMirror.defineDocExtension = function(name, func) {\n    Doc.prototype[name] = func;\n  };\n  CodeMirror.defineOption = option;\n\n  var initHooks = [];\n  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};\n\n  var helpers = CodeMirror.helpers = {};\n  CodeMirror.registerHelper = function(type, name, value) {\n    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};\n    helpers[type][name] = value;\n  };\n  CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n    CodeMirror.registerHelper(type, name, value);\n    helpers[type]._global.push({pred: predicate, val: value});\n  };\n\n  // MODE STATE HANDLING\n\n  // Utility functions for working with state. Exported because nested\n  // modes need to do this for their inner modes.\n\n  var copyState = CodeMirror.copyState = function(mode, state) {\n    if (state === true) return state;\n    if (mode.copyState) return mode.copyState(state);\n    var nstate = {};\n    for (var n in state) {\n      var val = state[n];\n      if (val instanceof Array) val = val.concat([]);\n      nstate[n] = val;\n    }\n    return nstate;\n  };\n\n  var startState = CodeMirror.startState = function(mode, a1, a2) {\n    return mode.startState ? mode.startState(a1, a2) : true;\n  };\n\n  // Given a mode and a state (for that mode), find the inner mode and\n  // state at the position that the state refers to.\n  CodeMirror.innerMode = function(mode, state) {\n    while (mode.innerMode) {\n      var info = mode.innerMode(state);\n      if (!info || info.mode == mode) break;\n      state = info.state;\n      mode = info.mode;\n    }\n    return info || {mode: mode, state: state};\n  };\n\n  // STANDARD COMMANDS\n\n  // Commands are parameter-less actions that can be performed on an\n  // editor, mostly used for keybindings.\n  var commands = CodeMirror.commands = {\n    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},\n    singleSelection: function(cm) {\n      cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll);\n    },\n    killLine: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        if (range.empty()) {\n          var len = getLine(cm.doc, range.head.line).text.length;\n          if (range.head.ch == len && range.head.line < cm.lastLine())\n            return {from: range.head, to: Pos(range.head.line + 1, 0)};\n          else\n            return {from: range.head, to: Pos(range.head.line, len)};\n        } else {\n          return {from: range.from(), to: range.to()};\n        }\n      });\n    },\n    deleteLine: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        return {from: Pos(range.from().line, 0),\n                to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};\n      });\n    },\n    delLineLeft: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        return {from: Pos(range.from().line, 0), to: range.from()};\n      });\n    },\n    delWrappedLineLeft: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n        return {from: leftPos, to: range.from()};\n      });\n    },\n    delWrappedLineRight: function(cm) {\n      deleteNearSelection(cm, function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n        return {from: range.from(), to: rightPos };\n      });\n    },\n    undo: function(cm) {cm.undo();},\n    redo: function(cm) {cm.redo();},\n    undoSelection: function(cm) {cm.undoSelection();},\n    redoSelection: function(cm) {cm.redoSelection();},\n    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},\n    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},\n    goLineStart: function(cm) {\n      cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },\n                            {origin: \"+move\", bias: 1});\n    },\n    goLineStartSmart: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        return lineStartSmart(cm, range.head);\n      }, {origin: \"+move\", bias: 1});\n    },\n    goLineEnd: function(cm) {\n      cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },\n                            {origin: \"+move\", bias: -1});\n    },\n    goLineRight: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n      }, sel_move);\n    },\n    goLineLeft: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        return cm.coordsChar({left: 0, top: top}, \"div\");\n      }, sel_move);\n    },\n    goLineLeftSmart: function(cm) {\n      cm.extendSelectionsBy(function(range) {\n        var top = cm.charCoords(range.head, \"div\").top + 5;\n        var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n        if (pos.ch < cm.getLine(pos.line).search(/\\S/)) return lineStartSmart(cm, range.head);\n        return pos;\n      }, sel_move);\n    },\n    goLineUp: function(cm) {cm.moveV(-1, \"line\");},\n    goLineDown: function(cm) {cm.moveV(1, \"line\");},\n    goPageUp: function(cm) {cm.moveV(-1, \"page\");},\n    goPageDown: function(cm) {cm.moveV(1, \"page\");},\n    goCharLeft: function(cm) {cm.moveH(-1, \"char\");},\n    goCharRight: function(cm) {cm.moveH(1, \"char\");},\n    goColumnLeft: function(cm) {cm.moveH(-1, \"column\");},\n    goColumnRight: function(cm) {cm.moveH(1, \"column\");},\n    goWordLeft: function(cm) {cm.moveH(-1, \"word\");},\n    goGroupRight: function(cm) {cm.moveH(1, \"group\");},\n    goGroupLeft: function(cm) {cm.moveH(-1, \"group\");},\n    goWordRight: function(cm) {cm.moveH(1, \"word\");},\n    delCharBefore: function(cm) {cm.deleteH(-1, \"char\");},\n    delCharAfter: function(cm) {cm.deleteH(1, \"char\");},\n    delWordBefore: function(cm) {cm.deleteH(-1, \"word\");},\n    delWordAfter: function(cm) {cm.deleteH(1, \"word\");},\n    delGroupBefore: function(cm) {cm.deleteH(-1, \"group\");},\n    delGroupAfter: function(cm) {cm.deleteH(1, \"group\");},\n    indentAuto: function(cm) {cm.indentSelection(\"smart\");},\n    indentMore: function(cm) {cm.indentSelection(\"add\");},\n    indentLess: function(cm) {cm.indentSelection(\"subtract\");},\n    insertTab: function(cm) {cm.replaceSelection(\"\\t\");},\n    insertSoftTab: function(cm) {\n      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n      for (var i = 0; i < ranges.length; i++) {\n        var pos = ranges[i].from();\n        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n        spaces.push(new Array(tabSize - col % tabSize + 1).join(\" \"));\n      }\n      cm.replaceSelections(spaces);\n    },\n    defaultTab: function(cm) {\n      if (cm.somethingSelected()) cm.indentSelection(\"add\");\n      else cm.execCommand(\"insertTab\");\n    },\n    transposeChars: function(cm) {\n      runInOp(cm, function() {\n        var ranges = cm.listSelections(), newSel = [];\n        for (var i = 0; i < ranges.length; i++) {\n          var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n          if (line) {\n            if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);\n            if (cur.ch > 0) {\n              cur = new Pos(cur.line, cur.ch + 1);\n              cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n                              Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n            } else if (cur.line > cm.doc.first) {\n              var prev = getLine(cm.doc, cur.line - 1).text;\n              if (prev)\n                cm.replaceRange(line.charAt(0) + \"\\n\" + prev.charAt(prev.length - 1),\n                                Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), \"+transpose\");\n            }\n          }\n          newSel.push(new Range(cur, cur));\n        }\n        cm.setSelections(newSel);\n      });\n    },\n    newlineAndIndent: function(cm) {\n      runInOp(cm, function() {\n        var len = cm.listSelections().length;\n        for (var i = 0; i < len; i++) {\n          var range = cm.listSelections()[i];\n          cm.replaceRange(\"\\n\", range.anchor, range.head, \"+input\");\n          cm.indentLine(range.from().line + 1, null, true);\n          ensureCursorVisible(cm);\n        }\n      });\n    },\n    toggleOverwrite: function(cm) {cm.toggleOverwrite();}\n  };\n\n\n  // STANDARD KEYMAPS\n\n  var keyMap = CodeMirror.keyMap = {};\n\n  keyMap.basic = {\n    \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n    \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n    \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n    \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n    \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n    \"Esc\": \"singleSelection\"\n  };\n  // Note that the save and find-related commands aren't defined by\n  // default. User code or addons can define them. Unknown commands\n  // are simply ignored.\n  keyMap.pcDefault = {\n    \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n    \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n    \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n    \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n    \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n    \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n    \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n    fallthrough: \"basic\"\n  };\n  // Very basic readline/emacs-style bindings, which are standard on Mac.\n  keyMap.emacsy = {\n    \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n    \"Alt-F\": \"goWordRight\", \"Alt-B\": \"goWordLeft\", \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\",\n    \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\", \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\",\n    \"Alt-D\": \"delWordAfter\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\", \"Ctrl-T\": \"transposeChars\"\n  };\n  keyMap.macDefault = {\n    \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n    \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n    \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n    \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n    \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n    \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n    \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n    fallthrough: [\"basic\", \"emacsy\"]\n  };\n  keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n  // KEYMAP DISPATCH\n\n  function normalizeKeyName(name) {\n    var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];\n    var alt, ctrl, shift, cmd;\n    for (var i = 0; i < parts.length - 1; i++) {\n      var mod = parts[i];\n      if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;\n      else if (/^a(lt)?$/i.test(mod)) alt = true;\n      else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;\n      else if (/^s(hift)$/i.test(mod)) shift = true;\n      else throw new Error(\"Unrecognized modifier name: \" + mod);\n    }\n    if (alt) name = \"Alt-\" + name;\n    if (ctrl) name = \"Ctrl-\" + name;\n    if (cmd) name = \"Cmd-\" + name;\n    if (shift) name = \"Shift-\" + name;\n    return name;\n  }\n\n  // This is a kludge to keep keymaps mostly working as raw objects\n  // (backwards compatibility) while at the same time support features\n  // like normalization and multi-stroke key bindings. It compiles a\n  // new normalized keymap, and then updates the old object to reflect\n  // this.\n  CodeMirror.normalizeKeyMap = function(keymap) {\n    var copy = {};\n    for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {\n      var value = keymap[keyname];\n      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;\n      if (value == \"...\") { delete keymap[keyname]; continue; }\n\n      var keys = map(keyname.split(\" \"), normalizeKeyName);\n      for (var i = 0; i < keys.length; i++) {\n        var val, name;\n        if (i == keys.length - 1) {\n          name = keyname;\n          val = value;\n        } else {\n          name = keys.slice(0, i + 1).join(\" \");\n          val = \"...\";\n        }\n        var prev = copy[name];\n        if (!prev) copy[name] = val;\n        else if (prev != val) throw new Error(\"Inconsistent bindings for \" + name);\n      }\n      delete keymap[keyname];\n    }\n    for (var prop in copy) keymap[prop] = copy[prop];\n    return keymap;\n  };\n\n  var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {\n    map = getKeyMap(map);\n    var found = map.call ? map.call(key, context) : map[key];\n    if (found === false) return \"nothing\";\n    if (found === \"...\") return \"multi\";\n    if (found != null && handle(found)) return \"handled\";\n\n    if (map.fallthrough) {\n      if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n        return lookupKey(key, map.fallthrough, handle, context);\n      for (var i = 0; i < map.fallthrough.length; i++) {\n        var result = lookupKey(key, map.fallthrough[i], handle, context);\n        if (result) return result;\n      }\n    }\n  };\n\n  // Modifier key presses don't count as 'real' key presses for the\n  // purpose of keymap fallthrough.\n  var isModifierKey = CodeMirror.isModifierKey = function(value) {\n    var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n    return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\";\n  };\n\n  // Look up the name of a key as indicated by an event object.\n  var keyName = CodeMirror.keyName = function(event, noShift) {\n    if (presto && event.keyCode == 34 && event[\"char\"]) return false;\n    var base = keyNames[event.keyCode], name = base;\n    if (name == null || event.altGraphKey) return false;\n    if (event.altKey && base != \"Alt\") name = \"Alt-\" + name;\n    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") name = \"Ctrl-\" + name;\n    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Cmd\") name = \"Cmd-\" + name;\n    if (!noShift && event.shiftKey && base != \"Shift\") name = \"Shift-\" + name;\n    return name;\n  };\n\n  function getKeyMap(val) {\n    return typeof val == \"string\" ? keyMap[val] : val;\n  }\n\n  // FROMTEXTAREA\n\n  CodeMirror.fromTextArea = function(textarea, options) {\n    options = options ? copyObj(options) : {};\n    options.value = textarea.value;\n    if (!options.tabindex && textarea.tabIndex)\n      options.tabindex = textarea.tabIndex;\n    if (!options.placeholder && textarea.placeholder)\n      options.placeholder = textarea.placeholder;\n    // Set autofocus to true if this textarea is focused, or if it has\n    // autofocus and no other element is focused.\n    if (options.autofocus == null) {\n      var hasFocus = activeElt();\n      options.autofocus = hasFocus == textarea ||\n        textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n    }\n\n    function save() {textarea.value = cm.getValue();}\n    if (textarea.form) {\n      on(textarea.form, \"submit\", save);\n      // Deplorable hack to make the submit method do the right thing.\n      if (!options.leaveSubmitMethodAlone) {\n        var form = textarea.form, realSubmit = form.submit;\n        try {\n          var wrappedSubmit = form.submit = function() {\n            save();\n            form.submit = realSubmit;\n            form.submit();\n            form.submit = wrappedSubmit;\n          };\n        } catch(e) {}\n      }\n    }\n\n    options.finishInit = function(cm) {\n      cm.save = save;\n      cm.getTextArea = function() { return textarea; };\n      cm.toTextArea = function() {\n        cm.toTextArea = isNaN; // Prevent this from being ran twice\n        save();\n        textarea.parentNode.removeChild(cm.getWrapperElement());\n        textarea.style.display = \"\";\n        if (textarea.form) {\n          off(textarea.form, \"submit\", save);\n          if (typeof textarea.form.submit == \"function\")\n            textarea.form.submit = realSubmit;\n        }\n      };\n    };\n\n    textarea.style.display = \"none\";\n    var cm = CodeMirror(function(node) {\n      textarea.parentNode.insertBefore(node, textarea.nextSibling);\n    }, options);\n    return cm;\n  };\n\n  // STRING STREAM\n\n  // Fed to the mode parsers, provides helper functions to make\n  // parsers more succinct.\n\n  var StringStream = CodeMirror.StringStream = function(string, tabSize) {\n    this.pos = this.start = 0;\n    this.string = string;\n    this.tabSize = tabSize || 8;\n    this.lastColumnPos = this.lastColumnValue = 0;\n    this.lineStart = 0;\n  };\n\n  StringStream.prototype = {\n    eol: function() {return this.pos >= this.string.length;},\n    sol: function() {return this.pos == this.lineStart;},\n    peek: function() {return this.string.charAt(this.pos) || undefined;},\n    next: function() {\n      if (this.pos < this.string.length)\n        return this.string.charAt(this.pos++);\n    },\n    eat: function(match) {\n      var ch = this.string.charAt(this.pos);\n      if (typeof match == \"string\") var ok = ch == match;\n      else var ok = ch && (match.test ? match.test(ch) : match(ch));\n      if (ok) {++this.pos; return ch;}\n    },\n    eatWhile: function(match) {\n      var start = this.pos;\n      while (this.eat(match)){}\n      return this.pos > start;\n    },\n    eatSpace: function() {\n      var start = this.pos;\n      while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;\n      return this.pos > start;\n    },\n    skipToEnd: function() {this.pos = this.string.length;},\n    skipTo: function(ch) {\n      var found = this.string.indexOf(ch, this.pos);\n      if (found > -1) {this.pos = found; return true;}\n    },\n    backUp: function(n) {this.pos -= n;},\n    column: function() {\n      if (this.lastColumnPos < this.start) {\n        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n        this.lastColumnPos = this.start;\n      }\n      return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);\n    },\n    indentation: function() {\n      return countColumn(this.string, null, this.tabSize) -\n        (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);\n    },\n    match: function(pattern, consume, caseInsensitive) {\n      if (typeof pattern == \"string\") {\n        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};\n        var substr = this.string.substr(this.pos, pattern.length);\n        if (cased(substr) == cased(pattern)) {\n          if (consume !== false) this.pos += pattern.length;\n          return true;\n        }\n      } else {\n        var match = this.string.slice(this.pos).match(pattern);\n        if (match && match.index > 0) return null;\n        if (match && consume !== false) this.pos += match[0].length;\n        return match;\n      }\n    },\n    current: function(){return this.string.slice(this.start, this.pos);},\n    hideFirstChars: function(n, inner) {\n      this.lineStart += n;\n      try { return inner(); }\n      finally { this.lineStart -= n; }\n    }\n  };\n\n  // TEXTMARKERS\n\n  // Created with markText and setBookmark methods. A TextMarker is a\n  // handle that can be used to clear or find a marked position in the\n  // document. Line objects hold arrays (markedSpans) containing\n  // {from, to, marker} object pointing to such marker objects, and\n  // indicating that such a marker is present on that line. Multiple\n  // lines may point to the same marker when it spans across lines.\n  // The spans will have null for their from/to properties when the\n  // marker continues beyond the start/end of the line. Markers have\n  // links back to the lines they currently touch.\n\n  var nextMarkerId = 0;\n\n  var TextMarker = CodeMirror.TextMarker = function(doc, type) {\n    this.lines = [];\n    this.type = type;\n    this.doc = doc;\n    this.id = ++nextMarkerId;\n  };\n  eventMixin(TextMarker);\n\n  // Clear the marker.\n  TextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    var cm = this.doc.cm, withOp = cm && !cm.curOp;\n    if (withOp) startOperation(cm);\n    if (hasHandler(this, \"clear\")) {\n      var found = this.find();\n      if (found) signalLater(this, \"clear\", found.from, found.to);\n    }\n    var min = null, max = null;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (cm && !this.collapsed) regLineChange(cm, lineNo(line), \"text\");\n      else if (cm) {\n        if (span.to != null) max = lineNo(line);\n        if (span.from != null) min = lineNo(line);\n      }\n      line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n      if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n        updateLineHeight(line, textHeight(cm.display));\n    }\n    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {\n      var visual = visualLine(this.lines[i]), len = lineLength(visual);\n      if (len > cm.display.maxLineLength) {\n        cm.display.maxLine = visual;\n        cm.display.maxLineLength = len;\n        cm.display.maxLineChanged = true;\n      }\n    }\n\n    if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);\n    this.lines.length = 0;\n    this.explicitlyCleared = true;\n    if (this.atomic && this.doc.cantEdit) {\n      this.doc.cantEdit = false;\n      if (cm) reCheckSelection(cm.doc);\n    }\n    if (cm) signalLater(cm, \"markerCleared\", cm, this);\n    if (withOp) endOperation(cm);\n    if (this.parent) this.parent.clear();\n  };\n\n  // Find the position of the marker in the document. Returns a {from,\n  // to} object by default. Side can be passed to get a specific side\n  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n  // Pos objects returned contain a line object, rather than a line\n  // number (used to prevent looking up the same line twice).\n  TextMarker.prototype.find = function(side, lineObj) {\n    if (side == null && this.type == \"bookmark\") side = 1;\n    var from, to;\n    for (var i = 0; i < this.lines.length; ++i) {\n      var line = this.lines[i];\n      var span = getMarkedSpanFor(line.markedSpans, this);\n      if (span.from != null) {\n        from = Pos(lineObj ? line : lineNo(line), span.from);\n        if (side == -1) return from;\n      }\n      if (span.to != null) {\n        to = Pos(lineObj ? line : lineNo(line), span.to);\n        if (side == 1) return to;\n      }\n    }\n    return from && {from: from, to: to};\n  };\n\n  // Signals that the marker's widget changed, and surrounding layout\n  // should be recomputed.\n  TextMarker.prototype.changed = function() {\n    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n    if (!pos || !cm) return;\n    runInOp(cm, function() {\n      var line = pos.line, lineN = lineNo(pos.line);\n      var view = findViewForLine(cm, lineN);\n      if (view) {\n        clearLineMeasurementCacheFor(view);\n        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n      }\n      cm.curOp.updateMaxLine = true;\n      if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n        var oldHeight = widget.height;\n        widget.height = null;\n        var dHeight = widgetHeight(widget) - oldHeight;\n        if (dHeight)\n          updateLineHeight(line, line.height + dHeight);\n      }\n    });\n  };\n\n  TextMarker.prototype.attachLine = function(line) {\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);\n    }\n    this.lines.push(line);\n  };\n  TextMarker.prototype.detachLine = function(line) {\n    this.lines.splice(indexOf(this.lines, line), 1);\n    if (!this.lines.length && this.doc.cm) {\n      var op = this.doc.cm.curOp;\n      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n    }\n  };\n\n  // Collapsed markers have unique ids, in order to be able to order\n  // them, which is needed for uniquely determining an outer marker\n  // when they overlap (they may nest, but not partially overlap).\n  var nextMarkerId = 0;\n\n  // Create a marker, wire it up to the right lines, and\n  function markText(doc, from, to, options, type) {\n    // Shared markers (across linked documents) are handled separately\n    // (markTextShared will call out to this again, once per\n    // document).\n    if (options && options.shared) return markTextShared(doc, from, to, options, type);\n    // Ensure we are in an operation.\n    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);\n\n    var marker = new TextMarker(doc, type), diff = cmp(from, to);\n    if (options) copyObj(options, marker, false);\n    // Don't connect empty markers unless clearWhenEmpty is false\n    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n      return marker;\n    if (marker.replacedWith) {\n      // Showing up as a widget implies collapsed (widget replaces text)\n      marker.collapsed = true;\n      marker.widgetNode = elt(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n      if (!options.handleMouseEvents) marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\");\n      if (options.insertLeft) marker.widgetNode.insertLeft = true;\n    }\n    if (marker.collapsed) {\n      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n        throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");\n      sawCollapsedSpans = true;\n    }\n\n    if (marker.addToHistory)\n      addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN);\n\n    var curLine = from.line, cm = doc.cm, updateMaxLine;\n    doc.iter(curLine, to.line + 1, function(line) {\n      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n        updateMaxLine = true;\n      if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);\n      addMarkedSpan(line, new MarkedSpan(marker,\n                                         curLine == from.line ? from.ch : null,\n                                         curLine == to.line ? to.ch : null));\n      ++curLine;\n    });\n    // lineIsHidden depends on the presence of the spans, so needs a second pass\n    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {\n      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);\n    });\n\n    if (marker.clearOnEnter) on(marker, \"beforeCursorEnter\", function() { marker.clear(); });\n\n    if (marker.readOnly) {\n      sawReadOnlySpans = true;\n      if (doc.history.done.length || doc.history.undone.length)\n        doc.clearHistory();\n    }\n    if (marker.collapsed) {\n      marker.id = ++nextMarkerId;\n      marker.atomic = true;\n    }\n    if (cm) {\n      // Sync editor state\n      if (updateMaxLine) cm.curOp.updateMaxLine = true;\n      if (marker.collapsed)\n        regChange(cm, from.line, to.line + 1);\n      else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)\n        for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, \"text\");\n      if (marker.atomic) reCheckSelection(cm.doc);\n      signalLater(cm, \"markerAdded\", cm, marker);\n    }\n    return marker;\n  }\n\n  // SHARED TEXTMARKERS\n\n  // A shared marker spans multiple linked documents. It is\n  // implemented as a meta-marker-object controlling multiple normal\n  // markers.\n  var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {\n    this.markers = markers;\n    this.primary = primary;\n    for (var i = 0; i < markers.length; ++i)\n      markers[i].parent = this;\n  };\n  eventMixin(SharedTextMarker);\n\n  SharedTextMarker.prototype.clear = function() {\n    if (this.explicitlyCleared) return;\n    this.explicitlyCleared = true;\n    for (var i = 0; i < this.markers.length; ++i)\n      this.markers[i].clear();\n    signalLater(this, \"clear\");\n  };\n  SharedTextMarker.prototype.find = function(side, lineObj) {\n    return this.primary.find(side, lineObj);\n  };\n\n  function markTextShared(doc, from, to, options, type) {\n    options = copyObj(options);\n    options.shared = false;\n    var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n    var widget = options.widgetNode;\n    linkedDocs(doc, function(doc) {\n      if (widget) options.widgetNode = widget.cloneNode(true);\n      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n      for (var i = 0; i < doc.linked.length; ++i)\n        if (doc.linked[i].isParent) return;\n      primary = lst(markers);\n    });\n    return new SharedTextMarker(markers, primary);\n  }\n\n  function findSharedMarkers(doc) {\n    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),\n                         function(m) { return m.parent; });\n  }\n\n  function copySharedMarkers(doc, markers) {\n    for (var i = 0; i < markers.length; i++) {\n      var marker = markers[i], pos = marker.find();\n      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n      if (cmp(mFrom, mTo)) {\n        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n        marker.markers.push(subMark);\n        subMark.parent = marker;\n      }\n    }\n  }\n\n  function detachSharedMarkers(markers) {\n    for (var i = 0; i < markers.length; i++) {\n      var marker = markers[i], linked = [marker.primary.doc];;\n      linkedDocs(marker.primary.doc, function(d) { linked.push(d); });\n      for (var j = 0; j < marker.markers.length; j++) {\n        var subMarker = marker.markers[j];\n        if (indexOf(linked, subMarker.doc) == -1) {\n          subMarker.parent = null;\n          marker.markers.splice(j--, 1);\n        }\n      }\n    }\n  }\n\n  // TEXTMARKER SPANS\n\n  function MarkedSpan(marker, from, to) {\n    this.marker = marker;\n    this.from = from; this.to = to;\n  }\n\n  // Search an array of spans for a span matching the given marker.\n  function getMarkedSpanFor(spans, marker) {\n    if (spans) for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.marker == marker) return span;\n    }\n  }\n  // Remove a span from an array, returning undefined if no spans are\n  // left (we don't store arrays for lines without spans).\n  function removeMarkedSpan(spans, span) {\n    for (var r, i = 0; i < spans.length; ++i)\n      if (spans[i] != span) (r || (r = [])).push(spans[i]);\n    return r;\n  }\n  // Add a span to a line.\n  function addMarkedSpan(line, span) {\n    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n    span.marker.attachLine(line);\n  }\n\n  // Used for the algorithm that adjusts markers for a change in the\n  // document. These functions cut an array of spans at a given\n  // character position, returning an array of remaining chunks (or\n  // undefined if nothing remains).\n  function markedSpansBefore(old, startCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n      if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);\n        (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n      }\n    }\n    return nw;\n  }\n  function markedSpansAfter(old, endCh, isInsert) {\n    if (old) for (var i = 0, nw; i < old.length; ++i) {\n      var span = old[i], marker = span.marker;\n      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n      if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);\n        (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n                                              span.to == null ? null : span.to - endCh));\n      }\n    }\n    return nw;\n  }\n\n  // Given a change object, compute the new set of marker spans that\n  // cover the line in which the change took place. Removes spans\n  // entirely within the change, reconnects spans belonging to the\n  // same marker that appear on both sides of the change, and cuts off\n  // spans partially within the change. Returns an array of span\n  // arrays with one element for each line in (after) the change.\n  function stretchSpansOverChange(doc, change) {\n    if (change.full) return null;\n    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n    if (!oldFirst && !oldLast) return null;\n\n    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n    // Get the spans that 'stick out' on both sides\n    var first = markedSpansBefore(oldFirst, startCh, isInsert);\n    var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n    // Next, merge those two ends\n    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n    if (first) {\n      // Fix up .to properties of first\n      for (var i = 0; i < first.length; ++i) {\n        var span = first[i];\n        if (span.to == null) {\n          var found = getMarkedSpanFor(last, span.marker);\n          if (!found) span.to = startCh;\n          else if (sameLine) span.to = found.to == null ? null : found.to + offset;\n        }\n      }\n    }\n    if (last) {\n      // Fix up .from in last (or move them into first in case of sameLine)\n      for (var i = 0; i < last.length; ++i) {\n        var span = last[i];\n        if (span.to != null) span.to += offset;\n        if (span.from == null) {\n          var found = getMarkedSpanFor(first, span.marker);\n          if (!found) {\n            span.from = offset;\n            if (sameLine) (first || (first = [])).push(span);\n          }\n        } else {\n          span.from += offset;\n          if (sameLine) (first || (first = [])).push(span);\n        }\n      }\n    }\n    // Make sure we didn't create any zero-length spans\n    if (first) first = clearEmptySpans(first);\n    if (last && last != first) last = clearEmptySpans(last);\n\n    var newMarkers = [first];\n    if (!sameLine) {\n      // Fill gap with whole-line-spans\n      var gap = change.text.length - 2, gapMarkers;\n      if (gap > 0 && first)\n        for (var i = 0; i < first.length; ++i)\n          if (first[i].to == null)\n            (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));\n      for (var i = 0; i < gap; ++i)\n        newMarkers.push(gapMarkers);\n      newMarkers.push(last);\n    }\n    return newMarkers;\n  }\n\n  // Remove spans that are empty and don't have a clearWhenEmpty\n  // option of false.\n  function clearEmptySpans(spans) {\n    for (var i = 0; i < spans.length; ++i) {\n      var span = spans[i];\n      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n        spans.splice(i--, 1);\n    }\n    if (!spans.length) return null;\n    return spans;\n  }\n\n  // Used for un/re-doing changes from the history. Combines the\n  // result of computing the existing spans with the set of spans that\n  // existed in the history (so that deleting around a span and then\n  // undoing brings back the span).\n  function mergeOldSpans(doc, change) {\n    var old = getOldSpans(doc, change);\n    var stretched = stretchSpansOverChange(doc, change);\n    if (!old) return stretched;\n    if (!stretched) return old;\n\n    for (var i = 0; i < old.length; ++i) {\n      var oldCur = old[i], stretchCur = stretched[i];\n      if (oldCur && stretchCur) {\n        spans: for (var j = 0; j < stretchCur.length; ++j) {\n          var span = stretchCur[j];\n          for (var k = 0; k < oldCur.length; ++k)\n            if (oldCur[k].marker == span.marker) continue spans;\n          oldCur.push(span);\n        }\n      } else if (stretchCur) {\n        old[i] = stretchCur;\n      }\n    }\n    return old;\n  }\n\n  // Used to 'clip' out readOnly ranges when making a change.\n  function removeReadOnlyRanges(doc, from, to) {\n    var markers = null;\n    doc.iter(from.line, to.line + 1, function(line) {\n      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {\n        var mark = line.markedSpans[i].marker;\n        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n          (markers || (markers = [])).push(mark);\n      }\n    });\n    if (!markers) return null;\n    var parts = [{from: from, to: to}];\n    for (var i = 0; i < markers.length; ++i) {\n      var mk = markers[i], m = mk.find(0);\n      for (var j = 0; j < parts.length; ++j) {\n        var p = parts[j];\n        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;\n        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n          newParts.push({from: p.from, to: m.from});\n        if (dto > 0 || !mk.inclusiveRight && !dto)\n          newParts.push({from: m.to, to: p.to});\n        parts.splice.apply(parts, newParts);\n        j += newParts.length - 1;\n      }\n    }\n    return parts;\n  }\n\n  // Connect or disconnect spans from a line.\n  function detachMarkedSpans(line) {\n    var spans = line.markedSpans;\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.detachLine(line);\n    line.markedSpans = null;\n  }\n  function attachMarkedSpans(line, spans) {\n    if (!spans) return;\n    for (var i = 0; i < spans.length; ++i)\n      spans[i].marker.attachLine(line);\n    line.markedSpans = spans;\n  }\n\n  // Helpers used when computing which overlapping collapsed span\n  // counts as the larger one.\n  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }\n  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }\n\n  // Returns a number indicating which of two overlapping collapsed\n  // spans is larger (and thus includes the other). Falls back to\n  // comparing ids when the spans cover exactly the same range.\n  function compareCollapsedMarkers(a, b) {\n    var lenDiff = a.lines.length - b.lines.length;\n    if (lenDiff != 0) return lenDiff;\n    var aPos = a.find(), bPos = b.find();\n    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n    if (fromCmp) return -fromCmp;\n    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n    if (toCmp) return toCmp;\n    return b.id - a.id;\n  }\n\n  // Find out whether a line ends or starts in a collapsed span. If\n  // so, return the marker for that span.\n  function collapsedSpanAtSide(line, start) {\n    var sps = sawCollapsedSpans && line.markedSpans, found;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n          (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n        found = sp.marker;\n    }\n    return found;\n  }\n  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }\n  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }\n\n  // Test whether there exists a collapsed span that partially\n  // overlaps (covers the start or end, but not both) of a new span.\n  // Such overlap is not allowed.\n  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n    var line = getLine(doc, lineNo);\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var i = 0; i < sps.length; ++i) {\n      var sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      var found = sp.marker.find(0);\n      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;\n      if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) ||\n          fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight)))\n        return true;\n    }\n  }\n\n  // A visual line is a line as drawn on the screen. Folding, for\n  // example, can cause multiple logical lines to appear on the same\n  // visual line. This finds the start of the visual line that the\n  // given line is part of (usually that is the line itself).\n  function visualLine(line) {\n    var merged;\n    while (merged = collapsedSpanAtStart(line))\n      line = merged.find(-1, true).line;\n    return line;\n  }\n\n  // Returns an array of logical lines that continue the visual line\n  // started by the argument, or undefined if there are no such lines.\n  function visualLineContinued(line) {\n    var merged, lines;\n    while (merged = collapsedSpanAtEnd(line)) {\n      line = merged.find(1, true).line;\n      (lines || (lines = [])).push(line);\n    }\n    return lines;\n  }\n\n  // Get the line number of the start of the visual line that the\n  // given line number is part of.\n  function visualLineNo(doc, lineN) {\n    var line = getLine(doc, lineN), vis = visualLine(line);\n    if (line == vis) return lineN;\n    return lineNo(vis);\n  }\n  // Get the line number of the start of the next visual line after\n  // the given line.\n  function visualLineEndNo(doc, lineN) {\n    if (lineN > doc.lastLine()) return lineN;\n    var line = getLine(doc, lineN), merged;\n    if (!lineIsHidden(doc, line)) return lineN;\n    while (merged = collapsedSpanAtEnd(line))\n      line = merged.find(1, true).line;\n    return lineNo(line) + 1;\n  }\n\n  // Compute whether a line is hidden. Lines count as hidden when they\n  // are part of a visual line that starts with another line, or when\n  // they are entirely covered by collapsed, non-widget span.\n  function lineIsHidden(doc, line) {\n    var sps = sawCollapsedSpans && line.markedSpans;\n    if (sps) for (var sp, i = 0; i < sps.length; ++i) {\n      sp = sps[i];\n      if (!sp.marker.collapsed) continue;\n      if (sp.from == null) return true;\n      if (sp.marker.widgetNode) continue;\n      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n        return true;\n    }\n  }\n  function lineIsHiddenInner(doc, line, span) {\n    if (span.to == null) {\n      var end = span.marker.find(1, true);\n      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));\n    }\n    if (span.marker.inclusiveRight && span.to == line.text.length)\n      return true;\n    for (var sp, i = 0; i < line.markedSpans.length; ++i) {\n      sp = line.markedSpans[i];\n      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n          (sp.to == null || sp.to != span.from) &&\n          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n          lineIsHiddenInner(doc, line, sp)) return true;\n    }\n  }\n\n  // LINE WIDGETS\n\n  // Line widgets are block elements displayed above or below a line.\n\n  var LineWidget = CodeMirror.LineWidget = function(cm, node, options) {\n    if (options) for (var opt in options) if (options.hasOwnProperty(opt))\n      this[opt] = options[opt];\n    this.cm = cm;\n    this.node = node;\n  };\n  eventMixin(LineWidget);\n\n  function adjustScrollWhenAboveVisible(cm, line, diff) {\n    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n      addToScrollPos(cm, null, diff);\n  }\n\n  LineWidget.prototype.clear = function() {\n    var cm = this.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n    if (no == null || !ws) return;\n    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);\n    if (!ws.length) line.widgets = null;\n    var height = widgetHeight(this);\n    runInOp(cm, function() {\n      adjustScrollWhenAboveVisible(cm, line, -height);\n      regLineChange(cm, no, \"widget\");\n      updateLineHeight(line, Math.max(0, line.height - height));\n    });\n  };\n  LineWidget.prototype.changed = function() {\n    var oldH = this.height, cm = this.cm, line = this.line;\n    this.height = null;\n    var diff = widgetHeight(this) - oldH;\n    if (!diff) return;\n    runInOp(cm, function() {\n      cm.curOp.forceUpdate = true;\n      adjustScrollWhenAboveVisible(cm, line, diff);\n      updateLineHeight(line, line.height + diff);\n    });\n  };\n\n  function widgetHeight(widget) {\n    if (widget.height != null) return widget.height;\n    if (!contains(document.body, widget.node)) {\n      var parentStyle = \"position: relative;\";\n      if (widget.coverGutter)\n        parentStyle += \"margin-left: -\" + widget.cm.display.gutters.offsetWidth + \"px;\";\n      if (widget.noHScroll)\n        parentStyle += \"width: \" + widget.cm.display.wrapper.clientWidth + \"px;\";\n      removeChildrenAndAdd(widget.cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n    }\n    return widget.height = widget.node.offsetHeight;\n  }\n\n  function addLineWidget(cm, handle, node, options) {\n    var widget = new LineWidget(cm, node, options);\n    if (widget.noHScroll) cm.display.alignWidgets = true;\n    changeLine(cm.doc, handle, \"widget\", function(line) {\n      var widgets = line.widgets || (line.widgets = []);\n      if (widget.insertAt == null) widgets.push(widget);\n      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);\n      widget.line = line;\n      if (!lineIsHidden(cm.doc, line)) {\n        var aboveVisible = heightAtLine(line) < cm.doc.scrollTop;\n        updateLineHeight(line, line.height + widgetHeight(widget));\n        if (aboveVisible) addToScrollPos(cm, null, widget.height);\n        cm.curOp.forceUpdate = true;\n      }\n      return true;\n    });\n    return widget;\n  }\n\n  // LINE DATA STRUCTURE\n\n  // Line objects. These hold state related to a line, including\n  // highlighting info (the styles array).\n  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {\n    this.text = text;\n    attachMarkedSpans(this, markedSpans);\n    this.height = estimateHeight ? estimateHeight(this) : 1;\n  };\n  eventMixin(Line);\n  Line.prototype.lineNo = function() { return lineNo(this); };\n\n  // Change the content (text, markers) of a line. Automatically\n  // invalidates cached information and tries to re-estimate the\n  // line's height.\n  function updateLine(line, text, markedSpans, estimateHeight) {\n    line.text = text;\n    if (line.stateAfter) line.stateAfter = null;\n    if (line.styles) line.styles = null;\n    if (line.order != null) line.order = null;\n    detachMarkedSpans(line);\n    attachMarkedSpans(line, markedSpans);\n    var estHeight = estimateHeight ? estimateHeight(line) : 1;\n    if (estHeight != line.height) updateLineHeight(line, estHeight);\n  }\n\n  // Detach a line from the document tree and its markers.\n  function cleanUpLine(line) {\n    line.parent = null;\n    detachMarkedSpans(line);\n  }\n\n  function extractLineClasses(type, output) {\n    if (type) for (;;) {\n      var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n      if (!lineClass) break;\n      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n      var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n      if (output[prop] == null)\n        output[prop] = lineClass[2];\n      else if (!(new RegExp(\"(?:^|\\s)\" + lineClass[2] + \"(?:$|\\s)\")).test(output[prop]))\n        output[prop] += \" \" + lineClass[2];\n    }\n    return type;\n  }\n\n  function callBlankLine(mode, state) {\n    if (mode.blankLine) return mode.blankLine(state);\n    if (!mode.innerMode) return;\n    var inner = CodeMirror.innerMode(mode, state);\n    if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);\n  }\n\n  function readToken(mode, stream, state, inner) {\n    for (var i = 0; i < 10; i++) {\n      if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;\n      var style = mode.token(stream, state);\n      if (stream.pos > stream.start) return style;\n    }\n    throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\");\n  }\n\n  // Utility for getTokenAt and getLineTokens\n  function takeToken(cm, pos, precise, asArray) {\n    function getObj(copy) {\n      return {start: stream.start, end: stream.pos,\n              string: stream.current(),\n              type: style || null,\n              state: copy ? copyState(doc.mode, state) : state};\n    }\n\n    var doc = cm.doc, mode = doc.mode, style;\n    pos = clipPos(doc, pos);\n    var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);\n    var stream = new StringStream(line.text, cm.options.tabSize), tokens;\n    if (asArray) tokens = [];\n    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n      stream.start = stream.pos;\n      style = readToken(mode, stream, state);\n      if (asArray) tokens.push(getObj(true));\n    }\n    return asArray ? tokens : getObj();\n  }\n\n  // Run the given mode's parser over a line, calling f for each token.\n  function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {\n    var flattenSpans = mode.flattenSpans;\n    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;\n    var curStart = 0, curStyle = null;\n    var stream = new StringStream(text, cm.options.tabSize), style;\n    var inner = cm.options.addModeClass && [null];\n    if (text == \"\") extractLineClasses(callBlankLine(mode, state), lineClasses);\n    while (!stream.eol()) {\n      if (stream.pos > cm.options.maxHighlightLength) {\n        flattenSpans = false;\n        if (forceToEnd) processLine(cm, text, state, stream.pos);\n        stream.pos = text.length;\n        style = null;\n      } else {\n        style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);\n      }\n      if (inner) {\n        var mName = inner[0].name;\n        if (mName) style = \"m-\" + (style ? mName + \" \" + style : mName);\n      }\n      if (!flattenSpans || curStyle != style) {\n        while (curStart < stream.start) {\n          curStart = Math.min(stream.start, curStart + 50000);\n          f(curStart, curStyle);\n        }\n        curStyle = style;\n      }\n      stream.start = stream.pos;\n    }\n    while (curStart < stream.pos) {\n      // Webkit seems to refuse to render text nodes longer than 57444 characters\n      var pos = Math.min(stream.pos, curStart + 50000);\n      f(pos, curStyle);\n      curStart = pos;\n    }\n  }\n\n  // Compute a style array (an array starting with a mode generation\n  // -- for invalidation -- followed by pairs of end positions and\n  // style strings), which is used to highlight the tokens on the\n  // line.\n  function highlightLine(cm, line, state, forceToEnd) {\n    // A styles array always starts with a number identifying the\n    // mode/overlays that it is based on (for easy invalidation).\n    var st = [cm.state.modeGen], lineClasses = {};\n    // Compute the base array of styles\n    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {\n      st.push(end, style);\n    }, lineClasses, forceToEnd);\n\n    // Run overlays, adjust style array.\n    for (var o = 0; o < cm.state.overlays.length; ++o) {\n      var overlay = cm.state.overlays[o], i = 1, at = 0;\n      runMode(cm, line.text, overlay.mode, true, function(end, style) {\n        var start = i;\n        // Ensure there's a token end at the current position, and that i points at it\n        while (at < end) {\n          var i_end = st[i];\n          if (i_end > end)\n            st.splice(i, 1, end, st[i+1], i_end);\n          i += 2;\n          at = Math.min(end, i_end);\n        }\n        if (!style) return;\n        if (overlay.opaque) {\n          st.splice(start, i - start, end, \"cm-overlay \" + style);\n          i = start + 2;\n        } else {\n          for (; start < i; start += 2) {\n            var cur = st[start+1];\n            st[start+1] = (cur ? cur + \" \" : \"\") + \"cm-overlay \" + style;\n          }\n        }\n      }, lineClasses);\n    }\n\n    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};\n  }\n\n  function getLineStyles(cm, line, updateFrontier) {\n    if (!line.styles || line.styles[0] != cm.state.modeGen) {\n      var result = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line)));\n      line.styles = result.styles;\n      if (result.classes) line.styleClasses = result.classes;\n      else if (line.styleClasses) line.styleClasses = null;\n      if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;\n    }\n    return line.styles;\n  }\n\n  // Lightweight form of highlight -- proceed over this line and\n  // update state, but don't save a style array. Used for lines that\n  // aren't currently visible.\n  function processLine(cm, text, state, startAt) {\n    var mode = cm.doc.mode;\n    var stream = new StringStream(text, cm.options.tabSize);\n    stream.start = stream.pos = startAt || 0;\n    if (text == \"\") callBlankLine(mode, state);\n    while (!stream.eol() && stream.pos <= cm.options.maxHighlightLength) {\n      readToken(mode, stream, state);\n      stream.start = stream.pos;\n    }\n  }\n\n  // Convert a style as returned by a mode (either null, or a string\n  // containing one or more styles) to a CSS style. This is cached,\n  // and also looks for line-wide styles.\n  var styleToClassCache = {}, styleToClassCacheWithMode = {};\n  function interpretTokenStyle(style, options) {\n    if (!style || /^\\s*$/.test(style)) return null;\n    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n    return cache[style] ||\n      (cache[style] = style.replace(/\\S+/g, \"cm-$&\"));\n  }\n\n  // Render the DOM representation of the text of a line. Also builds\n  // up a 'line map', which points at the DOM nodes that represent\n  // specific stretches of text, and is used by the measuring code.\n  // The returned object contains the DOM node, this map, and\n  // information about line-wide styles that were set by the mode.\n  function buildLineContent(cm, lineView) {\n    // The padding-right forces the element to have a 'border', which\n    // is needed on Webkit to be able to get line-level bounding\n    // rectangles for it (in measureChar).\n    var content = elt(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n    var builder = {pre: elt(\"pre\", [content]), content: content, col: 0, pos: 0, cm: cm};\n    lineView.measure = {};\n\n    // Iterate over the logical lines that make up this visual line.\n    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n      var line = i ? lineView.rest[i - 1] : lineView.line, order;\n      builder.pos = 0;\n      builder.addToken = buildToken;\n      // Optionally wire in some hacks into the token-rendering\n      // algorithm, to deal with browser quirks.\n      if ((ie || webkit) && cm.getOption(\"lineWrapping\"))\n        builder.addToken = buildTokenSplitSpaces(builder.addToken);\n      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))\n        builder.addToken = buildTokenBadBidi(builder.addToken, order);\n      builder.map = [];\n      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n      if (line.styleClasses) {\n        if (line.styleClasses.bgClass)\n          builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\");\n        if (line.styleClasses.textClass)\n          builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\");\n      }\n\n      // Ensure at least a single node is present, for measuring.\n      if (builder.map.length == 0)\n        builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));\n\n      // Store the map and a cache object for the current logical line\n      if (i == 0) {\n        lineView.measure.map = builder.map;\n        lineView.measure.cache = {};\n      } else {\n        (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);\n        (lineView.measure.caches || (lineView.measure.caches = [])).push({});\n      }\n    }\n\n    // See issue #2901\n    if (webkit && /\\bcm-tab\\b/.test(builder.content.lastChild.className))\n      builder.content.className = \"cm-tab-wrap-hack\";\n\n    signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n    if (builder.pre.className)\n      builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\");\n\n    return builder;\n  }\n\n  function defaultSpecialCharPlaceholder(ch) {\n    var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n    token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n    token.setAttribute(\"aria-label\", token.title);\n    return token;\n  }\n\n  // Build up the DOM representation for a single token, and add it to\n  // the line map. Takes care to render special characters separately.\n  function buildToken(builder, text, style, startStyle, endStyle, title, css) {\n    if (!text) return;\n    var special = builder.cm.options.specialChars, mustWrap = false;\n    if (!special.test(text)) {\n      builder.col += text.length;\n      var content = document.createTextNode(text);\n      builder.map.push(builder.pos, builder.pos + text.length, content);\n      if (ie && ie_version < 9) mustWrap = true;\n      builder.pos += text.length;\n    } else {\n      var content = document.createDocumentFragment(), pos = 0;\n      while (true) {\n        special.lastIndex = pos;\n        var m = special.exec(text);\n        var skipped = m ? m.index - pos : text.length - pos;\n        if (skipped) {\n          var txt = document.createTextNode(text.slice(pos, pos + skipped));\n          if (ie && ie_version < 9) content.appendChild(elt(\"span\", [txt]));\n          else content.appendChild(txt);\n          builder.map.push(builder.pos, builder.pos + skipped, txt);\n          builder.col += skipped;\n          builder.pos += skipped;\n        }\n        if (!m) break;\n        pos += skipped + 1;\n        if (m[0] == \"\\t\") {\n          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n          var txt = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n          txt.setAttribute(\"role\", \"presentation\");\n          txt.setAttribute(\"cm-text\", \"\\t\");\n          builder.col += tabWidth;\n        } else {\n          var txt = builder.cm.options.specialCharPlaceholder(m[0]);\n          txt.setAttribute(\"cm-text\", m[0]);\n          if (ie && ie_version < 9) content.appendChild(elt(\"span\", [txt]));\n          else content.appendChild(txt);\n          builder.col += 1;\n        }\n        builder.map.push(builder.pos, builder.pos + 1, txt);\n        builder.pos++;\n      }\n    }\n    if (style || startStyle || endStyle || mustWrap || css) {\n      var fullStyle = style || \"\";\n      if (startStyle) fullStyle += startStyle;\n      if (endStyle) fullStyle += endStyle;\n      var token = elt(\"span\", [content], fullStyle, css);\n      if (title) token.title = title;\n      return builder.content.appendChild(token);\n    }\n    builder.content.appendChild(content);\n  }\n\n  function buildTokenSplitSpaces(inner) {\n    function split(old) {\n      var out = \" \";\n      for (var i = 0; i < old.length - 2; ++i) out += i % 2 ? \" \" : \"\\u00a0\";\n      out += \" \";\n      return out;\n    }\n    return function(builder, text, style, startStyle, endStyle, title) {\n      inner(builder, text.replace(/ {3,}/g, split), style, startStyle, endStyle, title);\n    };\n  }\n\n  // Work around nonsense dimensions being reported for stretches of\n  // right-to-left text.\n  function buildTokenBadBidi(inner, order) {\n    return function(builder, text, style, startStyle, endStyle, title) {\n      style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n      var start = builder.pos, end = start + text.length;\n      for (;;) {\n        // Find the part that overlaps with the start of this text\n        for (var i = 0; i < order.length; i++) {\n          var part = order[i];\n          if (part.to > start && part.from <= start) break;\n        }\n        if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title);\n        inner(builder, text.slice(0, part.to - start), style, startStyle, null, title);\n        startStyle = null;\n        text = text.slice(part.to - start);\n        start = part.to;\n      }\n    };\n  }\n\n  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n    var widget = !ignoreWidget && marker.widgetNode;\n    if (widget) builder.map.push(builder.pos, builder.pos + size, widget);\n    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n      if (!widget)\n        widget = builder.content.appendChild(document.createElement(\"span\"));\n      widget.setAttribute(\"cm-marker\", marker.id);\n    }\n    if (widget) {\n      builder.cm.display.input.setUneditable(widget);\n      builder.content.appendChild(widget);\n    }\n    builder.pos += size;\n  }\n\n  // Outputs a number of spans to make up a line, taking highlighting\n  // and marked text into account.\n  function insertLineContent(line, builder, styles) {\n    var spans = line.markedSpans, allText = line.text, at = 0;\n    if (!spans) {\n      for (var i = 1; i < styles.length; i+=2)\n        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));\n      return;\n    }\n\n    var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;\n    for (;;) {\n      if (nextChange == pos) { // Update current marker set\n        spanStyle = spanEndStyle = spanStartStyle = title = css = \"\";\n        collapsed = null; nextChange = Infinity;\n        var foundBookmarks = [];\n        for (var j = 0; j < spans.length; ++j) {\n          var sp = spans[j], m = sp.marker;\n          if (sp.from <= pos && (sp.to == null || sp.to > pos)) {\n            if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = \"\"; }\n            if (m.className) spanStyle += \" \" + m.className;\n            if (m.css) css = m.css;\n            if (m.startStyle && sp.from == pos) spanStartStyle += \" \" + m.startStyle;\n            if (m.endStyle && sp.to == nextChange) spanEndStyle += \" \" + m.endStyle;\n            if (m.title && !title) title = m.title;\n            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n              collapsed = sp;\n          } else if (sp.from > pos && nextChange > sp.from) {\n            nextChange = sp.from;\n          }\n          if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) foundBookmarks.push(m);\n        }\n        if (collapsed && (collapsed.from || 0) == pos) {\n          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n                             collapsed.marker, collapsed.from == null);\n          if (collapsed.to == null) return;\n        }\n        if (!collapsed && foundBookmarks.length) for (var j = 0; j < foundBookmarks.length; ++j)\n          buildCollapsedSpan(builder, 0, foundBookmarks[j]);\n      }\n      if (pos >= len) break;\n\n      var upto = Math.min(len, nextChange);\n      while (true) {\n        if (text) {\n          var end = pos + text.length;\n          if (!collapsed) {\n            var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", title, css);\n          }\n          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}\n          pos = end;\n          spanStartStyle = \"\";\n        }\n        text = allText.slice(at, at = styles[i++]);\n        style = interpretTokenStyle(styles[i++], builder.cm.options);\n      }\n    }\n  }\n\n  // DOCUMENT DATA STRUCTURE\n\n  // By default, updates that start and end at the beginning of a line\n  // are treated specially, in order to make the association of line\n  // widgets and marker elements with the text behave more intuitive.\n  function isWholeLineUpdate(doc, change) {\n    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n      (!doc.cm || doc.cm.options.wholeLineUpdateBefore);\n  }\n\n  // Perform a change on the document data structure.\n  function updateDoc(doc, change, markedSpans, estimateHeight) {\n    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}\n    function update(line, text, spans) {\n      updateLine(line, text, spans, estimateHeight);\n      signalLater(line, \"change\", line, change);\n    }\n    function linesFor(start, end) {\n      for (var i = start, result = []; i < end; ++i)\n        result.push(new Line(text[i], spansFor(i), estimateHeight));\n      return result;\n    }\n\n    var from = change.from, to = change.to, text = change.text;\n    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n    // Adjust the line structure\n    if (change.full) {\n      doc.insert(0, linesFor(0, text.length));\n      doc.remove(text.length, doc.size - text.length);\n    } else if (isWholeLineUpdate(doc, change)) {\n      // This is a whole-line replace. Treated specially to make\n      // sure line objects move the way they are supposed to.\n      var added = linesFor(0, text.length - 1);\n      update(lastLine, lastLine.text, lastSpans);\n      if (nlines) doc.remove(from.line, nlines);\n      if (added.length) doc.insert(from.line, added);\n    } else if (firstLine == lastLine) {\n      if (text.length == 1) {\n        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n      } else {\n        var added = linesFor(1, text.length - 1);\n        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n        doc.insert(from.line + 1, added);\n      }\n    } else if (text.length == 1) {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n      doc.remove(from.line + 1, nlines);\n    } else {\n      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n      var added = linesFor(1, text.length - 1);\n      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);\n      doc.insert(from.line + 1, added);\n    }\n\n    signalLater(doc, \"change\", doc, change);\n  }\n\n  // The document is represented as a BTree consisting of leaves, with\n  // chunk of lines in them, and branches, with up to ten leaves or\n  // other branch nodes below them. The top node is always a branch\n  // node, and is the document object itself (meaning it has\n  // additional methods and properties).\n  //\n  // All nodes have parent links. The tree is used both to go from\n  // line numbers to line objects, and to go from objects to numbers.\n  // It also indexes by height, and is used to convert between height\n  // and line object, and to find the total height of the document.\n  //\n  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n  function LeafChunk(lines) {\n    this.lines = lines;\n    this.parent = null;\n    for (var i = 0, height = 0; i < lines.length; ++i) {\n      lines[i].parent = this;\n      height += lines[i].height;\n    }\n    this.height = height;\n  }\n\n  LeafChunk.prototype = {\n    chunkSize: function() { return this.lines.length; },\n    // Remove the n lines at offset 'at'.\n    removeInner: function(at, n) {\n      for (var i = at, e = at + n; i < e; ++i) {\n        var line = this.lines[i];\n        this.height -= line.height;\n        cleanUpLine(line);\n        signalLater(line, \"delete\");\n      }\n      this.lines.splice(at, n);\n    },\n    // Helper used to collapse a small branch into a single leaf.\n    collapse: function(lines) {\n      lines.push.apply(lines, this.lines);\n    },\n    // Insert the given array of lines at offset 'at', count them as\n    // having the given height.\n    insertInner: function(at, lines, height) {\n      this.height += height;\n      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n      for (var i = 0; i < lines.length; ++i) lines[i].parent = this;\n    },\n    // Used to iterate over a part of the tree.\n    iterN: function(at, n, op) {\n      for (var e = at + n; at < e; ++at)\n        if (op(this.lines[at])) return true;\n    }\n  };\n\n  function BranchChunk(children) {\n    this.children = children;\n    var size = 0, height = 0;\n    for (var i = 0; i < children.length; ++i) {\n      var ch = children[i];\n      size += ch.chunkSize(); height += ch.height;\n      ch.parent = this;\n    }\n    this.size = size;\n    this.height = height;\n    this.parent = null;\n  }\n\n  BranchChunk.prototype = {\n    chunkSize: function() { return this.size; },\n    removeInner: function(at, n) {\n      this.size -= n;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var rm = Math.min(n, sz - at), oldHeight = child.height;\n          child.removeInner(at, rm);\n          this.height -= oldHeight - child.height;\n          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n          if ((n -= rm) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n      // If the result is smaller than 25 lines, ensure that it is a\n      // single leaf node.\n      if (this.size - n < 25 &&\n          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n        var lines = [];\n        this.collapse(lines);\n        this.children = [new LeafChunk(lines)];\n        this.children[0].parent = this;\n      }\n    },\n    collapse: function(lines) {\n      for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);\n    },\n    insertInner: function(at, lines, height) {\n      this.size += lines.length;\n      this.height += height;\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at <= sz) {\n          child.insertInner(at, lines, height);\n          if (child.lines && child.lines.length > 50) {\n            while (child.lines.length > 50) {\n              var spilled = child.lines.splice(child.lines.length - 25, 25);\n              var newleaf = new LeafChunk(spilled);\n              child.height -= newleaf.height;\n              this.children.splice(i + 1, 0, newleaf);\n              newleaf.parent = this;\n            }\n            this.maybeSpill();\n          }\n          break;\n        }\n        at -= sz;\n      }\n    },\n    // When a node has grown, check whether it should be split.\n    maybeSpill: function() {\n      if (this.children.length <= 10) return;\n      var me = this;\n      do {\n        var spilled = me.children.splice(me.children.length - 5, 5);\n        var sibling = new BranchChunk(spilled);\n        if (!me.parent) { // Become the parent node\n          var copy = new BranchChunk(me.children);\n          copy.parent = me;\n          me.children = [copy, sibling];\n          me = copy;\n        } else {\n          me.size -= sibling.size;\n          me.height -= sibling.height;\n          var myIndex = indexOf(me.parent.children, me);\n          me.parent.children.splice(myIndex + 1, 0, sibling);\n        }\n        sibling.parent = me.parent;\n      } while (me.children.length > 10);\n      me.parent.maybeSpill();\n    },\n    iterN: function(at, n, op) {\n      for (var i = 0; i < this.children.length; ++i) {\n        var child = this.children[i], sz = child.chunkSize();\n        if (at < sz) {\n          var used = Math.min(n, sz - at);\n          if (child.iterN(at, used, op)) return true;\n          if ((n -= used) == 0) break;\n          at = 0;\n        } else at -= sz;\n      }\n    }\n  };\n\n  var nextDocId = 0;\n  var Doc = CodeMirror.Doc = function(text, mode, firstLine) {\n    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine);\n    if (firstLine == null) firstLine = 0;\n\n    BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n    this.first = firstLine;\n    this.scrollTop = this.scrollLeft = 0;\n    this.cantEdit = false;\n    this.cleanGeneration = 1;\n    this.frontier = firstLine;\n    var start = Pos(firstLine, 0);\n    this.sel = simpleSelection(start);\n    this.history = new History(null);\n    this.id = ++nextDocId;\n    this.modeOption = mode;\n\n    if (typeof text == \"string\") text = splitLines(text);\n    updateDoc(this, {from: start, to: start, text: text});\n    setSelection(this, simpleSelection(start), sel_dontScroll);\n  };\n\n  Doc.prototype = createObj(BranchChunk.prototype, {\n    constructor: Doc,\n    // Iterate over the document. Supports two forms -- with only one\n    // argument, it calls that for each line in the document. With\n    // three, it iterates over the range given by the first two (with\n    // the second being non-inclusive).\n    iter: function(from, to, op) {\n      if (op) this.iterN(from - this.first, to - from, op);\n      else this.iterN(this.first, this.first + this.size, from);\n    },\n\n    // Non-public interface for adding and removing lines.\n    insert: function(at, lines) {\n      var height = 0;\n      for (var i = 0; i < lines.length; ++i) height += lines[i].height;\n      this.insertInner(at - this.first, lines, height);\n    },\n    remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n    // From here, the methods are part of the public interface. Most\n    // are also available from CodeMirror (editor) instances.\n\n    getValue: function(lineSep) {\n      var lines = getLines(this, this.first, this.first + this.size);\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n    setValue: docMethodOp(function(code) {\n      var top = Pos(this.first, 0), last = this.first + this.size - 1;\n      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n                        text: splitLines(code), origin: \"setValue\", full: true}, true);\n      setSelection(this, simpleSelection(top));\n    }),\n    replaceRange: function(code, from, to, origin) {\n      from = clipPos(this, from);\n      to = to ? clipPos(this, to) : from;\n      replaceRange(this, code, from, to, origin);\n    },\n    getRange: function(from, to, lineSep) {\n      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n      if (lineSep === false) return lines;\n      return lines.join(lineSep || \"\\n\");\n    },\n\n    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},\n\n    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},\n    getLineNumber: function(line) {return lineNo(line);},\n\n    getLineHandleVisualStart: function(line) {\n      if (typeof line == \"number\") line = getLine(this, line);\n      return visualLine(line);\n    },\n\n    lineCount: function() {return this.size;},\n    firstLine: function() {return this.first;},\n    lastLine: function() {return this.first + this.size - 1;},\n\n    clipPos: function(pos) {return clipPos(this, pos);},\n\n    getCursor: function(start) {\n      var range = this.sel.primary(), pos;\n      if (start == null || start == \"head\") pos = range.head;\n      else if (start == \"anchor\") pos = range.anchor;\n      else if (start == \"end\" || start == \"to\" || start === false) pos = range.to();\n      else pos = range.from();\n      return pos;\n    },\n    listSelections: function() { return this.sel.ranges; },\n    somethingSelected: function() {return this.sel.somethingSelected();},\n\n    setCursor: docMethodOp(function(line, ch, options) {\n      setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n    }),\n    setSelection: docMethodOp(function(anchor, head, options) {\n      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n    }),\n    extendSelection: docMethodOp(function(head, other, options) {\n      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n    }),\n    extendSelections: docMethodOp(function(heads, options) {\n      extendSelections(this, clipPosArray(this, heads, options));\n    }),\n    extendSelectionsBy: docMethodOp(function(f, options) {\n      extendSelections(this, map(this.sel.ranges, f), options);\n    }),\n    setSelections: docMethodOp(function(ranges, primary, options) {\n      if (!ranges.length) return;\n      for (var i = 0, out = []; i < ranges.length; i++)\n        out[i] = new Range(clipPos(this, ranges[i].anchor),\n                           clipPos(this, ranges[i].head));\n      if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);\n      setSelection(this, normalizeSelection(out, primary), options);\n    }),\n    addSelection: docMethodOp(function(anchor, head, options) {\n      var ranges = this.sel.ranges.slice(0);\n      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n      setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);\n    }),\n\n    getSelection: function(lineSep) {\n      var ranges = this.sel.ranges, lines;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        lines = lines ? lines.concat(sel) : sel;\n      }\n      if (lineSep === false) return lines;\n      else return lines.join(lineSep || \"\\n\");\n    },\n    getSelections: function(lineSep) {\n      var parts = [], ranges = this.sel.ranges;\n      for (var i = 0; i < ranges.length; i++) {\n        var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n        if (lineSep !== false) sel = sel.join(lineSep || \"\\n\");\n        parts[i] = sel;\n      }\n      return parts;\n    },\n    replaceSelection: function(code, collapse, origin) {\n      var dup = [];\n      for (var i = 0; i < this.sel.ranges.length; i++)\n        dup[i] = code;\n      this.replaceSelections(dup, collapse, origin || \"+input\");\n    },\n    replaceSelections: docMethodOp(function(code, collapse, origin) {\n      var changes = [], sel = this.sel;\n      for (var i = 0; i < sel.ranges.length; i++) {\n        var range = sel.ranges[i];\n        changes[i] = {from: range.from(), to: range.to(), text: splitLines(code[i]), origin: origin};\n      }\n      var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n      for (var i = changes.length - 1; i >= 0; i--)\n        makeChange(this, changes[i]);\n      if (newSel) setSelectionReplaceHistory(this, newSel);\n      else if (this.cm) ensureCursorVisible(this.cm);\n    }),\n    undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n    redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n    setExtending: function(val) {this.extend = val;},\n    getExtending: function() {return this.extend;},\n\n    historySize: function() {\n      var hist = this.history, done = 0, undone = 0;\n      for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;\n      for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;\n      return {undo: done, redo: undone};\n    },\n    clearHistory: function() {this.history = new History(this.history.maxGeneration);},\n\n    markClean: function() {\n      this.cleanGeneration = this.changeGeneration(true);\n    },\n    changeGeneration: function(forceSplit) {\n      if (forceSplit)\n        this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;\n      return this.history.generation;\n    },\n    isClean: function (gen) {\n      return this.history.generation == (gen || this.cleanGeneration);\n    },\n\n    getHistory: function() {\n      return {done: copyHistoryArray(this.history.done),\n              undone: copyHistoryArray(this.history.undone)};\n    },\n    setHistory: function(histData) {\n      var hist = this.history = new History(this.history.maxGeneration);\n      hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n    },\n\n    addLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function(line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        if (!line[prop]) line[prop] = cls;\n        else if (classTest(cls).test(line[prop])) return false;\n        else line[prop] += \" \" + cls;\n        return true;\n      });\n    }),\n    removeLineClass: docMethodOp(function(handle, where, cls) {\n      return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function(line) {\n        var prop = where == \"text\" ? \"textClass\"\n                 : where == \"background\" ? \"bgClass\"\n                 : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n        var cur = line[prop];\n        if (!cur) return false;\n        else if (cls == null) line[prop] = null;\n        else {\n          var found = cur.match(classTest(cls));\n          if (!found) return false;\n          var end = found.index + found[0].length;\n          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n        }\n        return true;\n      });\n    }),\n\n    markText: function(from, to, options) {\n      return markText(this, clipPos(this, from), clipPos(this, to), options, \"range\");\n    },\n    setBookmark: function(pos, options) {\n      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n                      insertLeft: options && options.insertLeft,\n                      clearWhenEmpty: false, shared: options && options.shared};\n      pos = clipPos(this, pos);\n      return markText(this, pos, pos, realOpts, \"bookmark\");\n    },\n    findMarksAt: function(pos) {\n      pos = clipPos(this, pos);\n      var markers = [], spans = getLine(this, pos.line).markedSpans;\n      if (spans) for (var i = 0; i < spans.length; ++i) {\n        var span = spans[i];\n        if ((span.from == null || span.from <= pos.ch) &&\n            (span.to == null || span.to >= pos.ch))\n          markers.push(span.marker.parent || span.marker);\n      }\n      return markers;\n    },\n    findMarks: function(from, to, filter) {\n      from = clipPos(this, from); to = clipPos(this, to);\n      var found = [], lineNo = from.line;\n      this.iter(from.line, to.line + 1, function(line) {\n        var spans = line.markedSpans;\n        if (spans) for (var i = 0; i < spans.length; i++) {\n          var span = spans[i];\n          if (!(lineNo == from.line && from.ch > span.to ||\n                span.from == null && lineNo != from.line||\n                lineNo == to.line && span.from > to.ch) &&\n              (!filter || filter(span.marker)))\n            found.push(span.marker.parent || span.marker);\n        }\n        ++lineNo;\n      });\n      return found;\n    },\n    getAllMarks: function() {\n      var markers = [];\n      this.iter(function(line) {\n        var sps = line.markedSpans;\n        if (sps) for (var i = 0; i < sps.length; ++i)\n          if (sps[i].from != null) markers.push(sps[i].marker);\n      });\n      return markers;\n    },\n\n    posFromIndex: function(off) {\n      var ch, lineNo = this.first;\n      this.iter(function(line) {\n        var sz = line.text.length + 1;\n        if (sz > off) { ch = off; return true; }\n        off -= sz;\n        ++lineNo;\n      });\n      return clipPos(this, Pos(lineNo, ch));\n    },\n    indexFromPos: function (coords) {\n      coords = clipPos(this, coords);\n      var index = coords.ch;\n      if (coords.line < this.first || coords.ch < 0) return 0;\n      this.iter(this.first, coords.line, function (line) {\n        index += line.text.length + 1;\n      });\n      return index;\n    },\n\n    copy: function(copyHistory) {\n      var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first);\n      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n      doc.sel = this.sel;\n      doc.extend = false;\n      if (copyHistory) {\n        doc.history.undoDepth = this.history.undoDepth;\n        doc.setHistory(this.getHistory());\n      }\n      return doc;\n    },\n\n    linkedDoc: function(options) {\n      if (!options) options = {};\n      var from = this.first, to = this.first + this.size;\n      if (options.from != null && options.from > from) from = options.from;\n      if (options.to != null && options.to < to) to = options.to;\n      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from);\n      if (options.sharedHist) copy.history = this.history;\n      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n      copySharedMarkers(copy, findSharedMarkers(this));\n      return copy;\n    },\n    unlinkDoc: function(other) {\n      if (other instanceof CodeMirror) other = other.doc;\n      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {\n        var link = this.linked[i];\n        if (link.doc != other) continue;\n        this.linked.splice(i, 1);\n        other.unlinkDoc(this);\n        detachSharedMarkers(findSharedMarkers(this));\n        break;\n      }\n      // If the histories were shared, split them again\n      if (other.history == this.history) {\n        var splitIds = [other.id];\n        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);\n        other.history = new History(null);\n        other.history.done = copyHistoryArray(this.history.done, splitIds);\n        other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n      }\n    },\n    iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n    getMode: function() {return this.mode;},\n    getEditor: function() {return this.cm;}\n  });\n\n  // Public alias.\n  Doc.prototype.eachLine = Doc.prototype.iter;\n\n  // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n  var dontDelegate = \"iter insert remove copy getEditor\".split(\" \");\n  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n    CodeMirror.prototype[prop] = (function(method) {\n      return function() {return method.apply(this.doc, arguments);};\n    })(Doc.prototype[prop]);\n\n  eventMixin(Doc);\n\n  // Call f for all linked documents.\n  function linkedDocs(doc, f, sharedHistOnly) {\n    function propagate(doc, skip, sharedHist) {\n      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {\n        var rel = doc.linked[i];\n        if (rel.doc == skip) continue;\n        var shared = sharedHist && rel.sharedHist;\n        if (sharedHistOnly && !shared) continue;\n        f(rel.doc, shared);\n        propagate(rel.doc, doc, shared);\n      }\n    }\n    propagate(doc, null, true);\n  }\n\n  // Attach a document to an editor.\n  function attachDoc(cm, doc) {\n    if (doc.cm) throw new Error(\"This document is already in use.\");\n    cm.doc = doc;\n    doc.cm = cm;\n    estimateLineHeights(cm);\n    loadMode(cm);\n    if (!cm.options.lineWrapping) findMaxLine(cm);\n    cm.options.mode = doc.modeOption;\n    regChange(cm);\n  }\n\n  // LINE UTILITIES\n\n  // Find the line object corresponding to the given line number.\n  function getLine(doc, n) {\n    n -= doc.first;\n    if (n < 0 || n >= doc.size) throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\");\n    for (var chunk = doc; !chunk.lines;) {\n      for (var i = 0;; ++i) {\n        var child = chunk.children[i], sz = child.chunkSize();\n        if (n < sz) { chunk = child; break; }\n        n -= sz;\n      }\n    }\n    return chunk.lines[n];\n  }\n\n  // Get the part of a document between two positions, as an array of\n  // strings.\n  function getBetween(doc, start, end) {\n    var out = [], n = start.line;\n    doc.iter(start.line, end.line + 1, function(line) {\n      var text = line.text;\n      if (n == end.line) text = text.slice(0, end.ch);\n      if (n == start.line) text = text.slice(start.ch);\n      out.push(text);\n      ++n;\n    });\n    return out;\n  }\n  // Get the lines between from and to, as array of strings.\n  function getLines(doc, from, to) {\n    var out = [];\n    doc.iter(from, to, function(line) { out.push(line.text); });\n    return out;\n  }\n\n  // Update the height of a line, propagating the height change\n  // upwards to parent nodes.\n  function updateLineHeight(line, height) {\n    var diff = height - line.height;\n    if (diff) for (var n = line; n; n = n.parent) n.height += diff;\n  }\n\n  // Given a line object, find its line number by walking up through\n  // its parent links.\n  function lineNo(line) {\n    if (line.parent == null) return null;\n    var cur = line.parent, no = indexOf(cur.lines, line);\n    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n      for (var i = 0;; ++i) {\n        if (chunk.children[i] == cur) break;\n        no += chunk.children[i].chunkSize();\n      }\n    }\n    return no + cur.first;\n  }\n\n  // Find the line at the given vertical position, using the height\n  // information in the document tree.\n  function lineAtHeight(chunk, h) {\n    var n = chunk.first;\n    outer: do {\n      for (var i = 0; i < chunk.children.length; ++i) {\n        var child = chunk.children[i], ch = child.height;\n        if (h < ch) { chunk = child; continue outer; }\n        h -= ch;\n        n += child.chunkSize();\n      }\n      return n;\n    } while (!chunk.lines);\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i], lh = line.height;\n      if (h < lh) break;\n      h -= lh;\n    }\n    return n + i;\n  }\n\n\n  // Find the height above the given line.\n  function heightAtLine(lineObj) {\n    lineObj = visualLine(lineObj);\n\n    var h = 0, chunk = lineObj.parent;\n    for (var i = 0; i < chunk.lines.length; ++i) {\n      var line = chunk.lines[i];\n      if (line == lineObj) break;\n      else h += line.height;\n    }\n    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n      for (var i = 0; i < p.children.length; ++i) {\n        var cur = p.children[i];\n        if (cur == chunk) break;\n        else h += cur.height;\n      }\n    }\n    return h;\n  }\n\n  // Get the bidi ordering for the given line (and cache it). Returns\n  // false for lines that are fully left-to-right, and an array of\n  // BidiSpan objects otherwise.\n  function getOrder(line) {\n    var order = line.order;\n    if (order == null) order = line.order = bidiOrdering(line.text);\n    return order;\n  }\n\n  // HISTORY\n\n  function History(startGen) {\n    // Arrays of change events and selections. Doing something adds an\n    // event to done and clears undo. Undoing moves events from done\n    // to undone, redoing moves them in the other direction.\n    this.done = []; this.undone = [];\n    this.undoDepth = Infinity;\n    // Used to track when changes can be merged into a single undo\n    // event\n    this.lastModTime = this.lastSelTime = 0;\n    this.lastOp = this.lastSelOp = null;\n    this.lastOrigin = this.lastSelOrigin = null;\n    // Used by the isClean() method\n    this.generation = this.maxGeneration = startGen || 1;\n  }\n\n  // Create a history change event from an updateDoc-style change\n  // object.\n  function historyChangeFromChange(doc, change) {\n    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);\n    return histChange;\n  }\n\n  // Pop all selection events off the end of a history array. Stop at\n  // a change event.\n  function clearSelectionEvents(array) {\n    while (array.length) {\n      var last = lst(array);\n      if (last.ranges) array.pop();\n      else break;\n    }\n  }\n\n  // Find the top change event in the history. Pop off selection\n  // events that are in the way.\n  function lastChangeEvent(hist, force) {\n    if (force) {\n      clearSelectionEvents(hist.done);\n      return lst(hist.done);\n    } else if (hist.done.length && !lst(hist.done).ranges) {\n      return lst(hist.done);\n    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n      hist.done.pop();\n      return lst(hist.done);\n    }\n  }\n\n  // Register a change in the history. Merges changes that are within\n  // a single operation, ore are close together with an origin that\n  // allows merging (starting with \"+\") into a single event.\n  function addChangeToHistory(doc, change, selAfter, opId) {\n    var hist = doc.history;\n    hist.undone.length = 0;\n    var time = +new Date, cur;\n\n    if ((hist.lastOp == opId ||\n         hist.lastOrigin == change.origin && change.origin &&\n         ((change.origin.charAt(0) == \"+\" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||\n          change.origin.charAt(0) == \"*\")) &&\n        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n      // Merge this change into the last event\n      var last = lst(cur.changes);\n      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n        // Optimized case for simple insertion -- don't want to add\n        // new changesets for every character typed\n        last.to = changeEnd(change);\n      } else {\n        // Add new sub-event\n        cur.changes.push(historyChangeFromChange(doc, change));\n      }\n    } else {\n      // Can not be merged, start a new event.\n      var before = lst(hist.done);\n      if (!before || !before.ranges)\n        pushSelectionToHistory(doc.sel, hist.done);\n      cur = {changes: [historyChangeFromChange(doc, change)],\n             generation: hist.generation};\n      hist.done.push(cur);\n      while (hist.done.length > hist.undoDepth) {\n        hist.done.shift();\n        if (!hist.done[0].ranges) hist.done.shift();\n      }\n    }\n    hist.done.push(selAfter);\n    hist.generation = ++hist.maxGeneration;\n    hist.lastModTime = hist.lastSelTime = time;\n    hist.lastOp = hist.lastSelOp = opId;\n    hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n    if (!last) signal(doc, \"historyAdded\");\n  }\n\n  function selectionEventCanBeMerged(doc, origin, prev, sel) {\n    var ch = origin.charAt(0);\n    return ch == \"*\" ||\n      ch == \"+\" &&\n      prev.ranges.length == sel.ranges.length &&\n      prev.somethingSelected() == sel.somethingSelected() &&\n      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);\n  }\n\n  // Called whenever the selection changes, sets the new selection as\n  // the pending selection in the history, and pushes the old pending\n  // selection into the 'done' array when it was significantly\n  // different (in number of selected ranges, emptiness, or time).\n  function addSelectionToHistory(doc, sel, opId, options) {\n    var hist = doc.history, origin = options && options.origin;\n\n    // A new event is started when the previous origin does not match\n    // the current, or the origins don't allow matching. Origins\n    // starting with * are always merged, those starting with + are\n    // merged when similar and close together in time.\n    if (opId == hist.lastSelOp ||\n        (origin && hist.lastSelOrigin == origin &&\n         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n      hist.done[hist.done.length - 1] = sel;\n    else\n      pushSelectionToHistory(sel, hist.done);\n\n    hist.lastSelTime = +new Date;\n    hist.lastSelOrigin = origin;\n    hist.lastSelOp = opId;\n    if (options && options.clearRedo !== false)\n      clearSelectionEvents(hist.undone);\n  }\n\n  function pushSelectionToHistory(sel, dest) {\n    var top = lst(dest);\n    if (!(top && top.ranges && top.equals(sel)))\n      dest.push(sel);\n  }\n\n  // Used to store marked span information in the history.\n  function attachLocalSpans(doc, change, from, to) {\n    var existing = change[\"spans_\" + doc.id], n = 0;\n    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {\n      if (line.markedSpans)\n        (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans;\n      ++n;\n    });\n  }\n\n  // When un/re-doing restores text containing marked spans, those\n  // that have been explicitly cleared should not be restored.\n  function removeClearedSpans(spans) {\n    if (!spans) return null;\n    for (var i = 0, out; i < spans.length; ++i) {\n      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }\n      else if (out) out.push(spans[i]);\n    }\n    return !out ? spans : out.length ? out : null;\n  }\n\n  // Retrieve and filter the old marked spans stored in a change event.\n  function getOldSpans(doc, change) {\n    var found = change[\"spans_\" + doc.id];\n    if (!found) return null;\n    for (var i = 0, nw = []; i < change.text.length; ++i)\n      nw.push(removeClearedSpans(found[i]));\n    return nw;\n  }\n\n  // Used both to provide a JSON-safe object in .getHistory, and, when\n  // detaching a document, to split the history in two\n  function copyHistoryArray(events, newGroup, instantiateSel) {\n    for (var i = 0, copy = []; i < events.length; ++i) {\n      var event = events[i];\n      if (event.ranges) {\n        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n        continue;\n      }\n      var changes = event.changes, newChanges = [];\n      copy.push({changes: newChanges});\n      for (var j = 0; j < changes.length; ++j) {\n        var change = changes[j], m;\n        newChanges.push({from: change.from, to: change.to, text: change.text});\n        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\\d+)$/)) {\n          if (indexOf(newGroup, Number(m[1])) > -1) {\n            lst(newChanges)[prop] = change[prop];\n            delete change[prop];\n          }\n        }\n      }\n    }\n    return copy;\n  }\n\n  // Rebasing/resetting history to deal with externally-sourced changes\n\n  function rebaseHistSelSingle(pos, from, to, diff) {\n    if (to < pos.line) {\n      pos.line += diff;\n    } else if (from < pos.line) {\n      pos.line = from;\n      pos.ch = 0;\n    }\n  }\n\n  // Tries to rebase an array of history events given a change in the\n  // document. If the change touches the same lines as the event, the\n  // event, and everything 'behind' it, is discarded. If the change is\n  // before the event, the event's positions are updated. Uses a\n  // copy-on-write scheme for the positions, to avoid having to\n  // reallocate them all on every rebase, but also avoid problems with\n  // shared position objects being unsafely updated.\n  function rebaseHistArray(array, from, to, diff) {\n    for (var i = 0; i < array.length; ++i) {\n      var sub = array[i], ok = true;\n      if (sub.ranges) {\n        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n        for (var j = 0; j < sub.ranges.length; j++) {\n          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n        }\n        continue;\n      }\n      for (var j = 0; j < sub.changes.length; ++j) {\n        var cur = sub.changes[j];\n        if (to < cur.from.line) {\n          cur.from = Pos(cur.from.line + diff, cur.from.ch);\n          cur.to = Pos(cur.to.line + diff, cur.to.ch);\n        } else if (from <= cur.to.line) {\n          ok = false;\n          break;\n        }\n      }\n      if (!ok) {\n        array.splice(0, i + 1);\n        i = 0;\n      }\n    }\n  }\n\n  function rebaseHist(hist, change) {\n    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n    rebaseHistArray(hist.done, from, to, diff);\n    rebaseHistArray(hist.undone, from, to, diff);\n  }\n\n  // EVENT UTILITIES\n\n  // Due to the fact that we still support jurassic IE versions, some\n  // compatibility wrappers are needed.\n\n  var e_preventDefault = CodeMirror.e_preventDefault = function(e) {\n    if (e.preventDefault) e.preventDefault();\n    else e.returnValue = false;\n  };\n  var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {\n    if (e.stopPropagation) e.stopPropagation();\n    else e.cancelBubble = true;\n  };\n  function e_defaultPrevented(e) {\n    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;\n  }\n  var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};\n\n  function e_target(e) {return e.target || e.srcElement;}\n  function e_button(e) {\n    var b = e.which;\n    if (b == null) {\n      if (e.button & 1) b = 1;\n      else if (e.button & 2) b = 3;\n      else if (e.button & 4) b = 2;\n    }\n    if (mac && e.ctrlKey && b == 1) b = 3;\n    return b;\n  }\n\n  // EVENT HANDLING\n\n  // Lightweight event framework. on/off also work on DOM nodes,\n  // registering native DOM handlers.\n\n  var on = CodeMirror.on = function(emitter, type, f) {\n    if (emitter.addEventListener)\n      emitter.addEventListener(type, f, false);\n    else if (emitter.attachEvent)\n      emitter.attachEvent(\"on\" + type, f);\n    else {\n      var map = emitter._handlers || (emitter._handlers = {});\n      var arr = map[type] || (map[type] = []);\n      arr.push(f);\n    }\n  };\n\n  var off = CodeMirror.off = function(emitter, type, f) {\n    if (emitter.removeEventListener)\n      emitter.removeEventListener(type, f, false);\n    else if (emitter.detachEvent)\n      emitter.detachEvent(\"on\" + type, f);\n    else {\n      var arr = emitter._handlers && emitter._handlers[type];\n      if (!arr) return;\n      for (var i = 0; i < arr.length; ++i)\n        if (arr[i] == f) { arr.splice(i, 1); break; }\n    }\n  };\n\n  var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2);\n    for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args);\n  };\n\n  var orphanDelayedCallbacks = null;\n\n  // Often, we want to signal events at a point where we are in the\n  // middle of some work, but don't want the handler to start calling\n  // other methods on the editor, which might be in an inconsistent\n  // state or simply not expect any other events to happen.\n  // signalLater looks whether there are any handlers, and schedules\n  // them to be executed when the last operation ends, or, if no\n  // operation is active, when a timeout fires.\n  function signalLater(emitter, type /*, values...*/) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    if (!arr) return;\n    var args = Array.prototype.slice.call(arguments, 2), list;\n    if (operationGroup) {\n      list = operationGroup.delayedCallbacks;\n    } else if (orphanDelayedCallbacks) {\n      list = orphanDelayedCallbacks;\n    } else {\n      list = orphanDelayedCallbacks = [];\n      setTimeout(fireOrphanDelayed, 0);\n    }\n    function bnd(f) {return function(){f.apply(null, args);};};\n    for (var i = 0; i < arr.length; ++i)\n      list.push(bnd(arr[i]));\n  }\n\n  function fireOrphanDelayed() {\n    var delayed = orphanDelayedCallbacks;\n    orphanDelayedCallbacks = null;\n    for (var i = 0; i < delayed.length; ++i) delayed[i]();\n  }\n\n  // The DOM events that CodeMirror handles can be overridden by\n  // registering a (non-DOM) handler on the editor for the event name,\n  // and preventDefault-ing the event in that handler.\n  function signalDOMEvent(cm, e, override) {\n    if (typeof e == \"string\")\n      e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};\n    signal(cm, override || e.type, cm, e);\n    return e_defaultPrevented(e) || e.codemirrorIgnore;\n  }\n\n  function signalCursorActivity(cm) {\n    var arr = cm._handlers && cm._handlers.cursorActivity;\n    if (!arr) return;\n    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n    for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)\n      set.push(arr[i]);\n  }\n\n  function hasHandler(emitter, type) {\n    var arr = emitter._handlers && emitter._handlers[type];\n    return arr && arr.length > 0;\n  }\n\n  // Add on and off methods to a constructor's prototype, to make\n  // registering events on such objects more convenient.\n  function eventMixin(ctor) {\n    ctor.prototype.on = function(type, f) {on(this, type, f);};\n    ctor.prototype.off = function(type, f) {off(this, type, f);};\n  }\n\n  // MISC UTILITIES\n\n  // Number of pixels added to scroller and sizer to hide scrollbar\n  var scrollerGap = 30;\n\n  // Returned or thrown by various protocols to signal 'I'm not\n  // handling this'.\n  var Pass = CodeMirror.Pass = {toString: function(){return \"CodeMirror.Pass\";}};\n\n  // Reused option objects for setSelection & friends\n  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n  function Delayed() {this.id = null;}\n  Delayed.prototype.set = function(ms, f) {\n    clearTimeout(this.id);\n    this.id = setTimeout(f, ms);\n  };\n\n  // Counts the column offset in a string, taking tabs into account.\n  // Used mostly to find indentation.\n  var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {\n    if (end == null) {\n      end = string.search(/[^\\s\\u00a0]/);\n      if (end == -1) end = string.length;\n    }\n    for (var i = startIndex || 0, n = startValue || 0;;) {\n      var nextTab = string.indexOf(\"\\t\", i);\n      if (nextTab < 0 || nextTab >= end)\n        return n + (end - i);\n      n += nextTab - i;\n      n += tabSize - (n % tabSize);\n      i = nextTab + 1;\n    }\n  };\n\n  // The inverse of countColumn -- find the offset that corresponds to\n  // a particular column.\n  function findColumn(string, goal, tabSize) {\n    for (var pos = 0, col = 0;;) {\n      var nextTab = string.indexOf(\"\\t\", pos);\n      if (nextTab == -1) nextTab = string.length;\n      var skipped = nextTab - pos;\n      if (nextTab == string.length || col + skipped >= goal)\n        return pos + Math.min(skipped, goal - col);\n      col += nextTab - pos;\n      col += tabSize - (col % tabSize);\n      pos = nextTab + 1;\n      if (col >= goal) return pos;\n    }\n  }\n\n  var spaceStrs = [\"\"];\n  function spaceStr(n) {\n    while (spaceStrs.length <= n)\n      spaceStrs.push(lst(spaceStrs) + \" \");\n    return spaceStrs[n];\n  }\n\n  function lst(arr) { return arr[arr.length-1]; }\n\n  var selectInput = function(node) { node.select(); };\n  if (ios) // Mobile Safari apparently has a bug where select() is broken.\n    selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };\n  else if (ie) // Suppress mysterious IE10 errors\n    selectInput = function(node) { try { node.select(); } catch(_e) {} };\n\n  function indexOf(array, elt) {\n    for (var i = 0; i < array.length; ++i)\n      if (array[i] == elt) return i;\n    return -1;\n  }\n  function map(array, f) {\n    var out = [];\n    for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);\n    return out;\n  }\n\n  function nothing() {}\n\n  function createObj(base, props) {\n    var inst;\n    if (Object.create) {\n      inst = Object.create(base);\n    } else {\n      nothing.prototype = base;\n      inst = new nothing();\n    }\n    if (props) copyObj(props, inst);\n    return inst;\n  };\n\n  function copyObj(obj, target, overwrite) {\n    if (!target) target = {};\n    for (var prop in obj)\n      if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n        target[prop] = obj[prop];\n    return target;\n  }\n\n  function bind(f) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return function(){return f.apply(null, args);};\n  }\n\n  var nonASCIISingleCaseWordChar = /[\\u00df\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n  var isWordCharBasic = CodeMirror.isWordChar = function(ch) {\n    return /\\w/.test(ch) || ch > \"\\x80\" &&\n      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));\n  };\n  function isWordChar(ch, helper) {\n    if (!helper) return isWordCharBasic(ch);\n    if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) return true;\n    return helper.test(ch);\n  }\n\n  function isEmpty(obj) {\n    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;\n    return true;\n  }\n\n  // Extending unicode characters. A series of a non-extending char +\n  // any number of extending chars is treated as a single unit as far\n  // as editing and measuring is concerned. This is not fully correct,\n  // since some scripts/fonts/browsers also treat other configurations\n  // of code points as a group.\n  var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }\n\n  // DOM UTILITIES\n\n  function elt(tag, content, className, style) {\n    var e = document.createElement(tag);\n    if (className) e.className = className;\n    if (style) e.style.cssText = style;\n    if (typeof content == \"string\") e.appendChild(document.createTextNode(content));\n    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);\n    return e;\n  }\n\n  var range;\n  if (document.createRange) range = function(node, start, end, endNode) {\n    var r = document.createRange();\n    r.setEnd(endNode || node, end);\n    r.setStart(node, start);\n    return r;\n  };\n  else range = function(node, start, end) {\n    var r = document.body.createTextRange();\n    try { r.moveToElementText(node.parentNode); }\n    catch(e) { return r; }\n    r.collapse(true);\n    r.moveEnd(\"character\", end);\n    r.moveStart(\"character\", start);\n    return r;\n  };\n\n  function removeChildren(e) {\n    for (var count = e.childNodes.length; count > 0; --count)\n      e.removeChild(e.firstChild);\n    return e;\n  }\n\n  function removeChildrenAndAdd(parent, e) {\n    return removeChildren(parent).appendChild(e);\n  }\n\n  var contains = CodeMirror.contains = function(parent, child) {\n    if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n      child = child.parentNode;\n    if (parent.contains)\n      return parent.contains(child);\n    do {\n      if (child.nodeType == 11) child = child.host;\n      if (child == parent) return true;\n    } while (child = child.parentNode);\n  };\n\n  function activeElt() { return document.activeElement; }\n  // Older versions of IE throws unspecified error when touching\n  // document.activeElement in some cases (during loading, in iframe)\n  if (ie && ie_version < 11) activeElt = function() {\n    try { return document.activeElement; }\n    catch(e) { return document.body; }\n  };\n\n  function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\"); }\n  var rmClass = CodeMirror.rmClass = function(node, cls) {\n    var current = node.className;\n    var match = classTest(cls).exec(current);\n    if (match) {\n      var after = current.slice(match.index + match[0].length);\n      node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n    }\n  };\n  var addClass = CodeMirror.addClass = function(node, cls) {\n    var current = node.className;\n    if (!classTest(cls).test(current)) node.className += (current ? \" \" : \"\") + cls;\n  };\n  function joinClasses(a, b) {\n    var as = a.split(\" \");\n    for (var i = 0; i < as.length; i++)\n      if (as[i] && !classTest(as[i]).test(b)) b += \" \" + as[i];\n    return b;\n  }\n\n  // WINDOW-WIDE EVENTS\n\n  // These must be handled carefully, because naively registering a\n  // handler for each editor will cause the editors to never be\n  // garbage collected.\n\n  function forEachCodeMirror(f) {\n    if (!document.body.getElementsByClassName) return;\n    var byClass = document.body.getElementsByClassName(\"CodeMirror\");\n    for (var i = 0; i < byClass.length; i++) {\n      var cm = byClass[i].CodeMirror;\n      if (cm) f(cm);\n    }\n  }\n\n  var globalsRegistered = false;\n  function ensureGlobalHandlers() {\n    if (globalsRegistered) return;\n    registerGlobalHandlers();\n    globalsRegistered = true;\n  }\n  function registerGlobalHandlers() {\n    // When the window resizes, we need to refresh active editors.\n    var resizeTimer;\n    on(window, \"resize\", function() {\n      if (resizeTimer == null) resizeTimer = setTimeout(function() {\n        resizeTimer = null;\n        forEachCodeMirror(onResize);\n      }, 100);\n    });\n    // When the window loses focus, we want to show the editor as blurred\n    on(window, \"blur\", function() {\n      forEachCodeMirror(onBlur);\n    });\n  }\n\n  // FEATURE DETECTION\n\n  // Detect drag-and-drop\n  var dragAndDrop = function() {\n    // There is *some* kind of drag-and-drop support in IE6-8, but I\n    // couldn't get it to work yet.\n    if (ie && ie_version < 9) return false;\n    var div = elt('div');\n    return \"draggable\" in div || \"dragDrop\" in div;\n  }();\n\n  var zwspSupported;\n  function zeroWidthElement(measure) {\n    if (zwspSupported == null) {\n      var test = elt(\"span\", \"\\u200b\");\n      removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n      if (measure.firstChild.offsetHeight != 0)\n        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);\n    }\n    var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n      elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n    node.setAttribute(\"cm-text\", \"\");\n    return node;\n  }\n\n  // Feature-detect IE's crummy client rect reporting for bidi text\n  var badBidiRects;\n  function hasBadBidiRects(measure) {\n    if (badBidiRects != null) return badBidiRects;\n    var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n    var r0 = range(txt, 0, 1).getBoundingClientRect();\n    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)\n    var r1 = range(txt, 1, 2).getBoundingClientRect();\n    return badBidiRects = (r1.right - r0.right < 3);\n  }\n\n  // See if \"\".split is the broken IE version, if so, provide an\n  // alternative way to split lines.\n  var splitLines = CodeMirror.splitLines = \"\\n\\nb\".split(/\\n/).length != 3 ? function(string) {\n    var pos = 0, result = [], l = string.length;\n    while (pos <= l) {\n      var nl = string.indexOf(\"\\n\", pos);\n      if (nl == -1) nl = string.length;\n      var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n      var rt = line.indexOf(\"\\r\");\n      if (rt != -1) {\n        result.push(line.slice(0, rt));\n        pos += rt + 1;\n      } else {\n        result.push(line);\n        pos = nl + 1;\n      }\n    }\n    return result;\n  } : function(string){return string.split(/\\r\\n?|\\n/);};\n\n  var hasSelection = window.getSelection ? function(te) {\n    try { return te.selectionStart != te.selectionEnd; }\n    catch(e) { return false; }\n  } : function(te) {\n    try {var range = te.ownerDocument.selection.createRange();}\n    catch(e) {}\n    if (!range || range.parentElement() != te) return false;\n    return range.compareEndPoints(\"StartToEnd\", range) != 0;\n  };\n\n  var hasCopyEvent = (function() {\n    var e = elt(\"div\");\n    if (\"oncopy\" in e) return true;\n    e.setAttribute(\"oncopy\", \"return;\");\n    return typeof e.oncopy == \"function\";\n  })();\n\n  var badZoomedRects = null;\n  function hasBadZoomedRects(measure) {\n    if (badZoomedRects != null) return badZoomedRects;\n    var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n    var normal = node.getBoundingClientRect();\n    var fromRange = range(node, 0, 1).getBoundingClientRect();\n    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;\n  }\n\n  // KEY NAMES\n\n  var keyNames = {3: \"Enter\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n                  19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n                  36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n                  46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\", 107: \"=\", 109: \"-\", 127: \"Delete\",\n                  173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n                  221: \"]\", 222: \"'\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n                  63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"};\n  CodeMirror.keyNames = keyNames;\n  (function() {\n    // Number keys\n    for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);\n    // Alphabetic keys\n    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);\n    // Function keys\n    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = \"F\" + i;\n  })();\n\n  // BIDI HELPERS\n\n  function iterateBidiSections(order, from, to, f) {\n    if (!order) return f(from, to, \"ltr\");\n    var found = false;\n    for (var i = 0; i < order.length; ++i) {\n      var part = order[i];\n      if (part.from < to && part.to > from || from == to && part.to == from) {\n        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\");\n        found = true;\n      }\n    }\n    if (!found) f(from, to, \"ltr\");\n  }\n\n  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }\n  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }\n\n  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }\n  function lineRight(line) {\n    var order = getOrder(line);\n    if (!order) return line.text.length;\n    return bidiRight(lst(order));\n  }\n\n  function lineStart(cm, lineN) {\n    var line = getLine(cm.doc, lineN);\n    var visual = visualLine(line);\n    if (visual != line) lineN = lineNo(visual);\n    var order = getOrder(visual);\n    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);\n    return Pos(lineN, ch);\n  }\n  function lineEnd(cm, lineN) {\n    var merged, line = getLine(cm.doc, lineN);\n    while (merged = collapsedSpanAtEnd(line)) {\n      line = merged.find(1, true).line;\n      lineN = null;\n    }\n    var order = getOrder(line);\n    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);\n    return Pos(lineN == null ? lineNo(line) : lineN, ch);\n  }\n  function lineStartSmart(cm, pos) {\n    var start = lineStart(cm, pos.line);\n    var line = getLine(cm.doc, start.line);\n    var order = getOrder(line);\n    if (!order || order[0].level == 0) {\n      var firstNonWS = Math.max(0, line.text.search(/\\S/));\n      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n      return Pos(start.line, inWS ? 0 : firstNonWS);\n    }\n    return start;\n  }\n\n  function compareBidiLevel(order, a, b) {\n    var linedir = order[0].level;\n    if (a == linedir) return true;\n    if (b == linedir) return false;\n    return a < b;\n  }\n  var bidiOther;\n  function getBidiPartAt(order, pos) {\n    bidiOther = null;\n    for (var i = 0, found; i < order.length; ++i) {\n      var cur = order[i];\n      if (cur.from < pos && cur.to > pos) return i;\n      if ((cur.from == pos || cur.to == pos)) {\n        if (found == null) {\n          found = i;\n        } else if (compareBidiLevel(order, cur.level, order[found].level)) {\n          if (cur.from != cur.to) bidiOther = found;\n          return i;\n        } else {\n          if (cur.from != cur.to) bidiOther = i;\n          return found;\n        }\n      }\n    }\n    return found;\n  }\n\n  function moveInLine(line, pos, dir, byUnit) {\n    if (!byUnit) return pos + dir;\n    do pos += dir;\n    while (pos > 0 && isExtendingChar(line.text.charAt(pos)));\n    return pos;\n  }\n\n  // This is needed in order to move 'visually' through bi-directional\n  // text -- i.e., pressing left should make the cursor go left, even\n  // when in RTL text. The tricky part is the 'jumps', where RTL and\n  // LTR text touch each other. This often requires the cursor offset\n  // to move more than one unit, in order to visually move one unit.\n  function moveVisually(line, start, dir, byUnit) {\n    var bidi = getOrder(line);\n    if (!bidi) return moveLogically(line, start, dir, byUnit);\n    var pos = getBidiPartAt(bidi, start), part = bidi[pos];\n    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);\n\n    for (;;) {\n      if (target > part.from && target < part.to) return target;\n      if (target == part.from || target == part.to) {\n        if (getBidiPartAt(bidi, target) == pos) return target;\n        part = bidi[pos += dir];\n        return (dir > 0) == part.level % 2 ? part.to : part.from;\n      } else {\n        part = bidi[pos += dir];\n        if (!part) return null;\n        if ((dir > 0) == part.level % 2)\n          target = moveInLine(line, part.to, -1, byUnit);\n        else\n          target = moveInLine(line, part.from, 1, byUnit);\n      }\n    }\n  }\n\n  function moveLogically(line, start, dir, byUnit) {\n    var target = start + dir;\n    if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;\n    return target < 0 || target > line.text.length ? null : target;\n  }\n\n  // Bidirectional ordering algorithm\n  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n  // that this (partially) implements.\n\n  // One-char codes used for character types:\n  // L (L):   Left-to-Right\n  // R (R):   Right-to-Left\n  // r (AL):  Right-to-Left Arabic\n  // 1 (EN):  European Number\n  // + (ES):  European Number Separator\n  // % (ET):  European Number Terminator\n  // n (AN):  Arabic Number\n  // , (CS):  Common Number Separator\n  // m (NSM): Non-Spacing Mark\n  // b (BN):  Boundary Neutral\n  // s (B):   Paragraph Separator\n  // t (S):   Segment Separator\n  // w (WS):  Whitespace\n  // N (ON):  Other Neutrals\n\n  // Returns null if characters are ordered as they appear\n  // (left-to-right), or an array of sections ({from, to, level}\n  // objects) in the order in which they occur visually.\n  var bidiOrdering = (function() {\n    // Character types for codepoints 0 to 0xff\n    var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n    // Character types for codepoints 0x600 to 0x6ff\n    var arabicTypes = \"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm\";\n    function charType(code) {\n      if (code <= 0xf7) return lowTypes.charAt(code);\n      else if (0x590 <= code && code <= 0x5f4) return \"R\";\n      else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);\n      else if (0x6ee <= code && code <= 0x8ac) return \"r\";\n      else if (0x2000 <= code && code <= 0x200b) return \"w\";\n      else if (code == 0x200c) return \"b\";\n      else return \"L\";\n    }\n\n    var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n    // Browsers seem to always treat the boundaries of block elements as being L.\n    var outerType = \"L\";\n\n    function BidiSpan(level, from, to) {\n      this.level = level;\n      this.from = from; this.to = to;\n    }\n\n    return function(str) {\n      if (!bidiRE.test(str)) return false;\n      var len = str.length, types = [];\n      for (var i = 0, type; i < len; ++i)\n        types.push(type = charType(str.charCodeAt(i)));\n\n      // W1. Examine each non-spacing mark (NSM) in the level run, and\n      // change the type of the NSM to the type of the previous\n      // character. If the NSM is at the start of the level run, it will\n      // get the type of sor.\n      for (var i = 0, prev = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"m\") types[i] = prev;\n        else prev = type;\n      }\n\n      // W2. Search backwards from each instance of a European number\n      // until the first strong type (R, L, AL, or sor) is found. If an\n      // AL is found, change the type of the European number to Arabic\n      // number.\n      // W3. Change all ALs to R.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (type == \"1\" && cur == \"r\") types[i] = \"n\";\n        else if (isStrong.test(type)) { cur = type; if (type == \"r\") types[i] = \"R\"; }\n      }\n\n      // W4. A single European separator between two European numbers\n      // changes to a European number. A single common separator between\n      // two numbers of the same type changes to that type.\n      for (var i = 1, prev = types[0]; i < len - 1; ++i) {\n        var type = types[i];\n        if (type == \"+\" && prev == \"1\" && types[i+1] == \"1\") types[i] = \"1\";\n        else if (type == \",\" && prev == types[i+1] &&\n                 (prev == \"1\" || prev == \"n\")) types[i] = prev;\n        prev = type;\n      }\n\n      // W5. A sequence of European terminators adjacent to European\n      // numbers changes to all European numbers.\n      // W6. Otherwise, separators and terminators change to Other\n      // Neutral.\n      for (var i = 0; i < len; ++i) {\n        var type = types[i];\n        if (type == \",\") types[i] = \"N\";\n        else if (type == \"%\") {\n          for (var end = i + 1; end < len && types[end] == \"%\"; ++end) {}\n          var replace = (i && types[i-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // W7. Search backwards from each instance of a European number\n      // until the first strong type (R, L, or sor) is found. If an L is\n      // found, then change the type of the European number to L.\n      for (var i = 0, cur = outerType; i < len; ++i) {\n        var type = types[i];\n        if (cur == \"L\" && type == \"1\") types[i] = \"L\";\n        else if (isStrong.test(type)) cur = type;\n      }\n\n      // N1. A sequence of neutrals takes the direction of the\n      // surrounding strong text if the text on both sides has the same\n      // direction. European and Arabic numbers act as if they were R in\n      // terms of their influence on neutrals. Start-of-level-run (sor)\n      // and end-of-level-run (eor) are used at level run boundaries.\n      // N2. Any remaining neutrals take the embedding direction.\n      for (var i = 0; i < len; ++i) {\n        if (isNeutral.test(types[i])) {\n          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}\n          var before = (i ? types[i-1] : outerType) == \"L\";\n          var after = (end < len ? types[end] : outerType) == \"L\";\n          var replace = before || after ? \"L\" : \"R\";\n          for (var j = i; j < end; ++j) types[j] = replace;\n          i = end - 1;\n        }\n      }\n\n      // Here we depart from the documented algorithm, in order to avoid\n      // building up an actual levels array. Since there are only three\n      // levels (0, 1, 2) in an implementation that doesn't take\n      // explicit embedding into account, we can build up the order on\n      // the fly, without following the level-based algorithm.\n      var order = [], m;\n      for (var i = 0; i < len;) {\n        if (countsAsLeft.test(types[i])) {\n          var start = i;\n          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}\n          order.push(new BidiSpan(0, start, i));\n        } else {\n          var pos = i, at = order.length;\n          for (++i; i < len && types[i] != \"L\"; ++i) {}\n          for (var j = pos; j < i;) {\n            if (countsAsNum.test(types[j])) {\n              if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));\n              var nstart = j;\n              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}\n              order.splice(at, 0, new BidiSpan(2, nstart, j));\n              pos = j;\n            } else ++j;\n          }\n          if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));\n        }\n      }\n      if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n        order[0].from = m[0].length;\n        order.unshift(new BidiSpan(0, 0, m[0].length));\n      }\n      if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n        lst(order).to -= m[0].length;\n        order.push(new BidiSpan(0, len - m[0].length, len));\n      }\n      if (order[0].level != lst(order).level)\n        order.push(new BidiSpan(order[0].level, len, len));\n\n      return order;\n    };\n  })();\n\n  // THE END\n\n  CodeMirror.version = \"5.0.0\";\n\n  return CodeMirror;\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/apl/apl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"apl\", function() {\n  var builtInOps = {\n    \".\": \"innerProduct\",\n    \"\\\\\": \"scan\",\n    \"/\": \"reduce\",\n    \"⌿\": \"reduce1Axis\",\n    \"⍀\": \"scan1Axis\",\n    \"¨\": \"each\",\n    \"⍣\": \"power\"\n  };\n  var builtInFuncs = {\n    \"+\": [\"conjugate\", \"add\"],\n    \"−\": [\"negate\", \"subtract\"],\n    \"×\": [\"signOf\", \"multiply\"],\n    \"÷\": [\"reciprocal\", \"divide\"],\n    \"⌈\": [\"ceiling\", \"greaterOf\"],\n    \"⌊\": [\"floor\", \"lesserOf\"],\n    \"∣\": [\"absolute\", \"residue\"],\n    \"⍳\": [\"indexGenerate\", \"indexOf\"],\n    \"?\": [\"roll\", \"deal\"],\n    \"⋆\": [\"exponentiate\", \"toThePowerOf\"],\n    \"⍟\": [\"naturalLog\", \"logToTheBase\"],\n    \"○\": [\"piTimes\", \"circularFuncs\"],\n    \"!\": [\"factorial\", \"binomial\"],\n    \"⌹\": [\"matrixInverse\", \"matrixDivide\"],\n    \"<\": [null, \"lessThan\"],\n    \"≤\": [null, \"lessThanOrEqual\"],\n    \"=\": [null, \"equals\"],\n    \">\": [null, \"greaterThan\"],\n    \"≥\": [null, \"greaterThanOrEqual\"],\n    \"≠\": [null, \"notEqual\"],\n    \"≡\": [\"depth\", \"match\"],\n    \"≢\": [null, \"notMatch\"],\n    \"∈\": [\"enlist\", \"membership\"],\n    \"⍷\": [null, \"find\"],\n    \"∪\": [\"unique\", \"union\"],\n    \"∩\": [null, \"intersection\"],\n    \"∼\": [\"not\", \"without\"],\n    \"∨\": [null, \"or\"],\n    \"∧\": [null, \"and\"],\n    \"⍱\": [null, \"nor\"],\n    \"⍲\": [null, \"nand\"],\n    \"⍴\": [\"shapeOf\", \"reshape\"],\n    \",\": [\"ravel\", \"catenate\"],\n    \"⍪\": [null, \"firstAxisCatenate\"],\n    \"⌽\": [\"reverse\", \"rotate\"],\n    \"⊖\": [\"axis1Reverse\", \"axis1Rotate\"],\n    \"⍉\": [\"transpose\", null],\n    \"↑\": [\"first\", \"take\"],\n    \"↓\": [null, \"drop\"],\n    \"⊂\": [\"enclose\", \"partitionWithAxis\"],\n    \"⊃\": [\"diclose\", \"pick\"],\n    \"⌷\": [null, \"index\"],\n    \"⍋\": [\"gradeUp\", null],\n    \"⍒\": [\"gradeDown\", null],\n    \"⊤\": [\"encode\", null],\n    \"⊥\": [\"decode\", null],\n    \"⍕\": [\"format\", \"formatByExample\"],\n    \"⍎\": [\"execute\", null],\n    \"⊣\": [\"stop\", \"left\"],\n    \"⊢\": [\"pass\", \"right\"]\n  };\n\n  var isOperator = /[\\.\\/⌿⍀¨⍣]/;\n  var isNiladic = /⍬/;\n  var isFunction = /[\\+−×÷⌈⌊∣⍳\\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;\n  var isArrow = /←/;\n  var isComment = /[⍝#].*$/;\n\n  var stringEater = function(type) {\n    var prev;\n    prev = false;\n    return function(c) {\n      prev = c;\n      if (c === type) {\n        return prev === \"\\\\\";\n      }\n      return true;\n    };\n  };\n  return {\n    startState: function() {\n      return {\n        prev: false,\n        func: false,\n        op: false,\n        string: false,\n        escape: false\n      };\n    },\n    token: function(stream, state) {\n      var ch, funcName, word;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      ch = stream.next();\n      if (ch === '\"' || ch === \"'\") {\n        stream.eatWhile(stringEater(ch));\n        stream.next();\n        state.prev = true;\n        return \"string\";\n      }\n      if (/[\\[{\\(]/.test(ch)) {\n        state.prev = false;\n        return null;\n      }\n      if (/[\\]}\\)]/.test(ch)) {\n        state.prev = true;\n        return null;\n      }\n      if (isNiladic.test(ch)) {\n        state.prev = false;\n        return \"niladic\";\n      }\n      if (/[¯\\d]/.test(ch)) {\n        if (state.func) {\n          state.func = false;\n          state.prev = false;\n        } else {\n          state.prev = true;\n        }\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperator.test(ch)) {\n        return \"operator apl-\" + builtInOps[ch];\n      }\n      if (isArrow.test(ch)) {\n        return \"apl-arrow\";\n      }\n      if (isFunction.test(ch)) {\n        funcName = \"apl-\";\n        if (builtInFuncs[ch] != null) {\n          if (state.prev) {\n            funcName += builtInFuncs[ch][1];\n          } else {\n            funcName += builtInFuncs[ch][0];\n          }\n        }\n        state.func = true;\n        state.prev = false;\n        return \"function \" + funcName;\n      }\n      if (isComment.test(ch)) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (ch === \"∘\" && stream.peek() === \".\") {\n        stream.next();\n        return \"function jot-dot\";\n      }\n      stream.eatWhile(/[\\w\\$_]/);\n      word = stream.current();\n      state.prev = true;\n      return \"keyword\";\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/apl\", \"apl\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/apl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: APL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"./apl.js\"></script>\n<style>\n\t.CodeMirror { border: 2px inset #dee; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">APL</a>\n  </ul>\n</div>\n\n<article>\n<h2>APL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n⍝ Conway's game of life\n\n⍝ This example was inspired by the impressive demo at\n⍝ http://www.youtube.com/watch?v=a9xAKttWgP4\n\n⍝ Create a matrix:\n⍝     0 1 1\n⍝     1 1 0\n⍝     0 1 0\ncreature ← (3 3 ⍴ ⍳ 9) ∈ 1 2 3 4 7   ⍝ Original creature from demo\ncreature ← (3 3 ⍴ ⍳ 9) ∈ 1 3 6 7 8   ⍝ Glider\n\n⍝ Place the creature on a larger board, near the centre\nboard ← ¯1 ⊖ ¯2 ⌽ 5 7 ↑ creature\n\n⍝ A function to move from one generation to the next\nlife ← {∨/ 1 ⍵ ∧ 3 4 = ⊂+/ +⌿ 1 0 ¯1 ∘.⊖ 1 0 ¯1 ⌽¨ ⊂⍵}\n\n⍝ Compute n-th generation and format it as a\n⍝ character matrix\ngen ← {' #'[(life ⍣ ⍵) board]}\n\n⍝ Show first three generations\n(gen 1) (gen 2) (gen 3)\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/apl\"\n      });\n    </script>\n\n    <p>Simple mode that tries to handle APL as well as it can.</p>\n    <p>It attempts to label functions/operators based upon\n    monadic/dyadic usage (but this is far from fully fleshed out).\n    This means there are meaningful classnames so hover states can\n    have popups etc.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/apl</code> (APL code)</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/asterisk/asterisk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n * =====================================================================================\n *\n *       Filename:  mode/asterisk/asterisk.js\n *\n *    Description:  CodeMirror mode for Asterisk dialplan\n *\n *        Created:  05/17/2012 09:20:25 PM\n *       Revision:  none\n *\n *         Author:  Stas Kobzar (stas@modulis.ca),\n *        Company:  Modulis.ca Inc.\n *\n * =====================================================================================\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"asterisk\", function() {\n  var atoms    = [\"exten\", \"same\", \"include\",\"ignorepat\",\"switch\"],\n      dpcmd    = [\"#include\",\"#exec\"],\n      apps     = [\n                  \"addqueuemember\",\"adsiprog\",\"aelsub\",\"agentlogin\",\"agentmonitoroutgoing\",\"agi\",\n                  \"alarmreceiver\",\"amd\",\"answer\",\"authenticate\",\"background\",\"backgrounddetect\",\n                  \"bridge\",\"busy\",\"callcompletioncancel\",\"callcompletionrequest\",\"celgenuserevent\",\n                  \"changemonitor\",\"chanisavail\",\"channelredirect\",\"chanspy\",\"clearhash\",\"confbridge\",\n                  \"congestion\",\"continuewhile\",\"controlplayback\",\"dahdiacceptr2call\",\"dahdibarge\",\n                  \"dahdiras\",\"dahdiscan\",\"dahdisendcallreroutingfacility\",\"dahdisendkeypadfacility\",\n                  \"datetime\",\"dbdel\",\"dbdeltree\",\"deadagi\",\"dial\",\"dictate\",\"directory\",\"disa\",\n                  \"dumpchan\",\"eagi\",\"echo\",\"endwhile\",\"exec\",\"execif\",\"execiftime\",\"exitwhile\",\"extenspy\",\n                  \"externalivr\",\"festival\",\"flash\",\"followme\",\"forkcdr\",\"getcpeid\",\"gosub\",\"gosubif\",\n                  \"goto\",\"gotoif\",\"gotoiftime\",\"hangup\",\"iax2provision\",\"ices\",\"importvar\",\"incomplete\",\n                  \"ivrdemo\",\"jabberjoin\",\"jabberleave\",\"jabbersend\",\"jabbersendgroup\",\"jabberstatus\",\n                  \"jack\",\"log\",\"macro\",\"macroexclusive\",\"macroexit\",\"macroif\",\"mailboxexists\",\"meetme\",\n                  \"meetmeadmin\",\"meetmechanneladmin\",\"meetmecount\",\"milliwatt\",\"minivmaccmess\",\"minivmdelete\",\n                  \"minivmgreet\",\"minivmmwi\",\"minivmnotify\",\"minivmrecord\",\"mixmonitor\",\"monitor\",\"morsecode\",\n                  \"mp3player\",\"mset\",\"musiconhold\",\"nbscat\",\"nocdr\",\"noop\",\"odbc\",\"odbc\",\"odbcfinish\",\n                  \"originate\",\"ospauth\",\"ospfinish\",\"osplookup\",\"ospnext\",\"page\",\"park\",\"parkandannounce\",\n                  \"parkedcall\",\"pausemonitor\",\"pausequeuemember\",\"pickup\",\"pickupchan\",\"playback\",\"playtones\",\n                  \"privacymanager\",\"proceeding\",\"progress\",\"queue\",\"queuelog\",\"raiseexception\",\"read\",\"readexten\",\n                  \"readfile\",\"receivefax\",\"receivefax\",\"receivefax\",\"record\",\"removequeuemember\",\n                  \"resetcdr\",\"retrydial\",\"return\",\"ringing\",\"sayalpha\",\"saycountedadj\",\"saycountednoun\",\n                  \"saycountpl\",\"saydigits\",\"saynumber\",\"sayphonetic\",\"sayunixtime\",\"senddtmf\",\"sendfax\",\n                  \"sendfax\",\"sendfax\",\"sendimage\",\"sendtext\",\"sendurl\",\"set\",\"setamaflags\",\n                  \"setcallerpres\",\"setmusiconhold\",\"sipaddheader\",\"sipdtmfmode\",\"sipremoveheader\",\"skel\",\n                  \"slastation\",\"slatrunk\",\"sms\",\"softhangup\",\"speechactivategrammar\",\"speechbackground\",\n                  \"speechcreate\",\"speechdeactivategrammar\",\"speechdestroy\",\"speechloadgrammar\",\"speechprocessingsound\",\n                  \"speechstart\",\"speechunloadgrammar\",\"stackpop\",\"startmusiconhold\",\"stopmixmonitor\",\"stopmonitor\",\n                  \"stopmusiconhold\",\"stopplaytones\",\"system\",\"testclient\",\"testserver\",\"transfer\",\"tryexec\",\n                  \"trysystem\",\"unpausemonitor\",\"unpausequeuemember\",\"userevent\",\"verbose\",\"vmauthenticate\",\n                  \"vmsayname\",\"voicemail\",\"voicemailmain\",\"wait\",\"waitexten\",\"waitfornoise\",\"waitforring\",\n                  \"waitforsilence\",\"waitmusiconhold\",\"waituntil\",\"while\",\"zapateller\"\n                 ];\n\n  function basicToken(stream,state){\n    var cur = '';\n    var ch  = '';\n    ch = stream.next();\n    // comment\n    if(ch == \";\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // context\n    if(ch == '[') {\n      stream.skipTo(']');\n      stream.eat(']');\n      return \"header\";\n    }\n    // string\n    if(ch == '\"') {\n      stream.skipTo('\"');\n      return \"string\";\n    }\n    if(ch == \"'\") {\n      stream.skipTo(\"'\");\n      return \"string-2\";\n    }\n    // dialplan commands\n    if(ch == '#') {\n      stream.eatWhile(/\\w/);\n      cur = stream.current();\n      if(dpcmd.indexOf(cur) !== -1) {\n        stream.skipToEnd();\n        return \"strong\";\n      }\n    }\n    // application args\n    if(ch == '$'){\n      var ch1 = stream.peek();\n      if(ch1 == '{'){\n        stream.skipTo('}');\n        stream.eat('}');\n        return \"variable-3\";\n      }\n    }\n    // extension\n    stream.eatWhile(/\\w/);\n    cur = stream.current();\n    if(atoms.indexOf(cur) !== -1) {\n      state.extenStart = true;\n      switch(cur) {\n        case 'same': state.extenSame = true; break;\n        case 'include':\n        case 'switch':\n        case 'ignorepat':\n          state.extenInclude = true;break;\n        default:break;\n      }\n      return \"atom\";\n    }\n  }\n\n  return {\n    startState: function() {\n      return {\n        extenStart: false,\n        extenSame:  false,\n        extenInclude: false,\n        extenExten: false,\n        extenPriority: false,\n        extenApplication: false\n      };\n    },\n    token: function(stream, state) {\n\n      var cur = '';\n      var ch  = '';\n      if(stream.eatSpace()) return null;\n      // extension started\n      if(state.extenStart){\n        stream.eatWhile(/[^\\s]/);\n        cur = stream.current();\n        if(/^=>?$/.test(cur)){\n          state.extenExten = true;\n          state.extenStart = false;\n          return \"strong\";\n        } else {\n          state.extenStart = false;\n          stream.skipToEnd();\n          return \"error\";\n        }\n      } else if(state.extenExten) {\n        // set exten and priority\n        state.extenExten = false;\n        state.extenPriority = true;\n        stream.eatWhile(/[^,]/);\n        if(state.extenInclude) {\n          stream.skipToEnd();\n          state.extenPriority = false;\n          state.extenInclude = false;\n        }\n        if(state.extenSame) {\n          state.extenPriority = false;\n          state.extenSame = false;\n          state.extenApplication = true;\n        }\n        return \"tag\";\n      } else if(state.extenPriority) {\n        state.extenPriority = false;\n        state.extenApplication = true;\n        ch = stream.next(); // get comma\n        if(state.extenSame) return null;\n        stream.eatWhile(/[^,]/);\n        return \"number\";\n      } else if(state.extenApplication) {\n        stream.eatWhile(/,/);\n        cur = stream.current();\n        if(cur === ',') return null;\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        state.extenApplication = false;\n        if(apps.indexOf(cur) !== -1){\n          return \"def strong\";\n        }\n      } else{\n        return basicToken(stream,state);\n      }\n\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-asterisk\", \"asterisk\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/asterisk/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Asterisk dialplan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"asterisk.js\"></script>\n<style>\n      .CodeMirror {border: 1px solid #999;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Asterisk dialplan</a>\n  </ul>\n</div>\n\n<article>\n<h2>Asterisk dialplan mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; extensions.conf - the Asterisk dial plan\n;\n\n[general]\n;\n; If static is set to no, or omitted, then the pbx_config will rewrite\n; this file when extensions are modified.  Remember that all comments\n; made in the file will be lost when that happens.\nstatic=yes\n\n#include \"/etc/asterisk/additional_general.conf\n\n[iaxprovider]\nswitch => IAX2/user:[key]@myserver/mycontext\n\n[dynamic]\n#exec /usr/bin/dynamic-peers.pl\n\n[trunkint]\n;\n; International long distance through trunk\n;\nexten => _9011.,1,Macro(dundi-e164,${EXTEN:4})\nexten => _9011.,n,Dial(${GLOBAL(TRUNK)}/${FILTER(0-9,${EXTEN:${GLOBAL(TRUNKMSD)}})})\n\n[local]\n;\n; Master context for local, toll-free, and iaxtel calls only\n;\nignorepat => 9\ninclude => default\n\n[demo]\ninclude => stdexten\n;\n; We start with what to do when a call first comes in.\n;\nexten => s,1,Wait(1)\t\t\t; Wait a second, just for fun\nsame  => n,Answer\t\t\t; Answer the line\nsame  => n,Set(TIMEOUT(digit)=5)\t; Set Digit Timeout to 5 seconds\nsame  => n,Set(TIMEOUT(response)=10)\t; Set Response Timeout to 10 seconds\nsame  => n(restart),BackGround(demo-congrats)\t; Play a congratulatory message\nsame  => n(instruct),BackGround(demo-instruct)\t; Play some instructions\nsame  => n,WaitExten\t\t\t; Wait for an extension to be dialed.\n\nexten => 2,1,BackGround(demo-moreinfo)\t; Give some more information.\nexten => 2,n,Goto(s,instruct)\n\nexten => 3,1,Set(LANGUAGE()=fr)\t\t; Set language to french\nexten => 3,n,Goto(s,restart)\t\t; Start with the congratulations\n\nexten => 1000,1,Goto(default,s,1)\n;\n; We also create an example user, 1234, who is on the console and has\n; voicemail, etc.\n;\nexten => 1234,1,Playback(transfer,skip)\t\t; \"Please hold while...\"\n\t\t\t\t\t; (but skip if channel is not up)\nexten => 1234,n,Gosub(${EXTEN},stdexten(${GLOBAL(CONSOLE)}))\nexten => 1234,n,Goto(default,s,1)\t\t; exited Voicemail\n\nexten => 1235,1,Voicemail(1234,u)\t\t; Right to voicemail\n\nexten => 1236,1,Dial(Console/dsp)\t\t; Ring forever\nexten => 1236,n,Voicemail(1234,b)\t\t; Unless busy\n\n;\n; # for when they're done with the demo\n;\nexten => #,1,Playback(demo-thanks)\t; \"Thanks for trying the demo\"\nexten => #,n,Hangup\t\t\t; Hang them up.\n\n;\n; A timeout and \"invalid extension rule\"\n;\nexten => t,1,Goto(#,1)\t\t\t; If they take too long, give up\nexten => i,1,Playback(invalid)\t\t; \"That's not valid, try again\"\n\n;\n; Create an extension, 500, for dialing the\n; Asterisk demo.\n;\nexten => 500,1,Playback(demo-abouttotry); Let them know what's going on\nexten => 500,n,Dial(IAX2/guest@pbx.digium.com/s@default)\t; Call the Asterisk demo\nexten => 500,n,Playback(demo-nogo)\t; Couldn't connect to the demo site\nexten => 500,n,Goto(s,6)\t\t; Return to the start over message.\n\n;\n; Create an extension, 600, for evaluating echo latency.\n;\nexten => 600,1,Playback(demo-echotest)\t; Let them know what's going on\nexten => 600,n,Echo\t\t\t; Do the echo test\nexten => 600,n,Playback(demo-echodone)\t; Let them know it's over\nexten => 600,n,Goto(s,6)\t\t; Start over\n\n;\n;\tYou can use the Macro Page to intercom a individual user\nexten => 76245,1,Macro(page,SIP/Grandstream1)\n; or if your peernames are the same as extensions\nexten => _7XXX,1,Macro(page,SIP/${EXTEN})\n;\n;\n; System Wide Page at extension 7999\n;\nexten => 7999,1,Set(TIMEOUT(absolute)=60)\nexten => 7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n,d)\n\n; Give voicemail at extension 8500\n;\nexten => 8500,1,VoicemailMain\nexten => 8500,n,Goto(s,6)\n\n    </textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-asterisk\",\n        matchBrackets: true,\n        lineNumber: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-asterisk</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/clike/clike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"clike\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings,\n      indentStatements = parserConfig.indentStatements !== false;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (indentStatements &&\n               (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') ||\n                (ctx.type == \"statement\" && curPunc == \"newstatement\")))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align && (!dontAlignCalls || ctx.type != \")\")) return ctx.column + (closing ? 0 : 1);\n      else if (ctx.type == \")\" && !closing) return ctx.indented + statementIndentUnit;\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var cKeywords = \"auto if break int case long char register continue return default short do sizeof \" +\n    \"double static else struct entry switch extern typedef float union for unsigned \" +\n    \"goto while enum void const signed volatile\";\n\n  function cppHook(stream, state) {\n    if (!state.startOfLine) return false;\n    for (;;) {\n      if (stream.skipTo(\"\\\\\")) {\n        stream.next();\n        if (stream.eol()) {\n          state.tokenize = cppHook;\n          break;\n        }\n      } else {\n        stream.skipToEnd();\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"meta\";\n  }\n\n  function cpp11StringHook(stream, state) {\n    stream.backUp(1);\n    // Raw strings.\n    if (stream.match(/(R|u8R|uR|UR|LR)/)) {\n      var match = stream.match(/\"([^\\s\\\\()]{0,16})\\(/);\n      if (!match) {\n        return false;\n      }\n      state.cpp11RawStringDelim = match[1];\n      state.tokenize = tokenRawString;\n      return tokenRawString(stream, state);\n    }\n    // Unicode strings/chars.\n    if (stream.match(/(u8|u|U|L)/)) {\n      if (stream.match(/[\"']/, /* eat */ false)) {\n        return \"string\";\n      }\n      return false;\n    }\n    // Ignore this hook.\n    stream.next();\n    return false;\n  }\n\n  // C#-style strings where \"\" escapes a quote.\n  function tokenAtString(stream, state) {\n    var next;\n    while ((next = stream.next()) != null) {\n      if (next == '\"' && !stream.eat('\"')) {\n        state.tokenize = null;\n        break;\n      }\n    }\n    return \"string\";\n  }\n\n  // C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n  // <delim> can be a string up to 16 characters long.\n  function tokenRawString(stream, state) {\n    // Escape characters that have special regex meanings.\n    var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n    var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n    if (match)\n      state.tokenize = null;\n    else\n      stream.skipToEnd();\n    return \"string\";\n  }\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\") mimes = [mimes];\n    var words = [];\n    function add(obj) {\n      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n        words.push(prop);\n    }\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.atoms);\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i = 0; i < mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-csrc\", \"text/x-c\", \"text/x-chdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords),\n    blockKeywords: words(\"case do else for if switch while struct\"),\n    atoms: words(\"null\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def([\"text/x-c++src\", \"text/x-c++hdr\"], {\n    name: \"clike\",\n    keywords: words(cKeywords + \" asm dynamic_cast namespace reinterpret_cast try bool explicit new \" +\n                    \"static_cast typeid catch operator template typename class friend private \" +\n                    \"this using const_cast inline public throw virtual delete mutable protected \" +\n                    \"wchar_t alignas alignof constexpr decltype nullptr noexcept thread_local final \" +\n                    \"static_assert override\"),\n    blockKeywords: words(\"catch class do else finally for if struct switch try while\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"#\": cppHook,\n      \"u\": cpp11StringHook,\n      \"U\": cpp11StringHook,\n      \"L\": cpp11StringHook,\n      \"R\": cpp11StringHook\n    },\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-java\", {\n    name: \"clike\",\n    keywords: words(\"abstract assert boolean break byte case catch char class const continue default \" +\n                    \"do double else enum extends final finally float for goto if implements import \" +\n                    \"instanceof int interface long native new package private protected public \" +\n                    \"return short static strictfp super switch synchronized this throw throws transient \" +\n                    \"try void volatile while\"),\n    blockKeywords: words(\"catch class do else finally for if switch try while\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    },\n    modeProps: {fold: [\"brace\", \"import\"]}\n  });\n\n  def(\"text/x-csharp\", {\n    name: \"clike\",\n    keywords: words(\"abstract as base break case catch checked class const continue\" +\n                    \" default delegate do else enum event explicit extern finally fixed for\" +\n                    \" foreach goto if implicit in interface internal is lock namespace new\" +\n                    \" operator out override params private protected public readonly ref return sealed\" +\n                    \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n                    \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n                    \" global group into join let orderby partial remove select set value var yield\"),\n    blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n    builtin: words(\"Boolean Byte Char DateTime DateTimeOffset Decimal Double\" +\n                    \" Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32\" +\n                    \" UInt64 bool byte char decimal double short int long object\"  +\n                    \" sbyte float string ushort uint ulong\"),\n    atoms: words(\"true false null\"),\n    hooks: {\n      \"@\": function(stream, state) {\n        if (stream.eat('\"')) {\n          state.tokenize = tokenAtString;\n          return tokenAtString(stream, state);\n        }\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n  function tokenTripleString(stream, state) {\n    var escaped = false;\n    while (!stream.eol()) {\n      if (!escaped && stream.match('\"\"\"')) {\n        state.tokenize = null;\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  def(\"text/x-scala\", {\n    name: \"clike\",\n    keywords: words(\n\n      /* scala */\n      \"abstract case catch class def do else extends false final finally for forSome if \" +\n      \"implicit import lazy match new null object override package private protected return \" +\n      \"sealed super this throw trait try trye type val var while with yield _ : = => <- <: \" +\n      \"<% >: # @ \" +\n\n      /* package scala */\n      \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n      \"readChar readInt readLong readFloat readDouble \" +\n\n      \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n      \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable \" +\n      \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n      \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n      \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: \" +\n\n      /* package java.lang */\n      \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n      \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n      \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n      \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n    ),\n    multiLineStrings: true,\n    blockKeywords: words(\"catch class do else finally for forSome if match switch try while\"),\n    atoms: words(\"true false null\"),\n    indentStatements: false,\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      },\n      '\"': function(stream, state) {\n        if (!stream.match('\"\"')) return false;\n        state.tokenize = tokenTripleString;\n        return state.tokenize(stream, state);\n      },\n      \"'\": function(stream) {\n        stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n        return \"atom\";\n      }\n    }\n  });\n\n  def([\"x-shader/x-vertex\", \"x-shader/x-fragment\"], {\n    name: \"clike\",\n    keywords: words(\"float int bool void \" +\n                    \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n                    \"mat2 mat3 mat4 \" +\n                    \"sampler1D sampler2D sampler3D samplerCube \" +\n                    \"sampler1DShadow sampler2DShadow \" +\n                    \"const attribute uniform varying \" +\n                    \"break continue discard return \" +\n                    \"for while do if else struct \" +\n                    \"in out inout\"),\n    blockKeywords: words(\"for while do if else struct\"),\n    builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n                    \"pow exp log exp2 sqrt inversesqrt \" +\n                    \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n                    \"length distance dot cross normalize ftransform faceforward \" +\n                    \"reflect refract matrixCompMult \" +\n                    \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n                    \"equal notEqual any all not \" +\n                    \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n                    \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n                    \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n                    \"textureCube textureCubeLod \" +\n                    \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n                    \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n                    \"dFdx dFdy fwidth \" +\n                    \"noise1 noise2 noise3 noise4\"),\n    atoms: words(\"true false \" +\n                \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n                \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n                \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n                \"gl_FogCoord gl_PointCoord \" +\n                \"gl_Position gl_PointSize gl_ClipVertex \" +\n                \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n                \"gl_TexCoord gl_FogFragCoord \" +\n                \"gl_FragCoord gl_FrontFacing \" +\n                \"gl_FragData gl_FragDepth \" +\n                \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n                \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n                \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n                \"gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n                \"gl_ProjectionMatrixInverseTranspose \" +\n                \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n                \"gl_TextureMatrixInverseTranspose \" +\n                \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n                \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n                \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n                \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n                \"gl_FogParameters \" +\n                \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n                \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n                \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n                \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n                \"gl_MaxDrawBuffers\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-nesc\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \"as atomic async call command component components configuration event generic \" +\n                    \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n                    \"signal task uses abstract extends\"),\n    blockKeywords: words(\"case do else for if switch while struct\"),\n    atoms: words(\"null\"),\n    hooks: {\"#\": cppHook},\n    modeProps: {fold: [\"brace\", \"include\"]}\n  });\n\n  def(\"text/x-objectivec\", {\n    name: \"clike\",\n    keywords: words(cKeywords + \"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in \" +\n                    \"inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly\"),\n    atoms: words(\"YES NO NULL NILL ON OFF\"),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$]/);\n        return \"keyword\";\n      },\n      \"#\": cppHook\n    },\n    modeProps: {fold: \"brace\"}\n  });\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/clike/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: C-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"clike.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">C-like</a>\n  </ul>\n</div>\n\n<article>\n<h2>C-like mode</h2>\n\n<div><textarea id=\"c-code\">\n/* C demo code */\n\n#include <zmq.h>\n#include <pthread.h>\n#include <semaphore.h>\n#include <time.h>\n#include <stdio.h>\n#include <fcntl.h>\n#include <malloc.h>\n\ntypedef struct {\n  void* arg_socket;\n  zmq_msg_t* arg_msg;\n  char* arg_string;\n  unsigned long arg_len;\n  int arg_int, arg_command;\n\n  int signal_fd;\n  int pad;\n  void* context;\n  sem_t sem;\n} acl_zmq_context;\n\n#define p(X) (context->arg_##X)\n\nvoid* zmq_thread(void* context_pointer) {\n  acl_zmq_context* context = (acl_zmq_context*)context_pointer;\n  char ok = 'K', err = 'X';\n  int res;\n\n  while (1) {\n    while ((res = sem_wait(&amp;context->sem)) == EINTR);\n    if (res) {write(context->signal_fd, &amp;err, 1); goto cleanup;}\n    switch(p(command)) {\n    case 0: goto cleanup;\n    case 1: p(socket) = zmq_socket(context->context, p(int)); break;\n    case 2: p(int) = zmq_close(p(socket)); break;\n    case 3: p(int) = zmq_bind(p(socket), p(string)); break;\n    case 4: p(int) = zmq_connect(p(socket), p(string)); break;\n    case 5: p(int) = zmq_getsockopt(p(socket), p(int), (void*)p(string), &amp;p(len)); break;\n    case 6: p(int) = zmq_setsockopt(p(socket), p(int), (void*)p(string), p(len)); break;\n    case 7: p(int) = zmq_send(p(socket), p(msg), p(int)); break;\n    case 8: p(int) = zmq_recv(p(socket), p(msg), p(int)); break;\n    case 9: p(int) = zmq_poll(p(socket), p(int), p(len)); break;\n    }\n    p(command) = errno;\n    write(context->signal_fd, &amp;ok, 1);\n  }\n cleanup:\n  close(context->signal_fd);\n  free(context_pointer);\n  return 0;\n}\n\nvoid* zmq_thread_init(void* zmq_context, int signal_fd) {\n  acl_zmq_context* context = malloc(sizeof(acl_zmq_context));\n  pthread_t thread;\n\n  context->context = zmq_context;\n  context->signal_fd = signal_fd;\n  sem_init(&amp;context->sem, 1, 0);\n  pthread_create(&amp;thread, 0, &amp;zmq_thread, context);\n  pthread_detach(thread);\n  return context;\n}\n</textarea></div>\n\n<h2>C++ example</h2>\n\n<div><textarea id=\"cpp-code\">\n#include <iostream>\n#include \"mystuff/util.h\"\n\nnamespace {\nenum Enum {\n  VAL1, VAL2, VAL3\n};\n\nchar32_t unicode_string = U\"\\U0010FFFF\";\nstring raw_string = R\"delim(anything\nyou\nwant)delim\";\n\nint Helper(const MyType& param) {\n  return 0;\n}\n} // namespace\n\nclass ForwardDec;\n\ntemplate <class T, class V>\nclass Class : public BaseClass {\n  const MyType<T, V> member_;\n\n public:\n  const MyType<T, V>& Method() const {\n    return member_;\n  }\n\n  void Method2(MyType<T, V>* value);\n}\n\ntemplate <class T, class V>\nvoid Class::Method2(MyType<T, V>* value) {\n  std::out << 1 >> method();\n  value->Method3(member_);\n  member_ = value;\n}\n</textarea></div>\n\n<h2>Objective-C example</h2>\n\n<div><textarea id=\"objectivec-code\">\n/*\nThis is a longer comment\nThat spans two lines\n*/\n\n#import <Test/Test.h>\n@implementation YourAppDelegate\n\n// This is a one-line comment\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{\n  char myString[] = \"This is a C character array\";\n  int test = 5;\n  return YES;\n}\n</textarea></div>\n\n<h2>Java example</h2>\n\n<div><textarea id=\"java-code\">\nimport com.demo.util.MyType;\nimport com.demo.util.MyInterface;\n\npublic enum Enum {\n  VAL1, VAL2, VAL3\n}\n\npublic class Class<T, V> implements MyInterface {\n  public static final MyType<T, V> member;\n  \n  private class InnerClass {\n    public int zero() {\n      return 0;\n    }\n  }\n\n  @Override\n  public MyType method() {\n    return member;\n  }\n\n  public void method2(MyType<T, V> value) {\n    method();\n    value.method3();\n    member = value;\n  }\n}\n</textarea></div>\n\n<h2>Scala example</h2>\n\n<div><textarea id=\"scala-code\">\nobject FilterTest extends App {\n  def filter(xs: List[Int], threshold: Int) = {\n    def process(ys: List[Int]): List[Int] =\n      if (ys.isEmpty) ys\n      else if (ys.head < threshold) ys.head :: process(ys.tail)\n      else process(ys.tail)\n    process(xs)\n  }\n  println(filter(List(1, 9, 2, 8, 3, 7, 4), 5))\n}\n</textarea></div>\n\n    <script>\n      var cEditor = CodeMirror.fromTextArea(document.getElementById(\"c-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-csrc\"\n      });\n      var cppEditor = CodeMirror.fromTextArea(document.getElementById(\"cpp-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-c++src\"\n      });\n      var javaEditor = CodeMirror.fromTextArea(document.getElementById(\"java-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-java\"\n      });\n      var objectivecEditor = CodeMirror.fromTextArea(document.getElementById(\"objectivec-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-objectivec\"\n      });\n      var scalaEditor = CodeMirror.fromTextArea(document.getElementById(\"scala-code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-scala\"\n      });\n      var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;\n      CodeMirror.keyMap.default[(mac ? \"Cmd\" : \"Ctrl\") + \"-Space\"] = \"autocomplete\";\n    </script>\n\n    <p>Simple mode that tries to handle C-like languages as well as it\n    can. Takes two configuration parameters: <code>keywords</code>, an\n    object whose property names are the keywords in the language,\n    and <code>useCPP</code>, which determines whether C preprocessor\n    directives are recognized.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-csrc</code>\n    (C), <code>text/x-c++src</code> (C++), <code>text/x-java</code>\n    (Java), <code>text/x-csharp</code> (C#),\n    <code>text/x-objectivec</code> (Objective-C),\n    <code>text/x-scala</code> (Scala), <code>text/x-vertex</code>\n    and <code>x-shader/x-fragment</code> (shader programs).</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/clike/scala.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Scala mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"clike.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Scala</a>\n  </ul>\n</div>\n\n<article>\n<h2>Scala mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\n\n  /*                     __                                               *\\\n  **     ________ ___   / /  ___     Scala API                            **\n  **    / __/ __// _ | / /  / _ |    (c) 2003-2011, LAMP/EPFL             **\n  **  __\\ \\/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **\n  ** /____/\\___/_/ |_/____/_/ | |                                         **\n  **                          |/                                          **\n  \\*                                                                      */\n\n  package scala.collection\n\n  import generic._\n  import mutable.{ Builder, ListBuffer }\n  import annotation.{tailrec, migration, bridge}\n  import annotation.unchecked.{ uncheckedVariance => uV }\n  import parallel.ParIterable\n\n  /** A template trait for traversable collections of type `Traversable[A]`.\n   *  \n   *  $traversableInfo\n   *  @define mutability\n   *  @define traversableInfo\n   *  This is a base trait of all kinds of $mutability Scala collections. It\n   *  implements the behavior common to all collections, in terms of a method\n   *  `foreach` with signature:\n   * {{{\n   *     def foreach[U](f: Elem => U): Unit\n   * }}}\n   *  Collection classes mixing in this trait provide a concrete \n   *  `foreach` method which traverses all the\n   *  elements contained in the collection, applying a given function to each.\n   *  They also need to provide a method `newBuilder`\n   *  which creates a builder for collections of the same kind.\n   *  \n   *  A traversable class might or might not have two properties: strictness\n   *  and orderedness. Neither is represented as a type.\n   *  \n   *  The instances of a strict collection class have all their elements\n   *  computed before they can be used as values. By contrast, instances of\n   *  a non-strict collection class may defer computation of some of their\n   *  elements until after the instance is available as a value.\n   *  A typical example of a non-strict collection class is a\n   *  <a href=\"../immutable/Stream.html\" target=\"ContentFrame\">\n   *  `scala.collection.immutable.Stream`</a>.\n   *  A more general class of examples are `TraversableViews`.\n   *  \n   *  If a collection is an instance of an ordered collection class, traversing\n   *  its elements with `foreach` will always visit elements in the\n   *  same order, even for different runs of the program. If the class is not\n   *  ordered, `foreach` can visit elements in different orders for\n   *  different runs (but it will keep the same order in the same run).'\n   * \n   *  A typical example of a collection class which is not ordered is a\n   *  `HashMap` of objects. The traversal order for hash maps will\n   *  depend on the hash codes of its elements, and these hash codes might\n   *  differ from one run to the next. By contrast, a `LinkedHashMap`\n   *  is ordered because it's `foreach` method visits elements in the\n   *  order they were inserted into the `HashMap`.\n   *\n   *  @author Martin Odersky\n   *  @version 2.8\n   *  @since   2.8\n   *  @tparam A    the element type of the collection\n   *  @tparam Repr the type of the actual collection containing the elements.\n   *\n   *  @define Coll Traversable\n   *  @define coll traversable collection\n   */\n  trait TraversableLike[+A, +Repr] extends HasNewBuilder[A, Repr] \n                                      with FilterMonadic[A, Repr]\n                                      with TraversableOnce[A]\n                                      with GenTraversableLike[A, Repr]\n                                      with Parallelizable[A, ParIterable[A]]\n  {\n    self =>\n\n    import Traversable.breaks._\n\n    /** The type implementing this traversable */\n    protected type Self = Repr\n\n    /** The collection of type $coll underlying this `TraversableLike` object.\n     *  By default this is implemented as the `TraversableLike` object itself,\n     *  but this can be overridden.\n     */\n    def repr: Repr = this.asInstanceOf[Repr]\n\n    /** The underlying collection seen as an instance of `$Coll`.\n     *  By default this is implemented as the current collection object itself,\n     *  but this can be overridden.\n     */\n    protected[this] def thisCollection: Traversable[A] = this.asInstanceOf[Traversable[A]]\n\n    /** A conversion from collections of type `Repr` to `$Coll` objects.\n     *  By default this is implemented as just a cast, but this can be overridden.\n     */\n    protected[this] def toCollection(repr: Repr): Traversable[A] = repr.asInstanceOf[Traversable[A]]\n\n    /** Creates a new builder for this collection type.\n     */\n    protected[this] def newBuilder: Builder[A, Repr]\n\n    protected[this] def parCombiner = ParIterable.newCombiner[A]\n\n    /** Applies a function `f` to all elements of this $coll.\n     *  \n     *    Note: this method underlies the implementation of most other bulk operations.\n     *    It's important to implement this method in an efficient way.\n     *  \n     *\n     *  @param  f   the function that is applied for its side-effect to every element.\n     *              The result of function `f` is discarded.\n     *              \n     *  @tparam  U  the type parameter describing the result of function `f`. \n     *              This result will always be ignored. Typically `U` is `Unit`,\n     *              but this is not necessary.\n     *\n     *  @usecase def foreach(f: A => Unit): Unit\n     */\n    def foreach[U](f: A => U): Unit\n\n    /** Tests whether this $coll is empty.\n     *\n     *  @return    `true` if the $coll contain no elements, `false` otherwise.\n     */\n    def isEmpty: Boolean = {\n      var result = true\n      breakable {\n        for (x <- this) {\n          result = false\n          break\n        }\n      }\n      result\n    }\n\n    /** Tests whether this $coll is known to have a finite size.\n     *  All strict collections are known to have finite size. For a non-strict collection\n     *  such as `Stream`, the predicate returns `true` if all elements have been computed.\n     *  It returns `false` if the stream is not yet evaluated to the end.\n     *\n     *  Note: many collection methods will not work on collections of infinite sizes. \n     *\n     *  @return  `true` if this collection is known to have finite size, `false` otherwise.\n     */\n    def hasDefiniteSize = true\n\n    def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.seq.size)\n      b ++= thisCollection\n      b ++= that.seq\n      b.result\n    }\n\n    @bridge\n    def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =\n      ++(that: GenTraversableOnce[B])(bf)\n\n    /** Concatenates this $coll with the elements of a traversable collection.\n     *  It differs from ++ in that the right operand determines the type of the\n     *  resulting collection rather than the left one.\n     * \n     *  @param that   the traversable to append.\n     *  @tparam B     the element type of the returned collection. \n     *  @tparam That  $thatinfo\n     *  @param bf     $bfinfo\n     *  @return       a new collection of type `That` which contains all elements\n     *                of this $coll followed by all elements of `that`.\n     * \n     *  @usecase def ++:[B](that: TraversableOnce[B]): $Coll[B]\n     *  \n     *  @return       a new $coll which contains all elements of this $coll\n     *                followed by all elements of `that`.\n     */\n    def ++:[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      if (that.isInstanceOf[IndexedSeqLike[_, _]]) b.sizeHint(this, that.size)\n      b ++= that\n      b ++= thisCollection\n      b.result\n    }\n\n    /** This overload exists because: for the implementation of ++: we should reuse\n     *  that of ++ because many collections override it with more efficient versions.\n     *  Since TraversableOnce has no '++' method, we have to implement that directly,\n     *  but Traversable and down can use the overload.\n     */\n    def ++:[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Repr, B, That]): That =\n      (that ++ seq)(breakOut)\n\n    def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      b.sizeHint(this) \n      for (x <- this) b += f(x)\n      b.result\n    }\n\n    def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) b ++= f(x).seq\n      b.result\n    }\n\n    /** Selects all elements of this $coll which satisfy a predicate.\n     *\n     *  @param p     the predicate used to test elements.\n     *  @return      a new $coll consisting of all elements of this $coll that satisfy the given\n     *               predicate `p`. The order of the elements is preserved.\n     */\n    def filter(p: A => Boolean): Repr = {\n      val b = newBuilder\n      for (x <- this) \n        if (p(x)) b += x\n      b.result\n    }\n\n    /** Selects all elements of this $coll which do not satisfy a predicate.\n     *\n     *  @param p     the predicate used to test elements.\n     *  @return      a new $coll consisting of all elements of this $coll that do not satisfy the given\n     *               predicate `p`. The order of the elements is preserved.\n     */\n    def filterNot(p: A => Boolean): Repr = filter(!p(_))\n\n    def collect[B, That](pf: PartialFunction[A, B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) if (pf.isDefinedAt(x)) b += pf(x)\n      b.result\n    }\n\n    /** Builds a new collection by applying an option-valued function to all\n     *  elements of this $coll on which the function is defined.\n     *\n     *  @param f      the option-valued function which filters and maps the $coll.\n     *  @tparam B     the element type of the returned collection.\n     *  @tparam That  $thatinfo\n     *  @param bf     $bfinfo\n     *  @return       a new collection of type `That` resulting from applying the option-valued function\n     *                `f` to each element and collecting all defined results.\n     *                The order of the elements is preserved.\n     *\n     *  @usecase def filterMap[B](f: A => Option[B]): $Coll[B]\n     *  \n     *  @param pf     the partial function which filters and maps the $coll.\n     *  @return       a new $coll resulting from applying the given option-valued function\n     *                `f` to each element and collecting all defined results.\n     *                The order of the elements is preserved.\n    def filterMap[B, That](f: A => Option[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      for (x <- this) \n        f(x) match {\n          case Some(y) => b += y\n          case _ =>\n        }\n      b.result\n    }\n     */\n\n    /** Partitions this $coll in two ${coll}s according to a predicate.\n     *\n     *  @param p the predicate on which to partition.\n     *  @return  a pair of ${coll}s: the first $coll consists of all elements that \n     *           satisfy the predicate `p` and the second $coll consists of all elements\n     *           that don't. The relative order of the elements in the resulting ${coll}s\n     *           is the same as in the original $coll.\n     */\n    def partition(p: A => Boolean): (Repr, Repr) = {\n      val l, r = newBuilder\n      for (x <- this) (if (p(x)) l else r) += x\n      (l.result, r.result)\n    }\n\n    def groupBy[K](f: A => K): immutable.Map[K, Repr] = {\n      val m = mutable.Map.empty[K, Builder[A, Repr]]\n      for (elem <- this) {\n        val key = f(elem)\n        val bldr = m.getOrElseUpdate(key, newBuilder)\n        bldr += elem\n      }\n      val b = immutable.Map.newBuilder[K, Repr]\n      for ((k, v) <- m)\n        b += ((k, v.result))\n\n      b.result\n    }\n\n    /** Tests whether a predicate holds for all elements of this $coll.\n     *\n     *  $mayNotTerminateInf\n     *\n     *  @param   p     the predicate used to test elements.\n     *  @return        `true` if the given predicate `p` holds for all elements\n     *                 of this $coll, otherwise `false`.\n     */\n    def forall(p: A => Boolean): Boolean = {\n      var result = true\n      breakable {\n        for (x <- this)\n          if (!p(x)) { result = false; break }\n      }\n      result\n    }\n\n    /** Tests whether a predicate holds for some of the elements of this $coll.\n     *\n     *  $mayNotTerminateInf\n     *\n     *  @param   p     the predicate used to test elements.\n     *  @return        `true` if the given predicate `p` holds for some of the\n     *                 elements of this $coll, otherwise `false`.\n     */\n    def exists(p: A => Boolean): Boolean = {\n      var result = false\n      breakable {\n        for (x <- this)\n          if (p(x)) { result = true; break }\n      }\n      result\n    }\n\n    /** Finds the first element of the $coll satisfying a predicate, if any.\n     * \n     *  $mayNotTerminateInf\n     *  $orderDependent\n     *\n     *  @param p    the predicate used to test elements.\n     *  @return     an option value containing the first element in the $coll\n     *              that satisfies `p`, or `None` if none exists.\n     */\n    def find(p: A => Boolean): Option[A] = {\n      var result: Option[A] = None\n      breakable {\n        for (x <- this)\n          if (p(x)) { result = Some(x); break }\n      }\n      result\n    }\n\n    def scan[B >: A, That](z: B)(op: (B, B) => B)(implicit cbf: CanBuildFrom[Repr, B, That]): That = scanLeft(z)(op)\n\n    def scanLeft[B, That](z: B)(op: (B, A) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      val b = bf(repr)\n      b.sizeHint(this, 1)\n      var acc = z\n      b += acc\n      for (x <- this) { acc = op(acc, x); b += acc }\n      b.result\n    }\n\n    @migration(2, 9,\n      \"This scanRight definition has changed in 2.9.\\n\" +\n      \"The previous behavior can be reproduced with scanRight.reverse.\"\n    )\n    def scanRight[B, That](z: B)(op: (A, B) => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n      var scanned = List(z)\n      var acc = z\n      for (x <- reversed) {\n        acc = op(x, acc)\n        scanned ::= acc\n      }\n      val b = bf(repr)\n      for (elem <- scanned) b += elem\n      b.result\n    }\n\n    /** Selects the first element of this $coll.\n     *  $orderDependent\n     *  @return  the first element of this $coll.\n     *  @throws `NoSuchElementException` if the $coll is empty.\n     */\n    def head: A = {\n      var result: () => A = () => throw new NoSuchElementException\n      breakable {\n        for (x <- this) {\n          result = () => x\n          break\n        }\n      }\n      result()\n    }\n\n    /** Optionally selects the first element.\n     *  $orderDependent\n     *  @return  the first element of this $coll if it is nonempty, `None` if it is empty.\n     */\n    def headOption: Option[A] = if (isEmpty) None else Some(head)\n\n    /** Selects all elements except the first.\n     *  $orderDependent\n     *  @return  a $coll consisting of all elements of this $coll\n     *           except the first one.\n     *  @throws `UnsupportedOperationException` if the $coll is empty.\n     */ \n    override def tail: Repr = {\n      if (isEmpty) throw new UnsupportedOperationException(\"empty.tail\")\n      drop(1)\n    }\n\n    /** Selects the last element.\n      * $orderDependent\n      * @return The last element of this $coll.\n      * @throws NoSuchElementException If the $coll is empty.\n      */\n    def last: A = {\n      var lst = head\n      for (x <- this)\n        lst = x\n      lst\n    }\n\n    /** Optionally selects the last element.\n     *  $orderDependent\n     *  @return  the last element of this $coll$ if it is nonempty, `None` if it is empty.\n     */\n    def lastOption: Option[A] = if (isEmpty) None else Some(last)\n\n    /** Selects all elements except the last.\n     *  $orderDependent\n     *  @return  a $coll consisting of all elements of this $coll\n     *           except the last one.\n     *  @throws `UnsupportedOperationException` if the $coll is empty.\n     */\n    def init: Repr = {\n      if (isEmpty) throw new UnsupportedOperationException(\"empty.init\")\n      var lst = head\n      var follow = false\n      val b = newBuilder\n      b.sizeHint(this, -1)\n      for (x <- this.seq) {\n        if (follow) b += lst\n        else follow = true\n        lst = x\n      }\n      b.result\n    }\n\n    def take(n: Int): Repr = slice(0, n)\n\n    def drop(n: Int): Repr = \n      if (n <= 0) {\n        val b = newBuilder\n        b.sizeHint(this)\n        b ++= thisCollection result\n      }\n      else sliceWithKnownDelta(n, Int.MaxValue, -n)\n\n    def slice(from: Int, until: Int): Repr = sliceWithKnownBound(math.max(from, 0), until)\n\n    // Precondition: from >= 0, until > 0, builder already configured for building.\n    private[this] def sliceInternal(from: Int, until: Int, b: Builder[A, Repr]): Repr = {\n      var i = 0\n      breakable {\n        for (x <- this.seq) {\n          if (i >= from) b += x\n          i += 1\n          if (i >= until) break\n        }\n      }\n      b.result\n    }\n    // Precondition: from >= 0\n    private[scala] def sliceWithKnownDelta(from: Int, until: Int, delta: Int): Repr = {\n      val b = newBuilder\n      if (until <= from) b.result\n      else {\n        b.sizeHint(this, delta)\n        sliceInternal(from, until, b)\n      }\n    }\n    // Precondition: from >= 0\n    private[scala] def sliceWithKnownBound(from: Int, until: Int): Repr = {\n      val b = newBuilder\n      if (until <= from) b.result\n      else {\n        b.sizeHintBounded(until - from, this)      \n        sliceInternal(from, until, b)\n      }\n    }\n\n    def takeWhile(p: A => Boolean): Repr = {\n      val b = newBuilder\n      breakable {\n        for (x <- this) {\n          if (!p(x)) break\n          b += x\n        }\n      }\n      b.result\n    }\n\n    def dropWhile(p: A => Boolean): Repr = {\n      val b = newBuilder\n      var go = false\n      for (x <- this) {\n        if (!p(x)) go = true\n        if (go) b += x\n      }\n      b.result\n    }\n\n    def span(p: A => Boolean): (Repr, Repr) = {\n      val l, r = newBuilder\n      var toLeft = true\n      for (x <- this) {\n        toLeft = toLeft && p(x)\n        (if (toLeft) l else r) += x\n      }\n      (l.result, r.result)\n    }\n\n    def splitAt(n: Int): (Repr, Repr) = {\n      val l, r = newBuilder\n      l.sizeHintBounded(n, this)\n      if (n >= 0) r.sizeHint(this, -n)\n      var i = 0\n      for (x <- this) {\n        (if (i < n) l else r) += x\n        i += 1\n      }\n      (l.result, r.result)\n    }\n\n    /** Iterates over the tails of this $coll. The first value will be this\n     *  $coll and the final one will be an empty $coll, with the intervening\n     *  values the results of successive applications of `tail`.\n     *\n     *  @return   an iterator over all the tails of this $coll\n     *  @example  `List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)`\n     */  \n    def tails: Iterator[Repr] = iterateUntilEmpty(_.tail)\n\n    /** Iterates over the inits of this $coll. The first value will be this\n     *  $coll and the final one will be an empty $coll, with the intervening\n     *  values the results of successive applications of `init`.\n     *\n     *  @return  an iterator over all the inits of this $coll\n     *  @example  `List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)`\n     */\n    def inits: Iterator[Repr] = iterateUntilEmpty(_.init)\n\n    /** Copies elements of this $coll to an array.\n     *  Fills the given array `xs` with at most `len` elements of\n     *  this $coll, starting at position `start`.\n     *  Copying will stop once either the end of the current $coll is reached,\n     *  or the end of the array is reached, or `len` elements have been copied.\n     *\n     *  $willNotTerminateInf\n     * \n     *  @param  xs     the array to fill.\n     *  @param  start  the starting index.\n     *  @param  len    the maximal number of elements to copy.\n     *  @tparam B      the type of the elements of the array. \n     * \n     *\n     *  @usecase def copyToArray(xs: Array[A], start: Int, len: Int): Unit\n     */\n    def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) {\n      var i = start\n      val end = (start + len) min xs.length\n      breakable {\n        for (x <- this) {\n          if (i >= end) break\n          xs(i) = x\n          i += 1\n        }\n      }\n    }\n\n    def toTraversable: Traversable[A] = thisCollection\n    def toIterator: Iterator[A] = toStream.iterator\n    def toStream: Stream[A] = toBuffer.toStream\n\n    /** Converts this $coll to a string.\n     *\n     *  @return   a string representation of this collection. By default this\n     *            string consists of the `stringPrefix` of this $coll,\n     *            followed by all elements separated by commas and enclosed in parentheses.\n     */\n    override def toString = mkString(stringPrefix + \"(\", \", \", \")\")\n\n    /** Defines the prefix of this object's `toString` representation.\n     *\n     *  @return  a string representation which starts the result of `toString`\n     *           applied to this $coll. By default the string prefix is the\n     *           simple name of the collection class $coll.\n     */\n    def stringPrefix : String = {\n      var string = repr.asInstanceOf[AnyRef].getClass.getName\n      val idx1 = string.lastIndexOf('.' : Int)\n      if (idx1 != -1) string = string.substring(idx1 + 1)\n      val idx2 = string.indexOf('$')\n      if (idx2 != -1) string = string.substring(0, idx2)\n      string\n    }\n\n    /** Creates a non-strict view of this $coll.\n     * \n     *  @return a non-strict view of this $coll.\n     */\n    def view = new TraversableView[A, Repr] {\n      protected lazy val underlying = self.repr\n      override def foreach[U](f: A => U) = self foreach f\n    }\n\n    /** Creates a non-strict view of a slice of this $coll.\n     *\n     *  Note: the difference between `view` and `slice` is that `view` produces\n     *        a view of the current $coll, whereas `slice` produces a new $coll.\n     * \n     *  Note: `view(from, to)` is equivalent to `view.slice(from, to)`\n     *  $orderDependent\n     * \n     *  @param from   the index of the first element of the view\n     *  @param until  the index of the element following the view\n     *  @return a non-strict view of a slice of this $coll, starting at index `from`\n     *  and extending up to (but not including) index `until`.\n     */\n    def view(from: Int, until: Int): TraversableView[A, Repr] = view.slice(from, until)\n\n    /** Creates a non-strict filter of this $coll.\n     *\n     *  Note: the difference between `c filter p` and `c withFilter p` is that\n     *        the former creates a new collection, whereas the latter only\n     *        restricts the domain of subsequent `map`, `flatMap`, `foreach`,\n     *        and `withFilter` operations.\n     *  $orderDependent\n     * \n     *  @param p   the predicate used to test elements.\n     *  @return    an object of class `WithFilter`, which supports\n     *             `map`, `flatMap`, `foreach`, and `withFilter` operations.\n     *             All these operations apply to those elements of this $coll which\n     *             satisfy the predicate `p`.\n     */\n    def withFilter(p: A => Boolean): FilterMonadic[A, Repr] = new WithFilter(p)\n\n    /** A class supporting filtered operations. Instances of this class are\n     *  returned by method `withFilter`.\n     */\n    class WithFilter(p: A => Boolean) extends FilterMonadic[A, Repr] {\n\n      /** Builds a new collection by applying a function to all elements of the\n       *  outer $coll containing this `WithFilter` instance that satisfy predicate `p`.\n       *\n       *  @param f      the function to apply to each element.\n       *  @tparam B     the element type of the returned collection.\n       *  @tparam That  $thatinfo\n       *  @param bf     $bfinfo\n       *  @return       a new collection of type `That` resulting from applying\n       *                the given function `f` to each element of the outer $coll\n       *                that satisfies predicate `p` and collecting the results.\n       *\n       *  @usecase def map[B](f: A => B): $Coll[B] \n       *  \n       *  @return       a new $coll resulting from applying the given function\n       *                `f` to each element of the outer $coll that satisfies\n       *                predicate `p` and collecting the results.\n       */\n      def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n        val b = bf(repr)\n        for (x <- self) \n          if (p(x)) b += f(x)\n        b.result\n      }\n\n      /** Builds a new collection by applying a function to all elements of the\n       *  outer $coll containing this `WithFilter` instance that satisfy\n       *  predicate `p` and concatenating the results. \n       *\n       *  @param f      the function to apply to each element.\n       *  @tparam B     the element type of the returned collection.\n       *  @tparam That  $thatinfo\n       *  @param bf     $bfinfo\n       *  @return       a new collection of type `That` resulting from applying\n       *                the given collection-valued function `f` to each element\n       *                of the outer $coll that satisfies predicate `p` and\n       *                concatenating the results.\n       *\n       *  @usecase def flatMap[B](f: A => TraversableOnce[B]): $Coll[B]\n       * \n       *  @return       a new $coll resulting from applying the given collection-valued function\n       *                `f` to each element of the outer $coll that satisfies predicate `p` and concatenating the results.\n       */\n      def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That = {\n        val b = bf(repr)\n        for (x <- self) \n          if (p(x)) b ++= f(x).seq\n        b.result\n      }\n\n      /** Applies a function `f` to all elements of the outer $coll containing\n       *  this `WithFilter` instance that satisfy predicate `p`.\n       *\n       *  @param  f   the function that is applied for its side-effect to every element.\n       *              The result of function `f` is discarded.\n       *              \n       *  @tparam  U  the type parameter describing the result of function `f`. \n       *              This result will always be ignored. Typically `U` is `Unit`,\n       *              but this is not necessary.\n       *\n       *  @usecase def foreach(f: A => Unit): Unit\n       */   \n      def foreach[U](f: A => U): Unit = \n        for (x <- self) \n          if (p(x)) f(x)\n\n      /** Further refines the filter for this $coll.\n       *\n       *  @param q   the predicate used to test elements.\n       *  @return    an object of class `WithFilter`, which supports\n       *             `map`, `flatMap`, `foreach`, and `withFilter` operations.\n       *             All these operations apply to those elements of this $coll which\n       *             satisfy the predicate `q` in addition to the predicate `p`.\n       */\n      def withFilter(q: A => Boolean): WithFilter = \n        new WithFilter(x => p(x) && q(x))\n    }\n\n    // A helper for tails and inits.\n    private def iterateUntilEmpty(f: Traversable[A @uV] => Traversable[A @uV]): Iterator[Repr] = {\n      val it = Iterator.iterate(thisCollection)(f) takeWhile (x => !x.isEmpty)\n      it ++ Iterator(Nil) map (newBuilder ++= _ result)\n    }\n  }\n\n\n</textarea>\n</form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"ambiance\",\n        mode: \"text/x-scala\"\n      });\n    </script>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/clojure/clojure.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Hans Engel\n * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun)\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"clojure\", function (options) {\n    var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\", CHARACTER = \"string-2\",\n        ATOM = \"atom\", NUMBER = \"number\", BRACKET = \"bracket\", KEYWORD = \"keyword\", VAR = \"variable\";\n    var INDENT_WORD_SKIP = options.indentUnit || 2;\n    var NORMAL_INDENT_UNIT = options.indentUnit || 2;\n\n    function makeKeywords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var atoms = makeKeywords(\"true false nil\");\n\n    var keywords = makeKeywords(\n      \"defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle\");\n\n    var builtins = makeKeywords(\n        \"* *' *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* *command-line-args* *compile-files* *compile-path* *compiler-options* *data-readers* *e *err* *file* *flush-on-newline* *fn-loader* *in* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *unchecked-math* *use-context-classloader* *verbose-defrecords* *warn-on-reflection* + +' - -' -> ->> ->ArrayChunk ->Vec ->VecNode ->VecSeq -cache-protocol-fn -reset-methods .. / < <= = == > >= EMPTY-NODE accessor aclone add-classpath add-watch agent agent-error agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint biginteger binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* bound? butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec dec' decimal? declare default-data-readers definline definterface defmacro defmethod defmulti defn defn- defonce defprotocol defrecord defstruct deftype delay delay? deliver denominator deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq error-handler error-mode eval even? every-pred every? ex-data ex-info extend extend-protocol extend-type extenders extends? false? ffirst file-seq filter filterv find find-keyword find-ns find-protocol-impl find-protocol-method find-var first flatten float float-array float? floats flush fn fn? fnext fnil for force format frequencies future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator group-by hash hash-combine hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc inc' init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt keep keep-indexed key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map-indexed map? mapcat mapv max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod munge name namespace namespace-munge neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext nthrest num number? numerator object-array odd? or parents partial partition partition-all partition-by pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-dup print-method print-simple print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int rand-nth range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string realized? reduce reduce-kv reductions ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure reify release-pending-sends rem remove remove-all-methods remove-method remove-ns remove-watch repeat repeatedly replace replicate require reset! reset-meta! resolve rest restart-agent resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-error-handler! set-error-mode! set-validator! set? short short-array shorts shuffle shutdown-agents slurp some some-fn sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-symbol? spit split-at split-with str string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync take take-last take-nth take-while test the-ns thread-bound? time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-add-int unchecked-byte unchecked-char unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-double unchecked-float unchecked-inc unchecked-inc-int unchecked-int unchecked-long unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-remainder-int unchecked-short unchecked-subtract unchecked-subtract-int underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector-of vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision with-redefs with-redefs-fn xml-seq zero? zipmap *default-data-reader-fn* as-> cond-> cond->> reduced reduced? send-via set-agent-send-executor! set-agent-send-off-executor! some-> some->>\");\n\n    var indentKeys = makeKeywords(\n        // Built-ins\n        \"ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch \" +\n\n        // Binding forms\n        \"let letfn binding loop for doseq dotimes when-let if-let \" +\n\n        // Data structures\n        \"defstruct struct-map assoc \" +\n\n        // clojure.test\n        \"testing deftest \" +\n\n        // contrib\n        \"handler-case handle dotrace deftrace\");\n\n    var tests = {\n        digit: /\\d/,\n        digit_or_colon: /[\\d:]/,\n        hex: /[0-9a-f]/i,\n        sign: /[+-]/,\n        exponent: /e/i,\n        keyword_char: /[^\\s\\(\\[\\;\\)\\]]/,\n        symbol: /[\\w*+!\\-\\._?:<>\\/\\xa1-\\uffff]/\n    };\n\n    function stateStack(indent, type, prev) { // represents a state stack object\n        this.indent = indent;\n        this.type = type;\n        this.prev = prev;\n    }\n\n    function pushStack(state, indent, type) {\n        state.indentStack = new stateStack(indent, type, state.indentStack);\n    }\n\n    function popStack(state) {\n        state.indentStack = state.indentStack.prev;\n    }\n\n    function isNumber(ch, stream){\n        // hex\n        if ( ch === '0' && stream.eat(/x/i) ) {\n            stream.eatWhile(tests.hex);\n            return true;\n        }\n\n        // leading sign\n        if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {\n          stream.eat(tests.sign);\n          ch = stream.next();\n        }\n\n        if ( tests.digit.test(ch) ) {\n            stream.eat(ch);\n            stream.eatWhile(tests.digit);\n\n            if ( '.' == stream.peek() ) {\n                stream.eat('.');\n                stream.eatWhile(tests.digit);\n            }\n\n            if ( stream.eat(tests.exponent) ) {\n                stream.eat(tests.sign);\n                stream.eatWhile(tests.digit);\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n\n    // Eat character that starts after backslash \\\n    function eatCharacter(stream) {\n        var first = stream.next();\n        // Read special literals: backspace, newline, space, return.\n        // Just read all lowercase letters.\n        if (first && first.match(/[a-z]/) && stream.match(/[a-z]+/, true)) {\n            return;\n        }\n        // Read unicode character: \\u1000 \\uA0a1\n        if (first === \"u\") {\n            stream.match(/[0-9a-z]{4}/i, true);\n        }\n    }\n\n    return {\n        startState: function () {\n            return {\n                indentStack: null,\n                indentation: 0,\n                mode: false\n            };\n        },\n\n        token: function (stream, state) {\n            if (state.indentStack == null && stream.sol()) {\n                // update indentation, but only if indentStack is empty\n                state.indentation = stream.indentation();\n            }\n\n            // skip spaces\n            if (stream.eatSpace()) {\n                return null;\n            }\n            var returnType = null;\n\n            switch(state.mode){\n                case \"string\": // multi-line string parsing mode\n                    var next, escaped = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"\\\"\" && !escaped) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        escaped = !escaped && next == \"\\\\\";\n                    }\n                    returnType = STRING; // continue on in string mode\n                    break;\n                default: // default parsing mode\n                    var ch = stream.next();\n\n                    if (ch == \"\\\"\") {\n                        state.mode = \"string\";\n                        returnType = STRING;\n                    } else if (ch == \"\\\\\") {\n                        eatCharacter(stream);\n                        returnType = CHARACTER;\n                    } else if (ch == \"'\" && !( tests.digit_or_colon.test(stream.peek()) )) {\n                        returnType = ATOM;\n                    } else if (ch == \";\") { // comment\n                        stream.skipToEnd(); // rest of the line is a comment\n                        returnType = COMMENT;\n                    } else if (isNumber(ch,stream)){\n                        returnType = NUMBER;\n                    } else if (ch == \"(\" || ch == \"[\" || ch == \"{\" ) {\n                        var keyWord = '', indentTemp = stream.column(), letter;\n                        /**\n                        Either\n                        (indent-word ..\n                        (non-indent-word ..\n                        (;something else, bracket, etc.\n                        */\n\n                        if (ch == \"(\") while ((letter = stream.eat(tests.keyword_char)) != null) {\n                            keyWord += letter;\n                        }\n\n                        if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) ||\n                                                   /^(?:def|with)/.test(keyWord))) { // indent-word\n                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);\n                        } else { // non-indent word\n                            // we continue eating the spaces\n                            stream.eatSpace();\n                            if (stream.eol() || stream.peek() == \";\") {\n                                // nothing significant after\n                                // we restart indentation the user defined spaces after\n                                pushStack(state, indentTemp + NORMAL_INDENT_UNIT, ch);\n                            } else {\n                                pushStack(state, indentTemp + stream.current().length, ch); // else we match\n                            }\n                        }\n                        stream.backUp(stream.current().length - 1); // undo all the eating\n\n                        returnType = BRACKET;\n                    } else if (ch == \")\" || ch == \"]\" || ch == \"}\") {\n                        returnType = BRACKET;\n                        if (state.indentStack != null && state.indentStack.type == (ch == \")\" ? \"(\" : (ch == \"]\" ? \"[\" :\"{\"))) {\n                            popStack(state);\n                        }\n                    } else if ( ch == \":\" ) {\n                        stream.eatWhile(tests.symbol);\n                        return ATOM;\n                    } else {\n                        stream.eatWhile(tests.symbol);\n\n                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {\n                            returnType = KEYWORD;\n                        } else if (builtins && builtins.propertyIsEnumerable(stream.current())) {\n                            returnType = BUILTIN;\n                        } else if (atoms && atoms.propertyIsEnumerable(stream.current())) {\n                            returnType = ATOM;\n                        } else {\n                          returnType = VAR;\n                        }\n                    }\n            }\n\n            return returnType;\n        },\n\n        indent: function (state) {\n            if (state.indentStack == null) return state.indentation;\n            return state.indentStack.indent;\n        },\n\n        lineComment: \";;\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/x-clojure\", \"clojure\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/clojure/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Clojure mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"clojure.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Clojure</a>\n  </ul>\n</div>\n\n<article>\n<h2>Clojure mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; Conway's Game of Life, based on the work of:\n;; Laurent Petit https://gist.github.com/1200343\n;; Christophe Grand http://clj-me.cgrand.net/2011/08/19/conways-game-of-life\n\n(ns ^{:doc \"Conway's Game of Life.\"}\n game-of-life)\n\n;; Core game of life's algorithm functions\n\n(defn neighbours\n  \"Given a cell's coordinates, returns the coordinates of its neighbours.\"\n  [[x y]]\n  (for [dx [-1 0 1] dy (if (zero? dx) [-1 1] [-1 0 1])]\n    [(+ dx x) (+ dy y)]))\n\n(defn step\n  \"Given a set of living cells, computes the new set of living cells.\"\n  [cells]\n  (set (for [[cell n] (frequencies (mapcat neighbours cells))\n             :when (or (= n 3) (and (= n 2) (cells cell)))]\n         cell)))\n\n;; Utility methods for displaying game on a text terminal\n\n(defn print-board\n  \"Prints a board on *out*, representing a step in the game.\"\n  [board w h]\n  (doseq [x (range (inc w)) y (range (inc h))]\n    (if (= y 0) (print \"\\n\"))\n    (print (if (board [x y]) \"[X]\" \" . \"))))\n\n(defn display-grids\n  \"Prints a squence of boards on *out*, representing several steps.\"\n  [grids w h]\n  (doseq [board grids]\n    (print-board board w h)\n    (print \"\\n\")))\n\n;; Launches an example board\n\n(def\n  ^{:doc \"board represents the initial set of living cells\"}\n   board #{[2 1] [2 2] [2 3]})\n\n(display-grids (take 3 (iterate step board)) 5 5)\n\n;; Let's play with characters\n(println \\1 \\a \\# \\\\\n         \\\" \\( \\newline\n         \\} \\\" \\space\n         \\tab \\return \\backspace\n         \\u1000 \\uAaAa \\u9F9F)\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-clojure</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/cobol/cobol.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Gautam Mehta\n * Branched from CodeMirror's Scheme mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"cobol\", function () {\n  var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n      ATOM = \"atom\", NUMBER = \"number\", KEYWORD = \"keyword\", MODTAG = \"header\",\n      COBOLLINENUM = \"def\", PERIOD = \"link\";\n  function makeKeywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var atoms = makeKeywords(\"TRUE FALSE ZEROES ZEROS ZERO SPACES SPACE LOW-VALUE LOW-VALUES \");\n  var keywords = makeKeywords(\n      \"ACCEPT ACCESS ACQUIRE ADD ADDRESS \" +\n      \"ADVANCING AFTER ALIAS ALL ALPHABET \" +\n      \"ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED \" +\n      \"ALSO ALTER ALTERNATE AND ANY \" +\n      \"ARE AREA AREAS ARITHMETIC ASCENDING \" +\n      \"ASSIGN AT ATTRIBUTE AUTHOR AUTO \" +\n      \"AUTO-SKIP AUTOMATIC B-AND B-EXOR B-LESS \" +\n      \"B-NOT B-OR BACKGROUND-COLOR BACKGROUND-COLOUR BEEP \" +\n      \"BEFORE BELL BINARY BIT BITS \" +\n      \"BLANK BLINK BLOCK BOOLEAN BOTTOM \" +\n      \"BY CALL CANCEL CD CF \" +\n      \"CH CHARACTER CHARACTERS CLASS CLOCK-UNITS \" +\n      \"CLOSE COBOL CODE CODE-SET COL \" +\n      \"COLLATING COLUMN COMMA COMMIT COMMITMENT \" +\n      \"COMMON COMMUNICATION COMP COMP-0 COMP-1 \" +\n      \"COMP-2 COMP-3 COMP-4 COMP-5 COMP-6 \" +\n      \"COMP-7 COMP-8 COMP-9 COMPUTATIONAL COMPUTATIONAL-0 \" +\n      \"COMPUTATIONAL-1 COMPUTATIONAL-2 COMPUTATIONAL-3 COMPUTATIONAL-4 COMPUTATIONAL-5 \" +\n      \"COMPUTATIONAL-6 COMPUTATIONAL-7 COMPUTATIONAL-8 COMPUTATIONAL-9 COMPUTE \" +\n      \"CONFIGURATION CONNECT CONSOLE CONTAINED CONTAINS \" +\n      \"CONTENT CONTINUE CONTROL CONTROL-AREA CONTROLS \" +\n      \"CONVERTING COPY CORR CORRESPONDING COUNT \" +\n      \"CRT CRT-UNDER CURRENCY CURRENT CURSOR \" +\n      \"DATA DATE DATE-COMPILED DATE-WRITTEN DAY \" +\n      \"DAY-OF-WEEK DB DB-ACCESS-CONTROL-KEY DB-DATA-NAME DB-EXCEPTION \" +\n      \"DB-FORMAT-NAME DB-RECORD-NAME DB-SET-NAME DB-STATUS DBCS \" +\n      \"DBCS-EDITED DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE \" +\n      \"DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING \" +\n      \"DECIMAL-POINT DECLARATIVES DEFAULT DELETE DELIMITED \" +\n      \"DELIMITER DEPENDING DESCENDING DESCRIBED DESTINATION \" +\n      \"DETAIL DISABLE DISCONNECT DISPLAY DISPLAY-1 \" +\n      \"DISPLAY-2 DISPLAY-3 DISPLAY-4 DISPLAY-5 DISPLAY-6 \" +\n      \"DISPLAY-7 DISPLAY-8 DISPLAY-9 DIVIDE DIVISION \" +\n      \"DOWN DROP DUPLICATE DUPLICATES DYNAMIC \" +\n      \"EBCDIC EGI EJECT ELSE EMI \" +\n      \"EMPTY EMPTY-CHECK ENABLE END END. END-ACCEPT END-ACCEPT. \" +\n      \"END-ADD END-CALL END-COMPUTE END-DELETE END-DISPLAY \" +\n      \"END-DIVIDE END-EVALUATE END-IF END-INVOKE END-MULTIPLY \" +\n      \"END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN \" +\n      \"END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT \" +\n      \"END-UNSTRING END-WRITE END-XML ENTER ENTRY \" +\n      \"ENVIRONMENT EOP EQUAL EQUALS ERASE \" +\n      \"ERROR ESI EVALUATE EVERY EXCEEDS \" +\n      \"EXCEPTION EXCLUSIVE EXIT EXTEND EXTERNAL \" +\n      \"EXTERNALLY-DESCRIBED-KEY FD FETCH FILE FILE-CONTROL \" +\n      \"FILE-STREAM FILES FILLER FINAL FIND \" +\n      \"FINISH FIRST FOOTING FOR FOREGROUND-COLOR \" +\n      \"FOREGROUND-COLOUR FORMAT FREE FROM FULL \" +\n      \"FUNCTION GENERATE GET GIVING GLOBAL \" +\n      \"GO GOBACK GREATER GROUP HEADING \" +\n      \"HIGH-VALUE HIGH-VALUES HIGHLIGHT I-O I-O-CONTROL \" +\n      \"ID IDENTIFICATION IF IN INDEX \" +\n      \"INDEX-1 INDEX-2 INDEX-3 INDEX-4 INDEX-5 \" +\n      \"INDEX-6 INDEX-7 INDEX-8 INDEX-9 INDEXED \" +\n      \"INDIC INDICATE INDICATOR INDICATORS INITIAL \" +\n      \"INITIALIZE INITIATE INPUT INPUT-OUTPUT INSPECT \" +\n      \"INSTALLATION INTO INVALID INVOKE IS \" +\n      \"JUST JUSTIFIED KANJI KEEP KEY \" +\n      \"LABEL LAST LD LEADING LEFT \" +\n      \"LEFT-JUSTIFY LENGTH LENGTH-CHECK LESS LIBRARY \" +\n      \"LIKE LIMIT LIMITS LINAGE LINAGE-COUNTER \" +\n      \"LINE LINE-COUNTER LINES LINKAGE LOCAL-STORAGE \" +\n      \"LOCALE LOCALLY LOCK \" +\n      \"MEMBER MEMORY MERGE MESSAGE METACLASS \" +\n      \"MODE MODIFIED MODIFY MODULES MOVE \" +\n      \"MULTIPLE MULTIPLY NATIONAL NATIVE NEGATIVE \" +\n      \"NEXT NO NO-ECHO NONE NOT \" +\n      \"NULL NULL-KEY-MAP NULL-MAP NULLS NUMBER \" +\n      \"NUMERIC NUMERIC-EDITED OBJECT OBJECT-COMPUTER OCCURS \" +\n      \"OF OFF OMITTED ON ONLY \" +\n      \"OPEN OPTIONAL OR ORDER ORGANIZATION \" +\n      \"OTHER OUTPUT OVERFLOW OWNER PACKED-DECIMAL \" +\n      \"PADDING PAGE PAGE-COUNTER PARSE PERFORM \" +\n      \"PF PH PIC PICTURE PLUS \" +\n      \"POINTER POSITION POSITIVE PREFIX PRESENT \" +\n      \"PRINTING PRIOR PROCEDURE PROCEDURE-POINTER PROCEDURES \" +\n      \"PROCEED PROCESS PROCESSING PROGRAM PROGRAM-ID \" +\n      \"PROMPT PROTECTED PURGE QUEUE QUOTE \" +\n      \"QUOTES RANDOM RD READ READY \" +\n      \"REALM RECEIVE RECONNECT RECORD RECORD-NAME \" +\n      \"RECORDS RECURSIVE REDEFINES REEL REFERENCE \" +\n      \"REFERENCE-MONITOR REFERENCES RELATION RELATIVE RELEASE \" +\n      \"REMAINDER REMOVAL RENAMES REPEATED REPLACE \" +\n      \"REPLACING REPORT REPORTING REPORTS REPOSITORY \" +\n      \"REQUIRED RERUN RESERVE RESET RETAINING \" +\n      \"RETRIEVAL RETURN RETURN-CODE RETURNING REVERSE-VIDEO \" +\n      \"REVERSED REWIND REWRITE RF RH \" +\n      \"RIGHT RIGHT-JUSTIFY ROLLBACK ROLLING ROUNDED \" +\n      \"RUN SAME SCREEN SD SEARCH \" +\n      \"SECTION SECURE SECURITY SEGMENT SEGMENT-LIMIT \" +\n      \"SELECT SEND SENTENCE SEPARATE SEQUENCE \" +\n      \"SEQUENTIAL SET SHARED SIGN SIZE \" +\n      \"SKIP1 SKIP2 SKIP3 SORT SORT-MERGE \" +\n      \"SORT-RETURN SOURCE SOURCE-COMPUTER SPACE-FILL \" +\n      \"SPECIAL-NAMES STANDARD STANDARD-1 STANDARD-2 \" +\n      \"START STARTING STATUS STOP STORE \" +\n      \"STRING SUB-QUEUE-1 SUB-QUEUE-2 SUB-QUEUE-3 SUB-SCHEMA \" +\n      \"SUBFILE SUBSTITUTE SUBTRACT SUM SUPPRESS \" +\n      \"SYMBOLIC SYNC SYNCHRONIZED SYSIN SYSOUT \" +\n      \"TABLE TALLYING TAPE TENANT TERMINAL \" +\n      \"TERMINATE TEST TEXT THAN THEN \" +\n      \"THROUGH THRU TIME TIMES TITLE \" +\n      \"TO TOP TRAILING TRAILING-SIGN TRANSACTION \" +\n      \"TYPE TYPEDEF UNDERLINE UNEQUAL UNIT \" +\n      \"UNSTRING UNTIL UP UPDATE UPON \" +\n      \"USAGE USAGE-MODE USE USING VALID \" +\n      \"VALIDATE VALUE VALUES VARYING VLR \" +\n      \"WAIT WHEN WHEN-COMPILED WITH WITHIN \" +\n      \"WORDS WORKING-STORAGE WRITE XML XML-CODE \" +\n      \"XML-EVENT XML-NTEXT XML-TEXT ZERO ZERO-FILL \" );\n\n  var builtins = makeKeywords(\"- * ** / + < <= = > >= \");\n  var tests = {\n    digit: /\\d/,\n    digit_or_colon: /[\\d:]/,\n    hex: /[0-9a-f]/i,\n    sign: /[+-]/,\n    exponent: /e/i,\n    keyword_char: /[^\\s\\(\\[\\;\\)\\]]/,\n    symbol: /[\\w*+\\-]/\n  };\n  function isNumber(ch, stream){\n    // hex\n    if ( ch === '0' && stream.eat(/x/i) ) {\n      stream.eatWhile(tests.hex);\n      return true;\n    }\n    // leading sign\n    if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) {\n      stream.eat(tests.sign);\n      ch = stream.next();\n    }\n    if ( tests.digit.test(ch) ) {\n      stream.eat(ch);\n      stream.eatWhile(tests.digit);\n      if ( '.' == stream.peek()) {\n        stream.eat('.');\n        stream.eatWhile(tests.digit);\n      }\n      if ( stream.eat(tests.exponent) ) {\n        stream.eat(tests.sign);\n        stream.eatWhile(tests.digit);\n      }\n      return true;\n    }\n    return false;\n  }\n  return {\n    startState: function () {\n      return {\n        indentStack: null,\n        indentation: 0,\n        mode: false\n      };\n    },\n    token: function (stream, state) {\n      if (state.indentStack == null && stream.sol()) {\n        // update indentation, but only if indentStack is empty\n        state.indentation = 6 ; //stream.indentation();\n      }\n      // skip spaces\n      if (stream.eatSpace()) {\n        return null;\n      }\n      var returnType = null;\n      switch(state.mode){\n      case \"string\": // multi-line string parsing mode\n        var next = false;\n        while ((next = stream.next()) != null) {\n          if (next == \"\\\"\" || next == \"\\'\") {\n            state.mode = false;\n            break;\n          }\n        }\n        returnType = STRING; // continue on in string mode\n        break;\n      default: // default parsing mode\n        var ch = stream.next();\n        var col = stream.column();\n        if (col >= 0 && col <= 5) {\n          returnType = COBOLLINENUM;\n        } else if (col >= 72 && col <= 79) {\n          stream.skipToEnd();\n          returnType = MODTAG;\n        } else if (ch == \"*\" && col == 6) { // comment\n          stream.skipToEnd(); // rest of the line is a comment\n          returnType = COMMENT;\n        } else if (ch == \"\\\"\" || ch == \"\\'\") {\n          state.mode = \"string\";\n          returnType = STRING;\n        } else if (ch == \"'\" && !( tests.digit_or_colon.test(stream.peek()) )) {\n          returnType = ATOM;\n        } else if (ch == \".\") {\n          returnType = PERIOD;\n        } else if (isNumber(ch,stream)){\n          returnType = NUMBER;\n        } else {\n          if (stream.current().match(tests.symbol)) {\n            while (col < 71) {\n              if (stream.eat(tests.symbol) === undefined) {\n                break;\n              } else {\n                col++;\n              }\n            }\n          }\n          if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = KEYWORD;\n          } else if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = BUILTIN;\n          } else if (atoms && atoms.propertyIsEnumerable(stream.current().toUpperCase())) {\n            returnType = ATOM;\n          } else returnType = null;\n        }\n      }\n      return returnType;\n    },\n    indent: function (state) {\n      if (state.indentStack == null) return state.indentation;\n      return state.indentStack.indent;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-cobol\", \"cobol\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/cobol/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: COBOL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<link rel=\"stylesheet\" href=\"../../theme/erlang-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<link rel=\"stylesheet\" href=\"../../theme/monokai.css\">\n<link rel=\"stylesheet\" href=\"../../theme/cobalt.css\">\n<link rel=\"stylesheet\" href=\"../../theme/eclipse.css\">\n<link rel=\"stylesheet\" href=\"../../theme/rubyblue.css\">\n<link rel=\"stylesheet\" href=\"../../theme/lesser-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-dark.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-light.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<link rel=\"stylesheet\" href=\"../../theme/blackboard.css\">\n<link rel=\"stylesheet\" href=\"../../theme/vibrant-ink.css\">\n<link rel=\"stylesheet\" href=\"../../theme/solarized.css\">\n<link rel=\"stylesheet\" href=\"../../theme/twilight.css\">\n<link rel=\"stylesheet\" href=\"../../theme/midnight.css\">\n<link rel=\"stylesheet\" href=\"../../addon/dialog/dialog.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"cobol.js\"></script>\n<script src=\"../../addon/selection/active-line.js\"></script>\n<script src=\"../../addon/search/search.js\"></script>\n<script src=\"../../addon/dialog/dialog.js\"></script>\n<script src=\"../../addon/search/searchcursor.js\"></script>\n<style>\n        .CodeMirror {\n          border: 1px solid #eee;\n          font-size : 20px;\n          height : auto !important;\n        }\n        .CodeMirror-activeline-background {background: #555555 !important;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">COBOL</a>\n  </ul>\n</div>\n\n<article>\n<h2>COBOL mode</h2>\n\n    <p> Select Theme <select onchange=\"selectTheme()\" id=\"selectTheme\">\n        <option>default</option>\n        <option>ambiance</option>\n        <option>blackboard</option>\n        <option>cobalt</option>\n        <option>eclipse</option>\n        <option>elegant</option>\n        <option>erlang-dark</option>\n        <option>lesser-dark</option>\n        <option>midnight</option>\n        <option>monokai</option>\n        <option>neat</option>\n        <option>night</option>\n        <option>rubyblue</option>\n        <option>solarized dark</option>\n        <option>solarized light</option>\n        <option selected>twilight</option>\n        <option>vibrant-ink</option>\n        <option>xq-dark</option>\n        <option>xq-light</option>\n    </select>    Select Font Size <select onchange=\"selectFontsize()\" id=\"selectFontSize\">\n          <option value=\"13px\">13px</option>\n          <option value=\"14px\">14px</option>\n          <option value=\"16px\">16px</option>\n          <option value=\"18px\">18px</option>\n          <option value=\"20px\" selected=\"selected\">20px</option>\n          <option value=\"24px\">24px</option>\n          <option value=\"26px\">26px</option>\n          <option value=\"28px\">28px</option>\n          <option value=\"30px\">30px</option>\n          <option value=\"32px\">32px</option>\n          <option value=\"34px\">34px</option>\n          <option value=\"36px\">36px</option>\n        </select>\n<label for=\"checkBoxReadOnly\">Read-only</label>\n<input type=\"checkbox\" id=\"checkBoxReadOnly\" onchange=\"selectReadOnly()\">\n<label for=\"id_tabToIndentSpace\">Insert Spaces on Tab</label>\n<input type=\"checkbox\" id=\"id_tabToIndentSpace\" onchange=\"tabToIndentSpace()\">\n</p>\n<textarea id=\"code\" name=\"code\">\n---------1---------2---------3---------4---------5---------6---------7---------8\n12345678911234567892123456789312345678941234567895123456789612345678971234567898\n000010 IDENTIFICATION DIVISION.                                        MODTGHERE\n000020 PROGRAM-ID.       SAMPLE.\n000030 AUTHOR.           TEST SAM. \n000040 DATE-WRITTEN.     5 February 2013\n000041\n000042* A sample program just to show the form.\n000043* The program copies its input to the output,\n000044* and counts the number of records.\n000045* At the end this number is printed.\n000046\n000050 ENVIRONMENT DIVISION.\n000060 INPUT-OUTPUT SECTION.\n000070 FILE-CONTROL.\n000080     SELECT STUDENT-FILE     ASSIGN TO SYSIN\n000090         ORGANIZATION IS LINE SEQUENTIAL.\n000100     SELECT PRINT-FILE       ASSIGN TO SYSOUT\n000110         ORGANIZATION IS LINE SEQUENTIAL.\n000120\n000130 DATA DIVISION.\n000140 FILE SECTION.\n000150 FD  STUDENT-FILE\n000160     RECORD CONTAINS 43 CHARACTERS\n000170     DATA RECORD IS STUDENT-IN.\n000180 01  STUDENT-IN              PIC X(43).\n000190\n000200 FD  PRINT-FILE\n000210     RECORD CONTAINS 80 CHARACTERS\n000220     DATA RECORD IS PRINT-LINE.\n000230 01  PRINT-LINE              PIC X(80).\n000240\n000250 WORKING-STORAGE SECTION.\n000260 01  DATA-REMAINS-SWITCH     PIC X(2)      VALUE SPACES.\n000261 01  RECORDS-WRITTEN         PIC 99.\n000270\n000280 01  DETAIL-LINE.\n000290     05  FILLER              PIC X(7)      VALUE SPACES.\n000300     05  RECORD-IMAGE        PIC X(43).\n000310     05  FILLER              PIC X(30)     VALUE SPACES.\n000311 \n000312 01  SUMMARY-LINE.\n000313     05  FILLER              PIC X(7)      VALUE SPACES.\n000314     05  TOTAL-READ          PIC 99.\n000315     05  FILLER              PIC X         VALUE SPACE.\n000316     05  FILLER              PIC X(17)     \n000317                 VALUE  'Records were read'.\n000318     05  FILLER              PIC X(53)     VALUE SPACES.\n000319\n000320 PROCEDURE DIVISION.\n000321\n000330 PREPARE-SENIOR-REPORT.\n000340     OPEN INPUT  STUDENT-FILE\n000350          OUTPUT PRINT-FILE.\n000351     MOVE ZERO TO RECORDS-WRITTEN.\n000360     READ STUDENT-FILE\n000370         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH\n000380     END-READ.\n000390     PERFORM PROCESS-RECORDS\n000410         UNTIL DATA-REMAINS-SWITCH = 'NO'.\n000411     PERFORM PRINT-SUMMARY.\n000420     CLOSE STUDENT-FILE\n000430           PRINT-FILE.\n000440     STOP RUN.\n000450\n000460 PROCESS-RECORDS.\n000470     MOVE STUDENT-IN TO RECORD-IMAGE.\n000480     MOVE DETAIL-LINE TO PRINT-LINE.\n000490     WRITE PRINT-LINE.\n000500     ADD 1 TO RECORDS-WRITTEN.\n000510     READ STUDENT-FILE\n000520         AT END MOVE 'NO' TO DATA-REMAINS-SWITCH\n000530     END-READ. \n000540\n000550 PRINT-SUMMARY.\n000560     MOVE RECORDS-WRITTEN TO TOTAL-READ.\n000570     MOVE SUMMARY-LINE TO PRINT-LINE.\n000571     WRITE PRINT-LINE. \n000572\n000580\n</textarea>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-cobol\",\n        theme : \"twilight\",\n        styleActiveLine: true,\n        showCursorWhenSelecting : true,  \n      });\n      function selectTheme() {\n        var themeInput = document.getElementById(\"selectTheme\");\n        var theme = themeInput.options[themeInput.selectedIndex].innerHTML;\n        editor.setOption(\"theme\", theme);\n      }\n      function selectFontsize() {\n        var fontSizeInput = document.getElementById(\"selectFontSize\");\n        var fontSize = fontSizeInput.options[fontSizeInput.selectedIndex].innerHTML;\n        editor.getWrapperElement().style.fontSize = fontSize;\n        editor.refresh();\n      }\n      function selectReadOnly() {\n        editor.setOption(\"readOnly\", document.getElementById(\"checkBoxReadOnly\").checked);\n      }\n      function tabToIndentSpace() {\n        if (document.getElementById(\"id_tabToIndentSpace\").checked) {\n            editor.setOption(\"extraKeys\", {Tab: function(cm) { cm.replaceSelection(\"    \", \"end\"); }});\n        } else {\n            editor.setOption(\"extraKeys\", {Tab: function(cm) { cm.replaceSelection(\"    \", \"end\"); }});\n        }\n      }\n    </script>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/coffeescript/coffeescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/pickhardt/coffeescript-codemirror-mode\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"coffeescript\", function(conf, parserConf) {\n  var ERRORCLASS = \"error\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\n  var delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\n  var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\n  var properties = /^(@|this\\.)[_A-Za-z$][_A-Za-z$0-9]*/;\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n                                  \"is\", \"isnt\", \"in\",\n                                  \"instanceof\", \"typeof\"]);\n  var indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n                        \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\n  var commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n                        \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n                        \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\n  var keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\n  indentKeywords = wordRegexp(indentKeywords);\n\n\n  var stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\n  var regexPrefixes = /^(\\/{3}|\\/)/;\n  var commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\n  var constants = wordRegexp(commonConstants);\n\n  // Tokenizers\n  function tokenBase(stream, state) {\n    // Handle scope changes\n    if (stream.sol()) {\n      if (state.scope.align === null) state.scope.align = false;\n      var scopeOffset = state.scope.offset;\n      if (stream.eatSpace()) {\n        var lineOffset = stream.indentation();\n        if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n          return \"indent\";\n        } else if (lineOffset < scopeOffset) {\n          return \"dedent\";\n        }\n        return null;\n      } else {\n        if (scopeOffset > 0) {\n          dedent(stream, state);\n        }\n      }\n    }\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n\n    // Handle docco title comment (single line)\n    if (stream.match(\"####\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle multi line comments\n    if (stream.match(\"###\")) {\n      state.tokenize = longComment;\n      return state.tokenize(stream, state);\n    }\n\n    // Single line comment\n    if (ch === \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    // Handle number literals\n    if (stream.match(/^-?[0-9\\.]/, false)) {\n      var floatLiteral = false;\n      // Floats\n      if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\d+\\.\\d*/)) {\n        floatLiteral = true;\n      }\n      if (stream.match(/^-?\\.\\d+/)) {\n        floatLiteral = true;\n      }\n\n      if (floatLiteral) {\n        // prevent from getting extra . on 1..\n        if (stream.peek() == \".\"){\n          stream.backUp(1);\n        }\n        return \"number\";\n      }\n      // Integers\n      var intLiteral = false;\n      // Hex\n      if (stream.match(/^-?0x[0-9a-f]+/i)) {\n        intLiteral = true;\n      }\n      // Decimal\n      if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n        intLiteral = true;\n      }\n      // Zero by itself with no other piece of number.\n      if (stream.match(/^-?0(?![\\dx])/i)) {\n        intLiteral = true;\n      }\n      if (intLiteral) {\n        return \"number\";\n      }\n    }\n\n    // Handle strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenFactory(stream.current(), false, \"string\");\n      return state.tokenize(stream, state);\n    }\n    // Handle regex literals\n    if (stream.match(regexPrefixes)) {\n      if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n        state.tokenize = tokenFactory(stream.current(), true, \"string-2\");\n        return state.tokenize(stream, state);\n      } else {\n        stream.backUp(1);\n      }\n    }\n\n    // Handle operators and delimiters\n    if (stream.match(operators) || stream.match(wordOperators)) {\n      return \"operator\";\n    }\n    if (stream.match(delimiters)) {\n      return \"punctuation\";\n    }\n\n    if (stream.match(constants)) {\n      return \"atom\";\n    }\n\n    if (stream.match(keywords)) {\n      return \"keyword\";\n    }\n\n    if (stream.match(identifiers)) {\n      return \"variable\";\n    }\n\n    if (stream.match(properties)) {\n      return \"property\";\n    }\n\n    // Handle non-detected items\n    stream.next();\n    return ERRORCLASS;\n  }\n\n  function tokenFactory(delimiter, singleline, outclass) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        stream.eatWhile(/[^'\"\\/\\\\]/);\n        if (stream.eat(\"\\\\\")) {\n          stream.next();\n          if (singleline && stream.eol()) {\n            return outclass;\n          }\n        } else if (stream.match(delimiter)) {\n          state.tokenize = tokenBase;\n          return outclass;\n        } else {\n          stream.eat(/['\"\\/]/);\n        }\n      }\n      if (singleline) {\n        if (parserConf.singleLineStringErrors) {\n          outclass = ERRORCLASS;\n        } else {\n          state.tokenize = tokenBase;\n        }\n      }\n      return outclass;\n    };\n  }\n\n  function longComment(stream, state) {\n    while (!stream.eol()) {\n      stream.eatWhile(/[^#]/);\n      if (stream.match(\"###\")) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      stream.eatWhile(\"#\");\n    }\n    return \"comment\";\n  }\n\n  function indent(stream, state, type) {\n    type = type || \"coffee\";\n    var offset = 0, align = false, alignOffset = null;\n    for (var scope = state.scope; scope; scope = scope.prev) {\n      if (scope.type === \"coffee\" || scope.type == \"}\") {\n        offset = scope.offset + conf.indentUnit;\n        break;\n      }\n    }\n    if (type !== \"coffee\") {\n      align = null;\n      alignOffset = stream.column() + stream.current().length;\n    } else if (state.scope.align) {\n      state.scope.align = false;\n    }\n    state.scope = {\n      offset: offset,\n      type: type,\n      prev: state.scope,\n      align: align,\n      alignOffset: alignOffset\n    };\n  }\n\n  function dedent(stream, state) {\n    if (!state.scope.prev) return;\n    if (state.scope.type === \"coffee\") {\n      var _indent = stream.indentation();\n      var matched = false;\n      for (var scope = state.scope; scope; scope = scope.prev) {\n        if (_indent === scope.offset) {\n          matched = true;\n          break;\n        }\n      }\n      if (!matched) {\n        return true;\n      }\n      while (state.scope.prev && state.scope.offset !== _indent) {\n        state.scope = state.scope.prev;\n      }\n      return false;\n    } else {\n      state.scope = state.scope.prev;\n      return false;\n    }\n  }\n\n  function tokenLexer(stream, state) {\n    var style = state.tokenize(stream, state);\n    var current = stream.current();\n\n    // Handle \".\" connected identifiers\n    if (current === \".\") {\n      style = state.tokenize(stream, state);\n      current = stream.current();\n      if (/^\\.[\\w$]+$/.test(current)) {\n        return \"variable\";\n      } else {\n        return ERRORCLASS;\n      }\n    }\n\n    // Handle scope changes.\n    if (current === \"return\") {\n      state.dedent = true;\n    }\n    if (((current === \"->\" || current === \"=>\") &&\n         !state.lambda &&\n         !stream.peek())\n        || style === \"indent\") {\n      indent(stream, state);\n    }\n    var delimiter_index = \"[({\".indexOf(current);\n    if (delimiter_index !== -1) {\n      indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n    }\n    if (indentKeywords.exec(current)){\n      indent(stream, state);\n    }\n    if (current == \"then\"){\n      dedent(stream, state);\n    }\n\n\n    if (style === \"dedent\") {\n      if (dedent(stream, state)) {\n        return ERRORCLASS;\n      }\n    }\n    delimiter_index = \"])}\".indexOf(current);\n    if (delimiter_index !== -1) {\n      while (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      if (state.scope.type == current)\n        state.scope = state.scope.prev;\n    }\n    if (state.dedent && stream.eol()) {\n      if (state.scope.type == \"coffee\" && state.scope.prev)\n        state.scope = state.scope.prev;\n      state.dedent = false;\n    }\n\n    return style;\n  }\n\n  var external = {\n    startState: function(basecolumn) {\n      return {\n        tokenize: tokenBase,\n        scope: {offset:basecolumn || 0, type:\"coffee\", prev: null, align: false},\n        lastToken: null,\n        lambda: false,\n        dedent: 0\n      };\n    },\n\n    token: function(stream, state) {\n      var fillAlign = state.scope.align === null && state.scope;\n      if (fillAlign && stream.sol()) fillAlign.align = false;\n\n      var style = tokenLexer(stream, state);\n      if (fillAlign && style && style != \"comment\") fillAlign.align = true;\n\n      state.lastToken = {style:style, content: stream.current()};\n\n      if (stream.eol() && stream.lambda) {\n        state.lambda = false;\n      }\n\n      return style;\n    },\n\n    indent: function(state, text) {\n      if (state.tokenize != tokenBase) return 0;\n      var scope = state.scope;\n      var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n      if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n      var closes = closer && scope.type === text.charAt(0);\n      if (scope.align)\n        return scope.alignOffset - (closes ? 1 : 0);\n      else\n        return (closes ? scope.prev : scope).offset;\n    },\n\n    lineComment: \"#\",\n    fold: \"indent\"\n  };\n  return external;\n});\n\nCodeMirror.defineMIME(\"text/x-coffeescript\", \"coffeescript\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/coffeescript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: CoffeeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"coffeescript.js\"></script>\n<style>.CodeMirror {border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">CoffeeScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>CoffeeScript mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# CoffeeScript mode for CodeMirror\n# Copyright (c) 2011 Jeff Pickhardt, released under\n# the MIT License.\n#\n# Modified from the Python CodeMirror mode, which also is \n# under the MIT License Copyright (c) 2010 Timothy Farrell.\n#\n# The following script, Underscore.coffee, is used to \n# demonstrate CoffeeScript mode for CodeMirror.\n#\n# To download CoffeeScript mode for CodeMirror, go to:\n# https://github.com/pickhardt/coffeescript-codemirror-mode\n\n# **Underscore.coffee\n# (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.**\n# Underscore is freely distributable under the terms of the\n# [MIT license](http://en.wikipedia.org/wiki/MIT_License).\n# Portions of Underscore are inspired by or borrowed from\n# [Prototype.js](http://prototypejs.org/api), Oliver Steele's\n# [Functional](http://osteele.com), and John Resig's\n# [Micro-Templating](http://ejohn.org).\n# For all details and documentation:\n# http://documentcloud.github.com/underscore/\n\n\n# Baseline setup\n# --------------\n\n# Establish the root object, `window` in the browser, or `global` on the server.\nroot = this\n\n\n# Save the previous value of the `_` variable.\npreviousUnderscore = root._\n\n### Multiline\n    comment\n###\n\n# Establish the object that gets thrown to break out of a loop iteration.\n# `StopIteration` is SOP on Mozilla.\nbreaker = if typeof(StopIteration) is 'undefined' then '__break__' else StopIteration\n\n\n#### Docco style single line comment (title)\n\n\n# Helper function to escape **RegExp** contents, because JS doesn't have one.\nescapeRegExp = (string) -> string.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1')\n\n\n# Save bytes in the minified (but not gzipped) version:\nArrayProto = Array.prototype\nObjProto = Object.prototype\n\n\n# Create quick reference variables for speed access to core prototypes.\nslice = ArrayProto.slice\nunshift = ArrayProto.unshift\ntoString = ObjProto.toString\nhasOwnProperty = ObjProto.hasOwnProperty\npropertyIsEnumerable = ObjProto.propertyIsEnumerable\n\n\n# All **ECMA5** native implementations we hope to use are declared here.\nnativeForEach = ArrayProto.forEach\nnativeMap = ArrayProto.map\nnativeReduce = ArrayProto.reduce\nnativeReduceRight = ArrayProto.reduceRight\nnativeFilter = ArrayProto.filter\nnativeEvery = ArrayProto.every\nnativeSome = ArrayProto.some\nnativeIndexOf = ArrayProto.indexOf\nnativeLastIndexOf = ArrayProto.lastIndexOf\nnativeIsArray = Array.isArray\nnativeKeys = Object.keys\n\n\n# Create a safe reference to the Underscore object for use below.\n_ = (obj) -> new wrapper(obj)\n\n\n# Export the Underscore object for **CommonJS**.\nif typeof(exports) != 'undefined' then exports._ = _\n\n\n# Export Underscore to global scope.\nroot._ = _\n\n\n# Current version.\n_.VERSION = '1.1.0'\n\n\n# Collection Functions\n# --------------------\n\n# The cornerstone, an **each** implementation.\n# Handles objects implementing **forEach**, arrays, and raw objects.\n_.each = (obj, iterator, context) ->\n  try\n    if nativeForEach and obj.forEach is nativeForEach\n      obj.forEach iterator, context\n    else if _.isNumber obj.length\n      iterator.call context, obj[i], i, obj for i in [0...obj.length]\n    else\n      iterator.call context, val, key, obj for own key, val of obj\n  catch e\n    throw e if e isnt breaker\n  obj\n\n\n# Return the results of applying the iterator to each element. Use JavaScript\n# 1.6's version of **map**, if possible.\n_.map = (obj, iterator, context) ->\n  return obj.map(iterator, context) if nativeMap and obj.map is nativeMap\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push iterator.call context, value, index, list\n  results\n\n\n# **Reduce** builds up a single result from a list of values. Also known as\n# **inject**, or **foldl**. Uses JavaScript 1.8's version of **reduce**, if possible.\n_.reduce = (obj, iterator, memo, context) ->\n  if nativeReduce and obj.reduce is nativeReduce\n    iterator = _.bind iterator, context if context\n    return obj.reduce iterator, memo\n  _.each obj, (value, index, list) ->\n    memo = iterator.call context, memo, value, index, list\n  memo\n\n\n# The right-associative version of **reduce**, also known as **foldr**. Uses\n# JavaScript 1.8's version of **reduceRight**, if available.\n_.reduceRight = (obj, iterator, memo, context) ->\n  if nativeReduceRight and obj.reduceRight is nativeReduceRight\n    iterator = _.bind iterator, context if context\n    return obj.reduceRight iterator, memo\n  reversed = _.clone(_.toArray(obj)).reverse()\n  _.reduce reversed, iterator, memo, context\n\n\n# Return the first value which passes a truth test.\n_.detect = (obj, iterator, context) ->\n  result = null\n  _.each obj, (value, index, list) ->\n    if iterator.call context, value, index, list\n      result = value\n      _.breakLoop()\n  result\n\n\n# Return all the elements that pass a truth test. Use JavaScript 1.6's\n# **filter**, if it exists.\n_.filter = (obj, iterator, context) ->\n  return obj.filter iterator, context if nativeFilter and obj.filter is nativeFilter\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push value if iterator.call context, value, index, list\n  results\n\n\n# Return all the elements for which a truth test fails.\n_.reject = (obj, iterator, context) ->\n  results = []\n  _.each obj, (value, index, list) ->\n    results.push value if not iterator.call context, value, index, list\n  results\n\n\n# Determine whether all of the elements match a truth test. Delegate to\n# JavaScript 1.6's **every**, if it is present.\n_.every = (obj, iterator, context) ->\n  iterator ||= _.identity\n  return obj.every iterator, context if nativeEvery and obj.every is nativeEvery\n  result = true\n  _.each obj, (value, index, list) ->\n    _.breakLoop() unless (result = result and iterator.call(context, value, index, list))\n  result\n\n\n# Determine if at least one element in the object matches a truth test. Use\n# JavaScript 1.6's **some**, if it exists.\n_.some = (obj, iterator, context) ->\n  iterator ||= _.identity\n  return obj.some iterator, context if nativeSome and obj.some is nativeSome\n  result = false\n  _.each obj, (value, index, list) ->\n    _.breakLoop() if (result = iterator.call(context, value, index, list))\n  result\n\n\n# Determine if a given value is included in the array or object,\n# based on `===`.\n_.include = (obj, target) ->\n  return _.indexOf(obj, target) isnt -1 if nativeIndexOf and obj.indexOf is nativeIndexOf\n  return true for own key, val of obj when val is target\n  false\n\n\n# Invoke a method with arguments on every item in a collection.\n_.invoke = (obj, method) ->\n  args = _.rest arguments, 2\n  (if method then val[method] else val).apply(val, args) for val in obj\n\n\n# Convenience version of a common use case of **map**: fetching a property.\n_.pluck = (obj, key) ->\n  _.map(obj, (val) -> val[key])\n\n\n# Return the maximum item or (item-based computation).\n_.max = (obj, iterator, context) ->\n  return Math.max.apply(Math, obj) if not iterator and _.isArray(obj)\n  result = computed: -Infinity\n  _.each obj, (value, index, list) ->\n    computed = if iterator then iterator.call(context, value, index, list) else value\n    computed >= result.computed and (result = {value: value, computed: computed})\n  result.value\n\n\n# Return the minimum element (or element-based computation).\n_.min = (obj, iterator, context) ->\n  return Math.min.apply(Math, obj) if not iterator and _.isArray(obj)\n  result = computed: Infinity\n  _.each obj, (value, index, list) ->\n    computed = if iterator then iterator.call(context, value, index, list) else value\n    computed < result.computed and (result = {value: value, computed: computed})\n  result.value\n\n\n# Sort the object's values by a criterion produced by an iterator.\n_.sortBy = (obj, iterator, context) ->\n  _.pluck(((_.map obj, (value, index, list) ->\n    {value: value, criteria: iterator.call(context, value, index, list)}\n  ).sort((left, right) ->\n    a = left.criteria; b = right.criteria\n    if a < b then -1 else if a > b then 1 else 0\n  )), 'value')\n\n\n# Use a comparator function to figure out at what index an object should\n# be inserted so as to maintain order. Uses binary search.\n_.sortedIndex = (array, obj, iterator) ->\n  iterator ||= _.identity\n  low = 0\n  high = array.length\n  while low < high\n    mid = (low + high) >> 1\n    if iterator(array[mid]) < iterator(obj) then low = mid + 1 else high = mid\n  low\n\n\n# Convert anything iterable into a real, live array.\n_.toArray = (iterable) ->\n  return [] if (!iterable)\n  return iterable.toArray() if (iterable.toArray)\n  return iterable if (_.isArray(iterable))\n  return slice.call(iterable) if (_.isArguments(iterable))\n  _.values(iterable)\n\n\n# Return the number of elements in an object.\n_.size = (obj) -> _.toArray(obj).length\n\n\n# Array Functions\n# ---------------\n\n# Get the first element of an array. Passing `n` will return the first N\n# values in the array. Aliased as **head**. The `guard` check allows it to work\n# with **map**.\n_.first = (array, n, guard) ->\n  if n and not guard then slice.call(array, 0, n) else array[0]\n\n\n# Returns everything but the first entry of the array. Aliased as **tail**.\n# Especially useful on the arguments object. Passing an `index` will return\n# the rest of the values in the array from that index onward. The `guard`\n# check allows it to work with **map**.\n_.rest = (array, index, guard) ->\n  slice.call(array, if _.isUndefined(index) or guard then 1 else index)\n\n\n# Get the last element of an array.\n_.last = (array) -> array[array.length - 1]\n\n\n# Trim out all falsy values from an array.\n_.compact = (array) -> item for item in array when item\n\n\n# Return a completely flattened version of an array.\n_.flatten = (array) ->\n  _.reduce array, (memo, value) ->\n    return memo.concat(_.flatten(value)) if _.isArray value\n    memo.push value\n    memo\n  , []\n\n\n# Return a version of the array that does not contain the specified value(s).\n_.without = (array) ->\n  values = _.rest arguments\n  val for val in _.toArray(array) when not _.include values, val\n\n\n# Produce a duplicate-free version of the array. If the array has already\n# been sorted, you have the option of using a faster algorithm.\n_.uniq = (array, isSorted) ->\n  memo = []\n  for el, i in _.toArray array\n    memo.push el if i is 0 || (if isSorted is true then _.last(memo) isnt el else not _.include(memo, el))\n  memo\n\n\n# Produce an array that contains every item shared between all the\n# passed-in arrays.\n_.intersect = (array) ->\n  rest = _.rest arguments\n  _.select _.uniq(array), (item) ->\n    _.all rest, (other) ->\n      _.indexOf(other, item) >= 0\n\n\n# Zip together multiple lists into a single array -- elements that share\n# an index go together.\n_.zip = ->\n  length = _.max _.pluck arguments, 'length'\n  results = new Array length\n  for i in [0...length]\n    results[i] = _.pluck arguments, String i\n  results\n\n\n# If the browser doesn't supply us with **indexOf** (I'm looking at you, MSIE),\n# we need this function. Return the position of the first occurrence of an\n# item in an array, or -1 if the item is not included in the array.\n_.indexOf = (array, item) ->\n  return array.indexOf item if nativeIndexOf and array.indexOf is nativeIndexOf\n  i = 0; l = array.length\n  while l - i\n    if array[i] is item then return i else i++\n  -1\n\n\n# Provide JavaScript 1.6's **lastIndexOf**, delegating to the native function,\n# if possible.\n_.lastIndexOf = (array, item) ->\n  return array.lastIndexOf(item) if nativeLastIndexOf and array.lastIndexOf is nativeLastIndexOf\n  i = array.length\n  while i\n    if array[i] is item then return i else i--\n  -1\n\n\n# Generate an integer Array containing an arithmetic progression. A port of\n# [the native Python **range** function](http://docs.python.org/library/functions.html#range).\n_.range = (start, stop, step) ->\n  a = arguments\n  solo = a.length <= 1\n  i = start = if solo then 0 else a[0]\n  stop = if solo then a[0] else a[1]\n  step = a[2] or 1\n  len = Math.ceil((stop - start) / step)\n  return [] if len <= 0\n  range = new Array len\n  idx = 0\n  loop\n    return range if (if step > 0 then i - stop else stop - i) >= 0\n    range[idx] = i\n    idx++\n    i+= step\n\n\n# Function Functions\n# ------------------\n\n# Create a function bound to a given object (assigning `this`, and arguments,\n# optionally). Binding with arguments is also known as **curry**.\n_.bind = (func, obj) ->\n  args = _.rest arguments, 2\n  -> func.apply obj or root, args.concat arguments\n\n\n# Bind all of an object's methods to that object. Useful for ensuring that\n# all callbacks defined on an object belong to it.\n_.bindAll = (obj) ->\n  funcs = if arguments.length > 1 then _.rest(arguments) else _.functions(obj)\n  _.each funcs, (f) -> obj[f] = _.bind obj[f], obj\n  obj\n\n\n# Delays a function for the given number of milliseconds, and then calls\n# it with the arguments supplied.\n_.delay = (func, wait) ->\n  args = _.rest arguments, 2\n  setTimeout((-> func.apply(func, args)), wait)\n\n\n# Memoize an expensive function by storing its results.\n_.memoize = (func, hasher) ->\n  memo = {}\n  hasher or= _.identity\n  ->\n    key = hasher.apply this, arguments\n    return memo[key] if key of memo\n    memo[key] = func.apply this, arguments\n\n\n# Defers a function, scheduling it to run after the current call stack has\n# cleared.\n_.defer = (func) ->\n  _.delay.apply _, [func, 1].concat _.rest arguments\n\n\n# Returns the first function passed as an argument to the second,\n# allowing you to adjust arguments, run code before and after, and\n# conditionally execute the original function.\n_.wrap = (func, wrapper) ->\n  -> wrapper.apply wrapper, [func].concat arguments\n\n\n# Returns a function that is the composition of a list of functions, each\n# consuming the return value of the function that follows.\n_.compose = ->\n  funcs = arguments\n  ->\n    args = arguments\n    for i in [funcs.length - 1..0] by -1\n      args = [funcs[i].apply(this, args)]\n    args[0]\n\n\n# Object Functions\n# ----------------\n\n# Retrieve the names of an object's properties.\n_.keys = nativeKeys or (obj) ->\n  return _.range 0, obj.length if _.isArray(obj)\n  key for key, val of obj\n\n\n# Retrieve the values of an object's properties.\n_.values = (obj) ->\n  _.map obj, _.identity\n\n\n# Return a sorted list of the function names available in Underscore.\n_.functions = (obj) ->\n  _.filter(_.keys(obj), (key) -> _.isFunction(obj[key])).sort()\n\n\n# Extend a given object with all of the properties in a source object.\n_.extend = (obj) ->\n  for source in _.rest(arguments)\n    obj[key] = val for key, val of source\n  obj\n\n\n# Create a (shallow-cloned) duplicate of an object.\n_.clone = (obj) ->\n  return obj.slice 0 if _.isArray obj\n  _.extend {}, obj\n\n\n# Invokes interceptor with the obj, and then returns obj.\n# The primary purpose of this method is to \"tap into\" a method chain,\n# in order to perform operations on intermediate results within\n the chain.\n_.tap = (obj, interceptor) ->\n  interceptor obj\n  obj\n\n\n# Perform a deep comparison to check if two objects are equal.\n_.isEqual = (a, b) ->\n  # Check object identity.\n  return true if a is b\n  # Different types?\n  atype = typeof(a); btype = typeof(b)\n  return false if atype isnt btype\n  # Basic equality test (watch out for coercions).\n  return true if `a == b`\n  # One is falsy and the other truthy.\n  return false if (!a and b) or (a and !b)\n  # One of them implements an `isEqual()`?\n  return a.isEqual(b) if a.isEqual\n  # Check dates' integer values.\n  return a.getTime() is b.getTime() if _.isDate(a) and _.isDate(b)\n  # Both are NaN?\n  return false if _.isNaN(a) and _.isNaN(b)\n  # Compare regular expressions.\n  if _.isRegExp(a) and _.isRegExp(b)\n    return a.source is b.source and\n           a.global is b.global and\n           a.ignoreCase is b.ignoreCase and\n           a.multiline is b.multiline\n  # If a is not an object by this point, we can't handle it.\n  return false if atype isnt 'object'\n  # Check for different array lengths before comparing contents.\n  return false if a.length and (a.length isnt b.length)\n  # Nothing else worked, deep compare the contents.\n  aKeys = _.keys(a); bKeys = _.keys(b)\n  # Different object sizes?\n  return false if aKeys.length isnt bKeys.length\n  # Recursive comparison of contents.\n  return false for key, val of a when !(key of b) or !_.isEqual(val, b[key])\n  true\n\n\n# Is a given array or object empty?\n_.isEmpty = (obj) ->\n  return obj.length is 0 if _.isArray(obj) or _.isString(obj)\n  return false for own key of obj\n  true\n\n\n# Is a given value a DOM element?\n_.isElement = (obj) -> obj and obj.nodeType is 1\n\n\n# Is a given value an array?\n_.isArray = nativeIsArray or (obj) -> !!(obj and obj.concat and obj.unshift and not obj.callee)\n\n\n# Is a given variable an arguments object?\n_.isArguments = (obj) -> obj and obj.callee\n\n\n# Is the given value a function?\n_.isFunction = (obj) -> !!(obj and obj.constructor and obj.call and obj.apply)\n\n\n# Is the given value a string?\n_.isString = (obj) -> !!(obj is '' or (obj and obj.charCodeAt and obj.substr))\n\n\n# Is a given value a number?\n_.isNumber = (obj) -> (obj is +obj) or toString.call(obj) is '[object Number]'\n\n\n# Is a given value a boolean?\n_.isBoolean = (obj) -> obj is true or obj is false\n\n\n# Is a given value a Date?\n_.isDate = (obj) -> !!(obj and obj.getTimezoneOffset and obj.setUTCFullYear)\n\n\n# Is the given value a regular expression?\n_.isRegExp = (obj) -> !!(obj and obj.exec and (obj.ignoreCase or obj.ignoreCase is false))\n\n\n# Is the given value NaN -- this one is interesting. `NaN != NaN`, and\n# `isNaN(undefined) == true`, so we make sure it's a number first.\n_.isNaN = (obj) -> _.isNumber(obj) and window.isNaN(obj)\n\n\n# Is a given value equal to null?\n_.isNull = (obj) -> obj is null\n\n\n# Is a given variable undefined?\n_.isUndefined = (obj) -> typeof obj is 'undefined'\n\n\n# Utility Functions\n# -----------------\n\n# Run Underscore.js in noConflict mode, returning the `_` variable to its\n# previous owner. Returns a reference to the Underscore object.\n_.noConflict = ->\n  root._ = previousUnderscore\n  this\n\n\n# Keep the identity function around for default iterators.\n_.identity = (value) -> value\n\n\n# Run a function `n` times.\n_.times = (n, iterator, context) ->\n  iterator.call context, i for i in [0...n]\n\n\n# Break out of the middle of an iteration.\n_.breakLoop = -> throw breaker\n\n\n# Add your own custom functions to the Underscore object, ensuring that\n# they're correctly added to the OOP wrapper as well.\n_.mixin = (obj) ->\n  for name in _.functions(obj)\n    addToWrapper name, _[name] = obj[name]\n\n\n# Generate a unique integer id (unique within the entire client session).\n# Useful for temporary DOM ids.\nidCounter = 0\n_.uniqueId = (prefix) ->\n  (prefix or '') + idCounter++\n\n\n# By default, Underscore uses **ERB**-style template delimiters, change the\n# following template settings to use alternative delimiters.\n_.templateSettings = {\n  start: '<%'\n  end: '%>'\n  interpolate: /<%=(.+?)%>/g\n}\n\n\n# JavaScript templating a-la **ERB**, pilfered from John Resig's\n# *Secrets of the JavaScript Ninja*, page 83.\n# Single-quote fix from Rick Strahl.\n# With alterations for arbitrary delimiters, and to preserve whitespace.\n_.template = (str, data) ->\n  c = _.templateSettings\n  endMatch = new RegExp(\"'(?=[^\"+c.end.substr(0, 1)+\"]*\"+escapeRegExp(c.end)+\")\",\"g\")\n  fn = new Function 'obj',\n    'var p=[],print=function(){p.push.apply(p,arguments);};' +\n    'with(obj||{}){p.push(\\'' +\n    str.replace(/\\r/g, '\\\\r')\n       .replace(/\\n/g, '\\\\n')\n       .replace(/\\t/g, '\\\\t')\n       .replace(endMatch,\"���\")\n       .split(\"'\").join(\"\\\\'\")\n       .split(\"���\").join(\"'\")\n       .replace(c.interpolate, \"',$1,'\")\n       .split(c.start).join(\"');\")\n       .split(c.end).join(\"p.push('\") +\n       \"');}return p.join('');\"\n  if data then fn(data) else fn\n\n\n# Aliases\n# -------\n\n_.forEach = _.each\n_.foldl = _.inject = _.reduce\n_.foldr = _.reduceRight\n_.select = _.filter\n_.all = _.every\n_.any = _.some\n_.contains = _.include\n_.head = _.first\n_.tail = _.rest\n_.methods = _.functions\n\n\n# Setup the OOP Wrapper\n# ---------------------\n\n# If Underscore is called as a function, it returns a wrapped object that\n# can be used OO-style. This wrapper holds altered versions of all the\n# underscore functions. Wrapped objects may be chained.\nwrapper = (obj) ->\n  this._wrapped = obj\n  this\n\n\n# Helper function to continue chaining intermediate results.\nresult = (obj, chain) ->\n  if chain then _(obj).chain() else obj\n\n\n# A method to easily add functions to the OOP wrapper.\naddToWrapper = (name, func) ->\n  wrapper.prototype[name] = ->\n    args = _.toArray arguments\n    unshift.call args, this._wrapped\n    result func.apply(_, args), this._chain\n\n\n# Add all ofthe Underscore functions to the wrapper object.\n_.mixin _\n\n\n# Add all mutator Array functions to the wrapper.\n_.each ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], (name) ->\n  method = Array.prototype[name]\n  wrapper.prototype[name] = ->\n    method.apply(this._wrapped, arguments)\n    result(this._wrapped, this._chain)\n\n\n# Add all accessor Array functions to the wrapper.\n_.each ['concat', 'join', 'slice'], (name) ->\n  method = Array.prototype[name]\n  wrapper.prototype[name] = ->\n    result(method.apply(this._wrapped, arguments), this._chain)\n\n\n# Start chaining a wrapped Underscore object.\nwrapper::chain = ->\n  this._chain = true\n  this\n\n\n# Extracts the result from a wrapped and chained object.\nwrapper::value = -> this._wrapped\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-coffeescript</code>.</p>\n\n    <p>The CoffeeScript mode was written by Jeff Pickhardt.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/commonlisp/commonlisp.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"commonlisp\", function (config) {\n  var specialForm = /^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/;\n  var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/;\n  var numLiteral = /^(?:[+\\-]?(?:\\d+|\\d*\\.\\d+)(?:[efd][+\\-]?\\d+)?|[+\\-]?\\d+(?:\\/[+\\-]?\\d+)?|#b[+\\-]?[01]+|#o[+\\-]?[0-7]+|#x[+\\-]?[\\da-f]+)/;\n  var symbol = /[^\\s'`,@()\\[\\]\";]/;\n  var type;\n\n  function readSym(stream) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"\\\\\") stream.next();\n      else if (!symbol.test(ch)) { stream.backUp(1); break; }\n    }\n    return stream.current();\n  }\n\n  function base(stream, state) {\n    if (stream.eatSpace()) {type = \"ws\"; return null;}\n    if (stream.match(numLiteral)) return \"number\";\n    var ch = stream.next();\n    if (ch == \"\\\\\") ch = stream.next();\n\n    if (ch == '\"') return (state.tokenize = inString)(stream, state);\n    else if (ch == \"(\") { type = \"open\"; return \"bracket\"; }\n    else if (ch == \")\" || ch == \"]\") { type = \"close\"; return \"bracket\"; }\n    else if (ch == \";\") { stream.skipToEnd(); type = \"ws\"; return \"comment\"; }\n    else if (/['`,@]/.test(ch)) return null;\n    else if (ch == \"|\") {\n      if (stream.skipTo(\"|\")) { stream.next(); return \"symbol\"; }\n      else { stream.skipToEnd(); return \"error\"; }\n    } else if (ch == \"#\") {\n      var ch = stream.next();\n      if (ch == \"[\") { type = \"open\"; return \"bracket\"; }\n      else if (/[+\\-=\\.']/.test(ch)) return null;\n      else if (/\\d/.test(ch) && stream.match(/^\\d*#/)) return null;\n      else if (ch == \"|\") return (state.tokenize = inComment)(stream, state);\n      else if (ch == \":\") { readSym(stream); return \"meta\"; }\n      else return \"error\";\n    } else {\n      var name = readSym(stream);\n      if (name == \".\") return null;\n      type = \"symbol\";\n      if (name == \"nil\" || name == \"t\" || name.charAt(0) == \":\") return \"atom\";\n      if (state.lastType == \"open\" && (specialForm.test(name) || assumeBody.test(name))) return \"keyword\";\n      if (name.charAt(0) == \"&\") return \"variable-2\";\n      return \"variable\";\n    }\n  }\n\n  function inString(stream, state) {\n    var escaped = false, next;\n    while (next = stream.next()) {\n      if (next == '\"' && !escaped) { state.tokenize = base; break; }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return \"string\";\n  }\n\n  function inComment(stream, state) {\n    var next, last;\n    while (next = stream.next()) {\n      if (next == \"#\" && last == \"|\") { state.tokenize = base; break; }\n      last = next;\n    }\n    type = \"ws\";\n    return \"comment\";\n  }\n\n  return {\n    startState: function () {\n      return {ctx: {prev: null, start: 0, indentTo: 0}, lastType: null, tokenize: base};\n    },\n\n    token: function (stream, state) {\n      if (stream.sol() && typeof state.ctx.indentTo != \"number\")\n        state.ctx.indentTo = state.ctx.start + 1;\n\n      type = null;\n      var style = state.tokenize(stream, state);\n      if (type != \"ws\") {\n        if (state.ctx.indentTo == null) {\n          if (type == \"symbol\" && assumeBody.test(stream.current()))\n            state.ctx.indentTo = state.ctx.start + config.indentUnit;\n          else\n            state.ctx.indentTo = \"next\";\n        } else if (state.ctx.indentTo == \"next\") {\n          state.ctx.indentTo = stream.column();\n        }\n        state.lastType = type;\n      }\n      if (type == \"open\") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null};\n      else if (type == \"close\") state.ctx = state.ctx.prev || state.ctx;\n      return style;\n    },\n\n    indent: function (state, _textAfter) {\n      var i = state.ctx.indentTo;\n      return typeof i == \"number\" ? i : state.ctx.start + 1;\n    },\n\n    lineComment: \";;\",\n    blockCommentStart: \"#|\",\n    blockCommentEnd: \"|#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-common-lisp\", \"commonlisp\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/commonlisp/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Common Lisp mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"commonlisp.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Common Lisp</a>\n  </ul>\n</div>\n\n<article>\n<h2>Common Lisp mode</h2>\n<form><textarea id=\"code\" name=\"code\">(in-package :cl-postgres)\n\n;; These are used to synthesize reader and writer names for integer\n;; reading/writing functions when the amount of bytes and the\n;; signedness is known. Both the macro that creates the functions and\n;; some macros that use them create names this way.\n(eval-when (:compile-toplevel :load-toplevel :execute)\n  (defun integer-reader-name (bytes signed)\n    (intern (with-standard-io-syntax\n              (format nil \"~a~a~a~a\" '#:read- (if signed \"\" '#:u) '#:int bytes))))\n  (defun integer-writer-name (bytes signed)\n    (intern (with-standard-io-syntax\n              (format nil \"~a~a~a~a\" '#:write- (if signed \"\" '#:u) '#:int bytes)))))\n\n(defmacro integer-reader (bytes)\n  \"Create a function to read integers from a binary stream.\"\n  (let ((bits (* bytes 8)))\n    (labels ((return-form (signed)\n               (if signed\n                   `(if (logbitp ,(1- bits) result)\n                        (dpb result (byte ,(1- bits) 0) -1)\n                        result)\n                   `result))\n             (generate-reader (signed)\n               `(defun ,(integer-reader-name bytes signed) (socket)\n                  (declare (type stream socket)\n                           #.*optimize*)\n                  ,(if (= bytes 1)\n                       `(let ((result (the (unsigned-byte 8) (read-byte socket))))\n                          (declare (type (unsigned-byte 8) result))\n                          ,(return-form signed))\n                       `(let ((result 0))\n                          (declare (type (unsigned-byte ,bits) result))\n                          ,@(loop :for byte :from (1- bytes) :downto 0\n                                   :collect `(setf (ldb (byte 8 ,(* 8 byte)) result)\n                                                   (the (unsigned-byte 8) (read-byte socket))))\n                          ,(return-form signed))))))\n      `(progn\n;; This causes weird errors on SBCL in some circumstances. Disabled for now.\n;;         (declaim (inline ,(integer-reader-name bytes t)\n;;                          ,(integer-reader-name bytes nil)))\n         (declaim (ftype (function (t) (signed-byte ,bits))\n                         ,(integer-reader-name bytes t)))\n         ,(generate-reader t)\n         (declaim (ftype (function (t) (unsigned-byte ,bits))\n                         ,(integer-reader-name bytes nil)))\n         ,(generate-reader nil)))))\n\n(defmacro integer-writer (bytes)\n  \"Create a function to write integers to a binary stream.\"\n  (let ((bits (* 8 bytes)))\n    `(progn\n      (declaim (inline ,(integer-writer-name bytes t)\n                       ,(integer-writer-name bytes nil)))\n      (defun ,(integer-writer-name bytes nil) (socket value)\n        (declare (type stream socket)\n                 (type (unsigned-byte ,bits) value)\n                 #.*optimize*)\n        ,@(if (= bytes 1)\n              `((write-byte value socket))\n              (loop :for byte :from (1- bytes) :downto 0\n                    :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)\n                               socket)))\n        (values))\n      (defun ,(integer-writer-name bytes t) (socket value)\n        (declare (type stream socket)\n                 (type (signed-byte ,bits) value)\n                 #.*optimize*)\n        ,@(if (= bytes 1)\n              `((write-byte (ldb (byte 8 0) value) socket))\n              (loop :for byte :from (1- bytes) :downto 0\n                    :collect `(write-byte (ldb (byte 8 ,(* byte 8)) value)\n                               socket)))\n        (values)))))\n\n;; All the instances of the above that we need.\n\n(integer-reader 1)\n(integer-reader 2)\n(integer-reader 4)\n(integer-reader 8)\n\n(integer-writer 1)\n(integer-writer 2)\n(integer-writer 4)\n\n(defun write-bytes (socket bytes)\n  \"Write a byte-array to a stream.\"\n  (declare (type stream socket)\n           (type (simple-array (unsigned-byte 8)) bytes)\n           #.*optimize*)\n  (write-sequence bytes socket))\n\n(defun write-str (socket string)\n  \"Write a null-terminated string to a stream \\(encoding it when UTF-8\nsupport is enabled.).\"\n  (declare (type stream socket)\n           (type string string)\n           #.*optimize*)\n  (enc-write-string string socket)\n  (write-uint1 socket 0))\n\n(declaim (ftype (function (t unsigned-byte)\n                          (simple-array (unsigned-byte 8) (*)))\n                read-bytes))\n(defun read-bytes (socket length)\n  \"Read a byte array of the given length from a stream.\"\n  (declare (type stream socket)\n           (type fixnum length)\n           #.*optimize*)\n  (let ((result (make-array length :element-type '(unsigned-byte 8))))\n    (read-sequence result socket)\n    result))\n\n(declaim (ftype (function (t) string) read-str))\n(defun read-str (socket)\n  \"Read a null-terminated string from a stream. Takes care of encoding\nwhen UTF-8 support is enabled.\"\n  (declare (type stream socket)\n           #.*optimize*)\n  (enc-read-string socket :null-terminated t))\n\n(defun skip-bytes (socket length)\n  \"Skip a given number of bytes in a binary stream.\"\n  (declare (type stream socket)\n           (type (unsigned-byte 32) length)\n           #.*optimize*)\n  (dotimes (i length)\n    (read-byte socket)))\n\n(defun skip-str (socket)\n  \"Skip a null-terminated string.\"\n  (declare (type stream socket)\n           #.*optimize*)\n  (loop :for char :of-type fixnum = (read-byte socket)\n        :until (zerop char)))\n\n(defun ensure-socket-is-closed (socket &amp;key abort)\n  (when (open-stream-p socket)\n    (handler-case\n        (close socket :abort abort)\n      (error (error)\n        (warn \"Ignoring the error which happened while trying to close PostgreSQL socket: ~A\" error)))))\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {lineNumbers: true});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-common-lisp</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/css.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n  if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n  var indentUnit = config.indentUnit,\n      tokenHooks = parserConfig.tokenHooks,\n      documentTypes = parserConfig.documentTypes || {},\n      mediaTypes = parserConfig.mediaTypes || {},\n      mediaFeatures = parserConfig.mediaFeatures || {},\n      propertyKeywords = parserConfig.propertyKeywords || {},\n      nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n      fontProperties = parserConfig.fontProperties || {},\n      counterDescriptors = parserConfig.counterDescriptors || {},\n      colorKeywords = parserConfig.colorKeywords || {},\n      valueKeywords = parserConfig.valueKeywords || {},\n      allowNested = parserConfig.allowNested;\n\n  var type, override;\n  function ret(style, tp) { type = tp; return style; }\n\n  // Tokenizers\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (tokenHooks[ch]) {\n      var result = tokenHooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == \"@\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"def\", stream.current());\n    } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n      return ret(null, \"compare\");\n    } else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \"#\") {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"atom\", \"hash\");\n    } else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    } else if (ch === \"-\") {\n      if (/[\\d.]/.test(stream.peek())) {\n        stream.eatWhile(/[\\w.%]/);\n        return ret(\"number\", \"unit\");\n      } else if (stream.match(/^-[\\w\\\\\\-]+/)) {\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return ret(\"variable-2\", \"variable-definition\");\n        return ret(\"variable-2\", \"variable\");\n      } else if (stream.match(/^\\w+-/)) {\n        return ret(\"meta\", \"meta\");\n      }\n    } else if (/[,+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n      return ret(\"qualifier\", \"qualifier\");\n    } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n      return ret(null, ch);\n    } else if ((ch == \"u\" && stream.match(/rl(-prefix)?\\(/)) ||\n               (ch == \"d\" && stream.match(\"omain(\")) ||\n               (ch == \"r\" && stream.match(\"egexp(\"))) {\n      stream.backUp(1);\n      state.tokenize = tokenParenthesized;\n      return ret(\"property\", \"word\");\n    } else if (/[\\w\\\\\\-]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"property\", \"word\");\n    } else {\n      return ret(null, null);\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          if (quote == \")\") stream.backUp(1);\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenParenthesized(stream, state) {\n    stream.next(); // Must be '('\n    if (!stream.match(/\\s*[\\\"\\')]/, false))\n      state.tokenize = tokenString(\")\");\n    else\n      state.tokenize = null;\n    return ret(null, \"(\");\n  }\n\n  // Context management\n\n  function Context(type, indent, prev) {\n    this.type = type;\n    this.indent = indent;\n    this.prev = prev;\n  }\n\n  function pushContext(state, stream, type) {\n    state.context = new Context(type, stream.indentation() + indentUnit, state.context);\n    return type;\n  }\n\n  function popContext(state) {\n    state.context = state.context.prev;\n    return state.context.type;\n  }\n\n  function pass(type, stream, state) {\n    return states[state.context.type](type, stream, state);\n  }\n  function popAndPass(type, stream, state, n) {\n    for (var i = n || 1; i > 0; i--)\n      state.context = state.context.prev;\n    return pass(type, stream, state);\n  }\n\n  // Parser\n\n  function wordAsValue(stream) {\n    var word = stream.current().toLowerCase();\n    if (valueKeywords.hasOwnProperty(word))\n      override = \"atom\";\n    else if (colorKeywords.hasOwnProperty(word))\n      override = \"keyword\";\n    else\n      override = \"variable\";\n  }\n\n  var states = {};\n\n  states.top = function(type, stream, state) {\n    if (type == \"{\") {\n      return pushContext(state, stream, \"block\");\n    } else if (type == \"}\" && state.context.prev) {\n      return popContext(state);\n    } else if (/@(media|supports|(-moz-)?document)/.test(type)) {\n      return pushContext(state, stream, \"atBlock\");\n    } else if (/@(font-face|counter-style)/.test(type)) {\n      state.stateArg = type;\n      return \"restricted_atBlock_before\";\n    } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {\n      return \"keyframes\";\n    } else if (type && type.charAt(0) == \"@\") {\n      return pushContext(state, stream, \"at\");\n    } else if (type == \"hash\") {\n      override = \"builtin\";\n    } else if (type == \"word\") {\n      override = \"tag\";\n    } else if (type == \"variable-definition\") {\n      return \"maybeprop\";\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    } else if (type == \":\") {\n      return \"pseudo\";\n    } else if (allowNested && type == \"(\") {\n      return pushContext(state, stream, \"parens\");\n    }\n    return state.context.type;\n  };\n\n  states.block = function(type, stream, state) {\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (propertyKeywords.hasOwnProperty(word)) {\n        override = \"property\";\n        return \"maybeprop\";\n      } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n        override = \"string-2\";\n        return \"maybeprop\";\n      } else if (allowNested) {\n        override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n        return \"block\";\n      } else {\n        override += \" error\";\n        return \"maybeprop\";\n      }\n    } else if (type == \"meta\") {\n      return \"block\";\n    } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n      override = \"error\";\n      return \"block\";\n    } else {\n      return states.top(type, stream, state);\n    }\n  };\n\n  states.maybeprop = function(type, stream, state) {\n    if (type == \":\") return pushContext(state, stream, \"prop\");\n    return pass(type, stream, state);\n  };\n\n  states.prop = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n    if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n    if (type == \"hash\" && !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) {\n      override += \" error\";\n    } else if (type == \"word\") {\n      wordAsValue(stream);\n    } else if (type == \"interpolation\") {\n      return pushContext(state, stream, \"interpolation\");\n    }\n    return \"prop\";\n  };\n\n  states.propBlock = function(type, _stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n    return state.context.type;\n  };\n\n  states.parens = function(type, stream, state) {\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \")\") return popContext(state);\n    if (type == \"(\") return pushContext(state, stream, \"parens\");\n    if (type == \"word\") wordAsValue(stream);\n    return \"parens\";\n  };\n\n  states.pseudo = function(type, stream, state) {\n    if (type == \"word\") {\n      override = \"variable-3\";\n      return state.context.type;\n    }\n    return pass(type, stream, state);\n  };\n\n  states.atBlock = function(type, stream, state) {\n    if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n    if (type == \"}\") return popAndPass(type, stream, state);\n    if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n    if (type == \"word\") {\n      var word = stream.current().toLowerCase();\n      if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n        override = \"keyword\";\n      else if (documentTypes.hasOwnProperty(word))\n        override = \"tag\";\n      else if (mediaTypes.hasOwnProperty(word))\n        override = \"attribute\";\n      else if (mediaFeatures.hasOwnProperty(word))\n        override = \"property\";\n      else if (propertyKeywords.hasOwnProperty(word))\n        override = \"property\";\n      else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n        override = \"string-2\";\n      else if (valueKeywords.hasOwnProperty(word))\n        override = \"atom\";\n      else\n        override = \"error\";\n    }\n    return state.context.type;\n  };\n\n  states.atBlock_parens = function(type, stream, state) {\n    if (type == \")\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n    return states.atBlock(type, stream, state);\n  };\n\n  states.restricted_atBlock_before = function(type, stream, state) {\n    if (type == \"{\")\n      return pushContext(state, stream, \"restricted_atBlock\");\n    if (type == \"word\" && state.stateArg == \"@counter-style\") {\n      override = \"variable\";\n      return \"restricted_atBlock_before\";\n    }\n    return pass(type, stream, state);\n  };\n\n  states.restricted_atBlock = function(type, stream, state) {\n    if (type == \"}\") {\n      state.stateArg = null;\n      return popContext(state);\n    }\n    if (type == \"word\") {\n      if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n          (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n        override = \"error\";\n      else\n        override = \"property\";\n      return \"maybeprop\";\n    }\n    return \"restricted_atBlock\";\n  };\n\n  states.keyframes = function(type, stream, state) {\n    if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n    if (type == \"{\") return pushContext(state, stream, \"top\");\n    return pass(type, stream, state);\n  };\n\n  states.at = function(type, stream, state) {\n    if (type == \";\") return popContext(state);\n    if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n    if (type == \"word\") override = \"tag\";\n    else if (type == \"hash\") override = \"builtin\";\n    return \"at\";\n  };\n\n  states.interpolation = function(type, stream, state) {\n    if (type == \"}\") return popContext(state);\n    if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n    if (type != \"variable\") override = \"error\";\n    return \"interpolation\";\n  };\n\n  return {\n    startState: function(base) {\n      return {tokenize: null,\n              state: \"top\",\n              stateArg: null,\n              context: new Context(\"top\", base || 0, null)};\n    },\n\n    token: function(stream, state) {\n      if (!state.tokenize && stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style && typeof style == \"object\") {\n        type = style[1];\n        style = style[0];\n      }\n      override = style;\n      state.state = states[state.state](type, stream, state);\n      return override;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context, ch = textAfter && textAfter.charAt(0);\n      var indent = cx.indent;\n      if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n      if (cx.prev &&\n          (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" || cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\") ||\n           ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n           ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\"))) {\n        indent = cx.indent - indentUnit;\n        cx = cx.prev;\n      }\n      return indent;\n    },\n\n    electricChars: \"}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    fold: \"brace\"\n  };\n});\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  }\n\n  var documentTypes_ = [\n    \"domain\", \"regexp\", \"url\", \"url-prefix\"\n  ], documentTypes = keySet(documentTypes_);\n\n  var mediaTypes_ = [\n    \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n    \"tty\", \"tv\", \"embossed\"\n  ], mediaTypes = keySet(mediaTypes_);\n\n  var mediaFeatures_ = [\n    \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n    \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n    \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n    \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n    \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n    \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n    \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n    \"min-resolution\", \"max-resolution\", \"scan\", \"grid\"\n  ], mediaFeatures = keySet(mediaFeatures_);\n\n  var propertyKeywords_ = [\n    \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n    \"alignment-baseline\", \"anchor-point\", \"animation\", \"animation-delay\",\n    \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n    \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n    \"animation-timing-function\", \"appearance\", \"azimuth\", \"backface-visibility\",\n    \"background\", \"background-attachment\", \"background-clip\", \"background-color\",\n    \"background-image\", \"background-origin\", \"background-position\",\n    \"background-repeat\", \"background-size\", \"baseline-shift\", \"binding\",\n    \"bleed\", \"bookmark-label\", \"bookmark-level\", \"bookmark-state\",\n    \"bookmark-target\", \"border\", \"border-bottom\", \"border-bottom-color\",\n    \"border-bottom-left-radius\", \"border-bottom-right-radius\",\n    \"border-bottom-style\", \"border-bottom-width\", \"border-collapse\",\n    \"border-color\", \"border-image\", \"border-image-outset\",\n    \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n    \"border-image-width\", \"border-left\", \"border-left-color\",\n    \"border-left-style\", \"border-left-width\", \"border-radius\", \"border-right\",\n    \"border-right-color\", \"border-right-style\", \"border-right-width\",\n    \"border-spacing\", \"border-style\", \"border-top\", \"border-top-color\",\n    \"border-top-left-radius\", \"border-top-right-radius\", \"border-top-style\",\n    \"border-top-width\", \"border-width\", \"bottom\", \"box-decoration-break\",\n    \"box-shadow\", \"box-sizing\", \"break-after\", \"break-before\", \"break-inside\",\n    \"caption-side\", \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\",\n    \"column-fill\", \"column-gap\", \"column-rule\", \"column-rule-color\",\n    \"column-rule-style\", \"column-rule-width\", \"column-span\", \"column-width\",\n    \"columns\", \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\",\n    \"cue-after\", \"cue-before\", \"cursor\", \"direction\", \"display\",\n    \"dominant-baseline\", \"drop-initial-after-adjust\",\n    \"drop-initial-after-align\", \"drop-initial-before-adjust\",\n    \"drop-initial-before-align\", \"drop-initial-size\", \"drop-initial-value\",\n    \"elevation\", \"empty-cells\", \"fit\", \"fit-position\", \"flex\", \"flex-basis\",\n    \"flex-direction\", \"flex-flow\", \"flex-grow\", \"flex-shrink\", \"flex-wrap\",\n    \"float\", \"float-offset\", \"flow-from\", \"flow-into\", \"font\", \"font-feature-settings\",\n    \"font-family\", \"font-kerning\", \"font-language-override\", \"font-size\", \"font-size-adjust\",\n    \"font-stretch\", \"font-style\", \"font-synthesis\", \"font-variant\",\n    \"font-variant-alternates\", \"font-variant-caps\", \"font-variant-east-asian\",\n    \"font-variant-ligatures\", \"font-variant-numeric\", \"font-variant-position\",\n    \"font-weight\", \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\",\n    \"grid-auto-position\", \"grid-auto-rows\", \"grid-column\", \"grid-column-end\",\n    \"grid-column-start\", \"grid-row\", \"grid-row-end\", \"grid-row-start\",\n    \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n    \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\",\n    \"icon\", \"image-orientation\", \"image-rendering\", \"image-resolution\",\n    \"inline-box-align\", \"justify-content\", \"left\", \"letter-spacing\",\n    \"line-break\", \"line-height\", \"line-stacking\", \"line-stacking-ruby\",\n    \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n    \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n    \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\",\n    \"marker-offset\", \"marks\", \"marquee-direction\", \"marquee-loop\",\n    \"marquee-play-count\", \"marquee-speed\", \"marquee-style\", \"max-height\",\n    \"max-width\", \"min-height\", \"min-width\", \"move-to\", \"nav-down\", \"nav-index\",\n    \"nav-left\", \"nav-right\", \"nav-up\", \"object-fit\", \"object-position\",\n    \"opacity\", \"order\", \"orphans\", \"outline\",\n    \"outline-color\", \"outline-offset\", \"outline-style\", \"outline-width\",\n    \"overflow\", \"overflow-style\", \"overflow-wrap\", \"overflow-x\", \"overflow-y\",\n    \"padding\", \"padding-bottom\", \"padding-left\", \"padding-right\", \"padding-top\",\n    \"page\", \"page-break-after\", \"page-break-before\", \"page-break-inside\",\n    \"page-policy\", \"pause\", \"pause-after\", \"pause-before\", \"perspective\",\n    \"perspective-origin\", \"pitch\", \"pitch-range\", \"play-during\", \"position\",\n    \"presentation-level\", \"punctuation-trim\", \"quotes\", \"region-break-after\",\n    \"region-break-before\", \"region-break-inside\", \"region-fragment\",\n    \"rendering-intent\", \"resize\", \"rest\", \"rest-after\", \"rest-before\", \"richness\",\n    \"right\", \"rotation\", \"rotation-point\", \"ruby-align\", \"ruby-overhang\",\n    \"ruby-position\", \"ruby-span\", \"shape-image-threshold\", \"shape-inside\", \"shape-margin\",\n    \"shape-outside\", \"size\", \"speak\", \"speak-as\", \"speak-header\",\n    \"speak-numeral\", \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\",\n    \"tab-size\", \"table-layout\", \"target\", \"target-name\", \"target-new\",\n    \"target-position\", \"text-align\", \"text-align-last\", \"text-decoration\",\n    \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n    \"text-decoration-style\", \"text-emphasis\", \"text-emphasis-color\",\n    \"text-emphasis-position\", \"text-emphasis-style\", \"text-height\",\n    \"text-indent\", \"text-justify\", \"text-outline\", \"text-overflow\", \"text-shadow\",\n    \"text-size-adjust\", \"text-space-collapse\", \"text-transform\", \"text-underline-position\",\n    \"text-wrap\", \"top\", \"transform\", \"transform-origin\", \"transform-style\",\n    \"transition\", \"transition-delay\", \"transition-duration\",\n    \"transition-property\", \"transition-timing-function\", \"unicode-bidi\",\n    \"vertical-align\", \"visibility\", \"voice-balance\", \"voice-duration\",\n    \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\", \"voice-stress\",\n    \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\", \"word-break\",\n    \"word-spacing\", \"word-wrap\", \"z-index\",\n    // SVG-specific\n    \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n    \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n    \"color-interpolation\", \"color-interpolation-filters\",\n    \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n    \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"shape-rendering\", \"stroke\",\n    \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n    \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n    \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n    \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\"\n  ], propertyKeywords = keySet(propertyKeywords_);\n\n  var nonStandardPropertyKeywords_ = [\n    \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n    \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n    \"scrollbar-3d-light-color\", \"scrollbar-track-color\", \"shape-inside\",\n    \"searchfield-cancel-button\", \"searchfield-decoration\", \"searchfield-results-button\",\n    \"searchfield-results-decoration\", \"zoom\"\n  ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n  var fontProperties_ = [\n    \"font-family\", \"src\", \"unicode-range\", \"font-variant\", \"font-feature-settings\",\n    \"font-stretch\", \"font-weight\", \"font-style\"\n  ], fontProperties = keySet(fontProperties_);\n\n  var counterDescriptors_ = [\n    \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n    \"speak-as\", \"suffix\", \"symbols\", \"system\"\n  ], counterDescriptors = keySet(counterDescriptors_);\n\n  var colorKeywords_ = [\n    \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n    \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n    \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n    \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n    \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n    \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n    \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n    \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n    \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n    \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n    \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n    \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n    \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n    \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n    \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n    \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n    \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n    \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n    \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n    \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n    \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n    \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n    \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n    \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n    \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n    \"whitesmoke\", \"yellow\", \"yellowgreen\"\n  ], colorKeywords = keySet(colorKeywords_);\n\n  var valueKeywords_ = [\n    \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n    \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n    \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n    \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"avoid\", \"avoid-column\", \"avoid-page\",\n    \"avoid-region\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n    \"bengali\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n    \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n    \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n    \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n    \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n    \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n    \"col-resize\", \"collapse\", \"column\", \"compact\", \"condensed\", \"contain\", \"content\",\n    \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n    \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"dashed\", \"decimal\",\n    \"decimal-leading-zero\", \"default\", \"default-button\", \"destination-atop\",\n    \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\",\n    \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n    \"dot-dash\", \"dot-dot-dash\",\n    \"dotted\", \"double\", \"down\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n    \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n    \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n    \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n    \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n    \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n    \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n    \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n    \"ethiopic-numeric\", \"ew-resize\", \"expanded\", \"extends\", \"extra-condensed\",\n    \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fixed\", \"flat\", \"flex\", \"footnotes\",\n    \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"graytext\", \"groove\",\n    \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hebrew\",\n    \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n    \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"icon\", \"ignore\",\n    \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n    \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n    \"inline-block\", \"inline-flex\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n    \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n    \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n    \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n    \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\",\n    \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n    \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n    \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n    \"lower-roman\", \"lowercase\", \"ltr\", \"malayalam\", \"match\", \"matrix\", \"matrix3d\",\n    \"media-controls-background\", \"media-current-time-display\",\n    \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n    \"media-return-to-realtime-button\", \"media-rewind-button\",\n    \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n    \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n    \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n    \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n    \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n    \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"myanmar\", \"n-resize\",\n    \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n    \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n    \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"open-quote\",\n    \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n    \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n    \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"plus-darker\", \"plus-lighter\",\n    \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n    \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n    \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n    \"relative\", \"repeat\", \"repeating-linear-gradient\",\n    \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n    \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n    \"rotateZ\", \"round\", \"row-resize\", \"rtl\", \"run-in\", \"running\",\n    \"s-resize\", \"sans-serif\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\",\n    \"scroll\", \"scrollbar\", \"se-resize\", \"searchfield\",\n    \"searchfield-cancel-button\", \"searchfield-decoration\",\n    \"searchfield-results-button\", \"searchfield-results-decoration\",\n    \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\", \"sidama\",\n    \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n    \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n    \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n    \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"solid\", \"somali\",\n    \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"spell-out\", \"square\",\n    \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"sub\",\n    \"subpixel-antialiased\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"table\",\n    \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n    \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n    \"tamil\",\n    \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n    \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n    \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n    \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n    \"trad-chinese-formal\", \"trad-chinese-informal\",\n    \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n    \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"up\",\n    \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n    \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n    \"var\", \"vertical\", \"vertical-text\", \"visible\", \"visibleFill\", \"visiblePainted\",\n    \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n    \"window\", \"windowframe\", \"windowtext\", \"words\", \"x-large\", \"x-small\", \"xor\",\n    \"xx-large\", \"xx-small\"\n  ], valueKeywords = keySet(valueKeywords_);\n\n  var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(propertyKeywords_)\n    .concat(nonStandardPropertyKeywords_).concat(colorKeywords_).concat(valueKeywords_);\n  CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return [\"comment\", \"comment\"];\n  }\n\n  function tokenSGMLComment(stream, state) {\n    if (stream.skipTo(\"-->\")) {\n      stream.match(\"-->\");\n      state.tokenize = null;\n    } else {\n      stream.skipToEnd();\n    }\n    return [\"comment\", \"comment\"];\n  }\n\n  CodeMirror.defineMIME(\"text/css\", {\n    documentTypes: documentTypes,\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    fontProperties: fontProperties,\n    counterDescriptors: counterDescriptors,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    tokenHooks: {\n      \"<\": function(stream, state) {\n        if (!stream.match(\"!--\")) return false;\n        state.tokenize = tokenSGMLComment;\n        return tokenSGMLComment(stream, state);\n      },\n      \"/\": function(stream, state) {\n        if (!stream.eat(\"*\")) return false;\n        state.tokenize = tokenCComment;\n        return tokenCComment(stream, state);\n      }\n    },\n    name: \"css\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-scss\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \":\": function(stream) {\n        if (stream.match(/\\s*\\{/))\n          return [null, \"{\"];\n        return false;\n      },\n      \"$\": function(stream) {\n        stream.match(/^[\\w-]+/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"#\": function(stream) {\n        if (!stream.eat(\"{\")) return false;\n        return [null, \"interpolation\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"scss\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-less\", {\n    mediaTypes: mediaTypes,\n    mediaFeatures: mediaFeatures,\n    propertyKeywords: propertyKeywords,\n    nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n    colorKeywords: colorKeywords,\n    valueKeywords: valueKeywords,\n    fontProperties: fontProperties,\n    allowNested: true,\n    tokenHooks: {\n      \"/\": function(stream, state) {\n        if (stream.eat(\"/\")) {\n          stream.skipToEnd();\n          return [\"comment\", \"comment\"];\n        } else if (stream.eat(\"*\")) {\n          state.tokenize = tokenCComment;\n          return tokenCComment(stream, state);\n        } else {\n          return [\"operator\", \"operator\"];\n        }\n      },\n      \"@\": function(stream) {\n        if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/, false)) return false;\n        stream.eatWhile(/[\\w\\\\\\-]/);\n        if (stream.match(/^\\s*:/, false))\n          return [\"variable-2\", \"variable-definition\"];\n        return [\"variable-2\", \"variable\"];\n      },\n      \"&\": function() {\n        return [\"atom\", \"atom\"];\n      }\n    },\n    name: \"css\",\n    helperType: \"less\"\n  });\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: CSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"css.js\"></script>\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/css-hint.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">CSS</a>\n  </ul>\n</div>\n\n<article>\n<h2>CSS mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Some example CSS */\n\n@import url(\"something.css\");\n\nbody {\n  margin: 0;\n  padding: 3em 6em;\n  font-family: tahoma, arial, sans-serif;\n  color: #000;\n}\n\n#navigation a {\n  font-weight: bold;\n  text-decoration: none !important;\n}\n\nh1 {\n  font-size: 2.5em;\n}\n\nh2 {\n  font-size: 1.7em;\n}\n\nh1:before, h2:before {\n  content: \"::\";\n}\n\ncode {\n  font-family: courier, monospace;\n  font-size: 80%;\n  color: #418A8A;\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/css</code>, <code>text/x-scss</code> (<a href=\"scss.html\">demo</a>), <code>text/x-less</code> (<a href=\"less.html\">demo</a>).</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#css_*\">normal</a>,  <a href=\"../../test/index.html#verbose,css_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/less.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: LESS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"css.js\"></script>\n<style>.CodeMirror {border: 1px solid #ddd; line-height: 1.2;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">LESS</a>\n  </ul>\n</div>\n\n<article>\n<h2>LESS mode</h2>\n<form><textarea id=\"code\" name=\"code\">@media screen and (device-aspect-ratio: 16/9) { … }\n@media screen and (device-aspect-ratio: 1280/720) { … }\n@media screen and (device-aspect-ratio: 2560/1440) { … }\n\nhtml:lang(fr-be)\n\ntr:nth-child(2n+1) /* represents every odd row of an HTML table */\n\nimg:nth-of-type(2n+1) { float: right; }\nimg:nth-of-type(2n) { float: left; }\n\nbody > h2:not(:first-of-type):not(:last-of-type)\n\nhtml|*:not(:link):not(:visited)\n*|*:not(:hover)\np::first-line { text-transform: uppercase }\n\n@namespace foo url(http://www.example.com);\nfoo|h1 { color: blue }  /* first rule */\n\nspan[hello=\"Ocean\"][goodbye=\"Land\"]\n\nE[foo]{\n  padding:65px;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n  -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { // Inner padding and border oddities in FF3/4\n  padding: 0;\n  border: 0;\n}\n.btn {\n  // reset here as of 2.0.3 due to Recess property order\n  border-color: #ccc;\n  border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);\n}\nfieldset span button, fieldset span input[type=\"file\"] {\n  font-size:12px;\n\tfont-family:Arial, Helvetica, sans-serif;\n}\n\n.rounded-corners (@radius: 5px) {\n  border-radius: @radius;\n  -webkit-border-radius: @radius;\n  -moz-border-radius: @radius;\n}\n\n@import url(\"something.css\");\n\n@light-blue:   hsl(190, 50%, 65%);\n\n#menu {\n  position: absolute;\n  width: 100%;\n  z-index: 3;\n  clear: both;\n  display: block;\n  background-color: @blue;\n  height: 42px;\n  border-top: 2px solid lighten(@alpha-blue, 20%);\n  border-bottom: 2px solid darken(@alpha-blue, 25%);\n  .box-shadow(0, 1px, 8px, 0.6);\n  -moz-box-shadow: 0 0 0 #000; // Because firefox sucks.\n\n  &.docked {\n    background-color: hsla(210, 60%, 40%, 0.4);\n  }\n  &:hover {\n    background-color: @blue;\n  }\n\n  #dropdown {\n    margin: 0 0 0 117px;\n    padding: 0;\n    padding-top: 5px;\n    display: none;\n    width: 190px;\n    border-top: 2px solid @medium;\n    color: @highlight;\n    border: 2px solid darken(@medium, 25%);\n    border-left-color: darken(@medium, 15%);\n    border-right-color: darken(@medium, 15%);\n    border-top-width: 0;\n    background-color: darken(@medium, 10%);\n    ul {\n      padding: 0px;  \n    }\n    li {\n      font-size: 14px;\n      display: block;\n      text-align: left;\n      padding: 0;\n      border: 0;\n      a {\n        display: block;\n        padding: 0px 15px;  \n        text-decoration: none;\n        color: white;  \n        &:hover {\n          background-color: darken(@medium, 15%);\n          text-decoration: none;\n        }\n      }\n    }\n    .border-radius(5px, bottom);\n    .box-shadow(0, 6px, 8px, 0.5);\n  }\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers : true,\n        matchBrackets : true,\n        mode: \"text/x-less\"\n      });\n    </script>\n\n    <p>The LESS mode is a sub-mode of the <a href=\"index.html\">CSS mode</a> (defined in <code>css.js</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#less_*\">normal</a>,  <a href=\"../../test/index.html#verbose,less_*\">verbose</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/less_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  \"use strict\";\n\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"text/x-less\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), \"less\"); }\n\n  MT(\"variable\",\n     \"[variable-2 @base]: [atom #f04615];\",\n     \"[qualifier .class] {\",\n     \"  [property width]: [variable percentage]([number 0.5]); [comment // returns `50%`]\",\n     \"  [property color]: [variable saturate]([variable-2 @base], [number 5%]);\",\n     \"}\");\n\n  MT(\"amp\",\n     \"[qualifier .child], [qualifier .sibling] {\",\n     \"  [qualifier .parent] [atom &] {\",\n     \"    [property color]: [keyword black];\",\n     \"  }\",\n     \"  [atom &] + [atom &] {\",\n     \"    [property color]: [keyword red];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"mixin\",\n     \"[qualifier .mixin] ([variable dark]; [variable-2 @color]) {\",\n     \"  [property color]: [variable darken]([variable-2 @color], [number 10%]);\",\n     \"}\",\n     \"[qualifier .mixin] ([variable light]; [variable-2 @color]) {\",\n     \"  [property color]: [variable lighten]([variable-2 @color], [number 10%]);\",\n     \"}\",\n     \"[qualifier .mixin] ([variable-2 @_]; [variable-2 @color]) {\",\n     \"  [property display]: [atom block];\",\n     \"}\",\n     \"[variable-2 @switch]: [variable light];\",\n     \"[qualifier .class] {\",\n     \"  [qualifier .mixin]([variable-2 @switch]; [atom #888]);\",\n     \"}\");\n\n  MT(\"nest\",\n     \"[qualifier .one] {\",\n     \"  [def @media] ([property width]: [number 400px]) {\",\n     \"    [property font-size]: [number 1.2em];\",\n     \"    [def @media] [attribute print] [keyword and] [property color] {\",\n     \"      [property color]: [keyword blue];\",\n     \"    }\",\n     \"  }\",\n     \"}\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/scss.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SCSS mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"css.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SCSS</a>\n  </ul>\n</div>\n\n<article>\n<h2>SCSS mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Some example SCSS */\n\n@import \"compass/css3\";\n$variable: #333;\n\n$blue: #3bbfce;\n$margin: 16px;\n\n.content-navigation {\n  #nested {\n    background-color: black;\n  }\n  border-color: $blue;\n  color:\n    darken($blue, 9%);\n}\n\n.border {\n  padding: $margin / 2;\n  margin: $margin / 2;\n  border-color: $blue;\n}\n\n@mixin table-base {\n  th {\n    text-align: center;\n    font-weight: bold;\n  }\n  td, th {padding: 2px}\n}\n\ntable.hl {\n  margin: 2em 0;\n  td.ln {\n    text-align: right;\n  }\n}\n\nli {\n  font: {\n    family: serif;\n    weight: bold;\n    size: 1.2em;\n  }\n}\n\n@mixin left($dist) {\n  float: left;\n  margin-left: $dist;\n}\n\n#data {\n  @include left(10px);\n  @include table-base;\n}\n\n.source {\n  @include flow-into(target);\n  border: 10px solid green;\n  margin: 20px;\n  width: 200px; }\n\n.new-container {\n  @include flow-from(target);\n  border: 10px solid red;\n  margin: 20px;\n  width: 200px; }\n\nbody {\n  margin: 0;\n  padding: 3em 6em;\n  font-family: tahoma, arial, sans-serif;\n  color: #000;\n}\n\n@mixin yellow() {\n  background: yellow;\n}\n\n.big {\n  font-size: 14px;\n}\n\n.nested {\n  @include border-radius(3px);\n  @extend .big;\n  p {\n    background: whitesmoke;\n    a {\n      color: red;\n    }\n  }\n}\n\n#navigation a {\n  font-weight: bold;\n  text-decoration: none !important;\n}\n\nh1 {\n  font-size: 2.5em;\n}\n\nh2 {\n  font-size: 1.7em;\n}\n\nh1:before, h2:before {\n  content: \"::\";\n}\n\ncode {\n  font-family: courier, monospace;\n  font-size: 80%;\n  color: #418A8A;\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-scss\"\n      });\n    </script>\n\n    <p>The SCSS mode is a sub-mode of the <a href=\"index.html\">CSS mode</a> (defined in <code>css.js</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#scss_*\">normal</a>,  <a href=\"../../test/index.html#verbose,scss_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/scss_test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"text/x-scss\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), \"scss\"); }\n\n  MT('url_with_quotation',\n    \"[tag foo] { [property background]:[atom url]([string test.jpg]) }\");\n\n  MT('url_with_double_quotes',\n    \"[tag foo] { [property background]:[atom url]([string \\\"test.jpg\\\"]) }\");\n\n  MT('url_with_single_quotes',\n    \"[tag foo] { [property background]:[atom url]([string \\'test.jpg\\']) }\");\n\n  MT('string',\n    \"[def @import] [string \\\"compass/css3\\\"]\");\n\n  MT('important_keyword',\n    \"[tag foo] { [property background]:[atom url]([string \\'test.jpg\\']) [keyword !important] }\");\n\n  MT('variable',\n    \"[variable-2 $blue]:[atom #333]\");\n\n  MT('variable_as_attribute',\n    \"[tag foo] { [property color]:[variable-2 $blue] }\");\n\n  MT('numbers',\n    \"[tag foo] { [property padding]:[number 10px] [number 10] [number 10em] [number 8in] }\");\n\n  MT('number_percentage',\n    \"[tag foo] { [property width]:[number 80%] }\");\n\n  MT('selector',\n    \"[builtin #hello][qualifier .world]{}\");\n\n  MT('singleline_comment',\n    \"[comment // this is a comment]\");\n\n  MT('multiline_comment',\n    \"[comment /*foobar*/]\");\n\n  MT('attribute_with_hyphen',\n    \"[tag foo] { [property font-size]:[number 10px] }\");\n\n  MT('string_after_attribute',\n    \"[tag foo] { [property content]:[string \\\"::\\\"] }\");\n\n  MT('directives',\n    \"[def @include] [qualifier .mixin]\");\n\n  MT('basic_structure',\n    \"[tag p] { [property background]:[keyword red]; }\");\n\n  MT('nested_structure',\n    \"[tag p] { [tag a] { [property color]:[keyword red]; } }\");\n\n  MT('mixin',\n    \"[def @mixin] [tag table-base] {}\");\n\n  MT('number_without_semicolon',\n    \"[tag p] {[property width]:[number 12]}\",\n    \"[tag a] {[property color]:[keyword red];}\");\n\n  MT('atom_in_nested_block',\n    \"[tag p] { [tag a] { [property color]:[atom #000]; } }\");\n\n  MT('interpolation_in_property',\n    \"[tag foo] { #{[variable-2 $hello]}:[number 2]; }\");\n\n  MT('interpolation_in_selector',\n    \"[tag foo]#{[variable-2 $hello]} { [property color]:[atom #000]; }\");\n\n  MT('interpolation_error',\n    \"[tag foo]#{[error foo]} { [property color]:[atom #000]; }\");\n\n  MT(\"divide_operator\",\n    \"[tag foo] { [property width]:[number 4] [operator /] [number 2] }\");\n\n  MT('nested_structure_with_id_selector',\n    \"[tag p] { [builtin #hello] { [property color]:[keyword red]; } }\");\n\n  MT('indent_mixin',\n     \"[def @mixin] [tag container] (\",\n     \"  [variable-2 $a]: [number 10],\",\n     \"  [variable-2 $b]: [number 10])\",\n     \"{}\");\n\n  MT('indent_nested',\n     \"[tag foo] {\",\n     \"  [tag bar] {\",\n     \"  }\",\n     \"}\");\n\n  MT('indent_parentheses',\n     \"[tag foo] {\",\n     \"  [property color]: [variable darken]([variable-2 $blue],\",\n     \"    [number 9%]);\",\n     \"}\");\n\n  MT('indent_vardef',\n     \"[variable-2 $name]:\",\n     \"  [string 'val'];\",\n     \"[tag tag] {\",\n     \"  [tag inner] {\",\n     \"    [property margin]: [number 3px];\",\n     \"  }\",\n     \"}\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/css/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"css\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Error, because \"foobarhello\" is neither a known type or property, but\n  // property was expected (after \"and\"), and it should be in parenthese.\n  MT(\"atMediaUnknownType\",\n     \"[def @media] [attribute screen] [keyword and] [error foobarhello] { }\");\n\n  // Soft error, because \"foobarhello\" is not a known property or type.\n  MT(\"atMediaUnknownProperty\",\n     \"[def @media] [attribute screen] [keyword and] ([error foobarhello]) { }\");\n\n  // Make sure nesting works with media queries\n  MT(\"atMediaMaxWidthNested\",\n     \"[def @media] [attribute screen] [keyword and] ([property max-width]: [number 25px]) { [tag foo] { } }\");\n\n  MT(\"tagSelector\",\n     \"[tag foo] { }\");\n\n  MT(\"classSelector\",\n     \"[qualifier .foo-bar_hello] { }\");\n\n  MT(\"idSelector\",\n     \"[builtin #foo] { [error #foo] }\");\n\n  MT(\"tagSelectorUnclosed\",\n     \"[tag foo] { [property margin]: [number 0] } [tag bar] { }\");\n\n  MT(\"tagStringNoQuotes\",\n     \"[tag foo] { [property font-family]: [variable hello] [variable world]; }\");\n\n  MT(\"tagStringDouble\",\n     \"[tag foo] { [property font-family]: [string \\\"hello world\\\"]; }\");\n\n  MT(\"tagStringSingle\",\n     \"[tag foo] { [property font-family]: [string 'hello world']; }\");\n\n  MT(\"tagColorKeyword\",\n     \"[tag foo] {\",\n     \"  [property color]: [keyword black];\",\n     \"  [property color]: [keyword navy];\",\n     \"  [property color]: [keyword yellow];\",\n     \"}\");\n\n  MT(\"tagColorHex3\",\n     \"[tag foo] { [property background]: [atom #fff]; }\");\n\n  MT(\"tagColorHex6\",\n     \"[tag foo] { [property background]: [atom #ffffff]; }\");\n\n  MT(\"tagColorHex4\",\n     \"[tag foo] { [property background]: [atom&error #ffff]; }\");\n\n  MT(\"tagColorHexInvalid\",\n     \"[tag foo] { [property background]: [atom&error #ffg]; }\");\n\n  MT(\"tagNegativeNumber\",\n     \"[tag foo] { [property margin]: [number -5px]; }\");\n\n  MT(\"tagPositiveNumber\",\n     \"[tag foo] { [property padding]: [number 5px]; }\");\n\n  MT(\"tagVendor\",\n     \"[tag foo] { [meta -foo-][property box-sizing]: [meta -foo-][atom border-box]; }\");\n\n  MT(\"tagBogusProperty\",\n     \"[tag foo] { [property&error barhelloworld]: [number 0]; }\");\n\n  MT(\"tagTwoProperties\",\n     \"[tag foo] { [property margin]: [number 0]; [property padding]: [number 0]; }\");\n\n  MT(\"tagTwoPropertiesURL\",\n     \"[tag foo] { [property background]: [atom url]([string //example.com/foo.png]); [property padding]: [number 0]; }\");\n\n  MT(\"commentSGML\",\n     \"[comment <!--comment-->]\");\n\n  MT(\"commentSGML2\",\n     \"[comment <!--comment]\",\n     \"[comment -->] [tag div] {}\");\n\n  MT(\"indent_tagSelector\",\n     \"[tag strong], [tag em] {\",\n     \"  [property background]: [atom rgba](\",\n     \"    [number 255], [number 255], [number 0], [number .2]\",\n     \"  );\",\n     \"}\");\n\n  MT(\"indent_atMedia\",\n     \"[def @media] {\",\n     \"  [tag foo] {\",\n     \"    [property color]:\",\n     \"      [keyword yellow];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"indent_comma\",\n     \"[tag foo] {\",\n     \"  [property font-family]: [variable verdana],\",\n     \"    [atom sans-serif];\",\n     \"}\");\n\n  MT(\"indent_parentheses\",\n     \"[tag foo]:[variable-3 before] {\",\n     \"  [property background]: [atom url](\",\n     \"[string     blahblah]\",\n     \"[string     etc]\",\n     \"[string   ]) [keyword !important];\",\n     \"}\");\n\n  MT(\"font_face\",\n     \"[def @font-face] {\",\n     \"  [property font-family]: [string 'myfont'];\",\n     \"  [error nonsense]: [string 'abc'];\",\n     \"  [property src]: [atom url]([string http://blah]),\",\n     \"    [atom url]([string http://foo]);\",\n     \"}\");\n\n  MT(\"empty_url\",\n     \"[def @import] [tag url]() [tag screen];\");\n\n  MT(\"parens\",\n     \"[qualifier .foo] {\",\n     \"  [property background-image]: [variable fade]([atom #000], [number 20%]);\",\n     \"  [property border-image]: [atom linear-gradient](\",\n     \"    [atom to] [atom bottom],\",\n     \"    [variable fade]([atom #000], [number 20%]) [number 0%],\",\n     \"    [variable fade]([atom #000], [number 20%]) [number 100%]\",\n     \"  );\",\n     \"}\");\n\n  MT(\"css_variable\",\n     \":[variable-3 root] {\",\n     \"  [variable-2 --main-color]: [atom #06c];\",\n     \"}\",\n     \"[tag h1][builtin #foo] {\",\n     \"  [property color]: [atom var]([variable-2 --main-color]);\",\n     \"}\");\n\n  MT(\"supports\",\n     \"[def @supports] ([keyword not] (([property text-align-last]: [atom justify]) [keyword or] ([meta -moz-][property text-align-last]: [atom justify])) {\",\n     \"  [property text-align-last]: [atom justify];\",\n     \"}\");\n\n   MT(\"document\",\n      \"[def @document] [tag url]([string http://blah]),\",\n      \"  [tag url-prefix]([string https://]),\",\n      \"  [tag domain]([string blah.com]),\",\n      \"  [tag regexp]([string \\\".*blah.+\\\"]) {\",\n      \"    [builtin #id] {\",\n      \"      [property background-color]: [keyword white];\",\n      \"    }\",\n      \"    [tag foo] {\",\n      \"      [property font-family]: [variable Verdana], [atom sans-serif];\",\n      \"    }\",\n      \"  }\");\n\n   MT(\"document_url\",\n      \"[def @document] [tag url]([string http://blah]) { [qualifier .class] { } }\");\n\n   MT(\"document_urlPrefix\",\n      \"[def @document] [tag url-prefix]([string https://]) { [builtin #id] { } }\");\n\n   MT(\"document_domain\",\n      \"[def @document] [tag domain]([string blah.com]) { [tag foo] { } }\");\n\n   MT(\"document_regexp\",\n      \"[def @document] [tag regexp]([string \\\".*blah.+\\\"]) { [builtin #id] { } }\");\n\n   MT(\"counter-style\",\n      \"[def @counter-style] [variable binary] {\",\n      \"  [property system]: [atom numeric];\",\n      \"  [property symbols]: [number 0] [number 1];\",\n      \"  [property suffix]: [string \\\".\\\"];\",\n      \"  [property range]: [atom infinite];\",\n      \"  [property speak-as]: [atom numeric];\",\n      \"}\");\n\n   MT(\"counter-style-additive-symbols\",\n      \"[def @counter-style] [variable simple-roman] {\",\n      \"  [property system]: [atom additive];\",\n      \"  [property additive-symbols]: [number 10] [variable X], [number 5] [variable V], [number 1] [variable I];\",\n      \"  [property range]: [number 1] [number 49];\",\n      \"}\");\n\n   MT(\"counter-style-use\",\n      \"[tag ol][qualifier .roman] { [property list-style]: [variable simple-roman]; }\");\n\n   MT(\"counter-style-symbols\",\n      \"[tag ol] { [property list-style]: [atom symbols]([atom cyclic] [string \\\"*\\\"] [string \\\"\\\\2020\\\"] [string \\\"\\\\2021\\\"] [string \\\"\\\\A7\\\"]); }\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/cypher/cypher.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// By the Neo4j Team and contributors.\n// https://github.com/neo4j-contrib/CodeMirror\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n  var wordRegexp = function(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  };\n\n  CodeMirror.defineMode(\"cypher\", function(config) {\n    var tokenBase = function(stream/*, state*/) {\n      var ch = stream.next(), curPunc = null;\n      if (ch === \"\\\"\" || ch === \"'\") {\n        stream.match(/.+?[\"']/);\n        return \"string\";\n      }\n      if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n        curPunc = ch;\n        return \"node\";\n      } else if (ch === \"/\" && stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (operatorChars.test(ch)) {\n        stream.eatWhile(operatorChars);\n        return null;\n      } else {\n        stream.eatWhile(/[_\\w\\d]/);\n        if (stream.eat(\":\")) {\n          stream.eatWhile(/[\\w\\d_\\-]/);\n          return \"atom\";\n        }\n        var word = stream.current();\n        if (funcs.test(word)) return \"builtin\";\n        if (preds.test(word)) return \"def\";\n        if (keywords.test(word)) return \"keyword\";\n        return \"variable\";\n      }\n    };\n    var pushContext = function(state, type, col) {\n      return state.context = {\n        prev: state.context,\n        indent: state.indent,\n        col: col,\n        type: type\n      };\n    };\n    var popContext = function(state) {\n      state.indent = state.context.indent;\n      return state.context = state.context.prev;\n    };\n    var indentUnit = config.indentUnit;\n    var curPunc;\n    var funcs = wordRegexp([\"abs\", \"acos\", \"allShortestPaths\", \"asin\", \"atan\", \"atan2\", \"avg\", \"ceil\", \"coalesce\", \"collect\", \"cos\", \"cot\", \"count\", \"degrees\", \"e\", \"endnode\", \"exp\", \"extract\", \"filter\", \"floor\", \"haversin\", \"head\", \"id\", \"keys\", \"labels\", \"last\", \"left\", \"length\", \"log\", \"log10\", \"lower\", \"ltrim\", \"max\", \"min\", \"node\", \"nodes\", \"percentileCont\", \"percentileDisc\", \"pi\", \"radians\", \"rand\", \"range\", \"reduce\", \"rel\", \"relationship\", \"relationships\", \"replace\", \"right\", \"round\", \"rtrim\", \"shortestPath\", \"sign\", \"sin\", \"split\", \"sqrt\", \"startnode\", \"stdev\", \"stdevp\", \"str\", \"substring\", \"sum\", \"tail\", \"tan\", \"timestamp\", \"toFloat\", \"toInt\", \"trim\", \"type\", \"upper\"]);\n    var preds = wordRegexp([\"all\", \"and\", \"any\", \"has\", \"in\", \"none\", \"not\", \"or\", \"single\", \"xor\"]);\n    var keywords = wordRegexp([\"as\", \"asc\", \"ascending\", \"assert\", \"by\", \"case\", \"commit\", \"constraint\", \"create\", \"csv\", \"cypher\", \"delete\", \"desc\", \"descending\", \"distinct\", \"drop\", \"else\", \"end\", \"explain\", \"false\", \"fieldterminator\", \"foreach\", \"from\", \"headers\", \"in\", \"index\", \"is\", \"limit\", \"load\", \"match\", \"merge\", \"null\", \"on\", \"optional\", \"order\", \"periodic\", \"profile\", \"remove\", \"return\", \"scan\", \"set\", \"skip\", \"start\", \"then\", \"true\", \"union\", \"unique\", \"unwind\", \"using\", \"when\", \"where\", \"with\"]);\n    var operatorChars = /[*+\\-<>=&|~%^]/;\n\n    return {\n      startState: function(/*base*/) {\n        return {\n          tokenize: tokenBase,\n          context: null,\n          indent: 0,\n          col: 0\n        };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) {\n          if (state.context && (state.context.align == null)) {\n            state.context.align = false;\n          }\n          state.indent = stream.indentation();\n        }\n        if (stream.eatSpace()) {\n          return null;\n        }\n        var style = state.tokenize(stream, state);\n        if (style !== \"comment\" && state.context && (state.context.align == null) && state.context.type !== \"pattern\") {\n          state.context.align = true;\n        }\n        if (curPunc === \"(\") {\n          pushContext(state, \")\", stream.column());\n        } else if (curPunc === \"[\") {\n          pushContext(state, \"]\", stream.column());\n        } else if (curPunc === \"{\") {\n          pushContext(state, \"}\", stream.column());\n        } else if (/[\\]\\}\\)]/.test(curPunc)) {\n          while (state.context && state.context.type === \"pattern\") {\n            popContext(state);\n          }\n          if (state.context && curPunc === state.context.type) {\n            popContext(state);\n          }\n        } else if (curPunc === \".\" && state.context && state.context.type === \"pattern\") {\n          popContext(state);\n        } else if (/atom|string|variable/.test(style) && state.context) {\n          if (/[\\}\\]]/.test(state.context.type)) {\n            pushContext(state, \"pattern\", stream.column());\n          } else if (state.context.type === \"pattern\" && !state.context.align) {\n            state.context.align = true;\n            state.context.col = stream.column();\n          }\n        }\n        return style;\n      },\n      indent: function(state, textAfter) {\n        var firstChar = textAfter && textAfter.charAt(0);\n        var context = state.context;\n        if (/[\\]\\}]/.test(firstChar)) {\n          while (context && context.type === \"pattern\") {\n            context = context.prev;\n          }\n        }\n        var closing = context && firstChar === context.type;\n        if (!context) return 0;\n        if (context.type === \"keywords\") return CodeMirror.commands.newlineAndIndent;\n        if (context.align) return context.col + (closing ? 0 : 1);\n        return context.indent + (closing ? 0 : indentUnit);\n      }\n    };\n  });\n\n  CodeMirror.modeExtensions[\"cypher\"] = {\n    autoFormatLineBreaks: function(text) {\n      var i, lines, reProcessedPortion;\n      var lines = text.split(\"\\n\");\n      var reProcessedPortion = /\\s+\\b(return|where|order by|match|with|skip|limit|create|delete|set)\\b\\s/g;\n      for (var i = 0; i < lines.length; i++)\n        lines[i] = lines[i].replace(reProcessedPortion, \" \\n$1 \").trim();\n      return lines.join(\"\\n\");\n    }\n  };\n\n  CodeMirror.defineMIME(\"application/x-cypher-query\", \"cypher\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/cypher/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Cypher Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\" />\n<link rel=\"stylesheet\" href=\"../../theme/neo.css\" />\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"cypher.js\"></script>\n<style>\n.CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n}\n        </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Cypher Mode for CodeMirror</a>\n  </ul>\n</div>\n\n<article>\n<h2>Cypher Mode for CodeMirror</h2>\n<form>\n            <textarea id=\"code\" name=\"code\">// Cypher Mode for CodeMirror, using the neo theme\nMATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)\nWHERE NOT (joe)-[:knows]-(friend_of_friend)\nRETURN friend_of_friend.name, COUNT(*)\nORDER BY COUNT(*) DESC , friend_of_friend.name\n</textarea>\n            </form>\n            <p><strong>MIME types defined:</strong> \n            <code><a href=\"?mime=application/x-cypher-query\">application/x-cypher-query</a></code>\n        </p>\n<script>\nwindow.onload = function() {\n  var mime = 'application/x-cypher-query';\n  // get mime type\n  if (window.location.href.indexOf('mime=') > -1) {\n    mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);\n  }\n  window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: mime,\n    indentWithTabs: true,\n    smartIndent: true,\n    lineNumbers: true,\n    matchBrackets : true,\n    autofocus: true,\n    theme: 'neo'\n  });\n};\n</script>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/d/d.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"d\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      keywords = parserConfig.keywords || {},\n      builtin = parserConfig.builtin || {},\n      blockKeywords = parserConfig.blockKeywords || {},\n      atoms = parserConfig.atoms || {},\n      hooks = parserConfig.hooks || {},\n      multiLineStrings = parserConfig.multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"+\")) {\n        state.tokenize = tokenComment;\n        return tokenNestedComment(stream, state);\n      }\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenNestedComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"+\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    if (state.context && state.context.type == \"statement\")\n      indent = state.context.indented;\n    return state.context = new Context(indent, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\" || curPunc == \",\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != ';') || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var blockKeywords = \"body catch class do else enum for foreach foreach_reverse if in interface mixin \" +\n                      \"out scope struct switch try union unittest version while with\";\n\n  CodeMirror.defineMIME(\"text/x-d\", {\n    name: \"d\",\n    keywords: words(\"abstract alias align asm assert auto break case cast cdouble cent cfloat const continue \" +\n                    \"debug default delegate delete deprecated export extern final finally function goto immutable \" +\n                    \"import inout invariant is lazy macro module new nothrow override package pragma private \" +\n                    \"protected public pure ref return shared short static super synchronized template this \" +\n                    \"throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters \" +\n                    blockKeywords),\n    blockKeywords: words(blockKeywords),\n    builtin: words(\"bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte \" +\n                   \"ucent uint ulong ushort wchar wstring void size_t sizediff_t\"),\n    atoms: words(\"exit failure success true false null\"),\n    hooks: {\n      \"@\": function(stream, _state) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/d/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: D mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"d.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">D</a>\n  </ul>\n</div>\n\n<article>\n<h2>D mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* D demo code // copied from phobos/sd/metastrings.d */\n// Written in the D programming language.\n\n/**\nTemplates with which to do compile-time manipulation of strings.\n\nMacros:\n WIKI = Phobos/StdMetastrings\n\nCopyright: Copyright Digital Mars 2007 - 2009.\nLicense:   <a href=\"http://www.boost.org/LICENSE_1_0.txt\">Boost License 1.0</a>.\nAuthors:   $(WEB digitalmars.com, Walter Bright),\n           Don Clugston\nSource:    $(PHOBOSSRC std/_metastrings.d)\n*/\n/*\n         Copyright Digital Mars 2007 - 2009.\nDistributed under the Boost Software License, Version 1.0.\n   (See accompanying file LICENSE_1_0.txt or copy at\n         http://www.boost.org/LICENSE_1_0.txt)\n */\nmodule std.metastrings;\n\n/**\nFormats constants into a string at compile time.  Analogous to $(XREF\nstring,format).\n\nParameters:\n\nA = tuple of constants, which can be strings, characters, or integral\n    values.\n\nFormats:\n *    The formats supported are %s for strings, and %%\n *    for the % character.\nExample:\n---\nimport std.metastrings;\nimport std.stdio;\n\nvoid main()\n{\n  string s = Format!(\"Arg %s = %s\", \"foo\", 27);\n  writefln(s); // \"Arg foo = 27\"\n}\n * ---\n */\n\ntemplate Format(A...)\n{\n    static if (A.length == 0)\n        enum Format = \"\";\n    else static if (is(typeof(A[0]) : const(char)[]))\n        enum Format = FormatString!(A[0], A[1..$]);\n    else\n        enum Format = toStringNow!(A[0]) ~ Format!(A[1..$]);\n}\n\ntemplate FormatString(const(char)[] F, A...)\n{\n    static if (F.length == 0)\n        enum FormatString = Format!(A);\n    else static if (F.length == 1)\n        enum FormatString = F[0] ~ Format!(A);\n    else static if (F[0..2] == \"%s\")\n        enum FormatString\n            = toStringNow!(A[0]) ~ FormatString!(F[2..$],A[1..$]);\n    else static if (F[0..2] == \"%%\")\n        enum FormatString = \"%\" ~ FormatString!(F[2..$],A);\n    else\n    {\n        static assert(F[0] != '%', \"unrecognized format %\" ~ F[1]);\n        enum FormatString = F[0] ~ FormatString!(F[1..$],A);\n    }\n}\n\nunittest\n{\n    auto s = Format!(\"hel%slo\", \"world\", -138, 'c', true);\n    assert(s == \"helworldlo-138ctrue\", \"[\" ~ s ~ \"]\");\n}\n\n/**\n * Convert constant argument to a string.\n */\n\ntemplate toStringNow(ulong v)\n{\n    static if (v < 10)\n        enum toStringNow = \"\" ~ cast(char)(v + '0');\n    else\n        enum toStringNow = toStringNow!(v / 10) ~ toStringNow!(v % 10);\n}\n\nunittest\n{\n    static assert(toStringNow!(1uL << 62) == \"4611686018427387904\");\n}\n\n/// ditto\ntemplate toStringNow(long v)\n{\n    static if (v < 0)\n        enum toStringNow = \"-\" ~ toStringNow!(cast(ulong) -v);\n    else\n        enum toStringNow = toStringNow!(cast(ulong) v);\n}\n\nunittest\n{\n    static assert(toStringNow!(0x100000000) == \"4294967296\");\n    static assert(toStringNow!(-138L) == \"-138\");\n}\n\n/// ditto\ntemplate toStringNow(uint U)\n{\n    enum toStringNow = toStringNow!(cast(ulong)U);\n}\n\n/// ditto\ntemplate toStringNow(int I)\n{\n    enum toStringNow = toStringNow!(cast(long)I);\n}\n\n/// ditto\ntemplate toStringNow(bool B)\n{\n    enum toStringNow = B ? \"true\" : \"false\";\n}\n\n/// ditto\ntemplate toStringNow(string S)\n{\n    enum toStringNow = S;\n}\n\n/// ditto\ntemplate toStringNow(char C)\n{\n    enum toStringNow = \"\" ~ C;\n}\n\n\n/********\n * Parse unsigned integer literal from the start of string s.\n * returns:\n *    .value = the integer literal as a string,\n *    .rest = the string following the integer literal\n * Otherwise:\n *    .value = null,\n *    .rest = s\n */\n\ntemplate parseUinteger(const(char)[] s)\n{\n    static if (s.length == 0)\n    {\n        enum value = \"\";\n        enum rest = \"\";\n    }\n    else static if (s[0] >= '0' && s[0] <= '9')\n    {\n        enum value = s[0] ~ parseUinteger!(s[1..$]).value;\n        enum rest = parseUinteger!(s[1..$]).rest;\n    }\n    else\n    {\n        enum value = \"\";\n        enum rest = s;\n    }\n}\n\n/********\nParse integer literal optionally preceded by $(D '-') from the start\nof string $(D s).\n\nReturns:\n   .value = the integer literal as a string,\n   .rest = the string following the integer literal\n\nOtherwise:\n   .value = null,\n   .rest = s\n*/\n\ntemplate parseInteger(const(char)[] s)\n{\n    static if (s.length == 0)\n    {\n        enum value = \"\";\n        enum rest = \"\";\n    }\n    else static if (s[0] >= '0' && s[0] <= '9')\n    {\n        enum value = s[0] ~ parseUinteger!(s[1..$]).value;\n        enum rest = parseUinteger!(s[1..$]).rest;\n    }\n    else static if (s.length >= 2 &&\n            s[0] == '-' && s[1] >= '0' && s[1] <= '9')\n    {\n        enum value = s[0..2] ~ parseUinteger!(s[2..$]).value;\n        enum rest = parseUinteger!(s[2..$]).rest;\n    }\n    else\n    {\n        enum value = \"\";\n        enum rest = s;\n    }\n}\n\nunittest\n{\n    assert(parseUinteger!(\"1234abc\").value == \"1234\");\n    assert(parseUinteger!(\"1234abc\").rest == \"abc\");\n    assert(parseInteger!(\"-1234abc\").value == \"-1234\");\n    assert(parseInteger!(\"-1234abc\").rest == \"abc\");\n}\n\n/**\nDeprecated aliases held for backward compatibility.\n*/\ndeprecated alias toStringNow ToString;\n/// Ditto\ndeprecated alias parseUinteger ParseUinteger;\n/// Ditto\ndeprecated alias parseUinteger ParseInteger;\n\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        indentUnit: 4,\n        mode: \"text/x-d\"\n      });\n    </script>\n\n    <p>Simple mode that handle D-Syntax (<a href=\"http://www.dlang.org\">DLang Homepage</a>).</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-d</code>\n    .</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dart/dart.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var keywords = (\"this super static final const abstract class extends external factory \" +\n    \"implements get native operator set typedef with enum throw rethrow \" +\n    \"assert break case continue default in return new deferred async await \" +\n    \"try catch finally do else for if switch while import library export \" +\n    \"part of show hide is\").split(\" \");\n  var blockKeywords = \"try catch finally do else for if switch while\".split(\" \");\n  var atoms = \"true false null\".split(\" \");\n  var builtins = \"void bool num int double dynamic var String\".split(\" \");\n\n  function set(words) {\n    var obj = {};\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  CodeMirror.defineMIME(\"application/dart\", {\n    name: \"clike\",\n    keywords: set(keywords),\n    multiLineStrings: true,\n    blockKeywords: set(blockKeywords),\n    builtin: set(builtins),\n    atoms: set(atoms),\n    hooks: {\n      \"@\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"meta\";\n      }\n    }\n  });\n\n  CodeMirror.registerHelper(\"hintWords\", \"application/dart\", keywords.concat(atoms).concat(builtins));\n\n  // This is needed to make loading through meta.js work.\n  CodeMirror.defineMode(\"dart\", function(conf) {\n    return CodeMirror.getMode(conf, \"application/dart\");\n  }, \"clike\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dart/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dart mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"dart.js\"></script>\n<style>.CodeMirror {border: 1px solid #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dart</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dart mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\nimport 'dart:math' show Random;\n\nvoid main() {\n  print(new Die(n: 12).roll());\n}\n\n// Define a class.\nclass Die {\n  // Define a class variable.\n  static Random shaker = new Random();\n\n  // Define instance variables.\n  int sides, value;\n\n  // Define a method using shorthand syntax.\n  String toString() => '$value';\n\n  // Define a constructor.\n  Die({int n: 6}) {\n    if (4 <= n && n <= 20) {\n      sides = n;\n    } else {\n      // Support for errors and exceptions.\n      throw new ArgumentError(/* */);\n    }\n  }\n\n  // Define an instance method.\n  int roll() {\n    return value = shaker.nextInt(sides) + 1;\n  }\n}\n</textarea>\n</form>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    mode: \"application/dart\"\n  });\n</script>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/diff/diff.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"diff\", function() {\n\n  var TOKEN_NAMES = {\n    '+': 'positive',\n    '-': 'negative',\n    '@': 'meta'\n  };\n\n  return {\n    token: function(stream) {\n      var tw_pos = stream.string.search(/[\\t ]+?$/);\n\n      if (!stream.sol() || tw_pos === 0) {\n        stream.skipToEnd();\n        return (\"error \" + (\n          TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, '');\n      }\n\n      var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd();\n\n      if (tw_pos === -1) {\n        stream.skipToEnd();\n      } else {\n        stream.pos = tw_pos;\n      }\n\n      return token_name;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-diff\", \"diff\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/diff/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Diff mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"diff.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}\n      span.cm-meta {color: #a0b !important;}\n      span.cm-error { background-color: black; opacity: 0.4;}\n      span.cm-error.cm-string { background-color: red; }\n      span.cm-error.cm-tag { background-color: #2b2; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Diff</a>\n  </ul>\n</div>\n\n<article>\n<h2>Diff mode</h2>\n<form><textarea id=\"code\" name=\"code\">\ndiff --git a/index.html b/index.html\nindex c1d9156..7764744 100644\n--- a/index.html\n+++ b/index.html\n@@ -95,7 +95,8 @@ StringStream.prototype = {\n     <script>\n       var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n         lineNumbers: true,\n-        autoMatchBrackets: true\n+        autoMatchBrackets: true,\n+      onGutterClick: function(x){console.log(x);}\n       });\n     </script>\n   </body>\ndiff --git a/lib/codemirror.js b/lib/codemirror.js\nindex 04646a9..9a39cc7 100644\n--- a/lib/codemirror.js\n+++ b/lib/codemirror.js\n@@ -399,10 +399,16 @@ var CodeMirror = (function() {\n     }\n \n     function onMouseDown(e) {\n-      var start = posFromMouse(e), last = start;    \n+      var start = posFromMouse(e), last = start, target = e.target();\n       if (!start) return;\n       setCursor(start.line, start.ch, false);\n       if (e.button() != 1) return;\n+      if (target.parentNode == gutter) {    \n+        if (options.onGutterClick)\n+          options.onGutterClick(indexOf(gutter.childNodes, target) + showingFrom);\n+        return;\n+      }\n+\n       if (!focused) onFocus();\n \n       e.stop();\n@@ -808,7 +814,7 @@ var CodeMirror = (function() {\n       for (var i = showingFrom; i < showingTo; ++i) {\n         var marker = lines[i].gutterMarker;\n         if (marker) html.push('<div class=\"' + marker.style + '\">' + htmlEscape(marker.text) + '</div>');\n-        else html.push(\"<div>\" + (options.lineNumbers ? i + 1 : \"\\u00a0\") + \"</div>\");\n+        else html.push(\"<div>\" + (options.lineNumbers ? i + options.firstLineNumber : \"\\u00a0\") + \"</div>\");\n       }\n       gutter.style.display = \"none\"; // TODO test whether this actually helps\n       gutter.innerHTML = html.join(\"\");\n@@ -1371,10 +1377,8 @@ var CodeMirror = (function() {\n         if (option == \"parser\") setParser(value);\n         else if (option === \"lineNumbers\") setLineNumbers(value);\n         else if (option === \"gutter\") setGutter(value);\n-        else if (option === \"readOnly\") options.readOnly = value;\n-        else if (option === \"indentUnit\") {options.indentUnit = indentUnit = value; setParser(options.parser);}\n-        else if (/^(?:enterMode|tabMode|indentWithTabs|readOnly|autoMatchBrackets|undoDepth)$/.test(option)) options[option] = value;\n-        else throw new Error(\"Can't set option \" + option);\n+        else if (option === \"indentUnit\") {options.indentUnit = value; setParser(options.parser);}\n+        else options[option] = value;\n       },\n       cursorCoords: cursorCoords,\n       undo: operation(undo),\n@@ -1402,7 +1406,8 @@ var CodeMirror = (function() {\n       replaceRange: operation(replaceRange),\n \n       operation: function(f){return operation(f)();},\n-      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);}\n+      refresh: function(){updateDisplay([{from: 0, to: lines.length}]);},\n+      getInputField: function(){return input;}\n     };\n     return instance;\n   }\n@@ -1420,6 +1425,7 @@ var CodeMirror = (function() {\n     readOnly: false,\n     onChange: null,\n     onCursorActivity: null,\n+    onGutterClick: null,\n     autoMatchBrackets: false,\n     workTime: 200,\n     workDelay: 300,\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-diff</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/django/django.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"django:inner\", function() {\n    var keywords = [\"block\", \"endblock\", \"for\", \"endfor\", \"in\", \"true\", \"false\",\n                    \"loop\", \"none\", \"self\", \"super\", \"if\", \"endif\", \"as\", \"not\", \"and\",\n                    \"else\", \"import\", \"with\", \"endwith\", \"without\", \"context\", \"ifequal\", \"endifequal\",\n                    \"ifnotequal\", \"endifnotequal\", \"extends\", \"include\", \"load\", \"length\", \"comment\",\n                    \"endcomment\", \"empty\"];\n    keywords = new RegExp(\"^((\" + keywords.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      stream.eatWhile(/[^\\{]/);\n      var ch = stream.next();\n      if (ch == \"{\") {\n        if (ch = stream.eat(/\\{|%|#/)) {\n          state.tokenize = inTag(ch);\n          return \"tag\";\n        }\n      }\n    }\n    function inTag (close) {\n      if (close == \"{\") {\n        close = \"}\";\n      }\n      return function (stream, state) {\n        var ch = stream.next();\n        if ((ch == close) && stream.eat(\"}\")) {\n          state.tokenize = tokenBase;\n          return \"tag\";\n        }\n        if (stream.match(keywords)) {\n          return \"keyword\";\n        }\n        return close == \"#\" ? \"comment\" : \"string\";\n      };\n    }\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"django\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var djangoInner = CodeMirror.getMode(config, \"django:inner\");\n    return CodeMirror.overlayMode(htmlBase, djangoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-django\", \"django\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/django/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Django template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"django.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Django</a>\n  </ul>\n</div>\n\n<article>\n<h2>Django template mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<!doctype html>\n<html>\n    <head>\n        <title>My Django web application</title>\n    </head>\n    <body>\n        <h1>\n            {{ page.title }}\n        </h1>\n        <ul class=\"my-list\">\n            {% for item in items %}\n                <li>{% item.name %}</li>\n            {% empty %}\n                <li>You have no items in your list.</li>\n            {% endfor %}\n        </ul>\n    </body>\n</html>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"django\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for HTML with embedded Django template markup.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-django</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dockerfile/dockerfile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../../addon/mode/simple\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  // Collect all Dockerfile directives\n  var instructions = [\"from\", \"maintainer\", \"run\", \"cmd\", \"expose\", \"env\",\n                      \"add\", \"copy\", \"entrypoint\", \"volume\", \"user\",\n                      \"workdir\", \"onbuild\"],\n      instructionRegex = \"(\" + instructions.join('|') + \")\",\n      instructionOnlyLine = new RegExp(instructionRegex + \"\\\\s*$\", \"i\"),\n      instructionWithArguments = new RegExp(instructionRegex + \"(\\\\s+)\", \"i\");\n\n  CodeMirror.defineSimpleMode(\"dockerfile\", {\n    start: [\n      // Block comment: This is a line starting with a comment\n      {\n        regex: /#.*$/,\n        token: \"comment\"\n      },\n      // Highlight an instruction without any arguments (for convenience)\n      {\n        regex: instructionOnlyLine,\n        token: \"variable-2\"\n      },\n      // Highlight an instruction followed by arguments\n      {\n        regex: instructionWithArguments,\n        token: [\"variable-2\", null],\n        next: \"arguments\"\n      },\n      {\n        regex: /./,\n        token: null\n      }\n    ],\n    arguments: [\n      {\n        // Line comment without instruction arguments is an error\n        regex: /#.*$/,\n        token: \"error\",\n        next: \"start\"\n      },\n      {\n        regex: /[^#]+\\\\$/,\n        token: null\n      },\n      {\n        // Match everything except for the inline comment\n        regex: /[^#]+/,\n        token: null,\n        next: \"start\"\n      },\n      {\n        regex: /$/,\n        token: null,\n        next: \"start\"\n      },\n      // Fail safe return to start\n      {\n        token: null,\n        next: \"start\"\n      }\n    ]\n  });\n\n  CodeMirror.defineMIME(\"text/x-dockerfile\", \"dockerfile\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dockerfile/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dockerfile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/simple.js\"></script>\n<script src=\"dockerfile.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dockerfile</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dockerfile mode</h2>\n<form><textarea id=\"code\" name=\"code\"># Install Ghost blogging platform and run development environment\n#\n# VERSION 1.0.0\n\nFROM ubuntu:12.10\nMAINTAINER Amer Grgic \"amer@livebyt.es\"\nWORKDIR /data/ghost\n\n# Install dependencies for nginx installation\nRUN apt-get update\nRUN apt-get install -y python g++ make software-properties-common --force-yes\nRUN add-apt-repository ppa:chris-lea/node.js\nRUN apt-get update\n# Install unzip\nRUN apt-get install -y unzip\n# Install curl\nRUN apt-get install -y curl\n# Install nodejs & npm\nRUN apt-get install -y rlwrap\nRUN apt-get install -y nodejs \n# Download Ghost v0.4.1\nRUN curl -L https://ghost.org/zip/ghost-latest.zip -o /tmp/ghost.zip\n# Unzip Ghost zip to /data/ghost\nRUN unzip -uo /tmp/ghost.zip -d /data/ghost\n# Add custom config js to /data/ghost\nADD ./config.example.js /data/ghost/config.js\n# Install Ghost with NPM\nRUN cd /data/ghost/ && npm install --production\n# Expose port 2368\nEXPOSE 2368\n# Run Ghost\nCMD [\"npm\",\"start\"]\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"dockerfile\"\n      });\n    </script>\n\n    <p>Dockerfile syntax highlighting for CodeMirror. Depends on\n    the <a href=\"../../demo/simplemode.html\">simplemode</a> addon.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-dockerfile</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dtd/dtd.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n  DTD mode\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"dtd\", function(config) {\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch == \"<\" && stream.eat(\"!\") ) {\n      if (stream.eatWhile(/[\\-]/)) {\n        state.tokenize = tokenSGMLComment;\n        return tokenSGMLComment(stream, state);\n      } else if (stream.eatWhile(/[\\w]/)) return ret(\"keyword\", \"doindent\");\n    } else if (ch == \"<\" && stream.eat(\"?\")) { //xml declaration\n      state.tokenize = inBlock(\"meta\", \"?>\");\n      return ret(\"meta\", ch);\n    } else if (ch == \"#\" && stream.eatWhile(/[\\w]/)) return ret(\"atom\", \"tag\");\n    else if (ch == \"|\") return ret(\"keyword\", \"seperator\");\n    else if (ch.match(/[\\(\\)\\[\\]\\-\\.,\\+\\?>]/)) return ret(null, ch);//if(ch === \">\") return ret(null, \"endtag\"); else\n    else if (ch.match(/[\\[\\]]/)) return ret(\"rule\", ch);\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (stream.eatWhile(/[a-zA-Z\\?\\+\\d]/)) {\n      var sc = stream.current();\n      if( sc.substr(sc.length-1,sc.length).match(/\\?|\\+/) !== null )stream.backUp(1);\n      return ret(\"tag\", \"tag\");\n    } else if (ch == \"%\" || ch == \"*\" ) return ret(\"number\", \"number\");\n    else {\n      stream.eatWhile(/[\\w\\\\\\-_%.{,]/);\n      return ret(null, null);\n    }\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return ret(\"string\", \"tag\");\n    };\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (stream.current() == \"[\" || type === \"doindent\" || type == \"[\") state.stack.push(\"rule\");\n      else if (type === \"endtag\") state.stack[state.stack.length-1] = \"endtag\";\n      else if (stream.current() == \"]\" || type == \"]\" || (type == \">\" && context == \"rule\")) state.stack.pop();\n      else if (type == \"[\") state.stack.push(\"[\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n\n      if( textAfter.match(/\\]\\s+|\\]/) )n=n-1;\n      else if(textAfter.substr(textAfter.length-1, textAfter.length) === \">\"){\n        if(textAfter.substr(0,1) === \"<\")n;\n        else if( type == \"doindent\" && textAfter.length > 1 )n;\n        else if( type == \"doindent\")n--;\n        else if( type == \">\" && textAfter.length > 1)n;\n        else if( type == \"tag\" && textAfter !== \">\")n;\n        else if( type == \"tag\" && state.stack[state.stack.length-1] == \"rule\")n--;\n        else if( type == \"tag\")n++;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\" && type === \">\")n--;\n        else if( textAfter === \">\" && state.stack[state.stack.length-1] == \"rule\")n;\n        else if( textAfter.substr(0,1) !== \"<\" && textAfter.substr(0,1) === \">\" )n=n-1;\n        else if( textAfter === \">\")n;\n        else n=n-1;\n        //over rule them all\n        if(type == null || type == \"]\")n--;\n      }\n\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"]>\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/xml-dtd\", \"dtd\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dtd/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: DTD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"dtd.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">DTD</a>\n  </ul>\n</div>\n\n<article>\n<h2>DTD mode</h2>\n<form><textarea id=\"code\" name=\"code\"><?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!ATTLIST title\n  xmlns\tCDATA\t#FIXED\t\"http://docbook.org/ns/docbook\"\n  role\tCDATA\t#IMPLIED\n  %db.common.attributes;\n  %db.common.linking.attributes;\n>\n\n<!--\n  Try: http://docbook.org/xml/5.0/dtd/docbook.dtd\n-->\n\n<!DOCTYPE xsl:stylesheet\n  [\n    <!ENTITY nbsp   \"&amp;#160;\">\n    <!ENTITY copy   \"&amp;#169;\">\n    <!ENTITY reg    \"&amp;#174;\">\n    <!ENTITY trade  \"&amp;#8482;\">\n    <!ENTITY mdash  \"&amp;#8212;\">\n    <!ENTITY ldquo  \"&amp;#8220;\">\n    <!ENTITY rdquo  \"&amp;#8221;\">\n    <!ENTITY pound  \"&amp;#163;\">\n    <!ENTITY yen    \"&amp;#165;\">\n    <!ENTITY euro   \"&amp;#8364;\">\n    <!ENTITY mathml \"http://www.w3.org/1998/Math/MathML\">\n  ]\n>\n\n<!ELEMENT title (#PCDATA|inlinemediaobject|remark|superscript|subscript|xref|link|olink|anchor|biblioref|alt|annotation|indexterm|abbrev|acronym|date|emphasis|footnote|footnoteref|foreignphrase|phrase|quote|wordasword|firstterm|glossterm|coref|trademark|productnumber|productname|database|application|hardware|citation|citerefentry|citetitle|citebiblioid|author|person|personname|org|orgname|editor|jobtitle|replaceable|package|parameter|termdef|nonterminal|systemitem|option|optional|property|inlineequation|tag|markup|token|symbol|literal|code|constant|email|uri|guiicon|guibutton|guimenuitem|guimenu|guisubmenu|guilabel|menuchoice|mousebutton|keycombo|keycap|keycode|keysym|shortcut|accel|prompt|envar|filename|command|computeroutput|userinput|function|varname|returnvalue|type|classname|exceptionname|interfacename|methodname|modifier|initializer|ooclass|ooexception|oointerface|errorcode|errortext|errorname|errortype)*>\n\n<!ENTITY % db.common.attributes \"\n  xml:id\tID\t#IMPLIED\n  version\tCDATA\t#IMPLIED\n  xml:lang\tCDATA\t#IMPLIED\n  xml:base\tCDATA\t#IMPLIED\n  remap\tCDATA\t#IMPLIED\n  xreflabel\tCDATA\t#IMPLIED\n  revisionflag\t(changed|added|deleted|off)\t#IMPLIED\n  dir\t(ltr|rtl|lro|rlo)\t#IMPLIED\n  arch\tCDATA\t#IMPLIED\n  audience\tCDATA\t#IMPLIED\n  condition\tCDATA\t#IMPLIED\n  conformance\tCDATA\t#IMPLIED\n  os\tCDATA\t#IMPLIED\n  revision\tCDATA\t#IMPLIED\n  security\tCDATA\t#IMPLIED\n  userlevel\tCDATA\t#IMPLIED\n  vendor\tCDATA\t#IMPLIED\n  wordsize\tCDATA\t#IMPLIED\n  annotations\tCDATA\t#IMPLIED\n\n\"></textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"dtd\", alignCDATA: true},\n        lineNumbers: true,\n        lineWrapping: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/xml-dtd</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dylan/dylan.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"dylan\", function(_config) {\n  // Words\n  var words = {\n    // Words that introduce unnamed definitions like \"define interface\"\n    unnamedDefinition: [\"interface\"],\n\n    // Words that introduce simple named definitions like \"define library\"\n    namedDefinition: [\"module\", \"library\", \"macro\",\n                      \"C-struct\", \"C-union\",\n                      \"C-function\", \"C-callable-wrapper\"\n                     ],\n\n    // Words that introduce type definitions like \"define class\".\n    // These are also parameterized like \"define method\" and are\n    // appended to otherParameterizedDefinitionWords\n    typeParameterizedDefinition: [\"class\", \"C-subtype\", \"C-mapped-subtype\"],\n\n    // Words that introduce trickier definitions like \"define method\".\n    // These require special definitions to be added to startExpressions\n    otherParameterizedDefinition: [\"method\", \"function\",\n                                   \"C-variable\", \"C-address\"\n                                  ],\n\n    // Words that introduce module constant definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    constantSimpleDefinition: [\"constant\"],\n\n    // Words that introduce module variable definitions.\n    // These must also be simple definitions and are\n    // appended to otherSimpleDefinitionWords\n    variableSimpleDefinition: [\"variable\"],\n\n    // Other words that introduce simple definitions\n    // (without implicit bodies).\n    otherSimpleDefinition: [\"generic\", \"domain\",\n                            \"C-pointer-type\",\n                            \"table\"\n                           ],\n\n    // Words that begin statements with implicit bodies.\n    statement: [\"if\", \"block\", \"begin\", \"method\", \"case\",\n                \"for\", \"select\", \"when\", \"unless\", \"until\",\n                \"while\", \"iterate\", \"profiling\", \"dynamic-bind\"\n               ],\n\n    // Patterns that act as separators in compound statements.\n    // This may include any general pattern that must be indented\n    // specially.\n    separator: [\"finally\", \"exception\", \"cleanup\", \"else\",\n                \"elseif\", \"afterwards\"\n               ],\n\n    // Keywords that do not require special indentation handling,\n    // but which should be highlighted\n    other: [\"above\", \"below\", \"by\", \"from\", \"handler\", \"in\",\n            \"instance\", \"let\", \"local\", \"otherwise\", \"slot\",\n            \"subclass\", \"then\", \"to\", \"keyed-by\", \"virtual\"\n           ],\n\n    // Condition signaling function calls\n    signalingCalls: [\"signal\", \"error\", \"cerror\",\n                     \"break\", \"check-type\", \"abort\"\n                    ]\n  };\n\n  words[\"otherDefinition\"] =\n    words[\"unnamedDefinition\"]\n    .concat(words[\"namedDefinition\"])\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"definition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherDefinition\"]);\n\n  words[\"parameterizedDefinition\"] =\n    words[\"typeParameterizedDefinition\"]\n    .concat(words[\"otherParameterizedDefinition\"]);\n\n  words[\"simpleDefinition\"] =\n    words[\"constantSimpleDefinition\"]\n    .concat(words[\"variableSimpleDefinition\"])\n    .concat(words[\"otherSimpleDefinition\"]);\n\n  words[\"keyword\"] =\n    words[\"statement\"]\n    .concat(words[\"separator\"])\n    .concat(words[\"other\"]);\n\n  // Patterns\n  var symbolPattern = \"[-_a-zA-Z?!*@<>$%]+\";\n  var symbol = new RegExp(\"^\" + symbolPattern);\n  var patterns = {\n    // Symbols with special syntax\n    symbolKeyword: symbolPattern + \":\",\n    symbolClass: \"<\" + symbolPattern + \">\",\n    symbolGlobal: \"\\\\*\" + symbolPattern + \"\\\\*\",\n    symbolConstant: \"\\\\$\" + symbolPattern\n  };\n  var patternStyles = {\n    symbolKeyword: \"atom\",\n    symbolClass: \"tag\",\n    symbolGlobal: \"variable-2\",\n    symbolConstant: \"variable-3\"\n  };\n\n  // Compile all patterns to regular expressions\n  for (var patternName in patterns)\n    if (patterns.hasOwnProperty(patternName))\n      patterns[patternName] = new RegExp(\"^\" + patterns[patternName]);\n\n  // Names beginning \"with-\" and \"without-\" are commonly\n  // used as statement macro\n  patterns[\"keyword\"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];\n\n  var styles = {};\n  styles[\"keyword\"] = \"keyword\";\n  styles[\"definition\"] = \"def\";\n  styles[\"simpleDefinition\"] = \"def\";\n  styles[\"signalingCalls\"] = \"builtin\";\n\n  // protected words lookup table\n  var wordLookup = {};\n  var styleLookup = {};\n\n  [\n    \"keyword\",\n    \"definition\",\n    \"simpleDefinition\",\n    \"signalingCalls\"\n  ].forEach(function(type) {\n    words[type].forEach(function(word) {\n      wordLookup[word] = type;\n      styleLookup[word] = styles[type];\n    });\n  });\n\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  var type, content;\n\n  function ret(_type, style, _content) {\n    type = _type;\n    content = _content;\n    return style;\n  }\n\n  function tokenBase(stream, state) {\n    // String\n    var ch = stream.peek();\n    if (ch == \"'\" || ch == '\"') {\n      stream.next();\n      return chain(stream, state, tokenString(ch, \"string\", \"string\"));\n    }\n    // Comment\n    else if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else {\n        stream.skipTo(\" \");\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // Decimal\n    else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:e[+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    }\n    // Hash\n    else if (ch == \"#\") {\n      stream.next();\n      // Symbol with string syntax\n      ch = stream.peek();\n      if (ch == '\"') {\n        stream.next();\n        return chain(stream, state, tokenString('\"', \"symbol\", \"string-2\"));\n      }\n      // Binary number\n      else if (ch == \"b\") {\n        stream.next();\n        stream.eatWhile(/[01]/);\n        return ret(\"number\", \"number\");\n      }\n      // Hex number\n      else if (ch == \"x\") {\n        stream.next();\n        stream.eatWhile(/[\\da-f]/i);\n        return ret(\"number\", \"number\");\n      }\n      // Octal number\n      else if (ch == \"o\") {\n        stream.next();\n        stream.eatWhile(/[0-7]/);\n        return ret(\"number\", \"number\");\n      }\n      // Hash symbol\n      else {\n        stream.eatWhile(/[-a-zA-Z]/);\n        return ret(\"hash\", \"keyword\");\n      }\n    } else if (stream.match(\"end\")) {\n      return ret(\"end\", \"keyword\");\n    }\n    for (var name in patterns) {\n      if (patterns.hasOwnProperty(name)) {\n        var pattern = patterns[name];\n        if ((pattern instanceof Array && pattern.some(function(p) {\n          return stream.match(p);\n        })) || stream.match(pattern))\n          return ret(name, patternStyles[name], stream.current());\n      }\n    }\n    if (stream.match(\"define\")) {\n      return ret(\"definition\", \"def\");\n    } else {\n      stream.eatWhile(/[\\w\\-]/);\n      // Keyword\n      if (wordLookup[stream.current()]) {\n        return ret(wordLookup[stream.current()], styleLookup[stream.current()], stream.current());\n      } else if (stream.current().match(symbol)) {\n        return ret(\"variable\", \"variable\");\n      } else {\n        stream.next();\n        return ret(\"other\", \"variable-2\");\n      }\n    }\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while ((ch = stream.next())) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote, type, style) {\n    return function(stream, state) {\n      var next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote) {\n          end = true;\n          break;\n        }\n      }\n      if (end)\n        state.tokenize = tokenBase;\n      return ret(type, style);\n    };\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        currentIndent: 0\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-dylan\", \"dylan\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/dylan/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Dylan mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"dylan.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Dylan</a>\n  </ul>\n</div>\n\n<article>\n<h2>Dylan mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nModule:       locators-internals\nSynopsis:     Abstract modeling of locations\nAuthor:       Andy Armstrong\nCopyright:    Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.\n              All rights reserved.\nLicense:      See License.txt in this distribution for details.\nWarranty:     Distributed WITHOUT WARRANTY OF ANY KIND\n\ndefine open generic locator-server\n    (locator :: <locator>) => (server :: false-or(<server-locator>));\ndefine open generic locator-host\n    (locator :: <locator>) => (host :: false-or(<string>));\ndefine open generic locator-volume\n    (locator :: <locator>) => (volume :: false-or(<string>));\ndefine open generic locator-directory\n    (locator :: <locator>) => (directory :: false-or(<directory-locator>));\ndefine open generic locator-relative?\n    (locator :: <locator>) => (relative? :: <boolean>);\ndefine open generic locator-path\n    (locator :: <locator>) => (path :: <sequence>);\ndefine open generic locator-base\n    (locator :: <locator>) => (base :: false-or(<string>));\ndefine open generic locator-extension\n    (locator :: <locator>) => (extension :: false-or(<string>));\n\n/// Locator classes\n\ndefine open abstract class <directory-locator> (<physical-locator>)\nend class <directory-locator>;\n\ndefine open abstract class <file-locator> (<physical-locator>)\nend class <file-locator>;\n\ndefine method as\n    (class == <directory-locator>, string :: <string>)\n => (locator :: <directory-locator>)\n  as(<native-directory-locator>, string)\nend method as;\n\ndefine method make\n    (class == <directory-locator>,\n     #key server :: false-or(<server-locator>) = #f,\n          path :: <sequence> = #[],\n          relative? :: <boolean> = #f,\n          name :: false-or(<string>) = #f)\n => (locator :: <directory-locator>)\n  make(<native-directory-locator>,\n       server:    server,\n       path:      path,\n       relative?: relative?,\n       name:      name)\nend method make;\n\ndefine method as\n    (class == <file-locator>, string :: <string>)\n => (locator :: <file-locator>)\n  as(<native-file-locator>, string)\nend method as;\n\ndefine method make\n    (class == <file-locator>,\n     #key directory :: false-or(<directory-locator>) = #f,\n          base :: false-or(<string>) = #f,\n          extension :: false-or(<string>) = #f,\n          name :: false-or(<string>) = #f)\n => (locator :: <file-locator>)\n  make(<native-file-locator>,\n       directory: directory,\n       base:      base,\n       extension: extension,\n       name:      name)\nend method make;\n\n/// Locator coercion\n\n//---*** andrewa: This caching scheme doesn't work yet, so disable it.\ndefine constant $cache-locators?        = #f;\ndefine constant $cache-locator-strings? = #f;\n\ndefine constant $locator-to-string-cache = make(<object-table>, weak: #\"key\");\ndefine constant $string-to-locator-cache = make(<string-table>, weak: #\"value\");\n\ndefine open generic locator-as-string\n    (class :: subclass(<string>), locator :: <locator>)\n => (string :: <string>);\n\ndefine open generic string-as-locator\n    (class :: subclass(<locator>), string :: <string>)\n => (locator :: <locator>);\n\ndefine sealed sideways method as\n    (class :: subclass(<string>), locator :: <locator>)\n => (string :: <string>)\n  let string = element($locator-to-string-cache, locator, default: #f);\n  if (string)\n    as(class, string)\n  else\n    let string = locator-as-string(class, locator);\n    if ($cache-locator-strings?)\n      element($locator-to-string-cache, locator) := string;\n    else\n      string\n    end\n  end\nend method as;\n\ndefine sealed sideways method as\n    (class :: subclass(<locator>), string :: <string>)\n => (locator :: <locator>)\n  let locator = element($string-to-locator-cache, string, default: #f);\n  if (instance?(locator, class))\n    locator\n  else\n    let locator = string-as-locator(class, string);\n    if ($cache-locators?)\n      element($string-to-locator-cache, string) := locator;\n    else\n      locator\n    end\n  end\nend method as;\n\n/// Locator conditions\n\ndefine class <locator-error> (<format-string-condition>, <error>)\nend class <locator-error>;\n\ndefine function locator-error\n    (format-string :: <string>, #rest format-arguments)\n  error(make(<locator-error>, \n             format-string:    format-string,\n             format-arguments: format-arguments))\nend function locator-error;\n\n/// Useful locator protocols\n\ndefine open generic locator-test\n    (locator :: <directory-locator>) => (test :: <function>);\n\ndefine method locator-test\n    (locator :: <directory-locator>) => (test :: <function>)\n  \\=\nend method locator-test;\n\ndefine open generic locator-might-have-links?\n    (locator :: <directory-locator>) => (links? :: <boolean>);\n\ndefine method locator-might-have-links?\n    (locator :: <directory-locator>) => (links? :: singleton(#f))\n  #f\nend method locator-might-have-links?;\n\ndefine method locator-relative?\n    (locator :: <file-locator>) => (relative? :: <boolean>)\n  let directory = locator.locator-directory;\n  ~directory | directory.locator-relative?\nend method locator-relative?;\n\ndefine method current-directory-locator?\n    (locator :: <directory-locator>) => (current-directory? :: <boolean>)\n  locator.locator-relative?\n    & locator.locator-path = #[#\"self\"]\nend method current-directory-locator?;\n\ndefine method locator-directory\n    (locator :: <directory-locator>) => (parent :: false-or(<directory-locator>))\n  let path = locator.locator-path;\n  unless (empty?(path))\n    make(object-class(locator),\n         server:    locator.locator-server,\n         path:      copy-sequence(path, end: path.size - 1),\n         relative?: locator.locator-relative?)\n  end\nend method locator-directory;\n\n/// Simplify locator\n\ndefine open generic simplify-locator\n    (locator :: <physical-locator>)\n => (simplified-locator :: <physical-locator>);\n\ndefine method simplify-locator\n    (locator :: <directory-locator>)\n => (simplified-locator :: <directory-locator>)\n  let path = locator.locator-path;\n  let relative? = locator.locator-relative?;\n  let resolve-parent? = ~locator.locator-might-have-links?;\n  let simplified-path\n    = simplify-path(path, \n                    resolve-parent?: resolve-parent?,\n                    relative?: relative?);\n  if (path ~= simplified-path)\n    make(object-class(locator),\n         server:    locator.locator-server,\n         path:      simplified-path,\n         relative?: locator.locator-relative?)\n  else\n    locator\n  end\nend method simplify-locator;\n\ndefine method simplify-locator\n    (locator :: <file-locator>) => (simplified-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let simplified-directory = directory & simplify-locator(directory);\n  if (directory ~= simplified-directory)\n    make(object-class(locator),\n         directory: simplified-directory,\n         base:      locator.locator-base,\n         extension: locator.locator-extension)\n  else\n    locator\n  end\nend method simplify-locator;\n\n/// Subdirectory locator\n\ndefine open generic subdirectory-locator\n    (locator :: <directory-locator>, #rest sub-path)\n => (subdirectory :: <directory-locator>);\n\ndefine method subdirectory-locator\n    (locator :: <directory-locator>, #rest sub-path)\n => (subdirectory :: <directory-locator>)\n  let old-path = locator.locator-path;\n  let new-path = concatenate-as(<simple-object-vector>, old-path, sub-path);\n  make(object-class(locator),\n       server:    locator.locator-server,\n       path:      new-path,\n       relative?: locator.locator-relative?)\nend method subdirectory-locator;\n\n/// Relative locator\n\ndefine open generic relative-locator\n    (locator :: <physical-locator>, from-locator :: <physical-locator>)\n => (relative-locator :: <physical-locator>);\n\ndefine method relative-locator\n    (locator :: <directory-locator>, from-locator :: <directory-locator>)\n => (relative-locator :: <directory-locator>)\n  let path = locator.locator-path;\n  let from-path = from-locator.locator-path;\n  case\n    ~locator.locator-relative? & from-locator.locator-relative? =>\n      locator-error\n        (\"Cannot find relative path of absolute locator %= from relative locator %=\",\n         locator, from-locator);\n    locator.locator-server ~= from-locator.locator-server =>\n      locator;\n    path = from-path =>\n      make(object-class(locator),\n           path: vector(#\"self\"),\n           relative?: #t);\n    otherwise =>\n      make(object-class(locator),\n           path: relative-path(path, from-path, test: locator.locator-test),\n           relative?: #t);\n  end\nend method relative-locator;\n\ndefine method relative-locator\n    (locator :: <file-locator>, from-directory :: <directory-locator>)\n => (relative-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let relative-directory = directory & relative-locator(directory, from-directory);\n  if (relative-directory ~= directory)\n    simplify-locator\n      (make(object-class(locator),\n            directory: relative-directory,\n            base:      locator.locator-base,\n            extension: locator.locator-extension))\n  else\n    locator\n  end\nend method relative-locator;\n\ndefine method relative-locator\n    (locator :: <physical-locator>, from-locator :: <file-locator>)\n => (relative-locator :: <physical-locator>)\n  let from-directory = from-locator.locator-directory;\n  case\n    from-directory =>\n      relative-locator(locator, from-directory);\n    ~locator.locator-relative? =>\n      locator-error\n        (\"Cannot find relative path of absolute locator %= from relative locator %=\",\n         locator, from-locator);\n    otherwise =>\n      locator;\n  end\nend method relative-locator;\n\n/// Merge locators\n\ndefine open generic merge-locators\n    (locator :: <physical-locator>, from-locator :: <physical-locator>)\n => (merged-locator :: <physical-locator>);\n\n/// Merge locators\n\ndefine method merge-locators\n    (locator :: <directory-locator>, from-locator :: <directory-locator>)\n => (merged-locator :: <directory-locator>)\n  if (locator.locator-relative?)\n    let path = concatenate(from-locator.locator-path, locator.locator-path);\n    simplify-locator\n      (make(object-class(locator),\n            server:    from-locator.locator-server,\n            path:      path,\n            relative?: from-locator.locator-relative?))\n  else\n    locator\n  end\nend method merge-locators;\n\ndefine method merge-locators\n    (locator :: <file-locator>, from-locator :: <directory-locator>)\n => (merged-locator :: <file-locator>)\n  let directory = locator.locator-directory;\n  let merged-directory \n    = if (directory)\n        merge-locators(directory, from-locator)\n      else\n        simplify-locator(from-locator)\n      end;\n  if (merged-directory ~= directory)\n    make(object-class(locator),\n         directory: merged-directory,\n         base:      locator.locator-base,\n         extension: locator.locator-extension)\n  else\n    locator\n  end\nend method merge-locators;\n\ndefine method merge-locators\n    (locator :: <physical-locator>, from-locator :: <file-locator>)\n => (merged-locator :: <physical-locator>)\n  let from-directory = from-locator.locator-directory;\n  if (from-directory)\n    merge-locators(locator, from-directory)\n  else\n    locator\n  end\nend method merge-locators;\n\n/// Locator protocols\n\ndefine sideways method supports-open-locator?\n    (locator :: <file-locator>) => (openable? :: <boolean>)\n  ~locator.locator-relative?\nend method supports-open-locator?;\n\ndefine sideways method open-locator\n    (locator :: <file-locator>, #rest keywords, #key, #all-keys)\n => (stream :: <stream>)\n  apply(open-file-stream, locator, keywords)\nend method open-locator;\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-dylan\",\n        lineNumbers: true,\n        matchBrackets: true,\n        continueComments: \"Enter\",\n        extraKeys: {\"Ctrl-Q\": \"toggleComment\"},\n        tabMode: \"indent\",\n        indentUnit: 2\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-dylan</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ebnf/ebnf.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"ebnf\", function (config) {\n    var commentType = {slash: 0, parenthesis: 1};\n    var stateType = {comment: 0, _string: 1, characterClass: 2};\n    var bracesMode = null;\n\n    if (config.bracesMode)\n      bracesMode = CodeMirror.getMode(config, config.bracesMode);\n\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          commentType: null,\n          braced: 0,\n          lhs: true,\n          localState: null,\n          stack: [],\n          inDefinition: false\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(stateType._string);\n          } else if (stream.match(/^\\/\\*/)) { //comments starting with /*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.slash;\n          } else if (stream.match(/^\\(\\*/)) { //comments starting with (*\n            state.stack.unshift(stateType.comment);\n            state.commentType = commentType.parenthesis;\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case stateType._string:\n          while (state.stack[0] === stateType._string && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return state.lhs ? \"property string\" : \"string\"; // Token style\n\n        case stateType.comment:\n          while (state.stack[0] === stateType.comment && !stream.eol()) {\n            if (state.commentType === commentType.slash && stream.match(/\\*\\//)) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else if (state.commentType === commentType.parenthesis && stream.match(/\\*\\)/)) {\n              state.stack.shift(); // Clear flag\n              state.commentType = null;\n            } else {\n              stream.match(/^.[^\\*]*/);\n            }\n          }\n          return \"comment\";\n\n        case stateType.characterClass:\n          while (state.stack[0] === stateType.characterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./))) {\n              state.stack.shift();\n            }\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        if (bracesMode !== null && (state.braced || peek === \"{\")) {\n          if (state.localState === null)\n            state.localState = bracesMode.startState();\n\n          var token = bracesMode.token(stream, state.localState),\n          text = stream.current();\n\n          if (!token) {\n            for (var i = 0; i < text.length; i++) {\n              if (text[i] === \"{\") {\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n                state.braced++;\n              } else if (text[i] === \"}\") {\n                state.braced--;\n                if (state.braced === 0) {\n                  token = \"matchingbracket\";\n                }\n              }\n            }\n          }\n          return token;\n        }\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(stateType.characterClass);\n          return \"bracket\";\n        case \":\":\n        case \"|\":\n        case \";\":\n          stream.next();\n          return \"operator\";\n        case \"%\":\n          if (stream.match(\"%%\")) {\n            return \"header\";\n          } else if (stream.match(/[%][A-Za-z]+/)) {\n            return \"keyword\";\n          } else if (stream.match(/[%][}]/)) {\n            return \"matchingbracket\";\n          }\n          break;\n        case \"/\":\n          if (stream.match(/[\\/][A-Za-z]+/)) {\n          return \"keyword\";\n        }\n        case \"\\\\\":\n          if (stream.match(/[\\][a-z]+/)) {\n            return \"string-2\";\n          }\n        case \".\":\n          if (stream.match(\".\")) {\n            return \"atom\";\n          }\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n          if (stream.match(peek)) {\n            return \"atom\";\n          }\n        case \"$\":\n          if (stream.match(\"$$\")) {\n            return \"builtin\";\n          } else if (stream.match(/[$][0-9]+/)) {\n            return \"variable-3\";\n          }\n        case \"<\":\n          if (stream.match(/<<[a-zA-Z_]+>>/)) {\n            return \"builtin\";\n          }\n        }\n\n        if (stream.match(/^\\/\\//)) {\n          stream.skipToEnd();\n          return \"comment\";\n        } else if (stream.match(/return/)) {\n          return \"operator\";\n        } else if (stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)) {\n          if (stream.match(/(?=[\\(.])/)) {\n            return \"variable\";\n          } else if (stream.match(/(?=[\\s\\n]*[:=])/)) {\n            return \"def\";\n          }\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\"].indexOf(stream.peek()) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-ebnf\", \"ebnf\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ebnf/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <title>CodeMirror: EBNF Mode</title>\n    <meta charset=\"utf-8\"/>\n    <link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"../javascript/javascript.js\"></script>\n    <script src=\"ebnf.js\"></script>\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n  </head>\n  <body>\n    <div id=nav>\n      <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n      <ul>\n        <li><a href=\"../../index.html\">Home</a>\n        <li><a href=\"../../doc/manual.html\">Manual</a>\n        <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n      </ul>\n      <ul>\n        <li><a href=\"../index.html\">Language modes</a>\n        <li><a class=active href=\"#\">EBNF Mode</a>\n      </ul>\n    </div>\n\n    <article>\n      <h2>EBNF Mode (bracesMode setting = \"javascript\")</h2>\n      <form><textarea id=\"code\" name=\"code\">\n/* description: Parses end executes mathematical expressions. */\n\n/* lexical grammar */\n%lex\n\n%%\n\\s+                   /* skip whitespace */\n[0-9]+(\".\"[0-9]+)?\\b  return 'NUMBER';\n\"*\"                   return '*';\n\"/\"                   return '/';\n\"-\"                   return '-';\n\"+\"                   return '+';\n\"^\"                   return '^';\n\"(\"                   return '(';\n\")\"                   return ')';\n\"PI\"                  return 'PI';\n\"E\"                   return 'E';\n&lt;&lt;EOF&gt;&gt;               return 'EOF';\n\n/lex\n\n/* operator associations and precedence */\n\n%left '+' '-'\n%left '*' '/'\n%left '^'\n%left UMINUS\n\n%start expressions\n\n%% /* language grammar */\n\nexpressions\n: e EOF\n{print($1); return $1;}\n;\n\ne\n: e '+' e\n{$$ = $1+$3;}\n| e '-' e\n{$$ = $1-$3;}\n| e '*' e\n{$$ = $1*$3;}\n| e '/' e\n{$$ = $1/$3;}\n| e '^' e\n{$$ = Math.pow($1, $3);}\n| '-' e %prec UMINUS\n{$$ = -$2;}\n| '(' e ')'\n{$$ = $2;}\n| NUMBER\n{$$ = Number(yytext);}\n| E\n{$$ = Math.E;}\n| PI\n{$$ = Math.PI;}\n;</textarea></form>\n      <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n          mode: {name: \"ebnf\"},\n          lineNumbers: true,\n          bracesMode: 'javascript'\n        });\n      </script>\n      <h3>The EBNF Mode</h3>\n      <p> Created by <a href=\"https://github.com/robertleeplummerjr\">Robert Plummer</a></p>\n    </article>\n  </body>\n</html>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ecl/ecl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ecl\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  function metaHook(stream, state) {\n    if (!state.startOfLine) return false;\n    stream.skipToEnd();\n    return \"meta\";\n  }\n\n  var indentUnit = config.indentUnit;\n  var keyword = words(\"abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode\");\n  var variable = words(\"apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait\");\n  var variable_2 = words(\"__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath\");\n  var variable_3 = words(\"ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode\");\n  var builtin = words(\"checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when\");\n  var blockKeywords = words(\"catch class do else finally for if switch try while\");\n  var atoms = words(\"true false null\");\n  var hooks = {\"#\": metaHook};\n  var multiLineStrings;\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current().toLowerCase();\n    if (keyword.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    } else if (variable.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable\";\n    } else if (variable_2.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-2\";\n    } else if (variable_3.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"variable-3\";\n    } else if (builtin.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"builtin\";\n    } else { //Data types are of from KEYWORD##\n                var i = cur.length - 1;\n                while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_'))\n                        --i;\n\n                if (i > 0) {\n                        var cur2 = cur.substr(0, i + 1);\n                if (variable_3.propertyIsEnumerable(cur2)) {\n                        if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = \"newstatement\";\n                        return \"variable-3\";\n                }\n            }\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ecl\", \"ecl\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ecl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: ECL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"ecl.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">ECL</a>\n  </ul>\n</div>\n\n<article>\n<h2>ECL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/*\nsample useless code to demonstrate ecl syntax highlighting\nthis is a multiline comment!\n*/\n\n//  this is a singleline comment!\n\nimport ut;\nr := \n  record\n   string22 s1 := '123';\n   integer4 i1 := 123;\n  end;\n#option('tmp', true);\nd := dataset('tmp::qb', r, thor);\noutput(d);\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p>Based on CodeMirror's clike mode.  For more information see <a href=\"http://hpccsystems.com\">HPCC Systems</a> web site.</p>\n    <p><strong>MIME types defined:</strong> <code>text/x-ecl</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/eiffel/eiffel.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"eiffel\", function() {\n  function wordObj(words) {\n    var o = {};\n    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n    return o;\n  }\n  var keywords = wordObj([\n    'note',\n    'across',\n    'when',\n    'variant',\n    'until',\n    'unique',\n    'undefine',\n    'then',\n    'strip',\n    'select',\n    'retry',\n    'rescue',\n    'require',\n    'rename',\n    'reference',\n    'redefine',\n    'prefix',\n    'once',\n    'old',\n    'obsolete',\n    'loop',\n    'local',\n    'like',\n    'is',\n    'inspect',\n    'infix',\n    'include',\n    'if',\n    'frozen',\n    'from',\n    'external',\n    'export',\n    'ensure',\n    'end',\n    'elseif',\n    'else',\n    'do',\n    'creation',\n    'create',\n    'check',\n    'alias',\n    'agent',\n    'separate',\n    'invariant',\n    'inherit',\n    'indexing',\n    'feature',\n    'expanded',\n    'deferred',\n    'class',\n    'Void',\n    'True',\n    'Result',\n    'Precursor',\n    'False',\n    'Current',\n    'create',\n    'attached',\n    'detachable',\n    'as',\n    'and',\n    'implies',\n    'not',\n    'or'\n  ]);\n  var operators = wordObj([\":=\", \"and then\",\"and\", \"or\",\"<<\",\">>\"]);\n  var curPunc;\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    if (stream.eatSpace()) return null;\n    var ch = stream.next();\n    if (ch == '\"'||ch == \"'\") {\n      return chain(readQuoted(ch, \"string\"), stream, state);\n    } else if (ch == \"-\"&&stream.eat(\"-\")) {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \":\"&&stream.eat(\"=\")) {\n      return \"operator\";\n    } else if (/[0-9]/.test(ch)) {\n      stream.eatWhile(/[xXbBCc0-9\\.]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[a-zA-Z_0-9]/.test(ch)) {\n      stream.eatWhile(/[a-zA-Z_0-9]/);\n      stream.eat(/[\\?\\!]/);\n      return \"ident\";\n    } else if (/[=+\\-\\/*^%<>~]/.test(ch)) {\n      stream.eatWhile(/[=+\\-\\/*^%<>~]/);\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function readQuoted(quote, style,  unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        escaped = !escaped && ch == \"%\";\n      }\n      return style;\n    };\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase]};\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : operators.propertyIsEnumerable(stream.current()) ? \"operator\"\n          : /^[A-Z][A-Z_0-9]*$/g.test(word) ? \"tag\"\n          : /^0[bB][0-1]+$/g.test(word) ? \"number\"\n          : /^0[cC][0-7]+$/g.test(word) ? \"number\"\n          : /^0[xX][a-fA-F0-9]+$/g.test(word) ? \"number\"\n          : /^([0-9]+\\.[0-9]*)|([0-9]*\\.[0-9]+)$/g.test(word) ? \"number\"\n          : /^[0-9]+$/g.test(word) ? \"number\"\n          : \"variable\";\n      }\n      return style;\n    },\n    lineComment: \"--\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-eiffel\", \"eiffel\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/eiffel/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Eiffel mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"eiffel.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Eiffel</a>\n  </ul>\n</div>\n\n<article>\n<h2>Eiffel mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nnote\n    description: \"[\n        Project-wide universal properties.\n        This class is an ancestor to all developer-written classes.\n        ANY may be customized for individual projects or teams.\n        ]\"\n\n    library: \"Free implementation of ELKS library\"\n    status: \"See notice at end of class.\"\n    legal: \"See notice at end of class.\"\n    date: \"$Date: 2013-01-25 11:49:00 -0800 (Fri, 25 Jan 2013) $\"\n    revision: \"$Revision: 712 $\"\n\nclass\n    ANY\n\nfeature -- Customization\n\nfeature -- Access\n\n    generator: STRING\n            -- Name of current object's generating class\n            -- (base class of the type of which it is a direct instance)\n        external\n            \"built_in\"\n        ensure\n            generator_not_void: Result /= Void\n            generator_not_empty: not Result.is_empty\n        end\n\n    generating_type: TYPE [detachable like Current]\n            -- Type of current object\n            -- (type of which it is a direct instance)\n        do\n            Result := {detachable like Current}\n        ensure\n            generating_type_not_void: Result /= Void\n        end\n\nfeature -- Status report\n\n    conforms_to (other: ANY): BOOLEAN\n            -- Does type of current object conform to type\n            -- of `other' (as per Eiffel: The Language, chapter 13)?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        end\n\n    same_type (other: ANY): BOOLEAN\n            -- Is type of current object identical to type of `other'?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            definition: Result = (conforms_to (other) and\n                                        other.conforms_to (Current))\n        end\n\nfeature -- Comparison\n\n    is_equal (other: like Current): BOOLEAN\n            -- Is `other' attached to an object considered\n            -- equal to current object?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            symmetric: Result implies other ~ Current\n            consistent: standard_is_equal (other) implies Result\n        end\n\n    frozen standard_is_equal (other: like Current): BOOLEAN\n            -- Is `other' attached to an object of the same type\n            -- as current object, and field-by-field identical to it?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            same_type: Result implies same_type (other)\n            symmetric: Result implies other.standard_is_equal (Current)\n        end\n\n    frozen equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void or attached\n            -- to objects considered equal?\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then\n                            a.is_equal (b)\n            end\n        ensure\n            definition: Result = (a = Void and b = Void) or else\n                        ((a /= Void and b /= Void) and then\n                        a.is_equal (b))\n        end\n\n    frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void or attached to\n            -- field-by-field identical objects of the same type?\n            -- Always uses default object comparison criterion.\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then\n                            a.standard_is_equal (b)\n            end\n        ensure\n            definition: Result = (a = Void and b = Void) or else\n                        ((a /= Void and b /= Void) and then\n                        a.standard_is_equal (b))\n        end\n\n    frozen is_deep_equal (other: like Current): BOOLEAN\n            -- Are `Current' and `other' attached to isomorphic object structures?\n        require\n            other_not_void: other /= Void\n        external\n            \"built_in\"\n        ensure\n            shallow_implies_deep: standard_is_equal (other) implies Result\n            same_type: Result implies same_type (other)\n            symmetric: Result implies other.is_deep_equal (Current)\n        end\n\n    frozen deep_equal (a: detachable ANY; b: like a): BOOLEAN\n            -- Are `a' and `b' either both void\n            -- or attached to isomorphic object structures?\n        do\n            if a = Void then\n                Result := b = Void\n            else\n                Result := b /= Void and then a.is_deep_equal (b)\n            end\n        ensure\n            shallow_implies_deep: standard_equal (a, b) implies Result\n            both_or_none_void: (a = Void) implies (Result = (b = Void))\n            same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))\n            symmetric: Result implies deep_equal (b, a)\n        end\n\nfeature -- Duplication\n\n    frozen twin: like Current\n            -- New object equal to `Current'\n            -- `twin' calls `copy'; to change copying/twinning semantics, redefine `copy'.\n        external\n            \"built_in\"\n        ensure\n            twin_not_void: Result /= Void\n            is_equal: Result ~ Current\n        end\n\n    copy (other: like Current)\n            -- Update current object using fields of object attached\n            -- to `other', so as to yield equal objects.\n        require\n            other_not_void: other /= Void\n            type_identity: same_type (other)\n        external\n            \"built_in\"\n        ensure\n            is_equal: Current ~ other\n        end\n\n    frozen standard_copy (other: like Current)\n            -- Copy every field of `other' onto corresponding field\n            -- of current object.\n        require\n            other_not_void: other /= Void\n            type_identity: same_type (other)\n        external\n            \"built_in\"\n        ensure\n            is_standard_equal: standard_is_equal (other)\n        end\n\n    frozen clone (other: detachable ANY): like other\n            -- Void if `other' is void; otherwise new object\n            -- equal to `other'\n            --\n            -- For non-void `other', `clone' calls `copy';\n            -- to change copying/cloning semantics, redefine `copy'.\n        obsolete\n            \"Use `twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.twin\n            end\n        ensure\n            equal: Result ~ other\n        end\n\n    frozen standard_clone (other: detachable ANY): like other\n            -- Void if `other' is void; otherwise new object\n            -- field-by-field identical to `other'.\n            -- Always uses default copying semantics.\n        obsolete\n            \"Use `standard_twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.standard_twin\n            end\n        ensure\n            equal: standard_equal (Result, other)\n        end\n\n    frozen standard_twin: like Current\n            -- New object field-by-field identical to `other'.\n            -- Always uses default copying semantics.\n        external\n            \"built_in\"\n        ensure\n            standard_twin_not_void: Result /= Void\n            equal: standard_equal (Result, Current)\n        end\n\n    frozen deep_twin: like Current\n            -- New object structure recursively duplicated from Current.\n        external\n            \"built_in\"\n        ensure\n            deep_twin_not_void: Result /= Void\n            deep_equal: deep_equal (Current, Result)\n        end\n\n    frozen deep_clone (other: detachable ANY): like other\n            -- Void if `other' is void: otherwise, new object structure\n            -- recursively duplicated from the one attached to `other'\n        obsolete\n            \"Use `deep_twin' instead.\"\n        do\n            if other /= Void then\n                Result := other.deep_twin\n            end\n        ensure\n            deep_equal: deep_equal (other, Result)\n        end\n\n    frozen deep_copy (other: like Current)\n            -- Effect equivalent to that of:\n            --      `copy' (`other' . `deep_twin')\n        require\n            other_not_void: other /= Void\n        do\n            copy (other.deep_twin)\n        ensure\n            deep_equal: deep_equal (Current, other)\n        end\n\nfeature {NONE} -- Retrieval\n\n    frozen internal_correct_mismatch\n            -- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch'\n            -- from MISMATCH_CORRECTOR.\n        local\n            l_msg: STRING\n            l_exc: EXCEPTIONS\n        do\n            if attached {MISMATCH_CORRECTOR} Current as l_corrector then\n                l_corrector.correct_mismatch\n            else\n                create l_msg.make_from_string (\"Mismatch: \")\n                create l_exc\n                l_msg.append (generating_type.name)\n                l_exc.raise_retrieval_exception (l_msg)\n            end\n        end\n\nfeature -- Output\n\n    io: STD_FILES\n            -- Handle to standard file setup\n        once\n            create Result\n            Result.set_output_default\n        ensure\n            io_not_void: Result /= Void\n        end\n\n    out: STRING\n            -- New string containing terse printable representation\n            -- of current object\n        do\n            Result := tagged_out\n        ensure\n            out_not_void: Result /= Void\n        end\n\n    frozen tagged_out: STRING\n            -- New string containing terse printable representation\n            -- of current object\n        external\n            \"built_in\"\n        ensure\n            tagged_out_not_void: Result /= Void\n        end\n\n    print (o: detachable ANY)\n            -- Write terse external representation of `o'\n            -- on standard output.\n        do\n            if o /= Void then\n                io.put_string (o.out)\n            end\n        end\n\nfeature -- Platform\n\n    Operating_environment: OPERATING_ENVIRONMENT\n            -- Objects available from the operating system\n        once\n            create Result\n        ensure\n            operating_environment_not_void: Result /= Void\n        end\n\nfeature {NONE} -- Initialization\n\n    default_create\n            -- Process instances of classes with no creation clause.\n            -- (Default: do nothing.)\n        do\n        end\n\nfeature -- Basic operations\n\n    default_rescue\n            -- Process exception for routines with no Rescue clause.\n            -- (Default: do nothing.)\n        do\n        end\n\n    frozen do_nothing\n            -- Execute a null action.\n        do\n        end\n\n    frozen default: detachable like Current\n            -- Default value of object's type\n        do\n        end\n\n    frozen default_pointer: POINTER\n            -- Default value of type `POINTER'\n            -- (Avoid the need to write `p'.`default' for\n            -- some `p' of type `POINTER'.)\n        do\n        ensure\n            -- Result = Result.default\n        end\n\n    frozen as_attached: attached like Current\n            -- Attached version of Current\n            -- (Can be used during transitional period to convert\n            -- non-void-safe classes to void-safe ones.)\n        do\n            Result := Current\n        end\n\ninvariant\n    reflexive_equality: standard_is_equal (Current)\n    reflexive_conformance: conforms_to (Current)\n\nnote\n    copyright: \"Copyright (c) 1984-2012, Eiffel Software and others\"\n    license:   \"Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)\"\n    source: \"[\n            Eiffel Software\n            5949 Hollister Ave., Goleta, CA 93117 USA\n            Telephone 805-685-1006, Fax 805-685-6869\n            Website http://www.eiffel.com\n            Customer support http://support.eiffel.com\n        ]\"\n\nend\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-eiffel\",\n        indentUnit: 4,\n        lineNumbers: true,\n        theme: \"neat\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-eiffel</code>.</p>\n \n <p> Created by <a href=\"https://github.com/ynh\">YNH</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/erlang/erlang.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*jshint unused:true, eqnull:true, curly:true, bitwise:true */\n/*jshint undef:true, latedef:true, trailing:true */\n/*global CodeMirror:true */\n\n// erlang mode.\n// tokenizer -> token types -> CodeMirror styles\n// tokenizer maintains a parse stack\n// indenter uses the parse stack\n\n// TODO indenter:\n//   bit syntax\n//   old guard/bif/conversion clashes (e.g. \"float/1\")\n//   type/spec/opaque\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/x-erlang\", \"erlang\");\n\nCodeMirror.defineMode(\"erlang\", function(cmCfg) {\n  \"use strict\";\n\n/////////////////////////////////////////////////////////////////////////////\n// constants\n\n  var typeWords = [\n    \"-type\", \"-spec\", \"-export_type\", \"-opaque\"];\n\n  var keywordWords = [\n    \"after\",\"begin\",\"catch\",\"case\",\"cond\",\"end\",\"fun\",\"if\",\n    \"let\",\"of\",\"query\",\"receive\",\"try\",\"when\"];\n\n  var separatorRE    = /[\\->,;]/;\n  var separatorWords = [\n    \"->\",\";\",\",\"];\n\n  var operatorAtomWords = [\n    \"and\",\"andalso\",\"band\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\n    \"div\",\"not\",\"or\",\"orelse\",\"rem\",\"xor\"];\n\n  var operatorSymbolRE    = /[\\+\\-\\*\\/<>=\\|:!]/;\n  var operatorSymbolWords = [\n    \"=\",\"+\",\"-\",\"*\",\"/\",\">\",\">=\",\"<\",\"=<\",\"=:=\",\"==\",\"=/=\",\"/=\",\"||\",\"<-\",\"!\"];\n\n  var openParenRE    = /[<\\(\\[\\{]/;\n  var openParenWords = [\n    \"<<\",\"(\",\"[\",\"{\"];\n\n  var closeParenRE    = /[>\\)\\]\\}]/;\n  var closeParenWords = [\n    \"}\",\"]\",\")\",\">>\"];\n\n  var guardWords = [\n    \"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\"is_float\",\n    \"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"atom\",\"binary\",\"bitstring\",\"boolean\",\"function\",\"integer\",\"list\",\n    \"number\",\"pid\",\"port\",\"record\",\"reference\",\"tuple\"];\n\n  var bifWords = [\n    \"abs\",\"adler32\",\"adler32_combine\",\"alive\",\"apply\",\"atom_to_binary\",\n    \"atom_to_list\",\"binary_to_atom\",\"binary_to_existing_atom\",\n    \"binary_to_list\",\"binary_to_term\",\"bit_size\",\"bitstring_to_list\",\n    \"byte_size\",\"check_process_code\",\"contact_binary\",\"crc32\",\n    \"crc32_combine\",\"date\",\"decode_packet\",\"delete_module\",\n    \"disconnect_node\",\"element\",\"erase\",\"exit\",\"float\",\"float_to_list\",\n    \"garbage_collect\",\"get\",\"get_keys\",\"group_leader\",\"halt\",\"hd\",\n    \"integer_to_list\",\"internal_bif\",\"iolist_size\",\"iolist_to_binary\",\n    \"is_alive\",\"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\n    \"is_float\",\"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n    \"is_port\",\"is_process_alive\",\"is_record\",\"is_reference\",\"is_tuple\",\n    \"length\",\"link\",\"list_to_atom\",\"list_to_binary\",\"list_to_bitstring\",\n    \"list_to_existing_atom\",\"list_to_float\",\"list_to_integer\",\n    \"list_to_pid\",\"list_to_tuple\",\"load_module\",\"make_ref\",\"module_loaded\",\n    \"monitor_node\",\"node\",\"node_link\",\"node_unlink\",\"nodes\",\"notalive\",\n    \"now\",\"open_port\",\"pid_to_list\",\"port_close\",\"port_command\",\n    \"port_connect\",\"port_control\",\"pre_loaded\",\"process_flag\",\n    \"process_info\",\"processes\",\"purge_module\",\"put\",\"register\",\n    \"registered\",\"round\",\"self\",\"setelement\",\"size\",\"spawn\",\"spawn_link\",\n    \"spawn_monitor\",\"spawn_opt\",\"split_binary\",\"statistics\",\n    \"term_to_binary\",\"time\",\"throw\",\"tl\",\"trunc\",\"tuple_size\",\n    \"tuple_to_list\",\"unlink\",\"unregister\",\"whereis\"];\n\n// upper case: [A-Z] [Ø-Þ] [À-Ö]\n// lower case: [a-z] [ß-ö] [ø-ÿ]\n  var anumRE       = /[\\w@Ø-ÞÀ-Öß-öø-ÿ]/;\n  var escapesRE    =\n    /[0-7]{1,3}|[bdefnrstv\\\\\"']|\\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;\n\n/////////////////////////////////////////////////////////////////////////////\n// tokenizer\n\n  function tokenizer(stream,state) {\n    // in multi-line string\n    if (state.in_string) {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // in multi-line atom\n    if (state.in_atom) {\n      state.in_atom = (!singleQuote(stream));\n      return rval(state,stream,\"atom\");\n    }\n\n    // whitespace\n    if (stream.eatSpace()) {\n      return rval(state,stream,\"whitespace\");\n    }\n\n    // attributes and type specs\n    if (!peekToken(state) &&\n        stream.match(/-\\s*[a-zß-öø-ÿ][\\wØ-ÞÀ-Öß-öø-ÿ]*/)) {\n      if (is_member(stream.current(),typeWords)) {\n        return rval(state,stream,\"type\");\n      }else{\n        return rval(state,stream,\"attribute\");\n      }\n    }\n\n    var ch = stream.next();\n\n    // comment\n    if (ch == '%') {\n      stream.skipToEnd();\n      return rval(state,stream,\"comment\");\n    }\n\n    // colon\n    if (ch == \":\") {\n      return rval(state,stream,\"colon\");\n    }\n\n    // macro\n    if (ch == '?') {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"macro\");\n    }\n\n    // record\n    if (ch == \"#\") {\n      stream.eatSpace();\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"record\");\n    }\n\n    // dollar escape\n    if (ch == \"$\") {\n      if (stream.next() == \"\\\\\" && !stream.match(escapesRE)) {\n        return rval(state,stream,\"error\");\n      }\n      return rval(state,stream,\"number\");\n    }\n\n    // dot\n    if (ch == \".\") {\n      return rval(state,stream,\"dot\");\n    }\n\n    // quoted atom\n    if (ch == '\\'') {\n      if (!(state.in_atom = (!singleQuote(stream)))) {\n        if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n          stream.match(/\\s*\\/\\s*[0-9]/,true);\n          return rval(state,stream,\"fun\");      // 'f'/0 style fun\n        }\n        if (stream.match(/\\s*\\(/,false) || stream.match(/\\s*:/,false)) {\n          return rval(state,stream,\"function\");\n        }\n      }\n      return rval(state,stream,\"atom\");\n    }\n\n    // string\n    if (ch == '\"') {\n      state.in_string = (!doubleQuote(stream));\n      return rval(state,stream,\"string\");\n    }\n\n    // variable\n    if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {\n      stream.eatWhile(anumRE);\n      return rval(state,stream,\"variable\");\n    }\n\n    // atom/keyword/BIF/function\n    if (/[a-z_ß-öø-ÿ]/.test(ch)) {\n      stream.eatWhile(anumRE);\n\n      if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n        stream.match(/\\s*\\/\\s*[0-9]/,true);\n        return rval(state,stream,\"fun\");      // f/0 style fun\n      }\n\n      var w = stream.current();\n\n      if (is_member(w,keywordWords)) {\n        return rval(state,stream,\"keyword\");\n      }else if (is_member(w,operatorAtomWords)) {\n        return rval(state,stream,\"operator\");\n      }else if (stream.match(/\\s*\\(/,false)) {\n        // 'put' and 'erlang:put' are bifs, 'foo:put' is not\n        if (is_member(w,bifWords) &&\n            ((peekToken(state).token != \":\") ||\n             (peekToken(state,2).token == \"erlang\"))) {\n          return rval(state,stream,\"builtin\");\n        }else if (is_member(w,guardWords)) {\n          return rval(state,stream,\"guard\");\n        }else{\n          return rval(state,stream,\"function\");\n        }\n      }else if (is_member(w,operatorAtomWords)) {\n        return rval(state,stream,\"operator\");\n      }else if (lookahead(stream) == \":\") {\n        if (w == \"erlang\") {\n          return rval(state,stream,\"builtin\");\n        } else {\n          return rval(state,stream,\"function\");\n        }\n      }else if (is_member(w,[\"true\",\"false\"])) {\n        return rval(state,stream,\"boolean\");\n      }else if (is_member(w,[\"true\",\"false\"])) {\n        return rval(state,stream,\"boolean\");\n      }else{\n        return rval(state,stream,\"atom\");\n      }\n    }\n\n    // number\n    var digitRE      = /[0-9]/;\n    var radixRE      = /[0-9a-zA-Z]/;         // 36#zZ style int\n    if (digitRE.test(ch)) {\n      stream.eatWhile(digitRE);\n      if (stream.eat('#')) {                // 36#aZ  style integer\n        if (!stream.eatWhile(radixRE)) {\n          stream.backUp(1);                 //\"36#\" - syntax error\n        }\n      } else if (stream.eat('.')) {       // float\n        if (!stream.eatWhile(digitRE)) {\n          stream.backUp(1);        // \"3.\" - probably end of function\n        } else {\n          if (stream.eat(/[eE]/)) {        // float with exponent\n            if (stream.eat(/[-+]/)) {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(2);            // \"2e-\" - syntax error\n              }\n            } else {\n              if (!stream.eatWhile(digitRE)) {\n                stream.backUp(1);            // \"2e\" - syntax error\n              }\n            }\n          }\n        }\n      }\n      return rval(state,stream,\"number\");   // normal integer\n    }\n\n    // open parens\n    if (nongreedy(stream,openParenRE,openParenWords)) {\n      return rval(state,stream,\"open_paren\");\n    }\n\n    // close parens\n    if (nongreedy(stream,closeParenRE,closeParenWords)) {\n      return rval(state,stream,\"close_paren\");\n    }\n\n    // separators\n    if (greedy(stream,separatorRE,separatorWords)) {\n      return rval(state,stream,\"separator\");\n    }\n\n    // operators\n    if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {\n      return rval(state,stream,\"operator\");\n    }\n\n    return rval(state,stream,null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// utilities\n  function nongreedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      stream.backUp(1);\n      while (re.test(stream.peek())) {\n        stream.next();\n        if (is_member(stream.current(),words)) {\n          return true;\n        }\n      }\n      stream.backUp(stream.current().length-1);\n    }\n    return false;\n  }\n\n  function greedy(stream,re,words) {\n    if (stream.current().length == 1 && re.test(stream.current())) {\n      while (re.test(stream.peek())) {\n        stream.next();\n      }\n      while (0 < stream.current().length) {\n        if (is_member(stream.current(),words)) {\n          return true;\n        }else{\n          stream.backUp(1);\n        }\n      }\n      stream.next();\n    }\n    return false;\n  }\n\n  function doubleQuote(stream) {\n    return quote(stream, '\"', '\\\\');\n  }\n\n  function singleQuote(stream) {\n    return quote(stream,'\\'','\\\\');\n  }\n\n  function quote(stream,quoteChar,escapeChar) {\n    while (!stream.eol()) {\n      var ch = stream.next();\n      if (ch == quoteChar) {\n        return true;\n      }else if (ch == escapeChar) {\n        stream.next();\n      }\n    }\n    return false;\n  }\n\n  function lookahead(stream) {\n    var m = stream.match(/([\\n\\s]+|%[^\\n]*\\n)*(.)/,false);\n    return m ? m.pop() : \"\";\n  }\n\n  function is_member(element,list) {\n    return (-1 < list.indexOf(element));\n  }\n\n  function rval(state,stream,type) {\n\n    // parse stack\n    pushToken(state,realToken(type,stream));\n\n    // map erlang token type to CodeMirror style class\n    //     erlang             -> CodeMirror tag\n    switch (type) {\n      case \"atom\":        return \"atom\";\n      case \"attribute\":   return \"attribute\";\n      case \"boolean\":     return \"atom\";\n      case \"builtin\":     return \"builtin\";\n      case \"close_paren\": return null;\n      case \"colon\":       return null;\n      case \"comment\":     return \"comment\";\n      case \"dot\":         return null;\n      case \"error\":       return \"error\";\n      case \"fun\":         return \"meta\";\n      case \"function\":    return \"tag\";\n      case \"guard\":       return \"property\";\n      case \"keyword\":     return \"keyword\";\n      case \"macro\":       return \"variable-2\";\n      case \"number\":      return \"number\";\n      case \"open_paren\":  return null;\n      case \"operator\":    return \"operator\";\n      case \"record\":      return \"bracket\";\n      case \"separator\":   return null;\n      case \"string\":      return \"string\";\n      case \"type\":        return \"def\";\n      case \"variable\":    return \"variable\";\n      default:            return null;\n    }\n  }\n\n  function aToken(tok,col,ind,typ) {\n    return {token:  tok,\n            column: col,\n            indent: ind,\n            type:   typ};\n  }\n\n  function realToken(type,stream) {\n    return aToken(stream.current(),\n                 stream.column(),\n                 stream.indentation(),\n                 type);\n  }\n\n  function fakeToken(type) {\n    return aToken(type,0,0,type);\n  }\n\n  function peekToken(state,depth) {\n    var len = state.tokenStack.length;\n    var dep = (depth ? depth : 1);\n\n    if (len < dep) {\n      return false;\n    }else{\n      return state.tokenStack[len-dep];\n    }\n  }\n\n  function pushToken(state,token) {\n\n    if (!(token.type == \"comment\" || token.type == \"whitespace\")) {\n      state.tokenStack = maybe_drop_pre(state.tokenStack,token);\n      state.tokenStack = maybe_drop_post(state.tokenStack);\n    }\n  }\n\n  function maybe_drop_pre(s,token) {\n    var last = s.length-1;\n\n    if (0 < last && s[last].type === \"record\" && token.type === \"dot\") {\n      s.pop();\n    }else if (0 < last && s[last].type === \"group\") {\n      s.pop();\n      s.push(token);\n    }else{\n      s.push(token);\n    }\n    return s;\n  }\n\n  function maybe_drop_post(s) {\n    var last = s.length-1;\n\n    if (s[last].type === \"dot\") {\n      return [];\n    }\n    if (s[last].type === \"fun\" && s[last-1].token === \"fun\") {\n      return s.slice(0,last-1);\n    }\n    switch (s[s.length-1].token) {\n      case \"}\":    return d(s,{g:[\"{\"]});\n      case \"]\":    return d(s,{i:[\"[\"]});\n      case \")\":    return d(s,{i:[\"(\"]});\n      case \">>\":   return d(s,{i:[\"<<\"]});\n      case \"end\":  return d(s,{i:[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]});\n      case \",\":    return d(s,{e:[\"begin\",\"try\",\"when\",\"->\",\n                                  \",\",\"(\",\"[\",\"{\",\"<<\"]});\n      case \"->\":   return d(s,{r:[\"when\"],\n                               m:[\"try\",\"if\",\"case\",\"receive\"]});\n      case \";\":    return d(s,{E:[\"case\",\"fun\",\"if\",\"receive\",\"try\",\"when\"]});\n      case \"catch\":return d(s,{e:[\"try\"]});\n      case \"of\":   return d(s,{e:[\"case\"]});\n      case \"after\":return d(s,{e:[\"receive\",\"try\"]});\n      default:     return s;\n    }\n  }\n\n  function d(stack,tt) {\n    // stack is a stack of Token objects.\n    // tt is an object; {type:tokens}\n    // type is a char, tokens is a list of token strings.\n    // The function returns (possibly truncated) stack.\n    // It will descend the stack, looking for a Token such that Token.token\n    //  is a member of tokens. If it does not find that, it will normally (but\n    //  see \"E\" below) return stack. If it does find a match, it will remove\n    //  all the Tokens between the top and the matched Token.\n    // If type is \"m\", that is all it does.\n    // If type is \"i\", it will also remove the matched Token and the top Token.\n    // If type is \"g\", like \"i\", but add a fake \"group\" token at the top.\n    // If type is \"r\", it will remove the matched Token, but not the top Token.\n    // If type is \"e\", it will keep the matched Token but not the top Token.\n    // If type is \"E\", it behaves as for type \"e\", except if there is no match,\n    //  in which case it will return an empty stack.\n\n    for (var type in tt) {\n      var len = stack.length-1;\n      var tokens = tt[type];\n      for (var i = len-1; -1 < i ; i--) {\n        if (is_member(stack[i].token,tokens)) {\n          var ss = stack.slice(0,i);\n          switch (type) {\n              case \"m\": return ss.concat(stack[i]).concat(stack[len]);\n              case \"r\": return ss.concat(stack[len]);\n              case \"i\": return ss;\n              case \"g\": return ss.concat(fakeToken(\"group\"));\n              case \"E\": return ss.concat(stack[i]);\n              case \"e\": return ss.concat(stack[i]);\n          }\n        }\n      }\n    }\n    return (type == \"E\" ? [] : stack);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// indenter\n\n  function indenter(state,textAfter) {\n    var t;\n    var unit = cmCfg.indentUnit;\n    var wordAfter = wordafter(textAfter);\n    var currT = peekToken(state,1);\n    var prevT = peekToken(state,2);\n\n    if (state.in_string || state.in_atom) {\n      return CodeMirror.Pass;\n    }else if (!prevT) {\n      return 0;\n    }else if (currT.token == \"when\") {\n      return currT.column+unit;\n    }else if (wordAfter === \"when\" && prevT.type === \"function\") {\n      return prevT.indent+unit;\n    }else if (wordAfter === \"(\" && currT.token === \"fun\") {\n      return  currT.column+3;\n    }else if (wordAfter === \"catch\" && (t = getToken(state,[\"try\"]))) {\n      return t.column;\n    }else if (is_member(wordAfter,[\"end\",\"after\",\"of\"])) {\n      t = getToken(state,[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(wordAfter,closeParenWords)) {\n      t = getToken(state,openParenWords);\n      return t ? t.column : CodeMirror.Pass;\n    }else if (is_member(currT.token,[\",\",\"|\",\"||\"]) ||\n              is_member(wordAfter,[\",\",\"|\",\"||\"])) {\n      t = postcommaToken(state);\n      return t ? t.column+t.token.length : unit;\n    }else if (currT.token == \"->\") {\n      if (is_member(prevT.token, [\"receive\",\"case\",\"if\",\"try\"])) {\n        return prevT.column+unit+unit;\n      }else{\n        return prevT.column+unit;\n      }\n    }else if (is_member(currT.token,openParenWords)) {\n      return currT.column+currT.token.length;\n    }else{\n      t = defaultToken(state);\n      return truthy(t) ? t.column+unit : 0;\n    }\n  }\n\n  function wordafter(str) {\n    var m = str.match(/,|[a-z]+|\\}|\\]|\\)|>>|\\|+|\\(/);\n\n    return truthy(m) && (m.index === 0) ? m[0] : \"\";\n  }\n\n  function postcommaToken(state) {\n    var objs = state.tokenStack.slice(0,-1);\n    var i = getTokenIndex(objs,\"type\",[\"open_paren\"]);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function defaultToken(state) {\n    var objs = state.tokenStack;\n    var stop = getTokenIndex(objs,\"type\",[\"open_paren\",\"separator\",\"keyword\"]);\n    var oper = getTokenIndex(objs,\"type\",[\"operator\"]);\n\n    if (truthy(stop) && truthy(oper) && stop < oper) {\n      return objs[stop+1];\n    } else if (truthy(stop)) {\n      return objs[stop];\n    } else {\n      return false;\n    }\n  }\n\n  function getToken(state,tokens) {\n    var objs = state.tokenStack;\n    var i = getTokenIndex(objs,\"token\",tokens);\n\n    return truthy(objs[i]) ? objs[i] : false;\n  }\n\n  function getTokenIndex(objs,propname,propvals) {\n\n    for (var i = objs.length-1; -1 < i ; i--) {\n      if (is_member(objs[i][propname],propvals)) {\n        return i;\n      }\n    }\n    return false;\n  }\n\n  function truthy(x) {\n    return (x !== false) && (x != null);\n  }\n\n/////////////////////////////////////////////////////////////////////////////\n// this object defines the mode\n\n  return {\n    startState:\n      function() {\n        return {tokenStack: [],\n                in_string:  false,\n                in_atom:    false};\n      },\n\n    token:\n      function(stream, state) {\n        return tokenizer(stream, state);\n      },\n\n    indent:\n      function(state, textAfter) {\n        return indenter(state,textAfter);\n      },\n\n    lineComment: \"%\"\n  };\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/erlang/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Erlang mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/erlang-dark.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"erlang.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Erlang</a>\n  </ul>\n</div>\n\n<article>\n<h2>Erlang mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n%% -*- mode: erlang; erlang-indent-level: 2 -*-\n%%% Created :  7 May 2012 by mats cronqvist <masse@klarna.com>\n\n%% @doc\n%% Demonstrates how to print a record.\n%% @end\n\n-module('ex').\n-author('mats cronqvist').\n-export([demo/0,\n         rec_info/1]).\n\n-record(demo,{a=\"One\",b=\"Two\",c=\"Three\",d=\"Four\"}).\n\nrec_info(demo) -> record_info(fields,demo).\n\ndemo() -> expand_recs(?MODULE,#demo{a=\"A\",b=\"BB\"}).\n\nexpand_recs(M,List) when is_list(List) ->\n  [expand_recs(M,L)||L<-List];\nexpand_recs(M,Tup) when is_tuple(Tup) ->\n  case tuple_size(Tup) of\n    L when L < 1 -> Tup;\n    L ->\n      try\n        Fields = M:rec_info(element(1,Tup)),\n        L = length(Fields)+1,\n        lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))\n      catch\n        _:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))\n      end\n  end;\nexpand_recs(_,Term) ->\n  Term.\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        extraKeys: {\"Tab\":  \"indentAuto\"},\n        theme: \"erlang-dark\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-erlang</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/forth/forth.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Author: Aliaksei Chapyzhenka\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function toWordList(words) {\n    var ret = [];\n    words.split(' ').forEach(function(e){\n      ret.push({name: e});\n    });\n    return ret;\n  }\n\n  var coreWordList = toWordList(\n'INVERT AND OR XOR\\\n 2* 2/ LSHIFT RSHIFT\\\n 0= = 0< < > U< MIN MAX\\\n 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP\\\n >R R> R@\\\n + - 1+ 1- ABS NEGATE\\\n S>D * M* UM*\\\n FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD\\\n HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2!\\\n ALIGN ALIGNED +! ALLOT\\\n CHAR [CHAR] [ ] BL\\\n FIND EXECUTE IMMEDIATE COUNT LITERAL STATE\\\n ; DOES> >BODY\\\n EVALUATE\\\n SOURCE >IN\\\n <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL\\\n FILL MOVE\\\n . CR EMIT SPACE SPACES TYPE U. .R U.R\\\n ACCEPT\\\n TRUE FALSE\\\n <> U> 0<> 0>\\\n NIP TUCK ROLL PICK\\\n 2>R 2R@ 2R>\\\n WITHIN UNUSED MARKER\\\n I J\\\n TO\\\n COMPILE, [COMPILE]\\\n SAVE-INPUT RESTORE-INPUT\\\n PAD ERASE\\\n 2LITERAL DNEGATE\\\n D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS\\\n M+ M*/ D. D.R 2ROT DU<\\\n CATCH THROW\\\n FREE RESIZE ALLOCATE\\\n CS-PICK CS-ROLL\\\n GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER\\\n PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER\\\n -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL');\n\n  var immediateWordList = toWordList('IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE');\n\n  CodeMirror.defineMode('forth', function() {\n    function searchWordList (wordList, word) {\n      var i;\n      for (i = wordList.length - 1; i >= 0; i--) {\n        if (wordList[i].name === word.toUpperCase()) {\n          return wordList[i];\n        }\n      }\n      return undefined;\n    }\n  return {\n    startState: function() {\n      return {\n        state: '',\n        base: 10,\n        coreWordList: coreWordList,\n        immediateWordList: immediateWordList,\n        wordList: []\n      };\n    },\n    token: function (stream, stt) {\n      var mat;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      if (stt.state === '') { // interpretation\n        if (stream.match(/^(\\]|:NONAME)(\\s|$)/i)) {\n          stt.state = ' compilation';\n          return 'builtin compilation';\n        }\n        mat = stream.match(/^(\\:)\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          stt.state = ' compilation';\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\\s+(\\S+)(\\s|$)+/i);\n        if (mat) {\n          stt.wordList.push({name: mat[2].toUpperCase()});\n          return 'def' + stt.state;\n        }\n        mat = stream.match(/^(\\'|\\[\\'\\])\\s+(\\S+)(\\s|$)+/);\n        if (mat) {\n          return 'builtin' + stt.state;\n        }\n        } else { // compilation\n        // ; [\n        if (stream.match(/^(\\;|\\[)(\\s)/)) {\n          stt.state = '';\n          stream.backUp(1);\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(\\;|\\[)($)/)) {\n          stt.state = '';\n          return 'builtin compilation';\n        }\n        if (stream.match(/^(POSTPONE)\\s+\\S+(\\s|$)+/)) {\n          return 'builtin';\n        }\n      }\n\n      // dynamic wordlist\n      mat = stream.match(/^(\\S+)(\\s+|$)/);\n      if (mat) {\n        if (searchWordList(stt.wordList, mat[1]) !== undefined) {\n          return 'variable' + stt.state;\n        }\n\n        // comments\n        if (mat[1] === '\\\\') {\n          stream.skipToEnd();\n            return 'comment' + stt.state;\n          }\n\n          // core words\n          if (searchWordList(stt.coreWordList, mat[1]) !== undefined) {\n            return 'builtin' + stt.state;\n          }\n          if (searchWordList(stt.immediateWordList, mat[1]) !== undefined) {\n            return 'keyword' + stt.state;\n          }\n\n          if (mat[1] === '(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'comment' + stt.state;\n          }\n\n          // // strings\n          if (mat[1] === '.(') {\n            stream.eatWhile(function (s) { return s !== ')'; });\n            stream.eat(')');\n            return 'string' + stt.state;\n          }\n          if (mat[1] === 'S\"' || mat[1] === '.\"' || mat[1] === 'C\"') {\n            stream.eatWhile(function (s) { return s !== '\"'; });\n            stream.eat('\"');\n            return 'string' + stt.state;\n          }\n\n          // numbers\n          if (mat[1] - 0xfffffffff) {\n            return 'number' + stt.state;\n          }\n          // if (mat[1].match(/^[-+]?[0-9]+\\.[0-9]*/)) {\n          //     return 'number' + stt.state;\n          // }\n\n          return 'atom' + stt.state;\n        }\n      }\n    };\n  });\n  CodeMirror.defineMIME(\"text/x-forth\", \"forth\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/forth/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Forth mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link href='http://fonts.googleapis.com/css?family=Droid+Sans+Mono' rel='stylesheet' type='text/css'>\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=stylesheet href=\"../../theme/colorforth.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"forth.js\"></script>\n<style>\n.CodeMirror {\n    font-family: 'Droid Sans Mono', monospace;\n    font-size: 14px;\n}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Forth</a>\n  </ul>\n</div>\n\n<article>\n\n<h2>Forth mode</h2>\n\n<form><textarea id=\"code\" name=\"code\">\n\\ Insertion sort\n\n: cell-  1 cells - ;\n\n: insert ( start end -- start )\n  dup @ >r ( r: v )\n  begin\n    2dup <\n  while\n    r@ over cell- @ <\n  while\n    cell-\n    dup @ over cell+ !\n  repeat then\n  r> swap ! ;\n\n: sort ( array len -- )\n  1 ?do\n    dup i cells + insert\n  loop drop ;</textarea>\n  </form>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    lineWrapping: true,\n    indentUnit: 2,\n    tabSize: 2,\n    autofocus: true,\n    theme: \"colorforth\",\n    mode: \"text/x-forth\"\n  });\n</script>\n\n<p>Simple mode that handle Forth-Syntax (<a href=\"http://en.wikipedia.org/wiki/Forth_%28programming_language%29\">Forth on WikiPedia</a>).</p>\n\n<p><strong>MIME types defined:</strong> <code>text/x-forth</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/fortran/fortran.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"fortran\", function() {\n  function words(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  }\n\n  var keywords = words([\n                  \"abstract\", \"accept\", \"allocatable\", \"allocate\",\n                  \"array\", \"assign\", \"asynchronous\", \"backspace\",\n                  \"bind\", \"block\", \"byte\", \"call\", \"case\",\n                  \"class\", \"close\", \"common\", \"contains\",\n                  \"continue\", \"cycle\", \"data\", \"deallocate\",\n                  \"decode\", \"deferred\", \"dimension\", \"do\",\n                  \"elemental\", \"else\", \"encode\", \"end\",\n                  \"endif\", \"entry\", \"enumerator\", \"equivalence\",\n                  \"exit\", \"external\", \"extrinsic\", \"final\",\n                  \"forall\", \"format\", \"function\", \"generic\",\n                  \"go\", \"goto\", \"if\", \"implicit\", \"import\", \"include\",\n                  \"inquire\", \"intent\", \"interface\", \"intrinsic\",\n                  \"module\", \"namelist\", \"non_intrinsic\",\n                  \"non_overridable\", \"none\", \"nopass\",\n                  \"nullify\", \"open\", \"optional\", \"options\",\n                  \"parameter\", \"pass\", \"pause\", \"pointer\",\n                  \"print\", \"private\", \"program\", \"protected\",\n                  \"public\", \"pure\", \"read\", \"recursive\", \"result\",\n                  \"return\", \"rewind\", \"save\", \"select\", \"sequence\",\n                  \"stop\", \"subroutine\", \"target\", \"then\", \"to\", \"type\",\n                  \"use\", \"value\", \"volatile\", \"where\", \"while\",\n                  \"write\"]);\n  var builtins = words([\"abort\", \"abs\", \"access\", \"achar\", \"acos\",\n                          \"adjustl\", \"adjustr\", \"aimag\", \"aint\", \"alarm\",\n                          \"all\", \"allocated\", \"alog\", \"amax\", \"amin\",\n                          \"amod\", \"and\", \"anint\", \"any\", \"asin\",\n                          \"associated\", \"atan\", \"besj\", \"besjn\", \"besy\",\n                          \"besyn\", \"bit_size\", \"btest\", \"cabs\", \"ccos\",\n                          \"ceiling\", \"cexp\", \"char\", \"chdir\", \"chmod\",\n                          \"clog\", \"cmplx\", \"command_argument_count\",\n                          \"complex\", \"conjg\", \"cos\", \"cosh\", \"count\",\n                          \"cpu_time\", \"cshift\", \"csin\", \"csqrt\", \"ctime\",\n                          \"c_funloc\", \"c_loc\", \"c_associated\", \"c_null_ptr\",\n                          \"c_null_funptr\", \"c_f_pointer\", \"c_null_char\",\n                          \"c_alert\", \"c_backspace\", \"c_form_feed\",\n                          \"c_new_line\", \"c_carriage_return\",\n                          \"c_horizontal_tab\", \"c_vertical_tab\", \"dabs\",\n                          \"dacos\", \"dasin\", \"datan\", \"date_and_time\",\n                          \"dbesj\", \"dbesj\", \"dbesjn\", \"dbesy\", \"dbesy\",\n                          \"dbesyn\", \"dble\", \"dcos\", \"dcosh\", \"ddim\", \"derf\",\n                          \"derfc\", \"dexp\", \"digits\", \"dim\", \"dint\", \"dlog\",\n                          \"dlog\", \"dmax\", \"dmin\", \"dmod\", \"dnint\",\n                          \"dot_product\", \"dprod\", \"dsign\", \"dsinh\",\n                          \"dsin\", \"dsqrt\", \"dtanh\", \"dtan\", \"dtime\",\n                          \"eoshift\", \"epsilon\", \"erf\", \"erfc\", \"etime\",\n                          \"exit\", \"exp\", \"exponent\", \"extends_type_of\",\n                          \"fdate\", \"fget\", \"fgetc\", \"float\", \"floor\",\n                          \"flush\", \"fnum\", \"fputc\", \"fput\", \"fraction\",\n                          \"fseek\", \"fstat\", \"ftell\", \"gerror\", \"getarg\",\n                          \"get_command\", \"get_command_argument\",\n                          \"get_environment_variable\", \"getcwd\",\n                          \"getenv\", \"getgid\", \"getlog\", \"getpid\",\n                          \"getuid\", \"gmtime\", \"hostnm\", \"huge\", \"iabs\",\n                          \"iachar\", \"iand\", \"iargc\", \"ibclr\", \"ibits\",\n                          \"ibset\", \"ichar\", \"idate\", \"idim\", \"idint\",\n                          \"idnint\", \"ieor\", \"ierrno\", \"ifix\", \"imag\",\n                          \"imagpart\", \"index\", \"int\", \"ior\", \"irand\",\n                          \"isatty\", \"ishft\", \"ishftc\", \"isign\",\n                          \"iso_c_binding\", \"is_iostat_end\", \"is_iostat_eor\",\n                          \"itime\", \"kill\", \"kind\", \"lbound\", \"len\", \"len_trim\",\n                          \"lge\", \"lgt\", \"link\", \"lle\", \"llt\", \"lnblnk\", \"loc\",\n                          \"log\", \"logical\", \"long\", \"lshift\", \"lstat\", \"ltime\",\n                          \"matmul\", \"max\", \"maxexponent\", \"maxloc\", \"maxval\",\n                          \"mclock\", \"merge\", \"move_alloc\", \"min\", \"minexponent\",\n                          \"minloc\", \"minval\", \"mod\", \"modulo\", \"mvbits\",\n                          \"nearest\", \"new_line\", \"nint\", \"not\", \"or\", \"pack\",\n                          \"perror\", \"precision\", \"present\", \"product\", \"radix\",\n                          \"rand\", \"random_number\", \"random_seed\", \"range\",\n                          \"real\", \"realpart\", \"rename\", \"repeat\", \"reshape\",\n                          \"rrspacing\", \"rshift\", \"same_type_as\", \"scale\",\n                          \"scan\", \"second\", \"selected_int_kind\",\n                          \"selected_real_kind\", \"set_exponent\", \"shape\",\n                          \"short\", \"sign\", \"signal\", \"sinh\", \"sin\", \"sleep\",\n                          \"sngl\", \"spacing\", \"spread\", \"sqrt\", \"srand\", \"stat\",\n                          \"sum\", \"symlnk\", \"system\", \"system_clock\", \"tan\",\n                          \"tanh\", \"time\", \"tiny\", \"transfer\", \"transpose\",\n                          \"trim\", \"ttynam\", \"ubound\", \"umask\", \"unlink\",\n                          \"unpack\", \"verify\", \"xor\", \"zabs\", \"zcos\", \"zexp\",\n                          \"zlog\", \"zsin\", \"zsqrt\"]);\n\n    var dataTypes =  words([\"c_bool\", \"c_char\", \"c_double\", \"c_double_complex\",\n                     \"c_float\", \"c_float_complex\", \"c_funptr\", \"c_int\",\n                     \"c_int16_t\", \"c_int32_t\", \"c_int64_t\", \"c_int8_t\",\n                     \"c_int_fast16_t\", \"c_int_fast32_t\", \"c_int_fast64_t\",\n                     \"c_int_fast8_t\", \"c_int_least16_t\", \"c_int_least32_t\",\n                     \"c_int_least64_t\", \"c_int_least8_t\", \"c_intmax_t\",\n                     \"c_intptr_t\", \"c_long\", \"c_long_double\",\n                     \"c_long_double_complex\", \"c_long_long\", \"c_ptr\",\n                     \"c_short\", \"c_signed_char\", \"c_size_t\", \"character\",\n                     \"complex\", \"double\", \"integer\", \"logical\", \"real\"]);\n  var isOperatorChar = /[+\\-*&=<>\\/\\:]/;\n  var litOperator = new RegExp(\"(\\.and\\.|\\.or\\.|\\.eq\\.|\\.lt\\.|\\.le\\.|\\.gt\\.|\\.ge\\.|\\.ne\\.|\\.not\\.|\\.eqv\\.|\\.neqv\\.)\", \"i\");\n\n  function tokenBase(stream, state) {\n\n    if (stream.match(litOperator)){\n        return 'operator';\n    }\n\n    var ch = stream.next();\n    if (ch == \"!\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\[\\]\\(\\),]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var word = stream.current().toLowerCase();\n\n    if (keywords.hasOwnProperty(word)){\n            return 'keyword';\n    }\n    if (builtins.hasOwnProperty(word) || dataTypes.hasOwnProperty(word)) {\n            return 'builtin';\n    }\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n            end = true;\n            break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-fortran\", \"fortran\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/fortran/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Fortran mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"fortran.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Fortran</a>\n  </ul>\n</div>\n\n<article>\n<h2>Fortran mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n! Example Fortran code\n  program average\n\n  ! Read in some numbers and take the average\n  ! As written, if there are no data points, an average of zero is returned\n  ! While this may not be desired behavior, it keeps this example simple\n\n  implicit none\n\n  real, dimension(:), allocatable :: points\n  integer                         :: number_of_points\n  real                            :: average_points=0., positive_average=0., negative_average=0.\n\n  write (*,*) \"Input number of points to average:\"\n  read  (*,*) number_of_points\n\n  allocate (points(number_of_points))\n\n  write (*,*) \"Enter the points to average:\"\n  read  (*,*) points\n\n  ! Take the average by summing points and dividing by number_of_points\n  if (number_of_points > 0) average_points = sum(points) / number_of_points\n\n  ! Now form average over positive and negative points only\n  if (count(points > 0.) > 0) then\n     positive_average = sum(points, points > 0.) / count(points > 0.)\n  end if\n\n  if (count(points < 0.) > 0) then\n     negative_average = sum(points, points < 0.) / count(points < 0.)\n  end if\n\n  deallocate (points)\n\n  ! Print result to terminal\n  write (*,'(a,g12.4)') 'Average = ', average_points\n  write (*,'(a,g12.4)') 'Average of positive points = ', positive_average\n  write (*,'(a,g12.4)') 'Average of negative points = ', negative_average\n\n  end program average\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-fortran\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-Fortran</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gas/gas.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gas\", function(_config, parserConfig) {\n  'use strict';\n\n  // If an architecture is specified, its initialization function may\n  // populate this array with custom parsing functions which will be\n  // tried in the event that the standard functions do not find a match.\n  var custom = [];\n\n  // The symbol used to start a line comment changes based on the target\n  // architecture.\n  // If no architecture is pased in \"parserConfig\" then only multiline\n  // comments will have syntax support.\n  var lineCommentStartSymbol = \"\";\n\n  // These directives are architecture independent.\n  // Machine specific directives should go in their respective\n  // architecture initialization function.\n  // Reference:\n  // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops\n  var directives = {\n    \".abort\" : \"builtin\",\n    \".align\" : \"builtin\",\n    \".altmacro\" : \"builtin\",\n    \".ascii\" : \"builtin\",\n    \".asciz\" : \"builtin\",\n    \".balign\" : \"builtin\",\n    \".balignw\" : \"builtin\",\n    \".balignl\" : \"builtin\",\n    \".bundle_align_mode\" : \"builtin\",\n    \".bundle_lock\" : \"builtin\",\n    \".bundle_unlock\" : \"builtin\",\n    \".byte\" : \"builtin\",\n    \".cfi_startproc\" : \"builtin\",\n    \".comm\" : \"builtin\",\n    \".data\" : \"builtin\",\n    \".def\" : \"builtin\",\n    \".desc\" : \"builtin\",\n    \".dim\" : \"builtin\",\n    \".double\" : \"builtin\",\n    \".eject\" : \"builtin\",\n    \".else\" : \"builtin\",\n    \".elseif\" : \"builtin\",\n    \".end\" : \"builtin\",\n    \".endef\" : \"builtin\",\n    \".endfunc\" : \"builtin\",\n    \".endif\" : \"builtin\",\n    \".equ\" : \"builtin\",\n    \".equiv\" : \"builtin\",\n    \".eqv\" : \"builtin\",\n    \".err\" : \"builtin\",\n    \".error\" : \"builtin\",\n    \".exitm\" : \"builtin\",\n    \".extern\" : \"builtin\",\n    \".fail\" : \"builtin\",\n    \".file\" : \"builtin\",\n    \".fill\" : \"builtin\",\n    \".float\" : \"builtin\",\n    \".func\" : \"builtin\",\n    \".global\" : \"builtin\",\n    \".gnu_attribute\" : \"builtin\",\n    \".hidden\" : \"builtin\",\n    \".hword\" : \"builtin\",\n    \".ident\" : \"builtin\",\n    \".if\" : \"builtin\",\n    \".incbin\" : \"builtin\",\n    \".include\" : \"builtin\",\n    \".int\" : \"builtin\",\n    \".internal\" : \"builtin\",\n    \".irp\" : \"builtin\",\n    \".irpc\" : \"builtin\",\n    \".lcomm\" : \"builtin\",\n    \".lflags\" : \"builtin\",\n    \".line\" : \"builtin\",\n    \".linkonce\" : \"builtin\",\n    \".list\" : \"builtin\",\n    \".ln\" : \"builtin\",\n    \".loc\" : \"builtin\",\n    \".loc_mark_labels\" : \"builtin\",\n    \".local\" : \"builtin\",\n    \".long\" : \"builtin\",\n    \".macro\" : \"builtin\",\n    \".mri\" : \"builtin\",\n    \".noaltmacro\" : \"builtin\",\n    \".nolist\" : \"builtin\",\n    \".octa\" : \"builtin\",\n    \".offset\" : \"builtin\",\n    \".org\" : \"builtin\",\n    \".p2align\" : \"builtin\",\n    \".popsection\" : \"builtin\",\n    \".previous\" : \"builtin\",\n    \".print\" : \"builtin\",\n    \".protected\" : \"builtin\",\n    \".psize\" : \"builtin\",\n    \".purgem\" : \"builtin\",\n    \".pushsection\" : \"builtin\",\n    \".quad\" : \"builtin\",\n    \".reloc\" : \"builtin\",\n    \".rept\" : \"builtin\",\n    \".sbttl\" : \"builtin\",\n    \".scl\" : \"builtin\",\n    \".section\" : \"builtin\",\n    \".set\" : \"builtin\",\n    \".short\" : \"builtin\",\n    \".single\" : \"builtin\",\n    \".size\" : \"builtin\",\n    \".skip\" : \"builtin\",\n    \".sleb128\" : \"builtin\",\n    \".space\" : \"builtin\",\n    \".stab\" : \"builtin\",\n    \".string\" : \"builtin\",\n    \".struct\" : \"builtin\",\n    \".subsection\" : \"builtin\",\n    \".symver\" : \"builtin\",\n    \".tag\" : \"builtin\",\n    \".text\" : \"builtin\",\n    \".title\" : \"builtin\",\n    \".type\" : \"builtin\",\n    \".uleb128\" : \"builtin\",\n    \".val\" : \"builtin\",\n    \".version\" : \"builtin\",\n    \".vtable_entry\" : \"builtin\",\n    \".vtable_inherit\" : \"builtin\",\n    \".warning\" : \"builtin\",\n    \".weak\" : \"builtin\",\n    \".weakref\" : \"builtin\",\n    \".word\" : \"builtin\"\n  };\n\n  var registers = {};\n\n  function x86(_parserConfig) {\n    lineCommentStartSymbol = \"#\";\n\n    registers.ax  = \"variable\";\n    registers.eax = \"variable-2\";\n    registers.rax = \"variable-3\";\n\n    registers.bx  = \"variable\";\n    registers.ebx = \"variable-2\";\n    registers.rbx = \"variable-3\";\n\n    registers.cx  = \"variable\";\n    registers.ecx = \"variable-2\";\n    registers.rcx = \"variable-3\";\n\n    registers.dx  = \"variable\";\n    registers.edx = \"variable-2\";\n    registers.rdx = \"variable-3\";\n\n    registers.si  = \"variable\";\n    registers.esi = \"variable-2\";\n    registers.rsi = \"variable-3\";\n\n    registers.di  = \"variable\";\n    registers.edi = \"variable-2\";\n    registers.rdi = \"variable-3\";\n\n    registers.sp  = \"variable\";\n    registers.esp = \"variable-2\";\n    registers.rsp = \"variable-3\";\n\n    registers.bp  = \"variable\";\n    registers.ebp = \"variable-2\";\n    registers.rbp = \"variable-3\";\n\n    registers.ip  = \"variable\";\n    registers.eip = \"variable-2\";\n    registers.rip = \"variable-3\";\n\n    registers.cs  = \"keyword\";\n    registers.ds  = \"keyword\";\n    registers.ss  = \"keyword\";\n    registers.es  = \"keyword\";\n    registers.fs  = \"keyword\";\n    registers.gs  = \"keyword\";\n  }\n\n  function armv6(_parserConfig) {\n    // Reference:\n    // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf\n    // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf\n    lineCommentStartSymbol = \"@\";\n    directives.syntax = \"builtin\";\n\n    registers.r0  = \"variable\";\n    registers.r1  = \"variable\";\n    registers.r2  = \"variable\";\n    registers.r3  = \"variable\";\n    registers.r4  = \"variable\";\n    registers.r5  = \"variable\";\n    registers.r6  = \"variable\";\n    registers.r7  = \"variable\";\n    registers.r8  = \"variable\";\n    registers.r9  = \"variable\";\n    registers.r10 = \"variable\";\n    registers.r11 = \"variable\";\n    registers.r12 = \"variable\";\n\n    registers.sp  = \"variable-2\";\n    registers.lr  = \"variable-2\";\n    registers.pc  = \"variable-2\";\n    registers.r13 = registers.sp;\n    registers.r14 = registers.lr;\n    registers.r15 = registers.pc;\n\n    custom.push(function(ch, stream) {\n      if (ch === '#') {\n        stream.eatWhile(/\\w/);\n        return \"number\";\n      }\n    });\n  }\n\n  var arch = (parserConfig.architecture || \"x86\").toLowerCase();\n  if (arch === \"x86\") {\n    x86(parserConfig);\n  } else if (arch === \"arm\" || arch === \"armv6\") {\n    armv6(parserConfig);\n  }\n\n  function nextUntilUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next === end && !escaped) {\n        return false;\n      }\n      escaped = !escaped && next === \"\\\\\";\n    }\n    return escaped;\n  }\n\n  function clikeComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (ch === \"/\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch === \"*\");\n    }\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: null\n      };\n    },\n\n    token: function(stream, state) {\n      if (state.tokenize) {\n        return state.tokenize(stream, state);\n      }\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var style, cur, ch = stream.next();\n\n      if (ch === \"/\") {\n        if (stream.eat(\"*\")) {\n          state.tokenize = clikeComment;\n          return clikeComment(stream, state);\n        }\n      }\n\n      if (ch === lineCommentStartSymbol) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (ch === '\"') {\n        nextUntilUnescaped(stream, '\"');\n        return \"string\";\n      }\n\n      if (ch === '.') {\n        stream.eatWhile(/\\w/);\n        cur = stream.current().toLowerCase();\n        style = directives[cur];\n        return style || null;\n      }\n\n      if (ch === '=') {\n        stream.eatWhile(/\\w/);\n        return \"tag\";\n      }\n\n      if (ch === '{') {\n        return \"braket\";\n      }\n\n      if (ch === '}') {\n        return \"braket\";\n      }\n\n      if (/\\d/.test(ch)) {\n        if (ch === \"0\" && stream.eat(\"x\")) {\n          stream.eatWhile(/[0-9a-fA-F]/);\n          return \"number\";\n        }\n        stream.eatWhile(/\\d/);\n        return \"number\";\n      }\n\n      if (/\\w/.test(ch)) {\n        stream.eatWhile(/\\w/);\n        if (stream.eat(\":\")) {\n          return 'tag';\n        }\n        cur = stream.current().toLowerCase();\n        style = registers[cur];\n        return style || null;\n      }\n\n      for (var i = 0; i < custom.length; i++) {\n        style = custom[i](ch, stream, state);\n        if (style) {\n          return style;\n        }\n      }\n    },\n\n    lineComment: lineCommentStartSymbol,\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\"\n  };\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gas/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Gas mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"gas.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Gas</a>\n  </ul>\n</div>\n\n<article>\n<h2>Gas mode</h2>\n<form>\n<textarea id=\"code\" name=\"code\">\n.syntax unified\n.global main\n\n/* \n *  A\n *  multi-line\n *  comment.\n */\n\n@ A single line comment.\n\nmain:\n        push    {sp, lr}\n        ldr     r0, =message\n        bl      puts\n        mov     r0, #0\n        pop     {sp, pc}\n\nmessage:\n        .asciz \"Hello world!<br />\"\n</textarea>\n        </form>\n\n        <script>\n            var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n                lineNumbers: true,\n                mode: {name: \"gas\", architecture: \"ARMv6\"},\n            });\n        </script>\n\n        <p>Handles AT&amp;T assembler syntax (more specifically this handles\n        the GNU Assembler (gas) syntax.)\n        It takes a single optional configuration parameter:\n        <code>architecture</code>, which can be one of <code>\"ARM\"</code>,\n        <code>\"ARMv6\"</code> or <code>\"x86\"</code>.\n        Including the parameter adds syntax for the registers and special\n        directives for the supplied architecture.\n\n        <p><strong>MIME types defined:</strong> <code>text/x-gas</code></p>\n    </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gfm/gfm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n  var codeDepth = 0;\n  function blankLine(state) {\n    state.code = false;\n    return null;\n  }\n  var gfmOverlay = {\n    startState: function() {\n      return {\n        code: false,\n        codeBlock: false,\n        ateSpace: false\n      };\n    },\n    copyState: function(s) {\n      return {\n        code: s.code,\n        codeBlock: s.codeBlock,\n        ateSpace: s.ateSpace\n      };\n    },\n    token: function(stream, state) {\n      state.combineTokens = null;\n\n      // Hack to prevent formatting override inside code blocks (block and inline)\n      if (state.codeBlock) {\n        if (stream.match(/^```/)) {\n          state.codeBlock = false;\n          return null;\n        }\n        stream.skipToEnd();\n        return null;\n      }\n      if (stream.sol()) {\n        state.code = false;\n      }\n      if (stream.sol() && stream.match(/^```/)) {\n        stream.skipToEnd();\n        state.codeBlock = true;\n        return null;\n      }\n      // If this block is changed, it may need to be updated in Markdown mode\n      if (stream.peek() === '`') {\n        stream.next();\n        var before = stream.pos;\n        stream.eatWhile('`');\n        var difference = 1 + stream.pos - before;\n        if (!state.code) {\n          codeDepth = difference;\n          state.code = true;\n        } else {\n          if (difference === codeDepth) { // Must be exact\n            state.code = false;\n          }\n        }\n        return null;\n      } else if (state.code) {\n        stream.next();\n        return null;\n      }\n      // Check if space. If so, links can be formatted later on\n      if (stream.eatSpace()) {\n        state.ateSpace = true;\n        return null;\n      }\n      if (stream.sol() || state.ateSpace) {\n        state.ateSpace = false;\n        if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?:[a-f0-9]{7,40}\\b)/)) {\n          // User/Project@SHA\n          // User@SHA\n          // SHA\n          state.combineTokens = true;\n          return \"link\";\n        } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n          // User/Project#Num\n          // User#Num\n          // #Num\n          state.combineTokens = true;\n          return \"link\";\n        }\n      }\n      if (stream.match(/^((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i) &&\n         stream.string.slice(stream.start - 2, stream.start) != \"](\") {\n        // URLs\n        // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n        // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n        state.combineTokens = true;\n        return \"link\";\n      }\n      stream.next();\n      return null;\n    },\n    blankLine: blankLine\n  };\n\n  var markdownConfig = {\n    underscoresBreakWords: false,\n    taskLists: true,\n    fencedCodeBlocks: true,\n    strikethrough: true\n  };\n  for (var attr in modeConfig) {\n    markdownConfig[attr] = modeConfig[attr];\n  }\n  markdownConfig.name = \"markdown\";\n  CodeMirror.defineMIME(\"gfmBase\", markdownConfig);\n  return CodeMirror.overlayMode(CodeMirror.getMode(config, \"gfmBase\"), gfmOverlay);\n}, \"markdown\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gfm/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: GFM mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../markdown/markdown.js\"></script>\n<script src=\"gfm.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"../meta.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">GFM</a>\n  </ul>\n</div>\n\n<article>\n<h2>GFM mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nGitHub Flavored Markdown\n========================\n\nEverything from markdown plus GFM features:\n\n## URL autolinking\n\nUnderscores_are_allowed_between_words.\n\n## Strikethrough text\n\nGFM adds syntax to strikethrough text, which is missing from standard Markdown.\n\n~~Mistaken text.~~\n~~**works with other fomatting**~~\n\n~~spans across\nlines~~\n\n## Fenced code blocks (and syntax highlighting)\n\n```javascript\nfor (var i = 0; i &lt; items.length; i++) {\n    console.log(items[i], i); // log them\n}\n```\n\n## Task Lists\n\n- [ ] Incomplete task list item\n- [x] **Completed** task list item\n\n## A bit of GitHub spice\n\n* SHA: be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User@SHA ref: mojombo@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* User/Project@SHA: mojombo/god@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2\n* \\#Num: #1\n* User/#Num: mojombo#1\n* User/Project#Num: mojombo/god#1\n\nSee http://github.github.com/github-flavored-markdown/.\n\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'gfm',\n        lineNumbers: true,\n        theme: \"default\"\n      });\n    </script>\n\n    <p>Optionally depends on other modes for properly highlighted code blocks.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#gfm_*\">normal</a>,  <a href=\"../../test/index.html#verbose,gfm_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gfm/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"gfm\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n  var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: \"gfm\", highlightFormatting: true});\n  function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }\n\n  FT(\"codeBackticks\",\n     \"[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]\");\n\n  FT(\"doubleBackticks\",\n     \"[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]\");\n\n  FT(\"codeBlock\",\n     \"[comment&formatting&formatting-code-block ```css]\",\n     \"[tag foo]\",\n     \"[comment&formatting&formatting-code-block ```]\");\n\n  FT(\"taskList\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][meta&formatting&formatting-task [ ]]][variable-2  foo]\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][property&formatting&formatting-task [x]]][variable-2  foo]\");\n\n  FT(\"formatting_strikethrough\",\n     \"[strikethrough&formatting&formatting-strikethrough ~~][strikethrough foo][strikethrough&formatting&formatting-strikethrough ~~]\");\n\n  FT(\"formatting_strikethrough\",\n     \"foo [strikethrough&formatting&formatting-strikethrough ~~][strikethrough bar][strikethrough&formatting&formatting-strikethrough ~~]\");\n\n  MT(\"emInWordAsterisk\",\n     \"foo[em *bar*]hello\");\n\n  MT(\"emInWordUnderscore\",\n     \"foo_bar_hello\");\n\n  MT(\"emStrongUnderscore\",\n     \"[strong __][em&strong _foo__][em _] bar\");\n\n  MT(\"fencedCodeBlocks\",\n     \"[comment ```]\",\n     \"[comment foo]\",\n     \"\",\n     \"[comment ```]\",\n     \"bar\");\n\n  MT(\"fencedCodeBlockModeSwitching\",\n     \"[comment ```javascript]\",\n     \"[variable foo]\",\n     \"\",\n     \"[comment ```]\",\n     \"bar\");\n\n  MT(\"taskListAsterisk\",\n     \"[variable-2 * []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 * [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 * [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 * ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 * ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListPlus\",\n     \"[variable-2 + []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 + [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 + [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 + ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 + ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListDash\",\n     \"[variable-2 - []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 - [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 - [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 - ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 - ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"taskListNumber\",\n     \"[variable-2 1. []] foo]\", // Invalid; must have space or x between []\n     \"[variable-2 2. [ ]]bar]\", // Invalid; must have space after ]\n     \"[variable-2 3. [x]]hello]\", // Invalid; must have space after ]\n     \"[variable-2 4. ][meta [ ]]][variable-2  [world]]]\", // Valid; tests reference style links\n     \"    [variable-3 1. ][property [x]]][variable-3  foo]\"); // Valid; can be nested\n\n  MT(\"SHA\",\n     \"foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar\");\n\n  MT(\"SHAEmphasis\",\n     \"[em *foo ][em&link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"shortSHA\",\n     \"foo [link be6a8cc] bar\");\n\n  MT(\"tooShortSHA\",\n     \"foo be6a8c bar\");\n\n  MT(\"longSHA\",\n     \"foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar\");\n\n  MT(\"badSHA\",\n     \"foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar\");\n\n  MT(\"userSHA\",\n     \"foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello\");\n\n  MT(\"userSHAEmphasis\",\n     \"[em *foo ][em&link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"userProjectSHA\",\n     \"foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world\");\n\n  MT(\"userProjectSHAEmphasis\",\n     \"[em *foo ][em&link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2][em *]\");\n\n  MT(\"num\",\n     \"foo [link #1] bar\");\n\n  MT(\"numEmphasis\",\n     \"[em *foo ][em&link #1][em *]\");\n\n  MT(\"badNum\",\n     \"foo #1bar hello\");\n\n  MT(\"userNum\",\n     \"foo [link bar#1] hello\");\n\n  MT(\"userNumEmphasis\",\n     \"[em *foo ][em&link bar#1][em *]\");\n\n  MT(\"userProjectNum\",\n     \"foo [link bar/hello#1] world\");\n\n  MT(\"userProjectNumEmphasis\",\n     \"[em *foo ][em&link bar/hello#1][em *]\");\n\n  MT(\"vanillaLink\",\n     \"foo [link http://www.example.com/] bar\");\n\n  MT(\"vanillaLinkPunctuation\",\n     \"foo [link http://www.example.com/]. bar\");\n\n  MT(\"vanillaLinkExtension\",\n     \"foo [link http://www.example.com/index.html] bar\");\n\n  MT(\"vanillaLinkEmphasis\",\n     \"foo [em *][em&link http://www.example.com/index.html][em *] bar\");\n\n  MT(\"notALink\",\n     \"[comment ```css]\",\n     \"[tag foo] {[property color]:[keyword black];}\",\n     \"[comment ```][link http://www.example.com/]\");\n\n  MT(\"notALink\",\n     \"[comment ``foo `bar` http://www.example.com/``] hello\");\n\n  MT(\"notALink\",\n     \"[comment `foo]\",\n     \"[link http://www.example.com/]\",\n     \"[comment `foo]\",\n     \"\",\n     \"[link http://www.example.com/]\");\n\n  MT(\"headerCodeBlockGithub\",\n     \"[header&header-1 # heading]\",\n     \"\",\n     \"[comment ```]\",\n     \"[comment code]\",\n     \"[comment ```]\",\n     \"\",\n     \"Commit: [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2]\",\n     \"Issue: [link #1]\",\n     \"Link: [link http://www.example.com/]\");\n\n  MT(\"strikethrough\",\n     \"[strikethrough ~~foo~~]\");\n\n  MT(\"strikethroughWithStartingSpace\",\n     \"~~ foo~~\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo~~~]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n     \"[strikethrough ~~foo ~~]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo ~~ bar]\");\n\n  MT(\"strikethroughUnclosedStrayTildes\",\n    \"[strikethrough ~~foo ~~ bar~~]hello\");\n\n  MT(\"strikethroughOneLetter\",\n     \"[strikethrough ~~a~~]\");\n\n  MT(\"strikethroughWrapped\",\n     \"[strikethrough ~~foo]\",\n     \"[strikethrough foo~~]\");\n\n  MT(\"strikethroughParagraph\",\n     \"[strikethrough ~~foo]\",\n     \"\",\n     \"foo[strikethrough ~~bar]\");\n\n  MT(\"strikethroughEm\",\n     \"[strikethrough ~~foo][em&strikethrough *bar*][strikethrough ~~]\");\n\n  MT(\"strikethroughEm\",\n     \"[em *][em&strikethrough ~~foo~~][em *]\");\n\n  MT(\"strikethroughStrong\",\n     \"[strikethrough ~~][strong&strikethrough **foo**][strikethrough ~~]\");\n\n  MT(\"strikethroughStrong\",\n     \"[strong **][strong&strikethrough ~~foo~~][strong **]\");\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gherkin/gherkin.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\nGherkin mode - http://www.cukes.info/\nReport bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n*/\n\n// Following Objs from Brackets implementation: https://github.com/tregusti/brackets-gherkin/blob/master/main.js\n//var Quotes = {\n//  SINGLE: 1,\n//  DOUBLE: 2\n//};\n\n//var regex = {\n//  keywords: /(Feature| {2}(Scenario|In order to|As|I)| {4}(Given|When|Then|And))/\n//};\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gherkin\", function () {\n  return {\n    startState: function () {\n      return {\n        lineNumber: 0,\n        tableHeaderLine: false,\n        allowFeature: true,\n        allowBackground: false,\n        allowScenario: false,\n        allowSteps: false,\n        allowPlaceholders: false,\n        allowMultilineArgument: false,\n        inMultilineString: false,\n        inMultilineTable: false,\n        inKeywordLine: false\n      };\n    },\n    token: function (stream, state) {\n      if (stream.sol()) {\n        state.lineNumber++;\n        state.inKeywordLine = false;\n        if (state.inMultilineTable) {\n            state.tableHeaderLine = false;\n            if (!stream.match(/\\s*\\|/, false)) {\n              state.allowMultilineArgument = false;\n              state.inMultilineTable = false;\n            }\n        }\n      }\n\n      stream.eatSpace();\n\n      if (state.allowMultilineArgument) {\n\n        // STRING\n        if (state.inMultilineString) {\n          if (stream.match('\"\"\"')) {\n            state.inMultilineString = false;\n            state.allowMultilineArgument = false;\n          } else {\n            stream.match(/.*/);\n          }\n          return \"string\";\n        }\n\n        // TABLE\n        if (state.inMultilineTable) {\n          if (stream.match(/\\|\\s*/)) {\n            return \"bracket\";\n          } else {\n            stream.match(/[^\\|]*/);\n            return state.tableHeaderLine ? \"header\" : \"string\";\n          }\n        }\n\n        // DETECT START\n        if (stream.match('\"\"\"')) {\n          // String\n          state.inMultilineString = true;\n          return \"string\";\n        } else if (stream.match(\"|\")) {\n          // Table\n          state.inMultilineTable = true;\n          state.tableHeaderLine = true;\n          return \"bracket\";\n        }\n\n      }\n\n      // LINE COMMENT\n      if (stream.match(/#.*/)) {\n        return \"comment\";\n\n      // TAG\n      } else if (!state.inKeywordLine && stream.match(/@\\S+/)) {\n        return \"tag\";\n\n      // FEATURE\n      } else if (!state.inKeywordLine && state.allowFeature && stream.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)) {\n        state.allowScenario = true;\n        state.allowBackground = true;\n        state.allowPlaceholders = false;\n        state.allowSteps = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // BACKGROUND\n      } else if (!state.inKeywordLine && state.allowBackground && stream.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\\-ho\\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // SCENARIO OUTLINE\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)) {\n        state.allowPlaceholders = true;\n        state.allowSteps = true;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // EXAMPLES\n      } else if (state.allowScenario && stream.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = true;\n        return \"keyword\";\n\n      // SCENARIO\n      } else if (!state.inKeywordLine && state.allowScenario && stream.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)) {\n        state.allowPlaceholders = false;\n        state.allowSteps = true;\n        state.allowBackground = false;\n        state.allowMultilineArgument = false;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // STEPS\n      } else if (!state.inKeywordLine && state.allowSteps && stream.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\\* )/)) {\n        state.inStep = true;\n        state.allowPlaceholders = true;\n        state.allowMultilineArgument = true;\n        state.inKeywordLine = true;\n        return \"keyword\";\n\n      // INLINE STRING\n      } else if (stream.match(/\"[^\"]*\"?/)) {\n        return \"string\";\n\n      // PLACEHOLDER\n      } else if (state.allowPlaceholders && stream.match(/<[^>]*>?/)) {\n        return \"variable\";\n\n      // Fall through\n      } else {\n        stream.next();\n        stream.eatWhile(/[^@\"<#]/);\n        return null;\n      }\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-feature\", \"gherkin\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/gherkin/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Gherkin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"gherkin.js\"></script>\n<style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Gherkin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Gherkin mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nFeature: Using Google\n  Background: \n    Something something\n    Something else\n  Scenario: Has a homepage\n    When I navigate to the google home page\n    Then the home page should contain the menu and the search form\n  Scenario: Searching for a term \n    When I navigate to the google home page\n    When I search for Tofu\n    Then the search results page is displayed\n    Then the search results page contains 10 individual search results\n    Then the search results contain a link to the wikipedia tofu page\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-feature</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/go/go.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"go\", function(config) {\n  var indentUnit = config.indentUnit;\n\n  var keywords = {\n    \"break\":true, \"case\":true, \"chan\":true, \"const\":true, \"continue\":true,\n    \"default\":true, \"defer\":true, \"else\":true, \"fallthrough\":true, \"for\":true,\n    \"func\":true, \"go\":true, \"goto\":true, \"if\":true, \"import\":true,\n    \"interface\":true, \"map\":true, \"package\":true, \"range\":true, \"return\":true,\n    \"select\":true, \"struct\":true, \"switch\":true, \"type\":true, \"var\":true,\n    \"bool\":true, \"byte\":true, \"complex64\":true, \"complex128\":true,\n    \"float32\":true, \"float64\":true, \"int8\":true, \"int16\":true, \"int32\":true,\n    \"int64\":true, \"string\":true, \"uint8\":true, \"uint16\":true, \"uint32\":true,\n    \"uint64\":true, \"int\":true, \"uint\":true, \"uintptr\":true\n  };\n\n  var atoms = {\n    \"true\":true, \"false\":true, \"iota\":true, \"nil\":true, \"append\":true,\n    \"cap\":true, \"close\":true, \"complex\":true, \"copy\":true, \"imag\":true,\n    \"len\":true, \"make\":true, \"new\":true, \"panic\":true, \"print\":true,\n    \"println\":true, \"real\":true, \"recover\":true\n  };\n\n  var isOperatorChar = /[+\\-*&^%:=<>!|\\/]/;\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\" || ch == \"`\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (/[\\d\\.]/.test(ch)) {\n      if (ch == \".\") {\n        stream.match(/^[0-9]+([eE][\\-+]?[0-9]+)?/);\n      } else if (ch == \"0\") {\n        stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/);\n      } else {\n        stream.match(/^[0-9]*\\.?[0-9]*([eE][\\-+]?[0-9]+)?/);\n      }\n      return \"number\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (cur == \"case\" || cur == \"default\") curPunc = \"case\";\n      return \"keyword\";\n    }\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || quote == \"`\"))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    if (!state.context.prev) return;\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        if (ctx.type == \"case\") ctx.type = \"}\";\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"case\") ctx.type = \"case\";\n      else if (curPunc == \"}\" && ctx.type == \"}\") ctx = popContext(state);\n      else if (curPunc == ctx.type) popContext(state);\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return 0;\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"case\" && /^(?:case|default)\\b/.test(textAfter)) {\n        state.context.type = \"}\";\n        return ctx.indented;\n      }\n      var closing = firstChar == ctx.type;\n      if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}):\",\n    fold: \"brace\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-go\", \"go\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/go/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Go mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"go.js\"></script>\n<style>.CodeMirror {border:1px solid #999; background:#ffc}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Go</a>\n  </ul>\n</div>\n\n<article>\n<h2>Go mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n// Prime Sieve in Go.\n// Taken from the Go specification.\n// Copyright © The Go Authors.\n\npackage main\n\nimport \"fmt\"\n\n// Send the sequence 2, 3, 4, ... to channel 'ch'.\nfunc generate(ch chan&lt;- int) {\n\tfor i := 2; ; i++ {\n\t\tch &lt;- i  // Send 'i' to channel 'ch'\n\t}\n}\n\n// Copy the values from channel 'src' to channel 'dst',\n// removing those divisible by 'prime'.\nfunc filter(src &lt;-chan int, dst chan&lt;- int, prime int) {\n\tfor i := range src {    // Loop over values received from 'src'.\n\t\tif i%prime != 0 {\n\t\t\tdst &lt;- i  // Send 'i' to channel 'dst'.\n\t\t}\n\t}\n}\n\n// The prime sieve: Daisy-chain filter processes together.\nfunc sieve() {\n\tch := make(chan int)  // Create a new channel.\n\tgo generate(ch)       // Start generate() as a subprocess.\n\tfor {\n\t\tprime := &lt;-ch\n\t\tfmt.Print(prime, \"\\n\")\n\t\tch1 := make(chan int)\n\t\tgo filter(ch, ch1, prime)\n\t\tch = ch1\n\t}\n}\n\nfunc main() {\n\tsieve()\n}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"elegant\",\n        matchBrackets: true,\n        indentUnit: 8,\n        tabSize: 8,\n        indentWithTabs: true,\n        mode: \"text/x-go\"\n      });\n    </script>\n\n    <p><strong>MIME type:</strong> <code>text/x-go</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/groovy/groovy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"groovy\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\n    \"abstract as assert boolean break byte case catch char class const continue def default \" +\n    \"do double else enum extends final finally float for goto if implements import in \" +\n    \"instanceof int interface long native new package private protected public return \" +\n    \"short static strictfp super switch synchronized threadsafe throw throws transient \" +\n    \"try void volatile while\");\n  var blockKeywords = words(\"catch class do else finally for if switch try while enum interface def\");\n  var atoms = words(\"null true false this\");\n\n  var curPunc;\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return startString(ch, stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      if (stream.eat(/eE/)) { stream.eat(/\\+\\-/); stream.eatWhile(/\\d/); }\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment);\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (expectExpression(state.lastToken)) {\n        return startString(ch, stream, state);\n      }\n    }\n    if (ch == \"-\" && stream.eat(\">\")) {\n      curPunc = \"->\";\n      return null;\n    }\n    if (/[+\\-*&%=<>!?|\\/~]/.test(ch)) {\n      stream.eatWhile(/[+\\-*&%=<>|~]/);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    if (ch == \"@\") { stream.eatWhile(/[\\w\\$_\\.]/); return \"meta\"; }\n    if (state.lastToken == \".\") return \"property\";\n    if (stream.eat(\":\")) { curPunc = \"proplabel\"; return \"property\"; }\n    var cur = stream.current();\n    if (atoms.propertyIsEnumerable(cur)) { return \"atom\"; }\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    return \"variable\";\n  }\n  tokenBase.isBase = true;\n\n  function startString(quote, stream, state) {\n    var tripleQuoted = false;\n    if (quote != \"/\" && stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\";\n    }\n    function t(stream, state) {\n      var escaped = false, next, end = !tripleQuoted;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          if (!tripleQuoted) { break; }\n          if (stream.match(quote + quote)) { end = true; break; }\n        }\n        if (quote == '\"' && next == \"$\" && !escaped && stream.eat(\"{\")) {\n          state.tokenize.push(tokenBaseUntilBrace());\n          return \"string\";\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize.pop();\n      return \"string\";\n    }\n    state.tokenize.push(t);\n    return t(stream, state);\n  }\n\n  function tokenBaseUntilBrace() {\n    var depth = 1;\n    function t(stream, state) {\n      if (stream.peek() == \"}\") {\n        depth--;\n        if (depth == 0) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        }\n      } else if (stream.peek() == \"{\") {\n        depth++;\n      }\n      return tokenBase(stream, state);\n    }\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize.pop();\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function expectExpression(last) {\n    return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n      last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      return {\n        tokenize: [tokenBase],\n        context: new Context((basecolumn || 0) - config.indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true,\n        lastToken: null\n      };\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        // Automatic semicolon insertion\n        if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) {\n          popContext(state); ctx = state.context;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = state.tokenize[state.tokenize.length-1](stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      // Handle indentation for {x -> \\n ... }\n      else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n        popContext(state);\n        state.context.align = false;\n      }\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      state.lastToken = curPunc || style;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (!state.tokenize[state.tokenize.length-1].isBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n      if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : config.indentUnit);\n    },\n\n    electricChars: \"{}\",\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-groovy\", \"groovy\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/groovy/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Groovy mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"groovy.js\"></script>\n<style>.CodeMirror {border-top: 1px solid #500; border-bottom: 1px solid #500;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Groovy</a>\n  </ul>\n</div>\n\n<article>\n<h2>Groovy mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n//Pattern for groovy script\ndef p = ~/.*\\.groovy/\nnew File( 'd:\\\\scripts' ).eachFileMatch(p) {f ->\n  // imports list\n  def imports = []\n  f.eachLine {\n    // condition to detect an import instruction\n    ln -> if ( ln =~ '^import .*' ) {\n      imports << \"${ln - 'import '}\"\n    }\n  }\n  // print thmen\n  if ( ! imports.empty ) {\n    println f\n    imports.each{ println \"   $it\" }\n  }\n}\n\n/* Coin changer demo code from http://groovy.codehaus.org */\n\nenum UsCoin {\n  quarter(25), dime(10), nickel(5), penny(1)\n  UsCoin(v) { value = v }\n  final value\n}\n\nenum OzzieCoin {\n  fifty(50), twenty(20), ten(10), five(5)\n  OzzieCoin(v) { value = v }\n  final value\n}\n\ndef plural(word, count) {\n  if (count == 1) return word\n  word[-1] == 'y' ? word[0..-2] + \"ies\" : word + \"s\"\n}\n\ndef change(currency, amount) {\n  currency.values().inject([]){ list, coin ->\n     int count = amount / coin.value\n     amount = amount % coin.value\n     list += \"$count ${plural(coin.toString(), count)}\"\n  }\n}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-groovy\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-groovy</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haml/haml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  // full haml mode. This handled embeded ruby and html fragments too\n  CodeMirror.defineMode(\"haml\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n\n    function rubyInQuote(endQuote) {\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = html;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n\n    function ruby(stream, state) {\n      if (stream.match(\"-#\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function html(stream, state) {\n      var ch = stream.peek();\n\n      // handle haml declarations. All declarations that cant be handled here\n      // will be passed to html mode\n      if (state.previousToken.style == \"comment\" ) {\n        if (state.indented > state.previousToken.indented) {\n          stream.skipToEnd();\n          return \"commentLine\";\n        }\n      }\n\n      if (state.startOfLine) {\n        if (ch == \"!\" && stream.match(\"!!\")) {\n          stream.skipToEnd();\n          return \"tag\";\n        } else if (stream.match(/^%[\\w:#\\.]+=/)) {\n          state.tokenize = ruby;\n          return \"hamlTag\";\n        } else if (stream.match(/^%[\\w:]+/)) {\n          return \"hamlTag\";\n        } else if (ch == \"/\" ) {\n          stream.skipToEnd();\n          return \"comment\";\n        }\n      }\n\n      if (state.startOfLine || state.previousToken.style == \"hamlTag\") {\n        if ( ch == \"#\" || ch == \".\") {\n          stream.match(/[\\w-#\\.]*/);\n          return \"hamlAttribute\";\n        }\n      }\n\n      // donot handle --> as valid ruby, make it HTML close comment instead\n      if (state.startOfLine && !stream.match(\"-->\", false) && (ch == \"=\" || ch == \"-\" )) {\n        state.tokenize = ruby;\n        return state.tokenize(stream, state);\n      }\n\n      if (state.previousToken.style == \"hamlTag\" ||\n          state.previousToken.style == \"closeAttributeTag\" ||\n          state.previousToken.style == \"hamlAttribute\") {\n        if (ch == \"(\") {\n          state.tokenize = rubyInQuote(\")\");\n          return state.tokenize(stream, state);\n        } else if (ch == \"{\") {\n          state.tokenize = rubyInQuote(\"}\");\n          return state.tokenize(stream, state);\n        }\n      }\n\n      return htmlMode.token(stream, state.htmlState);\n    }\n\n    return {\n      // default to html mode\n      startState: function() {\n        var htmlState = htmlMode.startState();\n        var rubyState = rubyMode.startState();\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          indented: 0,\n          previousToken: { style: null, indented: 0},\n          tokenize: html\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          indented: state.indented,\n          previousToken: state.previousToken,\n          tokenize: state.tokenize\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        // dont record comment line as we only want to measure comment line with\n        // the opening comment block\n        if (style && style != \"commentLine\") {\n          state.previousToken = { style: style, indented: state.indented };\n        }\n        // if current state is ruby and the previous token is not `,` reset the\n        // tokenize to html\n        if (stream.eol() && state.tokenize == ruby) {\n          stream.backUp(1);\n          var ch = stream.peek();\n          stream.next();\n          if (ch && ch != \",\") {\n            state.tokenize = html;\n          }\n        }\n        // reprocess some of the specific style tag when finish setting previousToken\n        if (style == \"hamlTag\") {\n          style = \"tag\";\n        } else if (style == \"commentLine\") {\n          style = \"comment\";\n        } else if (style == \"hamlAttribute\") {\n          style = \"attribute\";\n        } else if (style == \"closeAttributeTag\") {\n          style = null;\n        }\n        return style;\n      }\n    };\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-haml\", \"haml\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HAML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../ruby/ruby.js\"></script>\n<script src=\"haml.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HAML</a>\n  </ul>\n</div>\n\n<article>\n<h2>HAML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n!!!\n#content\n.left.column(title=\"title\"){:href => \"/hello\", :test => \"#{hello}_#{world}\"}\n    <!-- This is a comment -->\n    %h2 Welcome to our site!\n    %p= puts \"HAML MODE\"\n  .right.column\n    = render :partial => \"sidebar\"\n\n.container\n  .row\n    .span8\n      %h1.title= @page_title\n%p.title= @page_title\n%p\n  /\n    The same as HTML comment\n    Hello multiline comment\n\n  -# haml comment\n      This wont be displayed\n      nor will this\n  Date/Time:\n  - now = DateTime.now\n  %strong= now\n  - if now > DateTime.parse(\"December 31, 2006\")\n    = \"Happy new \" + \"year!\"\n\n%title\n  = @title\n  \\= @title\n  <h1>Title</h1>\n  <h1 title=\"HELLO\">\n    Title\n  </h1>\n    </textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-haml\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haml</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#haml_*\">normal</a>,  <a href=\"../../test/index.html#verbose,haml_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haml/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, \"haml\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Requires at least one media query\n  MT(\"elementName\",\n     \"[tag %h1] Hey There\");\n\n  MT(\"oneElementPerLine\",\n     \"[tag %h1] Hey There %h2\");\n\n  MT(\"idSelector\",\n     \"[tag %h1][attribute #test] Hey There\");\n\n  MT(\"classSelector\",\n     \"[tag %h1][attribute .hello] Hey There\");\n\n  MT(\"docType\",\n     \"[tag !!! XML]\");\n\n  MT(\"comment\",\n     \"[comment / Hello WORLD]\");\n\n  MT(\"notComment\",\n     \"[tag %h1] This is not a / comment \");\n\n  MT(\"attributes\",\n     \"[tag %a]([variable title][operator =][string \\\"test\\\"]){[atom :title] [operator =>] [string \\\"test\\\"]}\");\n\n  MT(\"htmlCode\",\n     \"[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]\");\n\n  MT(\"rubyBlock\",\n     \"[operator =][variable-2 @item]\");\n\n  MT(\"selectorRubyBlock\",\n     \"[tag %a.selector=] [variable-2 @item]\");\n\n  MT(\"nestedRubyBlock\",\n      \"[tag %a]\",\n      \"   [operator =][variable puts] [string \\\"test\\\"]\");\n\n  MT(\"multilinePlaintext\",\n      \"[tag %p]\",\n      \"  Hello,\",\n      \"  World\");\n\n  MT(\"multilineRuby\",\n      \"[tag %p]\",\n      \"  [comment -# this is a comment]\",\n      \"     [comment and this is a comment too]\",\n      \"  Date/Time\",\n      \"  [operator -] [variable now] [operator =] [tag DateTime][operator .][property now]\",\n      \"  [tag %strong=] [variable now]\",\n      \"  [operator -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \\\"December 31, 2006\\\"])\",\n      \"     [operator =][string \\\"Happy\\\"]\",\n      \"     [operator =][string \\\"Belated\\\"]\",\n      \"     [operator =][string \\\"Birthday\\\"]\");\n\n  MT(\"multilineComment\",\n      \"[comment /]\",\n      \"  [comment Multiline]\",\n      \"  [comment Comment]\");\n\n  MT(\"hamlComment\",\n     \"[comment -# this is a comment]\");\n\n  MT(\"multilineHamlComment\",\n     \"[comment -# this is a comment]\",\n     \"   [comment and this is a comment too]\");\n\n  MT(\"multilineHTMLComment\",\n    \"[comment <!--]\",\n    \"  [comment what a comment]\",\n    \"  [comment -->]\");\n\n  MT(\"hamlAfterRubyTag\",\n    \"[attribute .block]\",\n    \"  [tag %strong=] [variable now]\",\n    \"  [attribute .test]\",\n    \"     [operator =][variable now]\",\n    \"  [attribute .right]\");\n\n  MT(\"stretchedRuby\",\n     \"[operator =] [variable puts] [string \\\"Hello\\\"],\",\n     \"   [string \\\"World\\\"]\");\n\n  MT(\"interpolationInHashAttribute\",\n     //\"[tag %div]{[atom :id] [operator =>] [string \\\"#{][variable test][string }_#{][variable ting][string }\\\"]} test\");\n     \"[tag %div]{[atom :id] [operator =>] [string \\\"#{][variable test][string }_#{][variable ting][string }\\\"]} test\");\n\n  MT(\"interpolationInHTMLAttribute\",\n     \"[tag %div]([variable title][operator =][string \\\"#{][variable test][string }_#{][variable ting]()[string }\\\"]) Test\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haskell/haskell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haskell\", function(_config, modeConfig) {\n\n  function switchState(source, setState, f) {\n    setState(f);\n    return f(source, setState);\n  }\n\n  // These should all be Unicode extended, as per the Haskell 2010 report\n  var smallRE = /[a-z_]/;\n  var largeRE = /[A-Z]/;\n  var digitRE = /\\d/;\n  var hexitRE = /[0-9A-Fa-f]/;\n  var octitRE = /[0-7]/;\n  var idRE = /[a-z_A-Z0-9'\\xa1-\\uffff]/;\n  var symbolRE = /[-!#$%&*+.\\/<=>?@\\\\^|~:]/;\n  var specialRE = /[(),;[\\]`{}]/;\n  var whiteCharRE = /[ \\t\\v\\f]/; // newlines are handled in tokenizer\n\n  function normal(source, setState) {\n    if (source.eatWhile(whiteCharRE)) {\n      return null;\n    }\n\n    var ch = source.next();\n    if (specialRE.test(ch)) {\n      if (ch == '{' && source.eat('-')) {\n        var t = \"comment\";\n        if (source.eat('#')) {\n          t = \"meta\";\n        }\n        return switchState(source, setState, ncomment(t, 1));\n      }\n      return null;\n    }\n\n    if (ch == '\\'') {\n      if (source.eat('\\\\')) {\n        source.next();  // should handle other escapes here\n      }\n      else {\n        source.next();\n      }\n      if (source.eat('\\'')) {\n        return \"string\";\n      }\n      return \"error\";\n    }\n\n    if (ch == '\"') {\n      return switchState(source, setState, stringLiteral);\n    }\n\n    if (largeRE.test(ch)) {\n      source.eatWhile(idRE);\n      if (source.eat('.')) {\n        return \"qualifier\";\n      }\n      return \"variable-2\";\n    }\n\n    if (smallRE.test(ch)) {\n      source.eatWhile(idRE);\n      return \"variable\";\n    }\n\n    if (digitRE.test(ch)) {\n      if (ch == '0') {\n        if (source.eat(/[xX]/)) {\n          source.eatWhile(hexitRE); // should require at least 1\n          return \"integer\";\n        }\n        if (source.eat(/[oO]/)) {\n          source.eatWhile(octitRE); // should require at least 1\n          return \"number\";\n        }\n      }\n      source.eatWhile(digitRE);\n      var t = \"number\";\n      if (source.match(/^\\.\\d+/)) {\n        t = \"number\";\n      }\n      if (source.eat(/[eE]/)) {\n        t = \"number\";\n        source.eat(/[-+]/);\n        source.eatWhile(digitRE); // should require at least 1\n      }\n      return t;\n    }\n\n    if (ch == \".\" && source.eat(\".\"))\n      return \"keyword\";\n\n    if (symbolRE.test(ch)) {\n      if (ch == '-' && source.eat(/-/)) {\n        source.eatWhile(/-/);\n        if (!source.eat(symbolRE)) {\n          source.skipToEnd();\n          return \"comment\";\n        }\n      }\n      var t = \"variable\";\n      if (ch == ':') {\n        t = \"variable-2\";\n      }\n      source.eatWhile(symbolRE);\n      return t;\n    }\n\n    return \"error\";\n  }\n\n  function ncomment(type, nest) {\n    if (nest == 0) {\n      return normal;\n    }\n    return function(source, setState) {\n      var currNest = nest;\n      while (!source.eol()) {\n        var ch = source.next();\n        if (ch == '{' && source.eat('-')) {\n          ++currNest;\n        }\n        else if (ch == '-' && source.eat('}')) {\n          --currNest;\n          if (currNest == 0) {\n            setState(normal);\n            return type;\n          }\n        }\n      }\n      setState(ncomment(type, currNest));\n      return type;\n    };\n  }\n\n  function stringLiteral(source, setState) {\n    while (!source.eol()) {\n      var ch = source.next();\n      if (ch == '\"') {\n        setState(normal);\n        return \"string\";\n      }\n      if (ch == '\\\\') {\n        if (source.eol() || source.eat(whiteCharRE)) {\n          setState(stringGap);\n          return \"string\";\n        }\n        if (source.eat('&')) {\n        }\n        else {\n          source.next(); // should handle other escapes here\n        }\n      }\n    }\n    setState(normal);\n    return \"error\";\n  }\n\n  function stringGap(source, setState) {\n    if (source.eat('\\\\')) {\n      return switchState(source, setState, stringLiteral);\n    }\n    source.next();\n    setState(normal);\n    return \"error\";\n  }\n\n\n  var wellKnownWords = (function() {\n    var wkw = {};\n    function setType(t) {\n      return function () {\n        for (var i = 0; i < arguments.length; i++)\n          wkw[arguments[i]] = t;\n      };\n    }\n\n    setType(\"keyword\")(\n      \"case\", \"class\", \"data\", \"default\", \"deriving\", \"do\", \"else\", \"foreign\",\n      \"if\", \"import\", \"in\", \"infix\", \"infixl\", \"infixr\", \"instance\", \"let\",\n      \"module\", \"newtype\", \"of\", \"then\", \"type\", \"where\", \"_\");\n\n    setType(\"keyword\")(\n      \"\\.\\.\", \":\", \"::\", \"=\", \"\\\\\", \"\\\"\", \"<-\", \"->\", \"@\", \"~\", \"=>\");\n\n    setType(\"builtin\")(\n      \"!!\", \"$!\", \"$\", \"&&\", \"+\", \"++\", \"-\", \".\", \"/\", \"/=\", \"<\", \"<=\", \"=<<\",\n      \"==\", \">\", \">=\", \">>\", \">>=\", \"^\", \"^^\", \"||\", \"*\", \"**\");\n\n    setType(\"builtin\")(\n      \"Bool\", \"Bounded\", \"Char\", \"Double\", \"EQ\", \"Either\", \"Enum\", \"Eq\",\n      \"False\", \"FilePath\", \"Float\", \"Floating\", \"Fractional\", \"Functor\", \"GT\",\n      \"IO\", \"IOError\", \"Int\", \"Integer\", \"Integral\", \"Just\", \"LT\", \"Left\",\n      \"Maybe\", \"Monad\", \"Nothing\", \"Num\", \"Ord\", \"Ordering\", \"Rational\", \"Read\",\n      \"ReadS\", \"Real\", \"RealFloat\", \"RealFrac\", \"Right\", \"Show\", \"ShowS\",\n      \"String\", \"True\");\n\n    setType(\"builtin\")(\n      \"abs\", \"acos\", \"acosh\", \"all\", \"and\", \"any\", \"appendFile\", \"asTypeOf\",\n      \"asin\", \"asinh\", \"atan\", \"atan2\", \"atanh\", \"break\", \"catch\", \"ceiling\",\n      \"compare\", \"concat\", \"concatMap\", \"const\", \"cos\", \"cosh\", \"curry\",\n      \"cycle\", \"decodeFloat\", \"div\", \"divMod\", \"drop\", \"dropWhile\", \"either\",\n      \"elem\", \"encodeFloat\", \"enumFrom\", \"enumFromThen\", \"enumFromThenTo\",\n      \"enumFromTo\", \"error\", \"even\", \"exp\", \"exponent\", \"fail\", \"filter\",\n      \"flip\", \"floatDigits\", \"floatRadix\", \"floatRange\", \"floor\", \"fmap\",\n      \"foldl\", \"foldl1\", \"foldr\", \"foldr1\", \"fromEnum\", \"fromInteger\",\n      \"fromIntegral\", \"fromRational\", \"fst\", \"gcd\", \"getChar\", \"getContents\",\n      \"getLine\", \"head\", \"id\", \"init\", \"interact\", \"ioError\", \"isDenormalized\",\n      \"isIEEE\", \"isInfinite\", \"isNaN\", \"isNegativeZero\", \"iterate\", \"last\",\n      \"lcm\", \"length\", \"lex\", \"lines\", \"log\", \"logBase\", \"lookup\", \"map\",\n      \"mapM\", \"mapM_\", \"max\", \"maxBound\", \"maximum\", \"maybe\", \"min\", \"minBound\",\n      \"minimum\", \"mod\", \"negate\", \"not\", \"notElem\", \"null\", \"odd\", \"or\",\n      \"otherwise\", \"pi\", \"pred\", \"print\", \"product\", \"properFraction\",\n      \"putChar\", \"putStr\", \"putStrLn\", \"quot\", \"quotRem\", \"read\", \"readFile\",\n      \"readIO\", \"readList\", \"readLn\", \"readParen\", \"reads\", \"readsPrec\",\n      \"realToFrac\", \"recip\", \"rem\", \"repeat\", \"replicate\", \"return\", \"reverse\",\n      \"round\", \"scaleFloat\", \"scanl\", \"scanl1\", \"scanr\", \"scanr1\", \"seq\",\n      \"sequence\", \"sequence_\", \"show\", \"showChar\", \"showList\", \"showParen\",\n      \"showString\", \"shows\", \"showsPrec\", \"significand\", \"signum\", \"sin\",\n      \"sinh\", \"snd\", \"span\", \"splitAt\", \"sqrt\", \"subtract\", \"succ\", \"sum\",\n      \"tail\", \"take\", \"takeWhile\", \"tan\", \"tanh\", \"toEnum\", \"toInteger\",\n      \"toRational\", \"truncate\", \"uncurry\", \"undefined\", \"unlines\", \"until\",\n      \"unwords\", \"unzip\", \"unzip3\", \"userError\", \"words\", \"writeFile\", \"zip\",\n      \"zip3\", \"zipWith\", \"zipWith3\");\n\n    var override = modeConfig.overrideKeywords;\n    if (override) for (var word in override) if (override.hasOwnProperty(word))\n      wkw[word] = override[word];\n\n    return wkw;\n  })();\n\n\n\n  return {\n    startState: function ()  { return { f: normal }; },\n    copyState:  function (s) { return { f: s.f }; },\n\n    token: function(stream, state) {\n      var t = state.f(stream, function(s) { state.f = s; });\n      var w = stream.current();\n      return wellKnownWords.hasOwnProperty(w) ? wellKnownWords[w] : t;\n    },\n\n    blockCommentStart: \"{-\",\n    blockCommentEnd: \"-}\",\n    lineComment: \"--\"\n  };\n\n});\n\nCodeMirror.defineMIME(\"text/x-haskell\", \"haskell\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haskell/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Haskell mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/elegant.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"haskell.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Haskell</a>\n  </ul>\n</div>\n\n<article>\n<h2>Haskell mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nmodule UniquePerms (\n    uniquePerms\n    )\nwhere\n\n-- | Find all unique permutations of a list where there might be duplicates.\nuniquePerms :: (Eq a) => [a] -> [[a]]\nuniquePerms = permBag . makeBag\n\n-- | An unordered collection where duplicate values are allowed,\n-- but represented with a single value and a count.\ntype Bag a = [(a, Int)]\n\nmakeBag :: (Eq a) => [a] -> Bag a\nmakeBag [] = []\nmakeBag (a:as) = mix a $ makeBag as\n  where\n    mix a []                        = [(a,1)]\n    mix a (bn@(b,n):bs) | a == b    = (b,n+1):bs\n                        | otherwise = bn : mix a bs\n\npermBag :: Bag a -> [[a]]\npermBag [] = [[]]\npermBag bs = concatMap (\\(f,cs) -> map (f:) $ permBag cs) . oneOfEach $ bs\n  where\n    oneOfEach [] = []\n    oneOfEach (an@(a,n):bs) =\n        let bs' = if n == 1 then bs else (a,n-1):bs\n        in (a,bs') : mapSnd (an:) (oneOfEach bs)\n    \n    apSnd f (a,b) = (a, f b)\n    mapSnd = map . apSnd\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"elegant\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haskell</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haxe/haxe.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"haxe\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  // Tokenizer\n\n  var keywords = function(){\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n    var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"}, attribute = {type:\"attribute\", style: \"attribute\"};\n  var type = kw(\"typedef\");\n    return {\n      \"if\": A, \"while\": A, \"else\": B, \"do\": B, \"try\": B,\n      \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"throw\": C,\n      \"var\": kw(\"var\"), \"inline\":attribute, \"static\": attribute, \"using\":kw(\"import\"),\n    \"public\": attribute, \"private\": attribute, \"cast\": kw(\"cast\"), \"import\": kw(\"import\"), \"macro\": kw(\"macro\"),\n      \"function\": kw(\"function\"), \"catch\": kw(\"catch\"), \"untyped\": kw(\"untyped\"), \"callback\": kw(\"cb\"),\n      \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n      \"in\": operator, \"never\": kw(\"property_access\"), \"trace\":kw(\"trace\"),\n    \"class\": type, \"abstract\":type, \"enum\":type, \"interface\":type, \"typedef\":type, \"extends\":type, \"implements\":type, \"dynamic\":type,\n      \"true\": atom, \"false\": atom, \"null\": atom\n    };\n  }();\n\n  var isOperatorChar = /[+\\-*&%=<>!?|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  function nextUntilUnescaped(stream, end) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (next == end && !escaped)\n        return false;\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return escaped;\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n\n  function haxeTokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, haxeTokenString(ch));\n    else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch))\n      return ret(ch);\n    else if (ch == \"0\" && stream.eat(/x/i)) {\n      stream.eatWhile(/[\\da-f]/i);\n      return ret(\"number\", \"number\");\n    }\n    else if (/\\d/.test(ch) || ch == \"-\" && stream.eat(/\\d/)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    }\n    else if (state.reAllowed && (ch == \"~\" && stream.eat(/\\//))) {\n      nextUntilUnescaped(stream, \"/\");\n      stream.eatWhile(/[gimsu]/);\n      return ret(\"regexp\", \"string-2\");\n    }\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, haxeTokenComment);\n      }\n      else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", null, stream.current());\n      }\n    }\n    else if (ch == \"#\") {\n        stream.skipToEnd();\n        return ret(\"conditional\", \"meta\");\n    }\n    else if (ch == \"@\") {\n      stream.eat(/:/);\n      stream.eatWhile(/[\\w_]/);\n      return ret (\"metadata\", \"meta\");\n    }\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", null, stream.current());\n    }\n    else {\n    var word;\n    if(/[A-Z]/.test(ch))\n    {\n      stream.eatWhile(/[\\w_<>]/);\n      word = stream.current();\n      return ret(\"type\", \"variable-3\", word);\n    }\n    else\n    {\n        stream.eatWhile(/[\\w_]/);\n        var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n        return (known && state.kwAllowed) ? ret(known.type, known.style, word) :\n                       ret(\"variable\", \"variable\", word);\n    }\n    }\n  }\n\n  function haxeTokenString(quote) {\n    return function(stream, state) {\n      if (!nextUntilUnescaped(stream, quote))\n        state.tokenize = haxeTokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function haxeTokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = haxeTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true};\n\n  function HaxeLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n  }\n\n  function parseHaxe(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n    if (type == \"variable\" && imported(state, content)) return \"variable-3\";\n        return style;\n      }\n    }\n  }\n\n  function imported(state, typename)\n  {\n  if (/[a-z]/.test(typename.charAt(0)))\n    return false;\n  var len = state.importedtypes.length;\n  for (var i = 0; i<len; i++)\n    if(state.importedtypes[i]==typename) return true;\n  }\n\n\n  function registerimport(importname) {\n  var state = cx.state;\n  for (var t = state.importedtypes; t; t = t.next)\n    if(t.name == importname) return;\n  state.importedtypes = { name: importname, next: state.importedtypes };\n  }\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function register(varname) {\n    var state = cx.state;\n    if (state.context) {\n      cx.marked = \"def\";\n      for (var v = state.localVars; v; v = v.next)\n        if (v.name == varname) return;\n      state.localVars = {name: varname, next: state.localVars};\n    }\n  }\n\n  // Combinators\n\n  var defaultVars = {name: \"this\", next: null};\n  function pushcontext() {\n    if (!cx.state.context) cx.state.localVars = defaultVars;\n    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars;\n    cx.state.context = cx.state.context.prev;\n  }\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state;\n      state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function f(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\") return pass();\n      else return cont(f);\n    };\n    return f;\n  }\n\n  function statement(type) {\n    if (type == \"@\") return cont(metadef);\n    if (type == \"var\") return cont(pushlex(\"vardef\"), vardef1, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), pushcontext, block, poplex, popcontext);\n    if (type == \";\") return cont();\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), expect(\"(\"), pushlex(\")\"), forspec1, expect(\")\"),\n                                      poplex, statement, poplex);\n    if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n    if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n                                         block, poplex, poplex);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n                                        statement, poplex, popcontext);\n    if (type == \"import\") return cont(importdef, expect(\";\"));\n    if (type == \"typedef\") return cont(typedef);\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function expression(type) {\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"keyword c\") return cont(maybeexpression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeoperator);\n    if (type == \"operator\") return cont(expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(expression, \"]\"), poplex, maybeoperator);\n    if (type == \"{\") return cont(pushlex(\"}\"), commasep(objprop, \"}\"), poplex, maybeoperator);\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n\n  function maybeoperator(type, value) {\n    if (type == \"operator\" && /\\+\\+|--/.test(value)) return cont(maybeoperator);\n    if (type == \"operator\" || type == \":\") return cont(expression);\n    if (type == \";\") return;\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(expression, \")\"), poplex, maybeoperator);\n    if (type == \".\") return cont(property, maybeoperator);\n    if (type == \"[\") return cont(pushlex(\"]\"), expression, expect(\"]\"), poplex, maybeoperator);\n  }\n\n  function maybeattribute(type) {\n    if (type == \"attribute\") return cont(maybeattribute);\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"var\") return cont(vardef1);\n  }\n\n  function metadef(type) {\n    if(type == \":\") return cont(metadef);\n    if(type == \"variable\") return cont(metadef);\n    if(type == \"(\") return cont(pushlex(\")\"), commasep(metaargs, \")\"), poplex, statement);\n  }\n  function metaargs(type) {\n    if(type == \"variable\") return cont();\n  }\n\n  function importdef (type, value) {\n  if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n  else if(type == \"variable\" || type == \"property\" || type == \".\" || value == \"*\") return cont(importdef);\n  }\n\n  function typedef (type, value)\n  {\n  if(type == \"variable\" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); }\n  else if (type == \"type\" && /[A-Z]/.test(value.charAt(0))) { return cont(); }\n  }\n\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperator, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type) {\n    if (type == \"variable\") cx.marked = \"property\";\n    if (atomicTypes.hasOwnProperty(type)) return cont(expect(\":\"), expression);\n  }\n  function commasep(what, end) {\n    function proceed(type) {\n      if (type == \",\") return cont(what, proceed);\n      if (type == end) return cont();\n      return cont(expect(end));\n    }\n    return function(type) {\n      if (type == end) return cont();\n      else return pass(what, proceed);\n    };\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function vardef1(type, value) {\n    if (type == \"variable\"){register(value); return cont(typeuse, vardef2);}\n    return cont();\n  }\n  function vardef2(type, value) {\n    if (value == \"=\") return cont(expression, vardef2);\n    if (type == \",\") return cont(vardef1);\n  }\n  function forspec1(type, value) {\n  if (type == \"variable\") {\n    register(value);\n  }\n  return cont(pushlex(\")\"), pushcontext, forin, expression, poplex, statement, popcontext);\n  }\n  function forin(_type, value) {\n    if (value == \"in\") return cont();\n  }\n  function functiondef(type, value) {\n    if (type == \"variable\") {register(value); return cont(functiondef);}\n    if (value == \"new\") return cont(functiondef);\n    if (type == \"(\") return cont(pushlex(\")\"), pushcontext, commasep(funarg, \")\"), poplex, typeuse, statement, popcontext);\n  }\n  function typeuse(type) {\n    if(type == \":\") return cont(typestring);\n  }\n  function typestring(type) {\n    if(type == \"type\") return cont();\n    if(type == \"variable\") return cont();\n    if(type == \"{\") return cont(pushlex(\"}\"), commasep(typeprop, \"}\"), poplex);\n  }\n  function typeprop(type) {\n    if(type == \"variable\") return cont(typeuse);\n  }\n  function funarg(type, value) {\n    if (type == \"variable\") {register(value); return cont(typeuse);}\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n    var defaulttypes = [\"Int\", \"Float\", \"String\", \"Void\", \"Std\", \"Bool\", \"Dynamic\", \"Array\"];\n      return {\n        tokenize: haxeTokenBase,\n        reAllowed: true,\n        kwAllowed: true,\n        cc: [],\n        lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n    importedtypes: defaulttypes,\n        context: parserConfig.localVars && {vars: parserConfig.localVars},\n        indented: 0\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.reAllowed = !!(type == \"operator\" || type == \"keyword c\" || type.match(/^[\\[{}\\(,;:]$/));\n      state.kwAllowed = type != '.';\n      return parseHaxe(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != haxeTokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n      if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n      if (type == \"vardef\") return lexical.indented + 4;\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"stat\" || type == \"form\") return lexical.indented + indentUnit;\n      else if (lexical.info == \"switch\" && !closing)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-haxe\", \"haxe\");\n\nCodeMirror.defineMode(\"hxml\", function () {\n\n  return {\n    startState: function () {\n      return {\n        define: false,\n        inString: false\n      };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      var sol = stream.sol();\n\n      ///* comments */\n      if (ch == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (sol && ch == \"-\") {\n        var style = \"variable-2\";\n\n        stream.eat(/-/);\n\n        if (stream.peek() == \"-\") {\n          stream.eat(/-/);\n          style = \"keyword a\";\n        }\n\n        if (stream.peek() == \"D\") {\n          stream.eat(/[D]/);\n          style = \"keyword c\";\n          state.define = true;\n        }\n\n        stream.eatWhile(/[A-Z]/i);\n        return style;\n      }\n\n      var ch = stream.peek();\n\n      if (state.inString == false && ch == \"'\") {\n        state.inString = true;\n        ch = stream.next();\n      }\n\n      if (state.inString == true) {\n        if (stream.skipTo(\"'\")) {\n\n        } else {\n          stream.skipToEnd();\n        }\n\n        if (stream.peek() == \"'\") {\n          stream.next();\n          state.inString = false;\n        }\n\n        return \"string\";\n      }\n\n      stream.next();\n      return null;\n    },\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-hxml\", \"hxml\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/haxe/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Haxe mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"haxe.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Haxe</a>\n  </ul>\n</div>\n\n<article>\n<h2>Haxe mode</h2>\n\n\n<div><p><textarea id=\"code-haxe\" name=\"code\">\nimport one.two.Three;\n\n@attr(\"test\")\nclass Foo&lt;T&gt; extends Three\n{\n\tpublic function new()\n\t{\n\t\tnoFoo = 12;\n\t}\n\t\n\tpublic static inline function doFoo(obj:{k:Int, l:Float}):Int\n\t{\n\t\tfor(i in 0...10)\n\t\t{\n\t\t\tobj.k++;\n\t\t\ttrace(i);\n\t\t\tvar var1 = new Array();\n\t\t\tif(var1.length > 1)\n\t\t\t\tthrow \"Error\";\n\t\t}\n\t\t// The following line should not be colored, the variable is scoped out\n\t\tvar1;\n\t\t/* Multi line\n\t\t * Comment test\n\t\t */\n\t\treturn obj.k;\n\t}\n\tprivate function bar():Void\n\t{\n\t\t#if flash\n\t\tvar t1:String = \"1.21\";\n\t\t#end\n\t\ttry {\n\t\t\tdoFoo({k:3, l:1.2});\n\t\t}\n\t\tcatch (e : String) {\n\t\t\ttrace(e);\n\t\t}\n\t\tvar t2:Float = cast(3.2);\n\t\tvar t3:haxe.Timer = new haxe.Timer();\n\t\tvar t4 = {k:Std.int(t2), l:Std.parseFloat(t1)};\n\t\tvar t5 = ~/123+.*$/i;\n\t\tdoFoo(t4);\n\t\tuntyped t1 = 4;\n\t\tbob = new Foo&lt;Int&gt;\n\t}\n\tpublic var okFoo(default, never):Float;\n\tvar noFoo(getFoo, null):Int;\n\tfunction getFoo():Int {\n\t\treturn noFoo;\n\t}\n\t\n\tpublic var three:Int;\n}\nenum Color\n{\n\tred;\n\tgreen;\n\tblue;\n\tgrey( v : Int );\n\trgb (r:Int,g:Int,b:Int);\n}\n</textarea></p>\n\n<p>Hxml mode:</p>\n\n<p><textarea id=\"code-hxml\">\n-cp test\n-js path/to/file.js\n#-remap nme:flash\n--next\n-D source-map-content\n-cmd 'test'\n-lib lime\n</textarea></p>\n</div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code-haxe\"), {\n      \tmode: \"haxe\",\n        lineNumbers: true,\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n      \n      editor = CodeMirror.fromTextArea(document.getElementById(\"code-hxml\"), {\n      \tmode: \"hxml\",\n        lineNumbers: true,\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-haxe, text/x-hxml</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/htmlembedded/htmlembedded.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"htmlembedded\", function(config, parserConfig) {\n\n  //config settings\n  var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i,\n      scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i;\n\n  //inner modes\n  var scriptingMode, htmlMixedMode;\n\n  //tokenizer when in html mode\n  function htmlDispatch(stream, state) {\n      if (stream.match(scriptStartRegex, false)) {\n          state.token=scriptingDispatch;\n          return scriptingMode.token(stream, state.scriptState);\n          }\n      else\n          return htmlMixedMode.token(stream, state.htmlState);\n    }\n\n  //tokenizer when in scripting mode\n  function scriptingDispatch(stream, state) {\n      if (stream.match(scriptEndRegex, false))  {\n          state.token=htmlDispatch;\n          return htmlMixedMode.token(stream, state.htmlState);\n         }\n      else\n          return scriptingMode.token(stream, state.scriptState);\n         }\n\n\n  return {\n    startState: function() {\n      scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec);\n      htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, \"htmlmixed\");\n      return {\n          token :  parserConfig.startOpen ? scriptingDispatch : htmlDispatch,\n          htmlState : CodeMirror.startState(htmlMixedMode),\n          scriptState : CodeMirror.startState(scriptingMode)\n      };\n    },\n\n    token: function(stream, state) {\n      return state.token(stream, state);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.token == htmlDispatch)\n        return htmlMixedMode.indent(state.htmlState, textAfter);\n      else if (scriptingMode.indent)\n        return scriptingMode.indent(state.scriptState, textAfter);\n    },\n\n    copyState: function(state) {\n      return {\n       token : state.token,\n       htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState),\n       scriptState : CodeMirror.copyState(scriptingMode, state.scriptState)\n      };\n    },\n\n    innerMode: function(state) {\n      if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode};\n      else return {state: state.htmlState, mode: htmlMixedMode};\n    }\n  };\n}, \"htmlmixed\");\n\nCodeMirror.defineMIME(\"application/x-ejs\", { name: \"htmlembedded\", scriptingModeSpec:\"javascript\"});\nCodeMirror.defineMIME(\"application/x-aspx\", { name: \"htmlembedded\", scriptingModeSpec:\"text/x-csharp\"});\nCodeMirror.defineMIME(\"application/x-jsp\", { name: \"htmlembedded\", scriptingModeSpec:\"text/x-java\"});\nCodeMirror.defineMIME(\"application/x-erb\", { name: \"htmlembedded\", scriptingModeSpec:\"ruby\"});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/htmlembedded/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Html Embedded Scripts mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"htmlembedded.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Html Embedded Scripts</a>\n  </ul>\n</div>\n\n<article>\n<h2>Html Embedded Scripts mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<%\nfunction hello(who) {\n\treturn \"Hello \" + who;\n}\n%>\nThis is an example of EJS (embedded javascript)\n<p>The program says <%= hello(\"world\") %>.</p>\n<script>\n\talert(\"And here is some normal JS code\"); // also colored\n</script>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"application/x-ejs\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on\n    JavaScript, CSS and XML.<br />Other dependancies include those of the scriping language chosen.</p>\n\n    <p><strong>MIME types defined:</strong> <code>application/x-aspx</code> (ASP.NET), \n    <code>application/x-ejs</code> (Embedded Javascript), <code>application/x-jsp</code> (JavaServer Pages)</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/htmlmixed/htmlmixed.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"htmlmixed\", function(config, parserConfig) {\n  var htmlMode = CodeMirror.getMode(config, {name: \"xml\",\n                                             htmlMode: true,\n                                             multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n                                             multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag});\n  var cssMode = CodeMirror.getMode(config, \"css\");\n\n  var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes;\n  scriptTypes.push({matches: /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^$/i,\n                    mode: CodeMirror.getMode(config, \"javascript\")});\n  if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) {\n    var conf = scriptTypesConf[i];\n    scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)});\n  }\n  scriptTypes.push({matches: /./,\n                    mode: CodeMirror.getMode(config, \"text/plain\")});\n\n  function html(stream, state) {\n    var tagName = state.htmlState.tagName;\n    if (tagName) tagName = tagName.toLowerCase();\n    var style = htmlMode.token(stream, state.htmlState);\n    if (tagName == \"script\" && /\\btag\\b/.test(style) && stream.current() == \">\") {\n      // Script block: mode to change to depends on type attribute\n      var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\\btype\\s*=\\s*(\"[^\"]+\"|'[^']+'|\\S+)[^<]*$/i);\n      scriptType = scriptType ? scriptType[1] : \"\";\n      if (scriptType && /[\\\"\\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1);\n      for (var i = 0; i < scriptTypes.length; ++i) {\n        var tp = scriptTypes[i];\n        if (typeof tp.matches == \"string\" ? scriptType == tp.matches : tp.matches.test(scriptType)) {\n          if (tp.mode) {\n            state.token = script;\n            state.localMode = tp.mode;\n            state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, \"\"));\n          }\n          break;\n        }\n      }\n    } else if (tagName == \"style\" && /\\btag\\b/.test(style) && stream.current() == \">\") {\n      state.token = css;\n      state.localMode = cssMode;\n      state.localState = cssMode.startState(htmlMode.indent(state.htmlState, \"\"));\n    }\n    return style;\n  }\n  function maybeBackup(stream, pat, style) {\n    var cur = stream.current();\n    var close = cur.search(pat), m;\n    if (close > -1) stream.backUp(cur.length - close);\n    else if (m = cur.match(/<\\/?$/)) {\n      stream.backUp(cur.length);\n      if (!stream.match(pat, false)) stream.match(cur);\n    }\n    return style;\n  }\n  function script(stream, state) {\n    if (stream.match(/^<\\/\\s*script\\s*>/i, false)) {\n      state.token = html;\n      state.localState = state.localMode = null;\n      return null;\n    }\n    return maybeBackup(stream, /<\\/\\s*script\\s*>/,\n                       state.localMode.token(stream, state.localState));\n  }\n  function css(stream, state) {\n    if (stream.match(/^<\\/\\s*style\\s*>/i, false)) {\n      state.token = html;\n      state.localState = state.localMode = null;\n      return null;\n    }\n    return maybeBackup(stream, /<\\/\\s*style\\s*>/,\n                       cssMode.token(stream, state.localState));\n  }\n\n  return {\n    startState: function() {\n      var state = htmlMode.startState();\n      return {token: html, localMode: null, localState: null, htmlState: state};\n    },\n\n    copyState: function(state) {\n      if (state.localState)\n        var local = CodeMirror.copyState(state.localMode, state.localState);\n      return {token: state.token, localMode: state.localMode, localState: local,\n              htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n    },\n\n    token: function(stream, state) {\n      return state.token(stream, state);\n    },\n\n    indent: function(state, textAfter) {\n      if (!state.localMode || /^\\s*<\\//.test(textAfter))\n        return htmlMode.indent(state.htmlState, textAfter);\n      else if (state.localMode.indent)\n        return state.localMode.indent(state.localState, textAfter);\n      else\n        return CodeMirror.Pass;\n    },\n\n    innerMode: function(state) {\n      return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n    }\n  };\n}, \"xml\", \"javascript\", \"css\");\n\nCodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/htmlmixed/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HTML mixed mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/selection/selection-pointer.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../vbscript/vbscript.js\"></script>\n<script src=\"htmlmixed.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HTML mixed</a>\n  </ul>\n</div>\n\n<article>\n<h2>HTML mixed mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<html style=\"color: green\">\n  <!-- this is a comment -->\n  <head>\n    <title>Mixed HTML Example</title>\n    <style type=\"text/css\">\n      h1 {font-family: comic sans; color: #f0f;}\n      div {background: yellow !important;}\n      body {\n        max-width: 50em;\n        margin: 1em 2em 1em 5em;\n      }\n    </style>\n  </head>\n  <body>\n    <h1>Mixed HTML Example</h1>\n    <script>\n      function jsFunc(arg1, arg2) {\n        if (arg1 && arg2) document.body.innerHTML = \"achoo\";\n      }\n    </script>\n  </body>\n</html>\n</textarea></form>\n    <script>\n      // Define an extended mixed-mode that understands vbscript and\n      // leaves mustache/handlebars embedded templates in html mode\n      var mixedMode = {\n        name: \"htmlmixed\",\n        scriptTypes: [{matches: /\\/x-handlebars-template|\\/x-mustache/i,\n                       mode: null},\n                      {matches: /(text|application)\\/(x-)?vb(a|script)/i,\n                       mode: \"vbscript\"}]\n      };\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: mixedMode,\n        selectionPointer: true\n      });\n    </script>\n\n    <p>The HTML mixed mode depends on the XML, JavaScript, and CSS modes.</p>\n\n    <p>It takes an optional mode configuration\n    option, <code>scriptTypes</code>, which can be used to add custom\n    behavior for specific <code>&lt;script type=\"...\"></code> tags. If\n    given, it should hold an array of <code>{matches, mode}</code>\n    objects, where <code>matches</code> is a string or regexp that\n    matches the script type, and <code>mode</code> is\n    either <code>null</code>, for script types that should stay in\n    HTML mode, or a <a href=\"../../doc/manual.html#option_mode\">mode\n    spec</a> corresponding to the mode that should be used for the\n    script.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/html</code>\n    (redefined, only takes effect if you load this parser after the\n    XML parser).</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/http/http.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"http\", function() {\n  function failFirstLine(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return \"error\";\n  }\n\n  function start(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d/)) {\n      state.cur = responseStatusCode;\n      return \"keyword\";\n    } else if (stream.match(/^[A-Z]+/) && /[ \\t]/.test(stream.peek())) {\n      state.cur = requestPath;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function responseStatusCode(stream, state) {\n    var code = stream.match(/^\\d+/);\n    if (!code) return failFirstLine(stream, state);\n\n    state.cur = responseStatusText;\n    var status = Number(code[0]);\n    if (status >= 100 && status < 200) {\n      return \"positive informational\";\n    } else if (status >= 200 && status < 300) {\n      return \"positive success\";\n    } else if (status >= 300 && status < 400) {\n      return \"positive redirect\";\n    } else if (status >= 400 && status < 500) {\n      return \"negative client-error\";\n    } else if (status >= 500 && status < 600) {\n      return \"negative server-error\";\n    } else {\n      return \"error\";\n    }\n  }\n\n  function responseStatusText(stream, state) {\n    stream.skipToEnd();\n    state.cur = header;\n    return null;\n  }\n\n  function requestPath(stream, state) {\n    stream.eatWhile(/\\S/);\n    state.cur = requestProtocol;\n    return \"string-2\";\n  }\n\n  function requestProtocol(stream, state) {\n    if (stream.match(/^HTTP\\/\\d\\.\\d$/)) {\n      state.cur = header;\n      return \"keyword\";\n    } else {\n      return failFirstLine(stream, state);\n    }\n  }\n\n  function header(stream) {\n    if (stream.sol() && !stream.eat(/[ \\t]/)) {\n      if (stream.match(/^.*?:/)) {\n        return \"atom\";\n      } else {\n        stream.skipToEnd();\n        return \"error\";\n      }\n    } else {\n      stream.skipToEnd();\n      return \"string\";\n    }\n  }\n\n  function body(stream) {\n    stream.skipToEnd();\n    return null;\n  }\n\n  return {\n    token: function(stream, state) {\n      var cur = state.cur;\n      if (cur != header && cur != body && stream.eatSpace()) return null;\n      return cur(stream, state);\n    },\n\n    blankLine: function(state) {\n      state.cur = body;\n    },\n\n    startState: function() {\n      return {cur: start};\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"message/http\", \"http\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/http/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: HTTP mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"http.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">HTTP</a>\n  </ul>\n</div>\n\n<article>\n<h2>HTTP mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nPOST /somewhere HTTP/1.1\nHost: example.com\nIf-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT\nContent-Type: application/x-www-form-urlencoded;\n\tcharset=utf-8\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11\n\nThis is the request body!\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>message/http</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/idl/idl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp('^((' + words.join(')|(') + '))\\\\b', 'i');\n  };\n\n  var builtinArray = [\n    'a_correlate', 'abs', 'acos', 'adapt_hist_equal', 'alog',\n    'alog2', 'alog10', 'amoeba', 'annotate', 'app_user_dir',\n    'app_user_dir_query', 'arg_present', 'array_equal', 'array_indices',\n    'arrow', 'ascii_template', 'asin', 'assoc', 'atan',\n    'axis', 'axis', 'bandpass_filter', 'bandreject_filter', 'barplot',\n    'bar_plot', 'beseli', 'beselj', 'beselk', 'besely',\n    'beta', 'biginteger', 'bilinear', 'bin_date', 'binary_template',\n    'bindgen', 'binomial', 'bit_ffs', 'bit_population', 'blas_axpy',\n    'blk_con', 'boolarr', 'boolean', 'boxplot', 'box_cursor',\n    'breakpoint', 'broyden', 'bubbleplot', 'butterworth', 'bytarr',\n    'byte', 'byteorder', 'bytscl', 'c_correlate', 'calendar',\n    'caldat', 'call_external', 'call_function', 'call_method',\n    'call_procedure', 'canny', 'catch', 'cd', 'cdf', 'ceil',\n    'chebyshev', 'check_math', 'chisqr_cvf', 'chisqr_pdf', 'choldc',\n    'cholsol', 'cindgen', 'cir_3pnt', 'clipboard', 'close',\n    'clust_wts', 'cluster', 'cluster_tree', 'cmyk_convert', 'code_coverage',\n    'color_convert', 'color_exchange', 'color_quan', 'color_range_map',\n    'colorbar', 'colorize_sample', 'colormap_applicable',\n    'colormap_gradient', 'colormap_rotation', 'colortable',\n    'comfit', 'command_line_args', 'common', 'compile_opt', 'complex',\n    'complexarr', 'complexround', 'compute_mesh_normals', 'cond', 'congrid',\n    'conj', 'constrained_min', 'contour', 'contour', 'convert_coord',\n    'convol', 'convol_fft', 'coord2to3', 'copy_lun', 'correlate',\n    'cos', 'cosh', 'cpu', 'cramer', 'createboxplotdata',\n    'create_cursor', 'create_struct', 'create_view', 'crossp', 'crvlength',\n    'ct_luminance', 'cti_test', 'cursor', 'curvefit', 'cv_coord',\n    'cvttobm', 'cw_animate', 'cw_animate_getp', 'cw_animate_load',\n    'cw_animate_run', 'cw_arcball', 'cw_bgroup', 'cw_clr_index',\n    'cw_colorsel', 'cw_defroi', 'cw_field', 'cw_filesel', 'cw_form',\n    'cw_fslider', 'cw_light_editor', 'cw_light_editor_get',\n    'cw_light_editor_set', 'cw_orient', 'cw_palette_editor',\n    'cw_palette_editor_get', 'cw_palette_editor_set', 'cw_pdmenu',\n    'cw_rgbslider', 'cw_tmpl', 'cw_zoom', 'db_exists',\n    'dblarr', 'dcindgen', 'dcomplex', 'dcomplexarr', 'define_key',\n    'define_msgblk', 'define_msgblk_from_file', 'defroi', 'defsysv',\n    'delvar', 'dendro_plot', 'dendrogram', 'deriv', 'derivsig',\n    'determ', 'device', 'dfpmin', 'diag_matrix', 'dialog_dbconnect',\n    'dialog_message', 'dialog_pickfile', 'dialog_printersetup',\n    'dialog_printjob', 'dialog_read_image',\n    'dialog_write_image', 'dictionary', 'digital_filter', 'dilate', 'dindgen',\n    'dissolve', 'dist', 'distance_measure', 'dlm_load', 'dlm_register',\n    'doc_library', 'double', 'draw_roi', 'edge_dog', 'efont',\n    'eigenql', 'eigenvec', 'ellipse', 'elmhes', 'emboss',\n    'empty', 'enable_sysrtn', 'eof', 'eos', 'erase',\n    'erf', 'erfc', 'erfcx', 'erode', 'errorplot',\n    'errplot', 'estimator_filter', 'execute', 'exit', 'exp',\n    'expand', 'expand_path', 'expint', 'extrac', 'extract_slice',\n    'f_cvf', 'f_pdf', 'factorial', 'fft', 'file_basename',\n    'file_chmod', 'file_copy', 'file_delete', 'file_dirname',\n    'file_expand_path', 'file_gunzip', 'file_gzip', 'file_info',\n    'file_lines', 'file_link', 'file_mkdir', 'file_move',\n    'file_poll_input', 'file_readlink', 'file_same',\n    'file_search', 'file_tar', 'file_test', 'file_untar', 'file_unzip',\n    'file_which', 'file_zip', 'filepath', 'findgen', 'finite',\n    'fix', 'flick', 'float', 'floor', 'flow3',\n    'fltarr', 'flush', 'format_axis_values', 'forward_function', 'free_lun',\n    'fstat', 'fulstr', 'funct', 'function', 'fv_test',\n    'fx_root', 'fz_roots', 'gamma', 'gamma_ct', 'gauss_cvf',\n    'gauss_pdf', 'gauss_smooth', 'gauss2dfit', 'gaussfit',\n    'gaussian_function', 'gaussint', 'get_drive_list', 'get_dxf_objects',\n    'get_kbrd', 'get_login_info',\n    'get_lun', 'get_screen_size', 'getenv', 'getwindows', 'greg2jul',\n    'grib', 'grid_input', 'grid_tps', 'grid3', 'griddata',\n    'gs_iter', 'h_eq_ct', 'h_eq_int', 'hanning', 'hash',\n    'hdf', 'hdf5', 'heap_free', 'heap_gc', 'heap_nosave',\n    'heap_refcount', 'heap_save', 'help', 'hilbert', 'hist_2d',\n    'hist_equal', 'histogram', 'hls', 'hough', 'hqr',\n    'hsv', 'i18n_multibytetoutf8',\n    'i18n_multibytetowidechar', 'i18n_utf8tomultibyte',\n    'i18n_widechartomultibyte',\n    'ibeta', 'icontour', 'iconvertcoord', 'idelete', 'identity',\n    'idl_base64', 'idl_container', 'idl_validname',\n    'idlexbr_assistant', 'idlitsys_createtool',\n    'idlunit', 'iellipse', 'igamma', 'igetcurrent', 'igetdata',\n    'igetid', 'igetproperty', 'iimage', 'image', 'image_cont',\n    'image_statistics', 'image_threshold', 'imaginary', 'imap', 'indgen',\n    'int_2d', 'int_3d', 'int_tabulated', 'intarr', 'interpol',\n    'interpolate', 'interval_volume', 'invert', 'ioctl', 'iopen',\n    'ir_filter', 'iplot', 'ipolygon', 'ipolyline', 'iputdata',\n    'iregister', 'ireset', 'iresolve', 'irotate', 'isa',\n    'isave', 'iscale', 'isetcurrent', 'isetproperty', 'ishft',\n    'isocontour', 'isosurface', 'isurface', 'itext', 'itranslate',\n    'ivector', 'ivolume', 'izoom', 'journal', 'json_parse',\n    'json_serialize', 'jul2greg', 'julday', 'keyword_set', 'krig2d',\n    'kurtosis', 'kw_test', 'l64indgen', 'la_choldc', 'la_cholmprove',\n    'la_cholsol', 'la_determ', 'la_eigenproblem', 'la_eigenql', 'la_eigenvec',\n    'la_elmhes', 'la_gm_linear_model', 'la_hqr', 'la_invert',\n    'la_least_square_equality', 'la_least_squares', 'la_linear_equation',\n    'la_ludc', 'la_lumprove', 'la_lusol',\n    'la_svd', 'la_tridc', 'la_trimprove', 'la_triql', 'la_trired',\n    'la_trisol', 'label_date', 'label_region', 'ladfit', 'laguerre',\n    'lambda', 'lambdap', 'lambertw', 'laplacian', 'least_squares_filter',\n    'leefilt', 'legend', 'legendre', 'linbcg', 'lindgen',\n    'linfit', 'linkimage', 'list', 'll_arc_distance', 'lmfit',\n    'lmgr', 'lngamma', 'lnp_test', 'loadct', 'locale_get',\n    'logical_and', 'logical_or', 'logical_true', 'lon64arr', 'lonarr',\n    'long', 'long64', 'lsode', 'lu_complex', 'ludc',\n    'lumprove', 'lusol', 'm_correlate', 'machar', 'make_array',\n    'make_dll', 'make_rt', 'map', 'mapcontinents', 'mapgrid',\n    'map_2points', 'map_continents', 'map_grid', 'map_image', 'map_patch',\n    'map_proj_forward', 'map_proj_image', 'map_proj_info',\n    'map_proj_init', 'map_proj_inverse',\n    'map_set', 'matrix_multiply', 'matrix_power', 'max', 'md_test',\n    'mean', 'meanabsdev', 'mean_filter', 'median', 'memory',\n    'mesh_clip', 'mesh_decimate', 'mesh_issolid',\n    'mesh_merge', 'mesh_numtriangles',\n    'mesh_obj', 'mesh_smooth', 'mesh_surfacearea',\n    'mesh_validate', 'mesh_volume',\n    'message', 'min', 'min_curve_surf', 'mk_html_help', 'modifyct',\n    'moment', 'morph_close', 'morph_distance',\n    'morph_gradient', 'morph_hitormiss',\n    'morph_open', 'morph_thin', 'morph_tophat', 'multi', 'n_elements',\n    'n_params', 'n_tags', 'ncdf', 'newton', 'noise_hurl',\n    'noise_pick', 'noise_scatter', 'noise_slur', 'norm', 'obj_class',\n    'obj_destroy', 'obj_hasmethod', 'obj_isa', 'obj_new', 'obj_valid',\n    'objarr', 'on_error', 'on_ioerror', 'online_help', 'openr',\n    'openu', 'openw', 'oplot', 'oploterr', 'orderedhash',\n    'p_correlate', 'parse_url', 'particle_trace', 'path_cache', 'path_sep',\n    'pcomp', 'plot', 'plot3d', 'plot', 'plot_3dbox',\n    'plot_field', 'ploterr', 'plots', 'polar_contour', 'polar_surface',\n    'polyfill', 'polyshade', 'pnt_line', 'point_lun', 'polarplot',\n    'poly', 'poly_2d', 'poly_area', 'poly_fit', 'polyfillv',\n    'polygon', 'polyline', 'polywarp', 'popd', 'powell',\n    'pref_commit', 'pref_get', 'pref_set', 'prewitt', 'primes',\n    'print', 'printf', 'printd', 'pro', 'product',\n    'profile', 'profiler', 'profiles', 'project_vol', 'ps_show_fonts',\n    'psafm', 'pseudo', 'ptr_free', 'ptr_new', 'ptr_valid',\n    'ptrarr', 'pushd', 'qgrid3', 'qhull', 'qromb',\n    'qromo', 'qsimp', 'query_*', 'query_ascii', 'query_bmp',\n    'query_csv', 'query_dicom', 'query_gif', 'query_image', 'query_jpeg',\n    'query_jpeg2000', 'query_mrsid', 'query_pict', 'query_png', 'query_ppm',\n    'query_srf', 'query_tiff', 'query_video', 'query_wav', 'r_correlate',\n    'r_test', 'radon', 'randomn', 'randomu', 'ranks',\n    'rdpix', 'read', 'readf', 'read_ascii', 'read_binary',\n    'read_bmp', 'read_csv', 'read_dicom', 'read_gif', 'read_image',\n    'read_interfile', 'read_jpeg', 'read_jpeg2000', 'read_mrsid', 'read_pict',\n    'read_png', 'read_ppm', 'read_spr', 'read_srf', 'read_sylk',\n    'read_tiff', 'read_video', 'read_wav', 'read_wave', 'read_x11_bitmap',\n    'read_xwd', 'reads', 'readu', 'real_part', 'rebin',\n    'recall_commands', 'recon3', 'reduce_colors', 'reform', 'region_grow',\n    'register_cursor', 'regress', 'replicate',\n    'replicate_inplace', 'resolve_all',\n    'resolve_routine', 'restore', 'retall', 'return', 'reverse',\n    'rk4', 'roberts', 'rot', 'rotate', 'round',\n    'routine_filepath', 'routine_info', 'rs_test', 's_test', 'save',\n    'savgol', 'scale3', 'scale3d', 'scatterplot', 'scatterplot3d',\n    'scope_level', 'scope_traceback', 'scope_varfetch',\n    'scope_varname', 'search2d',\n    'search3d', 'sem_create', 'sem_delete', 'sem_lock', 'sem_release',\n    'set_plot', 'set_shading', 'setenv', 'sfit', 'shade_surf',\n    'shade_surf_irr', 'shade_volume', 'shift', 'shift_diff', 'shmdebug',\n    'shmmap', 'shmunmap', 'shmvar', 'show3', 'showfont',\n    'signum', 'simplex', 'sin', 'sindgen', 'sinh',\n    'size', 'skewness', 'skip_lun', 'slicer3', 'slide_image',\n    'smooth', 'sobel', 'socket', 'sort', 'spawn',\n    'sph_4pnt', 'sph_scat', 'spher_harm', 'spl_init', 'spl_interp',\n    'spline', 'spline_p', 'sprsab', 'sprsax', 'sprsin',\n    'sprstp', 'sqrt', 'standardize', 'stddev', 'stop',\n    'strarr', 'strcmp', 'strcompress', 'streamline', 'streamline',\n    'stregex', 'stretch', 'string', 'strjoin', 'strlen',\n    'strlowcase', 'strmatch', 'strmessage', 'strmid', 'strpos',\n    'strput', 'strsplit', 'strtrim', 'struct_assign', 'struct_hide',\n    'strupcase', 'surface', 'surface', 'surfr', 'svdc',\n    'svdfit', 'svsol', 'swap_endian', 'swap_endian_inplace', 'symbol',\n    'systime', 't_cvf', 't_pdf', 't3d', 'tag_names',\n    'tan', 'tanh', 'tek_color', 'temporary', 'terminal_size',\n    'tetra_clip', 'tetra_surface', 'tetra_volume', 'text', 'thin',\n    'thread', 'threed', 'tic', 'time_test2', 'timegen',\n    'timer', 'timestamp', 'timestamptovalues', 'tm_test', 'toc',\n    'total', 'trace', 'transpose', 'tri_surf', 'triangulate',\n    'trigrid', 'triql', 'trired', 'trisol', 'truncate_lun',\n    'ts_coef', 'ts_diff', 'ts_fcast', 'ts_smooth', 'tv',\n    'tvcrs', 'tvlct', 'tvrd', 'tvscl', 'typename',\n    'uindgen', 'uint', 'uintarr', 'ul64indgen', 'ulindgen',\n    'ulon64arr', 'ulonarr', 'ulong', 'ulong64', 'uniq',\n    'unsharp_mask', 'usersym', 'value_locate', 'variance', 'vector',\n    'vector_field', 'vel', 'velovect', 'vert_t3d', 'voigt',\n    'volume', 'voronoi', 'voxel_proj', 'wait', 'warp_tri',\n    'watershed', 'wdelete', 'wf_draw', 'where', 'widget_base',\n    'widget_button', 'widget_combobox', 'widget_control',\n    'widget_displaycontextmenu', 'widget_draw',\n    'widget_droplist', 'widget_event', 'widget_info',\n    'widget_label', 'widget_list',\n    'widget_propertysheet', 'widget_slider', 'widget_tab',\n    'widget_table', 'widget_text',\n    'widget_tree', 'widget_tree_move', 'widget_window',\n    'wiener_filter', 'window',\n    'window', 'write_bmp', 'write_csv', 'write_gif', 'write_image',\n    'write_jpeg', 'write_jpeg2000', 'write_nrif', 'write_pict', 'write_png',\n    'write_ppm', 'write_spr', 'write_srf', 'write_sylk', 'write_tiff',\n    'write_video', 'write_wav', 'write_wave', 'writeu', 'wset',\n    'wshow', 'wtn', 'wv_applet', 'wv_cwt', 'wv_cw_wavelet',\n    'wv_denoise', 'wv_dwt', 'wv_fn_coiflet',\n    'wv_fn_daubechies', 'wv_fn_gaussian',\n    'wv_fn_haar', 'wv_fn_morlet', 'wv_fn_paul',\n    'wv_fn_symlet', 'wv_import_data',\n    'wv_import_wavelet', 'wv_plot3d_wps', 'wv_plot_multires',\n    'wv_pwt', 'wv_tool_denoise',\n    'xbm_edit', 'xdisplayfile', 'xdxf', 'xfont', 'xinteranimate',\n    'xloadct', 'xmanager', 'xmng_tmpl', 'xmtool', 'xobjview',\n    'xobjview_rotate', 'xobjview_write_image',\n    'xpalette', 'xpcolor', 'xplot3d',\n    'xregistered', 'xroi', 'xsq_test', 'xsurface', 'xvaredit',\n    'xvolume', 'xvolume_rotate', 'xvolume_write_image',\n    'xyouts', 'zlib_compress', 'zlib_uncompress', 'zoom', 'zoom_24'\n  ];\n  var builtins = wordRegexp(builtinArray);\n\n  var keywordArray = [\n    'begin', 'end', 'endcase', 'endfor',\n    'endwhile', 'endif', 'endrep', 'endforeach',\n    'break', 'case', 'continue', 'for',\n    'foreach', 'goto', 'if', 'then', 'else',\n    'repeat', 'until', 'switch', 'while',\n    'do', 'pro', 'function'\n  ];\n  var keywords = wordRegexp(keywordArray);\n\n  CodeMirror.registerHelper(\"hintWords\", \"idl\", builtinArray.concat(keywordArray));\n\n  var identifiers = new RegExp('^[_a-z\\xa1-\\uffff][_a-z0-9\\xa1-\\uffff]*', 'i');\n\n  var singleOperators = /[+\\-*&=<>\\/@#~$]/;\n  var boolOperators = new RegExp('(and|or|eq|lt|le|gt|ge|ne|not)', 'i');\n\n  function tokenBase(stream) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match(';')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?/))\n        return 'number';\n    }\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return 'string'; }\n    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; }\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; }\n    if (stream.match(builtins)) { return 'builtin'; }\n    if (stream.match(identifiers)) { return 'variable'; }\n\n    if (stream.match(singleOperators) || stream.match(boolOperators)) {\n      return 'operator'; }\n\n    // Handle non-detected items\n    stream.next();\n    return null;\n  };\n\n  CodeMirror.defineMode('idl', function() {\n    return {\n      token: function(stream) {\n        return tokenBase(stream);\n      }\n    };\n  });\n\n  CodeMirror.defineMIME('text/x-idl', 'idl');\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/idl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: IDL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"idl.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">IDL</a>\n  </ul>\n</div>\n\n<article>\n<h2>IDL mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n;; Example IDL code\nFUNCTION mean_and_stddev,array\n  ;; This program reads in an array of numbers\n  ;; and returns a structure containing the\n  ;; average and standard deviation\n\n  ave = 0.0\n  count = 0.0\n\n  for i=0,N_ELEMENTS(array)-1 do begin\n      ave = ave + array[i]\n      count = count + 1\n  endfor\n  \n  ave = ave/count\n\n  std = stddev(array)  \n\n  return, {average:ave,std:std}\n\nEND\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"idl\",\n               version: 1,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-idl</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Language Modes</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../doc/docs.css\">\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../index.html\">Home</a>\n    <li><a href=\"../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a class=active href=\"#\">Language modes</a>\n  </ul>\n</div>\n\n<article>\n\n  <h2>Language modes</h2>\n\n  <p>This is a list of every mode in the distribution. Each mode lives\nin a subdirectory of the <code>mode/</code> directory, and typically\ndefines a single JavaScript file that implements the mode. Loading\nsuch file will make the language available to CodeMirror, through\nthe <a href=\"../doc/manual.html#option_mode\"><code>mode</code></a>\noption.</p>\n\n  <div style=\"-webkit-columns: 100px 2; -moz-columns: 100px 2; columns: 100px 2;\">\n    <ul style=\"margin-top: 0\">\n      <li><a href=\"apl/index.html\">APL</a></li>\n      <li><a href=\"asterisk/index.html\">Asterisk dialplan</a></li>\n      <li><a href=\"clike/index.html\">C, C++, C#</a></li>\n      <li><a href=\"clojure/index.html\">Clojure</a></li>\n      <li><a href=\"cobol/index.html\">COBOL</a></li>\n      <li><a href=\"coffeescript/index.html\">CoffeeScript</a></li>\n      <li><a href=\"commonlisp/index.html\">Common Lisp</a></li>\n      <li><a href=\"css/index.html\">CSS</a></li>\n      <li><a href=\"cypher/index.html\">Cypher</a></li>\n      <li><a href=\"python/index.html\">Cython</a></li>\n      <li><a href=\"d/index.html\">D</a></li>\n      <li><a href=\"dart/index.html\">Dart</a></li>\n      <li><a href=\"django/index.html\">Django</a> (templating language)</li>\n      <li><a href=\"dockerfile/index.html\">Dockerfile</a></li>\n      <li><a href=\"diff/index.html\">diff</a></li>\n      <li><a href=\"dtd/index.html\">DTD</a></li>\n      <li><a href=\"dylan/index.html\">Dylan</a></li>\n      <li><a href=\"ebnf/index.html\">EBNF</a></li>\n      <li><a href=\"ecl/index.html\">ECL</a></li>\n      <li><a href=\"eiffel/index.html\">Eiffel</a></li>\n      <li><a href=\"erlang/index.html\">Erlang</a></li>\n      <li><a href=\"forth/index.html\">Forth</a></li>\n      <li><a href=\"fortran/index.html\">Fortran</a></li>\n      <li><a href=\"mllike/index.html\">F#</a></li>\n      <li><a href=\"gas/index.html\">Gas</a> (AT&amp;T-style assembly)</li>\n      <li><a href=\"gherkin/index.html\">Gherkin</a></li>\n      <li><a href=\"go/index.html\">Go</a></li>\n      <li><a href=\"groovy/index.html\">Groovy</a></li>\n      <li><a href=\"haml/index.html\">HAML</a></li>\n      <li><a href=\"haskell/index.html\">Haskell</a></li>\n      <li><a href=\"haxe/index.html\">Haxe</a></li>\n      <li><a href=\"htmlembedded/index.html\">HTML embedded scripts</a></li>\n      <li><a href=\"htmlmixed/index.html\">HTML mixed-mode</a></li>\n      <li><a href=\"http/index.html\">HTTP</a></li>\n      <li><a href=\"idl/index.html\">IDL</a></li>\n      <li><a href=\"clike/index.html\">Java</a></li>\n      <li><a href=\"jade/index.html\">Jade</a></li>\n      <li><a href=\"javascript/index.html\">JavaScript</a></li>\n      <li><a href=\"jinja2/index.html\">Jinja2</a></li>\n      <li><a href=\"julia/index.html\">Julia</a></li>\n      <li><a href=\"kotlin/index.html\">Kotlin</a></li>\n      <li><a href=\"css/less.html\">LESS</a></li>\n      <li><a href=\"livescript/index.html\">LiveScript</a></li>\n      <li><a href=\"lua/index.html\">Lua</a></li>\n      <li><a href=\"markdown/index.html\">Markdown</a> (<a href=\"gfm/index.html\">GitHub-flavour</a>)</li>\n      <li><a href=\"mirc/index.html\">mIRC</a></li>\n      <li><a href=\"modelica/index.html\">Modelica</a></li>\n      <li><a href=\"nginx/index.html\">Nginx</a></li>\n      <li><a href=\"ntriples/index.html\">NTriples</a></li>\n      <li><a href=\"clike/index.html\">Objective C</a></li>\n      <li><a href=\"mllike/index.html\">OCaml</a></li>\n      <li><a href=\"octave/index.html\">Octave</a> (MATLAB)</li>\n      <li><a href=\"pascal/index.html\">Pascal</a></li>\n      <li><a href=\"pegjs/index.html\">PEG.js</a></li>\n      <li><a href=\"perl/index.html\">Perl</a></li>\n      <li><a href=\"php/index.html\">PHP</a></li>\n      <li><a href=\"pig/index.html\">Pig Latin</a></li>\n      <li><a href=\"properties/index.html\">Properties files</a></li>\n      <li><a href=\"puppet/index.html\">Puppet</a></li>\n      <li><a href=\"python/index.html\">Python</a></li>\n      <li><a href=\"q/index.html\">Q</a></li>\n      <li><a href=\"r/index.html\">R</a></li>\n      <li><a href=\"rpm/index.html\">RPM</a></li>\n      <li><a href=\"rst/index.html\">reStructuredText</a></li>\n      <li><a href=\"ruby/index.html\">Ruby</a></li>\n      <li><a href=\"rust/index.html\">Rust</a></li>\n      <li><a href=\"sass/index.html\">Sass</a></li>\n      <li><a href=\"spreadsheet/index.html\">Spreadsheet</a></li>\n      <li><a href=\"clike/scala.html\">Scala</a></li>\n      <li><a href=\"scheme/index.html\">Scheme</a></li>\n      <li><a href=\"css/scss.html\">SCSS</a></li>\n      <li><a href=\"shell/index.html\">Shell</a></li>\n      <li><a href=\"sieve/index.html\">Sieve</a></li>\n      <li><a href=\"slim/index.html\">Slim</a></li>\n      <li><a href=\"smalltalk/index.html\">Smalltalk</a></li>\n      <li><a href=\"smarty/index.html\">Smarty</a></li>\n      <li><a href=\"smartymixed/index.html\">Smarty/HTML mixed</a></li>\n      <li><a href=\"solr/index.html\">Solr</a></li>\n      <li><a href=\"soy/index.html\">Soy</a></li>\n      <li><a href=\"stylus/index.html\">Stylus</a></li>\n      <li><a href=\"sql/index.html\">SQL</a> (several dialects)</li>\n      <li><a href=\"sparql/index.html\">SPARQL</a></li>\n      <li><a href=\"stex/index.html\">sTeX, LaTeX</a></li>\n      <li><a href=\"tcl/index.html\">Tcl</a></li>\n      <li><a href=\"textile/index.html\">Textile</a></li>\n      <li><a href=\"tiddlywiki/index.html\">Tiddlywiki</a></li>\n      <li><a href=\"tiki/index.html\">Tiki wiki</a></li>\n      <li><a href=\"toml/index.html\">TOML</a></li>\n      <li><a href=\"tornado/index.html\">Tornado</a> (templating language)</li>\n      <li><a href=\"turtle/index.html\">Turtle</a></li>\n      <li><a href=\"vb/index.html\">VB.NET</a></li>\n      <li><a href=\"vbscript/index.html\">VBScript</a></li>\n      <li><a href=\"velocity/index.html\">Velocity</a></li>\n      <li><a href=\"verilog/index.html\">Verilog/SystemVerilog</a></li>\n      <li><a href=\"xml/index.html\">XML/HTML</a></li>\n      <li><a href=\"xquery/index.html\">XQuery</a></li>\n      <li><a href=\"yaml/index.html\">YAML</a></li>\n      <li><a href=\"z80/index.html\">Z80</a></li>\n    </ul>\n  </div>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/jade/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Jade Templating Mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"jade.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Jade Templating Mode</a>\n  </ul>\n</div>\n\n<article>\n<h2>Jade Templating Mode</h2>\n<form><textarea id=\"code\" name=\"code\">\ndoctype html\n  html\n    head\n      title= \"Jade Templating CodeMirror Mode Example\"\n      link(rel='stylesheet', href='/css/bootstrap.min.css')\n      link(rel='stylesheet', href='/css/index.css')\n      script(type='text/javascript', src='/js/jquery-1.9.1.min.js')\n      script(type='text/javascript', src='/js/bootstrap.min.js')\n    body\n      div.header\n        h1 Welcome to this Example\n      div.spots\n        if locals.spots\n          each spot in spots\n            div.spot.well\n         div\n           if spot.logo\n             img.img-rounded.logo(src=spot.logo)\n           else\n             img.img-rounded.logo(src=\"img/placeholder.png\")\n         h3\n           a(href=spot.hash) ##{spot.hash}\n           if spot.title\n             span.title #{spot.title}\n           if spot.desc\n             div #{spot.desc}\n        else\n          h3 There are no spots currently available.\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"jade\", alignCDATA: true},\n        lineNumbers: true\n      });\n    </script>\n    <h3>The Jade Templating Mode</h3>\n      <p> Created by Forbes Lindesay. Managed as part of a Brackets extension at <a href=\"https://github.com/ForbesLindesay/jade-brackets\">https://github.com/ForbesLindesay/jade-brackets</a>.</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-jade</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/jade/jade.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"), require(\"../css/css\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\", \"../css/css\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('jade', function (config) {\n  // token types\n  var KEYWORD = 'keyword';\n  var DOCTYPE = 'meta';\n  var ID = 'builtin';\n  var CLASS = 'qualifier';\n\n  var ATTRS_NEST = {\n    '{': '}',\n    '(': ')',\n    '[': ']'\n  };\n\n  var jsMode = CodeMirror.getMode(config, 'javascript');\n\n  function State() {\n    this.javaScriptLine = false;\n    this.javaScriptLineExcludesColon = false;\n\n    this.javaScriptArguments = false;\n    this.javaScriptArgumentsDepth = 0;\n\n    this.isInterpolating = false;\n    this.interpolationNesting = 0;\n\n    this.jsState = jsMode.startState();\n\n    this.restOfLine = '';\n\n    this.isIncludeFiltered = false;\n    this.isEach = false;\n\n    this.lastTag = '';\n    this.scriptType = '';\n\n    // Attributes Mode\n    this.isAttrs = false;\n    this.attrsNest = [];\n    this.inAttributeName = true;\n    this.attributeIsType = false;\n    this.attrValue = '';\n\n    // Indented Mode\n    this.indentOf = Infinity;\n    this.indentToken = '';\n\n    this.innerMode = null;\n    this.innerState = null;\n\n    this.innerModeForLine = false;\n  }\n  /**\n   * Safely copy a state\n   *\n   * @return {State}\n   */\n  State.prototype.copy = function () {\n    var res = new State();\n    res.javaScriptLine = this.javaScriptLine;\n    res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;\n    res.javaScriptArguments = this.javaScriptArguments;\n    res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;\n    res.isInterpolating = this.isInterpolating;\n    res.interpolationNesting = this.intpolationNesting;\n\n    res.jsState = CodeMirror.copyState(jsMode, this.jsState);\n\n    res.innerMode = this.innerMode;\n    if (this.innerMode && this.innerState) {\n      res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);\n    }\n\n    res.restOfLine = this.restOfLine;\n\n    res.isIncludeFiltered = this.isIncludeFiltered;\n    res.isEach = this.isEach;\n    res.lastTag = this.lastTag;\n    res.scriptType = this.scriptType;\n    res.isAttrs = this.isAttrs;\n    res.attrsNest = this.attrsNest.slice();\n    res.inAttributeName = this.inAttributeName;\n    res.attributeIsType = this.attributeIsType;\n    res.attrValue = this.attrValue;\n    res.indentOf = this.indentOf;\n    res.indentToken = this.indentToken;\n\n    res.innerModeForLine = this.innerModeForLine;\n\n    return res;\n  };\n\n  function javaScript(stream, state) {\n    if (stream.sol()) {\n      // if javaScriptLine was set at end of line, ignore it\n      state.javaScriptLine = false;\n      state.javaScriptLineExcludesColon = false;\n    }\n    if (state.javaScriptLine) {\n      if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n        state.javaScriptLine = false;\n        state.javaScriptLineExcludesColon = false;\n        return;\n      }\n      var tok = jsMode.token(stream, state.jsState);\n      if (stream.eol()) state.javaScriptLine = false;\n      return tok || true;\n    }\n  }\n  function javaScriptArguments(stream, state) {\n    if (state.javaScriptArguments) {\n      if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n        state.javaScriptArguments = false;\n        return;\n      }\n      if (stream.peek() === '(') {\n        state.javaScriptArgumentsDepth++;\n      } else if (stream.peek() === ')') {\n        state.javaScriptArgumentsDepth--;\n      }\n      if (state.javaScriptArgumentsDepth === 0) {\n        state.javaScriptArguments = false;\n        return;\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      return tok || true;\n    }\n  }\n\n  function yieldStatement(stream) {\n    if (stream.match(/^yield\\b/)) {\n        return 'keyword';\n    }\n  }\n\n  function doctype(stream) {\n    if (stream.match(/^(?:doctype) *([^\\n]+)?/)) {\n        return DOCTYPE;\n    }\n  }\n\n  function interpolation(stream, state) {\n    if (stream.match('#{')) {\n      state.isInterpolating = true;\n      state.interpolationNesting = 0;\n      return 'punctuation';\n    }\n  }\n\n  function interpolationContinued(stream, state) {\n    if (state.isInterpolating) {\n      if (stream.peek() === '}') {\n        state.interpolationNesting--;\n        if (state.interpolationNesting < 0) {\n          stream.next();\n          state.isInterpolating = false;\n          return 'puncutation';\n        }\n      } else if (stream.peek() === '{') {\n        state.interpolationNesting++;\n      }\n      return jsMode.token(stream, state.jsState) || true;\n    }\n  }\n\n  function caseStatement(stream, state) {\n    if (stream.match(/^case\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function when(stream, state) {\n    if (stream.match(/^when\\b/)) {\n      state.javaScriptLine = true;\n      state.javaScriptLineExcludesColon = true;\n      return KEYWORD;\n    }\n  }\n\n  function defaultStatement(stream) {\n    if (stream.match(/^default\\b/)) {\n      return KEYWORD;\n    }\n  }\n\n  function extendsStatement(stream, state) {\n    if (stream.match(/^extends?\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function append(stream, state) {\n    if (stream.match(/^append\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function prepend(stream, state) {\n    if (stream.match(/^prepend\\b/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n  function block(stream, state) {\n    if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n      state.restOfLine = 'variable';\n      return KEYWORD;\n    }\n  }\n\n  function include(stream, state) {\n    if (stream.match(/^include\\b/)) {\n      state.restOfLine = 'string';\n      return KEYWORD;\n    }\n  }\n\n  function includeFiltered(stream, state) {\n    if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n      state.isIncludeFiltered = true;\n      return KEYWORD;\n    }\n  }\n\n  function includeFilteredContinued(stream, state) {\n    if (state.isIncludeFiltered) {\n      var tok = filter(stream, state);\n      state.isIncludeFiltered = false;\n      state.restOfLine = 'string';\n      return tok;\n    }\n  }\n\n  function mixin(stream, state) {\n    if (stream.match(/^mixin\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function call(stream, state) {\n    if (stream.match(/^\\+([-\\w]+)/)) {\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return 'variable';\n    }\n    if (stream.match(/^\\+#{/, false)) {\n      stream.next();\n      state.mixinCallAfter = true;\n      return interpolation(stream, state);\n    }\n  }\n  function callArguments(stream, state) {\n    if (state.mixinCallAfter) {\n      state.mixinCallAfter = false;\n      if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n        state.javaScriptArguments = true;\n        state.javaScriptArgumentsDepth = 0;\n      }\n      return true;\n    }\n  }\n\n  function conditional(stream, state) {\n    if (stream.match(/^(if|unless|else if|else)\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function each(stream, state) {\n    if (stream.match(/^(- *)?(each|for)\\b/)) {\n      state.isEach = true;\n      return KEYWORD;\n    }\n  }\n  function eachContinued(stream, state) {\n    if (state.isEach) {\n      if (stream.match(/^ in\\b/)) {\n        state.javaScriptLine = true;\n        state.isEach = false;\n        return KEYWORD;\n      } else if (stream.sol() || stream.eol()) {\n        state.isEach = false;\n      } else if (stream.next()) {\n        while (!stream.match(/^ in\\b/, false) && stream.next());\n        return 'variable';\n      }\n    }\n  }\n\n  function whileStatement(stream, state) {\n    if (stream.match(/^while\\b/)) {\n      state.javaScriptLine = true;\n      return KEYWORD;\n    }\n  }\n\n  function tag(stream, state) {\n    var captures;\n    if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n      state.lastTag = captures[1].toLowerCase();\n      if (state.lastTag === 'script') {\n        state.scriptType = 'application/javascript';\n      }\n      return 'tag';\n    }\n  }\n\n  function filter(stream, state) {\n    if (stream.match(/^:([\\w\\-]+)/)) {\n      var innerMode;\n      if (config && config.innerModes) {\n        innerMode = config.innerModes(stream.current().substring(1));\n      }\n      if (!innerMode) {\n        innerMode = stream.current().substring(1);\n      }\n      if (typeof innerMode === 'string') {\n        innerMode = CodeMirror.getMode(config, innerMode);\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'atom';\n    }\n  }\n\n  function code(stream, state) {\n    if (stream.match(/^(!?=|-)/)) {\n      state.javaScriptLine = true;\n      return 'punctuation';\n    }\n  }\n\n  function id(stream) {\n    if (stream.match(/^#([\\w-]+)/)) {\n      return ID;\n    }\n  }\n\n  function className(stream) {\n    if (stream.match(/^\\.([\\w-]+)/)) {\n      return CLASS;\n    }\n  }\n\n  function attrs(stream, state) {\n    if (stream.peek() == '(') {\n      stream.next();\n      state.isAttrs = true;\n      state.attrsNest = [];\n      state.inAttributeName = true;\n      state.attrValue = '';\n      state.attributeIsType = false;\n      return 'punctuation';\n    }\n  }\n\n  function attrsContinued(stream, state) {\n    if (state.isAttrs) {\n      if (ATTRS_NEST[stream.peek()]) {\n        state.attrsNest.push(ATTRS_NEST[stream.peek()]);\n      }\n      if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n        state.attrsNest.pop();\n      } else  if (stream.eat(')')) {\n        state.isAttrs = false;\n        return 'punctuation';\n      }\n      if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n        if (stream.peek() === '=' || stream.peek() === '!') {\n          state.inAttributeName = false;\n          state.jsState = jsMode.startState();\n          if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n            state.attributeIsType = true;\n          } else {\n            state.attributeIsType = false;\n          }\n        }\n        return 'attribute';\n      }\n\n      var tok = jsMode.token(stream, state.jsState);\n      if (state.attributeIsType && tok === 'string') {\n        state.scriptType = stream.current().toString();\n      }\n      if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n        try {\n          Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''));\n          state.inAttributeName = true;\n          state.attrValue = '';\n          stream.backUp(stream.current().length);\n          return attrsContinued(stream, state);\n        } catch (ex) {\n          //not the end of an attribute\n        }\n      }\n      state.attrValue += stream.current();\n      return tok || true;\n    }\n  }\n\n  function attributesBlock(stream, state) {\n    if (stream.match(/^&attributes\\b/)) {\n      state.javaScriptArguments = true;\n      state.javaScriptArgumentsDepth = 0;\n      return 'keyword';\n    }\n  }\n\n  function indent(stream) {\n    if (stream.sol() && stream.eatSpace()) {\n      return 'indent';\n    }\n  }\n\n  function comment(stream, state) {\n    if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n      state.indentOf = stream.indentation();\n      state.indentToken = 'comment';\n      return 'comment';\n    }\n  }\n\n  function colon(stream) {\n    if (stream.match(/^: */)) {\n      return 'colon';\n    }\n  }\n\n  function text(stream, state) {\n    if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n      return 'string';\n    }\n    if (stream.match(/^(<[^\\n]*)/, false)) {\n      // html string\n      setInnerMode(stream, state, 'htmlmixed');\n      state.innerModeForLine = true;\n      return innerMode(stream, state, true);\n    }\n  }\n\n  function dot(stream, state) {\n    if (stream.eat('.')) {\n      var innerMode = null;\n      if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {\n        innerMode = state.scriptType.toLowerCase().replace(/\"|'/g, '');\n      } else if (state.lastTag === 'style') {\n        innerMode = 'css';\n      }\n      setInnerMode(stream, state, innerMode);\n      return 'dot';\n    }\n  }\n\n  function fail(stream) {\n    stream.next();\n    return null;\n  }\n\n\n  function setInnerMode(stream, state, mode) {\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = config.innerModes ? config.innerModes(mode) || mode : mode;\n    mode = CodeMirror.mimeModes[mode] || mode;\n    mode = CodeMirror.getMode(config, mode);\n    state.indentOf = stream.indentation();\n\n    if (mode && mode.name !== 'null') {\n      state.innerMode = mode;\n    } else {\n      state.indentToken = 'string';\n    }\n  }\n  function innerMode(stream, state, force) {\n    if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {\n      if (state.innerMode) {\n        if (!state.innerState) {\n          state.innerState = state.innerMode.startState ? state.innerMode.startState(stream.indentation()) : {};\n        }\n        return stream.hideFirstChars(state.indentOf + 2, function () {\n          return state.innerMode.token(stream, state.innerState) || true;\n        });\n      } else {\n        stream.skipToEnd();\n        return state.indentToken;\n      }\n    } else if (stream.sol()) {\n      state.indentOf = Infinity;\n      state.indentToken = null;\n      state.innerMode = null;\n      state.innerState = null;\n    }\n  }\n  function restOfLine(stream, state) {\n    if (stream.sol()) {\n      // if restOfLine was set at end of line, ignore it\n      state.restOfLine = '';\n    }\n    if (state.restOfLine) {\n      stream.skipToEnd();\n      var tok = state.restOfLine;\n      state.restOfLine = '';\n      return tok;\n    }\n  }\n\n\n  function startState() {\n    return new State();\n  }\n  function copyState(state) {\n    return state.copy();\n  }\n  /**\n   * Get the next token in the stream\n   *\n   * @param {Stream} stream\n   * @param {State} state\n   */\n  function nextToken(stream, state) {\n    var tok = innerMode(stream, state)\n      || restOfLine(stream, state)\n      || interpolationContinued(stream, state)\n      || includeFilteredContinued(stream, state)\n      || eachContinued(stream, state)\n      || attrsContinued(stream, state)\n      || javaScript(stream, state)\n      || javaScriptArguments(stream, state)\n      || callArguments(stream, state)\n\n      || yieldStatement(stream, state)\n      || doctype(stream, state)\n      || interpolation(stream, state)\n      || caseStatement(stream, state)\n      || when(stream, state)\n      || defaultStatement(stream, state)\n      || extendsStatement(stream, state)\n      || append(stream, state)\n      || prepend(stream, state)\n      || block(stream, state)\n      || include(stream, state)\n      || includeFiltered(stream, state)\n      || mixin(stream, state)\n      || call(stream, state)\n      || conditional(stream, state)\n      || each(stream, state)\n      || whileStatement(stream, state)\n      || tag(stream, state)\n      || filter(stream, state)\n      || code(stream, state)\n      || id(stream, state)\n      || className(stream, state)\n      || attrs(stream, state)\n      || attributesBlock(stream, state)\n      || indent(stream, state)\n      || text(stream, state)\n      || comment(stream, state)\n      || colon(stream, state)\n      || dot(stream, state)\n      || fail(stream, state);\n\n    return tok === true ? null : tok;\n  }\n  return {\n    startState: startState,\n    copyState: copyState,\n    token: nextToken\n  };\n});\n\nCodeMirror.defineMIME('text/x-jade', 'jade');\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/javascript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: JavaScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">JavaScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>JavaScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n// Demo code (the actual new parser character stream implementation)\n\nfunction StringStream(string) {\n  this.pos = 0;\n  this.string = string;\n}\n\nStringStream.prototype = {\n  done: function() {return this.pos >= this.string.length;},\n  peek: function() {return this.string.charAt(this.pos);},\n  next: function() {\n    if (this.pos &lt; this.string.length)\n      return this.string.charAt(this.pos++);\n  },\n  eat: function(match) {\n    var ch = this.string.charAt(this.pos);\n    if (typeof match == \"string\") var ok = ch == match;\n    else var ok = ch &amp;&amp; match.test ? match.test(ch) : match(ch);\n    if (ok) {this.pos++; return ch;}\n  },\n  eatWhile: function(match) {\n    var start = this.pos;\n    while (this.eat(match));\n    if (this.pos > start) return this.string.slice(start, this.pos);\n  },\n  backUp: function(n) {this.pos -= n;},\n  column: function() {return this.pos;},\n  eatSpace: function() {\n    var start = this.pos;\n    while (/\\s/.test(this.string.charAt(this.pos))) this.pos++;\n    return this.pos - start;\n  },\n  match: function(pattern, consume, caseInsensitive) {\n    if (typeof pattern == \"string\") {\n      function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}\n      if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {\n        if (consume !== false) this.pos += str.length;\n        return true;\n      }\n    }\n    else {\n      var match = this.string.slice(this.pos).match(pattern);\n      if (match &amp;&amp; consume !== false) this.pos += match[0].length;\n      return match;\n    }\n  }\n};\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        continueComments: \"Enter\",\n        extraKeys: {\"Ctrl-Q\": \"toggleComment\"}\n      });\n    </script>\n\n    <p>\n      JavaScript mode supports several configuration options:\n      <ul>\n        <li><code>json</code> which will set the mode to expect JSON\n        data rather than a JavaScript program.</li>\n        <li><code>jsonld</code> which will set the mode to expect\n        <a href=\"http://json-ld.org\">JSON-LD</a> linked data rather\n        than a JavaScript program (<a href=\"json-ld.html\">demo</a>).</li>\n        <li><code>typescript</code> which will activate additional\n        syntax highlighting and some other things for TypeScript code\n        (<a href=\"typescript.html\">demo</a>).</li>\n        <li><code>statementIndent</code> which (given a number) will\n        determine the amount of indentation to use for statements\n        continued on a new line.</li>\n        <li><code>wordCharacters</code>, a regexp that indicates which\n        characters should be considered part of an identifier.\n        Defaults to <code>/[\\w$]/</code>, which does not handle\n        non-ASCII identifiers. Can be set to something more elaborate\n        to improve Unicode support.</li>\n      </ul>\n    </p>\n\n    <p><strong>MIME types defined:</strong> <code>text/javascript</code>, <code>application/json</code>, <code>application/ld+json</code>, <code>text/typescript</code>, <code>application/typescript</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/javascript/javascript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// TODO actually recognize syntax of TypeScript constructs\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n  var statementIndent = parserConfig.statementIndent;\n  var jsonldMode = parserConfig.jsonld;\n  var jsonMode = parserConfig.json || jsonldMode;\n  var isTS = parserConfig.typescript;\n  var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n  // Tokenizer\n\n  var keywords = function(){\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\");\n    var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n    var jsKeywords = {\n      \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n      \"return\": C, \"break\": C, \"continue\": C, \"new\": C, \"delete\": C, \"throw\": C, \"debugger\": C,\n      \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n      \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n      \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n      \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n      \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n      \"this\": kw(\"this\"), \"module\": kw(\"module\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n      \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C\n    };\n\n    // Extend the 'normal' keywords with the TypeScript language extensions\n    if (isTS) {\n      var type = {type: \"variable\", style: \"variable-3\"};\n      var tsKeywords = {\n        // object-like things\n        \"interface\": kw(\"interface\"),\n        \"extends\": kw(\"extends\"),\n        \"constructor\": kw(\"constructor\"),\n\n        // scope modifiers\n        \"public\": kw(\"public\"),\n        \"private\": kw(\"private\"),\n        \"protected\": kw(\"protected\"),\n        \"static\": kw(\"static\"),\n\n        // types\n        \"string\": type, \"number\": type, \"bool\": type, \"any\": type\n      };\n\n      for (var attr in tsKeywords) {\n        jsKeywords[attr] = tsKeywords[attr];\n      }\n    }\n\n    return jsKeywords;\n  }();\n\n  var isOperatorChar = /[+\\-*&%=<>!?|~^]/;\n  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n  function readRegexp(stream) {\n    var escaped = false, next, inSet = false;\n    while ((next = stream.next()) != null) {\n      if (!escaped) {\n        if (next == \"/\" && !inSet) return;\n        if (next == \"[\") inSet = true;\n        else if (inSet && next == \"]\") inSet = false;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    } else if (ch == \".\" && stream.match(/^\\d+(?:[eE][+\\-]?\\d+)?/)) {\n      return ret(\"number\", \"number\");\n    } else if (ch == \".\" && stream.match(\"..\")) {\n      return ret(\"spread\", \"meta\");\n    } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return ret(ch);\n    } else if (ch == \"=\" && stream.eat(\">\")) {\n      return ret(\"=>\", \"operator\");\n    } else if (ch == \"0\" && stream.eat(/x/i)) {\n      stream.eatWhile(/[\\da-f]/i);\n      return ret(\"number\", \"number\");\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/);\n      return ret(\"number\", \"number\");\n    } else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      } else if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      } else if (state.lastType == \"operator\" || state.lastType == \"keyword c\" ||\n               state.lastType == \"sof\" || /^[\\[{}\\(,;:]$/.test(state.lastType)) {\n        readRegexp(stream);\n        stream.match(/^\\b(([gimyu])(?![gimyu]*\\2))+\\b/);\n        return ret(\"regexp\", \"string-2\");\n      } else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\", stream.current());\n      }\n    } else if (ch == \"`\") {\n      state.tokenize = tokenQuasi;\n      return tokenQuasi(stream, state);\n    } else if (ch == \"#\") {\n      stream.skipToEnd();\n      return ret(\"error\", \"error\");\n    } else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", \"operator\", stream.current());\n    } else if (wordRE.test(ch)) {\n      stream.eatWhile(wordRE);\n      var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];\n      return (known && state.lastType != \".\") ? ret(known.type, known.style, word) :\n                     ret(\"variable\", \"variable\", word);\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n        state.tokenize = tokenBase;\n        return ret(\"jsonld-keyword\", \"meta\");\n      }\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenQuasi(stream, state) {\n    var escaped = false, next;\n    while ((next = stream.next()) != null) {\n      if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      escaped = !escaped && next == \"\\\\\";\n    }\n    return ret(\"quasi\", \"string-2\", stream.current());\n  }\n\n  var brackets = \"([{}])\";\n  // This is a crude lookahead trick to try and notice that we're\n  // parsing the argument patterns for a fat-arrow function before we\n  // actually hit the arrow token. It only works if the arrow is on\n  // the same line as the arguments and there's no strange noise\n  // (comments) in between. Fallback is to only notice when we hit the\n  // arrow, and not declare the arguments as locals for the arrow\n  // body.\n  function findFatArrow(stream, state) {\n    if (state.fatArrowAt) state.fatArrowAt = null;\n    var arrow = stream.string.indexOf(\"=>\", stream.start);\n    if (arrow < 0) return;\n\n    var depth = 0, sawSomething = false;\n    for (var pos = arrow - 1; pos >= 0; --pos) {\n      var ch = stream.string.charAt(pos);\n      var bracket = brackets.indexOf(ch);\n      if (bracket >= 0 && bracket < 3) {\n        if (!depth) { ++pos; break; }\n        if (--depth == 0) break;\n      } else if (bracket >= 3 && bracket < 6) {\n        ++depth;\n      } else if (wordRE.test(ch)) {\n        sawSomething = true;\n      } else if (/[\"'\\/]/.test(ch)) {\n        return;\n      } else if (sawSomething && !depth) {\n        ++pos;\n        break;\n      }\n    }\n    if (sawSomething && !depth) state.fatArrowAt = pos;\n  }\n\n  // Parser\n\n  var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true, \"regexp\": true, \"this\": true, \"jsonld-keyword\": true};\n\n  function JSLexical(indented, column, type, align, prev, info) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.prev = prev;\n    this.info = info;\n    if (align != null) this.align = align;\n  }\n\n  function inScope(state, varname) {\n    for (var v = state.localVars; v; v = v.next)\n      if (v.name == varname) return true;\n    for (var cx = state.context; cx; cx = cx.prev) {\n      for (var v = cx.vars; v; v = v.next)\n        if (v.name == varname) return true;\n    }\n  }\n\n  function parseJS(state, style, type, content, stream) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n    if (!state.lexical.hasOwnProperty(\"align\"))\n      state.lexical.align = true;\n\n    while(true) {\n      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n      if (combinator(type, content)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        if (cx.marked) return cx.marked;\n        if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n        return style;\n      }\n    }\n  }\n\n  // Combinator utils\n\n  var cx = {state: null, column: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n  function register(varname) {\n    function inList(list) {\n      for (var v = list; v; v = v.next)\n        if (v.name == varname) return true;\n      return false;\n    }\n    var state = cx.state;\n    if (state.context) {\n      cx.marked = \"def\";\n      if (inList(state.localVars)) return;\n      state.localVars = {name: varname, next: state.localVars};\n    } else {\n      if (inList(state.globalVars)) return;\n      if (parserConfig.globalVars)\n        state.globalVars = {name: varname, next: state.globalVars};\n    }\n  }\n\n  // Combinators\n\n  var defaultVars = {name: \"this\", next: {name: \"arguments\"}};\n  function pushcontext() {\n    cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};\n    cx.state.localVars = defaultVars;\n  }\n  function popcontext() {\n    cx.state.localVars = cx.state.context.vars;\n    cx.state.context = cx.state.context.prev;\n  }\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state, indent = state.indented;\n      if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n      else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n        indent = outer.indented;\n      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  poplex.lex = true;\n\n  function expect(wanted) {\n    function exp(type) {\n      if (type == wanted) return cont();\n      else if (wanted == \";\") return pass();\n      else return cont(exp);\n    };\n    return exp;\n  }\n\n  function statement(type, value) {\n    if (type == \"var\") return cont(pushlex(\"vardef\", value.length), vardef, expect(\";\"), poplex);\n    if (type == \"keyword a\") return cont(pushlex(\"form\"), expression, statement, poplex);\n    if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    if (type == \";\") return cont();\n    if (type == \"if\") {\n      if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n        cx.state.cc.pop()();\n      return cont(pushlex(\"form\"), expression, statement, poplex, maybeelse);\n    }\n    if (type == \"function\") return cont(functiondef);\n    if (type == \"for\") return cont(pushlex(\"form\"), forspec, statement, poplex);\n    if (type == \"variable\") return cont(pushlex(\"stat\"), maybelabel);\n    if (type == \"switch\") return cont(pushlex(\"form\"), expression, pushlex(\"}\", \"switch\"), expect(\"{\"),\n                                      block, poplex, poplex);\n    if (type == \"case\") return cont(expression, expect(\":\"));\n    if (type == \"default\") return cont(expect(\":\"));\n    if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, expect(\"(\"), funarg, expect(\")\"),\n                                     statement, poplex, popcontext);\n    if (type == \"module\") return cont(pushlex(\"form\"), pushcontext, afterModule, popcontext, poplex);\n    if (type == \"class\") return cont(pushlex(\"form\"), className, poplex);\n    if (type == \"export\") return cont(pushlex(\"form\"), afterExport, poplex);\n    if (type == \"import\") return cont(pushlex(\"form\"), afterImport, poplex);\n    return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n  }\n  function expression(type) {\n    return expressionInner(type, false);\n  }\n  function expressionNoComma(type) {\n    return expressionInner(type, true);\n  }\n  function expressionInner(type, noComma) {\n    if (cx.state.fatArrowAt == cx.stream.start) {\n      var body = noComma ? arrowBodyNoComma : arrowBody;\n      if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(pattern, \")\"), poplex, expect(\"=>\"), body, popcontext);\n      else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n    }\n\n    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n    if (type == \"function\") return cont(functiondef, maybeop);\n    if (type == \"keyword c\") return cont(noComma ? maybeexpressionNoComma : maybeexpression);\n    if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, comprehension, expect(\")\"), poplex, maybeop);\n    if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n    if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n    if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n    if (type == \"quasi\") { return pass(quasi, maybeop); }\n    return cont();\n  }\n  function maybeexpression(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expression);\n  }\n  function maybeexpressionNoComma(type) {\n    if (type.match(/[;\\}\\)\\],]/)) return pass();\n    return pass(expressionNoComma);\n  }\n\n  function maybeoperatorComma(type, value) {\n    if (type == \",\") return cont(expression);\n    return maybeoperatorNoComma(type, value, false);\n  }\n  function maybeoperatorNoComma(type, value, noComma) {\n    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n    var expr = noComma == false ? expression : expressionNoComma;\n    if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n    if (type == \"operator\") {\n      if (/\\+\\+|--/.test(value)) return cont(me);\n      if (value == \"?\") return cont(expression, expect(\":\"), expr);\n      return cont(expr);\n    }\n    if (type == \"quasi\") { return pass(quasi, me); }\n    if (type == \";\") return;\n    if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n    if (type == \".\") return cont(property, me);\n    if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n  }\n  function quasi(type, value) {\n    if (type != \"quasi\") return pass();\n    if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n    return cont(expression, continueQuasi);\n  }\n  function continueQuasi(type) {\n    if (type == \"}\") {\n      cx.marked = \"string-2\";\n      cx.state.tokenize = tokenQuasi;\n      return cont(quasi);\n    }\n  }\n  function arrowBody(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expression);\n  }\n  function arrowBodyNoComma(type) {\n    findFatArrow(cx.stream, cx.state);\n    return pass(type == \"{\" ? statement : expressionNoComma);\n  }\n  function maybelabel(type) {\n    if (type == \":\") return cont(poplex, statement);\n    return pass(maybeoperatorComma, expect(\";\"), poplex);\n  }\n  function property(type) {\n    if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n  }\n  function objprop(type, value) {\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      if (value == \"get\" || value == \"set\") return cont(getterSetter);\n      return cont(afterprop);\n    } else if (type == \"number\" || type == \"string\") {\n      cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n      return cont(afterprop);\n    } else if (type == \"jsonld-keyword\") {\n      return cont(afterprop);\n    } else if (type == \"[\") {\n      return cont(expression, expect(\"]\"), afterprop);\n    }\n  }\n  function getterSetter(type) {\n    if (type != \"variable\") return pass(afterprop);\n    cx.marked = \"property\";\n    return cont(functiondef);\n  }\n  function afterprop(type) {\n    if (type == \":\") return cont(expressionNoComma);\n    if (type == \"(\") return pass(functiondef);\n  }\n  function commasep(what, end) {\n    function proceed(type) {\n      if (type == \",\") {\n        var lex = cx.state.lexical;\n        if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n        return cont(what, proceed);\n      }\n      if (type == end) return cont();\n      return cont(expect(end));\n    }\n    return function(type) {\n      if (type == end) return cont();\n      return pass(what, proceed);\n    };\n  }\n  function contCommasep(what, end, info) {\n    for (var i = 3; i < arguments.length; i++)\n      cx.cc.push(arguments[i]);\n    return cont(pushlex(end, info), commasep(what, end), poplex);\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    return pass(statement, block);\n  }\n  function maybetype(type) {\n    if (isTS && type == \":\") return cont(typedef);\n  }\n  function typedef(type) {\n    if (type == \"variable\"){cx.marked = \"variable-3\"; return cont();}\n  }\n  function vardef() {\n    return pass(pattern, maybetype, maybeAssign, vardefCont);\n  }\n  function pattern(type, value) {\n    if (type == \"variable\") { register(value); return cont(); }\n    if (type == \"[\") return contCommasep(pattern, \"]\");\n    if (type == \"{\") return contCommasep(proppattern, \"}\");\n  }\n  function proppattern(type, value) {\n    if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n      register(value);\n      return cont(maybeAssign);\n    }\n    if (type == \"variable\") cx.marked = \"property\";\n    return cont(expect(\":\"), pattern, maybeAssign);\n  }\n  function maybeAssign(_type, value) {\n    if (value == \"=\") return cont(expressionNoComma);\n  }\n  function vardefCont(type) {\n    if (type == \",\") return cont(vardef);\n  }\n  function maybeelse(type, value) {\n    if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n  }\n  function forspec(type) {\n    if (type == \"(\") return cont(pushlex(\")\"), forspec1, expect(\")\"), poplex);\n  }\n  function forspec1(type) {\n    if (type == \"var\") return cont(vardef, expect(\";\"), forspec2);\n    if (type == \";\") return cont(forspec2);\n    if (type == \"variable\") return cont(formaybeinof);\n    return pass(expression, expect(\";\"), forspec2);\n  }\n  function formaybeinof(_type, value) {\n    if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression); }\n    return cont(maybeoperatorComma, forspec2);\n  }\n  function forspec2(type, value) {\n    if (type == \";\") return cont(forspec3);\n    if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression); }\n    return pass(expression, expect(\";\"), forspec3);\n  }\n  function forspec3(type) {\n    if (type != \")\") cont(expression);\n  }\n  function functiondef(type, value) {\n    if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n    if (type == \"variable\") {register(value); return cont(functiondef);}\n    if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, statement, popcontext);\n  }\n  function funarg(type) {\n    if (type == \"spread\") return cont(funarg);\n    return pass(pattern, maybetype);\n  }\n  function className(type, value) {\n    if (type == \"variable\") {register(value); return cont(classNameAfter);}\n  }\n  function classNameAfter(type, value) {\n    if (value == \"extends\") return cont(expression, classNameAfter);\n    if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n  }\n  function classBody(type, value) {\n    if (type == \"variable\" || cx.style == \"keyword\") {\n      cx.marked = \"property\";\n      if (value == \"get\" || value == \"set\") return cont(classGetterSetter, functiondef, classBody);\n      return cont(functiondef, classBody);\n    }\n    if (value == \"*\") {\n      cx.marked = \"keyword\";\n      return cont(classBody);\n    }\n    if (type == \";\") return cont(classBody);\n    if (type == \"}\") return cont();\n  }\n  function classGetterSetter(type) {\n    if (type != \"variable\") return pass();\n    cx.marked = \"property\";\n    return cont();\n  }\n  function afterModule(type, value) {\n    if (type == \"string\") return cont(statement);\n    if (type == \"variable\") { register(value); return cont(maybeFrom); }\n  }\n  function afterExport(_type, value) {\n    if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n    if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n    return pass(statement);\n  }\n  function afterImport(type) {\n    if (type == \"string\") return cont();\n    return pass(importSpec, maybeFrom);\n  }\n  function importSpec(type, value) {\n    if (type == \"{\") return contCommasep(importSpec, \"}\");\n    if (type == \"variable\") register(value);\n    return cont();\n  }\n  function maybeFrom(_type, value) {\n    if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n  }\n  function arrayLiteral(type) {\n    if (type == \"]\") return cont();\n    return pass(expressionNoComma, maybeArrayComprehension);\n  }\n  function maybeArrayComprehension(type) {\n    if (type == \"for\") return pass(comprehension, expect(\"]\"));\n    if (type == \",\") return cont(commasep(maybeexpressionNoComma, \"]\"));\n    return pass(commasep(expressionNoComma, \"]\"));\n  }\n  function comprehension(type) {\n    if (type == \"for\") return cont(forspec, comprehension);\n    if (type == \"if\") return cont(expression, comprehension);\n  }\n\n  function isContinuedStatement(state, textAfter) {\n    return state.lastType == \"operator\" || state.lastType == \",\" ||\n      isOperatorChar.test(textAfter.charAt(0)) ||\n      /[,.]/.test(textAfter.charAt(0));\n  }\n\n  // Interface\n\n  return {\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: tokenBase,\n        lastType: \"sof\",\n        cc: [],\n        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n        localVars: parserConfig.localVars,\n        context: parserConfig.localVars && {vars: parserConfig.localVars},\n        indented: 0\n      };\n      if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n        state.globalVars = parserConfig.globalVars;\n      return state;\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n        findFatArrow(stream, state);\n      }\n      if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (type == \"comment\") return style;\n      state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n      return parseJS(state, style, type, content, stream);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize == tokenComment) return CodeMirror.Pass;\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical;\n      // Kludge to prevent 'maybelse' from blocking lexical scope pops\n      if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n        var c = state.cc[i];\n        if (c == poplex) lexical = lexical.prev;\n        else if (c != maybeelse) break;\n      }\n      if (lexical.type == \"stat\" && firstChar == \"}\") lexical = lexical.prev;\n      if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n        lexical = lexical.prev;\n      var type = lexical.type, closing = firstChar == type;\n\n      if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info + 1 : 0);\n      else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n      else if (type == \"form\") return lexical.indented + indentUnit;\n      else if (type == \"stat\")\n        return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n      else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n        return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n      else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      else return lexical.indented + (closing ? 0 : indentUnit);\n    },\n\n    electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n    blockCommentStart: jsonMode ? null : \"/*\",\n    blockCommentEnd: jsonMode ? null : \"*/\",\n    lineComment: jsonMode ? null : \"//\",\n    fold: \"brace\",\n\n    helperType: jsonMode ? \"json\" : \"javascript\",\n    jsonldMode: jsonldMode,\n    jsonMode: jsonMode\n  };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", {name: \"javascript\", json: true});\nCodeMirror.defineMIME(\"application/x-json\", {name: \"javascript\", json: true});\nCodeMirror.defineMIME(\"application/ld+json\", {name: \"javascript\", jsonld: true});\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/javascript/json-ld.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: JSON-LD mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../addon/comment/continuecomment.js\"></script>\n<script src=\"../../addon/comment/comment.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=\"nav\">\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"/></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">JSON-LD</a>\n  </ul>\n</div>\n\n<article>\n<h2>JSON-LD mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n{\n  \"@context\": {\n    \"name\": \"http://schema.org/name\",\n    \"description\": \"http://schema.org/description\",\n    \"image\": {\n      \"@id\": \"http://schema.org/image\",\n      \"@type\": \"@id\"\n    },\n    \"geo\": \"http://schema.org/geo\",\n    \"latitude\": {\n      \"@id\": \"http://schema.org/latitude\",\n      \"@type\": \"xsd:float\"\n    },\n    \"longitude\": {\n      \"@id\": \"http://schema.org/longitude\",\n      \"@type\": \"xsd:float\"\n    },\n    \"xsd\": \"http://www.w3.org/2001/XMLSchema#\"\n  },\n  \"name\": \"The Empire State Building\",\n  \"description\": \"The Empire State Building is a 102-story landmark in New York City.\",\n  \"image\": \"http://www.civil.usherbrooke.ca/cours/gci215a/empire-state-building.jpg\",\n  \"geo\": {\n    \"latitude\": \"40.75\",\n    \"longitude\": \"73.98\"\n  }\n}\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        matchBrackets: true,\n        autoCloseBrackets: true,\n        mode: \"application/ld+json\",\n        lineWrapping: true\n      });\n    </script>\n    \n    <p>This is a specialization of the <a href=\"index.html\">JavaScript mode</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/javascript/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"javascript\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"locals\",\n     \"[keyword function] [variable foo]([def a], [def b]) { [keyword var] [def c] [operator =] [number 10]; [keyword return] [variable-2 a] [operator +] [variable-2 c] [operator +] [variable d]; }\");\n\n  MT(\"comma-and-binop\",\n     \"[keyword function](){ [keyword var] [def x] [operator =] [number 1] [operator +] [number 2], [def y]; }\");\n\n  MT(\"destructuring\",\n     \"([keyword function]([def a], [[[def b], [def c] ]]) {\",\n     \"  [keyword let] {[def d], [property foo]: [def c][operator =][number 10], [def x]} [operator =] [variable foo]([variable-2 a]);\",\n     \"  [[[variable-2 c], [variable y] ]] [operator =] [variable-2 c];\",\n     \"})();\");\n\n  MT(\"class_body\",\n     \"[keyword class] [variable Foo] {\",\n     \"  [property constructor]() {}\",\n     \"  [property sayName]() {\",\n     \"    [keyword return] [string-2 `foo${][variable foo][string-2 }oo`];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"class\",\n     \"[keyword class] [variable Point] [keyword extends] [variable SuperThing] {\",\n     \"  [property get] [property prop]() { [keyword return] [number 24]; }\",\n     \"  [property constructor]([def x], [def y]) {\",\n     \"    [keyword super]([string 'something']);\",\n     \"    [keyword this].[property x] [operator =] [variable-2 x];\",\n     \"  }\",\n     \"}\");\n\n  MT(\"module\",\n     \"[keyword module] [string 'foo'] {\",\n     \"  [keyword export] [keyword let] [def x] [operator =] [number 42];\",\n     \"  [keyword export] [keyword *] [keyword from] [string 'somewhere'];\",\n     \"}\");\n\n  MT(\"import\",\n     \"[keyword function] [variable foo]() {\",\n     \"  [keyword import] [def $] [keyword from] [string 'jquery'];\",\n     \"  [keyword module] [def crypto] [keyword from] [string 'crypto'];\",\n     \"  [keyword import] { [def encrypt], [def decrypt] } [keyword from] [string 'crypto'];\",\n     \"}\");\n\n  MT(\"const\",\n     \"[keyword function] [variable f]() {\",\n     \"  [keyword const] [[ [def a], [def b] ]] [operator =] [[ [number 1], [number 2] ]];\",\n     \"}\");\n\n  MT(\"for/of\",\n     \"[keyword for]([keyword let] [variable of] [keyword of] [variable something]) {}\");\n\n  MT(\"generator\",\n     \"[keyword function*] [variable repeat]([def n]) {\",\n     \"  [keyword for]([keyword var] [def i] [operator =] [number 0]; [variable-2 i] [operator <] [variable-2 n]; [operator ++][variable-2 i])\",\n     \"    [keyword yield] [variable-2 i];\",\n     \"}\");\n\n  MT(\"quotedStringAddition\",\n     \"[keyword let] [variable f] [operator =] [variable a] [operator +] [string 'fatarrow'] [operator +] [variable c];\");\n\n  MT(\"quotedFatArrow\",\n     \"[keyword let] [variable f] [operator =] [variable a] [operator +] [string '=>'] [operator +] [variable c];\");\n\n  MT(\"fatArrow\",\n     \"[variable array].[property filter]([def a] [operator =>] [variable-2 a] [operator +] [number 1]);\",\n     \"[variable a];\", // No longer in scope\n     \"[keyword let] [variable f] [operator =] ([[ [def a], [def b] ]], [def c]) [operator =>] [variable-2 a] [operator +] [variable-2 c];\",\n     \"[variable c];\");\n\n  MT(\"spread\",\n     \"[keyword function] [variable f]([def a], [meta ...][def b]) {\",\n     \"  [variable something]([variable-2 a], [meta ...][variable-2 b]);\",\n     \"}\");\n\n  MT(\"comprehension\",\n     \"[keyword function] [variable f]() {\",\n     \"  [[([variable x] [operator +] [number 1]) [keyword for] ([keyword var] [def x] [keyword in] [variable y]) [keyword if] [variable pred]([variable-2 x]) ]];\",\n     \"  ([variable u] [keyword for] ([keyword var] [def u] [keyword of] [variable generateValues]()) [keyword if] ([variable-2 u].[property color] [operator ===] [string 'blue']));\",\n     \"}\");\n\n  MT(\"quasi\",\n     \"[variable re][string-2 `fofdlakj${][variable x] [operator +] ([variable re][string-2 `foo`]) [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]\");\n\n  MT(\"quasi_no_function\",\n     \"[variable x] [operator =] [string-2 `fofdlakj${][variable x] [operator +] [string-2 `foo`] [operator +] [number 1][string-2 }fdsa`] [operator +] [number 2]\");\n\n  MT(\"indent_statement\",\n     \"[keyword var] [variable x] [operator =] [number 10]\",\n     \"[variable x] [operator +=] [variable y] [operator +]\",\n     \"  [atom Infinity]\",\n     \"[keyword debugger];\");\n\n  MT(\"indent_if\",\n     \"[keyword if] ([number 1])\",\n     \"  [keyword break];\",\n     \"[keyword else] [keyword if] ([number 2])\",\n     \"  [keyword continue];\",\n     \"[keyword else]\",\n     \"  [number 10];\",\n     \"[keyword if] ([number 1]) {\",\n     \"  [keyword break];\",\n     \"} [keyword else] [keyword if] ([number 2]) {\",\n     \"  [keyword continue];\",\n     \"} [keyword else] {\",\n     \"  [number 10];\",\n     \"}\");\n\n  MT(\"indent_for\",\n     \"[keyword for] ([keyword var] [variable i] [operator =] [number 0];\",\n     \"     [variable i] [operator <] [number 100];\",\n     \"     [variable i][operator ++])\",\n     \"  [variable doSomething]([variable i]);\",\n     \"[keyword debugger];\");\n\n  MT(\"indent_c_style\",\n     \"[keyword function] [variable foo]()\",\n     \"{\",\n     \"  [keyword debugger];\",\n     \"}\");\n\n  MT(\"indent_else\",\n     \"[keyword for] (;;)\",\n     \"  [keyword if] ([variable foo])\",\n     \"    [keyword if] ([variable bar])\",\n     \"      [number 1];\",\n     \"    [keyword else]\",\n     \"      [number 2];\",\n     \"  [keyword else]\",\n     \"    [number 3];\");\n\n  MT(\"indent_funarg\",\n     \"[variable foo]([number 10000],\",\n     \"    [keyword function]([def a]) {\",\n     \"  [keyword debugger];\",\n     \"};\");\n\n  MT(\"indent_below_if\",\n     \"[keyword for] (;;)\",\n     \"  [keyword if] ([variable foo])\",\n     \"    [number 1];\",\n     \"[number 2];\");\n\n  MT(\"multilinestring\",\n     \"[keyword var] [variable x] [operator =] [string 'foo\\\\]\",\n     \"[string bar'];\");\n\n  MT(\"scary_regexp\",\n     \"[string-2 /foo[[/]]bar/];\");\n\n  MT(\"indent_strange_array\",\n     \"[keyword var] [variable x] [operator =] [[\",\n     \"  [number 1],,\",\n     \"  [number 2],\",\n     \"]];\",\n     \"[number 10];\");\n\n  var jsonld_mode = CodeMirror.getMode(\n    {indentUnit: 2},\n    {name: \"javascript\", jsonld: true}\n  );\n  function LD(name) {\n    test.mode(name, jsonld_mode, Array.prototype.slice.call(arguments, 1));\n  }\n\n  LD(\"json_ld_keywords\",\n    '{',\n    '  [meta \"@context\"]: {',\n    '    [meta \"@base\"]: [string \"http://example.com\"],',\n    '    [meta \"@vocab\"]: [string \"http://xmlns.com/foaf/0.1/\"],',\n    '    [property \"likesFlavor\"]: {',\n    '      [meta \"@container\"]: [meta \"@list\"]',\n    '      [meta \"@reverse\"]: [string \"@beFavoriteOf\"]',\n    '    },',\n    '    [property \"nick\"]: { [meta \"@container\"]: [meta \"@set\"] },',\n    '    [property \"nick\"]: { [meta \"@container\"]: [meta \"@index\"] }',\n    '  },',\n    '  [meta \"@graph\"]: [[ {',\n    '    [meta \"@id\"]: [string \"http://dbpedia.org/resource/John_Lennon\"],',\n    '    [property \"name\"]: [string \"John Lennon\"],',\n    '    [property \"modified\"]: {',\n    '      [meta \"@value\"]: [string \"2010-05-29T14:17:39+02:00\"],',\n    '      [meta \"@type\"]: [string \"http://www.w3.org/2001/XMLSchema#dateTime\"]',\n    '    }',\n    '  } ]]',\n    '}');\n\n  LD(\"json_ld_fake\",\n    '{',\n    '  [property \"@fake\"]: [string \"@fake\"],',\n    '  [property \"@contextual\"]: [string \"@identifier\"],',\n    '  [property \"user@domain.com\"]: [string \"@graphical\"],',\n    '  [property \"@ID\"]: [string \"@@ID\"]',\n    '}');\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/javascript/typescript.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TypeScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"javascript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TypeScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>TypeScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nclass Greeter {\n\tgreeting: string;\n\tconstructor (message: string) {\n\t\tthis.greeting = message;\n\t}\n\tgreet() {\n\t\treturn \"Hello, \" + this.greeting;\n\t}\n}   \n\nvar greeter = new Greeter(\"world\");\n\nvar button = document.createElement('button')\nbutton.innerText = \"Say Hello\"\nbutton.onclick = function() {\n\talert(greeter.greet())\n}\n\ndocument.body.appendChild(button)\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/typescript\"\n      });\n    </script>\n\n    <p>This is a specialization of the <a href=\"index.html\">JavaScript mode</a>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/jinja2/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Jinja2 mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"jinja2.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Jinja2</a>\n  </ul>\n</div>\n\n<article>\n<h2>Jinja2 mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{# this is a comment #}\n{%- for item in li -%}\n  &lt;li&gt;{{ item.label }}&lt;/li&gt;\n{% endfor -%}\n{{ item.sand == true and item.keyword == false ? 1 : 0 }}\n{{ app.get(55, 1.2, true) }}\n{% if app.get(&#39;_route&#39;) == (&#39;_home&#39;) %}home{% endif %}\n{% if app.session.flashbag.has(&#39;message&#39;) %}\n  {% for message in app.session.flashbag.get(&#39;message&#39;) %}\n    {{ message.content }}\n  {% endfor %}\n{% endif %}\n{{ path(&#39;_home&#39;, {&#39;section&#39;: app.request.get(&#39;section&#39;)}) }}\n{{ path(&#39;_home&#39;, {\n    &#39;section&#39;: app.request.get(&#39;section&#39;),\n    &#39;boolean&#39;: true,\n    &#39;number&#39;: 55.33\n  })\n}}\n{% include (&#39;test.incl.html.twig&#39;) %}\n</textarea></form>\n    <script>\n      var editor =\n      CodeMirror.fromTextArea(document.getElementById(\"code\"), {mode:\n        {name: \"jinja2\", htmlMode: true}});\n    </script>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/jinja2/jinja2.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"jinja2\", function() {\n    var keywords = [\"and\", \"as\", \"block\", \"endblock\", \"by\", \"cycle\", \"debug\", \"else\", \"elif\",\n      \"extends\", \"filter\", \"endfilter\", \"firstof\", \"for\",\n      \"endfor\", \"if\", \"endif\", \"ifchanged\", \"endifchanged\",\n      \"ifequal\", \"endifequal\", \"ifnotequal\",\n      \"endifnotequal\", \"in\", \"include\", \"load\", \"not\", \"now\", \"or\",\n      \"parsed\", \"regroup\", \"reversed\", \"spaceless\",\n      \"endspaceless\", \"ssi\", \"templatetag\", \"openblock\",\n      \"closeblock\", \"openvariable\", \"closevariable\",\n      \"openbrace\", \"closebrace\", \"opencomment\",\n      \"closecomment\", \"widthratio\", \"url\", \"with\", \"endwith\",\n      \"get_current_language\", \"trans\", \"endtrans\", \"noop\", \"blocktrans\",\n      \"endblocktrans\", \"get_available_languages\",\n      \"get_current_language_bidi\", \"plural\"],\n    operator = /^[+\\-*&%=<>!?|~^]/,\n    sign = /^[:\\[\\(\\{]/,\n    atom = [\"true\", \"false\"],\n    number = /^(\\d[+\\-\\*\\/])?\\d+(\\.\\d+)?/;\n\n    keywords = new RegExp(\"((\" + keywords.join(\")|(\") + \"))\\\\b\");\n    atom = new RegExp(\"((\" + atom.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      var ch = stream.peek();\n\n      //Comment\n      if (state.incomment) {\n        if(!stream.skipTo(\"#}\")) {\n          stream.skipToEnd();\n        } else {\n          stream.eatWhile(/\\#|}/);\n          state.incomment = false;\n        }\n        return \"comment\";\n      //Tag\n      } else if (state.intag) {\n        //After operator\n        if(state.operator) {\n          state.operator = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n        //After sign\n        if(state.sign) {\n          state.sign = false;\n          if(stream.match(atom)) {\n            return \"atom\";\n          }\n          if(stream.match(number)) {\n            return \"number\";\n          }\n        }\n\n        if(state.instring) {\n          if(ch == state.instring) {\n            state.instring = false;\n          }\n          stream.next();\n          return \"string\";\n        } else if(ch == \"'\" || ch == '\"') {\n          state.instring = ch;\n          stream.next();\n          return \"string\";\n        } else if(stream.match(state.intag + \"}\") || stream.eat(\"-\") && stream.match(state.intag + \"}\")) {\n          state.intag = false;\n          return \"tag\";\n        } else if(stream.match(operator)) {\n          state.operator = true;\n          return \"operator\";\n        } else if(stream.match(sign)) {\n          state.sign = true;\n        } else {\n          if(stream.eat(\" \") || stream.sol()) {\n            if(stream.match(keywords)) {\n              return \"keyword\";\n            }\n            if(stream.match(atom)) {\n              return \"atom\";\n            }\n            if(stream.match(number)) {\n              return \"number\";\n            }\n            if(stream.sol()) {\n              stream.next();\n            }\n          } else {\n            stream.next();\n          }\n\n        }\n        return \"variable\";\n      } else if (stream.eat(\"{\")) {\n        if (ch = stream.eat(\"#\")) {\n          state.incomment = true;\n          if(!stream.skipTo(\"#}\")) {\n            stream.skipToEnd();\n          } else {\n            stream.eatWhile(/\\#|}/);\n            state.incomment = false;\n          }\n          return \"comment\";\n        //Open tag\n        } else if (ch = stream.eat(/\\{|%/)) {\n          //Cache close tag\n          state.intag = ch;\n          if(ch == \"{\") {\n            state.intag = \"}\";\n          }\n          stream.eat(\"-\");\n          return \"tag\";\n        }\n      }\n      stream.next();\n    };\n\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/julia/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Julia mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"julia.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Julia</a>\n  </ul>\n</div>\n\n<article>\n<h2>Julia mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n#numbers\n1234\n1234im\n.234\n.234im\n2.23im\n2.3f3\n23e2\n0x234\n\n#strings\n'a'\n\"asdf\"\nr\"regex\"\nb\"bytestring\"\n\n\"\"\"\nmultiline string\n\"\"\"\n\n#identifiers\na\nas123\nfunction_name!\n\n#unicode identifiers\n# a = x\\ddot\na⃗ = ẍ\n# a = v\\dot\na⃗ = v̇\n#F\\vec = m \\cdotp a\\vec\nF⃗ = m·a⃗\n\n#literal identifier multiples\n3x\n4[1, 2, 3]\n\n#dicts and indexing\nx=[1, 2, 3]\nx[end-1]\nx={\"julia\"=>\"language of technical computing\"}\n\n\n#exception handling\ntry\n  f()\ncatch\n  @printf \"Error\"\nfinally\n  g()\nend\n\n#types\nimmutable Color{T<:Number}\n  r::T\n  g::T\n  b::T\nend\n\n#functions\nfunction change!(x::Vector{Float64})\n  for i = 1:length(x)\n    x[i] *= 2\n  end\nend\n\n#function invocation\nf('b', (2, 3)...)\n\n#operators\n|=\n&=\n^=\n\\-\n%=\n*=\n+=\n-=\n<=\n>=\n!=\n==\n%\n*\n+\n-\n<\n>\n!\n=\n|\n&\n^\n\\\n?\n~\n:\n$\n<:\n.<\n.>\n<<\n<<=\n>>\n>>>>\n>>=\n>>>=\n<<=\n<<<=\n.<=\n.>=\n.==\n->\n//\nin\n...\n//\n:=\n.//=\n.*=\n./=\n.^=\n.%=\n.+=\n.-=\n\\=\n\\\\=\n||\n===\n&&\n|=\n.|=\n<:\n>:\n|>\n<|\n::\nx ? y : z\n\n#macros\n@spawnat 2 1+1\n@eval(:x)\n\n#keywords and operators\nif else elseif while for\n begin let end do\ntry catch finally return break continue\nglobal local const \nexport import importall using\nfunction macro module baremodule \ntype immutable quote\ntrue false enumerate\n\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"julia\",\n               },\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-julia</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/julia/julia.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"julia\", function(_conf, parserConf) {\n  var ERRORCLASS = 'error';\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var operators = parserConf.operators || /^\\.?[|&^\\\\%*+\\-<>!=\\/]=?|\\?|~|:|\\$|\\.[<>]|<<=?|>>>?=?|\\.[<>=]=|->?|\\/\\/|\\bin\\b/;\n  var delimiters = parserConf.delimiters || /^[;,()[\\]{}]/;\n  var identifiers = parserConf.identifiers|| /^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*!*/;\n  var blockOpeners = [\"begin\", \"function\", \"type\", \"immutable\", \"let\", \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\", \"finally\", \"catch\", \"do\"];\n  var blockClosers = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n  var keywordList = ['if', 'else', 'elseif', 'while', 'for', 'begin', 'let', 'end', 'do', 'try', 'catch', 'finally', 'return', 'break', 'continue', 'global', 'local', 'const', 'export', 'import', 'importall', 'using', 'function', 'macro', 'module', 'baremodule', 'type', 'immutable', 'quote', 'typealias', 'abstract', 'bitstype', 'ccall'];\n  var builtinList = ['true', 'false', 'enumerate', 'open', 'close', 'nothing', 'NaN', 'Inf', 'print', 'println', 'Int', 'Int8', 'Uint8', 'Int16', 'Uint16', 'Int32', 'Uint32', 'Int64', 'Uint64', 'Int128', 'Uint128', 'Bool', 'Char', 'Float16', 'Float32', 'Float64', 'Array', 'Vector', 'Matrix', 'String', 'UTF8String', 'ASCIIString', 'error', 'warn', 'info', '@printf'];\n\n  //var stringPrefixes = new RegExp(\"^[br]?('|\\\")\")\n  var stringPrefixes = /^(`|'|\"{3}|([br]?\"))/;\n  var keywords = wordRegexp(keywordList);\n  var builtins = wordRegexp(builtinList);\n  var openers = wordRegexp(blockOpeners);\n  var closers = wordRegexp(blockClosers);\n  var macro = /^@[_A-Za-z][_A-Za-z0-9]*/;\n  var symbol = /^:[_A-Za-z][_A-Za-z0-9]*/;\n  var indentInfo = null;\n\n  function in_array(state) {\n    var ch = cur_scope(state);\n    if(ch==\"[\" || ch==\"{\") {\n      return true;\n    }\n    else {\n      return false;\n    }\n  }\n\n  function cur_scope(state) {\n    if(state.scopes.length==0) {\n      return null;\n    }\n    return state.scopes[state.scopes.length - 1];\n  }\n\n  // tokenizers\n  function tokenBase(stream, state) {\n    // Handle scope changes\n    var leaving_expr = state.leaving_expr;\n    if(stream.sol()) {\n      leaving_expr = false;\n    }\n    state.leaving_expr = false;\n    if(leaving_expr) {\n      if(stream.match(/^'+/)) {\n        return 'operator';\n      }\n\n    }\n\n    if(stream.match(/^\\.{2,3}/)) {\n      return 'operator';\n    }\n\n    if (stream.eatSpace()) {\n      return null;\n    }\n\n    var ch = stream.peek();\n    // Handle Comments\n    if (ch === '#') {\n        stream.skipToEnd();\n        return 'comment';\n    }\n    if(ch==='[') {\n      state.scopes.push(\"[\");\n    }\n\n    if(ch==='{') {\n      state.scopes.push(\"{\");\n    }\n\n    var scope=cur_scope(state);\n\n    if(scope==='[' && ch===']') {\n      state.scopes.pop();\n      state.leaving_expr=true;\n    }\n\n    if(scope==='{' && ch==='}') {\n      state.scopes.pop();\n      state.leaving_expr=true;\n    }\n\n    if(ch===')') {\n      state.leaving_expr = true;\n    }\n\n    var match;\n    if(!in_array(state) && (match=stream.match(openers, false))) {\n      state.scopes.push(match);\n    }\n\n    if(!in_array(state) && stream.match(closers, false)) {\n      state.scopes.pop();\n    }\n\n    if(in_array(state)) {\n      if(stream.match(/^end/)) {\n        return 'number';\n      }\n\n    }\n\n    if(stream.match(/^=>/)) {\n      return 'operator';\n    }\n\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.]/, false)) {\n      var imMatcher = RegExp(/^im\\b/);\n      var floatLiteral = false;\n      // Floats\n      if (stream.match(/^\\d*\\.(?!\\.)\\d+([ef][\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n      if (stream.match(/^\\d+\\.(?!\\.)\\d*/)) { floatLiteral = true; }\n      if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n      if (floatLiteral) {\n          // Float literals may be \"imaginary\"\n          stream.match(imMatcher);\n          state.leaving_expr = true;\n          return 'number';\n      }\n      // Integers\n      var intLiteral = false;\n      // Hex\n      if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; }\n      // Binary\n      if (stream.match(/^0b[01]+/i)) { intLiteral = true; }\n      // Octal\n      if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; }\n      // Decimal\n      if (stream.match(/^[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n          intLiteral = true;\n      }\n      // Zero by itself with no other piece of number.\n      if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n      if (intLiteral) {\n          // Integer literals may be \"long\"\n          stream.match(imMatcher);\n          state.leaving_expr = true;\n          return 'number';\n      }\n    }\n\n    if(stream.match(/^(::)|(<:)/)) {\n      return 'operator';\n    }\n\n    // Handle symbols\n    if(!leaving_expr && stream.match(symbol)) {\n      return 'string';\n    }\n\n    // Handle operators and Delimiters\n    if (stream.match(operators)) {\n      return 'operator';\n    }\n\n\n    // Handle Strings\n    if (stream.match(stringPrefixes)) {\n      state.tokenize = tokenStringFactory(stream.current());\n      return state.tokenize(stream, state);\n    }\n\n    if (stream.match(macro)) {\n      return 'meta';\n    }\n\n\n    if (stream.match(delimiters)) {\n      return null;\n    }\n\n    if (stream.match(keywords)) {\n      return 'keyword';\n    }\n\n    if (stream.match(builtins)) {\n      return 'builtin';\n    }\n\n\n    if (stream.match(identifiers)) {\n      state.leaving_expr=true;\n      return 'variable';\n    }\n    // Handle non-detected items\n    stream.next();\n    return ERRORCLASS;\n  }\n\n  function tokenStringFactory(delimiter) {\n    while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) {\n      delimiter = delimiter.substr(1);\n    }\n    var singleline = delimiter.length == 1;\n    var OUTCLASS = 'string';\n\n    function tokenString(stream, state) {\n      while (!stream.eol()) {\n        stream.eatWhile(/[^'\"\\\\]/);\n        if (stream.eat('\\\\')) {\n            stream.next();\n            if (singleline && stream.eol()) {\n              return OUTCLASS;\n            }\n        } else if (stream.match(delimiter)) {\n            state.tokenize = tokenBase;\n            return OUTCLASS;\n        } else {\n            stream.eat(/['\"]/);\n        }\n      }\n      if (singleline) {\n        if (parserConf.singleLineStringErrors) {\n            return ERRORCLASS;\n        } else {\n            state.tokenize = tokenBase;\n        }\n      }\n      return OUTCLASS;\n    }\n    tokenString.isString = true;\n    return tokenString;\n  }\n\n  function tokenLexer(stream, state) {\n    indentInfo = null;\n    var style = state.tokenize(stream, state);\n    var current = stream.current();\n\n    // Handle '.' connected identifiers\n    if (current === '.') {\n      style = stream.match(identifiers, false) ? null : ERRORCLASS;\n      if (style === null && state.lastStyle === 'meta') {\n          // Apply 'meta' style to '.' connected identifiers when\n          // appropriate.\n        style = 'meta';\n      }\n      return style;\n    }\n\n    return style;\n  }\n\n  var external = {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        scopes: [],\n        leaving_expr: false\n      };\n    },\n\n    token: function(stream, state) {\n      var style = tokenLexer(stream, state);\n      state.lastStyle = style;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var delta = 0;\n      if(textAfter==\"end\" || textAfter==\"]\" || textAfter==\"}\" || textAfter==\"else\" || textAfter==\"elseif\" || textAfter==\"catch\" || textAfter==\"finally\") {\n        delta = -1;\n      }\n      return (state.scopes.length + delta) * 4;\n    },\n\n    lineComment: \"#\",\n    fold: \"indent\",\n    electricChars: \"edlsifyh]}\"\n  };\n  return external;\n});\n\n\nCodeMirror.defineMIME(\"text/x-julia\", \"julia\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/kotlin/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Kotlin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"kotlin.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Kotlin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Kotlin mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\npackage org.wasabi.http\n\nimport java.util.concurrent.Executors\nimport java.net.InetSocketAddress\nimport org.wasabi.app.AppConfiguration\nimport io.netty.bootstrap.ServerBootstrap\nimport io.netty.channel.nio.NioEventLoopGroup\nimport io.netty.channel.socket.nio.NioServerSocketChannel\nimport org.wasabi.app.AppServer\n\npublic class HttpServer(private val appServer: AppServer) {\n\n    val bootstrap: ServerBootstrap\n    val primaryGroup: NioEventLoopGroup\n    val workerGroup:  NioEventLoopGroup\n\n    {\n        // Define worker groups\n        primaryGroup = NioEventLoopGroup()\n        workerGroup = NioEventLoopGroup()\n\n        // Initialize bootstrap of server\n        bootstrap = ServerBootstrap()\n\n        bootstrap.group(primaryGroup, workerGroup)\n        bootstrap.channel(javaClass<NioServerSocketChannel>())\n        bootstrap.childHandler(NettyPipelineInitializer(appServer))\n    }\n\n    public fun start(wait: Boolean = true) {\n        val channel = bootstrap.bind(appServer.configuration.port)?.sync()?.channel()\n\n        if (wait) {\n            channel?.closeFuture()?.sync()\n        }\n    }\n\n    public fun stop() {\n        // Shutdown all event loops\n        primaryGroup.shutdownGracefully()\n        workerGroup.shutdownGracefully()\n\n        // Wait till all threads are terminated\n        primaryGroup.terminationFuture().sync()\n        workerGroup.terminationFuture().sync()\n    }\n}\n</textarea></div>\n\n    <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n            mode: {name: \"kotlin\"},\n            lineNumbers: true,\n            indentUnit: 4\n        });\n    </script>\n    <h3>Mode for Kotlin (http://kotlin.jetbrains.org/)</h3>\n    <p>Developed by Hadi Hariri (https://github.com/hhariri).</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-kotlin</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/kotlin/kotlin.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"kotlin\", function (config, parserConfig) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var multiLineStrings = parserConfig.multiLineStrings;\n\n  var keywords = words(\n          \"package continue return object while break class data trait throw super\" +\n          \" when type this else This try val var fun for is in if do as true false null get set\");\n  var softKeywords = words(\"import\" +\n      \" where by get set abstract enum open annotation override private public internal\" +\n      \" protected catch out vararg inline finally final ref\");\n  var blockKeywords = words(\"catch class do else finally for if where try while enum\");\n  var atoms = words(\"null true false this\");\n\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"' || ch == \"'\") {\n      return startString(ch, stream, state);\n    }\n    // Wildcard import w/o trailing semicolon (import smth.*)\n    if (ch == \".\" && stream.eat(\"*\")) {\n      return \"word\";\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      if (stream.eat(/eE/)) {\n        stream.eat(/\\+\\-/);\n        stream.eatWhile(/\\d/);\n      }\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        state.tokenize.push(tokenComment);\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (expectExpression(state.lastToken)) {\n        return startString(ch, stream, state);\n      }\n    }\n    // Commented\n    if (ch == \"-\" && stream.eat(\">\")) {\n      curPunc = \"->\";\n      return null;\n    }\n    if (/[\\-+*&%=<>!?|\\/~]/.test(ch)) {\n      stream.eatWhile(/[\\-+*&%=<>|~]/);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n\n    var cur = stream.current();\n    if (atoms.propertyIsEnumerable(cur)) {\n      return \"atom\";\n    }\n    if (softKeywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"softKeyword\";\n    }\n\n    if (keywords.propertyIsEnumerable(cur)) {\n      if (blockKeywords.propertyIsEnumerable(cur)) curPunc = \"newstatement\";\n      return \"keyword\";\n    }\n    return \"word\";\n  }\n\n  tokenBase.isBase = true;\n\n  function startString(quote, stream, state) {\n    var tripleQuoted = false;\n    if (quote != \"/\" && stream.eat(quote)) {\n      if (stream.eat(quote)) tripleQuoted = true;\n      else return \"string\";\n    }\n    function t(stream, state) {\n      var escaped = false, next, end = !tripleQuoted;\n\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          if (!tripleQuoted) {\n            break;\n          }\n          if (stream.match(quote + quote)) {\n            end = true;\n            break;\n          }\n        }\n\n        if (quote == '\"' && next == \"$\" && !escaped && stream.eat(\"{\")) {\n          state.tokenize.push(tokenBaseUntilBrace());\n          return \"string\";\n        }\n\n        if (next == \"$\" && !escaped && !stream.eat(\" \")) {\n          state.tokenize.push(tokenBaseUntilSpace());\n          return \"string\";\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (multiLineStrings)\n        state.tokenize.push(t);\n      if (end) state.tokenize.pop();\n      return \"string\";\n    }\n\n    state.tokenize.push(t);\n    return t(stream, state);\n  }\n\n  function tokenBaseUntilBrace() {\n    var depth = 1;\n\n    function t(stream, state) {\n      if (stream.peek() == \"}\") {\n        depth--;\n        if (depth == 0) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length - 1](stream, state);\n        }\n      } else if (stream.peek() == \"{\") {\n        depth++;\n      }\n      return tokenBase(stream, state);\n    }\n\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenBaseUntilSpace() {\n    function t(stream, state) {\n      if (stream.eat(/[\\w]/)) {\n        var isWord = stream.eatWhile(/[\\w]/);\n        if (isWord) {\n          state.tokenize.pop();\n          return \"word\";\n        }\n      }\n      state.tokenize.pop();\n      return \"string\";\n    }\n\n    t.isBase = true;\n    return t;\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize.pop();\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function expectExpression(last) {\n    return !last || last == \"operator\" || last == \"->\" || /[\\.\\[\\{\\(,;:]/.test(last) ||\n        last == \"newstatement\" || last == \"keyword\" || last == \"proplabel\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n\n  function pushContext(state, col, type) {\n    return state.context = new Context(state.indented, col, type, null, state.context);\n  }\n\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\")\n      state.indented = state.context.indented;\n    return state.context = state.context.prev;\n  }\n\n  // Interface\n\n  return {\n    startState: function (basecolumn) {\n      return {\n        tokenize: [tokenBase],\n        context: new Context((basecolumn || 0) - config.indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true,\n        lastToken: null\n      };\n    },\n\n    token: function (stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n        // Automatic semicolon insertion\n        if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) {\n          popContext(state);\n          ctx = state.context;\n        }\n      }\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      var style = state.tokenize[state.tokenize.length - 1](stream, state);\n      if (style == \"comment\") return style;\n      if (ctx.align == null) ctx.align = true;\n      if ((curPunc == \";\" || curPunc == \":\") && ctx.type == \"statement\") popContext(state);\n      // Handle indentation for {x -> \\n ... }\n      else if (curPunc == \"->\" && ctx.type == \"statement\" && ctx.prev.type == \"}\") {\n        popContext(state);\n        state.context.align = false;\n      }\n      else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n      else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n      else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n      else if (curPunc == \"}\") {\n        while (ctx.type == \"statement\") ctx = popContext(state);\n        if (ctx.type == \"}\") ctx = popContext(state);\n        while (ctx.type == \"statement\") ctx = popContext(state);\n      }\n      else if (curPunc == ctx.type) popContext(state);\n      else if (ctx.type == \"}\" || ctx.type == \"top\" || (ctx.type == \"statement\" && curPunc == \"newstatement\"))\n        pushContext(state, stream.column(), \"statement\");\n      state.startOfLine = false;\n      state.lastToken = curPunc || style;\n      return style;\n    },\n\n    indent: function (state, textAfter) {\n      if (!state.tokenize[state.tokenize.length - 1].isBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.context;\n      if (ctx.type == \"statement\" && !expectExpression(state.lastToken)) ctx = ctx.prev;\n      var closing = firstChar == ctx.type;\n      if (ctx.type == \"statement\") {\n        return ctx.indented + (firstChar == \"{\" ? 0 : config.indentUnit);\n      }\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indented + (closing ? 0 : config.indentUnit);\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-kotlin\", \"kotlin\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/livescript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: LiveScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/solarized.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"livescript.js\"></script>\n<style>.CodeMirror {font-size: 80%;border-top: 1px solid silver; border-bottom: 1px solid silver;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">LiveScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>LiveScript mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# LiveScript mode for CodeMirror\n# The following script, prelude.ls, is used to\n# demonstrate LiveScript mode for CodeMirror.\n#   https://github.com/gkz/prelude-ls\n\nexport objToFunc = objToFunc = (obj) ->\n  (key) -> obj[key]\n\nexport each = (f, xs) -->\n  if typeof! xs is \\Object\n    for , x of xs then f x\n  else\n    for x in xs then f x\n  xs\n\nexport map = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, f x] for key, x of xs}\n  else\n    result = [f x for x in xs]\n    if type is \\String then result * '' else result\n\nexport filter = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, x] for key, x of xs when f x}\n  else\n    result = [x for x in xs when f x]\n    if type is \\String then result * '' else result\n\nexport reject = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    {[key, x] for key, x of xs when not f x}\n  else\n    result = [x for x in xs when not f x]\n    if type is \\String then result * '' else result\n\nexport partition = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  type = typeof! xs\n  if type is \\Object\n    passed = {}\n    failed = {}\n    for key, x of xs\n      (if f x then passed else failed)[key] = x\n  else\n    passed = []\n    failed = []\n    for x in xs\n      (if f x then passed else failed)push x\n    if type is \\String\n      passed *= ''\n      failed *= ''\n  [passed, failed]\n\nexport find = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  if typeof! xs is \\Object\n    for , x of xs when f x then return x\n  else\n    for x in xs when f x then return x\n  void\n\nexport head = export first = (xs) ->\n  return void if not xs.length\n  xs.0\n\nexport tail = (xs) ->\n  return void if not xs.length\n  xs.slice 1\n\nexport last = (xs) ->\n  return void if not xs.length\n  xs[*-1]\n\nexport initial = (xs) ->\n  return void if not xs.length\n  xs.slice 0 xs.length - 1\n\nexport empty = (xs) ->\n  if typeof! xs is \\Object\n    for x of xs then return false\n    return yes\n  not xs.length\n\nexport values = (obj) ->\n  [x for , x of obj]\n\nexport keys = (obj) ->\n  [x for x of obj]\n\nexport len = (xs) ->\n  xs = values xs if typeof! xs is \\Object\n  xs.length\n\nexport cons = (x, xs) -->\n  if typeof! xs is \\String then x + xs else [x] ++ xs\n\nexport append = (xs, ys) -->\n  if typeof! ys is \\String then xs + ys else xs ++ ys\n\nexport join = (sep, xs) -->\n  xs = values xs if typeof! xs is \\Object\n  xs.join sep\n\nexport reverse = (xs) ->\n  if typeof! xs is \\String\n  then (xs / '')reverse! * ''\n  else xs.slice!reverse!\n\nexport fold = export foldl = (f, memo, xs) -->\n  if typeof! xs is \\Object\n    for , x of xs then memo = f memo, x\n  else\n    for x in xs then memo = f memo, x\n  memo\n\nexport fold1 = export foldl1 = (f, xs) --> fold f, xs.0, xs.slice 1\n\nexport foldr = (f, memo, xs) --> fold f, memo, xs.slice!reverse!\n\nexport foldr1 = (f, xs) -->\n  xs.=slice!reverse!\n  fold f, xs.0, xs.slice 1\n\nexport unfoldr = export unfold = (f, b) -->\n  if (f b)?\n    [that.0] ++ unfoldr f, that.1\n  else\n    []\n\nexport andList = (xs) ->\n  for x in xs when not x\n    return false\n  true\n\nexport orList = (xs) ->\n  for x in xs when x\n    return true\n  false\n\nexport any = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  for x in xs when f x\n    return yes\n  no\n\nexport all = (f, xs) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  for x in xs when not f x\n    return no\n  yes\n\nexport unique = (xs) ->\n  result = []\n  if typeof! xs is \\Object\n    for , x of xs when x not in result then result.push x\n  else\n    for x   in xs when x not in result then result.push x\n  if typeof! xs is \\String then result * '' else result\n\nexport sort = (xs) ->\n  xs.concat!sort (x, y) ->\n    | x > y =>  1\n    | x < y => -1\n    | _     =>  0\n\nexport sortBy = (f, xs) -->\n  return [] unless xs.length\n  xs.concat!sort f\n\nexport compare = (f, x, y) -->\n  | (f x) > (f y) =>  1\n  | (f x) < (f y) => -1\n  | otherwise     =>  0\n\nexport sum = (xs) ->\n  result = 0\n  if typeof! xs is \\Object\n    for , x of xs then result += x\n  else\n    for x   in xs then result += x\n  result\n\nexport product = (xs) ->\n  result = 1\n  if typeof! xs is \\Object\n    for , x of xs then result *= x\n  else\n    for x   in xs then result *= x\n  result\n\nexport mean = export average = (xs) -> (sum xs) / len xs\n\nexport concat = (xss) -> fold append, [], xss\n\nexport concatMap = (f, xs) --> fold ((memo, x) -> append memo, f x), [], xs\n\nexport listToObj = (xs) ->\n  {[x.0, x.1] for x in xs}\n\nexport maximum = (xs) -> fold1 (>?), xs\n\nexport minimum = (xs) -> fold1 (<?), xs\n\nexport scan = export scanl = (f, memo, xs) -->\n  last = memo\n  if typeof! xs is \\Object\n  then [memo] ++ [last = f last, x for , x of xs]\n  else [memo] ++ [last = f last, x for x in xs]\n\nexport scan1 = export scanl1 = (f, xs) --> scan f, xs.0, xs.slice 1\n\nexport scanr = (f, memo, xs) -->\n  xs.=slice!reverse!\n  scan f, memo, xs .reverse!\n\nexport scanr1 = (f, xs) -->\n  xs.=slice!reverse!\n  scan f, xs.0, xs.slice 1 .reverse!\n\nexport replicate = (n, x) -->\n  result = []\n  i = 0\n  while i < n, ++i then result.push x\n  result\n\nexport take = (n, xs) -->\n  | n <= 0\n    if typeof! xs is \\String then '' else []\n  | not xs.length => xs\n  | otherwise     => xs.slice 0, n\n\nexport drop = (n, xs) -->\n  | n <= 0        => xs\n  | not xs.length => xs\n  | otherwise     => xs.slice n\n\nexport splitAt = (n, xs) --> [(take n, xs), (drop n, xs)]\n\nexport takeWhile = (p, xs) -->\n  return xs if not xs.length\n  p = objToFunc p if typeof! p isnt \\Function\n  result = []\n  for x in xs\n    break if not p x\n    result.push x\n  if typeof! xs is \\String then result * '' else result\n\nexport dropWhile = (p, xs) -->\n  return xs if not xs.length\n  p = objToFunc p if typeof! p isnt \\Function\n  i = 0\n  for x in xs\n    break if not p x\n    ++i\n  drop i, xs\n\nexport span = (p, xs) --> [(takeWhile p, xs), (dropWhile p, xs)]\n\nexport breakIt = (p, xs) --> span (not) << p, xs\n\nexport zip = (xs, ys) -->\n  result = []\n  for zs, i in [xs, ys]\n    for z, j in zs\n      result.push [] if i is 0\n      result[j]?push z\n  result\n\nexport zipWith = (f,xs, ys) -->\n  f = objToFunc f if typeof! f isnt \\Function\n  if not xs.length or not ys.length\n    []\n  else\n    [f.apply this, zs for zs in zip.call this, xs, ys]\n\nexport zipAll = (...xss) ->\n  result = []\n  for xs, i in xss\n    for x, j in xs\n      result.push [] if i is 0\n      result[j]?push x\n  result\n\nexport zipAllWith = (f, ...xss) ->\n  f = objToFunc f if typeof! f isnt \\Function\n  if not xss.0.length or not xss.1.length\n    []\n  else\n    [f.apply this, xs for xs in zipAll.apply this, xss]\n\nexport compose = (...funcs) ->\n  ->\n    args = arguments\n    for f in funcs\n      args = [f.apply this, args]\n    args.0\n\nexport curry = (f) ->\n  curry$ f # using util method curry$ from livescript\n\nexport id = (x) -> x\n\nexport flip = (f, x, y) --> f y, x\n\nexport fix = (f) ->\n  ( (g, x) -> -> f(g g) ...arguments ) do\n    (g, x) -> -> f(g g) ...arguments\n\nexport lines = (str) ->\n  return [] if not str.length\n  str / \\\\n\n\nexport unlines = (strs) -> strs * \\\\n\n\nexport words = (str) ->\n  return [] if not str.length\n  str / /[ ]+/\n\nexport unwords = (strs) -> strs * ' '\n\nexport max = (>?)\n\nexport min = (<?)\n\nexport negate = (x) -> -x\n\nexport abs = Math.abs\n\nexport signum = (x) ->\n  | x < 0     => -1\n  | x > 0     =>  1\n  | otherwise =>  0\n\nexport quot = (x, y) --> ~~(x / y)\n\nexport rem = (%)\n\nexport div = (x, y) --> Math.floor x / y\n\nexport mod = (%%)\n\nexport recip = (1 /)\n\nexport pi = Math.PI\n\nexport tau = pi * 2\n\nexport exp = Math.exp\n\nexport sqrt = Math.sqrt\n\n# changed from log as log is a\n# common function for logging things\nexport ln = Math.log\n\nexport pow = (^)\n\nexport sin = Math.sin\n\nexport tan = Math.tan\n\nexport cos = Math.cos\n\nexport asin = Math.asin\n\nexport acos = Math.acos\n\nexport atan = Math.atan\n\nexport atan2 = (x, y) --> Math.atan2 x, y\n\n# sinh\n# tanh\n# cosh\n# asinh\n# atanh\n# acosh\n\nexport truncate = (x) -> ~~x\n\nexport round = Math.round\n\nexport ceiling = Math.ceil\n\nexport floor = Math.floor\n\nexport isItNaN = (x) -> x isnt x\n\nexport even = (x) -> x % 2 == 0\n\nexport odd = (x) -> x % 2 != 0\n\nexport gcd = (x, y) -->\n  x = Math.abs x\n  y = Math.abs y\n  until y is 0\n    z = x % y\n    x = y\n    y = z\n  x\n\nexport lcm = (x, y) -->\n  Math.abs Math.floor (x / (gcd x, y) * y)\n\n# meta\nexport installPrelude = !(target) ->\n  unless target.prelude?isInstalled\n    target <<< out$ # using out$ generated by livescript\n    target <<< target.prelude.isInstalled = true\n\nexport prelude = out$\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"solarized light\",\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-livescript</code>.</p>\n\n    <p>The LiveScript mode was written by Kenneth Bentley.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/livescript/livescript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/duralog/CodeMirror\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode('livescript', function(){\n    var tokenBase = function(stream, state) {\n      var next_rule = state.next || \"start\";\n      if (next_rule) {\n        state.next = state.next;\n        var nr = Rules[next_rule];\n        if (nr.splice) {\n          for (var i$ = 0; i$ < nr.length; ++i$) {\n            var r = nr[i$], m;\n            if (r.regex && (m = stream.match(r.regex))) {\n              state.next = r.next || state.next;\n              return r.token;\n            }\n          }\n          stream.next();\n          return 'error';\n        }\n        if (stream.match(r = Rules[next_rule])) {\n          if (r.regex && stream.match(r.regex)) {\n            state.next = r.next;\n            return r.token;\n          } else {\n            stream.next();\n            return 'error';\n          }\n        }\n      }\n      stream.next();\n      return 'error';\n    };\n    var external = {\n      startState: function(){\n        return {\n          next: 'start',\n          lastToken: null\n        };\n      },\n      token: function(stream, state){\n        while (stream.pos == stream.start)\n          var style = tokenBase(stream, state);\n        state.lastToken = {\n          style: style,\n          indent: stream.indentation(),\n          content: stream.current()\n        };\n        return style.replace(/\\./g, ' ');\n      },\n      indent: function(state){\n        var indentation = state.lastToken.indent;\n        if (state.lastToken.content.match(indenter)) {\n          indentation += 2;\n        }\n        return indentation;\n      }\n    };\n    return external;\n  });\n\n  var identifier = '(?![\\\\d\\\\s])[$\\\\w\\\\xAA-\\\\uFFDC](?:(?!\\\\s)[$\\\\w\\\\xAA-\\\\uFFDC]|-[A-Za-z])*';\n  var indenter = RegExp('(?:[({[=:]|[-~]>|\\\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\\\s*all)?|const|var|let|new|catch(?:\\\\s*' + identifier + ')?))\\\\s*$');\n  var keywordend = '(?![$\\\\w]|-[A-Za-z]|\\\\s*:(?![:=]))';\n  var stringfill = {\n    token: 'string',\n    regex: '.+'\n  };\n  var Rules = {\n    start: [\n      {\n        token: 'comment.doc',\n        regex: '/\\\\*',\n        next: 'comment'\n      }, {\n        token: 'comment',\n        regex: '#.*'\n      }, {\n        token: 'keyword',\n        regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend\n      }, {\n        token: 'constant.language',\n        regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend\n      }, {\n        token: 'invalid.illegal',\n        regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend\n      }, {\n        token: 'language.support.class',\n        regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend\n      }, {\n        token: 'language.support.function',\n        regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend\n      }, {\n        token: 'variable.language',\n        regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend\n      }, {\n        token: 'identifier',\n        regex: identifier + '\\\\s*:(?![:=])'\n      }, {\n        token: 'variable',\n        regex: identifier\n      }, {\n        token: 'keyword.operator',\n        regex: '(?:\\\\.{3}|\\\\s+\\\\?)'\n      }, {\n        token: 'keyword.variable',\n        regex: '(?:@+|::|\\\\.\\\\.)',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\.\\\\s*',\n        next: 'key'\n      }, {\n        token: 'string',\n        regex: '\\\\\\\\\\\\S[^\\\\s,;)}\\\\]]*'\n      }, {\n        token: 'string.doc',\n        regex: '\\'\\'\\'',\n        next: 'qdoc'\n      }, {\n        token: 'string.doc',\n        regex: '\"\"\"',\n        next: 'qqdoc'\n      }, {\n        token: 'string',\n        regex: '\\'',\n        next: 'qstring'\n      }, {\n        token: 'string',\n        regex: '\"',\n        next: 'qqstring'\n      }, {\n        token: 'string',\n        regex: '`',\n        next: 'js'\n      }, {\n        token: 'string',\n        regex: '<\\\\[',\n        next: 'words'\n      }, {\n        token: 'string.regex',\n        regex: '//',\n        next: 'heregex'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\/(?:[^[\\\\/\\\\n\\\\\\\\]*(?:(?:\\\\\\\\.|\\\\[[^\\\\]\\\\n\\\\\\\\]*(?:\\\\\\\\.[^\\\\]\\\\n\\\\\\\\]*)*\\\\])[^[\\\\/\\\\n\\\\\\\\]*)*)\\\\/[gimy$]{0,4}',\n        next: 'key'\n      }, {\n        token: 'constant.numeric',\n        regex: '(?:0x[\\\\da-fA-F][\\\\da-fA-F_]*|(?:[2-9]|[12]\\\\d|3[0-6])r[\\\\da-zA-Z][\\\\da-zA-Z_]*|(?:\\\\d[\\\\d_]*(?:\\\\.\\\\d[\\\\d_]*)?|\\\\.\\\\d[\\\\d_]*)(?:e[+-]?\\\\d[\\\\d_]*)?[\\\\w$]*)'\n      }, {\n        token: 'lparen',\n        regex: '[({[]'\n      }, {\n        token: 'rparen',\n        regex: '[)}\\\\]]',\n        next: 'key'\n      }, {\n        token: 'keyword.operator',\n        regex: '\\\\S+'\n      }, {\n        token: 'text',\n        regex: '\\\\s+'\n      }\n    ],\n    heregex: [\n      {\n        token: 'string.regex',\n        regex: '.*?//[gimy$?]{0,4}',\n        next: 'start'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\s*#{'\n      }, {\n        token: 'comment.regex',\n        regex: '\\\\s+(?:#.*)?'\n      }, {\n        token: 'string.regex',\n        regex: '\\\\S+'\n      }\n    ],\n    key: [\n      {\n        token: 'keyword.operator',\n        regex: '[.?@!]+'\n      }, {\n        token: 'identifier',\n        regex: identifier,\n        next: 'start'\n      }, {\n        token: 'text',\n        regex: '',\n        next: 'start'\n      }\n    ],\n    comment: [\n      {\n        token: 'comment.doc',\n        regex: '.*?\\\\*/',\n        next: 'start'\n      }, {\n        token: 'comment.doc',\n        regex: '.+'\n      }\n    ],\n    qdoc: [\n      {\n        token: 'string',\n        regex: \".*?'''\",\n        next: 'key'\n      }, stringfill\n    ],\n    qqdoc: [\n      {\n        token: 'string',\n        regex: '.*?\"\"\"',\n        next: 'key'\n      }, stringfill\n    ],\n    qstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\\']*(?:\\\\\\\\.[^\\\\\\\\\\']*)*\\'',\n        next: 'key'\n      }, stringfill\n    ],\n    qqstring: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\\"]*(?:\\\\\\\\.[^\\\\\\\\\"]*)*\"',\n        next: 'key'\n      }, stringfill\n    ],\n    js: [\n      {\n        token: 'string',\n        regex: '[^\\\\\\\\`]*(?:\\\\\\\\.[^\\\\\\\\`]*)*`',\n        next: 'key'\n      }, stringfill\n    ],\n    words: [\n      {\n        token: 'string',\n        regex: '.*?\\\\]>',\n        next: 'key'\n      }, stringfill\n    ]\n  };\n  for (var idx in Rules) {\n    var r = Rules[idx];\n    if (r.splice) {\n      for (var i = 0, len = r.length; i < len; ++i) {\n        var rr = r[i];\n        if (typeof rr.regex === 'string') {\n          Rules[idx][i].regex = new RegExp('^' + rr.regex);\n        }\n      }\n    } else if (typeof rr.regex === 'string') {\n      Rules[idx].regex = new RegExp('^' + r.regex);\n    }\n  }\n\n  CodeMirror.defineMIME('text/x-livescript', 'livescript');\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/lua/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Lua mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/neat.css\">\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"lua.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Lua</a>\n  </ul>\n</div>\n\n<article>\n<h2>Lua mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n--[[\nexample useless code to show lua syntax highlighting\nthis is multiline comment\n]]\n\nfunction blahblahblah(x)\n\n  local table = {\n    \"asd\" = 123,\n    \"x\" = 0.34,  \n  }\n  if x ~= 3 then\n    print( x )\n  elseif x == \"string\"\n    my_custom_function( 0x34 )\n  else\n    unknown_function( \"some string\" )\n  end\n\n  --single line comment\n  \nend\n\nfunction blablabla3()\n\n  for k,v in ipairs( table ) do\n    --abcde..\n    y=[=[\n  x=[[\n      x is a multi line string\n   ]]\n  but its definition is iside a highest level string!\n  ]=]\n    print(\" \\\"\\\" \")\n\n    s = math.sin( x )\n  end\n\nend\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        matchBrackets: true,\n        theme: \"neat\"\n      });\n    </script>\n\n    <p>Loosely based on Franciszek\n    Wawrzak's <a href=\"http://codemirror.net/1/contrib/lua\">CodeMirror\n    1 mode</a>. One configuration parameter is\n    supported, <code>specials</code>, to which you can provide an\n    array of strings to have those identifiers highlighted with\n    the <code>lua-special</code> style.</p>\n    <p><strong>MIME types defined:</strong> <code>text/x-lua</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/lua/lua.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's\n// CodeMirror 1 mode.\n// highlights keywords, strings, comments (no leveling supported! (\"[==[\")), tokens, basic indenting\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"lua\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n\n  function prefixRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")\", \"i\");\n  }\n  function wordRE(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var specials = wordRE(parserConfig.specials || []);\n\n  // long list of standard functions from lua manual\n  var builtins = wordRE([\n    \"_G\",\"_VERSION\",\"assert\",\"collectgarbage\",\"dofile\",\"error\",\"getfenv\",\"getmetatable\",\"ipairs\",\"load\",\n    \"loadfile\",\"loadstring\",\"module\",\"next\",\"pairs\",\"pcall\",\"print\",\"rawequal\",\"rawget\",\"rawset\",\"require\",\n    \"select\",\"setfenv\",\"setmetatable\",\"tonumber\",\"tostring\",\"type\",\"unpack\",\"xpcall\",\n\n    \"coroutine.create\",\"coroutine.resume\",\"coroutine.running\",\"coroutine.status\",\"coroutine.wrap\",\"coroutine.yield\",\n\n    \"debug.debug\",\"debug.getfenv\",\"debug.gethook\",\"debug.getinfo\",\"debug.getlocal\",\"debug.getmetatable\",\n    \"debug.getregistry\",\"debug.getupvalue\",\"debug.setfenv\",\"debug.sethook\",\"debug.setlocal\",\"debug.setmetatable\",\n    \"debug.setupvalue\",\"debug.traceback\",\n\n    \"close\",\"flush\",\"lines\",\"read\",\"seek\",\"setvbuf\",\"write\",\n\n    \"io.close\",\"io.flush\",\"io.input\",\"io.lines\",\"io.open\",\"io.output\",\"io.popen\",\"io.read\",\"io.stderr\",\"io.stdin\",\n    \"io.stdout\",\"io.tmpfile\",\"io.type\",\"io.write\",\n\n    \"math.abs\",\"math.acos\",\"math.asin\",\"math.atan\",\"math.atan2\",\"math.ceil\",\"math.cos\",\"math.cosh\",\"math.deg\",\n    \"math.exp\",\"math.floor\",\"math.fmod\",\"math.frexp\",\"math.huge\",\"math.ldexp\",\"math.log\",\"math.log10\",\"math.max\",\n    \"math.min\",\"math.modf\",\"math.pi\",\"math.pow\",\"math.rad\",\"math.random\",\"math.randomseed\",\"math.sin\",\"math.sinh\",\n    \"math.sqrt\",\"math.tan\",\"math.tanh\",\n\n    \"os.clock\",\"os.date\",\"os.difftime\",\"os.execute\",\"os.exit\",\"os.getenv\",\"os.remove\",\"os.rename\",\"os.setlocale\",\n    \"os.time\",\"os.tmpname\",\n\n    \"package.cpath\",\"package.loaded\",\"package.loaders\",\"package.loadlib\",\"package.path\",\"package.preload\",\n    \"package.seeall\",\n\n    \"string.byte\",\"string.char\",\"string.dump\",\"string.find\",\"string.format\",\"string.gmatch\",\"string.gsub\",\n    \"string.len\",\"string.lower\",\"string.match\",\"string.rep\",\"string.reverse\",\"string.sub\",\"string.upper\",\n\n    \"table.concat\",\"table.insert\",\"table.maxn\",\"table.remove\",\"table.sort\"\n  ]);\n  var keywords = wordRE([\"and\",\"break\",\"elseif\",\"false\",\"nil\",\"not\",\"or\",\"return\",\n                         \"true\",\"function\", \"end\", \"if\", \"then\", \"else\", \"do\",\n                         \"while\", \"repeat\", \"until\", \"for\", \"in\", \"local\" ]);\n\n  var indentTokens = wordRE([\"function\", \"if\",\"repeat\",\"do\", \"\\\\(\", \"{\"]);\n  var dedentTokens = wordRE([\"end\", \"until\", \"\\\\)\", \"}\"]);\n  var dedentPartial = prefixRE([\"end\", \"until\", \"\\\\)\", \"}\", \"else\", \"elseif\"]);\n\n  function readBracket(stream) {\n    var level = 0;\n    while (stream.eat(\"=\")) ++level;\n    stream.eat(\"[\");\n    return level;\n  }\n\n  function normal(stream, state) {\n    var ch = stream.next();\n    if (ch == \"-\" && stream.eat(\"-\")) {\n      if (stream.eat(\"[\") && stream.eat(\"[\"))\n        return (state.cur = bracketed(readBracket(stream), \"comment\"))(stream, state);\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    if (ch == \"\\\"\" || ch == \"'\")\n      return (state.cur = string(ch))(stream, state);\n    if (ch == \"[\" && /[\\[=]/.test(stream.peek()))\n      return (state.cur = bracketed(readBracket(stream), \"string\"))(stream, state);\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return \"number\";\n    }\n    if (/[\\w_]/.test(ch)) {\n      stream.eatWhile(/[\\w\\\\\\-_.]/);\n      return \"variable\";\n    }\n    return null;\n  }\n\n  function bracketed(level, style) {\n    return function(stream, state) {\n      var curlev = null, ch;\n      while ((ch = stream.next()) != null) {\n        if (curlev == null) {if (ch == \"]\") curlev = 0;}\n        else if (ch == \"=\") ++curlev;\n        else if (ch == \"]\" && curlev == level) { state.cur = normal; break; }\n        else curlev = null;\n      }\n      return style;\n    };\n  }\n\n  function string(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.cur = normal;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(basecol) {\n      return {basecol: basecol || 0, indentDepth: 0, cur: normal};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.cur(stream, state);\n      var word = stream.current();\n      if (style == \"variable\") {\n        if (keywords.test(word)) style = \"keyword\";\n        else if (builtins.test(word)) style = \"builtin\";\n        else if (specials.test(word)) style = \"variable-2\";\n      }\n      if ((style != \"comment\") && (style != \"string\")){\n        if (indentTokens.test(word)) ++state.indentDepth;\n        else if (dedentTokens.test(word)) --state.indentDepth;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var closing = dedentPartial.test(textAfter);\n      return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0));\n    },\n\n    lineComment: \"--\",\n    blockCommentStart: \"--[[\",\n    blockCommentEnd: \"]]\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-lua\", \"lua\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/markdown/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Markdown mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/continuelist.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"markdown.js\"></script>\n<style type=\"text/css\">\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default .cm-trailing-space-a:before,\n      .cm-s-default .cm-trailing-space-b:before {position: absolute; content: \"\\00B7\"; color: #777;}\n      .cm-s-default .cm-trailing-space-new-line:before {position: absolute; content: \"\\21B5\"; color: #777;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Markdown</a>\n  </ul>\n</div>\n\n<article>\n<h2>Markdown mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nMarkdown: Basics\n================\n\n&lt;ul id=\"ProjectSubmenu\"&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/\" title=\"Markdown Project Page\"&gt;Main&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a class=\"selected\" title=\"Markdown Basics\"&gt;Basics&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/syntax\" title=\"Markdown Syntax Documentation\"&gt;Syntax&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/license\" title=\"Pricing and License Information\"&gt;License&lt;/a&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;a href=\"/projects/markdown/dingus\" title=\"Online Markdown Web Form\"&gt;Dingus&lt;/a&gt;&lt;/li&gt;\n&lt;/ul&gt;\n\n\nGetting the Gist of Markdown's Formatting Syntax\n------------------------------------------------\n\nThis page offers a brief overview of what it's like to use Markdown.\nThe [syntax page] [s] provides complete, detailed documentation for\nevery feature, but Markdown should be very easy to pick up simply by\nlooking at a few examples of it in action. The examples on this page\nare written in a before/after style, showing example syntax and the\nHTML output produced by Markdown.\n\nIt's also helpful to simply try Markdown out; the [Dingus] [d] is a\nweb application that allows you type your own Markdown-formatted text\nand translate it to XHTML.\n\n**Note:** This document is itself written using Markdown; you\ncan [see the source for it by adding '.text' to the URL] [src].\n\n  [s]: /projects/markdown/syntax  \"Markdown Syntax\"\n  [d]: /projects/markdown/dingus  \"Markdown Dingus\"\n  [src]: /projects/markdown/basics.text\n\n\n## Paragraphs, Headers, Blockquotes ##\n\nA paragraph is simply one or more consecutive lines of text, separated\nby one or more blank lines. (A blank line is any line that looks like\na blank line -- a line containing nothing but spaces or tabs is\nconsidered blank.) Normal paragraphs should not be indented with\nspaces or tabs.\n\nMarkdown offers two styles of headers: *Setext* and *atx*.\nSetext-style headers for `&lt;h1&gt;` and `&lt;h2&gt;` are created by\n\"underlining\" with equal signs (`=`) and hyphens (`-`), respectively.\nTo create an atx-style header, you put 1-6 hash marks (`#`) at the\nbeginning of the line -- the number of hashes equals the resulting\nHTML header level.\n\nBlockquotes are indicated using email-style '`&gt;`' angle brackets.\n\nMarkdown:\n\n    A First Level Header\n    ====================\n    \n    A Second Level Header\n    ---------------------\n\n    Now is the time for all good men to come to\n    the aid of their country. This is just a\n    regular paragraph.\n\n    The quick brown fox jumped over the lazy\n    dog's back.\n    \n    ### Header 3\n\n    &gt; This is a blockquote.\n    &gt; \n    &gt; This is the second paragraph in the blockquote.\n    &gt;\n    &gt; ## This is an H2 in a blockquote\n\n\nOutput:\n\n    &lt;h1&gt;A First Level Header&lt;/h1&gt;\n    \n    &lt;h2&gt;A Second Level Header&lt;/h2&gt;\n    \n    &lt;p&gt;Now is the time for all good men to come to\n    the aid of their country. This is just a\n    regular paragraph.&lt;/p&gt;\n    \n    &lt;p&gt;The quick brown fox jumped over the lazy\n    dog's back.&lt;/p&gt;\n    \n    &lt;h3&gt;Header 3&lt;/h3&gt;\n    \n    &lt;blockquote&gt;\n        &lt;p&gt;This is a blockquote.&lt;/p&gt;\n        \n        &lt;p&gt;This is the second paragraph in the blockquote.&lt;/p&gt;\n        \n        &lt;h2&gt;This is an H2 in a blockquote&lt;/h2&gt;\n    &lt;/blockquote&gt;\n\n\n\n### Phrase Emphasis ###\n\nMarkdown uses asterisks and underscores to indicate spans of emphasis.\n\nMarkdown:\n\n    Some of these words *are emphasized*.\n    Some of these words _are emphasized also_.\n    \n    Use two asterisks for **strong emphasis**.\n    Or, if you prefer, __use two underscores instead__.\n\nOutput:\n\n    &lt;p&gt;Some of these words &lt;em&gt;are emphasized&lt;/em&gt;.\n    Some of these words &lt;em&gt;are emphasized also&lt;/em&gt;.&lt;/p&gt;\n    \n    &lt;p&gt;Use two asterisks for &lt;strong&gt;strong emphasis&lt;/strong&gt;.\n    Or, if you prefer, &lt;strong&gt;use two underscores instead&lt;/strong&gt;.&lt;/p&gt;\n   \n\n\n## Lists ##\n\nUnordered (bulleted) lists use asterisks, pluses, and hyphens (`*`,\n`+`, and `-`) as list markers. These three markers are\ninterchangable; this:\n\n    *   Candy.\n    *   Gum.\n    *   Booze.\n\nthis:\n\n    +   Candy.\n    +   Gum.\n    +   Booze.\n\nand this:\n\n    -   Candy.\n    -   Gum.\n    -   Booze.\n\nall produce the same output:\n\n    &lt;ul&gt;\n    &lt;li&gt;Candy.&lt;/li&gt;\n    &lt;li&gt;Gum.&lt;/li&gt;\n    &lt;li&gt;Booze.&lt;/li&gt;\n    &lt;/ul&gt;\n\nOrdered (numbered) lists use regular numbers, followed by periods, as\nlist markers:\n\n    1.  Red\n    2.  Green\n    3.  Blue\n\nOutput:\n\n    &lt;ol&gt;\n    &lt;li&gt;Red&lt;/li&gt;\n    &lt;li&gt;Green&lt;/li&gt;\n    &lt;li&gt;Blue&lt;/li&gt;\n    &lt;/ol&gt;\n\nIf you put blank lines between items, you'll get `&lt;p&gt;` tags for the\nlist item text. You can create multi-paragraph list items by indenting\nthe paragraphs by 4 spaces or 1 tab:\n\n    *   A list item.\n    \n        With multiple paragraphs.\n\n    *   Another item in the list.\n\nOutput:\n\n    &lt;ul&gt;\n    &lt;li&gt;&lt;p&gt;A list item.&lt;/p&gt;\n    &lt;p&gt;With multiple paragraphs.&lt;/p&gt;&lt;/li&gt;\n    &lt;li&gt;&lt;p&gt;Another item in the list.&lt;/p&gt;&lt;/li&gt;\n    &lt;/ul&gt;\n    \n\n\n### Links ###\n\nMarkdown supports two styles for creating links: *inline* and\n*reference*. With both styles, you use square brackets to delimit the\ntext you want to turn into a link.\n\nInline-style links use parentheses immediately after the link text.\nFor example:\n\n    This is an [example link](http://example.com/).\n\nOutput:\n\n    &lt;p&gt;This is an &lt;a href=\"http://example.com/\"&gt;\n    example link&lt;/a&gt;.&lt;/p&gt;\n\nOptionally, you may include a title attribute in the parentheses:\n\n    This is an [example link](http://example.com/ \"With a Title\").\n\nOutput:\n\n    &lt;p&gt;This is an &lt;a href=\"http://example.com/\" title=\"With a Title\"&gt;\n    example link&lt;/a&gt;.&lt;/p&gt;\n\nReference-style links allow you to refer to your links by names, which\nyou define elsewhere in your document:\n\n    I get 10 times more traffic from [Google][1] than from\n    [Yahoo][2] or [MSN][3].\n\n    [1]: http://google.com/        \"Google\"\n    [2]: http://search.yahoo.com/  \"Yahoo Search\"\n    [3]: http://search.msn.com/    \"MSN Search\"\n\nOutput:\n\n    &lt;p&gt;I get 10 times more traffic from &lt;a href=\"http://google.com/\"\n    title=\"Google\"&gt;Google&lt;/a&gt; than from &lt;a href=\"http://search.yahoo.com/\"\n    title=\"Yahoo Search\"&gt;Yahoo&lt;/a&gt; or &lt;a href=\"http://search.msn.com/\"\n    title=\"MSN Search\"&gt;MSN&lt;/a&gt;.&lt;/p&gt;\n\nThe title attribute is optional. Link names may contain letters,\nnumbers and spaces, but are *not* case sensitive:\n\n    I start my morning with a cup of coffee and\n    [The New York Times][NY Times].\n\n    [ny times]: http://www.nytimes.com/\n\nOutput:\n\n    &lt;p&gt;I start my morning with a cup of coffee and\n    &lt;a href=\"http://www.nytimes.com/\"&gt;The New York Times&lt;/a&gt;.&lt;/p&gt;\n\n\n### Images ###\n\nImage syntax is very much like link syntax.\n\nInline (titles are optional):\n\n    ![alt text](/path/to/img.jpg \"Title\")\n\nReference-style:\n\n    ![alt text][id]\n\n    [id]: /path/to/img.jpg \"Title\"\n\nBoth of the above examples produce the same output:\n\n    &lt;img src=\"/path/to/img.jpg\" alt=\"alt text\" title=\"Title\" /&gt;\n\n\n\n### Code ###\n\nIn a regular paragraph, you can create code span by wrapping text in\nbacktick quotes. Any ampersands (`&amp;`) and angle brackets (`&lt;` or\n`&gt;`) will automatically be translated into HTML entities. This makes\nit easy to use Markdown to write about HTML example code:\n\n    I strongly recommend against using any `&lt;blink&gt;` tags.\n\n    I wish SmartyPants used named entities like `&amp;mdash;`\n    instead of decimal-encoded entites like `&amp;#8212;`.\n\nOutput:\n\n    &lt;p&gt;I strongly recommend against using any\n    &lt;code&gt;&amp;lt;blink&amp;gt;&lt;/code&gt; tags.&lt;/p&gt;\n    \n    &lt;p&gt;I wish SmartyPants used named entities like\n    &lt;code&gt;&amp;amp;mdash;&lt;/code&gt; instead of decimal-encoded\n    entites like &lt;code&gt;&amp;amp;#8212;&lt;/code&gt;.&lt;/p&gt;\n\n\nTo specify an entire block of pre-formatted code, indent every line of\nthe block by 4 spaces or 1 tab. Just like with code spans, `&amp;`, `&lt;`,\nand `&gt;` characters will be escaped automatically.\n\nMarkdown:\n\n    If you want your page to validate under XHTML 1.0 Strict,\n    you've got to put paragraph tags in your blockquotes:\n\n        &lt;blockquote&gt;\n            &lt;p&gt;For example.&lt;/p&gt;\n        &lt;/blockquote&gt;\n\nOutput:\n\n    &lt;p&gt;If you want your page to validate under XHTML 1.0 Strict,\n    you've got to put paragraph tags in your blockquotes:&lt;/p&gt;\n    \n    &lt;pre&gt;&lt;code&gt;&amp;lt;blockquote&amp;gt;\n        &amp;lt;p&amp;gt;For example.&amp;lt;/p&amp;gt;\n    &amp;lt;/blockquote&amp;gt;\n    &lt;/code&gt;&lt;/pre&gt;\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'markdown',\n        lineNumbers: true,\n        theme: \"default\",\n        extraKeys: {\"Enter\": \"newlineAndIndentContinueMarkdownList\"}\n      });\n    </script>\n\n    <p>Optionally depends on the XML mode for properly highlighted inline XML blocks.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-markdown</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#markdown_*\">normal</a>,  <a href=\"../../test/index.html#verbose,markdown_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/markdown/markdown.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n  var htmlFound = CodeMirror.modes.hasOwnProperty(\"xml\");\n  var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? {name: \"xml\", htmlMode: true} : \"text/plain\");\n\n  function getMode(name) {\n    if (CodeMirror.findModeByName) {\n      var found = CodeMirror.findModeByName(name);\n      if (found) name = found.mime || found.mimes[0];\n    }\n    var mode = CodeMirror.getMode(cmCfg, name);\n    return mode.name == \"null\" ? null : mode;\n  }\n\n  // Should characters that affect highlighting be highlighted separate?\n  // Does not include characters that will be output (such as `1.` and `-` for lists)\n  if (modeCfg.highlightFormatting === undefined)\n    modeCfg.highlightFormatting = false;\n\n  // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n  // Excess `>` will emit `error` token.\n  if (modeCfg.maxBlockquoteDepth === undefined)\n    modeCfg.maxBlockquoteDepth = 0;\n\n  // Should underscores in words open/close em/strong?\n  if (modeCfg.underscoresBreakWords === undefined)\n    modeCfg.underscoresBreakWords = true;\n\n  // Turn on fenced code blocks? (\"```\" to start/end)\n  if (modeCfg.fencedCodeBlocks === undefined) modeCfg.fencedCodeBlocks = false;\n\n  // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n  if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n  // Turn on strikethrough syntax\n  if (modeCfg.strikethrough === undefined)\n    modeCfg.strikethrough = false;\n\n  var codeDepth = 0;\n\n  var header   = 'header'\n  ,   code     = 'comment'\n  ,   quote    = 'quote'\n  ,   list1    = 'variable-2'\n  ,   list2    = 'variable-3'\n  ,   list3    = 'keyword'\n  ,   hr       = 'hr'\n  ,   image    = 'tag'\n  ,   formatting = 'formatting'\n  ,   linkinline = 'link'\n  ,   linkemail = 'link'\n  ,   linktext = 'link'\n  ,   linkhref = 'string'\n  ,   em       = 'em'\n  ,   strong   = 'strong'\n  ,   strikethrough = 'strikethrough';\n\n  var hrRE = /^([*\\-=_])(?:\\s*\\1){2,}\\s*$/\n  ,   ulRE = /^[*\\-+]\\s+/\n  ,   olRE = /^[0-9]+\\.\\s+/\n  ,   taskListRE = /^\\[(x| )\\](?=\\s)/ // Must follow ulRE or olRE\n  ,   atxHeaderRE = /^#+/\n  ,   setextHeaderRE = /^(?:\\={1,}|-{1,})$/\n  ,   textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~]+/;\n\n  function switchInline(stream, state, f) {\n    state.f = state.inline = f;\n    return f(stream, state);\n  }\n\n  function switchBlock(stream, state, f) {\n    state.f = state.block = f;\n    return f(stream, state);\n  }\n\n\n  // Blocks\n\n  function blankLine(state) {\n    // Reset linkTitle state\n    state.linkTitle = false;\n    // Reset EM state\n    state.em = false;\n    // Reset STRONG state\n    state.strong = false;\n    // Reset strikethrough state\n    state.strikethrough = false;\n    // Reset state.quote\n    state.quote = 0;\n    if (!htmlFound && state.f == htmlBlock) {\n      state.f = inlineNormal;\n      state.block = blockNormal;\n    }\n    // Reset state.trailingSpace\n    state.trailingSpace = 0;\n    state.trailingSpaceNewLine = false;\n    // Mark this line as blank\n    state.thisLineHasContent = false;\n    return null;\n  }\n\n  function blockNormal(stream, state) {\n\n    var sol = stream.sol();\n\n    var prevLineIsList = (state.list !== false);\n    if (state.list !== false && state.indentationDiff >= 0) { // Continued list\n      if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block\n        state.indentation -= state.indentationDiff;\n      }\n      state.list = null;\n    } else if (state.list !== false && state.indentation > 0) {\n      state.list = null;\n      state.listDepth = Math.floor(state.indentation / 4);\n    } else if (state.list !== false) { // No longer a list\n      state.list = false;\n      state.listDepth = 0;\n    }\n\n    var match = null;\n    if (state.indentationDiff >= 4) {\n      state.indentation -= 4;\n      stream.skipToEnd();\n      return code;\n    } else if (stream.eatSpace()) {\n      return null;\n    } else if (match = stream.match(atxHeaderRE)) {\n      state.header = match[0].length <= 6 ? match[0].length : 6;\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      state.f = state.inline;\n      return getType(state);\n    } else if (state.prevLineHasContent && (match = stream.match(setextHeaderRE))) {\n      state.header = match[0].charAt(0) == '=' ? 1 : 2;\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      state.f = state.inline;\n      return getType(state);\n    } else if (stream.eat('>')) {\n      state.indentation++;\n      state.quote = sol ? 1 : state.quote + 1;\n      if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n      stream.eatSpace();\n      return getType(state);\n    } else if (stream.peek() === '[') {\n      return switchInline(stream, state, footnoteLink);\n    } else if (stream.match(hrRE, true)) {\n      return hr;\n    } else if ((!state.prevLineHasContent || prevLineIsList) && (stream.match(ulRE, false) || stream.match(olRE, false))) {\n      var listType = null;\n      if (stream.match(ulRE, true)) {\n        listType = 'ul';\n      } else {\n        stream.match(olRE, true);\n        listType = 'ol';\n      }\n      state.indentation += 4;\n      state.list = true;\n      state.listDepth++;\n      if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n        state.taskList = true;\n      }\n      state.f = state.inline;\n      if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n      return getType(state);\n    } else if (modeCfg.fencedCodeBlocks && stream.match(/^```[ \\t]*([\\w+#]*)/, true)) {\n      // try switching mode\n      state.localMode = getMode(RegExp.$1);\n      if (state.localMode) state.localState = state.localMode.startState();\n      state.f = state.block = local;\n      if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n      state.code = true;\n      return getType(state);\n    }\n\n    return switchInline(stream, state, state.inline);\n  }\n\n  function htmlBlock(stream, state) {\n    var style = htmlMode.token(stream, state.htmlState);\n    if ((htmlFound && state.htmlState.tagStart === null && !state.htmlState.context) ||\n        (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n      state.f = inlineNormal;\n      state.block = blockNormal;\n      state.htmlState = null;\n    }\n    return style;\n  }\n\n  function local(stream, state) {\n    if (stream.sol() && stream.match(\"```\", false)) {\n      state.localMode = state.localState = null;\n      state.f = state.block = leavingLocal;\n      return null;\n    } else if (state.localMode) {\n      return state.localMode.token(stream, state.localState);\n    } else {\n      stream.skipToEnd();\n      return code;\n    }\n  }\n\n  function leavingLocal(stream, state) {\n    stream.match(\"```\");\n    state.block = blockNormal;\n    state.f = inlineNormal;\n    if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n    state.code = true;\n    var returnType = getType(state);\n    state.code = false;\n    return returnType;\n  }\n\n  // Inline\n  function getType(state) {\n    var styles = [];\n\n    if (state.formatting) {\n      styles.push(formatting);\n\n      if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n      for (var i = 0; i < state.formatting.length; i++) {\n        styles.push(formatting + \"-\" + state.formatting[i]);\n\n        if (state.formatting[i] === \"header\") {\n          styles.push(formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n        }\n\n        // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n        // Add `error` instead if the maximum blockquote nesting depth is passed\n        if (state.formatting[i] === \"quote\") {\n          if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n            styles.push(formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n          } else {\n            styles.push(\"error\");\n          }\n        }\n      }\n    }\n\n    if (state.taskOpen) {\n      styles.push(\"meta\");\n      return styles.length ? styles.join(' ') : null;\n    }\n    if (state.taskClosed) {\n      styles.push(\"property\");\n      return styles.length ? styles.join(' ') : null;\n    }\n\n    if (state.linkHref) {\n      styles.push(linkhref);\n      return styles.length ? styles.join(' ') : null;\n    }\n\n    if (state.strong) { styles.push(strong); }\n    if (state.em) { styles.push(em); }\n    if (state.strikethrough) { styles.push(strikethrough); }\n\n    if (state.linkText) { styles.push(linktext); }\n\n    if (state.code) { styles.push(code); }\n\n    if (state.header) { styles.push(header); styles.push(header + \"-\" + state.header); }\n\n    if (state.quote) {\n      styles.push(quote);\n\n      // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n      if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n        styles.push(quote + \"-\" + state.quote);\n      } else {\n        styles.push(quote + \"-\" + modeCfg.maxBlockquoteDepth);\n      }\n    }\n\n    if (state.list !== false) {\n      var listMod = (state.listDepth - 1) % 3;\n      if (!listMod) {\n        styles.push(list1);\n      } else if (listMod === 1) {\n        styles.push(list2);\n      } else {\n        styles.push(list3);\n      }\n    }\n\n    if (state.trailingSpaceNewLine) {\n      styles.push(\"trailing-space-new-line\");\n    } else if (state.trailingSpace) {\n      styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n    }\n\n    return styles.length ? styles.join(' ') : null;\n  }\n\n  function handleText(stream, state) {\n    if (stream.match(textRE, true)) {\n      return getType(state);\n    }\n    return undefined;\n  }\n\n  function inlineNormal(stream, state) {\n    var style = state.text(stream, state);\n    if (typeof style !== 'undefined')\n      return style;\n\n    if (state.list) { // List marker (*, +, -, 1., etc)\n      state.list = null;\n      return getType(state);\n    }\n\n    if (state.taskList) {\n      var taskOpen = stream.match(taskListRE, true)[1] !== \"x\";\n      if (taskOpen) state.taskOpen = true;\n      else state.taskClosed = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"task\";\n      state.taskList = false;\n      return getType(state);\n    }\n\n    state.taskOpen = false;\n    state.taskClosed = false;\n\n    if (state.header && stream.match(/^#+$/, true)) {\n      if (modeCfg.highlightFormatting) state.formatting = \"header\";\n      return getType(state);\n    }\n\n    // Get sol() value now, before character is consumed\n    var sol = stream.sol();\n\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      stream.next();\n      if (modeCfg.highlightFormatting) {\n        var type = getType(state);\n        return type ? type + \" formatting-escape\" : \"formatting-escape\";\n      }\n    }\n\n    // Matches link titles present on next line\n    if (state.linkTitle) {\n      state.linkTitle = false;\n      var matchCh = ch;\n      if (ch === '(') {\n        matchCh = ')';\n      }\n      matchCh = (matchCh+'').replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n      var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n      if (stream.match(new RegExp(regex), true)) {\n        return linkhref;\n      }\n    }\n\n    // If this block is changed, it may need to be updated in GFM mode\n    if (ch === '`') {\n      var previousFormatting = state.formatting;\n      if (modeCfg.highlightFormatting) state.formatting = \"code\";\n      var t = getType(state);\n      var before = stream.pos;\n      stream.eatWhile('`');\n      var difference = 1 + stream.pos - before;\n      if (!state.code) {\n        codeDepth = difference;\n        state.code = true;\n        return getType(state);\n      } else {\n        if (difference === codeDepth) { // Must be exact\n          state.code = false;\n          return t;\n        }\n        state.formatting = previousFormatting;\n        return getType(state);\n      }\n    } else if (state.code) {\n      return getType(state);\n    }\n\n    if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n      stream.match(/\\[[^\\]]*\\]/);\n      state.inline = state.f = linkHref;\n      return image;\n    }\n\n    if (ch === '[' && stream.match(/.*\\](\\(.*\\)| ?\\[.*\\])/, false)) {\n      state.linkText = true;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      return getType(state);\n    }\n\n    if (ch === ']' && state.linkText && stream.match(/\\(.*\\)| ?\\[.*\\]/, false)) {\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      state.linkText = false;\n      state.inline = state.f = linkHref;\n      return type;\n    }\n\n    if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkinline;\n    }\n\n    if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n      state.f = state.inline = linkInline;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkemail;\n    }\n\n    if (ch === '<' && stream.match(/^\\w/, false)) {\n      if (stream.string.indexOf(\">\") != -1) {\n        var atts = stream.string.substring(1,stream.string.indexOf(\">\"));\n        if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) {\n          state.md_inside = true;\n        }\n      }\n      stream.backUp(1);\n      state.htmlState = CodeMirror.startState(htmlMode);\n      return switchBlock(stream, state, htmlBlock);\n    }\n\n    if (ch === '<' && stream.match(/^\\/\\w*?>/)) {\n      state.md_inside = false;\n      return \"tag\";\n    }\n\n    var ignoreUnderscore = false;\n    if (!modeCfg.underscoresBreakWords) {\n      if (ch === '_' && stream.peek() !== '_' && stream.match(/(\\w)/, false)) {\n        var prevPos = stream.pos - 2;\n        if (prevPos >= 0) {\n          var prevCh = stream.string.charAt(prevPos);\n          if (prevCh !== '_' && prevCh.match(/(\\w)/, false)) {\n            ignoreUnderscore = true;\n          }\n        }\n      }\n    }\n    if (ch === '*' || (ch === '_' && !ignoreUnderscore)) {\n      if (sol && stream.peek() === ' ') {\n        // Do nothing, surrounded by newline and space\n      } else if (state.strong === ch && stream.eat(ch)) { // Remove STRONG\n        if (modeCfg.highlightFormatting) state.formatting = \"strong\";\n        var t = getType(state);\n        state.strong = false;\n        return t;\n      } else if (!state.strong && stream.eat(ch)) { // Add STRONG\n        state.strong = ch;\n        if (modeCfg.highlightFormatting) state.formatting = \"strong\";\n        return getType(state);\n      } else if (state.em === ch) { // Remove EM\n        if (modeCfg.highlightFormatting) state.formatting = \"em\";\n        var t = getType(state);\n        state.em = false;\n        return t;\n      } else if (!state.em) { // Add EM\n        state.em = ch;\n        if (modeCfg.highlightFormatting) state.formatting = \"em\";\n        return getType(state);\n      }\n    } else if (ch === ' ') {\n      if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n        if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n          return getType(state);\n        } else { // Not surrounded by spaces, back up pointer\n          stream.backUp(1);\n        }\n      }\n    }\n\n    if (modeCfg.strikethrough) {\n      if (ch === '~' && stream.eatWhile(ch)) {\n        if (state.strikethrough) {// Remove strikethrough\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          var t = getType(state);\n          state.strikethrough = false;\n          return t;\n        } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n          state.strikethrough = true;\n          if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n          return getType(state);\n        }\n      } else if (ch === ' ') {\n        if (stream.match(/^~~/, true)) { // Probably surrounded by space\n          if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n            return getType(state);\n          } else { // Not surrounded by spaces, back up pointer\n            stream.backUp(2);\n          }\n        }\n      }\n    }\n\n    if (ch === ' ') {\n      if (stream.match(/ +$/, false)) {\n        state.trailingSpace++;\n      } else if (state.trailingSpace) {\n        state.trailingSpaceNewLine = true;\n      }\n    }\n\n    return getType(state);\n  }\n\n  function linkInline(stream, state) {\n    var ch = stream.next();\n\n    if (ch === \">\") {\n      state.f = state.inline = inlineNormal;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var type = getType(state);\n      if (type){\n        type += \" \";\n      } else {\n        type = \"\";\n      }\n      return type + linkinline;\n    }\n\n    stream.match(/^[^>]+/, true);\n\n    return linkinline;\n  }\n\n  function linkHref(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    var ch = stream.next();\n    if (ch === '(' || ch === '[') {\n      state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n      if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n      state.linkHref = true;\n      return getType(state);\n    }\n    return 'error';\n  }\n\n  function getLinkHrefInside(endChar) {\n    return function(stream, state) {\n      var ch = stream.next();\n\n      if (ch === endChar) {\n        state.f = state.inline = inlineNormal;\n        if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n        var returnState = getType(state);\n        state.linkHref = false;\n        return returnState;\n      }\n\n      if (stream.match(inlineRE(endChar), true)) {\n        stream.backUp(1);\n      }\n\n      state.linkHref = true;\n      return getType(state);\n    };\n  }\n\n  function footnoteLink(stream, state) {\n    if (stream.match(/^[^\\]]*\\]:/, false)) {\n      state.f = footnoteLinkInside;\n      stream.next(); // Consume [\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      state.linkText = true;\n      return getType(state);\n    }\n    return switchInline(stream, state, inlineNormal);\n  }\n\n  function footnoteLinkInside(stream, state) {\n    if (stream.match(/^\\]:/, true)) {\n      state.f = state.inline = footnoteUrl;\n      if (modeCfg.highlightFormatting) state.formatting = \"link\";\n      var returnType = getType(state);\n      state.linkText = false;\n      return returnType;\n    }\n\n    stream.match(/^[^\\]]+/, true);\n\n    return linktext;\n  }\n\n  function footnoteUrl(stream, state) {\n    // Check if space, and return NULL if so (to avoid marking the space)\n    if(stream.eatSpace()){\n      return null;\n    }\n    // Match URL\n    stream.match(/^[^\\s]+/, true);\n    // Check for link title\n    if (stream.peek() === undefined) { // End of line, set flag to check next line\n      state.linkTitle = true;\n    } else { // More content on line, check if link title\n      stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\\\\\|\\\\.)+\"|'(?:[^'\\\\]|\\\\\\\\|\\\\.)+'|\\((?:[^)\\\\]|\\\\\\\\|\\\\.)+\\)))?/, true);\n    }\n    state.f = state.inline = inlineNormal;\n    return linkhref;\n  }\n\n  var savedInlineRE = [];\n  function inlineRE(endChar) {\n    if (!savedInlineRE[endChar]) {\n      // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741)\n      endChar = (endChar+'').replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n      // Match any non-endChar, escaped character, as well as the closing\n      // endChar.\n      savedInlineRE[endChar] = new RegExp('^(?:[^\\\\\\\\]|\\\\\\\\.)*?(' + endChar + ')');\n    }\n    return savedInlineRE[endChar];\n  }\n\n  var mode = {\n    startState: function() {\n      return {\n        f: blockNormal,\n\n        prevLineHasContent: false,\n        thisLineHasContent: false,\n\n        block: blockNormal,\n        htmlState: null,\n        indentation: 0,\n\n        inline: inlineNormal,\n        text: handleText,\n\n        formatting: false,\n        linkText: false,\n        linkHref: false,\n        linkTitle: false,\n        em: false,\n        strong: false,\n        header: 0,\n        taskList: false,\n        list: false,\n        listDepth: 0,\n        quote: 0,\n        trailingSpace: 0,\n        trailingSpaceNewLine: false,\n        strikethrough: false\n      };\n    },\n\n    copyState: function(s) {\n      return {\n        f: s.f,\n\n        prevLineHasContent: s.prevLineHasContent,\n        thisLineHasContent: s.thisLineHasContent,\n\n        block: s.block,\n        htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n        indentation: s.indentation,\n\n        localMode: s.localMode,\n        localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n        inline: s.inline,\n        text: s.text,\n        formatting: false,\n        linkTitle: s.linkTitle,\n        em: s.em,\n        strong: s.strong,\n        strikethrough: s.strikethrough,\n        header: s.header,\n        taskList: s.taskList,\n        list: s.list,\n        listDepth: s.listDepth,\n        quote: s.quote,\n        trailingSpace: s.trailingSpace,\n        trailingSpaceNewLine: s.trailingSpaceNewLine,\n        md_inside: s.md_inside\n      };\n    },\n\n    token: function(stream, state) {\n\n      // Reset state.formatting\n      state.formatting = false;\n\n      if (stream.sol()) {\n        var forceBlankLine = !!state.header;\n\n        // Reset state.header\n        state.header = 0;\n\n        if (stream.match(/^\\s*$/, true) || forceBlankLine) {\n          state.prevLineHasContent = false;\n          blankLine(state);\n          return forceBlankLine ? this.token(stream, state) : null;\n        } else {\n          state.prevLineHasContent = state.thisLineHasContent;\n          state.thisLineHasContent = true;\n        }\n\n        // Reset state.taskList\n        state.taskList = false;\n\n        // Reset state.code\n        state.code = false;\n\n        // Reset state.trailingSpace\n        state.trailingSpace = 0;\n        state.trailingSpaceNewLine = false;\n\n        state.f = state.block;\n        var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, '    ').length;\n        var difference = Math.floor((indentation - state.indentation) / 4) * 4;\n        if (difference > 4) difference = 4;\n        var adjustedIndentation = state.indentation + difference;\n        state.indentationDiff = adjustedIndentation - state.indentation;\n        state.indentation = adjustedIndentation;\n        if (indentation > 0) return null;\n      }\n      return state.f(stream, state);\n    },\n\n    innerMode: function(state) {\n      if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n      if (state.localState) return {state: state.localState, mode: state.localMode};\n      return {state: state, mode: mode};\n    },\n\n    blankLine: blankLine,\n\n    getType: getType,\n\n    fold: \"markdown\"\n  };\n  return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/markdown/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"markdown\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n  var modeHighlightFormatting = CodeMirror.getMode({tabSize: 4}, {name: \"markdown\", highlightFormatting: true});\n  function FT(name) { test.mode(name, modeHighlightFormatting, Array.prototype.slice.call(arguments, 1)); }\n\n  FT(\"formatting_emAsterisk\",\n     \"[em&formatting&formatting-em *][em foo][em&formatting&formatting-em *]\");\n\n  FT(\"formatting_emUnderscore\",\n     \"[em&formatting&formatting-em _][em foo][em&formatting&formatting-em _]\");\n\n  FT(\"formatting_strongAsterisk\",\n     \"[strong&formatting&formatting-strong **][strong foo][strong&formatting&formatting-strong **]\");\n\n  FT(\"formatting_strongUnderscore\",\n     \"[strong&formatting&formatting-strong __][strong foo][strong&formatting&formatting-strong __]\");\n\n  FT(\"formatting_codeBackticks\",\n     \"[comment&formatting&formatting-code `][comment foo][comment&formatting&formatting-code `]\");\n\n  FT(\"formatting_doubleBackticks\",\n     \"[comment&formatting&formatting-code ``][comment foo ` bar][comment&formatting&formatting-code ``]\");\n\n  FT(\"formatting_atxHeader\",\n     \"[header&header-1&formatting&formatting-header&formatting-header-1 #][header&header-1  foo # bar ][header&header-1&formatting&formatting-header&formatting-header-1 #]\");\n\n  FT(\"formatting_setextHeader\",\n     \"foo\",\n     \"[header&header-1&formatting&formatting-header&formatting-header-1 =]\");\n\n  FT(\"formatting_blockquote\",\n     \"[quote&quote-1&formatting&formatting-quote&formatting-quote-1 > ][quote&quote-1 foo]\");\n\n  FT(\"formatting_list\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ul - ][variable-2 foo]\");\n  FT(\"formatting_list\",\n     \"[variable-2&formatting&formatting-list&formatting-list-ol 1. ][variable-2 foo]\");\n\n  FT(\"formatting_link\",\n     \"[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string (][string http://example.com/][string&formatting&formatting-link-string )]\");\n\n  FT(\"formatting_linkReference\",\n     \"[link&formatting&formatting-link [][link foo][link&formatting&formatting-link ]]][string&formatting&formatting-link-string [][string bar][string&formatting&formatting-link-string ]]]\",\n     \"[link&formatting&formatting-link [][link bar][link&formatting&formatting-link ]]:] [string http://example.com/]\");\n\n  FT(\"formatting_linkWeb\",\n     \"[link&formatting&formatting-link <][link http://example.com/][link&formatting&formatting-link >]\");\n\n  FT(\"formatting_linkEmail\",\n     \"[link&formatting&formatting-link <][link user@example.com][link&formatting&formatting-link >]\");\n\n  FT(\"formatting_escape\",\n     \"[formatting-escape \\\\*]\");\n\n  MT(\"plainText\",\n     \"foo\");\n\n  // Don't style single trailing space\n  MT(\"trailingSpace1\",\n     \"foo \");\n\n  // Two or more trailing spaces should be styled with line break character\n  MT(\"trailingSpace2\",\n     \"foo[trailing-space-a  ][trailing-space-new-line  ]\");\n\n  MT(\"trailingSpace3\",\n     \"foo[trailing-space-a  ][trailing-space-b  ][trailing-space-new-line  ]\");\n\n  MT(\"trailingSpace4\",\n     \"foo[trailing-space-a  ][trailing-space-b  ][trailing-space-a  ][trailing-space-new-line  ]\");\n\n  // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value)\n  MT(\"codeBlocksUsing4Spaces\",\n     \"    [comment foo]\");\n\n  // Code blocks using 4 spaces with internal indentation\n  MT(\"codeBlocksUsing4SpacesIndentation\",\n     \"    [comment bar]\",\n     \"        [comment hello]\",\n     \"            [comment world]\",\n     \"    [comment foo]\",\n     \"bar\");\n\n  // Code blocks using 4 spaces with internal indentation\n  MT(\"codeBlocksUsing4SpacesIndentation\",\n     \" foo\",\n     \"    [comment bar]\",\n     \"        [comment hello]\",\n     \"    [comment world]\");\n\n  // Code blocks should end even after extra indented lines\n  MT(\"codeBlocksWithTrailingIndentedLine\",\n     \"    [comment foo]\",\n     \"        [comment bar]\",\n     \"    [comment baz]\",\n     \"    \",\n     \"hello\");\n\n  // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value)\n  MT(\"codeBlocksUsing1Tab\",\n     \"\\t[comment foo]\");\n\n  // Inline code using backticks\n  MT(\"inlineCodeUsingBackticks\",\n     \"foo [comment `bar`]\");\n\n  // Block code using single backtick (shouldn't work)\n  MT(\"blockCodeSingleBacktick\",\n     \"[comment `]\",\n     \"foo\",\n     \"[comment `]\");\n\n  // Unclosed backticks\n  // Instead of simply marking as CODE, it would be nice to have an\n  // incomplete flag for CODE, that is styled slightly different.\n  MT(\"unclosedBackticks\",\n     \"foo [comment `bar]\");\n\n  // Per documentation: \"To include a literal backtick character within a\n  // code span, you can use multiple backticks as the opening and closing\n  // delimiters\"\n  MT(\"doubleBackticks\",\n     \"[comment ``foo ` bar``]\");\n\n  // Tests based on Dingus\n  // http://daringfireball.net/projects/markdown/dingus\n  //\n  // Multiple backticks within an inline code block\n  MT(\"consecutiveBackticks\",\n     \"[comment `foo```bar`]\");\n\n  // Multiple backticks within an inline code block with a second code block\n  MT(\"consecutiveBackticks\",\n     \"[comment `foo```bar`] hello [comment `world`]\");\n\n  // Unclosed with several different groups of backticks\n  MT(\"unclosedBackticks\",\n     \"[comment ``foo ``` bar` hello]\");\n\n  // Closed with several different groups of backticks\n  MT(\"closedBackticks\",\n     \"[comment ``foo ``` bar` hello``] world\");\n\n  // atx headers\n  // http://daringfireball.net/projects/markdown/syntax#header\n\n  MT(\"atxH1\",\n     \"[header&header-1 # foo]\");\n\n  MT(\"atxH2\",\n     \"[header&header-2 ## foo]\");\n\n  MT(\"atxH3\",\n     \"[header&header-3 ### foo]\");\n\n  MT(\"atxH4\",\n     \"[header&header-4 #### foo]\");\n\n  MT(\"atxH5\",\n     \"[header&header-5 ##### foo]\");\n\n  MT(\"atxH6\",\n     \"[header&header-6 ###### foo]\");\n\n  // H6 - 7x '#' should still be H6, per Dingus\n  // http://daringfireball.net/projects/markdown/dingus\n  MT(\"atxH6NotH7\",\n     \"[header&header-6 ####### foo]\");\n\n  // Inline styles should be parsed inside headers\n  MT(\"atxH1inline\",\n     \"[header&header-1 # foo ][header&header-1&em *bar*]\");\n\n  // Setext headers - H1, H2\n  // Per documentation, \"Any number of underlining =’s or -’s will work.\"\n  // http://daringfireball.net/projects/markdown/syntax#header\n  // Ideally, the text would be marked as `header` as well, but this is\n  // not really feasible at the moment. So, instead, we're testing against\n  // what works today, to avoid any regressions.\n  //\n  // Check if single underlining = works\n  MT(\"setextH1\",\n     \"foo\",\n     \"[header&header-1 =]\");\n\n  // Check if 3+ ='s work\n  MT(\"setextH1\",\n     \"foo\",\n     \"[header&header-1 ===]\");\n\n  // Check if single underlining - works\n  MT(\"setextH2\",\n     \"foo\",\n     \"[header&header-2 -]\");\n\n  // Check if 3+ -'s work\n  MT(\"setextH2\",\n     \"foo\",\n     \"[header&header-2 ---]\");\n\n  // Single-line blockquote with trailing space\n  MT(\"blockquoteSpace\",\n     \"[quote&quote-1 > foo]\");\n\n  // Single-line blockquote\n  MT(\"blockquoteNoSpace\",\n     \"[quote&quote-1 >foo]\");\n\n  // No blank line before blockquote\n  MT(\"blockquoteNoBlankLine\",\n     \"foo\",\n     \"[quote&quote-1 > bar]\");\n\n  // Nested blockquote\n  MT(\"blockquoteSpace\",\n     \"[quote&quote-1 > foo]\",\n     \"[quote&quote-1 >][quote&quote-2 > foo]\",\n     \"[quote&quote-1 >][quote&quote-2 >][quote&quote-3 > foo]\");\n\n  // Single-line blockquote followed by normal paragraph\n  MT(\"blockquoteThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"\",\n     \"bar\");\n\n  // Multi-line blockquote (lazy mode)\n  MT(\"multiBlockquoteLazy\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 bar]\");\n\n  // Multi-line blockquote followed by normal paragraph (lazy mode)\n  MT(\"multiBlockquoteLazyThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 bar]\",\n     \"\",\n     \"hello\");\n\n  // Multi-line blockquote (non-lazy mode)\n  MT(\"multiBlockquote\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 >bar]\");\n\n  // Multi-line blockquote followed by normal paragraph (non-lazy mode)\n  MT(\"multiBlockquoteThenParagraph\",\n     \"[quote&quote-1 >foo]\",\n     \"[quote&quote-1 >bar]\",\n     \"\",\n     \"hello\");\n\n  // Check list types\n\n  MT(\"listAsterisk\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 * foo]\",\n     \"[variable-2 * bar]\");\n\n  MT(\"listPlus\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 + foo]\",\n     \"[variable-2 + bar]\");\n\n  MT(\"listDash\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 - foo]\",\n     \"[variable-2 - bar]\");\n\n  MT(\"listNumber\",\n     \"foo\",\n     \"bar\",\n     \"\",\n     \"[variable-2 1. foo]\",\n     \"[variable-2 2. bar]\");\n\n  // Lists require a preceding blank line (per Dingus)\n  MT(\"listBogus\",\n     \"foo\",\n     \"1. bar\",\n     \"2. hello\");\n\n  // List after header\n  MT(\"listAfterHeader\",\n     \"[header&header-1 # foo]\",\n     \"[variable-2 - bar]\");\n\n  // Formatting in lists (*)\n  MT(\"listAsteriskFormatting\",\n     \"[variable-2 * ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 * ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (+)\n  MT(\"listPlusFormatting\",\n     \"[variable-2 + ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 + ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (-)\n  MT(\"listDashFormatting\",\n     \"[variable-2 - ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 - ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Formatting in lists (1.)\n  MT(\"listNumberFormatting\",\n     \"[variable-2 1. ][variable-2&em *foo*][variable-2  bar]\",\n     \"[variable-2 2. ][variable-2&strong **foo**][variable-2  bar]\",\n     \"[variable-2 3. ][variable-2&strong **][variable-2&em&strong *foo**][variable-2&em *][variable-2  bar]\",\n     \"[variable-2 4. ][variable-2&comment `foo`][variable-2  bar]\");\n\n  // Paragraph lists\n  MT(\"listParagraph\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\");\n\n  // Multi-paragraph lists\n  //\n  // 4 spaces\n  MT(\"listMultiParagraph\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"    [variable-2 hello]\");\n\n  // 4 spaces, extra blank lines (should still be list, per Dingus)\n  MT(\"listMultiParagraphExtra\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"\",\n     \"    [variable-2 hello]\");\n\n  // 4 spaces, plus 1 space (should still be list, per Dingus)\n  MT(\"listMultiParagraphExtraSpace\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"     [variable-2 hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // 1 tab\n  MT(\"listTab\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"\\t[variable-2 hello]\");\n\n  // No indent\n  MT(\"listNoIndent\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"hello\");\n\n  // Blockquote\n  MT(\"blockquote\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"    [variable-2&quote&quote-1 > hello]\");\n\n  // Code block\n  MT(\"blockquoteCode\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"[variable-2 * bar]\",\n     \"\",\n     \"        [comment > hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // Code block followed by text\n  MT(\"blockquoteCodeText\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-2 bar]\",\n     \"\",\n     \"        [comment hello]\",\n     \"\",\n     \"    [variable-2 world]\");\n\n  // Nested list\n\n  MT(\"listAsteriskNested\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 * bar]\");\n\n  MT(\"listPlusNested\",\n     \"[variable-2 + foo]\",\n     \"\",\n     \"    [variable-3 + bar]\");\n\n  MT(\"listDashNested\",\n     \"[variable-2 - foo]\",\n     \"\",\n     \"    [variable-3 - bar]\");\n\n  MT(\"listNumberNested\",\n     \"[variable-2 1. foo]\",\n     \"\",\n     \"    [variable-3 2. bar]\");\n\n  MT(\"listMixed\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"        [keyword - hello]\",\n     \"\",\n     \"            [variable-2 1. world]\");\n\n  MT(\"listBlockquote\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"        [quote&quote-1&variable-3 > hello]\");\n\n  MT(\"listCode\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"    [variable-3 + bar]\",\n     \"\",\n     \"            [comment hello]\");\n\n  // Code with internal indentation\n  MT(\"listCodeIndentation\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"        [comment bar]\",\n     \"            [comment hello]\",\n     \"                [comment world]\",\n     \"        [comment foo]\",\n     \"    [variable-2 bar]\");\n\n  // List nesting edge cases\n  MT(\"listNested\",\n    \"[variable-2 * foo]\",\n    \"\",\n    \"    [variable-3 * bar]\",\n    \"\",\n    \"       [variable-2 hello]\"\n  );\n  MT(\"listNested\",\n    \"[variable-2 * foo]\",\n    \"\",\n    \"    [variable-3 * bar]\",\n    \"\",\n    \"      [variable-3 * foo]\"\n  );\n\n  // Code followed by text\n  MT(\"listCodeText\",\n     \"[variable-2 * foo]\",\n     \"\",\n     \"        [comment bar]\",\n     \"\",\n     \"hello\");\n\n  // Following tests directly from official Markdown documentation\n  // http://daringfireball.net/projects/markdown/syntax#hr\n\n  MT(\"hrSpace\",\n     \"[hr * * *]\");\n\n  MT(\"hr\",\n     \"[hr ***]\");\n\n  MT(\"hrLong\",\n     \"[hr *****]\");\n\n  MT(\"hrSpaceDash\",\n     \"[hr - - -]\");\n\n  MT(\"hrDashLong\",\n     \"[hr ---------------------------------------]\");\n\n  // Inline link with title\n  MT(\"linkTitle\",\n     \"[link [[foo]]][string (http://example.com/ \\\"bar\\\")] hello\");\n\n  // Inline link without title\n  MT(\"linkNoTitle\",\n     \"[link [[foo]]][string (http://example.com/)] bar\");\n\n  // Inline link with image\n  MT(\"linkImage\",\n     \"[link [[][tag ![[foo]]][string (http://example.com/)][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with Em\n  MT(\"linkEm\",\n     \"[link [[][link&em *foo*][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with Strong\n  MT(\"linkStrong\",\n     \"[link [[][link&strong **foo**][link ]]][string (http://example.com/)] bar\");\n\n  // Inline link with EmStrong\n  MT(\"linkEmStrong\",\n     \"[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string (http://example.com/)] bar\");\n\n  // Image with title\n  MT(\"imageTitle\",\n     \"[tag ![[foo]]][string (http://example.com/ \\\"bar\\\")] hello\");\n\n  // Image without title\n  MT(\"imageNoTitle\",\n     \"[tag ![[foo]]][string (http://example.com/)] bar\");\n\n  // Image with asterisks\n  MT(\"imageAsterisks\",\n     \"[tag ![[*foo*]]][string (http://example.com/)] bar\");\n\n  // Not a link. Should be normal text due to square brackets being used\n  // regularly in text, especially in quoted material, and no space is allowed\n  // between square brackets and parentheses (per Dingus).\n  MT(\"notALink\",\n     \"[[foo]] (bar)\");\n\n  // Reference-style links\n  MT(\"linkReference\",\n     \"[link [[foo]]][string [[bar]]] hello\");\n\n  // Reference-style links with Em\n  MT(\"linkReferenceEm\",\n     \"[link [[][link&em *foo*][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with Strong\n  MT(\"linkReferenceStrong\",\n     \"[link [[][link&strong **foo**][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with EmStrong\n  MT(\"linkReferenceEmStrong\",\n     \"[link [[][link&strong **][link&em&strong *foo**][link&em *][link ]]][string [[bar]]] hello\");\n\n  // Reference-style links with optional space separator (per docuentation)\n  // \"You can optionally use a space to separate the sets of brackets\"\n  MT(\"linkReferenceSpace\",\n     \"[link [[foo]]] [string [[bar]]] hello\");\n\n  // Should only allow a single space (\"...use *a* space...\")\n  MT(\"linkReferenceDoubleSpace\",\n     \"[[foo]]  [[bar]] hello\");\n\n  // Reference-style links with implicit link name\n  MT(\"linkImplicit\",\n     \"[link [[foo]]][string [[]]] hello\");\n\n  // @todo It would be nice if, at some point, the document was actually\n  // checked to see if the referenced link exists\n\n  // Link label, for reference-style links (taken from documentation)\n\n  MT(\"labelNoTitle\",\n     \"[link [[foo]]:] [string http://example.com/]\");\n\n  MT(\"labelIndented\",\n     \"   [link [[foo]]:] [string http://example.com/]\");\n\n  MT(\"labelSpaceTitle\",\n     \"[link [[foo bar]]:] [string http://example.com/ \\\"hello\\\"]\");\n\n  MT(\"labelDoubleTitle\",\n     \"[link [[foo bar]]:] [string http://example.com/ \\\"hello\\\"] \\\"world\\\"\");\n\n  MT(\"labelTitleDoubleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/  \\\"bar\\\"]\");\n\n  MT(\"labelTitleSingleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/  'bar']\");\n\n  MT(\"labelTitleParenthese\",\n     \"[link [[foo]]:] [string http://example.com/  (bar)]\");\n\n  MT(\"labelTitleInvalid\",\n     \"[link [[foo]]:] [string http://example.com/] bar\");\n\n  MT(\"labelLinkAngleBrackets\",\n     \"[link [[foo]]:] [string <http://example.com/>  \\\"bar\\\"]\");\n\n  MT(\"labelTitleNextDoubleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string \\\"bar\\\"] hello\");\n\n  MT(\"labelTitleNextSingleQuotes\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string 'bar'] hello\");\n\n  MT(\"labelTitleNextParenthese\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"[string (bar)] hello\");\n\n  MT(\"labelTitleNextMixed\",\n     \"[link [[foo]]:] [string http://example.com/]\",\n     \"(bar\\\" hello\");\n\n  MT(\"linkWeb\",\n     \"[link <http://example.com/>] foo\");\n\n  MT(\"linkWebDouble\",\n     \"[link <http://example.com/>] foo [link <http://example.com/>]\");\n\n  MT(\"linkEmail\",\n     \"[link <user@example.com>] foo\");\n\n  MT(\"linkEmailDouble\",\n     \"[link <user@example.com>] foo [link <user@example.com>]\");\n\n  MT(\"emAsterisk\",\n     \"[em *foo*] bar\");\n\n  MT(\"emUnderscore\",\n     \"[em _foo_] bar\");\n\n  MT(\"emInWordAsterisk\",\n     \"foo[em *bar*]hello\");\n\n  MT(\"emInWordUnderscore\",\n     \"foo[em _bar_]hello\");\n\n  // Per documentation: \"...surround an * or _ with spaces, it’ll be\n  // treated as a literal asterisk or underscore.\"\n\n  MT(\"emEscapedBySpaceIn\",\n     \"foo [em _bar _ hello_] world\");\n\n  MT(\"emEscapedBySpaceOut\",\n     \"foo _ bar[em _hello_]world\");\n\n  MT(\"emEscapedByNewline\",\n     \"foo\",\n     \"_ bar[em _hello_]world\");\n\n  // Unclosed emphasis characters\n  // Instead of simply marking as EM / STRONG, it would be nice to have an\n  // incomplete flag for EM and STRONG, that is styled slightly different.\n  MT(\"emIncompleteAsterisk\",\n     \"foo [em *bar]\");\n\n  MT(\"emIncompleteUnderscore\",\n     \"foo [em _bar]\");\n\n  MT(\"strongAsterisk\",\n     \"[strong **foo**] bar\");\n\n  MT(\"strongUnderscore\",\n     \"[strong __foo__] bar\");\n\n  MT(\"emStrongAsterisk\",\n     \"[em *foo][em&strong **bar*][strong hello**] world\");\n\n  MT(\"emStrongUnderscore\",\n     \"[em _foo][em&strong __bar_][strong hello__] world\");\n\n  // \"...same character must be used to open and close an emphasis span.\"\"\n  MT(\"emStrongMixed\",\n     \"[em _foo][em&strong **bar*hello__ world]\");\n\n  MT(\"emStrongMixed\",\n     \"[em *foo][em&strong __bar_hello** world]\");\n\n  // These characters should be escaped:\n  // \\   backslash\n  // `   backtick\n  // *   asterisk\n  // _   underscore\n  // {}  curly braces\n  // []  square brackets\n  // ()  parentheses\n  // #   hash mark\n  // +   plus sign\n  // -   minus sign (hyphen)\n  // .   dot\n  // !   exclamation mark\n\n  MT(\"escapeBacktick\",\n     \"foo \\\\`bar\\\\`\");\n\n  MT(\"doubleEscapeBacktick\",\n     \"foo \\\\\\\\[comment `bar\\\\\\\\`]\");\n\n  MT(\"escapeAsterisk\",\n     \"foo \\\\*bar\\\\*\");\n\n  MT(\"doubleEscapeAsterisk\",\n     \"foo \\\\\\\\[em *bar\\\\\\\\*]\");\n\n  MT(\"escapeUnderscore\",\n     \"foo \\\\_bar\\\\_\");\n\n  MT(\"doubleEscapeUnderscore\",\n     \"foo \\\\\\\\[em _bar\\\\\\\\_]\");\n\n  MT(\"escapeHash\",\n     \"\\\\# foo\");\n\n  MT(\"doubleEscapeHash\",\n     \"\\\\\\\\# foo\");\n\n  MT(\"escapeNewline\",\n     \"\\\\\",\n     \"[em *foo*]\");\n\n\n  // Tests to make sure GFM-specific things aren't getting through\n\n  MT(\"taskList\",\n     \"[variable-2 * [ ]] bar]\");\n\n  MT(\"fencedCodeBlocks\",\n     \"[comment ```]\",\n     \"foo\",\n     \"[comment ```]\");\n\n  // Tests that require XML mode\n\n  MT(\"xmlMode\",\n     \"[tag&bracket <][tag div][tag&bracket >]\",\n     \"*foo*\",\n     \"[tag&bracket <][tag http://github.com][tag&bracket />]\",\n     \"[tag&bracket </][tag div][tag&bracket >]\",\n     \"[link <http://github.com/>]\");\n\n  MT(\"xmlModeWithMarkdownInside\",\n     \"[tag&bracket <][tag div] [attribute markdown]=[string 1][tag&bracket >]\",\n     \"[em *foo*]\",\n     \"[link <http://github.com/>]\",\n     \"[tag </div>]\",\n     \"[link <http://github.com/>]\",\n     \"[tag&bracket <][tag div][tag&bracket >]\",\n     \"[tag&bracket </][tag div][tag&bracket >]\");\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/meta.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.modeInfo = [\n    {name: \"APL\", mime: \"text/apl\", mode: \"apl\", ext: [\"dyalog\", \"apl\"]},\n    {name: \"Asterisk\", mime: \"text/x-asterisk\", mode: \"asterisk\", file: /^extensions\\.conf$/i},\n    {name: \"C\", mime: \"text/x-csrc\", mode: \"clike\", ext: [\"c\", \"h\"]},\n    {name: \"C++\", mime: \"text/x-c++src\", mode: \"clike\", ext: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"], alias: [\"cpp\"]},\n    {name: \"Cobol\", mime: \"text/x-cobol\", mode: \"cobol\", ext: [\"cob\", \"cpy\"]},\n    {name: \"C#\", mime: \"text/x-csharp\", mode: \"clike\", ext: [\"cs\"], alias: [\"csharp\"]},\n    {name: \"Clojure\", mime: \"text/x-clojure\", mode: \"clojure\", ext: [\"clj\"]},\n    {name: \"CoffeeScript\", mime: \"text/x-coffeescript\", mode: \"coffeescript\", ext: [\"coffee\"], alias: [\"coffee\", \"coffee-script\"]},\n    {name: \"Common Lisp\", mime: \"text/x-common-lisp\", mode: \"commonlisp\", ext: [\"cl\", \"lisp\", \"el\"], alias: [\"lisp\"]},\n    {name: \"Cypher\", mime: \"application/x-cypher-query\", mode: \"cypher\", ext: [\"cyp\", \"cypher\"]},\n    {name: \"Cython\", mime: \"text/x-cython\", mode: \"python\", ext: [\"pyx\", \"pxd\", \"pxi\"]},\n    {name: \"CSS\", mime: \"text/css\", mode: \"css\", ext: [\"css\"]},\n    {name: \"CQL\", mime: \"text/x-cassandra\", mode: \"sql\", ext: [\"cql\"]},\n    {name: \"D\", mime: \"text/x-d\", mode: \"d\", ext: [\"d\"]},\n    {name: \"Dart\", mimes: [\"application/dart\", \"text/x-dart\"], mode: \"dart\", ext: [\"dart\"]},\n    {name: \"diff\", mime: \"text/x-diff\", mode: \"diff\", ext: [\"diff\", \"patch\"]},\n    {name: \"Django\", mime: \"text/x-django\", mode: \"django\"},\n    {name: \"Dockerfile\", mime: \"text/x-dockerfile\", mode: \"dockerfile\", file: /^Dockerfile$/},\n    {name: \"DTD\", mime: \"application/xml-dtd\", mode: \"dtd\", ext: [\"dtd\"]},\n    {name: \"Dylan\", mime: \"text/x-dylan\", mode: \"dylan\", ext: [\"dylan\", \"dyl\", \"intr\"]},\n    {name: \"EBNF\", mime: \"text/x-ebnf\", mode: \"ebnf\"},\n    {name: \"ECL\", mime: \"text/x-ecl\", mode: \"ecl\", ext: [\"ecl\"]},\n    {name: \"Eiffel\", mime: \"text/x-eiffel\", mode: \"eiffel\", ext: [\"e\"]},\n    {name: \"Embedded Javascript\", mime: \"application/x-ejs\", mode: \"htmlembedded\", ext: [\"ejs\"]},\n    {name: \"Embedded Ruby\", mime: \"application/x-erb\", mode: \"htmlembedded\", ext: [\"erb\"]},\n    {name: \"Erlang\", mime: \"text/x-erlang\", mode: \"erlang\", ext: [\"erl\"]},\n    {name: \"Forth\", mime: \"text/x-forth\", mode: \"forth\", ext: [\"forth\", \"fth\", \"4th\"]},\n    {name: \"Fortran\", mime: \"text/x-fortran\", mode: \"fortran\", ext: [\"f\", \"for\", \"f77\", \"f90\"]},\n    {name: \"F#\", mime: \"text/x-fsharp\", mode: \"mllike\", ext: [\"fs\"], alias: [\"fsharp\"]},\n    {name: \"Gas\", mime: \"text/x-gas\", mode: \"gas\", ext: [\"s\"]},\n    {name: \"Gherkin\", mime: \"text/x-feature\", mode: \"gherkin\", ext: [\"feature\"]},\n    {name: \"GitHub Flavored Markdown\", mime: \"text/x-gfm\", mode: \"gfm\", file: /^(readme|contributing|history).md$/i},\n    {name: \"Go\", mime: \"text/x-go\", mode: \"go\", ext: [\"go\"]},\n    {name: \"Groovy\", mime: \"text/x-groovy\", mode: \"groovy\", ext: [\"groovy\"]},\n    {name: \"HAML\", mime: \"text/x-haml\", mode: \"haml\", ext: [\"haml\"]},\n    {name: \"Haskell\", mime: \"text/x-haskell\", mode: \"haskell\", ext: [\"hs\"]},\n    {name: \"Haxe\", mime: \"text/x-haxe\", mode: \"haxe\", ext: [\"hx\"]},\n    {name: \"HXML\", mime: \"text/x-hxml\", mode: \"haxe\", ext: [\"hxml\"]},\n    {name: \"ASP.NET\", mime: \"application/x-aspx\", mode: \"htmlembedded\", ext: [\"aspx\"], alias: [\"asp\", \"aspx\"]},\n    {name: \"HTML\", mime: \"text/html\", mode: \"htmlmixed\", ext: [\"html\", \"htm\"], alias: [\"xhtml\"]},\n    {name: \"HTTP\", mime: \"message/http\", mode: \"http\"},\n    {name: \"IDL\", mime: \"text/x-idl\", mode: \"idl\", ext: [\"pro\"]},\n    {name: \"Jade\", mime: \"text/x-jade\", mode: \"jade\", ext: [\"jade\"]},\n    {name: \"Java\", mime: \"text/x-java\", mode: \"clike\", ext: [\"java\"]},\n    {name: \"Java Server Pages\", mime: \"application/x-jsp\", mode: \"htmlembedded\", ext: [\"jsp\"], alias: [\"jsp\"]},\n    {name: \"JavaScript\", mimes: [\"text/javascript\", \"text/ecmascript\", \"application/javascript\", \"application/x-javascript\", \"application/ecmascript\"],\n     mode: \"javascript\", ext: [\"js\"], alias: [\"ecmascript\", \"js\", \"node\"]},\n    {name: \"JSON\", mimes: [\"application/json\", \"application/x-json\"], mode: \"javascript\", ext: [\"json\", \"map\"], alias: [\"json5\"]},\n    {name: \"JSON-LD\", mime: \"application/ld+json\", mode: \"javascript\", ext: [\"jsonld\"], alias: [\"jsonld\"]},\n    {name: \"Jinja2\", mime: \"null\", mode: \"jinja2\"},\n    {name: \"Julia\", mime: \"text/x-julia\", mode: \"julia\", ext: [\"jl\"]},\n    {name: \"Kotlin\", mime: \"text/x-kotlin\", mode: \"kotlin\", ext: [\"kt\"]},\n    {name: \"LESS\", mime: \"text/x-less\", mode: \"css\", ext: [\"less\"]},\n    {name: \"LiveScript\", mime: \"text/x-livescript\", mode: \"livescript\", ext: [\"ls\"], alias: [\"ls\"]},\n    {name: \"Lua\", mime: \"text/x-lua\", mode: \"lua\", ext: [\"lua\"]},\n    {name: \"Markdown\", mime: \"text/x-markdown\", mode: \"markdown\", ext: [\"markdown\", \"md\", \"mkd\"]},\n    {name: \"mIRC\", mime: \"text/mirc\", mode: \"mirc\"},\n    {name: \"MariaDB SQL\", mime: \"text/x-mariadb\", mode: \"sql\"},\n    {name: \"Modelica\", mime: \"text/x-modelica\", mode: \"modelica\", ext: [\"mo\"]},\n    {name: \"MS SQL\", mime: \"text/x-mssql\", mode: \"sql\"},\n    {name: \"MySQL\", mime: \"text/x-mysql\", mode: \"sql\"},\n    {name: \"Nginx\", mime: \"text/x-nginx-conf\", mode: \"nginx\", file: /nginx.*\\.conf$/i},\n    {name: \"NTriples\", mime: \"text/n-triples\", mode: \"ntriples\", ext: [\"nt\"]},\n    {name: \"Objective C\", mime: \"text/x-objectivec\", mode: \"clike\", ext: [\"m\", \"mm\"]},\n    {name: \"OCaml\", mime: \"text/x-ocaml\", mode: \"mllike\", ext: [\"ml\", \"mli\", \"mll\", \"mly\"]},\n    {name: \"Octave\", mime: \"text/x-octave\", mode: \"octave\", ext: [\"m\"]},\n    {name: \"Pascal\", mime: \"text/x-pascal\", mode: \"pascal\", ext: [\"p\", \"pas\"]},\n    {name: \"PEG.js\", mime: \"null\", mode: \"pegjs\", ext: [\"jsonld\"]},\n    {name: \"Perl\", mime: \"text/x-perl\", mode: \"perl\", ext: [\"pl\", \"pm\"]},\n    {name: \"PHP\", mime: \"application/x-httpd-php\", mode: \"php\", ext: [\"php\", \"php3\", \"php4\", \"php5\", \"phtml\"]},\n    {name: \"Pig\", mime: \"text/x-pig\", mode: \"pig\", ext: [\"pig\"]},\n    {name: \"Plain Text\", mime: \"text/plain\", mode: \"null\", ext: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\"]},\n    {name: \"PLSQL\", mime: \"text/x-plsql\", mode: \"sql\", ext: [\"pls\"]},\n    {name: \"Properties files\", mime: \"text/x-properties\", mode: \"properties\", ext: [\"properties\", \"ini\", \"in\"], alias: [\"ini\", \"properties\"]},\n    {name: \"Python\", mime: \"text/x-python\", mode: \"python\", ext: [\"py\", \"pyw\"]},\n    {name: \"Puppet\", mime: \"text/x-puppet\", mode: \"puppet\", ext: [\"pp\"]},\n    {name: \"Q\", mime: \"text/x-q\", mode: \"q\", ext: [\"q\"]},\n    {name: \"R\", mime: \"text/x-rsrc\", mode: \"r\", ext: [\"r\"], alias: [\"rscript\"]},\n    {name: \"reStructuredText\", mime: \"text/x-rst\", mode: \"rst\", ext: [\"rst\"], alias: [\"rst\"]},\n    {name: \"RPM Changes\", mime: \"text/x-rpm-changes\", mode: \"rpm\"},\n    {name: \"RPM Spec\", mime: \"text/x-rpm-spec\", mode: \"rpm\", ext: [\"spec\"]},\n    {name: \"Ruby\", mime: \"text/x-ruby\", mode: \"ruby\", ext: [\"rb\"], alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"]},\n    {name: \"Rust\", mime: \"text/x-rustsrc\", mode: \"rust\", ext: [\"rs\"]},\n    {name: \"Sass\", mime: \"text/x-sass\", mode: \"sass\", ext: [\"sass\"]},\n    {name: \"Scala\", mime: \"text/x-scala\", mode: \"clike\", ext: [\"scala\"]},\n    {name: \"Scheme\", mime: \"text/x-scheme\", mode: \"scheme\", ext: [\"scm\", \"ss\"]},\n    {name: \"SCSS\", mime: \"text/x-scss\", mode: \"css\", ext: [\"scss\"]},\n    {name: \"Shell\", mime: \"text/x-sh\", mode: \"shell\", ext: [\"sh\", \"ksh\", \"bash\"], alias: [\"bash\", \"sh\", \"zsh\"]},\n    {name: \"Sieve\", mime: \"application/sieve\", mode: \"sieve\", ext: [\"siv\", \"sieve\"]},\n    {name: \"Slim\", mimes: [\"text/x-slim\", \"application/x-slim\"], mode: \"slim\", ext: [\"slim\"]},\n    {name: \"Smalltalk\", mime: \"text/x-stsrc\", mode: \"smalltalk\", ext: [\"st\"]},\n    {name: \"Smarty\", mime: \"text/x-smarty\", mode: \"smarty\", ext: [\"tpl\"]},\n    {name: \"SmartyMixed\", mime: \"text/x-smarty\", mode: \"smartymixed\"},\n    {name: \"Solr\", mime: \"text/x-solr\", mode: \"solr\"},\n    {name: \"Soy\", mime: \"text/x-soy\", mode: \"soy\", ext: [\"soy\"], alias: [\"closure template\"]},\n    {name: \"SPARQL\", mime: \"application/sparql-query\", mode: \"sparql\", ext: [\"rq\", \"sparql\"], alias: [\"sparul\"]},\n    {name: \"Spreadsheet\", mime: \"text/x-spreadsheet\", mode: \"spreadsheet\", alias: [\"excel\", \"formula\"]},\n    {name: \"SQL\", mime: \"text/x-sql\", mode: \"sql\", ext: [\"sql\"]},\n    {name: \"MariaDB\", mime: \"text/x-mariadb\", mode: \"sql\"},\n    {name: \"sTeX\", mime: \"text/x-stex\", mode: \"stex\"},\n    {name: \"LaTeX\", mime: \"text/x-latex\", mode: \"stex\", ext: [\"text\", \"ltx\"], alias: [\"tex\"]},\n    {name: \"SystemVerilog\", mime: \"text/x-systemverilog\", mode: \"verilog\", ext: [\"v\"]},\n    {name: \"Tcl\", mime: \"text/x-tcl\", mode: \"tcl\", ext: [\"tcl\"]},\n    {name: \"Textile\", mime: \"text/x-textile\", mode: \"textile\", ext: [\"textile\"]},\n    {name: \"TiddlyWiki \", mime: \"text/x-tiddlywiki\", mode: \"tiddlywiki\"},\n    {name: \"Tiki wiki\", mime: \"text/tiki\", mode: \"tiki\"},\n    {name: \"TOML\", mime: \"text/x-toml\", mode: \"toml\", ext: [\"toml\"]},\n    {name: \"Tornado\", mime: \"text/x-tornado\", mode: \"tornado\"},\n    {name: \"Turtle\", mime: \"text/turtle\", mode: \"turtle\", ext: [\"ttl\"]},\n    {name: \"TypeScript\", mime: \"application/typescript\", mode: \"javascript\", ext: [\"ts\"], alias: [\"ts\"]},\n    {name: \"VB.NET\", mime: \"text/x-vb\", mode: \"vb\", ext: [\"vb\"]},\n    {name: \"VBScript\", mime: \"text/vbscript\", mode: \"vbscript\", ext: [\"vbs\"]},\n    {name: \"Velocity\", mime: \"text/velocity\", mode: \"velocity\", ext: [\"vtl\"]},\n    {name: \"Verilog\", mime: \"text/x-verilog\", mode: \"verilog\", ext: [\"v\"]},\n    {name: \"XML\", mimes: [\"application/xml\", \"text/xml\"], mode: \"xml\", ext: [\"xml\", \"xsl\", \"xsd\"], alias: [\"rss\", \"wsdl\", \"xsd\"]},\n    {name: \"XQuery\", mime: \"application/xquery\", mode: \"xquery\", ext: [\"xy\", \"xquery\"]},\n    {name: \"YAML\", mime: \"text/x-yaml\", mode: \"yaml\", ext: [\"yaml\"], alias: [\"yml\"]},\n    {name: \"Z80\", mime: \"text/x-z80\", mode: \"z80\", ext: [\"z80\"]}\n  ];\n  // Ensure all modes have a mime property for backwards compatibility\n  for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n    var info = CodeMirror.modeInfo[i];\n    if (info.mimes) info.mime = info.mimes[0];\n  }\n\n  CodeMirror.findModeByMIME = function(mime) {\n    mime = mime.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.mime == mime) return info;\n      if (info.mimes) for (var j = 0; j < info.mimes.length; j++)\n        if (info.mimes[j] == mime) return info;\n    }\n  };\n\n  CodeMirror.findModeByExtension = function(ext) {\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.ext) for (var j = 0; j < info.ext.length; j++)\n        if (info.ext[j] == ext) return info;\n    }\n  };\n\n  CodeMirror.findModeByFileName = function(filename) {\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.file && info.file.test(filename)) return info;\n    }\n    var dot = filename.lastIndexOf(\".\");\n    var ext = dot > -1 && filename.substring(dot + 1, filename.length);\n    if (ext) return CodeMirror.findModeByExtension(ext);\n  };\n\n  CodeMirror.findModeByName = function(name) {\n    name = name.toLowerCase();\n    for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n      var info = CodeMirror.modeInfo[i];\n      if (info.name.toLowerCase() == name) return info;\n      if (info.alias) for (var j = 0; j < info.alias.length; j++)\n        if (info.alias[j].toLowerCase() == name) return info;\n    }\n  };\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/mirc/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: mIRC mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/twilight.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"mirc.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">mIRC</a>\n  </ul>\n</div>\n\n<article>\n<h2>mIRC mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n;AKA Nick Tracker by Ford_Lawnmower irc.GeekShed.net #Script-Help\n;*****************************************************************************;\n;**Start Setup\n;Change JoinDisplay, below, for On Join AKA Display. On = 1 - Off = 0\nalias -l JoinDisplay { return 1 }\n;Change MaxNicks, below, to the number of nicknames you want to store for each hostmask. I wouldn't go over 400 with this ;/\nalias -l MaxNicks { return 20 }\n;Change AKALogo, below, To the text you want displayed before each AKA result.\nalias -l AKALogo { return \u000306\u0007 \u000305A\u000306K\u000307A \u000306\u0007 }\n;**End Setup\n;*****************************************************************************;\nOn *:Join:#: {\n  if ($nick == $me) { .timer 1 1 ialupdateCheck $chan }\n  NickNamesAdd $nick $+($network,$wildsite)\n  if ($JoinDisplay) { .timerNickNames $+ $nick 1 2 NickNames.display $nick $chan $network $wildsite }\n}\non *:Nick: { NickNamesAdd $newnick $+($network,$wildsite) $nick }\nalias -l NickNames.display {\n  if ($gettok($hget(NickNames,$+($3,$4)),0,126) > 1) {\n    echo -g $2 $AKALogo $+(\u000309,$1) $AKALogo \u000307 $mid($replace($hget(NickNames,$+($3,$4)),$chr(126),$chr(44)),2,-1)\n  }\n}\nalias -l NickNamesAdd {\n  if ($hget(NickNames,$2)) {\n    if (!$regex($hget(NickNames,$2),/~\\Q $+ $replacecs($1,\\E,\\E\\\\E\\Q) $+ \\E~/i)) {\n      if ($gettok($hget(NickNames,$2),0,126) <= $MaxNicks) {\n        hadd NickNames $2 $+($hget(NickNames,$2),$1,~)\n      }\n      else {\n        hadd NickNames $2 $+($mid($hget(NickNames,$2),$pos($hget(NickNames,$2),~,2)),$1,~)\n      }\n    }\n  }\n  else {\n    hadd -m NickNames $2 $+(~,$1,~,$iif($3,$+($3,~)))\n  }\n}\nalias -l Fix.All.MindUser {\n  var %Fix.Count = $hfind(NickNames,/[^~]+[0-9]{4}~/,0,r).data\n  while (%Fix.Count) {\n    if ($Fix.MindUser($hget(NickNames,$hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data))) {\n      echo -ag Record %Fix.Count - $v1 - Was Cleaned\n      hadd NickNames $hfind(NickNames,/[^~]+[0-9]{4}~/,%Fix.Count,r).data $v1\n    }\n    dec %Fix.Count\n  }\n}\nalias -l Fix.MindUser { return $regsubex($1,/[^~]+[0-9]{4}~/g,$null) }\nmenu nicklist,query {\n  -\n  .AKA\n  ..Check $$1: {\n    if ($gettok($hget(NickNames,$+($network,$address($1,2))),0,126) > 1) {\n      NickNames.display $1 $active $network $address($1,2)\n    }\n    else { echo -ag $AKALogo $+(\u000309,$1) \u000307has not been known by any other nicknames while I have been watching. }\n  }\n  ..Cleanup $$1:hadd NickNames $+($network,$address($1,2)) $fix.minduser($hget(NickNames,$+($network,$address($1,2))))\n  ..Clear $$1:hadd NickNames $+($network,$address($1,2)) $+(~,$1,~)\n  ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search\n  -\n}\nmenu status,channel {\n  -\n  .AKA\n  ..AKA Search Dialog:dialog $iif($dialog(AKA_Search),-v,-m) AKA_Search AKA_Search\n  ..Clean All Records:Fix.All.Minduser\n  -\n}\ndialog AKA_Search {\n  title \"AKA Search Engine\"\n  size -1 -1 206 221\n  option dbu\n  edit \"\", 1, 8 5 149 10, autohs\n  button \"Search\", 2, 163 4 32 12\n  radio \"Search HostMask\", 4, 61 22 55 10\n  radio \"Search Nicknames\", 5, 123 22 56 10\n  list 6, 8 38 190 169, sort extsel vsbar\n  button \"Check Selected\", 7, 67 206 40 12\n  button \"Close\", 8, 160 206 38 12, cancel\n  box \"Search Type\", 3, 11 17 183 18\n  button \"Copy to Clipboard\", 9, 111 206 46 12\n}\nOn *:Dialog:Aka_Search:init:*: { did -c $dname 5 }\nOn *:Dialog:Aka_Search:Sclick:2,7,9: {\n  if ($did == 2) && ($did($dname,1)) {\n    did -r $dname 6\n    var %search $+(*,$v1,*), %type $iif($did($dname,5).state,data,item), %matches = $hfind(NickNames,%search,0,w). [ $+ [ %type ] ]\n    while (%matches) {\n      did -a $dname 6 $hfind(NickNames,%search,%matches,w). [ $+ [ %type ] ]\n      dec %matches\n    }\n    did -c $dname 6 1\n  }\n  elseif ($did == 7) && ($did($dname,6).seltext) { echo -ga $AKALogo \u000307 $mid($replace($hget(NickNames,$v1),$chr(126),$chr(44)),2,-1) }\n  elseif ($did == 9) && ($did($dname,6).seltext) { clipboard $mid($v1,$pos($v1,*,1)) }\n}\nOn *:Start:{\n  if (!$hget(NickNames)) { hmake NickNames 10 }\n  if ($isfile(NickNames.hsh)) { hload  NickNames NickNames.hsh }\n}\nOn *:Exit: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }\nOn *:Disconnect: { if ($hget(NickNames)) { hsave NickNames NickNames.hsh } }\nOn *:Unload: { hfree NickNames }\nalias -l ialupdateCheck {\n  inc -z $+(%,ialupdateCheck,$network) $calc($nick($1,0) / 4)\n  ;If your ial is already being updated on join .who $1 out.\n  ;If you are using /names to update ial you will still need this line.\n  .who $1\n}\nRaw 352:*: {\n  if ($($+(%,ialupdateCheck,$network),2)) haltdef\n  NickNamesAdd $6 $+($network,$address($6,2))\n}\nRaw 315:*: {\n  if ($($+(%,ialupdateCheck,$network),2)) haltdef\n}\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"twilight\",\n        lineNumbers: true,\n        matchBrackets: true,\n        indentUnit: 4,\n        mode: \"text/mirc\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/mirc</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/mirc/mirc.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMIME(\"text/mirc\", \"mirc\");\nCodeMirror.defineMode(\"mirc\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var specials = parseWords(\"$! $$ $& $? $+ $abook $abs $active $activecid \" +\n                            \"$activewid $address $addtok $agent $agentname $agentstat $agentver \" +\n                            \"$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime \" +\n                            \"$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind \" +\n                            \"$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes \" +\n                            \"$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color \" +\n                            \"$com $comcall $comchan $comerr $compact $compress $comval $cos $count \" +\n                            \"$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight \" +\n                            \"$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress \" +\n                            \"$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll \" +\n                            \"$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error \" +\n                            \"$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir \" +\n                            \"$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve \" +\n                            \"$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt \" +\n                            \"$group $halted $hash $height $hfind $hget $highlight $hnick $hotline \" +\n                            \"$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil \" +\n                            \"$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect \" +\n                            \"$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile \" +\n                            \"$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive \" +\n                            \"$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock \" +\n                            \"$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer \" +\n                            \"$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext \" +\n                            \"$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode \" +\n                            \"$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile \" +\n                            \"$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly \" +\n                            \"$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree \" +\n                            \"$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo \" +\n                            \"$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex \" +\n                            \"$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline \" +\n                            \"$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin \" +\n                            \"$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname \" +\n                            \"$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped \" +\n                            \"$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp \" +\n                            \"$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel \" +\n                            \"$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver \" +\n                            \"$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor\");\n  var keywords = parseWords(\"abook ajinvite alias aline ame amsg anick aop auser autojoin avoice \" +\n                            \"away background ban bcopy beep bread break breplace bset btrunc bunset bwrite \" +\n                            \"channel clear clearall cline clipboard close cnick color comclose comopen \" +\n                            \"comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver \" +\n                            \"debug dec describe dialog did didtok disable disconnect dlevel dline dll \" +\n                            \"dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace \" +\n                            \"drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable \" +\n                            \"events exit fclose filter findtext finger firewall flash flist flood flush \" +\n                            \"flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove \" +\n                            \"gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd \" +\n                            \"halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear \" +\n                            \"ialmark identd if ignore iline inc invite iuser join kick linesep links list \" +\n                            \"load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice \" +\n                            \"notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice \" +\n                            \"qme qmsg query queryn quit raw reload remini remote remove rename renwin \" +\n                            \"reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini \" +\n                            \"say scid scon server set showmirc signam sline sockaccept sockclose socklist \" +\n                            \"socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite \" +\n                            \"sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize \" +\n                            \"toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho \" +\n                            \"var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum \" +\n                            \"isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower \" +\n                            \"isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs \" +\n                            \"elseif else goto menu nicklist status title icon size option text edit \" +\n                            \"button check radio box scroll list combo link tab item\");\n  var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n  var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n  function tokenBase(stream, state) {\n    var beforeParams = state.beforeParams;\n    state.beforeParams = false;\n    var ch = stream.next();\n    if (/[\\[\\]{}\\(\\),\\.]/.test(ch)) {\n      if (ch == \"(\" && beforeParams) state.inParams = true;\n      else if (ch == \")\") state.inParams = false;\n      return null;\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    else if (ch == \"\\\\\") {\n      stream.eat(\"\\\\\");\n      stream.eat(/./);\n      return \"number\";\n    }\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      return chain(stream, state, tokenComment);\n    }\n    else if (ch == \";\" && stream.match(/ *\\( *\\(/)) {\n      return chain(stream, state, tokenUnparsed);\n    }\n    else if (ch == \";\" && !state.inParams) {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (ch == '\"') {\n      stream.eat(/\"/);\n      return \"keyword\";\n    }\n    else if (ch == \"$\") {\n      stream.eatWhile(/[$_a-z0-9A-Z\\.:]/);\n      if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) {\n        return \"keyword\";\n      }\n      else {\n        state.beforeParams = true;\n        return \"builtin\";\n      }\n    }\n    else if (ch == \"%\") {\n      stream.eatWhile(/[^,^\\s^\\(^\\)]/);\n      state.beforeParams = true;\n      return \"string\";\n    }\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    else {\n      stream.eatWhile(/[\\w\\$_{}]/);\n      var word = stream.current().toLowerCase();\n      if (keywords && keywords.propertyIsEnumerable(word))\n        return \"keyword\";\n      if (functions && functions.propertyIsEnumerable(word)) {\n        state.beforeParams = true;\n        return \"keyword\";\n      }\n      return null;\n    }\n  }\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n  function tokenUnparsed(stream, state) {\n    var maybeEnd = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \";\" && maybeEnd == 2) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      if (ch == \")\")\n        maybeEnd++;\n      else if (ch != \" \")\n        maybeEnd = 0;\n    }\n    return \"meta\";\n  }\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        beforeParams: false,\n        inParams: false\n      };\n    },\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/mllike/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: ML-like mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=stylesheet href=../../lib/codemirror.css>\n<script src=../../lib/codemirror.js></script>\n<script src=../../addon/edit/matchbrackets.js></script>\n<script src=mllike.js></script>\n<style type=text/css>\n  .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">ML-like</a>\n  </ul>\n</div>\n\n<article>\n<h2>OCaml mode</h2>\n\n\n<textarea id=\"ocamlCode\">\n(* Summing a list of integers *)\nlet rec sum xs =\n  match xs with\n    | []       -&gt; 0\n    | x :: xs' -&gt; x + sum xs'\n\n(* Quicksort *)\nlet rec qsort = function\n   | [] -&gt; []\n   | pivot :: rest -&gt;\n       let is_less x = x &lt; pivot in\n       let left, right = List.partition is_less rest in\n       qsort left @ [pivot] @ qsort right\n\n(* Fibonacci Sequence *)\nlet rec fib_aux n a b =\n  match n with\n  | 0 -&gt; a\n  | _ -&gt; fib_aux (n - 1) (a + b) a\nlet fib n = fib_aux n 0 1\n\n(* Birthday paradox *)\nlet year_size = 365.\n\nlet rec birthday_paradox prob people =\n    let prob' = (year_size -. float people) /. year_size *. prob  in\n    if prob' &lt; 0.5 then\n        Printf.printf \"answer = %d\\n\" (people+1)\n    else\n        birthday_paradox prob' (people+1) ;;\n\nbirthday_paradox 1.0 1\n\n(* Church numerals *)\nlet zero f x = x\nlet succ n f x = f (n f x)\nlet one = succ zero\nlet two = succ (succ zero)\nlet add n1 n2 f x = n1 f (n2 f x)\nlet to_string n = n (fun k -&gt; \"S\" ^ k) \"0\"\nlet _ = to_string (add (succ two) two)\n\n(* Elementary functions *)\nlet square x = x * x;;\nlet rec fact x =\n  if x &lt;= 1 then 1 else x * fact (x - 1);;\n\n(* Automatic memory management *)\nlet l = 1 :: 2 :: 3 :: [];;\n[1; 2; 3];;\n5 :: l;;\n\n(* Polymorphism: sorting lists *)\nlet rec sort = function\n  | [] -&gt; []\n  | x :: l -&gt; insert x (sort l)\n\nand insert elem = function\n  | [] -&gt; [elem]\n  | x :: l -&gt;\n      if elem &lt; x then elem :: x :: l else x :: insert elem l;;\n\n(* Imperative features *)\nlet add_polynom p1 p2 =\n  let n1 = Array.length p1\n  and n2 = Array.length p2 in\n  let result = Array.create (max n1 n2) 0 in\n  for i = 0 to n1 - 1 do result.(i) &lt;- p1.(i) done;\n  for i = 0 to n2 - 1 do result.(i) &lt;- result.(i) + p2.(i) done;\n  result;;\nadd_polynom [| 1; 2 |] [| 1; 2; 3 |];;\n\n(* We may redefine fact using a reference cell and a for loop *)\nlet fact n =\n  let result = ref 1 in\n  for i = 2 to n do\n    result := i * !result\n   done;\n   !result;;\nfact 5;;\n\n(* Triangle (graphics) *)\nlet () =\n  ignore( Glut.init Sys.argv );\n  Glut.initDisplayMode ~double_buffer:true ();\n  ignore (Glut.createWindow ~title:\"OpenGL Demo\");\n  let angle t = 10. *. t *. t in\n  let render () =\n    GlClear.clear [ `color ];\n    GlMat.load_identity ();\n    GlMat.rotate ~angle: (angle (Sys.time ())) ~z:1. ();\n    GlDraw.begins `triangles;\n    List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.];\n    GlDraw.ends ();\n    Glut.swapBuffers () in\n  GlMat.mode `modelview;\n  Glut.displayFunc ~cb:render;\n  Glut.idleFunc ~cb:(Some Glut.postRedisplay);\n  Glut.mainLoop ()\n\n(* A Hundred Lines of Caml - http://caml.inria.fr/about/taste.en.html *)\n(* OCaml page on Wikipedia - http://en.wikipedia.org/wiki/OCaml *)\n</textarea>\n\n<h2>F# mode</h2>\n<textarea id=\"fsharpCode\">\nmodule CodeMirror.FSharp\n\nlet rec fib = function\n    | 0 -> 0\n    | 1 -> 1\n    | n -> fib (n - 1) + fib (n - 2)\n\ntype Point =\n    {\n        x : int\n        y : int\n    }\n\ntype Color =\n    | Red\n    | Green\n    | Blue\n\n[0 .. 10]\n|> List.map ((+) 2)\n|> List.fold (fun x y -> x + y) 0\n|> printf \"%i\"\n</textarea>\n\n\n<script>\n  var ocamlEditor = CodeMirror.fromTextArea(document.getElementById('ocamlCode'), {\n    mode: 'text/x-ocaml',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n\n  var fsharpEditor = CodeMirror.fromTextArea(document.getElementById('fsharpCode'), {\n    mode: 'text/x-fsharp',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-ocaml</code> (OCaml) and <code>text/x-fsharp</code> (F#).</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/mllike/mllike.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('mllike', function(_config, parserConfig) {\n  var words = {\n    'let': 'keyword',\n    'rec': 'keyword',\n    'in': 'keyword',\n    'of': 'keyword',\n    'and': 'keyword',\n    'if': 'keyword',\n    'then': 'keyword',\n    'else': 'keyword',\n    'for': 'keyword',\n    'to': 'keyword',\n    'while': 'keyword',\n    'do': 'keyword',\n    'done': 'keyword',\n    'fun': 'keyword',\n    'function': 'keyword',\n    'val': 'keyword',\n    'type': 'keyword',\n    'mutable': 'keyword',\n    'match': 'keyword',\n    'with': 'keyword',\n    'try': 'keyword',\n    'open': 'builtin',\n    'ignore': 'builtin',\n    'begin': 'keyword',\n    'end': 'keyword'\n  };\n\n  var extraWords = parserConfig.extraWords || {};\n  for (var prop in extraWords) {\n    if (extraWords.hasOwnProperty(prop)) {\n      words[prop] = parserConfig.extraWords[prop];\n    }\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    if (ch === '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n    if (ch === '(') {\n      if (stream.eat('*')) {\n        state.commentLevel++;\n        state.tokenize = tokenComment;\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch === '~') {\n      stream.eatWhile(/\\w/);\n      return 'variable-2';\n    }\n    if (ch === '`') {\n      stream.eatWhile(/\\w/);\n      return 'quote';\n    }\n    if (ch === '/' && parserConfig.slashComments && stream.eat('/')) {\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\d]/);\n      if (stream.eat('.')) {\n        stream.eatWhile(/[\\d]/);\n      }\n      return 'number';\n    }\n    if ( /[+\\-*&%=<>!?|]/.test(ch)) {\n      return 'operator';\n    }\n    stream.eatWhile(/\\w/);\n    var cur = stream.current();\n    return words[cur] || 'variable';\n  }\n\n  function tokenString(stream, state) {\n    var next, end = false, escaped = false;\n    while ((next = stream.next()) != null) {\n      if (next === '\"' && !escaped) {\n        end = true;\n        break;\n      }\n      escaped = !escaped && next === '\\\\';\n    }\n    if (end && !escaped) {\n      state.tokenize = tokenBase;\n    }\n    return 'string';\n  };\n\n  function tokenComment(stream, state) {\n    var prev, next;\n    while(state.commentLevel > 0 && (next = stream.next()) != null) {\n      if (prev === '(' && next === '*') state.commentLevel++;\n      if (prev === '*' && next === ')') state.commentLevel--;\n      prev = next;\n    }\n    if (state.commentLevel <= 0) {\n      state.tokenize = tokenBase;\n    }\n    return 'comment';\n  }\n\n  return {\n    startState: function() {return {tokenize: tokenBase, commentLevel: 0};},\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    },\n\n    blockCommentStart: \"(*\",\n    blockCommentEnd: \"*)\",\n    lineComment: parserConfig.slashComments ? \"//\" : null\n  };\n});\n\nCodeMirror.defineMIME('text/x-ocaml', {\n  name: 'mllike',\n  extraWords: {\n    'succ': 'keyword',\n    'trace': 'builtin',\n    'exit': 'builtin',\n    'print_string': 'builtin',\n    'print_endline': 'builtin',\n    'true': 'atom',\n    'false': 'atom',\n    'raise': 'keyword'\n  }\n});\n\nCodeMirror.defineMIME('text/x-fsharp', {\n  name: 'mllike',\n  extraWords: {\n    'abstract': 'keyword',\n    'as': 'keyword',\n    'assert': 'keyword',\n    'base': 'keyword',\n    'class': 'keyword',\n    'default': 'keyword',\n    'delegate': 'keyword',\n    'downcast': 'keyword',\n    'downto': 'keyword',\n    'elif': 'keyword',\n    'exception': 'keyword',\n    'extern': 'keyword',\n    'finally': 'keyword',\n    'global': 'keyword',\n    'inherit': 'keyword',\n    'inline': 'keyword',\n    'interface': 'keyword',\n    'internal': 'keyword',\n    'lazy': 'keyword',\n    'let!': 'keyword',\n    'member' : 'keyword',\n    'module': 'keyword',\n    'namespace': 'keyword',\n    'new': 'keyword',\n    'null': 'keyword',\n    'override': 'keyword',\n    'private': 'keyword',\n    'public': 'keyword',\n    'return': 'keyword',\n    'return!': 'keyword',\n    'select': 'keyword',\n    'static': 'keyword',\n    'struct': 'keyword',\n    'upcast': 'keyword',\n    'use': 'keyword',\n    'use!': 'keyword',\n    'val': 'keyword',\n    'when': 'keyword',\n    'yield': 'keyword',\n    'yield!': 'keyword',\n\n    'List': 'builtin',\n    'Seq': 'builtin',\n    'Map': 'builtin',\n    'Set': 'builtin',\n    'int': 'builtin',\n    'string': 'builtin',\n    'raise': 'builtin',\n    'failwith': 'builtin',\n    'not': 'builtin',\n    'true': 'builtin',\n    'false': 'builtin'\n  },\n  slashComments: true\n});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/modelica/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Modelica mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"modelica.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Modelica</a>\n  </ul>\n</div>\n\n<article>\n<h2>Modelica mode</h2>\n\n<div><textarea id=\"modelica\">\nmodel BouncingBall\n  parameter Real e = 0.7;\n  parameter Real g = 9.81;\n  Real h(start=1);\n  Real v;\n  Boolean flying(start=true);\n  Boolean impact;\n  Real v_new;\nequation\n  impact = h <= 0.0;\n  der(v) = if flying then -g else 0;\n  der(h) = v;\n  when {h <= 0.0 and v <= 0.0, impact} then\n    v_new = if edge(impact) then -e*pre(v) else 0;\n    flying = v_new > 0;\n    reinit(v, v_new);\n  end when;\n  annotation (uses(Modelica(version=\"3.2\")));\nend BouncingBall;\n</textarea></div>\n\n    <script>\n      var modelicaEditor = CodeMirror.fromTextArea(document.getElementById(\"modelica\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-modelica\"\n      });\n      var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;\n      CodeMirror.keyMap.default[(mac ? \"Cmd\" : \"Ctrl\") + \"-Space\"] = \"autocomplete\";\n    </script>\n\n    <p>Simple mode that tries to handle Modelica as well as it can.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-modelica</code>\n    (Modlica code).</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/modelica/modelica.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Modelica support for CodeMirror, copyright (c) by Lennart Ochel\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})\n\n(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"modelica\", function(config, parserConfig) {\n\n    var indentUnit = config.indentUnit;\n    var keywords = parserConfig.keywords || {};\n    var builtin = parserConfig.builtin || {};\n    var atoms = parserConfig.atoms || {};\n\n    var isSingleOperatorChar = /[;=\\(:\\),{}.*<>+\\-\\/^\\[\\]]/;\n    var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\\.\\+|\\.\\-|\\.\\*|\\.\\/|\\.\\^)/;\n    var isDigit = /[0-9]/;\n    var isNonDigit = /[_a-zA-Z]/;\n\n    function tokenLineComment(stream, state) {\n      stream.skipToEnd();\n      state.tokenize = null;\n      return \"comment\";\n    }\n\n    function tokenBlockComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (maybeEnd && ch == \"/\") {\n          state.tokenize = null;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n\n    function tokenString(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == '\"' && !escaped) {\n          state.tokenize = null;\n          state.sol = false;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n\n      return \"string\";\n    }\n\n    function tokenIdent(stream, state) {\n      stream.eatWhile(isDigit);\n      while (stream.eat(isDigit) || stream.eat(isNonDigit)) { }\n\n\n      var cur = stream.current();\n\n      if(state.sol && (cur == \"package\" || cur == \"model\" || cur == \"when\" || cur == \"connector\")) state.level++;\n      else if(state.sol && cur == \"end\" && state.level > 0) state.level--;\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n      else if (builtin.propertyIsEnumerable(cur)) return \"builtin\";\n      else if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n      else return \"variable\";\n    }\n\n    function tokenQIdent(stream, state) {\n      while (stream.eat(/[^']/)) { }\n\n      state.tokenize = null;\n      state.sol = false;\n\n      if(stream.eat(\"'\"))\n        return \"variable\";\n      else\n        return \"error\";\n    }\n\n    function tokenUnsignedNuber(stream, state) {\n      stream.eatWhile(isDigit);\n      if (stream.eat('.')) {\n        stream.eatWhile(isDigit);\n      }\n      if (stream.eat('e') || stream.eat('E')) {\n        if (!stream.eat('-'))\n          stream.eat('+');\n        stream.eatWhile(isDigit);\n      }\n\n      state.tokenize = null;\n      state.sol = false;\n      return \"number\";\n    }\n\n    // Interface\n    return {\n      startState: function() {\n        return {\n          tokenize: null,\n          level: 0,\n          sol: true\n        };\n      },\n\n      token: function(stream, state) {\n        if(state.tokenize != null) {\n          return state.tokenize(stream, state);\n        }\n\n        if(stream.sol()) {\n          state.sol = true;\n        }\n\n        // WHITESPACE\n        if(stream.eatSpace()) {\n          state.tokenize = null;\n          return null;\n        }\n\n        var ch = stream.next();\n\n        // LINECOMMENT\n        if(ch == '/' && stream.eat('/')) {\n          state.tokenize = tokenLineComment;\n        }\n        // BLOCKCOMMENT\n        else if(ch == '/' && stream.eat('*')) {\n          state.tokenize = tokenBlockComment;\n        }\n        // TWO SYMBOL TOKENS\n        else if(isDoubleOperatorChar.test(ch+stream.peek())) {\n          stream.next();\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // SINGLE SYMBOL TOKENS\n        else if(isSingleOperatorChar.test(ch)) {\n          state.tokenize = null;\n          return \"operator\";\n        }\n        // IDENT\n        else if(isNonDigit.test(ch)) {\n          state.tokenize = tokenIdent;\n        }\n        // Q-IDENT\n        else if(ch == \"'\" && stream.peek() && stream.peek() != \"'\") {\n          state.tokenize = tokenQIdent;\n        }\n        // STRING\n        else if(ch == '\"') {\n          state.tokenize = tokenString;\n        }\n        // UNSIGNED_NUBER\n        else if(isDigit.test(ch)) {\n          state.tokenize = tokenUnsignedNuber;\n        }\n        // ERROR\n        else {\n          state.tokenize = null;\n          return \"error\";\n        }\n\n        return state.tokenize(stream, state);\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != null) return CodeMirror.Pass;\n\n        var level = state.level;\n        if(/(algorithm)/.test(textAfter)) level--;\n        if(/(equation)/.test(textAfter)) level--;\n        if(/(initial algorithm)/.test(textAfter)) level--;\n        if(/(initial equation)/.test(textAfter)) level--;\n        if(/(end)/.test(textAfter)) level--;\n\n        if(level > 0)\n          return indentUnit*level;\n        else\n          return 0;\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\"\n    };\n  });\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i=0; i<words.length; ++i)\n      obj[words[i]] = true;\n    return obj;\n  }\n\n  var modelicaKeywords = \"algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within\";\n  var modelicaBuiltin = \"abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh\";\n  var modelicaAtoms = \"Real Boolean Integer String\";\n\n  function def(mimes, mode) {\n    if (typeof mimes == \"string\")\n      mimes = [mimes];\n\n    var words = [];\n\n    function add(obj) {\n      if (obj)\n        for (var prop in obj)\n          if (obj.hasOwnProperty(prop))\n            words.push(prop);\n    }\n\n    add(mode.keywords);\n    add(mode.builtin);\n    add(mode.atoms);\n\n    if (words.length) {\n      mode.helperType = mimes[0];\n      CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n    }\n\n    for (var i=0; i<mimes.length; ++i)\n      CodeMirror.defineMIME(mimes[i], mode);\n  }\n\n  def([\"text/x-modelica\"], {\n    name: \"modelica\",\n    keywords: words(modelicaKeywords),\n    builtin: words(modelicaBuiltin),\n    atoms: words(modelicaAtoms)\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/nginx/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: NGINX mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"nginx.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n    <link rel=\"stylesheet\" href=\"../../doc/docs.css\">\n  </head>\n\n  <style>\n    body {\n      margin: 0em auto;\n    }\n\n    .CodeMirror, .CodeMirror-scroll {\n      height: 600px;\n    }\n  </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">NGINX</a>\n  </ul>\n</div>\n\n<article>\n<h2>NGINX mode</h2>\n<form><textarea id=\"code\" name=\"code\" style=\"height: 800px;\">\nserver {\n  listen 173.255.219.235:80;\n  server_name website.com.au;\n  rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n  listen 173.255.219.235:443;\n  server_name website.com.au;\n  rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n\n  listen      173.255.219.235:80;\n  server_name www.website.com.au;\n\n\n\n  root        /data/www;\n  index       index.html index.php;\n\n  location / {\n    index index.html index.php;     ## Allow a static html file to be shown first\n    try_files $uri $uri/ @handler;  ## If missing pass the URI to Magento's front handler\n    expires 30d;                    ## Assume all files are cachable\n  }\n\n  ## These locations would be hidden by .htaccess normally\n  location /app/                { deny all; }\n  location /includes/           { deny all; }\n  location /lib/                { deny all; }\n  location /media/downloadable/ { deny all; }\n  location /pkginfo/            { deny all; }\n  location /report/config.xml   { deny all; }\n  location /var/                { deny all; }\n\n  location /var/export/ { ## Allow admins only to view export folder\n    auth_basic           \"Restricted\"; ## Message shown in login window\n    auth_basic_user_file /rs/passwords/testfile; ## See /etc/nginx/htpassword\n    autoindex            on;\n  }\n\n  location  /. { ## Disable .htaccess and other hidden files\n    return 404;\n  }\n\n  location @handler { ## Magento uses a common front handler\n    rewrite / /index.php;\n  }\n\n  location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n    rewrite ^/(.*.php)/ /$1 last;\n  }\n\n  location ~ \\.php$ {\n    if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss\n\n    fastcgi_pass   127.0.0.1:9000;\n    fastcgi_index  index.php;\n    fastcgi_param PATH_INFO $fastcgi_script_name;\n    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include        /rs/confs/nginx/fastcgi_params;\n  }\n\n}\n\n\nserver {\n\n  listen              173.255.219.235:443;\n  server_name         website.com.au www.website.com.au;\n\n  root   /data/www;\n  index index.html index.php;\n\n  ssl                 on;\n  ssl_certificate     /rs/ssl/ssl.crt;\n  ssl_certificate_key /rs/ssl/ssl.key;\n\n  ssl_session_timeout  5m;\n\n  ssl_protocols  SSLv2 SSLv3 TLSv1;\n  ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n  ssl_prefer_server_ciphers   on;\n\n\n\n  location / {\n    index index.html index.php; ## Allow a static html file to be shown first\n    try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler\n    expires 30d; ## Assume all files are cachable\n  }\n\n  ## These locations would be hidden by .htaccess normally\n  location /app/                { deny all; }\n  location /includes/           { deny all; }\n  location /lib/                { deny all; }\n  location /media/downloadable/ { deny all; }\n  location /pkginfo/            { deny all; }\n  location /report/config.xml   { deny all; }\n  location /var/                { deny all; }\n\n  location /var/export/ { ## Allow admins only to view export folder\n    auth_basic           \"Restricted\"; ## Message shown in login window\n    auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword\n    autoindex            on;\n  }\n\n  location  /. { ## Disable .htaccess and other hidden files\n    return 404;\n  }\n\n  location @handler { ## Magento uses a common front handler\n    rewrite / /index.php;\n  }\n\n  location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n    rewrite ^/(.*.php)/ /$1 last;\n  }\n\n  location ~ .php$ { ## Execute PHP scripts\n    if (!-e $request_filename) { rewrite  /index.php last; } ## Catch 404s that try_files miss\n\n    fastcgi_pass 127.0.0.1:9000;\n    fastcgi_index  index.php;\n    fastcgi_param PATH_INFO $fastcgi_script_name;\n    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include        /rs/confs/nginx/fastcgi_params;\n\n    fastcgi_param HTTPS on;\n  }\n\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/nginx</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/nginx/nginx.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"nginx\", function(config) {\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\n    /* ngxDirectiveControl */ \"break return rewrite set\" +\n    /* ngxDirective */ \" accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23\"\n    );\n\n  var keywords_block = words(\n    /* ngxDirectiveBlock */ \"http mail events server types location upstream charset_map limit_except if geo map\"\n    );\n\n  var keywords_important = words(\n    /* ngxDirectiveImportant */ \"include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files\"\n    );\n\n  var indentUnit = config.indentUnit, type;\n  function ret(style, tp) {type = tp; return style;}\n\n  function tokenBase(stream, state) {\n\n\n    stream.eatWhile(/[\\w\\$_]/);\n\n    var cur = stream.current();\n\n\n    if (keywords.propertyIsEnumerable(cur)) {\n      return \"keyword\";\n    }\n    else if (keywords_block.propertyIsEnumerable(cur)) {\n      return \"variable-2\";\n    }\n    else if (keywords_important.propertyIsEnumerable(cur)) {\n      return \"string-2\";\n    }\n    /**/\n\n    var ch = stream.next();\n    if (ch == \"@\") {stream.eatWhile(/[\\w\\\\\\-]/); return ret(\"meta\", stream.current());}\n    else if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n    else if (ch == \"<\" && stream.eat(\"!\")) {\n      state.tokenize = tokenSGMLComment;\n      return tokenSGMLComment(stream, state);\n    }\n    else if (ch == \"=\") ret(null, \"compare\");\n    else if ((ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) return ret(null, \"compare\");\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return ret(\"comment\", \"comment\");\n    }\n    else if (ch == \"!\") {\n      stream.match(/^\\s*\\w*/);\n      return ret(\"keyword\", \"important\");\n    }\n    else if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w.%]/);\n      return ret(\"number\", \"unit\");\n    }\n    else if (/[,.+>*\\/]/.test(ch)) {\n      return ret(null, \"select-op\");\n    }\n    else if (/[;{}:\\[\\]]/.test(ch)) {\n      return ret(null, ch);\n    }\n    else {\n      stream.eatWhile(/[\\w\\\\\\-]/);\n      return ret(\"variable\", \"variable\");\n    }\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenSGMLComment(stream, state) {\n    var dashes = 0, ch;\n    while ((ch = stream.next()) != null) {\n      if (dashes >= 2 && ch == \">\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      dashes = (ch == \"-\") ? dashes + 1 : 0;\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              stack: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n\n      var context = state.stack[state.stack.length-1];\n      if (type == \"hash\" && context == \"rule\") style = \"atom\";\n      else if (style == \"variable\") {\n        if (context == \"rule\") style = \"number\";\n        else if (!context || context == \"@media{\") style = \"tag\";\n      }\n\n      if (context == \"rule\" && /^[\\{\\};]$/.test(type))\n        state.stack.pop();\n      if (type == \"{\") {\n        if (context == \"@media\") state.stack[state.stack.length-1] = \"@media{\";\n        else state.stack.push(\"{\");\n      }\n      else if (type == \"}\") state.stack.pop();\n      else if (type == \"@media\") state.stack.push(\"@media\");\n      else if (context == \"{\" && type != \"comment\") state.stack.push(\"rule\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var n = state.stack.length;\n      if (/^\\}/.test(textAfter))\n        n -= state.stack[state.stack.length-1] == \"rule\" ? 2 : 1;\n      return state.baseIndent + n * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/nginx\", \"text/x-nginx-conf\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ntriples/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: NTriples mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"ntriples.js\"></script>\n<style type=\"text/css\">\n      .CodeMirror {\n        border: 1px solid #eee;\n      }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">NTriples</a>\n  </ul>\n</div>\n\n<article>\n<h2>NTriples mode</h2>\n<form>\n<textarea id=\"ntriples\" name=\"ntriples\">    \n<http://Sub1>     <http://pred1>     <http://obj> .\n<http://Sub2>     <http://pred2#an2> \"literal 1\" .\n<http://Sub3#an3> <http://pred3>     _:bnode3 .\n_:bnode4          <http://pred4>     \"literal 2\"@lang .\n_:bnode5          <http://pred5>     \"literal 3\"^^<http://type> .\n</textarea>\n</form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"ntriples\"), {});\n    </script>\n    <p><strong>MIME types defined:</strong> <code>text/n-triples</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ntriples/ntriples.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**********************************************************\n* This script provides syntax highlighting support for\n* the Ntriples format.\n* Ntriples format specification:\n*     http://www.w3.org/TR/rdf-testcases/#ntriples\n***********************************************************/\n\n/*\n    The following expression defines the defined ASF grammar transitions.\n\n    pre_subject ->\n        {\n        ( writing_subject_uri | writing_bnode_uri )\n            -> pre_predicate\n                -> writing_predicate_uri\n                    -> pre_object\n                        -> writing_object_uri | writing_object_bnode |\n                          (\n                            writing_object_literal\n                                -> writing_literal_lang | writing_literal_type\n                          )\n                            -> post_object\n                                -> BEGIN\n         } otherwise {\n             -> ERROR\n         }\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ntriples\", function() {\n\n  var Location = {\n    PRE_SUBJECT         : 0,\n    WRITING_SUB_URI     : 1,\n    WRITING_BNODE_URI   : 2,\n    PRE_PRED            : 3,\n    WRITING_PRED_URI    : 4,\n    PRE_OBJ             : 5,\n    WRITING_OBJ_URI     : 6,\n    WRITING_OBJ_BNODE   : 7,\n    WRITING_OBJ_LITERAL : 8,\n    WRITING_LIT_LANG    : 9,\n    WRITING_LIT_TYPE    : 10,\n    POST_OBJ            : 11,\n    ERROR               : 12\n  };\n  function transitState(currState, c) {\n    var currLocation = currState.location;\n    var ret;\n\n    // Opening.\n    if     (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI;\n    else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI;\n    else if(currLocation == Location.PRE_PRED    && c == '<') ret = Location.WRITING_PRED_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '<') ret = Location.WRITING_OBJ_URI;\n    else if(currLocation == Location.PRE_OBJ     && c == '_') ret = Location.WRITING_OBJ_BNODE;\n    else if(currLocation == Location.PRE_OBJ     && c == '\"') ret = Location.WRITING_OBJ_LITERAL;\n\n    // Closing.\n    else if(currLocation == Location.WRITING_SUB_URI     && c == '>') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_BNODE_URI   && c == ' ') ret = Location.PRE_PRED;\n    else if(currLocation == Location.WRITING_PRED_URI    && c == '>') ret = Location.PRE_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_URI     && c == '>') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_BNODE   && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '\"') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ;\n    else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ;\n\n    // Closing typed and language literal.\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG;\n    else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE;\n\n    // Spaces.\n    else if( c == ' ' &&\n             (\n               currLocation == Location.PRE_SUBJECT ||\n               currLocation == Location.PRE_PRED    ||\n               currLocation == Location.PRE_OBJ     ||\n               currLocation == Location.POST_OBJ\n             )\n           ) ret = currLocation;\n\n    // Reset.\n    else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT;\n\n    // Error\n    else ret = Location.ERROR;\n\n    currState.location=ret;\n  }\n\n  return {\n    startState: function() {\n       return {\n           location : Location.PRE_SUBJECT,\n           uris     : [],\n           anchors  : [],\n           bnodes   : [],\n           langs    : [],\n           types    : []\n       };\n    },\n    token: function(stream, state) {\n      var ch = stream.next();\n      if(ch == '<') {\n         transitState(state, ch);\n         var parsedURI = '';\n         stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} );\n         state.uris.push(parsedURI);\n         if( stream.match('#', false) ) return 'variable';\n         stream.next();\n         transitState(state, '>');\n         return 'variable';\n      }\n      if(ch == '#') {\n        var parsedAnchor = '';\n        stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;});\n        state.anchors.push(parsedAnchor);\n        return 'variable-2';\n      }\n      if(ch == '>') {\n          transitState(state, '>');\n          return 'variable';\n      }\n      if(ch == '_') {\n          transitState(state, ch);\n          var parsedBNode = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;});\n          state.bnodes.push(parsedBNode);\n          stream.next();\n          transitState(state, ' ');\n          return 'builtin';\n      }\n      if(ch == '\"') {\n          transitState(state, ch);\n          stream.eatWhile( function(c) { return c != '\"'; } );\n          stream.next();\n          if( stream.peek() != '@' && stream.peek() != '^' ) {\n              transitState(state, '\"');\n          }\n          return 'string';\n      }\n      if( ch == '@' ) {\n          transitState(state, '@');\n          var parsedLang = '';\n          stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;});\n          state.langs.push(parsedLang);\n          stream.next();\n          transitState(state, ' ');\n          return 'string-2';\n      }\n      if( ch == '^' ) {\n          stream.next();\n          transitState(state, '^');\n          var parsedType = '';\n          stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} );\n          state.types.push(parsedType);\n          stream.next();\n          transitState(state, '>');\n          return 'variable';\n      }\n      if( ch == ' ' ) {\n          transitState(state, ch);\n      }\n      if( ch == '.' ) {\n          transitState(state, ch);\n      }\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/n-triples\", \"ntriples\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/octave/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Octave mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"octave.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Octave</a>\n  </ul>\n</div>\n\n<article>\n<h2>Octave mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n%numbers\n[1234 1234i 1234j]\n[.234 .234j 2.23i]\n[23e2 12E1j 123D-4 0x234]\n\n%strings\n'asda''a'\n\"asda\"\"a\"\n\n%identifiers\na + as123 - __asd__\n\n%operators\n-\n+\n=\n==\n>\n<\n>=\n<=\n&\n~\n...\nbreak zeros default margin round ones rand\nceil floor size clear zeros eye mean std cov\nerror eval function\nabs acos atan asin cos cosh exp log prod sum\nlog10 max min sign sin sinh sqrt tan reshape\nreturn\ncase switch\nelse elseif end if otherwise\ndo for while\ntry catch\nclassdef properties events methods\nglobal persistent\n\n%one line comment\n%{ multi \nline commment %}\n\n    </textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"octave\",\n               version: 2,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-octave</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/octave/octave.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"octave\", function() {\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&|\\\\^~<>!@'\\\\\\\\]\");\n  var singleDelimiters = new RegExp('^[\\\\(\\\\[\\\\{\\\\},:=;]');\n  var doubleOperators = new RegExp(\"^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\\\.[\\\\+\\\\-\\\\*/\\\\^\\\\\\\\]))\");\n  var doubleDelimiters = new RegExp(\"^((!=)|(\\\\+=)|(\\\\-=)|(\\\\*=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n  var tripleDelimiters = new RegExp(\"^((>>=)|(<<=))\");\n  var expressionEnd = new RegExp(\"^[\\\\]\\\\)]\");\n  var identifiers = new RegExp(\"^[_A-Za-z\\xa1-\\uffff][_A-Za-z0-9\\xa1-\\uffff]*\");\n\n  var builtins = wordRegexp([\n    'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos',\n    'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh',\n    'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones',\n    'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov',\n    'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot',\n    'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str',\n    'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember'\n  ]);\n\n  var keywords = wordRegexp([\n    'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction',\n    'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events',\n    'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until',\n    'continue', 'pkg'\n  ]);\n\n\n  // tokenizers\n  function tokenTranspose(stream, state) {\n    if (!stream.sol() && stream.peek() === '\\'') {\n      stream.next();\n      state.tokenize = tokenBase;\n      return 'operator';\n    }\n    state.tokenize = tokenBase;\n    return tokenBase(stream, state);\n  }\n\n\n  function tokenComment(stream, state) {\n    if (stream.match(/^.*%}/)) {\n      state.tokenize = tokenBase;\n      return 'comment';\n    };\n    stream.skipToEnd();\n    return 'comment';\n  }\n\n  function tokenBase(stream, state) {\n    // whitespaces\n    if (stream.eatSpace()) return null;\n\n    // Handle one line Comments\n    if (stream.match('%{')){\n      state.tokenize = tokenComment;\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    if (stream.match(/^[%#]/)){\n      stream.skipToEnd();\n      return 'comment';\n    }\n\n    // Handle Number Literals\n    if (stream.match(/^[0-9\\.+-]/, false)) {\n      if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) {\n        stream.tokenize = tokenBase;\n        return 'number'; };\n      if (stream.match(/^[+-]?\\d*\\.\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n      if (stream.match(/^[+-]?\\d+([EeDd][+-]?\\d+)?[ij]?/)) { return 'number'; };\n    }\n    if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; };\n\n    // Handle Strings\n    if (stream.match(/^\"([^\"]|(\"\"))*\"/)) { return 'string'; } ;\n    if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ;\n\n    // Handle words\n    if (stream.match(keywords)) { return 'keyword'; } ;\n    if (stream.match(builtins)) { return 'builtin'; } ;\n    if (stream.match(identifiers)) { return 'variable'; } ;\n\n    if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; };\n    if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; };\n\n    if (stream.match(expressionEnd)) {\n      state.tokenize = tokenTranspose;\n      return null;\n    };\n\n\n    // Handle non-detected items\n    stream.next();\n    return 'error';\n  };\n\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      if (style === 'number' || style === 'variable'){\n        state.tokenize = tokenTranspose;\n      }\n      return style;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-octave\", \"octave\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pascal/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Pascal mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"pascal.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Pascal</a>\n  </ul>\n</div>\n\n<article>\n<h2>Pascal mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n(* Example Pascal code *)\n\nwhile a <> b do writeln('Waiting');\n \nif a > b then \n  writeln('Condition met')\nelse \n  writeln('Condition not met');\n \nfor i := 1 to 10 do \n  writeln('Iteration: ', i:1);\n \nrepeat\n  a := a + 1\nuntil a = 10;\n \ncase i of\n  0: write('zero');\n  1: write('one');\n  2: write('two')\nend;\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"text/x-pascal\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-pascal</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pascal/pascal.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pascal\", function() {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = words(\"and array begin case const div do downto else end file for forward integer \" +\n                       \"boolean char function goto if in label mod nil not of or packed procedure \" +\n                       \"program record repeat set string then to type until var while with\");\n  var atoms = {\"null\": true};\n\n  var isOperatorChar = /[+\\-*&%=<>!?|\\/]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == \"#\" && state.startOfLine) {\n      stream.skipToEnd();\n      return \"meta\";\n    }\n    if (ch == '\"' || ch == \"'\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"(\" && stream.eat(\"*\")) {\n      state.tokenize = tokenComment;\n      return tokenComment(stream, state);\n    }\n    if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n      return null;\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return \"number\";\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n    }\n    if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return \"operator\";\n    }\n    stream.eatWhile(/[\\w\\$_]/);\n    var cur = stream.current();\n    if (keywords.propertyIsEnumerable(cur)) return \"keyword\";\n    if (atoms.propertyIsEnumerable(cur)) return \"atom\";\n    return \"variable\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !escaped) state.tokenize = null;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        state.tokenize = null;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  // Interface\n\n  return {\n    startState: function() {\n      return {tokenize: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\") return style;\n      return style;\n    },\n\n    electricChars: \"{}\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-pascal\", \"pascal\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pegjs/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <title>CodeMirror: PEG.js Mode</title>\n    <meta charset=\"utf-8\"/>\n    <link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"../javascript/javascript.js\"></script>\n    <script src=\"pegjs.js\"></script>\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n  </head>\n  <body>\n    <div id=nav>\n      <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n      <ul>\n        <li><a href=\"../../index.html\">Home</a>\n        <li><a href=\"../../doc/manual.html\">Manual</a>\n        <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n      </ul>\n      <ul>\n        <li><a href=\"../index.html\">Language modes</a>\n        <li><a class=active href=\"#\">PEG.js Mode</a>\n      </ul>\n    </div>\n\n    <article>\n      <h2>PEG.js Mode</h2>\n      <form><textarea id=\"code\" name=\"code\">\n/*\n * Classic example grammar, which recognizes simple arithmetic expressions like\n * \"2*(3+4)\". The parser generated from this grammar then computes their value.\n */\n\nstart\n  = additive\n\nadditive\n  = left:multiplicative \"+\" right:additive { return left + right; }\n  / multiplicative\n\nmultiplicative\n  = left:primary \"*\" right:multiplicative { return left * right; }\n  / primary\n\nprimary\n  = integer\n  / \"(\" additive:additive \")\" { return additive; }\n\ninteger \"integer\"\n  = digits:[0-9]+ { return parseInt(digits.join(\"\"), 10); }\n\nletter = [a-z]+</textarea></form>\n      <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n          mode: {name: \"pegjs\"},\n          lineNumbers: true\n        });\n      </script>\n      <h3>The PEG.js Mode</h3>\n      <p> Created by Forbes Lindesay.</p>\n    </article>\n  </body>\n</html>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pegjs/pegjs.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../javascript/javascript\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pegjs\", function (config) {\n  var jsMode = CodeMirror.getMode(config, \"javascript\");\n\n  function identifier(stream) {\n    return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/);\n  }\n\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: null,\n        inComment: false,\n        inChracterClass: false,\n        braced: 0,\n        lhs: true,\n        localState: null\n      };\n    },\n    token: function (stream, state) {\n      if (stream)\n\n      //check for state changes\n      if (!state.inString && !state.inComment && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (!state.inString && !state.inComment && stream.match(/^\\/\\*/)) {\n        state.inComment = true;\n      }\n\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inComment) {\n        while (state.inComment && !stream.eol()) {\n          if (stream.match(/\\*\\//)) {\n            state.inComment = false; // Clear flag\n          } else {\n            stream.match(/^.[^\\*]*/);\n          }\n        }\n        return \"comment\";\n      } else if (state.inChracterClass) {\n          while (state.inChracterClass && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./))) {\n              state.inChracterClass = false;\n            }\n          }\n      } else if (stream.peek() === '[') {\n        stream.next();\n        state.inChracterClass = true;\n        return 'bracket';\n      } else if (stream.match(/^\\/\\//)) {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (state.braced || stream.peek() === '{') {\n        if (state.localState === null) {\n          state.localState = jsMode.startState();\n        }\n        var token = jsMode.token(stream, state.localState);\n        var text = stream.current();\n        if (!token) {\n          for (var i = 0; i < text.length; i++) {\n            if (text[i] === '{') {\n              state.braced++;\n            } else if (text[i] === '}') {\n              state.braced--;\n            }\n          };\n        }\n        return token;\n      } else if (identifier(stream)) {\n        if (stream.peek() === ':') {\n          return 'variable';\n        }\n        return 'variable-2';\n      } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) {\n        stream.next();\n        return 'bracket';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n}, \"javascript\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/perl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Perl mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"perl.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Perl</a>\n  </ul>\n</div>\n\n<article>\n<h2>Perl mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n#!/usr/bin/perl\n\nuse Something qw(func1 func2);\n\n# strings\nmy $s1 = qq'single line';\nour $s2 = q(multi-\n              line);\n\n=item Something\n\tExample.\n=cut\n\nmy $html=<<'HTML'\n<html>\n<title>hi!</title>\n</html>\nHTML\n\nprint \"first,\".join(',', 'second', qq~third~);\n\nif($s1 =~ m[(?<!\\s)(l.ne)\\z]o) {\n\t$h->{$1}=$$.' predefined variables';\n\t$s2 =~ s/\\-line//ox;\n\t$s1 =~ s[\n\t\t  line ]\n\t\t[\n\t\t  block\n\t\t]ox;\n}\n\n1; # numbers and comments\n\n__END__\nsomething...\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-perl</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/perl/perl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08)\n// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com)\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"perl\",function(){\n        // http://perldoc.perl.org\n        var PERL={                                      //   null - magic touch\n                                                        //   1 - keyword\n                                                        //   2 - def\n                                                        //   3 - atom\n                                                        //   4 - operator\n                                                        //   5 - variable-2 (predefined)\n                                                        //   [x,y] - x=1,2,3; y=must be defined if x{...}\n                                                //      PERL operators\n                '->'                            :   4,\n                '++'                            :   4,\n                '--'                            :   4,\n                '**'                            :   4,\n                                                        //   ! ~ \\ and unary + and -\n                '=~'                            :   4,\n                '!~'                            :   4,\n                '*'                             :   4,\n                '/'                             :   4,\n                '%'                             :   4,\n                'x'                             :   4,\n                '+'                             :   4,\n                '-'                             :   4,\n                '.'                             :   4,\n                '<<'                            :   4,\n                '>>'                            :   4,\n                                                        //   named unary operators\n                '<'                             :   4,\n                '>'                             :   4,\n                '<='                            :   4,\n                '>='                            :   4,\n                'lt'                            :   4,\n                'gt'                            :   4,\n                'le'                            :   4,\n                'ge'                            :   4,\n                '=='                            :   4,\n                '!='                            :   4,\n                '<=>'                           :   4,\n                'eq'                            :   4,\n                'ne'                            :   4,\n                'cmp'                           :   4,\n                '~~'                            :   4,\n                '&'                             :   4,\n                '|'                             :   4,\n                '^'                             :   4,\n                '&&'                            :   4,\n                '||'                            :   4,\n                '//'                            :   4,\n                '..'                            :   4,\n                '...'                           :   4,\n                '?'                             :   4,\n                ':'                             :   4,\n                '='                             :   4,\n                '+='                            :   4,\n                '-='                            :   4,\n                '*='                            :   4,  //   etc. ???\n                ','                             :   4,\n                '=>'                            :   4,\n                '::'                            :   4,\n                                                        //   list operators (rightward)\n                'not'                           :   4,\n                'and'                           :   4,\n                'or'                            :   4,\n                'xor'                           :   4,\n                                                //      PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;)\n                'BEGIN'                         :   [5,1],\n                'END'                           :   [5,1],\n                'PRINT'                         :   [5,1],\n                'PRINTF'                        :   [5,1],\n                'GETC'                          :   [5,1],\n                'READ'                          :   [5,1],\n                'READLINE'                      :   [5,1],\n                'DESTROY'                       :   [5,1],\n                'TIE'                           :   [5,1],\n                'TIEHANDLE'                     :   [5,1],\n                'UNTIE'                         :   [5,1],\n                'STDIN'                         :    5,\n                'STDIN_TOP'                     :    5,\n                'STDOUT'                        :    5,\n                'STDOUT_TOP'                    :    5,\n                'STDERR'                        :    5,\n                'STDERR_TOP'                    :    5,\n                '$ARG'                          :    5,\n                '$_'                            :    5,\n                '@ARG'                          :    5,\n                '@_'                            :    5,\n                '$LIST_SEPARATOR'               :    5,\n                '$\"'                            :    5,\n                '$PROCESS_ID'                   :    5,\n                '$PID'                          :    5,\n                '$$'                            :    5,\n                '$REAL_GROUP_ID'                :    5,\n                '$GID'                          :    5,\n                '$('                            :    5,\n                '$EFFECTIVE_GROUP_ID'           :    5,\n                '$EGID'                         :    5,\n                '$)'                            :    5,\n                '$PROGRAM_NAME'                 :    5,\n                '$0'                            :    5,\n                '$SUBSCRIPT_SEPARATOR'          :    5,\n                '$SUBSEP'                       :    5,\n                '$;'                            :    5,\n                '$REAL_USER_ID'                 :    5,\n                '$UID'                          :    5,\n                '$<'                            :    5,\n                '$EFFECTIVE_USER_ID'            :    5,\n                '$EUID'                         :    5,\n                '$>'                            :    5,\n                '$a'                            :    5,\n                '$b'                            :    5,\n                '$COMPILING'                    :    5,\n                '$^C'                           :    5,\n                '$DEBUGGING'                    :    5,\n                '$^D'                           :    5,\n                '${^ENCODING}'                  :    5,\n                '$ENV'                          :    5,\n                '%ENV'                          :    5,\n                '$SYSTEM_FD_MAX'                :    5,\n                '$^F'                           :    5,\n                '@F'                            :    5,\n                '${^GLOBAL_PHASE}'              :    5,\n                '$^H'                           :    5,\n                '%^H'                           :    5,\n                '@INC'                          :    5,\n                '%INC'                          :    5,\n                '$INPLACE_EDIT'                 :    5,\n                '$^I'                           :    5,\n                '$^M'                           :    5,\n                '$OSNAME'                       :    5,\n                '$^O'                           :    5,\n                '${^OPEN}'                      :    5,\n                '$PERLDB'                       :    5,\n                '$^P'                           :    5,\n                '$SIG'                          :    5,\n                '%SIG'                          :    5,\n                '$BASETIME'                     :    5,\n                '$^T'                           :    5,\n                '${^TAINT}'                     :    5,\n                '${^UNICODE}'                   :    5,\n                '${^UTF8CACHE}'                 :    5,\n                '${^UTF8LOCALE}'                :    5,\n                '$PERL_VERSION'                 :    5,\n                '$^V'                           :    5,\n                '${^WIN32_SLOPPY_STAT}'         :    5,\n                '$EXECUTABLE_NAME'              :    5,\n                '$^X'                           :    5,\n                '$1'                            :    5, // - regexp $1, $2...\n                '$MATCH'                        :    5,\n                '$&'                            :    5,\n                '${^MATCH}'                     :    5,\n                '$PREMATCH'                     :    5,\n                '$`'                            :    5,\n                '${^PREMATCH}'                  :    5,\n                '$POSTMATCH'                    :    5,\n                \"$'\"                            :    5,\n                '${^POSTMATCH}'                 :    5,\n                '$LAST_PAREN_MATCH'             :    5,\n                '$+'                            :    5,\n                '$LAST_SUBMATCH_RESULT'         :    5,\n                '$^N'                           :    5,\n                '@LAST_MATCH_END'               :    5,\n                '@+'                            :    5,\n                '%LAST_PAREN_MATCH'             :    5,\n                '%+'                            :    5,\n                '@LAST_MATCH_START'             :    5,\n                '@-'                            :    5,\n                '%LAST_MATCH_START'             :    5,\n                '%-'                            :    5,\n                '$LAST_REGEXP_CODE_RESULT'      :    5,\n                '$^R'                           :    5,\n                '${^RE_DEBUG_FLAGS}'            :    5,\n                '${^RE_TRIE_MAXBUF}'            :    5,\n                '$ARGV'                         :    5,\n                '@ARGV'                         :    5,\n                'ARGV'                          :    5,\n                'ARGVOUT'                       :    5,\n                '$OUTPUT_FIELD_SEPARATOR'       :    5,\n                '$OFS'                          :    5,\n                '$,'                            :    5,\n                '$INPUT_LINE_NUMBER'            :    5,\n                '$NR'                           :    5,\n                '$.'                            :    5,\n                '$INPUT_RECORD_SEPARATOR'       :    5,\n                '$RS'                           :    5,\n                '$/'                            :    5,\n                '$OUTPUT_RECORD_SEPARATOR'      :    5,\n                '$ORS'                          :    5,\n                '$\\\\'                           :    5,\n                '$OUTPUT_AUTOFLUSH'             :    5,\n                '$|'                            :    5,\n                '$ACCUMULATOR'                  :    5,\n                '$^A'                           :    5,\n                '$FORMAT_FORMFEED'              :    5,\n                '$^L'                           :    5,\n                '$FORMAT_PAGE_NUMBER'           :    5,\n                '$%'                            :    5,\n                '$FORMAT_LINES_LEFT'            :    5,\n                '$-'                            :    5,\n                '$FORMAT_LINE_BREAK_CHARACTERS' :    5,\n                '$:'                            :    5,\n                '$FORMAT_LINES_PER_PAGE'        :    5,\n                '$='                            :    5,\n                '$FORMAT_TOP_NAME'              :    5,\n                '$^'                            :    5,\n                '$FORMAT_NAME'                  :    5,\n                '$~'                            :    5,\n                '${^CHILD_ERROR_NATIVE}'        :    5,\n                '$EXTENDED_OS_ERROR'            :    5,\n                '$^E'                           :    5,\n                '$EXCEPTIONS_BEING_CAUGHT'      :    5,\n                '$^S'                           :    5,\n                '$WARNING'                      :    5,\n                '$^W'                           :    5,\n                '${^WARNING_BITS}'              :    5,\n                '$OS_ERROR'                     :    5,\n                '$ERRNO'                        :    5,\n                '$!'                            :    5,\n                '%OS_ERROR'                     :    5,\n                '%ERRNO'                        :    5,\n                '%!'                            :    5,\n                '$CHILD_ERROR'                  :    5,\n                '$?'                            :    5,\n                '$EVAL_ERROR'                   :    5,\n                '$@'                            :    5,\n                '$OFMT'                         :    5,\n                '$#'                            :    5,\n                '$*'                            :    5,\n                '$ARRAY_BASE'                   :    5,\n                '$['                            :    5,\n                '$OLD_PERL_VERSION'             :    5,\n                '$]'                            :    5,\n                                                //      PERL blocks\n                'if'                            :[1,1],\n                elsif                           :[1,1],\n                'else'                          :[1,1],\n                'while'                         :[1,1],\n                unless                          :[1,1],\n                'for'                           :[1,1],\n                foreach                         :[1,1],\n                                                //      PERL functions\n                'abs'                           :1,     // - absolute value function\n                accept                          :1,     // - accept an incoming socket connect\n                alarm                           :1,     // - schedule a SIGALRM\n                'atan2'                         :1,     // - arctangent of Y/X in the range -PI to PI\n                bind                            :1,     // - binds an address to a socket\n                binmode                         :1,     // - prepare binary files for I/O\n                bless                           :1,     // - create an object\n                bootstrap                       :1,     //\n                'break'                         :1,     // - break out of a \"given\" block\n                caller                          :1,     // - get context of the current subroutine call\n                chdir                           :1,     // - change your current working directory\n                chmod                           :1,     // - changes the permissions on a list of files\n                chomp                           :1,     // - remove a trailing record separator from a string\n                chop                            :1,     // - remove the last character from a string\n                chown                           :1,     // - change the owership on a list of files\n                chr                             :1,     // - get character this number represents\n                chroot                          :1,     // - make directory new root for path lookups\n                close                           :1,     // - close file (or pipe or socket) handle\n                closedir                        :1,     // - close directory handle\n                connect                         :1,     // - connect to a remote socket\n                'continue'                      :[1,1], // - optional trailing block in a while or foreach\n                'cos'                           :1,     // - cosine function\n                crypt                           :1,     // - one-way passwd-style encryption\n                dbmclose                        :1,     // - breaks binding on a tied dbm file\n                dbmopen                         :1,     // - create binding on a tied dbm file\n                'default'                       :1,     //\n                defined                         :1,     // - test whether a value, variable, or function is defined\n                'delete'                        :1,     // - deletes a value from a hash\n                die                             :1,     // - raise an exception or bail out\n                'do'                            :1,     // - turn a BLOCK into a TERM\n                dump                            :1,     // - create an immediate core dump\n                each                            :1,     // - retrieve the next key/value pair from a hash\n                endgrent                        :1,     // - be done using group file\n                endhostent                      :1,     // - be done using hosts file\n                endnetent                       :1,     // - be done using networks file\n                endprotoent                     :1,     // - be done using protocols file\n                endpwent                        :1,     // - be done using passwd file\n                endservent                      :1,     // - be done using services file\n                eof                             :1,     // - test a filehandle for its end\n                'eval'                          :1,     // - catch exceptions or compile and run code\n                'exec'                          :1,     // - abandon this program to run another\n                exists                          :1,     // - test whether a hash key is present\n                exit                            :1,     // - terminate this program\n                'exp'                           :1,     // - raise I to a power\n                fcntl                           :1,     // - file control system call\n                fileno                          :1,     // - return file descriptor from filehandle\n                flock                           :1,     // - lock an entire file with an advisory lock\n                fork                            :1,     // - create a new process just like this one\n                format                          :1,     // - declare a picture format with use by the write() function\n                formline                        :1,     // - internal function used for formats\n                getc                            :1,     // - get the next character from the filehandle\n                getgrent                        :1,     // - get next group record\n                getgrgid                        :1,     // - get group record given group user ID\n                getgrnam                        :1,     // - get group record given group name\n                gethostbyaddr                   :1,     // - get host record given its address\n                gethostbyname                   :1,     // - get host record given name\n                gethostent                      :1,     // - get next hosts record\n                getlogin                        :1,     // - return who logged in at this tty\n                getnetbyaddr                    :1,     // - get network record given its address\n                getnetbyname                    :1,     // - get networks record given name\n                getnetent                       :1,     // - get next networks record\n                getpeername                     :1,     // - find the other end of a socket connection\n                getpgrp                         :1,     // - get process group\n                getppid                         :1,     // - get parent process ID\n                getpriority                     :1,     // - get current nice value\n                getprotobyname                  :1,     // - get protocol record given name\n                getprotobynumber                :1,     // - get protocol record numeric protocol\n                getprotoent                     :1,     // - get next protocols record\n                getpwent                        :1,     // - get next passwd record\n                getpwnam                        :1,     // - get passwd record given user login name\n                getpwuid                        :1,     // - get passwd record given user ID\n                getservbyname                   :1,     // - get services record given its name\n                getservbyport                   :1,     // - get services record given numeric port\n                getservent                      :1,     // - get next services record\n                getsockname                     :1,     // - retrieve the sockaddr for a given socket\n                getsockopt                      :1,     // - get socket options on a given socket\n                given                           :1,     //\n                glob                            :1,     // - expand filenames using wildcards\n                gmtime                          :1,     // - convert UNIX time into record or string using Greenwich time\n                'goto'                          :1,     // - create spaghetti code\n                grep                            :1,     // - locate elements in a list test true against a given criterion\n                hex                             :1,     // - convert a string to a hexadecimal number\n                'import'                        :1,     // - patch a module's namespace into your own\n                index                           :1,     // - find a substring within a string\n                'int'                           :1,     // - get the integer portion of a number\n                ioctl                           :1,     // - system-dependent device control system call\n                'join'                          :1,     // - join a list into a string using a separator\n                keys                            :1,     // - retrieve list of indices from a hash\n                kill                            :1,     // - send a signal to a process or process group\n                last                            :1,     // - exit a block prematurely\n                lc                              :1,     // - return lower-case version of a string\n                lcfirst                         :1,     // - return a string with just the next letter in lower case\n                length                          :1,     // - return the number of bytes in a string\n                'link'                          :1,     // - create a hard link in the filesytem\n                listen                          :1,     // - register your socket as a server\n                local                           : 2,    // - create a temporary value for a global variable (dynamic scoping)\n                localtime                       :1,     // - convert UNIX time into record or string using local time\n                lock                            :1,     // - get a thread lock on a variable, subroutine, or method\n                'log'                           :1,     // - retrieve the natural logarithm for a number\n                lstat                           :1,     // - stat a symbolic link\n                m                               :null,  // - match a string with a regular expression pattern\n                map                             :1,     // - apply a change to a list to get back a new list with the changes\n                mkdir                           :1,     // - create a directory\n                msgctl                          :1,     // - SysV IPC message control operations\n                msgget                          :1,     // - get SysV IPC message queue\n                msgrcv                          :1,     // - receive a SysV IPC message from a message queue\n                msgsnd                          :1,     // - send a SysV IPC message to a message queue\n                my                              : 2,    // - declare and assign a local variable (lexical scoping)\n                'new'                           :1,     //\n                next                            :1,     // - iterate a block prematurely\n                no                              :1,     // - unimport some module symbols or semantics at compile time\n                oct                             :1,     // - convert a string to an octal number\n                open                            :1,     // - open a file, pipe, or descriptor\n                opendir                         :1,     // - open a directory\n                ord                             :1,     // - find a character's numeric representation\n                our                             : 2,    // - declare and assign a package variable (lexical scoping)\n                pack                            :1,     // - convert a list into a binary representation\n                'package'                       :1,     // - declare a separate global namespace\n                pipe                            :1,     // - open a pair of connected filehandles\n                pop                             :1,     // - remove the last element from an array and return it\n                pos                             :1,     // - find or set the offset for the last/next m//g search\n                print                           :1,     // - output a list to a filehandle\n                printf                          :1,     // - output a formatted list to a filehandle\n                prototype                       :1,     // - get the prototype (if any) of a subroutine\n                push                            :1,     // - append one or more elements to an array\n                q                               :null,  // - singly quote a string\n                qq                              :null,  // - doubly quote a string\n                qr                              :null,  // - Compile pattern\n                quotemeta                       :null,  // - quote regular expression magic characters\n                qw                              :null,  // - quote a list of words\n                qx                              :null,  // - backquote quote a string\n                rand                            :1,     // - retrieve the next pseudorandom number\n                read                            :1,     // - fixed-length buffered input from a filehandle\n                readdir                         :1,     // - get a directory from a directory handle\n                readline                        :1,     // - fetch a record from a file\n                readlink                        :1,     // - determine where a symbolic link is pointing\n                readpipe                        :1,     // - execute a system command and collect standard output\n                recv                            :1,     // - receive a message over a Socket\n                redo                            :1,     // - start this loop iteration over again\n                ref                             :1,     // - find out the type of thing being referenced\n                rename                          :1,     // - change a filename\n                require                         :1,     // - load in external functions from a library at runtime\n                reset                           :1,     // - clear all variables of a given name\n                'return'                        :1,     // - get out of a function early\n                reverse                         :1,     // - flip a string or a list\n                rewinddir                       :1,     // - reset directory handle\n                rindex                          :1,     // - right-to-left substring search\n                rmdir                           :1,     // - remove a directory\n                s                               :null,  // - replace a pattern with a string\n                say                             :1,     // - print with newline\n                scalar                          :1,     // - force a scalar context\n                seek                            :1,     // - reposition file pointer for random-access I/O\n                seekdir                         :1,     // - reposition directory pointer\n                select                          :1,     // - reset default output or do I/O multiplexing\n                semctl                          :1,     // - SysV semaphore control operations\n                semget                          :1,     // - get set of SysV semaphores\n                semop                           :1,     // - SysV semaphore operations\n                send                            :1,     // - send a message over a socket\n                setgrent                        :1,     // - prepare group file for use\n                sethostent                      :1,     // - prepare hosts file for use\n                setnetent                       :1,     // - prepare networks file for use\n                setpgrp                         :1,     // - set the process group of a process\n                setpriority                     :1,     // - set a process's nice value\n                setprotoent                     :1,     // - prepare protocols file for use\n                setpwent                        :1,     // - prepare passwd file for use\n                setservent                      :1,     // - prepare services file for use\n                setsockopt                      :1,     // - set some socket options\n                shift                           :1,     // - remove the first element of an array, and return it\n                shmctl                          :1,     // - SysV shared memory operations\n                shmget                          :1,     // - get SysV shared memory segment identifier\n                shmread                         :1,     // - read SysV shared memory\n                shmwrite                        :1,     // - write SysV shared memory\n                shutdown                        :1,     // - close down just half of a socket connection\n                'sin'                           :1,     // - return the sine of a number\n                sleep                           :1,     // - block for some number of seconds\n                socket                          :1,     // - create a socket\n                socketpair                      :1,     // - create a pair of sockets\n                'sort'                          :1,     // - sort a list of values\n                splice                          :1,     // - add or remove elements anywhere in an array\n                'split'                         :1,     // - split up a string using a regexp delimiter\n                sprintf                         :1,     // - formatted print into a string\n                'sqrt'                          :1,     // - square root function\n                srand                           :1,     // - seed the random number generator\n                stat                            :1,     // - get a file's status information\n                state                           :1,     // - declare and assign a state variable (persistent lexical scoping)\n                study                           :1,     // - optimize input data for repeated searches\n                'sub'                           :1,     // - declare a subroutine, possibly anonymously\n                'substr'                        :1,     // - get or alter a portion of a stirng\n                symlink                         :1,     // - create a symbolic link to a file\n                syscall                         :1,     // - execute an arbitrary system call\n                sysopen                         :1,     // - open a file, pipe, or descriptor\n                sysread                         :1,     // - fixed-length unbuffered input from a filehandle\n                sysseek                         :1,     // - position I/O pointer on handle used with sysread and syswrite\n                system                          :1,     // - run a separate program\n                syswrite                        :1,     // - fixed-length unbuffered output to a filehandle\n                tell                            :1,     // - get current seekpointer on a filehandle\n                telldir                         :1,     // - get current seekpointer on a directory handle\n                tie                             :1,     // - bind a variable to an object class\n                tied                            :1,     // - get a reference to the object underlying a tied variable\n                time                            :1,     // - return number of seconds since 1970\n                times                           :1,     // - return elapsed time for self and child processes\n                tr                              :null,  // - transliterate a string\n                truncate                        :1,     // - shorten a file\n                uc                              :1,     // - return upper-case version of a string\n                ucfirst                         :1,     // - return a string with just the next letter in upper case\n                umask                           :1,     // - set file creation mode mask\n                undef                           :1,     // - remove a variable or function definition\n                unlink                          :1,     // - remove one link to a file\n                unpack                          :1,     // - convert binary structure into normal perl variables\n                unshift                         :1,     // - prepend more elements to the beginning of a list\n                untie                           :1,     // - break a tie binding to a variable\n                use                             :1,     // - load in a module at compile time\n                utime                           :1,     // - set a file's last access and modify times\n                values                          :1,     // - return a list of the values in a hash\n                vec                             :1,     // - test or set particular bits in a string\n                wait                            :1,     // - wait for any child process to die\n                waitpid                         :1,     // - wait for a particular child process to die\n                wantarray                       :1,     // - get void vs scalar vs list context of current subroutine call\n                warn                            :1,     // - print debugging info\n                when                            :1,     //\n                write                           :1,     // - print a picture record\n                y                               :null}; // - transliterate a string\n\n        var RXstyle=\"string-2\";\n        var RXmodifiers=/[goseximacplud]/;              // NOTE: \"m\", \"s\", \"y\" and \"tr\" need to correct real modifiers for each regexp type\n\n        function tokenChain(stream,state,chain,style,tail){     // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;)\n                state.chain=null;                               //                                                          12   3tail\n                state.style=null;\n                state.tail=null;\n                state.tokenize=function(stream,state){\n                        var e=false,c,i=0;\n                        while(c=stream.next()){\n                                if(c===chain[i]&&!e){\n                                        if(chain[++i]!==undefined){\n                                                state.chain=chain[i];\n                                                state.style=style;\n                                                state.tail=tail;}\n                                        else if(tail)\n                                                stream.eatWhile(tail);\n                                        state.tokenize=tokenPerl;\n                                        return style;}\n                                e=!e&&c==\"\\\\\";}\n                        return style;};\n                return state.tokenize(stream,state);}\n\n        function tokenSOMETHING(stream,state,string){\n                state.tokenize=function(stream,state){\n                        if(stream.string==string)\n                                state.tokenize=tokenPerl;\n                        stream.skipToEnd();\n                        return \"string\";};\n                return state.tokenize(stream,state);}\n\n        function tokenPerl(stream,state){\n                if(stream.eatSpace())\n                        return null;\n                if(state.chain)\n                        return tokenChain(stream,state,state.chain,state.style,state.tail);\n                if(stream.match(/^\\-?[\\d\\.]/,false))\n                        if(stream.match(/^(\\-?(\\d*\\.\\d+(e[+-]?\\d+)?|\\d+\\.\\d*)|0x[\\da-fA-F]+|0b[01]+|\\d+(e[+-]?\\d+)?)/))\n                                return 'number';\n                if(stream.match(/^<<(?=\\w)/)){                  // NOTE: <<SOMETHING\\n...\\nSOMETHING\\n\n                        stream.eatWhile(/\\w/);\n                        return tokenSOMETHING(stream,state,stream.current().substr(2));}\n                if(stream.sol()&&stream.match(/^\\=item(?!\\w)/)){// NOTE: \\n=item...\\n=cut\\n\n                        return tokenSOMETHING(stream,state,'=cut');}\n                var ch=stream.next();\n                if(ch=='\"'||ch==\"'\"){                           // NOTE: ' or \" or <<'SOMETHING'\\n...\\nSOMETHING\\n or <<\"SOMETHING\"\\n...\\nSOMETHING\\n\n                        if(prefix(stream, 3)==\"<<\"+ch){\n                                var p=stream.pos;\n                                stream.eatWhile(/\\w/);\n                                var n=stream.current().substr(1);\n                                if(n&&stream.eat(ch))\n                                        return tokenSOMETHING(stream,state,n);\n                                stream.pos=p;}\n                        return tokenChain(stream,state,[ch],\"string\");}\n                if(ch==\"q\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=look(stream, 0);\n                                if(c==\"x\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(c==\"q\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}\n                                else if(c==\"w\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],\"bracket\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],\"bracket\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],\"bracket\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],\"bracket\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],\"bracket\");}}\n                                else if(c==\"r\"){\n                                        c=look(stream, 1);\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 2);\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}}\n                                else if(/[\\^'\"!~\\/(\\[{<]/.test(c)){\n                                        if(c==\"(\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\")\"],\"string\");}\n                                        if(c==\"[\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"]\"],\"string\");}\n                                        if(c==\"{\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\"}\"],\"string\");}\n                                        if(c==\"<\"){\n                                                eatSuffix(stream, 1);\n                                                return tokenChain(stream,state,[\">\"],\"string\");}\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[stream.eat(c)],\"string\");}}}}\n                if(ch==\"m\"){\n                        var c=look(stream, -2);\n                        if(!(c&&/\\w/.test(c))){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(/[\\^'\"!~\\/]/.test(c)){\n                                                return tokenChain(stream,state,[c],RXstyle,RXmodifiers);}\n                                        if(c==\"(\"){\n                                                return tokenChain(stream,state,[\")\"],RXstyle,RXmodifiers);}\n                                        if(c==\"[\"){\n                                                return tokenChain(stream,state,[\"]\"],RXstyle,RXmodifiers);}\n                                        if(c==\"{\"){\n                                                return tokenChain(stream,state,[\"}\"],RXstyle,RXmodifiers);}\n                                        if(c==\"<\"){\n                                                return tokenChain(stream,state,[\">\"],RXstyle,RXmodifiers);}}}}\n                if(ch==\"s\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"y\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}\n                if(ch==\"t\"){\n                        var c=/[\\/>\\]})\\w]/.test(look(stream, -2));\n                        if(!c){\n                                c=stream.eat(\"r\");if(c){\n                                c=stream.eat(/[(\\[{<\\^'\"!~\\/]/);\n                                if(c){\n                                        if(c==\"[\")\n                                                return tokenChain(stream,state,[\"]\",\"]\"],RXstyle,RXmodifiers);\n                                        if(c==\"{\")\n                                                return tokenChain(stream,state,[\"}\",\"}\"],RXstyle,RXmodifiers);\n                                        if(c==\"<\")\n                                                return tokenChain(stream,state,[\">\",\">\"],RXstyle,RXmodifiers);\n                                        if(c==\"(\")\n                                                return tokenChain(stream,state,[\")\",\")\"],RXstyle,RXmodifiers);\n                                        return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}}\n                if(ch==\"`\"){\n                        return tokenChain(stream,state,[ch],\"variable-2\");}\n                if(ch==\"/\"){\n                        if(!/~\\s*$/.test(prefix(stream)))\n                                return \"operator\";\n                        else\n                                return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);}\n                if(ch==\"$\"){\n                        var p=stream.pos;\n                        if(stream.eatWhile(/\\d/)||stream.eat(\"{\")&&stream.eatWhile(/\\d/)&&stream.eat(\"}\"))\n                                return \"variable-2\";\n                        else\n                                stream.pos=p;}\n                if(/[$@%]/.test(ch)){\n                        var p=stream.pos;\n                        if(stream.eat(\"^\")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\\\\-#?@;:&`~\\^!\\[\\]*'\"$+.,\\/<>()]/)){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";}\n                        stream.pos=p;}\n                if(/[$@%&]/.test(ch)){\n                        if(stream.eatWhile(/[\\w$\\[\\]]/)||stream.eat(\"{\")&&stream.eatWhile(/[\\w$\\[\\]]/)&&stream.eat(\"}\")){\n                                var c=stream.current();\n                                if(PERL[c])\n                                        return \"variable-2\";\n                                else\n                                        return \"variable\";}}\n                if(ch==\"#\"){\n                        if(look(stream, -2)!=\"$\"){\n                                stream.skipToEnd();\n                                return \"comment\";}}\n                if(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/.test(ch)){\n                        var p=stream.pos;\n                        stream.eatWhile(/[:+\\-\\^*$&%@=<>!?|\\/~\\.]/);\n                        if(PERL[stream.current()])\n                                return \"operator\";\n                        else\n                                stream.pos=p;}\n                if(ch==\"_\"){\n                        if(stream.pos==1){\n                                if(suffix(stream, 6)==\"_END__\"){\n                                        return tokenChain(stream,state,['\\0'],\"comment\");}\n                                else if(suffix(stream, 7)==\"_DATA__\"){\n                                        return tokenChain(stream,state,['\\0'],\"variable-2\");}\n                                else if(suffix(stream, 7)==\"_C__\"){\n                                        return tokenChain(stream,state,['\\0'],\"string\");}}}\n                if(/\\w/.test(ch)){\n                        var p=stream.pos;\n                        if(look(stream, -2)==\"{\"&&(look(stream, 0)==\"}\"||stream.eatWhile(/\\w/)&&look(stream, 0)==\"}\"))\n                                return \"string\";\n                        else\n                                stream.pos=p;}\n                if(/[A-Z]/.test(ch)){\n                        var l=look(stream, -2);\n                        var p=stream.pos;\n                        stream.eatWhile(/[A-Z_]/);\n                        if(/[\\da-z]/.test(look(stream, 0))){\n                                stream.pos=p;}\n                        else{\n                                var c=PERL[stream.current()];\n                                if(!c)\n                                        return \"meta\";\n                                if(c[1])\n                                        c=c[0];\n                                if(l!=\":\"){\n                                        if(c==1)\n                                                return \"keyword\";\n                                        else if(c==2)\n                                                return \"def\";\n                                        else if(c==3)\n                                                return \"atom\";\n                                        else if(c==4)\n                                                return \"operator\";\n                                        else if(c==5)\n                                                return \"variable-2\";\n                                        else\n                                                return \"meta\";}\n                                else\n                                        return \"meta\";}}\n                if(/[a-zA-Z_]/.test(ch)){\n                        var l=look(stream, -2);\n                        stream.eatWhile(/\\w/);\n                        var c=PERL[stream.current()];\n                        if(!c)\n                                return \"meta\";\n                        if(c[1])\n                                c=c[0];\n                        if(l!=\":\"){\n                                if(c==1)\n                                        return \"keyword\";\n                                else if(c==2)\n                                        return \"def\";\n                                else if(c==3)\n                                        return \"atom\";\n                                else if(c==4)\n                                        return \"operator\";\n                                else if(c==5)\n                                        return \"variable-2\";\n                                else\n                                        return \"meta\";}\n                        else\n                                return \"meta\";}\n                return null;}\n\n        return {\n            startState: function() {\n                return {\n                    tokenize: tokenPerl,\n                    chain: null,\n                    style: null,\n                    tail: null\n                };\n            },\n            token: function(stream, state) {\n                return (state.tokenize || tokenPerl)(stream, state);\n            },\n            lineComment: '#'\n        };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"perl\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/x-perl\", \"perl\");\n\n// it's like \"peek\", but need for look-ahead or look-behind if index < 0\nfunction look(stream, c){\n  return stream.string.charAt(stream.pos+(c||0));\n}\n\n// return a part of prefix of current stream from current position\nfunction prefix(stream, c){\n  if(c){\n    var x=stream.pos-c;\n    return stream.string.substr((x>=0?x:0),c);}\n  else{\n    return stream.string.substr(0,stream.pos-1);\n  }\n}\n\n// return a part of suffix of current stream from current position\nfunction suffix(stream, c){\n  var y=stream.string.length;\n  var x=y-stream.pos+1;\n  return stream.string.substr(stream.pos,(c&&c<y?c:x));\n}\n\n// eating and vomiting a part of stream from current position\nfunction eatSuffix(stream, c){\n  var x=stream.pos+c;\n  var y;\n  if(x<=0)\n    stream.pos=0;\n  else if(x>=(y=stream.string.length-1))\n    stream.pos=y;\n  else\n    stream.pos=x;\n}\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/php/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: PHP mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"../clike/clike.js\"></script>\n<script src=\"php.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">PHP</a>\n  </ul>\n</div>\n\n<article>\n<h2>PHP mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<?php\n$a = array('a' => 1, 'b' => 2, 3 => 'c');\n\necho \"$a[a] ${a[3] /* } comment */} {$a[b]} \\$a[a]\";\n\nfunction hello($who) {\n\treturn \"Hello $who!\";\n}\n?>\n<p>The program says <?= hello(\"World\") ?>.</p>\n<script>\n\talert(\"And here is some JS code\"); // also colored\n</script>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"application/x-httpd-php\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Simple HTML/PHP mode based on\n    the <a href=\"../clike/\">C-like</a> mode. Depends on XML,\n    JavaScript, CSS, HTMLMixed, and C-like modes.</p>\n\n    <p><strong>MIME types defined:</strong> <code>application/x-httpd-php</code> (HTML with PHP code), <code>text/x-php</code> (plain, non-wrapped PHP code).</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/php/php.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../clike/clike\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../clike/clike\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // Helper for stringWithEscapes\n  function matchSequence(list, end) {\n    if (list.length == 0) return stringWithEscapes(end);\n    return function (stream, state) {\n      var patterns = list[0];\n      for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {\n        state.tokenize = matchSequence(list.slice(1), end);\n        return patterns[i][1];\n      }\n      state.tokenize = stringWithEscapes(end);\n      return \"string\";\n    };\n  }\n  function stringWithEscapes(closing) {\n    return function(stream, state) { return stringWithEscapes_(stream, state, closing); };\n  }\n  function stringWithEscapes_(stream, state, closing) {\n    // \"Complex\" syntax\n    if (stream.match(\"${\", false) || stream.match(\"{$\", false)) {\n      state.tokenize = null;\n      return \"string\";\n    }\n\n    // Simple syntax\n    if (stream.match(/^\\$[a-zA-Z_][a-zA-Z0-9_]*/)) {\n      // After the variable name there may appear array or object operator.\n      if (stream.match(\"[\", false)) {\n        // Match array operator\n        state.tokenize = matchSequence([\n          [[\"[\", null]],\n          [[/\\d[\\w\\.]*/, \"number\"],\n           [/\\$[a-zA-Z_][a-zA-Z0-9_]*/, \"variable-2\"],\n           [/[\\w\\$]+/, \"variable\"]],\n          [[\"]\", null]]\n        ], closing);\n      }\n      if (stream.match(/\\-\\>\\w/, false)) {\n        // Match object operator\n        state.tokenize = matchSequence([\n          [[\"->\", null]],\n          [[/[\\w]+/, \"variable\"]]\n        ], closing);\n      }\n      return \"variable-2\";\n    }\n\n    var escaped = false;\n    // Normal string\n    while (!stream.eol() &&\n           (escaped || (!stream.match(\"{$\", false) &&\n                        !stream.match(/^(\\$[a-zA-Z_][a-zA-Z0-9_]*|\\$\\{)/, false)))) {\n      if (!escaped && stream.match(closing)) {\n        state.tokenize = null;\n        state.tokStack.pop(); state.tokStack.pop();\n        break;\n      }\n      escaped = stream.next() == \"\\\\\" && !escaped;\n    }\n    return \"string\";\n  }\n\n  var phpKeywords = \"abstract and array as break case catch class clone const continue declare default \" +\n    \"do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final \" +\n    \"for foreach function global goto if implements interface instanceof namespace \" +\n    \"new or private protected public static switch throw trait try use var while xor \" +\n    \"die echo empty exit eval include include_once isset list require require_once return \" +\n    \"print unset __halt_compiler self static parent yield insteadof finally\";\n  var phpAtoms = \"true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__\";\n  var phpBuiltin = \"func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count\";\n  CodeMirror.registerHelper(\"hintWords\", \"php\", [phpKeywords, phpAtoms, phpBuiltin].join(\" \").split(\" \"));\n  CodeMirror.registerHelper(\"wordChars\", \"php\", /[\\w$]/);\n\n  var phpConfig = {\n    name: \"clike\",\n    helperType: \"php\",\n    keywords: keywords(phpKeywords),\n    blockKeywords: keywords(\"catch do else elseif for foreach if switch try while finally\"),\n    atoms: keywords(phpAtoms),\n    builtin: keywords(phpBuiltin),\n    multiLineStrings: true,\n    hooks: {\n      \"$\": function(stream) {\n        stream.eatWhile(/[\\w\\$_]/);\n        return \"variable-2\";\n      },\n      \"<\": function(stream, state) {\n        if (stream.match(/<</)) {\n          stream.eatWhile(/[\\w\\.]/);\n          var delim = stream.current().slice(3);\n          if (delim) {\n            (state.tokStack || (state.tokStack = [])).push(delim, 0);\n            state.tokenize = stringWithEscapes(delim);\n            return \"string\";\n          }\n        }\n        return false;\n      },\n      \"#\": function(stream) {\n        while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n        return \"comment\";\n      },\n      \"/\": function(stream) {\n        if (stream.eat(\"/\")) {\n          while (!stream.eol() && !stream.match(\"?>\", false)) stream.next();\n          return \"comment\";\n        }\n        return false;\n      },\n      '\"': function(_stream, state) {\n        (state.tokStack || (state.tokStack = [])).push('\"', 0);\n        state.tokenize = stringWithEscapes('\"');\n        return \"string\";\n      },\n      \"{\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length)\n          state.tokStack[state.tokStack.length - 1]++;\n        return false;\n      },\n      \"}\": function(_stream, state) {\n        if (state.tokStack && state.tokStack.length > 0 &&\n            !--state.tokStack[state.tokStack.length - 1]) {\n          state.tokenize = stringWithEscapes(state.tokStack[state.tokStack.length - 2]);\n        }\n        return false;\n      }\n    }\n  };\n\n  CodeMirror.defineMode(\"php\", function(config, parserConfig) {\n    var htmlMode = CodeMirror.getMode(config, \"text/html\");\n    var phpMode = CodeMirror.getMode(config, phpConfig);\n\n    function dispatch(stream, state) {\n      var isPHP = state.curMode == phpMode;\n      if (stream.sol() && state.pending && state.pending != '\"' && state.pending != \"'\") state.pending = null;\n      if (!isPHP) {\n        if (stream.match(/^<\\?\\w*/)) {\n          state.curMode = phpMode;\n          state.curState = state.php;\n          return \"meta\";\n        }\n        if (state.pending == '\"' || state.pending == \"'\") {\n          while (!stream.eol() && stream.next() != state.pending) {}\n          var style = \"string\";\n        } else if (state.pending && stream.pos < state.pending.end) {\n          stream.pos = state.pending.end;\n          var style = state.pending.style;\n        } else {\n          var style = htmlMode.token(stream, state.curState);\n        }\n        if (state.pending) state.pending = null;\n        var cur = stream.current(), openPHP = cur.search(/<\\?/), m;\n        if (openPHP != -1) {\n          if (style == \"string\" && (m = cur.match(/[\\'\\\"]$/)) && !/\\?>/.test(cur)) state.pending = m[0];\n          else state.pending = {end: stream.pos, style: style};\n          stream.backUp(cur.length - openPHP);\n        }\n        return style;\n      } else if (isPHP && state.php.tokenize == null && stream.match(\"?>\")) {\n        state.curMode = htmlMode;\n        state.curState = state.html;\n        return \"meta\";\n      } else {\n        return phpMode.token(stream, state.curState);\n      }\n    }\n\n    return {\n      startState: function() {\n        var html = CodeMirror.startState(htmlMode), php = CodeMirror.startState(phpMode);\n        return {html: html,\n                php: php,\n                curMode: parserConfig.startOpen ? phpMode : htmlMode,\n                curState: parserConfig.startOpen ? php : html,\n                pending: null};\n      },\n\n      copyState: function(state) {\n        var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),\n            php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur;\n        if (state.curMode == htmlMode) cur = htmlNew;\n        else cur = phpNew;\n        return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,\n                pending: state.pending};\n      },\n\n      token: dispatch,\n\n      indent: function(state, textAfter) {\n        if ((state.curMode != phpMode && /^\\s*<\\//.test(textAfter)) ||\n            (state.curMode == phpMode && /^\\?>/.test(textAfter)))\n          return htmlMode.indent(state.html, textAfter);\n        return state.curMode.indent(state.curState, textAfter);\n      },\n\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      lineComment: \"//\",\n\n      innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }\n    };\n  }, \"htmlmixed\", \"clike\");\n\n  CodeMirror.defineMIME(\"application/x-httpd-php\", \"php\");\n  CodeMirror.defineMIME(\"application/x-httpd-php-open\", {name: \"php\", startOpen: true});\n  CodeMirror.defineMIME(\"text/x-php\", phpConfig);\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/php/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"php\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT('simple_test',\n     '[meta <?php] ' +\n     '[keyword echo] [string \"aaa\"]; ' +\n     '[meta ?>]');\n\n  MT('variable_interpolation_non_alphanumeric',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa$~$!$@$#$$$%$^$&$*$($)$.$<$>$/$\\\\$}$\\\\\\\"$:$;$?$|$[[$]]$+$=aaa\"]',\n     '[meta ?>]');\n\n  MT('variable_interpolation_digits',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa$1$2$3$4$5$6$7$8$9$0aaa\"]',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_1',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $aaa][string .aaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_2',\n     '[meta <?php]',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2]',         ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2345]',      ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[number 2.3]',       ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa\"];',\n     '[keyword echo] [string \"][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa\"];',\n\n     '[keyword echo] [string \"1aaa][variable-2 $aaaa][[','[number 2]',         ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[number 2345]',      ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[number 2.3]',       ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[variable aaaaa]',   ']][string aa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][[','[variable-2 $aaaaa]',']][string aa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_simple_syntax_3',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string .aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa][string ->][variable-2 $aaaaa][string .aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string [[2]].aaaaaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $aaaa]->[variable aaaaa][string ->aaaa2.aaaaaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_escaping',\n     '[meta <?php] [comment /* Escaping */]',\n     '[keyword echo] [string \"aaa\\\\$aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\$aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\$aaaa[[asd]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\$aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\$aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa{\\\\aaaaa[[asd]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa[[2]]aaa.aaa\"];',\n     '[keyword echo] [string \"aaa\\\\${aaaa[[asd]]aaa.aaa\"];',\n     '[meta ?>]');\n\n  MT('variable_interpolation_complex_syntax_1',\n     '[meta <?php]',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable aaaa]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable-2 $aaaa]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable-2 $aaaa][[','  [number 42]',']]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"aaa][variable-2 $]{[variable aaaa][meta ?>]aaaaaa');\n\n  MT('variable_interpolation_complex_syntax_2',\n     '[meta <?php] [comment /* Monsters */]',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*}?>} $aaa<?php } */]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*}?>*/][[','  [string \"aaa][variable-2 $aaa][string {}][variable-2 $]{[variable aaa]}[string \"]',']]}[string ->aaa.aaa\"];',\n     '[keyword echo] [string \"][variable-2 $]{[variable aaa][comment /*} } $aaa } */]}[string ->aaa.aaa\"];');\n\n\n  function build_recursive_monsters(nt, t, n){\n    var monsters = [t];\n    for (var i = 1; i <= n; ++i)\n      monsters[i] = nt.join(monsters[i - 1]);\n    return monsters;\n  }\n\n  var m1 = build_recursive_monsters(\n    ['[string \"][variable-2 $]{[variable aaa] [operator +] ', '}[string \"]'],\n    '[comment /* }?>} */] [string \"aaa][variable-2 $aaa][string .aaa\"]',\n    10\n  );\n\n  MT('variable_interpolation_complex_syntax_3_1',\n     '[meta <?php] [comment /* Recursive monsters */]',\n     '[keyword echo] ' + m1[4] + ';',\n     '[keyword echo] ' + m1[7] + ';',\n     '[keyword echo] ' + m1[8] + ';',\n     '[keyword echo] ' + m1[5] + ';',\n     '[keyword echo] ' + m1[1] + ';',\n     '[keyword echo] ' + m1[6] + ';',\n     '[keyword echo] ' + m1[9] + ';',\n     '[keyword echo] ' + m1[0] + ';',\n     '[keyword echo] ' + m1[10] + ';',\n     '[keyword echo] ' + m1[2] + ';',\n     '[keyword echo] ' + m1[3] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  var m2 = build_recursive_monsters(\n    ['[string \"a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', '}[string .a\"]'],\n    '[comment /* }?>{{ */] [string \"a?>}{{aa][variable-2 $aaa][string .a}a?>a\"]',\n    5\n  );\n\n  MT('variable_interpolation_complex_syntax_3_2',\n     '[meta <?php] [comment /* Recursive monsters 2 */]',\n     '[keyword echo] ' + m2[0] + ';',\n     '[keyword echo] ' + m2[1] + ';',\n     '[keyword echo] ' + m2[5] + ';',\n     '[keyword echo] ' + m2[4] + ';',\n     '[keyword echo] ' + m2[2] + ';',\n     '[keyword echo] ' + m2[3] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  function build_recursive_monsters_2(mf1, mf2, nt, t, n){\n    var monsters = [t];\n    for (var i = 1; i <= n; ++i)\n      monsters[i] = nt[0] + mf1[i - 1] + nt[1] + mf2[i - 1] + nt[2] + monsters[i - 1] + nt[3];\n    return monsters;\n  }\n\n  var m3 = build_recursive_monsters_2(\n    m1,\n    m2,\n    ['[string \"a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', ' [operator +] ', '}[string .a\"]'],\n    '[comment /* }?>{{ */] [string \"a?>}{{aa][variable-2 $aaa][string .a}a?>a\"]',\n    4\n  );\n\n  MT('variable_interpolation_complex_syntax_3_3',\n     '[meta <?php] [comment /* Recursive monsters 2 */]',\n     '[keyword echo] ' + m3[4] + ';',\n     '[keyword echo] ' + m3[0] + ';',\n     '[keyword echo] ' + m3[3] + ';',\n     '[keyword echo] ' + m3[1] + ';',\n     '[keyword echo] ' + m3[2] + ';',\n     '[keyword echo] [string \"end\"];',\n     '[meta ?>]');\n\n  MT(\"variable_interpolation_heredoc\",\n     \"[meta <?php]\",\n     \"[string <<<here]\",\n     \"[string doc ][variable-2 $]{[variable yay]}[string more]\",\n     \"[string here]; [comment // normal]\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pig/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Pig Latin mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"pig.js\"></script>\n<style>.CodeMirror {border: 2px inset #dee;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Pig Latin</a>\n  </ul>\n</div>\n\n<article>\n<h2>Pig Latin mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n-- Apache Pig (Pig Latin Language) Demo\n/* \nThis is a multiline comment.\n*/\na = LOAD \"\\path\\to\\input\" USING PigStorage('\\t') AS (x:long, y:chararray, z:bytearray);\nb = GROUP a BY (x,y,3+4);\nc = FOREACH b GENERATE flatten(group) as (x,y), SUM(group.$2) as z;\nSTORE c INTO \"\\path\\to\\output\";\n\n--\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        indentUnit: 4,\n        mode: \"text/x-pig\"\n      });\n    </script>\n\n    <p>\n        Simple mode that handles Pig Latin language.\n    </p>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-pig</code>\n    (PIG code)\n</html>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/pig/pig.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n *      Pig Latin Mode for CodeMirror 2\n *      @author Prasanth Jayachandran\n *      @link   https://github.com/prasanthj/pig-codemirror-2\n *  This implementation is adapted from PL/SQL mode in CodeMirror 2.\n */\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pig\", function(_config, parserConfig) {\n  var keywords = parserConfig.keywords,\n  builtins = parserConfig.builtins,\n  types = parserConfig.types,\n  multiLineStrings = parserConfig.multiLineStrings;\n\n  var isOperatorChar = /[*+\\-%<>=&?:\\/!|]/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  var type;\n  function ret(tp, style) {\n    type = tp;\n    return style;\n  }\n\n  function tokenComment(stream, state) {\n    var isEnd = false;\n    var ch;\n    while(ch = stream.next()) {\n      if(ch == \"/\" && isEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      isEnd = (ch == \"*\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true; break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return ret(\"string\", \"error\");\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // is a start of string?\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch));\n    // is it one of the special chars\n    else if(/[\\[\\]{}\\(\\),;\\.]/.test(ch))\n      return ret(ch);\n    // is it a number?\n    else if(/\\d/.test(ch)) {\n      stream.eatWhile(/[\\w\\.]/);\n      return ret(\"number\", \"number\");\n    }\n    // multi line comment or operator\n    else if (ch == \"/\") {\n      if (stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // single line comment or operator\n    else if (ch==\"-\") {\n      if(stream.eat(\"-\")){\n        stream.skipToEnd();\n        return ret(\"comment\", \"comment\");\n      }\n      else {\n        stream.eatWhile(isOperatorChar);\n        return ret(\"operator\", \"operator\");\n      }\n    }\n    // is it an operator\n    else if (isOperatorChar.test(ch)) {\n      stream.eatWhile(isOperatorChar);\n      return ret(\"operator\", \"operator\");\n    }\n    else {\n      // get the while word\n      stream.eatWhile(/[\\w\\$_]/);\n      // is it one of the listed keywords?\n      if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) {\n        if (stream.eat(\")\") || stream.eat(\".\")) {\n          //keywords can be used as variables like flatten(group), group.$0 etc..\n        }\n        else {\n          return (\"keyword\", \"keyword\");\n        }\n      }\n      // is it one of the builtin functions?\n      if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase()))\n      {\n        return (\"keyword\", \"variable-2\");\n      }\n      // is it one of the listed types?\n      if (types && types.propertyIsEnumerable(stream.current().toUpperCase()))\n        return (\"keyword\", \"variable-3\");\n      // default is a 'variable'\n      return ret(\"variable\", \"pig-word\");\n    }\n  }\n\n  // Interface\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        startOfLine: true\n      };\n    },\n\n    token: function(stream, state) {\n      if(stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    }\n  };\n});\n\n(function() {\n  function keywords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // builtin funcs taken from trunk revision 1303237\n  var pBuiltins = \"ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL \"\n    + \"CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS \"\n    + \"DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG \"\n    + \"FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN \"\n    + \"INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER \"\n    + \"ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS \"\n    + \"LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA  \"\n    + \"PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE \"\n    + \"SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG \"\n    + \"TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER \";\n\n  // taken from QueryLexer.g\n  var pKeywords = \"VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP \"\n    + \"JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL \"\n    + \"PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE \"\n    + \"SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE \"\n    + \"NEQ MATCHES TRUE FALSE DUMP\";\n\n  // data types\n  var pTypes = \"BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP \";\n\n  CodeMirror.defineMIME(\"text/x-pig\", {\n    name: \"pig\",\n    builtins: keywords(pBuiltins),\n    keywords: keywords(pKeywords),\n    types: keywords(pTypes)\n  });\n\n  CodeMirror.registerHelper(\"hintWords\", \"pig\", (pBuiltins + pTypes + pKeywords).split(\" \"));\n}());\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/properties/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Properties files mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"properties.js\"></script>\n<style>.CodeMirror {border-top: 1px solid #ddd; border-bottom: 1px solid #ddd;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Properties files</a>\n  </ul>\n</div>\n\n<article>\n<h2>Properties files mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# This is a properties file\na.key = A value\nanother.key = http://example.com\n! Exclamation mark as comment\nbut.not=Within ! A value # indeed\n   # Spaces at the beginning of a line\n   spaces.before.key=value\nbackslash=Used for multi\\\n          line entries,\\\n          that's convenient.\n# Unicode sequences\nunicode.key=This is \\u0020 Unicode\nno.multiline=here\n# Colons\ncolons : can be used too\n# Spaces\nspaces\\ in\\ keys=Not very common...\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-properties</code>,\n    <code>text/x-ini</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/properties/properties.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"properties\", function() {\n  return {\n    token: function(stream, state) {\n      var sol = stream.sol() || state.afterSection;\n      var eol = stream.eol();\n\n      state.afterSection = false;\n\n      if (sol) {\n        if (state.nextMultiline) {\n          state.inMultiline = true;\n          state.nextMultiline = false;\n        } else {\n          state.position = \"def\";\n        }\n      }\n\n      if (eol && ! state.nextMultiline) {\n        state.inMultiline = false;\n        state.position = \"def\";\n      }\n\n      if (sol) {\n        while(stream.eatSpace());\n      }\n\n      var ch = stream.next();\n\n      if (sol && (ch === \"#\" || ch === \"!\" || ch === \";\")) {\n        state.position = \"comment\";\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (sol && ch === \"[\") {\n        state.afterSection = true;\n        stream.skipTo(\"]\"); stream.eat(\"]\");\n        return \"header\";\n      } else if (ch === \"=\" || ch === \":\") {\n        state.position = \"quote\";\n        return null;\n      } else if (ch === \"\\\\\" && state.position === \"quote\") {\n        if (stream.next() !== \"u\") {    // u = Unicode sequence \\u1234\n          // Multiline value\n          state.nextMultiline = true;\n        }\n      }\n\n      return state.position;\n    },\n\n    startState: function() {\n      return {\n        position : \"def\",       // Current position, \"def\", \"quote\" or \"comment\"\n        nextMultiline : false,  // Is the next line multiline value\n        inMultiline : false,    // Is the current line a multiline value\n        afterSection : false    // Did we just open a section\n      };\n    }\n\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-properties\", \"properties\");\nCodeMirror.defineMIME(\"text/x-ini\", \"properties\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/puppet/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Puppet mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"puppet.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Puppet</a>\n  </ul>\n</div>\n\n<article>\n<h2>Puppet mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# == Class: automysqlbackup\n#\n# Puppet module to install AutoMySQLBackup for periodic MySQL backups.\n#\n# class { 'automysqlbackup':\n#   backup_dir => '/mnt/backups',\n# }\n#\n\nclass automysqlbackup (\n  $bin_dir = $automysqlbackup::params::bin_dir,\n  $etc_dir = $automysqlbackup::params::etc_dir,\n  $backup_dir = $automysqlbackup::params::backup_dir,\n  $install_multicore = undef,\n  $config = {},\n  $config_defaults = {},\n) inherits automysqlbackup::params {\n\n# Ensure valid paths are assigned\n  validate_absolute_path($bin_dir)\n  validate_absolute_path($etc_dir)\n  validate_absolute_path($backup_dir)\n\n# Create a subdirectory in /etc for config files\n  file { $etc_dir:\n    ensure => directory,\n    owner => 'root',\n    group => 'root',\n    mode => '0750',\n  }\n\n# Create an example backup file, useful for reference\n  file { \"${etc_dir}/automysqlbackup.conf.example\":\n    ensure => file,\n    owner => 'root',\n    group => 'root',\n    mode => '0660',\n    source => 'puppet:///modules/automysqlbackup/automysqlbackup.conf',\n  }\n\n# Add files from the developer\n  file { \"${etc_dir}/AMB_README\":\n    ensure => file,\n    source => 'puppet:///modules/automysqlbackup/AMB_README',\n  }\n  file { \"${etc_dir}/AMB_LICENSE\":\n    ensure => file,\n    source => 'puppet:///modules/automysqlbackup/AMB_LICENSE',\n  }\n\n# Install the actual binary file\n  file { \"${bin_dir}/automysqlbackup\":\n    ensure => file,\n    owner => 'root',\n    group => 'root',\n    mode => '0755',\n    source => 'puppet:///modules/automysqlbackup/automysqlbackup',\n  }\n\n# Create the base backup directory\n  file { $backup_dir:\n    ensure => directory,\n    owner => 'root',\n    group => 'root',\n    mode => '0755',\n  }\n\n# If you'd like to keep your config in hiera and pass it to this class\n  if !empty($config) {\n    create_resources('automysqlbackup::backup', $config, $config_defaults)\n  }\n\n# If using RedHat family, must have the RPMforge repo's enabled\n  if $install_multicore {\n    package { ['pigz', 'pbzip2']: ensure => installed }\n  }\n\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-puppet\",\n        matchBrackets: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-puppet</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/puppet/puppet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"puppet\", function () {\n  // Stores the words from the define method\n  var words = {};\n  // Taken, mostly, from the Puppet official variable standards regex\n  var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;\n\n  // Takes a string of words separated by spaces and adds them as\n  // keys with the value of the first argument 'style'\n  function define(style, string) {\n    var split = string.split(' ');\n    for (var i = 0; i < split.length; i++) {\n      words[split[i]] = style;\n    }\n  }\n\n  // Takes commonly known puppet types/words and classifies them to a style\n  define('keyword', 'class define site node include import inherits');\n  define('keyword', 'case if else in and elsif default or');\n  define('atom', 'false true running present absent file directory undef');\n  define('builtin', 'action augeas burst chain computer cron destination dport exec ' +\n    'file filebucket group host icmp iniface interface jump k5login limit log_level ' +\n    'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' +\n    'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' +\n    'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' +\n    'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' +\n    'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' +\n    'resources router schedule scheduled_task selboolean selmodule service source ' +\n    'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' +\n    'user vlan yumrepo zfs zone zpool');\n\n  // After finding a start of a string ('|\") this function attempts to find the end;\n  // If a variable is encountered along the way, we display it differently when it\n  // is encapsulated in a double-quoted string.\n  function tokenString(stream, state) {\n    var current, prev, found_var = false;\n    while (!stream.eol() && (current = stream.next()) != state.pending) {\n      if (current === '$' && prev != '\\\\' && state.pending == '\"') {\n        found_var = true;\n        break;\n      }\n      prev = current;\n    }\n    if (found_var) {\n      stream.backUp(1);\n    }\n    if (current == state.pending) {\n      state.continueString = false;\n    } else {\n      state.continueString = true;\n    }\n    return \"string\";\n  }\n\n  // Main function\n  function tokenize(stream, state) {\n    // Matches one whole word\n    var word = stream.match(/[\\w]+/, false);\n    // Matches attributes (i.e. ensure => present ; 'ensure' would be matched)\n    var attribute = stream.match(/(\\s+)?\\w+\\s+=>.*/, false);\n    // Matches non-builtin resource declarations\n    // (i.e. \"apache::vhost {\" or \"mycustomclasss {\" would be matched)\n    var resource = stream.match(/(\\s+)?[\\w:_]+(\\s+)?{/, false);\n    // Matches virtual and exported resources (i.e. @@user { ; and the like)\n    var special_resource = stream.match(/(\\s+)?[@]{1,2}[\\w:_]+(\\s+)?{/, false);\n\n    // Finally advance the stream\n    var ch = stream.next();\n\n    // Have we found a variable?\n    if (ch === '$') {\n      if (stream.match(variable_regex)) {\n        // If so, and its in a string, assign it a different color\n        return state.continueString ? 'variable-2' : 'variable';\n      }\n      // Otherwise return an invalid variable\n      return \"error\";\n    }\n    // Should we still be looking for the end of a string?\n    if (state.continueString) {\n      // If so, go through the loop again\n      stream.backUp(1);\n      return tokenString(stream, state);\n    }\n    // Are we in a definition (class, node, define)?\n    if (state.inDefinition) {\n      // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched)\n      if (stream.match(/(\\s+)?[\\w:_]+(\\s+)?/)) {\n        return 'def';\n      }\n      // Match the rest it the next time around\n      stream.match(/\\s+{/);\n      state.inDefinition = false;\n    }\n    // Are we in an 'include' statement?\n    if (state.inInclude) {\n      // Match and return the included class\n      stream.match(/(\\s+)?\\S+(\\s+)?/);\n      state.inInclude = false;\n      return 'def';\n    }\n    // Do we just have a function on our hands?\n    // In 'ensure_resource(\"myclass\")', 'ensure_resource' is matched\n    if (stream.match(/(\\s+)?\\w+\\(/)) {\n      stream.backUp(1);\n      return 'def';\n    }\n    // Have we matched the prior attribute regex?\n    if (attribute) {\n      stream.match(/(\\s+)?\\w+/);\n      return 'tag';\n    }\n    // Do we have Puppet specific words?\n    if (word && words.hasOwnProperty(word)) {\n      // Negates the initial next()\n      stream.backUp(1);\n      // Acutally move the stream\n      stream.match(/[\\w]+/);\n      // We want to process these words differently\n      // do to the importance they have in Puppet\n      if (stream.match(/\\s+\\S+\\s+{/, false)) {\n        state.inDefinition = true;\n      }\n      if (word == 'include') {\n        state.inInclude = true;\n      }\n      // Returns their value as state in the prior define methods\n      return words[word];\n    }\n    // Is there a match on a reference?\n    if (/(^|\\s+)[A-Z][\\w:_]+/.test(word)) {\n      // Negate the next()\n      stream.backUp(1);\n      // Match the full reference\n      stream.match(/(^|\\s+)[A-Z][\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior resource regex?\n    if (resource) {\n      stream.match(/(\\s+)?[\\w:_]+/);\n      return 'def';\n    }\n    // Have we matched the prior special_resource regex?\n    if (special_resource) {\n      stream.match(/(\\s+)?[@]{1,2}/);\n      return 'special';\n    }\n    // Match all the comments. All of them.\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    // Have we found a string?\n    if (ch == \"'\" || ch == '\"') {\n      // Store the type (single or double)\n      state.pending = ch;\n      // Perform the looping function to find the end\n      return tokenString(stream, state);\n    }\n    // Match all the brackets\n    if (ch == '{' || ch == '}') {\n      return 'bracket';\n    }\n    // Match characters that we are going to assume\n    // are trying to be regex\n    if (ch == '/') {\n      stream.match(/.*?\\//);\n      return 'variable-3';\n    }\n    // Match all the numbers\n    if (ch.match(/[0-9]/)) {\n      stream.eatWhile(/[0-9]+/);\n      return 'number';\n    }\n    // Match the '=' and '=>' operators\n    if (ch == '=') {\n      if (stream.peek() == '>') {\n          stream.next();\n      }\n      return \"operator\";\n    }\n    // Keep advancing through all the rest\n    stream.eatWhile(/[\\w-]/);\n    // Return a blank line for everything else\n    return null;\n  }\n  // Start it all\n  return {\n    startState: function () {\n      var state = {};\n      state.inDefinition = false;\n      state.inInclude = false;\n      state.continueString = false;\n      state.pending = false;\n      return state;\n    },\n    token: function (stream, state) {\n      // Strip the spaces, but regex will account for them eitherway\n      if (stream.eatSpace()) return null;\n      // Go through the main process\n      return tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-puppet\", \"puppet\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/python/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Python mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"python.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Python</a>\n  </ul>\n</div>\n\n<article>\n<h2>Python mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n# Literals\n1234\n0.0e101\n.123\n0b01010011100\n0o01234567\n0x0987654321abcdef\n7\n2147483647\n3L\n79228162514264337593543950336L\n0x100000000L\n79228162514264337593543950336\n0xdeadbeef\n3.14j\n10.j\n10j\n.001j\n1e100j\n3.14e-10j\n\n\n# String Literals\n'For\\''\n\"God\\\"\"\n\"\"\"so loved\nthe world\"\"\"\n'''that he gave\nhis only begotten\\' '''\n'that whosoever believeth \\\nin him'\n''\n\n# Identifiers\n__a__\na.b\na.b.c\n\n#Unicode identifiers on Python3\n# a = x\\ddot\na⃗ = ẍ\n# a = v\\dot\na⃗ = v̇\n\n#F\\vec = m \\cdot a\\vec\nF⃗ = m•a⃗ \n\n# Operators\n+ - * / % & | ^ ~ < >\n== != <= >= <> << >> // **\nand or not in is\n\n#infix matrix multiplication operator (PEP 465)\nA @ B\n\n# Delimiters\n() [] {} , : ` = ; @ .  # Note that @ and . require the proper context on Python 2.\n+= -= *= /= %= &= |= ^=\n//= >>= <<= **=\n\n# Keywords\nas assert break class continue def del elif else except\nfinally for from global if import lambda pass raise\nreturn try while with yield\n\n# Python 2 Keywords (otherwise Identifiers)\nexec print\n\n# Python 3 Keywords (otherwise Identifiers)\nnonlocal\n\n# Types\nbool classmethod complex dict enumerate float frozenset int list object\nproperty reversed set slice staticmethod str super tuple type\n\n# Python 2 Types (otherwise Identifiers)\nbasestring buffer file long unicode xrange\n\n# Python 3 Types (otherwise Identifiers)\nbytearray bytes filter map memoryview open range zip\n\n# Some Example code\nimport os\nfrom package import ParentClass\n\n@nonsenseDecorator\ndef doesNothing():\n    pass\n\nclass ExampleClass(ParentClass):\n    @staticmethod\n    def example(inputStr):\n        a = list(inputStr)\n        a.reverse()\n        return ''.join(a)\n\n    def __init__(self, mixin = 'Hello'):\n        self.mixin = mixin\n\n</textarea></div>\n\n\n<h2>Cython mode</h2>\n\n<div><textarea id=\"code-cython\" name=\"code-cython\">\n\nimport numpy as np\ncimport cython\nfrom libc.math cimport sqrt\n\n@cython.boundscheck(False)\n@cython.wraparound(False)\ndef pairwise_cython(double[:, ::1] X):\n    cdef int M = X.shape[0]\n    cdef int N = X.shape[1]\n    cdef double tmp, d\n    cdef double[:, ::1] D = np.empty((M, M), dtype=np.float64)\n    for i in range(M):\n        for j in range(M):\n            d = 0.0\n            for k in range(N):\n                tmp = X[i, k] - X[j, k]\n                d += tmp * tmp\n            D[i, j] = sqrt(d)\n    return np.asarray(D)\n\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"python\",\n               version: 3,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n    });\n\n    CodeMirror.fromTextArea(document.getElementById(\"code-cython\"), {\n        mode: {name: \"text/x-cython\",\n               version: 2,\n               singleLineStringErrors: false},\n        lineNumbers: true,\n        indentUnit: 4,\n        matchBrackets: true\n      });\n    </script>\n    <h2>Configuration Options for Python mode:</h2>\n    <ul>\n      <li>version - 2/3 - The version of Python to recognize.  Default is 2.</li>\n      <li>singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.</li>\n      <li>hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.</li>\n    </ul>\n    <h2>Advanced Configuration Options:</h2>\n    <p>Usefull for superset of python syntax like Enthought enaml, IPython magics and  questionmark help</p>\n    <ul>\n      <li>singleOperators - RegEx - Regular Expression for single operator matching,  default : <pre>^[\\\\+\\\\-\\\\*/%&amp;|\\\\^~&lt;&gt;!]</pre> including <pre>@</pre> on Python 3</li>\n      <li>singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :  <pre>^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]</pre></li>\n      <li>doubleOperators - RegEx - Regular Expression for double operators matching, default : <pre>^((==)|(!=)|(&lt;=)|(&gt;=)|(&lt;&gt;)|(&lt;&lt;)|(&gt;&gt;)|(//)|(\\\\*\\\\*))</pre></li>\n      <li>doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default : <pre>^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&amp;=)|(\\\\|=)|(\\\\^=))</pre></li>\n      <li>tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default : <pre>^((//=)|(&gt;&gt;=)|(&lt;&lt;=)|(\\\\*\\\\*=))</pre></li>\n      <li>identifiers - RegEx - Regular Expression for identifier, default : <pre>^[_A-Za-z][_A-Za-z0-9]*</pre> on Python 2 and <pre>^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*</pre> on Python 3.</li>\n      <li>extra_keywords - list of string - List of extra words ton consider as keywords</li>\n      <li>extra_builtins - list of string - List of extra words ton consider as builtins</li>\n    </ul>\n\n\n    <p><strong>MIME types defined:</strong> <code>text/x-python</code> and <code>text/x-cython</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/python/python.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  }\n\n  var wordOperators = wordRegexp([\"and\", \"or\", \"not\", \"is\"]);\n  var commonKeywords = [\"as\", \"assert\", \"break\", \"class\", \"continue\",\n                        \"def\", \"del\", \"elif\", \"else\", \"except\", \"finally\",\n                        \"for\", \"from\", \"global\", \"if\", \"import\",\n                        \"lambda\", \"pass\", \"raise\", \"return\",\n                        \"try\", \"while\", \"with\", \"yield\", \"in\"];\n  var commonBuiltins = [\"abs\", \"all\", \"any\", \"bin\", \"bool\", \"bytearray\", \"callable\", \"chr\",\n                        \"classmethod\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\",\n                        \"enumerate\", \"eval\", \"filter\", \"float\", \"format\", \"frozenset\",\n                        \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"hex\", \"id\",\n                        \"input\", \"int\", \"isinstance\", \"issubclass\", \"iter\", \"len\",\n                        \"list\", \"locals\", \"map\", \"max\", \"memoryview\", \"min\", \"next\",\n                        \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"property\", \"range\",\n                        \"repr\", \"reversed\", \"round\", \"set\", \"setattr\", \"slice\",\n                        \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\",\n                        \"type\", \"vars\", \"zip\", \"__import__\", \"NotImplemented\",\n                        \"Ellipsis\", \"__debug__\"];\n  var py2 = {builtins: [\"apply\", \"basestring\", \"buffer\", \"cmp\", \"coerce\", \"execfile\",\n                        \"file\", \"intern\", \"long\", \"raw_input\", \"reduce\", \"reload\",\n                        \"unichr\", \"unicode\", \"xrange\", \"False\", \"True\", \"None\"],\n             keywords: [\"exec\", \"print\"]};\n  var py3 = {builtins: [\"ascii\", \"bytes\", \"exec\", \"print\"],\n             keywords: [\"nonlocal\", \"False\", \"True\", \"None\"]};\n\n  CodeMirror.registerHelper(\"hintWords\", \"python\", commonKeywords.concat(commonBuiltins));\n\n  function top(state) {\n    return state.scopes[state.scopes.length - 1];\n  }\n\n  CodeMirror.defineMode(\"python\", function(conf, parserConf) {\n    var ERRORCLASS = \"error\";\n\n    var singleDelimiters = parserConf.singleDelimiters || new RegExp(\"^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]\");\n    var doubleOperators = parserConf.doubleOperators || new RegExp(\"^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n    var doubleDelimiters = parserConf.doubleDelimiters || new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n    var tripleDelimiters = parserConf.tripleDelimiters || new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n\n    if (parserConf.version && parseInt(parserConf.version, 10) == 3){\n        // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator\n        var singleOperators = parserConf.singleOperators || new RegExp(\"^[\\\\+\\\\-\\\\*/%&|\\\\^~<>!@]\");\n        var identifiers = parserConf.identifiers|| new RegExp(\"^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*\");\n    } else {\n        var singleOperators = parserConf.singleOperators || new RegExp(\"^[\\\\+\\\\-\\\\*/%&|\\\\^~<>!]\");\n        var identifiers = parserConf.identifiers|| new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n    }\n\n    var hangingIndent = parserConf.hangingIndent || conf.indentUnit;\n\n    var myKeywords = commonKeywords, myBuiltins = commonBuiltins;\n    if(parserConf.extra_keywords != undefined){\n      myKeywords = myKeywords.concat(parserConf.extra_keywords);\n    }\n    if(parserConf.extra_builtins != undefined){\n      myBuiltins = myBuiltins.concat(parserConf.extra_builtins);\n    }\n    if (parserConf.version && parseInt(parserConf.version, 10) == 3) {\n      myKeywords = myKeywords.concat(py3.keywords);\n      myBuiltins = myBuiltins.concat(py3.builtins);\n      var stringPrefixes = new RegExp(\"^(([rb]|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    } else {\n      myKeywords = myKeywords.concat(py2.keywords);\n      myBuiltins = myBuiltins.concat(py2.builtins);\n      var stringPrefixes = new RegExp(\"^(([rub]|(ur)|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n    }\n    var keywords = wordRegexp(myKeywords);\n    var builtins = wordRegexp(myBuiltins);\n\n    // tokenizers\n    function tokenBase(stream, state) {\n      // Handle scope changes\n      if (stream.sol() && top(state).type == \"py\") {\n        var scopeOffset = top(state).offset;\n        if (stream.eatSpace()) {\n          var lineOffset = stream.indentation();\n          if (lineOffset > scopeOffset)\n            pushScope(stream, state, \"py\");\n          else if (lineOffset < scopeOffset && dedent(stream, state))\n            state.errorToken = true;\n          return null;\n        } else {\n          var style = tokenBaseInner(stream, state);\n          if (scopeOffset > 0 && dedent(stream, state))\n            style += \" \" + ERRORCLASS;\n          return style;\n        }\n      }\n      return tokenBaseInner(stream, state);\n    }\n\n    function tokenBaseInner(stream, state) {\n      if (stream.eatSpace()) return null;\n\n      var ch = stream.peek();\n\n      // Handle Comments\n      if (ch == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Handle Number Literals\n      if (stream.match(/^[0-9\\.]/, false)) {\n        var floatLiteral = false;\n        // Floats\n        if (stream.match(/^\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n        if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n        if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n        if (floatLiteral) {\n          // Float literals may be \"imaginary\"\n          stream.eat(/J/i);\n          return \"number\";\n        }\n        // Integers\n        var intLiteral = false;\n        // Hex\n        if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true;\n        // Binary\n        if (stream.match(/^0b[01]+/i)) intLiteral = true;\n        // Octal\n        if (stream.match(/^0o[0-7]+/i)) intLiteral = true;\n        // Decimal\n        if (stream.match(/^[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n          // Decimal literals may be \"imaginary\"\n          stream.eat(/J/i);\n          // TODO - Can you have imaginary longs?\n          intLiteral = true;\n        }\n        // Zero by itself with no other piece of number.\n        if (stream.match(/^0(?![\\dx])/i)) intLiteral = true;\n        if (intLiteral) {\n          // Integer literals may be \"long\"\n          stream.eat(/L/i);\n          return \"number\";\n        }\n      }\n\n      // Handle Strings\n      if (stream.match(stringPrefixes)) {\n        state.tokenize = tokenStringFactory(stream.current());\n        return state.tokenize(stream, state);\n      }\n\n      // Handle operators and Delimiters\n      if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters))\n        return null;\n\n      if (stream.match(doubleOperators)\n          || stream.match(singleOperators)\n          || stream.match(wordOperators))\n        return \"operator\";\n\n      if (stream.match(singleDelimiters))\n        return null;\n\n      if (stream.match(keywords))\n        return \"keyword\";\n\n      if (stream.match(builtins))\n        return \"builtin\";\n\n      if (stream.match(/^(self|cls)\\b/))\n        return \"variable-2\";\n\n      if (stream.match(identifiers)) {\n        if (state.lastToken == \"def\" || state.lastToken == \"class\")\n          return \"def\";\n        return \"variable\";\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n      while (\"rub\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n        delimiter = delimiter.substr(1);\n\n      var singleline = delimiter.length == 1;\n      var OUTCLASS = \"string\";\n\n      function tokenString(stream, state) {\n        while (!stream.eol()) {\n          stream.eatWhile(/[^'\"\\\\]/);\n          if (stream.eat(\"\\\\\")) {\n            stream.next();\n            if (singleline && stream.eol())\n              return OUTCLASS;\n          } else if (stream.match(delimiter)) {\n            state.tokenize = tokenBase;\n            return OUTCLASS;\n          } else {\n            stream.eat(/['\"]/);\n          }\n        }\n        if (singleline) {\n          if (parserConf.singleLineStringErrors)\n            return ERRORCLASS;\n          else\n            state.tokenize = tokenBase;\n        }\n        return OUTCLASS;\n      }\n      tokenString.isString = true;\n      return tokenString;\n    }\n\n    function pushScope(stream, state, type) {\n      var offset = 0, align = null;\n      if (type == \"py\") {\n        while (top(state).type != \"py\")\n          state.scopes.pop();\n      }\n      offset = top(state).offset + (type == \"py\" ? conf.indentUnit : hangingIndent);\n      if (type != \"py\" && !stream.match(/^(\\s|#.*)*$/, false))\n        align = stream.column() + 1;\n      state.scopes.push({offset: offset, type: type, align: align});\n    }\n\n    function dedent(stream, state) {\n      var indented = stream.indentation();\n      while (top(state).offset > indented) {\n        if (top(state).type != \"py\") return true;\n        state.scopes.pop();\n      }\n      return top(state).offset != indented;\n    }\n\n    function tokenLexer(stream, state) {\n      var style = state.tokenize(stream, state);\n      var current = stream.current();\n\n      // Handle '.' connected identifiers\n      if (current == \".\") {\n        style = stream.match(identifiers, false) ? null : ERRORCLASS;\n        if (style == null && state.lastStyle == \"meta\") {\n          // Apply 'meta' style to '.' connected identifiers when\n          // appropriate.\n          style = \"meta\";\n        }\n        return style;\n      }\n\n      // Handle decorators\n      if (current == \"@\"){\n        if(parserConf.version && parseInt(parserConf.version, 10) == 3){\n            return stream.match(identifiers, false) ? \"meta\" : \"operator\";\n        } else {\n            return stream.match(identifiers, false) ? \"meta\" : ERRORCLASS;\n        }\n      }\n\n      if ((style == \"variable\" || style == \"builtin\")\n          && state.lastStyle == \"meta\")\n        style = \"meta\";\n\n      // Handle scope changes.\n      if (current == \"pass\" || current == \"return\")\n        state.dedent += 1;\n\n      if (current == \"lambda\") state.lambda = true;\n      if (current == \":\" && !state.lambda && top(state).type == \"py\")\n        pushScope(stream, state, \"py\");\n\n      var delimiter_index = current.length == 1 ? \"[({\".indexOf(current) : -1;\n      if (delimiter_index != -1)\n        pushScope(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n\n      delimiter_index = \"])}\".indexOf(current);\n      if (delimiter_index != -1) {\n        if (top(state).type == current) state.scopes.pop();\n        else return ERRORCLASS;\n      }\n      if (state.dedent > 0 && stream.eol() && top(state).type == \"py\") {\n        if (state.scopes.length > 1) state.scopes.pop();\n        state.dedent -= 1;\n      }\n\n      return style;\n    }\n\n    var external = {\n      startState: function(basecolumn) {\n        return {\n          tokenize: tokenBase,\n          scopes: [{offset: basecolumn || 0, type: \"py\", align: null}],\n          lastStyle: null,\n          lastToken: null,\n          lambda: false,\n          dedent: 0\n        };\n      },\n\n      token: function(stream, state) {\n        var addErr = state.errorToken;\n        if (addErr) state.errorToken = false;\n        var style = tokenLexer(stream, state);\n\n        state.lastStyle = style;\n\n        var current = stream.current();\n        if (current && style)\n          state.lastToken = current;\n\n        if (stream.eol() && state.lambda)\n          state.lambda = false;\n        return addErr ? style + \" \" + ERRORCLASS : style;\n      },\n\n      indent: function(state, textAfter) {\n        if (state.tokenize != tokenBase)\n          return state.tokenize.isString ? CodeMirror.Pass : 0;\n\n        var scope = top(state);\n        var closing = textAfter && textAfter.charAt(0) == scope.type;\n        if (scope.align != null)\n          return scope.align - (closing ? 1 : 0);\n        else if (closing && state.scopes.length > 1)\n          return state.scopes[state.scopes.length - 2].offset;\n        else\n          return scope.offset;\n      },\n\n      lineComment: \"#\",\n      fold: \"indent\"\n    };\n    return external;\n  });\n\n  CodeMirror.defineMIME(\"text/x-python\", \"python\");\n\n  var words = function(str) { return str.split(\" \"); };\n\n  CodeMirror.defineMIME(\"text/x-cython\", {\n    name: \"python\",\n    extra_keywords: words(\"by cdef cimport cpdef ctypedef enum except\"+\n                          \"extern gil include nogil property public\"+\n                          \"readonly struct union DEF IF ELIF ELSE\")\n  });\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/q/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Q mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"q.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Q</a>\n  </ul>\n</div>\n\n<article>\n<h2>Q mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n/ utilities to quickly load a csv file - for more exhaustive analysis of the csv contents see csvguess.q\n/ 2009.09.20 - updated to match latest csvguess.q \n\n/ .csv.colhdrs[file] - return a list of colhdrs from file\n/ info:.csv.info[file] - return a table of information about the file\n/ columns are: \n/\tc - column name; ci - column index; t - load type; mw - max width; \n/\tdchar - distinct characters in values; rule - rule that caught the type\n/\tmaybe - needs checking, _could_ be say a date, but perhaps just a float?\n/ .csv.info0[file;onlycols] - like .csv.info except that it only analyses <onlycols>\n/ example:\n/\tinfo:.csv.info0[file;(.csv.colhdrs file)like\"*price\"]\n/\tinfo:.csv.infolike[file;\"*price\"]\n/\tshow delete from info where t=\" \"\n/ .csv.data[file;info] - use the info from .csv.info to read the data\n/ .csv.data10[file;info] - like .csv.data but only returns the first 10 rows\n/ bulkload[file;info] - bulk loads file into table DATA (which must be already defined :: DATA:() )\n/ .csv.read[file]/read10[file] - for when you don't care about checking/tweaking the <info> before reading \n\n\\d .csv\nDELIM:\",\"\nZAPHDRS:0b / lowercase and remove _ from colhdrs (junk characters are always removed)\nWIDTHHDR:25000 / number of characters read to get the header\nREADLINES:222 / number of lines read and used to guess the types\nSYMMAXWIDTH:11 / character columns narrower than this are stored as symbols\nSYMMAXGR:10 / max symbol granularity% before we give up and keep as a * string\nFORCECHARWIDTH:30 / every field (of any type) with values this wide or more is forced to character \"*\"\nDISCARDEMPTY:0b / completely ignore empty columns if true else set them to \"C\"\nCHUNKSIZE:50000000 / used in fs2 (modified .Q.fs)\n\nk)nameltrim:{$[~@x;.z.s'x;~(*x)in aA:.Q.a,.Q.A;(+/&\\~x in aA)_x;x]}\nk)fs2:{[f;s]((-7!s)>){[f;s;x]i:1+last@&0xa=r:1:(s;x;CHUNKSIZE);f@`\\:i#r;x+i}[f;s]/0j}\ncleanhdrs:{{$[ZAPHDRS;lower x except\"_\";x]}x where x in DELIM,.Q.an}\ncancast:{nw:x$\"\";if[not x in\"BXCS\";nw:(min 0#;max 0#;::)@\\:nw];$[not any nw in x$(11&count y)#y;$[11<count y;not any nw in x$y;1b];0b]}\n\nread:{[file]data[file;info[file]]}  \nread10:{[file]data10[file;info[file]]}  \n\ncolhdrs:{[file]\n\t`$nameltrim DELIM vs cleanhdrs first read0(file;0;1+first where 0xa=read1(file;0;WIDTHHDR))}\ndata:{[file;info]\n\t(exec c from info where not t=\" \")xcol(exec t from info;enlist DELIM)0:file}\ndata10:{[file;info]\n\tdata[;info](file;0;1+last 11#where 0xa=read1(file;0;15*WIDTHHDR))}\ninfo0:{[file;onlycols]\n\tcolhdrs:`$nameltrim DELIM vs cleanhdrs first head:read0(file;0;1+last where 0xa=read1(file;0;WIDTHHDR));\n\tloadfmts:(count colhdrs)#\"S\";if[count onlycols;loadfmts[where not colhdrs in onlycols]:\"C\"];\n\tbreaks:where 0xa=read1(file;0;floor(10+READLINES)*WIDTHHDR%count head);\n\tnas:count as:colhdrs xcol(loadfmts;enlist DELIM)0:(file;0;1+last((1+READLINES)&count breaks)#breaks);\n\tinfo:([]c:key flip as;v:value flip as);as:();\n\treserved:key`.q;reserved,:.Q.res;reserved,:`i;\n\tinfo:update res:c in reserved from info;\n\tinfo:update ci:i,t:\"?\",ipa:0b,mdot:0,mw:0,rule:0,gr:0,ndv:0,maybe:0b,empty:0b,j10:0b,j12:0b from info;\n\tinfo:update ci:`s#ci from info;\n\tif[count onlycols;info:update t:\" \",rule:10 from info where not c in onlycols];\n\tinfo:update sdv:{string(distinct x)except`}peach v from info; \n\tinfo:update ndv:count each sdv from info;\n\tinfo:update gr:floor 0.5+100*ndv%nas,mw:{max count each x}peach sdv from info where 0<ndv;\n\tinfo:update t:\"*\",rule:20 from info where mw>.csv.FORCECHARWIDTH; / long values\n\tinfo:update t:\"C \"[.csv.DISCARDEMPTY],rule:30,empty:1b from info where t=\"?\",mw=0; / empty columns\n\tinfo:update dchar:{asc distinct raze x}peach sdv from info where t=\"?\";\n\tinfo:update mdot:{max sum each\".\"=x}peach sdv from info where t=\"?\",{\".\"in x}each dchar;\n\tinfo:update t:\"n\",rule:40 from info where t=\"?\",{any x in\"0123456789\"}each dchar; / vaguely numeric..\n\tinfo:update t:\"I\",rule:50,ipa:1b from info where t=\"n\",mw within 7 15,mdot=3,{all x in\".0123456789\"}each dchar,.csv.cancast[\"I\"]peach sdv; / ip-address\n\tinfo:update t:\"J\",rule:60 from info where t=\"n\",mdot=0,{all x in\"+-0123456789\"}each dchar,.csv.cancast[\"J\"]peach sdv;\n\tinfo:update t:\"I\",rule:70 from info where t=\"J\",mw<12,.csv.cancast[\"I\"]peach sdv;\n\tinfo:update t:\"H\",rule:80 from info where t=\"I\",mw<7,.csv.cancast[\"H\"]peach sdv;\n\tinfo:update t:\"F\",rule:90 from info where t=\"n\",mdot<2,mw>1,.csv.cancast[\"F\"]peach sdv;\n\tinfo:update t:\"E\",rule:100,maybe:1b from info where t=\"F\",mw<9;\n\tinfo:update t:\"M\",rule:110,maybe:1b from info where t in\"nIHEF\",mdot<2,mw within 4 7,.csv.cancast[\"M\"]peach sdv; \n\tinfo:update t:\"D\",rule:120,maybe:1b from info where t in\"nI\",mdot in 0 2,mw within 6 11,.csv.cancast[\"D\"]peach sdv; \n\tinfo:update t:\"V\",rule:130,maybe:1b from info where t=\"I\",mw in 5 6,7<count each dchar,{all x like\"*[0-9][0-5][0-9][0-5][0-9]\"}peach sdv,.csv.cancast[\"V\"]peach sdv; / 235959 12345        \n\tinfo:update t:\"U\",rule:140,maybe:1b from info where t=\"H\",mw in 3 4,7<count each dchar,{all x like\"*[0-9][0-5][0-9]\"}peach sdv,.csv.cancast[\"U\"]peach sdv; /2359\n\tinfo:update t:\"U\",rule:150,maybe:0b from info where t=\"n\",mw in 4 5,mdot=0,{all x like\"*[0-9]:[0-5][0-9]\"}peach sdv,.csv.cancast[\"U\"]peach sdv;\n\tinfo:update t:\"T\",rule:160,maybe:0b from info where t=\"n\",mw within 7 12,mdot<2,{all x like\"*[0-9]:[0-5][0-9]:[0-5][0-9]*\"}peach sdv,.csv.cancast[\"T\"]peach sdv;\n\tinfo:update t:\"V\",rule:170,maybe:0b from info where t=\"T\",mw in 7 8,mdot=0,.csv.cancast[\"V\"]peach sdv;\n\tinfo:update t:\"T\",rule:180,maybe:1b from info where t in\"EF\",mw within 7 10,mdot=1,{all x like\"*[0-9][0-5][0-9][0-5][0-9].*\"}peach sdv,.csv.cancast[\"T\"]peach sdv;\n\tinfo:update t:\"Z\",rule:190,maybe:0b from info where t=\"n\",mw within 11 24,mdot<4,.csv.cancast[\"Z\"]peach sdv;\n\tinfo:update t:\"P\",rule:200,maybe:1b from info where t=\"n\",mw within 12 29,mdot<4,{all x like\"[12]*\"}peach sdv,.csv.cancast[\"P\"]peach sdv;\n\tinfo:update t:\"N\",rule:210,maybe:1b from info where t=\"n\",mw within 3 28,mdot=1,.csv.cancast[\"N\"]peach sdv;\n\tinfo:update t:\"?\",rule:220,maybe:0b from info where t=\"n\"; / reset remaining maybe numeric\n\tinfo:update t:\"C\",rule:230,maybe:0b from info where t=\"?\",mw=1; / char\n\tinfo:update t:\"B\",rule:240,maybe:0b from info where t in\"HC\",mw=1,mdot=0,{$[all x in\"01tTfFyYnN\";(any\"0fFnN\"in x)and any\"1tTyY\"in x;0b]}each dchar; / boolean\n\tinfo:update t:\"B\",rule:250,maybe:1b from info where t in\"HC\",mw=1,mdot=0,{all x in\"01tTfFyYnN\"}each dchar; / boolean\n\tinfo:update t:\"X\",rule:260,maybe:0b from info where t=\"?\",mw=2,{$[all x in\"0123456789abcdefABCDEF\";(any .Q.n in x)and any\"abcdefABCDEF\"in x;0b]}each dchar; /hex\n\tinfo:update t:\"S\",rule:270,maybe:1b from info where t=\"?\",mw<.csv.SYMMAXWIDTH,mw>1,gr<.csv.SYMMAXGR; / symbols (max width permitting)\n\tinfo:update t:\"*\",rule:280,maybe:0b from info where t=\"?\"; / the rest as strings\n\t/ flag those S/* columns which could be encoded to integers (.Q.j10/x10/j12/x12) to avoid symbols\n\tinfo:update j12:1b from info where t in\"S*\",mw<13,{all x in .Q.nA}each dchar;\n\tinfo:update j10:1b from info where t in\"S*\",mw<11,{all x in .Q.b6}each dchar; \n\tselect c,ci,t,maybe,empty,res,j10,j12,ipa,mw,mdot,rule,gr,ndv,dchar from info}\ninfo:info0[;()] / by default don't restrict columns\ninfolike:{[file;pattern] info0[file;{x where x like y}[lower colhdrs[file];pattern]]} / .csv.infolike[file;\"*time\"]\n\n\\d .\n/ DATA:()\nbulkload:{[file;info]\n\tif[not`DATA in system\"v\";'`DATA.not.defined];\n\tif[count DATA;'`DATA.not.empty];\n\tloadhdrs:exec c from info where not t=\" \";loadfmts:exec t from info;\n\t.csv.fs2[{[file;loadhdrs;loadfmts] `DATA insert $[count DATA;flip loadhdrs!(loadfmts;.csv.DELIM)0:file;loadhdrs xcol(loadfmts;enlist .csv.DELIM)0:file]}[file;loadhdrs;loadfmts]];\n\tcount DATA}\n@[.:;\"\\\\l csvutil.custom.q\";::]; / save your custom settings in csvutil.custom.q to override those set at the beginning of the file \n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-q</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/q/q.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"q\",function(config){\n  var indentUnit=config.indentUnit,\n      curPunc,\n      keywords=buildRE([\"abs\",\"acos\",\"aj\",\"aj0\",\"all\",\"and\",\"any\",\"asc\",\"asin\",\"asof\",\"atan\",\"attr\",\"avg\",\"avgs\",\"bin\",\"by\",\"ceiling\",\"cols\",\"cor\",\"cos\",\"count\",\"cov\",\"cross\",\"csv\",\"cut\",\"delete\",\"deltas\",\"desc\",\"dev\",\"differ\",\"distinct\",\"div\",\"do\",\"each\",\"ej\",\"enlist\",\"eval\",\"except\",\"exec\",\"exit\",\"exp\",\"fby\",\"fills\",\"first\",\"fkeys\",\"flip\",\"floor\",\"from\",\"get\",\"getenv\",\"group\",\"gtime\",\"hclose\",\"hcount\",\"hdel\",\"hopen\",\"hsym\",\"iasc\",\"idesc\",\"if\",\"ij\",\"in\",\"insert\",\"inter\",\"inv\",\"key\",\"keys\",\"last\",\"like\",\"list\",\"lj\",\"load\",\"log\",\"lower\",\"lsq\",\"ltime\",\"ltrim\",\"mavg\",\"max\",\"maxs\",\"mcount\",\"md5\",\"mdev\",\"med\",\"meta\",\"min\",\"mins\",\"mmax\",\"mmin\",\"mmu\",\"mod\",\"msum\",\"neg\",\"next\",\"not\",\"null\",\"or\",\"over\",\"parse\",\"peach\",\"pj\",\"plist\",\"prd\",\"prds\",\"prev\",\"prior\",\"rand\",\"rank\",\"ratios\",\"raze\",\"read0\",\"read1\",\"reciprocal\",\"reverse\",\"rload\",\"rotate\",\"rsave\",\"rtrim\",\"save\",\"scan\",\"select\",\"set\",\"setenv\",\"show\",\"signum\",\"sin\",\"sqrt\",\"ss\",\"ssr\",\"string\",\"sublist\",\"sum\",\"sums\",\"sv\",\"system\",\"tables\",\"tan\",\"til\",\"trim\",\"txf\",\"type\",\"uj\",\"ungroup\",\"union\",\"update\",\"upper\",\"upsert\",\"value\",\"var\",\"view\",\"views\",\"vs\",\"wavg\",\"where\",\"where\",\"while\",\"within\",\"wj\",\"wj1\",\"wsum\",\"xasc\",\"xbar\",\"xcol\",\"xcols\",\"xdesc\",\"xexp\",\"xgroup\",\"xkey\",\"xlog\",\"xprev\",\"xrank\"]),\n      E=/[|/&^!+:\\\\\\-*%$=~#;@><,?_\\'\\\"\\[\\(\\]\\)\\s{}]/;\n  function buildRE(w){return new RegExp(\"^(\"+w.join(\"|\")+\")$\");}\n  function tokenBase(stream,state){\n    var sol=stream.sol(),c=stream.next();\n    curPunc=null;\n    if(sol)\n      if(c==\"/\")\n        return(state.tokenize=tokenLineComment)(stream,state);\n      else if(c==\"\\\\\"){\n        if(stream.eol()||/\\s/.test(stream.peek()))\n          return stream.skipToEnd(),/^\\\\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,\"comment\";\n        else\n          return state.tokenize=tokenBase,\"builtin\";\n      }\n    if(/\\s/.test(c))\n      return stream.peek()==\"/\"?(stream.skipToEnd(),\"comment\"):\"whitespace\";\n    if(c=='\"')\n      return(state.tokenize=tokenString)(stream,state);\n    if(c=='`')\n      return stream.eatWhile(/[A-Z|a-z|\\d|_|:|\\/|\\.]/),\"symbol\";\n    if((\".\"==c&&/\\d/.test(stream.peek()))||/\\d/.test(c)){\n      var t=null;\n      stream.backUp(1);\n      if(stream.match(/^\\d{4}\\.\\d{2}(m|\\.\\d{2}([D|T](\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)?)?)/)\n      || stream.match(/^\\d+D(\\d{2}(:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?)?)/)\n      || stream.match(/^\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?/)\n      || stream.match(/^\\d+[ptuv]{1}/))\n        t=\"temporal\";\n      else if(stream.match(/^0[NwW]{1}/)\n      || stream.match(/^0x[\\d|a-f|A-F]*/)\n      || stream.match(/^[0|1]+[b]{1}/)\n      || stream.match(/^\\d+[chijn]{1}/)\n      || stream.match(/-?\\d*(\\.\\d*)?(e[+\\-]?\\d+)?(e|f)?/))\n        t=\"number\";\n      return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),\"error\");\n    }\n    if(/[A-Z|a-z]|\\./.test(c))\n      return stream.eatWhile(/[A-Z|a-z|\\.|_|\\d]/),keywords.test(stream.current())?\"keyword\":\"variable\";\n    if(/[|/&^!+:\\\\\\-*%$=~#;@><\\.,?_\\']/.test(c))\n      return null;\n    if(/[{}\\(\\[\\]\\)]/.test(c))\n      return null;\n    return\"error\";\n  }\n  function tokenLineComment(stream,state){\n    return stream.skipToEnd(),/\\/\\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),\"comment\";\n  }\n  function tokenBlockComment(stream,state){\n    var f=stream.sol()&&stream.peek()==\"\\\\\";\n    stream.skipToEnd();\n    if(f&&/^\\\\\\s*$/.test(stream.current()))\n      state.tokenize=tokenBase;\n    return\"comment\";\n  }\n  function tokenCommentToEOF(stream){return stream.skipToEnd(),\"comment\";}\n  function tokenString(stream,state){\n    var escaped=false,next,end=false;\n    while((next=stream.next())){\n      if(next==\"\\\"\"&&!escaped){end=true;break;}\n      escaped=!escaped&&next==\"\\\\\";\n    }\n    if(end)state.tokenize=tokenBase;\n    return\"string\";\n  }\n  function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};}\n  function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;}\n  return{\n    startState:function(){\n      return{tokenize:tokenBase,\n             context:null,\n             indent:0,\n             col:0};\n    },\n    token:function(stream,state){\n      if(stream.sol()){\n        if(state.context&&state.context.align==null)\n          state.context.align=false;\n        state.indent=stream.indentation();\n      }\n      //if (stream.eatSpace()) return null;\n      var style=state.tokenize(stream,state);\n      if(style!=\"comment\"&&state.context&&state.context.align==null&&state.context.type!=\"pattern\"){\n        state.context.align=true;\n      }\n      if(curPunc==\"(\")pushContext(state,\")\",stream.column());\n      else if(curPunc==\"[\")pushContext(state,\"]\",stream.column());\n      else if(curPunc==\"{\")pushContext(state,\"}\",stream.column());\n      else if(/[\\]\\}\\)]/.test(curPunc)){\n        while(state.context&&state.context.type==\"pattern\")popContext(state);\n        if(state.context&&curPunc==state.context.type)popContext(state);\n      }\n      else if(curPunc==\".\"&&state.context&&state.context.type==\"pattern\")popContext(state);\n      else if(/atom|string|variable/.test(style)&&state.context){\n        if(/[\\}\\]]/.test(state.context.type))\n          pushContext(state,\"pattern\",stream.column());\n        else if(state.context.type==\"pattern\"&&!state.context.align){\n          state.context.align=true;\n          state.context.col=stream.column();\n        }\n      }\n      return style;\n    },\n    indent:function(state,textAfter){\n      var firstChar=textAfter&&textAfter.charAt(0);\n      var context=state.context;\n      if(/[\\]\\}]/.test(firstChar))\n        while (context&&context.type==\"pattern\")context=context.prev;\n      var closing=context&&firstChar==context.type;\n      if(!context)\n        return 0;\n      else if(context.type==\"pattern\")\n        return context.col;\n      else if(context.align)\n        return context.col+(closing?0:1);\n      else\n        return context.indent+(closing?0:indentUnit);\n    }\n  };\n});\nCodeMirror.defineMIME(\"text/x-q\",\"q\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/r/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: R mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"r.js\"></script>\n<style>\n      .CodeMirror { border-top: 1px solid silver; border-bottom: 1px solid silver; }\n      .cm-s-default span.cm-semi { color: blue; font-weight: bold; }\n      .cm-s-default span.cm-dollar { color: orange; font-weight: bold; }\n      .cm-s-default span.cm-arrow { color: brown; }\n      .cm-s-default span.cm-arg-is { color: brown; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">R</a>\n  </ul>\n</div>\n\n<article>\n<h2>R mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# Code from http://www.mayin.org/ajayshah/KB/R/\n\n# FIRST LEARN ABOUT LISTS --\nX = list(height=5.4, weight=54)\nprint(\"Use default printing --\")\nprint(X)\nprint(\"Accessing individual elements --\")\ncat(\"Your height is \", X$height, \" and your weight is \", X$weight, \"\\n\")\n\n# FUNCTIONS --\nsquare <- function(x) {\n  return(x*x)\n}\ncat(\"The square of 3 is \", square(3), \"\\n\")\n\n                 # default value of the arg is set to 5.\ncube <- function(x=5) {\n  return(x*x*x);\n}\ncat(\"Calling cube with 2 : \", cube(2), \"\\n\")    # will give 2^3\ncat(\"Calling cube        : \", cube(), \"\\n\")     # will default to 5^3.\n\n# LEARN ABOUT FUNCTIONS THAT RETURN MULTIPLE OBJECTS --\npowers <- function(x) {\n  parcel = list(x2=x*x, x3=x*x*x, x4=x*x*x*x);\n  return(parcel);\n}\n\nX = powers(3);\nprint(\"Showing powers of 3 --\"); print(X);\n\n# WRITING THIS COMPACTLY (4 lines instead of 7)\n\npowerful <- function(x) {\n  return(list(x2=x*x, x3=x*x*x, x4=x*x*x*x));\n}\nprint(\"Showing powers of 3 --\"); print(powerful(3));\n\n# In R, the last expression in a function is, by default, what is\n# returned. So you could equally just say:\npowerful <- function(x) {list(x2=x*x, x3=x*x*x, x4=x*x*x*x)}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rsrc</code>.</p>\n\n    <p>Development of the CodeMirror R mode was kindly sponsored\n    by <a href=\"https://twitter.com/ubalo\">Ubalo</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/r/r.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"r\", function(config) {\n  function wordObj(str) {\n    var words = str.split(\" \"), res = {};\n    for (var i = 0; i < words.length; ++i) res[words[i]] = true;\n    return res;\n  }\n  var atoms = wordObj(\"NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_\");\n  var builtins = wordObj(\"list quote bquote eval return call parse deparse\");\n  var keywords = wordObj(\"if else repeat while function for in next break\");\n  var blockkeywords = wordObj(\"if else repeat while function for\");\n  var opChars = /[+\\-*\\/^<>=!&|~$:]/;\n  var curPunc;\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    var ch = stream.next();\n    if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"0\" && stream.eat(\"x\")) {\n      stream.eatWhile(/[\\da-f]/i);\n      return \"number\";\n    } else if (ch == \".\" && stream.eat(/\\d/)) {\n      stream.match(/\\d*(?:e[+\\-]?\\d+)?/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/\\d*(?:\\.\\d+)?(?:e[+\\-]\\d+)?L?/);\n      return \"number\";\n    } else if (ch == \"'\" || ch == '\"') {\n      state.tokenize = tokenString(ch);\n      return \"string\";\n    } else if (ch == \".\" && stream.match(/.[.\\d]+/)) {\n      return \"keyword\";\n    } else if (/[\\w\\.]/.test(ch) && ch != \"_\") {\n      stream.eatWhile(/[\\w\\.]/);\n      var word = stream.current();\n      if (atoms.propertyIsEnumerable(word)) return \"atom\";\n      if (keywords.propertyIsEnumerable(word)) {\n        // Block keywords start new blocks, except 'else if', which only starts\n        // one new block for the 'if', no block for the 'else'.\n        if (blockkeywords.propertyIsEnumerable(word) &&\n            !stream.match(/\\s*if(\\s+|$)/, false))\n          curPunc = \"block\";\n        return \"keyword\";\n      }\n      if (builtins.propertyIsEnumerable(word)) return \"builtin\";\n      return \"variable\";\n    } else if (ch == \"%\") {\n      if (stream.skipTo(\"%\")) stream.next();\n      return \"variable-2\";\n    } else if (ch == \"<\" && stream.eat(\"-\")) {\n      return \"arrow\";\n    } else if (ch == \"=\" && state.ctx.argList) {\n      return \"arg-is\";\n    } else if (opChars.test(ch)) {\n      if (ch == \"$\") return \"dollar\";\n      stream.eatWhile(opChars);\n      return \"operator\";\n    } else if (/[\\(\\){}\\[\\];]/.test(ch)) {\n      curPunc = ch;\n      if (ch == \";\") return \"semi\";\n      return null;\n    } else {\n      return null;\n    }\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      if (stream.eat(\"\\\\\")) {\n        var ch = stream.next();\n        if (ch == \"x\") stream.match(/^[a-f0-9]{2}/i);\n        else if ((ch == \"u\" || ch == \"U\") && stream.eat(\"{\") && stream.skipTo(\"}\")) stream.next();\n        else if (ch == \"u\") stream.match(/^[a-f0-9]{4}/i);\n        else if (ch == \"U\") stream.match(/^[a-f0-9]{8}/i);\n        else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);\n        return \"string-2\";\n      } else {\n        var next;\n        while ((next = stream.next()) != null) {\n          if (next == quote) { state.tokenize = tokenBase; break; }\n          if (next == \"\\\\\") { stream.backUp(1); break; }\n        }\n        return \"string\";\n      }\n    };\n  }\n\n  function push(state, type, stream) {\n    state.ctx = {type: type,\n                 indent: state.indent,\n                 align: null,\n                 column: stream.column(),\n                 prev: state.ctx};\n  }\n  function pop(state) {\n    state.indent = state.ctx.indent;\n    state.ctx = state.ctx.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              ctx: {type: \"top\",\n                    indent: -config.indentUnit,\n                    align: false},\n              indent: 0,\n              afterIdent: false};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.ctx.align == null) state.ctx.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      if (style != \"comment\" && state.ctx.align == null) state.ctx.align = true;\n\n      var ctype = state.ctx.type;\n      if ((curPunc == \";\" || curPunc == \"{\" || curPunc == \"}\") && ctype == \"block\") pop(state);\n      if (curPunc == \"{\") push(state, \"}\", stream);\n      else if (curPunc == \"(\") {\n        push(state, \")\", stream);\n        if (state.afterIdent) state.ctx.argList = true;\n      }\n      else if (curPunc == \"[\") push(state, \"]\", stream);\n      else if (curPunc == \"block\") push(state, \"block\", stream);\n      else if (curPunc == ctype) pop(state);\n      state.afterIdent = style == \"variable\" || style == \"keyword\";\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,\n          closing = firstChar == ctx.type;\n      if (ctx.type == \"block\") return ctx.indent + (firstChar == \"{\" ? 0 : config.indentUnit);\n      else if (ctx.align) return ctx.column + (closing ? 0 : 1);\n      else return ctx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rsrc\", \"r\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rpm/changes/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: RPM changes mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../../lib/codemirror.css\">\n    <script src=\"../../../lib/codemirror.js\"></script>\n    <script src=\"changes.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../../doc/docs.css\">\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../../index.html\">Home</a>\n    <li><a href=\"../../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">RPM changes</a>\n  </ul>\n</div>\n\n<article>\n<h2>RPM changes mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n-------------------------------------------------------------------\nTue Oct 18 13:58:40 UTC 2011 - misterx@example.com\n\n- Update to r60.3\n- Fixes bug in the reflect package\n  * disallow Interface method on Value obtained via unexported name\n\n-------------------------------------------------------------------\nThu Oct  6 08:14:24 UTC 2011 - misterx@example.com\n\n- Update to r60.2\n- Fixes memory leak in certain map types\n\n-------------------------------------------------------------------\nWed Oct  5 14:34:10 UTC 2011 - misterx@example.com\n\n- Tweaks for gdb debugging\n- go.spec changes:\n  - move %go_arch definition to %prep section\n  - pass correct location of go specific gdb pretty printer and\n    functions to cpp as HOST_EXTRA_CFLAGS macro\n  - install go gdb functions & printer\n- gdb-printer.patch\n  - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go\n    gdb functions and pretty printer\n</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"changes\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rpm-changes</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rpm/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: RPM changes mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n    <link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n    <script src=\"../../lib/codemirror.js\"></script>\n    <script src=\"rpm.js\"></script>\n    <link rel=\"stylesheet\" href=\"../../doc/docs.css\">\n    <style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">RPM</a>\n  </ul>\n</div>\n\n<article>\n<h2>RPM changes mode</h2>\n\n    <div><textarea id=\"code\" name=\"code\">\n-------------------------------------------------------------------\nTue Oct 18 13:58:40 UTC 2011 - misterx@example.com\n\n- Update to r60.3\n- Fixes bug in the reflect package\n  * disallow Interface method on Value obtained via unexported name\n\n-------------------------------------------------------------------\nThu Oct  6 08:14:24 UTC 2011 - misterx@example.com\n\n- Update to r60.2\n- Fixes memory leak in certain map types\n\n-------------------------------------------------------------------\nWed Oct  5 14:34:10 UTC 2011 - misterx@example.com\n\n- Tweaks for gdb debugging\n- go.spec changes:\n  - move %go_arch definition to %prep section\n  - pass correct location of go specific gdb pretty printer and\n    functions to cpp as HOST_EXTRA_CFLAGS macro\n  - install go gdb functions & printer\n- gdb-printer.patch\n  - patch linker (src/cmd/ld/dwarf.c) to emit correct location of go\n    gdb functions and pretty printer\n</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"rpm-changes\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n<h2>RPM spec mode</h2>\n    \n    <div><textarea id=\"code2\" name=\"code2\">\n#\n# spec file for package minidlna\n#\n# Copyright (c) 2011, Sascha Peilicke <saschpe@gmx.de>\n#\n# All modifications and additions to the file contributed by third parties\n# remain the property of their copyright owners, unless otherwise agreed\n# upon. The license for this file, and modifications and additions to the\n# file, is the same license as for the pristine package itself (unless the\n# license for the pristine package is not an Open Source License, in which\n# case the license is the MIT License). An \"Open Source License\" is a\n# license that conforms to the Open Source Definition (Version 1.9)\n# published by the Open Source Initiative.\n\n\nName:           libupnp6\nVersion:        1.6.13\nRelease:        0\nSummary:        Portable Universal Plug and Play (UPnP) SDK\nGroup:          System/Libraries\nLicense:        BSD-3-Clause\nUrl:            http://sourceforge.net/projects/pupnp/\nSource0:        http://downloads.sourceforge.net/pupnp/libupnp-%{version}.tar.bz2\nBuildRoot:      %{_tmppath}/%{name}-%{version}-build\n\n%description\nThe portable Universal Plug and Play (UPnP) SDK provides support for building\nUPnP-compliant control points, devices, and bridges on several operating\nsystems.\n\n%package -n libupnp-devel\nSummary:        Portable Universal Plug and Play (UPnP) SDK\nGroup:          Development/Libraries/C and C++\nProvides:       pkgconfig(libupnp)\nRequires:       %{name} = %{version}\n\n%description -n libupnp-devel\nThe portable Universal Plug and Play (UPnP) SDK provides support for building\nUPnP-compliant control points, devices, and bridges on several operating\nsystems.\n\n%prep\n%setup -n libupnp-%{version}\n\n%build\n%configure --disable-static\nmake %{?_smp_mflags}\n\n%install\n%makeinstall\nfind %{buildroot} -type f -name '*.la' -exec rm -f {} ';'\n\n%post -p /sbin/ldconfig\n\n%postun -p /sbin/ldconfig\n\n%files\n%defattr(-,root,root,-)\n%doc ChangeLog NEWS README TODO\n%{_libdir}/libixml.so.*\n%{_libdir}/libthreadutil.so.*\n%{_libdir}/libupnp.so.*\n\n%files -n libupnp-devel\n%defattr(-,root,root,-)\n%{_libdir}/pkgconfig/libupnp.pc\n%{_libdir}/libixml.so\n%{_libdir}/libthreadutil.so\n%{_libdir}/libupnp.so\n%{_includedir}/upnp/\n\n%changelog</textarea></div>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code2\"), {\n        mode: {name: \"rpm-spec\"},\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rpm-spec</code>, <code>text/x-rpm-changes</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rpm/rpm.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rpm-changes\", function() {\n  var headerSeperator = /^-+$/;\n  var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\\d{1,2} \\d{2}:\\d{2}(:\\d{2})? [A-Z]{3,4} \\d{4} - /;\n  var simpleEmail = /^[\\w+.-]+@[\\w.-]+/;\n\n  return {\n    token: function(stream) {\n      if (stream.sol()) {\n        if (stream.match(headerSeperator)) { return 'tag'; }\n        if (stream.match(headerLine)) { return 'tag'; }\n      }\n      if (stream.match(simpleEmail)) { return 'string'; }\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-changes\", \"rpm-changes\");\n\n// Quick and dirty spec file highlighting\n\nCodeMirror.defineMode(\"rpm-spec\", function() {\n  var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/;\n\n  var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\\(\\w+\\))?|Obsoletes|Conflicts|Recommends|Source\\d*|Patch\\d*|ExclusiveArch|NoSource|Supplements):/;\n  var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pre|post|triggerin|triggerun|pretrans|posttrans|verifyscript|check|triggerpostun|triggerprein|trigger)/;\n  var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros\n  var control_flow_simple = /^%(else|endif)/; // rpm control flow macros\n  var operators = /^(\\!|\\?|\\<\\=|\\<|\\>\\=|\\>|\\=\\=|\\&\\&|\\|\\|)/; // operators in control flow macros\n\n  return {\n    startState: function () {\n        return {\n          controlFlow: false,\n          macroParameters: false,\n          section: false\n        };\n    },\n    token: function (stream, state) {\n      var ch = stream.peek();\n      if (ch == \"#\") { stream.skipToEnd(); return \"comment\"; }\n\n      if (stream.sol()) {\n        if (stream.match(preamble)) { return \"preamble\"; }\n        if (stream.match(section)) { return \"section\"; }\n      }\n\n      if (stream.match(/^\\$\\w+/)) { return \"def\"; } // Variables like '$RPM_BUILD_ROOT'\n      if (stream.match(/^\\$\\{\\w+\\}/)) { return \"def\"; } // Variables like '${RPM_BUILD_ROOT}'\n\n      if (stream.match(control_flow_simple)) { return \"keyword\"; }\n      if (stream.match(control_flow_complex)) {\n        state.controlFlow = true;\n        return \"keyword\";\n      }\n      if (state.controlFlow) {\n        if (stream.match(operators)) { return \"operator\"; }\n        if (stream.match(/^(\\d+)/)) { return \"number\"; }\n        if (stream.eol()) { state.controlFlow = false; }\n      }\n\n      if (stream.match(arch)) { return \"number\"; }\n\n      // Macros like '%make_install' or '%attr(0775,root,root)'\n      if (stream.match(/^%[\\w]+/)) {\n        if (stream.match(/^\\(/)) { state.macroParameters = true; }\n        return \"macro\";\n      }\n      if (state.macroParameters) {\n        if (stream.match(/^\\d+/)) { return \"number\";}\n        if (stream.match(/^\\)/)) {\n          state.macroParameters = false;\n          return \"macro\";\n        }\n      }\n      if (stream.match(/^%\\{\\??[\\w \\-]+\\}/)) { return \"macro\"; } // Macros like '%{defined fedora}'\n\n      //TODO: Include bash script sub-parser (CodeMirror supports that)\n      stream.next();\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rpm-spec\", \"rpm-spec\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rst/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: reStructuredText mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"rst.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">reStructuredText</a>\n  </ul>\n</div>\n\n<article>\n<h2>reStructuredText mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n.. This is an excerpt from Sphinx documentation: http://sphinx.pocoo.org/_sources/rest.txt\n\n.. highlightlang:: rest\n\n.. _rst-primer:\n\nreStructuredText Primer\n=======================\n\nThis section is a brief introduction to reStructuredText (reST) concepts and\nsyntax, intended to provide authors with enough information to author documents\nproductively.  Since reST was designed to be a simple, unobtrusive markup\nlanguage, this will not take too long.\n\n.. seealso::\n\n   The authoritative `reStructuredText User Documentation\n   &lt;http://docutils.sourceforge.net/rst.html&gt;`_.  The \"ref\" links in this\n   document link to the description of the individual constructs in the reST\n   reference.\n\n\nParagraphs\n----------\n\nThe paragraph (:duref:`ref &lt;paragraphs&gt;`) is the most basic block in a reST\ndocument.  Paragraphs are simply chunks of text separated by one or more blank\nlines.  As in Python, indentation is significant in reST, so all lines of the\nsame paragraph must be left-aligned to the same level of indentation.\n\n\n.. _inlinemarkup:\n\nInline markup\n-------------\n\nThe standard reST inline markup is quite simple: use\n\n* one asterisk: ``*text*`` for emphasis (italics),\n* two asterisks: ``**text**`` for strong emphasis (boldface), and\n* backquotes: ````text```` for code samples.\n\nIf asterisks or backquotes appear in running text and could be confused with\ninline markup delimiters, they have to be escaped with a backslash.\n\nBe aware of some restrictions of this markup:\n\n* it may not be nested,\n* content may not start or end with whitespace: ``* text*`` is wrong,\n* it must be separated from surrounding text by non-word characters.  Use a\n  backslash escaped space to work around that: ``thisis\\ *one*\\ word``.\n\nThese restrictions may be lifted in future versions of the docutils.\n\nreST also allows for custom \"interpreted text roles\"', which signify that the\nenclosed text should be interpreted in a specific way.  Sphinx uses this to\nprovide semantic markup and cross-referencing of identifiers, as described in\nthe appropriate section.  The general syntax is ``:rolename:`content```.\n\nStandard reST provides the following roles:\n\n* :durole:`emphasis` -- alternate spelling for ``*emphasis*``\n* :durole:`strong` -- alternate spelling for ``**strong**``\n* :durole:`literal` -- alternate spelling for ````literal````\n* :durole:`subscript` -- subscript text\n* :durole:`superscript` -- superscript text\n* :durole:`title-reference` -- for titles of books, periodicals, and other\n  materials\n\nSee :ref:`inline-markup` for roles added by Sphinx.\n\n\nLists and Quote-like blocks\n---------------------------\n\nList markup (:duref:`ref &lt;bullet-lists&gt;`) is natural: just place an asterisk at\nthe start of a paragraph and indent properly.  The same goes for numbered lists;\nthey can also be autonumbered using a ``#`` sign::\n\n   * This is a bulleted list.\n   * It has two items, the second\n     item uses two lines.\n\n   1. This is a numbered list.\n   2. It has two items too.\n\n   #. This is a numbered list.\n   #. It has two items too.\n\n\nNested lists are possible, but be aware that they must be separated from the\nparent list items by blank lines::\n\n   * this is\n   * a list\n\n     * with a nested list\n     * and some subitems\n\n   * and here the parent list continues\n\nDefinition lists (:duref:`ref &lt;definition-lists&gt;`) are created as follows::\n\n   term (up to a line of text)\n      Definition of the term, which must be indented\n\n      and can even consist of multiple paragraphs\n\n   next term\n      Description.\n\nNote that the term cannot have more than one line of text.\n\nQuoted paragraphs (:duref:`ref &lt;block-quotes&gt;`) are created by just indenting\nthem more than the surrounding paragraphs.\n\nLine blocks (:duref:`ref &lt;line-blocks&gt;`) are a way of preserving line breaks::\n\n   | These lines are\n   | broken exactly like in\n   | the source file.\n\nThere are also several more special blocks available:\n\n* field lists (:duref:`ref &lt;field-lists&gt;`)\n* option lists (:duref:`ref &lt;option-lists&gt;`)\n* quoted literal blocks (:duref:`ref &lt;quoted-literal-blocks&gt;`)\n* doctest blocks (:duref:`ref &lt;doctest-blocks&gt;`)\n\n\nSource Code\n-----------\n\nLiteral code blocks (:duref:`ref &lt;literal-blocks&gt;`) are introduced by ending a\nparagraph with the special marker ``::``.  The literal block must be indented\n(and, like all paragraphs, separated from the surrounding ones by blank lines)::\n\n   This is a normal text paragraph. The next paragraph is a code sample::\n\n      It is not processed in any way, except\n      that the indentation is removed.\n\n      It can span multiple lines.\n\n   This is a normal text paragraph again.\n\nThe handling of the ``::`` marker is smart:\n\n* If it occurs as a paragraph of its own, that paragraph is completely left\n  out of the document.\n* If it is preceded by whitespace, the marker is removed.\n* If it is preceded by non-whitespace, the marker is replaced by a single\n  colon.\n\nThat way, the second sentence in the above example's first paragraph would be\nrendered as \"The next paragraph is a code sample:\".\n\n\n.. _rst-tables:\n\nTables\n------\n\nTwo forms of tables are supported.  For *grid tables* (:duref:`ref\n&lt;grid-tables&gt;`), you have to \"paint\" the cell grid yourself.  They look like\nthis::\n\n   +------------------------+------------+----------+----------+\n   | Header row, column 1   | Header 2   | Header 3 | Header 4 |\n   | (header rows optional) |            |          |          |\n   +========================+============+==========+==========+\n   | body row 1, column 1   | column 2   | column 3 | column 4 |\n   +------------------------+------------+----------+----------+\n   | body row 2             | ...        | ...      |          |\n   +------------------------+------------+----------+----------+\n\n*Simple tables* (:duref:`ref &lt;simple-tables&gt;`) are easier to write, but\nlimited: they must contain more than one row, and the first column cannot\ncontain multiple lines.  They look like this::\n\n   =====  =====  =======\n   A      B      A and B\n   =====  =====  =======\n   False  False  False\n   True   False  False\n   False  True   False\n   True   True   True\n   =====  =====  =======\n\n\nHyperlinks\n----------\n\nExternal links\n^^^^^^^^^^^^^^\n\nUse ```Link text &lt;http://example.com/&gt;`_`` for inline web links.  If the link\ntext should be the web address, you don't need special markup at all, the parser\nfinds links and mail addresses in ordinary text.\n\nYou can also separate the link and the target definition (:duref:`ref\n&lt;hyperlink-targets&gt;`), like this::\n\n   This is a paragraph that contains `a link`_.\n\n   .. _a link: http://example.com/\n\n\nInternal links\n^^^^^^^^^^^^^^\n\nInternal linking is done via a special reST role provided by Sphinx, see the\nsection on specific markup, :ref:`ref-role`.\n\n\nSections\n--------\n\nSection headers (:duref:`ref &lt;sections&gt;`) are created by underlining (and\noptionally overlining) the section title with a punctuation character, at least\nas long as the text::\n\n   =================\n   This is a heading\n   =================\n\nNormally, there are no heading levels assigned to certain characters as the\nstructure is determined from the succession of headings.  However, for the\nPython documentation, this convention is used which you may follow:\n\n* ``#`` with overline, for parts\n* ``*`` with overline, for chapters\n* ``=``, for sections\n* ``-``, for subsections\n* ``^``, for subsubsections\n* ``\"``, for paragraphs\n\nOf course, you are free to use your own marker characters (see the reST\ndocumentation), and use a deeper nesting level, but keep in mind that most\ntarget formats (HTML, LaTeX) have a limited supported nesting depth.\n\n\nExplicit Markup\n---------------\n\n\"Explicit markup\" (:duref:`ref &lt;explicit-markup-blocks&gt;`) is used in reST for\nmost constructs that need special handling, such as footnotes,\nspecially-highlighted paragraphs, comments, and generic directives.\n\nAn explicit markup block begins with a line starting with ``..`` followed by\nwhitespace and is terminated by the next paragraph at the same level of\nindentation.  (There needs to be a blank line between explicit markup and normal\nparagraphs.  This may all sound a bit complicated, but it is intuitive enough\nwhen you write it.)\n\n\n.. _directives:\n\nDirectives\n----------\n\nA directive (:duref:`ref &lt;directives&gt;`) is a generic block of explicit markup.\nBesides roles, it is one of the extension mechanisms of reST, and Sphinx makes\nheavy use of it.\n\nDocutils supports the following directives:\n\n* Admonitions: :dudir:`attention`, :dudir:`caution`, :dudir:`danger`,\n  :dudir:`error`, :dudir:`hint`, :dudir:`important`, :dudir:`note`,\n  :dudir:`tip`, :dudir:`warning` and the generic :dudir:`admonition`.\n  (Most themes style only \"note\" and \"warning\" specially.)\n\n* Images:\n\n  - :dudir:`image` (see also Images_ below)\n  - :dudir:`figure` (an image with caption and optional legend)\n\n* Additional body elements:\n\n  - :dudir:`contents` (a local, i.e. for the current file only, table of\n    contents)\n  - :dudir:`container` (a container with a custom class, useful to generate an\n    outer ``&lt;div&gt;`` in HTML)\n  - :dudir:`rubric` (a heading without relation to the document sectioning)\n  - :dudir:`topic`, :dudir:`sidebar` (special highlighted body elements)\n  - :dudir:`parsed-literal` (literal block that supports inline markup)\n  - :dudir:`epigraph` (a block quote with optional attribution line)\n  - :dudir:`highlights`, :dudir:`pull-quote` (block quotes with their own\n    class attribute)\n  - :dudir:`compound` (a compound paragraph)\n\n* Special tables:\n\n  - :dudir:`table` (a table with title)\n  - :dudir:`csv-table` (a table generated from comma-separated values)\n  - :dudir:`list-table` (a table generated from a list of lists)\n\n* Special directives:\n\n  - :dudir:`raw` (include raw target-format markup)\n  - :dudir:`include` (include reStructuredText from another file)\n    -- in Sphinx, when given an absolute include file path, this directive takes\n    it as relative to the source directory\n  - :dudir:`class` (assign a class attribute to the next element) [1]_\n\n* HTML specifics:\n\n  - :dudir:`meta` (generation of HTML ``&lt;meta&gt;`` tags)\n  - :dudir:`title` (override document title)\n\n* Influencing markup:\n\n  - :dudir:`default-role` (set a new default role)\n  - :dudir:`role` (create a new role)\n\n  Since these are only per-file, better use Sphinx' facilities for setting the\n  :confval:`default_role`.\n\nDo *not* use the directives :dudir:`sectnum`, :dudir:`header` and\n:dudir:`footer`.\n\nDirectives added by Sphinx are described in :ref:`sphinxmarkup`.\n\nBasically, a directive consists of a name, arguments, options and content. (Keep\nthis terminology in mind, it is used in the next chapter describing custom\ndirectives.)  Looking at this example, ::\n\n   .. function:: foo(x)\n                 foo(y, z)\n      :module: some.module.name\n\n      Return a line of text input from the user.\n\n``function`` is the directive name.  It is given two arguments here, the\nremainder of the first line and the second line, as well as one option\n``module`` (as you can see, options are given in the lines immediately following\nthe arguments and indicated by the colons).  Options must be indented to the\nsame level as the directive content.\n\nThe directive content follows after a blank line and is indented relative to the\ndirective start.\n\n\nImages\n------\n\nreST supports an image directive (:dudir:`ref &lt;image&gt;`), used like so::\n\n   .. image:: gnu.png\n      (options)\n\nWhen used within Sphinx, the file name given (here ``gnu.png``) must either be\nrelative to the source file, or absolute which means that they are relative to\nthe top source directory.  For example, the file ``sketch/spam.rst`` could refer\nto the image ``images/spam.png`` as ``../images/spam.png`` or\n``/images/spam.png``.\n\nSphinx will automatically copy image files over to a subdirectory of the output\ndirectory on building (e.g. the ``_static`` directory for HTML output.)\n\nInterpretation of image size options (``width`` and ``height``) is as follows:\nif the size has no unit or the unit is pixels, the given size will only be\nrespected for output channels that support pixels (i.e. not in LaTeX output).\nOther units (like ``pt`` for points) will be used for HTML and LaTeX output.\n\nSphinx extends the standard docutils behavior by allowing an asterisk for the\nextension::\n\n   .. image:: gnu.*\n\nSphinx then searches for all images matching the provided pattern and determines\ntheir type.  Each builder then chooses the best image out of these candidates.\nFor instance, if the file name ``gnu.*`` was given and two files :file:`gnu.pdf`\nand :file:`gnu.png` existed in the source tree, the LaTeX builder would choose\nthe former, while the HTML builder would prefer the latter.\n\n.. versionchanged:: 0.4\n   Added the support for file names ending in an asterisk.\n\n.. versionchanged:: 0.6\n   Image paths can now be absolute.\n\n\nFootnotes\n---------\n\nFor footnotes (:duref:`ref &lt;footnotes&gt;`), use ``[#name]_`` to mark the footnote\nlocation, and add the footnote body at the bottom of the document after a\n\"Footnotes\" rubric heading, like so::\n\n   Lorem ipsum [#f1]_ dolor sit amet ... [#f2]_\n\n   .. rubric:: Footnotes\n\n   .. [#f1] Text of the first footnote.\n   .. [#f2] Text of the second footnote.\n\nYou can also explicitly number the footnotes (``[1]_``) or use auto-numbered\nfootnotes without names (``[#]_``).\n\n\nCitations\n---------\n\nStandard reST citations (:duref:`ref &lt;citations&gt;`) are supported, with the\nadditional feature that they are \"global\", i.e. all citations can be referenced\nfrom all files.  Use them like so::\n\n   Lorem ipsum [Ref]_ dolor sit amet.\n\n   .. [Ref] Book or article reference, URL or whatever.\n\nCitation usage is similar to footnote usage, but with a label that is not\nnumeric or begins with ``#``.\n\n\nSubstitutions\n-------------\n\nreST supports \"substitutions\" (:duref:`ref &lt;substitution-definitions&gt;`), which\nare pieces of text and/or markup referred to in the text by ``|name|``.  They\nare defined like footnotes with explicit markup blocks, like this::\n\n   .. |name| replace:: replacement *text*\n\nor this::\n\n   .. |caution| image:: warning.png\n                :alt: Warning!\n\nSee the :duref:`reST reference for substitutions &lt;substitution-definitions&gt;`\nfor details.\n\nIf you want to use some substitutions for all documents, put them into\n:confval:`rst_prolog` or put them into a separate file and include it into all\ndocuments you want to use them in, using the :rst:dir:`include` directive.  (Be\nsure to give the include file a file name extension differing from that of other\nsource files, to avoid Sphinx finding it as a standalone document.)\n\nSphinx defines some default substitutions, see :ref:`default-substitutions`.\n\n\nComments\n--------\n\nEvery explicit markup block which isn't a valid markup construct (like the\nfootnotes above) is regarded as a comment (:duref:`ref &lt;comments&gt;`).  For\nexample::\n\n   .. This is a comment.\n\nYou can indent text after a comment start to form multiline comments::\n\n   ..\n      This whole indented block\n      is a comment.\n\n      Still in the comment.\n\n\nSource encoding\n---------------\n\nSince the easiest way to include special characters like em dashes or copyright\nsigns in reST is to directly write them as Unicode characters, one has to\nspecify an encoding.  Sphinx assumes source files to be encoded in UTF-8 by\ndefault; you can change this with the :confval:`source_encoding` config value.\n\n\nGotchas\n-------\n\nThere are some problems one commonly runs into while authoring reST documents:\n\n* **Separation of inline markup:** As said above, inline markup spans must be\n  separated from the surrounding text by non-word characters, you have to use a\n  backslash-escaped space to get around that.  See `the reference\n  &lt;http://docutils.sf.net/docs/ref/rst/restructuredtext.html#inline-markup&gt;`_\n  for the details.\n\n* **No nested inline markup:** Something like ``*see :func:`foo`*`` is not\n  possible.\n\n\n.. rubric:: Footnotes\n\n.. [1] When the default domain contains a :rst:dir:`class` directive, this directive\n       will be shadowed.  Therefore, Sphinx re-exports it as :rst:dir:`rst-class`.\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n      });\n    </script>\n    <p>\n        The <code>python</code> mode will be used for highlighting blocks\n        containing Python/IPython terminal sessions: blocks starting with\n        <code>&gt;&gt;&gt;</code> (for Python) or <code>In [num]:</code> (for\n        IPython).\n\n        Further, the <code>stex</code> mode will be used for highlighting\n        blocks containing LaTex code.\n    </p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rst</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rst/rst.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../python/python\"), require(\"../stex/stex\"), require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../python/python\", \"../stex/stex\", \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('rst', function (config, options) {\n\n  var rx_strong = /^\\*\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*\\*/;\n  var rx_emphasis = /^\\*[^\\*\\s](?:[^\\*]*[^\\*\\s])?\\*/;\n  var rx_literal = /^``[^`\\s](?:[^`]*[^`\\s])``/;\n\n  var rx_number = /^(?:[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_positive = /^(?:\\s\\+[\\d]+(?:[\\.,]\\d+)*)/;\n  var rx_negative = /^(?:\\s\\-[\\d]+(?:[\\.,]\\d+)*)/;\n\n  var rx_uri_protocol = \"[Hh][Tt][Tt][Pp][Ss]?://\";\n  var rx_uri_domain = \"(?:[\\\\d\\\\w.-]+)\\\\.(?:\\\\w{2,6})\";\n  var rx_uri_path = \"(?:/[\\\\d\\\\w\\\\#\\\\%\\\\&\\\\-\\\\.\\\\,\\\\/\\\\:\\\\=\\\\?\\\\~]+)*\";\n  var rx_uri = new RegExp(\"^\" + rx_uri_protocol + rx_uri_domain + rx_uri_path);\n\n  var overlay = {\n    token: function (stream) {\n\n      if (stream.match(rx_strong) && stream.match (/\\W+|$/, false))\n        return 'strong';\n      if (stream.match(rx_emphasis) && stream.match (/\\W+|$/, false))\n        return 'em';\n      if (stream.match(rx_literal) && stream.match (/\\W+|$/, false))\n        return 'string-2';\n      if (stream.match(rx_number))\n        return 'number';\n      if (stream.match(rx_positive))\n        return 'positive';\n      if (stream.match(rx_negative))\n        return 'negative';\n      if (stream.match(rx_uri))\n        return 'link';\n\n      while (stream.next() != null) {\n        if (stream.match(rx_strong, false)) break;\n        if (stream.match(rx_emphasis, false)) break;\n        if (stream.match(rx_literal, false)) break;\n        if (stream.match(rx_number, false)) break;\n        if (stream.match(rx_positive, false)) break;\n        if (stream.match(rx_negative, false)) break;\n        if (stream.match(rx_uri, false)) break;\n      }\n\n      return null;\n    }\n  };\n\n  var mode = CodeMirror.getMode(\n    config, options.backdrop || 'rst-base'\n  );\n\n  return CodeMirror.overlayMode(mode, overlay, true); // combine\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMode('rst-base', function (config) {\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function format(string) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return string.replace(/{(\\d+)}/g, function (match, n) {\n      return typeof args[n] != 'undefined' ? args[n] : match;\n    });\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var mode_python = CodeMirror.getMode(config, 'python');\n  var mode_stex = CodeMirror.getMode(config, 'stex');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  var SEPA = \"\\\\s+\";\n  var TAIL = \"(?:\\\\s*|\\\\W|$)\",\n  rx_TAIL = new RegExp(format('^{0}', TAIL));\n\n  var NAME =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\",\n  rx_NAME = new RegExp(format('^{0}', NAME));\n  var NAME_WWS =\n    \"(?:[^\\\\W\\\\d_](?:[\\\\w\\\\s!\\\"#$%&'()\\\\*\\\\+,\\\\-\\\\.\\/:;<=>\\\\?]*[^\\\\W_])?)\";\n  var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS);\n\n  var TEXT1 = \"(?:[^\\\\s\\\\|](?:[^\\\\|]*[^\\\\s\\\\|])?)\";\n  var TEXT2 = \"(?:[^\\\\`]+)\",\n  rx_TEXT2 = new RegExp(format('^{0}', TEXT2));\n\n  var rx_section = new RegExp(\n    \"^([!'#$%&\\\"()*+,-./:;<=>?@\\\\[\\\\\\\\\\\\]^_`{|}~])\\\\1{3,}\\\\s*$\");\n  var rx_explicit = new RegExp(\n    format('^\\\\.\\\\.{0}', SEPA));\n  var rx_link = new RegExp(\n    format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL));\n  var rx_directive = new RegExp(\n    format('^{0}::{1}', REF_NAME, TAIL));\n  var rx_substitution = new RegExp(\n    format('^\\\\|{0}\\\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL));\n  var rx_footnote = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]{1}', REF_NAME, TAIL));\n  var rx_citation = new RegExp(\n    format('^\\\\[{0}\\\\]{1}', REF_NAME, TAIL));\n\n  var rx_substitution_ref = new RegExp(\n    format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_footnote_ref = new RegExp(\n    format('^\\\\[(?:\\\\d+|#{0}?|\\\\*)]_', REF_NAME));\n  var rx_citation_ref = new RegExp(\n    format('^\\\\[{0}\\\\]_', REF_NAME));\n  var rx_link_ref1 = new RegExp(\n    format('^{0}__?', REF_NAME));\n  var rx_link_ref2 = new RegExp(\n    format('^`{0}`_', TEXT2));\n\n  var rx_role_pre = new RegExp(\n    format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL));\n  var rx_role_suf = new RegExp(\n    format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL));\n  var rx_role = new RegExp(\n    format('^:{0}:{1}', NAME, TAIL));\n\n  var rx_directive_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_directive_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_substitution_text = new RegExp(format('^\\\\|{0}\\\\|', TEXT1));\n  var rx_substitution_sepa = new RegExp(format('^{0}', SEPA));\n  var rx_substitution_name = new RegExp(format('^{0}', REF_NAME));\n  var rx_substitution_tail = new RegExp(format('^::{0}', TAIL));\n  var rx_link_head = new RegExp(\"^_\");\n  var rx_link_name = new RegExp(format('^{0}|_', REF_NAME));\n  var rx_link_tail = new RegExp(format('^:{0}', TAIL));\n\n  var rx_verbatim = new RegExp('^::\\\\s*$');\n  var rx_examples = new RegExp('^\\\\s+(?:>>>|In \\\\[\\\\d+\\\\]:)\\\\s');\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_normal(stream, state) {\n    var token = null;\n\n    if (stream.sol() && stream.match(rx_examples, false)) {\n      change(state, to_mode, {\n        mode: mode_python, local: CodeMirror.startState(mode_python)\n      });\n    } else if (stream.sol() && stream.match(rx_explicit)) {\n      change(state, to_explicit);\n      token = 'meta';\n    } else if (stream.sol() && stream.match(rx_section)) {\n      change(state, to_normal);\n      token = 'header';\n    } else if (phase(state) == rx_role_pre ||\n               stream.match(rx_role_pre, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_pre, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_pre, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/)) {\n          state.tmp_stex = true;\n        }\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_pre, 3));\n        stream.match(/^:`/);\n        token = 'meta';\n        break;\n      case 3:\n        if (state.tmp_stex) {\n          state.tmp_stex = undefined; state.tmp = {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          };\n        }\n\n        if (state.tmp) {\n          if (stream.peek() == '`') {\n            change(state, to_normal, context(rx_role_pre, 4));\n            state.tmp = undefined;\n            break;\n          }\n\n          token = state.tmp.mode.token(stream, state.tmp.local);\n          break;\n        }\n\n        change(state, to_normal, context(rx_role_pre, 4));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_pre, 5));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_pre, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role_suf ||\n               stream.match(rx_role_suf, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role_suf, 1));\n        stream.match(/^`/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role_suf, 2));\n        stream.match(rx_TEXT2);\n        token = 'string';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role_suf, 3));\n        stream.match(/^`:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role_suf, 4));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 4:\n        change(state, to_normal, context(rx_role_suf, 5));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 5:\n        change(state, to_normal, context(rx_role_suf, 6));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_role || stream.match(rx_role, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_role, 1));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_role, 2));\n        stream.match(rx_NAME);\n        token = 'keyword';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_role, 3));\n        stream.match(/^:/);\n        token = 'meta';\n        break;\n      case 3:\n        change(state, to_normal, context(rx_role, 4));\n        stream.match(rx_TAIL);\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_substitution_ref ||\n               stream.match(rx_substitution_ref, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_normal, context(rx_substitution_ref, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_normal, context(rx_substitution_ref, 2));\n        if (stream.match(/^_?_?/)) token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation_ref)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_link_ref1)) {\n      change(state, to_normal);\n      if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n        token = 'link';\n      }\n    } else if (phase(state) == rx_link_ref2 ||\n               stream.match(rx_link_ref2, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        if (!stream.peek() || stream.peek().match(/^\\W$/)) {\n          change(state, to_normal, context(rx_link_ref2, 1));\n        } else {\n          stream.match(rx_link_ref2);\n        }\n        break;\n      case 1:\n        change(state, to_normal, context(rx_link_ref2, 2));\n        stream.match(/^`/);\n        token = 'link';\n        break;\n      case 2:\n        change(state, to_normal, context(rx_link_ref2, 3));\n        stream.match(rx_TEXT2);\n        break;\n      case 3:\n        change(state, to_normal, context(rx_link_ref2, 4));\n        stream.match(/^`_/);\n        token = 'link';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_verbatim)) {\n      change(state, to_verbatim);\n    }\n\n    else {\n      if (stream.next()) change(state, to_normal);\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_explicit(stream, state) {\n    var token = null;\n\n    if (phase(state) == rx_substitution ||\n        stream.match(rx_substitution, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_substitution, 1));\n        stream.match(rx_substitution_text);\n        token = 'variable-2';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_substitution, 2));\n        stream.match(rx_substitution_sepa);\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_substitution, 3));\n        stream.match(rx_substitution_name);\n        token = 'keyword';\n        break;\n      case 3:\n        change(state, to_explicit, context(rx_substitution, 4));\n        stream.match(rx_substitution_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_directive ||\n               stream.match(rx_directive, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_directive, 1));\n        stream.match(rx_directive_name);\n        token = 'keyword';\n\n        if (stream.current().match(/^(?:math|latex)/))\n          state.tmp_stex = true;\n        else if (stream.current().match(/^python/))\n          state.tmp_py = true;\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_directive, 2));\n        stream.match(rx_directive_tail);\n        token = 'meta';\n\n        if (stream.match(/^latex\\s*$/) || state.tmp_stex) {\n          state.tmp_stex = undefined; change(state, to_mode, {\n            mode: mode_stex, local: CodeMirror.startState(mode_stex)\n          });\n        }\n        break;\n      case 2:\n        change(state, to_explicit, context(rx_directive, 3));\n        if (stream.match(/^python\\s*$/) || state.tmp_py) {\n          state.tmp_py = undefined; change(state, to_mode, {\n            mode: mode_python, local: CodeMirror.startState(mode_python)\n          });\n        }\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (phase(state) == rx_link || stream.match(rx_link, false)) {\n\n      switch (stage(state)) {\n      case 0:\n        change(state, to_explicit, context(rx_link, 1));\n        stream.match(rx_link_head);\n        stream.match(rx_link_name);\n        token = 'link';\n        break;\n      case 1:\n        change(state, to_explicit, context(rx_link, 2));\n        stream.match(rx_link_tail);\n        token = 'meta';\n        break;\n      default:\n        change(state, to_normal);\n      }\n    } else if (stream.match(rx_footnote)) {\n      change(state, to_normal);\n      token = 'quote';\n    } else if (stream.match(rx_citation)) {\n      change(state, to_normal);\n      token = 'quote';\n    }\n\n    else {\n      stream.eatSpace();\n      if (stream.eol()) {\n        change(state, to_normal);\n      } else {\n        stream.skipToEnd();\n        change(state, to_comment);\n        token = 'comment';\n      }\n    }\n\n    return token;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_comment(stream, state) {\n    return as_block(stream, state, 'comment');\n  }\n\n  function to_verbatim(stream, state) {\n    return as_block(stream, state, 'meta');\n  }\n\n  function as_block(stream, state, token) {\n    if (stream.eol() || stream.eatSpace()) {\n      stream.skipToEnd();\n      return token;\n    } else {\n      change(state, to_normal);\n      return null;\n    }\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function to_mode(stream, state) {\n\n    if (state.ctx.mode && state.ctx.local) {\n\n      if (stream.sol()) {\n        if (!stream.eatSpace()) change(state, to_normal);\n        return null;\n      }\n\n      return state.ctx.mode.token(stream, state.ctx.local);\n    }\n\n    change(state, to_normal);\n    return null;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  function context(phase, stage, mode, local) {\n    return {phase: phase, stage: stage, mode: mode, local: local};\n  }\n\n  function change(state, tok, ctx) {\n    state.tok = tok;\n    state.ctx = ctx || {};\n  }\n\n  function stage(state) {\n    return state.ctx.stage || 0;\n  }\n\n  function phase(state) {\n    return state.ctx.phase;\n  }\n\n  ///////////////////////////////////////////////////////////////////////////\n  ///////////////////////////////////////////////////////////////////////////\n\n  return {\n    startState: function () {\n      return {tok: to_normal, ctx: context(undefined, 0)};\n    },\n\n    copyState: function (state) {\n      var ctx = state.ctx, tmp = state.tmp;\n      if (ctx.local)\n        ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)};\n      if (tmp)\n        tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)};\n      return {tok: state.tok, ctx: ctx, tmp: tmp};\n    },\n\n    innerMode: function (state) {\n      return state.tmp      ? {state: state.tmp.local, mode: state.tmp.mode}\n      : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode}\n      : null;\n    },\n\n    token: function (stream, state) {\n      return state.tok(stream, state);\n    }\n  };\n}, 'python', 'stex');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\nCodeMirror.defineMIME('text/x-rst', 'rst');\n\n///////////////////////////////////////////////////////////////////////////////\n///////////////////////////////////////////////////////////////////////////////\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ruby/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Ruby mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"ruby.js\"></script>\n<style>\n      .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n      .cm-s-default span.cm-arrow { color: red; }\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Ruby</a>\n  </ul>\n</div>\n\n<article>\n<h2>Ruby mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# Code from http://sandbox.mc.edu/~bennet/ruby/code/poly_rb.html\n#\n# This program evaluates polynomials.  It first asks for the coefficients\n# of a polynomial, which must be entered on one line, highest-order first.\n# It then requests values of x and will compute the value of the poly for\n# each x.  It will repeatly ask for x values, unless you the user enters\n# a blank line.  It that case, it will ask for another polynomial.  If the\n# user types quit for either input, the program immediately exits.\n#\n\n#\n# Function to evaluate a polynomial at x.  The polynomial is given\n# as a list of coefficients, from the greatest to the least.\ndef polyval(x, coef)\n    sum = 0\n    coef = coef.clone           # Don't want to destroy the original\n    while true\n        sum += coef.shift       # Add and remove the next coef\n        break if coef.empty?    # If no more, done entirely.\n        sum *= x                # This happens the right number of times.\n    end\n    return sum\nend\n\n#\n# Function to read a line containing a list of integers and return\n# them as an array of integers.  If the string conversion fails, it\n# throws TypeError.  If the input line is the word 'quit', then it\n# converts it to an end-of-file exception\ndef readints(prompt)\n    # Read a line\n    print prompt\n    line = readline.chomp\n    raise EOFError.new if line == 'quit' # You can also use a real EOF.\n            \n    # Go through each item on the line, converting each one and adding it\n    # to retval.\n    retval = [ ]\n    for str in line.split(/\\s+/)\n        if str =~ /^\\-?\\d+$/\n            retval.push(str.to_i)\n        else\n            raise TypeError.new\n        end\n    end\n\n    return retval\nend\n\n#\n# Take a coeff and an exponent and return the string representation, ignoring\n# the sign of the coefficient.\ndef term_to_str(coef, exp)\n    ret = \"\"\n\n    # Show coeff, unless it's 1 or at the right\n    coef = coef.abs\n    ret = coef.to_s     unless coef == 1 && exp > 0\n    ret += \"x\" if exp > 0                               # x if exponent not 0\n    ret += \"^\" + exp.to_s if exp > 1                    # ^exponent, if > 1.\n\n    return ret\nend\n\n#\n# Create a string of the polynomial in sort-of-readable form.\ndef polystr(p)\n    # Get the exponent of first coefficient, plus 1.\n    exp = p.length\n\n    # Assign exponents to each term, making pairs of coeff and exponent,\n    # Then get rid of the zero terms.\n    p = (p.map { |c| exp -= 1; [ c, exp ] }).select { |p| p[0] != 0 }\n\n    # If there's nothing left, it's a zero\n    return \"0\" if p.empty?\n\n    # *** Now p is a non-empty list of [ coef, exponent ] pairs. ***\n\n    # Convert the first term, preceded by a \"-\" if it's negative.\n    result = (if p[0][0] < 0 then \"-\" else \"\" end) + term_to_str(*p[0])\n\n    # Convert the rest of the terms, in each case adding the appropriate\n    # + or - separating them.  \n    for term in p[1...p.length]\n        # Add the separator then the rep. of the term.\n        result += (if term[0] < 0 then \" - \" else \" + \" end) + \n                term_to_str(*term)\n    end\n\n    return result\nend\n        \n#\n# Run until some kind of endfile.\nbegin\n    # Repeat until an exception or quit gets us out.\n    while true\n        # Read a poly until it works.  An EOF will except out of the\n        # program.\n        print \"\\n\"\n        begin\n            poly = readints(\"Enter a polynomial coefficients: \")\n        rescue TypeError\n            print \"Try again.\\n\"\n            retry\n        end\n        break if poly.empty?\n\n        # Read and evaluate x values until the user types a blank line.\n        # Again, an EOF will except out of the pgm.\n        while true\n            # Request an integer.\n            print \"Enter x value or blank line: \"\n            x = readline.chomp\n            break if x == ''\n            raise EOFError.new if x == 'quit'\n\n            # If it looks bad, let's try again.\n            if x !~ /^\\-?\\d+$/\n                print \"That doesn't look like an integer.  Please try again.\\n\"\n                next\n            end\n\n            # Convert to an integer and print the result.\n            x = x.to_i\n            print \"p(x) = \", polystr(poly), \"\\n\"\n            print \"p(\", x, \") = \", polyval(x, poly), \"\\n\"\n        end\n    end\nrescue EOFError\n    print \"\\n=== EOF ===\\n\"\nrescue Interrupt, SignalException\n    print \"\\n=== Interrupted ===\\n\"\nelse\n    print \"--- Bye ---\\n\"\nend\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/x-ruby\",\n        matchBrackets: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-ruby</code>.</p>\n\n    <p>Development of the CodeMirror Ruby mode was kindly sponsored\n    by <a href=\"http://ubalo.com/\">Ubalo</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ruby/ruby.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"ruby\", function(config) {\n  function wordObj(words) {\n    var o = {};\n    for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n    return o;\n  }\n  var keywords = wordObj([\n    \"alias\", \"and\", \"BEGIN\", \"begin\", \"break\", \"case\", \"class\", \"def\", \"defined?\", \"do\", \"else\",\n    \"elsif\", \"END\", \"end\", \"ensure\", \"false\", \"for\", \"if\", \"in\", \"module\", \"next\", \"not\", \"or\",\n    \"redo\", \"rescue\", \"retry\", \"return\", \"self\", \"super\", \"then\", \"true\", \"undef\", \"unless\",\n    \"until\", \"when\", \"while\", \"yield\", \"nil\", \"raise\", \"throw\", \"catch\", \"fail\", \"loop\", \"callcc\",\n    \"caller\", \"lambda\", \"proc\", \"public\", \"protected\", \"private\", \"require\", \"load\",\n    \"require_relative\", \"extend\", \"autoload\", \"__END__\", \"__FILE__\", \"__LINE__\", \"__dir__\"\n  ]);\n  var indentWords = wordObj([\"def\", \"class\", \"case\", \"for\", \"while\", \"module\", \"then\",\n                             \"catch\", \"loop\", \"proc\", \"begin\"]);\n  var dedentWords = wordObj([\"end\", \"until\"]);\n  var matching = {\"[\": \"]\", \"{\": \"}\", \"(\": \")\"};\n  var curPunc;\n\n  function chain(newtok, stream, state) {\n    state.tokenize.push(newtok);\n    return newtok(stream, state);\n  }\n\n  function tokenBase(stream, state) {\n    curPunc = null;\n    if (stream.sol() && stream.match(\"=begin\") && stream.eol()) {\n      state.tokenize.push(readBlockComment);\n      return \"comment\";\n    }\n    if (stream.eatSpace()) return null;\n    var ch = stream.next(), m;\n    if (ch == \"`\" || ch == \"'\" || ch == '\"') {\n      return chain(readQuoted(ch, \"string\", ch == '\"' || ch == \"`\"), stream, state);\n    } else if (ch == \"/\") {\n      var currentIndex = stream.current().length;\n      if (stream.skipTo(\"/\")) {\n        var search_till = stream.current().length;\n        stream.backUp(stream.current().length - currentIndex);\n        var balance = 0;  // balance brackets\n        while (stream.current().length < search_till) {\n          var chchr = stream.next();\n          if (chchr == \"(\") balance += 1;\n          else if (chchr == \")\") balance -= 1;\n          if (balance < 0) break;\n        }\n        stream.backUp(stream.current().length - currentIndex);\n        if (balance == 0)\n          return chain(readQuoted(ch, \"string-2\", true), stream, state);\n      }\n      return \"operator\";\n    } else if (ch == \"%\") {\n      var style = \"string\", embed = true;\n      if (stream.eat(\"s\")) style = \"atom\";\n      else if (stream.eat(/[WQ]/)) style = \"string\";\n      else if (stream.eat(/[r]/)) style = \"string-2\";\n      else if (stream.eat(/[wxq]/)) { style = \"string\"; embed = false; }\n      var delim = stream.eat(/[^\\w\\s=]/);\n      if (!delim) return \"operator\";\n      if (matching.propertyIsEnumerable(delim)) delim = matching[delim];\n      return chain(readQuoted(delim, style, embed, true), stream, state);\n    } else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"<\" && (m = stream.match(/^<-?[\\`\\\"\\']?([a-zA-Z_?]\\w*)[\\`\\\"\\']?(?:;|$)/))) {\n      return chain(readHereDoc(m[1]), stream, state);\n    } else if (ch == \"0\") {\n      if (stream.eat(\"x\")) stream.eatWhile(/[\\da-fA-F]/);\n      else if (stream.eat(\"b\")) stream.eatWhile(/[01]/);\n      else stream.eatWhile(/[0-7]/);\n      return \"number\";\n    } else if (/\\d/.test(ch)) {\n      stream.match(/^[\\d_]*(?:\\.[\\d_]+)?(?:[eE][+\\-]?[\\d_]+)?/);\n      return \"number\";\n    } else if (ch == \"?\") {\n      while (stream.match(/^\\\\[CM]-/)) {}\n      if (stream.eat(\"\\\\\")) stream.eatWhile(/\\w/);\n      else stream.next();\n      return \"string\";\n    } else if (ch == \":\") {\n      if (stream.eat(\"'\")) return chain(readQuoted(\"'\", \"atom\", false), stream, state);\n      if (stream.eat('\"')) return chain(readQuoted('\"', \"atom\", true), stream, state);\n\n      // :> :>> :< :<< are valid symbols\n      if (stream.eat(/[\\<\\>]/)) {\n        stream.eat(/[\\<\\>]/);\n        return \"atom\";\n      }\n\n      // :+ :- :/ :* :| :& :! are valid symbols\n      if (stream.eat(/[\\+\\-\\*\\/\\&\\|\\:\\!]/)) {\n        return \"atom\";\n      }\n\n      // Symbols can't start by a digit\n      if (stream.eat(/[a-zA-Z$@_\\xa1-\\uffff]/)) {\n        stream.eatWhile(/[\\w$\\xa1-\\uffff]/);\n        // Only one ? ! = is allowed and only as the last character\n        stream.eat(/[\\?\\!\\=]/);\n        return \"atom\";\n      }\n      return \"operator\";\n    } else if (ch == \"@\" && stream.match(/^@?[a-zA-Z_\\xa1-\\uffff]/)) {\n      stream.eat(\"@\");\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      return \"variable-2\";\n    } else if (ch == \"$\") {\n      if (stream.eat(/[a-zA-Z_]/)) {\n        stream.eatWhile(/[\\w]/);\n      } else if (stream.eat(/\\d/)) {\n        stream.eat(/\\d/);\n      } else {\n        stream.next(); // Must be a special global like $: or $!\n      }\n      return \"variable-3\";\n    } else if (/[a-zA-Z_\\xa1-\\uffff]/.test(ch)) {\n      stream.eatWhile(/[\\w\\xa1-\\uffff]/);\n      stream.eat(/[\\?\\!]/);\n      if (stream.eat(\":\")) return \"atom\";\n      return \"ident\";\n    } else if (ch == \"|\" && (state.varList || state.lastTok == \"{\" || state.lastTok == \"do\")) {\n      curPunc = \"|\";\n      return null;\n    } else if (/[\\(\\)\\[\\]{}\\\\;]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    } else if (ch == \"-\" && stream.eat(\">\")) {\n      return \"arrow\";\n    } else if (/[=+\\-\\/*:\\.^%<>~|]/.test(ch)) {\n      var more = stream.eatWhile(/[=+\\-\\/*:\\.^%<>~|]/);\n      if (ch == \".\" && !more) curPunc = \".\";\n      return \"operator\";\n    } else {\n      return null;\n    }\n  }\n\n  function tokenBaseUntilBrace(depth) {\n    if (!depth) depth = 1;\n    return function(stream, state) {\n      if (stream.peek() == \"}\") {\n        if (depth == 1) {\n          state.tokenize.pop();\n          return state.tokenize[state.tokenize.length-1](stream, state);\n        } else {\n          state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1);\n        }\n      } else if (stream.peek() == \"{\") {\n        state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1);\n      }\n      return tokenBase(stream, state);\n    };\n  }\n  function tokenBaseOnce() {\n    var alreadyCalled = false;\n    return function(stream, state) {\n      if (alreadyCalled) {\n        state.tokenize.pop();\n        return state.tokenize[state.tokenize.length-1](stream, state);\n      }\n      alreadyCalled = true;\n      return tokenBase(stream, state);\n    };\n  }\n  function readQuoted(quote, style, embed, unescaped) {\n    return function(stream, state) {\n      var escaped = false, ch;\n\n      if (state.context.type === 'read-quoted-paused') {\n        state.context = state.context.prev;\n        stream.eat(\"}\");\n      }\n\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && (unescaped || !escaped)) {\n          state.tokenize.pop();\n          break;\n        }\n        if (embed && ch == \"#\" && !escaped) {\n          if (stream.eat(\"{\")) {\n            if (quote == \"}\") {\n              state.context = {prev: state.context, type: 'read-quoted-paused'};\n            }\n            state.tokenize.push(tokenBaseUntilBrace());\n            break;\n          } else if (/[@\\$]/.test(stream.peek())) {\n            state.tokenize.push(tokenBaseOnce());\n            break;\n          }\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return style;\n    };\n  }\n  function readHereDoc(phrase) {\n    return function(stream, state) {\n      if (stream.match(phrase)) state.tokenize.pop();\n      else stream.skipToEnd();\n      return \"string\";\n    };\n  }\n  function readBlockComment(stream, state) {\n    if (stream.sol() && stream.match(\"=end\") && stream.eol())\n      state.tokenize.pop();\n    stream.skipToEnd();\n    return \"comment\";\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: [tokenBase],\n              indented: 0,\n              context: {type: \"top\", indented: -config.indentUnit},\n              continuedLine: false,\n              lastTok: null,\n              varList: false};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) state.indented = stream.indentation();\n      var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype;\n      var thisTok = curPunc;\n      if (style == \"ident\") {\n        var word = stream.current();\n        style = state.lastTok == \".\" ? \"property\"\n          : keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n          : /^[A-Z]/.test(word) ? \"tag\"\n          : (state.lastTok == \"def\" || state.lastTok == \"class\" || state.varList) ? \"def\"\n          : \"variable\";\n        if (style == \"keyword\") {\n          thisTok = word;\n          if (indentWords.propertyIsEnumerable(word)) kwtype = \"indent\";\n          else if (dedentWords.propertyIsEnumerable(word)) kwtype = \"dedent\";\n          else if ((word == \"if\" || word == \"unless\") && stream.column() == stream.indentation())\n            kwtype = \"indent\";\n          else if (word == \"do\" && state.context.indented < state.indented)\n            kwtype = \"indent\";\n        }\n      }\n      if (curPunc || (style && style != \"comment\")) state.lastTok = thisTok;\n      if (curPunc == \"|\") state.varList = !state.varList;\n\n      if (kwtype == \"indent\" || /[\\(\\[\\{]/.test(curPunc))\n        state.context = {prev: state.context, type: curPunc || style, indented: state.indented};\n      else if ((kwtype == \"dedent\" || /[\\)\\]\\}]/.test(curPunc)) && state.context.prev)\n        state.context = state.context.prev;\n\n      if (stream.eol())\n        state.continuedLine = (curPunc == \"\\\\\" || style == \"operator\");\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0);\n      var ct = state.context;\n      var closing = ct.type == matching[firstChar] ||\n        ct.type == \"keyword\" && /^(?:end|until|else|elsif|when|rescue)\\b/.test(textAfter);\n      return ct.indented + (closing ? 0 : config.indentUnit) +\n        (state.continuedLine ? config.indentUnit : 0);\n    },\n\n    electricChars: \"}de\", // enD and rescuE\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-ruby\", \"ruby\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/ruby/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"ruby\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"divide_equal_operator\",\n     \"[variable bar] [operator /=] [variable foo]\");\n\n  MT(\"divide_equal_operator_no_spacing\",\n     \"[variable foo][operator /=][number 42]\");\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rust/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Rust mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"rust.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Rust</a>\n  </ul>\n</div>\n\n<article>\n<h2>Rust mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n// Demo code.\n\ntype foo<T> = int;\nenum bar {\n    some(int, foo<float>),\n    none\n}\n\nfn check_crate(x: int) {\n    let v = 10;\n    alt foo {\n      1 to 3 {\n        print_foo();\n        if x {\n            blah() + 10;\n        }\n      }\n      (x, y) { \"bye\" }\n      _ { \"hi\" }\n    }\n}\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-rustsrc</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/rust/rust.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"rust\", function() {\n  var indentUnit = 4, altIndentUnit = 2;\n  var valKeywords = {\n    \"if\": \"if-style\", \"while\": \"if-style\", \"loop\": \"else-style\", \"else\": \"else-style\",\n    \"do\": \"else-style\", \"ret\": \"else-style\", \"fail\": \"else-style\",\n    \"break\": \"atom\", \"cont\": \"atom\", \"const\": \"let\", \"resource\": \"fn\",\n    \"let\": \"let\", \"fn\": \"fn\", \"for\": \"for\", \"alt\": \"alt\", \"iface\": \"iface\",\n    \"impl\": \"impl\", \"type\": \"type\", \"enum\": \"enum\", \"mod\": \"mod\",\n    \"as\": \"op\", \"true\": \"atom\", \"false\": \"atom\", \"assert\": \"op\", \"check\": \"op\",\n    \"claim\": \"op\", \"native\": \"ignore\", \"unsafe\": \"ignore\", \"import\": \"else-style\",\n    \"export\": \"else-style\", \"copy\": \"op\", \"log\": \"op\", \"log_err\": \"op\",\n    \"use\": \"op\", \"bind\": \"op\", \"self\": \"atom\", \"struct\": \"enum\"\n  };\n  var typeKeywords = function() {\n    var keywords = {\"fn\": \"fn\", \"block\": \"fn\", \"obj\": \"obj\"};\n    var atoms = \"bool uint int i8 i16 i32 i64 u8 u16 u32 u64 float f32 f64 str char\".split(\" \");\n    for (var i = 0, e = atoms.length; i < e; ++i) keywords[atoms[i]] = \"atom\";\n    return keywords;\n  }();\n  var operatorChar = /[+\\-*&%=<>!?|\\.@]/;\n\n  // Tokenizer\n\n  // Used as scratch variable to communicate multiple values without\n  // consing up tons of objects.\n  var tcat, content;\n  function r(tc, style) {\n    tcat = tc;\n    return style;\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"') {\n      state.tokenize = tokenString;\n      return state.tokenize(stream, state);\n    }\n    if (ch == \"'\") {\n      tcat = \"atom\";\n      if (stream.eat(\"\\\\\")) {\n        if (stream.skipTo(\"'\")) { stream.next(); return \"string\"; }\n        else { return \"error\"; }\n      } else {\n        stream.next();\n        return stream.eat(\"'\") ? \"string\" : \"error\";\n      }\n    }\n    if (ch == \"/\") {\n      if (stream.eat(\"/\")) { stream.skipToEnd(); return \"comment\"; }\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment(1);\n        return state.tokenize(stream, state);\n      }\n    }\n    if (ch == \"#\") {\n      if (stream.eat(\"[\")) { tcat = \"open-attr\"; return null; }\n      stream.eatWhile(/\\w/);\n      return r(\"macro\", \"meta\");\n    }\n    if (ch == \":\" && stream.match(\":<\")) {\n      return r(\"op\", null);\n    }\n    if (ch.match(/\\d/) || (ch == \".\" && stream.eat(/\\d/))) {\n      var flp = false;\n      if (!stream.match(/^x[\\da-f]+/i) && !stream.match(/^b[01]+/)) {\n        stream.eatWhile(/\\d/);\n        if (stream.eat(\".\")) { flp = true; stream.eatWhile(/\\d/); }\n        if (stream.match(/^e[+\\-]?\\d+/i)) { flp = true; }\n      }\n      if (flp) stream.match(/^f(?:32|64)/);\n      else stream.match(/^[ui](?:8|16|32|64)/);\n      return r(\"atom\", \"number\");\n    }\n    if (ch.match(/[()\\[\\]{}:;,]/)) return r(ch, null);\n    if (ch == \"-\" && stream.eat(\">\")) return r(\"->\", null);\n    if (ch.match(operatorChar)) {\n      stream.eatWhile(operatorChar);\n      return r(\"op\", null);\n    }\n    stream.eatWhile(/\\w/);\n    content = stream.current();\n    if (stream.match(/^::\\w/)) {\n      stream.backUp(1);\n      return r(\"prefix\", \"variable-2\");\n    }\n    if (state.keywords.propertyIsEnumerable(content))\n      return r(state.keywords[content], content.match(/true|false/) ? \"atom\" : \"keyword\");\n    return r(\"name\", \"variable\");\n  }\n\n  function tokenString(stream, state) {\n    var ch, escaped = false;\n    while (ch = stream.next()) {\n      if (ch == '\"' && !escaped) {\n        state.tokenize = tokenBase;\n        return r(\"atom\", \"string\");\n      }\n      escaped = !escaped && ch == \"\\\\\";\n    }\n    // Hack to not confuse the parser when a string is split in\n    // pieces.\n    return r(\"op\", \"string\");\n  }\n\n  function tokenComment(depth) {\n    return function(stream, state) {\n      var lastCh = null, ch;\n      while (ch = stream.next()) {\n        if (ch == \"/\" && lastCh == \"*\") {\n          if (depth == 1) {\n            state.tokenize = tokenBase;\n            break;\n          } else {\n            state.tokenize = tokenComment(depth - 1);\n            return state.tokenize(stream, state);\n          }\n        }\n        if (ch == \"*\" && lastCh == \"/\") {\n          state.tokenize = tokenComment(depth + 1);\n          return state.tokenize(stream, state);\n        }\n        lastCh = ch;\n      }\n      return \"comment\";\n    };\n  }\n\n  // Parser\n\n  var cx = {state: null, stream: null, marked: null, cc: null};\n  function pass() {\n    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n  }\n  function cont() {\n    pass.apply(null, arguments);\n    return true;\n  }\n\n  function pushlex(type, info) {\n    var result = function() {\n      var state = cx.state;\n      state.lexical = {indented: state.indented, column: cx.stream.column(),\n                       type: type, prev: state.lexical, info: info};\n    };\n    result.lex = true;\n    return result;\n  }\n  function poplex() {\n    var state = cx.state;\n    if (state.lexical.prev) {\n      if (state.lexical.type == \")\")\n        state.indented = state.lexical.indented;\n      state.lexical = state.lexical.prev;\n    }\n  }\n  function typecx() { cx.state.keywords = typeKeywords; }\n  function valcx() { cx.state.keywords = valKeywords; }\n  poplex.lex = typecx.lex = valcx.lex = true;\n\n  function commasep(comb, end) {\n    function more(type) {\n      if (type == \",\") return cont(comb, more);\n      if (type == end) return cont();\n      return cont(more);\n    }\n    return function(type) {\n      if (type == end) return cont();\n      return pass(comb, more);\n    };\n  }\n\n  function stat_of(comb, tag) {\n    return cont(pushlex(\"stat\", tag), comb, poplex, block);\n  }\n  function block(type) {\n    if (type == \"}\") return cont();\n    if (type == \"let\") return stat_of(letdef1, \"let\");\n    if (type == \"fn\") return stat_of(fndef);\n    if (type == \"type\") return cont(pushlex(\"stat\"), tydef, endstatement, poplex, block);\n    if (type == \"enum\") return stat_of(enumdef);\n    if (type == \"mod\") return stat_of(mod);\n    if (type == \"iface\") return stat_of(iface);\n    if (type == \"impl\") return stat_of(impl);\n    if (type == \"open-attr\") return cont(pushlex(\"]\"), commasep(expression, \"]\"), poplex);\n    if (type == \"ignore\" || type.match(/[\\]\\);,]/)) return cont(block);\n    return pass(pushlex(\"stat\"), expression, poplex, endstatement, block);\n  }\n  function endstatement(type) {\n    if (type == \";\") return cont();\n    return pass();\n  }\n  function expression(type) {\n    if (type == \"atom\" || type == \"name\") return cont(maybeop);\n    if (type == \"{\") return cont(pushlex(\"}\"), exprbrace, poplex);\n    if (type.match(/[\\[\\(]/)) return matchBrackets(type, expression);\n    if (type.match(/[\\]\\)\\};,]/)) return pass();\n    if (type == \"if-style\") return cont(expression, expression);\n    if (type == \"else-style\" || type == \"op\") return cont(expression);\n    if (type == \"for\") return cont(pattern, maybetype, inop, expression, expression);\n    if (type == \"alt\") return cont(expression, altbody);\n    if (type == \"fn\") return cont(fndef);\n    if (type == \"macro\") return cont(macro);\n    return cont();\n  }\n  function maybeop(type) {\n    if (content == \".\") return cont(maybeprop);\n    if (content == \"::<\"){return cont(typarams, maybeop);}\n    if (type == \"op\" || content == \":\") return cont(expression);\n    if (type == \"(\" || type == \"[\") return matchBrackets(type, expression);\n    return pass();\n  }\n  function maybeprop() {\n    if (content.match(/^\\w+$/)) {cx.marked = \"variable\"; return cont(maybeop);}\n    return pass(expression);\n  }\n  function exprbrace(type) {\n    if (type == \"op\") {\n      if (content == \"|\") return cont(blockvars, poplex, pushlex(\"}\", \"block\"), block);\n      if (content == \"||\") return cont(poplex, pushlex(\"}\", \"block\"), block);\n    }\n    if (content == \"mutable\" || (content.match(/^\\w+$/) && cx.stream.peek() == \":\"\n                                 && !cx.stream.match(\"::\", false)))\n      return pass(record_of(expression));\n    return pass(block);\n  }\n  function record_of(comb) {\n    function ro(type) {\n      if (content == \"mutable\" || content == \"with\") {cx.marked = \"keyword\"; return cont(ro);}\n      if (content.match(/^\\w*$/)) {cx.marked = \"variable\"; return cont(ro);}\n      if (type == \":\") return cont(comb, ro);\n      if (type == \"}\") return cont();\n      return cont(ro);\n    }\n    return ro;\n  }\n  function blockvars(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(blockvars);}\n    if (type == \"op\" && content == \"|\") return cont();\n    return cont(blockvars);\n  }\n\n  function letdef1(type) {\n    if (type.match(/[\\]\\)\\};]/)) return cont();\n    if (content == \"=\") return cont(expression, letdef2);\n    if (type == \",\") return cont(letdef1);\n    return pass(pattern, maybetype, letdef1);\n  }\n  function letdef2(type) {\n    if (type.match(/[\\]\\)\\};,]/)) return pass(letdef1);\n    else return pass(expression, letdef2);\n  }\n  function maybetype(type) {\n    if (type == \":\") return cont(typecx, rtype, valcx);\n    return pass();\n  }\n  function inop(type) {\n    if (type == \"name\" && content == \"in\") {cx.marked = \"keyword\"; return cont();}\n    return pass();\n  }\n  function fndef(type) {\n    if (content == \"@\" || content == \"~\") {cx.marked = \"keyword\"; return cont(fndef);}\n    if (type == \"name\") {cx.marked = \"def\"; return cont(fndef);}\n    if (content == \"<\") return cont(typarams, fndef);\n    if (type == \"{\") return pass(expression);\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(argdef, \")\"), poplex, fndef);\n    if (type == \"->\") return cont(typecx, rtype, valcx, fndef);\n    if (type == \";\") return cont();\n    return cont(fndef);\n  }\n  function tydef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(tydef);}\n    if (content == \"<\") return cont(typarams, tydef);\n    if (content == \"=\") return cont(typecx, rtype, valcx);\n    return cont(tydef);\n  }\n  function enumdef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(enumdef);}\n    if (content == \"<\") return cont(typarams, enumdef);\n    if (content == \"=\") return cont(typecx, rtype, valcx, endstatement);\n    if (type == \"{\") return cont(pushlex(\"}\"), typecx, enumblock, valcx, poplex);\n    return cont(enumdef);\n  }\n  function enumblock(type) {\n    if (type == \"}\") return cont();\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(rtype, \")\"), poplex, enumblock);\n    if (content.match(/^\\w+$/)) cx.marked = \"def\";\n    return cont(enumblock);\n  }\n  function mod(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(mod);}\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function iface(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(iface);}\n    if (content == \"<\") return cont(typarams, iface);\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function impl(type) {\n    if (content == \"<\") return cont(typarams, impl);\n    if (content == \"of\" || content == \"for\") {cx.marked = \"keyword\"; return cont(rtype, impl);}\n    if (type == \"name\") {cx.marked = \"def\"; return cont(impl);}\n    if (type == \"{\") return cont(pushlex(\"}\"), block, poplex);\n    return pass();\n  }\n  function typarams() {\n    if (content == \">\") return cont();\n    if (content == \",\") return cont(typarams);\n    if (content == \":\") return cont(rtype, typarams);\n    return pass(rtype, typarams);\n  }\n  function argdef(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(argdef);}\n    if (type == \":\") return cont(typecx, rtype, valcx);\n    return pass();\n  }\n  function rtype(type) {\n    if (type == \"name\") {cx.marked = \"variable-3\"; return cont(rtypemaybeparam); }\n    if (content == \"mutable\") {cx.marked = \"keyword\"; return cont(rtype);}\n    if (type == \"atom\") return cont(rtypemaybeparam);\n    if (type == \"op\" || type == \"obj\") return cont(rtype);\n    if (type == \"fn\") return cont(fntype);\n    if (type == \"{\") return cont(pushlex(\"{\"), record_of(rtype), poplex);\n    return matchBrackets(type, rtype);\n  }\n  function rtypemaybeparam() {\n    if (content == \"<\") return cont(typarams);\n    return pass();\n  }\n  function fntype(type) {\n    if (type == \"(\") return cont(pushlex(\"(\"), commasep(rtype, \")\"), poplex, fntype);\n    if (type == \"->\") return cont(rtype);\n    return pass();\n  }\n  function pattern(type) {\n    if (type == \"name\") {cx.marked = \"def\"; return cont(patternmaybeop);}\n    if (type == \"atom\") return cont(patternmaybeop);\n    if (type == \"op\") return cont(pattern);\n    if (type.match(/[\\]\\)\\};,]/)) return pass();\n    return matchBrackets(type, pattern);\n  }\n  function patternmaybeop(type) {\n    if (type == \"op\" && content == \".\") return cont();\n    if (content == \"to\") {cx.marked = \"keyword\"; return cont(pattern);}\n    else return pass();\n  }\n  function altbody(type) {\n    if (type == \"{\") return cont(pushlex(\"}\", \"alt\"), altblock1, poplex);\n    return pass();\n  }\n  function altblock1(type) {\n    if (type == \"}\") return cont();\n    if (type == \"|\") return cont(altblock1);\n    if (content == \"when\") {cx.marked = \"keyword\"; return cont(expression, altblock2);}\n    if (type.match(/[\\]\\);,]/)) return cont(altblock1);\n    return pass(pattern, altblock2);\n  }\n  function altblock2(type) {\n    if (type == \"{\") return cont(pushlex(\"}\", \"alt\"), block, poplex, altblock1);\n    else return pass(altblock1);\n  }\n\n  function macro(type) {\n    if (type.match(/[\\[\\(\\{]/)) return matchBrackets(type, expression);\n    return pass();\n  }\n  function matchBrackets(type, comb) {\n    if (type == \"[\") return cont(pushlex(\"]\"), commasep(comb, \"]\"), poplex);\n    if (type == \"(\") return cont(pushlex(\")\"), commasep(comb, \")\"), poplex);\n    if (type == \"{\") return cont(pushlex(\"}\"), commasep(comb, \"}\"), poplex);\n    return cont();\n  }\n\n  function parse(state, stream, style) {\n    var cc = state.cc;\n    // Communicate our context to the combinators.\n    // (Less wasteful than consing up a hundred closures on every call.)\n    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;\n\n    while (true) {\n      var combinator = cc.length ? cc.pop() : block;\n      if (combinator(tcat)) {\n        while(cc.length && cc[cc.length - 1].lex)\n          cc.pop()();\n        return cx.marked || style;\n      }\n    }\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        cc: [],\n        lexical: {indented: -indentUnit, column: 0, type: \"top\", align: false},\n        keywords: valKeywords,\n        indented: 0\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (!state.lexical.hasOwnProperty(\"align\"))\n          state.lexical.align = false;\n        state.indented = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      tcat = content = null;\n      var style = state.tokenize(stream, state);\n      if (style == \"comment\") return style;\n      if (!state.lexical.hasOwnProperty(\"align\"))\n        state.lexical.align = true;\n      if (tcat == \"prefix\") return style;\n      if (!content) content = stream.current();\n      return parse(state, stream, style);\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase) return 0;\n      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical,\n          type = lexical.type, closing = firstChar == type;\n      if (type == \"stat\") return lexical.indented + indentUnit;\n      if (lexical.align) return lexical.column + (closing ? 0 : 1);\n      return lexical.indented + (closing ? 0 : (lexical.info == \"alt\" ? altIndentUnit : indentUnit));\n    },\n\n    electricChars: \"{}\",\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\",\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-rustsrc\", \"rust\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sass/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Sass mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"sass.js\"></script>\n<style>.CodeMirror {border: 1px solid #ddd; font-size:12px; height: 400px}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Sass</a>\n  </ul>\n</div>\n\n<article>\n<h2>Sass mode</h2>\n<form><textarea id=\"code\" name=\"code\">// Variable Definitions\n\n$page-width:    800px\n$sidebar-width: 200px\n$primary-color: #eeeeee\n\n// Global Attributes\n\nbody\n  font:\n    family: sans-serif\n    size: 30em\n    weight: bold\n\n// Scoped Styles\n\n#contents\n  width: $page-width\n  #sidebar\n    float: right\n    width: $sidebar-width\n  #main\n    width: $page-width - $sidebar-width\n    background: $primary-color\n    h2\n      color: blue\n\n#footer\n  height: 200px\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers : true,\n        matchBrackets : true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-sass</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sass/sass.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sass\", function(config) {\n  function tokenRegexp(words) {\n    return new RegExp(\"^\" + words.join(\"|\"));\n  }\n\n  var keywords = [\"true\", \"false\", \"null\", \"auto\"];\n  var keywordsRegexp = new RegExp(\"^\" + keywords.join(\"|\"));\n\n  var operators = [\"\\\\(\", \"\\\\)\", \"=\", \">\", \"<\", \"==\", \">=\", \"<=\", \"\\\\+\", \"-\",\n                   \"\\\\!=\", \"/\", \"\\\\*\", \"%\", \"and\", \"or\", \"not\", \";\",\"\\\\{\",\"\\\\}\",\":\"];\n  var opRegexp = tokenRegexp(operators);\n\n  var pseudoElementsRegexp = /^::?[a-zA-Z_][\\w\\-]*/;\n\n  function urlTokens(stream, state) {\n    var ch = stream.peek();\n\n    if (ch === \")\") {\n      stream.next();\n      state.tokenizer = tokenBase;\n      return \"operator\";\n    } else if (ch === \"(\") {\n      stream.next();\n      stream.eatSpace();\n\n      return \"operator\";\n    } else if (ch === \"'\" || ch === '\"') {\n      state.tokenizer = buildStringTokenizer(stream.next());\n      return \"string\";\n    } else {\n      state.tokenizer = buildStringTokenizer(\")\", false);\n      return \"string\";\n    }\n  }\n  function comment(indentation, multiLine) {\n    return function(stream, state) {\n      if (stream.sol() && stream.indentation() <= indentation) {\n        state.tokenizer = tokenBase;\n        return tokenBase(stream, state);\n      }\n\n      if (multiLine && stream.skipTo(\"*/\")) {\n        stream.next();\n        stream.next();\n        state.tokenizer = tokenBase;\n      } else {\n        stream.skipToEnd();\n      }\n\n      return \"comment\";\n    };\n  }\n\n  function buildStringTokenizer(quote, greedy) {\n    if (greedy == null) { greedy = true; }\n\n    function stringTokenizer(stream, state) {\n      var nextChar = stream.next();\n      var peekChar = stream.peek();\n      var previousChar = stream.string.charAt(stream.pos-2);\n\n      var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) || (nextChar === quote && previousChar !== \"\\\\\"));\n\n      if (endingString) {\n        if (nextChar !== quote && greedy) { stream.next(); }\n        state.tokenizer = tokenBase;\n        return \"string\";\n      } else if (nextChar === \"#\" && peekChar === \"{\") {\n        state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n        stream.next();\n        return \"operator\";\n      } else {\n        return \"string\";\n      }\n    }\n\n    return stringTokenizer;\n  }\n\n  function buildInterpolationTokenizer(currentTokenizer) {\n    return function(stream, state) {\n      if (stream.peek() === \"}\") {\n        stream.next();\n        state.tokenizer = currentTokenizer;\n        return \"operator\";\n      } else {\n        return tokenBase(stream, state);\n      }\n    };\n  }\n\n  function indent(state) {\n    if (state.indentCount == 0) {\n      state.indentCount++;\n      var lastScopeOffset = state.scopes[0].offset;\n      var currentOffset = lastScopeOffset + config.indentUnit;\n      state.scopes.unshift({ offset:currentOffset });\n    }\n  }\n\n  function dedent(state) {\n    if (state.scopes.length == 1) return;\n\n    state.scopes.shift();\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek();\n\n    // Comment\n    if (stream.match(\"/*\")) {\n      state.tokenizer = comment(stream.indentation(), true);\n      return state.tokenizer(stream, state);\n    }\n    if (stream.match(\"//\")) {\n      state.tokenizer = comment(stream.indentation(), false);\n      return state.tokenizer(stream, state);\n    }\n\n    // Interpolation\n    if (stream.match(\"#{\")) {\n      state.tokenizer = buildInterpolationTokenizer(tokenBase);\n      return \"operator\";\n    }\n\n    // Strings\n    if (ch === '\"' || ch === \"'\") {\n      stream.next();\n      state.tokenizer = buildStringTokenizer(ch);\n      return \"string\";\n    }\n\n    if(!state.cursorHalf){// state.cursorHalf === 0\n    // first half i.e. before : for key-value pairs\n    // including selectors\n\n      if (ch === \".\") {\n        stream.next();\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"atom\";\n        } else if (stream.peek() === \"#\") {\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      if (ch === \"#\") {\n        stream.next();\n        // ID selectors\n        if (stream.match(/^[\\w-]+/)) {\n          indent(state);\n          return \"atom\";\n        }\n        if (stream.peek() === \"#\") {\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"variable-2\";\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/))\n        return \"number\";\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/))\n        return \"unit\";\n\n      if (stream.match(keywordsRegexp))\n        return \"keyword\";\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        return \"atom\";\n      }\n\n      if (ch === \"=\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^=[\\w-]+/)) {\n          indent(state);\n          return \"meta\";\n        }\n      }\n\n      if (ch === \"+\") {\n        // Match shortcut mixin definition\n        if (stream.match(/^\\+[\\w-]+/)){\n          return \"variable-3\";\n        }\n      }\n\n      if(ch === \"@\"){\n        if(stream.match(/@extend/)){\n          if(!stream.match(/\\s*[\\w]/))\n            dedent(state);\n        }\n      }\n\n\n      // Indent Directives\n      if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {\n        indent(state);\n        return \"meta\";\n      }\n\n      // Other Directives\n      if (ch === \"@\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        return \"meta\";\n      }\n\n      if (stream.eatWhile(/[\\w-]/)){\n        if(stream.match(/ *: *[\\w-\\+\\$#!\\(\"']/,false)){\n          return \"propery\";\n        }\n        else if(stream.match(/ *:/,false)){\n          indent(state);\n          state.cursorHalf = 1;\n          return \"atom\";\n        }\n        else if(stream.match(/ *,/,false)){\n          return \"atom\";\n        }\n        else{\n          indent(state);\n          return \"atom\";\n        }\n      }\n\n      if(ch === \":\"){\n        if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element\n          return \"keyword\";\n        }\n        stream.next();\n        state.cursorHalf=1;\n        return \"operator\";\n      }\n\n    } // cursorHalf===0 ends here\n    else{\n\n      if (ch === \"#\") {\n        stream.next();\n        // Hex numbers\n        if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){\n          if(!stream.peek()){\n            state.cursorHalf = 0;\n          }\n          return \"number\";\n        }\n      }\n\n      // Numbers\n      if (stream.match(/^-?[0-9\\.]+/)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"number\";\n      }\n\n      // Units\n      if (stream.match(/^(px|em|in)\\b/)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"unit\";\n      }\n\n      if (stream.match(keywordsRegexp)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"keyword\";\n      }\n\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"atom\";\n      }\n\n      // Variables\n      if (ch === \"$\") {\n        stream.next();\n        stream.eatWhile(/[\\w-]/);\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"variable-3\";\n      }\n\n      // bang character for !important, !default, etc.\n      if (ch === \"!\") {\n        stream.next();\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n      }\n\n      if (stream.match(opRegexp)){\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"operator\";\n      }\n\n      // attributes\n      if (stream.eatWhile(/[\\w-]/)) {\n        if(!stream.peek()){\n          state.cursorHalf = 0;\n        }\n        return \"attribute\";\n      }\n\n      //stream.eatSpace();\n      if(!stream.peek()){\n        state.cursorHalf = 0;\n        return null;\n      }\n\n    } // else ends here\n\n    if (stream.match(opRegexp))\n      return \"operator\";\n\n    // If we haven't returned by now, we move 1 character\n    // and return an error\n    stream.next();\n    return null;\n  }\n\n  function tokenLexer(stream, state) {\n    if (stream.sol()) state.indentCount = 0;\n    var style = state.tokenizer(stream, state);\n    var current = stream.current();\n\n    if (current === \"@return\" || current === \"}\"){\n      dedent(state);\n    }\n\n    if (style !== null) {\n      var startOfToken = stream.pos - current.length;\n\n      var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n      var newScopes = [];\n\n      for (var i = 0; i < state.scopes.length; i++) {\n        var scope = state.scopes[i];\n\n        if (scope.offset <= withCurrentIndent)\n          newScopes.push(scope);\n      }\n\n      state.scopes = newScopes;\n    }\n\n\n    return style;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenizer: tokenBase,\n        scopes: [{offset: 0, type: \"sass\"}],\n        indentCount: 0,\n        cursorHalf: 0,  // cursor half tells us if cursor lies after (1)\n                        // or before (0) colon (well... more or less)\n        definedVars: [],\n        definedMixins: []\n      };\n    },\n    token: function(stream, state) {\n      var style = tokenLexer(stream, state);\n\n      state.lastToken = { style: style, content: stream.current() };\n\n      return style;\n    },\n\n    indent: function(state) {\n      return state.scopes[0].offset;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-sass\", \"sass\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/scheme/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Scheme mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"scheme.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Scheme</a>\n  </ul>\n</div>\n\n<article>\n<h2>Scheme mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n; See if the input starts with a given symbol.\n(define (match-symbol input pattern)\n  (cond ((null? (remain input)) #f)\n\t((eqv? (car (remain input)) pattern) (r-cdr input))\n\t(else #f)))\n\n; Allow the input to start with one of a list of patterns.\n(define (match-or input pattern)\n  (cond ((null? pattern) #f)\n\t((match-pattern input (car pattern)))\n\t(else (match-or input (cdr pattern)))))\n\n; Allow a sequence of patterns.\n(define (match-seq input pattern)\n  (if (null? pattern)\n      input\n      (let ((match (match-pattern input (car pattern))))\n\t(if match (match-seq match (cdr pattern)) #f))))\n\n; Match with the pattern but no problem if it does not match.\n(define (match-opt input pattern)\n  (let ((match (match-pattern input (car pattern))))\n    (if match match input)))\n\n; Match anything (other than '()), until pattern is found. The rather\n; clumsy form of requiring an ending pattern is needed to decide where\n; the end of the match is. If none is given, this will match the rest\n; of the sentence.\n(define (match-any input pattern)\n  (cond ((null? (remain input)) #f)\n\t((null? pattern) (f-cons (remain input) (clear-remain input)))\n\t(else\n\t (let ((accum-any (collector)))\n\t   (define (match-pattern-any input pattern)\n\t     (cond ((null? (remain input)) #f)\n\t\t   (else (accum-any (car (remain input)))\n\t\t\t (cond ((match-pattern (r-cdr input) pattern))\n\t\t\t       (else (match-pattern-any (r-cdr input) pattern))))))\n\t   (let ((retval (match-pattern-any input (car pattern))))\n\t     (if retval\n\t\t (f-cons (accum-any) retval)\n\t\t #f))))))\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-scheme</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/scheme/scheme.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Author: Koh Zi Han, based on implementation by Koh Zi Chun\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"scheme\", function () {\n    var BUILTIN = \"builtin\", COMMENT = \"comment\", STRING = \"string\",\n        ATOM = \"atom\", NUMBER = \"number\", BRACKET = \"bracket\";\n    var INDENT_WORD_SKIP = 2;\n\n    function makeKeywords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = makeKeywords(\"λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?\");\n    var indentKeys = makeKeywords(\"define let letrec let* lambda\");\n\n    function stateStack(indent, type, prev) { // represents a state stack object\n        this.indent = indent;\n        this.type = type;\n        this.prev = prev;\n    }\n\n    function pushStack(state, indent, type) {\n        state.indentStack = new stateStack(indent, type, state.indentStack);\n    }\n\n    function popStack(state) {\n        state.indentStack = state.indentStack.prev;\n    }\n\n    var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\\/[01]+#*)?i|[-+]?[01]+#*(?:\\/[01]+#*)?@[-+]?[01]+#*(?:\\/[01]+#*)?|[-+]?[01]+#*(?:\\/[01]+#*)?[-+](?:[01]+#*(?:\\/[01]+#*)?)?i|[-+]?[01]+#*(?:\\/[01]+#*)?)(?=[()\\s;\"]|$)/i);\n    var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\\/[0-7]+#*)?)(?=[()\\s;\"]|$)/i);\n    var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\\da-f]+#*(?:\\/[\\da-f]+#*)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?@[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?[-+](?:[\\da-f]+#*(?:\\/[\\da-f]+#*)?)?i|[-+]?[\\da-f]+#*(?:\\/[\\da-f]+#*)?)(?=[()\\s;\"]|$)/i);\n    var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)i|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)@[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)|[-+]?(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)[-+](?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*)?i|(?:(?:(?:\\d+#+\\.?#*|\\d+\\.\\d*#*|\\.\\d+#*|\\d+)(?:[esfdl][-+]?\\d+)?)|\\d+#*\\/\\d+#*))(?=[()\\s;\"]|$)/i);\n\n    function isBinaryNumber (stream) {\n        return stream.match(binaryMatcher);\n    }\n\n    function isOctalNumber (stream) {\n        return stream.match(octalMatcher);\n    }\n\n    function isDecimalNumber (stream, backup) {\n        if (backup === true) {\n            stream.backUp(1);\n        }\n        return stream.match(decimalMatcher);\n    }\n\n    function isHexNumber (stream) {\n        return stream.match(hexMatcher);\n    }\n\n    return {\n        startState: function () {\n            return {\n                indentStack: null,\n                indentation: 0,\n                mode: false,\n                sExprComment: false\n            };\n        },\n\n        token: function (stream, state) {\n            if (state.indentStack == null && stream.sol()) {\n                // update indentation, but only if indentStack is empty\n                state.indentation = stream.indentation();\n            }\n\n            // skip spaces\n            if (stream.eatSpace()) {\n                return null;\n            }\n            var returnType = null;\n\n            switch(state.mode){\n                case \"string\": // multi-line string parsing mode\n                    var next, escaped = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"\\\"\" && !escaped) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        escaped = !escaped && next == \"\\\\\";\n                    }\n                    returnType = STRING; // continue on in scheme-string mode\n                    break;\n                case \"comment\": // comment parsing mode\n                    var next, maybeEnd = false;\n                    while ((next = stream.next()) != null) {\n                        if (next == \"#\" && maybeEnd) {\n\n                            state.mode = false;\n                            break;\n                        }\n                        maybeEnd = (next == \"|\");\n                    }\n                    returnType = COMMENT;\n                    break;\n                case \"s-expr-comment\": // s-expr commenting mode\n                    state.mode = false;\n                    if(stream.peek() == \"(\" || stream.peek() == \"[\"){\n                        // actually start scheme s-expr commenting mode\n                        state.sExprComment = 0;\n                    }else{\n                        // if not we just comment the entire of the next token\n                        stream.eatWhile(/[^/s]/); // eat non spaces\n                        returnType = COMMENT;\n                        break;\n                    }\n                default: // default parsing mode\n                    var ch = stream.next();\n\n                    if (ch == \"\\\"\") {\n                        state.mode = \"string\";\n                        returnType = STRING;\n\n                    } else if (ch == \"'\") {\n                        returnType = ATOM;\n                    } else if (ch == '#') {\n                        if (stream.eat(\"|\")) {                    // Multi-line comment\n                            state.mode = \"comment\"; // toggle to comment mode\n                            returnType = COMMENT;\n                        } else if (stream.eat(/[tf]/i)) {            // #t/#f (atom)\n                            returnType = ATOM;\n                        } else if (stream.eat(';')) {                // S-Expr comment\n                            state.mode = \"s-expr-comment\";\n                            returnType = COMMENT;\n                        } else {\n                            var numTest = null, hasExactness = false, hasRadix = true;\n                            if (stream.eat(/[ei]/i)) {\n                                hasExactness = true;\n                            } else {\n                                stream.backUp(1);       // must be radix specifier\n                            }\n                            if (stream.match(/^#b/i)) {\n                                numTest = isBinaryNumber;\n                            } else if (stream.match(/^#o/i)) {\n                                numTest = isOctalNumber;\n                            } else if (stream.match(/^#x/i)) {\n                                numTest = isHexNumber;\n                            } else if (stream.match(/^#d/i)) {\n                                numTest = isDecimalNumber;\n                            } else if (stream.match(/^[-+0-9.]/, false)) {\n                                hasRadix = false;\n                                numTest = isDecimalNumber;\n                            // re-consume the intial # if all matches failed\n                            } else if (!hasExactness) {\n                                stream.eat('#');\n                            }\n                            if (numTest != null) {\n                                if (hasRadix && !hasExactness) {\n                                    // consume optional exactness after radix\n                                    stream.match(/^#[ei]/i);\n                                }\n                                if (numTest(stream))\n                                    returnType = NUMBER;\n                            }\n                        }\n                    } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal\n                        returnType = NUMBER;\n                    } else if (ch == \";\") { // comment\n                        stream.skipToEnd(); // rest of the line is a comment\n                        returnType = COMMENT;\n                    } else if (ch == \"(\" || ch == \"[\") {\n                      var keyWord = ''; var indentTemp = stream.column(), letter;\n                        /**\n                        Either\n                        (indent-word ..\n                        (non-indent-word ..\n                        (;something else, bracket, etc.\n                        */\n\n                        while ((letter = stream.eat(/[^\\s\\(\\[\\;\\)\\]]/)) != null) {\n                            keyWord += letter;\n                        }\n\n                        if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word\n\n                            pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);\n                        } else { // non-indent word\n                            // we continue eating the spaces\n                            stream.eatSpace();\n                            if (stream.eol() || stream.peek() == \";\") {\n                                // nothing significant after\n                                // we restart indentation 1 space after\n                                pushStack(state, indentTemp + 1, ch);\n                            } else {\n                                pushStack(state, indentTemp + stream.current().length, ch); // else we match\n                            }\n                        }\n                        stream.backUp(stream.current().length - 1); // undo all the eating\n\n                        if(typeof state.sExprComment == \"number\") state.sExprComment++;\n\n                        returnType = BRACKET;\n                    } else if (ch == \")\" || ch == \"]\") {\n                        returnType = BRACKET;\n                        if (state.indentStack != null && state.indentStack.type == (ch == \")\" ? \"(\" : \"[\")) {\n                            popStack(state);\n\n                            if(typeof state.sExprComment == \"number\"){\n                                if(--state.sExprComment == 0){\n                                    returnType = COMMENT; // final closing bracket\n                                    state.sExprComment = false; // turn off s-expr commenting mode\n                                }\n                            }\n                        }\n                    } else {\n                        stream.eatWhile(/[\\w\\$_\\-!$%&*+\\.\\/:<=>?@\\^~]/);\n\n                        if (keywords && keywords.propertyIsEnumerable(stream.current())) {\n                            returnType = BUILTIN;\n                        } else returnType = \"variable\";\n                    }\n            }\n            return (typeof state.sExprComment == \"number\") ? COMMENT : returnType;\n        },\n\n        indent: function (state) {\n            if (state.indentStack == null) return state.indentation;\n            return state.indentStack.indent;\n        },\n\n        lineComment: \";;\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/x-scheme\", \"scheme\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/shell/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Shell mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=stylesheet href=../../lib/codemirror.css>\n<script src=../../lib/codemirror.js></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=shell.js></script>\n<style type=text/css>\n  .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Shell</a>\n  </ul>\n</div>\n\n<article>\n<h2>Shell mode</h2>\n\n\n<textarea id=code>\n#!/bin/bash\n\n# clone the repository\ngit clone http://github.com/garden/tree\n\n# generate HTTPS credentials\ncd tree\nopenssl genrsa -aes256 -out https.key 1024\nopenssl req -new -nodes -key https.key -out https.csr\nopenssl x509 -req -days 365 -in https.csr -signkey https.key -out https.crt\ncp https.key{,.orig}\nopenssl rsa -in https.key.orig -out https.key\n\n# start the server in HTTPS mode\ncd web\nsudo node ../server.js 443 'yes' &gt;&gt; ../node.log &amp;\n\n# here is how to stop the server\nfor pid in `ps aux | grep 'node ../server.js' | awk '{print $2}'` ; do\n  sudo kill -9 $pid 2&gt; /dev/null\ndone\n\nexit 0</textarea>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: 'shell',\n    lineNumbers: true,\n    matchBrackets: true\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-sh</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/shell/shell.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('shell', function() {\n\n  var words = {};\n  function define(style, string) {\n    var split = string.split(' ');\n    for(var i = 0; i < split.length; i++) {\n      words[split[i]] = style;\n    }\n  };\n\n  // Atoms\n  define('atom', 'true false');\n\n  // Keywords\n  define('keyword', 'if then do else elif while until for in esac fi fin ' +\n    'fil done exit set unset export function');\n\n  // Commands\n  define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' +\n    'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' +\n    'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' +\n    'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' +\n    'touch vi vim wall wc wget who write yes zsh');\n\n  function tokenBase(stream, state) {\n    if (stream.eatSpace()) return null;\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    if (ch === '\\\\') {\n      stream.next();\n      return null;\n    }\n    if (ch === '\\'' || ch === '\"' || ch === '`') {\n      state.tokens.unshift(tokenString(ch));\n      return tokenize(stream, state);\n    }\n    if (ch === '#') {\n      if (sol && stream.eat('!')) {\n        stream.skipToEnd();\n        return 'meta'; // 'comment'?\n      }\n      stream.skipToEnd();\n      return 'comment';\n    }\n    if (ch === '$') {\n      state.tokens.unshift(tokenDollar);\n      return tokenize(stream, state);\n    }\n    if (ch === '+' || ch === '=') {\n      return 'operator';\n    }\n    if (ch === '-') {\n      stream.eat('-');\n      stream.eatWhile(/\\w/);\n      return 'attribute';\n    }\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/\\d/);\n      if(stream.eol() || !/\\w/.test(stream.peek())) {\n        return 'number';\n      }\n    }\n    stream.eatWhile(/[\\w-]/);\n    var cur = stream.current();\n    if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n    return words.hasOwnProperty(cur) ? words[cur] : null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var next, end = false, escaped = false;\n      while ((next = stream.next()) != null) {\n        if (next === quote && !escaped) {\n          end = true;\n          break;\n        }\n        if (next === '$' && !escaped && quote !== '\\'') {\n          escaped = true;\n          stream.backUp(1);\n          state.tokens.unshift(tokenDollar);\n          break;\n        }\n        escaped = !escaped && next === '\\\\';\n      }\n      if (end || !escaped) {\n        state.tokens.shift();\n      }\n      return (quote === '`' || quote === ')' ? 'quote' : 'string');\n    };\n  };\n\n  var tokenDollar = function(stream, state) {\n    if (state.tokens.length > 1) stream.eat('$');\n    var ch = stream.next(), hungry = /\\w/;\n    if (ch === '{') hungry = /[^}]/;\n    if (ch === '(') {\n      state.tokens[0] = tokenString(')');\n      return tokenize(stream, state);\n    }\n    if (!/\\d/.test(ch)) {\n      stream.eatWhile(hungry);\n      stream.eat('}');\n    }\n    state.tokens.shift();\n    return 'def';\n  };\n\n  function tokenize(stream, state) {\n    return (state.tokens[0] || tokenBase) (stream, state);\n  };\n\n  return {\n    startState: function() {return {tokens:[]};},\n    token: function(stream, state) {\n      return tokenize(stream, state);\n    },\n    lineComment: '#',\n    fold: \"brace\"\n  };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/shell/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({}, \"shell\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"var\",\n     \"text [def $var] text\");\n  MT(\"varBraces\",\n     \"text[def ${var}]text\");\n  MT(\"varVar\",\n     \"text [def $a$b] text\");\n  MT(\"varBracesVarBraces\",\n     \"text[def ${a}${b}]text\");\n\n  MT(\"singleQuotedVar\",\n     \"[string 'text $var text']\");\n  MT(\"singleQuotedVarBraces\",\n     \"[string 'text ${var} text']\");\n\n  MT(\"doubleQuotedVar\",\n     '[string \"text ][def $var][string  text\"]');\n  MT(\"doubleQuotedVarBraces\",\n     '[string \"text][def ${var}][string text\"]');\n  MT(\"doubleQuotedVarPunct\",\n     '[string \"text ][def $@][string  text\"]');\n  MT(\"doubleQuotedVarVar\",\n     '[string \"][def $a$b][string \"]');\n  MT(\"doubleQuotedVarBracesVarBraces\",\n     '[string \"][def ${a}${b}][string \"]');\n\n  MT(\"notAString\",\n     \"text\\\\'text\");\n  MT(\"escapes\",\n     \"outside\\\\'\\\\\\\"\\\\`\\\\\\\\[string \\\"inside\\\\`\\\\'\\\\\\\"\\\\\\\\`\\\\$notAVar\\\"]outside\\\\$\\\\(notASubShell\\\\)\");\n\n  MT(\"subshell\",\n     \"[builtin echo] [quote $(whoami)] s log, stardate [quote `date`].\");\n  MT(\"doubleQuotedSubshell\",\n     \"[builtin echo] [string \\\"][quote $(whoami)][string 's log, stardate `date`.\\\"]\");\n\n  MT(\"hashbang\",\n     \"[meta #!/bin/bash]\");\n  MT(\"comment\",\n     \"text [comment # Blurb]\");\n\n  MT(\"numbers\",\n     \"[number 0] [number 1] [number 2]\");\n  MT(\"keywords\",\n     \"[keyword while] [atom true]; [keyword do]\",\n     \"  [builtin sleep] [number 3]\",\n     \"[keyword done]\");\n  MT(\"options\",\n     \"[builtin ls] [attribute -l] [attribute --human-readable]\");\n  MT(\"operator\",\n     \"[def var][operator =]value\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sieve/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Sieve (RFC5228) mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"sieve.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Sieve (RFC5228)</a>\n  </ul>\n</div>\n\n<article>\n<h2>Sieve (RFC5228) mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n#\n# Example Sieve Filter\n# Declare any optional features or extension used by the script\n#\n\nrequire [\"fileinto\", \"reject\"];\n\n#\n# Reject any large messages (note that the four leading dots get\n# \"stuffed\" to three)\n#\nif size :over 1M\n{\n  reject text:\nPlease do not send me large attachments.\nPut your file on a server and send me the URL.\nThank you.\n.... Fred\n.\n;\n  stop;\n}\n\n#\n# Handle messages from known mailing lists\n# Move messages from IETF filter discussion list to filter folder\n#\nif header :is \"Sender\" \"owner-ietf-mta-filters@imc.org\"\n{\n  fileinto \"filter\";  # move to \"filter\" folder\n}\n#\n# Keep all messages to or from people in my company\n#\nelsif address :domain :is [\"From\", \"To\"] \"example.com\"\n{\n  keep;               # keep in \"In\" folder\n}\n\n#\n# Try and catch unsolicited email.  If a message is not to me,\n# or it contains a subject known to be spam, file it away.\n#\nelsif anyof (not address :all :contains\n               [\"To\", \"Cc\", \"Bcc\"] \"me@example.com\",\n             header :matches \"subject\"\n               [\"*make*money*fast*\", \"*university*dipl*mas*\"])\n{\n  # If message header does not contain my address,\n  # it's from a list.\n  fileinto \"spam\";   # move to \"spam\" folder\n}\nelse\n{\n  # Move all other (non-company) mail to \"personal\"\n  # folder.\n  fileinto \"personal\";\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/sieve</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sieve/sieve.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sieve\", function(config) {\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  var keywords = words(\"if elsif else stop require\");\n  var atoms = words(\"true false not\");\n  var indentUnit = config.indentUnit;\n\n  function tokenBase(stream, state) {\n\n    var ch = stream.next();\n    if (ch == \"/\" && stream.eat(\"*\")) {\n      state.tokenize = tokenCComment;\n      return tokenCComment(stream, state);\n    }\n\n    if (ch === '#') {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n\n    if (ch == \"\\\"\") {\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n\n    if (ch == \"(\") {\n      state._indent.push(\"(\");\n      // add virtual angel wings so that editor behaves...\n      // ...more sane incase of broken brackets\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch === \"{\") {\n      state._indent.push(\"{\");\n      return null;\n    }\n\n    if (ch == \")\")  {\n      state._indent.pop();\n      state._indent.pop();\n    }\n\n    if (ch === \"}\") {\n      state._indent.pop();\n      return null;\n    }\n\n    if (ch == \",\")\n      return null;\n\n    if (ch == \";\")\n      return null;\n\n\n    if (/[{}\\(\\),;]/.test(ch))\n      return null;\n\n    // 1*DIGIT \"K\" / \"M\" / \"G\"\n    if (/\\d/.test(ch)) {\n      stream.eatWhile(/[\\d]/);\n      stream.eat(/[KkMmGg]/);\n      return \"number\";\n    }\n\n    // \":\" (ALPHA / \"_\") *(ALPHA / DIGIT / \"_\")\n    if (ch == \":\") {\n      stream.eatWhile(/[a-zA-Z_]/);\n      stream.eatWhile(/[a-zA-Z0-9_]/);\n\n      return \"operator\";\n    }\n\n    stream.eatWhile(/\\w/);\n    var cur = stream.current();\n\n    // \"text:\" *(SP / HTAB) (hash-comment / CRLF)\n    // *(multiline-literal / multiline-dotstart)\n    // \".\" CRLF\n    if ((cur == \"text\") && stream.eat(\":\"))\n    {\n      state.tokenize = tokenMultiLineString;\n      return \"string\";\n    }\n\n    if (keywords.propertyIsEnumerable(cur))\n      return \"keyword\";\n\n    if (atoms.propertyIsEnumerable(cur))\n      return \"atom\";\n\n    return null;\n  }\n\n  function tokenMultiLineString(stream, state)\n  {\n    state._multiLineString = true;\n    // the first line is special it may contain a comment\n    if (!stream.sol()) {\n      stream.eatSpace();\n\n      if (stream.peek() == \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      stream.skipToEnd();\n      return \"string\";\n    }\n\n    if ((stream.next() == \".\")  && (stream.eol()))\n    {\n      state._multiLineString = false;\n      state.tokenize = tokenBase;\n    }\n\n    return \"string\";\n  }\n\n  function tokenCComment(stream, state) {\n    var maybeEnd = false, ch;\n    while ((ch = stream.next()) != null) {\n      if (maybeEnd && ch == \"/\") {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped)\n          break;\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  return {\n    startState: function(base) {\n      return {tokenize: tokenBase,\n              baseIndent: base || 0,\n              _indent: []};\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace())\n        return null;\n\n      return (state.tokenize || tokenBase)(stream, state);;\n    },\n\n    indent: function(state, _textAfter) {\n      var length = state._indent.length;\n      if (_textAfter && (_textAfter[0] == \"}\"))\n        length--;\n\n      if (length <0)\n        length = 0;\n\n      return length * indentUnit;\n    },\n\n    electricChars: \"}\"\n  };\n});\n\nCodeMirror.defineMIME(\"application/sieve\", \"sieve\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/slim/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SLIM mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/ambiance.css\">\n<script src=\"https://code.jquery.com/jquery-1.11.1.min.js\"></script>\n<script src=\"https://code.jquery.com/ui/1.11.0/jquery-ui.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlembedded/htmlembedded.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../coffeescript/coffeescript.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../ruby/ruby.js\"></script>\n<script src=\"../markdown/markdown.js\"></script>\n<script src=\"slim.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SLIM</a>\n  </ul>\n</div>\n\n<article>\n  <h2>SLIM mode</h2>\n  <form><textarea id=\"code\" name=\"code\">\nbody\n  table\n    - for user in users\n      td id=\"user_#{user.id}\" class=user.role\n        a href=user_action(user, :edit) Edit #{user.name}\n        a href=(path_to_user user) = user.name\nbody\n  h1(id=\"logo\") = page_logo\n  h2[id=\"tagline\" class=\"small tagline\"] = page_tagline\n\nh2[id=\"tagline\"\n   class=\"small tagline\"] = page_tagline\n\nh1 id = \"logo\" = page_logo\nh2 [ id = \"tagline\" ] = page_tagline\n\n/ comment\n  second line\n/! html comment\n   second line\n<!-- html comment -->\n<a href=\"#{'hello' if set}\">link</a>\na.slim href=\"work\" disabled=false running==:atom Text <b>bold</b>\n.clazz data-id=\"test\" == 'hello' unless quark\n | Text mode #{12}\n   Second line\n= x ||= :ruby_atom\n#menu.left\n  - @env.each do |x|\n    li: a = x\n*@dyntag attr=\"val\"\n.first *{:class => [:second, :third]} Text\n.second class=[\"text\",\"more\"]\n.third class=:text,:symbol\n\n  </textarea></form>\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      lineNumbers: true,\n      theme: \"ambiance\",\n      mode: \"application/x-slim\"\n    });\n    $('.CodeMirror').resizable({\n      resize: function() {\n        editor.setSize($(this).width(), $(this).height());\n        //editor.refresh();\n      }\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>application/x-slim</code>.</p>\n\n  <p>\n    <strong>Parsing/Highlighting Tests:</strong>\n    <a href=\"../../test/index.html#slim_*\">normal</a>,\n    <a href=\"../../test/index.html#verbose,slim_*\">verbose</a>.\n  </p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/slim/slim.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../ruby/ruby\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../ruby/ruby\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\n  CodeMirror.defineMode(\"slim\", function(config) {\n    var htmlMode = CodeMirror.getMode(config, {name: \"htmlmixed\"});\n    var rubyMode = CodeMirror.getMode(config, \"ruby\");\n    var modes = { html: htmlMode, ruby: rubyMode };\n    var embedded = {\n      ruby: \"ruby\",\n      javascript: \"javascript\",\n      css: \"text/css\",\n      sass: \"text/x-sass\",\n      scss: \"text/x-scss\",\n      less: \"text/x-less\",\n      styl: \"text/x-styl\", // no highlighting so far\n      coffee: \"coffeescript\",\n      asciidoc: \"text/x-asciidoc\",\n      markdown: \"text/x-markdown\",\n      textile: \"text/x-textile\", // no highlighting so far\n      creole: \"text/x-creole\", // no highlighting so far\n      wiki: \"text/x-wiki\", // no highlighting so far\n      mediawiki: \"text/x-mediawiki\", // no highlighting so far\n      rdoc: \"text/x-rdoc\", // no highlighting so far\n      builder: \"text/x-builder\", // no highlighting so far\n      nokogiri: \"text/x-nokogiri\", // no highlighting so far\n      erb: \"application/x-erb\"\n    };\n    var embeddedRegexp = function(map){\n      var arr = [];\n      for(var key in map) arr.push(key);\n      return new RegExp(\"^(\"+arr.join('|')+\"):\");\n    }(embedded);\n\n    var styleMap = {\n      \"commentLine\": \"comment\",\n      \"slimSwitch\": \"operator special\",\n      \"slimTag\": \"tag\",\n      \"slimId\": \"attribute def\",\n      \"slimClass\": \"attribute qualifier\",\n      \"slimAttribute\": \"attribute\",\n      \"slimSubmode\": \"keyword special\",\n      \"closeAttributeTag\": null,\n      \"slimDoctype\": null,\n      \"lineContinuation\": null\n    };\n    var closing = {\n      \"{\": \"}\",\n      \"[\": \"]\",\n      \"(\": \")\"\n    };\n\n    var nameStartChar = \"_a-zA-Z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\";\n    var nameChar = nameStartChar + \"\\\\-0-9\\xB7\\u0300-\\u036F\\u203F-\\u2040\";\n    var nameRegexp = new RegExp(\"^[:\"+nameStartChar+\"](?::[\"+nameChar+\"]|[\"+nameChar+\"]*)\");\n    var attributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*(?=\\\\s*=)\");\n    var wrappedAttributeNameRegexp = new RegExp(\"^[:\"+nameStartChar+\"][:\\\\.\"+nameChar+\"]*\");\n    var classNameRegexp = /^\\.-?[_a-zA-Z]+[\\w\\-]*/;\n    var classIdRegexp = /^#[_a-zA-Z]+[\\w\\-]*/;\n\n    function backup(pos, tokenize, style) {\n      var restore = function(stream, state) {\n        state.tokenize = tokenize;\n        if (stream.pos < pos) {\n          stream.pos = pos;\n          return style;\n        }\n        return state.tokenize(stream, state);\n      };\n      return function(stream, state) {\n        state.tokenize = restore;\n        return tokenize(stream, state);\n      };\n    }\n\n    function maybeBackup(stream, state, pat, offset, style) {\n      var cur = stream.current();\n      var idx = cur.search(pat);\n      if (idx > -1) {\n        state.tokenize = backup(stream.pos, state.tokenize, style);\n        stream.backUp(cur.length - idx - offset);\n      }\n      return style;\n    }\n\n    function continueLine(state, column) {\n      state.stack = {\n        parent: state.stack,\n        style: \"continuation\",\n        indented: column,\n        tokenize: state.line\n      };\n      state.line = state.tokenize;\n    }\n    function finishContinue(state) {\n      if (state.line == state.tokenize) {\n        state.line = state.stack.tokenize;\n        state.stack = state.stack.parent;\n      }\n    }\n\n    function lineContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        if (stream.match(/^\\\\$/)) {\n          continueLine(state, column);\n          return \"lineContinuation\";\n        }\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/(?:^|[^\\\\])(?:\\\\\\\\)*\\\\$/)) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function commaContinuable(column, tokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var style = tokenize(stream, state);\n        if (stream.eol() && stream.current().match(/,$/)) {\n          continueLine(state, column);\n        }\n        return style;\n      };\n    }\n\n    function rubyInQuote(endQuote, tokenize) {\n      // TODO: add multi line support\n      return function(stream, state) {\n        var ch = stream.peek();\n        if (ch == endQuote && state.rubyState.tokenize.length == 1) {\n          // step out of ruby context as it seems to complete processing all the braces\n          stream.next();\n          state.tokenize = tokenize;\n          return \"closeAttributeTag\";\n        } else {\n          return ruby(stream, state);\n        }\n      };\n    }\n    function startRubySplat(tokenize) {\n      var rubyState;\n      var runSplat = function(stream, state) {\n        if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) {\n          stream.backUp(1);\n          if (stream.eatSpace()) {\n            state.rubyState = rubyState;\n            state.tokenize = tokenize;\n            return tokenize(stream, state);\n          }\n          stream.next();\n        }\n        return ruby(stream, state);\n      };\n      return function(stream, state) {\n        rubyState = state.rubyState;\n        state.rubyState = rubyMode.startState();\n        state.tokenize = runSplat;\n        return ruby(stream, state);\n      };\n    }\n\n    function ruby(stream, state) {\n      return rubyMode.token(stream, state.rubyState);\n    }\n\n    function htmlLine(stream, state) {\n      if (stream.match(/^\\\\$/)) {\n        return \"lineContinuation\";\n      }\n      return html(stream, state);\n    }\n    function html(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      return maybeBackup(stream, state, /[^\\\\]#\\{/, 1, htmlMode.token(stream, state.htmlState));\n    }\n\n    function startHtmlLine(lastTokenize) {\n      return function(stream, state) {\n        var style = htmlLine(stream, state);\n        if (stream.eol()) state.tokenize = lastTokenize;\n        return style;\n      };\n    }\n\n    function startHtmlMode(stream, state, offset) {\n      state.stack = {\n        parent: state.stack,\n        style: \"html\",\n        indented: stream.column() + offset, // pipe + space\n        tokenize: state.line\n      };\n      state.line = state.tokenize = html;\n      return null;\n    }\n\n    function comment(stream, state) {\n      stream.skipToEnd();\n      return state.stack.style;\n    }\n\n    function commentMode(stream, state) {\n      state.stack = {\n        parent: state.stack,\n        style: \"comment\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = comment;\n      return comment(stream, state);\n    }\n\n    function attributeWrapper(stream, state) {\n      if (stream.eat(state.stack.endQuote)) {\n        state.line = state.stack.line;\n        state.tokenize = state.stack.tokenize;\n        state.stack = state.stack.parent;\n        return null;\n      }\n      if (stream.match(wrappedAttributeNameRegexp)) {\n        state.tokenize = attributeWrapperAssign;\n        return \"slimAttribute\";\n      }\n      stream.next();\n      return null;\n    }\n    function attributeWrapperAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = attributeWrapperValue;\n        return null;\n      }\n      return attributeWrapper(stream, state);\n    }\n    function attributeWrapperValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, attributeWrapper);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(attributeWrapper)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = attributeWrapper;\n        return \"keyword\";\n      }\n      return startRubySplat(attributeWrapper)(stream, state);\n    }\n\n    function startAttributeWrapperMode(state, endQuote, tokenize) {\n      state.stack = {\n        parent: state.stack,\n        style: \"wrapper\",\n        indented: state.indented + 1,\n        tokenize: tokenize,\n        line: state.line,\n        endQuote: endQuote\n      };\n      state.line = state.tokenize = attributeWrapper;\n      return null;\n    }\n\n    function sub(stream, state) {\n      if (stream.match(/^#\\{/)) {\n        state.tokenize = rubyInQuote(\"}\", state.tokenize);\n        return null;\n      }\n      var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize);\n      subStream.pos = stream.pos - state.stack.indented;\n      subStream.start = stream.start - state.stack.indented;\n      subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented;\n      subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented;\n      var style = state.subMode.token(subStream, state.subState);\n      stream.pos = subStream.pos + state.stack.indented;\n      return style;\n    }\n    function firstSub(stream, state) {\n      state.stack.indented = stream.column();\n      state.line = state.tokenize = sub;\n      return state.tokenize(stream, state);\n    }\n\n    function createMode(mode) {\n      var query = embedded[mode];\n      var spec = CodeMirror.mimeModes[query];\n      if (spec) {\n        return CodeMirror.getMode(config, spec);\n      }\n      var factory = CodeMirror.modes[query];\n      if (factory) {\n        return factory(config, {name: query});\n      }\n      return CodeMirror.getMode(config, \"null\");\n    }\n\n    function getMode(mode) {\n      if (!modes.hasOwnProperty(mode)) {\n        return modes[mode] = createMode(mode);\n      }\n      return modes[mode];\n    }\n\n    function startSubMode(mode, state) {\n      var subMode = getMode(mode);\n      var subState = subMode.startState && subMode.startState();\n\n      state.subMode = subMode;\n      state.subState = subState;\n\n      state.stack = {\n        parent: state.stack,\n        style: \"sub\",\n        indented: state.indented + 1,\n        tokenize: state.line\n      };\n      state.line = state.tokenize = firstSub;\n      return \"slimSubmode\";\n    }\n\n    function doctypeLine(stream, _state) {\n      stream.skipToEnd();\n      return \"slimDoctype\";\n    }\n\n    function startLine(stream, state) {\n      var ch = stream.peek();\n      if (ch == '<') {\n        return (state.tokenize = startHtmlLine(state.tokenize))(stream, state);\n      }\n      if (stream.match(/^[|']/)) {\n        return startHtmlMode(stream, state, 1);\n      }\n      if (stream.match(/^\\/(!|\\[\\w+])?/)) {\n        return commentMode(stream, state);\n      }\n      if (stream.match(/^(-|==?[<>]?)/)) {\n        state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby));\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^doctype\\b/)) {\n        state.tokenize = doctypeLine;\n        return \"keyword\";\n      }\n\n      var m = stream.match(embeddedRegexp);\n      if (m) {\n        return startSubMode(m[1], state);\n      }\n\n      return slimTag(stream, state);\n    }\n\n    function slim(stream, state) {\n      if (state.startOfLine) {\n        return startLine(stream, state);\n      }\n      return slimTag(stream, state);\n    }\n\n    function slimTag(stream, state) {\n      if (stream.eat('*')) {\n        state.tokenize = startRubySplat(slimTagExtras);\n        return null;\n      }\n      if (stream.match(nameRegexp)) {\n        state.tokenize = slimTagExtras;\n        return \"slimTag\";\n      }\n      return slimClass(stream, state);\n    }\n    function slimTagExtras(stream, state) {\n      if (stream.match(/^(<>?|><?)/)) {\n        state.tokenize = slimClass;\n        return null;\n      }\n      return slimClass(stream, state);\n    }\n    function slimClass(stream, state) {\n      if (stream.match(classIdRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimId\";\n      }\n      if (stream.match(classNameRegexp)) {\n        state.tokenize = slimClass;\n        return \"slimClass\";\n      }\n      return slimAttribute(stream, state);\n    }\n    function slimAttribute(stream, state) {\n      if (stream.match(/^([\\[\\{\\(])/)) {\n        return startAttributeWrapperMode(state, closing[RegExp.$1], slimAttribute);\n      }\n      if (stream.match(attributeNameRegexp)) {\n        state.tokenize = slimAttributeAssign;\n        return \"slimAttribute\";\n      }\n      if (stream.peek() == '*') {\n        stream.next();\n        state.tokenize = startRubySplat(slimContent);\n        return null;\n      }\n      return slimContent(stream, state);\n    }\n    function slimAttributeAssign(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = slimAttributeValue;\n        return null;\n      }\n      // should never happen, because of forward lookup\n      return slimAttribute(stream, state);\n    }\n\n    function slimAttributeValue(stream, state) {\n      var ch = stream.peek();\n      if (ch == '\"' || ch == \"\\'\") {\n        state.tokenize = readQuoted(ch, \"string\", true, false, slimAttribute);\n        stream.next();\n        return state.tokenize(stream, state);\n      }\n      if (ch == '[') {\n        return startRubySplat(slimAttribute)(stream, state);\n      }\n      if (ch == ':') {\n        return startRubySplat(slimAttributeSymbols)(stream, state);\n      }\n      if (stream.match(/^(true|false|nil)\\b/)) {\n        state.tokenize = slimAttribute;\n        return \"keyword\";\n      }\n      return startRubySplat(slimAttribute)(stream, state);\n    }\n    function slimAttributeSymbols(stream, state) {\n      stream.backUp(1);\n      if (stream.match(/^[^\\s],(?=:)/)) {\n        state.tokenize = startRubySplat(slimAttributeSymbols);\n        return null;\n      }\n      stream.next();\n      return slimAttribute(stream, state);\n    }\n    function readQuoted(quote, style, embed, unescaped, nextTokenize) {\n      return function(stream, state) {\n        finishContinue(state);\n        var fresh = stream.current().length == 0;\n        if (stream.match(/^\\\\$/, fresh)) {\n          if (!fresh) return style;\n          continueLine(state, state.indented);\n          return \"lineContinuation\";\n        }\n        if (stream.match(/^#\\{/, fresh)) {\n          if (!fresh) return style;\n          state.tokenize = rubyInQuote(\"}\", state.tokenize);\n          return null;\n        }\n        var escaped = false, ch;\n        while ((ch = stream.next()) != null) {\n          if (ch == quote && (unescaped || !escaped)) {\n            state.tokenize = nextTokenize;\n            break;\n          }\n          if (embed && ch == \"#\" && !escaped) {\n            if (stream.eat(\"{\")) {\n              stream.backUp(2);\n              break;\n            }\n          }\n          escaped = !escaped && ch == \"\\\\\";\n        }\n        if (stream.eol() && escaped) {\n          stream.backUp(1);\n        }\n        return style;\n      };\n    }\n    function slimContent(stream, state) {\n      if (stream.match(/^==?/)) {\n        state.tokenize = ruby;\n        return \"slimSwitch\";\n      }\n      if (stream.match(/^\\/$/)) { // tag close hint\n        state.tokenize = slim;\n        return null;\n      }\n      if (stream.match(/^:/)) { // inline tag\n        state.tokenize = slimTag;\n        return \"slimSwitch\";\n      }\n      startHtmlMode(stream, state, 0);\n      return state.tokenize(stream, state);\n    }\n\n    var mode = {\n      // default to html mode\n      startState: function() {\n        var htmlState = htmlMode.startState();\n        var rubyState = rubyMode.startState();\n        return {\n          htmlState: htmlState,\n          rubyState: rubyState,\n          stack: null,\n          last: null,\n          tokenize: slim,\n          line: slim,\n          indented: 0\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          htmlState : CodeMirror.copyState(htmlMode, state.htmlState),\n          rubyState: CodeMirror.copyState(rubyMode, state.rubyState),\n          subMode: state.subMode,\n          subState: state.subMode && CodeMirror.copyState(state.subMode, state.subState),\n          stack: state.stack,\n          last: state.last,\n          tokenize: state.tokenize,\n          line: state.line\n        };\n      },\n\n      token: function(stream, state) {\n        if (stream.sol()) {\n          state.indented = stream.indentation();\n          state.startOfLine = true;\n          state.tokenize = state.line;\n          while (state.stack && state.stack.indented > state.indented && state.last != \"slimSubmode\") {\n            state.line = state.tokenize = state.stack.tokenize;\n            state.stack = state.stack.parent;\n            state.subMode = null;\n            state.subState = null;\n          }\n        }\n        if (stream.eatSpace()) return null;\n        var style = state.tokenize(stream, state);\n        state.startOfLine = false;\n        if (style) state.last = style;\n        return styleMap.hasOwnProperty(style) ? styleMap[style] : style;\n      },\n\n      blankLine: function(state) {\n        if (state.subMode && state.subMode.blankLine) {\n          return state.subMode.blankLine(state.subState);\n        }\n      },\n\n      innerMode: function(state) {\n        if (state.subMode) return {state: state.subState, mode: state.subMode};\n        return {state: state, mode: mode};\n      }\n\n      //indent: function(state) {\n      //  return state.indented;\n      //}\n    };\n    return mode;\n  }, \"htmlmixed\", \"ruby\");\n\n  CodeMirror.defineMIME(\"text/x-slim\", \"slim\");\n  CodeMirror.defineMIME(\"application/x-slim\", \"slim\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/slim/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, \"slim\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  // Requires at least one media query\n  MT(\"elementName\",\n     \"[tag h1] Hey There\");\n\n  MT(\"oneElementPerLine\",\n     \"[tag h1] Hey There .h2\");\n\n  MT(\"idShortcut\",\n     \"[attribute&def #test] Hey There\");\n\n  MT(\"tagWithIdShortcuts\",\n     \"[tag h1][attribute&def #test] Hey There\");\n\n  MT(\"classShortcut\",\n     \"[attribute&qualifier .hello] Hey There\");\n\n  MT(\"tagWithIdAndClassShortcuts\",\n     \"[tag h1][attribute&def #test][attribute&qualifier .hello] Hey There\");\n\n  MT(\"docType\",\n     \"[keyword doctype] xml\");\n\n  MT(\"comment\",\n     \"[comment / Hello WORLD]\");\n\n  MT(\"notComment\",\n     \"[tag h1] This is not a / comment \");\n\n  MT(\"attributes\",\n     \"[tag a]([attribute title]=[string \\\"test\\\"]) [attribute href]=[string \\\"link\\\"]}\");\n\n  MT(\"multiLineAttributes\",\n     \"[tag a]([attribute title]=[string \\\"test\\\"]\",\n     \"  ) [attribute href]=[string \\\"link\\\"]}\");\n\n  MT(\"htmlCode\",\n     \"[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket </][tag h1][tag&bracket >]\");\n\n  MT(\"rubyBlock\",\n     \"[operator&special =][variable-2 @item]\");\n\n  MT(\"selectorRubyBlock\",\n     \"[tag a][attribute&qualifier .test][operator&special =] [variable-2 @item]\");\n\n  MT(\"nestedRubyBlock\",\n      \"[tag a]\",\n      \"  [operator&special =][variable puts] [string \\\"test\\\"]\");\n\n  MT(\"multilinePlaintext\",\n      \"[tag p]\",\n      \"  | Hello,\",\n      \"    World\");\n\n  MT(\"multilineRuby\",\n      \"[tag p]\",\n      \"  [comment /# this is a comment]\",\n      \"     [comment and this is a comment too]\",\n      \"  | Date/Time\",\n      \"  [operator&special -] [variable now] [operator =] [tag DateTime][operator .][property now]\",\n      \"  [tag strong][operator&special =] [variable now]\",\n      \"  [operator&special -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \\\"December 31, 2006\\\"])\",\n      \"     [operator&special =][string \\\"Happy\\\"]\",\n      \"     [operator&special =][string \\\"Belated\\\"]\",\n      \"     [operator&special =][string \\\"Birthday\\\"]\");\n\n  MT(\"multilineComment\",\n      \"[comment /]\",\n      \"  [comment Multiline]\",\n      \"  [comment Comment]\");\n\n  MT(\"hamlAfterRubyTag\",\n    \"[attribute&qualifier .block]\",\n    \"  [tag strong][operator&special =] [variable now]\",\n    \"  [attribute&qualifier .test]\",\n    \"     [operator&special =][variable now]\",\n    \"  [attribute&qualifier .right]\");\n\n  MT(\"stretchedRuby\",\n     \"[operator&special =] [variable puts] [string \\\"Hello\\\"],\",\n     \"   [string \\\"World\\\"]\");\n\n  MT(\"interpolationInHashAttribute\",\n     \"[tag div]{[attribute id] = [string \\\"]#{[variable test]}[string _]#{[variable ting]}[string \\\"]} test\");\n\n  MT(\"interpolationInHTMLAttribute\",\n     \"[tag div]([attribute title]=[string \\\"]#{[variable test]}[string _]#{[variable ting]()}[string \\\"]) Test\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smalltalk/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smalltalk mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"smalltalk.js\"></script>\n<style>\n      .CodeMirror {border: 2px solid #dee; border-right-width: 10px;}\n      .CodeMirror-gutter {border: none; background: #dee;}\n      .CodeMirror-gutter pre {color: white; font-weight: bold;}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smalltalk</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smalltalk mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n\" \n    This is a test of the Smalltalk code\n\"\nSeaside.WAComponent subclass: #MyCounter [\n    | count |\n    MyCounter class &gt;&gt; canBeRoot [ ^true ]\n\n    initialize [\n        super initialize.\n        count := 0.\n    ]\n    states [ ^{ self } ]\n    renderContentOn: html [\n        html heading: count.\n        html anchor callback: [ count := count + 1 ]; with: '++'.\n        html space.\n        html anchor callback: [ count := count - 1 ]; with: '--'.\n    ]\n]\n\nMyCounter registerAsApplication: 'mycounter'\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-stsrc\",\n        indentUnit: 4\n      });\n    </script>\n\n    <p>Simple Smalltalk mode.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-stsrc</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smalltalk/smalltalk.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('smalltalk', function(config) {\n\n  var specialChars = /[+\\-\\/\\\\*~<>=@%|&?!.,:;^]/;\n  var keywords = /true|false|nil|self|super|thisContext/;\n\n  var Context = function(tokenizer, parent) {\n    this.next = tokenizer;\n    this.parent = parent;\n  };\n\n  var Token = function(name, context, eos) {\n    this.name = name;\n    this.context = context;\n    this.eos = eos;\n  };\n\n  var State = function() {\n    this.context = new Context(next, null);\n    this.expectVariable = true;\n    this.indentation = 0;\n    this.userIndentationDelta = 0;\n  };\n\n  State.prototype.userIndent = function(indentation) {\n    this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0;\n  };\n\n  var next = function(stream, context, state) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '\"') {\n      token = nextComment(stream, new Context(nextComment, context));\n\n    } else if (aChar === '\\'') {\n      token = nextString(stream, new Context(nextString, context));\n\n    } else if (aChar === '#') {\n      if (stream.peek() === '\\'') {\n        stream.next();\n        token = nextSymbol(stream, new Context(nextSymbol, context));\n      } else {\n        if (stream.eatWhile(/[^\\s.{}\\[\\]()]/))\n          token.name = 'string-2';\n        else\n          token.name = 'meta';\n      }\n\n    } else if (aChar === '$') {\n      if (stream.next() === '<') {\n        stream.eatWhile(/[^\\s>]/);\n        stream.next();\n      }\n      token.name = 'string-2';\n\n    } else if (aChar === '|' && state.expectVariable) {\n      token.context = new Context(nextTemporaries, context);\n\n    } else if (/[\\[\\]{}()]/.test(aChar)) {\n      token.name = 'bracket';\n      token.eos = /[\\[{(]/.test(aChar);\n\n      if (aChar === '[') {\n        state.indentation++;\n      } else if (aChar === ']') {\n        state.indentation = Math.max(0, state.indentation - 1);\n      }\n\n    } else if (specialChars.test(aChar)) {\n      stream.eatWhile(specialChars);\n      token.name = 'operator';\n      token.eos = aChar !== ';'; // ; cascaded message expression\n\n    } else if (/\\d/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d]/);\n      token.name = 'number';\n\n    } else if (/[\\w_]/.test(aChar)) {\n      stream.eatWhile(/[\\w\\d_]/);\n      token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null;\n\n    } else {\n      token.eos = state.expectVariable;\n    }\n\n    return token;\n  };\n\n  var nextComment = function(stream, context) {\n    stream.eatWhile(/[^\"]/);\n    return new Token('comment', stream.eat('\"') ? context.parent : context, true);\n  };\n\n  var nextString = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextSymbol = function(stream, context) {\n    stream.eatWhile(/[^']/);\n    return new Token('string-2', stream.eat('\\'') ? context.parent : context, false);\n  };\n\n  var nextTemporaries = function(stream, context) {\n    var token = new Token(null, context, false);\n    var aChar = stream.next();\n\n    if (aChar === '|') {\n      token.context = context.parent;\n      token.eos = true;\n\n    } else {\n      stream.eatWhile(/[^|]/);\n      token.name = 'variable';\n    }\n\n    return token;\n  };\n\n  return {\n    startState: function() {\n      return new State;\n    },\n\n    token: function(stream, state) {\n      state.userIndent(stream.indentation());\n\n      if (stream.eatSpace()) {\n        return null;\n      }\n\n      var token = state.context.next(stream, state.context, state);\n      state.context = token.context;\n      state.expectVariable = token.eos;\n\n      return token.name;\n    },\n\n    blankLine: function(state) {\n      state.userIndent(0);\n    },\n\n    indent: function(state, textAfter) {\n      var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta;\n      return (state.indentation + i) * config.indentUnit;\n    },\n\n    electricChars: ']'\n  };\n\n});\n\nCodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smarty/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smarty mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"smarty.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smarty</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smarty mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{extends file=\"parent.tpl\"}\n{include file=\"template.tpl\"}\n\n{* some example Smarty content *}\n{if isset($name) && $name == 'Blog'}\n  This is a {$var}.\n  {$integer = 451}, {$array[] = \"a\"}, {$stringvar = \"string\"}\n  {assign var='bob' value=$var.prop}\n{elseif $name == $foo}\n  {function name=menu level=0}\n    {foreach $data as $entry}\n      {if is_array($entry)}\n        - {$entry@key}\n        {menu data=$entry level=$level+1}\n      {else}\n        {$entry}\n      {/if}\n    {/foreach}\n  {/function}\n{/if}</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"smarty\"\n      });\n    </script>\n\n    <br />\n\n\t<h3>Smarty 2, custom delimiters</h3>\n    <form><textarea id=\"code2\" name=\"code2\">\n{--extends file=\"parent.tpl\"--}\n{--include file=\"template.tpl\"--}\n\n{--* some example Smarty content *--}\n{--if isset($name) && $name == 'Blog'--}\n  This is a {--$var--}.\n  {--$integer = 451--}, {--$array[] = \"a\"--}, {--$stringvar = \"string\"--}\n  {--assign var='bob' value=$var.prop--}\n{--elseif $name == $foo--}\n  {--function name=menu level=0--}\n    {--foreach $data as $entry--}\n      {--if is_array($entry)--}\n        - {--$entry@key--}\n        {--menu data=$entry level=$level+1--}\n      {--else--}\n        {--$entry--}\n      {--/if--}\n    {--/foreach--}\n  {--/function--}\n{--/if--}</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code2\"), {\n        lineNumbers: true,\n        mode: {\n          name: \"smarty\",\n          leftDelimiter: \"{--\",\n          rightDelimiter: \"--}\"\n        }\n      });\n    </script>\n\n\t<br />\n\n\t<h3>Smarty 3</h3>\n\n\t<textarea id=\"code3\" name=\"code3\">\nNested tags {$foo={counter one=1 two={inception}}+3} are now valid in Smarty 3.\n\n<script>\nfunction test() {\n\tconsole.log(\"Smarty 3 permits single curly braces followed by whitespace to NOT slip into Smarty mode.\");\n}\n</script>\n\n{assign var=foo value=[1,2,3]}\n{assign var=foo value=['y'=>'yellow','b'=>'blue']}\n{assign var=foo value=[1,[9,8],3]}\n\n{$foo=$bar+2} {* a comment *}\n{$foo.bar=1}  {* another comment *}\n{$foo = myfunct(($x+$y)*3)}\n{$foo = strlen($bar)}\n{$foo.bar.baz=1}, {$foo[]=1}\n\nSmarty \"dot\" syntax (note: embedded {} are used to address ambiguities):\n\n{$foo.a.b.c}      => $foo['a']['b']['c']\n{$foo.a.$b.c}     => $foo['a'][$b]['c']\n{$foo.a.{$b+4}.c} => $foo['a'][$b+4]['c']\n{$foo.a.{$b.c}}   => $foo['a'][$b['c']]\n\n{$object->method1($x)->method2($y)}</textarea>\n\n\t<script>\n\t\tvar editor = CodeMirror.fromTextArea(document.getElementById(\"code3\"), {\n\t\t\tlineNumbers: true,\n\t\t\tmode: \"smarty\",\n\t\t\tsmartyVersion: 3\n\t\t});\n\t</script>\n\n\n    <p>A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-smarty</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smarty/smarty.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n * Smarty 2 and 3 mode.\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"smarty\", function(config) {\n  \"use strict\";\n\n  // our default settings; check to see if they're overridden\n  var settings = {\n    rightDelimiter: '}',\n    leftDelimiter: '{',\n    smartyVersion: 2 // for backward compatibility\n  };\n  if (config.hasOwnProperty(\"leftDelimiter\")) {\n    settings.leftDelimiter = config.leftDelimiter;\n  }\n  if (config.hasOwnProperty(\"rightDelimiter\")) {\n    settings.rightDelimiter = config.rightDelimiter;\n  }\n  if (config.hasOwnProperty(\"smartyVersion\") && config.smartyVersion === 3) {\n    settings.smartyVersion = 3;\n  }\n\n  var keyFunctions = [\"debug\", \"extends\", \"function\", \"include\", \"literal\"];\n  var last;\n  var regs = {\n    operatorChars: /[+\\-*&%=<>!?]/,\n    validIdentifier: /[a-zA-Z0-9_]/,\n    stringChar: /['\"]/\n  };\n\n  var helpers = {\n    cont: function(style, lastType) {\n      last = lastType;\n      return style;\n    },\n    chain: function(stream, state, parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n  };\n\n\n  // our various parsers\n  var parsers = {\n\n    // the main tokenizer\n    tokenizer: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, true)) {\n        if (stream.eat(\"*\")) {\n          return helpers.chain(stream, state, parsers.inBlock(\"comment\", \"*\" + settings.rightDelimiter));\n        } else {\n          // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode\n          state.depth++;\n          var isEol = stream.eol();\n          var isFollowedByWhitespace = /\\s/.test(stream.peek());\n          if (settings.smartyVersion === 3 && settings.leftDelimiter === \"{\" && (isEol || isFollowedByWhitespace)) {\n            state.depth--;\n            return null;\n          } else {\n            state.tokenize = parsers.smarty;\n            last = \"startTag\";\n            return \"tag\";\n          }\n        }\n      } else {\n        stream.next();\n        return null;\n      }\n    },\n\n    // parsing Smarty content\n    smarty: function(stream, state) {\n      if (stream.match(settings.rightDelimiter, true)) {\n        if (settings.smartyVersion === 3) {\n          state.depth--;\n          if (state.depth <= 0) {\n            state.tokenize = parsers.tokenizer;\n          }\n        } else {\n          state.tokenize = parsers.tokenizer;\n        }\n        return helpers.cont(\"tag\", null);\n      }\n\n      if (stream.match(settings.leftDelimiter, true)) {\n        state.depth++;\n        return helpers.cont(\"tag\", \"startTag\");\n      }\n\n      var ch = stream.next();\n      if (ch == \"$\") {\n        stream.eatWhile(regs.validIdentifier);\n        return helpers.cont(\"variable-2\", \"variable\");\n      } else if (ch == \"|\") {\n        return helpers.cont(\"operator\", \"pipe\");\n      } else if (ch == \".\") {\n        return helpers.cont(\"operator\", \"property\");\n      } else if (regs.stringChar.test(ch)) {\n        state.tokenize = parsers.inAttribute(ch);\n        return helpers.cont(\"string\", \"string\");\n      } else if (regs.operatorChars.test(ch)) {\n        stream.eatWhile(regs.operatorChars);\n        return helpers.cont(\"operator\", \"operator\");\n      } else if (ch == \"[\" || ch == \"]\") {\n        return helpers.cont(\"bracket\", \"bracket\");\n      } else if (ch == \"(\" || ch == \")\") {\n        return helpers.cont(\"bracket\", \"operator\");\n      } else if (/\\d/.test(ch)) {\n        stream.eatWhile(/\\d/);\n        return helpers.cont(\"number\", \"number\");\n      } else {\n\n        if (state.last == \"variable\") {\n          if (ch == \"@\") {\n            stream.eatWhile(regs.validIdentifier);\n            return helpers.cont(\"property\", \"property\");\n          } else if (ch == \"|\") {\n            stream.eatWhile(regs.validIdentifier);\n            return helpers.cont(\"qualifier\", \"modifier\");\n          }\n        } else if (state.last == \"pipe\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"qualifier\", \"modifier\");\n        } else if (state.last == \"whitespace\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"attribute\", \"modifier\");\n        } if (state.last == \"property\") {\n          stream.eatWhile(regs.validIdentifier);\n          return helpers.cont(\"property\", null);\n        } else if (/\\s/.test(ch)) {\n          last = \"whitespace\";\n          return null;\n        }\n\n        var str = \"\";\n        if (ch != \"/\") {\n          str += ch;\n        }\n        var c = null;\n        while (c = stream.eat(regs.validIdentifier)) {\n          str += c;\n        }\n        for (var i=0, j=keyFunctions.length; i<j; i++) {\n          if (keyFunctions[i] == str) {\n            return helpers.cont(\"keyword\", \"keyword\");\n          }\n        }\n        if (/\\s/.test(ch)) {\n          return null;\n        }\n        return helpers.cont(\"tag\", \"tag\");\n      }\n    },\n\n    inAttribute: function(quote) {\n      return function(stream, state) {\n        var prevChar = null;\n        var currChar = null;\n        while (!stream.eol()) {\n          currChar = stream.peek();\n          if (stream.next() == quote && prevChar !== '\\\\') {\n            state.tokenize = parsers.smarty;\n            break;\n          }\n          prevChar = currChar;\n        }\n        return \"string\";\n      };\n    },\n\n    inBlock: function(style, terminator) {\n      return function(stream, state) {\n        while (!stream.eol()) {\n          if (stream.match(terminator)) {\n            state.tokenize = parsers.tokenizer;\n            break;\n          }\n          stream.next();\n        }\n        return style;\n      };\n    }\n  };\n\n\n  // the public API for CodeMirror\n  return {\n    startState: function() {\n      return {\n        tokenize: parsers.tokenizer,\n        mode: \"smarty\",\n        last: null,\n        depth: 0\n      };\n    },\n    token: function(stream, state) {\n      var style = state.tokenize(stream, state);\n      state.last = last;\n      return style;\n    },\n    electricChars: \"\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-smarty\", \"smarty\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smartymixed/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Smarty mixed mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../mode/xml/xml.js\"></script>\n<script src=\"../../mode/javascript/javascript.js\"></script>\n<script src=\"../../mode/css/css.js\"></script>\n<script src=\"../../mode/htmlmixed/htmlmixed.js\"></script>\n<script src=\"../../mode/smarty/smarty.js\"></script>\n<script src=\"../../mode/smartymixed/smartymixed.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Smarty mixed</a>\n  </ul>\n</div>\n\n<article>\n<h2>Smarty mixed mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{**\n* @brief Smarty mixed mode\n* @author Ruslan Osmanov\n* @date 29.06.2013\n*}\n<html>\n<head>\n  <title>{$title|htmlspecialchars|truncate:30}</title>\n</head>\n<body class=\"{$bodyclass}\">\n  {* Multiline smarty\n  * comment, no {$variables} here\n  *}\n  {literal}\n  {literal} is just an HTML text.\n  <script type=\"text/javascript\">//<![CDATA[\n    var a = {$just_a_normal_js_object : \"value\"};\n    var myCodeMirror = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      mode           : \"smartymixed\",\n      tabSize        : 2,\n      indentUnit     : 2,\n      indentWithTabs : false,\n      lineNumbers    : true,\n      smartyVersion  : 3\n    });\n    // ]]>\n  </script>\n  <style>\n    /* CSS content \n    {$no_smarty} */\n    .some-class { font-weight: bolder; color: \"orange\"; }\n  </style>\n  {/literal}\n\n  {extends file=\"parent.tpl\"}\n  {include file=\"template.tpl\"}\n\n  {* some example Smarty content *}\n  {if isset($name) && $name == 'Blog'}\n    This is a {$var}.\n    {$integer = 4511}, {$array[] = \"a\"}, {$stringvar = \"string\"}\n    {$integer = 4512} {$array[] = \"a\"} {$stringvar = \"string\"}\n    {assign var='bob' value=$var.prop}\n  {elseif $name == $foo}\n    {function name=menu level=0}\n    {foreach $data as $entry}\n      {if is_array($entry)}\n      - {$entry@key}\n      {menu data=$entry level=$level+1}\n      {else}\n      {$entry}\n      {* One\n      * Two\n      * Three\n      *}\n      {/if}\n    {/foreach}\n    {/function}\n  {/if}\n  </body>\n  <!-- R.O. -->\n</html>\n</textarea></form>\n\n    <script type=\"text/javascript\">\n      var myCodeMirror = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode           : \"smartymixed\",\n        tabSize        : 2,\n        indentUnit     : 2,\n        indentWithTabs : false,\n        lineNumbers    : true,\n        smartyVersion  : 3,\n        matchBrackets  : true,\n      });\n    </script>\n\n    <p>The Smarty mixed mode depends on the Smarty and HTML mixed modes. HTML\n    mixed mode itself depends on XML, JavaScript, and CSS modes.</p>\n\n    <p>It takes the same options, as Smarty and HTML mixed modes.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-smarty</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/smartymixed/smartymixed.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/**\n* @file smartymixed.js\n* @brief Smarty Mixed Codemirror mode (Smarty + Mixed HTML)\n* @author Ruslan Osmanov <rrosmanov at gmail dot com>\n* @version 3.0\n* @date 05.07.2013\n*/\n\n// Warning: Don't base other modes on this one. This here is a\n// terrible way to write a mixed mode.\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"), require(\"../smarty/smarty\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\", \"../smarty/smarty\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"smartymixed\", function(config) {\n  var htmlMixedMode = CodeMirror.getMode(config, \"htmlmixed\");\n  var smartyMode = CodeMirror.getMode(config, \"smarty\");\n\n  var settings = {\n    rightDelimiter: '}',\n    leftDelimiter: '{'\n  };\n\n  if (config.hasOwnProperty(\"leftDelimiter\")) {\n    settings.leftDelimiter = config.leftDelimiter;\n  }\n  if (config.hasOwnProperty(\"rightDelimiter\")) {\n    settings.rightDelimiter = config.rightDelimiter;\n  }\n\n  function reEsc(str) { return str.replace(/[^\\s\\w]/g, \"\\\\$&\"); }\n\n  var reLeft = reEsc(settings.leftDelimiter), reRight = reEsc(settings.rightDelimiter);\n  var regs = {\n    smartyComment: new RegExp(\"^\" + reRight + \"\\\\*\"),\n    literalOpen: new RegExp(reLeft + \"literal\" + reRight),\n    literalClose: new RegExp(reLeft + \"\\/literal\" + reRight),\n    hasLeftDelimeter: new RegExp(\".*\" + reLeft),\n    htmlHasLeftDelimeter: new RegExp(\"[^<>]*\" + reLeft)\n  };\n\n  var helpers = {\n    chain: function(stream, state, parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    },\n\n    cleanChain: function(stream, state, parser) {\n      state.tokenize = null;\n      state.localState = null;\n      state.localMode = null;\n      return (typeof parser == \"string\") ? (parser ? parser : null) : parser(stream, state);\n    },\n\n    maybeBackup: function(stream, pat, style) {\n      var cur = stream.current();\n      var close = cur.search(pat),\n      m;\n      if (close > - 1) stream.backUp(cur.length - close);\n      else if (m = cur.match(/<\\/?$/)) {\n        stream.backUp(cur.length);\n        if (!stream.match(pat, false)) stream.match(cur[0]);\n      }\n      return style;\n    }\n  };\n\n  var parsers = {\n    html: function(stream, state) {\n      var htmlTagName = state.htmlMixedState.htmlState.context && state.htmlMixedState.htmlState.context.tagName\n        ? state.htmlMixedState.htmlState.context.tagName\n        : null;\n\n      if (!state.inLiteral && stream.match(regs.htmlHasLeftDelimeter, false) && htmlTagName === null) {\n        state.tokenize = parsers.smarty;\n        state.localMode = smartyMode;\n        state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, \"\"));\n        return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState));\n      } else if (!state.inLiteral && stream.match(settings.leftDelimiter, false)) {\n        state.tokenize = parsers.smarty;\n        state.localMode = smartyMode;\n        state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, \"\"));\n        return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState));\n      }\n      return htmlMixedMode.token(stream, state.htmlMixedState);\n    },\n\n    smarty: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, false)) {\n        if (stream.match(regs.smartyComment, false)) {\n          return helpers.chain(stream, state, parsers.inBlock(\"comment\", \"*\" + settings.rightDelimiter));\n        }\n      } else if (stream.match(settings.rightDelimiter, false)) {\n        stream.eat(settings.rightDelimiter);\n        state.tokenize = parsers.html;\n        state.localMode = htmlMixedMode;\n        state.localState = state.htmlMixedState;\n        return \"tag\";\n      }\n\n      return helpers.maybeBackup(stream, settings.rightDelimiter, smartyMode.token(stream, state.localState));\n    },\n\n    inBlock: function(style, terminator) {\n      return function(stream, state) {\n        while (!stream.eol()) {\n          if (stream.match(terminator)) {\n            helpers.cleanChain(stream, state, \"\");\n            break;\n          }\n          stream.next();\n        }\n        return style;\n      };\n    }\n  };\n\n  return {\n    startState: function() {\n      var state = htmlMixedMode.startState();\n      return {\n        token: parsers.html,\n        localMode: null,\n        localState: null,\n        htmlMixedState: state,\n        tokenize: null,\n        inLiteral: false\n      };\n    },\n\n    copyState: function(state) {\n      var local = null, tok = (state.tokenize || state.token);\n      if (state.localState) {\n        local = CodeMirror.copyState((tok != parsers.html ? smartyMode : htmlMixedMode), state.localState);\n      }\n      return {\n        token: state.token,\n        tokenize: state.tokenize,\n        localMode: state.localMode,\n        localState: local,\n        htmlMixedState: CodeMirror.copyState(htmlMixedMode, state.htmlMixedState),\n        inLiteral: state.inLiteral\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.match(settings.leftDelimiter, false)) {\n        if (!state.inLiteral && stream.match(regs.literalOpen, true)) {\n          state.inLiteral = true;\n          return \"keyword\";\n        } else if (state.inLiteral && stream.match(regs.literalClose, true)) {\n          state.inLiteral = false;\n          return \"keyword\";\n        }\n      }\n      if (state.inLiteral && state.localState != state.htmlMixedState) {\n        state.tokenize = parsers.html;\n        state.localMode = htmlMixedMode;\n        state.localState = state.htmlMixedState;\n      }\n\n      var style = (state.tokenize || state.token)(stream, state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.localMode == smartyMode\n          || (state.inLiteral && !state.localMode)\n         || regs.hasLeftDelimeter.test(textAfter)) {\n        return CodeMirror.Pass;\n      }\n      return htmlMixedMode.indent(state.htmlMixedState, textAfter);\n    },\n\n    innerMode: function(state) {\n      return {\n        state: state.localState || state.htmlMixedState,\n        mode: state.localMode || htmlMixedMode\n      };\n    }\n  };\n}, \"htmlmixed\", \"smarty\");\n\nCodeMirror.defineMIME(\"text/x-smarty\", \"smartymixed\");\n// vim: et ts=2 sts=2 sw=2\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/solr/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Solr mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"solr.js\"></script>\n<style type=\"text/css\">\n  .CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n  }\n\n  .CodeMirror .cm-operator {\n    color: orange;\n  }\n</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Solr</a>\n  </ul>\n</div>\n\n<article>\n  <h2>Solr mode</h2>\n\n  <div>\n    <textarea id=\"code\" name=\"code\">author:Camus\n\ntitle:\"The Rebel\" and author:Camus\n\nphilosophy:Existentialism -author:Kierkegaard\n\nhardToSpell:Dostoevsky~\n\npublished:[194* TO 1960] and author:(Sartre or \"Simone de Beauvoir\")</textarea>\n  </div>\n\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      mode: 'solr',\n      lineNumbers: true\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>text/x-solr</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/solr/solr.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"solr\", function() {\n  \"use strict\";\n\n  var isStringChar = /[^\\s\\|\\!\\+\\-\\*\\?\\~\\^\\&\\:\\(\\)\\[\\]\\{\\}\\^\\\"\\\\]/;\n  var isOperatorChar = /[\\|\\!\\+\\-\\*\\?\\~\\^\\&]/;\n  var isOperatorString = /^(OR|AND|NOT|TO)$/i;\n\n  function isNumber(word) {\n    return parseFloat(word, 10).toString() === word;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) break;\n        escaped = !escaped && next == \"\\\\\";\n      }\n\n      if (!escaped) state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenOperator(operator) {\n    return function(stream, state) {\n      var style = \"operator\";\n      if (operator == \"+\")\n        style += \" positive\";\n      else if (operator == \"-\")\n        style += \" negative\";\n      else if (operator == \"|\")\n        stream.eat(/\\|/);\n      else if (operator == \"&\")\n        stream.eat(/\\&/);\n      else if (operator == \"^\")\n        style += \" boost\";\n\n      state.tokenize = tokenBase;\n      return style;\n    };\n  }\n\n  function tokenWord(ch) {\n    return function(stream, state) {\n      var word = ch;\n      while ((ch = stream.peek()) && ch.match(isStringChar) != null) {\n        word += stream.next();\n      }\n\n      state.tokenize = tokenBase;\n      if (isOperatorString.test(word))\n        return \"operator\";\n      else if (isNumber(word))\n        return \"number\";\n      else if (stream.peek() == \":\")\n        return \"field\";\n      else\n        return \"string\";\n    };\n  }\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    if (ch == '\"')\n      state.tokenize = tokenString(ch);\n    else if (isOperatorChar.test(ch))\n      state.tokenize = tokenOperator(ch);\n    else if (isStringChar.test(ch))\n      state.tokenize = tokenWord(ch);\n\n    return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null;\n  }\n\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      return state.tokenize(stream, state);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-solr\", \"solr\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/soy/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Soy (Closure Template) mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../javascript/javascript.js\"></script>\n<script src=\"../css/css.js\"></script>\n<script src=\"soy.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Soy (Closure Template)</a>\n  </ul>\n</div>\n\n<article>\n<h2>Soy (Closure Template) mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n{namespace example}\n\n/**\n * Says hello to the world.\n */\n{template .helloWorld}\n  {@param name: string}\n  {@param? score: number}\n  Hello <b>{$name}</b>!\n  <div>\n    {if $score}\n      <em>{$score} points</em>\n    {else}\n      no score\n    {/if}\n  </div>\n{/template}\n\n{template .alertHelloWorld kind=\"js\"}\n  alert('Hello World');\n{/template}\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        mode: \"text/x-soy\",\n        indentUnit: 2,\n        indentWithTabs: false\n      });\n    </script>\n\n    <p>A mode for <a href=\"https://developers.google.com/closure/templates/\">Closure Templates</a> (Soy).</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-soy</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/soy/soy.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var indentingTags = [\"template\", \"literal\", \"msg\", \"fallbackmsg\", \"let\", \"if\", \"elseif\",\n                       \"else\", \"switch\", \"case\", \"default\", \"foreach\", \"ifempty\", \"for\",\n                       \"call\", \"param\", \"deltemplate\", \"delcall\", \"log\"];\n\n  CodeMirror.defineMode(\"soy\", function(config) {\n    var textMode = CodeMirror.getMode(config, \"text/plain\");\n    var modes = {\n      html: CodeMirror.getMode(config, {name: \"text/html\", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}),\n      attributes: textMode,\n      text: textMode,\n      uri: textMode,\n      css: CodeMirror.getMode(config, \"text/css\"),\n      js: CodeMirror.getMode(config, {name: \"text/javascript\", statementIndent: 2 * config.indentUnit})\n    };\n\n    function last(array) {\n      return array[array.length - 1];\n    }\n\n    function tokenUntil(stream, state, untilRegExp) {\n      var oldString = stream.string;\n      var match = untilRegExp.exec(oldString.substr(stream.pos));\n      if (match) {\n        // We don't use backUp because it backs up just the position, not the state.\n        // This uses an undocumented API.\n        stream.string = oldString.substr(0, stream.pos + match.index);\n      }\n      var result = stream.hideFirstChars(state.indent, function() {\n        return state.localMode.token(stream, state.localState);\n      });\n      stream.string = oldString;\n      return result;\n    }\n\n    return {\n      startState: function() {\n        return {\n          kind: [],\n          kindTag: [],\n          soyState: [],\n          indent: 0,\n          localMode: modes.html,\n          localState: CodeMirror.startState(modes.html)\n        };\n      },\n\n      copyState: function(state) {\n        return {\n          tag: state.tag, // Last seen Soy tag.\n          kind: state.kind.concat([]), // Values of kind=\"\" attributes.\n          kindTag: state.kindTag.concat([]), // Opened tags with kind=\"\" attributes.\n          soyState: state.soyState.concat([]),\n          indent: state.indent, // Indentation of the following line.\n          localMode: state.localMode,\n          localState: CodeMirror.copyState(state.localMode, state.localState)\n        };\n      },\n\n      token: function(stream, state) {\n        var match;\n\n        switch (last(state.soyState)) {\n          case \"comment\":\n            if (stream.match(/^.*?\\*\\//)) {\n              state.soyState.pop();\n            } else {\n              stream.skipToEnd();\n            }\n            return \"comment\";\n\n          case \"variable\":\n            if (stream.match(/^}/)) {\n              state.indent -= 2 * config.indentUnit;\n              state.soyState.pop();\n              return \"variable-2\";\n            }\n            stream.next();\n            return null;\n\n          case \"tag\":\n            if (stream.match(/^\\/?}/)) {\n              if (state.tag == \"/template\" || state.tag == \"/deltemplate\") state.indent = 0;\n              else state.indent -= (stream.current() == \"/}\" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1) * config.indentUnit;\n              state.soyState.pop();\n              return \"keyword\";\n            } else if (stream.match(/^(\\w+)(?==)/)) {\n              if (stream.current() == \"kind\" && (match = stream.match(/^=\"([^\"]+)/, false))) {\n                var kind = match[1];\n                state.kind.push(kind);\n                state.kindTag.push(state.tag);\n                state.localMode = modes[kind] || modes.html;\n                state.localState = CodeMirror.startState(state.localMode);\n              }\n              return \"attribute\";\n            } else if (stream.match(/^\"/)) {\n              state.soyState.push(\"string\");\n              return \"string\";\n            }\n            stream.next();\n            return null;\n\n          case \"literal\":\n            if (stream.match(/^(?=\\{\\/literal})/)) {\n              state.indent -= config.indentUnit;\n              state.soyState.pop();\n              return this.token(stream, state);\n            }\n            return tokenUntil(stream, state, /\\{\\/literal}/);\n\n          case \"string\":\n            if (stream.match(/^.*?\"/)) {\n              state.soyState.pop();\n            } else {\n              stream.skipToEnd();\n            }\n            return \"string\";\n        }\n\n        if (stream.match(/^\\/\\*/)) {\n          state.soyState.push(\"comment\");\n          return \"comment\";\n        } else if (stream.match(stream.sol() ? /^\\s*\\/\\/.*/ : /^\\s+\\/\\/.*/)) {\n          return \"comment\";\n        } else if (stream.match(/^\\{\\$\\w*/)) {\n          state.indent += 2 * config.indentUnit;\n          state.soyState.push(\"variable\");\n          return \"variable-2\";\n        } else if (stream.match(/^\\{literal}/)) {\n          state.indent += config.indentUnit;\n          state.soyState.push(\"literal\");\n          return \"keyword\";\n        } else if (match = stream.match(/^\\{([\\/@\\\\]?\\w*)/)) {\n          if (match[1] != \"/switch\")\n            state.indent += (/^(\\/|(else|elseif|case|default)$)/.test(match[1]) && state.tag != \"switch\" ? 1 : 2) * config.indentUnit;\n          state.tag = match[1];\n          if (state.tag == \"/\" + last(state.kindTag)) {\n            // We found the tag that opened the current kind=\"\".\n            state.kind.pop();\n            state.kindTag.pop();\n            state.localMode = modes[last(state.kind)] || modes.html;\n            state.localState = CodeMirror.startState(state.localMode);\n          }\n          state.soyState.push(\"tag\");\n          return \"keyword\";\n        }\n\n        return tokenUntil(stream, state, /\\{|\\s+\\/\\/|\\/\\*/);\n      },\n\n      indent: function(state, textAfter) {\n        var indent = state.indent, top = last(state.soyState);\n        if (top == \"comment\") return CodeMirror.Pass;\n\n        if (top == \"literal\") {\n          if (/^\\{\\/literal}/.test(textAfter)) indent -= config.indentUnit;\n        } else {\n          if (/^\\s*\\{\\/(template|deltemplate)\\b/.test(textAfter)) return 0;\n          if (/^\\{(\\/|(fallbackmsg|elseif|else|ifempty)\\b)/.test(textAfter)) indent -= config.indentUnit;\n          if (state.tag != \"switch\" && /^\\{(case|default)\\b/.test(textAfter)) indent -= config.indentUnit;\n          if (/^\\{\\/switch\\b/.test(textAfter)) indent -= config.indentUnit;\n        }\n        if (indent && state.localMode.indent)\n          indent += state.localMode.indent(state.localState, textAfter);\n        return indent;\n      },\n\n      innerMode: function(state) {\n        if (state.soyState.length && last(state.soyState) != \"literal\") return null;\n        else return {state: state.localState, mode: state.localMode};\n      },\n\n      electricInput: /^\\s*\\{(\\/|\\/template|\\/deltemplate|\\/switch|fallbackmsg|elseif|else|case|default|ifempty|\\/literal\\})$/,\n      lineComment: \"//\",\n      blockCommentStart: \"/*\",\n      blockCommentEnd: \"*/\",\n      blockCommentContinue: \" * \",\n      fold: \"indent\"\n    };\n  }, \"htmlmixed\");\n\n  CodeMirror.registerHelper(\"hintWords\", \"soy\", indentingTags.concat(\n      [\"delpackage\", \"namespace\", \"alias\", \"print\", \"css\", \"debugger\"]));\n\n  CodeMirror.defineMIME(\"text/x-soy\", \"soy\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sparql/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SPARQL mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"sparql.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SPARQL</a>\n  </ul>\n</div>\n\n<article>\n<h2>SPARQL mode</h2>\n<form><textarea id=\"code\" name=\"code\">\nPREFIX a: &lt;http://www.w3.org/2000/10/annotation-ns#>\nPREFIX dc: &lt;http://purl.org/dc/elements/1.1/>\nPREFIX foaf: &lt;http://xmlns.com/foaf/0.1/>\nPREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#>\n\n# Comment!\n\nSELECT ?given ?family\nWHERE {\n  {\n    ?annot a:annotates &lt;http://www.w3.org/TR/rdf-sparql-query/> .\n    ?annot dc:creator ?c .\n    OPTIONAL {?c foaf:givenName ?given ;\n                 foaf:familyName ?family }\n  } UNION {\n    ?c !foaf:knows/foaf:knows? ?thing.\n    ?thing rdfs\n  } MINUS {\n    ?thing rdfs:label \"剛柔流\"@jp\n  }\n  FILTER isBlank(?c)\n}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"application/sparql-query\",\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>application/sparql-query</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sparql/sparql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sparql\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([\"str\", \"lang\", \"langmatches\", \"datatype\", \"bound\", \"sameterm\", \"isiri\", \"isuri\",\n                        \"iri\", \"uri\", \"bnode\", \"count\", \"sum\", \"min\", \"max\", \"avg\", \"sample\",\n                        \"group_concat\", \"rand\", \"abs\", \"ceil\", \"floor\", \"round\", \"concat\", \"substr\", \"strlen\",\n                        \"replace\", \"ucase\", \"lcase\", \"encode_for_uri\", \"contains\", \"strstarts\", \"strends\",\n                        \"strbefore\", \"strafter\", \"year\", \"month\", \"day\", \"hours\", \"minutes\", \"seconds\",\n                        \"timezone\", \"tz\", \"now\", \"uuid\", \"struuid\", \"md5\", \"sha1\", \"sha256\", \"sha384\",\n                        \"sha512\", \"coalesce\", \"if\", \"strlang\", \"strdt\", \"isnumeric\", \"regex\", \"exists\",\n                        \"isblank\", \"isliteral\", \"a\"]);\n  var keywords = wordRegexp([\"base\", \"prefix\", \"select\", \"distinct\", \"reduced\", \"construct\", \"describe\",\n                             \"ask\", \"from\", \"named\", \"where\", \"order\", \"limit\", \"offset\", \"filter\", \"optional\",\n                             \"graph\", \"by\", \"asc\", \"desc\", \"as\", \"having\", \"undef\", \"values\", \"group\",\n                             \"minus\", \"in\", \"not\", \"service\", \"silent\", \"using\", \"insert\", \"delete\", \"union\",\n                             \"true\", \"false\", \"with\",\n                             \"data\", \"copy\", \"to\", \"move\", \"add\", \"create\", \"drop\", \"clear\", \"load\"]);\n  var operatorChars = /[*+\\-<>=&|\\^\\/!\\?]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"$\" || ch == \"?\") {\n      if(ch == \"?\" && stream.match(/\\s/, false)){\n        return \"operator\";\n      }\n      stream.match(/^[\\w\\d]*/);\n      return \"variable-2\";\n    }\n    else if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return \"bracket\";\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return \"operator\";\n    }\n    else if (ch == \":\") {\n      stream.eatWhile(/[\\w\\d\\._\\-]/);\n      return \"atom\";\n    }\n    else if (ch == \"@\") {\n      stream.eatWhile(/[a-z\\d\\-]/i);\n      return \"meta\";\n    }\n    else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if (stream.eat(\":\")) {\n        stream.eatWhile(/[\\w\\d_\\-]/);\n        return \"atom\";\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return \"builtin\";\n      else if (keywords.test(word))\n        return \"keyword\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) popContext(state);\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"application/sparql-query\", \"sparql\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/spreadsheet/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Spreadsheet mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"spreadsheet.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Spreadsheet</a>\n  </ul>\n</div>\n\n<article>\n  <h2>Spreadsheet mode</h2>\n  <form><textarea id=\"code\" name=\"code\">=IF(A1:B2, TRUE, FALSE) / 100</textarea></form>\n\n  <script>\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n      lineNumbers: true,\n      matchBrackets: true,\n      extraKeys: {\"Tab\":  \"indentAuto\"}\n    });\n  </script>\n\n  <p><strong>MIME types defined:</strong> <code>text/x-spreadsheet</code>.</p>\n  \n  <h3>The Spreadsheet Mode</h3>\n  <p> Created by <a href=\"https://github.com/robertleeplummerjr\">Robert Plummer</a></p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/spreadsheet/spreadsheet.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"spreadsheet\", function () {\n    return {\n      startState: function () {\n        return {\n          stringType: null,\n          stack: []\n        };\n      },\n      token: function (stream, state) {\n        if (!stream) return;\n\n        //check for state changes\n        if (state.stack.length === 0) {\n          //strings\n          if ((stream.peek() == '\"') || (stream.peek() == \"'\")) {\n            state.stringType = stream.peek();\n            stream.next(); // Skip quote\n            state.stack.unshift(\"string\");\n          }\n        }\n\n        //return state\n        //stack has\n        switch (state.stack[0]) {\n        case \"string\":\n          while (state.stack[0] === \"string\" && !stream.eol()) {\n            if (stream.peek() === state.stringType) {\n              stream.next(); // Skip quote\n              state.stack.shift(); // Clear flag\n            } else if (stream.peek() === \"\\\\\") {\n              stream.next();\n              stream.next();\n            } else {\n              stream.match(/^.[^\\\\\\\"\\']*/);\n            }\n          }\n          return \"string\";\n\n        case \"characterClass\":\n          while (state.stack[0] === \"characterClass\" && !stream.eol()) {\n            if (!(stream.match(/^[^\\]\\\\]+/) || stream.match(/^\\\\./)))\n              state.stack.shift();\n          }\n          return \"operator\";\n        }\n\n        var peek = stream.peek();\n\n        //no stack\n        switch (peek) {\n        case \"[\":\n          stream.next();\n          state.stack.unshift(\"characterClass\");\n          return \"bracket\";\n        case \":\":\n          stream.next();\n          return \"operator\";\n        case \"\\\\\":\n          if (stream.match(/\\\\[a-z]+/)) return \"string-2\";\n          else return null;\n        case \".\":\n        case \",\":\n        case \";\":\n        case \"*\":\n        case \"-\":\n        case \"+\":\n        case \"^\":\n        case \"<\":\n        case \"/\":\n        case \"=\":\n          stream.next();\n          return \"atom\";\n        case \"$\":\n          stream.next();\n          return \"builtin\";\n        }\n\n        if (stream.match(/\\d+/)) {\n          if (stream.match(/^\\w+/)) return \"error\";\n          return \"number\";\n        } else if (stream.match(/^[a-zA-Z_]\\w*/)) {\n          if (stream.match(/(?=[\\(.])/, false)) return \"keyword\";\n          return \"variable-2\";\n        } else if ([\"[\", \"]\", \"(\", \")\", \"{\", \"}\"].indexOf(peek) != -1) {\n          stream.next();\n          return \"bracket\";\n        } else if (!stream.eatSpace()) {\n          stream.next();\n        }\n        return null;\n      }\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-spreadsheet\", \"spreadsheet\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sql/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: SQL Mode for CodeMirror</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\" />\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"sql.js\"></script>\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\" />\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/sql-hint.js\"></script>\n<style>\n.CodeMirror {\n    border-top: 1px solid black;\n    border-bottom: 1px solid black;\n}\n        </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">SQL Mode for CodeMirror</a>\n  </ul>\n</div>\n\n<article>\n<h2>SQL Mode for CodeMirror</h2>\n<form>\n            <textarea id=\"code\" name=\"code\">-- SQL Mode for CodeMirror\nSELECT SQL_NO_CACHE DISTINCT\n\t\t@var1 AS `val1`, @'val2', @global.'sql_mode',\n\t\t1.1 AS `float_val`, .14 AS `another_float`, 0.09e3 AS `int_with_esp`,\n\t\t0xFA5 AS `hex`, x'fa5' AS `hex2`, 0b101 AS `bin`, b'101' AS `bin2`,\n\t\tDATE '1994-01-01' AS `sql_date`, { T \"1994-01-01\" } AS `odbc_date`,\n\t\t'my string', _utf8'your string', N'her string',\n        TRUE, FALSE, UNKNOWN\n\tFROM DUAL\n\t-- space needed after '--'\n\t# 1 line comment\n\t/* multiline\n\tcomment! */\n\tLIMIT 1 OFFSET 0;\n</textarea>\n            </form>\n            <p><strong>MIME types defined:</strong> \n            <code><a href=\"?mime=text/x-sql\">text/x-sql</a></code>,\n            <code><a href=\"?mime=text/x-mysql\">text/x-mysql</a></code>,\n            <code><a href=\"?mime=text/x-mariadb\">text/x-mariadb</a></code>,\n            <code><a href=\"?mime=text/x-cassandra\">text/x-cassandra</a></code>,\n            <code><a href=\"?mime=text/x-plsql\">text/x-plsql</a></code>,\n            <code><a href=\"?mime=text/x-mssql\">text/x-mssql</a></code>,\n            <code><a href=\"?mime=text/x-hive\">text/x-hive</a></code>.\n        </p>\n<script>\nwindow.onload = function() {\n  var mime = 'text/x-mariadb';\n  // get mime type\n  if (window.location.href.indexOf('mime=') > -1) {\n    mime = window.location.href.substr(window.location.href.indexOf('mime=') + 5);\n  }\n  window.editor = CodeMirror.fromTextArea(document.getElementById('code'), {\n    mode: mime,\n    indentWithTabs: true,\n    smartIndent: true,\n    lineNumbers: true,\n    matchBrackets : true,\n    autofocus: true,\n    extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n    hintOptions: {tables: {\n      users: {name: null, score: null, birthDate: null},\n      countries: {name: null, population: null, size: null}\n    }}\n  });\n};\n</script>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/sql/sql.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n  \"use strict\";\n\n  var client         = parserConfig.client || {},\n      atoms          = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n      builtin        = parserConfig.builtin || {},\n      keywords       = parserConfig.keywords || {},\n      operatorChars  = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^]/,\n      support        = parserConfig.support || {},\n      hooks          = parserConfig.hooks || {},\n      dateSQL        = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true};\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n\n    // call hooks from the mime type\n    if (hooks[ch]) {\n      var result = hooks[ch](stream, state);\n      if (result !== false) return result;\n    }\n\n    if (support.hexNumber == true &&\n      ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n      || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n      // hex\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n      return \"number\";\n    } else if (support.binaryNumber == true &&\n      (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n      || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n      // bitstring\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n      return \"number\";\n    } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n      // numbers\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n          stream.match(/^[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?/);\n      support.decimallessFloat == true && stream.eat('.');\n      return \"number\";\n    } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n      // placeholders\n      return \"variable-3\";\n    } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n      // strings\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    } else if ((((support.nCharCast == true && (ch == \"n\" || ch == \"N\"))\n        || (support.charsetCast == true && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n        && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n      // charset casting: _utf8'str', N'str', n'str'\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n      return \"keyword\";\n    } else if (/^[\\(\\),\\;\\[\\]]/.test(ch)) {\n      // no highlightning\n      return null;\n    } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n      // 1-line comment\n      stream.skipToEnd();\n      return \"comment\";\n    } else if ((support.commentHash && ch == \"#\")\n        || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n      // 1-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      stream.skipToEnd();\n      return \"comment\";\n    } else if (ch == \"/\" && stream.eat(\"*\")) {\n      // multi-line comments\n      // ref: https://kb.askmonty.org/en/comment-syntax/\n      state.tokenize = tokenComment;\n      return state.tokenize(stream, state);\n    } else if (ch == \".\") {\n      // .1 for 0.1\n      if (support.zerolessFloat == true && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i)) {\n        return \"number\";\n      }\n      // .table_name (ODBC)\n      // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n      if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) {\n        return \"variable-2\";\n      }\n    } else if (operatorChars.test(ch)) {\n      // operators\n      stream.eatWhile(operatorChars);\n      return null;\n    } else if (ch == '{' &&\n        (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n      // dates (weird ODBC syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      return \"number\";\n    } else {\n      stream.eatWhile(/^[_\\w\\d]/);\n      var word = stream.current().toLowerCase();\n      // dates (standard SQL syntax)\n      // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n      if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n        return \"number\";\n      if (atoms.hasOwnProperty(word)) return \"atom\";\n      if (builtin.hasOwnProperty(word)) return \"builtin\";\n      if (keywords.hasOwnProperty(word)) return \"keyword\";\n      if (client.hasOwnProperty(word)) return \"string-2\";\n      return null;\n    }\n  }\n\n  // 'string', with char specified in quote escaped by '\\'\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n  function tokenComment(stream, state) {\n    while (true) {\n      if (stream.skipTo(\"*\")) {\n        stream.next();\n        if (stream.eat(\"/\")) {\n          state.tokenize = tokenBase;\n          break;\n        }\n      } else {\n        stream.skipToEnd();\n        break;\n      }\n    }\n    return \"comment\";\n  }\n\n  function pushContext(stream, state, type) {\n    state.context = {\n      prev: state.context,\n      indent: stream.indentation(),\n      col: stream.column(),\n      type: type\n    };\n  }\n\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase, context: null};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null)\n          state.context.align = false;\n      }\n      if (stream.eatSpace()) return null;\n\n      var style = state.tokenize(stream, state);\n      if (style == \"comment\") return style;\n\n      if (state.context && state.context.align == null)\n        state.context.align = true;\n\n      var tok = stream.current();\n      if (tok == \"(\")\n        pushContext(stream, state, \")\");\n      else if (tok == \"[\")\n        pushContext(stream, state, \"]\");\n      else if (state.context && state.context.type == tok)\n        popContext(state);\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var cx = state.context;\n      if (!cx) return CodeMirror.Pass;\n      var closing = textAfter.charAt(0) == cx.type;\n      if (cx.align) return cx.col + (closing ? 0 : 1);\n      else return cx.indent + (closing ? 0 : config.indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : null\n  };\n});\n\n(function() {\n  \"use strict\";\n\n  // `identifier`\n  function hookIdentifier(stream) {\n    // MySQL/MariaDB identifiers\n    // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n    var ch;\n    while ((ch = stream.next()) != null) {\n      if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n    }\n    stream.backUp(stream.current().length - 1);\n    return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n  }\n\n  // variable token\n  function hookVar(stream) {\n    // variables\n    // @@prefix.varName @varName\n    // varName can be quoted with ` or ' or \"\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n    if (stream.eat(\"@\")) {\n      stream.match(/^session\\./);\n      stream.match(/^local\\./);\n      stream.match(/^global\\./);\n    }\n\n    if (stream.eat(\"'\")) {\n      stream.match(/^.*'/);\n      return \"variable-2\";\n    } else if (stream.eat('\"')) {\n      stream.match(/^.*\"/);\n      return \"variable-2\";\n    } else if (stream.eat(\"`\")) {\n      stream.match(/^.*`/);\n      return \"variable-2\";\n    } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n      return \"variable-2\";\n    }\n    return null;\n  };\n\n  // short client keyword token\n  function hookClient(stream) {\n    // \\N means NULL\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n    if (stream.eat(\"N\")) {\n        return \"atom\";\n    }\n    // \\g, etc\n    // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n    return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n  }\n\n  // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n  var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where \";\n\n  // turn a space-separated list into an array\n  function set(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n  CodeMirror.defineMIME(\"text/x-sql\", {\n    name: \"sql\",\n    keywords: set(sqlKeywords + \"begin\"),\n    builtin: set(\"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n\n  CodeMirror.defineMIME(\"text/x-mssql\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered\"),\n    builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n    hooks: {\n      \"@\":   hookVar\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mysql\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  CodeMirror.defineMIME(\"text/x-mariadb\", {\n    name: \"sql\",\n    client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n    keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n    builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=&|^]/,\n    dateSQL: set(\"date time timestamp\"),\n    support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n    hooks: {\n      \"@\":   hookVar,\n      \"`\":   hookIdentifier,\n      \"\\\\\":  hookClient\n    }\n  });\n\n  // the query language used by Apache Cassandra is called CQL, but this mime type\n  // is called Cassandra to avoid confusion with Contextual Query Language\n  CodeMirror.defineMIME(\"text/x-cassandra\", {\n    name: \"sql\",\n    client: { },\n    keywords: set(\"use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum\"),\n    builtin: set(\"ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint\"),\n    atoms: set(\"false true\"),\n    operatorChars: /^[<>=]/,\n    dateSQL: { },\n    support: set(\"commentSlashSlash decimallessFloat\"),\n    hooks: { }\n  });\n\n  // this is based on Peter Raganitsch's 'plsql' mode\n  CodeMirror.defineMIME(\"text/x-plsql\", {\n    name:       \"sql\",\n    client:     set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n    keywords:   set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n    builtin:    set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n    operatorChars: /^[*+\\-%<>!=~]/,\n    dateSQL:    set(\"date time timestamp\"),\n    support:    set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n  });\n\n  // Created to support specific hive keywords\n  CodeMirror.defineMIME(\"text/x-hive\", {\n    name: \"sql\",\n    keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with\"),\n    builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype\"),\n    atoms: set(\"false true null unknown\"),\n    operatorChars: /^[*+\\-%<>!=]/,\n    dateSQL: set(\"date timestamp\"),\n    support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n  });\n}());\n\n});\n\n/*\n  How Properties of Mime Types are used by SQL Mode\n  =================================================\n\n  keywords:\n    A list of keywords you want to be highlighted.\n  builtin:\n    A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n  operatorChars:\n    All characters that must be handled as operators.\n  client:\n    Commands parsed and executed by the client (not the server).\n  support:\n    A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n    * ODBCdotTable: .tableName\n    * zerolessFloat: .1\n    * doubleQuote\n    * nCharCast: N'string'\n    * charsetCast: _utf8'string'\n    * commentHash: use # char for comments\n    * commentSlashSlash: use // for comments\n    * commentSpaceRequired: require a space after -- for comments\n  atoms:\n    Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n    UNKNOWN, INFINITY, UNDERFLOW, NaN...\n  dateSQL:\n    Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/stex/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: sTeX mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"stex.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">sTeX</a>\n  </ul>\n</div>\n\n<article>\n<h2>sTeX mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n\\begin{module}[id=bbt-size]\n\\importmodule[balanced-binary-trees]{balanced-binary-trees}\n\\importmodule[\\KWARCslides{dmath/en/cardinality}]{cardinality}\n\n\\begin{frame}\n  \\frametitle{Size Lemma for Balanced Trees}\n  \\begin{itemize}\n  \\item\n    \\begin{assertion}[id=size-lemma,type=lemma] \n    Let $G=\\tup{V,E}$ be a \\termref[cd=binary-trees]{balanced binary tree} \n    of \\termref[cd=graph-depth,name=vertex-depth]{depth}$n>i$, then the set\n     $\\defeq{\\livar{V}i}{\\setst{\\inset{v}{V}}{\\gdepth{v} = i}}$ of\n    \\termref[cd=graphs-intro,name=node]{nodes} at \n    \\termref[cd=graph-depth,name=vertex-depth]{depth} $i$ has\n    \\termref[cd=cardinality,name=cardinality]{cardinality} $\\power2i$.\n   \\end{assertion}\n  \\item\n    \\begin{sproof}[id=size-lemma-pf,proofend=,for=size-lemma]{via induction over the depth $i$.}\n      \\begin{spfcases}{We have to consider two cases}\n        \\begin{spfcase}{$i=0$}\n          \\begin{spfstep}[display=flow]\n            then $\\livar{V}i=\\set{\\livar{v}r}$, where $\\livar{v}r$ is the root, so\n            $\\eq{\\card{\\livar{V}0},\\card{\\set{\\livar{v}r}},1,\\power20}$.\n          \\end{spfstep}\n        \\end{spfcase}\n        \\begin{spfcase}{$i>0$}\n          \\begin{spfstep}[display=flow]\n           then $\\livar{V}{i-1}$ contains $\\power2{i-1}$ vertexes \n           \\begin{justification}[method=byIH](IH)\\end{justification}\n          \\end{spfstep}\n          \\begin{spfstep}\n           By the \\begin{justification}[method=byDef]definition of a binary\n              tree\\end{justification}, each $\\inset{v}{\\livar{V}{i-1}}$ is a leaf or has\n            two children that are at depth $i$.\n          \\end{spfstep}\n          \\begin{spfstep}\n           As $G$ is \\termref[cd=balanced-binary-trees,name=balanced-binary-tree]{balanced} and $\\gdepth{G}=n>i$, $\\livar{V}{i-1}$ cannot contain\n            leaves.\n          \\end{spfstep}\n          \\begin{spfstep}[type=conclusion]\n           Thus $\\eq{\\card{\\livar{V}i},{\\atimes[cdot]{2,\\card{\\livar{V}{i-1}}}},{\\atimes[cdot]{2,\\power2{i-1}}},\\power2i}$.\n          \\end{spfstep}\n        \\end{spfcase}\n      \\end{spfcases}\n    \\end{sproof}\n  \\item \n    \\begin{assertion}[id=fbbt,type=corollary]\t\n      A fully balanced tree of depth $d$ has $\\power2{d+1}-1$ nodes.\n    \\end{assertion}\n  \\item\n      \\begin{sproof}[for=fbbt,id=fbbt-pf]{}\n        \\begin{spfstep}\n          Let $\\defeq{G}{\\tup{V,E}}$ be a fully balanced tree\n        \\end{spfstep}\n        \\begin{spfstep}\n          Then $\\card{V}=\\Sumfromto{i}1d{\\power2i}= \\power2{d+1}-1$.\n        \\end{spfstep}\n      \\end{sproof}\n    \\end{itemize}\n  \\end{frame}\n\\begin{note}\n  \\begin{omtext}[type=conclusion,for=binary-tree]\n    This shows that balanced binary trees grow in breadth very quickly, a consequence of\n    this is that they are very shallow (and this compute very fast), which is the essence of\n    the next result.\n  \\end{omtext}\n\\end{note}\n\\end{module}\n\n%%% Local Variables: \n%%% mode: LaTeX\n%%% TeX-master: \"all\"\n%%% End: \\end{document}\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-stex</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#stex_*\">normal</a>,  <a href=\"../../test/index.html#verbose,stex_*\">verbose</a>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/stex/stex.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\n * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)\n * Licence: MIT\n */\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stex\", function() {\n    \"use strict\";\n\n    function pushCommand(state, command) {\n      state.cmdState.push(command);\n    }\n\n    function peekCommand(state) {\n      if (state.cmdState.length > 0) {\n        return state.cmdState[state.cmdState.length - 1];\n      } else {\n        return null;\n      }\n    }\n\n    function popCommand(state) {\n      var plug = state.cmdState.pop();\n      if (plug) {\n        plug.closeBracket();\n      }\n    }\n\n    // returns the non-default plugin closest to the end of the list\n    function getMostPowerful(state) {\n      var context = state.cmdState;\n      for (var i = context.length - 1; i >= 0; i--) {\n        var plug = context[i];\n        if (plug.name == \"DEFAULT\") {\n          continue;\n        }\n        return plug;\n      }\n      return { styleIdentifier: function() { return null; } };\n    }\n\n    function addPluginPattern(pluginName, cmdStyle, styles) {\n      return function () {\n        this.name = pluginName;\n        this.bracketNo = 0;\n        this.style = cmdStyle;\n        this.styles = styles;\n        this.argument = null;   // \\begin and \\end have arguments that follow. These are stored in the plugin\n\n        this.styleIdentifier = function() {\n          return this.styles[this.bracketNo - 1] || null;\n        };\n        this.openBracket = function() {\n          this.bracketNo++;\n          return \"bracket\";\n        };\n        this.closeBracket = function() {};\n      };\n    }\n\n    var plugins = {};\n\n    plugins[\"importmodule\"] = addPluginPattern(\"importmodule\", \"tag\", [\"string\", \"builtin\"]);\n    plugins[\"documentclass\"] = addPluginPattern(\"documentclass\", \"tag\", [\"\", \"atom\"]);\n    plugins[\"usepackage\"] = addPluginPattern(\"usepackage\", \"tag\", [\"atom\"]);\n    plugins[\"begin\"] = addPluginPattern(\"begin\", \"tag\", [\"atom\"]);\n    plugins[\"end\"] = addPluginPattern(\"end\", \"tag\", [\"atom\"]);\n\n    plugins[\"DEFAULT\"] = function () {\n      this.name = \"DEFAULT\";\n      this.style = \"tag\";\n\n      this.styleIdentifier = this.openBracket = this.closeBracket = function() {};\n    };\n\n    function setState(state, f) {\n      state.f = f;\n    }\n\n    // called when in a normal (no environment) context\n    function normal(source, state) {\n      var plug;\n      // Do we look like '\\command' ?  If so, attempt to apply the plugin 'command'\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        var cmdName = source.current().slice(1);\n        plug = plugins[cmdName] || plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        setState(state, beginParams);\n        return plug.style;\n      }\n\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/\\\\]/)) {\n        return \"tag\";\n      }\n\n      // find if we're starting various math modes\n      if (source.match(\"\\\\[\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"\\\\]\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$$\"); });\n        return \"keyword\";\n      }\n      if (source.match(\"$\")) {\n        setState(state, function(source, state){ return inMathMode(source, state, \"$\"); });\n        return \"keyword\";\n      }\n\n      var ch = source.next();\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      } else if (ch == '}' || ch == ']') {\n        plug = peekCommand(state);\n        if (plug) {\n          plug.closeBracket(ch);\n          setState(state, beginParams);\n        } else {\n          return \"error\";\n        }\n        return \"bracket\";\n      } else if (ch == '{' || ch == '[') {\n        plug = plugins[\"DEFAULT\"];\n        plug = new plug();\n        pushCommand(state, plug);\n        return \"bracket\";\n      } else if (/\\d/.test(ch)) {\n        source.eatWhile(/[\\w.%]/);\n        return \"atom\";\n      } else {\n        source.eatWhile(/[\\w\\-_]/);\n        plug = getMostPowerful(state);\n        if (plug.name == 'begin') {\n          plug.argument = source.current();\n        }\n        return plug.styleIdentifier();\n      }\n    }\n\n    function inMathMode(source, state, endModeSeq) {\n      if (source.eatSpace()) {\n        return null;\n      }\n      if (source.match(endModeSeq)) {\n        setState(state, normal);\n        return \"keyword\";\n      }\n      if (source.match(/^\\\\[a-zA-Z@]+/)) {\n        return \"tag\";\n      }\n      if (source.match(/^[a-zA-Z]+/)) {\n        return \"variable-2\";\n      }\n      // escape characters\n      if (source.match(/^\\\\[$&%#{}_]/)) {\n        return \"tag\";\n      }\n      // white space control characters\n      if (source.match(/^\\\\[,;!\\/]/)) {\n        return \"tag\";\n      }\n      // special math-mode characters\n      if (source.match(/^[\\^_&]/)) {\n        return \"tag\";\n      }\n      // non-special characters\n      if (source.match(/^[+\\-<>|=,\\/@!*:;'\"`~#?]/)) {\n        return null;\n      }\n      if (source.match(/^(\\d+\\.\\d*|\\d*\\.\\d+|\\d+)/)) {\n        return \"number\";\n      }\n      var ch = source.next();\n      if (ch == \"{\" || ch == \"}\" || ch == \"[\" || ch == \"]\" || ch == \"(\" || ch == \")\") {\n        return \"bracket\";\n      }\n\n      if (ch == \"%\") {\n        source.skipToEnd();\n        return \"comment\";\n      }\n      return \"error\";\n    }\n\n    function beginParams(source, state) {\n      var ch = source.peek(), lastPlug;\n      if (ch == '{' || ch == '[') {\n        lastPlug = peekCommand(state);\n        lastPlug.openBracket(ch);\n        source.eat(ch);\n        setState(state, normal);\n        return \"bracket\";\n      }\n      if (/[ \\t\\r]/.test(ch)) {\n        source.eat(ch);\n        return null;\n      }\n      setState(state, normal);\n      popCommand(state);\n\n      return normal(source, state);\n    }\n\n    return {\n      startState: function() {\n        return {\n          cmdState: [],\n          f: normal\n        };\n      },\n      copyState: function(s) {\n        return {\n          cmdState: s.cmdState.slice(),\n          f: s.f\n        };\n      },\n      token: function(stream, state) {\n        return state.f(stream, state);\n      },\n      blankLine: function(state) {\n        state.f = normal;\n        state.cmdState.length = 0;\n      },\n      lineComment: \"%\"\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-stex\", \"stex\");\n  CodeMirror.defineMIME(\"text/x-latex\", \"stex\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/stex/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"stex\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"word\",\n     \"foo\");\n\n  MT(\"twoWords\",\n     \"foo bar\");\n\n  MT(\"beginEndDocument\",\n     \"[tag \\\\begin][bracket {][atom document][bracket }]\",\n     \"[tag \\\\end][bracket {][atom document][bracket }]\");\n\n  MT(\"beginEndEquation\",\n     \"[tag \\\\begin][bracket {][atom equation][bracket }]\",\n     \"  E=mc^2\",\n     \"[tag \\\\end][bracket {][atom equation][bracket }]\");\n\n  MT(\"beginModule\",\n     \"[tag \\\\begin][bracket {][atom module][bracket }[[]]]\");\n\n  MT(\"beginModuleId\",\n     \"[tag \\\\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]\");\n\n  MT(\"importModule\",\n     \"[tag \\\\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]\");\n\n  MT(\"importModulePath\",\n     \"[tag \\\\importmodule][bracket [[][tag \\\\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]\");\n\n  MT(\"psForPDF\",\n     \"[tag \\\\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]\");\n\n  MT(\"comment\",\n     \"[comment % foo]\");\n\n  MT(\"tagComment\",\n     \"[tag \\\\item][comment % bar]\");\n\n  MT(\"commentTag\",\n     \" [comment % \\\\item]\");\n\n  MT(\"commentLineBreak\",\n     \"[comment %]\",\n     \"foo\");\n\n  MT(\"tagErrorCurly\",\n     \"[tag \\\\begin][error }][bracket {]\");\n\n  MT(\"tagErrorSquare\",\n     \"[tag \\\\item][error ]]][bracket {]\");\n\n  MT(\"commentCurly\",\n     \"[comment % }]\");\n\n  MT(\"tagHash\",\n     \"the [tag \\\\#] key\");\n\n  MT(\"tagNumber\",\n     \"a [tag \\\\$][atom 5] stetson\");\n\n  MT(\"tagPercent\",\n     \"[atom 100][tag \\\\%] beef\");\n\n  MT(\"tagAmpersand\",\n     \"L [tag \\\\&] N\");\n\n  MT(\"tagUnderscore\",\n     \"foo[tag \\\\_]bar\");\n\n  MT(\"tagBracketOpen\",\n     \"[tag \\\\emph][bracket {][tag \\\\{][bracket }]\");\n\n  MT(\"tagBracketClose\",\n     \"[tag \\\\emph][bracket {][tag \\\\}][bracket }]\");\n\n  MT(\"tagLetterNumber\",\n     \"section [tag \\\\S][atom 1]\");\n\n  MT(\"textTagNumber\",\n     \"para [tag \\\\P][atom 2]\");\n\n  MT(\"thinspace\",\n     \"x[tag \\\\,]y\");\n\n  MT(\"thickspace\",\n     \"x[tag \\\\;]y\");\n\n  MT(\"negativeThinspace\",\n     \"x[tag \\\\!]y\");\n\n  MT(\"periodNotSentence\",\n     \"J.\\\\ L.\\\\ is\");\n\n  MT(\"periodSentence\",\n     \"X[tag \\\\@]. The\");\n\n  MT(\"italicCorrection\",\n     \"[bracket {][tag \\\\em] If[tag \\\\/][bracket }] I\");\n\n  MT(\"tagBracket\",\n     \"[tag \\\\newcommand][bracket {][tag \\\\pop][bracket }]\");\n\n  MT(\"inlineMathTagFollowedByNumber\",\n     \"[keyword $][tag \\\\pi][number 2][keyword $]\");\n\n  MT(\"inlineMath\",\n     \"[keyword $][number 3][variable-2 x][tag ^][number 2.45]-[tag \\\\sqrt][bracket {][tag \\\\$\\\\alpha][bracket }] = [number 2][keyword $] other text\");\n\n  MT(\"displayMath\",\n     \"More [keyword $$]\\t[variable-2 S][tag ^][variable-2 n][tag \\\\sum] [variable-2 i][keyword $$] other text\");\n\n  MT(\"mathWithComment\",\n     \"[keyword $][variable-2 x] [comment % $]\",\n     \"[variable-2 y][keyword $] other text\");\n\n  MT(\"lineBreakArgument\",\n    \"[tag \\\\\\\\][bracket [[][atom 1cm][bracket ]]]\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/stylus/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Stylus mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../addon/hint/show-hint.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"stylus.js\"></script>\n<script src=\"../../addon/hint/show-hint.js\"></script>\n<script src=\"../../addon/hint/css-hint.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;} form{margin-bottom: .7em;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Stylus</a>\n  </ul>\n</div>\n\n<article>\n<h2>Stylus mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n/* Stylus mode */\n#id\n.class\narticle\n  font-family Arial, sans-serif\n\n#id,\n.class,\narticle {\n  font-family: Arial, sans-serif;\n}\n\n// Variables\nfont-size-base = 16px\nline-height-base = 1.5\nfont-family-base = \"Helvetica Neue\", Helvetica, Arial, sans-serif\ntext-color = lighten(#000, 20%)\n\nbody\n  font font-size-base/line-height-base font-family-base\n  color text-color\n\nbody {\n  font: 400 16px/1.5 \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  color: #333;\n}\n\n// Variables\nlink-color = darken(#428bca, 6.5%)\nlink-hover-color = darken(link-color, 15%)\nlink-decoration = none\nlink-hover-decoration = false\n\n// Mixin\ntab-focus()\n  outline thin dotted\n  outline 5px auto -webkit-focus-ring-color\n  outline-offset -2px\n\na\n  color link-color\n  if link-decoration\n    text-decoration link-decoration\n  &:hover\n  &:focus\n    color link-hover-color\n    if link-hover-decoration\n      text-decoration link-hover-decoration\n  &:focus\n    tab-focus()\n\na {\n  color: #3782c4;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #2f6ea7;\n}\na:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n</textarea>\n</form>\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    extraKeys: {\"Ctrl-Space\": \"autocomplete\"},\n  });\n</script>\n\n<p><strong>MIME types defined:</strong> <code>text/x-styl</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/stylus/stylus.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"stylus\", function(config) {\n\n    var operatorsRegexp = /^(\\?:?|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/=?|[=!:\\?]?=|<=?|>=?|%=?|&&|\\|=?|\\~|!|\\^|\\\\)/,\n        delimitersRegexp = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/,\n        wordOperatorsRegexp = wordRegexp(wordOperators),\n        commonKeywordsRegexp = wordRegexp(commonKeywords),\n        commonAtomsRegexp = wordRegexp(commonAtoms),\n        commonDefRegexp = wordRegexp(commonDef),\n        vendorPrefixesRegexp = new RegExp(/^\\-(moz|ms|o|webkit)-/),\n        cssValuesWithBracketsRegexp = new RegExp(\"^(\" + cssValuesWithBrackets_.join(\"|\") + \")\\\\([\\\\w\\-\\\\#\\\\,\\\\.\\\\%\\\\s\\\\(\\\\)]*\\\\)\");\n\n    var tokenBase = function(stream, state) {\n\n      if (stream.eatSpace()) return null;\n\n      var ch = stream.peek();\n\n      // Single line Comment\n      if (stream.match('//')) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      // Multiline Comment\n      if (stream.match('/*')) {\n        state.tokenizer = multilineComment;\n        return state.tokenizer(stream, state);\n      }\n\n      // Strings\n      if (ch === '\"' || ch === \"'\") {\n        stream.next();\n        state.tokenizer = buildStringTokenizer(ch);\n        return \"string\";\n      }\n\n      // Def\n      if (ch === \"@\") {\n        stream.next();\n        if (stream.match(/extend/)) {\n          dedent(state); // remove indentation after selectors\n        } else if (stream.match(/media[\\w-\\s]*[\\w-]/)) {\n          indent(state);\n        } else if(stream.eatWhile(/[\\w-]/)) {\n          if(stream.current().match(commonDefRegexp)) {\n            indent(state);\n          }\n        }\n        return \"def\";\n      }\n\n      // Number\n      if (stream.match(/^-?[0-9\\.]/, false)) {\n\n        // Floats\n        if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i) || stream.match(/^-?\\d+\\.\\d*/)) {\n\n          // Prevent from getting extra . on 1..\n          if (stream.peek() == \".\") {\n            stream.backUp(1);\n          }\n          // Units\n          stream.eatWhile(/[a-z%]/i);\n          return \"number\";\n        }\n        // Integers\n        if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/) || stream.match(/^-?0(?![\\dx])/i)) {\n          // Units\n          stream.eatWhile(/[a-z%]/i);\n          return \"number\";\n        }\n      }\n\n      // Hex color and id selector\n      if (ch === \"#\") {\n        stream.next();\n\n        // Hex color\n        if (stream.match(/^[0-9a-f]{6}|[0-9a-f]{3}/i)) {\n          return \"atom\";\n        }\n\n        // ID selector\n        if (stream.match(/^[\\w-]+/i)) {\n          indent(state);\n          return \"builtin\";\n        }\n      }\n\n      // Vendor prefixes\n      if (stream.match(vendorPrefixesRegexp)) {\n        return \"meta\";\n      }\n\n      // Gradients and animation as CSS value\n      if (stream.match(cssValuesWithBracketsRegexp)) {\n        return \"atom\";\n      }\n\n      // Mixins / Functions with indentation\n      if (stream.sol() && stream.match(/^\\.?[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        indent(state);\n        return \"keyword\";\n      }\n\n      // Mixins / Functions\n      if (stream.match(/^\\.?[a-z][\\w-]*\\(/i)) {\n        stream.backUp(1);\n        return \"keyword\";\n      }\n\n      // +Block mixins\n      if (stream.match(/^(\\+|\\-)[a-z][\\w-]+\\(/i)) {\n        stream.backUp(1);\n        indent(state);\n        return \"keyword\";\n      }\n\n      // url tokens\n      if (stream.match(/^url/) && stream.peek() === \"(\") {\n        state.tokenizer = urlTokens;\n        if(!stream.peek()) {\n          state.cursorHalf = 0;\n        }\n        return \"atom\";\n      }\n\n      // Class\n      if (stream.match(/^\\.[a-z][\\w-]*/i)) {\n        indent(state);\n        return \"qualifier\";\n      }\n\n      // & Parent Reference with BEM naming\n      if (stream.match(/^(_|__|-|--)[a-z0-9-]+/)) {\n        return \"qualifier\";\n      }\n\n      // Pseudo elements/classes\n      if (ch == ':' && stream.match(/^::?[\\w-]+/)) {\n        indent(state);\n        return \"variable-3\";\n      }\n\n      // Conditionals\n      if (stream.match(wordRegexp([\"for\", \"if\", \"else\", \"unless\"]))) {\n        indent(state);\n        return \"keyword\";\n      }\n\n      // Keywords\n      if (stream.match(commonKeywordsRegexp)) {\n        return \"keyword\";\n      }\n\n      // Atoms\n      if (stream.match(commonAtomsRegexp)) {\n        return \"atom\";\n      }\n\n      // Variables\n      if (stream.match(/^\\$?[a-z][\\w-]+\\s?=(\\s|[\\w-'\"\\$])/i)) {\n        stream.backUp(2);\n        var cssPropertie = stream.current().toLowerCase().match(/[\\w-]+/)[0];\n        return cssProperties[cssPropertie] === undefined ? \"variable-2\" : \"property\";\n      } else if (stream.match(/\\$[\\w-\\.]+/i)) {\n        return \"variable-2\";\n      } else if (stream.match(/\\$?[\\w-]+\\.[\\w-]+/i)) {\n        var cssTypeSelector = stream.current().toLowerCase().match(/[\\w]+/)[0];\n        if(cssTypeSelectors[cssTypeSelector] === undefined) {\n          return \"variable-2\";\n        } else stream.backUp(stream.current().length);\n      }\n\n      // !important\n      if (ch === \"!\") {\n        stream.next();\n        return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n      }\n\n      // / Root Reference\n      if (stream.match(/^\\/(:|\\.|#|[a-z])/)) {\n        stream.backUp(1);\n        return \"variable-3\";\n      }\n\n      // Operators and delimiters\n      if (stream.match(operatorsRegexp) || stream.match(wordOperatorsRegexp)) {\n        return \"operator\";\n      }\n      if (stream.match(delimitersRegexp)) {\n        return null;\n      }\n\n      // & Parent Reference\n      if (ch === \"&\") {\n        stream.next();\n        return \"variable-3\";\n      }\n\n      // Font family\n      if (stream.match(/^[A-Z][a-z0-9-]+/)) {\n        return \"string\";\n      }\n\n      // CSS rule\n      // NOTE: Some css selectors and property values have the same name\n      // (embed, menu, pre, progress, sub, table),\n      // so they will have the same color (.cm-atom).\n      if (stream.match(/[\\w-]*/i)) {\n\n        var word = stream.current().toLowerCase();\n\n        if(cssProperties[word] !== undefined) {\n          // CSS property\n          if(!stream.eol())\n            return \"property\";\n          else\n            return \"variable-2\";\n\n        } else if(cssValues[word] !== undefined) {\n          // CSS value\n          return \"atom\";\n\n        } else if(cssTypeSelectors[word] !== undefined) {\n          // CSS type selectors\n          indent(state);\n          return \"tag\";\n\n        } else if(word) {\n          // By default variable-2\n          return \"variable-2\";\n        }\n      }\n\n      // Handle non-detected items\n      stream.next();\n      return null;\n\n    };\n\n    var tokenLexer = function(stream, state) {\n\n      if (stream.sol()) {\n        state.indentCount = 0;\n      }\n\n      var style = state.tokenizer(stream, state);\n      var current = stream.current();\n\n      if (stream.eol() && (current === \"}\" || current === \",\")) {\n        dedent(state);\n      }\n\n      if (style !== null) {\n        var startOfToken = stream.pos - current.length;\n        var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n        var newScopes = [];\n\n        for (var i = 0; i < state.scopes.length; i++) {\n          var scope = state.scopes[i];\n\n          if (scope.offset <= withCurrentIndent) {\n            newScopes.push(scope);\n          }\n        }\n\n        state.scopes = newScopes;\n      }\n\n      return style;\n    };\n\n    return {\n      startState: function() {\n        return {\n          tokenizer: tokenBase,\n          scopes: [{offset: 0, type: 'styl'}]\n        };\n      },\n\n      token: function(stream, state) {\n        var style = tokenLexer(stream, state);\n        state.lastToken = { style: style, content: stream.current() };\n        return style;\n      },\n\n      indent: function(state) {\n        return state.scopes[0].offset;\n      },\n\n      lineComment: \"//\",\n      fold: \"indent\"\n\n    };\n\n    function urlTokens(stream, state) {\n      var ch = stream.peek();\n\n      if (ch === \")\") {\n        stream.next();\n        state.tokenizer = tokenBase;\n        return \"operator\";\n      } else if (ch === \"(\") {\n        stream.next();\n        stream.eatSpace();\n\n        return \"operator\";\n      } else if (ch === \"'\" || ch === '\"') {\n        state.tokenizer = buildStringTokenizer(stream.next());\n        return \"string\";\n      } else {\n        state.tokenizer = buildStringTokenizer(\")\", false);\n        return \"string\";\n      }\n    }\n\n    function multilineComment(stream, state) {\n      if (stream.skipTo(\"*/\")) {\n        stream.next();\n        stream.next();\n        state.tokenizer = tokenBase;\n      } else {\n        stream.next();\n      }\n      return \"comment\";\n    }\n\n    function buildStringTokenizer(quote, greedy) {\n\n      if(greedy == null) {\n        greedy = true;\n      }\n\n      function stringTokenizer(stream, state) {\n        var nextChar = stream.next();\n        var peekChar = stream.peek();\n        var previousChar = stream.string.charAt(stream.pos-2);\n\n        var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) ||\n                            (nextChar === quote && previousChar !== \"\\\\\"));\n\n        if (endingString) {\n          if (nextChar !== quote && greedy) {\n            stream.next();\n          }\n          state.tokenizer = tokenBase;\n          return \"string\";\n        } else if (nextChar === \"#\" && peekChar === \"{\") {\n          state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n          stream.next();\n          return \"operator\";\n        } else {\n          return \"string\";\n        }\n      }\n\n      return stringTokenizer;\n    }\n\n    function buildInterpolationTokenizer(currentTokenizer) {\n      return function(stream, state) {\n        if (stream.peek() === \"}\") {\n          stream.next();\n          state.tokenizer = currentTokenizer;\n          return \"operator\";\n        } else {\n          return tokenBase(stream, state);\n        }\n      };\n    }\n\n    function indent(state) {\n      if (state.indentCount == 0) {\n        state.indentCount++;\n        var lastScopeOffset = state.scopes[0].offset;\n        var currentOffset = lastScopeOffset + config.indentUnit;\n        state.scopes.unshift({ offset:currentOffset });\n      }\n    }\n\n    function dedent(state) {\n      if (state.scopes.length == 1) { return true; }\n      state.scopes.shift();\n    }\n\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n  var cssTypeSelectors_ = [\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\", \"b\", \"base\",\"bdi\",\"bdo\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"nobr\",\"noframes\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"];\n  // https://github.com/csscomb/csscomb.js/blob/master/config/zen.json\n  var cssProperties_ = [\"position\",\"top\",\"right\",\"bottom\",\"left\",\"z-index\",\"display\",\"visibility\",\"flex-direction\",\"flex-order\",\"flex-pack\",\"float\",\"clear\",\"flex-align\",\"overflow\",\"overflow-x\",\"overflow-y\",\"overflow-scrolling\",\"clip\",\"box-sizing\",\"margin\",\"margin-top\",\"margin-right\",\"margin-bottom\",\"margin-left\",\"padding\",\"padding-top\",\"padding-right\",\"padding-bottom\",\"padding-left\",\"min-width\",\"min-height\",\"max-width\",\"max-height\",\"width\",\"height\",\"outline\",\"outline-width\",\"outline-style\",\"outline-color\",\"outline-offset\",\"border\",\"border-spacing\",\"border-collapse\",\"border-width\",\"border-style\",\"border-color\",\"border-top\",\"border-top-width\",\"border-top-style\",\"border-top-color\",\"border-right\",\"border-right-width\",\"border-right-style\",\"border-right-color\",\"border-bottom\",\"border-bottom-width\",\"border-bottom-style\",\"border-bottom-color\",\"border-left\",\"border-left-width\",\"border-left-style\",\"border-left-color\",\"border-radius\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-bottom-right-radius\",\"border-bottom-left-radius\",\"border-image\",\"border-image-source\",\"border-image-slice\",\"border-image-width\",\"border-image-outset\",\"border-image-repeat\",\"border-top-image\",\"border-right-image\",\"border-bottom-image\",\"border-left-image\",\"border-corner-image\",\"border-top-left-image\",\"border-top-right-image\",\"border-bottom-right-image\",\"border-bottom-left-image\",\"background\",\"filter:progid:DXImageTransform\\\\.Microsoft\\\\.AlphaImageLoader\",\"background-color\",\"background-image\",\"background-attachment\",\"background-position\",\"background-position-x\",\"background-position-y\",\"background-clip\",\"background-origin\",\"background-size\",\"background-repeat\",\"box-decoration-break\",\"box-shadow\",\"color\",\"table-layout\",\"caption-side\",\"empty-cells\",\"list-style\",\"list-style-position\",\"list-style-type\",\"list-style-image\",\"quotes\",\"content\",\"counter-increment\",\"counter-reset\",\"writing-mode\",\"vertical-align\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-emphasis\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-emphasis-color\",\"text-indent\",\"-ms-text-justify\",\"text-justify\",\"text-outline\",\"text-transform\",\"text-wrap\",\"text-overflow\",\"text-overflow-ellipsis\",\"text-overflow-mode\",\"text-size-adjust\",\"text-shadow\",\"white-space\",\"word-spacing\",\"word-wrap\",\"word-break\",\"tab-size\",\"hyphens\",\"letter-spacing\",\"font\",\"font-weight\",\"font-style\",\"font-variant\",\"font-size-adjust\",\"font-stretch\",\"font-size\",\"font-family\",\"src\",\"line-height\",\"opacity\",\"filter:\\\\\\\\\\\\\\\\'progid:DXImageTransform.Microsoft.Alpha\",\"filter:progid:DXImageTransform.Microsoft.Alpha\\\\(Opacity\",\"interpolation-mode\",\"filter\",\"resize\",\"cursor\",\"nav-index\",\"nav-up\",\"nav-right\",\"nav-down\",\"nav-left\",\"transition\",\"transition-delay\",\"transition-timing-function\",\"transition-duration\",\"transition-property\",\"transform\",\"transform-origin\",\"animation\",\"animation-name\",\"animation-duration\",\"animation-play-state\",\"animation-timing-function\",\"animation-delay\",\"animation-iteration-count\",\"animation-direction\",\"pointer-events\",\"unicode-bidi\",\"direction\",\"columns\",\"column-span\",\"column-width\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-width\",\"column-rule-style\",\"column-rule-color\",\"break-before\",\"break-inside\",\"break-after\",\"page-break-before\",\"page-break-inside\",\"page-break-after\",\"orphans\",\"widows\",\"zoom\",\"max-zoom\",\"min-zoom\",\"user-zoom\",\"orientation\",\"text-rendering\",\"speak\",\"animation-fill-mode\",\"backface-visibility\",\"user-drag\",\"user-select\",\"appearance\"];\n  // https://github.com/codemirror/CodeMirror/blob/master/mode/css/css.js#L501\n  var cssValues_ = [\"above\",\"absolute\",\"activeborder\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"auto\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"column\",\"compact\",\"condensed\",\"contain\",\"content\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"disc\",\"discard\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ew-resize\",\"expanded\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"line-through\",\"linear\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"malayalam\",\"match\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"round\",\"row-resize\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"scroll\",\"scrollbar\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"single\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small-caps\",\"small-caption\",\"smaller\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\",\"bicubic\",\"optimizespeed\",\"grayscale\"];\n  var cssColorValues_ = [\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"];\n  var cssValuesWithBrackets_ = [\"gradient\",\"linear-gradient\",\"radial-gradient\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"cubic-bezier\",\"translateX\",\"translateY\",\"translate3d\",\"rotate3d\",\"scale\",\"scale3d\",\"perspective\",\"skewX\"];\n\n  var wordOperators = [\"in\", \"and\", \"or\", \"not\", \"is a\", \"is\", \"isnt\", \"defined\", \"if unless\"],\n      commonKeywords = [\"for\", \"if\", \"else\", \"unless\", \"return\"],\n      commonAtoms = [\"null\", \"true\", \"false\", \"href\", \"title\", \"type\", \"not-allowed\", \"readonly\", \"disabled\"],\n      commonDef = [\"@font-face\", \"@keyframes\", \"@media\", \"@viewport\", \"@page\", \"@host\", \"@supports\", \"@block\", \"@css\"],\n      cssTypeSelectors = keySet(cssTypeSelectors_),\n      cssProperties = keySet(cssProperties_),\n      cssValues = keySet(cssValues_.concat(cssColorValues_)),\n      hintWords = wordOperators.concat(commonKeywords,\n                                       commonAtoms,\n                                       commonDef,\n                                       cssTypeSelectors_,\n                                       cssProperties_,\n                                       cssValues_,\n                                       cssValuesWithBrackets_,\n                                       cssColorValues_);\n\n  function wordRegexp(words) {\n    return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n  };\n\n  function keySet(array) {\n    var keys = {};\n    for (var i = 0; i < array.length; ++i) {\n      keys[array[i]] = true;\n    }\n    return keys;\n  };\n\n  CodeMirror.registerHelper(\"hintWords\", \"stylus\", hintWords);\n  CodeMirror.defineMIME(\"text/x-styl\", \"stylus\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tcl/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tcl mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"tcl.js\"></script>\n<script src=\"../../addon/scroll/scrollpastend.js\"></script>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tcl</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tcl mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n##############################################################################################\n##  ##     whois.tcl for eggdrop by Ford_Lawnmower irc.geekshed.net #Script-Help        ##  ##\n##############################################################################################\n## To use this script you must set channel flag +whois (ie .chanset #chan +whois)           ##\n##############################################################################################\n##      ____                __                 ###########################################  ##\n##     / __/___ _ ___ _ ___/ /____ ___   ___   ###########################################  ##\n##    / _/ / _ `// _ `// _  // __// _ \\ / _ \\  ###########################################  ##\n##   /___/ \\_, / \\_, / \\_,_//_/   \\___// .__/  ###########################################  ##\n##        /___/ /___/                 /_/      ###########################################  ##\n##                                             ###########################################  ##\n##############################################################################################\n##  ##                             Start Setup.                                         ##  ##\n##############################################################################################\nnamespace eval whois {\n## change cmdchar to the trigger you want to use                                        ##  ##\n  variable cmdchar \"!\"\n## change command to the word trigger you would like to use.                            ##  ##\n## Keep in mind, This will also change the .chanset +/-command                          ##  ##\n  variable command \"whois\"\n## change textf to the colors you want for the text.                                    ##  ##\n  variable textf \"\\017\\00304\"\n## change tagf to the colors you want for tags:                                         ##  ##\n  variable tagf \"\\017\\002\"\n## Change logo to the logo you want at the start of the line.                           ##  ##\n  variable logo \"\\017\\00304\\002\\[\\00306W\\003hois\\00304\\]\\017\"\n## Change lineout to the results you want. Valid results are channel users modes topic  ##  ##\n  variable lineout \"channel users modes topic\"\n##############################################################################################\n##  ##                           End Setup.                                              ## ##\n##############################################################################################\n  variable channel \"\"\n  setudef flag $whois::command\n  bind pub -|- [string trimleft $whois::cmdchar]${whois::command} whois::list\n  bind raw -|- \"311\" whois::311\n  bind raw -|- \"312\" whois::312\n  bind raw -|- \"319\" whois::319\n  bind raw -|- \"317\" whois::317\n  bind raw -|- \"313\" whois::multi\n  bind raw -|- \"310\" whois::multi\n  bind raw -|- \"335\" whois::multi\n  bind raw -|- \"301\" whois::301\n  bind raw -|- \"671\" whois::multi\n  bind raw -|- \"320\" whois::multi\n  bind raw -|- \"401\" whois::multi\n  bind raw -|- \"318\" whois::318\n  bind raw -|- \"307\" whois::307\n}\nproc whois::311 {from key text} {\n  if {[regexp -- {^[^\\s]+\\s(.+?)\\s(.+?)\\s(.+?)\\s\\*\\s\\:(.+)$} $text wholematch nick ident host realname]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Host:${whois::textf} \\\n        $nick \\(${ident}@${host}\\) ${whois::tagf}Realname:${whois::textf} $realname\"\n  }\n}\nproc whois::multi {from key text} {\n  if {[regexp {\\:(.*)$} $text match $key]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Note:${whois::textf} [subst $$key]\"\n        return 1\n  }\n}\nproc whois::312 {from key text} {\n  regexp {([^\\s]+)\\s\\:} $text match server\n  putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Server:${whois::textf} $server\"\n}\nproc whois::319 {from key text} {\n  if {[regexp {.+\\:(.+)$} $text match channels]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Channels:${whois::textf} $channels\"\n  }\n}\nproc whois::317 {from key text} {\n  if {[regexp -- {.*\\s(\\d+)\\s(\\d+)\\s\\:} $text wholematch idle signon]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Connected:${whois::textf} \\\n        [ctime $signon] ${whois::tagf}Idle:${whois::textf} [duration $idle]\"\n  }\n}\nproc whois::301 {from key text} {\n  if {[regexp {^.+\\s[^\\s]+\\s\\:(.*)$} $text match awaymsg]} {\n    putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Away:${whois::textf} $awaymsg\"\n  }\n}\nproc whois::318 {from key text} {\n  namespace eval whois {\n        variable channel \"\"\n  }\n  variable whois::channel \"\"\n}\nproc whois::307 {from key text} {\n  putserv \"PRIVMSG $whois::channel :${whois::logo} ${whois::tagf}Services:${whois::textf} Registered Nick\"\n}\nproc whois::list {nick host hand chan text} {\n  if {[lsearch -exact [channel info $chan] \"+${whois::command}\"] != -1} {\n    namespace eval whois {\n          variable channel \"\"\n        }\n    variable whois::channel $chan\n    putserv \"WHOIS $text\"\n  }\n}\nputlog \"\\002*Loaded* \\017\\00304\\002\\[\\00306W\\003hois\\00304\\]\\017 \\002by \\\nFord_Lawnmower irc.GeekShed.net #Script-Help\"\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"night\",\n        lineNumbers: true,\n        indentUnit: 2,\n        scrollPastEnd: true,\n        mode: \"text/x-tcl\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tcl</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tcl/tcl.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tcl\", function() {\n  function parseWords(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n  var keywords = parseWords(\"Tcl safe after append array auto_execok auto_import auto_load \" +\n        \"auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror \" +\n        \"binary break catch cd close concat continue dde eof encoding error \" +\n        \"eval exec exit expr fblocked fconfigure fcopy file fileevent filename \" +\n        \"filename flush for foreach format gets glob global history http if \" +\n        \"incr info interp join lappend lindex linsert list llength load lrange \" +\n        \"lreplace lsearch lset lsort memory msgcat namespace open package parray \" +\n        \"pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp \" +\n        \"registry regsub rename resource return scan seek set socket source split \" +\n        \"string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord \" +\n        \"tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest \" +\n        \"tclvars tell time trace unknown unset update uplevel upvar variable \" +\n    \"vwait\");\n    var functions = parseWords(\"if elseif else and not or eq ne in ni for foreach while switch\");\n    var isOperatorChar = /[+\\-*&%=<>!?^\\/\\|]/;\n    function chain(stream, state, f) {\n      state.tokenize = f;\n      return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n      var beforeParams = state.beforeParams;\n      state.beforeParams = false;\n      var ch = stream.next();\n      if ((ch == '\"' || ch == \"'\") && state.inParams)\n        return chain(stream, state, tokenString(ch));\n      else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n        if (ch == \"(\" && beforeParams) state.inParams = true;\n        else if (ch == \")\") state.inParams = false;\n          return null;\n      }\n      else if (/\\d/.test(ch)) {\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      else if (ch == \"#\" && stream.eat(\"*\")) {\n        return chain(stream, state, tokenComment);\n      }\n      else if (ch == \"#\" && stream.match(/ *\\[ *\\[/)) {\n        return chain(stream, state, tokenUnparsed);\n      }\n      else if (ch == \"#\" && stream.eat(\"#\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      else if (ch == '\"') {\n        stream.skipTo(/\"/);\n        return \"comment\";\n      }\n      else if (ch == \"$\") {\n        stream.eatWhile(/[$_a-z0-9A-Z\\.{:]/);\n        stream.eatWhile(/}/);\n        state.beforeParams = true;\n        return \"builtin\";\n      }\n      else if (isOperatorChar.test(ch)) {\n        stream.eatWhile(isOperatorChar);\n        return \"comment\";\n      }\n      else {\n        stream.eatWhile(/[\\w\\$_{}\\xa1-\\uffff]/);\n        var word = stream.current().toLowerCase();\n        if (keywords && keywords.propertyIsEnumerable(word))\n          return \"keyword\";\n        if (functions && functions.propertyIsEnumerable(word)) {\n          state.beforeParams = true;\n          return \"keyword\";\n        }\n        return null;\n      }\n    }\n    function tokenString(quote) {\n      return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {\n          end = true;\n          break;\n        }\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end) state.tokenize = tokenBase;\n        return \"string\";\n      };\n    }\n    function tokenComment(stream, state) {\n      var maybeEnd = false, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        maybeEnd = (ch == \"*\");\n      }\n      return \"comment\";\n    }\n    function tokenUnparsed(stream, state) {\n      var maybeEnd = 0, ch;\n      while (ch = stream.next()) {\n        if (ch == \"#\" && maybeEnd == 2) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        if (ch == \"]\")\n          maybeEnd++;\n        else if (ch != \" \")\n          maybeEnd = 0;\n      }\n      return \"meta\";\n    }\n    return {\n      startState: function() {\n        return {\n          tokenize: tokenBase,\n          beforeParams: false,\n          inParams: false\n        };\n      },\n      token: function(stream, state) {\n        if (stream.eatSpace()) return null;\n        return state.tokenize(stream, state);\n      }\n    };\n});\nCodeMirror.defineMIME(\"text/x-tcl\", \"tcl\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/textile/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Textile mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"textile.js\"></script>\n<style>.CodeMirror {background: #f8f8f8;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/marijnh/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=\"active\" href=\"#\">Textile</a>\n  </ul>\n</div>\n\n<article>\n    <h2>Textile mode</h2>\n    <form><textarea id=\"code\" name=\"code\">\nh1. Textile Mode\n\nA paragraph without formatting.\n\np. A simple Paragraph.\n\n\nh2. Phrase Modifiers\n\nHere are some simple phrase modifiers: *strong*, _emphasis_, **bold**, and __italic__.\n\nA ??citation??, -deleted text-, +inserted text+, some ^superscript^, and some ~subscript~.\n\nA %span element% and @code element@\n\nA \"link\":http://example.com, a \"link with (alt text)\":urlAlias\n\n[urlAlias]http://example.com/\n\nAn image: !http://example.com/image.png! and an image with a link: !http://example.com/image.png!:http://example.com\n\nA sentence with a footnote.[123]\n\nfn123. The footnote is defined here.\n\nRegistered(r), Trademark(tm), and Copyright(c)\n\n\nh2. Headers\n\nh1. Top level\nh2. Second level\nh3. Third level\nh4. Fourth level\nh5. Fifth level\nh6. Lowest level\n\n\nh2.  Lists\n\n* An unordered list\n** foo bar\n*** foo bar\n**** foo bar\n** foo bar\n\n# An ordered list\n## foo bar\n### foo bar\n#### foo bar\n## foo bar\n\n- definition list := description\n- another item    := foo bar\n- spanning ines   :=\n                     foo bar\n\n                     foo bar =:\n\n\nh2. Attributes\n\nLayouts and phrase modifiers can be modified with various kinds of attributes: alignment, CSS ID, CSS class names, language, padding, and CSS styles.\n\nh3. Alignment\n\ndiv<. left align\ndiv>. right align\n\nh3. CSS ID and class name\n\nYou are a %(my-id#my-classname) rad% person.\n\nh3. Language\n\np[en_CA]. Strange weather, eh?\n\nh3. Horizontal Padding\n\np(())). 2em left padding, 3em right padding\n\nh3. CSS styling\n\np{background: red}. Fire!\n\n\nh2. Table\n\n|_.              Header 1               |_.      Header 2        |\n|{background:#ddd}. Cell with background|         Normal         |\n|\\2.         Cell spanning 2 columns                             |\n|/2.         Cell spanning 2 rows       |(cell-class). one       |\n|                                                two             |\n|>.                  Right aligned cell |<. Left aligned cell    |\n\n\nh3. A table with attributes:\n\ntable(#prices).\n|Adults|$5|\n|Children|$2|\n\n\nh2. Code blocks\n\nbc.\nfunction factorial(n) {\n    if (n === 0) {\n        return 1;\n    }\n    return n * factorial(n - 1);\n}\n\npre..\n                ,,,,,,\n            o#'9MMHb':'-,o,\n         .oH\":HH$' \"' ' -*R&o,\n        dMMM*\"\"'`'      .oM\"HM?.\n       ,MMM'          \"HLbd< ?&H\\\n      .:MH .\"\\          ` MM  MM&b\n     . \"*H    -        &MMMMMMMMMH:\n     .    dboo        MMMMMMMMMMMM.\n     .   dMMMMMMb      *MMMMMMMMMP.\n     .    MMMMMMMP        *MMMMMP .\n          `#MMMMM           MM6P ,\n       '    `MMMP\"           HM*`,\n        '    :MM             .- ,\n         '.   `#?..  .       ..'\n            -.   .         .-\n              ''-.oo,oo.-''\n\n\\. _(9>\n \\==_)\n  -'=\n\nh2. Temporarily disabling textile markup\n\nnotextile. Don't __touch this!__\n\nSurround text with double-equals to disable textile inline. Example: Use ==*asterisks*== for *strong* text.\n\n\nh2. HTML\n\nSome block layouts are simply textile versions of HTML tags with the same name, like @div@, @pre@, and @p@. HTML tags can also exist on their own line:\n\n<section>\n  <h1>Title</h1>\n  <p>Hello!</p>\n</section>\n\n</textarea></form>\n    <script>\n        var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n            lineNumbers: true,\n            mode: \"text/x-textile\"\n        });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-textile</code>.</p>\n\n    <p><strong>Parsing/Highlighting Tests:</strong> <a href=\"../../test/index.html#textile_*\">normal</a>,  <a href=\"../../test/index.html#verbose,textile_*\">verbose</a>.</p>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/textile/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, 'textile');\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT('simpleParagraphs',\n      'Some text.',\n      '',\n      'Some more text.');\n\n  /*\n   * Phrase Modifiers\n   */\n\n  MT('em',\n      'foo [em _bar_]');\n\n  MT('emBoogus',\n      'code_mirror');\n\n  MT('strong',\n      'foo [strong *bar*]');\n\n  MT('strongBogus',\n      '3 * 3 = 9');\n\n  MT('italic',\n      'foo [em __bar__]');\n\n  MT('italicBogus',\n      'code__mirror');\n\n  MT('bold',\n      'foo [strong **bar**]');\n\n  MT('boldBogus',\n      '3 ** 3 = 27');\n\n  MT('simpleLink',\n      '[link \"CodeMirror\":http://codemirror.net]');\n\n  MT('referenceLink',\n      '[link \"CodeMirror\":code_mirror]',\n      'Normal Text.',\n      '[link [[code_mirror]]http://codemirror.net]');\n\n  MT('footCite',\n      'foo bar[qualifier [[1]]]');\n\n  MT('footCiteBogus',\n      'foo bar[[1a2]]');\n\n  MT('special-characters',\n          'Registered [tag (r)], ' +\n          'Trademark [tag (tm)], and ' +\n          'Copyright [tag (c)] 2008');\n\n  MT('cite',\n      \"A book is [keyword ??The Count of Monte Cristo??] by Dumas.\");\n\n  MT('additionAndDeletion',\n      'The news networks declared [negative -Al Gore-] ' +\n        '[positive +George W. Bush+] the winner in Florida.');\n\n  MT('subAndSup',\n      'f(x, n) = log [builtin ~4~] x [builtin ^n^]');\n\n  MT('spanAndCode',\n      'A [quote %span element%] and [atom @code element@]');\n\n  MT('spanBogus',\n      'Percentage 25% is not a span.');\n\n  MT('citeBogus',\n      'Question? is not a citation.');\n\n  MT('codeBogus',\n      'user@example.com');\n\n  MT('subBogus',\n      '~username');\n\n  MT('supBogus',\n      'foo ^ bar');\n\n  MT('deletionBogus',\n      '3 - 3 = 0');\n\n  MT('additionBogus',\n      '3 + 3 = 6');\n\n  MT('image',\n      'An image: [string !http://www.example.com/image.png!]');\n\n  MT('imageWithAltText',\n      'An image: [string !http://www.example.com/image.png (Alt Text)!]');\n\n  MT('imageWithUrl',\n      'An image: [string !http://www.example.com/image.png!:http://www.example.com/]');\n\n  /*\n   * Headers\n   */\n\n  MT('h1',\n      '[header&header-1 h1. foo]');\n\n  MT('h2',\n      '[header&header-2 h2. foo]');\n\n  MT('h3',\n      '[header&header-3 h3. foo]');\n\n  MT('h4',\n      '[header&header-4 h4. foo]');\n\n  MT('h5',\n      '[header&header-5 h5. foo]');\n\n  MT('h6',\n      '[header&header-6 h6. foo]');\n\n  MT('h7Bogus',\n      'h7. foo');\n\n  MT('multipleHeaders',\n      '[header&header-1 h1. Heading 1]',\n      '',\n      'Some text.',\n      '',\n      '[header&header-2 h2. Heading 2]',\n      '',\n      'More text.');\n\n  MT('h1inline',\n      '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1  baz]');\n\n  /*\n   * Lists\n   */\n\n  MT('ul',\n      'foo',\n      'bar',\n      '',\n      '[variable-2 * foo]',\n      '[variable-2 * bar]');\n\n  MT('ulNoBlank',\n      'foo',\n      'bar',\n      '[variable-2 * foo]',\n      '[variable-2 * bar]');\n\n  MT('ol',\n      'foo',\n      'bar',\n      '',\n      '[variable-2 # foo]',\n      '[variable-2 # bar]');\n\n  MT('olNoBlank',\n      'foo',\n      'bar',\n      '[variable-2 # foo]',\n      '[variable-2 # bar]');\n\n  MT('ulFormatting',\n      '[variable-2 * ][variable-2&em _foo_][variable-2  bar]',\n      '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' +\n        '[variable-2&strong *][variable-2  bar]',\n      '[variable-2 * ][variable-2&strong *foo*][variable-2  bar]');\n\n  MT('olFormatting',\n      '[variable-2 # ][variable-2&em _foo_][variable-2  bar]',\n      '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' +\n        '[variable-2&strong *][variable-2  bar]',\n      '[variable-2 # ][variable-2&strong *foo*][variable-2  bar]');\n\n  MT('ulNested',\n      '[variable-2 * foo]',\n      '[variable-3 ** bar]',\n      '[keyword *** bar]',\n      '[variable-2 **** bar]',\n      '[variable-3 ** bar]');\n\n  MT('olNested',\n      '[variable-2 # foo]',\n      '[variable-3 ## bar]',\n      '[keyword ### bar]',\n      '[variable-2 #### bar]',\n      '[variable-3 ## bar]');\n\n  MT('ulNestedWithOl',\n      '[variable-2 * foo]',\n      '[variable-3 ## bar]',\n      '[keyword *** bar]',\n      '[variable-2 #### bar]',\n      '[variable-3 ** bar]');\n\n  MT('olNestedWithUl',\n      '[variable-2 # foo]',\n      '[variable-3 ** bar]',\n      '[keyword ### bar]',\n      '[variable-2 **** bar]',\n      '[variable-3 ## bar]');\n\n  MT('definitionList',\n      '[number - coffee := Hot ][number&em _and_][number  black]',\n      '',\n      'Normal text.');\n\n  MT('definitionListSpan',\n      '[number - coffee :=]',\n      '',\n      '[number Hot ][number&em _and_][number  black =:]',\n      '',\n      'Normal text.');\n\n  MT('boo',\n      '[number - dog := woof woof]',\n      '[number - cat := meow meow]',\n      '[number - whale :=]',\n      '[number Whale noises.]',\n      '',\n      '[number Also, ][number&em _splashing_][number . =:]');\n\n  /*\n   * Attributes\n   */\n\n  MT('divWithAttribute',\n      '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]');\n\n  MT('divWithAttributeAnd2emRightPadding',\n      '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]');\n\n  MT('divWithClassAndId',\n      '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]');\n\n  MT('paragraphWithCss',\n      'p[attribute {color:red;}]. foo bar');\n\n  MT('paragraphNestedStyles',\n      'p. [strong *foo ][strong&em _bar_][strong *]');\n\n  MT('paragraphWithLanguage',\n      'p[attribute [[fr]]]. Parlez-vous français?');\n\n  MT('paragraphLeftAlign',\n      'p[attribute <]. Left');\n\n  MT('paragraphRightAlign',\n      'p[attribute >]. Right');\n\n  MT('paragraphRightAlign',\n      'p[attribute =]. Center');\n\n  MT('paragraphJustified',\n      'p[attribute <>]. Justified');\n\n  MT('paragraphWithLeftIndent1em',\n      'p[attribute (]. Left');\n\n  MT('paragraphWithRightIndent1em',\n      'p[attribute )]. Right');\n\n  MT('paragraphWithLeftIndent2em',\n      'p[attribute ((]. Left');\n\n  MT('paragraphWithRightIndent2em',\n      'p[attribute ))]. Right');\n\n  MT('paragraphWithLeftIndent3emRightIndent2em',\n      'p[attribute ((())]. Right');\n\n  MT('divFormatting',\n      '[punctuation div. ][punctuation&strong *foo ]' +\n        '[punctuation&strong&em _bar_][punctuation&strong *]');\n\n  MT('phraseModifierAttributes',\n      'p[attribute (my-class)]. This is a paragraph that has a class and' +\n      ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' +\n      ' has an id.');\n\n  MT('linkWithClass',\n      '[link \"(my-class). This is a link with class\":http://redcloth.org]');\n\n  /*\n   * Layouts\n   */\n\n  MT('paragraphLayouts',\n      'p. This is one paragraph.',\n      '',\n      'p. This is another.');\n\n  MT('div',\n      '[punctuation div. foo bar]');\n\n  MT('pre',\n      '[operator pre. Text]');\n\n  MT('bq.',\n      '[bracket bq. foo bar]',\n      '',\n      'Normal text.');\n\n  MT('footnote',\n      '[variable fn123. foo ][variable&strong *bar*]');\n\n  /*\n   * Spanning Layouts\n   */\n\n  MT('bq..ThenParagraph',\n      '[bracket bq.. foo bar]',\n      '',\n      '[bracket More quote.]',\n      'p. Normal Text');\n\n  MT('bq..ThenH1',\n      '[bracket bq.. foo bar]',\n      '',\n      '[bracket More quote.]',\n      '[header&header-1 h1. Header Text]');\n\n  MT('bc..ThenParagraph',\n      '[atom bc.. # Some ruby code]',\n      '[atom obj = {foo: :bar}]',\n      '[atom puts obj]',\n      '',\n      '[atom obj[[:love]] = \"*love*\"]',\n      '[atom puts obj.love.upcase]',\n      '',\n      'p. Normal text.');\n\n  MT('fn1..ThenParagraph',\n      '[variable fn1.. foo bar]',\n      '',\n      '[variable More.]',\n      'p. Normal Text');\n\n  MT('pre..ThenParagraph',\n      '[operator pre.. foo bar]',\n      '',\n      '[operator More.]',\n      'p. Normal Text');\n\n  /*\n   * Tables\n   */\n\n  MT('table',\n      '[variable-3&operator |_. name |_. age|]',\n      '[variable-3 |][variable-3&strong *Walter*][variable-3 |   5  |]',\n      '[variable-3 |Florence|   6  |]',\n      '',\n      'p. Normal text.');\n\n  MT('tableWithAttributes',\n      '[variable-3&operator |_. name |_. age|]',\n      '[variable-3 |][variable-3&attribute /2.][variable-3  Jim |]',\n      '[variable-3 |][variable-3&attribute \\\\2{color: red}.][variable-3  Sam |]');\n\n  /*\n   * HTML\n   */\n\n  MT('html',\n      '[comment <div id=\"wrapper\">]',\n      '[comment <section id=\"introduction\">]',\n      '',\n      '[header&header-1 h1. Welcome]',\n      '',\n      '[variable-2 * Item one]',\n      '[variable-2 * Item two]',\n      '',\n      '[comment <a href=\"http://example.com\">Example</a>]',\n      '',\n      '[comment </section>]',\n      '[comment </div>]');\n\n  MT('inlineHtml',\n      'I can use HTML directly in my [comment <span class=\"youbetcha\">Textile</span>].');\n\n  /*\n   * No-Textile\n   */\n\n  MT('notextile',\n    '[string-2 notextile. *No* formatting]');\n\n  MT('notextileInline',\n      'Use [string-2 ==*asterisks*==] for [strong *strong*] text.');\n\n  MT('notextileWithPre',\n      '[operator pre. *No* formatting]');\n\n  MT('notextileWithSpanningPre',\n      '[operator pre.. *No* formatting]',\n      '',\n      '[operator *No* formatting]');\n\n  /* Only toggling phrases between non-word chars. */\n\n  MT('phrase-in-word',\n     'foo_bar_baz');\n\n  MT('phrase-non-word',\n     '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]');\n\n  MT('phrase-lone-dash',\n     'foo - bar - baz');\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/textile/textile.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") { // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  } else if (typeof define == \"function\" && define.amd) { // AMD\n    define([\"../../lib/codemirror\"], mod);\n  } else { // Plain browser env\n    mod(CodeMirror);\n  }\n})(function(CodeMirror) {\n  \"use strict\";\n\n  var TOKEN_STYLES = {\n    addition: \"positive\",\n    attributes: \"attribute\",\n    bold: \"strong\",\n    cite: \"keyword\",\n    code: \"atom\",\n    definitionList: \"number\",\n    deletion: \"negative\",\n    div: \"punctuation\",\n    em: \"em\",\n    footnote: \"variable\",\n    footCite: \"qualifier\",\n    header: \"header\",\n    html: \"comment\",\n    image: \"string\",\n    italic: \"em\",\n    link: \"link\",\n    linkDefinition: \"link\",\n    list1: \"variable-2\",\n    list2: \"variable-3\",\n    list3: \"keyword\",\n    notextile: \"string-2\",\n    pre: \"operator\",\n    p: \"property\",\n    quote: \"bracket\",\n    span: \"quote\",\n    specialChar: \"tag\",\n    strong: \"strong\",\n    sub: \"builtin\",\n    sup: \"builtin\",\n    table: \"variable-3\",\n    tableHeading: \"operator\"\n  };\n\n  function startNewLine(stream, state) {\n    state.mode = Modes.newLayout;\n    state.tableHeading = false;\n\n    if (state.layoutType === \"definitionList\" && state.spanningLayout &&\n        stream.match(RE(\"definitionListEnd\"), false))\n      state.spanningLayout = false;\n  }\n\n  function handlePhraseModifier(stream, state, ch) {\n    if (ch === \"_\") {\n      if (stream.eat(\"_\"))\n        return togglePhraseModifier(stream, state, \"italic\", /__/, 2);\n      else\n        return togglePhraseModifier(stream, state, \"em\", /_/, 1);\n    }\n\n    if (ch === \"*\") {\n      if (stream.eat(\"*\")) {\n        return togglePhraseModifier(stream, state, \"bold\", /\\*\\*/, 2);\n      }\n      return togglePhraseModifier(stream, state, \"strong\", /\\*/, 1);\n    }\n\n    if (ch === \"[\") {\n      if (stream.match(/\\d+\\]/)) state.footCite = true;\n      return tokenStyles(state);\n    }\n\n    if (ch === \"(\") {\n      var spec = stream.match(/^(r|tm|c)\\)/);\n      if (spec)\n        return tokenStylesWith(state, TOKEN_STYLES.specialChar);\n    }\n\n    if (ch === \"<\" && stream.match(/(\\w+)[^>]+>[^<]+<\\/\\1>/))\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n\n    if (ch === \"?\" && stream.eat(\"?\"))\n      return togglePhraseModifier(stream, state, \"cite\", /\\?\\?/, 2);\n\n    if (ch === \"=\" && stream.eat(\"=\"))\n      return togglePhraseModifier(stream, state, \"notextile\", /==/, 2);\n\n    if (ch === \"-\" && !stream.eat(\"-\"))\n      return togglePhraseModifier(stream, state, \"deletion\", /-/, 1);\n\n    if (ch === \"+\")\n      return togglePhraseModifier(stream, state, \"addition\", /\\+/, 1);\n\n    if (ch === \"~\")\n      return togglePhraseModifier(stream, state, \"sub\", /~/, 1);\n\n    if (ch === \"^\")\n      return togglePhraseModifier(stream, state, \"sup\", /\\^/, 1);\n\n    if (ch === \"%\")\n      return togglePhraseModifier(stream, state, \"span\", /%/, 1);\n\n    if (ch === \"@\")\n      return togglePhraseModifier(stream, state, \"code\", /@/, 1);\n\n    if (ch === \"!\") {\n      var type = togglePhraseModifier(stream, state, \"image\", /(?:\\([^\\)]+\\))?!/, 1);\n      stream.match(/^:\\S+/); // optional Url portion\n      return type;\n    }\n    return tokenStyles(state);\n  }\n\n  function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) {\n    var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null;\n    var charAfter = stream.peek();\n    if (state[phraseModifier]) {\n      if ((!charAfter || /\\W/.test(charAfter)) && charBefore && /\\S/.test(charBefore)) {\n        var type = tokenStyles(state);\n        state[phraseModifier] = false;\n        return type;\n      }\n    } else if ((!charBefore || /\\W/.test(charBefore)) && charAfter && /\\S/.test(charAfter) &&\n               stream.match(new RegExp(\"^.*\\\\S\" + closeRE.source + \"(?:\\\\W|$)\"), false)) {\n      state[phraseModifier] = true;\n      state.mode = Modes.attributes;\n    }\n    return tokenStyles(state);\n  };\n\n  function tokenStyles(state) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var styles = [];\n    if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]);\n\n    styles = styles.concat(activeStyles(\n      state, \"addition\", \"bold\", \"cite\", \"code\", \"deletion\", \"em\", \"footCite\",\n      \"image\", \"italic\", \"link\", \"span\", \"strong\", \"sub\", \"sup\", \"table\", \"tableHeading\"));\n\n    if (state.layoutType === \"header\")\n      styles.push(TOKEN_STYLES.header + \"-\" + state.header);\n\n    return styles.length ? styles.join(\" \") : null;\n  }\n\n  function textileDisabled(state) {\n    var type = state.layoutType;\n\n    switch(type) {\n    case \"notextile\":\n    case \"code\":\n    case \"pre\":\n      return TOKEN_STYLES[type];\n    default:\n      if (state.notextile)\n        return TOKEN_STYLES.notextile + (type ? (\" \" + TOKEN_STYLES[type]) : \"\");\n      return null;\n    }\n  }\n\n  function tokenStylesWith(state, extraStyles) {\n    var disabled = textileDisabled(state);\n    if (disabled) return disabled;\n\n    var type = tokenStyles(state);\n    if (extraStyles)\n      return type ? (type + \" \" + extraStyles) : extraStyles;\n    else\n      return type;\n  }\n\n  function activeStyles(state) {\n    var styles = [];\n    for (var i = 1; i < arguments.length; ++i) {\n      if (state[arguments[i]])\n        styles.push(TOKEN_STYLES[arguments[i]]);\n    }\n    return styles;\n  }\n\n  function blankLine(state) {\n    var spanningLayout = state.spanningLayout, type = state.layoutType;\n\n    for (var key in state) if (state.hasOwnProperty(key))\n      delete state[key];\n\n    state.mode = Modes.newLayout;\n    if (spanningLayout) {\n      state.layoutType = type;\n      state.spanningLayout = true;\n    }\n  }\n\n  var REs = {\n    cache: {},\n    single: {\n      bc: \"bc\",\n      bq: \"bq\",\n      definitionList: /- [^(?::=)]+:=+/,\n      definitionListEnd: /.*=:\\s*$/,\n      div: \"div\",\n      drawTable: /\\|.*\\|/,\n      foot: /fn\\d+/,\n      header: /h[1-6]/,\n      html: /\\s*<(?:\\/)?(\\w+)(?:[^>]+)?>(?:[^<]+<\\/\\1>)?/,\n      link: /[^\"]+\":\\S/,\n      linkDefinition: /\\[[^\\s\\]]+\\]\\S+/,\n      list: /(?:#+|\\*+)/,\n      notextile: \"notextile\",\n      para: \"p\",\n      pre: \"pre\",\n      table: \"table\",\n      tableCellAttributes: /[\\/\\\\]\\d+/,\n      tableHeading: /\\|_\\./,\n      tableText: /[^\"_\\*\\[\\(\\?\\+~\\^%@|-]+/,\n      text: /[^!\"_=\\*\\[\\(<\\?\\+~\\^%@-]+/\n    },\n    attributes: {\n      align: /(?:<>|<|>|=)/,\n      selector: /\\([^\\(][^\\)]+\\)/,\n      lang: /\\[[^\\[\\]]+\\]/,\n      pad: /(?:\\(+|\\)+){1,2}/,\n      css: /\\{[^\\}]+\\}/\n    },\n    createRe: function(name) {\n      switch (name) {\n      case \"drawTable\":\n        return REs.makeRe(\"^\", REs.single.drawTable, \"$\");\n      case \"html\":\n        return REs.makeRe(\"^\", REs.single.html, \"(?:\", REs.single.html, \")*\", \"$\");\n      case \"linkDefinition\":\n        return REs.makeRe(\"^\", REs.single.linkDefinition, \"$\");\n      case \"listLayout\":\n        return REs.makeRe(\"^\", REs.single.list, RE(\"allAttributes\"), \"*\\\\s+\");\n      case \"tableCellAttributes\":\n        return REs.makeRe(\"^\", REs.choiceRe(REs.single.tableCellAttributes,\n                                            RE(\"allAttributes\")), \"+\\\\.\");\n      case \"type\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"));\n      case \"typeLayout\":\n        return REs.makeRe(\"^\", RE(\"allTypes\"), RE(\"allAttributes\"),\n                          \"*\\\\.\\\\.?\", \"(\\\\s+|$)\");\n      case \"attributes\":\n        return REs.makeRe(\"^\", RE(\"allAttributes\"), \"+\");\n\n      case \"allTypes\":\n        return REs.choiceRe(REs.single.div, REs.single.foot,\n                            REs.single.header, REs.single.bc, REs.single.bq,\n                            REs.single.notextile, REs.single.pre, REs.single.table,\n                            REs.single.para);\n\n      case \"allAttributes\":\n        return REs.choiceRe(REs.attributes.selector, REs.attributes.css,\n                            REs.attributes.lang, REs.attributes.align, REs.attributes.pad);\n\n      default:\n        return REs.makeRe(\"^\", REs.single[name]);\n      }\n    },\n    makeRe: function() {\n      var pattern = \"\";\n      for (var i = 0; i < arguments.length; ++i) {\n        var arg = arguments[i];\n        pattern += (typeof arg === \"string\") ? arg : arg.source;\n      }\n      return new RegExp(pattern);\n    },\n    choiceRe: function() {\n      var parts = [arguments[0]];\n      for (var i = 1; i < arguments.length; ++i) {\n        parts[i * 2 - 1] = \"|\";\n        parts[i * 2] = arguments[i];\n      }\n\n      parts.unshift(\"(?:\");\n      parts.push(\")\");\n      return REs.makeRe.apply(null, parts);\n    }\n  };\n\n  function RE(name) {\n    return (REs.cache[name] || (REs.cache[name] = REs.createRe(name)));\n  }\n\n  var Modes = {\n    newLayout: function(stream, state) {\n      if (stream.match(RE(\"typeLayout\"), false)) {\n        state.spanningLayout = false;\n        return (state.mode = Modes.blockType)(stream, state);\n      }\n      var newMode;\n      if (!textileDisabled(state)) {\n        if (stream.match(RE(\"listLayout\"), false))\n          newMode = Modes.list;\n        else if (stream.match(RE(\"drawTable\"), false))\n          newMode = Modes.table;\n        else if (stream.match(RE(\"linkDefinition\"), false))\n          newMode = Modes.linkDefinition;\n        else if (stream.match(RE(\"definitionList\")))\n          newMode = Modes.definitionList;\n        else if (stream.match(RE(\"html\"), false))\n          newMode = Modes.html;\n      }\n      return (state.mode = (newMode || Modes.text))(stream, state);\n    },\n\n    blockType: function(stream, state) {\n      var match, type;\n      state.layoutType = null;\n\n      if (match = stream.match(RE(\"type\")))\n        type = match[0];\n      else\n        return (state.mode = Modes.text)(stream, state);\n\n      if (match = type.match(RE(\"header\"))) {\n        state.layoutType = \"header\";\n        state.header = parseInt(match[0][1]);\n      } else if (type.match(RE(\"bq\"))) {\n        state.layoutType = \"quote\";\n      } else if (type.match(RE(\"bc\"))) {\n        state.layoutType = \"code\";\n      } else if (type.match(RE(\"foot\"))) {\n        state.layoutType = \"footnote\";\n      } else if (type.match(RE(\"notextile\"))) {\n        state.layoutType = \"notextile\";\n      } else if (type.match(RE(\"pre\"))) {\n        state.layoutType = \"pre\";\n      } else if (type.match(RE(\"div\"))) {\n        state.layoutType = \"div\";\n      } else if (type.match(RE(\"table\"))) {\n        state.layoutType = \"table\";\n      }\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    text: function(stream, state) {\n      if (stream.match(RE(\"text\"))) return tokenStyles(state);\n\n      var ch = stream.next();\n      if (ch === '\"')\n        return (state.mode = Modes.link)(stream, state);\n      return handlePhraseModifier(stream, state, ch);\n    },\n\n    attributes: function(stream, state) {\n      state.mode = Modes.layoutLength;\n\n      if (stream.match(RE(\"attributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    layoutLength: function(stream, state) {\n      if (stream.eat(\".\") && stream.eat(\".\"))\n        state.spanningLayout = true;\n\n      state.mode = Modes.text;\n      return tokenStyles(state);\n    },\n\n    list: function(stream, state) {\n      var match = stream.match(RE(\"list\"));\n      state.listDepth = match[0].length;\n      var listMod = (state.listDepth - 1) % 3;\n      if (!listMod)\n        state.layoutType = \"list1\";\n      else if (listMod === 1)\n        state.layoutType = \"list2\";\n      else\n        state.layoutType = \"list3\";\n\n      state.mode = Modes.attributes;\n      return tokenStyles(state);\n    },\n\n    link: function(stream, state) {\n      state.mode = Modes.text;\n      if (stream.match(RE(\"link\"))) {\n        stream.match(/\\S+/);\n        return tokenStylesWith(state, TOKEN_STYLES.link);\n      }\n      return tokenStyles(state);\n    },\n\n    linkDefinition: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.linkDefinition);\n    },\n\n    definitionList: function(stream, state) {\n      stream.match(RE(\"definitionList\"));\n\n      state.layoutType = \"definitionList\";\n\n      if (stream.match(/\\s*$/))\n        state.spanningLayout = true;\n      else\n        state.mode = Modes.attributes;\n\n      return tokenStyles(state);\n    },\n\n    html: function(stream, state) {\n      stream.skipToEnd();\n      return tokenStylesWith(state, TOKEN_STYLES.html);\n    },\n\n    table: function(stream, state) {\n      state.layoutType = \"table\";\n      return (state.mode = Modes.tableCell)(stream, state);\n    },\n\n    tableCell: function(stream, state) {\n      if (stream.match(RE(\"tableHeading\")))\n        state.tableHeading = true;\n      else\n        stream.eat(\"|\");\n\n      state.mode = Modes.tableCellAttributes;\n      return tokenStyles(state);\n    },\n\n    tableCellAttributes: function(stream, state) {\n      state.mode = Modes.tableText;\n\n      if (stream.match(RE(\"tableCellAttributes\")))\n        return tokenStylesWith(state, TOKEN_STYLES.attributes);\n      else\n        return tokenStyles(state);\n    },\n\n    tableText: function(stream, state) {\n      if (stream.match(RE(\"tableText\")))\n        return tokenStyles(state);\n\n      if (stream.peek() === \"|\") { // end of cell\n        state.mode = Modes.tableCell;\n        return tokenStyles(state);\n      }\n      return handlePhraseModifier(stream, state, stream.next());\n    }\n  };\n\n  CodeMirror.defineMode(\"textile\", function() {\n    return {\n      startState: function() {\n        return { mode: Modes.newLayout };\n      },\n      token: function(stream, state) {\n        if (stream.sol()) startNewLine(stream, state);\n        return state.mode(stream, state);\n      },\n      blankLine: blankLine\n    };\n  });\n\n  CodeMirror.defineMIME(\"text/x-textile\", \"textile\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiddlywiki/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TiddlyWiki mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"tiddlywiki.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"tiddlywiki.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TiddlyWiki</a>\n  </ul>\n</div>\n\n<article>\n<h2>TiddlyWiki mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n!TiddlyWiki Formatting\n* Rendered versions can be found at: http://www.tiddlywiki.com/#Reference\n\n|!Option            | !Syntax            |\n|bold font          | ''bold''           |\n|italic type        | //italic//         |\n|underlined text    | __underlined__     |\n|strikethrough text | --strikethrough--  |\n|superscript text   | super^^script^^    |\n|subscript text     | sub~~script~~      |\n|highlighted text   | @@highlighted@@    |\n|preformatted text  | {{{preformatted}}} |\n\n!Block Elements\n<<<\n!Heading 1\n\n!!Heading 2\n\n!!!Heading 3\n\n!!!!Heading 4\n\n!!!!!Heading 5\n<<<\n\n!!Lists\n<<<\n* unordered list, level 1\n** unordered list, level 2\n*** unordered list, level 3\n\n# ordered list, level 1\n## ordered list, level 2\n### unordered list, level 3\n\n; definition list, term\n: definition list, description\n<<<\n\n!!Blockquotes\n<<<\n> blockquote, level 1\n>> blockquote, level 2\n>>> blockquote, level 3\n\n> blockquote\n<<<\n\n!!Preformatted Text\n<<<\n{{{\npreformatted (e.g. code)\n}}}\n<<<\n\n!!Code Sections\n<<<\n{{{\nText style code\n}}}\n\n//{{{\nJS styled code. TiddlyWiki mixed mode should support highlighter switching in the future.\n//}}}\n\n<!--{{{-->\nXML styled code. TiddlyWiki mixed mode should support highlighter switching in the future.\n<!--}}}-->\n<<<\n\n!!Tables\n<<<\n|CssClass|k\n|!heading column 1|!heading column 2|\n|row 1, column 1|row 1, column 2|\n|row 2, column 1|row 2, column 2|\n|>|COLSPAN|\n|ROWSPAN| ... |\n|~| ... |\n|CssProperty:value;...| ... |\n|caption|c\n\n''Annotation:''\n* The {{{>}}} marker creates a \"colspan\", causing the current cell to merge with the one to the right.\n* The {{{~}}} marker creates a \"rowspan\", causing the current cell to merge with the one above.\n<<<\n!!Images /% TODO %/\ncf. [[TiddlyWiki.com|http://www.tiddlywiki.com/#EmbeddedImages]]\n\n!Hyperlinks\n* [[WikiWords|WikiWord]] are automatically transformed to hyperlinks to the respective tiddler\n** the automatic transformation can be suppressed by preceding the respective WikiWord with a tilde ({{{~}}}): {{{~WikiWord}}}\n* [[PrettyLinks]] are enclosed in square brackets and contain the desired tiddler name: {{{[[tiddler name]]}}}\n** optionally, a custom title or description can be added, separated by a pipe character ({{{|}}}): {{{[[title|target]]}}}<br>'''N.B.:''' In this case, the target can also be any website (i.e. URL).\n\n!Custom Styling\n* {{{@@CssProperty:value;CssProperty:value;...@@}}}<br>''N.B.:'' CSS color definitions should use lowercase letters to prevent the inadvertent creation of WikiWords.\n* <html><code>{{customCssClass{...}}}</code></html>\n* raw HTML can be inserted by enclosing the respective code in HTML tags: {{{<html> ... </html>}}}\n\n!Special Markers\n* {{{<br>}}} forces a manual line break\n* {{{----}}} creates a horizontal ruler\n* [[HTML entities|http://www.tiddlywiki.com/#HtmlEntities]]\n* [[HTML entities local|HtmlEntities]]\n* {{{<<macroName>>}}} calls the respective [[macro|Macros]]\n* To hide text within a tiddler so that it is not displayed, it can be wrapped in {{{/%}}} and {{{%/}}}.<br/>This can be a useful trick for hiding drafts or annotating complex markup.\n* To prevent wiki markup from taking effect for a particular section, that section can be enclosed in three double quotes: e.g. {{{\"\"\"WikiWord\"\"\"}}}.\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'tiddlywiki',      \n        lineNumbers: true,\n        matchBrackets: true\n      });\n    </script>\n\n    <p>TiddlyWiki mode supports a single configuration.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tiddlywiki</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiddlywiki/tiddlywiki.css",
    "content": "span.cm-underlined {\n  text-decoration: underline;\n}\nspan.cm-strikethrough {\n  text-decoration: line-through;\n}\nspan.cm-brace {\n  color: #170;\n  font-weight: bold;\n}\nspan.cm-table {\n  color: blue;\n  font-weight: bold;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiddlywiki/tiddlywiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/***\n    |''Name''|tiddlywiki.js|\n    |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror|\n    |''Author''|PMario|\n    |''Version''|0.1.7|\n    |''Status''|''stable''|\n    |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]|\n    |''Documentation''|http://codemirror.tiddlyspace.com/|\n    |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]|\n    |''CoreVersion''|2.5.0|\n    |''Requires''|codemirror.js|\n    |''Keywords''|syntax highlighting color code mirror codemirror|\n    ! Info\n    CoreVersion parameter is needed for TiddlyWiki only!\n***/\n//{{{\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"tiddlywiki\", function () {\n  // Tokenizer\n  var textwords = {};\n\n  var keywords = function () {\n    function kw(type) {\n      return { type: type, style: \"macro\"};\n    }\n    return {\n      \"allTags\": kw('allTags'), \"closeAll\": kw('closeAll'), \"list\": kw('list'),\n      \"newJournal\": kw('newJournal'), \"newTiddler\": kw('newTiddler'),\n      \"permaview\": kw('permaview'), \"saveChanges\": kw('saveChanges'),\n      \"search\": kw('search'), \"slider\": kw('slider'),   \"tabs\": kw('tabs'),\n      \"tag\": kw('tag'), \"tagging\": kw('tagging'),       \"tags\": kw('tags'),\n      \"tiddler\": kw('tiddler'), \"timeline\": kw('timeline'),\n      \"today\": kw('today'), \"version\": kw('version'),   \"option\": kw('option'),\n\n      \"with\": kw('with'),\n      \"filter\": kw('filter')\n    };\n  }();\n\n  var isSpaceName = /[\\w_\\-]/i,\n  reHR = /^\\-\\-\\-\\-+$/,                                 // <hr>\n  reWikiCommentStart = /^\\/\\*\\*\\*$/,            // /***\n  reWikiCommentStop = /^\\*\\*\\*\\/$/,             // ***/\n  reBlockQuote = /^<<<$/,\n\n  reJsCodeStart = /^\\/\\/\\{\\{\\{$/,                       // //{{{ js block start\n  reJsCodeStop = /^\\/\\/\\}\\}\\}$/,                        // //}}} js stop\n  reXmlCodeStart = /^<!--\\{\\{\\{-->$/,           // xml block start\n  reXmlCodeStop = /^<!--\\}\\}\\}-->$/,            // xml stop\n\n  reCodeBlockStart = /^\\{\\{\\{$/,                        // {{{ TW text div block start\n  reCodeBlockStop = /^\\}\\}\\}$/,                 // }}} TW text stop\n\n  reUntilCodeStop = /.*?\\}\\}\\}/;\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n\n  function ret(tp, style, cont) {\n    type = tp;\n    content = cont;\n    return style;\n  }\n\n  function jsTokenBase(stream, state) {\n    var sol = stream.sol(), ch;\n\n    state.block = false;        // indicates the start of a code block.\n\n    ch = stream.peek();         // don't eat, to make matching simpler\n\n    // check start of  blocks\n    if (sol && /[<\\/\\*{}\\-]/.test(ch)) {\n      if (stream.match(reCodeBlockStart)) {\n        state.block = true;\n        return chain(stream, state, twTokenCode);\n      }\n      if (stream.match(reBlockQuote)) {\n        return ret('quote', 'quote');\n      }\n      if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) {\n        return ret('code', 'comment');\n      }\n      if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) {\n        return ret('code', 'comment');\n      }\n      if (stream.match(reHR)) {\n        return ret('hr', 'hr');\n      }\n    } // sol\n    ch = stream.next();\n\n    if (sol && /[\\/\\*!#;:>|]/.test(ch)) {\n      if (ch == \"!\") { // tw header\n        stream.skipToEnd();\n        return ret(\"header\", \"header\");\n      }\n      if (ch == \"*\") { // tw list\n        stream.eatWhile('*');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \"#\") { // tw numbered list\n        stream.eatWhile('#');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \";\") { // definition list, term\n        stream.eatWhile(';');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \":\") { // definition list, description\n        stream.eatWhile(':');\n        return ret(\"list\", \"comment\");\n      }\n      if (ch == \">\") { // single line quote\n        stream.eatWhile(\">\");\n        return ret(\"quote\", \"quote\");\n      }\n      if (ch == '|') {\n        return ret('table', 'header');\n      }\n    }\n\n    if (ch == '{' && stream.match(/\\{\\{/)) {\n      return chain(stream, state, twTokenCode);\n    }\n\n    // rudimentary html:// file:// link matching. TW knows much more ...\n    if (/[hf]/i.test(ch)) {\n      if (/[ti]/i.test(stream.peek()) && stream.match(/\\b(ttps?|tp|ile):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|$!:,.;]*[A-Z0-9+&@#\\/%=~_|$]/i)) {\n        return ret(\"link\", \"link\");\n      }\n    }\n    // just a little string indicator, don't want to have the whole string covered\n    if (ch == '\"') {\n      return ret('string', 'string');\n    }\n    if (ch == '~') {    // _no_ CamelCase indicator should be bold\n      return ret('text', 'brace');\n    }\n    if (/[\\[\\]]/.test(ch)) { // check for [[..]]\n      if (stream.peek() == ch) {\n        stream.next();\n        return ret('brace', 'brace');\n      }\n    }\n    if (ch == \"@\") {    // check for space link. TODO fix @@...@@ highlighting\n      stream.eatWhile(isSpaceName);\n      return ret(\"link\", \"link\");\n    }\n    if (/\\d/.test(ch)) {        // numbers\n      stream.eatWhile(/\\d/);\n      return ret(\"number\", \"number\");\n    }\n    if (ch == \"/\") { // tw invisible comment\n      if (stream.eat(\"%\")) {\n        return chain(stream, state, twTokenComment);\n      }\n      else if (stream.eat(\"/\")) { //\n        return chain(stream, state, twTokenEm);\n      }\n    }\n    if (ch == \"_\") { // tw underline\n      if (stream.eat(\"_\")) {\n        return chain(stream, state, twTokenUnderline);\n      }\n    }\n    // strikethrough and mdash handling\n    if (ch == \"-\") {\n      if (stream.eat(\"-\")) {\n        // if strikethrough looks ugly, change CSS.\n        if (stream.peek() != ' ')\n          return chain(stream, state, twTokenStrike);\n        // mdash\n        if (stream.peek() == ' ')\n          return ret('text', 'brace');\n      }\n    }\n    if (ch == \"'\") { // tw bold\n      if (stream.eat(\"'\")) {\n        return chain(stream, state, twTokenStrong);\n      }\n    }\n    if (ch == \"<\") { // tw macro\n      if (stream.eat(\"<\")) {\n        return chain(stream, state, twTokenMacro);\n      }\n    }\n    else {\n      return ret(ch);\n    }\n\n    // core macro handling\n    stream.eatWhile(/[\\w\\$_]/);\n    var word = stream.current(),\n    known = textwords.propertyIsEnumerable(word) && textwords[word];\n\n    return known ? ret(known.type, known.style, word) : ret(\"text\", null, word);\n\n  } // jsTokenBase()\n\n  // tw invisible comment\n  function twTokenComment(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"%\");\n    }\n    return ret(\"comment\", \"comment\");\n  }\n\n  // tw strong / bold\n  function twTokenStrong(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"'\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"'\");\n    }\n    return ret(\"text\", \"strong\");\n  }\n\n  // tw code\n  function twTokenCode(stream, state) {\n    var ch, sb = state.block;\n\n    if (sb && stream.current()) {\n      return ret(\"code\", \"comment\");\n    }\n\n    if (!sb && stream.match(reUntilCodeStop)) {\n      state.tokenize = jsTokenBase;\n      return ret(\"code\", \"comment\");\n    }\n\n    if (sb && stream.sol() && stream.match(reCodeBlockStop)) {\n      state.tokenize = jsTokenBase;\n      return ret(\"code\", \"comment\");\n    }\n\n    ch = stream.next();\n    return (sb) ? ret(\"code\", \"comment\") : ret(\"code\", \"comment\");\n  }\n\n  // tw em / italic\n  function twTokenEm(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"/\");\n    }\n    return ret(\"text\", \"em\");\n  }\n\n  // tw underlined text\n  function twTokenUnderline(stream, state) {\n    var maybeEnd = false,\n    ch;\n    while (ch = stream.next()) {\n      if (ch == \"_\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"_\");\n    }\n    return ret(\"text\", \"underlined\");\n  }\n\n  // tw strike through text looks ugly\n  // change CSS if needed\n  function twTokenStrike(stream, state) {\n    var maybeEnd = false, ch;\n\n    while (ch = stream.next()) {\n      if (ch == \"-\" && maybeEnd) {\n        state.tokenize = jsTokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"-\");\n    }\n    return ret(\"text\", \"strikethrough\");\n  }\n\n  // macro\n  function twTokenMacro(stream, state) {\n    var ch, word, known;\n\n    if (stream.current() == '<<') {\n      return ret('brace', 'macro');\n    }\n\n    ch = stream.next();\n    if (!ch) {\n      state.tokenize = jsTokenBase;\n      return ret(ch);\n    }\n    if (ch == \">\") {\n      if (stream.peek() == '>') {\n        stream.next();\n        state.tokenize = jsTokenBase;\n        return ret(\"brace\", \"macro\");\n      }\n    }\n\n    stream.eatWhile(/[\\w\\$_]/);\n    word = stream.current();\n    known = keywords.propertyIsEnumerable(word) && keywords[word];\n\n    if (known) {\n      return ret(known.type, known.style, word);\n    }\n    else {\n      return ret(\"macro\", null, word);\n    }\n  }\n\n  // Interface\n  return {\n    startState: function () {\n      return {\n        tokenize: jsTokenBase,\n        indented: 0,\n        level: 0\n      };\n    },\n\n    token: function (stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n\n    electricChars: \"\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-tiddlywiki\", \"tiddlywiki\");\n});\n\n//}}}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiki/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tiki wiki mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"tiki.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"tiki.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tiki wiki</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tiki wiki mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\nHeadings\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n!!!!!!Header 6\n\nStyling\n-=titlebar=-\n^^ Box on multi\nlines\nof content^^\n__bold__\n''italic''\n===underline===\n::center::\n--Line Through--\n\nOperators\n~np~No parse~/np~\n\nLink\n[link|desc|nocache]\n\nWiki\n((Wiki))\n((Wiki|desc))\n((Wiki|desc|timeout))\n\nTable\n||row1 col1|row1 col2|row1 col3\nrow2 col1|row2 col2|row2 col3\nrow3 col1|row3 col2|row3 col3||\n\nLists:\n*bla\n**bla-1\n++continue-bla-1\n***bla-2\n++continue-bla-1\n*bla\n+continue-bla\n#bla\n** tra-la-la\n+continue-bla\n#bla\n\nPlugin (standard):\n{PLUGIN(attr=\"my attr\")}\nPlugin Body\n{PLUGIN}\n\nPlugin (inline):\n{plugin attr=\"my attr\"}\n</textarea></div>\n\n<script type=\"text/javascript\">\n\tvar editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: 'tiki',      \n        lineNumbers: true\n    });\n</script>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiki/tiki.css",
    "content": ".cm-tw-syntaxerror {\n\tcolor: #FFF;\n\tbackground-color: #900;\n}\n\n.cm-tw-deleted {\n\ttext-decoration: line-through;\n}\n\n.cm-tw-header5 {\n\tfont-weight: bold;\n}\n.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/\n\tpadding-left: 10px;\n}\n\n.cm-tw-box {\n\tborder-top-width: 0px ! important;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tborder-color: inherit;\n}\n\n.cm-tw-underline {\n\ttext-decoration: underline;\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tiki/tiki.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('tiki', function(config) {\n  function inBlock(style, terminator, returnTokenizer) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n\n      if (returnTokenizer) state.tokenize = returnTokenizer;\n\n      return style;\n    };\n  }\n\n  function inLine(style) {\n    return function(stream, state) {\n      while(!stream.eol()) {\n        stream.next();\n      }\n      state.tokenize = inText;\n      return style;\n    };\n  }\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var sol = stream.sol();\n    var ch = stream.next();\n\n    //non start of line\n    switch (ch) { //switch is generally much faster than if, so it is used here\n    case \"{\": //plugin\n      stream.eat(\"/\");\n      stream.eatSpace();\n      var tagName = \"\";\n      var c;\n      while ((c = stream.eat(/[^\\s\\u00a0=\\\"\\'\\/?(}]/))) tagName += c;\n      state.tokenize = inPlugin;\n      return \"tag\";\n      break;\n    case \"_\": //bold\n      if (stream.eat(\"_\")) {\n        return chain(inBlock(\"strong\", \"__\", inText));\n      }\n      break;\n    case \"'\": //italics\n      if (stream.eat(\"'\")) {\n        // Italic text\n        return chain(inBlock(\"em\", \"''\", inText));\n      }\n      break;\n    case \"(\":// Wiki Link\n      if (stream.eat(\"(\")) {\n        return chain(inBlock(\"variable-2\", \"))\", inText));\n      }\n      break;\n    case \"[\":// Weblink\n      return chain(inBlock(\"variable-3\", \"]\", inText));\n      break;\n    case \"|\": //table\n      if (stream.eat(\"|\")) {\n        return chain(inBlock(\"comment\", \"||\"));\n      }\n      break;\n    case \"-\":\n      if (stream.eat(\"=\")) {//titleBar\n        return chain(inBlock(\"header string\", \"=-\", inText));\n      } else if (stream.eat(\"-\")) {//deleted\n        return chain(inBlock(\"error tw-deleted\", \"--\", inText));\n      }\n      break;\n    case \"=\": //underline\n      if (stream.match(\"==\")) {\n        return chain(inBlock(\"tw-underline\", \"===\", inText));\n      }\n      break;\n    case \":\":\n      if (stream.eat(\":\")) {\n        return chain(inBlock(\"comment\", \"::\"));\n      }\n      break;\n    case \"^\": //box\n      return chain(inBlock(\"tw-box\", \"^\"));\n      break;\n    case \"~\": //np\n      if (stream.match(\"np~\")) {\n        return chain(inBlock(\"meta\", \"~/np~\"));\n      }\n      break;\n    }\n\n    //start of line types\n    if (sol) {\n      switch (ch) {\n      case \"!\": //header at start of line\n        if (stream.match('!!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!!')) {\n          return chain(inLine(\"header string\"));\n        } else if (stream.match('!!')) {\n          return chain(inLine(\"header string\"));\n        } else {\n          return chain(inLine(\"header string\"));\n        }\n        break;\n      case \"*\": //unordered list line item, or <li /> at start of line\n      case \"#\": //ordered list line item, or <li /> at start of line\n      case \"+\": //ordered list line item, or <li /> at start of line\n        return chain(inLine(\"tw-listitem bracket\"));\n        break;\n      }\n    }\n\n    //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki\n    return null;\n  }\n\n  var indentUnit = config.indentUnit;\n\n  // Return variables for tokenizers\n  var pluginName, type;\n  function inPlugin(stream, state) {\n    var ch = stream.next();\n    var peek = stream.peek();\n\n    if (ch == \"}\") {\n      state.tokenize = inText;\n      //type = ch == \")\" ? \"endPlugin\" : \"selfclosePlugin\"; inPlugin\n      return \"tag\";\n    } else if (ch == \"(\" || ch == \")\") {\n      return \"bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n\n      if (peek == \">\") {\n        ch = stream.next();\n        peek = stream.peek();\n      }\n\n      //here we detect values directly after equal character with no quotes\n      if (!/[\\'\\\"]/.test(peek)) {\n        state.tokenize = inAttributeNoQuote();\n      }\n      //end detect values\n\n      return \"operator\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      return state.tokenize(stream, state);\n    } else {\n      stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?]/);\n      return \"keyword\";\n    }\n  }\n\n  function inAttribute(quote) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inPlugin;\n          break;\n        }\n      }\n      return \"string\";\n    };\n  }\n\n  function inAttributeNoQuote() {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        var ch = stream.next();\n        var peek = stream.peek();\n        if (ch == \" \" || ch == \",\" || /[ )}]/.test(peek)) {\n      state.tokenize = inPlugin;\n      break;\n    }\n  }\n  return \"string\";\n};\n                     }\n\nvar curState, setStyle;\nfunction pass() {\n  for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);\n}\n\nfunction cont() {\n  pass.apply(null, arguments);\n  return true;\n}\n\nfunction pushContext(pluginName, startOfLine) {\n  var noIndent = curState.context && curState.context.noIndent;\n  curState.context = {\n    prev: curState.context,\n    pluginName: pluginName,\n    indent: curState.indented,\n    startOfLine: startOfLine,\n    noIndent: noIndent\n  };\n}\n\nfunction popContext() {\n  if (curState.context) curState.context = curState.context.prev;\n}\n\nfunction element(type) {\n  if (type == \"openPlugin\") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}\n  else if (type == \"closePlugin\") {\n    var err = false;\n    if (curState.context) {\n      err = curState.context.pluginName != pluginName;\n      popContext();\n    } else {\n      err = true;\n    }\n    if (err) setStyle = \"error\";\n    return cont(endcloseplugin(err));\n  }\n  else if (type == \"string\") {\n    if (!curState.context || curState.context.name != \"!cdata\") pushContext(\"!cdata\");\n    if (curState.tokenize == inText) popContext();\n    return cont();\n  }\n  else return cont();\n}\n\nfunction endplugin(startOfLine) {\n  return function(type) {\n    if (\n      type == \"selfclosePlugin\" ||\n        type == \"endPlugin\"\n    )\n      return cont();\n    if (type == \"endPlugin\") {pushContext(curState.pluginName, startOfLine); return cont();}\n    return cont();\n  };\n}\n\nfunction endcloseplugin(err) {\n  return function(type) {\n    if (err) setStyle = \"error\";\n    if (type == \"endPlugin\") return cont();\n    return pass();\n  };\n}\n\nfunction attributes(type) {\n  if (type == \"keyword\") {setStyle = \"attribute\"; return cont(attributes);}\n  if (type == \"equals\") return cont(attvalue, attributes);\n  return pass();\n}\nfunction attvalue(type) {\n  if (type == \"keyword\") {setStyle = \"string\"; return cont();}\n  if (type == \"string\") return cont(attvaluemaybe);\n  return pass();\n}\nfunction attvaluemaybe(type) {\n  if (type == \"string\") return cont(attvaluemaybe);\n  else return pass();\n}\nreturn {\n  startState: function() {\n    return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};\n  },\n  token: function(stream, state) {\n    if (stream.sol()) {\n      state.startOfLine = true;\n      state.indented = stream.indentation();\n    }\n    if (stream.eatSpace()) return null;\n\n    setStyle = type = pluginName = null;\n    var style = state.tokenize(stream, state);\n    if ((style || type) && style != \"comment\") {\n      curState = state;\n      while (true) {\n        var comb = state.cc.pop() || element;\n        if (comb(type || style)) break;\n      }\n    }\n    state.startOfLine = false;\n    return setStyle || style;\n  },\n  indent: function(state, textAfter) {\n    var context = state.context;\n    if (context && context.noIndent) return 0;\n    if (context && /^{\\//.test(textAfter))\n        context = context.prev;\n        while (context && !context.startOfLine)\n          context = context.prev;\n        if (context) return context.indent + indentUnit;\n        else return 0;\n       },\n    electricChars: \"/\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/tiki\", \"tiki\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/toml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: TOML Mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"toml.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">TOML Mode</a>\n  </ul>\n</div>\n\n<article>\n<h2>TOML Mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n# This is a TOML document. Boom.\n\ntitle = \"TOML Example\"\n\n[owner]\nname = \"Tom Preston-Werner\"\norganization = \"GitHub\"\nbio = \"GitHub Cofounder &amp; CEO\\nLikes tater tots and beer.\"\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\n\n[database]\nserver = \"192.168.1.1\"\nports = [ 8001, 8001, 8002 ]\nconnection_max = 5000\nenabled = true\n\n[servers]\n\n  # You can indent as you please. Tabs or spaces. TOML don't care.\n  [servers.alpha]\n  ip = \"10.0.0.1\"\n  dc = \"eqdc10\"\n  \n  [servers.beta]\n  ip = \"10.0.0.2\"\n  dc = \"eqdc10\"\n  \n[clients]\ndata = [ [\"gamma\", \"delta\"], [1, 2] ]\n\n# Line breaks are OK when inside arrays\nhosts = [\n  \"alpha\",\n  \"omega\"\n]\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: {name: \"toml\"},\n        lineNumbers: true\n      });\n    </script>\n    <h3>The TOML Mode</h3>\n      <p> Created by Forbes Lindesay.</p>\n    <p><strong>MIME type defined:</strong> <code>text/x-toml</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/toml/toml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"toml\", function () {\n  return {\n    startState: function () {\n      return {\n        inString: false,\n        stringType: \"\",\n        lhs: true,\n        inArray: 0\n      };\n    },\n    token: function (stream, state) {\n      //check for state changes\n      if (!state.inString && ((stream.peek() == '\"') || (stream.peek() == \"'\"))) {\n        state.stringType = stream.peek();\n        stream.next(); // Skip quote\n        state.inString = true; // Update state\n      }\n      if (stream.sol() && state.inArray === 0) {\n        state.lhs = true;\n      }\n      //return state\n      if (state.inString) {\n        while (state.inString && !stream.eol()) {\n          if (stream.peek() === state.stringType) {\n            stream.next(); // Skip quote\n            state.inString = false; // Clear flag\n          } else if (stream.peek() === '\\\\') {\n            stream.next();\n            stream.next();\n          } else {\n            stream.match(/^.[^\\\\\\\"\\']*/);\n          }\n        }\n        return state.lhs ? \"property string\" : \"string\"; // Token style\n      } else if (state.inArray && stream.peek() === ']') {\n        stream.next();\n        state.inArray--;\n        return 'bracket';\n      } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) {\n        stream.next();//skip closing ]\n        // array of objects has an extra open & close []\n        if (stream.peek() === ']') stream.next();\n        return \"atom\";\n      } else if (stream.peek() === \"#\") {\n        stream.skipToEnd();\n        return \"comment\";\n      } else if (stream.eatSpace()) {\n        return null;\n      } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) {\n        return \"property\";\n      } else if (state.lhs && stream.peek() === \"=\") {\n        stream.next();\n        state.lhs = false;\n        return null;\n      } else if (!state.lhs && stream.match(/^\\d\\d\\d\\d[\\d\\-\\:\\.T]*Z/)) {\n        return 'atom'; //date\n      } else if (!state.lhs && (stream.match('true') || stream.match('false'))) {\n        return 'atom';\n      } else if (!state.lhs && stream.peek() === '[') {\n        state.inArray++;\n        stream.next();\n        return 'bracket';\n      } else if (!state.lhs && stream.match(/^\\-?\\d+(?:\\.\\d+)?/)) {\n        return 'number';\n      } else if (!stream.eatSpace()) {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME('text/x-toml', 'toml');\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tornado/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Tornado template mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/mode/overlay.js\"></script>\n<script src=\"../xml/xml.js\"></script>\n<script src=\"../htmlmixed/htmlmixed.js\"></script>\n<script src=\"tornado.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/marijnh/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Tornado</a>\n  </ul>\n</div>\n\n<article>\n<h2>Tornado template mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n<!doctype html>\n<html>\n    <head>\n        <title>My Tornado web application</title>\n    </head>\n    <body>\n        <h1>\n            {{ title }}\n        </h1>\n        <ul class=\"my-list\">\n            {% for item in items %}\n                <li>{% item.name %}</li>\n            {% empty %}\n                <li>You have no items in your list.</li>\n            {% end %}\n        </ul>\n    </body>\n</html>\n</textarea></form>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        mode: \"tornado\",\n        indentUnit: 4,\n        indentWithTabs: true\n      });\n    </script>\n\n    <p>Mode for HTML with embedded Tornado template markup.</p>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-tornado</code></p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/tornado/tornado.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"), require(\"../htmlmixed/htmlmixed\"),\n        require(\"../../addon/mode/overlay\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\", \"../htmlmixed/htmlmixed\",\n            \"../../addon/mode/overlay\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n  \"use strict\";\n\n  CodeMirror.defineMode(\"tornado:inner\", function() {\n    var keywords = [\"and\",\"as\",\"assert\",\"autoescape\",\"block\",\"break\",\"class\",\"comment\",\"context\",\n                    \"continue\",\"datetime\",\"def\",\"del\",\"elif\",\"else\",\"end\",\"escape\",\"except\",\n                    \"exec\",\"extends\",\"false\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\n                    \"include\",\"is\",\"json_encode\",\"lambda\",\"length\",\"linkify\",\"load\",\"module\",\n                    \"none\",\"not\",\"or\",\"pass\",\"print\",\"put\",\"raise\",\"raw\",\"return\",\"self\",\"set\",\n                    \"squeeze\",\"super\",\"true\",\"try\",\"url_escape\",\"while\",\"with\",\"without\",\"xhtml_escape\",\"yield\"];\n    keywords = new RegExp(\"^((\" + keywords.join(\")|(\") + \"))\\\\b\");\n\n    function tokenBase (stream, state) {\n      stream.eatWhile(/[^\\{]/);\n      var ch = stream.next();\n      if (ch == \"{\") {\n        if (ch = stream.eat(/\\{|%|#/)) {\n          state.tokenize = inTag(ch);\n          return \"tag\";\n        }\n      }\n    }\n    function inTag (close) {\n      if (close == \"{\") {\n        close = \"}\";\n      }\n      return function (stream, state) {\n        var ch = stream.next();\n        if ((ch == close) && stream.eat(\"}\")) {\n          state.tokenize = tokenBase;\n          return \"tag\";\n        }\n        if (stream.match(keywords)) {\n          return \"keyword\";\n        }\n        return close == \"#\" ? \"comment\" : \"string\";\n      };\n    }\n    return {\n      startState: function () {\n        return {tokenize: tokenBase};\n      },\n      token: function (stream, state) {\n        return state.tokenize(stream, state);\n      }\n    };\n  });\n\n  CodeMirror.defineMode(\"tornado\", function(config) {\n    var htmlBase = CodeMirror.getMode(config, \"text/html\");\n    var tornadoInner = CodeMirror.getMode(config, \"tornado:inner\");\n    return CodeMirror.overlayMode(htmlBase, tornadoInner);\n  });\n\n  CodeMirror.defineMIME(\"text/x-tornado\", \"tornado\");\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/turtle/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Turtle mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"turtle.js\"></script>\n<style>.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Turtle</a>\n  </ul>\n</div>\n\n<article>\n<h2>Turtle mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .\n\n<http://purl.org/net/bsletten> \n    a foaf:Person;\n    foaf:interest <http://www.w3.org/2000/01/sw/>;\n    foaf:based_near [\n        geo:lat \"34.0736111\" ;\n        geo:lon \"-118.3994444\"\n   ]\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/turtle\",\n        matchBrackets: true\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/turtle</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/turtle/turtle.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"turtle\", function(config) {\n  var indentUnit = config.indentUnit;\n  var curPunc;\n\n  function wordRegexp(words) {\n    return new RegExp(\"^(?:\" + words.join(\"|\") + \")$\", \"i\");\n  }\n  var ops = wordRegexp([]);\n  var keywords = wordRegexp([\"@prefix\", \"@base\", \"a\"]);\n  var operatorChars = /[*+\\-<>=&|]/;\n\n  function tokenBase(stream, state) {\n    var ch = stream.next();\n    curPunc = null;\n    if (ch == \"<\" && !stream.match(/^[\\s\\u00a0=]/, false)) {\n      stream.match(/^[^\\s\\u00a0>]*>?/);\n      return \"atom\";\n    }\n    else if (ch == \"\\\"\" || ch == \"'\") {\n      state.tokenize = tokenLiteral(ch);\n      return state.tokenize(stream, state);\n    }\n    else if (/[{}\\(\\),\\.;\\[\\]]/.test(ch)) {\n      curPunc = ch;\n      return null;\n    }\n    else if (ch == \"#\") {\n      stream.skipToEnd();\n      return \"comment\";\n    }\n    else if (operatorChars.test(ch)) {\n      stream.eatWhile(operatorChars);\n      return null;\n    }\n    else if (ch == \":\") {\n          return \"operator\";\n        } else {\n      stream.eatWhile(/[_\\w\\d]/);\n      if(stream.peek() == \":\") {\n        return \"variable-3\";\n      } else {\n             var word = stream.current();\n\n             if(keywords.test(word)) {\n                        return \"meta\";\n             }\n\n             if(ch >= \"A\" && ch <= \"Z\") {\n                    return \"comment\";\n                 } else {\n                        return \"keyword\";\n                 }\n      }\n      var word = stream.current();\n      if (ops.test(word))\n        return null;\n      else if (keywords.test(word))\n        return \"meta\";\n      else\n        return \"variable\";\n    }\n  }\n\n  function tokenLiteral(quote) {\n    return function(stream, state) {\n      var escaped = false, ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == quote && !escaped) {\n          state.tokenize = tokenBase;\n          break;\n        }\n        escaped = !escaped && ch == \"\\\\\";\n      }\n      return \"string\";\n    };\n  }\n\n  function pushContext(state, type, col) {\n    state.context = {prev: state.context, indent: state.indent, col: col, type: type};\n  }\n  function popContext(state) {\n    state.indent = state.context.indent;\n    state.context = state.context.prev;\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: tokenBase,\n              context: null,\n              indent: 0,\n              col: 0};\n    },\n\n    token: function(stream, state) {\n      if (stream.sol()) {\n        if (state.context && state.context.align == null) state.context.align = false;\n        state.indent = stream.indentation();\n      }\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n\n      if (style != \"comment\" && state.context && state.context.align == null && state.context.type != \"pattern\") {\n        state.context.align = true;\n      }\n\n      if (curPunc == \"(\") pushContext(state, \")\", stream.column());\n      else if (curPunc == \"[\") pushContext(state, \"]\", stream.column());\n      else if (curPunc == \"{\") pushContext(state, \"}\", stream.column());\n      else if (/[\\]\\}\\)]/.test(curPunc)) {\n        while (state.context && state.context.type == \"pattern\") popContext(state);\n        if (state.context && curPunc == state.context.type) popContext(state);\n      }\n      else if (curPunc == \".\" && state.context && state.context.type == \"pattern\") popContext(state);\n      else if (/atom|string|variable/.test(style) && state.context) {\n        if (/[\\}\\]]/.test(state.context.type))\n          pushContext(state, \"pattern\", stream.column());\n        else if (state.context.type == \"pattern\" && !state.context.align) {\n          state.context.align = true;\n          state.context.col = stream.column();\n        }\n      }\n\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      var firstChar = textAfter && textAfter.charAt(0);\n      var context = state.context;\n      if (/[\\]\\}]/.test(firstChar))\n        while (context && context.type == \"pattern\") context = context.prev;\n\n      var closing = context && firstChar == context.type;\n      if (!context)\n        return 0;\n      else if (context.type == \"pattern\")\n        return context.col;\n      else if (context.align)\n        return context.col + (closing ? 0 : 1);\n      else\n        return context.indent + (closing ? 0 : indentUnit);\n    },\n\n    lineComment: \"#\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/turtle\", \"turtle\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/vb/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: VB.NET mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link href=\"http://fonts.googleapis.com/css?family=Inconsolata\" rel=\"stylesheet\" type=\"text/css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"vb.js\"></script>\n<script type=\"text/javascript\" src=\"../../addon/runmode/runmode.js\"></script>\n<style>\n      .CodeMirror {border: 1px solid #aaa; height:210px; height: auto;}\n      .CodeMirror-scroll { overflow-x: auto; overflow-y: hidden;}\n      .CodeMirror pre { font-family: Inconsolata; font-size: 14px}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">VB.NET</a>\n  </ul>\n</div>\n\n<article>\n<h2>VB.NET mode</h2>\n\n<script type=\"text/javascript\">\nfunction test(golden, text) {\n  var ok = true;\n  var i = 0;\n  function callback(token, style, lineNo, pos){\n\t\t//console.log(String(token) + \" \" + String(style) + \" \" + String(lineNo) + \" \" + String(pos));\n    var result = [String(token), String(style)];\n    if (golden[i][0] != result[0] || golden[i][1] != result[1]){\n      return \"Error, expected: \" + String(golden[i]) + \", got: \" + String(result);\n      ok = false;\n    }\n    i++;\n  }\n  CodeMirror.runMode(text, \"text/x-vb\",callback); \n\n  if (ok) return \"Tests OK\";\n}\nfunction testTypes() {\n  var golden = [['Integer','keyword'],[' ','null'],['Float','keyword']]\n  var text =  \"Integer Float\";\n  return test(golden,text);\n}\nfunction testIf(){\n  var golden = [['If','keyword'],[' ','null'],['True','keyword'],[' ','null'],['End','keyword'],[' ','null'],['If','keyword']];\n  var text = 'If True End If';\n  return test(golden, text);\n}\nfunction testDecl(){\n   var golden = [['Dim','keyword'],[' ','null'],['x','variable'],[' ','null'],['as','keyword'],[' ','null'],['Integer','keyword']];\n   var text = 'Dim x as Integer';\n   return test(golden, text);\n}\nfunction testAll(){\n  var result = \"\";\n\n  result += testTypes() + \"\\n\";\n  result += testIf() + \"\\n\";\n  result += testDecl() + \"\\n\";\n  return result;\n\n}\nfunction initText(editor) {\n  var content = 'Class rocket\\nPrivate quality as Double\\nPublic Sub launch() as String\\nif quality > 0.8\\nlaunch = \"Successful\"\\nElse\\nlaunch = \"Failed\"\\nEnd If\\nEnd sub\\nEnd class\\n';\n  editor.setValue(content);\n  for (var i =0; i< editor.lineCount(); i++) editor.indentLine(i);\n}\nfunction init() {\n    editor = CodeMirror.fromTextArea(document.getElementById(\"solution\"), {\n        lineNumbers: true,\n        mode: \"text/x-vb\",\n        readOnly: false\n    });\n    runTest();\n}\nfunction runTest() {\n\tdocument.getElementById('testresult').innerHTML = testAll();\n  initText(editor);\n\t\n}\ndocument.body.onload = init;\n</script>\n\n  <div id=\"edit\">\n  <textarea style=\"width:95%;height:200px;padding:5px;\" name=\"solution\" id=\"solution\" ></textarea>\n  </div>\n  <pre id=\"testresult\"></pre>\n  <p>MIME type defined: <code>text/x-vb</code>.</p>\n\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/vb/vb.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vb\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/%&\\\\\\\\|\\\\^~<>!]\");\n    var singleDelimiters = new RegExp('^[\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}@,:`=;\\\\.]');\n    var doubleOperators = new RegExp(\"^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\\\*\\\\*))\");\n    var doubleDelimiters = new RegExp(\"^((\\\\+=)|(\\\\-=)|(\\\\*=)|(%=)|(/=)|(&=)|(\\\\|=)|(\\\\^=))\");\n    var tripleDelimiters = new RegExp(\"^((//=)|(>>=)|(<<=)|(\\\\*\\\\*=))\");\n    var identifiers = new RegExp(\"^[_A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','module', 'sub','enum','select','while','if','function',  'get','set','property', 'try'];\n    var middleKeywords = ['else','elseif','case', 'catch'];\n    var endKeywords = ['next','loop'];\n\n    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'in']);\n    var commonkeywords = ['as', 'dim', 'break',  'continue','optional', 'then',  'until',\n                          'goto', 'byval','byref','new','handles','property', 'return',\n                          'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false'];\n    var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single'];\n\n    var keywords = wordRegexp(commonkeywords);\n    var types = wordRegexp(commontypes);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n\n    var indentInfo = null;\n\n\n\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.a-f]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+F?/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*F?/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+F?/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            dedent(stream,state);\n            return 'keyword';\n        }\n\n        if (stream.match(types)) {\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n            current = stream.current();\n            if (style === 'variable') {\n                return 'variable';\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n\n        var delimiter_index = '[({'.indexOf(current);\n        if (delimiter_index !== -1) {\n            indent(stream, state );\n        }\n        if (indentInfo === 'dedent') {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n        delimiter_index = '])}'.indexOf(current);\n        if (delimiter_index !== -1) {\n            if (dedent(stream, state)) {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        }\n\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/x-vb\", \"vb\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/vbscript/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: VBScript mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"vbscript.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">VBScript</a>\n  </ul>\n</div>\n\n<article>\n<h2>VBScript mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n' Pete Guhl\n' 03-04-2012\n'\n' Basic VBScript support for codemirror2\n\nConst ForReading = 1, ForWriting = 2, ForAppending = 8\n\nCall Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)\n\nIf Not IsNull(strResponse) AND Len(strResponse) = 0 Then\n\tboolTransmitOkYN = False\nElse\n\t' WScript.Echo \"Oh Happy Day! Oh Happy DAY!\"\n\tboolTransmitOkYN = True\nEnd If\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        indentUnit: 4\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/vbscript</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/vbscript/vbscript.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n/*\nFor extra ASP classic objects, initialize CodeMirror instance with this option:\n    isASP: true\n\nE.G.:\n    var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        isASP: true\n      });\n*/\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"vbscript\", function(conf, parserConf) {\n    var ERRORCLASS = 'error';\n\n    function wordRegexp(words) {\n        return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\", \"i\");\n    }\n\n    var singleOperators = new RegExp(\"^[\\\\+\\\\-\\\\*/&\\\\\\\\\\\\^<>=]\");\n    var doubleOperators = new RegExp(\"^((<>)|(<=)|(>=))\");\n    var singleDelimiters = new RegExp('^[\\\\.,]');\n    var brakets = new RegExp('^[\\\\(\\\\)]');\n    var identifiers = new RegExp(\"^[A-Za-z][_A-Za-z0-9]*\");\n\n    var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for'];\n    var middleKeywords = ['else','elseif','case'];\n    var endKeywords = ['next','loop','wend'];\n\n    var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']);\n    var commonkeywords = ['dim', 'redim', 'then',  'until', 'randomize',\n                          'byval','byref','new','property', 'exit', 'in',\n                          'const','private', 'public',\n                          'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx\n    var atomWords = ['true', 'false', 'nothing', 'empty', 'null'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx\n    var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart',\n                        'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject',\n                        'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left',\n                        'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round',\n                        'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp',\n                        'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year'];\n\n    //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx\n    var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare',\n                         'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek',\n                         'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError',\n                         'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2',\n                         'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo',\n                         'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse',\n                         'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray'];\n    //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx\n    var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp'];\n    var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count'];\n    var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit'];\n\n    var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application'];\n    var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response\n                              'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request\n                              'contents', 'staticobjects', //application\n                              'codepage', 'lcid', 'sessionid', 'timeout', //session\n                              'scripttimeout']; //server\n    var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response\n                           'binaryread', //request\n                           'remove', 'removeall', 'lock', 'unlock', //application\n                           'abandon', //session\n                           'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server\n\n    var knownWords = knownMethods.concat(knownProperties);\n\n    builtinObjsWords = builtinObjsWords.concat(builtinConsts);\n\n    if (conf.isASP){\n        builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords);\n        knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties);\n    };\n\n    var keywords = wordRegexp(commonkeywords);\n    var atoms = wordRegexp(atomWords);\n    var builtinFuncs = wordRegexp(builtinFuncsWords);\n    var builtinObjs = wordRegexp(builtinObjsWords);\n    var known = wordRegexp(knownWords);\n    var stringPrefixes = '\"';\n\n    var opening = wordRegexp(openingKeywords);\n    var middle = wordRegexp(middleKeywords);\n    var closing = wordRegexp(endKeywords);\n    var doubleClosing = wordRegexp(['end']);\n    var doOpening = wordRegexp(['do']);\n    var noIndentWords = wordRegexp(['on error resume next', 'exit']);\n    var comment = wordRegexp(['rem']);\n\n\n    function indent(_stream, state) {\n      state.currentIndent++;\n    }\n\n    function dedent(_stream, state) {\n      state.currentIndent--;\n    }\n    // tokenizers\n    function tokenBase(stream, state) {\n        if (stream.eatSpace()) {\n            return 'space';\n            //return null;\n        }\n\n        var ch = stream.peek();\n\n        // Handle Comments\n        if (ch === \"'\") {\n            stream.skipToEnd();\n            return 'comment';\n        }\n        if (stream.match(comment)){\n            stream.skipToEnd();\n            return 'comment';\n        }\n\n\n        // Handle Number Literals\n        if (stream.match(/^((&H)|(&O))?[0-9\\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\\.]+[a-z_]/i, false)) {\n            var floatLiteral = false;\n            // Floats\n            if (stream.match(/^\\d*\\.\\d+/i)) { floatLiteral = true; }\n            else if (stream.match(/^\\d+\\.\\d*/)) { floatLiteral = true; }\n            else if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n\n            if (floatLiteral) {\n                // Float literals may be \"imaginary\"\n                stream.eat(/J/i);\n                return 'number';\n            }\n            // Integers\n            var intLiteral = false;\n            // Hex\n            if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; }\n            // Octal\n            else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; }\n            // Decimal\n            else if (stream.match(/^[1-9]\\d*F?/)) {\n                // Decimal literals may be \"imaginary\"\n                stream.eat(/J/i);\n                // TODO - Can you have imaginary longs?\n                intLiteral = true;\n            }\n            // Zero by itself with no other piece of number.\n            else if (stream.match(/^0(?![\\dx])/i)) { intLiteral = true; }\n            if (intLiteral) {\n                // Integer literals may be \"long\"\n                stream.eat(/L/i);\n                return 'number';\n            }\n        }\n\n        // Handle Strings\n        if (stream.match(stringPrefixes)) {\n            state.tokenize = tokenStringFactory(stream.current());\n            return state.tokenize(stream, state);\n        }\n\n        // Handle operators and Delimiters\n        if (stream.match(doubleOperators)\n            || stream.match(singleOperators)\n            || stream.match(wordOperators)) {\n            return 'operator';\n        }\n        if (stream.match(singleDelimiters)) {\n            return null;\n        }\n\n        if (stream.match(brakets)) {\n            return \"bracket\";\n        }\n\n        if (stream.match(noIndentWords)) {\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n\n        if (stream.match(doOpening)) {\n            indent(stream,state);\n            state.doInCurrentLine = true;\n\n            return 'keyword';\n        }\n        if (stream.match(opening)) {\n            if (! state.doInCurrentLine)\n              indent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n        if (stream.match(middle)) {\n            return 'keyword';\n        }\n\n\n        if (stream.match(doubleClosing)) {\n            dedent(stream,state);\n            dedent(stream,state);\n\n            return 'keyword';\n        }\n        if (stream.match(closing)) {\n            if (! state.doInCurrentLine)\n              dedent(stream,state);\n            else\n              state.doInCurrentLine = false;\n\n            return 'keyword';\n        }\n\n        if (stream.match(keywords)) {\n            return 'keyword';\n        }\n\n        if (stream.match(atoms)) {\n            return 'atom';\n        }\n\n        if (stream.match(known)) {\n            return 'variable-2';\n        }\n\n        if (stream.match(builtinFuncs)) {\n            return 'builtin';\n        }\n\n        if (stream.match(builtinObjs)){\n            return 'variable-2';\n        }\n\n        if (stream.match(identifiers)) {\n            return 'variable';\n        }\n\n        // Handle non-detected items\n        stream.next();\n        return ERRORCLASS;\n    }\n\n    function tokenStringFactory(delimiter) {\n        var singleline = delimiter.length == 1;\n        var OUTCLASS = 'string';\n\n        return function(stream, state) {\n            while (!stream.eol()) {\n                stream.eatWhile(/[^'\"]/);\n                if (stream.match(delimiter)) {\n                    state.tokenize = tokenBase;\n                    return OUTCLASS;\n                } else {\n                    stream.eat(/['\"]/);\n                }\n            }\n            if (singleline) {\n                if (parserConf.singleLineStringErrors) {\n                    return ERRORCLASS;\n                } else {\n                    state.tokenize = tokenBase;\n                }\n            }\n            return OUTCLASS;\n        };\n    }\n\n\n    function tokenLexer(stream, state) {\n        var style = state.tokenize(stream, state);\n        var current = stream.current();\n\n        // Handle '.' connected identifiers\n        if (current === '.') {\n            style = state.tokenize(stream, state);\n\n            current = stream.current();\n            if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) {\n                if (style === 'builtin' || style === 'keyword') style='variable';\n                if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2';\n\n                return style;\n            } else {\n                return ERRORCLASS;\n            }\n        }\n\n        return style;\n    }\n\n    var external = {\n        electricChars:\"dDpPtTfFeE \",\n        startState: function() {\n            return {\n              tokenize: tokenBase,\n              lastToken: null,\n              currentIndent: 0,\n              nextLineIndent: 0,\n              doInCurrentLine: false,\n              ignoreKeyword: false\n\n\n          };\n        },\n\n        token: function(stream, state) {\n            if (stream.sol()) {\n              state.currentIndent += state.nextLineIndent;\n              state.nextLineIndent = 0;\n              state.doInCurrentLine = 0;\n            }\n            var style = tokenLexer(stream, state);\n\n            state.lastToken = {style:style, content: stream.current()};\n\n            if (style==='space') style=null;\n\n            return style;\n        },\n\n        indent: function(state, textAfter) {\n            var trueText = textAfter.replace(/^\\s+|\\s+$/g, '') ;\n            if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1);\n            if(state.currentIndent < 0) return 0;\n            return state.currentIndent * conf.indentUnit;\n        }\n\n    };\n    return external;\n});\n\nCodeMirror.defineMIME(\"text/vbscript\", \"vbscript\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/velocity/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Velocity mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/night.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"velocity.js\"></script>\n<style>.CodeMirror {border: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Velocity</a>\n  </ul>\n</div>\n\n<article>\n<h2>Velocity mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n## Velocity Code Demo\n#*\n   based on PL/SQL mode by Peter Raganitsch, adapted to Velocity by Steve O'Hara ( http://www.pivotal-solutions.co.uk )\n   August 2011\n*#\n\n#*\n   This is a multiline comment.\n   This is the second line\n*#\n\n#[[ hello steve\n   This has invalid syntax that would normally need \"poor man's escaping\" like:\n\n   #define()\n\n   ${blah\n]]#\n\n#include( \"disclaimer.txt\" \"opinion.txt\" )\n#include( $foo $bar )\n\n#parse( \"lecorbusier.vm\" )\n#parse( $foo )\n\n#evaluate( 'string with VTL #if(true)will be displayed#end' )\n\n#define( $hello ) Hello $who #end #set( $who = \"World!\") $hello ## displays Hello World!\n\n#foreach( $customer in $customerList )\n\n    $foreach.count $customer.Name\n\n    #if( $foo == ${bar})\n        it's true!\n        #break\n    #{else}\n        it's not!\n        #stop\n    #end\n\n    #if ($foreach.parent.hasNext)\n        $velocityCount\n    #end\n#end\n\n$someObject.getValues(\"this is a string split\n        across lines\")\n\n$someObject(\"This plus $something in the middle\").method(7567).property\n\n#macro( tablerows $color $somelist )\n    #foreach( $something in $somelist )\n        <tr><td bgcolor=$color>$something</td></tr>\n        <tr><td bgcolor=$color>$bodyContent</td></tr>\n    #end\n#end\n\n#tablerows(\"red\" [\"dadsdf\",\"dsa\"])\n#@tablerows(\"red\" [\"dadsdf\",\"dsa\"]) some body content #end\n\n   Variable reference: #set( $monkey = $bill )\n   String literal: #set( $monkey.Friend = 'monica' )\n   Property reference: #set( $monkey.Blame = $whitehouse.Leak )\n   Method reference: #set( $monkey.Plan = $spindoctor.weave($web) )\n   Number literal: #set( $monkey.Number = 123 )\n   Range operator: #set( $monkey.Numbers = [1..3] )\n   Object list: #set( $monkey.Say = [\"Not\", $my, \"fault\"] )\n   Object map: #set( $monkey.Map = {\"banana\" : \"good\", \"roast beef\" : \"bad\"})\n\nThe RHS can also be a simple arithmetic expression, such as:\nAddition: #set( $value = $foo + 1 )\n   Subtraction: #set( $value = $bar - 1 )\n   Multiplication: #set( $value = $foo * $bar )\n   Division: #set( $value = $foo / $bar )\n   Remainder: #set( $value = $foo % $bar )\n\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        theme: \"night\",\n        lineNumbers: true,\n        indentUnit: 4,\n        mode: \"text/velocity\"\n      });\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/velocity</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/velocity/velocity.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"velocity\", function() {\n    function parseWords(str) {\n        var obj = {}, words = str.split(\" \");\n        for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n        return obj;\n    }\n\n    var keywords = parseWords(\"#end #else #break #stop #[[ #]] \" +\n                              \"#{end} #{else} #{break} #{stop}\");\n    var functions = parseWords(\"#if #elseif #foreach #set #include #parse #macro #define #evaluate \" +\n                               \"#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}\");\n    var specials = parseWords(\"$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent\");\n    var isOperatorChar = /[+\\-*&%=<>!?:\\/|]/;\n\n    function chain(stream, state, f) {\n        state.tokenize = f;\n        return f(stream, state);\n    }\n    function tokenBase(stream, state) {\n        var beforeParams = state.beforeParams;\n        state.beforeParams = false;\n        var ch = stream.next();\n        // start of unparsed string?\n        if ((ch == \"'\") && state.inParams) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenString(ch));\n        }\n        // start of parsed string?\n        else if ((ch == '\"')) {\n            state.lastTokenWasBuiltin = false;\n            if (state.inString) {\n                state.inString = false;\n                return \"string\";\n            }\n            else if (state.inParams)\n                return chain(stream, state, tokenString(ch));\n        }\n        // is it one of the special signs []{}().,;? Seperator?\n        else if (/[\\[\\]{}\\(\\),;\\.]/.test(ch)) {\n            if (ch == \"(\" && beforeParams)\n                state.inParams = true;\n            else if (ch == \")\") {\n                state.inParams = false;\n                state.lastTokenWasBuiltin = true;\n            }\n            return null;\n        }\n        // start of a number value?\n        else if (/\\d/.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(/[\\w\\.]/);\n            return \"number\";\n        }\n        // multi line comment?\n        else if (ch == \"#\" && stream.eat(\"*\")) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenComment);\n        }\n        // unparsed content?\n        else if (ch == \"#\" && stream.match(/ *\\[ *\\[/)) {\n            state.lastTokenWasBuiltin = false;\n            return chain(stream, state, tokenUnparsed);\n        }\n        // single line comment?\n        else if (ch == \"#\" && stream.eat(\"#\")) {\n            state.lastTokenWasBuiltin = false;\n            stream.skipToEnd();\n            return \"comment\";\n        }\n        // variable?\n        else if (ch == \"$\") {\n            stream.eatWhile(/[\\w\\d\\$_\\.{}]/);\n            // is it one of the specials?\n            if (specials && specials.propertyIsEnumerable(stream.current())) {\n                return \"keyword\";\n            }\n            else {\n                state.lastTokenWasBuiltin = true;\n                state.beforeParams = true;\n                return \"builtin\";\n            }\n        }\n        // is it a operator?\n        else if (isOperatorChar.test(ch)) {\n            state.lastTokenWasBuiltin = false;\n            stream.eatWhile(isOperatorChar);\n            return \"operator\";\n        }\n        else {\n            // get the whole word\n            stream.eatWhile(/[\\w\\$_{}@]/);\n            var word = stream.current();\n            // is it one of the listed keywords?\n            if (keywords && keywords.propertyIsEnumerable(word))\n                return \"keyword\";\n            // is it one of the listed functions?\n            if (functions && functions.propertyIsEnumerable(word) ||\n                    (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()==\"(\") &&\n                     !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) {\n                state.beforeParams = true;\n                state.lastTokenWasBuiltin = false;\n                return \"keyword\";\n            }\n            if (state.inString) {\n                state.lastTokenWasBuiltin = false;\n                return \"string\";\n            }\n            if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)==\".\" && state.lastTokenWasBuiltin)\n                return \"builtin\";\n            // default: just a \"word\"\n            state.lastTokenWasBuiltin = false;\n            return null;\n        }\n    }\n\n    function tokenString(quote) {\n        return function(stream, state) {\n            var escaped = false, next, end = false;\n            while ((next = stream.next()) != null) {\n                if ((next == quote) && !escaped) {\n                    end = true;\n                    break;\n                }\n                if (quote=='\"' && stream.peek() == '$' && !escaped) {\n                    state.inString = true;\n                    end = true;\n                    break;\n                }\n                escaped = !escaped && next == \"\\\\\";\n            }\n            if (end) state.tokenize = tokenBase;\n            return \"string\";\n        };\n    }\n\n    function tokenComment(stream, state) {\n        var maybeEnd = false, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            maybeEnd = (ch == \"*\");\n        }\n        return \"comment\";\n    }\n\n    function tokenUnparsed(stream, state) {\n        var maybeEnd = 0, ch;\n        while (ch = stream.next()) {\n            if (ch == \"#\" && maybeEnd == 2) {\n                state.tokenize = tokenBase;\n                break;\n            }\n            if (ch == \"]\")\n                maybeEnd++;\n            else if (ch != \" \")\n                maybeEnd = 0;\n        }\n        return \"meta\";\n    }\n    // Interface\n\n    return {\n        startState: function() {\n            return {\n                tokenize: tokenBase,\n                beforeParams: false,\n                inParams: false,\n                inString: false,\n                lastTokenWasBuiltin: false\n            };\n        },\n\n        token: function(stream, state) {\n            if (stream.eatSpace()) return null;\n            return state.tokenize(stream, state);\n        },\n        blockCommentStart: \"#*\",\n        blockCommentEnd: \"*#\",\n        lineComment: \"##\",\n        fold: \"velocity\"\n    };\n});\n\nCodeMirror.defineMIME(\"text/velocity\", \"velocity\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/verilog/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Verilog/SystemVerilog mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"../../addon/edit/matchbrackets.js\"></script>\n<script src=\"verilog.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Verilog/SystemVerilog</a>\n  </ul>\n</div>\n\n<article>\n<h2>SystemVerilog mode</h2>\n\n<div><textarea id=\"code\" name=\"code\">\n// Literals\n1'b0\n1'bx\n1'bz\n16'hDC78\n'hdeadbeef\n'b0011xxzz\n1234\n32'd5678\n3.4e6\n-128.7\n\n// Macro definition\n`define BUS_WIDTH = 8;\n\n// Module definition\nmodule block(\n  input                   clk,\n  input                   rst_n,\n  input  [`BUS_WIDTH-1:0] data_in,\n  output [`BUS_WIDTH-1:0] data_out\n);\n  \n  always @(posedge clk or negedge rst_n) begin\n\n    if (~rst_n) begin\n      data_out <= 8'b0;\n    end else begin\n      data_out <= data_in;\n    end\n    \n    if (~rst_n)\n      data_out <= 8'b0;\n    else\n      data_out <= data_in;\n    \n    if (~rst_n)\n      begin\n        data_out <= 8'b0;\n      end\n    else\n      begin\n        data_out <= data_in;\n      end\n\n  end\n  \nendmodule\n\n// Class definition\nclass test;\n\n  /**\n   * Sum two integers\n   */\n  function int sum(int a, int b);\n    int result = a + b;\n    string msg = $sformatf(\"%d + %d = %d\", a, b, result);\n    $display(msg);\n    return result;\n  endfunction\n  \n  task delay(int num_cycles);\n    repeat(num_cycles) #1;\n  endtask\n  \nendclass\n\n</textarea></div>\n\n<script>\n  var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n    lineNumbers: true,\n    matchBrackets: true,\n    mode: {\n      name: \"verilog\",\n      noIndentKeywords: [\"package\"]\n    }\n  });\n</script>\n\n<p>\nSyntax highlighting and indentation for the Verilog and SystemVerilog languages (IEEE 1800).\n<h2>Configuration options:</h2>\n  <ul>\n    <li><strong>noIndentKeywords</strong> - List of keywords which should not cause identation to increase. E.g. [\"package\", \"module\"]. Default: None</li>\n  </ul>\n</p>\n\n<p><strong>MIME types defined:</strong> <code>text/x-verilog</code> and <code>text/x-systemverilog</code>.</p>\n</article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/verilog/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 4}, \"verilog\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"binary_literals\",\n     \"[number 1'b0]\",\n     \"[number 1'b1]\",\n     \"[number 1'bx]\",\n     \"[number 1'bz]\",\n     \"[number 1'bX]\",\n     \"[number 1'bZ]\",\n     \"[number 1'B0]\",\n     \"[number 1'B1]\",\n     \"[number 1'Bx]\",\n     \"[number 1'Bz]\",\n     \"[number 1'BX]\",\n     \"[number 1'BZ]\",\n     \"[number 1'b0]\",\n     \"[number 1'b1]\",\n     \"[number 2'b01]\",\n     \"[number 2'bxz]\",\n     \"[number 2'b11]\",\n     \"[number 2'b10]\",\n     \"[number 2'b1Z]\",\n     \"[number 12'b0101_0101_0101]\",\n     \"[number 1'b 0]\",\n     \"[number 'b0101]\"\n  );\n\n  MT(\"octal_literals\",\n     \"[number 3'o7]\",\n     \"[number 3'O7]\",\n     \"[number 3'so7]\",\n     \"[number 3'SO7]\"\n  );\n\n  MT(\"decimal_literals\",\n     \"[number 0]\",\n     \"[number 1]\",\n     \"[number 7]\",\n     \"[number 123_456]\",\n     \"[number 'd33]\",\n     \"[number 8'd255]\",\n     \"[number 8'D255]\",\n     \"[number 8'sd255]\",\n     \"[number 8'SD255]\",\n     \"[number 32'd123]\",\n     \"[number 32 'd123]\",\n     \"[number 32 'd 123]\"\n  );\n\n  MT(\"hex_literals\",\n     \"[number 4'h0]\",\n     \"[number 4'ha]\",\n     \"[number 4'hF]\",\n     \"[number 4'hx]\",\n     \"[number 4'hz]\",\n     \"[number 4'hX]\",\n     \"[number 4'hZ]\",\n     \"[number 32'hdc78]\",\n     \"[number 32'hDC78]\",\n     \"[number 32 'hDC78]\",\n     \"[number 32'h DC78]\",\n     \"[number 32 'h DC78]\",\n     \"[number 32'h44x7]\",\n     \"[number 32'hFFF?]\"\n  );\n\n  MT(\"real_number_literals\",\n     \"[number 1.2]\",\n     \"[number 0.1]\",\n     \"[number 2394.26331]\",\n     \"[number 1.2E12]\",\n     \"[number 1.2e12]\",\n     \"[number 1.30e-2]\",\n     \"[number 0.1e-0]\",\n     \"[number 23E10]\",\n     \"[number 29E-2]\",\n     \"[number 236.123_763_e-12]\"\n  );\n\n  MT(\"operators\",\n     \"[meta ^]\"\n  );\n\n  MT(\"keywords\",\n     \"[keyword logic]\",\n     \"[keyword logic] [variable foo]\",\n     \"[keyword reg] [variable abc]\"\n  );\n\n  MT(\"variables\",\n     \"[variable _leading_underscore]\",\n     \"[variable _if]\",\n     \"[number 12] [variable foo]\",\n     \"[variable foo] [number 14]\"\n  );\n\n  MT(\"tick_defines\",\n     \"[def `FOO]\",\n     \"[def `foo]\",\n     \"[def `FOO_bar]\"\n  );\n\n  MT(\"system_calls\",\n     \"[meta $display]\",\n     \"[meta $vpi_printf]\"\n  );\n\n  MT(\"line_comment\", \"[comment // Hello world]\");\n\n  // Alignment tests\n  MT(\"align_port_map_style1\",\n     /**\n      * mod mod(.a(a),\n      *         .b(b)\n      *        );\n      */\n     \"[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],\",\n     \"        .[variable b][bracket (][variable b][bracket )]\",\n     \"       [bracket )];\",\n     \"\"\n  );\n\n  MT(\"align_port_map_style2\",\n     /**\n      * mod mod(\n      *     .a(a),\n      *     .b(b)\n      * );\n      */\n     \"[variable mod] [variable mod][bracket (]\",\n     \"    .[variable a][bracket (][variable a][bracket )],\",\n     \"    .[variable b][bracket (][variable b][bracket )]\",\n     \"[bracket )];\",\n     \"\"\n  );\n\n  // Indentation tests\n  MT(\"indent_single_statement_if\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword break];\",\n      \"\"\n  );\n\n  MT(\"no_indent_after_single_line_if\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_after_if_begin_same_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_after_if_begin_next_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_single_statement_if_else\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword break];\",\n      \"[keyword else]\",\n      \"    [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_if_else_begin_same_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end] [keyword else] [keyword begin]\",\n      \"    [keyword break];\",\n      \"    [keyword break];\",\n      \"[keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_if_else_begin_next_line\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"[keyword else]\",\n      \"    [keyword begin]\",\n      \"        [keyword break];\",\n      \"        [keyword break];\",\n      \"    [keyword end]\",\n      \"\"\n  );\n\n  MT(\"indent_if_nested_without_begin\",\n      \"[keyword if] [bracket (][variable foo][bracket )]\",\n      \"    [keyword if] [bracket (][variable foo][bracket )]\",\n      \"        [keyword if] [bracket (][variable foo][bracket )]\",\n      \"            [keyword break];\",\n      \"\"\n  );\n\n  MT(\"indent_case\",\n      \"[keyword case] [bracket (][variable state][bracket )]\",\n      \"    [variable FOO]:\",\n      \"        [keyword break];\",\n      \"    [variable BAR]:\",\n      \"        [keyword break];\",\n      \"[keyword endcase]\",\n      \"\"\n  );\n\n  MT(\"unindent_after_end_with_preceding_text\",\n      \"[keyword begin]\",\n      \"    [keyword break]; [keyword end]\",\n      \"\"\n  );\n\n  MT(\"export_function_one_line_does_not_indent\",\n     \"[keyword export] [string \\\"DPI-C\\\"] [keyword function] [variable helloFromSV];\",\n     \"\"\n  );\n\n  MT(\"export_task_one_line_does_not_indent\",\n     \"[keyword export] [string \\\"DPI-C\\\"] [keyword task] [variable helloFromSV];\",\n     \"\"\n  );\n\n  MT(\"export_function_two_lines_indents_properly\",\n    \"[keyword export]\",\n    \"    [string \\\"DPI-C\\\"] [keyword function] [variable helloFromSV];\",\n    \"\"\n  );\n\n  MT(\"export_task_two_lines_indents_properly\",\n    \"[keyword export]\",\n    \"    [string \\\"DPI-C\\\"] [keyword task] [variable helloFromSV];\",\n    \"\"\n  );\n\n  MT(\"import_function_one_line_does_not_indent\",\n    \"[keyword import] [string \\\"DPI-C\\\"] [keyword function] [variable helloFromC];\",\n    \"\"\n  );\n\n  MT(\"import_task_one_line_does_not_indent\",\n    \"[keyword import] [string \\\"DPI-C\\\"] [keyword task] [variable helloFromC];\",\n    \"\"\n  );\n\n  MT(\"import_package_single_line_does_not_indent\",\n    \"[keyword import] [variable p]::[variable x];\",\n    \"[keyword import] [variable p]::[variable y];\",\n    \"\"\n  );\n\n  MT(\"covergoup_with_function_indents_properly\",\n    \"[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];\",\n    \"    [variable c] : [keyword coverpoint] [variable c];\",\n    \"[keyword endgroup]: [variable cg]\",\n    \"\"\n  );\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/verilog/verilog.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"verilog\", function(config, parserConfig) {\n\n  var indentUnit = config.indentUnit,\n      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n      dontAlignCalls = parserConfig.dontAlignCalls,\n      noIndentKeywords = parserConfig.noIndentKeywords || [],\n      multiLineStrings = parserConfig.multiLineStrings,\n      hooks = parserConfig.hooks || {};\n\n  function words(str) {\n    var obj = {}, words = str.split(\" \");\n    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n    return obj;\n  }\n\n  /**\n   * Keywords from IEEE 1800-2012\n   */\n  var keywords = words(\n    \"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind \" +\n    \"bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config \" +\n    \"const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable \" +\n    \"dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup \" +\n    \"endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask \" +\n    \"enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin \" +\n    \"function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import \" +\n    \"incdir include initial inout input inside instance int integer interconnect interface intersect join join_any \" +\n    \"join_none large let liblist library local localparam logic longint macromodule matches medium modport module \" +\n    \"nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed \" +\n    \"parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup \" +\n    \"pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg \" +\n    \"reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime \" +\n    \"s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify \" +\n    \"specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on \" +\n    \"table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior \" +\n    \"trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void \" +\n    \"wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor\");\n\n  /** Operators from IEEE 1800-2012\n     unary_operator ::=\n       + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_operator ::=\n       + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | **\n       | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<<\n       | -> | <->\n     inc_or_dec_operator ::= ++ | --\n     unary_module_path_operator ::=\n       ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~\n     binary_module_path_operator ::=\n       == | != | && | || | & | | | ^ | ^~ | ~^\n  */\n  var isOperatorChar = /[\\+\\-\\*\\/!~&|^%=?:]/;\n  var isBracketChar = /[\\[\\]{}()]/;\n\n  var unsignedNumber = /\\d[0-9_]*/;\n  var decimalLiteral = /\\d*\\s*'s?d\\s*\\d[0-9_]*/i;\n  var binaryLiteral = /\\d*\\s*'s?b\\s*[xz01][xz01_]*/i;\n  var octLiteral = /\\d*\\s*'s?o\\s*[xz0-7][xz0-7_]*/i;\n  var hexLiteral = /\\d*\\s*'s?h\\s*[0-9a-fxz?][0-9a-fxz?_]*/i;\n  var realLiteral = /(\\d[\\d_]*(\\.\\d[\\d_]*)?E-?[\\d_]+)|(\\d[\\d_]*\\.\\d[\\d_]*)/i;\n\n  var closingBracketOrWord = /^((\\w+)|[)}\\]])/;\n  var closingBracket = /[)}\\]]/;\n\n  var curPunc;\n  var curKeyword;\n\n  // Block openings which are closed by a matching keyword in the form of (\"end\" + keyword)\n  // E.g. \"task\" => \"endtask\"\n  var blockKeywords = words(\n    \"case checker class clocking config function generate interface module package\" +\n    \"primitive program property specify sequence table task\"\n  );\n\n  // Opening/closing pairs\n  var openClose = {};\n  for (var keyword in blockKeywords) {\n    openClose[keyword] = \"end\" + keyword;\n  }\n  openClose[\"begin\"] = \"end\";\n  openClose[\"casex\"] = \"endcase\";\n  openClose[\"casez\"] = \"endcase\";\n  openClose[\"do\"   ] = \"while\";\n  openClose[\"fork\" ] = \"join;join_any;join_none\";\n  openClose[\"covergroup\"] = \"endgroup\";\n\n  for (var i in noIndentKeywords) {\n    var keyword = noIndentKeywords[i];\n    if (openClose[keyword]) {\n      openClose[keyword] = undefined;\n    }\n  }\n\n  // Keywords which open statements that are ended with a semi-colon\n  var statementKeywords = words(\"always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while\");\n\n  function tokenBase(stream, state) {\n    var ch = stream.peek(), style;\n    if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style;\n    if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false)\n      return style;\n\n    if (/[,;:\\.]/.test(ch)) {\n      curPunc = stream.next();\n      return null;\n    }\n    if (isBracketChar.test(ch)) {\n      curPunc = stream.next();\n      return \"bracket\";\n    }\n    // Macros (tick-defines)\n    if (ch == '`') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        return \"def\";\n      } else {\n        return null;\n      }\n    }\n    // System calls\n    if (ch == '$') {\n      stream.next();\n      if (stream.eatWhile(/[\\w\\$_]/)) {\n        return \"meta\";\n      } else {\n        return null;\n      }\n    }\n    // Time literals\n    if (ch == '#') {\n      stream.next();\n      stream.eatWhile(/[\\d_.]/);\n      return \"def\";\n    }\n    // Strings\n    if (ch == '\"') {\n      stream.next();\n      state.tokenize = tokenString(ch);\n      return state.tokenize(stream, state);\n    }\n    // Comments\n    if (ch == \"/\") {\n      stream.next();\n      if (stream.eat(\"*\")) {\n        state.tokenize = tokenComment;\n        return tokenComment(stream, state);\n      }\n      if (stream.eat(\"/\")) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      stream.backUp(1);\n    }\n\n    // Numeric literals\n    if (stream.match(realLiteral) ||\n        stream.match(decimalLiteral) ||\n        stream.match(binaryLiteral) ||\n        stream.match(octLiteral) ||\n        stream.match(hexLiteral) ||\n        stream.match(unsignedNumber) ||\n        stream.match(realLiteral)) {\n      return \"number\";\n    }\n\n    // Operators\n    if (stream.eatWhile(isOperatorChar)) {\n      return \"meta\";\n    }\n\n    // Keywords / plain variables\n    if (stream.eatWhile(/[\\w\\$_]/)) {\n      var cur = stream.current();\n      if (keywords[cur]) {\n        if (openClose[cur]) {\n          curPunc = \"newblock\";\n        }\n        if (statementKeywords[cur]) {\n          curPunc = \"newstatement\";\n        }\n        curKeyword = cur;\n        return \"keyword\";\n      }\n      return \"variable\";\n    }\n\n    stream.next();\n    return null;\n  }\n\n  function tokenString(quote) {\n    return function(stream, state) {\n      var escaped = false, next, end = false;\n      while ((next = stream.next()) != null) {\n        if (next == quote && !escaped) {end = true; break;}\n        escaped = !escaped && next == \"\\\\\";\n      }\n      if (end || !(escaped || multiLineStrings))\n        state.tokenize = tokenBase;\n      return \"string\";\n    };\n  }\n\n  function tokenComment(stream, state) {\n    var maybeEnd = false, ch;\n    while (ch = stream.next()) {\n      if (ch == \"/\" && maybeEnd) {\n        state.tokenize = tokenBase;\n        break;\n      }\n      maybeEnd = (ch == \"*\");\n    }\n    return \"comment\";\n  }\n\n  function Context(indented, column, type, align, prev) {\n    this.indented = indented;\n    this.column = column;\n    this.type = type;\n    this.align = align;\n    this.prev = prev;\n  }\n  function pushContext(state, col, type) {\n    var indent = state.indented;\n    var c = new Context(indent, col, type, null, state.context);\n    return state.context = c;\n  }\n  function popContext(state) {\n    var t = state.context.type;\n    if (t == \")\" || t == \"]\" || t == \"}\") {\n      state.indented = state.context.indented;\n    }\n    return state.context = state.context.prev;\n  }\n\n  function isClosing(text, contextClosing) {\n    if (text == contextClosing) {\n      return true;\n    } else {\n      // contextClosing may be mulitple keywords separated by ;\n      var closingKeywords = contextClosing.split(\";\");\n      for (var i in closingKeywords) {\n        if (text == closingKeywords[i]) {\n          return true;\n        }\n      }\n      return false;\n    }\n  }\n\n  function buildElectricInputRegEx() {\n    // Reindentation should occur on any bracket char: {}()[]\n    // or on a match of any of the block closing keywords, at\n    // the end of a line\n    var allClosings = [];\n    for (var i in openClose) {\n      if (openClose[i]) {\n        var closings = openClose[i].split(\";\");\n        for (var j in closings) {\n          allClosings.push(closings[j]);\n        }\n      }\n    }\n    var re = new RegExp(\"[{}()\\\\[\\\\]]|(\" + allClosings.join(\"|\") + \")$\");\n    return re;\n  }\n\n  // Interface\n  return {\n\n    // Regex to force current line to reindent\n    electricInput: buildElectricInputRegEx(),\n\n    startState: function(basecolumn) {\n      var state = {\n        tokenize: null,\n        context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", false),\n        indented: 0,\n        startOfLine: true\n      };\n      if (hooks.startState) hooks.startState(state);\n      return state;\n    },\n\n    token: function(stream, state) {\n      var ctx = state.context;\n      if (stream.sol()) {\n        if (ctx.align == null) ctx.align = false;\n        state.indented = stream.indentation();\n        state.startOfLine = true;\n      }\n      if (hooks.token) hooks.token(stream, state);\n      if (stream.eatSpace()) return null;\n      curPunc = null;\n      curKeyword = null;\n      var style = (state.tokenize || tokenBase)(stream, state);\n      if (style == \"comment\" || style == \"meta\" || style == \"variable\") return style;\n      if (ctx.align == null) ctx.align = true;\n\n      if (curPunc == ctx.type) {\n        popContext(state);\n      } else if ((curPunc == \";\" && ctx.type == \"statement\") ||\n               (ctx.type && isClosing(curKeyword, ctx.type))) {\n        ctx = popContext(state);\n        while (ctx && ctx.type == \"statement\") ctx = popContext(state);\n      } else if (curPunc == \"{\") {\n        pushContext(state, stream.column(), \"}\");\n      } else if (curPunc == \"[\") {\n        pushContext(state, stream.column(), \"]\");\n      } else if (curPunc == \"(\") {\n        pushContext(state, stream.column(), \")\");\n      } else if (ctx && ctx.type == \"endcase\" && curPunc == \":\") {\n        pushContext(state, stream.column(), \"statement\");\n      } else if (curPunc == \"newstatement\") {\n        pushContext(state, stream.column(), \"statement\");\n      } else if (curPunc == \"newblock\") {\n        if (curKeyword == \"function\" && ctx && (ctx.type == \"statement\" || ctx.type == \"endgroup\")) {\n          // The 'function' keyword can appear in some other contexts where it actually does not\n          // indicate a function (import/export DPI and covergroup definitions).\n          // Do nothing in this case\n        } else if (curKeyword == \"task\" && ctx && ctx.type == \"statement\") {\n          // Same thing for task\n        } else {\n          var close = openClose[curKeyword];\n          pushContext(state, stream.column(), close);\n        }\n      }\n\n      state.startOfLine = false;\n      return style;\n    },\n\n    indent: function(state, textAfter) {\n      if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass;\n      if (hooks.indent) {\n        var fromHook = hooks.indent(state);\n        if (fromHook >= 0) return fromHook;\n      }\n      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n      if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n      var closing = false;\n      var possibleClosing = textAfter.match(closingBracketOrWord);\n      if (possibleClosing)\n        closing = isClosing(possibleClosing[0], ctx.type);\n      if (ctx.type == \"statement\") return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n      else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1);\n      else if (ctx.type == \")\" && !closing) return ctx.indented + statementIndentUnit;\n      else return ctx.indented + (closing ? 0 : indentUnit);\n    },\n\n    blockCommentStart: \"/*\",\n    blockCommentEnd: \"*/\",\n    lineComment: \"//\"\n  };\n});\n\n  CodeMirror.defineMIME(\"text/x-verilog\", {\n    name: \"verilog\"\n  });\n\n  CodeMirror.defineMIME(\"text/x-systemverilog\", {\n    name: \"verilog\"\n  });\n\n  // SVXVerilog mode\n\n  var svxchScopePrefixes = {\n    \">\": \"property\", \"->\": \"property\", \"-\": \"hr\", \"|\": \"link\", \"?$\": \"qualifier\", \"?*\": \"qualifier\",\n    \"@-\": \"variable-3\", \"@\": \"variable-3\", \"?\": \"qualifier\"\n  };\n\n  function svxGenIndent(stream, state) {\n    var svxindentUnit = 2;\n    var rtnIndent = -1, indentUnitRq = 0, curIndent = stream.indentation();\n    switch (state.svxCurCtlFlowChar) {\n    case \"\\\\\":\n      curIndent = 0;\n      break;\n    case \"|\":\n      if (state.svxPrevPrevCtlFlowChar == \"@\") {\n        indentUnitRq = -2; //-2 new pipe rq after cur pipe\n        break;\n      }\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    case \"M\":  // m4\n      if (state.svxPrevPrevCtlFlowChar == \"@\") {\n        indentUnitRq = -2; //-2 new inst rq after  pipe\n        break;\n      }\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    case \"@\":\n      if (state.svxPrevCtlFlowChar == \"S\")\n        indentUnitRq = -1; // new pipe stage after stmts\n      if (state.svxPrevCtlFlowChar == \"|\")\n        indentUnitRq = 1; // 1st pipe stage\n      break;\n    case \"S\":\n      if (state.svxPrevCtlFlowChar == \"@\")\n        indentUnitRq = 1; // flow in pipe stage\n      if (svxchScopePrefixes[state.svxPrevCtlFlowChar])\n        indentUnitRq = 1; // +1 new scope\n      break;\n    }\n    var statementIndentUnit = svxindentUnit;\n    rtnIndent = curIndent + (indentUnitRq*statementIndentUnit);\n    return rtnIndent >= 0 ? rtnIndent : curIndent;\n  }\n\n  CodeMirror.defineMIME(\"text/x-svx\", {\n    name: \"verilog\",\n    hooks: {\n      \"\\\\\": function(stream, state) {\n        var vxIndent = 0, style = false;\n        var curPunc  = stream.string;\n        if ((stream.sol()) && (/\\\\SV/.test(stream.string))) {\n          curPunc = (/\\\\SVX_version/.test(stream.string))\n            ? \"\\\\SVX_version\" : stream.string;\n          stream.skipToEnd();\n          if (curPunc == \"\\\\SV\" && state.vxCodeActive) {state.vxCodeActive = false;};\n          if ((/\\\\SVX/.test(curPunc) && !state.vxCodeActive)\n            || (curPunc==\"\\\\SVX_version\" && state.vxCodeActive)) {state.vxCodeActive = true;};\n          style = \"keyword\";\n          state.svxCurCtlFlowChar  = state.svxPrevPrevCtlFlowChar\n            = state.svxPrevCtlFlowChar = \"\";\n          if (state.vxCodeActive == true) {\n            state.svxCurCtlFlowChar  = \"\\\\\";\n            vxIndent = svxGenIndent(stream, state);\n          }\n          state.vxIndentRq = vxIndent;\n        }\n        return style;\n      },\n      tokenBase: function(stream, state) {\n        var vxIndent = 0, style = false;\n        var svxisOperatorChar = /[\\[\\]=:]/;\n        var svxkpScopePrefixs = {\n          \"**\":\"variable-2\", \"*\":\"variable-2\", \"$$\":\"variable\", \"$\":\"variable\",\n          \"^^\":\"attribute\", \"^\":\"attribute\"};\n        var ch = stream.peek();\n        var vxCurCtlFlowCharValueAtStart = state.svxCurCtlFlowChar;\n        if (state.vxCodeActive == true) {\n          if (/[\\[\\]{}\\(\\);\\:]/.test(ch)) {\n            // bypass nesting and 1 char punc\n            style = \"meta\";\n            stream.next();\n          } else if (ch == \"/\") {\n            stream.next();\n            if (stream.eat(\"/\")) {\n              stream.skipToEnd();\n              style = \"comment\";\n              state.svxCurCtlFlowChar = \"S\";\n            } else {\n              stream.backUp(1);\n            }\n          } else if (ch == \"@\") {\n            // pipeline stage\n            style = svxchScopePrefixes[ch];\n            state.svxCurCtlFlowChar = \"@\";\n            stream.next();\n            stream.eatWhile(/[\\w\\$_]/);\n          } else if (stream.match(/\\b[mM]4+/, true)) { // match: function(pattern, consume, caseInsensitive)\n            // m4 pre proc\n            stream.skipTo(\"(\");\n            style = \"def\";\n            state.svxCurCtlFlowChar = \"M\";\n          } else if (ch == \"!\" && stream.sol()) {\n            // v stmt in svx region\n            // state.svxCurCtlFlowChar  = \"S\";\n            style = \"comment\";\n            stream.next();\n          } else if (svxisOperatorChar.test(ch)) {\n            // operators\n            stream.eatWhile(svxisOperatorChar);\n            style = \"operator\";\n          } else if (ch == \"#\") {\n            // phy hier\n            state.svxCurCtlFlowChar  = (state.svxCurCtlFlowChar == \"\")\n              ? ch : state.svxCurCtlFlowChar;\n            stream.next();\n            stream.eatWhile(/[+-]\\d/);\n            style = \"tag\";\n          } else if (svxkpScopePrefixs.propertyIsEnumerable(ch)) {\n            // special SVX operators\n            style = svxkpScopePrefixs[ch];\n            state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == \"\" ? \"S\" : state.svxCurCtlFlowChar;  // stmt\n            stream.next();\n            stream.match(/[a-zA-Z_0-9]+/);\n          } else if (style = svxchScopePrefixes[ch] || false) {\n            // special SVX operators\n            state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == \"\" ? ch : state.svxCurCtlFlowChar;\n            stream.next();\n            stream.match(/[a-zA-Z_0-9]+/);\n          }\n          if (state.svxCurCtlFlowChar != vxCurCtlFlowCharValueAtStart) { // flow change\n            vxIndent = svxGenIndent(stream, state);\n            state.vxIndentRq = vxIndent;\n          }\n        }\n        return style;\n      },\n      token: function(stream, state) {\n        if (state.vxCodeActive == true && stream.sol() && state.svxCurCtlFlowChar != \"\") {\n          state.svxPrevPrevCtlFlowChar = state.svxPrevCtlFlowChar;\n          state.svxPrevCtlFlowChar = state.svxCurCtlFlowChar;\n          state.svxCurCtlFlowChar = \"\";\n        }\n      },\n      indent: function(state) {\n        return (state.vxCodeActive == true) ? state.vxIndentRq : -1;\n      },\n      startState: function(state) {\n        state.svxCurCtlFlowChar = \"\";\n        state.svxPrevCtlFlowChar = \"\";\n        state.svxPrevPrevCtlFlowChar = \"\";\n        state.vxCodeActive = true;\n        state.vxIndentRq = 0;\n      }\n    }\n  });\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: XML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"xml.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">XML</a>\n  </ul>\n</div>\n\n<article>\n<h2>XML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n&lt;html style=\"color: green\"&gt;\n  &lt;!-- this is a comment --&gt;\n  &lt;head&gt;\n    &lt;title&gt;HTML Example&lt;/title&gt;\n  &lt;/head&gt;\n  &lt;body&gt;\n    The indentation tries to be &lt;em&gt;somewhat &amp;quot;do what\n    I mean&amp;quot;&lt;/em&gt;... but might not match your style.\n  &lt;/body&gt;\n&lt;/html&gt;\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        mode: \"text/html\",\n        lineNumbers: true\n      });\n    </script>\n    <p>The XML mode supports two configuration parameters:</p>\n    <dl>\n      <dt><code>htmlMode (boolean)</code></dt>\n      <dd>This switches the mode to parse HTML instead of XML. This\n      means attributes do not have to be quoted, and some elements\n      (such as <code>br</code>) do not require a closing tag.</dd>\n      <dt><code>alignCDATA (boolean)</code></dt>\n      <dd>Setting this to true will force the opening tag of CDATA\n      blocks to not be indented.</dd>\n    </dl>\n\n    <p><strong>MIME types defined:</strong> <code>application/xml</code>, <code>text/html</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xml/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function() {\n  var mode = CodeMirror.getMode({indentUnit: 2}, \"xml\"), mname = \"xml\";\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }\n\n  MT(\"matching\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  text\",\n     \"  [tag&bracket <][tag inner][tag&bracket />]\",\n     \"[tag&bracket </][tag top][tag&bracket >]\");\n\n  MT(\"nonmatching\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  [tag&bracket <][tag inner][tag&bracket />]\",\n     \"  [tag&bracket </][tag&error tip][tag&bracket&error >]\");\n\n  MT(\"doctype\",\n     \"[meta <!doctype foobar>]\",\n     \"[tag&bracket <][tag top][tag&bracket />]\");\n\n  MT(\"cdata\",\n     \"[tag&bracket <][tag top][tag&bracket >]\",\n     \"  [atom <![CDATA[foo]\",\n     \"[atom barbazguh]]]]>]\",\n     \"[tag&bracket </][tag top][tag&bracket >]\");\n\n  // HTML tests\n  mode = CodeMirror.getMode({indentUnit: 2}, \"text/html\");\n\n  MT(\"selfclose\",\n     \"[tag&bracket <][tag html][tag&bracket >]\",\n     \"  [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \\\"/foobar\\\"][tag&bracket >]\",\n     \"[tag&bracket </][tag html][tag&bracket >]\");\n\n  MT(\"list\",\n     \"[tag&bracket <][tag ol][tag&bracket >]\",\n     \"  [tag&bracket <][tag li][tag&bracket >]one\",\n     \"  [tag&bracket <][tag li][tag&bracket >]two\",\n     \"[tag&bracket </][tag ol][tag&bracket >]\");\n\n  MT(\"valueless\",\n     \"[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]\");\n\n  MT(\"pThenArticle\",\n     \"[tag&bracket <][tag p][tag&bracket >]\",\n     \"  foo\",\n     \"[tag&bracket <][tag article][tag&bracket >]bar\");\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xml/xml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"xml\", function(config, parserConfig) {\n  var indentUnit = config.indentUnit;\n  var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1;\n  var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag;\n  if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true;\n\n  var Kludges = parserConfig.htmlMode ? {\n    autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n                      'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n                      'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n                      'track': true, 'wbr': true, 'menuitem': true},\n    implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n                       'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n                       'th': true, 'tr': true},\n    contextGrabbers: {\n      'dd': {'dd': true, 'dt': true},\n      'dt': {'dd': true, 'dt': true},\n      'li': {'li': true},\n      'option': {'option': true, 'optgroup': true},\n      'optgroup': {'optgroup': true},\n      'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n            'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n            'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n            'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n            'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n      'rp': {'rp': true, 'rt': true},\n      'rt': {'rp': true, 'rt': true},\n      'tbody': {'tbody': true, 'tfoot': true},\n      'td': {'td': true, 'th': true},\n      'tfoot': {'tbody': true},\n      'th': {'td': true, 'th': true},\n      'thead': {'tbody': true, 'tfoot': true},\n      'tr': {'tr': true}\n    },\n    doNotIndent: {\"pre\": true},\n    allowUnquoted: true,\n    allowMissing: true,\n    caseFold: true\n  } : {\n    autoSelfClosers: {},\n    implicitlyClosed: {},\n    contextGrabbers: {},\n    doNotIndent: {},\n    allowUnquoted: false,\n    allowMissing: false,\n    caseFold: false\n  };\n  var alignCDATA = parserConfig.alignCDATA;\n\n  // Return variables for tokenizers\n  var type, setStyle;\n\n  function inText(stream, state) {\n    function chain(parser) {\n      state.tokenize = parser;\n      return parser(stream, state);\n    }\n\n    var ch = stream.next();\n    if (ch == \"<\") {\n      if (stream.eat(\"!\")) {\n        if (stream.eat(\"[\")) {\n          if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n          else return null;\n        } else if (stream.match(\"--\")) {\n          return chain(inBlock(\"comment\", \"-->\"));\n        } else if (stream.match(\"DOCTYPE\", true, true)) {\n          stream.eatWhile(/[\\w\\._\\-]/);\n          return chain(doctype(1));\n        } else {\n          return null;\n        }\n      } else if (stream.eat(\"?\")) {\n        stream.eatWhile(/[\\w\\._\\-]/);\n        state.tokenize = inBlock(\"meta\", \"?>\");\n        return \"meta\";\n      } else {\n        type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n        state.tokenize = inTag;\n        return \"tag bracket\";\n      }\n    } else if (ch == \"&\") {\n      var ok;\n      if (stream.eat(\"#\")) {\n        if (stream.eat(\"x\")) {\n          ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n        } else {\n          ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n        }\n      } else {\n        ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n      }\n      return ok ? \"atom\" : \"error\";\n    } else {\n      stream.eatWhile(/[^&<]/);\n      return null;\n    }\n  }\n\n  function inTag(stream, state) {\n    var ch = stream.next();\n    if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n      state.tokenize = inText;\n      type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n      return \"tag bracket\";\n    } else if (ch == \"=\") {\n      type = \"equals\";\n      return null;\n    } else if (ch == \"<\") {\n      state.tokenize = inText;\n      state.state = baseState;\n      state.tagName = state.tagStart = null;\n      var next = state.tokenize(stream, state);\n      return next ? next + \" tag error\" : \"tag error\";\n    } else if (/[\\'\\\"]/.test(ch)) {\n      state.tokenize = inAttribute(ch);\n      state.stringStartCol = stream.column();\n      return state.tokenize(stream, state);\n    } else {\n      stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n      return \"word\";\n    }\n  }\n\n  function inAttribute(quote) {\n    var closure = function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.next() == quote) {\n          state.tokenize = inTag;\n          break;\n        }\n      }\n      return \"string\";\n    };\n    closure.isInAttribute = true;\n    return closure;\n  }\n\n  function inBlock(style, terminator) {\n    return function(stream, state) {\n      while (!stream.eol()) {\n        if (stream.match(terminator)) {\n          state.tokenize = inText;\n          break;\n        }\n        stream.next();\n      }\n      return style;\n    };\n  }\n  function doctype(depth) {\n    return function(stream, state) {\n      var ch;\n      while ((ch = stream.next()) != null) {\n        if (ch == \"<\") {\n          state.tokenize = doctype(depth + 1);\n          return state.tokenize(stream, state);\n        } else if (ch == \">\") {\n          if (depth == 1) {\n            state.tokenize = inText;\n            break;\n          } else {\n            state.tokenize = doctype(depth - 1);\n            return state.tokenize(stream, state);\n          }\n        }\n      }\n      return \"meta\";\n    };\n  }\n\n  function Context(state, tagName, startOfLine) {\n    this.prev = state.context;\n    this.tagName = tagName;\n    this.indent = state.indented;\n    this.startOfLine = startOfLine;\n    if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n      this.noIndent = true;\n  }\n  function popContext(state) {\n    if (state.context) state.context = state.context.prev;\n  }\n  function maybePopContext(state, nextTagName) {\n    var parentTagName;\n    while (true) {\n      if (!state.context) {\n        return;\n      }\n      parentTagName = state.context.tagName;\n      if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) ||\n          !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {\n        return;\n      }\n      popContext(state);\n    }\n  }\n\n  function baseState(type, stream, state) {\n    if (type == \"openTag\") {\n      state.tagStart = stream.column();\n      return tagNameState;\n    } else if (type == \"closeTag\") {\n      return closeTagNameState;\n    } else {\n      return baseState;\n    }\n  }\n  function tagNameState(type, stream, state) {\n    if (type == \"word\") {\n      state.tagName = stream.current();\n      setStyle = \"tag\";\n      return attrState;\n    } else {\n      setStyle = \"error\";\n      return tagNameState;\n    }\n  }\n  function closeTagNameState(type, stream, state) {\n    if (type == \"word\") {\n      var tagName = stream.current();\n      if (state.context && state.context.tagName != tagName &&\n          Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName))\n        popContext(state);\n      if (state.context && state.context.tagName == tagName) {\n        setStyle = \"tag\";\n        return closeState;\n      } else {\n        setStyle = \"tag error\";\n        return closeStateErr;\n      }\n    } else {\n      setStyle = \"error\";\n      return closeStateErr;\n    }\n  }\n\n  function closeState(type, _stream, state) {\n    if (type != \"endTag\") {\n      setStyle = \"error\";\n      return closeState;\n    }\n    popContext(state);\n    return baseState;\n  }\n  function closeStateErr(type, stream, state) {\n    setStyle = \"error\";\n    return closeState(type, stream, state);\n  }\n\n  function attrState(type, _stream, state) {\n    if (type == \"word\") {\n      setStyle = \"attribute\";\n      return attrEqState;\n    } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n      var tagName = state.tagName, tagStart = state.tagStart;\n      state.tagName = state.tagStart = null;\n      if (type == \"selfcloseTag\" ||\n          Kludges.autoSelfClosers.hasOwnProperty(tagName)) {\n        maybePopContext(state, tagName);\n      } else {\n        maybePopContext(state, tagName);\n        state.context = new Context(state, tagName, tagStart == state.indented);\n      }\n      return baseState;\n    }\n    setStyle = \"error\";\n    return attrState;\n  }\n  function attrEqState(type, stream, state) {\n    if (type == \"equals\") return attrValueState;\n    if (!Kludges.allowMissing) setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrValueState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    if (type == \"word\" && Kludges.allowUnquoted) {setStyle = \"string\"; return attrState;}\n    setStyle = \"error\";\n    return attrState(type, stream, state);\n  }\n  function attrContinuedState(type, stream, state) {\n    if (type == \"string\") return attrContinuedState;\n    return attrState(type, stream, state);\n  }\n\n  return {\n    startState: function() {\n      return {tokenize: inText,\n              state: baseState,\n              indented: 0,\n              tagName: null, tagStart: null,\n              context: null};\n    },\n\n    token: function(stream, state) {\n      if (!state.tagName && stream.sol())\n        state.indented = stream.indentation();\n\n      if (stream.eatSpace()) return null;\n      type = null;\n      var style = state.tokenize(stream, state);\n      if ((style || type) && style != \"comment\") {\n        setStyle = null;\n        state.state = state.state(type || style, stream, state);\n        if (setStyle)\n          style = setStyle == \"error\" ? style + \" error\" : setStyle;\n      }\n      return style;\n    },\n\n    indent: function(state, textAfter, fullLine) {\n      var context = state.context;\n      // Indent multi-line strings (e.g. css).\n      if (state.tokenize.isInAttribute) {\n        if (state.tagStart == state.indented)\n          return state.stringStartCol + 1;\n        else\n          return state.indented + indentUnit;\n      }\n      if (context && context.noIndent) return CodeMirror.Pass;\n      if (state.tokenize != inTag && state.tokenize != inText)\n        return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n      // Indent the starts of attribute names.\n      if (state.tagName) {\n        if (multilineTagIndentPastTag)\n          return state.tagStart + state.tagName.length + 2;\n        else\n          return state.tagStart + indentUnit * multilineTagIndentFactor;\n      }\n      if (alignCDATA && /<!\\[CDATA\\[/.test(textAfter)) return 0;\n      var tagAfter = textAfter && /^<(\\/)?([\\w_:\\.-]*)/.exec(textAfter);\n      if (tagAfter && tagAfter[1]) { // Closing tag spotted\n        while (context) {\n          if (context.tagName == tagAfter[2]) {\n            context = context.prev;\n            break;\n          } else if (Kludges.implicitlyClosed.hasOwnProperty(context.tagName)) {\n            context = context.prev;\n          } else {\n            break;\n          }\n        }\n      } else if (tagAfter) { // Opening tag spotted\n        while (context) {\n          var grabbers = Kludges.contextGrabbers[context.tagName];\n          if (grabbers && grabbers.hasOwnProperty(tagAfter[2]))\n            context = context.prev;\n          else\n            break;\n        }\n      }\n      while (context && !context.startOfLine)\n        context = context.prev;\n      if (context) return context.indent + indentUnit;\n      else return 0;\n    },\n\n    electricInput: /<\\/[\\s\\w:]+>$/,\n    blockCommentStart: \"<!--\",\n    blockCommentEnd: \"-->\",\n\n    configuration: parserConfig.htmlMode ? \"html\" : \"xml\",\n    helperType: parserConfig.htmlMode ? \"html\" : \"xml\"\n  };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n  CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xquery/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: XQuery mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<link rel=\"stylesheet\" href=\"../../theme/xq-dark.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"xquery.js\"></script>\n<style type=\"text/css\">\n\t.CodeMirror {\n\t  border-top: 1px solid black; border-bottom: 1px solid black;\n\t  height:400px;\n\t}\n    </style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">XQuery</a>\n  </ul>\n</div>\n\n<article>\n<h2>XQuery mode</h2>\n \n \n<div class=\"cm-s-default\"> \n\t<textarea id=\"code\" name=\"code\"> \nxquery version &quot;1.0-ml&quot;;\n(: this is\n : a \n   \"comment\" :)\nlet $let := &lt;x attr=&quot;value&quot;&gt;&quot;test&quot;&lt;func&gt;function() $var {function()} {$var}&lt;/func&gt;&lt;/x&gt;\nlet $joe:=1\nreturn element element {\n\tattribute attribute { 1 },\n\telement test { &#39;a&#39; }, \n\tattribute foo { &quot;bar&quot; },\n\tfn:doc()[ foo/@bar eq $let ],\n\t//x }    \n \n(: a more 'evil' test :)\n(: Modified Blakeley example (: with nested comment :) ... :)\ndeclare private function local:declare() {()};\ndeclare private function local:private() {()};\ndeclare private function local:function() {()};\ndeclare private function local:local() {()};\nlet $let := &lt;let&gt;let $let := &quot;let&quot;&lt;/let&gt;\nreturn element element {\n\tattribute attribute { try { xdmp:version() } catch($e) { xdmp:log($e) } },\n\tattribute fn:doc { &quot;bar&quot; castable as xs:string },\n\telement text { text { &quot;text&quot; } },\n\tfn:doc()[ child::eq/(@bar | attribute::attribute) eq $let ],\n\t//fn:doc\n}\n\n\n\nxquery version &quot;1.0-ml&quot;;\n\n(: Copyright 2006-2010 Mark Logic Corporation. :)\n\n(:\n : Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);\n : you may not use this file except in compliance with the License.\n : You may obtain a copy of the License at\n :\n :     http://www.apache.org/licenses/LICENSE-2.0\n :\n : Unless required by applicable law or agreed to in writing, software\n : distributed under the License is distributed on an &quot;AS IS&quot; BASIS,\n : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n : See the License for the specific language governing permissions and\n : limitations under the License.\n :)\n\nmodule namespace json = &quot;http://marklogic.com/json&quot;;\ndeclare default function namespace &quot;http://www.w3.org/2005/xpath-functions&quot;;\n\n(: Need to backslash escape any double quotes, backslashes, and newlines :)\ndeclare function json:escape($s as xs:string) as xs:string {\n  let $s := replace($s, &quot;\\\\&quot;, &quot;\\\\\\\\&quot;)\n  let $s := replace($s, &quot;&quot;&quot;&quot;, &quot;\\\\&quot;&quot;&quot;)\n  let $s := replace($s, codepoints-to-string((13, 10)), &quot;\\\\n&quot;)\n  let $s := replace($s, codepoints-to-string(13), &quot;\\\\n&quot;)\n  let $s := replace($s, codepoints-to-string(10), &quot;\\\\n&quot;)\n  return $s\n};\n\ndeclare function json:atomize($x as element()) as xs:string {\n  if (count($x/node()) = 0) then 'null'\n  else if ($x/@type = &quot;number&quot;) then\n    let $castable := $x castable as xs:float or\n                     $x castable as xs:double or\n                     $x castable as xs:decimal\n    return\n    if ($castable) then xs:string($x)\n    else error(concat(&quot;Not a number: &quot;, xdmp:describe($x)))\n  else if ($x/@type = &quot;boolean&quot;) then\n    let $castable := $x castable as xs:boolean\n    return\n    if ($castable) then xs:string(xs:boolean($x))\n    else error(concat(&quot;Not a boolean: &quot;, xdmp:describe($x)))\n  else concat('&quot;', json:escape($x), '&quot;')\n};\n\n(: Print the thing that comes after the colon :)\ndeclare function json:print-value($x as element()) as xs:string {\n  if (count($x/*) = 0) then\n    json:atomize($x)\n  else if ($x/@quote = &quot;true&quot;) then\n    concat('&quot;', json:escape(xdmp:quote($x/node())), '&quot;')\n  else\n    string-join(('{',\n      string-join(for $i in $x/* return json:print-name-value($i), &quot;,&quot;),\n    '}'), &quot;&quot;)\n};\n\n(: Print the name and value both :)\ndeclare function json:print-name-value($x as element()) as xs:string? {\n  let $name := name($x)\n  let $first-in-array :=\n    count($x/preceding-sibling::*[name(.) = $name]) = 0 and\n    (count($x/following-sibling::*[name(.) = $name]) &gt; 0 or $x/@array = &quot;true&quot;)\n  let $later-in-array := count($x/preceding-sibling::*[name(.) = $name]) &gt; 0\n  return\n\n  if ($later-in-array) then\n    ()  (: I was handled previously :)\n  else if ($first-in-array) then\n    string-join(('&quot;', json:escape($name), '&quot;:[',\n      string-join((for $i in ($x, $x/following-sibling::*[name(.) = $name]) return json:print-value($i)), &quot;,&quot;),\n    ']'), &quot;&quot;)\n   else\n     string-join(('&quot;', json:escape($name), '&quot;:', json:print-value($x)), &quot;&quot;)\n};\n\n(:~\n  Transforms an XML element into a JSON string representation.  See http://json.org.\n  &lt;p/&gt;\n  Sample usage:\n  &lt;pre&gt;\n    xquery version &quot;1.0-ml&quot;;\n    import module namespace json=&quot;http://marklogic.com/json&quot; at &quot;json.xqy&quot;;\n    json:serialize(&amp;lt;foo&amp;gt;&amp;lt;bar&amp;gt;kid&amp;lt;/bar&amp;gt;&amp;lt;/foo&amp;gt;)\n  &lt;/pre&gt;\n  Sample transformations:\n  &lt;pre&gt;\n  &amp;lt;e/&amp;gt; becomes {&quot;e&quot;:null}\n  &amp;lt;e&amp;gt;text&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;text&quot;}\n  &amp;lt;e&amp;gt;quote &quot; escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;quote \\&quot; escaping&quot;}\n  &amp;lt;e&amp;gt;backslash \\ escaping&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;backslash \\\\ escaping&quot;}\n  &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;text2&amp;lt;/b&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:&quot;text1&quot;,&quot;b&quot;:&quot;text2&quot;}}\n  &amp;lt;e&amp;gt;&amp;lt;a&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;a&amp;gt;text2&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;,&quot;text2&quot;]}}\n  &amp;lt;e&amp;gt;&amp;lt;a array=&quot;true&quot;&amp;gt;text1&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:[&quot;text1&quot;]}}\n  &amp;lt;e&amp;gt;&amp;lt;a type=&quot;boolean&quot;&amp;gt;false&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:false}}\n  &amp;lt;e&amp;gt;&amp;lt;a type=&quot;number&quot;&amp;gt;123.5&amp;lt;/a&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:{&quot;a&quot;:123.5}}\n  &amp;lt;e quote=&quot;true&quot;&amp;gt;&amp;lt;div attrib=&quot;value&quot;/&amp;gt;&amp;lt;/e&amp;gt; becomes {&quot;e&quot;:&quot;&amp;lt;div attrib=\\&quot;value\\&quot;/&amp;gt;&quot;}\n  &lt;/pre&gt;\n  &lt;p/&gt;\n  Namespace URIs are ignored.  Namespace prefixes are included in the JSON name.\n  &lt;p/&gt;\n  Attributes are ignored, except for the special attribute @array=&quot;true&quot; that\n  indicates the JSON serialization should write the node, even if single, as an\n  array, and the attribute @type that can be set to &quot;boolean&quot; or &quot;number&quot; to\n  dictate the value should be written as that type (unquoted).  There's also\n  an @quote attribute that when set to true writes the inner content as text\n  rather than as structured JSON, useful for sending some XHTML over the\n  wire.\n  &lt;p/&gt;\n  Text nodes within mixed content are ignored.\n\n  @param $x Element node to convert\n  @return String holding JSON serialized representation of $x\n\n  @author Jason Hunter\n  @version 1.0.1\n  \n  Ported to xquery 1.0-ml; double escaped backslashes in json:escape\n:)\ndeclare function json:serialize($x as element())  as xs:string {\n  string-join(('{', json:print-name-value($x), '}'), &quot;&quot;)\n};\n  </textarea> \n</div> \n \n    <script> \n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true,\n        matchBrackets: true,\n        theme: \"xq-dark\"\n      });\n    </script> \n \n    <p><strong>MIME types defined:</strong> <code>application/xquery</code>.</p> \n \n    <p>Development of the CodeMirror XQuery mode was sponsored by \n      <a href=\"http://marklogic.com\">MarkLogic</a> and developed by \n      <a href=\"https://twitter.com/mbrevoort\">Mike Brevoort</a>.\n    </p>\n \n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xquery/test.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n// Don't take these too seriously -- the expected results appear to be\n// based on the results of actual runs without any serious manual\n// verification. If a change you made causes them to fail, the test is\n// as likely to wrong as the code.\n\n(function() {\n  var mode = CodeMirror.getMode({tabSize: 4}, \"xquery\");\n  function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }\n\n  MT(\"eviltest\",\n     \"[keyword xquery] [keyword version] [variable &quot;1][keyword .][atom 0][keyword -][variable ml&quot;][def&variable ;]      [comment (: this is       : a          \\\"comment\\\" :)]\",\n     \"      [keyword let] [variable $let] [keyword :=] [variable &lt;x] [variable attr][keyword =][variable &quot;value&quot;&gt;&quot;test&quot;&lt;func&gt][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable &lt;][keyword /][variable func&gt;&lt;][keyword /][variable x&gt;]\",\n     \"      [keyword let] [variable $joe][keyword :=][atom 1]\",\n     \"      [keyword return] [keyword element] [variable element] {\",\n     \"          [keyword attribute] [variable attribute] { [atom 1] },\",\n     \"          [keyword element] [variable test] { [variable &#39;a&#39;] },           [keyword attribute] [variable foo] { [variable &quot;bar&quot;] },\",\n     \"          [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],\",\n     \"          [keyword //][variable x] }                 [comment (: a more 'evil' test :)]\",\n     \"      [comment (: Modified Blakeley example (: with nested comment :) ... :)]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]\",\n     \"      [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]\",\n     \"      [keyword let] [variable $let] [keyword :=] [variable &lt;let&gt;let] [variable $let] [keyword :=] [variable &quot;let&quot;&lt;][keyword /let][variable &gt;]\",\n     \"      [keyword return] [keyword element] [variable element] {\",\n     \"          [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },\",\n     \"          [keyword attribute] [variable fn:doc] { [variable &quot;bar&quot;] [variable castable] [keyword as] [atom xs:string] },\",\n     \"          [keyword element] [variable text] { [keyword text] { [variable &quot;text&quot;] } },\",\n     \"          [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],\",\n     \"          [keyword //][variable fn:doc]\",\n     \"      }\");\n\n  MT(\"testEmptySequenceKeyword\",\n     \"[string \\\"foo\\\"] [keyword instance] [keyword of] [keyword empty-sequence]()\");\n\n  MT(\"testMultiAttr\",\n     \"[tag <p ][attribute a1]=[string \\\"foo\\\"] [attribute a2]=[string \\\"bar\\\"][tag >][variable hello] [variable world][tag </p>]\");\n\n  MT(\"test namespaced variable\",\n     \"[keyword declare] [keyword namespace] [variable e] [keyword =] [string \\\"http://example.com/ANamespace\\\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]\");\n\n  MT(\"test EQName variable\",\n     \"[keyword declare] [keyword variable] [variable $\\\"http://www.example.com/ns/my\\\":var] [keyword :=] [atom 12][variable ;]\",\n     \"[tag <out>]{[variable $\\\"http://www.example.com/ns/my\\\":var]}[tag </out>]\");\n\n  MT(\"test EQName function\",\n     \"[keyword declare] [keyword function] [def&variable \\\"http://www.example.com/ns/my\\\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {\",\n     \"   [variable $a] [keyword +] [atom 2]\",\n     \"}[variable ;]\",\n     \"[tag <out>]{[def&variable \\\"http://www.example.com/ns/my\\\":fn]([atom 12])}[tag </out>]\");\n\n  MT(\"test EQName function with single quotes\",\n     \"[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {\",\n     \"   [variable $a] [keyword +] [atom 2]\",\n     \"}[variable ;]\",\n     \"[tag <out>]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag </out>]\");\n\n  MT(\"testProcessingInstructions\",\n     \"[def&variable data]([comment&meta <?target content?>]) [keyword instance] [keyword of] [atom xs:string]\");\n\n  MT(\"testQuoteEscapeDouble\",\n     \"[keyword let] [variable $rootfolder] [keyword :=] [string \\\"c:\\\\builds\\\\winnt\\\\HEAD\\\\qa\\\\scripts\\\\\\\"]\",\n     \"[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \\\"keys\\\\\\\"])\");\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/xquery/xquery.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"xquery\", function() {\n\n  // The keywords object is set to the result of this self executing\n  // function. Each keyword is a property of the keywords object whose\n  // value is {type: atype, style: astyle}\n  var keywords = function(){\n    // conveinence functions used to build keywords object\n    function kw(type) {return {type: type, style: \"keyword\"};}\n    var A = kw(\"keyword a\")\n      , B = kw(\"keyword b\")\n      , C = kw(\"keyword c\")\n      , operator = kw(\"operator\")\n      , atom = {type: \"atom\", style: \"atom\"}\n      , punctuation = {type: \"punctuation\", style: null}\n      , qualifier = {type: \"axis_specifier\", style: \"qualifier\"};\n\n    // kwObj is what is return from this function at the end\n    var kwObj = {\n      'if': A, 'switch': A, 'while': A, 'for': A,\n      'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B,\n      'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C,\n      'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C,\n      ',': punctuation,\n      'null': atom, 'fn:false()': atom, 'fn:true()': atom\n    };\n\n    // a list of 'basic' keywords. For each add a property to kwObj with the value of\n    // {type: basic[i], style: \"keyword\"} e.g. 'after' --> {type: \"after\", style: \"keyword\"}\n    var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before',\n    'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self',\n    'descending','document','document-node','element','else','eq','every','except','external','following',\n    'following-sibling','follows','for','function','if','import','in','instance','intersect','item',\n    'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding',\n    'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element',\n    'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where',\n    'xquery', 'empty-sequence'];\n    for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);};\n\n    // a list of types. For each add a property to kwObj with the value of\n    // {type: \"atom\", style: \"atom\"}\n    var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime',\n    'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary',\n    'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration'];\n    for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;};\n\n    // each operator will add a property to kwObj with value of {type: \"operator\", style: \"keyword\"}\n    var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-'];\n    for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;};\n\n    // each axis_specifiers will add a property to kwObj with value of {type: \"axis_specifier\", style: \"qualifier\"}\n    var axis_specifiers = [\"self::\", \"attribute::\", \"child::\", \"descendant::\", \"descendant-or-self::\", \"parent::\",\n    \"ancestor::\", \"ancestor-or-self::\", \"following::\", \"preceding::\", \"following-sibling::\", \"preceding-sibling::\"];\n    for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; };\n\n    return kwObj;\n  }();\n\n  // Used as scratch variables to communicate multiple values without\n  // consing up tons of objects.\n  var type, content;\n\n  function ret(tp, style, cont) {\n    type = tp; content = cont;\n    return style;\n  }\n\n  function chain(stream, state, f) {\n    state.tokenize = f;\n    return f(stream, state);\n  }\n\n  // the primary mode tokenizer\n  function tokenBase(stream, state) {\n    var ch = stream.next(),\n        mightBeFunction = false,\n        isEQName = isEQNameAhead(stream);\n\n    // an XML tag (if not in some sub, chained tokenizer)\n    if (ch == \"<\") {\n      if(stream.match(\"!--\", true))\n        return chain(stream, state, tokenXMLComment);\n\n      if(stream.match(\"![CDATA\", false)) {\n        state.tokenize = tokenCDATA;\n        return ret(\"tag\", \"tag\");\n      }\n\n      if(stream.match(\"?\", false)) {\n        return chain(stream, state, tokenPreProcessing);\n      }\n\n      var isclose = stream.eat(\"/\");\n      stream.eatSpace();\n      var tagName = \"\", c;\n      while ((c = stream.eat(/[^\\s\\u00a0=<>\\\"\\'\\/?]/))) tagName += c;\n\n      return chain(stream, state, tokenTag(tagName, isclose));\n    }\n    // start code block\n    else if(ch == \"{\") {\n      pushStateStack(state,{ type: \"codeblock\"});\n      return ret(\"\", null);\n    }\n    // end code block\n    else if(ch == \"}\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    // if we're in an XML block\n    else if(isInXmlBlock(state)) {\n      if(ch == \">\")\n        return ret(\"tag\", \"tag\");\n      else if(ch == \"/\" && stream.eat(\">\")) {\n        popStateStack(state);\n        return ret(\"tag\", \"tag\");\n      }\n      else\n        return ret(\"word\", \"variable\");\n    }\n    // if a number\n    else if (/\\d/.test(ch)) {\n      stream.match(/^\\d*(?:\\.\\d*)?(?:E[+\\-]?\\d+)?/);\n      return ret(\"number\", \"atom\");\n    }\n    // comment start\n    else if (ch === \"(\" && stream.eat(\":\")) {\n      pushStateStack(state, { type: \"comment\"});\n      return chain(stream, state, tokenComment);\n    }\n    // quoted string\n    else if (  !isEQName && (ch === '\"' || ch === \"'\"))\n      return chain(stream, state, tokenString(ch));\n    // variable\n    else if(ch === \"$\") {\n      return chain(stream, state, tokenVariable);\n    }\n    // assignment\n    else if(ch ===\":\" && stream.eat(\"=\")) {\n      return ret(\"operator\", \"keyword\");\n    }\n    // open paren\n    else if(ch === \"(\") {\n      pushStateStack(state, { type: \"paren\"});\n      return ret(\"\", null);\n    }\n    // close paren\n    else if(ch === \")\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    // open paren\n    else if(ch === \"[\") {\n      pushStateStack(state, { type: \"bracket\"});\n      return ret(\"\", null);\n    }\n    // close paren\n    else if(ch === \"]\") {\n      popStateStack(state);\n      return ret(\"\", null);\n    }\n    else {\n      var known = keywords.propertyIsEnumerable(ch) && keywords[ch];\n\n      // if there's a EQName ahead, consume the rest of the string portion, it's likely a function\n      if(isEQName && ch === '\\\"') while(stream.next() !== '\"'){}\n      if(isEQName && ch === '\\'') while(stream.next() !== '\\''){}\n\n      // gobble up a word if the character is not known\n      if(!known) stream.eatWhile(/[\\w\\$_-]/);\n\n      // gobble a colon in the case that is a lib func type call fn:doc\n      var foundColon = stream.eat(\":\");\n\n      // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier\n      // which should get matched as a keyword\n      if(!stream.eat(\":\") && foundColon) {\n        stream.eatWhile(/[\\w\\$_-]/);\n      }\n      // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort)\n      if(stream.match(/^[ \\t]*\\(/, false)) {\n        mightBeFunction = true;\n      }\n      // is the word a keyword?\n      var word = stream.current();\n      known = keywords.propertyIsEnumerable(word) && keywords[word];\n\n      // if we think it's a function call but not yet known,\n      // set style to variable for now for lack of something better\n      if(mightBeFunction && !known) known = {type: \"function_call\", style: \"variable def\"};\n\n      // if the previous word was element, attribute, axis specifier, this word should be the name of that\n      if(isInXmlConstructor(state)) {\n        popStateStack(state);\n        return ret(\"word\", \"variable\", word);\n      }\n      // as previously checked, if the word is element,attribute, axis specifier, call it an \"xmlconstructor\" and\n      // push the stack so we know to look for it on the next word\n      if(word == \"element\" || word == \"attribute\" || known.type == \"axis_specifier\") pushStateStack(state, {type: \"xmlconstructor\"});\n\n      // if the word is known, return the details of that else just call this a generic 'word'\n      return known ? ret(known.type, known.style, word) :\n                     ret(\"word\", \"variable\", word);\n    }\n  }\n\n  // handle comments, including nested\n  function tokenComment(stream, state) {\n    var maybeEnd = false, maybeNested = false, nestedCount = 0, ch;\n    while (ch = stream.next()) {\n      if (ch == \")\" && maybeEnd) {\n        if(nestedCount > 0)\n          nestedCount--;\n        else {\n          popStateStack(state);\n          break;\n        }\n      }\n      else if(ch == \":\" && maybeNested) {\n        nestedCount++;\n      }\n      maybeEnd = (ch == \":\");\n      maybeNested = (ch == \"(\");\n    }\n\n    return ret(\"comment\", \"comment\");\n  }\n\n  // tokenizer for string literals\n  // optionally pass a tokenizer function to set state.tokenize back to when finished\n  function tokenString(quote, f) {\n    return function(stream, state) {\n      var ch;\n\n      if(isInString(state) && stream.current() == quote) {\n        popStateStack(state);\n        if(f) state.tokenize = f;\n        return ret(\"string\", \"string\");\n      }\n\n      pushStateStack(state, { type: \"string\", name: quote, tokenize: tokenString(quote, f) });\n\n      // if we're in a string and in an XML block, allow an embedded code block\n      if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n        state.tokenize = tokenBase;\n        return ret(\"string\", \"string\");\n      }\n\n\n      while (ch = stream.next()) {\n        if (ch ==  quote) {\n          popStateStack(state);\n          if(f) state.tokenize = f;\n          break;\n        }\n        else {\n          // if we're in a string and in an XML block, allow an embedded code block in an attribute\n          if(stream.match(\"{\", false) && isInXmlAttributeBlock(state)) {\n            state.tokenize = tokenBase;\n            return ret(\"string\", \"string\");\n          }\n\n        }\n      }\n\n      return ret(\"string\", \"string\");\n    };\n  }\n\n  // tokenizer for variables\n  function tokenVariable(stream, state) {\n    var isVariableChar = /[\\w\\$_-]/;\n\n    // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote\n    if(stream.eat(\"\\\"\")) {\n      while(stream.next() !== '\\\"'){};\n      stream.eat(\":\");\n    } else {\n      stream.eatWhile(isVariableChar);\n      if(!stream.match(\":=\", false)) stream.eat(\":\");\n    }\n    stream.eatWhile(isVariableChar);\n    state.tokenize = tokenBase;\n    return ret(\"variable\", \"variable\");\n  }\n\n  // tokenizer for XML tags\n  function tokenTag(name, isclose) {\n    return function(stream, state) {\n      stream.eatSpace();\n      if(isclose && stream.eat(\">\")) {\n        popStateStack(state);\n        state.tokenize = tokenBase;\n        return ret(\"tag\", \"tag\");\n      }\n      // self closing tag without attributes?\n      if(!stream.eat(\"/\"))\n        pushStateStack(state, { type: \"tag\", name: name, tokenize: tokenBase});\n      if(!stream.eat(\">\")) {\n        state.tokenize = tokenAttribute;\n        return ret(\"tag\", \"tag\");\n      }\n      else {\n        state.tokenize = tokenBase;\n      }\n      return ret(\"tag\", \"tag\");\n    };\n  }\n\n  // tokenizer for XML attributes\n  function tokenAttribute(stream, state) {\n    var ch = stream.next();\n\n    if(ch == \"/\" && stream.eat(\">\")) {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      if(isInXmlBlock(state)) popStateStack(state);\n      return ret(\"tag\", \"tag\");\n    }\n    if(ch == \">\") {\n      if(isInXmlAttributeBlock(state)) popStateStack(state);\n      return ret(\"tag\", \"tag\");\n    }\n    if(ch == \"=\")\n      return ret(\"\", null);\n    // quoted string\n    if (ch == '\"' || ch == \"'\")\n      return chain(stream, state, tokenString(ch, tokenAttribute));\n\n    if(!isInXmlAttributeBlock(state))\n      pushStateStack(state, { type: \"attribute\", tokenize: tokenAttribute});\n\n    stream.eat(/[a-zA-Z_:]/);\n    stream.eatWhile(/[-a-zA-Z0-9_:.]/);\n    stream.eatSpace();\n\n    // the case where the attribute has not value and the tag was closed\n    if(stream.match(\">\", false) || stream.match(\"/\", false)) {\n      popStateStack(state);\n      state.tokenize = tokenBase;\n    }\n\n    return ret(\"attribute\", \"attribute\");\n  }\n\n  // handle comments, including nested\n  function tokenXMLComment(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"-\" && stream.match(\"->\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment\");\n      }\n    }\n  }\n\n\n  // handle CDATA\n  function tokenCDATA(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"]\" && stream.match(\"]\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment\");\n      }\n    }\n  }\n\n  // handle preprocessing instructions\n  function tokenPreProcessing(stream, state) {\n    var ch;\n    while (ch = stream.next()) {\n      if (ch == \"?\" && stream.match(\">\", true)) {\n        state.tokenize = tokenBase;\n        return ret(\"comment\", \"comment meta\");\n      }\n    }\n  }\n\n\n  // functions to test the current context of the state\n  function isInXmlBlock(state) { return isIn(state, \"tag\"); }\n  function isInXmlAttributeBlock(state) { return isIn(state, \"attribute\"); }\n  function isInXmlConstructor(state) { return isIn(state, \"xmlconstructor\"); }\n  function isInString(state) { return isIn(state, \"string\"); }\n\n  function isEQNameAhead(stream) {\n    // assume we've already eaten a quote (\")\n    if(stream.current() === '\"')\n      return stream.match(/^[^\\\"]+\\\"\\:/, false);\n    else if(stream.current() === '\\'')\n      return stream.match(/^[^\\\"]+\\'\\:/, false);\n    else\n      return false;\n  }\n\n  function isIn(state, type) {\n    return (state.stack.length && state.stack[state.stack.length - 1].type == type);\n  }\n\n  function pushStateStack(state, newState) {\n    state.stack.push(newState);\n  }\n\n  function popStateStack(state) {\n    state.stack.pop();\n    var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize;\n    state.tokenize = reinstateTokenize || tokenBase;\n  }\n\n  // the interface for the mode API\n  return {\n    startState: function() {\n      return {\n        tokenize: tokenBase,\n        cc: [],\n        stack: []\n      };\n    },\n\n    token: function(stream, state) {\n      if (stream.eatSpace()) return null;\n      var style = state.tokenize(stream, state);\n      return style;\n    },\n\n    blockCommentStart: \"(:\",\n    blockCommentEnd: \":)\"\n\n  };\n\n});\n\nCodeMirror.defineMIME(\"application/xquery\", \"xquery\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/yaml/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: YAML mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"yaml.js\"></script>\n<style>.CodeMirror { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">YAML</a>\n  </ul>\n</div>\n\n<article>\n<h2>YAML mode</h2>\n<form><textarea id=\"code\" name=\"code\">\n--- # Favorite movies\n- Casablanca\n- North by Northwest\n- The Man Who Wasn't There\n--- # Shopping list\n[milk, pumpkin pie, eggs, juice]\n--- # Indented Blocks, common in YAML data files, use indentation and new lines to separate the key: value pairs\n  name: John Smith\n  age: 33\n--- # Inline Blocks, common in YAML data streams, use commas to separate the key: value pairs between braces\n{name: John Smith, age: 33}\n---\nreceipt:     Oz-Ware Purchase Invoice\ndate:        2007-08-06\ncustomer:\n    given:   Dorothy\n    family:  Gale\n\nitems:\n    - part_no:   A4786\n      descrip:   Water Bucket (Filled)\n      price:     1.47\n      quantity:  4\n\n    - part_no:   E1628\n      descrip:   High Heeled \"Ruby\" Slippers\n      size:       8\n      price:     100.27\n      quantity:  1\n\nbill-to:  &id001\n    street: |\n            123 Tornado Alley\n            Suite 16\n    city:   East Centerville\n    state:  KS\n\nship-to:  *id001\n\nspecialDelivery:  >\n    Follow the Yellow Brick\n    Road to the Emerald City.\n    Pay no attention to the\n    man behind the curtain.\n...\n</textarea></form>\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {});\n    </script>\n\n    <p><strong>MIME types defined:</strong> <code>text/x-yaml</code>.</p>\n\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/yaml/yaml.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"yaml\", function() {\n\n  var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];\n  var keywordRegex = new RegExp(\"\\\\b((\"+cons.join(\")|(\")+\"))$\", 'i');\n\n  return {\n    token: function(stream, state) {\n      var ch = stream.peek();\n      var esc = state.escaped;\n      state.escaped = false;\n      /* comments */\n      if (ch == \"#\" && (stream.pos == 0 || /\\s/.test(stream.string.charAt(stream.pos - 1)))) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n\n      if (stream.match(/^('([^']|\\\\.)*'?|\"([^\"]|\\\\.)*\"?)/))\n        return \"string\";\n\n      if (state.literal && stream.indentation() > state.keyCol) {\n        stream.skipToEnd(); return \"string\";\n      } else if (state.literal) { state.literal = false; }\n      if (stream.sol()) {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        /* document start */\n        if(stream.match(/---/)) { return \"def\"; }\n        /* document end */\n        if (stream.match(/\\.\\.\\./)) { return \"def\"; }\n        /* array list item */\n        if (stream.match(/\\s*-\\s+/)) { return 'meta'; }\n      }\n      /* inline pairs/lists */\n      if (stream.match(/^(\\{|\\}|\\[|\\])/)) {\n        if (ch == '{')\n          state.inlinePairs++;\n        else if (ch == '}')\n          state.inlinePairs--;\n        else if (ch == '[')\n          state.inlineList++;\n        else\n          state.inlineList--;\n        return 'meta';\n      }\n\n      /* list seperator */\n      if (state.inlineList > 0 && !esc && ch == ',') {\n        stream.next();\n        return 'meta';\n      }\n      /* pairs seperator */\n      if (state.inlinePairs > 0 && !esc && ch == ',') {\n        state.keyCol = 0;\n        state.pair = false;\n        state.pairStart = false;\n        stream.next();\n        return 'meta';\n      }\n\n      /* start of value of a pair */\n      if (state.pairStart) {\n        /* block literals */\n        if (stream.match(/^\\s*(\\||\\>)\\s*/)) { state.literal = true; return 'meta'; };\n        /* references */\n        if (stream.match(/^\\s*(\\&|\\*)[a-z0-9\\._-]+\\b/i)) { return 'variable-2'; }\n        /* numbers */\n        if (state.inlinePairs == 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?$/)) { return 'number'; }\n        if (state.inlinePairs > 0 && stream.match(/^\\s*-?[0-9\\.\\,]+\\s?(?=(,|}))/)) { return 'number'; }\n        /* keywords */\n        if (stream.match(keywordRegex)) { return 'keyword'; }\n      }\n\n      /* pairs (associative arrays) -> key */\n      if (!state.pair && stream.match(/^\\s*(?:[,\\[\\]{}&*!|>'\"%@`][^\\s'\":]|[^,\\[\\]{}#&*!|>'\"%@`])[^#]*?(?=\\s*:($|\\s))/)) {\n        state.pair = true;\n        state.keyCol = stream.indentation();\n        return \"atom\";\n      }\n      if (state.pair && stream.match(/^:\\s*/)) { state.pairStart = true; return 'meta'; }\n\n      /* nothing found, continue */\n      state.pairStart = false;\n      state.escaped = (ch == '\\\\');\n      stream.next();\n      return null;\n    },\n    startState: function() {\n      return {\n        pair: false,\n        pairStart: false,\n        keyCol: 0,\n        inlinePairs: 0,\n        inlineList: 0,\n        literal: false,\n        escaped: false\n      };\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-yaml\", \"yaml\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/z80/index.html",
    "content": "<!doctype html>\n\n<title>CodeMirror: Z80 assembly mode</title>\n<meta charset=\"utf-8\"/>\n<link rel=stylesheet href=\"../../doc/docs.css\">\n\n<link rel=\"stylesheet\" href=\"../../lib/codemirror.css\">\n<script src=\"../../lib/codemirror.js\"></script>\n<script src=\"z80.js\"></script>\n<style type=\"text/css\">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>\n<div id=nav>\n  <a href=\"http://codemirror.net\"><h1>CodeMirror</h1><img id=logo src=\"../../doc/logo.png\"></a>\n\n  <ul>\n    <li><a href=\"../../index.html\">Home</a>\n    <li><a href=\"../../doc/manual.html\">Manual</a>\n    <li><a href=\"https://github.com/codemirror/codemirror\">Code</a>\n  </ul>\n  <ul>\n    <li><a href=\"../index.html\">Language modes</a>\n    <li><a class=active href=\"#\">Z80 assembly</a>\n  </ul>\n</div>\n\n<article>\n<h2>Z80 assembly mode</h2>\n\n\n<div><textarea id=\"code\" name=\"code\">\n#include    \"ti83plus.inc\"\n#define     progStart   $9D95\n.org        progStart-2\n.db         $BB,$6D\n    bcall(_ClrLCDFull)\n    ld  HL, 0\n    ld  (PenCol),   HL\n    ld  HL, Message\n    bcall(_PutS) ; Displays the string\n    bcall(_NewLine)\n    ret\nMessage:\n.db         \"Hello world!\",0\n</textarea></div>\n\n    <script>\n      var editor = CodeMirror.fromTextArea(document.getElementById(\"code\"), {\n        lineNumbers: true\n      });\n    </script>\n\n    <p><strong>MIME type defined:</strong> <code>text/x-z80</code>.</p>\n  </article>\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/mode/z80/z80.js",
    "content": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('z80', function() {\n  var keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\\b/i;\n  var keywords2 = /^(call|j[pr]|ret[in]?)\\b/i;\n  var keywords3 = /^b_?(call|jump)\\b/i;\n  var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\\b/i;\n  var variables2 = /^(n?[zc]|p[oe]?|m)\\b/i;\n  var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\\b/i;\n  var numbers = /^([\\da-f]+h|[0-7]+o|[01]+b|\\d+)\\b/i;\n\n  return {\n    startState: function() {\n      return {context: 0};\n    },\n    token: function(stream, state) {\n      if (!stream.column())\n        state.context = 0;\n\n      if (stream.eatSpace())\n        return null;\n\n      var w;\n\n      if (stream.eatWhile(/\\w/)) {\n        w = stream.current();\n\n        if (stream.indentation()) {\n          if (state.context == 1 && variables1.test(w))\n            return 'variable-2';\n\n          if (state.context == 2 && variables2.test(w))\n            return 'variable-3';\n\n          if (keywords1.test(w)) {\n            state.context = 1;\n            return 'keyword';\n          } else if (keywords2.test(w)) {\n            state.context = 2;\n            return 'keyword';\n          } else if (keywords3.test(w)) {\n            state.context = 3;\n            return 'keyword';\n          }\n\n          if (errors.test(w))\n            return 'error';\n        } else if (numbers.test(w)) {\n          return 'number';\n        } else {\n          return null;\n        }\n      } else if (stream.eat(';')) {\n        stream.skipToEnd();\n        return 'comment';\n      } else if (stream.eat('\"')) {\n        while (w = stream.next()) {\n          if (w == '\"')\n            break;\n\n          if (w == '\\\\')\n            stream.next();\n        }\n        return 'string';\n      } else if (stream.eat('\\'')) {\n        if (stream.match(/\\\\?.'/))\n          return 'number';\n      } else if (stream.eat('.') || stream.sol() && stream.eat('#')) {\n        state.context = 4;\n\n        if (stream.eatWhile(/\\w/))\n          return 'def';\n      } else if (stream.eat('$')) {\n        if (stream.eatWhile(/[\\da-f]/i))\n          return 'number';\n      } else if (stream.eat('%')) {\n        if (stream.eatWhile(/[01]/))\n          return 'number';\n      } else {\n        stream.next();\n      }\n      return null;\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/x-z80\", \"z80\");\n\n});\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/package.json",
    "content": "{\n    \"name\": \"codemirror\",\n    \"version\":\"5.0.0\",\n    \"main\": \"lib/codemirror.js\",\n    \"description\": \"In-browser code editing made bearable\",\n    \"licenses\": [{\"type\": \"MIT\",\n                  \"url\": \"http://codemirror.net/LICENSE\"}],\n    \"directories\": {\"lib\": \"./lib\"},\n    \"scripts\": {\"test\": \"node ./test/run.js\"},\n    \"devDependencies\": {\"node-static\": \"0.6.0\",\n                        \"phantomjs\": \"1.9.2-5\",\n                        \"blint\": \">=0.1.1\"},\n    \"bugs\": \"http://github.com/codemirror/CodeMirror/issues\",\n    \"keywords\": [\"JavaScript\", \"CodeMirror\", \"Editor\"],\n    \"homepage\": \"http://codemirror.net\",\n    \"maintainers\":[{\"name\": \"Marijn Haverbeke\",\n                    \"email\": \"marijnh@gmail.com\",\n                    \"web\": \"http://marijnhaverbeke.nl\"}],\n    \"repository\": {\"type\": \"git\",\n                   \"url\": \"https://github.com/codemirror/CodeMirror.git\"}\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/3024-day.css",
    "content": "/*\n\n    Name:       3024 day\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;}\n.cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;}\n.cm-s-3024-day.CodeMirror ::selection { background: #d6d5d4; }\n.cm-s-3024-day.CodeMirror ::-moz-selection { background: #d9d9d9; }\n\n.cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;}\n.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }\n.cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;}\n\n.cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;}\n\n.cm-s-3024-day span.cm-comment {color: #cdab53;}\n.cm-s-3024-day span.cm-atom {color: #a16a94;}\n.cm-s-3024-day span.cm-number {color: #a16a94;}\n\n.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;}\n.cm-s-3024-day span.cm-keyword {color: #db2d20;}\n.cm-s-3024-day span.cm-string {color: #fded02;}\n\n.cm-s-3024-day span.cm-variable {color: #01a252;}\n.cm-s-3024-day span.cm-variable-2 {color: #01a0e4;}\n.cm-s-3024-day span.cm-def {color: #e8bbd0;}\n.cm-s-3024-day span.cm-bracket {color: #3a3432;}\n.cm-s-3024-day span.cm-tag {color: #db2d20;}\n.cm-s-3024-day span.cm-link {color: #a16a94;}\n.cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;}\n\n.cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/3024-night.css",
    "content": "/*\n\n    Name:       3024 night\n    Author:     Jan T. Sott (http://github.com/idleberg)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;}\n.cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;}\n.cm-s-3024-night.CodeMirror ::selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night.CodeMirror ::-moz-selection { background: rgba(58, 52, 50, .99); }\n.cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;}\n.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }\n.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }\n.cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;}\n\n.cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;}\n\n.cm-s-3024-night span.cm-comment {color: #cdab53;}\n.cm-s-3024-night span.cm-atom {color: #a16a94;}\n.cm-s-3024-night span.cm-number {color: #a16a94;}\n\n.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;}\n.cm-s-3024-night span.cm-keyword {color: #db2d20;}\n.cm-s-3024-night span.cm-string {color: #fded02;}\n\n.cm-s-3024-night span.cm-variable {color: #01a252;}\n.cm-s-3024-night span.cm-variable-2 {color: #01a0e4;}\n.cm-s-3024-night span.cm-def {color: #e8bbd0;}\n.cm-s-3024-night span.cm-bracket {color: #d6d5d4;}\n.cm-s-3024-night span.cm-tag {color: #db2d20;}\n.cm-s-3024-night span.cm-link {color: #a16a94;}\n.cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;}\n\n.cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;}\n.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/ambiance-mobile.css",
    "content": ".cm-s-ambiance.CodeMirror {\n  -webkit-box-shadow: none;\n  -moz-box-shadow: none;\n  box-shadow: none;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/ambiance.css",
    "content": "/* ambiance theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-ambiance .cm-keyword { color: #cda869; }\n.cm-s-ambiance .cm-atom { color: #CF7EA9; }\n.cm-s-ambiance .cm-number { color: #78CF8A; }\n.cm-s-ambiance .cm-def { color: #aac6e3; }\n.cm-s-ambiance .cm-variable { color: #ffb795; }\n.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }\n.cm-s-ambiance .cm-variable-3 { color: #faded3; }\n.cm-s-ambiance .cm-property { color: #eed1b3; }\n.cm-s-ambiance .cm-operator {color: #fa8d6a;}\n.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }\n.cm-s-ambiance .cm-string { color: #8f9d6a; }\n.cm-s-ambiance .cm-string-2 { color: #9d937c; }\n.cm-s-ambiance .cm-meta { color: #D2A8A1; }\n.cm-s-ambiance .cm-qualifier { color: yellow; }\n.cm-s-ambiance .cm-builtin { color: #9999cc; }\n.cm-s-ambiance .cm-bracket { color: #24C2C7; }\n.cm-s-ambiance .cm-tag { color: #fee4ff }\n.cm-s-ambiance .cm-attribute {  color: #9B859D; }\n.cm-s-ambiance .cm-header {color: blue;}\n.cm-s-ambiance .cm-quote { color: #24C2C7; }\n.cm-s-ambiance .cm-hr { color: pink; }\n.cm-s-ambiance .cm-link { color: #F4C20B; }\n.cm-s-ambiance .cm-special { color: #FF9D00; }\n.cm-s-ambiance .cm-error { color: #AF2018; }\n\n.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }\n.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }\n\n.cm-s-ambiance .CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }\n.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance.CodeMirror ::selection { background: rgba(255, 255, 255, 0.10); }\n.cm-s-ambiance.CodeMirror ::-moz-selection { background: rgba(255, 255, 255, 0.10); }\n\n/* Editor styling */\n\n.cm-s-ambiance.CodeMirror {\n  line-height: 1.40em;\n  color: #E6E1DC;\n  background-color: #202020;\n  -webkit-box-shadow: inset 0 0 10px black;\n  -moz-box-shadow: inset 0 0 10px black;\n  box-shadow: inset 0 0 10px black;\n}\n\n.cm-s-ambiance .CodeMirror-gutters {\n  background: #3D3D3D;\n  border-right: 1px solid #4D4D4D;\n  box-shadow: 0 10px 20px black;\n}\n\n.cm-s-ambiance .CodeMirror-linenumber {\n  text-shadow: 0px 1px 1px #4d4d4d;\n  color: #111;\n  padding: 0 5px;\n}\n\n.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }\n.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }\n\n.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor {\n  border-left: 1px solid #7991E8;\n}\n\n.cm-s-ambiance .CodeMirror-activeline-background {\n  background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);\n}\n\n.cm-s-ambiance.CodeMirror,\n.cm-s-ambiance .CodeMirror-gutters {\n  background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/base16-dark.css",
    "content": "/*\n\n    Name:       Base16 Default Dark\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;}\n.cm-s-base16-dark div.CodeMirror-selected {background: #303030 !important;}\n.cm-s-base16-dark.CodeMirror ::selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark.CodeMirror ::-moz-selection { background: rgba(48, 48, 48, .99); }\n.cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;}\n.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }\n.cm-s-base16-dark .CodeMirror-linenumber {color: #505050;}\n.cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;}\n\n.cm-s-base16-dark span.cm-comment {color: #8f5536;}\n.cm-s-base16-dark span.cm-atom {color: #aa759f;}\n.cm-s-base16-dark span.cm-number {color: #aa759f;}\n\n.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;}\n.cm-s-base16-dark span.cm-keyword {color: #ac4142;}\n.cm-s-base16-dark span.cm-string {color: #f4bf75;}\n\n.cm-s-base16-dark span.cm-variable {color: #90a959;}\n.cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;}\n.cm-s-base16-dark span.cm-def {color: #d28445;}\n.cm-s-base16-dark span.cm-bracket {color: #e0e0e0;}\n.cm-s-base16-dark span.cm-tag {color: #ac4142;}\n.cm-s-base16-dark span.cm-link {color: #aa759f;}\n.cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;}\n\n.cm-s-base16-dark .CodeMirror-activeline-background {background: #202020 !important;}\n.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/base16-light.css",
    "content": "/*\n\n    Name:       Base16 Default Light\n    Author:     Chris Kempson (http://chriskempson.com)\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;}\n.cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;}\n.cm-s-base16-light.CodeMirror ::selection { background: #e0e0e0; }\n.cm-s-base16-light.CodeMirror ::-moz-selection { background: #e0e0e0; }\n.cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;}\n.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }\n.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }\n.cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;}\n.cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;}\n\n.cm-s-base16-light span.cm-comment {color: #8f5536;}\n.cm-s-base16-light span.cm-atom {color: #aa759f;}\n.cm-s-base16-light span.cm-number {color: #aa759f;}\n\n.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;}\n.cm-s-base16-light span.cm-keyword {color: #ac4142;}\n.cm-s-base16-light span.cm-string {color: #f4bf75;}\n\n.cm-s-base16-light span.cm-variable {color: #90a959;}\n.cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;}\n.cm-s-base16-light span.cm-def {color: #d28445;}\n.cm-s-base16-light span.cm-bracket {color: #202020;}\n.cm-s-base16-light span.cm-tag {color: #ac4142;}\n.cm-s-base16-light span.cm-link {color: #aa759f;}\n.cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;}\n\n.cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;}\n.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/blackboard.css",
    "content": "/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }\n.cm-s-blackboard.CodeMirror ::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard.CodeMirror ::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D;}\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;}\n.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/cobalt.css",
    "content": ".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; }\n.cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;}\n.cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/colorforth.css",
    "content": ".cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }\n.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }\n.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }\n.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-colorforth span.cm-comment     { color: #ededed; }\n.cm-s-colorforth span.cm-def         { color: #ff1c1c; font-weight:bold; }\n.cm-s-colorforth span.cm-keyword     { color: #ffd900; }\n.cm-s-colorforth span.cm-builtin     { color: #00d95a; }\n.cm-s-colorforth span.cm-variable    { color: #73ff00; }\n.cm-s-colorforth span.cm-string      { color: #007bff; }\n.cm-s-colorforth span.cm-number      { color: #00c4ff; }\n.cm-s-colorforth span.cm-atom        { color: #606060; }\n\n.cm-s-colorforth span.cm-variable-2  { color: #EEE; }\n.cm-s-colorforth span.cm-variable-3  { color: #DDD; }\n.cm-s-colorforth span.cm-property    {}\n.cm-s-colorforth span.cm-operator    {}\n\n.cm-s-colorforth span.cm-meta        { color: yellow; }\n.cm-s-colorforth span.cm-qualifier   { color: #FFF700; }\n.cm-s-colorforth span.cm-bracket     { color: #cc7; }\n.cm-s-colorforth span.cm-tag         { color: #FFBD40; }\n.cm-s-colorforth span.cm-attribute   { color: #FFF700; }\n.cm-s-colorforth span.cm-error       { color: #f00; }\n\n.cm-s-colorforth .CodeMirror-selected { background: #333d53 !important; }\n\n.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }\n\n.cm-s-colorforth .CodeMirror-activeline-background {background: #253540 !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/eclipse.css",
    "content": ".cm-s-eclipse span.cm-meta {color: #FF1717;}\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom {color: #219;}\n.cm-s-eclipse span.cm-number {color: #164;}\n.cm-s-eclipse span.cm-def {color: #00f;}\n.cm-s-eclipse span.cm-variable {color: black;}\n.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}\n.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}\n.cm-s-eclipse span.cm-property {color: black;}\n.cm-s-eclipse span.cm-operator {color: black;}\n.cm-s-eclipse span.cm-comment {color: #3F7F5F;}\n.cm-s-eclipse span.cm-string {color: #2A00FF;}\n.cm-s-eclipse span.cm-string-2 {color: #f50;}\n.cm-s-eclipse span.cm-qualifier {color: #555;}\n.cm-s-eclipse span.cm-builtin {color: #30a;}\n.cm-s-eclipse span.cm-bracket {color: #cc7;}\n.cm-s-eclipse span.cm-tag {color: #170;}\n.cm-s-eclipse span.cm-attribute {color: #00c;}\n.cm-s-eclipse span.cm-link {color: #219;}\n.cm-s-eclipse span.cm-error {color: #f00;}\n\n.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/elegant.css",
    "content": ".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;}\n.cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;}\n.cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;}\n.cm-s-elegant span.cm-variable {color: black;}\n.cm-s-elegant span.cm-variable-2 {color: #b11;}\n.cm-s-elegant span.cm-qualifier {color: #555;}\n.cm-s-elegant span.cm-keyword {color: #730;}\n.cm-s-elegant span.cm-builtin {color: #30a;}\n.cm-s-elegant span.cm-link {color: #762;}\n.cm-s-elegant span.cm-error {background-color: #fdd;}\n\n.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/erlang-dark.css",
    "content": ".cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }\n.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; }\n.cm-s-erlang-dark.CodeMirror ::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-erlang-dark span.cm-atom       { color: #f133f1; }\n.cm-s-erlang-dark span.cm-attribute  { color: #ff80e1; }\n.cm-s-erlang-dark span.cm-bracket    { color: #ff9d00; }\n.cm-s-erlang-dark span.cm-builtin    { color: #eaa; }\n.cm-s-erlang-dark span.cm-comment    { color: #77f; }\n.cm-s-erlang-dark span.cm-def        { color: #e7a; }\n.cm-s-erlang-dark span.cm-keyword    { color: #ffee80; }\n.cm-s-erlang-dark span.cm-meta       { color: #50fefe; }\n.cm-s-erlang-dark span.cm-number     { color: #ffd0d0; }\n.cm-s-erlang-dark span.cm-operator   { color: #d55; }\n.cm-s-erlang-dark span.cm-property   { color: #ccc; }\n.cm-s-erlang-dark span.cm-qualifier  { color: #ccc; }\n.cm-s-erlang-dark span.cm-quote      { color: #ccc; }\n.cm-s-erlang-dark span.cm-special    { color: #ffbbbb; }\n.cm-s-erlang-dark span.cm-string     { color: #3ad900; }\n.cm-s-erlang-dark span.cm-string-2   { color: #ccc; }\n.cm-s-erlang-dark span.cm-tag        { color: #9effff; }\n.cm-s-erlang-dark span.cm-variable   { color: #50fe50; }\n.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }\n.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }\n.cm-s-erlang-dark span.cm-error      { color: #9d1e15; }\n\n.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;}\n.cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/lesser-dark.css",
    "content": "/*\nhttp://lesscss.org/ dark theme\nPorted to CodeMirror by Peter Kroon\n*/\n.cm-s-lesser-dark {\n  line-height: 1.3em;\n}\n.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }\n.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/\n.cm-s-lesser-dark.CodeMirror ::selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark.CodeMirror ::-moz-selection { background: rgba(69, 68, 59, .99); }\n.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/\n\n.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/\n\n.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }\n.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }\n.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }\n\n.cm-s-lesser-dark span.cm-keyword { color: #599eff; }\n.cm-s-lesser-dark span.cm-atom { color: #C2B470; }\n.cm-s-lesser-dark span.cm-number { color: #B35E4D; }\n.cm-s-lesser-dark span.cm-def {color: white;}\n.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }\n.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }\n.cm-s-lesser-dark span.cm-variable-3 { color: white; }\n.cm-s-lesser-dark span.cm-property {color: #92A75C;}\n.cm-s-lesser-dark span.cm-operator {color: #92A75C;}\n.cm-s-lesser-dark span.cm-comment { color: #666; }\n.cm-s-lesser-dark span.cm-string { color: #BCD279; }\n.cm-s-lesser-dark span.cm-string-2 {color: #f50;}\n.cm-s-lesser-dark span.cm-meta { color: #738C73; }\n.cm-s-lesser-dark span.cm-qualifier {color: #555;}\n.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }\n.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }\n.cm-s-lesser-dark span.cm-tag { color: #669199; }\n.cm-s-lesser-dark span.cm-attribute {color: #00c;}\n.cm-s-lesser-dark span.cm-header {color: #a0a;}\n.cm-s-lesser-dark span.cm-quote {color: #090;}\n.cm-s-lesser-dark span.cm-hr {color: #999;}\n.cm-s-lesser-dark span.cm-link {color: #00c;}\n.cm-s-lesser-dark span.cm-error { color: #9d1e15; }\n\n.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;}\n.cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/mbo.css",
    "content": "/****************************************************************/\n/*   Based on mbonaci's Brackets mbo theme                      */\n/*   https://github.com/mbonaci/global/blob/master/Mbo.tmTheme  */\n/*   Create your own: http://tmtheme-editor.herokuapp.com       */\n/****************************************************************/\n\n.cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffec;}\n.cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;}\n.cm-s-mbo.CodeMirror ::selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo.CodeMirror ::-moz-selection { background: rgba(113, 108, 98, .99); }\n.cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;}\n.cm-s-mbo .CodeMirror-guttermarker { color: white; }\n.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }\n.cm-s-mbo .CodeMirror-linenumber {color: #dadada;}\n.cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;}\n\n.cm-s-mbo span.cm-comment {color: #95958a;}\n.cm-s-mbo span.cm-atom {color: #00a8c6;}\n.cm-s-mbo span.cm-number {color: #00a8c6;}\n\n.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;}\n.cm-s-mbo span.cm-keyword {color: #ffb928;}\n.cm-s-mbo span.cm-string {color: #ffcf6c;}\n.cm-s-mbo span.cm-string.cm-property {color: #ffffec;}\n\n.cm-s-mbo span.cm-variable {color: #ffffec;}\n.cm-s-mbo span.cm-variable-2 {color: #00a8c6;}\n.cm-s-mbo span.cm-def {color: #ffffec;}\n.cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;}\n.cm-s-mbo span.cm-tag {color: #9ddfe9;}\n.cm-s-mbo span.cm-link {color: #f54b07;}\n.cm-s-mbo span.cm-error {border-bottom: #636363; color: #ffffec;}\n.cm-s-mbo span.cm-qualifier {color: #ffffec;}\n\n.cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;}\n.cm-s-mbo .CodeMirror-matchingbracket {color: #222 !important;}\n.cm-s-mbo .CodeMirror-matchingtag {background: rgba(255, 255, 255, .37);}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/mdn-like.css",
    "content": "/*\n  MDN-LIKE Theme - Mozilla\n  Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>\n  Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues\n  GitHub: @peterkroon\n\n  The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation\n\n*/\n.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }\n.cm-s-mdn-like .CodeMirror-selected { background: #cfc !important; }\n.cm-s-mdn-like.CodeMirror ::selection { background: #cfc; }\n.cm-s-mdn-like.CodeMirror ::-moz-selection { background: #cfc; }\n\n.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }\n.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; margin-left: 3px; }\ndiv.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }\n\n.cm-s-mdn-like .cm-keyword {  color: #6262FF; }\n.cm-s-mdn-like .cm-atom { color: #F90; }\n.cm-s-mdn-like .cm-number { color:  #ca7841; }\n.cm-s-mdn-like .cm-def { color: #8DA6CE; }\n.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }\n.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; }\n\n.cm-s-mdn-like .cm-variable { color: #07a; }\n.cm-s-mdn-like .cm-property { color: #905; }\n.cm-s-mdn-like .cm-qualifier { color: #690; }\n\n.cm-s-mdn-like .cm-operator { color: #cda869; }\n.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }\n.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }\n.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/\n.cm-s-mdn-like .cm-meta { color: #000; } /*?*/\n.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/\n.cm-s-mdn-like .cm-tag { color: #997643; }\n.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-mdn-like .cm-header { color: #FF6400; }\n.cm-s-mdn-like .cm-hr { color: #AEAEAE; }\n.cm-s-mdn-like .cm-link {   color:#ad9361; font-style:italic; text-decoration:none; }\n.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }\n\ndiv.cm-s-mdn-like .CodeMirror-activeline-background {background: #efefff;}\ndiv.cm-s-mdn-like span.CodeMirror-matchingbracket {outline:1px solid grey; color: inherit;}\n\n.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/midnight.css",
    "content": "/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */\n\n/*<!--match-->*/\n.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }\n.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }\n\n/*<!--activeline-->*/\n.cm-s-midnight .CodeMirror-activeline-background {background: #253540 !important;}\n\n.cm-s-midnight.CodeMirror {\n    background: #0F192A;\n    color: #D1EDFF;\n}\n\n.cm-s-midnight.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}\n\n.cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;}\n.cm-s-midnight.CodeMirror ::selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight.CodeMirror ::-moz-selection { background: rgba(49, 77, 103, .99); }\n.cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;}\n.cm-s-midnight .CodeMirror-guttermarker { color: white; }\n.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;}\n.cm-s-midnight .CodeMirror-cursor {\n    border-left: 1px solid #F8F8F0 !important;\n}\n\n.cm-s-midnight span.cm-comment {color: #428BDD;}\n.cm-s-midnight span.cm-atom {color: #AE81FF;}\n.cm-s-midnight span.cm-number {color: #D1EDFF;}\n\n.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute {color: #A6E22E;}\n.cm-s-midnight span.cm-keyword {color: #E83737;}\n.cm-s-midnight span.cm-string {color: #1DC116;}\n\n.cm-s-midnight span.cm-variable {color: #FFAA3E;}\n.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;}\n.cm-s-midnight span.cm-def {color: #4DD;}\n.cm-s-midnight span.cm-bracket {color: #D1EDFF;}\n.cm-s-midnight span.cm-tag {color: #449;}\n.cm-s-midnight span.cm-link {color: #AE81FF;}\n.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;}\n\n.cm-s-midnight .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/monokai.css",
    "content": "/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;}\n.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}\n.cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;}\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}\n.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}\n\n.cm-s-monokai span.cm-comment {color: #75715e;}\n.cm-s-monokai span.cm-atom {color: #ae81ff;}\n.cm-s-monokai span.cm-number {color: #ae81ff;}\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}\n.cm-s-monokai span.cm-keyword {color: #f92672;}\n.cm-s-monokai span.cm-string {color: #e6db74;}\n\n.cm-s-monokai span.cm-variable {color: #a6e22e;}\n.cm-s-monokai span.cm-variable-2 {color: #9effff;}\n.cm-s-monokai span.cm-def {color: #fd971f;}\n.cm-s-monokai span.cm-bracket {color: #f8f8f2;}\n.cm-s-monokai span.cm-tag {color: #f92672;}\n.cm-s-monokai span.cm-link {color: #ae81ff;}\n.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}\n\n.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;}\n.cm-s-monokai .CodeMirror-matchingbracket {\n  text-decoration: underline;\n  color: white !important;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/neat.css",
    "content": ".cm-s-neat span.cm-comment { color: #a86; }\n.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; }\n.cm-s-neat span.cm-string { color: #a22; }\n.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; }\n.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }\n.cm-s-neat span.cm-variable { color: black; }\n.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }\n.cm-s-neat span.cm-meta {color: #555;}\n.cm-s-neat span.cm-link { color: #3a3; }\n\n.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/neo.css",
    "content": "/* neo theme for codemirror */\n\n/* Color scheme */\n\n.cm-s-neo.CodeMirror {\n  background-color:#ffffff;\n  color:#2e383c;\n  line-height:1.4375;\n}\n.cm-s-neo .cm-comment {color:#75787b}\n.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3}\n.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a}\n.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328}\n.cm-s-neo .cm-string {color:#b35e14}\n.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65}\n\n\n/* Editor styling */\n\n.cm-s-neo pre {\n  padding:0;\n}\n\n.cm-s-neo .CodeMirror-gutters {\n  border:none;\n  border-right:10px solid transparent;\n  background-color:transparent;\n}\n\n.cm-s-neo .CodeMirror-linenumber {\n  padding:0;\n  color:#e0e2e5;\n}\n\n.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }\n.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }\n\n.cm-s-neo div.CodeMirror-cursor {\n  width: auto;\n  border: 0;\n  background: rgba(155,157,162,0.37);\n  z-index: 1;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/night.css",
    "content": "/* Loosely based on the Midnight Textmate theme */\n\n.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-night div.CodeMirror-selected { background: #447 !important; }\n.cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); }\n.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-night .CodeMirror-guttermarker { color: white; }\n.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }\n.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-night span.cm-comment { color: #6900a1; }\n.cm-s-night span.cm-atom { color: #845dc4; }\n.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; }\n.cm-s-night span.cm-keyword { color: #599eff; }\n.cm-s-night span.cm-string { color: #37f14a; }\n.cm-s-night span.cm-meta { color: #7678e2; }\n.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }\n.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }\n.cm-s-night span.cm-bracket { color: #8da6ce; }\n.cm-s-night span.cm-comment { color: #6900a1; }\n.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }\n.cm-s-night span.cm-link { color: #845dc4; }\n.cm-s-night span.cm-error { color: #9d1e15; }\n\n.cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;}\n.cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/paraiso-dark.css",
    "content": "/*\n\n    Name:       Paraíso (Dark)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;}\n.cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;}\n.cm-s-paraiso-dark.CodeMirror ::selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark.CodeMirror ::-moz-selection { background: rgba(65, 50, 63, .99); }\n.cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;}\n.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }\n.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }\n.cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;}\n.cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;}\n\n.cm-s-paraiso-dark span.cm-comment {color: #e96ba8;}\n.cm-s-paraiso-dark span.cm-atom {color: #815ba4;}\n.cm-s-paraiso-dark span.cm-number {color: #815ba4;}\n\n.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;}\n.cm-s-paraiso-dark span.cm-keyword {color: #ef6155;}\n.cm-s-paraiso-dark span.cm-string {color: #fec418;}\n\n.cm-s-paraiso-dark span.cm-variable {color: #48b685;}\n.cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;}\n.cm-s-paraiso-dark span.cm-def {color: #f99b15;}\n.cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;}\n.cm-s-paraiso-dark span.cm-tag {color: #ef6155;}\n.cm-s-paraiso-dark span.cm-link {color: #815ba4;}\n.cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;}\n\n.cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;}\n.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/paraiso-light.css",
    "content": "/*\n\n    Name:       Paraíso (Light)\n    Author:     Jan T. Sott\n\n    Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;}\n.cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;}\n.cm-s-paraiso-light.CodeMirror ::selection { background: #b9b6b0; }\n.cm-s-paraiso-light.CodeMirror ::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;}\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;}\n.cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;}\n\n.cm-s-paraiso-light span.cm-comment {color: #e96ba8;}\n.cm-s-paraiso-light span.cm-atom {color: #815ba4;}\n.cm-s-paraiso-light span.cm-number {color: #815ba4;}\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;}\n.cm-s-paraiso-light span.cm-keyword {color: #ef6155;}\n.cm-s-paraiso-light span.cm-string {color: #fec418;}\n\n.cm-s-paraiso-light span.cm-variable {color: #48b685;}\n.cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;}\n.cm-s-paraiso-light span.cm-def {color: #f99b15;}\n.cm-s-paraiso-light span.cm-bracket {color: #41323f;}\n.cm-s-paraiso-light span.cm-tag {color: #ef6155;}\n.cm-s-paraiso-light span.cm-link {color: #815ba4;}\n.cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;}\n\n.cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;}\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/pastel-on-dark.css",
    "content": "/**\n * Pastel On Dark theme ported from ACE editor\n * @license MIT\n * @copyright AtomicPages LLC 2014\n * @author Dennis Thompson, AtomicPages LLC\n * @version 1.1\n * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme\n */\n\n.cm-s-pastel-on-dark.CodeMirror {\n\tbackground: #2c2827;\n\tcolor: #8F938F;\n\tline-height: 1.5;\n\tfont-size: 14px;\n}\n.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2) !important; }\n.cm-s-pastel-on-dark.CodeMirror ::selection { background: rgba(221,240,255,0.2); }\n.cm-s-pastel-on-dark.CodeMirror ::-moz-selection { background: rgba(221,240,255,0.2); }\n\n.cm-s-pastel-on-dark .CodeMirror-gutters {\n\tbackground: #34302f;\n\tborder-right: 0px;\n\tpadding: 0 3px;\n}\n.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }\n.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }\n.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }\n.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }\n.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }\n.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }\n.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-string { color: #66A968; }\n.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }\n.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }\n.cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; }\n.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }\n.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }\n.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }\n.cm-s-pastel-on-dark span.cm-error {\n\tbackground: #757aD8;\n\tcolor: #f8f8f0;\n}\n.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031) !important; }\n.cm-s-pastel-on-dark .CodeMirror-matchingbracket {\n\tborder: 1px solid rgba(255,255,255,0.25);\n\tcolor: #8F938F !important;\n\tmargin: -1px -1px 0 -1px;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/rubyblue.css",
    "content": ".cm-s-rubyblue.CodeMirror { background: #112435; color: white; }\n.cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; }\n.cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); }\n.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }\n.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }\n.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }\n.cm-s-rubyblue .CodeMirror-linenumber { color: white; }\n.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }\n.cm-s-rubyblue span.cm-atom { color: #F4C20B; }\n.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; }\n.cm-s-rubyblue span.cm-keyword { color: #F0F; }\n.cm-s-rubyblue span.cm-string { color: #F08047; }\n.cm-s-rubyblue span.cm-meta { color: #F0F; }\n.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }\n.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }\n.cm-s-rubyblue span.cm-bracket { color: #F0F; }\n.cm-s-rubyblue span.cm-link { color: #F4C20B; }\n.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }\n.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }\n.cm-s-rubyblue span.cm-error { color: #AF2018; }\n\n.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/solarized.css",
    "content": "/*\nSolarized theme for code-mirror\nhttp://ethanschoonover.com/solarized\n*/\n\n/*\nSolarized color pallet\nhttp://ethanschoonover.com/solarized/img/solarized-palette.png\n*/\n\n.solarized.base03 { color: #002b36; }\n.solarized.base02 { color: #073642; }\n.solarized.base01 { color: #586e75; }\n.solarized.base00 { color: #657b83; }\n.solarized.base0 { color: #839496; }\n.solarized.base1 { color: #93a1a1; }\n.solarized.base2 { color: #eee8d5; }\n.solarized.base3  { color: #fdf6e3; }\n.solarized.solar-yellow  { color: #b58900; }\n.solarized.solar-orange  { color: #cb4b16; }\n.solarized.solar-red { color: #dc322f; }\n.solarized.solar-magenta { color: #d33682; }\n.solarized.solar-violet  { color: #6c71c4; }\n.solarized.solar-blue { color: #268bd2; }\n.solarized.solar-cyan { color: #2aa198; }\n.solarized.solar-green { color: #859900; }\n\n/* Color scheme for code-mirror */\n\n.cm-s-solarized {\n  line-height: 1.45em;\n  color-profile: sRGB;\n  rendering-intent: auto;\n}\n.cm-s-solarized.cm-s-dark {\n  color: #839496;\n  background-color:  #002b36;\n  text-shadow: #002b36 0 1px;\n}\n.cm-s-solarized.cm-s-light {\n  background-color: #fdf6e3;\n  color: #657b83;\n  text-shadow: #eee8d5 0 1px;\n}\n\n.cm-s-solarized .CodeMirror-widget {\n  text-shadow: none;\n}\n\n\n.cm-s-solarized .cm-keyword { color: #cb4b16 }\n.cm-s-solarized .cm-atom { color: #d33682; }\n.cm-s-solarized .cm-number { color: #d33682; }\n.cm-s-solarized .cm-def { color: #2aa198; }\n\n.cm-s-solarized .cm-variable { color: #268bd2; }\n.cm-s-solarized .cm-variable-2 { color: #b58900; }\n.cm-s-solarized .cm-variable-3 { color: #6c71c4; }\n\n.cm-s-solarized .cm-property { color: #2aa198; }\n.cm-s-solarized .cm-operator {color: #6c71c4;}\n\n.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }\n\n.cm-s-solarized .cm-string { color: #859900; }\n.cm-s-solarized .cm-string-2 { color: #b58900; }\n\n.cm-s-solarized .cm-meta { color: #859900; }\n.cm-s-solarized .cm-qualifier { color: #b58900; }\n.cm-s-solarized .cm-builtin { color: #d33682; }\n.cm-s-solarized .cm-bracket { color: #cb4b16; }\n.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }\n.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }\n.cm-s-solarized .cm-tag { color: #93a1a1 }\n.cm-s-solarized .cm-attribute {  color: #2aa198; }\n.cm-s-solarized .cm-header { color: #586e75; }\n.cm-s-solarized .cm-quote { color: #93a1a1; }\n.cm-s-solarized .cm-hr {\n  color: transparent;\n  border-top: 1px solid #586e75;\n  display: block;\n}\n.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }\n.cm-s-solarized .cm-special { color: #6c71c4; }\n.cm-s-solarized .cm-em {\n  color: #999;\n  text-decoration: underline;\n  text-decoration-style: dotted;\n}\n.cm-s-solarized .cm-strong { color: #eee; }\n.cm-s-solarized .cm-error,\n.cm-s-solarized .cm-invalidchar {\n  color: #586e75;\n  border-bottom: 1px dotted #dc322f;\n}\n\n.cm-s-solarized.cm-s-dark .CodeMirror-selected { background: #073642; }\n.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }\n.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection { background: rgba(7, 54, 66, 0.99); }\n\n.cm-s-solarized.cm-s-light .CodeMirror-selected { background: #eee8d5; }\n.cm-s-solarized.cm-s-light.CodeMirror ::selection { background: #eee8d5; }\n.cm-s-solarized.cm-s-lightCodeMirror ::-moz-selection { background: #eee8d5; }\n\n/* Editor styling */\n\n\n\n/* Little shadow on the view-port of the buffer view */\n.cm-s-solarized.CodeMirror {\n  -moz-box-shadow: inset 7px 0 12px -6px #000;\n  -webkit-box-shadow: inset 7px 0 12px -6px #000;\n  box-shadow: inset 7px 0 12px -6px #000;\n}\n\n/* Gutter border and some shadow from it  */\n.cm-s-solarized .CodeMirror-gutters {\n  border-right: 1px solid;\n}\n\n/* Gutter colors and line number styling based of color scheme (dark / light) */\n\n/* Dark */\n.cm-s-solarized.cm-s-dark .CodeMirror-gutters {\n  background-color:  #002b36;\n  border-color: #00232c;\n}\n\n.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {\n  text-shadow: #021014 0 -1px;\n}\n\n/* Light */\n.cm-s-solarized.cm-s-light .CodeMirror-gutters {\n  background-color: #fdf6e3;\n  border-color: #eee8d5;\n}\n\n/* Common */\n.cm-s-solarized .CodeMirror-linenumber {\n  color: #586e75;\n  padding: 0 5px;\n}\n.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }\n.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }\n.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }\n\n.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {\n  color: #586e75;\n}\n\n.cm-s-solarized .CodeMirror-lines .CodeMirror-cursor {\n  border-left: 1px solid #819090;\n}\n\n/*\nActive line. Negative margin compensates left padding of the text in the\nview-port\n*/\n.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {\n  background: rgba(255, 255, 255, 0.10);\n}\n.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {\n  background: rgba(0, 0, 0, 0.10);\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/the-matrix.css",
    "content": ".cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }\n.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; }\n.cm-s-the-matrix.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }\n.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }\n.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }\n.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }\n.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; }\n\n.cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;}\n.cm-s-the-matrix span.cm-atom {color: #3FF;}\n.cm-s-the-matrix span.cm-number {color: #FFB94F;}\n.cm-s-the-matrix span.cm-def {color: #99C;}\n.cm-s-the-matrix span.cm-variable {color: #F6C;}\n.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}\n.cm-s-the-matrix span.cm-variable-3 {color: #96F;}\n.cm-s-the-matrix span.cm-property {color: #62FFA0;}\n.cm-s-the-matrix span.cm-operator {color: #999}\n.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}\n.cm-s-the-matrix span.cm-string {color: #39C;}\n.cm-s-the-matrix span.cm-meta {color: #C9F;}\n.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}\n.cm-s-the-matrix span.cm-builtin {color: #30a;}\n.cm-s-the-matrix span.cm-bracket {color: #cc7;}\n.cm-s-the-matrix span.cm-tag {color: #FFBD40;}\n.cm-s-the-matrix span.cm-attribute {color: #FFF700;}\n.cm-s-the-matrix span.cm-error {color: #FF0000;}\n\n.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/tomorrow-night-bright.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Bright\n    Author:     Chris Kempson\n\n    Port done by Gerard Braad <me@gbraad.nl>\n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror {background: #000000; color: #eaeaea;}\n.cm-s-tomorrow-night-bright div.CodeMirror-selected {background: #424242 !important;}\n.cm-s-tomorrow-night-bright .CodeMirror-gutters {background: #000000; border-right: 0px;}\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber {color: #424242;}\n.cm-s-tomorrow-night-bright .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}\n\n.cm-s-tomorrow-night-bright span.cm-comment {color: #d27b53;}\n.cm-s-tomorrow-night-bright span.cm-atom {color: #a16a94;}\n.cm-s-tomorrow-night-bright span.cm-number {color: #a16a94;}\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute {color: #99cc99;}\n.cm-s-tomorrow-night-bright span.cm-keyword {color: #d54e53;}\n.cm-s-tomorrow-night-bright span.cm-string {color: #e7c547;}\n\n.cm-s-tomorrow-night-bright span.cm-variable {color: #b9ca4a;}\n.cm-s-tomorrow-night-bright span.cm-variable-2 {color: #7aa6da;}\n.cm-s-tomorrow-night-bright span.cm-def {color: #e78c45;}\n.cm-s-tomorrow-night-bright span.cm-bracket {color: #eaeaea;}\n.cm-s-tomorrow-night-bright span.cm-tag {color: #d54e53;}\n.cm-s-tomorrow-night-bright span.cm-link {color: #a16a94;}\n.cm-s-tomorrow-night-bright span.cm-error {background: #d54e53; color: #6A6A6A;}\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background {background: #2a2a2a !important;}\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/tomorrow-night-eighties.css",
    "content": "/*\n\n    Name:       Tomorrow Night - Eighties\n    Author:     Chris Kempson\n\n    CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n    Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n\n*/\n\n.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;}\n.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;}\n.cm-s-tomorrow-night-eighties.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); }\n.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;}\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }\n.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;}\n.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;}\n\n.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;}\n.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;}\n.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;}\n\n.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;}\n.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;}\n.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;}\n\n.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;}\n.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;}\n.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;}\n.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;}\n.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;}\n.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;}\n.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;}\n\n.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;}\n.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/twilight.css",
    "content": ".cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/\n.cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/\n.cm-s-twilight.CodeMirror ::selection { background: rgba(50, 50, 50, 0.99); }\n.cm-s-twilight.CodeMirror ::-moz-selection { background: rgba(50, 50, 50, 0.99); }\n\n.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }\n.cm-s-twilight .CodeMirror-guttermarker { color: white; }\n.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }\n.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }\n.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-twilight .cm-keyword {  color: #f9ee98; } /**/\n.cm-s-twilight .cm-atom { color: #FC0; }\n.cm-s-twilight .cm-number { color:  #ca7841; } /**/\n.cm-s-twilight .cm-def { color: #8DA6CE; }\n.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/\n.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/\n.cm-s-twilight .cm-operator { color: #cda869; } /**/\n.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/\n.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/\n.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/\n.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/\n.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/\n.cm-s-twilight .cm-tag { color: #997643; } /**/\n.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/\n.cm-s-twilight .cm-header { color: #FF6400; }\n.cm-s-twilight .cm-hr { color: #AEAEAE; }\n.cm-s-twilight .cm-link {   color:#ad9361; font-style:italic; text-decoration:none; } /**/\n.cm-s-twilight .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/vibrant-ink.css",
    "content": "/* Taken from the popular Visual Studio Vibrant Ink Schema */\n\n.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }\n.cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; }\n.cm-s-vibrant-ink.CodeMirror ::selection { background: rgba(53, 73, 60, 0.99); }\n.cm-s-vibrant-ink.CodeMirror ::-moz-selection { background: rgba(53, 73, 60, 0.99); }\n\n.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }\n.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-vibrant-ink .cm-keyword {  color: #CC7832; }\n.cm-s-vibrant-ink .cm-atom { color: #FC0; }\n.cm-s-vibrant-ink .cm-number { color:  #FFEE98; }\n.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }\n.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D }\n.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D }\n.cm-s-vibrant-ink .cm-operator { color: #888; }\n.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }\n.cm-s-vibrant-ink .cm-string { color:  #A5C25C }\n.cm-s-vibrant-ink .cm-string-2 { color: red }\n.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }\n.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }\n.cm-s-vibrant-ink .cm-header { color: #FF6400; }\n.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }\n.cm-s-vibrant-ink .cm-link { color: blue; }\n.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }\n\n.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/xq-dark.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-selected { background: #27007A !important; }\n.cm-s-xq-dark.CodeMirror ::selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark.CodeMirror ::-moz-selection { background: rgba(39, 0, 122, 0.99); }\n.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }\n.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }\n.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }\n.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; }\n\n.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}\n.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}\n.cm-s-xq-dark span.cm-number {color: #164;}\n.cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;}\n.cm-s-xq-dark span.cm-variable {color: #FFF;}\n.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}\n.cm-s-xq-dark span.cm-variable-3 {color: #DDD;}\n.cm-s-xq-dark span.cm-property {}\n.cm-s-xq-dark span.cm-operator {}\n.cm-s-xq-dark span.cm-comment {color: gray;}\n.cm-s-xq-dark span.cm-string {color: #9FEE00;}\n.cm-s-xq-dark span.cm-meta {color: yellow;}\n.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}\n.cm-s-xq-dark span.cm-builtin {color: #30a;}\n.cm-s-xq-dark span.cm-bracket {color: #cc7;}\n.cm-s-xq-dark span.cm-tag {color: #FFBD40;}\n.cm-s-xq-dark span.cm-attribute {color: #FFF700;}\n.cm-s-xq-dark span.cm-error {color: #f00;}\n\n.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E !important;}\n.cm-s-xq-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/xq-light.css",
    "content": "/*\nCopyright (C) 2011 by MarkLogic Corporation\nAuthor: Mike Brevoort <mike@brevoort.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n.cm-s-xq-light span.cm-keyword {line-height: 1em; font-weight: bold; color: #5A5CAD; }\n.cm-s-xq-light span.cm-atom {color: #6C8CD5;}\n.cm-s-xq-light span.cm-number {color: #164;}\n.cm-s-xq-light span.cm-def {text-decoration:underline;}\n.cm-s-xq-light span.cm-variable {color: black; }\n.cm-s-xq-light span.cm-variable-2 {color:black;}\n.cm-s-xq-light span.cm-variable-3 {color: black; }\n.cm-s-xq-light span.cm-property {}\n.cm-s-xq-light span.cm-operator {}\n.cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;}\n.cm-s-xq-light span.cm-string {color: red;}\n.cm-s-xq-light span.cm-meta {color: yellow;}\n.cm-s-xq-light span.cm-qualifier {color: grey}\n.cm-s-xq-light span.cm-builtin {color: #7EA656;}\n.cm-s-xq-light span.cm-bracket {color: #cc7;}\n.cm-s-xq-light span.cm-tag {color: #3F7F7F;}\n.cm-s-xq-light span.cm-attribute {color: #7F007F;}\n.cm-s-xq-light span.cm-error {color: #f00;}\n\n.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;}\n.cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/lib/codemirror/theme/zenburn.css",
    "content": "/**\n * \"\n *  Using Zenburn color palette from the Emacs Zenburn Theme\n *  https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el\n *\n *  Also using parts of https://github.com/xavi/coderay-lighttable-theme\n * \"\n * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css\n */\n\n.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }\n.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }\n.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white !important; }\n.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }\n.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }\n.cm-s-zenburn span.cm-comment { color: #7f9f7f; }\n.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }\n.cm-s-zenburn span.cm-atom { color: #bfebbf; }\n.cm-s-zenburn span.cm-def { color: #dcdccc; }\n.cm-s-zenburn span.cm-variable { color: #dfaf8f; }\n.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }\n.cm-s-zenburn span.cm-string { color: #cc9393; }\n.cm-s-zenburn span.cm-string-2 { color: #cc9393; }\n.cm-s-zenburn span.cm-number { color: #dcdccc; }\n.cm-s-zenburn span.cm-tag { color: #93e0e3; }\n.cm-s-zenburn span.cm-property { color: #dfaf8f; }\n.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }\n.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }\n.cm-s-zenburn span.cm-meta { color: #f0dfaf; }\n.cm-s-zenburn span.cm-header { color: #f0efd0; }\n.cm-s-zenburn span.cm-operator { color: #f0efd0; }\n.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }\n.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }\n.cm-s-zenburn .CodeMirror-activeline { background: #000000; }\n.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }\n.cm-s-zenburn .CodeMirror-selected { background: #545454; }\n.cm-s-zenburn .CodeMirror-focused .CodeMirror-selected { background: #4f4f4f; }\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/code-block-dialog/code-block-dialog.js",
    "content": "/*!\n * Code block dialog plugin for Editor.md\n *\n * @file        code-block-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\t\tvar cmEditor;\n\t\tvar pluginName    = \"code-block-dialog\";\n    \n\t\t// for CodeBlock dialog select\n\t\tvar codeLanguages = exports.codeLanguages = {\n\t\t\tasp           : [\"ASP\", \"vbscript\"],\n\t\t\tactionscript  : [\"ActionScript(3.0)/Flash/Flex\", \"clike\"],\n\t\t\tbash          : [\"Bash/Bat\", \"shell\"],\n\t\t\tcss           : [\"CSS\", \"css\"],\n\t\t\tc             : [\"C\", \"clike\"],\n\t\t\tcpp           : [\"C++\", \"clike\"],\n\t\t\tcsharp        : [\"C#\", \"clike\"],\n\t\t\tcoffeescript  : [\"CoffeeScript\", \"coffeescript\"],\n\t\t\td             : [\"D\", \"d\"],\n\t\t\tdart          : [\"Dart\", \"dart\"],\n\t\t\tdelphi        : [\"Delphi/Pascal\", \"pascal\"],\n\t\t\terlang        : [\"Erlang\", \"erlang\"],\n\t\t\tgo            : [\"Golang\", \"go\"],\n\t\t\tgroovy        : [\"Groovy\", \"groovy\"],\n\t\t\thtml          : [\"HTML\", \"text/html\"],\n\t\t\tjava          : [\"Java\", \"clike\"],\n\t\t\tjson          : [\"JSON\", \"text/json\"],\n\t\t\tjavascript    : [\"Javascript\", \"javascript\"],\n\t\t\tlua           : [\"Lua\", \"lua\"],\n\t\t\tless          : [\"LESS\", \"css\"],\n\t\t\tmarkdown      : [\"Markdown\", \"gfm\"],\n\t\t\t\"objective-c\" : [\"Objective-C\", \"clike\"],\n\t\t\tphp           : [\"PHP\", \"php\"],\n\t\t\tperl          : [\"Perl\", \"perl\"],\n\t\t\tpython        : [\"Python\", \"python\"],\n\t\t\tr             : [\"R\", \"r\"],\n\t\t\trst           : [\"reStructedText\", \"rst\"],\n\t\t\truby          : [\"Ruby\", \"ruby\"],\n\t\t\tsql           : [\"SQL\", \"sql\"],\n\t\t\tsass          : [\"SASS/SCSS\", \"sass\"],\n\t\t\tshell         : [\"Shell\", \"shell\"],\n\t\t\tscala         : [\"Scala\", \"clike\"],\n\t\t\tswift         : [\"Swift\", \"clike\"],\n\t\t\tvb            : [\"VB/VBScript\", \"vb\"],\n\t\t\txml           : [\"XML\", \"text/xml\"],\n\t\t\tyaml          : [\"YAML\", \"yaml\"]\n\t\t};\n\n\t\texports.fn.codeBlockDialog = function() {\n\n\t\t\tvar _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.codeBlock;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"option:first\").attr(\"selected\", \"selected\");\n                dialog.find(\"textarea\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else \n            {      \n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"code-toolbar\\\">\" +\n                                        dialogLang.selectLabel + \"<select><option selected=\\\"selected\\\" value=\\\"\\\">\" + dialogLang.selectDefaultText + \"</option></select>\" +\n                                    \"</div>\" +\n                                    \"<textarea placeholder=\\\"coding now....\\\" style=\\\"display:none;\\\">\" + selection + \"</textarea>\";\n\n                dialog = this.createDialog({\n                    name   : dialogName,\n                    title  : dialogLang.title,\n                    width  : 780,\n                    height : 565,\n                    mask   : settings.dialogShowMask,\n                    drag   : settings.dialogDraggable,\n                    content    : dialogHTML,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var codeTexts  = this.find(\"textarea\").val();\n                            var langName   = this.find(\"select\").val();\n\n                            if (langName === \"\")\n                            {\n                                alert(lang.dialog.codeBlock.unselectedLanguageAlert);\n                                return false;\n                            }\n\n                            if (codeTexts === \"\")\n                            {\n                                alert(lang.dialog.codeBlock.codeEmptyAlert);\n                                return false;\n                            }\n\n                            langName = (langName === \"other\") ? \"\" : langName;\n\n                            cm.replaceSelection([\"```\" + langName, codeTexts, \"```\"].join(\"\\n\"));\n\n                            if (langName === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 3);\n                            }\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\n\t\t\tvar langSelect = dialog.find(\"select\");\n\n\t\t\tif (langSelect.find(\"option\").length === 1) \n\t\t\t{\n\t\t\t\tfor (var key in codeLanguages)\n\t\t\t\t{\n\t\t\t\t\tvar codeLang = codeLanguages[key];\n\t\t\t\t\tlangSelect.append(\"<option value=\\\"\" + key + \"\\\" mode=\\\"\" + codeLang[1] + \"\\\">\" + codeLang[0] + \"</option>\");\n\t\t\t\t}\n\n\t\t\t\tlangSelect.append(\"<option value=\\\"other\\\">\" + dialogLang.otherLanguage + \"</option>\");\n\t\t\t}\n\t\t\t\n\t\t\tvar mode   = langSelect.find(\"option:selected\").attr(\"mode\");\n\t\t\n\t\t\tvar cmConfig = {\n\t\t\t\tmode                      : (mode) ? mode : \"text/html\",\n\t\t\t\ttheme                     : settings.theme,\n\t\t\t\ttabSize                   : 4,\n\t\t\t\tautofocus                 : true,\n\t\t\t\tautoCloseTags             : true,\n\t\t\t\tindentUnit                : 4,\n\t\t\t\tlineNumbers               : true,\n\t\t\t\tlineWrapping              : true,\n\t\t\t\textraKeys                 : {\"Ctrl-Q\": function(cm){ cm.foldCode(cm.getCursor()); }},\n\t\t\t\tfoldGutter                : true,\n\t\t\t\tgutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n\t\t\t\tmatchBrackets             : true,\n\t\t\t\tindentWithTabs            : true,\n\t\t\t\tstyleActiveLine           : true,\n\t\t\t\tstyleSelectedText         : true,\n\t\t\t\tautoCloseBrackets         : true,\n\t\t\t\tshowTrailingSpace         : true,\n\t\t\t\thighlightSelectionMatches : true\n\t\t\t};\n\t\t\t\n\t\t\tvar textarea = dialog.find(\"textarea\");\n\t\t\tvar cmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\tif (dialog.find(\".CodeMirror\").length < 1) \n\t\t\t{\n\t\t\t\tcmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig);\n\t\t\t\tcmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\t\tcmObj.css({\n\t\t\t\t\t\"float\"   : \"none\", \n\t\t\t\t\tmargin    : \"8px 0\",\n\t\t\t\t\tborder    : \"1px solid #ddd\",\n\t\t\t\t\tfontSize  : settings.fontSize,\n\t\t\t\t\twidth     : \"100%\",\n\t\t\t\t\theight    : \"390px\"\n\t\t\t\t});\n\n\t\t\t\tcmEditor.on(\"change\", function(cm) {\n\t\t\t\t\ttextarea.val(cm.getValue());\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\n\t\t\t\tcmEditor.setValue(cm.getSelection());\n\t\t\t}\n\n\t\t\tlangSelect.change(function(){\n\t\t\t\tvar _mode = $(this).find(\"option:selected\").attr(\"mode\");\n\t\t\t\tcmEditor.setOption(\"mode\", _mode);\n\t\t\t});\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/emoji-dialog/emoji-dialog.js",
    "content": "/*!\n * Emoji dialog plugin for Editor.md\n *\n * @file        emoji-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $             = jQuery;\n\t\tvar pluginName    = \"emoji-dialog\";\n\t\tvar emojiTabIndex = 0;\n\t\tvar emojiData     = [];\n        var selecteds     = [];\n\n\t\tvar logoPrefix    = \"editormd-logo\";\n\t\tvar logos         = [\n\t\t\tlogoPrefix,\n\t\t\tlogoPrefix + \"-1x\",\n\t\t\tlogoPrefix + \"-2x\",\n\t\t\tlogoPrefix + \"-3x\",\n\t\t\tlogoPrefix + \"-4x\",\n\t\t\tlogoPrefix + \"-5x\",\n\t\t\tlogoPrefix + \"-6x\",\n\t\t\tlogoPrefix + \"-7x\",\n\t\t\tlogoPrefix + \"-8x\"\n\t\t];\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji 表情\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji 表情\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji 表情\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji 表情\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\temoji : \"Emoji\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\temoji : {\n\t\t\t\t\t\ttitle : \"Emoji\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.emojiDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar settings    = _this.settings;\n            \n            if (!settings.emoji)\n            {\n                alert(\"settings.emoji == false\");\n                return ;\n            }\n            \n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.emoji;\n\t\t\t\n\t\t\tvar dialogContent = [\n\t\t\t\t\"<div class=\\\"\" + classPrefix + \"emoji-dialog-box\\\" style=\\\"width: 760px;height: 334px;margin-bottom: 8px;overflow: hidden;\\\">\",\n\t\t\t\t\"<div class=\\\"\" + classPrefix + \"tab\\\"></div>\",\n\t\t\t\t\"</div>\",\n\t\t\t].join(\"\\n\");\n\n\t\t\tcm.focus();\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tselecteds = [];\n\t\t\t\tdialog.find(\"a\").removeClass(\"selected\");\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 800,\n\t\t\t\t\theight     : 475,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tenter  : [lang.buttons.enter, function() {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcm.replaceSelection(selecteds.join(\" \"));\n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tcancel : [lang.buttons.cancel, function() {                           \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tvar category = [\"Github emoji\", \"Twemoji\", \"Font awesome\", \"Editor.md logo\"];\n\t\t\tvar tab      = dialog.find(\".\" + classPrefix + \"tab\");\n\n\t\t\tif (tab.html() === \"\") \n\t\t\t{\n\t\t\t\tvar head = \"<ul class=\\\"\" + classPrefix + \"tab-head\\\">\";\n\n\t\t\t\tfor (var i = 0; i<4; i++) {\n\t\t\t\t\tvar active = (i === 0) ? \" class=\\\"active\\\"\" : \"\";\n\t\t\t\t\thead += \"<li\" + active + \"><a href=\\\"javascript:;\\\">\" + category[i] + \"</a></li>\";\n\t\t\t\t}\n\n\t\t\t\thead += \"</ul>\";\n\n\t\t\t\ttab.append(head);\n\n\t\t\t\tvar container = \"<div class=\\\"\" + classPrefix + \"tab-container\\\">\";\n\n\t\t\t\tfor (var x = 0; x < 4; x++) \n                {\n\t\t\t\t\tvar display = (x === 0) ? \"\" : \"display:none;\";\n\t\t\t\t\tcontainer += \"<div class=\\\"\" + classPrefix + \"tab-box\\\" style=\\\"height: 260px;overflow: hidden;overflow-y: auto;\" + display + \"\\\"></div>\";\n\t\t\t\t}\n\n\t\t\t\tcontainer += \"</div>\";\n\n\t\t\t\ttab.append(container);  \n\t\t\t}\n            \n\t\t\tvar tabBoxs = tab.find(\".\" + classPrefix + \"tab-box\");\n            var emojiCategories = [\"github-emoji\", \"twemoji\", \"font-awesome\", logoPrefix];\n\n\t\t\tvar drawTable = function() {\n                var cname = emojiCategories[emojiTabIndex];\n\t\t\t\tvar $data = emojiData[cname];\n                var $tab  = tabBoxs.eq(emojiTabIndex);\n\n\t\t\t\tif ($tab.html() !== \"\") {\n                    //console.log(\"break =>\", cname);\n                    return ;\n                }\n                \n                var pagination = function(data, type) {\n                    var rowNumber = (type === \"editormd-logo\") ? \"5\" : 20;\n                    var pageTotal = Math.ceil(data.length / rowNumber);\n                    var table     = \"<div class=\\\"\" + classPrefix + \"grid-table\\\">\";\n\n                    for (var i = 0; i < pageTotal; i++)\n                    {\n                        var row = \"<div class=\\\"\" + classPrefix + \"grid-table-row\\\">\";\n\n                        for (var x = 0; x < rowNumber; x++)\n                        {\n                            var emoji = $.trim(data[(i * rowNumber) + x]);\n                            \n                            if (typeof emoji !== \"undefined\" && emoji !== \"\")\n                            {\n                                var img = \"\", icon = \"\";\n                                \n                                if (type === \"github-emoji\")\n                                {\n                                    var src = (emoji === \"+1\") ? \"plus1\" : emoji;\n                                    src     = (src === \"black_large_square\") ? \"black_square\" : src;\n                                    src     = (src === \"moon\") ? \"waxing_gibbous_moon\" : src;\n                                    \n                                    src     = exports.emoji.path + src + exports.emoji.ext;\n                                    img     = \"<img src=\\\"\" + src + \"\\\" width=\\\"24\\\" class=\\\"emoji\\\" title=\\\"&#58;\" + emoji + \"&#58;\\\" alt=\\\"&#58;\" + emoji + \"&#58;\\\" />\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":\" + emoji + \":\\\" title=\\\":\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + img + \"</a>\";\n                                }\n                                else if (type === \"twemoji\")\n                                {\n                                    var twemojiSrc = exports.twemoji.path + emoji + exports.twemoji.ext;\n                                    img = \"<img src=\\\"\" + twemojiSrc + \"\\\" width=\\\"24\\\" title=\\\"twemoji-\" + emoji + \"\\\" alt=\\\"twemoji-\" + emoji + \"\\\" class=\\\"emoji twemoji\\\" />\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":tw-\" + emoji + \":\\\" title=\\\":tw-\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + img + \"</a>\";\n                                }\n                                else if (type === \"font-awesome\")\n                                {\n                                    icon = \"<i class=\\\"fa fa-\" + emoji + \" fa-emoji\\\" title=\\\"\" + emoji + \"\\\"></i>\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":fa-\" + emoji + \":\\\" title=\\\":fa-\" + emoji + \":\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + icon + \"</a>\";\n                                }\n                                else if (type === \"editormd-logo\")\n                                {\n                                    icon = \"<i class=\\\"\" + emoji + \"\\\" title=\\\"Editor.md logo (\" + emoji + \")\\\"></i>\";\n                                    row += \"<a href=\\\"javascript:;\\\" value=\\\":\" + emoji + \":\\\" title=\\\":\" + emoji + \":\\\" style=\\\"width:20%;\\\" class=\\\"\" + classPrefix + \"emoji-btn\\\">\" + icon + \"</a>\";\n                                }\n                            }\n                            else\n                            {\n                                row += \"<a href=\\\"javascript:;\\\" value=\\\"\\\"></a>\";                        \n                            }\n                        }\n\n                        row += \"</div>\";\n\n                        table += row;\n                    }\n\n                    table += \"</div>\";\n                    \n                    return table;\n                };\n                \n                if (emojiTabIndex === 0)\n                {\n                    for (var i = 0, len = $data.length; i < len; i++)\n                    {\n                        var h4Style = (i === 0) ? \" style=\\\"margin: 0 0 10px;\\\"\" : \" style=\\\"margin: 10px 0;\\\"\";\n                        $tab.append(\"<h4\" + h4Style + \">\" + $data[i].category + \"</h4>\");\n                        $tab.append(pagination($data[i].list, cname));\n                    }\n                }\n                else\n                {\n                    $tab.append(pagination($data, cname));\n                }\n\n\t\t\t\t$tab.find(\".\" + classPrefix + \"emoji-btn\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\t\t$(this).toggleClass(\"selected\");\n\n\t\t\t\t\tif ($(this).hasClass(\"selected\")) \n\t\t\t\t\t{\n\t\t\t\t\t\tselecteds.push($(this).attr(\"value\"));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tif (emojiData.length < 1) \n\t\t\t{            \n\t\t\t\tif (typeof dialog.loading === \"function\") {\n                    dialog.loading(true);\n                }\n\n\t\t\t\t$.getJSON(path + \"emoji.json?temp=\" + Math.random(), function(json) {\n\n\t\t\t\t\tif (typeof dialog.loading === \"function\") {\n                        dialog.loading(false);\n                    }\n\n\t\t\t\t\temojiData = json;\n                    emojiData[logoPrefix] = logos;\n\t\t\t\t\tdrawTable();\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\t\t\t\tdrawTable();\n\t\t\t}\n\n\t\t\ttab.find(\"li\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\tvar $this     = $(this);\n\t\t\t\temojiTabIndex = $this.index();\n\n\t\t\t\t$this.addClass(\"active\").siblings().removeClass(\"active\");\n\t\t\t\ttabBoxs.eq(emojiTabIndex).show().siblings().hide();\n\t\t\t\tdrawTable();\n\t\t\t});\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/emoji-dialog/emoji.json",
    "content": "{\n\t\"github-emoji\" : [\n\t\t{\n\t\t\t\"category\" :\"People\",\n\t\t\t\"list\" : [\"bowtie\",\"smile\",\"laughing\",\"blush\",\"smiley\",\"relaxed\",\"smirk\",\"heart_eyes\",\"kissing_heart\",\"kissing_closed_eyes\",\"flushed\",\"relieved\",\"satisfied\",\"grin\",\"wink\",\"stuck_out_tongue_winking_eye\",\"stuck_out_tongue_closed_eyes\",\"grinning\",\"kissing\",\"kissing_smiling_eyes\",\"stuck_out_tongue\",\"sleeping\",\"worried\",\"frowning\",\"anguished\",\"open_mouth\",\"grimacing\",\"confused\",\"hushed\",\"expressionless\",\"unamused\",\"sweat_smile\",\"sweat\",\"disappointed_relieved\",\"weary\",\"pensive\",\"disappointed\",\"confounded\",\"fearful\",\"cold_sweat\",\"persevere\",\"cry\",\"sob\",\"joy\",\"astonished\",\"scream\",\"neckbeard\",\"tired_face\",\"angry\",\"rage\",\"triumph\",\"sleepy\",\"yum\",\"mask\",\"sunglasses\",\"dizzy_face\",\"imp\",\"smiling_imp\",\"neutral_face\",\"no_mouth\",\"innocent\",\"alien\",\"yellow_heart\",\"blue_heart\",\"purple_heart\",\"heart\",\"green_heart\",\"broken_heart\",\"heartbeat\",\"heartpulse\",\"two_hearts\",\"revolving_hearts\",\"cupid\",\"sparkling_heart\",\"sparkles\",\"star\",\"star2\",\"dizzy\",\"boom\",\"collision\",\"anger\",\"exclamation\",\"question\",\"grey_exclamation\",\"grey_question\",\"zzz\",\"dash\",\"sweat_drops\",\"notes\",\"musical_note\",\"fire\",\"hankey\",\"poop\",\"shit\",\"+1\",\"thumbsup\",\"-1\",\"thumbsdown\",\"ok_hand\",\"punch\",\"facepunch\",\"fist\",\"v\",\"wave\",\"hand\",\"raised_hand\",\"open_hands\",\"point_up\",\"point_down\",\"point_left\",\"point_right\",\"raised_hands\",\"pray\",\"point_up_2\",\"clap\",\"muscle\",\"metal\",\"fu\",\"walking\",\"runner\",\"running\",\"couple\",\"family\",\"two_men_holding_hands\",\"two_women_holding_hands\",\"dancer\",\"dancers\",\"ok_woman\",\"no_good\",\"information_desk_person\",\"raising_hand\",\"bride_with_veil\",\"person_with_pouting_face\",\"person_frowning\",\"bow\",\"couplekiss\",\"couple_with_heart\",\"massage\",\"haircut\",\"nail_care\",\"boy\",\"girl\",\"woman\",\"man\",\"baby\",\"older_woman\",\"older_man\",\"person_with_blond_hair\",\"man_with_gua_pi_mao\",\"man_with_turban\",\"construction_worker\",\"cop\",\"angel\",\"princess\",\"smiley_cat\",\"smile_cat\",\"heart_eyes_cat\",\"kissing_cat\",\"smirk_cat\",\"scream_cat\",\"crying_cat_face\",\"joy_cat\",\"pouting_cat\",\"japanese_ogre\",\"japanese_goblin\",\"see_no_evil\",\"hear_no_evil\",\"speak_no_evil\",\"guardsman\",\"skull\",\"feet\",\"lips\",\"kiss\",\"droplet\",\"ear\",\"eyes\",\"nose\",\"tongue\",\"love_letter\",\"bust_in_silhouette\",\"busts_in_silhouette\",\"speech_balloon\",\"thought_balloon\",\"feelsgood\",\"finnadie\",\"goberserk\",\"godmode\",\"hurtrealbad\",\"rage1\",\"rage2\",\"rage3\",\"rage4\",\"suspect\",\"trollface\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Nature\",\n\t\t\t\"list\" : [\"sunny\",\"umbrella\",\"cloud\",\"snowflake\",\"snowman\",\"zap\",\"cyclone\",\"foggy\",\"ocean\",\"cat\",\"dog\",\"mouse\",\"hamster\",\"rabbit\",\"wolf\",\"frog\",\"tiger\",\"koala\",\"bear\",\"pig\",\"pig_nose\",\"cow\",\"boar\",\"monkey_face\",\"monkey\",\"horse\",\"racehorse\",\"camel\",\"sheep\",\"elephant\",\"panda_face\",\"snake\",\"bird\",\"baby_chick\",\"hatched_chick\",\"hatching_chick\",\"chicken\",\"penguin\",\"turtle\",\"bug\",\"honeybee\",\"ant\",\"beetle\",\"snail\",\"octopus\",\"tropical_fish\",\"fish\",\"whale\",\"whale2\",\"dolphin\",\"cow2\",\"ram\",\"rat\",\"water_buffalo\",\"tiger2\",\"rabbit2\",\"dragon\",\"goat\",\"rooster\",\"dog2\",\"pig2\",\"mouse2\",\"ox\",\"dragon_face\",\"blowfish\",\"crocodile\",\"dromedary_camel\",\"leopard\",\"cat2\",\"poodle\",\"paw_prints\",\"bouquet\",\"cherry_blossom\",\"tulip\",\"four_leaf_clover\",\"rose\",\"sunflower\",\"hibiscus\",\"maple_leaf\",\"leaves\",\"fallen_leaf\",\"herb\",\"mushroom\",\"cactus\",\"palm_tree\",\"evergreen_tree\",\"deciduous_tree\",\"chestnut\",\"seedling\",\"blossom\",\"ear_of_rice\",\"shell\",\"globe_with_meridians\",\"sun_with_face\",\"full_moon_with_face\",\"new_moon_with_face\",\"new_moon\",\"waxing_crescent_moon\",\"first_quarter_moon\",\"waxing_gibbous_moon\",\"full_moon\",\"waning_gibbous_moon\",\"last_quarter_moon\",\"waning_crescent_moon\",\"last_quarter_moon_with_face\",\"first_quarter_moon_with_face\",\"moon\",\"earth_africa\",\"earth_americas\",\"earth_asia\",\"volcano\",\"milky_way\",\"partly_sunny\",\"octocat\",\"squirrel\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Objects\",\n\t\t\t\"list\" : [\"bamboo\",\"gift_heart\",\"dolls\",\"school_satchel\",\"mortar_board\",\"flags\",\"fireworks\",\"sparkler\",\"wind_chime\",\"rice_scene\",\"jack_o_lantern\",\"ghost\",\"santa\",\"christmas_tree\",\"gift\",\"bell\",\"no_bell\",\"tanabata_tree\",\"tada\",\"confetti_ball\",\"balloon\",\"crystal_ball\",\"cd\",\"dvd\",\"floppy_disk\",\"camera\",\"video_camera\",\"movie_camera\",\"computer\",\"tv\",\"iphone\",\"phone\",\"telephone\",\"telephone_receiver\",\"pager\",\"fax\",\"minidisc\",\"vhs\",\"sound\",\"speaker\",\"mute\",\"loudspeaker\",\"mega\",\"hourglass\",\"hourglass_flowing_sand\",\"alarm_clock\",\"watch\",\"radio\",\"satellite\",\"loop\",\"mag\",\"mag_right\",\"unlock\",\"lock\",\"lock_with_ink_pen\",\"closed_lock_with_key\",\"key\",\"bulb\",\"flashlight\",\"high_brightness\",\"low_brightness\",\"electric_plug\",\"battery\",\"calling\",\"email\",\"mailbox\",\"postbox\",\"bath\",\"bathtub\",\"shower\",\"toilet\",\"wrench\",\"nut_and_bolt\",\"hammer\",\"seat\",\"moneybag\",\"yen\",\"dollar\",\"pound\",\"euro\",\"credit_card\",\"money_with_wings\",\"e-mail\",\"inbox_tray\",\"outbox_tray\",\"envelope\",\"incoming_envelope\",\"postal_horn\",\"mailbox_closed\",\"mailbox_with_mail\",\"mailbox_with_no_mail\",\"package\",\"door\",\"smoking\",\"bomb\",\"gun\",\"hocho\",\"pill\",\"syringe\",\"page_facing_up\",\"page_with_curl\",\"bookmark_tabs\",\"bar_chart\",\"chart_with_upwards_trend\",\"chart_with_downwards_trend\",\"scroll\",\"clipboard\",\"calendar\",\"date\",\"card_index\",\"file_folder\",\"open_file_folder\",\"scissors\",\"pushpin\",\"paperclip\",\"black_nib\",\"pencil2\",\"straight_ruler\",\"triangular_ruler\",\"closed_book\",\"green_book\",\"blue_book\",\"orange_book\",\"notebook\",\"notebook_with_decorative_cover\",\"ledger\",\"books\",\"bookmark\",\"name_badge\",\"microscope\",\"telescope\",\"newspaper\",\"football\",\"basketball\",\"soccer\",\"baseball\",\"tennis\",\"8ball\",\"rugby_football\",\"bowling\",\"golf\",\"mountain_bicyclist\",\"bicyclist\",\"horse_racing\",\"snowboarder\",\"swimmer\",\"surfer\",\"ski\",\"spades\",\"hearts\",\"clubs\",\"diamonds\",\"gem\",\"ring\",\"trophy\",\"musical_score\",\"musical_keyboard\",\"violin\",\"space_invader\",\"video_game\",\"black_joker\",\"flower_playing_cards\",\"game_die\",\"dart\",\"mahjong\",\"clapper\",\"memo\",\"pencil\",\"book\",\"art\",\"microphone\",\"headphones\",\"trumpet\",\"saxophone\",\"guitar\",\"shoe\",\"sandal\",\"high_heel\",\"lipstick\",\"boot\",\"shirt\",\"tshirt\",\"necktie\",\"womans_clothes\",\"dress\",\"running_shirt_with_sash\",\"jeans\",\"kimono\",\"bikini\",\"ribbon\",\"tophat\",\"crown\",\"womans_hat\",\"mans_shoe\",\"closed_umbrella\",\"briefcase\",\"handbag\",\"pouch\",\"purse\",\"eyeglasses\",\"fishing_pole_and_fish\",\"coffee\",\"tea\",\"sake\",\"baby_bottle\",\"beer\",\"beers\",\"cocktail\",\"tropical_drink\",\"wine_glass\",\"fork_and_knife\",\"pizza\",\"hamburger\",\"fries\",\"poultry_leg\",\"meat_on_bone\",\"spaghetti\",\"curry\",\"fried_shrimp\",\"bento\",\"sushi\",\"fish_cake\",\"rice_ball\",\"rice_cracker\",\"rice\",\"ramen\",\"stew\",\"oden\",\"dango\",\"egg\",\"bread\",\"doughnut\",\"custard\",\"icecream\",\"ice_cream\",\"shaved_ice\",\"birthday\",\"cake\",\"cookie\",\"chocolate_bar\",\"candy\",\"lollipop\",\"honey_pot\",\"apple\",\"green_apple\",\"tangerine\",\"lemon\",\"cherries\",\"grapes\",\"watermelon\",\"strawberry\",\"peach\",\"melon\",\"banana\",\"pear\",\"pineapple\",\"sweet_potato\",\"eggplant\",\"tomato\",\"corn\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Places\",\n\t\t\t\"list\" : [\"house\",\"house_with_garden\",\"school\",\"office\",\"post_office\",\"hospital\",\"bank\",\"convenience_store\",\"love_hotel\",\"hotel\",\"wedding\",\"church\",\"department_store\",\"european_post_office\",\"city_sunrise\",\"city_sunset\",\"japanese_castle\",\"european_castle\",\"tent\",\"factory\",\"tokyo_tower\",\"japan\",\"mount_fuji\",\"sunrise_over_mountains\",\"sunrise\",\"stars\",\"statue_of_liberty\",\"bridge_at_night\",\"carousel_horse\",\"rainbow\",\"ferris_wheel\",\"fountain\",\"roller_coaster\",\"ship\",\"speedboat\",\"boat\",\"sailboat\",\"rowboat\",\"anchor\",\"rocket\",\"airplane\",\"helicopter\",\"steam_locomotive\",\"tram\",\"mountain_railway\",\"bike\",\"aerial_tramway\",\"suspension_railway\",\"mountain_cableway\",\"tractor\",\"blue_car\",\"oncoming_automobile\",\"car\",\"red_car\",\"taxi\",\"oncoming_taxi\",\"articulated_lorry\",\"bus\",\"oncoming_bus\",\"rotating_light\",\"police_car\",\"oncoming_police_car\",\"fire_engine\",\"ambulance\",\"minibus\",\"truck\",\"train\",\"station\",\"train2\",\"bullettrain_front\",\"bullettrain_side\",\"light_rail\",\"monorail\",\"railway_car\",\"trolleybus\",\"ticket\",\"fuelpump\",\"vertical_traffic_light\",\"traffic_light\",\"warning\",\"construction\",\"beginner\",\"atm\",\"slot_machine\",\"busstop\",\"barber\",\"hotsprings\",\"checkered_flag\",\"crossed_flags\",\"izakaya_lantern\",\"moyai\",\"circus_tent\",\"performing_arts\",\"round_pushpin\",\"triangular_flag_on_post\",\"jp\",\"kr\",\"cn\",\"us\",\"fr\",\"es\",\"it\",\"ru\",\"gb\",\"uk\",\"de\"]\n\t\t},\n\t\t{\n\t\t\t\"category\" :\"Symbols\",\n\t\t\t\"list\" : [\"one\",\"two\",\"three\",\"four\",\"five\",\"six\",\"seven\",\"eight\",\"nine\",\"keycap_ten\",\"1234\",\"zero\",\"hash\",\"symbols\",\"arrow_backward\",\"arrow_down\",\"arrow_forward\",\"arrow_left\",\"capital_abcd\",\"abcd\",\"abc\",\"arrow_lower_left\",\"arrow_lower_right\",\"arrow_right\",\"arrow_up\",\"arrow_upper_left\",\"arrow_upper_right\",\"arrow_double_down\",\"arrow_double_up\",\"arrow_down_small\",\"arrow_heading_down\",\"arrow_heading_up\",\"leftwards_arrow_with_hook\",\"arrow_right_hook\",\"left_right_arrow\",\"arrow_up_down\",\"arrow_up_small\",\"arrows_clockwise\",\"arrows_counterclockwise\",\"rewind\",\"fast_forward\",\"information_source\",\"ok\",\"twisted_rightwards_arrows\",\"repeat\",\"repeat_one\",\"new\",\"top\",\"up\",\"cool\",\"free\",\"ng\",\"cinema\",\"koko\",\"signal_strength\",\"u5272\",\"u5408\",\"u55b6\",\"u6307\",\"u6708\",\"u6709\",\"u6e80\",\"u7121\",\"u7533\",\"u7a7a\",\"u7981\",\"sa\",\"restroom\",\"mens\",\"womens\",\"baby_symbol\",\"no_smoking\",\"parking\",\"wheelchair\",\"metro\",\"baggage_claim\",\"accept\",\"wc\",\"potable_water\",\"put_litter_in_its_place\",\"secret\",\"congratulations\",\"m\",\"passport_control\",\"left_luggage\",\"customs\",\"ideograph_advantage\",\"cl\",\"sos\",\"id\",\"no_entry_sign\",\"underage\",\"no_mobile_phones\",\"do_not_litter\",\"non-potable_water\",\"no_bicycles\",\"no_pedestrians\",\"children_crossing\",\"no_entry\",\"eight_spoked_asterisk\",\"sparkle\",\"eight_pointed_black_star\",\"heart_decoration\",\"vs\",\"vibration_mode\",\"mobile_phone_off\",\"chart\",\"currency_exchange\",\"aries\",\"taurus\",\"gemini\",\"cancer\",\"leo\",\"virgo\",\"libra\",\"scorpius\",\"sagittarius\",\"capricorn\",\"aquarius\",\"pisces\",\"ophiuchus\",\"six_pointed_star\",\"negative_squared_cross_mark\",\"a\",\"b\",\"ab\",\"o2\",\"diamond_shape_with_a_dot_inside\",\"recycle\",\"end\",\"back\",\"on\",\"soon\",\"clock1\",\"clock130\",\"clock10\",\"clock1030\",\"clock11\",\"clock1130\",\"clock12\",\"clock1230\",\"clock2\",\"clock230\",\"clock3\",\"clock330\",\"clock4\",\"clock430\",\"clock5\",\"clock530\",\"clock6\",\"clock630\",\"clock7\",\"clock730\",\"clock8\",\"clock830\",\"clock9\",\"clock930\",\"heavy_dollar_sign\",\"copyright\",\"registered\",\"tm\",\"x\",\"heavy_exclamation_mark\",\"bangbang\",\"interrobang\",\"o\",\"heavy_multiplication_x\",\"heavy_plus_sign\",\"heavy_minus_sign\",\"heavy_division_sign\",\"white_flower\",\"100\",\"heavy_check_mark\",\"ballot_box_with_check\",\"radio_button\",\"link\",\"curly_loop\",\"wavy_dash\",\"part_alternation_mark\",\"trident\",\"black_small_square\",\"white_small_square\",\"black_medium_small_square\",\"white_medium_small_square\",\"black_medium_square\",\"white_medium_square\",\"black_large_square\",\"white_large_square\",\"white_check_mark\",\"black_square_button\",\"white_square_button\",\"black_circle\",\"white_circle\",\"red_circle\",\"large_blue_circle\",\"large_blue_diamond\",\"large_orange_diamond\",\"small_blue_diamond\",\"small_orange_diamond\",\"small_red_triangle\",\"small_red_triangle_down\",\"shipit\"]\n\t\t}\n\t],\n\n\t\"twemoji\" : [\"1f004\",\"1f0cf\",\"1f170\",\"1f171\",\"1f17e\",\"1f17f\",\"1f18e\",\"1f191\",\"1f192\",\"1f193\",\"1f194\",\"1f195\",\"1f196\",\"1f197\",\"1f198\",\"1f199\",\"1f19a\",\"1f1e6\",\"1f1e7\",\"1f1e8-1f1f3\",\"1f1e8\",\"1f1e9-1f1ea\",\"1f1e9\",\"1f1ea-1f1f8\",\"1f1ea\",\"1f1eb-1f1f7\",\"1f1eb\",\"1f1ec-1f1e7\",\"1f1ec\",\"1f1ed\",\"1f1ee-1f1f9\",\"1f1ee\",\"1f1ef-1f1f5\",\"1f1ef\",\"1f1f0-1f1f7\",\"1f1f0\",\"1f1f1\",\"1f1f2\",\"1f1f3\",\"1f1f4\",\"1f1f5\",\"1f1f6\",\"1f1f7-1f1fa\",\"1f1f7\",\"1f1f8\",\"1f1f9\",\"1f1fa-1f1f8\",\"1f1fa\",\"1f1fb\",\"1f1fc\",\"1f1fd\",\"1f1fe\",\"1f1ff\",\"1f201\",\"1f202\",\"1f21a\",\"1f22f\",\"1f232\",\"1f233\",\"1f234\",\"1f235\",\"1f236\",\"1f237\",\"1f238\",\"1f239\",\"1f23a\",\"1f250\",\"1f251\",\"1f300\",\"1f301\",\"1f302\",\"1f303\",\"1f304\",\"1f305\",\"1f306\",\"1f307\",\"1f308\",\"1f309\",\"1f30a\",\"1f30b\",\"1f30c\",\"1f30d\",\"1f30e\",\"1f30f\",\"1f310\",\"1f311\",\"1f312\",\"1f313\",\"1f314\",\"1f315\",\"1f316\",\"1f317\",\"1f318\",\"1f319\",\"1f31a\",\"1f31b\",\"1f31c\",\"1f31d\",\"1f31e\",\"1f31f\",\"1f320\",\"1f330\",\"1f331\",\"1f332\",\"1f333\",\"1f334\",\"1f335\",\"1f337\",\"1f338\",\"1f339\",\"1f33a\",\"1f33b\",\"1f33c\",\"1f33d\",\"1f33e\",\"1f33f\",\"1f340\",\"1f341\",\"1f342\",\"1f343\",\"1f344\",\"1f345\",\"1f346\",\"1f347\",\"1f348\",\"1f349\",\"1f34a\",\"1f34b\",\"1f34c\",\"1f34d\",\"1f34e\",\"1f34f\",\"1f350\",\"1f351\",\"1f352\",\"1f353\",\"1f354\",\"1f355\",\"1f356\",\"1f357\",\"1f358\",\"1f359\",\"1f35a\",\"1f35b\",\"1f35c\",\"1f35d\",\"1f35e\",\"1f35f\",\"1f360\",\"1f361\",\"1f362\",\"1f363\",\"1f364\",\"1f365\",\"1f366\",\"1f367\",\"1f368\",\"1f369\",\"1f36a\",\"1f36b\",\"1f36c\",\"1f36d\",\"1f36e\",\"1f36f\",\"1f370\",\"1f371\",\"1f372\",\"1f373\",\"1f374\",\"1f375\",\"1f376\",\"1f377\",\"1f378\",\"1f379\",\"1f37a\",\"1f37b\",\"1f37c\",\"1f380\",\"1f381\",\"1f382\",\"1f383\",\"1f384\",\"1f385\",\"1f386\",\"1f387\",\"1f388\",\"1f389\",\"1f38a\",\"1f38b\",\"1f38c\",\"1f38d\",\"1f38e\",\"1f38f\",\"1f390\",\"1f391\",\"1f392\",\"1f393\",\"1f3a0\",\"1f3a1\",\"1f3a2\",\"1f3a3\",\"1f3a4\",\"1f3a5\",\"1f3a6\",\"1f3a7\",\"1f3a8\",\"1f3a9\",\"1f3aa\",\"1f3ab\",\"1f3ac\",\"1f3ad\",\"1f3ae\",\"1f3af\",\"1f3b0\",\"1f3b1\",\"1f3b2\",\"1f3b3\",\"1f3b4\",\"1f3b5\",\"1f3b6\",\"1f3b7\",\"1f3b8\",\"1f3b9\",\"1f3ba\",\"1f3bb\",\"1f3bc\",\"1f3bd\",\"1f3be\",\"1f3bf\",\"1f3c0\",\"1f3c1\",\"1f3c2\",\"1f3c3\",\"1f3c4\",\"1f3c6\",\"1f3c7\",\"1f3c8\",\"1f3c9\",\"1f3ca\",\"1f3e0\",\"1f3e1\",\"1f3e2\",\"1f3e3\",\"1f3e4\",\"1f3e5\",\"1f3e6\",\"1f3e7\",\"1f3e8\",\"1f3e9\",\"1f3ea\",\"1f3eb\",\"1f3ec\",\"1f3ed\",\"1f3ee\",\"1f3ef\",\"1f3f0\",\"1f400\",\"1f401\",\"1f402\",\"1f403\",\"1f404\",\"1f405\",\"1f406\",\"1f407\",\"1f408\",\"1f409\",\"1f40a\",\"1f40b\",\"1f40c\",\"1f40d\",\"1f40e\",\"1f40f\",\"1f410\",\"1f411\",\"1f412\",\"1f413\",\"1f414\",\"1f415\",\"1f416\",\"1f417\",\"1f418\",\"1f419\",\"1f41a\",\"1f41b\",\"1f41c\",\"1f41d\",\"1f41e\",\"1f41f\",\"1f420\",\"1f421\",\"1f422\",\"1f423\",\"1f424\",\"1f425\",\"1f426\",\"1f427\",\"1f428\",\"1f429\",\"1f42a\",\"1f42b\",\"1f42c\",\"1f42d\",\"1f42e\",\"1f42f\",\"1f430\",\"1f431\",\"1f432\",\"1f433\",\"1f434\",\"1f435\",\"1f436\",\"1f437\",\"1f438\",\"1f439\",\"1f43a\",\"1f43b\",\"1f43c\",\"1f43d\",\"1f43e\",\"1f440\",\"1f442\",\"1f443\",\"1f444\",\"1f445\",\"1f446\",\"1f447\",\"1f448\",\"1f449\",\"1f44a\",\"1f44b\",\"1f44c\",\"1f44d\",\"1f44e\",\"1f44f\",\"1f450\",\"1f451\",\"1f452\",\"1f453\",\"1f454\",\"1f455\",\"1f456\",\"1f457\",\"1f458\",\"1f459\",\"1f45a\",\"1f45b\",\"1f45c\",\"1f45d\",\"1f45e\",\"1f45f\",\"1f460\",\"1f461\",\"1f462\",\"1f463\",\"1f464\",\"1f465\",\"1f466\",\"1f467\",\"1f468\",\"1f469\",\"1f46a\",\"1f46b\",\"1f46c\",\"1f46d\",\"1f46e\",\"1f46f\",\"1f470\",\"1f471\",\"1f472\",\"1f473\",\"1f474\",\"1f475\",\"1f476\",\"1f477\",\"1f478\",\"1f479\",\"1f47a\",\"1f47b\",\"1f47c\",\"1f47d\",\"1f47e\",\"1f47f\",\"1f480\",\"1f481\",\"1f482\",\"1f483\",\"1f484\",\"1f485\",\"1f486\",\"1f487\",\"1f488\",\"1f489\",\"1f48a\",\"1f48b\",\"1f48c\",\"1f48d\",\"1f48e\",\"1f48f\",\"1f490\",\"1f491\",\"1f492\",\"1f493\",\"1f494\",\"1f495\",\"1f496\",\"1f497\",\"1f498\",\"1f499\",\"1f49a\",\"1f49b\",\"1f49c\",\"1f49d\",\"1f49e\",\"1f49f\",\"1f4a0\",\"1f4a1\",\"1f4a2\",\"1f4a3\",\"1f4a4\",\"1f4a5\",\"1f4a6\",\"1f4a7\",\"1f4a8\",\"1f4a9\",\"1f4aa\",\"1f4ab\",\"1f4ac\",\"1f4ad\",\"1f4ae\",\"1f4af\",\"1f4b0\",\"1f4b1\",\"1f4b2\",\"1f4b3\",\"1f4b4\",\"1f4b5\",\"1f4b6\",\"1f4b7\",\"1f4b8\",\"1f4b9\",\"1f4ba\",\"1f4bb\",\"1f4bc\",\"1f4bd\",\"1f4be\",\"1f4bf\",\"1f4c0\",\"1f4c1\",\"1f4c2\",\"1f4c3\",\"1f4c4\",\"1f4c5\",\"1f4c6\",\"1f4c7\",\"1f4c8\",\"1f4c9\",\"1f4ca\",\"1f4cb\",\"1f4cc\",\"1f4cd\",\"1f4ce\",\"1f4cf\",\"1f4d0\",\"1f4d1\",\"1f4d2\",\"1f4d3\",\"1f4d4\",\"1f4d5\",\"1f4d6\",\"1f4d7\",\"1f4d8\",\"1f4d9\",\"1f4da\",\"1f4db\",\"1f4dc\",\"1f4dd\",\"1f4de\",\"1f4df\",\"1f4e0\",\"1f4e1\",\"1f4e2\",\"1f4e3\",\"1f4e4\",\"1f4e5\",\"1f4e6\",\"1f4e7\",\"1f4e8\",\"1f4e9\",\"1f4ea\",\"1f4eb\",\"1f4ec\",\"1f4ed\",\"1f4ee\",\"1f4ef\",\"1f4f0\",\"1f4f1\",\"1f4f2\",\"1f4f3\",\"1f4f4\",\"1f4f5\",\"1f4f6\",\"1f4f7\",\"1f4f9\",\"1f4fa\",\"1f4fb\",\"1f4fc\",\"1f500\",\"1f501\",\"1f502\",\"1f503\",\"1f504\",\"1f505\",\"1f506\",\"1f507\",\"1f508\",\"1f509\",\"1f50a\",\"1f50b\",\"1f50c\",\"1f50d\",\"1f50e\",\"1f50f\",\"1f510\",\"1f511\",\"1f512\",\"1f513\",\"1f514\",\"1f515\",\"1f516\",\"1f517\",\"1f518\",\"1f519\",\"1f51a\",\"1f51b\",\"1f51c\",\"1f51d\",\"1f51e\",\"1f51f\",\"1f520\",\"1f521\",\"1f522\",\"1f523\",\"1f524\",\"1f525\",\"1f526\",\"1f527\",\"1f528\",\"1f529\",\"1f52a\",\"1f52b\",\"1f52c\",\"1f52d\",\"1f52e\",\"1f52f\",\"1f530\",\"1f531\",\"1f532\",\"1f533\",\"1f534\",\"1f535\",\"1f536\",\"1f537\",\"1f538\",\"1f539\",\"1f53a\",\"1f53b\",\"1f53c\",\"1f53d\",\"1f550\",\"1f551\",\"1f552\",\"1f553\",\"1f554\",\"1f555\",\"1f556\",\"1f557\",\"1f558\",\"1f559\",\"1f55a\",\"1f55b\",\"1f55c\",\"1f55d\",\"1f55e\",\"1f55f\",\"1f560\",\"1f561\",\"1f562\",\"1f563\",\"1f564\",\"1f565\",\"1f566\",\"1f567\",\"1f5fb\",\"1f5fc\",\"1f5fd\",\"1f5fe\",\"1f5ff\",\"1f600\",\"1f601\",\"1f602\",\"1f603\",\"1f604\",\"1f605\",\"1f606\",\"1f607\",\"1f608\",\"1f609\",\"1f60a\",\"1f60b\",\"1f60c\",\"1f60d\",\"1f60e\",\"1f60f\",\"1f610\",\"1f611\",\"1f612\",\"1f613\",\"1f614\",\"1f615\",\"1f616\",\"1f617\",\"1f618\",\"1f619\",\"1f61a\",\"1f61b\",\"1f61c\",\"1f61d\",\"1f61e\",\"1f61f\",\"1f620\",\"1f621\",\"1f622\",\"1f623\",\"1f624\",\"1f625\",\"1f626\",\"1f627\",\"1f628\",\"1f629\",\"1f62a\",\"1f62b\",\"1f62c\",\"1f62d\",\"1f62e\",\"1f62f\",\"1f630\",\"1f631\",\"1f632\",\"1f633\",\"1f634\",\"1f635\",\"1f636\",\"1f637\",\"1f638\",\"1f639\",\"1f63a\",\"1f63b\",\"1f63c\",\"1f63d\",\"1f63e\",\"1f63f\",\"1f640\",\"1f645\",\"1f646\",\"1f647\",\"1f648\",\"1f649\",\"1f64a\",\"1f64b\",\"1f64c\",\"1f64d\",\"1f64e\",\"1f64f\",\"1f680\",\"1f681\",\"1f682\",\"1f683\",\"1f684\",\"1f685\",\"1f686\",\"1f687\",\"1f688\",\"1f689\",\"1f68a\",\"1f68b\",\"1f68c\",\"1f68d\",\"1f68e\",\"1f68f\",\"1f690\",\"1f691\",\"1f692\",\"1f693\",\"1f694\",\"1f695\",\"1f696\",\"1f697\",\"1f698\",\"1f699\",\"1f69a\",\"1f69b\",\"1f69c\",\"1f69d\",\"1f69e\",\"1f69f\",\"1f6a0\",\"1f6a1\",\"1f6a2\",\"1f6a3\",\"1f6a4\",\"1f6a5\",\"1f6a6\",\"1f6a7\",\"1f6a8\",\"1f6a9\",\"1f6aa\",\"1f6ab\",\"1f6ac\",\"1f6ad\",\"1f6ae\",\"1f6af\",\"1f6b0\",\"1f6b1\",\"1f6b2\",\"1f6b3\",\"1f6b4\",\"1f6b5\",\"1f6b6\",\"1f6b7\",\"1f6b8\",\"1f6b9\",\"1f6ba\",\"1f6bb\",\"1f6bc\",\"1f6bd\",\"1f6be\",\"1f6bf\",\"1f6c0\",\"1f6c1\",\"1f6c2\",\"1f6c3\",\"1f6c4\",\"1f6c5\",\"203c\",\"2049\",\"2122\",\"2139\",\"2194\",\"2195\",\"2196\",\"2197\",\"2198\",\"2199\",\"21a9\",\"21aa\",\"23-20e3\",\"231a\",\"231b\",\"23e9\",\"23ea\",\"23eb\",\"23ec\",\"23f0\",\"23f3\",\"24c2\",\"25aa\",\"25ab\",\"25b6\",\"25c0\",\"25fb\",\"25fc\",\"25fd\",\"25fe\",\"2600\",\"2601\",\"260e\",\"2611\",\"2614\",\"2615\",\"261d\",\"263a\",\"2648\",\"2649\",\"264a\",\"264b\",\"264c\",\"264d\",\"264e\",\"264f\",\"2650\",\"2651\",\"2652\",\"2653\",\"2660\",\"2663\",\"2665\",\"2666\",\"2668\",\"267b\",\"267f\",\"2693\",\"26a0\",\"26a1\",\"26aa\",\"26ab\",\"26bd\",\"26be\",\"26c4\",\"26c5\",\"26ce\",\"26d4\",\"26ea\",\"26f2\",\"26f3\",\"26f5\",\"26fa\",\"26fd\",\"2702\",\"2705\",\"2708\",\"2709\",\"270a\",\"270b\",\"270c\",\"270f\",\"2712\",\"2714\",\"2716\",\"2728\",\"2733\",\"2734\",\"2744\",\"2747\",\"274c\",\"274e\",\"2753\",\"2754\",\"2755\",\"2757\",\"2764\",\"2795\",\"2796\",\"2797\",\"27a1\",\"27b0\",\"27bf\",\"2934\",\"2935\",\"2b05\",\"2b06\",\"2b07\",\"2b1b\",\"2b1c\",\"2b50\",\"2b55\",\"30-20e3\",\"3030\",\"303d\",\"31-20e3\",\"32-20e3\",\"3297\",\"3299\",\"33-20e3\",\"34-20e3\",\"35-20e3\",\"36-20e3\",\"37-20e3\",\"38-20e3\",\"39-20e3\",\"a9\",\"ae\",\"e50a\"],\n\n\t\"font-awesome\" : [\"glass\",\"music\",\"search\",\"envelope-o\",\"heart\",\"star\",\"star-o\",\"user\",\"film\",\"th-large\",\"th\",\"th-list\",\"check\",\"times\",\"search-plus\",\"search-minus\",\"power-off\",\"signal\",\"cog\",\"trash-o\",\"home\",\"file-o\",\"clock-o\",\"road\",\"download\",\"arrow-circle-o-down\",\"arrow-circle-o-up\",\"inbox\",\"play-circle-o\",\"repeat\",\"refresh\",\"list-alt\",\"lock\",\"flag\",\"headphones\",\"volume-off\",\"volume-down\",\"volume-up\",\"qrcode\",\"barcode\",\"tag\",\"tags\",\"book\",\"bookmark\",\"print\",\"camera\",\"font\",\"bold\",\"italic\",\"text-height\",\"text-width\",\"align-left\",\"align-center\",\"align-right\",\"align-justify\",\"list\",\"outdent\",\"indent\",\"video-camera\",\"picture-o\",\"pencil\",\"map-marker\",\"adjust\",\"tint\",\"pencil-square-o\",\"share-square-o\",\"check-square-o\",\"arrows\",\"step-backward\",\"fast-backward\",\"backward\",\"play\",\"pause\",\"stop\",\"forward\",\"fast-forward\",\"step-forward\",\"eject\",\"chevron-left\",\"chevron-right\",\"plus-circle\",\"minus-circle\",\"times-circle\",\"check-circle\",\"question-circle\",\"info-circle\",\"crosshairs\",\"times-circle-o\",\"check-circle-o\",\"ban\",\"arrow-left\",\"arrow-right\",\"arrow-up\",\"arrow-down\",\"share\",\"expand\",\"compress\",\"plus\",\"minus\",\"asterisk\",\"exclamation-circle\",\"gift\",\"leaf\",\"fire\",\"eye\",\"eye-slash\",\"exclamation-triangle\",\"plane\",\"calendar\",\"random\",\"comment\",\"magnet\",\"chevron-up\",\"chevron-down\",\"retweet\",\"shopping-cart\",\"folder\",\"folder-open\",\"arrows-v\",\"arrows-h\",\"bar-chart\",\"twitter-square\",\"facebook-square\",\"camera-retro\",\"key\",\"cogs\",\"comments\",\"thumbs-o-up\",\"thumbs-o-down\",\"star-half\",\"heart-o\",\"sign-out\",\"linkedin-square\",\"thumb-tack\",\"external-link\",\"sign-in\",\"trophy\",\"github-square\",\"upload\",\"lemon-o\",\"phone\",\"square-o\",\"bookmark-o\",\"phone-square\",\"twitter\",\"facebook\",\"github\",\"unlock\",\"credit-card\",\"rss\",\"hdd-o\",\"bullhorn\",\"bell\",\"certificate\",\"hand-o-right\",\"hand-o-left\",\"hand-o-up\",\"hand-o-down\",\"arrow-circle-left\",\"arrow-circle-right\",\"arrow-circle-up\",\"arrow-circle-down\",\"globe\",\"wrench\",\"tasks\",\"filter\",\"briefcase\",\"arrows-alt\",\"users\",\"link\",\"cloud\",\"flask\",\"scissors\",\"files-o\",\"paperclip\",\"floppy-o\",\"square\",\"bars\",\"list-ul\",\"list-ol\",\"strikethrough\",\"underline\",\"table\",\"magic\",\"truck\",\"pinterest\",\"pinterest-square\",\"google-plus-square\",\"google-plus\",\"money\",\"caret-down\",\"caret-up\",\"caret-left\",\"caret-right\",\"columns\",\"sort\",\"sort-desc\",\"sort-asc\",\"envelope\",\"linkedin\",\"undo\",\"gavel\",\"tachometer\",\"comment-o\",\"comments-o\",\"bolt\",\"sitemap\",\"umbrella\",\"clipboard\",\"lightbulb-o\",\"exchange\",\"cloud-download\",\"cloud-upload\",\"user-md\",\"stethoscope\",\"suitcase\",\"bell-o\",\"coffee\",\"cutlery\",\"file-text-o\",\"building-o\",\"hospital-o\",\"ambulance\",\"medkit\",\"fighter-jet\",\"beer\",\"h-square\",\"plus-square\",\"angle-double-left\",\"angle-double-right\",\"angle-double-up\",\"angle-double-down\",\"angle-left\",\"angle-right\",\"angle-up\",\"angle-down\",\"desktop\",\"laptop\",\"tablet\",\"mobile\",\"circle-o\",\"quote-left\",\"quote-right\",\"spinner\",\"circle\",\"reply\",\"github-alt\",\"folder-o\",\"folder-open-o\",\"smile-o\",\"frown-o\",\"meh-o\",\"gamepad\",\"keyboard-o\",\"flag-o\",\"flag-checkered\",\"terminal\",\"code\",\"reply-all\",\"star-half-o\",\"location-arrow\",\"crop\",\"code-fork\",\"chain-broken\",\"question\",\"info\",\"exclamation\",\"superscript\",\"subscript\",\"eraser\",\"puzzle-piece\",\"microphone\",\"microphone-slash\",\"shield\",\"calendar-o\",\"fire-extinguisher\",\"rocket\",\"maxcdn\",\"chevron-circle-left\",\"chevron-circle-right\",\"chevron-circle-up\",\"chevron-circle-down\",\"html5\",\"css3\",\"anchor\",\"unlock-alt\",\"bullseye\",\"ellipsis-h\",\"ellipsis-v\",\"rss-square\",\"play-circle\",\"ticket\",\"minus-square\",\"minus-square-o\",\"level-up\",\"level-down\",\"check-square\",\"pencil-square\",\"share-square\",\"compass\",\"caret-square-o-down\",\"caret-square-o-up\",\"caret-square-o-right\",\"eur\",\"gbp\",\"usd\",\"inr\",\"jpy\",\"rub\",\"krw\",\"btc\",\"file\",\"file-text\",\"sort-alpha-asc\",\"sort-alpha-desc\",\"sort-amount-asc\",\"sort-amount-desc\",\"sort-numeric-asc\",\"sort-numeric-desc\",\"thumbs-up\",\"thumbs-down\",\"youtube-square\",\"youtube\",\"xing\",\"xing-square\",\"youtube-play\",\"dropbox\",\"stack-overflow\",\"instagram\",\"flickr\",\"adn\",\"bitbucket\",\"bitbucket-square\",\"tumblr\",\"tumblr-square\",\"long-arrow-down\",\"long-arrow-up\",\"long-arrow-left\",\"long-arrow-right\",\"apple\",\"windows\",\"android\",\"linux\",\"dribbble\",\"skype\",\"foursquare\",\"trello\",\"female\",\"male\",\"gratipay\",\"sun-o\",\"moon-o\",\"archive\",\"bug\",\"vk\",\"weibo\",\"renren\",\"pagelines\",\"stack-exchange\",\"arrow-circle-o-right\",\"arrow-circle-o-left\",\"caret-square-o-left\",\"dot-circle-o\",\"wheelchair\",\"vimeo-square\",\"try\",\"plus-square-o\",\"space-shuttle\",\"slack\",\"envelope-square\",\"wordpress\",\"openid\",\"university\",\"graduation-cap\",\"yahoo\",\"google\",\"reddit\",\"reddit-square\",\"stumbleupon-circle\",\"stumbleupon\",\"delicious\",\"digg\",\"pied-piper\",\"pied-piper-alt\",\"drupal\",\"joomla\",\"language\",\"fax\",\"building\",\"child\",\"paw\",\"spoon\",\"cube\",\"cubes\",\"behance\",\"behance-square\",\"steam\",\"steam-square\",\"recycle\",\"car\",\"taxi\",\"tree\",\"spotify\",\"deviantart\",\"soundcloud\",\"database\",\"file-pdf-o\",\"file-word-o\",\"file-excel-o\",\"file-powerpoint-o\",\"file-image-o\",\"file-archive-o\",\"file-audio-o\",\"file-video-o\",\"file-code-o\",\"vine\",\"codepen\",\"jsfiddle\",\"life-ring\",\"circle-o-notch\",\"rebel\",\"empire\",\"git-square\",\"git\",\"hacker-news\",\"tencent-weibo\",\"qq\",\"weixin\",\"paper-plane\",\"paper-plane-o\",\"history\",\"circle-thin\",\"header\",\"paragraph\",\"sliders\",\"share-alt\",\"share-alt-square\",\"bomb\",\"futbol-o\",\"tty\",\"binoculars\",\"plug\",\"slideshare\",\"twitch\",\"yelp\",\"newspaper-o\",\"wifi\",\"calculator\",\"paypal\",\"google-wallet\",\"cc-visa\",\"cc-mastercard\",\"cc-discover\",\"cc-amex\",\"cc-paypal\",\"cc-stripe\",\"bell-slash\",\"bell-slash-o\",\"trash\",\"copyright\",\"at\",\"eyedropper\",\"paint-brush\",\"birthday-cake\",\"area-chart\",\"pie-chart\",\"line-chart\",\"lastfm\",\"lastfm-square\",\"toggle-off\",\"toggle-on\",\"bicycle\",\"bus\",\"ioxhost\",\"angellist\",\"cc\",\"ils\",\"meanpath\",\"buysellads\",\"connectdevelop\",\"dashcube\",\"forumbee\",\"leanpub\",\"sellsy\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"cart-plus\",\"cart-arrow-down\",\"diamond\",\"ship\",\"user-secret\",\"motorcycle\",\"street-view\",\"heartbeat\",\"venus\",\"mars\",\"mercury\",\"transgender\",\"transgender-alt\",\"venus-double\",\"mars-double\",\"venus-mars\",\"mars-stroke\",\"mars-stroke-v\",\"mars-stroke-h\",\"neuter\",\"facebook-official\",\"pinterest-p\",\"whatsapp\",\"server\",\"user-plus\",\"user-times\",\"bed\",\"viacoin\",\"train\",\"subway\",\"medium\",\"GitHub\",\"bed\",\"buysellads\",\"cart-arrow-down\",\"cart-plus\",\"connectdevelop\",\"dashcube\",\"diamond\",\"facebook-official\",\"forumbee\",\"heartbeat\",\"hotel\",\"leanpub\",\"mars\",\"mars-double\",\"mars-stroke\",\"mars-stroke-h\",\"mars-stroke-v\",\"medium\",\"mercury\",\"motorcycle\",\"neuter\",\"pinterest-p\",\"sellsy\",\"server\",\"ship\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"street-view\",\"subway\",\"train\",\"transgender\",\"transgender-alt\",\"user-plus\",\"user-secret\",\"user-times\",\"venus\",\"venus-double\",\"venus-mars\",\"viacoin\",\"whatsapp\",\"adjust\",\"anchor\",\"archive\",\"area-chart\",\"arrows\",\"arrows-h\",\"arrows-v\",\"asterisk\",\"at\",\"automobile\",\"ban\",\"bank\",\"bar-chart\",\"bar-chart-o\",\"barcode\",\"bars\",\"bed\",\"beer\",\"bell\",\"bell-o\",\"bell-slash\",\"bell-slash-o\",\"bicycle\",\"binoculars\",\"birthday-cake\",\"bolt\",\"bomb\",\"book\",\"bookmark\",\"bookmark-o\",\"briefcase\",\"bug\",\"building\",\"building-o\",\"bullhorn\",\"bullseye\",\"bus\",\"cab\",\"calculator\",\"calendar\",\"calendar-o\",\"camera\",\"camera-retro\",\"car\",\"caret-square-o-down\",\"caret-square-o-left\",\"caret-square-o-right\",\"caret-square-o-up\",\"cart-arrow-down\",\"cart-plus\",\"cc\",\"certificate\",\"check\",\"check-circle\",\"check-circle-o\",\"check-square\",\"check-square-o\",\"child\",\"circle\",\"circle-o\",\"circle-o-notch\",\"circle-thin\",\"clock-o\",\"close\",\"cloud\",\"cloud-download\",\"cloud-upload\",\"code\",\"code-fork\",\"coffee\",\"cog\",\"cogs\",\"comment\",\"comment-o\",\"comments\",\"comments-o\",\"compass\",\"copyright\",\"credit-card\",\"crop\",\"crosshairs\",\"cube\",\"cubes\",\"cutlery\",\"dashboard\",\"database\",\"desktop\",\"diamond\",\"dot-circle-o\",\"download\",\"edit\",\"ellipsis-h\",\"ellipsis-v\",\"envelope\",\"envelope-o\",\"envelope-square\",\"eraser\",\"exchange\",\"exclamation\",\"exclamation-circle\",\"exclamation-triangle\",\"external-link\",\"external-link-square\",\"eye\",\"eye-slash\",\"eyedropper\",\"fax\",\"female\",\"fighter-jet\",\"file-archive-o\",\"file-audio-o\",\"file-code-o\",\"file-excel-o\",\"file-image-o\",\"file-movie-o\",\"file-pdf-o\",\"file-photo-o\",\"file-picture-o\",\"file-powerpoint-o\",\"file-sound-o\",\"file-video-o\",\"file-word-o\",\"file-zip-o\",\"film\",\"filter\",\"fire\",\"fire-extinguisher\",\"flag\",\"flag-checkered\",\"flag-o\",\"flash\",\"flask\",\"folder\",\"folder-o\",\"folder-open\",\"folder-open-o\",\"frown-o\",\"futbol-o\",\"gamepad\",\"gavel\",\"gear\",\"gears\",\"genderless\",\"gift\",\"glass\",\"globe\",\"graduation-cap\",\"group\",\"hdd-o\",\"headphones\",\"heart\",\"heart-o\",\"heartbeat\",\"history\",\"home\",\"hotel\",\"image\",\"inbox\",\"info\",\"info-circle\",\"institution\",\"key\",\"keyboard-o\",\"language\",\"laptop\",\"leaf\",\"legal\",\"lemon-o\",\"level-down\",\"level-up\",\"life-bouy\",\"life-buoy\",\"life-ring\",\"life-saver\",\"lightbulb-o\",\"line-chart\",\"location-arrow\",\"lock\",\"magic\",\"magnet\",\"mail-forward\",\"mail-reply\",\"mail-reply-all\",\"male\",\"map-marker\",\"meh-o\",\"microphone\",\"microphone-slash\",\"minus\",\"minus-circle\",\"minus-square\",\"minus-square-o\",\"mobile\",\"mobile-phone\",\"money\",\"moon-o\",\"mortar-board\",\"motorcycle\",\"music\",\"navicon\",\"newspaper-o\",\"paint-brush\",\"paper-plane\",\"paper-plane-o\",\"paw\",\"pencil\",\"pencil-square\",\"pencil-square-o\",\"phone\",\"phone-square\",\"photo\",\"picture-o\",\"pie-chart\",\"plane\",\"plug\",\"plus\",\"plus-circle\",\"plus-square\",\"plus-square-o\",\"power-off\",\"print\",\"puzzle-piece\",\"qrcode\",\"question\",\"question-circle\",\"quote-left\",\"quote-right\",\"random\",\"recycle\",\"refresh\",\"remove\",\"reorder\",\"reply\",\"reply-all\",\"retweet\",\"road\",\"rocket\",\"rss\",\"rss-square\",\"search\",\"search-minus\",\"search-plus\",\"send\",\"send-o\",\"server\",\"share\",\"share-alt\",\"share-alt-square\",\"share-square\",\"share-square-o\",\"shield\",\"ship\",\"shopping-cart\",\"sign-in\",\"sign-out\",\"signal\",\"sitemap\",\"sliders\",\"smile-o\",\"soccer-ball-o\",\"sort\",\"sort-alpha-asc\",\"sort-alpha-desc\",\"sort-amount-asc\",\"sort-amount-desc\",\"sort-asc\",\"sort-desc\",\"sort-down\",\"sort-numeric-asc\",\"sort-numeric-desc\",\"sort-up\",\"space-shuttle\",\"spinner\",\"spoon\",\"square\",\"square-o\",\"star\",\"star-half\",\"star-half-empty\",\"star-half-full\",\"star-half-o\",\"star-o\",\"street-view\",\"suitcase\",\"sun-o\",\"support\",\"tablet\",\"tachometer\",\"tag\",\"tags\",\"tasks\",\"taxi\",\"terminal\",\"thumb-tack\",\"thumbs-down\",\"thumbs-o-down\",\"thumbs-o-up\",\"thumbs-up\",\"ticket\",\"times\",\"times-circle\",\"times-circle-o\",\"tint\",\"toggle-down\",\"toggle-left\",\"toggle-off\",\"toggle-on\",\"toggle-right\",\"toggle-up\",\"trash\",\"trash-o\",\"tree\",\"trophy\",\"truck\",\"tty\",\"umbrella\",\"university\",\"unlock\",\"unlock-alt\",\"unsorted\",\"upload\",\"user\",\"user-plus\",\"user-secret\",\"user-times\",\"users\",\"video-camera\",\"volume-down\",\"volume-off\",\"volume-up\",\"warning\",\"wheelchair\",\"wifi\",\"wrench\",\"ambulance\",\"automobile\",\"bicycle\",\"bus\",\"cab\",\"car\",\"fighter-jet\",\"motorcycle\",\"plane\",\"rocket\",\"ship\",\"space-shuttle\",\"subway\",\"taxi\",\"train\",\"truck\",\"wheelchair\",\"circle-thin\",\"genderless\",\"mars\",\"mars-double\",\"mars-stroke\",\"mars-stroke-h\",\"mars-stroke-v\",\"mercury\",\"neuter\",\"transgender\",\"transgender-alt\",\"venus\",\"venus-double\",\"venus-mars\",\"file\",\"file-archive-o\",\"file-audio-o\",\"file-code-o\",\"file-excel-o\",\"file-image-o\",\"file-movie-o\",\"file-o\",\"file-pdf-o\",\"file-photo-o\",\"file-picture-o\",\"file-powerpoint-o\",\"file-sound-o\",\"file-text\",\"file-text-o\",\"file-video-o\",\"file-word-o\",\"file-zip-o\",\"circle-o-notch\",\"cog\",\"gear\",\"refresh\",\"spinner\",\"check-square\",\"check-square-o\",\"circle\",\"circle-o\",\"dot-circle-o\",\"minus-square\",\"minus-square-o\",\"plus-square\",\"plus-square-o\",\"square\",\"square-o\",\"cc-amex\",\"cc-discover\",\"cc-mastercard\",\"cc-paypal\",\"cc-stripe\",\"cc-visa\",\"credit-card\",\"google-wallet\",\"paypal\",\"area-chart\",\"bar-chart\",\"bar-chart-o\",\"line-chart\",\"pie-chart\",\"bitcoin\",\"btc\",\"cny\",\"dollar\",\"eur\",\"euro\",\"gbp\",\"ils\",\"inr\",\"jpy\",\"krw\",\"money\",\"rmb\",\"rouble\",\"rub\",\"ruble\",\"rupee\",\"shekel\",\"sheqel\",\"try\",\"turkish-lira\",\"usd\",\"won\",\"yen\",\"align-center\",\"align-justify\",\"align-left\",\"align-right\",\"bold\",\"chain\",\"chain-broken\",\"clipboard\",\"columns\",\"copy\",\"cut\",\"dedent\",\"eraser\",\"file\",\"file-o\",\"file-text\",\"file-text-o\",\"files-o\",\"floppy-o\",\"font\",\"header\",\"indent\",\"italic\",\"link\",\"list\",\"list-alt\",\"list-ol\",\"list-ul\",\"outdent\",\"paperclip\",\"paragraph\",\"paste\",\"repeat\",\"rotate-left\",\"rotate-right\",\"save\",\"scissors\",\"strikethrough\",\"subscript\",\"superscript\",\"table\",\"text-height\",\"text-width\",\"th\",\"th-large\",\"th-list\",\"underline\",\"undo\",\"unlink\",\"angle-double-down\",\"angle-double-left\",\"angle-double-right\",\"angle-double-up\",\"angle-down\",\"angle-left\",\"angle-right\",\"angle-up\",\"arrow-circle-down\",\"arrow-circle-left\",\"arrow-circle-o-down\",\"arrow-circle-o-left\",\"arrow-circle-o-right\",\"arrow-circle-o-up\",\"arrow-circle-right\",\"arrow-circle-up\",\"arrow-down\",\"arrow-left\",\"arrow-right\",\"arrow-up\",\"arrows\",\"arrows-alt\",\"arrows-h\",\"arrows-v\",\"caret-down\",\"caret-left\",\"caret-right\",\"caret-square-o-down\",\"caret-square-o-left\",\"caret-square-o-right\",\"caret-square-o-up\",\"caret-up\",\"chevron-circle-down\",\"chevron-circle-left\",\"chevron-circle-right\",\"chevron-circle-up\",\"chevron-down\",\"chevron-left\",\"chevron-right\",\"chevron-up\",\"hand-o-down\",\"hand-o-left\",\"hand-o-right\",\"hand-o-up\",\"long-arrow-down\",\"long-arrow-left\",\"long-arrow-right\",\"long-arrow-up\",\"toggle-down\",\"toggle-left\",\"toggle-right\",\"toggle-up\",\"arrows-alt\",\"backward\",\"compress\",\"eject\",\"expand\",\"fast-backward\",\"fast-forward\",\"forward\",\"pause\",\"play\",\"play-circle\",\"play-circle-o\",\"step-backward\",\"step-forward\",\"stop\",\"youtube-play\",\"report an issue with Adblock Plus\",\"adn\",\"android\",\"angellist\",\"apple\",\"behance\",\"behance-square\",\"bitbucket\",\"bitbucket-square\",\"bitcoin\",\"btc\",\"buysellads\",\"cc-amex\",\"cc-discover\",\"cc-mastercard\",\"cc-paypal\",\"cc-stripe\",\"cc-visa\",\"codepen\",\"connectdevelop\",\"css3\",\"dashcube\",\"delicious\",\"deviantart\",\"digg\",\"dribbble\",\"dropbox\",\"drupal\",\"empire\",\"facebook\",\"facebook-f\",\"facebook-official\",\"facebook-square\",\"flickr\",\"forumbee\",\"foursquare\",\"ge\",\"git\",\"git-square\",\"github\",\"github-alt\",\"github-square\",\"gittip\",\"google\",\"google-plus\",\"google-plus-square\",\"google-wallet\",\"gratipay\",\"hacker-news\",\"html5\",\"instagram\",\"ioxhost\",\"joomla\",\"jsfiddle\",\"lastfm\",\"lastfm-square\",\"leanpub\",\"linkedin\",\"linkedin-square\",\"linux\",\"maxcdn\",\"meanpath\",\"medium\",\"openid\",\"pagelines\",\"paypal\",\"pied-piper\",\"pied-piper-alt\",\"pinterest\",\"pinterest-p\",\"pinterest-square\",\"qq\",\"ra\",\"rebel\",\"reddit\",\"reddit-square\",\"renren\",\"sellsy\",\"share-alt\",\"share-alt-square\",\"shirtsinbulk\",\"simplybuilt\",\"skyatlas\",\"skype\",\"slack\",\"slideshare\",\"soundcloud\",\"spotify\",\"stack-exchange\",\"stack-overflow\",\"steam\",\"steam-square\",\"stumbleupon\",\"stumbleupon-circle\",\"tencent-weibo\",\"trello\",\"tumblr\",\"tumblr-square\",\"twitch\",\"twitter\",\"twitter-square\",\"viacoin\",\"vimeo-square\",\"vine\",\"vk\",\"wechat\",\"weibo\",\"weixin\",\"whatsapp\",\"windows\",\"wordpress\",\"xing\",\"xing-square\",\"yahoo\",\"yelp\",\"youtube\",\"youtube-play\",\"youtube-square\",\"ambulance\",\"h-square\",\"heart\",\"heart-o\",\"heartbeat\",\"hospital-o\",\"medkit\",\"plus-square\",\"stethoscope\",\"user-md\",\"wheelchair\"]\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/goto-line-dialog/goto-line-dialog.js",
    "content": "/*!\n * Goto line dialog plugin for Editor.md\n *\n * @file        goto-line-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"goto-line-dialog\";\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"跳转到行\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"跳转到行\",\n\t\t\t\t\t\tlabel  : \"请输入行号\",\n\t\t\t\t\t\terror  : \"错误：\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"跳轉到行\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"跳轉到行\",\n\t\t\t\t\t\tlabel  : \"請輸入行號\",\n\t\t\t\t\t\terror  : \"錯誤：\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\t\"goto-line\" : \"Goto line\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\t\"goto-line\" : {\n\t\t\t\t\t\ttitle  : \"Goto line\",\n\t\t\t\t\t\tlabel  : \"Enter a line number, range \",\n\t\t\t\t\t\terror  : \"Error: \"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.gotoLineDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName +\"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogLang  = lang.dialog[\"goto-line\"];\n\t\t\tvar lineCount   = cm.lineCount();\n\n\t\t\tdialogLang.error += dialogLang.label + \" 1-\" + lineCount;\n\n\t\t\tif (editor.find(\".\" + dialogName).length < 1) \n\t\t\t{\t\t\t\n\t\t\t\tvar dialogContent = [\n\t\t\t\t\t\"<div class=\\\"editormd-form\\\" style=\\\"padding: 10px 0;\\\">\",\n\t\t\t\t\t\"<p style=\\\"margin: 0;\\\">\" + dialogLang.label + \" 1-\" + lineCount +\"&nbsp;&nbsp;&nbsp;<input type=\\\"number\\\" class=\\\"number-input\\\" style=\\\"width: 60px;\\\" value=\\\"1\\\" max=\\\"\" + lineCount + \"\\\" min=\\\"1\\\" data-line-number /></p>\",\n\t\t\t\t\t\"</div>\"\n\t\t\t\t].join(\"\\n\");\n\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 400,\n\t\t\t\t\theight     : 180,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n                        enter : [lang.buttons.enter, function() {\n\t\t\t\t\t\t\tvar line   = parseInt(this.find(\"[data-line-number]\").val());\n\n\t\t\t\t\t\t\tif (line < 1 || line > lineCount) {\n\t\t\t\t\t\t\t\talert(dialogLang.error);\n\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_this.gotoLine(line);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/help-dialog/help-dialog.js",
    "content": "/*!\n * Help dialog plugin for Editor.md\n *\n * @file        help-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"help-dialog\";\n\n\t\texports.fn.helpDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.help;\n\n\t\t\tif (editor.find(\".\" + dialogName).length < 1)\n\t\t\t{\t\t\t\n\t\t\t\tvar dialogContent = \"<div class=\\\"markdown-body\\\" style=\\\"font-family:微软雅黑, Helvetica, Tahoma, STXihei,Arial;height:390px;overflow:auto;font-size:14px;border-bottom:1px solid #ddd;padding:0 20px 20px 0;\\\"></div>\";\n\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 840,\n\t\t\t\t\theight     : 540,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tclose : [lang.buttons.close, function() {      \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t\tvar helpContent = dialog.find(\".markdown-body\");\n\n\t\t\tif (helpContent.html() === \"\") \n\t\t\t{\n\t\t\t\t$.get(path + \"help.md\", function(text) {\n\t\t\t\t\tvar md = exports.$marked(text);\n\t\t\t\t\thelpContent.html(md);\n                    \n                    helpContent.find(\"a\").attr(\"target\", \"_blank\");\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/help-dialog/help.md",
    "content": "##### Markdown语法教程 (Markdown syntax tutorial)\n\n- [Markdown Syntax](http://daringfireball.net/projects/markdown/syntax/ \"Markdown Syntax\")\n- [Mastering Markdown](https://guides.github.com/features/mastering-markdown/ \"Mastering Markdown\")\n- [Markdown Basics](https://help.github.com/articles/markdown-basics/ \"Markdown Basics\")\n- [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/ \"GitHub Flavored Markdown\")\n- [Markdown 语法说明（简体中文）](http://www.markdown.cn/ \"Markdown 语法说明（简体中文）\")\n- [Markdown 語法說明（繁體中文）](http://markdown.tw/ \"Markdown 語法說明（繁體中文）\")\n\n##### 键盘快捷键 (Keyboard shortcuts)\n\n> If Editor.md code editor is on focus, you can use keyboard shortcuts.\n    \n| Keyboard shortcuts (键盘快捷键)                 |   说明                            | Description                                        |\n| :---------------------------------------------- |:--------------------------------- | :------------------------------------------------- |\n| F9                                              | 切换实时预览                      | Switch watch/unwatch                               |\n| F10                                             | 全屏HTML预览(按 Shift + ESC 退出) | Full preview HTML (Press Shift + ESC exit)         |\n| F11                                             | 切换全屏状态                      | Switch fullscreen (Press ESC exit)                 |\n| Ctrl + 1~6 / Command + 1~6                      | 插入标题1~6                       | Insert heading 1~6                                 |\n| Ctrl + A / Command + A                          | 全选                              | Select all                                         |\n| Ctrl + B / Command + B                          | 插入粗体                          | Insert bold                                        |\n| Ctrl + D / Command + D                          | 插入日期时间                      | Insert datetime                                    |\n| Ctrl + E / Command + E                          | 插入Emoji符号                     | Insert &#58;emoji&#58;                             |\n| Ctrl + F / Command + F                          | 查找/搜索                         | Start searching                                    |\n| Ctrl + G / Command + G                          | 切换到下一个搜索结果项            | Find next search results                           |\n| Ctrl + H / Command + H                          | 插入水平线                        | Insert horizontal rule                             |\n| Ctrl + I / Command + I                          | 插入斜体                          | Insert italic                                      |\n| Ctrl + K / Command + K                          | 插入行内代码                      | Insert inline code                                 |\n| Ctrl + L / Command + L                          | 插入链接                          | Insert link                                        |\n| Ctrl + U / Command + U                          | 插入无序列表                      | Insert unordered list                              |\n| Ctrl + Q                                        | 代码折叠切换                      | Switch code fold                                   |\n| Ctrl + Z / Command + Z                          | 撤销                              | Undo                                               |\n| Ctrl + Y / Command + Y                          | 重做                              | Redo                                               |\n| Ctrl + Shift + A                                | 插入@链接                         | Insert &#64;link                                   |\n| Ctrl + Shift + C                                | 插入行内代码                      | Insert inline code                                 |\n| Ctrl + Shift + E                                | 打开插入Emoji表情对话框           | Open emoji dialog                                  |\n| Ctrl + Shift + F / Command + Option + F         | 替换                              | Replace                                            |\n| Ctrl + Shift + G / Shift + Command + G          | 切换到上一个搜索结果项            | Find previous search results                       |\n| Ctrl + Shift + H                                | 打开HTML实体字符对话框            | Open HTML Entities dialog                          |\n| Ctrl + Shift + I                                | 插入图片                          | Insert image &#33;[]&#40;&#41;                     |\n| Ctrl + Shift + K                                | 插入TeX(KaTeX)公式符号            | Insert TeX(KaTeX) symbol &#36;&#36;TeX&#36;&#36;   |\n| Ctrl + Shift + L                                | 打开插入链接对话框                | Open link dialog                                   |\n| Ctrl + Shift + O                                | 插入有序列表                      | Insert ordered list                                |\n| Ctrl + Shift + P                                | 打开插入PRE对话框                 | Open Preformatted text dialog                      |\n| Ctrl + Shift + Q                                | 插入引用                          | Insert blockquotes                                 |\n| Ctrl + Shift + R / Shift + Command + Option + F | 全部替换                          | Replace all                                        |\n| Ctrl + Shift + S                                | 插入删除线                        | Insert strikethrough                               |\n| Ctrl + Shift + T                                | 打开插入表格对话框                | Open table dialog                                  |\n| Ctrl + Shift + U                                | 将所选文字转成大写                | Selection text convert to uppercase                |\n| Shift + Alt + C                                 | 插入```代码                       | Insert code blocks (```)                           |\n| Shift + Alt + H                                 | 打开使用帮助对话框                | Open help dialog                                   |\n| Shift + Alt + L                                 | 将所选文本转成小写                | Selection text convert to lowercase                |\n| Shift + Alt + P                                 | 插入分页符                        | Insert page break                                  |\n| Alt + L                                         | 将所选文本转成小写                | Selection text convert to lowercase                |\n| Shift + Alt + U                                 | 将所选的每个单词的首字母转成大写  | Selection words first letter convert to Uppercase  |\n| Ctrl + Shift + Alt + C                          | 打开插入代码块对话框层            | Open code blocks dialog                            |\n| Ctrl + Shift + Alt + I                          | 打开插入图片对话框层              | Open image dialog                                  |\n| Ctrl + Shift + Alt + U                          | 将所选文本的第一个首字母转成大写  | Selection text first letter convert to uppercase   |\n| Ctrl + Alt + G                                  | 跳转到指定的行                    | Goto line                                          |\n\n##### Emoji表情参考 (Emoji reference)\n\n- [Github emoji](http://www.emoji-cheat-sheet.com/ \"Github emoji\")\n- [Twitter Emoji \\(Twemoji\\)](http://twitter.github.io/twemoji/preview.html \"Twitter Emoji \\(Twemoji\\)\")\n- [FontAwesome icons emoji](http://fortawesome.github.io/Font-Awesome/icons/ \"FontAwesome icons emoji\")\n\n##### 流程图参考 (Flowchart reference)\n\n[http://adrai.github.io/flowchart.js/](http://adrai.github.io/flowchart.js/)\n\n##### 时序图参考 (SequenceDiagram reference)\n\n[http://bramp.github.io/js-sequence-diagrams/](http://bramp.github.io/js-sequence-diagrams/)\n\n##### TeX/LaTeX reference\n\n[http://meta.wikimedia.org/wiki/Help:Formula](http://meta.wikimedia.org/wiki/Help:Formula)\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/html-entities-dialog/html-entities-dialog.js",
    "content": "/*!\n * HTML entities dialog plugin for Editor.md\n *\n * @file        html-entities-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-08\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"html-entities-dialog\";\n\t\tvar selecteds    = [];\n\t\tvar entitiesData = [];\n\n\t\texports.fn.htmlEntitiesDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar path        = settings.pluginPath + pluginName + \"/\";\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = _this.classPrefix;\n\n\t\t\tvar dialogName  = classPrefix + \"dialog-\" + pluginName, dialog;\n\t\t\tvar dialogLang  = lang.dialog.htmlEntities;\n\n\t\t\tvar dialogContent = [\n\t\t\t\t'<div class=\"' + classPrefix + 'html-entities-box\" style=\\\"width: 760px;height: 334px;margin-bottom: 8px;overflow: hidden;overflow-y: auto;\\\">',\n\t\t\t\t'<div class=\"' + classPrefix + 'grid-table\">',\n\t\t\t\t'</div>',\n\t\t\t\t'</div>',\n\t\t\t].join(\"\\r\\n\");\n\n\t\t\tcm.focus();\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tselecteds = [];\n\t\t\t\tdialog.find(\"a\").removeClass(\"selected\");\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 800,\n\t\t\t\t\theight     : 475,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n\t\t\t\t\t\tenter  : [lang.buttons.enter, function() {\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tcm.replaceSelection(selecteds.join(\" \"));\n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}],\n\t\t\t\t\t\tcancel : [lang.buttons.cancel, function() {                           \n\t\t\t\t\t\t\tthis.hide().lockScreen(false).hideMask();\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\t\t\n\t\t\tvar table = dialog.find(\".\" + classPrefix + \"grid-table\");\n\n\t\t\tvar drawTable = function() {\n\n\t\t\t\tif (entitiesData.length < 1) return ;\n\n\t\t\t\tvar rowNumber = 20;\n\t\t\t\tvar pageTotal = Math.ceil(entitiesData.length / rowNumber);\n\n\t\t\t\ttable.html(\"\");\n\t\t\t\t\n\t\t\t\tfor (var i = 0; i < pageTotal; i++)\n\t\t\t\t{\n\t\t\t\t\tvar row = \"<div class=\\\"\" + classPrefix + \"grid-table-row\\\">\";\n\t\t\t\t\t\n\t\t\t\t\tfor (var x = 0; x < rowNumber; x++)\n\t\t\t\t\t{\n\t\t\t\t\t\tvar entity = entitiesData[(i * rowNumber) + x];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (typeof entity !== \"undefined\")\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar name = entity.name.replace(\"&amp;\", \"&\");\n\n\t\t\t\t\t\t\trow += \"<a href=\\\"javascript:;\\\" value=\\\"\" + entity.name + \"\\\" title=\\\"\" + name + \"\\\" class=\\\"\" + classPrefix + \"html-entity-btn\\\">\" + name + \"</a>\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trow += \"</div>\";\n\t\t\t\t\t\n\t\t\t\t\ttable.append(row);\n\t\t\t\t}\n\n\t\t\t\tdialog.find(\".\" + classPrefix + \"html-entity-btn\").bind(exports.mouseOrTouch(\"click\", \"touchend\"), function() {\n\t\t\t\t\t$(this).toggleClass(\"selected\");\n\n\t\t\t\t\tif ($(this).hasClass(\"selected\")) \n\t\t\t\t\t{\n\t\t\t\t\t\tselecteds.push($(this).attr(\"value\"));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\tif (entitiesData.length < 1) \n\t\t\t{            \n\t\t\t\tif (typeof (dialog.loading) == \"function\") dialog.loading(true);\n\n\t\t\t\t$.getJSON(path + pluginName.replace(\"-dialog\", \"\") + \".json\", function(json) {\n\n\t\t\t\t\tif (typeof (dialog.loading) == \"function\") dialog.loading(false);\n\n\t\t\t\t\tentitiesData = json;\n\t\t\t\t\tdrawTable();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\t\t\n\t\t\t\tdrawTable();\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/html-entities-dialog/html-entities.json",
    "content": "[\n\t{\n\t\t\"name\" : \"&amp;#64;\",\n\t\t\"description\":\"at symbol\"\t\t\n\t},\n\t{\n\t\t\"name\":\"&amp;copy;\",\n\t\t\"description\":\"copyright symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;reg;\",\n\t\t\"description\":\"registered symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;trade;\",\n\t\t\"description\":\"trademark symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hearts;\",\n\t\t\"description\":\"heart\"\n\t},\n\t{\n\t\t\"name\":\"&amp;nbsp;\",\n\t\t\"description\":\"Inserts a non-breaking blank space\"\n\t},\n\t{\n\t\t\"name\":\"&amp;amp;\",\n\t\t\"description\":\"Ampersand\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#36;\",\n\t\t\"description\":\"dollar symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;cent;\",\n\t\t\"description\":\"Cent symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;pound;\",\n\t\t\"description\":\"Pound\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yen;\",\n\t\t\"description\":\"Yen\"\n\t},\n\t{\n\t\t\"name\":\"&amp;euro;\",\n\t\t\"description\":\"Euro symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;quot;\",\n\t\t\"description\":\"quotation mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ldquo;\",\n\t\t\"description\":\"Opening Double Quotes \"\n\t},\n\t{\n\t\t\"name\":\"&amp;rdquo;\",\n\t\t\"description\":\"Closing Double Quotes \"\n\t},\n\t{\n\t\t\"name\":\"&amp;lsquo;\",\n\t\t\"description\":\"Opening Single Quote Mark \"\n\t},\n\t{\n\t\t\"name\":\"&amp;rsquo;\",\n\t\t\"description\":\"Closing Single Quote Mark \"\n\t},\n\t{\n\t\t\"name\":\"&amp;laquo;\",\n\t\t\"description\":\"angle quotation mark (left)\"\n\t},\n\t{\n\t\t\"name\":\"&amp;raquo;\",\n\t\t\"description\":\"angle quotation mark (right)\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lsaquo;\",\n\t\t\"description\":\"single left angle quotation\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rsaquo;\",\n\t\t\"description\":\"single right angle quotation\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sect;\",\n\t\t\"description\":\"Section Symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;micro;\",\n\t\t\"description\":\"micro sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;para;\",\n\t\t\"description\":\"Paragraph symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;bull;\",\n\t\t\"description\":\"Big List Dot\"\n\t},\n\t{\n\t\t\"name\":\"&amp;middot;\",\n\t\t\"description\":\"Medium List Dot\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hellip;\",\n\t\t\"description\":\"horizontal ellipsis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#124;\",\n\t\t\"description\":\"vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;brvbar;\",\n\t\t\"description\":\"broken vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ndash;\",\n\t\t\"description\":\"en-dash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;mdash;\",\n\t\t\"description\":\"em-dash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;curren;\",\n\t\t\"description\":\"Generic currency symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#33;\",\n\t\t\"description\":\"exclamation point\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#35;\",\n\t\t\"description\":\"number sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#39;\",\n\t\t\"description\":\"single quote\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#40;\",\n\t\t\"description\":\"\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#41;\",\n\t\t\"description\":\"\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#42;\",\n\t\t\"description\":\"asterisk\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#43;\",\n\t\t\"description\":\"plus sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#44;\",\n\t\t\"description\":\"comma\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#45;\",\n\t\t\"description\":\"minus sign - hyphen\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#46;\",\n\t\t\"description\":\"period\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#47;\",\n\t\t\"description\":\"slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#48;\",\n\t\t\"description\":\"0\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#49;\",\n\t\t\"description\":\"1\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#50;\",\n\t\t\"description\":\"2\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#51;\",\n\t\t\"description\":\"3\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#52;\",\n\t\t\"description\":\"4\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#53;\",\n\t\t\"description\":\"5\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#54;\",\n\t\t\"description\":\"6\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#55;\",\n\t\t\"description\":\"7\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#56;\",\n\t\t\"description\":\"8\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#57;\",\n\t\t\"description\":\"9\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#58;\",\n\t\t\"description\":\"colon\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#59;\",\n\t\t\"description\":\"semicolon\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#61;\",\n\t\t\"description\":\"equal sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#63;\",\n\t\t\"description\":\"question mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lt;\",\n\t\t\"description\":\"Less than\"\n\t},\n\t{\n\t\t\"name\":\"&amp;gt;\",\n\t\t\"description\":\"Greater than\"\n\t},\n\t{\n\t\t\"name\":\"&amp;le;\",\n\t\t\"description\":\"Less than or Equal to\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ge;\",\n\t\t\"description\":\"Greater than or Equal to\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"Multiplication symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;divide;\",\n\t\t\"description\":\"Division symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;minus;\",\n\t\t\"description\":\"Minus symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;plusmn;\",\n\t\t\"description\":\"Plus/minus symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ne;\",\n\t\t\"description\":\"Not Equal\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup1;\",\n\t\t\"description\":\"Superscript 1\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup2;\",\n\t\t\"description\":\"Superscript 2\"\n\t},\n\t{\n\t\t\"name\":\"&amp;sup3;\",\n\t\t\"description\":\"Superscript 3\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac12;\",\n\t\t\"description\":\"Fraction ½\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac14;\",\n\t\t\"description\":\"Fraction ¼\"\n\t},\n\t{\n\t\t\"name\":\"&amp;frac34;\",\n\t\t\"description\":\"Fraction ¾\"\n\t},\n\t{\n\t\t\"name\":\"&amp;permil;\",\n\t\t\"description\":\"per mille\"\n\t},\n\t{\n\t\t\"name\":\"&amp;deg;\",\n\t\t\"description\":\"Degree symbol\"\n\t},\n\t{\n\t\t\"name\":\"&amp;radic;\",\n\t\t\"description\":\"square root\"\n\t},\n\t{\n\t\t\"name\":\"&amp;infin;\",\n\t\t\"description\":\"Infinity\"\n\t},\n\t{\n\t\t\"name\":\"&amp;larr;\",\n\t\t\"description\":\"left arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uarr;\",\n\t\t\"description\":\"up arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rarr;\",\n\t\t\"description\":\"right arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;darr;\",\n\t\t\"description\":\"down arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;harr;\",\n\t\t\"description\":\"left right arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;crarr;\",\n\t\t\"description\":\"carriage return arrow\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lceil;\",\n\t\t\"description\":\"left ceiling\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rceil;\",\n\t\t\"description\":\"right ceiling\"\n\t},\n\t{\n\t\t\"name\":\"&amp;lfloor;\",\n\t\t\"description\":\"left floor\"\n\t},\n\t{\n\t\t\"name\":\"&amp;rfloor;\",\n\t\t\"description\":\"right floor\"\n\t},\n\t{\n\t\t\"name\":\"&amp;spades;\",\n\t\t\"description\":\"spade\"\n\t},\n\t{\n\t\t\"name\":\"&amp;clubs;\",\n\t\t\"description\":\"club\"\n\t},\n\t{\n\t\t\"name\":\"&amp;hearts;\",\n\t\t\"description\":\"heart\"\n\t},\n\t{\n\t\t\"name\":\"&amp;diams;\",\n\t\t\"description\":\"diamond\"\n\t},\n\t{\n\t\t\"name\":\"&amp;loz;\",\n\t\t\"description\":\"lozenge\"\n\t},\n\t{\n\t\t\"name\":\"&amp;dagger;\",\n\t\t\"description\":\"dagger\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Dagger;\",\n\t\t\"description\":\"double dagger\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iexcl;\",\n\t\t\"description\":\"inverted exclamation mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iquest;\",\n\t\t\"description\":\"inverted question mark\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#338;\",\n\t\t\"description\":\"latin capital letter OE\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#339;\",\n\t\t\"description\":\"latin small letter oe\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#352;\",\n\t\t\"description\":\"latin capital letter S with caron\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#353;\",\n\t\t\"description\":\"latin small letter s with caron\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#376;\",\n\t\t\"description\":\"latin capital letter Y with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#402;\",\n\t\t\"description\":\"latin small f with hook - function\"\n\t},\n\t{\n\t\t\"name\":\"&amp;not;\",\n\t\t\"description\":\"not sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ordf;\",\n\t\t\"description\":\"feminine ordinal indicator\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uml;\",\n\t\t\"description\":\"spacing diaeresis - umlaut\"\n\t},\n\t{\n\t\t\"name\":\"&amp;macr;\",\n\t\t\"description\":\"spacing macron - overline\"\n\t},\n\t{\n\t\t\"name\":\"&amp;acute;\",\n\t\t\"description\":\"acute accent - spacing acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Agrave;\",\n\t\t\"description\":\"latin capital letter A with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Aacute;\",\n\t\t\"description\":\"latin capital letter A with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Acirc;\",\n\t\t\"description\":\"latin capital letter A with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Atilde;\",\n\t\t\"description\":\"latin capital letter A with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Auml;\",\n\t\t\"description\":\"latin capital letter A with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Aring;\",\n\t\t\"description\":\"latin capital letter A with ring above\"\n\t},\n\t{\n\t\t\"name\":\"&amp;AElig;\",\n\t\t\"description\":\"latin capital letter AE\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ccedil;\",\n\t\t\"description\":\"latin capital letter C with cedilla\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Egrave;\",\n\t\t\"description\":\"latin capital letter E with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Eacute;\",\n\t\t\"description\":\"latin capital letter E with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ecirc;\",\n\t\t\"description\":\"latin capital letter E with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Euml;\",\n\t\t\"description\":\"latin capital letter E with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Igrave;\",\n\t\t\"description\":\"latin capital letter I with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iacute;\",\n\t\t\"description\":\"latin capital letter I with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Icirc;\",\n\t\t\"description\":\"latin capital letter I with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iuml;\",\n\t\t\"description\":\"latin capital letter I with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;ETH;\",\n\t\t\"description\":\"latin capital letter ETH\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ntilde;\",\n\t\t\"description\":\"latin capital letter N with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ograve;\",\n\t\t\"description\":\"latin capital letter O with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Oacute;\",\n\t\t\"description\":\"latin capital letter O with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ocirc;\",\n\t\t\"description\":\"latin capital letter O with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Otilde;\",\n\t\t\"description\":\"latin capital letter O with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ouml;\",\n\t\t\"description\":\"latin capital letter O with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"multiplication sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Oslash;\",\n\t\t\"description\":\"latin capital letter O with slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ugrave;\",\n\t\t\"description\":\"latin capital letter U with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Uacute;\",\n\t\t\"description\":\"latin capital letter U with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Ucirc;\",\n\t\t\"description\":\"latin capital letter U with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Uuml;\",\n\t\t\"description\":\"latin capital letter U with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Yacute;\",\n\t\t\"description\":\"latin capital letter Y with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;THORN;\",\n\t\t\"description\":\"latin capital letter THORN\"\n\t},\n\t{\n\t\t\"name\":\"&amp;szlig;\",\n\t\t\"description\":\"latin small letter sharp s - ess-zed\"\n\t},\n\n\n\t{\n\t\t\"name\":\"&amp;eth;\",\n\t\t\"description\":\"latin capital letter eth\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ntilde;\",\n\t\t\"description\":\"latin capital letter n with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ograve;\",\n\t\t\"description\":\"latin capital letter o with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;oacute;\",\n\t\t\"description\":\"latin capital letter o with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ocirc;\",\n\t\t\"description\":\"latin capital letter o with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;otilde;\",\n\t\t\"description\":\"latin capital letter o with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ouml;\",\n\t\t\"description\":\"latin capital letter o with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;times;\",\n\t\t\"description\":\"multiplication sign\"\n\t},\n\t{\n\t\t\"name\":\"&amp;oslash;\",\n\t\t\"description\":\"latin capital letter o with slash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ugrave;\",\n\t\t\"description\":\"latin capital letter u with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uacute;\",\n\t\t\"description\":\"latin capital letter u with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ucirc;\",\n\t\t\"description\":\"latin capital letter u with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;uuml;\",\n\t\t\"description\":\"latin capital letter u with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yacute;\",\n\t\t\"description\":\"latin capital letter y with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;thorn;\",\n\t\t\"description\":\"latin capital letter thorn\"\n\t},\n\t{\n\t\t\"name\":\"&amp;yuml;\",\n\t\t\"description\":\"latin small letter y with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;agrave;\",\n\t\t\"description\":\"latin capital letter a with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aacute;\",\n\t\t\"description\":\"latin capital letter a with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;acirc;\",\n\t\t\"description\":\"latin capital letter a with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;atilde;\",\n\t\t\"description\":\"latin capital letter a with tilde\"\n\t},\n\t{\n\t\t\"name\":\"&amp;auml;\",\n\t\t\"description\":\"latin capital letter a with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aring;\",\n\t\t\"description\":\"latin capital letter a with ring above\"\n\t},\n\t{\n\t\t\"name\":\"&amp;aelig;\",\n\t\t\"description\":\"latin capital letter ae\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ccedil;\",\n\t\t\"description\":\"latin capital letter c with cedilla\"\n\t},\n\t{\n\t\t\"name\":\"&amp;egrave;\",\n\t\t\"description\":\"latin capital letter e with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;eacute;\",\n\t\t\"description\":\"latin capital letter e with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;ecirc;\",\n\t\t\"description\":\"latin capital letter e with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;euml;\",\n\t\t\"description\":\"latin capital letter e with diaeresis\"\n\t},\n\t{\n\t\t\"name\":\"&amp;igrave;\",\n\t\t\"description\":\"latin capital letter i with grave\"\n\t},\n\t{\n\t\t\"name\":\"&amp;Iacute;\",\n\t\t\"description\":\"latin capital letter i with acute\"\n\t},\n\t{\n\t\t\"name\":\"&amp;icirc;\",\n\t\t\"description\":\"latin capital letter i with circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;iuml;\",\n\t\t\"description\":\"latin capital letter i with diaeresis\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;#65;\",\n\t\t\"description\":\"A\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#66;\",\n\t\t\"description\":\"B\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#67;\",\n\t\t\"description\":\"C\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#68;\",\n\t\t\"description\":\"D\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#69;\",\n\t\t\"description\":\"E\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#70;\",\n\t\t\"description\":\"F\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#71;\",\n\t\t\"description\":\"G\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#72;\",\n\t\t\"description\":\"H\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#73;\",\n\t\t\"description\":\"I\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#74;\",\n\t\t\"description\":\"J\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#75;\",\n\t\t\"description\":\"K\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#76;\",\n\t\t\"description\":\"L\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#77;\",\n\t\t\"description\":\"M\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#78;\",\n\t\t\"description\":\"N\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#79;\",\n\t\t\"description\":\"O\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#80;\",\n\t\t\"description\":\"P\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#81;\",\n\t\t\"description\":\"Q\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#82;\",\n\t\t\"description\":\"R\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#83;\",\n\t\t\"description\":\"S\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#84;\",\n\t\t\"description\":\"T\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#85;\",\n\t\t\"description\":\"U\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#86;\",\n\t\t\"description\":\"V\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#87;\",\n\t\t\"description\":\"W\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#88;\",\n\t\t\"description\":\"X\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#89;\",\n\t\t\"description\":\"Y\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#90;\",\n\t\t\"description\":\"Z\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#91;\",\n\t\t\"description\":\"opening bracket\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#92;\",\n\t\t\"description\":\"backslash\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#93;\",\n\t\t\"description\":\"closing bracket\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#94;\",\n\t\t\"description\":\"caret - circumflex\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#95;\",\n\t\t\"description\":\"underscore\"\n\t},\n\n\t{\n\t\t\"name\":\"&amp;#96;\",\n\t\t\"description\":\"grave accent\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#97;\",\n\t\t\"description\":\"a\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#98;\",\n\t\t\"description\":\"b\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#99;\",\n\t\t\"description\":\"c\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#100;\",\n\t\t\"description\":\"d\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#101;\",\n\t\t\"description\":\"e\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#102;\",\n\t\t\"description\":\"f\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#103;\",\n\t\t\"description\":\"g\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#104;\",\n\t\t\"description\":\"h\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#105;\",\n\t\t\"description\":\"i\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#106;\",\n\t\t\"description\":\"j\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#107;\",\n\t\t\"description\":\"k\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#108;\",\n\t\t\"description\":\"l\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#109;\",\n\t\t\"description\":\"m\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#110;\",\n\t\t\"description\":\"n\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#111;\",\n\t\t\"description\":\"o\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#112;\",\n\t\t\"description\":\"p\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#113;\",\n\t\t\"description\":\"q\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#114;\",\n\t\t\"description\":\"r\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#115;\",\n\t\t\"description\":\"s\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#116;\",\n\t\t\"description\":\"t\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#117;\",\n\t\t\"description\":\"u\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#118;\",\n\t\t\"description\":\"v\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#119;\",\n\t\t\"description\":\"w\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#120;\",\n\t\t\"description\":\"x\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#121;\",\n\t\t\"description\":\"y\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#122;\",\n\t\t\"description\":\"z\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#123;\",\n\t\t\"description\":\"opening brace\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#124;\",\n\t\t\"description\":\"vertical bar\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#125;\",\n\t\t\"description\":\"closing brace\"\n\t},\n\t{\n\t\t\"name\":\"&amp;#126;\",\n\t\t\"description\":\"equivalency sign - tilde\"\n\t}\n]"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/image-dialog/image-dialog.js",
    "content": "/*!\n * Image (upload) dialog plugin for Editor.md\n *\n * @file        image-dialog.js\n * @author      pandao\n * @version     1.3.4\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"image-dialog\";\n\n\t\texports.fn.imageDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var imageLang   = lang.dialog.image;\n            var classPrefix = this.classPrefix;\n            var iframeName  = classPrefix + \"image-iframe\";\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            var loading = function(show) {\n                var _loading = dialog.find(\".\" + classPrefix + \"dialog-mask\");\n                _loading[(show) ? \"show\" : \"hide\"]();\n            };\n\n            if (editor.find(\".\" + dialogName).length < 1)\n            {\n                var guid   = (new Date).getTime();\n                var action = settings.imageUploadURL + (settings.imageUploadURL.indexOf(\"?\") >= 0 ? \"&\" : \"?\") + \"guid=\" + guid;\n\n                if (settings.crossDomainUpload)\n                {\n                    action += \"&callback=\" + settings.uploadCallbackURL + \"&dialog_id=editormd-image-dialog-\" + guid;\n                }\n\n                var dialogContent = ( (settings.imageUpload) ? \"<form action=\\\"\" + action +\"\\\" target=\\\"\" + iframeName + \"\\\" method=\\\"post\\\" enctype=\\\"multipart/form-data\\\" class=\\\"\" + classPrefix + \"form\\\">\" : \"<div class=\\\"\" + classPrefix + \"form\\\">\" ) +\n                                        ( (settings.imageUpload) ? \"<iframe name=\\\"\" + iframeName + \"\\\" id=\\\"\" + iframeName + \"\\\" guid=\\\"\" + guid + \"\\\"></iframe>\" : \"\" ) +\n                                        \"<label>\" + imageLang.url + \"</label>\" +\n                                        \"<input type=\\\"text\\\" data-url />\" + (function(){\n                                            return (settings.imageUpload) ? \"<div class=\\\"\" + classPrefix + \"file-input\\\">\" +\n                                                                                \"<input type=\\\"file\\\" name=\\\"\" + classPrefix + \"image-file\\\" accept=\\\"image/*\\\" />\" +\n                                                                                \"<input type=\\\"submit\\\" value=\\\"\" + imageLang.uploadButton + \"\\\" />\" +\n                                                                            \"</div>\" : \"\";\n                                        })() +\n                                        \"<br/>\" +\n                                        \"<label>\" + imageLang.alt + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-alt />\" +\n                                        \"<br/>\" +\n                                        \"<label>\" + imageLang.link + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-link />\" +\n                                        \"<br/>\" +\n                                    ( (settings.imageUpload) ? \"</form>\" : \"</div>\");\n\n                //var imageFooterHTML = \"<button class=\\\"\" + classPrefix + \"btn \" + classPrefix + \"image-manager-btn\\\" style=\\\"float:left;\\\">\" + imageLang.managerButton + \"</button>\";\n\n                dialog = this.createDialog({\n                    title      : imageLang.title,\n                    width      : (settings.imageUpload) ? 465 : 380,\n                    height     : 254,\n                    name       : dialogName,\n                    content    : dialogContent,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter : [lang.buttons.enter, function() {\n                            var url  = this.find(\"[data-url]\").val();\n                            var alt  = this.find(\"[data-alt]\").val();\n                            var link = this.find(\"[data-link]\").val();\n\n                            if (url === \"\")\n                            {\n                                alert(imageLang.imageURLEmpty);\n                                return false;\n                            }\n\n\t\t\t\t\t\t\tvar altAttr = (alt !== \"\") ? \" \\\"\" + alt + \"\\\"\" : \"\";\n\n                            if (link === \"\" || link === \"http://\")\n                            {\n                                cm.replaceSelection(\"![\" + alt + \"](\" + url + altAttr + \")\");\n                            }\n                            else\n                            {\n                                cm.replaceSelection(\"[![\" + alt + \"](\" + url + altAttr + \")](\" + link + altAttr + \")\");\n                            }\n\n                            if (alt === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 2);\n                            }\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n\n                dialog.attr(\"id\", classPrefix + \"image-dialog-\" + guid);\n\n\t\t\t\tif (!settings.imageUpload) {\n                    return ;\n                }\n\n\t\t\t\tvar fileInput  = dialog.find(\"[name=\\\"\" + classPrefix + \"image-file\\\"]\");\n\n\t\t\t\tfileInput.bind(\"change\", function() {\n\t\t\t\t\tvar fileName  = fileInput.val();\n\t\t\t\t\tvar isImage   = new RegExp(\"(\\\\.(\" + settings.imageFormats.join(\"|\") + \"))$\"); // /(\\.(webp|jpg|jpeg|gif|bmp|png))$/\n\n\t\t\t\t\tif (fileName === \"\")\n\t\t\t\t\t{\n\t\t\t\t\t\talert(imageLang.uploadFileEmpty);\n\n                        return false;\n\t\t\t\t\t}\n\n                    if (!isImage.test(fileName))\n\t\t\t\t\t{\n\t\t\t\t\t\talert(imageLang.formatNotAllowed + settings.imageFormats.join(\", \"));\n\n                        return false;\n\t\t\t\t\t}\n\n                    loading(true);\n\n                    var submitHandler = function() {\n\n                        var uploadIframe = document.getElementById(iframeName);\n\n                        uploadIframe.onload = function() {\n\n                            loading(false);\n\n                            var body = (uploadIframe.contentWindow ? uploadIframe.contentWindow : uploadIframe.contentDocument).document.body;\n                            var json = (body.innerText) ? body.innerText : ( (body.textContent) ? body.textContent : null);\n\n                            json = (typeof JSON.parse !== \"undefined\") ? JSON.parse(json) : eval(\"(\" + json + \")\");\n\n                            if(!settings.crossDomainUpload)\n                            {\n                              if (json.success === 1)\n                              {\n                                  dialog.find(\"[data-url]\").val(json.url);\n                              }\n                              else\n                              {\n                                  alert(json.message);\n                              }\n                            }\n\n                            return false;\n                        };\n                    };\n\n                    dialog.find(\"[type=\\\"submit\\\"]\").bind(\"click\", submitHandler).trigger(\"click\");\n\t\t\t\t});\n            }\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\t\t\tdialog.find(\"[type=\\\"text\\\"]\").val(\"\");\n\t\t\tdialog.find(\"[type=\\\"file\\\"]\").val(\"\");\n\t\t\tdialog.find(\"[data-link]\").val(\"http://\");\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t};\n\n\t};\n\n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    {\n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t}\n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/link-dialog/link-dialog.js",
    "content": "/*!\n * Link dialog plugin for Editor.md\n *\n * @file        link-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"link-dialog\";\n\n\t\texports.fn.linkDialog = function() {\n\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n            var editor      = this.editor;\n            var settings    = this.settings;\n            var selection   = cm.getSelection();\n            var lang        = this.lang;\n            var linkLang    = lang.dialog.link;\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"[data-url]\").val(\"http://\");\n                dialog.find(\"[data-title]\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else\n            {\n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"form\\\">\" + \n                                        \"<label>\" + linkLang.url + \"</label>\" + \n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-url />\" +\n                                        \"<br/>\" + \n                                        \"<label>\" + linkLang.urlTitle + \"</label>\" + \n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-title />\" + \n                                        \"<br/>\" +\n                                    \"</div>\";\n\n                dialog = this.createDialog({\n                    title      : linkLang.title,\n                    width      : 380,\n                    height     : 211,\n                    content    : dialogHTML,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons    : {\n                        enter  : [lang.buttons.enter, function() {\n                            var url   = this.find(\"[data-url]\").val();\n                            var title = this.find(\"[data-title]\").val();\n\n                            if (url === \"http://\" || url === \"\")\n                            {\n                                alert(linkLang.urlEmpty);\n                                return false;\n                            }\n\n                            /*if (title === \"\")\n                            {\n                                alert(linkLang.titleEmpty);\n                                return false;\n                            }*/\n                            \n                            var str = \"[\" + title + \"](\" + url + \" \\\"\" + title + \"\\\")\";\n                            \n                            if (title == \"\")\n                            {\n                                str = \"[\" + url + \"](\" + url + \")\";\n                            }                                \n\n                            cm.replaceSelection(str);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/plugin-template.js",
    "content": "/*!\n * Link dialog plugin for Editor.md\n *\n * @file        link-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar $            = jQuery;           // if using module loader(Require.js/Sea.js).\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"单元格数\",\n\t\t\t\t\t\talignLabel : \"对齐方式\",\n\t\t\t\t\t\trows       : \"行数\",\n\t\t\t\t\t\tcols       : \"列数\",\n\t\t\t\t\t\taligns     : [\"默认\", \"左对齐\", \"居中对齐\", \"右对齐\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"添加表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"單元格數\",\n\t\t\t\t\t\talignLabel : \"對齊方式\",\n\t\t\t\t\t\trows       : \"行數\",\n\t\t\t\t\t\tcols       : \"列數\",\n\t\t\t\t\t\taligns     : [\"默認\", \"左對齊\", \"居中對齊\", \"右對齊\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"Tables\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"Tables\",\n\t\t\t\t\t\tcellsLabel : \"Cells\",\n\t\t\t\t\t\talignLabel : \"Align\",\n\t\t\t\t\t\trows       : \"Rows\",\n\t\t\t\t\t\tcols       : \"Cols\",\n\t\t\t\t\t\taligns     : [\"Default\", \"Left align\", \"Center align\", \"Right align\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.htmlEntities = function() {\n\t\t\t/*\n\t\t\tvar _this       = this; // this == the current instance object of Editor.md\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]); // l18n\n\t\t\tthis.setToolbar();\n\n\t\t\tcm.focus();\n\t\t\t*/\n\t\t\t//....\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"./../../editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/preformatted-text-dialog/preformatted-text-dialog.js",
    "content": "/*!\n * Preformatted text dialog plugin for Editor.md\n *\n * @file        preformatted-text-dialog.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\t\tvar cmEditor;\n\t\tvar pluginName   = \"preformatted-text-dialog\";\n\n\t\texports.fn.preformattedTextDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogLang  = lang.dialog.preformattedText;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length > 0)\n            {\n                dialog = editor.find(\".\" + dialogName);\n                dialog.find(\"textarea\").val(selection);\n\n                this.dialogShowMask(dialog);\n                this.dialogLockScreen();\n                dialog.show();\n            }\n            else \n            {      \n                var dialogContent = \"<textarea placeholder=\\\"coding now....\\\" style=\\\"display:none;\\\">\" + selection + \"</textarea>\";\n\n                dialog = this.createDialog({\n                    name   : dialogName,\n                    title  : dialogLang.title,\n                    width  : 780,\n                    height : 540,\n                    mask   : settings.dialogShowMask,\n                    drag   : settings.dialogDraggable,\n                    content : dialogContent,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var codeTexts  = this.find(\"textarea\").val();\n\n                            if (codeTexts === \"\")\n                            {\n                                alert(dialogLang.emptyAlert);\n                                return false;\n                            }\n\n                            codeTexts = codeTexts.split(\"\\n\");\n\n                            for (var i in codeTexts)\n                            {\n                                codeTexts[i] = \"    \" + codeTexts[i];\n                            }\n                            \n                            codeTexts = codeTexts.join(\"\\n\");\n                            \n                            if (cursor.ch !== 0) {\n                                codeTexts = \"\\r\\n\\r\\n\" + codeTexts;\n                            }\n\n                            cm.replaceSelection(codeTexts);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                  \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\t\t\n\t\t\tvar cmConfig = {\n\t\t\t\tmode                      : \"text/html\",\n\t\t\t\ttheme                     : settings.theme,\n\t\t\t\ttabSize                   : 4,\n\t\t\t\tautofocus                 : true,\n\t\t\t\tautoCloseTags             : true,\n\t\t\t\tindentUnit                : 4,\n\t\t\t\tlineNumbers               : true,\n\t\t\t\tlineWrapping              : true,\n\t\t\t\textraKeys                 : {\"Ctrl-Q\": function(cm){ cm.foldCode(cm.getCursor()); }},\n\t\t\t\tfoldGutter                : true,\n\t\t\t\tgutters                   : [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n\t\t\t\tmatchBrackets             : true,\n\t\t\t\tindentWithTabs            : true,\n\t\t\t\tstyleActiveLine           : true,\n\t\t\t\tstyleSelectedText         : true,\n\t\t\t\tautoCloseBrackets         : true,\n\t\t\t\tshowTrailingSpace         : true,\n\t\t\t\thighlightSelectionMatches : true\n\t\t\t};\n\t\t\t\n\t\t\tvar textarea = dialog.find(\"textarea\");\n\t\t\tvar cmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\tif (dialog.find(\".CodeMirror\").length < 1) \n\t\t\t{\n\t\t\t\tcmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig);\n\t\t\t\tcmObj    = dialog.find(\".CodeMirror\");\n\n\t\t\t\tcmObj.css({\n\t\t\t\t\t\"float\"   : \"none\", \n\t\t\t\t\tmargin    : \"0 0 5px\",\n\t\t\t\t\tborder    : \"1px solid #ddd\",\n\t\t\t\t\tfontSize  : settings.fontSize,\n\t\t\t\t\twidth     : \"100%\",\n\t\t\t\t\theight    : \"410px\"\n\t\t\t\t});\n\n\t\t\t\tcmEditor.on(\"change\", function(cm) {\n\t\t\t\t\ttextarea.val(cm.getValue());\n\t\t\t\t});\n\t\t\t} \n\t\t\telse \n\t\t\t{\n\t\t\t\tcmEditor.setValue(cm.getSelection());\n\t\t\t}\n\t\t};\n\n\t};\n\n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/reference-link-dialog/reference-link-dialog.js",
    "content": "/*!\n * Reference link dialog plugin for Editor.md\n *\n * @file        reference-link-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar pluginName   = \"reference-link-dialog\";\n\t\tvar ReLinkId     = 1;\n\n\t\texports.fn.referenceLinkDialog = function() {\n\n            var _this       = this;\n            var cm          = this.cm;\n            var lang        = this.lang;\n\t\t\tvar editor      = this.editor;\n            var settings    = this.settings;\n            var cursor      = cm.getCursor();\n            var selection   = cm.getSelection();\n            var dialogLang  = lang.dialog.referenceLink;\n            var classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\tcm.focus();\n\n            if (editor.find(\".\" + dialogName).length < 1)\n            {      \n                var dialogHTML = \"<div class=\\\"\" + classPrefix + \"form\\\">\" +\n                                        \"<label>\" + dialogLang.name + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"[\" + ReLinkId + \"]\\\" data-name />\" +  \n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.urlId + \"</label>\" +\n                                        \"<input type=\\\"text\\\" data-url-id />\" +\n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.url + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"http://\\\" data-url />\" + \n                                        \"<br/>\" +\n                                        \"<label>\" + dialogLang.urlTitle + \"</label>\" +\n                                        \"<input type=\\\"text\\\" value=\\\"\" + selection + \"\\\" data-title />\" +\n                                        \"<br/>\" +\n                                    \"</div>\";\n\n                dialog = this.createDialog({   \n                    name       : dialogName,\n                    title      : dialogLang.title,\n                    width      : 380,\n                    height     : 296,\n                    content    : dialogHTML,\n                    mask       : settings.dialogShowMask,\n                    drag       : settings.dialogDraggable,\n                    lockScreen : settings.dialogLockScreen,\n                    maskStyle  : {\n                        opacity         : settings.dialogMaskOpacity,\n                        backgroundColor : settings.dialogMaskBgColor\n                    },\n                    buttons : {\n                        enter  : [lang.buttons.enter, function() {\n                            var name  = this.find(\"[data-name]\").val();\n                            var url   = this.find(\"[data-url]\").val();\n                            var rid   = this.find(\"[data-url-id]\").val();\n                            var title = this.find(\"[data-title]\").val();\n\n                            if (name === \"\")\n                            {\n                                alert(dialogLang.nameEmpty);\n                                return false;\n                            }\n\n                            if (rid === \"\")\n                            {\n                                alert(dialogLang.idEmpty);\n                                return false;\n                            }\n\n                            if (url === \"http://\" || url === \"\")\n                            {\n                                alert(dialogLang.urlEmpty);\n                                return false;\n                            }\n\n                            //cm.replaceSelection(\"[\" + title + \"][\" + name + \"]\\n[\" + name + \"]: \" + url + \"\");\n                            cm.replaceSelection(\"[\" + name + \"][\" + rid + \"]\");\n\n                            if (selection === \"\") {\n                                cm.setCursor(cursor.line, cursor.ch + 1);\n                            }\n\n\t\t\t\t\t\t\ttitle = (title === \"\") ? \"\" : \" \\\"\" + title + \"\\\"\";\n\n\t\t\t\t\t\t\tcm.setValue(cm.getValue() + \"\\n[\" + rid + \"]: \" + url + title + \"\");\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n                    }\n                });\n            }\n\n\t\t\tdialog = editor.find(\".\" + dialogName);\n\t\t\tdialog.find(\"[data-name]\").val(\"[\" + ReLinkId + \"]\");\n\t\t\tdialog.find(\"[data-url-id]\").val(\"\");\n\t\t\tdialog.find(\"[data-url]\").val(\"http://\");\n\t\t\tdialog.find(\"[data-title]\").val(selection);\n\n\t\t\tthis.dialogShowMask(dialog);\n\t\t\tthis.dialogLockScreen();\n\t\t\tdialog.show();\n\n\t\t\tReLinkId++;\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/table-dialog/table-dialog.js",
    "content": "/*!\n * Table dialog plugin for Editor.md\n *\n * @file        table-dialog.js\n * @author      pandao\n * @version     1.2.1\n * @updateTime  2015-06-09\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n\tvar factory = function (exports) {\n\n\t\tvar $            = jQuery;\n\t\tvar pluginName   = \"table-dialog\";\n\n\t\tvar langs = {\n\t\t\t\"zh-cn\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"单元格数\",\n\t\t\t\t\t\talignLabel : \"对齐方式\",\n\t\t\t\t\t\trows       : \"行数\",\n\t\t\t\t\t\tcols       : \"列数\",\n\t\t\t\t\t\taligns     : [\"默认\", \"左对齐\", \"居中对齐\", \"右对齐\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"zh-tw\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"添加表格\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"添加表格\",\n\t\t\t\t\t\tcellsLabel : \"單元格數\",\n\t\t\t\t\t\talignLabel : \"對齊方式\",\n\t\t\t\t\t\trows       : \"行數\",\n\t\t\t\t\t\tcols       : \"列數\",\n\t\t\t\t\t\taligns     : [\"默認\", \"左對齊\", \"居中對齊\", \"右對齊\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"en\" : {\n\t\t\t\ttoolbar : {\n\t\t\t\t\ttable : \"Tables\"\n\t\t\t\t},\n\t\t\t\tdialog : {\n\t\t\t\t\ttable : {\n\t\t\t\t\t\ttitle      : \"Tables\",\n\t\t\t\t\t\tcellsLabel : \"Cells\",\n\t\t\t\t\t\talignLabel : \"Align\",\n\t\t\t\t\t\trows       : \"Rows\",\n\t\t\t\t\t\tcols       : \"Cols\",\n\t\t\t\t\t\taligns     : [\"Default\", \"Left align\", \"Center align\", \"Right align\"]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\texports.fn.tableDialog = function() {\n\t\t\tvar _this       = this;\n\t\t\tvar cm          = this.cm;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar settings    = this.settings;\n\t\t\tvar path        = settings.path + \"../plugins/\" + pluginName +\"/\";\n\t\t\tvar classPrefix = this.classPrefix;\n\t\t\tvar dialogName  = classPrefix + pluginName, dialog;\n\n\t\t\t$.extend(true, this.lang, langs[this.lang.name]);\n\t\t\tthis.setToolbar();\n\n\t\t\tvar lang        = this.lang;\n\t\t\tvar dialogLang  = lang.dialog.table;\n\t\t\t\n\t\t\tvar dialogContent = [\n\t\t\t\t\"<div class=\\\"editormd-form\\\" style=\\\"padding: 13px 0;\\\">\",\n\t\t\t\t\"<label>\" + dialogLang.cellsLabel + \"</label>\",\n\t\t\t\tdialogLang.rows + \" <input type=\\\"number\\\" value=\\\"3\\\" class=\\\"number-input\\\" style=\\\"width:40px;\\\" max=\\\"100\\\" min=\\\"2\\\" data-rows />&nbsp;&nbsp;\",\n\t\t\t\tdialogLang.cols + \" <input type=\\\"number\\\" value=\\\"2\\\" class=\\\"number-input\\\" style=\\\"width:40px;\\\" max=\\\"100\\\" min=\\\"1\\\" data-cols /><br/>\",\n\t\t\t\t\"<label>\" + dialogLang.alignLabel + \"</label>\",\n\t\t\t\t\"<div class=\\\"fa-btns\\\"></div>\",\n\t\t\t\t\"</div>\"\n\t\t\t].join(\"\\n\");\n\n\t\t\tif (editor.find(\".\" + dialogName).length > 0) \n\t\t\t{\n                dialog = editor.find(\".\" + dialogName);\n\n\t\t\t\tthis.dialogShowMask(dialog);\n\t\t\t\tthis.dialogLockScreen();\n\t\t\t\tdialog.show();\n\t\t\t} \n\t\t\telse\n\t\t\t{\n\t\t\t\tdialog = this.createDialog({\n\t\t\t\t\tname       : dialogName,\n\t\t\t\t\ttitle      : dialogLang.title,\n\t\t\t\t\twidth      : 360,\n\t\t\t\t\theight     : 226,\n\t\t\t\t\tmask       : settings.dialogShowMask,\n\t\t\t\t\tdrag       : settings.dialogDraggable,\n\t\t\t\t\tcontent    : dialogContent,\n\t\t\t\t\tlockScreen : settings.dialogLockScreen,\n\t\t\t\t\tmaskStyle  : {\n\t\t\t\t\t\topacity         : settings.dialogMaskOpacity,\n\t\t\t\t\t\tbackgroundColor : settings.dialogMaskBgColor\n\t\t\t\t\t},\n\t\t\t\t\tbuttons    : {\n                        enter : [lang.buttons.enter, function() {\n\t\t\t\t\t\t\tvar rows   = parseInt(this.find(\"[data-rows]\").val());\n\t\t\t\t\t\t\tvar cols   = parseInt(this.find(\"[data-cols]\").val());\n\t\t\t\t\t\t\tvar align  = this.find(\"[name=\\\"table-align\\\"]:checked\").val();\n\t\t\t\t\t\t\tvar table  = \"\";\n\t\t\t\t\t\t\tvar hrLine = \"------------\";\n\n\t\t\t\t\t\t\tvar alignSign = {\n\t\t\t\t\t\t\t\t_default : hrLine,\n\t\t\t\t\t\t\t\tleft     : \":\" + hrLine,\n\t\t\t\t\t\t\t\tcenter   : \":\" + hrLine + \":\",\n\t\t\t\t\t\t\t\tright    : hrLine + \":\"\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tif ( rows > 1 && cols > 0) \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfor (var r = 0, len = rows; r < len; r++) \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvar row = [];\n\t\t\t\t\t\t\t\t\tvar head = [];\n\n\t\t\t\t\t\t\t\t\tfor (var c = 0, len2 = cols; c < len2; c++) \n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif (r === 1) {\n\t\t\t\t\t\t\t\t\t\t\thead.push(alignSign[align]);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\trow.push(\" \");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (r === 1) {\n\t\t\t\t\t\t\t\t\t\ttable += \"| \" + head.join(\" | \") + \" |\" + \"\\n\";\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttable += \"| \" + row.join( (cols === 1) ? \"\" : \" | \" ) + \" |\" + \"\\n\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcm.replaceSelection(table);\n\n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }],\n\n                        cancel : [lang.buttons.cancel, function() {                                   \n                            this.hide().lockScreen(false).hideMask();\n\n                            return false;\n                        }]\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar faBtns = dialog.find(\".fa-btns\");\n\n\t\t\tif (faBtns.html() === \"\")\n\t\t\t{\n\t\t\t\tvar icons  = [\"align-justify\", \"align-left\", \"align-center\", \"align-right\"];\n\t\t\t\tvar _lang  = dialogLang.aligns;\n\t\t\t\tvar values = [\"_default\", \"left\", \"center\", \"right\"];\n\n\t\t\t\tfor (var i = 0, len = icons.length; i < len; i++) \n\t\t\t\t{\n\t\t\t\t\tvar checked = (i === 0) ? \" checked=\\\"checked\\\"\" : \"\";\n\t\t\t\t\tvar btn = \"<a href=\\\"javascript:;\\\"><label for=\\\"editormd-table-dialog-radio\"+i+\"\\\" title=\\\"\" + _lang[i] + \"\\\">\";\n\t\t\t\t\tbtn += \"<input type=\\\"radio\\\" name=\\\"table-align\\\" id=\\\"editormd-table-dialog-radio\"+i+\"\\\" value=\\\"\" + values[i] + \"\\\"\" +checked + \" />&nbsp;\";\n\t\t\t\t\tbtn += \"<i class=\\\"fa fa-\" + icons[i] + \"\\\"></i>\";\n\t\t\t\t\tbtn += \"</label></a>\";\n\n\t\t\t\t\tfaBtns.append(btn);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/plugins/test-plugin/test-plugin.js",
    "content": "/*!\n * Test plugin for Editor.md\n *\n * @file        test-plugin.js\n * @author      pandao\n * @version     1.2.0\n * @updateTime  2015-03-07\n * {@link       https://github.com/pandao/editor.md}\n * @license     MIT\n */\n\n(function() {\n\n    var factory = function (exports) {\n\n\t\tvar $            = jQuery;           // if using module loader(Require.js/Sea.js).\n\n\t\texports.testPlugin = function(){\n\t\t\talert(\"testPlugin\");\n\t\t};\n\n\t\texports.fn.testPluginMethodA = function() {\n\t\t\t/*\n\t\t\tvar _this       = this; // this == the current instance object of Editor.md\n\t\t\tvar lang        = _this.lang;\n\t\t\tvar settings    = _this.settings;\n\t\t\tvar editor      = this.editor;\n\t\t\tvar cursor      = cm.getCursor();\n\t\t\tvar selection   = cm.getSelection();\n\t\t\tvar classPrefix = this.classPrefix;\n\n\t\t\tcm.focus();\n\t\t\t*/\n\t\t\t//....\n\n\t\t\talert(\"testPluginMethodA\");\n\t\t};\n\n\t};\n    \n\t// CommonJS/Node.js\n\tif (typeof require === \"function\" && typeof exports === \"object\" && typeof module === \"object\")\n    { \n        module.exports = factory;\n    }\n\telse if (typeof define === \"function\")  // AMD/CMD/Sea.js\n    {\n\t\tif (define.amd) { // for Require.js\n\n\t\t\tdefine([\"editormd\"], function(editormd) {\n                factory(editormd);\n            });\n\n\t\t} else { // for Sea.js\n\t\t\tdefine(function(require) {\n                var editormd = require(\"../../js/editormd\");\n                factory(editormd);\n            });\n\t\t}\n\t} \n\telse\n\t{\n        factory(window.editormd);\n\t}\n\n})();\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.codemirror.scss",
    "content": "@charset \"UTF-8\";\n\n.editormd .CodeMirror, #{$prefix}preview {\n    display: inline-block;\n    width: 50%;\n    height: 100%;\n    vertical-align: top;\n    @include box-sizing(border-box);\n    margin: 0;\n}\n\n#{$prefix}preview {\n    position: absolute;\n    top: 35px;\n    right: 0;\n    right: -1px\\0;\n    overflow: auto;\n    line-height: 1.6;\n    display: none;\n    background: #fff;\n    z-index:10;\n}\n\n.editormd {\n    \n    .CodeMirror {\n        z-index: 10;\n        float: left;\n        border-right: 1px solid $borderColor;\n        font-size: 14px;\n        font-family: \"YaHei Consolas Hybrid\", Consolas, \"微软雅黑\", \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", courier, monospace;\n        line-height: 1.6;\n        margin-top: 35px;\n\n\t\tpre {\n\t\t\tfont-size: 14px;\n            padding: 0 12px;\n\t\t}\n    }\n    \n    .CodeMirror-linenumbers {\n        padding: 0 5px;\n    }\n\n    .CodeMirror-selected {\n        background: #70B7FF;\n    }\n\n    .CodeMirror-focused .CodeMirror-selected { \n        background: #70B7FF; \n    }\n\n    .CodeMirror, .CodeMirror-scroll, #{$prefix}preview {\n        -webkit-overflow-scrolling : touch;\n    }\n\n    .styled-background { \n        background-color: #ff7; \n    }\n\n    .CodeMirror-focused .cm-matchhighlight {\n        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);\n        background-position: bottom;\n        background-repeat: repeat-x;\n    }\n    \n    .CodeMirror-empty { \n        //outline: 1px solid #c22;\n        \n        &.CodeMirror-focused { \n            outline: none;\n        }\n    }\n    \n    .CodeMirror pre.CodeMirror-placeholder { \n        color: #999;\n    }\n\n    .cm-trailingspace {\n        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);\n        background-position: bottom left;\n        background-repeat: repeat-x;\n    }\n\n    .cm-tab {\n        background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);\n        background-position: right;\n        background-repeat: no-repeat;\n    }\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.dialog.scss",
    "content": "@charset \"UTF-8\";\n\n#{$prefix}dialog {\n    color: $color;\n    position: fixed;\n    z-index: 99999;\n    display: none;\n    @include border-radius(3px);\n    @include box-shadow(0 0 10px rgba(0, 0, 0, 0.3));\n    //@include user-select(none); \n    background: #fff;\n    font-size: 14px;\n}\n\n#{$prefix}dialog-container {\n    position: relative;\n    padding: 20px;\n    line-height: 1.4;\n\n    h1 {\n        font-size: 24px;\n        margin-bottom: 10px;\n\n        .fa {\n            color: #2C7EEA;\n            padding-right: 5px;\n        }\n\n        small {\n            padding-left: 5px;\n            font-weight: normal;\n            font-size:  12px;\n            color: #999;\n        }\n    } \n    \n    select {\n        color: #999;\n        padding: 3px 8px;\n        border: 1px solid $borderColor;\n    }\n}\n\n#{$prefix}dialog-close {\n    position: absolute;\n    top: 12px;\n    right: 15px;\n    font-size: 18px;\n    color: #ccc;\n    @include transition(color 300ms ease-out);\n\n    &:hover {\n        color: #999;\n    }\n} \n            \n#{$prefix}dialog-header {\n    padding: 11px 20px;    \n    border-bottom: 1px solid #eee;\n    @include transition(background 300ms ease-out);\n\n    &:hover {\n        background: #f6f6f6;\n    }\n}\n\n#{$prefix}dialog-title {\n    font-size: 14px;             \n}\n            \n#{$prefix}dialog-footer {\n    padding: 10px 0 0 0;\n    text-align: right;\n}\n\n#{$prefix}dialog-info {\n    width: 420px;\n    \n    h1 {\n        font-weight: normal;\n    }\n\n    #{$prefix}dialog-container {\n        padding: 20px 25px 25px;\n    }\n\n    #{$prefix}dialog-close {\n        top: 10px;\n        right: 10px;\n    } \n    \n    p > a, .hover-link:hover {   \n        color: #2196F3;\n    }\n    \n    .hover-link {\n        color: #666;\n    }\n    \n    a {\n        .fa-external-link {\n            display: none;\n        }\n\n        &:hover {    \n            color: #2196F3;\n            \n            .fa-external-link {\n                display: inline-block;\n            }\n        }\n    }\n}\n\n#{$prefix}mask,\n#{$prefix}container-mask,\n#{$prefix}dialog-mask {\n    display: none;\n    width: 100%;\n    height: 100%;\n    position: absolute;\n    top: 0;\n    left: 0;\n}\n\n#{$prefix}mask,\n#{$prefix}dialog-mask-bg {\n    background: #fff;\n    opacity: 0.5;\n    filter: alpha(opacity=50);\n}\n\n#{$prefix}mask {\n    position: fixed;\n    background: #000;\n    @include opacity(0.2); \n    z-index: 99998;  \n}\n\n#{$prefix}container-mask, \n#{$prefix}dialog-mask-con {\n    background: url(../images/loading.gif) no-repeat center center;\n    @include background-size(32px 32px);\n}\n\n#{$prefix}container-mask {\n    z-index: 20;  \n    display: block;\n    background-color: #fff;    \n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {\n    #{$prefix}container-mask, \n    #{$prefix}dialog-mask-con {\n        background-image: url(../images/loading@2x.gif);\n    }\n}\n\n@media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min-device-pixel-ratio: 3) {\n    #{$prefix}container-mask,\n    #{$prefix}dialog-mask-con {\n        background-image: url(../images/loading@3x.gif);\n    }\n}\n\n#{$prefix}code-block-dialog, \n#{$prefix}preformatted-text-dialog {\n    textarea {\n        width: 100%;\n        height: 400px;\n        margin-bottom: 6px;\n        overflow: auto;\n        border: 1px solid #eee;\n        background: #fff;\n        padding: 15px;\n        resize: none;\n    }\n}\n\n#{$prefix}code-toolbar {\n    color: #999;\n    font-size: 14px;\n    margin: -5px 0 10px;\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.form.scss",
    "content": "@charset \"UTF-8\";\n\n// Form\n            \n#{$prefix}form {\n    color: $color;\n    \n    label {\n        float: left;\n        display: block;\n        width: 75px;\n        text-align: left;\n        padding: 7px 0 15px 5px;\n        margin: 0 0 2px;\n        font-weight: normal;\n    }\n\n    br {\n        clear: both;\n    }\n\n    iframe {\n        display: none;\n    }\n\n    input:focus {\n        outline: 0;\n    }\n\n    input[type=\"text\"], input[type=\"number\"] {\n        color: #999;\n        padding: 8px;\n        border: 1px solid $borderColor;\n    }\n            \n    input[type=\"number\"] {\n        width: 40px;\n        display: inline-block;\n        padding: 6px 8px;\n    }\n\n    input[type=\"text\"] {\n        display: inline-block;\n        width: 264px;\n    }\n    \n    .fa-btns {\n        display: inline-block;\n\n        a {\n            color: #999;\n            padding: 7px 10px 0 0;\n            display: inline-block;\n            text-decoration: none;\n            text-align: center;\n        }\n\n        .fa {\n            font-size: 1.3em;\n        }\n\n        label {\n            float: none;\n            display: inline-block;\n            width: auto;\n            text-align: left;\n            padding: 0 0 0 5px;\n            cursor: pointer;\n        }\n    }\n}\n\n#{$prefix}form,\n#{$prefix}dialog-container,\n#{$prefix}dialog-footer {\n\n    input[type=\"submit\"], #{$prefix}btn, button {\n        color: $color;\n        min-width: 75px;\n        cursor: pointer;\n        background: #fff;\n        padding: 7px 10px;\n        border: 1px solid #ddd;\n        @include border-radius(3px);\n        @include transition(background 300ms ease-out);\n\n        &:hover {\n            background: #eee;\n        }\n    }\n\n    #{$prefix}btn {\n        padding: 5px 8px 4px\\0;\n    }\n\n    #{$prefix}btn + #{$prefix}btn {\n        margin-left: 8px;\n    }\n}\n\n#{$prefix}file-input {\n    width: 75px;\n    height: 32px;\n    margin-left: 8px;\n    position: relative;\n    display: inline-block;\n\n    input[type=\"file\"] {\n        width: 75px;\n        height: 32px;\n        opacity: 0;\n        cursor: pointer;\n        background: #000;\n        display: inline-block;\n        position: absolute;\n        top: 0;\n        right: 0;\n\n        &::-webkit-file-upload-button {\n            visibility: hidden;\n        }\n    }\n\n    input[type=\"submit\"]  {\n    }\n\n    &:hover input[type=\"submit\"]  {\n        background: #eee;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.grid.scss",
    "content": "@charset \"utf-8\";\n\n.editormd-grid-table {\n    width: 99%;\n    display: table;\n    border: 1px solid #ddd;\n    border-collapse: collapse;\n}\n\n.editormd-grid-table-row {\n    width: 100%;\n    display: table-row;\n\n    a {\n        font-size: 1.4em;\n        width: 5%;\n        height: 36px;\n        color: #999;\n        text-align: center;\n        display: table-cell;\n        vertical-align: middle;\n        border: 1px solid #ddd;\n        text-decoration: none;\n        @include transition(background-color 300ms ease-out, color 100ms ease-in);\n\n        &.selected {\n            color: #666;\n            background-color: #eee;                \n        }\n\n        &:hover {\n            color: #777;\n            background-color: #f6f6f6;\n        }\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.logo.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n\n@font-face {\n\tfont-family: 'editormd-logo';\n\tsrc:url('../fonts/editormd-logo.eot?-5y8q6h');\n\tsrc:url('.../fonts/editormd-logo.eot?#iefix-5y8q6h') format('embedded-opentype'),\n\t\turl('../fonts/editormd-logo.woff?-5y8q6h') format('woff'),\n\t\turl('../fonts/editormd-logo.ttf?-5y8q6h') format('truetype'),\n\t\turl('../fonts/editormd-logo.svg?-5y8q6h#icomoon') format('svg');\n\tfont-weight: normal;\n\tfont-style: normal;\n}\n\n#{$prefix}logo,\n#{$prefix}logo-1x,\n#{$prefix}logo-2x,\n#{$prefix}logo-3x,\n#{$prefix}logo-4x,\n#{$prefix}logo-5x,\n#{$prefix}logo-6x,\n#{$prefix}logo-7x,\n#{$prefix}logo-8x {\n\tfont-family: 'editormd-logo';\n\tspeak: none;\n\tfont-style: normal;\n\tfont-weight: normal;\n\tfont-variant: normal;\n\ttext-transform: none;\n    font-size: inherit;\n\tline-height: 1;\n    display: inline-block;\n    text-rendering: auto;\n    vertical-align: inherit;\n\n\t//Better Font Rendering\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n\n    &:before {\n        content: \"\\e1987\";\n        /* \n        HTML Entity &#xe1987; \n        example: <span class=\"editormd-logo\">&#xe1987;</span>\n        */\n    }\n}\n\n#{$prefix}logo-1x {  \n    font-size: 1em;           \n}\n\n#{$prefix}logo-lg {  \n    font-size: 1.2em;           \n}\n\n#{$prefix}logo-2x {  \n    font-size: 2em;           \n}\n\n#{$prefix}logo-3x {  \n    font-size: 3em;           \n}\n\n#{$prefix}logo-4x {  \n    font-size: 4em;           \n}\n\n#{$prefix}logo-5x {  \n    font-size: 5em;      \n}\n\n#{$prefix}logo-6x {  \n    font-size: 6em;      \n}\n\n#{$prefix}logo-7x {  \n    font-size: 7em;      \n}\n\n#{$prefix}logo-8x {  \n    font-size: 8em;   \n}\n\n#{$prefix}logo-color {\n    color: $mainColor;\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.menu.scss",
    "content": "@charset \"UTF-8\";\n\n#{$prefix}menu {\n    margin: 0;\n    padding: 0;       \n    list-style: none;\n    \n    > li {\n        margin: 0;\n        padding: 5px 1px;\n        display: inline-block;\n        position: relative;\n\n        &.divider {\n            display: inline-block;\n            text-indent: -9999px;\n            margin: 0 5px; \n            height: 65%;\n            border-right: 1px solid $borderColor;\n        }\n\n        > a {\n            outline: 0;\n            color: $color;\n            display: inline-block;\n            min-width: 24px;\n            font-size: 16px;\n            text-decoration: none;\n            text-align: center;\n            @include border-radius(2px);\n            border: 1px solid #fff;\n            @include transition(all 300ms ease-out);\n\n            &:hover, &.active {\n                border: 1px solid $borderColor;\n                background: #eee;\n            }\n\n            > .fa { \n                text-align: center;\n                display: block;\n                padding: 5px;\n            }\n\n            > #{$prefix}bold {\n                padding: 5px 2px; \n                display: inline-block;\n                font-weight: bold;\n            }\n        }\n\n        &:hover #{$prefix}dropdown-menu {\n            display: block;\n        }\n    }\n\n    > li + li > a {\n        margin-left: 3px;\n    }\n}\n\n#{$prefix}dropdown-menu { \n    display: none;\n    background: #fff;\n    border: 1px solid $borderColor;\n    width: 148px;\n    list-style: none;\n    position: absolute;\n    top: 33px;\n    left: 0;\n    z-index: 100;\n    @include box-shadow(1px 2px 6px rgba(0, 0, 0, 0.15));\n\n    &:before, &:after {\n        width: 0;\n        height: 0;\n        display: block;\n        content: \"\";\n        position: absolute;\n        top: -11px;\n        left: 8px;\n        border: 5px solid transparent;\n    }\n\n    &:before { \n        border-bottom-color: #ccc;   \n    }\n\n    &:after { \n        border-bottom-color: #ffffff;  \n        top: -10px;\n    }\n\n\n    > li {\n        \n        > a {\n            color: $color;\n            display: block;\n            text-decoration: none;\n            padding: 8px 10px;\n\n            &:hover {\n                background: #f6f6f6;\n                @include transition(all 300ms ease-out);\n            }\n        }\n    }\n\n    > li + li {\n        border-top: 1px solid $borderColor;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.preview.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n@import \"font-awesome\";\n\n@import \"editormd.logo\";\n\n// github-markdown.css\n@import \"github-markdown\";  \n\n#{$prefix}preview-container, #{$prefix}html-preview {\n    text-align: left;\n    font-size: 14px;\n    line-height: 1.6;\n    padding: 20px;\n    overflow: auto;\n    width: 100%;\n    background-color: #fff;\n\n    blockquote {\n        color: $color;\n        border-left: 4px solid $borderColor;\n        padding-left: 20px;\n        margin-left: 0;\n        font-size: 14px;\n        font-style: italic;\n    }\n\n    p code {\n        margin-left: 5px;\n        margin-right: 4px;\n    }\n        \n    abbr {\n        background: #ffffdd;\n    }\n\n    hr {\n        height: 1px;\n        border: none;\n        border-top: 1px solid $borderColor;\n        background: none;\n    }\n\n    code {\n        border: 1px solid $borderColor;\n        background: #f6f6f6;\n        padding: 3px;\n        border-radius: 3px;\n        font-size: 14px;\n    }\n\n    pre {\n        border: 1px solid $borderColor;\n        background: #f6f6f6;\n        padding: 10px;\n        @include border-radius(3px);\n\n        code {\n            padding: 0;\n        }\n    }\n    \n    pre, code, kbd {        \n        font-family:  \"YaHei Consolas Hybrid\", Consolas, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n    }\n\n    table thead tr {\n        background-color: #F8F8F8;\n    }\n\n    .markdown-toc {\n    }\n\n    .markdown-toc-list {\n    } \n    \n    p#{$prefix}tex {\n        text-align: center;\n    }\n    \n    span#{$prefix}tex {\n        margin: 0 5px;\n    }\n    \n    .emoji {\n        width: 24px;\n        height: 24px;\n    }\n    \n    .katex {\n        font-size: 1.4em;\n    }\n\n    .sequence-diagram, .flowchart {\n        margin: 0 auto;\n        text-align: center;\n        \n        svg {\n            margin: 0 auto;\n        }\n\n        text {\n            font-size  : 15px !important;\n            font-family: \"YaHei Consolas Hybrid\", Consolas, \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", Helvetica, Arial !important;\n        }\n    }\n}\n\n//Pretty printing styles. Used with prettify.js.\n\n@import \"prettify\";\n\n#{$prefix}preview-container, #{$prefix}html-preview {\n    pre.prettyprint { \n        padding: 10px; \n        border: 1px solid $borderColor; \n        white-space: pre-wrap;\n        word-wrap: break-word;\n    }\n\n    ol.linenums { \n        color: #999; \n        padding-left: 2.5em; \n    \n        li { \n            list-style-type: decimal; \n        \n            code {\n                border: none;\n                background:none;  \n                padding: 0;\n            }\n        }\n    }\n}    \n\n#{$prefix}preview-container, #{$prefix}html-preview {\n\n    #{$prefix}toc-menu {\n        margin: 8px 0 12px 0;\n        display: inline-block;\n\n        > .markdown-toc {\n            position: relative;\n            @include border-radius(4px);\n            border: 1px solid #ddd;\n            display: inline-block;\n            font-size: 1em;\n\n            > ul {\n                width : 160%;\n                min-width: 180px;\n                position: absolute;\n                left: -1px;\n                top: -2px;\n                z-index: 100;\n                padding: 0 10px 10px;    \n                display: none;\n                background: #fff;\n                border: 1px solid #ddd;\n                @include border-radius(4px);\n                @include box-shadow(0 3px 5px rgba(0, 0, 0, 0.2));\n\n                > li ul {\n                    width: 100%;\n                    min-width: 180px;\n                    border: 1px solid #ddd;\n                    display: none;\n                    background: #fff;\n                    @include border-radius(4px);\n                }\n\n                > li a {\n                    color: #666;\n                    padding: 6px 10px;\n                    display: block;\n                    @include transition(background-color 500ms ease-out);  \n\n                    &:hover {\n                        background-color: #f6f6f6;\n                    }       \n                }\n            }\n\n            li {\n                position: relative;\n\n                > ul {\n                    position: absolute;\n                    top: 32px;\n                    left: 10%;\n                    display: none;\n                    @include box-shadow(0 3px 5px rgba(0, 0, 0, 0.2));\n\n                    &:before, &:after {\n                        pointer-events: pointer-events;\n                        position: absolute;\n                        left: 15px;\n                        top: -6px;\n                        display: block;\n                        content: \"\";\n                        width: 0;\n                        height: 0;\n                        border: 6px solid transparent;\n                        border-width: 0 6px 6px; \n                        z-index: 10; \n                    }\n\n                    &:before {\n                        border-bottom-color: #ccc; \n                    }\n\n                    &:after {\n                        border-bottom-color: #ffffff;  \n                        top: -5px;\n                    }\n                }\n            }\n        }\n\n        ul {\n            list-style: none;\n        }\n\n        a {\n            text-decoration: none;\n        }\n\n        h1 {\n            font-size: 16px;\n            padding: 5px 0 10px 10px;\n            line-height: 1;\n            border-bottom: 1px solid #eee;\n\n            .fa {\n                padding-left: 10px;\n            }\n        }\n\n        .toc-menu-btn {\n            color: #666;\n            min-width: 180px;\n            padding: 5px 10px;\n            border-radius: 4px;\n            display: inline-block;\n            @include transition(background-color 500ms ease-out);\n\n            &:hover {\n                background-color: #f6f6f6;\n            }\n\n            .fa {\n                float: right;\n                padding: 3px 0 0 10px;\n                font-size: 1.3em;\n            }\n        }\n    }\n}\n\n.markdown-body {\n    #{$prefix}toc-menu {\n        ul {\n            padding-left: 0; \n        }\n    }\n\n    .highlight pre, pre {\n      line-height: 1.6;\n    }\n}\n\nhr.editormd-page-break {\n    border: 1px dotted #ccc;\n    font-size: 0;\n    height: 2px;\n}\n\n@media only print {\n    hr.editormd-page-break {\n        background: none;\n        border: none;\n        height: 0;\n    }\n}\n\n#{$prefix}html-preview {\n    textarea {\n        display : none;\n    }\n\n    hr.editormd-page-break {\n        background: none;\n        border: none;\n        height: 0;\n    }\n}\n\n#{$prefix}preview-close-btn {\n    color: #fff;\n    padding: 4px 6px;\n    font-size: 18px;\n    @include border-radius(500px);\n    display: none;\n    background-color: #ccc;\n    position: absolute;\n    top: 25px;\n    right: 35px;\n    z-index: 19;\n    @include transition(background-color 300ms ease-out);\n\n    &:hover {\n        background-color: #999;\n    }\n}\n\n.editormd-preview-active {\n    width: 100%;\n    padding: 40px;\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.preview.themes.scss",
    "content": "/* Preview dark theme */\n            \n#{$prefix}preview-theme-dark {\n    color: #777;\n    background:#2C2827;\n    \n    #{$prefix}preview-container {\n        color: #888;\n        background-color: #2C2827;  \n        //font-family: \"Meiryo UI\", \"Helvetica Neue\", \"Microsoft YaHei\";\n\n        pre.prettyprint {\n            border: none;\n        }\n\n        blockquote {\n            color: #555;\n            padding: 0.5em;\n            background: #222;\n            border-color: #333;\n        }\n\n        abbr {\n            color: #fff;\n            padding: 1px 3px;\n            @include border-radius(3px); \n            background:#ff9900;\n        }\n\n        code {\n            color: #fff;\n            border: none;\n            padding: 1px 3px;\n            @include border-radius(3px); \n            background: #5A9600;\n        }\n\n        table {\n            border: none;\n        }\n\n        .fa-emoji {\n            color: #B4BF42;\n        }\n\n        .katex {\n            color: #FEC93F;\n        }\n    }\n\n    .editormd-toc-menu {\n        > .markdown-toc {\n            background:#fff;\n            border:none;\n\n            h1 {\n                border-color:#ddd;\n            }\n        }\n    }\n    \n    .markdown-body {\n        h1, h2, hr {\n            border-color: #222;      \n        }    \n    }\n    \n    pre {\n        color: #999;\n        background-color: #111;\n        background-color: rgba(0,0,0,.4);\n\n        /* plain text */\n        .pln { \n            color: #999;\n        } \n    }\n\n    li.L1, li.L3, li.L5, li.L7, li.L9 { \n        background: none;\n    }\n\n    [class*=editormd-logo] {\n        color: #2196F3;\n    }\n\n    .sequence-diagram {\n        text {\n            fill: #fff;\n        }\n\n        rect, path {\n            color:#fff;\n            fill : #64D1CB;\n            stroke : #64D1CB;\n        }\n    }\n    \n    .flowchart {\n        rect, path {\n            stroke : #A6C6FF;\n        }\n\n        rect {\n            fill: #A6C6FF;\n        }\n\n        text {\n            fill: #5879B4;\n        }\n    }\n}\n\n@media screen {\n    \n    #{$prefix}preview-theme-dark {\n        .str { color: #080 }  /* string content */\n        .kwd { color: #ff9900; }  /* a keyword */\n        .com { color: #444444; }  /* a comment */\n        .typ { color: #606 }  /* a type name */\n        .lit { color: #066 }  /* a literal value */\n        /* punctuation, lisp open bracket, lisp close bracket */\n        .pun, .opn, .clo { color: #660 }\n        .tag { color: #ff9900; }  /* a markup tag name */\n        .atn { color: #6C95F5; }  /* a markup attribute name */\n        .atv { color: #080 }  /* a markup attribute value */\n        .dec, .var { color: #008BA7; }  /* a declaration; a variable name */\n        .fun { color: red }  /* a function name */\n    }\n    \n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.scss",
    "content": "@charset \"UTF-8\";\n\n@import \"lib/variables\";\n@import \"lib/prefixes\";\n        \n.editormd {\n    width: 90%;\n    height: 640px;\n    margin: 0 auto;\n    text-align: left;\n    overflow: hidden;  \n    position: relative;\n    margin-bottom: 15px;\n    border: 1px solid $borderColor;\n    font-family: \"Meiryo UI\", \"Microsoft YaHei\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n\n    *, *:before, *:after {\n        @include box-sizing(border-box);\n    }\n    \n    a {\n        text-decoration: none;\n    }\n\n    img {\n        border: none;\n        vertical-align: middle;\n    }            \n\n    > textarea,\n    #{$prefix}html-textarea,\n    #{$prefix}markdown-textarea {\n        width: 0;\n        height: 0;\n        outline: 0;\n        resize:none;\n    }\n    \n    #{$prefix}html-textarea,\n    #{$prefix}markdown-textarea {\n        display : none;\n    }\n\n    input[type=\"text\"], \n    input[type=\"button\"], \n    input[type=\"submit\"], \n    select, textarea, button {\n        @include appearance(none);\n    }\n            \n    ::-webkit-scrollbar {\n        height: 10px;\n        width: 7px;\n        background: rgba(0, 0, 0, .1);\n\n        &:hover {\n            background: rgba(0, 0, 0, .2);\n        }\n    }\n\n    ::-webkit-scrollbar-thumb {\n        background: rgba(0,0,0,0.3);\n        @include border-radius(6px);\n\n        &:hover {\n            @include box-shadow(inset 1px 1px 1px rgba(0, 0, 0, .25));\n            background-color: rgba(0, 0, 0, .4);\n        }\n    }\n}\n            \n#{$prefix}user-unselect { \n    @include user-select(none); \n}\n\n#{$prefix}toolbar {\n    width: 100%;\n    min-height: 37px;\n    background: #fff;\n    display: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    z-index: 10;\n    border-bottom: 1px solid $borderColor;\n}\n\n#{$prefix}toolbar-container {\n    padding: 0 8px;\n    min-height: 35px;\n    @include user-select(none);\n}\n\n@import \"editormd.menu\";\n\n#{$prefix}container {\n    margin: 0;\n    width: 100%;\n    height: 100%;\n    overflow: hidden;\n    padding: 35px 0 0;\n    position: relative;   \n    background: #fff;\n    @include box-sizing(border-box);\n}\n\n@import \"editormd.dialog\"; \n@import \"editormd.grid\"; \n@import \"editormd.tab\"; \n@import \"editormd.form\"; \n@import \"editormd.codemirror\"; \n@import \"editormd.preview\";\n@import \"editormd.preview.themes\";\n\n#{$prefix}onlyread {\n    #{$prefix}toolbar {\n        display: none;\n    }\n\n    .CodeMirror {\n        margin-top: 0;\n    }\n\n    #{$prefix}preview {\n        top: 0;\n    }\n}\n\n#{$prefix}fullscreen {\n    position: fixed; \n    top   : 0; \n    left  : 0; \n    border: none;\n    margin: 0 auto;\n}\n\n@import \"editormd.themes\";"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.tab.scss",
    "content": "@charset \"utf-8\";\n\n.editormd-tab {\n}\n\n.editormd-tab-head {\n    list-style: none;\n    border-bottom: 1px solid #ddd;\n\n    li {\n        display: inline-block;\n\n        a {\n            color: #999;\n            display: block;\n            padding: 6px 12px 5px;\n            text-align: center;\n            text-decoration: none;\n            margin-bottom: -1px;\n            border: 1px solid #ddd;\n            @include border-top-left-radius(3px);\n            @include border-top-right-radius(3px);\n            background: #f6f6f6;\n            @include transition(all 300ms ease-out);\n\n            &:hover {\n                color: #666;\n                background: #eee;\n            }\n        }\n\n        &.active a {\n            color: #666;\n            background: #fff;\n            border-bottom-color: #fff; \n        }\n    }\n    \n    li + li {\n        margin-left: 3px;\n    }\n}\n\n.editormd-tab-container {\n}\n\n.editormd-tab-box {\n    padding: 20px 0;\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/editormd.themes.scss",
    "content": "/* Editor.md Dark theme */\n\n#{$prefix}theme-dark {\n    border-color: #1a1a17;\n\n    #{$prefix}toolbar {\n        background: #1A1A17;\n        border-color: #1a1a17;\n    }\n\n    #{$prefix}menu > li > a {\n        color: #777;\n        border-color: #1a1a17;\n\n        &:hover, &.active {\n            border-color: #333;\n            background: #333;\n        }\n    }\n\n    #{$prefix}menu > li.divider {\n        border-right: 1px solid #111;\n    }\n    \n    .CodeMirror {\n        border-right: 1px solid rgba(0,0,0,0.1);\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/font-awesome.scss",
    "content": "/*!\n *  Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-genderless:before,\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/github-markdown.scss",
    "content": "@charset \"UTF-8\";\n\n/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */\n@font-face {\n  font-family: octicons-anchor;\n  src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format('woff');\n}\n\n.markdown-body {\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n  color: #333;\n  overflow: hidden;\n  //font-family: \"Helvetica Neue\", Helvetica, \"Segoe UI\", Arial, freesans, sans-serif;\n  font-family: \"Microsoft YaHei\", Helvetica, \"Meiryo UI\", \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", \"Monaco\", monospace, Tahoma, STXihei, \"华文细黑\", STHeiti, \"Helvetica Neue\", \"Droid Sans\", \"wenquanyi micro hei\", FreeSans, Arimo, Arial, SimSun, \"宋体\", Heiti, \"黑体\", sans-serif;\n  font-size: 16px;\n  line-height: 1.6;\n  word-wrap: break-word;\n}\n\n.markdown-body a {\n  background: transparent;\n}\n\n.markdown-body a:active,\n.markdown-body a:hover {\n  outline: 0;\n}\n\n.markdown-body strong {\n  font-weight: bold;\n}\n\n.markdown-body h1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n.markdown-body img {\n  border: 0;\n}\n\n.markdown-body hr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n.markdown-body pre {\n  overflow: auto;\n}\n\n.markdown-body code,\n.markdown-body kbd,\n.markdown-body pre {\n  font-family: \"Meiryo UI\", \"YaHei Consolas Hybrid\", Consolas, \"Malgun Gothic\", \"Segoe UI\", \"Trebuchet MS\", Helvetica, monospace, monospace;\n  font-size: 1em;\n}\n\n.markdown-body input {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\n\n.markdown-body html input[disabled] {\n  cursor: default;\n}\n\n.markdown-body input {\n  line-height: normal;\n}\n\n.markdown-body input[type=\"checkbox\"] {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  padding: 0;\n}\n\n.markdown-body table {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\n.markdown-body td,\n.markdown-body th {\n  padding: 0;\n}\n\n.markdown-body * {\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body input {\n  font: 13px/1.4 Helvetica, arial, freesans, clean, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.markdown-body a {\n  color: #4183c4;\n  text-decoration: none;\n}\n\n.markdown-body a:hover,\n.markdown-body a:active {\n  text-decoration: underline;\n}\n\n.markdown-body hr {\n  height: 0;\n  margin: 15px 0;\n  overflow: hidden;\n  background: transparent;\n  border: 0;\n  border-bottom: 1px solid #ddd;\n}\n\n.markdown-body hr:before {\n  display: table;\n  content: \"\";\n}\n\n.markdown-body hr:after {\n  display: table;\n  clear: both;\n  content: \"\";\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  margin-top: 15px;\n  margin-bottom: 15px;\n  line-height: 1.1;\n}\n\n.markdown-body h1 {\n  font-size: 30px;\n}\n\n.markdown-body h2 {\n  font-size: 21px;\n}\n\n.markdown-body h3 {\n  font-size: 16px;\n}\n\n.markdown-body h4 {\n  font-size: 14px;\n}\n\n.markdown-body h5 {\n  font-size: 12px;\n}\n\n.markdown-body h6 {\n  font-size: 11px;\n}\n\n.markdown-body blockquote {\n  margin: 0;\n}\n\n.markdown-body ul,\n.markdown-body ol {\n  padding: 0;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body ol ol,\n.markdown-body ul ol {\n  list-style-type: lower-roman;\n}\n\n.markdown-body ul ul ol,\n.markdown-body ul ol ol,\n.markdown-body ol ul ol,\n.markdown-body ol ol ol {\n  list-style-type: lower-alpha;\n}\n\n.markdown-body dd {\n  margin-left: 0;\n}\n\n.markdown-body code {\n  font-family: Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  font-size: 12px;\n}\n\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 0;\n  font: 12px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n}\n\n.markdown-body .octicon {\n  font: normal normal 16px octicons-anchor;\n  line-height: 1;\n  display: inline-block;\n  text-decoration: none;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.markdown-body .octicon-link:before {\n  content: '\\f05c';\n}\n\n.markdown-body>*:first-child {\n  margin-top: 0 !important;\n}\n\n.markdown-body>*:last-child {\n  margin-bottom: 0 !important;\n}\n\n.markdown-body .anchor {\n  position: absolute;\n  top: 0;\n  left: 0;\n  display: block;\n  padding-right: 6px;\n  padding-left: 30px;\n  margin-left: -30px;\n}\n\n.markdown-body .anchor:focus {\n  outline: none;\n}\n\n.markdown-body h1,\n.markdown-body h2,\n.markdown-body h3,\n.markdown-body h4,\n.markdown-body h5,\n.markdown-body h6 {\n  position: relative;\n  margin-top: 1em;\n  margin-bottom: 16px;\n  font-weight: bold;\n  line-height: 1.4;\n}\n\n.markdown-body h1 .octicon-link,\n.markdown-body h2 .octicon-link,\n.markdown-body h3 .octicon-link,\n.markdown-body h4 .octicon-link,\n.markdown-body h5 .octicon-link,\n.markdown-body h6 .octicon-link {\n  display: none;\n  color: #000;\n  vertical-align: middle;\n}\n\n.markdown-body h1:hover .anchor,\n.markdown-body h2:hover .anchor,\n.markdown-body h3:hover .anchor,\n.markdown-body h4:hover .anchor,\n.markdown-body h5:hover .anchor,\n.markdown-body h6:hover .anchor {\n  padding-left: 8px;\n  margin-left: -30px;\n  text-decoration: none;\n}\n\n.markdown-body h1:hover .anchor .octicon-link,\n.markdown-body h2:hover .anchor .octicon-link,\n.markdown-body h3:hover .anchor .octicon-link,\n.markdown-body h4:hover .anchor .octicon-link,\n.markdown-body h5:hover .anchor .octicon-link,\n.markdown-body h6:hover .anchor .octicon-link {\n  display: inline-block;\n}\n\n.markdown-body h1 {\n  padding-bottom: 0.3em;\n  font-size: 2.25em;\n  line-height: 1.2;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h1 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h2 {\n  padding-bottom: 0.3em;\n  font-size: 1.75em;\n  line-height: 1.225;\n  border-bottom: 1px solid #eee;\n}\n\n.markdown-body h2 .anchor {\n  line-height: 1;\n}\n\n.markdown-body h3 {\n  font-size: 1.5em;\n  line-height: 1.43;\n}\n\n.markdown-body h3 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h4 {\n  font-size: 1.25em;\n}\n\n.markdown-body h4 .anchor {\n  line-height: 1.2;\n}\n\n.markdown-body h5 {\n  font-size: 1em;\n}\n\n.markdown-body h5 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body h6 {\n  font-size: 1em;\n  color: #777;\n}\n\n.markdown-body h6 .anchor {\n  line-height: 1.1;\n}\n\n.markdown-body p,\n.markdown-body blockquote,\n.markdown-body ul,\n.markdown-body ol,\n.markdown-body dl,\n.markdown-body table,\n.markdown-body pre {\n  margin-top: 0;\n  margin-bottom: 16px;\n}\n/*\n.markdown-body hr {\n  height: 4px;\n  padding: 0;\n  margin: 16px 0;\n  background-color: #e7e7e7;\n  border: 0 none;\n}*/\n\n.markdown-body ul,\n.markdown-body ol {\n  padding-left: 2em;\n}\n\n.markdown-body ul ul,\n.markdown-body ul ol,\n.markdown-body ol ol,\n.markdown-body ol ul {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\n.markdown-body li>p {\n  margin-top: 16px;\n}\n\n.markdown-body dl {\n  padding: 0;\n}\n\n.markdown-body dl dt {\n  padding: 0;\n  margin-top: 16px;\n  font-size: 1em;\n  font-style: italic;\n  font-weight: bold;\n}\n\n.markdown-body dl dd {\n  padding: 0 16px;\n  margin-bottom: 16px;\n}\n\n.markdown-body blockquote {\n  padding: 0 15px;\n  color: #777;\n  border-left: 4px solid #ddd;\n}\n\n.markdown-body blockquote>:first-child {\n  margin-top: 0;\n}\n\n.markdown-body blockquote>:last-child {\n  margin-bottom: 0;\n}\n\n.markdown-body table {\n  display: block;\n  width: 100%;\n  overflow: auto;\n  word-break: normal;\n  word-break: keep-all;\n}\n\n.markdown-body table th {\n  font-weight: bold;\n}\n\n.markdown-body table th,\n.markdown-body table td {\n  padding: 6px 13px;\n  border: 1px solid #ddd;\n}\n\n.markdown-body table tr {\n  background-color: #fff;\n  border-top: 1px solid #ccc;\n}\n\n.markdown-body table tr:nth-child(2n) {\n  background-color: #f8f8f8;\n}\n\n.markdown-body img {\n  max-width: 100%;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.markdown-body code {\n  padding: 0;\n  padding-top: 0.2em;\n  padding-bottom: 0.2em;\n  margin: 0;\n  font-size: 85%;\n  background-color: rgba(0,0,0,0.04);\n  border-radius: 3px;\n}\n\n.markdown-body code:before,\n.markdown-body code:after {\n  letter-spacing: -0.2em;\n  content: \"\\00a0\";\n}\n\n.markdown-body pre>code {\n  padding: 0;\n  margin: 0;\n  font-size: 100%;\n  word-break: normal;\n  white-space: pre;\n  background: transparent;\n  border: 0;\n}\n\n.markdown-body .highlight {\n  margin-bottom: 16px;\n}\n\n.markdown-body .highlight pre,\n.markdown-body pre {\n  padding: 16px;\n  overflow: auto;\n  font-size: 85%;\n  line-height: 1.45;\n  background-color: #f7f7f7;\n  border-radius: 3px;\n}\n\n.markdown-body .highlight pre {\n  margin-bottom: 0;\n  word-break: normal;\n}\n\n.markdown-body pre {\n  word-wrap: normal;\n}\n\n.markdown-body pre code {\n  display: inline;\n  max-width: initial;\n  padding: 0;\n  margin: 0;\n  overflow: initial;\n  line-height: inherit;\n  word-wrap: normal;\n  background-color: transparent;\n  border: 0;\n}\n\n.markdown-body pre code:before,\n.markdown-body pre code:after {\n  content: normal;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font-size: 11px;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .pl-c {\n  color: #969896;\n}\n\n.markdown-body .pl-c1,\n.markdown-body .pl-mdh,\n.markdown-body .pl-mm,\n.markdown-body .pl-mp,\n.markdown-body .pl-mr,\n.markdown-body .pl-s1 .pl-v,\n.markdown-body .pl-s3,\n.markdown-body .pl-sc,\n.markdown-body .pl-sv {\n  color: #0086b3;\n}\n\n.markdown-body .pl-e,\n.markdown-body .pl-en {\n  color: #795da3;\n}\n\n.markdown-body .pl-s1 .pl-s2,\n.markdown-body .pl-smi,\n.markdown-body .pl-smp,\n.markdown-body .pl-stj,\n.markdown-body .pl-vo,\n.markdown-body .pl-vpf {\n  color: #333;\n}\n\n.markdown-body .pl-ent {\n  color: #63a35c;\n}\n\n.markdown-body .pl-k,\n.markdown-body .pl-s,\n.markdown-body .pl-st {\n  color: #a71d5d;\n}\n\n.markdown-body .pl-pds,\n.markdown-body .pl-s1,\n.markdown-body .pl-s1 .pl-pse .pl-s2,\n.markdown-body .pl-sr,\n.markdown-body .pl-sr .pl-cce,\n.markdown-body .pl-sr .pl-sra,\n.markdown-body .pl-sr .pl-sre,\n.markdown-body .pl-src {\n  color: #df5000;\n}\n\n.markdown-body .pl-mo,\n.markdown-body .pl-v {\n  color: #1d3e81;\n}\n\n.markdown-body .pl-id {\n  color: #b52a1d;\n}\n\n.markdown-body .pl-ii {\n  background-color: #b52a1d;\n  color: #f8f8f8;\n}\n\n.markdown-body .pl-sr .pl-cce {\n  color: #63a35c;\n  font-weight: bold;\n}\n\n.markdown-body .pl-ml {\n  color: #693a17;\n}\n\n.markdown-body .pl-mh,\n.markdown-body .pl-mh .pl-en,\n.markdown-body .pl-ms {\n  color: #1d3e81;\n  font-weight: bold;\n}\n\n.markdown-body .pl-mq {\n  color: #008080;\n}\n\n.markdown-body .pl-mi {\n  color: #333;\n  font-style: italic;\n}\n\n.markdown-body .pl-mb {\n  color: #333;\n  font-weight: bold;\n}\n\n.markdown-body .pl-md,\n.markdown-body .pl-mdhf {\n  background-color: #ffecec;\n  color: #bd2c00;\n}\n\n.markdown-body .pl-mdht,\n.markdown-body .pl-mi1 {\n  background-color: #eaffea;\n  color: #55a532;\n}\n\n.markdown-body .pl-mdr {\n  color: #795da3;\n  font-weight: bold;\n}\n\n.markdown-body kbd {\n  display: inline-block;\n  padding: 3px 5px;\n  font: 11px Consolas, \"Liberation Mono\", Menlo, Courier, monospace;\n  line-height: 10px;\n  color: #555;\n  vertical-align: middle;\n  background-color: #fcfcfc;\n  border: solid 1px #ccc;\n  border-bottom-color: #bbb;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 #bbb;\n}\n\n.markdown-body .task-list-item {\n  list-style-type: none;\n}\n\n.markdown-body .task-list-item+.task-list-item {\n  margin-top: 3px;\n}\n\n.markdown-body .task-list-item input {\n  float: left;\n  margin: 0.3em 0 0.25em -1.6em;\n  vertical-align: middle;\n}\n\n.markdown-body :checked+.radio-label {\n  z-index: 1;\n  position: relative;\n  border-color: #4183c4;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/lib/prefixes.scss",
    "content": "@charset \"UTF-8\";\n\n/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */\n\n// appearance\n\n@mixin appearance($value) {\n    -webkit-appearance: $value;\n       -moz-appearance: $value;\n        -ms-appearance: $value;\n            appearance: $value;\n}\n\n// clearfix\n\n@mixin clearfix() { \n    &:before, &:after {\n        content: \" \";\n        display: table;\n    } \n    \n    &:after {\n        clear: both;\n    }\n}\n\n// viewport\n\n@mixin viewport-device-width() {\n    width: device-width;\n    user-zoom: fixed;\n}\n\n@mixin viewport() {\n    @-webkit-viewport { \n        @include viewport-device-width();\n    }\n    @-moz-viewport { \n        @include viewport-device-width();\n    }\n    \n    @-ms-viewport { \n        @include viewport-device-width();\n    }\n    \n    @-o-viewport { \n        @include viewport-device-width();\n    }\n    \n    @viewport { \n        @include viewport-device-width();\n    }\n}\n\n// Transform\n\n@mixin transform($transform) {\n    -webkit-transform: $transform;  /* Safari, Chrome */\n       -moz-transform: $transform;  /* Firefox 3.5~16.0 */\n        -ms-transform: $transform;  /* IE9~10 */\n         -o-transform: $transform;  /* Opera 10.5~12.10 */\n            transform: $transform;\n}\n\n@mixin transform-origin($origin) {\n    -webkit-transform-origin: $origin;\n       -moz-transform-origin: $origin;  /* Firefox 3.5~16.0 */\n        -ms-transform-origin: $origin;  /* IE9~10 */\n         -o-transform-origin: $origin;  /* Opera 10.5~12.10 */\n            transform-origin: $origin;\n}\n\n@mixin transform-origin-x($origin) {\n    -webkit-transform-origin-x: $origin; /* Blink, Webkit */\n            transform-origin-x: $origin; /* IE11+ */\n}\n\n@mixin transform-origin-y($origin) {\n    -webkit-transform-origin-y: $origin; /* Blink, Webkit */\n            transform-origin-y: $origin; /* IE11+ */\n}\n\n@mixin transform-origin-z($origin) {\n    -webkit-transform-origin-z: $origin; /* Blink, Webkit */\n            transform-origin-z: $origin; /* IE11+ */\n}\n\n@mixin transform-style($style) {\n    -webkit-transform-style: $style;\n       -moz-transform-style: $style;  /* Firefox 10~16.0 */\n        -ms-transform-style: $style;  /* IE9~10 */\n            transform-style: $style;  /* Firefox, Blink, IE11+ */\n}\n\n// perspective\n\n@mixin perspective($value) {\n    -webkit-perspective: $value;          /* Safari, Chrome */\n            perspective: $value;          /* None yet / Non-standard */\n}\n\n@mixin perspective-origin($value) {\n    -webkit-perspective-origin: $value;   /* Safari, Chrome 12+ */\n       -moz-perspective-origin: $value;   /* Firefox 10~16 */\n            perspective-origin: $value;   /* Opera 15+, IE10+ */\n}\n\n@mixin perspective-origin-x($value) {\n    -webkit-perspective-origin-x: $value;   /* Safari, Chrome 12+ */\n            perspective-origin-x: $value;   /* IE10+ */\n}\n\n@mixin perspective-origin-y($value) {\n    -webkit-perspective-origin-y: $value;   /* Safari, Chrome 12+ */\n            perspective-origin-y: $value;   /* IE10+ */\n}\n\n@mixin backface-visibility($value : hidden) {\n    -webkit-backface-visibility: $value;  /* Chrome, Safari, Opera 15+ */\n       -moz-backface-visibility: $value;  /* Firefox */\n        -ms-backface-visibility: $value;  /* IE10 */\n            backface-visibility: $value;\n}\n\n// Transitions IE10+\n\n@mixin transition($transition...) {\n    -webkit-transition: $transition;  /* Safari, Chrome */\n       -moz-transition: $transition;  /* Firefox 4.0~16.0 */\n            transition: $transition;  /* IE >9, FF >15, Opera >12.0 */\n}\n\n@mixin transition-property($property) {\n    -webkit-transition-property: $property;\n       -moz-transition-property: $property;  /* Firefox 4.0~16.0 */\n            transition-property: $property;\n}\n\n@mixin transition-duration($duration) {\n    -webkit-transition-duration: $duration;\n       -moz-transition-duration: $duration;  /* Firefox 4.0~16.0 */\n            transition-duration: $duration;\n}\n\n@mixin transition-timing-function($easing) {\n    -webkit-transition-timing-function: $easing;\n       -moz-transition-timing-function: $easing;  /* Firefox 4.0~16.0 */\n            transition-timing-function: $easing;\n}\n\n@mixin transition-delay($delay) {\n    -webkit-transition-delay: $delay;\n       -moz-transition-delay: $delay;  /* Firefox 4.0~16.0 */\n            transition-delay: $delay;\n}\n\n// Flex align\n\n@mixin align-content($value) {\n    -webkit-align-content: $value;  /* Chrome 21.0+, Safari Not supported. */\n            align-content: $value;  /* Firefox 28+, Opera 12.10, IE Not supported. */\n}\n\n@mixin align-items($value) {\n    -webkit-align-items: $value; /* Safari 7.0+, Chrome 21.0+ */\n            align-items: $value; /* Firefox 20.0+, IE11+, Opera 12.10 */\n}\n\n@mixin align-self($value) {\n    -webkit-align-self: $value; /* Chrome 21~36, Safari Not supported. */\n            align-self: $value; /* Firefox 28+, Opera 12.10, IE Not supported. */\n}\n\n// Animations IE10+\n\n@mixin keyframes($name) {\n    @-webkit-keyframes #{$name} {\n        @content;\n    } \n    \n    @-moz-keyframes #{$name} {\n        @content;\n    } \n    \n    @keyframes #{$name} {\n        @content;\n    }\n}\n\n@mixin animation($animation...) {\n    -webkit-animation: $animation;\n       -moz-animation: $animation;  /* Firefox 5.0~16.0 */\n            animation: $animation;  /* IE10+ */\n}\n\n@mixin animation-name($name) {\n    -webkit-animation-name: $name;\n       -moz-animation-name: $name; /* Firefox 5.0~16.0 */\n            animation-name: $name;\n}\n\n@mixin animation-duration($time : 1s) {\n    -webkit-animation-duration: $time;\n       -moz-animation-duration: $time; /* Firefox 5.0~16.0 */\n            animation-duration: $time;\n}\n\n@mixin animation-timing-function($easing : ease) {\n    -webkit-animation-timing-function: $easing;\n       -moz-animation-timing-function: $easing; /* Firefox 5.0~16.0 */\n            animation-timing-function: $easing;\n}\n\n@mixin animation-delay($delay : 1s) {\n    -webkit-animation-delay: $delay;\n       -moz-animation-delay: $delay; /* Firefox 5.0~16.0 */\n            animation-delay: $delay;\n}\n\n@mixin animation-iteration-count($count : infinite) {\n    -webkit-animation-iteration-count: $count;\n       -moz-animation-iteration-count: $count; /* Firefox 5.0~16.0 */\n            animation-iteration-count: $count;\n}\n\n// normal or alternate\n@mixin animation-direction($direction : normal) {\n    -webkit-animation-direction: $direction;\n       -moz-animation-direction: $direction; /* Firefox 5.0~16.0 */\n            animation-direction: $direction;\n}\n\n// paused or running\n\n@mixin animation-play-state($state) {\n    -webkit-animation-play-state: $state;\n       -moz-animation-play-state: $state;    /* Firefox 5.0~16.0 */\n            animation-play-state: $state;\n}\n\n// animation-fill-mode\n\n@mixin animation-fill-mode($mode) {\n    -webkit-animation-fill-mode: $mode;\n       -moz-animation-fill-mode: $mode;\n            animation-fill-mode: $mode;\n}\n\n// user-select\n\n@mixin user-select($type) {\n    -webkit-user-select: $type;\n       -moz-user-select: $type;\n        -ms-user-select: $type;\n         -o-user-select: $type;\n            user-select: $type;\n}\n\n// border-radius\n\n@mixin border-radius($radius: 4px) {    \n    -webkit-border-radius: $radius;\n       -moz-border-radius: $radius;\n        -ms-border-radius: $radius;\n         -o-border-radius: $radius;\n            border-radius: $radius;\n}\n\n@mixin border-top-left-radius($radius: 4px) {    \n    -webkit-border-top-left-radius: $radius;\n       -moz-border-top-left-radius: $radius;\n        -ms-border-top-left-radius: $radius;\n         -o-border-top-left-radius: $radius;\n            border-top-left-radius: $radius;\n}\n\n@mixin border-top-right-radius($radius: 4px) {    \n    -webkit-border-top-right-radius: $radius;\n       -moz-border-top-right-radius: $radius;\n        -ms-border-top-right-radius: $radius;\n         -o-border-top-right-radius: $radius;\n            border-top-right-radius: $radius;\n}\n\n@mixin border-bottom-left-radius($radius: 4px) {    \n    -webkit-border-bottom-left-radius: $radius;\n       -moz-border-bottom-left-radius: $radius;\n        -ms-border-bottom-left-radius: $radius;\n         -o-border-bottom-left-radius: $radius;\n            border-bottom-left-radius: $radius;\n}\n\n@mixin border-bottom-right-radius($radius: 4px) {    \n    -webkit-border-bottom-right-radius: $radius;\n       -moz-border-bottom-right-radius: $radius;\n        -ms-border-bottom-right-radius: $radius;\n         -o-border-bottom-right-radius: $radius;\n            border-bottom-right-radius: $radius;\n}\n\n// border-image\n\n@mixin border-image($value) {\n    -webkit-border-image: $value;   /* Safari 5, Chrome */\n       -moz-border-image: $value;   /* Firefox 3.5~15.0 */\n         -o-border-image: $value;   /* Opera */\n            border-image: $value;   /* Safari 6+, Chrome, New */\n}\n\n@mixin border-image-source($value) {\n    -webkit-border-image-source: $value;   /* Safari 5, Chrome */\n            border-image-source: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-slice($value) {\n    -webkit-border-image-slice: $value;   /* Safari 5, Chrome */\n            border-image-slice: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-width($value) {\n    -webkit-border-image-width: $value;   /* Safari 5, Chrome */\n            border-image-width: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-outset($value) {\n    -webkit-border-image-outset: $value;   /* Safari 5, Chrome */\n            border-image-outset: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n@mixin border-image-repeat($value) {\n    -webkit-border-image-repeat: $value;   /* Safari 5, Chrome */\n            border-image-repeat: $value;   /* Safari 6+, Chrome, IE11+, Opera 15+ */\n}\n\n// box-shadow\n\n@mixin box-shadow($value) {\n    -webkit-box-shadow: $value;      /* Webkit browsers */\n       -moz-box-shadow: $value;      /* Firefox */\n        -ms-box-shadow: $value;      /* IE9 */\n         -o-box-shadow: $value;      /* Opera(Old) */\n            box-shadow: $value;      /* IE9+, News */\n}\n\n//box-sizing\n\n@mixin box-sizing($value) {\n    -webkit-box-sizing: $value;\n       -moz-box-sizing: $value;\n            box-sizing: $value; \n}\n\n// box-reflect\n\n@mixin box-reflect($value) {\n    -webkit-box-reflect: $value; /* Chrome, Safari, iOS, Blackberry */\n            box-reflect: $value; /* None yet / Non-standard */\n}\n\n// background  \n\n@mixin linear-gradient($start-color, $end-color, $position : top, $perStart : 0%, $perEnd : 100%) {\n    background: -webkit-linear-gradient($position, $start-color, $end-color);        /* Webkit browsers */\n    background: -moz-linear-gradient( $position, $start-color, $end-color);          /* Firefox(old) */\n    background: -o-linear-gradient( $position, $start-color, $end-color);             /* Opera(old) */\n    background: -ms-linear-gradient( $position, $start-color $perStart, $end-color $perEnd);    /* IE10 */ \n        filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, start-colorstr=#{$start-color}, end-colorstr=#{$end-color});    /* IE9 */\n     ms-filter: \"progid:DXImageTransform.Microsoft.gradient (GradientType=0, start-colorstr=#{$start-color}, end-colorstr=#{$end-color})\";  /* IE8 */ \n    background: linear-gradient( $position, $start-color $perStart, $end-color $perEnd);        /* W3C */\n}\n\n@mixin background-clip($value) {\n    -webkit-background-clip: $value;\n            background-clip: $value;  /* Firefox 4.0, IE9+, Opera 10.5+, Chrome, Safari 3.0+ */\n}\n\n@mixin background-origin($value) {\n    -webkit-background-origin: $value; \n            background-origin: $value;  /* IE9+, Other */\n}\n\n@mixin background-size($value) {\n    -webkit-background-size: $value;  /* Chrome, iOS, Safari */\n       -moz-background-size: $value;  /* Firefox 3.6~4.0 */\n         -o-background-size: $value;  /* Opera 9.5 */\n            background-size: $value;  /* IE9+, New */\n}\n\n// Column\n\n@mixin column-count($value) {\n  -webkit-column-count: $value; /* Chrome, Safari, Android, Blackberry  */\n     -moz-column-count: $value; /* Firefox 34+ */\n          column-count: $value; /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-gap($value) {\n  -webkit-column-gap: $value;  /* Chrome, Safari, Android, Blackberry  */\n     -moz-column-gap: $value;  /* Firefox 34+ */\n          column-gap: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule($value) {\n    -webkit-column-rule: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule: $value;  /* Firefox 34+ */\n            column-rule: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-color($value) {\n    -webkit-column-rule-color: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-color: $value;  /* Firefox 34+ */\n            column-rule-color: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-style($value) {\n    -webkit-column-rule-style: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-style: $value;  /* Firefox 34+ */\n            column-rule-style: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-rule-width($value) {\n    -webkit-column-rule-width: $value;  /* Chrome, Safari, Android, Blackberry  */\n       -moz-column-rule-width: $value;  /* Firefox 34+ */\n            column-rule-width: $value;  /* IE 10+, Opera 11.1+, New */\n}\n\n@mixin column-fill($value) {\n -webkit-column-fill: $value;  /* None yet */\n    -moz-column-fill: $value;  /* Firefox 13.0+ */\n         column-fill: $value;  /* None yet / Non-standard */\n}\n\n@mixin column-span($value) {\n    -webkit-column-span: $value;  /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-column-span: $value;  /* Firefox 34+ */\n            column-span: $value;  /* IE10+, Opera Mini */\n}\n\n@mixin column-width($value) {\n    -webkit-column-width: $value; /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-column-width: $value; /* Firefox */\n            column-width: $value; /* IE10+, Opera */\n}\n\n// columns: column-width column-count;\n\n@mixin columns($value) {\n    -webkit-columns: $value; /* Safari, Chrome, iOS 7.0+, Android, Opera 26+ */\n       -moz-columns: $value; /* Firefox */\n            columns: $value; /* IE10+, Opera */\n}\n\n// clip-path\n\n@mixin clip-path($value) {\n    -webkit-clip-path: $value; /* Chrome, iOS, Safari */\n            clip-path: $value;\n}\n\n// display\n\n@mixin display-grid() {\n    display: -ms-grid;     /* IE 10 */\n    display:     grid;     /* None yet */\n}\n\n@mixin display-flex() {\n    display: -webkit-box;  /* Old - iOS 6-, Safari 3.1~6, Blackberry 7 */\n    display: -ms-flexbox;  /* TWEENER - IE 10 */\n    display: -webkit-flex; /* New - Safari 6.1+. iOS 7.1+, Blackberry 10 */\n    display: flex;         /* New, Spec - Firefox, Chrome, Opera */\n}\n\n@mixin inline-flex($value) {\n    -webkit-inline-flex: $value; /* Chrome 21.0+ */\n            inline-flex: $value; /* Firefox 20+, Opera 12.5 */\n}\n\n@mixin flex($value) {\n    -webkit-box-flex: $value;   /* Old - iOS 6-, Safari 3.1~6 */\n        -webkit-flex: $value;   /* Safari 6.1+. iOS 7.1+, Blackberry 10 */\n            -ms-flex: $value;   /* IE 10 */\n                flex: $value;   /* New, Spec - Firefox, Chrome, Opera */\n}\n\n@mixin flex-direction($value) {\n    -webkit-flex-direction: $value;  /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-direction: $value;  /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin flex-basis($value) {\n    -webkit-flex-basis: $value;  /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-basis: $value;  /* Firefox 22+, IE11, Opera 12.10 */\n}\n\n@mixin flex-flow($value) {\n    -webkit-flex-flow: $value;   /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-flow: $value;   /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin flex-grow($value) {\n    -webkit-flex-grow: $value;   /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-grow: $value;   /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n@mixin flex-shrink($value) {\n    -webkit-flex-shrink: $value; /* Chrome 21.0+, But Safari & Android & iOS Not supported. */\n            flex-shrink: $value; /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n@mixin flex-wrap($value) {\n    -webkit-flex-wrap: $value;  /* Safari 6.1+, Chrome 21.0+, Android 4.4+, iOS 7.0+ */\n            flex-wrap: $value;  /* Firefox 28+, IE11, Opera 12.10 */\n}\n\n@mixin order($value) {\n     -webkit-order: $value; /* Chrome 21+, Safari Not supported. */\n    -ms-flex-order: $value; /* IE 10.0 */\n             order: $value; /* Firefox 20+, Opera 12.10 */\n}\n\n// flow\n\n@mixin flow-into($value) {\n    -webkit-flow-into: $value;  /* Safari 7.1+, iOS Safari 7.1+ */\n        -ms-flow-into: $value;  /* IE10+ */\n            flow-into: $value;  /* None yet */\n}\n\n@mixin flow-from($value) {\n    -webkit-flow-from: $value;  /* Safari 7.1+, iOS Safari 7.1+ */\n        -ms-flow-from: $value;  /* IE10+ */\n            flow-from: $value;  /* None yet */\n}\n\n// filter\n\n@mixin filter($value) {\n    -webkit-filter: $value;     /* Chrome 23+, Safari 6.0+, Blackberry 10.0+ */\n            filter: $value;     /* None yet */\n}\n\n// filter blur\n\n@mixin filter-blur($value : 10px, $ie-value : 10) { \n            filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=#{$ie-value}, MakeShadow=false);  /* IE6~IE9 */\n    -webkit-filter: blur($value); /* Chrome, Opera, iOS, Safari */\n       -moz-filter: blur($value); /* Firefox(Old) */\n        -ms-filter: blur($value);\n            filter: blur($value);\n}\n\n@mixin font-kerning($value) {\n    -webkit-font-kerning: $value;\n            font-kerning: $value;\n}\n\n// font-feature-settings\n\n@mixin font-feature-settings($value) {\n    -webkit-font-feature-settings: $value;  /* Chrome 16-26, Blackberry 10 */\n       -moz-font-feature-settings: $value;  /* Firefox 4-21 */\n            font-feature-settings: $value;  /* IE 10, Safari 4.0-6.0 */\n}\n\n@mixin font-variant-ligatures($value) {\n    -webkit-font-variant-ligatures: $value;\n            font-variant-ligatures: $value;\n}\n\n// hyphens\n\n@mixin hyphens($value : auto) {\n    // Chrome 29- and Android 4.0 Browser support \"-webkit-hyphens: none\", but not the \"auto\" property.\n    -webkit-hyphens: $value;  /* Safari 5.1+, Chrome */\n       -moz-hyphens: $value;  /* Firefox 6.0+ */\n        -ms-hyphens: $value;  /* IE 10+ */\n            hyphens: $value;  /* None yet */\n}\n\n@mixin justify-content($value) {\n    -webkit-justify-content: $value; /* Chrome 21+, Safari Not supported. */\n            justify-content: $value; /* Firefox 20+, Opera 12.10, IE Not supported. */\n}\n\n// line\n\n@mixin line-break($value) {\n    -webkit-line-break: $value;\n            line-break: $value;\n}\n\n// margin\n\n@mixin margin-start($value) {\n    -webkit-margin-start: $value;  /* Safari 3.0+, Chrome */\n       -moz-margin-start: $value;  /* Firefox 1.0+ */\n            margin-start: $value;  /* None yet / Non-standard */\n}\n\n@mixin margin-end($value) {\n    -webkit-margin-end: $value;  /* Safari 3.0+, Chrome */\n       -moz-margin-end: $value;  /* Firefox 1.0+ */\n            margin-end: $value;  /* None yet / Non-standard */\n}\n\n// mask\n\n@mixin mask-image($value) {\n    -webkit-mask-image: $value; /* Chrome, iOS, Safari */\n            mask-image: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-size($value) {\n    -webkit-mask-size: $value; /* Chrome, iOS, Safari */\n            mask-size: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-clip($value) {\n    -webkit-mask-clip: $value; /* Chrome, iOS, Safari */\n            mask-clip: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position($value) {\n    -webkit-mask-position: $value; /* Chrome, iOS, Safari */\n            mask-position: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position-x($value) {\n    -webkit-mask-position-x: $value; /* Chrome, iOS, Safari */\n            mask-position-x: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-position-y($value) {\n    -webkit-mask-position-y: $value; /* Chrome, iOS, Safari */\n            mask-position-y: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-origin($value) {\n    -webkit-mask-origin: $value; /* Chrome, iOS, Safari */\n            mask-origin: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-repeat($value) {\n    -webkit-mask-repeat: $value; /* Chrome, iOS, Safari */\n            mask-repeat: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-attachment($value) {\n    -webkit-mask-attachment: $value; /* Chrome, iOS, Safari */\n            mask-attachment: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-composite($value) {\n    -webkit-mask-composite: $value; /* Chrome, iOS, Safari */\n            mask-composite: $value; /* None yet / Non-standard */\n}\n\n@mixin mask-box-image($value) {\n    -webkit-mask-box-image: $value; /* Chrome, iOS, Safari */\n            mask-box-image: $value; /* None yet / Non-standard */\n}\n\n// opacity\n\n@mixin opacity($opacity) {\n    opacity: $opacity; /* W3C */\n     filter: alpha(opacity=($opacity * 100)); /* IE */\n}\n\n// padding\n\n@mixin padding-start($value) {\n    -webkit-padding-start: $value; /* Safari, Chrome, WebKit */\n       -moz-padding-start: $value; /* Firefox 3+ */\n            padding-start: $value;\n}\n\n@mixin padding-end($value) {\n    -webkit-padding-end: $value; /* Safari, Chrome, WebKit */\n       -moz-padding-end: $value; /* Firefox 3+ */\n            padding-end: $value;\n}\n\n// ruby-position\n\n@mixin ruby-position($value) {\n    -webkit-ruby-position: $value; /* Blink, Webkit */\n            ruby-position: $value; /* Firefox, IE */\n}\n\n// Text\n\n@mixin text-size-adjust($value) {\n    -webkit-text-size-adjust: $value; /* Chrome 27+ */\n       -moz-text-size-adjust: $value; /* Firefox */\n            text-size-adjust: $value; /* None yet */\n}\n\n@mixin text-align-last($value) {\n    -webkit-text-align-last: $value;  /* Chrome 35+, Safari Not supported. */\n       -moz-text-align-last: $value;  /* Firefox 12.0 */\n            text-align-last: $value;  /* IE 5.5+ */\n}\n\n@mixin text-justify($value) {\n    -webkit-text-justify: $value;\n            text-justify: $value;\n}\n\n@mixin text-decoration-color($value) {\n    -webkit-text-decoration-color: $value;\n            text-decoration-color: $value;\n}\n\n@mixin text-decoration-line($value) {\n    -webkit-text-decoration-line: $value;\n            text-decoration-line: $value;\n}\n\n@mixin text-decoration-style($value) {\n    -webkit-text-decoration-style: $value;\n            text-decoration-style: $value;\n}\n\n@mixin text-orientation($value) {\n    -webkit-text-orientation: $value;\n            text-orientation: $value;\n}\n\n@mixin text-underline-position($value) {\n    -webkit-text-underline-position: $value; /* Chrome 33 not fully supported. */\n            text-underline-position: $value; /* IE 5 not fully supported. */\n}\n\n@mixin text-emphasis($value) {\n    -webkit-text-emphasis: $value; /* Blink */\n            text-emphasis: $value; /* WebKit */\n}\n\n@mixin text-emphasis-color($value) {\n    -webkit-text-emphasis-color: $value; /* Blink */\n            text-emphasis-color: $value; /* WebKit */\n}\n\n@mixin text-emphasis-style($value) {\n    -webkit-text-emphasis-style: $value; /* Blink */\n            text-emphasis-style: $value; /* WebKit */\n}\n\n@mixin text-emphasis-position($value) {\n    -webkit-text-emphasis-position: $value; /* Blink */\n            text-emphasis-position: $value; /* WebKit */\n}\n\n// tab\n\n@mixin tab-size($value) {\n    -webkit-tab-size: $value; /* Chrome 21+, Safari 6.1+ */\n       -moz-tab-size: $value; /* Firefox 4.0 */\n         -o-tab-size: $value; /* Opera 10.6~15 */\n            tab-size: $value; /* Blink & Webkit */\n}\n\n// input-placeholder\n\n@mixin input-placeholder($seletor) {\n    \n    #{$seletor}::-webkit-input-placeholder {\n        @content;\n    }\n    \n    #{$seletor}:-moz-placeholder {  /* Firefox 4~18 */\n        @content;\n    }\n    \n    #{$seletor}::-moz-placeholder {  /* Firefox 19+ */\n        @content;\n    }\n    \n    #{$seletor}:-ms-input-placeholder {  /* IE10+ */ \n        @content;\n    }\n}"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/lib/variables.scss",
    "content": "@charset \"UTF-8\";\n\n// Global Variables\n\n$prefix       : \".editormd-\";\n$color        : #666;\n$mainColor    : #2196F3;\n$primaryColor : $mainColor;\n$secondColor  : #33CC66;\n$thirdColor   : #999999;\n$borderColor  : #ddd;"
  },
  {
    "path": "public/vendor/laravel-admin-ext/editormd/editormd-1.5.0/scss/prettify.scss",
    "content": "@charset \"UTF-8\";\n\n/*! Pretty printing styles. Used with prettify.js. */\n/* SPAN elements with the classes below are added by prettyprint. */\n.pln { color: #000 }  /* plain text */\n\n@media screen {\n  .str { color: #080 }  /* string content */\n  .kwd { color: #008 }  /* a keyword */\n  .com { color: #800 }  /* a comment */\n  .typ { color: #606 }  /* a type name */\n  .lit { color: #066 }  /* a literal value */\n  /* punctuation, lisp open bracket, lisp close bracket */\n  .pun, .opn, .clo { color: #660 }\n  .tag { color: #008 }  /* a markup tag name */\n  .atn { color: #606 }  /* a markup attribute name */\n  .atv { color: #080 }  /* a markup attribute value */\n  .dec, .var { color: #606 }  /* a declaration; a variable name */\n  .fun { color: red }  /* a function name */\n}\n\n/* Use higher contrast and text-weight for printable form. */\n@media print, projection {\n  .str { color: #060 }\n  .kwd { color: #006; font-weight: bold }\n  .com { color: #600; font-style: italic }\n  .typ { color: #404; font-weight: bold }\n  .lit { color: #044 }\n  .pun, .opn, .clo { color: #440 }\n  .tag { color: #006; font-weight: bold }\n  .atn { color: #404 }\n  .atv { color: #060 }\n}\n\n/* Put a border around prettyprinted code snippets. */\npre.prettyprint { padding: 2px; border: 1px solid #888 }\n\n/* Specify class=linenums on a pre to get line numbering */\nol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */\nli.L0,\nli.L1,\nli.L2,\nli.L3,\nli.L5,\nli.L6,\nli.L7,\nli.L8 { list-style-type: none }\n/* Alternate shading for lines */\nli.L1,\nli.L3,\nli.L5,\nli.L7,\nli.L9 { background: #eee }"
  },
  {
    "path": "public/vendor/laravel-admin-ext/large-file-upload/js/aetherupload.admin.js",
    "content": "var AetherUpload = {\n\n    upload: function (name) {\n\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n\n        this.resourceDom = this.wrapperDom.find('#'+name+'-resource'),\n            console.log(this.resourceDom[0]);\n        this.outputDom = this.wrapperDom.find('#'+name+'-output'),\n\n            this.progressBarDom = this.wrapperDom.find('#'+name+'-progressbar'),\n\n            this.resource = this.resourceDom[0].files[0],\n\n            this.resourceName = this.resource.name,\n\n            this.resourceSize = this.resource.size,\n\n            this.resourceTempBaseName = '',\n\n            this.resourceExt = '',\n\n            this.chunkSize = 0,\n\n            this.chunkCount = 0,\n\n            this.groupSubDir = '',\n\n            this.savedPath = '',\n\n            this.resourceHash = '',\n\n            this.blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,\n\n            this.i = 0,\n\n            this.locale,\n\n            this.messages = this.getLocalizedMessages(),\n\n            this.storageHost = $('#aetherupload-storage-host').length ? $('#aetherupload-storage-host').val() : '';\n\n        if (!this.blobSlice) {\n\n            this.outputDom.text(this.messages.error_unsupported_browser);\n\n            return;\n\n        }\n\n        if (this.resourceSize === 0) {\n\n            this.outputDom.text(this.messages.error_invalid_resource_size);\n\n            return;\n\n        }\n\n        if (this.resourceName.substring(this.resourceName.lastIndexOf('.') + 1, this.resourceName.length) === '') {\n\n            this.outputDom.text(this.messages.error_invalid_resource_type);\n\n            return;\n\n        }\n\n        this.outputDom.text(this.messages.status_upload_begin);\n\n        if (!('FileReader' in window) || !('File' in window) || typeof SparkMD5 === 'undefined') {\n\n            this.preprocess(); //浏览器不支持读取本地文件，跳过计算hash\n\n        } else if (this.laxMode === true) {\n\n            this.preprocess(); //宽松模式，跳过计算hash\n\n        } else {\n\n            this.calculateHash();\n\n        }\n\n    },\n\n    calculateHash: function () { //计算hash\n\n        var _this = this,\n\n            clientChunkSize = 4000000,\n\n            chunks = Math.ceil(_this.resource.size / clientChunkSize),\n\n            currentChunk = 0,\n\n            spark = new SparkMD5.ArrayBuffer(),\n\n            fileReader = new FileReader();\n\n        fileReader.onload = function (e) {\n\n            spark.append(e.target.result);\n\n            ++currentChunk;\n\n            _this.outputDom.text(_this.messages.status_hashing + ' ' + parseInt(currentChunk / chunks * 100) + '%');\n\n            if (currentChunk < chunks) {\n\n                loadNext();\n\n            } else {\n\n                _this.resourceHash = spark.end();\n\n                _this.preprocess();\n\n            }\n        };\n\n        fileReader.onerror = function () {\n\n            _this.preprocess();\n\n        };\n\n        function loadNext() {\n\n            var start = currentChunk * clientChunkSize,\n\n                end = start + clientChunkSize >= _this.resource.size ? _this.resource.size : start + clientChunkSize;\n\n            fileReader.readAsArrayBuffer(_this.blobSlice.call(_this.resource, start, end));\n\n        }\n\n        loadNext();\n\n    },\n\n    preprocess: function () { //预处理\n\n        var _this = this;\n\n        $.ajax({\n\n            url: _this.storageHost + _this.preprocessRoute,\n\n            type: 'POST',\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            crossDomain: true,\n\n            data: {\n\n                resource_name: _this.resourceName,\n\n                resource_size: _this.resourceSize,\n\n                resource_hash: _this.resourceHash,\n\n                locale: _this.locale,\n\n                group: _this.group\n\n            },\n\n            success: function (rst) {\n\n                if (rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n                }\n\n                _this.resourceTempBaseName = rst.resourceTempBaseName;\n\n                _this.resourceExt = rst.resourceExt;\n\n                _this.chunkSize = rst.chunkSize;\n\n                _this.chunkCount = Math.ceil(_this.resourceSize / _this.chunkSize);\n\n                _this.groupSubDir = rst.groupSubDir;\n\n                if (rst.savedPath.length === 0) {\n\n                    _this.uploadChunk();\n\n\n                } else {\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_instant_completion_success);\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                }\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                _this.outputDom.text(_this.messages.error_upload_fail);\n\n            }\n\n        });\n\n    },\n\n    uploadChunk: function () {\n\n        var _this = this,\n\n            start = this.i * this.chunkSize,\n\n            end = Math.min(this.resourceSize, start + this.chunkSize),\n\n            form = new FormData();\n\n        form.append('resource_chunk', this.resource.slice(start, end));\n\n        form.append('resource_ext', this.resourceExt);\n\n        form.append('chunk_total', this.chunkCount);\n\n        form.append('chunk_index', this.i + 1);\n\n        form.append('resource_temp_basename', this.resourceTempBaseName);\n\n        form.append('group', this.group);\n\n        form.append('group_subdir', this.groupSubDir);\n\n        form.append('locale', this.locale);\n\n        form.append('resource_hash', this.resourceHash);\n\n        $.ajax({\n\n            url: _this.storageHost + _this.uploadingRoute,\n\n            type: 'POST',\n\n            data: form,\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            cache: false,\n\n            crossDomain: true,\n\n            processData: false,\n\n            contentType: false,\n\n            success: function (rst) {\n\n                if ((rst instanceof Object) !== true) {\n\n                    _this.outputDom.text(_this.messages.error_invalid_server_return);\n\n                    return;\n                }\n\n                if (rst.error === 'undefined' || rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n\n                }\n\n                var percent = parseInt((_this.i + 1) / _this.chunkCount * 100);\n\n                _this.progressBarDom.css('width', percent + '%');\n\n                _this.outputDom.text(_this.messages.status_uploading + ' ' + percent + '%');\n\n                if (rst.savedPath !== 'undefined' && rst.savedPath !== '') {\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_upload_succeed);\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                } else {\n\n                    ++_this.i;\n\n                    _this.uploadChunk();\n\n                }\n\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                if (XMLHttpRequest.status === 0) {\n\n                    _this.outputDom.text(_this.messages.status_retrying);\n\n                    _this.sleep(5000);\n\n                    _this.uploadChunk();\n\n                } else {\n\n                    _this.outputDom.text(_this.messages.error_upload_fail);\n\n                }\n            }\n\n        });\n\n    },\n\n    sleep: function (milliSecond) {\n\n        var wakeUpTime = new Date().getTime() + milliSecond;\n\n        while (true) {\n\n            if (new Date().getTime() > wakeUpTime) {\n\n                return;\n            }\n        }\n    },\n\n    success: function (callback) {\n\n        this.callback = callback;\n\n        return this;\n    },\n\n    setPreprocessRoute: function (route) {\n\n        this.preprocessRoute = route;\n\n        return this;\n    },\n\n    setUploadingRoute: function (route) {\n\n        this.uploadingRoute = route;\n\n        return this;\n    },\n\n    setGroup: function (group) {\n\n        this.group = group;\n\n        return this;\n    },\n\n    setSavedPathField: function (selector) {\n\n        this.savedPathDom = $(selector);\n\n        return this;\n    },\n\n    setLaxMode: function (isLax) {\n\n        this.laxMode = isLax;\n\n        return this;\n    },\n\n    getLocalizedMessages: function () {\n\n        var lang = navigator.language ? navigator.language : navigator.browserLanguage;\n\n        var locales = Object.getOwnPropertyNames(this.text);\n\n        for (var k in locales) {\n\n            if (lang.indexOf(locales[k]) > -1) {\n\n                this.locale = locales[k];\n\n                return this.text[this.locale];\n\n            }\n\n        }\n\n        this.locale = 'en';\n\n        return this.text[this.locale];\n\n    },\n\n    text: {\n        en: {\n            status_upload_begin: 'upload begin',\n            error_unsupported_browser: 'Error: unsupported browser',\n            status_hashing: 'hashing',\n            status_instant_completion_success: 'upload succeed (instant completion) ',\n            status_uploading: 'uploading',\n            status_upload_succeed: 'upload succeed',\n            status_retrying: 'network problem, retrying...',\n            error_upload_fail: 'Error: upload fail',\n            error_invalid_server_return: 'Error: invalid server return value',\n            error_invalid_resource_size: 'Error: invalid resource size',\n            error_invalid_resource_type: 'Error: invalid resource type'\n        },\n        zh: {\n            status_upload_begin: '开始上传',\n            error_unsupported_browser: '错误：上传组件不被此浏览器支持',\n            status_hashing: '正在哈希',\n            status_instant_completion_success: '上传成功（秒传）',\n            status_uploading: '正在上传',\n            status_upload_succeed: '上传成功',\n            status_retrying: '网络故障，正在重试……',\n            error_upload_fail: '错误：上传失败',\n            error_invalid_server_return: '错误：无效的服务器返回值',\n            error_invalid_resource_size: '错误：无效的文件大小',\n            error_invalid_resource_type: '错误：无效的文件类型'\n        }\n    }\n\n\n};\n\n/*\n * 创建AetherUpload对象的全局方法\n * resource 文件对象\n * group 分组名\n */\nfunction aetherupload(name, resource) {\n\n    var newInstance = Object.create(AetherUpload);\n\n    newInstance.wrapperDom = $(resource).parents('#aetherupload-wrapper-'+name);\n\n    newInstance.group = 'file'; //分组的默认值\n\n    newInstance.savedPathDom = newInstance.wrapperDom.find('#'+name+'-savedpath'); //资源储存地址所在节点的默认值\n\n    newInstance.preprocessRoute = '/aetherupload/preprocess'; //预处理路由的默认值\n\n    newInstance.uploadingRoute = '/aetherupload/uploading'; //上传路由的默认值\n\n    newInstance.laxMode = false; //宽松模式\n\n    return newInstance;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/large-file-upload/js/bootstrap.file-input.js",
    "content": "/*\n  Bootstrap - File Input\n  ======================\n  This is meant to convert all file input tags into a set of elements that displays consistently in all browsers.\n  Converts all\n  <input type=\"file\">\n  into Bootstrap buttons\n  <a class=\"btn\">Browse</a>\n*/\n(function($) {\n\n    $.fn.bootstrapFileInput = function() {\n\n        this.each(function(i,elem){\n\n            var $elem = $(elem);\n\n            // Maybe some fields don't need to be standardized.\n            if (typeof $elem.attr('data-bfi-disabled') != 'undefined') {\n                return;\n            }\n\n            // Set the word to be displayed on the button\n            var placeholer = $elem.attr('placeholder');\n            var buttonWord = placeholer ? placeholer : '选择文件';\n\n            if (typeof $elem.attr('title') != 'undefined') {\n                buttonWord = $elem.attr('title');\n            }\n\n            var className = '';\n\n            if (!!$elem.attr('class')) {\n                className = ' ' + $elem.attr('class');\n            }\n\n            // Now we're going to wrap that input field with a Bootstrap button.\n            // The input will actually still be there, it will just be float above and transparent (done with the CSS).\n            $elem.wrap('<a class=\"file-input-wrapper btn btn-default ' + className + '\"></a>').parent().prepend($('<span></span>').html(buttonWord));\n        })\n\n        // After we have found all of the file inputs let's apply a listener for tracking the mouse movement.\n        // This is important because the in order to give the illusion that this is a button in FF we actually need to move the button from the file input under the cursor. Ugh.\n            .promise().done( function(){\n\n            // As the cursor moves over our new Bootstrap button we need to adjust the position of the invisible file input Browse button to be under the cursor.\n            // This gives us the pointer cursor that FF denies us\n            $('.file-input-wrapper').mousemove(function(cursor) {\n\n                var input, wrapper,\n                    wrapperX, wrapperY,\n                    inputWidth, inputHeight,\n                    cursorX, cursorY;\n\n                // This wrapper element (the button surround this file input)\n                wrapper = $(this);\n                // The invisible file input element\n                input = wrapper.find(\"input\");\n                // The left-most position of the wrapper\n                wrapperX = wrapper.offset().left;\n                // The top-most position of the wrapper\n                wrapperY = wrapper.offset().top;\n                // The with of the browsers input field\n                inputWidth= input.width();\n                // The height of the browsers input field\n                inputHeight= input.height();\n                //The position of the cursor in the wrapper\n                cursorX = cursor.pageX;\n                cursorY = cursor.pageY;\n\n                //The positions we are to move the invisible file input\n                // The 20 at the end is an arbitrary number of pixels that we can shift the input such that cursor is not pointing at the end of the Browse button but somewhere nearer the middle\n                moveInputX = cursorX - wrapperX - inputWidth + 20;\n                // Slides the invisible input Browse button to be positioned middle under the cursor\n                moveInputY = cursorY- wrapperY - (inputHeight/2);\n\n                // Apply the positioning styles to actually move the invisible file input\n                input.css({\n                    left:moveInputX,\n                    top:moveInputY\n                });\n            });\n\n            $('body').on('change', '.file-input-wrapper input[type=file]', function(){\n\n                var fileName;\n                fileName = $(this).val();\n\n                // Remove any previous file names\n                $(this).parent().next('.file-input-name').remove();\n                if (!!$(this).prop('files') && $(this).prop('files').length > 1) {\n                    fileName = $(this)[0].files.length+' files';\n                }\n                else {\n                    fileName = fileName.substring(fileName.lastIndexOf('\\\\') + 1, fileName.length);\n                }\n\n                // Don't try to show the name if there is none\n                if (!fileName) {\n                    return;\n                }\n\n                var selectedFileNamePlacement = $(this).data('filename-placement');\n                if (selectedFileNamePlacement === 'inside') {\n                    // Print the fileName inside\n                    $(this).siblings('span').html(fileName);\n                    $(this).attr('title', fileName);\n                } else {\n                    // Print the fileName aside (right after the the button)\n                    $(this).parent().after('<span class=\"file-input-name\">'+fileName+'</span>');\n                }\n            });\n\n        });\n\n    };\n\n// Add the styles before the first stylesheet\n// This ensures they can be easily overridden with developer styles\n    var cssHtml = '<style>'+\n        '.file-input-wrapper { overflow: hidden; position: relative; cursor: pointer; z-index: 1; }'+\n        '.file-input-wrapper input[type=file], .file-input-wrapper input[type=file]:focus, .file-input-wrapper input[type=file]:hover { position: absolute; top: 0; left: 0; cursor: pointer; opacity: 0; filter: alpha(opacity=0); z-index: 99; outline: 0; }'+\n        '.file-input-name { margin-left: 8px; }'+\n        '</style>';\n    $('link[rel=stylesheet]').eq(0).before(cssHtml);\n\n})(jQuery);\n\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/material-ui/MaterialAdminLTE/dist/css/custom.css",
    "content": "/* fix styles */\n.box-footer label.control-label {\n    margin-top: 0;\n}\n\n.box .box-body .input-group, .box .box-footer .input-group {\n    margin-top: 0;\n}\n.form-group label.control-label {\n    margin-top: 8px;\n}\n\n.btn-group, .btn-group-vertical {\n    margin: 0;\n}\n\n.form-horizontal label {\n    margin-top: 10px;\n}\n\n.checkbox .checkbox-material, label.checkbox-inline .checkbox-material {\n    display: none;\n}\n\n.radio .circle, label.radio-inline .circle {\n    display: none;\n}\n\n.iconpicker .iconpicker-items {\n    color: #aaaaaa;\n}\n\n.btn, .input-group-btn .btn {\n    margin: 0;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/row-table/table.css",
    "content": "table.table-fields tbody tr td {\n    border: none;\n    padding-right: 10px;\n    padding-top: 0;\n    padding-bottom: 0;\n    padding-left: 0;\n}\n\ntable.table-fields thead tr td,\ntable.table-fields thead tr th {\n    padding: 8px 0;\n    margin-bottom: 8px;\n    height: 34px;\n}\n\n.table.table-fields {\n    margin: 0;\n    padding: 0;\n}\n\ntable.table-fields .form-group.has-error .control-label,\ntable.table-fields .form-group.has-error br,\ndiv.table-fields .form-group.has-error br {\n    display: none;\n}\n\n.table-has-error .form-group.has-error .control-label {\n    color: inherit;\n}\n\n.control-label.table-error {\n    color: #dd4b39;\n}\n\n.form-group.has-error .select2-container .select2-selection {\n    border-color: #dd4b39;\n    box-shadow: none;\n}\n\ndiv.table-fields .form-group.has-error div .control-label {\n    display: none;\n}\n\ndiv.table-fields .form-group .col-sm-12.control-label {\n    margin-bottom: 10px;\n}\n\ndiv.table.table-fields td .form-group {\n    margin-bottom: 7px\n}\n\n.table.table-fields .col-sm-12 .control-label {\n    text-align: left;\n}\n\n.table.table-fields .show-text {\n    vertical-align: middle;\n}\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/scripts/dompurify.js",
    "content": "(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.DOMPurify = factory());\n}(this, (function () { 'use strict';\n\nvar html = ['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr'];\n\n// SVG\nvar svg = ['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern'];\n\nvar svgFilters = ['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence'];\n\nvar mathMl = ['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmuliscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mpspace', 'msqrt', 'mystyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover'];\n\nvar text = ['#text'];\n\nvar html$1 = ['accept', 'action', 'align', 'alt', 'autocomplete', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'coords', 'crossorigin', 'datetime', 'default', 'dir', 'disabled', 'download', 'enctype', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'integrity', 'ismap', 'label', 'lang', 'list', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'multiple', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns'];\n\nvar svg$1 = ['accent-height', 'accumulate', 'additivive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan'];\n\nvar mathMl$1 = ['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns'];\n\nvar xml = ['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink'];\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array) {\n  var l = array.length;\n  while (l--) {\n    if (typeof array[l] === 'string') {\n      array[l] = array[l].toLowerCase();\n    }\n    set[array[l]] = true;\n  }\n  return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n  var newObject = {};\n  var property = void 0;\n  for (property in object) {\n    if (Object.prototype.hasOwnProperty.call(object, property)) {\n      newObject[property] = object[property];\n    }\n  }\n  return newObject;\n}\n\nvar MUSTACHE_EXPR = /\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm; // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = /<%[\\s\\S]*|[\\s\\S]*%>/gm;\nvar DATA_ATTR = /^data-[\\-\\w.\\u00B7-\\uFFFF]/; // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = /^aria-[\\-\\w]+$/; // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i; // eslint-disable-line no-useless-escape\nvar IS_SCRIPT_OR_DATA = /^(?:\\w+script|data):/i;\nvar ATTR_WHITESPACE = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g; // eslint-disable-line no-control-regex\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar getGlobal = function getGlobal() {\n  return typeof window === 'undefined' ? null : window;\n};\n\nfunction createDOMPurify() {\n  var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n  var DOMPurify = function DOMPurify(root) {\n    return createDOMPurify(root);\n  };\n\n  /**\n   * Version label, exposed for easier checks\n   * if DOMPurify is up to date or not\n   */\n  DOMPurify.version = '1.0.8';\n\n  /**\n   * Array of elements that DOMPurify removed during sanitation.\n   * Empty if nothing was removed.\n   */\n  DOMPurify.removed = [];\n\n  if (!window || !window.document || window.document.nodeType !== 9) {\n    // Not running in a browser, provide a factory function\n    // so that you can pass your own Window\n    DOMPurify.isSupported = false;\n\n    return DOMPurify;\n  }\n\n  var originalDocument = window.document;\n  var useDOMParser = false; // See comment below\n  var removeTitle = false; // See comment below\n\n  var document = window.document;\n  var DocumentFragment = window.DocumentFragment,\n      HTMLTemplateElement = window.HTMLTemplateElement,\n      Node = window.Node,\n      NodeFilter = window.NodeFilter,\n      _window$NamedNodeMap = window.NamedNodeMap,\n      NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n      Text = window.Text,\n      Comment = window.Comment,\n      DOMParser = window.DOMParser;\n\n  // As per issue #47, the web-components registry is inherited by a\n  // new document created via createHTMLDocument. As per the spec\n  // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n  // a new empty registry is used when creating a template contents owner\n  // document, so we use that as our parent document to ensure nothing\n  // is inherited.\n\n  if (typeof HTMLTemplateElement === 'function') {\n    var template = document.createElement('template');\n    if (template.content && template.content.ownerDocument) {\n      document = template.content.ownerDocument;\n    }\n  }\n\n  var _document = document,\n      implementation = _document.implementation,\n      createNodeIterator = _document.createNodeIterator,\n      getElementsByTagName = _document.getElementsByTagName,\n      createDocumentFragment = _document.createDocumentFragment;\n  var importNode = originalDocument.importNode;\n\n\n  var hooks = {};\n\n  /**\n   * Expose whether this browser supports running the full DOMPurify.\n   */\n  DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n  var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n      ERB_EXPR$$1 = ERB_EXPR,\n      DATA_ATTR$$1 = DATA_ATTR,\n      ARIA_ATTR$$1 = ARIA_ATTR,\n      IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n  var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n  /**\n   * We consider the elements and attributes below to be safe. Ideally\n   * don't add any new ones but feel free to remove unwanted ones.\n   */\n\n  /* allowed element names */\n\n  var ALLOWED_TAGS = null;\n  var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(svgFilters), _toConsumableArray(mathMl), _toConsumableArray(text)));\n\n  /* Allowed attribute names */\n  var ALLOWED_ATTR = null;\n  var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(mathMl$1), _toConsumableArray(xml)));\n\n  /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n  var FORBID_TAGS = null;\n\n  /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n  var FORBID_ATTR = null;\n\n  /* Decide if ARIA attributes are okay */\n  var ALLOW_ARIA_ATTR = true;\n\n  /* Decide if custom data attributes are okay */\n  var ALLOW_DATA_ATTR = true;\n\n  /* Decide if unknown protocols are okay */\n  var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n  /* Output should be safe for jQuery's $() factory? */\n  var SAFE_FOR_JQUERY = false;\n\n  /* Output should be safe for common template engines.\n   * This means, DOMPurify removes data attributes, mustaches and ERB\n   */\n  var SAFE_FOR_TEMPLATES = false;\n\n  /* Decide if document with <html>... should be returned */\n  var WHOLE_DOCUMENT = false;\n\n  /* Track whether config is already set on this instance of DOMPurify. */\n  var SET_CONFIG = false;\n\n  /* Decide if all elements (e.g. style, script) must be children of\n   * document.body. By default, browsers might move them to document.head */\n  var FORCE_BODY = false;\n\n  /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html string.\n   * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n   */\n  var RETURN_DOM = false;\n\n  /* Decide if a DOM `DocumentFragment` should be returned, instead of a html string */\n  var RETURN_DOM_FRAGMENT = false;\n\n  /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n   * `Node` is imported into the current `Document`. If this flag is not enabled the\n   * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n   * DOMPurify. */\n  var RETURN_DOM_IMPORT = false;\n\n  /* Output should be free from DOM clobbering attacks? */\n  var SANITIZE_DOM = true;\n\n  /* Keep element content when removing element? */\n  var KEEP_CONTENT = true;\n\n  /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n   * of importing it into a new Document and returning a sanitized copy */\n  var IN_PLACE = false;\n\n  /* Allow usage of profiles like html, svg and mathMl */\n  var USE_PROFILES = {};\n\n  /* Tags to ignore content of when KEEP_CONTENT is true */\n  var FORBID_CONTENTS = addToSet({}, ['audio', 'head', 'math', 'script', 'style', 'template', 'svg', 'video']);\n\n  /* Tags that are safe for data: URIs */\n  var DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image']);\n\n  /* Attributes safe for values like \"javascript:\" */\n  var URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n  /* Keep a reference to config to pass to hooks */\n  var CONFIG = null;\n\n  /* Ideally, do not touch anything below this line */\n  /* ______________________________________________ */\n\n  var formElement = document.createElement('form');\n\n  /**\n   * _parseConfig\n   *\n   * @param  {Object} cfg optional config literal\n   */\n  // eslint-disable-next-line complexity\n  var _parseConfig = function _parseConfig(cfg) {\n    /* Shield configuration object from tampering */\n    if ((typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n      cfg = {};\n    }\n    /* Set configuration parameters */\n    ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n    ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n    FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n    FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n    USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n    SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n    RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n    RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n    FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n    SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n    KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n    IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n    IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n\n    if (SAFE_FOR_TEMPLATES) {\n      ALLOW_DATA_ATTR = false;\n    }\n\n    if (RETURN_DOM_FRAGMENT) {\n      RETURN_DOM = true;\n    }\n\n    /* Parse profile info */\n    if (USE_PROFILES) {\n      ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(text)));\n      ALLOWED_ATTR = [];\n      if (USE_PROFILES.html === true) {\n        addToSet(ALLOWED_TAGS, html);\n        addToSet(ALLOWED_ATTR, html$1);\n      }\n      if (USE_PROFILES.svg === true) {\n        addToSet(ALLOWED_TAGS, svg);\n        addToSet(ALLOWED_ATTR, svg$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.svgFilters === true) {\n        addToSet(ALLOWED_TAGS, svgFilters);\n        addToSet(ALLOWED_ATTR, svg$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.mathMl === true) {\n        addToSet(ALLOWED_TAGS, mathMl);\n        addToSet(ALLOWED_ATTR, mathMl$1);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n    }\n\n    /* Merge configuration parameters */\n    if (cfg.ADD_TAGS) {\n      if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n        ALLOWED_TAGS = clone(ALLOWED_TAGS);\n      }\n      addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n    }\n    if (cfg.ADD_ATTR) {\n      if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n        ALLOWED_ATTR = clone(ALLOWED_ATTR);\n      }\n      addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n    }\n    if (cfg.ADD_URI_SAFE_ATTR) {\n      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n    }\n\n    /* Add #text in case KEEP_CONTENT is set to true */\n    if (KEEP_CONTENT) {\n      ALLOWED_TAGS['#text'] = true;\n    }\n\n    /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n    if (WHOLE_DOCUMENT) {\n      addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n    }\n\n    /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286 */\n    if (ALLOWED_TAGS.table) {\n      addToSet(ALLOWED_TAGS, ['tbody']);\n    }\n\n    // Prevent further manipulation of configuration.\n    // Not available in IE8, Safari 5, etc.\n    if (Object && 'freeze' in Object) {\n      Object.freeze(cfg);\n    }\n\n    CONFIG = cfg;\n  };\n\n  /**\n   * _forceRemove\n   *\n   * @param  {Node} node a DOM node\n   */\n  var _forceRemove = function _forceRemove(node) {\n    DOMPurify.removed.push({ element: node });\n    try {\n      node.parentNode.removeChild(node);\n    } catch (err) {\n      node.outerHTML = '';\n    }\n  };\n\n  /**\n   * _removeAttribute\n   *\n   * @param  {String} name an Attribute name\n   * @param  {Node} node a DOM node\n   */\n  var _removeAttribute = function _removeAttribute(name, node) {\n    try {\n      DOMPurify.removed.push({\n        attribute: node.getAttributeNode(name),\n        from: node\n      });\n    } catch (err) {\n      DOMPurify.removed.push({\n        attribute: null,\n        from: node\n      });\n    }\n    node.removeAttribute(name);\n  };\n\n  /**\n   * _initDocument\n   *\n   * @param  {String} dirty a string of dirty markup\n   * @return {Document} a DOM, filled with the dirty markup\n   */\n  var _initDocument = function _initDocument(dirty) {\n    /* Create a HTML document */\n    var doc = void 0;\n\n    if (FORCE_BODY) {\n      dirty = '<remove></remove>' + dirty;\n    }\n\n    /* Use DOMParser to workaround Firefox bug (see comment below) */\n    if (useDOMParser) {\n      try {\n        doc = new DOMParser().parseFromString(dirty, 'text/html');\n      } catch (err) {}\n    }\n\n    /* Remove title to fix an mXSS bug in older MS Edge */\n    if (removeTitle) {\n      addToSet(FORBID_TAGS, ['title']);\n    }\n\n    /* Otherwise use createHTMLDocument, because DOMParser is unsafe in\n    Safari (see comment below) */\n    if (!doc || !doc.documentElement) {\n      doc = implementation.createHTMLDocument('');\n      var _doc = doc,\n          body = _doc.body;\n\n      body.parentNode.removeChild(body.parentNode.firstElementChild);\n      body.outerHTML = dirty;\n    }\n\n    /* Work on whole document or just its body */\n    return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n  };\n\n  // Firefox uses a different parser for innerHTML rather than\n  // DOMParser (see https://bugzilla.mozilla.org/show_bug.cgi?id=1205631)\n  // which means that you *must* use DOMParser, otherwise the output may\n  // not be safe if used in a document.write context later.\n  //\n  // So we feature detect the Firefox bug and use the DOMParser if necessary.\n  //\n  // MS Edge, in older versions, is affected by an mXSS behavior. The second\n  // check tests for the behavior and fixes it if necessary.\n  if (DOMPurify.isSupported) {\n    (function () {\n      try {\n        var doc = _initDocument('<svg><p><style><img src=\"</style><img src=x onerror=alert(1)//\">');\n        if (doc.querySelector('svg img')) {\n          useDOMParser = true;\n        }\n      } catch (err) {}\n    })();\n    (function () {\n      try {\n        var doc = _initDocument('<x/><title>&lt;/title&gt;&lt;img&gt;');\n        if (doc.querySelector('title').textContent.match(/<\\/title/)) {\n          removeTitle = true;\n        }\n      } catch (err) {}\n    })();\n  }\n\n  /**\n   * _createIterator\n   *\n   * @param  {Document} root document/fragment to create iterator for\n   * @return {Iterator} iterator instance\n   */\n  var _createIterator = function _createIterator(root) {\n    return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n      return NodeFilter.FILTER_ACCEPT;\n    }, false);\n  };\n\n  /**\n   * _isClobbered\n   *\n   * @param  {Node} elm element to check for clobbering attacks\n   * @return {Boolean} true if clobbered, false if safe\n   */\n  var _isClobbered = function _isClobbered(elm) {\n    if (elm instanceof Text || elm instanceof Comment) {\n      return false;\n    }\n    if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function') {\n      return true;\n    }\n    return false;\n  };\n\n  /**\n   * _isNode\n   *\n   * @param  {Node} obj object to check whether it's a DOM node\n   * @return {Boolean} true is object is a DOM node\n   */\n  var _isNode = function _isNode(obj) {\n    return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? obj instanceof Node : obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.nodeType === 'number' && typeof obj.nodeName === 'string';\n  };\n\n  /**\n   * _executeHook\n   * Execute user configurable hooks\n   *\n   * @param  {String} entryPoint  Name of the hook's entry point\n   * @param  {Node} currentNode node to work on with the hook\n   * @param  {Object} data additional hook parameters\n   */\n  var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n    if (!hooks[entryPoint]) {\n      return;\n    }\n\n    hooks[entryPoint].forEach(function (hook) {\n      hook.call(DOMPurify, currentNode, data, CONFIG);\n    });\n  };\n\n  /**\n   * _sanitizeElements\n   *\n   * @protect nodeName\n   * @protect textContent\n   * @protect removeChild\n   *\n   * @param   {Node} currentNode to check for permission to exist\n   * @return  {Boolean} true if node was killed, false if left alive\n   */\n  var _sanitizeElements = function _sanitizeElements(currentNode) {\n    var content = void 0;\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeElements', currentNode, null);\n\n    /* Check if element is clobbered or can clobber */\n    if (_isClobbered(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Now let's check the element's type and name */\n    var tagName = currentNode.nodeName.toLowerCase();\n\n    /* Execute a hook if present */\n    _executeHook('uponSanitizeElement', currentNode, {\n      tagName: tagName,\n      allowedTags: ALLOWED_TAGS\n    });\n\n    /* Remove element if anything forbids its presence */\n    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n      /* Keep content except for black-listed elements */\n      if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n        try {\n          currentNode.insertAdjacentHTML('AfterEnd', currentNode.innerHTML);\n        } catch (err) {}\n      }\n      _forceRemove(currentNode);\n      return true;\n    }\n\n    /* Convert markup to cover jQuery behavior */\n    if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && /</g.test(currentNode.textContent)) {\n      DOMPurify.removed.push({ element: currentNode.cloneNode() });\n      if (currentNode.innerHTML) {\n        currentNode.innerHTML = currentNode.innerHTML.replace(/</g, '&lt;');\n      } else {\n        currentNode.innerHTML = currentNode.textContent.replace(/</g, '&lt;');\n      }\n    }\n\n    /* Sanitize element content to be template-safe */\n    if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n      /* Get the element's text content */\n      content = currentNode.textContent;\n      content = content.replace(MUSTACHE_EXPR$$1, ' ');\n      content = content.replace(ERB_EXPR$$1, ' ');\n      if (currentNode.textContent !== content) {\n        DOMPurify.removed.push({ element: currentNode.cloneNode() });\n        currentNode.textContent = content;\n      }\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeElements', currentNode, null);\n\n    return false;\n  };\n\n  /**\n   * _isValidAttribute\n   *\n   * @param  {string} lcTag Lowercase tag name of containing element.\n   * @param  {string} lcName Lowercase attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid, otherwise false.\n   */\n  var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n    /* Make sure attribute cannot clobber */\n    if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n      return false;\n    }\n\n    /* Sanitize attribute content to be template-safe */\n    if (SAFE_FOR_TEMPLATES) {\n      value = value.replace(MUSTACHE_EXPR$$1, ' ');\n      value = value.replace(ERB_EXPR$$1, ' ');\n    }\n\n    /* Allow valid data-* attributes: At least one character after \"-\"\n        (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n        XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n        We don't need to check the value; it's always URI safe. */\n    if (ALLOW_DATA_ATTR && DATA_ATTR$$1.test(lcName)) {\n      // This attribute is safe\n    } else if (ALLOW_ARIA_ATTR && ARIA_ATTR$$1.test(lcName)) {\n      // This attribute is safe\n      /* Otherwise, check the name is permitted */\n    } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n      return false;\n\n      /* Check value is safe. First, is attr inert? If so, is safe */\n    } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n      // This attribute is safe\n      /* Check no script, data or unknown possibly unsafe URI\n        unless we know URI values are safe for that attribute */\n    } else if (IS_ALLOWED_URI$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n      // This attribute is safe\n      /* Keep image data URIs alive if src/xlink:href is allowed */\n      /* Further prevent gadget XSS for dynamically built script tags */\n    } else if ((lcName === 'src' || lcName === 'xlink:href') && lcTag !== 'script' && value.indexOf('data:') === 0 && DATA_URI_TAGS[lcTag]) {\n      // This attribute is safe\n      /* Allow unknown protocols: This provides support for links that\n        are handled by protocol handlers which may be unknown ahead of\n        time, e.g. fb:, spotify: */\n    } else if (ALLOW_UNKNOWN_PROTOCOLS && !IS_SCRIPT_OR_DATA$$1.test(value.replace(ATTR_WHITESPACE$$1, ''))) {\n      // This attribute is safe\n      /* Check for binary attributes */\n      // eslint-disable-next-line no-negated-condition\n    } else if (!value) {\n      // Binary attributes are safe at this point\n      /* Anything else, presume unsafe, do not add it back */\n    } else {\n      return false;\n    }\n    return true;\n  };\n\n  /**\n   * _sanitizeAttributes\n   *\n   * @protect attributes\n   * @protect nodeName\n   * @protect removeAttribute\n   * @protect setAttribute\n   *\n   * @param  {Node} node to sanitize\n   */\n  // eslint-disable-next-line complexity\n  var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n    var attr = void 0;\n    var value = void 0;\n    var lcName = void 0;\n    var idAttr = void 0;\n    var l = void 0;\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n    var attributes = currentNode.attributes;\n\n    /* Check if we have attributes; if not we might have a text node */\n\n    if (!attributes) {\n      return;\n    }\n\n    var hookEvent = {\n      attrName: '',\n      attrValue: '',\n      keepAttr: true,\n      allowedAttributes: ALLOWED_ATTR\n    };\n    l = attributes.length;\n\n    /* Go backwards over all attributes; safely remove bad ones */\n    while (l--) {\n      attr = attributes[l];\n      var _attr = attr,\n          name = _attr.name,\n          namespaceURI = _attr.namespaceURI;\n\n      value = attr.value.trim();\n      lcName = name.toLowerCase();\n\n      /* Execute a hook if present */\n      hookEvent.attrName = lcName;\n      hookEvent.attrValue = value;\n      hookEvent.keepAttr = true;\n      _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n      value = hookEvent.attrValue;\n\n      /* Remove attribute */\n      // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n      // remove a \"name\" attribute from an <img> tag that has an \"id\"\n      // attribute at the time.\n      if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n        idAttr = attributes.id;\n        attributes = Array.prototype.slice.apply(attributes);\n        _removeAttribute('id', currentNode);\n        _removeAttribute(name, currentNode);\n        if (attributes.indexOf(idAttr) > l) {\n          currentNode.setAttribute('id', idAttr.value);\n        }\n      } else if (\n      // This works around a bug in Safari, where input[type=file]\n      // cannot be dynamically set after type has been removed\n      currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n        continue;\n      } else {\n        // This avoids a crash in Safari v9.0 with double-ids.\n        // The trick is to first set the id to be empty and then to\n        // remove the attribute\n        if (name === 'id') {\n          currentNode.setAttribute(name, '');\n        }\n        _removeAttribute(name, currentNode);\n      }\n\n      /* Did the hooks approve of the attribute? */\n      if (!hookEvent.keepAttr) {\n        continue;\n      }\n\n      /* Is `value` valid for this attribute? */\n      var lcTag = currentNode.nodeName.toLowerCase();\n      if (!_isValidAttribute(lcTag, lcName, value)) {\n        continue;\n      }\n\n      /* Handle invalid data-* attribute set by try-catching it */\n      try {\n        if (namespaceURI) {\n          currentNode.setAttributeNS(namespaceURI, name, value);\n        } else {\n          /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n          currentNode.setAttribute(name, value);\n        }\n        DOMPurify.removed.pop();\n      } catch (err) {}\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeAttributes', currentNode, null);\n  };\n\n  /**\n   * _sanitizeShadowDOM\n   *\n   * @param  {DocumentFragment} fragment to iterate over recursively\n   */\n  var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n    var shadowNode = void 0;\n    var shadowIterator = _createIterator(fragment);\n\n    /* Execute a hook if present */\n    _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n    while (shadowNode = shadowIterator.nextNode()) {\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(shadowNode)) {\n        continue;\n      }\n\n      /* Deep shadow DOM detected */\n      if (shadowNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(shadowNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(shadowNode);\n    }\n\n    /* Execute a hook if present */\n    _executeHook('afterSanitizeShadowDOM', fragment, null);\n  };\n\n  /**\n   * Sanitize\n   * Public method providing core sanitation functionality\n   *\n   * @param {String|Node} dirty string or DOM node\n   * @param {Object} configuration object\n   */\n  // eslint-disable-next-line complexity\n  DOMPurify.sanitize = function (dirty, cfg) {\n    var body = void 0;\n    var importedNode = void 0;\n    var currentNode = void 0;\n    var oldNode = void 0;\n    var returnNode = void 0;\n    /* Make sure we have a string to sanitize.\n      DO NOT return early, as this will return the wrong type if\n      the user has requested a DOM object rather than a string */\n    if (!dirty) {\n      dirty = '<!-->';\n    }\n\n    /* Stringify, in case dirty is an object */\n    if (typeof dirty !== 'string' && !_isNode(dirty)) {\n      // eslint-disable-next-line no-negated-condition\n      if (typeof dirty.toString !== 'function') {\n        throw new TypeError('toString is not a function');\n      } else {\n        dirty = dirty.toString();\n        if (typeof dirty !== 'string') {\n          throw new TypeError('dirty is not a string, aborting');\n        }\n      }\n    }\n\n    /* Check we can run. Otherwise fall back or ignore */\n    if (!DOMPurify.isSupported) {\n      if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n        if (typeof dirty === 'string') {\n          return window.toStaticHTML(dirty);\n        }\n        if (_isNode(dirty)) {\n          return window.toStaticHTML(dirty.outerHTML);\n        }\n      }\n      return dirty;\n    }\n\n    /* Assign config vars */\n    if (!SET_CONFIG) {\n      _parseConfig(cfg);\n    }\n\n    /* Clean up removed elements */\n    DOMPurify.removed = [];\n\n    if (IN_PLACE) {\n      /* No special handling necessary for in-place sanitization */\n    } else if (dirty instanceof Node) {\n      /* If dirty is a DOM element, append to an empty document to avoid\n         elements being stripped by the parser */\n      body = _initDocument('<!-->');\n      importedNode = body.ownerDocument.importNode(dirty, true);\n      if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n        /* Node is already a body, use as is */\n        body = importedNode;\n      } else {\n        body.appendChild(importedNode);\n      }\n    } else {\n      /* Exit directly if we have nothing to do */\n      if (!RETURN_DOM && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {\n        return dirty;\n      }\n\n      /* Initialize the document to work on */\n      body = _initDocument(dirty);\n\n      /* Check we have a DOM node from the data */\n      if (!body) {\n        return RETURN_DOM ? null : '';\n      }\n    }\n\n    /* Remove first element node (ours) if FORCE_BODY is set */\n    if (body && FORCE_BODY) {\n      _forceRemove(body.firstChild);\n    }\n\n    /* Get node iterator */\n    var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n    /* Now start iterating over the created document */\n    while (currentNode = nodeIterator.nextNode()) {\n      /* Fix IE's strange behavior with manipulated textNodes #89 */\n      if (currentNode.nodeType === 3 && currentNode === oldNode) {\n        continue;\n      }\n\n      /* Sanitize tags and elements */\n      if (_sanitizeElements(currentNode)) {\n        continue;\n      }\n\n      /* Shadow DOM detected, sanitize it */\n      if (currentNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(currentNode.content);\n      }\n\n      /* Check attributes, sanitize if necessary */\n      _sanitizeAttributes(currentNode);\n\n      oldNode = currentNode;\n    }\n\n    /* If we sanitized `dirty` in-place, return it. */\n    if (IN_PLACE) {\n      return dirty;\n    }\n\n    /* Return sanitized string or DOM */\n    if (RETURN_DOM) {\n      if (RETURN_DOM_FRAGMENT) {\n        returnNode = createDocumentFragment.call(body.ownerDocument);\n\n        while (body.firstChild) {\n          returnNode.appendChild(body.firstChild);\n        }\n      } else {\n        returnNode = body;\n      }\n\n      if (RETURN_DOM_IMPORT) {\n        /* AdoptNode() is not used because internal state is not reset\n               (e.g. the past names map of a HTMLFormElement), this is safe\n               in theory but we would rather not risk another attack vector.\n               The state that is cloned by importNode() is explicitly defined\n               by the specs. */\n        returnNode = importNode.call(originalDocument, returnNode, true);\n      }\n\n      return returnNode;\n    }\n\n    return WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n  };\n\n  /**\n   * Public method to set the configuration once\n   * setConfig\n   *\n   * @param {Object} cfg configuration object\n   */\n  DOMPurify.setConfig = function (cfg) {\n    _parseConfig(cfg);\n    SET_CONFIG = true;\n  };\n\n  /**\n   * Public method to remove the configuration\n   * clearConfig\n   *\n   */\n  DOMPurify.clearConfig = function () {\n    CONFIG = null;\n    SET_CONFIG = false;\n  };\n\n  /**\n   * Public method to check if an attribute value is valid.\n   * Uses last set config, if any. Otherwise, uses config defaults.\n   * isValidAttribute\n   *\n   * @param  {string} tag Tag name of containing element.\n   * @param  {string} attr Attribute name.\n   * @param  {string} value Attribute value.\n   * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n   */\n  DOMPurify.isValidAttribute = function (tag, attr, value) {\n    /* Initialize shared config vars if necessary. */\n    if (!CONFIG) {\n      _parseConfig({});\n    }\n    var lcTag = tag.toLowerCase();\n    var lcName = attr.toLowerCase();\n    return _isValidAttribute(lcTag, lcName, value);\n  };\n\n  /**\n   * AddHook\n   * Public method to add DOMPurify hooks\n   *\n   * @param {String} entryPoint entry point for the hook to add\n   * @param {Function} hookFunction function to execute\n   */\n  DOMPurify.addHook = function (entryPoint, hookFunction) {\n    if (typeof hookFunction !== 'function') {\n      return;\n    }\n    hooks[entryPoint] = hooks[entryPoint] || [];\n    hooks[entryPoint].push(hookFunction);\n  };\n\n  /**\n   * RemoveHook\n   * Public method to remove a DOMPurify hook at a given entryPoint\n   * (pops it from the stack of hooks if more are present)\n   *\n   * @param {String} entryPoint entry point for the hook to remove\n   */\n  DOMPurify.removeHook = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint].pop();\n    }\n  };\n\n  /**\n   * RemoveHooks\n   * Public method to remove all DOMPurify hooks at a given entryPoint\n   *\n   * @param  {String} entryPoint entry point for the hooks to remove\n   */\n  DOMPurify.removeHooks = function (entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint] = [];\n    }\n  };\n\n  /**\n   * RemoveAllHooks\n   * Public method to remove all DOMPurify hooks\n   *\n   */\n  DOMPurify.removeAllHooks = function () {\n    hooks = {};\n  };\n\n  return DOMPurify;\n}\n\nvar purify = createDOMPurify();\n\nreturn purify;\n\n})));\n//# sourceMappingURL=purify.js.map\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/scripts/hotkeys.js",
    "content": "(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define('simple-hotkeys', [\"jquery\",\"simple-module\"], function ($, SimpleModule) {\n      return (root['hotkeys'] = factory($, SimpleModule));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"),require(\"simple-module\"));\n  } else {\n    root.simple = root.simple || {};\n    root.simple['hotkeys'] = factory(jQuery,SimpleModule);\n  }\n}(this, function ($, SimpleModule) {\n\nvar Hotkeys, hotkeys,\n  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n  hasProp = {}.hasOwnProperty;\n\nHotkeys = (function(superClass) {\n  extend(Hotkeys, superClass);\n\n  function Hotkeys() {\n    return Hotkeys.__super__.constructor.apply(this, arguments);\n  }\n\n  Hotkeys.count = 0;\n\n  Hotkeys.keyNameMap = {\n    8: \"Backspace\",\n    9: \"Tab\",\n    13: \"Enter\",\n    16: \"Shift\",\n    17: \"Control\",\n    18: \"Alt\",\n    19: \"Pause\",\n    20: \"CapsLock\",\n    27: \"Esc\",\n    32: \"Spacebar\",\n    33: \"PageUp\",\n    34: \"PageDown\",\n    35: \"End\",\n    36: \"Home\",\n    37: \"Left\",\n    38: \"Up\",\n    39: \"Right\",\n    40: \"Down\",\n    45: \"Insert\",\n    46: \"Del\",\n    91: \"Meta\",\n    93: \"Meta\",\n    48: \"0\",\n    49: \"1\",\n    50: \"2\",\n    51: \"3\",\n    52: \"4\",\n    53: \"5\",\n    54: \"6\",\n    55: \"7\",\n    56: \"8\",\n    57: \"9\",\n    65: \"A\",\n    66: \"B\",\n    67: \"C\",\n    68: \"D\",\n    69: \"E\",\n    70: \"F\",\n    71: \"G\",\n    72: \"H\",\n    73: \"I\",\n    74: \"J\",\n    75: \"K\",\n    76: \"L\",\n    77: \"M\",\n    78: \"N\",\n    79: \"O\",\n    80: \"P\",\n    81: \"Q\",\n    82: \"R\",\n    83: \"S\",\n    84: \"T\",\n    85: \"U\",\n    86: \"V\",\n    87: \"W\",\n    88: \"X\",\n    89: \"Y\",\n    90: \"Z\",\n    96: \"0\",\n    97: \"1\",\n    98: \"2\",\n    99: \"3\",\n    100: \"4\",\n    101: \"5\",\n    102: \"6\",\n    103: \"7\",\n    104: \"8\",\n    105: \"9\",\n    106: \"Multiply\",\n    107: \"Add\",\n    109: \"Subtract\",\n    110: \"Decimal\",\n    111: \"Divide\",\n    112: \"F1\",\n    113: \"F2\",\n    114: \"F3\",\n    115: \"F4\",\n    116: \"F5\",\n    117: \"F6\",\n    118: \"F7\",\n    119: \"F8\",\n    120: \"F9\",\n    121: \"F10\",\n    122: \"F11\",\n    123: \"F12\",\n    124: \"F13\",\n    125: \"F14\",\n    126: \"F15\",\n    127: \"F16\",\n    128: \"F17\",\n    129: \"F18\",\n    130: \"F19\",\n    131: \"F20\",\n    132: \"F21\",\n    133: \"F22\",\n    134: \"F23\",\n    135: \"F24\",\n    59: \";\",\n    61: \"=\",\n    186: \";\",\n    187: \"=\",\n    188: \",\",\n    190: \".\",\n    191: \"/\",\n    192: \"`\",\n    219: \"[\",\n    220: \"\\\\\",\n    221: \"]\",\n    222: \"'\"\n  };\n\n  Hotkeys.aliases = {\n    \"escape\": \"esc\",\n    \"delete\": \"del\",\n    \"return\": \"enter\",\n    \"ctrl\": \"control\",\n    \"space\": \"spacebar\",\n    \"ins\": \"insert\",\n    \"cmd\": \"meta\",\n    \"command\": \"meta\",\n    \"wins\": \"meta\",\n    \"windows\": \"meta\"\n  };\n\n  Hotkeys.normalize = function(shortcut) {\n    var i, j, key, keyname, keys, len;\n    keys = shortcut.toLowerCase().replace(/\\s+/gi, \"\").split(\"+\");\n    for (i = j = 0, len = keys.length; j < len; i = ++j) {\n      key = keys[i];\n      keys[i] = this.aliases[key] || key;\n    }\n    keyname = keys.pop();\n    keys.sort().push(keyname);\n    return keys.join(\"_\");\n  };\n\n  Hotkeys.prototype.opts = {\n    el: document\n  };\n\n  Hotkeys.prototype._init = function() {\n    this.id = ++this.constructor.count;\n    this._map = {};\n    this._delegate = typeof this.opts.el === \"string\" ? document : this.opts.el;\n    return $(this._delegate).on(\"keydown.simple-hotkeys-\" + this.id, this.opts.el, (function(_this) {\n      return function(e) {\n        var ref;\n        return (ref = _this._getHander(e)) != null ? ref.call(_this, e) : void 0;\n      };\n    })(this));\n  };\n\n  Hotkeys.prototype._getHander = function(e) {\n    var keyname, shortcut;\n    if (!(keyname = this.constructor.keyNameMap[e.which])) {\n      return;\n    }\n    shortcut = \"\";\n    if (e.altKey) {\n      shortcut += \"alt_\";\n    }\n    if (e.ctrlKey) {\n      shortcut += \"control_\";\n    }\n    if (e.metaKey) {\n      shortcut += \"meta_\";\n    }\n    if (e.shiftKey) {\n      shortcut += \"shift_\";\n    }\n    shortcut += keyname.toLowerCase();\n    return this._map[shortcut];\n  };\n\n  Hotkeys.prototype.respondTo = function(subject) {\n    if (typeof subject === 'string') {\n      return this._map[this.constructor.normalize(subject)] != null;\n    } else {\n      return this._getHander(subject) != null;\n    }\n  };\n\n  Hotkeys.prototype.add = function(shortcut, handler) {\n    this._map[this.constructor.normalize(shortcut)] = handler;\n    return this;\n  };\n\n  Hotkeys.prototype.remove = function(shortcut) {\n    delete this._map[this.constructor.normalize(shortcut)];\n    return this;\n  };\n\n  Hotkeys.prototype.destroy = function() {\n    $(this._delegate).off(\".simple-hotkeys-\" + this.id);\n    this._map = {};\n    return this;\n  };\n\n  return Hotkeys;\n\n})(SimpleModule);\n\nhotkeys = function(opts) {\n  return new Hotkeys(opts);\n};\n\nreturn hotkeys;\n\n}));\n\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/scripts/module.js",
    "content": "(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define('simple-module', [\"jquery\"], function (a0) {\n      return (root['Module'] = factory(a0));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"));\n  } else {\n    root['SimpleModule'] = factory(jQuery);\n  }\n}(this, function ($) {\n\nvar Module,\n  slice = [].slice;\n\nModule = (function() {\n  Module.extend = function(obj) {\n    var key, ref, val;\n    if (!((obj != null) && typeof obj === 'object')) {\n      return;\n    }\n    for (key in obj) {\n      val = obj[key];\n      if (key !== 'included' && key !== 'extended') {\n        this[key] = val;\n      }\n    }\n    return (ref = obj.extended) != null ? ref.call(this) : void 0;\n  };\n\n  Module.include = function(obj) {\n    var key, ref, val;\n    if (!((obj != null) && typeof obj === 'object')) {\n      return;\n    }\n    for (key in obj) {\n      val = obj[key];\n      if (key !== 'included' && key !== 'extended') {\n        this.prototype[key] = val;\n      }\n    }\n    return (ref = obj.included) != null ? ref.call(this) : void 0;\n  };\n\n  Module.connect = function(cls) {\n    if (typeof cls !== 'function') {\n      return;\n    }\n    if (!cls.pluginName) {\n      throw new Error('Module.connect: cannot connect plugin without pluginName');\n      return;\n    }\n    cls.prototype._connected = true;\n    if (!this._connectedClasses) {\n      this._connectedClasses = [];\n    }\n    this._connectedClasses.push(cls);\n    if (cls.pluginName) {\n      return this[cls.pluginName] = cls;\n    }\n  };\n\n  Module.prototype.opts = {};\n\n  function Module(opts) {\n    var base, cls, i, instance, instances, len, name;\n    this.opts = $.extend({}, this.opts, opts);\n    (base = this.constructor)._connectedClasses || (base._connectedClasses = []);\n    instances = (function() {\n      var i, len, ref, results;\n      ref = this.constructor._connectedClasses;\n      results = [];\n      for (i = 0, len = ref.length; i < len; i++) {\n        cls = ref[i];\n        name = cls.pluginName.charAt(0).toLowerCase() + cls.pluginName.slice(1);\n        if (cls.prototype._connected) {\n          cls.prototype._module = this;\n        }\n        results.push(this[name] = new cls());\n      }\n      return results;\n    }).call(this);\n    if (this._connected) {\n      this.opts = $.extend({}, this.opts, this._module.opts);\n    } else {\n      this._init();\n      for (i = 0, len = instances.length; i < len; i++) {\n        instance = instances[i];\n        if (typeof instance._init === \"function\") {\n          instance._init();\n        }\n      }\n    }\n    this.trigger('initialized');\n  }\n\n  Module.prototype._init = function() {};\n\n  Module.prototype.on = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    (ref = $(this)).on.apply(ref, args);\n    return this;\n  };\n\n  Module.prototype.one = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    (ref = $(this)).one.apply(ref, args);\n    return this;\n  };\n\n  Module.prototype.off = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    (ref = $(this)).off.apply(ref, args);\n    return this;\n  };\n\n  Module.prototype.trigger = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    (ref = $(this)).trigger.apply(ref, args);\n    return this;\n  };\n\n  Module.prototype.triggerHandler = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    return (ref = $(this)).triggerHandler.apply(ref, args);\n  };\n\n  Module.prototype._t = function() {\n    var args, ref;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    return (ref = this.constructor)._t.apply(ref, args);\n  };\n\n  Module._t = function() {\n    var args, key, ref, result;\n    key = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n    result = ((ref = this.i18n[this.locale]) != null ? ref[key] : void 0) || '';\n    if (!(args.length > 0)) {\n      return result;\n    }\n    result = result.replace(/([^%]|^)%(?:(\\d+)\\$)?s/g, function(p0, p, position) {\n      if (position) {\n        return p + args[parseInt(position) - 1];\n      } else {\n        return p + args.shift();\n      }\n    });\n    return result.replace(/%%s/g, '%s');\n  };\n\n  Module.i18n = {\n    'zh-CN': {}\n  };\n\n  Module.locale = 'zh-CN';\n\n  return Module;\n\n})();\n\nreturn Module;\n\n}));\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/scripts/simditor.js",
    "content": "/*!\n* Simditor v2.3.25\n* http://simditor.tower.im/\n* 2019-05-01\n*/\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define('simditor', [\"jquery\",\"simple-module\",\"simple-hotkeys\",\"simple-uploader\",\"dompurify\"], function ($, SimpleModule, simpleHotkeys, simpleUploader, DOMPurify) {\n      return (root['Simditor'] = factory($, SimpleModule, simpleHotkeys, simpleUploader, DOMPurify));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"),require(\"simple-module\"),require(\"simple-hotkeys\"),require(\"simple-uploader\"),require(\"dompurify\"));\n  } else {\n    root['Simditor'] = factory(jQuery,SimpleModule,simple.hotkeys,simple.uploader,window.DOMPurify);\n  }\n}(this, function ($, SimpleModule, simpleHotkeys, simpleUploader, DOMPurify) {\n\nvar AlignmentButton, BlockquoteButton, BoldButton, Button, Clipboard, CodeButton, CodePopover, ColorButton, FontScaleButton, Formatter, HrButton, ImageButton, ImagePopover, IndentButton, Indentation, InputManager, ItalicButton, Keystroke, LinkButton, LinkPopover, ListButton, OrderListButton, OutdentButton, Popover, Selection, Simditor, StrikethroughButton, TableButton, TitleButton, Toolbar, UnderlineButton, UndoManager, UnorderListButton, Util,\n  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n  hasProp = {}.hasOwnProperty,\n  indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n  slice = [].slice;\n\nSelection = (function(superClass) {\n  extend(Selection, superClass);\n\n  function Selection() {\n    return Selection.__super__.constructor.apply(this, arguments);\n  }\n\n  Selection.pluginName = 'Selection';\n\n  Selection.prototype._range = null;\n\n  Selection.prototype._startNodes = null;\n\n  Selection.prototype._endNodes = null;\n\n  Selection.prototype._containerNode = null;\n\n  Selection.prototype._nodes = null;\n\n  Selection.prototype._blockNodes = null;\n\n  Selection.prototype._rootNodes = null;\n\n  Selection.prototype._init = function() {\n    this.editor = this._module;\n    this._selection = document.getSelection();\n    this.editor.on('selectionchanged', (function(_this) {\n      return function(e) {\n        _this.reset();\n        return _this._range = _this._selection.getRangeAt(0);\n      };\n    })(this));\n    this.editor.on('blur', (function(_this) {\n      return function(e) {\n        return _this.reset();\n      };\n    })(this));\n    return this.editor.on('focus', (function(_this) {\n      return function(e) {\n        _this.reset();\n        return _this._range = _this._selection.getRangeAt(0);\n      };\n    })(this));\n  };\n\n  Selection.prototype.reset = function() {\n    this._range = null;\n    this._startNodes = null;\n    this._endNodes = null;\n    this._containerNode = null;\n    this._nodes = null;\n    this._blockNodes = null;\n    return this._rootNodes = null;\n  };\n\n  Selection.prototype.clear = function() {\n    var e;\n    try {\n      this._selection.removeAllRanges();\n    } catch (_error) {\n      e = _error;\n    }\n    return this.reset();\n  };\n\n  Selection.prototype.range = function(range) {\n    var ffOrIE;\n    if (range) {\n      this.clear();\n      this._selection.addRange(range);\n      this._range = range;\n      ffOrIE = this.editor.util.browser.firefox || this.editor.util.browser.msie;\n      if (!this.editor.inputManager.focused && ffOrIE) {\n        this.editor.body.focus();\n      }\n    } else if (!this._range && this.editor.inputManager.focused && this._selection.rangeCount) {\n      this._range = this._selection.getRangeAt(0);\n    }\n    return this._range;\n  };\n\n  Selection.prototype.startNodes = function() {\n    if (this._range) {\n      this._startNodes || (this._startNodes = (function(_this) {\n        return function() {\n          var startNodes;\n          startNodes = $(_this._range.startContainer).parentsUntil(_this.editor.body).get();\n          startNodes.unshift(_this._range.startContainer);\n          return $(startNodes);\n        };\n      })(this)());\n    }\n    return this._startNodes;\n  };\n\n  Selection.prototype.endNodes = function() {\n    var endNodes;\n    if (this._range) {\n      this._endNodes || (this._endNodes = this._range.collapsed ? this.startNodes() : (endNodes = $(this._range.endContainer).parentsUntil(this.editor.body).get(), endNodes.unshift(this._range.endContainer), $(endNodes)));\n    }\n    return this._endNodes;\n  };\n\n  Selection.prototype.containerNode = function() {\n    if (this._range) {\n      this._containerNode || (this._containerNode = $(this._range.commonAncestorContainer));\n    }\n    return this._containerNode;\n  };\n\n  Selection.prototype.nodes = function() {\n    if (this._range) {\n      this._nodes || (this._nodes = (function(_this) {\n        return function() {\n          var nodes;\n          nodes = [];\n          if (_this.startNodes().first().is(_this.endNodes().first())) {\n            nodes = _this.startNodes().get();\n          } else {\n            _this.startNodes().each(function(i, node) {\n              var $endNode, $node, $nodes, endIndex, index, sharedIndex, startIndex;\n              $node = $(node);\n              if (_this.endNodes().index($node) > -1) {\n                return nodes.push(node);\n              } else if ($node.parent().is(_this.editor.body) || (sharedIndex = _this.endNodes().index($node.parent())) > -1) {\n                if (sharedIndex && sharedIndex > -1) {\n                  $endNode = _this.endNodes().eq(sharedIndex - 1);\n                } else {\n                  $endNode = _this.endNodes().last();\n                }\n                $nodes = $node.parent().contents();\n                startIndex = $nodes.index($node);\n                endIndex = $nodes.index($endNode);\n                return $.merge(nodes, $nodes.slice(startIndex, endIndex).get());\n              } else {\n                $nodes = $node.parent().contents();\n                index = $nodes.index($node);\n                return $.merge(nodes, $nodes.slice(index).get());\n              }\n            });\n            _this.endNodes().each(function(i, node) {\n              var $node, $nodes, index;\n              $node = $(node);\n              if ($node.parent().is(_this.editor.body) || _this.startNodes().index($node.parent()) > -1) {\n                nodes.push(node);\n                return false;\n              } else {\n                $nodes = $node.parent().contents();\n                index = $nodes.index($node);\n                return $.merge(nodes, $nodes.slice(0, index + 1));\n              }\n            });\n          }\n          return $($.unique(nodes));\n        };\n      })(this)());\n    }\n    return this._nodes;\n  };\n\n  Selection.prototype.blockNodes = function() {\n    if (!this._range) {\n      return;\n    }\n    this._blockNodes || (this._blockNodes = (function(_this) {\n      return function() {\n        return _this.nodes().filter(function(i, node) {\n          return _this.editor.util.isBlockNode(node);\n        });\n      };\n    })(this)());\n    return this._blockNodes;\n  };\n\n  Selection.prototype.rootNodes = function() {\n    if (!this._range) {\n      return;\n    }\n    this._rootNodes || (this._rootNodes = (function(_this) {\n      return function() {\n        return _this.nodes().filter(function(i, node) {\n          var $parent;\n          $parent = $(node).parent();\n          return $parent.is(_this.editor.body) || $parent.is('blockquote');\n        });\n      };\n    })(this)());\n    return this._rootNodes;\n  };\n\n  Selection.prototype.rangeAtEndOf = function(node, range) {\n    var afterLastNode, beforeLastNode, endNode, endNodeLength, lastNodeIsBr, result;\n    if (range == null) {\n      range = this.range();\n    }\n    if (!(range && range.collapsed)) {\n      return;\n    }\n    node = $(node)[0];\n    endNode = range.endContainer;\n    endNodeLength = this.editor.util.getNodeLength(endNode);\n    beforeLastNode = range.endOffset === endNodeLength - 1;\n    lastNodeIsBr = $(endNode).contents().last().is('br');\n    afterLastNode = range.endOffset === endNodeLength;\n    if (!((beforeLastNode && lastNodeIsBr) || afterLastNode)) {\n      return false;\n    }\n    if (node === endNode) {\n      return true;\n    } else if (!$.contains(node, endNode)) {\n      return false;\n    }\n    result = true;\n    $(endNode).parentsUntil(node).addBack().each(function(i, n) {\n      var $lastChild, beforeLastbr, isLastNode, nodes;\n      nodes = $(n).parent().contents().filter(function() {\n        return !(this !== n && this.nodeType === 3 && !this.nodeValue);\n      });\n      $lastChild = nodes.last();\n      isLastNode = $lastChild.get(0) === n;\n      beforeLastbr = $lastChild.is('br') && $lastChild.prev().get(0) === n;\n      if (!(isLastNode || beforeLastbr)) {\n        result = false;\n        return false;\n      }\n    });\n    return result;\n  };\n\n  Selection.prototype.rangeAtStartOf = function(node, range) {\n    var result, startNode;\n    if (range == null) {\n      range = this.range();\n    }\n    if (!(range && range.collapsed)) {\n      return;\n    }\n    node = $(node)[0];\n    startNode = range.startContainer;\n    if (range.startOffset !== 0) {\n      return false;\n    }\n    if (node === startNode) {\n      return true;\n    } else if (!$.contains(node, startNode)) {\n      return false;\n    }\n    result = true;\n    $(startNode).parentsUntil(node).addBack().each(function(i, n) {\n      var nodes;\n      nodes = $(n).parent().contents().filter(function() {\n        return !(this !== n && this.nodeType === 3 && !this.nodeValue);\n      });\n      if (nodes.first().get(0) !== n) {\n        return result = false;\n      }\n    });\n    return result;\n  };\n\n  Selection.prototype.insertNode = function(node, range) {\n    if (range == null) {\n      range = this.range();\n    }\n    if (!range) {\n      return;\n    }\n    node = $(node)[0];\n    range.insertNode(node);\n    return this.setRangeAfter(node, range);\n  };\n\n  Selection.prototype.setRangeAfter = function(node, range) {\n    if (range == null) {\n      range = this.range();\n    }\n    if (range == null) {\n      return;\n    }\n    node = $(node)[0];\n    range.setEndAfter(node);\n    range.collapse(false);\n    return this.range(range);\n  };\n\n  Selection.prototype.setRangeBefore = function(node, range) {\n    if (range == null) {\n      range = this.range();\n    }\n    if (range == null) {\n      return;\n    }\n    node = $(node)[0];\n    range.setEndBefore(node);\n    range.collapse(false);\n    return this.range(range);\n  };\n\n  Selection.prototype.setRangeAtStartOf = function(node, range) {\n    if (range == null) {\n      range = this.range();\n    }\n    node = $(node).get(0);\n    range.setEnd(node, 0);\n    range.collapse(false);\n    return this.range(range);\n  };\n\n  Selection.prototype.setRangeAtEndOf = function(node, range) {\n    var $lastNode, $node, contents, lastChild, lastChildLength, lastText, nodeLength;\n    if (range == null) {\n      range = this.range();\n    }\n    $node = $(node);\n    node = $node[0];\n    if (!node) {\n      return;\n    }\n    if ($node.is('pre')) {\n      contents = $node.contents();\n      if (contents.length > 0) {\n        lastChild = contents.last();\n        lastText = lastChild.text();\n        lastChildLength = this.editor.util.getNodeLength(lastChild[0]);\n        if (lastText.charAt(lastText.length - 1) === '\\n') {\n          range.setEnd(lastChild[0], lastChildLength - 1);\n        } else {\n          range.setEnd(lastChild[0], lastChildLength);\n        }\n      } else {\n        range.setEnd(node, 0);\n      }\n    } else {\n      nodeLength = this.editor.util.getNodeLength(node);\n      if (node.nodeType !== 3 && nodeLength > 0) {\n        $lastNode = $(node).contents().last();\n        if ($lastNode.is('br')) {\n          nodeLength -= 1;\n        } else if ($lastNode[0].nodeType !== 3 && this.editor.util.isEmptyNode($lastNode)) {\n          $lastNode.append(this.editor.util.phBr);\n          node = $lastNode[0];\n          nodeLength = 0;\n        }\n      }\n      range.setEnd(node, nodeLength);\n    }\n    range.collapse(false);\n    return this.range(range);\n  };\n\n  Selection.prototype.deleteRangeContents = function(range) {\n    var atEndOfBody, atStartOfBody, endRange, startRange;\n    if (range == null) {\n      range = this.range();\n    }\n    startRange = range.cloneRange();\n    endRange = range.cloneRange();\n    startRange.collapse(true);\n    endRange.collapse(false);\n    atStartOfBody = this.rangeAtStartOf(this.editor.body, startRange);\n    atEndOfBody = this.rangeAtEndOf(this.editor.body, endRange);\n    if (!range.collapsed && atStartOfBody && atEndOfBody) {\n      this.editor.body.empty();\n      range.setStart(this.editor.body[0], 0);\n      range.collapse(true);\n      this.range(range);\n    } else {\n      range.deleteContents();\n    }\n    return range;\n  };\n\n  Selection.prototype.breakBlockEl = function(el, range) {\n    var $el;\n    if (range == null) {\n      range = this.range();\n    }\n    $el = $(el);\n    if (!range.collapsed) {\n      return $el;\n    }\n    range.setStartBefore($el.get(0));\n    if (range.collapsed) {\n      return $el;\n    }\n    return $el.before(range.extractContents());\n  };\n\n  Selection.prototype.save = function(range) {\n    var endCaret, endRange, startCaret;\n    if (range == null) {\n      range = this.range();\n    }\n    if (this._selectionSaved) {\n      return;\n    }\n    endRange = range.cloneRange();\n    endRange.collapse(false);\n    startCaret = $('<span/>').addClass('simditor-caret-start');\n    endCaret = $('<span/>').addClass('simditor-caret-end');\n    endRange.insertNode(endCaret[0]);\n    range.insertNode(startCaret[0]);\n    this.clear();\n    return this._selectionSaved = true;\n  };\n\n  Selection.prototype.restore = function() {\n    var endCaret, endContainer, endOffset, range, startCaret, startContainer, startOffset;\n    if (!this._selectionSaved) {\n      return false;\n    }\n    startCaret = this.editor.body.find('.simditor-caret-start');\n    endCaret = this.editor.body.find('.simditor-caret-end');\n    if (startCaret.length && endCaret.length) {\n      startContainer = startCaret.parent();\n      startOffset = startContainer.contents().index(startCaret);\n      endContainer = endCaret.parent();\n      endOffset = endContainer.contents().index(endCaret);\n      if (startContainer[0] === endContainer[0]) {\n        endOffset -= 1;\n      }\n      range = document.createRange();\n      range.setStart(startContainer.get(0), startOffset);\n      range.setEnd(endContainer.get(0), endOffset);\n      startCaret.remove();\n      endCaret.remove();\n      this.range(range);\n    } else {\n      startCaret.remove();\n      endCaret.remove();\n    }\n    this._selectionSaved = false;\n    return range;\n  };\n\n  return Selection;\n\n})(SimpleModule);\n\nFormatter = (function(superClass) {\n  extend(Formatter, superClass);\n\n  function Formatter() {\n    return Formatter.__super__.constructor.apply(this, arguments);\n  }\n\n  Formatter.pluginName = 'Formatter';\n\n  Formatter.prototype.opts = {\n    allowedTags: [],\n    allowedAttributes: {},\n    allowedStyles: {}\n  };\n\n  Formatter.prototype._init = function() {\n    this.editor = this._module;\n    this._allowedTags = $.merge(['br', 'span', 'a', 'img', 'b', 'strong', 'i', 'strike', 'u', 'font', 'p', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'h1', 'h2', 'h3', 'h4', 'hr'], this.opts.allowedTags);\n    this._allowedAttributes = $.extend({\n      img: ['src', 'alt', 'width', 'height', 'data-non-image'],\n      a: ['href', 'target'],\n      font: ['color'],\n      code: ['class']\n    }, this.opts.allowedAttributes);\n    this._allowedStyles = $.extend({\n      span: ['color', 'font-size'],\n      b: ['color', 'font-size'],\n      i: ['color', 'font-size'],\n      strong: ['color', 'font-size'],\n      strike: ['color', 'font-size'],\n      u: ['color', 'font-size'],\n      p: ['margin-left', 'text-align'],\n      h1: ['margin-left', 'text-align'],\n      h2: ['margin-left', 'text-align'],\n      h3: ['margin-left', 'text-align'],\n      h4: ['margin-left', 'text-align']\n    }, this.opts.allowedStyles);\n    return this.editor.body.on('click', 'a', function(e) {\n      return false;\n    });\n  };\n\n  Formatter.prototype.decorate = function($el) {\n    if ($el == null) {\n      $el = this.editor.body;\n    }\n    this.editor.trigger('decorate', [$el]);\n    return $el;\n  };\n\n  Formatter.prototype.undecorate = function($el) {\n    if ($el == null) {\n      $el = this.editor.body.clone();\n    }\n    this.editor.trigger('undecorate', [$el]);\n    return $el;\n  };\n\n  Formatter.prototype.autolink = function($el) {\n    var $link, $node, findLinkNode, k, lastIndex, len, linkNodes, match, re, replaceEls, subStr, text, uri;\n    if ($el == null) {\n      $el = this.editor.body;\n    }\n    linkNodes = [];\n    findLinkNode = function($parentNode) {\n      return $parentNode.contents().each(function(i, node) {\n        var $node, text;\n        $node = $(node);\n        if ($node.is('a') || $node.closest('a, pre', $el).length) {\n          return;\n        }\n        if (!$node.is('iframe') && $node.contents().length) {\n          return findLinkNode($node);\n        } else if ((text = $node.text()) && /https?:\\/\\/|www\\./ig.test(text)) {\n          return linkNodes.push($node);\n        }\n      });\n    };\n    findLinkNode($el);\n    re = /(https?:\\/\\/|www\\.)[\\w\\-\\.\\?&=\\/#%:,@\\!\\+]+/ig;\n    for (k = 0, len = linkNodes.length; k < len; k++) {\n      $node = linkNodes[k];\n      text = $node.text();\n      replaceEls = [];\n      match = null;\n      lastIndex = 0;\n      while ((match = re.exec(text)) !== null) {\n        subStr = text.substring(lastIndex, match.index);\n        replaceEls.push(document.createTextNode(subStr));\n        lastIndex = re.lastIndex;\n        uri = /^(http(s)?:\\/\\/|\\/)/.test(match[0]) ? match[0] : 'http://' + match[0];\n        $link = $(\"<a href=\\\"\" + uri + \"\\\" rel=\\\"nofollow\\\"></a>\").text(match[0]);\n        replaceEls.push($link[0]);\n      }\n      replaceEls.push(document.createTextNode(text.substring(lastIndex)));\n      $node.replaceWith($(replaceEls));\n    }\n    return $el;\n  };\n\n  Formatter.prototype.format = function($el) {\n    var $node, blockNode, k, l, len, len1, n, node, ref, ref1;\n    if ($el == null) {\n      $el = this.editor.body;\n    }\n    if ($el.is(':empty')) {\n      $el.append('<p>' + this.editor.util.phBr + '</p>');\n      return $el;\n    }\n    ref = $el.contents();\n    for (k = 0, len = ref.length; k < len; k++) {\n      n = ref[k];\n      this.cleanNode(n, true);\n    }\n    ref1 = $el.contents();\n    for (l = 0, len1 = ref1.length; l < len1; l++) {\n      node = ref1[l];\n      $node = $(node);\n      if ($node.is('br')) {\n        if (typeof blockNode !== \"undefined\" && blockNode !== null) {\n          blockNode = null;\n        }\n        $node.remove();\n      } else if (this.editor.util.isBlockNode(node)) {\n        if ($node.is('li')) {\n          if (blockNode && blockNode.is('ul, ol')) {\n            blockNode.append(node);\n          } else {\n            blockNode = $('<ul/>').insertBefore(node);\n            blockNode.append(node);\n          }\n        } else {\n          blockNode = null;\n        }\n      } else {\n        if (!blockNode || blockNode.is('ul, ol')) {\n          blockNode = $('<p/>').insertBefore(node);\n        }\n        blockNode.append(node);\n        if (this.editor.util.isEmptyNode(blockNode)) {\n          blockNode.append(this.editor.util.phBr);\n        }\n      }\n    }\n    return $el;\n  };\n\n  Formatter.prototype.cleanNode = function(node, recursive) {\n    var $blockEls, $childImg, $node, $p, $td, allowedAttributes, attr, contents, isDecoration, k, l, len, len1, n, ref, ref1, text, textNode;\n    $node = $(node);\n    if (!($node.length > 0)) {\n      return;\n    }\n    if ($node[0].nodeType === 3) {\n      text = $node.text().replace(/(\\r\\n|\\n|\\r)/gm, '');\n      if (text) {\n        textNode = document.createTextNode(text);\n        $node.replaceWith(textNode);\n      } else {\n        $node.remove();\n      }\n      return;\n    }\n    contents = $node.is('iframe') ? null : $node.contents();\n    isDecoration = this.editor.util.isDecoratedNode($node);\n    if ($node.is(this._allowedTags.join(',')) || isDecoration) {\n      if ($node.is('a') && ($childImg = $node.find('img')).length > 0) {\n        $node.replaceWith($childImg);\n        $node = $childImg;\n        contents = null;\n      }\n      if ($node.is('td') && ($blockEls = $node.find(this.editor.util.blockNodes.join(','))).length > 0) {\n        $blockEls.each((function(_this) {\n          return function(i, blockEl) {\n            return $(blockEl).contents().unwrap();\n          };\n        })(this));\n        contents = $node.contents();\n      }\n      if ($node.is('img') && $node.hasClass('uploading')) {\n        $node.remove();\n      }\n      if (!isDecoration) {\n        allowedAttributes = this._allowedAttributes[$node[0].tagName.toLowerCase()];\n        ref = $.makeArray($node[0].attributes);\n        for (k = 0, len = ref.length; k < len; k++) {\n          attr = ref[k];\n          if (attr.name === 'style') {\n            continue;\n          }\n          if (!((allowedAttributes != null) && (ref1 = attr.name, indexOf.call(allowedAttributes, ref1) >= 0))) {\n            $node.removeAttr(attr.name);\n          }\n        }\n        this._cleanNodeStyles($node);\n        if ($node.is('span')) {\n          if ($node[0].attributes.length === 0) {\n            $node.contents().first().unwrap();\n          }\n          if ($node[0].style.length === 2 && $node[0].style.color === 'rgb(51, 51, 51)' && $node[0].style.fontSize === '16px') {\n            $node.contents().unwrap();\n          }\n        }\n      }\n    } else if ($node[0].nodeType === 1 && !$node.is(':empty')) {\n      if ($node.is('div, article, dl, header, footer, tr')) {\n        $node.append('<br/>');\n        contents.first().unwrap();\n      } else if ($node.is('table')) {\n        $p = $('<p/>');\n        $node.find('tr').each(function(i, tr) {\n          return $p.append($(tr).text() + '<br/>');\n        });\n        $node.replaceWith($p);\n        contents = null;\n      } else if ($node.is('thead, tfoot')) {\n        $node.remove();\n        contents = null;\n      } else if ($node.is('th')) {\n        $td = $('<td/>').append($node.contents());\n        $node.replaceWith($td);\n      } else {\n        contents.first().unwrap();\n      }\n    } else {\n      $node.remove();\n      contents = null;\n    }\n    if (recursive && (contents != null) && !$node.is('pre')) {\n      for (l = 0, len1 = contents.length; l < len1; l++) {\n        n = contents[l];\n        this.cleanNode(n, true);\n      }\n    }\n    return null;\n  };\n\n  Formatter.prototype._cleanNodeStyles = function($node) {\n    var allowedStyles, k, len, pair, ref, ref1, style, styleStr, styles;\n    styleStr = $node.attr('style');\n    if (!styleStr) {\n      return;\n    }\n    $node.removeAttr('style');\n    allowedStyles = this._allowedStyles[$node[0].tagName.toLowerCase()];\n    if (!(allowedStyles && allowedStyles.length > 0)) {\n      return $node;\n    }\n    styles = {};\n    ref = styleStr.split(';');\n    for (k = 0, len = ref.length; k < len; k++) {\n      style = ref[k];\n      style = $.trim(style);\n      pair = style.split(':');\n      if (pair.length !== 2) {\n        continue;\n      }\n      if (pair[0] === 'font-size' && pair[1].indexOf('px') > 0) {\n        if (parseInt(pair[1], 10) < 12) {\n          continue;\n        }\n      }\n      if (ref1 = pair[0], indexOf.call(allowedStyles, ref1) >= 0) {\n        styles[$.trim(pair[0])] = $.trim(pair[1]);\n      }\n    }\n    if (Object.keys(styles).length > 0) {\n      $node.css(styles);\n    }\n    return $node;\n  };\n\n  Formatter.prototype.clearHtml = function(html, lineBreak) {\n    var container, contents, result;\n    if (lineBreak == null) {\n      lineBreak = true;\n    }\n    container = $('<div/>').append(html);\n    contents = container.contents();\n    result = '';\n    contents.each((function(_this) {\n      return function(i, node) {\n        var $node, children;\n        if (node.nodeType === 3) {\n          return result += node.nodeValue;\n        } else if (node.nodeType === 1) {\n          $node = $(node);\n          children = $node.is('iframe') ? null : $node.contents();\n          if (children && children.length > 0) {\n            result += _this.clearHtml(children);\n          }\n          if (lineBreak && i < contents.length - 1 && $node.is('br, p, div, li,tr, pre, address, artticle, aside, dl, figcaption, footer, h1, h2,h3, h4, header')) {\n            return result += '\\n';\n          }\n        }\n      };\n    })(this));\n    return result;\n  };\n\n  Formatter.prototype.beautify = function($contents) {\n    var uselessP;\n    uselessP = function($el) {\n      return !!($el.is('p') && !$el.text() && $el.children(':not(br)').length < 1);\n    };\n    return $contents.each(function(i, el) {\n      var $el, invalid;\n      $el = $(el);\n      invalid = $el.is(':not(img, br, col, td, hr, [class^=\"simditor-\"]):empty');\n      if (invalid || uselessP($el)) {\n        $el.remove();\n      }\n      return $el.find(':not(img, br, col, td, hr, [class^=\"simditor-\"]):empty').remove();\n    });\n  };\n\n  return Formatter;\n\n})(SimpleModule);\n\nInputManager = (function(superClass) {\n  extend(InputManager, superClass);\n\n  function InputManager() {\n    return InputManager.__super__.constructor.apply(this, arguments);\n  }\n\n  InputManager.pluginName = 'InputManager';\n\n  InputManager.prototype._modifierKeys = [16, 17, 18, 91, 93, 224];\n\n  InputManager.prototype._arrowKeys = [37, 38, 39, 40];\n\n  InputManager.prototype._init = function() {\n    var selectAllKey, submitKey;\n    this.editor = this._module;\n    this.throttledValueChanged = this.editor.util.throttle((function(_this) {\n      return function(params) {\n        return setTimeout(function() {\n          return _this.editor.trigger('valuechanged', params);\n        }, 10);\n      };\n    })(this), 300);\n    this.throttledSelectionChanged = this.editor.util.throttle((function(_this) {\n      return function() {\n        return _this.editor.trigger('selectionchanged');\n      };\n    })(this), 50);\n    $(document).on('selectionchange.simditor' + this.editor.id, (function(_this) {\n      return function(e) {\n        var triggerEvent;\n        if (!(_this.focused && !_this.editor.clipboard.pasting)) {\n          return;\n        }\n        triggerEvent = function() {\n          if (_this._selectionTimer) {\n            clearTimeout(_this._selectionTimer);\n            _this._selectionTimer = null;\n          }\n          if (_this.editor.selection._selection.rangeCount > 0) {\n            return _this.throttledSelectionChanged();\n          } else {\n            return _this._selectionTimer = setTimeout(function() {\n              _this._selectionTimer = null;\n              if (_this.focused) {\n                return triggerEvent();\n              }\n            }, 10);\n          }\n        };\n        return triggerEvent();\n      };\n    })(this));\n    this.editor.on('valuechanged', (function(_this) {\n      return function() {\n        var $rootBlocks;\n        _this.lastCaretPosition = null;\n        $rootBlocks = _this.editor.body.children().filter(function(i, node) {\n          return _this.editor.util.isBlockNode(node);\n        });\n        if (_this.focused && $rootBlocks.length === 0) {\n          _this.editor.selection.save();\n          _this.editor.formatter.format();\n          _this.editor.selection.restore();\n        }\n        _this.editor.body.find('hr, pre, .simditor-table').each(function(i, el) {\n          var $el, formatted;\n          $el = $(el);\n          if ($el.parent().is('blockquote') || $el.parent()[0] === _this.editor.body[0]) {\n            formatted = false;\n            if ($el.next().length === 0) {\n              $('<p/>').append(_this.editor.util.phBr).insertAfter($el);\n              formatted = true;\n            }\n            if ($el.prev().length === 0) {\n              $('<p/>').append(_this.editor.util.phBr).insertBefore($el);\n              formatted = true;\n            }\n            if (formatted) {\n              return _this.throttledValueChanged();\n            }\n          }\n        });\n        _this.editor.body.find('pre:empty').append(_this.editor.util.phBr);\n        if (!_this.editor.util.support.onselectionchange && _this.focused) {\n          return _this.throttledSelectionChanged();\n        }\n      };\n    })(this));\n    this.editor.body.on('keydown', $.proxy(this._onKeyDown, this)).on('keypress', $.proxy(this._onKeyPress, this)).on('keyup', $.proxy(this._onKeyUp, this)).on('mouseup', $.proxy(this._onMouseUp, this)).on('focus', $.proxy(this._onFocus, this)).on('blur', $.proxy(this._onBlur, this)).on('drop', $.proxy(this._onDrop, this)).on('input', $.proxy(this._onInput, this));\n    if (this.editor.util.browser.firefox) {\n      this.editor.hotkeys.add('cmd+left', (function(_this) {\n        return function(e) {\n          e.preventDefault();\n          _this.editor.selection._selection.modify('move', 'backward', 'lineboundary');\n          return false;\n        };\n      })(this));\n      this.editor.hotkeys.add('cmd+right', (function(_this) {\n        return function(e) {\n          e.preventDefault();\n          _this.editor.selection._selection.modify('move', 'forward', 'lineboundary');\n          return false;\n        };\n      })(this));\n      selectAllKey = this.editor.util.os.mac ? 'cmd+a' : 'ctrl+a';\n      this.editor.hotkeys.add(selectAllKey, (function(_this) {\n        return function(e) {\n          var $children, firstBlock, lastBlock, range;\n          $children = _this.editor.body.children();\n          if (!($children.length > 0)) {\n            return;\n          }\n          firstBlock = $children.first().get(0);\n          lastBlock = $children.last().get(0);\n          range = document.createRange();\n          range.setStart(firstBlock, 0);\n          range.setEnd(lastBlock, _this.editor.util.getNodeLength(lastBlock));\n          _this.editor.selection.range(range);\n          return false;\n        };\n      })(this));\n    }\n    submitKey = this.editor.util.os.mac ? 'cmd+enter' : 'ctrl+enter';\n    return this.editor.hotkeys.add(submitKey, (function(_this) {\n      return function(e) {\n        _this.editor.sync();\n        _this.editor.el.closest('form').find('button:submit').click();\n        return false;\n      };\n    })(this));\n  };\n\n  InputManager.prototype._onFocus = function(e) {\n    if (this.editor.clipboard.pasting) {\n      return;\n    }\n    this.editor.el.addClass('focus').removeClass('error');\n    this.focused = true;\n    return setTimeout((function(_this) {\n      return function() {\n        var $blockEl, range;\n        range = _this.editor.selection._selection.getRangeAt(0);\n        if (range.startContainer === _this.editor.body[0]) {\n          if (_this.lastCaretPosition) {\n            _this.editor.undoManager.caretPosition(_this.lastCaretPosition);\n          } else {\n            $blockEl = _this.editor.body.children().first();\n            range = document.createRange();\n            _this.editor.selection.setRangeAtStartOf($blockEl, range);\n          }\n        }\n        _this.lastCaretPosition = null;\n        _this.editor.triggerHandler('focus');\n        if (!_this.editor.util.support.onselectionchange) {\n          return _this.throttledSelectionChanged();\n        }\n      };\n    })(this), 0);\n  };\n\n  InputManager.prototype._onBlur = function(e) {\n    var ref;\n    if (this.editor.clipboard.pasting) {\n      return;\n    }\n    this.editor.el.removeClass('focus');\n    this.editor.sync();\n    this.focused = false;\n    this.lastCaretPosition = (ref = this.editor.undoManager.currentState()) != null ? ref.caret : void 0;\n    return this.editor.triggerHandler('blur');\n  };\n\n  InputManager.prototype._onMouseUp = function(e) {\n    if (!this.editor.util.support.onselectionchange) {\n      return this.throttledSelectionChanged();\n    }\n  };\n\n  InputManager.prototype._onKeyDown = function(e) {\n    var ref, ref1;\n    if (this.editor.triggerHandler(e) === false) {\n      return false;\n    }\n    if (this.editor.hotkeys.respondTo(e)) {\n      return;\n    }\n    if (this.editor.keystroke.respondTo(e)) {\n      this.throttledValueChanged();\n      return false;\n    }\n    if ((ref = e.which, indexOf.call(this._modifierKeys, ref) >= 0) || (ref1 = e.which, indexOf.call(this._arrowKeys, ref1) >= 0)) {\n      return;\n    }\n    if (this.editor.util.metaKey(e) && e.which === 86) {\n      return;\n    }\n    if (!this.editor.util.support.oninput) {\n      this.throttledValueChanged(['typing']);\n    }\n    return null;\n  };\n\n  InputManager.prototype._onKeyPress = function(e) {\n    if (this.editor.triggerHandler(e) === false) {\n      return false;\n    }\n  };\n\n  InputManager.prototype._onKeyUp = function(e) {\n    var p, ref;\n    if (this.editor.triggerHandler(e) === false) {\n      return false;\n    }\n    if (!this.editor.util.support.onselectionchange && (ref = e.which, indexOf.call(this._arrowKeys, ref) >= 0)) {\n      this.throttledValueChanged();\n      return;\n    }\n    if ((e.which === 8 || e.which === 46) && this.editor.util.isEmptyNode(this.editor.body)) {\n      this.editor.body.empty();\n      p = $('<p/>').append(this.editor.util.phBr).appendTo(this.editor.body);\n      this.editor.selection.setRangeAtStartOf(p);\n    }\n  };\n\n  InputManager.prototype._onDrop = function(e) {\n    if (this.editor.triggerHandler(e) === false) {\n      return false;\n    }\n    return this.throttledValueChanged();\n  };\n\n  InputManager.prototype._onInput = function(e) {\n    return this.throttledValueChanged(['oninput']);\n  };\n\n  return InputManager;\n\n})(SimpleModule);\n\nKeystroke = (function(superClass) {\n  extend(Keystroke, superClass);\n\n  function Keystroke() {\n    return Keystroke.__super__.constructor.apply(this, arguments);\n  }\n\n  Keystroke.pluginName = 'Keystroke';\n\n  Keystroke.prototype._init = function() {\n    this.editor = this._module;\n    this._keystrokeHandlers = {};\n    return this._initKeystrokeHandlers();\n  };\n\n  Keystroke.prototype.add = function(key, node, handler) {\n    key = key.toLowerCase();\n    key = this.editor.hotkeys.constructor.aliases[key] || key;\n    if (!this._keystrokeHandlers[key]) {\n      this._keystrokeHandlers[key] = {};\n    }\n    return this._keystrokeHandlers[key][node] = handler;\n  };\n\n  Keystroke.prototype.respondTo = function(e) {\n    var base, key, ref, result;\n    key = (ref = this.editor.hotkeys.constructor.keyNameMap[e.which]) != null ? ref.toLowerCase() : void 0;\n    if (!key) {\n      return;\n    }\n    if (key in this._keystrokeHandlers) {\n      result = typeof (base = this._keystrokeHandlers[key])['*'] === \"function\" ? base['*'](e) : void 0;\n      if (!result) {\n        this.editor.selection.startNodes().each((function(_this) {\n          return function(i, node) {\n            var handler, ref1;\n            if (node.nodeType !== Node.ELEMENT_NODE) {\n              return;\n            }\n            handler = (ref1 = _this._keystrokeHandlers[key]) != null ? ref1[node.tagName.toLowerCase()] : void 0;\n            result = typeof handler === \"function\" ? handler(e, $(node)) : void 0;\n            if (result === true || result === false) {\n              return false;\n            }\n          };\n        })(this));\n      }\n      if (result) {\n        return true;\n      }\n    }\n  };\n\n  Keystroke.prototype._initKeystrokeHandlers = function() {\n    var titleEnterHandler;\n    if (this.editor.util.browser.safari) {\n      this.add('enter', '*', (function(_this) {\n        return function(e) {\n          var $blockEl, $br;\n          if (!e.shiftKey) {\n            return;\n          }\n          $blockEl = _this.editor.selection.blockNodes().last();\n          if ($blockEl.is('pre')) {\n            return;\n          }\n          $br = $('<br/>');\n          if (_this.editor.selection.rangeAtEndOf($blockEl)) {\n            _this.editor.selection.insertNode($br);\n            _this.editor.selection.insertNode($('<br/>'));\n            _this.editor.selection.setRangeBefore($br);\n          } else {\n            _this.editor.selection.insertNode($br);\n          }\n          return true;\n        };\n      })(this));\n    }\n    if (this.editor.util.browser.webkit || this.editor.util.browser.msie) {\n      titleEnterHandler = (function(_this) {\n        return function(e, $node) {\n          var $p;\n          if (!_this.editor.selection.rangeAtEndOf($node)) {\n            return;\n          }\n          $p = $('<p/>').append(_this.editor.util.phBr).insertAfter($node);\n          _this.editor.selection.setRangeAtStartOf($p);\n          return true;\n        };\n      })(this);\n      this.add('enter', 'h1', titleEnterHandler);\n      this.add('enter', 'h2', titleEnterHandler);\n      this.add('enter', 'h3', titleEnterHandler);\n      this.add('enter', 'h4', titleEnterHandler);\n      this.add('enter', 'h5', titleEnterHandler);\n      this.add('enter', 'h6', titleEnterHandler);\n    }\n    this.add('backspace', '*', (function(_this) {\n      return function(e) {\n        var $blockEl, $prevBlockEl, $rootBlock, isWebkit;\n        $rootBlock = _this.editor.selection.rootNodes().first();\n        $prevBlockEl = $rootBlock.prev();\n        if ($prevBlockEl.is('hr') && _this.editor.selection.rangeAtStartOf($rootBlock)) {\n          _this.editor.selection.save();\n          $prevBlockEl.remove();\n          _this.editor.selection.restore();\n          return true;\n        }\n        $blockEl = _this.editor.selection.blockNodes().last();\n        if ($blockEl.is('.simditor-resize-handle') && $rootBlock.is('.simditor-table')) {\n          e.preventDefault();\n          $rootBlock.remove();\n          _this.editor.selection.setRangeAtEndOf($prevBlockEl);\n        }\n        if ($prevBlockEl.is('.simditor-table') && !$blockEl.is('table') && _this.editor.util.isEmptyNode($blockEl)) {\n          e.preventDefault();\n          $blockEl.remove();\n          _this.editor.selection.setRangeAtEndOf($prevBlockEl);\n        }\n        isWebkit = _this.editor.util.browser.webkit;\n        if (isWebkit && _this.editor.selection.rangeAtStartOf($blockEl)) {\n          _this.editor.selection.save();\n          _this.editor.formatter.cleanNode($blockEl, true);\n          _this.editor.selection.restore();\n          return null;\n        }\n      };\n    })(this));\n    this.add('enter', 'div', (function(_this) {\n      return function(e, $node) {\n        var $blockEl, $p;\n        if ($node.is('.simditor-table')) {\n          $blockEl = _this.editor.selection.blockNodes().last();\n          if ($blockEl.is('.simditor-resize-handle')) {\n            e.preventDefault();\n            $p = $('<p/>').append(_this.editor.util.phBr).insertAfter($node);\n            return _this.editor.selection.setRangeAtStartOf($p);\n          }\n        }\n      };\n    })(this));\n    this.add('enter', 'li', (function(_this) {\n      return function(e, $node) {\n        var $cloneNode, listEl, newBlockEl, newListEl;\n        $cloneNode = $node.clone();\n        $cloneNode.find('ul, ol').remove();\n        if (!(_this.editor.util.isEmptyNode($cloneNode) && $node.is(_this.editor.selection.blockNodes().last()))) {\n          return;\n        }\n        listEl = $node.parent();\n        if ($node.next('li').length > 0) {\n          if (!_this.editor.util.isEmptyNode($node)) {\n            return;\n          }\n          if (listEl.parent('li').length > 0) {\n            newBlockEl = $('<li/>').append(_this.editor.util.phBr).insertAfter(listEl.parent('li'));\n            newListEl = $('<' + listEl[0].tagName + '/>').append($node.nextAll('li'));\n            newBlockEl.append(newListEl);\n          } else {\n            newBlockEl = $('<p/>').append(_this.editor.util.phBr).insertAfter(listEl);\n            newListEl = $('<' + listEl[0].tagName + '/>').append($node.nextAll('li'));\n            newBlockEl.after(newListEl);\n          }\n        } else {\n          if (listEl.parent('li').length > 0) {\n            newBlockEl = $('<li/>').insertAfter(listEl.parent('li'));\n            if ($node.contents().length > 0) {\n              newBlockEl.append($node.contents());\n            } else {\n              newBlockEl.append(_this.editor.util.phBr);\n            }\n          } else {\n            newBlockEl = $('<p/>').append(_this.editor.util.phBr).insertAfter(listEl);\n            if ($node.children('ul, ol').length > 0) {\n              newBlockEl.after($node.children('ul, ol'));\n            }\n          }\n        }\n        if ($node.prev('li').length) {\n          $node.remove();\n        } else {\n          if ($node.prev('ul').length || $node.prev('ol').length) {\n            $node.remove();\n          } else {\n            listEl.remove();\n          }\n        }\n        _this.editor.selection.setRangeAtStartOf(newBlockEl);\n        return true;\n      };\n    })(this));\n    this.add('enter', 'pre', (function(_this) {\n      return function(e, $node) {\n        var $p, breakNode, range;\n        e.preventDefault();\n        if (e.shiftKey) {\n          $p = $('<p/>').append(_this.editor.util.phBr).insertAfter($node);\n          _this.editor.selection.setRangeAtStartOf($p);\n          return true;\n        }\n        range = _this.editor.selection.range();\n        breakNode = null;\n        range.deleteContents();\n        if (!_this.editor.util.browser.msie && _this.editor.selection.rangeAtEndOf($node)) {\n          breakNode = document.createTextNode('\\n\\n');\n        } else {\n          breakNode = document.createTextNode('\\n');\n        }\n        range.insertNode(breakNode);\n        range.setEnd(breakNode, 1);\n        range.collapse(false);\n        _this.editor.selection.range(range);\n        return true;\n      };\n    })(this));\n    this.add('enter', 'blockquote', (function(_this) {\n      return function(e, $node) {\n        var $closestBlock, range;\n        $closestBlock = _this.editor.selection.blockNodes().last();\n        if (!($closestBlock.is('p') && !$closestBlock.next().length && _this.editor.util.isEmptyNode($closestBlock))) {\n          return;\n        }\n        $node.after($closestBlock);\n        range = document.createRange();\n        _this.editor.selection.setRangeAtStartOf($closestBlock, range);\n        return true;\n      };\n    })(this));\n    this.add('backspace', 'li', (function(_this) {\n      return function(e, $node) {\n        var $br, $childList, $newLi, $prevChildList, $prevNode, $textNode, isFF, range, text;\n        $childList = $node.children('ul, ol');\n        $prevNode = $node.prev('li');\n        if (!($childList.length > 0 && $prevNode.length > 0)) {\n          return false;\n        }\n        text = '';\n        $textNode = null;\n        $node.contents().each(function(i, n) {\n          if (n.nodeType === 1 && /UL|OL/.test(n.nodeName)) {\n            return false;\n          }\n          if (n.nodeType === 1 && /BR/.test(n.nodeName)) {\n            return;\n          }\n          if (n.nodeType === 3 && n.nodeValue) {\n            text += n.nodeValue;\n          } else if (n.nodeType === 1) {\n            text += $(n).text();\n          }\n          return $textNode = $(n);\n        });\n        isFF = _this.editor.util.browser.firefox && !$textNode.next('br').length;\n        if ($textNode && text.length === 1 && isFF) {\n          $br = $(_this.editor.util.phBr).insertAfter($textNode);\n          $textNode.remove();\n          _this.editor.selection.setRangeBefore($br);\n          return true;\n        } else if (text.length > 0) {\n          return false;\n        }\n        range = document.createRange();\n        $prevChildList = $prevNode.children('ul, ol');\n        if ($prevChildList.length > 0) {\n          $newLi = $('<li/>').append(_this.editor.util.phBr).appendTo($prevChildList);\n          $prevChildList.append($childList.children('li'));\n          $node.remove();\n          _this.editor.selection.setRangeAtEndOf($newLi, range);\n        } else {\n          _this.editor.selection.setRangeAtEndOf($prevNode, range);\n          $prevNode.append($childList);\n          $node.remove();\n          _this.editor.selection.range(range);\n        }\n        return true;\n      };\n    })(this));\n    this.add('backspace', 'pre', (function(_this) {\n      return function(e, $node) {\n        var $newNode, codeStr, range;\n        if (!_this.editor.selection.rangeAtStartOf($node)) {\n          return;\n        }\n        codeStr = $node.html().replace('\\n', '<br/>') || _this.editor.util.phBr;\n        $newNode = $('<p/>').append(codeStr).insertAfter($node);\n        $node.remove();\n        range = document.createRange();\n        _this.editor.selection.setRangeAtStartOf($newNode, range);\n        return true;\n      };\n    })(this));\n    return this.add('backspace', 'blockquote', (function(_this) {\n      return function(e, $node) {\n        var $firstChild, range;\n        if (!_this.editor.selection.rangeAtStartOf($node)) {\n          return;\n        }\n        $firstChild = $node.children().first().unwrap();\n        range = document.createRange();\n        _this.editor.selection.setRangeAtStartOf($firstChild, range);\n        return true;\n      };\n    })(this));\n  };\n\n  return Keystroke;\n\n})(SimpleModule);\n\nUndoManager = (function(superClass) {\n  extend(UndoManager, superClass);\n\n  function UndoManager() {\n    return UndoManager.__super__.constructor.apply(this, arguments);\n  }\n\n  UndoManager.pluginName = 'UndoManager';\n\n  UndoManager.prototype._index = -1;\n\n  UndoManager.prototype._capacity = 20;\n\n  UndoManager.prototype._startPosition = null;\n\n  UndoManager.prototype._endPosition = null;\n\n  UndoManager.prototype._init = function() {\n    var redoShortcut, undoShortcut;\n    this.editor = this._module;\n    this._stack = [];\n    if (this.editor.util.os.mac) {\n      undoShortcut = 'cmd+z';\n      redoShortcut = 'shift+cmd+z';\n    } else if (this.editor.util.os.win) {\n      undoShortcut = 'ctrl+z';\n      redoShortcut = 'ctrl+y';\n    } else {\n      undoShortcut = 'ctrl+z';\n      redoShortcut = 'shift+ctrl+z';\n    }\n    this.editor.hotkeys.add(undoShortcut, (function(_this) {\n      return function(e) {\n        e.preventDefault();\n        _this.undo();\n        return false;\n      };\n    })(this));\n    this.editor.hotkeys.add(redoShortcut, (function(_this) {\n      return function(e) {\n        e.preventDefault();\n        _this.redo();\n        return false;\n      };\n    })(this));\n    this.throttledPushState = this.editor.util.throttle((function(_this) {\n      return function() {\n        return _this._pushUndoState();\n      };\n    })(this), 2000);\n    this.editor.on('valuechanged', (function(_this) {\n      return function(e, src) {\n        if (src === 'undo' || src === 'redo') {\n          return;\n        }\n        return _this.throttledPushState();\n      };\n    })(this));\n    this.editor.on('selectionchanged', (function(_this) {\n      return function(e) {\n        _this.resetCaretPosition();\n        return _this.update();\n      };\n    })(this));\n    this.editor.on('focus', (function(_this) {\n      return function(e) {\n        if (_this._stack.length === 0) {\n          return _this._pushUndoState();\n        }\n      };\n    })(this));\n    return this.editor.on('blur', (function(_this) {\n      return function(e) {\n        return _this.resetCaretPosition();\n      };\n    })(this));\n  };\n\n  UndoManager.prototype.resetCaretPosition = function() {\n    this._startPosition = null;\n    return this._endPosition = null;\n  };\n\n  UndoManager.prototype.startPosition = function() {\n    if (this.editor.selection._range) {\n      this._startPosition || (this._startPosition = this._getPosition('start'));\n    }\n    return this._startPosition;\n  };\n\n  UndoManager.prototype.endPosition = function() {\n    if (this.editor.selection._range) {\n      this._endPosition || (this._endPosition = (function(_this) {\n        return function() {\n          var range;\n          range = _this.editor.selection.range();\n          if (range.collapsed) {\n            return _this._startPosition;\n          }\n          return _this._getPosition('end');\n        };\n      })(this)());\n    }\n    return this._endPosition;\n  };\n\n  UndoManager.prototype._pushUndoState = function() {\n    var caret;\n    if (this.editor.triggerHandler('pushundostate') === false) {\n      return;\n    }\n    caret = this.caretPosition();\n    if (!caret.start) {\n      return;\n    }\n    this._index += 1;\n    this._stack.length = this._index;\n    this._stack.push({\n      html: this.editor.body.html(),\n      caret: this.caretPosition()\n    });\n    if (this._stack.length > this._capacity) {\n      this._stack.shift();\n      return this._index -= 1;\n    }\n  };\n\n  UndoManager.prototype.currentState = function() {\n    if (this._stack.length && this._index > -1) {\n      return this._stack[this._index];\n    } else {\n      return null;\n    }\n  };\n\n  UndoManager.prototype.undo = function() {\n    var state;\n    if (this._index < 1 || this._stack.length < 2) {\n      return;\n    }\n    this.editor.hidePopover();\n    this._index -= 1;\n    state = this._stack[this._index];\n    this.editor.body.get(0).innerHTML = state.html;\n    this.caretPosition(state.caret);\n    this.editor.body.find('.selected').removeClass('selected');\n    this.editor.sync();\n    return this.editor.trigger('valuechanged', ['undo']);\n  };\n\n  UndoManager.prototype.redo = function() {\n    var state;\n    if (this._index < 0 || this._stack.length < this._index + 2) {\n      return;\n    }\n    this.editor.hidePopover();\n    this._index += 1;\n    state = this._stack[this._index];\n    this.editor.body.get(0).innerHTML = state.html;\n    this.caretPosition(state.caret);\n    this.editor.body.find('.selected').removeClass('selected');\n    this.editor.sync();\n    return this.editor.trigger('valuechanged', ['redo']);\n  };\n\n  UndoManager.prototype.update = function() {\n    var currentState;\n    currentState = this.currentState();\n    if (!currentState) {\n      return;\n    }\n    currentState.html = this.editor.body.html();\n    return currentState.caret = this.caretPosition();\n  };\n\n  UndoManager.prototype._getNodeOffset = function(node, index) {\n    var $parent, merging, offset;\n    if ($.isNumeric(index)) {\n      $parent = $(node);\n    } else {\n      $parent = $(node).parent();\n    }\n    offset = 0;\n    merging = false;\n    $parent.contents().each(function(i, child) {\n      if (node === child || (index === i && i === 0)) {\n        return false;\n      }\n      if (child.nodeType === Node.TEXT_NODE) {\n        if (!merging && child.nodeValue.length > 0) {\n          offset += 1;\n          merging = true;\n        }\n      } else {\n        offset += 1;\n        merging = false;\n      }\n      if (index - 1 === i) {\n        return false;\n      }\n      return null;\n    });\n    return offset;\n  };\n\n  UndoManager.prototype._getPosition = function(type) {\n    var $nodes, node, nodes, offset, position, prevNode, range;\n    if (type == null) {\n      type = 'start';\n    }\n    range = this.editor.selection.range();\n    offset = range[type + \"Offset\"];\n    $nodes = this.editor.selection[type + \"Nodes\"]();\n    node = $nodes.first()[0];\n    if (node.nodeType === Node.TEXT_NODE) {\n      prevNode = node.previousSibling;\n      while (prevNode && prevNode.nodeType === Node.TEXT_NODE) {\n        node = prevNode;\n        offset += this.editor.util.getNodeLength(prevNode);\n        prevNode = prevNode.previousSibling;\n      }\n      nodes = $nodes.get();\n      nodes[0] = node;\n      $nodes = $(nodes);\n    } else {\n      offset = this._getNodeOffset(node, offset);\n    }\n    position = [offset];\n    $nodes.each((function(_this) {\n      return function(i, node) {\n        return position.unshift(_this._getNodeOffset(node));\n      };\n    })(this));\n    return position;\n  };\n\n  UndoManager.prototype._getNodeByPosition = function(position) {\n    var child, childNodes, i, k, len, node, offset, ref;\n    node = this.editor.body[0];\n    ref = position.slice(0, position.length - 1);\n    for (i = k = 0, len = ref.length; k < len; i = ++k) {\n      offset = ref[i];\n      childNodes = node.childNodes;\n      if (offset > childNodes.length - 1) {\n        if (i === position.length - 2 && $(node).is(':empty')) {\n          child = document.createTextNode('');\n          node.appendChild(child);\n          childNodes = node.childNodes;\n        } else {\n          node = null;\n          break;\n        }\n      }\n      node = childNodes[offset];\n    }\n    return node;\n  };\n\n  UndoManager.prototype.caretPosition = function(caret) {\n    var endContainer, endOffset, range, startContainer, startOffset;\n    if (!caret) {\n      range = this.editor.selection.range();\n      caret = this.editor.inputManager.focused && (range != null) ? {\n        start: this.startPosition(),\n        end: this.endPosition(),\n        collapsed: range.collapsed\n      } : {};\n      return caret;\n    } else {\n      if (!caret.start) {\n        return;\n      }\n      startContainer = this._getNodeByPosition(caret.start);\n      startOffset = caret.start[caret.start.length - 1];\n      if (caret.collapsed) {\n        endContainer = startContainer;\n        endOffset = startOffset;\n      } else {\n        endContainer = this._getNodeByPosition(caret.end);\n        endOffset = caret.start[caret.start.length - 1];\n      }\n      if (!startContainer || !endContainer) {\n        if (typeof console !== \"undefined\" && console !== null) {\n          if (typeof console.info === \"function\") {\n            console.info('simditor: invalid caret state');\n          }\n        }\n        return;\n      }\n      range = document.createRange();\n      range.setStart(startContainer, startOffset);\n      range.setEnd(endContainer, endOffset);\n      return this.editor.selection.range(range);\n    }\n  };\n\n  return UndoManager;\n\n})(SimpleModule);\n\nUtil = (function(superClass) {\n  extend(Util, superClass);\n\n  function Util() {\n    return Util.__super__.constructor.apply(this, arguments);\n  }\n\n  Util.pluginName = 'Util';\n\n  Util.prototype._init = function() {\n    this.editor = this._module;\n    if (this.browser.msie && this.browser.version < 11) {\n      return this.phBr = '';\n    }\n  };\n\n  Util.prototype.phBr = '<br/>';\n\n  Util.prototype.os = (function() {\n    var os;\n    os = {};\n    if (/Mac/.test(navigator.appVersion)) {\n      os.mac = true;\n    } else if (/Linux/.test(navigator.appVersion)) {\n      os.linux = true;\n    } else if (/Win/.test(navigator.appVersion)) {\n      os.win = true;\n    } else if (/X11/.test(navigator.appVersion)) {\n      os.unix = true;\n    }\n    if (/Mobi/.test(navigator.appVersion)) {\n      os.mobile = true;\n    }\n    return os;\n  })();\n\n  Util.prototype.browser = (function() {\n    var chrome, edge, firefox, ie, ref, ref1, ref2, ref3, ref4, safari, ua;\n    ua = navigator.userAgent;\n    ie = /(msie|trident)/i.test(ua);\n    chrome = /chrome|crios/i.test(ua);\n    safari = /safari/i.test(ua) && !chrome;\n    firefox = /firefox/i.test(ua);\n    edge = /edge/i.test(ua);\n    if (ie) {\n      return {\n        msie: true,\n        version: ((ref = ua.match(/(msie |rv:)(\\d+(\\.\\d+)?)/i)) != null ? ref[2] : void 0) * 1\n      };\n    } else if (edge) {\n      return {\n        edge: true,\n        webkit: true,\n        version: ((ref1 = ua.match(/edge\\/(\\d+(\\.\\d+)?)/i)) != null ? ref1[1] : void 0) * 1\n      };\n    } else if (chrome) {\n      return {\n        webkit: true,\n        chrome: true,\n        version: ((ref2 = ua.match(/(?:chrome|crios)\\/(\\d+(\\.\\d+)?)/i)) != null ? ref2[1] : void 0) * 1\n      };\n    } else if (safari) {\n      return {\n        webkit: true,\n        safari: true,\n        version: ((ref3 = ua.match(/version\\/(\\d+(\\.\\d+)?)/i)) != null ? ref3[1] : void 0) * 1\n      };\n    } else if (firefox) {\n      return {\n        mozilla: true,\n        firefox: true,\n        version: ((ref4 = ua.match(/firefox\\/(\\d+(\\.\\d+)?)/i)) != null ? ref4[1] : void 0) * 1\n      };\n    } else {\n      return {};\n    }\n  })();\n\n  Util.prototype.support = (function() {\n    return {\n      onselectionchange: (function() {\n        var e, onselectionchange;\n        onselectionchange = document.onselectionchange;\n        if (onselectionchange !== void 0) {\n          try {\n            document.onselectionchange = 0;\n            return document.onselectionchange === null;\n          } catch (_error) {\n            e = _error;\n          } finally {\n            document.onselectionchange = onselectionchange;\n          }\n        }\n        return false;\n      })(),\n      oninput: (function() {\n        return !/(msie|trident)/i.test(navigator.userAgent);\n      })()\n    };\n  })();\n\n  Util.prototype.reflow = function(el) {\n    if (el == null) {\n      el = document;\n    }\n    return $(el)[0].offsetHeight;\n  };\n\n  Util.prototype.metaKey = function(e) {\n    var isMac;\n    isMac = /Mac/.test(navigator.userAgent);\n    if (isMac) {\n      return e.metaKey;\n    } else {\n      return e.ctrlKey;\n    }\n  };\n\n  Util.prototype.isEmptyNode = function(node) {\n    var $node;\n    $node = $(node);\n    return $node.is(':empty') || (!$node.text() && !$node.find(':not(br, span, div)').length);\n  };\n\n  Util.prototype.isDecoratedNode = function(node) {\n    return $(node).is('[class^=\"simditor-\"]');\n  };\n\n  Util.prototype.blockNodes = [\"div\", \"p\", \"ul\", \"ol\", \"li\", \"blockquote\", \"hr\", \"pre\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"table\"];\n\n  Util.prototype.isBlockNode = function(node) {\n    node = $(node)[0];\n    if (!node || node.nodeType === 3) {\n      return false;\n    }\n    return new RegExp(\"^(\" + (this.blockNodes.join('|')) + \")$\").test(node.nodeName.toLowerCase());\n  };\n\n  Util.prototype.getNodeLength = function(node) {\n    node = $(node)[0];\n    switch (node.nodeType) {\n      case 7:\n      case 10:\n        return 0;\n      case 3:\n      case 8:\n        return node.length;\n      default:\n        return node.childNodes.length;\n    }\n  };\n\n  Util.prototype.dataURLtoBlob = function(dataURL) {\n    var BlobBuilder, arrayBuffer, bb, blobArray, byteString, hasArrayBufferViewSupport, hasBlobConstructor, i, intArray, k, mimeString, ref, supportBlob;\n    hasBlobConstructor = window.Blob && (function() {\n      var e;\n      try {\n        return Boolean(new Blob());\n      } catch (_error) {\n        e = _error;\n        return false;\n      }\n    })();\n    hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array && (function() {\n      var e;\n      try {\n        return new Blob([new Uint8Array(100)]).size === 100;\n      } catch (_error) {\n        e = _error;\n        return false;\n      }\n    })();\n    BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n    supportBlob = hasBlobConstructor || BlobBuilder;\n    if (!(supportBlob && window.atob && window.ArrayBuffer && window.Uint8Array)) {\n      return false;\n    }\n    if (dataURL.split(',')[0].indexOf('base64') >= 0) {\n      byteString = atob(dataURL.split(',')[1]);\n    } else {\n      byteString = decodeURIComponent(dataURL.split(',')[1]);\n    }\n    arrayBuffer = new ArrayBuffer(byteString.length);\n    intArray = new Uint8Array(arrayBuffer);\n    for (i = k = 0, ref = byteString.length; 0 <= ref ? k <= ref : k >= ref; i = 0 <= ref ? ++k : --k) {\n      intArray[i] = byteString.charCodeAt(i);\n    }\n    mimeString = dataURL.split(',')[0].split(':')[1].split(';')[0];\n    if (hasBlobConstructor) {\n      blobArray = hasArrayBufferViewSupport ? intArray : arrayBuffer;\n      return new Blob([blobArray], {\n        type: mimeString\n      });\n    }\n    bb = new BlobBuilder();\n    bb.append(arrayBuffer);\n    return bb.getBlob(mimeString);\n  };\n\n  Util.prototype.throttle = function(func, wait) {\n    var args, call, ctx, last, rtn, throttled, timeoutID;\n    last = 0;\n    timeoutID = 0;\n    ctx = args = rtn = null;\n    call = function() {\n      timeoutID = 0;\n      last = +new Date();\n      rtn = func.apply(ctx, args);\n      ctx = null;\n      return args = null;\n    };\n    throttled = function() {\n      var delta;\n      ctx = this;\n      args = arguments;\n      delta = new Date() - last;\n      if (!timeoutID) {\n        if (delta >= wait) {\n          call();\n        } else {\n          timeoutID = setTimeout(call, wait - delta);\n        }\n      }\n      return rtn;\n    };\n    throttled.clear = function() {\n      if (!timeoutID) {\n        return;\n      }\n      clearTimeout(timeoutID);\n      return call();\n    };\n    return throttled;\n  };\n\n  Util.prototype.formatHTML = function(html) {\n    var cursor, indentString, lastMatch, level, match, re, repeatString, result, str;\n    re = /<(\\/?)(.+?)(\\/?)>/g;\n    result = '';\n    level = 0;\n    lastMatch = null;\n    indentString = '  ';\n    repeatString = function(str, n) {\n      return new Array(n + 1).join(str);\n    };\n    while ((match = re.exec(html)) !== null) {\n      match.isBlockNode = $.inArray(match[2], this.blockNodes) > -1;\n      match.isStartTag = match[1] !== '/' && match[3] !== '/';\n      match.isEndTag = match[1] === '/' || match[3] === '/';\n      cursor = lastMatch ? lastMatch.index + lastMatch[0].length : 0;\n      if ((str = html.substring(cursor, match.index)).length > 0 && $.trim(str)) {\n        result += str;\n      }\n      if (match.isBlockNode && match.isEndTag && !match.isStartTag) {\n        level -= 1;\n      }\n      if (match.isBlockNode && match.isStartTag) {\n        if (!(lastMatch && lastMatch.isBlockNode && lastMatch.isEndTag)) {\n          result += '\\n';\n        }\n        result += repeatString(indentString, level);\n      }\n      result += match[0];\n      if (match.isBlockNode && match.isEndTag) {\n        result += '\\n';\n      }\n      if (match.isBlockNode && match.isStartTag) {\n        level += 1;\n      }\n      lastMatch = match;\n    }\n    return $.trim(result);\n  };\n\n  return Util;\n\n})(SimpleModule);\n\nToolbar = (function(superClass) {\n  extend(Toolbar, superClass);\n\n  function Toolbar() {\n    return Toolbar.__super__.constructor.apply(this, arguments);\n  }\n\n  Toolbar.pluginName = 'Toolbar';\n\n  Toolbar.prototype.opts = {\n    toolbar: true,\n    toolbarFloat: true,\n    toolbarHidden: false,\n    toolbarFloatOffset: 0\n  };\n\n  Toolbar.prototype._tpl = {\n    wrapper: '<div class=\"simditor-toolbar\"><ul></ul></div>',\n    separator: '<li><span class=\"separator\"></span></li>'\n  };\n\n  Toolbar.prototype._init = function() {\n    var floatInitialized, initToolbarFloat, toolbarHeight;\n    this.editor = this._module;\n    if (!this.opts.toolbar) {\n      return;\n    }\n    if (!$.isArray(this.opts.toolbar)) {\n      this.opts.toolbar = ['bold', 'italic', 'underline', 'strikethrough', '|', 'ol', 'ul', 'blockquote', 'code', '|', 'link', 'image', '|', 'indent', 'outdent'];\n    }\n    this._render();\n    this.list.on('click', function(e) {\n      return false;\n    });\n    this.wrapper.on('mousedown', (function(_this) {\n      return function(e) {\n        return _this.list.find('.menu-on').removeClass('.menu-on');\n      };\n    })(this));\n    $(document).on('mousedown.simditor' + this.editor.id, (function(_this) {\n      return function(e) {\n        return _this.list.find('.menu-on').removeClass('.menu-on');\n      };\n    })(this));\n    if (!this.opts.toolbarHidden && this.opts.toolbarFloat) {\n      this.wrapper.css('top', this.opts.toolbarFloatOffset);\n      toolbarHeight = 0;\n      initToolbarFloat = (function(_this) {\n        return function() {\n          _this.wrapper.css('position', 'static');\n          _this.wrapper.width('auto');\n          _this.editor.util.reflow(_this.wrapper);\n          _this.wrapper.width(_this.wrapper.outerWidth());\n          _this.wrapper.css('left', _this.editor.util.os.mobile ? _this.wrapper.position().left : _this.wrapper.offset().left);\n          _this.wrapper.css('position', '');\n          toolbarHeight = _this.wrapper.outerHeight();\n          _this.editor.placeholderEl.css('top', toolbarHeight);\n          return true;\n        };\n      })(this);\n      floatInitialized = null;\n      $(window).on('resize.simditor-' + this.editor.id, function(e) {\n        return floatInitialized = initToolbarFloat();\n      });\n      $(window).on('scroll.simditor-' + this.editor.id, (function(_this) {\n        return function(e) {\n          var bottomEdge, scrollTop, topEdge;\n          if (!_this.wrapper.is(':visible')) {\n            return;\n          }\n          topEdge = _this.editor.wrapper.offset().top;\n          bottomEdge = topEdge + _this.editor.wrapper.outerHeight() - 80;\n          scrollTop = $(document).scrollTop() + _this.opts.toolbarFloatOffset;\n          if (scrollTop <= topEdge || scrollTop >= bottomEdge) {\n            _this.editor.wrapper.removeClass('toolbar-floating').css('padding-top', '');\n            if (_this.editor.util.os.mobile) {\n              return _this.wrapper.css('top', _this.opts.toolbarFloatOffset);\n            }\n          } else {\n            floatInitialized || (floatInitialized = initToolbarFloat());\n            _this.editor.wrapper.addClass('toolbar-floating').css('padding-top', toolbarHeight);\n            if (_this.editor.util.os.mobile) {\n              return _this.wrapper.css('top', scrollTop - topEdge + _this.opts.toolbarFloatOffset);\n            }\n          }\n        };\n      })(this));\n    }\n    this.editor.on('destroy', (function(_this) {\n      return function() {\n        return _this.buttons.length = 0;\n      };\n    })(this));\n    return $(document).on(\"mousedown.simditor-\" + this.editor.id, (function(_this) {\n      return function(e) {\n        return _this.list.find('li.menu-on').removeClass('menu-on');\n      };\n    })(this));\n  };\n\n  Toolbar.prototype._render = function() {\n    var k, len, name, ref;\n    this.buttons = [];\n    this.wrapper = $(this._tpl.wrapper).prependTo(this.editor.wrapper);\n    this.list = this.wrapper.find('ul');\n    ref = this.opts.toolbar;\n    for (k = 0, len = ref.length; k < len; k++) {\n      name = ref[k];\n      if (name === '|') {\n        $(this._tpl.separator).appendTo(this.list);\n        continue;\n      }\n      if (!this.constructor.buttons[name]) {\n        throw new Error(\"simditor: invalid toolbar button \" + name);\n        continue;\n      }\n      this.buttons.push(new this.constructor.buttons[name]({\n        editor: this.editor\n      }));\n    }\n    if (this.opts.toolbarHidden) {\n      return this.wrapper.hide();\n    }\n  };\n\n  Toolbar.prototype.findButton = function(name) {\n    var button;\n    button = this.list.find('.toolbar-item-' + name).data('button');\n    return button != null ? button : null;\n  };\n\n  Toolbar.addButton = function(btn) {\n    return this.buttons[btn.prototype.name] = btn;\n  };\n\n  Toolbar.buttons = {};\n\n  return Toolbar;\n\n})(SimpleModule);\n\nIndentation = (function(superClass) {\n  extend(Indentation, superClass);\n\n  function Indentation() {\n    return Indentation.__super__.constructor.apply(this, arguments);\n  }\n\n  Indentation.pluginName = 'Indentation';\n\n  Indentation.prototype.opts = {\n    tabIndent: true\n  };\n\n  Indentation.prototype._init = function() {\n    this.editor = this._module;\n    return this.editor.keystroke.add('tab', '*', (function(_this) {\n      return function(e) {\n        var codeButton;\n        codeButton = _this.editor.toolbar.findButton('code');\n        if (!(_this.opts.tabIndent || (codeButton && codeButton.active))) {\n          return;\n        }\n        return _this.indent(e.shiftKey);\n      };\n    })(this));\n  };\n\n  Indentation.prototype.indent = function(isBackward) {\n    var $blockNodes, $endNodes, $startNodes, nodes, result;\n    $startNodes = this.editor.selection.startNodes();\n    $endNodes = this.editor.selection.endNodes();\n    $blockNodes = this.editor.selection.blockNodes();\n    nodes = [];\n    $blockNodes = $blockNodes.each(function(i, node) {\n      var include, j, k, len, n;\n      include = true;\n      for (j = k = 0, len = nodes.length; k < len; j = ++k) {\n        n = nodes[j];\n        if ($.contains(node, n)) {\n          include = false;\n          break;\n        } else if ($.contains(n, node)) {\n          nodes.splice(j, 1, node);\n          include = false;\n          break;\n        }\n      }\n      if (include) {\n        return nodes.push(node);\n      }\n    });\n    $blockNodes = $(nodes);\n    result = false;\n    $blockNodes.each((function(_this) {\n      return function(i, blockEl) {\n        var r;\n        r = isBackward ? _this.outdentBlock(blockEl) : _this.indentBlock(blockEl);\n        if (r) {\n          return result = r;\n        }\n      };\n    })(this));\n    return result;\n  };\n\n  Indentation.prototype.indentBlock = function(blockEl) {\n    var $blockEl, $childList, $nextTd, $nextTr, $parentLi, $pre, $td, $tr, marginLeft, tagName;\n    $blockEl = $(blockEl);\n    if (!$blockEl.length) {\n      return;\n    }\n    if ($blockEl.is('pre')) {\n      $pre = this.editor.selection.containerNode();\n      if (!($pre.is($blockEl) || $pre.closest('pre').is($blockEl))) {\n        return;\n      }\n      this.indentText(this.editor.selection.range());\n    } else if ($blockEl.is('li')) {\n      $parentLi = $blockEl.prev('li');\n      if ($parentLi.length < 1) {\n        return;\n      }\n      this.editor.selection.save();\n      tagName = $blockEl.parent()[0].tagName;\n      $childList = $parentLi.children('ul, ol');\n      if ($childList.length > 0) {\n        $childList.append($blockEl);\n      } else {\n        $('<' + tagName + '/>').append($blockEl).appendTo($parentLi);\n      }\n      this.editor.selection.restore();\n    } else if ($blockEl.is('p, h1, h2, h3, h4')) {\n      marginLeft = parseInt($blockEl.css('margin-left')) || 0;\n      marginLeft = (Math.round(marginLeft / this.opts.indentWidth) + 1) * this.opts.indentWidth;\n      $blockEl.css('margin-left', marginLeft);\n    } else if ($blockEl.is('table') || $blockEl.is('.simditor-table')) {\n      $td = this.editor.selection.containerNode().closest('td, th');\n      $nextTd = $td.next('td, th');\n      if (!($nextTd.length > 0)) {\n        $tr = $td.parent('tr');\n        $nextTr = $tr.next('tr');\n        if ($nextTr.length < 1 && $tr.parent().is('thead')) {\n          $nextTr = $tr.parent('thead').next('tbody').find('tr:first');\n        }\n        $nextTd = $nextTr.find('td:first, th:first');\n      }\n      if (!($td.length > 0 && $nextTd.length > 0)) {\n        return;\n      }\n      this.editor.selection.setRangeAtEndOf($nextTd);\n    } else {\n      return false;\n    }\n    return true;\n  };\n\n  Indentation.prototype.indentText = function(range) {\n    var text, textNode;\n    text = range.toString().replace(/^(?=.+)/mg, '\\u00A0\\u00A0');\n    textNode = document.createTextNode(text || '\\u00A0\\u00A0');\n    range.deleteContents();\n    range.insertNode(textNode);\n    if (text) {\n      range.selectNode(textNode);\n      return this.editor.selection.range(range);\n    } else {\n      return this.editor.selection.setRangeAfter(textNode);\n    }\n  };\n\n  Indentation.prototype.outdentBlock = function(blockEl) {\n    var $blockEl, $parent, $parentLi, $pre, $prevTd, $prevTr, $td, $tr, marginLeft, range;\n    $blockEl = $(blockEl);\n    if (!($blockEl && $blockEl.length > 0)) {\n      return;\n    }\n    if ($blockEl.is('pre')) {\n      $pre = this.editor.selection.containerNode();\n      if (!($pre.is($blockEl) || $pre.closest('pre').is($blockEl))) {\n        return;\n      }\n      this.outdentText(range);\n    } else if ($blockEl.is('li')) {\n      $parent = $blockEl.parent();\n      $parentLi = $parent.parent('li');\n      this.editor.selection.save();\n      if ($parentLi.length < 1) {\n        range = document.createRange();\n        range.setStartBefore($parent[0]);\n        range.setEndBefore($blockEl[0]);\n        $parent.before(range.extractContents());\n        $('<p/>').insertBefore($parent).after($blockEl.children('ul, ol')).append($blockEl.contents());\n        $blockEl.remove();\n      } else {\n        if ($blockEl.next('li').length > 0) {\n          $('<' + $parent[0].tagName + '/>').append($blockEl.nextAll('li')).appendTo($blockEl);\n        }\n        $blockEl.insertAfter($parentLi);\n        if ($parent.children('li').length < 1) {\n          $parent.remove();\n        }\n      }\n      this.editor.selection.restore();\n    } else if ($blockEl.is('p, h1, h2, h3, h4')) {\n      marginLeft = parseInt($blockEl.css('margin-left')) || 0;\n      marginLeft = Math.max(Math.round(marginLeft / this.opts.indentWidth) - 1, 0) * this.opts.indentWidth;\n      $blockEl.css('margin-left', marginLeft === 0 ? '' : marginLeft);\n    } else if ($blockEl.is('table') || $blockEl.is('.simditor-table')) {\n      $td = this.editor.selection.containerNode().closest('td, th');\n      $prevTd = $td.prev('td, th');\n      if (!($prevTd.length > 0)) {\n        $tr = $td.parent('tr');\n        $prevTr = $tr.prev('tr');\n        if ($prevTr.length < 1 && $tr.parent().is('tbody')) {\n          $prevTr = $tr.parent('tbody').prev('thead').find('tr:first');\n        }\n        $prevTd = $prevTr.find('td:last, th:last');\n      }\n      if (!($td.length > 0 && $prevTd.length > 0)) {\n        return;\n      }\n      this.editor.selection.setRangeAtEndOf($prevTd);\n    } else {\n      return false;\n    }\n    return true;\n  };\n\n  Indentation.prototype.outdentText = function(range) {};\n\n  return Indentation;\n\n})(SimpleModule);\n\nClipboard = (function(superClass) {\n  extend(Clipboard, superClass);\n\n  function Clipboard() {\n    return Clipboard.__super__.constructor.apply(this, arguments);\n  }\n\n  Clipboard.pluginName = 'Clipboard';\n\n  Clipboard.prototype.opts = {\n    pasteImage: false,\n    cleanPaste: false\n  };\n\n  Clipboard.prototype._init = function() {\n    this.editor = this._module;\n    if (this.opts.pasteImage && typeof this.opts.pasteImage !== 'string') {\n      this.opts.pasteImage = 'inline';\n    }\n    return this.editor.body.on('paste', (function(_this) {\n      return function(e) {\n        var pasteBinAnchor, range;\n        if (_this.pasting || _this._pasteBin) {\n          return;\n        }\n        if (_this.editor.triggerHandler(e) === false) {\n          return false;\n        }\n        range = _this.editor.selection.deleteRangeContents();\n        if (_this.editor.body.html()) {\n          if (!range.collapsed) {\n            range.collapse(true);\n          }\n        } else {\n          _this.editor.formatter.format();\n          _this.editor.selection.setRangeAtStartOf(_this.editor.body.find('p:first'));\n          range = _this.editor.selection._range;\n        }\n        if (_this._processPasteByClipboardApi(e)) {\n          return false;\n        }\n        pasteBinAnchor = $('<span>');\n        range.insertNode(pasteBinAnchor[0]);\n        _this._createPasteBin(pasteBinAnchor);\n        pasteBinAnchor.remove();\n        range.collapse(true);\n        _this.editor.selection.range(range);\n        _this.editor.inputManager.throttledValueChanged.clear();\n        _this.editor.inputManager.throttledSelectionChanged.clear();\n        _this.editor.undoManager.throttledPushState.clear();\n        _this.editor.selection.reset();\n        _this.editor.undoManager.resetCaretPosition();\n        _this.pasting = true;\n        return _this._getPasteContent(function(pasteContent) {\n          _this._processPasteContent(pasteContent);\n          _this._pasteInBlockEl = null;\n          _this._pastePlainText = null;\n          return _this.pasting = false;\n        });\n      };\n    })(this));\n  };\n\n  Clipboard.prototype._processPasteByClipboardApi = function(e) {\n    var imageFile, pasteItem, ref, uploadOpt;\n    if (this.editor.util.browser.edge) {\n      return;\n    }\n    if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.items && e.originalEvent.clipboardData.items.length > 0) {\n      pasteItem = e.originalEvent.clipboardData.items[0];\n      if (/^image\\//.test(pasteItem.type)) {\n        imageFile = pasteItem.getAsFile();\n        if (!((imageFile != null) && this.opts.pasteImage)) {\n          return;\n        }\n        if (!imageFile.name) {\n          imageFile.name = \"Clipboard Image.png\";\n        }\n        if (this.editor.triggerHandler('pasting', [imageFile]) === false) {\n          return;\n        }\n        uploadOpt = {};\n        uploadOpt[this.opts.pasteImage] = true;\n        if ((ref = this.editor.uploader) != null) {\n          ref.upload(imageFile, uploadOpt);\n        }\n        return true;\n      }\n    }\n  };\n\n  Clipboard.prototype._createPasteBin = function(anchorNode) {\n    var anchorOffset, editorOffset;\n    anchorOffset = anchorNode.offset();\n    editorOffset = this.editor.el.offset();\n    return this._pasteBin = $('<div contenteditable=\"true\" />').addClass('simditor-paste-bin').attr('tabIndex', '-1').css({\n      top: anchorOffset.top - editorOffset.top,\n      left: anchorOffset.left - editorOffset.left\n    }).appendTo(this.editor.el);\n  };\n\n  Clipboard.prototype._getPasteContent = function(callback) {\n    var state;\n    state = {\n      html: this.editor.body.html(),\n      caret: this.editor.undoManager.caretPosition()\n    };\n    this._pasteBin.focus();\n    return setTimeout((function(_this) {\n      return function() {\n        var pasteContent;\n        _this.editor.hidePopover();\n        _this.editor.body.get(0).innerHTML = DOMPurify ? DOMPurify.sanitize(state.html) : state.html;\n        _this.editor.undoManager.caretPosition(state.caret);\n        _this.editor.body.focus();\n        _this.editor.selection.reset();\n        _this.editor.selection.range();\n        _this._pasteInBlockEl = _this.editor.selection.blockNodes().last();\n        _this._pastePlainText = _this.opts.cleanPaste || _this._pasteInBlockEl.is('pre, table');\n        if (_this._pastePlainText) {\n          pasteContent = _this.editor.formatter.clearHtml(_this._pasteBin.html(), true);\n        } else {\n          pasteContent = $('<div/>').append(_this._pasteBin.contents());\n          pasteContent.find('style').remove();\n          pasteContent.find('table colgroup').remove();\n          _this._cleanPasteFontSize(pasteContent);\n          _this.editor.formatter.format(pasteContent);\n          _this.editor.formatter.decorate(pasteContent);\n          _this.editor.formatter.beautify(pasteContent.children());\n          pasteContent = pasteContent.contents();\n        }\n        _this._pasteBin.remove();\n        _this._pasteBin = null;\n        return callback(pasteContent);\n      };\n    })(this), 0);\n  };\n\n  Clipboard.prototype._processPasteContent = function(pasteContent) {\n    var $blockEl, $img, blob, children, dataURLtoBlob, img, insertPosition, k, l, lastLine, len, len1, len2, len3, len4, line, lines, m, node, o, q, ref, ref1, ref2, uploadOpt, uploader;\n    if (this.editor.triggerHandler('pasting', [pasteContent]) === false) {\n      return;\n    }\n    $blockEl = this._pasteInBlockEl;\n    if (!pasteContent) {\n      return;\n    }\n    if (this._pastePlainText) {\n      if ($blockEl.is('table')) {\n        lines = pasteContent.split('\\n');\n        lastLine = lines.pop();\n        for (k = 0, len = lines.length; k < len; k++) {\n          line = lines[k];\n          this.editor.selection.insertNode(document.createTextNode(line));\n          this.editor.selection.insertNode($('<br/>'));\n        }\n        this.editor.selection.insertNode(document.createTextNode(lastLine));\n      } else {\n        pasteContent = $('<div/>').text(pasteContent);\n        ref = pasteContent.contents();\n        for (l = 0, len1 = ref.length; l < len1; l++) {\n          node = ref[l];\n          this.editor.selection.insertNode($(node)[0]);\n        }\n      }\n    } else if ($blockEl.is(this.editor.body)) {\n      for (m = 0, len2 = pasteContent.length; m < len2; m++) {\n        node = pasteContent[m];\n        this.editor.selection.insertNode(node);\n      }\n    } else if (pasteContent.length < 1) {\n      return;\n    } else if (pasteContent.length === 1) {\n      if (pasteContent.is('p')) {\n        children = pasteContent.contents();\n        if ($blockEl.is('h1, h2, h3, h4, h5')) {\n          if (children.length) {\n            children.css('font-size', '');\n          }\n        }\n        if (children.length === 1 && children.is('img')) {\n          $img = children;\n          if (/^data:image/.test($img.attr('src'))) {\n            if (!this.opts.pasteImage) {\n              return;\n            }\n            blob = this.editor.util.dataURLtoBlob($img.attr(\"src\"));\n            blob.name = \"Clipboard Image.png\";\n            uploadOpt = {};\n            uploadOpt[this.opts.pasteImage] = true;\n            if ((ref1 = this.editor.uploader) != null) {\n              ref1.upload(blob, uploadOpt);\n            }\n            return;\n          } else if (new RegExp('^blob:' + location.origin + '/').test($img.attr('src'))) {\n            if (!this.opts.pasteImage) {\n              return;\n            }\n            uploadOpt = {};\n            uploadOpt[this.opts.pasteImage] = true;\n            dataURLtoBlob = this.editor.util.dataURLtoBlob;\n            uploader = this.editor.uploader;\n            img = new Image;\n            img.onload = function() {\n              var canvas;\n              canvas = document.createElement('canvas');\n              canvas.width = img.naturalWidth;\n              canvas.height = img.naturalHeight;\n              canvas.getContext('2d').drawImage(img, 0, 0);\n              blob = dataURLtoBlob(canvas.toDataURL('image/png'));\n              blob.name = 'Clipboard Image.png';\n              if (uploader !== null) {\n                uploader.upload(blob, uploadOpt);\n              }\n            };\n            img.src = $img.attr('src');\n            return;\n          } else if ($img.is('img[src^=\"webkit-fake-url://\"]')) {\n            return;\n          }\n        }\n        for (o = 0, len3 = children.length; o < len3; o++) {\n          node = children[o];\n          this.editor.selection.insertNode(node);\n        }\n      } else if ($blockEl.is('p') && this.editor.util.isEmptyNode($blockEl)) {\n        $blockEl.replaceWith(pasteContent);\n        this.editor.selection.setRangeAtEndOf(pasteContent);\n      } else if (pasteContent.is('ul, ol')) {\n        if (pasteContent.find('li').length === 1) {\n          pasteContent = $('<div/>').text(pasteContent.text());\n          ref2 = pasteContent.contents();\n          for (q = 0, len4 = ref2.length; q < len4; q++) {\n            node = ref2[q];\n            this.editor.selection.insertNode($(node)[0]);\n          }\n        } else if ($blockEl.is('li')) {\n          $blockEl.parent().after(pasteContent);\n          this.editor.selection.setRangeAtEndOf(pasteContent);\n        } else {\n          $blockEl.after(pasteContent);\n          this.editor.selection.setRangeAtEndOf(pasteContent);\n        }\n      } else {\n        $blockEl.after(pasteContent);\n        this.editor.selection.setRangeAtEndOf(pasteContent);\n      }\n    } else {\n      if ($blockEl.is('li')) {\n        $blockEl = $blockEl.parent();\n      }\n      if (this.editor.selection.rangeAtStartOf($blockEl)) {\n        insertPosition = 'before';\n      } else if (this.editor.selection.rangeAtEndOf($blockEl)) {\n        insertPosition = 'after';\n      } else {\n        this.editor.selection.breakBlockEl($blockEl);\n        insertPosition = 'before';\n      }\n      $blockEl[insertPosition](pasteContent);\n      this.editor.selection.setRangeAtEndOf(pasteContent.last());\n    }\n    return this.editor.inputManager.throttledValueChanged();\n  };\n\n  Clipboard.prototype._cleanPasteFontSize = function(node) {\n    var $node, sizeMap;\n    $node = $(node);\n    if (!($node.length > 0)) {\n      return;\n    }\n    sizeMap = ['1.5em', '1.25em', '0.75em', '0.5em'];\n    return $node.find('[style*=\"font-size\"]').map(function(i, el) {\n      var $el;\n      $el = $(el);\n      if ($.inArray($el.css('font-size'), sizeMap) < 0) {\n        return $el.css('font-size', '');\n      }\n    });\n  };\n\n  return Clipboard;\n\n})(SimpleModule);\n\nSimditor = (function(superClass) {\n  extend(Simditor, superClass);\n\n  function Simditor() {\n    return Simditor.__super__.constructor.apply(this, arguments);\n  }\n\n  Simditor.connect(Util);\n\n  Simditor.connect(InputManager);\n\n  Simditor.connect(Selection);\n\n  Simditor.connect(UndoManager);\n\n  Simditor.connect(Keystroke);\n\n  Simditor.connect(Formatter);\n\n  Simditor.connect(Toolbar);\n\n  Simditor.connect(Indentation);\n\n  Simditor.connect(Clipboard);\n\n  Simditor.count = 0;\n\n  Simditor.prototype.opts = {\n    textarea: null,\n    placeholder: '',\n    defaultImage: 'images/image.png',\n    params: {},\n    upload: false,\n    indentWidth: 40\n  };\n\n  Simditor.prototype._init = function() {\n    var e, editor, uploadOpts;\n    this.textarea = $(this.opts.textarea);\n    this.opts.placeholder = this.opts.placeholder || this.textarea.attr('placeholder');\n    if (!this.textarea.length) {\n      throw new Error('simditor: param textarea is required.');\n      return;\n    }\n    editor = this.textarea.data('simditor');\n    if (editor != null) {\n      editor.destroy();\n    }\n    this.id = ++Simditor.count;\n    this._render();\n    if (simpleHotkeys) {\n      this.hotkeys = simpleHotkeys({\n        el: this.body\n      });\n    } else {\n      throw new Error('simditor: simple-hotkeys is required.');\n      return;\n    }\n    if (this.opts.upload && simpleUploader) {\n      uploadOpts = typeof this.opts.upload === 'object' ? this.opts.upload : {};\n      this.uploader = simpleUploader(uploadOpts);\n    }\n    this.on('initialized', (function(_this) {\n      return function() {\n        if (_this.opts.placeholder) {\n          _this.on('valuechanged', function() {\n            return _this._placeholder();\n          });\n        }\n        _this.setValue(_this.textarea.val().trim() || '');\n        if (_this.textarea.attr('autofocus')) {\n          return _this.focus();\n        }\n      };\n    })(this));\n    if (this.util.browser.mozilla) {\n      this.util.reflow();\n      try {\n        document.execCommand('enableObjectResizing', false, false);\n        return document.execCommand('enableInlineTableEditing', false, false);\n      } catch (_error) {\n        e = _error;\n      }\n    }\n  };\n\n  Simditor.prototype._tpl = \"<div class=\\\"simditor\\\">\\n  <div class=\\\"simditor-wrapper\\\">\\n    <div class=\\\"simditor-placeholder\\\"></div>\\n    <div class=\\\"simditor-body\\\" contenteditable=\\\"true\\\">\\n    </div>\\n  </div>\\n</div>\";\n\n  Simditor.prototype._render = function() {\n    var key, ref, results, val;\n    this.el = $(this._tpl).insertBefore(this.textarea);\n    this.wrapper = this.el.find('.simditor-wrapper');\n    this.body = this.wrapper.find('.simditor-body');\n    this.placeholderEl = this.wrapper.find('.simditor-placeholder').append(this.opts.placeholder);\n    this.el.data('simditor', this);\n    this.wrapper.append(this.textarea);\n    this.textarea.data('simditor', this).blur();\n    this.body.attr('tabindex', this.textarea.attr('tabindex'));\n    if (this.util.os.mac) {\n      this.el.addClass('simditor-mac');\n    } else if (this.util.os.linux) {\n      this.el.addClass('simditor-linux');\n    }\n    if (this.util.os.mobile) {\n      this.el.addClass('simditor-mobile');\n    }\n    if (this.opts.params) {\n      ref = this.opts.params;\n      results = [];\n      for (key in ref) {\n        val = ref[key];\n        results.push($('<input/>', {\n          type: 'hidden',\n          name: key,\n          value: val\n        }).insertAfter(this.textarea));\n      }\n      return results;\n    }\n  };\n\n  Simditor.prototype._placeholder = function() {\n    var children;\n    children = this.body.children();\n    if (children.length === 0 || (children.length === 1 && this.util.isEmptyNode(children) && parseInt(children.css('margin-left') || 0) < this.opts.indentWidth)) {\n      return this.placeholderEl.show();\n    } else {\n      return this.placeholderEl.hide();\n    }\n  };\n\n  Simditor.prototype.setValue = function(val) {\n    this.hidePopover();\n    this.textarea.val(val);\n    this.body.get(0).innerHTML = DOMPurify ? DOMPurify.sanitize(val) : val;\n    this.formatter.format();\n    this.formatter.decorate();\n    this.util.reflow(this.body);\n    this.inputManager.lastCaretPosition = null;\n    return this.trigger('valuechanged');\n  };\n\n  Simditor.prototype.getValue = function() {\n    return this.sync();\n  };\n\n  Simditor.prototype.sync = function() {\n    var children, cloneBody, emptyP, firstP, lastP, val;\n    cloneBody = this.body.clone();\n    this.formatter.undecorate(cloneBody);\n    this.formatter.format(cloneBody);\n    this.formatter.autolink(cloneBody);\n    children = cloneBody.children();\n    lastP = children.last('p');\n    firstP = children.first('p');\n    while (lastP.is('p') && this.util.isEmptyNode(lastP)) {\n      emptyP = lastP;\n      lastP = lastP.prev('p');\n      emptyP.remove();\n    }\n    while (firstP.is('p') && this.util.isEmptyNode(firstP)) {\n      emptyP = firstP;\n      firstP = lastP.next('p');\n      emptyP.remove();\n    }\n    cloneBody.find('img.uploading').remove();\n    val = $.trim(cloneBody.html());\n    this.textarea.val(val);\n    return val;\n  };\n\n  Simditor.prototype.focus = function() {\n    var $blockEl, range;\n    if (!(this.body.is(':visible') && this.body.is('[contenteditable]'))) {\n      this.el.find('textarea:visible').focus();\n      return;\n    }\n    if (this.inputManager.lastCaretPosition) {\n      this.undoManager.caretPosition(this.inputManager.lastCaretPosition);\n      return this.inputManager.lastCaretPosition = null;\n    } else {\n      $blockEl = this.body.children().last();\n      if (!$blockEl.is('p')) {\n        $blockEl = $('<p/>').append(this.util.phBr).appendTo(this.body);\n      }\n      range = document.createRange();\n      return this.selection.setRangeAtEndOf($blockEl, range);\n    }\n  };\n\n  Simditor.prototype.blur = function() {\n    if (this.body.is(':visible') && this.body.is('[contenteditable]')) {\n      return this.body.blur();\n    } else {\n      return this.body.find('textarea:visible').blur();\n    }\n  };\n\n  Simditor.prototype.hidePopover = function() {\n    return this.el.find('.simditor-popover').each(function(i, popover) {\n      popover = $(popover).data('popover');\n      if (popover.active) {\n        return popover.hide();\n      }\n    });\n  };\n\n  Simditor.prototype.destroy = function() {\n    this.triggerHandler('destroy');\n    this.textarea.closest('form').off('.simditor .simditor-' + this.id);\n    this.selection.clear();\n    this.inputManager.focused = false;\n    this.textarea.insertBefore(this.el).hide().val('').removeData('simditor');\n    this.el.remove();\n    $(document).off('.simditor-' + this.id);\n    $(window).off('.simditor-' + this.id);\n    return this.off();\n  };\n\n  return Simditor;\n\n})(SimpleModule);\n\nSimditor.i18n = {\n  'zh-CN': {\n    'blockquote': '引用',\n    'bold': '加粗文字',\n    'code': '插入代码',\n    'color': '文字颜色',\n    'coloredText': '彩色文字',\n    'hr': '分隔线',\n    'image': '插入图片',\n    'externalImage': '外链图片',\n    'uploadImage': '上传图片',\n    'uploadFailed': '上传失败了',\n    'uploadError': '上传出错了',\n    'imageUrl': '图片地址',\n    'imageSize': '图片尺寸',\n    'imageAlt': '图片描述',\n    'restoreImageSize': '还原图片尺寸',\n    'uploading': '正在上传',\n    'indent': '向右缩进',\n    'outdent': '向左缩进',\n    'italic': '斜体文字',\n    'link': '插入链接',\n    'linkText': '链接文字',\n    'linkUrl': '链接地址',\n    'linkTarget': '打开方式',\n    'openLinkInCurrentWindow': '在当前窗口中打开',\n    'openLinkInNewWindow': '在新窗口中打开',\n    'removeLink': '移除链接',\n    'ol': '有序列表',\n    'ul': '无序列表',\n    'strikethrough': '删除线文字',\n    'table': '表格',\n    'deleteRow': '删除行',\n    'insertRowAbove': '在上面插入行',\n    'insertRowBelow': '在下面插入行',\n    'deleteColumn': '删除列',\n    'insertColumnLeft': '在左边插入列',\n    'insertColumnRight': '在右边插入列',\n    'deleteTable': '删除表格',\n    'title': '标题',\n    'normalText': '普通文本',\n    'underline': '下划线文字',\n    'alignment': '水平对齐',\n    'alignCenter': '居中',\n    'alignLeft': '居左',\n    'alignRight': '居右',\n    'selectLanguage': '选择程序语言',\n    'fontScale': '字体大小',\n    'fontScaleXLarge': '超大字体',\n    'fontScaleLarge': '大号字体',\n    'fontScaleNormal': '正常大小',\n    'fontScaleSmall': '小号字体',\n    'fontScaleXSmall': '超小字体'\n  },\n  'en-US': {\n    'blockquote': 'Block Quote',\n    'bold': 'Bold',\n    'code': 'Code',\n    'color': 'Text Color',\n    'coloredText': 'Colored Text',\n    'hr': 'Horizontal Line',\n    'image': 'Insert Image',\n    'externalImage': 'External Image',\n    'uploadImage': 'Upload Image',\n    'uploadFailed': 'Upload failed',\n    'uploadError': 'Error occurs during upload',\n    'imageUrl': 'Url',\n    'imageSize': 'Size',\n    'imageAlt': 'Alt',\n    'restoreImageSize': 'Restore Origin Size',\n    'uploading': 'Uploading',\n    'indent': 'Indent',\n    'outdent': 'Outdent',\n    'italic': 'Italic',\n    'link': 'Insert Link',\n    'linkText': 'Text',\n    'linkUrl': 'Url',\n    'linkTarget': 'Target',\n    'openLinkInCurrentWindow': 'Open link in current window',\n    'openLinkInNewWindow': 'Open link in new window',\n    'removeLink': 'Remove Link',\n    'ol': 'Ordered List',\n    'ul': 'Unordered List',\n    'strikethrough': 'Strikethrough',\n    'table': 'Table',\n    'deleteRow': 'Delete Row',\n    'insertRowAbove': 'Insert Row Above',\n    'insertRowBelow': 'Insert Row Below',\n    'deleteColumn': 'Delete Column',\n    'insertColumnLeft': 'Insert Column Left',\n    'insertColumnRight': 'Insert Column Right',\n    'deleteTable': 'Delete Table',\n    'title': 'Title',\n    'normalText': 'Text',\n    'underline': 'Underline',\n    'alignment': 'Alignment',\n    'alignCenter': 'Align Center',\n    'alignLeft': 'Align Left',\n    'alignRight': 'Align Right',\n    'selectLanguage': 'Select Language',\n    'fontScale': 'Font Size',\n    'fontScaleXLarge': 'X Large Size',\n    'fontScaleLarge': 'Large Size',\n    'fontScaleNormal': 'Normal Size',\n    'fontScaleSmall': 'Small Size',\n    'fontScaleXSmall': 'X Small Size'\n  }\n};\n\nButton = (function(superClass) {\n  extend(Button, superClass);\n\n  Button.prototype._tpl = {\n    item: '<li><a tabindex=\"-1\" unselectable=\"on\" class=\"toolbar-item\" href=\"javascript:;\"><span></span></a></li>',\n    menuWrapper: '<div class=\"toolbar-menu\"></div>',\n    menuItem: '<li><a tabindex=\"-1\" unselectable=\"on\" class=\"menu-item\" href=\"javascript:;\"><span></span></a></li>',\n    separator: '<li><span class=\"separator\"></span></li>'\n  };\n\n  Button.prototype.name = '';\n\n  Button.prototype.icon = '';\n\n  Button.prototype.title = '';\n\n  Button.prototype.text = '';\n\n  Button.prototype.htmlTag = '';\n\n  Button.prototype.disableTag = '';\n\n  Button.prototype.menu = false;\n\n  Button.prototype.active = false;\n\n  Button.prototype.disabled = false;\n\n  Button.prototype.needFocus = true;\n\n  Button.prototype.shortcut = null;\n\n  function Button(opts) {\n    this.editor = opts.editor;\n    this.title = this._t(this.name);\n    Button.__super__.constructor.call(this, opts);\n  }\n\n  Button.prototype._init = function() {\n    var k, len, ref, tag;\n    this.render();\n    this.el.on('mousedown', (function(_this) {\n      return function(e) {\n        var exceed, noFocus, param;\n        e.preventDefault();\n        noFocus = _this.needFocus && !_this.editor.inputManager.focused;\n        if (_this.el.hasClass('disabled')) {\n          return false;\n        }\n        if (noFocus) {\n          _this.editor.focus();\n        }\n        if (_this.menu) {\n          _this.wrapper.toggleClass('menu-on').siblings('li').removeClass('menu-on');\n          if (_this.wrapper.is('.menu-on')) {\n            exceed = _this.menuWrapper.offset().left + _this.menuWrapper.outerWidth() + 5 - _this.editor.wrapper.offset().left - _this.editor.wrapper.outerWidth();\n            if (exceed > 0) {\n              _this.menuWrapper.css({\n                'left': 'auto',\n                'right': 0\n              });\n            }\n            _this.trigger('menuexpand');\n          }\n          return false;\n        }\n        param = _this.el.data('param');\n        _this.command(param);\n        return false;\n      };\n    })(this));\n    this.wrapper.on('click', 'a.menu-item', (function(_this) {\n      return function(e) {\n        var btn, noFocus, param;\n        e.preventDefault();\n        btn = $(e.currentTarget);\n        _this.wrapper.removeClass('menu-on');\n        noFocus = _this.needFocus && !_this.editor.inputManager.focused;\n        if (btn.hasClass('disabled') || noFocus) {\n          return false;\n        }\n        _this.editor.toolbar.wrapper.removeClass('menu-on');\n        param = btn.data('param');\n        _this.command(param);\n        return false;\n      };\n    })(this));\n    this.wrapper.on('mousedown', 'a.menu-item', function(e) {\n      return false;\n    });\n    this.editor.on('blur', (function(_this) {\n      return function() {\n        var editorActive;\n        editorActive = _this.editor.body.is(':visible') && _this.editor.body.is('[contenteditable]');\n        if (!(editorActive && !_this.editor.clipboard.pasting)) {\n          return;\n        }\n        _this.setActive(false);\n        return _this.setDisabled(false);\n      };\n    })(this));\n    if (this.shortcut != null) {\n      this.editor.hotkeys.add(this.shortcut, (function(_this) {\n        return function(e) {\n          _this.el.mousedown();\n          return false;\n        };\n      })(this));\n    }\n    ref = this.htmlTag.split(',');\n    for (k = 0, len = ref.length; k < len; k++) {\n      tag = ref[k];\n      tag = $.trim(tag);\n      if (tag && $.inArray(tag, this.editor.formatter._allowedTags) < 0) {\n        this.editor.formatter._allowedTags.push(tag);\n      }\n    }\n    return this.editor.on('selectionchanged', (function(_this) {\n      return function(e) {\n        if (_this.editor.inputManager.focused) {\n          return _this._status();\n        }\n      };\n    })(this));\n  };\n\n  Button.prototype.iconClassOf = function(icon) {\n    if (icon) {\n      return \"simditor-icon simditor-icon-\" + icon;\n    } else {\n      return '';\n    }\n  };\n\n  Button.prototype.setIcon = function(icon) {\n    return this.el.find('span').removeClass().addClass(this.iconClassOf(icon)).text(this.text);\n  };\n\n  Button.prototype.render = function() {\n    this.wrapper = $(this._tpl.item).appendTo(this.editor.toolbar.list);\n    this.el = this.wrapper.find('a.toolbar-item');\n    this.el.attr('title', this.title).addClass(\"toolbar-item-\" + this.name).data('button', this);\n    this.setIcon(this.icon);\n    if (!this.menu) {\n      return;\n    }\n    this.menuWrapper = $(this._tpl.menuWrapper).appendTo(this.wrapper);\n    this.menuWrapper.addClass(\"toolbar-menu-\" + this.name);\n    return this.renderMenu();\n  };\n\n  Button.prototype.renderMenu = function() {\n    var $menuBtnEl, $menuItemEl, k, len, menuItem, ref, ref1, results;\n    if (!$.isArray(this.menu)) {\n      return;\n    }\n    this.menuEl = $('<ul/>').appendTo(this.menuWrapper);\n    ref = this.menu;\n    results = [];\n    for (k = 0, len = ref.length; k < len; k++) {\n      menuItem = ref[k];\n      if (menuItem === '|') {\n        $(this._tpl.separator).appendTo(this.menuEl);\n        continue;\n      }\n      $menuItemEl = $(this._tpl.menuItem).appendTo(this.menuEl);\n      $menuBtnEl = $menuItemEl.find('a.menu-item').attr({\n        'title': (ref1 = menuItem.title) != null ? ref1 : menuItem.text,\n        'data-param': menuItem.param\n      }).addClass('menu-item-' + menuItem.name);\n      if (menuItem.icon) {\n        results.push($menuBtnEl.find('span').addClass(this.iconClassOf(menuItem.icon)));\n      } else {\n        results.push($menuBtnEl.find('span').text(menuItem.text));\n      }\n    }\n    return results;\n  };\n\n  Button.prototype.setActive = function(active) {\n    if (active === this.active) {\n      return;\n    }\n    this.active = active;\n    return this.el.toggleClass('active', this.active);\n  };\n\n  Button.prototype.setDisabled = function(disabled) {\n    if (disabled === this.disabled) {\n      return;\n    }\n    this.disabled = disabled;\n    return this.el.toggleClass('disabled', this.disabled);\n  };\n\n  Button.prototype._disableStatus = function() {\n    var disabled, endNodes, startNodes;\n    startNodes = this.editor.selection.startNodes();\n    endNodes = this.editor.selection.endNodes();\n    disabled = startNodes.filter(this.disableTag).length > 0 || endNodes.filter(this.disableTag).length > 0;\n    this.setDisabled(disabled);\n    if (this.disabled) {\n      this.setActive(false);\n    }\n    return this.disabled;\n  };\n\n  Button.prototype._activeStatus = function() {\n    var active, endNode, endNodes, startNode, startNodes;\n    startNodes = this.editor.selection.startNodes();\n    endNodes = this.editor.selection.endNodes();\n    startNode = startNodes.filter(this.htmlTag);\n    endNode = endNodes.filter(this.htmlTag);\n    active = startNode.length > 0 && endNode.length > 0 && startNode.is(endNode);\n    this.node = active ? startNode : null;\n    this.setActive(active);\n    return this.active;\n  };\n\n  Button.prototype._status = function() {\n    this._disableStatus();\n    if (this.disabled) {\n      return;\n    }\n    return this._activeStatus();\n  };\n\n  Button.prototype.command = function(param) {};\n\n  Button.prototype._t = function() {\n    var args, ref, result;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    result = Button.__super__._t.apply(this, args);\n    if (!result) {\n      result = (ref = this.editor)._t.apply(ref, args);\n    }\n    return result;\n  };\n\n  return Button;\n\n})(SimpleModule);\n\nSimditor.Button = Button;\n\nPopover = (function(superClass) {\n  extend(Popover, superClass);\n\n  Popover.prototype.offset = {\n    top: 4,\n    left: 0\n  };\n\n  Popover.prototype.target = null;\n\n  Popover.prototype.active = false;\n\n  function Popover(opts) {\n    this.button = opts.button;\n    this.editor = opts.button.editor;\n    Popover.__super__.constructor.call(this, opts);\n  }\n\n  Popover.prototype._init = function() {\n    this.el = $('<div class=\"simditor-popover\"></div>').appendTo(this.editor.el).data('popover', this);\n    this.render();\n    this.el.on('mouseenter', (function(_this) {\n      return function(e) {\n        return _this.el.addClass('hover');\n      };\n    })(this));\n    return this.el.on('mouseleave', (function(_this) {\n      return function(e) {\n        return _this.el.removeClass('hover');\n      };\n    })(this));\n  };\n\n  Popover.prototype.render = function() {};\n\n  Popover.prototype._initLabelWidth = function() {\n    var $fields;\n    $fields = this.el.find('.settings-field');\n    if (!($fields.length > 0)) {\n      return;\n    }\n    this._labelWidth = 0;\n    $fields.each((function(_this) {\n      return function(i, field) {\n        var $field, $label;\n        $field = $(field);\n        $label = $field.find('label');\n        if (!($label.length > 0)) {\n          return;\n        }\n        return _this._labelWidth = Math.max(_this._labelWidth, $label.width());\n      };\n    })(this));\n    return $fields.find('label').width(this._labelWidth);\n  };\n\n  Popover.prototype.show = function($target, position) {\n    if (position == null) {\n      position = 'bottom';\n    }\n    if ($target == null) {\n      return;\n    }\n    this.el.siblings('.simditor-popover').each(function(i, popover) {\n      popover = $(popover).data('popover');\n      if (popover && popover.active) {\n        return popover.hide();\n      }\n    });\n    if (this.active && this.target) {\n      this.target.removeClass('selected');\n    }\n    this.target = $target.addClass('selected');\n    if (this.active) {\n      this.refresh(position);\n      return this.trigger('popovershow');\n    } else {\n      this.active = true;\n      this.el.css({\n        left: -9999\n      }).show();\n      if (!this._labelWidth) {\n        this._initLabelWidth();\n      }\n      this.editor.util.reflow();\n      this.refresh(position);\n      return this.trigger('popovershow');\n    }\n  };\n\n  Popover.prototype.hide = function() {\n    if (!this.active) {\n      return;\n    }\n    if (this.target) {\n      this.target.removeClass('selected');\n    }\n    this.target = null;\n    this.active = false;\n    this.el.hide();\n    return this.trigger('popoverhide');\n  };\n\n  Popover.prototype.refresh = function(position) {\n    var editorOffset, left, maxLeft, targetH, targetOffset, top;\n    if (position == null) {\n      position = 'bottom';\n    }\n    if (!this.active) {\n      return;\n    }\n    editorOffset = this.editor.el.offset();\n    targetOffset = this.target.offset();\n    targetH = this.target.outerHeight();\n    if (position === 'bottom') {\n      top = targetOffset.top - editorOffset.top + targetH;\n    } else if (position === 'top') {\n      top = targetOffset.top - editorOffset.top - this.el.height();\n    }\n    maxLeft = this.editor.wrapper.width() - this.el.outerWidth() - 10;\n    left = Math.min(targetOffset.left - editorOffset.left, maxLeft);\n    return this.el.css({\n      top: top + this.offset.top,\n      left: left + this.offset.left\n    });\n  };\n\n  Popover.prototype.destroy = function() {\n    this.target = null;\n    this.active = false;\n    this.editor.off('.linkpopover');\n    return this.el.remove();\n  };\n\n  Popover.prototype._t = function() {\n    var args, ref, result;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    result = Popover.__super__._t.apply(this, args);\n    if (!result) {\n      result = (ref = this.button)._t.apply(ref, args);\n    }\n    return result;\n  };\n\n  return Popover;\n\n})(SimpleModule);\n\nSimditor.Popover = Popover;\n\nTitleButton = (function(superClass) {\n  extend(TitleButton, superClass);\n\n  function TitleButton() {\n    return TitleButton.__super__.constructor.apply(this, arguments);\n  }\n\n  TitleButton.prototype.name = 'title';\n\n  TitleButton.prototype.htmlTag = 'h1, h2, h3, h4, h5';\n\n  TitleButton.prototype.disableTag = 'pre, table';\n\n  TitleButton.prototype._init = function() {\n    this.menu = [\n      {\n        name: 'normal',\n        text: this._t('normalText'),\n        param: 'p'\n      }, '|', {\n        name: 'h1',\n        text: this._t('title') + ' 1',\n        param: 'h1'\n      }, {\n        name: 'h2',\n        text: this._t('title') + ' 2',\n        param: 'h2'\n      }, {\n        name: 'h3',\n        text: this._t('title') + ' 3',\n        param: 'h3'\n      }, {\n        name: 'h4',\n        text: this._t('title') + ' 4',\n        param: 'h4'\n      }, {\n        name: 'h5',\n        text: this._t('title') + ' 5',\n        param: 'h5'\n      }\n    ];\n    return TitleButton.__super__._init.call(this);\n  };\n\n  TitleButton.prototype.setActive = function(active, param) {\n    TitleButton.__super__.setActive.call(this, active);\n    if (active) {\n      param || (param = this.node[0].tagName.toLowerCase());\n    }\n    this.el.removeClass('active-p active-h1 active-h2 active-h3 active-h4 active-h5');\n    if (active) {\n      return this.el.addClass('active active-' + param);\n    }\n  };\n\n  TitleButton.prototype.command = function(param) {\n    var $rootNodes;\n    $rootNodes = this.editor.selection.rootNodes();\n    this.editor.selection.save();\n    $rootNodes.each((function(_this) {\n      return function(i, node) {\n        var $node;\n        $node = $(node);\n        if ($node.is('blockquote') || $node.is(param) || $node.is(_this.disableTag) || _this.editor.util.isDecoratedNode($node)) {\n          return;\n        }\n        return $('<' + param + '/>').append($node.contents()).replaceAll($node);\n      };\n    })(this));\n    this.editor.selection.restore();\n    return this.editor.trigger('valuechanged');\n  };\n\n  return TitleButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(TitleButton);\n\nFontScaleButton = (function(superClass) {\n  extend(FontScaleButton, superClass);\n\n  function FontScaleButton() {\n    return FontScaleButton.__super__.constructor.apply(this, arguments);\n  }\n\n  FontScaleButton.prototype.name = 'fontScale';\n\n  FontScaleButton.prototype.icon = 'font';\n\n  FontScaleButton.prototype.htmlTag = 'span';\n\n  FontScaleButton.prototype.disableTag = 'pre, h1, h2, h3, h4, h5';\n\n  FontScaleButton.prototype.sizeMap = {\n    'x-large': '1.5em',\n    'large': '1.25em',\n    'small': '.75em',\n    'x-small': '.5em'\n  };\n\n  FontScaleButton.prototype._init = function() {\n    this.menu = [\n      {\n        name: '150%',\n        text: this._t('fontScaleXLarge'),\n        param: '5'\n      }, {\n        name: '125%',\n        text: this._t('fontScaleLarge'),\n        param: '4'\n      }, {\n        name: '100%',\n        text: this._t('fontScaleNormal'),\n        param: '3'\n      }, {\n        name: '75%',\n        text: this._t('fontScaleSmall'),\n        param: '2'\n      }, {\n        name: '50%',\n        text: this._t('fontScaleXSmall'),\n        param: '1'\n      }\n    ];\n    return FontScaleButton.__super__._init.call(this);\n  };\n\n  FontScaleButton.prototype._activeStatus = function() {\n    var active, endNode, endNodes, range, startNode, startNodes;\n    range = this.editor.selection.range();\n    startNodes = this.editor.selection.startNodes();\n    endNodes = this.editor.selection.endNodes();\n    startNode = startNodes.filter('span[style*=\"font-size\"]');\n    endNode = endNodes.filter('span[style*=\"font-size\"]');\n    active = startNodes.length > 0 && endNodes.length > 0 && startNode.is(endNode);\n    this.setActive(active);\n    return this.active;\n  };\n\n  FontScaleButton.prototype.command = function(param) {\n    var $scales, containerNode, range;\n    range = this.editor.selection.range();\n    if (range.collapsed) {\n      return;\n    }\n    this.editor.selection.range(range);\n    document.execCommand('styleWithCSS', false, true);\n    document.execCommand('fontSize', false, param);\n    document.execCommand('styleWithCSS', false, false);\n    this.editor.selection.reset();\n    this.editor.selection.range();\n    containerNode = this.editor.selection.containerNode();\n    if (containerNode[0].nodeType === Node.TEXT_NODE) {\n      $scales = containerNode.closest('span[style*=\"font-size\"]');\n    } else {\n      $scales = containerNode.find('span[style*=\"font-size\"]');\n    }\n    $scales.each((function(_this) {\n      return function(i, n) {\n        var $span, size;\n        $span = $(n);\n        size = n.style.fontSize;\n        if (/large|x-large|small|x-small/.test(size)) {\n          return $span.css('fontSize', _this.sizeMap[size]);\n        } else if (size === 'medium') {\n          if ($span[0].style.length > 1) {\n            return $span.css('fontSize', '');\n          } else {\n            return $span.replaceWith($span.contents());\n          }\n        }\n      };\n    })(this));\n    return this.editor.trigger('valuechanged');\n  };\n\n  return FontScaleButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(FontScaleButton);\n\nBoldButton = (function(superClass) {\n  extend(BoldButton, superClass);\n\n  function BoldButton() {\n    return BoldButton.__super__.constructor.apply(this, arguments);\n  }\n\n  BoldButton.prototype.name = 'bold';\n\n  BoldButton.prototype.icon = 'bold';\n\n  BoldButton.prototype.htmlTag = 'b, strong';\n\n  BoldButton.prototype.disableTag = 'pre';\n\n  BoldButton.prototype.shortcut = 'cmd+b';\n\n  BoldButton.prototype._init = function() {\n    if (this.editor.util.os.mac) {\n      this.title = this.title + ' ( Cmd + b )';\n    } else {\n      this.title = this.title + ' ( Ctrl + b )';\n      this.shortcut = 'ctrl+b';\n    }\n    return BoldButton.__super__._init.call(this);\n  };\n\n  BoldButton.prototype._activeStatus = function() {\n    var active;\n    active = document.queryCommandState('bold') === true;\n    this.setActive(active);\n    return this.active;\n  };\n\n  BoldButton.prototype.command = function() {\n    document.execCommand('bold');\n    if (!this.editor.util.support.oninput) {\n      this.editor.trigger('valuechanged');\n    }\n    return $(document).trigger('selectionchange');\n  };\n\n  return BoldButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(BoldButton);\n\nItalicButton = (function(superClass) {\n  extend(ItalicButton, superClass);\n\n  function ItalicButton() {\n    return ItalicButton.__super__.constructor.apply(this, arguments);\n  }\n\n  ItalicButton.prototype.name = 'italic';\n\n  ItalicButton.prototype.icon = 'italic';\n\n  ItalicButton.prototype.htmlTag = 'i';\n\n  ItalicButton.prototype.disableTag = 'pre';\n\n  ItalicButton.prototype.shortcut = 'cmd+i';\n\n  ItalicButton.prototype._init = function() {\n    if (this.editor.util.os.mac) {\n      this.title = this.title + \" ( Cmd + i )\";\n    } else {\n      this.title = this.title + \" ( Ctrl + i )\";\n      this.shortcut = 'ctrl+i';\n    }\n    return ItalicButton.__super__._init.call(this);\n  };\n\n  ItalicButton.prototype._activeStatus = function() {\n    var active;\n    active = document.queryCommandState('italic') === true;\n    this.setActive(active);\n    return this.active;\n  };\n\n  ItalicButton.prototype.command = function() {\n    document.execCommand('italic');\n    if (!this.editor.util.support.oninput) {\n      this.editor.trigger('valuechanged');\n    }\n    return $(document).trigger('selectionchange');\n  };\n\n  return ItalicButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(ItalicButton);\n\nUnderlineButton = (function(superClass) {\n  extend(UnderlineButton, superClass);\n\n  function UnderlineButton() {\n    return UnderlineButton.__super__.constructor.apply(this, arguments);\n  }\n\n  UnderlineButton.prototype.name = 'underline';\n\n  UnderlineButton.prototype.icon = 'underline';\n\n  UnderlineButton.prototype.htmlTag = 'u';\n\n  UnderlineButton.prototype.disableTag = 'pre';\n\n  UnderlineButton.prototype.shortcut = 'cmd+u';\n\n  UnderlineButton.prototype.render = function() {\n    if (this.editor.util.os.mac) {\n      this.title = this.title + ' ( Cmd + u )';\n    } else {\n      this.title = this.title + ' ( Ctrl + u )';\n      this.shortcut = 'ctrl+u';\n    }\n    return UnderlineButton.__super__.render.call(this);\n  };\n\n  UnderlineButton.prototype._activeStatus = function() {\n    var active;\n    active = document.queryCommandState('underline') === true;\n    this.setActive(active);\n    return this.active;\n  };\n\n  UnderlineButton.prototype.command = function() {\n    document.execCommand('underline');\n    if (!this.editor.util.support.oninput) {\n      this.editor.trigger('valuechanged');\n    }\n    return $(document).trigger('selectionchange');\n  };\n\n  return UnderlineButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(UnderlineButton);\n\nColorButton = (function(superClass) {\n  extend(ColorButton, superClass);\n\n  function ColorButton() {\n    return ColorButton.__super__.constructor.apply(this, arguments);\n  }\n\n  ColorButton.prototype.name = 'color';\n\n  ColorButton.prototype.icon = 'tint';\n\n  ColorButton.prototype.disableTag = 'pre';\n\n  ColorButton.prototype.menu = true;\n\n  ColorButton.prototype.render = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    return ColorButton.__super__.render.apply(this, args);\n  };\n\n  ColorButton.prototype.renderMenu = function() {\n    $('<ul class=\"color-list\">\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-1\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-2\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-3\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-4\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-5\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-6\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-7\"></a></li>\\n  <li><a href=\"javascript:;\" class=\"font-color font-color-default\"></a></li>\\n</ul>').appendTo(this.menuWrapper);\n    this.menuWrapper.on('mousedown', '.color-list', function(e) {\n      return false;\n    });\n    return this.menuWrapper.on('click', '.font-color', (function(_this) {\n      return function(e) {\n        var $link, $p, hex, range, rgb, textNode;\n        _this.wrapper.removeClass('menu-on');\n        $link = $(e.currentTarget);\n        if ($link.hasClass('font-color-default')) {\n          $p = _this.editor.body.find('p, li');\n          if (!($p.length > 0)) {\n            return;\n          }\n          rgb = window.getComputedStyle($p[0], null).getPropertyValue('color');\n          hex = _this._convertRgbToHex(rgb);\n        } else {\n          rgb = window.getComputedStyle($link[0], null).getPropertyValue('background-color');\n          hex = _this._convertRgbToHex(rgb);\n        }\n        if (!hex) {\n          return;\n        }\n        range = _this.editor.selection.range();\n        if (!$link.hasClass('font-color-default') && range.collapsed) {\n          textNode = document.createTextNode(_this._t('coloredText'));\n          range.insertNode(textNode);\n          range.selectNodeContents(textNode);\n        }\n        _this.editor.selection.range(range);\n        document.execCommand('styleWithCSS', false, true);\n        document.execCommand('foreColor', false, hex);\n        document.execCommand('styleWithCSS', false, false);\n        if (!_this.editor.util.support.oninput) {\n          return _this.editor.trigger('valuechanged');\n        }\n      };\n    })(this));\n  };\n\n  ColorButton.prototype._convertRgbToHex = function(rgb) {\n    var match, re, rgbToHex;\n    re = /rgb\\((\\d+),\\s?(\\d+),\\s?(\\d+)\\)/g;\n    match = re.exec(rgb);\n    if (!match) {\n      return '';\n    }\n    rgbToHex = function(r, g, b) {\n      var componentToHex;\n      componentToHex = function(c) {\n        var hex;\n        hex = c.toString(16);\n        if (hex.length === 1) {\n          return '0' + hex;\n        } else {\n          return hex;\n        }\n      };\n      return \"#\" + componentToHex(r) + componentToHex(g) + componentToHex(b);\n    };\n    return rgbToHex(match[1] * 1, match[2] * 1, match[3] * 1);\n  };\n\n  return ColorButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(ColorButton);\n\nListButton = (function(superClass) {\n  extend(ListButton, superClass);\n\n  function ListButton() {\n    return ListButton.__super__.constructor.apply(this, arguments);\n  }\n\n  ListButton.prototype.type = '';\n\n  ListButton.prototype.disableTag = 'pre, table';\n\n  ListButton.prototype.command = function(param) {\n    var $list, $rootNodes, anotherType;\n    $rootNodes = this.editor.selection.blockNodes();\n    anotherType = this.type === 'ul' ? 'ol' : 'ul';\n    this.editor.selection.save();\n    $list = null;\n    $rootNodes.each((function(_this) {\n      return function(i, node) {\n        var $node;\n        $node = $(node);\n        if ($node.is('blockquote, li') || $node.is(_this.disableTag) || _this.editor.util.isDecoratedNode($node) || !$.contains(document, node)) {\n          return;\n        }\n        if ($node.is(_this.type)) {\n          $node.children('li').each(function(i, li) {\n            var $childList, $li;\n            $li = $(li);\n            $childList = $li.children('ul, ol').insertAfter($node);\n            return $('<p/>').append($(li).html() || _this.editor.util.phBr).insertBefore($node);\n          });\n          return $node.remove();\n        } else if ($node.is(anotherType)) {\n          return $('<' + _this.type + '/>').append($node.contents()).replaceAll($node);\n        } else if ($list && $node.prev().is($list)) {\n          $('<li/>').append($node.html() || _this.editor.util.phBr).appendTo($list);\n          return $node.remove();\n        } else {\n          $list = $(\"<\" + _this.type + \"><li></li></\" + _this.type + \">\");\n          $list.find('li').append($node.html() || _this.editor.util.phBr);\n          return $list.replaceAll($node);\n        }\n      };\n    })(this));\n    this.editor.selection.restore();\n    return this.editor.trigger('valuechanged');\n  };\n\n  return ListButton;\n\n})(Button);\n\nOrderListButton = (function(superClass) {\n  extend(OrderListButton, superClass);\n\n  function OrderListButton() {\n    return OrderListButton.__super__.constructor.apply(this, arguments);\n  }\n\n  OrderListButton.prototype.type = 'ol';\n\n  OrderListButton.prototype.name = 'ol';\n\n  OrderListButton.prototype.icon = 'list-ol';\n\n  OrderListButton.prototype.htmlTag = 'ol';\n\n  OrderListButton.prototype.shortcut = 'cmd+/';\n\n  OrderListButton.prototype._init = function() {\n    if (this.editor.util.os.mac) {\n      this.title = this.title + ' ( Cmd + / )';\n    } else {\n      this.title = this.title + ' ( ctrl + / )';\n      this.shortcut = 'ctrl+/';\n    }\n    return OrderListButton.__super__._init.call(this);\n  };\n\n  return OrderListButton;\n\n})(ListButton);\n\nUnorderListButton = (function(superClass) {\n  extend(UnorderListButton, superClass);\n\n  function UnorderListButton() {\n    return UnorderListButton.__super__.constructor.apply(this, arguments);\n  }\n\n  UnorderListButton.prototype.type = 'ul';\n\n  UnorderListButton.prototype.name = 'ul';\n\n  UnorderListButton.prototype.icon = 'list-ul';\n\n  UnorderListButton.prototype.htmlTag = 'ul';\n\n  UnorderListButton.prototype.shortcut = 'cmd+.';\n\n  UnorderListButton.prototype._init = function() {\n    if (this.editor.util.os.mac) {\n      this.title = this.title + ' ( Cmd + . )';\n    } else {\n      this.title = this.title + ' ( Ctrl + . )';\n      this.shortcut = 'ctrl+.';\n    }\n    return UnorderListButton.__super__._init.call(this);\n  };\n\n  return UnorderListButton;\n\n})(ListButton);\n\nSimditor.Toolbar.addButton(OrderListButton);\n\nSimditor.Toolbar.addButton(UnorderListButton);\n\nBlockquoteButton = (function(superClass) {\n  extend(BlockquoteButton, superClass);\n\n  function BlockquoteButton() {\n    return BlockquoteButton.__super__.constructor.apply(this, arguments);\n  }\n\n  BlockquoteButton.prototype.name = 'blockquote';\n\n  BlockquoteButton.prototype.icon = 'quote-left';\n\n  BlockquoteButton.prototype.htmlTag = 'blockquote';\n\n  BlockquoteButton.prototype.disableTag = 'pre, table';\n\n  BlockquoteButton.prototype.command = function() {\n    var $rootNodes, clearCache, nodeCache;\n    $rootNodes = this.editor.selection.rootNodes();\n    $rootNodes = $rootNodes.filter(function(i, node) {\n      return !$(node).parent().is('blockquote');\n    });\n    this.editor.selection.save();\n    nodeCache = [];\n    clearCache = (function(_this) {\n      return function() {\n        if (nodeCache.length > 0) {\n          $(\"<\" + _this.htmlTag + \"/>\").insertBefore(nodeCache[0]).append(nodeCache);\n          return nodeCache.length = 0;\n        }\n      };\n    })(this);\n    $rootNodes.each((function(_this) {\n      return function(i, node) {\n        var $node;\n        $node = $(node);\n        if (!$node.parent().is(_this.editor.body)) {\n          return;\n        }\n        if ($node.is(_this.htmlTag)) {\n          clearCache();\n          return $node.children().unwrap();\n        } else if ($node.is(_this.disableTag) || _this.editor.util.isDecoratedNode($node)) {\n          return clearCache();\n        } else {\n          return nodeCache.push(node);\n        }\n      };\n    })(this));\n    clearCache();\n    this.editor.selection.restore();\n    return this.editor.trigger('valuechanged');\n  };\n\n  return BlockquoteButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(BlockquoteButton);\n\nCodeButton = (function(superClass) {\n  extend(CodeButton, superClass);\n\n  function CodeButton() {\n    return CodeButton.__super__.constructor.apply(this, arguments);\n  }\n\n  CodeButton.prototype.name = 'code';\n\n  CodeButton.prototype.icon = 'code';\n\n  CodeButton.prototype.htmlTag = 'pre';\n\n  CodeButton.prototype.disableTag = 'ul, ol, table';\n\n  CodeButton.prototype._init = function() {\n    CodeButton.__super__._init.call(this);\n    this.editor.on('decorate', (function(_this) {\n      return function(e, $el) {\n        return $el.find('pre').each(function(i, pre) {\n          return _this.decorate($(pre));\n        });\n      };\n    })(this));\n    return this.editor.on('undecorate', (function(_this) {\n      return function(e, $el) {\n        return $el.find('pre').each(function(i, pre) {\n          return _this.undecorate($(pre));\n        });\n      };\n    })(this));\n  };\n\n  CodeButton.prototype.render = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    CodeButton.__super__.render.apply(this, args);\n    return this.popover = new CodePopover({\n      button: this\n    });\n  };\n\n  CodeButton.prototype._checkMode = function() {\n    var $blockNodes, range;\n    range = this.editor.selection.range();\n    if (($blockNodes = $(range.cloneContents()).find(this.editor.util.blockNodes.join(','))) > 0 || (range.collapsed && this.editor.selection.startNodes().filter('code').length === 0)) {\n      this.inlineMode = false;\n      return this.htmlTag = 'pre';\n    } else {\n      this.inlineMode = true;\n      return this.htmlTag = 'code';\n    }\n  };\n\n  CodeButton.prototype._status = function() {\n    this._checkMode();\n    CodeButton.__super__._status.call(this);\n    if (this.inlineMode) {\n      return;\n    }\n    if (this.active) {\n      return this.popover.show(this.node);\n    } else {\n      return this.popover.hide();\n    }\n  };\n\n  CodeButton.prototype.decorate = function($pre) {\n    var $code, lang, ref, ref1;\n    $code = $pre.find('> code');\n    if ($code.length > 0) {\n      lang = (ref = $code.attr('class')) != null ? (ref1 = ref.match(/lang-(\\S+)/)) != null ? ref1[1] : void 0 : void 0;\n      $code.contents().unwrap();\n      if (lang) {\n        return $pre.attr('data-lang', lang);\n      }\n    }\n  };\n\n  CodeButton.prototype.undecorate = function($pre) {\n    var $code, lang;\n    lang = $pre.attr('data-lang');\n    $code = $('<code/>');\n    if (lang && lang !== -1) {\n      $code.addClass('lang-' + lang);\n    }\n    return $pre.wrapInner($code).removeAttr('data-lang');\n  };\n\n  CodeButton.prototype.command = function() {\n    if (this.inlineMode) {\n      return this._inlineCommand();\n    } else {\n      return this._blockCommand();\n    }\n  };\n\n  CodeButton.prototype._blockCommand = function() {\n    var $rootNodes, clearCache, nodeCache, resultNodes;\n    $rootNodes = this.editor.selection.rootNodes();\n    nodeCache = [];\n    resultNodes = [];\n    clearCache = (function(_this) {\n      return function() {\n        var $pre;\n        if (!(nodeCache.length > 0)) {\n          return;\n        }\n        $pre = $(\"<\" + _this.htmlTag + \"/>\").insertBefore(nodeCache[0]).text(_this.editor.formatter.clearHtml(nodeCache));\n        resultNodes.push($pre[0]);\n        return nodeCache.length = 0;\n      };\n    })(this);\n    $rootNodes.each((function(_this) {\n      return function(i, node) {\n        var $node, $p;\n        $node = $(node);\n        if ($node.is(_this.htmlTag)) {\n          clearCache();\n          $p = $('<p/>').append($node.html().replace('\\n', '<br/>')).replaceAll($node);\n          return resultNodes.push($p[0]);\n        } else if ($node.is(_this.disableTag) || _this.editor.util.isDecoratedNode($node) || $node.is('blockquote')) {\n          return clearCache();\n        } else {\n          return nodeCache.push(node);\n        }\n      };\n    })(this));\n    clearCache();\n    this.editor.selection.setRangeAtEndOf($(resultNodes).last());\n    return this.editor.trigger('valuechanged');\n  };\n\n  CodeButton.prototype._inlineCommand = function() {\n    var $code, $contents, range;\n    range = this.editor.selection.range();\n    if (this.active) {\n      range.selectNodeContents(this.node[0]);\n      this.editor.selection.save(range);\n      this.node.contents().unwrap();\n      this.editor.selection.restore();\n    } else {\n      $contents = $(range.extractContents());\n      $code = $(\"<\" + this.htmlTag + \"/>\").append($contents.contents());\n      range.insertNode($code[0]);\n      range.selectNodeContents($code[0]);\n      this.editor.selection.range(range);\n    }\n    return this.editor.trigger('valuechanged');\n  };\n\n  return CodeButton;\n\n})(Button);\n\nCodePopover = (function(superClass) {\n  extend(CodePopover, superClass);\n\n  function CodePopover() {\n    return CodePopover.__super__.constructor.apply(this, arguments);\n  }\n\n  CodePopover.prototype.render = function() {\n    var $option, k, lang, len, ref;\n    this._tpl = \"<div class=\\\"code-settings\\\">\\n  <div class=\\\"settings-field\\\">\\n    <select class=\\\"select-lang\\\">\\n      <option value=\\\"-1\\\">\" + (this._t('selectLanguage')) + \"</option>\\n    </select>\\n  </div>\\n</div>\";\n    this.langs = this.editor.opts.codeLanguages || [\n      {\n        name: 'Bash',\n        value: 'bash'\n      }, {\n        name: 'C++',\n        value: 'c++'\n      }, {\n        name: 'C#',\n        value: 'cs'\n      }, {\n        name: 'CSS',\n        value: 'css'\n      }, {\n        name: 'Erlang',\n        value: 'erlang'\n      }, {\n        name: 'Less',\n        value: 'less'\n      }, {\n        name: 'Sass',\n        value: 'sass'\n      }, {\n        name: 'Diff',\n        value: 'diff'\n      }, {\n        name: 'CoffeeScript',\n        value: 'coffeescript'\n      }, {\n        name: 'HTML,XML',\n        value: 'html'\n      }, {\n        name: 'JSON',\n        value: 'json'\n      }, {\n        name: 'Java',\n        value: 'java'\n      }, {\n        name: 'JavaScript',\n        value: 'js'\n      }, {\n        name: 'Markdown',\n        value: 'markdown'\n      }, {\n        name: 'Objective C',\n        value: 'oc'\n      }, {\n        name: 'PHP',\n        value: 'php'\n      }, {\n        name: 'Perl',\n        value: 'parl'\n      }, {\n        name: 'Python',\n        value: 'python'\n      }, {\n        name: 'Ruby',\n        value: 'ruby'\n      }, {\n        name: 'SQL',\n        value: 'sql'\n      }\n    ];\n    this.el.addClass('code-popover').append(this._tpl);\n    this.selectEl = this.el.find('.select-lang');\n    ref = this.langs;\n    for (k = 0, len = ref.length; k < len; k++) {\n      lang = ref[k];\n      $option = $('<option/>', {\n        text: lang.name,\n        value: lang.value\n      }).appendTo(this.selectEl);\n    }\n    this.selectEl.on('change', (function(_this) {\n      return function(e) {\n        var selected;\n        _this.lang = _this.selectEl.val();\n        selected = _this.target.hasClass('selected');\n        _this.target.removeClass().removeAttr('data-lang');\n        if (_this.lang !== -1) {\n          _this.target.attr('data-lang', _this.lang);\n        }\n        if (selected) {\n          _this.target.addClass('selected');\n        }\n        return _this.editor.trigger('valuechanged');\n      };\n    })(this));\n    return this.editor.on('valuechanged', (function(_this) {\n      return function(e) {\n        if (_this.active) {\n          return _this.refresh();\n        }\n      };\n    })(this));\n  };\n\n  CodePopover.prototype.show = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    CodePopover.__super__.show.apply(this, args);\n    this.lang = this.target.attr('data-lang');\n    if (this.lang != null) {\n      return this.selectEl.val(this.lang);\n    } else {\n      return this.selectEl.val(-1);\n    }\n  };\n\n  return CodePopover;\n\n})(Popover);\n\nSimditor.Toolbar.addButton(CodeButton);\n\nLinkButton = (function(superClass) {\n  extend(LinkButton, superClass);\n\n  function LinkButton() {\n    return LinkButton.__super__.constructor.apply(this, arguments);\n  }\n\n  LinkButton.prototype.name = 'link';\n\n  LinkButton.prototype.icon = 'link';\n\n  LinkButton.prototype.htmlTag = 'a';\n\n  LinkButton.prototype.disableTag = 'pre';\n\n  LinkButton.prototype.render = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    LinkButton.__super__.render.apply(this, args);\n    return this.popover = new LinkPopover({\n      button: this\n    });\n  };\n\n  LinkButton.prototype._status = function() {\n    LinkButton.__super__._status.call(this);\n    if (this.active && !this.editor.selection.rangeAtEndOf(this.node)) {\n      return this.popover.show(this.node);\n    } else {\n      return this.popover.hide();\n    }\n  };\n\n  LinkButton.prototype.command = function() {\n    var $contents, $link, $newBlock, linkText, range, txtNode;\n    range = this.editor.selection.range();\n    if (this.active) {\n      txtNode = document.createTextNode(this.node.text());\n      this.node.replaceWith(txtNode);\n      range.selectNode(txtNode);\n    } else {\n      $contents = $(range.extractContents());\n      linkText = this.editor.formatter.clearHtml($contents.contents(), false);\n      $link = $('<a/>', {\n        href: '',\n        target: '_blank',\n        text: linkText || this._t('linkText')\n      });\n      if (this.editor.selection.blockNodes().length > 0) {\n        range.insertNode($link[0]);\n      } else {\n        $newBlock = $('<p/>').append($link);\n        range.insertNode($newBlock[0]);\n      }\n      range.selectNodeContents($link[0]);\n      this.popover.one('popovershow', (function(_this) {\n        return function() {\n          if (linkText) {\n            _this.popover.urlEl.focus();\n            return _this.popover.urlEl[0].select();\n          } else {\n            _this.popover.textEl.focus();\n            return _this.popover.textEl[0].select();\n          }\n        };\n      })(this));\n    }\n    this.editor.selection.range(range);\n    return this.editor.trigger('valuechanged');\n  };\n\n  return LinkButton;\n\n})(Button);\n\nLinkPopover = (function(superClass) {\n  extend(LinkPopover, superClass);\n\n  function LinkPopover() {\n    return LinkPopover.__super__.constructor.apply(this, arguments);\n  }\n\n  LinkPopover.prototype.render = function() {\n    var tpl;\n    tpl = \"<div class=\\\"link-settings\\\">\\n  <div class=\\\"settings-field\\\">\\n    <label>\" + (this._t('linkText')) + \"</label>\\n    <input class=\\\"link-text\\\" type=\\\"text\\\"/>\\n    <a class=\\\"btn-unlink\\\" href=\\\"javascript:;\\\" title=\\\"\" + (this._t('removeLink')) + \"\\\"\\n      tabindex=\\\"-1\\\">\\n      <span class=\\\"simditor-icon simditor-icon-unlink\\\"></span>\\n    </a>\\n  </div>\\n  <div class=\\\"settings-field\\\">\\n    <label>\" + (this._t('linkUrl')) + \"</label>\\n    <input class=\\\"link-url\\\" type=\\\"text\\\"/>\\n  </div>\\n  <div class=\\\"settings-field\\\">\\n    <label>\" + (this._t('linkTarget')) + \"</label>\\n    <select class=\\\"link-target\\\">\\n      <option value=\\\"_blank\\\">\" + (this._t('openLinkInNewWindow')) + \" (_blank)</option>\\n      <option value=\\\"_self\\\">\" + (this._t('openLinkInCurrentWindow')) + \" (_self)</option>\\n    </select>\\n  </div>\\n</div>\";\n    this.el.addClass('link-popover').append(tpl);\n    this.textEl = this.el.find('.link-text');\n    this.urlEl = this.el.find('.link-url');\n    this.unlinkEl = this.el.find('.btn-unlink');\n    this.selectTarget = this.el.find('.link-target');\n    this.textEl.on('keyup', (function(_this) {\n      return function(e) {\n        if (e.which === 13) {\n          return;\n        }\n        _this.target.text(_this.textEl.val());\n        return _this.editor.inputManager.throttledValueChanged();\n      };\n    })(this));\n    this.urlEl.on('keyup', (function(_this) {\n      return function(e) {\n        var val;\n        if (e.which === 13) {\n          return;\n        }\n        val = _this.urlEl.val();\n        if (!(/^(http|https|ftp|ftps|file)?:\\/\\/|^(mailto|tel)?:|^\\//ig.test(val) || !val)) {\n          val = 'http://' + val;\n        }\n        _this.target.attr('href', val);\n        return _this.editor.inputManager.throttledValueChanged();\n      };\n    })(this));\n    $([this.urlEl[0], this.textEl[0]]).on('keydown', (function(_this) {\n      return function(e) {\n        var range;\n        if (e.which === 13 || e.which === 27 || (!e.shiftKey && e.which === 9 && $(e.target).hasClass('link-url'))) {\n          e.preventDefault();\n          range = document.createRange();\n          _this.editor.selection.setRangeAfter(_this.target, range);\n          _this.hide();\n          return _this.editor.inputManager.throttledValueChanged();\n        }\n      };\n    })(this));\n    this.unlinkEl.on('click', (function(_this) {\n      return function(e) {\n        var range, txtNode;\n        txtNode = document.createTextNode(_this.target.text());\n        _this.target.replaceWith(txtNode);\n        _this.hide();\n        range = document.createRange();\n        _this.editor.selection.setRangeAfter(txtNode, range);\n        return _this.editor.inputManager.throttledValueChanged();\n      };\n    })(this));\n    return this.selectTarget.on('change', (function(_this) {\n      return function(e) {\n        _this.target.attr('target', _this.selectTarget.val());\n        return _this.editor.inputManager.throttledValueChanged();\n      };\n    })(this));\n  };\n\n  LinkPopover.prototype.show = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    LinkPopover.__super__.show.apply(this, args);\n    this.textEl.val(this.target.text());\n    return this.urlEl.val(this.target.attr('href'));\n  };\n\n  return LinkPopover;\n\n})(Popover);\n\nSimditor.Toolbar.addButton(LinkButton);\n\nImageButton = (function(superClass) {\n  extend(ImageButton, superClass);\n\n  function ImageButton() {\n    return ImageButton.__super__.constructor.apply(this, arguments);\n  }\n\n  ImageButton.prototype.name = 'image';\n\n  ImageButton.prototype.icon = 'picture-o';\n\n  ImageButton.prototype.htmlTag = 'img';\n\n  ImageButton.prototype.disableTag = 'pre, table';\n\n  ImageButton.prototype.defaultImage = '';\n\n  ImageButton.prototype.needFocus = false;\n\n  ImageButton.prototype._init = function() {\n    var item, k, len, ref;\n    if (this.editor.opts.imageButton) {\n      if (Array.isArray(this.editor.opts.imageButton)) {\n        this.menu = [];\n        ref = this.editor.opts.imageButton;\n        for (k = 0, len = ref.length; k < len; k++) {\n          item = ref[k];\n          this.menu.push({\n            name: item + '-image',\n            text: this._t(item + 'Image')\n          });\n        }\n      } else {\n        this.menu = false;\n      }\n    } else {\n      if (this.editor.uploader != null) {\n        this.menu = [\n          {\n            name: 'upload-image',\n            text: this._t('uploadImage')\n          }, {\n            name: 'external-image',\n            text: this._t('externalImage')\n          }\n        ];\n      } else {\n        this.menu = false;\n      }\n    }\n    this.defaultImage = this.editor.opts.defaultImage;\n    this.editor.body.on('click', 'img:not([data-non-image])', (function(_this) {\n      return function(e) {\n        var $img, range;\n        $img = $(e.currentTarget);\n        range = document.createRange();\n        range.selectNode($img[0]);\n        _this.editor.selection.range(range);\n        if (!_this.editor.util.support.onselectionchange) {\n          _this.editor.trigger('selectionchanged');\n        }\n        return false;\n      };\n    })(this));\n    this.editor.body.on('mouseup', 'img:not([data-non-image])', function(e) {\n      return false;\n    });\n    this.editor.on('selectionchanged.image', (function(_this) {\n      return function() {\n        var $contents, $img, range;\n        range = _this.editor.selection.range();\n        if (range == null) {\n          return;\n        }\n        $contents = $(range.cloneContents()).contents();\n        if ($contents.length === 1 && $contents.is('img:not([data-non-image])')) {\n          $img = $(range.startContainer).contents().eq(range.startOffset);\n          return _this.popover.show($img);\n        } else {\n          return _this.popover.hide();\n        }\n      };\n    })(this));\n    this.editor.on('valuechanged.image', (function(_this) {\n      return function() {\n        var $masks;\n        $masks = _this.editor.wrapper.find('.simditor-image-loading');\n        if (!($masks.length > 0)) {\n          return;\n        }\n        return $masks.each(function(i, mask) {\n          var $img, $mask, file;\n          $mask = $(mask);\n          $img = $mask.data('img');\n          if (!($img && $img.parent().length > 0)) {\n            $mask.remove();\n            if ($img) {\n              file = $img.data('file');\n              if (file) {\n                _this.editor.uploader.cancel(file);\n                if (_this.editor.body.find('img.uploading').length < 1) {\n                  return _this.editor.uploader.trigger('uploadready', [file]);\n                }\n              }\n            }\n          }\n        });\n      };\n    })(this));\n    return ImageButton.__super__._init.call(this);\n  };\n\n  ImageButton.prototype.render = function() {\n    var args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    ImageButton.__super__.render.apply(this, args);\n    this.popover = new ImagePopover({\n      button: this\n    });\n    if (this.editor.opts.imageButton === 'upload') {\n      return this._initUploader(this.el);\n    }\n  };\n\n  ImageButton.prototype.renderMenu = function() {\n    ImageButton.__super__.renderMenu.call(this);\n    return this._initUploader();\n  };\n\n  ImageButton.prototype._initUploader = function($uploadItem) {\n    var $input, createInput, uploadProgress;\n    if ($uploadItem == null) {\n      $uploadItem = this.menuEl.find('.menu-item-upload-image');\n    }\n    if (this.editor.uploader == null) {\n      this.el.find('.btn-upload').remove();\n      return;\n    }\n    $input = null;\n    createInput = (function(_this) {\n      return function() {\n        if ($input) {\n          $input.remove();\n        }\n        return $input = $('<input/>', {\n          type: 'file',\n          title: _this._t('uploadImage'),\n          multiple: true,\n          accept: 'image/gif,image/jpeg,image/jpg,image/png,image/svg'\n        }).appendTo($uploadItem);\n      };\n    })(this);\n    createInput();\n    $uploadItem.on('click mousedown', 'input[type=file]', function(e) {\n      return e.stopPropagation();\n    });\n    $uploadItem.on('change', 'input[type=file]', (function(_this) {\n      return function(e) {\n        if (_this.editor.inputManager.focused) {\n          _this.editor.uploader.upload($input, {\n            inline: true\n          });\n          createInput();\n        } else {\n          _this.editor.one('focus', function(e) {\n            _this.editor.uploader.upload($input, {\n              inline: true\n            });\n            return createInput();\n          });\n          _this.editor.focus();\n        }\n        return _this.wrapper.removeClass('menu-on');\n      };\n    })(this));\n    this.editor.uploader.on('beforeupload', (function(_this) {\n      return function(e, file) {\n        var $img;\n        if (!file.inline) {\n          return;\n        }\n        if (file.img) {\n          $img = $(file.img);\n        } else {\n          $img = _this.createImage(file.name);\n          file.img = $img;\n        }\n        $img.addClass('uploading');\n        $img.data('file', file);\n        return _this.editor.uploader.readImageFile(file.obj, function(img) {\n          var src;\n          if (!$img.hasClass('uploading')) {\n            return;\n          }\n          src = img ? img.src : _this.defaultImage;\n          return _this.loadImage($img, src, function() {\n            if (_this.popover.active) {\n              _this.popover.refresh();\n              return _this.popover.srcEl.val(_this._t('uploading')).prop('disabled', true);\n            }\n          });\n        });\n      };\n    })(this));\n    uploadProgress = $.proxy(this.editor.util.throttle(function(e, file, loaded, total) {\n      var $img, $mask, percent;\n      if (!file.inline) {\n        return;\n      }\n      $mask = file.img.data('mask');\n      if (!$mask) {\n        return;\n      }\n      $img = $mask.data('img');\n      if (!($img && $img.hasClass('uploading') && $img.parent().length > 0)) {\n        $mask.remove();\n        return;\n      }\n      percent = loaded / total;\n      percent = (percent * 100).toFixed(0);\n      if (percent > 99) {\n        percent = 99;\n      }\n      return $mask.find('.progress').height((100 - percent) + \"%\");\n    }, 500), this);\n    this.editor.uploader.on('uploadprogress', uploadProgress);\n    this.editor.uploader.on('uploadsuccess', (function(_this) {\n      return function(e, file, result) {\n        var $img, img_path, msg;\n        if (!file.inline) {\n          return;\n        }\n        $img = file.img;\n        if (!($img.hasClass('uploading') && $img.parent().length > 0)) {\n          return;\n        }\n        if (typeof result !== 'object') {\n          try {\n            result = $.parseJSON(result);\n          } catch (_error) {\n            e = _error;\n            result = {\n              success: false\n            };\n          }\n        }\n        if (result.success === false) {\n          msg = result.msg || _this._t('uploadFailed');\n          alert(msg);\n          img_path = _this.defaultImage;\n        } else {\n          img_path = result.file_path;\n        }\n        _this.loadImage($img, img_path, function() {\n          var $mask;\n          $img.removeData('file');\n          $img.removeClass('uploading').removeClass('loading');\n          $mask = $img.data('mask');\n          if ($mask) {\n            $mask.remove();\n          }\n          $img.removeData('mask');\n          _this.editor.trigger('valuechanged');\n          if (_this.editor.body.find('img.uploading').length < 1) {\n            return _this.editor.uploader.trigger('uploadready', [file, result]);\n          }\n        });\n        if (_this.popover.active) {\n          _this.popover.srcEl.prop('disabled', false);\n          return _this.popover.srcEl.val(result.file_path);\n        }\n      };\n    })(this));\n    return this.editor.uploader.on('uploaderror', (function(_this) {\n      return function(e, file, xhr) {\n        var $img, msg, result;\n        if (!file.inline) {\n          return;\n        }\n        if (xhr.statusText === 'abort') {\n          return;\n        }\n        if (xhr.responseText) {\n          try {\n            result = $.parseJSON(xhr.responseText);\n            msg = result.msg;\n          } catch (_error) {\n            e = _error;\n            msg = _this._t('uploadError');\n          }\n        }\n        $img = file.img;\n        if (!($img.hasClass('uploading') && $img.parent().length > 0)) {\n          return;\n        }\n        _this.loadImage($img, _this.defaultImage, function() {\n          var $mask;\n          $img.removeData('file');\n          $img.removeClass('uploading').removeClass('loading');\n          $mask = $img.data('mask');\n          if ($mask) {\n            $mask.remove();\n          }\n          return $img.removeData('mask');\n        });\n        if (_this.popover.active) {\n          _this.popover.srcEl.prop('disabled', false);\n          _this.popover.srcEl.val(_this.defaultImage);\n        }\n        _this.editor.trigger('valuechanged');\n        if (_this.editor.body.find('img.uploading').length < 1) {\n          return _this.editor.uploader.trigger('uploadready', [file, result]);\n        }\n      };\n    })(this));\n  };\n\n  ImageButton.prototype._status = function() {\n    return this._disableStatus();\n  };\n\n  ImageButton.prototype.loadImage = function($img, src, callback) {\n    var $mask, img, positionMask;\n    positionMask = (function(_this) {\n      return function() {\n        var imgOffset, wrapperOffset;\n        imgOffset = $img.offset();\n        wrapperOffset = _this.editor.wrapper.offset();\n        return $mask.css({\n          top: imgOffset.top - wrapperOffset.top,\n          left: imgOffset.left - wrapperOffset.left,\n          width: $img.width(),\n          height: $img.height()\n        }).show();\n      };\n    })(this);\n    $img.addClass('loading');\n    $mask = $img.data('mask');\n    if (!$mask) {\n      $mask = $('<div class=\"simditor-image-loading\">\\n  <div class=\"progress\"></div>\\n</div>').hide().appendTo(this.editor.wrapper);\n      positionMask();\n      $img.data('mask', $mask);\n      $mask.data('img', $img);\n    }\n    img = new Image();\n    img.onload = (function(_this) {\n      return function() {\n        var height, width;\n        if (!$img.hasClass('loading') && !$img.hasClass('uploading')) {\n          return;\n        }\n        width = img.width;\n        height = img.height;\n        $img.attr({\n          src: src,\n          width: '100%',\n          height: '100%',\n          'data-image-size': width + ',' + height\n        }).removeClass('loading');\n        if ($img.hasClass('uploading')) {\n          _this.editor.util.reflow(_this.editor.body);\n          positionMask();\n        } else {\n          $mask.remove();\n          $img.removeData('mask');\n        }\n        if ($.isFunction(callback)) {\n          return callback(img);\n        }\n      };\n    })(this);\n    img.onerror = function() {\n      if ($.isFunction(callback)) {\n        callback(false);\n      }\n      $mask.remove();\n      return $img.removeData('mask').removeClass('loading');\n    };\n    return img.setAttribute('src', src);\n  };\n\n  ImageButton.prototype.createImage = function(name) {\n    var $img, range;\n    if (name == null) {\n      name = 'Image';\n    }\n    if (!this.editor.inputManager.focused) {\n      this.editor.focus();\n    }\n    range = this.editor.selection.range();\n    range.deleteContents();\n    this.editor.selection.range(range);\n    $img = $('<img/>').attr('alt', name);\n    range.insertNode($img[0]);\n    this.editor.selection.setRangeAfter($img, range);\n    this.editor.trigger('valuechanged');\n    return $img;\n  };\n\n  ImageButton.prototype.command = function(src) {\n    var $img;\n    $img = this.createImage();\n    return this.loadImage($img, src || this.defaultImage, (function(_this) {\n      return function() {\n        _this.editor.trigger('valuechanged');\n        _this.editor.util.reflow($img);\n        $img.click();\n        return _this.popover.one('popovershow', function() {\n          _this.popover.srcEl.focus();\n          return _this.popover.srcEl[0].select();\n        });\n      };\n    })(this));\n  };\n\n  return ImageButton;\n\n})(Button);\n\nImagePopover = (function(superClass) {\n  extend(ImagePopover, superClass);\n\n  function ImagePopover() {\n    return ImagePopover.__super__.constructor.apply(this, arguments);\n  }\n\n  ImagePopover.prototype.offset = {\n    top: 6,\n    left: -4\n  };\n\n  ImagePopover.prototype.render = function() {\n    var tpl;\n    tpl = \"<div class=\\\"link-settings\\\">\\n  <div class=\\\"settings-field\\\">\\n    <label>\" + (this._t('imageUrl')) + \"</label>\\n    <input class=\\\"image-src\\\" type=\\\"text\\\" tabindex=\\\"1\\\" />\\n    <a class=\\\"btn-upload\\\" href=\\\"javascript:;\\\"\\n      title=\\\"\" + (this._t('uploadImage')) + \"\\\" tabindex=\\\"-1\\\">\\n      <span class=\\\"simditor-icon simditor-icon-upload\\\"></span>\\n    </a>\\n  </div>\\n  <div class='settings-field'>\\n    <label>\" + (this._t('imageAlt')) + \"</label>\\n    <input class=\\\"image-alt\\\" id=\\\"image-alt\\\" type=\\\"text\\\" tabindex=\\\"1\\\" />\\n  </div>\\n  <div class=\\\"settings-field\\\">\\n    <label>\" + (this._t('imageSize')) + \"</label>\\n    <input class=\\\"image-size\\\" id=\\\"image-width\\\" type=\\\"text\\\" tabindex=\\\"2\\\" />\\n    <span class=\\\"times\\\">×</span>\\n    <input class=\\\"image-size\\\" id=\\\"image-height\\\" type=\\\"text\\\" tabindex=\\\"3\\\" />\\n    <a class=\\\"btn-restore\\\" href=\\\"javascript:;\\\"\\n      title=\\\"\" + (this._t('restoreImageSize')) + \"\\\" tabindex=\\\"-1\\\">\\n      <span class=\\\"simditor-icon simditor-icon-undo\\\"></span>\\n    </a>\\n  </div>\\n</div>\";\n    this.el.addClass('image-popover').append(tpl);\n    this.srcEl = this.el.find('.image-src');\n    this.widthEl = this.el.find('#image-width');\n    this.heightEl = this.el.find('#image-height');\n    this.altEl = this.el.find('#image-alt');\n    this.srcEl.on('keydown', (function(_this) {\n      return function(e) {\n        var range;\n        if (!(e.which === 13 && !_this.target.hasClass('uploading'))) {\n          return;\n        }\n        e.preventDefault();\n        range = document.createRange();\n        _this.button.editor.selection.setRangeAfter(_this.target, range);\n        return _this.hide();\n      };\n    })(this));\n    this.srcEl.on('blur', (function(_this) {\n      return function(e) {\n        return _this._loadImage(_this.srcEl.val());\n      };\n    })(this));\n    this.el.find('.image-size').on('blur', (function(_this) {\n      return function(e) {\n        _this._resizeImg($(e.currentTarget));\n        return _this.el.data('popover').refresh();\n      };\n    })(this));\n    this.el.find('.image-size').on('keyup', (function(_this) {\n      return function(e) {\n        var inputEl;\n        inputEl = $(e.currentTarget);\n        if (!(e.which === 13 || e.which === 27 || e.which === 9)) {\n          return _this._resizeImg(inputEl, true);\n        }\n      };\n    })(this));\n    this.el.find('.image-size').on('keydown', (function(_this) {\n      return function(e) {\n        var $img, inputEl, range;\n        inputEl = $(e.currentTarget);\n        if (e.which === 13 || e.which === 27) {\n          e.preventDefault();\n          if (e.which === 13) {\n            _this._resizeImg(inputEl);\n          } else {\n            _this._restoreImg();\n          }\n          $img = _this.target;\n          _this.hide();\n          range = document.createRange();\n          return _this.button.editor.selection.setRangeAfter($img, range);\n        } else if (e.which === 9) {\n          return _this.el.data('popover').refresh();\n        }\n      };\n    })(this));\n    this.altEl.on('keydown', (function(_this) {\n      return function(e) {\n        var range;\n        if (e.which === 13) {\n          e.preventDefault();\n          range = document.createRange();\n          _this.button.editor.selection.setRangeAfter(_this.target, range);\n          return _this.hide();\n        }\n      };\n    })(this));\n    this.altEl.on('keyup', (function(_this) {\n      return function(e) {\n        if (e.which === 13 || e.which === 27 || e.which === 9) {\n          return;\n        }\n        _this.alt = _this.altEl.val();\n        return _this.target.attr('alt', _this.alt);\n      };\n    })(this));\n    this.el.find('.btn-restore').on('click', (function(_this) {\n      return function(e) {\n        _this._restoreImg();\n        return _this.el.data('popover').refresh();\n      };\n    })(this));\n    this.editor.on('valuechanged', (function(_this) {\n      return function(e) {\n        if (_this.active) {\n          return _this.refresh();\n        }\n      };\n    })(this));\n    return this._initUploader();\n  };\n\n  ImagePopover.prototype._initUploader = function() {\n    var $uploadBtn, createInput;\n    $uploadBtn = this.el.find('.btn-upload');\n    if (this.editor.uploader == null) {\n      $uploadBtn.remove();\n      return;\n    }\n    createInput = (function(_this) {\n      return function() {\n        if (_this.input) {\n          _this.input.remove();\n        }\n        return _this.input = $('<input/>', {\n          type: 'file',\n          title: _this._t('uploadImage'),\n          multiple: true,\n          accept: 'image/gif,image/jpeg,image/jpg,image/png,image/svg'\n        }).appendTo($uploadBtn);\n      };\n    })(this);\n    createInput();\n    this.el.on('click mousedown', 'input[type=file]', function(e) {\n      return e.stopPropagation();\n    });\n    return this.el.on('change', 'input[type=file]', (function(_this) {\n      return function(e) {\n        _this.editor.uploader.upload(_this.input, {\n          inline: true,\n          img: _this.target\n        });\n        return createInput();\n      };\n    })(this));\n  };\n\n  ImagePopover.prototype._resizeImg = function(inputEl, onlySetVal) {\n    var height, value, width;\n    if (onlySetVal == null) {\n      onlySetVal = false;\n    }\n    value = inputEl.val() * 1;\n    if (!(this.target && ($.isNumeric(value) || value < 0))) {\n      return;\n    }\n    if (inputEl.is(this.widthEl)) {\n      width = value;\n      height = this.height * value / this.width;\n      this.heightEl.val(height);\n    } else {\n      height = value;\n      width = this.width * value / this.height;\n      this.widthEl.val(width);\n    }\n    if (!onlySetVal) {\n      this.target.attr({\n        width: width,\n        height: height\n      });\n      return this.editor.trigger('valuechanged');\n    }\n  };\n\n  ImagePopover.prototype._restoreImg = function() {\n    var ref, size;\n    size = ((ref = this.target.data('image-size')) != null ? ref.split(\",\") : void 0) || [this.width, this.height];\n    this.target.attr({\n      width: size[0] * 1,\n      height: size[1] * 1\n    });\n    this.widthEl.val(size[0]);\n    this.heightEl.val(size[1]);\n    return this.editor.trigger('valuechanged');\n  };\n\n  ImagePopover.prototype._loadImage = function(src, callback) {\n    if (/^data:image/.test(src) && !this.editor.uploader) {\n      if (callback) {\n        callback(false);\n      }\n      return;\n    }\n    if (this.target.attr('src') === src) {\n      return;\n    }\n    return this.button.loadImage(this.target, src, (function(_this) {\n      return function(img) {\n        var blob;\n        if (!img) {\n          return;\n        }\n        if (_this.active) {\n          _this.width = img.width;\n          _this.height = img.height;\n          _this.widthEl.val(_this.width);\n          _this.heightEl.val(_this.height);\n        }\n        if (/^data:image/.test(src)) {\n          blob = _this.editor.util.dataURLtoBlob(src);\n          blob.name = \"Base64 Image.png\";\n          _this.editor.uploader.upload(blob, {\n            inline: true,\n            img: _this.target\n          });\n        } else {\n          _this.editor.trigger('valuechanged');\n        }\n        if (callback) {\n          return callback(img);\n        }\n      };\n    })(this));\n  };\n\n  ImagePopover.prototype.show = function() {\n    var $img, args;\n    args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n    ImagePopover.__super__.show.apply(this, args);\n    $img = this.target;\n    this.width = $img.width();\n    this.height = $img.height();\n    this.alt = $img.attr('alt');\n    if ($img.hasClass('uploading')) {\n      return this.srcEl.val(this._t('uploading')).prop('disabled', true);\n    } else {\n      this.srcEl.val($img.attr('src')).prop('disabled', false);\n      this.widthEl.val(this.width);\n      this.heightEl.val(this.height);\n      return this.altEl.val(this.alt);\n    }\n  };\n\n  return ImagePopover;\n\n})(Popover);\n\nSimditor.Toolbar.addButton(ImageButton);\n\nIndentButton = (function(superClass) {\n  extend(IndentButton, superClass);\n\n  function IndentButton() {\n    return IndentButton.__super__.constructor.apply(this, arguments);\n  }\n\n  IndentButton.prototype.name = 'indent';\n\n  IndentButton.prototype.icon = 'indent';\n\n  IndentButton.prototype._init = function() {\n    var hotkey;\n    hotkey = this.editor.opts.tabIndent === false ? '' : ' (Tab)';\n    this.title = this._t(this.name) + hotkey;\n    return IndentButton.__super__._init.call(this);\n  };\n\n  IndentButton.prototype._status = function() {};\n\n  IndentButton.prototype.command = function() {\n    return this.editor.indentation.indent();\n  };\n\n  return IndentButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(IndentButton);\n\nOutdentButton = (function(superClass) {\n  extend(OutdentButton, superClass);\n\n  function OutdentButton() {\n    return OutdentButton.__super__.constructor.apply(this, arguments);\n  }\n\n  OutdentButton.prototype.name = 'outdent';\n\n  OutdentButton.prototype.icon = 'outdent';\n\n  OutdentButton.prototype._init = function() {\n    var hotkey;\n    hotkey = this.editor.opts.tabIndent === false ? '' : ' (Shift + Tab)';\n    this.title = this._t(this.name) + hotkey;\n    return OutdentButton.__super__._init.call(this);\n  };\n\n  OutdentButton.prototype._status = function() {};\n\n  OutdentButton.prototype.command = function() {\n    return this.editor.indentation.indent(true);\n  };\n\n  return OutdentButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(OutdentButton);\n\nHrButton = (function(superClass) {\n  extend(HrButton, superClass);\n\n  function HrButton() {\n    return HrButton.__super__.constructor.apply(this, arguments);\n  }\n\n  HrButton.prototype.name = 'hr';\n\n  HrButton.prototype.icon = 'minus';\n\n  HrButton.prototype.htmlTag = 'hr';\n\n  HrButton.prototype._status = function() {};\n\n  HrButton.prototype.command = function() {\n    var $hr, $newBlock, $nextBlock, $rootBlock;\n    $rootBlock = this.editor.selection.rootNodes().first();\n    $nextBlock = $rootBlock.next();\n    if ($nextBlock.length > 0) {\n      this.editor.selection.save();\n    } else {\n      $newBlock = $('<p/>').append(this.editor.util.phBr);\n    }\n    $hr = $('<hr/>').insertAfter($rootBlock);\n    if ($newBlock) {\n      $newBlock.insertAfter($hr);\n      this.editor.selection.setRangeAtStartOf($newBlock);\n    } else {\n      this.editor.selection.restore();\n    }\n    return this.editor.trigger('valuechanged');\n  };\n\n  return HrButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(HrButton);\n\nTableButton = (function(superClass) {\n  extend(TableButton, superClass);\n\n  function TableButton() {\n    return TableButton.__super__.constructor.apply(this, arguments);\n  }\n\n  TableButton.prototype.name = 'table';\n\n  TableButton.prototype.icon = 'table';\n\n  TableButton.prototype.htmlTag = 'table';\n\n  TableButton.prototype.disableTag = 'pre, li, blockquote';\n\n  TableButton.prototype.menu = true;\n\n  TableButton.prototype._init = function() {\n    TableButton.__super__._init.call(this);\n    $.merge(this.editor.formatter._allowedTags, ['thead', 'th', 'tbody', 'tr', 'td', 'colgroup', 'col']);\n    $.extend(this.editor.formatter._allowedAttributes, {\n      td: ['rowspan', 'colspan'],\n      col: ['width']\n    });\n    $.extend(this.editor.formatter._allowedStyles, {\n      td: ['text-align'],\n      th: ['text-align']\n    });\n    this._initShortcuts();\n    this._initResize();\n    this.editor.on('decorate', (function(_this) {\n      return function(e, $el) {\n        return $el.find('table').each(function(i, table) {\n          return _this.decorate($(table));\n        });\n      };\n    })(this));\n    this.editor.on('undecorate', (function(_this) {\n      return function(e, $el) {\n        return $el.find('table').each(function(i, table) {\n          return _this.undecorate($(table));\n        });\n      };\n    })(this));\n    this.editor.on('selectionchanged.table', (function(_this) {\n      return function(e) {\n        var $container, range;\n        _this.editor.body.find('.simditor-table td, .simditor-table th').removeClass('active');\n        range = _this.editor.selection.range();\n        if (!range) {\n          return;\n        }\n        $container = _this.editor.selection.containerNode();\n        if (range.collapsed && $container.is('.simditor-table')) {\n          _this.editor.selection.setRangeAtEndOf($container);\n        }\n        return $container.closest('td, th', _this.editor.body).addClass('active');\n      };\n    })(this));\n    this.editor.on('blur.table', (function(_this) {\n      return function(e) {\n        return _this.editor.body.find('.simditor-table td, .simditor-table th').removeClass('active');\n      };\n    })(this));\n    this.editor.keystroke.add('up', 'td', (function(_this) {\n      return function(e, $node) {\n        _this._tdNav($node, 'up');\n        return true;\n      };\n    })(this));\n    this.editor.keystroke.add('up', 'th', (function(_this) {\n      return function(e, $node) {\n        _this._tdNav($node, 'up');\n        return true;\n      };\n    })(this));\n    this.editor.keystroke.add('down', 'td', (function(_this) {\n      return function(e, $node) {\n        _this._tdNav($node, 'down');\n        return true;\n      };\n    })(this));\n    return this.editor.keystroke.add('down', 'th', (function(_this) {\n      return function(e, $node) {\n        _this._tdNav($node, 'down');\n        return true;\n      };\n    })(this));\n  };\n\n  TableButton.prototype._tdNav = function($td, direction) {\n    var $anotherTr, $tr, action, anotherTag, index, parentTag, ref;\n    if (direction == null) {\n      direction = 'up';\n    }\n    action = direction === 'up' ? 'prev' : 'next';\n    ref = direction === 'up' ? ['tbody', 'thead'] : ['thead', 'tbody'], parentTag = ref[0], anotherTag = ref[1];\n    $tr = $td.parent('tr');\n    $anotherTr = this[\"_\" + action + \"Row\"]($tr);\n    if (!($anotherTr.length > 0)) {\n      return true;\n    }\n    index = $tr.find('td, th').index($td);\n    return this.editor.selection.setRangeAtEndOf($anotherTr.find('td, th').eq(index));\n  };\n\n  TableButton.prototype._nextRow = function($tr) {\n    var $nextTr;\n    $nextTr = $tr.next('tr');\n    if ($nextTr.length < 1 && $tr.parent('thead').length > 0) {\n      $nextTr = $tr.parent('thead').next('tbody').find('tr:first');\n    }\n    return $nextTr;\n  };\n\n  TableButton.prototype._prevRow = function($tr) {\n    var $prevTr;\n    $prevTr = $tr.prev('tr');\n    if ($prevTr.length < 1 && $tr.parent('tbody').length > 0) {\n      $prevTr = $tr.parent('tbody').prev('thead').find('tr');\n    }\n    return $prevTr;\n  };\n\n  TableButton.prototype._initResize = function() {\n    var $editor;\n    $editor = this.editor;\n    $(document).on('mousemove.simditor-table', '.simditor-table td, .simditor-table th', function(e) {\n      var $col, $colgroup, $resizeHandle, $td, $wrapper, index, ref, ref1, x;\n      $wrapper = $(this).parents('.simditor-table');\n      $resizeHandle = $wrapper.find('.simditor-resize-handle');\n      $colgroup = $wrapper.find('colgroup');\n      if ($wrapper.hasClass('resizing')) {\n        return;\n      }\n      $td = $(e.currentTarget);\n      x = e.pageX - $(e.currentTarget).offset().left;\n      if (x < 5 && $td.prev().length > 0) {\n        $td = $td.prev();\n      }\n      if ($td.next('td, th').length < 1) {\n        $resizeHandle.hide();\n        return;\n      }\n      if ((ref = $resizeHandle.data('td')) != null ? ref.is($td) : void 0) {\n        $resizeHandle.show();\n        return;\n      }\n      index = $td.parent().find('td, th').index($td);\n      $col = $colgroup.find('col').eq(index);\n      if ((ref1 = $resizeHandle.data('col')) != null ? ref1.is($col) : void 0) {\n        $resizeHandle.show();\n        return;\n      }\n      return $resizeHandle.css('left', $td.position().left + $td.outerWidth() - 5).data('td', $td).data('col', $col).show();\n    });\n    $(document).on('mouseleave.simditor-table', '.simditor-table', function(e) {\n      return $(this).find('.simditor-resize-handle').hide();\n    });\n    return $(document).on('mousedown.simditor-resize-handle', '.simditor-resize-handle', function(e) {\n      var $handle, $leftCol, $leftTd, $rightCol, $rightTd, $wrapper, minWidth, startHandleLeft, startLeftWidth, startRightWidth, startX, tableWidth;\n      $wrapper = $(this).parent('.simditor-table');\n      $handle = $(e.currentTarget);\n      $leftTd = $handle.data('td');\n      $leftCol = $handle.data('col');\n      $rightTd = $leftTd.next('td, th');\n      $rightCol = $leftCol.next('col');\n      startX = e.pageX;\n      startLeftWidth = $leftTd.outerWidth() * 1;\n      startRightWidth = $rightTd.outerWidth() * 1;\n      startHandleLeft = parseFloat($handle.css('left'));\n      tableWidth = $leftTd.closest('table').width();\n      minWidth = 50;\n      $(document).on('mousemove.simditor-resize-table', function(e) {\n        var deltaX, leftWidth, rightWidth;\n        deltaX = e.pageX - startX;\n        leftWidth = startLeftWidth + deltaX;\n        rightWidth = startRightWidth - deltaX;\n        if (leftWidth < minWidth) {\n          leftWidth = minWidth;\n          deltaX = minWidth - startLeftWidth;\n          rightWidth = startRightWidth - deltaX;\n        } else if (rightWidth < minWidth) {\n          rightWidth = minWidth;\n          deltaX = startRightWidth - minWidth;\n          leftWidth = startLeftWidth + deltaX;\n        }\n        $leftCol.attr('width', (leftWidth / tableWidth * 100) + '%');\n        $rightCol.attr('width', (rightWidth / tableWidth * 100) + '%');\n        return $handle.css('left', startHandleLeft + deltaX);\n      });\n      $(document).one('mouseup.simditor-resize-table', function(e) {\n        $editor.sync();\n        $(document).off('.simditor-resize-table');\n        return $wrapper.removeClass('resizing');\n      });\n      $wrapper.addClass('resizing');\n      return false;\n    });\n  };\n\n  TableButton.prototype._initShortcuts = function() {\n    this.editor.hotkeys.add('ctrl+alt+up', (function(_this) {\n      return function(e) {\n        _this.editMenu.find('.menu-item[data-param=insertRowAbove]').click();\n        return false;\n      };\n    })(this));\n    this.editor.hotkeys.add('ctrl+alt+down', (function(_this) {\n      return function(e) {\n        _this.editMenu.find('.menu-item[data-param=insertRowBelow]').click();\n        return false;\n      };\n    })(this));\n    this.editor.hotkeys.add('ctrl+alt+left', (function(_this) {\n      return function(e) {\n        _this.editMenu.find('.menu-item[data-param=insertColLeft]').click();\n        return false;\n      };\n    })(this));\n    return this.editor.hotkeys.add('ctrl+alt+right', (function(_this) {\n      return function(e) {\n        _this.editMenu.find('.menu-item[data-param=insertColRight]').click();\n        return false;\n      };\n    })(this));\n  };\n\n  TableButton.prototype.decorate = function($table) {\n    var $colgroup, $headRow, $resizeHandle, $tbody, $thead, $wrapper;\n    if ($table.parent('.simditor-table').length > 0) {\n      this.undecorate($table);\n    }\n    $table.wrap('<div class=\"simditor-table\"></div>');\n    $wrapper = $table.parent('.simditor-table');\n    $colgroup = $table.find('colgroup');\n    if ($table.find('thead').length < 1) {\n      $thead = $('<thead />');\n      $headRow = $table.find('tr').first();\n      $thead.append($headRow);\n      this._changeCellTag($headRow, 'th');\n      $tbody = $table.find('tbody');\n      if ($tbody.length > 0) {\n        $tbody.before($thead);\n      } else {\n        $table.prepend($thead);\n      }\n    }\n    if ($colgroup.length < 1) {\n      $colgroup = $('<colgroup/>').prependTo($table);\n      $table.find('thead tr th').each(function(i, td) {\n        var $col;\n        return $col = $('<col/>').appendTo($colgroup);\n      });\n      this.refreshTableWidth($table);\n    }\n    $resizeHandle = $('<div />', {\n      \"class\": 'simditor-resize-handle',\n      contenteditable: 'false'\n    }).appendTo($wrapper);\n    return $table.parent();\n  };\n\n  TableButton.prototype.undecorate = function($table) {\n    if (!($table.parent('.simditor-table').length > 0)) {\n      return;\n    }\n    return $table.parent().replaceWith($table);\n  };\n\n  TableButton.prototype.renderMenu = function() {\n    var $table;\n    $(\"<div class=\\\"menu-create-table\\\">\\n</div>\\n<div class=\\\"menu-edit-table\\\">\\n  <ul>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"deleteRow\\\">\\n        <span>\" + (this._t('deleteRow')) + \"</span>\\n      </a>\\n    </li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"insertRowAbove\\\">\\n        <span>\" + (this._t('insertRowAbove')) + \" ( Ctrl + Alt + ↑ )</span>\\n      </a>\\n    </li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"insertRowBelow\\\">\\n        <span>\" + (this._t('insertRowBelow')) + \" ( Ctrl + Alt + ↓ )</span>\\n      </a>\\n    </li>\\n    <li><span class=\\\"separator\\\"></span></li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"deleteCol\\\">\\n        <span>\" + (this._t('deleteColumn')) + \"</span>\\n      </a>\\n    </li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"insertColLeft\\\">\\n        <span>\" + (this._t('insertColumnLeft')) + \" ( Ctrl + Alt + ← )</span>\\n      </a>\\n    </li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"insertColRight\\\">\\n        <span>\" + (this._t('insertColumnRight')) + \" ( Ctrl + Alt + → )</span>\\n      </a>\\n    </li>\\n    <li><span class=\\\"separator\\\"></span></li>\\n    <li>\\n      <a tabindex=\\\"-1\\\" unselectable=\\\"on\\\" class=\\\"menu-item\\\"\\n        href=\\\"javascript:;\\\" data-param=\\\"deleteTable\\\">\\n        <span>\" + (this._t('deleteTable')) + \"</span>\\n      </a>\\n    </li>\\n  </ul>\\n</div>\").appendTo(this.menuWrapper);\n    this.createMenu = this.menuWrapper.find('.menu-create-table');\n    this.editMenu = this.menuWrapper.find('.menu-edit-table');\n    $table = this.createTable(6, 6).appendTo(this.createMenu);\n    this.createMenu.on('mouseenter', 'td, th', (function(_this) {\n      return function(e) {\n        var $td, $tr, $trs, num;\n        _this.createMenu.find('td, th').removeClass('selected');\n        $td = $(e.currentTarget);\n        $tr = $td.parent();\n        num = $tr.find('td, th').index($td) + 1;\n        $trs = $tr.prevAll('tr').addBack();\n        if ($tr.parent().is('tbody')) {\n          $trs = $trs.add($table.find('thead tr'));\n        }\n        return $trs.find(\"td:lt(\" + num + \"), th:lt(\" + num + \")\").addClass('selected');\n      };\n    })(this));\n    this.createMenu.on('mouseleave', function(e) {\n      return $(e.currentTarget).find('td, th').removeClass('selected');\n    });\n    return this.createMenu.on('mousedown', 'td, th', (function(_this) {\n      return function(e) {\n        var $closestBlock, $td, $tr, colNum, rowNum;\n        _this.wrapper.removeClass('menu-on');\n        if (!_this.editor.inputManager.focused) {\n          return;\n        }\n        $td = $(e.currentTarget);\n        $tr = $td.parent();\n        colNum = $tr.find('td').index($td) + 1;\n        rowNum = $tr.prevAll('tr').length + 1;\n        if ($tr.parent().is('tbody')) {\n          rowNum += 1;\n        }\n        $table = _this.createTable(rowNum, colNum, true);\n        $closestBlock = _this.editor.selection.blockNodes().last();\n        if (_this.editor.util.isEmptyNode($closestBlock)) {\n          $closestBlock.replaceWith($table);\n        } else {\n          $closestBlock.after($table);\n        }\n        _this.decorate($table);\n        _this.editor.selection.setRangeAtStartOf($table.find('th:first'));\n        _this.editor.trigger('valuechanged');\n        return false;\n      };\n    })(this));\n  };\n\n  TableButton.prototype.createTable = function(row, col, phBr) {\n    var $table, $tbody, $td, $thead, $tr, c, k, l, r, ref, ref1;\n    $table = $('<table/>');\n    $thead = $('<thead/>').appendTo($table);\n    $tbody = $('<tbody/>').appendTo($table);\n    for (r = k = 0, ref = row; 0 <= ref ? k < ref : k > ref; r = 0 <= ref ? ++k : --k) {\n      $tr = $('<tr/>');\n      $tr.appendTo(r === 0 ? $thead : $tbody);\n      for (c = l = 0, ref1 = col; 0 <= ref1 ? l < ref1 : l > ref1; c = 0 <= ref1 ? ++l : --l) {\n        $td = $(r === 0 ? '<th/>' : '<td/>').appendTo($tr);\n        if (phBr) {\n          $td.append(this.editor.util.phBr);\n        }\n      }\n    }\n    return $table;\n  };\n\n  TableButton.prototype.refreshTableWidth = function($table) {\n    return setTimeout((function(_this) {\n      return function() {\n        var cols, tableWidth;\n        tableWidth = $table.width();\n        cols = $table.find('col');\n        return $table.find('thead tr th').each(function(i, td) {\n          var $col;\n          $col = cols.eq(i);\n          return $col.attr('width', ($(td).outerWidth() / tableWidth * 100) + '%');\n        });\n      };\n    })(this), 0);\n  };\n\n  TableButton.prototype.setActive = function(active) {\n    TableButton.__super__.setActive.call(this, active);\n    if (active) {\n      this.createMenu.hide();\n      return this.editMenu.show();\n    } else {\n      this.createMenu.show();\n      return this.editMenu.hide();\n    }\n  };\n\n  TableButton.prototype._changeCellTag = function($tr, tagName) {\n    return $tr.find('td, th').each(function(i, cell) {\n      var $cell;\n      $cell = $(cell);\n      return $cell.replaceWith(\"<\" + tagName + \">\" + ($cell.html()) + \"</\" + tagName + \">\");\n    });\n  };\n\n  TableButton.prototype.deleteRow = function($td) {\n    var $newTr, $tr, index;\n    $tr = $td.parent('tr');\n    if ($tr.closest('table').find('tr').length < 1) {\n      return this.deleteTable($td);\n    } else {\n      $newTr = this._nextRow($tr);\n      if (!($newTr.length > 0)) {\n        $newTr = this._prevRow($tr);\n      }\n      index = $tr.find('td, th').index($td);\n      if ($tr.parent().is('thead')) {\n        $newTr.appendTo($tr.parent());\n        this._changeCellTag($newTr, 'th');\n      }\n      $tr.remove();\n      return this.editor.selection.setRangeAtEndOf($newTr.find('td, th').eq(index));\n    }\n  };\n\n  TableButton.prototype.insertRow = function($td, direction) {\n    var $newTr, $table, $tr, cellTag, colNum, i, index, k, ref;\n    if (direction == null) {\n      direction = 'after';\n    }\n    $tr = $td.parent('tr');\n    $table = $tr.closest('table');\n    colNum = 0;\n    $table.find('tr').each(function(i, tr) {\n      return colNum = Math.max(colNum, $(tr).find('td').length);\n    });\n    index = $tr.find('td, th').index($td);\n    $newTr = $('<tr/>');\n    cellTag = 'td';\n    if (direction === 'after' && $tr.parent().is('thead')) {\n      $tr.parent().next('tbody').prepend($newTr);\n    } else if (direction === 'before' && $tr.parent().is('thead')) {\n      $tr.before($newTr);\n      $tr.parent().next('tbody').prepend($tr);\n      this._changeCellTag($tr, 'td');\n      cellTag = 'th';\n    } else {\n      $tr[direction]($newTr);\n    }\n    for (i = k = 1, ref = colNum; 1 <= ref ? k <= ref : k >= ref; i = 1 <= ref ? ++k : --k) {\n      $(\"<\" + cellTag + \"/>\").append(this.editor.util.phBr).appendTo($newTr);\n    }\n    return this.editor.selection.setRangeAtStartOf($newTr.find('td, th').eq(index));\n  };\n\n  TableButton.prototype.deleteCol = function($td) {\n    var $newTd, $table, $tr, index, noOtherCol, noOtherRow;\n    $tr = $td.parent('tr');\n    noOtherRow = $tr.closest('table').find('tr').length < 2;\n    noOtherCol = $td.siblings('td, th').length < 1;\n    if (noOtherRow && noOtherCol) {\n      return this.deleteTable($td);\n    } else {\n      index = $tr.find('td, th').index($td);\n      $newTd = $td.next('td, th');\n      if (!($newTd.length > 0)) {\n        $newTd = $tr.prev('td, th');\n      }\n      $table = $tr.closest('table');\n      $table.find('col').eq(index).remove();\n      $table.find('tr').each(function(i, tr) {\n        return $(tr).find('td, th').eq(index).remove();\n      });\n      this.refreshTableWidth($table);\n      return this.editor.selection.setRangeAtEndOf($newTd);\n    }\n  };\n\n  TableButton.prototype.insertCol = function($td, direction) {\n    var $col, $newCol, $newTd, $table, $tr, index, tableWidth, width;\n    if (direction == null) {\n      direction = 'after';\n    }\n    $tr = $td.parent('tr');\n    index = $tr.find('td, th').index($td);\n    $table = $td.closest('table');\n    $col = $table.find('col').eq(index);\n    $table.find('tr').each((function(_this) {\n      return function(i, tr) {\n        var $newTd, cellTag;\n        cellTag = $(tr).parent().is('thead') ? 'th' : 'td';\n        $newTd = $(\"<\" + cellTag + \"/>\").append(_this.editor.util.phBr);\n        return $(tr).find('td, th').eq(index)[direction]($newTd);\n      };\n    })(this));\n    $newCol = $('<col/>');\n    $col[direction]($newCol);\n    tableWidth = $table.width();\n    width = Math.max(parseFloat($col.attr('width')) / 2, 50 / tableWidth * 100);\n    $col.attr('width', width + '%');\n    $newCol.attr('width', width + '%');\n    this.refreshTableWidth($table);\n    $newTd = direction === 'after' ? $td.next('td, th') : $td.prev('td, th');\n    return this.editor.selection.setRangeAtStartOf($newTd);\n  };\n\n  TableButton.prototype.deleteTable = function($td) {\n    var $block, $table;\n    $table = $td.closest('.simditor-table');\n    $block = $table.next('p');\n    $table.remove();\n    if ($block.length > 0) {\n      return this.editor.selection.setRangeAtStartOf($block);\n    }\n  };\n\n  TableButton.prototype.command = function(param) {\n    var $td;\n    $td = this.editor.selection.containerNode().closest('td, th');\n    if (!($td.length > 0)) {\n      return;\n    }\n    if (param === 'deleteRow') {\n      this.deleteRow($td);\n    } else if (param === 'insertRowAbove') {\n      this.insertRow($td, 'before');\n    } else if (param === 'insertRowBelow') {\n      this.insertRow($td);\n    } else if (param === 'deleteCol') {\n      this.deleteCol($td);\n    } else if (param === 'insertColLeft') {\n      this.insertCol($td, 'before');\n    } else if (param === 'insertColRight') {\n      this.insertCol($td);\n    } else if (param === 'deleteTable') {\n      this.deleteTable($td);\n    } else {\n      return;\n    }\n    return this.editor.trigger('valuechanged');\n  };\n\n  return TableButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(TableButton);\n\nStrikethroughButton = (function(superClass) {\n  extend(StrikethroughButton, superClass);\n\n  function StrikethroughButton() {\n    return StrikethroughButton.__super__.constructor.apply(this, arguments);\n  }\n\n  StrikethroughButton.prototype.name = 'strikethrough';\n\n  StrikethroughButton.prototype.icon = 'strikethrough';\n\n  StrikethroughButton.prototype.htmlTag = 'strike';\n\n  StrikethroughButton.prototype.disableTag = 'pre';\n\n  StrikethroughButton.prototype._activeStatus = function() {\n    var active;\n    active = document.queryCommandState('strikethrough') === true;\n    this.setActive(active);\n    return this.active;\n  };\n\n  StrikethroughButton.prototype.command = function() {\n    document.execCommand('strikethrough');\n    if (!this.editor.util.support.oninput) {\n      this.editor.trigger('valuechanged');\n    }\n    return $(document).trigger('selectionchange');\n  };\n\n  return StrikethroughButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(StrikethroughButton);\n\nAlignmentButton = (function(superClass) {\n  extend(AlignmentButton, superClass);\n\n  function AlignmentButton() {\n    return AlignmentButton.__super__.constructor.apply(this, arguments);\n  }\n\n  AlignmentButton.prototype.name = \"alignment\";\n\n  AlignmentButton.prototype.icon = 'align-left';\n\n  AlignmentButton.prototype.htmlTag = 'p, h1, h2, h3, h4, td, th';\n\n  AlignmentButton.prototype._init = function() {\n    this.menu = [\n      {\n        name: 'left',\n        text: this._t('alignLeft'),\n        icon: 'align-left',\n        param: 'left'\n      }, {\n        name: 'center',\n        text: this._t('alignCenter'),\n        icon: 'align-center',\n        param: 'center'\n      }, {\n        name: 'right',\n        text: this._t('alignRight'),\n        icon: 'align-right',\n        param: 'right'\n      }\n    ];\n    return AlignmentButton.__super__._init.call(this);\n  };\n\n  AlignmentButton.prototype.setActive = function(active, align) {\n    if (align == null) {\n      align = 'left';\n    }\n    if (align !== 'left' && align !== 'center' && align !== 'right') {\n      align = 'left';\n    }\n    if (align === 'left') {\n      AlignmentButton.__super__.setActive.call(this, false);\n    } else {\n      AlignmentButton.__super__.setActive.call(this, active);\n    }\n    this.el.removeClass('align-left align-center align-right');\n    if (active) {\n      this.el.addClass('align-' + align);\n    }\n    this.setIcon('align-' + align);\n    return this.menuEl.find('.menu-item').show().end().find('.menu-item-' + align).hide();\n  };\n\n  AlignmentButton.prototype._status = function() {\n    this.nodes = this.editor.selection.nodes().filter(this.htmlTag);\n    if (this.nodes.length < 1) {\n      this.setDisabled(true);\n      return this.setActive(false);\n    } else {\n      this.setDisabled(false);\n      return this.setActive(true, this.nodes.first().css('text-align'));\n    }\n  };\n\n  AlignmentButton.prototype.command = function(align) {\n    if (align !== 'left' && align !== 'center' && align !== 'right') {\n      throw new Error(\"simditor alignment button: invalid align \" + align);\n    }\n    this.nodes.css({\n      'text-align': align === 'left' ? '' : align\n    });\n    this.editor.trigger('valuechanged');\n    return this.editor.inputManager.throttledSelectionChanged();\n  };\n\n  return AlignmentButton;\n\n})(Button);\n\nSimditor.Toolbar.addButton(AlignmentButton);\n\nreturn Simditor;\n\n}));\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/scripts/uploader.js",
    "content": "(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define('simple-uploader', [\"jquery\",\"simple-module\"], function ($, SimpleModule) {\n      return (root['uploader'] = factory($, SimpleModule));\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(require(\"jquery\"),require(\"simple-module\"));\n  } else {\n    root.simple = root.simple || {};\n    root.simple['uploader'] = factory(jQuery,SimpleModule);\n  }\n}(this, function ($, SimpleModule) {\n\nvar Uploader, uploader,\n  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n  hasProp = {}.hasOwnProperty;\n\nUploader = (function(superClass) {\n  extend(Uploader, superClass);\n\n  function Uploader() {\n    return Uploader.__super__.constructor.apply(this, arguments);\n  }\n\n  Uploader.count = 0;\n\n  Uploader.prototype.opts = {\n    url: '',\n    params: null,\n    fileKey: 'upload_file',\n    connectionCount: 3\n  };\n\n  Uploader.prototype._init = function() {\n    this.files = [];\n    this.queue = [];\n    this.id = ++Uploader.count;\n    this.on('uploadcomplete', (function(_this) {\n      return function(e, file) {\n        _this.files.splice($.inArray(file, _this.files), 1);\n        if (_this.queue.length > 0 && _this.files.length < _this.opts.connectionCount) {\n          return _this.upload(_this.queue.shift());\n        } else if (_this.files.length === 0) {\n          return _this.uploading = false;\n        }\n      };\n    })(this));\n    return $(window).on('beforeunload.uploader-' + this.id, (function(_this) {\n      return function(e) {\n        if (!_this.uploading) {\n          return;\n        }\n        e.originalEvent.returnValue = _this._t('leaveConfirm');\n        return _this._t('leaveConfirm');\n      };\n    })(this));\n  };\n\n  Uploader.prototype.generateId = (function() {\n    var id;\n    id = 0;\n    return function() {\n      return id += 1;\n    };\n  })();\n\n  Uploader.prototype.upload = function(file, opts) {\n    var f, i, key, len;\n    if (opts == null) {\n      opts = {};\n    }\n    if (file == null) {\n      return;\n    }\n    if ($.isArray(file) || file instanceof FileList) {\n      for (i = 0, len = file.length; i < len; i++) {\n        f = file[i];\n        this.upload(f, opts);\n      }\n    } else if ($(file).is('input:file')) {\n      key = $(file).attr('name');\n      if (key) {\n        opts.fileKey = key;\n      }\n      this.upload($.makeArray($(file)[0].files), opts);\n    } else if (!file.id || !file.obj) {\n      file = this.getFile(file);\n    }\n    if (!(file && file.obj)) {\n      return;\n    }\n    $.extend(file, opts);\n    if (this.files.length >= this.opts.connectionCount) {\n      this.queue.push(file);\n      return;\n    }\n    if (this.triggerHandler('beforeupload', [file]) === false) {\n      return;\n    }\n    this.files.push(file);\n    this._xhrUpload(file);\n    return this.uploading = true;\n  };\n\n  Uploader.prototype.getFile = function(fileObj) {\n    var name, ref, ref1;\n    if (fileObj instanceof window.File || fileObj instanceof window.Blob) {\n      name = (ref = fileObj.fileName) != null ? ref : fileObj.name;\n    } else {\n      return null;\n    }\n    return {\n      id: this.generateId(),\n      url: this.opts.url,\n      params: this.opts.params,\n      fileKey: this.opts.fileKey,\n      name: name,\n      size: (ref1 = fileObj.fileSize) != null ? ref1 : fileObj.size,\n      ext: name ? name.split('.').pop().toLowerCase() : '',\n      obj: fileObj\n    };\n  };\n\n  Uploader.prototype._xhrUpload = function(file) {\n    var formData, k, ref, v;\n    formData = new FormData();\n    formData.append(file.fileKey, file.obj);\n    formData.append(\"original_filename\", file.name);\n    if (file.params) {\n      ref = file.params;\n      for (k in ref) {\n        v = ref[k];\n        formData.append(k, v);\n      }\n    }\n    return file.xhr = $.ajax({\n      url: file.url,\n      data: formData,\n      processData: false,\n      contentType: false,\n      type: 'POST',\n      headers: {\n        'X-File-Name': encodeURIComponent(file.name)\n      },\n      xhr: function() {\n        var req;\n        req = $.ajaxSettings.xhr();\n        if (req) {\n          req.upload.onprogress = (function(_this) {\n            return function(e) {\n              return _this.progress(e);\n            };\n          })(this);\n        }\n        return req;\n      },\n      progress: (function(_this) {\n        return function(e) {\n          if (!e.lengthComputable) {\n            return;\n          }\n          return _this.trigger('uploadprogress', [file, e.loaded, e.total]);\n        };\n      })(this),\n      error: (function(_this) {\n        return function(xhr, status, err) {\n          return _this.trigger('uploaderror', [file, xhr, status]);\n        };\n      })(this),\n      success: (function(_this) {\n        return function(result) {\n          _this.trigger('uploadprogress', [file, file.size, file.size]);\n          _this.trigger('uploadsuccess', [file, result]);\n          return $(document).trigger('uploadsuccess', [file, result, _this]);\n        };\n      })(this),\n      complete: (function(_this) {\n        return function(xhr, status) {\n          return _this.trigger('uploadcomplete', [file, xhr.responseText]);\n        };\n      })(this)\n    });\n  };\n\n  Uploader.prototype.cancel = function(file) {\n    var f, i, len, ref;\n    if (!file.id) {\n      ref = this.files;\n      for (i = 0, len = ref.length; i < len; i++) {\n        f = ref[i];\n        if (f.id === file * 1) {\n          file = f;\n          break;\n        }\n      }\n    }\n    this.trigger('uploadcancel', [file]);\n    if (file.xhr) {\n      file.xhr.abort();\n    }\n    return file.xhr = null;\n  };\n\n  Uploader.prototype.readImageFile = function(fileObj, callback) {\n    var fileReader, img;\n    if (!$.isFunction(callback)) {\n      return;\n    }\n    img = new Image();\n    img.onload = function() {\n      return callback(img);\n    };\n    img.onerror = function() {\n      return callback();\n    };\n    if (window.FileReader && FileReader.prototype.readAsDataURL && /^image/.test(fileObj.type)) {\n      fileReader = new FileReader();\n      fileReader.onload = function(e) {\n        return img.src = e.target.result;\n      };\n      return fileReader.readAsDataURL(fileObj);\n    } else {\n      return callback();\n    }\n  };\n\n  Uploader.prototype.destroy = function() {\n    var file, i, len, ref;\n    this.queue.length = 0;\n    ref = this.files;\n    for (i = 0, len = ref.length; i < len; i++) {\n      file = ref[i];\n      this.cancel(file);\n    }\n    $(window).off('.uploader-' + this.id);\n    return $(document).off('.uploader-' + this.id);\n  };\n\n  Uploader.i18n = {\n    'zh-CN': {\n      leaveConfirm: '正在上传文件，如果离开上传会自动取消'\n    }\n  };\n\n  Uploader.locale = 'zh-CN';\n\n  return Uploader;\n\n})(SimpleModule);\n\nuploader = function(opts) {\n  return new Uploader(opts);\n};\n\nreturn uploader;\n\n}));\n"
  },
  {
    "path": "public/vendor/laravel-admin-ext/simditor/simditor-2.3.25/styles/simditor.css",
    "content": "/*!\n* Simditor v2.3.25\n* http://simditor.tower.im/\n* 2019-05-01\n*/\n@font-face {\n  font-family: 'Simditor';\n  src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABp8AA4AAAAAKmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAaYAAAABoAAAAcdO8GE09TLzIAAAG0AAAARQAAAGAQ+ZFXY21hcAAAAkgAAABRAAABWuA2Gx9jdnQgAAAEgAAAAAoAAAAKAwQAxGZwZ20AAAKcAAABsQAAAmUPtC+nZ2x5ZgAABNgAABPeAAAgZG/p6QxoZWFkAAABRAAAADAAAAA2BvuCgGhoZWEAAAF0AAAAHgAAACQH9QTlaG10eAAAAfwAAABKAAAAlHv7AItsb2NhAAAEjAAAAEwAAABMi4qTXm1heHAAAAGUAAAAIAAAACABRwHNbmFtZQAAGLgAAAEFAAAB12vS/ulwb3N0AAAZwAAAAJ4AAAFsyCrvunByZXAAAARQAAAALgAAAC6w8isUeNpjYGRgYADiKAkPy3h+m68M8swfgCIMF0/IVyDo/84sFswJQC4HAxNIFAAZwAnyeNpjYGRgYE5gmMAQzWLBwPD/O5AEiqAAVQBa6wPkAAAAAQAAACUAoAAKAAAAAAACAAEAAgAWAAABAAEpAAAAAHjaY2BhnsA4gYGVgYGpn+kgAwNDL4RmfMxgxMgCFGVgZWaAAUYBBjTQwMDwQY454X8BQzRzAsMEIJcRSVaBgREAQ9oK6QAAAHjaY8xhUGQAAsYABgbmDwjMYsEgxCzBwMDkAOQnALEEgx1UjhNMr4BjTqBakDxC/wqIPsYMqJoEKIbpk0C1C4zXM3DA5AEzchbtAAB42mNgYGBmgGAZBkYGEAgB8hjBfBYGCyDNxcDBwASEDAy8DAof5P7/B6sCsRmAbOb/3/8/FWCD6oUCRjaIkWA2SCcLAyoAqmZlGN4AALmUC0kAAAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkALvhTZIIK4uwsh2YzlC2o1c5GJcwAdQIFGD9msGaChTpE2DkAskPoFPiJSZNYmiNDs7s3POmTNLypGqd2m956lzFkjhboNmm34npNpFgAfS9Y1GRtrBIy02M3rlun2/j8FmNOVOGkB5z1vKQ0bTTqAW7bl/Mj+D4T7/yzwHg5Zmmp5aZyE9hMB8M25p8DWjWXf9QV+xOlwNBoYU01Tc9cdUyv+W5lxtGbY2M5p3cCEiP5gGaGqtjUDTnzqkej6OYgly+WysDSamrD/JRHBhMl3VVC0zvnZwn+wsOtikSnPgAQ6wVZ6Ch+OjCYX0LYkyS0OEg9gqMULEJIdCTjl3sj8pUD6ShDFvktLOuGGtgXHkNTCozdMcvsxmU9tbhzB+EUfw3S/Gkg4+sqE2RoTYjlgKYAKRkFFVvqHGcy+LAbnU/jMQJWB5+u1fJwKtOzYRL2VtnWOMFYKe3zbf+WXF3apc50Whu3dVNVTplOZDL2ff4xFPj4XhoLHgzed9f6NA7Q2LGw2aA8GQ3o3e/9FadcRV3gsf2W81s7EWAAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYWbAUKwAAAAAAowCFACECfwAAAAAAKgAqACoAKgAqACoAfgEkAcAChAK+A2oElgU2BbQGxgeYCBgIPgjGCU4KZgqKCq4LQAuYDDoMcAzuDXINoA4MDngO4g86D6QQMnjazVl5cBvXeX9vF4tdXHsBuwBBEvdBAgQXxOIgRPGQSEkULcoJJds6Yku2Na6TKJXHsnx0XNptHcvNpLaSJpkczthV68Zu0ulbQE58qXXaHK3j7ThjD6PmmnQmaTydSaqkmdbxkFC/tyApinXiuP2jlcC37/vegX3f8fu+7wExKIkQLjCPIxbxaNjCyNja4l3sTyqWm/vu1hbLQBdZLGVzlN3i3a7lrS1M+aaSVPKmkk5iz+tf/zrz+MrRJHMDgp3US3/tyjEvIQn1oiJCWd6dx7kGrsexLuGwjlm3AXSQ0h5M+5M4D3/1MNbx4b5AoPNmIIDdgQB0v/e9AJ78JqemVLfT4uN0sDtAHzBtvvvYsIK5aqWgcF6XyizRR+f+K9cAhRB9T3TpGTbCRlAARdAEehiRCYNwNulNLCmkzyZ+g6g2GTSIaJKCTUo2JpMGSS0RZBOp0kohb7E9lerzFMlghSDZ4nGRbLGJRpdXbGsKFy2UUlRL7Gk2iaacYzlfeCITbhJeJY0msvycorZj8eYWylMV4JFBtaXlKs1mszyS5UNh3azUqvlhnOLZsAZEvZpLp9gU35jAjfo4lvM5GEzn6xkzXAnrWogXMR/DITfvTuMy9hSyr0XSx+6VXa6+1NFbTrwrPvD+v8OevSHFLzT9cYbZgqXZ+U9cVahEC7nrTo6ZN33w2fdsCykvTOaaCTc+/vn7XbOf27X840CNEYXYRJYp6gEOswb24YPlHbsHtIgSvO1Tt/aNgglRWTJTIMsB9FeIDIAcTZKzidsmIYNoNumpEE0mvSDCQcMqgKDq0ecmDv/sY0grekXil4n0opXCvyTxF4Foi34pWCQpuZ1IxYPFdpK2LWAmPpT4UNotKmqzBTx4kEQTPe0X44lkatj5h6+gyFQUI8s9AErADCghpxChSUIq6W9aWq+iEh0EzeVzKTffqK/+V2sg03wjXKk33FSeImbcYKhhN4/fd9OemVtlr18f6ZF5rjKH9R0+33cKp0KsIC1o7ti2EsbaPoaf9TE+XHZxvoCWEf8N39gvBlhmi0fAkSinC+Kfdr71j6KX8/f3IsaxwaMgt13oOvSHqDWPUJHst4lgUJPbYrSVYGw6EzbJmG2FpioVMiaTCDWwcZMkbLKjgskBgwSWSMZuZQLUIDMxT7EVyNBuIAi2mZGtEbDEg/A3kgGDi/RuGQODQ1aiABSWA3WgrMgWkMa2JhlTyCTIBLxUhbO706lhZhxXc/mUgetmuFGpm3xYc6d4dz+mQgGbBJFN4OowNjCYIp9vmGG9EdZDsFbEwRoYbDIFk0O6mazUmTcx5w8nC4c/c/3p7WF9p8ozvPRZIiZYjLPTXh4L3N6Rxs1jUZ8Wcgksy/T3NAXGODmw0+tiotqg/xavsPwVwesV2K2Cl/ly0tv5m+Nbkjur+2+/7oX3J1hmBPMc5rMcJ/LTyd/77O8O9A6F5NSO04195WQ+hpmymxFwMCDybv/ymxm6EW2o/U5c+g/m28xHURrwSg9J2A0n5mmTq1J0gqZeiYPXQUOHmZdkeY9cVJ94Qi1CR37iiU30Y7+Cv0av4c9F0L2EBtEcWkTENMiMo3vJJmmD6OAuVwEILZGs3Z7IqkKRTNokK1uz4EAl29oDOp2cAMXJTZJVqPpm1afj+kChYlJIKSnnIv3R4qCjbWEGtF0ojU5SbaclIGQ12k+n6QqJUJVXdFCTG9SVA43XzUauVm3UzUoYAEUC7eaom4RA5WHeBPWKbIpqnBoHIFEjhqktgCHkc+z3qVyXq7TtjF6156NX3+4OMLwh9MVGPrhn7u6bzQd+7Ar7hq87cLq0N+lnmKasspMnM/trJQXf2tUIbTKzV98yuyunv6/pYVhmf9zcfnhPKp4+ox3a2j88qgd0r9fDjw8N4giTLrtu7Js5MCBRXHcjz6XbQK6HURiV0RSaR9ejD+BB1KpT3xq3iatCxmXC2hTHAeNlm0QNMmyTsk32GeSQTVIGydvkZoNsN8n7bKqSbZXWzM3UpWau8hQx+W2DsEtkrkIYmzCytQPUMW8TvtLaMU8n7Zj2FNvq/A7QV8IkXruleilbpaFiXrYMX5FE6J7WCVAgwyoqgJYWy+ym2tihtEOl4V1OSFCfllE4lb+KEvOK5RsCCPOqbTc3WHB0KvsB2LwB4NaVtkcMhuhEVrV4DVhIIUCNq8TdtIajYCS9TbIP4lqTlFVSapJDyrlYojCUoWtSKsk2SV4hg2AIDV5L10zNCSSpfMOJQXy+Pom1dK4KCFmrplNAmxWdBhrerHHaBrNJVnRM19fSbgoG2uZBZRP9QH3r87X+5Ph7s4m+SHlMqgT2v8wOhKfi0WA5tnNwNBceZ3ax+73Cyn5qF8wXBO/y6+fHsSsyMD/GXrORv7F/iOm/ZmQbPzhXzVaiiSwX3+a/cFAyG2IuEksmx40Zw5+KJNvH6Xza4J81Gmc8WnHXD//pMi+y3u3aFbr0XfYi8wvIlCQUR3nUANQ+gVoatSvIF1iKyzwkCgap2sRHKfDjccen05TKgz/PQmhcsvwZgHJsW0KiUrF24yKy+jSKxi4OUf+sloDw+AMCJWbGgUhmsgkgyiN1UAqoobL2xJvkiX4Ff7PcL0wemlz7sNddKd63YG7sn3KW/bPTdv5iXUaMsZlzpQAZJ+l6EvAujibRAmpxVG4Zk4puK6QHIDWT+G0yBDFtyiDCEgiI9NitHoE6T48CzoNlawB8LWmTpt1qDlB+c8RTtLaBBAHB4IhFnMrVlGp9bBXOgHaiD6W5txmH9K50oTT51F0ZSdOkzNg1CX2xNInfeEvuDPAmS/jDdz2lSbOSds2Yqiecif+NSY/tXT87tRwDzn81OgK2cx96BD2GHkStj1NZ+G1r6D1gGJxhZfabVDDWnnsrVDTWzB1Ab7Wt4x8GumZYxx4A+lGwp8cN8skl4rGtyCiMeGQLAabIZegP2tbsrfQpWwngTR2F/kHbuvsh+pStdwHvtvuh/xHb+hNHflmI1hvkUafYvpHmNo3j2q8ff6fzN39fQ+maLNWXgysJr3COGtQVzUZu5wdvzf9N5lxuZmvZFX+2Vssyv8hVD62b8A/We69ctvBn3oL5NsOX93lh5VHna46B5Gk+4Ln0ZfYx9jqomhqQDT7u1CNRm+x0ckE3RZBrneC013ayvrklmmLnZCsGPrFgk+10hm6TBdlinFLESfq25yC+JPtmds7vpWiixyBmTO+DALGgWKH98GTUds/4xLVORNkJgeJphm9u2TZNJxfcMHmGTrpWsYp0UUpt53bPvduBomy9CmlBio8xkO+5U8Ns3h2C7KgClZ4zAElUlx5m8hSSYiy3llnlqo38WnLVTan4cL0SZtOyfEoaVlnFzXkTMUnkZVaV7pBLUuer3ec+mCCXNk7A3zfK+4wHyyeNSqV8euTUFdTDsOQUpBcyz/sHEi6fW2FVAzaS8He6zwV5SL5ywr+PPDi8YJTvGDkNTmScuoJCLpqzuUbBj3kkohgaRu9FrbCDY4D/BkV/2SBF0I8BOcQSCUH9I1scaMNL8b6FOYpZ2NPFsl7gJ2yrDFrCUAsSf5P0KiQAemDDgPkCRACnXFSICOK+jOzJWiOMs5BXa0o3rwYPyYU3e8utDowz9y2/fu4QTuDE8r1O4vwAtAu17PK91N3ZB3JVZncXt19YPk4nnt0I9erKfsdCv5CrVimEQZ2HE2wEvwE4piEAKgrYfjiubFjKOghvjDNsJKGv7NcTCZ35gp7Af3ucdmmDOAcTLzr1dz8qoXHI1OqoFaTSjDr5r8upuyEphqoa5DcNJg9ftdewrqYR0yzQsg7RWll1zMo5OhjT5leovUP6a9xZXvR6Rf4sa6wlsuzLTgx81BHMsc39y3PwR/38Wc4r4BnBy53t/OjXwsMrV+QXby8PdoM8fG8tD4Gn8giCLax7l/6/lccFKgrOEQobeacCYYY7L1BR8I5cOrO/uUAEpz56kj2KPGBrSdRE74ZM/r3oJPo2apWpVAbsFiQVxTY7UIZUe4DCH2TycZtca5DDNkVPipR3OEi5HfBRtmTwOB8IT7aOQe+ITY7IVhVT77VOUaycAxEyHOCcrHzRo4fHZ3bMUw/0qWRvkxxT2kMlp3gmR1Qy0CRV5UtGvt44cPD4CcrMqOQk+G60rKhfFELBzFCpStlxhaQBQNV2vTGzgzIOK2R3k0yoX9oytn3uxpuOf4Ay9yrkdif5hpyb3oXpYY36O9VBRc91ExcnbVmvTnN5qLMrkw7YNvRwns+vQS6f24Csrg1r8YY9w+vf9J9nQDmBwJlAdMEre+GzuB4LmbMAp6WHys97xdOfkoYp/H7aKyknLhOqeH5tCr59fV3nQnenH61v/fEzHOd0MuuxdtGZ0tNF2Be8uvfTFI9L0mdOe6Tfukz4/efXpow7K3BifYvr13btYhM6x0wBNgWQiojbcIBJNCzJASZ0OfaAVTNFzbfsSXiWfZqE38BvaHHoAieuOfvM4hnmIdgniJwdeKjYIFtf3ehKsJlxVtH1+O61/STYvBsrwH63OvVCHnK+21CLp3Yrmt3AQG9wIGh4TRo9+rppr7lEhiAHli0MZhmwSUC2PNBT7JZHobHDE+nmu9aQCbY6thVsFSuWKwPPgEomwf4yCRgwyhQHMlWnZqf3hs6zscGzx3AMO1kWFHIsmMhqcjyO012zoLbDvKLFNC32hNNen9CXv0LR+6JvNH0mPeq7qCe+JPSc0aQzknYGsnR12dfnW1adyaufs+foAtoMDCQS+Fp9mSbRy3pYptKWu/eGzv1XDlURFYbk3BjmQHN55+YDxD5A0S0kKeo5jLzRXuotOcVKZegJkexOp3KrHhPDzhVpig/r/Ophqo16HNcT7NFO68a/nPD5592Ka/Cu6bueeur1ffOqV+iBF4K32X0fvp6Jdh7tLMwFfPNuhquNPfXTp+b3ymEdXpeebfauVYxefd8gZGlpVEQm+ghqFalWDUeZoLKwQWIm6YVUrUIPYcJZqgYZWYKMnCbjPaBOzSaabCWh12+TftnKdi90aqBXrQdSMJ87XzAq9KRJpc0yAT/t9qtPS8Fccdh0UrVwAOYJSmawVKaDvUo7OzA04iRmWMRUJhOYiqRC7+dieC17cK0+VTmXcMt6AgSYyMn1BLOo3f7w7Ron9vW5xD037BFdfX1i50eFrYXCVjznPJ57tbP06qu4gHtXOp9eWcG3YHZm374ZsdcjiqXR0ZIoenoxR2eufjp/jAuv0kVMb3fBytq9+zTEORP8wgtZVA61/FR+gMuQT3hAWpJBgRpZnF9RW4ybd+7DsYnT+SSfxmwS15Ia/sZRvGtxrvOZubvwyT/C0ZV76ZYr/mefZe7s/NnKv54/j7o1p+ODEajeG2gvIl6jFUs2TCiefHarN12tQAEEzlc0wNAwGTWsJv1inxdciI+DT2WUViBqwguQotrWI8MGlTVWiOZcklbqZi5Pr0kbE2wDm0HIhGNMHIf4fIoH/KXgXAN0FnEoxgKe83j0SU7jyo3OT3rLW7BY6U8KOD17j7qQjhSjewUWL2l/z8xh3tu7sCI35EQk78J4gMGPnFh5zCWUXALfozE/7/xL4Rt7x09oMpv0cB5BjEkMK8jaeZz7RFT1cC6c9HKrZ/+Y8/uGgnT0eUQ8Br30gvxUMgFPCKoQBo5t0h85ggA+YcOKdC/mXxx/c5FezBN1WCT6i5zFML8UiffF5ya/8eYFOsARDCMijATpSOhFjohyG4k4WCSMDAbrDRbbHtpSvkT5LGp7xZDu3NFP+RFmWI9XlNRgl7X2j0xFaQ7ZSAaT9M4xHcdmrRFM5nGS5bLMvUJHjuID/hMn+Jv8LzMv9XU+4bmE2Mhs5/nOeUa+ufPq/bHY1Y828SgeuQULy986fHhVDmBvzEtgeSEaGVBX2VBV6w6ga2BOWUANiKCN/AQex9gMa+zFlWeDmd7snj/4UEIKM8K7m+cPHnwt0BPfw39wiNVEE3+nuYdi/GrOtlbX51bvNSAv1gx6tZE1KKDXDKjeKcCv3lVkN+VY+U10423G2YuASwcomLJPStoFTeoIlKChBwB5+XVnJNId+aQzcqukHZ+lPdr8w6/tof9H51opU4J5pXuux52Ro92Ru52Rh/5PzvVOc+grz7XxWBtP9T86FIuESyfZZ5ivQkSKoRTUDEQwWu6gTlHOY7c4NUxRLmBArMFQRlgZCnEegUJciKYNCmG6+KrHsZbna3VwPBGHIQPNSbg2gScxZs0gVJ34z3fjqbypLn3zHtfCG2bIJd3w+B2l2jjLYu3I157BLuary52g12X4vcNy9OWTh4WouyT6XEWfznGM2rmEv3XgAMV/qgPmTuf34RQ6hloC1YAO2OTcdSlxeHHJeVfiW6J8XabVJb33S3ZvO1ibnsJKKlA1p5ok5txrs/R3PWTpcDJKasq5YKQ/meqGxIqubSyQsZLm82nFrIUbGtdI19Jamv1cvFCIL5+lLf7p4g1HFheP3IC3PHZk8QbmzkK80+cM/DBe6Aj4dxYXOw+ev+ee8/HvOoHm8t1mEU2hQ6s2lbBbCVrwo0QBCv4ep1im59rm3G52Iz8cg+Y42+E0mX4o+pXhStOJ7z2QxrWH6036gw2RFCfVu1xer1b5EN8hGS1i51e2tdsAsDkIPGYliDdesazes7CRI9OdoekjR6bxa8mk4OL7XB7OJ3aGoMLP4ddyVS7j5kK/36mLGfHnojgBj4/h49BOiPiadnfd9BGRDfJ9nKua6657hIdVGMMiWEOnOmvoYoT+C93/Vj8AAHjafY+/asMwEIc/JU6aQhsyltJBQ6eCg20IgdCt1GTwlNJsHUJijCCxwHaeqVufpM/Qta/Ri31ZOkTipO9Ov/sjYMwXhm7d8qBsGPGs3OOKd+U+j3wqB6L5UR5wY4zykJGxojTBtXj3bdaJDROelHvS91W5z5IP5UA038oD7vhVHjIxY1I8JQ2ObUs1lkz2C6S+bNzWl7XNMnHfRHNgJ2cjykoC7rBzjRdakVNwZM/m9LDKi+N+I3AunrYJhagsCVMiuRdi/0t20Vg0IXOxRJQxs26U1FdFbpNpZBf23FowTsJ5mETx7OKEa+ldyedcO9GpRzcF67yqnS9tLHUvVfgDz/ZF8gAAAHjabc25DgFhGIXh/53B2Pd9J9HPN/bSWolC4iI0OjfgxhFO6SQnT/k6z333errI/dvkc5yHh+98YsRJEJAkRZoMWXLkKVCkRJkKVWrUadCkRZsOXXr0GTBkxDh2vp5O3u4SPO63YxiG0mQkp3Im53Ihl3Il13Ijt3In9/Igjz9NfVPf1Df1TX1T39Q39U19U9/UN/VNfVPfDm8tR0peAAB42mNgYGBkAIKLcceVwfQJ+XIoXQEARe8GegAA) format(\"woff\");\n  font-weight: normal;\n  font-style: normal;\n}\n.simditor-icon {\n  display: inline-block;\n  font: normal normal normal 14px/1 'Simditor';\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n  transform: translate(0, 0);\n}\n\n.simditor-icon-code:before {\n  content: '\\f000';\n}\n\n.simditor-icon-bold:before {\n  content: '\\f001';\n}\n\n.simditor-icon-italic:before {\n  content: '\\f002';\n}\n\n.simditor-icon-underline:before {\n  content: '\\f003';\n}\n\n.simditor-icon-times:before {\n  content: '\\f004';\n}\n\n.simditor-icon-strikethrough:before {\n  content: '\\f005';\n}\n\n.simditor-icon-list-ol:before {\n  content: '\\f006';\n}\n\n.simditor-icon-list-ul:before {\n  content: '\\f007';\n}\n\n.simditor-icon-quote-left:before {\n  content: '\\f008';\n}\n\n.simditor-icon-table:before {\n  content: '\\f009';\n}\n\n.simditor-icon-link:before {\n  content: '\\f00a';\n}\n\n.simditor-icon-picture-o:before {\n  content: '\\f00b';\n}\n\n.simditor-icon-minus:before {\n  content: '\\f00c';\n}\n\n.simditor-icon-indent:before {\n  content: '\\f00d';\n}\n\n.simditor-icon-outdent:before {\n  content: '\\f00e';\n}\n\n.simditor-icon-unlink:before {\n  content: '\\f00f';\n}\n\n.simditor-icon-caret-down:before {\n  content: '\\f010';\n}\n\n.simditor-icon-caret-right:before {\n  content: '\\f011';\n}\n\n.simditor-icon-upload:before {\n  content: '\\f012';\n}\n\n.simditor-icon-undo:before {\n  content: '\\f013';\n}\n\n.simditor-icon-smile-o:before {\n  content: '\\f014';\n}\n\n.simditor-icon-tint:before {\n  content: '\\f015';\n}\n\n.simditor-icon-font:before {\n  content: '\\f016';\n}\n\n.simditor-icon-html5:before {\n  content: '\\f017';\n}\n\n.simditor-icon-mark:before {\n  content: '\\f018';\n}\n\n.simditor-icon-align-center:before {\n  content: '\\f019';\n}\n\n.simditor-icon-align-left:before {\n  content: '\\f01a';\n}\n\n.simditor-icon-align-right:before {\n  content: '\\f01b';\n}\n\n.simditor-icon-font-minus:before {\n  content: '\\f01c';\n}\n\n.simditor-icon-markdown:before {\n  content: '\\f01d';\n}\n\n.simditor-icon-checklist:before {\n  content: '\\f01e';\n}\n\n.simditor {\n  position: relative;\n  border: 1px solid #c9d8db;\n}\n.simditor .simditor-wrapper {\n  position: relative;\n  background: #ffffff;\n}\n.simditor .simditor-wrapper > textarea {\n  display: none !important;\n  width: 100%;\n  box-sizing: border-box;\n  font-family: monaco;\n  font-size: 16px;\n  line-height: 1.6;\n  border: none;\n  padding: 22px 15px 40px;\n  min-height: 300px;\n  outline: none;\n  background: transparent;\n  resize: none;\n}\n.simditor .simditor-wrapper .simditor-placeholder {\n  display: none;\n  position: absolute;\n  left: 0;\n  z-index: 0;\n  padding: 22px 15px;\n  font-size: 16px;\n  font-family: arial, sans-serif;\n  line-height: 1.5;\n  color: #999999;\n  background: transparent;\n}\n.simditor .simditor-wrapper.toolbar-floating .simditor-toolbar {\n  position: fixed;\n  top: 0;\n  z-index: 10;\n  box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);\n}\n.simditor .simditor-wrapper .simditor-image-loading {\n  width: 100%;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n}\n.simditor .simditor-wrapper .simditor-image-loading .progress {\n  width: 100%;\n  height: 100%;\n  background: rgba(0, 0, 0, 0.4);\n  position: absolute;\n  bottom: 0;\n  left: 0;\n}\n.simditor .simditor-body {\n  padding: 22px 15px 40px;\n  min-height: 300px;\n  outline: none;\n  cursor: text;\n  position: relative;\n  z-index: 1;\n  background: transparent;\n}\n.simditor .simditor-body a.selected {\n  background: #b3d4fd;\n}\n.simditor .simditor-body a.simditor-mention {\n  cursor: pointer;\n}\n.simditor .simditor-body .simditor-table {\n  position: relative;\n}\n.simditor .simditor-body .simditor-table.resizing {\n  cursor: col-resize;\n}\n.simditor .simditor-body .simditor-table .simditor-resize-handle {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 10px;\n  height: 100%;\n  cursor: col-resize;\n}\n.simditor .simditor-body pre {\n  /*min-height: 28px;*/\n  box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  word-wrap: break-word !important;\n  white-space: pre-wrap !important;\n}\n.simditor .simditor-body img {\n  cursor: pointer;\n}\n.simditor .simditor-body img.selected {\n  box-shadow: 0 0 0 4px #cccccc;\n}\n.simditor .simditor-paste-bin {\n  position: absolute;\n  width: 1px;\n  height: 20px;\n  font-size: 1px;\n  line-height: 1px;\n  overflow: hidden;\n  padding: 0;\n  margin: 0;\n  opacity: 0;\n  -webkit-user-select: text;\n}\n.simditor .simditor-toolbar {\n  border-bottom: 1px solid #eeeeee;\n  background: #ffffff;\n  width: 100%;\n}\n.simditor .simditor-toolbar > ul {\n  margin: 0;\n  padding: 0 0 0 6px;\n  list-style: none;\n}\n.simditor .simditor-toolbar > ul > li {\n  position: relative;\n  display: inline-block;\n  font-size: 0;\n}\n.simditor .simditor-toolbar > ul > li > span.separator {\n  display: inline-block;\n  background: #cfcfcf;\n  width: 1px;\n  height: 18px;\n  margin: 11px 15px;\n  vertical-align: middle;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item {\n  display: inline-block;\n  width: 46px;\n  height: 40px;\n  outline: none;\n  color: #333333;\n  font-size: 15px;\n  line-height: 40px;\n  vertical-align: middle;\n  text-align: center;\n  text-decoration: none;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item span {\n  opacity: 0.6;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item span.simditor-icon {\n  display: inline;\n  line-height: normal;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item:hover span {\n  opacity: 1;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.active {\n  background: #eeeeee;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.active span {\n  opacity: 1;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.disabled {\n  cursor: default;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.disabled span {\n  opacity: 0.3;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title span:before {\n  content: \"H\";\n  font-size: 19px;\n  font-weight: bold;\n  font-family: 'Times New Roman';\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h1 span:before {\n  content: 'H1';\n  font-size: 18px;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h2 span:before {\n  content: 'H2';\n  font-size: 18px;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-title.active-h3 span:before {\n  content: 'H3';\n  font-size: 18px;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-image {\n  position: relative;\n  overflow: hidden;\n}\n.simditor .simditor-toolbar > ul > li > .toolbar-item.toolbar-item-image > input[type=file] {\n  position: absolute;\n  right: 0px;\n  top: 0px;\n  opacity: 0;\n  font-size: 100px;\n  cursor: pointer;\n}\n.simditor .simditor-toolbar > ul > li.menu-on .toolbar-item {\n  position: relative;\n  z-index: 20;\n  background: #ffffff;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);\n}\n.simditor .simditor-toolbar > ul > li.menu-on .toolbar-item span {\n  opacity: 1;\n}\n.simditor .simditor-toolbar > ul > li.menu-on .toolbar-menu {\n  display: block;\n}\n.simditor .simditor-toolbar .toolbar-menu {\n  display: none;\n  position: absolute;\n  top: 40px;\n  left: 0;\n  z-index: 21;\n  background: #ffffff;\n  text-align: left;\n  box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\n}\n.simditor .simditor-toolbar .toolbar-menu:before {\n  content: '';\n  display: block;\n  width: 46px;\n  height: 4px;\n  background: #ffffff;\n  position: absolute;\n  top: -3px;\n  left: 0;\n}\n.simditor .simditor-toolbar .toolbar-menu ul {\n  min-width: 160px;\n  list-style: none;\n  margin: 0;\n  padding: 10px 1px;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item {\n  display: block;\n  font-size: 16px;\n  line-height: 2em;\n  padding: 0 10px;\n  text-decoration: none;\n  color: #666666;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item:hover {\n  background: #f6f6f6;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h1 {\n  font-size: 24px;\n  color: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h2 {\n  font-size: 22px;\n  color: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h3 {\n  font-size: 20px;\n  color: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h4 {\n  font-size: 18px;\n  color: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .menu-item.menu-item-h5 {\n  font-size: 16px;\n  color: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu ul > li .separator {\n  display: block;\n  border-top: 1px solid #cccccc;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  margin: 6px 0;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color {\n  width: 96px;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list {\n  height: 40px;\n  margin: 10px 6px 6px 10px;\n  padding: 0;\n  min-width: 0;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li {\n  float: left;\n  margin: 0 4px 4px 0;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color {\n  display: block;\n  width: 16px;\n  height: 16px;\n  background: #dfdfdf;\n  border-radius: 2px;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color:hover {\n  opacity: 0.8;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color.font-color-default {\n  background: #333333;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-1 {\n  background: #E33737;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-2 {\n  background: #e28b41;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-3 {\n  background: #c8a732;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-4 {\n  background: #209361;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-5 {\n  background: #418caf;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-6 {\n  background: #aa8773;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-color .color-list li .font-color-7 {\n  background: #999999;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table {\n  background: #ffffff;\n  padding: 1px;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table {\n  border: none;\n  border-collapse: collapse;\n  border-spacing: 0;\n  table-layout: fixed;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td {\n  padding: 0;\n  cursor: pointer;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td:before {\n  width: 16px;\n  height: 16px;\n  border: 1px solid #ffffff;\n  background: #f3f3f3;\n  display: block;\n  content: \"\";\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-create-table table td.selected:before {\n  background: #cfcfcf;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table {\n  display: none;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-table .menu-edit-table ul li {\n  white-space: nowrap;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image {\n  position: relative;\n  overflow: hidden;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-image .menu-item-upload-image input[type=file] {\n  position: absolute;\n  right: 0px;\n  top: 0px;\n  opacity: 0;\n  font-size: 100px;\n  cursor: pointer;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment {\n  width: 100%;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment ul {\n  min-width: 100%;\n}\n.simditor .simditor-toolbar .toolbar-menu.toolbar-menu-alignment .menu-item {\n  text-align: center;\n}\n.simditor .simditor-popover {\n  display: none;\n  padding: 5px 8px 0;\n  background: #ffffff;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);\n  border-radius: 2px;\n  position: absolute;\n  z-index: 2;\n}\n.simditor .simditor-popover .settings-field {\n  margin: 0 0 5px 0;\n  font-size: 12px;\n  height: 25px;\n  line-height: 25px;\n}\n.simditor .simditor-popover .settings-field label {\n  display: inline-block;\n  margin: 0 5px 0 0;\n}\n.simditor .simditor-popover .settings-field input[type=text] {\n  display: inline-block;\n  width: 200px;\n  box-sizing: border-box;\n  font-size: 12px;\n}\n.simditor .simditor-popover .settings-field input[type=text].image-size {\n  width: 83px;\n}\n.simditor .simditor-popover .settings-field .times {\n  display: inline-block;\n  width: 26px;\n  font-size: 12px;\n  text-align: center;\n}\n.simditor .simditor-popover.link-popover .btn-unlink, .simditor .simditor-popover.image-popover .btn-upload, .simditor .simditor-popover.image-popover .btn-restore {\n  display: inline-block;\n  margin: 0 0 0 5px;\n  color: #333333;\n  font-size: 14px;\n  outline: 0;\n}\n.simditor .simditor-popover.link-popover .btn-unlink span, .simditor .simditor-popover.image-popover .btn-upload span, .simditor .simditor-popover.image-popover .btn-restore span {\n  opacity: 0.6;\n}\n.simditor .simditor-popover.link-popover .btn-unlink:hover span, .simditor .simditor-popover.image-popover .btn-upload:hover span, .simditor .simditor-popover.image-popover .btn-restore:hover span {\n  opacity: 1;\n}\n.simditor .simditor-popover.image-popover .btn-upload {\n  position: relative;\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.simditor .simditor-popover.image-popover .btn-upload input[type=file] {\n  position: absolute;\n  right: 0px;\n  top: 0px;\n  opacity: 0;\n  height: 100%;\n  width: 28px;\n}\n.simditor.simditor-mobile .simditor-wrapper.toolbar-floating .simditor-toolbar {\n  position: absolute;\n  top: 0;\n  z-index: 10;\n  box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);\n}\n\n.simditor .simditor-body, .editor-style {\n  font-size: 16px;\n  font-family: arial, sans-serif;\n  line-height: 1.6;\n  color: #333;\n  outline: none;\n  word-wrap: break-word;\n}\n.simditor .simditor-body > :first-child, .editor-style > :first-child {\n  margin-top: 0 !important;\n}\n.simditor .simditor-body a, .editor-style a {\n  color: #4298BA;\n  text-decoration: none;\n  word-break: break-all;\n}\n.simditor .simditor-body a:visited, .editor-style a:visited {\n  color: #4298BA;\n}\n.simditor .simditor-body a:hover, .editor-style a:hover {\n  color: #0F769F;\n}\n.simditor .simditor-body a:active, .editor-style a:active {\n  color: #9E792E;\n}\n.simditor .simditor-body a:hover, .simditor .simditor-body a:active, .editor-style a:hover, .editor-style a:active {\n  outline: 0;\n}\n.simditor .simditor-body h1, .simditor .simditor-body h2, .simditor .simditor-body h3, .simditor .simditor-body h4, .simditor .simditor-body h5, .simditor .simditor-body h6, .editor-style h1, .editor-style h2, .editor-style h3, .editor-style h4, .editor-style h5, .editor-style h6 {\n  font-weight: normal;\n  margin: 40px 0 20px;\n  color: #000000;\n}\n.simditor .simditor-body h1, .editor-style h1 {\n  font-size: 24px;\n}\n.simditor .simditor-body h2, .editor-style h2 {\n  font-size: 22px;\n}\n.simditor .simditor-body h3, .editor-style h3 {\n  font-size: 20px;\n}\n.simditor .simditor-body h4, .editor-style h4 {\n  font-size: 18px;\n}\n.simditor .simditor-body h5, .editor-style h5 {\n  font-size: 16px;\n}\n.simditor .simditor-body h6, .editor-style h6 {\n  font-size: 16px;\n}\n.simditor .simditor-body p, .simditor .simditor-body div, .editor-style p, .editor-style div {\n  word-wrap: break-word;\n  margin: 0 0 15px 0;\n  color: #333;\n  word-wrap: break-word;\n}\n.simditor .simditor-body b, .simditor .simditor-body strong, .editor-style b, .editor-style strong {\n  font-weight: bold;\n}\n.simditor .simditor-body i, .simditor .simditor-body em, .editor-style i, .editor-style em {\n  font-style: italic;\n}\n.simditor .simditor-body u, .editor-style u {\n  text-decoration: underline;\n}\n.simditor .simditor-body strike, .simditor .simditor-body del, .editor-style strike, .editor-style del {\n  text-decoration: line-through;\n}\n.simditor .simditor-body ul, .simditor .simditor-body ol, .editor-style ul, .editor-style ol {\n  list-style: disc outside none;\n  margin: 15px 0;\n  padding: 0 0 0 40px;\n  line-height: 1.6;\n}\n.simditor .simditor-body ul li, .simditor .simditor-body ol li, .editor-style ul li, .editor-style ol li {\n  list-style-type: inherit;\n}\n.simditor .simditor-body ul ul, .simditor .simditor-body ul ol, .simditor .simditor-body ol ul, .simditor .simditor-body ol ol, .editor-style ul ul, .editor-style ul ol, .editor-style ol ul, .editor-style ol ol {\n  padding-left: 30px;\n}\n.simditor .simditor-body ul ul, .simditor .simditor-body ol ul, .editor-style ul ul, .editor-style ol ul {\n  list-style: circle outside none;\n}\n.simditor .simditor-body ul ul ul, .simditor .simditor-body ol ul ul, .editor-style ul ul ul, .editor-style ol ul ul {\n  list-style: square outside none;\n}\n.simditor .simditor-body ol, .editor-style ol {\n  list-style: decimal;\n}\n.simditor .simditor-body blockquote, .editor-style blockquote {\n  border-left: 6px solid #ddd;\n  padding: 5px 0 5px 10px;\n  margin: 15px 0 15px 15px;\n}\n.simditor .simditor-body blockquote > :first-child, .editor-style blockquote > :first-child {\n  margin-top: 0;\n}\n.simditor .simditor-body code, .editor-style code {\n  display: inline-block;\n  padding: 0 4px;\n  margin: 0 5px;\n  background: #eeeeee;\n  border-radius: 3px;\n  font-size: 13px;\n  font-family: 'monaco', 'Consolas', \"Liberation Mono\", Courier, monospace;\n  word-break: break-all;\n  word-wrap: break-word;\n}\n.simditor .simditor-body pre, .editor-style pre {\n  padding: 10px 5px 10px 10px;\n  margin: 15px 0;\n  display: block;\n  line-height: 18px;\n  background: #F0F0F0;\n  border-radius: 3px;\n  font-size: 13px;\n  font-family: 'monaco', 'Consolas', \"Liberation Mono\", Courier, monospace;\n  white-space: pre;\n  word-wrap: normal;\n  overflow-x: auto;\n}\n.simditor .simditor-body pre code, .editor-style pre code {\n  display: block;\n  padding: 0;\n  margin: 0;\n  background: none;\n  border-radius: 0;\n}\n.simditor .simditor-body hr, .editor-style hr {\n  display: block;\n  height: 0px;\n  border: 0;\n  border-top: 1px solid #ccc;\n  margin: 15px 0;\n  padding: 0;\n}\n.simditor .simditor-body table, .editor-style table {\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: collapse;\n  border-spacing: 0;\n  margin: 15px 0;\n}\n.simditor .simditor-body table thead, .editor-style table thead {\n  background-color: #f9f9f9;\n}\n.simditor .simditor-body table td, .simditor .simditor-body table th, .editor-style table td, .editor-style table th {\n  min-width: 40px;\n  height: 30px;\n  border: 1px solid #ccc;\n  vertical-align: top;\n  padding: 2px 4px;\n  text-align: left;\n  box-sizing: border-box;\n}\n.simditor .simditor-body table td.active, .simditor .simditor-body table th.active, .editor-style table td.active, .editor-style table th.active {\n  background-color: #ffffee;\n}\n.simditor .simditor-body img, .editor-style img {\n  margin: 0 5px;\n  vertical-align: middle;\n}\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/css/adminlte.css",
    "content": "/*!\n *   AdminLTE v3.0.0-beta.2\n *   Author: Colorlib\n *\t Website: AdminLTE.io <http://adminlte.io>\n *   License: Open source - MIT <http://opensource.org/licenses/MIT>\n */\n/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #ffffff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #ffffff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.2;\n  color: inherit;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled, .chart-legend, .contacts-list, .users-list, .mailbox-attachments {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #ffffff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-break: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #ffffff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n  box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25);\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n  box-shadow: none;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -7.5px;\n  margin-left: -7.5px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 7.5px;\n  padding-left: 7.5px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n  background-color: transparent;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #ffffff;\n  background-color: #212529;\n  border-color: #32383e;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #ffffff;\n  background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #ffffff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #ffffff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), none;\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #ffffff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  margin-bottom: 0;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.8125rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(2.875rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #ffffff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: center right calc(0.375em + 0.1875rem);\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #ffffff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #ffffff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: 2.25rem;\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: center right calc(0.375em + 0.1875rem);\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #ffffff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: none;\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n  box-shadow: none;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n  box-shadow: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n  box-shadow: none;\n}\n\n.btn-primary:hover {\n  color: #ffffff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: none, 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #ffffff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #ffffff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n  box-shadow: none;\n}\n\n.btn-secondary:hover {\n  color: #ffffff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: none, 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #ffffff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #ffffff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #ffffff;\n  background-color: #28a745;\n  border-color: #28a745;\n  box-shadow: none;\n}\n\n.btn-success:hover {\n  color: #ffffff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: none, 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #ffffff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #ffffff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #ffffff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n  box-shadow: none;\n}\n\n.btn-info:hover {\n  color: #ffffff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: none, 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #ffffff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #ffffff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #1F2D3D;\n  background-color: #ffc107;\n  border-color: #ffc107;\n  box-shadow: none;\n}\n\n.btn-warning:hover {\n  color: #1F2D3D;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: none, 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #1F2D3D;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #1F2D3D;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(221, 171, 15, 0.5);\n}\n\n.btn-danger {\n  color: #ffffff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n  box-shadow: none;\n}\n\n.btn-danger:hover {\n  color: #ffffff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: none, 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #ffffff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #ffffff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #1F2D3D;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n  box-shadow: none;\n}\n\n.btn-light:hover {\n  color: #1F2D3D;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: none, 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #1F2D3D;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #1F2D3D;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(215, 218, 222, 0.5);\n}\n\n.btn-dark {\n  color: #ffffff;\n  background-color: #343a40;\n  border-color: #343a40;\n  box-shadow: none;\n}\n\n.btn-dark:hover {\n  color: #ffffff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: none, 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #ffffff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #ffffff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #ffffff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #ffffff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #ffffff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #ffffff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #ffffff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #ffffff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #1F2D3D;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #1F2D3D;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #ffffff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #ffffff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #1F2D3D;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #1F2D3D;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #ffffff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #ffffff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0 rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: none;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: none;\n  box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #ffffff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group.show .dropdown-toggle {\n  box-shadow: none;\n}\n\n.btn-group.show .dropdown-toggle.btn-link {\n  box-shadow: none;\n}\n\n.btn-group-vertical {\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(2.875rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.8125rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 2.5rem;\n}\n\n.custom-control-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #ffffff;\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), none;\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #ffffff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n  box-shadow: none;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -2.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #dee2e6;\n  border: #adb5bd solid 1px;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -2.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23ffffff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n  box-shadow: none;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23ffffff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23ffffff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 3.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -3.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-3.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #dee2e6;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center/8px 10px;\n  background-color: #ffffff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #ffffff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select-sm {\n  height: calc(1.8125rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 75%;\n}\n\n.custom-select-lg {\n  height: calc(2.875rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 125%;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(2.25rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(2.25rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #ffffff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0 0 rgba(0, 0, 0, 0);\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: 2.25rem;\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: calc(1rem + 0);\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0;\n  margin-left: 0;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n  box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1);\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #ffffff;\n  border-color: #dee2e6 #dee2e6 #ffffff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #ffffff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 0.5rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 0.5rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 1rem;\n    padding-left: 1rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 1rem;\n  padding-left: 1rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #ffffff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #ffffff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: white;\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #ffffff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.75);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.75)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-text a {\n  color: #ffffff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #ffffff;\n}\n\n.card {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #ffffff;\n  background-clip: border-box;\n  border: 0 solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 0) calc(0.25rem - 0) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 0 solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 0) calc(0.25rem - 0);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 0);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 0);\n  border-top-right-radius: calc(0.25rem - 0);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 0);\n  border-bottom-left-radius: calc(0.25rem - 0);\n}\n\n.card-deck {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-deck .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n  }\n  .card-deck .card {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    margin-right: 7.5px;\n    margin-bottom: 0;\n    margin-left: 7.5px;\n  }\n}\n\n.card-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-group > .card {\n  margin-bottom: 7.5px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n  border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n  border-bottom: 0;\n  border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n  margin-bottom: 0;\n}\n\n.breadcrumb {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #ffffff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 2;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 1;\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #ffffff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #ffffff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #ffffff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #ffffff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #ffffff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #ffffff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #ffffff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #ffffff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #ffffff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #1F2D3D;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #1F2D3D;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #ffffff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #ffffff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #1F2D3D;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #1F2D3D;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #ffffff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #ffffff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close, .alert-dismissible .mailbox-attachment-close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n  box-shadow: inset 0 0.1rem 0.1rem rgba(0, 0, 0, 0.1);\n}\n\n.progress-bar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-pack: center;\n  justify-content: center;\n  color: #ffffff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: progress-bar-stripes 1s linear infinite;\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #ffffff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #ffffff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #ffffff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-horizontal {\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n  margin-right: -1px;\n  margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n  margin-right: 0;\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-sm .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-md .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-lg .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-xl .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n  margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #ffffff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close, .mailbox-attachment-close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: .5;\n}\n\n.close:hover, .mailbox-attachment-close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .mailbox-attachment-close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus, .mailbox-attachment-close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close, button.mailbox-attachment-close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\na.close.disabled, a.disabled.mailbox-attachment-close {\n  pointer-events: none;\n}\n\n.toast {\n  max-width: 350px;\n  overflow: hidden;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  -webkit-backdrop-filter: blur(10px);\n  backdrop-filter: blur(10px);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal-dialog-scrollable {\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.5);\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem;\n  border-bottom: 1px solid #e9ecef;\n  border-top-left-radius: 0.3rem;\n  border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close, .modal-header .mailbox-attachment-close {\n  padding: 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 1rem;\n  border-top: 1px solid #e9ecef;\n  border-bottom-right-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n  }\n  .modal-content {\n    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #ffffff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #ffffff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #ffffff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #ffffff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #ffffff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  color: inherit;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease;\n  transition: transform 0.6s ease;\n  transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #ffffff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #ffffff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #ffffff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: spinner-border .75s linear infinite;\n  animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: spinner-grow .75s linear infinite;\n  animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary, .alert-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.alert-primary:hover, a.bg-primary:focus, a.alert-primary:focus,\nbutton.bg-primary:hover,\nbutton.alert-primary:hover,\nbutton.bg-primary:focus,\nbutton.alert-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success, .alert-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.alert-success:hover, a.bg-success:focus, a.alert-success:focus,\nbutton.bg-success:hover,\nbutton.alert-success:hover,\nbutton.bg-success:focus,\nbutton.alert-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info, .alert-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.alert-info:hover, a.bg-info:focus, a.alert-info:focus,\nbutton.bg-info:hover,\nbutton.alert-info:hover,\nbutton.bg-info:focus,\nbutton.alert-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning, .alert-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.alert-warning:hover, a.bg-warning:focus, a.alert-warning:focus,\nbutton.bg-warning:hover,\nbutton.alert-warning:hover,\nbutton.bg-warning:focus,\nbutton.alert-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger, .alert-danger,\n.alert-error {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.alert-danger:hover,\na.alert-error:hover, a.bg-danger:focus, a.alert-danger:focus,\na.alert-error:focus,\nbutton.bg-danger:hover,\nbutton.alert-danger:hover,\nbutton.alert-error:hover,\nbutton.bg-danger:focus,\nbutton.alert-danger:focus,\nbutton.alert-error:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #ffffff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #ffffff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex, .info-box, .info-box .info-box-icon {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center, .info-box .info-box-icon {\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center, .info-box .info-box-icon {\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2, .progress-group,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3, .small-box, .card, .info-box, .callout,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4, .card-body.p-0 .table thead > tr > th:last-of-type,\n.card-body.p-0 .table thead > tr > td:last-of-type,\n.card-body.p-0 .table tbody > tr > th:last-of-type,\n.card-body.p-0 .table tbody > tr > td:last-of-type,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4, .card-body.p-0 .table thead > tr > th:first-of-type,\n.card-body.p-0 .table thead > tr > td:first-of-type,\n.card-body.p-0 .table tbody > tr > th:first-of-type,\n.card-body.p-0 .table tbody > tr > td:first-of-type,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #ffffff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  overflow-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #ffffff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n\nhtml {\n  scroll-behavior: smooth;\n}\n\nhtml,\nbody,\n.wrapper {\n  min-height: 100%;\n}\n\n.wrapper {\n  position: relative;\n}\n\n.wrapper .content-wrapper {\n  min-height: calc(100vh - 112px);\n}\n\n.layout-boxed .wrapper {\n  box-shadow: 0 0 10 rgba(0, 0, 0, 0.3);\n}\n\n.layout-boxed .wrapper, .layout-boxed .wrapper::before {\n  margin: 0 auto;\n  max-width: 1250px;\n}\n\n.layout-boxed .wrapper .main-sidebar {\n  left: inherit;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed.sidebar-collapse .wrapper .brand-link {\n  height: calc(3.5rem + 1px);\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1035;\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n.layout-navbar-fixed.layout-fixed .wrapper .sidebar {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper a.anchor {\n  display: block;\n  position: relative;\n  top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n  height: calc(3.5rem + 1px);\n  transition: width 0.3s ease-in-out;\n  width: 4.6rem;\n}\n\n.layout-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n}\n\n.layout-navbar-fixed .wrapper .brand-link {\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  transition: width 0.3s ease-in-out;\n  width: 250px;\n  z-index: 1037;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n  background-color: #343a40;\n}\n\n.layout-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n  background-color: #ffffff;\n}\n\n.layout-navbar-fixed .wrapper .content-wrapper {\n  margin-top: calc(3.5rem + 1px);\n}\n\n.layout-navbar-fixed .wrapper .main-header {\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1035;\n}\n\n.layout-navbar-not-fixed .wrapper .brand-link {\n  position: static;\n}\n\n.layout-navbar-not-fixed .wrapper .sidebar,\n.layout-navbar-not-fixed .wrapper .content-wrapper {\n  margin-top: 0;\n}\n\n.layout-navbar-not-fixed .wrapper .main-header {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .layout-sm-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-sm-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1037;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n    background-color: #343a40;\n  }\n  .layout-sm-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-sm-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-sm-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1035;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .sidebar,\n  .layout-sm-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-sm-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .layout-md-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-md-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1037;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n    background-color: #343a40;\n  }\n  .layout-md-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-md-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-md-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1035;\n  }\n  .layout-md-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-md-navbar-not-fixed .wrapper .sidebar,\n  .layout-md-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-md-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .layout-lg-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-lg-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1037;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n    background-color: #343a40;\n  }\n  .layout-lg-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-lg-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-lg-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1035;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .sidebar,\n  .layout-lg-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-lg-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-navbar-fixed.layout-fixed .wrapper .sidebar {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper a.anchor {\n    display: block;\n    position: relative;\n    top: calc((3.5rem + 1px + (0.5rem * 2)) / -1);\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .brand-link {\n    height: calc(3.5rem + 1px);\n    transition: width 0.3s ease-in-out;\n    width: 4.6rem;\n  }\n  .layout-xl-navbar-fixed .wrapper.sidebar-collapse .main-sidebar:hover .brand-link {\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n  }\n  .layout-xl-navbar-fixed .wrapper .brand-link {\n    overflow: hidden;\n    position: fixed;\n    top: 0;\n    transition: width 0.3s ease-in-out;\n    width: 250px;\n    z-index: 1037;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-primary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-primary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-secondary .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-secondary .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-success .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-success .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-info .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-info .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-warning .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-warning .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-danger .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-danger .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-light .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-light .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-dark-dark .brand-link {\n    background-color: #343a40;\n  }\n  .layout-xl-navbar-fixed .wrapper .sidebar-light-dark .brand-link {\n    background-color: #ffffff;\n  }\n  .layout-xl-navbar-fixed .wrapper .content-wrapper {\n    margin-top: calc(3.5rem + 1px);\n  }\n  .layout-xl-navbar-fixed .wrapper .main-header {\n    left: 0;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1035;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .brand-link {\n    position: static;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .sidebar,\n  .layout-xl-navbar-not-fixed .wrapper .content-wrapper {\n    margin-top: 0;\n  }\n  .layout-xl-navbar-not-fixed .wrapper .main-header {\n    position: static;\n  }\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1035;\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n.layout-footer-not-fixed .wrapper .content-wrapper {\n  margin-bottom: 0;\n}\n\n.layout-footer-fixed .wrapper .main-footer {\n  bottom: 0;\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1035;\n}\n\n.layout-footer-fixed .wrapper .content-wrapper {\n  margin-bottom: calc(3.5rem + 1px);\n}\n\n.layout-footer-not-fixed .wrapper .main-footer {\n  position: static;\n}\n\n@media (min-width: 576px) {\n  .layout-sm-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1035;\n  }\n  .layout-sm-footer-fixed .wrapper .content-wrapper {\n    margin-bottom: calc(3.5rem + 1px);\n  }\n  .layout-sm-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 768px) {\n  .layout-md-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1035;\n  }\n  .layout-md-footer-fixed .wrapper .content-wrapper {\n    margin-bottom: calc(3.5rem + 1px);\n  }\n  .layout-md-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 992px) {\n  .layout-lg-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1035;\n  }\n  .layout-lg-footer-fixed .wrapper .content-wrapper {\n    margin-bottom: calc(3.5rem + 1px);\n  }\n  .layout-lg-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n@media (min-width: 1200px) {\n  .layout-xl-footer-fixed .wrapper .main-footer {\n    bottom: 0;\n    left: 0;\n    position: fixed;\n    right: 0;\n    z-index: 1035;\n  }\n  .layout-xl-footer-fixed .wrapper .content-wrapper {\n    margin-bottom: calc(3.5rem + 1px);\n  }\n  .layout-xl-footer-not-fixed .wrapper .main-footer {\n    position: static;\n  }\n}\n\n.layout-top-nav .wrapper {\n  margin-left: 0;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  bottom: inherit;\n  height: inherit;\n}\n\n.layout-top-nav .wrapper .brand-image {\n  height: 33px;\n}\n\n.layout-top-nav .wrapper .main-sidebar {\n  display: none;\n}\n\n.layout-top-nav .wrapper .content-wrapper,\n.layout-top-nav .wrapper .main-header,\n.layout-top-nav .wrapper .main-footer {\n  margin-left: 0;\n}\n\n@media (min-width: 576px) {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    transition: margin-left 0.3s ease-in-out;\n    margin-left: 250px;\n    z-index: 3000;\n  }\n}\n\n@media (min-width: 576px) and (prefers-reduced-motion: reduce) {\n  .content-wrapper,\n  .main-footer,\n  .main-header {\n    transition: none;\n  }\n}\n\n@media (min-width: 576px) {\n  .sidebar-collapse .content-wrapper, .sidebar-collapse\n  .main-footer, .sidebar-collapse\n  .main-header {\n    margin-left: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .content-wrapper, .content-wrapper::before,\n  .main-footer,\n  .main-footer::before,\n  .main-header,\n  .main-header::before {\n    margin-left: 0;\n  }\n}\n\n.content-wrapper {\n  background: #f4f6f9;\n}\n\n.content-wrapper > .content {\n  padding: 0 0.5rem;\n}\n\n.main-sidebar, .main-sidebar::before {\n  transition: margin-left 0.3s ease-in-out, width 0.3s ease-in-out;\n  width: 250px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .main-sidebar, .main-sidebar::before {\n    transition: none;\n  }\n}\n\n.sidebar-collapse .main-sidebar, .sidebar-collapse .main-sidebar::before {\n  margin-left: -250px;\n}\n\n@media (max-width: 767.98px) {\n  .main-sidebar, .main-sidebar::before {\n    box-shadow: none !important;\n    margin-left: -250px;\n  }\n  .sidebar-open .main-sidebar, .sidebar-open .main-sidebar::before {\n    margin-left: 0;\n  }\n}\n\n:not(.layout-fixed) .main-sidebar {\n  height: inherit;\n  min-height: 100%;\n  position: absolute;\n  top: 0;\n}\n\n.layout-fixed .brand-link {\n  width: 250px;\n}\n\n.layout-fixed .main-sidebar {\n  bottom: 0;\n  float: none;\n  height: 100vh;\n  left: 0;\n  position: fixed;\n  top: 0;\n}\n\n.main-footer {\n  background: #ffffff;\n  border-top: 1px solid #dee2e6;\n  color: #869099;\n  padding: 1rem;\n}\n\n.content-header {\n  padding: 15px 0.5rem;\n}\n\n.content-header h1 {\n  font-size: 1.8rem;\n  margin: 0;\n}\n\n.content-header .breadcrumb {\n  background: transparent;\n  line-height: 1.8rem;\n  margin-bottom: 0;\n  padding: 0;\n}\n\n.hold-transition .content-wrapper,\n.hold-transition .main-header,\n.hold-transition .main-footer {\n  transition: none !important;\n}\n\n.main-header {\n  border-bottom: 1px solid #dee2e6;\n  z-index: 1032;\n}\n\n.main-header .nav-link {\n  height: 2.5rem;\n  position: relative;\n}\n\n.main-header .navbar-nav .nav-item {\n  margin: 0;\n}\n\n.main-header .navbar-nav[class*='-right'] .dropdown-menu {\n  left: auto;\n  margin-top: -3px;\n  right: 0;\n}\n\n@media (max-width: 575.98px) {\n  .main-header .navbar-nav[class*='-right'] .dropdown-menu {\n    left: 0;\n    right: auto;\n  }\n}\n\n.navbar-img {\n  height: calc(3.5rem + 1px)/2;\n  width: auto;\n}\n\n.navbar-badge {\n  font-size: .6rem;\n  font-weight: 300;\n  padding: 2px 4px;\n  position: absolute;\n  right: 5px;\n  top: 9px;\n}\n\n.btn-navbar {\n  background-color: transparent;\n  border-left-width: 0;\n}\n\n.form-control-navbar {\n  border-right-width: 0;\n}\n\n.form-control-navbar + .input-group-append {\n  margin-left: 0;\n}\n\n.form-control-navbar,\n.btn-navbar {\n  transition: none;\n}\n\n.navbar-dark .form-control-navbar,\n.navbar-dark .btn-navbar {\n  background-color: rgba(255, 255, 255, 0.2);\n  border: 0;\n}\n\n.navbar-dark .form-control-navbar::-webkit-input-placeholder,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-moz-placeholder,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:-ms-input-placeholder,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::-ms-input-placeholder,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar::placeholder,\n.navbar-dark .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(255, 255, 255, 0.6);\n}\n\n.navbar-dark .form-control-navbar:focus,\n.navbar-dark .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: rgba(255, 255, 255, 0.6);\n  border: 0 !important;\n  color: #343a40;\n}\n\n.navbar-light .form-control-navbar,\n.navbar-light .btn-navbar {\n  background-color: #f2f4f6;\n  border: 0;\n}\n\n.navbar-light .form-control-navbar:ms-placeholder, .navbar-light .form-control-navbar:moz-placeholder, .navbar-light .form-control-navbar::moz-placeholder, .navbar-light .form-control-navbar::-webkit-input-placeholder,\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:ms-placeholder, .navbar-light .form-control-navbar:moz-placeholder, .navbar-light .form-control-navbar::moz-placeholder, .navbar-light .form-control-navbar::-moz-placeholder,\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:ms-placeholder, .navbar-light .form-control-navbar:moz-placeholder, .navbar-light .form-control-navbar::moz-placeholder, .navbar-light .form-control-navbar:-ms-input-placeholder,\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:ms-placeholder, .navbar-light .form-control-navbar:moz-placeholder, .navbar-light .form-control-navbar::moz-placeholder, .navbar-light .form-control-navbar::-ms-input-placeholder,\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:ms-placeholder, .navbar-light .form-control-navbar:moz-placeholder, .navbar-light .form-control-navbar::moz-placeholder, .navbar-light .form-control-navbar::placeholder,\n.navbar-light .form-control-navbar + .input-group-append > .btn-navbar {\n  color: rgba(0, 0, 0, 0.6);\n}\n\n.navbar-light .form-control-navbar:focus,\n.navbar-light .form-control-navbar:focus + .input-group-append .btn-navbar {\n  background-color: #e9ecef;\n  border: 0 !important;\n  color: #343a40;\n}\n\n.brand-link {\n  display: block;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  padding: 0.8125rem 0.5rem;\n  transition: width 0.3s ease-in-out;\n  white-space: nowrap;\n}\n\n.brand-link:hover {\n  color: #ffffff;\n  text-decoration: none;\n}\n\n[class*='sidebar-dark'] .brand-link {\n  border-bottom: 1px solid #4b545c;\n  color: rgba(255, 255, 255, 0.8);\n}\n\n[class*='sidebar-light'] .brand-link {\n  border-bottom: 1px solid #dee2e6;\n  color: rgba(0, 0, 0, 0.8);\n}\n\n.brand-image {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 34px;\n  width: auto;\n}\n\n.brand-image-xs {\n  float: left;\n  line-height: .8;\n  margin-left: .8rem;\n  margin-right: .5rem;\n  margin-top: -3px;\n  max-height: 34px;\n  width: auto;\n}\n\n.brand-image-xl {\n  line-height: .8;\n  margin-bottom: -10px;\n  margin-top: -14px;\n  max-height: 40px;\n  width: auto;\n}\n\n.main-sidebar {\n  height: 100vh;\n  overflow-y: hidden;\n  z-index: 1036;\n}\n\n.sidebar {\n  height: calc(100% - 4rem);\n  overflow-y: auto;\n  padding-bottom: 0;\n  padding-left: 0.5rem;\n  padding-right: 0.5rem;\n  padding-top: 0;\n}\n\n.user-panel {\n  position: relative;\n}\n\n[class*='sidebar-dark'] .user-panel {\n  border-bottom: 1px solid #4f5962;\n}\n\n[class*='sidebar-light'] .user-panel {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.user-panel,\n.user-panel .info {\n  overflow: hidden;\n  white-space: nowrap;\n}\n\n.user-panel .image {\n  display: inline-block;\n  padding-left: 0.8rem;\n}\n\n.user-panel img {\n  height: auto;\n  width: 2.1rem;\n}\n\n.user-panel .info {\n  display: inline-block;\n  padding: 5px 5px 5px 10px;\n}\n\n.user-panel .status,\n.user-panel .dropdown-menu {\n  font-size: 0.875rem;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  margin-bottom: .2rem;\n}\n\n.nav-sidebar .nav-item > .nav-link .right {\n  transition: -webkit-transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s;\n  transition: transform ease-in-out 0.3s, -webkit-transform ease-in-out 0.3s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .nav-sidebar .nav-item > .nav-link .right {\n    transition: none;\n  }\n}\n\n.nav-sidebar .nav-link > p > .right {\n  position: absolute;\n  right: 1rem;\n  top: 12px;\n}\n\n.nav-sidebar .nav-link > p > .right:nth-child(2) {\n  right: 2.5rem;\n}\n\n.nav-sidebar .menu-open > .nav-treeview {\n  display: block;\n}\n\n.nav-sidebar .menu-open > .nav-link i.right {\n  -webkit-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n.nav-sidebar > .nav-item {\n  margin-bottom: 0;\n}\n\n.nav-sidebar > .nav-item .nav-icon {\n  font-size: 1.2rem;\n  margin-right: .2rem;\n  text-align: center;\n  width: 1.6rem;\n}\n\n.nav-sidebar > .nav-item .nav-icon.fa, .nav-sidebar > .nav-item .nav-icon.fas, .nav-sidebar > .nav-item .nav-icon.far, .nav-sidebar > .nav-item .nav-icon.fab, .nav-sidebar > .nav-item .nav-icon.glyphicon, .nav-sidebar > .nav-item .nav-icon.ion {\n  font-size: 1.1rem;\n}\n\n.nav-sidebar > .nav-item .float-right {\n  margin-top: 3px;\n}\n\n.nav-sidebar .nav-treeview {\n  display: none;\n  list-style: none;\n  padding: 0;\n}\n\n.nav-sidebar .nav-treeview > .nav-item > .nav-link > .nav-icon {\n  width: 1.6rem;\n}\n\n.nav-sidebar.nav-child-indent .nav-treeview {\n  padding-left: 1rem;\n}\n\n.nav-sidebar .nav-header {\n  font-size: .9rem;\n  padding: 0.5rem;\n}\n\n.nav-sidebar .nav-header:not(:first-of-type) {\n  padding: 1.7rem 1rem .5rem;\n}\n\n.nav-sidebar .nav-link p {\n  display: inline-block;\n  margin: 0;\n}\n\n#sidebar-overlay {\n  background-color: rgba(0, 0, 0, 0.1);\n  bottom: 0;\n  display: none;\n  left: 0;\n  position: fixed;\n  right: 0;\n  top: 0;\n  z-index: 1035;\n}\n\n@media (max-width: 991.98px) {\n  .sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n@media (min-width: 576px) {\n  .sidebar-mini-md.sidebar-open #sidebar-overlay {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .sidebar-mini-md.sidebar-open #sidebar-overlay {\n    display: block;\n  }\n}\n\n[class*='sidebar-light-'] {\n  background-color: #ffffff;\n}\n\n[class*='sidebar-light-'] .user-panel a:hover {\n  color: #212529;\n}\n\n[class*='sidebar-light-'] .user-panel .status {\n  background: #f4f4f5;\n  color: #343a40;\n}\n\n[class*='sidebar-light-'] .user-panel .status:hover, [class*='sidebar-light-'] .user-panel .status:focus, [class*='sidebar-light-'] .user-panel .status:active {\n  background: #ececed;\n  color: #212529;\n}\n\n[class*='sidebar-light-'] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: #e7e7e8;\n}\n\n[class*='sidebar-light-'] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*='sidebar-light-'] .nav-sidebar > .nav-item > .nav-link:active, [class*='sidebar-light-'] .nav-sidebar > .nav-item > .nav-link:focus {\n  color: #343a40;\n}\n\n[class*='sidebar-light-'] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*='sidebar-light-'] .nav-sidebar > .nav-item:hover > .nav-link {\n  background-color: #f4f4f5;\n  color: #212529;\n}\n\n[class*='sidebar-light-'] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #ffffff;\n}\n\n[class*='sidebar-light-'] .nav-sidebar > .nav-item > .nav-treeview {\n  background: transparent;\n}\n\n[class*='sidebar-light-'] .nav-header {\n  background: inherit;\n  color: #292d32;\n}\n\n[class*='sidebar-light-'] .sidebar a {\n  color: #343a40;\n}\n\n[class*='sidebar-light-'] .sidebar a:hover {\n  text-decoration: none;\n}\n\n[class*='sidebar-light-'] .nav-treeview > .nav-item > .nav-link {\n  color: #777;\n}\n\n[class*='sidebar-light-'] .nav-treeview > .nav-item > .nav-link.active, [class*='sidebar-light-'] .nav-treeview > .nav-item > .nav-link.active:hover {\n  background-color: #f4f4f5;\n  color: #212529;\n}\n\n[class*='sidebar-light-'] .nav-treeview > .nav-item > .nav-link:hover {\n  background-color: #f4f4f5;\n}\n\n[class*='sidebar-dark-'] {\n  background-color: #343a40;\n}\n\n[class*='sidebar-dark-'] .user-panel a:hover {\n  color: #ffffff;\n}\n\n[class*='sidebar-dark-'] .user-panel .status {\n  background: rgba(255, 255, 255, 0.1);\n  color: #C2C7D0;\n}\n\n[class*='sidebar-dark-'] .user-panel .status:hover, [class*='sidebar-dark-'] .user-panel .status:focus, [class*='sidebar-dark-'] .user-panel .status:active {\n  background: rgba(247, 247, 247, 0.1);\n  color: #ffffff;\n}\n\n[class*='sidebar-dark-'] .user-panel .dropdown-menu {\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);\n  border-color: rgba(242, 242, 242, 0.1);\n}\n\n[class*='sidebar-dark-'] .user-panel .dropdown-item {\n  color: #212529;\n}\n\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-link:active {\n  color: #C2C7D0;\n}\n\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item.menu-open > .nav-link,\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item:hover > .nav-link,\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #ffffff;\n}\n\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-link.active {\n  color: #ffffff;\n}\n\n[class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-treeview {\n  background: transparent;\n}\n\n[class*='sidebar-dark-'] .nav-header {\n  background: inherit;\n  color: #d0d4db;\n}\n\n[class*='sidebar-dark-'] .sidebar a {\n  color: #C2C7D0;\n}\n\n[class*='sidebar-dark-'] .sidebar a:hover, [class*='sidebar-dark-'] .sidebar a:focus {\n  text-decoration: none;\n}\n\n[class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link {\n  color: #C2C7D0;\n}\n\n[class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link:hover, [class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link:focus {\n  background-color: rgba(255, 255, 255, 0.1);\n  color: #ffffff;\n}\n\n[class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link.active, [class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link.active:hover, [class*='sidebar-dark-'] .nav-treeview > .nav-item > .nav-link.active:focus {\n  background-color: rgba(255, 255, 255, 0.9);\n  color: #343a40;\n}\n\n.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-primary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #ffffff;\n}\n\n.sidebar-dark-secondary .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-secondary .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #ffffff;\n}\n\n.sidebar-dark-success .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-success .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #ffffff;\n}\n\n.sidebar-dark-info .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-info .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #ffffff;\n}\n\n.sidebar-dark-warning .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-warning .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-danger .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-danger .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #ffffff;\n}\n\n.sidebar-dark-light .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-light .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f8f9fa;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #ffffff;\n}\n\n.sidebar-dark-navy .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-navy .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #001f3f;\n  color: #ffffff;\n}\n\n.sidebar-dark-olive .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-olive .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #3d9970;\n  color: #ffffff;\n}\n\n.sidebar-dark-lime .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-lime .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #01ff70;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-fuchsia .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-fuchsia .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #f012be;\n  color: #ffffff;\n}\n\n.sidebar-dark-maroon .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-maroon .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #d81b60;\n  color: #ffffff;\n}\n\n.sidebar-dark-blue .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-blue .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #007bff;\n  color: #ffffff;\n}\n\n.sidebar-dark-indigo .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-indigo .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6610f2;\n  color: #ffffff;\n}\n\n.sidebar-dark-purple .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-purple .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6f42c1;\n  color: #ffffff;\n}\n\n.sidebar-dark-pink .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-pink .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #e83e8c;\n  color: #ffffff;\n}\n\n.sidebar-dark-red .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-red .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #dc3545;\n  color: #ffffff;\n}\n\n.sidebar-dark-orange .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-orange .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #fd7e14;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-yellow .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-yellow .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffc107;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-green .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-green .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #28a745;\n  color: #ffffff;\n}\n\n.sidebar-dark-teal .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-teal .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #20c997;\n  color: #ffffff;\n}\n\n.sidebar-dark-cyan .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-cyan .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #17a2b8;\n  color: #ffffff;\n}\n\n.sidebar-dark-white .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-white .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #ffffff;\n  color: #1F2D3D;\n}\n\n.sidebar-dark-gray .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #6c757d;\n  color: #ffffff;\n}\n\n.sidebar-dark-gray-dark .nav-sidebar > .nav-item > .nav-link.active,\n.sidebar-light-gray-dark .nav-sidebar > .nav-item > .nav-link.active {\n  background-color: #343a40;\n  color: #ffffff;\n}\n\n.logo-xs,\n.logo-xl {\n  margin: 0;\n  opacity: 1;\n  position: absolute;\n  visibility: visible;\n}\n\n.logo-xs.brand-image-xs,\n.logo-xl.brand-image-xs {\n  left: 18px;\n  top: 12px;\n}\n\n.logo-xs.brand-image-xl,\n.logo-xl.brand-image-xl {\n  left: 12px;\n  top: 6px;\n}\n\n.logo-xs {\n  opacity: 0;\n  visibility: hidden;\n}\n\n.logo-xs.brand-image-xl {\n  left: 16px;\n  top: 8px;\n}\n\n.brand-link.logo-switch::before {\n  content: '\\00a0';\n}\n\n@media (min-width: 992px) {\n  .sidebar-mini .nav-sidebar,\n  .sidebar-mini .nav-sidebar > .nav-header,\n  .sidebar-mini .nav-sidebar .nav-link {\n    white-space: nowrap;\n    overflow: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .content-wrapper,\n  .sidebar-mini.sidebar-collapse .main-footer,\n  .sidebar-mini.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n  }\n  .sidebar-mini.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xl {\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .logo-xs {\n    display: inline-block;\n    opacity: 1;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar, .sidebar-mini.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    opacity: 1;\n    visibility: visible;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n  }\n  .sidebar-mini.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n@media (min-width: 768px) {\n  .sidebar-mini-md .nav-sidebar,\n  .sidebar-mini-md .nav-sidebar > .nav-header,\n  .sidebar-mini-md .nav-sidebar .nav-link {\n    white-space: nowrap;\n    overflow: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .d-hidden-mini {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .content-wrapper,\n  .sidebar-mini-md.sidebar-collapse .main-footer,\n  .sidebar-mini-md.sidebar-collapse .main-header {\n    margin-left: 4.6rem !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-header {\n    display: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p {\n    width: 0;\n  }\n  .sidebar-mini-md.sidebar-collapse .sidebar .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .brand-text {\n    margin-left: -10px;\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xl {\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .logo-xs {\n    display: inline-block;\n    opacity: 1;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar {\n    overflow-x: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar, .sidebar-mini-md.sidebar-collapse .main-sidebar::before {\n    margin-left: 0;\n    width: 4.6rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar .user-panel .image {\n    float: none;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-link, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel {\n    text-align: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel .image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel .image {\n    float: left;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xl, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar .nav-link p,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-text,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xl {\n    display: inline-block;\n    margin-left: 0;\n    opacity: 1;\n    visibility: visible;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .logo-xs, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .logo-xs {\n    opacity: 0;\n    visibility: hidden;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .brand-image, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .brand-image {\n    margin-right: .5rem;\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .user-panel > .info, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .sidebar-form,\n  .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .user-panel > .info {\n    display: block !important;\n    -webkit-transform: translateZ(0);\n  }\n  .sidebar-mini-md.sidebar-collapse .main-sidebar:hover .nav-sidebar > .nav-item > .nav-link > span, .sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused .nav-sidebar > .nav-item > .nav-link > span {\n    display: inline-block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse .visible-sidebar-mini {\n    display: block !important;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .main-sidebar:hover .brand-link {\n    width: 250px;\n  }\n  .sidebar-mini-md.sidebar-collapse.layout-fixed .brand-link {\n    width: 4.6rem;\n  }\n}\n\n.nav-sidebar {\n  position: relative;\n}\n\n.nav-sidebar:hover {\n  overflow: visible;\n}\n\n.sidebar-form,\n.nav-sidebar > .nav-header {\n  overflow: hidden;\n  text-overflow: clip;\n}\n\n.nav-sidebar .nav-item > .nav-link {\n  position: relative;\n}\n\n.nav-sidebar .nav-item > .nav-link > .float-right {\n  margin-top: -7px;\n  position: absolute;\n  right: 10px;\n  top: 50%;\n}\n\n.sidebar .nav-link p,\n.main-sidebar .brand-text,\n.main-sidebar .logo-xs,\n.main-sidebar .logo-xl,\n.sidebar .user-panel .info {\n  transition: margin-left 0.3s linear, opacity 0.3s ease, visibility 0.3s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .sidebar .nav-link p,\n  .main-sidebar .brand-text,\n  .main-sidebar .logo-xs,\n  .main-sidebar .logo-xl,\n  .sidebar .user-panel .info {\n    transition: none;\n  }\n}\n\nhtml.control-sidebar-animate {\n  overflow-x: hidden;\n}\n\n.control-sidebar {\n  position: absolute;\n  top: calc(3.5rem + 1px);\n  z-index: 830;\n}\n\n.control-sidebar, .control-sidebar::before {\n  bottom: 0;\n  display: none;\n  right: -250px;\n  width: 250px;\n  transition: right 0.3s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .control-sidebar, .control-sidebar::before {\n    transition: none;\n  }\n}\n\n.control-sidebar::before {\n  content: \" \";\n  display: block;\n  position: fixed;\n  top: 0;\n  z-index: -1;\n}\n\n@media (min-width: 768px) {\n  .control-sidebar-open .control-sidebar {\n    display: block;\n  }\n  .control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n    right: 0;\n  }\n  .control-sidebar-open .content-wrapper,\n  .control-sidebar-open .main-footer {\n    margin-right: 250px;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .control-sidebar-open .control-sidebar, .control-sidebar-open .control-sidebar::before {\n    right: 0;\n  }\n}\n\n.control-sidebar-slide-open .control-sidebar {\n  display: block;\n}\n\n.control-sidebar-slide-open .control-sidebar, .control-sidebar-slide-open .control-sidebar::before {\n  right: 0;\n}\n\n.control-sidebar-dark,\n.control-sidebar-dark a,\n.control-sidebar-dark .nav-link {\n  color: #C2C7D0;\n}\n\n.control-sidebar-dark {\n  background: #343a40;\n}\n\n.control-sidebar-dark a:hover {\n  color: #ffffff;\n}\n\n.control-sidebar-dark h1,\n.control-sidebar-dark h2,\n.control-sidebar-dark h3,\n.control-sidebar-dark h4,\n.control-sidebar-dark h5,\n.control-sidebar-dark h6,\n.control-sidebar-dark label {\n  color: #ffffff;\n}\n\n.control-sidebar-dark .nav-tabs {\n  background-color: rgba(255, 255, 255, 0.1);\n  border-bottom: 0;\n  margin-bottom: 5px;\n}\n\n.control-sidebar-dark .nav-tabs .nav-item {\n  margin: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link {\n  border-radius: 0;\n  padding: 10px 20px;\n  position: relative;\n  text-align: center;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link, .control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border: 0;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link:hover, .control-sidebar-dark .nav-tabs .nav-link:active, .control-sidebar-dark .nav-tabs .nav-link:focus, .control-sidebar-dark .nav-tabs .nav-link.active {\n  border-bottom-color: transparent;\n  border-left-color: transparent;\n  border-top-color: transparent;\n  color: #ffffff;\n}\n\n.control-sidebar-dark .nav-tabs .nav-link.active {\n  background-color: #343a40;\n}\n\n.control-sidebar-dark .tab-pane {\n  padding: 10px 15px;\n}\n\n.control-sidebar-light {\n  color: #4b545c;\n}\n\n.control-sidebar-light {\n  background: #ffffff;\n  border-left: 1px solid #dee2e6;\n}\n\n.dropdown-item-title {\n  font-size: 1rem;\n  margin: 0;\n}\n\n.dropdown-menu-lg {\n  max-width: 300px;\n  min-width: 280px;\n  padding: 0;\n}\n\n.dropdown-menu-lg .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-lg .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-lg p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-menu-xl {\n  max-width: 420px;\n  min-width: 360px;\n  padding: 0;\n}\n\n.dropdown-menu-xl .dropdown-divider {\n  margin: 0;\n}\n\n.dropdown-menu-xl .dropdown-item {\n  padding: 0.5rem 1rem;\n}\n\n.dropdown-menu-xl p {\n  margin: 0;\n  white-space: normal;\n}\n\n.dropdown-footer,\n.dropdown-header {\n  display: block;\n  font-size: 0.875rem;\n  padding: 0.5rem 1rem;\n  text-align: center;\n}\n\n.open:not(.dropup) > .animated-dropdown-menu {\n  -webkit-animation: flipInX 0.7s both;\n  animation: flipInX 0.7s both;\n  -webkit-backface-visibility: visible !important;\n  backface-visibility: visible !important;\n}\n\n@-webkit-keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n@keyframes flipInX {\n  0% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n    transition-timing-function: ease-in;\n    opacity: 0;\n  }\n  40% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n    transition-timing-function: ease-in;\n  }\n  60% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n    opacity: 1;\n  }\n  80% {\n    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n  }\n  100% {\n    -webkit-transform: perspective(400px);\n    transform: perspective(400px);\n  }\n}\n\n.navbar-custom-menu > .navbar-nav > li {\n  position: relative;\n}\n\n.navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n  position: absolute;\n  right: 0;\n  left: auto;\n}\n\n@media (max-width: 767.98px) {\n  .navbar-custom-menu > .navbar-nav {\n    float: right;\n  }\n  .navbar-custom-menu > .navbar-nav > li {\n    position: static;\n  }\n  .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n    position: absolute;\n    right: 5%;\n    left: auto;\n    border: 1px solid #ddd;\n    background: #ffffff;\n  }\n}\n\n.navbar-nav > .user-menu > .nav-link:after {\n  content: none;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n  padding: 0;\n  border-top-width: 0;\n  width: 280px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu,\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header {\n  height: 175px;\n  padding: 10px;\n  text-align: center;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img {\n  z-index: 5;\n  height: 90px;\n  width: 90px;\n  border: 3px solid;\n  border-color: transparent;\n  border-color: rgba(255, 255, 255, 0.2);\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p {\n  z-index: 5;\n  font-size: 17px;\n  margin-top: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small {\n  display: block;\n  font-size: 12px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body {\n  border-bottom: 1px solid #495057;\n  border-top: 1px solid #dee2e6;\n  padding: 15px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-body::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-body a {\n    background: #ffffff !important;\n    color: #495057 !important;\n  }\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer {\n  background-color: #f8f9fa;\n  padding: 10px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default {\n  color: #6c757d;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu > .dropdown-menu > .user-footer .btn-default:hover {\n    background-color: #f8f9fa;\n  }\n}\n\n.navbar-nav > .user-menu .user-image {\n  border-radius: 50%;\n  float: left;\n  height: 25px;\n  margin-right: 10px;\n  margin-top: -2px;\n  width: 25px;\n}\n\n@media (min-width: 576px) {\n  .navbar-nav > .user-menu .user-image {\n    float: none;\n    line-height: 10px;\n    margin-right: 0;\n    margin-top: -8px;\n  }\n}\n\n.form-group.has-icon {\n  position: relative;\n}\n\n.form-group.has-icon .form-control {\n  padding-right: 35px;\n}\n\n.form-group.has-icon .form-icon {\n  background-color: transparent;\n  border: 0;\n  cursor: pointer;\n  font-size: 1rem;\n  padding: 0.375rem 0.75rem;\n  position: absolute;\n  right: 3px;\n  top: 0;\n}\n\n.btn-group-vertical .btn.btn-flat:first-of-type, .btn-group-vertical .btn.btn-flat:last-of-type {\n  border-radius: 0;\n}\n\n.form-control-feedback.fa, .form-control-feedback.fas, .form-control-feedback.far, .form-control-feedback.fab, .form-control-feedback.glyphicon, .form-control-feedback.ion {\n  line-height: calc(2.25rem + 2px);\n}\n\n.input-lg + .form-control-feedback.fa, .input-lg + .form-control-feedback.fas, .input-lg + .form-control-feedback.far, .input-lg + .form-control-feedback.fab, .input-lg + .form-control-feedback.glyphicon, .input-lg + .form-control-feedback.ion,\n.input-group-lg + .form-control-feedback.fa,\n.input-group-lg + .form-control-feedback.fas,\n.input-group-lg + .form-control-feedback.far,\n.input-group-lg + .form-control-feedback.fab,\n.input-group-lg + .form-control-feedback.glyphicon,\n.input-group-lg + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.form-group-lg .form-control + .form-control-feedback.fa, .form-group-lg .form-control + .form-control-feedback.fas, .form-group-lg .form-control + .form-control-feedback.far, .form-group-lg .form-control + .form-control-feedback.fab, .form-group-lg .form-control + .form-control-feedback.glyphicon, .form-group-lg .form-control + .form-control-feedback.ion {\n  line-height: calc(2.875rem + 2px);\n}\n\n.input-sm + .form-control-feedback.fa, .input-sm + .form-control-feedback.fas, .input-sm + .form-control-feedback.far, .input-sm + .form-control-feedback.fab, .input-sm + .form-control-feedback.glyphicon, .input-sm + .form-control-feedback.ion,\n.input-group-sm + .form-control-feedback.fa,\n.input-group-sm + .form-control-feedback.fas,\n.input-group-sm + .form-control-feedback.far,\n.input-group-sm + .form-control-feedback.fab,\n.input-group-sm + .form-control-feedback.glyphicon,\n.input-group-sm + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\n.form-group-sm .form-control + .form-control-feedback.fa, .form-group-sm .form-control + .form-control-feedback.fas, .form-group-sm .form-control + .form-control-feedback.far, .form-group-sm .form-control + .form-control-feedback.fab, .form-group-sm .form-control + .form-control-feedback.glyphicon, .form-group-sm .form-control + .form-control-feedback.ion {\n  line-height: calc(1.8125rem + 2px);\n}\n\nlabel:not(.form-check-label):not(.custom-file-label) {\n  font-weight: 700;\n}\n\n.warning-feedback {\n  font-size: 80%;\n  color: #ffc107;\n  display: none;\n  margin-top: 0.25rem;\n  width: 100%;\n}\n\n.warning-tooltip {\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: rgba(255, 193, 7, 0.9);\n  color: #1F2D3D;\n  display: none;\n  line-height: 1.5;\n  margin-top: .1rem;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n}\n\n.form-control.is-warning {\n  border-color: #ffc107;\n}\n\n.form-control.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.form-control.is-warning ~ .warning-feedback,\n.form-control.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\ntextarea.form-control.is-warning {\n  padding-right: 2.25rem;\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.custom-select.is-warning {\n  border-color: #ffc107;\n}\n\n.custom-select.is-warning:focus {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-select.is-warning ~ .warning-feedback,\n.custom-select.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-control-file.is-warning ~ .warning-feedback,\n.form-control-file.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.form-check-input.is-warning ~ .form-check-label {\n  color: #ffc107;\n}\n\n.form-check-input.is-warning ~ .warning-feedback,\n.form-check-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label {\n  color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-control-input.is-warning ~ .warning-feedback,\n.custom-control-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-control-input.is-warning:checked ~ .custom-control-label::before {\n  background-color: #ffce3a;\n  border-color: #ffce3a;\n}\n\n.custom-control-input.is-warning:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-control-input.is-warning:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .custom-file-label {\n  border-color: #ffc107;\n}\n\n.custom-file-input.is-warning ~ .warning-feedback,\n.custom-file-input.is-warning ~ .warning-tooltip {\n  display: block;\n}\n\n.custom-file-input.is-warning:focus ~ .custom-file-label {\n  border-color: #ffc107;\n  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.25);\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::before {\n  background: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-primary .custom-control-input ~ .custom-control-label::after {\n  background: #003e80;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::before {\n  background: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-primary .custom-control-input:checked ~ .custom-control-label::after {\n  background: #99caff;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::before {\n  background: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-secondary .custom-control-input ~ .custom-control-label::after {\n  background: #313539;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::before {\n  background: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-secondary .custom-control-input:checked ~ .custom-control-label::after {\n  background: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::before {\n  background: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-success .custom-control-input ~ .custom-control-label::after {\n  background: #0f401b;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::before {\n  background: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-success .custom-control-input:checked ~ .custom-control-label::after {\n  background: #86e29b;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::before {\n  background: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-info .custom-control-input ~ .custom-control-label::after {\n  background: #093e47;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::before {\n  background: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-info .custom-control-input:checked ~ .custom-control-label::after {\n  background: #7adeee;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::before {\n  background: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-warning .custom-control-input ~ .custom-control-label::after {\n  background: #876500;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::before {\n  background: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-warning .custom-control-input:checked ~ .custom-control-label::after {\n  background: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::before {\n  background: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-danger .custom-control-input ~ .custom-control-label::after {\n  background: #7c151f;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::before {\n  background: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-danger .custom-control-input:checked ~ .custom-control-label::after {\n  background: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::before {\n  background: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-off-light .custom-control-input ~ .custom-control-label::after {\n  background: #aeb9c5;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::before {\n  background: #f8f9fa;\n  border-color: #bdc6d0;\n}\n\n.custom-switch.custom-switch-on-light .custom-control-input:checked ~ .custom-control-label::after {\n  background: white;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::before {\n  background: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-dark .custom-control-input ~ .custom-control-label::after {\n  background: black;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background: #7a8793;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::before {\n  background: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-off-navy .custom-control-input ~ .custom-control-label::after {\n  background: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::before {\n  background: #001f3f;\n  border-color: black;\n}\n\n.custom-switch.custom-switch-on-navy .custom-control-input:checked ~ .custom-control-label::after {\n  background: #006ad8;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::before {\n  background: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-off-olive .custom-control-input ~ .custom-control-label::after {\n  background: #193e2d;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::before {\n  background: #3d9970;\n  border-color: #20503b;\n}\n\n.custom-switch.custom-switch-on-olive .custom-control-input:checked ~ .custom-control-label::after {\n  background: #99d6bb;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::before {\n  background: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-off-lime .custom-control-input ~ .custom-control-label::after {\n  background: #008138;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::before {\n  background: #01ff70;\n  border-color: #009a43;\n}\n\n.custom-switch.custom-switch-on-lime .custom-control-input:checked ~ .custom-control-label::after {\n  background: #9affc6;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::before {\n  background: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-off-fuchsia .custom-control-input ~ .custom-control-label::after {\n  background: #7b0861;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::before {\n  background: #f012be;\n  border-color: #930974;\n}\n\n.custom-switch.custom-switch-on-fuchsia .custom-control-input:checked ~ .custom-control-label::after {\n  background: #f9a2e5;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::before {\n  background: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-off-maroon .custom-control-input ~ .custom-control-label::after {\n  background: #670d2e;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::before {\n  background: #d81b60;\n  border-color: #7d1038;\n}\n\n.custom-switch.custom-switch-on-maroon .custom-control-input:checked ~ .custom-control-label::after {\n  background: #f29aba;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::before {\n  background: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-off-blue .custom-control-input ~ .custom-control-label::after {\n  background: #003e80;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::before {\n  background: #007bff;\n  border-color: #004a99;\n}\n\n.custom-switch.custom-switch-on-blue .custom-control-input:checked ~ .custom-control-label::after {\n  background: #99caff;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::before {\n  background: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-off-indigo .custom-control-input ~ .custom-control-label::after {\n  background: #33077c;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::before {\n  background: #6610f2;\n  border-color: #3d0894;\n}\n\n.custom-switch.custom-switch-on-indigo .custom-control-input:checked ~ .custom-control-label::after {\n  background: #c3a1fa;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::before {\n  background: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-off-purple .custom-control-input ~ .custom-control-label::after {\n  background: #382063;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::before {\n  background: #6f42c1;\n  border-color: #432776;\n}\n\n.custom-switch.custom-switch-on-purple .custom-control-input:checked ~ .custom-control-label::after {\n  background: #c7b5e7;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::before {\n  background: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-off-pink .custom-control-input ~ .custom-control-label::after {\n  background: #95124e;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::before {\n  background: #e83e8c;\n  border-color: #ac145a;\n}\n\n.custom-switch.custom-switch-on-pink .custom-control-input:checked ~ .custom-control-label::after {\n  background: #f8c7dd;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::before {\n  background: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-off-red .custom-control-input ~ .custom-control-label::after {\n  background: #7c151f;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::before {\n  background: #dc3545;\n  border-color: #921925;\n}\n\n.custom-switch.custom-switch-on-red .custom-control-input:checked ~ .custom-control-label::after {\n  background: #f3b7bd;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::before {\n  background: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-off-orange .custom-control-input ~ .custom-control-label::after {\n  background: #904201;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::before {\n  background: #fd7e14;\n  border-color: #aa4e01;\n}\n\n.custom-switch.custom-switch-on-orange .custom-control-input:checked ~ .custom-control-label::after {\n  background: #fed1ac;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::before {\n  background: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-off-yellow .custom-control-input ~ .custom-control-label::after {\n  background: #876500;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::before {\n  background: #ffc107;\n  border-color: #a07800;\n}\n\n.custom-switch.custom-switch-on-yellow .custom-control-input:checked ~ .custom-control-label::after {\n  background: #ffe7a0;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::before {\n  background: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-off-green .custom-control-input ~ .custom-control-label::after {\n  background: #0f401b;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::before {\n  background: #28a745;\n  border-color: #145523;\n}\n\n.custom-switch.custom-switch-on-green .custom-control-input:checked ~ .custom-control-label::after {\n  background: #86e29b;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::before {\n  background: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-off-teal .custom-control-input ~ .custom-control-label::after {\n  background: #0e5b44;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::before {\n  background: #20c997;\n  border-color: #127155;\n}\n\n.custom-switch.custom-switch-on-teal .custom-control-input:checked ~ .custom-control-label::after {\n  background: #94eed3;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::before {\n  background: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-off-cyan .custom-control-input ~ .custom-control-label::after {\n  background: #093e47;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::before {\n  background: #17a2b8;\n  border-color: #0c525d;\n}\n\n.custom-switch.custom-switch-on-cyan .custom-control-input:checked ~ .custom-control-label::after {\n  background: #7adeee;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::before {\n  background: #ffffff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-off-white .custom-control-input ~ .custom-control-label::after {\n  background: #bfbfbf;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::before {\n  background: #ffffff;\n  border-color: #cccccc;\n}\n\n.custom-switch.custom-switch-on-white .custom-control-input:checked ~ .custom-control-label::after {\n  background: white;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::before {\n  background: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-off-gray .custom-control-input ~ .custom-control-label::after {\n  background: #313539;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::before {\n  background: #6c757d;\n  border-color: #3d4246;\n}\n\n.custom-switch.custom-switch-on-gray .custom-control-input:checked ~ .custom-control-label::after {\n  background: #bcc1c6;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::before {\n  background: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-off-gray-dark .custom-control-input ~ .custom-control-label::after {\n  background: black;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::before {\n  background: #343a40;\n  border-color: #060708;\n}\n\n.custom-switch.custom-switch-on-gray-dark .custom-control-input:checked ~ .custom-control-label::after {\n  background: #7a8793;\n}\n\n.custom-range.custom-range-primary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-primary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-primary::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-secondary:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-secondary:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-secondary::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-success:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-success:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-success::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-success::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-info:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-info:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-info::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-info::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-warning:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-warning:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-warning::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-warning::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-danger:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-danger:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-danger::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-danger::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-light:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-light:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(248, 249, 250, 0.25);\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-light::-ms-thumb {\n  background-color: #f8f9fa;\n}\n\n.custom-range.custom-range-light::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-navy:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-navy:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 31, 63, 0.25);\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-webkit-slider-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-moz-range-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-navy::-ms-thumb {\n  background-color: #001f3f;\n}\n\n.custom-range.custom-range-navy::-ms-thumb:active {\n  background-color: #0077f2;\n}\n\n.custom-range.custom-range-olive:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-olive:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(61, 153, 112, 0.25);\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-webkit-slider-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-moz-range-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-olive::-ms-thumb {\n  background-color: #3d9970;\n}\n\n.custom-range.custom-range-olive::-ms-thumb:active {\n  background-color: #abdec7;\n}\n\n.custom-range.custom-range-lime:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-lime:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(1, 255, 112, 0.25);\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-webkit-slider-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-moz-range-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-lime::-ms-thumb {\n  background-color: #01ff70;\n}\n\n.custom-range.custom-range-lime::-ms-thumb:active {\n  background-color: #b4ffd4;\n}\n\n.custom-range.custom-range-fuchsia:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-fuchsia:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(240, 18, 190, 0.25);\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-webkit-slider-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-moz-range-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb {\n  background-color: #f012be;\n}\n\n.custom-range.custom-range-fuchsia::-ms-thumb:active {\n  background-color: #fbbaec;\n}\n\n.custom-range.custom-range-maroon:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-maroon:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(216, 27, 96, 0.25);\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-webkit-slider-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-moz-range-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb {\n  background-color: #d81b60;\n}\n\n.custom-range.custom-range-maroon::-ms-thumb:active {\n  background-color: #f5b0c9;\n}\n\n.custom-range.custom-range-blue:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-blue:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb {\n  background-color: #007bff;\n}\n\n.custom-range.custom-range-blue::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range.custom-range-indigo:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-indigo:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(102, 16, 242, 0.25);\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-webkit-slider-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-moz-range-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb {\n  background-color: #6610f2;\n}\n\n.custom-range.custom-range-indigo::-ms-thumb:active {\n  background-color: #d2b9fb;\n}\n\n.custom-range.custom-range-purple:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-purple:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(111, 66, 193, 0.25);\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-webkit-slider-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-moz-range-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-purple::-ms-thumb {\n  background-color: #6f42c1;\n}\n\n.custom-range.custom-range-purple::-ms-thumb:active {\n  background-color: #d5c8ed;\n}\n\n.custom-range.custom-range-pink:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-pink:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(232, 62, 140, 0.25);\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-webkit-slider-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-moz-range-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-pink::-ms-thumb {\n  background-color: #e83e8c;\n}\n\n.custom-range.custom-range-pink::-ms-thumb:active {\n  background-color: #fbddeb;\n}\n\n.custom-range.custom-range-red:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-red:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-webkit-slider-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-moz-range-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-red::-ms-thumb {\n  background-color: #dc3545;\n}\n\n.custom-range.custom-range-red::-ms-thumb:active {\n  background-color: #f6cdd1;\n}\n\n.custom-range.custom-range-orange:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-orange:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(253, 126, 20, 0.25);\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-webkit-slider-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-moz-range-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-orange::-ms-thumb {\n  background-color: #fd7e14;\n}\n\n.custom-range.custom-range-orange::-ms-thumb:active {\n  background-color: #ffdfc5;\n}\n\n.custom-range.custom-range-yellow:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-yellow:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 193, 7, 0.25);\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-webkit-slider-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-moz-range-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb {\n  background-color: #ffc107;\n}\n\n.custom-range.custom-range-yellow::-ms-thumb:active {\n  background-color: #ffeeba;\n}\n\n.custom-range.custom-range-green:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-green:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-webkit-slider-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-moz-range-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-green::-ms-thumb {\n  background-color: #28a745;\n}\n\n.custom-range.custom-range-green::-ms-thumb:active {\n  background-color: #9be7ac;\n}\n\n.custom-range.custom-range-teal:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-teal:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(32, 201, 151, 0.25);\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-webkit-slider-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-moz-range-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-teal::-ms-thumb {\n  background-color: #20c997;\n}\n\n.custom-range.custom-range-teal::-ms-thumb:active {\n  background-color: #aaf1dc;\n}\n\n.custom-range.custom-range-cyan:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-cyan:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(23, 162, 184, 0.25);\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-webkit-slider-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-moz-range-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb {\n  background-color: #17a2b8;\n}\n\n.custom-range.custom-range-cyan::-ms-thumb:active {\n  background-color: #90e4f1;\n}\n\n.custom-range.custom-range-white:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-white:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(255, 255, 255, 0.25);\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb {\n  background-color: #ffffff;\n}\n\n.custom-range.custom-range-white::-webkit-slider-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb {\n  background-color: #ffffff;\n}\n\n.custom-range.custom-range-white::-moz-range-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-white::-ms-thumb {\n  background-color: #ffffff;\n}\n\n.custom-range.custom-range-white::-ms-thumb:active {\n  background-color: white;\n}\n\n.custom-range.custom-range-gray:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(108, 117, 125, 0.25);\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-webkit-slider-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-moz-range-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray::-ms-thumb {\n  background-color: #6c757d;\n}\n\n.custom-range.custom-range-gray::-ms-thumb:active {\n  background-color: #caced1;\n}\n\n.custom-range.custom-range-gray-dark:focus {\n  outline: none;\n}\n\n.custom-range.custom-range-gray-dark:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.2rem rgba(52, 58, 64, 0.25);\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-webkit-slider-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-moz-range-thumb:active {\n  background-color: #88939e;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb {\n  background-color: #343a40;\n}\n\n.custom-range.custom-range-gray-dark::-ms-thumb:active {\n  background-color: #88939e;\n}\n\n.progress {\n  box-shadow: none;\n  border-radius: 1px;\n}\n\n.progress.vertical {\n  display: inline-block;\n  height: 200px;\n  margin-right: 10px;\n  position: relative;\n  width: 30px;\n}\n\n.progress.vertical > .progress-bar {\n  bottom: 0;\n  position: absolute;\n  width: 100%;\n}\n\n.progress.vertical.sm, .progress.vertical.progress-sm {\n  width: 20px;\n}\n\n.progress.vertical.xs, .progress.vertical.progress-xs {\n  width: 10px;\n}\n\n.progress.vertical.xxs, .progress.vertical.progress-xxs {\n  width: 3px;\n}\n\n.progress-sm {\n  height: 10px;\n}\n\n.progress-xs {\n  height: 7px;\n}\n\n.progress-xxs {\n  height: 3px;\n}\n\n.table tr > td .progress {\n  margin: 0;\n}\n\n.small-box {\n  border-radius: 0.25rem;\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  display: block;\n  margin-bottom: 20px;\n  position: relative;\n}\n\n.small-box > .inner {\n  padding: 10px;\n}\n\n.small-box > .small-box-footer {\n  background: rgba(0, 0, 0, 0.1);\n  color: rgba(255, 255, 255, 0.8);\n  display: block;\n  padding: 3px 0;\n  position: relative;\n  text-align: center;\n  text-decoration: none;\n  z-index: 10;\n}\n\n.small-box > .small-box-footer:hover {\n  background: rgba(0, 0, 0, 0.15);\n  color: #ffffff;\n}\n\n.small-box h3 {\n  font-size: 2.2rem;\n  font-weight: bold;\n  margin: 0 0 10px 0;\n  padding: 0;\n  white-space: nowrap;\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 1.6rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 1.6rem;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .small-box h3,\n  .col-lg-2 .small-box h3,\n  .col-md-2 .small-box h3 {\n    font-size: 2.2rem;\n  }\n  .col-xl-3 .small-box h3,\n  .col-lg-3 .small-box h3,\n  .col-md-3 .small-box h3 {\n    font-size: 2.2rem;\n  }\n}\n\n.small-box p {\n  font-size: 1rem;\n}\n\n.small-box p > small {\n  color: #f8f9fa;\n  display: block;\n  font-size: 0.9rem;\n  margin-top: 5px;\n}\n\n.small-box h3,\n.small-box p {\n  z-index: 5;\n}\n\n.small-box .icon {\n  color: rgba(0, 0, 0, 0.15);\n  z-index: 0;\n}\n\n.small-box .icon > i {\n  font-size: 90px;\n  position: absolute;\n  right: 15px;\n  top: 15px;\n  transition: all 0.3s linear;\n}\n\n.small-box .icon > i.fa, .small-box .icon > i.fas, .small-box .icon > i.far, .small-box .icon > i.fab, .small-box .icon > i.glyphicon, .small-box .icon > i.ion {\n  font-size: 70px;\n  top: 20px;\n}\n\n.small-box:hover {\n  text-decoration: none;\n}\n\n.small-box:hover .icon > i {\n  font-size: 95px;\n}\n\n.small-box:hover .icon > i.fa, .small-box:hover .icon > i.fas, .small-box:hover .icon > i.far, .small-box:hover .icon > i.fab, .small-box:hover .icon > i.glyphicon, .small-box:hover .icon > i.ion {\n  font-size: 75px;\n}\n\n@media (max-width: 767.98px) {\n  .small-box {\n    text-align: center;\n  }\n  .small-box .icon {\n    display: none;\n  }\n  .small-box p {\n    font-size: 12px;\n  }\n}\n\n.card {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n}\n\n.card.bg-dark,\n.card.bg-dark .card-body {\n  color: #ffffff;\n}\n\n.card.maximized-card {\n  height: 100% !important;\n  left: 0;\n  max-height: 100% !important;\n  max-width: 100% !important;\n  position: fixed;\n  top: 0;\n  width: 100% !important;\n  z-index: 9999;\n}\n\n.card.maximized-card.was-collapsed .card-body {\n  display: block !important;\n}\n\n.card.maximized-card [data-widget='collapse'] {\n  display: none;\n}\n\n.card.maximized-card .card-header,\n.card.maximized-card .card-footer {\n  border-radius: 0 !important;\n}\n\n.card.collapsed-card .card-body,\n.card.collapsed-card .card-footer {\n  display: none;\n}\n\n.card .nav.flex-column > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  margin: 0;\n}\n\n.card .nav.flex-column > li:last-of-type {\n  border-bottom: 0;\n}\n\n.card.height-control .card-body {\n  max-height: 300px;\n  overflow: auto;\n}\n\n.card .border-right {\n  border-right: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card .border-left {\n  border-left: 1px solid rgba(0, 0, 0, 0.125);\n}\n\nhtml.maximized-card {\n  overflow: hidden;\n}\n\n.card-header::after,\n.card-body::after,\n.card-footer::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-header {\n  background-color: transparent;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.collapsed-card .card-header {\n  border-bottom: 0;\n}\n\n.card-header > .card-tools {\n  position: absolute;\n  right: 1rem;\n  top: .5rem;\n}\n\n.card-header > .card-tools [data-toggle='tooltip'] {\n  position: relative;\n}\n\n.card-title {\n  font-size: 1.25rem;\n  font-weight: 400;\n  margin: 0;\n}\n\n.btn-tool {\n  background: transparent;\n  color: #adb5bd;\n  font-size: 0.875rem;\n  padding: .25rem .5rem;\n}\n\n.btn-group.show .btn-tool, .btn-tool:hover {\n  color: #495057;\n}\n\n.show .btn-tool, .btn-tool:focus {\n  box-shadow: none !important;\n}\n\n.card-body > .table {\n  margin-bottom: 0;\n}\n\n.card-body > .table > thead > tr > th,\n.card-body > .table > thead > tr > td {\n  border-top-width: 0;\n}\n\n.card-body .fc {\n  margin-top: 5px;\n}\n\n.card-body .full-width-chart {\n  margin: -19px;\n}\n\n.card-body.p-0 .full-width-chart {\n  margin: -9px;\n}\n\n.chart-legend {\n  margin: 10px 0;\n}\n\n@media (max-width: 576px) {\n  .chart-legend > li {\n    float: left;\n    margin-right: 10px;\n  }\n}\n\n.card-comments {\n  background: #f8f9fa;\n}\n\n.card-comments .card-comment {\n  border-bottom: 1px solid #e9ecef;\n  padding: 8px 0;\n}\n\n.card-comments .card-comment::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.card-comments .card-comment:last-of-type {\n  border-bottom: 0;\n}\n\n.card-comments .card-comment:first-of-type {\n  padding-top: 0;\n}\n\n.card-comments .card-comment img {\n  float: left;\n}\n\n.card-comments .comment-text {\n  color: #78838e;\n  margin-left: 40px;\n}\n\n.card-comments .username {\n  color: #495057;\n  display: block;\n  font-weight: 600;\n}\n\n.card-comments .text-muted {\n  font-size: 12px;\n  font-weight: 400;\n}\n\n.todo-list {\n  list-style: none;\n  margin: 0;\n  overflow: auto;\n  padding: 0;\n}\n\n.todo-list > li {\n  border-radius: 2px;\n  background: #f8f9fa;\n  border-left: 2px solid #e9ecef;\n  color: #495057;\n  margin-bottom: 2px;\n  padding: 10px;\n}\n\n.todo-list > li:last-of-type {\n  margin-bottom: 0;\n}\n\n.todo-list > li > input[type='checkbox'] {\n  margin: 0 10px 0 5px;\n}\n\n.todo-list > li .text {\n  display: inline-block;\n  font-weight: 600;\n  margin-left: 5px;\n}\n\n.todo-list > li .badge {\n  font-size: .7rem;\n  margin-left: 10px;\n}\n\n.todo-list > li .tools {\n  color: #dc3545;\n  display: none;\n  float: right;\n}\n\n.todo-list > li .tools > .fa,\n.todo-list > li .tools > .fas,\n.todo-list > li .tools > .far,\n.todo-list > li .tools > .fab,\n.todo-list > li .tools > .glyphicon,\n.todo-list > li .tools > .ion {\n  cursor: pointer;\n  margin-right: 5px;\n}\n\n.todo-list > li:hover .tools {\n  display: inline-block;\n}\n\n.todo-list > li.done {\n  color: #697582;\n}\n\n.todo-list > li.done .text {\n  font-weight: 500;\n  text-decoration: line-through;\n}\n\n.todo-list > li.done .badge {\n  background: #adb5bd !important;\n}\n\n.todo-list .primary {\n  border-left-color: #007bff;\n}\n\n.todo-list .secondary {\n  border-left-color: #6c757d;\n}\n\n.todo-list .success {\n  border-left-color: #28a745;\n}\n\n.todo-list .info {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .warning {\n  border-left-color: #ffc107;\n}\n\n.todo-list .danger {\n  border-left-color: #dc3545;\n}\n\n.todo-list .light {\n  border-left-color: #f8f9fa;\n}\n\n.todo-list .dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .navy {\n  border-left-color: #001f3f;\n}\n\n.todo-list .olive {\n  border-left-color: #3d9970;\n}\n\n.todo-list .lime {\n  border-left-color: #01ff70;\n}\n\n.todo-list .fuchsia {\n  border-left-color: #f012be;\n}\n\n.todo-list .maroon {\n  border-left-color: #d81b60;\n}\n\n.todo-list .blue {\n  border-left-color: #007bff;\n}\n\n.todo-list .indigo {\n  border-left-color: #6610f2;\n}\n\n.todo-list .purple {\n  border-left-color: #6f42c1;\n}\n\n.todo-list .pink {\n  border-left-color: #e83e8c;\n}\n\n.todo-list .red {\n  border-left-color: #dc3545;\n}\n\n.todo-list .orange {\n  border-left-color: #fd7e14;\n}\n\n.todo-list .yellow {\n  border-left-color: #ffc107;\n}\n\n.todo-list .green {\n  border-left-color: #28a745;\n}\n\n.todo-list .teal {\n  border-left-color: #20c997;\n}\n\n.todo-list .cyan {\n  border-left-color: #17a2b8;\n}\n\n.todo-list .white {\n  border-left-color: #ffffff;\n}\n\n.todo-list .gray {\n  border-left-color: #6c757d;\n}\n\n.todo-list .gray-dark {\n  border-left-color: #343a40;\n}\n\n.todo-list .handle {\n  cursor: move;\n  display: inline-block;\n  margin: 0 5px;\n}\n\n.card-input {\n  max-width: 200px;\n}\n\n.card-primary:not(.card-outline) .card-header {\n  background-color: #007bff;\n  border-bottom: 0;\n}\n\n.card-primary:not(.card-outline) .card-header,\n.card-primary:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-primary.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.bg-primary .btn-tool, .alert-primary .btn-tool,\n.bg-primary-gradient .btn-tool,\n.card-primary:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-primary .btn-tool:hover, .alert-primary .btn-tool:hover,\n.bg-primary-gradient .btn-tool:hover,\n.card-primary:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget .table td, .card.alert-primary .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary .bootstrap-datetimepicker-widget .table th,\n.card.alert-primary .bootstrap-datetimepicker-widget .table th,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-primary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-primary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-primary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-primary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-primary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #0067d6;\n  color: #ffffff;\n}\n\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active, .card.alert-primary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-primary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-primary-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #3395ff;\n  color: #ffffff;\n}\n\n.card-secondary:not(.card-outline) .card-header {\n  background-color: #6c757d;\n  border-bottom: 0;\n}\n\n.card-secondary:not(.card-outline) .card-header,\n.card-secondary:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-secondary.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-secondary .btn-tool,\n.bg-secondary-gradient .btn-tool,\n.card-secondary:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-secondary .btn-tool:hover,\n.bg-secondary-gradient .btn-tool:hover,\n.card-secondary:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary .bootstrap-datetimepicker-widget .table th,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #596167;\n  color: #ffffff;\n}\n\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-secondary-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #868e96;\n  color: #ffffff;\n}\n\n.card-success:not(.card-outline) .card-header {\n  background-color: #28a745;\n  border-bottom: 0;\n}\n\n.card-success:not(.card-outline) .card-header,\n.card-success:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-success.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.bg-success .btn-tool, .alert-success .btn-tool,\n.bg-success-gradient .btn-tool,\n.card-success:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-success .btn-tool:hover, .alert-success .btn-tool:hover,\n.bg-success-gradient .btn-tool:hover,\n.card-success:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget .table td, .card.alert-success .bootstrap-datetimepicker-widget .table td,\n.card.bg-success .bootstrap-datetimepicker-widget .table th,\n.card.alert-success .bootstrap-datetimepicker-widget .table th,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-success .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-success .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-success .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-success .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-success .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #208637;\n  color: #ffffff;\n}\n\n.card.bg-success .bootstrap-datetimepicker-widget table td.active, .card.alert-success .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-success .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-success-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #34ce57;\n  color: #ffffff;\n}\n\n.card-info:not(.card-outline) .card-header {\n  background-color: #17a2b8;\n  border-bottom: 0;\n}\n\n.card-info:not(.card-outline) .card-header,\n.card-info:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-info.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-info .btn-tool, .alert-info .btn-tool,\n.bg-info-gradient .btn-tool,\n.card-info:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-info .btn-tool:hover, .alert-info .btn-tool:hover,\n.bg-info-gradient .btn-tool:hover,\n.card-info:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget .table td, .card.alert-info .bootstrap-datetimepicker-widget .table td,\n.card.bg-info .bootstrap-datetimepicker-widget .table th,\n.card.alert-info .bootstrap-datetimepicker-widget .table th,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-info .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-info .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-info .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-info .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-info .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #128294;\n  color: #ffffff;\n}\n\n.card.bg-info .bootstrap-datetimepicker-widget table td.active, .card.alert-info .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-info .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-info-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #1fc8e3;\n  color: #ffffff;\n}\n\n.card-warning:not(.card-outline) .card-header {\n  background-color: #ffc107;\n  border-bottom: 0;\n}\n\n.card-warning:not(.card-outline) .card-header,\n.card-warning:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-warning.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-warning .btn-tool, .alert-warning .btn-tool,\n.bg-warning-gradient .btn-tool,\n.card-warning:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-warning .btn-tool:hover, .alert-warning .btn-tool:hover,\n.bg-warning-gradient .btn-tool:hover,\n.card-warning:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget .table td, .card.alert-warning .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning .bootstrap-datetimepicker-widget .table th,\n.card.alert-warning .bootstrap-datetimepicker-widget .table th,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-warning .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-warning .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-warning .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-warning .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-warning .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #dda600;\n  color: #1F2D3D;\n}\n\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active, .card.alert-warning .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-warning .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-warning-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #ffce3a;\n  color: #1F2D3D;\n}\n\n.card-danger:not(.card-outline) .card-header {\n  background-color: #dc3545;\n  border-bottom: 0;\n}\n\n.card-danger:not(.card-outline) .card-header,\n.card-danger:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-danger.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-danger .btn-tool, .alert-danger .btn-tool, .alert-error .btn-tool,\n.bg-danger-gradient .btn-tool,\n.card-danger:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-danger .btn-tool:hover, .alert-danger .btn-tool:hover, .alert-error .btn-tool:hover,\n.bg-danger-gradient .btn-tool:hover,\n.card-danger:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget .table td, .card.alert-danger .bootstrap-datetimepicker-widget .table td, .card.alert-error .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger .bootstrap-datetimepicker-widget .table th,\n.card.alert-danger .bootstrap-datetimepicker-widget .table th,\n.card.alert-error .bootstrap-datetimepicker-widget .table th,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-danger .bootstrap-datetimepicker-widget table thead tr:first-child th:hover, .card.alert-error .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-danger .bootstrap-datetimepicker-widget table td.day:hover,\n.card.alert-error .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-danger .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.alert-error .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-danger .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.alert-error .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-danger .bootstrap-datetimepicker-widget table td.second:hover,\n.card.alert-error .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #c62232;\n  color: #ffffff;\n}\n\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active, .card.alert-danger .bootstrap-datetimepicker-widget table td.active, .card.alert-error .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-danger .bootstrap-datetimepicker-widget table td.active:hover,\n.card.alert-error .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-danger-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #e4606d;\n  color: #ffffff;\n}\n\n.card-light:not(.card-outline) .card-header {\n  background-color: #f8f9fa;\n  border-bottom: 0;\n}\n\n.card-light:not(.card-outline) .card-header,\n.card-light:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-light.card-outline {\n  border-top: 3px solid #f8f9fa;\n}\n\n.bg-light .btn-tool,\n.bg-light-gradient .btn-tool,\n.card-light:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-light .btn-tool:hover,\n.bg-light-gradient .btn-tool:hover,\n.card-light:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget .table td,\n.card.bg-light .bootstrap-datetimepicker-widget .table th,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #e0e5e9;\n  color: #1F2D3D;\n}\n\n.card.bg-light .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-light-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: white;\n  color: #1F2D3D;\n}\n\n.card-dark:not(.card-outline) .card-header {\n  background-color: #343a40;\n  border-bottom: 0;\n}\n\n.card-dark:not(.card-outline) .card-header,\n.card-dark:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.bg-dark .btn-tool,\n.bg-dark-gradient .btn-tool,\n.card-dark:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-dark .btn-tool:hover,\n.bg-dark-gradient .btn-tool:hover,\n.card-dark:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #222629;\n  color: #ffffff;\n}\n\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-dark-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #4b545c;\n  color: #ffffff;\n}\n\n.card-navy:not(.card-outline) .card-header {\n  background-color: #001f3f;\n  border-bottom: 0;\n}\n\n.card-navy:not(.card-outline) .card-header,\n.card-navy:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-navy.card-outline {\n  border-top: 3px solid #001f3f;\n}\n\n.bg-navy .btn-tool,\n.bg-navy-gradient .btn-tool,\n.card-navy:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-navy .btn-tool:hover,\n.bg-navy-gradient .btn-tool:hover,\n.card-navy:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy .bootstrap-datetimepicker-widget .table th,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #000b16;\n  color: #ffffff;\n}\n\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-navy-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #003872;\n  color: #ffffff;\n}\n\n.card-olive:not(.card-outline) .card-header {\n  background-color: #3d9970;\n  border-bottom: 0;\n}\n\n.card-olive:not(.card-outline) .card-header,\n.card-olive:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-olive.card-outline {\n  border-top: 3px solid #3d9970;\n}\n\n.bg-olive .btn-tool,\n.bg-olive-gradient .btn-tool,\n.card-olive:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-olive .btn-tool:hover,\n.bg-olive-gradient .btn-tool:hover,\n.card-olive:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive .bootstrap-datetimepicker-widget .table th,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #317c5b;\n  color: #ffffff;\n}\n\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-olive-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #50b98a;\n  color: #ffffff;\n}\n\n.card-lime:not(.card-outline) .card-header {\n  background-color: #01ff70;\n  border-bottom: 0;\n}\n\n.card-lime:not(.card-outline) .card-header,\n.card-lime:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-lime.card-outline {\n  border-top: 3px solid #01ff70;\n}\n\n.bg-lime .btn-tool,\n.bg-lime-gradient .btn-tool,\n.card-lime:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-lime .btn-tool:hover,\n.bg-lime-gradient .btn-tool:hover,\n.card-lime:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime .bootstrap-datetimepicker-widget .table th,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #00d75e;\n  color: #1F2D3D;\n}\n\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-lime-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #34ff8d;\n  color: #1F2D3D;\n}\n\n.card-fuchsia:not(.card-outline) .card-header {\n  background-color: #f012be;\n  border-bottom: 0;\n}\n\n.card-fuchsia:not(.card-outline) .card-header,\n.card-fuchsia:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-fuchsia.card-outline {\n  border-top: 3px solid #f012be;\n}\n\n.bg-fuchsia .btn-tool,\n.bg-fuchsia-gradient .btn-tool,\n.card-fuchsia:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-fuchsia .btn-tool:hover,\n.bg-fuchsia-gradient .btn-tool:hover,\n.card-fuchsia:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget .table th,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #cc0da1;\n  color: #ffffff;\n}\n\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-fuchsia-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #f342cb;\n  color: #ffffff;\n}\n\n.card-maroon:not(.card-outline) .card-header {\n  background-color: #d81b60;\n  border-bottom: 0;\n}\n\n.card-maroon:not(.card-outline) .card-header,\n.card-maroon:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-maroon.card-outline {\n  border-top: 3px solid #d81b60;\n}\n\n.bg-maroon .btn-tool,\n.bg-maroon-gradient .btn-tool,\n.card-maroon:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-maroon .btn-tool:hover,\n.bg-maroon-gradient .btn-tool:hover,\n.card-maroon:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon .bootstrap-datetimepicker-widget .table th,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #b41650;\n  color: #ffffff;\n}\n\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-maroon-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #e73f7c;\n  color: #ffffff;\n}\n\n.card-blue:not(.card-outline) .card-header {\n  background-color: #007bff;\n  border-bottom: 0;\n}\n\n.card-blue:not(.card-outline) .card-header,\n.card-blue:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-blue.card-outline {\n  border-top: 3px solid #007bff;\n}\n\n.bg-blue .btn-tool,\n.bg-blue-gradient .btn-tool,\n.card-blue:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-blue .btn-tool:hover,\n.bg-blue-gradient .btn-tool:hover,\n.card-blue:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue .bootstrap-datetimepicker-widget .table th,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #0067d6;\n  color: #ffffff;\n}\n\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-blue-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #3395ff;\n  color: #ffffff;\n}\n\n.card-indigo:not(.card-outline) .card-header {\n  background-color: #6610f2;\n  border-bottom: 0;\n}\n\n.card-indigo:not(.card-outline) .card-header,\n.card-indigo:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-indigo.card-outline {\n  border-top: 3px solid #6610f2;\n}\n\n.bg-indigo .btn-tool,\n.bg-indigo-gradient .btn-tool,\n.card-indigo:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-indigo .btn-tool:hover,\n.bg-indigo-gradient .btn-tool:hover,\n.card-indigo:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo .bootstrap-datetimepicker-widget .table th,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #550bce;\n  color: #ffffff;\n}\n\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-indigo-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #8540f5;\n  color: #ffffff;\n}\n\n.card-purple:not(.card-outline) .card-header {\n  background-color: #6f42c1;\n  border-bottom: 0;\n}\n\n.card-purple:not(.card-outline) .card-header,\n.card-purple:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-purple.card-outline {\n  border-top: 3px solid #6f42c1;\n}\n\n.bg-purple .btn-tool,\n.bg-purple-gradient .btn-tool,\n.card-purple:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-purple .btn-tool:hover,\n.bg-purple-gradient .btn-tool:hover,\n.card-purple:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple .bootstrap-datetimepicker-widget .table th,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #5d36a4;\n  color: #ffffff;\n}\n\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-purple-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #8c68ce;\n  color: #ffffff;\n}\n\n.card-pink:not(.card-outline) .card-header {\n  background-color: #e83e8c;\n  border-bottom: 0;\n}\n\n.card-pink:not(.card-outline) .card-header,\n.card-pink:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-pink.card-outline {\n  border-top: 3px solid #e83e8c;\n}\n\n.bg-pink .btn-tool,\n.bg-pink-gradient .btn-tool,\n.card-pink:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-pink .btn-tool:hover,\n.bg-pink-gradient .btn-tool:hover,\n.card-pink:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink .bootstrap-datetimepicker-widget .table th,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #e21b76;\n  color: #ffffff;\n}\n\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-pink-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #ed6ca7;\n  color: #ffffff;\n}\n\n.card-red:not(.card-outline) .card-header {\n  background-color: #dc3545;\n  border-bottom: 0;\n}\n\n.card-red:not(.card-outline) .card-header,\n.card-red:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-red.card-outline {\n  border-top: 3px solid #dc3545;\n}\n\n.bg-red .btn-tool,\n.bg-red-gradient .btn-tool,\n.card-red:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-red .btn-tool:hover,\n.bg-red-gradient .btn-tool:hover,\n.card-red:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget .table td,\n.card.bg-red .bootstrap-datetimepicker-widget .table th,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #c62232;\n  color: #ffffff;\n}\n\n.card.bg-red .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-red-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #e4606d;\n  color: #ffffff;\n}\n\n.card-orange:not(.card-outline) .card-header {\n  background-color: #fd7e14;\n  border-bottom: 0;\n}\n\n.card-orange:not(.card-outline) .card-header,\n.card-orange:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-orange.card-outline {\n  border-top: 3px solid #fd7e14;\n}\n\n.bg-orange .btn-tool,\n.bg-orange-gradient .btn-tool,\n.card-orange:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-orange .btn-tool:hover,\n.bg-orange-gradient .btn-tool:hover,\n.card-orange:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange .bootstrap-datetimepicker-widget .table th,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #e66a02;\n  color: #1F2D3D;\n}\n\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-orange-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #fd9a47;\n  color: #1F2D3D;\n}\n\n.card-yellow:not(.card-outline) .card-header {\n  background-color: #ffc107;\n  border-bottom: 0;\n}\n\n.card-yellow:not(.card-outline) .card-header,\n.card-yellow:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-yellow.card-outline {\n  border-top: 3px solid #ffc107;\n}\n\n.bg-yellow .btn-tool,\n.bg-yellow-gradient .btn-tool,\n.card-yellow:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-yellow .btn-tool:hover,\n.bg-yellow-gradient .btn-tool:hover,\n.card-yellow:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow .bootstrap-datetimepicker-widget .table th,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #dda600;\n  color: #1F2D3D;\n}\n\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-yellow-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #ffce3a;\n  color: #1F2D3D;\n}\n\n.card-green:not(.card-outline) .card-header {\n  background-color: #28a745;\n  border-bottom: 0;\n}\n\n.card-green:not(.card-outline) .card-header,\n.card-green:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-green.card-outline {\n  border-top: 3px solid #28a745;\n}\n\n.bg-green .btn-tool,\n.bg-green-gradient .btn-tool,\n.card-green:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-green .btn-tool:hover,\n.bg-green-gradient .btn-tool:hover,\n.card-green:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget .table td,\n.card.bg-green .bootstrap-datetimepicker-widget .table th,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #208637;\n  color: #ffffff;\n}\n\n.card.bg-green .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-green-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #34ce57;\n  color: #ffffff;\n}\n\n.card-teal:not(.card-outline) .card-header {\n  background-color: #20c997;\n  border-bottom: 0;\n}\n\n.card-teal:not(.card-outline) .card-header,\n.card-teal:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-teal.card-outline {\n  border-top: 3px solid #20c997;\n}\n\n.bg-teal .btn-tool,\n.bg-teal-gradient .btn-tool,\n.card-teal:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-teal .btn-tool:hover,\n.bg-teal-gradient .btn-tool:hover,\n.card-teal:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal .bootstrap-datetimepicker-widget .table th,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #1aa67d;\n  color: #ffffff;\n}\n\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-teal-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #3ce0af;\n  color: #ffffff;\n}\n\n.card-cyan:not(.card-outline) .card-header {\n  background-color: #17a2b8;\n  border-bottom: 0;\n}\n\n.card-cyan:not(.card-outline) .card-header,\n.card-cyan:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-cyan.card-outline {\n  border-top: 3px solid #17a2b8;\n}\n\n.bg-cyan .btn-tool,\n.bg-cyan-gradient .btn-tool,\n.card-cyan:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-cyan .btn-tool:hover,\n.bg-cyan-gradient .btn-tool:hover,\n.card-cyan:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan .bootstrap-datetimepicker-widget .table th,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #128294;\n  color: #ffffff;\n}\n\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-cyan-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #1fc8e3;\n  color: #ffffff;\n}\n\n.card-white:not(.card-outline) .card-header {\n  background-color: #ffffff;\n  border-bottom: 0;\n}\n\n.card-white:not(.card-outline) .card-header,\n.card-white:not(.card-outline) .card-header a {\n  color: #1F2D3D;\n}\n\n.card-white.card-outline {\n  border-top: 3px solid #ffffff;\n}\n\n.bg-white .btn-tool,\n.bg-white-gradient .btn-tool,\n.card-white:not(.card-outline) .btn-tool {\n  color: rgba(31, 45, 61, 0.8);\n}\n\n.bg-white .btn-tool:hover,\n.bg-white-gradient .btn-tool:hover,\n.card-white:not(.card-outline) .btn-tool:hover {\n  color: #1F2D3D;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget .table td,\n.card.bg-white .bootstrap-datetimepicker-widget .table th,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #ebebeb;\n  color: #1F2D3D;\n}\n\n.card.bg-white .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-white-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: white;\n  color: #1F2D3D;\n}\n\n.card-gray:not(.card-outline) .card-header {\n  background-color: #6c757d;\n  border-bottom: 0;\n}\n\n.card-gray:not(.card-outline) .card-header,\n.card-gray:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-gray.card-outline {\n  border-top: 3px solid #6c757d;\n}\n\n.bg-gray .btn-tool,\n.bg-gray-gradient .btn-tool,\n.card-gray:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray .btn-tool:hover,\n.bg-gray-gradient .btn-tool:hover,\n.card-gray:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray .bootstrap-datetimepicker-widget .table th,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #596167;\n  color: #ffffff;\n}\n\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #868e96;\n  color: #ffffff;\n}\n\n.card-gray-dark:not(.card-outline) .card-header {\n  background-color: #343a40;\n  border-bottom: 0;\n}\n\n.card-gray-dark:not(.card-outline) .card-header,\n.card-gray-dark:not(.card-outline) .card-header a {\n  color: #ffffff;\n}\n\n.card-gray-dark.card-outline {\n  border-top: 3px solid #343a40;\n}\n\n.bg-gray-dark .btn-tool,\n.bg-gray-dark-gradient .btn-tool,\n.card-gray-dark:not(.card-outline) .btn-tool {\n  color: rgba(255, 255, 255, 0.8);\n}\n\n.bg-gray-dark .btn-tool:hover,\n.bg-gray-dark-gradient .btn-tool:hover,\n.card-gray-dark:not(.card-outline) .btn-tool:hover {\n  color: #ffffff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget .table th,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget .table td,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget .table th {\n  border: none;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.second:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table thead tr:first-child th:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.day:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.hour:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.minute:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.second:hover {\n  background: #222629;\n  color: #ffffff;\n}\n\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark .bootstrap-datetimepicker-widget table td.active:hover,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.active,\n.card.bg-gray-dark-gradient .bootstrap-datetimepicker-widget table td.active:hover {\n  background: #4b545c;\n  color: #ffffff;\n}\n\n.info-box {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background: #ffffff;\n  min-height: 80px;\n  padding: .5rem;\n  position: relative;\n}\n\n.info-box .progress {\n  background-color: rgba(0, 0, 0, 0.125);\n  height: 2px;\n  margin: 5px 0;\n}\n\n.info-box .progress .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box-icon {\n  border-radius: 0.25rem;\n  display: block;\n  font-size: 1.875rem;\n  text-align: center;\n  width: 70px;\n}\n\n.info-box .info-box-icon > img {\n  max-width: 100%;\n}\n\n.info-box .info-box-content {\n  -ms-flex: 1;\n  flex: 1;\n  padding: 5px 10px;\n}\n\n.info-box .info-box-number {\n  display: block;\n  font-weight: 700;\n}\n\n.info-box .progress-description,\n.info-box .info-box-text {\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.info-box .info-box .bg-primary, .info-box .info-box .alert-primary,\n.info-box .info-box .bg-gradient-primary {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-primary .progress-bar, .info-box .info-box .alert-primary .progress-bar,\n.info-box .info-box .bg-gradient-primary .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box .bg-secondary,\n.info-box .info-box .bg-gradient-secondary {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-secondary .progress-bar,\n.info-box .info-box .bg-gradient-secondary .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box .bg-success, .info-box .info-box .alert-success,\n.info-box .info-box .bg-gradient-success {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-success .progress-bar, .info-box .info-box .alert-success .progress-bar,\n.info-box .info-box .bg-gradient-success .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box .bg-info, .info-box .info-box .alert-info,\n.info-box .info-box .bg-gradient-info {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-info .progress-bar, .info-box .info-box .alert-info .progress-bar,\n.info-box .info-box .bg-gradient-info .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box .bg-warning, .info-box .info-box .alert-warning,\n.info-box .info-box .bg-gradient-warning {\n  color: #1F2D3D;\n}\n\n.info-box .info-box .bg-warning .progress-bar, .info-box .info-box .alert-warning .progress-bar,\n.info-box .info-box .bg-gradient-warning .progress-bar {\n  background-color: #1F2D3D;\n}\n\n.info-box .info-box .bg-danger, .info-box .info-box .alert-danger,\n.info-box .info-box .alert-error,\n.info-box .info-box .bg-gradient-danger {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-danger .progress-bar, .info-box .info-box .alert-danger .progress-bar, .info-box .info-box .alert-error .progress-bar,\n.info-box .info-box .bg-gradient-danger .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box .bg-light,\n.info-box .info-box .bg-gradient-light {\n  color: #1F2D3D;\n}\n\n.info-box .info-box .bg-light .progress-bar,\n.info-box .info-box .bg-gradient-light .progress-bar {\n  background-color: #1F2D3D;\n}\n\n.info-box .info-box .bg-dark,\n.info-box .info-box .bg-gradient-dark {\n  color: #ffffff;\n}\n\n.info-box .info-box .bg-dark .progress-bar,\n.info-box .info-box .bg-gradient-dark .progress-bar {\n  background-color: #ffffff;\n}\n\n.info-box .info-box-more {\n  display: block;\n}\n\n.info-box .progress-description {\n  margin: 0;\n}\n\n@media (min-width: 768px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    display: none;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    display: none;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 0.75rem;\n    display: block;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl-2 .info-box .progress-description,\n  .col-lg-2 .info-box .progress-description,\n  .col-md-2 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n  .col-xl-3 .info-box .progress-description,\n  .col-lg-3 .info-box .progress-description,\n  .col-md-3 .info-box .progress-description {\n    font-size: 1rem;\n    display: block;\n  }\n}\n\n.timeline {\n  list-style: none;\n  margin: 0 0 30px;\n  padding: 0;\n  position: relative;\n}\n\n.timeline::before {\n  border-radius: 0.25rem;\n  background: #dee2e6;\n  bottom: 0;\n  content: '';\n  left: 31px;\n  margin: 0;\n  position: absolute;\n  top: 0;\n  width: 4px;\n}\n\n.timeline > li {\n  margin-bottom: 15px;\n  margin-right: 10px;\n  position: relative;\n}\n\n.timeline > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.timeline > li > .timeline-item {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  background: #ffffff;\n  color: #495057;\n  margin-left: 60px;\n  margin-right: 15px;\n  margin-top: 0;\n  padding: 0;\n  position: relative;\n}\n\n.timeline > li > .timeline-item > .time {\n  color: #999;\n  float: right;\n  font-size: 12px;\n  padding: 10px;\n}\n\n.timeline > li > .timeline-item > .timeline-header {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  color: #495057;\n  font-size: 16px;\n  line-height: 1.1;\n  margin: 0;\n  padding: 10px;\n}\n\n.timeline > li > .timeline-item > .timeline-header > a {\n  font-weight: 600;\n}\n\n.timeline > li > .timeline-item > .timeline-body,\n.timeline > li > .timeline-item > .timeline-footer {\n  padding: 10px;\n}\n\n.timeline > li > .fa,\n.timeline > li > .fas,\n.timeline > li > .far,\n.timeline > li > .fab,\n.timeline > li > .glyphicon,\n.timeline > li > .ion {\n  background: #adb5bd;\n  border-radius: 50%;\n  font-size: 15px;\n  height: 30px;\n  left: 18px;\n  line-height: 30px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  width: 30px;\n}\n\n.timeline > .time-label > span {\n  border-radius: 4px;\n  background-color: #ffffff;\n  display: inline-block;\n  font-weight: 600;\n  padding: 5px;\n}\n\n.timeline-inverse > li > .timeline-item {\n  box-shadow: none;\n  background: #f8f9fa;\n  border: 1px solid #dee2e6;\n}\n\n.timeline-inverse > li > .timeline-item > .timeline-header {\n  border-bottom-color: #dee2e6;\n}\n\n.btn.btn-flat {\n  border-radius: 0;\n  border-width: 1px;\n  box-shadow: none;\n}\n\n.btn.btn-file {\n  overflow: hidden;\n  position: relative;\n}\n\n.btn.btn-file > input[type='file'] {\n  background: #ffffff;\n  cursor: inherit;\n  display: block;\n  font-size: 100px;\n  min-height: 100%;\n  min-width: 100%;\n  opacity: 0;\n  outline: none;\n  position: absolute;\n  right: 0;\n  text-align: right;\n  top: 0;\n}\n\n.btn-default {\n  background-color: #f8f9fa;\n  border-color: #ddd;\n  color: #444;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.btn-app {\n  border-radius: 3px;\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  color: #6c757d;\n  font-size: 12px;\n  height: 60px;\n  margin: 0 0 10px 10px;\n  min-width: 80px;\n  padding: 15px 5px;\n  position: relative;\n  text-align: center;\n}\n\n.btn-app > .fa,\n.btn-app > .fas,\n.btn-app > .far,\n.btn-app > .fab,\n.btn-app > .glyphicon,\n.btn-app > .ion {\n  display: block;\n  font-size: 20px;\n}\n\n.btn-app:hover {\n  background: #f8f9fa;\n  border-color: #aaaaaa;\n  color: #444;\n}\n\n.btn-app:active, .btn-app:focus {\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n\n.btn-app > .badge {\n  font-size: 10px;\n  font-weight: 400;\n  position: absolute;\n  right: -10px;\n  top: -3px;\n}\n\n.callout {\n  border-radius: 0.25rem;\n  background-color: #ffffff;\n  border-left: 5px solid #e9ecef;\n  padding: .5rem 1rem .5rem .5rem;\n}\n\n.callout a {\n  color: #ffffff;\n  text-decoration: underline;\n}\n\n.callout a:hover {\n  color: #e9ecef;\n}\n\n.callout p:last-child {\n  margin-bottom: 0;\n}\n\n.callout.callout-danger {\n  border-left-color: #bd2130;\n}\n\n.callout.callout-warning {\n  border-left-color: #d39e00;\n}\n\n.callout.callout-info {\n  border-left-color: #117a8b;\n}\n\n.callout.callout-success {\n  border-left-color: #1e7e34;\n}\n\n.alert .icon {\n  margin-right: 10px;\n}\n\n.alert .close, .alert .mailbox-attachment-close {\n  color: #000;\n  opacity: .2;\n}\n\n.alert .close:hover, .alert .mailbox-attachment-close:hover {\n  opacity: .5;\n}\n\n.alert a {\n  color: #ffffff;\n  text-decoration: underline;\n}\n\n.alert-success {\n  border-color: #23923d;\n}\n\n.alert-danger,\n.alert-error {\n  border-color: #d32535;\n}\n\n.alert-warning {\n  border-color: #edb100;\n}\n\n.alert-info {\n  border-color: #148ea1;\n}\n\n.alert-primary {\n  border-color: #006fe6;\n}\n\n.nav-pills .nav-link {\n  color: #6c757d;\n}\n\n.nav-pills .nav-link:not(.active):hover {\n  color: #007bff;\n}\n\n.nav-pills .nav-item.dropdown.show .nav-link:hover {\n  color: #ffffff;\n}\n\n.nav-tabs.flex-column {\n  border-bottom: 0;\n  border-right: 1px solid #dee2e6;\n}\n\n.nav-tabs.flex-column .nav-link {\n  margin-right: -1px;\n}\n\n.nav-tabs.flex-column .nav-link:hover, .nav-tabs.flex-column .nav-link:focus {\n  border-color: #e9ecef #dee2e6 #e9ecef #e9ecef;\n}\n\n.nav-tabs.flex-column .nav-link.active,\n.nav-tabs.flex-column .nav-item.show .nav-link {\n  border-color: #dee2e6 #ffffff #dee2e6 #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right {\n  border-left: 1px solid #dee2e6;\n  border-right: 0;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link {\n  margin-left: -1px;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link:hover, .nav-tabs.flex-column.nav-tabs-right .nav-link:focus {\n  border-color: #e9ecef #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs.flex-column.nav-tabs-right .nav-link.active,\n.nav-tabs.flex-column.nav-tabs-right .nav-item.show .nav-link {\n  border-color: #dee2e6 #dee2e6 #dee2e6 #ffffff;\n}\n\n.navbar-light {\n  background-color: #f8f9fa;\n}\n\n.navbar-dark {\n  background-color: #343a40;\n}\n\n.navbar-primary {\n  background-color: #007bff;\n}\n\n.navbar-secondary {\n  background-color: #6c757d;\n}\n\n.navbar-success {\n  background-color: #28a745;\n}\n\n.navbar-info {\n  background-color: #17a2b8;\n}\n\n.navbar-warning {\n  background-color: #ffc107;\n}\n\n.navbar-danger {\n  background-color: #dc3545;\n}\n\n.navbar-navy {\n  background-color: #001f3f;\n}\n\n.navbar-olive {\n  background-color: #3d9970;\n}\n\n.navbar-lime {\n  background-color: #01ff70;\n}\n\n.navbar-fuchsia {\n  background-color: #f012be;\n}\n\n.navbar-maroon {\n  background-color: #d81b60;\n}\n\n.navbar-blue {\n  background-color: #007bff;\n}\n\n.navbar-indigo {\n  background-color: #6610f2;\n}\n\n.navbar-purple {\n  background-color: #6f42c1;\n}\n\n.navbar-pink {\n  background-color: #e83e8c;\n}\n\n.navbar-red {\n  background-color: #dc3545;\n}\n\n.navbar-orange {\n  background-color: #fd7e14;\n}\n\n.navbar-yellow {\n  background-color: #ffc107;\n}\n\n.navbar-green {\n  background-color: #28a745;\n}\n\n.navbar-teal {\n  background-color: #20c997;\n}\n\n.navbar-cyan {\n  background-color: #17a2b8;\n}\n\n.navbar-white {\n  background-color: #ffffff;\n}\n\n.navbar-gray {\n  background-color: #6c757d;\n}\n\n.navbar-gray-dark {\n  background-color: #343a40;\n}\n\n.products-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.products-list > .item {\n  border-radius: 0.25rem;\n  background: #ffffff;\n  padding: 10px 0;\n}\n\n.products-list > .item::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.products-list .product-img {\n  float: left;\n}\n\n.products-list .product-img img {\n  height: 50px;\n  width: 50px;\n}\n\n.products-list .product-info {\n  margin-left: 60px;\n}\n\n.products-list .product-title {\n  font-weight: 600;\n}\n\n.products-list .product-description {\n  color: #6c757d;\n  display: block;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.product-list-in-card > .item {\n  border-radius: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.product-list-in-card > .item:last-of-type {\n  border-bottom-width: 0;\n}\n\n.table:not(.table-dark) {\n  color: inherit;\n}\n\n.table.table-head-fixed thead tr:nth-child(1) th {\n  background-color: #ffffff;\n  border-bottom: 0;\n  box-shadow: inset 0 1px 0 #dee2e6, inset 0 -1px 0 #dee2e6;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  z-index: 10;\n}\n\n.table.table-head-fixed.table-dark thead tr:nth-child(1) th {\n  background-color: #212529;\n  box-shadow: inset 0 1px 0 #32383e, inset 0 -1px 0 #32383e;\n}\n\n.table.no-border,\n.table.no-border td,\n.table.no-border th {\n  border: 0;\n}\n\n.table.text-center,\n.table.text-center td,\n.table.text-center th {\n  text-align: center;\n}\n\n.table .table-valign-middle thead > tr > th,\n.table .table-valign-middle thead > tr > td,\n.table .table-valign-middle tbody > tr > th,\n.table .table-valign-middle tbody > tr > td {\n  vertical-align: middle;\n}\n\n.direct-chat .card-body {\n  overflow-x: hidden;\n  padding: 0;\n  position: relative;\n}\n\n.direct-chat.chat-pane-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-messages {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n  height: 250px;\n  overflow: auto;\n  padding: 10px;\n}\n\n.direct-chat-msg,\n.direct-chat-text {\n  display: block;\n}\n\n.direct-chat-msg {\n  margin-bottom: 10px;\n}\n\n.direct-chat-msg::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.direct-chat-messages,\n.direct-chat-contacts {\n  transition: -webkit-transform .5s ease-in-out;\n  transition: transform .5s ease-in-out;\n  transition: transform .5s ease-in-out, -webkit-transform .5s ease-in-out;\n}\n\n.direct-chat-text {\n  border-radius: 0.3rem;\n  background: #d2d6de;\n  border: 1px solid #d2d6de;\n  color: #444;\n  margin: 5px 0 0 50px;\n  padding: 5px 10px;\n  position: relative;\n}\n\n.direct-chat-text::after, .direct-chat-text::before {\n  border: solid transparent;\n  border-right-color: #d2d6de;\n  content: ' ';\n  height: 0;\n  pointer-events: none;\n  position: absolute;\n  right: 100%;\n  top: 15px;\n  width: 0;\n}\n\n.direct-chat-text::after {\n  border-width: 5px;\n  margin-top: -5px;\n}\n\n.direct-chat-text::before {\n  border-width: 6px;\n  margin-top: -6px;\n}\n\n.right .direct-chat-text {\n  margin-left: 0;\n  margin-right: 50px;\n}\n\n.right .direct-chat-text::after, .right .direct-chat-text::before {\n  border-left-color: #d2d6de;\n  border-right-color: transparent;\n  left: 100%;\n  right: auto;\n}\n\n.direct-chat-img {\n  border-radius: 50%;\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.right .direct-chat-img {\n  float: right;\n}\n\n.direct-chat-infos {\n  display: block;\n  font-size: 0.875rem;\n  margin-bottom: 2px;\n}\n\n.direct-chat-name {\n  font-weight: 600;\n}\n\n.direct-chat-timestamp {\n  color: #697582;\n}\n\n.direct-chat-contacts-open .direct-chat-contacts {\n  -webkit-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n\n.direct-chat-contacts {\n  -webkit-transform: translate(101%, 0);\n  transform: translate(101%, 0);\n  background: #212529;\n  bottom: 0;\n  color: #ffffff;\n  height: 250px;\n  overflow: auto;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.contacts-list > li {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  margin: 0;\n  padding: 10px;\n}\n\n.contacts-list > li::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.contacts-list > li:last-of-type {\n  border-bottom: 0;\n}\n\n.contacts-list-img {\n  border-radius: 50%;\n  float: left;\n  width: 40px;\n}\n\n.contacts-list-info {\n  color: #ffffff;\n  margin-left: 45px;\n}\n\n.contacts-list-name,\n.contacts-list-status {\n  display: block;\n}\n\n.contacts-list-name {\n  font-weight: 600;\n}\n\n.contacts-list-status {\n  font-size: 0.875rem;\n}\n\n.contacts-list-date {\n  color: #adb5bd;\n  font-weight: normal;\n}\n\n.contacts-list-msg {\n  color: #697582;\n}\n\n.direct-chat-primary .right > .direct-chat-text {\n  background: #007bff;\n  border-color: #007bff;\n  color: #ffffff;\n}\n\n.direct-chat-primary .right > .direct-chat-text::after, .direct-chat-primary .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text {\n  background: #6c757d;\n  border-color: #6c757d;\n  color: #ffffff;\n}\n\n.direct-chat-secondary .right > .direct-chat-text::after, .direct-chat-secondary .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-success .right > .direct-chat-text {\n  background: #28a745;\n  border-color: #28a745;\n  color: #ffffff;\n}\n\n.direct-chat-success .right > .direct-chat-text::after, .direct-chat-success .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-info .right > .direct-chat-text {\n  background: #17a2b8;\n  border-color: #17a2b8;\n  color: #ffffff;\n}\n\n.direct-chat-info .right > .direct-chat-text::after, .direct-chat-info .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-warning .right > .direct-chat-text {\n  background: #ffc107;\n  border-color: #ffc107;\n  color: #1F2D3D;\n}\n\n.direct-chat-warning .right > .direct-chat-text::after, .direct-chat-warning .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-danger .right > .direct-chat-text {\n  background: #dc3545;\n  border-color: #dc3545;\n  color: #ffffff;\n}\n\n.direct-chat-danger .right > .direct-chat-text::after, .direct-chat-danger .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-light .right > .direct-chat-text {\n  background: #f8f9fa;\n  border-color: #f8f9fa;\n  color: #1F2D3D;\n}\n\n.direct-chat-light .right > .direct-chat-text::after, .direct-chat-light .right > .direct-chat-text::before {\n  border-left-color: #f8f9fa;\n}\n\n.direct-chat-dark .right > .direct-chat-text {\n  background: #343a40;\n  border-color: #343a40;\n  color: #ffffff;\n}\n\n.direct-chat-dark .right > .direct-chat-text::after, .direct-chat-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.direct-chat-navy .right > .direct-chat-text {\n  background: #001f3f;\n  border-color: #001f3f;\n  color: #ffffff;\n}\n\n.direct-chat-navy .right > .direct-chat-text::after, .direct-chat-navy .right > .direct-chat-text::before {\n  border-left-color: #001f3f;\n}\n\n.direct-chat-olive .right > .direct-chat-text {\n  background: #3d9970;\n  border-color: #3d9970;\n  color: #ffffff;\n}\n\n.direct-chat-olive .right > .direct-chat-text::after, .direct-chat-olive .right > .direct-chat-text::before {\n  border-left-color: #3d9970;\n}\n\n.direct-chat-lime .right > .direct-chat-text {\n  background: #01ff70;\n  border-color: #01ff70;\n  color: #1F2D3D;\n}\n\n.direct-chat-lime .right > .direct-chat-text::after, .direct-chat-lime .right > .direct-chat-text::before {\n  border-left-color: #01ff70;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text {\n  background: #f012be;\n  border-color: #f012be;\n  color: #ffffff;\n}\n\n.direct-chat-fuchsia .right > .direct-chat-text::after, .direct-chat-fuchsia .right > .direct-chat-text::before {\n  border-left-color: #f012be;\n}\n\n.direct-chat-maroon .right > .direct-chat-text {\n  background: #d81b60;\n  border-color: #d81b60;\n  color: #ffffff;\n}\n\n.direct-chat-maroon .right > .direct-chat-text::after, .direct-chat-maroon .right > .direct-chat-text::before {\n  border-left-color: #d81b60;\n}\n\n.direct-chat-blue .right > .direct-chat-text {\n  background: #007bff;\n  border-color: #007bff;\n  color: #ffffff;\n}\n\n.direct-chat-blue .right > .direct-chat-text::after, .direct-chat-blue .right > .direct-chat-text::before {\n  border-left-color: #007bff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text {\n  background: #6610f2;\n  border-color: #6610f2;\n  color: #ffffff;\n}\n\n.direct-chat-indigo .right > .direct-chat-text::after, .direct-chat-indigo .right > .direct-chat-text::before {\n  border-left-color: #6610f2;\n}\n\n.direct-chat-purple .right > .direct-chat-text {\n  background: #6f42c1;\n  border-color: #6f42c1;\n  color: #ffffff;\n}\n\n.direct-chat-purple .right > .direct-chat-text::after, .direct-chat-purple .right > .direct-chat-text::before {\n  border-left-color: #6f42c1;\n}\n\n.direct-chat-pink .right > .direct-chat-text {\n  background: #e83e8c;\n  border-color: #e83e8c;\n  color: #ffffff;\n}\n\n.direct-chat-pink .right > .direct-chat-text::after, .direct-chat-pink .right > .direct-chat-text::before {\n  border-left-color: #e83e8c;\n}\n\n.direct-chat-red .right > .direct-chat-text {\n  background: #dc3545;\n  border-color: #dc3545;\n  color: #ffffff;\n}\n\n.direct-chat-red .right > .direct-chat-text::after, .direct-chat-red .right > .direct-chat-text::before {\n  border-left-color: #dc3545;\n}\n\n.direct-chat-orange .right > .direct-chat-text {\n  background: #fd7e14;\n  border-color: #fd7e14;\n  color: #1F2D3D;\n}\n\n.direct-chat-orange .right > .direct-chat-text::after, .direct-chat-orange .right > .direct-chat-text::before {\n  border-left-color: #fd7e14;\n}\n\n.direct-chat-yellow .right > .direct-chat-text {\n  background: #ffc107;\n  border-color: #ffc107;\n  color: #1F2D3D;\n}\n\n.direct-chat-yellow .right > .direct-chat-text::after, .direct-chat-yellow .right > .direct-chat-text::before {\n  border-left-color: #ffc107;\n}\n\n.direct-chat-green .right > .direct-chat-text {\n  background: #28a745;\n  border-color: #28a745;\n  color: #ffffff;\n}\n\n.direct-chat-green .right > .direct-chat-text::after, .direct-chat-green .right > .direct-chat-text::before {\n  border-left-color: #28a745;\n}\n\n.direct-chat-teal .right > .direct-chat-text {\n  background: #20c997;\n  border-color: #20c997;\n  color: #ffffff;\n}\n\n.direct-chat-teal .right > .direct-chat-text::after, .direct-chat-teal .right > .direct-chat-text::before {\n  border-left-color: #20c997;\n}\n\n.direct-chat-cyan .right > .direct-chat-text {\n  background: #17a2b8;\n  border-color: #17a2b8;\n  color: #ffffff;\n}\n\n.direct-chat-cyan .right > .direct-chat-text::after, .direct-chat-cyan .right > .direct-chat-text::before {\n  border-left-color: #17a2b8;\n}\n\n.direct-chat-white .right > .direct-chat-text {\n  background: #ffffff;\n  border-color: #ffffff;\n  color: #1F2D3D;\n}\n\n.direct-chat-white .right > .direct-chat-text::after, .direct-chat-white .right > .direct-chat-text::before {\n  border-left-color: #ffffff;\n}\n\n.direct-chat-gray .right > .direct-chat-text {\n  background: #6c757d;\n  border-color: #6c757d;\n  color: #ffffff;\n}\n\n.direct-chat-gray .right > .direct-chat-text::after, .direct-chat-gray .right > .direct-chat-text::before {\n  border-left-color: #6c757d;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text {\n  background: #343a40;\n  border-color: #343a40;\n  color: #ffffff;\n}\n\n.direct-chat-gray-dark .right > .direct-chat-text::after, .direct-chat-gray-dark .right > .direct-chat-text::before {\n  border-left-color: #343a40;\n}\n\n.users-list > li {\n  float: left;\n  padding: 10px;\n  text-align: center;\n  width: 25%;\n}\n\n.users-list > li img {\n  border-radius: 50%;\n  height: auto;\n  max-width: 100%;\n}\n\n.users-list > li > a:hover,\n.users-list > li > a:hover .users-list-name {\n  color: #999;\n}\n\n.users-list-name,\n.users-list-date {\n  display: block;\n}\n\n.users-list-name {\n  color: #495057;\n  font-size: 0.875rem;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.users-list-date {\n  color: #748290;\n  font-size: 12px;\n}\n\n.carousel-control.left, .carousel-control.right {\n  background-image: none;\n}\n\n.carousel-control > .fa,\n.carousel-control > .fas,\n.carousel-control > .far,\n.carousel-control > .fab,\n.carousel-control > .glyphicon,\n.carousel-control > .ion {\n  display: inline-block;\n  font-size: 40px;\n  margin-top: -20px;\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n}\n\n.card-widget {\n  border: 0;\n  position: relative;\n}\n\n.widget-user .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  height: 120px;\n  padding: 1rem;\n}\n\n.widget-user .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 0;\n  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);\n}\n\n.widget-user .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user .widget-user-image {\n  left: 50%;\n  margin-left: -45px;\n  position: absolute;\n  top: 65px;\n}\n\n.widget-user .widget-user-image > img {\n  border: 3px solid #ffffff;\n  height: auto;\n  width: 90px;\n}\n\n.widget-user .card-footer {\n  padding-top: 40px;\n}\n\n.widget-user-2 .widget-user-header {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n  padding: 1rem;\n}\n\n.widget-user-2 .widget-user-username {\n  font-size: 25px;\n  font-weight: 300;\n  margin-bottom: 5px;\n  margin-top: 5px;\n}\n\n.widget-user-2 .widget-user-desc {\n  margin-top: 0;\n}\n\n.widget-user-2 .widget-user-username,\n.widget-user-2 .widget-user-desc {\n  margin-left: 75px;\n}\n\n.widget-user-2 .widget-user-image > img {\n  float: left;\n  height: auto;\n  width: 65px;\n}\n\n.modal-dialog .overlay {\n  background-color: #000;\n  display: block;\n  height: 100%;\n  left: 0;\n  opacity: .7;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 1052;\n}\n\n.modal-content.bg-warning .modal-header, .modal-content.alert-warning .modal-header,\n.modal-content.bg-warning .modal-footer,\n.modal-content.alert-warning .modal-footer {\n  border-color: #343a40;\n}\n\n.modal-content.bg-primary .close, .modal-content.alert-primary .close, .modal-content.bg-primary .mailbox-attachment-close, .modal-content.alert-primary .mailbox-attachment-close, .modal-content.bg-secondary .close, .modal-content.bg-secondary .mailbox-attachment-close, .modal-content.bg-info .close, .modal-content.alert-info .close, .modal-content.bg-info .mailbox-attachment-close, .modal-content.alert-info .mailbox-attachment-close, .modal-content.bg-danger .close, .modal-content.alert-danger .close, .modal-content.alert-error .close, .modal-content.bg-danger .mailbox-attachment-close, .modal-content.alert-danger .mailbox-attachment-close, .modal-content.alert-error .mailbox-attachment-close, .modal-content.bg-success .close, .modal-content.alert-success .close, .modal-content.bg-success .mailbox-attachment-close, .modal-content.alert-success .mailbox-attachment-close {\n  color: #ffffff;\n}\n\n.mailbox-messages > .table {\n  margin: 0;\n}\n\n.mailbox-controls {\n  padding: 5px;\n}\n\n.mailbox-controls.with-border {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.mailbox-read-info {\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n  padding: 10px;\n}\n\n.mailbox-read-info h3 {\n  font-size: 20px;\n  margin: 0;\n}\n\n.mailbox-read-info h5 {\n  margin: 0;\n  padding: 5px 0 0;\n}\n\n.mailbox-read-time {\n  color: #999;\n  font-size: 13px;\n}\n\n.mailbox-read-message {\n  padding: 10px;\n}\n\n.mailbox-attachments li {\n  border: 1px solid #eee;\n  float: left;\n  margin-bottom: 10px;\n  margin-right: 10px;\n  width: 200px;\n}\n\n.mailbox-attachment-name {\n  color: #666;\n  font-weight: bold;\n}\n\n.mailbox-attachment-icon,\n.mailbox-attachment-info,\n.mailbox-attachment-size {\n  display: block;\n}\n\n.mailbox-attachment-info {\n  background: #f8f9fa;\n  padding: 10px;\n}\n\n.mailbox-attachment-size {\n  color: #999;\n  font-size: 12px;\n}\n\n.mailbox-attachment-size > span {\n  display: inline-block;\n  padding-top: 0.75rem;\n}\n\n.mailbox-attachment-icon {\n  color: #666;\n  font-size: 65px;\n  max-height: 132.5px;\n  padding: 20px 10px;\n  text-align: center;\n}\n\n.mailbox-attachment-icon.has-img {\n  padding: 0;\n}\n\n.mailbox-attachment-icon.has-img > img {\n  height: auto;\n  max-width: 100%;\n}\n\n.lockscreen {\n  background: #e9ecef;\n}\n\n.lockscreen .lockscreen-name {\n  font-weight: 600;\n  text-align: center;\n}\n\n.lockscreen-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.lockscreen-logo a {\n  color: #495057;\n}\n\n.lockscreen-wrapper {\n  margin: 0 auto;\n  margin-top: 10%;\n  max-width: 400px;\n}\n\n.lockscreen-item {\n  border-radius: 4px;\n  background: #ffffff;\n  margin: 10px auto 30px;\n  padding: 0;\n  position: relative;\n  width: 290px;\n}\n\n.lockscreen-image {\n  border-radius: 50%;\n  background: #ffffff;\n  left: -10px;\n  padding: 5px;\n  position: absolute;\n  top: -25px;\n  z-index: 10;\n}\n\n.lockscreen-image > img {\n  border-radius: 50%;\n  height: 70px;\n  width: 70px;\n}\n\n.lockscreen-credentials {\n  margin-left: 70px;\n}\n\n.lockscreen-credentials .form-control {\n  border: 0;\n}\n\n.lockscreen-credentials .btn {\n  background-color: #ffffff;\n  border: 0;\n  padding: 0 10px;\n}\n\n.lockscreen-footer {\n  margin-top: 10px;\n}\n\n.login-logo,\n.register-logo {\n  font-size: 35px;\n  font-weight: 300;\n  margin-bottom: 25px;\n  text-align: center;\n}\n\n.login-logo a,\n.register-logo a {\n  color: #495057;\n}\n\n.login-page,\n.register-page {\n  background: #e9ecef;\n}\n\n.login-box,\n.register-box {\n  margin: 7% auto;\n  width: 360px;\n}\n\n@media (max-width: 576px) {\n  .login-box,\n  .register-box {\n    margin-top: 20px;\n    width: 90%;\n  }\n}\n\n.login-card-body,\n.register-card-body {\n  background: #ffffff;\n  border-top: 0;\n  color: #666;\n  padding: 20px;\n}\n\n.login-card-body .input-group .form-control,\n.register-card-body .input-group .form-control {\n  border-right: 0;\n}\n\n.login-card-body .input-group .form-control:focus,\n.register-card-body .input-group .form-control:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control:focus ~ .input-group-append .input-group-text {\n  border-color: #80bdff;\n}\n\n.login-card-body .input-group .form-control.is-valid:focus,\n.register-card-body .input-group .form-control.is-valid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-valid ~ .input-group-append .input-group-text {\n  border-color: #28a745;\n}\n\n.login-card-body .input-group .form-control.is-invalid:focus,\n.register-card-body .input-group .form-control.is-invalid:focus {\n  box-shadow: none;\n}\n\n.login-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text,\n.register-card-body .input-group .form-control.is-invalid ~ .input-group-append .input-group-text {\n  border-color: #dc3545;\n}\n\n.login-card-body .input-group .input-group-text,\n.register-card-body .input-group .input-group-text {\n  background-color: transparent;\n  border-bottom-right-radius: 0.25rem !important;\n  border-left: 0;\n  border-top-right-radius: 0.25rem !important;\n  color: #777;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.login-box-msg,\n.register-box-msg {\n  margin: 0;\n  padding: 0 20px 20px;\n  text-align: center;\n}\n\n.social-auth-links {\n  margin: 10px 0;\n}\n\n.error-page {\n  margin: 20px auto 0;\n  width: 600px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page {\n    width: 100%;\n  }\n}\n\n.error-page > .headline {\n  float: left;\n  font-size: 100px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .headline {\n    float: none;\n    text-align: center;\n  }\n}\n\n.error-page > .error-content {\n  display: block;\n  margin-left: 190px;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content {\n    margin-left: 0;\n  }\n}\n\n.error-page > .error-content > h3 {\n  font-size: 25px;\n  font-weight: 300;\n}\n\n@media (max-width: 767.98px) {\n  .error-page > .error-content > h3 {\n    text-align: center;\n  }\n}\n\n.invoice {\n  background: #ffffff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  position: relative;\n}\n\n.invoice-title {\n  margin-top: 0;\n}\n\n.profile-user-img {\n  border: 3px solid #adb5bd;\n  margin: 0 auto;\n  padding: 3px;\n  width: 100px;\n}\n\n.profile-username {\n  font-size: 21px;\n  margin-top: 5px;\n}\n\n.post {\n  border-bottom: 1px solid #adb5bd;\n  color: #666;\n  margin-bottom: 15px;\n  padding-bottom: 15px;\n}\n\n.post:last-of-type {\n  border-bottom: 0;\n  margin-bottom: 0;\n  padding-bottom: 0;\n}\n\n.post .user-block {\n  margin-bottom: 15px;\n}\n\n.product-image {\n  max-width: 100%;\n  height: auto;\n  width: 100%;\n}\n\n.product-image-thumbs {\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  display: -ms-flexbox;\n  display: flex;\n  margin-top: 2rem;\n}\n\n.product-image-thumb {\n  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n  border-radius: 0.25rem;\n  background-color: #ffffff;\n  border: 1px solid #dee2e6;\n  display: -ms-flexbox;\n  display: flex;\n  margin-right: 1rem;\n  max-width: 7rem;\n  padding: 0.5rem;\n}\n\n.product-image-thumb img {\n  max-width: 100%;\n  height: auto;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.product-image-thumb:hover {\n  opacity: 0.5;\n}\n\n.product-share a {\n  margin-right: .5rem;\n}\n\n.projects td {\n  vertical-align: middle;\n}\n\n.projects .list-inline {\n  margin-bottom: 0;\n}\n\n.projects img.table-avatar,\n.projects .table-avatar img {\n  border-radius: 50%;\n  display: inline;\n  width: 2.5rem;\n}\n\n.projects .project-state {\n  text-align: center;\n}\n\n.fc-button {\n  background: #f8f9fa;\n  background-image: none;\n  border-bottom-color: #ddd;\n  border-color: #ddd;\n  color: #495057;\n}\n\n.fc-button:hover, .fc-button:active, .fc-button.hover {\n  background-color: #e9e9e9;\n}\n\n.fc-header-title h2 {\n  color: #666;\n  font-size: 15px;\n  line-height: 1.6em;\n  margin-left: 10px;\n}\n\n.fc-header-right {\n  padding-right: 10px;\n}\n\n.fc-header-left {\n  padding-left: 10px;\n}\n\n.fc-widget-header {\n  background: #fafafa;\n}\n\n.fc-grid {\n  border: 0;\n  width: 100%;\n}\n\n.fc-widget-header:first-of-type,\n.fc-widget-content:first-of-type {\n  border-left: 0;\n  border-right: 0;\n}\n\n.fc-widget-header:last-of-type,\n.fc-widget-content:last-of-type {\n  border-right: 0;\n}\n\n.fc-toolbar {\n  margin: 0;\n  padding: 1rem;\n}\n\n.fc-day-number {\n  font-size: 20px;\n  font-weight: 300;\n  padding-right: 10px;\n}\n\n.fc-color-picker {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n}\n\n.fc-color-picker > li {\n  float: left;\n  font-size: 30px;\n  line-height: 30px;\n  margin-right: 5px;\n}\n\n.fc-color-picker > li .fa,\n.fc-color-picker > li .fas,\n.fc-color-picker > li .far,\n.fc-color-picker > li .fab,\n.fc-color-picker > li .glyphicon,\n.fc-color-picker > li .ion {\n  transition: -webkit-transform linear .3s;\n  transition: transform linear .3s;\n  transition: transform linear .3s, -webkit-transform linear .3s;\n}\n\n.fc-color-picker > li .fa:hover,\n.fc-color-picker > li .fas:hover,\n.fc-color-picker > li .far:hover,\n.fc-color-picker > li .fab:hover,\n.fc-color-picker > li .glyphicon:hover,\n.fc-color-picker > li .ion:hover {\n  -webkit-transform: rotate(30deg);\n  transform: rotate(30deg);\n}\n\n#add-new-event {\n  transition: all linear .3s;\n}\n\n.external-event {\n  box-shadow: 0 0 1px rgba(0, 0, 0, 0.125), 0 1px 3px rgba(0, 0, 0, 0.2);\n  border-radius: 0.25rem;\n  cursor: move;\n  font-weight: bold;\n  margin-bottom: 4px;\n  padding: 5px 10px;\n}\n\n.external-event:hover {\n  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.2);\n}\n\n.select2-container--default.select2-container--focus, .select2-container--default:focus, .select2-container--default:active,\n.select2-selection.select2-container--focus,\n.select2-selection:focus,\n.select2-selection:active {\n  outline: none;\n}\n\n.select2-container--default .select2-selection--single,\n.select2-selection .select2-selection--single {\n  border: 1px solid #d2d6de;\n  padding: 6px 12px;\n  height: calc(2.25rem + 2px);\n}\n\n.select2-container--default.select2-container--open {\n  border-color: #007bff;\n}\n\n.select2-dropdown {\n  border: 1px solid #d2d6de;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n  background-color: #007bff;\n  color: white;\n}\n\n.select2-results__option {\n  padding: 6px 12px;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  -webkit-user-select: none;\n}\n\n.select2-container .select2-selection--single .select2-selection__rendered {\n  padding-left: 0;\n  padding-right: 0;\n  height: auto;\n  margin-top: -3px;\n}\n\n.select2-container[dir=\"rtl\"] .select2-selection--single .select2-selection__rendered {\n  padding-right: 6px;\n  padding-left: 20px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n  height: 31px;\n  right: 6px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow b {\n  margin-top: 0;\n}\n\n.select2-dropdown .select2-search__field,\n.select2-search--inline .select2-search__field {\n  border: 1px solid #d2d6de;\n}\n\n.select2-dropdown .select2-search__field:focus,\n.select2-search--inline .select2-search__field:focus {\n  outline: none;\n  border: 1px solid #007bff;\n}\n\n.select2-container--default .select2-results__option[aria-disabled=true] {\n  color: #999;\n}\n\n.select2-container--default .select2-results__option[aria-selected=true] {\n  background-color: #ddd;\n}\n\n.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[aria-selected=true]:hover {\n  color: #444;\n}\n\n.select2-container--default .select2-selection--multiple {\n  min-height: calc(2.25rem + 2px);\n  border: 1px solid #d2d6de;\n}\n\n.select2-container--default .select2-selection--multiple:focus {\n  border-color: #007bff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline {\n  width: 100%;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li:first-child.select2-search.select2-search--inline .select2-search__field {\n  width: 100% !important;\n}\n\n.select2-container--default.select2-container--focus .select2-selection--multiple {\n  border-color: #d2d6de;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n  background-color: #007bff;\n  border-color: #006fe6;\n  padding: 0 10px;\n  color: #ffffff;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n  margin-right: 5px;\n  color: rgba(255, 255, 255, 0.7);\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n  color: #ffffff;\n}\n\n.select2-container .select2-selection--single .select2-selection__rendered li {\n  padding-right: 10px;\n}\n\n.slider.slider-vertical {\n  height: 100%;\n}\n\n.slider.slider-horizontal {\n  width: 100%;\n}\n\n.slider-primary .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-secondary .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-success .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-info .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-warning .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-danger .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-light .slider .slider-selection {\n  background: #f8f9fa;\n}\n\n.slider-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.slider-navy .slider .slider-selection {\n  background: #001f3f;\n}\n\n.slider-olive .slider .slider-selection {\n  background: #3d9970;\n}\n\n.slider-lime .slider .slider-selection {\n  background: #01ff70;\n}\n\n.slider-fuchsia .slider .slider-selection {\n  background: #f012be;\n}\n\n.slider-maroon .slider .slider-selection {\n  background: #d81b60;\n}\n\n.slider-blue .slider .slider-selection {\n  background: #007bff;\n}\n\n.slider-indigo .slider .slider-selection {\n  background: #6610f2;\n}\n\n.slider-purple .slider .slider-selection {\n  background: #6f42c1;\n}\n\n.slider-pink .slider .slider-selection {\n  background: #e83e8c;\n}\n\n.slider-red .slider .slider-selection {\n  background: #dc3545;\n}\n\n.slider-orange .slider .slider-selection {\n  background: #fd7e14;\n}\n\n.slider-yellow .slider .slider-selection {\n  background: #ffc107;\n}\n\n.slider-green .slider .slider-selection {\n  background: #28a745;\n}\n\n.slider-teal .slider .slider-selection {\n  background: #20c997;\n}\n\n.slider-cyan .slider .slider-selection {\n  background: #17a2b8;\n}\n\n.slider-white .slider .slider-selection {\n  background: #ffffff;\n}\n\n.slider-gray .slider .slider-selection {\n  background: #6c757d;\n}\n\n.slider-gray-dark .slider .slider-selection {\n  background: #343a40;\n}\n\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-primary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-primary > input:first-child:checked + label::before,\n.icheck-primary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-secondary > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-secondary > input:first-child:checked + label::before,\n.icheck-secondary > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-success > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-success > input:first-child:checked + label::before,\n.icheck-success > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-info > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-info > input:first-child:checked + label::before,\n.icheck-info > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-warning > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-warning > input:first-child:checked + label::before,\n.icheck-warning > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-danger > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-danger > input:first-child:checked + label::before,\n.icheck-danger > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-light > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f8f9fa;\n}\n\n.icheck-light > input:first-child:checked + label::before,\n.icheck-light > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-dark > input:first-child:checked + label::before,\n.icheck-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-navy > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #001f3f;\n}\n\n.icheck-navy > input:first-child:checked + label::before,\n.icheck-navy > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #001f3f;\n  border-color: #001f3f;\n}\n\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-olive > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #3d9970;\n}\n\n.icheck-olive > input:first-child:checked + label::before,\n.icheck-olive > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #3d9970;\n  border-color: #3d9970;\n}\n\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-lime > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #01ff70;\n}\n\n.icheck-lime > input:first-child:checked + label::before,\n.icheck-lime > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #01ff70;\n  border-color: #01ff70;\n}\n\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-fuchsia > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #f012be;\n}\n\n.icheck-fuchsia > input:first-child:checked + label::before,\n.icheck-fuchsia > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #f012be;\n  border-color: #f012be;\n}\n\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-maroon > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #d81b60;\n}\n\n.icheck-maroon > input:first-child:checked + label::before,\n.icheck-maroon > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #d81b60;\n  border-color: #d81b60;\n}\n\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-blue > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #007bff;\n}\n\n.icheck-blue > input:first-child:checked + label::before,\n.icheck-blue > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-indigo > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6610f2;\n}\n\n.icheck-indigo > input:first-child:checked + label::before,\n.icheck-indigo > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6610f2;\n  border-color: #6610f2;\n}\n\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-purple > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6f42c1;\n}\n\n.icheck-purple > input:first-child:checked + label::before,\n.icheck-purple > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6f42c1;\n  border-color: #6f42c1;\n}\n\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-pink > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #e83e8c;\n}\n\n.icheck-pink > input:first-child:checked + label::before,\n.icheck-pink > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #e83e8c;\n  border-color: #e83e8c;\n}\n\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-red > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #dc3545;\n}\n\n.icheck-red > input:first-child:checked + label::before,\n.icheck-red > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-orange > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #fd7e14;\n}\n\n.icheck-orange > input:first-child:checked + label::before,\n.icheck-orange > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #fd7e14;\n  border-color: #fd7e14;\n}\n\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-yellow > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffc107;\n}\n\n.icheck-yellow > input:first-child:checked + label::before,\n.icheck-yellow > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-green > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #28a745;\n}\n\n.icheck-green > input:first-child:checked + label::before,\n.icheck-green > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-teal > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #20c997;\n}\n\n.icheck-teal > input:first-child:checked + label::before,\n.icheck-teal > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #20c997;\n  border-color: #20c997;\n}\n\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-cyan > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #17a2b8;\n}\n\n.icheck-cyan > input:first-child:checked + label::before,\n.icheck-cyan > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-white > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #ffffff;\n}\n\n.icheck-white > input:first-child:checked + label::before,\n.icheck-white > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #ffffff;\n  border-color: #ffffff;\n}\n\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #6c757d;\n}\n\n.icheck-gray > input:first-child:checked + label::before,\n.icheck-gray > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + label::before,\n.icheck-gray-dark > input:first-child:not(:checked):not(:disabled):hover + input[type=\"hidden\"] + label::before {\n  border-color: #343a40;\n}\n\n.icheck-gray-dark > input:first-child:checked + label::before,\n.icheck-gray-dark > input:first-child:checked + input[type=\"hidden\"] + label::before {\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.mapael .map {\n  position: relative;\n}\n\n.mapael .mapTooltip {\n  font-family: \"Source Sans Pro\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  border-radius: 0.25rem;\n  font-size: 0.875rem;\n  background-color: #000;\n  color: #ffffff;\n  display: block;\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  position: absolute;\n  text-align: center;\n  word-wrap: break-word;\n  z-index: 1070;\n}\n\n.mapael .myLegend {\n  background-color: #f8f9fa;\n  border: 1px solid #adb5bd;\n  padding: 10px;\n  width: 600px;\n}\n\n.mapael .zoomButton {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  cursor: pointer;\n  font-weight: bold;\n  height: 16px;\n  left: 10px;\n  line-height: 14px;\n  padding-left: 1px;\n  position: absolute;\n  text-align: center;\n  top: 0;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  width: 16px;\n}\n\n.mapael .zoomButton:hover, .mapael .zoomButton:active, .mapael .zoomButton.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.mapael .zoomReset {\n  line-height: 12px;\n  top: 10px;\n}\n\n.mapael .zoomIn {\n  top: 30px;\n}\n\n.mapael .zoomOut {\n  top: 50px;\n}\n\n.jqvmap-zoomin,\n.jqvmap-zoomout {\n  background-color: #f8f9fa;\n  border: 1px solid #ddd;\n  border-radius: 0.25rem;\n  color: #444;\n  height: 15px;\n  width: 15px;\n}\n\n.jqvmap-zoomin:hover, .jqvmap-zoomin:active, .jqvmap-zoomin.hover,\n.jqvmap-zoomout:hover,\n.jqvmap-zoomout:active,\n.jqvmap-zoomout.hover {\n  background-color: #e9ecef;\n  color: #2b2b2b;\n}\n\n.swal2-icon.swal2-info {\n  border-color: ligthen(#17a2b8, 20%);\n  color: #17a2b8;\n}\n\n.swal2-icon.swal2-warning {\n  border-color: ligthen(#ffc107, 20%);\n  color: #ffc107;\n}\n\n.swal2-icon.swal2-error {\n  border-color: ligthen(#dc3545, 20%);\n  color: #dc3545;\n}\n\n.swal2-icon.swal2-question {\n  border-color: ligthen(#6c757d, 20%);\n  color: #6c757d;\n}\n\n.swal2-icon.swal2-success {\n  border-color: ligthen(#28a745, 20%);\n  color: #28a745;\n}\n\n.swal2-icon.swal2-success .swal2-success-ring {\n  border-color: ligthen(#28a745, 20%);\n}\n\n.swal2-icon.swal2-success [class^='swal2-success-line'] {\n  background-color: #28a745;\n}\n\n.toast {\n  background-color: #007bff;\n}\n\n.toast-success {\n  background-color: #28a745;\n}\n\n.toast-error {\n  background-color: #dc3545;\n}\n\n.toast-info {\n  background-color: #17a2b8;\n}\n\n.toast-warning {\n  background-color: #ffc107;\n}\n\n.jqstooltip {\n  height: auto !important;\n  padding: 5px !important;\n  width: auto !important;\n}\n\n.connectedSortable {\n  min-height: 100px;\n}\n\n.ui-helper-hidden-accessible {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.sort-highlight {\n  background: #f8f9fa;\n  border: 1px dashed #dee2e6;\n  margin-bottom: 10px;\n}\n\n.chart {\n  overflow: hidden;\n  position: relative;\n}\n\n.border-transparent {\n  border-color: transparent !important;\n}\n\n.description-block {\n  display: block;\n  margin: 10px 0;\n  text-align: center;\n}\n\n.description-block.margin-bottom {\n  margin-bottom: 25px;\n}\n\n.description-block > .description-header {\n  font-size: 16px;\n  font-weight: 600;\n  margin: 0;\n  padding: 0;\n}\n\n.description-block > .description-text {\n  text-transform: uppercase;\n}\n\n.description-block .description-icon {\n  font-size: 16px;\n}\n\n.list-group-unbordered > .list-group-item {\n  border-left: 0;\n  border-radius: 0;\n  border-right: 0;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n.list-header {\n  color: #6c757d;\n  font-size: 15px;\n  font-weight: bold;\n  padding: 10px 4px;\n}\n\n.list-seperator {\n  background: rgba(0, 0, 0, 0.125);\n  height: 1px;\n  margin: 15px 0 9px;\n}\n\n.list-link > a {\n  color: #6c757d;\n  padding: 4px;\n}\n\n.list-link > a:hover {\n  color: #212529;\n}\n\n.user-block::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.user-block img {\n  float: left;\n  height: 40px;\n  width: 40px;\n}\n\n.user-block .username,\n.user-block .description,\n.user-block .comment {\n  display: block;\n  margin-left: 50px;\n}\n\n.user-block .username {\n  font-size: 16px;\n  font-weight: 600;\n}\n\n.user-block .description {\n  color: #999;\n  font-size: 13px;\n}\n\n.user-block.user-block-sm .username,\n.user-block.user-block-sm .description,\n.user-block.user-block-sm .comment {\n  margin-left: 40px;\n}\n\n.user-block.user-block-sm .username {\n  font-size: 14px;\n}\n\n.img-sm, .card-comments .card-comment img, .user-block.user-block-sm img,\n.img-md,\n.img-lg {\n  float: left;\n}\n\n.img-sm, .card-comments .card-comment img, .user-block.user-block-sm img {\n  height: 30px !important;\n  width: 30px !important;\n}\n\n.img-sm + .img-push, .card-comments .card-comment img + .img-push, .user-block.user-block-sm img + .img-push {\n  margin-left: 40px;\n}\n\n.img-md {\n  width: 60px;\n  height: 60px;\n}\n\n.img-md + .img-push {\n  margin-left: 70px;\n}\n\n.img-lg {\n  width: 100px;\n  height: 100px;\n}\n\n.img-lg + .img-push {\n  margin-left: 110px;\n}\n\n.img-bordered {\n  border: 3px solid #adb5bd;\n  padding: 3px;\n}\n\n.img-bordered-sm {\n  border: 2px solid #adb5bd;\n  padding: 2px;\n}\n\n.img-rounded {\n  border-radius: 0.25rem;\n}\n\n.img-circle {\n  border-radius: 50%;\n}\n\n.img-size-64,\n.img-size-50,\n.img-size-32 {\n  height: auto;\n}\n\n.img-size-64 {\n  width: 64px;\n}\n\n.img-size-50 {\n  width: 50px;\n}\n\n.img-size-32 {\n  width: 32px;\n}\n\n.size-32,\n.size-40,\n.size-50 {\n  display: block;\n  text-align: center;\n}\n\n.size-32 {\n  height: 32px;\n  line-height: 32px;\n  width: 32px;\n}\n\n.size-40 {\n  height: 40px;\n  line-height: 40px;\n  width: 40px;\n}\n\n.size-50 {\n  height: 50px;\n  line-height: 50px;\n  width: 50px;\n}\n\n.attachment-block {\n  background: #f8f9fa;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  margin-bottom: 10px;\n  padding: 5px;\n}\n\n.attachment-block .attachment-img {\n  float: left;\n  height: auto;\n  max-height: 100px;\n  max-width: 100px;\n}\n\n.attachment-block .attachment-pushed {\n  margin-left: 110px;\n}\n\n.attachment-block .attachment-heading {\n  margin: 0;\n}\n\n.attachment-block .attachment-text {\n  color: #495057;\n}\n\n.card > .overlay,\n.card > .loading-img,\n.overlay-wrapper > .overlay,\n.overlay-wrapper > .loading-img,\n.info-box > .overlay,\n.info-box > .loading-img,\n.small-box > .overlay,\n.small-box > .loading-img {\n  height: 100%;\n  left: 0;\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n\n.card .overlay,\n.overlay-wrapper .overlay,\n.info-box .overlay,\n.small-box .overlay {\n  border-radius: 0.25rem;\n  -ms-flex-align: center;\n  align-items: center;\n  background: rgba(255, 255, 255, 0.7);\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: center;\n  justify-content: center;\n  z-index: 50;\n}\n\n.card .overlay > .fa,\n.card .overlay > .fas,\n.card .overlay > .far,\n.card .overlay > .fab,\n.card .overlay > .glyphicon,\n.card .overlay > .ion,\n.overlay-wrapper .overlay > .fa,\n.overlay-wrapper .overlay > .fas,\n.overlay-wrapper .overlay > .far,\n.overlay-wrapper .overlay > .fab,\n.overlay-wrapper .overlay > .glyphicon,\n.overlay-wrapper .overlay > .ion,\n.info-box .overlay > .fa,\n.info-box .overlay > .fas,\n.info-box .overlay > .far,\n.info-box .overlay > .fab,\n.info-box .overlay > .glyphicon,\n.info-box .overlay > .ion,\n.small-box .overlay > .fa,\n.small-box .overlay > .fas,\n.small-box .overlay > .far,\n.small-box .overlay > .fab,\n.small-box .overlay > .glyphicon,\n.small-box .overlay > .ion {\n  color: #343a40;\n}\n\n.card .overlay.dark,\n.overlay-wrapper .overlay.dark,\n.info-box .overlay.dark,\n.small-box .overlay.dark {\n  background: rgba(0, 0, 0, 0.5);\n}\n\n.card .overlay.dark > .fa,\n.card .overlay.dark > .fas,\n.card .overlay.dark > .far,\n.card .overlay.dark > .fab,\n.card .overlay.dark > .glyphicon,\n.card .overlay.dark > .ion,\n.overlay-wrapper .overlay.dark > .fa,\n.overlay-wrapper .overlay.dark > .fas,\n.overlay-wrapper .overlay.dark > .far,\n.overlay-wrapper .overlay.dark > .fab,\n.overlay-wrapper .overlay.dark > .glyphicon,\n.overlay-wrapper .overlay.dark > .ion,\n.info-box .overlay.dark > .fa,\n.info-box .overlay.dark > .fas,\n.info-box .overlay.dark > .far,\n.info-box .overlay.dark > .fab,\n.info-box .overlay.dark > .glyphicon,\n.info-box .overlay.dark > .ion,\n.small-box .overlay.dark > .fa,\n.small-box .overlay.dark > .fas,\n.small-box .overlay.dark > .far,\n.small-box .overlay.dark > .fab,\n.small-box .overlay.dark > .glyphicon,\n.small-box .overlay.dark > .ion {\n  color: #ced4da;\n}\n\n.ribbon-wrapper {\n  height: 90px;\n  overflow: hidden;\n  position: absolute;\n  right: -2px;\n  top: -2px;\n  width: 90px;\n  z-index: 10;\n}\n\n.ribbon-wrapper.ribbon-lg {\n  height: 180px;\n  width: 180px;\n}\n\n.ribbon-wrapper.ribbon-lg .ribbon {\n  right: -59px;\n  top: 26px;\n  width: 160px;\n}\n\n.ribbon-wrapper.ribbon-xl {\n  height: 240px;\n  width: 240px;\n}\n\n.ribbon-wrapper.ribbon-xl .ribbon {\n  right: -48px;\n  top: 59px;\n  width: 240px;\n}\n\n.ribbon-wrapper .ribbon {\n  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);\n  font-size: 0.8rem;\n  line-height: 100%;\n  padding: 0.375rem 0;\n  position: relative;\n  right: -12px;\n  text-align: center;\n  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);\n  text-transform: uppercase;\n  top: 9px;\n  -webkit-transform: rotate(45deg);\n  transform: rotate(45deg);\n  width: 110px;\n}\n\n.ribbon-wrapper .ribbon::before, .ribbon-wrapper .ribbon::after {\n  border-left: 3px solid transparent;\n  border-right: 3px solid transparent;\n  border-top: 3px solid #9e9e9e;\n  bottom: -3px;\n  content: '';\n  position: absolute;\n}\n\n.ribbon-wrapper .ribbon::before {\n  left: 0;\n}\n\n.ribbon-wrapper .ribbon::after {\n  right: 0;\n}\n\n.back-to-top {\n  bottom: 1.25rem;\n  position: fixed;\n  right: 1.25rem;\n}\n\n.back-to-top:focus {\n  box-shadow: none;\n}\n\npre {\n  padding: .75rem;\n}\n\nblockquote {\n  background: #ffffff;\n  border-left: 0.7rem solid #007bff;\n  margin: 1.5em .7rem;\n  padding: 0.5em .7rem;\n}\n\n.box blockquote {\n  background: #e9ecef;\n}\n\nblockquote p:last-child {\n  margin-bottom: 0;\n}\n\nblockquote h1,\nblockquote h2,\nblockquote h3,\nblockquote h4,\nblockquote h5,\nblockquote h6 {\n  color: #007bff;\n  font-size: 1.25rem;\n  font-weight: 600;\n}\n\nblockquote.quote-primary {\n  border-color: #007bff;\n}\n\nblockquote.quote-primary h1,\nblockquote.quote-primary h2,\nblockquote.quote-primary h3,\nblockquote.quote-primary h4,\nblockquote.quote-primary h5,\nblockquote.quote-primary h6 {\n  color: #007bff;\n}\n\nblockquote.quote-secondary {\n  border-color: #6c757d;\n}\n\nblockquote.quote-secondary h1,\nblockquote.quote-secondary h2,\nblockquote.quote-secondary h3,\nblockquote.quote-secondary h4,\nblockquote.quote-secondary h5,\nblockquote.quote-secondary h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-success {\n  border-color: #28a745;\n}\n\nblockquote.quote-success h1,\nblockquote.quote-success h2,\nblockquote.quote-success h3,\nblockquote.quote-success h4,\nblockquote.quote-success h5,\nblockquote.quote-success h6 {\n  color: #28a745;\n}\n\nblockquote.quote-info {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-info h1,\nblockquote.quote-info h2,\nblockquote.quote-info h3,\nblockquote.quote-info h4,\nblockquote.quote-info h5,\nblockquote.quote-info h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-warning {\n  border-color: #ffc107;\n}\n\nblockquote.quote-warning h1,\nblockquote.quote-warning h2,\nblockquote.quote-warning h3,\nblockquote.quote-warning h4,\nblockquote.quote-warning h5,\nblockquote.quote-warning h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-danger {\n  border-color: #dc3545;\n}\n\nblockquote.quote-danger h1,\nblockquote.quote-danger h2,\nblockquote.quote-danger h3,\nblockquote.quote-danger h4,\nblockquote.quote-danger h5,\nblockquote.quote-danger h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-light {\n  border-color: #f8f9fa;\n}\n\nblockquote.quote-light h1,\nblockquote.quote-light h2,\nblockquote.quote-light h3,\nblockquote.quote-light h4,\nblockquote.quote-light h5,\nblockquote.quote-light h6 {\n  color: #f8f9fa;\n}\n\nblockquote.quote-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-dark h1,\nblockquote.quote-dark h2,\nblockquote.quote-dark h3,\nblockquote.quote-dark h4,\nblockquote.quote-dark h5,\nblockquote.quote-dark h6 {\n  color: #343a40;\n}\n\nblockquote.quote-navy {\n  border-color: #001f3f;\n}\n\nblockquote.quote-navy h1,\nblockquote.quote-navy h2,\nblockquote.quote-navy h3,\nblockquote.quote-navy h4,\nblockquote.quote-navy h5,\nblockquote.quote-navy h6 {\n  color: #001f3f;\n}\n\nblockquote.quote-olive {\n  border-color: #3d9970;\n}\n\nblockquote.quote-olive h1,\nblockquote.quote-olive h2,\nblockquote.quote-olive h3,\nblockquote.quote-olive h4,\nblockquote.quote-olive h5,\nblockquote.quote-olive h6 {\n  color: #3d9970;\n}\n\nblockquote.quote-lime {\n  border-color: #01ff70;\n}\n\nblockquote.quote-lime h1,\nblockquote.quote-lime h2,\nblockquote.quote-lime h3,\nblockquote.quote-lime h4,\nblockquote.quote-lime h5,\nblockquote.quote-lime h6 {\n  color: #01ff70;\n}\n\nblockquote.quote-fuchsia {\n  border-color: #f012be;\n}\n\nblockquote.quote-fuchsia h1,\nblockquote.quote-fuchsia h2,\nblockquote.quote-fuchsia h3,\nblockquote.quote-fuchsia h4,\nblockquote.quote-fuchsia h5,\nblockquote.quote-fuchsia h6 {\n  color: #f012be;\n}\n\nblockquote.quote-maroon {\n  border-color: #d81b60;\n}\n\nblockquote.quote-maroon h1,\nblockquote.quote-maroon h2,\nblockquote.quote-maroon h3,\nblockquote.quote-maroon h4,\nblockquote.quote-maroon h5,\nblockquote.quote-maroon h6 {\n  color: #d81b60;\n}\n\nblockquote.quote-blue {\n  border-color: #007bff;\n}\n\nblockquote.quote-blue h1,\nblockquote.quote-blue h2,\nblockquote.quote-blue h3,\nblockquote.quote-blue h4,\nblockquote.quote-blue h5,\nblockquote.quote-blue h6 {\n  color: #007bff;\n}\n\nblockquote.quote-indigo {\n  border-color: #6610f2;\n}\n\nblockquote.quote-indigo h1,\nblockquote.quote-indigo h2,\nblockquote.quote-indigo h3,\nblockquote.quote-indigo h4,\nblockquote.quote-indigo h5,\nblockquote.quote-indigo h6 {\n  color: #6610f2;\n}\n\nblockquote.quote-purple {\n  border-color: #6f42c1;\n}\n\nblockquote.quote-purple h1,\nblockquote.quote-purple h2,\nblockquote.quote-purple h3,\nblockquote.quote-purple h4,\nblockquote.quote-purple h5,\nblockquote.quote-purple h6 {\n  color: #6f42c1;\n}\n\nblockquote.quote-pink {\n  border-color: #e83e8c;\n}\n\nblockquote.quote-pink h1,\nblockquote.quote-pink h2,\nblockquote.quote-pink h3,\nblockquote.quote-pink h4,\nblockquote.quote-pink h5,\nblockquote.quote-pink h6 {\n  color: #e83e8c;\n}\n\nblockquote.quote-red {\n  border-color: #dc3545;\n}\n\nblockquote.quote-red h1,\nblockquote.quote-red h2,\nblockquote.quote-red h3,\nblockquote.quote-red h4,\nblockquote.quote-red h5,\nblockquote.quote-red h6 {\n  color: #dc3545;\n}\n\nblockquote.quote-orange {\n  border-color: #fd7e14;\n}\n\nblockquote.quote-orange h1,\nblockquote.quote-orange h2,\nblockquote.quote-orange h3,\nblockquote.quote-orange h4,\nblockquote.quote-orange h5,\nblockquote.quote-orange h6 {\n  color: #fd7e14;\n}\n\nblockquote.quote-yellow {\n  border-color: #ffc107;\n}\n\nblockquote.quote-yellow h1,\nblockquote.quote-yellow h2,\nblockquote.quote-yellow h3,\nblockquote.quote-yellow h4,\nblockquote.quote-yellow h5,\nblockquote.quote-yellow h6 {\n  color: #ffc107;\n}\n\nblockquote.quote-green {\n  border-color: #28a745;\n}\n\nblockquote.quote-green h1,\nblockquote.quote-green h2,\nblockquote.quote-green h3,\nblockquote.quote-green h4,\nblockquote.quote-green h5,\nblockquote.quote-green h6 {\n  color: #28a745;\n}\n\nblockquote.quote-teal {\n  border-color: #20c997;\n}\n\nblockquote.quote-teal h1,\nblockquote.quote-teal h2,\nblockquote.quote-teal h3,\nblockquote.quote-teal h4,\nblockquote.quote-teal h5,\nblockquote.quote-teal h6 {\n  color: #20c997;\n}\n\nblockquote.quote-cyan {\n  border-color: #17a2b8;\n}\n\nblockquote.quote-cyan h1,\nblockquote.quote-cyan h2,\nblockquote.quote-cyan h3,\nblockquote.quote-cyan h4,\nblockquote.quote-cyan h5,\nblockquote.quote-cyan h6 {\n  color: #17a2b8;\n}\n\nblockquote.quote-white {\n  border-color: #ffffff;\n}\n\nblockquote.quote-white h1,\nblockquote.quote-white h2,\nblockquote.quote-white h3,\nblockquote.quote-white h4,\nblockquote.quote-white h5,\nblockquote.quote-white h6 {\n  color: #ffffff;\n}\n\nblockquote.quote-gray {\n  border-color: #6c757d;\n}\n\nblockquote.quote-gray h1,\nblockquote.quote-gray h2,\nblockquote.quote-gray h3,\nblockquote.quote-gray h4,\nblockquote.quote-gray h5,\nblockquote.quote-gray h6 {\n  color: #6c757d;\n}\n\nblockquote.quote-gray-dark {\n  border-color: #343a40;\n}\n\nblockquote.quote-gray-dark h1,\nblockquote.quote-gray-dark h2,\nblockquote.quote-gray-dark h3,\nblockquote.quote-gray-dark h4,\nblockquote.quote-gray-dark h5,\nblockquote.quote-gray-dark h6 {\n  color: #343a40;\n}\n\n.tab-custom-content {\n  border-top: 1px solid #dee2e6;\n  margin-top: .5rem;\n  padding-top: .5rem;\n}\n\n.nav + .tab-custom-content {\n  border-top: none;\n  border-bottom: 1px solid #dee2e6;\n  margin-top: 0;\n  margin-bottom: .5rem;\n  padding-bottom: .5rem;\n}\n\n@media print {\n  .no-print, .main-sidebar,\n  .main-header,\n  .content-header {\n    display: none !important;\n  }\n  .content-wrapper,\n  .main-footer {\n    -webkit-transform: translate(0, 0);\n    transform: translate(0, 0);\n    margin-left: 0 !important;\n    min-height: 0 !important;\n  }\n  .layout-fixed .content-wrapper {\n    padding-top: 0 !important;\n  }\n  .invoice {\n    border: 0;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n  }\n  .invoice-col {\n    float: left;\n    width: 33.3333333%;\n  }\n  .table-responsive {\n    overflow: auto;\n  }\n  .table-responsive > .table tr th,\n  .table-responsive > .table tr td {\n    white-space: normal !important;\n  }\n}\n\n.text-bold, .text-bold.table td, .text-bold.table th {\n  font-weight: 700;\n}\n\n.text-sm {\n  font-size: 0.875rem !important;\n}\n\n.text-xs {\n  font-size: 1rem !important;\n}\n\n.text-lg {\n  font-size: 1.25rem !important;\n}\n\n.text-xl {\n  font-size: 2rem !important;\n}\n\n.text-navy {\n  color: #001f3f;\n}\n\n.text-olive {\n  color: #3d9970;\n}\n\n.text-lime {\n  color: #01ff70;\n}\n\n.text-fuchsia {\n  color: #f012be;\n}\n\n.text-maroon {\n  color: #d81b60;\n}\n\n.text-blue {\n  color: #007bff;\n}\n\n.text-indigo {\n  color: #6610f2;\n}\n\n.text-purple {\n  color: #6f42c1;\n}\n\n.text-pink {\n  color: #e83e8c;\n}\n\n.text-red {\n  color: #dc3545;\n}\n\n.text-orange {\n  color: #fd7e14;\n}\n\n.text-yellow {\n  color: #ffc107;\n}\n\n.text-green {\n  color: #28a745;\n}\n\n.text-teal {\n  color: #20c997;\n}\n\n.text-cyan {\n  color: #17a2b8;\n}\n\n.text-white {\n  color: #ffffff;\n}\n\n.text-gray {\n  color: #6c757d;\n}\n\n.text-gray-dark {\n  color: #343a40;\n}\n\n.elevation-0 {\n  box-shadow: none !important;\n}\n\n.elevation-1, [class*='sidebar-light-'] .nav-sidebar > .nav-item > .nav-link.active, [class*='sidebar-dark-'] .nav-sidebar > .nav-item > .nav-link.active, .callout {\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24) !important;\n}\n\n.elevation-2 {\n  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-3 {\n  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23) !important;\n}\n\n.elevation-4 {\n  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22) !important;\n}\n\n.elevation-5 {\n  box-shadow: 0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22) !important;\n}\n\n.bg-primary, .alert-primary {\n  background-color: #007bff;\n}\n\n.bg-primary, .alert-primary,\n.bg-primary > a,\n.alert-primary > a {\n  color: #ffffff !important;\n}\n\n.bg-primary.btn:hover, .btn.alert-primary:hover {\n  border-color: #0062cc;\n  color: #ffffff;\n}\n\n.bg-primary.btn:active, .btn.alert-primary:active, .bg-primary.btn.active, .btn.active.alert-primary {\n  border-color: #005cbf;\n  color: #ffffff;\n}\n\n.bg-secondary {\n  background-color: #6c757d;\n}\n\n.bg-secondary,\n.bg-secondary > a {\n  color: #ffffff !important;\n}\n\n.bg-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ffffff;\n}\n\n.bg-secondary.btn:active, .bg-secondary.btn.active {\n  border-color: #4e555b;\n  color: #ffffff;\n}\n\n.bg-success, .alert-success {\n  background-color: #28a745;\n}\n\n.bg-success, .alert-success,\n.bg-success > a,\n.alert-success > a {\n  color: #ffffff !important;\n}\n\n.bg-success.btn:hover, .btn.alert-success:hover {\n  border-color: #1e7e34;\n  color: #ffffff;\n}\n\n.bg-success.btn:active, .btn.alert-success:active, .bg-success.btn.active, .btn.active.alert-success {\n  border-color: #1c7430;\n  color: #ffffff;\n}\n\n.bg-info, .alert-info {\n  background-color: #17a2b8;\n}\n\n.bg-info, .alert-info,\n.bg-info > a,\n.alert-info > a {\n  color: #ffffff !important;\n}\n\n.bg-info.btn:hover, .btn.alert-info:hover {\n  border-color: #117a8b;\n  color: #ffffff;\n}\n\n.bg-info.btn:active, .btn.alert-info:active, .bg-info.btn.active, .btn.active.alert-info {\n  border-color: #10707f;\n  color: #ffffff;\n}\n\n.bg-warning, .alert-warning {\n  background-color: #ffc107;\n}\n\n.bg-warning, .alert-warning,\n.bg-warning > a,\n.alert-warning > a {\n  color: #1F2D3D !important;\n}\n\n.bg-warning.btn:hover, .btn.alert-warning:hover {\n  border-color: #d39e00;\n  color: #1F2D3D;\n}\n\n.bg-warning.btn:active, .btn.alert-warning:active, .bg-warning.btn.active, .btn.active.alert-warning {\n  border-color: #c69500;\n  color: #1F2D3D;\n}\n\n.bg-danger, .alert-danger,\n.alert-error {\n  background-color: #dc3545;\n}\n\n.bg-danger, .alert-danger,\n.alert-error,\n.bg-danger > a,\n.alert-danger > a,\n.alert-error > a {\n  color: #ffffff !important;\n}\n\n.bg-danger.btn:hover, .btn.alert-danger:hover,\n.btn.alert-error:hover {\n  border-color: #bd2130;\n  color: #ffffff;\n}\n\n.bg-danger.btn:active, .btn.alert-danger:active,\n.btn.alert-error:active, .bg-danger.btn.active, .btn.active.alert-danger,\n.btn.active.alert-error {\n  border-color: #b21f2d;\n  color: #ffffff;\n}\n\n.bg-light {\n  background-color: #f8f9fa;\n}\n\n.bg-light,\n.bg-light > a {\n  color: #1F2D3D !important;\n}\n\n.bg-light.btn:hover {\n  border-color: #dae0e5;\n  color: #1F2D3D;\n}\n\n.bg-light.btn:active, .bg-light.btn.active {\n  border-color: #d3d9df;\n  color: #1F2D3D;\n}\n\n.bg-dark {\n  background-color: #343a40;\n}\n\n.bg-dark,\n.bg-dark > a {\n  color: #ffffff !important;\n}\n\n.bg-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ffffff;\n}\n\n.bg-dark.btn:active, .bg-dark.btn.active {\n  border-color: #171a1d;\n  color: #ffffff;\n}\n\n.bg-navy {\n  background-color: #001f3f;\n}\n\n.bg-navy,\n.bg-navy > a {\n  color: #ffffff !important;\n}\n\n.bg-navy.btn:hover {\n  border-color: #00060c;\n  color: #ffffff;\n}\n\n.bg-navy.btn:active, .bg-navy.btn.active {\n  border-color: black;\n  color: #ffffff;\n}\n\n.bg-olive {\n  background-color: #3d9970;\n}\n\n.bg-olive,\n.bg-olive > a {\n  color: #ffffff !important;\n}\n\n.bg-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ffffff;\n}\n\n.bg-olive.btn:active, .bg-olive.btn.active {\n  border-color: #2b6b4f;\n  color: #ffffff;\n}\n\n.bg-lime {\n  background-color: #01ff70;\n}\n\n.bg-lime,\n.bg-lime > a {\n  color: #1F2D3D !important;\n}\n\n.bg-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #ffffff;\n}\n\n.bg-lime.btn:active, .bg-lime.btn.active {\n  border-color: #00c054;\n  color: #ffffff;\n}\n\n.bg-fuchsia {\n  background-color: #f012be;\n}\n\n.bg-fuchsia,\n.bg-fuchsia > a {\n  color: #ffffff !important;\n}\n\n.bg-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ffffff;\n}\n\n.bg-fuchsia.btn:active, .bg-fuchsia.btn.active {\n  border-color: #b70c90;\n  color: #ffffff;\n}\n\n.bg-maroon {\n  background-color: #d81b60;\n}\n\n.bg-maroon,\n.bg-maroon > a {\n  color: #ffffff !important;\n}\n\n.bg-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ffffff;\n}\n\n.bg-maroon.btn:active, .bg-maroon.btn.active {\n  border-color: #9f1447;\n  color: #ffffff;\n}\n\n.bg-blue {\n  background-color: #007bff;\n}\n\n.bg-blue,\n.bg-blue > a {\n  color: #ffffff !important;\n}\n\n.bg-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ffffff;\n}\n\n.bg-blue.btn:active, .bg-blue.btn.active {\n  border-color: #005cbf;\n  color: #ffffff;\n}\n\n.bg-indigo {\n  background-color: #6610f2;\n}\n\n.bg-indigo,\n.bg-indigo > a {\n  color: #ffffff !important;\n}\n\n.bg-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ffffff;\n}\n\n.bg-indigo.btn:active, .bg-indigo.btn.active {\n  border-color: #4c0ab8;\n  color: #ffffff;\n}\n\n.bg-purple {\n  background-color: #6f42c1;\n}\n\n.bg-purple,\n.bg-purple > a {\n  color: #ffffff !important;\n}\n\n.bg-purple.btn:hover {\n  border-color: #59339d;\n  color: #ffffff;\n}\n\n.bg-purple.btn:active, .bg-purple.btn.active {\n  border-color: #533093;\n  color: #ffffff;\n}\n\n.bg-pink {\n  background-color: #e83e8c;\n}\n\n.bg-pink,\n.bg-pink > a {\n  color: #ffffff !important;\n}\n\n.bg-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ffffff;\n}\n\n.bg-pink.btn:active, .bg-pink.btn.active {\n  border-color: #ce196c;\n  color: #ffffff;\n}\n\n.bg-red {\n  background-color: #dc3545;\n}\n\n.bg-red,\n.bg-red > a {\n  color: #ffffff !important;\n}\n\n.bg-red.btn:hover {\n  border-color: #bd2130;\n  color: #ffffff;\n}\n\n.bg-red.btn:active, .bg-red.btn.active {\n  border-color: #b21f2d;\n  color: #ffffff;\n}\n\n.bg-orange {\n  background-color: #fd7e14;\n}\n\n.bg-orange,\n.bg-orange > a {\n  color: #1F2D3D !important;\n}\n\n.bg-orange.btn:hover {\n  border-color: #dc6502;\n  color: #ffffff;\n}\n\n.bg-orange.btn:active, .bg-orange.btn.active {\n  border-color: #cf5f02;\n  color: #ffffff;\n}\n\n.bg-yellow {\n  background-color: #ffc107;\n}\n\n.bg-yellow,\n.bg-yellow > a {\n  color: #1F2D3D !important;\n}\n\n.bg-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #1F2D3D;\n}\n\n.bg-yellow.btn:active, .bg-yellow.btn.active {\n  border-color: #c69500;\n  color: #1F2D3D;\n}\n\n.bg-green {\n  background-color: #28a745;\n}\n\n.bg-green,\n.bg-green > a {\n  color: #ffffff !important;\n}\n\n.bg-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ffffff;\n}\n\n.bg-green.btn:active, .bg-green.btn.active {\n  border-color: #1c7430;\n  color: #ffffff;\n}\n\n.bg-teal {\n  background-color: #20c997;\n}\n\n.bg-teal,\n.bg-teal > a {\n  color: #ffffff !important;\n}\n\n.bg-teal.btn:hover {\n  border-color: #199d76;\n  color: #ffffff;\n}\n\n.bg-teal.btn:active, .bg-teal.btn.active {\n  border-color: #17926e;\n  color: #ffffff;\n}\n\n.bg-cyan {\n  background-color: #17a2b8;\n}\n\n.bg-cyan,\n.bg-cyan > a {\n  color: #ffffff !important;\n}\n\n.bg-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ffffff;\n}\n\n.bg-cyan.btn:active, .bg-cyan.btn.active {\n  border-color: #10707f;\n  color: #ffffff;\n}\n\n.bg-white {\n  background-color: #ffffff;\n}\n\n.bg-white,\n.bg-white > a {\n  color: #1F2D3D !important;\n}\n\n.bg-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #1F2D3D;\n}\n\n.bg-white.btn:active, .bg-white.btn.active {\n  border-color: #dfdfdf;\n  color: #1F2D3D;\n}\n\n.bg-gray {\n  background-color: #6c757d;\n}\n\n.bg-gray,\n.bg-gray > a {\n  color: #ffffff !important;\n}\n\n.bg-gray.btn:hover {\n  border-color: #545b62;\n  color: #ffffff;\n}\n\n.bg-gray.btn:active, .bg-gray.btn.active {\n  border-color: #4e555b;\n  color: #ffffff;\n}\n\n.bg-gray-dark {\n  background-color: #343a40;\n}\n\n.bg-gray-dark,\n.bg-gray-dark > a {\n  color: #ffffff !important;\n}\n\n.bg-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ffffff;\n}\n\n.bg-gray-dark.btn:active, .bg-gray-dark.btn.active {\n  border-color: #171a1d;\n  color: #ffffff;\n}\n\n.bg-gray {\n  background-color: #adb5bd;\n  color: #1F2D3D;\n}\n\n.bg-gray-light {\n  background-color: #f2f4f5;\n  color: #1F2D3D !important;\n}\n\n.bg-black {\n  background-color: #000;\n  color: #ffffff !important;\n}\n\n.bg-white {\n  background-color: #ffffff;\n  color: #1F2D3D !important;\n}\n\n.bg-gradient-primary {\n  color: #ffffff;\n}\n\n.bg-gradient-primary {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n}\n\n.bg-gradient-primary.btn.disabled, .bg-gradient-primary.btn:disabled, .bg-gradient-primary.btn:not(:disabled):not(.disabled):active, .bg-gradient-primary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-primary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-primary.btn:hover {\n  border-color: #0062cc;\n  color: #ffffff;\n}\n\n.bg-gradient-primary.btn:hover {\n  background: #0069d9 linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n}\n\n.bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  border-color: #005cbf;\n  color: #ffffff;\n}\n\n.bg-gradient-primary.btn:active, .bg-gradient-primary.btn.active {\n  background: #0062cc linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n}\n\n.bg-gradient-secondary {\n  color: #ffffff;\n}\n\n.bg-gradient-secondary {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n}\n\n.bg-gradient-secondary.btn.disabled, .bg-gradient-secondary.btn:disabled, .bg-gradient-secondary.btn:not(:disabled):not(.disabled):active, .bg-gradient-secondary.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-secondary.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-secondary.btn:hover {\n  border-color: #545b62;\n  color: #ffffff;\n}\n\n.bg-gradient-secondary.btn:hover {\n  background: #5a6268 linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n}\n\n.bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  border-color: #4e555b;\n  color: #ffffff;\n}\n\n.bg-gradient-secondary.btn:active, .bg-gradient-secondary.btn.active {\n  background: #545b62 linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n}\n\n.bg-gradient-success {\n  color: #ffffff;\n}\n\n.bg-gradient-success {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n}\n\n.bg-gradient-success.btn.disabled, .bg-gradient-success.btn:disabled, .bg-gradient-success.btn:not(:disabled):not(.disabled):active, .bg-gradient-success.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-success.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-success.btn:hover {\n  border-color: #1e7e34;\n  color: #ffffff;\n}\n\n.bg-gradient-success.btn:hover {\n  background: #218838 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n}\n\n.bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  border-color: #1c7430;\n  color: #ffffff;\n}\n\n.bg-gradient-success.btn:active, .bg-gradient-success.btn.active {\n  background: #1e7e34 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n}\n\n.bg-gradient-info {\n  color: #ffffff;\n}\n\n.bg-gradient-info {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n}\n\n.bg-gradient-info.btn.disabled, .bg-gradient-info.btn:disabled, .bg-gradient-info.btn:not(:disabled):not(.disabled):active, .bg-gradient-info.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-info.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-info.btn:hover {\n  border-color: #117a8b;\n  color: #ffffff;\n}\n\n.bg-gradient-info.btn:hover {\n  background: #138496 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n}\n\n.bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  border-color: #10707f;\n  color: #ffffff;\n}\n\n.bg-gradient-info.btn:active, .bg-gradient-info.btn.active {\n  background: #117a8b linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n}\n\n.bg-gradient-warning {\n  color: #1F2D3D;\n}\n\n.bg-gradient-warning {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n}\n\n.bg-gradient-warning.btn.disabled, .bg-gradient-warning.btn:disabled, .bg-gradient-warning.btn:not(:disabled):not(.disabled):active, .bg-gradient-warning.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-warning.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-warning.btn:hover {\n  border-color: #d39e00;\n  color: #1F2D3D;\n}\n\n.bg-gradient-warning.btn:hover {\n  background: #e0a800 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n}\n\n.bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  border-color: #c69500;\n  color: #1F2D3D;\n}\n\n.bg-gradient-warning.btn:active, .bg-gradient-warning.btn.active {\n  background: #d39e00 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n}\n\n.bg-gradient-danger {\n  color: #ffffff;\n}\n\n.bg-gradient-danger {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n}\n\n.bg-gradient-danger.btn.disabled, .bg-gradient-danger.btn:disabled, .bg-gradient-danger.btn:not(:disabled):not(.disabled):active, .bg-gradient-danger.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-danger.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-danger.btn:hover {\n  border-color: #bd2130;\n  color: #ffffff;\n}\n\n.bg-gradient-danger.btn:hover {\n  background: #c82333 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n}\n\n.bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  border-color: #b21f2d;\n  color: #ffffff;\n}\n\n.bg-gradient-danger.btn:active, .bg-gradient-danger.btn.active {\n  background: #bd2130 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n}\n\n.bg-gradient-light {\n  color: #1F2D3D;\n}\n\n.bg-gradient-light {\n  background: #f8f9fa linear-gradient(180deg, #f9fafb, #f8f9fa) repeat-x !important;\n}\n\n.bg-gradient-light.btn.disabled, .bg-gradient-light.btn:disabled, .bg-gradient-light.btn:not(:disabled):not(.disabled):active, .bg-gradient-light.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-light.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-light.btn:hover {\n  border-color: #dae0e5;\n  color: #1F2D3D;\n}\n\n.bg-gradient-light.btn:hover {\n  background: #e2e6ea linear-gradient(180deg, #e6eaed, #e2e6ea) repeat-x !important;\n}\n\n.bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  border-color: #d3d9df;\n  color: #1F2D3D;\n}\n\n.bg-gradient-light.btn:active, .bg-gradient-light.btn.active {\n  background: #dae0e5 linear-gradient(180deg, #e0e4e9, #dae0e5) repeat-x !important;\n}\n\n.bg-gradient-dark {\n  color: #ffffff;\n}\n\n.bg-gradient-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n}\n\n.bg-gradient-dark.btn.disabled, .bg-gradient-dark.btn:disabled, .bg-gradient-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ffffff;\n}\n\n.bg-gradient-dark.btn:hover {\n  background: #23272b linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n}\n\n.bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  border-color: #171a1d;\n  color: #ffffff;\n}\n\n.bg-gradient-dark.btn:active, .bg-gradient-dark.btn.active {\n  background: #1d2124 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n}\n\n.bg-gradient-navy {\n  color: #ffffff;\n}\n\n.bg-gradient-navy {\n  background: #001f3f linear-gradient(180deg, #26415c, #001f3f) repeat-x !important;\n}\n\n.bg-gradient-navy.btn.disabled, .bg-gradient-navy.btn:disabled, .bg-gradient-navy.btn:not(:disabled):not(.disabled):active, .bg-gradient-navy.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-navy.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-navy.btn:hover {\n  border-color: #00060c;\n  color: #ffffff;\n}\n\n.bg-gradient-navy.btn:hover {\n  background: #000c19 linear-gradient(180deg, #26313b, #000c19) repeat-x !important;\n}\n\n.bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  border-color: black;\n  color: #ffffff;\n}\n\n.bg-gradient-navy.btn:active, .bg-gradient-navy.btn.active {\n  background: #00060c linear-gradient(180deg, #262b30, #00060c) repeat-x !important;\n}\n\n.bg-gradient-olive {\n  color: #ffffff;\n}\n\n.bg-gradient-olive {\n  background: #3d9970 linear-gradient(180deg, #5aa885, #3d9970) repeat-x !important;\n}\n\n.bg-gradient-olive.btn.disabled, .bg-gradient-olive.btn:disabled, .bg-gradient-olive.btn:not(:disabled):not(.disabled):active, .bg-gradient-olive.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-olive.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-olive.btn:hover {\n  border-color: #2e7555;\n  color: #ffffff;\n}\n\n.bg-gradient-olive.btn:hover {\n  background: #327e5c linear-gradient(180deg, #519174, #327e5c) repeat-x !important;\n}\n\n.bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  border-color: #2b6b4f;\n  color: #ffffff;\n}\n\n.bg-gradient-olive.btn:active, .bg-gradient-olive.btn.active {\n  background: #2e7555 linear-gradient(180deg, #4e896f, #2e7555) repeat-x !important;\n}\n\n.bg-gradient-lime {\n  color: #1F2D3D;\n}\n\n.bg-gradient-lime {\n  background: #01ff70 linear-gradient(180deg, #27ff85, #01ff70) repeat-x !important;\n}\n\n.bg-gradient-lime.btn.disabled, .bg-gradient-lime.btn:disabled, .bg-gradient-lime.btn:not(:disabled):not(.disabled):active, .bg-gradient-lime.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-lime.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-lime.btn:hover {\n  border-color: #00cd5a;\n  color: #ffffff;\n}\n\n.bg-gradient-lime.btn:hover {\n  background: #00da5f linear-gradient(180deg, #26df77, #00da5f) repeat-x !important;\n}\n\n.bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  border-color: #00c054;\n  color: #ffffff;\n}\n\n.bg-gradient-lime.btn:active, .bg-gradient-lime.btn.active {\n  background: #00cd5a linear-gradient(180deg, #26d572, #00cd5a) repeat-x !important;\n}\n\n.bg-gradient-fuchsia {\n  color: #ffffff;\n}\n\n.bg-gradient-fuchsia {\n  background: #f012be linear-gradient(180deg, #f236c8, #f012be) repeat-x !important;\n}\n\n.bg-gradient-fuchsia.btn.disabled, .bg-gradient-fuchsia.btn:disabled, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled):active, .bg-gradient-fuchsia.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-fuchsia.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  border-color: #c30c9a;\n  color: #ffffff;\n}\n\n.bg-gradient-fuchsia.btn:hover {\n  background: #cf0da3 linear-gradient(180deg, #d631b1, #cf0da3) repeat-x !important;\n}\n\n.bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  border-color: #b70c90;\n  color: #ffffff;\n}\n\n.bg-gradient-fuchsia.btn:active, .bg-gradient-fuchsia.btn.active {\n  background: #c30c9a linear-gradient(180deg, #cc31a9, #c30c9a) repeat-x !important;\n}\n\n.bg-gradient-maroon {\n  color: #ffffff;\n}\n\n.bg-gradient-maroon {\n  background: #d81b60 linear-gradient(180deg, #de3d78, #d81b60) repeat-x !important;\n}\n\n.bg-gradient-maroon.btn.disabled, .bg-gradient-maroon.btn:disabled, .bg-gradient-maroon.btn:not(:disabled):not(.disabled):active, .bg-gradient-maroon.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-maroon.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-maroon.btn:hover {\n  border-color: #ab154c;\n  color: #ffffff;\n}\n\n.bg-gradient-maroon.btn:hover {\n  background: #b61751 linear-gradient(180deg, #c13a6b, #b61751) repeat-x !important;\n}\n\n.bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  border-color: #9f1447;\n  color: #ffffff;\n}\n\n.bg-gradient-maroon.btn:active, .bg-gradient-maroon.btn.active {\n  background: #ab154c linear-gradient(180deg, #b73867, #ab154c) repeat-x !important;\n}\n\n.bg-gradient-blue {\n  color: #ffffff;\n}\n\n.bg-gradient-blue {\n  background: #007bff linear-gradient(180deg, #268fff, #007bff) repeat-x !important;\n}\n\n.bg-gradient-blue.btn.disabled, .bg-gradient-blue.btn:disabled, .bg-gradient-blue.btn:not(:disabled):not(.disabled):active, .bg-gradient-blue.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-blue.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-blue.btn:hover {\n  border-color: #0062cc;\n  color: #ffffff;\n}\n\n.bg-gradient-blue.btn:hover {\n  background: #0069d9 linear-gradient(180deg, #267fde, #0069d9) repeat-x !important;\n}\n\n.bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  border-color: #005cbf;\n  color: #ffffff;\n}\n\n.bg-gradient-blue.btn:active, .bg-gradient-blue.btn.active {\n  background: #0062cc linear-gradient(180deg, #267ad4, #0062cc) repeat-x !important;\n}\n\n.bg-gradient-indigo {\n  color: #ffffff;\n}\n\n.bg-gradient-indigo {\n  background: #6610f2 linear-gradient(180deg, #7d34f4, #6610f2) repeat-x !important;\n}\n\n.bg-gradient-indigo.btn.disabled, .bg-gradient-indigo.btn:disabled, .bg-gradient-indigo.btn:not(:disabled):not(.disabled):active, .bg-gradient-indigo.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-indigo.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-indigo.btn:hover {\n  border-color: #510bc4;\n  color: #ffffff;\n}\n\n.bg-gradient-indigo.btn:hover {\n  background: #560bd0 linear-gradient(180deg, #7030d7, #560bd0) repeat-x !important;\n}\n\n.bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  border-color: #4c0ab8;\n  color: #ffffff;\n}\n\n.bg-gradient-indigo.btn:active, .bg-gradient-indigo.btn.active {\n  background: #510bc4 linear-gradient(180deg, #6b2fcd, #510bc4) repeat-x !important;\n}\n\n.bg-gradient-purple {\n  color: #ffffff;\n}\n\n.bg-gradient-purple {\n  background: #6f42c1 linear-gradient(180deg, #855eca, #6f42c1) repeat-x !important;\n}\n\n.bg-gradient-purple.btn.disabled, .bg-gradient-purple.btn:disabled, .bg-gradient-purple.btn:not(:disabled):not(.disabled):active, .bg-gradient-purple.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-purple.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-purple.btn:hover {\n  border-color: #59339d;\n  color: #ffffff;\n}\n\n.bg-gradient-purple.btn:hover {\n  background: #5e37a6 linear-gradient(180deg, #7655b4, #5e37a6) repeat-x !important;\n}\n\n.bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  border-color: #533093;\n  color: #ffffff;\n}\n\n.bg-gradient-purple.btn:active, .bg-gradient-purple.btn.active {\n  background: #59339d linear-gradient(180deg, #7252ab, #59339d) repeat-x !important;\n}\n\n.bg-gradient-pink {\n  color: #ffffff;\n}\n\n.bg-gradient-pink {\n  background: #e83e8c linear-gradient(180deg, #eb5b9d, #e83e8c) repeat-x !important;\n}\n\n.bg-gradient-pink.btn.disabled, .bg-gradient-pink.btn:disabled, .bg-gradient-pink.btn:not(:disabled):not(.disabled):active, .bg-gradient-pink.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-pink.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-pink.btn:hover {\n  border-color: #d91a72;\n  color: #ffffff;\n}\n\n.bg-gradient-pink.btn:hover {\n  background: #e41c78 linear-gradient(180deg, #e83e8c, #e41c78) repeat-x !important;\n}\n\n.bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  border-color: #ce196c;\n  color: #ffffff;\n}\n\n.bg-gradient-pink.btn:active, .bg-gradient-pink.btn.active {\n  background: #d91a72 linear-gradient(180deg, #df3c87, #d91a72) repeat-x !important;\n}\n\n.bg-gradient-red {\n  color: #ffffff;\n}\n\n.bg-gradient-red {\n  background: #dc3545 linear-gradient(180deg, #e15361, #dc3545) repeat-x !important;\n}\n\n.bg-gradient-red.btn.disabled, .bg-gradient-red.btn:disabled, .bg-gradient-red.btn:not(:disabled):not(.disabled):active, .bg-gradient-red.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-red.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-red.btn:hover {\n  border-color: #bd2130;\n  color: #ffffff;\n}\n\n.bg-gradient-red.btn:hover {\n  background: #c82333 linear-gradient(180deg, #d04451, #c82333) repeat-x !important;\n}\n\n.bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  border-color: #b21f2d;\n  color: #ffffff;\n}\n\n.bg-gradient-red.btn:active, .bg-gradient-red.btn.active {\n  background: #bd2130 linear-gradient(180deg, #c7424f, #bd2130) repeat-x !important;\n}\n\n.bg-gradient-orange {\n  color: #1F2D3D;\n}\n\n.bg-gradient-orange {\n  background: #fd7e14 linear-gradient(180deg, #fd9137, #fd7e14) repeat-x !important;\n}\n\n.bg-gradient-orange.btn.disabled, .bg-gradient-orange.btn:disabled, .bg-gradient-orange.btn:not(:disabled):not(.disabled):active, .bg-gradient-orange.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-orange.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-orange.btn:hover {\n  border-color: #dc6502;\n  color: #ffffff;\n}\n\n.bg-gradient-orange.btn:hover {\n  background: #e96b02 linear-gradient(180deg, #ec8128, #e96b02) repeat-x !important;\n}\n\n.bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  border-color: #cf5f02;\n  color: #ffffff;\n}\n\n.bg-gradient-orange.btn:active, .bg-gradient-orange.btn.active {\n  background: #dc6502 linear-gradient(180deg, #e17c28, #dc6502) repeat-x !important;\n}\n\n.bg-gradient-yellow {\n  color: #1F2D3D;\n}\n\n.bg-gradient-yellow {\n  background: #ffc107 linear-gradient(180deg, #ffca2c, #ffc107) repeat-x !important;\n}\n\n.bg-gradient-yellow.btn.disabled, .bg-gradient-yellow.btn:disabled, .bg-gradient-yellow.btn:not(:disabled):not(.disabled):active, .bg-gradient-yellow.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-yellow.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-yellow.btn:hover {\n  border-color: #d39e00;\n  color: #1F2D3D;\n}\n\n.bg-gradient-yellow.btn:hover {\n  background: #e0a800 linear-gradient(180deg, #e4b526, #e0a800) repeat-x !important;\n}\n\n.bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  border-color: #c69500;\n  color: #1F2D3D;\n}\n\n.bg-gradient-yellow.btn:active, .bg-gradient-yellow.btn.active {\n  background: #d39e00 linear-gradient(180deg, #daad26, #d39e00) repeat-x !important;\n}\n\n.bg-gradient-green {\n  color: #ffffff;\n}\n\n.bg-gradient-green {\n  background: #28a745 linear-gradient(180deg, #48b461, #28a745) repeat-x !important;\n}\n\n.bg-gradient-green.btn.disabled, .bg-gradient-green.btn:disabled, .bg-gradient-green.btn:not(:disabled):not(.disabled):active, .bg-gradient-green.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-green.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-green.btn:hover {\n  border-color: #1e7e34;\n  color: #ffffff;\n}\n\n.bg-gradient-green.btn:hover {\n  background: #218838 linear-gradient(180deg, #429a56, #218838) repeat-x !important;\n}\n\n.bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  border-color: #1c7430;\n  color: #ffffff;\n}\n\n.bg-gradient-green.btn:active, .bg-gradient-green.btn.active {\n  background: #1e7e34 linear-gradient(180deg, #409152, #1e7e34) repeat-x !important;\n}\n\n.bg-gradient-teal {\n  color: #ffffff;\n}\n\n.bg-gradient-teal {\n  background: #20c997 linear-gradient(180deg, #41d1a7, #20c997) repeat-x !important;\n}\n\n.bg-gradient-teal.btn.disabled, .bg-gradient-teal.btn:disabled, .bg-gradient-teal.btn:not(:disabled):not(.disabled):active, .bg-gradient-teal.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-teal.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-teal.btn:hover {\n  border-color: #199d76;\n  color: #ffffff;\n}\n\n.bg-gradient-teal.btn:hover {\n  background: #1ba87e linear-gradient(180deg, #3db592, #1ba87e) repeat-x !important;\n}\n\n.bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  border-color: #17926e;\n  color: #ffffff;\n}\n\n.bg-gradient-teal.btn:active, .bg-gradient-teal.btn.active {\n  background: #199d76 linear-gradient(180deg, #3bac8b, #199d76) repeat-x !important;\n}\n\n.bg-gradient-cyan {\n  color: #ffffff;\n}\n\n.bg-gradient-cyan {\n  background: #17a2b8 linear-gradient(180deg, #3ab0c3, #17a2b8) repeat-x !important;\n}\n\n.bg-gradient-cyan.btn.disabled, .bg-gradient-cyan.btn:disabled, .bg-gradient-cyan.btn:not(:disabled):not(.disabled):active, .bg-gradient-cyan.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-cyan.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-cyan.btn:hover {\n  border-color: #117a8b;\n  color: #ffffff;\n}\n\n.bg-gradient-cyan.btn:hover {\n  background: #138496 linear-gradient(180deg, #3697a6, #138496) repeat-x !important;\n}\n\n.bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  border-color: #10707f;\n  color: #ffffff;\n}\n\n.bg-gradient-cyan.btn:active, .bg-gradient-cyan.btn.active {\n  background: #117a8b linear-gradient(180deg, #358e9c, #117a8b) repeat-x !important;\n}\n\n.bg-gradient-white {\n  color: #1F2D3D;\n}\n\n.bg-gradient-white {\n  background: #ffffff linear-gradient(180deg, white, #ffffff) repeat-x !important;\n}\n\n.bg-gradient-white.btn.disabled, .bg-gradient-white.btn:disabled, .bg-gradient-white.btn:not(:disabled):not(.disabled):active, .bg-gradient-white.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-white.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-white.btn:hover {\n  border-color: #e6e6e6;\n  color: #1F2D3D;\n}\n\n.bg-gradient-white.btn:hover {\n  background: #ececec linear-gradient(180deg, #efefef, #ececec) repeat-x !important;\n}\n\n.bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  border-color: #dfdfdf;\n  color: #1F2D3D;\n}\n\n.bg-gradient-white.btn:active, .bg-gradient-white.btn.active {\n  background: #e6e6e6 linear-gradient(180deg, #e9e9e9, #e6e6e6) repeat-x !important;\n}\n\n.bg-gradient-gray {\n  color: #ffffff;\n}\n\n.bg-gradient-gray {\n  background: #6c757d linear-gradient(180deg, #828a91, #6c757d) repeat-x !important;\n}\n\n.bg-gradient-gray.btn.disabled, .bg-gradient-gray.btn:disabled, .bg-gradient-gray.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray.btn:hover {\n  border-color: #545b62;\n  color: #ffffff;\n}\n\n.bg-gradient-gray.btn:hover {\n  background: #5a6268 linear-gradient(180deg, #73797f, #5a6268) repeat-x !important;\n}\n\n.bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  border-color: #4e555b;\n  color: #ffffff;\n}\n\n.bg-gradient-gray.btn:active, .bg-gradient-gray.btn.active {\n  background: #545b62 linear-gradient(180deg, #6e7479, #545b62) repeat-x !important;\n}\n\n.bg-gradient-gray-dark {\n  color: #ffffff;\n}\n\n.bg-gradient-gray-dark {\n  background: #343a40 linear-gradient(180deg, #52585d, #343a40) repeat-x !important;\n}\n\n.bg-gradient-gray-dark.btn.disabled, .bg-gradient-gray-dark.btn:disabled, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled):active, .bg-gradient-gray-dark.btn:not(:disabled):not(.disabled).active,\n.show > .bg-gradient-gray-dark.btn.dropdown-toggle {\n  background-image: none !important;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  border-color: #1d2124;\n  color: #ffffff;\n}\n\n.bg-gradient-gray-dark.btn:hover {\n  background: #23272b linear-gradient(180deg, #44474b, #23272b) repeat-x !important;\n}\n\n.bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  border-color: #171a1d;\n  color: #ffffff;\n}\n\n.bg-gradient-gray-dark.btn:active, .bg-gradient-gray-dark.btn.active {\n  background: #1d2124 linear-gradient(180deg, #3f4245, #1d2124) repeat-x !important;\n}\n\n[class^='bg-'].disabled {\n  opacity: .65;\n}\n\na.text-muted:hover {\n  color: #007bff !important;\n}\n\n.link-muted {\n  color: #5d6974;\n}\n\n.link-muted:hover, .link-muted:focus {\n  color: #464f58;\n}\n\n.link-black {\n  color: #6c757d;\n}\n\n.link-black:hover, .link-black:focus {\n  color: #e6e8ea;\n}\n/*# sourceMappingURL=adminlte.css.map */"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/css/app.css",
    "content": "body {\n\n}\n\n/* label */\n.label {\n    display: inline-block;\n    padding: .25em .4em;\n    font-size: 75%;\n    font-weight: 700;\n    line-height: 1;\n    text-align: center;\n    white-space: nowrap;\n    vertical-align: baseline;\n    border-radius: .25rem;\n}\n\n\n\n/* btn */\n.btn-primary, .btn-info {\n    color: #fff !important;\n}\n.btn-twitter {\n    background-color: #f4f4f4;\n    color: #444;\n    border-color: #ddd;\n}\n.btn-dropbox {\n    margin: 0;\n    color: #fff;\n    background-color: #17a2b8;\n    border-color: #17a2b8;\n}\n.btn-dropbox.focus, .btn-dropbox:focus {\n    box-shadow: 0 0 0 0.2rem rgba(23,162,184,.5);\n}\n\n[data-toggle=buttons]>.btn input[type=checkbox], [data-toggle=buttons]>.btn input[type=radio], [data-toggle=buttons]>.btn-group>.btn input[type=checkbox], [data-toggle=buttons]>.btn-group>.btn input[type=radio] {\n    position: absolute;\n    clip: rect(0,0,0,0);\n    pointer-events: none;\n}\n\n\n/* dropdown */\nul.dropdown-menu>li>a {\n    display: block;\n    width: 100%;\n    padding: .25rem 1rem;\n    clear: both;\n    font-weight: 400;\n    color: #212529;\n    text-align: inherit;\n    white-space: nowrap;\n    background-color: transparent;\n    border: 0;\n}\nul.dropdown-menu>li>a:focus, ul.dropdown-menu>li>a:hover {\n    color: #16181b;\n    text-decoration: none;\n    background-color: #f8f9fa;\n}\nul.dropdown-menu>li.active>a, ul.dropdown-menu>li>a:active {\n    color: #fff;\n    text-decoration: none;\n    background-color: #007bff;\n}\n\n\n/* form */\n.fields-group .col-form-label {\n    padding-top: calc(.25rem + 1px);\n    padding-bottom: calc(.25rem + 1px);\n    font-size: .875rem;\n    line-height: 1.5;\n}\n\npull-left {\n    float: left;\n}\npull-right {\n    float: right;\n}\n\n/* card */\n.box {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    word-wrap: break-word;\n    background-color: #fff;\n    background-clip: border-box;\n    border: 0 solid rgba(0,0,0,.125);\n    border-radius: .25rem;\n    margin-bottom: 1rem!important;\n    box-shadow: 0 0 1px rgba(0,0,0,.125), 0 1px 3px rgba(0,0,0,.2);\n}\n.card-footer .pagination {\n    margin-bottom: 0;\n}\n.card-footer .control-label {\n    padding-top: .25rem;\n    padding-bottom: .25rem;\n    font-size: .875rem;\n    line-height: 1.5;\n    margin-bottom: 0;\n}\n\n\n.content-wrapper {\n    padding-top: 3.5rem;\n}\n.content-wrapper .content {\n    padding: 0 .5rem;\n}\n\n\n.card-info:not(.card-outline) .card-header a.btn-default {\n    color: #444 !important;\n}\n\n\n.has-error .form-control,\n.has-error .custom-select {\n    border-color: #dc3545;\n}\n\n.has-error .invalid-feedback {\n    display: block;\n}\n\n.fade.in {\n    opacity: 1 !important;\n}\n\n.file-preview .fileinput-remove {\n    top: 5px;\n    right: 5px;\n}\n\n.fields-group .form-group {\n    display: flex;\n    flex-wrap: wrap;\n    margin-right: -7.5px;\n    margin-left: -7.5px;\n}"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/adminlte.js",
    "content": "/*!\n * AdminLTE v3.0.0-beta.2 (https://adminlte.io)\n * Copyright 2014-2019 Colorlib <http://colorlib.com>\n * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)\n */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  (global = global || self, factory(global.adminlte = {}));\n}(this, function (exports) { 'use strict';\n\n  /**\n   * --------------------------------------------\n   * AdminLTE ControlSidebar.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var ControlSidebar = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'ControlSidebar';\n    var DATA_KEY = 'lte.control.sidebar';\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Selector = {\n      CONTROL_SIDEBAR: '.control-sidebar',\n      DATA_TOGGLE: '[data-widget=\"control-sidebar\"]',\n      MAIN_HEADER: '.main-header'\n    };\n    var ClassName = {\n      CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate',\n      CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',\n      CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'\n    };\n    var Default = {\n      slide: true\n      /**\n       * Class Definition\n       * ====================================================\n       */\n\n    };\n\n    var ControlSidebar =\n    /*#__PURE__*/\n    function () {\n      function ControlSidebar(element, config) {\n        this._element = element;\n        this._config = this._getConfig(config);\n      } // Public\n\n\n      var _proto = ControlSidebar.prototype;\n\n      _proto.show = function show() {\n        // Show the control sidebar\n        if (this._config.slide) {\n          $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);\n          $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n            $(Selector.CONTROL_SIDEBAR).hide();\n            $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE);\n            $(this).dequeue();\n          });\n        } else {\n          $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN);\n        }\n      };\n\n      _proto.collapse = function collapse() {\n        // Collapse the control sidebar\n        if (this._config.slide) {\n          $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);\n          $(Selector.CONTROL_SIDEBAR).show().delay(100).queue(function () {\n            $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {\n              $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE);\n              $(this).dequeue();\n            });\n            $(this).dequeue();\n          });\n        } else {\n          $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN);\n        }\n      };\n\n      _proto.toggle = function toggle() {\n        this._setMargin();\n\n        var shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE);\n\n        if (shouldOpen) {\n          // Open the control sidebar\n          this.show();\n        } else {\n          // Close the control sidebar\n          this.collapse();\n        }\n      } // Private\n      ;\n\n      _proto._getConfig = function _getConfig(config) {\n        return $.extend({}, Default, config);\n      };\n\n      _proto._setMargin = function _setMargin() {\n        $(Selector.CONTROL_SIDEBAR).css({\n          top: $(Selector.MAIN_HEADER).innerHeight()\n        });\n      } // Static\n      ;\n\n      ControlSidebar._jQueryInterface = function _jQueryInterface(operation) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          if (!data) {\n            data = new ControlSidebar(this, $(this).data());\n            $(this).data(DATA_KEY, data);\n          }\n\n          if (data[operation] === 'undefined') {\n            throw new Error(operation + \" is not a function\");\n          }\n\n          data[operation]();\n        });\n      };\n\n      return ControlSidebar;\n    }();\n    /**\n     *\n     * Data Api implementation\n     * ====================================================\n     */\n\n\n    $(document).on('click', Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault();\n\n      ControlSidebar._jQueryInterface.call($(this), 'toggle');\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = ControlSidebar._jQueryInterface;\n    $.fn[NAME].Constructor = ControlSidebar;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return ControlSidebar._jQueryInterface;\n    };\n\n    return ControlSidebar;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Layout.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var Layout = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'Layout';\n    var DATA_KEY = 'lte.layout';\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Selector = {\n      HEADER: '.main-header',\n      MAIN_SIDEBAR: '.main-sidebar',\n      SIDEBAR: '.main-sidebar .sidebar',\n      CONTENT: '.content-wrapper',\n      BRAND: '.brand-link',\n      CONTENT_HEADER: '.content-header',\n      WRAPPER: '.wrapper',\n      CONTROL_SIDEBAR: '.control-sidebar',\n      LAYOUT_FIXED: '.layout-fixed',\n      FOOTER: '.main-footer'\n    };\n    var ClassName = {\n      HOLD: 'hold-transition',\n      SIDEBAR: 'main-sidebar',\n      CONTENT_FIXED: 'content-fixed',\n      SIDEBAR_FOCUSED: 'sidebar-focused',\n      LAYOUT_FIXED: 'layout-fixed',\n      NAVBAR_FIXED: 'layout-navbar-fixed',\n      FOOTER_FIXED: 'layout-footer-fixed'\n    };\n    var Default = {\n      scrollbarTheme: 'os-theme-light',\n      scrollbarAutoHide: 'l'\n      /**\n       * Class Definition\n       * ====================================================\n       */\n\n    };\n\n    var Layout =\n    /*#__PURE__*/\n    function () {\n      function Layout(element, config) {\n        this._config = config;\n        this._element = element;\n\n        this._init();\n      } // Public\n\n\n      var _proto = Layout.prototype;\n\n      _proto.fixLayoutHeight = function fixLayoutHeight() {\n        var heights = {\n          window: $(window).height(),\n          header: $(Selector.HEADER).outerHeight(),\n          footer: $(Selector.FOOTER).outerHeight(),\n          sidebar: $(Selector.SIDEBAR).height()\n        };\n\n        var max = this._max(heights);\n\n        if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {\n          $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer); // $(Selector.SIDEBAR).css('min-height', max - heights.header)\n\n          $(Selector.CONTROL_SIDEBAR + ' .control-sidebar-content').css('height', max - heights.header);\n\n          if (typeof $.fn.overlayScrollbars !== 'undefined') {\n            $(Selector.SIDEBAR).overlayScrollbars({\n              className: this._config.scrollbarTheme,\n              sizeAutoCapable: true,\n              scrollbars: {\n                autoHide: this._config.scrollbarAutoHide,\n                clickScrolling: true\n              }\n            });\n            $(Selector.CONTROL_SIDEBAR + ' .control-sidebar-content').overlayScrollbars({\n              className: this._config.scrollbarTheme,\n              sizeAutoCapable: true,\n              scrollbars: {\n                autoHide: this._config.scrollbarAutoHide,\n                clickScrolling: true\n              }\n            });\n          }\n        } else {\n          if (heights.window > heights.sidebar) {\n            $(Selector.CONTENT).css('min-height', heights.window - heights.header - heights.footer);\n          } else {\n            $(Selector.CONTENT).css('min-height', heights.sidebar - heights.header);\n          }\n        }\n      } // Private\n      ;\n\n      _proto._init = function _init() {\n        var _this = this;\n\n        // Enable transitions\n        $('body').removeClass(ClassName.HOLD); // Activate layout height watcher\n\n        this.fixLayoutHeight();\n        $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', function () {\n          _this.fixLayoutHeight();\n        });\n        $(window).resize(function () {\n          _this.fixLayoutHeight();\n        });\n        $('body, html').css('height', 'auto');\n      };\n\n      _proto._max = function _max(numbers) {\n        // Calculate the maximum number in a list\n        var max = 0;\n        Object.keys(numbers).forEach(function (key) {\n          if (numbers[key] > max) {\n            max = numbers[key];\n          }\n        });\n        return max;\n      } // Static\n      ;\n\n      Layout._jQueryInterface = function _jQueryInterface(config) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          var _config = $.extend({}, Default, $(this).data());\n\n          if (!data) {\n            data = new Layout($(this), _config);\n            $(this).data(DATA_KEY, data);\n          }\n\n          if (config === 'init') {\n            data[config]();\n          }\n        });\n      };\n\n      return Layout;\n    }();\n    /**\n     * Data API\n     * ====================================================\n     */\n\n\n    $(window).on('load', function () {\n      Layout._jQueryInterface.call($('body'));\n    });\n    $(Selector.SIDEBAR + ' a').on('focusin', function () {\n      $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED);\n    });\n    $(Selector.SIDEBAR + ' a').on('focusout', function () {\n      $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED);\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = Layout._jQueryInterface;\n    $.fn[NAME].Constructor = Layout;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return Layout._jQueryInterface;\n    };\n\n    return Layout;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE PushMenu.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var PushMenu = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'PushMenu';\n    var DATA_KEY = 'lte.pushmenu';\n    var EVENT_KEY = \".\" + DATA_KEY;\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Event = {\n      COLLAPSED: \"collapsed\" + EVENT_KEY,\n      SHOWN: \"shown\" + EVENT_KEY\n    };\n    var Default = {\n      autoCollapseSize: false,\n      screenCollapseSize: 768\n    };\n    var Selector = {\n      TOGGLE_BUTTON: '[data-widget=\"pushmenu\"]',\n      SIDEBAR_MINI: '.sidebar-mini',\n      SIDEBAR_COLLAPSED: '.sidebar-collapse',\n      BODY: 'body',\n      OVERLAY: '#sidebar-overlay',\n      WRAPPER: '.wrapper'\n    };\n    var ClassName = {\n      SIDEBAR_OPEN: 'sidebar-open',\n      COLLAPSED: 'sidebar-collapse',\n      OPEN: 'sidebar-open',\n      SIDEBAR_MINI: 'sidebar-mini'\n      /**\n       * Class Definition\n       * ====================================================\n       */\n\n    };\n\n    var PushMenu =\n    /*#__PURE__*/\n    function () {\n      function PushMenu(element, options) {\n        this._element = element;\n        this._options = $.extend({}, Default, options);\n\n        this._init();\n\n        if (!$(Selector.OVERLAY).length) {\n          this._addOverlay();\n        }\n      } // Public\n\n\n      var _proto = PushMenu.prototype;\n\n      _proto.show = function show() {\n        $(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED);\n        var shownEvent = $.Event(Event.SHOWN);\n        $(this._element).trigger(shownEvent);\n      };\n\n      _proto.collapse = function collapse() {\n        $(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED);\n        var collapsedEvent = $.Event(Event.COLLAPSED);\n        $(this._element).trigger(collapsedEvent);\n      };\n\n      _proto.isShown = function isShown() {\n        if ($(window).width() >= this._options.screenCollapseSize) {\n          return !$(Selector.BODY).hasClass(ClassName.COLLAPSED);\n        } else {\n          return $(Selector.BODY).hasClass(ClassName.OPEN);\n        }\n      };\n\n      _proto.toggle = function toggle() {\n        if (this.isShown()) {\n          this.collapse();\n        } else {\n          this.show();\n        }\n      };\n\n      _proto.autoCollapse = function autoCollapse() {\n        if (this._options.autoCollapseSize) {\n          if ($(window).width() <= this._options.autoCollapseSize) {\n            if (this.isShown()) {\n              this.toggle();\n            }\n          } else {\n            if (!this.isShown()) {\n              this.toggle();\n            }\n          }\n        }\n      } // Private\n      ;\n\n      _proto._init = function _init() {\n        var _this = this;\n\n        this.autoCollapse();\n        $(window).resize(function () {\n          _this.autoCollapse();\n        });\n      };\n\n      _proto._addOverlay = function _addOverlay() {\n        var _this2 = this;\n\n        var overlay = $('<div />', {\n          id: 'sidebar-overlay'\n        });\n        overlay.on('click', function () {\n          _this2.collapse();\n        });\n        $(Selector.WRAPPER).append(overlay);\n      } // Static\n      ;\n\n      PushMenu._jQueryInterface = function _jQueryInterface(operation) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          var _options = $.extend({}, Default, $(this).data());\n\n          if (!data) {\n            data = new PushMenu(this, _options);\n            $(this).data(DATA_KEY, data);\n          }\n\n          if (operation === 'toggle') {\n            data[operation]();\n          }\n        });\n      };\n\n      return PushMenu;\n    }();\n    /**\n     * Data API\n     * ====================================================\n     */\n\n\n    $(document).on('click', Selector.TOGGLE_BUTTON, function (event) {\n      event.preventDefault();\n      var button = event.currentTarget;\n\n      if ($(button).data('widget') !== 'pushmenu') {\n        button = $(button).closest(Selector.TOGGLE_BUTTON);\n      }\n\n      PushMenu._jQueryInterface.call($(button), 'toggle');\n    });\n    $(window).on('load', function () {\n      PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON));\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = PushMenu._jQueryInterface;\n    $.fn[NAME].Constructor = PushMenu;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return PushMenu._jQueryInterface;\n    };\n\n    return PushMenu;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Treeview.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var Treeview = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'Treeview';\n    var DATA_KEY = 'lte.treeview';\n    var EVENT_KEY = \".\" + DATA_KEY;\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Event = {\n      SELECTED: \"selected\" + EVENT_KEY,\n      EXPANDED: \"expanded\" + EVENT_KEY,\n      COLLAPSED: \"collapsed\" + EVENT_KEY,\n      LOAD_DATA_API: \"load\" + EVENT_KEY\n    };\n    var Selector = {\n      LI: '.nav-item',\n      LINK: '.nav-link',\n      TREEVIEW_MENU: '.nav-treeview',\n      OPEN: '.menu-open',\n      DATA_WIDGET: '[data-widget=\"treeview\"]'\n    };\n    var ClassName = {\n      LI: 'nav-item',\n      LINK: 'nav-link',\n      TREEVIEW_MENU: 'nav-treeview',\n      OPEN: 'menu-open'\n    };\n    var Default = {\n      trigger: Selector.DATA_WIDGET + \" \" + Selector.LINK,\n      animationSpeed: 300,\n      accordion: true\n      /**\n       * Class Definition\n       * ====================================================\n       */\n\n    };\n\n    var Treeview =\n    /*#__PURE__*/\n    function () {\n      function Treeview(element, config) {\n        this._config = config;\n        this._element = element;\n      } // Public\n\n\n      var _proto = Treeview.prototype;\n\n      _proto.init = function init() {\n        this._setupListeners();\n      };\n\n      _proto.expand = function expand(treeviewMenu, parentLi) {\n        var _this = this;\n\n        var expandedEvent = $.Event(Event.EXPANDED);\n\n        if (this._config.accordion) {\n          var openMenuLi = parentLi.siblings(Selector.OPEN).first();\n          var openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first();\n          this.collapse(openTreeview, openMenuLi);\n        }\n\n        treeviewMenu.slideDown(this._config.animationSpeed, function () {\n          parentLi.addClass(ClassName.OPEN);\n          $(_this._element).trigger(expandedEvent);\n        });\n      };\n\n      _proto.collapse = function collapse(treeviewMenu, parentLi) {\n        var _this2 = this;\n\n        var collapsedEvent = $.Event(Event.COLLAPSED);\n        treeviewMenu.slideUp(this._config.animationSpeed, function () {\n          parentLi.removeClass(ClassName.OPEN);\n          $(_this2._element).trigger(collapsedEvent);\n          treeviewMenu.find(Selector.OPEN + \" > \" + Selector.TREEVIEW_MENU).slideUp();\n          treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN);\n        });\n      };\n\n      _proto.toggle = function toggle(event) {\n        var $relativeTarget = $(event.currentTarget);\n        var treeviewMenu = $relativeTarget.next();\n\n        if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {\n          return;\n        }\n\n        event.preventDefault();\n        var parentLi = $relativeTarget.parents(Selector.LI).first();\n        var isOpen = parentLi.hasClass(ClassName.OPEN);\n\n        if (isOpen) {\n          this.collapse($(treeviewMenu), parentLi);\n        } else {\n          this.expand($(treeviewMenu), parentLi);\n        }\n      } // Private\n      ;\n\n      _proto._setupListeners = function _setupListeners() {\n        var _this3 = this;\n\n        $(document).on('click', this._config.trigger, function (event) {\n          _this3.toggle(event);\n        });\n      } // Static\n      ;\n\n      Treeview._jQueryInterface = function _jQueryInterface(config) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          var _config = $.extend({}, Default, $(this).data());\n\n          if (!data) {\n            data = new Treeview($(this), _config);\n            $(this).data(DATA_KEY, data);\n          }\n\n          if (config === 'init') {\n            data[config]();\n          }\n        });\n      };\n\n      return Treeview;\n    }();\n    /**\n     * Data API\n     * ====================================================\n     */\n\n\n    $(window).on(Event.LOAD_DATA_API, function () {\n      $(Selector.DATA_WIDGET).each(function () {\n        Treeview._jQueryInterface.call($(this), 'init');\n      });\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = Treeview._jQueryInterface;\n    $.fn[NAME].Constructor = Treeview;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return Treeview._jQueryInterface;\n    };\n\n    return Treeview;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE DirectChat.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var DirectChat = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'DirectChat';\n    var DATA_KEY = 'lte.directchat';\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Selector = {\n      DATA_TOGGLE: '[data-widget=\"chat-pane-toggle\"]',\n      DIRECT_CHAT: '.direct-chat'\n    };\n    var ClassName = {\n      DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'\n    };\n    /**\n     * Class Definition\n     * ====================================================\n     */\n\n    var DirectChat =\n    /*#__PURE__*/\n    function () {\n      function DirectChat(element, config) {\n        this._element = element;\n      }\n\n      var _proto = DirectChat.prototype;\n\n      _proto.toggle = function toggle() {\n        $(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);\n      } // Static\n      ;\n\n      DirectChat._jQueryInterface = function _jQueryInterface(config) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          if (!data) {\n            data = new DirectChat($(this));\n            $(this).data(DATA_KEY, data);\n          }\n\n          data[config]();\n        });\n      };\n\n      return DirectChat;\n    }();\n    /**\n     *\n     * Data Api implementation\n     * ====================================================\n     */\n\n\n    $(document).on('click', Selector.DATA_TOGGLE, function (event) {\n      if (event) event.preventDefault();\n\n      DirectChat._jQueryInterface.call($(this), 'toggle');\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = DirectChat._jQueryInterface;\n    $.fn[NAME].Constructor = DirectChat;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return DirectChat._jQueryInterface;\n    };\n\n    return DirectChat;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE TodoList.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var TodoList = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'TodoList';\n    var DATA_KEY = 'lte.todolist';\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Selector = {\n      DATA_TOGGLE: '[data-widget=\"todo-list\"]'\n    };\n    var ClassName = {\n      TODO_LIST_DONE: 'done'\n    };\n    var Default = {\n      onCheck: function onCheck(item) {\n        return item;\n      },\n      onUnCheck: function onUnCheck(item) {\n        return item;\n      }\n      /**\n       * Class Definition\n       * ====================================================\n       */\n\n    };\n\n    var TodoList =\n    /*#__PURE__*/\n    function () {\n      function TodoList(element, config) {\n        this._config = config;\n        this._element = element;\n\n        this._init();\n      } // Public\n\n\n      var _proto = TodoList.prototype;\n\n      _proto.toggle = function toggle(item) {\n        item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);\n\n        if (!$(item).prop('checked')) {\n          this.unCheck($(item));\n          return;\n        }\n\n        this.check(item);\n      };\n\n      _proto.check = function check(item) {\n        this._config.onCheck.call(item);\n      };\n\n      _proto.unCheck = function unCheck(item) {\n        this._config.onUnCheck.call(item);\n      } // Private\n      ;\n\n      _proto._init = function _init() {\n        var that = this;\n        $(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE);\n        $(Selector.DATA_TOGGLE).on('change', 'input:checkbox', function (event) {\n          that.toggle($(event.target));\n        });\n      } // Static\n      ;\n\n      TodoList._jQueryInterface = function _jQueryInterface(config) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          var _config = $.extend({}, Default, $(this).data());\n\n          if (!data) {\n            data = new TodoList($(this), _config);\n            $(this).data(DATA_KEY, data);\n          }\n\n          if (config === 'init') {\n            data[config]();\n          }\n        });\n      };\n\n      return TodoList;\n    }();\n    /**\n     * Data API\n     * ====================================================\n     */\n\n\n    $(window).on('load', function () {\n      TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE));\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = TodoList._jQueryInterface;\n    $.fn[NAME].Constructor = TodoList;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return TodoList._jQueryInterface;\n    };\n\n    return TodoList;\n  }(jQuery);\n\n  /**\n   * --------------------------------------------\n   * AdminLTE Widget.js\n   * License MIT\n   * --------------------------------------------\n   */\n  var Widget = function ($) {\n    /**\n     * Constants\n     * ====================================================\n     */\n    var NAME = 'Widget';\n    var DATA_KEY = 'lte.widget';\n    var EVENT_KEY = \".\" + DATA_KEY;\n    var JQUERY_NO_CONFLICT = $.fn[NAME];\n    var Event = {\n      EXPANDED: \"expanded\" + EVENT_KEY,\n      COLLAPSED: \"collapsed\" + EVENT_KEY,\n      MAXIMIZED: \"maximized\" + EVENT_KEY,\n      MINIMIZED: \"minimized\" + EVENT_KEY,\n      REMOVED: \"removed\" + EVENT_KEY\n    };\n    var Selector = {\n      DATA_REMOVE: '[data-widget=\"remove\"]',\n      DATA_COLLAPSE: '[data-widget=\"collapse\"]',\n      DATA_MAXIMIZE: '[data-widget=\"maximize\"]',\n      CARD: '.card',\n      CARD_HEADER: '.card-header',\n      CARD_BODY: '.card-body',\n      CARD_FOOTER: '.card-footer',\n      COLLAPSED: '.collapsed-card',\n      COLLAPSE_ICON: '.fa-minus',\n      EXPAND_ICON: '.fa-plus'\n    };\n    var ClassName = {\n      COLLAPSED: 'collapsed-card',\n      WAS_COLLAPSED: 'was-collapsed',\n      MAXIMIZED: 'maximized-card',\n      COLLAPSE_ICON: 'fa-minus',\n      EXPAND_ICON: 'fa-plus',\n      MAXIMIZE_ICON: 'fa-expand',\n      MINIMIZE_ICON: 'fa-compress'\n    };\n    var Default = {\n      animationSpeed: 'normal',\n      collapseTrigger: Selector.DATA_COLLAPSE,\n      removeTrigger: Selector.DATA_REMOVE\n    };\n\n    var Widget =\n    /*#__PURE__*/\n    function () {\n      function Widget(element, settings) {\n        this._element = element;\n        this._parent = element.parents(Selector.CARD).first();\n        this._settings = $.extend({}, Default, settings);\n      }\n\n      var _proto = Widget.prototype;\n\n      _proto.collapse = function collapse() {\n        var _this = this;\n\n        this._parent.children(Selector.CARD_BODY + \", \" + Selector.CARD_FOOTER).slideUp(this._settings.animationSpeed, function () {\n          _this._parent.addClass(ClassName.COLLAPSED);\n        });\n\n        this._element.children(Selector.COLLAPSE_ICON).addClass(ClassName.EXPAND_ICON).removeClass(ClassName.COLLAPSE_ICON);\n\n        var collapsed = $.Event(Event.COLLAPSED);\n\n        this._element.trigger(collapsed, this._parent);\n      };\n\n      _proto.expand = function expand() {\n        var _this2 = this;\n\n        this._parent.children(Selector.CARD_BODY + \", \" + Selector.CARD_FOOTER).slideDown(this._settings.animationSpeed, function () {\n          _this2._parent.removeClass(ClassName.COLLAPSED);\n        });\n\n        this._element.children(Selector.EXPAND_ICON).addClass(ClassName.COLLAPSE_ICON).removeClass(ClassName.EXPAND_ICON);\n\n        var expanded = $.Event(Event.EXPANDED);\n\n        this._element.trigger(expanded, this._parent);\n      };\n\n      _proto.remove = function remove() {\n        this._parent.slideUp();\n\n        var removed = $.Event(Event.REMOVED);\n\n        this._element.trigger(removed, this._parent);\n      };\n\n      _proto.toggle = function toggle() {\n        if (this._parent.hasClass(ClassName.COLLAPSED)) {\n          this.expand();\n          return;\n        }\n\n        this.collapse();\n      };\n\n      _proto.toggleMaximize = function toggleMaximize() {\n        var button = this._element.find('i');\n\n        if (this._parent.hasClass(ClassName.MAXIMIZED)) {\n          button.addClass(ClassName.MAXIMIZE_ICON).removeClass(ClassName.MINIMIZE_ICON);\n\n          this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' + 'width:' + this._parent[0].style.width + ' !important; transition: all .15s;').delay(100).queue(function () {\n            $(this).removeClass(ClassName.MAXIMIZED);\n            $('html').removeClass(ClassName.MAXIMIZED);\n            $(this).trigger(Event.MINIMIZED);\n            $(this).css({\n              'height': 'inherit',\n              'width': 'inherit'\n            });\n\n            if ($(this).hasClass(ClassName.WAS_COLLAPSED)) {\n              $(this).removeClass(ClassName.WAS_COLLAPSED);\n            }\n\n            $(this).dequeue();\n          });\n        } else {\n          button.addClass(ClassName.MINIMIZE_ICON).removeClass(ClassName.MAXIMIZE_ICON);\n\n          this._parent.css({\n            'height': this._parent.height(),\n            'width': this._parent.width(),\n            'transition': 'all .15s'\n          }).delay(150).queue(function () {\n            $(this).addClass(ClassName.MAXIMIZED);\n            $('html').addClass(ClassName.MAXIMIZED);\n            $(this).trigger(Event.MAXIMIZED);\n\n            if ($(this).hasClass(ClassName.COLLAPSED)) {\n              $(this).addClass(ClassName.WAS_COLLAPSED);\n            }\n\n            $(this).dequeue();\n          });\n        }\n      } // Private\n      ;\n\n      _proto._init = function _init(card) {\n        var _this3 = this;\n\n        this._parent = card;\n        $(this).find(this._settings.collapseTrigger).click(function () {\n          _this3.toggle();\n        });\n        $(this).find(this._settings.removeTrigger).click(function () {\n          _this3.remove();\n        });\n      } // Static\n      ;\n\n      Widget._jQueryInterface = function _jQueryInterface(config) {\n        return this.each(function () {\n          var data = $(this).data(DATA_KEY);\n\n          if (!data) {\n            data = new Widget($(this), data);\n            $(this).data(DATA_KEY, typeof config === 'string' ? data : config);\n          }\n\n          if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|toggleMaximize/)) {\n            data[config]();\n          } else if (typeof config === 'object') {\n            data._init($(this));\n          }\n        });\n      };\n\n      return Widget;\n    }();\n    /**\n     * Data API\n     * ====================================================\n     */\n\n\n    $(document).on('click', Selector.DATA_COLLAPSE, function (event) {\n      if (event) {\n        event.preventDefault();\n      }\n\n      Widget._jQueryInterface.call($(this), 'toggle');\n    });\n    $(document).on('click', Selector.DATA_REMOVE, function (event) {\n      if (event) {\n        event.preventDefault();\n      }\n\n      Widget._jQueryInterface.call($(this), 'remove');\n    });\n    $(document).on('click', Selector.DATA_MAXIMIZE, function (event) {\n      if (event) {\n        event.preventDefault();\n      }\n\n      Widget._jQueryInterface.call($(this), 'toggleMaximize');\n    });\n    /**\n     * jQuery API\n     * ====================================================\n     */\n\n    $.fn[NAME] = Widget._jQueryInterface;\n    $.fn[NAME].Constructor = Widget;\n\n    $.fn[NAME].noConflict = function () {\n      $.fn[NAME] = JQUERY_NO_CONFLICT;\n      return Widget._jQueryInterface;\n    };\n\n    return Widget;\n  }(jQuery);\n\n  exports.ControlSidebar = ControlSidebar;\n  exports.DirectChat = DirectChat;\n  exports.Layout = Layout;\n  exports.PushMenu = PushMenu;\n  exports.TodoList = TodoList;\n  exports.Treeview = Treeview;\n  exports.Widget = Widget;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=adminlte.js.map\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/app.js",
    "content": "$.pjax.defaults.timeout = 5000;\n$.pjax.defaults.maxCacheLength = 0;\n$(document).pjax('a:not(a[target=\"_blank\"])', {\n    container: '#pjax-container'\n});\n\nNProgress.configure({parent: '#app'});\n\n$(document).on('pjax:timeout', function (event) {\n    event.preventDefault();\n})\n\n$(document).on('submit', 'form[pjax-container]', function (event) {\n    $.pjax.submit(event, '#pjax-container')\n});\n\n$(document).on(\"pjax:popstate\", function () {\n\n    $(document).one(\"pjax:end\", function (event) {\n        $(event.target).find(\"script[data-exec-on-popstate]\").each(function () {\n            $.globalEval(this.text || this.textContent || this.innerHTML || '');\n        });\n    });\n});\n\n$(document).on('pjax:send', function (xhr) {\n    if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {\n        $submit_btn = $('form[pjax-container] :submit');\n        if ($submit_btn) {\n            $submit_btn.button('loading')\n        }\n    }\n    NProgress.start();\n});\n\n$(document).on('pjax:complete', function (xhr) {\n    if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {\n        $submit_btn = $('form[pjax-container] :submit');\n        if ($submit_btn) {\n            $submit_btn.button('reset')\n        }\n    }\n    NProgress.done();\n});\n\n$.fn.editable.defaults.params = function (params) {\n    params._token = LA.token;\n    params._editable = 1;\n    params._method = 'PUT';\n    return params;\n};\n\n$.fn.editable.defaults.error = function (data) {\n    var msg = '';\n    if (data.responseJSON.errors) {\n        $.each(data.responseJSON.errors, function (k, v) {\n            msg += v + \"\\n\";\n        });\n    }\n    return msg\n};\n\ntoastr.options = {\n    closeButton: true,\n    progressBar: true,\n    showMethod: 'slideDown',\n    timeOut: 4000\n};\n\n$(function () {\n    $('.nav-sidebar li:not(.has-treeview) > a').on('click', function () {\n        $('.nav-sidebar').find('.nav-link').removeClass('active');\n        $(this).addClass('active');\n        $(this).parent().siblings('.has-treeview.menu-open').find('> a').trigger('click');\n        $(this).parents('.has-treeview.menu-open').find('> a').addClass('active');\n    });\n    var menu = $('.nav-sidebar li > a[href=\"' + (location.pathname + location.search + location.hash) + '\"]').addClass('active');\n    menu.parents('li.has-treeview').addClass('menu-open');\n    menu.parent().siblings().find('.nav-link').removeClass('active');\n    menu.parents('ul.nav-treeview').siblings('.nav-link').addClass('active');\n\n    $('[data-toggle=\"popover\"]').popover();\n});\n\n(function ($) {\n    $.fn.admin = LA;\n    $.admin = LA;\n\n})(jQuery);"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/demo.js",
    "content": "/**\n * AdminLTE Demo Menu\n * ------------------\n * You should not use this file in production.\n * This file is for demo purposes only.\n */\n(function ($) {\n  'use strict'\n\n  var $sidebar   = $('.control-sidebar')\n  var $container = $('<div />', {\n    class: 'p-3 control-sidebar-content'\n  })\n\n  $sidebar.append($container)\n\n  var navbar_dark_skins = [\n    'navbar-primary',\n    'navbar-secondary',\n    'navbar-info',\n    'navbar-success',\n    'navbar-danger',\n    'navbar-indigo',\n    'navbar-purple',\n    'navbar-pink',\n    'navbar-teal',\n    'navbar-cyan',\n    'navbar-dark',\n    'navbar-gray-dark',\n    'navbar-gray',\n  ]\n\n  var navbar_light_skins = [\n    'navbar-light',\n    'navbar-warning',\n    'navbar-white',\n    'navbar-orange',\n  ]\n\n  $container.append(\n    '<h5>Customize AdminLTE</h5><hr class=\"mb-2\"/>'\n    + '<h6>Navbar Variants</h6>'\n  )\n\n  var $navbar_variants        = $('<div />', {\n    'class': 'd-flex'\n  })\n  var navbar_all_colors       = navbar_dark_skins.concat(navbar_light_skins)\n  var $navbar_variants_colors = createSkinBlock(navbar_all_colors, function (e) {\n    var color = $(this).data('color')\n    var $main_header = $('.main-header')\n    $main_header.removeClass('navbar-dark').removeClass('navbar-light')\n    navbar_all_colors.map(function (color) {\n      $main_header.removeClass(color)\n    })\n\n    if (navbar_dark_skins.indexOf(color) > -1) {\n      $main_header.addClass('navbar-dark')\n    } else {\n      $main_header.addClass('navbar-light')\n    }\n\n    $main_header.addClass(color)\n  })\n\n  $navbar_variants.append($navbar_variants_colors)\n\n  $container.append($navbar_variants)\n\n  var $checkbox_container = $('<div />', {\n    'class': 'mb-4'\n  })\n  var $navbar_border = $('<input />', {\n    type   : 'checkbox',\n    value  : 1,\n    checked: $('.main-header').hasClass('border-bottom-0'),\n    'class': 'mr-1'\n  }).on('click', function () {\n    if ($(this).is(':checked')) {\n      $('.main-header').addClass('border-bottom-0')\n    } else {\n      $('.main-header').removeClass('border-bottom-0')\n    }\n  })\n  $checkbox_container.append($navbar_border)\n  $checkbox_container.append('<span>No Navbar border</span>')\n  $container.append($checkbox_container)\n\n\n  var sidebar_colors = [\n    'bg-primary',\n    'bg-warning',\n    'bg-info',\n    'bg-danger',\n    'bg-success',\n    'bg-indigo',\n    'bg-navy',\n    'bg-purple',\n    'bg-fuchsia',\n    'bg-pink',\n    'bg-maroon',\n    'bg-orange',\n    'bg-lime',\n    'bg-teal',\n    'bg-olive'\n  ]\n\n  var sidebar_skins = [\n    'sidebar-dark-primary',\n    'sidebar-dark-warning',\n    'sidebar-dark-info',\n    'sidebar-dark-danger',\n    'sidebar-dark-success',\n    'sidebar-dark-indigo',\n    'sidebar-dark-navy',\n    'sidebar-dark-purple',\n    'sidebar-dark-fuchsia',\n    'sidebar-dark-pink',\n    'sidebar-dark-maroon',\n    'sidebar-dark-orange',\n    'sidebar-dark-lime',\n    'sidebar-dark-teal',\n    'sidebar-dark-olive',\n    'sidebar-light-primary',\n    'sidebar-light-warning',\n    'sidebar-light-info',\n    'sidebar-light-danger',\n    'sidebar-light-success',\n    'sidebar-light-indigo',\n    'sidebar-light-navy',\n    'sidebar-light-purple',\n    'sidebar-light-fuchsia',\n    'sidebar-light-pink',\n    'sidebar-light-maroon',\n    'sidebar-light-orange',\n    'sidebar-light-lime',\n    'sidebar-light-teal',\n    'sidebar-light-olive'\n  ]\n\n  $container.append('<h6>Dark Sidebar Variants</h6>')\n  var $sidebar_variants = $('<div />', {\n    'class': 'd-flex'\n  })\n  $container.append($sidebar_variants)\n  $container.append(createSkinBlock(sidebar_colors, function () {\n    var color         = $(this).data('color')\n    var sidebar_class = 'sidebar-dark-' + color.replace('bg-', '')\n    var $sidebar      = $('.main-sidebar')\n    sidebar_skins.map(function (skin) {\n      $sidebar.removeClass(skin)\n    })\n\n    $sidebar.addClass(sidebar_class)\n  }))\n\n  $container.append('<h6>Light Sidebar Variants</h6>')\n  var $sidebar_variants = $('<div />', {\n    'class': 'd-flex'\n  })\n  $container.append($sidebar_variants)\n  $container.append(createSkinBlock(sidebar_colors, function () {\n    var color         = $(this).data('color')\n    var sidebar_class = 'sidebar-light-' + color.replace('bg-', '')\n    var $sidebar      = $('.main-sidebar')\n    sidebar_skins.map(function (skin) {\n      $sidebar.removeClass(skin)\n    })\n\n    $sidebar.addClass(sidebar_class)\n  }))\n\n  var logo_skins = navbar_all_colors\n  $container.append('<h6>Brand Logo Variants</h6>')\n  var $logo_variants = $('<div />', {\n    'class': 'd-flex'\n  })\n  $container.append($logo_variants)\n  var $clear_btn = $('<a />', {\n    href: 'javascript:void(0)'\n  }).text('clear').on('click', function () {\n    var $logo = $('.brand-link')\n    logo_skins.map(function (skin) {\n      $logo.removeClass(skin)\n    })\n  })\n  $container.append(createSkinBlock(logo_skins, function () {\n    var color = $(this).data('color')\n    var $logo = $('.brand-link')\n    logo_skins.map(function (skin) {\n      $logo.removeClass(skin)\n    })\n    $logo.addClass(color)\n  }).append($clear_btn))\n\n  function createSkinBlock(colors, callback) {\n    var $block = $('<div />', {\n      'class': 'd-flex flex-wrap mb-3'\n    })\n\n    colors.map(function (color) {\n      var $color = $('<div />', {\n        'class': (typeof color === 'object' ? color.join(' ') : color) + ' elevation-2'\n      })\n\n      $block.append($color)\n\n      $color.data('color', color)\n\n      $color.css({\n        width       : '40px',\n        height      : '20px',\n        borderRadius: '25px',\n        marginRight : 10,\n        marginBottom: 10,\n        opacity     : 0.8,\n        cursor      : 'pointer'\n      })\n\n      $color.hover(function () {\n        $(this).css({ opacity: 1 }).removeClass('elevation-2').addClass('elevation-4')\n      }, function () {\n        $(this).css({ opacity: 0.8 }).removeClass('elevation-4').addClass('elevation-2')\n      })\n\n      if (callback) {\n        $color.on('click', callback)\n      }\n    })\n\n    return $block\n  }\n})(jQuery)\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/pages/dashboard.js",
    "content": "/*\n * Author: Abdullah A Almsaeed\n * Date: 4 Jan 2014\n * Description:\n *      This is a demo file used only for the main dashboard (index.html)\n **/\n\n$(function () {\n\n  'use strict'\n\n  // Make the dashboard widgets sortable Using jquery UI\n  $('.connectedSortable').sortable({\n    placeholder         : 'sort-highlight',\n    connectWith         : '.connectedSortable',\n    handle              : '.card-header, .nav-tabs',\n    forcePlaceholderSize: true,\n    zIndex              : 999999\n  })\n  $('.connectedSortable .card-header, .connectedSortable .nav-tabs-custom').css('cursor', 'move')\n\n  // jQuery UI sortable for the todo list\n  $('.todo-list').sortable({\n    placeholder         : 'sort-highlight',\n    handle              : '.handle',\n    forcePlaceholderSize: true,\n    zIndex              : 999999\n  })\n\n  // bootstrap WYSIHTML5 - text editor\n  $('.textarea').summernote()\n\n  $('.daterange').daterangepicker({\n    ranges   : {\n      'Today'       : [moment(), moment()],\n      'Yesterday'   : [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\n      'Last 7 Days' : [moment().subtract(6, 'days'), moment()],\n      'Last 30 Days': [moment().subtract(29, 'days'), moment()],\n      'This Month'  : [moment().startOf('month'), moment().endOf('month')],\n      'Last Month'  : [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]\n    },\n    startDate: moment().subtract(29, 'days'),\n    endDate  : moment()\n  }, function (start, end) {\n    window.alert('You chose: ' + start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'))\n  })\n\n  /* jQueryKnob */\n  $('.knob').knob()\n\n  // jvectormap data\n  var visitorsData = {\n    'US': 398, //USA\n    'SA': 400, //Saudi Arabia\n    'CA': 1000, //Canada\n    'DE': 500, //Germany\n    'FR': 760, //France\n    'CN': 300, //China\n    'AU': 700, //Australia\n    'BR': 600, //Brazil\n    'IN': 800, //India\n    'GB': 320, //Great Britain\n    'RU': 3000 //Russia\n  }\n  // World map by jvectormap\n  $('#world-map').vectorMap({\n    map              : 'world_en',\n    backgroundColor  : 'transparent',\n    regionStyle      : {\n      initial: {\n        fill            : 'rgba(255, 255, 255, 0.7)',\n        'fill-opacity'  : 1,\n        stroke          : 'rgba(0,0,0,.2)',\n        'stroke-width'  : 1,\n        'stroke-opacity': 1\n      }\n    },\n    series           : {\n      regions: [{\n        values           : visitorsData,\n        scale            : ['#ffffff', '#0154ad'],\n        normalizeFunction: 'polynomial'\n      }]\n    },\n    onRegionLabelShow: function (e, el, code) {\n      if (typeof visitorsData[code] != 'undefined')\n        el.html(el.html() + ': ' + visitorsData[code] + ' new visitors')\n    }\n  })\n\n  // Sparkline charts\n  var sparkline1 = new Sparkline($(\"#sparkline-1\")[0], {width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9'});\n  var sparkline2 = new Sparkline($(\"#sparkline-2\")[0], {width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9'});\n  var sparkline3 = new Sparkline($(\"#sparkline-3\")[0], {width: 80, height: 50, lineColor: '#92c1dc', endColor: '#ebf4f9'});\n\n  sparkline1.draw([1000, 1200, 920, 927, 931, 1027, 819, 930, 1021]);\n  sparkline2.draw([515, 519, 520, 522, 652, 810, 370, 627, 319, 630, 921]);\n  sparkline3.draw([15, 19, 20, 22, 33, 27, 31, 27, 19, 30, 21]);\n\n  // The Calender\n  $('#calendar').datetimepicker({\n    format: 'L',\n    inline: true\n  })\n\n  // SLIMSCROLL FOR CHAT WIDGET\n  $('#chat-box').overlayScrollbars({\n    height: '250px'\n  })\n\n  /* Chart.js Charts */\n  // Sales chart\n  var salesChartCanvas = document.getElementById('revenue-chart-canvas').getContext('2d');\n  //$('#revenue-chart').get(0).getContext('2d');\n\n  var salesChartData = {\n    labels  : ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label               : 'Digital Goods',\n        backgroundColor     : 'rgba(60,141,188,0.9)',\n        borderColor         : 'rgba(60,141,188,0.8)',\n        pointRadius          : false,\n        pointColor          : '#3b8bba',\n        pointStrokeColor    : 'rgba(60,141,188,1)',\n        pointHighlightFill  : '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data                : [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label               : 'Electronics',\n        backgroundColor     : 'rgba(210, 214, 222, 1)',\n        borderColor         : 'rgba(210, 214, 222, 1)',\n        pointRadius         : false,\n        pointColor          : 'rgba(210, 214, 222, 1)',\n        pointStrokeColor    : '#c1c7d1',\n        pointHighlightFill  : '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data                : [65, 59, 80, 81, 56, 55, 40]\n      },\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio : false,\n    responsive : true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines : {\n          display : false,\n        }\n      }],\n      yAxes: [{\n        gridLines : {\n          display : false,\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  var salesChart = new Chart(salesChartCanvas, { \n      type: 'line', \n      data: salesChartData, \n      options: salesChartOptions\n    }\n  )\n\n  // Donut Chart\n  var pieChartCanvas = $('#sales-chart-canvas').get(0).getContext('2d')\n  var pieData        = {\n    labels: [\n        'Instore Sales', \n        'Download Sales',\n        'Mail-Order Sales', \n    ],\n    datasets: [\n      {\n        data: [30,12,20],\n        backgroundColor : ['#f56954', '#00a65a', '#f39c12'],\n      }\n    ]\n  }\n  var pieOptions = {\n    legend: {\n      display: false\n    },\n    maintainAspectRatio : false,\n    responsive : true,\n  }\n  //Create pie or douhnut chart\n  // You can switch between pie and douhnut using the method below.\n  var pieChart = new Chart(pieChartCanvas, {\n    type: 'doughnut',\n    data: pieData,\n    options: pieOptions      \n  });\n\n  // Sales graph chart\n  var salesGraphChartCanvas = $('#line-chart').get(0).getContext('2d');\n  //$('#revenue-chart').get(0).getContext('2d');\n\n  var salesGraphChartData = {\n    labels  : ['2011 Q1', '2011 Q2', '2011 Q3', '2011 Q4', '2012 Q1', '2012 Q2', '2012 Q3', '2012 Q4', '2013 Q1', '2013 Q2'],\n    datasets: [\n      {\n        label               : 'Digital Goods',\n        fill                : false,\n        borderWidth         : 2,\n        lineTension         : 0,\n        spanGaps : true,\n        borderColor         : '#efefef',\n        pointRadius         : 3,\n        pointHoverRadius    : 7,\n        pointColor          : '#efefef',\n        pointBackgroundColor: '#efefef',\n        data                : [2666, 2778, 4912, 3767, 6810, 5670, 4820, 15073, 10687, 8432]\n      }\n    ]\n  }\n\n  var salesGraphChartOptions = {\n    maintainAspectRatio : false,\n    responsive : true,\n    legend: {\n      display: false,\n    },\n    scales: {\n      xAxes: [{\n        ticks : {\n          fontColor: '#efefef',\n        },\n        gridLines : {\n          display : false,\n          color: '#efefef',\n          drawBorder: false,\n        }\n      }],\n      yAxes: [{\n        ticks : {\n          stepSize: 5000,\n          fontColor: '#efefef',\n        },\n        gridLines : {\n          display : true,\n          color: '#efefef',\n          drawBorder: false,\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  var salesGraphChart = new Chart(salesGraphChartCanvas, { \n      type: 'line', \n      data: salesGraphChartData, \n      options: salesGraphChartOptions\n    }\n  )\n\n})\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/pages/dashboard2.js",
    "content": "$(function () {\n\n  'use strict'\n\n  /* ChartJS\n   * -------\n   * Here we will create a few charts using ChartJS\n   */\n\n  //-----------------------\n  //- MONTHLY SALES CHART -\n  //-----------------------\n\n  // Get context with jQuery - using jQuery's .get() method.\n  var salesChartCanvas = $('#salesChart').get(0).getContext('2d')\n\n  var salesChartData = {\n    labels  : ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\n    datasets: [\n      {\n        label               : 'Digital Goods',\n        backgroundColor     : 'rgba(60,141,188,0.9)',\n        borderColor         : 'rgba(60,141,188,0.8)',\n        pointRadius          : false,\n        pointColor          : '#3b8bba',\n        pointStrokeColor    : 'rgba(60,141,188,1)',\n        pointHighlightFill  : '#fff',\n        pointHighlightStroke: 'rgba(60,141,188,1)',\n        data                : [28, 48, 40, 19, 86, 27, 90]\n      },\n      {\n        label               : 'Electronics',\n        backgroundColor     : 'rgba(210, 214, 222, 1)',\n        borderColor         : 'rgba(210, 214, 222, 1)',\n        pointRadius         : false,\n        pointColor          : 'rgba(210, 214, 222, 1)',\n        pointStrokeColor    : '#c1c7d1',\n        pointHighlightFill  : '#fff',\n        pointHighlightStroke: 'rgba(220,220,220,1)',\n        data                : [65, 59, 80, 81, 56, 55, 40]\n      },\n    ]\n  }\n\n  var salesChartOptions = {\n    maintainAspectRatio : false,\n    responsive : true,\n    legend: {\n      display: false\n    },\n    scales: {\n      xAxes: [{\n        gridLines : {\n          display : false,\n        }\n      }],\n      yAxes: [{\n        gridLines : {\n          display : false,\n        }\n      }]\n    }\n  }\n\n  // This will get the first returned node in the jQuery collection.\n  var salesChart = new Chart(salesChartCanvas, { \n      type: 'line', \n      data: salesChartData, \n      options: salesChartOptions\n    }\n  )\n\n  //---------------------------\n  //- END MONTHLY SALES CHART -\n  //---------------------------\n\n  //-------------\n  //- PIE CHART -\n  //-------------\n  // Get context with jQuery - using jQuery's .get() method.\n    var pieChartCanvas = $('#pieChart').get(0).getContext('2d')\n    var pieData        = {\n      labels: [\n          'Chrome', \n          'IE',\n          'FireFox', \n          'Safari', \n          'Opera', \n          'Navigator', \n      ],\n      datasets: [\n        {\n          data: [700,500,400,600,300,100],\n          backgroundColor : ['#f56954', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de'],\n        }\n      ]\n    }\n    var pieOptions     = {\n      legend: {\n        display: false\n      }\n    }\n    //Create pie or douhnut chart\n    // You can switch between pie and douhnut using the method below.\n    var pieChart = new Chart(pieChartCanvas, {\n      type: 'doughnut',\n      data: pieData,\n      options: pieOptions      \n    })\n\n  //-----------------\n  //- END PIE CHART -\n  //-----------------\n\n  /* jVector Maps\n   * ------------\n   * Create a world map with markers\n   */\n  $('#world-map-markers').mapael({\n      map: {\n        name : \"world_countries\",\n        zoom: {\n          enabled: true,\n          maxLevel: 10\n        },\n        defaultPlot: {\n          size: 12,\n          attrs: {\n            \"stroke-width\": 0,\n            \"stroke-linejoin\": \"round\"\n          },\n          attrsHover: {\n            size: 15,\n            \"fill\": '#28a745',\n            \"stroke-width\": 0,\n            animDuration: 0\n          },\n        }\n      },\n      plots: {\n        \"marker1\": {\n          latitude: 41.90,\n          longitude: 12.45,\n          href: '#',\n          tooltip: {\n            content: 'Vatican City'\n          }\n        },\n        \"marker2\": {\n          latitude: 43.73,\n          longitude: 7.41,\n          href: '#',\n          tooltip: {\n            content: 'Monaco'\n          }\n        },\n        \"marker3\": {\n          latitude: -0.52,\n          longitude: 166.93,\n          href: '#',\n          tooltip: {\n            content: 'Nauru'\n          }\n        },\n        \"marker4\": {\n          latitude: -8.51,\n          longitude: 179.21,\n          href: '#',\n          tooltip: {\n            content: 'Tuvalu'\n          }\n        },\n        \"marker5\": {\n          latitude: 43.93,\n          longitude: 12.46,\n          href: '#',\n          tooltip: {\n            content: 'San Marino'\n          }\n        },\n        \"marker6\": {\n          latitude: 47.14,\n          longitude: 9.52,\n          href: '#',\n          tooltip: {\n            content: 'Liechtenstein'\n          }\n        },\n        \"marker7\": {\n          latitude: 7.11,\n          longitude: 171.06,\n          href: '#',\n          tooltip: {\n            content: 'Marshall Islands'\n          }\n        },\n        \"marker8\": {\n          latitude: 17.3,\n          longitude: -62.73,\n          href: '#',\n          tooltip: {\n            content: 'Saint Kitts and Nevis'\n          }\n        },\n        \"marker9\": {\n          latitude: 3.2,\n          longitude: 73.22,\n          href: '#',\n          tooltip: {\n            content: 'Maldives'\n          }\n        },\n        \"marker10\": {\n          latitude: 35.88,\n          longitude: 14.5,\n          href: '#',\n          tooltip: {\n            content: 'Malta'\n          }\n        },\n        \"marker11\": {\n          latitude: 12.05,\n          longitude: -61.75,\n          href: '#',\n          tooltip: {\n            content: 'Grenada'\n          }\n        },\n        \"marker12\": {\n          latitude: 13.16,\n          longitude: -61.23,\n          href: '#',\n          tooltip: {\n            content: 'Saint Vincent and the Grenadines'\n          }\n        },\n        \"marker13\": {\n          latitude: 13.16,\n          longitude: -59.55,\n          href: '#',\n          tooltip: {\n            content: 'Barbados'\n          }\n        },\n        \"marker14\": {\n          latitude: 17.11,\n          longitude: -61.85,\n          href: '#',\n          tooltip: {\n            content: 'Antigua and Barbuda'\n          }\n        },\n        \"marker15\": {\n          latitude: -4.61,\n          longitude: 55.45,\n          href: '#',\n          tooltip: {\n            content: 'Seychelles'\n          }\n        },\n        \"marker16\": {\n          latitude: 7.35,\n          longitude: 134.46,\n          href: '#',\n          tooltip: {\n            content: 'Palau'\n          }\n        },\n        \"marker17\": {\n          latitude: 42.5,\n          longitude: 1.51,\n          href: '#',\n          tooltip: {\n            content: 'Andorra'\n          }\n        },\n        \"marker18\": {\n          latitude: 14.01,\n          longitude: -60.98,\n          href: '#',\n          tooltip: {\n            content: 'Saint Lucia'\n          }\n        },\n        \"marker19\": {\n          latitude: 6.91,\n          longitude: 158.18,\n          href: '#',\n          tooltip: {\n            content: 'Federated States of Micronesia'\n          }\n        },\n        \"marker20\": {\n          latitude: 1.3,\n          longitude: 103.8,\n          href: '#',\n          tooltip: {\n            content: 'Singapore'\n          }\n        },\n        \"marker21\": {\n          latitude: 1.46,\n          longitude: 173.03,\n          href: '#',\n          tooltip: {\n            content: 'Kiribati'\n          }\n        },\n        \"marker22\": {\n          latitude: -21.13,\n          longitude: -175.2,\n          href: '#',\n          tooltip: {\n            content: 'Tonga'\n          }\n        },\n        \"marker23\": {\n          latitude: 15.3,\n          longitude: -61.38,\n          href: '#',\n          tooltip: {\n            content: 'Dominica'\n          }\n        },\n        \"marker24\": {\n          latitude: -20.2,\n          longitude: 57.5,\n          href: '#',\n          tooltip: {\n            content: 'Mauritius'\n          }\n        },\n        \"marker25\": {\n          latitude: 26.02,\n          longitude: 50.55,\n          href: '#',\n          tooltip: {\n            content: 'Bahrain'\n          }\n        },\n        \"marker26\": {\n          latitude: 0.33,\n          longitude: 6.73,\n          href: '#',\n          tooltip: {\n            content: 'São Tomé and Príncipe'\n          }\n        }\n      }\n    }\n  );\n\n  // $('#world-map-markers').vectorMap({\n  //   map              : 'world_en',\n  //   normalizeFunction: 'polynomial',\n  //   hoverOpacity     : 0.7,\n  //   hoverColor       : false,\n  //   backgroundColor  : 'transparent',\n  //   regionStyle      : {\n  //     initial      : {\n  //       fill            : 'rgba(210, 214, 222, 1)',\n  //       'fill-opacity'  : 1,\n  //       stroke          : 'none',\n  //       'stroke-width'  : 0,\n  //       'stroke-opacity': 1\n  //     },\n  //     hover        : {\n  //       'fill-opacity': 0.7,\n  //       cursor        : 'pointer'\n  //     },\n  //     selected     : {\n  //       fill: 'yellow'\n  //     },\n  //     selectedHover: {}\n  //   },\n  //   markerStyle      : {\n  //     initial: {\n  //       fill  : '#00a65a',\n  //       stroke: '#111'\n  //     }\n  //   },\n  //   markers          : [\n  //     {\n  //       latLng: [41.90, 12.45],\n  //       name  : 'Vatican City'\n  //     },\n  //     {\n  //       latLng: [43.73, 7.41],\n  //       name  : 'Monaco'\n  //     },\n  //     {\n  //       latLng: [-0.52, 166.93],\n  //       name  : 'Nauru'\n  //     },\n  //     {\n  //       latLng: [-8.51, 179.21],\n  //       name  : 'Tuvalu'\n  //     },\n  //     {\n  //       latLng: [43.93, 12.46],\n  //       name  : 'San Marino'\n  //     },\n  //     {\n  //       latLng: [47.14, 9.52],\n  //       name  : 'Liechtenstein'\n  //     },\n  //     {\n  //       latLng: [7.11, 171.06],\n  //       name  : 'Marshall Islands'\n  //     },\n  //     {\n  //       latLng: [17.3, -62.73],\n  //       name  : 'Saint Kitts and Nevis'\n  //     },\n  //     {\n  //       latLng: [3.2, 73.22],\n  //       name  : 'Maldives'\n  //     },\n  //     {\n  //       latLng: [35.88, 14.5],\n  //       name  : 'Malta'\n  //     },\n  //     {\n  //       latLng: [12.05, -61.75],\n  //       name  : 'Grenada'\n  //     },\n  //     {\n  //       latLng: [13.16, -61.23],\n  //       name  : 'Saint Vincent and the Grenadines'\n  //     },\n  //     {\n  //       latLng: [13.16, -59.55],\n  //       name  : 'Barbados'\n  //     },\n  //     {\n  //       latLng: [17.11, -61.85],\n  //       name  : 'Antigua and Barbuda'\n  //     },\n  //     {\n  //       latLng: [-4.61, 55.45],\n  //       name  : 'Seychelles'\n  //     },\n  //     {\n  //       latLng: [7.35, 134.46],\n  //       name  : 'Palau'\n  //     },\n  //     {\n  //       latLng: [42.5, 1.51],\n  //       name  : 'Andorra'\n  //     },\n  //     {\n  //       latLng: [14.01, -60.98],\n  //       name  : 'Saint Lucia'\n  //     },\n  //     {\n  //       latLng: [6.91, 158.18],\n  //       name  : 'Federated States of Micronesia'\n  //     },\n  //     {\n  //       latLng: [1.3, 103.8],\n  //       name  : 'Singapore'\n  //     },\n  //     {\n  //       latLng: [1.46, 173.03],\n  //       name  : 'Kiribati'\n  //     },\n  //     {\n  //       latLng: [-21.13, -175.2],\n  //       name  : 'Tonga'\n  //     },\n  //     {\n  //       latLng: [15.3, -61.38],\n  //       name  : 'Dominica'\n  //     },\n  //     {\n  //       latLng: [-20.2, 57.5],\n  //       name  : 'Mauritius'\n  //     },\n  //     {\n  //       latLng: [26.02, 50.55],\n  //       name  : 'Bahrain'\n  //     },\n  //     {\n  //       latLng: [0.33, 6.73],\n  //       name  : 'São Tomé and Príncipe'\n  //     }\n  //   ]\n  // })\n\n})\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/dist/js/pages/dashboard3.js",
    "content": "$(function () {\n  'use strict'\n\n  var ticksStyle = {\n    fontColor: '#495057',\n    fontStyle: 'bold'\n  }\n\n  var mode      = 'index'\n  var intersect = true\n\n  var $salesChart = $('#sales-chart')\n  var salesChart  = new Chart($salesChart, {\n    type   : 'bar',\n    data   : {\n      labels  : ['JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'],\n      datasets: [\n        {\n          backgroundColor: '#007bff',\n          borderColor    : '#007bff',\n          data           : [1000, 2000, 3000, 2500, 2700, 2500, 3000]\n        },\n        {\n          backgroundColor: '#ced4da',\n          borderColor    : '#ced4da',\n          data           : [700, 1700, 2700, 2000, 1800, 1500, 2000]\n        }\n      ]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips           : {\n        mode     : mode,\n        intersect: intersect\n      },\n      hover              : {\n        mode     : mode,\n        intersect: intersect\n      },\n      legend             : {\n        display: false\n      },\n      scales             : {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display      : true,\n            lineWidth    : '4px',\n            color        : 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks    : $.extend({\n            beginAtZero: true,\n\n            // Include a dollar sign in the ticks\n            callback: function (value, index, values) {\n              if (value >= 1000) {\n                value /= 1000\n                value += 'k'\n              }\n              return '$' + value\n            }\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display  : true,\n          gridLines: {\n            display: false\n          },\n          ticks    : ticksStyle\n        }]\n      }\n    }\n  })\n\n  var $visitorsChart = $('#visitors-chart')\n  var visitorsChart  = new Chart($visitorsChart, {\n    data   : {\n      labels  : ['18th', '20th', '22nd', '24th', '26th', '28th', '30th'],\n      datasets: [{\n        type                : 'line',\n        data                : [100, 120, 170, 167, 180, 177, 160],\n        backgroundColor     : 'transparent',\n        borderColor         : '#007bff',\n        pointBorderColor    : '#007bff',\n        pointBackgroundColor: '#007bff',\n        fill                : false\n        // pointHoverBackgroundColor: '#007bff',\n        // pointHoverBorderColor    : '#007bff'\n      },\n        {\n          type                : 'line',\n          data                : [60, 80, 70, 67, 80, 77, 100],\n          backgroundColor     : 'tansparent',\n          borderColor         : '#ced4da',\n          pointBorderColor    : '#ced4da',\n          pointBackgroundColor: '#ced4da',\n          fill                : false\n          // pointHoverBackgroundColor: '#ced4da',\n          // pointHoverBorderColor    : '#ced4da'\n        }]\n    },\n    options: {\n      maintainAspectRatio: false,\n      tooltips           : {\n        mode     : mode,\n        intersect: intersect\n      },\n      hover              : {\n        mode     : mode,\n        intersect: intersect\n      },\n      legend             : {\n        display: false\n      },\n      scales             : {\n        yAxes: [{\n          // display: false,\n          gridLines: {\n            display      : true,\n            lineWidth    : '4px',\n            color        : 'rgba(0, 0, 0, .2)',\n            zeroLineColor: 'transparent'\n          },\n          ticks    : $.extend({\n            beginAtZero : true,\n            suggestedMax: 200\n          }, ticksStyle)\n        }],\n        xAxes: [{\n          display  : true,\n          gridLines: {\n            display: false\n          },\n          ticks    : ticksStyle\n        }]\n      }\n    }\n  })\n})\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/bootstrap/css/bootstrap-grid.css",
    "content": "/*!\n * Bootstrap Grid v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\nhtml {\n  box-sizing: border-box;\n  -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/bootstrap/css/bootstrap-reboot.css",
    "content": "/*!\n * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/bootstrap/css/bootstrap.css",
    "content": "/*!\n * Bootstrap v4.3.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n  --blue: #007bff;\n  --indigo: #6610f2;\n  --purple: #6f42c1;\n  --pink: #e83e8c;\n  --red: #dc3545;\n  --orange: #fd7e14;\n  --yellow: #ffc107;\n  --green: #28a745;\n  --teal: #20c997;\n  --cyan: #17a2b8;\n  --white: #fff;\n  --gray: #6c757d;\n  --gray-dark: #343a40;\n  --primary: #007bff;\n  --secondary: #6c757d;\n  --success: #28a745;\n  --info: #17a2b8;\n  --warning: #ffc107;\n  --danger: #dc3545;\n  --light: #f8f9fa;\n  --dark: #343a40;\n  --breakpoint-xs: 0;\n  --breakpoint-sm: 576px;\n  --breakpoint-md: 768px;\n  --breakpoint-lg: 992px;\n  --breakpoint-xl: 1200px;\n  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: border-box;\n}\n\nhtml {\n  font-family: sans-serif;\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n  display: block;\n}\n\nbody {\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #212529;\n  text-align: left;\n  background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n  outline: 0 !important;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  margin-top: 0;\n  margin-bottom: 0.5rem;\n}\n\np {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n  text-decoration: underline;\n  -webkit-text-decoration: underline dotted;\n  text-decoration: underline dotted;\n  cursor: help;\n  border-bottom: 0;\n  -webkit-text-decoration-skip-ink: none;\n  text-decoration-skip-ink: none;\n}\n\naddress {\n  margin-bottom: 1rem;\n  font-style: normal;\n  line-height: inherit;\n}\n\nol,\nul,\ndl {\n  margin-top: 0;\n  margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n  margin-bottom: 0;\n}\n\ndt {\n  font-weight: 700;\n}\n\ndd {\n  margin-bottom: .5rem;\n  margin-left: 0;\n}\n\nblockquote {\n  margin: 0 0 1rem;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  position: relative;\n  font-size: 75%;\n  line-height: 0;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -.25em;\n}\n\nsup {\n  top: -.5em;\n}\n\na {\n  color: #007bff;\n  text-decoration: none;\n  background-color: transparent;\n}\n\na:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n  color: inherit;\n  text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n  outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n  font-size: 1em;\n}\n\npre {\n  margin-top: 0;\n  margin-bottom: 1rem;\n  overflow: auto;\n}\n\nfigure {\n  margin: 0 0 1rem;\n}\n\nimg {\n  vertical-align: middle;\n  border-style: none;\n}\n\nsvg {\n  overflow: hidden;\n  vertical-align: middle;\n}\n\ntable {\n  border-collapse: collapse;\n}\n\ncaption {\n  padding-top: 0.75rem;\n  padding-bottom: 0.75rem;\n  color: #6c757d;\n  text-align: left;\n  caption-side: bottom;\n}\n\nth {\n  text-align: inherit;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n}\n\nbutton {\n  border-radius: 0;\n}\n\nbutton:focus {\n  outline: 1px dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n  margin: 0;\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nselect {\n  word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n  cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  padding: 0;\n  border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n  -webkit-appearance: listbox;\n}\n\ntextarea {\n  overflow: auto;\n  resize: vertical;\n}\n\nfieldset {\n  min-width: 0;\n  padding: 0;\n  margin: 0;\n  border: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  padding: 0;\n  margin-bottom: .5rem;\n  font-size: 1.5rem;\n  line-height: inherit;\n  color: inherit;\n  white-space: normal;\n}\n\nprogress {\n  vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n[type=\"search\"] {\n  outline-offset: -2px;\n  -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n  font: inherit;\n  -webkit-appearance: button;\n}\n\noutput {\n  display: inline-block;\n}\n\nsummary {\n  display: list-item;\n  cursor: pointer;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  margin-bottom: 0.5rem;\n  font-weight: 500;\n  line-height: 1.2;\n}\n\nh1, .h1 {\n  font-size: 2.5rem;\n}\n\nh2, .h2 {\n  font-size: 2rem;\n}\n\nh3, .h3 {\n  font-size: 1.75rem;\n}\n\nh4, .h4 {\n  font-size: 1.5rem;\n}\n\nh5, .h5 {\n  font-size: 1.25rem;\n}\n\nh6, .h6 {\n  font-size: 1rem;\n}\n\n.lead {\n  font-size: 1.25rem;\n  font-weight: 300;\n}\n\n.display-1 {\n  font-size: 6rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-2 {\n  font-size: 5.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-3 {\n  font-size: 4.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\n.display-4 {\n  font-size: 3.5rem;\n  font-weight: 300;\n  line-height: 1.2;\n}\n\nhr {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n  border: 0;\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n  font-size: 80%;\n  font-weight: 400;\n}\n\nmark,\n.mark {\n  padding: 0.2em;\n  background-color: #fcf8e3;\n}\n\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n}\n\n.list-inline-item {\n  display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n  margin-right: 0.5rem;\n}\n\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n.blockquote {\n  margin-bottom: 1rem;\n  font-size: 1.25rem;\n}\n\n.blockquote-footer {\n  display: block;\n  font-size: 80%;\n  color: #6c757d;\n}\n\n.blockquote-footer::before {\n  content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n.img-thumbnail {\n  padding: 0.25rem;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n  border-radius: 0.25rem;\n  max-width: 100%;\n  height: auto;\n}\n\n.figure {\n  display: inline-block;\n}\n\n.figure-img {\n  margin-bottom: 0.5rem;\n  line-height: 1;\n}\n\n.figure-caption {\n  font-size: 90%;\n  color: #6c757d;\n}\n\ncode {\n  font-size: 87.5%;\n  color: #e83e8c;\n  word-break: break-word;\n}\n\na > code {\n  color: inherit;\n}\n\nkbd {\n  padding: 0.2rem 0.4rem;\n  font-size: 87.5%;\n  color: #fff;\n  background-color: #212529;\n  border-radius: 0.2rem;\n}\n\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: 700;\n}\n\npre {\n  display: block;\n  font-size: 87.5%;\n  color: #212529;\n}\n\npre code {\n  font-size: inherit;\n  color: inherit;\n  word-break: normal;\n}\n\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n\n.container {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n@media (min-width: 576px) {\n  .container {\n    max-width: 540px;\n  }\n}\n\n@media (min-width: 768px) {\n  .container {\n    max-width: 720px;\n  }\n}\n\n@media (min-width: 992px) {\n  .container {\n    max-width: 960px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .container {\n    max-width: 1140px;\n  }\n}\n\n.container-fluid {\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n  margin-right: auto;\n  margin-left: auto;\n}\n\n.row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -15px;\n  margin-left: -15px;\n}\n\n.no-gutters {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n  position: relative;\n  width: 100%;\n  padding-right: 15px;\n  padding-left: 15px;\n}\n\n.col {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  max-width: 100%;\n}\n\n.col-auto {\n  -ms-flex: 0 0 auto;\n  flex: 0 0 auto;\n  width: auto;\n  max-width: 100%;\n}\n\n.col-1 {\n  -ms-flex: 0 0 8.333333%;\n  flex: 0 0 8.333333%;\n  max-width: 8.333333%;\n}\n\n.col-2 {\n  -ms-flex: 0 0 16.666667%;\n  flex: 0 0 16.666667%;\n  max-width: 16.666667%;\n}\n\n.col-3 {\n  -ms-flex: 0 0 25%;\n  flex: 0 0 25%;\n  max-width: 25%;\n}\n\n.col-4 {\n  -ms-flex: 0 0 33.333333%;\n  flex: 0 0 33.333333%;\n  max-width: 33.333333%;\n}\n\n.col-5 {\n  -ms-flex: 0 0 41.666667%;\n  flex: 0 0 41.666667%;\n  max-width: 41.666667%;\n}\n\n.col-6 {\n  -ms-flex: 0 0 50%;\n  flex: 0 0 50%;\n  max-width: 50%;\n}\n\n.col-7 {\n  -ms-flex: 0 0 58.333333%;\n  flex: 0 0 58.333333%;\n  max-width: 58.333333%;\n}\n\n.col-8 {\n  -ms-flex: 0 0 66.666667%;\n  flex: 0 0 66.666667%;\n  max-width: 66.666667%;\n}\n\n.col-9 {\n  -ms-flex: 0 0 75%;\n  flex: 0 0 75%;\n  max-width: 75%;\n}\n\n.col-10 {\n  -ms-flex: 0 0 83.333333%;\n  flex: 0 0 83.333333%;\n  max-width: 83.333333%;\n}\n\n.col-11 {\n  -ms-flex: 0 0 91.666667%;\n  flex: 0 0 91.666667%;\n  max-width: 91.666667%;\n}\n\n.col-12 {\n  -ms-flex: 0 0 100%;\n  flex: 0 0 100%;\n  max-width: 100%;\n}\n\n.order-first {\n  -ms-flex-order: -1;\n  order: -1;\n}\n\n.order-last {\n  -ms-flex-order: 13;\n  order: 13;\n}\n\n.order-0 {\n  -ms-flex-order: 0;\n  order: 0;\n}\n\n.order-1 {\n  -ms-flex-order: 1;\n  order: 1;\n}\n\n.order-2 {\n  -ms-flex-order: 2;\n  order: 2;\n}\n\n.order-3 {\n  -ms-flex-order: 3;\n  order: 3;\n}\n\n.order-4 {\n  -ms-flex-order: 4;\n  order: 4;\n}\n\n.order-5 {\n  -ms-flex-order: 5;\n  order: 5;\n}\n\n.order-6 {\n  -ms-flex-order: 6;\n  order: 6;\n}\n\n.order-7 {\n  -ms-flex-order: 7;\n  order: 7;\n}\n\n.order-8 {\n  -ms-flex-order: 8;\n  order: 8;\n}\n\n.order-9 {\n  -ms-flex-order: 9;\n  order: 9;\n}\n\n.order-10 {\n  -ms-flex-order: 10;\n  order: 10;\n}\n\n.order-11 {\n  -ms-flex-order: 11;\n  order: 11;\n}\n\n.order-12 {\n  -ms-flex-order: 12;\n  order: 12;\n}\n\n.offset-1 {\n  margin-left: 8.333333%;\n}\n\n.offset-2 {\n  margin-left: 16.666667%;\n}\n\n.offset-3 {\n  margin-left: 25%;\n}\n\n.offset-4 {\n  margin-left: 33.333333%;\n}\n\n.offset-5 {\n  margin-left: 41.666667%;\n}\n\n.offset-6 {\n  margin-left: 50%;\n}\n\n.offset-7 {\n  margin-left: 58.333333%;\n}\n\n.offset-8 {\n  margin-left: 66.666667%;\n}\n\n.offset-9 {\n  margin-left: 75%;\n}\n\n.offset-10 {\n  margin-left: 83.333333%;\n}\n\n.offset-11 {\n  margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n  .col-sm {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-sm-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-sm-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-sm-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-sm-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-sm-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-sm-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-sm-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-sm-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-sm-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-sm-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-sm-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-sm-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-sm-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-sm-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-sm-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-sm-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-sm-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-sm-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-sm-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-sm-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-sm-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-sm-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-sm-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-sm-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-sm-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-sm-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-sm-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-sm-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-sm-0 {\n    margin-left: 0;\n  }\n  .offset-sm-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-sm-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-sm-3 {\n    margin-left: 25%;\n  }\n  .offset-sm-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-sm-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-sm-6 {\n    margin-left: 50%;\n  }\n  .offset-sm-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-sm-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-sm-9 {\n    margin-left: 75%;\n  }\n  .offset-sm-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-sm-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 768px) {\n  .col-md {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-md-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-md-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-md-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-md-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-md-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-md-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-md-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-md-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-md-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-md-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-md-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-md-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-md-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-md-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-md-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-md-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-md-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-md-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-md-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-md-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-md-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-md-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-md-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-md-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-md-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-md-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-md-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-md-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-md-0 {\n    margin-left: 0;\n  }\n  .offset-md-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-md-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-md-3 {\n    margin-left: 25%;\n  }\n  .offset-md-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-md-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-md-6 {\n    margin-left: 50%;\n  }\n  .offset-md-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-md-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-md-9 {\n    margin-left: 75%;\n  }\n  .offset-md-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-md-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 992px) {\n  .col-lg {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-lg-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-lg-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-lg-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-lg-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-lg-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-lg-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-lg-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-lg-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-lg-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-lg-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-lg-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-lg-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-lg-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-lg-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-lg-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-lg-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-lg-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-lg-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-lg-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-lg-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-lg-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-lg-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-lg-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-lg-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-lg-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-lg-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-lg-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-lg-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-lg-0 {\n    margin-left: 0;\n  }\n  .offset-lg-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-lg-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-lg-3 {\n    margin-left: 25%;\n  }\n  .offset-lg-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-lg-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-lg-6 {\n    margin-left: 50%;\n  }\n  .offset-lg-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-lg-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-lg-9 {\n    margin-left: 75%;\n  }\n  .offset-lg-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-lg-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n@media (min-width: 1200px) {\n  .col-xl {\n    -ms-flex-preferred-size: 0;\n    flex-basis: 0;\n    -ms-flex-positive: 1;\n    flex-grow: 1;\n    max-width: 100%;\n  }\n  .col-xl-auto {\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    width: auto;\n    max-width: 100%;\n  }\n  .col-xl-1 {\n    -ms-flex: 0 0 8.333333%;\n    flex: 0 0 8.333333%;\n    max-width: 8.333333%;\n  }\n  .col-xl-2 {\n    -ms-flex: 0 0 16.666667%;\n    flex: 0 0 16.666667%;\n    max-width: 16.666667%;\n  }\n  .col-xl-3 {\n    -ms-flex: 0 0 25%;\n    flex: 0 0 25%;\n    max-width: 25%;\n  }\n  .col-xl-4 {\n    -ms-flex: 0 0 33.333333%;\n    flex: 0 0 33.333333%;\n    max-width: 33.333333%;\n  }\n  .col-xl-5 {\n    -ms-flex: 0 0 41.666667%;\n    flex: 0 0 41.666667%;\n    max-width: 41.666667%;\n  }\n  .col-xl-6 {\n    -ms-flex: 0 0 50%;\n    flex: 0 0 50%;\n    max-width: 50%;\n  }\n  .col-xl-7 {\n    -ms-flex: 0 0 58.333333%;\n    flex: 0 0 58.333333%;\n    max-width: 58.333333%;\n  }\n  .col-xl-8 {\n    -ms-flex: 0 0 66.666667%;\n    flex: 0 0 66.666667%;\n    max-width: 66.666667%;\n  }\n  .col-xl-9 {\n    -ms-flex: 0 0 75%;\n    flex: 0 0 75%;\n    max-width: 75%;\n  }\n  .col-xl-10 {\n    -ms-flex: 0 0 83.333333%;\n    flex: 0 0 83.333333%;\n    max-width: 83.333333%;\n  }\n  .col-xl-11 {\n    -ms-flex: 0 0 91.666667%;\n    flex: 0 0 91.666667%;\n    max-width: 91.666667%;\n  }\n  .col-xl-12 {\n    -ms-flex: 0 0 100%;\n    flex: 0 0 100%;\n    max-width: 100%;\n  }\n  .order-xl-first {\n    -ms-flex-order: -1;\n    order: -1;\n  }\n  .order-xl-last {\n    -ms-flex-order: 13;\n    order: 13;\n  }\n  .order-xl-0 {\n    -ms-flex-order: 0;\n    order: 0;\n  }\n  .order-xl-1 {\n    -ms-flex-order: 1;\n    order: 1;\n  }\n  .order-xl-2 {\n    -ms-flex-order: 2;\n    order: 2;\n  }\n  .order-xl-3 {\n    -ms-flex-order: 3;\n    order: 3;\n  }\n  .order-xl-4 {\n    -ms-flex-order: 4;\n    order: 4;\n  }\n  .order-xl-5 {\n    -ms-flex-order: 5;\n    order: 5;\n  }\n  .order-xl-6 {\n    -ms-flex-order: 6;\n    order: 6;\n  }\n  .order-xl-7 {\n    -ms-flex-order: 7;\n    order: 7;\n  }\n  .order-xl-8 {\n    -ms-flex-order: 8;\n    order: 8;\n  }\n  .order-xl-9 {\n    -ms-flex-order: 9;\n    order: 9;\n  }\n  .order-xl-10 {\n    -ms-flex-order: 10;\n    order: 10;\n  }\n  .order-xl-11 {\n    -ms-flex-order: 11;\n    order: 11;\n  }\n  .order-xl-12 {\n    -ms-flex-order: 12;\n    order: 12;\n  }\n  .offset-xl-0 {\n    margin-left: 0;\n  }\n  .offset-xl-1 {\n    margin-left: 8.333333%;\n  }\n  .offset-xl-2 {\n    margin-left: 16.666667%;\n  }\n  .offset-xl-3 {\n    margin-left: 25%;\n  }\n  .offset-xl-4 {\n    margin-left: 33.333333%;\n  }\n  .offset-xl-5 {\n    margin-left: 41.666667%;\n  }\n  .offset-xl-6 {\n    margin-left: 50%;\n  }\n  .offset-xl-7 {\n    margin-left: 58.333333%;\n  }\n  .offset-xl-8 {\n    margin-left: 66.666667%;\n  }\n  .offset-xl-9 {\n    margin-left: 75%;\n  }\n  .offset-xl-10 {\n    margin-left: 83.333333%;\n  }\n  .offset-xl-11 {\n    margin-left: 91.666667%;\n  }\n}\n\n.table {\n  width: 100%;\n  margin-bottom: 1rem;\n  color: #212529;\n}\n\n.table th,\n.table td {\n  padding: 0.75rem;\n  vertical-align: top;\n  border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n  border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n  padding: 0.3rem;\n}\n\n.table-bordered {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n  border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n  border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n  border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n  color: #212529;\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n  background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n  border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n  background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n  background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n  background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n  border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n  background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n  background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n  background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n  border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n  background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n  background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n  background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n  border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n  background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n  background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n  background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n  border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n  background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n  background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n  background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n  border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n  background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n  background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n  background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n  border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n  background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n  background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n  background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n  border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n  background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n  background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n  background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #454d55;\n}\n\n.table .thead-light th {\n  color: #495057;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.table-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n  border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n  border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n  background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n  color: #fff;\n  background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n  .table-responsive-sm {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-sm > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .table-responsive-md {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-md > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .table-responsive-lg {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-lg > .table-bordered {\n    border: 0;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .table-responsive-xl {\n    display: block;\n    width: 100%;\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n  }\n  .table-responsive-xl > .table-bordered {\n    border: 0;\n  }\n}\n\n.table-responsive {\n  display: block;\n  width: 100%;\n  overflow-x: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n  border: 0;\n}\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .form-control {\n    transition: none;\n  }\n}\n\n.form-control::-ms-expand {\n  background-color: transparent;\n  border: 0;\n}\n\n.form-control:focus {\n  color: #495057;\n  background-color: #fff;\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control::placeholder {\n  color: #6c757d;\n  opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n  background-color: #e9ecef;\n  opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n  display: block;\n  width: 100%;\n}\n\n.col-form-label {\n  padding-top: calc(0.375rem + 1px);\n  padding-bottom: calc(0.375rem + 1px);\n  margin-bottom: 0;\n  font-size: inherit;\n  line-height: 1.5;\n}\n\n.col-form-label-lg {\n  padding-top: calc(0.5rem + 1px);\n  padding-bottom: calc(0.5rem + 1px);\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.col-form-label-sm {\n  padding-top: calc(0.25rem + 1px);\n  padding-bottom: calc(0.25rem + 1px);\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.form-control-plaintext {\n  display: block;\n  width: 100%;\n  padding-top: 0.375rem;\n  padding-bottom: 0.375rem;\n  margin-bottom: 0;\n  line-height: 1.5;\n  color: #212529;\n  background-color: transparent;\n  border: solid transparent;\n  border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.form-control-sm {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.form-control-lg {\n  height: calc(1.5em + 1rem + 2px);\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n  height: auto;\n}\n\ntextarea.form-control {\n  height: auto;\n}\n\n.form-group {\n  margin-bottom: 1rem;\n}\n\n.form-text {\n  display: block;\n  margin-top: 0.25rem;\n}\n\n.form-row {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  margin-right: -5px;\n  margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n  padding-right: 5px;\n  padding-left: 5px;\n}\n\n.form-check {\n  position: relative;\n  display: block;\n  padding-left: 1.25rem;\n}\n\n.form-check-input {\n  position: absolute;\n  margin-top: 0.3rem;\n  margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n  color: #6c757d;\n}\n\n.form-check-label {\n  margin-bottom: 0;\n}\n\n.form-check-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding-left: 0;\n  margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n  position: static;\n  margin-top: 0;\n  margin-right: 0.3125rem;\n  margin-left: 0;\n}\n\n.valid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #28a745;\n}\n\n.valid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(40, 167, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n  border-color: #28a745;\n  padding-right: calc(1.5em + 0.75rem);\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n  background-repeat: no-repeat;\n  background-position: center right calc(0.375em + 0.1875rem);\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n  padding-right: calc(1.5em + 0.75rem);\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n  border-color: #28a745;\n  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n  background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-select:valid ~ .valid-feedback,\n.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control-file:valid ~ .valid-feedback,\n.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,\n.form-control-file.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n  color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n  color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n  border-color: #34ce57;\n  background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n  border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n  border-color: #28a745;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n  display: none;\n  width: 100%;\n  margin-top: 0.25rem;\n  font-size: 80%;\n  color: #dc3545;\n}\n\n.invalid-tooltip {\n  position: absolute;\n  top: 100%;\n  z-index: 5;\n  display: none;\n  max-width: 100%;\n  padding: 0.25rem 0.5rem;\n  margin-top: .1rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  color: #fff;\n  background-color: rgba(220, 53, 69, 0.9);\n  border-radius: 0.25rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc(1.5em + 0.75rem);\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: center right calc(0.375em + 0.1875rem);\n  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n  padding-right: calc(1.5em + 0.75rem);\n  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n  border-color: #dc3545;\n  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);\n  background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-select:invalid ~ .invalid-feedback,\n.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-control-file:invalid ~ .invalid-feedback,\n.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,\n.form-control-file.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n  color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n  color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n  border-color: #e4606d;\n  background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n  border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n  display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n  border-color: #dc3545;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-flow: row wrap;\n  flex-flow: row wrap;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.form-inline .form-check {\n  width: 100%;\n}\n\n@media (min-width: 576px) {\n  .form-inline label {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-group {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 0 0 auto;\n    flex: 0 0 auto;\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    -ms-flex-align: center;\n    align-items: center;\n    margin-bottom: 0;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-plaintext {\n    display: inline-block;\n  }\n  .form-inline .input-group,\n  .form-inline .custom-select {\n    width: auto;\n  }\n  .form-inline .form-check {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n    width: auto;\n    padding-left: 0;\n  }\n  .form-inline .form-check-input {\n    position: relative;\n    -ms-flex-negative: 0;\n    flex-shrink: 0;\n    margin-top: 0;\n    margin-right: 0.25rem;\n    margin-left: 0;\n  }\n  .form-inline .custom-control {\n    -ms-flex-align: center;\n    align-items: center;\n    -ms-flex-pack: center;\n    justify-content: center;\n  }\n  .form-inline .custom-control-label {\n    margin-bottom: 0;\n  }\n}\n\n.btn {\n  display: inline-block;\n  font-weight: 400;\n  color: #212529;\n  text-align: center;\n  vertical-align: middle;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  background-color: transparent;\n  border: 1px solid transparent;\n  padding: 0.375rem 0.75rem;\n  font-size: 1rem;\n  line-height: 1.5;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .btn {\n    transition: none;\n  }\n}\n\n.btn:hover {\n  color: #212529;\n  text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n  opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n  pointer-events: none;\n}\n\n.btn-primary {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:hover {\n  color: #fff;\n  background-color: #0069d9;\n  border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #0062cc;\n  border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n  color: #fff;\n  background-color: #5a6268;\n  border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #545b62;\n  border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:hover {\n  color: #fff;\n  background-color: #218838;\n  border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n  color: #fff;\n  background-color: #1e7e34;\n  border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:hover {\n  color: #fff;\n  background-color: #138496;\n  border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n  color: #fff;\n  background-color: #117a8b;\n  border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:hover {\n  color: #212529;\n  background-color: #e0a800;\n  border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #d39e00;\n  border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c82333;\n  border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #bd2130;\n  border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n  color: #212529;\n  background-color: #e2e6ea;\n  border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n  color: #212529;\n  background-color: #dae0e5;\n  border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:hover {\n  color: #fff;\n  background-color: #23272b;\n  border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #1d2124;\n  border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n  color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n  color: #007bff;\n  background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n  color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n  color: #6c757d;\n  background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n  color: #fff;\n  background-color: #6c757d;\n  border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n  color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n  color: #28a745;\n  background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n  color: #fff;\n  background-color: #28a745;\n  border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n  color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n  color: #17a2b8;\n  background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n  color: #fff;\n  background-color: #17a2b8;\n  border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n  color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n  color: #ffc107;\n  background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n  color: #212529;\n  background-color: #ffc107;\n  border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n  color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n  color: #dc3545;\n  background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n  color: #fff;\n  background-color: #dc3545;\n  border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n  color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n  color: #f8f9fa;\n  background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n  color: #212529;\n  background-color: #f8f9fa;\n  border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n  color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n  color: #343a40;\n  background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n  color: #fff;\n  background-color: #343a40;\n  border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n  font-weight: 400;\n  color: #007bff;\n  text-decoration: none;\n}\n\n.btn-link:hover {\n  color: #0056b3;\n  text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n  text-decoration: underline;\n  box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n.btn-block + .btn-block {\n  margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n\n.fade {\n  transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .fade {\n    transition: none;\n  }\n}\n\n.fade:not(.show) {\n  opacity: 0;\n}\n\n.collapse:not(.show) {\n  display: none;\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .collapsing {\n    transition: none;\n  }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n  position: relative;\n}\n\n.dropdown-toggle {\n  white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0;\n  border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 10rem;\n  padding: 0.5rem 0;\n  margin: 0.125rem 0 0;\n  font-size: 1rem;\n  color: #212529;\n  text-align: left;\n  list-style: none;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n  right: auto;\n  left: 0;\n}\n\n.dropdown-menu-right {\n  right: 0;\n  left: auto;\n}\n\n@media (min-width: 576px) {\n  .dropdown-menu-sm-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-sm-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 768px) {\n  .dropdown-menu-md-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-md-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 992px) {\n  .dropdown-menu-lg-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-lg-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n@media (min-width: 1200px) {\n  .dropdown-menu-xl-left {\n    right: auto;\n    left: 0;\n  }\n  .dropdown-menu-xl-right {\n    right: 0;\n    left: auto;\n  }\n}\n\n.dropup .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-top: 0;\n  margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0;\n  border-right: 0.3em solid transparent;\n  border-bottom: 0.3em solid;\n  border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n  top: 0;\n  right: auto;\n  left: 100%;\n  margin-top: 0;\n  margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0;\n  border-bottom: 0.3em solid transparent;\n  border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n  vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n  top: 0;\n  right: 100%;\n  left: auto;\n  margin-top: 0;\n  margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n  display: inline-block;\n  margin-left: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n  display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n  display: inline-block;\n  margin-right: 0.255em;\n  vertical-align: 0.255em;\n  content: \"\";\n  border-top: 0.3em solid transparent;\n  border-right: 0.3em solid;\n  border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n  vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n  right: auto;\n  bottom: auto;\n}\n\n.dropdown-divider {\n  height: 0;\n  margin: 0.5rem 0;\n  overflow: hidden;\n  border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n  display: block;\n  width: 100%;\n  padding: 0.25rem 1.5rem;\n  clear: both;\n  font-weight: 400;\n  color: #212529;\n  text-align: inherit;\n  white-space: nowrap;\n  background-color: transparent;\n  border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n  color: #16181b;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n  color: #fff;\n  text-decoration: none;\n  background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: transparent;\n}\n\n.dropdown-menu.show {\n  display: block;\n}\n\n.dropdown-header {\n  display: block;\n  padding: 0.5rem 1.5rem;\n  margin-bottom: 0;\n  font-size: 0.875rem;\n  color: #6c757d;\n  white-space: nowrap;\n}\n\n.dropdown-item-text {\n  display: block;\n  padding: 0.25rem 1.5rem;\n  color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n  z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n  z-index: 1;\n}\n\n.btn-toolbar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n  width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n  margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n  padding-right: 0.5625rem;\n  padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n  margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n  margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n  padding-right: 0.375rem;\n  padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n  padding-right: 0.75rem;\n  padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n  width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n  margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n  margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n\n.input-group {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: stretch;\n  align-items: stretch;\n  width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  width: 1%;\n  margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n  margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n  z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n  z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n  position: relative;\n  z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n  z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n  margin-left: -1px;\n}\n\n.input-group-prepend {\n  margin-right: -1px;\n}\n\n.input-group-append {\n  margin-left: -1px;\n}\n\n.input-group-text {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.375rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #e9ecef;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n  height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n  padding: 0.5rem 1rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n  border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n  height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n  border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n  padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n  border-top-right-radius: 0;\n  border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n  border-top-left-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.custom-control {\n  position: relative;\n  display: block;\n  min-height: 1.5rem;\n  padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n  display: -ms-inline-flexbox;\n  display: inline-flex;\n  margin-right: 1rem;\n}\n\n.custom-control-input {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n  color: #fff;\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n  border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n  color: #fff;\n  background-color: #b3d7ff;\n  border-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n  color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n  background-color: #e9ecef;\n}\n\n.custom-control-label {\n  position: relative;\n  margin-bottom: 0;\n  vertical-align: top;\n}\n\n.custom-control-label::before {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  pointer-events: none;\n  content: \"\";\n  background-color: #fff;\n  border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n  position: absolute;\n  top: 0.25rem;\n  left: -1.5rem;\n  display: block;\n  width: 1rem;\n  height: 1rem;\n  content: \"\";\n  background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n  border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n  border-color: #007bff;\n  background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n  border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n  padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n  left: -2.25rem;\n  width: 1.75rem;\n  pointer-events: all;\n  border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n  top: calc(0.25rem + 2px);\n  left: calc(-2.25rem + 2px);\n  width: calc(1rem - 4px);\n  height: calc(1rem - 4px);\n  background-color: #adb5bd;\n  border-radius: 0.5rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-switch .custom-control-label::after {\n    transition: none;\n  }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n  background-color: #fff;\n  -webkit-transform: translateX(0.75rem);\n  transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n  background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n  font-size: 1rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  vertical-align: middle;\n  background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-select:focus {\n  border-color: #80bdff;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n  color: #495057;\n  background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n  height: auto;\n  padding-right: 0.75rem;\n  background-image: none;\n}\n\n.custom-select:disabled {\n  color: #6c757d;\n  background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n  display: none;\n}\n\n.custom-select-sm {\n  height: calc(1.5em + 0.5rem + 2px);\n  padding-top: 0.25rem;\n  padding-bottom: 0.25rem;\n  padding-left: 0.5rem;\n  font-size: 0.875rem;\n}\n\n.custom-select-lg {\n  height: calc(1.5em + 1rem + 2px);\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n  padding-left: 1rem;\n  font-size: 1.25rem;\n}\n\n.custom-file {\n  position: relative;\n  display: inline-block;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  margin-bottom: 0;\n}\n\n.custom-file-input {\n  position: relative;\n  z-index: 2;\n  width: 100%;\n  height: calc(1.5em + 0.75rem + 2px);\n  margin: 0;\n  opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n  border-color: #80bdff;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:disabled ~ .custom-file-label {\n  background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n  content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n  content: attr(data-browse);\n}\n\n.custom-file-label {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1;\n  height: calc(1.5em + 0.75rem + 2px);\n  padding: 0.375rem 0.75rem;\n  font-weight: 400;\n  line-height: 1.5;\n  color: #495057;\n  background-color: #fff;\n  border: 1px solid #ced4da;\n  border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 3;\n  display: block;\n  height: calc(1.5em + 0.75rem);\n  padding: 0.375rem 0.75rem;\n  line-height: 1.5;\n  color: #495057;\n  content: \"Browse\";\n  background-color: #e9ecef;\n  border-left: inherit;\n  border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n  width: 100%;\n  height: calc(1rem + 0.4rem);\n  padding: 0;\n  background-color: transparent;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n.custom-range:focus {\n  outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n  border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: -0.25rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -webkit-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-webkit-slider-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n  width: 1rem;\n  height: 1rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  -moz-appearance: none;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-moz-range-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-moz-range-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: #dee2e6;\n  border-color: transparent;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n  width: 1rem;\n  height: 1rem;\n  margin-top: 0;\n  margin-right: 0.2rem;\n  margin-left: 0.2rem;\n  background-color: #007bff;\n  border: 0;\n  border-radius: 1rem;\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n  appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-range::-ms-thumb {\n    transition: none;\n  }\n}\n\n.custom-range::-ms-thumb:active {\n  background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n  width: 100%;\n  height: 0.5rem;\n  color: transparent;\n  cursor: pointer;\n  background-color: transparent;\n  border-color: transparent;\n  border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n  margin-right: 15px;\n  background-color: #dee2e6;\n  border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n  cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n  background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .custom-control-label::before,\n  .custom-file-label,\n  .custom-select {\n    transition: none;\n  }\n}\n\n.nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.nav-link {\n  display: block;\n  padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n  text-decoration: none;\n}\n\n.nav-link.disabled {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: default;\n}\n\n.nav-tabs {\n  border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n  margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n  border: 1px solid transparent;\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n  border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n  color: #6c757d;\n  background-color: transparent;\n  border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n  color: #495057;\n  background-color: #fff;\n  border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n  border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n  color: #fff;\n  background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  text-align: center;\n}\n\n.nav-justified .nav-item {\n  -ms-flex-preferred-size: 0;\n  flex-basis: 0;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  text-align: center;\n}\n\n.tab-content > .tab-pane {\n  display: none;\n}\n\n.tab-content > .active {\n  display: block;\n}\n\n.navbar {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n}\n\n.navbar-brand {\n  display: inline-block;\n  padding-top: 0.3125rem;\n  padding-bottom: 0.3125rem;\n  margin-right: 1rem;\n  font-size: 1.25rem;\n  line-height: inherit;\n  white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n  text-decoration: none;\n}\n\n.navbar-nav {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n  list-style: none;\n}\n\n.navbar-nav .nav-link {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n  position: static;\n  float: none;\n}\n\n.navbar-text {\n  display: inline-block;\n  padding-top: 0.5rem;\n  padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n  -ms-flex-preferred-size: 100%;\n  flex-basis: 100%;\n  -ms-flex-positive: 1;\n  flex-grow: 1;\n  -ms-flex-align: center;\n  align-items: center;\n}\n\n.navbar-toggler {\n  padding: 0.25rem 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1;\n  background-color: transparent;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n  text-decoration: none;\n}\n\n.navbar-toggler-icon {\n  display: inline-block;\n  width: 1.5em;\n  height: 1.5em;\n  vertical-align: middle;\n  content: \"\";\n  background: no-repeat center center;\n  background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 576px) {\n  .navbar-expand-sm {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-sm .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-sm .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-sm .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-sm > .container,\n  .navbar-expand-sm > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-sm .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-sm .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 767.98px) {\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .navbar-expand-md {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-md .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-md .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-md .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-md > .container,\n  .navbar-expand-md > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-md .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-md .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 991.98px) {\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .navbar-expand-lg {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-lg .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-lg .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-lg .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-lg > .container,\n  .navbar-expand-lg > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-lg .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-lg .navbar-toggler {\n    display: none;\n  }\n}\n\n@media (max-width: 1199.98px) {\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    padding-right: 0;\n    padding-left: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .navbar-expand-xl {\n    -ms-flex-flow: row nowrap;\n    flex-flow: row nowrap;\n    -ms-flex-pack: start;\n    justify-content: flex-start;\n  }\n  .navbar-expand-xl .navbar-nav {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .navbar-expand-xl .navbar-nav .dropdown-menu {\n    position: absolute;\n  }\n  .navbar-expand-xl .navbar-nav .nav-link {\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n  }\n  .navbar-expand-xl > .container,\n  .navbar-expand-xl > .container-fluid {\n    -ms-flex-wrap: nowrap;\n    flex-wrap: nowrap;\n  }\n  .navbar-expand-xl .navbar-collapse {\n    display: -ms-flexbox !important;\n    display: flex !important;\n    -ms-flex-preferred-size: auto;\n    flex-basis: auto;\n  }\n  .navbar-expand-xl .navbar-toggler {\n    display: none;\n  }\n}\n\n.navbar-expand {\n  -ms-flex-flow: row nowrap;\n  flex-flow: row nowrap;\n  -ms-flex-pack: start;\n  justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  padding-right: 0;\n  padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n  position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n  padding-right: 0.5rem;\n  padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n  -ms-flex-wrap: nowrap;\n  flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n  display: -ms-flexbox !important;\n  display: flex !important;\n  -ms-flex-preferred-size: auto;\n  flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n  display: none;\n}\n\n.navbar-light .navbar-brand {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n  color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n  color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n  color: rgba(0, 0, 0, 0.5);\n  border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n  color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n  color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n  color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n  color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n  color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n  color: rgba(255, 255, 255, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n  color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n  color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n  color: #fff;\n}\n\n.card {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  min-width: 0;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: border-box;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n  border-radius: 0.25rem;\n}\n\n.card > hr {\n  margin-right: 0;\n  margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1.25rem;\n}\n\n.card-title {\n  margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n  margin-top: -0.375rem;\n  margin-bottom: 0;\n}\n\n.card-text:last-child {\n  margin-bottom: 0;\n}\n\n.card-link:hover {\n  text-decoration: none;\n}\n\n.card-link + .card-link {\n  margin-left: 1.25rem;\n}\n\n.card-header {\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 0;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n  border-top: 0;\n}\n\n.card-footer {\n  padding: 0.75rem 1.25rem;\n  background-color: rgba(0, 0, 0, 0.03);\n  border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n  margin-right: -0.625rem;\n  margin-bottom: -0.75rem;\n  margin-left: -0.625rem;\n  border-bottom: 0;\n}\n\n.card-header-pills {\n  margin-right: -0.625rem;\n  margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  padding: 1.25rem;\n}\n\n.card-img {\n  width: 100%;\n  border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n  width: 100%;\n  border-top-left-radius: calc(0.25rem - 1px);\n  border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n  width: 100%;\n  border-bottom-right-radius: calc(0.25rem - 1px);\n  border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-deck .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-deck {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n    margin-right: -15px;\n    margin-left: -15px;\n  }\n  .card-deck .card {\n    display: -ms-flexbox;\n    display: flex;\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    -ms-flex-direction: column;\n    flex-direction: column;\n    margin-right: 15px;\n    margin-bottom: 0;\n    margin-left: 15px;\n  }\n}\n\n.card-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n}\n\n.card-group > .card {\n  margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n  .card-group {\n    -ms-flex-flow: row wrap;\n    flex-flow: row wrap;\n  }\n  .card-group > .card {\n    -ms-flex: 1 0 0%;\n    flex: 1 0 0%;\n    margin-bottom: 0;\n  }\n  .card-group > .card + .card {\n    margin-left: 0;\n    border-left: 0;\n  }\n  .card-group > .card:not(:last-child) {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-top,\n  .card-group > .card:not(:last-child) .card-header {\n    border-top-right-radius: 0;\n  }\n  .card-group > .card:not(:last-child) .card-img-bottom,\n  .card-group > .card:not(:last-child) .card-footer {\n    border-bottom-right-radius: 0;\n  }\n  .card-group > .card:not(:first-child) {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-top,\n  .card-group > .card:not(:first-child) .card-header {\n    border-top-left-radius: 0;\n  }\n  .card-group > .card:not(:first-child) .card-img-bottom,\n  .card-group > .card:not(:first-child) .card-footer {\n    border-bottom-left-radius: 0;\n  }\n}\n\n.card-columns .card {\n  margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n  .card-columns {\n    -webkit-column-count: 3;\n    -moz-column-count: 3;\n    column-count: 3;\n    -webkit-column-gap: 1.25rem;\n    -moz-column-gap: 1.25rem;\n    column-gap: 1.25rem;\n    orphans: 1;\n    widows: 1;\n  }\n  .card-columns .card {\n    display: inline-block;\n    width: 100%;\n  }\n}\n\n.accordion > .card {\n  overflow: hidden;\n}\n\n.accordion > .card:not(:first-of-type) .card-header:first-child {\n  border-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type):not(:last-of-type) {\n  border-bottom: 0;\n  border-radius: 0;\n}\n\n.accordion > .card:first-of-type {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.accordion > .card:last-of-type {\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n.accordion > .card .card-header {\n  margin-bottom: -1px;\n}\n\n.breadcrumb {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-wrap: wrap;\n  flex-wrap: wrap;\n  padding: 0.75rem 1rem;\n  margin-bottom: 1rem;\n  list-style: none;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n  padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n  display: inline-block;\n  padding-right: 0.5rem;\n  color: #6c757d;\n  content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n  text-decoration: none;\n}\n\n.breadcrumb-item.active {\n  color: #6c757d;\n}\n\n.pagination {\n  display: -ms-flexbox;\n  display: flex;\n  padding-left: 0;\n  list-style: none;\n  border-radius: 0.25rem;\n}\n\n.page-link {\n  position: relative;\n  display: block;\n  padding: 0.5rem 0.75rem;\n  margin-left: -1px;\n  line-height: 1.25;\n  color: #007bff;\n  background-color: #fff;\n  border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n  z-index: 2;\n  color: #0056b3;\n  text-decoration: none;\n  background-color: #e9ecef;\n  border-color: #dee2e6;\n}\n\n.page-link:focus {\n  z-index: 2;\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n  margin-left: 0;\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n  z-index: 1;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n  color: #6c757d;\n  pointer-events: none;\n  cursor: auto;\n  background-color: #fff;\n  border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n  padding: 0.75rem 1.5rem;\n  font-size: 1.25rem;\n  line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n  border-top-left-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n  border-top-right-radius: 0.3rem;\n  border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n  padding: 0.25rem 0.5rem;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n  border-top-left-radius: 0.2rem;\n  border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n  border-top-right-radius: 0.2rem;\n  border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n  display: inline-block;\n  padding: 0.25em 0.4em;\n  font-size: 75%;\n  font-weight: 700;\n  line-height: 1;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: 0.25rem;\n  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .badge {\n    transition: none;\n  }\n}\n\na.badge:hover, a.badge:focus {\n  text-decoration: none;\n}\n\n.badge:empty {\n  display: none;\n}\n\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n\n.badge-pill {\n  padding-right: 0.6em;\n  padding-left: 0.6em;\n  border-radius: 10rem;\n}\n\n.badge-primary {\n  color: #fff;\n  background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n  color: #fff;\n  background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n  color: #fff;\n  background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n  color: #fff;\n  background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n  color: #fff;\n  background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n  color: #fff;\n  background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n  color: #fff;\n  background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n  color: #fff;\n  background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n  color: #212529;\n  background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n  color: #212529;\n  background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n  color: #fff;\n  background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n  color: #fff;\n  background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n  color: #212529;\n  background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n  color: #212529;\n  background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n  color: #fff;\n  background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n  color: #fff;\n  background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n  outline: 0;\n  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n  padding: 2rem 1rem;\n  margin-bottom: 2rem;\n  background-color: #e9ecef;\n  border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n  .jumbotron {\n    padding: 4rem 2rem;\n  }\n}\n\n.jumbotron-fluid {\n  padding-right: 0;\n  padding-left: 0;\n  border-radius: 0;\n}\n\n.alert {\n  position: relative;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: 1rem;\n  border: 1px solid transparent;\n  border-radius: 0.25rem;\n}\n\n.alert-heading {\n  color: inherit;\n}\n\n.alert-link {\n  font-weight: 700;\n}\n\n.alert-dismissible {\n  padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 0.75rem 1.25rem;\n  color: inherit;\n}\n\n.alert-primary {\n  color: #004085;\n  background-color: #cce5ff;\n  border-color: #b8daff;\n}\n\n.alert-primary hr {\n  border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n  color: #002752;\n}\n\n.alert-secondary {\n  color: #383d41;\n  background-color: #e2e3e5;\n  border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n  border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n  color: #202326;\n}\n\n.alert-success {\n  color: #155724;\n  background-color: #d4edda;\n  border-color: #c3e6cb;\n}\n\n.alert-success hr {\n  border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n  color: #0b2e13;\n}\n\n.alert-info {\n  color: #0c5460;\n  background-color: #d1ecf1;\n  border-color: #bee5eb;\n}\n\n.alert-info hr {\n  border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n  color: #062c33;\n}\n\n.alert-warning {\n  color: #856404;\n  background-color: #fff3cd;\n  border-color: #ffeeba;\n}\n\n.alert-warning hr {\n  border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n  color: #533f03;\n}\n\n.alert-danger {\n  color: #721c24;\n  background-color: #f8d7da;\n  border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n  border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n  color: #491217;\n}\n\n.alert-light {\n  color: #818182;\n  background-color: #fefefe;\n  border-color: #fdfdfe;\n}\n\n.alert-light hr {\n  border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n  color: #686868;\n}\n\n.alert-dark {\n  color: #1b1e21;\n  background-color: #d6d8d9;\n  border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n  border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n  color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 1rem 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n\n.progress {\n  display: -ms-flexbox;\n  display: flex;\n  height: 1rem;\n  overflow: hidden;\n  font-size: 0.75rem;\n  background-color: #e9ecef;\n  border-radius: 0.25rem;\n}\n\n.progress-bar {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-pack: center;\n  justify-content: center;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  background-color: #007bff;\n  transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar {\n    transition: none;\n  }\n}\n\n.progress-bar-striped {\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n  -webkit-animation: progress-bar-stripes 1s linear infinite;\n  animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .progress-bar-animated {\n    -webkit-animation: none;\n    animation: none;\n  }\n}\n\n.media {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n}\n\n.media-body {\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.list-group {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  padding-left: 0;\n  margin-bottom: 0;\n}\n\n.list-group-item-action {\n  width: 100%;\n  color: #495057;\n  text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n  z-index: 1;\n  color: #495057;\n  text-decoration: none;\n  background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n  color: #212529;\n  background-color: #e9ecef;\n}\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 0.75rem 1.25rem;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n  color: #6c757d;\n  pointer-events: none;\n  background-color: #fff;\n}\n\n.list-group-item.active {\n  z-index: 2;\n  color: #fff;\n  background-color: #007bff;\n  border-color: #007bff;\n}\n\n.list-group-horizontal {\n  -ms-flex-direction: row;\n  flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item {\n  margin-right: -1px;\n  margin-bottom: 0;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n  border-top-left-radius: 0.25rem;\n  border-bottom-left-radius: 0.25rem;\n  border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n  margin-right: 0;\n  border-top-right-radius: 0.25rem;\n  border-bottom-right-radius: 0.25rem;\n  border-bottom-left-radius: 0;\n}\n\n@media (min-width: 576px) {\n  .list-group-horizontal-sm {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-sm .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-sm .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-sm .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 768px) {\n  .list-group-horizontal-md {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-md .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-md .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-md .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 992px) {\n  .list-group-horizontal-lg {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-lg .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-lg .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-lg .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n@media (min-width: 1200px) {\n  .list-group-horizontal-xl {\n    -ms-flex-direction: row;\n    flex-direction: row;\n  }\n  .list-group-horizontal-xl .list-group-item {\n    margin-right: -1px;\n    margin-bottom: 0;\n  }\n  .list-group-horizontal-xl .list-group-item:first-child {\n    border-top-left-radius: 0.25rem;\n    border-bottom-left-radius: 0.25rem;\n    border-top-right-radius: 0;\n  }\n  .list-group-horizontal-xl .list-group-item:last-child {\n    margin-right: 0;\n    border-top-right-radius: 0.25rem;\n    border-bottom-right-radius: 0.25rem;\n    border-bottom-left-radius: 0;\n  }\n}\n\n.list-group-flush .list-group-item {\n  border-right: 0;\n  border-left: 0;\n  border-radius: 0;\n}\n\n.list-group-flush .list-group-item:last-child {\n  margin-bottom: -1px;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n  border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom: 0;\n}\n\n.list-group-item-primary {\n  color: #004085;\n  background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n  color: #004085;\n  background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n  color: #fff;\n  background-color: #004085;\n  border-color: #004085;\n}\n\n.list-group-item-secondary {\n  color: #383d41;\n  background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n  color: #383d41;\n  background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n  color: #fff;\n  background-color: #383d41;\n  border-color: #383d41;\n}\n\n.list-group-item-success {\n  color: #155724;\n  background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n  color: #155724;\n  background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n  color: #fff;\n  background-color: #155724;\n  border-color: #155724;\n}\n\n.list-group-item-info {\n  color: #0c5460;\n  background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n  color: #0c5460;\n  background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n  color: #fff;\n  background-color: #0c5460;\n  border-color: #0c5460;\n}\n\n.list-group-item-warning {\n  color: #856404;\n  background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n  color: #856404;\n  background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n  color: #fff;\n  background-color: #856404;\n  border-color: #856404;\n}\n\n.list-group-item-danger {\n  color: #721c24;\n  background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n  color: #721c24;\n  background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n  color: #fff;\n  background-color: #721c24;\n  border-color: #721c24;\n}\n\n.list-group-item-light {\n  color: #818182;\n  background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n  color: #818182;\n  background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n  color: #fff;\n  background-color: #818182;\n  border-color: #818182;\n}\n\n.list-group-item-dark {\n  color: #1b1e21;\n  background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n  color: #1b1e21;\n  background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n  color: #fff;\n  background-color: #1b1e21;\n  border-color: #1b1e21;\n}\n\n.close {\n  float: right;\n  font-size: 1.5rem;\n  font-weight: 700;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: .5;\n}\n\n.close:hover {\n  color: #000;\n  text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n  opacity: .75;\n}\n\nbutton.close {\n  padding: 0;\n  background-color: transparent;\n  border: 0;\n  -webkit-appearance: none;\n  -moz-appearance: none;\n  appearance: none;\n}\n\na.close.disabled {\n  pointer-events: none;\n}\n\n.toast {\n  max-width: 350px;\n  overflow: hidden;\n  font-size: 0.875rem;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n  -webkit-backdrop-filter: blur(10px);\n  backdrop-filter: blur(10px);\n  opacity: 0;\n  border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n  margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n  opacity: 1;\n}\n\n.toast.show {\n  display: block;\n  opacity: 1;\n}\n\n.toast.hide {\n  display: none;\n}\n\n.toast-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  padding: 0.25rem 0.75rem;\n  color: #6c757d;\n  background-color: rgba(255, 255, 255, 0.85);\n  background-clip: padding-box;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n  padding: 0.75rem;\n}\n\n.modal-open {\n  overflow: hidden;\n}\n\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n.modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1050;\n  display: none;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n  outline: 0;\n}\n\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 0.5rem;\n  pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n  transition: -webkit-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n  -webkit-transform: translate(0, -50px);\n  transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .modal.fade .modal-dialog {\n    transition: none;\n  }\n}\n\n.modal.show .modal-dialog {\n  -webkit-transform: none;\n  transform: none;\n}\n\n.modal-dialog-scrollable {\n  display: -ms-flexbox;\n  display: flex;\n  max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n  max-height: calc(100vh - 1rem);\n  overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n  -ms-flex-negative: 0;\n  flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n  overflow-y: auto;\n}\n\n.modal-dialog-centered {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n  display: block;\n  height: calc(100vh - 1rem);\n  content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -ms-flex-pack: center;\n  justify-content: center;\n  height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n  max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n  content: none;\n}\n\n.modal-content {\n  position: relative;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  width: 100%;\n  pointer-events: auto;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n  outline: 0;\n}\n\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  left: 0;\n  z-index: 1040;\n  width: 100vw;\n  height: 100vh;\n  background-color: #000;\n}\n\n.modal-backdrop.fade {\n  opacity: 0;\n}\n\n.modal-backdrop.show {\n  opacity: 0.5;\n}\n\n.modal-header {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  -ms-flex-pack: justify;\n  justify-content: space-between;\n  padding: 1rem 1rem;\n  border-bottom: 1px solid #dee2e6;\n  border-top-left-radius: 0.3rem;\n  border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n  padding: 1rem 1rem;\n  margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n  margin-bottom: 0;\n  line-height: 1.5;\n}\n\n.modal-body {\n  position: relative;\n  -ms-flex: 1 1 auto;\n  flex: 1 1 auto;\n  padding: 1rem;\n}\n\n.modal-footer {\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: end;\n  justify-content: flex-end;\n  padding: 1rem;\n  border-top: 1px solid #dee2e6;\n  border-bottom-right-radius: 0.3rem;\n  border-bottom-left-radius: 0.3rem;\n}\n\n.modal-footer > :not(:first-child) {\n  margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n  margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n@media (min-width: 576px) {\n  .modal-dialog {\n    max-width: 500px;\n    margin: 1.75rem auto;\n  }\n  .modal-dialog-scrollable {\n    max-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-scrollable .modal-content {\n    max-height: calc(100vh - 3.5rem);\n  }\n  .modal-dialog-centered {\n    min-height: calc(100% - 3.5rem);\n  }\n  .modal-dialog-centered::before {\n    height: calc(100vh - 3.5rem);\n  }\n  .modal-sm {\n    max-width: 300px;\n  }\n}\n\n@media (min-width: 992px) {\n  .modal-lg,\n  .modal-xl {\n    max-width: 800px;\n  }\n}\n\n@media (min-width: 1200px) {\n  .modal-xl {\n    max-width: 1140px;\n  }\n}\n\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  margin: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  opacity: 0;\n}\n\n.tooltip.show {\n  opacity: 0.9;\n}\n\n.tooltip .arrow {\n  position: absolute;\n  display: block;\n  width: 0.8rem;\n  height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n  position: absolute;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n  bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n  top: 0;\n  border-width: 0.4rem 0.4rem 0;\n  border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n  left: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n  right: 0;\n  border-width: 0.4rem 0.4rem 0.4rem 0;\n  border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n  padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n  top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n  bottom: 0;\n  border-width: 0 0.4rem 0.4rem;\n  border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n  padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n  right: 0;\n  width: 0.4rem;\n  height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n  left: 0;\n  border-width: 0.4rem 0 0.4rem 0.4rem;\n  border-left-color: #000;\n}\n\n.tooltip-inner {\n  max-width: 200px;\n  padding: 0.25rem 0.5rem;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 0.25rem;\n}\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: block;\n  max-width: 276px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n  font-style: normal;\n  font-weight: 400;\n  line-height: 1.5;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-break: normal;\n  word-spacing: normal;\n  white-space: normal;\n  line-break: auto;\n  font-size: 0.875rem;\n  word-wrap: break-word;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 0.3rem;\n}\n\n.popover .arrow {\n  position: absolute;\n  display: block;\n  width: 1rem;\n  height: 0.5rem;\n  margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n  position: absolute;\n  display: block;\n  content: \"\";\n  border-color: transparent;\n  border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n  margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n  bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n  bottom: 0;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n  bottom: 1px;\n  border-width: 0.5rem 0.5rem 0;\n  border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n  margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n  left: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n  left: 0;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n  left: 1px;\n  border-width: 0.5rem 0.5rem 0.5rem 0;\n  border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n  margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n  top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n  top: 0;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n  top: 1px;\n  border-width: 0 0.5rem 0.5rem 0.5rem;\n  border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  display: block;\n  width: 1rem;\n  margin-left: -0.5rem;\n  content: \"\";\n  border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n  margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n  right: calc((0.5rem + 1px) * -1);\n  width: 0.5rem;\n  height: 1rem;\n  margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n  right: 0;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n  right: 1px;\n  border-width: 0.5rem 0 0.5rem 0.5rem;\n  border-left-color: #fff;\n}\n\n.popover-header {\n  padding: 0.5rem 0.75rem;\n  margin-bottom: 0;\n  font-size: 1rem;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-top-left-radius: calc(0.3rem - 1px);\n  border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n  display: none;\n}\n\n.popover-body {\n  padding: 0.5rem 0.75rem;\n  color: #212529;\n}\n\n.carousel {\n  position: relative;\n}\n\n.carousel.pointer-event {\n  -ms-touch-action: pan-y;\n  touch-action: pan-y;\n}\n\n.carousel-inner {\n  position: relative;\n  width: 100%;\n  overflow: hidden;\n}\n\n.carousel-inner::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.carousel-item {\n  position: relative;\n  display: none;\n  float: left;\n  width: 100%;\n  margin-right: -100%;\n  -webkit-backface-visibility: hidden;\n  backface-visibility: hidden;\n  transition: -webkit-transform 0.6s ease-in-out;\n  transition: transform 0.6s ease-in-out;\n  transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-item {\n    transition: none;\n  }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n  display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n  -webkit-transform: translateX(100%);\n  transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n  -webkit-transform: translateX(-100%);\n  transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n  opacity: 0;\n  transition-property: opacity;\n  -webkit-transform: none;\n  transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n  z-index: 1;\n  opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n  z-index: 0;\n  opacity: 0;\n  transition: 0s 0.6s opacity;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-fade .active.carousel-item-left,\n  .carousel-fade .active.carousel-item-right {\n    transition: none;\n  }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  z-index: 1;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-align: center;\n  align-items: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  width: 15%;\n  color: #fff;\n  text-align: center;\n  opacity: 0.5;\n  transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-control-prev,\n  .carousel-control-next {\n    transition: none;\n  }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  opacity: 0.9;\n}\n\n.carousel-control-prev {\n  left: 0;\n}\n\n.carousel-control-next {\n  right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n  display: inline-block;\n  width: 20px;\n  height: 20px;\n  background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n  background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 15;\n  display: -ms-flexbox;\n  display: flex;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding-left: 0;\n  margin-right: 15%;\n  margin-left: 15%;\n  list-style: none;\n}\n\n.carousel-indicators li {\n  box-sizing: content-box;\n  -ms-flex: 0 1 auto;\n  flex: 0 1 auto;\n  width: 30px;\n  height: 3px;\n  margin-right: 3px;\n  margin-left: 3px;\n  text-indent: -999px;\n  cursor: pointer;\n  background-color: #fff;\n  background-clip: padding-box;\n  border-top: 10px solid transparent;\n  border-bottom: 10px solid transparent;\n  opacity: .5;\n  transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .carousel-indicators li {\n    transition: none;\n  }\n}\n\n.carousel-indicators .active {\n  opacity: 1;\n}\n\n.carousel-caption {\n  position: absolute;\n  right: 15%;\n  bottom: 20px;\n  left: 15%;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n}\n\n@-webkit-keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes spinner-border {\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n.spinner-border {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  border: 0.25em solid currentColor;\n  border-right-color: transparent;\n  border-radius: 50%;\n  -webkit-animation: spinner-border .75s linear infinite;\n  animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n  width: 1rem;\n  height: 1rem;\n  border-width: 0.2em;\n}\n\n@-webkit-keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n  }\n}\n\n@keyframes spinner-grow {\n  0% {\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  50% {\n    opacity: 1;\n  }\n}\n\n.spinner-grow {\n  display: inline-block;\n  width: 2rem;\n  height: 2rem;\n  vertical-align: text-bottom;\n  background-color: currentColor;\n  border-radius: 50%;\n  opacity: 0;\n  -webkit-animation: spinner-grow .75s linear infinite;\n  animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n  width: 1rem;\n  height: 1rem;\n}\n\n.align-baseline {\n  vertical-align: baseline !important;\n}\n\n.align-top {\n  vertical-align: top !important;\n}\n\n.align-middle {\n  vertical-align: middle !important;\n}\n\n.align-bottom {\n  vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n  vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n  vertical-align: text-top !important;\n}\n\n.bg-primary {\n  background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n  background-color: #0062cc !important;\n}\n\n.bg-secondary {\n  background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n  background-color: #545b62 !important;\n}\n\n.bg-success {\n  background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n  background-color: #1e7e34 !important;\n}\n\n.bg-info {\n  background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n  background-color: #117a8b !important;\n}\n\n.bg-warning {\n  background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n  background-color: #d39e00 !important;\n}\n\n.bg-danger {\n  background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n  background-color: #bd2130 !important;\n}\n\n.bg-light {\n  background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n  background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n  background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n  background-color: #1d2124 !important;\n}\n\n.bg-white {\n  background-color: #fff !important;\n}\n\n.bg-transparent {\n  background-color: transparent !important;\n}\n\n.border {\n  border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n  border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n  border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n  border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n  border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n  border: 0 !important;\n}\n\n.border-top-0 {\n  border-top: 0 !important;\n}\n\n.border-right-0 {\n  border-right: 0 !important;\n}\n\n.border-bottom-0 {\n  border-bottom: 0 !important;\n}\n\n.border-left-0 {\n  border-left: 0 !important;\n}\n\n.border-primary {\n  border-color: #007bff !important;\n}\n\n.border-secondary {\n  border-color: #6c757d !important;\n}\n\n.border-success {\n  border-color: #28a745 !important;\n}\n\n.border-info {\n  border-color: #17a2b8 !important;\n}\n\n.border-warning {\n  border-color: #ffc107 !important;\n}\n\n.border-danger {\n  border-color: #dc3545 !important;\n}\n\n.border-light {\n  border-color: #f8f9fa !important;\n}\n\n.border-dark {\n  border-color: #343a40 !important;\n}\n\n.border-white {\n  border-color: #fff !important;\n}\n\n.rounded-sm {\n  border-radius: 0.2rem !important;\n}\n\n.rounded {\n  border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n  border-top-left-radius: 0.25rem !important;\n  border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n  border-top-right-radius: 0.25rem !important;\n  border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n  border-bottom-right-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n  border-top-left-radius: 0.25rem !important;\n  border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n  border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n  border-radius: 50% !important;\n}\n\n.rounded-pill {\n  border-radius: 50rem !important;\n}\n\n.rounded-0 {\n  border-radius: 0 !important;\n}\n\n.clearfix::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n\n.d-none {\n  display: none !important;\n}\n\n.d-inline {\n  display: inline !important;\n}\n\n.d-inline-block {\n  display: inline-block !important;\n}\n\n.d-block {\n  display: block !important;\n}\n\n.d-table {\n  display: table !important;\n}\n\n.d-table-row {\n  display: table-row !important;\n}\n\n.d-table-cell {\n  display: table-cell !important;\n}\n\n.d-flex {\n  display: -ms-flexbox !important;\n  display: flex !important;\n}\n\n.d-inline-flex {\n  display: -ms-inline-flexbox !important;\n  display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n  .d-sm-none {\n    display: none !important;\n  }\n  .d-sm-inline {\n    display: inline !important;\n  }\n  .d-sm-inline-block {\n    display: inline-block !important;\n  }\n  .d-sm-block {\n    display: block !important;\n  }\n  .d-sm-table {\n    display: table !important;\n  }\n  .d-sm-table-row {\n    display: table-row !important;\n  }\n  .d-sm-table-cell {\n    display: table-cell !important;\n  }\n  .d-sm-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-sm-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .d-md-none {\n    display: none !important;\n  }\n  .d-md-inline {\n    display: inline !important;\n  }\n  .d-md-inline-block {\n    display: inline-block !important;\n  }\n  .d-md-block {\n    display: block !important;\n  }\n  .d-md-table {\n    display: table !important;\n  }\n  .d-md-table-row {\n    display: table-row !important;\n  }\n  .d-md-table-cell {\n    display: table-cell !important;\n  }\n  .d-md-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-md-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .d-lg-none {\n    display: none !important;\n  }\n  .d-lg-inline {\n    display: inline !important;\n  }\n  .d-lg-inline-block {\n    display: inline-block !important;\n  }\n  .d-lg-block {\n    display: block !important;\n  }\n  .d-lg-table {\n    display: table !important;\n  }\n  .d-lg-table-row {\n    display: table-row !important;\n  }\n  .d-lg-table-cell {\n    display: table-cell !important;\n  }\n  .d-lg-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-lg-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .d-xl-none {\n    display: none !important;\n  }\n  .d-xl-inline {\n    display: inline !important;\n  }\n  .d-xl-inline-block {\n    display: inline-block !important;\n  }\n  .d-xl-block {\n    display: block !important;\n  }\n  .d-xl-table {\n    display: table !important;\n  }\n  .d-xl-table-row {\n    display: table-row !important;\n  }\n  .d-xl-table-cell {\n    display: table-cell !important;\n  }\n  .d-xl-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-xl-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n@media print {\n  .d-print-none {\n    display: none !important;\n  }\n  .d-print-inline {\n    display: inline !important;\n  }\n  .d-print-inline-block {\n    display: inline-block !important;\n  }\n  .d-print-block {\n    display: block !important;\n  }\n  .d-print-table {\n    display: table !important;\n  }\n  .d-print-table-row {\n    display: table-row !important;\n  }\n  .d-print-table-cell {\n    display: table-cell !important;\n  }\n  .d-print-flex {\n    display: -ms-flexbox !important;\n    display: flex !important;\n  }\n  .d-print-inline-flex {\n    display: -ms-inline-flexbox !important;\n    display: inline-flex !important;\n  }\n}\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  width: 100%;\n  padding: 0;\n  overflow: hidden;\n}\n\n.embed-responsive::before {\n  display: block;\n  content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  border: 0;\n}\n\n.embed-responsive-21by9::before {\n  padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n  padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n  padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n  padding-top: 100%;\n}\n\n.flex-row {\n  -ms-flex-direction: row !important;\n  flex-direction: row !important;\n}\n\n.flex-column {\n  -ms-flex-direction: column !important;\n  flex-direction: column !important;\n}\n\n.flex-row-reverse {\n  -ms-flex-direction: row-reverse !important;\n  flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n  -ms-flex-direction: column-reverse !important;\n  flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n  -ms-flex-wrap: wrap !important;\n  flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n  -ms-flex-wrap: nowrap !important;\n  flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n  -ms-flex-wrap: wrap-reverse !important;\n  flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n  -ms-flex: 1 1 auto !important;\n  flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n  -ms-flex-positive: 0 !important;\n  flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n  -ms-flex-positive: 1 !important;\n  flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n  -ms-flex-negative: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n  -ms-flex-negative: 1 !important;\n  flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n  -ms-flex-pack: start !important;\n  justify-content: flex-start !important;\n}\n\n.justify-content-end {\n  -ms-flex-pack: end !important;\n  justify-content: flex-end !important;\n}\n\n.justify-content-center {\n  -ms-flex-pack: center !important;\n  justify-content: center !important;\n}\n\n.justify-content-between {\n  -ms-flex-pack: justify !important;\n  justify-content: space-between !important;\n}\n\n.justify-content-around {\n  -ms-flex-pack: distribute !important;\n  justify-content: space-around !important;\n}\n\n.align-items-start {\n  -ms-flex-align: start !important;\n  align-items: flex-start !important;\n}\n\n.align-items-end {\n  -ms-flex-align: end !important;\n  align-items: flex-end !important;\n}\n\n.align-items-center {\n  -ms-flex-align: center !important;\n  align-items: center !important;\n}\n\n.align-items-baseline {\n  -ms-flex-align: baseline !important;\n  align-items: baseline !important;\n}\n\n.align-items-stretch {\n  -ms-flex-align: stretch !important;\n  align-items: stretch !important;\n}\n\n.align-content-start {\n  -ms-flex-line-pack: start !important;\n  align-content: flex-start !important;\n}\n\n.align-content-end {\n  -ms-flex-line-pack: end !important;\n  align-content: flex-end !important;\n}\n\n.align-content-center {\n  -ms-flex-line-pack: center !important;\n  align-content: center !important;\n}\n\n.align-content-between {\n  -ms-flex-line-pack: justify !important;\n  align-content: space-between !important;\n}\n\n.align-content-around {\n  -ms-flex-line-pack: distribute !important;\n  align-content: space-around !important;\n}\n\n.align-content-stretch {\n  -ms-flex-line-pack: stretch !important;\n  align-content: stretch !important;\n}\n\n.align-self-auto {\n  -ms-flex-item-align: auto !important;\n  align-self: auto !important;\n}\n\n.align-self-start {\n  -ms-flex-item-align: start !important;\n  align-self: flex-start !important;\n}\n\n.align-self-end {\n  -ms-flex-item-align: end !important;\n  align-self: flex-end !important;\n}\n\n.align-self-center {\n  -ms-flex-item-align: center !important;\n  align-self: center !important;\n}\n\n.align-self-baseline {\n  -ms-flex-item-align: baseline !important;\n  align-self: baseline !important;\n}\n\n.align-self-stretch {\n  -ms-flex-item-align: stretch !important;\n  align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n  .flex-sm-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-sm-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-sm-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-sm-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-sm-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-sm-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-sm-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-sm-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-sm-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-sm-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-sm-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-sm-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-sm-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-sm-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-sm-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-sm-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-sm-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-sm-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-sm-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-sm-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-sm-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-sm-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-sm-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-sm-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-sm-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-sm-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-sm-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-sm-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-sm-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-sm-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-sm-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-sm-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-sm-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-sm-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .flex-md-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-md-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-md-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-md-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-md-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-md-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-md-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-md-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-md-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-md-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-md-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-md-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-md-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-md-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-md-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-md-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-md-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-md-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-md-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-md-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-md-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-md-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-md-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-md-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-md-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-md-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-md-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-md-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-md-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-md-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-md-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-md-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-md-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-md-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .flex-lg-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-lg-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-lg-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-lg-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-lg-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-lg-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-lg-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-lg-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-lg-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-lg-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-lg-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-lg-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-lg-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-lg-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-lg-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-lg-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-lg-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-lg-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-lg-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-lg-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-lg-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-lg-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-lg-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-lg-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-lg-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-lg-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-lg-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-lg-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-lg-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-lg-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-lg-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-lg-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-lg-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-lg-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .flex-xl-row {\n    -ms-flex-direction: row !important;\n    flex-direction: row !important;\n  }\n  .flex-xl-column {\n    -ms-flex-direction: column !important;\n    flex-direction: column !important;\n  }\n  .flex-xl-row-reverse {\n    -ms-flex-direction: row-reverse !important;\n    flex-direction: row-reverse !important;\n  }\n  .flex-xl-column-reverse {\n    -ms-flex-direction: column-reverse !important;\n    flex-direction: column-reverse !important;\n  }\n  .flex-xl-wrap {\n    -ms-flex-wrap: wrap !important;\n    flex-wrap: wrap !important;\n  }\n  .flex-xl-nowrap {\n    -ms-flex-wrap: nowrap !important;\n    flex-wrap: nowrap !important;\n  }\n  .flex-xl-wrap-reverse {\n    -ms-flex-wrap: wrap-reverse !important;\n    flex-wrap: wrap-reverse !important;\n  }\n  .flex-xl-fill {\n    -ms-flex: 1 1 auto !important;\n    flex: 1 1 auto !important;\n  }\n  .flex-xl-grow-0 {\n    -ms-flex-positive: 0 !important;\n    flex-grow: 0 !important;\n  }\n  .flex-xl-grow-1 {\n    -ms-flex-positive: 1 !important;\n    flex-grow: 1 !important;\n  }\n  .flex-xl-shrink-0 {\n    -ms-flex-negative: 0 !important;\n    flex-shrink: 0 !important;\n  }\n  .flex-xl-shrink-1 {\n    -ms-flex-negative: 1 !important;\n    flex-shrink: 1 !important;\n  }\n  .justify-content-xl-start {\n    -ms-flex-pack: start !important;\n    justify-content: flex-start !important;\n  }\n  .justify-content-xl-end {\n    -ms-flex-pack: end !important;\n    justify-content: flex-end !important;\n  }\n  .justify-content-xl-center {\n    -ms-flex-pack: center !important;\n    justify-content: center !important;\n  }\n  .justify-content-xl-between {\n    -ms-flex-pack: justify !important;\n    justify-content: space-between !important;\n  }\n  .justify-content-xl-around {\n    -ms-flex-pack: distribute !important;\n    justify-content: space-around !important;\n  }\n  .align-items-xl-start {\n    -ms-flex-align: start !important;\n    align-items: flex-start !important;\n  }\n  .align-items-xl-end {\n    -ms-flex-align: end !important;\n    align-items: flex-end !important;\n  }\n  .align-items-xl-center {\n    -ms-flex-align: center !important;\n    align-items: center !important;\n  }\n  .align-items-xl-baseline {\n    -ms-flex-align: baseline !important;\n    align-items: baseline !important;\n  }\n  .align-items-xl-stretch {\n    -ms-flex-align: stretch !important;\n    align-items: stretch !important;\n  }\n  .align-content-xl-start {\n    -ms-flex-line-pack: start !important;\n    align-content: flex-start !important;\n  }\n  .align-content-xl-end {\n    -ms-flex-line-pack: end !important;\n    align-content: flex-end !important;\n  }\n  .align-content-xl-center {\n    -ms-flex-line-pack: center !important;\n    align-content: center !important;\n  }\n  .align-content-xl-between {\n    -ms-flex-line-pack: justify !important;\n    align-content: space-between !important;\n  }\n  .align-content-xl-around {\n    -ms-flex-line-pack: distribute !important;\n    align-content: space-around !important;\n  }\n  .align-content-xl-stretch {\n    -ms-flex-line-pack: stretch !important;\n    align-content: stretch !important;\n  }\n  .align-self-xl-auto {\n    -ms-flex-item-align: auto !important;\n    align-self: auto !important;\n  }\n  .align-self-xl-start {\n    -ms-flex-item-align: start !important;\n    align-self: flex-start !important;\n  }\n  .align-self-xl-end {\n    -ms-flex-item-align: end !important;\n    align-self: flex-end !important;\n  }\n  .align-self-xl-center {\n    -ms-flex-item-align: center !important;\n    align-self: center !important;\n  }\n  .align-self-xl-baseline {\n    -ms-flex-item-align: baseline !important;\n    align-self: baseline !important;\n  }\n  .align-self-xl-stretch {\n    -ms-flex-item-align: stretch !important;\n    align-self: stretch !important;\n  }\n}\n\n.float-left {\n  float: left !important;\n}\n\n.float-right {\n  float: right !important;\n}\n\n.float-none {\n  float: none !important;\n}\n\n@media (min-width: 576px) {\n  .float-sm-left {\n    float: left !important;\n  }\n  .float-sm-right {\n    float: right !important;\n  }\n  .float-sm-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .float-md-left {\n    float: left !important;\n  }\n  .float-md-right {\n    float: right !important;\n  }\n  .float-md-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .float-lg-left {\n    float: left !important;\n  }\n  .float-lg-right {\n    float: right !important;\n  }\n  .float-lg-none {\n    float: none !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .float-xl-left {\n    float: left !important;\n  }\n  .float-xl-right {\n    float: right !important;\n  }\n  .float-xl-none {\n    float: none !important;\n  }\n}\n\n.overflow-auto {\n  overflow: auto !important;\n}\n\n.overflow-hidden {\n  overflow: hidden !important;\n}\n\n.position-static {\n  position: static !important;\n}\n\n.position-relative {\n  position: relative !important;\n}\n\n.position-absolute {\n  position: absolute !important;\n}\n\n.position-fixed {\n  position: fixed !important;\n}\n\n.position-sticky {\n  position: -webkit-sticky !important;\n  position: sticky !important;\n}\n\n.fixed-top {\n  position: fixed;\n  top: 0;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n.fixed-bottom {\n  position: fixed;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n  .sticky-top {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 0;\n    z-index: 1020;\n  }\n}\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  overflow: visible;\n  clip: auto;\n  white-space: normal;\n}\n\n.shadow-sm {\n  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n  box-shadow: none !important;\n}\n\n.w-25 {\n  width: 25% !important;\n}\n\n.w-50 {\n  width: 50% !important;\n}\n\n.w-75 {\n  width: 75% !important;\n}\n\n.w-100 {\n  width: 100% !important;\n}\n\n.w-auto {\n  width: auto !important;\n}\n\n.h-25 {\n  height: 25% !important;\n}\n\n.h-50 {\n  height: 50% !important;\n}\n\n.h-75 {\n  height: 75% !important;\n}\n\n.h-100 {\n  height: 100% !important;\n}\n\n.h-auto {\n  height: auto !important;\n}\n\n.mw-100 {\n  max-width: 100% !important;\n}\n\n.mh-100 {\n  max-height: 100% !important;\n}\n\n.min-vw-100 {\n  min-width: 100vw !important;\n}\n\n.min-vh-100 {\n  min-height: 100vh !important;\n}\n\n.vw-100 {\n  width: 100vw !important;\n}\n\n.vh-100 {\n  height: 100vh !important;\n}\n\n.stretched-link::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1;\n  pointer-events: auto;\n  content: \"\";\n  background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n  margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n  margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n  margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n  margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n  margin-left: 0 !important;\n}\n\n.m-1 {\n  margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n  margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n  margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n  margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n  margin-left: 0.25rem !important;\n}\n\n.m-2 {\n  margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n  margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n  margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n  margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n  margin-left: 0.5rem !important;\n}\n\n.m-3 {\n  margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n  margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n  margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n  margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n  margin-left: 1rem !important;\n}\n\n.m-4 {\n  margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n  margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n  margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n  margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n  margin-left: 1.5rem !important;\n}\n\n.m-5 {\n  margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n  margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n  margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n  margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n  margin-left: 3rem !important;\n}\n\n.p-0 {\n  padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n  padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n  padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n  padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n  padding-left: 0 !important;\n}\n\n.p-1 {\n  padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n  padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n  padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n  padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n  padding-left: 0.25rem !important;\n}\n\n.p-2 {\n  padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n  padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n  padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n  padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n  padding-left: 0.5rem !important;\n}\n\n.p-3 {\n  padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n  padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n  padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n  padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n  padding-left: 1rem !important;\n}\n\n.p-4 {\n  padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n  padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n  padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n  padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n  padding-left: 1.5rem !important;\n}\n\n.p-5 {\n  padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n  padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n  padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n  padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n  padding-left: 3rem !important;\n}\n\n.m-n1 {\n  margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n  margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n  margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n  margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n  margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n  margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n  margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n  margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n  margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n  margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n  margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n  margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n  margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n  margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n  margin-left: -1rem !important;\n}\n\n.m-n4 {\n  margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n  margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n  margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n  margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n  margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n  margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n  margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n  margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n  margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n  margin-left: -3rem !important;\n}\n\n.m-auto {\n  margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n  margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n  margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n  margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n  margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n  .m-sm-0 {\n    margin: 0 !important;\n  }\n  .mt-sm-0,\n  .my-sm-0 {\n    margin-top: 0 !important;\n  }\n  .mr-sm-0,\n  .mx-sm-0 {\n    margin-right: 0 !important;\n  }\n  .mb-sm-0,\n  .my-sm-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-sm-0,\n  .mx-sm-0 {\n    margin-left: 0 !important;\n  }\n  .m-sm-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-sm-1,\n  .my-sm-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-sm-1,\n  .mx-sm-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-sm-1,\n  .my-sm-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-sm-1,\n  .mx-sm-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-sm-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-sm-2,\n  .my-sm-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-sm-2,\n  .mx-sm-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-sm-2,\n  .my-sm-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-sm-2,\n  .mx-sm-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-sm-3 {\n    margin: 1rem !important;\n  }\n  .mt-sm-3,\n  .my-sm-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-sm-3,\n  .mx-sm-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-sm-3,\n  .my-sm-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-sm-3,\n  .mx-sm-3 {\n    margin-left: 1rem !important;\n  }\n  .m-sm-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-sm-4,\n  .my-sm-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-sm-4,\n  .mx-sm-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-sm-4,\n  .my-sm-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-sm-4,\n  .mx-sm-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-sm-5 {\n    margin: 3rem !important;\n  }\n  .mt-sm-5,\n  .my-sm-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-sm-5,\n  .mx-sm-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-sm-5,\n  .my-sm-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-sm-5,\n  .mx-sm-5 {\n    margin-left: 3rem !important;\n  }\n  .p-sm-0 {\n    padding: 0 !important;\n  }\n  .pt-sm-0,\n  .py-sm-0 {\n    padding-top: 0 !important;\n  }\n  .pr-sm-0,\n  .px-sm-0 {\n    padding-right: 0 !important;\n  }\n  .pb-sm-0,\n  .py-sm-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-sm-0,\n  .px-sm-0 {\n    padding-left: 0 !important;\n  }\n  .p-sm-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-sm-1,\n  .py-sm-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-sm-1,\n  .px-sm-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-sm-1,\n  .py-sm-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-sm-1,\n  .px-sm-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-sm-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-sm-2,\n  .py-sm-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-sm-2,\n  .px-sm-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-sm-2,\n  .py-sm-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-sm-2,\n  .px-sm-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-sm-3 {\n    padding: 1rem !important;\n  }\n  .pt-sm-3,\n  .py-sm-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-sm-3,\n  .px-sm-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-sm-3,\n  .py-sm-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-sm-3,\n  .px-sm-3 {\n    padding-left: 1rem !important;\n  }\n  .p-sm-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-sm-4,\n  .py-sm-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-sm-4,\n  .px-sm-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-sm-4,\n  .py-sm-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-sm-4,\n  .px-sm-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-sm-5 {\n    padding: 3rem !important;\n  }\n  .pt-sm-5,\n  .py-sm-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-sm-5,\n  .px-sm-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-sm-5,\n  .py-sm-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-sm-5,\n  .px-sm-5 {\n    padding-left: 3rem !important;\n  }\n  .m-sm-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-sm-n1,\n  .my-sm-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-sm-n1,\n  .mx-sm-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-sm-n1,\n  .my-sm-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-sm-n1,\n  .mx-sm-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-sm-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-sm-n2,\n  .my-sm-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-sm-n2,\n  .mx-sm-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-sm-n2,\n  .my-sm-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-sm-n2,\n  .mx-sm-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-sm-n3 {\n    margin: -1rem !important;\n  }\n  .mt-sm-n3,\n  .my-sm-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-sm-n3,\n  .mx-sm-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-sm-n3,\n  .my-sm-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-sm-n3,\n  .mx-sm-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-sm-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-sm-n4,\n  .my-sm-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-sm-n4,\n  .mx-sm-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-sm-n4,\n  .my-sm-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-sm-n4,\n  .mx-sm-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-sm-n5 {\n    margin: -3rem !important;\n  }\n  .mt-sm-n5,\n  .my-sm-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-sm-n5,\n  .mx-sm-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-sm-n5,\n  .my-sm-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-sm-n5,\n  .mx-sm-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-sm-auto {\n    margin: auto !important;\n  }\n  .mt-sm-auto,\n  .my-sm-auto {\n    margin-top: auto !important;\n  }\n  .mr-sm-auto,\n  .mx-sm-auto {\n    margin-right: auto !important;\n  }\n  .mb-sm-auto,\n  .my-sm-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-sm-auto,\n  .mx-sm-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .m-md-0 {\n    margin: 0 !important;\n  }\n  .mt-md-0,\n  .my-md-0 {\n    margin-top: 0 !important;\n  }\n  .mr-md-0,\n  .mx-md-0 {\n    margin-right: 0 !important;\n  }\n  .mb-md-0,\n  .my-md-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-md-0,\n  .mx-md-0 {\n    margin-left: 0 !important;\n  }\n  .m-md-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-md-1,\n  .my-md-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-md-1,\n  .mx-md-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-md-1,\n  .my-md-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-md-1,\n  .mx-md-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-md-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-md-2,\n  .my-md-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-md-2,\n  .mx-md-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-md-2,\n  .my-md-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-md-2,\n  .mx-md-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-md-3 {\n    margin: 1rem !important;\n  }\n  .mt-md-3,\n  .my-md-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-md-3,\n  .mx-md-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-md-3,\n  .my-md-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-md-3,\n  .mx-md-3 {\n    margin-left: 1rem !important;\n  }\n  .m-md-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-md-4,\n  .my-md-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-md-4,\n  .mx-md-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-md-4,\n  .my-md-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-md-4,\n  .mx-md-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-md-5 {\n    margin: 3rem !important;\n  }\n  .mt-md-5,\n  .my-md-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-md-5,\n  .mx-md-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-md-5,\n  .my-md-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-md-5,\n  .mx-md-5 {\n    margin-left: 3rem !important;\n  }\n  .p-md-0 {\n    padding: 0 !important;\n  }\n  .pt-md-0,\n  .py-md-0 {\n    padding-top: 0 !important;\n  }\n  .pr-md-0,\n  .px-md-0 {\n    padding-right: 0 !important;\n  }\n  .pb-md-0,\n  .py-md-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-md-0,\n  .px-md-0 {\n    padding-left: 0 !important;\n  }\n  .p-md-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-md-1,\n  .py-md-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-md-1,\n  .px-md-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-md-1,\n  .py-md-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-md-1,\n  .px-md-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-md-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-md-2,\n  .py-md-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-md-2,\n  .px-md-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-md-2,\n  .py-md-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-md-2,\n  .px-md-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-md-3 {\n    padding: 1rem !important;\n  }\n  .pt-md-3,\n  .py-md-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-md-3,\n  .px-md-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-md-3,\n  .py-md-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-md-3,\n  .px-md-3 {\n    padding-left: 1rem !important;\n  }\n  .p-md-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-md-4,\n  .py-md-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-md-4,\n  .px-md-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-md-4,\n  .py-md-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-md-4,\n  .px-md-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-md-5 {\n    padding: 3rem !important;\n  }\n  .pt-md-5,\n  .py-md-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-md-5,\n  .px-md-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-md-5,\n  .py-md-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-md-5,\n  .px-md-5 {\n    padding-left: 3rem !important;\n  }\n  .m-md-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-md-n1,\n  .my-md-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-md-n1,\n  .mx-md-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-md-n1,\n  .my-md-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-md-n1,\n  .mx-md-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-md-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-md-n2,\n  .my-md-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-md-n2,\n  .mx-md-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-md-n2,\n  .my-md-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-md-n2,\n  .mx-md-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-md-n3 {\n    margin: -1rem !important;\n  }\n  .mt-md-n3,\n  .my-md-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-md-n3,\n  .mx-md-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-md-n3,\n  .my-md-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-md-n3,\n  .mx-md-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-md-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-md-n4,\n  .my-md-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-md-n4,\n  .mx-md-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-md-n4,\n  .my-md-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-md-n4,\n  .mx-md-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-md-n5 {\n    margin: -3rem !important;\n  }\n  .mt-md-n5,\n  .my-md-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-md-n5,\n  .mx-md-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-md-n5,\n  .my-md-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-md-n5,\n  .mx-md-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-md-auto {\n    margin: auto !important;\n  }\n  .mt-md-auto,\n  .my-md-auto {\n    margin-top: auto !important;\n  }\n  .mr-md-auto,\n  .mx-md-auto {\n    margin-right: auto !important;\n  }\n  .mb-md-auto,\n  .my-md-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-md-auto,\n  .mx-md-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .m-lg-0 {\n    margin: 0 !important;\n  }\n  .mt-lg-0,\n  .my-lg-0 {\n    margin-top: 0 !important;\n  }\n  .mr-lg-0,\n  .mx-lg-0 {\n    margin-right: 0 !important;\n  }\n  .mb-lg-0,\n  .my-lg-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-lg-0,\n  .mx-lg-0 {\n    margin-left: 0 !important;\n  }\n  .m-lg-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-lg-1,\n  .my-lg-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-lg-1,\n  .mx-lg-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-lg-1,\n  .my-lg-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-lg-1,\n  .mx-lg-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-lg-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-lg-2,\n  .my-lg-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-lg-2,\n  .mx-lg-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-lg-2,\n  .my-lg-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-lg-2,\n  .mx-lg-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-lg-3 {\n    margin: 1rem !important;\n  }\n  .mt-lg-3,\n  .my-lg-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-lg-3,\n  .mx-lg-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-lg-3,\n  .my-lg-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-lg-3,\n  .mx-lg-3 {\n    margin-left: 1rem !important;\n  }\n  .m-lg-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-lg-4,\n  .my-lg-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-lg-4,\n  .mx-lg-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-lg-4,\n  .my-lg-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-lg-4,\n  .mx-lg-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-lg-5 {\n    margin: 3rem !important;\n  }\n  .mt-lg-5,\n  .my-lg-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-lg-5,\n  .mx-lg-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-lg-5,\n  .my-lg-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-lg-5,\n  .mx-lg-5 {\n    margin-left: 3rem !important;\n  }\n  .p-lg-0 {\n    padding: 0 !important;\n  }\n  .pt-lg-0,\n  .py-lg-0 {\n    padding-top: 0 !important;\n  }\n  .pr-lg-0,\n  .px-lg-0 {\n    padding-right: 0 !important;\n  }\n  .pb-lg-0,\n  .py-lg-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-lg-0,\n  .px-lg-0 {\n    padding-left: 0 !important;\n  }\n  .p-lg-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-lg-1,\n  .py-lg-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-lg-1,\n  .px-lg-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-lg-1,\n  .py-lg-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-lg-1,\n  .px-lg-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-lg-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-lg-2,\n  .py-lg-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-lg-2,\n  .px-lg-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-lg-2,\n  .py-lg-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-lg-2,\n  .px-lg-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-lg-3 {\n    padding: 1rem !important;\n  }\n  .pt-lg-3,\n  .py-lg-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-lg-3,\n  .px-lg-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-lg-3,\n  .py-lg-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-lg-3,\n  .px-lg-3 {\n    padding-left: 1rem !important;\n  }\n  .p-lg-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-lg-4,\n  .py-lg-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-lg-4,\n  .px-lg-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-lg-4,\n  .py-lg-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-lg-4,\n  .px-lg-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-lg-5 {\n    padding: 3rem !important;\n  }\n  .pt-lg-5,\n  .py-lg-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-lg-5,\n  .px-lg-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-lg-5,\n  .py-lg-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-lg-5,\n  .px-lg-5 {\n    padding-left: 3rem !important;\n  }\n  .m-lg-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-lg-n1,\n  .my-lg-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-lg-n1,\n  .mx-lg-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-lg-n1,\n  .my-lg-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-lg-n1,\n  .mx-lg-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-lg-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-lg-n2,\n  .my-lg-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-lg-n2,\n  .mx-lg-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-lg-n2,\n  .my-lg-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-lg-n2,\n  .mx-lg-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-lg-n3 {\n    margin: -1rem !important;\n  }\n  .mt-lg-n3,\n  .my-lg-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-lg-n3,\n  .mx-lg-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-lg-n3,\n  .my-lg-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-lg-n3,\n  .mx-lg-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-lg-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-lg-n4,\n  .my-lg-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-lg-n4,\n  .mx-lg-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-lg-n4,\n  .my-lg-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-lg-n4,\n  .mx-lg-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-lg-n5 {\n    margin: -3rem !important;\n  }\n  .mt-lg-n5,\n  .my-lg-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-lg-n5,\n  .mx-lg-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-lg-n5,\n  .my-lg-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-lg-n5,\n  .mx-lg-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-lg-auto {\n    margin: auto !important;\n  }\n  .mt-lg-auto,\n  .my-lg-auto {\n    margin-top: auto !important;\n  }\n  .mr-lg-auto,\n  .mx-lg-auto {\n    margin-right: auto !important;\n  }\n  .mb-lg-auto,\n  .my-lg-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-lg-auto,\n  .mx-lg-auto {\n    margin-left: auto !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .m-xl-0 {\n    margin: 0 !important;\n  }\n  .mt-xl-0,\n  .my-xl-0 {\n    margin-top: 0 !important;\n  }\n  .mr-xl-0,\n  .mx-xl-0 {\n    margin-right: 0 !important;\n  }\n  .mb-xl-0,\n  .my-xl-0 {\n    margin-bottom: 0 !important;\n  }\n  .ml-xl-0,\n  .mx-xl-0 {\n    margin-left: 0 !important;\n  }\n  .m-xl-1 {\n    margin: 0.25rem !important;\n  }\n  .mt-xl-1,\n  .my-xl-1 {\n    margin-top: 0.25rem !important;\n  }\n  .mr-xl-1,\n  .mx-xl-1 {\n    margin-right: 0.25rem !important;\n  }\n  .mb-xl-1,\n  .my-xl-1 {\n    margin-bottom: 0.25rem !important;\n  }\n  .ml-xl-1,\n  .mx-xl-1 {\n    margin-left: 0.25rem !important;\n  }\n  .m-xl-2 {\n    margin: 0.5rem !important;\n  }\n  .mt-xl-2,\n  .my-xl-2 {\n    margin-top: 0.5rem !important;\n  }\n  .mr-xl-2,\n  .mx-xl-2 {\n    margin-right: 0.5rem !important;\n  }\n  .mb-xl-2,\n  .my-xl-2 {\n    margin-bottom: 0.5rem !important;\n  }\n  .ml-xl-2,\n  .mx-xl-2 {\n    margin-left: 0.5rem !important;\n  }\n  .m-xl-3 {\n    margin: 1rem !important;\n  }\n  .mt-xl-3,\n  .my-xl-3 {\n    margin-top: 1rem !important;\n  }\n  .mr-xl-3,\n  .mx-xl-3 {\n    margin-right: 1rem !important;\n  }\n  .mb-xl-3,\n  .my-xl-3 {\n    margin-bottom: 1rem !important;\n  }\n  .ml-xl-3,\n  .mx-xl-3 {\n    margin-left: 1rem !important;\n  }\n  .m-xl-4 {\n    margin: 1.5rem !important;\n  }\n  .mt-xl-4,\n  .my-xl-4 {\n    margin-top: 1.5rem !important;\n  }\n  .mr-xl-4,\n  .mx-xl-4 {\n    margin-right: 1.5rem !important;\n  }\n  .mb-xl-4,\n  .my-xl-4 {\n    margin-bottom: 1.5rem !important;\n  }\n  .ml-xl-4,\n  .mx-xl-4 {\n    margin-left: 1.5rem !important;\n  }\n  .m-xl-5 {\n    margin: 3rem !important;\n  }\n  .mt-xl-5,\n  .my-xl-5 {\n    margin-top: 3rem !important;\n  }\n  .mr-xl-5,\n  .mx-xl-5 {\n    margin-right: 3rem !important;\n  }\n  .mb-xl-5,\n  .my-xl-5 {\n    margin-bottom: 3rem !important;\n  }\n  .ml-xl-5,\n  .mx-xl-5 {\n    margin-left: 3rem !important;\n  }\n  .p-xl-0 {\n    padding: 0 !important;\n  }\n  .pt-xl-0,\n  .py-xl-0 {\n    padding-top: 0 !important;\n  }\n  .pr-xl-0,\n  .px-xl-0 {\n    padding-right: 0 !important;\n  }\n  .pb-xl-0,\n  .py-xl-0 {\n    padding-bottom: 0 !important;\n  }\n  .pl-xl-0,\n  .px-xl-0 {\n    padding-left: 0 !important;\n  }\n  .p-xl-1 {\n    padding: 0.25rem !important;\n  }\n  .pt-xl-1,\n  .py-xl-1 {\n    padding-top: 0.25rem !important;\n  }\n  .pr-xl-1,\n  .px-xl-1 {\n    padding-right: 0.25rem !important;\n  }\n  .pb-xl-1,\n  .py-xl-1 {\n    padding-bottom: 0.25rem !important;\n  }\n  .pl-xl-1,\n  .px-xl-1 {\n    padding-left: 0.25rem !important;\n  }\n  .p-xl-2 {\n    padding: 0.5rem !important;\n  }\n  .pt-xl-2,\n  .py-xl-2 {\n    padding-top: 0.5rem !important;\n  }\n  .pr-xl-2,\n  .px-xl-2 {\n    padding-right: 0.5rem !important;\n  }\n  .pb-xl-2,\n  .py-xl-2 {\n    padding-bottom: 0.5rem !important;\n  }\n  .pl-xl-2,\n  .px-xl-2 {\n    padding-left: 0.5rem !important;\n  }\n  .p-xl-3 {\n    padding: 1rem !important;\n  }\n  .pt-xl-3,\n  .py-xl-3 {\n    padding-top: 1rem !important;\n  }\n  .pr-xl-3,\n  .px-xl-3 {\n    padding-right: 1rem !important;\n  }\n  .pb-xl-3,\n  .py-xl-3 {\n    padding-bottom: 1rem !important;\n  }\n  .pl-xl-3,\n  .px-xl-3 {\n    padding-left: 1rem !important;\n  }\n  .p-xl-4 {\n    padding: 1.5rem !important;\n  }\n  .pt-xl-4,\n  .py-xl-4 {\n    padding-top: 1.5rem !important;\n  }\n  .pr-xl-4,\n  .px-xl-4 {\n    padding-right: 1.5rem !important;\n  }\n  .pb-xl-4,\n  .py-xl-4 {\n    padding-bottom: 1.5rem !important;\n  }\n  .pl-xl-4,\n  .px-xl-4 {\n    padding-left: 1.5rem !important;\n  }\n  .p-xl-5 {\n    padding: 3rem !important;\n  }\n  .pt-xl-5,\n  .py-xl-5 {\n    padding-top: 3rem !important;\n  }\n  .pr-xl-5,\n  .px-xl-5 {\n    padding-right: 3rem !important;\n  }\n  .pb-xl-5,\n  .py-xl-5 {\n    padding-bottom: 3rem !important;\n  }\n  .pl-xl-5,\n  .px-xl-5 {\n    padding-left: 3rem !important;\n  }\n  .m-xl-n1 {\n    margin: -0.25rem !important;\n  }\n  .mt-xl-n1,\n  .my-xl-n1 {\n    margin-top: -0.25rem !important;\n  }\n  .mr-xl-n1,\n  .mx-xl-n1 {\n    margin-right: -0.25rem !important;\n  }\n  .mb-xl-n1,\n  .my-xl-n1 {\n    margin-bottom: -0.25rem !important;\n  }\n  .ml-xl-n1,\n  .mx-xl-n1 {\n    margin-left: -0.25rem !important;\n  }\n  .m-xl-n2 {\n    margin: -0.5rem !important;\n  }\n  .mt-xl-n2,\n  .my-xl-n2 {\n    margin-top: -0.5rem !important;\n  }\n  .mr-xl-n2,\n  .mx-xl-n2 {\n    margin-right: -0.5rem !important;\n  }\n  .mb-xl-n2,\n  .my-xl-n2 {\n    margin-bottom: -0.5rem !important;\n  }\n  .ml-xl-n2,\n  .mx-xl-n2 {\n    margin-left: -0.5rem !important;\n  }\n  .m-xl-n3 {\n    margin: -1rem !important;\n  }\n  .mt-xl-n3,\n  .my-xl-n3 {\n    margin-top: -1rem !important;\n  }\n  .mr-xl-n3,\n  .mx-xl-n3 {\n    margin-right: -1rem !important;\n  }\n  .mb-xl-n3,\n  .my-xl-n3 {\n    margin-bottom: -1rem !important;\n  }\n  .ml-xl-n3,\n  .mx-xl-n3 {\n    margin-left: -1rem !important;\n  }\n  .m-xl-n4 {\n    margin: -1.5rem !important;\n  }\n  .mt-xl-n4,\n  .my-xl-n4 {\n    margin-top: -1.5rem !important;\n  }\n  .mr-xl-n4,\n  .mx-xl-n4 {\n    margin-right: -1.5rem !important;\n  }\n  .mb-xl-n4,\n  .my-xl-n4 {\n    margin-bottom: -1.5rem !important;\n  }\n  .ml-xl-n4,\n  .mx-xl-n4 {\n    margin-left: -1.5rem !important;\n  }\n  .m-xl-n5 {\n    margin: -3rem !important;\n  }\n  .mt-xl-n5,\n  .my-xl-n5 {\n    margin-top: -3rem !important;\n  }\n  .mr-xl-n5,\n  .mx-xl-n5 {\n    margin-right: -3rem !important;\n  }\n  .mb-xl-n5,\n  .my-xl-n5 {\n    margin-bottom: -3rem !important;\n  }\n  .ml-xl-n5,\n  .mx-xl-n5 {\n    margin-left: -3rem !important;\n  }\n  .m-xl-auto {\n    margin: auto !important;\n  }\n  .mt-xl-auto,\n  .my-xl-auto {\n    margin-top: auto !important;\n  }\n  .mr-xl-auto,\n  .mx-xl-auto {\n    margin-right: auto !important;\n  }\n  .mb-xl-auto,\n  .my-xl-auto {\n    margin-bottom: auto !important;\n  }\n  .ml-xl-auto,\n  .mx-xl-auto {\n    margin-left: auto !important;\n  }\n}\n\n.text-monospace {\n  font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n  text-align: justify !important;\n}\n\n.text-wrap {\n  white-space: normal !important;\n}\n\n.text-nowrap {\n  white-space: nowrap !important;\n}\n\n.text-truncate {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n.text-left {\n  text-align: left !important;\n}\n\n.text-right {\n  text-align: right !important;\n}\n\n.text-center {\n  text-align: center !important;\n}\n\n@media (min-width: 576px) {\n  .text-sm-left {\n    text-align: left !important;\n  }\n  .text-sm-right {\n    text-align: right !important;\n  }\n  .text-sm-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 768px) {\n  .text-md-left {\n    text-align: left !important;\n  }\n  .text-md-right {\n    text-align: right !important;\n  }\n  .text-md-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 992px) {\n  .text-lg-left {\n    text-align: left !important;\n  }\n  .text-lg-right {\n    text-align: right !important;\n  }\n  .text-lg-center {\n    text-align: center !important;\n  }\n}\n\n@media (min-width: 1200px) {\n  .text-xl-left {\n    text-align: left !important;\n  }\n  .text-xl-right {\n    text-align: right !important;\n  }\n  .text-xl-center {\n    text-align: center !important;\n  }\n}\n\n.text-lowercase {\n  text-transform: lowercase !important;\n}\n\n.text-uppercase {\n  text-transform: uppercase !important;\n}\n\n.text-capitalize {\n  text-transform: capitalize !important;\n}\n\n.font-weight-light {\n  font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n  font-weight: lighter !important;\n}\n\n.font-weight-normal {\n  font-weight: 400 !important;\n}\n\n.font-weight-bold {\n  font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n  font-weight: bolder !important;\n}\n\n.font-italic {\n  font-style: italic !important;\n}\n\n.text-white {\n  color: #fff !important;\n}\n\n.text-primary {\n  color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n  color: #0056b3 !important;\n}\n\n.text-secondary {\n  color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n  color: #494f54 !important;\n}\n\n.text-success {\n  color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n  color: #19692c !important;\n}\n\n.text-info {\n  color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n  color: #0f6674 !important;\n}\n\n.text-warning {\n  color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n  color: #ba8b00 !important;\n}\n\n.text-danger {\n  color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n  color: #a71d2a !important;\n}\n\n.text-light {\n  color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n  color: #cbd3da !important;\n}\n\n.text-dark {\n  color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n  color: #121416 !important;\n}\n\n.text-body {\n  color: #212529 !important;\n}\n\n.text-muted {\n  color: #6c757d !important;\n}\n\n.text-black-50 {\n  color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n  color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n.text-decoration-none {\n  text-decoration: none !important;\n}\n\n.text-break {\n  word-break: break-word !important;\n  overflow-wrap: break-word !important;\n}\n\n.text-reset {\n  color: inherit !important;\n}\n\n.visible {\n  visibility: visible !important;\n}\n\n.invisible {\n  visibility: hidden !important;\n}\n\n@media print {\n  *,\n  *::before,\n  *::after {\n    text-shadow: none !important;\n    box-shadow: none !important;\n  }\n  a:not(.btn) {\n    text-decoration: underline;\n  }\n  abbr[title]::after {\n    content: \" (\" attr(title) \")\";\n  }\n  pre {\n    white-space: pre-wrap !important;\n  }\n  pre,\n  blockquote {\n    border: 1px solid #adb5bd;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  @page {\n    size: a3;\n  }\n  body {\n    min-width: 992px !important;\n  }\n  .container {\n    min-width: 992px !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .badge {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #dee2e6 !important;\n  }\n  .table-dark {\n    color: inherit;\n  }\n  .table-dark th,\n  .table-dark td,\n  .table-dark thead th,\n  .table-dark tbody + tbody {\n    border-color: #dee2e6;\n  }\n  .table .thead-dark th {\n    color: inherit;\n    border-color: #dee2e6;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/bootstrap/js/bootstrap.bundle.js",
    "content": "/*!\n  * Bootstrap v4.3.1 (https://getbootstrap.com/)\n  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :\n  (global = global || self, factory(global.bootstrap = {}, global.jQuery));\n}(this, function (exports, $) { 'use strict';\n\n  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined; // eslint-disable-line no-undefined\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $(this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator;\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (err) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $(element).css('transition-duration');\n      var transitionDelay = $(element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END);\n    },\n    // TODO: Remove in v5\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    }\n  };\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.3.1';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var Selector = {\n    DISMISS: '[data-dismiss=\"alert\"]'\n  };\n  var Event = {\n    CLOSE: \"close\" + EVENT_KEY,\n    CLOSED: \"closed\" + EVENT_KEY,\n    CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n  };\n  var ClassName = {\n    ALERT: 'alert',\n    FADE: 'fade',\n    SHOW: 'show'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Alert =\n  /*#__PURE__*/\n  function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $(element).closest(\".\" + ClassName.ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $.Event(Event.CLOSE);\n      $(element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $(element).removeClass(ClassName.SHOW);\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $(element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $(element).detach().trigger(Event.CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $(this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Alert._jQueryInterface;\n  $.fn[NAME].Constructor = Alert;\n\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.3.1';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];\n  var ClassName$1 = {\n    ACTIVE: 'active',\n    BUTTON: 'btn',\n    FOCUS: 'focus'\n  };\n  var Selector$1 = {\n    DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n    DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n    INPUT: 'input:not([type=\"hidden\"])',\n    ACTIVE: '.active',\n    BUTTON: '.btn'\n  };\n  var Event$1 = {\n    CLICK_DATA_API: \"click\" + EVENT_KEY$1 + DATA_API_KEY$1,\n    FOCUS_BLUR_DATA_API: \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1)\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Button =\n  /*#__PURE__*/\n  function () {\n    function Button(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(Selector$1.INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(Selector$1.ACTIVE);\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName$1.ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n              return;\n            }\n\n            input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);\n            $(input).trigger('change');\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName$1.ACTIVE);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $(this).data(DATA_KEY$1, data);\n        }\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n    event.preventDefault();\n    var button = event.target;\n\n    if (!$(button).hasClass(ClassName$1.BUTTON)) {\n      button = $(button).closest(Selector$1.BUTTON);\n    }\n\n    Button._jQueryInterface.call($(button), 'toggle');\n  }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n    var button = $(event.target).closest(Selector$1.BUTTON)[0];\n    $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$1] = Button._jQueryInterface;\n  $.fn[NAME$1].Constructor = Button;\n\n  $.fn[NAME$1].noConflict = function () {\n    $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.3.1';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var Direction = {\n    NEXT: 'next',\n    PREV: 'prev',\n    LEFT: 'left',\n    RIGHT: 'right'\n  };\n  var Event$2 = {\n    SLIDE: \"slide\" + EVENT_KEY$2,\n    SLID: \"slid\" + EVENT_KEY$2,\n    KEYDOWN: \"keydown\" + EVENT_KEY$2,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$2,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$2,\n    TOUCHSTART: \"touchstart\" + EVENT_KEY$2,\n    TOUCHMOVE: \"touchmove\" + EVENT_KEY$2,\n    TOUCHEND: \"touchend\" + EVENT_KEY$2,\n    POINTERDOWN: \"pointerdown\" + EVENT_KEY$2,\n    POINTERUP: \"pointerup\" + EVENT_KEY$2,\n    DRAG_START: \"dragstart\" + EVENT_KEY$2,\n    LOAD_DATA_API: \"load\" + EVENT_KEY$2 + DATA_API_KEY$2,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$2 + DATA_API_KEY$2\n  };\n  var ClassName$2 = {\n    CAROUSEL: 'carousel',\n    ACTIVE: 'active',\n    SLIDE: 'slide',\n    RIGHT: 'carousel-item-right',\n    LEFT: 'carousel-item-left',\n    NEXT: 'carousel-item-next',\n    PREV: 'carousel-item-prev',\n    ITEM: 'carousel-item',\n    POINTER_EVENT: 'pointer-event'\n  };\n  var Selector$2 = {\n    ACTIVE: '.active',\n    ACTIVE_ITEM: '.active.carousel-item',\n    ITEM: '.carousel-item',\n    ITEM_IMG: '.carousel-item img',\n    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n    INDICATORS: '.carousel-indicators',\n    DATA_SLIDE: '[data-slide], [data-slide-to]',\n    DATA_RIDE: '[data-ride=\"carousel\"]'\n  };\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Carousel =\n  /*#__PURE__*/\n  function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(Selector$2.NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event$2.SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $(this._element).off(EVENT_KEY$2);\n      $.removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $(this._element).on(Event$2.KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element).on(Event$2.MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(Event$2.MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $(this._element).on(Event$2.POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $(this._element).on(Event$2.POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(ClassName$2.POINTER_EVENT);\n      } else {\n        $(this._element).on(Event$2.TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $(this._element).on(Event$2.TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $(this._element).on(Event$2.TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n\n        default:\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === Direction.NEXT;\n      var isPrevDirection = direction === Direction.PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === Direction.PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));\n\n      var slideEvent = $.Event(Event$2.SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $(this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));\n        $(indicators).removeClass(ClassName$2.ACTIVE);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName$2.ACTIVE);\n        }\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName$2.LEFT;\n        orderClassName = ClassName$2.NEXT;\n        eventDirectionName = Direction.LEFT;\n      } else {\n        directionalClassName = ClassName$2.RIGHT;\n        orderClassName = ClassName$2.PREV;\n        eventDirectionName = Direction.RIGHT;\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      var slidEvent = $.Event(Event$2.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($(this._element).hasClass(ClassName$2.SLIDE)) {\n        $(nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $(activeElement).addClass(directionalClassName);\n        $(nextElement).addClass(directionalClassName);\n        var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);\n\n        if (nextElementInterval) {\n          this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n          this._config.interval = nextElementInterval;\n        } else {\n          this._config.interval = this._config.defaultInterval || this._config.interval;\n        }\n\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $(activeElement).one(Util.TRANSITION_END, function () {\n          $(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName$2.ACTIVE);\n          $(activeElement).removeClass(ClassName$2.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $(_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $(activeElement).removeClass(ClassName$2.ACTIVE);\n        $(nextElement).addClass(ClassName$2.ACTIVE);\n        this._isSliding = false;\n        $(this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$2);\n\n        var _config = _objectSpread({}, Default, $(this).data());\n\n        if (typeof config === 'object') {\n          _config = _objectSpread({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $(this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $(selector)[0];\n\n      if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {\n        return;\n      }\n\n      var config = _objectSpread({}, $(target).data(), $(this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($(target), config);\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);\n  $(window).on(Event$2.LOAD_DATA_API, function () {\n    var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $(carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$2] = Carousel._jQueryInterface;\n  $.fn[NAME$2].Constructor = Carousel;\n\n  $.fn[NAME$2].noConflict = function () {\n    $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.3.1';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var Event$3 = {\n    SHOW: \"show\" + EVENT_KEY$3,\n    SHOWN: \"shown\" + EVENT_KEY$3,\n    HIDE: \"hide\" + EVENT_KEY$3,\n    HIDDEN: \"hidden\" + EVENT_KEY$3,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$3 + DATA_API_KEY$3\n  };\n  var ClassName$3 = {\n    SHOW: 'show',\n    COLLAPSE: 'collapse',\n    COLLAPSING: 'collapsing',\n    COLLAPSED: 'collapsed'\n  };\n  var Dimension = {\n    WIDTH: 'width',\n    HEIGHT: 'height'\n  };\n  var Selector$3 = {\n    ACTIVES: '.show, .collapsing',\n    DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Collapse =\n  /*#__PURE__*/\n  function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($(this._element).hasClass(ClassName$3.SHOW)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(ClassName$3.COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $.Event(Event$3.SHOW);\n      $(this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $(actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $(_this._element).trigger(Event$3.SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {\n        return;\n      }\n\n      var startEvent = $.Event(Event$3.HIDE);\n      $(this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(ClassName$3.SHOW)) {\n              $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $(children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $(element).hasClass(ClassName$3.SHOW);\n\n      if (triggerArray.length) {\n        $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY$3);\n\n        var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $this.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $(this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $(selectors).each(function () {\n      var $target = $(this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$3] = Collapse._jQueryInterface;\n  $.fn[NAME$3].Constructor = Collapse;\n\n  $.fn[NAME$3].noConflict = function () {\n    $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**!\n   * @fileOverview Kickass library to create and place poppers near their reference elements.\n   * @version 1.14.7\n   * @license\n   * Copyright (c) 2016 Federico Zivolo and contributors\n   *\n   * Permission is hereby granted, free of charge, to any person obtaining a copy\n   * of this software and associated documentation files (the \"Software\"), to deal\n   * in the Software without restriction, including without limitation the rights\n   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n   * copies of the Software, and to permit persons to whom the Software is\n   * furnished to do so, subject to the following conditions:\n   *\n   * The above copyright notice and this permission notice shall be included in all\n   * copies or substantial portions of the Software.\n   *\n   * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n   * SOFTWARE.\n   */\n  var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n  var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n  var timeoutDuration = 0;\n  for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n    if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n      timeoutDuration = 1;\n      break;\n    }\n  }\n\n  function microtaskDebounce(fn) {\n    var called = false;\n    return function () {\n      if (called) {\n        return;\n      }\n      called = true;\n      window.Promise.resolve().then(function () {\n        called = false;\n        fn();\n      });\n    };\n  }\n\n  function taskDebounce(fn) {\n    var scheduled = false;\n    return function () {\n      if (!scheduled) {\n        scheduled = true;\n        setTimeout(function () {\n          scheduled = false;\n          fn();\n        }, timeoutDuration);\n      }\n    };\n  }\n\n  var supportsMicroTasks = isBrowser && window.Promise;\n\n  /**\n  * Create a debounced version of a method, that's asynchronously deferred\n  * but called in the minimum time possible.\n  *\n  * @method\n  * @memberof Popper.Utils\n  * @argument {Function} fn\n  * @returns {Function}\n  */\n  var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n  /**\n   * Check if the given variable is a function\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Any} functionToCheck - variable to check\n   * @returns {Boolean} answer to: is a function?\n   */\n  function isFunction(functionToCheck) {\n    var getType = {};\n    return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n  }\n\n  /**\n   * Get CSS computed property of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Eement} element\n   * @argument {String} property\n   */\n  function getStyleComputedProperty(element, property) {\n    if (element.nodeType !== 1) {\n      return [];\n    }\n    // NOTE: 1 DOM access here\n    var window = element.ownerDocument.defaultView;\n    var css = window.getComputedStyle(element, null);\n    return property ? css[property] : css;\n  }\n\n  /**\n   * Returns the parentNode or the host of the element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} parent\n   */\n  function getParentNode(element) {\n    if (element.nodeName === 'HTML') {\n      return element;\n    }\n    return element.parentNode || element.host;\n  }\n\n  /**\n   * Returns the scrolling parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} scroll parent\n   */\n  function getScrollParent(element) {\n    // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n    if (!element) {\n      return document.body;\n    }\n\n    switch (element.nodeName) {\n      case 'HTML':\n      case 'BODY':\n        return element.ownerDocument.body;\n      case '#document':\n        return element.body;\n    }\n\n    // Firefox want us to check `-x` and `-y` variations as well\n\n    var _getStyleComputedProp = getStyleComputedProperty(element),\n        overflow = _getStyleComputedProp.overflow,\n        overflowX = _getStyleComputedProp.overflowX,\n        overflowY = _getStyleComputedProp.overflowY;\n\n    if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n      return element;\n    }\n\n    return getScrollParent(getParentNode(element));\n  }\n\n  var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\n  var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n  /**\n   * Determines if the browser is Internet Explorer\n   * @method\n   * @memberof Popper.Utils\n   * @param {Number} version to check\n   * @returns {Boolean} isIE\n   */\n  function isIE(version) {\n    if (version === 11) {\n      return isIE11;\n    }\n    if (version === 10) {\n      return isIE10;\n    }\n    return isIE11 || isIE10;\n  }\n\n  /**\n   * Returns the offset parent of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} offset parent\n   */\n  function getOffsetParent(element) {\n    if (!element) {\n      return document.documentElement;\n    }\n\n    var noOffsetParent = isIE(10) ? document.body : null;\n\n    // NOTE: 1 DOM access here\n    var offsetParent = element.offsetParent || null;\n    // Skip hidden elements which don't have an offsetParent\n    while (offsetParent === noOffsetParent && element.nextElementSibling) {\n      offsetParent = (element = element.nextElementSibling).offsetParent;\n    }\n\n    var nodeName = offsetParent && offsetParent.nodeName;\n\n    if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n      return element ? element.ownerDocument.documentElement : document.documentElement;\n    }\n\n    // .offsetParent will return the closest TH, TD or TABLE in case\n    // no offsetParent is present, I hate this job...\n    if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n      return getOffsetParent(offsetParent);\n    }\n\n    return offsetParent;\n  }\n\n  function isOffsetContainer(element) {\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY') {\n      return false;\n    }\n    return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n  }\n\n  /**\n   * Finds the root node (document, shadowDOM root) of the given element\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} node\n   * @returns {Element} root node\n   */\n  function getRoot(node) {\n    if (node.parentNode !== null) {\n      return getRoot(node.parentNode);\n    }\n\n    return node;\n  }\n\n  /**\n   * Finds the offset parent common to the two provided nodes\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element1\n   * @argument {Element} element2\n   * @returns {Element} common offset parent\n   */\n  function findCommonOffsetParent(element1, element2) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n      return document.documentElement;\n    }\n\n    // Here we make sure to give as \"start\" the element that comes first in the DOM\n    var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n    var start = order ? element1 : element2;\n    var end = order ? element2 : element1;\n\n    // Get common ancestor container\n    var range = document.createRange();\n    range.setStart(start, 0);\n    range.setEnd(end, 0);\n    var commonAncestorContainer = range.commonAncestorContainer;\n\n    // Both nodes are inside #document\n\n    if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n      if (isOffsetContainer(commonAncestorContainer)) {\n        return commonAncestorContainer;\n      }\n\n      return getOffsetParent(commonAncestorContainer);\n    }\n\n    // one of the nodes is inside shadowDOM, find which one\n    var element1root = getRoot(element1);\n    if (element1root.host) {\n      return findCommonOffsetParent(element1root.host, element2);\n    } else {\n      return findCommonOffsetParent(element1, getRoot(element2).host);\n    }\n  }\n\n  /**\n   * Gets the scroll value of the given element in the given side (top and left)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {String} side `top` or `left`\n   * @returns {number} amount of scrolled pixels\n   */\n  function getScroll(element) {\n    var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n    var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n    var nodeName = element.nodeName;\n\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      var html = element.ownerDocument.documentElement;\n      var scrollingElement = element.ownerDocument.scrollingElement || html;\n      return scrollingElement[upperSide];\n    }\n\n    return element[upperSide];\n  }\n\n  /*\n   * Sum or subtract the element scroll values (left and top) from a given rect object\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} rect - Rect object you want to change\n   * @param {HTMLElement} element - The element from the function reads the scroll values\n   * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n   * @return {Object} rect - The modifier rect object\n   */\n  function includeScroll(rect, element) {\n    var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var scrollTop = getScroll(element, 'top');\n    var scrollLeft = getScroll(element, 'left');\n    var modifier = subtract ? -1 : 1;\n    rect.top += scrollTop * modifier;\n    rect.bottom += scrollTop * modifier;\n    rect.left += scrollLeft * modifier;\n    rect.right += scrollLeft * modifier;\n    return rect;\n  }\n\n  /*\n   * Helper to detect borders of a given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {CSSStyleDeclaration} styles\n   * Result of `getStyleComputedProperty` on the given element\n   * @param {String} axis - `x` or `y`\n   * @return {number} borders - The borders size of the given axis\n   */\n\n  function getBordersSize(styles, axis) {\n    var sideA = axis === 'x' ? 'Left' : 'Top';\n    var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n    return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n  }\n\n  function getSize(axis, body, html, computedStyle) {\n    return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n  }\n\n  function getWindowSizes(document) {\n    var body = document.body;\n    var html = document.documentElement;\n    var computedStyle = isIE(10) && getComputedStyle(html);\n\n    return {\n      height: getSize('Height', body, html, computedStyle),\n      width: getSize('Width', body, html, computedStyle)\n    };\n  }\n\n  var classCallCheck = function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  };\n\n  var createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n\n\n\n\n  var defineProperty = function (obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  };\n\n  var _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  /**\n   * Given element offsets, generate an output similar to getBoundingClientRect\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} offsets\n   * @returns {Object} ClientRect like output\n   */\n  function getClientRect(offsets) {\n    return _extends({}, offsets, {\n      right: offsets.left + offsets.width,\n      bottom: offsets.top + offsets.height\n    });\n  }\n\n  /**\n   * Get bounding client rect of given element\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} element\n   * @return {Object} client rect\n   */\n  function getBoundingClientRect(element) {\n    var rect = {};\n\n    // IE10 10 FIX: Please, don't ask, the element isn't\n    // considered in DOM in some circumstances...\n    // This isn't reproducible in IE10 compatibility mode of IE11\n    try {\n      if (isIE(10)) {\n        rect = element.getBoundingClientRect();\n        var scrollTop = getScroll(element, 'top');\n        var scrollLeft = getScroll(element, 'left');\n        rect.top += scrollTop;\n        rect.left += scrollLeft;\n        rect.bottom += scrollTop;\n        rect.right += scrollLeft;\n      } else {\n        rect = element.getBoundingClientRect();\n      }\n    } catch (e) {}\n\n    var result = {\n      left: rect.left,\n      top: rect.top,\n      width: rect.right - rect.left,\n      height: rect.bottom - rect.top\n    };\n\n    // subtract scrollbar size from sizes\n    var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n    var width = sizes.width || element.clientWidth || result.right - result.left;\n    var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n    var horizScrollbar = element.offsetWidth - width;\n    var vertScrollbar = element.offsetHeight - height;\n\n    // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n    // we make this check conditional for performance reasons\n    if (horizScrollbar || vertScrollbar) {\n      var styles = getStyleComputedProperty(element);\n      horizScrollbar -= getBordersSize(styles, 'x');\n      vertScrollbar -= getBordersSize(styles, 'y');\n\n      result.width -= horizScrollbar;\n      result.height -= vertScrollbar;\n    }\n\n    return getClientRect(result);\n  }\n\n  function getOffsetRectRelativeToArbitraryNode(children, parent) {\n    var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    var isIE10 = isIE(10);\n    var isHTML = parent.nodeName === 'HTML';\n    var childrenRect = getBoundingClientRect(children);\n    var parentRect = getBoundingClientRect(parent);\n    var scrollParent = getScrollParent(children);\n\n    var styles = getStyleComputedProperty(parent);\n    var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n    var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n    // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n    if (fixedPosition && isHTML) {\n      parentRect.top = Math.max(parentRect.top, 0);\n      parentRect.left = Math.max(parentRect.left, 0);\n    }\n    var offsets = getClientRect({\n      top: childrenRect.top - parentRect.top - borderTopWidth,\n      left: childrenRect.left - parentRect.left - borderLeftWidth,\n      width: childrenRect.width,\n      height: childrenRect.height\n    });\n    offsets.marginTop = 0;\n    offsets.marginLeft = 0;\n\n    // Subtract margins of documentElement in case it's being used as parent\n    // we do this only on HTML because it's the only element that behaves\n    // differently when margins are applied to it. The margins are included in\n    // the box of the documentElement, in the other cases not.\n    if (!isIE10 && isHTML) {\n      var marginTop = parseFloat(styles.marginTop, 10);\n      var marginLeft = parseFloat(styles.marginLeft, 10);\n\n      offsets.top -= borderTopWidth - marginTop;\n      offsets.bottom -= borderTopWidth - marginTop;\n      offsets.left -= borderLeftWidth - marginLeft;\n      offsets.right -= borderLeftWidth - marginLeft;\n\n      // Attach marginTop and marginLeft because in some circumstances we may need them\n      offsets.marginTop = marginTop;\n      offsets.marginLeft = marginLeft;\n    }\n\n    if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n      offsets = includeScroll(offsets, parent);\n    }\n\n    return offsets;\n  }\n\n  function getViewportOffsetRectRelativeToArtbitraryNode(element) {\n    var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var html = element.ownerDocument.documentElement;\n    var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n    var width = Math.max(html.clientWidth, window.innerWidth || 0);\n    var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n    var scrollTop = !excludeScroll ? getScroll(html) : 0;\n    var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n    var offset = {\n      top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n      left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n      width: width,\n      height: height\n    };\n\n    return getClientRect(offset);\n  }\n\n  /**\n   * Check if the given element is fixed or is inside a fixed parent\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @argument {Element} customContainer\n   * @returns {Boolean} answer to \"isFixed?\"\n   */\n  function isFixed(element) {\n    var nodeName = element.nodeName;\n    if (nodeName === 'BODY' || nodeName === 'HTML') {\n      return false;\n    }\n    if (getStyleComputedProperty(element, 'position') === 'fixed') {\n      return true;\n    }\n    var parentNode = getParentNode(element);\n    if (!parentNode) {\n      return false;\n    }\n    return isFixed(parentNode);\n  }\n\n  /**\n   * Finds the first parent of an element that has a transformed property defined\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Element} first transformed parent or documentElement\n   */\n\n  function getFixedPositionOffsetParent(element) {\n    // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n    if (!element || !element.parentElement || isIE()) {\n      return document.documentElement;\n    }\n    var el = element.parentElement;\n    while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n      el = el.parentElement;\n    }\n    return el || document.documentElement;\n  }\n\n  /**\n   * Computed the boundaries limits and return them\n   * @method\n   * @memberof Popper.Utils\n   * @param {HTMLElement} popper\n   * @param {HTMLElement} reference\n   * @param {number} padding\n   * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n   * @param {Boolean} fixedPosition - Is in fixed position mode\n   * @returns {Object} Coordinates of the boundaries\n   */\n  function getBoundaries(popper, reference, padding, boundariesElement) {\n    var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n    // NOTE: 1 DOM access here\n\n    var boundaries = { top: 0, left: 0 };\n    var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n    // Handle viewport case\n    if (boundariesElement === 'viewport') {\n      boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n    } else {\n      // Handle other cases based on DOM element used as boundaries\n      var boundariesNode = void 0;\n      if (boundariesElement === 'scrollParent') {\n        boundariesNode = getScrollParent(getParentNode(reference));\n        if (boundariesNode.nodeName === 'BODY') {\n          boundariesNode = popper.ownerDocument.documentElement;\n        }\n      } else if (boundariesElement === 'window') {\n        boundariesNode = popper.ownerDocument.documentElement;\n      } else {\n        boundariesNode = boundariesElement;\n      }\n\n      var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n      // In case of HTML, we need a different computation\n      if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n        var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n            height = _getWindowSizes.height,\n            width = _getWindowSizes.width;\n\n        boundaries.top += offsets.top - offsets.marginTop;\n        boundaries.bottom = height + offsets.top;\n        boundaries.left += offsets.left - offsets.marginLeft;\n        boundaries.right = width + offsets.left;\n      } else {\n        // for all the other DOM elements, this one is good\n        boundaries = offsets;\n      }\n    }\n\n    // Add paddings\n    padding = padding || 0;\n    var isPaddingNumber = typeof padding === 'number';\n    boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n    boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n    boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n    boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n    return boundaries;\n  }\n\n  function getArea(_ref) {\n    var width = _ref.width,\n        height = _ref.height;\n\n    return width * height;\n  }\n\n  /**\n   * Utility used to transform the `auto` placement to the placement with more\n   * available space.\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n    var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n    if (placement.indexOf('auto') === -1) {\n      return placement;\n    }\n\n    var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n    var rects = {\n      top: {\n        width: boundaries.width,\n        height: refRect.top - boundaries.top\n      },\n      right: {\n        width: boundaries.right - refRect.right,\n        height: boundaries.height\n      },\n      bottom: {\n        width: boundaries.width,\n        height: boundaries.bottom - refRect.bottom\n      },\n      left: {\n        width: refRect.left - boundaries.left,\n        height: boundaries.height\n      }\n    };\n\n    var sortedAreas = Object.keys(rects).map(function (key) {\n      return _extends({\n        key: key\n      }, rects[key], {\n        area: getArea(rects[key])\n      });\n    }).sort(function (a, b) {\n      return b.area - a.area;\n    });\n\n    var filteredAreas = sortedAreas.filter(function (_ref2) {\n      var width = _ref2.width,\n          height = _ref2.height;\n      return width >= popper.clientWidth && height >= popper.clientHeight;\n    });\n\n    var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n    var variation = placement.split('-')[1];\n\n    return computedPlacement + (variation ? '-' + variation : '');\n  }\n\n  /**\n   * Get offsets to the reference element\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} state\n   * @param {Element} popper - the popper element\n   * @param {Element} reference - the reference element (the popper will be relative to this)\n   * @param {Element} fixedPosition - is in fixed position mode\n   * @returns {Object} An object containing the offsets which will be applied to the popper\n   */\n  function getReferenceOffsets(state, popper, reference) {\n    var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n    return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n  }\n\n  /**\n   * Get the outer sizes of the given element (offset size + margins)\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element\n   * @returns {Object} object containing width and height properties\n   */\n  function getOuterSizes(element) {\n    var window = element.ownerDocument.defaultView;\n    var styles = window.getComputedStyle(element);\n    var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n    var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n    var result = {\n      width: element.offsetWidth + y,\n      height: element.offsetHeight + x\n    };\n    return result;\n  }\n\n  /**\n   * Get the opposite placement of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement\n   * @returns {String} flipped placement\n   */\n  function getOppositePlacement(placement) {\n    var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n    return placement.replace(/left|right|bottom|top/g, function (matched) {\n      return hash[matched];\n    });\n  }\n\n  /**\n   * Get offsets to the popper\n   * @method\n   * @memberof Popper.Utils\n   * @param {Object} position - CSS position the Popper will get applied\n   * @param {HTMLElement} popper - the popper element\n   * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n   * @param {String} placement - one of the valid placement options\n   * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n   */\n  function getPopperOffsets(popper, referenceOffsets, placement) {\n    placement = placement.split('-')[0];\n\n    // Get popper node sizes\n    var popperRect = getOuterSizes(popper);\n\n    // Add position, width and height to our offsets object\n    var popperOffsets = {\n      width: popperRect.width,\n      height: popperRect.height\n    };\n\n    // depending by the popper placement we have to compute its offsets slightly differently\n    var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n    var mainSide = isHoriz ? 'top' : 'left';\n    var secondarySide = isHoriz ? 'left' : 'top';\n    var measurement = isHoriz ? 'height' : 'width';\n    var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n    popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n    if (placement === secondarySide) {\n      popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n    } else {\n      popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n    }\n\n    return popperOffsets;\n  }\n\n  /**\n   * Mimics the `find` method of Array\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function find(arr, check) {\n    // use native find if supported\n    if (Array.prototype.find) {\n      return arr.find(check);\n    }\n\n    // use `filter` to obtain the same behavior of `find`\n    return arr.filter(check)[0];\n  }\n\n  /**\n   * Return the index of the matching object\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Array} arr\n   * @argument prop\n   * @argument value\n   * @returns index or -1\n   */\n  function findIndex(arr, prop, value) {\n    // use native findIndex if supported\n    if (Array.prototype.findIndex) {\n      return arr.findIndex(function (cur) {\n        return cur[prop] === value;\n      });\n    }\n\n    // use `find` + `indexOf` if `findIndex` isn't supported\n    var match = find(arr, function (obj) {\n      return obj[prop] === value;\n    });\n    return arr.indexOf(match);\n  }\n\n  /**\n   * Loop trough the list of modifiers and run them in order,\n   * each of them will then edit the data object.\n   * @method\n   * @memberof Popper.Utils\n   * @param {dataObject} data\n   * @param {Array} modifiers\n   * @param {String} ends - Optional modifier name used as stopper\n   * @returns {dataObject}\n   */\n  function runModifiers(modifiers, data, ends) {\n    var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n    modifiersToRun.forEach(function (modifier) {\n      if (modifier['function']) {\n        // eslint-disable-line dot-notation\n        console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n      }\n      var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n      if (modifier.enabled && isFunction(fn)) {\n        // Add properties to offsets to make them a complete clientRect object\n        // we do this before each modifier to make sure the previous one doesn't\n        // mess with these values\n        data.offsets.popper = getClientRect(data.offsets.popper);\n        data.offsets.reference = getClientRect(data.offsets.reference);\n\n        data = fn(data, modifier);\n      }\n    });\n\n    return data;\n  }\n\n  /**\n   * Updates the position of the popper, computing the new offsets and applying\n   * the new style.<br />\n   * Prefer `scheduleUpdate` over `update` because of performance reasons.\n   * @method\n   * @memberof Popper\n   */\n  function update() {\n    // if popper is destroyed, don't perform any further update\n    if (this.state.isDestroyed) {\n      return;\n    }\n\n    var data = {\n      instance: this,\n      styles: {},\n      arrowStyles: {},\n      attributes: {},\n      flipped: false,\n      offsets: {}\n    };\n\n    // compute reference element offsets\n    data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n    // store the computed placement inside `originalPlacement`\n    data.originalPlacement = data.placement;\n\n    data.positionFixed = this.options.positionFixed;\n\n    // compute the popper offsets\n    data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n    data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n    // run the modifiers\n    data = runModifiers(this.modifiers, data);\n\n    // the first `update` will call `onCreate` callback\n    // the other ones will call `onUpdate` callback\n    if (!this.state.isCreated) {\n      this.state.isCreated = true;\n      this.options.onCreate(data);\n    } else {\n      this.options.onUpdate(data);\n    }\n  }\n\n  /**\n   * Helper used to know if the given modifier is enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @returns {Boolean}\n   */\n  function isModifierEnabled(modifiers, modifierName) {\n    return modifiers.some(function (_ref) {\n      var name = _ref.name,\n          enabled = _ref.enabled;\n      return enabled && name === modifierName;\n    });\n  }\n\n  /**\n   * Get the prefixed supported property name\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} property (camelCase)\n   * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n   */\n  function getSupportedPropertyName(property) {\n    var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n    var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n    for (var i = 0; i < prefixes.length; i++) {\n      var prefix = prefixes[i];\n      var toCheck = prefix ? '' + prefix + upperProp : property;\n      if (typeof document.body.style[toCheck] !== 'undefined') {\n        return toCheck;\n      }\n    }\n    return null;\n  }\n\n  /**\n   * Destroys the popper.\n   * @method\n   * @memberof Popper\n   */\n  function destroy() {\n    this.state.isDestroyed = true;\n\n    // touch DOM only if `applyStyle` modifier is enabled\n    if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n      this.popper.removeAttribute('x-placement');\n      this.popper.style.position = '';\n      this.popper.style.top = '';\n      this.popper.style.left = '';\n      this.popper.style.right = '';\n      this.popper.style.bottom = '';\n      this.popper.style.willChange = '';\n      this.popper.style[getSupportedPropertyName('transform')] = '';\n    }\n\n    this.disableEventListeners();\n\n    // remove the popper if user explicity asked for the deletion on destroy\n    // do not use `remove` because IE11 doesn't support it\n    if (this.options.removeOnDestroy) {\n      this.popper.parentNode.removeChild(this.popper);\n    }\n    return this;\n  }\n\n  /**\n   * Get the window associated with the element\n   * @argument {Element} element\n   * @returns {Window}\n   */\n  function getWindow(element) {\n    var ownerDocument = element.ownerDocument;\n    return ownerDocument ? ownerDocument.defaultView : window;\n  }\n\n  function attachToScrollParents(scrollParent, event, callback, scrollParents) {\n    var isBody = scrollParent.nodeName === 'BODY';\n    var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n    target.addEventListener(event, callback, { passive: true });\n\n    if (!isBody) {\n      attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n    }\n    scrollParents.push(target);\n  }\n\n  /**\n   * Setup needed event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function setupEventListeners(reference, options, state, updateBound) {\n    // Resize event listener on window\n    state.updateBound = updateBound;\n    getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n    // Scroll event listener on scroll parents\n    var scrollElement = getScrollParent(reference);\n    attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n    state.scrollElement = scrollElement;\n    state.eventsEnabled = true;\n\n    return state;\n  }\n\n  /**\n   * It will add resize/scroll events and start recalculating\n   * position of the popper element when they are triggered.\n   * @method\n   * @memberof Popper\n   */\n  function enableEventListeners() {\n    if (!this.state.eventsEnabled) {\n      this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n    }\n  }\n\n  /**\n   * Remove event listeners used to update the popper position\n   * @method\n   * @memberof Popper.Utils\n   * @private\n   */\n  function removeEventListeners(reference, state) {\n    // Remove resize event listener on window\n    getWindow(reference).removeEventListener('resize', state.updateBound);\n\n    // Remove scroll event listener on scroll parents\n    state.scrollParents.forEach(function (target) {\n      target.removeEventListener('scroll', state.updateBound);\n    });\n\n    // Reset state\n    state.updateBound = null;\n    state.scrollParents = [];\n    state.scrollElement = null;\n    state.eventsEnabled = false;\n    return state;\n  }\n\n  /**\n   * It will remove resize/scroll events and won't recalculate popper position\n   * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n   * unless you call `update` method manually.\n   * @method\n   * @memberof Popper\n   */\n  function disableEventListeners() {\n    if (this.state.eventsEnabled) {\n      cancelAnimationFrame(this.scheduleUpdate);\n      this.state = removeEventListeners(this.reference, this.state);\n    }\n  }\n\n  /**\n   * Tells if a given input is a number\n   * @method\n   * @memberof Popper.Utils\n   * @param {*} input to check\n   * @return {Boolean}\n   */\n  function isNumeric(n) {\n    return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n  }\n\n  /**\n   * Set the style to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the style to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setStyles(element, styles) {\n    Object.keys(styles).forEach(function (prop) {\n      var unit = '';\n      // add unit if the value is numeric and is one of the following\n      if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n        unit = 'px';\n      }\n      element.style[prop] = styles[prop] + unit;\n    });\n  }\n\n  /**\n   * Set the attributes to the given popper\n   * @method\n   * @memberof Popper.Utils\n   * @argument {Element} element - Element to apply the attributes to\n   * @argument {Object} styles\n   * Object with a list of properties and values which will be applied to the element\n   */\n  function setAttributes(element, attributes) {\n    Object.keys(attributes).forEach(function (prop) {\n      var value = attributes[prop];\n      if (value !== false) {\n        element.setAttribute(prop, attributes[prop]);\n      } else {\n        element.removeAttribute(prop);\n      }\n    });\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} data.styles - List of style properties - values to apply to popper element\n   * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The same data object\n   */\n  function applyStyle(data) {\n    // any property present in `data.styles` will be applied to the popper,\n    // in this way we can make the 3rd party modifiers add custom styles to it\n    // Be aware, modifiers could override the properties defined in the previous\n    // lines of this modifier!\n    setStyles(data.instance.popper, data.styles);\n\n    // any property present in `data.attributes` will be applied to the popper,\n    // they will be set as HTML attributes of the element\n    setAttributes(data.instance.popper, data.attributes);\n\n    // if arrowElement is defined and arrowStyles has some properties\n    if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n      setStyles(data.arrowElement, data.arrowStyles);\n    }\n\n    return data;\n  }\n\n  /**\n   * Set the x-placement attribute before everything else because it could be used\n   * to add margins to the popper margins needs to be calculated to get the\n   * correct popper offsets.\n   * @method\n   * @memberof Popper.modifiers\n   * @param {HTMLElement} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper\n   * @param {Object} options - Popper.js options\n   */\n  function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n    // compute reference element offsets\n    var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n    // compute auto placement, store placement inside the data object,\n    // modifiers will be able to edit `placement` if needed\n    // and refer to originalPlacement to know the original value\n    var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n    popper.setAttribute('x-placement', placement);\n\n    // Apply `position` to popper before anything else because\n    // without the position applied we can't guarantee correct computations\n    setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n    return options;\n  }\n\n  /**\n   * @function\n   * @memberof Popper.Utils\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n   * @returns {Object} The popper's position offsets rounded\n   *\n   * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n   * good as it can be within reason.\n   * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n   *\n   * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n   * as well on High DPI screens).\n   *\n   * Firefox prefers no rounding for positioning and does not have blurriness on\n   * high DPI screens.\n   *\n   * Only horizontal placement and left/right values need to be considered.\n   */\n  function getRoundedOffsets(data, shouldRound) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n    var round = Math.round,\n        floor = Math.floor;\n\n    var noRound = function noRound(v) {\n      return v;\n    };\n\n    var referenceWidth = round(reference.width);\n    var popperWidth = round(popper.width);\n\n    var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n    var isVariation = data.placement.indexOf('-') !== -1;\n    var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n    var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n    var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n    var verticalToInteger = !shouldRound ? noRound : round;\n\n    return {\n      left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n      top: verticalToInteger(popper.top),\n      bottom: verticalToInteger(popper.bottom),\n      right: horizontalToInteger(popper.right)\n    };\n  }\n\n  var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function computeStyle(data, options) {\n    var x = options.x,\n        y = options.y;\n    var popper = data.offsets.popper;\n\n    // Remove this legacy support in Popper.js v2\n\n    var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'applyStyle';\n    }).gpuAcceleration;\n    if (legacyGpuAccelerationOption !== undefined) {\n      console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n    }\n    var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n    var offsetParent = getOffsetParent(data.instance.popper);\n    var offsetParentRect = getBoundingClientRect(offsetParent);\n\n    // Styles\n    var styles = {\n      position: popper.position\n    };\n\n    var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n    var sideA = x === 'bottom' ? 'top' : 'bottom';\n    var sideB = y === 'right' ? 'left' : 'right';\n\n    // if gpuAcceleration is set to `true` and transform is supported,\n    //  we use `translate3d` to apply the position to the popper we\n    // automatically use the supported prefixed version if needed\n    var prefixedProperty = getSupportedPropertyName('transform');\n\n    // now, let's make a step back and look at this code closely (wtf?)\n    // If the content of the popper grows once it's been positioned, it\n    // may happen that the popper gets misplaced because of the new content\n    // overflowing its reference element\n    // To avoid this problem, we provide two options (x and y), which allow\n    // the consumer to define the offset origin.\n    // If we position a popper on top of a reference element, we can set\n    // `x` to `top` to make the popper grow towards its top instead of\n    // its bottom.\n    var left = void 0,\n        top = void 0;\n    if (sideA === 'bottom') {\n      // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n      // and not the bottom of the html element\n      if (offsetParent.nodeName === 'HTML') {\n        top = -offsetParent.clientHeight + offsets.bottom;\n      } else {\n        top = -offsetParentRect.height + offsets.bottom;\n      }\n    } else {\n      top = offsets.top;\n    }\n    if (sideB === 'right') {\n      if (offsetParent.nodeName === 'HTML') {\n        left = -offsetParent.clientWidth + offsets.right;\n      } else {\n        left = -offsetParentRect.width + offsets.right;\n      }\n    } else {\n      left = offsets.left;\n    }\n    if (gpuAcceleration && prefixedProperty) {\n      styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n      styles[sideA] = 0;\n      styles[sideB] = 0;\n      styles.willChange = 'transform';\n    } else {\n      // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n      var invertTop = sideA === 'bottom' ? -1 : 1;\n      var invertLeft = sideB === 'right' ? -1 : 1;\n      styles[sideA] = top * invertTop;\n      styles[sideB] = left * invertLeft;\n      styles.willChange = sideA + ', ' + sideB;\n    }\n\n    // Attributes\n    var attributes = {\n      'x-placement': data.placement\n    };\n\n    // Update `data` attributes, styles and arrowStyles\n    data.attributes = _extends({}, attributes, data.attributes);\n    data.styles = _extends({}, styles, data.styles);\n    data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n    return data;\n  }\n\n  /**\n   * Helper used to know if the given modifier depends from another one.<br />\n   * It checks if the needed modifier is listed and enabled.\n   * @method\n   * @memberof Popper.Utils\n   * @param {Array} modifiers - list of modifiers\n   * @param {String} requestingName - name of requesting modifier\n   * @param {String} requestedName - name of requested modifier\n   * @returns {Boolean}\n   */\n  function isModifierRequired(modifiers, requestingName, requestedName) {\n    var requesting = find(modifiers, function (_ref) {\n      var name = _ref.name;\n      return name === requestingName;\n    });\n\n    var isRequired = !!requesting && modifiers.some(function (modifier) {\n      return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n    });\n\n    if (!isRequired) {\n      var _requesting = '`' + requestingName + '`';\n      var requested = '`' + requestedName + '`';\n      console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n    }\n    return isRequired;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function arrow(data, options) {\n    var _data$offsets$arrow;\n\n    // arrow depends on keepTogether in order to work\n    if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n      return data;\n    }\n\n    var arrowElement = options.element;\n\n    // if arrowElement is a string, suppose it's a CSS selector\n    if (typeof arrowElement === 'string') {\n      arrowElement = data.instance.popper.querySelector(arrowElement);\n\n      // if arrowElement is not found, don't run the modifier\n      if (!arrowElement) {\n        return data;\n      }\n    } else {\n      // if the arrowElement isn't a query selector we must check that the\n      // provided DOM node is child of its popper node\n      if (!data.instance.popper.contains(arrowElement)) {\n        console.warn('WARNING: `arrow.element` must be child of its popper element!');\n        return data;\n      }\n    }\n\n    var placement = data.placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n    var len = isVertical ? 'height' : 'width';\n    var sideCapitalized = isVertical ? 'Top' : 'Left';\n    var side = sideCapitalized.toLowerCase();\n    var altSide = isVertical ? 'left' : 'top';\n    var opSide = isVertical ? 'bottom' : 'right';\n    var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n    //\n    // extends keepTogether behavior making sure the popper and its\n    // reference have enough pixels in conjunction\n    //\n\n    // top/left side\n    if (reference[opSide] - arrowElementSize < popper[side]) {\n      data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n    }\n    // bottom/right side\n    if (reference[side] + arrowElementSize > popper[opSide]) {\n      data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n    }\n    data.offsets.popper = getClientRect(data.offsets.popper);\n\n    // compute center of the popper\n    var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n    // Compute the sideValue using the updated popper offsets\n    // take popper margin in account because we don't have this info available\n    var css = getStyleComputedProperty(data.instance.popper);\n    var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n    var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n    var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n    // prevent arrowElement from being placed not contiguously to its popper\n    sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n    data.arrowElement = arrowElement;\n    data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n    return data;\n  }\n\n  /**\n   * Get the opposite placement variation of the given one\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement variation\n   * @returns {String} flipped placement variation\n   */\n  function getOppositeVariation(variation) {\n    if (variation === 'end') {\n      return 'start';\n    } else if (variation === 'start') {\n      return 'end';\n    }\n    return variation;\n  }\n\n  /**\n   * List of accepted placements to use as values of the `placement` option.<br />\n   * Valid placements are:\n   * - `auto`\n   * - `top`\n   * - `right`\n   * - `bottom`\n   * - `left`\n   *\n   * Each placement can have a variation from this list:\n   * - `-start`\n   * - `-end`\n   *\n   * Variations are interpreted easily if you think of them as the left to right\n   * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n   * is right.<br />\n   * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n   *\n   * Some valid examples are:\n   * - `top-end` (on top of reference, right aligned)\n   * - `right-start` (on right of reference, top aligned)\n   * - `bottom` (on bottom, centered)\n   * - `auto-end` (on the side with more space available, alignment depends by placement)\n   *\n   * @static\n   * @type {Array}\n   * @enum {String}\n   * @readonly\n   * @method placements\n   * @memberof Popper\n   */\n  var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n  // Get rid of `auto` `auto-start` and `auto-end`\n  var validPlacements = placements.slice(3);\n\n  /**\n   * Given an initial placement, returns all the subsequent placements\n   * clockwise (or counter-clockwise).\n   *\n   * @method\n   * @memberof Popper.Utils\n   * @argument {String} placement - A valid placement (it accepts variations)\n   * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n   * @returns {Array} placements including their variations\n   */\n  function clockwise(placement) {\n    var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var index = validPlacements.indexOf(placement);\n    var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n    return counter ? arr.reverse() : arr;\n  }\n\n  var BEHAVIORS = {\n    FLIP: 'flip',\n    CLOCKWISE: 'clockwise',\n    COUNTERCLOCKWISE: 'counterclockwise'\n  };\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function flip(data, options) {\n    // if `inner` modifier is enabled, we can't use the `flip` modifier\n    if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n      return data;\n    }\n\n    if (data.flipped && data.placement === data.originalPlacement) {\n      // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n      return data;\n    }\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n    var placement = data.placement.split('-')[0];\n    var placementOpposite = getOppositePlacement(placement);\n    var variation = data.placement.split('-')[1] || '';\n\n    var flipOrder = [];\n\n    switch (options.behavior) {\n      case BEHAVIORS.FLIP:\n        flipOrder = [placement, placementOpposite];\n        break;\n      case BEHAVIORS.CLOCKWISE:\n        flipOrder = clockwise(placement);\n        break;\n      case BEHAVIORS.COUNTERCLOCKWISE:\n        flipOrder = clockwise(placement, true);\n        break;\n      default:\n        flipOrder = options.behavior;\n    }\n\n    flipOrder.forEach(function (step, index) {\n      if (placement !== step || flipOrder.length === index + 1) {\n        return data;\n      }\n\n      placement = data.placement.split('-')[0];\n      placementOpposite = getOppositePlacement(placement);\n\n      var popperOffsets = data.offsets.popper;\n      var refOffsets = data.offsets.reference;\n\n      // using floor because the reference offsets may contain decimals we are not going to consider here\n      var floor = Math.floor;\n      var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n      var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n      var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n      var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n      var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n      var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n      // flip the variation if required\n      var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n      var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n      if (overlapsRef || overflowsBoundaries || flippedVariation) {\n        // this boolean to detect any flip loop\n        data.flipped = true;\n\n        if (overlapsRef || overflowsBoundaries) {\n          placement = flipOrder[index + 1];\n        }\n\n        if (flippedVariation) {\n          variation = getOppositeVariation(variation);\n        }\n\n        data.placement = placement + (variation ? '-' + variation : '');\n\n        // this object contains `position`, we want to preserve it along with\n        // any additional property we may add in the future\n        data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n        data = runModifiers(data.instance.modifiers, data, 'flip');\n      }\n    });\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function keepTogether(data) {\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var placement = data.placement.split('-')[0];\n    var floor = Math.floor;\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var side = isVertical ? 'right' : 'bottom';\n    var opSide = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    if (popper[side] < floor(reference[opSide])) {\n      data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n    }\n    if (popper[opSide] > floor(reference[side])) {\n      data.offsets.popper[opSide] = floor(reference[side]);\n    }\n\n    return data;\n  }\n\n  /**\n   * Converts a string containing value + unit into a px value number\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} str - Value + unit string\n   * @argument {String} measurement - `height` or `width`\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @returns {Number|String}\n   * Value in pixels, or original string if no values were extracted\n   */\n  function toValue(str, measurement, popperOffsets, referenceOffsets) {\n    // separate value from unit\n    var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n    var value = +split[1];\n    var unit = split[2];\n\n    // If it's not a number it's an operator, I guess\n    if (!value) {\n      return str;\n    }\n\n    if (unit.indexOf('%') === 0) {\n      var element = void 0;\n      switch (unit) {\n        case '%p':\n          element = popperOffsets;\n          break;\n        case '%':\n        case '%r':\n        default:\n          element = referenceOffsets;\n      }\n\n      var rect = getClientRect(element);\n      return rect[measurement] / 100 * value;\n    } else if (unit === 'vh' || unit === 'vw') {\n      // if is a vh or vw, we calculate the size based on the viewport\n      var size = void 0;\n      if (unit === 'vh') {\n        size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n      } else {\n        size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n      }\n      return size / 100 * value;\n    } else {\n      // if is an explicit pixel unit, we get rid of the unit and keep the value\n      // if is an implicit unit, it's px, and we return just the value\n      return value;\n    }\n  }\n\n  /**\n   * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n   * @function\n   * @memberof {modifiers~offset}\n   * @private\n   * @argument {String} offset\n   * @argument {Object} popperOffsets\n   * @argument {Object} referenceOffsets\n   * @argument {String} basePlacement\n   * @returns {Array} a two cells array with x and y offsets in numbers\n   */\n  function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n    var offsets = [0, 0];\n\n    // Use height if placement is left or right and index is 0 otherwise use width\n    // in this way the first offset will use an axis and the second one\n    // will use the other one\n    var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n    // Split the offset string to obtain a list of values and operands\n    // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n    var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n      return frag.trim();\n    });\n\n    // Detect if the offset string contains a pair of values or a single one\n    // they could be separated by comma or space\n    var divider = fragments.indexOf(find(fragments, function (frag) {\n      return frag.search(/,|\\s/) !== -1;\n    }));\n\n    if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n      console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n    }\n\n    // If divider is found, we divide the list of values and operands to divide\n    // them by ofset X and Y.\n    var splitRegex = /\\s*,\\s*|\\s+/;\n    var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n    // Convert the values with units to absolute pixels to allow our computations\n    ops = ops.map(function (op, index) {\n      // Most of the units rely on the orientation of the popper\n      var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n      var mergeWithPrevious = false;\n      return op\n      // This aggregates any `+` or `-` sign that aren't considered operators\n      // e.g.: 10 + +5 => [10, +, +5]\n      .reduce(function (a, b) {\n        if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n          a[a.length - 1] = b;\n          mergeWithPrevious = true;\n          return a;\n        } else if (mergeWithPrevious) {\n          a[a.length - 1] += b;\n          mergeWithPrevious = false;\n          return a;\n        } else {\n          return a.concat(b);\n        }\n      }, [])\n      // Here we convert the string values into number values (in px)\n      .map(function (str) {\n        return toValue(str, measurement, popperOffsets, referenceOffsets);\n      });\n    });\n\n    // Loop trough the offsets arrays and execute the operations\n    ops.forEach(function (op, index) {\n      op.forEach(function (frag, index2) {\n        if (isNumeric(frag)) {\n          offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n        }\n      });\n    });\n    return offsets;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @argument {Number|String} options.offset=0\n   * The offset value as described in the modifier description\n   * @returns {Object} The data object, properly modified\n   */\n  function offset(data, _ref) {\n    var offset = _ref.offset;\n    var placement = data.placement,\n        _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var basePlacement = placement.split('-')[0];\n\n    var offsets = void 0;\n    if (isNumeric(+offset)) {\n      offsets = [+offset, 0];\n    } else {\n      offsets = parseOffset(offset, popper, reference, basePlacement);\n    }\n\n    if (basePlacement === 'left') {\n      popper.top += offsets[0];\n      popper.left -= offsets[1];\n    } else if (basePlacement === 'right') {\n      popper.top += offsets[0];\n      popper.left += offsets[1];\n    } else if (basePlacement === 'top') {\n      popper.left += offsets[0];\n      popper.top -= offsets[1];\n    } else if (basePlacement === 'bottom') {\n      popper.left += offsets[0];\n      popper.top += offsets[1];\n    }\n\n    data.popper = popper;\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function preventOverflow(data, options) {\n    var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n    // If offsetParent is the reference element, we really want to\n    // go one step up and use the next offsetParent as reference to\n    // avoid to make this modifier completely useless and look like broken\n    if (data.instance.reference === boundariesElement) {\n      boundariesElement = getOffsetParent(boundariesElement);\n    }\n\n    // NOTE: DOM access here\n    // resets the popper's position so that the document size can be calculated excluding\n    // the size of the popper element itself\n    var transformProp = getSupportedPropertyName('transform');\n    var popperStyles = data.instance.popper.style; // assignment to help minification\n    var top = popperStyles.top,\n        left = popperStyles.left,\n        transform = popperStyles[transformProp];\n\n    popperStyles.top = '';\n    popperStyles.left = '';\n    popperStyles[transformProp] = '';\n\n    var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n    // NOTE: DOM access here\n    // restores the original style properties after the offsets have been computed\n    popperStyles.top = top;\n    popperStyles.left = left;\n    popperStyles[transformProp] = transform;\n\n    options.boundaries = boundaries;\n\n    var order = options.priority;\n    var popper = data.offsets.popper;\n\n    var check = {\n      primary: function primary(placement) {\n        var value = popper[placement];\n        if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n          value = Math.max(popper[placement], boundaries[placement]);\n        }\n        return defineProperty({}, placement, value);\n      },\n      secondary: function secondary(placement) {\n        var mainSide = placement === 'right' ? 'left' : 'top';\n        var value = popper[mainSide];\n        if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n          value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n        }\n        return defineProperty({}, mainSide, value);\n      }\n    };\n\n    order.forEach(function (placement) {\n      var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n      popper = _extends({}, popper, check[side](placement));\n    });\n\n    data.offsets.popper = popper;\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function shift(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var shiftvariation = placement.split('-')[1];\n\n    // if shift shiftvariation is specified, run the modifier\n    if (shiftvariation) {\n      var _data$offsets = data.offsets,\n          reference = _data$offsets.reference,\n          popper = _data$offsets.popper;\n\n      var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n      var side = isVertical ? 'left' : 'top';\n      var measurement = isVertical ? 'width' : 'height';\n\n      var shiftOffsets = {\n        start: defineProperty({}, side, reference[side]),\n        end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n      };\n\n      data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by update method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function hide(data) {\n    if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n      return data;\n    }\n\n    var refRect = data.offsets.reference;\n    var bound = find(data.instance.modifiers, function (modifier) {\n      return modifier.name === 'preventOverflow';\n    }).boundaries;\n\n    if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === true) {\n        return data;\n      }\n\n      data.hide = true;\n      data.attributes['x-out-of-boundaries'] = '';\n    } else {\n      // Avoid unnecessary DOM access if visibility hasn't changed\n      if (data.hide === false) {\n        return data;\n      }\n\n      data.hide = false;\n      data.attributes['x-out-of-boundaries'] = false;\n    }\n\n    return data;\n  }\n\n  /**\n   * @function\n   * @memberof Modifiers\n   * @argument {Object} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {Object} The data object, properly modified\n   */\n  function inner(data) {\n    var placement = data.placement;\n    var basePlacement = placement.split('-')[0];\n    var _data$offsets = data.offsets,\n        popper = _data$offsets.popper,\n        reference = _data$offsets.reference;\n\n    var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n    var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n    popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n    data.placement = getOppositePlacement(placement);\n    data.offsets.popper = getClientRect(popper);\n\n    return data;\n  }\n\n  /**\n   * Modifier function, each modifier can have a function of this type assigned\n   * to its `fn` property.<br />\n   * These functions will be called on each update, this means that you must\n   * make sure they are performant enough to avoid performance bottlenecks.\n   *\n   * @function ModifierFn\n   * @argument {dataObject} data - The data object generated by `update` method\n   * @argument {Object} options - Modifiers configuration and options\n   * @returns {dataObject} The data object, properly modified\n   */\n\n  /**\n   * Modifiers are plugins used to alter the behavior of your poppers.<br />\n   * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n   * needed by the library.\n   *\n   * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n   * All the other properties are configurations that could be tweaked.\n   * @namespace modifiers\n   */\n  var modifiers = {\n    /**\n     * Modifier used to shift the popper on the start or end of its reference\n     * element.<br />\n     * It will read the variation of the `placement` property.<br />\n     * It can be one either `-end` or `-start`.\n     * @memberof modifiers\n     * @inner\n     */\n    shift: {\n      /** @prop {number} order=100 - Index used to define the order of execution */\n      order: 100,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: shift\n    },\n\n    /**\n     * The `offset` modifier can shift your popper on both its axis.\n     *\n     * It accepts the following units:\n     * - `px` or unit-less, interpreted as pixels\n     * - `%` or `%r`, percentage relative to the length of the reference element\n     * - `%p`, percentage relative to the length of the popper element\n     * - `vw`, CSS viewport width unit\n     * - `vh`, CSS viewport height unit\n     *\n     * For length is intended the main axis relative to the placement of the popper.<br />\n     * This means that if the placement is `top` or `bottom`, the length will be the\n     * `width`. In case of `left` or `right`, it will be the `height`.\n     *\n     * You can provide a single value (as `Number` or `String`), or a pair of values\n     * as `String` divided by a comma or one (or more) white spaces.<br />\n     * The latter is a deprecated method because it leads to confusion and will be\n     * removed in v2.<br />\n     * Additionally, it accepts additions and subtractions between different units.\n     * Note that multiplications and divisions aren't supported.\n     *\n     * Valid examples are:\n     * ```\n     * 10\n     * '10%'\n     * '10, 10'\n     * '10%, 10'\n     * '10 + 10%'\n     * '10 - 5vh + 3%'\n     * '-10px + 5vh, 5px - 6%'\n     * ```\n     * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n     * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n     * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    offset: {\n      /** @prop {number} order=200 - Index used to define the order of execution */\n      order: 200,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: offset,\n      /** @prop {Number|String} offset=0\n       * The offset value as described in the modifier description\n       */\n      offset: 0\n    },\n\n    /**\n     * Modifier used to prevent the popper from being positioned outside the boundary.\n     *\n     * A scenario exists where the reference itself is not within the boundaries.<br />\n     * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n     * In this case we need to decide whether the popper should either:\n     *\n     * - detach from the reference and remain \"trapped\" in the boundaries, or\n     * - if it should ignore the boundary and \"escape with its reference\"\n     *\n     * When `escapeWithReference` is set to`true` and reference is completely\n     * outside its boundaries, the popper will overflow (or completely leave)\n     * the boundaries in order to remain attached to the edge of the reference.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    preventOverflow: {\n      /** @prop {number} order=300 - Index used to define the order of execution */\n      order: 300,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: preventOverflow,\n      /**\n       * @prop {Array} [priority=['left','right','top','bottom']]\n       * Popper will try to prevent overflow following these priorities by default,\n       * then, it could overflow on the left and on top of the `boundariesElement`\n       */\n      priority: ['left', 'right', 'top', 'bottom'],\n      /**\n       * @prop {number} padding=5\n       * Amount of pixel used to define a minimum distance between the boundaries\n       * and the popper. This makes sure the popper always has a little padding\n       * between the edges of its container\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='scrollParent'\n       * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n       * `viewport` or any DOM element.\n       */\n      boundariesElement: 'scrollParent'\n    },\n\n    /**\n     * Modifier used to make sure the reference and its popper stay near each other\n     * without leaving any gap between the two. Especially useful when the arrow is\n     * enabled and you want to ensure that it points to its reference element.\n     * It cares only about the first axis. You can still have poppers with margin\n     * between the popper and its reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    keepTogether: {\n      /** @prop {number} order=400 - Index used to define the order of execution */\n      order: 400,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: keepTogether\n    },\n\n    /**\n     * This modifier is used to move the `arrowElement` of the popper to make\n     * sure it is positioned between the reference element and its popper element.\n     * It will read the outer size of the `arrowElement` node to detect how many\n     * pixels of conjunction are needed.\n     *\n     * It has no effect if no `arrowElement` is provided.\n     * @memberof modifiers\n     * @inner\n     */\n    arrow: {\n      /** @prop {number} order=500 - Index used to define the order of execution */\n      order: 500,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: arrow,\n      /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n      element: '[x-arrow]'\n    },\n\n    /**\n     * Modifier used to flip the popper's placement when it starts to overlap its\n     * reference element.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     *\n     * **NOTE:** this modifier will interrupt the current update cycle and will\n     * restart it if it detects the need to flip the placement.\n     * @memberof modifiers\n     * @inner\n     */\n    flip: {\n      /** @prop {number} order=600 - Index used to define the order of execution */\n      order: 600,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: flip,\n      /**\n       * @prop {String|Array} behavior='flip'\n       * The behavior used to change the popper's placement. It can be one of\n       * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n       * placements (with optional variations)\n       */\n      behavior: 'flip',\n      /**\n       * @prop {number} padding=5\n       * The popper will flip if it hits the edges of the `boundariesElement`\n       */\n      padding: 5,\n      /**\n       * @prop {String|HTMLElement} boundariesElement='viewport'\n       * The element which will define the boundaries of the popper position.\n       * The popper will never be placed outside of the defined boundaries\n       * (except if `keepTogether` is enabled)\n       */\n      boundariesElement: 'viewport'\n    },\n\n    /**\n     * Modifier used to make the popper flow toward the inner of the reference element.\n     * By default, when this modifier is disabled, the popper will be placed outside\n     * the reference element.\n     * @memberof modifiers\n     * @inner\n     */\n    inner: {\n      /** @prop {number} order=700 - Index used to define the order of execution */\n      order: 700,\n      /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n      enabled: false,\n      /** @prop {ModifierFn} */\n      fn: inner\n    },\n\n    /**\n     * Modifier used to hide the popper when its reference element is outside of the\n     * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n     * be used to hide with a CSS selector the popper when its reference is\n     * out of boundaries.\n     *\n     * Requires the `preventOverflow` modifier before it in order to work.\n     * @memberof modifiers\n     * @inner\n     */\n    hide: {\n      /** @prop {number} order=800 - Index used to define the order of execution */\n      order: 800,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: hide\n    },\n\n    /**\n     * Computes the style that will be applied to the popper element to gets\n     * properly positioned.\n     *\n     * Note that this modifier will not touch the DOM, it just prepares the styles\n     * so that `applyStyle` modifier can apply it. This separation is useful\n     * in case you need to replace `applyStyle` with a custom implementation.\n     *\n     * This modifier has `850` as `order` value to maintain backward compatibility\n     * with previous versions of Popper.js. Expect the modifiers ordering method\n     * to change in future major versions of the library.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    computeStyle: {\n      /** @prop {number} order=850 - Index used to define the order of execution */\n      order: 850,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: computeStyle,\n      /**\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: true,\n      /**\n       * @prop {string} [x='bottom']\n       * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n       * Change this if your popper should grow in a direction different from `bottom`\n       */\n      x: 'bottom',\n      /**\n       * @prop {string} [x='left']\n       * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n       * Change this if your popper should grow in a direction different from `right`\n       */\n      y: 'right'\n    },\n\n    /**\n     * Applies the computed styles to the popper element.\n     *\n     * All the DOM manipulations are limited to this modifier. This is useful in case\n     * you want to integrate Popper.js inside a framework or view library and you\n     * want to delegate all the DOM manipulations to it.\n     *\n     * Note that if you disable this modifier, you must make sure the popper element\n     * has its position set to `absolute` before Popper.js can do its work!\n     *\n     * Just disable this modifier and define your own to achieve the desired effect.\n     *\n     * @memberof modifiers\n     * @inner\n     */\n    applyStyle: {\n      /** @prop {number} order=900 - Index used to define the order of execution */\n      order: 900,\n      /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n      enabled: true,\n      /** @prop {ModifierFn} */\n      fn: applyStyle,\n      /** @prop {Function} */\n      onLoad: applyStyleOnLoad,\n      /**\n       * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n       * @prop {Boolean} gpuAcceleration=true\n       * If true, it uses the CSS 3D transformation to position the popper.\n       * Otherwise, it will use the `top` and `left` properties\n       */\n      gpuAcceleration: undefined\n    }\n  };\n\n  /**\n   * The `dataObject` is an object containing all the information used by Popper.js.\n   * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n   * @name dataObject\n   * @property {Object} data.instance The Popper.js instance\n   * @property {String} data.placement Placement applied to popper\n   * @property {String} data.originalPlacement Placement originally defined on init\n   * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n   * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n   * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n   * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n   * @property {Object} data.boundaries Offsets of the popper boundaries\n   * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n   * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n   * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n   */\n\n  /**\n   * Default options provided to Popper.js constructor.<br />\n   * These can be overridden using the `options` argument of Popper.js.<br />\n   * To override an option, simply pass an object with the same\n   * structure of the `options` object, as the 3rd argument. For example:\n   * ```\n   * new Popper(ref, pop, {\n   *   modifiers: {\n   *     preventOverflow: { enabled: false }\n   *   }\n   * })\n   * ```\n   * @type {Object}\n   * @static\n   * @memberof Popper\n   */\n  var Defaults = {\n    /**\n     * Popper's placement.\n     * @prop {Popper.placements} placement='bottom'\n     */\n    placement: 'bottom',\n\n    /**\n     * Set this to true if you want popper to position it self in 'fixed' mode\n     * @prop {Boolean} positionFixed=false\n     */\n    positionFixed: false,\n\n    /**\n     * Whether events (resize, scroll) are initially enabled.\n     * @prop {Boolean} eventsEnabled=true\n     */\n    eventsEnabled: true,\n\n    /**\n     * Set to true if you want to automatically remove the popper when\n     * you call the `destroy` method.\n     * @prop {Boolean} removeOnDestroy=false\n     */\n    removeOnDestroy: false,\n\n    /**\n     * Callback called when the popper is created.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onCreate}\n     */\n    onCreate: function onCreate() {},\n\n    /**\n     * Callback called when the popper is updated. This callback is not called\n     * on the initialization/creation of the popper, but only on subsequent\n     * updates.<br />\n     * By default, it is set to no-op.<br />\n     * Access Popper.js instance with `data.instance`.\n     * @prop {onUpdate}\n     */\n    onUpdate: function onUpdate() {},\n\n    /**\n     * List of modifiers used to modify the offsets before they are applied to the popper.\n     * They provide most of the functionalities of Popper.js.\n     * @prop {modifiers}\n     */\n    modifiers: modifiers\n  };\n\n  /**\n   * @callback onCreate\n   * @param {dataObject} data\n   */\n\n  /**\n   * @callback onUpdate\n   * @param {dataObject} data\n   */\n\n  // Utils\n  // Methods\n  var Popper = function () {\n    /**\n     * Creates a new Popper.js instance.\n     * @class Popper\n     * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n     * @param {HTMLElement} popper - The HTML element used as the popper\n     * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n     * @return {Object} instance - The generated Popper.js instance\n     */\n    function Popper(reference, popper) {\n      var _this = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      classCallCheck(this, Popper);\n\n      this.scheduleUpdate = function () {\n        return requestAnimationFrame(_this.update);\n      };\n\n      // make update() debounced, so that it only runs at most once-per-tick\n      this.update = debounce(this.update.bind(this));\n\n      // with {} we create a new object with the options inside it\n      this.options = _extends({}, Popper.Defaults, options);\n\n      // init state\n      this.state = {\n        isDestroyed: false,\n        isCreated: false,\n        scrollParents: []\n      };\n\n      // get reference and popper elements (allow jQuery wrappers)\n      this.reference = reference && reference.jquery ? reference[0] : reference;\n      this.popper = popper && popper.jquery ? popper[0] : popper;\n\n      // Deep merge modifiers options\n      this.options.modifiers = {};\n      Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n        _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n      });\n\n      // Refactoring modifiers' list (Object => Array)\n      this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n        return _extends({\n          name: name\n        }, _this.options.modifiers[name]);\n      })\n      // sort the modifiers by order\n      .sort(function (a, b) {\n        return a.order - b.order;\n      });\n\n      // modifiers have the ability to execute arbitrary code when Popper.js get inited\n      // such code is executed in the same order of its modifier\n      // they could add new properties to their options configuration\n      // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n      this.modifiers.forEach(function (modifierOptions) {\n        if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n          modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n        }\n      });\n\n      // fire the first update to position the popper in the right place\n      this.update();\n\n      var eventsEnabled = this.options.eventsEnabled;\n      if (eventsEnabled) {\n        // setup event listeners, they will take care of update the position in specific situations\n        this.enableEventListeners();\n      }\n\n      this.state.eventsEnabled = eventsEnabled;\n    }\n\n    // We can't use class properties because they don't get listed in the\n    // class prototype and break stuff like Sinon stubs\n\n\n    createClass(Popper, [{\n      key: 'update',\n      value: function update$$1() {\n        return update.call(this);\n      }\n    }, {\n      key: 'destroy',\n      value: function destroy$$1() {\n        return destroy.call(this);\n      }\n    }, {\n      key: 'enableEventListeners',\n      value: function enableEventListeners$$1() {\n        return enableEventListeners.call(this);\n      }\n    }, {\n      key: 'disableEventListeners',\n      value: function disableEventListeners$$1() {\n        return disableEventListeners.call(this);\n      }\n\n      /**\n       * Schedules an update. It will run on the next UI update available.\n       * @method scheduleUpdate\n       * @memberof Popper\n       */\n\n\n      /**\n       * Collection of utilities useful when writing custom modifiers.\n       * Starting from version 1.7, this method is available only if you\n       * include `popper-utils.js` before `popper.js`.\n       *\n       * **DEPRECATION**: This way to access PopperUtils is deprecated\n       * and will be removed in v2! Use the PopperUtils module directly instead.\n       * Due to the high instability of the methods contained in Utils, we can't\n       * guarantee them to follow semver. Use them at your own risk!\n       * @static\n       * @private\n       * @type {Object}\n       * @deprecated since version 1.8\n       * @member Utils\n       * @memberof Popper\n       */\n\n    }]);\n    return Popper;\n  }();\n\n  /**\n   * The `referenceObject` is an object that provides an interface compatible with Popper.js\n   * and lets you use it as replacement of a real DOM node.<br />\n   * You can use this method to position a popper relatively to a set of coordinates\n   * in case you don't have a DOM node to use as reference.\n   *\n   * ```\n   * new Popper(referenceObject, popperNode);\n   * ```\n   *\n   * NB: This feature isn't supported in Internet Explorer 10.\n   * @name referenceObject\n   * @property {Function} data.getBoundingClientRect\n   * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n   * @property {number} data.clientWidth\n   * An ES6 getter that will return the width of the virtual reference element.\n   * @property {number} data.clientHeight\n   * An ES6 getter that will return the height of the virtual reference element.\n   */\n\n\n  Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n  Popper.placements = placements;\n  Popper.Defaults = Defaults;\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.3.1';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var Event$4 = {\n    HIDE: \"hide\" + EVENT_KEY$4,\n    HIDDEN: \"hidden\" + EVENT_KEY$4,\n    SHOW: \"show\" + EVENT_KEY$4,\n    SHOWN: \"shown\" + EVENT_KEY$4,\n    CLICK: \"click\" + EVENT_KEY$4,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$4 + DATA_API_KEY$4,\n    KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4,\n    KEYUP_DATA_API: \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4\n  };\n  var ClassName$4 = {\n    DISABLED: 'disabled',\n    SHOW: 'show',\n    DROPUP: 'dropup',\n    DROPRIGHT: 'dropright',\n    DROPLEFT: 'dropleft',\n    MENURIGHT: 'dropdown-menu-right',\n    MENULEFT: 'dropdown-menu-left',\n    POSITION_STATIC: 'position-static'\n  };\n  var Selector$4 = {\n    DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n    FORM_CHILD: '.dropdown form',\n    MENU: '.dropdown-menu',\n    NAVBAR_NAV: '.navbar-nav',\n    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  };\n  var AttachmentMap = {\n    TOP: 'top-start',\n    TOPEND: 'top-end',\n    BOTTOM: 'bottom-start',\n    BOTTOMEND: 'bottom-end',\n    RIGHT: 'right-start',\n    RIGHTEND: 'right-end',\n    LEFT: 'left-start',\n    LEFTEND: 'left-end'\n  };\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic'\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Dropdown =\n  /*#__PURE__*/\n  function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      var isActive = $(this._menu).hasClass(ClassName$4.SHOW);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n      $(parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Disable totally Popper.js for Dropdown in Navbar\n\n\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName$4.POSITION_STATIC);\n        }\n\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n    };\n\n    _proto.show = function show() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $(parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $(parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$4);\n      $(this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $(this._element).on(Event$4.CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(Selector$4.MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $(this._element.parentNode);\n      var placement = AttachmentMap.BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {\n        placement = AttachmentMap.TOP;\n\n        if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND;\n        }\n      } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT;\n      } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {\n        placement = AttachmentMap.LEFT;\n      } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        } // Disable Popper.js if we have a static display\n\n      };\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return popperConfig;\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $(this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $(toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$(parent).hasClass(ClassName$4.SHOW)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n        $(parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n        $(dropdownMenu).removeClass(ClassName$4.SHOW);\n        $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $(parent).hasClass(ClassName$4.SHOW);\n\n      if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);\n          $(toggle).trigger('focus');\n        }\n\n        $(this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + \" \" + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($(this), 'toggle');\n  }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$4] = Dropdown._jQueryInterface;\n  $.fn[NAME$4].Constructor = Dropdown;\n\n  $.fn[NAME$4].noConflict = function () {\n    $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.3.1';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var Event$5 = {\n    HIDE: \"hide\" + EVENT_KEY$5,\n    HIDDEN: \"hidden\" + EVENT_KEY$5,\n    SHOW: \"show\" + EVENT_KEY$5,\n    SHOWN: \"shown\" + EVENT_KEY$5,\n    FOCUSIN: \"focusin\" + EVENT_KEY$5,\n    RESIZE: \"resize\" + EVENT_KEY$5,\n    CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY$5,\n    KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY$5,\n    MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY$5,\n    MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY$5,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$5 + DATA_API_KEY$5\n  };\n  var ClassName$5 = {\n    SCROLLABLE: 'modal-dialog-scrollable',\n    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n    BACKDROP: 'modal-backdrop',\n    OPEN: 'modal-open',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$5 = {\n    DIALOG: '.modal-dialog',\n    MODAL_BODY: '.modal-body',\n    DATA_TOGGLE: '[data-toggle=\"modal\"]',\n    DATA_DISMISS: '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT: '.sticky-top'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Modal =\n  /*#__PURE__*/\n  function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(Selector$5.DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($(this._element).hasClass(ClassName$5.FADE)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $.Event(Event$5.SHOW, {\n        relatedTarget: relatedTarget\n      });\n      $(this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {\n        $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {\n          if ($(event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $.Event(Event$5.HIDE);\n      $(this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $(this._element).hasClass(ClassName$5.FADE);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $(document).off(Event$5.FOCUSIN);\n      $(this._element).removeClass(ClassName$5.SHOW);\n      $(this._element).off(Event$5.CLICK_DISMISS);\n      $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $(htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `Event.CLICK_DATA_API` event that should remain\n       */\n\n      $(document).off(Event$5.FOCUSIN);\n      $.removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this3 = this;\n\n      var transition = $(this._element).hasClass(ClassName$5.FADE);\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {\n        this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $(this._element).addClass(ClassName$5.SHOW);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $.Event(Event$5.SHOWN, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this3._config.focus) {\n          _this3._element.focus();\n        }\n\n        _this3._isTransitioning = false;\n        $(_this3._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this4 = this;\n\n      $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop\n      .on(Event$5.FOCUSIN, function (event) {\n        if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {\n          _this4._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this5 = this;\n\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {\n          if (event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this5.hide();\n          }\n        });\n      } else if (!this._isShown) {\n        $(this._element).off(Event$5.KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $(window).on(Event$5.RESIZE, function (event) {\n          return _this6.handleUpdate(event);\n        });\n      } else {\n        $(window).off(Event$5.RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this7 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $(document.body).removeClass(ClassName$5.OPEN);\n\n        _this7._resetAdjustments();\n\n        _this7._resetScrollbar();\n\n        $(_this7._element).trigger(Event$5.HIDDEN);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this8 = this;\n\n      var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = ClassName$5.BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $(this._backdrop).appendTo(document.body);\n        $(this._element).on(Event$5.CLICK_DISMISS, function (event) {\n          if (_this8._ignoreBackdropClick) {\n            _this8._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this8._config.backdrop === 'static') {\n            _this8._element.focus();\n          } else {\n            _this8.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $(this._backdrop).addClass(ClassName$5.SHOW);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName$5.SHOW);\n\n        var callbackRemove = function callbackRemove() {\n          _this8._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($(this._element).hasClass(ClassName$5.FADE)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this9 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding\n\n        $(fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $(element).css('padding-right');\n          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $(stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $(element).css('margin-right');\n          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $(document.body).css('padding-right');\n        $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $(document.body).addClass(ClassName$5.OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n      $(fixedContent).each(function (index, element) {\n        var padding = $(element).data('padding-right');\n        $(element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + Selector$5.STICKY_CONTENT));\n      $(elements).each(function (index, element) {\n        var margin = $(element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $(document.body).data('padding-right');\n      $(document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$5);\n\n        var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $(this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {\n    var _this10 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $(target).one(Event$5.SHOW, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(Event$5.HIDDEN, function () {\n        if ($(_this10).is(':visible')) {\n          _this10.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($(target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$5] = Modal._jQueryInterface;\n  $.fn[NAME$5].Constructor = Modal;\n\n  $.fn[NAME$5].noConflict = function () {\n    $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n    /**\n     * A pattern that recognizes a commonly useful subset of URLs that are safe.\n     *\n     * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n     */\n\n  };\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, l = regExp.length; i < l; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i, len);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.3.1';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object'\n  };\n  var AttachmentMap$1 = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist\n  };\n  var HoverState = {\n    SHOW: 'show',\n    OUT: 'out'\n  };\n  var Event$6 = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var ClassName$6 = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$6 = {\n    TOOLTIP: '.tooltip',\n    TOOLTIP_INNER: '.tooltip-inner',\n    ARROW: '.arrow'\n  };\n  var Trigger = {\n    HOVER: 'hover',\n    FOCUS: 'focus',\n    CLICK: 'click',\n    MANUAL: 'manual'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Tooltip =\n  /*#__PURE__*/\n  function () {\n    function Tooltip(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $(event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $(event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $.removeData(this.element, this.constructor.DATA_KEY);\n      $(this.element).off(this.constructor.EVENT_KEY);\n      $(this.element).closest('.modal').off('hide.bs.modal');\n\n      if (this.tip) {\n        $(this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $.Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName$6.FADE);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $(tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container);\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: this._getOffset(),\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector$6.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: function onCreate(data) {\n            if (data.originalPlacement !== data.placement) {\n              _this._handlePopperPlacementChange(data);\n            }\n          },\n          onUpdate: function onUpdate(data) {\n            return _this._handlePopperPlacementChange(data);\n          }\n        });\n        $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $(_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HoverState.OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($(this.tip).hasClass(ClassName$6.FADE)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $.Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $(this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop);\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false;\n      this._activeTrigger[Trigger.FOCUS] = false;\n      this._activeTrigger[Trigger.HOVER] = false;\n\n      if ($(this.tip).hasClass(ClassName$6.FADE)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());\n      $(tip).removeClass(ClassName$6.FADE + \" \" + ClassName$6.SHOW);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($(content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getOffset = function _getOffset() {\n      var _this3 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $(this.config.container);\n      }\n\n      return $(document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap$1[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this4 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {\n            return _this4.toggle(event);\n          });\n        } else if (trigger !== Trigger.MANUAL) {\n          var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;\n          var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;\n          $(_this4.element).on(eventIn, _this4.config.selector, function (event) {\n            return _this4._enter(event);\n          }).on(eventOut, _this4.config.selector, function (event) {\n            return _this4._leave(event);\n          });\n        }\n      });\n      $(this.element).closest('.modal').on('hide.bs.modal', function () {\n        if (_this4.element) {\n          _this4.hide();\n        }\n      });\n\n      if (this.config.selector) {\n        this.config = _objectSpread({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HoverState.SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HoverState.OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $(this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      var popperInstance = popperData.instance;\n      this.tip = popperInstance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $(tip).removeClass(ClassName$6.FADE);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $(this).data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$6;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$6] = Tooltip._jQueryInterface;\n  $.fn[NAME$6].Constructor = Tooltip;\n\n  $.fn[NAME$6].noConflict = function () {\n    $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.3.1';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _objectSpread({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var ClassName$7 = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$7 = {\n    TITLE: '.popover-header',\n    CONTENT: '.popover-body'\n  };\n  var Event$7 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Popover =\n  /*#__PURE__*/\n  function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(Selector$7.CONTENT), content);\n      $tip.removeClass(ClassName$7.FADE + \" \" + ClassName$7.SHOW);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $(this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$7;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$7] = Popover._jQueryInterface;\n  $.fn[NAME$7].Constructor = Popover;\n\n  $.fn[NAME$7].noConflict = function () {\n    $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.3.1';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var Event$8 = {\n    ACTIVATE: \"activate\" + EVENT_KEY$8,\n    SCROLL: \"scroll\" + EVENT_KEY$8,\n    LOAD_DATA_API: \"load\" + EVENT_KEY$8 + DATA_API_KEY$6\n  };\n  var ClassName$8 = {\n    DROPDOWN_ITEM: 'dropdown-item',\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active'\n  };\n  var Selector$8 = {\n    DATA_SPY: '[data-spy=\"scroll\"]',\n    ACTIVE: '.active',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    NAV_LINKS: '.nav-link',\n    NAV_ITEMS: '.nav-item',\n    LIST_ITEMS: '.list-group-item',\n    DROPDOWN: '.dropdown',\n    DROPDOWN_ITEMS: '.dropdown-item',\n    DROPDOWN_TOGGLE: '.dropdown-toggle'\n  };\n  var OffsetMethod = {\n    OFFSET: 'offset',\n    POSITION: 'position'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var ScrollSpy =\n  /*#__PURE__*/\n  function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + Selector$8.NAV_LINKS + \",\" + (this._config.target + \" \" + Selector$8.LIST_ITEMS + \",\") + (this._config.target + \" \" + Selector$8.DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $(this._scrollElement).on(Event$8.SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$8);\n      $(this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string') {\n        var id = $(config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $(config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      var offsetLength = this._offsets.length;\n\n      for (var i = offsetLength; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {\n        $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);\n        $link.addClass(ClassName$8.ACTIVE);\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + \", \" + Selector$8.LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);\n      }\n\n      $(this._scrollElement).trigger(Event$8.ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(ClassName$8.ACTIVE);\n      }).forEach(function (node) {\n        return node.classList.remove(ClassName$8.ACTIVE);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $(this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(window).on(Event$8.LOAD_DATA_API, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $(scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $.fn[NAME$8].Constructor = ScrollSpy;\n\n  $.fn[NAME$8].noConflict = function () {\n    $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.3.1';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];\n  var Event$9 = {\n    HIDE: \"hide\" + EVENT_KEY$9,\n    HIDDEN: \"hidden\" + EVENT_KEY$9,\n    SHOW: \"show\" + EVENT_KEY$9,\n    SHOWN: \"shown\" + EVENT_KEY$9,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$9 + DATA_API_KEY$7\n  };\n  var ClassName$9 = {\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active',\n    DISABLED: 'disabled',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$9 = {\n    DROPDOWN: '.dropdown',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    ACTIVE: '.active',\n    ACTIVE_UL: '> li > .active',\n    DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE: '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Tab =\n  /*#__PURE__*/\n  function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;\n        previous = $.makeArray($(listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $.Event(Event$9.HIDE, {\n        relatedTarget: this._element\n      });\n      var showEvent = $.Event(Event$9.SHOW, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $(previous).trigger(hideEvent);\n      }\n\n      $(this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $.Event(Event$9.HIDDEN, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $.Event(Event$9.SHOWN, {\n          relatedTarget: previous\n        });\n        $(previous).trigger(hiddenEvent);\n        $(_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(ClassName$9.ACTIVE);\n        var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName$9.ACTIVE);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $(element).addClass(ClassName$9.ACTIVE);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(ClassName$9.FADE)) {\n        element.classList.add(ClassName$9.SHOW);\n      }\n\n      if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {\n        var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));\n          $(dropdownToggleList).addClass(ClassName$9.ACTIVE);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($(this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$9] = Tab._jQueryInterface;\n  $.fn[NAME$9].Constructor = Tab;\n\n  $.fn[NAME$9].noConflict = function () {\n    $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.3.1';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];\n  var Event$a = {\n    CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY$a,\n    HIDE: \"hide\" + EVENT_KEY$a,\n    HIDDEN: \"hidden\" + EVENT_KEY$a,\n    SHOW: \"show\" + EVENT_KEY$a,\n    SHOWN: \"shown\" + EVENT_KEY$a\n  };\n  var ClassName$a = {\n    FADE: 'fade',\n    HIDE: 'hide',\n    SHOW: 'show',\n    SHOWING: 'showing'\n  };\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var Selector$a = {\n    DATA_DISMISS: '[data-dismiss=\"toast\"]'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Toast =\n  /*#__PURE__*/\n  function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      $(this._element).trigger(Event$a.SHOW);\n\n      if (this._config.animation) {\n        this._element.classList.add(ClassName$a.FADE);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(ClassName$a.SHOWING);\n\n        _this._element.classList.add(ClassName$a.SHOW);\n\n        $(_this._element).trigger(Event$a.SHOWN);\n\n        if (_this._config.autohide) {\n          _this.hide();\n        }\n      };\n\n      this._element.classList.remove(ClassName$a.HIDE);\n\n      this._element.classList.add(ClassName$a.SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide(withoutTimeout) {\n      var _this2 = this;\n\n      if (!this._element.classList.contains(ClassName$a.SHOW)) {\n        return;\n      }\n\n      $(this._element).trigger(Event$a.HIDE);\n\n      if (withoutTimeout) {\n        this._close();\n      } else {\n        this._timeout = setTimeout(function () {\n          _this2._close();\n        }, this._config.delay);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n\n      if (this._element.classList.contains(ClassName$a.SHOW)) {\n        this._element.classList.remove(ClassName$a.SHOW);\n      }\n\n      $(this._element).off(Event$a.CLICK_DISMISS);\n      $.removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this3 = this;\n\n      $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {\n        return _this3.hide(true);\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this4 = this;\n\n      var complete = function complete() {\n        _this4._element.classList.add(ClassName$a.HIDE);\n\n        $(_this4._element).trigger(Event$a.HIDDEN);\n      };\n\n      this._element.classList.remove(ClassName$a.SHOW);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $(this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$a] = Toast._jQueryInterface;\n  $.fn[NAME$a].Constructor = Toast;\n\n  $.fn[NAME$a].noConflict = function () {\n    $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): index.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n\n  (function () {\n    if (typeof $ === 'undefined') {\n      throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n    }\n\n    var version = $.fn.jquery.split(' ')[0].split('.');\n    var minMajor = 1;\n    var ltMajor = 2;\n    var minMinor = 9;\n    var minPatch = 1;\n    var maxMajor = 4;\n\n    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n      throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n    }\n  })();\n\n  exports.Util = Util;\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=bootstrap.bundle.js.map\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/bootstrap/js/bootstrap.js",
    "content": "/*!\n  * Bootstrap v4.3.1 (https://getbootstrap.com/)\n  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n  */\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n  (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n}(this, function (exports, $, Popper) { 'use strict';\n\n  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;\n  Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;\n\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) _defineProperties(Constructor, staticProps);\n    return Constructor;\n  }\n\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  }\n\n  function _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i] != null ? arguments[i] : {};\n      var ownKeys = Object.keys(source);\n\n      if (typeof Object.getOwnPropertySymbols === 'function') {\n        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n          return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n        }));\n      }\n\n      ownKeys.forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    }\n\n    return target;\n  }\n\n  function _inheritsLoose(subClass, superClass) {\n    subClass.prototype = Object.create(superClass.prototype);\n    subClass.prototype.constructor = subClass;\n    subClass.__proto__ = superClass;\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): util.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  var TRANSITION_END = 'transitionend';\n  var MAX_UID = 1000000;\n  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: TRANSITION_END,\n      delegateType: TRANSITION_END,\n      handle: function handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n        }\n\n        return undefined; // eslint-disable-line no-undefined\n      }\n    };\n  }\n\n  function transitionEndEmulator(duration) {\n    var _this = this;\n\n    var called = false;\n    $(this).one(Util.TRANSITION_END, function () {\n      called = true;\n    });\n    setTimeout(function () {\n      if (!called) {\n        Util.triggerTransitionEnd(_this);\n      }\n    }, duration);\n    return this;\n  }\n\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator;\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n  }\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n\n  var Util = {\n    TRANSITION_END: 'bsTransitionEnd',\n    getUID: function getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix));\n\n      return prefix;\n    },\n    getSelectorFromElement: function getSelectorFromElement(element) {\n      var selector = element.getAttribute('data-target');\n\n      if (!selector || selector === '#') {\n        var hrefAttr = element.getAttribute('href');\n        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n      }\n\n      try {\n        return document.querySelector(selector) ? selector : null;\n      } catch (err) {\n        return null;\n      }\n    },\n    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n      if (!element) {\n        return 0;\n      } // Get transition-duration of the element\n\n\n      var transitionDuration = $(element).css('transition-duration');\n      var transitionDelay = $(element).css('transition-delay');\n      var floatTransitionDuration = parseFloat(transitionDuration);\n      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n      if (!floatTransitionDuration && !floatTransitionDelay) {\n        return 0;\n      } // If multiple durations are defined, take the first\n\n\n      transitionDuration = transitionDuration.split(',')[0];\n      transitionDelay = transitionDelay.split(',')[0];\n      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n    },\n    reflow: function reflow(element) {\n      return element.offsetHeight;\n    },\n    triggerTransitionEnd: function triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END);\n    },\n    // TODO: Remove in v5\n    supportsTransitionEnd: function supportsTransitionEnd() {\n      return Boolean(TRANSITION_END);\n    },\n    isElement: function isElement(obj) {\n      return (obj[0] || obj).nodeType;\n    },\n    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n      for (var property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          var expectedTypes = configTypes[property];\n          var value = config[property];\n          var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n          }\n        }\n      }\n    },\n    findShadowRoot: function findShadowRoot(element) {\n      if (!document.documentElement.attachShadow) {\n        return null;\n      } // Can find the shadow root otherwise it'll return the document\n\n\n      if (typeof element.getRootNode === 'function') {\n        var root = element.getRootNode();\n        return root instanceof ShadowRoot ? root : null;\n      }\n\n      if (element instanceof ShadowRoot) {\n        return element;\n      } // when we don't find a shadow root\n\n\n      if (!element.parentNode) {\n        return null;\n      }\n\n      return Util.findShadowRoot(element.parentNode);\n    }\n  };\n  setTransitionEndSupport();\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME = 'alert';\n  var VERSION = '4.3.1';\n  var DATA_KEY = 'bs.alert';\n  var EVENT_KEY = \".\" + DATA_KEY;\n  var DATA_API_KEY = '.data-api';\n  var JQUERY_NO_CONFLICT = $.fn[NAME];\n  var Selector = {\n    DISMISS: '[data-dismiss=\"alert\"]'\n  };\n  var Event = {\n    CLOSE: \"close\" + EVENT_KEY,\n    CLOSED: \"closed\" + EVENT_KEY,\n    CLICK_DATA_API: \"click\" + EVENT_KEY + DATA_API_KEY\n  };\n  var ClassName = {\n    ALERT: 'alert',\n    FADE: 'fade',\n    SHOW: 'show'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Alert =\n  /*#__PURE__*/\n  function () {\n    function Alert(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Alert.prototype;\n\n    // Public\n    _proto.close = function close(element) {\n      var rootElement = this._element;\n\n      if (element) {\n        rootElement = this._getRootElement(element);\n      }\n\n      var customEvent = this._triggerCloseEvent(rootElement);\n\n      if (customEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._removeElement(rootElement);\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._getRootElement = function _getRootElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      var parent = false;\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      if (!parent) {\n        parent = $(element).closest(\".\" + ClassName.ALERT)[0];\n      }\n\n      return parent;\n    };\n\n    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n      var closeEvent = $.Event(Event.CLOSE);\n      $(element).trigger(closeEvent);\n      return closeEvent;\n    };\n\n    _proto._removeElement = function _removeElement(element) {\n      var _this = this;\n\n      $(element).removeClass(ClassName.SHOW);\n\n      if (!$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element);\n\n        return;\n      }\n\n      var transitionDuration = Util.getTransitionDurationFromElement(element);\n      $(element).one(Util.TRANSITION_END, function (event) {\n        return _this._destroyElement(element, event);\n      }).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto._destroyElement = function _destroyElement(element) {\n      $(element).detach().trigger(Event.CLOSED).remove();\n    } // Static\n    ;\n\n    Alert._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $(this);\n        var data = $element.data(DATA_KEY);\n\n        if (!data) {\n          data = new Alert(this);\n          $element.data(DATA_KEY, data);\n        }\n\n        if (config === 'close') {\n          data[config](this);\n        }\n      });\n    };\n\n    Alert._handleDismiss = function _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault();\n        }\n\n        alertInstance.close(this);\n      };\n    };\n\n    _createClass(Alert, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION;\n      }\n    }]);\n\n    return Alert;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Alert._jQueryInterface;\n  $.fn[NAME].Constructor = Alert;\n\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT;\n    return Alert._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$1 = 'button';\n  var VERSION$1 = '4.3.1';\n  var DATA_KEY$1 = 'bs.button';\n  var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n  var DATA_API_KEY$1 = '.data-api';\n  var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];\n  var ClassName$1 = {\n    ACTIVE: 'active',\n    BUTTON: 'btn',\n    FOCUS: 'focus'\n  };\n  var Selector$1 = {\n    DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n    DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n    INPUT: 'input:not([type=\"hidden\"])',\n    ACTIVE: '.active',\n    BUTTON: '.btn'\n  };\n  var Event$1 = {\n    CLICK_DATA_API: \"click\" + EVENT_KEY$1 + DATA_API_KEY$1,\n    FOCUS_BLUR_DATA_API: \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1)\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Button =\n  /*#__PURE__*/\n  function () {\n    function Button(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Button.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      var triggerChangeEvent = true;\n      var addAriaPressed = true;\n      var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];\n\n      if (rootElement) {\n        var input = this._element.querySelector(Selector$1.INPUT);\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {\n              triggerChangeEvent = false;\n            } else {\n              var activeElement = rootElement.querySelector(Selector$1.ACTIVE);\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName$1.ACTIVE);\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {\n              return;\n            }\n\n            input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);\n            $(input).trigger('change');\n          }\n\n          input.focus();\n          addAriaPressed = false;\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName$1.ACTIVE);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$1);\n      this._element = null;\n    } // Static\n    ;\n\n    Button._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$1);\n\n        if (!data) {\n          data = new Button(this);\n          $(this).data(DATA_KEY$1, data);\n        }\n\n        if (config === 'toggle') {\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Button, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$1;\n      }\n    }]);\n\n    return Button;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n    event.preventDefault();\n    var button = event.target;\n\n    if (!$(button).hasClass(ClassName$1.BUTTON)) {\n      button = $(button).closest(Selector$1.BUTTON);\n    }\n\n    Button._jQueryInterface.call($(button), 'toggle');\n  }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {\n    var button = $(event.target).closest(Selector$1.BUTTON)[0];\n    $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$1] = Button._jQueryInterface;\n  $.fn[NAME$1].Constructor = Button;\n\n  $.fn[NAME$1].noConflict = function () {\n    $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n    return Button._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$2 = 'carousel';\n  var VERSION$2 = '4.3.1';\n  var DATA_KEY$2 = 'bs.carousel';\n  var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n  var DATA_API_KEY$2 = '.data-api';\n  var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];\n  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n  var SWIPE_THRESHOLD = 40;\n  var Default = {\n    interval: 5000,\n    keyboard: true,\n    slide: false,\n    pause: 'hover',\n    wrap: true,\n    touch: true\n  };\n  var DefaultType = {\n    interval: '(number|boolean)',\n    keyboard: 'boolean',\n    slide: '(boolean|string)',\n    pause: '(string|boolean)',\n    wrap: 'boolean',\n    touch: 'boolean'\n  };\n  var Direction = {\n    NEXT: 'next',\n    PREV: 'prev',\n    LEFT: 'left',\n    RIGHT: 'right'\n  };\n  var Event$2 = {\n    SLIDE: \"slide\" + EVENT_KEY$2,\n    SLID: \"slid\" + EVENT_KEY$2,\n    KEYDOWN: \"keydown\" + EVENT_KEY$2,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$2,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$2,\n    TOUCHSTART: \"touchstart\" + EVENT_KEY$2,\n    TOUCHMOVE: \"touchmove\" + EVENT_KEY$2,\n    TOUCHEND: \"touchend\" + EVENT_KEY$2,\n    POINTERDOWN: \"pointerdown\" + EVENT_KEY$2,\n    POINTERUP: \"pointerup\" + EVENT_KEY$2,\n    DRAG_START: \"dragstart\" + EVENT_KEY$2,\n    LOAD_DATA_API: \"load\" + EVENT_KEY$2 + DATA_API_KEY$2,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$2 + DATA_API_KEY$2\n  };\n  var ClassName$2 = {\n    CAROUSEL: 'carousel',\n    ACTIVE: 'active',\n    SLIDE: 'slide',\n    RIGHT: 'carousel-item-right',\n    LEFT: 'carousel-item-left',\n    NEXT: 'carousel-item-next',\n    PREV: 'carousel-item-prev',\n    ITEM: 'carousel-item',\n    POINTER_EVENT: 'pointer-event'\n  };\n  var Selector$2 = {\n    ACTIVE: '.active',\n    ACTIVE_ITEM: '.active.carousel-item',\n    ITEM: '.carousel-item',\n    ITEM_IMG: '.carousel-item img',\n    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n    INDICATORS: '.carousel-indicators',\n    DATA_SLIDE: '[data-slide], [data-slide-to]',\n    DATA_RIDE: '[data-ride=\"carousel\"]'\n  };\n  var PointerType = {\n    TOUCH: 'touch',\n    PEN: 'pen'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Carousel =\n  /*#__PURE__*/\n  function () {\n    function Carousel(element, config) {\n      this._items = null;\n      this._interval = null;\n      this._activeElement = null;\n      this._isPaused = false;\n      this._isSliding = false;\n      this.touchTimeout = null;\n      this.touchStartX = 0;\n      this.touchDeltaX = 0;\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);\n      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Carousel.prototype;\n\n    // Public\n    _proto.next = function next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT);\n      }\n    };\n\n    _proto.nextWhenVisible = function nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {\n        this.next();\n      }\n    };\n\n    _proto.prev = function prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV);\n      }\n    };\n\n    _proto.pause = function pause(event) {\n      if (!event) {\n        this._isPaused = true;\n      }\n\n      if (this._element.querySelector(Selector$2.NEXT_PREV)) {\n        Util.triggerTransitionEnd(this._element);\n        this.cycle(true);\n      }\n\n      clearInterval(this._interval);\n      this._interval = null;\n    };\n\n    _proto.cycle = function cycle(event) {\n      if (!event) {\n        this._isPaused = false;\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval);\n        this._interval = null;\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n      }\n    };\n\n    _proto.to = function to(index) {\n      var _this = this;\n\n      this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n\n      var activeIndex = this._getItemIndex(this._activeElement);\n\n      if (index > this._items.length - 1 || index < 0) {\n        return;\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event$2.SLID, function () {\n          return _this.to(index);\n        });\n        return;\n      }\n\n      if (activeIndex === index) {\n        this.pause();\n        this.cycle();\n        return;\n      }\n\n      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;\n\n      this._slide(direction, this._items[index]);\n    };\n\n    _proto.dispose = function dispose() {\n      $(this._element).off(EVENT_KEY$2);\n      $.removeData(this._element, DATA_KEY$2);\n      this._items = null;\n      this._config = null;\n      this._element = null;\n      this._interval = null;\n      this._isPaused = null;\n      this._isSliding = null;\n      this._activeElement = null;\n      this._indicatorsElement = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default, config);\n      Util.typeCheckConfig(NAME$2, config, DefaultType);\n      return config;\n    };\n\n    _proto._handleSwipe = function _handleSwipe() {\n      var absDeltax = Math.abs(this.touchDeltaX);\n\n      if (absDeltax <= SWIPE_THRESHOLD) {\n        return;\n      }\n\n      var direction = absDeltax / this.touchDeltaX; // swipe left\n\n      if (direction > 0) {\n        this.prev();\n      } // swipe right\n\n\n      if (direction < 0) {\n        this.next();\n      }\n    };\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this2 = this;\n\n      if (this._config.keyboard) {\n        $(this._element).on(Event$2.KEYDOWN, function (event) {\n          return _this2._keydown(event);\n        });\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element).on(Event$2.MOUSEENTER, function (event) {\n          return _this2.pause(event);\n        }).on(Event$2.MOUSELEAVE, function (event) {\n          return _this2.cycle(event);\n        });\n      }\n\n      if (this._config.touch) {\n        this._addTouchEventListeners();\n      }\n    };\n\n    _proto._addTouchEventListeners = function _addTouchEventListeners() {\n      var _this3 = this;\n\n      if (!this._touchSupported) {\n        return;\n      }\n\n      var start = function start(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchStartX = event.originalEvent.clientX;\n        } else if (!_this3._pointerEvent) {\n          _this3.touchStartX = event.originalEvent.touches[0].clientX;\n        }\n      };\n\n      var move = function move(event) {\n        // ensure swiping with one touch and not pinching\n        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n          _this3.touchDeltaX = 0;\n        } else {\n          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n        }\n      };\n\n      var end = function end(event) {\n        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n        }\n\n        _this3._handleSwipe();\n\n        if (_this3._config.pause === 'hover') {\n          // If it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          _this3.pause();\n\n          if (_this3.touchTimeout) {\n            clearTimeout(_this3.touchTimeout);\n          }\n\n          _this3.touchTimeout = setTimeout(function (event) {\n            return _this3.cycle(event);\n          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n        }\n      };\n\n      $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {\n        return e.preventDefault();\n      });\n\n      if (this._pointerEvent) {\n        $(this._element).on(Event$2.POINTERDOWN, function (event) {\n          return start(event);\n        });\n        $(this._element).on(Event$2.POINTERUP, function (event) {\n          return end(event);\n        });\n\n        this._element.classList.add(ClassName$2.POINTER_EVENT);\n      } else {\n        $(this._element).on(Event$2.TOUCHSTART, function (event) {\n          return start(event);\n        });\n        $(this._element).on(Event$2.TOUCHMOVE, function (event) {\n          return move(event);\n        });\n        $(this._element).on(Event$2.TOUCHEND, function (event) {\n          return end(event);\n        });\n      }\n    };\n\n    _proto._keydown = function _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return;\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault();\n          this.prev();\n          break;\n\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault();\n          this.next();\n          break;\n\n        default:\n      }\n    };\n\n    _proto._getItemIndex = function _getItemIndex(element) {\n      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];\n      return this._items.indexOf(element);\n    };\n\n    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n      var isNextDirection = direction === Direction.NEXT;\n      var isPrevDirection = direction === Direction.PREV;\n\n      var activeIndex = this._getItemIndex(activeElement);\n\n      var lastItemIndex = this._items.length - 1;\n      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement;\n      }\n\n      var delta = direction === Direction.PREV ? -1 : 1;\n      var itemIndex = (activeIndex + delta) % this._items.length;\n      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n    };\n\n    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      var targetIndex = this._getItemIndex(relatedTarget);\n\n      var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));\n\n      var slideEvent = $.Event(Event$2.SLIDE, {\n        relatedTarget: relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      });\n      $(this._element).trigger(slideEvent);\n      return slideEvent;\n    };\n\n    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));\n        $(indicators).removeClass(ClassName$2.ACTIVE);\n\n        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName$2.ACTIVE);\n        }\n      }\n    };\n\n    _proto._slide = function _slide(direction, element) {\n      var _this4 = this;\n\n      var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);\n\n      var activeElementIndex = this._getItemIndex(activeElement);\n\n      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n      var nextElementIndex = this._getItemIndex(nextElement);\n\n      var isCycling = Boolean(this._interval);\n      var directionalClassName;\n      var orderClassName;\n      var eventDirectionName;\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName$2.LEFT;\n        orderClassName = ClassName$2.NEXT;\n        eventDirectionName = Direction.LEFT;\n      } else {\n        directionalClassName = ClassName$2.RIGHT;\n        orderClassName = ClassName$2.PREV;\n        eventDirectionName = Direction.RIGHT;\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {\n        this._isSliding = false;\n        return;\n      }\n\n      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n      if (slideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (!activeElement || !nextElement) {\n        // Some weirdness is happening, so we bail\n        return;\n      }\n\n      this._isSliding = true;\n\n      if (isCycling) {\n        this.pause();\n      }\n\n      this._setActiveIndicatorElement(nextElement);\n\n      var slidEvent = $.Event(Event$2.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      });\n\n      if ($(this._element).hasClass(ClassName$2.SLIDE)) {\n        $(nextElement).addClass(orderClassName);\n        Util.reflow(nextElement);\n        $(activeElement).addClass(directionalClassName);\n        $(nextElement).addClass(directionalClassName);\n        var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);\n\n        if (nextElementInterval) {\n          this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n          this._config.interval = nextElementInterval;\n        } else {\n          this._config.interval = this._config.defaultInterval || this._config.interval;\n        }\n\n        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n        $(activeElement).one(Util.TRANSITION_END, function () {\n          $(nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(ClassName$2.ACTIVE);\n          $(activeElement).removeClass(ClassName$2.ACTIVE + \" \" + orderClassName + \" \" + directionalClassName);\n          _this4._isSliding = false;\n          setTimeout(function () {\n            return $(_this4._element).trigger(slidEvent);\n          }, 0);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        $(activeElement).removeClass(ClassName$2.ACTIVE);\n        $(nextElement).addClass(ClassName$2.ACTIVE);\n        this._isSliding = false;\n        $(this._element).trigger(slidEvent);\n      }\n\n      if (isCycling) {\n        this.cycle();\n      }\n    } // Static\n    ;\n\n    Carousel._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$2);\n\n        var _config = _objectSpread({}, Default, $(this).data());\n\n        if (typeof config === 'object') {\n          _config = _objectSpread({}, _config, config);\n        }\n\n        var action = typeof config === 'string' ? config : _config.slide;\n\n        if (!data) {\n          data = new Carousel(this, _config);\n          $(this).data(DATA_KEY$2, data);\n        }\n\n        if (typeof config === 'number') {\n          data.to(config);\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n          }\n\n          data[action]();\n        } else if (_config.interval && _config.ride) {\n          data.pause();\n          data.cycle();\n        }\n      });\n    };\n\n    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n      var selector = Util.getSelectorFromElement(this);\n\n      if (!selector) {\n        return;\n      }\n\n      var target = $(selector)[0];\n\n      if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {\n        return;\n      }\n\n      var config = _objectSpread({}, $(target).data(), $(this).data());\n\n      var slideIndex = this.getAttribute('data-slide-to');\n\n      if (slideIndex) {\n        config.interval = false;\n      }\n\n      Carousel._jQueryInterface.call($(target), config);\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY$2).to(slideIndex);\n      }\n\n      event.preventDefault();\n    };\n\n    _createClass(Carousel, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$2;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default;\n      }\n    }]);\n\n    return Carousel;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);\n  $(window).on(Event$2.LOAD_DATA_API, function () {\n    var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));\n\n    for (var i = 0, len = carousels.length; i < len; i++) {\n      var $carousel = $(carousels[i]);\n\n      Carousel._jQueryInterface.call($carousel, $carousel.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$2] = Carousel._jQueryInterface;\n  $.fn[NAME$2].Constructor = Carousel;\n\n  $.fn[NAME$2].noConflict = function () {\n    $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n    return Carousel._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$3 = 'collapse';\n  var VERSION$3 = '4.3.1';\n  var DATA_KEY$3 = 'bs.collapse';\n  var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n  var DATA_API_KEY$3 = '.data-api';\n  var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];\n  var Default$1 = {\n    toggle: true,\n    parent: ''\n  };\n  var DefaultType$1 = {\n    toggle: 'boolean',\n    parent: '(string|element)'\n  };\n  var Event$3 = {\n    SHOW: \"show\" + EVENT_KEY$3,\n    SHOWN: \"shown\" + EVENT_KEY$3,\n    HIDE: \"hide\" + EVENT_KEY$3,\n    HIDDEN: \"hidden\" + EVENT_KEY$3,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$3 + DATA_API_KEY$3\n  };\n  var ClassName$3 = {\n    SHOW: 'show',\n    COLLAPSE: 'collapse',\n    COLLAPSING: 'collapsing',\n    COLLAPSED: 'collapsed'\n  };\n  var Dimension = {\n    WIDTH: 'width',\n    HEIGHT: 'height'\n  };\n  var Selector$3 = {\n    ACTIVES: '.show, .collapsing',\n    DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Collapse =\n  /*#__PURE__*/\n  function () {\n    function Collapse(element, config) {\n      this._isTransitioning = false;\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n      var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));\n\n      for (var i = 0, len = toggleList.length; i < len; i++) {\n        var elem = toggleList[i];\n        var selector = Util.getSelectorFromElement(elem);\n        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n          return foundElem === element;\n        });\n\n        if (selector !== null && filterElement.length > 0) {\n          this._selector = selector;\n\n          this._triggerArray.push(elem);\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null;\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n      }\n\n      if (this._config.toggle) {\n        this.toggle();\n      }\n    } // Getters\n\n\n    var _proto = Collapse.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if ($(this._element).hasClass(ClassName$3.SHOW)) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {\n        return;\n      }\n\n      var actives;\n      var activesData;\n\n      if (this._parent) {\n        actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {\n          if (typeof _this._config.parent === 'string') {\n            return elem.getAttribute('data-parent') === _this._config.parent;\n          }\n\n          return elem.classList.contains(ClassName$3.COLLAPSE);\n        });\n\n        if (actives.length === 0) {\n          actives = null;\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).not(this._selector).data(DATA_KEY$3);\n\n        if (activesData && activesData._isTransitioning) {\n          return;\n        }\n      }\n\n      var startEvent = $.Event(Event$3.SHOW);\n      $(this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');\n\n        if (!activesData) {\n          $(actives).data(DATA_KEY$3, null);\n        }\n      }\n\n      var dimension = this._getDimension();\n\n      $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);\n      this._element.style[dimension] = 0;\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);\n        _this._element.style[dimension] = '';\n\n        _this.setTransitioning(false);\n\n        $(_this._element).trigger(Event$3.SHOWN);\n      };\n\n      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n      var scrollSize = \"scroll\" + capitalizedDimension;\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      this._element.style[dimension] = this._element[scrollSize] + \"px\";\n    };\n\n    _proto.hide = function hide() {\n      var _this2 = this;\n\n      if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {\n        return;\n      }\n\n      var startEvent = $.Event(Event$3.HIDE);\n      $(this._element).trigger(startEvent);\n\n      if (startEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      var dimension = this._getDimension();\n\n      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n      Util.reflow(this._element);\n      $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);\n      var triggerArrayLength = this._triggerArray.length;\n\n      if (triggerArrayLength > 0) {\n        for (var i = 0; i < triggerArrayLength; i++) {\n          var trigger = this._triggerArray[i];\n          var selector = Util.getSelectorFromElement(trigger);\n\n          if (selector !== null) {\n            var $elem = $([].slice.call(document.querySelectorAll(selector)));\n\n            if (!$elem.hasClass(ClassName$3.SHOW)) {\n              $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true);\n\n      var complete = function complete() {\n        _this2.setTransitioning(false);\n\n        $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);\n      };\n\n      this._element.style[dimension] = '';\n      var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n    };\n\n    _proto.setTransitioning = function setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning;\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$3);\n      this._config = null;\n      this._parent = null;\n      this._element = null;\n      this._triggerArray = null;\n      this._isTransitioning = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$1, config);\n      config.toggle = Boolean(config.toggle); // Coerce string values\n\n      Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n      return config;\n    };\n\n    _proto._getDimension = function _getDimension() {\n      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\n    };\n\n    _proto._getParent = function _getParent() {\n      var _this3 = this;\n\n      var parent;\n\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent; // It's a jQuery object\n\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0];\n        }\n      } else {\n        parent = document.querySelector(this._config.parent);\n      }\n\n      var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n      var children = [].slice.call(parent.querySelectorAll(selector));\n      $(children).each(function (i, element) {\n        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n      });\n      return parent;\n    };\n\n    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n      var isOpen = $(element).hasClass(ClassName$3.SHOW);\n\n      if (triggerArray.length) {\n        $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n      }\n    } // Static\n    ;\n\n    Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n      var selector = Util.getSelectorFromElement(element);\n      return selector ? document.querySelector(selector) : null;\n    };\n\n    Collapse._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY$3);\n\n        var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false;\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config);\n          $this.data(DATA_KEY$3, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Collapse, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$3;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$1;\n      }\n    }]);\n\n    return Collapse;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault();\n    }\n\n    var $trigger = $(this);\n    var selector = Util.getSelectorFromElement(this);\n    var selectors = [].slice.call(document.querySelectorAll(selector));\n    $(selectors).each(function () {\n      var $target = $(this);\n      var data = $target.data(DATA_KEY$3);\n      var config = data ? 'toggle' : $trigger.data();\n\n      Collapse._jQueryInterface.call($target, config);\n    });\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$3] = Collapse._jQueryInterface;\n  $.fn[NAME$3].Constructor = Collapse;\n\n  $.fn[NAME$3].noConflict = function () {\n    $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n    return Collapse._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$4 = 'dropdown';\n  var VERSION$4 = '4.3.1';\n  var DATA_KEY$4 = 'bs.dropdown';\n  var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n  var DATA_API_KEY$4 = '.data-api';\n  var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];\n  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n  var Event$4 = {\n    HIDE: \"hide\" + EVENT_KEY$4,\n    HIDDEN: \"hidden\" + EVENT_KEY$4,\n    SHOW: \"show\" + EVENT_KEY$4,\n    SHOWN: \"shown\" + EVENT_KEY$4,\n    CLICK: \"click\" + EVENT_KEY$4,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$4 + DATA_API_KEY$4,\n    KEYDOWN_DATA_API: \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4,\n    KEYUP_DATA_API: \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4\n  };\n  var ClassName$4 = {\n    DISABLED: 'disabled',\n    SHOW: 'show',\n    DROPUP: 'dropup',\n    DROPRIGHT: 'dropright',\n    DROPLEFT: 'dropleft',\n    MENURIGHT: 'dropdown-menu-right',\n    MENULEFT: 'dropdown-menu-left',\n    POSITION_STATIC: 'position-static'\n  };\n  var Selector$4 = {\n    DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n    FORM_CHILD: '.dropdown form',\n    MENU: '.dropdown-menu',\n    NAVBAR_NAV: '.navbar-nav',\n    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n  };\n  var AttachmentMap = {\n    TOP: 'top-start',\n    TOPEND: 'top-end',\n    BOTTOM: 'bottom-start',\n    BOTTOMEND: 'bottom-end',\n    RIGHT: 'right-start',\n    RIGHTEND: 'right-end',\n    LEFT: 'left-start',\n    LEFTEND: 'left-end'\n  };\n  var Default$2 = {\n    offset: 0,\n    flip: true,\n    boundary: 'scrollParent',\n    reference: 'toggle',\n    display: 'dynamic'\n  };\n  var DefaultType$2 = {\n    offset: '(number|string|function)',\n    flip: 'boolean',\n    boundary: '(string|element)',\n    reference: '(string|element)',\n    display: 'string'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Dropdown =\n  /*#__PURE__*/\n  function () {\n    function Dropdown(element, config) {\n      this._element = element;\n      this._popper = null;\n      this._config = this._getConfig(config);\n      this._menu = this._getMenuElement();\n      this._inNavbar = this._detectNavbar();\n\n      this._addEventListeners();\n    } // Getters\n\n\n    var _proto = Dropdown.prototype;\n\n    // Public\n    _proto.toggle = function toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      var isActive = $(this._menu).hasClass(ClassName$4.SHOW);\n\n      Dropdown._clearMenus();\n\n      if (isActive) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n      $(parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      } // Disable totally Popper.js for Dropdown in Navbar\n\n\n      if (!this._inNavbar) {\n        /**\n         * Check for Popper dependency\n         * Popper - https://popper.js.org\n         */\n        if (typeof Popper === 'undefined') {\n          throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)');\n        }\n\n        var referenceElement = this._element;\n\n        if (this._config.reference === 'parent') {\n          referenceElement = parent;\n        } else if (Util.isElement(this._config.reference)) {\n          referenceElement = this._config.reference; // Check if it's jQuery element\n\n          if (typeof this._config.reference.jquery !== 'undefined') {\n            referenceElement = this._config.reference[0];\n          }\n        } // If boundary is not `scrollParent`, then set position to `static`\n        // to allow the menu to \"escape\" the scroll parent's boundaries\n        // https://github.com/twbs/bootstrap/issues/24251\n\n\n        if (this._config.boundary !== 'scrollParent') {\n          $(parent).addClass(ClassName$4.POSITION_STATIC);\n        }\n\n        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());\n      } // If this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n      if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {\n        $(document.body).children().on('mouseover', null, $.noop);\n      }\n\n      this._element.focus();\n\n      this._element.setAttribute('aria-expanded', true);\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n    };\n\n    _proto.show = function show() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var showEvent = $.Event(Event$4.SHOW, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $(parent).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));\n    };\n\n    _proto.hide = function hide() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {\n        return;\n      }\n\n      var relatedTarget = {\n        relatedTarget: this._element\n      };\n      var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n\n      var parent = Dropdown._getParentFromElement(this._element);\n\n      $(parent).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(this._menu).toggleClass(ClassName$4.SHOW);\n      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$4);\n      $(this._element).off(EVENT_KEY$4);\n      this._element = null;\n      this._menu = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n\n        this._popper = null;\n      }\n    };\n\n    _proto.update = function update() {\n      this._inNavbar = this._detectNavbar();\n\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Private\n    ;\n\n    _proto._addEventListeners = function _addEventListeners() {\n      var _this = this;\n\n      $(this._element).on(Event$4.CLICK, function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n\n        _this.toggle();\n      });\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);\n      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._getMenuElement = function _getMenuElement() {\n      if (!this._menu) {\n        var parent = Dropdown._getParentFromElement(this._element);\n\n        if (parent) {\n          this._menu = parent.querySelector(Selector$4.MENU);\n        }\n      }\n\n      return this._menu;\n    };\n\n    _proto._getPlacement = function _getPlacement() {\n      var $parentDropdown = $(this._element.parentNode);\n      var placement = AttachmentMap.BOTTOM; // Handle dropup\n\n      if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {\n        placement = AttachmentMap.TOP;\n\n        if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND;\n        }\n      } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {\n        placement = AttachmentMap.RIGHT;\n      } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {\n        placement = AttachmentMap.LEFT;\n      } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND;\n      }\n\n      return placement;\n    };\n\n    _proto._detectNavbar = function _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0;\n    };\n\n    _proto._getOffset = function _getOffset() {\n      var _this2 = this;\n\n      var offset = {};\n\n      if (typeof this._config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this._config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getPopperConfig = function _getPopperConfig() {\n      var popperConfig = {\n        placement: this._getPlacement(),\n        modifiers: {\n          offset: this._getOffset(),\n          flip: {\n            enabled: this._config.flip\n          },\n          preventOverflow: {\n            boundariesElement: this._config.boundary\n          }\n        } // Disable Popper.js if we have a static display\n\n      };\n\n      if (this._config.display === 'static') {\n        popperConfig.modifiers.applyStyle = {\n          enabled: false\n        };\n      }\n\n      return popperConfig;\n    } // Static\n    ;\n\n    Dropdown._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$4);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data) {\n          data = new Dropdown(this, _config);\n          $(this).data(DATA_KEY$4, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    Dropdown._clearMenus = function _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return;\n      }\n\n      var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));\n\n      for (var i = 0, len = toggles.length; i < len; i++) {\n        var parent = Dropdown._getParentFromElement(toggles[i]);\n\n        var context = $(toggles[i]).data(DATA_KEY$4);\n        var relatedTarget = {\n          relatedTarget: toggles[i]\n        };\n\n        if (event && event.type === 'click') {\n          relatedTarget.clickEvent = event;\n        }\n\n        if (!context) {\n          continue;\n        }\n\n        var dropdownMenu = context._menu;\n\n        if (!$(parent).hasClass(ClassName$4.SHOW)) {\n          continue;\n        }\n\n        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\n          continue;\n        }\n\n        var hideEvent = $.Event(Event$4.HIDE, relatedTarget);\n        $(parent).trigger(hideEvent);\n\n        if (hideEvent.isDefaultPrevented()) {\n          continue;\n        } // If this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n\n\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().off('mouseover', null, $.noop);\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false');\n        $(dropdownMenu).removeClass(ClassName$4.SHOW);\n        $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));\n      }\n    };\n\n    Dropdown._getParentFromElement = function _getParentFromElement(element) {\n      var parent;\n      var selector = Util.getSelectorFromElement(element);\n\n      if (selector) {\n        parent = document.querySelector(selector);\n      }\n\n      return parent || element.parentNode;\n    } // eslint-disable-next-line complexity\n    ;\n\n    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n      // If not input/textarea:\n      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n      // If input/textarea:\n      //  - If space key => not a dropdown command\n      //  - If key is other than escape\n      //    - If key is not up or down => not a dropdown command\n      //    - If trigger inside the menu => not a dropdown command\n      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {\n        return;\n      }\n\n      var parent = Dropdown._getParentFromElement(this);\n\n      var isActive = $(parent).hasClass(ClassName$4.SHOW);\n\n      if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n        if (event.which === ESCAPE_KEYCODE) {\n          var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);\n          $(toggle).trigger('focus');\n        }\n\n        $(this).trigger('click');\n        return;\n      }\n\n      var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));\n\n      if (items.length === 0) {\n        return;\n      }\n\n      var index = items.indexOf(event.target);\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) {\n        // Up\n        index--;\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n        // Down\n        index++;\n      }\n\n      if (index < 0) {\n        index = 0;\n      }\n\n      items[index].focus();\n    };\n\n    _createClass(Dropdown, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$4;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$2;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$2;\n      }\n    }]);\n\n    return Dropdown;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + \" \" + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    Dropdown._jQueryInterface.call($(this), 'toggle');\n  }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {\n    e.stopPropagation();\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$4] = Dropdown._jQueryInterface;\n  $.fn[NAME$4].Constructor = Dropdown;\n\n  $.fn[NAME$4].noConflict = function () {\n    $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n    return Dropdown._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$5 = 'modal';\n  var VERSION$5 = '4.3.1';\n  var DATA_KEY$5 = 'bs.modal';\n  var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n  var DATA_API_KEY$5 = '.data-api';\n  var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];\n  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n  var Default$3 = {\n    backdrop: true,\n    keyboard: true,\n    focus: true,\n    show: true\n  };\n  var DefaultType$3 = {\n    backdrop: '(boolean|string)',\n    keyboard: 'boolean',\n    focus: 'boolean',\n    show: 'boolean'\n  };\n  var Event$5 = {\n    HIDE: \"hide\" + EVENT_KEY$5,\n    HIDDEN: \"hidden\" + EVENT_KEY$5,\n    SHOW: \"show\" + EVENT_KEY$5,\n    SHOWN: \"shown\" + EVENT_KEY$5,\n    FOCUSIN: \"focusin\" + EVENT_KEY$5,\n    RESIZE: \"resize\" + EVENT_KEY$5,\n    CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY$5,\n    KEYDOWN_DISMISS: \"keydown.dismiss\" + EVENT_KEY$5,\n    MOUSEUP_DISMISS: \"mouseup.dismiss\" + EVENT_KEY$5,\n    MOUSEDOWN_DISMISS: \"mousedown.dismiss\" + EVENT_KEY$5,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$5 + DATA_API_KEY$5\n  };\n  var ClassName$5 = {\n    SCROLLABLE: 'modal-dialog-scrollable',\n    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n    BACKDROP: 'modal-backdrop',\n    OPEN: 'modal-open',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$5 = {\n    DIALOG: '.modal-dialog',\n    MODAL_BODY: '.modal-body',\n    DATA_TOGGLE: '[data-toggle=\"modal\"]',\n    DATA_DISMISS: '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT: '.sticky-top'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Modal =\n  /*#__PURE__*/\n  function () {\n    function Modal(element, config) {\n      this._config = this._getConfig(config);\n      this._element = element;\n      this._dialog = element.querySelector(Selector$5.DIALOG);\n      this._backdrop = null;\n      this._isShown = false;\n      this._isBodyOverflowing = false;\n      this._ignoreBackdropClick = false;\n      this._isTransitioning = false;\n      this._scrollbarWidth = 0;\n    } // Getters\n\n\n    var _proto = Modal.prototype;\n\n    // Public\n    _proto.toggle = function toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget);\n    };\n\n    _proto.show = function show(relatedTarget) {\n      var _this = this;\n\n      if (this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      if ($(this._element).hasClass(ClassName$5.FADE)) {\n        this._isTransitioning = true;\n      }\n\n      var showEvent = $.Event(Event$5.SHOW, {\n        relatedTarget: relatedTarget\n      });\n      $(this._element).trigger(showEvent);\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = true;\n\n      this._checkScrollbar();\n\n      this._setScrollbar();\n\n      this._adjustDialog();\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {\n        return _this.hide(event);\n      });\n      $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {\n        $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {\n          if ($(event.target).is(_this._element)) {\n            _this._ignoreBackdropClick = true;\n          }\n        });\n      });\n\n      this._showBackdrop(function () {\n        return _this._showElement(relatedTarget);\n      });\n    };\n\n    _proto.hide = function hide(event) {\n      var _this2 = this;\n\n      if (event) {\n        event.preventDefault();\n      }\n\n      if (!this._isShown || this._isTransitioning) {\n        return;\n      }\n\n      var hideEvent = $.Event(Event$5.HIDE);\n      $(this._element).trigger(hideEvent);\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      this._isShown = false;\n      var transition = $(this._element).hasClass(ClassName$5.FADE);\n\n      if (transition) {\n        this._isTransitioning = true;\n      }\n\n      this._setEscapeEvent();\n\n      this._setResizeEvent();\n\n      $(document).off(Event$5.FOCUSIN);\n      $(this._element).removeClass(ClassName$5.SHOW);\n      $(this._element).off(Event$5.CLICK_DISMISS);\n      $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, function (event) {\n          return _this2._hideModal(event);\n        }).emulateTransitionEnd(transitionDuration);\n      } else {\n        this._hideModal();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      [window, this._element, this._dialog].forEach(function (htmlElement) {\n        return $(htmlElement).off(EVENT_KEY$5);\n      });\n      /**\n       * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n       * Do not move `document` in `htmlElements` array\n       * It will remove `Event.CLICK_DATA_API` event that should remain\n       */\n\n      $(document).off(Event$5.FOCUSIN);\n      $.removeData(this._element, DATA_KEY$5);\n      this._config = null;\n      this._element = null;\n      this._dialog = null;\n      this._backdrop = null;\n      this._isShown = null;\n      this._isBodyOverflowing = null;\n      this._ignoreBackdropClick = null;\n      this._isTransitioning = null;\n      this._scrollbarWidth = null;\n    };\n\n    _proto.handleUpdate = function handleUpdate() {\n      this._adjustDialog();\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$3, config);\n      Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n      return config;\n    };\n\n    _proto._showElement = function _showElement(relatedTarget) {\n      var _this3 = this;\n\n      var transition = $(this._element).hasClass(ClassName$5.FADE);\n\n      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // Don't move modal's DOM position\n        document.body.appendChild(this._element);\n      }\n\n      this._element.style.display = 'block';\n\n      this._element.removeAttribute('aria-hidden');\n\n      this._element.setAttribute('aria-modal', true);\n\n      if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {\n        this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;\n      } else {\n        this._element.scrollTop = 0;\n      }\n\n      if (transition) {\n        Util.reflow(this._element);\n      }\n\n      $(this._element).addClass(ClassName$5.SHOW);\n\n      if (this._config.focus) {\n        this._enforceFocus();\n      }\n\n      var shownEvent = $.Event(Event$5.SHOWN, {\n        relatedTarget: relatedTarget\n      });\n\n      var transitionComplete = function transitionComplete() {\n        if (_this3._config.focus) {\n          _this3._element.focus();\n        }\n\n        _this3._isTransitioning = false;\n        $(_this3._element).trigger(shownEvent);\n      };\n\n      if (transition) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n      } else {\n        transitionComplete();\n      }\n    };\n\n    _proto._enforceFocus = function _enforceFocus() {\n      var _this4 = this;\n\n      $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop\n      .on(Event$5.FOCUSIN, function (event) {\n        if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {\n          _this4._element.focus();\n        }\n      });\n    };\n\n    _proto._setEscapeEvent = function _setEscapeEvent() {\n      var _this5 = this;\n\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {\n          if (event.which === ESCAPE_KEYCODE$1) {\n            event.preventDefault();\n\n            _this5.hide();\n          }\n        });\n      } else if (!this._isShown) {\n        $(this._element).off(Event$5.KEYDOWN_DISMISS);\n      }\n    };\n\n    _proto._setResizeEvent = function _setResizeEvent() {\n      var _this6 = this;\n\n      if (this._isShown) {\n        $(window).on(Event$5.RESIZE, function (event) {\n          return _this6.handleUpdate(event);\n        });\n      } else {\n        $(window).off(Event$5.RESIZE);\n      }\n    };\n\n    _proto._hideModal = function _hideModal() {\n      var _this7 = this;\n\n      this._element.style.display = 'none';\n\n      this._element.setAttribute('aria-hidden', true);\n\n      this._element.removeAttribute('aria-modal');\n\n      this._isTransitioning = false;\n\n      this._showBackdrop(function () {\n        $(document.body).removeClass(ClassName$5.OPEN);\n\n        _this7._resetAdjustments();\n\n        _this7._resetScrollbar();\n\n        $(_this7._element).trigger(Event$5.HIDDEN);\n      });\n    };\n\n    _proto._removeBackdrop = function _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove();\n        this._backdrop = null;\n      }\n    };\n\n    _proto._showBackdrop = function _showBackdrop(callback) {\n      var _this8 = this;\n\n      var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';\n\n      if (this._isShown && this._config.backdrop) {\n        this._backdrop = document.createElement('div');\n        this._backdrop.className = ClassName$5.BACKDROP;\n\n        if (animate) {\n          this._backdrop.classList.add(animate);\n        }\n\n        $(this._backdrop).appendTo(document.body);\n        $(this._element).on(Event$5.CLICK_DISMISS, function (event) {\n          if (_this8._ignoreBackdropClick) {\n            _this8._ignoreBackdropClick = false;\n            return;\n          }\n\n          if (event.target !== event.currentTarget) {\n            return;\n          }\n\n          if (_this8._config.backdrop === 'static') {\n            _this8._element.focus();\n          } else {\n            _this8.hide();\n          }\n        });\n\n        if (animate) {\n          Util.reflow(this._backdrop);\n        }\n\n        $(this._backdrop).addClass(ClassName$5.SHOW);\n\n        if (!callback) {\n          return;\n        }\n\n        if (!animate) {\n          callback();\n          return;\n        }\n\n        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName$5.SHOW);\n\n        var callbackRemove = function callbackRemove() {\n          _this8._removeBackdrop();\n\n          if (callback) {\n            callback();\n          }\n        };\n\n        if ($(this._element).hasClass(ClassName$5.FADE)) {\n          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n        } else {\n          callbackRemove();\n        }\n      } else if (callback) {\n        callback();\n      }\n    } // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n    ;\n\n    _proto._adjustDialog = function _adjustDialog() {\n      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n      }\n    };\n\n    _proto._resetAdjustments = function _resetAdjustments() {\n      this._element.style.paddingLeft = '';\n      this._element.style.paddingRight = '';\n    };\n\n    _proto._checkScrollbar = function _checkScrollbar() {\n      var rect = document.body.getBoundingClientRect();\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n      this._scrollbarWidth = this._getScrollbarWidth();\n    };\n\n    _proto._setScrollbar = function _setScrollbar() {\n      var _this9 = this;\n\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n        var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n        var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding\n\n        $(fixedContent).each(function (index, element) {\n          var actualPadding = element.style.paddingRight;\n          var calculatedPadding = $(element).css('padding-right');\n          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + \"px\");\n        }); // Adjust sticky content margin\n\n        $(stickyContent).each(function (index, element) {\n          var actualMargin = element.style.marginRight;\n          var calculatedMargin = $(element).css('margin-right');\n          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + \"px\");\n        }); // Adjust body padding\n\n        var actualPadding = document.body.style.paddingRight;\n        var calculatedPadding = $(document.body).css('padding-right');\n        $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n      }\n\n      $(document.body).addClass(ClassName$5.OPEN);\n    };\n\n    _proto._resetScrollbar = function _resetScrollbar() {\n      // Restore fixed content padding\n      var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));\n      $(fixedContent).each(function (index, element) {\n        var padding = $(element).data('padding-right');\n        $(element).removeData('padding-right');\n        element.style.paddingRight = padding ? padding : '';\n      }); // Restore sticky content\n\n      var elements = [].slice.call(document.querySelectorAll(\"\" + Selector$5.STICKY_CONTENT));\n      $(elements).each(function (index, element) {\n        var margin = $(element).data('margin-right');\n\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right');\n        }\n      }); // Restore body padding\n\n      var padding = $(document.body).data('padding-right');\n      $(document.body).removeData('padding-right');\n      document.body.style.paddingRight = padding ? padding : '';\n    };\n\n    _proto._getScrollbarWidth = function _getScrollbarWidth() {\n      // thx d.walsh\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      return scrollbarWidth;\n    } // Static\n    ;\n\n    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$5);\n\n        var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});\n\n        if (!data) {\n          data = new Modal(this, _config);\n          $(this).data(DATA_KEY$5, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](relatedTarget);\n        } else if (_config.show) {\n          data.show(relatedTarget);\n        }\n      });\n    };\n\n    _createClass(Modal, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$5;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$3;\n      }\n    }]);\n\n    return Modal;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {\n    var _this10 = this;\n\n    var target;\n    var selector = Util.getSelectorFromElement(this);\n\n    if (selector) {\n      target = document.querySelector(selector);\n    }\n\n    var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault();\n    }\n\n    var $target = $(target).one(Event$5.SHOW, function (showEvent) {\n      if (showEvent.isDefaultPrevented()) {\n        // Only register focus restorer if modal will actually get shown\n        return;\n      }\n\n      $target.one(Event$5.HIDDEN, function () {\n        if ($(_this10).is(':visible')) {\n          _this10.focus();\n        }\n      });\n    });\n\n    Modal._jQueryInterface.call($(target), config, this);\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$5] = Modal._jQueryInterface;\n  $.fn[NAME$5].Constructor = Modal;\n\n  $.fn[NAME$5].noConflict = function () {\n    $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n    return Modal._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): tools/sanitizer.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n  var DefaultWhitelist = {\n    // Global attributes allowed on any supplied element below.\n    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n    a: ['target', 'href', 'title', 'rel'],\n    area: [],\n    b: [],\n    br: [],\n    col: [],\n    code: [],\n    div: [],\n    em: [],\n    hr: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    i: [],\n    img: ['src', 'alt', 'title', 'width', 'height'],\n    li: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    small: [],\n    span: [],\n    sub: [],\n    sup: [],\n    strong: [],\n    u: [],\n    ul: []\n    /**\n     * A pattern that recognizes a commonly useful subset of URLs that are safe.\n     *\n     * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n     */\n\n  };\n  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;\n  /**\n   * A pattern that matches safe data URLs. Only matches image, video and audio types.\n   *\n   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n   */\n\n  var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;\n\n  function allowedAttribute(attr, allowedAttributeList) {\n    var attrName = attr.nodeName.toLowerCase();\n\n    if (allowedAttributeList.indexOf(attrName) !== -1) {\n      if (uriAttrs.indexOf(attrName) !== -1) {\n        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n      }\n\n      return true;\n    }\n\n    var regExp = allowedAttributeList.filter(function (attrRegex) {\n      return attrRegex instanceof RegExp;\n    }); // Check if a regular expression validates the attribute.\n\n    for (var i = 0, l = regExp.length; i < l; i++) {\n      if (attrName.match(regExp[i])) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n    if (unsafeHtml.length === 0) {\n      return unsafeHtml;\n    }\n\n    if (sanitizeFn && typeof sanitizeFn === 'function') {\n      return sanitizeFn(unsafeHtml);\n    }\n\n    var domParser = new window.DOMParser();\n    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n    var whitelistKeys = Object.keys(whiteList);\n    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n    var _loop = function _loop(i, len) {\n      var el = elements[i];\n      var elName = el.nodeName.toLowerCase();\n\n      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n        el.parentNode.removeChild(el);\n        return \"continue\";\n      }\n\n      var attributeList = [].slice.call(el.attributes);\n      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n      attributeList.forEach(function (attr) {\n        if (!allowedAttribute(attr, whitelistedAttributes)) {\n          el.removeAttribute(attr.nodeName);\n        }\n      });\n    };\n\n    for (var i = 0, len = elements.length; i < len; i++) {\n      var _ret = _loop(i, len);\n\n      if (_ret === \"continue\") continue;\n    }\n\n    return createdDocument.body.innerHTML;\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$6 = 'tooltip';\n  var VERSION$6 = '4.3.1';\n  var DATA_KEY$6 = 'bs.tooltip';\n  var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n  var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];\n  var CLASS_PREFIX = 'bs-tooltip';\n  var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n  var DefaultType$4 = {\n    animation: 'boolean',\n    template: 'string',\n    title: '(string|element|function)',\n    trigger: 'string',\n    delay: '(number|object)',\n    html: 'boolean',\n    selector: '(string|boolean)',\n    placement: '(string|function)',\n    offset: '(number|string|function)',\n    container: '(string|element|boolean)',\n    fallbackPlacement: '(string|array)',\n    boundary: '(string|element)',\n    sanitize: 'boolean',\n    sanitizeFn: '(null|function)',\n    whiteList: 'object'\n  };\n  var AttachmentMap$1 = {\n    AUTO: 'auto',\n    TOP: 'top',\n    RIGHT: 'right',\n    BOTTOM: 'bottom',\n    LEFT: 'left'\n  };\n  var Default$4 = {\n    animation: true,\n    template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n    trigger: 'hover focus',\n    title: '',\n    delay: 0,\n    html: false,\n    selector: false,\n    placement: 'top',\n    offset: 0,\n    container: false,\n    fallbackPlacement: 'flip',\n    boundary: 'scrollParent',\n    sanitize: true,\n    sanitizeFn: null,\n    whiteList: DefaultWhitelist\n  };\n  var HoverState = {\n    SHOW: 'show',\n    OUT: 'out'\n  };\n  var Event$6 = {\n    HIDE: \"hide\" + EVENT_KEY$6,\n    HIDDEN: \"hidden\" + EVENT_KEY$6,\n    SHOW: \"show\" + EVENT_KEY$6,\n    SHOWN: \"shown\" + EVENT_KEY$6,\n    INSERTED: \"inserted\" + EVENT_KEY$6,\n    CLICK: \"click\" + EVENT_KEY$6,\n    FOCUSIN: \"focusin\" + EVENT_KEY$6,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n  };\n  var ClassName$6 = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$6 = {\n    TOOLTIP: '.tooltip',\n    TOOLTIP_INNER: '.tooltip-inner',\n    ARROW: '.arrow'\n  };\n  var Trigger = {\n    HOVER: 'hover',\n    FOCUS: 'focus',\n    CLICK: 'click',\n    MANUAL: 'manual'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Tooltip =\n  /*#__PURE__*/\n  function () {\n    function Tooltip(element, config) {\n      /**\n       * Check for Popper dependency\n       * Popper - https://popper.js.org\n       */\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)');\n      } // private\n\n\n      this._isEnabled = true;\n      this._timeout = 0;\n      this._hoverState = '';\n      this._activeTrigger = {};\n      this._popper = null; // Protected\n\n      this.element = element;\n      this.config = this._getConfig(config);\n      this.tip = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Tooltip.prototype;\n\n    // Public\n    _proto.enable = function enable() {\n      this._isEnabled = true;\n    };\n\n    _proto.disable = function disable() {\n      this._isEnabled = false;\n    };\n\n    _proto.toggleEnabled = function toggleEnabled() {\n      this._isEnabled = !this._isEnabled;\n    };\n\n    _proto.toggle = function toggle(event) {\n      if (!this._isEnabled) {\n        return;\n      }\n\n      if (event) {\n        var dataKey = this.constructor.DATA_KEY;\n        var context = $(event.currentTarget).data(dataKey);\n\n        if (!context) {\n          context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n          $(event.currentTarget).data(dataKey, context);\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click;\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context);\n        } else {\n          context._leave(null, context);\n        }\n      } else {\n        if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {\n          this._leave(null, this);\n\n          return;\n        }\n\n        this._enter(null, this);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      $.removeData(this.element, this.constructor.DATA_KEY);\n      $(this.element).off(this.constructor.EVENT_KEY);\n      $(this.element).closest('.modal').off('hide.bs.modal');\n\n      if (this.tip) {\n        $(this.tip).remove();\n      }\n\n      this._isEnabled = null;\n      this._timeout = null;\n      this._hoverState = null;\n      this._activeTrigger = null;\n\n      if (this._popper !== null) {\n        this._popper.destroy();\n      }\n\n      this._popper = null;\n      this.element = null;\n      this.config = null;\n      this.tip = null;\n    };\n\n    _proto.show = function show() {\n      var _this = this;\n\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements');\n      }\n\n      var showEvent = $.Event(this.constructor.Event.SHOW);\n\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent);\n        var shadowRoot = Util.findShadowRoot(this.element);\n        var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return;\n        }\n\n        var tip = this.getTipElement();\n        var tipId = Util.getUID(this.constructor.NAME);\n        tip.setAttribute('id', tipId);\n        this.element.setAttribute('aria-describedby', tipId);\n        this.setContent();\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName$6.FADE);\n        }\n\n        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n        var attachment = this._getAttachment(placement);\n\n        this.addAttachmentClass(attachment);\n\n        var container = this._getContainer();\n\n        $(tip).data(this.constructor.DATA_KEY, this);\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container);\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED);\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: this._getOffset(),\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector$6.ARROW\n            },\n            preventOverflow: {\n              boundariesElement: this.config.boundary\n            }\n          },\n          onCreate: function onCreate(data) {\n            if (data.originalPlacement !== data.placement) {\n              _this._handlePopperPlacementChange(data);\n            }\n          },\n          onUpdate: function onUpdate(data) {\n            return _this._handlePopperPlacementChange(data);\n          }\n        });\n        $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n        if ('ontouchstart' in document.documentElement) {\n          $(document.body).children().on('mouseover', null, $.noop);\n        }\n\n        var complete = function complete() {\n          if (_this.config.animation) {\n            _this._fixTransition();\n          }\n\n          var prevHoverState = _this._hoverState;\n          _this._hoverState = null;\n          $(_this.element).trigger(_this.constructor.Event.SHOWN);\n\n          if (prevHoverState === HoverState.OUT) {\n            _this._leave(null, _this);\n          }\n        };\n\n        if ($(this.tip).hasClass(ClassName$6.FADE)) {\n          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n        } else {\n          complete();\n        }\n      }\n    };\n\n    _proto.hide = function hide(callback) {\n      var _this2 = this;\n\n      var tip = this.getTipElement();\n      var hideEvent = $.Event(this.constructor.Event.HIDE);\n\n      var complete = function complete() {\n        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip);\n        }\n\n        _this2._cleanTipClass();\n\n        _this2.element.removeAttribute('aria-describedby');\n\n        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n        if (_this2._popper !== null) {\n          _this2._popper.destroy();\n        }\n\n        if (callback) {\n          callback();\n        }\n      };\n\n      $(this.element).trigger(hideEvent);\n\n      if (hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n\n      if ('ontouchstart' in document.documentElement) {\n        $(document.body).children().off('mouseover', null, $.noop);\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false;\n      this._activeTrigger[Trigger.FOCUS] = false;\n      this._activeTrigger[Trigger.HOVER] = false;\n\n      if ($(this.tip).hasClass(ClassName$6.FADE)) {\n        var transitionDuration = Util.getTransitionDurationFromElement(tip);\n        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n\n      this._hoverState = '';\n    };\n\n    _proto.update = function update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate();\n      }\n    } // Protected\n    ;\n\n    _proto.isWithContent = function isWithContent() {\n      return Boolean(this.getTitle());\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var tip = this.getTipElement();\n      this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());\n      $(tip).removeClass(ClassName$6.FADE + \" \" + ClassName$6.SHOW);\n    };\n\n    _proto.setElementContent = function setElementContent($element, content) {\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // Content is a DOM node or a jQuery\n        if (this.config.html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content);\n          }\n        } else {\n          $element.text($(content).text());\n        }\n\n        return;\n      }\n\n      if (this.config.html) {\n        if (this.config.sanitize) {\n          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n        }\n\n        $element.html(content);\n      } else {\n        $element.text(content);\n      }\n    };\n\n    _proto.getTitle = function getTitle() {\n      var title = this.element.getAttribute('data-original-title');\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n      }\n\n      return title;\n    } // Private\n    ;\n\n    _proto._getOffset = function _getOffset() {\n      var _this3 = this;\n\n      var offset = {};\n\n      if (typeof this.config.offset === 'function') {\n        offset.fn = function (data) {\n          data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});\n          return data;\n        };\n      } else {\n        offset.offset = this.config.offset;\n      }\n\n      return offset;\n    };\n\n    _proto._getContainer = function _getContainer() {\n      if (this.config.container === false) {\n        return document.body;\n      }\n\n      if (Util.isElement(this.config.container)) {\n        return $(this.config.container);\n      }\n\n      return $(document).find(this.config.container);\n    };\n\n    _proto._getAttachment = function _getAttachment(placement) {\n      return AttachmentMap$1[placement.toUpperCase()];\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this4 = this;\n\n      var triggers = this.config.trigger.split(' ');\n      triggers.forEach(function (trigger) {\n        if (trigger === 'click') {\n          $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {\n            return _this4.toggle(event);\n          });\n        } else if (trigger !== Trigger.MANUAL) {\n          var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;\n          var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;\n          $(_this4.element).on(eventIn, _this4.config.selector, function (event) {\n            return _this4._enter(event);\n          }).on(eventOut, _this4.config.selector, function (event) {\n            return _this4._leave(event);\n          });\n        }\n      });\n      $(this.element).closest('.modal').on('hide.bs.modal', function () {\n        if (_this4.element) {\n          _this4.hide();\n        }\n      });\n\n      if (this.config.selector) {\n        this.config = _objectSpread({}, this.config, {\n          trigger: 'manual',\n          selector: ''\n        });\n      } else {\n        this._fixTitle();\n      }\n    };\n\n    _proto._fixTitle = function _fixTitle() {\n      var titleType = typeof this.element.getAttribute('data-original-title');\n\n      if (this.element.getAttribute('title') || titleType !== 'string') {\n        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n        this.element.setAttribute('title', '');\n      }\n    };\n\n    _proto._enter = function _enter(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW;\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HoverState.SHOW;\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show();\n        }\n      }, context.config.delay.show);\n    };\n\n    _proto._leave = function _leave(event, context) {\n      var dataKey = this.constructor.DATA_KEY;\n      context = context || $(event.currentTarget).data(dataKey);\n\n      if (!context) {\n        context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n        $(event.currentTarget).data(dataKey, context);\n      }\n\n      if (event) {\n        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return;\n      }\n\n      clearTimeout(context._timeout);\n      context._hoverState = HoverState.OUT;\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide();\n        return;\n      }\n\n      context._timeout = setTimeout(function () {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide();\n        }\n      }, context.config.delay.hide);\n    };\n\n    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n      for (var trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true;\n        }\n      }\n\n      return false;\n    };\n\n    _proto._getConfig = function _getConfig(config) {\n      var dataAttributes = $(this.element).data();\n      Object.keys(dataAttributes).forEach(function (dataAttr) {\n        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n          delete dataAttributes[dataAttr];\n        }\n      });\n      config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show: config.delay,\n          hide: config.delay\n        };\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString();\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString();\n      }\n\n      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n      if (config.sanitize) {\n        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n      }\n\n      return config;\n    };\n\n    _proto._getDelegateConfig = function _getDelegateConfig() {\n      var config = {};\n\n      if (this.config) {\n        for (var key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key];\n          }\n        }\n      }\n\n      return config;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n      if (tabClass !== null && tabClass.length) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    };\n\n    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n      var popperInstance = popperData.instance;\n      this.tip = popperInstance.popper;\n\n      this._cleanTipClass();\n\n      this.addAttachmentClass(this._getAttachment(popperData.placement));\n    };\n\n    _proto._fixTransition = function _fixTransition() {\n      var tip = this.getTipElement();\n      var initConfigAnimation = this.config.animation;\n\n      if (tip.getAttribute('x-placement') !== null) {\n        return;\n      }\n\n      $(tip).removeClass(ClassName$6.FADE);\n      this.config.animation = false;\n      this.hide();\n      this.show();\n      this.config.animation = initConfigAnimation;\n    } // Static\n    ;\n\n    Tooltip._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$6);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config);\n          $(this).data(DATA_KEY$6, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tooltip, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$6;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$4;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$6;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$6;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$6;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$6;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$4;\n      }\n    }]);\n\n    return Tooltip;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$6] = Tooltip._jQueryInterface;\n  $.fn[NAME$6].Constructor = Tooltip;\n\n  $.fn[NAME$6].noConflict = function () {\n    $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n    return Tooltip._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$7 = 'popover';\n  var VERSION$7 = '4.3.1';\n  var DATA_KEY$7 = 'bs.popover';\n  var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n  var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];\n  var CLASS_PREFIX$1 = 'bs-popover';\n  var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n  var Default$5 = _objectSpread({}, Tooltip.Default, {\n    placement: 'right',\n    trigger: 'click',\n    content: '',\n    template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n  });\n\n  var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {\n    content: '(string|element|function)'\n  });\n\n  var ClassName$7 = {\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$7 = {\n    TITLE: '.popover-header',\n    CONTENT: '.popover-body'\n  };\n  var Event$7 = {\n    HIDE: \"hide\" + EVENT_KEY$7,\n    HIDDEN: \"hidden\" + EVENT_KEY$7,\n    SHOW: \"show\" + EVENT_KEY$7,\n    SHOWN: \"shown\" + EVENT_KEY$7,\n    INSERTED: \"inserted\" + EVENT_KEY$7,\n    CLICK: \"click\" + EVENT_KEY$7,\n    FOCUSIN: \"focusin\" + EVENT_KEY$7,\n    FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n    MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n    MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Popover =\n  /*#__PURE__*/\n  function (_Tooltip) {\n    _inheritsLoose(Popover, _Tooltip);\n\n    function Popover() {\n      return _Tooltip.apply(this, arguments) || this;\n    }\n\n    var _proto = Popover.prototype;\n\n    // Overrides\n    _proto.isWithContent = function isWithContent() {\n      return this.getTitle() || this._getContent();\n    };\n\n    _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n    };\n\n    _proto.getTipElement = function getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0];\n      return this.tip;\n    };\n\n    _proto.setContent = function setContent() {\n      var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events\n\n      this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());\n\n      var content = this._getContent();\n\n      if (typeof content === 'function') {\n        content = content.call(this.element);\n      }\n\n      this.setElementContent($tip.find(Selector$7.CONTENT), content);\n      $tip.removeClass(ClassName$7.FADE + \" \" + ClassName$7.SHOW);\n    } // Private\n    ;\n\n    _proto._getContent = function _getContent() {\n      return this.element.getAttribute('data-content') || this.config.content;\n    };\n\n    _proto._cleanTipClass = function _cleanTipClass() {\n      var $tip = $(this.getTipElement());\n      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''));\n      }\n    } // Static\n    ;\n\n    Popover._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$7);\n\n        var _config = typeof config === 'object' ? config : null;\n\n        if (!data && /dispose|hide/.test(config)) {\n          return;\n        }\n\n        if (!data) {\n          data = new Popover(this, _config);\n          $(this).data(DATA_KEY$7, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Popover, null, [{\n      key: \"VERSION\",\n      // Getters\n      get: function get() {\n        return VERSION$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$5;\n      }\n    }, {\n      key: \"NAME\",\n      get: function get() {\n        return NAME$7;\n      }\n    }, {\n      key: \"DATA_KEY\",\n      get: function get() {\n        return DATA_KEY$7;\n      }\n    }, {\n      key: \"Event\",\n      get: function get() {\n        return Event$7;\n      }\n    }, {\n      key: \"EVENT_KEY\",\n      get: function get() {\n        return EVENT_KEY$7;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$5;\n      }\n    }]);\n\n    return Popover;\n  }(Tooltip);\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$7] = Popover._jQueryInterface;\n  $.fn[NAME$7].Constructor = Popover;\n\n  $.fn[NAME$7].noConflict = function () {\n    $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n    return Popover._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$8 = 'scrollspy';\n  var VERSION$8 = '4.3.1';\n  var DATA_KEY$8 = 'bs.scrollspy';\n  var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n  var DATA_API_KEY$6 = '.data-api';\n  var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];\n  var Default$6 = {\n    offset: 10,\n    method: 'auto',\n    target: ''\n  };\n  var DefaultType$6 = {\n    offset: 'number',\n    method: 'string',\n    target: '(string|element)'\n  };\n  var Event$8 = {\n    ACTIVATE: \"activate\" + EVENT_KEY$8,\n    SCROLL: \"scroll\" + EVENT_KEY$8,\n    LOAD_DATA_API: \"load\" + EVENT_KEY$8 + DATA_API_KEY$6\n  };\n  var ClassName$8 = {\n    DROPDOWN_ITEM: 'dropdown-item',\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active'\n  };\n  var Selector$8 = {\n    DATA_SPY: '[data-spy=\"scroll\"]',\n    ACTIVE: '.active',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    NAV_LINKS: '.nav-link',\n    NAV_ITEMS: '.nav-item',\n    LIST_ITEMS: '.list-group-item',\n    DROPDOWN: '.dropdown',\n    DROPDOWN_ITEMS: '.dropdown-item',\n    DROPDOWN_TOGGLE: '.dropdown-toggle'\n  };\n  var OffsetMethod = {\n    OFFSET: 'offset',\n    POSITION: 'position'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var ScrollSpy =\n  /*#__PURE__*/\n  function () {\n    function ScrollSpy(element, config) {\n      var _this = this;\n\n      this._element = element;\n      this._scrollElement = element.tagName === 'BODY' ? window : element;\n      this._config = this._getConfig(config);\n      this._selector = this._config.target + \" \" + Selector$8.NAV_LINKS + \",\" + (this._config.target + \" \" + Selector$8.LIST_ITEMS + \",\") + (this._config.target + \" \" + Selector$8.DROPDOWN_ITEMS);\n      this._offsets = [];\n      this._targets = [];\n      this._activeTarget = null;\n      this._scrollHeight = 0;\n      $(this._scrollElement).on(Event$8.SCROLL, function (event) {\n        return _this._process(event);\n      });\n      this.refresh();\n\n      this._process();\n    } // Getters\n\n\n    var _proto = ScrollSpy.prototype;\n\n    // Public\n    _proto.refresh = function refresh() {\n      var _this2 = this;\n\n      var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;\n      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\n      this._offsets = [];\n      this._targets = [];\n      this._scrollHeight = this._getScrollHeight();\n      var targets = [].slice.call(document.querySelectorAll(this._selector));\n      targets.map(function (element) {\n        var target;\n        var targetSelector = Util.getSelectorFromElement(element);\n\n        if (targetSelector) {\n          target = document.querySelector(targetSelector);\n        }\n\n        if (target) {\n          var targetBCR = target.getBoundingClientRect();\n\n          if (targetBCR.width || targetBCR.height) {\n            // TODO (fat): remove sketch reliance on jQuery position/offset\n            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];\n          }\n        }\n\n        return null;\n      }).filter(function (item) {\n        return item;\n      }).sort(function (a, b) {\n        return a[0] - b[0];\n      }).forEach(function (item) {\n        _this2._offsets.push(item[0]);\n\n        _this2._targets.push(item[1]);\n      });\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$8);\n      $(this._scrollElement).off(EVENT_KEY$8);\n      this._element = null;\n      this._scrollElement = null;\n      this._config = null;\n      this._selector = null;\n      this._offsets = null;\n      this._targets = null;\n      this._activeTarget = null;\n      this._scrollHeight = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});\n\n      if (typeof config.target !== 'string') {\n        var id = $(config.target).attr('id');\n\n        if (!id) {\n          id = Util.getUID(NAME$8);\n          $(config.target).attr('id', id);\n        }\n\n        config.target = \"#\" + id;\n      }\n\n      Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n      return config;\n    };\n\n    _proto._getScrollTop = function _getScrollTop() {\n      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n    };\n\n    _proto._getScrollHeight = function _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n    };\n\n    _proto._getOffsetHeight = function _getOffsetHeight() {\n      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n    };\n\n    _proto._process = function _process() {\n      var scrollTop = this._getScrollTop() + this._config.offset;\n\n      var scrollHeight = this._getScrollHeight();\n\n      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh();\n      }\n\n      if (scrollTop >= maxScroll) {\n        var target = this._targets[this._targets.length - 1];\n\n        if (this._activeTarget !== target) {\n          this._activate(target);\n        }\n\n        return;\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null;\n\n        this._clear();\n\n        return;\n      }\n\n      var offsetLength = this._offsets.length;\n\n      for (var i = offsetLength; i--;) {\n        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i]);\n        }\n      }\n    };\n\n    _proto._activate = function _activate(target) {\n      this._activeTarget = target;\n\n      this._clear();\n\n      var queries = this._selector.split(',').map(function (selector) {\n        return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n      });\n\n      var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));\n\n      if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {\n        $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);\n        $link.addClass(ClassName$8.ACTIVE);\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + \", \" + Selector$8.LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item\n\n        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);\n      }\n\n      $(this._scrollElement).trigger(Event$8.ACTIVATE, {\n        relatedTarget: target\n      });\n    };\n\n    _proto._clear = function _clear() {\n      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n        return node.classList.contains(ClassName$8.ACTIVE);\n      }).forEach(function (node) {\n        return node.classList.remove(ClassName$8.ACTIVE);\n      });\n    } // Static\n    ;\n\n    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var data = $(this).data(DATA_KEY$8);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new ScrollSpy(this, _config);\n          $(this).data(DATA_KEY$8, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(ScrollSpy, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$8;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$6;\n      }\n    }]);\n\n    return ScrollSpy;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(window).on(Event$8.LOAD_DATA_API, function () {\n    var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));\n    var scrollSpysLength = scrollSpys.length;\n\n    for (var i = scrollSpysLength; i--;) {\n      var $spy = $(scrollSpys[i]);\n\n      ScrollSpy._jQueryInterface.call($spy, $spy.data());\n    }\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$8] = ScrollSpy._jQueryInterface;\n  $.fn[NAME$8].Constructor = ScrollSpy;\n\n  $.fn[NAME$8].noConflict = function () {\n    $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n    return ScrollSpy._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$9 = 'tab';\n  var VERSION$9 = '4.3.1';\n  var DATA_KEY$9 = 'bs.tab';\n  var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n  var DATA_API_KEY$7 = '.data-api';\n  var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];\n  var Event$9 = {\n    HIDE: \"hide\" + EVENT_KEY$9,\n    HIDDEN: \"hidden\" + EVENT_KEY$9,\n    SHOW: \"show\" + EVENT_KEY$9,\n    SHOWN: \"shown\" + EVENT_KEY$9,\n    CLICK_DATA_API: \"click\" + EVENT_KEY$9 + DATA_API_KEY$7\n  };\n  var ClassName$9 = {\n    DROPDOWN_MENU: 'dropdown-menu',\n    ACTIVE: 'active',\n    DISABLED: 'disabled',\n    FADE: 'fade',\n    SHOW: 'show'\n  };\n  var Selector$9 = {\n    DROPDOWN: '.dropdown',\n    NAV_LIST_GROUP: '.nav, .list-group',\n    ACTIVE: '.active',\n    ACTIVE_UL: '> li > .active',\n    DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE: '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Tab =\n  /*#__PURE__*/\n  function () {\n    function Tab(element) {\n      this._element = element;\n    } // Getters\n\n\n    var _proto = Tab.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {\n        return;\n      }\n\n      var target;\n      var previous;\n      var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];\n      var selector = Util.getSelectorFromElement(this._element);\n\n      if (listElement) {\n        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;\n        previous = $.makeArray($(listElement).find(itemSelector));\n        previous = previous[previous.length - 1];\n      }\n\n      var hideEvent = $.Event(Event$9.HIDE, {\n        relatedTarget: this._element\n      });\n      var showEvent = $.Event(Event$9.SHOW, {\n        relatedTarget: previous\n      });\n\n      if (previous) {\n        $(previous).trigger(hideEvent);\n      }\n\n      $(this._element).trigger(showEvent);\n\n      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n        return;\n      }\n\n      if (selector) {\n        target = document.querySelector(selector);\n      }\n\n      this._activate(this._element, listElement);\n\n      var complete = function complete() {\n        var hiddenEvent = $.Event(Event$9.HIDDEN, {\n          relatedTarget: _this._element\n        });\n        var shownEvent = $.Event(Event$9.SHOWN, {\n          relatedTarget: previous\n        });\n        $(previous).trigger(hiddenEvent);\n        $(_this._element).trigger(shownEvent);\n      };\n\n      if (target) {\n        this._activate(target, target.parentNode, complete);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      $.removeData(this._element, DATA_KEY$9);\n      this._element = null;\n    } // Private\n    ;\n\n    _proto._activate = function _activate(element, container, callback) {\n      var _this2 = this;\n\n      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);\n      var active = activeElements[0];\n      var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);\n\n      var complete = function complete() {\n        return _this2._transitionComplete(element, active, callback);\n      };\n\n      if (active && isTransitioning) {\n        var transitionDuration = Util.getTransitionDurationFromElement(active);\n        $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n      if (active) {\n        $(active).removeClass(ClassName$9.ACTIVE);\n        var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName$9.ACTIVE);\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false);\n        }\n      }\n\n      $(element).addClass(ClassName$9.ACTIVE);\n\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true);\n      }\n\n      Util.reflow(element);\n\n      if (element.classList.contains(ClassName$9.FADE)) {\n        element.classList.add(ClassName$9.SHOW);\n      }\n\n      if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {\n        var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];\n\n        if (dropdownElement) {\n          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));\n          $(dropdownToggleList).addClass(ClassName$9.ACTIVE);\n        }\n\n        element.setAttribute('aria-expanded', true);\n      }\n\n      if (callback) {\n        callback();\n      }\n    } // Static\n    ;\n\n    Tab._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $this = $(this);\n        var data = $this.data(DATA_KEY$9);\n\n        if (!data) {\n          data = new Tab(this);\n          $this.data(DATA_KEY$9, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config]();\n        }\n      });\n    };\n\n    _createClass(Tab, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$9;\n      }\n    }]);\n\n    return Tab;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n\n  $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {\n    event.preventDefault();\n\n    Tab._jQueryInterface.call($(this), 'show');\n  });\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME$9] = Tab._jQueryInterface;\n  $.fn[NAME$9].Constructor = Tab;\n\n  $.fn[NAME$9].noConflict = function () {\n    $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n    return Tab._jQueryInterface;\n  };\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  var NAME$a = 'toast';\n  var VERSION$a = '4.3.1';\n  var DATA_KEY$a = 'bs.toast';\n  var EVENT_KEY$a = \".\" + DATA_KEY$a;\n  var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];\n  var Event$a = {\n    CLICK_DISMISS: \"click.dismiss\" + EVENT_KEY$a,\n    HIDE: \"hide\" + EVENT_KEY$a,\n    HIDDEN: \"hidden\" + EVENT_KEY$a,\n    SHOW: \"show\" + EVENT_KEY$a,\n    SHOWN: \"shown\" + EVENT_KEY$a\n  };\n  var ClassName$a = {\n    FADE: 'fade',\n    HIDE: 'hide',\n    SHOW: 'show',\n    SHOWING: 'showing'\n  };\n  var DefaultType$7 = {\n    animation: 'boolean',\n    autohide: 'boolean',\n    delay: 'number'\n  };\n  var Default$7 = {\n    animation: true,\n    autohide: true,\n    delay: 500\n  };\n  var Selector$a = {\n    DATA_DISMISS: '[data-dismiss=\"toast\"]'\n    /**\n     * ------------------------------------------------------------------------\n     * Class Definition\n     * ------------------------------------------------------------------------\n     */\n\n  };\n\n  var Toast =\n  /*#__PURE__*/\n  function () {\n    function Toast(element, config) {\n      this._element = element;\n      this._config = this._getConfig(config);\n      this._timeout = null;\n\n      this._setListeners();\n    } // Getters\n\n\n    var _proto = Toast.prototype;\n\n    // Public\n    _proto.show = function show() {\n      var _this = this;\n\n      $(this._element).trigger(Event$a.SHOW);\n\n      if (this._config.animation) {\n        this._element.classList.add(ClassName$a.FADE);\n      }\n\n      var complete = function complete() {\n        _this._element.classList.remove(ClassName$a.SHOWING);\n\n        _this._element.classList.add(ClassName$a.SHOW);\n\n        $(_this._element).trigger(Event$a.SHOWN);\n\n        if (_this._config.autohide) {\n          _this.hide();\n        }\n      };\n\n      this._element.classList.remove(ClassName$a.HIDE);\n\n      this._element.classList.add(ClassName$a.SHOWING);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    };\n\n    _proto.hide = function hide(withoutTimeout) {\n      var _this2 = this;\n\n      if (!this._element.classList.contains(ClassName$a.SHOW)) {\n        return;\n      }\n\n      $(this._element).trigger(Event$a.HIDE);\n\n      if (withoutTimeout) {\n        this._close();\n      } else {\n        this._timeout = setTimeout(function () {\n          _this2._close();\n        }, this._config.delay);\n      }\n    };\n\n    _proto.dispose = function dispose() {\n      clearTimeout(this._timeout);\n      this._timeout = null;\n\n      if (this._element.classList.contains(ClassName$a.SHOW)) {\n        this._element.classList.remove(ClassName$a.SHOW);\n      }\n\n      $(this._element).off(Event$a.CLICK_DISMISS);\n      $.removeData(this._element, DATA_KEY$a);\n      this._element = null;\n      this._config = null;\n    } // Private\n    ;\n\n    _proto._getConfig = function _getConfig(config) {\n      config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});\n      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n      return config;\n    };\n\n    _proto._setListeners = function _setListeners() {\n      var _this3 = this;\n\n      $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {\n        return _this3.hide(true);\n      });\n    };\n\n    _proto._close = function _close() {\n      var _this4 = this;\n\n      var complete = function complete() {\n        _this4._element.classList.add(ClassName$a.HIDE);\n\n        $(_this4._element).trigger(Event$a.HIDDEN);\n      };\n\n      this._element.classList.remove(ClassName$a.SHOW);\n\n      if (this._config.animation) {\n        var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n      } else {\n        complete();\n      }\n    } // Static\n    ;\n\n    Toast._jQueryInterface = function _jQueryInterface(config) {\n      return this.each(function () {\n        var $element = $(this);\n        var data = $element.data(DATA_KEY$a);\n\n        var _config = typeof config === 'object' && config;\n\n        if (!data) {\n          data = new Toast(this, _config);\n          $element.data(DATA_KEY$a, data);\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n          }\n\n          data[config](this);\n        }\n      });\n    };\n\n    _createClass(Toast, null, [{\n      key: \"VERSION\",\n      get: function get() {\n        return VERSION$a;\n      }\n    }, {\n      key: \"DefaultType\",\n      get: function get() {\n        return DefaultType$7;\n      }\n    }, {\n      key: \"Default\",\n      get: function get() {\n        return Default$7;\n      }\n    }]);\n\n    return Toast;\n  }();\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n\n  $.fn[NAME$a] = Toast._jQueryInterface;\n  $.fn[NAME$a].Constructor = Toast;\n\n  $.fn[NAME$a].noConflict = function () {\n    $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n    return Toast._jQueryInterface;\n  };\n\n  /**\n   * --------------------------------------------------------------------------\n   * Bootstrap (v4.3.1): index.js\n   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n   * --------------------------------------------------------------------------\n   */\n\n  (function () {\n    if (typeof $ === 'undefined') {\n      throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n    }\n\n    var version = $.fn.jquery.split(' ')[0].split('.');\n    var minMajor = 1;\n    var ltMajor = 2;\n    var minMinor = 9;\n    var minPatch = 1;\n    var maxMajor = 4;\n\n    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n      throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n    }\n  })();\n\n  exports.Util = Util;\n  exports.Alert = Alert;\n  exports.Button = Button;\n  exports.Carousel = Carousel;\n  exports.Collapse = Collapse;\n  exports.Dropdown = Dropdown;\n  exports.Modal = Modal;\n  exports.Popover = Popover;\n  exports.Scrollspy = ScrollSpy;\n  exports.Tab = Tab;\n  exports.Toast = Toast;\n  exports.Tooltip = Tooltip;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=bootstrap.js.map\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/fastclick/fastclick.js",
    "content": ";(function () {\n\t'use strict';\n\n\t/**\n\t * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.\n\t *\n\t * @codingstandard ftlabs-jsv2\n\t * @copyright The Financial Times Limited [All Rights Reserved]\n\t * @license MIT License (see LICENSE.txt)\n\t */\n\n\t/*jslint browser:true, node:true*/\n\t/*global define, Event, Node*/\n\n\n\t/**\n\t * Instantiate fast-clicking listeners on the specified layer.\n\t *\n\t * @constructor\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tfunction FastClick(layer, options) {\n\t\tvar oldOnClick;\n\n\t\toptions = options || {};\n\n\t\t/**\n\t\t * Whether a click is currently being tracked.\n\t\t *\n\t\t * @type boolean\n\t\t */\n\t\tthis.trackingClick = false;\n\n\n\t\t/**\n\t\t * Timestamp for when click tracking started.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.trackingClickStart = 0;\n\n\n\t\t/**\n\t\t * The element being tracked for a click.\n\t\t *\n\t\t * @type EventTarget\n\t\t */\n\t\tthis.targetElement = null;\n\n\n\t\t/**\n\t\t * X-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartX = 0;\n\n\n\t\t/**\n\t\t * Y-coordinate of touch start event.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchStartY = 0;\n\n\n\t\t/**\n\t\t * ID of the last touch, retrieved from Touch.identifier.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.lastTouchIdentifier = 0;\n\n\n\t\t/**\n\t\t * Touchmove boundary, beyond which a click will be cancelled.\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.touchBoundary = options.touchBoundary || 10;\n\n\n\t\t/**\n\t\t * The FastClick layer.\n\t\t *\n\t\t * @type Element\n\t\t */\n\t\tthis.layer = layer;\n\n\t\t/**\n\t\t * The minimum time between tap(touchstart and touchend) events\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapDelay = options.tapDelay || 200;\n\n\t\t/**\n\t\t * The maximum time for a tap\n\t\t *\n\t\t * @type number\n\t\t */\n\t\tthis.tapTimeout = options.tapTimeout || 700;\n\n\t\tif (FastClick.notNeeded(layer)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Some old versions of Android don't have Function.prototype.bind\n\t\tfunction bind(method, context) {\n\t\t\treturn function() { return method.apply(context, arguments); };\n\t\t}\n\n\n\t\tvar methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];\n\t\tvar context = this;\n\t\tfor (var i = 0, l = methods.length; i < l; i++) {\n\t\t\tcontext[methods[i]] = bind(context[methods[i]], context);\n\t\t}\n\n\t\t// Set up event handlers as required\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.addEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.addEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.addEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.addEventListener('click', this.onClick, true);\n\t\tlayer.addEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.addEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.addEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.addEventListener('touchcancel', this.onTouchCancel, false);\n\n\t\t// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick\n\t\t// layer when they are cancelled.\n\t\tif (!Event.prototype.stopImmediatePropagation) {\n\t\t\tlayer.removeEventListener = function(type, callback, capture) {\n\t\t\t\tvar rmv = Node.prototype.removeEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\trmv.call(layer, type, callback.hijacked || callback, capture);\n\t\t\t\t} else {\n\t\t\t\t\trmv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tlayer.addEventListener = function(type, callback, capture) {\n\t\t\t\tvar adv = Node.prototype.addEventListener;\n\t\t\t\tif (type === 'click') {\n\t\t\t\t\tadv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {\n\t\t\t\t\t\tif (!event.propagationStopped) {\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}), capture);\n\t\t\t\t} else {\n\t\t\t\t\tadv.call(layer, type, callback, capture);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// If a handler is already declared in the element's onclick attribute, it will be fired before\n\t\t// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and\n\t\t// adding it as listener.\n\t\tif (typeof layer.onclick === 'function') {\n\n\t\t\t// Android browser on at least 3.2 requires a new reference to the function in layer.onclick\n\t\t\t// - the old one won't work if passed to addEventListener directly.\n\t\t\toldOnClick = layer.onclick;\n\t\t\tlayer.addEventListener('click', function(event) {\n\t\t\t\toldOnClick(event);\n\t\t\t}, false);\n\t\t\tlayer.onclick = null;\n\t\t}\n\t}\n\n\t/**\n\t* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.\n\t*\n\t* @type boolean\n\t*/\n\tvar deviceIsWindowsPhone = navigator.userAgent.indexOf(\"Windows Phone\") >= 0;\n\n\t/**\n\t * Android requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;\n\n\n\t/**\n\t * iOS 4 requires an exception for select elements.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOS4 = deviceIsIOS && (/OS 4_\\d(_\\d)?/).test(navigator.userAgent);\n\n\n\t/**\n\t * iOS 6.0-7.* requires the target element to be manually derived\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\\d/).test(navigator.userAgent);\n\n\t/**\n\t * BlackBerry requires exceptions.\n\t *\n\t * @type boolean\n\t */\n\tvar deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;\n\n\t/**\n\t * Determine whether a given element requires a native click.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element needs a native click\n\t */\n\tFastClick.prototype.needsClick = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\n\t\t// Don't send a synthetic click to disabled inputs (issue #62)\n\t\tcase 'button':\n\t\tcase 'select':\n\t\tcase 'textarea':\n\t\t\tif (target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'input':\n\n\t\t\t// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)\n\t\t\tif ((deviceIsIOS && target.type === 'file') || target.disabled) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tbreak;\n\t\tcase 'label':\n\t\tcase 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames\n\t\tcase 'video':\n\t\t\treturn true;\n\t\t}\n\n\t\treturn (/\\bneedsclick\\b/).test(target.className);\n\t};\n\n\n\t/**\n\t * Determine whether a given element requires a call to focus to simulate click into element.\n\t *\n\t * @param {EventTarget|Element} target Target DOM element\n\t * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.\n\t */\n\tFastClick.prototype.needsFocus = function(target) {\n\t\tswitch (target.nodeName.toLowerCase()) {\n\t\tcase 'textarea':\n\t\t\treturn true;\n\t\tcase 'select':\n\t\t\treturn !deviceIsAndroid;\n\t\tcase 'input':\n\t\t\tswitch (target.type) {\n\t\t\tcase 'button':\n\t\t\tcase 'checkbox':\n\t\t\tcase 'file':\n\t\t\tcase 'image':\n\t\t\tcase 'radio':\n\t\t\tcase 'submit':\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// No point in attempting to focus disabled inputs\n\t\t\treturn !target.disabled && !target.readOnly;\n\t\tdefault:\n\t\t\treturn (/\\bneedsfocus\\b/).test(target.className);\n\t\t}\n\t};\n\n\n\t/**\n\t * Send a click event to the specified element.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t * @param {Event} event\n\t */\n\tFastClick.prototype.sendClick = function(targetElement, event) {\n\t\tvar clickEvent, touch;\n\n\t\t// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)\n\t\tif (document.activeElement && document.activeElement !== targetElement) {\n\t\t\tdocument.activeElement.blur();\n\t\t}\n\n\t\ttouch = event.changedTouches[0];\n\n\t\t// Synthesise a click event, with an extra attribute so it can be tracked\n\t\tclickEvent = document.createEvent('MouseEvents');\n\t\tclickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);\n\t\tclickEvent.forwardedTouchEvent = true;\n\t\ttargetElement.dispatchEvent(clickEvent);\n\t};\n\n\tFastClick.prototype.determineEventType = function(targetElement) {\n\n\t\t//Issue #159: Android Chrome Select Box does not open with a synthetic click event\n\t\tif (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {\n\t\t\treturn 'mousedown';\n\t\t}\n\n\t\treturn 'click';\n\t};\n\n\n\t/**\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.focus = function(targetElement) {\n\t\tvar length;\n\n\t\t// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.\n\t\tif (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {\n\t\t\tlength = targetElement.value.length;\n\t\t\ttargetElement.setSelectionRange(length, length);\n\t\t} else {\n\t\t\ttargetElement.focus();\n\t\t}\n\t};\n\n\n\t/**\n\t * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.\n\t *\n\t * @param {EventTarget|Element} targetElement\n\t */\n\tFastClick.prototype.updateScrollParent = function(targetElement) {\n\t\tvar scrollParent, parentElement;\n\n\t\tscrollParent = targetElement.fastClickScrollParent;\n\n\t\t// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the\n\t\t// target element was moved to another parent.\n\t\tif (!scrollParent || !scrollParent.contains(targetElement)) {\n\t\t\tparentElement = targetElement;\n\t\t\tdo {\n\t\t\t\tif (parentElement.scrollHeight > parentElement.offsetHeight) {\n\t\t\t\t\tscrollParent = parentElement;\n\t\t\t\t\ttargetElement.fastClickScrollParent = parentElement;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tparentElement = parentElement.parentElement;\n\t\t\t} while (parentElement);\n\t\t}\n\n\t\t// Always update the scroll top tracker if possible.\n\t\tif (scrollParent) {\n\t\t\tscrollParent.fastClickLastScrollTop = scrollParent.scrollTop;\n\t\t}\n\t};\n\n\n\t/**\n\t * @param {EventTarget} targetElement\n\t * @returns {Element|EventTarget}\n\t */\n\tFastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {\n\n\t\t// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.\n\t\tif (eventTarget.nodeType === Node.TEXT_NODE) {\n\t\t\treturn eventTarget.parentNode;\n\t\t}\n\n\t\treturn eventTarget;\n\t};\n\n\n\t/**\n\t * On touch start, record the position and scroll offset.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchStart = function(event) {\n\t\tvar targetElement, touch, selection;\n\n\t\t// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).\n\t\tif (event.targetTouches.length > 1) {\n\t\t\treturn true;\n\t\t}\n\n\t\ttargetElement = this.getTargetElementFromEventTarget(event.target);\n\t\ttouch = event.targetTouches[0];\n\n\t\tif (deviceIsIOS) {\n\n\t\t\t// Only trusted events will deselect text on iOS (issue #49)\n\t\t\tselection = window.getSelection();\n\t\t\tif (selection.rangeCount && !selection.isCollapsed) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!deviceIsIOS4) {\n\n\t\t\t\t// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):\n\t\t\t\t// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched\n\t\t\t\t// with the same identifier as the touch event that previously triggered the click that triggered the alert.\n\t\t\t\t// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an\n\t\t\t\t// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.\n\t\t\t\t// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,\n\t\t\t\t// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,\n\t\t\t\t// random integers, it's safe to to continue if the identifier is 0 here.\n\t\t\t\tif (touch.identifier && touch.identifier === this.lastTouchIdentifier) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastTouchIdentifier = touch.identifier;\n\n\t\t\t\t// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:\n\t\t\t\t// 1) the user does a fling scroll on the scrollable layer\n\t\t\t\t// 2) the user stops the fling scroll with another tap\n\t\t\t\t// then the event.target of the last 'touchend' event will be the element that was under the user's finger\n\t\t\t\t// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check\n\t\t\t\t// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).\n\t\t\t\tthis.updateScrollParent(targetElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackingClick = true;\n\t\tthis.trackingClickStart = event.timeStamp;\n\t\tthis.targetElement = targetElement;\n\n\t\tthis.touchStartX = touch.pageX;\n\t\tthis.touchStartY = touch.pageY;\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.touchHasMoved = function(event) {\n\t\tvar touch = event.changedTouches[0], boundary = this.touchBoundary;\n\n\t\tif (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Update the last position.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchMove = function(event) {\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the touch has moved, cancel the click tracking\n\t\tif (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {\n\t\t\tthis.trackingClick = false;\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * Attempt to find the labelled control for the given label element.\n\t *\n\t * @param {EventTarget|HTMLLabelElement} labelElement\n\t * @returns {Element|null}\n\t */\n\tFastClick.prototype.findControl = function(labelElement) {\n\n\t\t// Fast path for newer browsers supporting the HTML5 control attribute\n\t\tif (labelElement.control !== undefined) {\n\t\t\treturn labelElement.control;\n\t\t}\n\n\t\t// All browsers under test that support touch events also support the HTML5 htmlFor attribute\n\t\tif (labelElement.htmlFor) {\n\t\t\treturn document.getElementById(labelElement.htmlFor);\n\t\t}\n\n\t\t// If no for attribute exists, attempt to retrieve the first labellable descendant element\n\t\t// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label\n\t\treturn labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');\n\t};\n\n\n\t/**\n\t * On touch end, determine whether to send a click event at once.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onTouchEnd = function(event) {\n\t\tvar forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;\n\n\t\tif (!this.trackingClick) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Prevent phantom clicks on fast double-tap (issue #36)\n\t\tif ((event.timeStamp - this.lastClickTime) < this.tapDelay) {\n\t\t\tthis.cancelNextClick = true;\n\t\t\treturn true;\n\t\t}\n\n\t\tif ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Reset to prevent wrong click cancel on input (issue #156).\n\t\tthis.cancelNextClick = false;\n\n\t\tthis.lastClickTime = event.timeStamp;\n\n\t\ttrackingClickStart = this.trackingClickStart;\n\t\tthis.trackingClick = false;\n\t\tthis.trackingClickStart = 0;\n\n\t\t// On some iOS devices, the targetElement supplied with the event is invalid if the layer\n\t\t// is performing a transition or scroll, and has to be re-detected manually. Note that\n\t\t// for this to function correctly, it must be called *after* the event target is checked!\n\t\t// See issue #57; also filed as rdar://13048589 .\n\t\tif (deviceIsIOSWithBadTarget) {\n\t\t\ttouch = event.changedTouches[0];\n\n\t\t\t// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null\n\t\t\ttargetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;\n\t\t\ttargetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;\n\t\t}\n\n\t\ttargetTagName = targetElement.tagName.toLowerCase();\n\t\tif (targetTagName === 'label') {\n\t\t\tforElement = this.findControl(targetElement);\n\t\t\tif (forElement) {\n\t\t\t\tthis.focus(targetElement);\n\t\t\t\tif (deviceIsAndroid) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\ttargetElement = forElement;\n\t\t\t}\n\t\t} else if (this.needsFocus(targetElement)) {\n\n\t\t\t// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.\n\t\t\t// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).\n\t\t\tif ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.focus(targetElement);\n\t\t\tthis.sendClick(targetElement, event);\n\n\t\t\t// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.\n\t\t\t// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)\n\t\t\tif (!deviceIsIOS || targetTagName !== 'select') {\n\t\t\t\tthis.targetElement = null;\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (deviceIsIOS && !deviceIsIOS4) {\n\n\t\t\t// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled\n\t\t\t// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).\n\t\t\tscrollParent = targetElement.fastClickScrollParent;\n\t\t\tif (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Prevent the actual click from going though - unless the target node is marked as requiring\n\t\t// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.\n\t\tif (!this.needsClick(targetElement)) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendClick(targetElement, event);\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * On touch cancel, stop tracking the click.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.onTouchCancel = function() {\n\t\tthis.trackingClick = false;\n\t\tthis.targetElement = null;\n\t};\n\n\n\t/**\n\t * Determine mouse events which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onMouse = function(event) {\n\n\t\t// If a target element was never set (because a touch event was never fired) allow the event\n\t\tif (!this.targetElement) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (event.forwardedTouchEvent) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Programmatically generated events targeting a specific element should be permitted\n\t\tif (!event.cancelable) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Derive and check the target element to see whether the mouse event needs to be permitted;\n\t\t// unless explicitly enabled, prevent non-touch click events from triggering actions,\n\t\t// to prevent ghost/doubleclicks.\n\t\tif (!this.needsClick(this.targetElement) || this.cancelNextClick) {\n\n\t\t\t// Prevent any user-added listeners declared on FastClick element from being fired.\n\t\t\tif (event.stopImmediatePropagation) {\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t} else {\n\n\t\t\t\t// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)\n\t\t\t\tevent.propagationStopped = true;\n\t\t\t}\n\n\t\t\t// Cancel the event\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the mouse event is permitted, return true for the action to go through.\n\t\treturn true;\n\t};\n\n\n\t/**\n\t * On actual clicks, determine whether this is a touch-generated click, a click action occurring\n\t * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or\n\t * an actual click which should be permitted.\n\t *\n\t * @param {Event} event\n\t * @returns {boolean}\n\t */\n\tFastClick.prototype.onClick = function(event) {\n\t\tvar permitted;\n\n\t\t// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.\n\t\tif (this.trackingClick) {\n\t\t\tthis.targetElement = null;\n\t\t\tthis.trackingClick = false;\n\t\t\treturn true;\n\t\t}\n\n\t\t// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.\n\t\tif (event.target.type === 'submit' && event.detail === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\tpermitted = this.onMouse(event);\n\n\t\t// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.\n\t\tif (!permitted) {\n\t\t\tthis.targetElement = null;\n\t\t}\n\n\t\t// If clicks are permitted, return true for the action to go through.\n\t\treturn permitted;\n\t};\n\n\n\t/**\n\t * Remove all FastClick's event listeners.\n\t *\n\t * @returns {void}\n\t */\n\tFastClick.prototype.destroy = function() {\n\t\tvar layer = this.layer;\n\n\t\tif (deviceIsAndroid) {\n\t\t\tlayer.removeEventListener('mouseover', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mousedown', this.onMouse, true);\n\t\t\tlayer.removeEventListener('mouseup', this.onMouse, true);\n\t\t}\n\n\t\tlayer.removeEventListener('click', this.onClick, true);\n\t\tlayer.removeEventListener('touchstart', this.onTouchStart, false);\n\t\tlayer.removeEventListener('touchmove', this.onTouchMove, false);\n\t\tlayer.removeEventListener('touchend', this.onTouchEnd, false);\n\t\tlayer.removeEventListener('touchcancel', this.onTouchCancel, false);\n\t};\n\n\n\t/**\n\t * Check whether FastClick is needed.\n\t *\n\t * @param {Element} layer The layer to listen on\n\t */\n\tFastClick.notNeeded = function(layer) {\n\t\tvar metaViewport;\n\t\tvar chromeVersion;\n\t\tvar blackberryVersion;\n\t\tvar firefoxVersion;\n\n\t\t// Devices that don't support touch don't need FastClick\n\t\tif (typeof window.ontouchstart === 'undefined') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Chrome version - zero for other browsers\n\t\tchromeVersion = +(/Chrome\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (chromeVersion) {\n\n\t\t\tif (deviceIsAndroid) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// Chrome on Android with user-scalable=\"no\" doesn't need FastClick (issue #89)\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Chrome 32 and above with width=device-width or less don't need FastClick\n\t\t\t\t\tif (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Chrome desktop doesn't need FastClick (issue #15)\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\tif (deviceIsBlackBerry10) {\n\t\t\tblackberryVersion = navigator.userAgent.match(/Version\\/([0-9]*)\\.([0-9]*)/);\n\n\t\t\t// BlackBerry 10.3+ does not require Fastclick library.\n\t\t\t// https://github.com/ftlabs/fastclick/issues/251\n\t\t\tif (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {\n\t\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\n\t\t\t\tif (metaViewport) {\n\t\t\t\t\t// user-scalable=no eliminates click delay.\n\t\t\t\t\tif (metaViewport.content.indexOf('user-scalable=no') !== -1) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// width=device-width (or less than device-width) eliminates click delay.\n\t\t\t\t\tif (document.documentElement.scrollWidth <= window.outerWidth) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)\n\t\tif (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Firefox version - zero for other browsers\n\t\tfirefoxVersion = +(/Firefox\\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];\n\n\t\tif (firefoxVersion >= 27) {\n\t\t\t// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896\n\n\t\t\tmetaViewport = document.querySelector('meta[name=viewport]');\n\t\t\tif (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version\n\t\t// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx\n\t\tif (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\n\t/**\n\t * Factory method for creating a FastClick object\n\t *\n\t * @param {Element} layer The layer to listen on\n\t * @param {Object} [options={}] The options to override the defaults\n\t */\n\tFastClick.attach = function(layer, options) {\n\t\treturn new FastClick(layer, options);\n\t};\n\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine(function() {\n\t\t\treturn FastClick;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = FastClick.attach;\n\t\tmodule.exports.FastClick = FastClick;\n\t} else {\n\t\twindow.FastClick = FastClick;\n\t}\n}());\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/font-awesome/css/font-awesome.css",
    "content": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)\n */\n/* FONT PATH\n * -------------------------- */\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');\n  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');\n  font-weight: normal;\n  font-style: normal;\n}\n.fa {\n  display: inline-block;\n  font: normal normal normal 14px/1 FontAwesome;\n  font-size: inherit;\n  text-rendering: auto;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n/* makes the font 33% larger relative to the icon container */\n.fa-lg {\n  font-size: 1.33333333em;\n  line-height: 0.75em;\n  vertical-align: -15%;\n}\n.fa-2x {\n  font-size: 2em;\n}\n.fa-3x {\n  font-size: 3em;\n}\n.fa-4x {\n  font-size: 4em;\n}\n.fa-5x {\n  font-size: 5em;\n}\n.fa-fw {\n  width: 1.28571429em;\n  text-align: center;\n}\n.fa-ul {\n  padding-left: 0;\n  margin-left: 2.14285714em;\n  list-style-type: none;\n}\n.fa-ul > li {\n  position: relative;\n}\n.fa-li {\n  position: absolute;\n  left: -2.14285714em;\n  width: 2.14285714em;\n  top: 0.14285714em;\n  text-align: center;\n}\n.fa-li.fa-lg {\n  left: -1.85714286em;\n}\n.fa-border {\n  padding: .2em .25em .15em;\n  border: solid 0.08em #eeeeee;\n  border-radius: .1em;\n}\n.fa-pull-left {\n  float: left;\n}\n.fa-pull-right {\n  float: right;\n}\n.fa.fa-pull-left {\n  margin-right: .3em;\n}\n.fa.fa-pull-right {\n  margin-left: .3em;\n}\n/* Deprecated as of 4.4.0 */\n.pull-right {\n  float: right;\n}\n.pull-left {\n  float: left;\n}\n.fa.pull-left {\n  margin-right: .3em;\n}\n.fa.pull-right {\n  margin-left: .3em;\n}\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n  animation: fa-spin 2s infinite linear;\n}\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n  animation: fa-spin 1s infinite steps(8);\n}\n@-webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n@keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(359deg);\n    transform: rotate(359deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n.fa-rotate-180 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n  -webkit-transform: rotate(180deg);\n  -ms-transform: rotate(180deg);\n  transform: rotate(180deg);\n}\n.fa-rotate-270 {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n  -webkit-transform: rotate(270deg);\n  -ms-transform: rotate(270deg);\n  transform: rotate(270deg);\n}\n.fa-flip-horizontal {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n.fa-flip-vertical {\n  -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n  filter: none;\n}\n.fa-stack {\n  position: relative;\n  display: inline-block;\n  width: 2em;\n  height: 2em;\n  line-height: 2em;\n  vertical-align: middle;\n}\n.fa-stack-1x,\n.fa-stack-2x {\n  position: absolute;\n  left: 0;\n  width: 100%;\n  text-align: center;\n}\n.fa-stack-1x {\n  line-height: inherit;\n}\n.fa-stack-2x {\n  font-size: 2em;\n}\n.fa-inverse {\n  color: #ffffff;\n}\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters that represent icons */\n.fa-glass:before {\n  content: \"\\f000\";\n}\n.fa-music:before {\n  content: \"\\f001\";\n}\n.fa-search:before {\n  content: \"\\f002\";\n}\n.fa-envelope-o:before {\n  content: \"\\f003\";\n}\n.fa-heart:before {\n  content: \"\\f004\";\n}\n.fa-star:before {\n  content: \"\\f005\";\n}\n.fa-star-o:before {\n  content: \"\\f006\";\n}\n.fa-user:before {\n  content: \"\\f007\";\n}\n.fa-film:before {\n  content: \"\\f008\";\n}\n.fa-th-large:before {\n  content: \"\\f009\";\n}\n.fa-th:before {\n  content: \"\\f00a\";\n}\n.fa-th-list:before {\n  content: \"\\f00b\";\n}\n.fa-check:before {\n  content: \"\\f00c\";\n}\n.fa-remove:before,\n.fa-close:before,\n.fa-times:before {\n  content: \"\\f00d\";\n}\n.fa-search-plus:before {\n  content: \"\\f00e\";\n}\n.fa-search-minus:before {\n  content: \"\\f010\";\n}\n.fa-power-off:before {\n  content: \"\\f011\";\n}\n.fa-signal:before {\n  content: \"\\f012\";\n}\n.fa-gear:before,\n.fa-cog:before {\n  content: \"\\f013\";\n}\n.fa-trash-o:before {\n  content: \"\\f014\";\n}\n.fa-home:before {\n  content: \"\\f015\";\n}\n.fa-file-o:before {\n  content: \"\\f016\";\n}\n.fa-clock-o:before {\n  content: \"\\f017\";\n}\n.fa-road:before {\n  content: \"\\f018\";\n}\n.fa-download:before {\n  content: \"\\f019\";\n}\n.fa-arrow-circle-o-down:before {\n  content: \"\\f01a\";\n}\n.fa-arrow-circle-o-up:before {\n  content: \"\\f01b\";\n}\n.fa-inbox:before {\n  content: \"\\f01c\";\n}\n.fa-play-circle-o:before {\n  content: \"\\f01d\";\n}\n.fa-rotate-right:before,\n.fa-repeat:before {\n  content: \"\\f01e\";\n}\n.fa-refresh:before {\n  content: \"\\f021\";\n}\n.fa-list-alt:before {\n  content: \"\\f022\";\n}\n.fa-lock:before {\n  content: \"\\f023\";\n}\n.fa-flag:before {\n  content: \"\\f024\";\n}\n.fa-headphones:before {\n  content: \"\\f025\";\n}\n.fa-volume-off:before {\n  content: \"\\f026\";\n}\n.fa-volume-down:before {\n  content: \"\\f027\";\n}\n.fa-volume-up:before {\n  content: \"\\f028\";\n}\n.fa-qrcode:before {\n  content: \"\\f029\";\n}\n.fa-barcode:before {\n  content: \"\\f02a\";\n}\n.fa-tag:before {\n  content: \"\\f02b\";\n}\n.fa-tags:before {\n  content: \"\\f02c\";\n}\n.fa-book:before {\n  content: \"\\f02d\";\n}\n.fa-bookmark:before {\n  content: \"\\f02e\";\n}\n.fa-print:before {\n  content: \"\\f02f\";\n}\n.fa-camera:before {\n  content: \"\\f030\";\n}\n.fa-font:before {\n  content: \"\\f031\";\n}\n.fa-bold:before {\n  content: \"\\f032\";\n}\n.fa-italic:before {\n  content: \"\\f033\";\n}\n.fa-text-height:before {\n  content: \"\\f034\";\n}\n.fa-text-width:before {\n  content: \"\\f035\";\n}\n.fa-align-left:before {\n  content: \"\\f036\";\n}\n.fa-align-center:before {\n  content: \"\\f037\";\n}\n.fa-align-right:before {\n  content: \"\\f038\";\n}\n.fa-align-justify:before {\n  content: \"\\f039\";\n}\n.fa-list:before {\n  content: \"\\f03a\";\n}\n.fa-dedent:before,\n.fa-outdent:before {\n  content: \"\\f03b\";\n}\n.fa-indent:before {\n  content: \"\\f03c\";\n}\n.fa-video-camera:before {\n  content: \"\\f03d\";\n}\n.fa-photo:before,\n.fa-image:before,\n.fa-picture-o:before {\n  content: \"\\f03e\";\n}\n.fa-pencil:before {\n  content: \"\\f040\";\n}\n.fa-map-marker:before {\n  content: \"\\f041\";\n}\n.fa-adjust:before {\n  content: \"\\f042\";\n}\n.fa-tint:before {\n  content: \"\\f043\";\n}\n.fa-edit:before,\n.fa-pencil-square-o:before {\n  content: \"\\f044\";\n}\n.fa-share-square-o:before {\n  content: \"\\f045\";\n}\n.fa-check-square-o:before {\n  content: \"\\f046\";\n}\n.fa-arrows:before {\n  content: \"\\f047\";\n}\n.fa-step-backward:before {\n  content: \"\\f048\";\n}\n.fa-fast-backward:before {\n  content: \"\\f049\";\n}\n.fa-backward:before {\n  content: \"\\f04a\";\n}\n.fa-play:before {\n  content: \"\\f04b\";\n}\n.fa-pause:before {\n  content: \"\\f04c\";\n}\n.fa-stop:before {\n  content: \"\\f04d\";\n}\n.fa-forward:before {\n  content: \"\\f04e\";\n}\n.fa-fast-forward:before {\n  content: \"\\f050\";\n}\n.fa-step-forward:before {\n  content: \"\\f051\";\n}\n.fa-eject:before {\n  content: \"\\f052\";\n}\n.fa-chevron-left:before {\n  content: \"\\f053\";\n}\n.fa-chevron-right:before {\n  content: \"\\f054\";\n}\n.fa-plus-circle:before {\n  content: \"\\f055\";\n}\n.fa-minus-circle:before {\n  content: \"\\f056\";\n}\n.fa-times-circle:before {\n  content: \"\\f057\";\n}\n.fa-check-circle:before {\n  content: \"\\f058\";\n}\n.fa-question-circle:before {\n  content: \"\\f059\";\n}\n.fa-info-circle:before {\n  content: \"\\f05a\";\n}\n.fa-crosshairs:before {\n  content: \"\\f05b\";\n}\n.fa-times-circle-o:before {\n  content: \"\\f05c\";\n}\n.fa-check-circle-o:before {\n  content: \"\\f05d\";\n}\n.fa-ban:before {\n  content: \"\\f05e\";\n}\n.fa-arrow-left:before {\n  content: \"\\f060\";\n}\n.fa-arrow-right:before {\n  content: \"\\f061\";\n}\n.fa-arrow-up:before {\n  content: \"\\f062\";\n}\n.fa-arrow-down:before {\n  content: \"\\f063\";\n}\n.fa-mail-forward:before,\n.fa-share:before {\n  content: \"\\f064\";\n}\n.fa-expand:before {\n  content: \"\\f065\";\n}\n.fa-compress:before {\n  content: \"\\f066\";\n}\n.fa-plus:before {\n  content: \"\\f067\";\n}\n.fa-minus:before {\n  content: \"\\f068\";\n}\n.fa-asterisk:before {\n  content: \"\\f069\";\n}\n.fa-exclamation-circle:before {\n  content: \"\\f06a\";\n}\n.fa-gift:before {\n  content: \"\\f06b\";\n}\n.fa-leaf:before {\n  content: \"\\f06c\";\n}\n.fa-fire:before {\n  content: \"\\f06d\";\n}\n.fa-eye:before {\n  content: \"\\f06e\";\n}\n.fa-eye-slash:before {\n  content: \"\\f070\";\n}\n.fa-warning:before,\n.fa-exclamation-triangle:before {\n  content: \"\\f071\";\n}\n.fa-plane:before {\n  content: \"\\f072\";\n}\n.fa-calendar:before {\n  content: \"\\f073\";\n}\n.fa-random:before {\n  content: \"\\f074\";\n}\n.fa-comment:before {\n  content: \"\\f075\";\n}\n.fa-magnet:before {\n  content: \"\\f076\";\n}\n.fa-chevron-up:before {\n  content: \"\\f077\";\n}\n.fa-chevron-down:before {\n  content: \"\\f078\";\n}\n.fa-retweet:before {\n  content: \"\\f079\";\n}\n.fa-shopping-cart:before {\n  content: \"\\f07a\";\n}\n.fa-folder:before {\n  content: \"\\f07b\";\n}\n.fa-folder-open:before {\n  content: \"\\f07c\";\n}\n.fa-arrows-v:before {\n  content: \"\\f07d\";\n}\n.fa-arrows-h:before {\n  content: \"\\f07e\";\n}\n.fa-bar-chart-o:before,\n.fa-bar-chart:before {\n  content: \"\\f080\";\n}\n.fa-twitter-square:before {\n  content: \"\\f081\";\n}\n.fa-facebook-square:before {\n  content: \"\\f082\";\n}\n.fa-camera-retro:before {\n  content: \"\\f083\";\n}\n.fa-key:before {\n  content: \"\\f084\";\n}\n.fa-gears:before,\n.fa-cogs:before {\n  content: \"\\f085\";\n}\n.fa-comments:before {\n  content: \"\\f086\";\n}\n.fa-thumbs-o-up:before {\n  content: \"\\f087\";\n}\n.fa-thumbs-o-down:before {\n  content: \"\\f088\";\n}\n.fa-star-half:before {\n  content: \"\\f089\";\n}\n.fa-heart-o:before {\n  content: \"\\f08a\";\n}\n.fa-sign-out:before {\n  content: \"\\f08b\";\n}\n.fa-linkedin-square:before {\n  content: \"\\f08c\";\n}\n.fa-thumb-tack:before {\n  content: \"\\f08d\";\n}\n.fa-external-link:before {\n  content: \"\\f08e\";\n}\n.fa-sign-in:before {\n  content: \"\\f090\";\n}\n.fa-trophy:before {\n  content: \"\\f091\";\n}\n.fa-github-square:before {\n  content: \"\\f092\";\n}\n.fa-upload:before {\n  content: \"\\f093\";\n}\n.fa-lemon-o:before {\n  content: \"\\f094\";\n}\n.fa-phone:before {\n  content: \"\\f095\";\n}\n.fa-square-o:before {\n  content: \"\\f096\";\n}\n.fa-bookmark-o:before {\n  content: \"\\f097\";\n}\n.fa-phone-square:before {\n  content: \"\\f098\";\n}\n.fa-twitter:before {\n  content: \"\\f099\";\n}\n.fa-facebook-f:before,\n.fa-facebook:before {\n  content: \"\\f09a\";\n}\n.fa-github:before {\n  content: \"\\f09b\";\n}\n.fa-unlock:before {\n  content: \"\\f09c\";\n}\n.fa-credit-card:before {\n  content: \"\\f09d\";\n}\n.fa-feed:before,\n.fa-rss:before {\n  content: \"\\f09e\";\n}\n.fa-hdd-o:before {\n  content: \"\\f0a0\";\n}\n.fa-bullhorn:before {\n  content: \"\\f0a1\";\n}\n.fa-bell:before {\n  content: \"\\f0f3\";\n}\n.fa-certificate:before {\n  content: \"\\f0a3\";\n}\n.fa-hand-o-right:before {\n  content: \"\\f0a4\";\n}\n.fa-hand-o-left:before {\n  content: \"\\f0a5\";\n}\n.fa-hand-o-up:before {\n  content: \"\\f0a6\";\n}\n.fa-hand-o-down:before {\n  content: \"\\f0a7\";\n}\n.fa-arrow-circle-left:before {\n  content: \"\\f0a8\";\n}\n.fa-arrow-circle-right:before {\n  content: \"\\f0a9\";\n}\n.fa-arrow-circle-up:before {\n  content: \"\\f0aa\";\n}\n.fa-arrow-circle-down:before {\n  content: \"\\f0ab\";\n}\n.fa-globe:before {\n  content: \"\\f0ac\";\n}\n.fa-wrench:before {\n  content: \"\\f0ad\";\n}\n.fa-tasks:before {\n  content: \"\\f0ae\";\n}\n.fa-filter:before {\n  content: \"\\f0b0\";\n}\n.fa-briefcase:before {\n  content: \"\\f0b1\";\n}\n.fa-arrows-alt:before {\n  content: \"\\f0b2\";\n}\n.fa-group:before,\n.fa-users:before {\n  content: \"\\f0c0\";\n}\n.fa-chain:before,\n.fa-link:before {\n  content: \"\\f0c1\";\n}\n.fa-cloud:before {\n  content: \"\\f0c2\";\n}\n.fa-flask:before {\n  content: \"\\f0c3\";\n}\n.fa-cut:before,\n.fa-scissors:before {\n  content: \"\\f0c4\";\n}\n.fa-copy:before,\n.fa-files-o:before {\n  content: \"\\f0c5\";\n}\n.fa-paperclip:before {\n  content: \"\\f0c6\";\n}\n.fa-save:before,\n.fa-floppy-o:before {\n  content: \"\\f0c7\";\n}\n.fa-square:before {\n  content: \"\\f0c8\";\n}\n.fa-navicon:before,\n.fa-reorder:before,\n.fa-bars:before {\n  content: \"\\f0c9\";\n}\n.fa-list-ul:before {\n  content: \"\\f0ca\";\n}\n.fa-list-ol:before {\n  content: \"\\f0cb\";\n}\n.fa-strikethrough:before {\n  content: \"\\f0cc\";\n}\n.fa-underline:before {\n  content: \"\\f0cd\";\n}\n.fa-table:before {\n  content: \"\\f0ce\";\n}\n.fa-magic:before {\n  content: \"\\f0d0\";\n}\n.fa-truck:before {\n  content: \"\\f0d1\";\n}\n.fa-pinterest:before {\n  content: \"\\f0d2\";\n}\n.fa-pinterest-square:before {\n  content: \"\\f0d3\";\n}\n.fa-google-plus-square:before {\n  content: \"\\f0d4\";\n}\n.fa-google-plus:before {\n  content: \"\\f0d5\";\n}\n.fa-money:before {\n  content: \"\\f0d6\";\n}\n.fa-caret-down:before {\n  content: \"\\f0d7\";\n}\n.fa-caret-up:before {\n  content: \"\\f0d8\";\n}\n.fa-caret-left:before {\n  content: \"\\f0d9\";\n}\n.fa-caret-right:before {\n  content: \"\\f0da\";\n}\n.fa-columns:before {\n  content: \"\\f0db\";\n}\n.fa-unsorted:before,\n.fa-sort:before {\n  content: \"\\f0dc\";\n}\n.fa-sort-down:before,\n.fa-sort-desc:before {\n  content: \"\\f0dd\";\n}\n.fa-sort-up:before,\n.fa-sort-asc:before {\n  content: \"\\f0de\";\n}\n.fa-envelope:before {\n  content: \"\\f0e0\";\n}\n.fa-linkedin:before {\n  content: \"\\f0e1\";\n}\n.fa-rotate-left:before,\n.fa-undo:before {\n  content: \"\\f0e2\";\n}\n.fa-legal:before,\n.fa-gavel:before {\n  content: \"\\f0e3\";\n}\n.fa-dashboard:before,\n.fa-tachometer:before {\n  content: \"\\f0e4\";\n}\n.fa-comment-o:before {\n  content: \"\\f0e5\";\n}\n.fa-comments-o:before {\n  content: \"\\f0e6\";\n}\n.fa-flash:before,\n.fa-bolt:before {\n  content: \"\\f0e7\";\n}\n.fa-sitemap:before {\n  content: \"\\f0e8\";\n}\n.fa-umbrella:before {\n  content: \"\\f0e9\";\n}\n.fa-paste:before,\n.fa-clipboard:before {\n  content: \"\\f0ea\";\n}\n.fa-lightbulb-o:before {\n  content: \"\\f0eb\";\n}\n.fa-exchange:before {\n  content: \"\\f0ec\";\n}\n.fa-cloud-download:before {\n  content: \"\\f0ed\";\n}\n.fa-cloud-upload:before {\n  content: \"\\f0ee\";\n}\n.fa-user-md:before {\n  content: \"\\f0f0\";\n}\n.fa-stethoscope:before {\n  content: \"\\f0f1\";\n}\n.fa-suitcase:before {\n  content: \"\\f0f2\";\n}\n.fa-bell-o:before {\n  content: \"\\f0a2\";\n}\n.fa-coffee:before {\n  content: \"\\f0f4\";\n}\n.fa-cutlery:before {\n  content: \"\\f0f5\";\n}\n.fa-file-text-o:before {\n  content: \"\\f0f6\";\n}\n.fa-building-o:before {\n  content: \"\\f0f7\";\n}\n.fa-hospital-o:before {\n  content: \"\\f0f8\";\n}\n.fa-ambulance:before {\n  content: \"\\f0f9\";\n}\n.fa-medkit:before {\n  content: \"\\f0fa\";\n}\n.fa-fighter-jet:before {\n  content: \"\\f0fb\";\n}\n.fa-beer:before {\n  content: \"\\f0fc\";\n}\n.fa-h-square:before {\n  content: \"\\f0fd\";\n}\n.fa-plus-square:before {\n  content: \"\\f0fe\";\n}\n.fa-angle-double-left:before {\n  content: \"\\f100\";\n}\n.fa-angle-double-right:before {\n  content: \"\\f101\";\n}\n.fa-angle-double-up:before {\n  content: \"\\f102\";\n}\n.fa-angle-double-down:before {\n  content: \"\\f103\";\n}\n.fa-angle-left:before {\n  content: \"\\f104\";\n}\n.fa-angle-right:before {\n  content: \"\\f105\";\n}\n.fa-angle-up:before {\n  content: \"\\f106\";\n}\n.fa-angle-down:before {\n  content: \"\\f107\";\n}\n.fa-desktop:before {\n  content: \"\\f108\";\n}\n.fa-laptop:before {\n  content: \"\\f109\";\n}\n.fa-tablet:before {\n  content: \"\\f10a\";\n}\n.fa-mobile-phone:before,\n.fa-mobile:before {\n  content: \"\\f10b\";\n}\n.fa-circle-o:before {\n  content: \"\\f10c\";\n}\n.fa-quote-left:before {\n  content: \"\\f10d\";\n}\n.fa-quote-right:before {\n  content: \"\\f10e\";\n}\n.fa-spinner:before {\n  content: \"\\f110\";\n}\n.fa-circle:before {\n  content: \"\\f111\";\n}\n.fa-mail-reply:before,\n.fa-reply:before {\n  content: \"\\f112\";\n}\n.fa-github-alt:before {\n  content: \"\\f113\";\n}\n.fa-folder-o:before {\n  content: \"\\f114\";\n}\n.fa-folder-open-o:before {\n  content: \"\\f115\";\n}\n.fa-smile-o:before {\n  content: \"\\f118\";\n}\n.fa-frown-o:before {\n  content: \"\\f119\";\n}\n.fa-meh-o:before {\n  content: \"\\f11a\";\n}\n.fa-gamepad:before {\n  content: \"\\f11b\";\n}\n.fa-keyboard-o:before {\n  content: \"\\f11c\";\n}\n.fa-flag-o:before {\n  content: \"\\f11d\";\n}\n.fa-flag-checkered:before {\n  content: \"\\f11e\";\n}\n.fa-terminal:before {\n  content: \"\\f120\";\n}\n.fa-code:before {\n  content: \"\\f121\";\n}\n.fa-mail-reply-all:before,\n.fa-reply-all:before {\n  content: \"\\f122\";\n}\n.fa-star-half-empty:before,\n.fa-star-half-full:before,\n.fa-star-half-o:before {\n  content: \"\\f123\";\n}\n.fa-location-arrow:before {\n  content: \"\\f124\";\n}\n.fa-crop:before {\n  content: \"\\f125\";\n}\n.fa-code-fork:before {\n  content: \"\\f126\";\n}\n.fa-unlink:before,\n.fa-chain-broken:before {\n  content: \"\\f127\";\n}\n.fa-question:before {\n  content: \"\\f128\";\n}\n.fa-info:before {\n  content: \"\\f129\";\n}\n.fa-exclamation:before {\n  content: \"\\f12a\";\n}\n.fa-superscript:before {\n  content: \"\\f12b\";\n}\n.fa-subscript:before {\n  content: \"\\f12c\";\n}\n.fa-eraser:before {\n  content: \"\\f12d\";\n}\n.fa-puzzle-piece:before {\n  content: \"\\f12e\";\n}\n.fa-microphone:before {\n  content: \"\\f130\";\n}\n.fa-microphone-slash:before {\n  content: \"\\f131\";\n}\n.fa-shield:before {\n  content: \"\\f132\";\n}\n.fa-calendar-o:before {\n  content: \"\\f133\";\n}\n.fa-fire-extinguisher:before {\n  content: \"\\f134\";\n}\n.fa-rocket:before {\n  content: \"\\f135\";\n}\n.fa-maxcdn:before {\n  content: \"\\f136\";\n}\n.fa-chevron-circle-left:before {\n  content: \"\\f137\";\n}\n.fa-chevron-circle-right:before {\n  content: \"\\f138\";\n}\n.fa-chevron-circle-up:before {\n  content: \"\\f139\";\n}\n.fa-chevron-circle-down:before {\n  content: \"\\f13a\";\n}\n.fa-html5:before {\n  content: \"\\f13b\";\n}\n.fa-css3:before {\n  content: \"\\f13c\";\n}\n.fa-anchor:before {\n  content: \"\\f13d\";\n}\n.fa-unlock-alt:before {\n  content: \"\\f13e\";\n}\n.fa-bullseye:before {\n  content: \"\\f140\";\n}\n.fa-ellipsis-h:before {\n  content: \"\\f141\";\n}\n.fa-ellipsis-v:before {\n  content: \"\\f142\";\n}\n.fa-rss-square:before {\n  content: \"\\f143\";\n}\n.fa-play-circle:before {\n  content: \"\\f144\";\n}\n.fa-ticket:before {\n  content: \"\\f145\";\n}\n.fa-minus-square:before {\n  content: \"\\f146\";\n}\n.fa-minus-square-o:before {\n  content: \"\\f147\";\n}\n.fa-level-up:before {\n  content: \"\\f148\";\n}\n.fa-level-down:before {\n  content: \"\\f149\";\n}\n.fa-check-square:before {\n  content: \"\\f14a\";\n}\n.fa-pencil-square:before {\n  content: \"\\f14b\";\n}\n.fa-external-link-square:before {\n  content: \"\\f14c\";\n}\n.fa-share-square:before {\n  content: \"\\f14d\";\n}\n.fa-compass:before {\n  content: \"\\f14e\";\n}\n.fa-toggle-down:before,\n.fa-caret-square-o-down:before {\n  content: \"\\f150\";\n}\n.fa-toggle-up:before,\n.fa-caret-square-o-up:before {\n  content: \"\\f151\";\n}\n.fa-toggle-right:before,\n.fa-caret-square-o-right:before {\n  content: \"\\f152\";\n}\n.fa-euro:before,\n.fa-eur:before {\n  content: \"\\f153\";\n}\n.fa-gbp:before {\n  content: \"\\f154\";\n}\n.fa-dollar:before,\n.fa-usd:before {\n  content: \"\\f155\";\n}\n.fa-rupee:before,\n.fa-inr:before {\n  content: \"\\f156\";\n}\n.fa-cny:before,\n.fa-rmb:before,\n.fa-yen:before,\n.fa-jpy:before {\n  content: \"\\f157\";\n}\n.fa-ruble:before,\n.fa-rouble:before,\n.fa-rub:before {\n  content: \"\\f158\";\n}\n.fa-won:before,\n.fa-krw:before {\n  content: \"\\f159\";\n}\n.fa-bitcoin:before,\n.fa-btc:before {\n  content: \"\\f15a\";\n}\n.fa-file:before {\n  content: \"\\f15b\";\n}\n.fa-file-text:before {\n  content: \"\\f15c\";\n}\n.fa-sort-alpha-asc:before {\n  content: \"\\f15d\";\n}\n.fa-sort-alpha-desc:before {\n  content: \"\\f15e\";\n}\n.fa-sort-amount-asc:before {\n  content: \"\\f160\";\n}\n.fa-sort-amount-desc:before {\n  content: \"\\f161\";\n}\n.fa-sort-numeric-asc:before {\n  content: \"\\f162\";\n}\n.fa-sort-numeric-desc:before {\n  content: \"\\f163\";\n}\n.fa-thumbs-up:before {\n  content: \"\\f164\";\n}\n.fa-thumbs-down:before {\n  content: \"\\f165\";\n}\n.fa-youtube-square:before {\n  content: \"\\f166\";\n}\n.fa-youtube:before {\n  content: \"\\f167\";\n}\n.fa-xing:before {\n  content: \"\\f168\";\n}\n.fa-xing-square:before {\n  content: \"\\f169\";\n}\n.fa-youtube-play:before {\n  content: \"\\f16a\";\n}\n.fa-dropbox:before {\n  content: \"\\f16b\";\n}\n.fa-stack-overflow:before {\n  content: \"\\f16c\";\n}\n.fa-instagram:before {\n  content: \"\\f16d\";\n}\n.fa-flickr:before {\n  content: \"\\f16e\";\n}\n.fa-adn:before {\n  content: \"\\f170\";\n}\n.fa-bitbucket:before {\n  content: \"\\f171\";\n}\n.fa-bitbucket-square:before {\n  content: \"\\f172\";\n}\n.fa-tumblr:before {\n  content: \"\\f173\";\n}\n.fa-tumblr-square:before {\n  content: \"\\f174\";\n}\n.fa-long-arrow-down:before {\n  content: \"\\f175\";\n}\n.fa-long-arrow-up:before {\n  content: \"\\f176\";\n}\n.fa-long-arrow-left:before {\n  content: \"\\f177\";\n}\n.fa-long-arrow-right:before {\n  content: \"\\f178\";\n}\n.fa-apple:before {\n  content: \"\\f179\";\n}\n.fa-windows:before {\n  content: \"\\f17a\";\n}\n.fa-android:before {\n  content: \"\\f17b\";\n}\n.fa-linux:before {\n  content: \"\\f17c\";\n}\n.fa-dribbble:before {\n  content: \"\\f17d\";\n}\n.fa-skype:before {\n  content: \"\\f17e\";\n}\n.fa-foursquare:before {\n  content: \"\\f180\";\n}\n.fa-trello:before {\n  content: \"\\f181\";\n}\n.fa-female:before {\n  content: \"\\f182\";\n}\n.fa-male:before {\n  content: \"\\f183\";\n}\n.fa-gittip:before,\n.fa-gratipay:before {\n  content: \"\\f184\";\n}\n.fa-sun-o:before {\n  content: \"\\f185\";\n}\n.fa-moon-o:before {\n  content: \"\\f186\";\n}\n.fa-archive:before {\n  content: \"\\f187\";\n}\n.fa-bug:before {\n  content: \"\\f188\";\n}\n.fa-vk:before {\n  content: \"\\f189\";\n}\n.fa-weibo:before {\n  content: \"\\f18a\";\n}\n.fa-renren:before {\n  content: \"\\f18b\";\n}\n.fa-pagelines:before {\n  content: \"\\f18c\";\n}\n.fa-stack-exchange:before {\n  content: \"\\f18d\";\n}\n.fa-arrow-circle-o-right:before {\n  content: \"\\f18e\";\n}\n.fa-arrow-circle-o-left:before {\n  content: \"\\f190\";\n}\n.fa-toggle-left:before,\n.fa-caret-square-o-left:before {\n  content: \"\\f191\";\n}\n.fa-dot-circle-o:before {\n  content: \"\\f192\";\n}\n.fa-wheelchair:before {\n  content: \"\\f193\";\n}\n.fa-vimeo-square:before {\n  content: \"\\f194\";\n}\n.fa-turkish-lira:before,\n.fa-try:before {\n  content: \"\\f195\";\n}\n.fa-plus-square-o:before {\n  content: \"\\f196\";\n}\n.fa-space-shuttle:before {\n  content: \"\\f197\";\n}\n.fa-slack:before {\n  content: \"\\f198\";\n}\n.fa-envelope-square:before {\n  content: \"\\f199\";\n}\n.fa-wordpress:before {\n  content: \"\\f19a\";\n}\n.fa-openid:before {\n  content: \"\\f19b\";\n}\n.fa-institution:before,\n.fa-bank:before,\n.fa-university:before {\n  content: \"\\f19c\";\n}\n.fa-mortar-board:before,\n.fa-graduation-cap:before {\n  content: \"\\f19d\";\n}\n.fa-yahoo:before {\n  content: \"\\f19e\";\n}\n.fa-google:before {\n  content: \"\\f1a0\";\n}\n.fa-reddit:before {\n  content: \"\\f1a1\";\n}\n.fa-reddit-square:before {\n  content: \"\\f1a2\";\n}\n.fa-stumbleupon-circle:before {\n  content: \"\\f1a3\";\n}\n.fa-stumbleupon:before {\n  content: \"\\f1a4\";\n}\n.fa-delicious:before {\n  content: \"\\f1a5\";\n}\n.fa-digg:before {\n  content: \"\\f1a6\";\n}\n.fa-pied-piper-pp:before {\n  content: \"\\f1a7\";\n}\n.fa-pied-piper-alt:before {\n  content: \"\\f1a8\";\n}\n.fa-drupal:before {\n  content: \"\\f1a9\";\n}\n.fa-joomla:before {\n  content: \"\\f1aa\";\n}\n.fa-language:before {\n  content: \"\\f1ab\";\n}\n.fa-fax:before {\n  content: \"\\f1ac\";\n}\n.fa-building:before {\n  content: \"\\f1ad\";\n}\n.fa-child:before {\n  content: \"\\f1ae\";\n}\n.fa-paw:before {\n  content: \"\\f1b0\";\n}\n.fa-spoon:before {\n  content: \"\\f1b1\";\n}\n.fa-cube:before {\n  content: \"\\f1b2\";\n}\n.fa-cubes:before {\n  content: \"\\f1b3\";\n}\n.fa-behance:before {\n  content: \"\\f1b4\";\n}\n.fa-behance-square:before {\n  content: \"\\f1b5\";\n}\n.fa-steam:before {\n  content: \"\\f1b6\";\n}\n.fa-steam-square:before {\n  content: \"\\f1b7\";\n}\n.fa-recycle:before {\n  content: \"\\f1b8\";\n}\n.fa-automobile:before,\n.fa-car:before {\n  content: \"\\f1b9\";\n}\n.fa-cab:before,\n.fa-taxi:before {\n  content: \"\\f1ba\";\n}\n.fa-tree:before {\n  content: \"\\f1bb\";\n}\n.fa-spotify:before {\n  content: \"\\f1bc\";\n}\n.fa-deviantart:before {\n  content: \"\\f1bd\";\n}\n.fa-soundcloud:before {\n  content: \"\\f1be\";\n}\n.fa-database:before {\n  content: \"\\f1c0\";\n}\n.fa-file-pdf-o:before {\n  content: \"\\f1c1\";\n}\n.fa-file-word-o:before {\n  content: \"\\f1c2\";\n}\n.fa-file-excel-o:before {\n  content: \"\\f1c3\";\n}\n.fa-file-powerpoint-o:before {\n  content: \"\\f1c4\";\n}\n.fa-file-photo-o:before,\n.fa-file-picture-o:before,\n.fa-file-image-o:before {\n  content: \"\\f1c5\";\n}\n.fa-file-zip-o:before,\n.fa-file-archive-o:before {\n  content: \"\\f1c6\";\n}\n.fa-file-sound-o:before,\n.fa-file-audio-o:before {\n  content: \"\\f1c7\";\n}\n.fa-file-movie-o:before,\n.fa-file-video-o:before {\n  content: \"\\f1c8\";\n}\n.fa-file-code-o:before {\n  content: \"\\f1c9\";\n}\n.fa-vine:before {\n  content: \"\\f1ca\";\n}\n.fa-codepen:before {\n  content: \"\\f1cb\";\n}\n.fa-jsfiddle:before {\n  content: \"\\f1cc\";\n}\n.fa-life-bouy:before,\n.fa-life-buoy:before,\n.fa-life-saver:before,\n.fa-support:before,\n.fa-life-ring:before {\n  content: \"\\f1cd\";\n}\n.fa-circle-o-notch:before {\n  content: \"\\f1ce\";\n}\n.fa-ra:before,\n.fa-resistance:before,\n.fa-rebel:before {\n  content: \"\\f1d0\";\n}\n.fa-ge:before,\n.fa-empire:before {\n  content: \"\\f1d1\";\n}\n.fa-git-square:before {\n  content: \"\\f1d2\";\n}\n.fa-git:before {\n  content: \"\\f1d3\";\n}\n.fa-y-combinator-square:before,\n.fa-yc-square:before,\n.fa-hacker-news:before {\n  content: \"\\f1d4\";\n}\n.fa-tencent-weibo:before {\n  content: \"\\f1d5\";\n}\n.fa-qq:before {\n  content: \"\\f1d6\";\n}\n.fa-wechat:before,\n.fa-weixin:before {\n  content: \"\\f1d7\";\n}\n.fa-send:before,\n.fa-paper-plane:before {\n  content: \"\\f1d8\";\n}\n.fa-send-o:before,\n.fa-paper-plane-o:before {\n  content: \"\\f1d9\";\n}\n.fa-history:before {\n  content: \"\\f1da\";\n}\n.fa-circle-thin:before {\n  content: \"\\f1db\";\n}\n.fa-header:before {\n  content: \"\\f1dc\";\n}\n.fa-paragraph:before {\n  content: \"\\f1dd\";\n}\n.fa-sliders:before {\n  content: \"\\f1de\";\n}\n.fa-share-alt:before {\n  content: \"\\f1e0\";\n}\n.fa-share-alt-square:before {\n  content: \"\\f1e1\";\n}\n.fa-bomb:before {\n  content: \"\\f1e2\";\n}\n.fa-soccer-ball-o:before,\n.fa-futbol-o:before {\n  content: \"\\f1e3\";\n}\n.fa-tty:before {\n  content: \"\\f1e4\";\n}\n.fa-binoculars:before {\n  content: \"\\f1e5\";\n}\n.fa-plug:before {\n  content: \"\\f1e6\";\n}\n.fa-slideshare:before {\n  content: \"\\f1e7\";\n}\n.fa-twitch:before {\n  content: \"\\f1e8\";\n}\n.fa-yelp:before {\n  content: \"\\f1e9\";\n}\n.fa-newspaper-o:before {\n  content: \"\\f1ea\";\n}\n.fa-wifi:before {\n  content: \"\\f1eb\";\n}\n.fa-calculator:before {\n  content: \"\\f1ec\";\n}\n.fa-paypal:before {\n  content: \"\\f1ed\";\n}\n.fa-google-wallet:before {\n  content: \"\\f1ee\";\n}\n.fa-cc-visa:before {\n  content: \"\\f1f0\";\n}\n.fa-cc-mastercard:before {\n  content: \"\\f1f1\";\n}\n.fa-cc-discover:before {\n  content: \"\\f1f2\";\n}\n.fa-cc-amex:before {\n  content: \"\\f1f3\";\n}\n.fa-cc-paypal:before {\n  content: \"\\f1f4\";\n}\n.fa-cc-stripe:before {\n  content: \"\\f1f5\";\n}\n.fa-bell-slash:before {\n  content: \"\\f1f6\";\n}\n.fa-bell-slash-o:before {\n  content: \"\\f1f7\";\n}\n.fa-trash:before {\n  content: \"\\f1f8\";\n}\n.fa-copyright:before {\n  content: \"\\f1f9\";\n}\n.fa-at:before {\n  content: \"\\f1fa\";\n}\n.fa-eyedropper:before {\n  content: \"\\f1fb\";\n}\n.fa-paint-brush:before {\n  content: \"\\f1fc\";\n}\n.fa-birthday-cake:before {\n  content: \"\\f1fd\";\n}\n.fa-area-chart:before {\n  content: \"\\f1fe\";\n}\n.fa-pie-chart:before {\n  content: \"\\f200\";\n}\n.fa-line-chart:before {\n  content: \"\\f201\";\n}\n.fa-lastfm:before {\n  content: \"\\f202\";\n}\n.fa-lastfm-square:before {\n  content: \"\\f203\";\n}\n.fa-toggle-off:before {\n  content: \"\\f204\";\n}\n.fa-toggle-on:before {\n  content: \"\\f205\";\n}\n.fa-bicycle:before {\n  content: \"\\f206\";\n}\n.fa-bus:before {\n  content: \"\\f207\";\n}\n.fa-ioxhost:before {\n  content: \"\\f208\";\n}\n.fa-angellist:before {\n  content: \"\\f209\";\n}\n.fa-cc:before {\n  content: \"\\f20a\";\n}\n.fa-shekel:before,\n.fa-sheqel:before,\n.fa-ils:before {\n  content: \"\\f20b\";\n}\n.fa-meanpath:before {\n  content: \"\\f20c\";\n}\n.fa-buysellads:before {\n  content: \"\\f20d\";\n}\n.fa-connectdevelop:before {\n  content: \"\\f20e\";\n}\n.fa-dashcube:before {\n  content: \"\\f210\";\n}\n.fa-forumbee:before {\n  content: \"\\f211\";\n}\n.fa-leanpub:before {\n  content: \"\\f212\";\n}\n.fa-sellsy:before {\n  content: \"\\f213\";\n}\n.fa-shirtsinbulk:before {\n  content: \"\\f214\";\n}\n.fa-simplybuilt:before {\n  content: \"\\f215\";\n}\n.fa-skyatlas:before {\n  content: \"\\f216\";\n}\n.fa-cart-plus:before {\n  content: \"\\f217\";\n}\n.fa-cart-arrow-down:before {\n  content: \"\\f218\";\n}\n.fa-diamond:before {\n  content: \"\\f219\";\n}\n.fa-ship:before {\n  content: \"\\f21a\";\n}\n.fa-user-secret:before {\n  content: \"\\f21b\";\n}\n.fa-motorcycle:before {\n  content: \"\\f21c\";\n}\n.fa-street-view:before {\n  content: \"\\f21d\";\n}\n.fa-heartbeat:before {\n  content: \"\\f21e\";\n}\n.fa-venus:before {\n  content: \"\\f221\";\n}\n.fa-mars:before {\n  content: \"\\f222\";\n}\n.fa-mercury:before {\n  content: \"\\f223\";\n}\n.fa-intersex:before,\n.fa-transgender:before {\n  content: \"\\f224\";\n}\n.fa-transgender-alt:before {\n  content: \"\\f225\";\n}\n.fa-venus-double:before {\n  content: \"\\f226\";\n}\n.fa-mars-double:before {\n  content: \"\\f227\";\n}\n.fa-venus-mars:before {\n  content: \"\\f228\";\n}\n.fa-mars-stroke:before {\n  content: \"\\f229\";\n}\n.fa-mars-stroke-v:before {\n  content: \"\\f22a\";\n}\n.fa-mars-stroke-h:before {\n  content: \"\\f22b\";\n}\n.fa-neuter:before {\n  content: \"\\f22c\";\n}\n.fa-genderless:before {\n  content: \"\\f22d\";\n}\n.fa-facebook-official:before {\n  content: \"\\f230\";\n}\n.fa-pinterest-p:before {\n  content: \"\\f231\";\n}\n.fa-whatsapp:before {\n  content: \"\\f232\";\n}\n.fa-server:before {\n  content: \"\\f233\";\n}\n.fa-user-plus:before {\n  content: \"\\f234\";\n}\n.fa-user-times:before {\n  content: \"\\f235\";\n}\n.fa-hotel:before,\n.fa-bed:before {\n  content: \"\\f236\";\n}\n.fa-viacoin:before {\n  content: \"\\f237\";\n}\n.fa-train:before {\n  content: \"\\f238\";\n}\n.fa-subway:before {\n  content: \"\\f239\";\n}\n.fa-medium:before {\n  content: \"\\f23a\";\n}\n.fa-yc:before,\n.fa-y-combinator:before {\n  content: \"\\f23b\";\n}\n.fa-optin-monster:before {\n  content: \"\\f23c\";\n}\n.fa-opencart:before {\n  content: \"\\f23d\";\n}\n.fa-expeditedssl:before {\n  content: \"\\f23e\";\n}\n.fa-battery-4:before,\n.fa-battery:before,\n.fa-battery-full:before {\n  content: \"\\f240\";\n}\n.fa-battery-3:before,\n.fa-battery-three-quarters:before {\n  content: \"\\f241\";\n}\n.fa-battery-2:before,\n.fa-battery-half:before {\n  content: \"\\f242\";\n}\n.fa-battery-1:before,\n.fa-battery-quarter:before {\n  content: \"\\f243\";\n}\n.fa-battery-0:before,\n.fa-battery-empty:before {\n  content: \"\\f244\";\n}\n.fa-mouse-pointer:before {\n  content: \"\\f245\";\n}\n.fa-i-cursor:before {\n  content: \"\\f246\";\n}\n.fa-object-group:before {\n  content: \"\\f247\";\n}\n.fa-object-ungroup:before {\n  content: \"\\f248\";\n}\n.fa-sticky-note:before {\n  content: \"\\f249\";\n}\n.fa-sticky-note-o:before {\n  content: \"\\f24a\";\n}\n.fa-cc-jcb:before {\n  content: \"\\f24b\";\n}\n.fa-cc-diners-club:before {\n  content: \"\\f24c\";\n}\n.fa-clone:before {\n  content: \"\\f24d\";\n}\n.fa-balance-scale:before {\n  content: \"\\f24e\";\n}\n.fa-hourglass-o:before {\n  content: \"\\f250\";\n}\n.fa-hourglass-1:before,\n.fa-hourglass-start:before {\n  content: \"\\f251\";\n}\n.fa-hourglass-2:before,\n.fa-hourglass-half:before {\n  content: \"\\f252\";\n}\n.fa-hourglass-3:before,\n.fa-hourglass-end:before {\n  content: \"\\f253\";\n}\n.fa-hourglass:before {\n  content: \"\\f254\";\n}\n.fa-hand-grab-o:before,\n.fa-hand-rock-o:before {\n  content: \"\\f255\";\n}\n.fa-hand-stop-o:before,\n.fa-hand-paper-o:before {\n  content: \"\\f256\";\n}\n.fa-hand-scissors-o:before {\n  content: \"\\f257\";\n}\n.fa-hand-lizard-o:before {\n  content: \"\\f258\";\n}\n.fa-hand-spock-o:before {\n  content: \"\\f259\";\n}\n.fa-hand-pointer-o:before {\n  content: \"\\f25a\";\n}\n.fa-hand-peace-o:before {\n  content: \"\\f25b\";\n}\n.fa-trademark:before {\n  content: \"\\f25c\";\n}\n.fa-registered:before {\n  content: \"\\f25d\";\n}\n.fa-creative-commons:before {\n  content: \"\\f25e\";\n}\n.fa-gg:before {\n  content: \"\\f260\";\n}\n.fa-gg-circle:before {\n  content: \"\\f261\";\n}\n.fa-tripadvisor:before {\n  content: \"\\f262\";\n}\n.fa-odnoklassniki:before {\n  content: \"\\f263\";\n}\n.fa-odnoklassniki-square:before {\n  content: \"\\f264\";\n}\n.fa-get-pocket:before {\n  content: \"\\f265\";\n}\n.fa-wikipedia-w:before {\n  content: \"\\f266\";\n}\n.fa-safari:before {\n  content: \"\\f267\";\n}\n.fa-chrome:before {\n  content: \"\\f268\";\n}\n.fa-firefox:before {\n  content: \"\\f269\";\n}\n.fa-opera:before {\n  content: \"\\f26a\";\n}\n.fa-internet-explorer:before {\n  content: \"\\f26b\";\n}\n.fa-tv:before,\n.fa-television:before {\n  content: \"\\f26c\";\n}\n.fa-contao:before {\n  content: \"\\f26d\";\n}\n.fa-500px:before {\n  content: \"\\f26e\";\n}\n.fa-amazon:before {\n  content: \"\\f270\";\n}\n.fa-calendar-plus-o:before {\n  content: \"\\f271\";\n}\n.fa-calendar-minus-o:before {\n  content: \"\\f272\";\n}\n.fa-calendar-times-o:before {\n  content: \"\\f273\";\n}\n.fa-calendar-check-o:before {\n  content: \"\\f274\";\n}\n.fa-industry:before {\n  content: \"\\f275\";\n}\n.fa-map-pin:before {\n  content: \"\\f276\";\n}\n.fa-map-signs:before {\n  content: \"\\f277\";\n}\n.fa-map-o:before {\n  content: \"\\f278\";\n}\n.fa-map:before {\n  content: \"\\f279\";\n}\n.fa-commenting:before {\n  content: \"\\f27a\";\n}\n.fa-commenting-o:before {\n  content: \"\\f27b\";\n}\n.fa-houzz:before {\n  content: \"\\f27c\";\n}\n.fa-vimeo:before {\n  content: \"\\f27d\";\n}\n.fa-black-tie:before {\n  content: \"\\f27e\";\n}\n.fa-fonticons:before {\n  content: \"\\f280\";\n}\n.fa-reddit-alien:before {\n  content: \"\\f281\";\n}\n.fa-edge:before {\n  content: \"\\f282\";\n}\n.fa-credit-card-alt:before {\n  content: \"\\f283\";\n}\n.fa-codiepie:before {\n  content: \"\\f284\";\n}\n.fa-modx:before {\n  content: \"\\f285\";\n}\n.fa-fort-awesome:before {\n  content: \"\\f286\";\n}\n.fa-usb:before {\n  content: \"\\f287\";\n}\n.fa-product-hunt:before {\n  content: \"\\f288\";\n}\n.fa-mixcloud:before {\n  content: \"\\f289\";\n}\n.fa-scribd:before {\n  content: \"\\f28a\";\n}\n.fa-pause-circle:before {\n  content: \"\\f28b\";\n}\n.fa-pause-circle-o:before {\n  content: \"\\f28c\";\n}\n.fa-stop-circle:before {\n  content: \"\\f28d\";\n}\n.fa-stop-circle-o:before {\n  content: \"\\f28e\";\n}\n.fa-shopping-bag:before {\n  content: \"\\f290\";\n}\n.fa-shopping-basket:before {\n  content: \"\\f291\";\n}\n.fa-hashtag:before {\n  content: \"\\f292\";\n}\n.fa-bluetooth:before {\n  content: \"\\f293\";\n}\n.fa-bluetooth-b:before {\n  content: \"\\f294\";\n}\n.fa-percent:before {\n  content: \"\\f295\";\n}\n.fa-gitlab:before {\n  content: \"\\f296\";\n}\n.fa-wpbeginner:before {\n  content: \"\\f297\";\n}\n.fa-wpforms:before {\n  content: \"\\f298\";\n}\n.fa-envira:before {\n  content: \"\\f299\";\n}\n.fa-universal-access:before {\n  content: \"\\f29a\";\n}\n.fa-wheelchair-alt:before {\n  content: \"\\f29b\";\n}\n.fa-question-circle-o:before {\n  content: \"\\f29c\";\n}\n.fa-blind:before {\n  content: \"\\f29d\";\n}\n.fa-audio-description:before {\n  content: \"\\f29e\";\n}\n.fa-volume-control-phone:before {\n  content: \"\\f2a0\";\n}\n.fa-braille:before {\n  content: \"\\f2a1\";\n}\n.fa-assistive-listening-systems:before {\n  content: \"\\f2a2\";\n}\n.fa-asl-interpreting:before,\n.fa-american-sign-language-interpreting:before {\n  content: \"\\f2a3\";\n}\n.fa-deafness:before,\n.fa-hard-of-hearing:before,\n.fa-deaf:before {\n  content: \"\\f2a4\";\n}\n.fa-glide:before {\n  content: \"\\f2a5\";\n}\n.fa-glide-g:before {\n  content: \"\\f2a6\";\n}\n.fa-signing:before,\n.fa-sign-language:before {\n  content: \"\\f2a7\";\n}\n.fa-low-vision:before {\n  content: \"\\f2a8\";\n}\n.fa-viadeo:before {\n  content: \"\\f2a9\";\n}\n.fa-viadeo-square:before {\n  content: \"\\f2aa\";\n}\n.fa-snapchat:before {\n  content: \"\\f2ab\";\n}\n.fa-snapchat-ghost:before {\n  content: \"\\f2ac\";\n}\n.fa-snapchat-square:before {\n  content: \"\\f2ad\";\n}\n.fa-pied-piper:before {\n  content: \"\\f2ae\";\n}\n.fa-first-order:before {\n  content: \"\\f2b0\";\n}\n.fa-yoast:before {\n  content: \"\\f2b1\";\n}\n.fa-themeisle:before {\n  content: \"\\f2b2\";\n}\n.fa-google-plus-circle:before,\n.fa-google-plus-official:before {\n  content: \"\\f2b3\";\n}\n.fa-fa:before,\n.fa-font-awesome:before {\n  content: \"\\f2b4\";\n}\n.fa-handshake-o:before {\n  content: \"\\f2b5\";\n}\n.fa-envelope-open:before {\n  content: \"\\f2b6\";\n}\n.fa-envelope-open-o:before {\n  content: \"\\f2b7\";\n}\n.fa-linode:before {\n  content: \"\\f2b8\";\n}\n.fa-address-book:before {\n  content: \"\\f2b9\";\n}\n.fa-address-book-o:before {\n  content: \"\\f2ba\";\n}\n.fa-vcard:before,\n.fa-address-card:before {\n  content: \"\\f2bb\";\n}\n.fa-vcard-o:before,\n.fa-address-card-o:before {\n  content: \"\\f2bc\";\n}\n.fa-user-circle:before {\n  content: \"\\f2bd\";\n}\n.fa-user-circle-o:before {\n  content: \"\\f2be\";\n}\n.fa-user-o:before {\n  content: \"\\f2c0\";\n}\n.fa-id-badge:before {\n  content: \"\\f2c1\";\n}\n.fa-drivers-license:before,\n.fa-id-card:before {\n  content: \"\\f2c2\";\n}\n.fa-drivers-license-o:before,\n.fa-id-card-o:before {\n  content: \"\\f2c3\";\n}\n.fa-quora:before {\n  content: \"\\f2c4\";\n}\n.fa-free-code-camp:before {\n  content: \"\\f2c5\";\n}\n.fa-telegram:before {\n  content: \"\\f2c6\";\n}\n.fa-thermometer-4:before,\n.fa-thermometer:before,\n.fa-thermometer-full:before {\n  content: \"\\f2c7\";\n}\n.fa-thermometer-3:before,\n.fa-thermometer-three-quarters:before {\n  content: \"\\f2c8\";\n}\n.fa-thermometer-2:before,\n.fa-thermometer-half:before {\n  content: \"\\f2c9\";\n}\n.fa-thermometer-1:before,\n.fa-thermometer-quarter:before {\n  content: \"\\f2ca\";\n}\n.fa-thermometer-0:before,\n.fa-thermometer-empty:before {\n  content: \"\\f2cb\";\n}\n.fa-shower:before {\n  content: \"\\f2cc\";\n}\n.fa-bathtub:before,\n.fa-s15:before,\n.fa-bath:before {\n  content: \"\\f2cd\";\n}\n.fa-podcast:before {\n  content: \"\\f2ce\";\n}\n.fa-window-maximize:before {\n  content: \"\\f2d0\";\n}\n.fa-window-minimize:before {\n  content: \"\\f2d1\";\n}\n.fa-window-restore:before {\n  content: \"\\f2d2\";\n}\n.fa-times-rectangle:before,\n.fa-window-close:before {\n  content: \"\\f2d3\";\n}\n.fa-times-rectangle-o:before,\n.fa-window-close-o:before {\n  content: \"\\f2d4\";\n}\n.fa-bandcamp:before {\n  content: \"\\f2d5\";\n}\n.fa-grav:before {\n  content: \"\\f2d6\";\n}\n.fa-etsy:before {\n  content: \"\\f2d7\";\n}\n.fa-imdb:before {\n  content: \"\\f2d8\";\n}\n.fa-ravelry:before {\n  content: \"\\f2d9\";\n}\n.fa-eercast:before {\n  content: \"\\f2da\";\n}\n.fa-microchip:before {\n  content: \"\\f2db\";\n}\n.fa-snowflake-o:before {\n  content: \"\\f2dc\";\n}\n.fa-superpowers:before {\n  content: \"\\f2dd\";\n}\n.fa-wpexplorer:before {\n  content: \"\\f2de\";\n}\n.fa-meetup:before {\n  content: \"\\f2e0\";\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/glyphicons/css/glyphicons.css",
    "content": "@font-face {\n    font-family: 'Glyphicons Halflings';\n  \n    src: url('../fonts/glyphicons-halflings-regular.eot');\n    src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n  }\n  .glyphicon {\n    position: relative;\n    top: 1px;\n    display: inline-block;\n    font-family: 'Glyphicons Halflings';\n    font-style: normal;\n    font-weight: normal;\n    line-height: 1;\n  \n    -webkit-font-smoothing: antialiased;\n    -moz-osx-font-smoothing: grayscale;\n  }\n  .glyphicon-asterisk:before {\n    content: \"\\002a\";\n  }\n  .glyphicon-plus:before {\n    content: \"\\002b\";\n  }\n  .glyphicon-euro:before,\n  .glyphicon-eur:before {\n    content: \"\\20ac\";\n  }\n  .glyphicon-minus:before {\n    content: \"\\2212\";\n  }\n  .glyphicon-cloud:before {\n    content: \"\\2601\";\n  }\n  .glyphicon-envelope:before {\n    content: \"\\2709\";\n  }\n  .glyphicon-pencil:before {\n    content: \"\\270f\";\n  }\n  .glyphicon-glass:before {\n    content: \"\\e001\";\n  }\n  .glyphicon-music:before {\n    content: \"\\e002\";\n  }\n  .glyphicon-search:before {\n    content: \"\\e003\";\n  }\n  .glyphicon-heart:before {\n    content: \"\\e005\";\n  }\n  .glyphicon-star:before {\n    content: \"\\e006\";\n  }\n  .glyphicon-star-empty:before {\n    content: \"\\e007\";\n  }\n  .glyphicon-user:before {\n    content: \"\\e008\";\n  }\n  .glyphicon-film:before {\n    content: \"\\e009\";\n  }\n  .glyphicon-th-large:before {\n    content: \"\\e010\";\n  }\n  .glyphicon-th:before {\n    content: \"\\e011\";\n  }\n  .glyphicon-th-list:before {\n    content: \"\\e012\";\n  }\n  .glyphicon-ok:before {\n    content: \"\\e013\";\n  }\n  .glyphicon-remove:before {\n    content: \"\\e014\";\n  }\n  .glyphicon-zoom-in:before {\n    content: \"\\e015\";\n  }\n  .glyphicon-zoom-out:before {\n    content: \"\\e016\";\n  }\n  .glyphicon-off:before {\n    content: \"\\e017\";\n  }\n  .glyphicon-signal:before {\n    content: \"\\e018\";\n  }\n  .glyphicon-cog:before {\n    content: \"\\e019\";\n  }\n  .glyphicon-trash:before {\n    content: \"\\e020\";\n  }\n  .glyphicon-home:before {\n    content: \"\\e021\";\n  }\n  .glyphicon-file:before {\n    content: \"\\e022\";\n  }\n  .glyphicon-time:before {\n    content: \"\\e023\";\n  }\n  .glyphicon-road:before {\n    content: \"\\e024\";\n  }\n  .glyphicon-download-alt:before {\n    content: \"\\e025\";\n  }\n  .glyphicon-download:before {\n    content: \"\\e026\";\n  }\n  .glyphicon-upload:before {\n    content: \"\\e027\";\n  }\n  .glyphicon-inbox:before {\n    content: \"\\e028\";\n  }\n  .glyphicon-play-circle:before {\n    content: \"\\e029\";\n  }\n  .glyphicon-repeat:before {\n    content: \"\\e030\";\n  }\n  .glyphicon-refresh:before {\n    content: \"\\e031\";\n  }\n  .glyphicon-list-alt:before {\n    content: \"\\e032\";\n  }\n  .glyphicon-lock:before {\n    content: \"\\e033\";\n  }\n  .glyphicon-flag:before {\n    content: \"\\e034\";\n  }\n  .glyphicon-headphones:before {\n    content: \"\\e035\";\n  }\n  .glyphicon-volume-off:before {\n    content: \"\\e036\";\n  }\n  .glyphicon-volume-down:before {\n    content: \"\\e037\";\n  }\n  .glyphicon-volume-up:before {\n    content: \"\\e038\";\n  }\n  .glyphicon-qrcode:before {\n    content: \"\\e039\";\n  }\n  .glyphicon-barcode:before {\n    content: \"\\e040\";\n  }\n  .glyphicon-tag:before {\n    content: \"\\e041\";\n  }\n  .glyphicon-tags:before {\n    content: \"\\e042\";\n  }\n  .glyphicon-book:before {\n    content: \"\\e043\";\n  }\n  .glyphicon-bookmark:before {\n    content: \"\\e044\";\n  }\n  .glyphicon-print:before {\n    content: \"\\e045\";\n  }\n  .glyphicon-camera:before {\n    content: \"\\e046\";\n  }\n  .glyphicon-font:before {\n    content: \"\\e047\";\n  }\n  .glyphicon-bold:before {\n    content: \"\\e048\";\n  }\n  .glyphicon-italic:before {\n    content: \"\\e049\";\n  }\n  .glyphicon-text-height:before {\n    content: \"\\e050\";\n  }\n  .glyphicon-text-width:before {\n    content: \"\\e051\";\n  }\n  .glyphicon-align-left:before {\n    content: \"\\e052\";\n  }\n  .glyphicon-align-center:before {\n    content: \"\\e053\";\n  }\n  .glyphicon-align-right:before {\n    content: \"\\e054\";\n  }\n  .glyphicon-align-justify:before {\n    content: \"\\e055\";\n  }\n  .glyphicon-list:before {\n    content: \"\\e056\";\n  }\n  .glyphicon-indent-left:before {\n    content: \"\\e057\";\n  }\n  .glyphicon-indent-right:before {\n    content: \"\\e058\";\n  }\n  .glyphicon-facetime-video:before {\n    content: \"\\e059\";\n  }\n  .glyphicon-picture:before {\n    content: \"\\e060\";\n  }\n  .glyphicon-map-marker:before {\n    content: \"\\e062\";\n  }\n  .glyphicon-adjust:before {\n    content: \"\\e063\";\n  }\n  .glyphicon-tint:before {\n    content: \"\\e064\";\n  }\n  .glyphicon-edit:before {\n    content: \"\\e065\";\n  }\n  .glyphicon-share:before {\n    content: \"\\e066\";\n  }\n  .glyphicon-check:before {\n    content: \"\\e067\";\n  }\n  .glyphicon-move:before {\n    content: \"\\e068\";\n  }\n  .glyphicon-step-backward:before {\n    content: \"\\e069\";\n  }\n  .glyphicon-fast-backward:before {\n    content: \"\\e070\";\n  }\n  .glyphicon-backward:before {\n    content: \"\\e071\";\n  }\n  .glyphicon-play:before {\n    content: \"\\e072\";\n  }\n  .glyphicon-pause:before {\n    content: \"\\e073\";\n  }\n  .glyphicon-stop:before {\n    content: \"\\e074\";\n  }\n  .glyphicon-forward:before {\n    content: \"\\e075\";\n  }\n  .glyphicon-fast-forward:before {\n    content: \"\\e076\";\n  }\n  .glyphicon-step-forward:before {\n    content: \"\\e077\";\n  }\n  .glyphicon-eject:before {\n    content: \"\\e078\";\n  }\n  .glyphicon-chevron-left:before {\n    content: \"\\e079\";\n  }\n  .glyphicon-chevron-right:before {\n    content: \"\\e080\";\n  }\n  .glyphicon-plus-sign:before {\n    content: \"\\e081\";\n  }\n  .glyphicon-minus-sign:before {\n    content: \"\\e082\";\n  }\n  .glyphicon-remove-sign:before {\n    content: \"\\e083\";\n  }\n  .glyphicon-ok-sign:before {\n    content: \"\\e084\";\n  }\n  .glyphicon-question-sign:before {\n    content: \"\\e085\";\n  }\n  .glyphicon-info-sign:before {\n    content: \"\\e086\";\n  }\n  .glyphicon-screenshot:before {\n    content: \"\\e087\";\n  }\n  .glyphicon-remove-circle:before {\n    content: \"\\e088\";\n  }\n  .glyphicon-ok-circle:before {\n    content: \"\\e089\";\n  }\n  .glyphicon-ban-circle:before {\n    content: \"\\e090\";\n  }\n  .glyphicon-arrow-left:before {\n    content: \"\\e091\";\n  }\n  .glyphicon-arrow-right:before {\n    content: \"\\e092\";\n  }\n  .glyphicon-arrow-up:before {\n    content: \"\\e093\";\n  }\n  .glyphicon-arrow-down:before {\n    content: \"\\e094\";\n  }\n  .glyphicon-share-alt:before {\n    content: \"\\e095\";\n  }\n  .glyphicon-resize-full:before {\n    content: \"\\e096\";\n  }\n  .glyphicon-resize-small:before {\n    content: \"\\e097\";\n  }\n  .glyphicon-exclamation-sign:before {\n    content: \"\\e101\";\n  }\n  .glyphicon-gift:before {\n    content: \"\\e102\";\n  }\n  .glyphicon-leaf:before {\n    content: \"\\e103\";\n  }\n  .glyphicon-fire:before {\n    content: \"\\e104\";\n  }\n  .glyphicon-eye-open:before {\n    content: \"\\e105\";\n  }\n  .glyphicon-eye-close:before {\n    content: \"\\e106\";\n  }\n  .glyphicon-warning-sign:before {\n    content: \"\\e107\";\n  }\n  .glyphicon-plane:before {\n    content: \"\\e108\";\n  }\n  .glyphicon-calendar:before {\n    content: \"\\e109\";\n  }\n  .glyphicon-random:before {\n    content: \"\\e110\";\n  }\n  .glyphicon-comment:before {\n    content: \"\\e111\";\n  }\n  .glyphicon-magnet:before {\n    content: \"\\e112\";\n  }\n  .glyphicon-chevron-up:before {\n    content: \"\\e113\";\n  }\n  .glyphicon-chevron-down:before {\n    content: \"\\e114\";\n  }\n  .glyphicon-retweet:before {\n    content: \"\\e115\";\n  }\n  .glyphicon-shopping-cart:before {\n    content: \"\\e116\";\n  }\n  .glyphicon-folder-close:before {\n    content: \"\\e117\";\n  }\n  .glyphicon-folder-open:before {\n    content: \"\\e118\";\n  }\n  .glyphicon-resize-vertical:before {\n    content: \"\\e119\";\n  }\n  .glyphicon-resize-horizontal:before {\n    content: \"\\e120\";\n  }\n  .glyphicon-hdd:before {\n    content: \"\\e121\";\n  }\n  .glyphicon-bullhorn:before {\n    content: \"\\e122\";\n  }\n  .glyphicon-bell:before {\n    content: \"\\e123\";\n  }\n  .glyphicon-certificate:before {\n    content: \"\\e124\";\n  }\n  .glyphicon-thumbs-up:before {\n    content: \"\\e125\";\n  }\n  .glyphicon-thumbs-down:before {\n    content: \"\\e126\";\n  }\n  .glyphicon-hand-right:before {\n    content: \"\\e127\";\n  }\n  .glyphicon-hand-left:before {\n    content: \"\\e128\";\n  }\n  .glyphicon-hand-up:before {\n    content: \"\\e129\";\n  }\n  .glyphicon-hand-down:before {\n    content: \"\\e130\";\n  }\n  .glyphicon-circle-arrow-right:before {\n    content: \"\\e131\";\n  }\n  .glyphicon-circle-arrow-left:before {\n    content: \"\\e132\";\n  }\n  .glyphicon-circle-arrow-up:before {\n    content: \"\\e133\";\n  }\n  .glyphicon-circle-arrow-down:before {\n    content: \"\\e134\";\n  }\n  .glyphicon-globe:before {\n    content: \"\\e135\";\n  }\n  .glyphicon-wrench:before {\n    content: \"\\e136\";\n  }\n  .glyphicon-tasks:before {\n    content: \"\\e137\";\n  }\n  .glyphicon-filter:before {\n    content: \"\\e138\";\n  }\n  .glyphicon-briefcase:before {\n    content: \"\\e139\";\n  }\n  .glyphicon-fullscreen:before {\n    content: \"\\e140\";\n  }\n  .glyphicon-dashboard:before {\n    content: \"\\e141\";\n  }\n  .glyphicon-paperclip:before {\n    content: \"\\e142\";\n  }\n  .glyphicon-heart-empty:before {\n    content: \"\\e143\";\n  }\n  .glyphicon-link:before {\n    content: \"\\e144\";\n  }\n  .glyphicon-phone:before {\n    content: \"\\e145\";\n  }\n  .glyphicon-pushpin:before {\n    content: \"\\e146\";\n  }\n  .glyphicon-usd:before {\n    content: \"\\e148\";\n  }\n  .glyphicon-gbp:before {\n    content: \"\\e149\";\n  }\n  .glyphicon-sort:before {\n    content: \"\\e150\";\n  }\n  .glyphicon-sort-by-alphabet:before {\n    content: \"\\e151\";\n  }\n  .glyphicon-sort-by-alphabet-alt:before {\n    content: \"\\e152\";\n  }\n  .glyphicon-sort-by-order:before {\n    content: \"\\e153\";\n  }\n  .glyphicon-sort-by-order-alt:before {\n    content: \"\\e154\";\n  }\n  .glyphicon-sort-by-attributes:before {\n    content: \"\\e155\";\n  }\n  .glyphicon-sort-by-attributes-alt:before {\n    content: \"\\e156\";\n  }\n  .glyphicon-unchecked:before {\n    content: \"\\e157\";\n  }\n  .glyphicon-expand:before {\n    content: \"\\e158\";\n  }\n  .glyphicon-collapse-down:before {\n    content: \"\\e159\";\n  }\n  .glyphicon-collapse-up:before {\n    content: \"\\e160\";\n  }\n  .glyphicon-log-in:before {\n    content: \"\\e161\";\n  }\n  .glyphicon-flash:before {\n    content: \"\\e162\";\n  }\n  .glyphicon-log-out:before {\n    content: \"\\e163\";\n  }\n  .glyphicon-new-window:before {\n    content: \"\\e164\";\n  }\n  .glyphicon-record:before {\n    content: \"\\e165\";\n  }\n  .glyphicon-save:before {\n    content: \"\\e166\";\n  }\n  .glyphicon-open:before {\n    content: \"\\e167\";\n  }\n  .glyphicon-saved:before {\n    content: \"\\e168\";\n  }\n  .glyphicon-import:before {\n    content: \"\\e169\";\n  }\n  .glyphicon-export:before {\n    content: \"\\e170\";\n  }\n  .glyphicon-send:before {\n    content: \"\\e171\";\n  }\n  .glyphicon-floppy-disk:before {\n    content: \"\\e172\";\n  }\n  .glyphicon-floppy-saved:before {\n    content: \"\\e173\";\n  }\n  .glyphicon-floppy-remove:before {\n    content: \"\\e174\";\n  }\n  .glyphicon-floppy-save:before {\n    content: \"\\e175\";\n  }\n  .glyphicon-floppy-open:before {\n    content: \"\\e176\";\n  }\n  .glyphicon-credit-card:before {\n    content: \"\\e177\";\n  }\n  .glyphicon-transfer:before {\n    content: \"\\e178\";\n  }\n  .glyphicon-cutlery:before {\n    content: \"\\e179\";\n  }\n  .glyphicon-header:before {\n    content: \"\\e180\";\n  }\n  .glyphicon-compressed:before {\n    content: \"\\e181\";\n  }\n  .glyphicon-earphone:before {\n    content: \"\\e182\";\n  }\n  .glyphicon-phone-alt:before {\n    content: \"\\e183\";\n  }\n  .glyphicon-tower:before {\n    content: \"\\e184\";\n  }\n  .glyphicon-stats:before {\n    content: \"\\e185\";\n  }\n  .glyphicon-sd-video:before {\n    content: \"\\e186\";\n  }\n  .glyphicon-hd-video:before {\n    content: \"\\e187\";\n  }\n  .glyphicon-subtitles:before {\n    content: \"\\e188\";\n  }\n  .glyphicon-sound-stereo:before {\n    content: \"\\e189\";\n  }\n  .glyphicon-sound-dolby:before {\n    content: \"\\e190\";\n  }\n  .glyphicon-sound-5-1:before {\n    content: \"\\e191\";\n  }\n  .glyphicon-sound-6-1:before {\n    content: \"\\e192\";\n  }\n  .glyphicon-sound-7-1:before {\n    content: \"\\e193\";\n  }\n  .glyphicon-copyright-mark:before {\n    content: \"\\e194\";\n  }\n  .glyphicon-registration-mark:before {\n    content: \"\\e195\";\n  }\n  .glyphicon-cloud-download:before {\n    content: \"\\e197\";\n  }\n  .glyphicon-cloud-upload:before {\n    content: \"\\e198\";\n  }\n  .glyphicon-tree-conifer:before {\n    content: \"\\e199\";\n  }\n  .glyphicon-tree-deciduous:before {\n    content: \"\\e200\";\n  }\n  .glyphicon-cd:before {\n    content: \"\\e201\";\n  }\n  .glyphicon-save-file:before {\n    content: \"\\e202\";\n  }\n  .glyphicon-open-file:before {\n    content: \"\\e203\";\n  }\n  .glyphicon-level-up:before {\n    content: \"\\e204\";\n  }\n  .glyphicon-copy:before {\n    content: \"\\e205\";\n  }\n  .glyphicon-paste:before {\n    content: \"\\e206\";\n  }\n  .glyphicon-alert:before {\n    content: \"\\e209\";\n  }\n  .glyphicon-equalizer:before {\n    content: \"\\e210\";\n  }\n  .glyphicon-king:before {\n    content: \"\\e211\";\n  }\n  .glyphicon-queen:before {\n    content: \"\\e212\";\n  }\n  .glyphicon-pawn:before {\n    content: \"\\e213\";\n  }\n  .glyphicon-bishop:before {\n    content: \"\\e214\";\n  }\n  .glyphicon-knight:before {\n    content: \"\\e215\";\n  }\n  .glyphicon-baby-formula:before {\n    content: \"\\e216\";\n  }\n  .glyphicon-tent:before {\n    content: \"\\26fa\";\n  }\n  .glyphicon-blackboard:before {\n    content: \"\\e218\";\n  }\n  .glyphicon-bed:before {\n    content: \"\\e219\";\n  }\n  .glyphicon-apple:before {\n    content: \"\\f8ff\";\n  }\n  .glyphicon-erase:before {\n    content: \"\\e221\";\n  }\n  .glyphicon-hourglass:before {\n    content: \"\\231b\";\n  }\n  .glyphicon-lamp:before {\n    content: \"\\e223\";\n  }\n  .glyphicon-duplicate:before {\n    content: \"\\e224\";\n  }\n  .glyphicon-piggy-bank:before {\n    content: \"\\e225\";\n  }\n  .glyphicon-scissors:before {\n    content: \"\\e226\";\n  }\n  .glyphicon-bitcoin:before {\n    content: \"\\e227\";\n  }\n  .glyphicon-btc:before {\n    content: \"\\e227\";\n  }\n  .glyphicon-xbt:before {\n    content: \"\\e227\";\n  }\n  .glyphicon-yen:before {\n    content: \"\\00a5\";\n  }\n  .glyphicon-jpy:before {\n    content: \"\\00a5\";\n  }\n  .glyphicon-ruble:before {\n    content: \"\\20bd\";\n  }\n  .glyphicon-rub:before {\n    content: \"\\20bd\";\n  }\n  .glyphicon-scale:before {\n    content: \"\\e230\";\n  }\n  .glyphicon-ice-lolly:before {\n    content: \"\\e231\";\n  }\n  .glyphicon-ice-lolly-tasted:before {\n    content: \"\\e232\";\n  }\n  .glyphicon-education:before {\n    content: \"\\e233\";\n  }\n  .glyphicon-option-horizontal:before {\n    content: \"\\e234\";\n  }\n  .glyphicon-option-vertical:before {\n    content: \"\\e235\";\n  }\n  .glyphicon-menu-hamburger:before {\n    content: \"\\e236\";\n  }\n  .glyphicon-modal-window:before {\n    content: \"\\e237\";\n  }\n  .glyphicon-oil:before {\n    content: \"\\e238\";\n  }\n  .glyphicon-grain:before {\n    content: \"\\e239\";\n  }\n  .glyphicon-sunglasses:before {\n    content: \"\\e240\";\n  }\n  .glyphicon-text-size:before {\n    content: \"\\e241\";\n  }\n  .glyphicon-text-color:before {\n    content: \"\\e242\";\n  }\n  .glyphicon-text-background:before {\n    content: \"\\e243\";\n  }\n  .glyphicon-object-align-top:before {\n    content: \"\\e244\";\n  }\n  .glyphicon-object-align-bottom:before {\n    content: \"\\e245\";\n  }\n  .glyphicon-object-align-horizontal:before {\n    content: \"\\e246\";\n  }\n  .glyphicon-object-align-left:before {\n    content: \"\\e247\";\n  }\n  .glyphicon-object-align-vertical:before {\n    content: \"\\e248\";\n  }\n  .glyphicon-object-align-right:before {\n    content: \"\\e249\";\n  }\n  .glyphicon-triangle-right:before {\n    content: \"\\e250\";\n  }\n  .glyphicon-triangle-left:before {\n    content: \"\\e251\";\n  }\n  .glyphicon-triangle-bottom:before {\n    content: \"\\e252\";\n  }\n  .glyphicon-triangle-top:before {\n    content: \"\\e253\";\n  }\n  .glyphicon-console:before {\n    content: \"\\e254\";\n  }\n  .glyphicon-superscript:before {\n    content: \"\\e255\";\n  }\n  .glyphicon-subscript:before {\n    content: \"\\e256\";\n  }\n  .glyphicon-menu-left:before {\n    content: \"\\e257\";\n  }\n  .glyphicon-menu-right:before {\n    content: \"\\e258\";\n  }\n  .glyphicon-menu-down:before {\n    content: \"\\e259\";\n  }\n  .glyphicon-menu-up:before {\n    content: \"\\e260\";\n  }"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/jquery/core.js",
    "content": "/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\ndefine( [\n\t\"./var/arr\",\n\t\"./var/document\",\n\t\"./var/getProto\",\n\t\"./var/slice\",\n\t\"./var/concat\",\n\t\"./var/push\",\n\t\"./var/indexOf\",\n\t\"./var/class2type\",\n\t\"./var/toString\",\n\t\"./var/hasOwn\",\n\t\"./var/fnToString\",\n\t\"./var/ObjectFunctionString\",\n\t\"./var/support\",\n\t\"./var/isFunction\",\n\t\"./var/isWindow\",\n\t\"./core/DOMEval\",\n\t\"./core/toType\"\n], function( arr, document, getProto, slice, concat, push, indexOf,\n\tclass2type, toString, hasOwn, fnToString, ObjectFunctionString,\n\tsupport, isFunction, isWindow, DOMEval, toType ) {\n\n\"use strict\";\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/jquery/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n      // Support: Chrome <=57, Firefox <=52\n      // In some browsers, typeof returns \"function\" for HTML <object> elements\n      // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n      // We don't want to classify *any* DOM node as a function.\n      return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n  };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t// Support: IE 9-11 only\n\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\t// We use getClientRects() to check for hidden/disconnected.\n\t// In those cases, the computed value can be trusted to be border-box\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\t\tval === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url, options ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/jquery/jquery.slim.js",
    "content": "/*!\n * jQuery JavaScript Library v3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n      // Support: Chrome <=57, Firefox <=52\n      // In some browsers, typeof returns \"function\" for HTML <object> elements\n      // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n      // We don't want to classify *any* DOM node as a function.\n      return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n  };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t// Support: IE 9-11 only\n\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\t// We use getClientRects() to check for hidden/disconnected.\n\t// In those cases, the computed value can be trusted to be border-box\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\t\tval === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "public/vendor/wenxuanjun/laravel-adminlte3/plugins/slimScroll/jquery.slimscroll.js",
    "content": "/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)\n * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)\n * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.\n *\n * Version: 1.3.8\n *\n */\n(function($) {\n\n  $.fn.extend({\n    slimScroll: function(options) {\n\n      var defaults = {\n\n        // width in pixels of the visible scroll area\n        width : 'auto',\n\n        // height in pixels of the visible scroll area\n        height : '250px',\n\n        // width in pixels of the scrollbar and rail\n        size : '7px',\n\n        // scrollbar color, accepts any hex/color value\n        color: '#000',\n\n        // scrollbar position - left/right\n        position : 'right',\n\n        // distance in pixels between the side edge and the scrollbar\n        distance : '1px',\n\n        // default scroll position on load - top / bottom / $('selector')\n        start : 'top',\n\n        // sets scrollbar opacity\n        opacity : .4,\n\n        // enables always-on mode for the scrollbar\n        alwaysVisible : false,\n\n        // check if we should hide the scrollbar when user is hovering over\n        disableFadeOut : false,\n\n        // sets visibility of the rail\n        railVisible : false,\n\n        // sets rail color\n        railColor : '#333',\n\n        // sets rail opacity\n        railOpacity : .2,\n\n        // whether  we should use jQuery UI Draggable to enable bar dragging\n        railDraggable : true,\n\n        // defautlt CSS class of the slimscroll rail\n        railClass : 'slimScrollRail',\n\n        // defautlt CSS class of the slimscroll bar\n        barClass : 'slimScrollBar',\n\n        // defautlt CSS class of the slimscroll wrapper\n        wrapperClass : 'slimScrollDiv',\n\n        // check if mousewheel should scroll the window if we reach top/bottom\n        allowPageScroll : false,\n\n        // scroll amount applied to each mouse wheel step\n        wheelStep : 20,\n\n        // scroll amount applied when user is using gestures\n        touchScrollStep : 200,\n\n        // sets border radius\n        borderRadius: '7px',\n\n        // sets border radius of the rail\n        railBorderRadius : '7px'\n      };\n\n      var o = $.extend(defaults, options);\n\n      // do it for every element that matches selector\n      this.each(function(){\n\n      var isOverPanel, isOverBar, isDragg, queueHide, touchDif,\n        barHeight, percentScroll, lastScroll,\n        divS = '<div></div>',\n        minBarHeight = 30,\n        releaseScroll = false;\n\n        // used in event handlers and for better minification\n        var me = $(this);\n\n        // ensure we are not binding it again\n        if (me.parent().hasClass(o.wrapperClass))\n        {\n            // start from last bar position\n            var offset = me.scrollTop();\n\n            // find bar and rail\n            bar = me.siblings('.' + o.barClass);\n            rail = me.siblings('.' + o.railClass);\n\n            getBarHeight();\n\n            // check if we should scroll existing instance\n            if ($.isPlainObject(options))\n            {\n              // Pass height: auto to an existing slimscroll object to force a resize after contents have changed\n              if ( 'height' in options && options.height == 'auto' ) {\n                me.parent().css('height', 'auto');\n                me.css('height', 'auto');\n                var height = me.parent().parent().height();\n                me.parent().css('height', height);\n                me.css('height', height);\n              } else if ('height' in options) {\n                var h = options.height;\n                me.parent().css('height', h);\n                me.css('height', h);\n              }\n\n              if ('scrollTo' in options)\n              {\n                // jump to a static point\n                offset = parseInt(o.scrollTo);\n              }\n              else if ('scrollBy' in options)\n              {\n                // jump by value pixels\n                offset += parseInt(o.scrollBy);\n              }\n              else if ('destroy' in options)\n              {\n                // remove slimscroll elements\n                bar.remove();\n                rail.remove();\n                me.unwrap();\n                return;\n              }\n\n              // scroll content by the given offset\n              scrollContent(offset, false, true);\n            }\n\n            return;\n        }\n        else if ($.isPlainObject(options))\n        {\n            if ('destroy' in options)\n            {\n            \treturn;\n            }\n        }\n\n        // optionally set height to the parent's height\n        o.height = (o.height == 'auto') ? me.parent().height() : o.height;\n\n        // wrap content\n        var wrapper = $(divS)\n          .addClass(o.wrapperClass)\n          .css({\n            position: 'relative',\n            overflow: 'hidden',\n            width: o.width,\n            height: o.height\n          });\n\n        // update style for the div\n        me.css({\n          overflow: 'hidden',\n          width: o.width,\n          height: o.height\n        });\n\n        // create scrollbar rail\n        var rail = $(divS)\n          .addClass(o.railClass)\n          .css({\n            width: o.size,\n            height: '100%',\n            position: 'absolute',\n            top: 0,\n            display: (o.alwaysVisible && o.railVisible) ? 'block' : 'none',\n            'border-radius': o.railBorderRadius,\n            background: o.railColor,\n            opacity: o.railOpacity,\n            zIndex: 90\n          });\n\n        // create scrollbar\n        var bar = $(divS)\n          .addClass(o.barClass)\n          .css({\n            background: o.color,\n            width: o.size,\n            position: 'absolute',\n            top: 0,\n            opacity: o.opacity,\n            display: o.alwaysVisible ? 'block' : 'none',\n            'border-radius' : o.borderRadius,\n            BorderRadius: o.borderRadius,\n            MozBorderRadius: o.borderRadius,\n            WebkitBorderRadius: o.borderRadius,\n            zIndex: 99\n          });\n\n        // set position\n        var posCss = (o.position == 'right') ? { right: o.distance } : { left: o.distance };\n        rail.css(posCss);\n        bar.css(posCss);\n\n        // wrap it\n        me.wrap(wrapper);\n\n        // append to parent div\n        me.parent().append(bar);\n        me.parent().append(rail);\n\n        // make it draggable and no longer dependent on the jqueryUI\n        if (o.railDraggable){\n          bar.bind(\"mousedown\", function(e) {\n            var $doc = $(document);\n            isDragg = true;\n            t = parseFloat(bar.css('top'));\n            pageY = e.pageY;\n\n            $doc.bind(\"mousemove.slimscroll\", function(e){\n              currTop = t + e.pageY - pageY;\n              bar.css('top', currTop);\n              scrollContent(0, bar.position().top, false);// scroll content\n            });\n\n            $doc.bind(\"mouseup.slimscroll\", function(e) {\n              isDragg = false;hideBar();\n              $doc.unbind('.slimscroll');\n            });\n            return false;\n          }).bind(\"selectstart.slimscroll\", function(e){\n            e.stopPropagation();\n            e.preventDefault();\n            return false;\n          });\n        }\n\n        // on rail over\n        rail.hover(function(){\n          showBar();\n        }, function(){\n          hideBar();\n        });\n\n        // on bar over\n        bar.hover(function(){\n          isOverBar = true;\n        }, function(){\n          isOverBar = false;\n        });\n\n        // show on parent mouseover\n        me.hover(function(){\n          isOverPanel = true;\n          showBar();\n          hideBar();\n        }, function(){\n          isOverPanel = false;\n          hideBar();\n        });\n\n        // support for mobile\n        me.bind('touchstart', function(e,b){\n          if (e.originalEvent.touches.length)\n          {\n            // record where touch started\n            touchDif = e.originalEvent.touches[0].pageY;\n          }\n        });\n\n        me.bind('touchmove', function(e){\n          // prevent scrolling the page if necessary\n          if(!releaseScroll)\n          {\n  \t\t      e.originalEvent.preventDefault();\n\t\t      }\n          if (e.originalEvent.touches.length)\n          {\n            // see how far user swiped\n            var diff = (touchDif - e.originalEvent.touches[0].pageY) / o.touchScrollStep;\n            // scroll content\n            scrollContent(diff, true);\n            touchDif = e.originalEvent.touches[0].pageY;\n          }\n        });\n\n        // set up initial height\n        getBarHeight();\n\n        // check start position\n        if (o.start === 'bottom')\n        {\n          // scroll content to bottom\n          bar.css({ top: me.outerHeight() - bar.outerHeight() });\n          scrollContent(0, true);\n        }\n        else if (o.start !== 'top')\n        {\n          // assume jQuery selector\n          scrollContent($(o.start).position().top, null, true);\n\n          // make sure bar stays hidden\n          if (!o.alwaysVisible) { bar.hide(); }\n        }\n\n        // attach scroll events\n        attachWheel(this);\n\n        function _onWheel(e)\n        {\n          // use mouse wheel only when mouse is over\n          if (!isOverPanel) { return; }\n\n          var e = e || window.event;\n\n          var delta = 0;\n          if (e.wheelDelta) { delta = -e.wheelDelta/120; }\n          if (e.detail) { delta = e.detail / 3; }\n\n          var target = e.target || e.srcTarget || e.srcElement;\n          if ($(target).closest('.' + o.wrapperClass).is(me.parent())) {\n            // scroll content\n            scrollContent(delta, true);\n          }\n\n          // stop window scroll\n          if (e.preventDefault && !releaseScroll) { e.preventDefault(); }\n          if (!releaseScroll) { e.returnValue = false; }\n        }\n\n        function scrollContent(y, isWheel, isJump)\n        {\n          releaseScroll = false;\n          var delta = y;\n          var maxTop = me.outerHeight() - bar.outerHeight();\n\n          if (isWheel)\n          {\n            // move bar with mouse wheel\n            delta = parseInt(bar.css('top')) + y * parseInt(o.wheelStep) / 100 * bar.outerHeight();\n\n            // move bar, make sure it doesn't go out\n            delta = Math.min(Math.max(delta, 0), maxTop);\n\n            // if scrolling down, make sure a fractional change to the\n            // scroll position isn't rounded away when the scrollbar's CSS is set\n            // this flooring of delta would happened automatically when\n            // bar.css is set below, but we floor here for clarity\n            delta = (y > 0) ? Math.ceil(delta) : Math.floor(delta);\n\n            // scroll the scrollbar\n            bar.css({ top: delta + 'px' });\n          }\n\n          // calculate actual scroll amount\n          percentScroll = parseInt(bar.css('top')) / (me.outerHeight() - bar.outerHeight());\n          delta = percentScroll * (me[0].scrollHeight - me.outerHeight());\n\n          if (isJump)\n          {\n            delta = y;\n            var offsetTop = delta / me[0].scrollHeight * me.outerHeight();\n            offsetTop = Math.min(Math.max(offsetTop, 0), maxTop);\n            bar.css({ top: offsetTop + 'px' });\n          }\n\n          // scroll content\n          me.scrollTop(delta);\n\n          // fire scrolling event\n          me.trigger('slimscrolling', ~~delta);\n\n          // ensure bar is visible\n          showBar();\n\n          // trigger hide when scroll is stopped\n          hideBar();\n        }\n\n        function attachWheel(target)\n        {\n          if (window.addEventListener)\n          {\n            target.addEventListener('DOMMouseScroll', _onWheel, false );\n            target.addEventListener('mousewheel', _onWheel, false );\n          }\n          else\n          {\n            document.attachEvent(\"onmousewheel\", _onWheel)\n          }\n        }\n\n        function getBarHeight()\n        {\n          // calculate scrollbar height and make sure it is not too small\n          barHeight = Math.max((me.outerHeight() / me[0].scrollHeight) * me.outerHeight(), minBarHeight);\n          bar.css({ height: barHeight + 'px' });\n\n          // hide scrollbar if content is not long enough\n          var display = barHeight == me.outerHeight() ? 'none' : 'block';\n          bar.css({ display: display });\n        }\n\n        function showBar()\n        {\n          // recalculate bar height\n          getBarHeight();\n          clearTimeout(queueHide);\n\n          // when bar reached top or bottom\n          if (percentScroll == ~~percentScroll)\n          {\n            //release wheel\n            releaseScroll = o.allowPageScroll;\n\n            // publish approporiate event\n            if (lastScroll != percentScroll)\n            {\n                var msg = (~~percentScroll == 0) ? 'top' : 'bottom';\n                me.trigger('slimscroll', msg);\n            }\n          }\n          else\n          {\n            releaseScroll = false;\n          }\n          lastScroll = percentScroll;\n\n          // show only when required\n          if(barHeight >= me.outerHeight()) {\n            //allow window scroll\n            releaseScroll = true;\n            return;\n          }\n          bar.stop(true,true).fadeIn('fast');\n          if (o.railVisible) { rail.stop(true,true).fadeIn('fast'); }\n        }\n\n        function hideBar()\n        {\n          // only hide when options allow it\n          if (!o.alwaysVisible)\n          {\n            queueHide = setTimeout(function(){\n              if (!(o.disableFadeOut && isOverPanel) && !isOverBar && !isDragg)\n              {\n                bar.fadeOut('slow');\n                rail.fadeOut('slow');\n              }\n            }, 1000);\n          }\n        }\n\n      });\n\n      // maintain chainability\n      return this;\n    }\n  });\n\n  $.fn.extend({\n    slimscroll: $.fn.slimScroll\n  });\n\n})(jQuery);\n"
  },
  {
    "path": "resources/js/app.js",
    "content": "/**\n * First we will load all of this project's JavaScript dependencies which\n * includes Vue and other libraries. It is a great starting point when\n * building robust, powerful web applications using Vue and Laravel.\n */\n\nrequire('./bootstrap');\n\nwindow.Vue = require('vue');\n\n/**\n * The following block of code may be used to automatically register your\n * Vue components. It will recursively scan this directory for the Vue\n * components and automatically register them with their \"basename\".\n *\n * Eg. ./components/ExampleComponent.vue -> <example-component></example-component>\n */\n\n// const files = require.context('./', true, /\\.vue$/i);\n// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default));\n\nVue.component('example-component', require('./components/ExampleComponent.vue').default);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\nconst app = new Vue({\n    el: '#app',\n});\n"
  },
  {
    "path": "resources/js/bootstrap.js",
    "content": "window._ = require('lodash');\n\n/**\n * We'll load jQuery and the Bootstrap jQuery plugin which provides support\n * for JavaScript based Bootstrap features such as modals and tabs. This\n * code may be modified to fit the specific needs of your application.\n */\n\ntry {\n    window.Popper = require('popper.js').default;\n    window.$ = window.jQuery = require('jquery');\n\n    require('bootstrap');\n} catch (e) {}\n\n/**\n * We'll load the axios HTTP library which allows us to easily issue requests\n * to our Laravel back-end. This library automatically handles sending the\n * CSRF token as a header based on the value of the \"XSRF\" token cookie.\n */\n\nwindow.axios = require('axios');\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n/**\n * Next we will register the CSRF Token as a common header with Axios so that\n * all outgoing HTTP requests automatically have it attached. This is just\n * a simple convenience so we don't have to attach every token manually.\n */\n\nlet token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n} else {\n    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\n/**\n * Echo exposes an expressive API for subscribing to channels and listening\n * for events that are broadcast by Laravel. Echo and event broadcasting\n * allows your team to easily build robust real-time web applications.\n */\n\n// import Echo from 'laravel-echo'\n\n// window.Pusher = require('pusher-js');\n\n// window.Echo = new Echo({\n//     broadcaster: 'pusher',\n//     key: process.env.MIX_PUSHER_APP_KEY,\n//     cluster: process.env.MIX_PUSHER_APP_CLUSTER,\n//     encrypted: true\n// });\n"
  },
  {
    "path": "resources/js/components/ExampleComponent.vue",
    "content": "<template>\n    <div class=\"container\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-md-8\">\n                <div class=\"card\">\n                    <div class=\"card-header\">Example Component</div>\n\n                    <div class=\"card-body\">\n                        I'm an example component.\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    export default {\n        mounted() {\n            console.log('Component mounted.')\n        }\n    }\n</script>\n"
  },
  {
    "path": "resources/lang/ar/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'متصل',\n    'login'                 => 'تسجيل الدخول',\n    'logout'                => 'تسجيل الخروج',\n    'setting'               => 'الضبط',\n    'name'                  => 'الاسم',\n    'username'              => 'اسم المستخدم',\n    'password'              => 'الرقم السري',\n    'password_confirmation' => 'تأكيد الرقم السري',\n    'remember_me'           => 'تذكرني',\n    'user_setting'          => 'ضبط المستخدم',\n    'avatar'                => 'الصورة',\n    'list'                  => 'القائمة',\n    'new'                   => 'جديد',\n    'create'                => 'انشاء',\n    'delete'                => 'مسح',\n    'remove'                => 'حذف',\n    'edit'                  => 'تعديل',\n    'view'                  => 'عرض',\n    'continue_editing'      => 'مواصلة التحرير',\n    'continue_creating'     => 'تواصل خلق',\n    'detail'                => 'التفاصيل',\n    'browse'                => 'تصفح',\n    'reset'                 => 'تفريغ',\n    'export'                => 'تصدير',\n    'batch_delete'          => 'مسح بالجملة',\n    'save'                  => 'حفظ',\n    'refresh'               => 'تحديث',\n    'order'                 => 'ترتيب',\n    'expand'                => 'تكبير',\n    'collapse'              => 'تصغير',\n    'filter'                => 'تصنيف',\n    'search'                => 'بحث',\n    'close'                 => 'اغلاق',\n    'show'                  => 'عرض',\n    'entries'               => 'المدخلات',\n    'captcha'               => 'كود التحقق',\n    'action'                => 'الحدث',\n    'title'                 => 'العنوان',\n    'description'           => 'الوصف',\n    'back'                  => 'عودة',\n    'back_to_list'          => 'العودة الى القائمة',\n    'submit'                => 'ارسال',\n    'menu'                  => 'القائمة',\n    'input'                 => 'المدخل',\n    'succeeded'             => 'تمت بنجاح',\n    'failed'                => 'فشل',\n    'delete_confirm'        => 'هل انت متاكد من مسح هذا العنصر ',\n    'delete_succeeded'      => 'تم الحذف بنجاح ! ',\n    'delete_failed'         => 'فشل الحذف !',\n    'update_succeeded'      => 'تم التعديل بنجاح !',\n    'save_succeeded'        => 'تم الحفظ !',\n    'refresh_succeeded'     => 'تم التحديث !',\n    'login_successful'      => 'تم تسجيل الدخول بنجاح',\n    'choose'                => 'اختر',\n    'choose_file'           => 'اختر الملف',\n    'choose_image'          => 'اختر الصورة',\n    'more'                  => 'المزيد',\n    'deny'                  => 'ليس لديك الاذن',\n    'administrator'         => 'مسئول',\n    'roles'                 => 'القواعد',\n    'permissions'           => 'الصلاحيات',\n    'slug'                  => 'المعرف',\n    'created_at'            => 'تاريخ الانشاء',\n    'updated_at'            => 'تاريخ التعديل',\n    'alert'                 => 'تحذير',\n    'parent_id'             => 'الاصل',\n    'icon'                  => 'الرمز',\n    'uri'                   => 'URI',\n    'operation_log'         => 'سجل التشغيل',\n    'parent_select_error'   => 'خطأ في تحديد الاصل',\n    'pagination'            => [\n        'range' => 'عرض :first الى :last من :total المدخلات',\n    ],\n    'role'                  => 'القاعدة',\n    'permission'            => 'الصلاحية',\n    'route'                 => 'المسار',\n    'confirm'               => 'تأكيد',\n    'cancel'                => 'إلغاء',\n    'http'                  => [\n        'method' => 'HTTP method',\n        'path'   => 'HTTP path',\n    ],\n    'all_methods_if_empty'  => 'كل الوسائل فارغة',\n    'all'                   => 'الكل',\n    'current_page'          => 'الصفحة الحالية',\n    'selected_rows'         => 'الصفوف المختارة',\n    'upload'                => 'رفع',\n    'new_folder'            => 'مجلد جديد',\n    'time'                  => 'الوقت',\n    'size'                  => 'الحجم',\n    'listbox'               => [\n        'text_total'         => 'عرض الكل {0}',\n        'text_empty'         => 'قائمة فارغة',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'عرض الكل',\n        'filter_placeholder' => 'تنقية',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/az/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Aktiv',\n    'login'                 => 'Giriş',\n    'logout'                => 'Çıxış',\n    'setting'               => 'Ayarlar',\n    'name'                  => 'Ad',\n    'username'              => 'İstifadəçi adı',\n    'password'              => 'Şifrə',\n    'password_confirmation' => 'Şifrənin tekrarı',\n    'remember_me'           => 'Məni xatırla',\n    'user_setting'          => 'İstifadəçi ayarları',\n    'avatar'                => 'Profil şəkli',\n    'list'                  => 'List',\n    'new'                   => 'Yeni',\n    'create'                => 'Yarat',\n    'delete'                => 'Sil',\n    'remove'                => 'Kənarlaşdırın',\n    'edit'                  => 'Yenilə',\n    'view'                  => 'Bax',\n    'detail'                => 'Detallar',\n    'browse'                => 'Göz atın',\n    'reset'                 => 'Təmizlə',\n    'export'                => 'İxrac edin',\n    'batch_delete'          => 'Hamısını sil',\n    'save'                  => 'Yaddaşa ver',\n    'refresh'               => 'Yenile',\n    'order'                 => 'Sırala',\n    'expand'                => 'Genişlət',\n    'collapse'              => 'Daralt',\n    'filter'                => 'Filtrlə',\n    'search'                => 'axtarış',\n    'close'                 => 'Bağla',\n    'show'                  => 'Göstər',\n    'entries'               => 'qeydlər',\n    'captcha'               => 'Doğrulama',\n    'action'                => 'Fəaliyyət',\n    'title'                 => 'Başlıq',\n    'description'           => 'Açıqlama',\n    'back'                  => 'Geri',\n    'back_to_list'          => 'Listə geri qayıt',\n    'submit'                => 'Göndər',\n    'continue_editing'      => 'Redaktəyə davam et',\n    'continue_creating'     => 'Yaratmağa davam et',\n    'menu'                  => 'Menyu',\n    'input'                 => 'Giriş',\n    'succeeded'             => 'Uğurlu',\n    'failed'                => 'Xəta baş verdi',\n    'delete_confirm'        => 'Silmək istədiyinizə əminsiniz?',\n    'delete_succeeded'      => 'Uğurla silindi!',\n    'delete_failed'         => 'Silinərkən xəta baş verdi!',\n    'update_succeeded'      => 'Uğurla yeniləndi!',\n    'save_succeeded'        => 'Uğurla yadda saxlanıldı!',\n    'refresh_succeeded'     => 'Uğurla yeniləndi!',\n    'login_successful'      => 'Giriş uğurlu oldu',\n    'choose'                => 'Seçin',\n    'choose_file'           => 'Fayl seçin',\n    'choose_image'          => 'Şəkil seçin',\n    'more'                  => 'Daha çox',\n    'deny'                  => 'İcazə yoxdur',\n    'administrator'         => 'Rəhbər',\n    'roles'                 => 'Rollar',\n    'permissions'           => 'İcazələr',\n    'slug'                  => 'Qalıcı link',\n    'created_at'            => 'Yaradılma tarixi',\n    'updated_at'            => 'Yenilənmə tarixi',\n    'alert'                 => 'Xəbərdarlıq',\n    'parent_id'             => 'Valideyn',\n    'icon'                  => 'İkon',\n    'uri'                   => 'URL',\n    'operation_log'         => 'Əməliyyat tarixçəsi',\n    'parent_select_error'   => 'Üst xəta',\n    'pagination'            => [\n        'range' => ':total qeyd içindən :first dən :last -ə kimi',\n    ],\n    'role'                  => 'Rol',\n    'permission'            => 'İcazə',\n    'route'                 => 'Yol',\n    'confirm'               => 'Təsdiqlə',\n    'cancel'                => 'Ləğv',\n    'http'                  => [\n        'method' => 'HTTP methodu',\n        'path'   => 'HTTP qovluğu',\n    ],\n    'all_methods_if_empty'  => 'Bütün metodlar boşdursa',\n    'all'                   => 'Hamısı',\n    'current_page'          => 'Cari səhifə',\n    'selected_rows'         => 'Seçilənlər',\n    'upload'                => 'Yüklə',\n    'new_folder'            => 'Yeni qovluq',\n    'time'                  => 'Zaman',\n    'size'                  => 'Ölçü',\n    'listbox'               => [\n        'text_total'         => 'Ümumi {0} qeyd',\n        'text_empty'         => 'Boş list',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Hamısını göstər',\n        'filter_placeholder' => 'Filtrlə',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/en/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Login',\n    'logout'                => 'Logout',\n    'setting'               => 'Setting',\n    'name'                  => 'Name',\n    'username'              => 'Username',\n    'password'              => 'Password',\n    'password_confirmation' => 'Password confirmation',\n    'remember_me'           => 'Remember me',\n    'user_setting'          => 'User setting',\n    'avatar'                => 'Avatar',\n    'list'                  => 'List',\n    'new'                   => 'New',\n    'create'                => 'Create',\n    'delete'                => 'Delete',\n    'remove'                => 'Remove',\n    'edit'                  => 'Edit',\n    'view'                  => 'View',\n    'continue_editing'      => 'Continue editing',\n    'continue_creating'     => 'Continue creating',\n    'detail'                => 'Detail',\n    'browse'                => 'Browse',\n    'reset'                 => 'Reset',\n    'export'                => 'Export',\n    'batch_delete'          => 'Batch delete',\n    'save'                  => 'Save',\n    'refresh'               => 'Refresh',\n    'order'                 => 'Order',\n    'expand'                => 'Expand',\n    'collapse'              => 'Collapse',\n    'filter'                => 'Filter',\n    'search'                => 'Search',\n    'close'                 => 'Close',\n    'show'                  => 'Show',\n    'entries'               => 'entries',\n    'captcha'               => 'Captcha',\n    'action'                => 'Action',\n    'title'                 => 'Title',\n    'description'           => 'Description',\n    'back'                  => 'Back',\n    'back_to_list'          => 'Back to List',\n    'submit'                => 'Submit',\n    'menu'                  => 'Menu',\n    'input'                 => 'Input',\n    'succeeded'             => 'Succeeded',\n    'failed'                => 'Failed',\n    'delete_confirm'        => 'Are you sure to delete this item ?',\n    'delete_succeeded'      => 'Delete succeeded !',\n    'delete_failed'         => 'Delete failed !',\n    'update_succeeded'      => 'Update succeeded !',\n    'save_succeeded'        => 'Save succeeded !',\n    'refresh_succeeded'     => 'Refresh succeeded !',\n    'login_successful'      => 'Login successful',\n    'choose'                => 'Choose',\n    'choose_file'           => 'Select file',\n    'choose_image'          => 'Select image',\n    'more'                  => 'More',\n    'deny'                  => 'Permission denied',\n    'administrator'         => 'Administrator',\n    'roles'                 => 'Roles',\n    'permissions'           => 'Permissions',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Created At',\n    'updated_at'            => 'Updated At',\n    'alert'                 => 'Alert',\n    'parent_id'             => 'Parent',\n    'icon'                  => 'Icon',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Operation log',\n    'parent_select_error'   => 'Parent select error',\n    'pagination'            => [\n        'range' => 'Showing :first to :last of :total entries',\n    ],\n    'role'                  => 'Role',\n    'permission'            => 'Permission',\n    'route'                 => 'Route',\n    'confirm'               => 'Confirm',\n    'cancel'                => 'Cancel',\n    'http'                  => [\n        'method' => 'HTTP method',\n        'path'   => 'HTTP path',\n    ],\n    'all_methods_if_empty'  => 'All methods if empty',\n    'all'                   => 'All',\n    'current_page'          => 'Current page',\n    'selected_rows'         => 'Selected rows',\n    'upload'                => 'Upload',\n    'new_folder'            => 'New folder',\n    'time'                  => 'Time',\n    'size'                  => 'Size',\n    'listbox'               => [\n        'text_total'         => 'Showing all {0}',\n        'text_empty'         => 'Empty list',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Show all',\n        'filter_placeholder' => 'Filter',\n    ],\n    'grid_items_selected'    => '{n} items selected',\n\n    'menu_titles'            => [],\n    'prev'                   => 'Prev',\n    'next'                   => 'Next',\n    'quick_create'           => 'Quick create',\n];\n"
  },
  {
    "path": "resources/lang/en/auth.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Authentication Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used during authentication for various\n    | messages that we need to display to the user. You are free to modify\n    | these language lines according to your application's requirements.\n    |\n    */\n\n    'failed' => 'These credentials do not match our records.',\n    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',\n\n];\n"
  },
  {
    "path": "resources/lang/en/pagination.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Pagination Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used by the paginator library to build\n    | the simple pagination links. You are free to change them to anything\n    | you want to customize your views to better match your application.\n    |\n    */\n\n    'previous' => '&laquo; Previous',\n    'next' => 'Next &raquo;',\n\n];\n"
  },
  {
    "path": "resources/lang/en/passwords.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Password Reset Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are the default lines which match reasons\n    | that are given by the password broker for a password update attempt\n    | has failed, such as for an invalid token or invalid new password.\n    |\n    */\n\n    'password' => 'Passwords must be at least eight characters and match the confirmation.',\n    'reset' => 'Your password has been reset!',\n    'sent' => 'We have e-mailed your password reset link!',\n    'token' => 'This password reset token is invalid.',\n    'user' => \"We can't find a user with that e-mail address.\",\n\n];\n"
  },
  {
    "path": "resources/lang/en/validation.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Validation Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines contain the default error messages used by\n    | the validator class. Some of these rules have multiple versions such\n    | as the size rules. Feel free to tweak each of these messages here.\n    |\n    */\n\n    'accepted' => 'The :attribute must be accepted.',\n    'active_url' => 'The :attribute is not a valid URL.',\n    'after' => 'The :attribute must be a date after :date.',\n    'after_or_equal' => 'The :attribute must be a date after or equal to :date.',\n    'alpha' => 'The :attribute may only contain letters.',\n    'alpha_dash' => 'The :attribute may only contain letters, numbers, dashes and underscores.',\n    'alpha_num' => 'The :attribute may only contain letters and numbers.',\n    'array' => 'The :attribute must be an array.',\n    'before' => 'The :attribute must be a date before :date.',\n    'before_or_equal' => 'The :attribute must be a date before or equal to :date.',\n    'between' => [\n        'numeric' => 'The :attribute must be between :min and :max.',\n        'file' => 'The :attribute must be between :min and :max kilobytes.',\n        'string' => 'The :attribute must be between :min and :max characters.',\n        'array' => 'The :attribute must have between :min and :max items.',\n    ],\n    'boolean' => 'The :attribute field must be true or false.',\n    'confirmed' => 'The :attribute confirmation does not match.',\n    'date' => 'The :attribute is not a valid date.',\n    'date_equals' => 'The :attribute must be a date equal to :date.',\n    'date_format' => 'The :attribute does not match the format :format.',\n    'different' => 'The :attribute and :other must be different.',\n    'digits' => 'The :attribute must be :digits digits.',\n    'digits_between' => 'The :attribute must be between :min and :max digits.',\n    'dimensions' => 'The :attribute has invalid image dimensions.',\n    'distinct' => 'The :attribute field has a duplicate value.',\n    'email' => 'The :attribute must be a valid email address.',\n    'ends_with' => 'The :attribute must end with one of the following: :values',\n    'exists' => 'The selected :attribute is invalid.',\n    'file' => 'The :attribute must be a file.',\n    'filled' => 'The :attribute field must have a value.',\n    'gt' => [\n        'numeric' => 'The :attribute must be greater than :value.',\n        'file' => 'The :attribute must be greater than :value kilobytes.',\n        'string' => 'The :attribute must be greater than :value characters.',\n        'array' => 'The :attribute must have more than :value items.',\n    ],\n    'gte' => [\n        'numeric' => 'The :attribute must be greater than or equal :value.',\n        'file' => 'The :attribute must be greater than or equal :value kilobytes.',\n        'string' => 'The :attribute must be greater than or equal :value characters.',\n        'array' => 'The :attribute must have :value items or more.',\n    ],\n    'image' => 'The :attribute must be an image.',\n    'in' => 'The selected :attribute is invalid.',\n    'in_array' => 'The :attribute field does not exist in :other.',\n    'integer' => 'The :attribute must be an integer.',\n    'ip' => 'The :attribute must be a valid IP address.',\n    'ipv4' => 'The :attribute must be a valid IPv4 address.',\n    'ipv6' => 'The :attribute must be a valid IPv6 address.',\n    'json' => 'The :attribute must be a valid JSON string.',\n    'lt' => [\n        'numeric' => 'The :attribute must be less than :value.',\n        'file' => 'The :attribute must be less than :value kilobytes.',\n        'string' => 'The :attribute must be less than :value characters.',\n        'array' => 'The :attribute must have less than :value items.',\n    ],\n    'lte' => [\n        'numeric' => 'The :attribute must be less than or equal :value.',\n        'file' => 'The :attribute must be less than or equal :value kilobytes.',\n        'string' => 'The :attribute must be less than or equal :value characters.',\n        'array' => 'The :attribute must not have more than :value items.',\n    ],\n    'max' => [\n        'numeric' => 'The :attribute may not be greater than :max.',\n        'file' => 'The :attribute may not be greater than :max kilobytes.',\n        'string' => 'The :attribute may not be greater than :max characters.',\n        'array' => 'The :attribute may not have more than :max items.',\n    ],\n    'mimes' => 'The :attribute must be a file of type: :values.',\n    'mimetypes' => 'The :attribute must be a file of type: :values.',\n    'min' => [\n        'numeric' => 'The :attribute must be at least :min.',\n        'file' => 'The :attribute must be at least :min kilobytes.',\n        'string' => 'The :attribute must be at least :min characters.',\n        'array' => 'The :attribute must have at least :min items.',\n    ],\n    'not_in' => 'The selected :attribute is invalid.',\n    'not_regex' => 'The :attribute format is invalid.',\n    'numeric' => 'The :attribute must be a number.',\n    'present' => 'The :attribute field must be present.',\n    'regex' => 'The :attribute format is invalid.',\n    'required' => 'The :attribute field is required.',\n    'required_if' => 'The :attribute field is required when :other is :value.',\n    'required_unless' => 'The :attribute field is required unless :other is in :values.',\n    'required_with' => 'The :attribute field is required when :values is present.',\n    'required_with_all' => 'The :attribute field is required when :values are present.',\n    'required_without' => 'The :attribute field is required when :values is not present.',\n    'required_without_all' => 'The :attribute field is required when none of :values are present.',\n    'same' => 'The :attribute and :other must match.',\n    'size' => [\n        'numeric' => 'The :attribute must be :size.',\n        'file' => 'The :attribute must be :size kilobytes.',\n        'string' => 'The :attribute must be :size characters.',\n        'array' => 'The :attribute must contain :size items.',\n    ],\n    'starts_with' => 'The :attribute must start with one of the following: :values',\n    'string' => 'The :attribute must be a string.',\n    'timezone' => 'The :attribute must be a valid zone.',\n    'unique' => 'The :attribute has already been taken.',\n    'uploaded' => 'The :attribute failed to upload.',\n    'url' => 'The :attribute format is invalid.',\n    'uuid' => 'The :attribute must be a valid UUID.',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Custom Validation Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify custom validation messages for attributes using the\n    | convention \"attribute.rule\" to name the lines. This makes it quick to\n    | specify a specific custom language line for a given attribute rule.\n    |\n    */\n\n    'custom' => [\n        'attribute-name' => [\n            'rule-name' => 'custom-message',\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Custom Validation Attributes\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used to swap our attribute placeholder\n    | with something more reader friendly such as \"E-Mail Address\" instead\n    | of \"email\". This simply helps us make our message more expressive.\n    |\n    */\n\n    'attributes' => [],\n\n];\n"
  },
  {
    "path": "resources/lang/es/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'en línea',\n    'login'                 => 'Iniciar sesión',\n    'logout'                => 'Cerrar sesión',\n    'setting'               => 'Ajustes',\n    'name'                  => 'Nombre',\n    'username'              => 'Nombre de usuario',\n    'password'              => 'Contraseña',\n    'password_confirmation' => 'Confirmación de contraseña',\n    'remember_me'           => 'Recordarme',\n    'user_setting'          => 'Configuración del usuario',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Lista',\n    'new'                   => 'Nuevo',\n    'create'                => 'Crear',\n    'delete'                => 'Eliminar',\n    'remove'                => 'Retirar',\n    'edit'                  => 'Editar',\n    'view'                  => 'Ver',\n    'continue_editing'      => 'Continua editando',\n    'continue_creating'     => 'Sigue creando',\n    'detail'                => 'Detalle',\n    'browse'                => 'vistazo',\n    'reset'                 => 'Restablecer',\n    'export'                => 'Exportar',\n    'batch_delete'          => 'Eliminar por lotes',\n    'save'                  => 'Guardar',\n    'refresh'               => 'Refrescar',\n    'order'                 => 'Ordenar',\n    'expand'                => 'Expandir',\n    'collapse'              => 'Colapsar',\n    'filter'                => 'Filtrar',\n    'search'                => 'Buscar',\n    'close'                 => 'Cerrar',\n    'show'                  => 'Mostrar',\n    'entries'               => 'Entradas',\n    'captcha'               => 'Captcha',\n    'action'                => 'Acción',\n    'title'                 => 'Título',\n    'description'           => 'Descripción',\n    'back'                  => 'Volver',\n    'back_to_list'          => 'Volver a la lista',\n    'submit'                => 'Enviar',\n    'menu'                  => 'Menú',\n    'input'                 => 'Entrada',\n    'succeeded'             => 'Exitoso',\n    'failed'                => 'Fallido',\n    'delete_confirm'        => '¿ Esta seguro de eliminar este elemento ?',\n    'delete_succeeded'      => '¡ Eliminación exitosa !',\n    'delete_failed'         => '¡ Eliminación fallida !',\n    'update_succeeded'      => '¡ Actualización correcta !',\n    'save_succeeded'        => '¡ Guardar con éxito !',\n    'refresh_succeeded'     => '¡ Actualizar correctamente !',\n    'login_successful'      => 'Inicio de sesión correcto',\n    'choose'                => 'Elegir',\n    'choose_file'           => 'Elegir archivo',\n    'choose_image'          => 'Elegir imagen',\n    'more'                  => 'Más',\n    'deny'                  => 'Permiso denegado',\n    'administrator'         => 'Administrador',\n    'roles'                 => 'Roles',\n    'permissions'           => 'Permisos',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Creado el',\n    'updated_at'            => 'Actualizado el',\n    'alert'                 => 'Alerta',\n    'parent_id'             => 'Padre',\n    'icon'                  => 'Icono',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Registro',\n    'parent_select_error'   => 'Error al seleccionar el elemento padre',\n    'pagination'            => [\n        'range' => 'Mostrando :first a :last de :total elementos',\n    ],\n    'role'                  => 'Rol',\n    'permission'            => 'Permiso',\n    'route'                 => 'Route',\n    'confirm'               => 'Confirmar',\n    'cancel'                => 'Cancelar',\n    'http'                  => [\n        'method' => 'HTTP method',\n        'path'   => 'HTTP path',\n    ],\n    'all'                   => 'Todas',\n    'current_page'          => 'Página actual',\n    'selected_rows'         => 'Filas seleccionadas',\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/fa/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'آنلاین',\n    'login'                 => 'ورود',\n    'logout'                => 'خروج',\n    'setting'               => 'تنظیمات',\n    'name'                  => 'نام',\n    'username'              => 'نام کاربری',\n    'password'              => 'کلمه عبور',\n    'password_confirmation' => 'تایید کلمه عبور',\n    'remember_me'           => 'من را به خاطر بسپار',\n    'user_setting'          => 'تنظیمات کاربر',\n    'avatar'                => 'آواتار',\n    'list'                  => 'لیست',\n    'new'                   => 'جدید',\n    'create'                => 'جدید',\n    'delete'                => 'خذف کردن',\n    'remove'                => 'پاک کردن',\n    'edit'                  => 'ویرایش کردن',\n    'view'                  => 'نمایش',\n    'continue_editing'      => 'ادامه ویرایش',\n    'continue_creating'     => 'ادامه را ایجاد کنید',\n    'detail'                => 'جزئیات',\n    'browse'                => 'پیمایش',\n    'reset'                 => 'نوسازی',\n    'export'                => 'خروجی',\n    'batch_delete'          => 'حذف دسته ای',\n    'save'                  => 'ثبت کردن',\n    'refresh'               => 'بروز سازی',\n    'order'                 => 'اولویت',\n    'expand'                => 'گسترش',\n    'collapse'              => 'بازکردن',\n    'filter'                => 'فیلتر کردن',\n    'search'                => 'جستجو کردن',\n    'close'                 => 'بستن',\n    'show'                  => 'نمایش',\n    'entries'               => 'ورودی',\n    'captcha'               => 'کپتچا',\n    'action'                => 'عملیات',\n    'title'                 => 'عنوان',\n    'description'           => 'توضیحات',\n    'back'                  => 'بازگشت',\n    'back_to_list'          => 'بازگشت به لیست',\n    'submit'                => 'ثبت',\n    'menu'                  => 'منو',\n    'input'                 => 'ورودی',\n    'succeeded'             => 'با موفقیت انجام شد',\n    'failed'                => 'نا موفق',\n    'delete_confirm'        => 'آیا از حذف این مورد اطمینان دارید؟',\n    'delete_succeeded'      => 'حذف موفقیت آمیز انجام شد !',\n    'delete_failed'         => 'حذف نا موفق بود !',\n    'update_succeeded'      => 'ویرایش با موفقیت انجام شد !',\n    'save_succeeded'        => 'ثبت با موفقیت انجام شد !',\n    'refresh_succeeded'     => 'بروزسانی با موفقیت انجام شد !',\n    'login_successful'      => 'ورود با موفقیت انجام شد',\n    'choose'                => 'انتخاب کردن',\n    'choose_file'           => 'انتخاب فایل',\n    'choose_image'          => 'انتخاب عکس',\n    'more'                  => 'بیشتر',\n    'deny'                  => 'دسترسی غیر مجاز',\n    'administrator'         => 'ادمین',\n    'roles'                 => 'دسترسی ها',\n    'permissions'           => 'اجازه ها',\n    'slug'                  => 'نامک',\n    'created_at'            => 'ساخته شده در',\n    'updated_at'            => 'ویرایش شده در',\n    'alert'                 => 'هشدار',\n    'parent_id'             => 'والد',\n    'icon'                  => 'آیکون',\n    'uri'                   => 'آدرس',\n    'operation_log'         => 'لاگ عملیاتی',\n    'parent_select_error'   => 'انتخاب والد با خطا مواجه شد',\n    'pagination'            => [\n        'range' => 'نمایش از :first تا :last از کل :total',\n    ],\n    'role'                  => 'دسترسی ها',\n    'permission'            => 'اجازه ها',\n    'route'                 => 'مسیرها',\n    'confirm'               => 'تایید',\n    'cancel'                => 'لغو',\n    'http'                  => [\n        'method' => 'HTTP متد',\n        'path'   => 'HTTP مسیر',\n    ],\n    'all_methods_if_empty'  => 'همه متدها خالی است',\n    'all'                   => 'همه',\n    'current_page'          => 'همین صفحه',\n    'selected_rows'         => 'انتخاب سطر',\n    'upload'                => 'آپلود',\n    'new_folder'            => 'پوشه جدید',\n    'time'                  => 'زمان',\n    'size'                  => 'حجم',\n    'listbox'               => [\n        'text_total'         => 'درحال نمایش همه {0}',\n        'text_empty'         => 'لیست خالی است',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'نمایش همه',\n        'filter_placeholder' => 'فیلتر کردن',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/fr/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'En ligne',\n    'login'                 => 'Connexion',\n    'logout'                => 'Déconnexion',\n    'setting'               => 'Paramètres',\n    'name'                  => 'Nom',\n    'username'              => 'Nom d\\'utilisateur',\n    'password'              => 'Mot de passe',\n    'password_confirmation' => 'Confirmez votre mot de passe',\n    'remember_me'           => 'Rester connecté',\n    'user_setting'          => 'Paramètres',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Liste',\n    'new'                   => 'Nouveau',\n    'create'                => 'Créer',\n    'delete'                => 'Supprimer',\n    'remove'                => 'Enlèver',\n    'edit'                  => 'Editer',\n    'view'                  => 'Voir',\n    'continue_editing'      => 'Continuer l\\'édition',\n    'continue_creating'     => 'Continuer à créer',\n    'detail'                => 'Détail',\n    'browse'                => 'Naviguer',\n    'reset'                 => 'Réinitialiser',\n    'export'                => 'Exporter',\n    'batch_delete'          => 'Supprimer en masse',\n    'save'                  => 'Sauvegarder',\n    'refresh'               => 'Rafraîchir',\n    'order'                 => 'Commander',\n    'expand'                => 'Déplier',\n    'collapse'              => 'Replier',\n    'filter'                => 'Filtre',\n    'search'                => 'Chercher',\n    'close'                 => 'Fermer',\n    'show'                  => 'Affiche',\n    'entries'               => 'lignes',\n    'captcha'               => 'Captcha',\n    'action'                => 'Action',\n    'title'                 => 'Titre',\n    'description'           => 'Description',\n    'back'                  => 'Retourner',\n    'back_to_list'          => 'Retourne à la liste',\n    'submit'                => 'Soumettre',\n    'menu'                  => 'Menu',\n    'input'                 => 'Entrée',\n    'succeeded'             => 'Réussi',\n    'failed'                => 'Failli',\n    'delete_confirm'        => 'Êtes vous bien certain de vouloir supprimer cet élement ?',\n    'delete_succeeded'      => 'L\\'élement a bien été supprimé !',\n    'delete_failed'         => 'L\\'effacement a échoué !',\n    'update_succeeded'      => 'Changements sont bien mis à jour !',\n    'save_succeeded'        => 'Changements sauvés !',\n    'refresh_succeeded'     => 'Rafraîchissement réussi !',\n    'login_successful'      => 'Connexion réussie',\n    'choose'                => 'Choisissez',\n    'choose_file'           => 'Choisissez un fichier',\n    'choose_image'          => 'Choisissez une image',\n    'more'                  => 'Plus',\n    'deny'                  => 'Permission refusée',\n    'administrator'         => 'Administrateur',\n    'roles'                 => 'Rôles',\n    'permissions'           => 'Droits',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Créé à',\n    'updated_at'            => 'Mis à jour à',\n    'alert'                 => 'Alerte',\n    'parent_id'             => 'Parent',\n    'icon'                  => 'Icône',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Journal des opérations',\n    'parent_select_error'   => 'Parent select erreur',\n    'pagination'            => [\n        'range' => ':first à :last de :total lignes',\n    ],\n    'role'                  => 'Rôle',\n    'permission'            => 'Permission',\n    'route'                 => 'Route',\n    'confirm'               => 'Confirmer',\n    'cancel'                => 'Annuler',\n    'http'                  => [\n        'method' => 'HTTP méthode',\n        'path'   => 'HTTP chemin',\n    ],\n    'all_methods_if_empty'  => 'Toutes méthodes si vide',\n    'all'                   => 'Tous',\n    'current_page'          => 'La page actuelle',\n    'selected_rows'         => 'Les lignes sélectionnées',\n    'upload'                => 'Téléverser',\n    'new_folder'            => 'Nouveau dossier',\n    'time'                  => 'Temps',\n    'size'                  => 'Taille',\n    'listbox'               => [\n        'text_total'         => 'Affichant toutes {0}',\n        'text_empty'         => 'Liste vide',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Affichez tous',\n        'filter_placeholder' => 'Filtre',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/he/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'און ליין',\n    'login'                 => 'כניסה',\n    'logout'                => 'יציאה',\n    'setting'               => 'הגדרות',\n    'name'                  => 'שם',\n    'username'              => 'שם משתמש',\n    'password'              => 'סיסמא',\n    'password_confirmation' => 'שוב סיסמא',\n    'remember_me'           => 'זכור אותי',\n    'user_setting'          => 'הגדרות משתמש',\n    'avatar'                => 'תמונה',\n    'list'                  => 'רשימה',\n    'new'                   => 'חדש',\n    'create'                => 'יצירה',\n    'delete'                => 'מחיקה',\n    'remove'                => 'הסרה',\n    'edit'                  => 'עריכה',\n    'view'                  => 'צפייה',\n    'continue_editing'      => 'המשך בעריכה',\n    'continue_creating'     => 'המשך ליצור',\n    'detail'                => 'פרט',\n    'browse'                => 'דפדוף',\n    'reset'                 => 'אתחול',\n    'export'                => 'ייצוא',\n    'batch_delete'          => 'מחק מסומנים',\n    'save'                  => 'שמור',\n    'refresh'               => 'רענן',\n    'order'                 => 'סדר',\n    'expand'                => 'הרחב',\n    'collapse'              => 'פתח',\n    'filter'                => 'חיפוש',\n    'search'                => 'לחפש',\n    'close'                 => 'סגור',\n    'show'                  => 'צפה',\n    'entries'               => 'רשומות',\n    'captcha'               => 'קאפצ\\'ה',\n    'action'                => 'פעולה',\n    'title'                 => 'כותרת',\n    'description'           => 'תאור',\n    'back'                  => 'חזרה',\n    'back_to_list'          => 'חזרה לרשימה',\n    'submit'                => 'שלח',\n    'menu'                  => 'תפריט',\n    'input'                 => 'קלט',\n    'succeeded'             => 'הצלחה',\n    'failed'                => 'כשלון',\n    'delete_confirm'        => 'אתה בטוח שאתה רוצה למחוק?',\n    'delete_succeeded'      => 'מחיקה הצליחה',\n    'delete_failed'         => 'מחיקה נכשלה',\n    'update_succeeded'      => 'עודכן בהצלחה',\n    'save_succeeded'        => 'נשמר בהצלחה',\n    'refresh_succeeded'     => 'רענון הצליחה',\n    'login_successful'      => 'כניסה הצליחה',\n    'choose'                => 'בחר',\n    'choose_file'           => 'בחר קובץ',\n    'choose_image'          => 'בחר תמונה',\n    'more'                  => 'עוד',\n    'deny'                  => 'אין הרשאות',\n    'administrator'         => 'מנהל מערכת',\n    'roles'                 => 'תפקידים',\n    'permissions'           => 'הרשאות',\n    'slug'                  => 'טקסט',\n    'created_at'            => 'נוצר ב',\n    'updated_at'            => 'עודכן ב',\n    'alert'                 => 'אזהרה',\n    'parent_id'             => 'אב',\n    'icon'                  => 'אייקון',\n    'uri'                   => 'כתובת',\n    'operation_log'         => 'לוג מערכת',\n    'parent_select_error'   => 'בעייה בבחירת האב',\n    'pagination'            => [\n        'range' => ':last מ :total תוצאות',\n    ],\n\n    'menu_titles' => [],\n];\n"
  },
  {
    "path": "resources/lang/id/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Daring',\n    'login'                 => 'Masuk',\n    'logout'                => 'Keluar',\n    'setting'               => 'Pengaturan',\n    'name'                  => 'Nama',\n    'username'              => 'Username',\n    'password'              => 'Sandi',\n    'password_confirmation' => 'Konfirmasi Sandi',\n    'remember_me'           => 'Ingatkan saya',\n    'user_setting'          => 'Pengaturan Pengguna',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Daftar',\n    'new'                   => 'Baru',\n    'create'                => 'Buat',\n    'delete'                => 'Hapus',\n    'remove'                => 'Hapus',\n    'edit'                  => 'Ubah',\n    'view'                  => 'Lihat',\n    'continue_editing'      => 'Lanjutkan Pengubahan',\n    'continue_creating'     => 'Terus ciptakan',\n    'detail'                => 'Detail',\n    'browse'                => 'Jelajahi',\n    'reset'                 => 'Reset',\n    'export'                => 'Ekspor',\n    'batch_delete'          => 'Hapus massal',\n    'save'                  => 'Simpan',\n    'refresh'               => 'Segarkan',\n    'order'                 => 'Urutan',\n    'expand'                => 'Bentangkan',\n    'collapse'              => 'Ciutkan',\n    'filter'                => 'Saringan',\n    'search'                => 'Cari',\n    'close'                 => 'Tutup',\n    'show'                  => 'Perlihatkan',\n    'entries'               => 'Masukan',\n    'captcha'               => 'Captcha',\n    'action'                => 'Aksi',\n    'title'                 => 'Judul',\n    'description'           => 'Deskripsi',\n    'back'                  => 'Kembali',\n    'back_to_list'          => 'Kembali ke daftar',\n    'submit'                => 'Submit',\n    'menu'                  => 'Menu',\n    'input'                 => 'Masukan',\n    'succeeded'             => 'Berhasil',\n    'failed'                => 'Gagal',\n    'delete_confirm'        => 'Anda yakin ingin menghapus ini ?',\n    'delete_succeeded'      => 'Berhasil menghapus !',\n    'delete_failed'         => 'Gagal menghapus !',\n    'update_succeeded'      => 'Berhasil mengubah !',\n    'save_succeeded'        => 'Berhasil menyimpan !',\n    'refresh_succeeded'     => 'Berhasil menyegarkan!',\n    'login_successful'      => 'Berhasil masuk',\n    'choose'                => 'Pilih',\n    'choose_file'           => 'Pilih berkas',\n    'choose_image'          => 'Pilih gambar',\n    'more'                  => 'Lebih banyak',\n    'deny'                  => 'Akses ditolak',\n    'administrator'         => 'Administrator',\n    'roles'                 => 'Aturan',\n    'permissions'           => 'Hak Akses',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Dibuat pada',\n    'updated_at'            => 'Diubah pada',\n    'alert'                 => 'Peringatan',\n    'parent_id'             => 'Induk',\n    'icon'                  => 'Ikon',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Riwayat Kegiatan',\n    'parent_select_error'   => 'Kesalahan pemilihan induk',\n    'pagination'            => [\n        'range' => 'Menampilkan :first dari :last dari :total masukan',\n    ],\n    'role'                  => 'Aturan',\n    'permission'            => 'Hak akses',\n    'route'                 => 'Rute',\n    'confirm'               => 'Konfirmasi',\n    'cancel'                => 'Batalkan',\n    'http'                  => [\n        'method' => 'HTTP method',\n        'path'   => 'HTTP path',\n    ],\n    'all_methods_if_empty'  => 'Semua metode kosong',\n    'all'                   => 'Semua',\n    'current_page'          => 'Halaman ini',\n    'selected_rows'         => 'Baris terpilih',\n    'upload'                => 'Unggah',\n    'new_folder'            => 'Folder aru',\n    'time'                  => 'Waktu',\n    'size'                  => 'Ukuran',\n    'listbox'               => [\n        'text_total'         => 'Semua {0}',\n        'text_empty'         => 'Daftar kosong',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Lihat semua',\n        'filter_placeholder' => 'Saringan',\n    ],\n    'grid_items_selected'    => '{n} Item dipilih',\n\n    'menu_titles'            => [],\n    'prev'                   => 'Sebelumnya',\n    'next'                   => 'Selanjutnya',\n];\n"
  },
  {
    "path": "resources/lang/ja/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'オンライン',\n    'login'                 => 'ログイン',\n    'logout'                => 'ログアウト',\n    'setting'               => '設定',\n    'name'                  => '名称',\n    'username'              => 'ユーザーID',\n    'password'              => 'パスワード',\n    'password_confirmation' => '確認用パスワード',\n    'remember_me'           => 'ログイン状態を記憶',\n    'user_setting'          => 'ユーザー設定',\n    'avatar'                => 'アバター',\n    'list'                  => '一覧',\n    'new'                   => '新規',\n    'create'                => '作成',\n    'delete'                => '削除',\n    'remove'                => '消去',\n    'edit'                  => '編集',\n    'view'                  => '表示',\n    'continue_editing'      => '編集を続ける',\n    'continue_creating'     => '作成を続行する',\n    'detail'                => '詳細',\n    'browse'                => '参照',\n    'reset'                 => 'リセット',\n    'export'                => '出力',\n    'batch_delete'          => '一括削除',\n    'save'                  => '保存',\n    'refresh'               => '再読込',\n    'order'                 => '順序',\n    'expand'                => '展開',\n    'collapse'              => '縮小',\n    'filter'                => 'フィルタ',\n    'search'                => 'サーチ',\n    'close'                 => '閉じる',\n    'show'                  => '表示',\n    'entries'               => '件',\n    'captcha'               => 'Captcha',\n    'action'                => '操作',\n    'title'                 => 'タイトル',\n    'description'           => '概要',\n    'back'                  => '戻る',\n    'back_to_list'          => '一覧へ戻る',\n    'submit'                => '送信',\n    'menu'                  => 'メニュー',\n    'input'                 => '入力',\n    'succeeded'             => '成功',\n    'failed'                => '失敗',\n    'delete_confirm'        => '本当に削除しますか？',\n    'delete_succeeded'      => '削除しました！',\n    'delete_failed'         => '削除に失敗しました！',\n    'update_succeeded'      => '更新しました！',\n    'save_succeeded'        => '保存しました！',\n    'refresh_succeeded'     => '更新しました！',\n    'login_successful'      => 'ログインしました！',\n    'choose'                => '選択',\n    'choose_file'           => 'ファイルを選択',\n    'choose_image'          => '画像を選択',\n    'more'                  => '続き',\n    'deny'                  => '権限がありません。',\n    'administrator'         => '管理者',\n    'roles'                 => '役割',\n    'permissions'           => '権限',\n    'slug'                  => 'スラッグ',\n    'created_at'            => '作成日時',\n    'updated_at'            => '更新日時',\n    'alert'                 => '注意',\n    'parent_id'             => '親ID',\n    'icon'                  => 'アイコン',\n    'uri'                   => 'URI',\n    'operation_log'         => '操作ログ',\n    'parent_select_error'   => '親ID選択エラー',\n    'pagination'            => [\n        'range' => '全 :total 件中 :first - :last 件目',\n    ],\n    'role'                  => '役割',\n    'permission'            => '権限',\n    'route'                 => 'Route',\n    'confirm'               => '確認',\n    'cancel'                => '取消',\n    'http'                  => [\n        'method' => 'HTTP method',\n        'path'   => 'HTTP path',\n    ],\n    'all_methods_if_empty'  => '空欄の場合は全て',\n    'all'                   => '全て',\n    'current_page'          => '現在のページ',\n    'selected_rows'         => '選択行のみ',\n    'upload'                => 'アップロード',\n    'new_folder'            => '新規フォルダ',\n    'time'                  => '日時',\n    'size'                  => 'サイズ',\n    'listbox'               => [\n        'text_total'         => '計 {0} 個のアイテム',\n        'text_empty'         => '空のリスト',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => '全て表示',\n        'filter_placeholder' => 'フィルタ',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/ko/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => '온라인',\n    'login'                 => '로그인',\n    'logout'                => '로그아웃',\n    'setting'               => '설정',\n    'name'                  => '이름',\n    'username'              => '아이디',\n    'password'              => '비밀번호',\n    'password_confirmation' => '비밀번호 확인',\n    'remember_me'           => '자동로그인',\n    'user_setting'          => '사용자 설정',\n    'avatar'                => '프로필',\n    'list'                  => '목록',\n    'new'                   => '만들기',\n    'create'                => '생성',\n    'delete'                => '삭제',\n    'remove'                => '제거',\n    'edit'                  => '편집',\n    'view'                  => '보기',\n    'continue_editing'      => '편집',\n    'continue_creating'     => '계속 생성하기',\n    'detail'                => '세부 사항',\n    'browse'                => '찾아보기',\n    'reset'                 => '초기화',\n    'export'                => '내보내기',\n    'batch_delete'          => '일괄 삭제',\n    'save'                  => '저장',\n    'refresh'               => '새로고침',\n    'order'                 => '정렬',\n    'expand'                => '확대',\n    'collapse'              => '축소',\n    'filter'                => '필터',\n    'search'                => '검색',\n    'close'                 => '닫기',\n    'show'                  => '보기',\n    'entries'               => '항목',\n    'captcha'               => '캡차',\n    'action'                => '동작',\n    'title'                 => '제목',\n    'description'           => '설명',\n    'back'                  => '돌아가기',\n    'back_to_list'          => '목록으로 돌아가기',\n    'submit'                => '전송',\n    'menu'                  => '메뉴',\n    'input'                 => '입력',\n    'succeeded'             => '성공',\n    'failed'                => '실패',\n    'delete_confirm'        => '이 항목을 삭제하시겠습니까?',\n    'delete_succeeded'      => '삭제 성공 !',\n    'delete_failed'         => '삭제 실패 !',\n    'update_succeeded'      => '수정 성공 !',\n    'save_succeeded'        => '저장 성공 !',\n    'refresh_succeeded'     => '새로고침 성공 !',\n    'login_successful'      => '로그인 성공',\n    'choose'                => '선택',\n    'choose_file'           => '파일 선택',\n    'choose_image'          => '이미지 선택',\n    'more'                  => '더 보기',\n    'deny'                  => '권한 거부',\n    'administrator'         => '관리자',\n    'roles'                 => '역할',\n    'permissions'           => '권한',\n    'slug'                  => '',\n    'created_at'            => '생성일',\n    'updated_at'            => '수정일',\n    'alert'                 => '경계경보',\n    'parent_id'             => '상위',\n    'icon'                  => '아이콘',\n    'uri'                   => 'URI',\n    'operation_log'         => '작업 로그',\n    'parent_select_error'   => '상위 선택 오류',\n    'pagination'            => [\n        'range' => '전체 :total, :first 에서 :last 항목',\n    ],\n    'role'                  => '역할',\n    'permission'            => '권한',\n    'route'                 => '경로',\n    'confirm'               => '확인',\n    'cancel'                => '취소',\n    'http'                  => [\n        'method' => 'HTTP 방법',\n        'path'   => 'HTTP 경로',\n    ],\n    'all_methods_if_empty'  => '비어 있는 경우 모든 방법',\n    'all'                   => '전체',\n    'current_page'          => '현재 페이지',\n    'selected_rows'         => '선택된 행',\n    'upload'                => '업로드',\n    'new_folder'            => '새 폴더',\n    'time'                  => '시간',\n    'size'                  => '크기',\n    'listbox'               => [\n        'text_total'         => '전체 {0}',\n        'text_empty'         => '빈 목록',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => '전체 보기',\n        'filter_placeholder' => '필터',\n    ],\n    'grid_items_selected' => '{n} 선택한 항목',\n\n    'menu_titles' => [],\n];\n"
  },
  {
    "path": "resources/lang/ms/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Masuk',\n    'logout'                => 'Log keluar',\n    'setting'               => 'Menetapkan',\n    'name'                  => 'Nama',\n    'username'              => 'Nama pengguna',\n    'password'              => 'Kata laluan',\n    'password_confirmation' => 'Sahkan kata laluan',\n    'remember_me'           => 'Ingat saya',\n    'user_setting'          => 'Tetapan pengguna',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Senarai',\n    'new'                   => 'Tambah',\n    'create'                => 'Buat',\n    'delete'                => 'Padam',\n    'remove'                => 'Keluarkan',\n    'edit'                  => 'Edit',\n    'continue_editing'      => 'Teruskan mengedit',\n    'continue_creating'     => 'Terus mencipta',\n    'view'                  => 'Lihat',\n    'detail'                => 'Terperinci',\n    'browse'                => 'Semak imbas',\n    'reset'                 => 'Tetapkan semula',\n    'export'                => 'Eksport',\n    'batch_delete'          => 'Padam tanggal',\n    'save'                  => 'Simpan',\n    'refresh'               => 'Muat semula',\n    'order'                 => 'Isih',\n    'expand'                => 'Perluas',\n    'collapse'              => 'Runtuh',\n    'filter'                => 'Pemeriksaan',\n    'search'                => 'Carian',\n    'close'                 => 'Tutup',\n    'show'                  => 'Paparan',\n    'entries'               => 'Perkara',\n    'captcha'               => 'Kod pengesahan',\n    'action'                => 'Operasi',\n    'title'                 => 'Tajuk',\n    'description'           => 'Pengenalan',\n    'back'                  => 'Kembali',\n    'back_to_list'          => 'Senarai pemulangan',\n    'submit'                => 'Hantar',\n    'menu'                  => 'Menu',\n    'input'                 => 'Input',\n    'succeeded'             => 'Kejayaan',\n    'failed'                => 'Kegagalan',\n    'delete_confirm'        => 'Sahkan pemadaman?',\n    'delete_succeeded'      => 'Dihapuskan berjaya!',\n    'delete_failed'         => 'Padam gagal!',\n    'update_succeeded'      => 'Berjaya dikemas kini!',\n    'save_succeeded'        => 'Disimpan berjaya!',\n    'refresh_succeeded'     => 'Segarkan semula!',\n    'login_successful'      => 'Log masuk yang berjaya!',\n    'choose'                => 'Pilih',\n    'choose_file'           => 'Pilih fail',\n    'choose_image'          => 'Pilih gambar',\n    'more'                  => 'Lebih banyak',\n    'deny'                  => 'Tiada akses',\n    'administrator'         => 'Pentadbir',\n    'roles'                 => 'Peranan',\n    'permissions'           => 'Kebenaran',\n    'slug'                  => 'Pengenalan',\n    'created_at'            => 'Dicipta pada',\n    'updated_at'            => 'Dikemaskini pada',\n    'alert'                 => 'Perhatian',\n    'parent_id'             => 'Menu ibu bapa',\n    'icon'                  => 'Ikon',\n    'uri'                   => 'Jalan',\n    'operation_log'         => 'Log operasi',\n    'parent_select_error'   => 'Ralat pemilihan ibu bapa',\n    'pagination'            => [\n        'range' => 'Dari :first Untuk :last ，Jumlah :total Perkara',\n    ],\n    'role'       => 'Peranan',\n    'permission' => 'Kebenaran',\n    'route'      => 'Routing',\n    'confirm'    => 'Sahkan',\n    'cancel'     => 'Batalkan',\n    'http'       => [\n        'method' => 'Kaedah HTTP',\n        'path'   => 'Laluan HTTP',\n    ],\n    'all_methods_if_empty' => 'Kosongkan mungkir kepada semua kaedah',\n    'all'                  => 'Semua',\n    'current_page'         => 'Halaman semasa',\n    'selected_rows'        => 'Barisan terpilih',\n    'upload'               => 'Muat naik',\n    'new_folder'           => 'Folder baru',\n    'time'                 => 'Masa',\n    'size'                 => 'Saiz',\n    'listbox'              => [\n        'text_total'         => 'Jumlah {0} Perkara',\n        'text_empty'         => 'Senarai kosong',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Tunjukkan semua',\n        'filter_placeholder' => 'Penapis',\n    ],\n    'menu_titles' => [],\n];\n"
  },
  {
    "path": "resources/lang/nl/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Aanmelden',\n    'logout'                => 'Afmelden',\n    'setting'               => 'Instellingen',\n    'name'                  => 'Naam',\n    'username'              => 'Gebruikersnaam',\n    'password'              => 'Wachtwoord',\n    'password_confirmation' => 'Wachtwoord bevestigen',\n    'remember_me'           => 'Ingelogd blijven',\n    'user_setting'          => 'Instellingen',\n    'avatar'                => 'Profielfoto',\n    'list'                  => 'Lijst',\n    'new'                   => 'Nieuw',\n    'create'                => 'Maak',\n    'delete'                => 'Wissen',\n    'remove'                => 'Verwijder',\n    'edit'                  => 'Wijzigen',\n    'view'                  => 'Toon',\n    'continue_editing'      => 'Verder editeren',\n    'continue_creating'     => 'Doorgaan met maken',\n    'detail'                => 'Gedetailleerd',\n    'browse'                => 'Selecteer',\n    'reset'                 => 'Reset',\n    'export'                => 'Exporteer',\n    'batch_delete'          => 'Verwijder meerdere',\n    'save'                  => 'Opslaan',\n    'refresh'               => 'Vernieuw',\n    'order'                 => 'Sorteer',\n    'expand'                => 'Openklappen',\n    'collapse'              => 'Dichtklappen',\n    'filter'                => 'Filter',\n    'search'                => 'Zoeken',\n    'close'                 => 'Sluit',\n    'show'                  => 'Toon',\n    'entries'               => 'rijen',\n    'captcha'               => 'captcha',\n    'action'                => 'Actie',\n    'title'                 => 'Titel',\n    'description'           => 'Omschrijving',\n    'back'                  => 'Terug',\n    'back_to_list'          => 'Terug naar lijst',\n    'submit'                => 'Bevestig',\n    'menu'                  => 'Menu',\n    'input'                 => 'Input',\n    'succeeded'             => 'Gelukt',\n    'failed'                => 'Mislukt',\n    'delete_confirm'        => 'Bent u zeker dat u dit item wilt verwijderen ?',\n    'delete_succeeded'      => 'Verwijderd !',\n    'delete_failed'         => 'Kon niet verwijderen !',\n    'update_succeeded'      => 'Bijgewerkt !',\n    'save_succeeded'        => 'Opgeslaan !',\n    'refresh_succeeded'     => 'Vernieuwd !',\n    'login_successful'      => 'Ingelogd',\n    'choose'                => 'Kies',\n    'choose_file'           => 'Kies een bestand',\n    'choose_image'          => 'Kies een afbeelding',\n    'more'                  => 'Meer',\n    'deny'                  => 'Toegang geweigerd',\n    'administrator'         => 'Beheerder',\n    'roles'                 => 'Rollen',\n    'permissions'           => 'Rechten',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Gemaakt op',\n    'updated_at'            => 'Gewijzigd op',\n    'alert'                 => 'Alert',\n    'parent_id'             => 'Parent',\n    'icon'                  => 'Icoon',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Bewerkingslog',\n    'parent_select_error'   => '\\'Parent select\\' fout',\n    'pagination'            => [\n        'range' => ':first tot :last van :total rijen',\n    ],\n    'role'                  => 'Rol',\n    'permission'            => 'Permissie',\n    'route'                 => 'Route',\n    'confirm'               => 'Bevestig',\n    'cancel'                => 'Annuleer',\n    'http'                  => [\n        'method' => 'HTTP methode',\n        'path'   => 'HTTP pad',\n    ],\n    'all_methods_if_empty'  => 'Alle methodes indien geen geselecteerd',\n    'all'                   => 'Alle',\n    'current_page'          => 'Huidige pagina',\n    'selected_rows'         => 'Geselecteerde rijen',\n    'upload'                => 'Uploaden',\n    'new_folder'            => 'Nieuwe map',\n    'time'                  => 'Tijd',\n    'size'                  => 'Grootte',\n    'listbox'               => [\n        'text_total'         => 'Alle {0} getoond',\n        'text_empty'         => 'Lege lijst',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Toon alle',\n        'filter_placeholder' => 'Filter',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/pl/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Login',\n    'logout'                => 'Logout',\n    'setting'               => 'Ustawienia',\n    'name'                  => 'Nazwa',\n    'username'              => 'Użytkownik',\n    'password'              => 'Hasło',\n    'password_confirmation' => 'Powtórz hasło',\n    'remember_me'           => 'Zapamiętaj mnie',\n    'user_setting'          => 'Ustawienia użytkownika',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Lista',\n    'new'                   => 'Nowy',\n    'create'                => 'Utwórz',\n    'delete'                => 'Usuń',\n    'remove'                => 'Usuń',\n    'edit'                  => 'Edytuj',\n    'view'                  => 'Zobacz',\n    'continue_editing'      => 'Kontynuuj edycję',\n    'continue_creating'     => 'Kontynuuj tworzenie',\n    'detail'                => 'Szczegół',\n    'reset'                 => 'Resetuj',\n    'export'                => 'Eksportuj',\n    'batch_delete'          => 'Usuń wsadowo',\n    'save'                  => 'Zapisz',\n    'refresh'               => 'Odśwież',\n    'order'                 => 'Sortuj',\n    'expand'                => 'Rozwiń',\n    'collapse'              => 'Zwiń',\n    'filter'                => 'Filtruj',\n    'search'                => 'Szukaj',\n    'close'                 => 'Zamknij',\n    'show'                  => 'Wyświetl',\n    'items'                 => 'element',\n    'entries'               => 'wpisy',\n    'captcha'               => 'Captcha',\n    'action'                => 'Akcja',\n    'title'                 => 'Tytuł',\n    'description'           => 'Opis',\n    'back'                  => 'Wróć',\n    'back_to_list'          => 'Wróć do listy',\n    'submit'                => 'Wyślij',\n    'menu'                  => 'Menu',\n    'input'                 => 'Pole',\n    'succeeded'             => 'Sukces',\n    'failed'                => 'Błąd',\n    'delete_confirm'        => 'Czy na pewno chcesz usunąć?',\n    'delete_succeeded'      => 'Pomyślnie usunięto!',\n    'delete_failed'         => 'Usuwawnie nie powiodło się!',\n    'update_succeeded'      => 'Pomyślnie zmieniono!',\n    'save_succeeded'        => 'Pomyślnie zapisano!',\n    'refresh_succeeded'     => 'Pomyślnie odświeżono!',\n    'login_successful'      => 'Pomyślnie zalogowano',\n    'choose'                => 'Wybierz',\n    'choose_file'           => 'Wybierz plik',\n    'choose_image'          => 'Wybierz obraz',\n    'more'                  => 'Więcej',\n    'deny'                  => 'Brak dostępu',\n    'administrator'         => 'Administrator',\n    'roles'                 => 'Role',\n    'permissions'           => 'Uprawnienia',\n    'slug'                  => 'skrót',\n    'created_at'            => 'Utworzono',\n    'updated_at'            => 'zmieniono',\n    'alert'                 => 'Alarm',\n    'parent_id'             => 'Rodzic',\n    'icon'                  => 'Ikona',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Dziennik operacji',\n    'parent_select_error'   => 'Wybór rodzica nie powiódł się',\n    'pagination'            => [\n        'range' => 'Wyświetlono :first do :last z wszystkich :total',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/pt/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Login',\n    'logout'                => 'Logout',\n    'setting'               => 'Configurações',\n    'name'                  => 'Nome',\n    'username'              => 'Nome de Utilizador',\n    'password'              => 'Palavra-Passe',\n    'password_confirmation' => 'Confirmação de Palavra-Passe',\n    'remember_me'           => 'Lembrar',\n    'user_setting'          => 'Configurações de Utilizador',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Lista',\n    'new'                   => 'Novo',\n    'create'                => 'Criar',\n    'delete'                => 'Apagar',\n    'remove'                => 'Remover',\n    'edit'                  => 'Editar',\n    'view'                  => 'Visualizar',\n    'continue_editing'      => 'Continuar edição',\n    'continue_creating'     => 'Continue criando',\n    'detail'                => 'Detalhe',\n    'browse'                => 'Escolher',\n    'reset'                 => 'Reset',\n    'export'                => 'Exportar',\n    'batch_delete'          => 'Apagar vários',\n    'save'                  => 'Guardar',\n    'refresh'               => 'Actualizar',\n    'order'                 => 'Ordenar',\n    'expand'                => 'Expandir',\n    'collapse'              => 'Diminuir',\n    'filter'                => 'Filtrar',\n    'search'                => 'Pesquisa',\n    'close'                 => 'Fechar',\n    'show'                  => 'Mostrar',\n    'entries'               => 'Entradas',\n    'captcha'               => 'Captcha',\n    'action'                => 'Acção',\n    'title'                 => 'Título',\n    'description'           => 'Descrição',\n    'back'                  => 'Voltar',\n    'back_to_list'          => 'Voltar para Listagem',\n    'submit'                => 'Submeter',\n    'menu'                  => 'Menu',\n    'input'                 => 'Entrada',\n    'succeeded'             => 'Completado com Êxito',\n    'failed'                => 'Falhou',\n    'delete_confirm'        => 'Tem a certeza que deseja apagar este item?',\n    'delete_succeeded'      => 'Remoção completada com sucesso!',\n    'delete_failed'         => 'Remoção falhou!',\n    'update_succeeded'      => 'Actualização completada com sucesso!',\n    'save_succeeded'        => 'Gravação completada com sucesso!',\n    'refresh_succeeded'     => 'Actualizado com sucesso!',\n    'login_successful'      => 'Login com sucesso',\n    'choose'                => 'Escolher',\n    'choose_file'           => 'Selecionar ficheiro',\n    'choose_image'          => 'Selecionar imagem',\n    'more'                  => 'Mais',\n    'deny'                  => 'Permissão Negada',\n    'administrator'         => 'Administrador',\n    'roles'                 => 'Papéis',\n    'permissions'           => 'Permissões',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Criado em',\n    'updated_at'            => 'Actualizado em',\n    'alert'                 => 'Alerta',\n    'parent_id'             => 'Pai',\n    'icon'                  => 'Icone',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Registo de Operações',\n    'parent_select_error'   => 'Erro ao selecionar o pai',\n    'pagination'            => [\n        'range' => 'Mostrando :first até :last de :total entradas',\n    ],\n    'role'                  => 'Papel',\n    'permission'            => 'Permissão',\n    'route'                 => 'Rota',\n    'confirm'               => 'Confirmar',\n    'cancel'                => 'Cancelar',\n    'http'                  => [\n        'method' => 'Método HTTP',\n        'path'   => 'Caminho HTTP',\n    ],\n    'all_methods_if_empty'  => 'Todos os métodos por defeito caso vazio.',\n    'all'                   => 'Tudo',\n    'current_page'          => 'Página Actual',\n    'selected_rows'         => 'Linhas Selecionadas',\n    'upload'                => 'Upload',\n    'new_folder'            => 'Nova Pasta',\n    'time'                  => 'Tempo',\n    'size'                  => 'Tamanho',\n    'listbox'               => [\n        'text_total'         => 'Mostrando todos {0}',\n        'text_empty'         => 'Listagem Vazia',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Mostrar tudo',\n        'filter_placeholder' => 'Filtrar',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/pt-BR/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Online',\n    'login'                 => 'Login',\n    'logout'                => 'Logout',\n    'setting'               => 'Configurações',\n    'name'                  => 'Nome',\n    'username'              => 'Usuário',\n    'password'              => 'Senha',\n    'password_confirmation' => 'Confirmação da Senha',\n    'remember_me'           => 'Lembrar-me',\n    'user_setting'          => 'Configurações do Usuário',\n    'avatar'                => 'Avatar',\n    'list'                  => 'Lista',\n    'new'                   => 'Novo',\n    'create'                => 'Criar',\n    'delete'                => 'Apagar',\n    'remove'                => 'Remover',\n    'edit'                  => 'Editar',\n    'view'                  => 'Visualizar',\n    'continue_editing'      => 'Continuar editando',\n    'continue_creating'     => 'Continue criando',\n    'detail'                => 'Detalhe',\n    'browse'                => 'Escolher',\n    'reset'                 => 'Resetar',\n    'export'                => 'Exportar',\n    'batch_delete'          => 'Apagar vários',\n    'save'                  => 'Salvar',\n    'refresh'               => 'Atualizar',\n    'order'                 => 'Ordenar',\n    'expand'                => 'Expandir',\n    'collapse'              => 'Diminuir',\n    'filter'                => 'Filtrar',\n    'search'                => 'Pesquisa',\n    'close'                 => 'Fechar',\n    'show'                  => 'Mostrar',\n    'entries'               => 'Entradas',\n    'captcha'               => 'Captcha',\n    'action'                => 'Ação',\n    'title'                 => 'Título',\n    'description'           => 'Descrição',\n    'back'                  => 'Voltar',\n    'back_to_list'          => 'Voltar para Listagem',\n    'submit'                => 'Submeter',\n    'menu'                  => 'Menu',\n    'input'                 => 'Entrada',\n    'succeeded'             => 'Completado com Êxito',\n    'failed'                => 'Falhou',\n    'delete_confirm'        => 'Tem a certeza que deseja apagar este item?',\n    'delete_succeeded'      => 'Remoção completada com sucesso!',\n    'delete_failed'         => 'Remoção falhou!',\n    'update_succeeded'      => 'Atualização completada com sucesso!',\n    'save_succeeded'        => 'Gravação completada com sucesso!',\n    'refresh_succeeded'     => 'Atualizado com sucesso!',\n    'login_successful'      => 'Login com sucesso',\n    'choose'                => 'Escolher',\n    'choose_file'           => 'Selecionar pasta',\n    'choose_image'          => 'Selecionar imagem',\n    'more'                  => 'Mais',\n    'deny'                  => 'Permissão Negada',\n    'administrator'         => 'Administrador',\n    'roles'                 => 'Papéis',\n    'permissions'           => 'Permissões',\n    'slug'                  => 'Slug',\n    'created_at'            => 'Criado em',\n    'updated_at'            => 'Atualizado em',\n    'alert'                 => 'Alerta',\n    'parent_id'             => 'Pai',\n    'icon'                  => 'Ícone',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Registo de Operações',\n    'parent_select_error'   => 'Erro ao selecionar o pai',\n    'pagination'            => [\n        'range' => 'Mostrando :first até :last de :total registros',\n    ],\n    'role'                  => 'Papel',\n    'permission'            => 'Permissão',\n    'route'                 => 'Rota',\n    'confirm'               => 'Confirmar',\n    'cancel'                => 'Cancelar',\n    'http'                  => [\n        'method' => 'Método HTTP',\n        'path'   => 'Caminho HTTP',\n    ],\n    'all_methods_if_empty'  => 'Todos os métodos por defeito caso vazio.',\n    'all'                   => 'Tudo',\n    'current_page'          => 'Página Atual',\n    'selected_rows'         => 'Linhas Selecionadas',\n    'upload'                => 'Upload',\n    'new_folder'            => 'Nova Pasta',\n    'time'                  => 'Tempo',\n    'size'                  => 'Tamanho',\n    'listbox'               => [\n        'text_total'         => 'Mostrando todos {0}',\n        'text_empty'         => 'Listagem Vazia',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Mostrar tudo',\n        'filter_placeholder' => 'Filtrar',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/ru/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Онлайн',\n    'login'                 => 'Войти',\n    'logout'                => 'Выйти',\n    'setting'               => 'Настройка',\n    'name'                  => 'Имя',\n    'username'              => 'Логин',\n    'password'              => 'Пароль',\n    'password_confirmation' => 'Подтверждение пароля',\n    'remember_me'           => 'Запомнить',\n    'user_setting'          => 'Настройки пользователя',\n    'avatar'                => 'Аватар',\n    'list'                  => 'Список',\n    'new'                   => 'Добавить',\n    'create'                => 'Новая запись',\n    'delete'                => 'Удалить',\n    'remove'                => 'Удалить',\n    'edit'                  => 'Редактировать',\n    'view'                  => 'Посмотреть',\n    'continue_editing'      => 'Продолжить редактировать',\n    'continue_creating'     => 'Продолжить создание',\n    'detail'                => 'Подробно',\n    'browse'                => 'Выбор файла',\n    'reset'                 => 'Сбросить',\n    'export'                => 'Экспорт',\n    'batch_delete'          => 'Пакетное удаление',\n    'save'                  => 'Сохранить',\n    'refresh'               => 'Обновить',\n    'order'                 => 'Сортировка',\n    'expand'                => 'Развернуть',\n    'collapse'              => 'Свернуть',\n    'filter'                => 'Фильтр',\n    'search'                => 'Поиск',\n    'close'                 => 'Закрыть',\n    'show'                  => 'Показать',\n    'entries'               => 'записей',\n    'captcha'               => 'Защитный код',\n    'action'                => 'Опции',\n    'title'                 => 'Название',\n    'description'           => 'Описание',\n    'back'                  => 'Назад',\n    'back_to_list'          => 'Вернуться к списку',\n    'submit'                => 'Отправить',\n    'menu'                  => 'Меню',\n    'input'                 => 'Ввод',\n    'succeeded'             => 'Завершена',\n    'failed'                => 'Ошибка',\n    'delete_confirm'        => 'Вы уверены, что хотите удалить эту запись?',\n    'delete_succeeded'      => 'Успешно удалено!',\n    'delete_failed'         => 'Ошибка при удалении!',\n    'update_succeeded'      => 'Успешно изменено!',\n    'save_succeeded'        => 'Успешно сохранено!',\n    'refresh_succeeded'     => 'Успешно обновлено!',\n    'login_successful'      => 'Авторизация успешна',\n    'choose'                => 'Выбрать',\n    'choose_file'           => 'Выбор файла',\n    'choose_image'          => 'Выбор изображения',\n    'more'                  => 'Еще',\n    'deny'                  => 'Доступ запрещен',\n    'administrator'         => 'Администратор',\n    'roles'                 => 'Роли',\n    'permissions'           => 'Доступ',\n    'slug'                  => 'Слаг',\n    'created_at'            => 'Дата создания',\n    'updated_at'            => 'Дата обновления',\n    'alert'                 => 'Ошибка',\n    'parent_id'             => 'Родитель',\n    'icon'                  => 'Иконка',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Журнал событий',\n    'parent_select_error'   => 'Ошибка при выборе родителя',\n    'pagination'            => [\n        'range' => 'Записи с :first по :last из :total',\n    ],\n    'role'                  => 'Роль',\n    'permission'            => 'Доступ',\n    'route'                 => 'Путь',\n    'confirm'               => 'Подтвердить',\n    'cancel'                => 'Отмена',\n    'http'                  => [\n        'method' => 'HTTP метод',\n        'path'   => 'HTTP путь',\n    ],\n    'all_methods_if_empty'  => 'Все методы, если не указано',\n    'all'                   => 'Все',\n    'current_page'          => 'Текущая страница',\n    'selected_rows'         => 'Выбранные строки',\n    'upload'                => 'Загрузить',\n    'new_folder'            => 'Новая папка',\n    'time'                  => 'Время',\n    'size'                  => 'Размер',\n    'listbox'               => [\n        'text_total'         => 'Все: {0}',\n        'text_empty'         => 'Пустой список',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Показать все',\n        'filter_placeholder' => 'Фильтр',\n    ],\n    'grid_items_selected'    => '{n} элементов выбрано',\n\n    'menu_titles'            => [],\n    'prev'                   => 'Предыдущая',\n    'next'                   => 'Следующая',\n];\n"
  },
  {
    "path": "resources/lang/tr/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'Aktif',\n    'login'                 => 'Giriş',\n    'logout'                => 'Çıkış',\n    'setting'               => 'Ayarlar',\n    'name'                  => 'İsim',\n    'username'              => 'Kullanıcı adı',\n    'password'              => 'Parola',\n    'password_confirmation' => 'Parola tekrar',\n    'remember_me'           => 'Beni hatırla',\n    'user_setting'          => 'Kullanıcı ayarları',\n    'avatar'                => 'Profil resmi',\n    'list'                  => 'Liste',\n    'new'                   => 'Yeni',\n    'create'                => 'Oluştur',\n    'delete'                => 'Sil',\n    'remove'                => 'Kaldır',\n    'edit'                  => 'Düzenle',\n    'view'                  => 'Gör',\n    'detail'                => 'Ayrıntılar',\n    'browse'                => 'Gözat',\n    'reset'                 => 'Temizle',\n    'export'                => 'Dışarı aktar',\n    'batch_delete'          => 'Toplu sil',\n    'save'                  => 'Kaydet',\n    'refresh'               => 'Yenile',\n    'order'                 => 'Sırala',\n    'expand'                => 'Genişlet',\n    'collapse'              => 'Daralt',\n    'filter'                => 'Filtrele',\n    'search'                => 'arama',\n    'close'                 => 'Kapat',\n    'show'                  => 'Göster',\n    'entries'               => 'kayıtlar',\n    'captcha'               => 'Doğrulama',\n    'action'                => 'İşlem',\n    'title'                 => 'Başlık',\n    'description'           => 'Açıklama',\n    'back'                  => 'Geri',\n    'back_to_list'          => 'Listeye dön',\n    'submit'                => 'Gönder',\n    'continue_editing'      => 'Düzenlemeye devam et',\n    'continue_creating'     => 'Oluşturmaya devam et',\n    'menu'                  => 'Menü',\n    'input'                 => 'Giriş',\n    'succeeded'             => 'Başarılı',\n    'failed'                => 'Hatalı',\n    'delete_confirm'        => 'Silmek istediğinize emin misiniz?',\n    'delete_succeeded'      => 'Silme başarılı!',\n    'delete_failed'         => 'Silme hatalı!',\n    'update_succeeded'      => 'Güncellemen başarılı!',\n    'save_succeeded'        => 'Kaydetme başarılı!',\n    'refresh_succeeded'     => 'Yenileme başarılı!',\n    'login_successful'      => 'Giriş başarılı',\n    'choose'                => 'Seçin',\n    'choose_file'           => 'Dosya seçin',\n    'choose_image'          => 'Resim seçin',\n    'more'                  => 'Daha',\n    'deny'                  => 'İzin yok',\n    'administrator'         => 'Yönetici',\n    'roles'                 => 'Roller',\n    'permissions'           => 'İzinler',\n    'slug'                  => 'Kalıcı link',\n    'created_at'            => 'Oluşturulma tarihi',\n    'updated_at'            => 'Güncellenme tarihi',\n    'alert'                 => 'Uyarı',\n    'parent_id'             => 'Ebeveyn',\n    'icon'                  => 'İkon',\n    'uri'                   => 'URL',\n    'operation_log'         => 'İşlem kayıtları',\n    'parent_select_error'   => 'Üst hata',\n    'pagination'            => [\n        'range' => ':total kayıt içinden :first den :last e kadar',\n    ],\n    'role'                  => 'Rol',\n    'permission'            => 'İzin',\n    'route'                 => 'Rota',\n    'confirm'               => 'Onayla',\n    'cancel'                => 'İptal',\n    'http'                  => [\n        'method' => 'HTTP metodu',\n        'path'   => 'HTTP dizini',\n    ],\n    'all_methods_if_empty'  => 'Tüm metodlar boş ise',\n    'all'                   => 'Tümü',\n    'current_page'          => 'Mevcut sayfa',\n    'selected_rows'         => 'Seçilen kayıtlar',\n    'upload'                => 'Yükle',\n    'new_folder'            => 'Yeni dizin',\n    'time'                  => 'Zaman',\n    'size'                  => 'Boyut',\n    'listbox'               => [\n        'text_total'         => 'Toplam {0} kayıt',\n        'text_empty'         => 'Boş liste',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => 'Tümünü göster',\n        'filter_placeholder' => 'Filtrele',\n    ],\n    'menu_titles'           => [],\n];\n"
  },
  {
    "path": "resources/lang/uk/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => 'В мережі',\n    'login'                 => 'Увійти',\n    'logout'                => 'Вийти',\n    'setting'               => 'Налаштування',\n    'name'                  => 'Ім\\'я',\n    'username'              => 'Логін',\n    'password'              => 'Пароль',\n    'password_confirmation' => 'Підтвердження пароля',\n    'remember_me'           => 'Запам\\'ятати',\n    'user_setting'          => 'Налаштування користувача',\n    'avatar'                => 'Аватар',\n    'list'                  => 'Список',\n    'new'                   => 'Додати',\n    'create'                => 'Новий запис',\n    'delete'                => 'Видалити',\n    'remove'                => 'Видалити',\n    'edit'                  => 'Редагувати',\n    'view'                  => 'Переглянути',\n    'continue_editing'      => 'Продовжити редагувати',\n    'continue_creating'     => 'Продовжуйте створювати',\n    'detail'                => 'Детально',\n    'browse'                => 'Вибір файлу',\n    'reset'                 => 'Очистити',\n    'export'                => 'Експорт',\n    'batch_delete'          => 'Пакетне видалення',\n    'save'                  => 'Зберегти',\n    'refresh'               => 'Оновити',\n    'order'                 => 'Сортування',\n    'expand'                => 'Розгорнути',\n    'collapse'              => 'Згорнути',\n    'filter'                => 'Фільтр',\n    'search'                => 'Пошук',\n    'close'                 => 'Закрити',\n    'show'                  => 'Показати',\n    'entries'               => 'записи',\n    'captcha'               => 'Захисний код',\n    'action'                => 'Опції',\n    'title'                 => 'Назва',\n    'description'           => 'Опис',\n    'back'                  => 'Назад',\n    'back_to_list'          => 'Повернутися до списку',\n    'submit'                => 'Створити',\n    'menu'                  => 'Меню',\n    'input'                 => 'Введення',\n    'succeeded'             => 'Завершено',\n    'failed'                => 'Помилка',\n    'delete_confirm'        => 'Ви впевнені, що хочете видалити цей запис?',\n    'delete_succeeded'      => 'Запис успішно видалено!',\n    'delete_failed'         => 'Помилка при видаленні!',\n    'update_succeeded'      => 'Запис успішно змінено!',\n    'save_succeeded'        => 'Запис успішно створено!',\n    'refresh_succeeded'     => 'Запис успішно оновлено!',\n    'login_successful'      => 'Авторизація успішна',\n    'choose'                => 'Вибрати',\n    'choose_file'           => 'Вибір файлу',\n    'choose_image'          => 'Вибір зображення',\n    'more'                  => 'Ще',\n    'deny'                  => 'Доступ заборонено',\n    'administrator'         => 'Адміністратор',\n    'roles'                 => 'Ролі',\n    'permissions'           => 'Доступ',\n    'slug'                  => 'Посилання',\n    'created_at'            => 'Дата створення',\n    'updated_at'            => 'Дата оновлення',\n    'alert'                 => 'Помилка',\n    'parent_id'             => 'Батько',\n    'icon'                  => 'Іконка',\n    'uri'                   => 'URI',\n    'operation_log'         => 'Журнал подій',\n    'parent_select_error'   => 'Помилка при виборі батька',\n    'pagination'            => [\n        'range'             => 'Записи з :first по :last з :total',\n    ],\n    'role'                  => 'Роль',\n    'permission'            => 'Дозвіл',\n    'route'                 => 'Маршрут',\n    'confirm'               => 'Підтвердити',\n    'cancel'                => 'Скасувати',\n    'http'                  => [\n        'method'            => 'HTTP метод',\n        'path'              => 'шлях HTTP',\n    ],\n    'all_methods_if_empty'  => 'Усі методи, якщо це порожнє',\n    'all'                   => 'Усі',\n    'current_page'          => 'Поточна сторінка',\n    'selected_rows'         => 'Вибрані рядки',\n    'upload'                => 'Завантажити',\n    'new_folder'            => 'Нова папка',\n    'time'                  => 'Час',\n    'size'                  => 'Розмір',\n    'listbox'               => [\n        'text_total'        => 'Показано всі {0}',\n        'text_empty'        => 'Пустий список',\n        'filtered'          => '{0} / {1}',\n        'filter_clear'      => 'Показати все',\n        'filter_placeholder'=> 'Фільтр',\n    ],\n    'grid_items_selected'    => '{n} елементів вибрано',\n\n    'menu_titles'            => [],\n    'prev'                   => 'Попередня',\n    'next'                   => 'Наступна',\n];\n"
  },
  {
    "path": "resources/lang/vendor/aetherupload/en/messages.php",
    "content": "<?php\n\nreturn [\n    'upload_error'            => 'Error: error occurs during upload',\n    'invalid_resource_params' => 'Error: invalid resource parameters',\n    'invalid_resource_size'   => 'Error: invalid resource size',\n    'invalid_resource_type'   => 'Error: invalid resource type',\n    'create_subfolder_fail'   => 'Error: fail to create subfolder',\n    'invalid_chunk_params'    => 'Error: chunk parameters are invalid',\n    'invalid_operation'       => 'Error: operation is forbidden',\n    'http_post_only'          => 'Error: upload must through HTTP POST',\n    'create_resource_fail'    => 'Error: fail to create resource',\n    'write_resource_fail'     => 'Error: fail to write resource',\n    'delete_resource_fail'    => 'Error: fail to delete resource',\n    'rename_resource_fail'    => 'Error: fail to rename resource',\n    'create_header_fail'      => 'Error: fail to create header',\n    'write_header_fail'       => 'Error: fail to write head resource',\n    'read_header_fail'        => 'Error: fail to read head resource',\n    'delete_header_fail'      => 'Error: fail to delete head resource',\n];"
  },
  {
    "path": "resources/lang/vendor/aetherupload/zh/messages.php",
    "content": "<?php\n\nreturn [\n    'upload_error'            => '错误: 上传发生错误',\n    'invalid_resource_params' => '错误：缺少必要的文件参数',\n    'invalid_resource_size'   => '错误：无效的文件大小',\n    'invalid_resource_type'   => '错误：无效的文件类型',\n    'create_subfolder_fail'   => '错误：创建子文件夹失败',\n    'invalid_chunk_params'    => '错误：缺少必要的文件块参数',\n    'invalid_operation'       => '错误：非法操作',\n    'http_post_only'          => '错误：文件必须通过HTTP POST上传',\n    'create_resource_fail'    => '错误：创建文件失败',\n    'write_resource_fail'     => '错误：写文件失败',\n    'delete_resource_fail'    => '错误：删除文件失败',\n    'rename_resource_fail'    => '错误：重命名文件失败',\n    'create_header_fail'      => '错误：创建头文件失败',\n    'write_header_fail'       => '错误：写头文件失败',\n    'read_header_fail'        => '错误：读头文件失败',\n    'delete_header_fail'      => '错误：删除头文件失败',\n];"
  },
  {
    "path": "resources/lang/zh-CN/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => '在线',\n    'login'                 => '登录',\n    'logout'                => '登出',\n    'setting'               => '设置',\n    'name'                  => '名称',\n    'username'              => '用户名',\n    'password'              => '密码',\n    'password_confirmation' => '确认密码',\n    'remember_me'           => '记住我',\n    'user_setting'          => '用户设置',\n    'avatar'                => '头像',\n    'list'                  => '列表',\n    'new'                   => '新增',\n    'create'                => '创建',\n    'delete'                => '删除',\n    'remove'                => '移除',\n    'edit'                  => '编辑',\n    'continue_editing'      => '继续编辑',\n    'continue_creating'     => '继续创建',\n    'view'                  => '查看',\n    'detail'                => '详细',\n    'browse'                => '浏览',\n    'reset'                 => '重置',\n    'export'                => '导出',\n    'batch_delete'          => '批量删除',\n    'save'                  => '保存',\n    'refresh'               => '刷新',\n    'order'                 => '排序',\n    'expand'                => '展开',\n    'collapse'              => '收起',\n    'filter'                => '筛选',\n    'search'                => '搜索',\n    'close'                 => '关闭',\n    'show'                  => '显示',\n    'entries'               => '条',\n    'captcha'               => '验证码',\n    'action'                => '操作',\n    'title'                 => '标题',\n    'description'           => '简介',\n    'back'                  => '返回',\n    'back_to_list'          => '返回列表',\n    'submit'                => '提交',\n    'menu'                  => '菜单',\n    'input'                 => '输入',\n    'succeeded'             => '成功',\n    'failed'                => '失败',\n    'delete_confirm'        => '确认删除?',\n    'delete_succeeded'      => '删除成功 !',\n    'delete_failed'         => '删除失败 !',\n    'update_succeeded'      => '更新成功 !',\n    'save_succeeded'        => '保存成功 !',\n    'refresh_succeeded'     => '刷新成功 !',\n    'login_successful'      => '登录成功 !',\n    'choose'                => '选择',\n    'choose_file'           => '选择文件',\n    'choose_image'          => '选择图片',\n    'more'                  => '更多',\n    'deny'                  => '无权访问',\n    'administrator'         => '管理员',\n    'roles'                 => '角色',\n    'permissions'           => '权限',\n    'slug'                  => '标识',\n    'created_at'            => '创建时间',\n    'updated_at'            => '更新时间',\n    'alert'                 => '注意',\n    'parent_id'             => '父级菜单',\n    'icon'                  => '图标',\n    'uri'                   => '路径',\n    'operation_log'         => '操作日志',\n    'parent_select_error'   => '父级选择错误',\n    'pagination'            => [\n        'range' => '从 :first 到 :last ，总共 :total 条',\n    ],\n    'role'                  => '角色',\n    'permission'            => '权限',\n    'route'                 => '路由',\n    'confirm'               => '确认',\n    'cancel'                => '取消',\n    'http'                  => [\n        'method' => 'HTTP方法',\n        'path'   => 'HTTP路径',\n    ],\n    'all_methods_if_empty'  => '为空默认为所有方法',\n    'all'                   => '全部',\n    'current_page'          => '当前页',\n    'selected_rows'         => '选择的行',\n    'upload'                => '上传',\n    'new_folder'            => '新建文件夹',\n    'time'                  => '时间',\n    'size'                  => '大小',\n    'listbox'               => [\n        'text_total'         => '总共 {0} 项',\n        'text_empty'         => '空列表',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => '显示全部',\n        'filter_placeholder' => '过滤',\n    ],\n    'grid_items_selected'    => '已选择 {n} 项',\n    'menu_titles'            => [],\n    'prev'                   => '上一步',\n    'next'                   => '下一步',\n    'quick_create'           => '快速创建',\n    'configx' => [\n        'new_config_type' => '配置类型',\n        'new_config_key' => '配置key',\n        'new_config_name' => '配置名称',\n        'new_config_element' => '配置表单元素',\n        'new_config_help' => '配置help',\n        'new_config_options' => '配置扩展项',\n        'header' => '网站设置',\n        'desc' => '网站设置设置',\n        'element' => [\n            'normal' => '默认',\n            'textarea' => '文本域',\n            'date' => '日期',\n            'time' => '时间',\n            'datetime' => '日期时间',\n            'password' => '密码',\n            'image' => '图片',\n            'multiple_image' => '多图',\n            'file' => '文件',\n            'multiple_file' => '多文件',\n            'yes_or_no' => '是或否',\n            'editor' => '编辑器',\n            'radio_group' => '单选框组',\n            'checkbox_group' => '多选框组',\n            'number' => '数字',\n            'rate' => '比例',\n            'select' => '下拉框',\n            'tags' => '标签',\n            'icon' => '图标',\n            'color' => '颜色',\n            'table' =>'表格',\n            'listbox' => '左右多选框',\n            'multiple_select' => '下拉多选',\n            'map' => '地图'\n        ]\n    ],\n    'yes' => '是',\n    'no' => '否'\n];\n"
  },
  {
    "path": "resources/lang/zh-CN/auth.php",
    "content": "<?php\n\nreturn [\n    /*\n    |--------------------------------------------------------------------------\n    | Authentication Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used during authentication for various\n    | messages that we need to display to the user. You are free to modify\n    | these language lines according to your application's requirements.\n    |\n    */\n\n    'failed'   => '用户名或密码错误。',\n    'throttle' => '您的尝试登录次数过多，请 :seconds 秒后再试。',\n];\n"
  },
  {
    "path": "resources/lang/zh-CN/pagination.php",
    "content": "<?php\n\nreturn [\n    /*\n    |--------------------------------------------------------------------------\n    | Pagination Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used by the paginator library to build\n    | the simple pagination links. You are free to change them to anything\n    | you want to customize your views to better match your application.\n    |\n    */\n\n    'previous' => '&laquo; 上一页',\n    'next'     => '下一页 &raquo;',\n];\n"
  },
  {
    "path": "resources/lang/zh-CN/passwords.php",
    "content": "<?php\n\nreturn [\n    /*\n    |--------------------------------------------------------------------------\n    | Password Reminder Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are the default lines which match reasons\n    | that are given by the password broker for a password update attempt\n    | has failed, such as for an invalid token or invalid new password.\n    |\n    */\n\n    'password' => '密码至少是八位字符并且应与确认密码匹配。',\n    'reset'    => '密码重置成功！',\n    'sent'     => '密码重置邮件已发送！',\n    'token'    => '密码重置令牌无效。',\n    'user'     => '找不到该邮箱对应的用户。',\n];\n"
  },
  {
    "path": "resources/lang/zh-CN/validation.php",
    "content": "<?php\n\nreturn [\n    /*\n    |--------------------------------------------------------------------------\n    | Validation Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines contain the default error messages used by\n    | the validator class. Some of these rules have multiple versions such\n    | as the size rules. Feel free to tweak each of these messages here.\n    |\n    */\n\n    'accepted'             => '您必须接受 :attribute。',\n    'active_url'           => ':attribute 不是一个有效的网址。',\n    'after'                => ':attribute 必须要晚于 :date。',\n    'after_or_equal'       => ':attribute 必须要等于 :date 或更晚。',\n    'alpha'                => ':attribute 只能由字母组成。',\n    'alpha_dash'           => ':attribute 只能由字母、数字、短划线(-)和下划线(_)组成。',\n    'alpha_num'            => ':attribute 只能由字母和数字组成。',\n    'array'                => ':attribute 必须是一个数组。',\n    'before'               => ':attribute 必须要早于 :date。',\n    'before_or_equal'      => ':attribute 必须要等于 :date 或更早。',\n    'between'              => [\n        'numeric' => ':attribute 必须介于 :min - :max 之间。',\n        'file'    => ':attribute 必须介于 :min - :max KB 之间。',\n        'string'  => ':attribute 必须介于 :min - :max 个字符之间。',\n        'array'   => ':attribute 必须只有 :min - :max 个单元。',\n    ],\n    'boolean'              => ':attribute 必须为布尔值。',\n    'confirmed'            => ':attribute 两次输入不一致。',\n    'date'                 => ':attribute 不是一个有效的日期。',\n    'date_equals'          => ':attribute 必须要等于 :date。',\n    'date_format'          => ':attribute 的格式必须为 :format。',\n    'different'            => ':attribute 和 :other 必须不同。',\n    'digits'               => ':attribute 必须是 :digits 位的数字。',\n    'digits_between'       => ':attribute 必须是介于 :min 和 :max 位的数字。',\n    'dimensions'           => ':attribute 图片尺寸不正确。',\n    'distinct'             => ':attribute 已经存在。',\n    'email'                => ':attribute 不是一个合法的邮箱。',\n    'ends_with'            => ':attribute 结尾必须包含下列之一：:values',\n    'exists'               => ':attribute 不存在。',\n    'file'                 => ':attribute 必须是文件。',\n    'filled'               => ':attribute 不能为空。',\n    'gt'                   => [\n        'numeric' => ':attribute 必须大于 :value。',\n        'file'    => ':attribute 必须大于 :value KB。',\n        'string'  => ':attribute 必须多于 :value 个字符。',\n        'array'   => ':attribute 必须多于 :value 个元素。',\n    ],\n    'gte'                  => [\n        'numeric' => ':attribute 必须大于或等于 :value。',\n        'file'    => ':attribute 必须大于或等于 :value KB。',\n        'string'  => ':attribute 必须多于或等于 :value 个字符。',\n        'array'   => ':attribute 必须多于或等于 :value 个元素。',\n    ],\n    'image'                => ':attribute 必须是图片。',\n    'in'                   => '已选的属性 :attribute 非法。',\n    'in_array'             => ':attribute 没有在 :other 中。',\n    'integer'              => ':attribute 必须是整数。',\n    'ip'                   => ':attribute 必须是有效的 IP 地址。',\n    'ipv4'                 => ':attribute 必须是有效的 IPv4 地址。',\n    'ipv6'                 => ':attribute 必须是有效的 IPv6 地址。',\n    'json'                 => ':attribute 必须是正确的 JSON 格式。',\n    'lt'                   => [\n        'numeric' => ':attribute 必须小于 :value。',\n        'file'    => ':attribute 必须小于 :value KB。',\n        'string'  => ':attribute 必须少于 :value 个字符。',\n        'array'   => ':attribute 必须少于 :value 个元素。',\n    ],\n    'lte'                  => [\n        'numeric' => ':attribute 必须小于或等于 :value。',\n        'file'    => ':attribute 必须小于或等于 :value KB。',\n        'string'  => ':attribute 必须少于或等于 :value 个字符。',\n        'array'   => ':attribute 必须少于或等于 :value 个元素。',\n    ],\n    'max'                  => [\n        'numeric' => ':attribute 不能大于 :max。',\n        'file'    => ':attribute 不能大于 :max KB。',\n        'string'  => ':attribute 不能大于 :max 个字符。',\n        'array'   => ':attribute 最多只有 :max 个单元。',\n    ],\n    'mimes'                => ':attribute 必须是一个 :values 类型的文件。',\n    'mimetypes'            => ':attribute 必须是一个 :values 类型的文件。',\n    'min'                  => [\n        'numeric' => ':attribute 必须大于等于 :min。',\n        'file'    => ':attribute 大小不能小于 :min KB。',\n        'string'  => ':attribute 至少为 :min 个字符。',\n        'array'   => ':attribute 至少有 :min 个单元。',\n    ],\n    'not_in'               => '已选的属性 :attribute 非法。',\n    'not_regex'            => ':attribute 的格式错误。',\n    'numeric'              => ':attribute 必须是一个数字。',\n    'present'              => ':attribute 必须存在。',\n    'regex'                => ':attribute 格式不正确。',\n    'required'             => ':attribute 不能为空。',\n    'required_if'          => '当 :other 为 :value 时 :attribute 不能为空。',\n    'required_unless'      => '当 :other 不为 :values 时 :attribute 不能为空。',\n    'required_with'        => '当 :values 存在时 :attribute 不能为空。',\n    'required_with_all'    => '当 :values 存在时 :attribute 不能为空。',\n    'required_without'     => '当 :values 不存在时 :attribute 不能为空。',\n    'required_without_all' => '当 :values 都不存在时 :attribute 不能为空。',\n    'same'                 => ':attribute 和 :other 必须相同。',\n    'size'                 => [\n        'numeric' => ':attribute 大小必须为 :size。',\n        'file'    => ':attribute 大小必须为 :size KB。',\n        'string'  => ':attribute 必须是 :size 个字符。',\n        'array'   => ':attribute 必须为 :size 个单元。',\n    ],\n    'starts_with'          => ':attribute 必须以 :values 为开头。',\n    'string'               => ':attribute 必须是一个字符串。',\n    'timezone'             => ':attribute 必须是一个合法的时区值。',\n    'unique'               => ':attribute 已经存在。',\n    'uploaded'             => ':attribute 上传失败。',\n    'url'                  => ':attribute 格式不正确。',\n    'uuid'                 => ':attribute 必须是有效的 UUID。',\n\n    /*\n    |--------------------------------------------------------------------------\n    | Custom Validation Language Lines\n    |--------------------------------------------------------------------------\n    |\n    | Here you may specify custom validation messages for attributes using the\n    | convention \"attribute.rule\" to name the lines. This makes it quick to\n    | specify a specific custom language line for a given attribute rule.\n    |\n    */\n\n    'custom' => [\n        'attribute-name' => [\n            'rule-name' => 'custom-message',\n        ],\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Custom Validation Attributes\n    |--------------------------------------------------------------------------\n    |\n    | The following language lines are used to swap our attribute placeholder\n    | with something more reader friendly such as \"E-Mail Address\" instead\n    | of \"email\". This simply helps us make our message more expressive.\n    |\n    */\n\n    'attributes' => [\n        'name'                  => '名称',\n        'username'              => '用户名',\n        'email'                 => '邮箱',\n        'first_name'            => '名',\n        'last_name'             => '姓',\n        'password'              => '密码',\n        'password_confirmation' => '确认密码',\n        'city'                  => '城市',\n        'country'               => '国家',\n        'address'               => '地址',\n        'phone'                 => '电话',\n        'mobile'                => '手机',\n        'age'                   => '年龄',\n        'sex'                   => '性别',\n        'gender'                => '性别',\n        'day'                   => '天',\n        'month'                 => '月',\n        'year'                  => '年',\n        'hour'                  => '时',\n        'minute'                => '分',\n        'second'                => '秒',\n        'title'                 => '标题',\n        'content'               => '内容',\n        'description'           => '描述',\n        'excerpt'               => '摘要',\n        'date'                  => '日期',\n        'time'                  => '时间',\n        'available'             => '可用的',\n        'size'                  => '大小',\n    ],\n];\n"
  },
  {
    "path": "resources/lang/zh-TW/admin.php",
    "content": "<?php\n\nreturn [\n    'online'                => '在線',\n    'login'                 => '登錄',\n    'logout'                => '登出',\n    'setting'               => '設置',\n    'name'                  => '名稱',\n    'username'              => '用戶名',\n    'password'              => '密碼',\n    'password_confirmation' => '確認密碼',\n    'remember_me'           => '記住我',\n    'user_setting'          => '用戶設置',\n    'avatar'                => '頭像',\n    'list'                  => '列表',\n    'new'                   => '新增',\n    'create'                => '創建',\n    'delete'                => '刪除',\n    'remove'                => '移除',\n    'edit'                  => '編輯',\n    'view'                  => '查看',\n    'continue_editing'      => '繼續編輯',\n    'continue_creating'     => '繼續創建',\n    'detail'                => '詳細',\n    'browse'                => '瀏覽',\n    'reset'                 => '重置',\n    'export'                => '匯出',\n    'batch_delete'          => '批次刪除',\n    'save'                  => '儲存',\n    'refresh'               => '重新整理',\n    'order'                 => '排序',\n    'expand'                => '展開',\n    'collapse'              => '收起',\n    'filter'                => '篩選',\n    'search'                => '搜索',\n    'close'                 => '關閉',\n    'show'                  => '顯示',\n    'entries'               => '條',\n    'captcha'               => '驗證碼',\n    'action'                => '操作',\n    'title'                 => '標題',\n    'description'           => '簡介',\n    'back'                  => '返回',\n    'back_to_list'          => '返回列表',\n    'submit'                => '送出',\n    'menu'                  => '目錄',\n    'input'                 => '輸入',\n    'succeeded'             => '成功',\n    'failed'                => '失敗',\n    'delete_confirm'        => '確認刪除？',\n    'delete_succeeded'      => '刪除成功！',\n    'delete_failed'         => '刪除失敗！',\n    'update_succeeded'      => '更新成功！',\n    'save_succeeded'        => '儲存成功！',\n    'refresh_succeeded'     => '成功重新整理！',\n    'login_successful'      => '成功登入！',\n    'choose'                => '選擇',\n    'choose_file'           => '選擇檔案',\n    'choose_image'          => '選擇圖片',\n    'more'                  => '更多',\n    'deny'                  => '權限不足',\n    'administrator'         => '管理員',\n    'roles'                 => '角色',\n    'permissions'           => '權限',\n    'slug'                  => '標誌',\n    'created_at'            => '建立時間',\n    'updated_at'            => '更新時間',\n    'alert'                 => '警告',\n    'parent_id'             => '父目錄',\n    'icon'                  => '圖示',\n    'uri'                   => '路徑',\n    'operation_log'         => '操作記錄',\n    'parent_select_error'   => '父級選擇錯誤',\n    'pagination'            => [\n        'range' => '從 :first 到 :last ，總共 :total 條',\n    ],\n    'role'                  => '角色',\n    'permission'            => '權限',\n    'route'                 => '路由',\n    'confirm'               => '確認',\n    'cancel'                => '取消',\n    'http'                  => [\n        'method' => 'HTTP方法',\n        'path'   => 'HTTP路徑',\n    ],\n    'all_methods_if_empty'  => '為空默認為所有方法',\n    'all'                   => '全部',\n    'current_page'          => '現在頁面',\n    'selected_rows'         => '選擇的行',\n    'upload'                => '上傳',\n    'new_folder'            => '新建資料夾',\n    'time'                  => '時間',\n    'size'                  => '大小',\n    'listbox'               => [\n        'text_total'         => '總共 {0} 項',\n        'text_empty'         => '空列表',\n        'filtered'           => '{0} / {1}',\n        'filter_clear'       => '顯示全部',\n        'filter_placeholder' => '過濾',\n    ],\n    'menu_titles'            => [],\n    'prev'                   => '上一步',\n    'next'                   => '下一步',\n    'quick_create'           => '快速創建',\n];\n"
  },
  {
    "path": "resources/sass/_variables.scss",
    "content": "// Body\n$body-bg: #f8fafc;\n\n// Typography\n$font-family-sans-serif: 'Nunito', sans-serif;\n$font-size-base: 0.9rem;\n$line-height-base: 1.6;\n\n// Colors\n$blue: #3490dc;\n$indigo: #6574cd;\n$purple: #9561e2;\n$pink: #f66d9b;\n$red: #e3342f;\n$orange: #f6993f;\n$yellow: #ffed4a;\n$green: #38c172;\n$teal: #4dc0b5;\n$cyan: #6cb2eb;\n"
  },
  {
    "path": "resources/sass/app.scss",
    "content": "// Fonts\n@import url('https://fonts.googleapis.com/css?family=Nunito');\n\n// Variables\n@import 'variables';\n\n// Bootstrap\n@import '~bootstrap/scss/bootstrap';\n"
  },
  {
    "path": "resources/views/home/about/index.blade.php",
    "content": "@extends('home.main')\n@section('title','关于我')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">明月几时有？把酒问青天。不知天上宫阙，今夕是何年。我欲乘风归去，又恐琼楼玉宇，高处不胜寒。起舞弄清影，何似在人间。</p>\n                <footer class=\"blockquote-footer\">《水调歌头·明月几时有》\n                    <cite title=\"Source Title\">苏轼</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-3\">\n                <div class=\"card card-profile\">\n                    <div class=\"card-cover\" style=\"background-image: url('{{processing_files($configs['user_info.background'])}}')\">\n                    </div>\n                    <div class=\"card-avatar border-white\">\n                        <a href=\"javascript:void(0);\">\n                            <img src=\"{{processing_files($configs['user_info.portrait'])}}\" alt=\"...\">\n                        </a>\n                    </div>\n                    <div class=\"card-body\">\n                        <h4 class=\"card-title\">\n                            {{$configs['user_info.full_name']}}\n                        </h4>\n                        <h6 class=\"card-category\">\n                            {{$configs['user_info.occupation']}}\n                        </h6>\n                        <p class=\"card-description\">\n                            {{$configs['user_info.motto']}}\n                        </p>\n                    </div>\n                    <div class=\"card-footer text-center\">\n                        <a href=\"javascript:void(0);\" class=\"btn btn-just-icon btn-outline-info\" data-html=\"true\" data-toggle=\"tooltip\" data-placement=\"top\"  data-clipboard-action=\"copy\" data-clipboard-text=\"{{$configs['user_info.user_qq']}}\" id=\"copy_qq\">\n                            <i class=\"fa fa-qq\" aria-hidden=\"true\"></i>\n                        </a>\n                        <a href=\"javascript:void(0);\" class=\"btn btn-just-icon btn-outline-success\" data-html=\"true\" data-toggle=\"tooltip\" data-placement=\"top\" data-clipboard-action=\"copy\" data-clipboard-text=\"{{$configs['user_info.user_wechat']}}\" id=\"copy_wx\">\n                            <i class=\"fa fa-wechat\" aria-hidden=\"true\" data-clipboard-action=\"copy\" data-clipboard-target=\"#copy_wx\"></i>\n                        </a>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-9\">\n                <div class=\"nav-tabs-navigation\">\n                    <div class=\"nav-tabs-wrapper\">\n                        <ul id=\"tabs\" class=\"nav nav-tabs\" role=\"tablist\">\n                            @foreach($about_data as $key => $about)\n                                <li class=\"nav-item\">\n                                    <a class=\"nav-link @if($key == 0) active @endif\" data-toggle=\"tab\" href=\"#a{{$about->id}}\" role=\"tab\">{{$about->about_title}}</a>\n                                </li>\n                            @endforeach\n                        </ul>\n                    </div>\n                </div>\n                <div id=\"my-tab-content\" class=\"tab-content\">\n                    @foreach($about_data as $key => $about)\n                        @if($about->about_type == 1)\n                            <div class=\"tab-pane @if($key == 0) active @endif\" id=\"a{{$about->id}}\" role=\"tabpanel\">\n                                @if($about->about_describe)\n                                    <div class=\"container\">\n                                        <div class=\"bd-callout\">\n                                            <p>\n                                                {{$about->about_describe}}\n                                            </p>\n                                        </div>\n                                    </div>\n                                @endif\n                                <div class=\"description\">\n                                    @if(isset($about->article->articles_content))\n                                        {!! $about->article->articles_content !!}\n                                    @endif\n                                </div>\n                            </div>\n                        @elseif($about->about_type == 2)\n                            <div class=\"tab-pane @if($key == 0) active @endif\" id=\"a{{$about->id}}\" role=\"tabpanel\">\n                                @if($about->about_describe)\n                                    <div class=\"container\">\n                                        <div class=\"bd-callout\">\n                                            <p>\n                                                {{$about->about_describe}}\n                                            </p>\n                                        </div>\n                                    </div>\n                                @endif\n                                <div class=\"row\">\n                                    @foreach($about->card1 as $card_key1 => $card1)\n                                        <div class=\"col-md-4 mb-2\">\n                                            <div class=\"info border\">\n                                                <div class=\"icon icon-primary\">\n                                                    <i class=\"@if(strpos($card1->card_icon,' ')) {{$card1->card_icon}} @else fa {{$card1->card_icon}} @endif\"></i>\n                                                </div>\n                                                <div class=\"description\">\n                                                    <h4 class=\"info-title\">{{$card1->card_title}}</h4>\n                                                    <p>\n                                                        {{$card1->card_content}}\n                                                    </p>\n                                                </div>\n                                                <div class=\"container\">\n                                                    <div class=\"progress\">\n                                                        <div class=\"progress-bar progress-bar-striped bg-info\" role=\"progressbar\" style=\"width: 80%\" aria-valuenow=\"80\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n                                                    </div>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    @endforeach\n                                </div>\n                            </div>\n                        @elseif($about->about_type == 3)\n                            <div class=\"tab-pane @if($key == 0) active @endif\" id=\"a{{$about->id}}\" role=\"tabpanel\">\n                                @if($about->about_describe)\n                                    <div class=\"container\">\n                                        <div class=\"bd-callout\">\n                                            <p>\n                                                {{$about->about_describe}}\n                                            </p>\n                                        </div>\n                                    </div>\n                                @endif\n                                <div class=\"row\">\n                                    @foreach($about->card2 as $card_key2 => $card2)\n                                        <div class=\"col-md-3 mb-2\">\n                                            <div class=\"card card-pricing\" data-background=\"image\" style=\"background-image: url('{{processing_files($card2->card_background)}}')\">\n                                                <div class=\"card-body\" style=\"min-height: 0px;padding-top: 0px;padding-bottom: 0px;\">\n                                                    <div class=\"card-icon\">\n                                                        <i class=\"@if(strpos($card2->card_icon,' ')) {{$card2->card_icon}} @else fa {{$card2->card_icon}} @endif\"></i>\n                                                    </div>\n                                                    <h3 class=\"card-title\">\n                                                        {{$card2->card_title}}\n                                                    </h3>\n                                                </div>\n                                            </div>\n                                        </div>\n                                    @endforeach\n                                </div>\n                            </div>\n                        @endif\n                    @endforeach\n                </div>\n            </div>\n        </div>\n    </div>\n    <script type=\"text/javascript\">\n        $(function () {\n            copyqq();\n            copywx();\n        });\n        function copyqq() {\n            var btns = document.querySelectorAll('#copy_qq');\n            var clipboard = new ClipboardJS(btns);\n\n            clipboard.on('success', function(e) {\n                layer.msg('复制成功,请到QQ上搜索我添加');\n            });\n\n            clipboard.on('error', function(e) {\n                layer.msg('复制失败,请刷新或手动输入');\n            });\n        }\n        function copywx() {\n            var btns = document.querySelectorAll('#copy_wx');\n            var clipboard = new ClipboardJS(btns);\n\n            clipboard.on('success', function(e) {\n                layer.msg('复制成功,请到微信上搜索我添加');\n            });\n\n            clipboard.on('error', function(e) {\n                layer.msg('复制失败,请刷新或手动输入');\n            });\n        }\n    </script>\n@endsection"
  },
  {
    "path": "resources/views/home/article/index.blade.php",
    "content": "@extends('home.main')\n@section('title','文章列表')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">行路难！行路难！多歧路，今安在？长风破浪会有时，直挂云帆济沧海。</p>\n                <footer class=\"blockquote-footer\">《行路难》\n                    <cite title=\"Source Title\">李白</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"container\">\n            <!--最新发布开始-->\n            <div class=\"row\">\n                <div class=\"col-md-9 ml-auto mr-auto \">\n                    <div class=\"title\">\n                        <h3>猜你喜欢\n                            <br>\n                            <small>\n                                杨花落尽子规啼，闻道龙标过五溪。我寄愁心与明月，随君直到夜郎西。--《闻王昌龄左迁龙标遥有此寄》(李白)\n                            </small>\n                        </h3>\n                    </div>\n                    <div class=\"row \">\n                        @foreach($random_article as $k => $v)\n                            <div class=\"col-md-6\">\n                                <div class=\"card\" data-color=\"{{$background_color[$k]}}\" data-background=\"color\">\n                                    <div class=\"card-body text-center\">\n                                        <h6 class=\"card-category\">\n                                            <i class=\"fa fa-tree\" aria-hidden=\"true\"></i>\n                                            {{$configs['base.website_title']}} -- {{$v->nav_name->nav_title}}\n                                        </h6>\n                                        <h5 class=\"card-title\" style=\"height: 60px;\">\n                                            <a href=\"{{url('article_details',['id'=>$v->id])}}\">\n                                                {{$v->article_title}}\n                                            </a>\n                                        </h5>\n                                        <p class=\"card-description\" style=\"height: 70px;\">\n                                            {{str_limit($v->article_describe,80)}}\n                                        </p>\n                                        <div class=\"card-footer text-center\">\n                                            <a href=\"javascript:void(0);\" rel=\"tooltip\" title=\"书签\"\n                                               class=\"btn btn-outline-neutral btn-round btn-just-icon\"\n                                               onclick=\"addBookmark('http://qqphp.com')\"><i\n                                                        class=\"fa fa-bookmark-o\"></i></a>\n                                            <a href=\"{{url('article_details',['id'=>$v->id])}}\"\n                                               class=\"btn btn-neutral btn-round\"><i class=\"fa fa-newspaper-o\"></i>\n                                                阅读</a>\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        @endforeach\n                    </div>\n                </div>\n                <div class=\"col-md-3 mr-auto ml-auto stats\">\n                    <div class=\"col-sm-12 p-0\">\n                        <h5 class=\"title\">\n                            本站统计\n                        </h5>\n                        <ul class=\"list-unstyled\">\n                            <li>\n                                <b>{{$show_article->total()}}</b>篇文章\n                            </li>\n                            <li>\n                                <b>{{$article_click}}</b>次阅读\n                            </li>\n                            <li>\n                                <b>{{$total_msg}}</b>条留言\n                            </li>\n                        </ul>\n                    </div>\n                    <hr>\n                    <div class=\"col-sm-12 p-0\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"search_title\" class=\"form-control\" placeholder=\"搜索本站文章\">\n                            <div class=\"input-group-append\" onclick=\"search_article()\">\n                                <span class=\"input-group-text\" style=\"cursor:pointer;\">\n                                    <i class=\"fa fa-search\" aria-hidden=\"true\"></i>\n                                </span>\n                            </div>\n                        </div>\n                    </div>\n                    <hr>\n                    <div class=\"col-sm-12 p-0\">\n                        <div class=\"sentence\"><strong>每日一句</strong>\n                            <h2>{{date('Y年m月d日')}} {{$week_list[date('w')]}}</h2>\n                            <p id=\"hitokoto\"></p>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-12 border p-2\">\n                        <div class=\"row\">\n                            <div class=\"col-sm-12\">\n                                <input type=\"email\" class=\"form-control\" name=\"email\" id=\"exampleInputEmail1\"\n                                       aria-describedby=\"emailHelp\" placeholder=\"输入邮箱订阅我\">\n                            </div>\n                        </div>\n                        <div class=\"row\">\n                            <div class=\"col-sm-12 mt-1\">\n                                <button class=\"btn btn-sm btn-primary btn-round float-right\" onclick=\"subscribe_me()\">\n                                    <i class=\"fa fa-heart\"></i> 订阅\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-12 mt-2 p-0\">\n                        <h5>博客公告</h5>\n                        <div class=\"row\">\n                            <div class=\"col-sm-12\">\n                                @foreach($notice_list as $k => $v)\n                                    <div class=\"alert alert-success alert-with-icon\" data-notify=\"container\"\n                                         style=\"cursor: pointer;\" data-toggle=\"modal\" data-target=\"#notice{{$v->id}}\">\n                                        <div class=\"container\">\n                                            <div class=\"alert-wrapper\" data-toggle=\"modal\"\n                                                 data-target=\"#notice{{$v->id}}\">\n                                                <div class=\"message\">\n                                                    <i class=\"fas fa-lightbulb\"></i>\n                                                    {{$v->notice_title}}\n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                @endforeach\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <!--最新发布结束-->\n            <!--所有文章开始-->\n            <div class=\"row\">\n                <div class=\"col-md-9 ml-auto mr-auto\">\n                    <div class=\"title\">\n                        <h3>所有文章\n                            <br>\n                            <small>结庐在人境，而无车马喧。问君何能尔？心远地自偏。采菊东篱下，悠然见南山。山气日夕佳，飞鸟相与还。此中有真意，欲辨已忘言。--《饮酒》(陶渊明)</small>\n                        </h3>\n                    </div>\n                    <div class=\"row collections\">\n                        @foreach($show_article as $k => $v)\n                            <div class=\"col-md-12\">\n                                <div class=\"card\" data-background=\"color\" data-color=\"{{$background_color[$k]}}\"\n                                     data-radius=\"none\">\n                                    <div class=\"card-body text-center\">\n                                        <h6 class=\"card-category\">\n                                            <i class=\"fa fa-tree\"\n                                               aria-hidden=\"true\"></i>{{$configs['base.website_title']}}\n                                            -- {{$v->nav_name->nav_title}}\n                                        </h6>\n                                        <h4 class=\"card-title\">\n                                            <a href=\"{{url('article_details',['id'=>$v->id])}}\">{{$v->article_title}}</a>\n                                        </h4>\n                                        <p class=\"card-description\" style=\"height: 50px;\">{{str_limit($v->article_describe,100)}}</p>\n                                        <a href=\"javascript:void(0);\" rel=\"tooltip\" title=\"书签\"\n                                           class=\"btn btn-outline-neutral btn-round btn-just-icon\"\n                                           onclick='addBookmark(\"{{url('article_details',['id'=>$v->id])}}\")'><i\n                                                    class=\"fa fa-bookmark-o\"></i></a>\n                                        <a href=\"{{url('article_details',['id'=>$v->id])}}\"\n                                           class=\"btn btn-neutral btn-round\"><i class=\"fa fa-newspaper-o\"></i>阅读</a>\n                                    </div>\n                                </div>\n                            </div>\n                        @endforeach\n                    </div>\n                    <!--分页开始-->\n                    <div class=\"pagination-area\">\n                        {{$show_article->onEachSide(1)->appends(['search_title'=>$search_title])->links('vendor.pagination.default')}}\n                    </div>\n                    <!--分页结束-->\n                </div>\n                <div class=\"col-md-3 mr-auto ml-auto stats\">\n                    <div class=\"col-sm-12 mt-2 p-0\">\n                        <p class=\"h5\">标签云</p>\n                        @foreach($tag_result as $v)\n                            <a href=\"javascript:void(0)\" class=\"badge badge-{{$tag_color[$v->tag_color]}}  badge-pill\" onclick=\"tag_article('{{$v->tag_content}}')\">{{$v->tag_content}}({{$v->article_count}})</a>\n                        @endforeach\n                    </div>\n                    <h5 class=\"title\">\n                        热门文章\n                    </h5>\n                    <ul class=\"list-unstyled\">\n                        @foreach($hot_article as $k => $v)\n                            <li>\n                                <h5>\n                                    <a href=\"{{url('article_details',['id'=>$v->id])}}\"\n                                       class=\"text-muted\">{{$v->article_title}}</a>\n                                </h5>\n                                <a href=\"javascript:void(0);\" class=\"btn btn-sm {{$button_color[$k]}} btn-link\" onclick='addBookmark(\"{{url('article_details',['id'=>$v->id])}}\")'>\n                                    <i class=\"fa fa-bookmark-o\" aria-hidden=\"true\"></i> {{$v->article_like}}\n                                </a>\n                                <a href=\"javascript:void(0);\" class=\"btn btn-sm {{$button_color[$k]}} btn-link\">\n                                    <i class=\"far far fa-kiss-beam\" aria-hidden=\"true\"></i> {{$v->article_click}}\n                                </a>\n                                <hr>\n                            <li>\n                        @endforeach\n                    </ul>\n                </div>\n            </div>\n            <!--所有文章结束-->\n        </div>\n    </div>\n    <!-- 公告弹出 modal -->\n    @foreach($notice_list as $k => $v)\n        <div class=\"modal fade\" id=\"notice{{$v->id}}\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"myModalLabel\"\n             aria-hidden=\"true\">\n            <div class=\"modal-dialog modal-notice\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header no-border-header\">\n                        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">&times;</button>\n                        <h5 class=\"modal-title\" id=\"myModalLabel\">{{$v->notice_title}}</h5>\n                    </div>\n                    <div class=\"modal-body\">\n                        {!! $v->notice_content !!}\n                    </div>\n                    <div class=\"modal-footer\">\n                        <button type=\"button\" class=\"btn btn-success btn-link\" data-dismiss=\"modal\">知晓</button>\n                    </div>\n                </div>\n            </div>\n        </div>\n    @endforeach\n    <!-- 一言插件 -->\n    <script src=\"https://v1.hitokoto.cn/?encode=js&select=%23hitokoto&v={{time()}}\" defer></script>\n    {{--收藏--}}\n    <script type=\"text/javascript\">\n        function addBookmark(url, title) {\n            if (!url) {\n                url = window.location\n            }\n            if (!title) {\n                title = document.title\n            }\n            var browser = navigator.userAgent.toLowerCase();\n            if (window.sidebar) { // Mozilla, Firefox, Netscape\n                window.sidebar.addPanel(title, url, \"\");\n            } else if (window.external) { // IE or chrome\n                if (browser.indexOf('chrome') == -1) { // ie\n                    window.external.AddFavorite(url, title);\n                } else { // chrome\n                    layer.msg('请按ctrl+d（或macs的command+d）将此页加入书签。');\n                }\n            } else if (window.opera && window.print) { // Opera - automatically adds to sidebar if rel=sidebar in the tag\n                return true;\n            } else if (browser.indexOf('konqueror') != -1) { // Konqueror\n                layer.msg('请按ctrl+b将此页加入书签。');\n            } else if (browser.indexOf('webkit') != -1) { // safari\n                layer.msg('请按ctrl+b（或macs的command+d）将此页加入书签。');\n            } else {\n                layer.msg('您的浏览器无法使用此链接添加书签。请手动添加此链接。')\n            }\n        }\n    </script>\n    <script>\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n\n        function subscribe_me() {\n            var email_name = $(\"input[name='email']\").val();\n            if (email_name == '' || email_name == undefined || email_name == null) {\n                layer.msg('订阅邮箱号不能为空!');\n                return false;\n            }\n            var pattern = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n            if (pattern.test(email_name) !== true) {\n                layer.msg('订阅邮箱格式错误!');\n                return false;\n            }\n            var url = \"{{url('subscribe')}}\";\n            $.ajax({\n                url: url,\n                dataType: \"json\",\n                data: {email_name: email_name},\n                type: \"post\",\n                beforeSend: function () {\n                    var index = layer.load(1, {\n                        shade: [0.1, '#fff'] //0.1透明度的白色背景\n                    });\n                },\n                success: function (data) {\n                    layer.closeAll();\n                    layer.msg(data.msg);\n                },\n                error: function (data) {\n                    layer.closeAll();\n                    if(data.responseJSON.errors){\n                        var get_name = ['email_name'];\n                        var lenght = get_name.length;\n                        var err_msg = data.responseJSON.errors;\n                        for(var i = 0;i<lenght;i++){\n                            var err_name = get_name[i];\n                            if(err_msg[err_name]){\n                                layer.msg(err_msg[err_name][0]);\n                                break;\n                            }\n                        }\n                    }else{\n                        layer.msg('订阅失败,请重试');\n                    }\n                }\n            });\n        }\n\n        function search_article(){\n            // 取得要提交页面的URL地址\n            var url = \"{{{url()->current()}}}\";\n            // 取得要提交的参数\n            var search_title = $(\"input[name='search_title']\").val();\n\n            // 创建Form\n            var form = $('<form id=\"search_form\"></form>');\n            form.attr('action', url);        // 设置Form表单的action属性\n            form.attr('method', 'post');        // 设置Form表单的method属性\n            var csrf = '@csrf';\n            form.append(csrf);\n            // 创建input\n            var input_title = $('<input type=\"text\" name=\"search_title\" />');\n            input_title.attr('value', search_title);     // 设置input的value属性\n\n            // 把input添加到表单中\n            form.append(input_title);\n            // 把表单添加到document.body中（不然在谷歌浏览器中会报错）\n            $(document.body).append(form);\n\n            // 提交表单（当然也可以通过AJAX来提交了，只要你喜欢）\n            form.submit();\n            $(\"#search_form\").remove();\n            return false;\n        }\n        \n        function tag_article($tag_content) {\n            // 取得要提交页面的URL地址\n            var url = \"{{{url()->current()}}}\";\n\n            // 创建Form\n            var form = $('<form id=\"tag_form\"></form>');\n            form.attr('action', url);        // 设置Form表单的action属性\n            form.attr('method', 'post');        // 设置Form表单的method属性\n            var csrf = '@csrf';\n            form.append(csrf);\n            // 创建input\n            var input_tag = $('<input type=\"text\" name=\"tag_content\" />');\n            input_tag.attr('value', $tag_content);     // 设置input的value属性\n\n            // 把input添加到表单中\n            form.append(input_tag);\n\n            // 把表单添加到document.body中（不然在谷歌浏览器中会报错）\n            $(document.body).append(form);\n\n            // 提交表单（当然也可以通过AJAX来提交了，只要你喜欢）\n            form.submit();\n            $(\"#tag_form\").remove();\n            return false;\n        }\n    </script>\n@endsection"
  },
  {
    "path": "resources/views/home/article_details/index.blade.php",
    "content": "@extends('home.main')\n@section('title','文章详情')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">床前明月光，疑是地上霜。 举头望明月，低头思故乡。</p>\n                <footer class=\"blockquote-footer\">《静夜思》\n                    <cite title=\"Source Title\">李白</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <!--右侧边栏开始-->\n        <div class=\"row\">\n            <div class=\"col-sm-9\" data-parallax=\"true\" style=\"background-color: #f7f7f9\">\n                <div class=\"row\">\n                    <main class=\"col-sm-12 bd-content pb-4\">\n                        <h4 class=\"bd-title\">{{$article_result->article_title}}</h4>\n                        <blockquote class=\"blockquote text-right\">\n                            <p class=\"mb-0\">最后更新时间：{{$article_result->updated_at}}</p>\n                        </blockquote>\n                        <div class=\"col-sm-12 m-2\">\n                            @php\n                                $tags = explode(',',$article_result->article_tag);\n                            @endphp\n                            @foreach($tags as $k => $tag)\n                                <span class=\"badge badge-{{$badge_arr[$k]}} badge-pill\">{{$tag}}</span>\n                            @endforeach\n                        </div>\n                        <div class=\"col-sm-12 p-0\">\n                            <div id=\"test-editor\" data-toc=\"#toc\">\n                                <textarea style=\"display:none;\">{{$article_result->article_content}}</textarea>\n                            </div>\n                        </div>\n                    </main>\n                </div>\n                <div class=\"container mb-3\">\n                    <div class=\"row\">\n                        <div class=\"col-sm-12\">\n                            <div class=\"text-center\">\n                                <button type=\"button\" class=\"btn btn-primary btn-round btn-sm\" onclick=\"addBookmark('{{$article_url}}','buffer now')\"><i class=\"fa fa-bookmark-o\"></i>\n                                    书签\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3 mr-auto ml-auto\">\n                <div class=\"row\">\n                    <div id=\"toc\"></div>\n                </div>\n            </div>\n        </div>\n        <!--右侧边栏结束-->\n        <div class=\"row\">\n            <div class=\"col-sm-9 mt-3\">\n                <div class=\"bd-example\" data-example-id=\"\">\n                    <div class=\"card\">\n                        <div class=\"card-body\">\n                            <blockquote class=\"blockquote blockquote-primary mb-0\">\n                                <p>您必须遵守 署名-非商业性使用-相同方式共享 <a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0\" class=\"btn btn-link btn-success p-0\" target=\"_blank\">CC BY-NC-SA</a> 使用这篇文章</p>\n                                <p>本文链接：<a href=\"{{$article_url}}\" class=\"text-info\" target=\"_blank\">{{$article_url}}</a></p>\n                                <footer class=\"blockquote-footer\">转载注明出处：{{$configs['base.website_title']}}</footer>\n                            </blockquote>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-9\">\n                <div class=\"row mt-3\">\n                    <div class=\"col-sm-12\">\n                        <a href=\"{{url('article_details',['a_id'=>$previousPostID])}}\">\n                            <div class=\"pull-left\">\n                                <button class=\"btn btn-sm btn-success btn-round\" type=\"button\">\n                                    <i class=\"fa fa-angle-left\"></i>上一篇\n                                </button>\n                            </div>\n                        </a>\n                        <a href=\"{{url('article_details',['a_id'=>$nextPostID])}}\">\n                            <div class=\"pull-right\">\n                                <button class=\"btn btn-sm btn-success btn-round\" type=\"button\">\n                                    下一篇<i class=\"fa fa-angle-right\"></i>\n                                </button>\n                            </div>\n                        </a>\n                    </div>\n                </div>\n                <div class=\"form-group mt-3\">\n                    <label for=\"exampleFormControlTextarea1\">给我留言</label>\n                    <textarea class=\"form-control textarea-limited\" id=\"msg_content\" placeholder=\"读书不觉已春深，一寸光阴一寸金。\" rows=\"3\" maxlength=\"150\"></textarea>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9\">\n                <div class=\"row\">\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_name\" class=\"form-control\" placeholder=\"博客名称\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-paper\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_link\" class=\"form-control\" placeholder=\"博客网址\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-planet\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_contact\" class=\"form-control\" placeholder=\"微信/QQ/邮箱\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-chat-33\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <button class=\"btn btn-primary btn-round\" id=\"submit_msg\">\n                                <i class=\"fa fa-heart\"></i>提 交\n                            </button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9\">\n                <div class=\"container\">\n                    <div class=\"row\">\n                        <div class=\"col-md-12 mb-2\">\n                            <div class=\"media-area\">\n                                <h3 class=\"mt-0\" id=\"msg_record\">留言条数·{{$article_message->total()}}</h3>\n                                <input type=\"hidden\" name=\"msg_total\" value=\"{{$article_message->total()}}\">\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"row\" id=\"msg_board\">\n                        @foreach($article_message as $k => $v)\n                            <div class=\"col-sm-12 ml-auto\">\n                                <div class=\"card\" data-background=\"color\" data-color=\"{{$bg_arr[$k]}}\">\n                                    <div class=\"card-body\">\n                                        <div class=\"author\">\n                                            <a href=\"{{$v->msg_blog_link}}\" target=\"_blank\">\n                                                <img src=\"{{asset(__STATIC_HOME__)}}/assets/img/qqhead.png\" alt=\"...\" class=\"avatar img-raised\">\n                                                <span>{{$v->msg_blog_name}}</span>\n                                            </a>\n                                        </div>\n                                        <span class=\"category-social pull-right\">\n                                            <i class=\"fa fa-quote-right\"></i>\n                                        </span>\n                                        <div class=\"clearfix\"></div>\n                                        <p class=\"card-description\">“{{$v->msg_content}}”</p>\n                                    </div>\n                                </div>\n                            </div>\n                        @endforeach\n                    </div>\n                </div>\n                <div class=\"col-sm-12\">\n                    <div class=\"pagination-area mt-3\">\n                        {{$article_message->onEachSide(1)->links('vendor.pagination.default')}}\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n    <script type=\"text/javascript\">\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n        \n        $(function () {\n            markdown();\n        });\n        function markdown() {\n            var testEditor;\n            $(function() {\n                testEditor = editormd.markdownToHTML(\"test-editor\", { //注意：这里是上面DIV的id\n                    htmlDecode: \"style,script,iframe\",\n                    emoji: true,\n                    taskList: true,\n                    tocm: true,\n                    markdownSourceCode: false, // 是否保留 Markdown 源码，即是否删除保存源码的 Textarea 标签\n                    flowChart: true, // 默认不解析\n                    sequenceDiagram: true, // 默认不解析\n                    codeFold: true\n                });\n            });\n            $(document).ready(function() {\n                new TocHelper({\n                    top: 100,\n                    tocFixed: false\n                }).reset();\n            });\n        }\n        \n        $(\"#submit_msg\").click(function(){\n            var msg_content = $(\"#msg_content\").val();\n            var msg_blog_name = $(\"input[name='msg_blog_name']\").val();\n            var msg_blog_link = $(\"input[name='msg_blog_link']\").val();\n            var msg_blog_contact = $(\"input[name='msg_blog_contact']\").val();\n            var foreign_id = \"{{$article_result->id}}\";\n            var url = \"{{url('article_msg')}}\";\n            $.ajax({\n                url: url,\n                dataType: \"json\",\n                data: {msg_content: msg_content,msg_blog_name:msg_blog_name,msg_blog_link:msg_blog_link,msg_blog_contact:msg_blog_contact,foreign_id:foreign_id,msg_type:1},\n                type: \"post\",\n                beforeSend: function () {\n                    var index = layer.load(1, {\n                        shade: [0.1, '#fff'] //0.1透明度的白色背景\n                    });\n                },\n                success: function (data) {\n                    layer.closeAll();\n                    layer.msg(data.msg);\n                    var msg_div = data.result;\n                    append_msg_content(msg_div);\n                },\n                error: function (data) {\n                    layer.closeAll();\n                    if(data.responseJSON.errors){\n                        var get_name = ['msg_content','msg_blog_name','msg_blog_link','msg_blog_contact'];\n                        var lenght = get_name.length;\n                        var err_msg = data.responseJSON.errors;\n\n                        // console.log(err_msg);return false;\n                        for(var i = 0;i<lenght;i++){\n                            var err_name = get_name[i];\n                            if(err_msg[err_name]){\n                                layer.msg(err_msg[err_name][0]);\n                                break;\n                            }\n                        }\n                    }else{\n                        layer.msg('提交失败,请重试');\n                    }\n                }\n            });\n        });\n\n        function append_msg_content(msg_div){\n            var msg_board = $(\"#msg_board\");\n            msg_board.prepend(msg_div);\n            //留言条数增加\n            var msg_total = $(\"input[name='msg_total']\").val();\n            var total_number = parseInt(msg_total) + 1;\n            $(\"input[name='msg_total']\").val(total_number);\n            var msg_record = \"留言条数·\"+total_number;\n            $(\"#msg_record\").html(msg_record);\n        }\n\n        function addBookmark(url, title) {\n            if (!url) {\n                url = window.location\n            }\n            if (!title) {\n                title = document.title\n            }\n            var browser = navigator.userAgent.toLowerCase();\n            if (window.sidebar) { // Mozilla, Firefox, Netscape\n                window.sidebar.addPanel(title, url, \"\");\n            } else if (window.external) { // IE or chrome\n                if (browser.indexOf('chrome') == -1) { // ie\n                    window.external.AddFavorite(url, title);\n                } else { // chrome\n                    layer.msg('请按ctrl+d（或macs的command+d）将此页加入书签。');\n                }\n            } else if (window.opera && window.print) { // Opera - automatically adds to sidebar if rel=sidebar in the tag\n                return true;\n            } else if (browser.indexOf('konqueror') != -1) { // Konqueror\n                layer.msg('请按ctrl+b将此页加入书签。');\n            } else if (browser.indexOf('webkit') != -1) { // safari\n                layer.msg('请按ctrl+b（或macs的command+d）将此页加入书签。');\n            } else {\n                layer.msg('您的浏览器无法使用此链接添加书签。请手动添加此链接。')\n            }\n        }\n    </script>\n    <script type=\"text/javascript\">\n        var ua = navigator.userAgent.toLowerCase();\n        var copy_url = \"{{$article_url}}\";\n        var author = \"{{$configs['user_info.full_name']}}\";\n        var site_name = \"{{$configs['base.website_title']}}\";\n        if (window.ActiveXObject) {  /* 兼容IE */\n            document.body.oncopy = function () {\n                event.returnValue = false;\n                var selectedText = document.selection.createRange().text;\n                var pageInfo = '<br>---------------------<br>著作权归作者所有。<br>'\n                    + '商业转载请联系作者获得授权，非商业转载请注明出处。<br>'\n                    + '作者：'+ author +'<br> 源地址：' + copy_url\n                    + '<br>来源：'+site_name+'<br>© 本文为' + site_name + '「'+ author + '」的原创文章，遵循 CC BY-NC-SA 版权协议，转载请附上原文出处链接及本声明。';\n                clipboardData.setData('Text', selectedText.replace(/\\n/g, '<br>') + pageInfo);\n            }\n        }\n        else {\n            function addCopyRight() {\n                var body_element = document.getElementsByTagName('body')[0];\n                var selection = window.getSelection();\n                var pageInfo = '<br>---------------------<br>著作权归作者所有。<br>'\n                    + '商业转载请联系作者获得授权，非商业转载请注明出处。<br>'\n                    + '作者：'+ author +'<br> 源地址：' + copy_url\n                    + '<br>来源：'+site_name+'<br>© 本文为' + site_name + '「'+ author + '」的原创文章，遵循 CC BY-NC-SA 版权协议，转载请附上原文出处链接及本声明。';\n                var copyText = selection.toString().replace(/\\n/g, '<br>') + pageInfo;  // Solve the line breaks conversion issue\n                var newDiv = document.createElement('div');\n                newDiv.style.position = 'absolute';\n                newDiv.style.left = '-99999px';\n                body_element.appendChild(newDiv);\n                newDiv.innerHTML = copyText;\n                selection.selectAllChildren(newDiv);\n                window.setTimeout(function () {\n                    body_element.removeChild(newDiv);\n                }, 0);\n            }\n            document.oncopy = addCopyRight;\n        }\n    </script>\n@endsection\n"
  },
  {
    "path": "resources/views/home/card1/index.blade.php",
    "content": "@extends('home.main')\n@section('title','我的分享')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">红豆生南国，春来发几枝。愿君多采撷，此物最相思。</p>\n                <footer class=\"blockquote-footer\">《相思》\n                    <cite title=\"Source Title\">王维</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            @foreach($result_list as $key => $v)\n                <div class=\"col-sm-3\">\n                    <div class=\"card card-pricing\" data-background=\"image\" style=\"background-image: url('{{processing_files($v->share_src)}}');position:relative;\">\n                        <div class=\"card-body\" style=\"width: 100%;\">\n                            <h6 class=\"card-category\">\n                                <i class=\"fas fa-share-alt\"></i>\n                                {{$v->nav_name->nav_title}}\n                            </h6>\n                            <div class=\"card-icon\">\n                                <i class=\"@if(strpos($v->share_icon,' ')) {{$v->share_icon}} @else fa {{$v->share_icon}} @endif\"></i>\n                            </div>\n                            <h3 class=\"card-title\">\n                                {{$v->share_title}}\n                            </h3>\n                            <p class=\"card-description\" style=\"height: 70px;\">\n                                {{str_limit($v->share_intro,80)}}\n                            </p>\n                            <div class=\"card-footer\">\n                                <a href=\"javascript:void(0);\" class=\"btn btn-info btn-round card-link\" data-toggle=\"modal\" data-target=\"#myModal{{$v->id}}\" style=\"position: absolute;bottom: 10px;left: 50%;transform: translate(-50%);\">\n                                    查看详情\n                                </a>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            @endforeach\n        </div>\n        <!-- 软件弹出分享详情start -->\n        @foreach($result_list as $k => $v)\n        <div class=\"modal fade\" id=\"myModal{{$v->id}}\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"exampleModalLabel\" style=\"display: none;\" aria-hidden=\"true\">\n            <div class=\"modal-dialog\" role=\"document\">\n                <div class=\"modal-content\">\n                    <div class=\"modal-header\">\n                        <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n                            <span aria-hidden=\"true\">×</span>\n                        </button>\n                        <h5 class=\"modal-title text-center\" id=\"exampleModalLabel\">{{$v->share_title}}</h5>\n                    </div>\n                    <div class=\"modal-body\">\n                        {!! $v->share_describe !!}\n                    </div>\n                    <div class=\"modal-footer\">\n                        <div class=\"right-side\">\n                            <a href=\"{{$v->share_link}}\" target=\"_blank\"><button type=\"button\" class=\"btn btn-success btn-link\">链接</button></a>\n                        </div>\n                        <div class=\"divider\"></div>\n                        <div class=\"left-side\">\n                            <button type=\"button\" class=\"btn btn-default btn-link\" data-dismiss=\"modal\">关闭</button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        @endforeach\n        <!-- 软件弹出分享详情end -->\n        <div class=\"col-sm-12\">\n            <div class=\"pagination-area mt-3\">\n                {{$result_list->onEachSide(1)->links('vendor.pagination.default')}}\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/card2/index.blade.php",
    "content": "@extends('home.main')\n@section('title','我的分享')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">好雨知时节，当春乃发生。随风潜入夜，润物细无声。野径云俱黑，江船火独明。晓看红湿处，花重锦官城。</p>\n                <footer class=\"blockquote-footer\">《春夜喜雨》\n                    <cite title=\"Source Title\">杜甫</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            @foreach($result_list as $k => $v)\n            <div class=\"col-sm-3\">\n                <div class=\"card\" data-background=\"image\" style=\"background-image: url('{{processing_files($v->share_src)}}')\">\n                    <div class=\"card-body\" style=\"width: 100%;\">\n                        <h6 class=\"card-category\">\n                            <i class=\"fas fa-shapes\"></i>\n                            {{$v->nav_name->nav_title}}\n                        </h6>\n                        <a href=\"{{$v->share_link}}\" target=\"_blank\">\n                            <h5 class=\"card-title\">{{$v->share_title}}</h5>\n                        </a>\n                        <p class=\"card-description\" style=\"min-height: 220px\">\n                            {{str_limit($v->share_describe,240)}}\n                        </p>\n                        <div class=\"card-footer\">\n                            <div class=\"author\"><span>{{$v->share_note}}</span></div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            @endforeach\n        </div>\n        <div class=\"col-sm-12\">\n            <div class=\"pagination-area mt-3\">\n                {{$result_list->onEachSide(1)->links('vendor.pagination.default')}}\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/friends/index.blade.php",
    "content": "@extends('home.main')\n@section('title','优秀博客')\n@section('content')\n    <style type=\"text/css\">\n        .btn {\n            margin: 0px 0px 5px 5px;\n        }\n    </style>\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">送客南昌尉，离亭西候春。野花看欲尽，林鸟听犹新。别酒青门路，归轩白马津。相知无远近，万里尚为邻。</p>\n                <footer class=\"blockquote-footer\">《送韦城李少府》\n                    <cite title=\"Source Title\">张九龄</cite>\n                </footer>\n            </blockquote>\n        </div>\n    </div>\n    <div class=\"container\">\n        <div class=\"title\">\n            <h3>\n                提交友链<br>\n                <small>人生得意须尽欢，莫使金樽空对月。天生我材必有用，千金散尽还复来。--《将进酒》(李白)</small>\n            </h3>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"friends_title\" class=\"form-control\" placeholder=\"博客名称\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-paper\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"friends_link\" class=\"form-control\" placeholder=\"博客网址\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-planet\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"friends_contact\" class=\"form-control\" placeholder=\"微信/QQ/邮箱\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-chat-33\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <button class=\"btn btn-primary btn-round\" onclick=\"send_blog()\">\n                        <i class=\"fa fa-heart\"></i>提 交\n                    </button>\n                </div>\n            </div>\n        </div>\n    </div>\n    <div class=\"container\">\n        <div class=\"title\">\n            <h3>博主推荐\n                <br>\n                <small>十年磨一剑,霜刃未曾试。今日把示君，谁有不平事。--《剑客·述剑》(贾岛)</small>\n            </h3>\n        </div>\n        <div class=\"container\">\n            <div class=\"row\">\n                @foreach($recommend_list as $vo)\n                    <div class=\"col-sm-2 mb-2\">\n                        <a href=\"{{$vo->friends_link}}\" class=\"btn btn-outline-default btn-round m-0\" role=\"button\" aria-disabled=\"true\" style=\"width: 100%;\" target=\"_blank\"><i class=\"fas fa-battery-full\"></i> {{$vo->friends_title}}</a>\n                    </div>\n                @endforeach\n            </div>\n        </div>\n    </div>\n    <div class=\"container\">\n        <div class=\"title\">\n            <h3>优秀推荐\n                <br>\n                <small>碧玉妆成一树高，万条垂下绿丝绦。不知细叶谁裁出，二月春风似剪刀。--《咏柳》(贺知章)</small>\n            </h3>\n        </div>\n        <div class=\"container\">\n            <div class=\"row\">\n                @foreach($normal_list as $vo)\n                    <div class=\"col-sm-2 mb-2\">\n                        <a href=\"{{$vo->friends_link}}\" class=\"btn btn-outline-success btn-round m-0\" role=\"button\" aria-disabled=\"true\" style=\"width: 100%;\" target=\"_blank\"><i class=\"fas fa-battery-three-quarters\"></i> {{$vo->friends_title}}</a>\n                    </div>\n                @endforeach\n            </div>\n        </div>\n    </div>\n    <script>\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n        function send_blog() {\n            var friends_title = $(\"input[name='friends_title']\").val();\n            var friends_link = $(\"input[name='friends_link']\").val();\n            var friends_contact = $(\"input[name='friends_contact']\").val();\n            var url = \"{{url('friends_store')}}\";\n            $.ajax({\n                url:url,\n                dataType:\"json\",\n                data:{friends_title:friends_title,friends_link:friends_link,friends_contact:friends_contact},\n                type:\"post\",\n                beforeSend:function(){\n                    var index = layer.load(1, {\n                        shade: [0.1,'#fff'] //0.1透明度的白色背景\n                    });\n                },\n                success:function(data){\n                    layer.closeAll();\n                    layer.msg(data.msg);\n                },\n                error:function (data) {\n                    layer.closeAll();\n                    if(data.responseJSON.errors){\n                        var get_name = ['friends_title','friends_link','friends_contact'];\n                        var lenght = get_name.length;\n                        var err_msg = data.responseJSON.errors;\n\n                        // console.log(err_msg);return false;\n                        for(var i = 0;i<lenght;i++){\n                            var err_name = get_name[i];\n                            if(err_msg[err_name]){\n                                layer.msg(err_msg[err_name][0]);\n                                break;\n                            }\n                        }\n                    }else{\n                        layer.msg('提交失败,请重试');\n                    }\n                }\n            });\n        }\n    </script>\n@endsection"
  },
  {
    "path": "resources/views/home/index/index.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-cn\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"{{processing_files($configs['base.website_icon'])}}\">\n    <link rel=\"icon\" type=\"image/png\" href=\"{{processing_files($configs['base.website_icon'])}}\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n    <title>{{$configs['base.website_seo_title']}}</title>\n    <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n    <meta name=\"csrf-token\" content=\"{{ csrf_token() }}\">\n    <meta name=\"keywords\" content=\"{{$configs['base.website_keyword']}}\">\n    <meta name=\"description\" content=\"{{$configs['base.website_desc']}}\">\n    <!--     字体和图标     -->\n    <link href=\"{{__STATIC_HOME__}}/assets/css/fonts-googleapis.css\" rel=\"stylesheet\" />\n    <link href=\"{{__STATIC_HOME__}}/fontawesome-free-5.10.1-web/css/all.min.css\" rel=\"stylesheet\">\n    <link href=\"{{__STATIC_HOME__}}/fontawesome-free-5.10.1-web/css/v4-shims.min.css\" rel=\"stylesheet\">\n    <!-- CSS文件 -->\n    <link href=\"{{__STATIC_HOME__}}/assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n    <link href=\"{{__STATIC_HOME__}}/assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n    <!--引入自己CSS-->\n    <link href=\"{{__STATIC_HOME__}}/assets/css/my_settings.css\" rel=\"stylesheet\" />\n    <!--谷歌统计代码-->\n    {!! $configs['base.new_key_here'] !!}\n</head>\n\n<body class=\"index-page sidebar-collapse\">\n<!-- 导航栏开始 -->\n<nav class=\"navbar navbar-expand-lg fixed-top navbar-transparent\">\n    <div class=\"container\">\n        <div class=\"navbar-translate\">\n            <a class=\"navbar-brand\" href=\"{{url('article')}}\" rel=\"tooltip\" data-placement=\"bottom\">\n                {{$configs['base.website_title']}}\n            </a>\n            <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n                <span class=\"navbar-toggler-bar bar1\"></span>\n                <span class=\"navbar-toggler-bar bar2\"></span>\n                <span class=\"navbar-toggler-bar bar3\"></span>\n            </button>\n        </div>\n        <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n            <ul class=\"navbar-nav\">\n                <li class=\"nav-item\">\n                    <a href=\"{{url('article')}}\">\n                        <button type=\"button\" class=\"btn btn-sm btn-info btn-round\">\n                            <i class=\"fa fa-heart\"></i>进入博客\n                        </button>\n                    </a>\n                </li>\n            </ul>\n        </div>\n    </div>\n</nav>\n<!-- 导航栏结束 -->\n<div class=\"page-header section-dark\" style=\"background-image: url('{{__STATIC_HOME__}}/assets/img/trisomy.jpg')\">\n    <div class=\"filter\"></div>\n    <div class=\"content-center\">\n        <div class=\"container\">\n            <div class=\"title-brand\">\n                <h1 class=\"presentation-title\">偶成</h1>\n                <div class=\"fog-low\">\n                    <img src=\"{{__STATIC_HOME__}}/assets/img/fog-low.png\" alt=\"\">\n                </div>\n                <div class=\"fog-low right\">\n                    <img src=\"{{__STATIC_HOME__}}/assets/img/fog-low.png\" alt=\"\">\n                </div>\n            </div>\n            <h2 class=\"presentation-subtitle text-center\">少年易老学难成，一寸光阴不可轻。</h2>\n            <h2 class=\"presentation-subtitle text-center\">未觉池塘春草梦，阶前梧叶已秋声。 </h2>\n        </div>\n    </div>\n    <div class=\"moving-clouds\" style=\"background-image: url('{{__STATIC_HOME__}}/assets/img/clouds.png'); \"></div>\n    <h6 class=\"category category-absolute\">{{$configs['base.website_keep']}}</h6>\n    <h6 class=\"category category-absolute ml-auto mr-auto\"><a href=\"http://www.beian.miit.gov.cn\" target=\"_blank\">{{$configs['base.website_keep']}}</a></h6>\n</div>\n</body>\n<!--   核心JS文件   -->\n<script src=\"{{__STATIC_HOME__}}/assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n<script src=\"{{__STATIC_HOME__}}/assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n<script src=\"{{__STATIC_HOME__}}/assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n<!--  开关插件，完整的文档如下：http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n<script src=\"{{__STATIC_HOME__}}/assets/js/plugins/bootstrap-switch.js\"></script>\n<!--  Sliders插件，完整文档如下：http://refreshless.com/nouislider/ -->\n<script src=\"{{__STATIC_HOME__}}/assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n<!--  pplugin用于日期选取器，完整文档如下：https://github.com/uxsolutions/bootstrap-datepicker -->\n<script src=\"{{__STATIC_HOME__}}/assets/js/plugins/moment.min.js\"></script>\n<script src=\"{{__STATIC_HOME__}}/assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n<!-- 工具箱控制中心：视差效果、示例页面脚本等 -->\n<script src=\"{{__STATIC_HOME__}}/assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n\n\n</html>"
  },
  {
    "path": "resources/views/home/main.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"zh-cn\">\n\n<head>\n    <meta charset=\"utf-8\" />\n    <link rel=\"apple-touch-icon\" sizes=\"76x76\" href=\"{{processing_files($configs['base.website_icon'])}}\">\n    <link rel=\"icon\" type=\"image/png\" href=\"{{processing_files($configs['base.website_icon'])}}\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n    <title>{{$configs['base.website_title']}}-@yield('title')</title>\n    <meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no' name='viewport' />\n    <meta name=\"csrf-token\" content=\"{{ csrf_token() }}\">\n    <meta name=\"keywords\" content=\"{{$configs['base.website_keyword']}}\">\n    <meta name=\"description\" content=\"{{$configs['base.website_desc']}}\">\n    {{--字体和图标--}}\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/css/google-fonts/fonts-googleapis.css\" rel=\"stylesheet\" />\n    <link href=\"{{asset(__STATIC_HOME__)}}/fontawesome-free-5.10.1-web/css/all.min.css\" rel=\"stylesheet\">\n    <link href=\"{{asset(__STATIC_HOME__)}}/fontawesome-free-5.10.1-web/css/v4-shims.min.css\" rel=\"stylesheet\">\n    <!--CSS文件-->\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/css/bootstrap.min.css\" rel=\"stylesheet\" />\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/css/paper-kit.css?v=2.2.0\" rel=\"stylesheet\" />\n    <!--引入自己CSS-->\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/css/my_settings.css\" rel=\"stylesheet\" />\n    <!--引入jquery和pjax-->\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/js/core/jquery.min.js\" type=\"text/javascript\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/pjax/jquery.pjax.js\" type=\"text/javascript\"></script>\n    <!--引入音乐播放插件-->\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/aplayer/APlayer.min.css\" rel=\"stylesheet\">\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/aplayer/APlayer.min.js\"></script>\n    <!-- 引用liv2D -->\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"{{asset(__STATIC_HOME__)}}/live2d/assets/waifu.css\" />\n    <!--返回顶部-->\n    <script src=\"{{asset(__STATIC_HOME__)}}/jquery_goup/jquery.goup.min.js\" type=\"text/javascript\"></script>\n    <!--layer弹窗-->\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/layer/layer.js\" type=\"text/javascript\"></script>\n    <!--DPlayer视频播放器-->\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/dplay/DPlayer.min.js\"></script>\n    <!-- 这里是复制文本的 -->\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/clipboard/clipboard.min.js\" type=\"text/javascript\"></script>\n    <!--https://pandao.github.io/editor.md/examples/开源在线MarkDown编辑器-->\n    <link rel=\"stylesheet\" href=\"{{asset(__STATIC_HOME__)}}/editormd/css/editormd.css\" />\n    <link rel=\"stylesheet\" href=\"{{asset(__STATIC_HOME__)}}/editormd/css/editormd.preview.css\" />\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/marked.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/prettify.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/raphael.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/underscore.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/sequence-diagram.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/flowchart.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/lib/jquery.flowchart.min.js\"></script>\n    <script src=\"{{asset(__STATIC_HOME__)}}/editormd/editormd.min.js\"></script>\n    <!-- 图片放大所需的JS-->\n    <script src=\"{{asset(__STATIC_HOME__)}}/assets/fancybox/jquery.fancybox.min.js\"> </script>\n    <!-- 引入fontawesome-iconpicker Icon图标 -->\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"{{asset('/vendor/laravel-admin/fontawesome-iconpicker/dist/css/fontawesome-iconpicker.min.css')}}\" />\n    <!--谷歌统计代码-->\n    {!! $configs['base.new_key_here'] !!}\n\n    @if($configs['base.website_open_bg'] == 1)\n        <style type=\"text/css\">\n            body {\n                background-image: url('{{processing_files($configs['base.website_background'])}}');\n                background-size: 100% 100%;\n                background-repeat:no-repeat;\n                background-attachment:fixed;\n                height: auto;\n                max-width: 100%;\n            }\n            .footer{\n                background:rgba(0,0,0,0);\n            }\n            .navbar{\n                z-index: 999;\n                background:rgba(255,255,245,0.1);\n            }\n            .dropdown-menu{\n                background: rgba(255,255,255,0.1);\n            }\n        </style>\n    @endif\n</head>\n\n<body onhashchange=\"fix_the_nav();\">\n<nav class=\"navbar navbar-expand-lg fixed-top\">\n    <div class=\"container\">\n        <div class=\"navbar-translate\">\n            <a class=\"navbar-brand\" href=\"{{url('article')}}\" rel=\"tooltip\" data-placement=\"bottom\">\n                {{$configs['base.website_title']}}\n            </a>\n            <button class=\"navbar-toggler navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\" aria-controls=\"navigation-index\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n                <span class=\"navbar-toggler-bar bar1\"></span>\n                <span class=\"navbar-toggler-bar bar2\"></span>\n                <span class=\"navbar-toggler-bar bar3\"></span>\n            </button>\n        </div>\n        <div class=\"collapse navbar-collapse justify-content-end\" id=\"navigation\">\n            <ul class=\"navbar-nav\">\n                @foreach($nav_list as $nav)\n                <li class=\"dropdown nav-item\">\n                    <a href=\"#\" class=\"dropdown-toggle nav-link\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n                        {{$nav->nav_title}}\n                    </a>\n                    @php\n                        if(!isset($nav->son_nav)) continue;\n                    @endphp\n                    <div class=\"dropdown-menu dropdown-menu-right dropdown-success\">\n                        @foreach($nav->son_nav as $son_nav)\n                            <a href=\"{{url($son_nav->nav_route,['nav_id'=>$son_nav->id])}}\" class=\"dropdown-item\">\n                                {{$son_nav->nav_title}}\n                            </a>\n                        @endforeach\n                    </div>\n                </li>\n                @endforeach\n                <li class=\"dropdown nav-item\">\n                    <a class=\"nav-link\" href=\"{{url('message')}}\">\n                        留言\n                    </a>\n                </li>\n                <li class=\"dropdown nav-item\">\n                    <a class=\"nav-link\" href=\"{{url('friends')}}\">\n                        优秀博客\n                    </a>\n                </li>\n                <li class=\"dropdown nav-item\">\n                    <a class=\"nav-link\" href=\"{{url('about')}}\">\n                        关于我\n                    </a>\n                </li>\n                <li class=\"nav-item\">\n                    <a href=\"/\">\n                        <button type=\"button\" class=\"btn btn-sm btn-info btn-round\">\n                            <i class=\"fa fa-heart\"></i>博客主页\n                        </button>\n                    </a>\n                </li>\n            </ul>\n        </div>\n    </div>\n</nav>\n<div id=\"pjax-container\">\n@yield('content')\n</div>\n<footer class=\"footer footer-black  footer-white \">\n    <div class=\"container\">\n        <div class=\"row\">\n            <nav class=\"footer-nav\">\n                <ul>\n                    <li></li>\n                    <li>\n                        <a href=\"http://www.beian.miit.gov.cn\" class=\"text-secondary\" target=\"_blank\">{{$configs['base.website_keep']}}</a>\n                    </li>\n                    <li></li>\n                </ul>\n            </nav>\n            <div class=\"credits ml-auto\">\n                    <span class=\"copyright\">\n                        ©\n                        <script>\n                            document.write(new Date().getFullYear())\n                        </script>，{{$configs['base.motto']}}<i class=\"fa fa-heart heart\"></i>{{$configs['base.website_title']}}\n                    </span>\n            </div>\n        </div>\n    </div>\n</footer>\n\n<!-- 音乐播放 -->\n<div class=\"container\">\n    <div class=\"row\">\n        <div class=\"col-sm-12\">\n            <div class=\"demo\">\n                <div id=\"player1\">\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n<!-- live2D -->\n<div class=\"waifu\">\n    <div class=\"waifu-tips\"></div>\n    <canvas id=\"live2d\" width=\"280\" height=\"300\" class=\"live2d\"></canvas>\n    <div class=\"waifu-tool\">\n        <span class=\"fui-home\"></span>\n        <span class=\"fui-chat\"></span>\n        <span class=\"fui-eye\"></span>\n        <span class=\"fui-user\"></span>\n        <span class=\"fui-photo\"></span>\n        <span class=\"fui-info-circle\"></span>\n        <span class=\"fui-cross\"></span>\n    </div>\n</div>\n<div class=\"loading\" style=\"display: none;\"> <div id=\"loader\"></div></div>\n</body>\n<!--   核心JS文件   -->\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/core/popper.min.js\" type=\"text/javascript\"></script>\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/core/bootstrap.min.js\" type=\"text/javascript\"></script>\n<!--  开关插件，完整的文档如下：http://www.jque.re/plugins/version3/bootstrap.switch/ -->\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/plugins/bootstrap-switch.js\"></script>\n<!--  Sliders插件，完整文档如下：http://refreshless.com/nouislider/ -->\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/plugins/nouislider.min.js\" type=\"text/javascript\"></script>\n<!--  pplugin用于日期选取器，完整文档如下：https://github.com/uxsolutions/bootstrap-datepicker -->\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/plugins/moment.min.js\"></script>\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/plugins/bootstrap-datepicker.js\" type=\"text/javascript\"></script>\n<!-- 工具箱控制中心：视差效果、示例页面脚本等 -->\n<script src=\"{{asset(__STATIC_HOME__)}}/assets/js/paper-kit.js?v=2.2.0\" type=\"text/javascript\"></script>\n<!-- 引用liv2D -->\n<script src=\"{{asset(__STATIC_HOME__)}}/live2d/assets/waifu-tips.js\"></script>\n<script src=\"{{asset(__STATIC_HOME__)}}/live2d/assets/live2d.js\"></script>\n<script type=\"text/javascript\">\n    initModel(\"{{asset(__STATIC_HOME__)}}/live2d/assets/\");\n</script>\n<script type=\"text/javascript\">\n    //返回顶部\n    $(document).ready(function() {\n        $.goup({\n            trigger: 100,\n            bottomOffset: 400,\n            locationOffset: 100,\n            titleAsText: true,\n            title: '返回顶部',\n            containerRadius: 100,\n            containerColor: \"#6bd098\",\n            arrowColor: \"#00000\"\n        });\n    });\n</script>\n{{--音乐播放js--}}\n<script type=\"text/javascript\">\n    var ap = new APlayer({\n        element: document.getElementById('player1'),\n        fixed: true, //开启吸底模式\n        autoplay: false, //音频自动播放\n        preload: 'auto', //预加载，可选值: 'none', 'metadata', 'auto'\n        volume: 0.7, //默认音量，请注意播放器会记忆用户设置，用户手动设置音量后默认音量即失效\n        narrow: false,\n        mutex: true, //阻止多个播放器同时播放\n        showlrc: false, //是否显示歌词\n        listFolded: true, //列表默认折叠\n        theme: '#b7daff',\n        audio: {!! $my_music !!}\n    });\n</script>\n\n<!--TocHelper 是一款给文章自动生成目录及侧边栏目录滚动特效的插件-->\n<link href=\"{{asset(__STATIC_HOME__)}}/toc-helper/css/toc-helper.css\" rel=\"stylesheet\"/>\n<script src=\"{{asset(__STATIC_HOME__)}}/toc-helper/js/toc-helper.min.js\"></script>\n\n<script type=\"text/javascript\">\n    $(document).pjax('a:not(a[target=\"_blank\"],a[no-pjax])', '#pjax-container',{timeout:3000});\n    $(document).on('pjax:send', function() {\n        $(\".loading\").css(\"display\", \"block\");\n    });\n    $(document).on('submit', 'form', function(event) {\n        $.pjax.submit(event, '#pjax-container')\n    });\n    $(document).on('pjax:complete', function() {\n        //回调函数\n        $(\".loading\").css(\"display\", \"none\");\n        //pjax加载结束的回调函数 解决js无法定位的问题\n        //重新定位容器内容的函数写在这里\n        var dplayer = $(\"#dplayer\");\n        if(dplayer.length){\n            dplay();\n        }\n        var copy_qq = $(\"#copy_qq\");\n        if(copy_qq.length){\n            copyqq();\n        }\n        var copy_wx = $(\"#copy_wx\");\n        if(copy_wx.length){\n            copywx();\n        }\n        var editor = $(\"#test-editor\");\n        if(editor.length){\n            markdown();\n        }\n        var photo_group = $('photo_group');\n        if(photo_group.length){\n            photo();\n        }\n    });\n    function dplay() {\n        var video_url = $(\"input[name='video_url']\").val();\n        const dp = new DPlayer({\n            container: document.getElementById('dplayer'),\n            video: {\n                url: video_url\n            },\n        });\n        //绑定播放事件\n        dp.on('play', function() {\n\n        });\n    }\n    function copyqq() {\n        var btns = document.querySelectorAll('#copy_qq');\n        var clipboard = new ClipboardJS(btns);\n\n        clipboard.on('success', function(e) {\n            layer.msg('复制成功,请到QQ上搜索我添加');\n        });\n\n        clipboard.on('error', function(e) {\n            layer.msg('复制失败,请刷新或手动输入');\n        });\n    }\n    function copywx() {\n        var btns = document.querySelectorAll('#copy_wx');\n        var clipboard = new ClipboardJS(btns);\n\n        clipboard.on('success', function(e) {\n            layer.msg('复制成功,请到微信上搜索我添加');\n        });\n\n        clipboard.on('error', function(e) {\n            layer.msg('复制失败,请刷新或手动输入');\n        });\n    }\n    function markdown() {\n        var testEditor;\n        $(function() {\n            testEditor = editormd.markdownToHTML(\"test-editor\", { //注意：这里是上面DIV的id\n                htmlDecode: \"style,script,iframe\",\n                emoji: true,\n                taskList: true,\n                tocm: true,\n                markdownSourceCode: false, // 是否保留 Markdown 源码，即是否删除保存源码的 Textarea 标签\n                flowChart: true, // 默认不解析\n                sequenceDiagram: true, // 默认不解析\n                codeFold: true\n            });\n        });\n        $(document).ready(function() {\n            new TocHelper({\n                top: 100,\n                tocFixed: false\n            }).reset();\n        });\n    }\n\n    function photo() {\n        $('[data-fancybox=\"gallery\"]').fancybox({\n            // Options will go here\n        });\n    }\n    function fix_the_nav() {\n        if (window.location.hash) {\n            var target = $(location.hash);\n            $(\"body,html\").scrollTop(target.offset().top - 100); // my nav size is 100px\n        }\n    }\n</script>\n</html>\n"
  },
  {
    "path": "resources/views/home/message/index.blade.php",
    "content": "@extends('home.main')\n@section('title','留言列表')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">折花逢驿使，寄与陇头人。 江南无所有，聊赠一枝春。</p>\n                <footer class=\"blockquote-footer\">《赠范晔诗》\n                    <cite title=\"Source Title\">陆凯</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"form-group\">\n                    <label for=\"exampleFormControlTextarea1\">留言内容</label>\n                    <textarea class=\"form-control textarea-limited\" id=\"msg_content\" placeholder=\"读书不觉已春深，一寸光阴一寸金。\" rows=\"3\" maxlength=\"150\"></textarea>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"msg_blog_name\" class=\"form-control\" placeholder=\"博客名称\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-paper\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"msg_blog_link\" class=\"form-control\" placeholder=\"博客网址\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-planet\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <input type=\"text\" name=\"msg_blog_contact\" class=\"form-control\" placeholder=\"微信/QQ/邮箱\">\n                    <div class=\"input-group-append\">\n                        <span class=\"input-group-text\"><i class=\"nc-icon nc-chat-33\" aria-hidden=\"true\"></i></span>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                <div class=\"input-group\">\n                    <button class=\"btn btn-primary btn-round\" id=\"submit_msg\">\n                        <i class=\"fa fa-heart\"></i>提 交\n                    </button>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-md-12 mb-2\">\n                <div class=\"media-area\">\n                    <h3 class=\"mt-0\" id=\"msg_record\">留言条数·{{$result_list->total()}}</h3>\n                    <input type=\"hidden\" name=\"msg_total\" value=\"{{$result_list->total()}}\">\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12 ml-auto\">\n                <div class=\"card-group\" id=\"msg_board\">\n                    @foreach($result_list as $k => $v)\n                        <div class=\"card\" data-background=\"color\" data-color=\"{{$bg_arr[$k]}}\">\n                                <div class=\"card-body\">\n                                    <div class=\"author\">\n                                        <a href=\"{{$v->msg_blog_link}}\" target=\"_blank\">\n                                            <img src=\"{{asset(__STATIC_HOME__)}}/assets/img/qqhead.png\" alt=\"...\"\n                                                 class=\"avatar img-raised\">\n                                            <span>\n                                            {{$v->msg_blog_name}}\n                                            </span>\n                                        </a>\n                                    </div>\n                                    <span class=\"category-social pull-right\">\n                                        <i class=\"fa fa-quote-right\"></i>\n                                    </span>\n                                    <div class=\"clearfix\"></div>\n                                    <p class=\"card-description\">\n                                        “{{$v->msg_content}}”\n                                    </p>\n                                </div>\n                            </div>\n                    @endforeach\n                </div>\n            </div>\n        </div>\n        <div class=\"row mt-2\">\n            <div class=\"col-sm-12\">\n                <div class=\"pagination-area\">\n                    {{$result_list->onEachSide(1)->links('vendor.pagination.default')}}\n                </div>\n            </div>\n        </div>\n    </div>\n    <script>\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n\n        $(\"#submit_msg\").click(function(){\n            var msg_content = $(\"#msg_content\").val();\n            var msg_blog_name = $(\"input[name='msg_blog_name']\").val();\n            var msg_blog_link = $(\"input[name='msg_blog_link']\").val();\n            var msg_blog_contact = $(\"input[name='msg_blog_contact']\").val();\n            var foreign_id = 0;\n            var url = \"{{url('article_msg')}}\";\n            $.ajax({\n                url: url,\n                dataType: \"json\",\n                data: {msg_content: msg_content,msg_blog_name:msg_blog_name,msg_blog_link:msg_blog_link,msg_blog_contact:msg_blog_contact,foreign_id:foreign_id,msg_type:3},\n                type: \"post\",\n                beforeSend: function () {\n                    var index = layer.load(1, {\n                        shade: [0.1, '#fff'] //0.1透明度的白色背景\n                    });\n                },\n                success: function (data) {\n                    layer.closeAll();\n                    layer.msg(data.msg);\n                    var msg_div = data.result;\n                    append_msg_content(msg_div);\n                },\n                error: function (data) {\n                    layer.closeAll();\n                    if(data.responseJSON.errors){\n                        var get_name = ['msg_content','msg_blog_name','msg_blog_link','msg_blog_contact'];\n                        var lenght = get_name.length;\n                        var err_msg = data.responseJSON.errors;\n\n                        // console.log(err_msg);return false;\n                        for(var i = 0;i<lenght;i++){\n                            var err_name = get_name[i];\n                            if(err_msg[err_name]){\n                                layer.msg(err_msg[err_name][0]);\n                                break;\n                            }\n                        }\n                    }else{\n                        layer.msg('提交失败,请重试');\n                    }\n                }\n            });\n        });\n        function append_msg_content(msg_div){\n            var msg_board = $(\"#msg_board\");\n            //判断留言条数，如果小于6，则追加，大于6则去除最后一个\n            console.log(msg_board.children().length);\n            if(msg_board.children().length >= 6){\n                msg_board.children(\"div:last\").remove();\n            }\n            msg_board.prepend(msg_div);\n            //留言条数增加\n            var msg_total = $(\"input[name='msg_total']\").val();\n            var total_number = parseInt(msg_total) + 1;\n            $(\"input[name='msg_total']\").val(total_number);\n            var msg_record = \"留言条数·\"+total_number;\n            $(\"#msg_record\").html(msg_record);\n        }\n    </script>\n@endsection"
  },
  {
    "path": "resources/views/home/music/index.blade.php",
    "content": "@extends('home.main')\n@section('title','歌单列表')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">谁家玉笛暗飞声，散入春风满洛城。 此夜曲中闻折柳，何人不起故园情。</p>\n                <footer class=\"blockquote-footer\">《春夜洛阳城闻笛》\n                    <cite title=\"Source Title\">李白</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>音乐列表\n                        <br>\n                        <small>日暮苍山远,天寒白屋贫。柴门闻犬吠,风雪夜归人。--《逢雪宿芙蓉山主人》(刘长卿)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            @foreach($music_result as $v)\n                <div class=\"col-sm-3\">\n                    <div class=\"card\" data-background=\"image\" style=\"background-image: url('{{asset(__STATIC_HOME__)}}/assets/img/noah-wetering.jpg')\" style=\"height: 200px;\">\n                        <div class=\"card-body\">\n                            <div style=\"height: 200px;\">\n                                <a href=\"{{url('music_details',['mid'=>$v->id])}}\">\n                                    <h5 class=\"card-title\">{{$v->music_title}}</h5>\n                                </a>\n                                <p class=\"card-description\">\n                                    {{str_limit($v->music_describe,160)}}\n                                </p>\n                            </div>\n                            <div class=\"card-footer\">\n                                <a href=\"{{url('music_details',['mid'=>$v->id])}}\" class=\"btn btn-sm btn-success btn-round\">\n                                    <i class=\"fa fa-music\" aria-hidden=\"true\"></i>播放歌单\n                                </a>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            @endforeach\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"pagination-area\">\n                    {{$music_result->onEachSide(1)->links('vendor.pagination.default')}}\n                </div>\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/music/music_details.blade.php",
    "content": "@extends('home.main')\n@section('title','歌单详情')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">锦城丝管日纷纷，半入江风半入云。此曲只应天上有，人间能得几回闻。</p>\n                <footer class=\"blockquote-footer\">《赠花卿》\n                    <cite title=\"Source Title\">杜甫</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>我的歌单\n                        <br>\n                        <small>人闲桂花落,夜静春山空。月出惊山鸟,时鸣春涧中。--《鸟鸣涧》(王维)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-3\">\n                <img class=\"card-img pl-5 pr-5\" src=\"{{processing_files($music_result->music_img)}}\" alt=\"Card image\">\n            </div>\n            <div class=\"col-sm-9\">\n                <p class=\"h3\">{{$music_result->music_title}}</p>\n                <div class=\"blog-tags pt-2\">\n                    标签:&nbsp;\n                    @php\n                        $tags = explode(',',$music_result->music_tag);\n                    @endphp\n                    @foreach($tags as $k => $tag)\n                        <span class=\"badge badge-{{$badge_arr[$k]}}\">{{$tag}}</span>\n                    @endforeach\n                </div>\n            </div>\n        </div>\n        <div class=\"row pt-3\">\n            <div class=\"col-sm-12\">\n                <h5>简介</h5>\n                {{$music_result->music_describe}}\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"pt-3\" data-example-id=\"\">\n                    <table class=\"table\">\n                        <thead>\n                        <tr>\n                            <th class=\"text-center\">#</th>\n                            <th>歌曲名称</th>\n                        </tr>\n                        </thead>\n                        <tbody>\n                            @if($music_result->music_json)\n                                @foreach($music_result->music_json as $k => $v)\n                                    <tr>\n                                        <td class=\"text-center\">{{$k+1}}</td>\n                                        <td>{{str_replace('files/','',$v)}}</td>\n                                    </tr>\n                                @endforeach\n                            @endif\n                        </tbody>\n                    </table>\n                </div>\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/photo/index.blade.php",
    "content": "@extends('home.main')\n@section('title','相册列表')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">枯藤老树昏鸦，小桥流水人家，古道西风瘦马。夕阳西下，断肠人在天涯。</p>\n                <footer class=\"blockquote-footer\">《天净沙·秋思》\n                    <cite title=\"Source Title\">马致远</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>相册列表\n                        <br>\n                        <small>折戟沉沙铁未销,自将磨洗认前朝。东风不与周郎便,铜雀春深锁二乔。--《赤壁》(唐/杜牧)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            @foreach($photo_result as $v)\n                <div class=\"col-sm-3\">\n                    <div class=\"card mb-3\">\n                        <a href=\"{{url('photo_details',['pid'=>$v->id])}}\">\n                            <div class=\"photo-img\" data-background=\"image\"\n                                 style=\"background-image: url('{{processing_files($v->photo_img)}}');\"></div>\n                            <div class=\"card-body\">\n                                <h5 class=\"card-title\">{{$v->photo_title}}</h5>\n                                <p class=\"card-text\">\n                                    <small class=\"text-muted\">更新时间：{{$v->updated_at}}</small>\n                                </p>\n                            </div>\n                        </a>\n                    </div>\n                </div>\n            @endforeach\n\n            <!--            <div class=\"col-sm-3\">-->\n            <!--                <div class=\"card mb-3\">-->\n            <!--                    <a href=\"photo_detail.html\">-->\n            <!--                        <img class=\"card-img-top\" style=\"height: 160px;\" src=\"{{asset(__STATIC_HOME__)}}/assets/img/trisomy.jpg\" alt=\"Card image cap\">-->\n            <!--                        <div class=\"card-body\">-->\n            <!--                            <h5 class=\"card-title\">九嶷山旅游</h5>-->\n            <!--                            <p class=\"card-text\"><small class=\"text-muted\">发布时间：2018-02-05</small></p>-->\n            <!--                        </div>-->\n            <!--                    </a>-->\n            <!--                </div>-->\n            <!--            </div>-->\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"pagination-area\">\n                    {{$photo_result->onEachSide(1)->links('vendor.pagination.default')}}\n                </div>\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/photo/photo_details.blade.php",
    "content": "@extends('home.main')\n@section('title','相册详情')\n@section('content')\n    <!--引入图片放大的CSS-->\n    <link href=\"{{asset(__STATIC_HOME__)}}/assets/fancybox/jquery.fancybox.min.css\" rel=\"stylesheet\" />\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">独在异乡为异客，每逢佳节倍思亲。遥知兄弟登高处，遍插茱萸少一人</p>\n                <footer class=\"blockquote-footer\">《九月九日忆山东兄弟》\n                    <cite title=\"Source Title\">王维</cite>\n                </footer>\n            </blockquote>\n        </div>\n\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>{{$details_result->photo_title}}\n                        <br>\n                        <small>向晚意不适,驱车登古原。夕阳无限好,只是近黄昏。--《乐游原》(李商隐)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"row\">\n            @foreach($photo_result as $v)\n                <div class=\"col-sm-2\">\n                    <div class=\"card mb-3\" id=\"photo_group\">\n                        <a no-pjax href=\"{{processing_files($v)}}\" data-fancybox=\"gallery\" data-caption=\"{{$v}}\" data-type=\"image\">\n                            <div class=\"photo-img\" data-background=\"image\" style=\"background-image: url('{{processing_files($v)}}');\"></div>\n                        </a>\n                        <div class=\"card-body p-0 text-center\">\n                            <h5 class=\"mt-2\">{{date_conversion($details_result->updated_at)}}</h5>\n                        </div>\n                    </div>\n                </div>\n            @endforeach\n        </div>\n    </div>\n\n@endsection\n"
  },
  {
    "path": "resources/views/home/video/index.blade.php",
    "content": "@extends('home.main')\n@section('title','视频列表')\n@section('content')\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">篱落疏疏一径深，树头花落未成阴。儿童急走追黄蝶，飞入菜花无处寻。</p>\n                <footer class=\"blockquote-footer\">《宿新市徐公店》\n                    <cite title=\"Source Title\">杨万里</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>视频列表\n                        <br>\n                        <small>千山鸟飞绝，万径人踪灭。孤舟蓑笠翁，独钓寒江雪。--《江雪》(柳宗元)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-8\">\n                <div class=\"card page-carousel\">\n                    <div id=\"carouselExampleIndicators\" class=\"carousel slide\" data-ride=\"carousel\">\n                        <ol class=\"carousel-indicators\">\n                            @foreach ($recommended_video as $k=>$v)\n                            <li data-target=\"#carouselExampleIndicators\" data-slide-to=\"{{$k}}\" @if($k == 0)class=\"active\" @endif ></li>\n                            @endforeach\n                        </ol>\n                        <div class=\"carousel-inner\" role=\"listbox\">\n                            @foreach ($recommended_video as $k=>$v)\n                            <div class=\"carousel-item  @if($k == 0)active @endif > \">\n                                <img class=\"d-block img-fluid\" src=\"{{processing_files($v->video_img)}}\" alt=\"{{$v->video_title}}\">\n                                <div class=\"carousel-caption d-none d-md-block\">\n                                    <p>{{$v->video_title}}</p>\n                                </div>\n                            </div>\n                            @endforeach\n                        </div>\n                        <a class=\"left carousel-control carousel-control-prev\" href=\"#carouselExampleIndicators\" role=\"button\" data-slide=\"prev\">\n                            <span class=\"fa fa-angle-left\"></span>\n                            <span class=\"sr-only\">上一个</span>\n                        </a>\n                        <a class=\"right carousel-control carousel-control-next\" href=\"#carouselExampleIndicators\" role=\"button\" data-slide=\"next\">\n                            <span class=\"fa fa-angle-right\"></span>\n                            <span class=\"sr-only\">下一个</span>\n                        </a>\n                    </div>\n                </div>\n            </div>\n            <div class=\"col-sm-4\">\n                <p class=\"bd-lead\">精选推荐</p>\n                <div class=\"list-group\">\n                    @foreach ($recommended_video as $k=>$v)\n                        <a href=\"{{url('video_details',['vid'=>$v->id])}}\" class=\"list-group-item list-group-item-action list-group-item-light\">\n                            <span class=\"badge badge-pill badge-primary\">{{$k+1}}</span>{{$v->video_title}}\n                        </a>\n                    @endforeach\n                </div>\n            </div>\n        </div>\n        <div class=\"row mt-3\">\n            @foreach($video_result as $v)\n                <div class=\"col-sm-3\">\n                    <div class=\"card\">\n                        <div class=\"video-img\" data-background=\"image\" style=\"background-image: url('{{processing_files($v->video_img)}}');\"></div>\n                        <div class=\"card-body\">\n                            <h5 class=\"card-title\">{{$v->video_title}}</h5>\n                            <hr>\n                            <div class=\"card-footer text-center\">\n                                <a href=\"{{url('video_details',['vid'=>$v->id])}}\" class=\"btn btn-sm btn-success btn-round\">\n                                    <i class=\"far fa-play-circle\" aria-hidden=\"true\"></i>\n                                    播放视频\n                                </a>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            @endforeach\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"pagination-area\">\n                    {{$video_result->onEachSide(1)->links('vendor.pagination.default')}}\n                </div>\n            </div>\n        </div>\n    </div>\n@endsection"
  },
  {
    "path": "resources/views/home/video/video_details.blade.php",
    "content": "@extends('home.main')\n@section('title','视频详情')\n@section('content')\n    <!-- Dplay 视频播放插件-->\n    <link rel=\"stylesheet\" href=\"{{asset(__STATIC_HOME__)}}/assets/dplay/DPlayer.min.css\">\n    <div class=\"container pt-5\">\n        <div class=\"title\">\n            <blockquote class=\"blockquote text-right\">\n                <p class=\"mb-0\">草长莺飞二月天，拂堤杨柳醉春烟。儿童散学归来早，忙趁东风放纸鸢。</p>\n                <footer class=\"blockquote-footer\">《村居》\n                    <cite title=\"Source Title\">高鼎</cite>\n                </footer>\n            </blockquote>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-12\">\n                <div class=\"title\">\n                    <h3>视频详情\n                        <br>\n                        <small>红豆生南国,春来发几枝？愿君多采撷,此物最相思。--《相思》(王维)</small>\n                    </h3>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9 mb-2\">\n                <div id=\"dplayer\"></div>\n            </div>\n            <div class=\"col-sm-3\">\n                <h5>{{$video_result->video_title}}</h5>\n                <div class=\"col-sm-12 m-2\">\n                    @php\n                        $tags = explode(',',$video_result->video_tag);\n                    @endphp\n                    @foreach($tags as $k => $tag)\n                        <label class=\"badge badge-pill badge-{{$badge_arr[$k]}}\">{{$tag}}</label>\n                    @endforeach\n                </div>\n                <blockquote class=\"blockquote text-left\">\n                    <p class=\"mb-0\">{{$video_result->video_describe}}</p>\n                    <footer class=\"blockquote-footer text-right\">{{date_conversion($video_result->created_at)}}</footer>\n                </blockquote>\n\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9\">\n                <div class=\"form-group mt-3\">\n                    <label for=\"exampleFormControlTextarea1\">给我留言</label>\n                    <textarea class=\"form-control textarea-limited\" id=\"msg_content\" placeholder=\"读书不觉已春深，一寸光阴一寸金。\" rows=\"3\" maxlength=\"150\"></textarea>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9\">\n                <div class=\"row\">\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_name\" class=\"form-control\" placeholder=\"博客名称\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-paper\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_link\" class=\"form-control\" placeholder=\"博客网址\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-planet\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <input type=\"text\" name=\"msg_blog_contact\" class=\"form-control\" placeholder=\"微信/QQ/邮箱\">\n                            <div class=\"input-group-append\">\n                                <span class=\"input-group-text\"><i class=\"nc-icon nc-chat-33\" aria-hidden=\"true\"></i></span>\n                            </div>\n                        </div>\n                    </div>\n                    <div class=\"col-sm-3\" style=\"margin-bottom: 5px;\">\n                        <div class=\"input-group\">\n                            <button class=\"btn btn-primary btn-round\" id=\"submit_msg\">\n                                <i class=\"fa fa-heart\"></i>提 交\n                            </button>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-md-12 mb-2\">\n                <div class=\"media-area\">\n                    <h3 class=\"mt-0\" id=\"msg_record\">留言条数·{{$video_message->total()}}</h3>\n                    <input type=\"hidden\" name=\"msg_total\" value=\"{{$video_message->total()}}\">\n                </div>\n            </div>\n        </div>\n        <div class=\"row\">\n            <div class=\"col-sm-9\" id=\"msg_board\">\n                @foreach($video_message as $k => $v)\n                    <div class=\"col-sm-12 ml-auto\">\n                        <div class=\"card\" data-background=\"color\" data-color=\"{{$bg_arr[$k]}}\">\n                            <div class=\"card-body\">\n                                <div class=\"author\">\n                                    <a href=\"{{$v->msg_blog_link}}\" target=\"_blank\">\n                                        <img src=\"{{asset(__STATIC_HOME__)}}/assets/img/qqhead.png\" alt=\"...\" class=\"avatar img-raised\">\n                                        <span>{{$v->msg_blog_name}}</span>\n                                    </a>\n                                </div>\n                                <span class=\"category-social pull-right\">\n                                            <i class=\"fa fa-quote-right\"></i>\n                                        </span>\n                                <div class=\"clearfix\"></div>\n                                <p class=\"card-description\">“{{$v->msg_content}}”</p>\n                            </div>\n                        </div>\n                    </div>\n                @endforeach\n            </div>\n            <div class=\"col-sm-9\">\n                <div class=\"pagination-area mt-3\">\n                    {{$video_message->onEachSide(1)->links('vendor.pagination.default')}}\n                </div>\n            </div>\n        </div>\n    </div>\n    <input type=\"hidden\" name=\"video_url\" value=\"{{asset('storage/app/public/'.str_replace('_','/',$video_result->video_link))}}\">\n    <script>\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n        $(function () {\n            dplay();\n        });\n        function dplay() {\n            var video_url = $(\"input[name='video_url']\").val();\n            const dp = new DPlayer({\n                container: document.getElementById('dplayer'),\n                video: {\n                    url: video_url\n                },\n            });\n            //绑定播放事件\n            dp.on('play', function() {\n\n            });\n        }\n\n        $(\"#submit_msg\").click(function(){\n            var msg_content = $(\"#msg_content\").val();\n            var msg_blog_name = $(\"input[name='msg_blog_name']\").val();\n            var msg_blog_link = $(\"input[name='msg_blog_link']\").val();\n            var msg_blog_contact = $(\"input[name='msg_blog_contact']\").val();\n            var foreign_id = \"{{$video_result->id}}\";\n            var url = \"{{url('article_msg')}}\";\n            $.ajax({\n                url: url,\n                dataType: \"json\",\n                data: {msg_content: msg_content,msg_blog_name:msg_blog_name,msg_blog_link:msg_blog_link,msg_blog_contact:msg_blog_contact,foreign_id:foreign_id,msg_type:2},\n                type: \"post\",\n                beforeSend: function () {\n                    var index = layer.load(1, {\n                        shade: [0.1, '#fff'] //0.1透明度的白色背景\n                    });\n                },\n                success: function (data) {\n                    layer.closeAll();\n                    layer.msg(data.msg);\n                    var msg_div = data.result;\n                    append_msg_content(msg_div);\n                },\n                error: function (data) {\n                    layer.closeAll();\n                    if(data.responseJSON.errors){\n                        var get_name = ['msg_content','msg_blog_name','msg_blog_link','msg_blog_contact'];\n                        var lenght = get_name.length;\n                        var err_msg = data.responseJSON.errors;\n\n                        // console.log(err_msg);return false;\n                        for(var i = 0;i<lenght;i++){\n                            var err_name = get_name[i];\n                            if(err_msg[err_name]){\n                                layer.msg(err_msg[err_name][0]);\n                                break;\n                            }\n                        }\n                    }else{\n                        layer.msg('提交失败,请重试');\n                    }\n                }\n            });\n        });\n\n        function append_msg_content(msg_div){\n            var msg_board = $(\"#msg_board\");\n            msg_board.prepend(msg_div);\n            //留言条数增加\n            var msg_total = $(\"input[name='msg_total']\").val();\n            var total_number = parseInt(msg_total) + 1;\n            $(\"input[name='msg_total']\").val(total_number);\n            var msg_record = \"留言条数·\"+total_number;\n            $(\"#msg_record\").html(msg_record);\n        }\n    </script>\n@endsection\n"
  },
  {
    "path": "resources/views/mail/index.blade.php",
    "content": "<!doctype html>\n<html lang=\"zh-CN\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n</head>\n<body>\n{{$configs['base.website_title']}}最新文章更新：<a href=\"{{$url}}\" target=\"_blank\">{{$title}}</a>\n</body>\n</html>"
  },
  {
    "path": "resources/views/vendor/pagination/bootstrap-4.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"page-item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.previous')\">\n                <span class=\"page-link\" aria-hidden=\"true\">&lsaquo;</span>\n            </li>\n        @else\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\" aria-label=\"@lang('pagination.previous')\">&lsaquo;</a>\n            </li>\n        @endif\n\n        {{-- Pagination Elements --}}\n        @foreach ($elements as $element)\n            {{-- \"Three Dots\" Separator --}}\n            @if (is_string($element))\n                <li class=\"page-item disabled\" aria-disabled=\"true\"><span class=\"page-link\">{{ $element }}</span></li>\n            @endif\n\n            {{-- Array Of Links --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <li class=\"page-item active\" aria-current=\"page\"><span class=\"page-link\">{{ $page }}</span></li>\n                    @else\n                        <li class=\"page-item\"><a class=\"page-link\" href=\"{{ $url }}\">{{ $page }}</a></li>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\" aria-label=\"@lang('pagination.next')\">&rsaquo;</a>\n            </li>\n        @else\n            <li class=\"page-item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.next')\">\n                <span class=\"page-link\" aria-hidden=\"true\">&rsaquo;</span>\n            </li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "resources/views/vendor/pagination/default.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination pagination-primary pagination-no-border justify-content-center\">\n        {{-- 上一页链接 --}}\n        {{--@if ($paginator->onFirstPage())--}}\n            {{--<li class=\"page-item\">--}}\n                {{--<a href=\"javascript:void(0);\" class=\"page-link\"><i class=\"fa fa-angle-double-left\" aria-hidden=\"true\"></i></a>--}}\n            {{--</li>--}}\n        {{--@else--}}\n            {{--<li class=\"page-item\">--}}\n                {{--<a href=\"{{ $paginator->previousPageUrl() }}\" class=\"page-link\"><i class=\"fa fa-angle-double-left\" aria-hidden=\"true\"></i></a>--}}\n            {{--</li>--}}\n        {{--@endif--}}\n\n        {{-- 分页的元素 --}}\n        @foreach ($elements as $element)\n            {{-- 分页中间的省略号 --}}\n            {{--@if (is_string($element))--}}\n                {{--<li class=\"page-item\">--}}\n                    {{--<a href=\"javascript:void(0);\" class=\"page-link\">{{ $element }}</a>--}}\n                {{--</li>--}}\n            {{--@endif--}}\n\n            {{-- 数组的链接 --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <li class=\"page-item active\">\n                            <a href=\"javascript:void(0);\" class=\"page-link\">{{ $page }}</a>\n                        </li>\n                    @else\n                        <li class=\"page-item\">\n                            <a href=\"{{ $url }}\" class=\"page-link\">{{ $page }}</a>\n                        </li>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        {{--@if ($paginator->hasMorePages())--}}\n            {{--<li class=\"page-item\">--}}\n                {{--<a href=\"{{ $paginator->nextPageUrl() }}\" class=\"page-link\"><i class=\"fa fa-angle-double-right\" aria-hidden=\"true\"></i></a>--}}\n            {{--</li>--}}\n        {{--@else--}}\n            {{--<li class=\"page-item\">--}}\n                {{--<a href=\"javascript:void(0);\" class=\"page-link\"><i class=\"fa fa-angle-double-right\" aria-hidden=\"true\"></i></a>--}}\n            {{--</li>--}}\n        {{--@endif--}}\n    </ul>\n@endif\n"
  },
  {
    "path": "resources/views/vendor/pagination/semantic-ui.blade.php",
    "content": "@if ($paginator->hasPages())\n    <div class=\"ui pagination menu\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <a class=\"icon item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.previous')\"> <i class=\"left chevron icon\"></i> </a>\n        @else\n            <a class=\"icon item\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\" aria-label=\"@lang('pagination.previous')\"> <i class=\"left chevron icon\"></i> </a>\n        @endif\n\n        {{-- Pagination Elements --}}\n        @foreach ($elements as $element)\n            {{-- \"Three Dots\" Separator --}}\n            @if (is_string($element))\n                <a class=\"icon item disabled\" aria-disabled=\"true\">{{ $element }}</a>\n            @endif\n\n            {{-- Array Of Links --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <a class=\"item active\" href=\"{{ $url }}\" aria-current=\"page\">{{ $page }}</a>\n                    @else\n                        <a class=\"item\" href=\"{{ $url }}\">{{ $page }}</a>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <a class=\"icon item\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\" aria-label=\"@lang('pagination.next')\"> <i class=\"right chevron icon\"></i> </a>\n        @else\n            <a class=\"icon item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.next')\"> <i class=\"right chevron icon\"></i> </a>\n        @endif\n    </div>\n@endif\n"
  },
  {
    "path": "resources/views/vendor/pagination/simple-bootstrap-4.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"page-item disabled\" aria-disabled=\"true\">\n                <span class=\"page-link\">@lang('pagination.previous')</span>\n            </li>\n        @else\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\">@lang('pagination.previous')</a>\n            </li>\n        @endif\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\">@lang('pagination.next')</a>\n            </li>\n        @else\n            <li class=\"page-item disabled\" aria-disabled=\"true\">\n                <span class=\"page-link\">@lang('pagination.next')</span>\n            </li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "resources/views/vendor/pagination/simple-default.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"disabled\" aria-disabled=\"true\"><span>@lang('pagination.previous')</span></li>\n        @else\n            <li><a href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\">@lang('pagination.previous')</a></li>\n        @endif\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li><a href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\">@lang('pagination.next')</a></li>\n        @else\n            <li class=\"disabled\" aria-disabled=\"true\"><span>@lang('pagination.next')</span></li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "resources/views/welcome.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"{{ str_replace('_', '-', app()->getLocale()) }}\">\n    <head>\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n        <title>Laravel</title>\n\n        <!-- Fonts -->\n        <link href=\"https://fonts.googleapis.com/css?family=Nunito:200,600\" rel=\"stylesheet\">\n\n        <!-- Styles -->\n        <style>\n            html, body {\n                background-color: #fff;\n                color: #636b6f;\n                font-family: 'Nunito', sans-serif;\n                font-weight: 200;\n                height: 100vh;\n                margin: 0;\n            }\n\n            .full-height {\n                height: 100vh;\n            }\n\n            .flex-center {\n                align-items: center;\n                display: flex;\n                justify-content: center;\n            }\n\n            .position-ref {\n                position: relative;\n            }\n\n            .top-right {\n                position: absolute;\n                right: 10px;\n                top: 18px;\n            }\n\n            .content {\n                text-align: center;\n            }\n\n            .title {\n                font-size: 84px;\n            }\n\n            .links > a {\n                color: #636b6f;\n                padding: 0 25px;\n                font-size: 13px;\n                font-weight: 600;\n                letter-spacing: .1rem;\n                text-decoration: none;\n                text-transform: uppercase;\n            }\n\n            .m-b-md {\n                margin-bottom: 30px;\n            }\n        </style>\n    </head>\n    <body>\n        <div class=\"flex-center position-ref full-height\">\n            @if (Route::has('login'))\n                <div class=\"top-right links\">\n                    @auth\n                        <a href=\"{{ url('/home') }}\">Home</a>\n                    @else\n                        <a href=\"{{ route('login') }}\">Login</a>\n\n                        @if (Route::has('register'))\n                            <a href=\"{{ route('register') }}\">Register</a>\n                        @endif\n                    @endauth\n                </div>\n            @endif\n\n            <div class=\"content\">\n                <div class=\"title m-b-md\">\n                    Laravel\n                </div>\n\n                <div class=\"links\">\n                    <a href=\"https://laravel.com/docs\">Docs</a>\n                    <a href=\"https://laracasts.com\">Laracasts</a>\n                    <a href=\"https://laravel-news.com\">News</a>\n                    <a href=\"https://blog.laravel.com\">Blog</a>\n                    <a href=\"https://nova.laravel.com\">Nova</a>\n                    <a href=\"https://forge.laravel.com\">Forge</a>\n                    <a href=\"https://github.com/laravel/laravel\">GitHub</a>\n                </div>\n            </div>\n        </div>\n    </body>\n</html>\n"
  },
  {
    "path": "routes/api.php",
    "content": "<?php\n\nuse Illuminate\\Http\\Request;\n\n/*\n|--------------------------------------------------------------------------\n| API Routes\n|--------------------------------------------------------------------------\n|\n| Here is where you can register API routes for your application. These\n| routes are loaded by the RouteServiceProvider within a group which\n| is assigned the \"api\" middleware group. Enjoy building your API!\n|\n*/\n\nRoute::middleware('auth:api')->get('/user', function (Request $request) {\n    return $request->user();\n});\n"
  },
  {
    "path": "routes/channels.php",
    "content": "<?php\n\n/*\n|--------------------------------------------------------------------------\n| Broadcast Channels\n|--------------------------------------------------------------------------\n|\n| Here you may register all of the event broadcasting channels that your\n| application supports. The given channel authorization callbacks are\n| used to check if an authenticated user can listen to the channel.\n|\n*/\n\nBroadcast::channel('App.User.{id}', function ($user, $id) {\n    return (int) $user->id === (int) $id;\n});\n"
  },
  {
    "path": "routes/console.php",
    "content": "<?php\n\nuse Illuminate\\Foundation\\Inspiring;\n\n/*\n|--------------------------------------------------------------------------\n| Console Routes\n|--------------------------------------------------------------------------\n|\n| This file is where you may define all of your Closure based console\n| commands. Each Closure is bound to a command instance allowing a\n| simple approach to interacting with each command's IO methods.\n|\n*/\n\nArtisan::command('inspire', function () {\n    $this->comment(Inspiring::quote());\n})->describe('Display an inspiring quote');\n"
  },
  {
    "path": "routes/web.php",
    "content": "<?php\n\n/*\n|--------------------------------------------------------------------------\n| Web Routes\n|--------------------------------------------------------------------------\n|\n| Here is where you can register web routes for your application. These\n| routes are loaded by the RouteServiceProvider within a group which\n| contains the \"web\" middleware group. Now create something great!\n|\n*/\n//配置网站前台路由规则\nRoute::middleware(['laravel_pjax'])->name('home.')->group(function (){\n    Route::get('/','Home\\IndexController@index')->name('index');\n    Route::match(['get','post'],'article/{nav_id?}','Home\\ArticleController@index')->name('article');\n    Route::get('about','Home\\AboutController@index')->name('about');\n    Route::get('friends','Home\\FriendsController@index')->name('friends');\n    Route::get('article_details/{aid}','Home\\ArticleDetailController@index')->name('article_details');\n    Route::get('photo/{nav_id?}','Home\\PhotoController@index')->name('photo');\n    Route::get('photo_details/{pid}','Home\\PhotoController@photo_details')->name('photo_details');\n    Route::get('music/{nav_id?}','Home\\MusicController@index')->name('music');\n    Route::get('music_details/{mid}','Home\\MusicController@music_details')->name('music_details');\n    Route::get('video/{nav_id?}','Home\\VideoController@index')->name('video');\n    Route::get('video_details/{vid}','Home\\VideoController@video_details')->name('video_details');\n    Route::get('card1/{nav_id?}','Home\\CardOneController@index')->name('card1');\n    Route::get('card2/{nav_id?}','Home\\CardTwoController@index')->name('card2');\n    Route::get('message','Home\\MessageController@index')->name('message');\n});\nRoute::name('home.')->group(function(){\n    Route::post('message_msg','Home\\MessageController@message_msg')->name('message_msg');\n    Route::post('video_msg','Home\\VideoController@video_msg')->name('video_msg');\n    Route::post('friends_store','Home\\FriendsController@store')->name('friends_store');\n    Route::post('subscribe','Home\\ArticleController@subscribe')->name('subscribe');\n    Route::post('article_msg','Home\\ArticleDetailController@article_msg')->name('article_msg');\n});\n"
  },
  {
    "path": "server.php",
    "content": "<?php\n\n/**\n * Laravel - A PHP Framework For Web Artisans\n *\n * @package  Laravel\n * @author   Taylor Otwell <taylor@laravel.com>\n */\n\n$uri = urldecode(\n    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)\n);\n\n// This file allows us to emulate Apache's \"mod_rewrite\" functionality from the\n// built-in PHP web server. This provides a convenient way to test a Laravel\n// application without having installed a \"real\" web server software here.\nif ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {\n    return false;\n}\n\nrequire_once __DIR__.'/public/index.php';\n"
  },
  {
    "path": "sql/qqphp.sql",
    "content": "-- phpMyAdmin SQL Dump\n-- version 5.0.2\n-- https://www.phpmyadmin.net/\n--\n-- 主机： localhost\n-- 生成日期： 2020-09-09 14:51:41\n-- 服务器版本： 8.0.21\n-- PHP 版本： 7.4.10\n\nSET SQL_MODE = \"NO_AUTO_VALUE_ON_ZERO\";\nSTART TRANSACTION;\nSET time_zone = \"+00:00\";\n\n\n/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;\n/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n/*!40101 SET NAMES utf8mb4 */;\n\n--\n-- 数据库： `qqphp`\n--\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_config`\n--\n\nCREATE TABLE `admin_config` (\n  `id` int UNSIGNED NOT NULL,\n  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_config`\n--\n\nINSERT INTO `admin_config` (`id`, `name`, `value`, `description`, `created_at`, `updated_at`) VALUES\n(1, '__configx__', 'do not delete', '{\\\"base.website_title\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":null,\\\"name\\\":\\\"\\\\u7ad9\\\\u70b9\\\\u6807\\\\u9898\\\",\\\"order\\\":15},\\\"base.website_switch\\\":{\\\"options\\\":[],\\\"element\\\":\\\"yes_or_no\\\",\\\"help\\\":\\\"\\\\u7ad9\\\\u70b9\\\\u5173\\\\u95ed\\\\u540e\\\\u5c06\\\\u4e0d\\\\u80fd\\\\u8bbf\\\\u95ee\\\\uff0c\\\\u540e\\\\u53f0\\\\u53ef\\\\u6b63\\\\u5e38\\\\u767b\\\\u5f55\\\",\\\"name\\\":\\\"\\\\u7ad9\\\\u70b9\\\\u5f00\\\\u5173\\\",\\\"order\\\":5},\\\"base.website_keyword\\\":{\\\"options\\\":[],\\\"element\\\":\\\"tags\\\",\\\"help\\\":\\\"\\\\u7f51\\\\u7ad9\\\\u5173\\\\u952e\\\\u8bcd\\\\u5c31\\\\u662f\\\\u4e00\\\\u4e2a\\\\u7f51\\\\u7ad9\\\\u7ed9\\\\u9996\\\\u9875\\\\u8bbe\\\\u5b9a\\\\u7684\\\\u4ee5\\\\u4fbf\\\\u7528\\\\u6237\\\\u901a\\\\u8fc7\\\\u641c\\\\u7d22\\\\u5f15\\\\u64ce\\\\u80fd\\\\u641c\\\\u5230\\\\u672c\\\\u7f51\\\\u7ad9\\\\u7684\\\\u8bcd\\\\u6c47\\\",\\\"name\\\":\\\"\\\\u7ad9\\\\u70b9\\\\u5173\\\\u952e\\\\u8bcd\\\",\\\"order\\\":20},\\\"base.website_icon\\\":{\\\"options\\\":[],\\\"element\\\":\\\"file\\\",\\\"help\\\":\\\"\\\\u914d\\\\u7f6e\\\\u7ad9\\\\u70b9icon\\\\u56fe\\\\u6807\\\",\\\"name\\\":\\\"\\\\u7ad9\\\\u70b9ICON\\\",\\\"order\\\":25},\\\"base.website_desc\\\":{\\\"options\\\":[],\\\"element\\\":\\\"textarea\\\",\\\"help\\\":\\\"\\\\u901a\\\\u8fc7\\\\u63cf\\\\u8ff0\\\\u80fd\\\\u5438\\\\u5f15\\\\u7528\\\\u6237\\\\u7684\\\\u70b9\\\\u51fb\\\\uff0c\\\\u4ece\\\\u800c\\\\u6e10\\\\u63a5\\\\u63d0\\\\u5347\\\\u7f51\\\\u7ad9\\\\u7684\\\\u5173\\\\u952e\\\\u8bcd\\\\u6392\\\\u540d\\\",\\\"name\\\":\\\"\\\\u7ad9\\\\u70b9\\\\u63cf\\\\u8ff0\\\",\\\"order\\\":30},\\\"base.website_keep\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u901a\\\\u8fc7\\\\u57df\\\\u540d\\\\u53ef\\\\u67e5\\\\u8be2\\\\u8be5\\\\u57df\\\\u540d\\\\u662f\\\\u5426\\\\u6709\\\\u5907\\\\u6848\\\\u53ca\\\\u76f8\\\\u5173\\\\u7684ICP\\\\u5907\\\\u6848\\\\u8bb8\\\\u53ef\\\\u4fe1\\\\u606f\\\",\\\"name\\\":\\\"\\\\u5907\\\\u6848\\\\u4fe1\\\\u606f\\\",\\\"order\\\":35},\\\"base.new_key_here\\\":{\\\"options\\\":[],\\\"element\\\":\\\"textarea\\\",\\\"help\\\":\\\"\\\\u6dfb\\\\u52a0\\\\u7b2c\\\\u4e09\\\\u65b9\\\\u5e73\\\\u53f0\\\\u4ee3\\\\u7801,\\\\u7edf\\\\u8ba1\\\\u7f51\\\\u7ad9\\\\u8bbf\\\\u95ee\\\\u6570\\\\u636e\\\\u3002\\\",\\\"name\\\":\\\"\\\\u7f51\\\\u7ad9\\\\u7edf\\\\u8ba1\\\\u4ee3\\\\u7801\\\",\\\"order\\\":40},\\\"user_info.user_qq\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":null,\\\"name\\\":\\\"\\\\u4e2a\\\\u4ebaQQ\\\",\\\"order\\\":30},\\\"user_info.user_wechat\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":null,\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u5fae\\\\u4fe1\\\",\\\"order\\\":35},\\\"user_info.full_name\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u5173\\\\u4e8e\\\\u6211\\\\u5c55\\\\u793a\\\\u4e2a\\\\u4eba\\\\u59d3\\\\u540d\\\",\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u59d3\\\\u540d\\\",\\\"order\\\":5},\\\"user_info.portrait\\\":{\\\"options\\\":[],\\\"element\\\":\\\"image\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u5173\\\\u4e8e\\\\u6211\\\\u4e2d\\\\u5c55\\\\u793a\\\\u4e2a\\\\u4eba\\\\u5934\\\\u50cf\\\",\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u5934\\\\u50cf\\\",\\\"order\\\":10},\\\"user_info.background\\\":{\\\"options\\\":[],\\\"element\\\":\\\"image\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u5173\\\\u4e8e\\\\u6211\\\\u4e2d\\\\u5361\\\\u7247\\\\u80cc\\\\u666f\\\",\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u80cc\\\\u666f\\\",\\\"order\\\":15},\\\"user_info.occupation\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u5173\\\\u4e8e\\\\u6211\\\\u4e2d\\\\u5c55\\\\u793a\\\\u4e2a\\\\u4eba\\\\u804c\\\\u4e1a\\\",\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u804c\\\\u4e1a\\\",\\\"order\\\":20},\\\"user_info.motto\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u5173\\\\u4e8e\\\\u6211\\\\u4e2d\\\\u5c55\\\\u793a\\\\u5ea7\\\\u53f3\\\\u94ed\\\",\\\"name\\\":\\\"\\\\u4e2a\\\\u4eba\\\\u5ea7\\\\u53f3\\\\u94ed\\\",\\\"order\\\":25},\\\"base.motto\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u9875\\\\u9762\\\\u5c3e\\\\u90e8\\\\u5c55\\\\u793a\\\\u5ea7\\\\u53f3\\\\u94ed\\\",\\\"name\\\":\\\"\\\\u5c3e\\\\u90e8\\\\u5ea7\\\\u53f3\\\\u94ed\\\",\\\"order\\\":45},\\\"base.website_background\\\":{\\\"options\\\":{\\\"@name\\\":\\\"newname\\\"},\\\"element\\\":\\\"file\\\",\\\"help\\\":\\\"\\\\u7528\\\\u4e8e\\\\u535a\\\\u5ba2\\\\u5404\\\\u4e2a\\\\u5bfc\\\\u822a\\\\u7684\\\\u80cc\\\\u666f\\\",\\\"name\\\":\\\"\\\\u535a\\\\u5ba2\\\\u80cc\\\\u666f\\\",\\\"order\\\":55},\\\"base.website_open_bg\\\":{\\\"options\\\":[],\\\"element\\\":\\\"yes_or_no\\\",\\\"help\\\":null,\\\"name\\\":\\\"\\\\u542f\\\\u7528\\\\u535a\\\\u5ba2\\\\u80cc\\\\u666f\\\",\\\"order\\\":50},\\\"base.website_seo_title\\\":{\\\"options\\\":[],\\\"element\\\":\\\"normal\\\",\\\"help\\\":\\\"\\\\u6b64\\\\u6807\\\\u9898\\\\u7528\\\\u4e8eSEO\\\\uff0c\\\\u53ef\\\\u4ee5\\\\u591a\\\\u52a0\\\\u4e00\\\\u4e9b\\\\u5173\\\\u952e\\\\u8bcd\\\\u3002\\\",\\\"name\\\":\\\"SEO\\\\u7ad9\\\\u70b9\\\\u6807\\\\u9898\\\",\\\"order\\\":10}}', '2019-08-28 19:06:19', '2019-10-16 01:30:40'),\n(4, 'base.website_title', 'Laravel诗词博客', '站点标题', '2019-08-28 19:38:36', '2019-10-16 01:31:20'),\n(5, 'base.website_switch', '1', '站点开关', '2019-08-28 19:40:54', '2019-09-30 01:03:10'),\n(6, 'base.website_keyword', 'php,博客,blog,建站,Laravel', '站点关键词', '2019-08-28 19:49:08', '2019-10-16 01:43:20'),\n(7, 'base.website_icon', 'files/85f609c82abf4a56cced64e7acd9701c.ico', '站点ICON', '2019-08-28 19:50:24', '2019-10-07 23:30:03'),\n(8, 'base.website_desc', '博客，个人博客，博客模板，雷勇个人博客，雷勇PHP博客，laravel学习，laravel博客，laravel论坛，PHP论坛，PHP博客，网站模板，博客网站，个人网站，个人博客模板，个人博客网站，个人网站模板，原创网站模板，原创博客模板，个人原创模板，免费网站模板，个人博客免费模板，个人网站免费模板，个人博客模板免费下载，个人网站模板免费下载', '站点描述', '2019-08-28 19:54:15', '2019-10-16 01:43:37'),\n(9, 'base.website_keep', '备案号信息', '备案信息', '2019-08-28 19:57:55', '2020-09-09 05:38:19'),\n(10, 'base.new_key_here', '<!-- Global site tag (gtag.js) - Google Analytics -->\\r\\n<script async src=\\\"https://www.googletagmanager.com/gtag/js?id=G-K9FS7QZ0R3\\\"></script>\\r\\n<script>\\r\\n  window.dataLayer = window.dataLayer || [];\\r\\n  function gtag(){dataLayer.push(arguments);}\\r\\n  gtag(\\'js\\', new Date());\\r\\n\\r\\n  gtag(\\'config\\', \\'G-K9FS7QZ0R3\\');\\r\\n</script>', '网站统计代码', '2019-08-28 19:59:17', '2019-10-21 18:48:54'),\n(11, 'user_info.user_qq', 'QQ', '个人QQ', '2019-08-28 20:10:20', '2020-09-09 05:37:24'),\n(12, 'user_info.user_wechat', 'Wechat', '个人微信', '2019-08-28 20:10:40', '2020-09-09 05:37:24'),\n(13, 'user_info.full_name', '面壁者-罗辑', '个人姓名', '2019-09-02 01:43:58', '2020-09-09 05:37:24'),\n(14, 'user_info.portrait', 'images/3a653c7487b3e927933a8a27105a95cf.jpg', '个人头像', '2019-09-02 01:45:30', '2019-10-16 01:50:14'),\n(15, 'user_info.background', 'images/f81762bd35ab9356e799925d5c57f5b7.jpg', '个人背景', '2019-09-02 01:46:28', '2019-10-07 23:22:05'),\n(16, 'user_info.occupation', 'PHP世界上最好的语言', '个人职业', '2019-09-02 01:47:11', '2019-10-07 23:22:54'),\n(17, 'user_info.motto', '老当益壮，宁知白首之心；穷且益坚，不坠青云之志。', '个人座右铭', '2019-09-02 01:47:53', '2019-09-02 19:36:54'),\n(18, 'base.motto', '路漫漫其修远兮，吾将上下而求索', '尾部座右铭', '2019-09-02 01:56:46', '2019-09-02 01:57:21'),\n(19, 'base.website_background', 'files/567351328a4d2fc2b143df942b4373d5.jpg', '博客背景', '2019-09-30 00:24:21', '2019-10-17 04:32:53'),\n(20, 'base.website_open_bg', '0', '启用博客背景', '2019-09-30 00:58:21', '2019-10-17 04:34:42'),\n(21, 'base.website_seo_title', 'Laravel诗词博客_雷勇博客_Laravel博客_Laravel框架_PHP框架', 'SEO站点标题', '2019-10-16 01:30:25', '2019-10-16 01:44:06');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_menu`\n--\n\nCREATE TABLE `admin_menu` (\n  `id` int UNSIGNED NOT NULL,\n  `parent_id` int NOT NULL DEFAULT '0',\n  `order` int NOT NULL DEFAULT '0',\n  `title` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `uri` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `permission` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_menu`\n--\n\nINSERT INTO `admin_menu` (`id`, `parent_id`, `order`, `title`, `icon`, `uri`, `permission`, `created_at`, `updated_at`) VALUES\n(1, 0, 1, '博客总览', 'fa-bar-chart', '/', NULL, NULL, '2019-08-25 20:24:14'),\n(2, 0, 2, '后台管理', 'fa-tasks', NULL, NULL, NULL, '2019-08-25 20:24:29'),\n(3, 2, 3, '管理员', 'fa-users', 'auth/users', NULL, NULL, '2019-08-25 20:24:46'),\n(4, 2, 4, '角色管理', 'fa-user', 'auth/roles', NULL, NULL, '2019-08-25 20:25:09'),\n(5, 2, 5, '行为日志', 'fa-ban', 'auth/permissions', NULL, NULL, '2019-08-25 20:25:26'),\n(6, 2, 6, '菜单管理', 'fa-bars', 'auth/menu', NULL, NULL, '2019-08-25 20:25:36'),\n(7, 2, 7, '操作日志', 'fa-history', 'auth/logs', NULL, NULL, '2019-08-25 20:25:46'),\n(8, 0, 8, '导航管理', 'fa-circle-o', NULL, NULL, '2019-08-25 20:26:29', '2019-08-27 00:35:57'),\n(9, 8, 9, '导航列表', 'fa-align-justify', 'blog-navs', NULL, '2019-08-25 20:26:52', '2019-08-27 00:35:57'),\n(11, 17, 11, '文章管理', 'fa-file-text-o', 'blog-nav-articles', NULL, '2019-08-27 00:30:57', '2019-08-27 00:35:57'),\n(12, 17, 12, '相册管理', 'fa-photo', 'blog-nav-photos', NULL, '2019-08-27 00:31:17', '2019-08-27 00:35:57'),\n(13, 17, 13, '歌单管理', 'fa-music', 'blog-nav-musics', NULL, '2019-08-27 00:32:37', '2019-08-27 00:35:57'),\n(14, 17, 14, '视频管理', 'fa-video-camera', 'blog-nav-videos', NULL, '2019-08-27 00:32:54', '2019-08-27 03:20:38'),\n(15, 17, 15, '分享卡片一', 'fa-credit-card-alt', 'blog-nav-share-ones', NULL, '2019-08-27 00:33:49', '2019-08-27 00:35:57'),\n(16, 17, 16, '分享卡片二', 'fa-credit-card', 'blog-nav-share-twos', NULL, '2019-08-27 00:34:16', '2019-08-27 00:35:57'),\n(17, 0, 10, '内容管理', 'fa-bars', NULL, NULL, '2019-08-27 00:34:52', '2019-08-27 00:35:57'),\n(18, 0, 17, '留言管理', 'fa-envelope-o', NULL, NULL, '2019-08-28 00:31:21', '2019-08-28 22:08:35'),\n(19, 18, 18, '留言列表', 'fa-file-text-o', 'blog-messages', NULL, '2019-08-28 00:32:24', '2019-08-28 22:08:35'),\n(20, 0, 19, '友链管理', 'fa-unlink', NULL, NULL, '2019-08-28 06:53:51', '2019-08-28 22:08:35'),\n(21, 20, 20, '链接列表', 'fa-link', 'blog-friends', NULL, '2019-08-28 06:59:05', '2019-08-28 22:08:35'),\n(23, 0, 28, '网站管理', 'fa-cog', NULL, NULL, '2019-08-28 18:58:14', '2019-08-29 06:20:38'),\n(24, 23, 29, '网站配置', 'fa-hospital-o', 'configx/edit', NULL, '2019-08-28 18:59:01', '2019-08-29 06:20:38'),\n(28, 0, 21, '公告管理', 'fa-bullhorn', NULL, NULL, '2019-08-28 21:55:14', '2019-08-28 22:08:35'),\n(29, 28, 22, '公告列表', 'fa-building-o', 'blog-notices', NULL, '2019-08-28 21:55:48', '2019-08-28 22:08:35'),\n(30, 0, 23, '关于管理', 'fa-adn', NULL, NULL, '2019-08-28 22:27:23', '2019-08-29 06:20:38'),\n(31, 30, 24, '关于列表', 'fa-align-left', 'blog-abouts', NULL, '2019-08-28 22:28:04', '2019-08-29 06:20:38'),\n(32, 30, 25, '单页管理', 'fa-file-word-o', 'blog-about-articles', NULL, '2019-08-29 06:18:42', '2019-08-29 06:28:28'),\n(33, 30, 26, '卡片管理', 'fa-credit-card', 'blog-about-card-ones', NULL, '2019-08-29 06:19:49', '2019-08-29 06:20:38'),\n(34, 30, 27, '图标管理', 'fa-fonticons', 'blog-about-card-twos', NULL, '2019-08-29 06:20:18', '2019-08-29 06:20:38'),\n(35, 0, 30, '订阅管理', 'fa-calendar-check-o', NULL, NULL, '2019-09-15 05:34:16', '2019-09-24 20:07:31'),\n(36, 35, 31, '订阅列表', 'fa-bookmark', 'blog-subscribes', NULL, '2019-09-15 05:37:03', '2019-09-24 20:07:31');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_operation_log`\n--\n\nCREATE TABLE `admin_operation_log` (\n  `id` int UNSIGNED NOT NULL,\n  `user_id` int NOT NULL,\n  `path` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `ip` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `input` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_operation_log`\n--\n\nINSERT INTO `admin_operation_log` (`id`, `user_id`, `path`, `method`, `ip`, `input`, `created_at`, `updated_at`) VALUES\n(1, 1, 'admin/blog-navs', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:25:01', '2020-09-09 06:25:01'),\n(2, 1, 'admin/blog-navs', 'POST', '127.0.0.1', '{\\\"nav_pid\\\":\\\"0\\\",\\\"nav_title\\\":\\\"Linux\\\\u7b14\\\\u8bb0\\\",\\\"nav_type\\\":\\\"0\\\",\\\"nav_open\\\":\\\"on\\\",\\\"nav_sort\\\":\\\"100\\\",\\\"_token\\\":\\\"ZvvcIfJprqoSgiTgBd0xo5a7DQjGv5zzMSvmIRr3\\\",\\\"_previous_\\\":\\\"http:\\\\/\\\\/www.laravelblog.com\\\\/admin\\\\/auth\\\\/logs?page=1\\\"}', '2020-09-09 06:25:36', '2020-09-09 06:25:36'),\n(3, 1, 'admin/blog-navs', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:25:39', '2020-09-09 06:25:39'),\n(4, 1, 'admin/blog-navs/19', 'DELETE', '127.0.0.1', '{\\\"_method\\\":\\\"delete\\\",\\\"_token\\\":\\\"ZvvcIfJprqoSgiTgBd0xo5a7DQjGv5zzMSvmIRr3\\\"}', '2020-09-09 06:30:36', '2020-09-09 06:30:36'),\n(5, 1, 'admin/blog-navs', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:30:36', '2020-09-09 06:30:36'),\n(6, 1, 'admin/auth/users', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:31:39', '2020-09-09 06:31:39'),\n(7, 1, 'admin/auth/roles', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:31:41', '2020-09-09 06:31:41'),\n(8, 1, 'admin/auth/permissions', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:31:41', '2020-09-09 06:31:41'),\n(9, 1, 'admin/blog-nav-musics', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:31:46', '2020-09-09 06:31:46'),\n(10, 1, 'admin/blog-nav-musics/1/edit', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:31:50', '2020-09-09 06:31:50'),\n(11, 1, 'admin/blog-nav-musics', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:38:44', '2020-09-09 06:38:44'),\n(12, 1, 'admin/blog-nav-musics/1/edit', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:38:46', '2020-09-09 06:38:46'),\n(13, 1, 'admin/blog-nav-musics/1', 'PUT', '127.0.0.1', '{\\\"key\\\":\\\"0\\\",\\\"music_json\\\":\\\"_file_del_\\\",\\\"_file_del_\\\":null,\\\"_token\\\":\\\"ZvvcIfJprqoSgiTgBd0xo5a7DQjGv5zzMSvmIRr3\\\",\\\"_method\\\":\\\"PUT\\\"}', '2020-09-09 06:38:49', '2020-09-09 06:38:49'),\n(14, 1, 'admin/blog-nav-musics/1', 'PUT', '127.0.0.1', '{\\\"nav_id\\\":\\\"7\\\",\\\"music_title\\\":\\\"\\\\u6211\\\\u7684\\\\u6b4c\\\\u5355\\\",\\\"music_tag\\\":[\\\"\\\\u6d41\\\\u884c\\\",\\\"\\\\u53e4\\\\u98ce\\\",\\\"\\\\u70ed\\\\u95e8\\\",null],\\\"music_describe\\\":\\\"\\\\u5e38\\\\u5e38\\\\u5728\\\\u591c\\\\u6df1\\\\u4eba\\\\u9759\\\\u4e4b\\\\u65f6\\\\u4ef0\\\\u671b\\\\u661f\\\\u7a7a\\\\uff0c\\\\r\\\\n\\\\u770b\\\\u8fd9\\\\u4e00\\\\u7247\\\\u95ea\\\\u70c1\\\\u7684\\\\u6d77\\\\u6d0b\\\\uff0c\\\\r\\\\n\\\\u4e0d\\\\u7981\\\\u60f3\\\\uff0c\\\\u5934\\\\u4e0a\\\\u662f\\\\u6570\\\\u4ee5\\\\u4ebf\\\\u8ba1\\\\u5b64\\\\u72ec\\\\u7684\\\\u96c6\\\\u5408\\\\u554a\\\\u3002\\\\r\\\\n\\\\u661f\\\\u661f\\\\u4eec\\\\u770b\\\\u8d77\\\\u6765\\\\u53ea\\\\u6709\\\\u4e00\\\\u6307\\\\u4e4b\\\\u9694\\\\uff0c\\\\u4e8b\\\\u5b9e\\\\u4e0a\\\\u5374\\\\u6bd4\\\\u4eba\\\\u4e16\\\\u95f4\\\\u6240\\\\u6709\\\\u7684\\\\u8ddd\\\\u79bb\\\\u90fd\\\\u9065\\\\u4e0d\\\\u53ef\\\\u53ca\\\\uff0c\\\\r\\\\n\\\\u5b83\\\\u4eec\\\\u4f1a\\\\u96be\\\\u8fc7\\\\u5417\\\\uff1f\\\\r\\\\n\\\\u5e94\\\\u8be5\\\\u4f1a\\\\u7684\\\\u5427\\\\uff0c\\\\u81f3\\\\u5c11\\\\u5b83\\\\u4eec\\\\u4e00\\\\u65e6\\\\u76f8\\\\u9047\\\\u4fbf\\\\u662f\\\\u6bc1\\\\u706d\\\\uff0c\\\\r\\\\n\\\\u5982\\\\u540c\\\\u6211\\\\u548c\\\\u4f60\\\\u7684\\\\u76f8\\\\u9047\\\\uff0c\\\\u4ece\\\\u4e00\\\\u5f00\\\\u59cb\\\\u5c31\\\\u6ce8\\\\u5b9a\\\\u662f\\\\u573a\\\\u6d69\\\\u52ab\\\\uff0c\\\\r\\\\n\\\\u4e0d\\\\u53ef\\\\u907f\\\\u514d\\\\u5730\\\\u8d70\\\\u5411\\\\u5206\\\\u522b\\\\u3002\\\",\\\"music_click\\\":\\\"7\\\",\\\"music_sort\\\":\\\"100\\\",\\\"music_show\\\":\\\"on\\\",\\\"music_play\\\":\\\"on\\\",\\\"_file_sort_\\\":{\\\"music_json\\\":null},\\\"_token\\\":\\\"ZvvcIfJprqoSgiTgBd0xo5a7DQjGv5zzMSvmIRr3\\\",\\\"_method\\\":\\\"PUT\\\",\\\"_previous_\\\":\\\"http:\\\\/\\\\/www.laravelblog.com\\\\/admin\\\\/blog-nav-musics\\\"}', '2020-09-09 06:38:54', '2020-09-09 06:38:54'),\n(15, 1, 'admin/blog-nav-musics', 'GET', '127.0.0.1', '[]', '2020-09-09 06:38:54', '2020-09-09 06:38:54'),\n(16, 1, 'admin/blog-nav-musics/1/edit', 'GET', '127.0.0.1', '{\\\"_pjax\\\":\\\"#pjax-container\\\"}', '2020-09-09 06:38:57', '2020-09-09 06:38:57');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_permissions`\n--\n\nCREATE TABLE `admin_permissions` (\n  `id` int UNSIGNED NOT NULL,\n  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `slug` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `http_method` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `http_path` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_permissions`\n--\n\nINSERT INTO `admin_permissions` (`id`, `name`, `slug`, `http_method`, `http_path`, `created_at`, `updated_at`) VALUES\n(1, 'All permission', '*', '', '*', NULL, NULL),\n(2, 'Dashboard', 'dashboard', 'GET', '/', NULL, NULL),\n(3, 'Login', 'auth.login', '', '/auth/login\\r\\n/auth/logout', NULL, NULL),\n(4, 'User setting', 'auth.setting', 'GET,PUT', '/auth/setting', NULL, NULL),\n(5, 'Auth management', 'auth.management', '', '/auth/roles\\r\\n/auth/permissions\\r\\n/auth/menu\\r\\n/auth/logs', NULL, NULL),\n(6, 'Admin Configx', 'ext.configx', NULL, '/configx/*', '2019-08-28 18:56:32', '2019-08-28 18:56:32'),\n(7, 'Admin Config', 'ext.config', NULL, '/config*', '2019-08-28 19:05:14', '2019-08-28 19:05:14'),\n(10, 'Redis Manager', 'ext.redis-manager', NULL, '/redis*', '2019-10-07 00:26:10', '2019-10-07 00:26:10');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_roles`\n--\n\nCREATE TABLE `admin_roles` (\n  `id` int UNSIGNED NOT NULL,\n  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `slug` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_roles`\n--\n\nINSERT INTO `admin_roles` (`id`, `name`, `slug`, `created_at`, `updated_at`) VALUES\n(1, 'Administrator', 'administrator', '2019-08-25 20:18:57', '2019-08-25 20:18:57');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_role_menu`\n--\n\nCREATE TABLE `admin_role_menu` (\n  `role_id` int NOT NULL,\n  `menu_id` int NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_role_menu`\n--\n\nINSERT INTO `admin_role_menu` (`role_id`, `menu_id`, `created_at`, `updated_at`) VALUES\n(1, 2, NULL, NULL);\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_role_permissions`\n--\n\nCREATE TABLE `admin_role_permissions` (\n  `role_id` int NOT NULL,\n  `permission_id` int NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_role_permissions`\n--\n\nINSERT INTO `admin_role_permissions` (`role_id`, `permission_id`, `created_at`, `updated_at`) VALUES\n(1, 1, NULL, NULL);\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_role_users`\n--\n\nCREATE TABLE `admin_role_users` (\n  `role_id` int NOT NULL,\n  `user_id` int NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_role_users`\n--\n\nINSERT INTO `admin_role_users` (`role_id`, `user_id`, `created_at`, `updated_at`) VALUES\n(1, 1, NULL, NULL);\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_users`\n--\n\nCREATE TABLE `admin_users` (\n  `id` int UNSIGNED NOT NULL,\n  `username` varchar(190) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `password` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `avatar` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `remember_token` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `admin_users`\n--\n\nINSERT INTO `admin_users` (`id`, `username`, `password`, `name`, `avatar`, `remember_token`, `created_at`, `updated_at`) VALUES\n(1, 'admin', '$2y$10$WXgjWZV1EuEtTiMWyzakLu2Sf5C3JjbWJtTiqXu/B98FHiQxqcr72', 'Administrator', NULL, 'rce6OKq1dYK2j8zYGwSj6exYTdx9e7QLadn5WwsU0DHZpJ9ZSc6i6RpTgF4Q', '2019-08-25 20:18:57', '2019-10-21 22:06:12');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `admin_user_permissions`\n--\n\nCREATE TABLE `admin_user_permissions` (\n  `user_id` int NOT NULL,\n  `permission_id` int NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_about`\n--\n\nCREATE TABLE `blog_about` (\n  `id` bigint UNSIGNED NOT NULL,\n  `about_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关于标题',\n  `about_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '关于描述',\n  `about_type` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关于类型【1单页2卡片页3图标页】',\n  `about_sort` int NOT NULL DEFAULT '100' COMMENT '关于排序',\n  `about_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_about`\n--\n\nINSERT INTO `blog_about` (`id`, `about_title`, `about_describe`, `about_type`, `about_sort`, `about_show`, `created_at`, `updated_at`) VALUES\n(1, '自我介绍', 'GitHub 是一个面向开源及私有软件项目的托管平台，因为只支持 Git 作为唯一的版本库格式进行托管，故名 GitHub。\\r\\nGitHub 于 2008 年 4 月 10 日正式上线，除了 Git 代码仓库托管及基本的 Web 管理界面以外，还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱（报表）、代码片段分享（Gist）等功能。目前，其注册用户已经超过 350 万，托管版本数量也是非常之多，其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。', '1', 100, 1, '2019-08-28 23:35:54', '2020-09-09 05:43:40'),\n(2, '我的技能', 'Manjaro Linux（或简称 Manjaro）是基于 Arch Linux 的 Linux 发行版，使用 Xfce 、GNOME和 KDE Plasma 作为默认桌面环境，和 Arch 一样，采用滚动更新。其目标是为 PC 提供易于使用的自由的操作系统。', '2', 100, 1, '2019-08-28 23:36:03', '2020-09-09 05:44:59'),\n(3, '我的爱好', 'Linux 内核最初只是由芬兰人林纳斯·托瓦兹（Linus Torvalds）在赫尔辛基大学上学时出于个人爱好而编写的。\\r\\n\\r\\nLinux 是一套免费使用和自由传播的类 Unix 操作系统，是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。\\r\\n\\r\\nLinux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想，是一个性能稳定的多用户网络操作系统。', '3', 100, 1, '2019-08-28 23:36:17', '2020-09-09 05:46:20');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_about_articles`\n--\n\nCREATE TABLE `blog_about_articles` (\n  `id` bigint UNSIGNED NOT NULL,\n  `articles_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '单页标题',\n  `articles_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '单页内容',\n  `article_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `article_sort` int NOT NULL DEFAULT '100' COMMENT '单页排序',\n  `notice_id` int NOT NULL DEFAULT '0' COMMENT '所属关于id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_about_card_ones`\n--\n\nCREATE TABLE `blog_about_card_ones` (\n  `id` bigint UNSIGNED NOT NULL,\n  `card_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '卡片标题',\n  `card_icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '卡片ICON',\n  `card_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '卡片描述',\n  `card_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `card_sort` int NOT NULL DEFAULT '100' COMMENT '卡片排序',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL,\n  `notice_id` int NOT NULL DEFAULT '0' COMMENT '所属关于id'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_about_card_twos`\n--\n\nCREATE TABLE `blog_about_card_twos` (\n  `id` bigint UNSIGNED NOT NULL,\n  `card_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '卡片标题',\n  `card_icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '卡片ICON',\n  `card_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `card_sort` int NOT NULL DEFAULT '100' COMMENT '卡片排序',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `card_background` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '卡片背景',\n  `updated_at` timestamp NULL DEFAULT NULL,\n  `notice_id` int NOT NULL DEFAULT '0' COMMENT '所属关于id'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_apply`\n--\n\nCREATE TABLE `blog_apply` (\n  `id` bigint UNSIGNED NOT NULL,\n  `apply_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人博客名称',\n  `apply_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人博客网址',\n  `apply_contact` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人联系方式',\n  `apply_ip` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请人IP',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_friends`\n--\n\nCREATE TABLE `blog_friends` (\n  `id` bigint UNSIGNED NOT NULL,\n  `friends_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '博客名称',\n  `friends_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '博客链接',\n  `friends_describe` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '博客描述',\n  `friends_contact` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系方式',\n  `friends_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `friends_type` tinyint NOT NULL DEFAULT '0' COMMENT '添加方式【1申请添加2后台添加】',\n  `friends_sort` int NOT NULL DEFAULT '100' COMMENT '排序',\n  `friends_recommend` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否推荐【1是2否】',\n  `friends_examine` tinyint(1) DEFAULT '2' COMMENT '审核状态【1通过2正在审核3审核失败】',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_friends`\n--\n\nINSERT INTO `blog_friends` (`id`, `friends_title`, `friends_link`, `friends_describe`, `friends_contact`, `friends_show`, `friends_type`, `friends_sort`, `friends_recommend`, `friends_examine`, `created_at`, `updated_at`) VALUES\n(1, 'Laravel诗词博客', 'https://qqphp.com', 'Laravel诗词博客-匠心编程，热爱生活。', 'https://qqphp.com', 1, 2, 999999, 2, 1, '2019-10-12 03:54:15', '2019-10-15 23:54:05');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_message`\n--\n\nCREATE TABLE `blog_message` (\n  `id` bigint UNSIGNED NOT NULL,\n  `msg_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '留言内容',\n  `msg_blog_name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '留言博客名称',\n  `msg_blog_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '留言博客链接',\n  `msg_blog_contact` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '留言联系方式',\n  `msg_ip` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '留言人ip',\n  `msg_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `msg_type` tinyint DEFAULT '0' COMMENT '留言类型【1文章2视频3留言板块】',\n  `foreign_id` int DEFAULT '0' COMMENT '所属类型主键id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_message`\n--\n\nINSERT INTO `blog_message` (`id`, `msg_content`, `msg_blog_name`, `msg_blog_link`, `msg_blog_contact`, `msg_ip`, `msg_show`, `msg_type`, `foreign_id`, `created_at`, `updated_at`) VALUES\n(1, '此词是一曲生命的哀歌，词人通过对自然永恒与人生无常的尖锐矛盾的对比，抒发了亡国后顿感生命落空的悲哀。“问君能有几多愁？恰似一江春水向东流。”词人用满江的春水来比喻满腹的愁恨，不仅显示了愁恨的悠长深远，而且显示了愁恨的汹涌翻腾，充分体现出奔腾中的感情所具有的力度和深度。全词语言明净、凝练、优美、清新，以问起，以答结，由问天、问人而到自问，通过凄楚中不无激越的音调和曲折回旋、流转自如的艺术结构，使作者沛然莫御的愁思贯穿始终，形成沁人心脾的美感效应。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:24:31', '2020-09-09 05:51:19'),\n(2, '此曲以多种景物并置，组合成一幅秋郊夕照图，让天涯游子骑一匹瘦马出现在一派凄凉的背景上，抒发了一个飘零天涯的游子在秋天思念故乡、倦于漂泊的凄苦愁楚之情。曲中“枯藤老树昏鸦”与“小桥流水人家”是两种截然不同的画面，将哀物与喜物放在一起，形成鲜明的对比，反衬“天涯”人的思归愁绪。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:24:35', '2020-09-09 05:51:35'),\n(3, '此词开篇从滚滚东流的长江着笔，随即用“浪淘尽”，把倾注不尽的大江与名高累世的历史人物联系起来，布置了一个极为广阔而悠久的空间时间背景。然后通过对月夜江上壮美景色的描绘，借对古代战场的凭吊和对风流人物才略、气度、功业的追念，曲折地表达了作者怀才不遇、功业未就、老大未成的忧愤之情，和词人关注历史和人生的旷达之心。全词雄浑苍凉，大气磅礴，笔力遒劲，境界宏阔，给人以撼魂荡魄的艺术力量，被誉为“古今绝唱”。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:24:38', '2020-09-09 05:51:43'),\n(4, '此诗以登临凤凰台时的所见所感而起兴唱叹，以寓目山河为线索，把“凤凰”的高飞与“凤凰台”的“空”，“登临”的内在精神与“埋幽径”、“成古丘”的冷落清凉；“三山”、“二水”的自然境界，与忧谗畏讥的“浮云”惆怅和不见“长安”无奈凄凉，都被恰切的语词链条紧紧地钩连在一起，构造出阔大的境界和深沉的历史感，使诗中回荡着充沛、浑厚之气。气韵高古，格调悠远，体现了李白诗歌以气夺人的艺术特色。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:24:42', '2020-09-09 05:52:20'),\n(5, '全首中属于空间的有阁、江、栋、帘、云、雨、山、浦、潭影；属于时间的有日悠悠、物换、星移、几度秋、今何在，这些词融混在一起，都环绕着一个中心──滕王阁，而发挥着众星拱月的作用。通过在空间、时间双重维度展开对滕王阁的吟咏，笔意纵横，穷形尽象，语言凝练，感慨遥深。气度高远，境界宏大，与《滕王阁序》真可谓双璧同辉，相得益彰。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:25:11', '2020-09-09 05:52:30'),\n(6, '清秋佳节，皓月银辉，朗照南湖，波平如镜，澄彻如画，使人心旷神怡，宠辱皆忘，置身清风明月、绿水清波的南湖，诗人忘怀尘世，摆脱俗务，竟然想遗世独立，羽化成仙，乘流直上，飞升青天。洞庭湖面辽阔，水天相接，遥看湖畔酒家自在白云生处。诗人说“买酒白云边”，足见湖面之壮阔。同时又与“直上天”的异想呼应，人间酒家被诗人的想象移到天上。这即景之句充满了奇情异趣，丰富了全诗的情韵。此诗即景发兴，艺术想象奇特，铸词造语独到，启人逸思。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:25:34', '2020-09-09 05:51:08'),\n(7, '此诗借游览古迹，表达了诗人对蜀汉丞相诸葛亮雄才大略、辅佐两朝、忠心报国的称颂以及对他出师未捷而身死的惋惜之情。诗中既有尊蜀正统的观念，又有才困时艰的感慨，字里行间寄寓感物思人的情怀。全篇由景到人，由寻找瞻仰到追述回顾，由感叹缅怀到泪流满襟，章法曲折宛转，自然紧凑，顿挫豪迈，几度层折。全诗所怀者大，所感者深，雄浑悲壮，沉郁顿挫，具有震撼人心的巨大力量。', '李白', 'http://www.qqphp.com/messaged', '223', '59.41.117.32', 1, 3, 0, '2019-10-07 23:25:36', '2020-09-09 05:52:57');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav`\n--\n\nCREATE TABLE `blog_nav` (\n  `id` bigint UNSIGNED NOT NULL,\n  `nav_title` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '导航名称',\n  `nav_type` int NOT NULL DEFAULT '0' COMMENT '导航类型【1文章2照片3音乐4视频5软件(分享1)6图书(分享2)】',\n  `nav_open` tinyint NOT NULL DEFAULT '1' COMMENT '导航是否启用【1启用2关闭】',\n  `nav_sort` int NOT NULL DEFAULT '100' COMMENT '导航排序',\n  `nav_pid` int NOT NULL DEFAULT '0' COMMENT '导航上级id',\n  `nav_route` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '导航前端路由',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_nav`\n--\n\nINSERT INTO `blog_nav` (`id`, `nav_title`, `nav_type`, `nav_open`, `nav_sort`, `nav_pid`, `nav_route`, `created_at`, `updated_at`) VALUES\n(1, '我的博文', 0, 1, 1, 0, '', '2019-08-26 20:14:32', '2019-09-02 19:08:53'),\n(3, 'PHP', 1, 1, 2, 1, 'article', '2019-08-26 20:33:43', '2019-09-24 20:25:32'),\n(5, '我的记录', 0, 1, 7, 0, '', '2019-08-27 00:38:41', '2019-10-08 01:03:51'),\n(6, '我的相册', 2, 1, 10, 5, 'photo', '2019-08-27 00:39:16', '2019-10-08 01:03:51'),\n(7, '我的音乐', 3, 1, 9, 5, 'music', '2019-08-27 00:39:24', '2019-10-08 01:03:51'),\n(8, '我的视频', 4, 1, 8, 5, 'video', '2019-08-27 00:39:33', '2019-10-08 01:03:51'),\n(9, '我的分享', 0, 1, 11, 0, '', '2019-08-27 00:39:48', '2019-09-24 20:36:33'),\n(10, 'Tp5扩展', 5, 1, 12, 9, 'card1', '2019-08-27 00:40:18', '2019-10-09 17:48:56'),\n(11, 'Laravel扩展', 5, 1, 13, 9, 'card1', '2019-08-27 00:40:37', '2019-10-09 17:49:04'),\n(12, '我的读书', 6, 1, 14, 9, 'card2', '2019-08-27 00:44:55', '2019-09-24 20:36:33'),\n(13, '我的电影', 6, 1, 15, 9, 'card2', '2019-08-27 00:45:07', '2019-09-24 20:36:33'),\n(15, '报错日记', 1, 1, 5, 1, 'article', '2019-10-07 22:30:13', '2019-10-15 17:56:22'),\n(16, '解决方案', 1, 1, 6, 1, 'article', '2019-10-07 22:31:32', '2019-10-08 01:03:58'),\n(17, '随想杂谈', 1, 1, 100, 1, 'article', '2019-10-15 17:57:50', '2019-10-15 17:57:50'),\n(18, '工具推荐', 5, 1, 100, 9, 'card1', '2019-10-16 00:26:55', '2019-10-16 00:26:55');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_article`\n--\n\nCREATE TABLE `blog_nav_article` (\n  `id` bigint UNSIGNED NOT NULL,\n  `article_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章标题',\n  `article_tag` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文章标签',\n  `article_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '文章描述',\n  `article_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文章内容',\n  `article_click` int NOT NULL DEFAULT '0' COMMENT '点击量',\n  `article_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `article_sort` int NOT NULL DEFAULT '100' COMMENT '文章排序',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_music`\n--\n\nCREATE TABLE `blog_nav_music` (\n  `id` bigint UNSIGNED NOT NULL,\n  `music_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌单标题',\n  `music_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌单描述',\n  `music_tag` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '歌单标签',\n  `music_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '歌单上传歌曲',\n  `music_img` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '歌单封面',\n  `music_click` int NOT NULL DEFAULT '0' COMMENT '点击量',\n  `music_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `music_play` tinyint NOT NULL DEFAULT '1' COMMENT '添加播放列表【1是2否】',\n  `music_sort` int NOT NULL DEFAULT '100' COMMENT '歌单排序',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_nav_music`\n--\n\nINSERT INTO `blog_nav_music` (`id`, `music_title`, `music_describe`, `music_tag`, `music_json`, `music_img`, `music_click`, `music_show`, `music_play`, `music_sort`, `nav_id`, `created_at`, `updated_at`) VALUES\n(1, '我的歌单', '常常在夜深人静之时仰望星空，\\r\\n看这一片闪烁的海洋，\\r\\n不禁想，头上是数以亿计孤独的集合啊。\\r\\n星星们看起来只有一指之隔，事实上却比人世间所有的距离都遥不可及，\\r\\n它们会难过吗？\\r\\n应该会的吧，至少它们一旦相遇便是毁灭，\\r\\n如同我和你的相遇，从一开始就注定是场浩劫，\\r\\n不可避免地走向分别。', '流行,古风,热门', '[\\\"files\\\\/love.mp3\\\"]', 'images/63a94b407b9266d1dd2771e3ce028592.gif', 7, 1, 1, 100, 7, '2020-09-09 05:58:02', '2020-09-09 06:38:54');\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_photo`\n--\n\nCREATE TABLE `blog_nav_photo` (\n  `id` bigint UNSIGNED NOT NULL,\n  `photo_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '相册标题',\n  `photo_img` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '相册封面',\n  `photo_tag` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '相册标签',\n  `photo_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '相册上传图片',\n  `photo_click` int NOT NULL DEFAULT '0' COMMENT '点击量',\n  `photo_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `photo_sort` int NOT NULL DEFAULT '100' COMMENT '相册排序',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_share1`\n--\n\nCREATE TABLE `blog_nav_share1` (\n  `id` bigint UNSIGNED NOT NULL,\n  `share_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享标题',\n  `share_icon` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'icon图标',\n  `share_src` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享封面',\n  `share_intro` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '描述',\n  `share_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '内容详情',\n  `share_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '访问链接',\n  `share_sort` int NOT NULL DEFAULT '100' COMMENT '排序',\n  `share_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_share2`\n--\n\nCREATE TABLE `blog_nav_share2` (\n  `id` bigint UNSIGNED NOT NULL,\n  `share_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享标题',\n  `share_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享描述',\n  `share_note` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分享副标题',\n  `share_src` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享封面',\n  `share_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分享链接',\n  `share_sort` int NOT NULL DEFAULT '100' COMMENT '排序',\n  `share_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_nav_video`\n--\n\nCREATE TABLE `blog_nav_video` (\n  `id` bigint UNSIGNED NOT NULL,\n  `video_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '视频标题',\n  `video_tag` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '视频标签',\n  `video_img` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '视频封面',\n  `video_link` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '视频路径',\n  `video_click` int NOT NULL DEFAULT '0' COMMENT '点击量',\n  `video_sort` int NOT NULL DEFAULT '100' COMMENT '视频排序',\n  `video_recommend` int NOT NULL DEFAULT '2' COMMENT '是否推荐【1是2否】',\n  `video_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `nav_id` int NOT NULL DEFAULT '0' COMMENT '所属导航id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL,\n  `video_describe` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '视频描述'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_notices`\n--\n\nCREATE TABLE `blog_notices` (\n  `id` bigint UNSIGNED NOT NULL,\n  `notice_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告标题',\n  `notice_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公告内容',\n  `notice_sort` int NOT NULL DEFAULT '100' COMMENT '公告排序',\n  `notice_show` tinyint NOT NULL DEFAULT '1' COMMENT '是否显示【1是2否】',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_subscribes`\n--\n\nCREATE TABLE `blog_subscribes` (\n  `id` bigint UNSIGNED NOT NULL,\n  `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '申请邮箱',\n  `ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '申请IP',\n  `is_pass` tinyint NOT NULL DEFAULT '1' COMMENT '审核状态【1待审核2审核通过3冻结封禁】',\n  `add_mode` tinyint NOT NULL DEFAULT '1' COMMENT '申请方式【1申请添加2后台添加】',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL,\n  `aid` int DEFAULT '0' COMMENT '文章id'\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `blog_subscribes`\n--\n\nINSERT INTO `blog_subscribes` (`id`, `email`, `ip`, `is_pass`, `add_mode`, `created_at`, `updated_at`, `aid`) VALUES\n(1, '1549684884@qq.com', NULL, 2, 2, '2019-10-08 01:19:57', '2019-10-09 19:18:24', 0);\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_tags`\n--\n\nCREATE TABLE `blog_tags` (\n  `id` bigint UNSIGNED NOT NULL,\n  `tag_content` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标签内容',\n  `tag_click` int NOT NULL DEFAULT '0' COMMENT '点击量',\n  `a_id` int NOT NULL DEFAULT '0' COMMENT '文章id',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `blog_upload_files`\n--\n\nCREATE TABLE `blog_upload_files` (\n  `id` bigint UNSIGNED NOT NULL,\n  `img_title` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名称',\n  `img_src` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件路径',\n  `img_suffix` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件后缀',\n  `img_type` int NOT NULL COMMENT '文件类型【1EditorMD编辑器文件2Simditor编辑器文件】',\n  `img_ip` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '上传ip',\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `failed_jobs`\n--\n\nCREATE TABLE `failed_jobs` (\n  `id` bigint UNSIGNED NOT NULL,\n  `connection` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `queue` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `exception` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `failed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `jobs`\n--\n\nCREATE TABLE `jobs` (\n  `id` bigint UNSIGNED NOT NULL,\n  `queue` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `attempts` tinyint UNSIGNED NOT NULL,\n  `reserved_at` int UNSIGNED DEFAULT NULL,\n  `available_at` int UNSIGNED NOT NULL,\n  `created_at` int UNSIGNED NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `migrations`\n--\n\nCREATE TABLE `migrations` (\n  `id` int UNSIGNED NOT NULL,\n  `migration` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `batch` int NOT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转存表中的数据 `migrations`\n--\n\nINSERT INTO `migrations` (`id`, `migration`, `batch`) VALUES\n(108, '2019_08_24_022201_create_blog_nav_table', 2),\n(109, '2019_08_24_025115_create_blog_nav_article_table', 2),\n(110, '2019_08_24_025134_create_blog_nav_photo_table', 2),\n(111, '2019_08_24_025151_create_blog_nav_music_table', 2),\n(112, '2019_08_24_025209_create_blog_nav_video_table', 2),\n(113, '2019_08_24_025230_create_blog_nav_share1_table', 2),\n(114, '2019_08_24_025240_create_blog_nav_share2_table', 2),\n(115, '2019_08_25_102118_create_blog_message_table', 2),\n(116, '2019_08_25_131502_create_blog_friends_table', 2),\n(117, '2019_08_26_021306_create_blog_apply_table', 2),\n(118, '2019_08_26_021945_create_blog_about_table', 2),\n(119, '2019_08_26_104822_create_blog_upload_files_table', 2),\n(120, '2017_07_17_040159_create_config_table', 3),\n(121, '2019_08_29_042857_create_blog_notices_table', 4),\n(125, '2019_08_29_140729_create_blog_about_articles_table', 5),\n(126, '2019_08_29_140755_create_blog_about_card_ones_table', 5),\n(127, '2019_08_29_140807_create_blog_about_card_twos_table', 5),\n(130, '2019_09_15_132631_create_blog_subscribes_table', 6),\n(131, '2019_09_27_084944_create_blog_tags_table', 7),\n(133, '2019_10_07_060955_create_jobs_table', 8),\n(134, '2019_10_07_071533_create_failed_jobs_table', 9);\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `password_resets`\n--\n\nCREATE TABLE `password_resets` (\n  `email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `token` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `created_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n-- --------------------------------------------------------\n\n--\n-- 表的结构 `users`\n--\n\nCREATE TABLE `users` (\n  `id` bigint UNSIGNED NOT NULL,\n  `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `email` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `email_verified_at` timestamp NULL DEFAULT NULL,\n  `password` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,\n  `remember_token` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `created_at` timestamp NULL DEFAULT NULL,\n  `updated_at` timestamp NULL DEFAULT NULL\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT;\n\n--\n-- 转储表的索引\n--\n\n--\n-- 表的索引 `admin_config`\n--\nALTER TABLE `admin_config`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD UNIQUE KEY `admin_config_name_unique` (`name`) USING BTREE;\n\n--\n-- 表的索引 `admin_menu`\n--\nALTER TABLE `admin_menu`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `admin_operation_log`\n--\nALTER TABLE `admin_operation_log`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD KEY `admin_operation_log_user_id_index` (`user_id`) USING BTREE;\n\n--\n-- 表的索引 `admin_permissions`\n--\nALTER TABLE `admin_permissions`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD UNIQUE KEY `admin_permissions_name_unique` (`name`) USING BTREE,\n  ADD UNIQUE KEY `admin_permissions_slug_unique` (`slug`) USING BTREE;\n\n--\n-- 表的索引 `admin_roles`\n--\nALTER TABLE `admin_roles`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD UNIQUE KEY `admin_roles_name_unique` (`name`) USING BTREE,\n  ADD UNIQUE KEY `admin_roles_slug_unique` (`slug`) USING BTREE;\n\n--\n-- 表的索引 `admin_role_menu`\n--\nALTER TABLE `admin_role_menu`\n  ADD KEY `admin_role_menu_role_id_menu_id_index` (`role_id`,`menu_id`) USING BTREE;\n\n--\n-- 表的索引 `admin_role_permissions`\n--\nALTER TABLE `admin_role_permissions`\n  ADD KEY `admin_role_permissions_role_id_permission_id_index` (`role_id`,`permission_id`) USING BTREE;\n\n--\n-- 表的索引 `admin_role_users`\n--\nALTER TABLE `admin_role_users`\n  ADD KEY `admin_role_users_role_id_user_id_index` (`role_id`,`user_id`) USING BTREE;\n\n--\n-- 表的索引 `admin_users`\n--\nALTER TABLE `admin_users`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD UNIQUE KEY `admin_users_username_unique` (`username`) USING BTREE;\n\n--\n-- 表的索引 `admin_user_permissions`\n--\nALTER TABLE `admin_user_permissions`\n  ADD KEY `admin_user_permissions_user_id_permission_id_index` (`user_id`,`permission_id`) USING BTREE;\n\n--\n-- 表的索引 `blog_about`\n--\nALTER TABLE `blog_about`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_about_articles`\n--\nALTER TABLE `blog_about_articles`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_about_card_ones`\n--\nALTER TABLE `blog_about_card_ones`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_about_card_twos`\n--\nALTER TABLE `blog_about_card_twos`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_apply`\n--\nALTER TABLE `blog_apply`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_friends`\n--\nALTER TABLE `blog_friends`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_message`\n--\nALTER TABLE `blog_message`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav`\n--\nALTER TABLE `blog_nav`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_article`\n--\nALTER TABLE `blog_nav_article`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_music`\n--\nALTER TABLE `blog_nav_music`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_photo`\n--\nALTER TABLE `blog_nav_photo`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_share1`\n--\nALTER TABLE `blog_nav_share1`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_share2`\n--\nALTER TABLE `blog_nav_share2`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_nav_video`\n--\nALTER TABLE `blog_nav_video`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_notices`\n--\nALTER TABLE `blog_notices`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_subscribes`\n--\nALTER TABLE `blog_subscribes`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_tags`\n--\nALTER TABLE `blog_tags`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `blog_upload_files`\n--\nALTER TABLE `blog_upload_files`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `failed_jobs`\n--\nALTER TABLE `failed_jobs`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `jobs`\n--\nALTER TABLE `jobs`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD KEY `jobs_queue_index` (`queue`) USING BTREE;\n\n--\n-- 表的索引 `migrations`\n--\nALTER TABLE `migrations`\n  ADD PRIMARY KEY (`id`) USING BTREE;\n\n--\n-- 表的索引 `password_resets`\n--\nALTER TABLE `password_resets`\n  ADD KEY `password_resets_email_index` (`email`) USING BTREE;\n\n--\n-- 表的索引 `users`\n--\nALTER TABLE `users`\n  ADD PRIMARY KEY (`id`) USING BTREE,\n  ADD UNIQUE KEY `users_email_unique` (`email`) USING BTREE;\n\n--\n-- 在导出的表使用AUTO_INCREMENT\n--\n\n--\n-- 使用表AUTO_INCREMENT `admin_config`\n--\nALTER TABLE `admin_config`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22;\n\n--\n-- 使用表AUTO_INCREMENT `admin_menu`\n--\nALTER TABLE `admin_menu`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=37;\n\n--\n-- 使用表AUTO_INCREMENT `admin_operation_log`\n--\nALTER TABLE `admin_operation_log`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;\n\n--\n-- 使用表AUTO_INCREMENT `admin_permissions`\n--\nALTER TABLE `admin_permissions`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;\n\n--\n-- 使用表AUTO_INCREMENT `admin_roles`\n--\nALTER TABLE `admin_roles`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;\n\n--\n-- 使用表AUTO_INCREMENT `admin_users`\n--\nALTER TABLE `admin_users`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;\n\n--\n-- 使用表AUTO_INCREMENT `blog_about`\n--\nALTER TABLE `blog_about`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;\n\n--\n-- 使用表AUTO_INCREMENT `blog_about_articles`\n--\nALTER TABLE `blog_about_articles`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_about_card_ones`\n--\nALTER TABLE `blog_about_card_ones`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_about_card_twos`\n--\nALTER TABLE `blog_about_card_twos`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_apply`\n--\nALTER TABLE `blog_apply`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_friends`\n--\nALTER TABLE `blog_friends`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17;\n\n--\n-- 使用表AUTO_INCREMENT `blog_message`\n--\nALTER TABLE `blog_message`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=96;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav`\n--\nALTER TABLE `blog_nav`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=20;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_article`\n--\nALTER TABLE `blog_nav_article`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_music`\n--\nALTER TABLE `blog_nav_music`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_photo`\n--\nALTER TABLE `blog_nav_photo`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_share1`\n--\nALTER TABLE `blog_nav_share1`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_share2`\n--\nALTER TABLE `blog_nav_share2`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_nav_video`\n--\nALTER TABLE `blog_nav_video`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_notices`\n--\nALTER TABLE `blog_notices`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_subscribes`\n--\nALTER TABLE `blog_subscribes`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;\n\n--\n-- 使用表AUTO_INCREMENT `blog_tags`\n--\nALTER TABLE `blog_tags`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `blog_upload_files`\n--\nALTER TABLE `blog_upload_files`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `failed_jobs`\n--\nALTER TABLE `failed_jobs`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `jobs`\n--\nALTER TABLE `jobs`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- 使用表AUTO_INCREMENT `migrations`\n--\nALTER TABLE `migrations`\n  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=135;\n\n--\n-- 使用表AUTO_INCREMENT `users`\n--\nALTER TABLE `users`\n  MODIFY `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT;\nCOMMIT;\n\n/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n"
  },
  {
    "path": "storage/app/.gitignore",
    "content": "*\n!public/\n!.gitignore\n"
  },
  {
    "path": "storage/framework/.gitignore",
    "content": "config.php\nroutes.php\nschedule-*\ncompiled.php\nservices.json\nevents.scanned.php\nroutes.scanned.php\ndown\n"
  },
  {
    "path": "storage/framework/cache/.gitignore",
    "content": "*\n!data/\n!.gitignore\n"
  },
  {
    "path": "storage/framework/sessions/.gitignore",
    "content": "*\n!.gitignore\n"
  },
  {
    "path": "storage/framework/testing/.gitignore",
    "content": "*\n!.gitignore\n"
  },
  {
    "path": "storage/framework/views/.gitignore",
    "content": "*\n!.gitignore\n"
  },
  {
    "path": "storage/logs/.gitignore",
    "content": "*\n!.gitignore\n"
  },
  {
    "path": "tests/CreatesApplication.php",
    "content": "<?php\n\nnamespace Tests;\n\nuse Illuminate\\Contracts\\Console\\Kernel;\n\ntrait CreatesApplication\n{\n    /**\n     * Creates the application.\n     *\n     * @return \\Illuminate\\Foundation\\Application\n     */\n    public function createApplication()\n    {\n        $app = require __DIR__.'/../bootstrap/app.php';\n\n        $app->make(Kernel::class)->bootstrap();\n\n        return $app;\n    }\n}\n"
  },
  {
    "path": "tests/Feature/ExampleTest.php",
    "content": "<?php\n\nnamespace Tests\\Feature;\n\nuse Tests\\TestCase;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\n\nclass ExampleTest extends TestCase\n{\n    /**\n     * A basic test example.\n     *\n     * @return void\n     */\n    public function testBasicTest()\n    {\n        $response = $this->get('/');\n\n        $response->assertStatus(200);\n    }\n}\n"
  },
  {
    "path": "tests/TestCase.php",
    "content": "<?php\n\nnamespace Tests;\n\nuse Illuminate\\Foundation\\Testing\\TestCase as BaseTestCase;\n\nabstract class TestCase extends BaseTestCase\n{\n    use CreatesApplication;\n}\n"
  },
  {
    "path": "tests/Unit/ExampleTest.php",
    "content": "<?php\n\nnamespace Tests\\Unit;\n\nuse Tests\\TestCase;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\n\nclass ExampleTest extends TestCase\n{\n    /**\n     * A basic test example.\n     *\n     * @return void\n     */\n    public function testBasicTest()\n    {\n        $this->assertTrue(true);\n    }\n}\n"
  },
  {
    "path": "vendor/autoload.php",
    "content": "<?php\n\n// autoload.php @generated by Composer\n\nrequire_once __DIR__ . '/composer/autoload_real.php';\n\nreturn ComposerAutoloaderInit1b66a5b06579b18b92696e1317117c84::getLoader();\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to `laravel-dump-server` will be documented in this file\n\n## 1.0.0 - 2018-07-09\n\n- initial release\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/CONTRIBUTING.md",
    "content": "# Contributing\n\nContributions are **welcome** and will be fully **credited**.\n\nPlease read and understand the contribution guide before creating an issue or pull request.\n\n## Etiquette\n\nThis project is open source, and as such, the maintainers give their free time to build and maintain the source code\nheld within. They make the code freely available in the hope that it will be of use to other developers. It would be\nextremely unfair for them to suffer abuse or anger for their hard work.\n\nPlease be considerate towards maintainers when raising issues or presenting pull requests. Let's show the\nworld that developers are civilized and selfless people.\n\nIt's the duty of the maintainer to ensure that all submissions to the project are of sufficient\nquality to benefit the project. Many developers have different skillsets, strengths, and weaknesses. Respect the maintainer's decision, and do not be upset or abusive if your submission is not used.\n\n## Viability\n\nWhen requesting or submitting new features, first consider whether it might be useful to others. Open\nsource projects are used by many developers, who may have entirely different needs to your own. Think about\nwhether or not your feature is likely to be used by other users of the project.\n\n## Procedure\n\nBefore filing an issue:\n\n- Attempt to replicate the problem, to ensure that it wasn't a coincidental incident.\n- Check to make sure your feature suggestion isn't already present within the project.\n- Check the pull requests tab to ensure that the bug doesn't have a fix in progress.\n- Check the pull requests tab to ensure that the feature isn't already in progress.\n\nBefore submitting a pull request:\n\n- Check the codebase to ensure that your feature doesn't already exist.\n- Check the pull requests to ensure that another person hasn't already submitted the feature or fix.\n\n## Requirements\n\nIf the project maintainer has any additional requirements, you will find them listed here.\n\n- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](https://pear.php.net/package/PHP_CodeSniffer).\n\n- **Add tests!** - Your patch won't be accepted if it doesn't have tests.\n\n- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.\n\n- **Consider our release cycle** - We try to follow [SemVer v2.0.0](https://semver.org/). Randomly breaking public APIs is not an option.\n\n- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.\n\n- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](https://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.\n\n**Happy coding**!\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Beyond Code GmbH <hello@beyondco.de>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/README.md",
    "content": "# Laravel Dump Server\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/beyondcode/laravel-dump-server.svg?style=flat-square)](https://packagist.org/packages/beyondcode/laravel-dump-server)\n[![Quality Score](https://img.shields.io/scrutinizer/g/beyondcode/laravel-dump-server.svg?style=flat-square)](https://scrutinizer-ci.com/g/beyondcode/laravel-dump-server)\n[![Total Downloads](https://img.shields.io/packagist/dt/beyondcode/laravel-dump-server.svg?style=flat-square)](https://packagist.org/packages/beyondcode/laravel-dump-server)\n\nBringing the [Symfony Var-Dump Server](https://symfony.com/doc/current/components/var_dumper.html#the-dump-server) to Laravel.\n\nThis package will give you a dump server, that collects all your `dump` call outputs, so that it does not interfere with HTTP / API responses.\n\n## Installation\n\nYou can install the package via composer:\n\n```bash\ncomposer require --dev beyondcode/laravel-dump-server\n```\n\nThe package will register itself automatically. \n\nOptionally you can publish the package configuration using:\n\n```bash\nphp artisan vendor:publish --provider=BeyondCode\\\\DumpServer\\\\DumpServerServiceProvider\n```\n\nThis will publish a file called `debug-server.php` in your `config` folder.\nIn the config file, you can specify the dump server host that you want to listen on, in case you want to change the default value.\n\n## Usage\n\nStart the dump server by calling the artisan command:\n\n```bash\nphp artisan dump-server\n```\n\nYou can set the output format to HTML using the `--format` option:\n\n```bash\nphp artisan dump-server --format=html > dump.html\n```\n\nAnd then you can, as you are used to, put `dump` calls in your methods. But instead of dumping the output in your current HTTP request, they will be dumped in the artisan command.\nThis is very useful, when you want to dump data from API requests, without having to deal with HTTP errors.\n\nYou can see it in action here:\n\n![Dump Server Demo](https://beyondco.de/github/dumpserver/dumpserver.gif)\n\n### Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n### Security\n\nIf you discover any security related issues, please email marcel@beyondco.de instead of using the issue tracker.\n\n## Credits\n\n- [Marcel Pociot](https://github.com/mpociot)\n- [All Contributors](../../contributors)\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n \n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/composer.json",
    "content": "{\n    \"name\": \"beyondcode/laravel-dump-server\",\n    \"description\": \"Symfony Var-Dump Server for Laravel\",\n    \"keywords\": [\n        \"beyondcode\",\n        \"laravel-dump-server\"\n    ],\n    \"homepage\": \"https://github.com/beyondcode/laravel-dump-server\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Marcel Pociot\",\n            \"email\": \"marcel@beyondco.de\",\n            \"homepage\": \"https://beyondcode.de\",\n            \"role\": \"Developer\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1\",\n        \"illuminate/console\": \"5.6.*|5.7.*|5.8.*\",\n        \"illuminate/http\": \"5.6.*|5.7.*|5.8.*\",\n        \"illuminate/support\": \"5.6.*|5.7.*|5.8.*\",\n        \"symfony/var-dumper\": \"^4.1.1\"\n    },\n    \"require-dev\": {\n        \"larapack/dd\": \"^1.0\",\n        \"phpunit/phpunit\": \"^7.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"BeyondCode\\\\DumpServer\\\\\": \"src\"\n        },\n        \"files\": [\n            \"helpers.php\"\n        ]\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"BeyondCode\\\\DumpServer\\\\Tests\\\\\": \"tests\"\n        }\n    },\n    \"scripts\": {\n        \"test\": \"vendor/bin/phpunit\",\n        \"test-coverage\": \"vendor/bin/phpunit --coverage-html coverage\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"providers\": [\n                \"BeyondCode\\\\DumpServer\\\\DumpServerServiceProvider\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/config/config.php",
    "content": "<?php\n\nreturn [\n    /*\n     * The host to use when listening for debug server connections.\n     */\n    'host' => 'tcp://127.0.0.1:9912',\n];\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/helpers.php",
    "content": "<?php\n\nif (! function_exists('config_path')) {\n    /**\n     * Get the configuration path.\n     *\n     * This is a polyfill for the missing shorthand function in lumen.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function config_path($path = '')\n    {\n        return app()->basePath('config').($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n}\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/src/DumpServerCommand.php",
    "content": "<?php\n\nnamespace BeyondCode\\DumpServer;\n\nuse Illuminate\\Console\\Command;\n\nuse InvalidArgumentException;\nuse Symfony\\Component\\VarDumper\\Cloner\\Data;\nuse Symfony\\Component\\Console\\Style\\SymfonyStyle;\nuse Symfony\\Component\\VarDumper\\Dumper\\CliDumper;\nuse Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper;\nuse Symfony\\Component\\VarDumper\\Server\\DumpServer;\nuse Symfony\\Component\\VarDumper\\Command\\Descriptor\\CliDescriptor;\nuse Symfony\\Component\\VarDumper\\Command\\Descriptor\\HtmlDescriptor;\n\nclass DumpServerCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'dump-server {--format=cli : The output format (cli,html).}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Start the dump server to collect dump information.';\n\n    /**\n     * The Dump server.\n     *\n     * @var \\Symfony\\Component\\VarDumper\\Server\\DumpServer\n     */\n    protected $server;\n\n    /**\n     * DumpServerCommand constructor.\n     *\n     * @param  \\Symfony\\Component\\VarDumper\\Server\\DumpServer  $server\n     * @return void\n     */\n    public function __construct(DumpServer $server)\n    {\n        $this->server = $server;\n\n        parent::__construct();\n    }\n\n    /**\n     * Handle the command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        switch ($format = $this->option('format')) {\n            case 'cli':\n                $descriptor = new CliDescriptor(new CliDumper);\n                break;\n            case 'html':\n                $descriptor = new HtmlDescriptor(new HtmlDumper);\n                break;\n            default:\n                throw new InvalidArgumentException(sprintf('Unsupported format \"%s\".', $format));\n        }\n\n        $io = new SymfonyStyle($this->input, $this->output);\n\n        $errorIo = $io->getErrorStyle();\n        $errorIo->title('Laravel Var Dump Server');\n\n        $this->server->start();\n\n        $errorIo->success(sprintf('Server listening on %s', $this->server->getHost()));\n        $errorIo->comment('Quit the server with CONTROL-C.');\n\n        $this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) {\n            $descriptor->describe($io, $data, $context, $clientId);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/src/DumpServerServiceProvider.php",
    "content": "<?php\n\nnamespace BeyondCode\\DumpServer;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Symfony\\Component\\VarDumper\\VarDumper;\nuse Symfony\\Component\\VarDumper\\Server\\Connection;\nuse Symfony\\Component\\VarDumper\\Server\\DumpServer;\nuse Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\SourceContextProvider;\n\nclass DumpServerServiceProvider extends ServiceProvider\n{\n    /**\n     * Bootstrap the application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        if ($this->app->runningInConsole()) {\n\n            $this->publishes([\n                __DIR__.'/../config/config.php' => config_path('debug-server.php'),\n            ], 'config');\n        }\n    }\n\n    /**\n     * Register the application services.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->mergeConfigFrom(__DIR__.'/../config/config.php', 'debug-server');\n\n        $this->app->bind('command.dumpserver', DumpServerCommand::class);\n\n        $this->commands([\n            'command.dumpserver',\n        ]);\n\n        $host = $this->app['config']->get('debug-server.host');\n\n        $this->app->when(DumpServer::class)->needs('$host')->give($host);\n\n        $connection = new Connection($host, [\n            'request' => new RequestContextProvider($this->app['request']),\n            'source' => new SourceContextProvider('utf-8', base_path()),\n        ]);\n\n        VarDumper::setHandler(function ($var) use ($connection) {\n            (new Dumper($connection))->dump($var);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/src/Dumper.php",
    "content": "<?php\n\nnamespace BeyondCode\\DumpServer;\n\nuse Symfony\\Component\\VarDumper\\Cloner\\VarCloner;\nuse Symfony\\Component\\VarDumper\\Dumper\\CliDumper;\nuse Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper;\nuse Symfony\\Component\\VarDumper\\Server\\Connection;\n\nclass Dumper\n{\n    /**\n     * The connection.\n     *\n     * @var \\Symfony\\Component\\VarDumper\\Server\\Connection|null\n     */\n    private $connection;\n\n    /**\n     * Dumper constructor.\n     *\n     * @param  \\Symfony\\Component\\VarDumper\\Server\\Connection|null  $connection\n     * @return void\n     */\n    public function __construct(Connection $connection = null)\n    {\n        $this->connection = $connection;\n    }\n\n    /**\n     * Dump a value with elegance.\n     *\n     * @param  mixed  $value\n     * @return void\n     */\n    public function dump($value)\n    {\n        if (class_exists(CliDumper::class)) {\n            $data = (new VarCloner)->cloneVar($value);\n\n            if ($this->connection === null || $this->connection->write($data) === false) {\n                $dumper = in_array(PHP_SAPI, ['cli', 'phpdbg']) ? new CliDumper : new HtmlDumper;\n                $dumper->dump($data);\n            }\n        } else {\n            var_dump($value);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/beyondcode/laravel-dump-server/src/RequestContextProvider.php",
    "content": "<?php\n\nnamespace BeyondCode\\DumpServer;\n\nuse Illuminate\\Http\\Request;\nuse Symfony\\Component\\VarDumper\\Cloner\\VarCloner;\nuse Symfony\\Component\\VarDumper\\Dumper\\ContextProvider\\ContextProviderInterface;\n\nclass RequestContextProvider implements ContextProviderInterface\n{\n    /**\n     * The current request.\n     *\n     * @var \\Illuminate\\Http\\Request|null\n     */\n    private $currentRequest;\n\n    /**\n     * The variable cloner.\n     *\n     * @var \\Symfony\\Component\\VarDumper\\Cloner\\VarCloner\n     */\n    private $cloner;\n\n    /**\n     * RequestContextProvider constructor.\n     *\n     * @param  \\Illuminate\\Http\\Request|null  $currentRequest\n     * @return void\n     */\n    public function __construct(Request $currentRequest = null)\n    {\n        $this->currentRequest = $currentRequest;\n        $this->cloner = new VarCloner;\n        $this->cloner->setMaxItems(0);\n    }\n\n    /**\n     * Get the context.\n     *\n     * @return array|null\n     */\n    public function getContext(): ?array\n    {\n        if ($this->currentRequest === null) {\n            return null;\n        }\n\n        $controller = null;\n\n        if ($route = $this->currentRequest->route()) {\n            $controller = $route->controller;\n\n            if (! $controller && ! is_string($route->action['uses'])) {\n                $controller = $route->action['uses'];\n            }\n        }\n\n        return [\n            'uri' => $this->currentRequest->getUri(),\n            'method' => $this->currentRequest->getMethod(),\n            'controller' => $controller ? $this->cloner->cloneVar(class_basename($controller)) : $controller,\n            'identifier' => spl_object_hash($this->currentRequest),\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/composer/ClassLoader.php",
    "content": "<?php\n\n/*\n * This file is part of Composer.\n *\n * (c) Nils Adermann <naderman@naderman.de>\n *     Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Composer\\Autoload;\n\n/**\n * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.\n *\n *     $loader = new \\Composer\\Autoload\\ClassLoader();\n *\n *     // register classes with namespaces\n *     $loader->add('Symfony\\Component', __DIR__.'/component');\n *     $loader->add('Symfony',           __DIR__.'/framework');\n *\n *     // activate the autoloader\n *     $loader->register();\n *\n *     // to enable searching the include path (eg. for PEAR packages)\n *     $loader->setUseIncludePath(true);\n *\n * In this example, if you try to use a class in the Symfony\\Component\n * namespace or one of its children (Symfony\\Component\\Console for instance),\n * the autoloader will first look for the class under the component/\n * directory, and it will then fallback to the framework/ directory if not\n * found before giving up.\n *\n * This class is loosely based on the Symfony UniversalClassLoader.\n *\n * @author Fabien Potencier <fabien@symfony.com>\n * @author Jordi Boggiano <j.boggiano@seld.be>\n * @see    http://www.php-fig.org/psr/psr-0/\n * @see    http://www.php-fig.org/psr/psr-4/\n */\nclass ClassLoader\n{\n    // PSR-4\n    private $prefixLengthsPsr4 = array();\n    private $prefixDirsPsr4 = array();\n    private $fallbackDirsPsr4 = array();\n\n    // PSR-0\n    private $prefixesPsr0 = array();\n    private $fallbackDirsPsr0 = array();\n\n    private $useIncludePath = false;\n    private $classMap = array();\n    private $classMapAuthoritative = false;\n    private $missingClasses = array();\n    private $apcuPrefix;\n\n    public function getPrefixes()\n    {\n        if (!empty($this->prefixesPsr0)) {\n            return call_user_func_array('array_merge', $this->prefixesPsr0);\n        }\n\n        return array();\n    }\n\n    public function getPrefixesPsr4()\n    {\n        return $this->prefixDirsPsr4;\n    }\n\n    public function getFallbackDirs()\n    {\n        return $this->fallbackDirsPsr0;\n    }\n\n    public function getFallbackDirsPsr4()\n    {\n        return $this->fallbackDirsPsr4;\n    }\n\n    public function getClassMap()\n    {\n        return $this->classMap;\n    }\n\n    /**\n     * @param array $classMap Class to filename map\n     */\n    public function addClassMap(array $classMap)\n    {\n        if ($this->classMap) {\n            $this->classMap = array_merge($this->classMap, $classMap);\n        } else {\n            $this->classMap = $classMap;\n        }\n    }\n\n    /**\n     * Registers a set of PSR-0 directories for a given prefix, either\n     * appending or prepending to the ones previously set for this prefix.\n     *\n     * @param string       $prefix  The prefix\n     * @param array|string $paths   The PSR-0 root directories\n     * @param bool         $prepend Whether to prepend the directories\n     */\n    public function add($prefix, $paths, $prepend = false)\n    {\n        if (!$prefix) {\n            if ($prepend) {\n                $this->fallbackDirsPsr0 = array_merge(\n                    (array) $paths,\n                    $this->fallbackDirsPsr0\n                );\n            } else {\n                $this->fallbackDirsPsr0 = array_merge(\n                    $this->fallbackDirsPsr0,\n                    (array) $paths\n                );\n            }\n\n            return;\n        }\n\n        $first = $prefix[0];\n        if (!isset($this->prefixesPsr0[$first][$prefix])) {\n            $this->prefixesPsr0[$first][$prefix] = (array) $paths;\n\n            return;\n        }\n        if ($prepend) {\n            $this->prefixesPsr0[$first][$prefix] = array_merge(\n                (array) $paths,\n                $this->prefixesPsr0[$first][$prefix]\n            );\n        } else {\n            $this->prefixesPsr0[$first][$prefix] = array_merge(\n                $this->prefixesPsr0[$first][$prefix],\n                (array) $paths\n            );\n        }\n    }\n\n    /**\n     * Registers a set of PSR-4 directories for a given namespace, either\n     * appending or prepending to the ones previously set for this namespace.\n     *\n     * @param string       $prefix  The prefix/namespace, with trailing '\\\\'\n     * @param array|string $paths   The PSR-4 base directories\n     * @param bool         $prepend Whether to prepend the directories\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function addPsr4($prefix, $paths, $prepend = false)\n    {\n        if (!$prefix) {\n            // Register directories for the root namespace.\n            if ($prepend) {\n                $this->fallbackDirsPsr4 = array_merge(\n                    (array) $paths,\n                    $this->fallbackDirsPsr4\n                );\n            } else {\n                $this->fallbackDirsPsr4 = array_merge(\n                    $this->fallbackDirsPsr4,\n                    (array) $paths\n                );\n            }\n        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {\n            // Register directories for a new namespace.\n            $length = strlen($prefix);\n            if ('\\\\' !== $prefix[$length - 1]) {\n                throw new \\InvalidArgumentException(\"A non-empty PSR-4 prefix must end with a namespace separator.\");\n            }\n            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;\n            $this->prefixDirsPsr4[$prefix] = (array) $paths;\n        } elseif ($prepend) {\n            // Prepend directories for an already registered namespace.\n            $this->prefixDirsPsr4[$prefix] = array_merge(\n                (array) $paths,\n                $this->prefixDirsPsr4[$prefix]\n            );\n        } else {\n            // Append directories for an already registered namespace.\n            $this->prefixDirsPsr4[$prefix] = array_merge(\n                $this->prefixDirsPsr4[$prefix],\n                (array) $paths\n            );\n        }\n    }\n\n    /**\n     * Registers a set of PSR-0 directories for a given prefix,\n     * replacing any others previously set for this prefix.\n     *\n     * @param string       $prefix The prefix\n     * @param array|string $paths  The PSR-0 base directories\n     */\n    public function set($prefix, $paths)\n    {\n        if (!$prefix) {\n            $this->fallbackDirsPsr0 = (array) $paths;\n        } else {\n            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;\n        }\n    }\n\n    /**\n     * Registers a set of PSR-4 directories for a given namespace,\n     * replacing any others previously set for this namespace.\n     *\n     * @param string       $prefix The prefix/namespace, with trailing '\\\\'\n     * @param array|string $paths  The PSR-4 base directories\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function setPsr4($prefix, $paths)\n    {\n        if (!$prefix) {\n            $this->fallbackDirsPsr4 = (array) $paths;\n        } else {\n            $length = strlen($prefix);\n            if ('\\\\' !== $prefix[$length - 1]) {\n                throw new \\InvalidArgumentException(\"A non-empty PSR-4 prefix must end with a namespace separator.\");\n            }\n            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;\n            $this->prefixDirsPsr4[$prefix] = (array) $paths;\n        }\n    }\n\n    /**\n     * Turns on searching the include path for class files.\n     *\n     * @param bool $useIncludePath\n     */\n    public function setUseIncludePath($useIncludePath)\n    {\n        $this->useIncludePath = $useIncludePath;\n    }\n\n    /**\n     * Can be used to check if the autoloader uses the include path to check\n     * for classes.\n     *\n     * @return bool\n     */\n    public function getUseIncludePath()\n    {\n        return $this->useIncludePath;\n    }\n\n    /**\n     * Turns off searching the prefix and fallback directories for classes\n     * that have not been registered with the class map.\n     *\n     * @param bool $classMapAuthoritative\n     */\n    public function setClassMapAuthoritative($classMapAuthoritative)\n    {\n        $this->classMapAuthoritative = $classMapAuthoritative;\n    }\n\n    /**\n     * Should class lookup fail if not found in the current class map?\n     *\n     * @return bool\n     */\n    public function isClassMapAuthoritative()\n    {\n        return $this->classMapAuthoritative;\n    }\n\n    /**\n     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.\n     *\n     * @param string|null $apcuPrefix\n     */\n    public function setApcuPrefix($apcuPrefix)\n    {\n        $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;\n    }\n\n    /**\n     * The APCu prefix in use, or null if APCu caching is not enabled.\n     *\n     * @return string|null\n     */\n    public function getApcuPrefix()\n    {\n        return $this->apcuPrefix;\n    }\n\n    /**\n     * Registers this instance as an autoloader.\n     *\n     * @param bool $prepend Whether to prepend the autoloader or not\n     */\n    public function register($prepend = false)\n    {\n        spl_autoload_register(array($this, 'loadClass'), true, $prepend);\n    }\n\n    /**\n     * Unregisters this instance as an autoloader.\n     */\n    public function unregister()\n    {\n        spl_autoload_unregister(array($this, 'loadClass'));\n    }\n\n    /**\n     * Loads the given class or interface.\n     *\n     * @param  string    $class The name of the class\n     * @return bool|null True if loaded, null otherwise\n     */\n    public function loadClass($class)\n    {\n        if ($file = $this->findFile($class)) {\n            includeFile($file);\n\n            return true;\n        }\n    }\n\n    /**\n     * Finds the path to the file where the class is defined.\n     *\n     * @param string $class The name of the class\n     *\n     * @return string|false The path if found, false otherwise\n     */\n    public function findFile($class)\n    {\n        // class map lookup\n        if (isset($this->classMap[$class])) {\n            return $this->classMap[$class];\n        }\n        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {\n            return false;\n        }\n        if (null !== $this->apcuPrefix) {\n            $file = apcu_fetch($this->apcuPrefix.$class, $hit);\n            if ($hit) {\n                return $file;\n            }\n        }\n\n        $file = $this->findFileWithExtension($class, '.php');\n\n        // Search for Hack files if we are running on HHVM\n        if (false === $file && defined('HHVM_VERSION')) {\n            $file = $this->findFileWithExtension($class, '.hh');\n        }\n\n        if (null !== $this->apcuPrefix) {\n            apcu_add($this->apcuPrefix.$class, $file);\n        }\n\n        if (false === $file) {\n            // Remember that this class does not exist.\n            $this->missingClasses[$class] = true;\n        }\n\n        return $file;\n    }\n\n    private function findFileWithExtension($class, $ext)\n    {\n        // PSR-4 lookup\n        $logicalPathPsr4 = strtr($class, '\\\\', DIRECTORY_SEPARATOR) . $ext;\n\n        $first = $class[0];\n        if (isset($this->prefixLengthsPsr4[$first])) {\n            $subPath = $class;\n            while (false !== $lastPos = strrpos($subPath, '\\\\')) {\n                $subPath = substr($subPath, 0, $lastPos);\n                $search = $subPath . '\\\\';\n                if (isset($this->prefixDirsPsr4[$search])) {\n                    $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);\n                    foreach ($this->prefixDirsPsr4[$search] as $dir) {\n                        if (file_exists($file = $dir . $pathEnd)) {\n                            return $file;\n                        }\n                    }\n                }\n            }\n        }\n\n        // PSR-4 fallback dirs\n        foreach ($this->fallbackDirsPsr4 as $dir) {\n            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {\n                return $file;\n            }\n        }\n\n        // PSR-0 lookup\n        if (false !== $pos = strrpos($class, '\\\\')) {\n            // namespaced class name\n            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)\n                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);\n        } else {\n            // PEAR-like class name\n            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;\n        }\n\n        if (isset($this->prefixesPsr0[$first])) {\n            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {\n                if (0 === strpos($class, $prefix)) {\n                    foreach ($dirs as $dir) {\n                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {\n                            return $file;\n                        }\n                    }\n                }\n            }\n        }\n\n        // PSR-0 fallback dirs\n        foreach ($this->fallbackDirsPsr0 as $dir) {\n            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {\n                return $file;\n            }\n        }\n\n        // PSR-0 include paths.\n        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {\n            return $file;\n        }\n\n        return false;\n    }\n}\n\n/**\n * Scope isolated include.\n *\n * Prevents access to $this/self from included files.\n */\nfunction includeFile($file)\n{\n    include $file;\n}\n"
  },
  {
    "path": "vendor/composer/LICENSE",
    "content": "\nCopyright (c) Nils Adermann, Jordi Boggiano\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n"
  },
  {
    "path": "vendor/composer/autoload_classmap.php",
    "content": "<?php\n\n// autoload_classmap.php @generated by Composer\n\n$vendorDir = dirname(dirname(__FILE__));\n$baseDir = dirname($vendorDir);\n\nreturn array(\n    'AetherUpload\\\\AetherUploadServiceProvider' => $vendorDir . '/peinhu/aetherupload-laravel/src/AetherUploadServiceProvider.php',\n    'AetherUpload\\\\ConfigMapper' => $vendorDir . '/peinhu/aetherupload-laravel/src/ConfigMapper.php',\n    'AetherUpload\\\\Console\\\\BuildRedisHashesCommand' => $vendorDir . '/peinhu/aetherupload-laravel/src/Console/BuildRedisHashesCommand.php',\n    'AetherUpload\\\\Console\\\\CleanUpDirectoryCommand' => $vendorDir . '/peinhu/aetherupload-laravel/src/Console/CleanUpDirectoryCommand.php',\n    'AetherUpload\\\\Console\\\\ListGroupDirectoryCommand' => $vendorDir . '/peinhu/aetherupload-laravel/src/Console/ListGroupDirectoryCommand.php',\n    'AetherUpload\\\\Console\\\\PublishCommand' => $vendorDir . '/peinhu/aetherupload-laravel/src/Console/PublishCommand.php',\n    'AetherUpload\\\\Header' => $vendorDir . '/peinhu/aetherupload-laravel/src/Header.php',\n    'AetherUpload\\\\MimeType' => $vendorDir . '/peinhu/aetherupload-laravel/src/MimeType.php',\n    'AetherUpload\\\\PartialResource' => $vendorDir . '/peinhu/aetherupload-laravel/src/PartialResource.php',\n    'AetherUpload\\\\RedisAdapter' => $vendorDir . '/peinhu/aetherupload-laravel/src/RedisAdapter.php',\n    'AetherUpload\\\\RedisClient' => $vendorDir . '/peinhu/aetherupload-laravel/src/RedisClient.php',\n    'AetherUpload\\\\RedisSavedPath' => $vendorDir . '/peinhu/aetherupload-laravel/src/RedisSavedPath.php',\n    'AetherUpload\\\\Resource' => $vendorDir . '/peinhu/aetherupload-laravel/src/Resource.php',\n    'AetherUpload\\\\ResourceController' => $vendorDir . '/peinhu/aetherupload-laravel/src/ResourceController.php',\n    'AetherUpload\\\\Responser' => $vendorDir . '/peinhu/aetherupload-laravel/src/Responser.php',\n    'AetherUpload\\\\SavedPathResolver' => $vendorDir . '/peinhu/aetherupload-laravel/src/SavedPathResolver.php',\n    'AetherUpload\\\\UploadController' => $vendorDir . '/peinhu/aetherupload-laravel/src/UploadController.php',\n    'AetherUpload\\\\Util' => $vendorDir . '/peinhu/aetherupload-laravel/src/Util.php',\n    'App\\\\Admin\\\\Actions\\\\Post\\\\GoArticle' => $baseDir . '/app/Admin/Actions/Post/GoArticle.php',\n    'App\\\\Admin\\\\Controllers\\\\AuthController' => $baseDir . '/app/Admin/Controllers/AuthController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogAboutArticleController' => $baseDir . '/app/Admin/Controllers/BlogAboutArticleController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogAboutCardOneController' => $baseDir . '/app/Admin/Controllers/BlogAboutCardOneController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogAboutCardTwoController' => $baseDir . '/app/Admin/Controllers/BlogAboutCardTwoController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogAboutController' => $baseDir . '/app/Admin/Controllers/BlogAboutController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogFriendsController' => $baseDir . '/app/Admin/Controllers/BlogFriendsController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogMessageController' => $baseDir . '/app/Admin/Controllers/BlogMessageController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavArticleController' => $baseDir . '/app/Admin/Controllers/BlogNavArticleController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavController' => $baseDir . '/app/Admin/Controllers/BlogNavController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavMusicController' => $baseDir . '/app/Admin/Controllers/BlogNavMusicController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavPhotoController' => $baseDir . '/app/Admin/Controllers/BlogNavPhotoController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavShareOneController' => $baseDir . '/app/Admin/Controllers/BlogNavShareOneController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavShareTwoController' => $baseDir . '/app/Admin/Controllers/BlogNavShareTwoController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNavVideoController' => $baseDir . '/app/Admin/Controllers/BlogNavVideoController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogNoticeController' => $baseDir . '/app/Admin/Controllers/BlogNoticeController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogSubscribeController' => $baseDir . '/app/Admin/Controllers/BlogSubscribeController.php',\n    'App\\\\Admin\\\\Controllers\\\\BlogUploadFileController' => $baseDir . '/app/Admin/Controllers/BlogUploadFileController.php',\n    'App\\\\Admin\\\\Controllers\\\\ExampleController' => $baseDir . '/app/Admin/Controllers/ExampleController.php',\n    'App\\\\Admin\\\\Controllers\\\\HomeController' => $baseDir . '/app/Admin/Controllers/HomeController.php',\n    'App\\\\Console\\\\Kernel' => $baseDir . '/app/Console/Kernel.php',\n    'App\\\\Exceptions\\\\Handler' => $baseDir . '/app/Exceptions/Handler.php',\n    'App\\\\Http\\\\Controllers\\\\Auth\\\\ForgotPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ForgotPasswordController.php',\n    'App\\\\Http\\\\Controllers\\\\Auth\\\\LoginController' => $baseDir . '/app/Http/Controllers/Auth/LoginController.php',\n    'App\\\\Http\\\\Controllers\\\\Auth\\\\RegisterController' => $baseDir . '/app/Http/Controllers/Auth/RegisterController.php',\n    'App\\\\Http\\\\Controllers\\\\Auth\\\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php',\n    'App\\\\Http\\\\Controllers\\\\Auth\\\\VerificationController' => $baseDir . '/app/Http/Controllers/Auth/VerificationController.php',\n    'App\\\\Http\\\\Controllers\\\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',\n    'App\\\\Http\\\\Controllers\\\\Home\\\\AboutController' => $baseDir . '/app/Http/Controllers/Home/AboutController.php',\n    'App\\\\Http\\\\Controllers\\\\Home\\\\ArticleController' => $baseDir . '/app/Http/Controllers/Home/ArticleController.php',\n    'App\\\\Http\\\\Controllers\\\\Home\\\\FriendsController' => $baseDir . '/app/Http/Controllers/Home/FriendsController.php',\n    'App\\\\Http\\\\Controllers\\\\Home\\\\IndexController' => $baseDir . '/app/Http/Controllers/Home/IndexController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\ArticleDetailController' => $baseDir . '/app/Http/Controllers/Home/ArticleDetailController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\CardOneController' => $baseDir . '/app/Http/Controllers/Home/CardOneController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\CardTwoController' => $baseDir . '/app/Http/Controllers/Home/CardTwoController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\MessageController' => $baseDir . '/app/Http/Controllers/Home/MessageController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\MusicController' => $baseDir . '/app/Http/Controllers/Home/MusicController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\PhotoController' => $baseDir . '/app/Http/Controllers/Home/PhotoController.php',\n    'App\\\\Http\\\\Controllers\\\\home\\\\VideoController' => $baseDir . '/app/Http/Controllers/Home/VideoController.php',\n    'App\\\\Http\\\\Kernel' => $baseDir . '/app/Http/Kernel.php',\n    'App\\\\Http\\\\Middleware\\\\AetherUploadCORS' => $baseDir . '/app/Http/Middleware/AetherUploadCORS.php',\n    'App\\\\Http\\\\Middleware\\\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.php',\n    'App\\\\Http\\\\Middleware\\\\CheckForMaintenanceMode' => $baseDir . '/app/Http/Middleware/CheckForMaintenanceMode.php',\n    'App\\\\Http\\\\Middleware\\\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php',\n    'App\\\\Http\\\\Middleware\\\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php',\n    'App\\\\Http\\\\Middleware\\\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php',\n    'App\\\\Http\\\\Middleware\\\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',\n    'App\\\\Http\\\\Middleware\\\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php',\n    'App\\\\Http\\\\Requests\\\\StoreArticleMsgPost' => $baseDir . '/app/Http/Requests/StoreArticleMsgPost.php',\n    'App\\\\Http\\\\Requests\\\\StoreBlogFriendsPost' => $baseDir . '/app/Http/Requests/StoreBlogFriendsPost.php',\n    'App\\\\Http\\\\Requests\\\\StoreBlogSubscribePost' => $baseDir . '/app/Http/Requests/StoreBlogSubscribePost.php',\n    'App\\\\Jobs\\\\ProcessPodcast' => $baseDir . '/app/Jobs/ProcessPodcast.php',\n    'App\\\\Jobs\\\\SendReminderEmail' => $baseDir . '/app/Jobs/SendReminderEmail.php',\n    'App\\\\Mail\\\\ArticleMail' => $baseDir . '/app/Mail/ArticleMail.php',\n    'App\\\\Models\\\\BlogAbout' => $baseDir . '/app/Models/BlogAbout.php',\n    'App\\\\Models\\\\BlogAboutArticle' => $baseDir . '/app/Models/BlogAboutArticle.php',\n    'App\\\\Models\\\\BlogAboutCardOne' => $baseDir . '/app/Models/BlogAboutCardOne.php',\n    'App\\\\Models\\\\BlogAboutCardTwo' => $baseDir . '/app/Models/BlogAboutCardTwo.php',\n    'App\\\\Models\\\\BlogFriends' => $baseDir . '/app/Models/BlogFriends.php',\n    'App\\\\Models\\\\BlogMessage' => $baseDir . '/app/Models/BlogMessage.php',\n    'App\\\\Models\\\\BlogNav' => $baseDir . '/app/Models/BlogNav.php',\n    'App\\\\Models\\\\BlogNavArticle' => $baseDir . '/app/Models/BlogNavArticle.php',\n    'App\\\\Models\\\\BlogNavMusic' => $baseDir . '/app/Models/BlogNavMusic.php',\n    'App\\\\Models\\\\BlogNavPhoto' => $baseDir . '/app/Models/BlogNavPhoto.php',\n    'App\\\\Models\\\\BlogNavShareOne' => $baseDir . '/app/Models/BlogNavShareOne.php',\n    'App\\\\Models\\\\BlogNavShareTwo' => $baseDir . '/app/Models/BlogNavShareTwo.php',\n    'App\\\\Models\\\\BlogNavVideo' => $baseDir . '/app/Models/BlogNavVideo.php',\n    'App\\\\Models\\\\BlogNotice' => $baseDir . '/app/Models/BlogNotice.php',\n    'App\\\\Models\\\\BlogSubscribe' => $baseDir . '/app/Models/BlogSubscribe.php',\n    'App\\\\Models\\\\BlogTag' => $baseDir . '/app/Models/BlogTag.php',\n    'App\\\\Models\\\\BlogUploadFile' => $baseDir . '/app/Models/BlogUploadFile.php',\n    'App\\\\Observers\\\\BlogAboutCardTwoObserver' => $baseDir . '/app/Observers/BlogAboutCardTwoObserver.php',\n    'App\\\\Observers\\\\BlogConfigObserver' => $baseDir . '/app/Observers/BlogConfigObserver.php',\n    'App\\\\Observers\\\\BlogFriendsObserver' => $baseDir . '/app/Observers/BlogFriendsObserver.php',\n    'App\\\\Observers\\\\BlogNavArticleObserver' => $baseDir . '/app/Observers/BlogNavArticleObserver.php',\n    'App\\\\Observers\\\\BlogNavMusicObserver' => $baseDir . '/app/Observers/BlogNavMusicObserver.php',\n    'App\\\\Observers\\\\BlogNavObserver' => $baseDir . '/app/Observers/BlogNavObserver.php',\n    'App\\\\Observers\\\\BlogNavPhotoObserver' => $baseDir . '/app/Observers/BlogNavPhotoObserver.php',\n    'App\\\\Observers\\\\BlogNavShareOneObserver' => $baseDir . '/app/Observers/BlogNavShareOneObserver.php',\n    'App\\\\Observers\\\\BlogNavShareTwoObserver' => $baseDir . '/app/Observers/BlogNavShareTwoObserver.php',\n    'App\\\\Observers\\\\BlogNavVideoObserver' => $baseDir . '/app/Observers/BlogNavVideoObserver.php',\n    'App\\\\Providers\\\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php',\n    'App\\\\Providers\\\\AuthServiceProvider' => $baseDir . '/app/Providers/AuthServiceProvider.php',\n    'App\\\\Providers\\\\BroadcastServiceProvider' => $baseDir . '/app/Providers/BroadcastServiceProvider.php',\n    'App\\\\Providers\\\\EventServiceProvider' => $baseDir . '/app/Providers/EventServiceProvider.php',\n    'App\\\\Providers\\\\RouteServiceProvider' => $baseDir . '/app/Providers/RouteServiceProvider.php',\n    'App\\\\User' => $baseDir . '/app/User.php',\n    'BeyondCode\\\\DumpServer\\\\DumpServerCommand' => $vendorDir . '/beyondcode/laravel-dump-server/src/DumpServerCommand.php',\n    'BeyondCode\\\\DumpServer\\\\DumpServerServiceProvider' => $vendorDir . '/beyondcode/laravel-dump-server/src/DumpServerServiceProvider.php',\n    'BeyondCode\\\\DumpServer\\\\Dumper' => $vendorDir . '/beyondcode/laravel-dump-server/src/Dumper.php',\n    'BeyondCode\\\\DumpServer\\\\RequestContextProvider' => $vendorDir . '/beyondcode/laravel-dump-server/src/RequestContextProvider.php',\n    'BlogArticleTableSeeder' => $baseDir . '/database/seeds/BlogArticleTableSeeder.php',\n    'BlogSubscribeSeeder' => $baseDir . '/database/seeds/BlogSubscribeSeeder.php',\n    'Carbon\\\\Carbon' => $vendorDir . '/nesbot/carbon/src/Carbon/Carbon.php',\n    'Carbon\\\\CarbonImmutable' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonImmutable.php',\n    'Carbon\\\\CarbonInterface' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterface.php',\n    'Carbon\\\\CarbonInterval' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonInterval.php',\n    'Carbon\\\\CarbonPeriod' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonPeriod.php',\n    'Carbon\\\\CarbonTimeZone' => $vendorDir . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php',\n    'Carbon\\\\Exceptions\\\\InvalidDateException' => $vendorDir . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php',\n    'Carbon\\\\Factory' => $vendorDir . '/nesbot/carbon/src/Carbon/Factory.php',\n    'Carbon\\\\FactoryImmutable' => $vendorDir . '/nesbot/carbon/src/Carbon/FactoryImmutable.php',\n    'Carbon\\\\Language' => $vendorDir . '/nesbot/carbon/src/Carbon/Language.php',\n    'Carbon\\\\Laravel\\\\ServiceProvider' => $vendorDir . '/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php',\n    'Carbon\\\\Traits\\\\Boundaries' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Boundaries.php',\n    'Carbon\\\\Traits\\\\Comparison' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Comparison.php',\n    'Carbon\\\\Traits\\\\Converter' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Converter.php',\n    'Carbon\\\\Traits\\\\Creator' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Creator.php',\n    'Carbon\\\\Traits\\\\Date' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Date.php',\n    'Carbon\\\\Traits\\\\Difference' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Difference.php',\n    'Carbon\\\\Traits\\\\Localization' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Localization.php',\n    'Carbon\\\\Traits\\\\Macro' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Macro.php',\n    'Carbon\\\\Traits\\\\Modifiers' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Modifiers.php',\n    'Carbon\\\\Traits\\\\Mutability' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Mutability.php',\n    'Carbon\\\\Traits\\\\Options' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Options.php',\n    'Carbon\\\\Traits\\\\Rounding' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Rounding.php',\n    'Carbon\\\\Traits\\\\Serialization' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Serialization.php',\n    'Carbon\\\\Traits\\\\Test' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Test.php',\n    'Carbon\\\\Traits\\\\Timestamp' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Timestamp.php',\n    'Carbon\\\\Traits\\\\Units' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Units.php',\n    'Carbon\\\\Traits\\\\Week' => $vendorDir . '/nesbot/carbon/src/Carbon/Traits/Week.php',\n    'Carbon\\\\Translator' => $vendorDir . '/nesbot/carbon/src/Carbon/Translator.php',\n    'Cron\\\\AbstractField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/AbstractField.php',\n    'Cron\\\\CronExpression' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/CronExpression.php',\n    'Cron\\\\DayOfMonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php',\n    'Cron\\\\DayOfWeekField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php',\n    'Cron\\\\FieldFactory' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php',\n    'Cron\\\\FieldInterface' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php',\n    'Cron\\\\HoursField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/HoursField.php',\n    'Cron\\\\MinutesField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',\n    'Cron\\\\MonthField' => $vendorDir . '/dragonmantank/cron-expression/src/Cron/MonthField.php',\n    'DatabaseSeeder' => $baseDir . '/database/seeds/DatabaseSeeder.php',\n    'DeepCopy\\\\DeepCopy' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',\n    'DeepCopy\\\\Exception\\\\CloneException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',\n    'DeepCopy\\\\Exception\\\\PropertyException' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php',\n    'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php',\n    'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineEmptyCollectionFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php',\n    'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineProxyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php',\n    'DeepCopy\\\\Filter\\\\Filter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php',\n    'DeepCopy\\\\Filter\\\\KeepFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php',\n    'DeepCopy\\\\Filter\\\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php',\n    'DeepCopy\\\\Filter\\\\SetNullFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php',\n    'DeepCopy\\\\Matcher\\\\Doctrine\\\\DoctrineProxyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php',\n    'DeepCopy\\\\Matcher\\\\Matcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php',\n    'DeepCopy\\\\Matcher\\\\PropertyMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php',\n    'DeepCopy\\\\Matcher\\\\PropertyNameMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php',\n    'DeepCopy\\\\Matcher\\\\PropertyTypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php',\n    'DeepCopy\\\\Reflection\\\\ReflectionHelper' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php',\n    'DeepCopy\\\\TypeFilter\\\\Date\\\\DateIntervalFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php',\n    'DeepCopy\\\\TypeFilter\\\\ReplaceFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php',\n    'DeepCopy\\\\TypeFilter\\\\ShallowCopyFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php',\n    'DeepCopy\\\\TypeFilter\\\\Spl\\\\SplDoublyLinkedList' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php',\n    'DeepCopy\\\\TypeFilter\\\\Spl\\\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',\n    'DeepCopy\\\\TypeFilter\\\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',\n    'DeepCopy\\\\TypeMatcher\\\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ApcCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ApcuCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ArrayCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\Cache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\CacheProvider' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ChainCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ClearableCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\CouchbaseBucketCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\CouchbaseCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ExtMongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\FileCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\FilesystemCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\FlushableCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\LegacyMongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MemcacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MemcachedCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MultiDeleteCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MultiGetCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MultiOperationCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\MultiPutCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\PhpFileCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\PredisCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\RedisCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\RiakCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\SQLite3Cache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\Version' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/Version.php',\n    'Doctrine\\\\Common\\\\Cache\\\\VoidCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\WinCacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\XcacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php',\n    'Doctrine\\\\Common\\\\Cache\\\\ZendDataCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php',\n    'Doctrine\\\\Common\\\\EventArgs' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventArgs.php',\n    'Doctrine\\\\Common\\\\EventManager' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventManager.php',\n    'Doctrine\\\\Common\\\\EventSubscriber' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventSubscriber.php',\n    'Doctrine\\\\Common\\\\Inflector\\\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',\n    'Doctrine\\\\Common\\\\Lexer\\\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',\n    'Doctrine\\\\DBAL\\\\Cache\\\\ArrayStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php',\n    'Doctrine\\\\DBAL\\\\Cache\\\\CacheException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php',\n    'Doctrine\\\\DBAL\\\\Cache\\\\QueryCacheProfile' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php',\n    'Doctrine\\\\DBAL\\\\Cache\\\\ResultCacheStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php',\n    'Doctrine\\\\DBAL\\\\ColumnCase' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php',\n    'Doctrine\\\\DBAL\\\\Configuration' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php',\n    'Doctrine\\\\DBAL\\\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Connection.php',\n    'Doctrine\\\\DBAL\\\\ConnectionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php',\n    'Doctrine\\\\DBAL\\\\Connections\\\\MasterSlaveConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php',\n    'Doctrine\\\\DBAL\\\\DBALException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php',\n    'Doctrine\\\\DBAL\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver.php',\n    'Doctrine\\\\DBAL\\\\DriverManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractDB2Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractDriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractMySQLDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractOracleDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractOracleDriver\\\\EasyConnectString' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractPostgreSQLDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLAnywhereDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLServerDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLiteDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\DriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\DrizzlePDOMySql\\\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\DrizzlePDOMySql\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\ExceptionConverterDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Exception' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Exception' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOIbm\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOMySql\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOOracle\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOPgSql\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlite\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Connection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Statement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\PingableConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PingableConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereStatement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\LastInsertId' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/LastInsertId.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\ServerInfoAwareConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php',\n    'Doctrine\\\\DBAL\\\\Driver\\\\StatementIterator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/StatementIterator.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\ConnectionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/ConnectionEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\MysqlSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/MysqlSessionInit.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\OracleSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/OracleSessionInit.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\SQLSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/SQLSessionInit.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableAddColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableAddColumnEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableChangeColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableChangeColumnEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableRemoveColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRemoveColumnEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableRenameColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRenameColumnEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaColumnDefinitionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaColumnDefinitionEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaCreateTableColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableColumnEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaCreateTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaDropTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaDropTableEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Event\\\\SchemaIndexDefinitionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaIndexDefinitionEventArgs.php',\n    'Doctrine\\\\DBAL\\\\Events' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Events.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\ConnectionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConnectionException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\ConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConstraintViolationException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\DatabaseObjectExistsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectExistsException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\DatabaseObjectNotFoundException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectNotFoundException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\DeadlockException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DeadlockException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\DriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DriverException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\ForeignKeyConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ForeignKeyConstraintViolationException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidArgumentException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\InvalidFieldNameException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidFieldNameException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\LockWaitTimeoutException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/LockWaitTimeoutException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\NonUniqueFieldNameException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NonUniqueFieldNameException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\NotNullConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NotNullConstraintViolationException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\ReadOnlyException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ReadOnlyException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\RetryableException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/RetryableException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\ServerException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ServerException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\SyntaxErrorException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/SyntaxErrorException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\TableExistsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableExistsException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\TableNotFoundException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableNotFoundException.php',\n    'Doctrine\\\\DBAL\\\\Exception\\\\UniqueConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/UniqueConstraintViolationException.php',\n    'Doctrine\\\\DBAL\\\\FetchMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php',\n    'Doctrine\\\\DBAL\\\\Id\\\\TableGenerator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGenerator.php',\n    'Doctrine\\\\DBAL\\\\Id\\\\TableGeneratorSchemaVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGeneratorSchemaVisitor.php',\n    'Doctrine\\\\DBAL\\\\LockMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/LockMode.php',\n    'Doctrine\\\\DBAL\\\\Logging\\\\DebugStack' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/DebugStack.php',\n    'Doctrine\\\\DBAL\\\\Logging\\\\EchoSQLLogger' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php',\n    'Doctrine\\\\DBAL\\\\Logging\\\\LoggerChain' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/LoggerChain.php',\n    'Doctrine\\\\DBAL\\\\Logging\\\\SQLLogger' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/SQLLogger.php',\n    'Doctrine\\\\DBAL\\\\ParameterType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\AbstractPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\DB2Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DB2Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\DateIntervalUnit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DateIntervalUnit.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\DrizzlePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DrizzlePlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\DB2Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DB2Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\DrizzleKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DrizzleKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\KeywordList' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MariaDb102Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MariaDb102Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MsSQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MsSQLKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQL57Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL57Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQL80Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL80Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\OracleKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/OracleKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL100Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL100Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL91Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL91Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL92Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL92Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL94Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL94Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQLKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\ReservedKeywordsValidator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/ReservedKeywordsValidator.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere11Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere11Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere12Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere12Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere16Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere16Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhereKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhereKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2005Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2005Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2008Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2008Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2012Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2012Keywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServerKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServerKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLiteKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLiteKeywords.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\MariaDb1027Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MariaDb1027Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\MySQL57Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL57Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\MySQL80Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL80Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\MySqlPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\OraclePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/OraclePlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL100Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL100Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL91Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL91Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL92Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL92Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL94Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL94Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSqlPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere11Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere11Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere12Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere12Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere16Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere16Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywherePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywherePlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAzurePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAzurePlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2005Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2005Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2008Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2008Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2012Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2012Platform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServerPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServerPlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\SqlitePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php',\n    'Doctrine\\\\DBAL\\\\Platforms\\\\TrimMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/TrimMode.php',\n    'Doctrine\\\\DBAL\\\\Portability\\\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Connection.php',\n    'Doctrine\\\\DBAL\\\\Portability\\\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Statement.php',\n    'Doctrine\\\\DBAL\\\\Query\\\\Expression\\\\CompositeExpression' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/CompositeExpression.php',\n    'Doctrine\\\\DBAL\\\\Query\\\\Expression\\\\ExpressionBuilder' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php',\n    'Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php',\n    'Doctrine\\\\DBAL\\\\Query\\\\QueryException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php',\n    'Doctrine\\\\DBAL\\\\SQLParserUtils' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php',\n    'Doctrine\\\\DBAL\\\\SQLParserUtilsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\AbstractAsset' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\AbstractSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Column' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\ColumnDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ColumnDiff.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Comparator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Constraint' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\DB2SchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DB2SchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\DrizzleSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DrizzleSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\ForeignKeyConstraint' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Identifier' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Index' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\MySqlSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\OracleSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/OracleSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\PostgreSqlSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SQLAnywhereSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLAnywhereSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SQLServerSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Schema' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Schema.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SchemaConfig' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaConfig.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SchemaDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaDiff.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SchemaException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Sequence' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Sequence.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\SqliteSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\AbstractSchemaSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/AbstractSchemaSynchronizer.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\SchemaSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SchemaSynchronizer.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\SingleDatabaseSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SingleDatabaseSynchronizer.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Table' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\TableDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\View' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/View.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\AbstractVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/AbstractVisitor.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\CreateSchemaSqlCollector' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/CreateSchemaSqlCollector.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\DropSchemaSqlCollector' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/DropSchemaSqlCollector.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\Graphviz' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Graphviz.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\NamespaceVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/NamespaceVisitor.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\RemoveNamespacedAssets' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/RemoveNamespacedAssets.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\SchemaDiffVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/SchemaDiffVisitor.php',\n    'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\Visitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Visitor.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\PoolingShardConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardConnection.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\PoolingShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardManager.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\SQLAzureFederationsSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureFederationsSynchronizer.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\SQLAzureShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureShardManager.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\Schema\\\\MultiTenantVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/Schema/MultiTenantVisitor.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\ShardChoser\\\\MultiTenantShardChoser' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/MultiTenantShardChoser.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\ShardChoser\\\\ShardChoser' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/ShardChoser.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\ShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardManager.php',\n    'Doctrine\\\\DBAL\\\\Sharding\\\\ShardingException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardingException.php',\n    'Doctrine\\\\DBAL\\\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Statement.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\ImportCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\ReservedWordsCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\RunSqlCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\ConsoleRunner' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/ConsoleRunner.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Helper\\\\ConnectionHelper' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php',\n    'Doctrine\\\\DBAL\\\\Tools\\\\Dumper' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Dumper.php',\n    'Doctrine\\\\DBAL\\\\TransactionIsolationLevel' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\ArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\BigIntType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\BinaryType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\BlobType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\BooleanType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\ConversionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateImmutableType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateIntervalType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateIntervalType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateTimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeImmutableType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateTimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateTimeTzImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzImmutableType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateTimeTzType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DateType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\DecimalType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\FloatType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\GuidType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\IntegerType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\JsonArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\JsonType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\ObjectType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\PhpDateTimeMappingType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpDateTimeMappingType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\PhpIntegerMappingType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpIntegerMappingType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\SimpleArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\SmallIntType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\StringType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\TextType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\TimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeImmutableType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\TimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\Type' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\VarDateTimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeImmutableType.php',\n    'Doctrine\\\\DBAL\\\\Types\\\\VarDateTimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeType.php',\n    'Doctrine\\\\DBAL\\\\Version' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Version.php',\n    'Doctrine\\\\DBAL\\\\VersionAwarePlatformDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php',\n    'Doctrine\\\\Instantiator\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',\n    'Doctrine\\\\Instantiator\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php',\n    'Doctrine\\\\Instantiator\\\\Exception\\\\UnexpectedValueException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php',\n    'Doctrine\\\\Instantiator\\\\Instantiator' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php',\n    'Doctrine\\\\Instantiator\\\\InstantiatorInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php',\n    'Dotenv\\\\Dotenv' => $vendorDir . '/vlucas/phpdotenv/src/Dotenv.php',\n    'Dotenv\\\\Environment\\\\AbstractVariables' => $vendorDir . '/vlucas/phpdotenv/src/Environment/AbstractVariables.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\AdapterInterface' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/AdapterInterface.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\ApacheAdapter' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/ApacheAdapter.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\ArrayAdapter' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/ArrayAdapter.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\EnvConstAdapter' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/EnvConstAdapter.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\PutenvAdapter' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/PutenvAdapter.php',\n    'Dotenv\\\\Environment\\\\Adapter\\\\ServerConstAdapter' => $vendorDir . '/vlucas/phpdotenv/src/Environment/Adapter/ServerConstAdapter.php',\n    'Dotenv\\\\Environment\\\\DotenvFactory' => $vendorDir . '/vlucas/phpdotenv/src/Environment/DotenvFactory.php',\n    'Dotenv\\\\Environment\\\\DotenvVariables' => $vendorDir . '/vlucas/phpdotenv/src/Environment/DotenvVariables.php',\n    'Dotenv\\\\Environment\\\\FactoryInterface' => $vendorDir . '/vlucas/phpdotenv/src/Environment/FactoryInterface.php',\n    'Dotenv\\\\Environment\\\\VariablesInterface' => $vendorDir . '/vlucas/phpdotenv/src/Environment/VariablesInterface.php',\n    'Dotenv\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php',\n    'Dotenv\\\\Exception\\\\InvalidFileException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php',\n    'Dotenv\\\\Exception\\\\InvalidPathException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php',\n    'Dotenv\\\\Exception\\\\ValidationException' => $vendorDir . '/vlucas/phpdotenv/src/Exception/ValidationException.php',\n    'Dotenv\\\\Lines' => $vendorDir . '/vlucas/phpdotenv/src/Lines.php',\n    'Dotenv\\\\Loader' => $vendorDir . '/vlucas/phpdotenv/src/Loader.php',\n    'Dotenv\\\\Parser' => $vendorDir . '/vlucas/phpdotenv/src/Parser.php',\n    'Dotenv\\\\Regex\\\\Error' => $vendorDir . '/vlucas/phpdotenv/src/Regex/Error.php',\n    'Dotenv\\\\Regex\\\\Regex' => $vendorDir . '/vlucas/phpdotenv/src/Regex/Regex.php',\n    'Dotenv\\\\Regex\\\\Result' => $vendorDir . '/vlucas/phpdotenv/src/Regex/Result.php',\n    'Dotenv\\\\Regex\\\\Success' => $vendorDir . '/vlucas/phpdotenv/src/Regex/Success.php',\n    'Dotenv\\\\Validator' => $vendorDir . '/vlucas/phpdotenv/src/Validator.php',\n    'Egulias\\\\EmailValidator\\\\EmailLexer' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailLexer.php',\n    'Egulias\\\\EmailValidator\\\\EmailParser' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailParser.php',\n    'Egulias\\\\EmailValidator\\\\EmailValidator' => $vendorDir . '/egulias/email-validator/EmailValidator/EmailValidator.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\AtextAfterCFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\CRLFAtTheEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\CRLFX2' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\CRNoLF' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\CharNotAllowed' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\CommaInDomain' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ConsecutiveAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ConsecutiveDot' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\DomainHyphened' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\DotAtEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\DotAtStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingAT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingATEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingCTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingDomainLiteralClose' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingQPair' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\InvalidEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\NoDNSRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\NoDomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\NoLocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\UnclosedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\UnclosedQuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php',\n    'Egulias\\\\EmailValidator\\\\Exception\\\\UnopenedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php',\n    'Egulias\\\\EmailValidator\\\\Parser\\\\DomainPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php',\n    'Egulias\\\\EmailValidator\\\\Parser\\\\LocalPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php',\n    'Egulias\\\\EmailValidator\\\\Parser\\\\Parser' => $vendorDir . '/egulias/email-validator/EmailValidator/Parser/Parser.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\DNSCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\EmailValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\Error\\\\RFCWarnings' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\Error\\\\SpoofEmail' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\Exception\\\\EmptyValidationList' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\MultipleErrors' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\MultipleValidationWithAnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\NoRFCWarningsValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\RFCValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php',\n    'Egulias\\\\EmailValidator\\\\Validation\\\\SpoofCheckValidation' => $vendorDir . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\AddressLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\CFWSNearAt' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\CFWSWithFWS' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\Comment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Comment.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\DeprecatedComment' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\DomainLiteral' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\DomainTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\EmailTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6BadChar' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6ColonEnd' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6ColonStart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6Deprecated' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6DoubleColon' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6GroupCount' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6MaxGroups' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\LabelTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\LocalTooLong' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\NoDNSMXRecord' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\ObsoleteDTEXT' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\QuotedPart' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\QuotedString' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\TLD' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/TLD.php',\n    'Egulias\\\\EmailValidator\\\\Warning\\\\Warning' => $vendorDir . '/egulias/email-validator/EmailValidator/Warning/Warning.php',\n    'Encore\\\\Admin\\\\Actions\\\\Action' => $vendorDir . '/encore/laravel-admin/src/Actions/Action.php',\n    'Encore\\\\Admin\\\\Actions\\\\Authorizable' => $vendorDir . '/encore/laravel-admin/src/Actions/Authorizable.php',\n    'Encore\\\\Admin\\\\Actions\\\\BatchAction' => $vendorDir . '/encore/laravel-admin/src/Actions/BatchAction.php',\n    'Encore\\\\Admin\\\\Actions\\\\GridAction' => $vendorDir . '/encore/laravel-admin/src/Actions/GridAction.php',\n    'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Dialog' => $vendorDir . '/encore/laravel-admin/src/Actions/Interactor/Dialog.php',\n    'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Form' => $vendorDir . '/encore/laravel-admin/src/Actions/Interactor/Form.php',\n    'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Interactor' => $vendorDir . '/encore/laravel-admin/src/Actions/Interactor/Interactor.php',\n    'Encore\\\\Admin\\\\Actions\\\\Response' => $vendorDir . '/encore/laravel-admin/src/Actions/Response.php',\n    'Encore\\\\Admin\\\\Actions\\\\RowAction' => $vendorDir . '/encore/laravel-admin/src/Actions/RowAction.php',\n    'Encore\\\\Admin\\\\Actions\\\\SweatAlert2' => $vendorDir . '/encore/laravel-admin/src/Actions/SweatAlert2.php',\n    'Encore\\\\Admin\\\\Actions\\\\Toastr' => $vendorDir . '/encore/laravel-admin/src/Actions/Toastr.php',\n    'Encore\\\\Admin\\\\Admin' => $vendorDir . '/encore/laravel-admin/src/Admin.php',\n    'Encore\\\\Admin\\\\AdminServiceProvider' => $vendorDir . '/encore/laravel-admin/src/AdminServiceProvider.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\AdminTablesSeeder' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/AdminTablesSeeder.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\Administrator' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/Administrator.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\HasPermissions' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/HasPermissions.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\Menu' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/Menu.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\OperationLog' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/OperationLog.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\Permission' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/Permission.php',\n    'Encore\\\\Admin\\\\Auth\\\\Database\\\\Role' => $vendorDir . '/encore/laravel-admin/src/Auth/Database/Role.php',\n    'Encore\\\\Admin\\\\Auth\\\\Permission' => $vendorDir . '/encore/laravel-admin/src/Auth/Permission.php',\n    'Encore\\\\Admin\\\\Config\\\\Config' => $vendorDir . '/laravel-admin-ext/config/src/Config.php',\n    'Encore\\\\Admin\\\\Config\\\\ConfigController' => $vendorDir . '/laravel-admin-ext/config/src/ConfigController.php',\n    'Encore\\\\Admin\\\\Config\\\\ConfigModel' => $vendorDir . '/laravel-admin-ext/config/src/ConfigModel.php',\n    'Encore\\\\Admin\\\\Config\\\\ConfigServiceProvider' => $vendorDir . '/laravel-admin-ext/config/src/ConfigServiceProvider.php',\n    'Encore\\\\Admin\\\\Console\\\\ActionCommand' => $vendorDir . '/encore/laravel-admin/src/Console/ActionCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\AdminCommand' => $vendorDir . '/encore/laravel-admin/src/Console/AdminCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\CreateUserCommand' => $vendorDir . '/encore/laravel-admin/src/Console/CreateUserCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\ExportSeedCommand' => $vendorDir . '/encore/laravel-admin/src/Console/ExportSeedCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\ExtendCommand' => $vendorDir . '/encore/laravel-admin/src/Console/ExtendCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\FormCommand' => $vendorDir . '/encore/laravel-admin/src/Console/FormCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\ImportCommand' => $vendorDir . '/encore/laravel-admin/src/Console/ImportCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\InstallCommand' => $vendorDir . '/encore/laravel-admin/src/Console/InstallCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\MakeCommand' => $vendorDir . '/encore/laravel-admin/src/Console/MakeCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\MenuCommand' => $vendorDir . '/encore/laravel-admin/src/Console/MenuCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\MinifyCommand' => $vendorDir . '/encore/laravel-admin/src/Console/MinifyCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\PermissionCommand' => $vendorDir . '/encore/laravel-admin/src/Console/PermissionCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\PublishCommand' => $vendorDir . '/encore/laravel-admin/src/Console/PublishCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\ResetPasswordCommand' => $vendorDir . '/encore/laravel-admin/src/Console/ResetPasswordCommand.php',\n    'Encore\\\\Admin\\\\Console\\\\ResourceGenerator' => $vendorDir . '/encore/laravel-admin/src/Console/ResourceGenerator.php',\n    'Encore\\\\Admin\\\\Console\\\\UninstallCommand' => $vendorDir . '/encore/laravel-admin/src/Console/UninstallCommand.php',\n    'Encore\\\\Admin\\\\Controllers\\\\AdminController' => $vendorDir . '/encore/laravel-admin/src/Controllers/AdminController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\AuthController' => $vendorDir . '/encore/laravel-admin/src/Controllers/AuthController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\Dashboard' => $vendorDir . '/encore/laravel-admin/src/Controllers/Dashboard.php',\n    'Encore\\\\Admin\\\\Controllers\\\\HandleController' => $vendorDir . '/encore/laravel-admin/src/Controllers/HandleController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\HasResourceActions' => $vendorDir . '/encore/laravel-admin/src/Controllers/HasResourceActions.php',\n    'Encore\\\\Admin\\\\Controllers\\\\LogController' => $vendorDir . '/encore/laravel-admin/src/Controllers/LogController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\MenuController' => $vendorDir . '/encore/laravel-admin/src/Controllers/MenuController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\ModelForm' => $vendorDir . '/encore/laravel-admin/src/Controllers/ModelForm.php',\n    'Encore\\\\Admin\\\\Controllers\\\\PermissionController' => $vendorDir . '/encore/laravel-admin/src/Controllers/PermissionController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\RoleController' => $vendorDir . '/encore/laravel-admin/src/Controllers/RoleController.php',\n    'Encore\\\\Admin\\\\Controllers\\\\UserController' => $vendorDir . '/encore/laravel-admin/src/Controllers/UserController.php',\n    'Encore\\\\Admin\\\\Exception\\\\Handler' => $vendorDir . '/encore/laravel-admin/src/Exception/Handler.php',\n    'Encore\\\\Admin\\\\Extension' => $vendorDir . '/encore/laravel-admin/src/Extension.php',\n    'Encore\\\\Admin\\\\Facades\\\\Admin' => $vendorDir . '/encore/laravel-admin/src/Facades/Admin.php',\n    'Encore\\\\Admin\\\\Form' => $vendorDir . '/encore/laravel-admin/src/Form.php',\n    'Encore\\\\Admin\\\\Form\\\\Builder' => $vendorDir . '/encore/laravel-admin/src/Form/Builder.php',\n    'Encore\\\\Admin\\\\Form\\\\EmbeddedForm' => $vendorDir . '/encore/laravel-admin/src/Form/EmbeddedForm.php',\n    'Encore\\\\Admin\\\\Form\\\\Field' => $vendorDir . '/encore/laravel-admin/src/Form/Field.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Button' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Button.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Captcha' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Captcha.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Checkbox' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Checkbox.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Color' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Color.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Currency' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Currency.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Date' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Date.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\DateRange' => $vendorDir . '/encore/laravel-admin/src/Form/Field/DateRange.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Datetime' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Datetime.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\DatetimeRange' => $vendorDir . '/encore/laravel-admin/src/Form/Field/DatetimeRange.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Decimal' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Decimal.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Display' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Display.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Divider' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Divider.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Editor' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Editor.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Email' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Email.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Embeds' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Embeds.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Fieldset' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Fieldset.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\File' => $vendorDir . '/encore/laravel-admin/src/Form/Field/File.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\HasMany' => $vendorDir . '/encore/laravel-admin/src/Form/Field/HasMany.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Hidden' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Hidden.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Html' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Html.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Icon' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Icon.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Id' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Id.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Image' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Image.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\ImageField' => $vendorDir . '/encore/laravel-admin/src/Form/Field/ImageField.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Ip' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Ip.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\KeyValue' => $vendorDir . '/encore/laravel-admin/src/Form/Field/KeyValue.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\ListField' => $vendorDir . '/encore/laravel-admin/src/Form/Field/ListField.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Listbox' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Listbox.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Map' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Map.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Mobile' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Mobile.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Month' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Month.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleFile' => $vendorDir . '/encore/laravel-admin/src/Form/Field/MultipleFile.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleImage' => $vendorDir . '/encore/laravel-admin/src/Form/Field/MultipleImage.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleSelect' => $vendorDir . '/encore/laravel-admin/src/Form/Field/MultipleSelect.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Nullable' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Nullable.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Number' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Number.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Password' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Password.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\PlainInput' => $vendorDir . '/encore/laravel-admin/src/Form/Field/PlainInput.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Radio' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Radio.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Rate' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Rate.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Select' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Select.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Slider' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Slider.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\SwitchField' => $vendorDir . '/encore/laravel-admin/src/Form/Field/SwitchField.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Table' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Table.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Tags' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Tags.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Text' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Text.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Textarea' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Textarea.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Time' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Time.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\TimeRange' => $vendorDir . '/encore/laravel-admin/src/Form/Field/TimeRange.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Timezone' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Timezone.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\UploadField' => $vendorDir . '/encore/laravel-admin/src/Form/Field/UploadField.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Url' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Url.php',\n    'Encore\\\\Admin\\\\Form\\\\Field\\\\Year' => $vendorDir . '/encore/laravel-admin/src/Form/Field/Year.php',\n    'Encore\\\\Admin\\\\Form\\\\Footer' => $vendorDir . '/encore/laravel-admin/src/Form/Footer.php',\n    'Encore\\\\Admin\\\\Form\\\\HasHooks' => $vendorDir . '/encore/laravel-admin/src/Form/HasHooks.php',\n    'Encore\\\\Admin\\\\Form\\\\NestedForm' => $vendorDir . '/encore/laravel-admin/src/Form/NestedForm.php',\n    'Encore\\\\Admin\\\\Form\\\\Row' => $vendorDir . '/encore/laravel-admin/src/Form/Row.php',\n    'Encore\\\\Admin\\\\Form\\\\Tab' => $vendorDir . '/encore/laravel-admin/src/Form/Tab.php',\n    'Encore\\\\Admin\\\\Form\\\\Tools' => $vendorDir . '/encore/laravel-admin/src/Form/Tools.php',\n    'Encore\\\\Admin\\\\Grid' => $vendorDir . '/encore/laravel-admin/src/Grid.php',\n    'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Delete' => $vendorDir . '/encore/laravel-admin/src/Grid/Actions/Delete.php',\n    'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Edit' => $vendorDir . '/encore/laravel-admin/src/Grid/Actions/Edit.php',\n    'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Show' => $vendorDir . '/encore/laravel-admin/src/Grid/Actions/Show.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column' => $vendorDir . '/encore/laravel-admin/src/Grid/Column.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\CheckFilter' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/CheckFilter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\Filter' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/Filter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\HasHeader' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/HasHeader.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\Help' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/Help.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\InputFilter' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/InputFilter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\RangeFilter' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/RangeFilter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Column\\\\Sorter' => $vendorDir . '/encore/laravel-admin/src/Grid/Column/Sorter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\CanFixColumns' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/CanFixColumns.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\CanHidesColumns' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/CanHidesColumns.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasActions' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasActions.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasElementNames' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasElementNames.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasFilter' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasFilter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasFooter' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasFooter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasHeader' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasHeader.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasHotKeys' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasHotKeys.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasQuickCreate' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasQuickCreate.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasQuickSearch' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasQuickSearch.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasTools' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasTools.php',\n    'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasTotalRow' => $vendorDir . '/encore/laravel-admin/src/Grid/Concerns/HasTotalRow.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\AbstractDisplayer' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/AbstractDisplayer.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Actions' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Actions.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Badge' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Badge.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Button' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Button.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Carousel' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Carousel.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Checkbox' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Checkbox.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Copyable' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Copyable.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Downloadable' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Downloadable.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\DropdownActions' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/DropdownActions.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Editable' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Editable.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Expand' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Expand.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Image' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Image.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Label' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Label.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Link' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Link.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Modal' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Modal.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Orderable' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Orderable.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Prefix' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Prefix.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\ProgressBar' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/ProgressBar.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\QRCode' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/QRCode.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Radio' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Radio.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\RowSelector' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/RowSelector.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Select' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Select.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Suffix' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Suffix.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\SwitchDisplay' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/SwitchDisplay.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\SwitchGroup' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/SwitchGroup.php',\n    'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Table' => $vendorDir . '/encore/laravel-admin/src/Grid/Displayers/Table.php',\n    'Encore\\\\Admin\\\\Grid\\\\Exporter' => $vendorDir . '/encore/laravel-admin/src/Grid/Exporter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\AbstractExporter' => $vendorDir . '/encore/laravel-admin/src/Grid/Exporters/AbstractExporter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\CsvExporter' => $vendorDir . '/encore/laravel-admin/src/Grid/Exporters/CsvExporter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\ExcelExporter' => $vendorDir . '/encore/laravel-admin/src/Grid/Exporters/ExcelExporter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\ExporterInterface' => $vendorDir . '/encore/laravel-admin/src/Grid/Exporters/ExporterInterface.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\AbstractFilter' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/AbstractFilter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Between' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Between.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Date' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Date.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Day' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Day.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\EndsWith' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/EndsWith.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Equal' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Equal.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Group' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Group.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Gt' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Gt.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Hidden' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Hidden.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Ilike' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Ilike.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\In' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/In.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Layout\\\\Column' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Layout/Column.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Layout\\\\Layout' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Layout/Layout.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Like' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Like.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Lt' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Lt.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Month' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Month.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\NotEqual' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/NotEqual.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\NotIn' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/NotIn.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Checkbox' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/Checkbox.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\DateTime' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/DateTime.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\MultipleSelect' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/MultipleSelect.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Presenter' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/Presenter.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Radio' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/Radio.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Select' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/Select.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Text' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Presenter/Text.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Scope' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Scope.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\StartsWith' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/StartsWith.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Where' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Where.php',\n    'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Year' => $vendorDir . '/encore/laravel-admin/src/Grid/Filter/Year.php',\n    'Encore\\\\Admin\\\\Grid\\\\Model' => $vendorDir . '/encore/laravel-admin/src/Grid/Model.php',\n    'Encore\\\\Admin\\\\Grid\\\\Row' => $vendorDir . '/encore/laravel-admin/src/Grid/Row.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\AbstractTool' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/AbstractTool.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchAction' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/BatchAction.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchActions' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/BatchActions.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchDelete' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/BatchDelete.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\ColumnSelector' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/ColumnSelector.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\CreateButton' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/CreateButton.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\ExportButton' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/ExportButton.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\FilterButton' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/FilterButton.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\FixColumns' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/FixColumns.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Footer' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/Footer.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Header' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/Header.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Paginator' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/Paginator.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\PerPageSelector' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/PerPageSelector.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\QuickCreate' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/QuickCreate.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\QuickSearch' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/QuickSearch.php',\n    'Encore\\\\Admin\\\\Grid\\\\Tools\\\\TotalRow' => $vendorDir . '/encore/laravel-admin/src/Grid/Tools/TotalRow.php',\n    'Encore\\\\Admin\\\\Layout\\\\Buildable' => $vendorDir . '/encore/laravel-admin/src/Layout/Buildable.php',\n    'Encore\\\\Admin\\\\Layout\\\\Column' => $vendorDir . '/encore/laravel-admin/src/Layout/Column.php',\n    'Encore\\\\Admin\\\\Layout\\\\Content' => $vendorDir . '/encore/laravel-admin/src/Layout/Content.php',\n    'Encore\\\\Admin\\\\Layout\\\\Row' => $vendorDir . '/encore/laravel-admin/src/Layout/Row.php',\n    'Encore\\\\Admin\\\\Middleware\\\\Authenticate' => $vendorDir . '/encore/laravel-admin/src/Middleware/Authenticate.php',\n    'Encore\\\\Admin\\\\Middleware\\\\Bootstrap' => $vendorDir . '/encore/laravel-admin/src/Middleware/Bootstrap.php',\n    'Encore\\\\Admin\\\\Middleware\\\\LogOperation' => $vendorDir . '/encore/laravel-admin/src/Middleware/LogOperation.php',\n    'Encore\\\\Admin\\\\Middleware\\\\Permission' => $vendorDir . '/encore/laravel-admin/src/Middleware/Permission.php',\n    'Encore\\\\Admin\\\\Middleware\\\\Pjax' => $vendorDir . '/encore/laravel-admin/src/Middleware/Pjax.php',\n    'Encore\\\\Admin\\\\Middleware\\\\Session' => $vendorDir . '/encore/laravel-admin/src/Middleware/Session.php',\n    'Encore\\\\Admin\\\\Show' => $vendorDir . '/encore/laravel-admin/src/Show.php',\n    'Encore\\\\Admin\\\\Show\\\\AbstractField' => $vendorDir . '/encore/laravel-admin/src/Show/AbstractField.php',\n    'Encore\\\\Admin\\\\Show\\\\Divider' => $vendorDir . '/encore/laravel-admin/src/Show/Divider.php',\n    'Encore\\\\Admin\\\\Show\\\\Field' => $vendorDir . '/encore/laravel-admin/src/Show/Field.php',\n    'Encore\\\\Admin\\\\Show\\\\Panel' => $vendorDir . '/encore/laravel-admin/src/Show/Panel.php',\n    'Encore\\\\Admin\\\\Show\\\\Relation' => $vendorDir . '/encore/laravel-admin/src/Show/Relation.php',\n    'Encore\\\\Admin\\\\Show\\\\Tools' => $vendorDir . '/encore/laravel-admin/src/Show/Tools.php',\n    'Encore\\\\Admin\\\\Traits\\\\AdminBuilder' => $vendorDir . '/encore/laravel-admin/src/Traits/AdminBuilder.php',\n    'Encore\\\\Admin\\\\Traits\\\\HasAssets' => $vendorDir . '/encore/laravel-admin/src/Traits/HasAssets.php',\n    'Encore\\\\Admin\\\\Traits\\\\ModelTree' => $vendorDir . '/encore/laravel-admin/src/Traits/ModelTree.php',\n    'Encore\\\\Admin\\\\Traits\\\\Resizable' => $vendorDir . '/encore/laravel-admin/src/Traits/Resizable.php',\n    'Encore\\\\Admin\\\\Tree' => $vendorDir . '/encore/laravel-admin/src/Tree.php',\n    'Encore\\\\Admin\\\\Tree\\\\Tools' => $vendorDir . '/encore/laravel-admin/src/Tree/Tools.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Alert' => $vendorDir . '/encore/laravel-admin/src/Widgets/Alert.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Box' => $vendorDir . '/encore/laravel-admin/src/Widgets/Box.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Callout' => $vendorDir . '/encore/laravel-admin/src/Widgets/Callout.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Carousel' => $vendorDir . '/encore/laravel-admin/src/Widgets/Carousel.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Collapse' => $vendorDir . '/encore/laravel-admin/src/Widgets/Collapse.php',\n    'Encore\\\\Admin\\\\Widgets\\\\ContainsForms' => $vendorDir . '/encore/laravel-admin/src/Widgets/ContainsForms.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Form' => $vendorDir . '/encore/laravel-admin/src/Widgets/Form.php',\n    'Encore\\\\Admin\\\\Widgets\\\\InfoBox' => $vendorDir . '/encore/laravel-admin/src/Widgets/InfoBox.php',\n    'Encore\\\\Admin\\\\Widgets\\\\MultipleSteps' => $vendorDir . '/encore/laravel-admin/src/Widgets/MultipleSteps.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Navbar' => $vendorDir . '/encore/laravel-admin/src/Widgets/Navbar.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Navbar\\\\Fullscreen' => $vendorDir . '/encore/laravel-admin/src/Widgets/Navbar/Fullscreen.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Navbar\\\\RefreshButton' => $vendorDir . '/encore/laravel-admin/src/Widgets/Navbar/RefreshButton.php',\n    'Encore\\\\Admin\\\\Widgets\\\\StepForm' => $vendorDir . '/encore/laravel-admin/src/Widgets/StepForm.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Tab' => $vendorDir . '/encore/laravel-admin/src/Widgets/Tab.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Table' => $vendorDir . '/encore/laravel-admin/src/Widgets/Table.php',\n    'Encore\\\\Admin\\\\Widgets\\\\Widget' => $vendorDir . '/encore/laravel-admin/src/Widgets/Widget.php',\n    'Encore\\\\LargeFileUpload\\\\Http\\\\Controllers\\\\LargeFileUploadController' => $vendorDir . '/dianwoung/large-file-upload/src/Http/Controllers/LargeFileUploadController.php',\n    'Encore\\\\LargeFileUpload\\\\LargeFileField' => $vendorDir . '/dianwoung/large-file-upload/src/LargeFileField.php',\n    'Encore\\\\LargeFileUpload\\\\LargeFileUpload' => $vendorDir . '/dianwoung/large-file-upload/src/LargeFileUpload.php',\n    'Encore\\\\LargeFileUpload\\\\LargeFileUploadServiceProvider' => $vendorDir . '/dianwoung/large-file-upload/src/LargeFileUploadServiceProvider.php',\n    'Faker\\\\Calculator\\\\Iban' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',\n    'Faker\\\\Calculator\\\\Inn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',\n    'Faker\\\\Calculator\\\\Luhn' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',\n    'Faker\\\\Calculator\\\\TCNo' => $vendorDir . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',\n    'Faker\\\\DefaultGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',\n    'Faker\\\\Documentor' => $vendorDir . '/fzaninotto/faker/src/Faker/Documentor.php',\n    'Faker\\\\Factory' => $vendorDir . '/fzaninotto/faker/src/Faker/Factory.php',\n    'Faker\\\\Generator' => $vendorDir . '/fzaninotto/faker/src/Faker/Generator.php',\n    'Faker\\\\Guesser\\\\Name' => $vendorDir . '/fzaninotto/faker/src/Faker/Guesser/Name.php',\n    'Faker\\\\ORM\\\\CakePHP\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\CakePHP\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php',\n    'Faker\\\\ORM\\\\CakePHP\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php',\n    'Faker\\\\ORM\\\\Doctrine\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\Doctrine\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php',\n    'Faker\\\\ORM\\\\Doctrine\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php',\n    'Faker\\\\ORM\\\\Mandango\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\Mandango\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php',\n    'Faker\\\\ORM\\\\Mandango\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php',\n    'Faker\\\\ORM\\\\Propel2\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\Propel2\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php',\n    'Faker\\\\ORM\\\\Propel2\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php',\n    'Faker\\\\ORM\\\\Propel\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\Propel\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php',\n    'Faker\\\\ORM\\\\Propel\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php',\n    'Faker\\\\ORM\\\\Spot\\\\ColumnTypeGuesser' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php',\n    'Faker\\\\ORM\\\\Spot\\\\EntityPopulator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php',\n    'Faker\\\\ORM\\\\Spot\\\\Populator' => $vendorDir . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php',\n    'Faker\\\\Provider\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Address.php',\n    'Faker\\\\Provider\\\\Barcode' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Barcode.php',\n    'Faker\\\\Provider\\\\Base' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Base.php',\n    'Faker\\\\Provider\\\\Biased' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Biased.php',\n    'Faker\\\\Provider\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Color.php',\n    'Faker\\\\Provider\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Company.php',\n    'Faker\\\\Provider\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/DateTime.php',\n    'Faker\\\\Provider\\\\File' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/File.php',\n    'Faker\\\\Provider\\\\HtmlLorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php',\n    'Faker\\\\Provider\\\\Image' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Image.php',\n    'Faker\\\\Provider\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Internet.php',\n    'Faker\\\\Provider\\\\Lorem' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Lorem.php',\n    'Faker\\\\Provider\\\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php',\n    'Faker\\\\Provider\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Payment.php',\n    'Faker\\\\Provider\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Person.php',\n    'Faker\\\\Provider\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php',\n    'Faker\\\\Provider\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Text.php',\n    'Faker\\\\Provider\\\\UserAgent' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php',\n    'Faker\\\\Provider\\\\Uuid' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/Uuid.php',\n    'Faker\\\\Provider\\\\ar_JO\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php',\n    'Faker\\\\Provider\\\\ar_JO\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php',\n    'Faker\\\\Provider\\\\ar_JO\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php',\n    'Faker\\\\Provider\\\\ar_JO\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php',\n    'Faker\\\\Provider\\\\ar_JO\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php',\n    'Faker\\\\Provider\\\\ar_SA\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php',\n    'Faker\\\\Provider\\\\at_AT\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php',\n    'Faker\\\\Provider\\\\bg_BG\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php',\n    'Faker\\\\Provider\\\\bg_BG\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php',\n    'Faker\\\\Provider\\\\bg_BG\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php',\n    'Faker\\\\Provider\\\\bg_BG\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php',\n    'Faker\\\\Provider\\\\bn_BD\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php',\n    'Faker\\\\Provider\\\\bn_BD\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php',\n    'Faker\\\\Provider\\\\bn_BD\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php',\n    'Faker\\\\Provider\\\\bn_BD\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php',\n    'Faker\\\\Provider\\\\bn_BD\\\\Utils' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php',\n    'Faker\\\\Provider\\\\cs_CZ\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php',\n    'Faker\\\\Provider\\\\da_DK\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php',\n    'Faker\\\\Provider\\\\da_DK\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php',\n    'Faker\\\\Provider\\\\da_DK\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php',\n    'Faker\\\\Provider\\\\da_DK\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php',\n    'Faker\\\\Provider\\\\da_DK\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php',\n    'Faker\\\\Provider\\\\da_DK\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php',\n    'Faker\\\\Provider\\\\de_AT\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php',\n    'Faker\\\\Provider\\\\de_AT\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php',\n    'Faker\\\\Provider\\\\de_CH\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php',\n    'Faker\\\\Provider\\\\de_CH\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php',\n    'Faker\\\\Provider\\\\de_DE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\de_DE\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php',\n    'Faker\\\\Provider\\\\el_CY\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php',\n    'Faker\\\\Provider\\\\el_CY\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php',\n    'Faker\\\\Provider\\\\el_CY\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php',\n    'Faker\\\\Provider\\\\el_CY\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php',\n    'Faker\\\\Provider\\\\el_CY\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php',\n    'Faker\\\\Provider\\\\el_CY\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php',\n    'Faker\\\\Provider\\\\el_GR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php',\n    'Faker\\\\Provider\\\\el_GR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php',\n    'Faker\\\\Provider\\\\el_GR\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php',\n    'Faker\\\\Provider\\\\el_GR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php',\n    'Faker\\\\Provider\\\\el_GR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\el_GR\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php',\n    'Faker\\\\Provider\\\\en_AU\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php',\n    'Faker\\\\Provider\\\\en_AU\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php',\n    'Faker\\\\Provider\\\\en_AU\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_CA\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php',\n    'Faker\\\\Provider\\\\en_CA\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_GB\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php',\n    'Faker\\\\Provider\\\\en_GB\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php',\n    'Faker\\\\Provider\\\\en_GB\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php',\n    'Faker\\\\Provider\\\\en_GB\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php',\n    'Faker\\\\Provider\\\\en_GB\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_HK\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php',\n    'Faker\\\\Provider\\\\en_HK\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php',\n    'Faker\\\\Provider\\\\en_HK\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_IN\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php',\n    'Faker\\\\Provider\\\\en_IN\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php',\n    'Faker\\\\Provider\\\\en_IN\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php',\n    'Faker\\\\Provider\\\\en_IN\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_NG\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php',\n    'Faker\\\\Provider\\\\en_NG\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php',\n    'Faker\\\\Provider\\\\en_NG\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php',\n    'Faker\\\\Provider\\\\en_NG\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_NZ\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php',\n    'Faker\\\\Provider\\\\en_NZ\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php',\n    'Faker\\\\Provider\\\\en_NZ\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_PH\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php',\n    'Faker\\\\Provider\\\\en_PH\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_SG\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php',\n    'Faker\\\\Provider\\\\en_SG\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_UG\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php',\n    'Faker\\\\Provider\\\\en_UG\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php',\n    'Faker\\\\Provider\\\\en_UG\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php',\n    'Faker\\\\Provider\\\\en_UG\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_US\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php',\n    'Faker\\\\Provider\\\\en_US\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php',\n    'Faker\\\\Provider\\\\en_US\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php',\n    'Faker\\\\Provider\\\\en_US\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php',\n    'Faker\\\\Provider\\\\en_US\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php',\n    'Faker\\\\Provider\\\\en_US\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php',\n    'Faker\\\\Provider\\\\en_ZA\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php',\n    'Faker\\\\Provider\\\\en_ZA\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php',\n    'Faker\\\\Provider\\\\en_ZA\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php',\n    'Faker\\\\Provider\\\\en_ZA\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php',\n    'Faker\\\\Provider\\\\en_ZA\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php',\n    'Faker\\\\Provider\\\\es_AR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php',\n    'Faker\\\\Provider\\\\es_AR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php',\n    'Faker\\\\Provider\\\\es_AR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php',\n    'Faker\\\\Provider\\\\es_AR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php',\n    'Faker\\\\Provider\\\\es_ES\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php',\n    'Faker\\\\Provider\\\\es_ES\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php',\n    'Faker\\\\Provider\\\\es_PE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php',\n    'Faker\\\\Provider\\\\es_PE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php',\n    'Faker\\\\Provider\\\\es_PE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php',\n    'Faker\\\\Provider\\\\es_PE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\es_VE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php',\n    'Faker\\\\Provider\\\\es_VE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php',\n    'Faker\\\\Provider\\\\es_VE\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php',\n    'Faker\\\\Provider\\\\es_VE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php',\n    'Faker\\\\Provider\\\\es_VE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fa_IR\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php',\n    'Faker\\\\Provider\\\\fi_FI\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php',\n    'Faker\\\\Provider\\\\fr_BE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fr_CA\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php',\n    'Faker\\\\Provider\\\\fr_CA\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php',\n    'Faker\\\\Provider\\\\fr_CA\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fr_CH\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\fr_FR\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php',\n    'Faker\\\\Provider\\\\he_IL\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php',\n    'Faker\\\\Provider\\\\he_IL\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php',\n    'Faker\\\\Provider\\\\he_IL\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php',\n    'Faker\\\\Provider\\\\he_IL\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php',\n    'Faker\\\\Provider\\\\he_IL\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php',\n    'Faker\\\\Provider\\\\hr_HR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php',\n    'Faker\\\\Provider\\\\hr_HR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php',\n    'Faker\\\\Provider\\\\hr_HR\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php',\n    'Faker\\\\Provider\\\\hr_HR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php',\n    'Faker\\\\Provider\\\\hr_HR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php',\n    'Faker\\\\Provider\\\\hu_HU\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php',\n    'Faker\\\\Provider\\\\hy_AM\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php',\n    'Faker\\\\Provider\\\\id_ID\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php',\n    'Faker\\\\Provider\\\\id_ID\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php',\n    'Faker\\\\Provider\\\\id_ID\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php',\n    'Faker\\\\Provider\\\\id_ID\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php',\n    'Faker\\\\Provider\\\\id_ID\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php',\n    'Faker\\\\Provider\\\\is_IS\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php',\n    'Faker\\\\Provider\\\\is_IS\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php',\n    'Faker\\\\Provider\\\\is_IS\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php',\n    'Faker\\\\Provider\\\\is_IS\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php',\n    'Faker\\\\Provider\\\\is_IS\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php',\n    'Faker\\\\Provider\\\\is_IS\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php',\n    'Faker\\\\Provider\\\\it_CH\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php',\n    'Faker\\\\Provider\\\\it_CH\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php',\n    'Faker\\\\Provider\\\\it_IT\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php',\n    'Faker\\\\Provider\\\\it_IT\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ja_JP\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ka_GE\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php',\n    'Faker\\\\Provider\\\\kk_KZ\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ko_KR\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php',\n    'Faker\\\\Provider\\\\lt_LT\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php',\n    'Faker\\\\Provider\\\\lv_LV\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php',\n    'Faker\\\\Provider\\\\me_ME\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php',\n    'Faker\\\\Provider\\\\me_ME\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php',\n    'Faker\\\\Provider\\\\me_ME\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php',\n    'Faker\\\\Provider\\\\me_ME\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php',\n    'Faker\\\\Provider\\\\me_ME\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',\n    'Faker\\\\Provider\\\\mn_MN\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',\n    'Faker\\\\Provider\\\\mn_MN\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\Miscellaneous' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',\n    'Faker\\\\Provider\\\\ms_MY\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',\n    'Faker\\\\Provider\\\\nb_NO\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',\n    'Faker\\\\Provider\\\\nb_NO\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',\n    'Faker\\\\Provider\\\\nb_NO\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',\n    'Faker\\\\Provider\\\\nb_NO\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php',\n    'Faker\\\\Provider\\\\nb_NO\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ne_NP\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php',\n    'Faker\\\\Provider\\\\ne_NP\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php',\n    'Faker\\\\Provider\\\\ne_NP\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php',\n    'Faker\\\\Provider\\\\ne_NP\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php',\n    'Faker\\\\Provider\\\\nl_BE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',\n    'Faker\\\\Provider\\\\nl_NL\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php',\n    'Faker\\\\Provider\\\\pl_PL\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php',\n    'Faker\\\\Provider\\\\pt_BR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\pt_PT\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php',\n    'Faker\\\\Provider\\\\pt_PT\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php',\n    'Faker\\\\Provider\\\\pt_PT\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php',\n    'Faker\\\\Provider\\\\pt_PT\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ro_MD\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php',\n    'Faker\\\\Provider\\\\ro_MD\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php',\n    'Faker\\\\Provider\\\\ro_MD\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php',\n    'Faker\\\\Provider\\\\ro_MD\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ro_MD\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php',\n    'Faker\\\\Provider\\\\ro_RO\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php',\n    'Faker\\\\Provider\\\\ro_RO\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php',\n    'Faker\\\\Provider\\\\ro_RO\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php',\n    'Faker\\\\Provider\\\\ro_RO\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ro_RO\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php',\n    'Faker\\\\Provider\\\\ru_RU\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',\n    'Faker\\\\Provider\\\\sk_SK\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',\n    'Faker\\\\Provider\\\\sl_SI\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php',\n    'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php',\n    'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php',\n    'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php',\n    'Faker\\\\Provider\\\\sr_Latn_RS\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php',\n    'Faker\\\\Provider\\\\sr_Latn_RS\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php',\n    'Faker\\\\Provider\\\\sr_Latn_RS\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php',\n    'Faker\\\\Provider\\\\sr_RS\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php',\n    'Faker\\\\Provider\\\\sr_RS\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php',\n    'Faker\\\\Provider\\\\sr_RS\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php',\n    'Faker\\\\Provider\\\\sv_SE\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php',\n    'Faker\\\\Provider\\\\sv_SE\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php',\n    'Faker\\\\Provider\\\\sv_SE\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php',\n    'Faker\\\\Provider\\\\sv_SE\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',\n    'Faker\\\\Provider\\\\sv_SE\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',\n    'Faker\\\\Provider\\\\th_TH\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',\n    'Faker\\\\Provider\\\\th_TH\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',\n    'Faker\\\\Provider\\\\th_TH\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',\n    'Faker\\\\Provider\\\\th_TH\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',\n    'Faker\\\\Provider\\\\th_TH\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',\n    'Faker\\\\Provider\\\\th_TH\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php',\n    'Faker\\\\Provider\\\\tr_TR\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',\n    'Faker\\\\Provider\\\\uk_UA\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',\n    'Faker\\\\Provider\\\\vi_VN\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php',\n    'Faker\\\\Provider\\\\vi_VN\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php',\n    'Faker\\\\Provider\\\\vi_VN\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php',\n    'Faker\\\\Provider\\\\vi_VN\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php',\n    'Faker\\\\Provider\\\\vi_VN\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php',\n    'Faker\\\\Provider\\\\zh_CN\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Address' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Color' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Company' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\DateTime' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Internet' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Payment' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Person' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\PhoneNumber' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php',\n    'Faker\\\\Provider\\\\zh_TW\\\\Text' => $vendorDir . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php',\n    'Faker\\\\UniqueGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/UniqueGenerator.php',\n    'Faker\\\\ValidGenerator' => $vendorDir . '/fzaninotto/faker/src/Faker/ValidGenerator.php',\n    'Fideloper\\\\Proxy\\\\TrustProxies' => $vendorDir . '/fideloper/proxy/src/TrustProxies.php',\n    'Fideloper\\\\Proxy\\\\TrustedProxyServiceProvider' => $vendorDir . '/fideloper/proxy/src/TrustedProxyServiceProvider.php',\n    'Hamcrest\\\\Arrays\\\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayContainingInAnyOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayContainingInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayContainingKey' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayContainingKeyValuePair' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',\n    'Hamcrest\\\\Arrays\\\\IsArrayWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',\n    'Hamcrest\\\\Arrays\\\\MatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',\n    'Hamcrest\\\\Arrays\\\\SeriesMatchingOnce' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',\n    'Hamcrest\\\\AssertionError' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',\n    'Hamcrest\\\\BaseDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',\n    'Hamcrest\\\\BaseMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',\n    'Hamcrest\\\\Collection\\\\IsEmptyTraversable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',\n    'Hamcrest\\\\Collection\\\\IsTraversableWithSize' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',\n    'Hamcrest\\\\Core\\\\AllOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',\n    'Hamcrest\\\\Core\\\\AnyOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',\n    'Hamcrest\\\\Core\\\\CombinableMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',\n    'Hamcrest\\\\Core\\\\DescribedAs' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',\n    'Hamcrest\\\\Core\\\\Every' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',\n    'Hamcrest\\\\Core\\\\HasToString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',\n    'Hamcrest\\\\Core\\\\Is' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',\n    'Hamcrest\\\\Core\\\\IsAnything' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',\n    'Hamcrest\\\\Core\\\\IsCollectionContaining' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',\n    'Hamcrest\\\\Core\\\\IsEqual' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',\n    'Hamcrest\\\\Core\\\\IsIdentical' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',\n    'Hamcrest\\\\Core\\\\IsInstanceOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',\n    'Hamcrest\\\\Core\\\\IsNot' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',\n    'Hamcrest\\\\Core\\\\IsNull' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',\n    'Hamcrest\\\\Core\\\\IsSame' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',\n    'Hamcrest\\\\Core\\\\IsTypeOf' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',\n    'Hamcrest\\\\Core\\\\Set' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',\n    'Hamcrest\\\\Core\\\\ShortcutCombination' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',\n    'Hamcrest\\\\Description' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',\n    'Hamcrest\\\\DiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',\n    'Hamcrest\\\\FeatureMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',\n    'Hamcrest\\\\Internal\\\\SelfDescribingValue' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',\n    'Hamcrest\\\\Matcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',\n    'Hamcrest\\\\MatcherAssert' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',\n    'Hamcrest\\\\Matchers' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',\n    'Hamcrest\\\\NullDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',\n    'Hamcrest\\\\Number\\\\IsCloseTo' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',\n    'Hamcrest\\\\Number\\\\OrderingComparison' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',\n    'Hamcrest\\\\SelfDescribing' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',\n    'Hamcrest\\\\StringDescription' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',\n    'Hamcrest\\\\Text\\\\IsEmptyString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',\n    'Hamcrest\\\\Text\\\\IsEqualIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',\n    'Hamcrest\\\\Text\\\\IsEqualIgnoringWhiteSpace' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',\n    'Hamcrest\\\\Text\\\\MatchesPattern' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',\n    'Hamcrest\\\\Text\\\\StringContains' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',\n    'Hamcrest\\\\Text\\\\StringContainsIgnoringCase' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',\n    'Hamcrest\\\\Text\\\\StringContainsInOrder' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',\n    'Hamcrest\\\\Text\\\\StringEndsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',\n    'Hamcrest\\\\Text\\\\StringStartsWith' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',\n    'Hamcrest\\\\Text\\\\SubstringMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',\n    'Hamcrest\\\\TypeSafeDiagnosingMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',\n    'Hamcrest\\\\TypeSafeMatcher' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',\n    'Hamcrest\\\\Type\\\\IsArray' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',\n    'Hamcrest\\\\Type\\\\IsBoolean' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',\n    'Hamcrest\\\\Type\\\\IsCallable' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',\n    'Hamcrest\\\\Type\\\\IsDouble' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',\n    'Hamcrest\\\\Type\\\\IsInteger' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',\n    'Hamcrest\\\\Type\\\\IsNumeric' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',\n    'Hamcrest\\\\Type\\\\IsObject' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',\n    'Hamcrest\\\\Type\\\\IsResource' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',\n    'Hamcrest\\\\Type\\\\IsScalar' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',\n    'Hamcrest\\\\Type\\\\IsString' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',\n    'Hamcrest\\\\Util' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',\n    'Hamcrest\\\\Xml\\\\HasXPath' => $vendorDir . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',\n    'Ichynul\\\\Configx\\\\Configx' => $vendorDir . '/ichynul/configx/src/Configx.php',\n    'Ichynul\\\\Configx\\\\ConfigxModel' => $vendorDir . '/ichynul/configx/src/ConfigModel.php',\n    'Ichynul\\\\Configx\\\\ConfigxServiceProvider' => $vendorDir . '/ichynul/configx/src/ConfigxServiceProvider.php',\n    'Ichynul\\\\Configx\\\\Field\\\\Outer' => $vendorDir . '/ichynul/configx/src/Field/Outer.php',\n    'Ichynul\\\\Configx\\\\Field\\\\TestText' => $vendorDir . '/ichynul/configx/src/Field/TestText.php',\n    'Ichynul\\\\Configx\\\\FormWgt' => $vendorDir . '/ichynul/configx/src/FormWgt.php',\n    'Ichynul\\\\Configx\\\\Http\\\\Controllers\\\\ConfigxController' => $vendorDir . '/ichynul/configx/src/Http/Controllers/ConfigxController.php',\n    'Ichynul\\\\Configx\\\\Tools\\\\Builder' => $vendorDir . '/ichynul/configx/src/Tools/Builder.php',\n    'Ichynul\\\\Configx\\\\Tools\\\\Displayer' => $vendorDir . '/ichynul/configx/src/Tools/Displayer.php',\n    'Ichynul\\\\Configx\\\\Tools\\\\Tool' => $vendorDir . '/ichynul/configx/src/Tools/Tool.php',\n    'Ichynul\\\\Configx\\\\Tools\\\\Tree' => $vendorDir . '/ichynul/configx/src/Tools/Tree.php',\n    'Ichynul\\\\Configx\\\\Tools\\\\Updater' => $vendorDir . '/ichynul/configx/src/Tools/Updater.php',\n    'Ichynul\\\\RowTable\\\\Field\\\\Collect' => $vendorDir . '/ichynul/row-table/src/Field/Collect.php',\n    'Ichynul\\\\RowTable\\\\Field\\\\CollectValidator' => $vendorDir . '/ichynul/row-table/src/Field/CollectValidator.php',\n    'Ichynul\\\\RowTable\\\\Field\\\\Show' => $vendorDir . '/ichynul/row-table/src/Field/Show.php',\n    'Ichynul\\\\RowTable\\\\Field\\\\TextSmall' => $vendorDir . '/ichynul/row-table/src/Field/TextSmall.php',\n    'Ichynul\\\\RowTable\\\\FromTable' => $vendorDir . '/ichynul/row-table/src/FromTable.php',\n    'Ichynul\\\\RowTable\\\\RowTableServiceProvider' => $vendorDir . '/ichynul/row-table/src/RowTableServiceProvider.php',\n    'Ichynul\\\\RowTable\\\\Table' => $vendorDir . '/ichynul/row-table/src/Table.php',\n    'Ichynul\\\\RowTable\\\\TableExtension' => $vendorDir . '/ichynul/row-table/src/TableExtension.php',\n    'Ichynul\\\\RowTable\\\\TableRow' => $vendorDir . '/ichynul/row-table/src/TableRow.php',\n    'Illuminate\\\\Auth\\\\Access\\\\AuthorizationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php',\n    'Illuminate\\\\Auth\\\\Access\\\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php',\n    'Illuminate\\\\Auth\\\\Access\\\\HandlesAuthorization' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php',\n    'Illuminate\\\\Auth\\\\Access\\\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Access/Response.php',\n    'Illuminate\\\\Auth\\\\AuthManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthManager.php',\n    'Illuminate\\\\Auth\\\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php',\n    'Illuminate\\\\Auth\\\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php',\n    'Illuminate\\\\Auth\\\\AuthenticationException' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php',\n    'Illuminate\\\\Auth\\\\Console\\\\AuthMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php',\n    'Illuminate\\\\Auth\\\\Console\\\\ClearResetsCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php',\n    'Illuminate\\\\Auth\\\\CreatesUserProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php',\n    'Illuminate\\\\Auth\\\\DatabaseUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php',\n    'Illuminate\\\\Auth\\\\EloquentUserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Attempting' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Authenticated' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Failed' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Lockout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Login' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Login.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Logout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php',\n    'Illuminate\\\\Auth\\\\Events\\\\OtherDeviceLogout' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/OtherDeviceLogout.php',\n    'Illuminate\\\\Auth\\\\Events\\\\PasswordReset' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Registered' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php',\n    'Illuminate\\\\Auth\\\\Events\\\\Verified' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Events/Verified.php',\n    'Illuminate\\\\Auth\\\\GenericUser' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GenericUser.php',\n    'Illuminate\\\\Auth\\\\GuardHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php',\n    'Illuminate\\\\Auth\\\\Listeners\\\\SendEmailVerificationNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Listeners/SendEmailVerificationNotification.php',\n    'Illuminate\\\\Auth\\\\Middleware\\\\Authenticate' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php',\n    'Illuminate\\\\Auth\\\\Middleware\\\\AuthenticateWithBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php',\n    'Illuminate\\\\Auth\\\\Middleware\\\\Authorize' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php',\n    'Illuminate\\\\Auth\\\\Middleware\\\\EnsureEmailIsVerified' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php',\n    'Illuminate\\\\Auth\\\\MustVerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/MustVerifyEmail.php',\n    'Illuminate\\\\Auth\\\\Notifications\\\\ResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php',\n    'Illuminate\\\\Auth\\\\Notifications\\\\VerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\DatabaseTokenRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\PasswordBrokerManager' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\PasswordResetServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php',\n    'Illuminate\\\\Auth\\\\Passwords\\\\TokenRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php',\n    'Illuminate\\\\Auth\\\\Recaller' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/Recaller.php',\n    'Illuminate\\\\Auth\\\\RequestGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php',\n    'Illuminate\\\\Auth\\\\SessionGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php',\n    'Illuminate\\\\Auth\\\\TokenGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php',\n    'Illuminate\\\\Broadcasting\\\\BroadcastController' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php',\n    'Illuminate\\\\Broadcasting\\\\BroadcastEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php',\n    'Illuminate\\\\Broadcasting\\\\BroadcastException' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php',\n    'Illuminate\\\\Broadcasting\\\\BroadcastManager' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php',\n    'Illuminate\\\\Broadcasting\\\\BroadcastServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\LogBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\NullBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\PusherBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\RedisBroadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php',\n    'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\UsePusherChannelConventions' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/UsePusherChannelConventions.php',\n    'Illuminate\\\\Broadcasting\\\\Channel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php',\n    'Illuminate\\\\Broadcasting\\\\InteractsWithSockets' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php',\n    'Illuminate\\\\Broadcasting\\\\PendingBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php',\n    'Illuminate\\\\Broadcasting\\\\PresenceChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php',\n    'Illuminate\\\\Broadcasting\\\\PrivateChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php',\n    'Illuminate\\\\Bus\\\\BusServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php',\n    'Illuminate\\\\Bus\\\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php',\n    'Illuminate\\\\Bus\\\\Queueable' => $vendorDir . '/laravel/framework/src/Illuminate/Bus/Queueable.php',\n    'Illuminate\\\\Cache\\\\ApcStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcStore.php',\n    'Illuminate\\\\Cache\\\\ApcWrapper' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php',\n    'Illuminate\\\\Cache\\\\ArrayStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php',\n    'Illuminate\\\\Cache\\\\CacheManager' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheManager.php',\n    'Illuminate\\\\Cache\\\\CacheServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php',\n    'Illuminate\\\\Cache\\\\Console\\\\CacheTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php',\n    'Illuminate\\\\Cache\\\\Console\\\\ClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php',\n    'Illuminate\\\\Cache\\\\Console\\\\ForgetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php',\n    'Illuminate\\\\Cache\\\\DatabaseStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php',\n    'Illuminate\\\\Cache\\\\DynamoDbLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/DynamoDbLock.php',\n    'Illuminate\\\\Cache\\\\DynamoDbStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php',\n    'Illuminate\\\\Cache\\\\Events\\\\CacheEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php',\n    'Illuminate\\\\Cache\\\\Events\\\\CacheHit' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php',\n    'Illuminate\\\\Cache\\\\Events\\\\CacheMissed' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php',\n    'Illuminate\\\\Cache\\\\Events\\\\KeyForgotten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php',\n    'Illuminate\\\\Cache\\\\Events\\\\KeyWritten' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php',\n    'Illuminate\\\\Cache\\\\FileStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/FileStore.php',\n    'Illuminate\\\\Cache\\\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Lock.php',\n    'Illuminate\\\\Cache\\\\LuaScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/LuaScripts.php',\n    'Illuminate\\\\Cache\\\\MemcachedConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php',\n    'Illuminate\\\\Cache\\\\MemcachedLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php',\n    'Illuminate\\\\Cache\\\\MemcachedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php',\n    'Illuminate\\\\Cache\\\\NullStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/NullStore.php',\n    'Illuminate\\\\Cache\\\\RateLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php',\n    'Illuminate\\\\Cache\\\\RedisLock' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisLock.php',\n    'Illuminate\\\\Cache\\\\RedisStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisStore.php',\n    'Illuminate\\\\Cache\\\\RedisTaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php',\n    'Illuminate\\\\Cache\\\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/Repository.php',\n    'Illuminate\\\\Cache\\\\RetrievesMultipleKeys' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php',\n    'Illuminate\\\\Cache\\\\TagSet' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TagSet.php',\n    'Illuminate\\\\Cache\\\\TaggableStore' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php',\n    'Illuminate\\\\Cache\\\\TaggedCache' => $vendorDir . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php',\n    'Illuminate\\\\Config\\\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Config/Repository.php',\n    'Illuminate\\\\Console\\\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Application.php',\n    'Illuminate\\\\Console\\\\Command' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Command.php',\n    'Illuminate\\\\Console\\\\ConfirmableTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php',\n    'Illuminate\\\\Console\\\\DetectsApplicationNamespace' => $vendorDir . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php',\n    'Illuminate\\\\Console\\\\Events\\\\ArtisanStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php',\n    'Illuminate\\\\Console\\\\Events\\\\CommandFinished' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php',\n    'Illuminate\\\\Console\\\\Events\\\\CommandStarting' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php',\n    'Illuminate\\\\Console\\\\GeneratorCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php',\n    'Illuminate\\\\Console\\\\OutputStyle' => $vendorDir . '/laravel/framework/src/Illuminate/Console/OutputStyle.php',\n    'Illuminate\\\\Console\\\\Parser' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Parser.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\CacheEventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\CacheSchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\CallbackEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\CommandBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\EventMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\ManagesFrequencies' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\Schedule' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\ScheduleFinishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\ScheduleRunCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php',\n    'Illuminate\\\\Console\\\\Scheduling\\\\SchedulingMutex' => $vendorDir . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php',\n    'Illuminate\\\\Container\\\\BoundMethod' => $vendorDir . '/laravel/framework/src/Illuminate/Container/BoundMethod.php',\n    'Illuminate\\\\Container\\\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Container/Container.php',\n    'Illuminate\\\\Container\\\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php',\n    'Illuminate\\\\Container\\\\EntryNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php',\n    'Illuminate\\\\Container\\\\RewindableGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Container/RewindableGenerator.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\Authenticatable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\CanResetPassword' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\Guard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\MustVerifyEmail' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\PasswordBroker' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\PasswordBrokerFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\StatefulGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\SupportsBasicAuth' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php',\n    'Illuminate\\\\Contracts\\\\Auth\\\\UserProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php',\n    'Illuminate\\\\Contracts\\\\Broadcasting\\\\Broadcaster' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php',\n    'Illuminate\\\\Contracts\\\\Broadcasting\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php',\n    'Illuminate\\\\Contracts\\\\Broadcasting\\\\ShouldBroadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php',\n    'Illuminate\\\\Contracts\\\\Broadcasting\\\\ShouldBroadcastNow' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php',\n    'Illuminate\\\\Contracts\\\\Bus\\\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php',\n    'Illuminate\\\\Contracts\\\\Bus\\\\QueueingDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\Lock' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\LockProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\LockTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php',\n    'Illuminate\\\\Contracts\\\\Cache\\\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php',\n    'Illuminate\\\\Contracts\\\\Config\\\\Repository' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php',\n    'Illuminate\\\\Contracts\\\\Console\\\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php',\n    'Illuminate\\\\Contracts\\\\Console\\\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php',\n    'Illuminate\\\\Contracts\\\\Container\\\\BindingResolutionException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php',\n    'Illuminate\\\\Contracts\\\\Container\\\\Container' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php',\n    'Illuminate\\\\Contracts\\\\Container\\\\ContextualBindingBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php',\n    'Illuminate\\\\Contracts\\\\Cookie\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php',\n    'Illuminate\\\\Contracts\\\\Cookie\\\\QueueingFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php',\n    'Illuminate\\\\Contracts\\\\Database\\\\Events\\\\MigrationEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Database/Events/MigrationEvent.php',\n    'Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php',\n    'Illuminate\\\\Contracts\\\\Debug\\\\ExceptionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php',\n    'Illuminate\\\\Contracts\\\\Encryption\\\\DecryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php',\n    'Illuminate\\\\Contracts\\\\Encryption\\\\EncryptException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php',\n    'Illuminate\\\\Contracts\\\\Encryption\\\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php',\n    'Illuminate\\\\Contracts\\\\Events\\\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php',\n    'Illuminate\\\\Contracts\\\\Filesystem\\\\Cloud' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php',\n    'Illuminate\\\\Contracts\\\\Filesystem\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php',\n    'Illuminate\\\\Contracts\\\\Filesystem\\\\FileExistsException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileExistsException.php',\n    'Illuminate\\\\Contracts\\\\Filesystem\\\\FileNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php',\n    'Illuminate\\\\Contracts\\\\Filesystem\\\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php',\n    'Illuminate\\\\Contracts\\\\Foundation\\\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php',\n    'Illuminate\\\\Contracts\\\\Hashing\\\\Hasher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php',\n    'Illuminate\\\\Contracts\\\\Http\\\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php',\n    'Illuminate\\\\Contracts\\\\Mail\\\\MailQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php',\n    'Illuminate\\\\Contracts\\\\Mail\\\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php',\n    'Illuminate\\\\Contracts\\\\Mail\\\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php',\n    'Illuminate\\\\Contracts\\\\Notifications\\\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php',\n    'Illuminate\\\\Contracts\\\\Notifications\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php',\n    'Illuminate\\\\Contracts\\\\Pagination\\\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php',\n    'Illuminate\\\\Contracts\\\\Pagination\\\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php',\n    'Illuminate\\\\Contracts\\\\Pipeline\\\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php',\n    'Illuminate\\\\Contracts\\\\Pipeline\\\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\EntityNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\EntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\Monitor' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\QueueableCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\QueueableEntity' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php',\n    'Illuminate\\\\Contracts\\\\Queue\\\\ShouldQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php',\n    'Illuminate\\\\Contracts\\\\Redis\\\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php',\n    'Illuminate\\\\Contracts\\\\Redis\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php',\n    'Illuminate\\\\Contracts\\\\Redis\\\\LimiterTimeoutException' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php',\n    'Illuminate\\\\Contracts\\\\Routing\\\\BindingRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php',\n    'Illuminate\\\\Contracts\\\\Routing\\\\Registrar' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php',\n    'Illuminate\\\\Contracts\\\\Routing\\\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php',\n    'Illuminate\\\\Contracts\\\\Routing\\\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php',\n    'Illuminate\\\\Contracts\\\\Routing\\\\UrlRoutable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php',\n    'Illuminate\\\\Contracts\\\\Session\\\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\Arrayable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\DeferrableProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/DeferrableProvider.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\Htmlable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\Jsonable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\MessageProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\Renderable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php',\n    'Illuminate\\\\Contracts\\\\Support\\\\Responsable' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php',\n    'Illuminate\\\\Contracts\\\\Translation\\\\HasLocalePreference' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/HasLocalePreference.php',\n    'Illuminate\\\\Contracts\\\\Translation\\\\Loader' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php',\n    'Illuminate\\\\Contracts\\\\Translation\\\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php',\n    'Illuminate\\\\Contracts\\\\Validation\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php',\n    'Illuminate\\\\Contracts\\\\Validation\\\\ImplicitRule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php',\n    'Illuminate\\\\Contracts\\\\Validation\\\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php',\n    'Illuminate\\\\Contracts\\\\Validation\\\\ValidatesWhenResolved' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php',\n    'Illuminate\\\\Contracts\\\\Validation\\\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php',\n    'Illuminate\\\\Contracts\\\\View\\\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php',\n    'Illuminate\\\\Contracts\\\\View\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php',\n    'Illuminate\\\\Contracts\\\\View\\\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Contracts/View/View.php',\n    'Illuminate\\\\Cookie\\\\CookieJar' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php',\n    'Illuminate\\\\Cookie\\\\CookieServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php',\n    'Illuminate\\\\Cookie\\\\Middleware\\\\AddQueuedCookiesToResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php',\n    'Illuminate\\\\Cookie\\\\Middleware\\\\EncryptCookies' => $vendorDir . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php',\n    'Illuminate\\\\Database\\\\Capsule\\\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php',\n    'Illuminate\\\\Database\\\\Concerns\\\\BuildsQueries' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php',\n    'Illuminate\\\\Database\\\\Concerns\\\\ManagesTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php',\n    'Illuminate\\\\Database\\\\ConfigurationUrlParser' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConfigurationUrlParser.php',\n    'Illuminate\\\\Database\\\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connection.php',\n    'Illuminate\\\\Database\\\\ConnectionInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php',\n    'Illuminate\\\\Database\\\\ConnectionResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php',\n    'Illuminate\\\\Database\\\\ConnectionResolverInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\ConnectionFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\Connector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\MySqlConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\PostgresConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\SQLiteConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php',\n    'Illuminate\\\\Database\\\\Connectors\\\\SqlServerConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php',\n    'Illuminate\\\\Database\\\\Console\\\\Factories\\\\FactoryMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\BaseCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\FreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\InstallCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\MigrateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\MigrateMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\RefreshCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\ResetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\RollbackCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\StatusCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\TableGuesser' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php',\n    'Illuminate\\\\Database\\\\Console\\\\Seeds\\\\SeedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php',\n    'Illuminate\\\\Database\\\\Console\\\\Seeds\\\\SeederMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php',\n    'Illuminate\\\\Database\\\\DatabaseManager' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php',\n    'Illuminate\\\\Database\\\\DatabaseServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php',\n    'Illuminate\\\\Database\\\\DetectsDeadlocks' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php',\n    'Illuminate\\\\Database\\\\DetectsLostConnections' => $vendorDir . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\GuardsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasGlobalScopes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasTimestamps' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HidesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\QueriesRelationships' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\FactoryBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\HigherOrderBuilderProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/HigherOrderBuilderProxy.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\JsonEncodingException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\MassAssignmentException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Model' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\ModelNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\QueueEntityResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\RelationNotFoundException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\BelongsTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\BelongsToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\AsPivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\InteractsWithPivotTable' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\SupportsDefaultModels' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasManyThrough' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOneThrough' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneThrough.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphOne' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphOneOrMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphPivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphTo' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphToMany' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Pivot' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Relation' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\Scope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\SoftDeletes' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php',\n    'Illuminate\\\\Database\\\\Eloquent\\\\SoftDeletingScope' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php',\n    'Illuminate\\\\Database\\\\Events\\\\ConnectionEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php',\n    'Illuminate\\\\Database\\\\Events\\\\MigrationEnded' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/MigrationEnded.php',\n    'Illuminate\\\\Database\\\\Events\\\\MigrationEvent' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php',\n    'Illuminate\\\\Database\\\\Events\\\\MigrationStarted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/MigrationStarted.php',\n    'Illuminate\\\\Database\\\\Events\\\\MigrationsEnded' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/MigrationsEnded.php',\n    'Illuminate\\\\Database\\\\Events\\\\MigrationsStarted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/MigrationsStarted.php',\n    'Illuminate\\\\Database\\\\Events\\\\QueryExecuted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php',\n    'Illuminate\\\\Database\\\\Events\\\\StatementPrepared' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php',\n    'Illuminate\\\\Database\\\\Events\\\\TransactionBeginning' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php',\n    'Illuminate\\\\Database\\\\Events\\\\TransactionCommitted' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php',\n    'Illuminate\\\\Database\\\\Events\\\\TransactionRolledBack' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php',\n    'Illuminate\\\\Database\\\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Grammar.php',\n    'Illuminate\\\\Database\\\\MigrationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php',\n    'Illuminate\\\\Database\\\\Migrations\\\\DatabaseMigrationRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php',\n    'Illuminate\\\\Database\\\\Migrations\\\\Migration' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php',\n    'Illuminate\\\\Database\\\\Migrations\\\\MigrationCreator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php',\n    'Illuminate\\\\Database\\\\Migrations\\\\MigrationRepositoryInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php',\n    'Illuminate\\\\Database\\\\Migrations\\\\Migrator' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php',\n    'Illuminate\\\\Database\\\\MySqlConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php',\n    'Illuminate\\\\Database\\\\PostgresConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php',\n    'Illuminate\\\\Database\\\\QueryException' => $vendorDir . '/laravel/framework/src/Illuminate/Database/QueryException.php',\n    'Illuminate\\\\Database\\\\Query\\\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Builder.php',\n    'Illuminate\\\\Database\\\\Query\\\\Expression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Expression.php',\n    'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php',\n    'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php',\n    'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php',\n    'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php',\n    'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php',\n    'Illuminate\\\\Database\\\\Query\\\\JoinClause' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php',\n    'Illuminate\\\\Database\\\\Query\\\\JsonExpression' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php',\n    'Illuminate\\\\Database\\\\Query\\\\Processors\\\\MySqlProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php',\n    'Illuminate\\\\Database\\\\Query\\\\Processors\\\\PostgresProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php',\n    'Illuminate\\\\Database\\\\Query\\\\Processors\\\\Processor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php',\n    'Illuminate\\\\Database\\\\Query\\\\Processors\\\\SQLiteProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php',\n    'Illuminate\\\\Database\\\\Query\\\\Processors\\\\SqlServerProcessor' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php',\n    'Illuminate\\\\Database\\\\SQLiteConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Blueprint' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Builder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php',\n    'Illuminate\\\\Database\\\\Schema\\\\ColumnDefinition' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/ColumnDefinition.php',\n    'Illuminate\\\\Database\\\\Schema\\\\ForeignKeyDefinition' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\ChangeColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\Grammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\MySqlGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\PostgresGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\RenameColumn' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\SQLiteGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php',\n    'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\SqlServerGrammar' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php',\n    'Illuminate\\\\Database\\\\Schema\\\\MySqlBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php',\n    'Illuminate\\\\Database\\\\Schema\\\\PostgresBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php',\n    'Illuminate\\\\Database\\\\Schema\\\\SQLiteBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php',\n    'Illuminate\\\\Database\\\\Schema\\\\SqlServerBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php',\n    'Illuminate\\\\Database\\\\Seeder' => $vendorDir . '/laravel/framework/src/Illuminate/Database/Seeder.php',\n    'Illuminate\\\\Database\\\\SqlServerConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php',\n    'Illuminate\\\\Encryption\\\\Encrypter' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php',\n    'Illuminate\\\\Encryption\\\\EncryptionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php',\n    'Illuminate\\\\Events\\\\CallQueuedListener' => $vendorDir . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php',\n    'Illuminate\\\\Events\\\\Dispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Events/Dispatcher.php',\n    'Illuminate\\\\Events\\\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php',\n    'Illuminate\\\\Filesystem\\\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Cache.php',\n    'Illuminate\\\\Filesystem\\\\Filesystem' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php',\n    'Illuminate\\\\Filesystem\\\\FilesystemAdapter' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php',\n    'Illuminate\\\\Filesystem\\\\FilesystemManager' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php',\n    'Illuminate\\\\Filesystem\\\\FilesystemServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\AliasLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php',\n    'Illuminate\\\\Foundation\\\\Application' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Application.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\Access\\\\Authorizable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\Access\\\\AuthorizesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\AuthenticatesUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\RedirectsUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\RegistersUsers' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\ResetsPasswords' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\SendsPasswordResetEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\ThrottlesLogins' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\User' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php',\n    'Illuminate\\\\Foundation\\\\Auth\\\\VerifiesEmails' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Auth/VerifiesEmails.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\BootProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\LoadConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\LoadEnvironmentVariables' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\RegisterFacades' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\RegisterProviders' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php',\n    'Illuminate\\\\Foundation\\\\Bootstrap\\\\SetRequestForConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php',\n    'Illuminate\\\\Foundation\\\\Bus\\\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php',\n    'Illuminate\\\\Foundation\\\\Bus\\\\DispatchesJobs' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php',\n    'Illuminate\\\\Foundation\\\\Bus\\\\PendingChain' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php',\n    'Illuminate\\\\Foundation\\\\Bus\\\\PendingDispatch' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php',\n    'Illuminate\\\\Foundation\\\\ComposerScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\AppNameCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ChannelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ClearCompiledCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ConfigCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ConfigClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ConsoleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\DownCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EnvironmentCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EventCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventCacheCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EventClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventClearCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EventGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EventListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventListCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\EventMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ExceptionMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\JobMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\KeyGenerateCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ListenerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\MailMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ModelMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\NotificationMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ObserverMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\OptimizeClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeClearCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\OptimizeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\PackageDiscoverCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\PolicyMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\PresetCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Bootstrap' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\None' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Preset' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\React' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Vue' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ProviderMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\QueuedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\RequestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ResourceMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\RouteCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\RouteClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\RouteListCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\RuleMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ServeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\StorageLinkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\TestMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\UpCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\VendorPublishCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ViewCacheCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php',\n    'Illuminate\\\\Foundation\\\\Console\\\\ViewClearCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php',\n    'Illuminate\\\\Foundation\\\\EnvironmentDetector' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php',\n    'Illuminate\\\\Foundation\\\\Events\\\\DiscoverEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php',\n    'Illuminate\\\\Foundation\\\\Events\\\\Dispatchable' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php',\n    'Illuminate\\\\Foundation\\\\Events\\\\LocaleUpdated' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php',\n    'Illuminate\\\\Foundation\\\\Exceptions\\\\Handler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php',\n    'Illuminate\\\\Foundation\\\\Exceptions\\\\WhoopsHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Events\\\\RequestHandled' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Exceptions\\\\MaintenanceModeException' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\FormRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Kernel' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\CheckForMaintenanceMode' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ConvertEmptyStringsToNull' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TrimStrings' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ValidatePostSize' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php',\n    'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\VerifyCsrfToken' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php',\n    'Illuminate\\\\Foundation\\\\Inspiring' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php',\n    'Illuminate\\\\Foundation\\\\Mix' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Mix.php',\n    'Illuminate\\\\Foundation\\\\PackageManifest' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php',\n    'Illuminate\\\\Foundation\\\\ProviderRepository' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php',\n    'Illuminate\\\\Foundation\\\\Providers\\\\ArtisanServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Providers\\\\ComposerServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Providers\\\\ConsoleSupportServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Providers\\\\FormRequestServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Providers\\\\FoundationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\AuthServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\EventServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\RouteServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Assert' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Assert.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithAuthentication' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithConsole' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithContainer' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithExceptionHandling' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithSession' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\MakesHttpRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\MocksApplicationServices' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\HasInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\SeeInOrder' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\SoftDeletedInDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\DatabaseMigrations' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\DatabaseTransactions' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\PendingCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\RefreshDatabase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\RefreshDatabaseState' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\TestCase' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\TestResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\WithFaker' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\WithoutEvents' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php',\n    'Illuminate\\\\Foundation\\\\Testing\\\\WithoutMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php',\n    'Illuminate\\\\Foundation\\\\Validation\\\\ValidatesRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php',\n    'Illuminate\\\\Hashing\\\\AbstractHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php',\n    'Illuminate\\\\Hashing\\\\Argon2IdHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php',\n    'Illuminate\\\\Hashing\\\\ArgonHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php',\n    'Illuminate\\\\Hashing\\\\BcryptHasher' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php',\n    'Illuminate\\\\Hashing\\\\HashManager' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashManager.php',\n    'Illuminate\\\\Hashing\\\\HashServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php',\n    'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithContentTypes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php',\n    'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithFlashData' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php',\n    'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithInput' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php',\n    'Illuminate\\\\Http\\\\Exceptions\\\\HttpResponseException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php',\n    'Illuminate\\\\Http\\\\Exceptions\\\\PostTooLargeException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php',\n    'Illuminate\\\\Http\\\\Exceptions\\\\ThrottleRequestsException' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php',\n    'Illuminate\\\\Http\\\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/File.php',\n    'Illuminate\\\\Http\\\\FileHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/Http/FileHelpers.php',\n    'Illuminate\\\\Http\\\\JsonResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/JsonResponse.php',\n    'Illuminate\\\\Http\\\\Middleware\\\\CheckResponseForModifications' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php',\n    'Illuminate\\\\Http\\\\Middleware\\\\FrameGuard' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php',\n    'Illuminate\\\\Http\\\\Middleware\\\\SetCacheHeaders' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php',\n    'Illuminate\\\\Http\\\\RedirectResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php',\n    'Illuminate\\\\Http\\\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Request.php',\n    'Illuminate\\\\Http\\\\Resources\\\\CollectsResources' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php',\n    'Illuminate\\\\Http\\\\Resources\\\\ConditionallyLoadsAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php',\n    'Illuminate\\\\Http\\\\Resources\\\\DelegatesToResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\AnonymousResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\JsonResource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\PaginatedResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\Resource' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\ResourceCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php',\n    'Illuminate\\\\Http\\\\Resources\\\\Json\\\\ResourceResponse' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php',\n    'Illuminate\\\\Http\\\\Resources\\\\MergeValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php',\n    'Illuminate\\\\Http\\\\Resources\\\\MissingValue' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php',\n    'Illuminate\\\\Http\\\\Resources\\\\PotentiallyMissing' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php',\n    'Illuminate\\\\Http\\\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Response.php',\n    'Illuminate\\\\Http\\\\ResponseTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php',\n    'Illuminate\\\\Http\\\\Testing\\\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/File.php',\n    'Illuminate\\\\Http\\\\Testing\\\\FileFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php',\n    'Illuminate\\\\Http\\\\Testing\\\\MimeType' => $vendorDir . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php',\n    'Illuminate\\\\Http\\\\UploadedFile' => $vendorDir . '/laravel/framework/src/Illuminate/Http/UploadedFile.php',\n    'Illuminate\\\\Log\\\\Events\\\\MessageLogged' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php',\n    'Illuminate\\\\Log\\\\LogManager' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogManager.php',\n    'Illuminate\\\\Log\\\\LogServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php',\n    'Illuminate\\\\Log\\\\Logger' => $vendorDir . '/laravel/framework/src/Illuminate/Log/Logger.php',\n    'Illuminate\\\\Log\\\\ParsesLogConfiguration' => $vendorDir . '/laravel/framework/src/Illuminate/Log/ParsesLogConfiguration.php',\n    'Illuminate\\\\Mail\\\\Events\\\\MessageSending' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php',\n    'Illuminate\\\\Mail\\\\Events\\\\MessageSent' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php',\n    'Illuminate\\\\Mail\\\\MailServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php',\n    'Illuminate\\\\Mail\\\\Mailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailable.php',\n    'Illuminate\\\\Mail\\\\Mailer' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Mailer.php',\n    'Illuminate\\\\Mail\\\\Markdown' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Markdown.php',\n    'Illuminate\\\\Mail\\\\Message' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Message.php',\n    'Illuminate\\\\Mail\\\\PendingMail' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/PendingMail.php',\n    'Illuminate\\\\Mail\\\\SendQueuedMailable' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php',\n    'Illuminate\\\\Mail\\\\TransportManager' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/TransportManager.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\ArrayTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\LogTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\MailgunTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\MandrillTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\SesTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\SparkPostTransport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php',\n    'Illuminate\\\\Mail\\\\Transport\\\\Transport' => $vendorDir . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php',\n    'Illuminate\\\\Notifications\\\\Action' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Action.php',\n    'Illuminate\\\\Notifications\\\\AnonymousNotifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php',\n    'Illuminate\\\\Notifications\\\\ChannelManager' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php',\n    'Illuminate\\\\Notifications\\\\Channels\\\\BroadcastChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php',\n    'Illuminate\\\\Notifications\\\\Channels\\\\DatabaseChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php',\n    'Illuminate\\\\Notifications\\\\Channels\\\\MailChannel' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php',\n    'Illuminate\\\\Notifications\\\\Console\\\\NotificationTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php',\n    'Illuminate\\\\Notifications\\\\DatabaseNotification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php',\n    'Illuminate\\\\Notifications\\\\DatabaseNotificationCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php',\n    'Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php',\n    'Illuminate\\\\Notifications\\\\Events\\\\NotificationFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php',\n    'Illuminate\\\\Notifications\\\\Events\\\\NotificationSending' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php',\n    'Illuminate\\\\Notifications\\\\Events\\\\NotificationSent' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php',\n    'Illuminate\\\\Notifications\\\\HasDatabaseNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php',\n    'Illuminate\\\\Notifications\\\\Messages\\\\BroadcastMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php',\n    'Illuminate\\\\Notifications\\\\Messages\\\\DatabaseMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php',\n    'Illuminate\\\\Notifications\\\\Messages\\\\MailMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php',\n    'Illuminate\\\\Notifications\\\\Messages\\\\SimpleMessage' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php',\n    'Illuminate\\\\Notifications\\\\Notifiable' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php',\n    'Illuminate\\\\Notifications\\\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/Notification.php',\n    'Illuminate\\\\Notifications\\\\NotificationSender' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php',\n    'Illuminate\\\\Notifications\\\\NotificationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php',\n    'Illuminate\\\\Notifications\\\\RoutesNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php',\n    'Illuminate\\\\Notifications\\\\SendQueuedNotifications' => $vendorDir . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php',\n    'Illuminate\\\\Pagination\\\\AbstractPaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php',\n    'Illuminate\\\\Pagination\\\\LengthAwarePaginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php',\n    'Illuminate\\\\Pagination\\\\PaginationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php',\n    'Illuminate\\\\Pagination\\\\Paginator' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/Paginator.php',\n    'Illuminate\\\\Pagination\\\\UrlWindow' => $vendorDir . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php',\n    'Illuminate\\\\Pipeline\\\\Hub' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Hub.php',\n    'Illuminate\\\\Pipeline\\\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php',\n    'Illuminate\\\\Pipeline\\\\PipelineServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php',\n    'Illuminate\\\\Queue\\\\BeanstalkdQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php',\n    'Illuminate\\\\Queue\\\\CallQueuedClosure' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedClosure.php',\n    'Illuminate\\\\Queue\\\\CallQueuedHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php',\n    'Illuminate\\\\Queue\\\\Capsule\\\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\BeanstalkdConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\ConnectorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\DatabaseConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\NullConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\RedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\SqsConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php',\n    'Illuminate\\\\Queue\\\\Connectors\\\\SyncConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php',\n    'Illuminate\\\\Queue\\\\Console\\\\FailedTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\FlushFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\ForgetFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\ListFailedCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\ListenCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\RestartCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\RetryCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\TableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php',\n    'Illuminate\\\\Queue\\\\Console\\\\WorkCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php',\n    'Illuminate\\\\Queue\\\\DatabaseQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php',\n    'Illuminate\\\\Queue\\\\Events\\\\JobExceptionOccurred' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php',\n    'Illuminate\\\\Queue\\\\Events\\\\JobFailed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php',\n    'Illuminate\\\\Queue\\\\Events\\\\JobProcessed' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php',\n    'Illuminate\\\\Queue\\\\Events\\\\JobProcessing' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php',\n    'Illuminate\\\\Queue\\\\Events\\\\Looping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php',\n    'Illuminate\\\\Queue\\\\Events\\\\WorkerStopping' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php',\n    'Illuminate\\\\Queue\\\\Failed\\\\DatabaseFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php',\n    'Illuminate\\\\Queue\\\\Failed\\\\FailedJobProviderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php',\n    'Illuminate\\\\Queue\\\\Failed\\\\NullFailedJobProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php',\n    'Illuminate\\\\Queue\\\\InteractsWithQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php',\n    'Illuminate\\\\Queue\\\\InvalidPayloadException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\BeanstalkdJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\DatabaseJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\DatabaseJobRecord' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\Job' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\JobName' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\RedisJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\SqsJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php',\n    'Illuminate\\\\Queue\\\\Jobs\\\\SyncJob' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php',\n    'Illuminate\\\\Queue\\\\Listener' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Listener.php',\n    'Illuminate\\\\Queue\\\\ListenerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php',\n    'Illuminate\\\\Queue\\\\LuaScripts' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php',\n    'Illuminate\\\\Queue\\\\ManuallyFailedException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php',\n    'Illuminate\\\\Queue\\\\MaxAttemptsExceededException' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php',\n    'Illuminate\\\\Queue\\\\NullQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/NullQueue.php',\n    'Illuminate\\\\Queue\\\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Queue.php',\n    'Illuminate\\\\Queue\\\\QueueManager' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueManager.php',\n    'Illuminate\\\\Queue\\\\QueueServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php',\n    'Illuminate\\\\Queue\\\\RedisQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php',\n    'Illuminate\\\\Queue\\\\SerializableClosure' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializableClosure.php',\n    'Illuminate\\\\Queue\\\\SerializesAndRestoresModelIdentifiers' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php',\n    'Illuminate\\\\Queue\\\\SerializesModels' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php',\n    'Illuminate\\\\Queue\\\\SqsQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php',\n    'Illuminate\\\\Queue\\\\SyncQueue' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php',\n    'Illuminate\\\\Queue\\\\Worker' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/Worker.php',\n    'Illuminate\\\\Queue\\\\WorkerOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php',\n    'Illuminate\\\\Redis\\\\Connections\\\\Connection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php',\n    'Illuminate\\\\Redis\\\\Connections\\\\PhpRedisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php',\n    'Illuminate\\\\Redis\\\\Connections\\\\PhpRedisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php',\n    'Illuminate\\\\Redis\\\\Connections\\\\PredisClusterConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php',\n    'Illuminate\\\\Redis\\\\Connections\\\\PredisConnection' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php',\n    'Illuminate\\\\Redis\\\\Connectors\\\\PhpRedisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php',\n    'Illuminate\\\\Redis\\\\Connectors\\\\PredisConnector' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php',\n    'Illuminate\\\\Redis\\\\Events\\\\CommandExecuted' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Events/CommandExecuted.php',\n    'Illuminate\\\\Redis\\\\Limiters\\\\ConcurrencyLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php',\n    'Illuminate\\\\Redis\\\\Limiters\\\\ConcurrencyLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php',\n    'Illuminate\\\\Redis\\\\Limiters\\\\DurationLimiter' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php',\n    'Illuminate\\\\Redis\\\\Limiters\\\\DurationLimiterBuilder' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php',\n    'Illuminate\\\\Redis\\\\RedisManager' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisManager.php',\n    'Illuminate\\\\Redis\\\\RedisServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php',\n    'Illuminate\\\\Routing\\\\Console\\\\ControllerMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php',\n    'Illuminate\\\\Routing\\\\Console\\\\MiddlewareMakeCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php',\n    'Illuminate\\\\Routing\\\\Contracts\\\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php',\n    'Illuminate\\\\Routing\\\\Controller' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Controller.php',\n    'Illuminate\\\\Routing\\\\ControllerDispatcher' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php',\n    'Illuminate\\\\Routing\\\\ControllerMiddlewareOptions' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php',\n    'Illuminate\\\\Routing\\\\Events\\\\RouteMatched' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php',\n    'Illuminate\\\\Routing\\\\Exceptions\\\\InvalidSignatureException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php',\n    'Illuminate\\\\Routing\\\\Exceptions\\\\UrlGenerationException' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php',\n    'Illuminate\\\\Routing\\\\ImplicitRouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php',\n    'Illuminate\\\\Routing\\\\Matching\\\\HostValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php',\n    'Illuminate\\\\Routing\\\\Matching\\\\MethodValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php',\n    'Illuminate\\\\Routing\\\\Matching\\\\SchemeValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php',\n    'Illuminate\\\\Routing\\\\Matching\\\\UriValidator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php',\n    'Illuminate\\\\Routing\\\\Matching\\\\ValidatorInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php',\n    'Illuminate\\\\Routing\\\\MiddlewareNameResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php',\n    'Illuminate\\\\Routing\\\\Middleware\\\\SubstituteBindings' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php',\n    'Illuminate\\\\Routing\\\\Middleware\\\\ThrottleRequests' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php',\n    'Illuminate\\\\Routing\\\\Middleware\\\\ThrottleRequestsWithRedis' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php',\n    'Illuminate\\\\Routing\\\\Middleware\\\\ValidateSignature' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php',\n    'Illuminate\\\\Routing\\\\PendingResourceRegistration' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php',\n    'Illuminate\\\\Routing\\\\Pipeline' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Pipeline.php',\n    'Illuminate\\\\Routing\\\\RedirectController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RedirectController.php',\n    'Illuminate\\\\Routing\\\\Redirector' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Redirector.php',\n    'Illuminate\\\\Routing\\\\ResourceRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php',\n    'Illuminate\\\\Routing\\\\ResponseFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php',\n    'Illuminate\\\\Routing\\\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Route.php',\n    'Illuminate\\\\Routing\\\\RouteAction' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteAction.php',\n    'Illuminate\\\\Routing\\\\RouteBinding' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php',\n    'Illuminate\\\\Routing\\\\RouteCollection' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php',\n    'Illuminate\\\\Routing\\\\RouteCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php',\n    'Illuminate\\\\Routing\\\\RouteDependencyResolverTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php',\n    'Illuminate\\\\Routing\\\\RouteFileRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php',\n    'Illuminate\\\\Routing\\\\RouteGroup' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php',\n    'Illuminate\\\\Routing\\\\RouteParameterBinder' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php',\n    'Illuminate\\\\Routing\\\\RouteRegistrar' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php',\n    'Illuminate\\\\Routing\\\\RouteSignatureParameters' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php',\n    'Illuminate\\\\Routing\\\\RouteUrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php',\n    'Illuminate\\\\Routing\\\\Router' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/Router.php',\n    'Illuminate\\\\Routing\\\\RoutingServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php',\n    'Illuminate\\\\Routing\\\\SortedMiddleware' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php',\n    'Illuminate\\\\Routing\\\\UrlGenerator' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php',\n    'Illuminate\\\\Routing\\\\ViewController' => $vendorDir . '/laravel/framework/src/Illuminate/Routing/ViewController.php',\n    'Illuminate\\\\Session\\\\CacheBasedSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php',\n    'Illuminate\\\\Session\\\\Console\\\\SessionTableCommand' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php',\n    'Illuminate\\\\Session\\\\CookieSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php',\n    'Illuminate\\\\Session\\\\DatabaseSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php',\n    'Illuminate\\\\Session\\\\EncryptedStore' => $vendorDir . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php',\n    'Illuminate\\\\Session\\\\ExistenceAwareInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php',\n    'Illuminate\\\\Session\\\\FileSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php',\n    'Illuminate\\\\Session\\\\Middleware\\\\AuthenticateSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php',\n    'Illuminate\\\\Session\\\\Middleware\\\\StartSession' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php',\n    'Illuminate\\\\Session\\\\NullSessionHandler' => $vendorDir . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php',\n    'Illuminate\\\\Session\\\\SessionManager' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionManager.php',\n    'Illuminate\\\\Session\\\\SessionServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php',\n    'Illuminate\\\\Session\\\\Store' => $vendorDir . '/laravel/framework/src/Illuminate/Session/Store.php',\n    'Illuminate\\\\Session\\\\TokenMismatchException' => $vendorDir . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php',\n    'Illuminate\\\\Support\\\\AggregateServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php',\n    'Illuminate\\\\Support\\\\Arr' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Arr.php',\n    'Illuminate\\\\Support\\\\Carbon' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Carbon.php',\n    'Illuminate\\\\Support\\\\Collection' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Collection.php',\n    'Illuminate\\\\Support\\\\Composer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Composer.php',\n    'Illuminate\\\\Support\\\\ConfigurationUrlParser' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php',\n    'Illuminate\\\\Support\\\\DateFactory' => $vendorDir . '/laravel/framework/src/Illuminate/Support/DateFactory.php',\n    'Illuminate\\\\Support\\\\Facades\\\\App' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/App.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Artisan' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Auth' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Blade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Broadcast' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Bus' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Cache' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Config' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Config.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Cookie' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Crypt' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php',\n    'Illuminate\\\\Support\\\\Facades\\\\DB' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/DB.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Date' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Date.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Event' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Event.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Facade' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php',\n    'Illuminate\\\\Support\\\\Facades\\\\File' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/File.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Gate' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Hash' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Input' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Input.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Lang' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Log' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Log.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Mail' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Notification' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Password' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Password.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Queue' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Redirect' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Redis' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Request' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Request.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Response' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Response.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Route' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Route.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Schema' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Session' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Session.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Storage' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php',\n    'Illuminate\\\\Support\\\\Facades\\\\URL' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/URL.php',\n    'Illuminate\\\\Support\\\\Facades\\\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php',\n    'Illuminate\\\\Support\\\\Facades\\\\View' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Facades/View.php',\n    'Illuminate\\\\Support\\\\Fluent' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Fluent.php',\n    'Illuminate\\\\Support\\\\HigherOrderCollectionProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php',\n    'Illuminate\\\\Support\\\\HigherOrderTapProxy' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php',\n    'Illuminate\\\\Support\\\\HtmlString' => $vendorDir . '/laravel/framework/src/Illuminate/Support/HtmlString.php',\n    'Illuminate\\\\Support\\\\InteractsWithTime' => $vendorDir . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php',\n    'Illuminate\\\\Support\\\\Manager' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Manager.php',\n    'Illuminate\\\\Support\\\\MessageBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/MessageBag.php',\n    'Illuminate\\\\Support\\\\NamespacedItemResolver' => $vendorDir . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php',\n    'Illuminate\\\\Support\\\\Optional' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Optional.php',\n    'Illuminate\\\\Support\\\\Pluralizer' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Pluralizer.php',\n    'Illuminate\\\\Support\\\\ProcessUtils' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php',\n    'Illuminate\\\\Support\\\\ServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php',\n    'Illuminate\\\\Support\\\\Str' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Str.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\BusFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\EventFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\MailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\NotificationFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\PendingMailFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php',\n    'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\QueueFake' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php',\n    'Illuminate\\\\Support\\\\Traits\\\\CapsuleManagerTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php',\n    'Illuminate\\\\Support\\\\Traits\\\\ForwardsCalls' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php',\n    'Illuminate\\\\Support\\\\Traits\\\\Localizable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php',\n    'Illuminate\\\\Support\\\\Traits\\\\Macroable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php',\n    'Illuminate\\\\Support\\\\Traits\\\\Tappable' => $vendorDir . '/laravel/framework/src/Illuminate/Support/Traits/Tappable.php',\n    'Illuminate\\\\Support\\\\ViewErrorBag' => $vendorDir . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php',\n    'Illuminate\\\\Translation\\\\ArrayLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php',\n    'Illuminate\\\\Translation\\\\FileLoader' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/FileLoader.php',\n    'Illuminate\\\\Translation\\\\MessageSelector' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php',\n    'Illuminate\\\\Translation\\\\TranslationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php',\n    'Illuminate\\\\Translation\\\\Translator' => $vendorDir . '/laravel/framework/src/Illuminate/Translation/Translator.php',\n    'Illuminate\\\\Validation\\\\ClosureValidationRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php',\n    'Illuminate\\\\Validation\\\\Concerns\\\\FormatsMessages' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php',\n    'Illuminate\\\\Validation\\\\Concerns\\\\ReplacesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php',\n    'Illuminate\\\\Validation\\\\Concerns\\\\ValidatesAttributes' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php',\n    'Illuminate\\\\Validation\\\\DatabasePresenceVerifier' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php',\n    'Illuminate\\\\Validation\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Factory.php',\n    'Illuminate\\\\Validation\\\\PresenceVerifierInterface' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php',\n    'Illuminate\\\\Validation\\\\Rule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rule.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\DatabaseRule' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\Dimensions' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\Exists' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\In' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/In.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\NotIn' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\RequiredIf' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/RequiredIf.php',\n    'Illuminate\\\\Validation\\\\Rules\\\\Unique' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php',\n    'Illuminate\\\\Validation\\\\UnauthorizedException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php',\n    'Illuminate\\\\Validation\\\\ValidatesWhenResolvedTrait' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php',\n    'Illuminate\\\\Validation\\\\ValidationData' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationData.php',\n    'Illuminate\\\\Validation\\\\ValidationException' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationException.php',\n    'Illuminate\\\\Validation\\\\ValidationRuleParser' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php',\n    'Illuminate\\\\Validation\\\\ValidationServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php',\n    'Illuminate\\\\Validation\\\\Validator' => $vendorDir . '/laravel/framework/src/Illuminate/Validation/Validator.php',\n    'Illuminate\\\\View\\\\Compilers\\\\BladeCompiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Compiler' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php',\n    'Illuminate\\\\View\\\\Compilers\\\\CompilerInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesAuthorizations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesComments' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesConditionals' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesEchos' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesErrors' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesErrors.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesHelpers' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesIncludes' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesInjections' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesJson' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesRawPhp' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php',\n    'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesComponents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesEvents' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesLayouts' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesLoops' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesStacks' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php',\n    'Illuminate\\\\View\\\\Concerns\\\\ManagesTranslations' => $vendorDir . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php',\n    'Illuminate\\\\View\\\\Engines\\\\CompilerEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php',\n    'Illuminate\\\\View\\\\Engines\\\\Engine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/Engine.php',\n    'Illuminate\\\\View\\\\Engines\\\\EngineResolver' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php',\n    'Illuminate\\\\View\\\\Engines\\\\FileEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php',\n    'Illuminate\\\\View\\\\Engines\\\\PhpEngine' => $vendorDir . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php',\n    'Illuminate\\\\View\\\\Factory' => $vendorDir . '/laravel/framework/src/Illuminate/View/Factory.php',\n    'Illuminate\\\\View\\\\FileViewFinder' => $vendorDir . '/laravel/framework/src/Illuminate/View/FileViewFinder.php',\n    'Illuminate\\\\View\\\\Middleware\\\\ShareErrorsFromSession' => $vendorDir . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php',\n    'Illuminate\\\\View\\\\View' => $vendorDir . '/laravel/framework/src/Illuminate/View/View.php',\n    'Illuminate\\\\View\\\\ViewFinderInterface' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php',\n    'Illuminate\\\\View\\\\ViewName' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewName.php',\n    'Illuminate\\\\View\\\\ViewServiceProvider' => $vendorDir . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php',\n    'JakubOnderka\\\\PhpConsoleColor\\\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/ConsoleColor.php',\n    'JakubOnderka\\\\PhpConsoleColor\\\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',\n    'JakubOnderka\\\\PhpConsoleHighlighter\\\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',\n    'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',\n    'Jxlwqq\\\\Simditor\\\\Editor' => $vendorDir . '/jxlwqq/simditor/src/Editor.php',\n    'Jxlwqq\\\\Simditor\\\\SimditorExtension' => $vendorDir . '/jxlwqq/simditor/src/SimditorExtension.php',\n    'Jxlwqq\\\\Simditor\\\\SimditorServiceProvider' => $vendorDir . '/jxlwqq/simditor/src/SimditorServiceProvider.php',\n    'Laravel\\\\Tinker\\\\ClassAliasAutoloader' => $vendorDir . '/laravel/tinker/src/ClassAliasAutoloader.php',\n    'Laravel\\\\Tinker\\\\Console\\\\TinkerCommand' => $vendorDir . '/laravel/tinker/src/Console/TinkerCommand.php',\n    'Laravel\\\\Tinker\\\\TinkerCaster' => $vendorDir . '/laravel/tinker/src/TinkerCaster.php',\n    'Laravel\\\\Tinker\\\\TinkerServiceProvider' => $vendorDir . '/laravel/tinker/src/TinkerServiceProvider.php',\n    'League\\\\Flysystem\\\\AdapterInterface' => $vendorDir . '/league/flysystem/src/AdapterInterface.php',\n    'League\\\\Flysystem\\\\Adapter\\\\AbstractAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractAdapter.php',\n    'League\\\\Flysystem\\\\Adapter\\\\AbstractFtpAdapter' => $vendorDir . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',\n    'League\\\\Flysystem\\\\Adapter\\\\CanOverwriteFiles' => $vendorDir . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Ftp' => $vendorDir . '/league/flysystem/src/Adapter/Ftp.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Ftpd' => $vendorDir . '/league/flysystem/src/Adapter/Ftpd.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Local' => $vendorDir . '/league/flysystem/src/Adapter/Local.php',\n    'League\\\\Flysystem\\\\Adapter\\\\NullAdapter' => $vendorDir . '/league/flysystem/src/Adapter/NullAdapter.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\NotSupportingVisibilityTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedCopyTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedReadingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',\n    'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedWritingTrait' => $vendorDir . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',\n    'League\\\\Flysystem\\\\Adapter\\\\SynologyFtp' => $vendorDir . '/league/flysystem/src/Adapter/SynologyFtp.php',\n    'League\\\\Flysystem\\\\Config' => $vendorDir . '/league/flysystem/src/Config.php',\n    'League\\\\Flysystem\\\\ConfigAwareTrait' => $vendorDir . '/league/flysystem/src/ConfigAwareTrait.php',\n    'League\\\\Flysystem\\\\Directory' => $vendorDir . '/league/flysystem/src/Directory.php',\n    'League\\\\Flysystem\\\\Exception' => $vendorDir . '/league/flysystem/src/Exception.php',\n    'League\\\\Flysystem\\\\File' => $vendorDir . '/league/flysystem/src/File.php',\n    'League\\\\Flysystem\\\\FileExistsException' => $vendorDir . '/league/flysystem/src/FileExistsException.php',\n    'League\\\\Flysystem\\\\FileNotFoundException' => $vendorDir . '/league/flysystem/src/FileNotFoundException.php',\n    'League\\\\Flysystem\\\\Filesystem' => $vendorDir . '/league/flysystem/src/Filesystem.php',\n    'League\\\\Flysystem\\\\FilesystemInterface' => $vendorDir . '/league/flysystem/src/FilesystemInterface.php',\n    'League\\\\Flysystem\\\\FilesystemNotFoundException' => $vendorDir . '/league/flysystem/src/FilesystemNotFoundException.php',\n    'League\\\\Flysystem\\\\Handler' => $vendorDir . '/league/flysystem/src/Handler.php',\n    'League\\\\Flysystem\\\\MountManager' => $vendorDir . '/league/flysystem/src/MountManager.php',\n    'League\\\\Flysystem\\\\NotSupportedException' => $vendorDir . '/league/flysystem/src/NotSupportedException.php',\n    'League\\\\Flysystem\\\\PluginInterface' => $vendorDir . '/league/flysystem/src/PluginInterface.php',\n    'League\\\\Flysystem\\\\Plugin\\\\AbstractPlugin' => $vendorDir . '/league/flysystem/src/Plugin/AbstractPlugin.php',\n    'League\\\\Flysystem\\\\Plugin\\\\EmptyDir' => $vendorDir . '/league/flysystem/src/Plugin/EmptyDir.php',\n    'League\\\\Flysystem\\\\Plugin\\\\ForcedCopy' => $vendorDir . '/league/flysystem/src/Plugin/ForcedCopy.php',\n    'League\\\\Flysystem\\\\Plugin\\\\ForcedRename' => $vendorDir . '/league/flysystem/src/Plugin/ForcedRename.php',\n    'League\\\\Flysystem\\\\Plugin\\\\GetWithMetadata' => $vendorDir . '/league/flysystem/src/Plugin/GetWithMetadata.php',\n    'League\\\\Flysystem\\\\Plugin\\\\ListFiles' => $vendorDir . '/league/flysystem/src/Plugin/ListFiles.php',\n    'League\\\\Flysystem\\\\Plugin\\\\ListPaths' => $vendorDir . '/league/flysystem/src/Plugin/ListPaths.php',\n    'League\\\\Flysystem\\\\Plugin\\\\ListWith' => $vendorDir . '/league/flysystem/src/Plugin/ListWith.php',\n    'League\\\\Flysystem\\\\Plugin\\\\PluggableTrait' => $vendorDir . '/league/flysystem/src/Plugin/PluggableTrait.php',\n    'League\\\\Flysystem\\\\Plugin\\\\PluginNotFoundException' => $vendorDir . '/league/flysystem/src/Plugin/PluginNotFoundException.php',\n    'League\\\\Flysystem\\\\ReadInterface' => $vendorDir . '/league/flysystem/src/ReadInterface.php',\n    'League\\\\Flysystem\\\\RootViolationException' => $vendorDir . '/league/flysystem/src/RootViolationException.php',\n    'League\\\\Flysystem\\\\SafeStorage' => $vendorDir . '/league/flysystem/src/SafeStorage.php',\n    'League\\\\Flysystem\\\\UnreadableFileException' => $vendorDir . '/league/flysystem/src/UnreadableFileException.php',\n    'League\\\\Flysystem\\\\Util' => $vendorDir . '/league/flysystem/src/Util.php',\n    'League\\\\Flysystem\\\\Util\\\\ContentListingFormatter' => $vendorDir . '/league/flysystem/src/Util/ContentListingFormatter.php',\n    'League\\\\Flysystem\\\\Util\\\\MimeType' => $vendorDir . '/league/flysystem/src/Util/MimeType.php',\n    'League\\\\Flysystem\\\\Util\\\\StreamHasher' => $vendorDir . '/league/flysystem/src/Util/StreamHasher.php',\n    'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV5' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV6' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV7' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV7.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerTrait' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerTrait.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegration' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegrationAssertPostConditionsForV7AndPrevious' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditionsForV7AndPrevious.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegrationAssertPostConditionsForV8' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditionsForV8.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCase' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCaseSetUpForV7AndPrevious' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCaseSetUpForV7AndPrevious.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCaseSetUpForV8' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCaseSetUpForV8.php',\n    'Mockery\\\\Adapter\\\\Phpunit\\\\TestListener' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php',\n    'Mockery\\\\ClosureWrapper' => $vendorDir . '/mockery/mockery/library/Mockery/ClosureWrapper.php',\n    'Mockery\\\\CompositeExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/CompositeExpectation.php',\n    'Mockery\\\\Configuration' => $vendorDir . '/mockery/mockery/library/Mockery/Configuration.php',\n    'Mockery\\\\Container' => $vendorDir . '/mockery/mockery/library/Mockery/Container.php',\n    'Mockery\\\\CountValidator\\\\AtLeast' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php',\n    'Mockery\\\\CountValidator\\\\AtMost' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php',\n    'Mockery\\\\CountValidator\\\\CountValidatorAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php',\n    'Mockery\\\\CountValidator\\\\Exact' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exact.php',\n    'Mockery\\\\CountValidator\\\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/CountValidator/Exception.php',\n    'Mockery\\\\Exception' => $vendorDir . '/mockery/mockery/library/Mockery/Exception.php',\n    'Mockery\\\\Exception\\\\BadMethodCallException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/BadMethodCallException.php',\n    'Mockery\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php',\n    'Mockery\\\\Exception\\\\InvalidCountException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php',\n    'Mockery\\\\Exception\\\\InvalidOrderException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php',\n    'Mockery\\\\Exception\\\\NoMatchingExpectationException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php',\n    'Mockery\\\\Exception\\\\RuntimeException' => $vendorDir . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php',\n    'Mockery\\\\Expectation' => $vendorDir . '/mockery/mockery/library/Mockery/Expectation.php',\n    'Mockery\\\\ExpectationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationDirector.php',\n    'Mockery\\\\ExpectationInterface' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectationInterface.php',\n    'Mockery\\\\ExpectsHigherOrderMessage' => $vendorDir . '/mockery/mockery/library/Mockery/ExpectsHigherOrderMessage.php',\n    'Mockery\\\\Generator\\\\CachingGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php',\n    'Mockery\\\\Generator\\\\DefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php',\n    'Mockery\\\\Generator\\\\Generator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Generator.php',\n    'Mockery\\\\Generator\\\\Method' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Method.php',\n    'Mockery\\\\Generator\\\\MockConfiguration' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php',\n    'Mockery\\\\Generator\\\\MockConfigurationBuilder' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php',\n    'Mockery\\\\Generator\\\\MockDefinition' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php',\n    'Mockery\\\\Generator\\\\Parameter' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/Parameter.php',\n    'Mockery\\\\Generator\\\\StringManipulationGenerator' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\CallTypeHintPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ClassNamePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ClassPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ConstantsPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\InstanceMockPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\InterfacePass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\MagicMethodTypeHintsPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\MethodDefinitionPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\Pass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveBuiltinMethodsThatAreFinalPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveDestructorPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveUnserializeForInternalSerializableClassesPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php',\n    'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\TraitPass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php',\n    'Mockery\\\\Generator\\\\TargetClassInterface' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php',\n    'Mockery\\\\Generator\\\\UndefinedTargetClass' => $vendorDir . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php',\n    'Mockery\\\\HigherOrderMessage' => $vendorDir . '/mockery/mockery/library/Mockery/HigherOrderMessage.php',\n    'Mockery\\\\Instantiator' => $vendorDir . '/mockery/mockery/library/Mockery/Instantiator.php',\n    'Mockery\\\\Loader\\\\EvalLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php',\n    'Mockery\\\\Loader\\\\Loader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/Loader.php',\n    'Mockery\\\\Loader\\\\RequireLoader' => $vendorDir . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php',\n    'Mockery\\\\Matcher\\\\AndAnyOtherArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php',\n    'Mockery\\\\Matcher\\\\Any' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Any.php',\n    'Mockery\\\\Matcher\\\\AnyArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AnyArgs.php',\n    'Mockery\\\\Matcher\\\\AnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php',\n    'Mockery\\\\Matcher\\\\ArgumentListMatcher' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php',\n    'Mockery\\\\Matcher\\\\Closure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Closure.php',\n    'Mockery\\\\Matcher\\\\Contains' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Contains.php',\n    'Mockery\\\\Matcher\\\\Ducktype' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php',\n    'Mockery\\\\Matcher\\\\HasKey' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasKey.php',\n    'Mockery\\\\Matcher\\\\HasValue' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/HasValue.php',\n    'Mockery\\\\Matcher\\\\MatcherAbstract' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php',\n    'Mockery\\\\Matcher\\\\MultiArgumentClosure' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php',\n    'Mockery\\\\Matcher\\\\MustBe' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/MustBe.php',\n    'Mockery\\\\Matcher\\\\NoArgs' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php',\n    'Mockery\\\\Matcher\\\\Not' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Not.php',\n    'Mockery\\\\Matcher\\\\NotAnyOf' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php',\n    'Mockery\\\\Matcher\\\\PHPUnitConstraint' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php',\n    'Mockery\\\\Matcher\\\\Pattern' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Pattern.php',\n    'Mockery\\\\Matcher\\\\Subset' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Subset.php',\n    'Mockery\\\\Matcher\\\\Type' => $vendorDir . '/mockery/mockery/library/Mockery/Matcher/Type.php',\n    'Mockery\\\\MethodCall' => $vendorDir . '/mockery/mockery/library/Mockery/MethodCall.php',\n    'Mockery\\\\Mock' => $vendorDir . '/mockery/mockery/library/Mockery/Mock.php',\n    'Mockery\\\\MockInterface' => $vendorDir . '/mockery/mockery/library/Mockery/MockInterface.php',\n    'Mockery\\\\ReceivedMethodCalls' => $vendorDir . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php',\n    'Mockery\\\\Undefined' => $vendorDir . '/mockery/mockery/library/Mockery/Undefined.php',\n    'Mockery\\\\VerificationDirector' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationDirector.php',\n    'Mockery\\\\VerificationExpectation' => $vendorDir . '/mockery/mockery/library/Mockery/VerificationExpectation.php',\n    'Monolog\\\\ErrorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/ErrorHandler.php',\n    'Monolog\\\\Formatter\\\\ChromePHPFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php',\n    'Monolog\\\\Formatter\\\\ElasticaFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php',\n    'Monolog\\\\Formatter\\\\FlowdockFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php',\n    'Monolog\\\\Formatter\\\\FluentdFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php',\n    'Monolog\\\\Formatter\\\\FormatterInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php',\n    'Monolog\\\\Formatter\\\\GelfMessageFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php',\n    'Monolog\\\\Formatter\\\\HtmlFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php',\n    'Monolog\\\\Formatter\\\\JsonFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php',\n    'Monolog\\\\Formatter\\\\LineFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php',\n    'Monolog\\\\Formatter\\\\LogglyFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php',\n    'Monolog\\\\Formatter\\\\LogstashFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php',\n    'Monolog\\\\Formatter\\\\MongoDBFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php',\n    'Monolog\\\\Formatter\\\\NormalizerFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php',\n    'Monolog\\\\Formatter\\\\ScalarFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php',\n    'Monolog\\\\Formatter\\\\WildfireFormatter' => $vendorDir . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php',\n    'Monolog\\\\Handler\\\\AbstractHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php',\n    'Monolog\\\\Handler\\\\AbstractProcessingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php',\n    'Monolog\\\\Handler\\\\AbstractSyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php',\n    'Monolog\\\\Handler\\\\AmqpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php',\n    'Monolog\\\\Handler\\\\BrowserConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php',\n    'Monolog\\\\Handler\\\\BufferHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php',\n    'Monolog\\\\Handler\\\\ChromePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php',\n    'Monolog\\\\Handler\\\\CouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php',\n    'Monolog\\\\Handler\\\\CubeHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php',\n    'Monolog\\\\Handler\\\\Curl\\\\Util' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php',\n    'Monolog\\\\Handler\\\\DeduplicationHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php',\n    'Monolog\\\\Handler\\\\DoctrineCouchDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',\n    'Monolog\\\\Handler\\\\DynamoDbHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',\n    'Monolog\\\\Handler\\\\ElasticSearchHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php',\n    'Monolog\\\\Handler\\\\ErrorLogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',\n    'Monolog\\\\Handler\\\\FilterHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php',\n    'Monolog\\\\Handler\\\\FingersCrossedHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php',\n    'Monolog\\\\Handler\\\\FingersCrossed\\\\ActivationStrategyInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php',\n    'Monolog\\\\Handler\\\\FingersCrossed\\\\ChannelLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php',\n    'Monolog\\\\Handler\\\\FingersCrossed\\\\ErrorLevelActivationStrategy' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php',\n    'Monolog\\\\Handler\\\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',\n    'Monolog\\\\Handler\\\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',\n    'Monolog\\\\Handler\\\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',\n    'Monolog\\\\Handler\\\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',\n    'Monolog\\\\Handler\\\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',\n    'Monolog\\\\Handler\\\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',\n    'Monolog\\\\Handler\\\\HandlerWrapper' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',\n    'Monolog\\\\Handler\\\\HipChatHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php',\n    'Monolog\\\\Handler\\\\IFTTTHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',\n    'Monolog\\\\Handler\\\\InsightOpsHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',\n    'Monolog\\\\Handler\\\\LogEntriesHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',\n    'Monolog\\\\Handler\\\\LogglyHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',\n    'Monolog\\\\Handler\\\\MailHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MailHandler.php',\n    'Monolog\\\\Handler\\\\MandrillHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php',\n    'Monolog\\\\Handler\\\\MissingExtensionException' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php',\n    'Monolog\\\\Handler\\\\MongoDBHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php',\n    'Monolog\\\\Handler\\\\NativeMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php',\n    'Monolog\\\\Handler\\\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',\n    'Monolog\\\\Handler\\\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',\n    'Monolog\\\\Handler\\\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',\n    'Monolog\\\\Handler\\\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',\n    'Monolog\\\\Handler\\\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',\n    'Monolog\\\\Handler\\\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',\n    'Monolog\\\\Handler\\\\RedisHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php',\n    'Monolog\\\\Handler\\\\RollbarHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php',\n    'Monolog\\\\Handler\\\\RotatingFileHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php',\n    'Monolog\\\\Handler\\\\SamplingHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php',\n    'Monolog\\\\Handler\\\\SlackHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php',\n    'Monolog\\\\Handler\\\\SlackWebhookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php',\n    'Monolog\\\\Handler\\\\Slack\\\\SlackRecord' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php',\n    'Monolog\\\\Handler\\\\SlackbotHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php',\n    'Monolog\\\\Handler\\\\SocketHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php',\n    'Monolog\\\\Handler\\\\StreamHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php',\n    'Monolog\\\\Handler\\\\SwiftMailerHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php',\n    'Monolog\\\\Handler\\\\SyslogHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php',\n    'Monolog\\\\Handler\\\\SyslogUdpHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php',\n    'Monolog\\\\Handler\\\\SyslogUdp\\\\UdpSocket' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php',\n    'Monolog\\\\Handler\\\\TestHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/TestHandler.php',\n    'Monolog\\\\Handler\\\\WhatFailureGroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php',\n    'Monolog\\\\Handler\\\\ZendMonitorHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php',\n    'Monolog\\\\Logger' => $vendorDir . '/monolog/monolog/src/Monolog/Logger.php',\n    'Monolog\\\\Processor\\\\GitProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php',\n    'Monolog\\\\Processor\\\\IntrospectionProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php',\n    'Monolog\\\\Processor\\\\MemoryPeakUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php',\n    'Monolog\\\\Processor\\\\MemoryProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php',\n    'Monolog\\\\Processor\\\\MemoryUsageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',\n    'Monolog\\\\Processor\\\\MercurialProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',\n    'Monolog\\\\Processor\\\\ProcessIdProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',\n    'Monolog\\\\Processor\\\\ProcessorInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',\n    'Monolog\\\\Processor\\\\PsrLogMessageProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',\n    'Monolog\\\\Processor\\\\TagProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php',\n    'Monolog\\\\Processor\\\\UidProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',\n    'Monolog\\\\Processor\\\\WebProcessor' => $vendorDir . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',\n    'Monolog\\\\Registry' => $vendorDir . '/monolog/monolog/src/Monolog/Registry.php',\n    'Monolog\\\\ResettableInterface' => $vendorDir . '/monolog/monolog/src/Monolog/ResettableInterface.php',\n    'Monolog\\\\SignalHandler' => $vendorDir . '/monolog/monolog/src/Monolog/SignalHandler.php',\n    'Monolog\\\\Utils' => $vendorDir . '/monolog/monolog/src/Monolog/Utils.php',\n    'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\CollisionServiceProvider' => $vendorDir . '/nunomaduro/collision/src/Adapters/Laravel/CollisionServiceProvider.php',\n    'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\ExceptionHandler' => $vendorDir . '/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php',\n    'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\Inspector' => $vendorDir . '/nunomaduro/collision/src/Adapters/Laravel/Inspector.php',\n    'NunoMaduro\\\\Collision\\\\Adapters\\\\Phpunit\\\\Listener' => $vendorDir . '/nunomaduro/collision/src/Adapters/Phpunit/Listener.php',\n    'NunoMaduro\\\\Collision\\\\ArgumentFormatter' => $vendorDir . '/nunomaduro/collision/src/ArgumentFormatter.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\Adapters\\\\Phpunit\\\\Listener' => $vendorDir . '/nunomaduro/collision/src/Contracts/Adapters/Phpunit/Listener.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\ArgumentFormatter' => $vendorDir . '/nunomaduro/collision/src/Contracts/ArgumentFormatter.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\Handler' => $vendorDir . '/nunomaduro/collision/src/Contracts/Handler.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\Highlighter' => $vendorDir . '/nunomaduro/collision/src/Contracts/Highlighter.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\Provider' => $vendorDir . '/nunomaduro/collision/src/Contracts/Provider.php',\n    'NunoMaduro\\\\Collision\\\\Contracts\\\\Writer' => $vendorDir . '/nunomaduro/collision/src/Contracts/Writer.php',\n    'NunoMaduro\\\\Collision\\\\Handler' => $vendorDir . '/nunomaduro/collision/src/Handler.php',\n    'NunoMaduro\\\\Collision\\\\Highlighter' => $vendorDir . '/nunomaduro/collision/src/Highlighter.php',\n    'NunoMaduro\\\\Collision\\\\Provider' => $vendorDir . '/nunomaduro/collision/src/Provider.php',\n    'NunoMaduro\\\\Collision\\\\Writer' => $vendorDir . '/nunomaduro/collision/src/Writer.php',\n    'Opis\\\\Closure\\\\Analyzer' => $vendorDir . '/opis/closure/src/Analyzer.php',\n    'Opis\\\\Closure\\\\ClosureContext' => $vendorDir . '/opis/closure/src/ClosureContext.php',\n    'Opis\\\\Closure\\\\ClosureScope' => $vendorDir . '/opis/closure/src/ClosureScope.php',\n    'Opis\\\\Closure\\\\ClosureStream' => $vendorDir . '/opis/closure/src/ClosureStream.php',\n    'Opis\\\\Closure\\\\ISecurityProvider' => $vendorDir . '/opis/closure/src/ISecurityProvider.php',\n    'Opis\\\\Closure\\\\ReflectionClosure' => $vendorDir . '/opis/closure/src/ReflectionClosure.php',\n    'Opis\\\\Closure\\\\SecurityException' => $vendorDir . '/opis/closure/src/SecurityException.php',\n    'Opis\\\\Closure\\\\SecurityProvider' => $vendorDir . '/opis/closure/src/SecurityProvider.php',\n    'Opis\\\\Closure\\\\SelfReference' => $vendorDir . '/opis/closure/src/SelfReference.php',\n    'Opis\\\\Closure\\\\SerializableClosure' => $vendorDir . '/opis/closure/src/SerializableClosure.php',\n    'PHPUnit\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',\n    'PHPUnit\\\\Framework\\\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',\n    'PHPUnit\\\\Framework\\\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',\n    'PHPUnit\\\\Framework\\\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',\n    'PHPUnit\\\\Framework\\\\Constraint\\\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',\n    'PHPUnit\\\\Framework\\\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',\n    'PHPUnit\\\\Framework\\\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',\n    'PHPUnit\\\\Framework\\\\Error\\\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',\n    'PHPUnit\\\\Framework\\\\Error\\\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php',\n    'PHPUnit\\\\Framework\\\\Error\\\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',\n    'PHPUnit\\\\Framework\\\\Error\\\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',\n    'PHPUnit\\\\Framework\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',\n    'PHPUnit\\\\Framework\\\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',\n    'PHPUnit\\\\Framework\\\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',\n    'PHPUnit\\\\Framework\\\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',\n    'PHPUnit\\\\Framework\\\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',\n    'PHPUnit\\\\Framework\\\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',\n    'PHPUnit\\\\Framework\\\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',\n    'PHPUnit\\\\Framework\\\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Match' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation\\\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation\\\\StaticInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Invokable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\DeferredError' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\MatcherCollection' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',\n    'PHPUnit\\\\Framework\\\\MockObject\\\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',\n    'PHPUnit\\\\Framework\\\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',\n    'PHPUnit\\\\Framework\\\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',\n    'PHPUnit\\\\Framework\\\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',\n    'PHPUnit\\\\Framework\\\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',\n    'PHPUnit\\\\Framework\\\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',\n    'PHPUnit\\\\Framework\\\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',\n    'PHPUnit\\\\Framework\\\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',\n    'PHPUnit\\\\Framework\\\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',\n    'PHPUnit\\\\Framework\\\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',\n    'PHPUnit\\\\Framework\\\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',\n    'PHPUnit\\\\Framework\\\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',\n    'PHPUnit\\\\Framework\\\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',\n    'PHPUnit\\\\Framework\\\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',\n    'PHPUnit\\\\Framework\\\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',\n    'PHPUnit\\\\Framework\\\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',\n    'PHPUnit\\\\Framework\\\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',\n    'PHPUnit\\\\Framework\\\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',\n    'PHPUnit\\\\Framework\\\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',\n    'PHPUnit\\\\Framework\\\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',\n    'PHPUnit\\\\Framework\\\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',\n    'PHPUnit\\\\Runner\\\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',\n    'PHPUnit\\\\Runner\\\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',\n    'PHPUnit\\\\Runner\\\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',\n    'PHPUnit\\\\Runner\\\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',\n    'PHPUnit\\\\Runner\\\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',\n    'PHPUnit\\\\Runner\\\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',\n    'PHPUnit\\\\Runner\\\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',\n    'PHPUnit\\\\Runner\\\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',\n    'PHPUnit\\\\Runner\\\\Filter\\\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',\n    'PHPUnit\\\\Runner\\\\Filter\\\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',\n    'PHPUnit\\\\Runner\\\\Filter\\\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',\n    'PHPUnit\\\\Runner\\\\Filter\\\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',\n    'PHPUnit\\\\Runner\\\\Filter\\\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',\n    'PHPUnit\\\\Runner\\\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php',\n    'PHPUnit\\\\Runner\\\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/NullTestResultCache.php',\n    'PHPUnit\\\\Runner\\\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php',\n    'PHPUnit\\\\Runner\\\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',\n    'PHPUnit\\\\Runner\\\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',\n    'PHPUnit\\\\Runner\\\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',\n    'PHPUnit\\\\Runner\\\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',\n    'PHPUnit\\\\Runner\\\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCache.php',\n    'PHPUnit\\\\Runner\\\\TestResultCacheInterface' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCacheInterface.php',\n    'PHPUnit\\\\Runner\\\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',\n    'PHPUnit\\\\Runner\\\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',\n    'PHPUnit\\\\Runner\\\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',\n    'PHPUnit\\\\TextUI\\\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',\n    'PHPUnit\\\\TextUI\\\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',\n    'PHPUnit\\\\TextUI\\\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',\n    'PHPUnit\\\\Util\\\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',\n    'PHPUnit\\\\Util\\\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',\n    'PHPUnit\\\\Util\\\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',\n    'PHPUnit\\\\Util\\\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',\n    'PHPUnit\\\\Util\\\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php',\n    'PHPUnit\\\\Util\\\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',\n    'PHPUnit\\\\Util\\\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',\n    'PHPUnit\\\\Util\\\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',\n    'PHPUnit\\\\Util\\\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',\n    'PHPUnit\\\\Util\\\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',\n    'PHPUnit\\\\Util\\\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php',\n    'PHPUnit\\\\Util\\\\Log\\\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',\n    'PHPUnit\\\\Util\\\\Log\\\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',\n    'PHPUnit\\\\Util\\\\PHP\\\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',\n    'PHPUnit\\\\Util\\\\PHP\\\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',\n    'PHPUnit\\\\Util\\\\PHP\\\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',\n    'PHPUnit\\\\Util\\\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',\n    'PHPUnit\\\\Util\\\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php',\n    'PHPUnit\\\\Util\\\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestResult.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',\n    'PHPUnit\\\\Util\\\\TestDox\\\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',\n    'PHPUnit\\\\Util\\\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',\n    'PHPUnit\\\\Util\\\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',\n    'PHPUnit\\\\Util\\\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',\n    'PHPUnit\\\\Util\\\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php',\n    'PHPUnit\\\\Util\\\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',\n    'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',\n    'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',\n    'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',\n    'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',\n    'Parsedown' => $vendorDir . '/erusev/parsedown/Parsedown.php',\n    'PharIo\\\\Manifest\\\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php',\n    'PharIo\\\\Manifest\\\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php',\n    'PharIo\\\\Manifest\\\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php',\n    'PharIo\\\\Manifest\\\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php',\n    'PharIo\\\\Manifest\\\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',\n    'PharIo\\\\Manifest\\\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php',\n    'PharIo\\\\Manifest\\\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php',\n    'PharIo\\\\Manifest\\\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php',\n    'PharIo\\\\Manifest\\\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php',\n    'PharIo\\\\Manifest\\\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',\n    'PharIo\\\\Manifest\\\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php',\n    'PharIo\\\\Manifest\\\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php',\n    'PharIo\\\\Manifest\\\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php',\n    'PharIo\\\\Manifest\\\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php',\n    'PharIo\\\\Manifest\\\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php',\n    'PharIo\\\\Manifest\\\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php',\n    'PharIo\\\\Manifest\\\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php',\n    'PharIo\\\\Manifest\\\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php',\n    'PharIo\\\\Manifest\\\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php',\n    'PharIo\\\\Manifest\\\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php',\n    'PharIo\\\\Manifest\\\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php',\n    'PharIo\\\\Manifest\\\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php',\n    'PharIo\\\\Manifest\\\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php',\n    'PharIo\\\\Manifest\\\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',\n    'PharIo\\\\Manifest\\\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',\n    'PharIo\\\\Manifest\\\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',\n    'PharIo\\\\Manifest\\\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php',\n    'PharIo\\\\Manifest\\\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php',\n    'PharIo\\\\Manifest\\\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php',\n    'PharIo\\\\Manifest\\\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php',\n    'PharIo\\\\Manifest\\\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php',\n    'PharIo\\\\Manifest\\\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',\n    'PharIo\\\\Manifest\\\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php',\n    'PharIo\\\\Manifest\\\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php',\n    'PharIo\\\\Manifest\\\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',\n    'PharIo\\\\Manifest\\\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php',\n    'PharIo\\\\Manifest\\\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php',\n    'PharIo\\\\Manifest\\\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php',\n    'PharIo\\\\Manifest\\\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',\n    'PharIo\\\\Manifest\\\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php',\n    'PharIo\\\\Manifest\\\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php',\n    'PharIo\\\\Manifest\\\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',\n    'PharIo\\\\Manifest\\\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php',\n    'PharIo\\\\Manifest\\\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php',\n    'PharIo\\\\Manifest\\\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php',\n    'PharIo\\\\Manifest\\\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',\n    'PharIo\\\\Manifest\\\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php',\n    'PharIo\\\\Manifest\\\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php',\n    'PharIo\\\\Manifest\\\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php',\n    'PharIo\\\\Version\\\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',\n    'PharIo\\\\Version\\\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',\n    'PharIo\\\\Version\\\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php',\n    'PharIo\\\\Version\\\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php',\n    'PharIo\\\\Version\\\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php',\n    'PharIo\\\\Version\\\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',\n    'PharIo\\\\Version\\\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',\n    'PharIo\\\\Version\\\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',\n    'PharIo\\\\Version\\\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',\n    'PharIo\\\\Version\\\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',\n    'PharIo\\\\Version\\\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',\n    'PharIo\\\\Version\\\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',\n    'PharIo\\\\Version\\\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',\n    'PharIo\\\\Version\\\\Version' => $vendorDir . '/phar-io/version/src/Version.php',\n    'PharIo\\\\Version\\\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php',\n    'PharIo\\\\Version\\\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',\n    'PharIo\\\\Version\\\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',\n    'PharIo\\\\Version\\\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',\n    'PhpOption\\\\LazyOption' => $vendorDir . '/phpoption/phpoption/src/PhpOption/LazyOption.php',\n    'PhpOption\\\\None' => $vendorDir . '/phpoption/phpoption/src/PhpOption/None.php',\n    'PhpOption\\\\Option' => $vendorDir . '/phpoption/phpoption/src/PhpOption/Option.php',\n    'PhpOption\\\\Some' => $vendorDir . '/phpoption/phpoption/src/PhpOption/Some.php',\n    'PhpParser\\\\Builder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder.php',\n    'PhpParser\\\\BuilderFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php',\n    'PhpParser\\\\BuilderHelpers' => $vendorDir . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php',\n    'PhpParser\\\\Builder\\\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php',\n    'PhpParser\\\\Builder\\\\Declaration' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php',\n    'PhpParser\\\\Builder\\\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php',\n    'PhpParser\\\\Builder\\\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php',\n    'PhpParser\\\\Builder\\\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php',\n    'PhpParser\\\\Builder\\\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Method.php',\n    'PhpParser\\\\Builder\\\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php',\n    'PhpParser\\\\Builder\\\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Param.php',\n    'PhpParser\\\\Builder\\\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Property.php',\n    'PhpParser\\\\Builder\\\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php',\n    'PhpParser\\\\Builder\\\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php',\n    'PhpParser\\\\Builder\\\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php',\n    'PhpParser\\\\Builder\\\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php',\n    'PhpParser\\\\Comment' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment.php',\n    'PhpParser\\\\Comment\\\\Doc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php',\n    'PhpParser\\\\ConstExprEvaluationException' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php',\n    'PhpParser\\\\ConstExprEvaluator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php',\n    'PhpParser\\\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Error.php',\n    'PhpParser\\\\ErrorHandler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php',\n    'PhpParser\\\\ErrorHandler\\\\Collecting' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php',\n    'PhpParser\\\\ErrorHandler\\\\Throwing' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php',\n    'PhpParser\\\\Internal\\\\DiffElem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php',\n    'PhpParser\\\\Internal\\\\Differ' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php',\n    'PhpParser\\\\Internal\\\\PrintableNewAnonClassNode' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php',\n    'PhpParser\\\\Internal\\\\TokenStream' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php',\n    'PhpParser\\\\JsonDecoder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php',\n    'PhpParser\\\\Lexer' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer.php',\n    'PhpParser\\\\Lexer\\\\Emulative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php',\n    'PhpParser\\\\Lexer\\\\TokenEmulator\\\\CoaleseEqualTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php',\n    'PhpParser\\\\Lexer\\\\TokenEmulator\\\\FnTokenEmulator' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php',\n    'PhpParser\\\\Lexer\\\\TokenEmulator\\\\TokenEmulatorInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php',\n    'PhpParser\\\\NameContext' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NameContext.php',\n    'PhpParser\\\\Node' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node.php',\n    'PhpParser\\\\NodeAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php',\n    'PhpParser\\\\NodeDumper' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeDumper.php',\n    'PhpParser\\\\NodeFinder' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeFinder.php',\n    'PhpParser\\\\NodeTraverser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php',\n    'PhpParser\\\\NodeTraverserInterface' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php',\n    'PhpParser\\\\NodeVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php',\n    'PhpParser\\\\NodeVisitorAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php',\n    'PhpParser\\\\NodeVisitor\\\\CloningVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php',\n    'PhpParser\\\\NodeVisitor\\\\FindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php',\n    'PhpParser\\\\NodeVisitor\\\\FirstFindingVisitor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php',\n    'PhpParser\\\\NodeVisitor\\\\NameResolver' => $vendorDir . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php',\n    'PhpParser\\\\Node\\\\Arg' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Arg.php',\n    'PhpParser\\\\Node\\\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Const_.php',\n    'PhpParser\\\\Node\\\\Expr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ArrayDimFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ArrayItem' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ArrowFunction' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Assign' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php',\n    'PhpParser\\\\Node\\\\Expr\\\\AssignRef' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BooleanAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BooleanOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Coalesce' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Concat' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Div' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Equal' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Greater' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\GreaterOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Identical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalAnd' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalOr' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalXor' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Minus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Mod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Mul' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\NotEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\NotIdentical' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Plus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Pow' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\ShiftLeft' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\ShiftRight' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Smaller' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\SmallerOrEqual' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Spaceship' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BitwiseNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php',\n    'PhpParser\\\\Node\\\\Expr\\\\BooleanNot' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Array_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Bool_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Double' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Int_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Object_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ClassConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Clone_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Closure' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ClosureUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ConstFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Empty_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Error' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ErrorSuppress' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Eval_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Exit_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\FuncCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Include_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Instanceof_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Isset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\List_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\MethodCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php',\n    'PhpParser\\\\Node\\\\Expr\\\\New_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\PostDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php',\n    'PhpParser\\\\Node\\\\Expr\\\\PostInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php',\n    'PhpParser\\\\Node\\\\Expr\\\\PreDec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php',\n    'PhpParser\\\\Node\\\\Expr\\\\PreInc' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Print_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php',\n    'PhpParser\\\\Node\\\\Expr\\\\PropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php',\n    'PhpParser\\\\Node\\\\Expr\\\\ShellExec' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php',\n    'PhpParser\\\\Node\\\\Expr\\\\StaticCall' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php',\n    'PhpParser\\\\Node\\\\Expr\\\\StaticPropertyFetch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Ternary' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php',\n    'PhpParser\\\\Node\\\\Expr\\\\UnaryMinus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\UnaryPlus' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Variable' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php',\n    'PhpParser\\\\Node\\\\Expr\\\\YieldFrom' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php',\n    'PhpParser\\\\Node\\\\Expr\\\\Yield_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php',\n    'PhpParser\\\\Node\\\\FunctionLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php',\n    'PhpParser\\\\Node\\\\Identifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php',\n    'PhpParser\\\\Node\\\\Name' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name.php',\n    'PhpParser\\\\Node\\\\Name\\\\FullyQualified' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php',\n    'PhpParser\\\\Node\\\\Name\\\\Relative' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php',\n    'PhpParser\\\\Node\\\\NullableType' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php',\n    'PhpParser\\\\Node\\\\Param' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Param.php',\n    'PhpParser\\\\Node\\\\Scalar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\DNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\Encapsed' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\EncapsedStringPart' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\LNumber' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Dir' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\File' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Line' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Method' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php',\n    'PhpParser\\\\Node\\\\Scalar\\\\String_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php',\n    'PhpParser\\\\Node\\\\Stmt' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Break_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Case_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Catch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\ClassConst' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\ClassLike' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\ClassMethod' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Class_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Const_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Continue_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\DeclareDeclare' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Declare_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Do_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Echo_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\ElseIf_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Else_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Expression' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Finally_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\For_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Foreach_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Function_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Global_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Goto_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\GroupUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\HaltCompiler' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\If_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\InlineHTML' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Interface_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Label' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Namespace_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Nop' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Property' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\PropertyProperty' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Return_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\StaticVar' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Static_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Switch_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Throw_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\TraitUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation\\\\Alias' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation\\\\Precedence' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Trait_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\TryCatch' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Unset_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\UseUse' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\Use_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php',\n    'PhpParser\\\\Node\\\\Stmt\\\\While_' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php',\n    'PhpParser\\\\Node\\\\VarLikeIdentifier' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php',\n    'PhpParser\\\\Parser' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser.php',\n    'PhpParser\\\\ParserAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php',\n    'PhpParser\\\\ParserFactory' => $vendorDir . '/nikic/php-parser/lib/PhpParser/ParserFactory.php',\n    'PhpParser\\\\Parser\\\\Multiple' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php',\n    'PhpParser\\\\Parser\\\\Php5' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php',\n    'PhpParser\\\\Parser\\\\Php7' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php',\n    'PhpParser\\\\Parser\\\\Tokens' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',\n    'PhpParser\\\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',\n    'PhpParser\\\\PrettyPrinter\\\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',\n    'Predis\\\\Autoloader' => $vendorDir . '/predis/predis/src/Autoloader.php',\n    'Predis\\\\Client' => $vendorDir . '/predis/predis/src/Client.php',\n    'Predis\\\\ClientContextInterface' => $vendorDir . '/predis/predis/src/ClientContextInterface.php',\n    'Predis\\\\ClientException' => $vendorDir . '/predis/predis/src/ClientException.php',\n    'Predis\\\\ClientInterface' => $vendorDir . '/predis/predis/src/ClientInterface.php',\n    'Predis\\\\Cluster\\\\ClusterStrategy' => $vendorDir . '/predis/predis/src/Cluster/ClusterStrategy.php',\n    'Predis\\\\Cluster\\\\Distributor\\\\DistributorInterface' => $vendorDir . '/predis/predis/src/Cluster/Distributor/DistributorInterface.php',\n    'Predis\\\\Cluster\\\\Distributor\\\\EmptyRingException' => $vendorDir . '/predis/predis/src/Cluster/Distributor/EmptyRingException.php',\n    'Predis\\\\Cluster\\\\Distributor\\\\HashRing' => $vendorDir . '/predis/predis/src/Cluster/Distributor/HashRing.php',\n    'Predis\\\\Cluster\\\\Distributor\\\\KetamaRing' => $vendorDir . '/predis/predis/src/Cluster/Distributor/KetamaRing.php',\n    'Predis\\\\Cluster\\\\Hash\\\\CRC16' => $vendorDir . '/predis/predis/src/Cluster/Hash/CRC16.php',\n    'Predis\\\\Cluster\\\\Hash\\\\HashGeneratorInterface' => $vendorDir . '/predis/predis/src/Cluster/Hash/HashGeneratorInterface.php',\n    'Predis\\\\Cluster\\\\PredisStrategy' => $vendorDir . '/predis/predis/src/Cluster/PredisStrategy.php',\n    'Predis\\\\Cluster\\\\RedisStrategy' => $vendorDir . '/predis/predis/src/Cluster/RedisStrategy.php',\n    'Predis\\\\Cluster\\\\StrategyInterface' => $vendorDir . '/predis/predis/src/Cluster/StrategyInterface.php',\n    'Predis\\\\Collection\\\\Iterator\\\\CursorBasedIterator' => $vendorDir . '/predis/predis/src/Collection/Iterator/CursorBasedIterator.php',\n    'Predis\\\\Collection\\\\Iterator\\\\HashKey' => $vendorDir . '/predis/predis/src/Collection/Iterator/HashKey.php',\n    'Predis\\\\Collection\\\\Iterator\\\\Keyspace' => $vendorDir . '/predis/predis/src/Collection/Iterator/Keyspace.php',\n    'Predis\\\\Collection\\\\Iterator\\\\ListKey' => $vendorDir . '/predis/predis/src/Collection/Iterator/ListKey.php',\n    'Predis\\\\Collection\\\\Iterator\\\\SetKey' => $vendorDir . '/predis/predis/src/Collection/Iterator/SetKey.php',\n    'Predis\\\\Collection\\\\Iterator\\\\SortedSetKey' => $vendorDir . '/predis/predis/src/Collection/Iterator/SortedSetKey.php',\n    'Predis\\\\Command\\\\Command' => $vendorDir . '/predis/predis/src/Command/Command.php',\n    'Predis\\\\Command\\\\CommandInterface' => $vendorDir . '/predis/predis/src/Command/CommandInterface.php',\n    'Predis\\\\Command\\\\ConnectionAuth' => $vendorDir . '/predis/predis/src/Command/ConnectionAuth.php',\n    'Predis\\\\Command\\\\ConnectionEcho' => $vendorDir . '/predis/predis/src/Command/ConnectionEcho.php',\n    'Predis\\\\Command\\\\ConnectionPing' => $vendorDir . '/predis/predis/src/Command/ConnectionPing.php',\n    'Predis\\\\Command\\\\ConnectionQuit' => $vendorDir . '/predis/predis/src/Command/ConnectionQuit.php',\n    'Predis\\\\Command\\\\ConnectionSelect' => $vendorDir . '/predis/predis/src/Command/ConnectionSelect.php',\n    'Predis\\\\Command\\\\GeospatialGeoAdd' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoAdd.php',\n    'Predis\\\\Command\\\\GeospatialGeoDist' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoDist.php',\n    'Predis\\\\Command\\\\GeospatialGeoHash' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoHash.php',\n    'Predis\\\\Command\\\\GeospatialGeoPos' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoPos.php',\n    'Predis\\\\Command\\\\GeospatialGeoRadius' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoRadius.php',\n    'Predis\\\\Command\\\\GeospatialGeoRadiusByMember' => $vendorDir . '/predis/predis/src/Command/GeospatialGeoRadiusByMember.php',\n    'Predis\\\\Command\\\\HashDelete' => $vendorDir . '/predis/predis/src/Command/HashDelete.php',\n    'Predis\\\\Command\\\\HashExists' => $vendorDir . '/predis/predis/src/Command/HashExists.php',\n    'Predis\\\\Command\\\\HashGet' => $vendorDir . '/predis/predis/src/Command/HashGet.php',\n    'Predis\\\\Command\\\\HashGetAll' => $vendorDir . '/predis/predis/src/Command/HashGetAll.php',\n    'Predis\\\\Command\\\\HashGetMultiple' => $vendorDir . '/predis/predis/src/Command/HashGetMultiple.php',\n    'Predis\\\\Command\\\\HashIncrementBy' => $vendorDir . '/predis/predis/src/Command/HashIncrementBy.php',\n    'Predis\\\\Command\\\\HashIncrementByFloat' => $vendorDir . '/predis/predis/src/Command/HashIncrementByFloat.php',\n    'Predis\\\\Command\\\\HashKeys' => $vendorDir . '/predis/predis/src/Command/HashKeys.php',\n    'Predis\\\\Command\\\\HashLength' => $vendorDir . '/predis/predis/src/Command/HashLength.php',\n    'Predis\\\\Command\\\\HashScan' => $vendorDir . '/predis/predis/src/Command/HashScan.php',\n    'Predis\\\\Command\\\\HashSet' => $vendorDir . '/predis/predis/src/Command/HashSet.php',\n    'Predis\\\\Command\\\\HashSetMultiple' => $vendorDir . '/predis/predis/src/Command/HashSetMultiple.php',\n    'Predis\\\\Command\\\\HashSetPreserve' => $vendorDir . '/predis/predis/src/Command/HashSetPreserve.php',\n    'Predis\\\\Command\\\\HashStringLength' => $vendorDir . '/predis/predis/src/Command/HashStringLength.php',\n    'Predis\\\\Command\\\\HashValues' => $vendorDir . '/predis/predis/src/Command/HashValues.php',\n    'Predis\\\\Command\\\\HyperLogLogAdd' => $vendorDir . '/predis/predis/src/Command/HyperLogLogAdd.php',\n    'Predis\\\\Command\\\\HyperLogLogCount' => $vendorDir . '/predis/predis/src/Command/HyperLogLogCount.php',\n    'Predis\\\\Command\\\\HyperLogLogMerge' => $vendorDir . '/predis/predis/src/Command/HyperLogLogMerge.php',\n    'Predis\\\\Command\\\\KeyDelete' => $vendorDir . '/predis/predis/src/Command/KeyDelete.php',\n    'Predis\\\\Command\\\\KeyDump' => $vendorDir . '/predis/predis/src/Command/KeyDump.php',\n    'Predis\\\\Command\\\\KeyExists' => $vendorDir . '/predis/predis/src/Command/KeyExists.php',\n    'Predis\\\\Command\\\\KeyExpire' => $vendorDir . '/predis/predis/src/Command/KeyExpire.php',\n    'Predis\\\\Command\\\\KeyExpireAt' => $vendorDir . '/predis/predis/src/Command/KeyExpireAt.php',\n    'Predis\\\\Command\\\\KeyKeys' => $vendorDir . '/predis/predis/src/Command/KeyKeys.php',\n    'Predis\\\\Command\\\\KeyMigrate' => $vendorDir . '/predis/predis/src/Command/KeyMigrate.php',\n    'Predis\\\\Command\\\\KeyMove' => $vendorDir . '/predis/predis/src/Command/KeyMove.php',\n    'Predis\\\\Command\\\\KeyPersist' => $vendorDir . '/predis/predis/src/Command/KeyPersist.php',\n    'Predis\\\\Command\\\\KeyPreciseExpire' => $vendorDir . '/predis/predis/src/Command/KeyPreciseExpire.php',\n    'Predis\\\\Command\\\\KeyPreciseExpireAt' => $vendorDir . '/predis/predis/src/Command/KeyPreciseExpireAt.php',\n    'Predis\\\\Command\\\\KeyPreciseTimeToLive' => $vendorDir . '/predis/predis/src/Command/KeyPreciseTimeToLive.php',\n    'Predis\\\\Command\\\\KeyRandom' => $vendorDir . '/predis/predis/src/Command/KeyRandom.php',\n    'Predis\\\\Command\\\\KeyRename' => $vendorDir . '/predis/predis/src/Command/KeyRename.php',\n    'Predis\\\\Command\\\\KeyRenamePreserve' => $vendorDir . '/predis/predis/src/Command/KeyRenamePreserve.php',\n    'Predis\\\\Command\\\\KeyRestore' => $vendorDir . '/predis/predis/src/Command/KeyRestore.php',\n    'Predis\\\\Command\\\\KeyScan' => $vendorDir . '/predis/predis/src/Command/KeyScan.php',\n    'Predis\\\\Command\\\\KeySort' => $vendorDir . '/predis/predis/src/Command/KeySort.php',\n    'Predis\\\\Command\\\\KeyTimeToLive' => $vendorDir . '/predis/predis/src/Command/KeyTimeToLive.php',\n    'Predis\\\\Command\\\\KeyType' => $vendorDir . '/predis/predis/src/Command/KeyType.php',\n    'Predis\\\\Command\\\\ListIndex' => $vendorDir . '/predis/predis/src/Command/ListIndex.php',\n    'Predis\\\\Command\\\\ListInsert' => $vendorDir . '/predis/predis/src/Command/ListInsert.php',\n    'Predis\\\\Command\\\\ListLength' => $vendorDir . '/predis/predis/src/Command/ListLength.php',\n    'Predis\\\\Command\\\\ListPopFirst' => $vendorDir . '/predis/predis/src/Command/ListPopFirst.php',\n    'Predis\\\\Command\\\\ListPopFirstBlocking' => $vendorDir . '/predis/predis/src/Command/ListPopFirstBlocking.php',\n    'Predis\\\\Command\\\\ListPopLast' => $vendorDir . '/predis/predis/src/Command/ListPopLast.php',\n    'Predis\\\\Command\\\\ListPopLastBlocking' => $vendorDir . '/predis/predis/src/Command/ListPopLastBlocking.php',\n    'Predis\\\\Command\\\\ListPopLastPushHead' => $vendorDir . '/predis/predis/src/Command/ListPopLastPushHead.php',\n    'Predis\\\\Command\\\\ListPopLastPushHeadBlocking' => $vendorDir . '/predis/predis/src/Command/ListPopLastPushHeadBlocking.php',\n    'Predis\\\\Command\\\\ListPushHead' => $vendorDir . '/predis/predis/src/Command/ListPushHead.php',\n    'Predis\\\\Command\\\\ListPushHeadX' => $vendorDir . '/predis/predis/src/Command/ListPushHeadX.php',\n    'Predis\\\\Command\\\\ListPushTail' => $vendorDir . '/predis/predis/src/Command/ListPushTail.php',\n    'Predis\\\\Command\\\\ListPushTailX' => $vendorDir . '/predis/predis/src/Command/ListPushTailX.php',\n    'Predis\\\\Command\\\\ListRange' => $vendorDir . '/predis/predis/src/Command/ListRange.php',\n    'Predis\\\\Command\\\\ListRemove' => $vendorDir . '/predis/predis/src/Command/ListRemove.php',\n    'Predis\\\\Command\\\\ListSet' => $vendorDir . '/predis/predis/src/Command/ListSet.php',\n    'Predis\\\\Command\\\\ListTrim' => $vendorDir . '/predis/predis/src/Command/ListTrim.php',\n    'Predis\\\\Command\\\\PrefixableCommandInterface' => $vendorDir . '/predis/predis/src/Command/PrefixableCommandInterface.php',\n    'Predis\\\\Command\\\\Processor\\\\KeyPrefixProcessor' => $vendorDir . '/predis/predis/src/Command/Processor/KeyPrefixProcessor.php',\n    'Predis\\\\Command\\\\Processor\\\\ProcessorChain' => $vendorDir . '/predis/predis/src/Command/Processor/ProcessorChain.php',\n    'Predis\\\\Command\\\\Processor\\\\ProcessorInterface' => $vendorDir . '/predis/predis/src/Command/Processor/ProcessorInterface.php',\n    'Predis\\\\Command\\\\PubSubPublish' => $vendorDir . '/predis/predis/src/Command/PubSubPublish.php',\n    'Predis\\\\Command\\\\PubSubPubsub' => $vendorDir . '/predis/predis/src/Command/PubSubPubsub.php',\n    'Predis\\\\Command\\\\PubSubSubscribe' => $vendorDir . '/predis/predis/src/Command/PubSubSubscribe.php',\n    'Predis\\\\Command\\\\PubSubSubscribeByPattern' => $vendorDir . '/predis/predis/src/Command/PubSubSubscribeByPattern.php',\n    'Predis\\\\Command\\\\PubSubUnsubscribe' => $vendorDir . '/predis/predis/src/Command/PubSubUnsubscribe.php',\n    'Predis\\\\Command\\\\PubSubUnsubscribeByPattern' => $vendorDir . '/predis/predis/src/Command/PubSubUnsubscribeByPattern.php',\n    'Predis\\\\Command\\\\RawCommand' => $vendorDir . '/predis/predis/src/Command/RawCommand.php',\n    'Predis\\\\Command\\\\ScriptCommand' => $vendorDir . '/predis/predis/src/Command/ScriptCommand.php',\n    'Predis\\\\Command\\\\ServerBackgroundRewriteAOF' => $vendorDir . '/predis/predis/src/Command/ServerBackgroundRewriteAOF.php',\n    'Predis\\\\Command\\\\ServerBackgroundSave' => $vendorDir . '/predis/predis/src/Command/ServerBackgroundSave.php',\n    'Predis\\\\Command\\\\ServerClient' => $vendorDir . '/predis/predis/src/Command/ServerClient.php',\n    'Predis\\\\Command\\\\ServerCommand' => $vendorDir . '/predis/predis/src/Command/ServerCommand.php',\n    'Predis\\\\Command\\\\ServerConfig' => $vendorDir . '/predis/predis/src/Command/ServerConfig.php',\n    'Predis\\\\Command\\\\ServerDatabaseSize' => $vendorDir . '/predis/predis/src/Command/ServerDatabaseSize.php',\n    'Predis\\\\Command\\\\ServerEval' => $vendorDir . '/predis/predis/src/Command/ServerEval.php',\n    'Predis\\\\Command\\\\ServerEvalSHA' => $vendorDir . '/predis/predis/src/Command/ServerEvalSHA.php',\n    'Predis\\\\Command\\\\ServerFlushAll' => $vendorDir . '/predis/predis/src/Command/ServerFlushAll.php',\n    'Predis\\\\Command\\\\ServerFlushDatabase' => $vendorDir . '/predis/predis/src/Command/ServerFlushDatabase.php',\n    'Predis\\\\Command\\\\ServerInfo' => $vendorDir . '/predis/predis/src/Command/ServerInfo.php',\n    'Predis\\\\Command\\\\ServerInfoV26x' => $vendorDir . '/predis/predis/src/Command/ServerInfoV26x.php',\n    'Predis\\\\Command\\\\ServerLastSave' => $vendorDir . '/predis/predis/src/Command/ServerLastSave.php',\n    'Predis\\\\Command\\\\ServerMonitor' => $vendorDir . '/predis/predis/src/Command/ServerMonitor.php',\n    'Predis\\\\Command\\\\ServerObject' => $vendorDir . '/predis/predis/src/Command/ServerObject.php',\n    'Predis\\\\Command\\\\ServerSave' => $vendorDir . '/predis/predis/src/Command/ServerSave.php',\n    'Predis\\\\Command\\\\ServerScript' => $vendorDir . '/predis/predis/src/Command/ServerScript.php',\n    'Predis\\\\Command\\\\ServerSentinel' => $vendorDir . '/predis/predis/src/Command/ServerSentinel.php',\n    'Predis\\\\Command\\\\ServerShutdown' => $vendorDir . '/predis/predis/src/Command/ServerShutdown.php',\n    'Predis\\\\Command\\\\ServerSlaveOf' => $vendorDir . '/predis/predis/src/Command/ServerSlaveOf.php',\n    'Predis\\\\Command\\\\ServerSlowlog' => $vendorDir . '/predis/predis/src/Command/ServerSlowlog.php',\n    'Predis\\\\Command\\\\ServerTime' => $vendorDir . '/predis/predis/src/Command/ServerTime.php',\n    'Predis\\\\Command\\\\SetAdd' => $vendorDir . '/predis/predis/src/Command/SetAdd.php',\n    'Predis\\\\Command\\\\SetCardinality' => $vendorDir . '/predis/predis/src/Command/SetCardinality.php',\n    'Predis\\\\Command\\\\SetDifference' => $vendorDir . '/predis/predis/src/Command/SetDifference.php',\n    'Predis\\\\Command\\\\SetDifferenceStore' => $vendorDir . '/predis/predis/src/Command/SetDifferenceStore.php',\n    'Predis\\\\Command\\\\SetIntersection' => $vendorDir . '/predis/predis/src/Command/SetIntersection.php',\n    'Predis\\\\Command\\\\SetIntersectionStore' => $vendorDir . '/predis/predis/src/Command/SetIntersectionStore.php',\n    'Predis\\\\Command\\\\SetIsMember' => $vendorDir . '/predis/predis/src/Command/SetIsMember.php',\n    'Predis\\\\Command\\\\SetMembers' => $vendorDir . '/predis/predis/src/Command/SetMembers.php',\n    'Predis\\\\Command\\\\SetMove' => $vendorDir . '/predis/predis/src/Command/SetMove.php',\n    'Predis\\\\Command\\\\SetPop' => $vendorDir . '/predis/predis/src/Command/SetPop.php',\n    'Predis\\\\Command\\\\SetRandomMember' => $vendorDir . '/predis/predis/src/Command/SetRandomMember.php',\n    'Predis\\\\Command\\\\SetRemove' => $vendorDir . '/predis/predis/src/Command/SetRemove.php',\n    'Predis\\\\Command\\\\SetScan' => $vendorDir . '/predis/predis/src/Command/SetScan.php',\n    'Predis\\\\Command\\\\SetUnion' => $vendorDir . '/predis/predis/src/Command/SetUnion.php',\n    'Predis\\\\Command\\\\SetUnionStore' => $vendorDir . '/predis/predis/src/Command/SetUnionStore.php',\n    'Predis\\\\Command\\\\StringAppend' => $vendorDir . '/predis/predis/src/Command/StringAppend.php',\n    'Predis\\\\Command\\\\StringBitCount' => $vendorDir . '/predis/predis/src/Command/StringBitCount.php',\n    'Predis\\\\Command\\\\StringBitField' => $vendorDir . '/predis/predis/src/Command/StringBitField.php',\n    'Predis\\\\Command\\\\StringBitOp' => $vendorDir . '/predis/predis/src/Command/StringBitOp.php',\n    'Predis\\\\Command\\\\StringBitPos' => $vendorDir . '/predis/predis/src/Command/StringBitPos.php',\n    'Predis\\\\Command\\\\StringDecrement' => $vendorDir . '/predis/predis/src/Command/StringDecrement.php',\n    'Predis\\\\Command\\\\StringDecrementBy' => $vendorDir . '/predis/predis/src/Command/StringDecrementBy.php',\n    'Predis\\\\Command\\\\StringGet' => $vendorDir . '/predis/predis/src/Command/StringGet.php',\n    'Predis\\\\Command\\\\StringGetBit' => $vendorDir . '/predis/predis/src/Command/StringGetBit.php',\n    'Predis\\\\Command\\\\StringGetMultiple' => $vendorDir . '/predis/predis/src/Command/StringGetMultiple.php',\n    'Predis\\\\Command\\\\StringGetRange' => $vendorDir . '/predis/predis/src/Command/StringGetRange.php',\n    'Predis\\\\Command\\\\StringGetSet' => $vendorDir . '/predis/predis/src/Command/StringGetSet.php',\n    'Predis\\\\Command\\\\StringIncrement' => $vendorDir . '/predis/predis/src/Command/StringIncrement.php',\n    'Predis\\\\Command\\\\StringIncrementBy' => $vendorDir . '/predis/predis/src/Command/StringIncrementBy.php',\n    'Predis\\\\Command\\\\StringIncrementByFloat' => $vendorDir . '/predis/predis/src/Command/StringIncrementByFloat.php',\n    'Predis\\\\Command\\\\StringPreciseSetExpire' => $vendorDir . '/predis/predis/src/Command/StringPreciseSetExpire.php',\n    'Predis\\\\Command\\\\StringSet' => $vendorDir . '/predis/predis/src/Command/StringSet.php',\n    'Predis\\\\Command\\\\StringSetBit' => $vendorDir . '/predis/predis/src/Command/StringSetBit.php',\n    'Predis\\\\Command\\\\StringSetExpire' => $vendorDir . '/predis/predis/src/Command/StringSetExpire.php',\n    'Predis\\\\Command\\\\StringSetMultiple' => $vendorDir . '/predis/predis/src/Command/StringSetMultiple.php',\n    'Predis\\\\Command\\\\StringSetMultiplePreserve' => $vendorDir . '/predis/predis/src/Command/StringSetMultiplePreserve.php',\n    'Predis\\\\Command\\\\StringSetPreserve' => $vendorDir . '/predis/predis/src/Command/StringSetPreserve.php',\n    'Predis\\\\Command\\\\StringSetRange' => $vendorDir . '/predis/predis/src/Command/StringSetRange.php',\n    'Predis\\\\Command\\\\StringStrlen' => $vendorDir . '/predis/predis/src/Command/StringStrlen.php',\n    'Predis\\\\Command\\\\StringSubstr' => $vendorDir . '/predis/predis/src/Command/StringSubstr.php',\n    'Predis\\\\Command\\\\TransactionDiscard' => $vendorDir . '/predis/predis/src/Command/TransactionDiscard.php',\n    'Predis\\\\Command\\\\TransactionExec' => $vendorDir . '/predis/predis/src/Command/TransactionExec.php',\n    'Predis\\\\Command\\\\TransactionMulti' => $vendorDir . '/predis/predis/src/Command/TransactionMulti.php',\n    'Predis\\\\Command\\\\TransactionUnwatch' => $vendorDir . '/predis/predis/src/Command/TransactionUnwatch.php',\n    'Predis\\\\Command\\\\TransactionWatch' => $vendorDir . '/predis/predis/src/Command/TransactionWatch.php',\n    'Predis\\\\Command\\\\ZSetAdd' => $vendorDir . '/predis/predis/src/Command/ZSetAdd.php',\n    'Predis\\\\Command\\\\ZSetCardinality' => $vendorDir . '/predis/predis/src/Command/ZSetCardinality.php',\n    'Predis\\\\Command\\\\ZSetCount' => $vendorDir . '/predis/predis/src/Command/ZSetCount.php',\n    'Predis\\\\Command\\\\ZSetIncrementBy' => $vendorDir . '/predis/predis/src/Command/ZSetIncrementBy.php',\n    'Predis\\\\Command\\\\ZSetIntersectionStore' => $vendorDir . '/predis/predis/src/Command/ZSetIntersectionStore.php',\n    'Predis\\\\Command\\\\ZSetLexCount' => $vendorDir . '/predis/predis/src/Command/ZSetLexCount.php',\n    'Predis\\\\Command\\\\ZSetRange' => $vendorDir . '/predis/predis/src/Command/ZSetRange.php',\n    'Predis\\\\Command\\\\ZSetRangeByLex' => $vendorDir . '/predis/predis/src/Command/ZSetRangeByLex.php',\n    'Predis\\\\Command\\\\ZSetRangeByScore' => $vendorDir . '/predis/predis/src/Command/ZSetRangeByScore.php',\n    'Predis\\\\Command\\\\ZSetRank' => $vendorDir . '/predis/predis/src/Command/ZSetRank.php',\n    'Predis\\\\Command\\\\ZSetRemove' => $vendorDir . '/predis/predis/src/Command/ZSetRemove.php',\n    'Predis\\\\Command\\\\ZSetRemoveRangeByLex' => $vendorDir . '/predis/predis/src/Command/ZSetRemoveRangeByLex.php',\n    'Predis\\\\Command\\\\ZSetRemoveRangeByRank' => $vendorDir . '/predis/predis/src/Command/ZSetRemoveRangeByRank.php',\n    'Predis\\\\Command\\\\ZSetRemoveRangeByScore' => $vendorDir . '/predis/predis/src/Command/ZSetRemoveRangeByScore.php',\n    'Predis\\\\Command\\\\ZSetReverseRange' => $vendorDir . '/predis/predis/src/Command/ZSetReverseRange.php',\n    'Predis\\\\Command\\\\ZSetReverseRangeByLex' => $vendorDir . '/predis/predis/src/Command/ZSetReverseRangeByLex.php',\n    'Predis\\\\Command\\\\ZSetReverseRangeByScore' => $vendorDir . '/predis/predis/src/Command/ZSetReverseRangeByScore.php',\n    'Predis\\\\Command\\\\ZSetReverseRank' => $vendorDir . '/predis/predis/src/Command/ZSetReverseRank.php',\n    'Predis\\\\Command\\\\ZSetScan' => $vendorDir . '/predis/predis/src/Command/ZSetScan.php',\n    'Predis\\\\Command\\\\ZSetScore' => $vendorDir . '/predis/predis/src/Command/ZSetScore.php',\n    'Predis\\\\Command\\\\ZSetUnionStore' => $vendorDir . '/predis/predis/src/Command/ZSetUnionStore.php',\n    'Predis\\\\CommunicationException' => $vendorDir . '/predis/predis/src/CommunicationException.php',\n    'Predis\\\\Configuration\\\\ClusterOption' => $vendorDir . '/predis/predis/src/Configuration/ClusterOption.php',\n    'Predis\\\\Configuration\\\\ConnectionFactoryOption' => $vendorDir . '/predis/predis/src/Configuration/ConnectionFactoryOption.php',\n    'Predis\\\\Configuration\\\\ExceptionsOption' => $vendorDir . '/predis/predis/src/Configuration/ExceptionsOption.php',\n    'Predis\\\\Configuration\\\\OptionInterface' => $vendorDir . '/predis/predis/src/Configuration/OptionInterface.php',\n    'Predis\\\\Configuration\\\\Options' => $vendorDir . '/predis/predis/src/Configuration/Options.php',\n    'Predis\\\\Configuration\\\\OptionsInterface' => $vendorDir . '/predis/predis/src/Configuration/OptionsInterface.php',\n    'Predis\\\\Configuration\\\\PrefixOption' => $vendorDir . '/predis/predis/src/Configuration/PrefixOption.php',\n    'Predis\\\\Configuration\\\\ProfileOption' => $vendorDir . '/predis/predis/src/Configuration/ProfileOption.php',\n    'Predis\\\\Configuration\\\\ReplicationOption' => $vendorDir . '/predis/predis/src/Configuration/ReplicationOption.php',\n    'Predis\\\\Connection\\\\AbstractConnection' => $vendorDir . '/predis/predis/src/Connection/AbstractConnection.php',\n    'Predis\\\\Connection\\\\AggregateConnectionInterface' => $vendorDir . '/predis/predis/src/Connection/AggregateConnectionInterface.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\ClusterInterface' => $vendorDir . '/predis/predis/src/Connection/Aggregate/ClusterInterface.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\MasterSlaveReplication' => $vendorDir . '/predis/predis/src/Connection/Aggregate/MasterSlaveReplication.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\PredisCluster' => $vendorDir . '/predis/predis/src/Connection/Aggregate/PredisCluster.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\RedisCluster' => $vendorDir . '/predis/predis/src/Connection/Aggregate/RedisCluster.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\ReplicationInterface' => $vendorDir . '/predis/predis/src/Connection/Aggregate/ReplicationInterface.php',\n    'Predis\\\\Connection\\\\Aggregate\\\\SentinelReplication' => $vendorDir . '/predis/predis/src/Connection/Aggregate/SentinelReplication.php',\n    'Predis\\\\Connection\\\\CompositeConnectionInterface' => $vendorDir . '/predis/predis/src/Connection/CompositeConnectionInterface.php',\n    'Predis\\\\Connection\\\\CompositeStreamConnection' => $vendorDir . '/predis/predis/src/Connection/CompositeStreamConnection.php',\n    'Predis\\\\Connection\\\\ConnectionException' => $vendorDir . '/predis/predis/src/Connection/ConnectionException.php',\n    'Predis\\\\Connection\\\\ConnectionInterface' => $vendorDir . '/predis/predis/src/Connection/ConnectionInterface.php',\n    'Predis\\\\Connection\\\\Factory' => $vendorDir . '/predis/predis/src/Connection/Factory.php',\n    'Predis\\\\Connection\\\\FactoryInterface' => $vendorDir . '/predis/predis/src/Connection/FactoryInterface.php',\n    'Predis\\\\Connection\\\\NodeConnectionInterface' => $vendorDir . '/predis/predis/src/Connection/NodeConnectionInterface.php',\n    'Predis\\\\Connection\\\\Parameters' => $vendorDir . '/predis/predis/src/Connection/Parameters.php',\n    'Predis\\\\Connection\\\\ParametersInterface' => $vendorDir . '/predis/predis/src/Connection/ParametersInterface.php',\n    'Predis\\\\Connection\\\\PhpiredisSocketConnection' => $vendorDir . '/predis/predis/src/Connection/PhpiredisSocketConnection.php',\n    'Predis\\\\Connection\\\\PhpiredisStreamConnection' => $vendorDir . '/predis/predis/src/Connection/PhpiredisStreamConnection.php',\n    'Predis\\\\Connection\\\\StreamConnection' => $vendorDir . '/predis/predis/src/Connection/StreamConnection.php',\n    'Predis\\\\Connection\\\\WebdisConnection' => $vendorDir . '/predis/predis/src/Connection/WebdisConnection.php',\n    'Predis\\\\Monitor\\\\Consumer' => $vendorDir . '/predis/predis/src/Monitor/Consumer.php',\n    'Predis\\\\NotSupportedException' => $vendorDir . '/predis/predis/src/NotSupportedException.php',\n    'Predis\\\\Pipeline\\\\Atomic' => $vendorDir . '/predis/predis/src/Pipeline/Atomic.php',\n    'Predis\\\\Pipeline\\\\ConnectionErrorProof' => $vendorDir . '/predis/predis/src/Pipeline/ConnectionErrorProof.php',\n    'Predis\\\\Pipeline\\\\FireAndForget' => $vendorDir . '/predis/predis/src/Pipeline/FireAndForget.php',\n    'Predis\\\\Pipeline\\\\Pipeline' => $vendorDir . '/predis/predis/src/Pipeline/Pipeline.php',\n    'Predis\\\\PredisException' => $vendorDir . '/predis/predis/src/PredisException.php',\n    'Predis\\\\Profile\\\\Factory' => $vendorDir . '/predis/predis/src/Profile/Factory.php',\n    'Predis\\\\Profile\\\\ProfileInterface' => $vendorDir . '/predis/predis/src/Profile/ProfileInterface.php',\n    'Predis\\\\Profile\\\\RedisProfile' => $vendorDir . '/predis/predis/src/Profile/RedisProfile.php',\n    'Predis\\\\Profile\\\\RedisUnstable' => $vendorDir . '/predis/predis/src/Profile/RedisUnstable.php',\n    'Predis\\\\Profile\\\\RedisVersion200' => $vendorDir . '/predis/predis/src/Profile/RedisVersion200.php',\n    'Predis\\\\Profile\\\\RedisVersion220' => $vendorDir . '/predis/predis/src/Profile/RedisVersion220.php',\n    'Predis\\\\Profile\\\\RedisVersion240' => $vendorDir . '/predis/predis/src/Profile/RedisVersion240.php',\n    'Predis\\\\Profile\\\\RedisVersion260' => $vendorDir . '/predis/predis/src/Profile/RedisVersion260.php',\n    'Predis\\\\Profile\\\\RedisVersion280' => $vendorDir . '/predis/predis/src/Profile/RedisVersion280.php',\n    'Predis\\\\Profile\\\\RedisVersion300' => $vendorDir . '/predis/predis/src/Profile/RedisVersion300.php',\n    'Predis\\\\Profile\\\\RedisVersion320' => $vendorDir . '/predis/predis/src/Profile/RedisVersion320.php',\n    'Predis\\\\Protocol\\\\ProtocolException' => $vendorDir . '/predis/predis/src/Protocol/ProtocolException.php',\n    'Predis\\\\Protocol\\\\ProtocolProcessorInterface' => $vendorDir . '/predis/predis/src/Protocol/ProtocolProcessorInterface.php',\n    'Predis\\\\Protocol\\\\RequestSerializerInterface' => $vendorDir . '/predis/predis/src/Protocol/RequestSerializerInterface.php',\n    'Predis\\\\Protocol\\\\ResponseReaderInterface' => $vendorDir . '/predis/predis/src/Protocol/ResponseReaderInterface.php',\n    'Predis\\\\Protocol\\\\Text\\\\CompositeProtocolProcessor' => $vendorDir . '/predis/predis/src/Protocol/Text/CompositeProtocolProcessor.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\BulkResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/BulkResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\ErrorResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/ErrorResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\IntegerResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/IntegerResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\MultiBulkResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/MultiBulkResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\ResponseHandlerInterface' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/ResponseHandlerInterface.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\StatusResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/StatusResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\Handler\\\\StreamableMultiBulkResponse' => $vendorDir . '/predis/predis/src/Protocol/Text/Handler/StreamableMultiBulkResponse.php',\n    'Predis\\\\Protocol\\\\Text\\\\ProtocolProcessor' => $vendorDir . '/predis/predis/src/Protocol/Text/ProtocolProcessor.php',\n    'Predis\\\\Protocol\\\\Text\\\\RequestSerializer' => $vendorDir . '/predis/predis/src/Protocol/Text/RequestSerializer.php',\n    'Predis\\\\Protocol\\\\Text\\\\ResponseReader' => $vendorDir . '/predis/predis/src/Protocol/Text/ResponseReader.php',\n    'Predis\\\\PubSub\\\\AbstractConsumer' => $vendorDir . '/predis/predis/src/PubSub/AbstractConsumer.php',\n    'Predis\\\\PubSub\\\\Consumer' => $vendorDir . '/predis/predis/src/PubSub/Consumer.php',\n    'Predis\\\\PubSub\\\\DispatcherLoop' => $vendorDir . '/predis/predis/src/PubSub/DispatcherLoop.php',\n    'Predis\\\\Replication\\\\MissingMasterException' => $vendorDir . '/predis/predis/src/Replication/MissingMasterException.php',\n    'Predis\\\\Replication\\\\ReplicationStrategy' => $vendorDir . '/predis/predis/src/Replication/ReplicationStrategy.php',\n    'Predis\\\\Replication\\\\RoleException' => $vendorDir . '/predis/predis/src/Replication/RoleException.php',\n    'Predis\\\\Response\\\\Error' => $vendorDir . '/predis/predis/src/Response/Error.php',\n    'Predis\\\\Response\\\\ErrorInterface' => $vendorDir . '/predis/predis/src/Response/ErrorInterface.php',\n    'Predis\\\\Response\\\\Iterator\\\\MultiBulk' => $vendorDir . '/predis/predis/src/Response/Iterator/MultiBulk.php',\n    'Predis\\\\Response\\\\Iterator\\\\MultiBulkIterator' => $vendorDir . '/predis/predis/src/Response/Iterator/MultiBulkIterator.php',\n    'Predis\\\\Response\\\\Iterator\\\\MultiBulkTuple' => $vendorDir . '/predis/predis/src/Response/Iterator/MultiBulkTuple.php',\n    'Predis\\\\Response\\\\ResponseInterface' => $vendorDir . '/predis/predis/src/Response/ResponseInterface.php',\n    'Predis\\\\Response\\\\ServerException' => $vendorDir . '/predis/predis/src/Response/ServerException.php',\n    'Predis\\\\Response\\\\Status' => $vendorDir . '/predis/predis/src/Response/Status.php',\n    'Predis\\\\Session\\\\Handler' => $vendorDir . '/predis/predis/src/Session/Handler.php',\n    'Predis\\\\Transaction\\\\AbortedMultiExecException' => $vendorDir . '/predis/predis/src/Transaction/AbortedMultiExecException.php',\n    'Predis\\\\Transaction\\\\MultiExec' => $vendorDir . '/predis/predis/src/Transaction/MultiExec.php',\n    'Predis\\\\Transaction\\\\MultiExecState' => $vendorDir . '/predis/predis/src/Transaction/MultiExecState.php',\n    'Prophecy\\\\Argument' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument.php',\n    'Prophecy\\\\Argument\\\\ArgumentsWildcard' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php',\n    'Prophecy\\\\Argument\\\\Token\\\\AnyValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\AnyValuesToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ApproximateValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ArrayCountToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ArrayEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ArrayEveryEntryToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\CallbackToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ExactValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\IdenticalValueToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\LogicalAndToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\LogicalNotToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\ObjectStateToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\StringContainsToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php',\n    'Prophecy\\\\Argument\\\\Token\\\\TokenInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php',\n    'Prophecy\\\\Argument\\\\Token\\\\TypeToken' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php',\n    'Prophecy\\\\Call\\\\Call' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/Call.php',\n    'Prophecy\\\\Call\\\\CallCenter' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php',\n    'Prophecy\\\\Comparator\\\\ClosureComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php',\n    'Prophecy\\\\Comparator\\\\Factory' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php',\n    'Prophecy\\\\Comparator\\\\ProphecyComparator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php',\n    'Prophecy\\\\Doubler\\\\CachedDoubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\ClassPatchInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\DisableConstructorPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\HhvmExceptionPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\KeywordPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\MagicCallPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\ProphecySubjectPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\ReflectionClassNewInstancePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\SplFileInfoPatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\ThrowablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php',\n    'Prophecy\\\\Doubler\\\\ClassPatch\\\\TraversablePatch' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php',\n    'Prophecy\\\\Doubler\\\\DoubleInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php',\n    'Prophecy\\\\Doubler\\\\Doubler' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\ClassCodeGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\ClassCreator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\ClassMirror' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\ArgumentNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\ClassNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\MethodNode' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\ReflectionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php',\n    'Prophecy\\\\Doubler\\\\Generator\\\\TypeHintReference' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php',\n    'Prophecy\\\\Doubler\\\\LazyDouble' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php',\n    'Prophecy\\\\Doubler\\\\NameGenerator' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php',\n    'Prophecy\\\\Exception\\\\Call\\\\UnexpectedCallException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\ClassCreatorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\ClassMirrorException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\ClassNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\DoubleException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\DoublerException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\InterfaceNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\MethodNotExtendableException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\MethodNotFoundException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php',\n    'Prophecy\\\\Exception\\\\Doubler\\\\ReturnByReferenceException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php',\n    'Prophecy\\\\Exception\\\\Exception' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php',\n    'Prophecy\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\AggregateException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\FailedPredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\NoCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\PredictionException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\UnexpectedCallsCountException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php',\n    'Prophecy\\\\Exception\\\\Prediction\\\\UnexpectedCallsException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php',\n    'Prophecy\\\\Exception\\\\Prophecy\\\\MethodProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php',\n    'Prophecy\\\\Exception\\\\Prophecy\\\\ObjectProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php',\n    'Prophecy\\\\Exception\\\\Prophecy\\\\ProphecyException' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php',\n    'Prophecy\\\\PhpDocumentor\\\\ClassAndInterfaceTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php',\n    'Prophecy\\\\PhpDocumentor\\\\ClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php',\n    'Prophecy\\\\PhpDocumentor\\\\LegacyClassTagRetriever' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php',\n    'Prophecy\\\\PhpDocumentor\\\\MethodTagRetrieverInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php',\n    'Prophecy\\\\Prediction\\\\CallPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php',\n    'Prophecy\\\\Prediction\\\\CallTimesPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php',\n    'Prophecy\\\\Prediction\\\\CallbackPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php',\n    'Prophecy\\\\Prediction\\\\NoCallsPrediction' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php',\n    'Prophecy\\\\Prediction\\\\PredictionInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php',\n    'Prophecy\\\\Promise\\\\CallbackPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php',\n    'Prophecy\\\\Promise\\\\PromiseInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php',\n    'Prophecy\\\\Promise\\\\ReturnArgumentPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php',\n    'Prophecy\\\\Promise\\\\ReturnPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php',\n    'Prophecy\\\\Promise\\\\ThrowPromise' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php',\n    'Prophecy\\\\Prophecy\\\\MethodProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php',\n    'Prophecy\\\\Prophecy\\\\ObjectProphecy' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php',\n    'Prophecy\\\\Prophecy\\\\ProphecyInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php',\n    'Prophecy\\\\Prophecy\\\\ProphecySubjectInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php',\n    'Prophecy\\\\Prophecy\\\\Revealer' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php',\n    'Prophecy\\\\Prophecy\\\\RevealerInterface' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php',\n    'Prophecy\\\\Prophet' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Prophet.php',\n    'Prophecy\\\\Util\\\\ExportUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php',\n    'Prophecy\\\\Util\\\\StringUtil' => $vendorDir . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php',\n    'Psr\\\\Container\\\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php',\n    'Psr\\\\Container\\\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php',\n    'Psr\\\\Container\\\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php',\n    'Psr\\\\Log\\\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php',\n    'Psr\\\\Log\\\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php',\n    'Psr\\\\Log\\\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php',\n    'Psr\\\\Log\\\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php',\n    'Psr\\\\Log\\\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php',\n    'Psr\\\\Log\\\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php',\n    'Psr\\\\Log\\\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php',\n    'Psr\\\\Log\\\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php',\n    'Psr\\\\Log\\\\Test\\\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',\n    'Psr\\\\Log\\\\Test\\\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',\n    'Psr\\\\Log\\\\Test\\\\TestLogger' => $vendorDir . '/psr/log/Psr/Log/Test/TestLogger.php',\n    'Psr\\\\SimpleCache\\\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php',\n    'Psr\\\\SimpleCache\\\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php',\n    'Psr\\\\SimpleCache\\\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php',\n    'Psy\\\\CodeCleaner' => $vendorDir . '/psy/psysh/src/CodeCleaner.php',\n    'Psy\\\\CodeCleaner\\\\AbstractClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/AbstractClassPass.php',\n    'Psy\\\\CodeCleaner\\\\AssignThisVariablePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php',\n    'Psy\\\\CodeCleaner\\\\CallTimePassByReferencePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php',\n    'Psy\\\\CodeCleaner\\\\CalledClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CalledClassPass.php',\n    'Psy\\\\CodeCleaner\\\\CodeCleanerPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/CodeCleanerPass.php',\n    'Psy\\\\CodeCleaner\\\\ExitPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ExitPass.php',\n    'Psy\\\\CodeCleaner\\\\FinalClassPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FinalClassPass.php',\n    'Psy\\\\CodeCleaner\\\\FunctionContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FunctionContextPass.php',\n    'Psy\\\\CodeCleaner\\\\FunctionReturnInWriteContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php',\n    'Psy\\\\CodeCleaner\\\\ImplicitReturnPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php',\n    'Psy\\\\CodeCleaner\\\\InstanceOfPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php',\n    'Psy\\\\CodeCleaner\\\\LeavePsyshAlonePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php',\n    'Psy\\\\CodeCleaner\\\\LegacyEmptyPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php',\n    'Psy\\\\CodeCleaner\\\\ListPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ListPass.php',\n    'Psy\\\\CodeCleaner\\\\LoopContextPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/LoopContextPass.php',\n    'Psy\\\\CodeCleaner\\\\MagicConstantsPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php',\n    'Psy\\\\CodeCleaner\\\\NamespaceAwarePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php',\n    'Psy\\\\CodeCleaner\\\\NamespacePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/NamespacePass.php',\n    'Psy\\\\CodeCleaner\\\\NoReturnValue' => $vendorDir . '/psy/psysh/src/CodeCleaner/NoReturnValue.php',\n    'Psy\\\\CodeCleaner\\\\PassableByReferencePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/PassableByReferencePass.php',\n    'Psy\\\\CodeCleaner\\\\RequirePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/RequirePass.php',\n    'Psy\\\\CodeCleaner\\\\StrictTypesPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/StrictTypesPass.php',\n    'Psy\\\\CodeCleaner\\\\UseStatementPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/UseStatementPass.php',\n    'Psy\\\\CodeCleaner\\\\ValidClassNamePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidClassNamePass.php',\n    'Psy\\\\CodeCleaner\\\\ValidConstantPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidConstantPass.php',\n    'Psy\\\\CodeCleaner\\\\ValidConstructorPass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidConstructorPass.php',\n    'Psy\\\\CodeCleaner\\\\ValidFunctionNamePass' => $vendorDir . '/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php',\n    'Psy\\\\Command\\\\BufferCommand' => $vendorDir . '/psy/psysh/src/Command/BufferCommand.php',\n    'Psy\\\\Command\\\\ClearCommand' => $vendorDir . '/psy/psysh/src/Command/ClearCommand.php',\n    'Psy\\\\Command\\\\Command' => $vendorDir . '/psy/psysh/src/Command/Command.php',\n    'Psy\\\\Command\\\\DocCommand' => $vendorDir . '/psy/psysh/src/Command/DocCommand.php',\n    'Psy\\\\Command\\\\DumpCommand' => $vendorDir . '/psy/psysh/src/Command/DumpCommand.php',\n    'Psy\\\\Command\\\\EditCommand' => $vendorDir . '/psy/psysh/src/Command/EditCommand.php',\n    'Psy\\\\Command\\\\ExitCommand' => $vendorDir . '/psy/psysh/src/Command/ExitCommand.php',\n    'Psy\\\\Command\\\\HelpCommand' => $vendorDir . '/psy/psysh/src/Command/HelpCommand.php',\n    'Psy\\\\Command\\\\HistoryCommand' => $vendorDir . '/psy/psysh/src/Command/HistoryCommand.php',\n    'Psy\\\\Command\\\\ListCommand' => $vendorDir . '/psy/psysh/src/Command/ListCommand.php',\n    'Psy\\\\Command\\\\ListCommand\\\\ClassConstantEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\ClassEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ClassEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\ConstantEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\Enumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/Enumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\FunctionEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\GlobalVariableEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\InterfaceEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/InterfaceEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\MethodEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/MethodEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\PropertyEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\TraitEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/TraitEnumerator.php',\n    'Psy\\\\Command\\\\ListCommand\\\\VariableEnumerator' => $vendorDir . '/psy/psysh/src/Command/ListCommand/VariableEnumerator.php',\n    'Psy\\\\Command\\\\ParseCommand' => $vendorDir . '/psy/psysh/src/Command/ParseCommand.php',\n    'Psy\\\\Command\\\\PsyVersionCommand' => $vendorDir . '/psy/psysh/src/Command/PsyVersionCommand.php',\n    'Psy\\\\Command\\\\ReflectingCommand' => $vendorDir . '/psy/psysh/src/Command/ReflectingCommand.php',\n    'Psy\\\\Command\\\\ShowCommand' => $vendorDir . '/psy/psysh/src/Command/ShowCommand.php',\n    'Psy\\\\Command\\\\SudoCommand' => $vendorDir . '/psy/psysh/src/Command/SudoCommand.php',\n    'Psy\\\\Command\\\\ThrowUpCommand' => $vendorDir . '/psy/psysh/src/Command/ThrowUpCommand.php',\n    'Psy\\\\Command\\\\TimeitCommand' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand.php',\n    'Psy\\\\Command\\\\TimeitCommand\\\\TimeitVisitor' => $vendorDir . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php',\n    'Psy\\\\Command\\\\TraceCommand' => $vendorDir . '/psy/psysh/src/Command/TraceCommand.php',\n    'Psy\\\\Command\\\\WhereamiCommand' => $vendorDir . '/psy/psysh/src/Command/WhereamiCommand.php',\n    'Psy\\\\Command\\\\WtfCommand' => $vendorDir . '/psy/psysh/src/Command/WtfCommand.php',\n    'Psy\\\\ConfigPaths' => $vendorDir . '/psy/psysh/src/ConfigPaths.php',\n    'Psy\\\\Configuration' => $vendorDir . '/psy/psysh/src/Configuration.php',\n    'Psy\\\\ConsoleColorFactory' => $vendorDir . '/psy/psysh/src/ConsoleColorFactory.php',\n    'Psy\\\\Context' => $vendorDir . '/psy/psysh/src/Context.php',\n    'Psy\\\\ContextAware' => $vendorDir . '/psy/psysh/src/ContextAware.php',\n    'Psy\\\\Exception\\\\BreakException' => $vendorDir . '/psy/psysh/src/Exception/BreakException.php',\n    'Psy\\\\Exception\\\\DeprecatedException' => $vendorDir . '/psy/psysh/src/Exception/DeprecatedException.php',\n    'Psy\\\\Exception\\\\ErrorException' => $vendorDir . '/psy/psysh/src/Exception/ErrorException.php',\n    'Psy\\\\Exception\\\\Exception' => $vendorDir . '/psy/psysh/src/Exception/Exception.php',\n    'Psy\\\\Exception\\\\FatalErrorException' => $vendorDir . '/psy/psysh/src/Exception/FatalErrorException.php',\n    'Psy\\\\Exception\\\\ParseErrorException' => $vendorDir . '/psy/psysh/src/Exception/ParseErrorException.php',\n    'Psy\\\\Exception\\\\RuntimeException' => $vendorDir . '/psy/psysh/src/Exception/RuntimeException.php',\n    'Psy\\\\Exception\\\\ThrowUpException' => $vendorDir . '/psy/psysh/src/Exception/ThrowUpException.php',\n    'Psy\\\\Exception\\\\TypeErrorException' => $vendorDir . '/psy/psysh/src/Exception/TypeErrorException.php',\n    'Psy\\\\ExecutionClosure' => $vendorDir . '/psy/psysh/src/ExecutionClosure.php',\n    'Psy\\\\ExecutionLoop' => $vendorDir . '/psy/psysh/src/ExecutionLoop.php',\n    'Psy\\\\ExecutionLoopClosure' => $vendorDir . '/psy/psysh/src/ExecutionLoopClosure.php',\n    'Psy\\\\ExecutionLoop\\\\AbstractListener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/AbstractListener.php',\n    'Psy\\\\ExecutionLoop\\\\Listener' => $vendorDir . '/psy/psysh/src/ExecutionLoop/Listener.php',\n    'Psy\\\\ExecutionLoop\\\\ProcessForker' => $vendorDir . '/psy/psysh/src/ExecutionLoop/ProcessForker.php',\n    'Psy\\\\ExecutionLoop\\\\RunkitReloader' => $vendorDir . '/psy/psysh/src/ExecutionLoop/RunkitReloader.php',\n    'Psy\\\\Formatter\\\\CodeFormatter' => $vendorDir . '/psy/psysh/src/Formatter/CodeFormatter.php',\n    'Psy\\\\Formatter\\\\DocblockFormatter' => $vendorDir . '/psy/psysh/src/Formatter/DocblockFormatter.php',\n    'Psy\\\\Formatter\\\\Formatter' => $vendorDir . '/psy/psysh/src/Formatter/Formatter.php',\n    'Psy\\\\Formatter\\\\SignatureFormatter' => $vendorDir . '/psy/psysh/src/Formatter/SignatureFormatter.php',\n    'Psy\\\\Input\\\\CodeArgument' => $vendorDir . '/psy/psysh/src/Input/CodeArgument.php',\n    'Psy\\\\Input\\\\FilterOptions' => $vendorDir . '/psy/psysh/src/Input/FilterOptions.php',\n    'Psy\\\\Input\\\\ShellInput' => $vendorDir . '/psy/psysh/src/Input/ShellInput.php',\n    'Psy\\\\Input\\\\SilentInput' => $vendorDir . '/psy/psysh/src/Input/SilentInput.php',\n    'Psy\\\\Output\\\\OutputPager' => $vendorDir . '/psy/psysh/src/Output/OutputPager.php',\n    'Psy\\\\Output\\\\PassthruPager' => $vendorDir . '/psy/psysh/src/Output/PassthruPager.php',\n    'Psy\\\\Output\\\\ProcOutputPager' => $vendorDir . '/psy/psysh/src/Output/ProcOutputPager.php',\n    'Psy\\\\Output\\\\ShellOutput' => $vendorDir . '/psy/psysh/src/Output/ShellOutput.php',\n    'Psy\\\\ParserFactory' => $vendorDir . '/psy/psysh/src/ParserFactory.php',\n    'Psy\\\\Readline\\\\GNUReadline' => $vendorDir . '/psy/psysh/src/Readline/GNUReadline.php',\n    'Psy\\\\Readline\\\\HoaConsole' => $vendorDir . '/psy/psysh/src/Readline/HoaConsole.php',\n    'Psy\\\\Readline\\\\Libedit' => $vendorDir . '/psy/psysh/src/Readline/Libedit.php',\n    'Psy\\\\Readline\\\\Readline' => $vendorDir . '/psy/psysh/src/Readline/Readline.php',\n    'Psy\\\\Readline\\\\Transient' => $vendorDir . '/psy/psysh/src/Readline/Transient.php',\n    'Psy\\\\Reflection\\\\ReflectionClassConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionClassConstant.php',\n    'Psy\\\\Reflection\\\\ReflectionConstant' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant.php',\n    'Psy\\\\Reflection\\\\ReflectionConstant_' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionConstant_.php',\n    'Psy\\\\Reflection\\\\ReflectionLanguageConstruct' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php',\n    'Psy\\\\Reflection\\\\ReflectionLanguageConstructParameter' => $vendorDir . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php',\n    'Psy\\\\Shell' => $vendorDir . '/psy/psysh/src/Shell.php',\n    'Psy\\\\Sudo' => $vendorDir . '/psy/psysh/src/Sudo.php',\n    'Psy\\\\Sudo\\\\SudoVisitor' => $vendorDir . '/psy/psysh/src/Sudo/SudoVisitor.php',\n    'Psy\\\\TabCompletion\\\\AutoCompleter' => $vendorDir . '/psy/psysh/src/TabCompletion/AutoCompleter.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractContextAwareMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ClassAttributesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ClassMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ClassMethodsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ClassNamesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\CommandsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ConstantsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\FunctionDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\FunctionsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\KeywordsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\MongoClientMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\MongoDatabaseMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectAttributesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectMethodDefaultParametersMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectMethodsMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php',\n    'Psy\\\\TabCompletion\\\\Matcher\\\\VariablesMatcher' => $vendorDir . '/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php',\n    'Psy\\\\Util\\\\Docblock' => $vendorDir . '/psy/psysh/src/Util/Docblock.php',\n    'Psy\\\\Util\\\\Json' => $vendorDir . '/psy/psysh/src/Util/Json.php',\n    'Psy\\\\Util\\\\Mirror' => $vendorDir . '/psy/psysh/src/Util/Mirror.php',\n    'Psy\\\\Util\\\\Str' => $vendorDir . '/psy/psysh/src/Util/Str.php',\n    'Psy\\\\VarDumper\\\\Cloner' => $vendorDir . '/psy/psysh/src/VarDumper/Cloner.php',\n    'Psy\\\\VarDumper\\\\Dumper' => $vendorDir . '/psy/psysh/src/VarDumper/Dumper.php',\n    'Psy\\\\VarDumper\\\\Presenter' => $vendorDir . '/psy/psysh/src/VarDumper/Presenter.php',\n    'Psy\\\\VarDumper\\\\PresenterAware' => $vendorDir . '/psy/psysh/src/VarDumper/PresenterAware.php',\n    'Psy\\\\VersionUpdater\\\\Checker' => $vendorDir . '/psy/psysh/src/VersionUpdater/Checker.php',\n    'Psy\\\\VersionUpdater\\\\GitHubChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/GitHubChecker.php',\n    'Psy\\\\VersionUpdater\\\\IntervalChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/IntervalChecker.php',\n    'Psy\\\\VersionUpdater\\\\NoopChecker' => $vendorDir . '/psy/psysh/src/VersionUpdater/NoopChecker.php',\n    'Qiniu\\\\Auth' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Auth.php',\n    'Qiniu\\\\Cdn\\\\CdnManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php',\n    'Qiniu\\\\Config' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Config.php',\n    'Qiniu\\\\Etag' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Etag.php',\n    'Qiniu\\\\Http\\\\Client' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Client.php',\n    'Qiniu\\\\Http\\\\Error' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Error.php',\n    'Qiniu\\\\Http\\\\Request' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Request.php',\n    'Qiniu\\\\Http\\\\Response' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Http/Response.php',\n    'Qiniu\\\\Processing\\\\ImageUrlBuilder' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php',\n    'Qiniu\\\\Processing\\\\Operation' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/Operation.php',\n    'Qiniu\\\\Processing\\\\PersistentFop' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php',\n    'Qiniu\\\\Region' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Region.php',\n    'Qiniu\\\\Rtc\\\\AppClient' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Rtc/AppClient.php',\n    'Qiniu\\\\Sms\\\\Sms' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Sms/Sms.php',\n    'Qiniu\\\\Storage\\\\ArgusManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/ArgusManager.php',\n    'Qiniu\\\\Storage\\\\BucketManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php',\n    'Qiniu\\\\Storage\\\\FormUploader' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php',\n    'Qiniu\\\\Storage\\\\ResumeUploader' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php',\n    'Qiniu\\\\Storage\\\\UploadManager' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php',\n    'Qiniu\\\\Zone' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Zone.php',\n    'Ramsey\\\\Uuid\\\\BinaryUtils' => $vendorDir . '/ramsey/uuid/src/BinaryUtils.php',\n    'Ramsey\\\\Uuid\\\\Builder\\\\DefaultUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',\n    'Ramsey\\\\Uuid\\\\Builder\\\\DegradedUuidBuilder' => $vendorDir . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',\n    'Ramsey\\\\Uuid\\\\Builder\\\\UuidBuilderInterface' => $vendorDir . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\CodecInterface' => $vendorDir . '/ramsey/uuid/src/Codec/CodecInterface.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\GuidStringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/GuidStringCodec.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\OrderedTimeCodec' => $vendorDir . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\StringCodec' => $vendorDir . '/ramsey/uuid/src/Codec/StringCodec.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\TimestampFirstCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php',\n    'Ramsey\\\\Uuid\\\\Codec\\\\TimestampLastCombCodec' => $vendorDir . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\NumberConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/NumberConverterInterface.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\Number\\\\BigNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\Number\\\\DegradedNumberConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\TimeConverterInterface' => $vendorDir . '/ramsey/uuid/src/Converter/TimeConverterInterface.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\BigNumberTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\DegradedTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php',\n    'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\PhpTimeConverter' => $vendorDir . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php',\n    'Ramsey\\\\Uuid\\\\DegradedUuid' => $vendorDir . '/ramsey/uuid/src/DegradedUuid.php',\n    'Ramsey\\\\Uuid\\\\Exception\\\\InvalidUuidStringException' => $vendorDir . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php',\n    'Ramsey\\\\Uuid\\\\Exception\\\\UnsatisfiedDependencyException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php',\n    'Ramsey\\\\Uuid\\\\Exception\\\\UnsupportedOperationException' => $vendorDir . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php',\n    'Ramsey\\\\Uuid\\\\FeatureSet' => $vendorDir . '/ramsey/uuid/src/FeatureSet.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\CombGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/CombGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\DefaultTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\MtRandGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/MtRandGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\OpenSslGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/OpenSslGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\PeclUuidRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\PeclUuidTimeGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\RandomBytesGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\RandomGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\RandomGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\RandomLibAdapter' => $vendorDir . '/ramsey/uuid/src/Generator/RandomLibAdapter.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\SodiumRandomGenerator' => $vendorDir . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\TimeGeneratorFactory' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php',\n    'Ramsey\\\\Uuid\\\\Generator\\\\TimeGeneratorInterface' => $vendorDir . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\NodeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/NodeProviderInterface.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\FallbackNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\RandomNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\SystemNodeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\TimeProviderInterface' => $vendorDir . '/ramsey/uuid/src/Provider/TimeProviderInterface.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\Time\\\\FixedTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php',\n    'Ramsey\\\\Uuid\\\\Provider\\\\Time\\\\SystemTimeProvider' => $vendorDir . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php',\n    'Ramsey\\\\Uuid\\\\Uuid' => $vendorDir . '/ramsey/uuid/src/Uuid.php',\n    'Ramsey\\\\Uuid\\\\UuidFactory' => $vendorDir . '/ramsey/uuid/src/UuidFactory.php',\n    'Ramsey\\\\Uuid\\\\UuidFactoryInterface' => $vendorDir . '/ramsey/uuid/src/UuidFactoryInterface.php',\n    'Ramsey\\\\Uuid\\\\UuidInterface' => $vendorDir . '/ramsey/uuid/src/UuidInterface.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',\n    'SebastianBergmann\\\\CodeCoverage\\\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',\n    'SebastianBergmann\\\\CodeUnitReverseLookup\\\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',\n    'SebastianBergmann\\\\Comparator\\\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',\n    'SebastianBergmann\\\\Comparator\\\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',\n    'SebastianBergmann\\\\Comparator\\\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',\n    'SebastianBergmann\\\\Comparator\\\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',\n    'SebastianBergmann\\\\Comparator\\\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',\n    'SebastianBergmann\\\\Diff\\\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',\n    'SebastianBergmann\\\\Diff\\\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php',\n    'SebastianBergmann\\\\Diff\\\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',\n    'SebastianBergmann\\\\Diff\\\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',\n    'SebastianBergmann\\\\Diff\\\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php',\n    'SebastianBergmann\\\\Diff\\\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php',\n    'SebastianBergmann\\\\Diff\\\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',\n    'SebastianBergmann\\\\Diff\\\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',\n    'SebastianBergmann\\\\Diff\\\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',\n    'SebastianBergmann\\\\Diff\\\\Output\\\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',\n    'SebastianBergmann\\\\Diff\\\\Output\\\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',\n    'SebastianBergmann\\\\Diff\\\\Output\\\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',\n    'SebastianBergmann\\\\Diff\\\\Output\\\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',\n    'SebastianBergmann\\\\Diff\\\\Output\\\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',\n    'SebastianBergmann\\\\Diff\\\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',\n    'SebastianBergmann\\\\Diff\\\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',\n    'SebastianBergmann\\\\Environment\\\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',\n    'SebastianBergmann\\\\Environment\\\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php',\n    'SebastianBergmann\\\\Environment\\\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',\n    'SebastianBergmann\\\\Exporter\\\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',\n    'SebastianBergmann\\\\FileIterator\\\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',\n    'SebastianBergmann\\\\FileIterator\\\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',\n    'SebastianBergmann\\\\FileIterator\\\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',\n    'SebastianBergmann\\\\GlobalState\\\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',\n    'SebastianBergmann\\\\GlobalState\\\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',\n    'SebastianBergmann\\\\GlobalState\\\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php',\n    'SebastianBergmann\\\\GlobalState\\\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',\n    'SebastianBergmann\\\\GlobalState\\\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php',\n    'SebastianBergmann\\\\GlobalState\\\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',\n    'SebastianBergmann\\\\ObjectEnumerator\\\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',\n    'SebastianBergmann\\\\ObjectEnumerator\\\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',\n    'SebastianBergmann\\\\ObjectEnumerator\\\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',\n    'SebastianBergmann\\\\ObjectReflector\\\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php',\n    'SebastianBergmann\\\\ObjectReflector\\\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php',\n    'SebastianBergmann\\\\ObjectReflector\\\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php',\n    'SebastianBergmann\\\\RecursionContext\\\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',\n    'SebastianBergmann\\\\RecursionContext\\\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',\n    'SebastianBergmann\\\\RecursionContext\\\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',\n    'SebastianBergmann\\\\ResourceOperations\\\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',\n    'SebastianBergmann\\\\Timer\\\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php',\n    'SebastianBergmann\\\\Timer\\\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php',\n    'SebastianBergmann\\\\Timer\\\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',\n    'SebastianBergmann\\\\Version' => $vendorDir . '/sebastian/version/src/Version.php',\n    'ShareManT\\\\EditorMd\\\\Editor' => $vendorDir . '/sharemant/laravel-admin-ext-editormd/src/Editor.php',\n    'ShareManT\\\\EditorMd\\\\EditorMd' => $vendorDir . '/sharemant/laravel-admin-ext-editormd/src/EditorMd.php',\n    'ShareManT\\\\EditorMd\\\\EditorMdServiceProvider' => $vendorDir . '/sharemant/laravel-admin-ext-editormd/src/EditorMdServiceProvider.php',\n    'Spatie\\\\EloquentSortable\\\\Sortable' => $vendorDir . '/spatie/eloquent-sortable/src/Sortable.php',\n    'Spatie\\\\EloquentSortable\\\\SortableTrait' => $vendorDir . '/spatie/eloquent-sortable/src/SortableTrait.php',\n    'Spatie\\\\Pjax\\\\Middleware\\\\FilterIfPjax' => $vendorDir . '/spatie/laravel-pjax/src/Middleware/FilterIfPjax.php',\n    'Symfony\\\\Component\\\\Console\\\\Application' => $vendorDir . '/symfony/console/Application.php',\n    'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php',\n    'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php',\n    'Symfony\\\\Component\\\\Console\\\\Command\\\\Command' => $vendorDir . '/symfony/console/Command/Command.php',\n    'Symfony\\\\Component\\\\Console\\\\Command\\\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php',\n    'Symfony\\\\Component\\\\Console\\\\Command\\\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php',\n    'Symfony\\\\Component\\\\Console\\\\Command\\\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php',\n    'Symfony\\\\Component\\\\Console\\\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php',\n    'Symfony\\\\Component\\\\Console\\\\DependencyInjection\\\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php',\n    'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php',\n    'Symfony\\\\Component\\\\Console\\\\EventListener\\\\ErrorListener' => $vendorDir . '/symfony/console/EventListener/ErrorListener.php',\n    'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleCommandEvent' => $vendorDir . '/symfony/console/Event/ConsoleCommandEvent.php',\n    'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleErrorEvent' => $vendorDir . '/symfony/console/Event/ConsoleErrorEvent.php',\n    'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleEvent' => $vendorDir . '/symfony/console/Event/ConsoleEvent.php',\n    'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleTerminateEvent' => $vendorDir . '/symfony/console/Event/ConsoleTerminateEvent.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php',\n    'Symfony\\\\Component\\\\Console\\\\Exception\\\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php',\n    'Symfony\\\\Component\\\\Console\\\\Formatter\\\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\Table' => $vendorDir . '/symfony/console/Helper/Table.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php',\n    'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\Input' => $vendorDir . '/symfony/console/Input/Input.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Input\\\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php',\n    'Symfony\\\\Component\\\\Console\\\\Logger\\\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\Output' => $vendorDir . '/symfony/console/Output/Output.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Output\\\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php',\n    'Symfony\\\\Component\\\\Console\\\\Question\\\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php',\n    'Symfony\\\\Component\\\\Console\\\\Question\\\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php',\n    'Symfony\\\\Component\\\\Console\\\\Question\\\\Question' => $vendorDir . '/symfony/console/Question/Question.php',\n    'Symfony\\\\Component\\\\Console\\\\Style\\\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php',\n    'Symfony\\\\Component\\\\Console\\\\Style\\\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php',\n    'Symfony\\\\Component\\\\Console\\\\Style\\\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php',\n    'Symfony\\\\Component\\\\Console\\\\Terminal' => $vendorDir . '/symfony/console/Terminal.php',\n    'Symfony\\\\Component\\\\Console\\\\Tester\\\\ApplicationTester' => $vendorDir . '/symfony/console/Tester/ApplicationTester.php',\n    'Symfony\\\\Component\\\\Console\\\\Tester\\\\CommandTester' => $vendorDir . '/symfony/console/Tester/CommandTester.php',\n    'Symfony\\\\Component\\\\Console\\\\Tester\\\\TesterTrait' => $vendorDir . '/symfony/console/Tester/TesterTrait.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\CssSelectorConverter' => $vendorDir . '/symfony/css-selector/CssSelectorConverter.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/css-selector/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ExpressionErrorException' => $vendorDir . '/symfony/css-selector/Exception/ExpressionErrorException.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\InternalErrorException' => $vendorDir . '/symfony/css-selector/Exception/InternalErrorException.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ParseException' => $vendorDir . '/symfony/css-selector/Exception/ParseException.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\SyntaxErrorException' => $vendorDir . '/symfony/css-selector/Exception/SyntaxErrorException.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\AbstractNode' => $vendorDir . '/symfony/css-selector/Node/AbstractNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\AttributeNode' => $vendorDir . '/symfony/css-selector/Node/AttributeNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\ClassNode' => $vendorDir . '/symfony/css-selector/Node/ClassNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\CombinedSelectorNode' => $vendorDir . '/symfony/css-selector/Node/CombinedSelectorNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\ElementNode' => $vendorDir . '/symfony/css-selector/Node/ElementNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\FunctionNode' => $vendorDir . '/symfony/css-selector/Node/FunctionNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\HashNode' => $vendorDir . '/symfony/css-selector/Node/HashNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\NegationNode' => $vendorDir . '/symfony/css-selector/Node/NegationNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\NodeInterface' => $vendorDir . '/symfony/css-selector/Node/NodeInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\PseudoNode' => $vendorDir . '/symfony/css-selector/Node/PseudoNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\SelectorNode' => $vendorDir . '/symfony/css-selector/Node/SelectorNode.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\Specificity' => $vendorDir . '/symfony/css-selector/Node/Specificity.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\CommentHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/CommentHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\HandlerInterface' => $vendorDir . '/symfony/css-selector/Parser/Handler/HandlerInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\HashHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/HashHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\IdentifierHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\NumberHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/NumberHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\StringHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/StringHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\WhitespaceHandler' => $vendorDir . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Parser' => $vendorDir . '/symfony/css-selector/Parser/Parser.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\ParserInterface' => $vendorDir . '/symfony/css-selector/Parser/ParserInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Reader' => $vendorDir . '/symfony/css-selector/Parser/Reader.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\ClassParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ClassParser.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\ElementParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/ElementParser.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\EmptyStringParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\HashParser' => $vendorDir . '/symfony/css-selector/Parser/Shortcut/HashParser.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Token' => $vendorDir . '/symfony/css-selector/Parser/Token.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\TokenStream' => $vendorDir . '/symfony/css-selector/Parser/TokenStream.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\Tokenizer' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\TokenizerEscaping' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\TokenizerPatterns' => $vendorDir . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\AbstractExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AbstractExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\AttributeMatchingExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\CombinationExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/CombinationExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\ExtensionInterface' => $vendorDir . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\FunctionExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/FunctionExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\HtmlExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/HtmlExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\NodeExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/NodeExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\PseudoClassExtension' => $vendorDir . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Translator' => $vendorDir . '/symfony/css-selector/XPath/Translator.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\TranslatorInterface' => $vendorDir . '/symfony/css-selector/XPath/TranslatorInterface.php',\n    'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\XPathExpr' => $vendorDir . '/symfony/css-selector/XPath/XPathExpr.php',\n    'Symfony\\\\Component\\\\Debug\\\\BufferingLogger' => $vendorDir . '/symfony/debug/BufferingLogger.php',\n    'Symfony\\\\Component\\\\Debug\\\\Debug' => $vendorDir . '/symfony/debug/Debug.php',\n    'Symfony\\\\Component\\\\Debug\\\\DebugClassLoader' => $vendorDir . '/symfony/debug/DebugClassLoader.php',\n    'Symfony\\\\Component\\\\Debug\\\\ErrorHandler' => $vendorDir . '/symfony/debug/ErrorHandler.php',\n    'Symfony\\\\Component\\\\Debug\\\\ExceptionHandler' => $vendorDir . '/symfony/debug/ExceptionHandler.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\ClassNotFoundException' => $vendorDir . '/symfony/debug/Exception/ClassNotFoundException.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FatalErrorException' => $vendorDir . '/symfony/debug/Exception/FatalErrorException.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FatalThrowableError' => $vendorDir . '/symfony/debug/Exception/FatalThrowableError.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FlattenException' => $vendorDir . '/symfony/debug/Exception/FlattenException.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\OutOfMemoryException' => $vendorDir . '/symfony/debug/Exception/OutOfMemoryException.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\SilencedErrorContext' => $vendorDir . '/symfony/debug/Exception/SilencedErrorContext.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\UndefinedFunctionException' => $vendorDir . '/symfony/debug/Exception/UndefinedFunctionException.php',\n    'Symfony\\\\Component\\\\Debug\\\\Exception\\\\UndefinedMethodException' => $vendorDir . '/symfony/debug/Exception/UndefinedMethodException.php',\n    'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\ClassNotFoundFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php',\n    'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\FatalErrorHandlerInterface' => $vendorDir . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php',\n    'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\UndefinedFunctionFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php',\n    'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\UndefinedMethodFatalErrorHandler' => $vendorDir . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\AbstractUriElement' => $vendorDir . '/symfony/dom-crawler/AbstractUriElement.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Crawler' => $vendorDir . '/symfony/dom-crawler/Crawler.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\ChoiceFormField' => $vendorDir . '/symfony/dom-crawler/Field/ChoiceFormField.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FileFormField' => $vendorDir . '/symfony/dom-crawler/Field/FileFormField.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField' => $vendorDir . '/symfony/dom-crawler/Field/FormField.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\InputFormField' => $vendorDir . '/symfony/dom-crawler/Field/InputFormField.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\TextareaFormField' => $vendorDir . '/symfony/dom-crawler/Field/TextareaFormField.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Form' => $vendorDir . '/symfony/dom-crawler/Form.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\FormFieldRegistry' => $vendorDir . '/symfony/dom-crawler/FormFieldRegistry.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Image' => $vendorDir . '/symfony/dom-crawler/Image.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Link' => $vendorDir . '/symfony/dom-crawler/Link.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorAttributeValueSame' => $vendorDir . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorExists' => $vendorDir . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorExists.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorTextContains' => $vendorDir . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorTextContains.php',\n    'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorTextSame' => $vendorDir . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorTextSame.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\TraceableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\TraceableEventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\WrappedListener' => $vendorDir . '/symfony/event-dispatcher/Debug/WrappedListener.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\DependencyInjection\\\\ExtractingEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\DependencyInjection\\\\RegisterListenersPass' => $vendorDir . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\Event' => $vendorDir . '/symfony/event-dispatcher/Event.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/EventDispatcher.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\EventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher/EventDispatcherInterface.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\EventSubscriberInterface' => $vendorDir . '/symfony/event-dispatcher/EventSubscriberInterface.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\GenericEvent' => $vendorDir . '/symfony/event-dispatcher/GenericEvent.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\ImmutableEventDispatcher' => $vendorDir . '/symfony/event-dispatcher/ImmutableEventDispatcher.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\LegacyEventDispatcherProxy' => $vendorDir . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php',\n    'Symfony\\\\Component\\\\EventDispatcher\\\\LegacyEventProxy' => $vendorDir . '/symfony/event-dispatcher/LegacyEventProxy.php',\n    'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Exception\\\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php',\n    'Symfony\\\\Component\\\\Finder\\\\Exception\\\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php',\n    'Symfony\\\\Component\\\\Finder\\\\Finder' => $vendorDir . '/symfony/finder/Finder.php',\n    'Symfony\\\\Component\\\\Finder\\\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php',\n    'Symfony\\\\Component\\\\Finder\\\\Glob' => $vendorDir . '/symfony/finder/Glob.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php',\n    'Symfony\\\\Component\\\\Finder\\\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\AcceptHeader' => $vendorDir . '/symfony/http-foundation/AcceptHeader.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\AcceptHeaderItem' => $vendorDir . '/symfony/http-foundation/AcceptHeaderItem.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\ApacheRequest' => $vendorDir . '/symfony/http-foundation/ApacheRequest.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\BinaryFileResponse' => $vendorDir . '/symfony/http-foundation/BinaryFileResponse.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Cookie' => $vendorDir . '/symfony/http-foundation/Cookie.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\ConflictingHeadersException' => $vendorDir . '/symfony/http-foundation/Exception/ConflictingHeadersException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\RequestExceptionInterface' => $vendorDir . '/symfony/http-foundation/Exception/RequestExceptionInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\SuspiciousOperationException' => $vendorDir . '/symfony/http-foundation/Exception/SuspiciousOperationException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\ExpressionRequestMatcher' => $vendorDir . '/symfony/http-foundation/ExpressionRequestMatcher.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\FileBag' => $vendorDir . '/symfony/http-foundation/FileBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\AccessDeniedException' => $vendorDir . '/symfony/http-foundation/File/Exception/AccessDeniedException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\CannotWriteFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\ExtensionFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/ExtensionFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FileNotFoundException' => $vendorDir . '/symfony/http-foundation/File/Exception/FileNotFoundException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FormSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/FormSizeFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\IniSizeFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/IniSizeFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\NoFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\NoTmpDirFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\PartialFileException' => $vendorDir . '/symfony/http-foundation/File/Exception/PartialFileException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\UnexpectedTypeException' => $vendorDir . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\UploadException' => $vendorDir . '/symfony/http-foundation/File/Exception/UploadException.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\File' => $vendorDir . '/symfony/http-foundation/File/File.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\ExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\ExtensionGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\FileBinaryMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\FileinfoMimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeExtensionGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeGuesser' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeGuesserInterface' => $vendorDir . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Stream' => $vendorDir . '/symfony/http-foundation/File/Stream.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\UploadedFile' => $vendorDir . '/symfony/http-foundation/File/UploadedFile.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\HeaderBag' => $vendorDir . '/symfony/http-foundation/HeaderBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\HeaderUtils' => $vendorDir . '/symfony/http-foundation/HeaderUtils.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\IpUtils' => $vendorDir . '/symfony/http-foundation/IpUtils.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\JsonResponse' => $vendorDir . '/symfony/http-foundation/JsonResponse.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\ParameterBag' => $vendorDir . '/symfony/http-foundation/ParameterBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse' => $vendorDir . '/symfony/http-foundation/RedirectResponse.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Request' => $vendorDir . '/symfony/http-foundation/Request.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\RequestMatcher' => $vendorDir . '/symfony/http-foundation/RequestMatcher.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\RequestMatcherInterface' => $vendorDir . '/symfony/http-foundation/RequestMatcherInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\RequestStack' => $vendorDir . '/symfony/http-foundation/RequestStack.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Response' => $vendorDir . '/symfony/http-foundation/Response.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\ResponseHeaderBag' => $vendorDir . '/symfony/http-foundation/ResponseHeaderBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\ServerBag' => $vendorDir . '/symfony/http-foundation/ServerBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\AttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\AttributeBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\NamespacedAttributeBag' => $vendorDir . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\AutoExpireFlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\FlashBag' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\FlashBagInterface' => $vendorDir . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Session' => $vendorDir . '/symfony/http-foundation/Session/Session.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionBagInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionBagInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionBagProxy' => $vendorDir . '/symfony/http-foundation/Session/SessionBagProxy.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionInterface' => $vendorDir . '/symfony/http-foundation/Session/SessionInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionUtils' => $vendorDir . '/symfony/http-foundation/Session/SessionUtils.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\AbstractSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MemcachedSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MigratingSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MongoDbSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\NativeFileSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\NullSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\PdoSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\RedisSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\StrictSessionHandler' => $vendorDir . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MetadataBag' => $vendorDir . '/symfony/http-foundation/Session/Storage/MetadataBag.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MockArraySessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MockFileSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\NativeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\PhpBridgeSessionStorage' => $vendorDir . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Proxy\\\\AbstractProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Proxy\\\\SessionHandlerProxy' => $vendorDir . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\SessionStorageInterface' => $vendorDir . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\StreamedResponse' => $vendorDir . '/symfony/http-foundation/StreamedResponse.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\RequestAttributeValueSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseCookieValueSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHasCookie' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHasHeader' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHeaderSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseIsRedirected' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseIsSuccessful' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseStatusCodeSame' => $vendorDir . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php',\n    'Symfony\\\\Component\\\\HttpFoundation\\\\UrlHelper' => $vendorDir . '/symfony/http-foundation/UrlHelper.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Bundle\\\\Bundle' => $vendorDir . '/symfony/http-kernel/Bundle/Bundle.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Bundle\\\\BundleInterface' => $vendorDir . '/symfony/http-kernel/Bundle/BundleInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\CacheClearerInterface' => $vendorDir . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\ChainCacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\Psr6CacheClearer' => $vendorDir . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmer' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmerAggregate' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmerInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\WarmableInterface' => $vendorDir . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Client' => $vendorDir . '/symfony/http-kernel/Client.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Config\\\\FileLocator' => $vendorDir . '/symfony/http-kernel/Config/FileLocator.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadata' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadataFactory' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadataFactoryInterface' => $vendorDir . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\DefaultValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\NotTaggedControllerValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\RequestAttributeValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\RequestValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\ServiceValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\SessionValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\TraceableValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\VariadicValueResolver' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentValueResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ContainerControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ContainerControllerResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerReference' => $vendorDir . '/symfony/http-kernel/Controller/ControllerReference.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerResolverInterface' => $vendorDir . '/symfony/http-kernel/Controller/ControllerResolverInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\TraceableArgumentResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\TraceableControllerResolver' => $vendorDir . '/symfony/http-kernel/Controller/TraceableControllerResolver.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\AjaxDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\ConfigDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DumpDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/DumpDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\EventDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/EventDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\ExceptionDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\LateDataCollectorInterface' => $vendorDir . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\LoggerDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\MemoryDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\RequestDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RequestDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\RouterDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/RouterDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\TimeDataCollector' => $vendorDir . '/symfony/http-kernel/DataCollector/TimeDataCollector.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Debug\\\\FileLinkFormatter' => $vendorDir . '/symfony/http-kernel/Debug/FileLinkFormatter.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Debug\\\\TraceableEventDispatcher' => $vendorDir . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\AddAnnotatedClassesToCachePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ConfigurableExtension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ControllerArgumentValueResolverPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\Extension' => $vendorDir . '/symfony/http-kernel/DependencyInjection/Extension.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\FragmentRendererPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\LazyLoadingFragmentHandler' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\LoggerPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/LoggerPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\MergeExtensionConfigurationPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RegisterControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RegisterLocaleAwareServicesPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RegisterLocaleAwareServicesPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RemoveEmptyControllerArgumentLocatorsPass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ResettableServicePass' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ServicesResetter' => $vendorDir . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AbstractSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractSessionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AbstractTestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AddRequestFormatsListener' => $vendorDir . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DebugHandlersListener' => $vendorDir . '/symfony/http-kernel/EventListener/DebugHandlersListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DisallowRobotsIndexingListener' => $vendorDir . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DumpListener' => $vendorDir . '/symfony/http-kernel/EventListener/DumpListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ExceptionListener' => $vendorDir . '/symfony/http-kernel/EventListener/ExceptionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\FragmentListener' => $vendorDir . '/symfony/http-kernel/EventListener/FragmentListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\LocaleAwareListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleAwareListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\LocaleListener' => $vendorDir . '/symfony/http-kernel/EventListener/LocaleListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ProfilerListener' => $vendorDir . '/symfony/http-kernel/EventListener/ProfilerListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/ResponseListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\RouterListener' => $vendorDir . '/symfony/http-kernel/EventListener/RouterListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SaveSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SaveSessionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/SessionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\StreamedResponseListener' => $vendorDir . '/symfony/http-kernel/EventListener/StreamedResponseListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SurrogateListener' => $vendorDir . '/symfony/http-kernel/EventListener/SurrogateListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\TestSessionListener' => $vendorDir . '/symfony/http-kernel/EventListener/TestSessionListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\TranslatorListener' => $vendorDir . '/symfony/http-kernel/EventListener/TranslatorListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ValidateRequestListener' => $vendorDir . '/symfony/http-kernel/EventListener/ValidateRequestListener.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/ControllerEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/ExceptionEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterControllerArgumentsEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterControllerEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterControllerEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/FilterResponseEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FinishRequestEvent' => $vendorDir . '/symfony/http-kernel/Event/FinishRequestEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseForControllerResultEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseForExceptionEvent' => $vendorDir . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\KernelEvent' => $vendorDir . '/symfony/http-kernel/Event/KernelEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\PostResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/PostResponseEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\RequestEvent' => $vendorDir . '/symfony/http-kernel/Event/RequestEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ResponseEvent' => $vendorDir . '/symfony/http-kernel/Event/ResponseEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\TerminateEvent' => $vendorDir . '/symfony/http-kernel/Event/TerminateEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ViewEvent' => $vendorDir . '/symfony/http-kernel/Event/ViewEvent.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\AccessDeniedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException' => $vendorDir . '/symfony/http-kernel/Exception/BadRequestHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ConflictHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ConflictHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ControllerDoesNotReturnResponseException' => $vendorDir . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\GoneHttpException' => $vendorDir . '/symfony/http-kernel/Exception/GoneHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpException' => $vendorDir . '/symfony/http-kernel/Exception/HttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpExceptionInterface' => $vendorDir . '/symfony/http-kernel/Exception/HttpExceptionInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\LengthRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\MethodNotAllowedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotAcceptableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotFoundHttpException' => $vendorDir . '/symfony/http-kernel/Exception/NotFoundHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\PreconditionFailedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\PreconditionRequiredHttpException' => $vendorDir . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ServiceUnavailableHttpException' => $vendorDir . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\TooManyRequestsHttpException' => $vendorDir . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnauthorizedHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnprocessableEntityHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnsupportedMediaTypeHttpException' => $vendorDir . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\AbstractSurrogateFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\EsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\FragmentHandler' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentHandler.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\FragmentRendererInterface' => $vendorDir . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\HIncludeFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\InlineFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\RoutableFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\SsiFragmentRenderer' => $vendorDir . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\AbstractSurrogate' => $vendorDir . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Esi' => $vendorDir . '/symfony/http-kernel/HttpCache/Esi.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\HttpCache' => $vendorDir . '/symfony/http-kernel/HttpCache/HttpCache.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\ResponseCacheStrategy' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\ResponseCacheStrategyInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Ssi' => $vendorDir . '/symfony/http-kernel/HttpCache/Ssi.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Store' => $vendorDir . '/symfony/http-kernel/HttpCache/Store.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\StoreInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/StoreInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\SubRequestHandler' => $vendorDir . '/symfony/http-kernel/HttpCache/SubRequestHandler.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\SurrogateInterface' => $vendorDir . '/symfony/http-kernel/HttpCache/SurrogateInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpClientKernel' => $vendorDir . '/symfony/http-kernel/HttpClientKernel.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernel' => $vendorDir . '/symfony/http-kernel/HttpKernel.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernelBrowser' => $vendorDir . '/symfony/http-kernel/HttpKernelBrowser.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernelInterface' => $vendorDir . '/symfony/http-kernel/HttpKernelInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Kernel' => $vendorDir . '/symfony/http-kernel/Kernel.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\KernelEvents' => $vendorDir . '/symfony/http-kernel/KernelEvents.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\KernelInterface' => $vendorDir . '/symfony/http-kernel/KernelInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Log\\\\DebugLoggerInterface' => $vendorDir . '/symfony/http-kernel/Log/DebugLoggerInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Log\\\\Logger' => $vendorDir . '/symfony/http-kernel/Log/Logger.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\FileProfilerStorage' => $vendorDir . '/symfony/http-kernel/Profiler/FileProfilerStorage.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\Profile' => $vendorDir . '/symfony/http-kernel/Profiler/Profile.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\Profiler' => $vendorDir . '/symfony/http-kernel/Profiler/Profiler.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\ProfilerStorageInterface' => $vendorDir . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\RebootableInterface' => $vendorDir . '/symfony/http-kernel/RebootableInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\TerminableInterface' => $vendorDir . '/symfony/http-kernel/TerminableInterface.php',\n    'Symfony\\\\Component\\\\HttpKernel\\\\UriSigner' => $vendorDir . '/symfony/http-kernel/UriSigner.php',\n    'Symfony\\\\Component\\\\Mime\\\\Address' => $vendorDir . '/symfony/mime/Address.php',\n    'Symfony\\\\Component\\\\Mime\\\\BodyRendererInterface' => $vendorDir . '/symfony/mime/BodyRendererInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\CharacterStream' => $vendorDir . '/symfony/mime/CharacterStream.php',\n    'Symfony\\\\Component\\\\Mime\\\\DependencyInjection\\\\AddMimeTypeGuesserPass' => $vendorDir . '/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php',\n    'Symfony\\\\Component\\\\Mime\\\\Email' => $vendorDir . '/symfony/mime/Email.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\AddressEncoderInterface' => $vendorDir . '/symfony/mime/Encoder/AddressEncoderInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64ContentEncoder' => $vendorDir . '/symfony/mime/Encoder/Base64ContentEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64Encoder' => $vendorDir . '/symfony/mime/Encoder/Base64Encoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64MimeHeaderEncoder' => $vendorDir . '/symfony/mime/Encoder/Base64MimeHeaderEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\ContentEncoderInterface' => $vendorDir . '/symfony/mime/Encoder/ContentEncoderInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\EightBitContentEncoder' => $vendorDir . '/symfony/mime/Encoder/EightBitContentEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\EncoderInterface' => $vendorDir . '/symfony/mime/Encoder/EncoderInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\IdnAddressEncoder' => $vendorDir . '/symfony/mime/Encoder/IdnAddressEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\MimeHeaderEncoderInterface' => $vendorDir . '/symfony/mime/Encoder/MimeHeaderEncoderInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpContentEncoder' => $vendorDir . '/symfony/mime/Encoder/QpContentEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpEncoder' => $vendorDir . '/symfony/mime/Encoder/QpEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpMimeHeaderEncoder' => $vendorDir . '/symfony/mime/Encoder/QpMimeHeaderEncoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Rfc2231Encoder' => $vendorDir . '/symfony/mime/Encoder/Rfc2231Encoder.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\AddressEncoderException' => $vendorDir . '/symfony/mime/Exception/AddressEncoderException.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/mime/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/symfony/mime/Exception/InvalidArgumentException.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\LogicException' => $vendorDir . '/symfony/mime/Exception/LogicException.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\RfcComplianceException' => $vendorDir . '/symfony/mime/Exception/RfcComplianceException.php',\n    'Symfony\\\\Component\\\\Mime\\\\Exception\\\\RuntimeException' => $vendorDir . '/symfony/mime/Exception/RuntimeException.php',\n    'Symfony\\\\Component\\\\Mime\\\\FileBinaryMimeTypeGuesser' => $vendorDir . '/symfony/mime/FileBinaryMimeTypeGuesser.php',\n    'Symfony\\\\Component\\\\Mime\\\\FileinfoMimeTypeGuesser' => $vendorDir . '/symfony/mime/FileinfoMimeTypeGuesser.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\AbstractHeader' => $vendorDir . '/symfony/mime/Header/AbstractHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\DateHeader' => $vendorDir . '/symfony/mime/Header/DateHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\HeaderInterface' => $vendorDir . '/symfony/mime/Header/HeaderInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\Headers' => $vendorDir . '/symfony/mime/Header/Headers.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\IdentificationHeader' => $vendorDir . '/symfony/mime/Header/IdentificationHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\MailboxHeader' => $vendorDir . '/symfony/mime/Header/MailboxHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\MailboxListHeader' => $vendorDir . '/symfony/mime/Header/MailboxListHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\ParameterizedHeader' => $vendorDir . '/symfony/mime/Header/ParameterizedHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\PathHeader' => $vendorDir . '/symfony/mime/Header/PathHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Header\\\\UnstructuredHeader' => $vendorDir . '/symfony/mime/Header/UnstructuredHeader.php',\n    'Symfony\\\\Component\\\\Mime\\\\Message' => $vendorDir . '/symfony/mime/Message.php',\n    'Symfony\\\\Component\\\\Mime\\\\MessageConverter' => $vendorDir . '/symfony/mime/MessageConverter.php',\n    'Symfony\\\\Component\\\\Mime\\\\MimeTypeGuesserInterface' => $vendorDir . '/symfony/mime/MimeTypeGuesserInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\MimeTypes' => $vendorDir . '/symfony/mime/MimeTypes.php',\n    'Symfony\\\\Component\\\\Mime\\\\MimeTypesInterface' => $vendorDir . '/symfony/mime/MimeTypesInterface.php',\n    'Symfony\\\\Component\\\\Mime\\\\NamedAddress' => $vendorDir . '/symfony/mime/NamedAddress.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\AbstractMultipartPart' => $vendorDir . '/symfony/mime/Part/AbstractMultipartPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\AbstractPart' => $vendorDir . '/symfony/mime/Part/AbstractPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\DataPart' => $vendorDir . '/symfony/mime/Part/DataPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\MessagePart' => $vendorDir . '/symfony/mime/Part/MessagePart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\AlternativePart' => $vendorDir . '/symfony/mime/Part/Multipart/AlternativePart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\DigestPart' => $vendorDir . '/symfony/mime/Part/Multipart/DigestPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\FormDataPart' => $vendorDir . '/symfony/mime/Part/Multipart/FormDataPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\MixedPart' => $vendorDir . '/symfony/mime/Part/Multipart/MixedPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\RelatedPart' => $vendorDir . '/symfony/mime/Part/Multipart/RelatedPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\Part\\\\TextPart' => $vendorDir . '/symfony/mime/Part/TextPart.php',\n    'Symfony\\\\Component\\\\Mime\\\\RawMessage' => $vendorDir . '/symfony/mime/RawMessage.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php',\n    'Symfony\\\\Component\\\\Process\\\\Exception\\\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php',\n    'Symfony\\\\Component\\\\Process\\\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php',\n    'Symfony\\\\Component\\\\Process\\\\InputStream' => $vendorDir . '/symfony/process/InputStream.php',\n    'Symfony\\\\Component\\\\Process\\\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php',\n    'Symfony\\\\Component\\\\Process\\\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php',\n    'Symfony\\\\Component\\\\Process\\\\Pipes\\\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php',\n    'Symfony\\\\Component\\\\Process\\\\Pipes\\\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php',\n    'Symfony\\\\Component\\\\Process\\\\Pipes\\\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php',\n    'Symfony\\\\Component\\\\Process\\\\Pipes\\\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php',\n    'Symfony\\\\Component\\\\Process\\\\Process' => $vendorDir . '/symfony/process/Process.php',\n    'Symfony\\\\Component\\\\Process\\\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php',\n    'Symfony\\\\Component\\\\Routing\\\\Annotation\\\\Route' => $vendorDir . '/symfony/routing/Annotation/Route.php',\n    'Symfony\\\\Component\\\\Routing\\\\CompiledRoute' => $vendorDir . '/symfony/routing/CompiledRoute.php',\n    'Symfony\\\\Component\\\\Routing\\\\DependencyInjection\\\\RoutingResolverPass' => $vendorDir . '/symfony/routing/DependencyInjection/RoutingResolverPass.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/routing/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\InvalidParameterException' => $vendorDir . '/symfony/routing/Exception/InvalidParameterException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\MethodNotAllowedException' => $vendorDir . '/symfony/routing/Exception/MethodNotAllowedException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\MissingMandatoryParametersException' => $vendorDir . '/symfony/routing/Exception/MissingMandatoryParametersException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\NoConfigurationException' => $vendorDir . '/symfony/routing/Exception/NoConfigurationException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\ResourceNotFoundException' => $vendorDir . '/symfony/routing/Exception/ResourceNotFoundException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Exception\\\\RouteNotFoundException' => $vendorDir . '/symfony/routing/Exception/RouteNotFoundException.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\CompiledUrlGenerator' => $vendorDir . '/symfony/routing/Generator/CompiledUrlGenerator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\ConfigurableRequirementsInterface' => $vendorDir . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\CompiledUrlGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\GeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\GeneratorDumperInterface' => $vendorDir . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\PhpGeneratorDumper' => $vendorDir . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\UrlGenerator' => $vendorDir . '/symfony/routing/Generator/UrlGenerator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Generator\\\\UrlGeneratorInterface' => $vendorDir . '/symfony/routing/Generator/UrlGeneratorInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationClassLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationClassLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationDirectoryLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationDirectoryLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationFileLoader' => $vendorDir . '/symfony/routing/Loader/AnnotationFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ClosureLoader' => $vendorDir . '/symfony/routing/Loader/ClosureLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\CollectionConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\ImportConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/ImportConfigurator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\RouteConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RouteConfigurator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\RoutingConfigurator' => $vendorDir . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\Traits\\\\AddTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\Traits\\\\RouteTrait' => $vendorDir . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\DependencyInjection\\\\ServiceRouterLoader' => $vendorDir . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\DirectoryLoader' => $vendorDir . '/symfony/routing/Loader/DirectoryLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\GlobFileLoader' => $vendorDir . '/symfony/routing/Loader/GlobFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ObjectRouteLoader' => $vendorDir . '/symfony/routing/Loader/ObjectRouteLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\PhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ProtectedPhpFileLoader' => $vendorDir . '/symfony/routing/Loader/PhpFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\XmlFileLoader' => $vendorDir . '/symfony/routing/Loader/XmlFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Loader\\\\YamlFileLoader' => $vendorDir . '/symfony/routing/Loader/YamlFileLoader.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\CompiledUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/CompiledUrlMatcher.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\CompiledUrlMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\CompiledUrlMatcherTrait' => $vendorDir . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\MatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\MatcherDumperInterface' => $vendorDir . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\PhpMatcherDumper' => $vendorDir . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\StaticPrefixCollection' => $vendorDir . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RedirectableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcher.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RedirectableUrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RequestMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/RequestMatcherInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\TraceableUrlMatcher' => $vendorDir . '/symfony/routing/Matcher/TraceableUrlMatcher.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\UrlMatcher' => $vendorDir . '/symfony/routing/Matcher/UrlMatcher.php',\n    'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\UrlMatcherInterface' => $vendorDir . '/symfony/routing/Matcher/UrlMatcherInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\RequestContext' => $vendorDir . '/symfony/routing/RequestContext.php',\n    'Symfony\\\\Component\\\\Routing\\\\RequestContextAwareInterface' => $vendorDir . '/symfony/routing/RequestContextAwareInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Route' => $vendorDir . '/symfony/routing/Route.php',\n    'Symfony\\\\Component\\\\Routing\\\\RouteCollection' => $vendorDir . '/symfony/routing/RouteCollection.php',\n    'Symfony\\\\Component\\\\Routing\\\\RouteCollectionBuilder' => $vendorDir . '/symfony/routing/RouteCollectionBuilder.php',\n    'Symfony\\\\Component\\\\Routing\\\\RouteCompiler' => $vendorDir . '/symfony/routing/RouteCompiler.php',\n    'Symfony\\\\Component\\\\Routing\\\\RouteCompilerInterface' => $vendorDir . '/symfony/routing/RouteCompilerInterface.php',\n    'Symfony\\\\Component\\\\Routing\\\\Router' => $vendorDir . '/symfony/routing/Router.php',\n    'Symfony\\\\Component\\\\Routing\\\\RouterInterface' => $vendorDir . '/symfony/routing/RouterInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\AbstractOperation' => $vendorDir . '/symfony/translation/Catalogue/AbstractOperation.php',\n    'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\MergeOperation' => $vendorDir . '/symfony/translation/Catalogue/MergeOperation.php',\n    'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\OperationInterface' => $vendorDir . '/symfony/translation/Catalogue/OperationInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\TargetOperation' => $vendorDir . '/symfony/translation/Catalogue/TargetOperation.php',\n    'Symfony\\\\Component\\\\Translation\\\\Command\\\\XliffLintCommand' => $vendorDir . '/symfony/translation/Command/XliffLintCommand.php',\n    'Symfony\\\\Component\\\\Translation\\\\DataCollectorTranslator' => $vendorDir . '/symfony/translation/DataCollectorTranslator.php',\n    'Symfony\\\\Component\\\\Translation\\\\DataCollector\\\\TranslationDataCollector' => $vendorDir . '/symfony/translation/DataCollector/TranslationDataCollector.php',\n    'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslationDumperPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationDumperPass.php',\n    'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslationExtractorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php',\n    'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslatorPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslatorPass.php',\n    'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslatorPathsPass' => $vendorDir . '/symfony/translation/DependencyInjection/TranslatorPathsPass.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\CsvFileDumper' => $vendorDir . '/symfony/translation/Dumper/CsvFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\DumperInterface' => $vendorDir . '/symfony/translation/Dumper/DumperInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\FileDumper' => $vendorDir . '/symfony/translation/Dumper/FileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\IcuResFileDumper' => $vendorDir . '/symfony/translation/Dumper/IcuResFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\IniFileDumper' => $vendorDir . '/symfony/translation/Dumper/IniFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\JsonFileDumper' => $vendorDir . '/symfony/translation/Dumper/JsonFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\MoFileDumper' => $vendorDir . '/symfony/translation/Dumper/MoFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\PhpFileDumper' => $vendorDir . '/symfony/translation/Dumper/PhpFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\PoFileDumper' => $vendorDir . '/symfony/translation/Dumper/PoFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\QtFileDumper' => $vendorDir . '/symfony/translation/Dumper/QtFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\XliffFileDumper' => $vendorDir . '/symfony/translation/Dumper/XliffFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\YamlFileDumper' => $vendorDir . '/symfony/translation/Dumper/YamlFileDumper.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\ExceptionInterface' => $vendorDir . '/symfony/translation/Exception/ExceptionInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\InvalidArgumentException' => $vendorDir . '/symfony/translation/Exception/InvalidArgumentException.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\InvalidResourceException' => $vendorDir . '/symfony/translation/Exception/InvalidResourceException.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\LogicException' => $vendorDir . '/symfony/translation/Exception/LogicException.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\NotFoundResourceException' => $vendorDir . '/symfony/translation/Exception/NotFoundResourceException.php',\n    'Symfony\\\\Component\\\\Translation\\\\Exception\\\\RuntimeException' => $vendorDir . '/symfony/translation/Exception/RuntimeException.php',\n    'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\AbstractFileExtractor' => $vendorDir . '/symfony/translation/Extractor/AbstractFileExtractor.php',\n    'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\ChainExtractor' => $vendorDir . '/symfony/translation/Extractor/ChainExtractor.php',\n    'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\ExtractorInterface' => $vendorDir . '/symfony/translation/Extractor/ExtractorInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\PhpExtractor' => $vendorDir . '/symfony/translation/Extractor/PhpExtractor.php',\n    'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\PhpStringTokenParser' => $vendorDir . '/symfony/translation/Extractor/PhpStringTokenParser.php',\n    'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\ChoiceMessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\IntlFormatter' => $vendorDir . '/symfony/translation/Formatter/IntlFormatter.php',\n    'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\IntlFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/IntlFormatterInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\MessageFormatter' => $vendorDir . '/symfony/translation/Formatter/MessageFormatter.php',\n    'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\MessageFormatterInterface' => $vendorDir . '/symfony/translation/Formatter/MessageFormatterInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\IdentityTranslator' => $vendorDir . '/symfony/translation/IdentityTranslator.php',\n    'Symfony\\\\Component\\\\Translation\\\\Interval' => $vendorDir . '/symfony/translation/Interval.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\ArrayLoader' => $vendorDir . '/symfony/translation/Loader/ArrayLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\CsvFileLoader' => $vendorDir . '/symfony/translation/Loader/CsvFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\FileLoader' => $vendorDir . '/symfony/translation/Loader/FileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IcuDatFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuDatFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IcuResFileLoader' => $vendorDir . '/symfony/translation/Loader/IcuResFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IniFileLoader' => $vendorDir . '/symfony/translation/Loader/IniFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\JsonFileLoader' => $vendorDir . '/symfony/translation/Loader/JsonFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\LoaderInterface' => $vendorDir . '/symfony/translation/Loader/LoaderInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\MoFileLoader' => $vendorDir . '/symfony/translation/Loader/MoFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\PhpFileLoader' => $vendorDir . '/symfony/translation/Loader/PhpFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\PoFileLoader' => $vendorDir . '/symfony/translation/Loader/PoFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\QtFileLoader' => $vendorDir . '/symfony/translation/Loader/QtFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\XliffFileLoader' => $vendorDir . '/symfony/translation/Loader/XliffFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Loader\\\\YamlFileLoader' => $vendorDir . '/symfony/translation/Loader/YamlFileLoader.php',\n    'Symfony\\\\Component\\\\Translation\\\\LoggingTranslator' => $vendorDir . '/symfony/translation/LoggingTranslator.php',\n    'Symfony\\\\Component\\\\Translation\\\\MessageCatalogue' => $vendorDir . '/symfony/translation/MessageCatalogue.php',\n    'Symfony\\\\Component\\\\Translation\\\\MessageCatalogueInterface' => $vendorDir . '/symfony/translation/MessageCatalogueInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\MessageSelector' => $vendorDir . '/symfony/translation/MessageSelector.php',\n    'Symfony\\\\Component\\\\Translation\\\\MetadataAwareInterface' => $vendorDir . '/symfony/translation/MetadataAwareInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\PluralizationRules' => $vendorDir . '/symfony/translation/PluralizationRules.php',\n    'Symfony\\\\Component\\\\Translation\\\\Reader\\\\TranslationReader' => $vendorDir . '/symfony/translation/Reader/TranslationReader.php',\n    'Symfony\\\\Component\\\\Translation\\\\Reader\\\\TranslationReaderInterface' => $vendorDir . '/symfony/translation/Reader/TranslationReaderInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Translator' => $vendorDir . '/symfony/translation/Translator.php',\n    'Symfony\\\\Component\\\\Translation\\\\TranslatorBagInterface' => $vendorDir . '/symfony/translation/TranslatorBagInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\TranslatorInterface' => $vendorDir . '/symfony/translation/TranslatorInterface.php',\n    'Symfony\\\\Component\\\\Translation\\\\Util\\\\ArrayConverter' => $vendorDir . '/symfony/translation/Util/ArrayConverter.php',\n    'Symfony\\\\Component\\\\Translation\\\\Util\\\\XliffUtils' => $vendorDir . '/symfony/translation/Util/XliffUtils.php',\n    'Symfony\\\\Component\\\\Translation\\\\Writer\\\\TranslationWriter' => $vendorDir . '/symfony/translation/Writer/TranslationWriter.php',\n    'Symfony\\\\Component\\\\Translation\\\\Writer\\\\TranslationWriterInterface' => $vendorDir . '/symfony/translation/Writer/TranslationWriterInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\AmqpCaster' => $vendorDir . '/symfony/var-dumper/Caster/AmqpCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ArgsStub' => $vendorDir . '/symfony/var-dumper/Caster/ArgsStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\Caster' => $vendorDir . '/symfony/var-dumper/Caster/Caster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ClassStub' => $vendorDir . '/symfony/var-dumper/Caster/ClassStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ConstStub' => $vendorDir . '/symfony/var-dumper/Caster/ConstStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\CutArrayStub' => $vendorDir . '/symfony/var-dumper/Caster/CutArrayStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\CutStub' => $vendorDir . '/symfony/var-dumper/Caster/CutStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DOMCaster' => $vendorDir . '/symfony/var-dumper/Caster/DOMCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DateCaster' => $vendorDir . '/symfony/var-dumper/Caster/DateCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DoctrineCaster' => $vendorDir . '/symfony/var-dumper/Caster/DoctrineCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DsCaster' => $vendorDir . '/symfony/var-dumper/Caster/DsCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DsPairStub' => $vendorDir . '/symfony/var-dumper/Caster/DsPairStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\EnumStub' => $vendorDir . '/symfony/var-dumper/Caster/EnumStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ExceptionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ExceptionCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\FrameStub' => $vendorDir . '/symfony/var-dumper/Caster/FrameStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\GmpCaster' => $vendorDir . '/symfony/var-dumper/Caster/GmpCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\IntlCaster' => $vendorDir . '/symfony/var-dumper/Caster/IntlCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\LinkStub' => $vendorDir . '/symfony/var-dumper/Caster/LinkStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\MemcachedCaster' => $vendorDir . '/symfony/var-dumper/Caster/MemcachedCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\PdoCaster' => $vendorDir . '/symfony/var-dumper/Caster/PdoCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\PgSqlCaster' => $vendorDir . '/symfony/var-dumper/Caster/PgSqlCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ProxyManagerCaster' => $vendorDir . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\RedisCaster' => $vendorDir . '/symfony/var-dumper/Caster/RedisCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ReflectionCaster' => $vendorDir . '/symfony/var-dumper/Caster/ReflectionCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/ResourceCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\SplCaster' => $vendorDir . '/symfony/var-dumper/Caster/SplCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\StubCaster' => $vendorDir . '/symfony/var-dumper/Caster/StubCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\SymfonyCaster' => $vendorDir . '/symfony/var-dumper/Caster/SymfonyCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\TraceStub' => $vendorDir . '/symfony/var-dumper/Caster/TraceStub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\XmlReaderCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlReaderCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\XmlResourceCaster' => $vendorDir . '/symfony/var-dumper/Caster/XmlResourceCaster.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\AbstractCloner' => $vendorDir . '/symfony/var-dumper/Cloner/AbstractCloner.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\ClonerInterface' => $vendorDir . '/symfony/var-dumper/Cloner/ClonerInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Cursor' => $vendorDir . '/symfony/var-dumper/Cloner/Cursor.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Data' => $vendorDir . '/symfony/var-dumper/Cloner/Data.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\DumperInterface' => $vendorDir . '/symfony/var-dumper/Cloner/DumperInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Stub' => $vendorDir . '/symfony/var-dumper/Cloner/Stub.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\VarCloner' => $vendorDir . '/symfony/var-dumper/Cloner/VarCloner.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\CliDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\DumpDescriptorInterface' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\HtmlDescriptor' => $vendorDir . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\ServerDumpCommand' => $vendorDir . '/symfony/var-dumper/Command/ServerDumpCommand.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\AbstractDumper' => $vendorDir . '/symfony/var-dumper/Dumper/AbstractDumper.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\CliDumper' => $vendorDir . '/symfony/var-dumper/Dumper/CliDumper.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\CliContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\ContextProviderInterface' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\RequestContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\SourceContextProvider' => $vendorDir . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\DataDumperInterface' => $vendorDir . '/symfony/var-dumper/Dumper/DataDumperInterface.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\HtmlDumper' => $vendorDir . '/symfony/var-dumper/Dumper/HtmlDumper.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ServerDumper' => $vendorDir . '/symfony/var-dumper/Dumper/ServerDumper.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Exception\\\\ThrowingCasterException' => $vendorDir . '/symfony/var-dumper/Exception/ThrowingCasterException.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Server\\\\Connection' => $vendorDir . '/symfony/var-dumper/Server/Connection.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Server\\\\DumpServer' => $vendorDir . '/symfony/var-dumper/Server/DumpServer.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\Test\\\\VarDumperTestTrait' => $vendorDir . '/symfony/var-dumper/Test/VarDumperTestTrait.php',\n    'Symfony\\\\Component\\\\VarDumper\\\\VarDumper' => $vendorDir . '/symfony/var-dumper/VarDumper.php',\n    'Symfony\\\\Contracts\\\\EventDispatcher\\\\Event' => $vendorDir . '/symfony/event-dispatcher-contracts/Event.php',\n    'Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface' => $vendorDir . '/symfony/event-dispatcher-contracts/EventDispatcherInterface.php',\n    'Symfony\\\\Contracts\\\\Service\\\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php',\n    'Symfony\\\\Contracts\\\\Service\\\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php',\n    'Symfony\\\\Contracts\\\\Service\\\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php',\n    'Symfony\\\\Contracts\\\\Service\\\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php',\n    'Symfony\\\\Contracts\\\\Service\\\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php',\n    'Symfony\\\\Contracts\\\\Service\\\\Test\\\\ServiceLocatorTest' => $vendorDir . '/symfony/service-contracts/Test/ServiceLocatorTest.php',\n    'Symfony\\\\Contracts\\\\Translation\\\\LocaleAwareInterface' => $vendorDir . '/symfony/translation-contracts/LocaleAwareInterface.php',\n    'Symfony\\\\Contracts\\\\Translation\\\\Test\\\\TranslatorTest' => $vendorDir . '/symfony/translation-contracts/Test/TranslatorTest.php',\n    'Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface' => $vendorDir . '/symfony/translation-contracts/TranslatorInterface.php',\n    'Symfony\\\\Contracts\\\\Translation\\\\TranslatorTrait' => $vendorDir . '/symfony/translation-contracts/TranslatorTrait.php',\n    'Symfony\\\\Polyfill\\\\Ctype\\\\Ctype' => $vendorDir . '/symfony/polyfill-ctype/Ctype.php',\n    'Symfony\\\\Polyfill\\\\Iconv\\\\Iconv' => $vendorDir . '/symfony/polyfill-iconv/Iconv.php',\n    'Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\Idn' => $vendorDir . '/symfony/polyfill-intl-idn/Idn.php',\n    'Symfony\\\\Polyfill\\\\Mbstring\\\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php',\n    'Symfony\\\\Polyfill\\\\Php72\\\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php',\n    'Symfony\\\\Polyfill\\\\Php73\\\\Php73' => $vendorDir . '/symfony/polyfill-php73/Php73.php',\n    'Tests\\\\CreatesApplication' => $baseDir . '/tests/CreatesApplication.php',\n    'Tests\\\\Feature\\\\ExampleTest' => $baseDir . '/tests/Feature/ExampleTest.php',\n    'Tests\\\\TestCase' => $baseDir . '/tests/TestCase.php',\n    'Tests\\\\Unit\\\\ExampleTest' => $baseDir . '/tests/Unit/ExampleTest.php',\n    'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',\n    'TheSeer\\\\Tokenizer\\\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php',\n    'TheSeer\\\\Tokenizer\\\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php',\n    'TheSeer\\\\Tokenizer\\\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php',\n    'TheSeer\\\\Tokenizer\\\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php',\n    'TheSeer\\\\Tokenizer\\\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php',\n    'TheSeer\\\\Tokenizer\\\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php',\n    'TheSeer\\\\Tokenizer\\\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php',\n    'TheSeer\\\\Tokenizer\\\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\CssToInlineStyles' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Property\\\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Property\\\\Property' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Rule\\\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Rule\\\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',\n    'Webmozart\\\\Assert\\\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php',\n    'Whoops\\\\Exception\\\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php',\n    'Whoops\\\\Exception\\\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php',\n    'Whoops\\\\Exception\\\\Frame' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Frame.php',\n    'Whoops\\\\Exception\\\\FrameCollection' => $vendorDir . '/filp/whoops/src/Whoops/Exception/FrameCollection.php',\n    'Whoops\\\\Exception\\\\Inspector' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Inspector.php',\n    'Whoops\\\\Handler\\\\CallbackHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php',\n    'Whoops\\\\Handler\\\\Handler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/Handler.php',\n    'Whoops\\\\Handler\\\\HandlerInterface' => $vendorDir . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php',\n    'Whoops\\\\Handler\\\\JsonResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php',\n    'Whoops\\\\Handler\\\\PlainTextHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php',\n    'Whoops\\\\Handler\\\\PrettyPageHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php',\n    'Whoops\\\\Handler\\\\XmlResponseHandler' => $vendorDir . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php',\n    'Whoops\\\\Run' => $vendorDir . '/filp/whoops/src/Whoops/Run.php',\n    'Whoops\\\\RunInterface' => $vendorDir . '/filp/whoops/src/Whoops/RunInterface.php',\n    'Whoops\\\\Util\\\\HtmlDumperOutput' => $vendorDir . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php',\n    'Whoops\\\\Util\\\\Misc' => $vendorDir . '/filp/whoops/src/Whoops/Util/Misc.php',\n    'Whoops\\\\Util\\\\SystemFacade' => $vendorDir . '/filp/whoops/src/Whoops/Util/SystemFacade.php',\n    'Whoops\\\\Util\\\\TemplateHelper' => $vendorDir . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',\n    'XdgBaseDir\\\\Xdg' => $vendorDir . '/dnoegel/php-xdg-base-dir/src/Xdg.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlockFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlockFactoryInterface' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Description' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\DescriptionFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\ExampleFinder' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Serializer' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\StandardTagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\TagFactory' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Author' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\BaseTag' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Covers' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Deprecated' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Example' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Factory\\\\StaticMethod' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Factory\\\\Strategy' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter\\\\AlignFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter\\\\PassthroughFormatter' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Generic' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Link' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Method' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Param' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Property' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\PropertyRead' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\PropertyWrite' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Reference' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Url' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Return_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\See' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Since' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Source' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Throws' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Uses' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Var_' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php',\n    'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Version' => $vendorDir . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php',\n    'phpDocumentor\\\\Reflection\\\\Element' => $vendorDir . '/phpdocumentor/reflection-common/src/Element.php',\n    'phpDocumentor\\\\Reflection\\\\File' => $vendorDir . '/phpdocumentor/reflection-common/src/File.php',\n    'phpDocumentor\\\\Reflection\\\\Fqsen' => $vendorDir . '/phpdocumentor/reflection-common/src/Fqsen.php',\n    'phpDocumentor\\\\Reflection\\\\FqsenResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/FqsenResolver.php',\n    'phpDocumentor\\\\Reflection\\\\Location' => $vendorDir . '/phpdocumentor/reflection-common/src/Location.php',\n    'phpDocumentor\\\\Reflection\\\\Project' => $vendorDir . '/phpdocumentor/reflection-common/src/Project.php',\n    'phpDocumentor\\\\Reflection\\\\ProjectFactory' => $vendorDir . '/phpdocumentor/reflection-common/src/ProjectFactory.php',\n    'phpDocumentor\\\\Reflection\\\\Type' => $vendorDir . '/phpdocumentor/type-resolver/src/Type.php',\n    'phpDocumentor\\\\Reflection\\\\TypeResolver' => $vendorDir . '/phpdocumentor/type-resolver/src/TypeResolver.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Array_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Array_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Boolean' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Boolean.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Callable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Callable_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Compound' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Compound.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Context' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Context.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\ContextFactory' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Float_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Float_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Integer' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Integer.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Iterable_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Iterable_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Mixed_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Mixed_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Null_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Null_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Nullable' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Nullable.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Object_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Object_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Parent_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Parent_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Resource_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Resource_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Scalar' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Scalar.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Self_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Self_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Static_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Static_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\String_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/String_.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\This' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/This.php',\n    'phpDocumentor\\\\Reflection\\\\Types\\\\Void_' => $vendorDir . '/phpdocumentor/type-resolver/src/Types/Void_.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\AvInfo' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/AvInfo.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\DownloadUrl' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/DownloadUrl.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\Fetch' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/Fetch.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImageExif' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/ImageExif.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImageInfo' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/ImageInfo.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImagePreviewUrl' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/ImagePreviewUrl.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\LastReturn' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/LastReturn.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\PersistentFop' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/PersistentFop.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\PersistentStatus' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/PersistentStatus.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\PrivateDownloadUrl' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/PrivateDownloadUrl.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\PrivateImagePreviewUrl' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/PrivateImagePreviewUrl.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\Qetag' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/Qetag.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\UploadToken' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/UploadToken.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\VerifyCallback' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/VerifyCallback.php',\n    'zgldh\\\\QiniuStorage\\\\Plugins\\\\WithUploadToken' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/Plugins/WithUploadToken.php',\n    'zgldh\\\\QiniuStorage\\\\QiniuAdapter' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/QiniuAdapter.php',\n    'zgldh\\\\QiniuStorage\\\\QiniuFilesystemServiceProvider' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/QiniuFilesystemServiceProvider.php',\n    'zgldh\\\\QiniuStorage\\\\QiniuStorage' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/QiniuStorage.php',\n    'zgldh\\\\QiniuStorage\\\\QiniuUrl' => $vendorDir . '/zgldh/qiniu-laravel-storage/src/QiniuUrl.php',\n);\n"
  },
  {
    "path": "vendor/composer/autoload_files.php",
    "content": "<?php\n\n// autoload_files.php @generated by Composer\n\n$vendorDir = dirname(dirname(__FILE__));\n$baseDir = dirname($vendorDir);\n\nreturn array(\n    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',\n    '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',\n    'f598d06aa772fa33d905e87be6398fb1' => $vendorDir . '/symfony/polyfill-intl-idn/bootstrap.php',\n    '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',\n    '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',\n    '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',\n    'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php',\n    '2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',\n    '538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',\n    'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',\n    '58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',\n    '4e8671d7be9056dcd04ddd9e8e15f9cc' => $vendorDir . '/encore/laravel-admin/src/helpers.php',\n    '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',\n    'f46f8b4503a30a4d7ec62f28a7d47c1d' => $vendorDir . '/peinhu/aetherupload-laravel/src/helpers.php',\n    '801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',\n    '841780ea2e1d6545ea3a253239d59c05' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/functions.php',\n    '0d8253363903f0ac7b0978dcde4e28a0' => $vendorDir . '/beyondcode/laravel-dump-server/helpers.php',\n);\n"
  },
  {
    "path": "vendor/composer/autoload_namespaces.php",
    "content": "<?php\n\n// autoload_namespaces.php @generated by Composer\n\n$vendorDir = dirname(dirname(__FILE__));\n$baseDir = dirname($vendorDir);\n\nreturn array(\n    'PhpOption\\\\' => array($vendorDir . '/phpoption/phpoption/src'),\n    'Parsedown' => array($vendorDir . '/erusev/parsedown'),\n    'Mockery' => array($vendorDir . '/mockery/mockery/library'),\n);\n"
  },
  {
    "path": "vendor/composer/autoload_psr4.php",
    "content": "<?php\n\n// autoload_psr4.php @generated by Composer\n\n$vendorDir = dirname(dirname(__FILE__));\n$baseDir = dirname($vendorDir);\n\nreturn array(\n    'zgldh\\\\QiniuStorage\\\\' => array($vendorDir . '/zgldh/qiniu-laravel-storage/src'),\n    'phpDocumentor\\\\Reflection\\\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'),\n    'XdgBaseDir\\\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'),\n    'Whoops\\\\' => array($vendorDir . '/filp/whoops/src/Whoops'),\n    'Webmozart\\\\Assert\\\\' => array($vendorDir . '/webmozart/assert/src'),\n    'TijsVerkoyen\\\\CssToInlineStyles\\\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'),\n    'Tests\\\\' => array($baseDir . '/tests'),\n    'Symfony\\\\Polyfill\\\\Php73\\\\' => array($vendorDir . '/symfony/polyfill-php73'),\n    'Symfony\\\\Polyfill\\\\Php72\\\\' => array($vendorDir . '/symfony/polyfill-php72'),\n    'Symfony\\\\Polyfill\\\\Mbstring\\\\' => array($vendorDir . '/symfony/polyfill-mbstring'),\n    'Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\' => array($vendorDir . '/symfony/polyfill-intl-idn'),\n    'Symfony\\\\Polyfill\\\\Iconv\\\\' => array($vendorDir . '/symfony/polyfill-iconv'),\n    'Symfony\\\\Polyfill\\\\Ctype\\\\' => array($vendorDir . '/symfony/polyfill-ctype'),\n    'Symfony\\\\Contracts\\\\Translation\\\\' => array($vendorDir . '/symfony/translation-contracts'),\n    'Symfony\\\\Contracts\\\\Service\\\\' => array($vendorDir . '/symfony/service-contracts'),\n    'Symfony\\\\Contracts\\\\EventDispatcher\\\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'),\n    'Symfony\\\\Component\\\\VarDumper\\\\' => array($vendorDir . '/symfony/var-dumper'),\n    'Symfony\\\\Component\\\\Translation\\\\' => array($vendorDir . '/symfony/translation'),\n    'Symfony\\\\Component\\\\Routing\\\\' => array($vendorDir . '/symfony/routing'),\n    'Symfony\\\\Component\\\\Process\\\\' => array($vendorDir . '/symfony/process'),\n    'Symfony\\\\Component\\\\Mime\\\\' => array($vendorDir . '/symfony/mime'),\n    'Symfony\\\\Component\\\\HttpKernel\\\\' => array($vendorDir . '/symfony/http-kernel'),\n    'Symfony\\\\Component\\\\HttpFoundation\\\\' => array($vendorDir . '/symfony/http-foundation'),\n    'Symfony\\\\Component\\\\Finder\\\\' => array($vendorDir . '/symfony/finder'),\n    'Symfony\\\\Component\\\\EventDispatcher\\\\' => array($vendorDir . '/symfony/event-dispatcher'),\n    'Symfony\\\\Component\\\\DomCrawler\\\\' => array($vendorDir . '/symfony/dom-crawler'),\n    'Symfony\\\\Component\\\\Debug\\\\' => array($vendorDir . '/symfony/debug'),\n    'Symfony\\\\Component\\\\CssSelector\\\\' => array($vendorDir . '/symfony/css-selector'),\n    'Symfony\\\\Component\\\\Console\\\\' => array($vendorDir . '/symfony/console'),\n    'Spatie\\\\Pjax\\\\' => array($vendorDir . '/spatie/laravel-pjax/src'),\n    'Spatie\\\\EloquentSortable\\\\' => array($vendorDir . '/spatie/eloquent-sortable/src'),\n    'ShareManT\\\\EditorMd\\\\' => array($vendorDir . '/sharemant/laravel-admin-ext-editormd/src'),\n    'Ramsey\\\\Uuid\\\\' => array($vendorDir . '/ramsey/uuid/src'),\n    'Qiniu\\\\' => array($vendorDir . '/qiniu/php-sdk/src/Qiniu'),\n    'Psy\\\\' => array($vendorDir . '/psy/psysh/src'),\n    'Psr\\\\SimpleCache\\\\' => array($vendorDir . '/psr/simple-cache/src'),\n    'Psr\\\\Log\\\\' => array($vendorDir . '/psr/log/Psr/Log'),\n    'Psr\\\\Container\\\\' => array($vendorDir . '/psr/container/src'),\n    'Prophecy\\\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),\n    'Predis\\\\' => array($vendorDir . '/predis/predis/src'),\n    'PhpParser\\\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),\n    'Opis\\\\Closure\\\\' => array($vendorDir . '/opis/closure/src'),\n    'NunoMaduro\\\\Collision\\\\' => array($vendorDir . '/nunomaduro/collision/src'),\n    'Monolog\\\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),\n    'League\\\\Flysystem\\\\' => array($vendorDir . '/league/flysystem/src'),\n    'Laravel\\\\Tinker\\\\' => array($vendorDir . '/laravel/tinker/src'),\n    'Jxlwqq\\\\Simditor\\\\' => array($vendorDir . '/jxlwqq/simditor/src'),\n    'JakubOnderka\\\\PhpConsoleHighlighter\\\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'),\n    'JakubOnderka\\\\PhpConsoleColor\\\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'),\n    'Illuminate\\\\' => array($vendorDir . '/laravel/framework/src/Illuminate'),\n    'Ichynul\\\\RowTable\\\\' => array($vendorDir . '/ichynul/row-table/src'),\n    'Ichynul\\\\Configx\\\\' => array($vendorDir . '/ichynul/configx/src'),\n    'Fideloper\\\\Proxy\\\\' => array($vendorDir . '/fideloper/proxy/src'),\n    'Faker\\\\' => array($vendorDir . '/fzaninotto/faker/src/Faker'),\n    'Encore\\\\LargeFileUpload\\\\' => array($vendorDir . '/dianwoung/large-file-upload/src'),\n    'Encore\\\\Admin\\\\Config\\\\' => array($vendorDir . '/laravel-admin-ext/config/src'),\n    'Encore\\\\Admin\\\\' => array($vendorDir . '/encore/laravel-admin/src'),\n    'Egulias\\\\EmailValidator\\\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'),\n    'Dotenv\\\\' => array($vendorDir . '/vlucas/phpdotenv/src'),\n    'Doctrine\\\\Instantiator\\\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),\n    'Doctrine\\\\DBAL\\\\' => array($vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL'),\n    'Doctrine\\\\Common\\\\Lexer\\\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'),\n    'Doctrine\\\\Common\\\\Inflector\\\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'),\n    'Doctrine\\\\Common\\\\Cache\\\\' => array($vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache'),\n    'Doctrine\\\\Common\\\\' => array($vendorDir . '/doctrine/event-manager/lib/Doctrine/Common'),\n    'DeepCopy\\\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),\n    'Cron\\\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),\n    'Carbon\\\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),\n    'BeyondCode\\\\DumpServer\\\\' => array($vendorDir . '/beyondcode/laravel-dump-server/src'),\n    'App\\\\' => array($baseDir . '/app'),\n    'AetherUpload\\\\' => array($vendorDir . '/peinhu/aetherupload-laravel/src'),\n);\n"
  },
  {
    "path": "vendor/composer/autoload_real.php",
    "content": "<?php\n\n// autoload_real.php @generated by Composer\n\nclass ComposerAutoloaderInit1b66a5b06579b18b92696e1317117c84\n{\n    private static $loader;\n\n    public static function loadClassLoader($class)\n    {\n        if ('Composer\\Autoload\\ClassLoader' === $class) {\n            require __DIR__ . '/ClassLoader.php';\n        }\n    }\n\n    /**\n     * @return \\Composer\\Autoload\\ClassLoader\n     */\n    public static function getLoader()\n    {\n        if (null !== self::$loader) {\n            return self::$loader;\n        }\n\n        spl_autoload_register(array('ComposerAutoloaderInit1b66a5b06579b18b92696e1317117c84', 'loadClassLoader'), true, true);\n        self::$loader = $loader = new \\Composer\\Autoload\\ClassLoader();\n        spl_autoload_unregister(array('ComposerAutoloaderInit1b66a5b06579b18b92696e1317117c84', 'loadClassLoader'));\n\n        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());\n        if ($useStaticLoader) {\n            require_once __DIR__ . '/autoload_static.php';\n\n            call_user_func(\\Composer\\Autoload\\ComposerStaticInit1b66a5b06579b18b92696e1317117c84::getInitializer($loader));\n        } else {\n            $map = require __DIR__ . '/autoload_namespaces.php';\n            foreach ($map as $namespace => $path) {\n                $loader->set($namespace, $path);\n            }\n\n            $map = require __DIR__ . '/autoload_psr4.php';\n            foreach ($map as $namespace => $path) {\n                $loader->setPsr4($namespace, $path);\n            }\n\n            $classMap = require __DIR__ . '/autoload_classmap.php';\n            if ($classMap) {\n                $loader->addClassMap($classMap);\n            }\n        }\n\n        $loader->register(true);\n\n        if ($useStaticLoader) {\n            $includeFiles = Composer\\Autoload\\ComposerStaticInit1b66a5b06579b18b92696e1317117c84::$files;\n        } else {\n            $includeFiles = require __DIR__ . '/autoload_files.php';\n        }\n        foreach ($includeFiles as $fileIdentifier => $file) {\n            composerRequire1b66a5b06579b18b92696e1317117c84($fileIdentifier, $file);\n        }\n\n        return $loader;\n    }\n}\n\nfunction composerRequire1b66a5b06579b18b92696e1317117c84($fileIdentifier, $file)\n{\n    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {\n        require $file;\n\n        $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;\n    }\n}\n"
  },
  {
    "path": "vendor/composer/autoload_static.php",
    "content": "<?php\n\n// autoload_static.php @generated by Composer\n\nnamespace Composer\\Autoload;\n\nclass ComposerStaticInit1b66a5b06579b18b92696e1317117c84\n{\n    public static $files = array (\n        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',\n        '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',\n        'f598d06aa772fa33d905e87be6398fb1' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/bootstrap.php',\n        '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',\n        '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',\n        '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',\n        'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php',\n        '2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',\n        '538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',\n        'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',\n        '58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',\n        '4e8671d7be9056dcd04ddd9e8e15f9cc' => __DIR__ . '/..' . '/encore/laravel-admin/src/helpers.php',\n        '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',\n        'f46f8b4503a30a4d7ec62f28a7d47c1d' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/helpers.php',\n        '801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',\n        '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php',\n        '0d8253363903f0ac7b0978dcde4e28a0' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/helpers.php',\n    );\n\n    public static $prefixLengthsPsr4 = array (\n        'z' => \n        array (\n            'zgldh\\\\QiniuStorage\\\\' => 19,\n        ),\n        'p' => \n        array (\n            'phpDocumentor\\\\Reflection\\\\' => 25,\n        ),\n        'X' => \n        array (\n            'XdgBaseDir\\\\' => 11,\n        ),\n        'W' => \n        array (\n            'Whoops\\\\' => 7,\n            'Webmozart\\\\Assert\\\\' => 17,\n        ),\n        'T' => \n        array (\n            'TijsVerkoyen\\\\CssToInlineStyles\\\\' => 31,\n            'Tests\\\\' => 6,\n        ),\n        'S' => \n        array (\n            'Symfony\\\\Polyfill\\\\Php73\\\\' => 23,\n            'Symfony\\\\Polyfill\\\\Php72\\\\' => 23,\n            'Symfony\\\\Polyfill\\\\Mbstring\\\\' => 26,\n            'Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\' => 26,\n            'Symfony\\\\Polyfill\\\\Iconv\\\\' => 23,\n            'Symfony\\\\Polyfill\\\\Ctype\\\\' => 23,\n            'Symfony\\\\Contracts\\\\Translation\\\\' => 30,\n            'Symfony\\\\Contracts\\\\Service\\\\' => 26,\n            'Symfony\\\\Contracts\\\\EventDispatcher\\\\' => 34,\n            'Symfony\\\\Component\\\\VarDumper\\\\' => 28,\n            'Symfony\\\\Component\\\\Translation\\\\' => 30,\n            'Symfony\\\\Component\\\\Routing\\\\' => 26,\n            'Symfony\\\\Component\\\\Process\\\\' => 26,\n            'Symfony\\\\Component\\\\Mime\\\\' => 23,\n            'Symfony\\\\Component\\\\HttpKernel\\\\' => 29,\n            'Symfony\\\\Component\\\\HttpFoundation\\\\' => 33,\n            'Symfony\\\\Component\\\\Finder\\\\' => 25,\n            'Symfony\\\\Component\\\\EventDispatcher\\\\' => 34,\n            'Symfony\\\\Component\\\\DomCrawler\\\\' => 29,\n            'Symfony\\\\Component\\\\Debug\\\\' => 24,\n            'Symfony\\\\Component\\\\CssSelector\\\\' => 30,\n            'Symfony\\\\Component\\\\Console\\\\' => 26,\n            'Spatie\\\\Pjax\\\\' => 12,\n            'Spatie\\\\EloquentSortable\\\\' => 24,\n            'ShareManT\\\\EditorMd\\\\' => 19,\n        ),\n        'R' => \n        array (\n            'Ramsey\\\\Uuid\\\\' => 12,\n        ),\n        'Q' => \n        array (\n            'Qiniu\\\\' => 6,\n        ),\n        'P' => \n        array (\n            'Psy\\\\' => 4,\n            'Psr\\\\SimpleCache\\\\' => 16,\n            'Psr\\\\Log\\\\' => 8,\n            'Psr\\\\Container\\\\' => 14,\n            'Prophecy\\\\' => 9,\n            'Predis\\\\' => 7,\n            'PhpParser\\\\' => 10,\n        ),\n        'O' => \n        array (\n            'Opis\\\\Closure\\\\' => 13,\n        ),\n        'N' => \n        array (\n            'NunoMaduro\\\\Collision\\\\' => 21,\n        ),\n        'M' => \n        array (\n            'Monolog\\\\' => 8,\n        ),\n        'L' => \n        array (\n            'League\\\\Flysystem\\\\' => 17,\n            'Laravel\\\\Tinker\\\\' => 15,\n        ),\n        'J' => \n        array (\n            'Jxlwqq\\\\Simditor\\\\' => 16,\n            'JakubOnderka\\\\PhpConsoleHighlighter\\\\' => 35,\n            'JakubOnderka\\\\PhpConsoleColor\\\\' => 29,\n        ),\n        'I' => \n        array (\n            'Illuminate\\\\' => 11,\n            'Ichynul\\\\RowTable\\\\' => 17,\n            'Ichynul\\\\Configx\\\\' => 16,\n        ),\n        'F' => \n        array (\n            'Fideloper\\\\Proxy\\\\' => 16,\n            'Faker\\\\' => 6,\n        ),\n        'E' => \n        array (\n            'Encore\\\\LargeFileUpload\\\\' => 23,\n            'Encore\\\\Admin\\\\Config\\\\' => 20,\n            'Encore\\\\Admin\\\\' => 13,\n            'Egulias\\\\EmailValidator\\\\' => 23,\n        ),\n        'D' => \n        array (\n            'Dotenv\\\\' => 7,\n            'Doctrine\\\\Instantiator\\\\' => 22,\n            'Doctrine\\\\DBAL\\\\' => 14,\n            'Doctrine\\\\Common\\\\Lexer\\\\' => 22,\n            'Doctrine\\\\Common\\\\Inflector\\\\' => 26,\n            'Doctrine\\\\Common\\\\Cache\\\\' => 22,\n            'Doctrine\\\\Common\\\\' => 16,\n            'DeepCopy\\\\' => 9,\n        ),\n        'C' => \n        array (\n            'Cron\\\\' => 5,\n            'Carbon\\\\' => 7,\n        ),\n        'B' => \n        array (\n            'BeyondCode\\\\DumpServer\\\\' => 22,\n        ),\n        'A' => \n        array (\n            'App\\\\' => 4,\n            'AetherUpload\\\\' => 13,\n        ),\n    );\n\n    public static $prefixDirsPsr4 = array (\n        'zgldh\\\\QiniuStorage\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src',\n        ),\n        'phpDocumentor\\\\Reflection\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',\n            1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',\n            2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',\n        ),\n        'XdgBaseDir\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src',\n        ),\n        'Whoops\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops',\n        ),\n        'Webmozart\\\\Assert\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/webmozart/assert/src',\n        ),\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src',\n        ),\n        'Tests\\\\' => \n        array (\n            0 => __DIR__ . '/../..' . '/tests',\n        ),\n        'Symfony\\\\Polyfill\\\\Php73\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-php73',\n        ),\n        'Symfony\\\\Polyfill\\\\Php72\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-php72',\n        ),\n        'Symfony\\\\Polyfill\\\\Mbstring\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',\n        ),\n        'Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn',\n        ),\n        'Symfony\\\\Polyfill\\\\Iconv\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-iconv',\n        ),\n        'Symfony\\\\Polyfill\\\\Ctype\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',\n        ),\n        'Symfony\\\\Contracts\\\\Translation\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/translation-contracts',\n        ),\n        'Symfony\\\\Contracts\\\\Service\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/service-contracts',\n        ),\n        'Symfony\\\\Contracts\\\\EventDispatcher\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts',\n        ),\n        'Symfony\\\\Component\\\\VarDumper\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/var-dumper',\n        ),\n        'Symfony\\\\Component\\\\Translation\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/translation',\n        ),\n        'Symfony\\\\Component\\\\Routing\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/routing',\n        ),\n        'Symfony\\\\Component\\\\Process\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/process',\n        ),\n        'Symfony\\\\Component\\\\Mime\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/mime',\n        ),\n        'Symfony\\\\Component\\\\HttpKernel\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/http-kernel',\n        ),\n        'Symfony\\\\Component\\\\HttpFoundation\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/http-foundation',\n        ),\n        'Symfony\\\\Component\\\\Finder\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/finder',\n        ),\n        'Symfony\\\\Component\\\\EventDispatcher\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/event-dispatcher',\n        ),\n        'Symfony\\\\Component\\\\DomCrawler\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/dom-crawler',\n        ),\n        'Symfony\\\\Component\\\\Debug\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/debug',\n        ),\n        'Symfony\\\\Component\\\\CssSelector\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/css-selector',\n        ),\n        'Symfony\\\\Component\\\\Console\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/symfony/console',\n        ),\n        'Spatie\\\\Pjax\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/spatie/laravel-pjax/src',\n        ),\n        'Spatie\\\\EloquentSortable\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/spatie/eloquent-sortable/src',\n        ),\n        'ShareManT\\\\EditorMd\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/sharemant/laravel-admin-ext-editormd/src',\n        ),\n        'Ramsey\\\\Uuid\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/ramsey/uuid/src',\n        ),\n        'Qiniu\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu',\n        ),\n        'Psy\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/psy/psysh/src',\n        ),\n        'Psr\\\\SimpleCache\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/psr/simple-cache/src',\n        ),\n        'Psr\\\\Log\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',\n        ),\n        'Psr\\\\Container\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/psr/container/src',\n        ),\n        'Prophecy\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',\n        ),\n        'Predis\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/predis/predis/src',\n        ),\n        'PhpParser\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser',\n        ),\n        'Opis\\\\Closure\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/opis/closure/src',\n        ),\n        'NunoMaduro\\\\Collision\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/nunomaduro/collision/src',\n        ),\n        'Monolog\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',\n        ),\n        'League\\\\Flysystem\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/league/flysystem/src',\n        ),\n        'Laravel\\\\Tinker\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/laravel/tinker/src',\n        ),\n        'Jxlwqq\\\\Simditor\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/jxlwqq/simditor/src',\n        ),\n        'JakubOnderka\\\\PhpConsoleHighlighter\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src',\n        ),\n        'JakubOnderka\\\\PhpConsoleColor\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src',\n        ),\n        'Illuminate\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/laravel/framework/src/Illuminate',\n        ),\n        'Ichynul\\\\RowTable\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/ichynul/row-table/src',\n        ),\n        'Ichynul\\\\Configx\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/ichynul/configx/src',\n        ),\n        'Fideloper\\\\Proxy\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/fideloper/proxy/src',\n        ),\n        'Faker\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker',\n        ),\n        'Encore\\\\LargeFileUpload\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/dianwoung/large-file-upload/src',\n        ),\n        'Encore\\\\Admin\\\\Config\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/laravel-admin-ext/config/src',\n        ),\n        'Encore\\\\Admin\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/encore/laravel-admin/src',\n        ),\n        'Egulias\\\\EmailValidator\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator',\n        ),\n        'Dotenv\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/vlucas/phpdotenv/src',\n        ),\n        'Doctrine\\\\Instantiator\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',\n        ),\n        'Doctrine\\\\DBAL\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL',\n        ),\n        'Doctrine\\\\Common\\\\Lexer\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer',\n        ),\n        'Doctrine\\\\Common\\\\Inflector\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector',\n        ),\n        'Doctrine\\\\Common\\\\Cache\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache',\n        ),\n        'Doctrine\\\\Common\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common',\n        ),\n        'DeepCopy\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',\n        ),\n        'Cron\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron',\n        ),\n        'Carbon\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',\n        ),\n        'BeyondCode\\\\DumpServer\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src',\n        ),\n        'App\\\\' => \n        array (\n            0 => __DIR__ . '/../..' . '/app',\n        ),\n        'AetherUpload\\\\' => \n        array (\n            0 => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src',\n        ),\n    );\n\n    public static $prefixesPsr0 = array (\n        'P' => \n        array (\n            'PhpOption\\\\' => \n            array (\n                0 => __DIR__ . '/..' . '/phpoption/phpoption/src',\n            ),\n            'Parsedown' => \n            array (\n                0 => __DIR__ . '/..' . '/erusev/parsedown',\n            ),\n        ),\n        'M' => \n        array (\n            'Mockery' => \n            array (\n                0 => __DIR__ . '/..' . '/mockery/mockery/library',\n            ),\n        ),\n    );\n\n    public static $classMap = array (\n        'AetherUpload\\\\AetherUploadServiceProvider' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/AetherUploadServiceProvider.php',\n        'AetherUpload\\\\ConfigMapper' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/ConfigMapper.php',\n        'AetherUpload\\\\Console\\\\BuildRedisHashesCommand' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Console/BuildRedisHashesCommand.php',\n        'AetherUpload\\\\Console\\\\CleanUpDirectoryCommand' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Console/CleanUpDirectoryCommand.php',\n        'AetherUpload\\\\Console\\\\ListGroupDirectoryCommand' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Console/ListGroupDirectoryCommand.php',\n        'AetherUpload\\\\Console\\\\PublishCommand' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Console/PublishCommand.php',\n        'AetherUpload\\\\Header' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Header.php',\n        'AetherUpload\\\\MimeType' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/MimeType.php',\n        'AetherUpload\\\\PartialResource' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/PartialResource.php',\n        'AetherUpload\\\\RedisAdapter' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/RedisAdapter.php',\n        'AetherUpload\\\\RedisClient' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/RedisClient.php',\n        'AetherUpload\\\\RedisSavedPath' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/RedisSavedPath.php',\n        'AetherUpload\\\\Resource' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Resource.php',\n        'AetherUpload\\\\ResourceController' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/ResourceController.php',\n        'AetherUpload\\\\Responser' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Responser.php',\n        'AetherUpload\\\\SavedPathResolver' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/SavedPathResolver.php',\n        'AetherUpload\\\\UploadController' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/UploadController.php',\n        'AetherUpload\\\\Util' => __DIR__ . '/..' . '/peinhu/aetherupload-laravel/src/Util.php',\n        'App\\\\Admin\\\\Actions\\\\Post\\\\GoArticle' => __DIR__ . '/../..' . '/app/Admin/Actions/Post/GoArticle.php',\n        'App\\\\Admin\\\\Controllers\\\\AuthController' => __DIR__ . '/../..' . '/app/Admin/Controllers/AuthController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogAboutArticleController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogAboutArticleController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogAboutCardOneController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogAboutCardOneController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogAboutCardTwoController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogAboutCardTwoController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogAboutController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogAboutController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogFriendsController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogFriendsController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogMessageController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogMessageController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavArticleController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavArticleController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavMusicController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavMusicController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavPhotoController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavPhotoController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavShareOneController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavShareOneController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavShareTwoController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavShareTwoController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNavVideoController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNavVideoController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogNoticeController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogNoticeController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogSubscribeController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogSubscribeController.php',\n        'App\\\\Admin\\\\Controllers\\\\BlogUploadFileController' => __DIR__ . '/../..' . '/app/Admin/Controllers/BlogUploadFileController.php',\n        'App\\\\Admin\\\\Controllers\\\\ExampleController' => __DIR__ . '/../..' . '/app/Admin/Controllers/ExampleController.php',\n        'App\\\\Admin\\\\Controllers\\\\HomeController' => __DIR__ . '/../..' . '/app/Admin/Controllers/HomeController.php',\n        'App\\\\Console\\\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',\n        'App\\\\Exceptions\\\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php',\n        'App\\\\Http\\\\Controllers\\\\Auth\\\\ForgotPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ForgotPasswordController.php',\n        'App\\\\Http\\\\Controllers\\\\Auth\\\\LoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/LoginController.php',\n        'App\\\\Http\\\\Controllers\\\\Auth\\\\RegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/RegisterController.php',\n        'App\\\\Http\\\\Controllers\\\\Auth\\\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php',\n        'App\\\\Http\\\\Controllers\\\\Auth\\\\VerificationController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/VerificationController.php',\n        'App\\\\Http\\\\Controllers\\\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',\n        'App\\\\Http\\\\Controllers\\\\Home\\\\AboutController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/AboutController.php',\n        'App\\\\Http\\\\Controllers\\\\Home\\\\ArticleController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/ArticleController.php',\n        'App\\\\Http\\\\Controllers\\\\Home\\\\FriendsController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/FriendsController.php',\n        'App\\\\Http\\\\Controllers\\\\Home\\\\IndexController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/IndexController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\ArticleDetailController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/ArticleDetailController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\CardOneController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/CardOneController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\CardTwoController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/CardTwoController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\MessageController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/MessageController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\MusicController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/MusicController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\PhotoController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/PhotoController.php',\n        'App\\\\Http\\\\Controllers\\\\home\\\\VideoController' => __DIR__ . '/../..' . '/app/Http/Controllers/Home/VideoController.php',\n        'App\\\\Http\\\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php',\n        'App\\\\Http\\\\Middleware\\\\AetherUploadCORS' => __DIR__ . '/../..' . '/app/Http/Middleware/AetherUploadCORS.php',\n        'App\\\\Http\\\\Middleware\\\\Authenticate' => __DIR__ . '/../..' . '/app/Http/Middleware/Authenticate.php',\n        'App\\\\Http\\\\Middleware\\\\CheckForMaintenanceMode' => __DIR__ . '/../..' . '/app/Http/Middleware/CheckForMaintenanceMode.php',\n        'App\\\\Http\\\\Middleware\\\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php',\n        'App\\\\Http\\\\Middleware\\\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php',\n        'App\\\\Http\\\\Middleware\\\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php',\n        'App\\\\Http\\\\Middleware\\\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php',\n        'App\\\\Http\\\\Middleware\\\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php',\n        'App\\\\Http\\\\Requests\\\\StoreArticleMsgPost' => __DIR__ . '/../..' . '/app/Http/Requests/StoreArticleMsgPost.php',\n        'App\\\\Http\\\\Requests\\\\StoreBlogFriendsPost' => __DIR__ . '/../..' . '/app/Http/Requests/StoreBlogFriendsPost.php',\n        'App\\\\Http\\\\Requests\\\\StoreBlogSubscribePost' => __DIR__ . '/../..' . '/app/Http/Requests/StoreBlogSubscribePost.php',\n        'App\\\\Jobs\\\\ProcessPodcast' => __DIR__ . '/../..' . '/app/Jobs/ProcessPodcast.php',\n        'App\\\\Jobs\\\\SendReminderEmail' => __DIR__ . '/../..' . '/app/Jobs/SendReminderEmail.php',\n        'App\\\\Mail\\\\ArticleMail' => __DIR__ . '/../..' . '/app/Mail/ArticleMail.php',\n        'App\\\\Models\\\\BlogAbout' => __DIR__ . '/../..' . '/app/Models/BlogAbout.php',\n        'App\\\\Models\\\\BlogAboutArticle' => __DIR__ . '/../..' . '/app/Models/BlogAboutArticle.php',\n        'App\\\\Models\\\\BlogAboutCardOne' => __DIR__ . '/../..' . '/app/Models/BlogAboutCardOne.php',\n        'App\\\\Models\\\\BlogAboutCardTwo' => __DIR__ . '/../..' . '/app/Models/BlogAboutCardTwo.php',\n        'App\\\\Models\\\\BlogFriends' => __DIR__ . '/../..' . '/app/Models/BlogFriends.php',\n        'App\\\\Models\\\\BlogMessage' => __DIR__ . '/../..' . '/app/Models/BlogMessage.php',\n        'App\\\\Models\\\\BlogNav' => __DIR__ . '/../..' . '/app/Models/BlogNav.php',\n        'App\\\\Models\\\\BlogNavArticle' => __DIR__ . '/../..' . '/app/Models/BlogNavArticle.php',\n        'App\\\\Models\\\\BlogNavMusic' => __DIR__ . '/../..' . '/app/Models/BlogNavMusic.php',\n        'App\\\\Models\\\\BlogNavPhoto' => __DIR__ . '/../..' . '/app/Models/BlogNavPhoto.php',\n        'App\\\\Models\\\\BlogNavShareOne' => __DIR__ . '/../..' . '/app/Models/BlogNavShareOne.php',\n        'App\\\\Models\\\\BlogNavShareTwo' => __DIR__ . '/../..' . '/app/Models/BlogNavShareTwo.php',\n        'App\\\\Models\\\\BlogNavVideo' => __DIR__ . '/../..' . '/app/Models/BlogNavVideo.php',\n        'App\\\\Models\\\\BlogNotice' => __DIR__ . '/../..' . '/app/Models/BlogNotice.php',\n        'App\\\\Models\\\\BlogSubscribe' => __DIR__ . '/../..' . '/app/Models/BlogSubscribe.php',\n        'App\\\\Models\\\\BlogTag' => __DIR__ . '/../..' . '/app/Models/BlogTag.php',\n        'App\\\\Models\\\\BlogUploadFile' => __DIR__ . '/../..' . '/app/Models/BlogUploadFile.php',\n        'App\\\\Observers\\\\BlogAboutCardTwoObserver' => __DIR__ . '/../..' . '/app/Observers/BlogAboutCardTwoObserver.php',\n        'App\\\\Observers\\\\BlogConfigObserver' => __DIR__ . '/../..' . '/app/Observers/BlogConfigObserver.php',\n        'App\\\\Observers\\\\BlogFriendsObserver' => __DIR__ . '/../..' . '/app/Observers/BlogFriendsObserver.php',\n        'App\\\\Observers\\\\BlogNavArticleObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavArticleObserver.php',\n        'App\\\\Observers\\\\BlogNavMusicObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavMusicObserver.php',\n        'App\\\\Observers\\\\BlogNavObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavObserver.php',\n        'App\\\\Observers\\\\BlogNavPhotoObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavPhotoObserver.php',\n        'App\\\\Observers\\\\BlogNavShareOneObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavShareOneObserver.php',\n        'App\\\\Observers\\\\BlogNavShareTwoObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavShareTwoObserver.php',\n        'App\\\\Observers\\\\BlogNavVideoObserver' => __DIR__ . '/../..' . '/app/Observers/BlogNavVideoObserver.php',\n        'App\\\\Providers\\\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php',\n        'App\\\\Providers\\\\AuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AuthServiceProvider.php',\n        'App\\\\Providers\\\\BroadcastServiceProvider' => __DIR__ . '/../..' . '/app/Providers/BroadcastServiceProvider.php',\n        'App\\\\Providers\\\\EventServiceProvider' => __DIR__ . '/../..' . '/app/Providers/EventServiceProvider.php',\n        'App\\\\Providers\\\\RouteServiceProvider' => __DIR__ . '/../..' . '/app/Providers/RouteServiceProvider.php',\n        'App\\\\User' => __DIR__ . '/../..' . '/app/User.php',\n        'BeyondCode\\\\DumpServer\\\\DumpServerCommand' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/DumpServerCommand.php',\n        'BeyondCode\\\\DumpServer\\\\DumpServerServiceProvider' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/DumpServerServiceProvider.php',\n        'BeyondCode\\\\DumpServer\\\\Dumper' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/Dumper.php',\n        'BeyondCode\\\\DumpServer\\\\RequestContextProvider' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/RequestContextProvider.php',\n        'BlogArticleTableSeeder' => __DIR__ . '/../..' . '/database/seeds/BlogArticleTableSeeder.php',\n        'BlogSubscribeSeeder' => __DIR__ . '/../..' . '/database/seeds/BlogSubscribeSeeder.php',\n        'Carbon\\\\Carbon' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Carbon.php',\n        'Carbon\\\\CarbonImmutable' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonImmutable.php',\n        'Carbon\\\\CarbonInterface' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterface.php',\n        'Carbon\\\\CarbonInterval' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonInterval.php',\n        'Carbon\\\\CarbonPeriod' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonPeriod.php',\n        'Carbon\\\\CarbonTimeZone' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/CarbonTimeZone.php',\n        'Carbon\\\\Exceptions\\\\InvalidDateException' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php',\n        'Carbon\\\\Factory' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Factory.php',\n        'Carbon\\\\FactoryImmutable' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/FactoryImmutable.php',\n        'Carbon\\\\Language' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Language.php',\n        'Carbon\\\\Laravel\\\\ServiceProvider' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php',\n        'Carbon\\\\Traits\\\\Boundaries' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Boundaries.php',\n        'Carbon\\\\Traits\\\\Comparison' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Comparison.php',\n        'Carbon\\\\Traits\\\\Converter' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Converter.php',\n        'Carbon\\\\Traits\\\\Creator' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Creator.php',\n        'Carbon\\\\Traits\\\\Date' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Date.php',\n        'Carbon\\\\Traits\\\\Difference' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Difference.php',\n        'Carbon\\\\Traits\\\\Localization' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Localization.php',\n        'Carbon\\\\Traits\\\\Macro' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Macro.php',\n        'Carbon\\\\Traits\\\\Modifiers' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Modifiers.php',\n        'Carbon\\\\Traits\\\\Mutability' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Mutability.php',\n        'Carbon\\\\Traits\\\\Options' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Options.php',\n        'Carbon\\\\Traits\\\\Rounding' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Rounding.php',\n        'Carbon\\\\Traits\\\\Serialization' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Serialization.php',\n        'Carbon\\\\Traits\\\\Test' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Test.php',\n        'Carbon\\\\Traits\\\\Timestamp' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Timestamp.php',\n        'Carbon\\\\Traits\\\\Units' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Units.php',\n        'Carbon\\\\Traits\\\\Week' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Traits/Week.php',\n        'Carbon\\\\Translator' => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon/Translator.php',\n        'Cron\\\\AbstractField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/AbstractField.php',\n        'Cron\\\\CronExpression' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/CronExpression.php',\n        'Cron\\\\DayOfMonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php',\n        'Cron\\\\DayOfWeekField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php',\n        'Cron\\\\FieldFactory' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldFactory.php',\n        'Cron\\\\FieldInterface' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/FieldInterface.php',\n        'Cron\\\\HoursField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/HoursField.php',\n        'Cron\\\\MinutesField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MinutesField.php',\n        'Cron\\\\MonthField' => __DIR__ . '/..' . '/dragonmantank/cron-expression/src/Cron/MonthField.php',\n        'DatabaseSeeder' => __DIR__ . '/../..' . '/database/seeds/DatabaseSeeder.php',\n        'DeepCopy\\\\DeepCopy' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/DeepCopy.php',\n        'DeepCopy\\\\Exception\\\\CloneException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php',\n        'DeepCopy\\\\Exception\\\\PropertyException' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php',\n        'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php',\n        'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineEmptyCollectionFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php',\n        'DeepCopy\\\\Filter\\\\Doctrine\\\\DoctrineProxyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php',\n        'DeepCopy\\\\Filter\\\\Filter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php',\n        'DeepCopy\\\\Filter\\\\KeepFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php',\n        'DeepCopy\\\\Filter\\\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php',\n        'DeepCopy\\\\Filter\\\\SetNullFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php',\n        'DeepCopy\\\\Matcher\\\\Doctrine\\\\DoctrineProxyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php',\n        'DeepCopy\\\\Matcher\\\\Matcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php',\n        'DeepCopy\\\\Matcher\\\\PropertyMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php',\n        'DeepCopy\\\\Matcher\\\\PropertyNameMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php',\n        'DeepCopy\\\\Matcher\\\\PropertyTypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php',\n        'DeepCopy\\\\Reflection\\\\ReflectionHelper' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php',\n        'DeepCopy\\\\TypeFilter\\\\Date\\\\DateIntervalFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php',\n        'DeepCopy\\\\TypeFilter\\\\ReplaceFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php',\n        'DeepCopy\\\\TypeFilter\\\\ShallowCopyFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php',\n        'DeepCopy\\\\TypeFilter\\\\Spl\\\\SplDoublyLinkedList' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php',\n        'DeepCopy\\\\TypeFilter\\\\Spl\\\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',\n        'DeepCopy\\\\TypeFilter\\\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',\n        'DeepCopy\\\\TypeMatcher\\\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ApcCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ApcuCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ArrayCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\Cache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\CacheProvider' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ChainCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ClearableCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\CouchbaseBucketCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\CouchbaseCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ExtMongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\FileCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\FilesystemCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\FlushableCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\LegacyMongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MemcacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MemcachedCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MultiDeleteCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MultiGetCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MultiOperationCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\MultiPutCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\PhpFileCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\PredisCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\RedisCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\RiakCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\SQLite3Cache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\Version' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/Version.php',\n        'Doctrine\\\\Common\\\\Cache\\\\VoidCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\WinCacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\XcacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php',\n        'Doctrine\\\\Common\\\\Cache\\\\ZendDataCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php',\n        'Doctrine\\\\Common\\\\EventArgs' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventArgs.php',\n        'Doctrine\\\\Common\\\\EventManager' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventManager.php',\n        'Doctrine\\\\Common\\\\EventSubscriber' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventSubscriber.php',\n        'Doctrine\\\\Common\\\\Inflector\\\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',\n        'Doctrine\\\\Common\\\\Lexer\\\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',\n        'Doctrine\\\\DBAL\\\\Cache\\\\ArrayStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php',\n        'Doctrine\\\\DBAL\\\\Cache\\\\CacheException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php',\n        'Doctrine\\\\DBAL\\\\Cache\\\\QueryCacheProfile' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php',\n        'Doctrine\\\\DBAL\\\\Cache\\\\ResultCacheStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php',\n        'Doctrine\\\\DBAL\\\\ColumnCase' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php',\n        'Doctrine\\\\DBAL\\\\Configuration' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php',\n        'Doctrine\\\\DBAL\\\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Connection.php',\n        'Doctrine\\\\DBAL\\\\ConnectionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php',\n        'Doctrine\\\\DBAL\\\\Connections\\\\MasterSlaveConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php',\n        'Doctrine\\\\DBAL\\\\DBALException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php',\n        'Doctrine\\\\DBAL\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver.php',\n        'Doctrine\\\\DBAL\\\\DriverManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractDB2Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractDriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractMySQLDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractOracleDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractOracleDriver\\\\EasyConnectString' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractPostgreSQLDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLAnywhereDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLServerDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLiteDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\DriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\DrizzlePDOMySql\\\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\DrizzlePDOMySql\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\ExceptionConverterDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Exception' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\IBMDB2\\\\DB2Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Mysqli\\\\MysqliStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Exception' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\OCI8\\\\OCI8Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOIbm\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOMySql\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOOracle\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOPgSql\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlite\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Connection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlsrv\\\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Statement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\PingableConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PingableConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLAnywhere\\\\SQLAnywhereStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereStatement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\LastInsertId' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/LastInsertId.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\SQLSrv\\\\SQLSrvStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\ServerInfoAwareConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php',\n        'Doctrine\\\\DBAL\\\\Driver\\\\StatementIterator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/StatementIterator.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\ConnectionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/ConnectionEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\MysqlSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/MysqlSessionInit.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\OracleSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/OracleSessionInit.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\Listeners\\\\SQLSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/SQLSessionInit.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableAddColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableAddColumnEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableChangeColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableChangeColumnEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableRemoveColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRemoveColumnEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaAlterTableRenameColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRenameColumnEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaColumnDefinitionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaColumnDefinitionEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaCreateTableColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableColumnEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaCreateTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaDropTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaDropTableEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Event\\\\SchemaIndexDefinitionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaIndexDefinitionEventArgs.php',\n        'Doctrine\\\\DBAL\\\\Events' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Events.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\ConnectionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConnectionException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\ConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConstraintViolationException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\DatabaseObjectExistsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectExistsException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\DatabaseObjectNotFoundException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectNotFoundException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\DeadlockException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DeadlockException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\DriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DriverException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\ForeignKeyConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ForeignKeyConstraintViolationException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidArgumentException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\InvalidFieldNameException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidFieldNameException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\LockWaitTimeoutException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/LockWaitTimeoutException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\NonUniqueFieldNameException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NonUniqueFieldNameException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\NotNullConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NotNullConstraintViolationException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\ReadOnlyException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ReadOnlyException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\RetryableException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/RetryableException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\ServerException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ServerException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\SyntaxErrorException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/SyntaxErrorException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\TableExistsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableExistsException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\TableNotFoundException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableNotFoundException.php',\n        'Doctrine\\\\DBAL\\\\Exception\\\\UniqueConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/UniqueConstraintViolationException.php',\n        'Doctrine\\\\DBAL\\\\FetchMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php',\n        'Doctrine\\\\DBAL\\\\Id\\\\TableGenerator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGenerator.php',\n        'Doctrine\\\\DBAL\\\\Id\\\\TableGeneratorSchemaVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGeneratorSchemaVisitor.php',\n        'Doctrine\\\\DBAL\\\\LockMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/LockMode.php',\n        'Doctrine\\\\DBAL\\\\Logging\\\\DebugStack' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/DebugStack.php',\n        'Doctrine\\\\DBAL\\\\Logging\\\\EchoSQLLogger' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php',\n        'Doctrine\\\\DBAL\\\\Logging\\\\LoggerChain' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/LoggerChain.php',\n        'Doctrine\\\\DBAL\\\\Logging\\\\SQLLogger' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/SQLLogger.php',\n        'Doctrine\\\\DBAL\\\\ParameterType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\AbstractPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\DB2Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DB2Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\DateIntervalUnit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DateIntervalUnit.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\DrizzlePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DrizzlePlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\DB2Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DB2Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\DrizzleKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DrizzleKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\KeywordList' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MariaDb102Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MariaDb102Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MsSQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MsSQLKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQL57Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL57Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQL80Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL80Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\MySQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\OracleKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/OracleKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL100Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL100Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL91Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL91Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL92Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL92Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQL94Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL94Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\PostgreSQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQLKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\ReservedKeywordsValidator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/ReservedKeywordsValidator.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere11Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere11Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere12Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere12Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhere16Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere16Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLAnywhereKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhereKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2005Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2005Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2008Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2008Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServer2012Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2012Keywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLServerKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServerKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\Keywords\\\\SQLiteKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLiteKeywords.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\MariaDb1027Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MariaDb1027Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\MySQL57Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL57Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\MySQL80Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL80Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\MySqlPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\OraclePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/OraclePlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL100Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL100Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL91Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL91Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL92Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL92Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSQL94Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL94Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\PostgreSqlPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere11Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere11Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere12Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere12Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywhere16Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere16Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAnywherePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywherePlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLAzurePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAzurePlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2005Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2005Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2008Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2008Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServer2012Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2012Platform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SQLServerPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServerPlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\SqlitePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php',\n        'Doctrine\\\\DBAL\\\\Platforms\\\\TrimMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/TrimMode.php',\n        'Doctrine\\\\DBAL\\\\Portability\\\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Connection.php',\n        'Doctrine\\\\DBAL\\\\Portability\\\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Statement.php',\n        'Doctrine\\\\DBAL\\\\Query\\\\Expression\\\\CompositeExpression' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/CompositeExpression.php',\n        'Doctrine\\\\DBAL\\\\Query\\\\Expression\\\\ExpressionBuilder' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php',\n        'Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php',\n        'Doctrine\\\\DBAL\\\\Query\\\\QueryException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php',\n        'Doctrine\\\\DBAL\\\\SQLParserUtils' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php',\n        'Doctrine\\\\DBAL\\\\SQLParserUtilsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\AbstractAsset' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\AbstractSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Column' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\ColumnDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ColumnDiff.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Comparator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Constraint' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\DB2SchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DB2SchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\DrizzleSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DrizzleSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\ForeignKeyConstraint' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Identifier' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Index' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\MySqlSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\OracleSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/OracleSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\PostgreSqlSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SQLAnywhereSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLAnywhereSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SQLServerSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Schema' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Schema.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SchemaConfig' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaConfig.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SchemaDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaDiff.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SchemaException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Sequence' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Sequence.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\SqliteSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\AbstractSchemaSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/AbstractSchemaSynchronizer.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\SchemaSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SchemaSynchronizer.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Synchronizer\\\\SingleDatabaseSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SingleDatabaseSynchronizer.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Table' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\TableDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\View' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/View.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\AbstractVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/AbstractVisitor.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\CreateSchemaSqlCollector' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/CreateSchemaSqlCollector.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\DropSchemaSqlCollector' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/DropSchemaSqlCollector.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\Graphviz' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Graphviz.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\NamespaceVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/NamespaceVisitor.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\RemoveNamespacedAssets' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/RemoveNamespacedAssets.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\SchemaDiffVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/SchemaDiffVisitor.php',\n        'Doctrine\\\\DBAL\\\\Schema\\\\Visitor\\\\Visitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Visitor.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\PoolingShardConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardConnection.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\PoolingShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardManager.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\SQLAzureFederationsSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureFederationsSynchronizer.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\SQLAzureShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureShardManager.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\SQLAzure\\\\Schema\\\\MultiTenantVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/Schema/MultiTenantVisitor.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\ShardChoser\\\\MultiTenantShardChoser' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/MultiTenantShardChoser.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\ShardChoser\\\\ShardChoser' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/ShardChoser.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\ShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardManager.php',\n        'Doctrine\\\\DBAL\\\\Sharding\\\\ShardingException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardingException.php',\n        'Doctrine\\\\DBAL\\\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Statement.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\ImportCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\ReservedWordsCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Command\\\\RunSqlCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\ConsoleRunner' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/ConsoleRunner.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Console\\\\Helper\\\\ConnectionHelper' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php',\n        'Doctrine\\\\DBAL\\\\Tools\\\\Dumper' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Dumper.php',\n        'Doctrine\\\\DBAL\\\\TransactionIsolationLevel' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\ArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\BigIntType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\BinaryType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\BlobType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\BooleanType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\ConversionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateImmutableType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateIntervalType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateIntervalType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateTimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeImmutableType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateTimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateTimeTzImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzImmutableType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateTimeTzType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DateType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\DecimalType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\FloatType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\GuidType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\IntegerType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\JsonArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\JsonType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\ObjectType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\PhpDateTimeMappingType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpDateTimeMappingType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\PhpIntegerMappingType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpIntegerMappingType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\SimpleArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\SmallIntType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\StringType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\TextType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\TimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeImmutableType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\TimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\Type' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\VarDateTimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeImmutableType.php',\n        'Doctrine\\\\DBAL\\\\Types\\\\VarDateTimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeType.php',\n        'Doctrine\\\\DBAL\\\\Version' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Version.php',\n        'Doctrine\\\\DBAL\\\\VersionAwarePlatformDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php',\n        'Doctrine\\\\Instantiator\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',\n        'Doctrine\\\\Instantiator\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php',\n        'Doctrine\\\\Instantiator\\\\Exception\\\\UnexpectedValueException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php',\n        'Doctrine\\\\Instantiator\\\\Instantiator' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php',\n        'Doctrine\\\\Instantiator\\\\InstantiatorInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php',\n        'Dotenv\\\\Dotenv' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Dotenv.php',\n        'Dotenv\\\\Environment\\\\AbstractVariables' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/AbstractVariables.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\AdapterInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/AdapterInterface.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\ApacheAdapter' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/ApacheAdapter.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\ArrayAdapter' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/ArrayAdapter.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\EnvConstAdapter' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/EnvConstAdapter.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\PutenvAdapter' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/PutenvAdapter.php',\n        'Dotenv\\\\Environment\\\\Adapter\\\\ServerConstAdapter' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/Adapter/ServerConstAdapter.php',\n        'Dotenv\\\\Environment\\\\DotenvFactory' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/DotenvFactory.php',\n        'Dotenv\\\\Environment\\\\DotenvVariables' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/DotenvVariables.php',\n        'Dotenv\\\\Environment\\\\FactoryInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/FactoryInterface.php',\n        'Dotenv\\\\Environment\\\\VariablesInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Environment/VariablesInterface.php',\n        'Dotenv\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ExceptionInterface.php',\n        'Dotenv\\\\Exception\\\\InvalidFileException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidFileException.php',\n        'Dotenv\\\\Exception\\\\InvalidPathException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/InvalidPathException.php',\n        'Dotenv\\\\Exception\\\\ValidationException' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Exception/ValidationException.php',\n        'Dotenv\\\\Lines' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Lines.php',\n        'Dotenv\\\\Loader' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Loader.php',\n        'Dotenv\\\\Parser' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Parser.php',\n        'Dotenv\\\\Regex\\\\Error' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Regex/Error.php',\n        'Dotenv\\\\Regex\\\\Regex' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Regex/Regex.php',\n        'Dotenv\\\\Regex\\\\Result' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Regex/Result.php',\n        'Dotenv\\\\Regex\\\\Success' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Regex/Success.php',\n        'Dotenv\\\\Validator' => __DIR__ . '/..' . '/vlucas/phpdotenv/src/Validator.php',\n        'Egulias\\\\EmailValidator\\\\EmailLexer' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailLexer.php',\n        'Egulias\\\\EmailValidator\\\\EmailParser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailParser.php',\n        'Egulias\\\\EmailValidator\\\\EmailValidator' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/EmailValidator.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\AtextAfterCFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\CRLFAtTheEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\CRLFX2' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRLFX2.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\CRNoLF' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CRNoLF.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\CharNotAllowed' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\CommaInDomain' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ConsecutiveAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ConsecutiveDot' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\DomainHyphened' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\DotAtEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\DotAtStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/DotAtStart.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingAT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingATEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingCTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingDomainLiteralClose' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\ExpectingQPair' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\InvalidEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\NoDNSRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\NoDomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\NoLocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\UnclosedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\UnclosedQuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php',\n        'Egulias\\\\EmailValidator\\\\Exception\\\\UnopenedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php',\n        'Egulias\\\\EmailValidator\\\\Parser\\\\DomainPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/DomainPart.php',\n        'Egulias\\\\EmailValidator\\\\Parser\\\\LocalPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/LocalPart.php',\n        'Egulias\\\\EmailValidator\\\\Parser\\\\Parser' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Parser/Parser.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\DNSCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\EmailValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/EmailValidation.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\Error\\\\RFCWarnings' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\Error\\\\SpoofEmail' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\Exception\\\\EmptyValidationList' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\MultipleErrors' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\MultipleValidationWithAnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\NoRFCWarningsValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\RFCValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/RFCValidation.php',\n        'Egulias\\\\EmailValidator\\\\Validation\\\\SpoofCheckValidation' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\AddressLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\CFWSNearAt' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\CFWSWithFWS' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\Comment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Comment.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\DeprecatedComment' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\DomainLiteral' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\DomainTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\EmailTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6BadChar' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6ColonEnd' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6ColonStart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6Deprecated' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6DoubleColon' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6GroupCount' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\IPV6MaxGroups' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\LabelTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\LocalTooLong' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\NoDNSMXRecord' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\ObsoleteDTEXT' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\QuotedPart' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedPart.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\QuotedString' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/QuotedString.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\TLD' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/TLD.php',\n        'Egulias\\\\EmailValidator\\\\Warning\\\\Warning' => __DIR__ . '/..' . '/egulias/email-validator/EmailValidator/Warning/Warning.php',\n        'Encore\\\\Admin\\\\Actions\\\\Action' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Action.php',\n        'Encore\\\\Admin\\\\Actions\\\\Authorizable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Authorizable.php',\n        'Encore\\\\Admin\\\\Actions\\\\BatchAction' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/BatchAction.php',\n        'Encore\\\\Admin\\\\Actions\\\\GridAction' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/GridAction.php',\n        'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Dialog' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Interactor/Dialog.php',\n        'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Form' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Interactor/Form.php',\n        'Encore\\\\Admin\\\\Actions\\\\Interactor\\\\Interactor' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Interactor/Interactor.php',\n        'Encore\\\\Admin\\\\Actions\\\\Response' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Response.php',\n        'Encore\\\\Admin\\\\Actions\\\\RowAction' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/RowAction.php',\n        'Encore\\\\Admin\\\\Actions\\\\SweatAlert2' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/SweatAlert2.php',\n        'Encore\\\\Admin\\\\Actions\\\\Toastr' => __DIR__ . '/..' . '/encore/laravel-admin/src/Actions/Toastr.php',\n        'Encore\\\\Admin\\\\Admin' => __DIR__ . '/..' . '/encore/laravel-admin/src/Admin.php',\n        'Encore\\\\Admin\\\\AdminServiceProvider' => __DIR__ . '/..' . '/encore/laravel-admin/src/AdminServiceProvider.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\AdminTablesSeeder' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/AdminTablesSeeder.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\Administrator' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/Administrator.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\HasPermissions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/HasPermissions.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\Menu' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/Menu.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\OperationLog' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/OperationLog.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\Permission' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/Permission.php',\n        'Encore\\\\Admin\\\\Auth\\\\Database\\\\Role' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Database/Role.php',\n        'Encore\\\\Admin\\\\Auth\\\\Permission' => __DIR__ . '/..' . '/encore/laravel-admin/src/Auth/Permission.php',\n        'Encore\\\\Admin\\\\Config\\\\Config' => __DIR__ . '/..' . '/laravel-admin-ext/config/src/Config.php',\n        'Encore\\\\Admin\\\\Config\\\\ConfigController' => __DIR__ . '/..' . '/laravel-admin-ext/config/src/ConfigController.php',\n        'Encore\\\\Admin\\\\Config\\\\ConfigModel' => __DIR__ . '/..' . '/laravel-admin-ext/config/src/ConfigModel.php',\n        'Encore\\\\Admin\\\\Config\\\\ConfigServiceProvider' => __DIR__ . '/..' . '/laravel-admin-ext/config/src/ConfigServiceProvider.php',\n        'Encore\\\\Admin\\\\Console\\\\ActionCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ActionCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\AdminCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/AdminCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\CreateUserCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/CreateUserCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\ExportSeedCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ExportSeedCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\ExtendCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ExtendCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\FormCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/FormCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\ImportCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ImportCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\InstallCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/InstallCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\MakeCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/MakeCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\MenuCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/MenuCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\MinifyCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/MinifyCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\PermissionCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/PermissionCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\PublishCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/PublishCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\ResetPasswordCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ResetPasswordCommand.php',\n        'Encore\\\\Admin\\\\Console\\\\ResourceGenerator' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/ResourceGenerator.php',\n        'Encore\\\\Admin\\\\Console\\\\UninstallCommand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Console/UninstallCommand.php',\n        'Encore\\\\Admin\\\\Controllers\\\\AdminController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/AdminController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\AuthController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/AuthController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\Dashboard' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/Dashboard.php',\n        'Encore\\\\Admin\\\\Controllers\\\\HandleController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/HandleController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\HasResourceActions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/HasResourceActions.php',\n        'Encore\\\\Admin\\\\Controllers\\\\LogController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/LogController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\MenuController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/MenuController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\ModelForm' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/ModelForm.php',\n        'Encore\\\\Admin\\\\Controllers\\\\PermissionController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/PermissionController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\RoleController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/RoleController.php',\n        'Encore\\\\Admin\\\\Controllers\\\\UserController' => __DIR__ . '/..' . '/encore/laravel-admin/src/Controllers/UserController.php',\n        'Encore\\\\Admin\\\\Exception\\\\Handler' => __DIR__ . '/..' . '/encore/laravel-admin/src/Exception/Handler.php',\n        'Encore\\\\Admin\\\\Extension' => __DIR__ . '/..' . '/encore/laravel-admin/src/Extension.php',\n        'Encore\\\\Admin\\\\Facades\\\\Admin' => __DIR__ . '/..' . '/encore/laravel-admin/src/Facades/Admin.php',\n        'Encore\\\\Admin\\\\Form' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form.php',\n        'Encore\\\\Admin\\\\Form\\\\Builder' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Builder.php',\n        'Encore\\\\Admin\\\\Form\\\\EmbeddedForm' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/EmbeddedForm.php',\n        'Encore\\\\Admin\\\\Form\\\\Field' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Button' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Button.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Captcha' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Captcha.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Checkbox' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Checkbox.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Color' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Color.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Currency' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Currency.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Date' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Date.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\DateRange' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/DateRange.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Datetime' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Datetime.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\DatetimeRange' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/DatetimeRange.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Decimal' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Decimal.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Display' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Display.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Divider' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Divider.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Editor' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Editor.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Email' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Email.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Embeds' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Embeds.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Fieldset' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Fieldset.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\File' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/File.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\HasMany' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/HasMany.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Hidden' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Hidden.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Html' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Html.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Icon' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Icon.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Id' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Id.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Image' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Image.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\ImageField' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/ImageField.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Ip' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Ip.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\KeyValue' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/KeyValue.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\ListField' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/ListField.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Listbox' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Listbox.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Map' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Map.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Mobile' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Mobile.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Month' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Month.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleFile' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/MultipleFile.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleImage' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/MultipleImage.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\MultipleSelect' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/MultipleSelect.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Nullable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Nullable.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Number' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Number.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Password' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Password.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\PlainInput' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/PlainInput.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Radio' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Radio.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Rate' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Rate.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Select' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Select.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Slider' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Slider.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\SwitchField' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/SwitchField.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Table' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Table.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Tags' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Tags.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Text' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Text.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Textarea' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Textarea.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Time' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Time.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\TimeRange' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/TimeRange.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Timezone' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Timezone.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\UploadField' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/UploadField.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Url' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Url.php',\n        'Encore\\\\Admin\\\\Form\\\\Field\\\\Year' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Field/Year.php',\n        'Encore\\\\Admin\\\\Form\\\\Footer' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Footer.php',\n        'Encore\\\\Admin\\\\Form\\\\HasHooks' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/HasHooks.php',\n        'Encore\\\\Admin\\\\Form\\\\NestedForm' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/NestedForm.php',\n        'Encore\\\\Admin\\\\Form\\\\Row' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Row.php',\n        'Encore\\\\Admin\\\\Form\\\\Tab' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Tab.php',\n        'Encore\\\\Admin\\\\Form\\\\Tools' => __DIR__ . '/..' . '/encore/laravel-admin/src/Form/Tools.php',\n        'Encore\\\\Admin\\\\Grid' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid.php',\n        'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Delete' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Actions/Delete.php',\n        'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Edit' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Actions/Edit.php',\n        'Encore\\\\Admin\\\\Grid\\\\Actions\\\\Show' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Actions/Show.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\CheckFilter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/CheckFilter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\Filter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/Filter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\HasHeader' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/HasHeader.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\Help' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/Help.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\InputFilter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/InputFilter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\RangeFilter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/RangeFilter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Column\\\\Sorter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Column/Sorter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\CanFixColumns' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/CanFixColumns.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\CanHidesColumns' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/CanHidesColumns.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasActions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasActions.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasElementNames' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasElementNames.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasFilter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasFilter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasFooter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasFooter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasHeader' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasHeader.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasHotKeys' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasHotKeys.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasQuickCreate' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasQuickCreate.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasQuickSearch' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasQuickSearch.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasTools' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasTools.php',\n        'Encore\\\\Admin\\\\Grid\\\\Concerns\\\\HasTotalRow' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Concerns/HasTotalRow.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\AbstractDisplayer' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/AbstractDisplayer.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Actions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Actions.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Badge' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Badge.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Button' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Button.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Carousel' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Carousel.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Checkbox' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Checkbox.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Copyable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Copyable.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Downloadable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Downloadable.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\DropdownActions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/DropdownActions.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Editable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Editable.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Expand' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Expand.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Image' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Image.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Label' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Label.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Link' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Link.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Modal' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Modal.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Orderable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Orderable.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Prefix' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Prefix.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\ProgressBar' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/ProgressBar.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\QRCode' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/QRCode.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Radio' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Radio.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\RowSelector' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/RowSelector.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Select' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Select.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Suffix' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Suffix.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\SwitchDisplay' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/SwitchDisplay.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\SwitchGroup' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/SwitchGroup.php',\n        'Encore\\\\Admin\\\\Grid\\\\Displayers\\\\Table' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Displayers/Table.php',\n        'Encore\\\\Admin\\\\Grid\\\\Exporter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Exporter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\AbstractExporter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Exporters/AbstractExporter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\CsvExporter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Exporters/CsvExporter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\ExcelExporter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Exporters/ExcelExporter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Exporters\\\\ExporterInterface' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Exporters/ExporterInterface.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\AbstractFilter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/AbstractFilter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Between' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Between.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Date' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Date.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Day' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Day.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\EndsWith' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/EndsWith.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Equal' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Equal.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Group' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Group.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Gt' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Gt.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Hidden' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Hidden.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Ilike' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Ilike.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\In' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/In.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Layout\\\\Column' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Layout/Column.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Layout\\\\Layout' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Layout/Layout.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Like' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Like.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Lt' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Lt.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Month' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Month.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\NotEqual' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/NotEqual.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\NotIn' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/NotIn.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Checkbox' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/Checkbox.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\DateTime' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/DateTime.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\MultipleSelect' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/MultipleSelect.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Presenter' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/Presenter.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Radio' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/Radio.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Select' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/Select.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Presenter\\\\Text' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Presenter/Text.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Scope' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Scope.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\StartsWith' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/StartsWith.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Where' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Where.php',\n        'Encore\\\\Admin\\\\Grid\\\\Filter\\\\Year' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Filter/Year.php',\n        'Encore\\\\Admin\\\\Grid\\\\Model' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Model.php',\n        'Encore\\\\Admin\\\\Grid\\\\Row' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Row.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\AbstractTool' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/AbstractTool.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchAction' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/BatchAction.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchActions' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/BatchActions.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\BatchDelete' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/BatchDelete.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\ColumnSelector' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/ColumnSelector.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\CreateButton' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/CreateButton.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\ExportButton' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/ExportButton.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\FilterButton' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/FilterButton.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\FixColumns' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/FixColumns.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Footer' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/Footer.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Header' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/Header.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\Paginator' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/Paginator.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\PerPageSelector' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/PerPageSelector.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\QuickCreate' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/QuickCreate.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\QuickSearch' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/QuickSearch.php',\n        'Encore\\\\Admin\\\\Grid\\\\Tools\\\\TotalRow' => __DIR__ . '/..' . '/encore/laravel-admin/src/Grid/Tools/TotalRow.php',\n        'Encore\\\\Admin\\\\Layout\\\\Buildable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Layout/Buildable.php',\n        'Encore\\\\Admin\\\\Layout\\\\Column' => __DIR__ . '/..' . '/encore/laravel-admin/src/Layout/Column.php',\n        'Encore\\\\Admin\\\\Layout\\\\Content' => __DIR__ . '/..' . '/encore/laravel-admin/src/Layout/Content.php',\n        'Encore\\\\Admin\\\\Layout\\\\Row' => __DIR__ . '/..' . '/encore/laravel-admin/src/Layout/Row.php',\n        'Encore\\\\Admin\\\\Middleware\\\\Authenticate' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/Authenticate.php',\n        'Encore\\\\Admin\\\\Middleware\\\\Bootstrap' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/Bootstrap.php',\n        'Encore\\\\Admin\\\\Middleware\\\\LogOperation' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/LogOperation.php',\n        'Encore\\\\Admin\\\\Middleware\\\\Permission' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/Permission.php',\n        'Encore\\\\Admin\\\\Middleware\\\\Pjax' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/Pjax.php',\n        'Encore\\\\Admin\\\\Middleware\\\\Session' => __DIR__ . '/..' . '/encore/laravel-admin/src/Middleware/Session.php',\n        'Encore\\\\Admin\\\\Show' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show.php',\n        'Encore\\\\Admin\\\\Show\\\\AbstractField' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/AbstractField.php',\n        'Encore\\\\Admin\\\\Show\\\\Divider' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/Divider.php',\n        'Encore\\\\Admin\\\\Show\\\\Field' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/Field.php',\n        'Encore\\\\Admin\\\\Show\\\\Panel' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/Panel.php',\n        'Encore\\\\Admin\\\\Show\\\\Relation' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/Relation.php',\n        'Encore\\\\Admin\\\\Show\\\\Tools' => __DIR__ . '/..' . '/encore/laravel-admin/src/Show/Tools.php',\n        'Encore\\\\Admin\\\\Traits\\\\AdminBuilder' => __DIR__ . '/..' . '/encore/laravel-admin/src/Traits/AdminBuilder.php',\n        'Encore\\\\Admin\\\\Traits\\\\HasAssets' => __DIR__ . '/..' . '/encore/laravel-admin/src/Traits/HasAssets.php',\n        'Encore\\\\Admin\\\\Traits\\\\ModelTree' => __DIR__ . '/..' . '/encore/laravel-admin/src/Traits/ModelTree.php',\n        'Encore\\\\Admin\\\\Traits\\\\Resizable' => __DIR__ . '/..' . '/encore/laravel-admin/src/Traits/Resizable.php',\n        'Encore\\\\Admin\\\\Tree' => __DIR__ . '/..' . '/encore/laravel-admin/src/Tree.php',\n        'Encore\\\\Admin\\\\Tree\\\\Tools' => __DIR__ . '/..' . '/encore/laravel-admin/src/Tree/Tools.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Alert' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Alert.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Box' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Box.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Callout' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Callout.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Carousel' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Carousel.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Collapse' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Collapse.php',\n        'Encore\\\\Admin\\\\Widgets\\\\ContainsForms' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/ContainsForms.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Form' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Form.php',\n        'Encore\\\\Admin\\\\Widgets\\\\InfoBox' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/InfoBox.php',\n        'Encore\\\\Admin\\\\Widgets\\\\MultipleSteps' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/MultipleSteps.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Navbar' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Navbar.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Navbar\\\\Fullscreen' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Navbar/Fullscreen.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Navbar\\\\RefreshButton' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Navbar/RefreshButton.php',\n        'Encore\\\\Admin\\\\Widgets\\\\StepForm' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/StepForm.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Tab' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Tab.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Table' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Table.php',\n        'Encore\\\\Admin\\\\Widgets\\\\Widget' => __DIR__ . '/..' . '/encore/laravel-admin/src/Widgets/Widget.php',\n        'Encore\\\\LargeFileUpload\\\\Http\\\\Controllers\\\\LargeFileUploadController' => __DIR__ . '/..' . '/dianwoung/large-file-upload/src/Http/Controllers/LargeFileUploadController.php',\n        'Encore\\\\LargeFileUpload\\\\LargeFileField' => __DIR__ . '/..' . '/dianwoung/large-file-upload/src/LargeFileField.php',\n        'Encore\\\\LargeFileUpload\\\\LargeFileUpload' => __DIR__ . '/..' . '/dianwoung/large-file-upload/src/LargeFileUpload.php',\n        'Encore\\\\LargeFileUpload\\\\LargeFileUploadServiceProvider' => __DIR__ . '/..' . '/dianwoung/large-file-upload/src/LargeFileUploadServiceProvider.php',\n        'Faker\\\\Calculator\\\\Iban' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Iban.php',\n        'Faker\\\\Calculator\\\\Inn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Inn.php',\n        'Faker\\\\Calculator\\\\Luhn' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/Luhn.php',\n        'Faker\\\\Calculator\\\\TCNo' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Calculator/TCNo.php',\n        'Faker\\\\DefaultGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/DefaultGenerator.php',\n        'Faker\\\\Documentor' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Documentor.php',\n        'Faker\\\\Factory' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Factory.php',\n        'Faker\\\\Generator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Generator.php',\n        'Faker\\\\Guesser\\\\Name' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Guesser/Name.php',\n        'Faker\\\\ORM\\\\CakePHP\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\CakePHP\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/EntityPopulator.php',\n        'Faker\\\\ORM\\\\CakePHP\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/CakePHP/Populator.php',\n        'Faker\\\\ORM\\\\Doctrine\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\Doctrine\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/EntityPopulator.php',\n        'Faker\\\\ORM\\\\Doctrine\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Doctrine/Populator.php',\n        'Faker\\\\ORM\\\\Mandango\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\Mandango\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/EntityPopulator.php',\n        'Faker\\\\ORM\\\\Mandango\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Mandango/Populator.php',\n        'Faker\\\\ORM\\\\Propel2\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\Propel2\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/EntityPopulator.php',\n        'Faker\\\\ORM\\\\Propel2\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel2/Populator.php',\n        'Faker\\\\ORM\\\\Propel\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\Propel\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/EntityPopulator.php',\n        'Faker\\\\ORM\\\\Propel\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Propel/Populator.php',\n        'Faker\\\\ORM\\\\Spot\\\\ColumnTypeGuesser' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/ColumnTypeGuesser.php',\n        'Faker\\\\ORM\\\\Spot\\\\EntityPopulator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/EntityPopulator.php',\n        'Faker\\\\ORM\\\\Spot\\\\Populator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ORM/Spot/Populator.php',\n        'Faker\\\\Provider\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Address.php',\n        'Faker\\\\Provider\\\\Barcode' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Barcode.php',\n        'Faker\\\\Provider\\\\Base' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Base.php',\n        'Faker\\\\Provider\\\\Biased' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Biased.php',\n        'Faker\\\\Provider\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Color.php',\n        'Faker\\\\Provider\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Company.php',\n        'Faker\\\\Provider\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/DateTime.php',\n        'Faker\\\\Provider\\\\File' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/File.php',\n        'Faker\\\\Provider\\\\HtmlLorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/HtmlLorem.php',\n        'Faker\\\\Provider\\\\Image' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Image.php',\n        'Faker\\\\Provider\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Internet.php',\n        'Faker\\\\Provider\\\\Lorem' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Lorem.php',\n        'Faker\\\\Provider\\\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Miscellaneous.php',\n        'Faker\\\\Provider\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Payment.php',\n        'Faker\\\\Provider\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Person.php',\n        'Faker\\\\Provider\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/PhoneNumber.php',\n        'Faker\\\\Provider\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Text.php',\n        'Faker\\\\Provider\\\\UserAgent' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/UserAgent.php',\n        'Faker\\\\Provider\\\\Uuid' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/Uuid.php',\n        'Faker\\\\Provider\\\\ar_JO\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Address.php',\n        'Faker\\\\Provider\\\\ar_JO\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Company.php',\n        'Faker\\\\Provider\\\\ar_JO\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Internet.php',\n        'Faker\\\\Provider\\\\ar_JO\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Person.php',\n        'Faker\\\\Provider\\\\ar_JO\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_JO/Text.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Address.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Color.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Company.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Internet.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Payment.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Person.php',\n        'Faker\\\\Provider\\\\ar_SA\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ar_SA/Text.php',\n        'Faker\\\\Provider\\\\at_AT\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/at_AT/Payment.php',\n        'Faker\\\\Provider\\\\bg_BG\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Internet.php',\n        'Faker\\\\Provider\\\\bg_BG\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Payment.php',\n        'Faker\\\\Provider\\\\bg_BG\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/Person.php',\n        'Faker\\\\Provider\\\\bg_BG\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bg_BG/PhoneNumber.php',\n        'Faker\\\\Provider\\\\bn_BD\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Address.php',\n        'Faker\\\\Provider\\\\bn_BD\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Company.php',\n        'Faker\\\\Provider\\\\bn_BD\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Person.php',\n        'Faker\\\\Provider\\\\bn_BD\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/PhoneNumber.php',\n        'Faker\\\\Provider\\\\bn_BD\\\\Utils' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/bn_BD/Utils.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Address.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Company.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/DateTime.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Internet.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Payment.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Person.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/PhoneNumber.php',\n        'Faker\\\\Provider\\\\cs_CZ\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/cs_CZ/Text.php',\n        'Faker\\\\Provider\\\\da_DK\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Address.php',\n        'Faker\\\\Provider\\\\da_DK\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Company.php',\n        'Faker\\\\Provider\\\\da_DK\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Internet.php',\n        'Faker\\\\Provider\\\\da_DK\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Payment.php',\n        'Faker\\\\Provider\\\\da_DK\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/Person.php',\n        'Faker\\\\Provider\\\\da_DK\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/da_DK/PhoneNumber.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Address.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Company.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Internet.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Payment.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Person.php',\n        'Faker\\\\Provider\\\\de_AT\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/PhoneNumber.php',\n        'Faker\\\\Provider\\\\de_AT\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_AT/Text.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Address.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Company.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Internet.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Payment.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Person.php',\n        'Faker\\\\Provider\\\\de_CH\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/PhoneNumber.php',\n        'Faker\\\\Provider\\\\de_CH\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_CH/Text.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Address.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Company.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Internet.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Payment.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Person.php',\n        'Faker\\\\Provider\\\\de_DE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\de_DE\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/de_DE/Text.php',\n        'Faker\\\\Provider\\\\el_CY\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Address.php',\n        'Faker\\\\Provider\\\\el_CY\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Company.php',\n        'Faker\\\\Provider\\\\el_CY\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Internet.php',\n        'Faker\\\\Provider\\\\el_CY\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Payment.php',\n        'Faker\\\\Provider\\\\el_CY\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/Person.php',\n        'Faker\\\\Provider\\\\el_CY\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_CY/PhoneNumber.php',\n        'Faker\\\\Provider\\\\el_GR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Address.php',\n        'Faker\\\\Provider\\\\el_GR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Company.php',\n        'Faker\\\\Provider\\\\el_GR\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Payment.php',\n        'Faker\\\\Provider\\\\el_GR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Person.php',\n        'Faker\\\\Provider\\\\el_GR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\el_GR\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/el_GR/Text.php',\n        'Faker\\\\Provider\\\\en_AU\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Address.php',\n        'Faker\\\\Provider\\\\en_AU\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/Internet.php',\n        'Faker\\\\Provider\\\\en_AU\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_AU/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_CA\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/Address.php',\n        'Faker\\\\Provider\\\\en_CA\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_CA/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_GB\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Address.php',\n        'Faker\\\\Provider\\\\en_GB\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Internet.php',\n        'Faker\\\\Provider\\\\en_GB\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Payment.php',\n        'Faker\\\\Provider\\\\en_GB\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/Person.php',\n        'Faker\\\\Provider\\\\en_GB\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_GB/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_HK\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Address.php',\n        'Faker\\\\Provider\\\\en_HK\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/Internet.php',\n        'Faker\\\\Provider\\\\en_HK\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_HK/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_IN\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Address.php',\n        'Faker\\\\Provider\\\\en_IN\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Internet.php',\n        'Faker\\\\Provider\\\\en_IN\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/Person.php',\n        'Faker\\\\Provider\\\\en_IN\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_IN/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_NG\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Address.php',\n        'Faker\\\\Provider\\\\en_NG\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Internet.php',\n        'Faker\\\\Provider\\\\en_NG\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/Person.php',\n        'Faker\\\\Provider\\\\en_NG\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NG/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_NZ\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Address.php',\n        'Faker\\\\Provider\\\\en_NZ\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/Internet.php',\n        'Faker\\\\Provider\\\\en_NZ\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_NZ/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_PH\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/Address.php',\n        'Faker\\\\Provider\\\\en_PH\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_PH/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_SG\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/Address.php',\n        'Faker\\\\Provider\\\\en_SG\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_SG/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_UG\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Address.php',\n        'Faker\\\\Provider\\\\en_UG\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Internet.php',\n        'Faker\\\\Provider\\\\en_UG\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/Person.php',\n        'Faker\\\\Provider\\\\en_UG\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_UG/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_US\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Address.php',\n        'Faker\\\\Provider\\\\en_US\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Company.php',\n        'Faker\\\\Provider\\\\en_US\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Payment.php',\n        'Faker\\\\Provider\\\\en_US\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Person.php',\n        'Faker\\\\Provider\\\\en_US\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/PhoneNumber.php',\n        'Faker\\\\Provider\\\\en_US\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_US/Text.php',\n        'Faker\\\\Provider\\\\en_ZA\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Address.php',\n        'Faker\\\\Provider\\\\en_ZA\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Company.php',\n        'Faker\\\\Provider\\\\en_ZA\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Internet.php',\n        'Faker\\\\Provider\\\\en_ZA\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/Person.php',\n        'Faker\\\\Provider\\\\en_ZA\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/en_ZA/PhoneNumber.php',\n        'Faker\\\\Provider\\\\es_AR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Address.php',\n        'Faker\\\\Provider\\\\es_AR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Company.php',\n        'Faker\\\\Provider\\\\es_AR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/Person.php',\n        'Faker\\\\Provider\\\\es_AR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_AR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Address.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Company.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Internet.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Payment.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Person.php',\n        'Faker\\\\Provider\\\\es_ES\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/PhoneNumber.php',\n        'Faker\\\\Provider\\\\es_ES\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_ES/Text.php',\n        'Faker\\\\Provider\\\\es_PE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Address.php',\n        'Faker\\\\Provider\\\\es_PE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Company.php',\n        'Faker\\\\Provider\\\\es_PE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/Person.php',\n        'Faker\\\\Provider\\\\es_PE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_PE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\es_VE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Address.php',\n        'Faker\\\\Provider\\\\es_VE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Company.php',\n        'Faker\\\\Provider\\\\es_VE\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Internet.php',\n        'Faker\\\\Provider\\\\es_VE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/Person.php',\n        'Faker\\\\Provider\\\\es_VE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/es_VE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Address.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Company.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Internet.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Person.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fa_IR\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fa_IR/Text.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Address.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Company.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Internet.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Payment.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/Person.php',\n        'Faker\\\\Provider\\\\fi_FI\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fi_FI/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Address.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Company.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Internet.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Payment.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/Person.php',\n        'Faker\\\\Provider\\\\fr_BE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_BE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fr_CA\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Address.php',\n        'Faker\\\\Provider\\\\fr_CA\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Company.php',\n        'Faker\\\\Provider\\\\fr_CA\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CA/Person.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Address.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Company.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Internet.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Payment.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Person.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fr_CH\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_CH/Text.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Address.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Company.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Internet.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Payment.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Person.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\fr_FR\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/fr_FR/Text.php',\n        'Faker\\\\Provider\\\\he_IL\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Address.php',\n        'Faker\\\\Provider\\\\he_IL\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Company.php',\n        'Faker\\\\Provider\\\\he_IL\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Payment.php',\n        'Faker\\\\Provider\\\\he_IL\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/Person.php',\n        'Faker\\\\Provider\\\\he_IL\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/he_IL/PhoneNumber.php',\n        'Faker\\\\Provider\\\\hr_HR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Address.php',\n        'Faker\\\\Provider\\\\hr_HR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Company.php',\n        'Faker\\\\Provider\\\\hr_HR\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Payment.php',\n        'Faker\\\\Provider\\\\hr_HR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/Person.php',\n        'Faker\\\\Provider\\\\hr_HR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hr_HR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Address.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Company.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Payment.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Person.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/PhoneNumber.php',\n        'Faker\\\\Provider\\\\hu_HU\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hu_HU/Text.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Address.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Color.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Company.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Internet.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/Person.php',\n        'Faker\\\\Provider\\\\hy_AM\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/hy_AM/PhoneNumber.php',\n        'Faker\\\\Provider\\\\id_ID\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Address.php',\n        'Faker\\\\Provider\\\\id_ID\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Company.php',\n        'Faker\\\\Provider\\\\id_ID\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Internet.php',\n        'Faker\\\\Provider\\\\id_ID\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/Person.php',\n        'Faker\\\\Provider\\\\id_ID\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/id_ID/PhoneNumber.php',\n        'Faker\\\\Provider\\\\is_IS\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Address.php',\n        'Faker\\\\Provider\\\\is_IS\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Company.php',\n        'Faker\\\\Provider\\\\is_IS\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Internet.php',\n        'Faker\\\\Provider\\\\is_IS\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Payment.php',\n        'Faker\\\\Provider\\\\is_IS\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/Person.php',\n        'Faker\\\\Provider\\\\is_IS\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/is_IS/PhoneNumber.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Address.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Company.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Internet.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Payment.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Person.php',\n        'Faker\\\\Provider\\\\it_CH\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/PhoneNumber.php',\n        'Faker\\\\Provider\\\\it_CH\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_CH/Text.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Address.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Company.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Internet.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Payment.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Person.php',\n        'Faker\\\\Provider\\\\it_IT\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/PhoneNumber.php',\n        'Faker\\\\Provider\\\\it_IT\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/it_IT/Text.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Address.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Company.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Internet.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Person.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ja_JP\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ja_JP/Text.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Address.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Color.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Company.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/DateTime.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Internet.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Payment.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Person.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ka_GE\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ka_GE/Text.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Address.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Color.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Company.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Internet.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Payment.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Person.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/PhoneNumber.php',\n        'Faker\\\\Provider\\\\kk_KZ\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/kk_KZ/Text.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Address.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Company.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Internet.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Person.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ko_KR\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ko_KR/Text.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Address.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Company.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Internet.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Payment.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/Person.php',\n        'Faker\\\\Provider\\\\lt_LT\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lt_LT/PhoneNumber.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Address.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Color.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Internet.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Payment.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/Person.php',\n        'Faker\\\\Provider\\\\lv_LV\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/lv_LV/PhoneNumber.php',\n        'Faker\\\\Provider\\\\me_ME\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Address.php',\n        'Faker\\\\Provider\\\\me_ME\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Company.php',\n        'Faker\\\\Provider\\\\me_ME\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Payment.php',\n        'Faker\\\\Provider\\\\me_ME\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/Person.php',\n        'Faker\\\\Provider\\\\me_ME\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/me_ME/PhoneNumber.php',\n        'Faker\\\\Provider\\\\mn_MN\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/Person.php',\n        'Faker\\\\Provider\\\\mn_MN\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/mn_MN/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Address.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Company.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\Miscellaneous' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Miscellaneous.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Payment.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/Person.php',\n        'Faker\\\\Provider\\\\ms_MY\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ms_MY/PhoneNumber.php',\n        'Faker\\\\Provider\\\\nb_NO\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Address.php',\n        'Faker\\\\Provider\\\\nb_NO\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Company.php',\n        'Faker\\\\Provider\\\\nb_NO\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Payment.php',\n        'Faker\\\\Provider\\\\nb_NO\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/Person.php',\n        'Faker\\\\Provider\\\\nb_NO\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nb_NO/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ne_NP\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Address.php',\n        'Faker\\\\Provider\\\\ne_NP\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Internet.php',\n        'Faker\\\\Provider\\\\ne_NP\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/Person.php',\n        'Faker\\\\Provider\\\\ne_NP\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ne_NP/PhoneNumber.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Address.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Company.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Internet.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Payment.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/Person.php',\n        'Faker\\\\Provider\\\\nl_BE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_BE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Address.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Color.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Company.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Internet.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Payment.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Person.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/PhoneNumber.php',\n        'Faker\\\\Provider\\\\nl_NL\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/nl_NL/Text.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Address.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Company.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Internet.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Payment.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Person.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/PhoneNumber.php',\n        'Faker\\\\Provider\\\\pl_PL\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pl_PL/Text.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Address.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Company.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Internet.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Payment.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/Person.php',\n        'Faker\\\\Provider\\\\pt_BR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_BR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\pt_PT\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Address.php',\n        'Faker\\\\Provider\\\\pt_PT\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Payment.php',\n        'Faker\\\\Provider\\\\pt_PT\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/Person.php',\n        'Faker\\\\Provider\\\\pt_PT\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/pt_PT/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ro_MD\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Address.php',\n        'Faker\\\\Provider\\\\ro_MD\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Payment.php',\n        'Faker\\\\Provider\\\\ro_MD\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Person.php',\n        'Faker\\\\Provider\\\\ro_MD\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ro_MD\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_MD/Text.php',\n        'Faker\\\\Provider\\\\ro_RO\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Address.php',\n        'Faker\\\\Provider\\\\ro_RO\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Payment.php',\n        'Faker\\\\Provider\\\\ro_RO\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Person.php',\n        'Faker\\\\Provider\\\\ro_RO\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ro_RO\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ro_RO/Text.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Address.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Color.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Company.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Internet.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Payment.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Person.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/PhoneNumber.php',\n        'Faker\\\\Provider\\\\ru_RU\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/ru_RU/Text.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Address.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Company.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Internet.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Payment.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/Person.php',\n        'Faker\\\\Provider\\\\sk_SK\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sk_SK/PhoneNumber.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Address.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Company.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Internet.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Payment.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/Person.php',\n        'Faker\\\\Provider\\\\sl_SI\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sl_SI/PhoneNumber.php',\n        'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Address.php',\n        'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Payment.php',\n        'Faker\\\\Provider\\\\sr_Cyrl_RS\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Cyrl_RS/Person.php',\n        'Faker\\\\Provider\\\\sr_Latn_RS\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Address.php',\n        'Faker\\\\Provider\\\\sr_Latn_RS\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Payment.php',\n        'Faker\\\\Provider\\\\sr_Latn_RS\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_Latn_RS/Person.php',\n        'Faker\\\\Provider\\\\sr_RS\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Address.php',\n        'Faker\\\\Provider\\\\sr_RS\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Payment.php',\n        'Faker\\\\Provider\\\\sr_RS\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sr_RS/Person.php',\n        'Faker\\\\Provider\\\\sv_SE\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Address.php',\n        'Faker\\\\Provider\\\\sv_SE\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Company.php',\n        'Faker\\\\Provider\\\\sv_SE\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Payment.php',\n        'Faker\\\\Provider\\\\sv_SE\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/Person.php',\n        'Faker\\\\Provider\\\\sv_SE\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/sv_SE/PhoneNumber.php',\n        'Faker\\\\Provider\\\\th_TH\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Address.php',\n        'Faker\\\\Provider\\\\th_TH\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Color.php',\n        'Faker\\\\Provider\\\\th_TH\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Company.php',\n        'Faker\\\\Provider\\\\th_TH\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Internet.php',\n        'Faker\\\\Provider\\\\th_TH\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/Payment.php',\n        'Faker\\\\Provider\\\\th_TH\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/th_TH/PhoneNumber.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Address.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Color.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Company.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/DateTime.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Internet.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Payment.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/Person.php',\n        'Faker\\\\Provider\\\\tr_TR\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/tr_TR/PhoneNumber.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Address.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Color.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Company.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Internet.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Payment.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Person.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/PhoneNumber.php',\n        'Faker\\\\Provider\\\\uk_UA\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/uk_UA/Text.php',\n        'Faker\\\\Provider\\\\vi_VN\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Address.php',\n        'Faker\\\\Provider\\\\vi_VN\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Color.php',\n        'Faker\\\\Provider\\\\vi_VN\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Internet.php',\n        'Faker\\\\Provider\\\\vi_VN\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/Person.php',\n        'Faker\\\\Provider\\\\vi_VN\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/vi_VN/PhoneNumber.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Address.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Color.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Company.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/DateTime.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Internet.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Payment.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/Person.php',\n        'Faker\\\\Provider\\\\zh_CN\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_CN/PhoneNumber.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Address' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Address.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Color' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Color.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Company' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Company.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\DateTime' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/DateTime.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Internet' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Internet.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Payment' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Payment.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Person' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Person.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\PhoneNumber' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/PhoneNumber.php',\n        'Faker\\\\Provider\\\\zh_TW\\\\Text' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/Provider/zh_TW/Text.php',\n        'Faker\\\\UniqueGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/UniqueGenerator.php',\n        'Faker\\\\ValidGenerator' => __DIR__ . '/..' . '/fzaninotto/faker/src/Faker/ValidGenerator.php',\n        'Fideloper\\\\Proxy\\\\TrustProxies' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustProxies.php',\n        'Fideloper\\\\Proxy\\\\TrustedProxyServiceProvider' => __DIR__ . '/..' . '/fideloper/proxy/src/TrustedProxyServiceProvider.php',\n        'Hamcrest\\\\Arrays\\\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArray.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContaining.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayContainingInAnyOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInAnyOrder.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayContainingInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingInOrder.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayContainingKey' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKey.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayContainingKeyValuePair' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayContainingKeyValuePair.php',\n        'Hamcrest\\\\Arrays\\\\IsArrayWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/IsArrayWithSize.php',\n        'Hamcrest\\\\Arrays\\\\MatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/MatchingOnce.php',\n        'Hamcrest\\\\Arrays\\\\SeriesMatchingOnce' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Arrays/SeriesMatchingOnce.php',\n        'Hamcrest\\\\AssertionError' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/AssertionError.php',\n        'Hamcrest\\\\BaseDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseDescription.php',\n        'Hamcrest\\\\BaseMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/BaseMatcher.php',\n        'Hamcrest\\\\Collection\\\\IsEmptyTraversable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsEmptyTraversable.php',\n        'Hamcrest\\\\Collection\\\\IsTraversableWithSize' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Collection/IsTraversableWithSize.php',\n        'Hamcrest\\\\Core\\\\AllOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AllOf.php',\n        'Hamcrest\\\\Core\\\\AnyOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/AnyOf.php',\n        'Hamcrest\\\\Core\\\\CombinableMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/CombinableMatcher.php',\n        'Hamcrest\\\\Core\\\\DescribedAs' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/DescribedAs.php',\n        'Hamcrest\\\\Core\\\\Every' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Every.php',\n        'Hamcrest\\\\Core\\\\HasToString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/HasToString.php',\n        'Hamcrest\\\\Core\\\\Is' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Is.php',\n        'Hamcrest\\\\Core\\\\IsAnything' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsAnything.php',\n        'Hamcrest\\\\Core\\\\IsCollectionContaining' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsCollectionContaining.php',\n        'Hamcrest\\\\Core\\\\IsEqual' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsEqual.php',\n        'Hamcrest\\\\Core\\\\IsIdentical' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsIdentical.php',\n        'Hamcrest\\\\Core\\\\IsInstanceOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsInstanceOf.php',\n        'Hamcrest\\\\Core\\\\IsNot' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNot.php',\n        'Hamcrest\\\\Core\\\\IsNull' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsNull.php',\n        'Hamcrest\\\\Core\\\\IsSame' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsSame.php',\n        'Hamcrest\\\\Core\\\\IsTypeOf' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/IsTypeOf.php',\n        'Hamcrest\\\\Core\\\\Set' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/Set.php',\n        'Hamcrest\\\\Core\\\\ShortcutCombination' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Core/ShortcutCombination.php',\n        'Hamcrest\\\\Description' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Description.php',\n        'Hamcrest\\\\DiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/DiagnosingMatcher.php',\n        'Hamcrest\\\\FeatureMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/FeatureMatcher.php',\n        'Hamcrest\\\\Internal\\\\SelfDescribingValue' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Internal/SelfDescribingValue.php',\n        'Hamcrest\\\\Matcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matcher.php',\n        'Hamcrest\\\\MatcherAssert' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/MatcherAssert.php',\n        'Hamcrest\\\\Matchers' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Matchers.php',\n        'Hamcrest\\\\NullDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/NullDescription.php',\n        'Hamcrest\\\\Number\\\\IsCloseTo' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/IsCloseTo.php',\n        'Hamcrest\\\\Number\\\\OrderingComparison' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php',\n        'Hamcrest\\\\SelfDescribing' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/SelfDescribing.php',\n        'Hamcrest\\\\StringDescription' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/StringDescription.php',\n        'Hamcrest\\\\Text\\\\IsEmptyString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEmptyString.php',\n        'Hamcrest\\\\Text\\\\IsEqualIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringCase.php',\n        'Hamcrest\\\\Text\\\\IsEqualIgnoringWhiteSpace' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/IsEqualIgnoringWhiteSpace.php',\n        'Hamcrest\\\\Text\\\\MatchesPattern' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/MatchesPattern.php',\n        'Hamcrest\\\\Text\\\\StringContains' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContains.php',\n        'Hamcrest\\\\Text\\\\StringContainsIgnoringCase' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsIgnoringCase.php',\n        'Hamcrest\\\\Text\\\\StringContainsInOrder' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringContainsInOrder.php',\n        'Hamcrest\\\\Text\\\\StringEndsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringEndsWith.php',\n        'Hamcrest\\\\Text\\\\StringStartsWith' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/StringStartsWith.php',\n        'Hamcrest\\\\Text\\\\SubstringMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Text/SubstringMatcher.php',\n        'Hamcrest\\\\TypeSafeDiagnosingMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeDiagnosingMatcher.php',\n        'Hamcrest\\\\TypeSafeMatcher' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/TypeSafeMatcher.php',\n        'Hamcrest\\\\Type\\\\IsArray' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsArray.php',\n        'Hamcrest\\\\Type\\\\IsBoolean' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsBoolean.php',\n        'Hamcrest\\\\Type\\\\IsCallable' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsCallable.php',\n        'Hamcrest\\\\Type\\\\IsDouble' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsDouble.php',\n        'Hamcrest\\\\Type\\\\IsInteger' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsInteger.php',\n        'Hamcrest\\\\Type\\\\IsNumeric' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsNumeric.php',\n        'Hamcrest\\\\Type\\\\IsObject' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsObject.php',\n        'Hamcrest\\\\Type\\\\IsResource' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsResource.php',\n        'Hamcrest\\\\Type\\\\IsScalar' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsScalar.php',\n        'Hamcrest\\\\Type\\\\IsString' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Type/IsString.php',\n        'Hamcrest\\\\Util' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Util.php',\n        'Hamcrest\\\\Xml\\\\HasXPath' => __DIR__ . '/..' . '/hamcrest/hamcrest-php/hamcrest/Hamcrest/Xml/HasXPath.php',\n        'Ichynul\\\\Configx\\\\Configx' => __DIR__ . '/..' . '/ichynul/configx/src/Configx.php',\n        'Ichynul\\\\Configx\\\\ConfigxModel' => __DIR__ . '/..' . '/ichynul/configx/src/ConfigModel.php',\n        'Ichynul\\\\Configx\\\\ConfigxServiceProvider' => __DIR__ . '/..' . '/ichynul/configx/src/ConfigxServiceProvider.php',\n        'Ichynul\\\\Configx\\\\Field\\\\Outer' => __DIR__ . '/..' . '/ichynul/configx/src/Field/Outer.php',\n        'Ichynul\\\\Configx\\\\Field\\\\TestText' => __DIR__ . '/..' . '/ichynul/configx/src/Field/TestText.php',\n        'Ichynul\\\\Configx\\\\FormWgt' => __DIR__ . '/..' . '/ichynul/configx/src/FormWgt.php',\n        'Ichynul\\\\Configx\\\\Http\\\\Controllers\\\\ConfigxController' => __DIR__ . '/..' . '/ichynul/configx/src/Http/Controllers/ConfigxController.php',\n        'Ichynul\\\\Configx\\\\Tools\\\\Builder' => __DIR__ . '/..' . '/ichynul/configx/src/Tools/Builder.php',\n        'Ichynul\\\\Configx\\\\Tools\\\\Displayer' => __DIR__ . '/..' . '/ichynul/configx/src/Tools/Displayer.php',\n        'Ichynul\\\\Configx\\\\Tools\\\\Tool' => __DIR__ . '/..' . '/ichynul/configx/src/Tools/Tool.php',\n        'Ichynul\\\\Configx\\\\Tools\\\\Tree' => __DIR__ . '/..' . '/ichynul/configx/src/Tools/Tree.php',\n        'Ichynul\\\\Configx\\\\Tools\\\\Updater' => __DIR__ . '/..' . '/ichynul/configx/src/Tools/Updater.php',\n        'Ichynul\\\\RowTable\\\\Field\\\\Collect' => __DIR__ . '/..' . '/ichynul/row-table/src/Field/Collect.php',\n        'Ichynul\\\\RowTable\\\\Field\\\\CollectValidator' => __DIR__ . '/..' . '/ichynul/row-table/src/Field/CollectValidator.php',\n        'Ichynul\\\\RowTable\\\\Field\\\\Show' => __DIR__ . '/..' . '/ichynul/row-table/src/Field/Show.php',\n        'Ichynul\\\\RowTable\\\\Field\\\\TextSmall' => __DIR__ . '/..' . '/ichynul/row-table/src/Field/TextSmall.php',\n        'Ichynul\\\\RowTable\\\\FromTable' => __DIR__ . '/..' . '/ichynul/row-table/src/FromTable.php',\n        'Ichynul\\\\RowTable\\\\RowTableServiceProvider' => __DIR__ . '/..' . '/ichynul/row-table/src/RowTableServiceProvider.php',\n        'Ichynul\\\\RowTable\\\\Table' => __DIR__ . '/..' . '/ichynul/row-table/src/Table.php',\n        'Ichynul\\\\RowTable\\\\TableExtension' => __DIR__ . '/..' . '/ichynul/row-table/src/TableExtension.php',\n        'Ichynul\\\\RowTable\\\\TableRow' => __DIR__ . '/..' . '/ichynul/row-table/src/TableRow.php',\n        'Illuminate\\\\Auth\\\\Access\\\\AuthorizationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php',\n        'Illuminate\\\\Auth\\\\Access\\\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Gate.php',\n        'Illuminate\\\\Auth\\\\Access\\\\HandlesAuthorization' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php',\n        'Illuminate\\\\Auth\\\\Access\\\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Access/Response.php',\n        'Illuminate\\\\Auth\\\\AuthManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthManager.php',\n        'Illuminate\\\\Auth\\\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php',\n        'Illuminate\\\\Auth\\\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Authenticatable.php',\n        'Illuminate\\\\Auth\\\\AuthenticationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/AuthenticationException.php',\n        'Illuminate\\\\Auth\\\\Console\\\\AuthMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php',\n        'Illuminate\\\\Auth\\\\Console\\\\ClearResetsCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php',\n        'Illuminate\\\\Auth\\\\CreatesUserProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php',\n        'Illuminate\\\\Auth\\\\DatabaseUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php',\n        'Illuminate\\\\Auth\\\\EloquentUserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Attempting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Attempting.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Authenticated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Failed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Failed.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Lockout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Lockout.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Login' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Login.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Logout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Logout.php',\n        'Illuminate\\\\Auth\\\\Events\\\\OtherDeviceLogout' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/OtherDeviceLogout.php',\n        'Illuminate\\\\Auth\\\\Events\\\\PasswordReset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Registered' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Registered.php',\n        'Illuminate\\\\Auth\\\\Events\\\\Verified' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Events/Verified.php',\n        'Illuminate\\\\Auth\\\\GenericUser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GenericUser.php',\n        'Illuminate\\\\Auth\\\\GuardHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/GuardHelpers.php',\n        'Illuminate\\\\Auth\\\\Listeners\\\\SendEmailVerificationNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Listeners/SendEmailVerificationNotification.php',\n        'Illuminate\\\\Auth\\\\Middleware\\\\Authenticate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php',\n        'Illuminate\\\\Auth\\\\Middleware\\\\AuthenticateWithBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php',\n        'Illuminate\\\\Auth\\\\Middleware\\\\Authorize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php',\n        'Illuminate\\\\Auth\\\\Middleware\\\\EnsureEmailIsVerified' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php',\n        'Illuminate\\\\Auth\\\\MustVerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/MustVerifyEmail.php',\n        'Illuminate\\\\Auth\\\\Notifications\\\\ResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php',\n        'Illuminate\\\\Auth\\\\Notifications\\\\VerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\DatabaseTokenRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\PasswordBrokerManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\PasswordResetServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php',\n        'Illuminate\\\\Auth\\\\Passwords\\\\TokenRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php',\n        'Illuminate\\\\Auth\\\\Recaller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/Recaller.php',\n        'Illuminate\\\\Auth\\\\RequestGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/RequestGuard.php',\n        'Illuminate\\\\Auth\\\\SessionGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/SessionGuard.php',\n        'Illuminate\\\\Auth\\\\TokenGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Auth/TokenGuard.php',\n        'Illuminate\\\\Broadcasting\\\\BroadcastController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php',\n        'Illuminate\\\\Broadcasting\\\\BroadcastEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php',\n        'Illuminate\\\\Broadcasting\\\\BroadcastException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php',\n        'Illuminate\\\\Broadcasting\\\\BroadcastManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php',\n        'Illuminate\\\\Broadcasting\\\\BroadcastServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\LogBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\NullBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\PusherBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\RedisBroadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php',\n        'Illuminate\\\\Broadcasting\\\\Broadcasters\\\\UsePusherChannelConventions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/UsePusherChannelConventions.php',\n        'Illuminate\\\\Broadcasting\\\\Channel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/Channel.php',\n        'Illuminate\\\\Broadcasting\\\\InteractsWithSockets' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php',\n        'Illuminate\\\\Broadcasting\\\\PendingBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php',\n        'Illuminate\\\\Broadcasting\\\\PresenceChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php',\n        'Illuminate\\\\Broadcasting\\\\PrivateChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php',\n        'Illuminate\\\\Bus\\\\BusServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php',\n        'Illuminate\\\\Bus\\\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Dispatcher.php',\n        'Illuminate\\\\Bus\\\\Queueable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Bus/Queueable.php',\n        'Illuminate\\\\Cache\\\\ApcStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcStore.php',\n        'Illuminate\\\\Cache\\\\ApcWrapper' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ApcWrapper.php',\n        'Illuminate\\\\Cache\\\\ArrayStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/ArrayStore.php',\n        'Illuminate\\\\Cache\\\\CacheManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheManager.php',\n        'Illuminate\\\\Cache\\\\CacheServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php',\n        'Illuminate\\\\Cache\\\\Console\\\\CacheTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php',\n        'Illuminate\\\\Cache\\\\Console\\\\ClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php',\n        'Illuminate\\\\Cache\\\\Console\\\\ForgetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php',\n        'Illuminate\\\\Cache\\\\DatabaseStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/DatabaseStore.php',\n        'Illuminate\\\\Cache\\\\DynamoDbLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/DynamoDbLock.php',\n        'Illuminate\\\\Cache\\\\DynamoDbStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php',\n        'Illuminate\\\\Cache\\\\Events\\\\CacheEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php',\n        'Illuminate\\\\Cache\\\\Events\\\\CacheHit' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php',\n        'Illuminate\\\\Cache\\\\Events\\\\CacheMissed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php',\n        'Illuminate\\\\Cache\\\\Events\\\\KeyForgotten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php',\n        'Illuminate\\\\Cache\\\\Events\\\\KeyWritten' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php',\n        'Illuminate\\\\Cache\\\\FileStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/FileStore.php',\n        'Illuminate\\\\Cache\\\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Lock.php',\n        'Illuminate\\\\Cache\\\\LuaScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/LuaScripts.php',\n        'Illuminate\\\\Cache\\\\MemcachedConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php',\n        'Illuminate\\\\Cache\\\\MemcachedLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedLock.php',\n        'Illuminate\\\\Cache\\\\MemcachedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/MemcachedStore.php',\n        'Illuminate\\\\Cache\\\\NullStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/NullStore.php',\n        'Illuminate\\\\Cache\\\\RateLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RateLimiter.php',\n        'Illuminate\\\\Cache\\\\RedisLock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisLock.php',\n        'Illuminate\\\\Cache\\\\RedisStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisStore.php',\n        'Illuminate\\\\Cache\\\\RedisTaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php',\n        'Illuminate\\\\Cache\\\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/Repository.php',\n        'Illuminate\\\\Cache\\\\RetrievesMultipleKeys' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php',\n        'Illuminate\\\\Cache\\\\TagSet' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TagSet.php',\n        'Illuminate\\\\Cache\\\\TaggableStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggableStore.php',\n        'Illuminate\\\\Cache\\\\TaggedCache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cache/TaggedCache.php',\n        'Illuminate\\\\Config\\\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Config/Repository.php',\n        'Illuminate\\\\Console\\\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Application.php',\n        'Illuminate\\\\Console\\\\Command' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Command.php',\n        'Illuminate\\\\Console\\\\ConfirmableTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php',\n        'Illuminate\\\\Console\\\\DetectsApplicationNamespace' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php',\n        'Illuminate\\\\Console\\\\Events\\\\ArtisanStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php',\n        'Illuminate\\\\Console\\\\Events\\\\CommandFinished' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php',\n        'Illuminate\\\\Console\\\\Events\\\\CommandStarting' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php',\n        'Illuminate\\\\Console\\\\GeneratorCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/GeneratorCommand.php',\n        'Illuminate\\\\Console\\\\OutputStyle' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/OutputStyle.php',\n        'Illuminate\\\\Console\\\\Parser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Parser.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\CacheEventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\CacheSchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\CallbackEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\CommandBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Event.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\EventMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\ManagesFrequencies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\Schedule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\ScheduleFinishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\ScheduleRunCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php',\n        'Illuminate\\\\Console\\\\Scheduling\\\\SchedulingMutex' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php',\n        'Illuminate\\\\Container\\\\BoundMethod' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/BoundMethod.php',\n        'Illuminate\\\\Container\\\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/Container.php',\n        'Illuminate\\\\Container\\\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php',\n        'Illuminate\\\\Container\\\\EntryNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php',\n        'Illuminate\\\\Container\\\\RewindableGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Container/RewindableGenerator.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\Authenticatable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\CanResetPassword' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\Guard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\MustVerifyEmail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\PasswordBroker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\PasswordBrokerFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\StatefulGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\SupportsBasicAuth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php',\n        'Illuminate\\\\Contracts\\\\Auth\\\\UserProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php',\n        'Illuminate\\\\Contracts\\\\Broadcasting\\\\Broadcaster' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php',\n        'Illuminate\\\\Contracts\\\\Broadcasting\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php',\n        'Illuminate\\\\Contracts\\\\Broadcasting\\\\ShouldBroadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php',\n        'Illuminate\\\\Contracts\\\\Broadcasting\\\\ShouldBroadcastNow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php',\n        'Illuminate\\\\Contracts\\\\Bus\\\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php',\n        'Illuminate\\\\Contracts\\\\Bus\\\\QueueingDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\Lock' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\LockProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\LockTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php',\n        'Illuminate\\\\Contracts\\\\Cache\\\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cache/Store.php',\n        'Illuminate\\\\Contracts\\\\Config\\\\Repository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Config/Repository.php',\n        'Illuminate\\\\Contracts\\\\Console\\\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Application.php',\n        'Illuminate\\\\Contracts\\\\Console\\\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php',\n        'Illuminate\\\\Contracts\\\\Container\\\\BindingResolutionException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php',\n        'Illuminate\\\\Contracts\\\\Container\\\\Container' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/Container.php',\n        'Illuminate\\\\Contracts\\\\Container\\\\ContextualBindingBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php',\n        'Illuminate\\\\Contracts\\\\Cookie\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php',\n        'Illuminate\\\\Contracts\\\\Cookie\\\\QueueingFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php',\n        'Illuminate\\\\Contracts\\\\Database\\\\Events\\\\MigrationEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Database/Events/MigrationEvent.php',\n        'Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php',\n        'Illuminate\\\\Contracts\\\\Debug\\\\ExceptionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php',\n        'Illuminate\\\\Contracts\\\\Encryption\\\\DecryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php',\n        'Illuminate\\\\Contracts\\\\Encryption\\\\EncryptException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php',\n        'Illuminate\\\\Contracts\\\\Encryption\\\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php',\n        'Illuminate\\\\Contracts\\\\Events\\\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php',\n        'Illuminate\\\\Contracts\\\\Filesystem\\\\Cloud' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php',\n        'Illuminate\\\\Contracts\\\\Filesystem\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php',\n        'Illuminate\\\\Contracts\\\\Filesystem\\\\FileExistsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileExistsException.php',\n        'Illuminate\\\\Contracts\\\\Filesystem\\\\FileNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php',\n        'Illuminate\\\\Contracts\\\\Filesystem\\\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php',\n        'Illuminate\\\\Contracts\\\\Foundation\\\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php',\n        'Illuminate\\\\Contracts\\\\Hashing\\\\Hasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php',\n        'Illuminate\\\\Contracts\\\\Http\\\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php',\n        'Illuminate\\\\Contracts\\\\Mail\\\\MailQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php',\n        'Illuminate\\\\Contracts\\\\Mail\\\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php',\n        'Illuminate\\\\Contracts\\\\Mail\\\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php',\n        'Illuminate\\\\Contracts\\\\Notifications\\\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php',\n        'Illuminate\\\\Contracts\\\\Notifications\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php',\n        'Illuminate\\\\Contracts\\\\Pagination\\\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php',\n        'Illuminate\\\\Contracts\\\\Pagination\\\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php',\n        'Illuminate\\\\Contracts\\\\Pipeline\\\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php',\n        'Illuminate\\\\Contracts\\\\Pipeline\\\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\EntityNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\EntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Job.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\Monitor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\QueueableCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\QueueableEntity' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php',\n        'Illuminate\\\\Contracts\\\\Queue\\\\ShouldQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php',\n        'Illuminate\\\\Contracts\\\\Redis\\\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php',\n        'Illuminate\\\\Contracts\\\\Redis\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php',\n        'Illuminate\\\\Contracts\\\\Redis\\\\LimiterTimeoutException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php',\n        'Illuminate\\\\Contracts\\\\Routing\\\\BindingRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php',\n        'Illuminate\\\\Contracts\\\\Routing\\\\Registrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php',\n        'Illuminate\\\\Contracts\\\\Routing\\\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php',\n        'Illuminate\\\\Contracts\\\\Routing\\\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php',\n        'Illuminate\\\\Contracts\\\\Routing\\\\UrlRoutable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php',\n        'Illuminate\\\\Contracts\\\\Session\\\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Session/Session.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\Arrayable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\DeferrableProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/DeferrableProvider.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\Htmlable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\Jsonable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\MessageProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\Renderable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php',\n        'Illuminate\\\\Contracts\\\\Support\\\\Responsable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php',\n        'Illuminate\\\\Contracts\\\\Translation\\\\HasLocalePreference' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/HasLocalePreference.php',\n        'Illuminate\\\\Contracts\\\\Translation\\\\Loader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php',\n        'Illuminate\\\\Contracts\\\\Translation\\\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php',\n        'Illuminate\\\\Contracts\\\\Validation\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php',\n        'Illuminate\\\\Contracts\\\\Validation\\\\ImplicitRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php',\n        'Illuminate\\\\Contracts\\\\Validation\\\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php',\n        'Illuminate\\\\Contracts\\\\Validation\\\\ValidatesWhenResolved' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php',\n        'Illuminate\\\\Contracts\\\\Validation\\\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php',\n        'Illuminate\\\\Contracts\\\\View\\\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Engine.php',\n        'Illuminate\\\\Contracts\\\\View\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/Factory.php',\n        'Illuminate\\\\Contracts\\\\View\\\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Contracts/View/View.php',\n        'Illuminate\\\\Cookie\\\\CookieJar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieJar.php',\n        'Illuminate\\\\Cookie\\\\CookieServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php',\n        'Illuminate\\\\Cookie\\\\Middleware\\\\AddQueuedCookiesToResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php',\n        'Illuminate\\\\Cookie\\\\Middleware\\\\EncryptCookies' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php',\n        'Illuminate\\\\Database\\\\Capsule\\\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Capsule/Manager.php',\n        'Illuminate\\\\Database\\\\Concerns\\\\BuildsQueries' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php',\n        'Illuminate\\\\Database\\\\Concerns\\\\ManagesTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php',\n        'Illuminate\\\\Database\\\\ConfigurationUrlParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConfigurationUrlParser.php',\n        'Illuminate\\\\Database\\\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connection.php',\n        'Illuminate\\\\Database\\\\ConnectionInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionInterface.php',\n        'Illuminate\\\\Database\\\\ConnectionResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolver.php',\n        'Illuminate\\\\Database\\\\ConnectionResolverInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\ConnectionFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\Connector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/Connector.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\MySqlConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\PostgresConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\SQLiteConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php',\n        'Illuminate\\\\Database\\\\Connectors\\\\SqlServerConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php',\n        'Illuminate\\\\Database\\\\Console\\\\Factories\\\\FactoryMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\BaseCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\FreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\InstallCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\MigrateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\MigrateMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\RefreshCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\ResetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\RollbackCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\StatusCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Migrations\\\\TableGuesser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php',\n        'Illuminate\\\\Database\\\\Console\\\\Seeds\\\\SeedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php',\n        'Illuminate\\\\Database\\\\Console\\\\Seeds\\\\SeederMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php',\n        'Illuminate\\\\Database\\\\DatabaseManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseManager.php',\n        'Illuminate\\\\Database\\\\DatabaseServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php',\n        'Illuminate\\\\Database\\\\DetectsDeadlocks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php',\n        'Illuminate\\\\Database\\\\DetectsLostConnections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\GuardsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasGlobalScopes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HasTimestamps' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\HidesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Concerns\\\\QueriesRelationships' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\FactoryBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\HigherOrderBuilderProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/HigherOrderBuilderProxy.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\JsonEncodingException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\MassAssignmentException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Model' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Model.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\ModelNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\QueueEntityResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\RelationNotFoundException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\BelongsTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\BelongsToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\AsPivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\InteractsWithPivotTable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Concerns\\\\SupportsDefaultModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasManyThrough' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\HasOneThrough' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneThrough.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphOne' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphOneOrMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphPivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphTo' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\MorphToMany' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Pivot' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Relations\\\\Relation' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\Scope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\SoftDeletes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php',\n        'Illuminate\\\\Database\\\\Eloquent\\\\SoftDeletingScope' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php',\n        'Illuminate\\\\Database\\\\Events\\\\ConnectionEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php',\n        'Illuminate\\\\Database\\\\Events\\\\MigrationEnded' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/MigrationEnded.php',\n        'Illuminate\\\\Database\\\\Events\\\\MigrationEvent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php',\n        'Illuminate\\\\Database\\\\Events\\\\MigrationStarted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/MigrationStarted.php',\n        'Illuminate\\\\Database\\\\Events\\\\MigrationsEnded' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/MigrationsEnded.php',\n        'Illuminate\\\\Database\\\\Events\\\\MigrationsStarted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/MigrationsStarted.php',\n        'Illuminate\\\\Database\\\\Events\\\\QueryExecuted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php',\n        'Illuminate\\\\Database\\\\Events\\\\StatementPrepared' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php',\n        'Illuminate\\\\Database\\\\Events\\\\TransactionBeginning' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php',\n        'Illuminate\\\\Database\\\\Events\\\\TransactionCommitted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php',\n        'Illuminate\\\\Database\\\\Events\\\\TransactionRolledBack' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php',\n        'Illuminate\\\\Database\\\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Grammar.php',\n        'Illuminate\\\\Database\\\\MigrationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php',\n        'Illuminate\\\\Database\\\\Migrations\\\\DatabaseMigrationRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php',\n        'Illuminate\\\\Database\\\\Migrations\\\\Migration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migration.php',\n        'Illuminate\\\\Database\\\\Migrations\\\\MigrationCreator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php',\n        'Illuminate\\\\Database\\\\Migrations\\\\MigrationRepositoryInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php',\n        'Illuminate\\\\Database\\\\Migrations\\\\Migrator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php',\n        'Illuminate\\\\Database\\\\MySqlConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/MySqlConnection.php',\n        'Illuminate\\\\Database\\\\PostgresConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/PostgresConnection.php',\n        'Illuminate\\\\Database\\\\QueryException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/QueryException.php',\n        'Illuminate\\\\Database\\\\Query\\\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Builder.php',\n        'Illuminate\\\\Database\\\\Query\\\\Expression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Expression.php',\n        'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php',\n        'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php',\n        'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php',\n        'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php',\n        'Illuminate\\\\Database\\\\Query\\\\Grammars\\\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php',\n        'Illuminate\\\\Database\\\\Query\\\\JoinClause' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JoinClause.php',\n        'Illuminate\\\\Database\\\\Query\\\\JsonExpression' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php',\n        'Illuminate\\\\Database\\\\Query\\\\Processors\\\\MySqlProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php',\n        'Illuminate\\\\Database\\\\Query\\\\Processors\\\\PostgresProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php',\n        'Illuminate\\\\Database\\\\Query\\\\Processors\\\\Processor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php',\n        'Illuminate\\\\Database\\\\Query\\\\Processors\\\\SQLiteProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php',\n        'Illuminate\\\\Database\\\\Query\\\\Processors\\\\SqlServerProcessor' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php',\n        'Illuminate\\\\Database\\\\SQLiteConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SQLiteConnection.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Blueprint' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Builder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Builder.php',\n        'Illuminate\\\\Database\\\\Schema\\\\ColumnDefinition' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/ColumnDefinition.php',\n        'Illuminate\\\\Database\\\\Schema\\\\ForeignKeyDefinition' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\ChangeColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\Grammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\MySqlGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\PostgresGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\RenameColumn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\SQLiteGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php',\n        'Illuminate\\\\Database\\\\Schema\\\\Grammars\\\\SqlServerGrammar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php',\n        'Illuminate\\\\Database\\\\Schema\\\\MySqlBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php',\n        'Illuminate\\\\Database\\\\Schema\\\\PostgresBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php',\n        'Illuminate\\\\Database\\\\Schema\\\\SQLiteBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php',\n        'Illuminate\\\\Database\\\\Schema\\\\SqlServerBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php',\n        'Illuminate\\\\Database\\\\Seeder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/Seeder.php',\n        'Illuminate\\\\Database\\\\SqlServerConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Database/SqlServerConnection.php',\n        'Illuminate\\\\Encryption\\\\Encrypter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/Encrypter.php',\n        'Illuminate\\\\Encryption\\\\EncryptionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php',\n        'Illuminate\\\\Events\\\\CallQueuedListener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/CallQueuedListener.php',\n        'Illuminate\\\\Events\\\\Dispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/Dispatcher.php',\n        'Illuminate\\\\Events\\\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Events/EventServiceProvider.php',\n        'Illuminate\\\\Filesystem\\\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Cache.php',\n        'Illuminate\\\\Filesystem\\\\Filesystem' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/Filesystem.php',\n        'Illuminate\\\\Filesystem\\\\FilesystemAdapter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php',\n        'Illuminate\\\\Filesystem\\\\FilesystemManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php',\n        'Illuminate\\\\Filesystem\\\\FilesystemServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\AliasLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/AliasLoader.php',\n        'Illuminate\\\\Foundation\\\\Application' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Application.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\Access\\\\Authorizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\Access\\\\AuthorizesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\AuthenticatesUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\RedirectsUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\RegistersUsers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\ResetsPasswords' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\SendsPasswordResetEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\ThrottlesLogins' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\User' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/User.php',\n        'Illuminate\\\\Foundation\\\\Auth\\\\VerifiesEmails' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Auth/VerifiesEmails.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\BootProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\LoadConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\LoadEnvironmentVariables' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\RegisterFacades' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\RegisterProviders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php',\n        'Illuminate\\\\Foundation\\\\Bootstrap\\\\SetRequestForConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php',\n        'Illuminate\\\\Foundation\\\\Bus\\\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php',\n        'Illuminate\\\\Foundation\\\\Bus\\\\DispatchesJobs' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php',\n        'Illuminate\\\\Foundation\\\\Bus\\\\PendingChain' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php',\n        'Illuminate\\\\Foundation\\\\Bus\\\\PendingDispatch' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php',\n        'Illuminate\\\\Foundation\\\\ComposerScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\AppNameCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ChannelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ClearCompiledCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ConfigCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ConfigClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ConsoleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\DownCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EnvironmentCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EventCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventCacheCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EventClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventClearCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EventGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EventListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventListCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\EventMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ExceptionMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\JobMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\KeyGenerateCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ListenerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\MailMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ModelMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\NotificationMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ObserverMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\OptimizeClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeClearCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\OptimizeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\PackageDiscoverCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\PolicyMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\PresetCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Bootstrap' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\None' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Preset' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\React' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\Presets\\\\Vue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ProviderMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\QueuedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\RequestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ResourceMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\RouteCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\RouteClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\RouteListCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\RuleMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ServeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\StorageLinkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\TestMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\UpCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\VendorPublishCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ViewCacheCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php',\n        'Illuminate\\\\Foundation\\\\Console\\\\ViewClearCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php',\n        'Illuminate\\\\Foundation\\\\EnvironmentDetector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php',\n        'Illuminate\\\\Foundation\\\\Events\\\\DiscoverEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php',\n        'Illuminate\\\\Foundation\\\\Events\\\\Dispatchable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php',\n        'Illuminate\\\\Foundation\\\\Events\\\\LocaleUpdated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php',\n        'Illuminate\\\\Foundation\\\\Exceptions\\\\Handler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php',\n        'Illuminate\\\\Foundation\\\\Exceptions\\\\WhoopsHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Events\\\\RequestHandled' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Exceptions\\\\MaintenanceModeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\FormRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Kernel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\CheckForMaintenanceMode' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ConvertEmptyStringsToNull' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TrimStrings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ValidatePostSize' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php',\n        'Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\VerifyCsrfToken' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php',\n        'Illuminate\\\\Foundation\\\\Inspiring' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Inspiring.php',\n        'Illuminate\\\\Foundation\\\\Mix' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Mix.php',\n        'Illuminate\\\\Foundation\\\\PackageManifest' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/PackageManifest.php',\n        'Illuminate\\\\Foundation\\\\ProviderRepository' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php',\n        'Illuminate\\\\Foundation\\\\Providers\\\\ArtisanServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Providers\\\\ComposerServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Providers\\\\ConsoleSupportServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Providers\\\\FormRequestServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Providers\\\\FoundationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\AuthServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\EventServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Support\\\\Providers\\\\RouteServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Assert' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Assert.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithAuthentication' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithConsole' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithContainer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithExceptionHandling' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\InteractsWithSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\MakesHttpRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Concerns\\\\MocksApplicationServices' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\HasInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\SeeInOrder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\Constraints\\\\SoftDeletedInDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\DatabaseMigrations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\DatabaseTransactions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\PendingCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\RefreshDatabase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\RefreshDatabaseState' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\TestCase' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\TestResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\WithFaker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\WithoutEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php',\n        'Illuminate\\\\Foundation\\\\Testing\\\\WithoutMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php',\n        'Illuminate\\\\Foundation\\\\Validation\\\\ValidatesRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php',\n        'Illuminate\\\\Hashing\\\\AbstractHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php',\n        'Illuminate\\\\Hashing\\\\Argon2IdHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php',\n        'Illuminate\\\\Hashing\\\\ArgonHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php',\n        'Illuminate\\\\Hashing\\\\BcryptHasher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php',\n        'Illuminate\\\\Hashing\\\\HashManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashManager.php',\n        'Illuminate\\\\Hashing\\\\HashServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php',\n        'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithContentTypes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php',\n        'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithFlashData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php',\n        'Illuminate\\\\Http\\\\Concerns\\\\InteractsWithInput' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php',\n        'Illuminate\\\\Http\\\\Exceptions\\\\HttpResponseException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php',\n        'Illuminate\\\\Http\\\\Exceptions\\\\PostTooLargeException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php',\n        'Illuminate\\\\Http\\\\Exceptions\\\\ThrottleRequestsException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php',\n        'Illuminate\\\\Http\\\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/File.php',\n        'Illuminate\\\\Http\\\\FileHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/FileHelpers.php',\n        'Illuminate\\\\Http\\\\JsonResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/JsonResponse.php',\n        'Illuminate\\\\Http\\\\Middleware\\\\CheckResponseForModifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php',\n        'Illuminate\\\\Http\\\\Middleware\\\\FrameGuard' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php',\n        'Illuminate\\\\Http\\\\Middleware\\\\SetCacheHeaders' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php',\n        'Illuminate\\\\Http\\\\RedirectResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/RedirectResponse.php',\n        'Illuminate\\\\Http\\\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Request.php',\n        'Illuminate\\\\Http\\\\Resources\\\\CollectsResources' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php',\n        'Illuminate\\\\Http\\\\Resources\\\\ConditionallyLoadsAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php',\n        'Illuminate\\\\Http\\\\Resources\\\\DelegatesToResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\AnonymousResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\JsonResource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\PaginatedResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\Resource' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\ResourceCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php',\n        'Illuminate\\\\Http\\\\Resources\\\\Json\\\\ResourceResponse' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php',\n        'Illuminate\\\\Http\\\\Resources\\\\MergeValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php',\n        'Illuminate\\\\Http\\\\Resources\\\\MissingValue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php',\n        'Illuminate\\\\Http\\\\Resources\\\\PotentiallyMissing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php',\n        'Illuminate\\\\Http\\\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Response.php',\n        'Illuminate\\\\Http\\\\ResponseTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/ResponseTrait.php',\n        'Illuminate\\\\Http\\\\Testing\\\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/File.php',\n        'Illuminate\\\\Http\\\\Testing\\\\FileFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php',\n        'Illuminate\\\\Http\\\\Testing\\\\MimeType' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/Testing/MimeType.php',\n        'Illuminate\\\\Http\\\\UploadedFile' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Http/UploadedFile.php',\n        'Illuminate\\\\Log\\\\Events\\\\MessageLogged' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php',\n        'Illuminate\\\\Log\\\\LogManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogManager.php',\n        'Illuminate\\\\Log\\\\LogServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/LogServiceProvider.php',\n        'Illuminate\\\\Log\\\\Logger' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/Logger.php',\n        'Illuminate\\\\Log\\\\ParsesLogConfiguration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Log/ParsesLogConfiguration.php',\n        'Illuminate\\\\Mail\\\\Events\\\\MessageSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php',\n        'Illuminate\\\\Mail\\\\Events\\\\MessageSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php',\n        'Illuminate\\\\Mail\\\\MailServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php',\n        'Illuminate\\\\Mail\\\\Mailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailable.php',\n        'Illuminate\\\\Mail\\\\Mailer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Mailer.php',\n        'Illuminate\\\\Mail\\\\Markdown' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Markdown.php',\n        'Illuminate\\\\Mail\\\\Message' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Message.php',\n        'Illuminate\\\\Mail\\\\PendingMail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/PendingMail.php',\n        'Illuminate\\\\Mail\\\\SendQueuedMailable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php',\n        'Illuminate\\\\Mail\\\\TransportManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/TransportManager.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\ArrayTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\LogTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\MailgunTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\MandrillTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\SesTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\SparkPostTransport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php',\n        'Illuminate\\\\Mail\\\\Transport\\\\Transport' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Mail/Transport/Transport.php',\n        'Illuminate\\\\Notifications\\\\Action' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Action.php',\n        'Illuminate\\\\Notifications\\\\AnonymousNotifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php',\n        'Illuminate\\\\Notifications\\\\ChannelManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/ChannelManager.php',\n        'Illuminate\\\\Notifications\\\\Channels\\\\BroadcastChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php',\n        'Illuminate\\\\Notifications\\\\Channels\\\\DatabaseChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php',\n        'Illuminate\\\\Notifications\\\\Channels\\\\MailChannel' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php',\n        'Illuminate\\\\Notifications\\\\Console\\\\NotificationTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php',\n        'Illuminate\\\\Notifications\\\\DatabaseNotification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php',\n        'Illuminate\\\\Notifications\\\\DatabaseNotificationCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php',\n        'Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php',\n        'Illuminate\\\\Notifications\\\\Events\\\\NotificationFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php',\n        'Illuminate\\\\Notifications\\\\Events\\\\NotificationSending' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php',\n        'Illuminate\\\\Notifications\\\\Events\\\\NotificationSent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php',\n        'Illuminate\\\\Notifications\\\\HasDatabaseNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php',\n        'Illuminate\\\\Notifications\\\\Messages\\\\BroadcastMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php',\n        'Illuminate\\\\Notifications\\\\Messages\\\\DatabaseMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php',\n        'Illuminate\\\\Notifications\\\\Messages\\\\MailMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php',\n        'Illuminate\\\\Notifications\\\\Messages\\\\SimpleMessage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php',\n        'Illuminate\\\\Notifications\\\\Notifiable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notifiable.php',\n        'Illuminate\\\\Notifications\\\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/Notification.php',\n        'Illuminate\\\\Notifications\\\\NotificationSender' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationSender.php',\n        'Illuminate\\\\Notifications\\\\NotificationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php',\n        'Illuminate\\\\Notifications\\\\RoutesNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php',\n        'Illuminate\\\\Notifications\\\\SendQueuedNotifications' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php',\n        'Illuminate\\\\Pagination\\\\AbstractPaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php',\n        'Illuminate\\\\Pagination\\\\LengthAwarePaginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php',\n        'Illuminate\\\\Pagination\\\\PaginationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php',\n        'Illuminate\\\\Pagination\\\\Paginator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/Paginator.php',\n        'Illuminate\\\\Pagination\\\\UrlWindow' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pagination/UrlWindow.php',\n        'Illuminate\\\\Pipeline\\\\Hub' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Hub.php',\n        'Illuminate\\\\Pipeline\\\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/Pipeline.php',\n        'Illuminate\\\\Pipeline\\\\PipelineServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php',\n        'Illuminate\\\\Queue\\\\BeanstalkdQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php',\n        'Illuminate\\\\Queue\\\\CallQueuedClosure' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedClosure.php',\n        'Illuminate\\\\Queue\\\\CallQueuedHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php',\n        'Illuminate\\\\Queue\\\\Capsule\\\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\BeanstalkdConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\ConnectorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\DatabaseConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\NullConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\RedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\SqsConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php',\n        'Illuminate\\\\Queue\\\\Connectors\\\\SyncConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php',\n        'Illuminate\\\\Queue\\\\Console\\\\FailedTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\FlushFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\ForgetFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\ListFailedCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\ListenCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\RestartCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\RetryCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\TableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php',\n        'Illuminate\\\\Queue\\\\Console\\\\WorkCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php',\n        'Illuminate\\\\Queue\\\\DatabaseQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php',\n        'Illuminate\\\\Queue\\\\Events\\\\JobExceptionOccurred' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php',\n        'Illuminate\\\\Queue\\\\Events\\\\JobFailed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php',\n        'Illuminate\\\\Queue\\\\Events\\\\JobProcessed' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php',\n        'Illuminate\\\\Queue\\\\Events\\\\JobProcessing' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php',\n        'Illuminate\\\\Queue\\\\Events\\\\Looping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/Looping.php',\n        'Illuminate\\\\Queue\\\\Events\\\\WorkerStopping' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php',\n        'Illuminate\\\\Queue\\\\Failed\\\\DatabaseFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php',\n        'Illuminate\\\\Queue\\\\Failed\\\\FailedJobProviderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php',\n        'Illuminate\\\\Queue\\\\Failed\\\\NullFailedJobProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php',\n        'Illuminate\\\\Queue\\\\InteractsWithQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php',\n        'Illuminate\\\\Queue\\\\InvalidPayloadException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\BeanstalkdJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\DatabaseJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\DatabaseJobRecord' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\Job' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/Job.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\JobName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\RedisJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\SqsJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php',\n        'Illuminate\\\\Queue\\\\Jobs\\\\SyncJob' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php',\n        'Illuminate\\\\Queue\\\\Listener' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Listener.php',\n        'Illuminate\\\\Queue\\\\ListenerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ListenerOptions.php',\n        'Illuminate\\\\Queue\\\\LuaScripts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/LuaScripts.php',\n        'Illuminate\\\\Queue\\\\ManuallyFailedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php',\n        'Illuminate\\\\Queue\\\\MaxAttemptsExceededException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php',\n        'Illuminate\\\\Queue\\\\NullQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/NullQueue.php',\n        'Illuminate\\\\Queue\\\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Queue.php',\n        'Illuminate\\\\Queue\\\\QueueManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueManager.php',\n        'Illuminate\\\\Queue\\\\QueueServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php',\n        'Illuminate\\\\Queue\\\\RedisQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/RedisQueue.php',\n        'Illuminate\\\\Queue\\\\SerializableClosure' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializableClosure.php',\n        'Illuminate\\\\Queue\\\\SerializesAndRestoresModelIdentifiers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php',\n        'Illuminate\\\\Queue\\\\SerializesModels' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SerializesModels.php',\n        'Illuminate\\\\Queue\\\\SqsQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SqsQueue.php',\n        'Illuminate\\\\Queue\\\\SyncQueue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/SyncQueue.php',\n        'Illuminate\\\\Queue\\\\Worker' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/Worker.php',\n        'Illuminate\\\\Queue\\\\WorkerOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Queue/WorkerOptions.php',\n        'Illuminate\\\\Redis\\\\Connections\\\\Connection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/Connection.php',\n        'Illuminate\\\\Redis\\\\Connections\\\\PhpRedisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php',\n        'Illuminate\\\\Redis\\\\Connections\\\\PhpRedisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php',\n        'Illuminate\\\\Redis\\\\Connections\\\\PredisClusterConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php',\n        'Illuminate\\\\Redis\\\\Connections\\\\PredisConnection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php',\n        'Illuminate\\\\Redis\\\\Connectors\\\\PhpRedisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php',\n        'Illuminate\\\\Redis\\\\Connectors\\\\PredisConnector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php',\n        'Illuminate\\\\Redis\\\\Events\\\\CommandExecuted' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Events/CommandExecuted.php',\n        'Illuminate\\\\Redis\\\\Limiters\\\\ConcurrencyLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php',\n        'Illuminate\\\\Redis\\\\Limiters\\\\ConcurrencyLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php',\n        'Illuminate\\\\Redis\\\\Limiters\\\\DurationLimiter' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php',\n        'Illuminate\\\\Redis\\\\Limiters\\\\DurationLimiterBuilder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php',\n        'Illuminate\\\\Redis\\\\RedisManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisManager.php',\n        'Illuminate\\\\Redis\\\\RedisServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php',\n        'Illuminate\\\\Routing\\\\Console\\\\ControllerMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php',\n        'Illuminate\\\\Routing\\\\Console\\\\MiddlewareMakeCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php',\n        'Illuminate\\\\Routing\\\\Contracts\\\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php',\n        'Illuminate\\\\Routing\\\\Controller' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Controller.php',\n        'Illuminate\\\\Routing\\\\ControllerDispatcher' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php',\n        'Illuminate\\\\Routing\\\\ControllerMiddlewareOptions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php',\n        'Illuminate\\\\Routing\\\\Events\\\\RouteMatched' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php',\n        'Illuminate\\\\Routing\\\\Exceptions\\\\InvalidSignatureException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php',\n        'Illuminate\\\\Routing\\\\Exceptions\\\\UrlGenerationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php',\n        'Illuminate\\\\Routing\\\\ImplicitRouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php',\n        'Illuminate\\\\Routing\\\\Matching\\\\HostValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php',\n        'Illuminate\\\\Routing\\\\Matching\\\\MethodValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php',\n        'Illuminate\\\\Routing\\\\Matching\\\\SchemeValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php',\n        'Illuminate\\\\Routing\\\\Matching\\\\UriValidator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php',\n        'Illuminate\\\\Routing\\\\Matching\\\\ValidatorInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php',\n        'Illuminate\\\\Routing\\\\MiddlewareNameResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php',\n        'Illuminate\\\\Routing\\\\Middleware\\\\SubstituteBindings' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php',\n        'Illuminate\\\\Routing\\\\Middleware\\\\ThrottleRequests' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php',\n        'Illuminate\\\\Routing\\\\Middleware\\\\ThrottleRequestsWithRedis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php',\n        'Illuminate\\\\Routing\\\\Middleware\\\\ValidateSignature' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php',\n        'Illuminate\\\\Routing\\\\PendingResourceRegistration' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php',\n        'Illuminate\\\\Routing\\\\Pipeline' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Pipeline.php',\n        'Illuminate\\\\Routing\\\\RedirectController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RedirectController.php',\n        'Illuminate\\\\Routing\\\\Redirector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Redirector.php',\n        'Illuminate\\\\Routing\\\\ResourceRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php',\n        'Illuminate\\\\Routing\\\\ResponseFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ResponseFactory.php',\n        'Illuminate\\\\Routing\\\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Route.php',\n        'Illuminate\\\\Routing\\\\RouteAction' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteAction.php',\n        'Illuminate\\\\Routing\\\\RouteBinding' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteBinding.php',\n        'Illuminate\\\\Routing\\\\RouteCollection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCollection.php',\n        'Illuminate\\\\Routing\\\\RouteCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteCompiler.php',\n        'Illuminate\\\\Routing\\\\RouteDependencyResolverTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php',\n        'Illuminate\\\\Routing\\\\RouteFileRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php',\n        'Illuminate\\\\Routing\\\\RouteGroup' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteGroup.php',\n        'Illuminate\\\\Routing\\\\RouteParameterBinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php',\n        'Illuminate\\\\Routing\\\\RouteRegistrar' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php',\n        'Illuminate\\\\Routing\\\\RouteSignatureParameters' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php',\n        'Illuminate\\\\Routing\\\\RouteUrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php',\n        'Illuminate\\\\Routing\\\\Router' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/Router.php',\n        'Illuminate\\\\Routing\\\\RoutingServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php',\n        'Illuminate\\\\Routing\\\\SortedMiddleware' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php',\n        'Illuminate\\\\Routing\\\\UrlGenerator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/UrlGenerator.php',\n        'Illuminate\\\\Routing\\\\ViewController' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Routing/ViewController.php',\n        'Illuminate\\\\Session\\\\CacheBasedSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php',\n        'Illuminate\\\\Session\\\\Console\\\\SessionTableCommand' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php',\n        'Illuminate\\\\Session\\\\CookieSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php',\n        'Illuminate\\\\Session\\\\DatabaseSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php',\n        'Illuminate\\\\Session\\\\EncryptedStore' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/EncryptedStore.php',\n        'Illuminate\\\\Session\\\\ExistenceAwareInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php',\n        'Illuminate\\\\Session\\\\FileSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/FileSessionHandler.php',\n        'Illuminate\\\\Session\\\\Middleware\\\\AuthenticateSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php',\n        'Illuminate\\\\Session\\\\Middleware\\\\StartSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php',\n        'Illuminate\\\\Session\\\\NullSessionHandler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/NullSessionHandler.php',\n        'Illuminate\\\\Session\\\\SessionManager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionManager.php',\n        'Illuminate\\\\Session\\\\SessionServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php',\n        'Illuminate\\\\Session\\\\Store' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/Store.php',\n        'Illuminate\\\\Session\\\\TokenMismatchException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Session/TokenMismatchException.php',\n        'Illuminate\\\\Support\\\\AggregateServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php',\n        'Illuminate\\\\Support\\\\Arr' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Arr.php',\n        'Illuminate\\\\Support\\\\Carbon' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Carbon.php',\n        'Illuminate\\\\Support\\\\Collection' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Collection.php',\n        'Illuminate\\\\Support\\\\Composer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Composer.php',\n        'Illuminate\\\\Support\\\\ConfigurationUrlParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php',\n        'Illuminate\\\\Support\\\\DateFactory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/DateFactory.php',\n        'Illuminate\\\\Support\\\\Facades\\\\App' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/App.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Artisan' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Artisan.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Auth' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Auth.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Blade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Blade.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Broadcast' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Bus' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Bus.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Cache' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cache.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Config' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Config.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Cookie' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Cookie.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Crypt' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Crypt.php',\n        'Illuminate\\\\Support\\\\Facades\\\\DB' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/DB.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Date' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Date.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Event' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Event.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Facade' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Facade.php',\n        'Illuminate\\\\Support\\\\Facades\\\\File' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/File.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Gate' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Gate.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Hash' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Hash.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Input' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Input.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Lang' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Lang.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Log' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Log.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Mail' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Mail.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Notification' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Notification.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Password' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Password.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Queue' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Queue.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Redirect' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redirect.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Redis' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Redis.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Request' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Request.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Response' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Response.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Route' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Route.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Schema' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Schema.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Session' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Session.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Storage' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Storage.php',\n        'Illuminate\\\\Support\\\\Facades\\\\URL' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/URL.php',\n        'Illuminate\\\\Support\\\\Facades\\\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/Validator.php',\n        'Illuminate\\\\Support\\\\Facades\\\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Facades/View.php',\n        'Illuminate\\\\Support\\\\Fluent' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Fluent.php',\n        'Illuminate\\\\Support\\\\HigherOrderCollectionProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php',\n        'Illuminate\\\\Support\\\\HigherOrderTapProxy' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php',\n        'Illuminate\\\\Support\\\\HtmlString' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/HtmlString.php',\n        'Illuminate\\\\Support\\\\InteractsWithTime' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/InteractsWithTime.php',\n        'Illuminate\\\\Support\\\\Manager' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Manager.php',\n        'Illuminate\\\\Support\\\\MessageBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/MessageBag.php',\n        'Illuminate\\\\Support\\\\NamespacedItemResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php',\n        'Illuminate\\\\Support\\\\Optional' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Optional.php',\n        'Illuminate\\\\Support\\\\Pluralizer' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Pluralizer.php',\n        'Illuminate\\\\Support\\\\ProcessUtils' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ProcessUtils.php',\n        'Illuminate\\\\Support\\\\ServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ServiceProvider.php',\n        'Illuminate\\\\Support\\\\Str' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Str.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\BusFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\EventFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\MailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\NotificationFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\PendingMailFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php',\n        'Illuminate\\\\Support\\\\Testing\\\\Fakes\\\\QueueFake' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php',\n        'Illuminate\\\\Support\\\\Traits\\\\CapsuleManagerTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php',\n        'Illuminate\\\\Support\\\\Traits\\\\ForwardsCalls' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php',\n        'Illuminate\\\\Support\\\\Traits\\\\Localizable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Localizable.php',\n        'Illuminate\\\\Support\\\\Traits\\\\Macroable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Macroable.php',\n        'Illuminate\\\\Support\\\\Traits\\\\Tappable' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/Traits/Tappable.php',\n        'Illuminate\\\\Support\\\\ViewErrorBag' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/ViewErrorBag.php',\n        'Illuminate\\\\Translation\\\\ArrayLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/ArrayLoader.php',\n        'Illuminate\\\\Translation\\\\FileLoader' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/FileLoader.php',\n        'Illuminate\\\\Translation\\\\MessageSelector' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/MessageSelector.php',\n        'Illuminate\\\\Translation\\\\TranslationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php',\n        'Illuminate\\\\Translation\\\\Translator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Translation/Translator.php',\n        'Illuminate\\\\Validation\\\\ClosureValidationRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php',\n        'Illuminate\\\\Validation\\\\Concerns\\\\FormatsMessages' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php',\n        'Illuminate\\\\Validation\\\\Concerns\\\\ReplacesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php',\n        'Illuminate\\\\Validation\\\\Concerns\\\\ValidatesAttributes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php',\n        'Illuminate\\\\Validation\\\\DatabasePresenceVerifier' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php',\n        'Illuminate\\\\Validation\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Factory.php',\n        'Illuminate\\\\Validation\\\\PresenceVerifierInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php',\n        'Illuminate\\\\Validation\\\\Rule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rule.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\DatabaseRule' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\Dimensions' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\Exists' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Exists.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\In' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/In.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\NotIn' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\RequiredIf' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/RequiredIf.php',\n        'Illuminate\\\\Validation\\\\Rules\\\\Unique' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Rules/Unique.php',\n        'Illuminate\\\\Validation\\\\UnauthorizedException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php',\n        'Illuminate\\\\Validation\\\\ValidatesWhenResolvedTrait' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php',\n        'Illuminate\\\\Validation\\\\ValidationData' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationData.php',\n        'Illuminate\\\\Validation\\\\ValidationException' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationException.php',\n        'Illuminate\\\\Validation\\\\ValidationRuleParser' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php',\n        'Illuminate\\\\Validation\\\\ValidationServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php',\n        'Illuminate\\\\Validation\\\\Validator' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Validation/Validator.php',\n        'Illuminate\\\\View\\\\Compilers\\\\BladeCompiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Compiler' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Compiler.php',\n        'Illuminate\\\\View\\\\Compilers\\\\CompilerInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesAuthorizations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesComments' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesConditionals' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesEchos' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesErrors' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesErrors.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesHelpers' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesIncludes' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesInjections' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesJson' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesRawPhp' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php',\n        'Illuminate\\\\View\\\\Compilers\\\\Concerns\\\\CompilesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesComponents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesEvents' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesLayouts' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesLoops' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesStacks' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php',\n        'Illuminate\\\\View\\\\Concerns\\\\ManagesTranslations' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php',\n        'Illuminate\\\\View\\\\Engines\\\\CompilerEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php',\n        'Illuminate\\\\View\\\\Engines\\\\Engine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/Engine.php',\n        'Illuminate\\\\View\\\\Engines\\\\EngineResolver' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php',\n        'Illuminate\\\\View\\\\Engines\\\\FileEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/FileEngine.php',\n        'Illuminate\\\\View\\\\Engines\\\\PhpEngine' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php',\n        'Illuminate\\\\View\\\\Factory' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Factory.php',\n        'Illuminate\\\\View\\\\FileViewFinder' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/FileViewFinder.php',\n        'Illuminate\\\\View\\\\Middleware\\\\ShareErrorsFromSession' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php',\n        'Illuminate\\\\View\\\\View' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/View.php',\n        'Illuminate\\\\View\\\\ViewFinderInterface' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewFinderInterface.php',\n        'Illuminate\\\\View\\\\ViewName' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewName.php',\n        'Illuminate\\\\View\\\\ViewServiceProvider' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/View/ViewServiceProvider.php',\n        'JakubOnderka\\\\PhpConsoleColor\\\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/ConsoleColor.php',\n        'JakubOnderka\\\\PhpConsoleColor\\\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',\n        'JakubOnderka\\\\PhpConsoleHighlighter\\\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',\n        'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',\n        'Jxlwqq\\\\Simditor\\\\Editor' => __DIR__ . '/..' . '/jxlwqq/simditor/src/Editor.php',\n        'Jxlwqq\\\\Simditor\\\\SimditorExtension' => __DIR__ . '/..' . '/jxlwqq/simditor/src/SimditorExtension.php',\n        'Jxlwqq\\\\Simditor\\\\SimditorServiceProvider' => __DIR__ . '/..' . '/jxlwqq/simditor/src/SimditorServiceProvider.php',\n        'Laravel\\\\Tinker\\\\ClassAliasAutoloader' => __DIR__ . '/..' . '/laravel/tinker/src/ClassAliasAutoloader.php',\n        'Laravel\\\\Tinker\\\\Console\\\\TinkerCommand' => __DIR__ . '/..' . '/laravel/tinker/src/Console/TinkerCommand.php',\n        'Laravel\\\\Tinker\\\\TinkerCaster' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerCaster.php',\n        'Laravel\\\\Tinker\\\\TinkerServiceProvider' => __DIR__ . '/..' . '/laravel/tinker/src/TinkerServiceProvider.php',\n        'League\\\\Flysystem\\\\AdapterInterface' => __DIR__ . '/..' . '/league/flysystem/src/AdapterInterface.php',\n        'League\\\\Flysystem\\\\Adapter\\\\AbstractAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractAdapter.php',\n        'League\\\\Flysystem\\\\Adapter\\\\AbstractFtpAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/AbstractFtpAdapter.php',\n        'League\\\\Flysystem\\\\Adapter\\\\CanOverwriteFiles' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/CanOverwriteFiles.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Ftp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftp.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Ftpd' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Ftpd.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Local' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Local.php',\n        'League\\\\Flysystem\\\\Adapter\\\\NullAdapter' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/NullAdapter.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\NotSupportingVisibilityTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedCopyTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedReadingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php',\n        'League\\\\Flysystem\\\\Adapter\\\\Polyfill\\\\StreamedWritingTrait' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php',\n        'League\\\\Flysystem\\\\Adapter\\\\SynologyFtp' => __DIR__ . '/..' . '/league/flysystem/src/Adapter/SynologyFtp.php',\n        'League\\\\Flysystem\\\\Config' => __DIR__ . '/..' . '/league/flysystem/src/Config.php',\n        'League\\\\Flysystem\\\\ConfigAwareTrait' => __DIR__ . '/..' . '/league/flysystem/src/ConfigAwareTrait.php',\n        'League\\\\Flysystem\\\\Directory' => __DIR__ . '/..' . '/league/flysystem/src/Directory.php',\n        'League\\\\Flysystem\\\\Exception' => __DIR__ . '/..' . '/league/flysystem/src/Exception.php',\n        'League\\\\Flysystem\\\\File' => __DIR__ . '/..' . '/league/flysystem/src/File.php',\n        'League\\\\Flysystem\\\\FileExistsException' => __DIR__ . '/..' . '/league/flysystem/src/FileExistsException.php',\n        'League\\\\Flysystem\\\\FileNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FileNotFoundException.php',\n        'League\\\\Flysystem\\\\Filesystem' => __DIR__ . '/..' . '/league/flysystem/src/Filesystem.php',\n        'League\\\\Flysystem\\\\FilesystemInterface' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemInterface.php',\n        'League\\\\Flysystem\\\\FilesystemNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/FilesystemNotFoundException.php',\n        'League\\\\Flysystem\\\\Handler' => __DIR__ . '/..' . '/league/flysystem/src/Handler.php',\n        'League\\\\Flysystem\\\\MountManager' => __DIR__ . '/..' . '/league/flysystem/src/MountManager.php',\n        'League\\\\Flysystem\\\\NotSupportedException' => __DIR__ . '/..' . '/league/flysystem/src/NotSupportedException.php',\n        'League\\\\Flysystem\\\\PluginInterface' => __DIR__ . '/..' . '/league/flysystem/src/PluginInterface.php',\n        'League\\\\Flysystem\\\\Plugin\\\\AbstractPlugin' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/AbstractPlugin.php',\n        'League\\\\Flysystem\\\\Plugin\\\\EmptyDir' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/EmptyDir.php',\n        'League\\\\Flysystem\\\\Plugin\\\\ForcedCopy' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedCopy.php',\n        'League\\\\Flysystem\\\\Plugin\\\\ForcedRename' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ForcedRename.php',\n        'League\\\\Flysystem\\\\Plugin\\\\GetWithMetadata' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/GetWithMetadata.php',\n        'League\\\\Flysystem\\\\Plugin\\\\ListFiles' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListFiles.php',\n        'League\\\\Flysystem\\\\Plugin\\\\ListPaths' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListPaths.php',\n        'League\\\\Flysystem\\\\Plugin\\\\ListWith' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/ListWith.php',\n        'League\\\\Flysystem\\\\Plugin\\\\PluggableTrait' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluggableTrait.php',\n        'League\\\\Flysystem\\\\Plugin\\\\PluginNotFoundException' => __DIR__ . '/..' . '/league/flysystem/src/Plugin/PluginNotFoundException.php',\n        'League\\\\Flysystem\\\\ReadInterface' => __DIR__ . '/..' . '/league/flysystem/src/ReadInterface.php',\n        'League\\\\Flysystem\\\\RootViolationException' => __DIR__ . '/..' . '/league/flysystem/src/RootViolationException.php',\n        'League\\\\Flysystem\\\\SafeStorage' => __DIR__ . '/..' . '/league/flysystem/src/SafeStorage.php',\n        'League\\\\Flysystem\\\\UnreadableFileException' => __DIR__ . '/..' . '/league/flysystem/src/UnreadableFileException.php',\n        'League\\\\Flysystem\\\\Util' => __DIR__ . '/..' . '/league/flysystem/src/Util.php',\n        'League\\\\Flysystem\\\\Util\\\\ContentListingFormatter' => __DIR__ . '/..' . '/league/flysystem/src/Util/ContentListingFormatter.php',\n        'League\\\\Flysystem\\\\Util\\\\MimeType' => __DIR__ . '/..' . '/league/flysystem/src/Util/MimeType.php',\n        'League\\\\Flysystem\\\\Util\\\\StreamHasher' => __DIR__ . '/..' . '/league/flysystem/src/Util/StreamHasher.php',\n        'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV5' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV6' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerForV7' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV7.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\Legacy\\\\TestListenerTrait' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerTrait.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegration.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegrationAssertPostConditionsForV7AndPrevious' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditionsForV7AndPrevious.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryPHPUnitIntegrationAssertPostConditionsForV8' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryPHPUnitIntegrationAssertPostConditionsForV8.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCase' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCase.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCaseSetUpForV7AndPrevious' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCaseSetUpForV7AndPrevious.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\MockeryTestCaseSetUpForV8' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/MockeryTestCaseSetUpForV8.php',\n        'Mockery\\\\Adapter\\\\Phpunit\\\\TestListener' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/TestListener.php',\n        'Mockery\\\\ClosureWrapper' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ClosureWrapper.php',\n        'Mockery\\\\CompositeExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CompositeExpectation.php',\n        'Mockery\\\\Configuration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Configuration.php',\n        'Mockery\\\\Container' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Container.php',\n        'Mockery\\\\CountValidator\\\\AtLeast' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtLeast.php',\n        'Mockery\\\\CountValidator\\\\AtMost' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/AtMost.php',\n        'Mockery\\\\CountValidator\\\\CountValidatorAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/CountValidatorAbstract.php',\n        'Mockery\\\\CountValidator\\\\Exact' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exact.php',\n        'Mockery\\\\CountValidator\\\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/CountValidator/Exception.php',\n        'Mockery\\\\Exception' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception.php',\n        'Mockery\\\\Exception\\\\BadMethodCallException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/BadMethodCallException.php',\n        'Mockery\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidArgumentException.php',\n        'Mockery\\\\Exception\\\\InvalidCountException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidCountException.php',\n        'Mockery\\\\Exception\\\\InvalidOrderException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/InvalidOrderException.php',\n        'Mockery\\\\Exception\\\\NoMatchingExpectationException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/NoMatchingExpectationException.php',\n        'Mockery\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Exception/RuntimeException.php',\n        'Mockery\\\\Expectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Expectation.php',\n        'Mockery\\\\ExpectationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationDirector.php',\n        'Mockery\\\\ExpectationInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectationInterface.php',\n        'Mockery\\\\ExpectsHigherOrderMessage' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ExpectsHigherOrderMessage.php',\n        'Mockery\\\\Generator\\\\CachingGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/CachingGenerator.php',\n        'Mockery\\\\Generator\\\\DefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/DefinedTargetClass.php',\n        'Mockery\\\\Generator\\\\Generator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Generator.php',\n        'Mockery\\\\Generator\\\\Method' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Method.php',\n        'Mockery\\\\Generator\\\\MockConfiguration' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfiguration.php',\n        'Mockery\\\\Generator\\\\MockConfigurationBuilder' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockConfigurationBuilder.php',\n        'Mockery\\\\Generator\\\\MockDefinition' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/MockDefinition.php',\n        'Mockery\\\\Generator\\\\Parameter' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/Parameter.php',\n        'Mockery\\\\Generator\\\\StringManipulationGenerator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulationGenerator.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\CallTypeHintPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/CallTypeHintPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ClassNamePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassNamePass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ClassPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ClassPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\ConstantsPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/ConstantsPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\InstanceMockPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InstanceMockPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\InterfacePass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/InterfacePass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\MagicMethodTypeHintsPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MagicMethodTypeHintsPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\MethodDefinitionPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/MethodDefinitionPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\Pass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/Pass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveBuiltinMethodsThatAreFinalPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveBuiltinMethodsThatAreFinalPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveDestructorPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveDestructorPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\RemoveUnserializeForInternalSerializableClassesPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/RemoveUnserializeForInternalSerializableClassesPass.php',\n        'Mockery\\\\Generator\\\\StringManipulation\\\\Pass\\\\TraitPass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/StringManipulation/Pass/TraitPass.php',\n        'Mockery\\\\Generator\\\\TargetClassInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/TargetClassInterface.php',\n        'Mockery\\\\Generator\\\\UndefinedTargetClass' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Generator/UndefinedTargetClass.php',\n        'Mockery\\\\HigherOrderMessage' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/HigherOrderMessage.php',\n        'Mockery\\\\Instantiator' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Instantiator.php',\n        'Mockery\\\\Loader\\\\EvalLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/EvalLoader.php',\n        'Mockery\\\\Loader\\\\Loader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/Loader.php',\n        'Mockery\\\\Loader\\\\RequireLoader' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Loader/RequireLoader.php',\n        'Mockery\\\\Matcher\\\\AndAnyOtherArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AndAnyOtherArgs.php',\n        'Mockery\\\\Matcher\\\\Any' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Any.php',\n        'Mockery\\\\Matcher\\\\AnyArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AnyArgs.php',\n        'Mockery\\\\Matcher\\\\AnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/AnyOf.php',\n        'Mockery\\\\Matcher\\\\ArgumentListMatcher' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/ArgumentListMatcher.php',\n        'Mockery\\\\Matcher\\\\Closure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Closure.php',\n        'Mockery\\\\Matcher\\\\Contains' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Contains.php',\n        'Mockery\\\\Matcher\\\\Ducktype' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Ducktype.php',\n        'Mockery\\\\Matcher\\\\HasKey' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasKey.php',\n        'Mockery\\\\Matcher\\\\HasValue' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/HasValue.php',\n        'Mockery\\\\Matcher\\\\MatcherAbstract' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MatcherAbstract.php',\n        'Mockery\\\\Matcher\\\\MultiArgumentClosure' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MultiArgumentClosure.php',\n        'Mockery\\\\Matcher\\\\MustBe' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/MustBe.php',\n        'Mockery\\\\Matcher\\\\NoArgs' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NoArgs.php',\n        'Mockery\\\\Matcher\\\\Not' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Not.php',\n        'Mockery\\\\Matcher\\\\NotAnyOf' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/NotAnyOf.php',\n        'Mockery\\\\Matcher\\\\PHPUnitConstraint' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/PHPUnitConstraint.php',\n        'Mockery\\\\Matcher\\\\Pattern' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Pattern.php',\n        'Mockery\\\\Matcher\\\\Subset' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Subset.php',\n        'Mockery\\\\Matcher\\\\Type' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Matcher/Type.php',\n        'Mockery\\\\MethodCall' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MethodCall.php',\n        'Mockery\\\\Mock' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Mock.php',\n        'Mockery\\\\MockInterface' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/MockInterface.php',\n        'Mockery\\\\ReceivedMethodCalls' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/ReceivedMethodCalls.php',\n        'Mockery\\\\Undefined' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Undefined.php',\n        'Mockery\\\\VerificationDirector' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationDirector.php',\n        'Mockery\\\\VerificationExpectation' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/VerificationExpectation.php',\n        'Monolog\\\\ErrorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ErrorHandler.php',\n        'Monolog\\\\Formatter\\\\ChromePHPFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php',\n        'Monolog\\\\Formatter\\\\ElasticaFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php',\n        'Monolog\\\\Formatter\\\\FlowdockFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php',\n        'Monolog\\\\Formatter\\\\FluentdFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php',\n        'Monolog\\\\Formatter\\\\FormatterInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php',\n        'Monolog\\\\Formatter\\\\GelfMessageFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php',\n        'Monolog\\\\Formatter\\\\HtmlFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php',\n        'Monolog\\\\Formatter\\\\JsonFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php',\n        'Monolog\\\\Formatter\\\\LineFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LineFormatter.php',\n        'Monolog\\\\Formatter\\\\LogglyFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php',\n        'Monolog\\\\Formatter\\\\LogstashFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php',\n        'Monolog\\\\Formatter\\\\MongoDBFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php',\n        'Monolog\\\\Formatter\\\\NormalizerFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php',\n        'Monolog\\\\Formatter\\\\ScalarFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php',\n        'Monolog\\\\Formatter\\\\WildfireFormatter' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php',\n        'Monolog\\\\Handler\\\\AbstractHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractHandler.php',\n        'Monolog\\\\Handler\\\\AbstractProcessingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php',\n        'Monolog\\\\Handler\\\\AbstractSyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php',\n        'Monolog\\\\Handler\\\\AmqpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/AmqpHandler.php',\n        'Monolog\\\\Handler\\\\BrowserConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php',\n        'Monolog\\\\Handler\\\\BufferHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/BufferHandler.php',\n        'Monolog\\\\Handler\\\\ChromePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php',\n        'Monolog\\\\Handler\\\\CouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php',\n        'Monolog\\\\Handler\\\\CubeHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/CubeHandler.php',\n        'Monolog\\\\Handler\\\\Curl\\\\Util' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Curl/Util.php',\n        'Monolog\\\\Handler\\\\DeduplicationHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php',\n        'Monolog\\\\Handler\\\\DoctrineCouchDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php',\n        'Monolog\\\\Handler\\\\DynamoDbHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php',\n        'Monolog\\\\Handler\\\\ElasticSearchHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php',\n        'Monolog\\\\Handler\\\\ErrorLogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php',\n        'Monolog\\\\Handler\\\\FilterHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FilterHandler.php',\n        'Monolog\\\\Handler\\\\FingersCrossedHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php',\n        'Monolog\\\\Handler\\\\FingersCrossed\\\\ActivationStrategyInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php',\n        'Monolog\\\\Handler\\\\FingersCrossed\\\\ChannelLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php',\n        'Monolog\\\\Handler\\\\FingersCrossed\\\\ErrorLevelActivationStrategy' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php',\n        'Monolog\\\\Handler\\\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',\n        'Monolog\\\\Handler\\\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',\n        'Monolog\\\\Handler\\\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',\n        'Monolog\\\\Handler\\\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',\n        'Monolog\\\\Handler\\\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',\n        'Monolog\\\\Handler\\\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',\n        'Monolog\\\\Handler\\\\HandlerWrapper' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php',\n        'Monolog\\\\Handler\\\\HipChatHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HipChatHandler.php',\n        'Monolog\\\\Handler\\\\IFTTTHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php',\n        'Monolog\\\\Handler\\\\InsightOpsHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php',\n        'Monolog\\\\Handler\\\\LogEntriesHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php',\n        'Monolog\\\\Handler\\\\LogglyHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/LogglyHandler.php',\n        'Monolog\\\\Handler\\\\MailHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MailHandler.php',\n        'Monolog\\\\Handler\\\\MandrillHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MandrillHandler.php',\n        'Monolog\\\\Handler\\\\MissingExtensionException' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php',\n        'Monolog\\\\Handler\\\\MongoDBHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php',\n        'Monolog\\\\Handler\\\\NativeMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php',\n        'Monolog\\\\Handler\\\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',\n        'Monolog\\\\Handler\\\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',\n        'Monolog\\\\Handler\\\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',\n        'Monolog\\\\Handler\\\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',\n        'Monolog\\\\Handler\\\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',\n        'Monolog\\\\Handler\\\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',\n        'Monolog\\\\Handler\\\\RedisHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RedisHandler.php',\n        'Monolog\\\\Handler\\\\RollbarHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RollbarHandler.php',\n        'Monolog\\\\Handler\\\\RotatingFileHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php',\n        'Monolog\\\\Handler\\\\SamplingHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SamplingHandler.php',\n        'Monolog\\\\Handler\\\\SlackHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackHandler.php',\n        'Monolog\\\\Handler\\\\SlackWebhookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php',\n        'Monolog\\\\Handler\\\\Slack\\\\SlackRecord' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php',\n        'Monolog\\\\Handler\\\\SlackbotHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php',\n        'Monolog\\\\Handler\\\\SocketHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SocketHandler.php',\n        'Monolog\\\\Handler\\\\StreamHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/StreamHandler.php',\n        'Monolog\\\\Handler\\\\SwiftMailerHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php',\n        'Monolog\\\\Handler\\\\SyslogHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogHandler.php',\n        'Monolog\\\\Handler\\\\SyslogUdpHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php',\n        'Monolog\\\\Handler\\\\SyslogUdp\\\\UdpSocket' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php',\n        'Monolog\\\\Handler\\\\TestHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/TestHandler.php',\n        'Monolog\\\\Handler\\\\WhatFailureGroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php',\n        'Monolog\\\\Handler\\\\ZendMonitorHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php',\n        'Monolog\\\\Logger' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Logger.php',\n        'Monolog\\\\Processor\\\\GitProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/GitProcessor.php',\n        'Monolog\\\\Processor\\\\IntrospectionProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php',\n        'Monolog\\\\Processor\\\\MemoryPeakUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php',\n        'Monolog\\\\Processor\\\\MemoryProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php',\n        'Monolog\\\\Processor\\\\MemoryUsageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php',\n        'Monolog\\\\Processor\\\\MercurialProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php',\n        'Monolog\\\\Processor\\\\ProcessIdProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php',\n        'Monolog\\\\Processor\\\\ProcessorInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php',\n        'Monolog\\\\Processor\\\\PsrLogMessageProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php',\n        'Monolog\\\\Processor\\\\TagProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/TagProcessor.php',\n        'Monolog\\\\Processor\\\\UidProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/UidProcessor.php',\n        'Monolog\\\\Processor\\\\WebProcessor' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Processor/WebProcessor.php',\n        'Monolog\\\\Registry' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Registry.php',\n        'Monolog\\\\ResettableInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/ResettableInterface.php',\n        'Monolog\\\\SignalHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/SignalHandler.php',\n        'Monolog\\\\Utils' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Utils.php',\n        'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\CollisionServiceProvider' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Laravel/CollisionServiceProvider.php',\n        'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\ExceptionHandler' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php',\n        'NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\Inspector' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Laravel/Inspector.php',\n        'NunoMaduro\\\\Collision\\\\Adapters\\\\Phpunit\\\\Listener' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Phpunit/Listener.php',\n        'NunoMaduro\\\\Collision\\\\ArgumentFormatter' => __DIR__ . '/..' . '/nunomaduro/collision/src/ArgumentFormatter.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\Adapters\\\\Phpunit\\\\Listener' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/Adapters/Phpunit/Listener.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\ArgumentFormatter' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/ArgumentFormatter.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\Handler' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/Handler.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\Highlighter' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/Highlighter.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\Provider' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/Provider.php',\n        'NunoMaduro\\\\Collision\\\\Contracts\\\\Writer' => __DIR__ . '/..' . '/nunomaduro/collision/src/Contracts/Writer.php',\n        'NunoMaduro\\\\Collision\\\\Handler' => __DIR__ . '/..' . '/nunomaduro/collision/src/Handler.php',\n        'NunoMaduro\\\\Collision\\\\Highlighter' => __DIR__ . '/..' . '/nunomaduro/collision/src/Highlighter.php',\n        'NunoMaduro\\\\Collision\\\\Provider' => __DIR__ . '/..' . '/nunomaduro/collision/src/Provider.php',\n        'NunoMaduro\\\\Collision\\\\Writer' => __DIR__ . '/..' . '/nunomaduro/collision/src/Writer.php',\n        'Opis\\\\Closure\\\\Analyzer' => __DIR__ . '/..' . '/opis/closure/src/Analyzer.php',\n        'Opis\\\\Closure\\\\ClosureContext' => __DIR__ . '/..' . '/opis/closure/src/ClosureContext.php',\n        'Opis\\\\Closure\\\\ClosureScope' => __DIR__ . '/..' . '/opis/closure/src/ClosureScope.php',\n        'Opis\\\\Closure\\\\ClosureStream' => __DIR__ . '/..' . '/opis/closure/src/ClosureStream.php',\n        'Opis\\\\Closure\\\\ISecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/ISecurityProvider.php',\n        'Opis\\\\Closure\\\\ReflectionClosure' => __DIR__ . '/..' . '/opis/closure/src/ReflectionClosure.php',\n        'Opis\\\\Closure\\\\SecurityException' => __DIR__ . '/..' . '/opis/closure/src/SecurityException.php',\n        'Opis\\\\Closure\\\\SecurityProvider' => __DIR__ . '/..' . '/opis/closure/src/SecurityProvider.php',\n        'Opis\\\\Closure\\\\SelfReference' => __DIR__ . '/..' . '/opis/closure/src/SelfReference.php',\n        'Opis\\\\Closure\\\\SerializableClosure' => __DIR__ . '/..' . '/opis/closure/src/SerializableClosure.php',\n        'PHPUnit\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',\n        'PHPUnit\\\\Framework\\\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',\n        'PHPUnit\\\\Framework\\\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',\n        'PHPUnit\\\\Framework\\\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',\n        'PHPUnit\\\\Framework\\\\Constraint\\\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',\n        'PHPUnit\\\\Framework\\\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',\n        'PHPUnit\\\\Framework\\\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php',\n        'PHPUnit\\\\Framework\\\\Error\\\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',\n        'PHPUnit\\\\Framework\\\\Error\\\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php',\n        'PHPUnit\\\\Framework\\\\Error\\\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',\n        'PHPUnit\\\\Framework\\\\Error\\\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',\n        'PHPUnit\\\\Framework\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php',\n        'PHPUnit\\\\Framework\\\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',\n        'PHPUnit\\\\Framework\\\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',\n        'PHPUnit\\\\Framework\\\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',\n        'PHPUnit\\\\Framework\\\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',\n        'PHPUnit\\\\Framework\\\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',\n        'PHPUnit\\\\Framework\\\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',\n        'PHPUnit\\\\Framework\\\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Match' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation\\\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Invocation\\\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\DeferredError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Matcher\\\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Stub\\\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php',\n        'PHPUnit\\\\Framework\\\\MockObject\\\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',\n        'PHPUnit\\\\Framework\\\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php',\n        'PHPUnit\\\\Framework\\\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php',\n        'PHPUnit\\\\Framework\\\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php',\n        'PHPUnit\\\\Framework\\\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',\n        'PHPUnit\\\\Framework\\\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',\n        'PHPUnit\\\\Framework\\\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',\n        'PHPUnit\\\\Framework\\\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php',\n        'PHPUnit\\\\Framework\\\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',\n        'PHPUnit\\\\Framework\\\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php',\n        'PHPUnit\\\\Framework\\\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',\n        'PHPUnit\\\\Framework\\\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',\n        'PHPUnit\\\\Framework\\\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',\n        'PHPUnit\\\\Framework\\\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',\n        'PHPUnit\\\\Framework\\\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php',\n        'PHPUnit\\\\Framework\\\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',\n        'PHPUnit\\\\Framework\\\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',\n        'PHPUnit\\\\Framework\\\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php',\n        'PHPUnit\\\\Framework\\\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',\n        'PHPUnit\\\\Framework\\\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php',\n        'PHPUnit\\\\Framework\\\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',\n        'PHPUnit\\\\Runner\\\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php',\n        'PHPUnit\\\\Runner\\\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php',\n        'PHPUnit\\\\Runner\\\\AfterTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php',\n        'PHPUnit\\\\Runner\\\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php',\n        'PHPUnit\\\\Runner\\\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',\n        'PHPUnit\\\\Runner\\\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php',\n        'PHPUnit\\\\Runner\\\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php',\n        'PHPUnit\\\\Runner\\\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',\n        'PHPUnit\\\\Runner\\\\Filter\\\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php',\n        'PHPUnit\\\\Runner\\\\Filter\\\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',\n        'PHPUnit\\\\Runner\\\\Filter\\\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php',\n        'PHPUnit\\\\Runner\\\\Filter\\\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php',\n        'PHPUnit\\\\Runner\\\\Filter\\\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php',\n        'PHPUnit\\\\Runner\\\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php',\n        'PHPUnit\\\\Runner\\\\NullTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/NullTestResultCache.php',\n        'PHPUnit\\\\Runner\\\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php',\n        'PHPUnit\\\\Runner\\\\ResultCacheExtension' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php',\n        'PHPUnit\\\\Runner\\\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',\n        'PHPUnit\\\\Runner\\\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php',\n        'PHPUnit\\\\Runner\\\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php',\n        'PHPUnit\\\\Runner\\\\TestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestResultCache.php',\n        'PHPUnit\\\\Runner\\\\TestResultCacheInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestResultCacheInterface.php',\n        'PHPUnit\\\\Runner\\\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',\n        'PHPUnit\\\\Runner\\\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php',\n        'PHPUnit\\\\Runner\\\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',\n        'PHPUnit\\\\TextUI\\\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',\n        'PHPUnit\\\\TextUI\\\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',\n        'PHPUnit\\\\TextUI\\\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',\n        'PHPUnit\\\\Util\\\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',\n        'PHPUnit\\\\Util\\\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',\n        'PHPUnit\\\\Util\\\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',\n        'PHPUnit\\\\Util\\\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',\n        'PHPUnit\\\\Util\\\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php',\n        'PHPUnit\\\\Util\\\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',\n        'PHPUnit\\\\Util\\\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',\n        'PHPUnit\\\\Util\\\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',\n        'PHPUnit\\\\Util\\\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',\n        'PHPUnit\\\\Util\\\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',\n        'PHPUnit\\\\Util\\\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php',\n        'PHPUnit\\\\Util\\\\Log\\\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',\n        'PHPUnit\\\\Util\\\\Log\\\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',\n        'PHPUnit\\\\Util\\\\PHP\\\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php',\n        'PHPUnit\\\\Util\\\\PHP\\\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php',\n        'PHPUnit\\\\Util\\\\PHP\\\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php',\n        'PHPUnit\\\\Util\\\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',\n        'PHPUnit\\\\Util\\\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php',\n        'PHPUnit\\\\Util\\\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestResult.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php',\n        'PHPUnit\\\\Util\\\\TestDox\\\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php',\n        'PHPUnit\\\\Util\\\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php',\n        'PHPUnit\\\\Util\\\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',\n        'PHPUnit\\\\Util\\\\XdebugFilterScriptGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php',\n        'PHPUnit\\\\Util\\\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php',\n        'PHPUnit\\\\Util\\\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php',\n        'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',\n        'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php',\n        'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',\n        'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',\n        'Parsedown' => __DIR__ . '/..' . '/erusev/parsedown/Parsedown.php',\n        'PharIo\\\\Manifest\\\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php',\n        'PharIo\\\\Manifest\\\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php',\n        'PharIo\\\\Manifest\\\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php',\n        'PharIo\\\\Manifest\\\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php',\n        'PharIo\\\\Manifest\\\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php',\n        'PharIo\\\\Manifest\\\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php',\n        'PharIo\\\\Manifest\\\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php',\n        'PharIo\\\\Manifest\\\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php',\n        'PharIo\\\\Manifest\\\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php',\n        'PharIo\\\\Manifest\\\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php',\n        'PharIo\\\\Manifest\\\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php',\n        'PharIo\\\\Manifest\\\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php',\n        'PharIo\\\\Manifest\\\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php',\n        'PharIo\\\\Manifest\\\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php',\n        'PharIo\\\\Manifest\\\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php',\n        'PharIo\\\\Manifest\\\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php',\n        'PharIo\\\\Manifest\\\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php',\n        'PharIo\\\\Manifest\\\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php',\n        'PharIo\\\\Manifest\\\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php',\n        'PharIo\\\\Manifest\\\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php',\n        'PharIo\\\\Manifest\\\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php',\n        'PharIo\\\\Manifest\\\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php',\n        'PharIo\\\\Manifest\\\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php',\n        'PharIo\\\\Manifest\\\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php',\n        'PharIo\\\\Manifest\\\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php',\n        'PharIo\\\\Manifest\\\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php',\n        'PharIo\\\\Manifest\\\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php',\n        'PharIo\\\\Manifest\\\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php',\n        'PharIo\\\\Manifest\\\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php',\n        'PharIo\\\\Manifest\\\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php',\n        'PharIo\\\\Manifest\\\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php',\n        'PharIo\\\\Manifest\\\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php',\n        'PharIo\\\\Manifest\\\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php',\n        'PharIo\\\\Manifest\\\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php',\n        'PharIo\\\\Manifest\\\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php',\n        'PharIo\\\\Manifest\\\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php',\n        'PharIo\\\\Manifest\\\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php',\n        'PharIo\\\\Manifest\\\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php',\n        'PharIo\\\\Manifest\\\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php',\n        'PharIo\\\\Manifest\\\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php',\n        'PharIo\\\\Manifest\\\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php',\n        'PharIo\\\\Manifest\\\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php',\n        'PharIo\\\\Manifest\\\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php',\n        'PharIo\\\\Manifest\\\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php',\n        'PharIo\\\\Manifest\\\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php',\n        'PharIo\\\\Manifest\\\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php',\n        'PharIo\\\\Manifest\\\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php',\n        'PharIo\\\\Manifest\\\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php',\n        'PharIo\\\\Manifest\\\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php',\n        'PharIo\\\\Version\\\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',\n        'PharIo\\\\Version\\\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',\n        'PharIo\\\\Version\\\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php',\n        'PharIo\\\\Version\\\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php',\n        'PharIo\\\\Version\\\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php',\n        'PharIo\\\\Version\\\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',\n        'PharIo\\\\Version\\\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',\n        'PharIo\\\\Version\\\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php',\n        'PharIo\\\\Version\\\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',\n        'PharIo\\\\Version\\\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',\n        'PharIo\\\\Version\\\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php',\n        'PharIo\\\\Version\\\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php',\n        'PharIo\\\\Version\\\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php',\n        'PharIo\\\\Version\\\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php',\n        'PharIo\\\\Version\\\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php',\n        'PharIo\\\\Version\\\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php',\n        'PharIo\\\\Version\\\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php',\n        'PharIo\\\\Version\\\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php',\n        'PhpOption\\\\LazyOption' => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption/LazyOption.php',\n        'PhpOption\\\\None' => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption/None.php',\n        'PhpOption\\\\Option' => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption/Option.php',\n        'PhpOption\\\\Some' => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption/Some.php',\n        'PhpParser\\\\Builder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder.php',\n        'PhpParser\\\\BuilderFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderFactory.php',\n        'PhpParser\\\\BuilderHelpers' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/BuilderHelpers.php',\n        'PhpParser\\\\Builder\\\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Class_.php',\n        'PhpParser\\\\Builder\\\\Declaration' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Declaration.php',\n        'PhpParser\\\\Builder\\\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/FunctionLike.php',\n        'PhpParser\\\\Builder\\\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Function_.php',\n        'PhpParser\\\\Builder\\\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Interface_.php',\n        'PhpParser\\\\Builder\\\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Method.php',\n        'PhpParser\\\\Builder\\\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Namespace_.php',\n        'PhpParser\\\\Builder\\\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Param.php',\n        'PhpParser\\\\Builder\\\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Property.php',\n        'PhpParser\\\\Builder\\\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUse.php',\n        'PhpParser\\\\Builder\\\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/TraitUseAdaptation.php',\n        'PhpParser\\\\Builder\\\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Trait_.php',\n        'PhpParser\\\\Builder\\\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Builder/Use_.php',\n        'PhpParser\\\\Comment' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment.php',\n        'PhpParser\\\\Comment\\\\Doc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Comment/Doc.php',\n        'PhpParser\\\\ConstExprEvaluationException' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluationException.php',\n        'PhpParser\\\\ConstExprEvaluator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ConstExprEvaluator.php',\n        'PhpParser\\\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Error.php',\n        'PhpParser\\\\ErrorHandler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler.php',\n        'PhpParser\\\\ErrorHandler\\\\Collecting' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Collecting.php',\n        'PhpParser\\\\ErrorHandler\\\\Throwing' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ErrorHandler/Throwing.php',\n        'PhpParser\\\\Internal\\\\DiffElem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/DiffElem.php',\n        'PhpParser\\\\Internal\\\\Differ' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/Differ.php',\n        'PhpParser\\\\Internal\\\\PrintableNewAnonClassNode' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php',\n        'PhpParser\\\\Internal\\\\TokenStream' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php',\n        'PhpParser\\\\JsonDecoder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/JsonDecoder.php',\n        'PhpParser\\\\Lexer' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer.php',\n        'PhpParser\\\\Lexer\\\\Emulative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php',\n        'PhpParser\\\\Lexer\\\\TokenEmulator\\\\CoaleseEqualTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/CoaleseEqualTokenEmulator.php',\n        'PhpParser\\\\Lexer\\\\TokenEmulator\\\\FnTokenEmulator' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/FnTokenEmulator.php',\n        'PhpParser\\\\Lexer\\\\TokenEmulator\\\\TokenEmulatorInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Lexer/TokenEmulator/TokenEmulatorInterface.php',\n        'PhpParser\\\\NameContext' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NameContext.php',\n        'PhpParser\\\\Node' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node.php',\n        'PhpParser\\\\NodeAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeAbstract.php',\n        'PhpParser\\\\NodeDumper' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeDumper.php',\n        'PhpParser\\\\NodeFinder' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeFinder.php',\n        'PhpParser\\\\NodeTraverser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverser.php',\n        'PhpParser\\\\NodeTraverserInterface' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeTraverserInterface.php',\n        'PhpParser\\\\NodeVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor.php',\n        'PhpParser\\\\NodeVisitorAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitorAbstract.php',\n        'PhpParser\\\\NodeVisitor\\\\CloningVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/CloningVisitor.php',\n        'PhpParser\\\\NodeVisitor\\\\FindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FindingVisitor.php',\n        'PhpParser\\\\NodeVisitor\\\\FirstFindingVisitor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/FirstFindingVisitor.php',\n        'PhpParser\\\\NodeVisitor\\\\NameResolver' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php',\n        'PhpParser\\\\Node\\\\Arg' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Arg.php',\n        'PhpParser\\\\Node\\\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Const_.php',\n        'PhpParser\\\\Node\\\\Expr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ArrayDimFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayDimFetch.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ArrayItem' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrayItem.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Array_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ArrowFunction' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ArrowFunction.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Assign' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Assign.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseAnd.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseOr.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/BitwiseXor.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Coalesce.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Concat.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Div.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Minus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mod.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Mul.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Plus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/Pow.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftLeft.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignOp\\\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignOp/ShiftRight.php',\n        'PhpParser\\\\Node\\\\Expr\\\\AssignRef' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/AssignRef.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseAnd.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseOr.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BitwiseXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BitwiseXor.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BooleanAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanAnd.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\BooleanOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/BooleanOr.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Coalesce' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Coalesce.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Concat' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Concat.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Div' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Div.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Equal' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Equal.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Greater' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Greater.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\GreaterOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/GreaterOrEqual.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Identical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Identical.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalAnd' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalAnd.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalOr' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalOr.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\LogicalXor' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/LogicalXor.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Minus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Minus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Mod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mod.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Mul' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Mul.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\NotEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotEqual.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\NotIdentical' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/NotIdentical.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Plus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Plus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Pow' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Pow.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\ShiftLeft' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftLeft.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\ShiftRight' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/ShiftRight.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Smaller' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Smaller.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\SmallerOrEqual' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/SmallerOrEqual.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BinaryOp\\\\Spaceship' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BinaryOp/Spaceship.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BitwiseNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BitwiseNot.php',\n        'PhpParser\\\\Node\\\\Expr\\\\BooleanNot' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/BooleanNot.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Array_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Array_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Bool_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Double' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Double.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Int_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Object_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Cast\\\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Unset_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ClassConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Clone_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Clone_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Closure' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Closure.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ClosureUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ClosureUse.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ConstFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ConstFetch.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Empty_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Empty_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Error' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Error.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ErrorSuppress' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ErrorSuppress.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Eval_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Eval_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Exit_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Exit_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\FuncCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/FuncCall.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Include_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Include_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Instanceof_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Instanceof_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Isset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Isset_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\List_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/List_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\MethodCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/MethodCall.php',\n        'PhpParser\\\\Node\\\\Expr\\\\New_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/New_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\PostDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostDec.php',\n        'PhpParser\\\\Node\\\\Expr\\\\PostInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PostInc.php',\n        'PhpParser\\\\Node\\\\Expr\\\\PreDec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreDec.php',\n        'PhpParser\\\\Node\\\\Expr\\\\PreInc' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PreInc.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Print_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Print_.php',\n        'PhpParser\\\\Node\\\\Expr\\\\PropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/PropertyFetch.php',\n        'PhpParser\\\\Node\\\\Expr\\\\ShellExec' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/ShellExec.php',\n        'PhpParser\\\\Node\\\\Expr\\\\StaticCall' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticCall.php',\n        'PhpParser\\\\Node\\\\Expr\\\\StaticPropertyFetch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/StaticPropertyFetch.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Ternary' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Ternary.php',\n        'PhpParser\\\\Node\\\\Expr\\\\UnaryMinus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryMinus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\UnaryPlus' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/UnaryPlus.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Variable' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Variable.php',\n        'PhpParser\\\\Node\\\\Expr\\\\YieldFrom' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/YieldFrom.php',\n        'PhpParser\\\\Node\\\\Expr\\\\Yield_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Expr/Yield_.php',\n        'PhpParser\\\\Node\\\\FunctionLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/FunctionLike.php',\n        'PhpParser\\\\Node\\\\Identifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Identifier.php',\n        'PhpParser\\\\Node\\\\Name' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name.php',\n        'PhpParser\\\\Node\\\\Name\\\\FullyQualified' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/FullyQualified.php',\n        'PhpParser\\\\Node\\\\Name\\\\Relative' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Name/Relative.php',\n        'PhpParser\\\\Node\\\\NullableType' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/NullableType.php',\n        'PhpParser\\\\Node\\\\Param' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Param.php',\n        'PhpParser\\\\Node\\\\Scalar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\DNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/DNumber.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\Encapsed' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/Encapsed.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\EncapsedStringPart' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/EncapsedStringPart.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\LNumber' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/LNumber.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Class_.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Dir' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Dir.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\File' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/File.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Function_.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Line' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Line.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Method' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Method.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Namespace_.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\MagicConst\\\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/MagicConst/Trait_.php',\n        'PhpParser\\\\Node\\\\Scalar\\\\String_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Scalar/String_.php',\n        'PhpParser\\\\Node\\\\Stmt' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Break_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Break_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Case_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Case_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Catch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Catch_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\ClassConst' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\ClassLike' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassLike.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\ClassMethod' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Class_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Class_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Const_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Const_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Continue_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Continue_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\DeclareDeclare' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/DeclareDeclare.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Declare_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Declare_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Do_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Do_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Echo_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Echo_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\ElseIf_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/ElseIf_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Else_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Else_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Expression' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Expression.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Finally_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Finally_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\For_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/For_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Foreach_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Foreach_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Function_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Global_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Global_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Goto_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Goto_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\GroupUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/GroupUse.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\HaltCompiler' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/HaltCompiler.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\If_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/If_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\InlineHTML' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/InlineHTML.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Interface_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Interface_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Label' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Label.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Namespace_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Namespace_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Nop' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Nop.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Property' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Property.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\PropertyProperty' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/PropertyProperty.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Return_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Return_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\StaticVar' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/StaticVar.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Static_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Static_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Switch_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Switch_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Throw_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Throw_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\TraitUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUse.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation\\\\Alias' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Alias.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\TraitUseAdaptation\\\\Precedence' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TraitUseAdaptation/Precedence.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Trait_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Trait_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\TryCatch' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/TryCatch.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Unset_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Unset_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\UseUse' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/UseUse.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\Use_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/Use_.php',\n        'PhpParser\\\\Node\\\\Stmt\\\\While_' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/Stmt/While_.php',\n        'PhpParser\\\\Node\\\\VarLikeIdentifier' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Node/VarLikeIdentifier.php',\n        'PhpParser\\\\Parser' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser.php',\n        'PhpParser\\\\ParserAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserAbstract.php',\n        'PhpParser\\\\ParserFactory' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/ParserFactory.php',\n        'PhpParser\\\\Parser\\\\Multiple' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Multiple.php',\n        'PhpParser\\\\Parser\\\\Php5' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php5.php',\n        'PhpParser\\\\Parser\\\\Php7' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Php7.php',\n        'PhpParser\\\\Parser\\\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',\n        'PhpParser\\\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',\n        'PhpParser\\\\PrettyPrinter\\\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',\n        'Predis\\\\Autoloader' => __DIR__ . '/..' . '/predis/predis/src/Autoloader.php',\n        'Predis\\\\Client' => __DIR__ . '/..' . '/predis/predis/src/Client.php',\n        'Predis\\\\ClientContextInterface' => __DIR__ . '/..' . '/predis/predis/src/ClientContextInterface.php',\n        'Predis\\\\ClientException' => __DIR__ . '/..' . '/predis/predis/src/ClientException.php',\n        'Predis\\\\ClientInterface' => __DIR__ . '/..' . '/predis/predis/src/ClientInterface.php',\n        'Predis\\\\Cluster\\\\ClusterStrategy' => __DIR__ . '/..' . '/predis/predis/src/Cluster/ClusterStrategy.php',\n        'Predis\\\\Cluster\\\\Distributor\\\\DistributorInterface' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Distributor/DistributorInterface.php',\n        'Predis\\\\Cluster\\\\Distributor\\\\EmptyRingException' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Distributor/EmptyRingException.php',\n        'Predis\\\\Cluster\\\\Distributor\\\\HashRing' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Distributor/HashRing.php',\n        'Predis\\\\Cluster\\\\Distributor\\\\KetamaRing' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Distributor/KetamaRing.php',\n        'Predis\\\\Cluster\\\\Hash\\\\CRC16' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Hash/CRC16.php',\n        'Predis\\\\Cluster\\\\Hash\\\\HashGeneratorInterface' => __DIR__ . '/..' . '/predis/predis/src/Cluster/Hash/HashGeneratorInterface.php',\n        'Predis\\\\Cluster\\\\PredisStrategy' => __DIR__ . '/..' . '/predis/predis/src/Cluster/PredisStrategy.php',\n        'Predis\\\\Cluster\\\\RedisStrategy' => __DIR__ . '/..' . '/predis/predis/src/Cluster/RedisStrategy.php',\n        'Predis\\\\Cluster\\\\StrategyInterface' => __DIR__ . '/..' . '/predis/predis/src/Cluster/StrategyInterface.php',\n        'Predis\\\\Collection\\\\Iterator\\\\CursorBasedIterator' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/CursorBasedIterator.php',\n        'Predis\\\\Collection\\\\Iterator\\\\HashKey' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/HashKey.php',\n        'Predis\\\\Collection\\\\Iterator\\\\Keyspace' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/Keyspace.php',\n        'Predis\\\\Collection\\\\Iterator\\\\ListKey' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/ListKey.php',\n        'Predis\\\\Collection\\\\Iterator\\\\SetKey' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/SetKey.php',\n        'Predis\\\\Collection\\\\Iterator\\\\SortedSetKey' => __DIR__ . '/..' . '/predis/predis/src/Collection/Iterator/SortedSetKey.php',\n        'Predis\\\\Command\\\\Command' => __DIR__ . '/..' . '/predis/predis/src/Command/Command.php',\n        'Predis\\\\Command\\\\CommandInterface' => __DIR__ . '/..' . '/predis/predis/src/Command/CommandInterface.php',\n        'Predis\\\\Command\\\\ConnectionAuth' => __DIR__ . '/..' . '/predis/predis/src/Command/ConnectionAuth.php',\n        'Predis\\\\Command\\\\ConnectionEcho' => __DIR__ . '/..' . '/predis/predis/src/Command/ConnectionEcho.php',\n        'Predis\\\\Command\\\\ConnectionPing' => __DIR__ . '/..' . '/predis/predis/src/Command/ConnectionPing.php',\n        'Predis\\\\Command\\\\ConnectionQuit' => __DIR__ . '/..' . '/predis/predis/src/Command/ConnectionQuit.php',\n        'Predis\\\\Command\\\\ConnectionSelect' => __DIR__ . '/..' . '/predis/predis/src/Command/ConnectionSelect.php',\n        'Predis\\\\Command\\\\GeospatialGeoAdd' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoAdd.php',\n        'Predis\\\\Command\\\\GeospatialGeoDist' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoDist.php',\n        'Predis\\\\Command\\\\GeospatialGeoHash' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoHash.php',\n        'Predis\\\\Command\\\\GeospatialGeoPos' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoPos.php',\n        'Predis\\\\Command\\\\GeospatialGeoRadius' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoRadius.php',\n        'Predis\\\\Command\\\\GeospatialGeoRadiusByMember' => __DIR__ . '/..' . '/predis/predis/src/Command/GeospatialGeoRadiusByMember.php',\n        'Predis\\\\Command\\\\HashDelete' => __DIR__ . '/..' . '/predis/predis/src/Command/HashDelete.php',\n        'Predis\\\\Command\\\\HashExists' => __DIR__ . '/..' . '/predis/predis/src/Command/HashExists.php',\n        'Predis\\\\Command\\\\HashGet' => __DIR__ . '/..' . '/predis/predis/src/Command/HashGet.php',\n        'Predis\\\\Command\\\\HashGetAll' => __DIR__ . '/..' . '/predis/predis/src/Command/HashGetAll.php',\n        'Predis\\\\Command\\\\HashGetMultiple' => __DIR__ . '/..' . '/predis/predis/src/Command/HashGetMultiple.php',\n        'Predis\\\\Command\\\\HashIncrementBy' => __DIR__ . '/..' . '/predis/predis/src/Command/HashIncrementBy.php',\n        'Predis\\\\Command\\\\HashIncrementByFloat' => __DIR__ . '/..' . '/predis/predis/src/Command/HashIncrementByFloat.php',\n        'Predis\\\\Command\\\\HashKeys' => __DIR__ . '/..' . '/predis/predis/src/Command/HashKeys.php',\n        'Predis\\\\Command\\\\HashLength' => __DIR__ . '/..' . '/predis/predis/src/Command/HashLength.php',\n        'Predis\\\\Command\\\\HashScan' => __DIR__ . '/..' . '/predis/predis/src/Command/HashScan.php',\n        'Predis\\\\Command\\\\HashSet' => __DIR__ . '/..' . '/predis/predis/src/Command/HashSet.php',\n        'Predis\\\\Command\\\\HashSetMultiple' => __DIR__ . '/..' . '/predis/predis/src/Command/HashSetMultiple.php',\n        'Predis\\\\Command\\\\HashSetPreserve' => __DIR__ . '/..' . '/predis/predis/src/Command/HashSetPreserve.php',\n        'Predis\\\\Command\\\\HashStringLength' => __DIR__ . '/..' . '/predis/predis/src/Command/HashStringLength.php',\n        'Predis\\\\Command\\\\HashValues' => __DIR__ . '/..' . '/predis/predis/src/Command/HashValues.php',\n        'Predis\\\\Command\\\\HyperLogLogAdd' => __DIR__ . '/..' . '/predis/predis/src/Command/HyperLogLogAdd.php',\n        'Predis\\\\Command\\\\HyperLogLogCount' => __DIR__ . '/..' . '/predis/predis/src/Command/HyperLogLogCount.php',\n        'Predis\\\\Command\\\\HyperLogLogMerge' => __DIR__ . '/..' . '/predis/predis/src/Command/HyperLogLogMerge.php',\n        'Predis\\\\Command\\\\KeyDelete' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyDelete.php',\n        'Predis\\\\Command\\\\KeyDump' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyDump.php',\n        'Predis\\\\Command\\\\KeyExists' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyExists.php',\n        'Predis\\\\Command\\\\KeyExpire' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyExpire.php',\n        'Predis\\\\Command\\\\KeyExpireAt' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyExpireAt.php',\n        'Predis\\\\Command\\\\KeyKeys' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyKeys.php',\n        'Predis\\\\Command\\\\KeyMigrate' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyMigrate.php',\n        'Predis\\\\Command\\\\KeyMove' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyMove.php',\n        'Predis\\\\Command\\\\KeyPersist' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyPersist.php',\n        'Predis\\\\Command\\\\KeyPreciseExpire' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyPreciseExpire.php',\n        'Predis\\\\Command\\\\KeyPreciseExpireAt' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyPreciseExpireAt.php',\n        'Predis\\\\Command\\\\KeyPreciseTimeToLive' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyPreciseTimeToLive.php',\n        'Predis\\\\Command\\\\KeyRandom' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyRandom.php',\n        'Predis\\\\Command\\\\KeyRename' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyRename.php',\n        'Predis\\\\Command\\\\KeyRenamePreserve' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyRenamePreserve.php',\n        'Predis\\\\Command\\\\KeyRestore' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyRestore.php',\n        'Predis\\\\Command\\\\KeyScan' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyScan.php',\n        'Predis\\\\Command\\\\KeySort' => __DIR__ . '/..' . '/predis/predis/src/Command/KeySort.php',\n        'Predis\\\\Command\\\\KeyTimeToLive' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyTimeToLive.php',\n        'Predis\\\\Command\\\\KeyType' => __DIR__ . '/..' . '/predis/predis/src/Command/KeyType.php',\n        'Predis\\\\Command\\\\ListIndex' => __DIR__ . '/..' . '/predis/predis/src/Command/ListIndex.php',\n        'Predis\\\\Command\\\\ListInsert' => __DIR__ . '/..' . '/predis/predis/src/Command/ListInsert.php',\n        'Predis\\\\Command\\\\ListLength' => __DIR__ . '/..' . '/predis/predis/src/Command/ListLength.php',\n        'Predis\\\\Command\\\\ListPopFirst' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopFirst.php',\n        'Predis\\\\Command\\\\ListPopFirstBlocking' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopFirstBlocking.php',\n        'Predis\\\\Command\\\\ListPopLast' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopLast.php',\n        'Predis\\\\Command\\\\ListPopLastBlocking' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopLastBlocking.php',\n        'Predis\\\\Command\\\\ListPopLastPushHead' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopLastPushHead.php',\n        'Predis\\\\Command\\\\ListPopLastPushHeadBlocking' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPopLastPushHeadBlocking.php',\n        'Predis\\\\Command\\\\ListPushHead' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPushHead.php',\n        'Predis\\\\Command\\\\ListPushHeadX' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPushHeadX.php',\n        'Predis\\\\Command\\\\ListPushTail' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPushTail.php',\n        'Predis\\\\Command\\\\ListPushTailX' => __DIR__ . '/..' . '/predis/predis/src/Command/ListPushTailX.php',\n        'Predis\\\\Command\\\\ListRange' => __DIR__ . '/..' . '/predis/predis/src/Command/ListRange.php',\n        'Predis\\\\Command\\\\ListRemove' => __DIR__ . '/..' . '/predis/predis/src/Command/ListRemove.php',\n        'Predis\\\\Command\\\\ListSet' => __DIR__ . '/..' . '/predis/predis/src/Command/ListSet.php',\n        'Predis\\\\Command\\\\ListTrim' => __DIR__ . '/..' . '/predis/predis/src/Command/ListTrim.php',\n        'Predis\\\\Command\\\\PrefixableCommandInterface' => __DIR__ . '/..' . '/predis/predis/src/Command/PrefixableCommandInterface.php',\n        'Predis\\\\Command\\\\Processor\\\\KeyPrefixProcessor' => __DIR__ . '/..' . '/predis/predis/src/Command/Processor/KeyPrefixProcessor.php',\n        'Predis\\\\Command\\\\Processor\\\\ProcessorChain' => __DIR__ . '/..' . '/predis/predis/src/Command/Processor/ProcessorChain.php',\n        'Predis\\\\Command\\\\Processor\\\\ProcessorInterface' => __DIR__ . '/..' . '/predis/predis/src/Command/Processor/ProcessorInterface.php',\n        'Predis\\\\Command\\\\PubSubPublish' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubPublish.php',\n        'Predis\\\\Command\\\\PubSubPubsub' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubPubsub.php',\n        'Predis\\\\Command\\\\PubSubSubscribe' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubSubscribe.php',\n        'Predis\\\\Command\\\\PubSubSubscribeByPattern' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubSubscribeByPattern.php',\n        'Predis\\\\Command\\\\PubSubUnsubscribe' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubUnsubscribe.php',\n        'Predis\\\\Command\\\\PubSubUnsubscribeByPattern' => __DIR__ . '/..' . '/predis/predis/src/Command/PubSubUnsubscribeByPattern.php',\n        'Predis\\\\Command\\\\RawCommand' => __DIR__ . '/..' . '/predis/predis/src/Command/RawCommand.php',\n        'Predis\\\\Command\\\\ScriptCommand' => __DIR__ . '/..' . '/predis/predis/src/Command/ScriptCommand.php',\n        'Predis\\\\Command\\\\ServerBackgroundRewriteAOF' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerBackgroundRewriteAOF.php',\n        'Predis\\\\Command\\\\ServerBackgroundSave' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerBackgroundSave.php',\n        'Predis\\\\Command\\\\ServerClient' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerClient.php',\n        'Predis\\\\Command\\\\ServerCommand' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerCommand.php',\n        'Predis\\\\Command\\\\ServerConfig' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerConfig.php',\n        'Predis\\\\Command\\\\ServerDatabaseSize' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerDatabaseSize.php',\n        'Predis\\\\Command\\\\ServerEval' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerEval.php',\n        'Predis\\\\Command\\\\ServerEvalSHA' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerEvalSHA.php',\n        'Predis\\\\Command\\\\ServerFlushAll' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerFlushAll.php',\n        'Predis\\\\Command\\\\ServerFlushDatabase' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerFlushDatabase.php',\n        'Predis\\\\Command\\\\ServerInfo' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerInfo.php',\n        'Predis\\\\Command\\\\ServerInfoV26x' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerInfoV26x.php',\n        'Predis\\\\Command\\\\ServerLastSave' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerLastSave.php',\n        'Predis\\\\Command\\\\ServerMonitor' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerMonitor.php',\n        'Predis\\\\Command\\\\ServerObject' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerObject.php',\n        'Predis\\\\Command\\\\ServerSave' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerSave.php',\n        'Predis\\\\Command\\\\ServerScript' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerScript.php',\n        'Predis\\\\Command\\\\ServerSentinel' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerSentinel.php',\n        'Predis\\\\Command\\\\ServerShutdown' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerShutdown.php',\n        'Predis\\\\Command\\\\ServerSlaveOf' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerSlaveOf.php',\n        'Predis\\\\Command\\\\ServerSlowlog' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerSlowlog.php',\n        'Predis\\\\Command\\\\ServerTime' => __DIR__ . '/..' . '/predis/predis/src/Command/ServerTime.php',\n        'Predis\\\\Command\\\\SetAdd' => __DIR__ . '/..' . '/predis/predis/src/Command/SetAdd.php',\n        'Predis\\\\Command\\\\SetCardinality' => __DIR__ . '/..' . '/predis/predis/src/Command/SetCardinality.php',\n        'Predis\\\\Command\\\\SetDifference' => __DIR__ . '/..' . '/predis/predis/src/Command/SetDifference.php',\n        'Predis\\\\Command\\\\SetDifferenceStore' => __DIR__ . '/..' . '/predis/predis/src/Command/SetDifferenceStore.php',\n        'Predis\\\\Command\\\\SetIntersection' => __DIR__ . '/..' . '/predis/predis/src/Command/SetIntersection.php',\n        'Predis\\\\Command\\\\SetIntersectionStore' => __DIR__ . '/..' . '/predis/predis/src/Command/SetIntersectionStore.php',\n        'Predis\\\\Command\\\\SetIsMember' => __DIR__ . '/..' . '/predis/predis/src/Command/SetIsMember.php',\n        'Predis\\\\Command\\\\SetMembers' => __DIR__ . '/..' . '/predis/predis/src/Command/SetMembers.php',\n        'Predis\\\\Command\\\\SetMove' => __DIR__ . '/..' . '/predis/predis/src/Command/SetMove.php',\n        'Predis\\\\Command\\\\SetPop' => __DIR__ . '/..' . '/predis/predis/src/Command/SetPop.php',\n        'Predis\\\\Command\\\\SetRandomMember' => __DIR__ . '/..' . '/predis/predis/src/Command/SetRandomMember.php',\n        'Predis\\\\Command\\\\SetRemove' => __DIR__ . '/..' . '/predis/predis/src/Command/SetRemove.php',\n        'Predis\\\\Command\\\\SetScan' => __DIR__ . '/..' . '/predis/predis/src/Command/SetScan.php',\n        'Predis\\\\Command\\\\SetUnion' => __DIR__ . '/..' . '/predis/predis/src/Command/SetUnion.php',\n        'Predis\\\\Command\\\\SetUnionStore' => __DIR__ . '/..' . '/predis/predis/src/Command/SetUnionStore.php',\n        'Predis\\\\Command\\\\StringAppend' => __DIR__ . '/..' . '/predis/predis/src/Command/StringAppend.php',\n        'Predis\\\\Command\\\\StringBitCount' => __DIR__ . '/..' . '/predis/predis/src/Command/StringBitCount.php',\n        'Predis\\\\Command\\\\StringBitField' => __DIR__ . '/..' . '/predis/predis/src/Command/StringBitField.php',\n        'Predis\\\\Command\\\\StringBitOp' => __DIR__ . '/..' . '/predis/predis/src/Command/StringBitOp.php',\n        'Predis\\\\Command\\\\StringBitPos' => __DIR__ . '/..' . '/predis/predis/src/Command/StringBitPos.php',\n        'Predis\\\\Command\\\\StringDecrement' => __DIR__ . '/..' . '/predis/predis/src/Command/StringDecrement.php',\n        'Predis\\\\Command\\\\StringDecrementBy' => __DIR__ . '/..' . '/predis/predis/src/Command/StringDecrementBy.php',\n        'Predis\\\\Command\\\\StringGet' => __DIR__ . '/..' . '/predis/predis/src/Command/StringGet.php',\n        'Predis\\\\Command\\\\StringGetBit' => __DIR__ . '/..' . '/predis/predis/src/Command/StringGetBit.php',\n        'Predis\\\\Command\\\\StringGetMultiple' => __DIR__ . '/..' . '/predis/predis/src/Command/StringGetMultiple.php',\n        'Predis\\\\Command\\\\StringGetRange' => __DIR__ . '/..' . '/predis/predis/src/Command/StringGetRange.php',\n        'Predis\\\\Command\\\\StringGetSet' => __DIR__ . '/..' . '/predis/predis/src/Command/StringGetSet.php',\n        'Predis\\\\Command\\\\StringIncrement' => __DIR__ . '/..' . '/predis/predis/src/Command/StringIncrement.php',\n        'Predis\\\\Command\\\\StringIncrementBy' => __DIR__ . '/..' . '/predis/predis/src/Command/StringIncrementBy.php',\n        'Predis\\\\Command\\\\StringIncrementByFloat' => __DIR__ . '/..' . '/predis/predis/src/Command/StringIncrementByFloat.php',\n        'Predis\\\\Command\\\\StringPreciseSetExpire' => __DIR__ . '/..' . '/predis/predis/src/Command/StringPreciseSetExpire.php',\n        'Predis\\\\Command\\\\StringSet' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSet.php',\n        'Predis\\\\Command\\\\StringSetBit' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetBit.php',\n        'Predis\\\\Command\\\\StringSetExpire' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetExpire.php',\n        'Predis\\\\Command\\\\StringSetMultiple' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetMultiple.php',\n        'Predis\\\\Command\\\\StringSetMultiplePreserve' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetMultiplePreserve.php',\n        'Predis\\\\Command\\\\StringSetPreserve' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetPreserve.php',\n        'Predis\\\\Command\\\\StringSetRange' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSetRange.php',\n        'Predis\\\\Command\\\\StringStrlen' => __DIR__ . '/..' . '/predis/predis/src/Command/StringStrlen.php',\n        'Predis\\\\Command\\\\StringSubstr' => __DIR__ . '/..' . '/predis/predis/src/Command/StringSubstr.php',\n        'Predis\\\\Command\\\\TransactionDiscard' => __DIR__ . '/..' . '/predis/predis/src/Command/TransactionDiscard.php',\n        'Predis\\\\Command\\\\TransactionExec' => __DIR__ . '/..' . '/predis/predis/src/Command/TransactionExec.php',\n        'Predis\\\\Command\\\\TransactionMulti' => __DIR__ . '/..' . '/predis/predis/src/Command/TransactionMulti.php',\n        'Predis\\\\Command\\\\TransactionUnwatch' => __DIR__ . '/..' . '/predis/predis/src/Command/TransactionUnwatch.php',\n        'Predis\\\\Command\\\\TransactionWatch' => __DIR__ . '/..' . '/predis/predis/src/Command/TransactionWatch.php',\n        'Predis\\\\Command\\\\ZSetAdd' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetAdd.php',\n        'Predis\\\\Command\\\\ZSetCardinality' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetCardinality.php',\n        'Predis\\\\Command\\\\ZSetCount' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetCount.php',\n        'Predis\\\\Command\\\\ZSetIncrementBy' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetIncrementBy.php',\n        'Predis\\\\Command\\\\ZSetIntersectionStore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetIntersectionStore.php',\n        'Predis\\\\Command\\\\ZSetLexCount' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetLexCount.php',\n        'Predis\\\\Command\\\\ZSetRange' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRange.php',\n        'Predis\\\\Command\\\\ZSetRangeByLex' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRangeByLex.php',\n        'Predis\\\\Command\\\\ZSetRangeByScore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRangeByScore.php',\n        'Predis\\\\Command\\\\ZSetRank' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRank.php',\n        'Predis\\\\Command\\\\ZSetRemove' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRemove.php',\n        'Predis\\\\Command\\\\ZSetRemoveRangeByLex' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRemoveRangeByLex.php',\n        'Predis\\\\Command\\\\ZSetRemoveRangeByRank' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRemoveRangeByRank.php',\n        'Predis\\\\Command\\\\ZSetRemoveRangeByScore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetRemoveRangeByScore.php',\n        'Predis\\\\Command\\\\ZSetReverseRange' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetReverseRange.php',\n        'Predis\\\\Command\\\\ZSetReverseRangeByLex' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetReverseRangeByLex.php',\n        'Predis\\\\Command\\\\ZSetReverseRangeByScore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetReverseRangeByScore.php',\n        'Predis\\\\Command\\\\ZSetReverseRank' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetReverseRank.php',\n        'Predis\\\\Command\\\\ZSetScan' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetScan.php',\n        'Predis\\\\Command\\\\ZSetScore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetScore.php',\n        'Predis\\\\Command\\\\ZSetUnionStore' => __DIR__ . '/..' . '/predis/predis/src/Command/ZSetUnionStore.php',\n        'Predis\\\\CommunicationException' => __DIR__ . '/..' . '/predis/predis/src/CommunicationException.php',\n        'Predis\\\\Configuration\\\\ClusterOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/ClusterOption.php',\n        'Predis\\\\Configuration\\\\ConnectionFactoryOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/ConnectionFactoryOption.php',\n        'Predis\\\\Configuration\\\\ExceptionsOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/ExceptionsOption.php',\n        'Predis\\\\Configuration\\\\OptionInterface' => __DIR__ . '/..' . '/predis/predis/src/Configuration/OptionInterface.php',\n        'Predis\\\\Configuration\\\\Options' => __DIR__ . '/..' . '/predis/predis/src/Configuration/Options.php',\n        'Predis\\\\Configuration\\\\OptionsInterface' => __DIR__ . '/..' . '/predis/predis/src/Configuration/OptionsInterface.php',\n        'Predis\\\\Configuration\\\\PrefixOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/PrefixOption.php',\n        'Predis\\\\Configuration\\\\ProfileOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/ProfileOption.php',\n        'Predis\\\\Configuration\\\\ReplicationOption' => __DIR__ . '/..' . '/predis/predis/src/Configuration/ReplicationOption.php',\n        'Predis\\\\Connection\\\\AbstractConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/AbstractConnection.php',\n        'Predis\\\\Connection\\\\AggregateConnectionInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/AggregateConnectionInterface.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\ClusterInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/ClusterInterface.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\MasterSlaveReplication' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/MasterSlaveReplication.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\PredisCluster' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/PredisCluster.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\RedisCluster' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/RedisCluster.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\ReplicationInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/ReplicationInterface.php',\n        'Predis\\\\Connection\\\\Aggregate\\\\SentinelReplication' => __DIR__ . '/..' . '/predis/predis/src/Connection/Aggregate/SentinelReplication.php',\n        'Predis\\\\Connection\\\\CompositeConnectionInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/CompositeConnectionInterface.php',\n        'Predis\\\\Connection\\\\CompositeStreamConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/CompositeStreamConnection.php',\n        'Predis\\\\Connection\\\\ConnectionException' => __DIR__ . '/..' . '/predis/predis/src/Connection/ConnectionException.php',\n        'Predis\\\\Connection\\\\ConnectionInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/ConnectionInterface.php',\n        'Predis\\\\Connection\\\\Factory' => __DIR__ . '/..' . '/predis/predis/src/Connection/Factory.php',\n        'Predis\\\\Connection\\\\FactoryInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/FactoryInterface.php',\n        'Predis\\\\Connection\\\\NodeConnectionInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/NodeConnectionInterface.php',\n        'Predis\\\\Connection\\\\Parameters' => __DIR__ . '/..' . '/predis/predis/src/Connection/Parameters.php',\n        'Predis\\\\Connection\\\\ParametersInterface' => __DIR__ . '/..' . '/predis/predis/src/Connection/ParametersInterface.php',\n        'Predis\\\\Connection\\\\PhpiredisSocketConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/PhpiredisSocketConnection.php',\n        'Predis\\\\Connection\\\\PhpiredisStreamConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/PhpiredisStreamConnection.php',\n        'Predis\\\\Connection\\\\StreamConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/StreamConnection.php',\n        'Predis\\\\Connection\\\\WebdisConnection' => __DIR__ . '/..' . '/predis/predis/src/Connection/WebdisConnection.php',\n        'Predis\\\\Monitor\\\\Consumer' => __DIR__ . '/..' . '/predis/predis/src/Monitor/Consumer.php',\n        'Predis\\\\NotSupportedException' => __DIR__ . '/..' . '/predis/predis/src/NotSupportedException.php',\n        'Predis\\\\Pipeline\\\\Atomic' => __DIR__ . '/..' . '/predis/predis/src/Pipeline/Atomic.php',\n        'Predis\\\\Pipeline\\\\ConnectionErrorProof' => __DIR__ . '/..' . '/predis/predis/src/Pipeline/ConnectionErrorProof.php',\n        'Predis\\\\Pipeline\\\\FireAndForget' => __DIR__ . '/..' . '/predis/predis/src/Pipeline/FireAndForget.php',\n        'Predis\\\\Pipeline\\\\Pipeline' => __DIR__ . '/..' . '/predis/predis/src/Pipeline/Pipeline.php',\n        'Predis\\\\PredisException' => __DIR__ . '/..' . '/predis/predis/src/PredisException.php',\n        'Predis\\\\Profile\\\\Factory' => __DIR__ . '/..' . '/predis/predis/src/Profile/Factory.php',\n        'Predis\\\\Profile\\\\ProfileInterface' => __DIR__ . '/..' . '/predis/predis/src/Profile/ProfileInterface.php',\n        'Predis\\\\Profile\\\\RedisProfile' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisProfile.php',\n        'Predis\\\\Profile\\\\RedisUnstable' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisUnstable.php',\n        'Predis\\\\Profile\\\\RedisVersion200' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion200.php',\n        'Predis\\\\Profile\\\\RedisVersion220' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion220.php',\n        'Predis\\\\Profile\\\\RedisVersion240' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion240.php',\n        'Predis\\\\Profile\\\\RedisVersion260' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion260.php',\n        'Predis\\\\Profile\\\\RedisVersion280' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion280.php',\n        'Predis\\\\Profile\\\\RedisVersion300' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion300.php',\n        'Predis\\\\Profile\\\\RedisVersion320' => __DIR__ . '/..' . '/predis/predis/src/Profile/RedisVersion320.php',\n        'Predis\\\\Protocol\\\\ProtocolException' => __DIR__ . '/..' . '/predis/predis/src/Protocol/ProtocolException.php',\n        'Predis\\\\Protocol\\\\ProtocolProcessorInterface' => __DIR__ . '/..' . '/predis/predis/src/Protocol/ProtocolProcessorInterface.php',\n        'Predis\\\\Protocol\\\\RequestSerializerInterface' => __DIR__ . '/..' . '/predis/predis/src/Protocol/RequestSerializerInterface.php',\n        'Predis\\\\Protocol\\\\ResponseReaderInterface' => __DIR__ . '/..' . '/predis/predis/src/Protocol/ResponseReaderInterface.php',\n        'Predis\\\\Protocol\\\\Text\\\\CompositeProtocolProcessor' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/CompositeProtocolProcessor.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\BulkResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/BulkResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\ErrorResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/ErrorResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\IntegerResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/IntegerResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\MultiBulkResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/MultiBulkResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\ResponseHandlerInterface' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/ResponseHandlerInterface.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\StatusResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/StatusResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\Handler\\\\StreamableMultiBulkResponse' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/Handler/StreamableMultiBulkResponse.php',\n        'Predis\\\\Protocol\\\\Text\\\\ProtocolProcessor' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/ProtocolProcessor.php',\n        'Predis\\\\Protocol\\\\Text\\\\RequestSerializer' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/RequestSerializer.php',\n        'Predis\\\\Protocol\\\\Text\\\\ResponseReader' => __DIR__ . '/..' . '/predis/predis/src/Protocol/Text/ResponseReader.php',\n        'Predis\\\\PubSub\\\\AbstractConsumer' => __DIR__ . '/..' . '/predis/predis/src/PubSub/AbstractConsumer.php',\n        'Predis\\\\PubSub\\\\Consumer' => __DIR__ . '/..' . '/predis/predis/src/PubSub/Consumer.php',\n        'Predis\\\\PubSub\\\\DispatcherLoop' => __DIR__ . '/..' . '/predis/predis/src/PubSub/DispatcherLoop.php',\n        'Predis\\\\Replication\\\\MissingMasterException' => __DIR__ . '/..' . '/predis/predis/src/Replication/MissingMasterException.php',\n        'Predis\\\\Replication\\\\ReplicationStrategy' => __DIR__ . '/..' . '/predis/predis/src/Replication/ReplicationStrategy.php',\n        'Predis\\\\Replication\\\\RoleException' => __DIR__ . '/..' . '/predis/predis/src/Replication/RoleException.php',\n        'Predis\\\\Response\\\\Error' => __DIR__ . '/..' . '/predis/predis/src/Response/Error.php',\n        'Predis\\\\Response\\\\ErrorInterface' => __DIR__ . '/..' . '/predis/predis/src/Response/ErrorInterface.php',\n        'Predis\\\\Response\\\\Iterator\\\\MultiBulk' => __DIR__ . '/..' . '/predis/predis/src/Response/Iterator/MultiBulk.php',\n        'Predis\\\\Response\\\\Iterator\\\\MultiBulkIterator' => __DIR__ . '/..' . '/predis/predis/src/Response/Iterator/MultiBulkIterator.php',\n        'Predis\\\\Response\\\\Iterator\\\\MultiBulkTuple' => __DIR__ . '/..' . '/predis/predis/src/Response/Iterator/MultiBulkTuple.php',\n        'Predis\\\\Response\\\\ResponseInterface' => __DIR__ . '/..' . '/predis/predis/src/Response/ResponseInterface.php',\n        'Predis\\\\Response\\\\ServerException' => __DIR__ . '/..' . '/predis/predis/src/Response/ServerException.php',\n        'Predis\\\\Response\\\\Status' => __DIR__ . '/..' . '/predis/predis/src/Response/Status.php',\n        'Predis\\\\Session\\\\Handler' => __DIR__ . '/..' . '/predis/predis/src/Session/Handler.php',\n        'Predis\\\\Transaction\\\\AbortedMultiExecException' => __DIR__ . '/..' . '/predis/predis/src/Transaction/AbortedMultiExecException.php',\n        'Predis\\\\Transaction\\\\MultiExec' => __DIR__ . '/..' . '/predis/predis/src/Transaction/MultiExec.php',\n        'Predis\\\\Transaction\\\\MultiExecState' => __DIR__ . '/..' . '/predis/predis/src/Transaction/MultiExecState.php',\n        'Prophecy\\\\Argument' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument.php',\n        'Prophecy\\\\Argument\\\\ArgumentsWildcard' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php',\n        'Prophecy\\\\Argument\\\\Token\\\\AnyValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\AnyValuesToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ApproximateValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ArrayCountToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ArrayEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ArrayEveryEntryToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\CallbackToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ExactValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\IdenticalValueToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\LogicalAndToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\LogicalNotToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\ObjectStateToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\StringContainsToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php',\n        'Prophecy\\\\Argument\\\\Token\\\\TokenInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php',\n        'Prophecy\\\\Argument\\\\Token\\\\TypeToken' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php',\n        'Prophecy\\\\Call\\\\Call' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/Call.php',\n        'Prophecy\\\\Call\\\\CallCenter' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Call/CallCenter.php',\n        'Prophecy\\\\Comparator\\\\ClosureComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php',\n        'Prophecy\\\\Comparator\\\\Factory' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/Factory.php',\n        'Prophecy\\\\Comparator\\\\ProphecyComparator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php',\n        'Prophecy\\\\Doubler\\\\CachedDoubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\ClassPatchInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\DisableConstructorPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\HhvmExceptionPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\KeywordPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\MagicCallPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\ProphecySubjectPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\ReflectionClassNewInstancePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\SplFileInfoPatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\ThrowablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php',\n        'Prophecy\\\\Doubler\\\\ClassPatch\\\\TraversablePatch' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php',\n        'Prophecy\\\\Doubler\\\\DoubleInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php',\n        'Prophecy\\\\Doubler\\\\Doubler' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\ClassCodeGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\ClassCreator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\ClassMirror' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\ArgumentNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\ClassNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\Node\\\\MethodNode' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\ReflectionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php',\n        'Prophecy\\\\Doubler\\\\Generator\\\\TypeHintReference' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php',\n        'Prophecy\\\\Doubler\\\\LazyDouble' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php',\n        'Prophecy\\\\Doubler\\\\NameGenerator' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php',\n        'Prophecy\\\\Exception\\\\Call\\\\UnexpectedCallException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\ClassCreatorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\ClassMirrorException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\ClassNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\DoubleException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\DoublerException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\InterfaceNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\MethodNotExtendableException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\MethodNotFoundException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php',\n        'Prophecy\\\\Exception\\\\Doubler\\\\ReturnByReferenceException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php',\n        'Prophecy\\\\Exception\\\\Exception' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Exception.php',\n        'Prophecy\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\AggregateException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\FailedPredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\NoCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\PredictionException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\UnexpectedCallsCountException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php',\n        'Prophecy\\\\Exception\\\\Prediction\\\\UnexpectedCallsException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php',\n        'Prophecy\\\\Exception\\\\Prophecy\\\\MethodProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php',\n        'Prophecy\\\\Exception\\\\Prophecy\\\\ObjectProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php',\n        'Prophecy\\\\Exception\\\\Prophecy\\\\ProphecyException' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php',\n        'Prophecy\\\\PhpDocumentor\\\\ClassAndInterfaceTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php',\n        'Prophecy\\\\PhpDocumentor\\\\ClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php',\n        'Prophecy\\\\PhpDocumentor\\\\LegacyClassTagRetriever' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php',\n        'Prophecy\\\\PhpDocumentor\\\\MethodTagRetrieverInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php',\n        'Prophecy\\\\Prediction\\\\CallPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php',\n        'Prophecy\\\\Prediction\\\\CallTimesPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php',\n        'Prophecy\\\\Prediction\\\\CallbackPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php',\n        'Prophecy\\\\Prediction\\\\NoCallsPrediction' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php',\n        'Prophecy\\\\Prediction\\\\PredictionInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php',\n        'Prophecy\\\\Promise\\\\CallbackPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php',\n        'Prophecy\\\\Promise\\\\PromiseInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php',\n        'Prophecy\\\\Promise\\\\ReturnArgumentPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php',\n        'Prophecy\\\\Promise\\\\ReturnPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php',\n        'Prophecy\\\\Promise\\\\ThrowPromise' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php',\n        'Prophecy\\\\Prophecy\\\\MethodProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php',\n        'Prophecy\\\\Prophecy\\\\ObjectProphecy' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php',\n        'Prophecy\\\\Prophecy\\\\ProphecyInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php',\n        'Prophecy\\\\Prophecy\\\\ProphecySubjectInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php',\n        'Prophecy\\\\Prophecy\\\\Revealer' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php',\n        'Prophecy\\\\Prophecy\\\\RevealerInterface' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php',\n        'Prophecy\\\\Prophet' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Prophet.php',\n        'Prophecy\\\\Util\\\\ExportUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php',\n        'Prophecy\\\\Util\\\\StringUtil' => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy/Util/StringUtil.php',\n        'Psr\\\\Container\\\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php',\n        'Psr\\\\Container\\\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php',\n        'Psr\\\\Container\\\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php',\n        'Psr\\\\Log\\\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php',\n        'Psr\\\\Log\\\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php',\n        'Psr\\\\Log\\\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php',\n        'Psr\\\\Log\\\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php',\n        'Psr\\\\Log\\\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php',\n        'Psr\\\\Log\\\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php',\n        'Psr\\\\Log\\\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php',\n        'Psr\\\\Log\\\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php',\n        'Psr\\\\Log\\\\Test\\\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',\n        'Psr\\\\Log\\\\Test\\\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php',\n        'Psr\\\\Log\\\\Test\\\\TestLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/TestLogger.php',\n        'Psr\\\\SimpleCache\\\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php',\n        'Psr\\\\SimpleCache\\\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php',\n        'Psr\\\\SimpleCache\\\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php',\n        'Psy\\\\CodeCleaner' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner.php',\n        'Psy\\\\CodeCleaner\\\\AbstractClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/AbstractClassPass.php',\n        'Psy\\\\CodeCleaner\\\\AssignThisVariablePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/AssignThisVariablePass.php',\n        'Psy\\\\CodeCleaner\\\\CallTimePassByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CallTimePassByReferencePass.php',\n        'Psy\\\\CodeCleaner\\\\CalledClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CalledClassPass.php',\n        'Psy\\\\CodeCleaner\\\\CodeCleanerPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/CodeCleanerPass.php',\n        'Psy\\\\CodeCleaner\\\\ExitPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ExitPass.php',\n        'Psy\\\\CodeCleaner\\\\FinalClassPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FinalClassPass.php',\n        'Psy\\\\CodeCleaner\\\\FunctionContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FunctionContextPass.php',\n        'Psy\\\\CodeCleaner\\\\FunctionReturnInWriteContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/FunctionReturnInWriteContextPass.php',\n        'Psy\\\\CodeCleaner\\\\ImplicitReturnPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ImplicitReturnPass.php',\n        'Psy\\\\CodeCleaner\\\\InstanceOfPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/InstanceOfPass.php',\n        'Psy\\\\CodeCleaner\\\\LeavePsyshAlonePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LeavePsyshAlonePass.php',\n        'Psy\\\\CodeCleaner\\\\LegacyEmptyPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LegacyEmptyPass.php',\n        'Psy\\\\CodeCleaner\\\\ListPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ListPass.php',\n        'Psy\\\\CodeCleaner\\\\LoopContextPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/LoopContextPass.php',\n        'Psy\\\\CodeCleaner\\\\MagicConstantsPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/MagicConstantsPass.php',\n        'Psy\\\\CodeCleaner\\\\NamespaceAwarePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NamespaceAwarePass.php',\n        'Psy\\\\CodeCleaner\\\\NamespacePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NamespacePass.php',\n        'Psy\\\\CodeCleaner\\\\NoReturnValue' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/NoReturnValue.php',\n        'Psy\\\\CodeCleaner\\\\PassableByReferencePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/PassableByReferencePass.php',\n        'Psy\\\\CodeCleaner\\\\RequirePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/RequirePass.php',\n        'Psy\\\\CodeCleaner\\\\StrictTypesPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/StrictTypesPass.php',\n        'Psy\\\\CodeCleaner\\\\UseStatementPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/UseStatementPass.php',\n        'Psy\\\\CodeCleaner\\\\ValidClassNamePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidClassNamePass.php',\n        'Psy\\\\CodeCleaner\\\\ValidConstantPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidConstantPass.php',\n        'Psy\\\\CodeCleaner\\\\ValidConstructorPass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidConstructorPass.php',\n        'Psy\\\\CodeCleaner\\\\ValidFunctionNamePass' => __DIR__ . '/..' . '/psy/psysh/src/CodeCleaner/ValidFunctionNamePass.php',\n        'Psy\\\\Command\\\\BufferCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/BufferCommand.php',\n        'Psy\\\\Command\\\\ClearCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ClearCommand.php',\n        'Psy\\\\Command\\\\Command' => __DIR__ . '/..' . '/psy/psysh/src/Command/Command.php',\n        'Psy\\\\Command\\\\DocCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/DocCommand.php',\n        'Psy\\\\Command\\\\DumpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/DumpCommand.php',\n        'Psy\\\\Command\\\\EditCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/EditCommand.php',\n        'Psy\\\\Command\\\\ExitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ExitCommand.php',\n        'Psy\\\\Command\\\\HelpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/HelpCommand.php',\n        'Psy\\\\Command\\\\HistoryCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/HistoryCommand.php',\n        'Psy\\\\Command\\\\ListCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand.php',\n        'Psy\\\\Command\\\\ListCommand\\\\ClassConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ClassConstantEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\ClassEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ClassEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\ConstantEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/ConstantEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\Enumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/Enumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\FunctionEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/FunctionEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\GlobalVariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/GlobalVariableEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\InterfaceEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/InterfaceEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\MethodEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/MethodEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\PropertyEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/PropertyEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\TraitEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/TraitEnumerator.php',\n        'Psy\\\\Command\\\\ListCommand\\\\VariableEnumerator' => __DIR__ . '/..' . '/psy/psysh/src/Command/ListCommand/VariableEnumerator.php',\n        'Psy\\\\Command\\\\ParseCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ParseCommand.php',\n        'Psy\\\\Command\\\\PsyVersionCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/PsyVersionCommand.php',\n        'Psy\\\\Command\\\\ReflectingCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ReflectingCommand.php',\n        'Psy\\\\Command\\\\ShowCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ShowCommand.php',\n        'Psy\\\\Command\\\\SudoCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/SudoCommand.php',\n        'Psy\\\\Command\\\\ThrowUpCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/ThrowUpCommand.php',\n        'Psy\\\\Command\\\\TimeitCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand.php',\n        'Psy\\\\Command\\\\TimeitCommand\\\\TimeitVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Command/TimeitCommand/TimeitVisitor.php',\n        'Psy\\\\Command\\\\TraceCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/TraceCommand.php',\n        'Psy\\\\Command\\\\WhereamiCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WhereamiCommand.php',\n        'Psy\\\\Command\\\\WtfCommand' => __DIR__ . '/..' . '/psy/psysh/src/Command/WtfCommand.php',\n        'Psy\\\\ConfigPaths' => __DIR__ . '/..' . '/psy/psysh/src/ConfigPaths.php',\n        'Psy\\\\Configuration' => __DIR__ . '/..' . '/psy/psysh/src/Configuration.php',\n        'Psy\\\\ConsoleColorFactory' => __DIR__ . '/..' . '/psy/psysh/src/ConsoleColorFactory.php',\n        'Psy\\\\Context' => __DIR__ . '/..' . '/psy/psysh/src/Context.php',\n        'Psy\\\\ContextAware' => __DIR__ . '/..' . '/psy/psysh/src/ContextAware.php',\n        'Psy\\\\Exception\\\\BreakException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/BreakException.php',\n        'Psy\\\\Exception\\\\DeprecatedException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/DeprecatedException.php',\n        'Psy\\\\Exception\\\\ErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ErrorException.php',\n        'Psy\\\\Exception\\\\Exception' => __DIR__ . '/..' . '/psy/psysh/src/Exception/Exception.php',\n        'Psy\\\\Exception\\\\FatalErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/FatalErrorException.php',\n        'Psy\\\\Exception\\\\ParseErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ParseErrorException.php',\n        'Psy\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/RuntimeException.php',\n        'Psy\\\\Exception\\\\ThrowUpException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/ThrowUpException.php',\n        'Psy\\\\Exception\\\\TypeErrorException' => __DIR__ . '/..' . '/psy/psysh/src/Exception/TypeErrorException.php',\n        'Psy\\\\ExecutionClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionClosure.php',\n        'Psy\\\\ExecutionLoop' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop.php',\n        'Psy\\\\ExecutionLoopClosure' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoopClosure.php',\n        'Psy\\\\ExecutionLoop\\\\AbstractListener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/AbstractListener.php',\n        'Psy\\\\ExecutionLoop\\\\Listener' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/Listener.php',\n        'Psy\\\\ExecutionLoop\\\\ProcessForker' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/ProcessForker.php',\n        'Psy\\\\ExecutionLoop\\\\RunkitReloader' => __DIR__ . '/..' . '/psy/psysh/src/ExecutionLoop/RunkitReloader.php',\n        'Psy\\\\Formatter\\\\CodeFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/CodeFormatter.php',\n        'Psy\\\\Formatter\\\\DocblockFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/DocblockFormatter.php',\n        'Psy\\\\Formatter\\\\Formatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/Formatter.php',\n        'Psy\\\\Formatter\\\\SignatureFormatter' => __DIR__ . '/..' . '/psy/psysh/src/Formatter/SignatureFormatter.php',\n        'Psy\\\\Input\\\\CodeArgument' => __DIR__ . '/..' . '/psy/psysh/src/Input/CodeArgument.php',\n        'Psy\\\\Input\\\\FilterOptions' => __DIR__ . '/..' . '/psy/psysh/src/Input/FilterOptions.php',\n        'Psy\\\\Input\\\\ShellInput' => __DIR__ . '/..' . '/psy/psysh/src/Input/ShellInput.php',\n        'Psy\\\\Input\\\\SilentInput' => __DIR__ . '/..' . '/psy/psysh/src/Input/SilentInput.php',\n        'Psy\\\\Output\\\\OutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/OutputPager.php',\n        'Psy\\\\Output\\\\PassthruPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/PassthruPager.php',\n        'Psy\\\\Output\\\\ProcOutputPager' => __DIR__ . '/..' . '/psy/psysh/src/Output/ProcOutputPager.php',\n        'Psy\\\\Output\\\\ShellOutput' => __DIR__ . '/..' . '/psy/psysh/src/Output/ShellOutput.php',\n        'Psy\\\\ParserFactory' => __DIR__ . '/..' . '/psy/psysh/src/ParserFactory.php',\n        'Psy\\\\Readline\\\\GNUReadline' => __DIR__ . '/..' . '/psy/psysh/src/Readline/GNUReadline.php',\n        'Psy\\\\Readline\\\\HoaConsole' => __DIR__ . '/..' . '/psy/psysh/src/Readline/HoaConsole.php',\n        'Psy\\\\Readline\\\\Libedit' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Libedit.php',\n        'Psy\\\\Readline\\\\Readline' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Readline.php',\n        'Psy\\\\Readline\\\\Transient' => __DIR__ . '/..' . '/psy/psysh/src/Readline/Transient.php',\n        'Psy\\\\Reflection\\\\ReflectionClassConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionClassConstant.php',\n        'Psy\\\\Reflection\\\\ReflectionConstant' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant.php',\n        'Psy\\\\Reflection\\\\ReflectionConstant_' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionConstant_.php',\n        'Psy\\\\Reflection\\\\ReflectionLanguageConstruct' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstruct.php',\n        'Psy\\\\Reflection\\\\ReflectionLanguageConstructParameter' => __DIR__ . '/..' . '/psy/psysh/src/Reflection/ReflectionLanguageConstructParameter.php',\n        'Psy\\\\Shell' => __DIR__ . '/..' . '/psy/psysh/src/Shell.php',\n        'Psy\\\\Sudo' => __DIR__ . '/..' . '/psy/psysh/src/Sudo.php',\n        'Psy\\\\Sudo\\\\SudoVisitor' => __DIR__ . '/..' . '/psy/psysh/src/Sudo/SudoVisitor.php',\n        'Psy\\\\TabCompletion\\\\AutoCompleter' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/AutoCompleter.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractContextAwareMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractContextAwareMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractDefaultParametersMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\AbstractMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/AbstractMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ClassAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassAttributesMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ClassMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodDefaultParametersMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ClassMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassMethodsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ClassNamesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ClassNamesMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\CommandsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/CommandsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ConstantsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ConstantsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\FunctionDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/FunctionDefaultParametersMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\FunctionsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/FunctionsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\KeywordsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/KeywordsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\MongoClientMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/MongoClientMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\MongoDatabaseMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/MongoDatabaseMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectAttributesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectAttributesMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectMethodDefaultParametersMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodDefaultParametersMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\ObjectMethodsMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/ObjectMethodsMatcher.php',\n        'Psy\\\\TabCompletion\\\\Matcher\\\\VariablesMatcher' => __DIR__ . '/..' . '/psy/psysh/src/TabCompletion/Matcher/VariablesMatcher.php',\n        'Psy\\\\Util\\\\Docblock' => __DIR__ . '/..' . '/psy/psysh/src/Util/Docblock.php',\n        'Psy\\\\Util\\\\Json' => __DIR__ . '/..' . '/psy/psysh/src/Util/Json.php',\n        'Psy\\\\Util\\\\Mirror' => __DIR__ . '/..' . '/psy/psysh/src/Util/Mirror.php',\n        'Psy\\\\Util\\\\Str' => __DIR__ . '/..' . '/psy/psysh/src/Util/Str.php',\n        'Psy\\\\VarDumper\\\\Cloner' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Cloner.php',\n        'Psy\\\\VarDumper\\\\Dumper' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Dumper.php',\n        'Psy\\\\VarDumper\\\\Presenter' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/Presenter.php',\n        'Psy\\\\VarDumper\\\\PresenterAware' => __DIR__ . '/..' . '/psy/psysh/src/VarDumper/PresenterAware.php',\n        'Psy\\\\VersionUpdater\\\\Checker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/Checker.php',\n        'Psy\\\\VersionUpdater\\\\GitHubChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/GitHubChecker.php',\n        'Psy\\\\VersionUpdater\\\\IntervalChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/IntervalChecker.php',\n        'Psy\\\\VersionUpdater\\\\NoopChecker' => __DIR__ . '/..' . '/psy/psysh/src/VersionUpdater/NoopChecker.php',\n        'Qiniu\\\\Auth' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Auth.php',\n        'Qiniu\\\\Cdn\\\\CdnManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Cdn/CdnManager.php',\n        'Qiniu\\\\Config' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Config.php',\n        'Qiniu\\\\Etag' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Etag.php',\n        'Qiniu\\\\Http\\\\Client' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Client.php',\n        'Qiniu\\\\Http\\\\Error' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Error.php',\n        'Qiniu\\\\Http\\\\Request' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Request.php',\n        'Qiniu\\\\Http\\\\Response' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Http/Response.php',\n        'Qiniu\\\\Processing\\\\ImageUrlBuilder' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/ImageUrlBuilder.php',\n        'Qiniu\\\\Processing\\\\Operation' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/Operation.php',\n        'Qiniu\\\\Processing\\\\PersistentFop' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Processing/PersistentFop.php',\n        'Qiniu\\\\Region' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Region.php',\n        'Qiniu\\\\Rtc\\\\AppClient' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Rtc/AppClient.php',\n        'Qiniu\\\\Sms\\\\Sms' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Sms/Sms.php',\n        'Qiniu\\\\Storage\\\\ArgusManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/ArgusManager.php',\n        'Qiniu\\\\Storage\\\\BucketManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/BucketManager.php',\n        'Qiniu\\\\Storage\\\\FormUploader' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/FormUploader.php',\n        'Qiniu\\\\Storage\\\\ResumeUploader' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/ResumeUploader.php',\n        'Qiniu\\\\Storage\\\\UploadManager' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Storage/UploadManager.php',\n        'Qiniu\\\\Zone' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Zone.php',\n        'Ramsey\\\\Uuid\\\\BinaryUtils' => __DIR__ . '/..' . '/ramsey/uuid/src/BinaryUtils.php',\n        'Ramsey\\\\Uuid\\\\Builder\\\\DefaultUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DefaultUuidBuilder.php',\n        'Ramsey\\\\Uuid\\\\Builder\\\\DegradedUuidBuilder' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/DegradedUuidBuilder.php',\n        'Ramsey\\\\Uuid\\\\Builder\\\\UuidBuilderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Builder/UuidBuilderInterface.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\CodecInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/CodecInterface.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\GuidStringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/GuidStringCodec.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\OrderedTimeCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/OrderedTimeCodec.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\StringCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/StringCodec.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\TimestampFirstCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php',\n        'Ramsey\\\\Uuid\\\\Codec\\\\TimestampLastCombCodec' => __DIR__ . '/..' . '/ramsey/uuid/src/Codec/TimestampLastCombCodec.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\NumberConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/NumberConverterInterface.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\Number\\\\BigNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/BigNumberConverter.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\Number\\\\DegradedNumberConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\TimeConverterInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/TimeConverterInterface.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\BigNumberTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\DegradedTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php',\n        'Ramsey\\\\Uuid\\\\Converter\\\\Time\\\\PhpTimeConverter' => __DIR__ . '/..' . '/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php',\n        'Ramsey\\\\Uuid\\\\DegradedUuid' => __DIR__ . '/..' . '/ramsey/uuid/src/DegradedUuid.php',\n        'Ramsey\\\\Uuid\\\\Exception\\\\InvalidUuidStringException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/InvalidUuidStringException.php',\n        'Ramsey\\\\Uuid\\\\Exception\\\\UnsatisfiedDependencyException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php',\n        'Ramsey\\\\Uuid\\\\Exception\\\\UnsupportedOperationException' => __DIR__ . '/..' . '/ramsey/uuid/src/Exception/UnsupportedOperationException.php',\n        'Ramsey\\\\Uuid\\\\FeatureSet' => __DIR__ . '/..' . '/ramsey/uuid/src/FeatureSet.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\CombGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/CombGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\DefaultTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/DefaultTimeGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\MtRandGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/MtRandGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\OpenSslGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/OpenSslGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\PeclUuidRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\PeclUuidTimeGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\RandomBytesGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomBytesGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\RandomGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorFactory.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\RandomGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomGeneratorInterface.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\RandomLibAdapter' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/RandomLibAdapter.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\SodiumRandomGenerator' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/SodiumRandomGenerator.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\TimeGeneratorFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorFactory.php',\n        'Ramsey\\\\Uuid\\\\Generator\\\\TimeGeneratorInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Generator/TimeGeneratorInterface.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\NodeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/NodeProviderInterface.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\FallbackNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\RandomNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\Node\\\\SystemNodeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\TimeProviderInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/TimeProviderInterface.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\Time\\\\FixedTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php',\n        'Ramsey\\\\Uuid\\\\Provider\\\\Time\\\\SystemTimeProvider' => __DIR__ . '/..' . '/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php',\n        'Ramsey\\\\Uuid\\\\Uuid' => __DIR__ . '/..' . '/ramsey/uuid/src/Uuid.php',\n        'Ramsey\\\\Uuid\\\\UuidFactory' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactory.php',\n        'Ramsey\\\\Uuid\\\\UuidFactoryInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidFactoryInterface.php',\n        'Ramsey\\\\Uuid\\\\UuidInterface' => __DIR__ . '/..' . '/ramsey/uuid/src/UuidInterface.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Driver\\\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Node\\\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Html\\\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Report\\\\Xml\\\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php',\n        'SebastianBergmann\\\\CodeCoverage\\\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php',\n        'SebastianBergmann\\\\CodeUnitReverseLookup\\\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',\n        'SebastianBergmann\\\\Comparator\\\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',\n        'SebastianBergmann\\\\Comparator\\\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',\n        'SebastianBergmann\\\\Comparator\\\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',\n        'SebastianBergmann\\\\Comparator\\\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',\n        'SebastianBergmann\\\\Comparator\\\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',\n        'SebastianBergmann\\\\Diff\\\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',\n        'SebastianBergmann\\\\Diff\\\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php',\n        'SebastianBergmann\\\\Diff\\\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',\n        'SebastianBergmann\\\\Diff\\\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',\n        'SebastianBergmann\\\\Diff\\\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php',\n        'SebastianBergmann\\\\Diff\\\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php',\n        'SebastianBergmann\\\\Diff\\\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',\n        'SebastianBergmann\\\\Diff\\\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php',\n        'SebastianBergmann\\\\Diff\\\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php',\n        'SebastianBergmann\\\\Diff\\\\Output\\\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php',\n        'SebastianBergmann\\\\Diff\\\\Output\\\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php',\n        'SebastianBergmann\\\\Diff\\\\Output\\\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php',\n        'SebastianBergmann\\\\Diff\\\\Output\\\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php',\n        'SebastianBergmann\\\\Diff\\\\Output\\\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php',\n        'SebastianBergmann\\\\Diff\\\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',\n        'SebastianBergmann\\\\Diff\\\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php',\n        'SebastianBergmann\\\\Environment\\\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',\n        'SebastianBergmann\\\\Environment\\\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php',\n        'SebastianBergmann\\\\Environment\\\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',\n        'SebastianBergmann\\\\Exporter\\\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',\n        'SebastianBergmann\\\\FileIterator\\\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',\n        'SebastianBergmann\\\\FileIterator\\\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',\n        'SebastianBergmann\\\\FileIterator\\\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',\n        'SebastianBergmann\\\\GlobalState\\\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',\n        'SebastianBergmann\\\\GlobalState\\\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',\n        'SebastianBergmann\\\\GlobalState\\\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php',\n        'SebastianBergmann\\\\GlobalState\\\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',\n        'SebastianBergmann\\\\GlobalState\\\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php',\n        'SebastianBergmann\\\\GlobalState\\\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',\n        'SebastianBergmann\\\\ObjectEnumerator\\\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',\n        'SebastianBergmann\\\\ObjectEnumerator\\\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',\n        'SebastianBergmann\\\\ObjectEnumerator\\\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',\n        'SebastianBergmann\\\\ObjectReflector\\\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php',\n        'SebastianBergmann\\\\ObjectReflector\\\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php',\n        'SebastianBergmann\\\\ObjectReflector\\\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php',\n        'SebastianBergmann\\\\RecursionContext\\\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',\n        'SebastianBergmann\\\\RecursionContext\\\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',\n        'SebastianBergmann\\\\RecursionContext\\\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',\n        'SebastianBergmann\\\\ResourceOperations\\\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',\n        'SebastianBergmann\\\\Timer\\\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/Exception.php',\n        'SebastianBergmann\\\\Timer\\\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php',\n        'SebastianBergmann\\\\Timer\\\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',\n        'SebastianBergmann\\\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',\n        'ShareManT\\\\EditorMd\\\\Editor' => __DIR__ . '/..' . '/sharemant/laravel-admin-ext-editormd/src/Editor.php',\n        'ShareManT\\\\EditorMd\\\\EditorMd' => __DIR__ . '/..' . '/sharemant/laravel-admin-ext-editormd/src/EditorMd.php',\n        'ShareManT\\\\EditorMd\\\\EditorMdServiceProvider' => __DIR__ . '/..' . '/sharemant/laravel-admin-ext-editormd/src/EditorMdServiceProvider.php',\n        'Spatie\\\\EloquentSortable\\\\Sortable' => __DIR__ . '/..' . '/spatie/eloquent-sortable/src/Sortable.php',\n        'Spatie\\\\EloquentSortable\\\\SortableTrait' => __DIR__ . '/..' . '/spatie/eloquent-sortable/src/SortableTrait.php',\n        'Spatie\\\\Pjax\\\\Middleware\\\\FilterIfPjax' => __DIR__ . '/..' . '/spatie/laravel-pjax/src/Middleware/FilterIfPjax.php',\n        'Symfony\\\\Component\\\\Console\\\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php',\n        'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php',\n        'Symfony\\\\Component\\\\Console\\\\CommandLoader\\\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php',\n        'Symfony\\\\Component\\\\Console\\\\Command\\\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php',\n        'Symfony\\\\Component\\\\Console\\\\Command\\\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php',\n        'Symfony\\\\Component\\\\Console\\\\Command\\\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php',\n        'Symfony\\\\Component\\\\Console\\\\Command\\\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php',\n        'Symfony\\\\Component\\\\Console\\\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php',\n        'Symfony\\\\Component\\\\Console\\\\DependencyInjection\\\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php',\n        'Symfony\\\\Component\\\\Console\\\\Descriptor\\\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php',\n        'Symfony\\\\Component\\\\Console\\\\EventListener\\\\ErrorListener' => __DIR__ . '/..' . '/symfony/console/EventListener/ErrorListener.php',\n        'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleCommandEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleCommandEvent.php',\n        'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleErrorEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleErrorEvent.php',\n        'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleEvent.php',\n        'Symfony\\\\Component\\\\Console\\\\Event\\\\ConsoleTerminateEvent' => __DIR__ . '/..' . '/symfony/console/Event/ConsoleTerminateEvent.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php',\n        'Symfony\\\\Component\\\\Console\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php',\n        'Symfony\\\\Component\\\\Console\\\\Formatter\\\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php',\n        'Symfony\\\\Component\\\\Console\\\\Helper\\\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Input\\\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php',\n        'Symfony\\\\Component\\\\Console\\\\Logger\\\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Output\\\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php',\n        'Symfony\\\\Component\\\\Console\\\\Question\\\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php',\n        'Symfony\\\\Component\\\\Console\\\\Question\\\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php',\n        'Symfony\\\\Component\\\\Console\\\\Question\\\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php',\n        'Symfony\\\\Component\\\\Console\\\\Style\\\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php',\n        'Symfony\\\\Component\\\\Console\\\\Style\\\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php',\n        'Symfony\\\\Component\\\\Console\\\\Style\\\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php',\n        'Symfony\\\\Component\\\\Console\\\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php',\n        'Symfony\\\\Component\\\\Console\\\\Tester\\\\ApplicationTester' => __DIR__ . '/..' . '/symfony/console/Tester/ApplicationTester.php',\n        'Symfony\\\\Component\\\\Console\\\\Tester\\\\CommandTester' => __DIR__ . '/..' . '/symfony/console/Tester/CommandTester.php',\n        'Symfony\\\\Component\\\\Console\\\\Tester\\\\TesterTrait' => __DIR__ . '/..' . '/symfony/console/Tester/TesterTrait.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\CssSelectorConverter' => __DIR__ . '/..' . '/symfony/css-selector/CssSelectorConverter.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ExpressionErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ExpressionErrorException.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\InternalErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/InternalErrorException.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\ParseException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/ParseException.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Exception\\\\SyntaxErrorException' => __DIR__ . '/..' . '/symfony/css-selector/Exception/SyntaxErrorException.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\AbstractNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AbstractNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\AttributeNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/AttributeNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\ClassNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ClassNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\CombinedSelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/CombinedSelectorNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\ElementNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/ElementNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\FunctionNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/FunctionNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\HashNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/HashNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\NegationNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/NegationNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\NodeInterface' => __DIR__ . '/..' . '/symfony/css-selector/Node/NodeInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\PseudoNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/PseudoNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\SelectorNode' => __DIR__ . '/..' . '/symfony/css-selector/Node/SelectorNode.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Node\\\\Specificity' => __DIR__ . '/..' . '/symfony/css-selector/Node/Specificity.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\CommentHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/CommentHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\HandlerInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HandlerInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\HashHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/HashHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\IdentifierHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/IdentifierHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\NumberHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/NumberHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\StringHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/StringHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Handler\\\\WhitespaceHandler' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Handler/WhitespaceHandler.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Parser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Parser.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\ParserInterface' => __DIR__ . '/..' . '/symfony/css-selector/Parser/ParserInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Reader' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Reader.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\ClassParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ClassParser.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\ElementParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/ElementParser.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\EmptyStringParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/EmptyStringParser.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Shortcut\\\\HashParser' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Shortcut/HashParser.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Token' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Token.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\TokenStream' => __DIR__ . '/..' . '/symfony/css-selector/Parser/TokenStream.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\Tokenizer' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/Tokenizer.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\TokenizerEscaping' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerEscaping.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\Parser\\\\Tokenizer\\\\TokenizerPatterns' => __DIR__ . '/..' . '/symfony/css-selector/Parser/Tokenizer/TokenizerPatterns.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\AbstractExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AbstractExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\AttributeMatchingExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/AttributeMatchingExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\CombinationExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/CombinationExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\ExtensionInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/ExtensionInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\FunctionExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/FunctionExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\HtmlExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/HtmlExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\NodeExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/NodeExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Extension\\\\PseudoClassExtension' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Extension/PseudoClassExtension.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\Translator' => __DIR__ . '/..' . '/symfony/css-selector/XPath/Translator.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/css-selector/XPath/TranslatorInterface.php',\n        'Symfony\\\\Component\\\\CssSelector\\\\XPath\\\\XPathExpr' => __DIR__ . '/..' . '/symfony/css-selector/XPath/XPathExpr.php',\n        'Symfony\\\\Component\\\\Debug\\\\BufferingLogger' => __DIR__ . '/..' . '/symfony/debug/BufferingLogger.php',\n        'Symfony\\\\Component\\\\Debug\\\\Debug' => __DIR__ . '/..' . '/symfony/debug/Debug.php',\n        'Symfony\\\\Component\\\\Debug\\\\DebugClassLoader' => __DIR__ . '/..' . '/symfony/debug/DebugClassLoader.php',\n        'Symfony\\\\Component\\\\Debug\\\\ErrorHandler' => __DIR__ . '/..' . '/symfony/debug/ErrorHandler.php',\n        'Symfony\\\\Component\\\\Debug\\\\ExceptionHandler' => __DIR__ . '/..' . '/symfony/debug/ExceptionHandler.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\ClassNotFoundException' => __DIR__ . '/..' . '/symfony/debug/Exception/ClassNotFoundException.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FatalErrorException' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalErrorException.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FatalThrowableError' => __DIR__ . '/..' . '/symfony/debug/Exception/FatalThrowableError.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\FlattenException' => __DIR__ . '/..' . '/symfony/debug/Exception/FlattenException.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\OutOfMemoryException' => __DIR__ . '/..' . '/symfony/debug/Exception/OutOfMemoryException.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\SilencedErrorContext' => __DIR__ . '/..' . '/symfony/debug/Exception/SilencedErrorContext.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\UndefinedFunctionException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedFunctionException.php',\n        'Symfony\\\\Component\\\\Debug\\\\Exception\\\\UndefinedMethodException' => __DIR__ . '/..' . '/symfony/debug/Exception/UndefinedMethodException.php',\n        'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\ClassNotFoundFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/ClassNotFoundFatalErrorHandler.php',\n        'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\FatalErrorHandlerInterface' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/FatalErrorHandlerInterface.php',\n        'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\UndefinedFunctionFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedFunctionFatalErrorHandler.php',\n        'Symfony\\\\Component\\\\Debug\\\\FatalErrorHandler\\\\UndefinedMethodFatalErrorHandler' => __DIR__ . '/..' . '/symfony/debug/FatalErrorHandler/UndefinedMethodFatalErrorHandler.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\AbstractUriElement' => __DIR__ . '/..' . '/symfony/dom-crawler/AbstractUriElement.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Crawler' => __DIR__ . '/..' . '/symfony/dom-crawler/Crawler.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\ChoiceFormField' => __DIR__ . '/..' . '/symfony/dom-crawler/Field/ChoiceFormField.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FileFormField' => __DIR__ . '/..' . '/symfony/dom-crawler/Field/FileFormField.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField' => __DIR__ . '/..' . '/symfony/dom-crawler/Field/FormField.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\InputFormField' => __DIR__ . '/..' . '/symfony/dom-crawler/Field/InputFormField.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\TextareaFormField' => __DIR__ . '/..' . '/symfony/dom-crawler/Field/TextareaFormField.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Form' => __DIR__ . '/..' . '/symfony/dom-crawler/Form.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\FormFieldRegistry' => __DIR__ . '/..' . '/symfony/dom-crawler/FormFieldRegistry.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Image' => __DIR__ . '/..' . '/symfony/dom-crawler/Image.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Link' => __DIR__ . '/..' . '/symfony/dom-crawler/Link.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorAttributeValueSame' => __DIR__ . '/..' . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorAttributeValueSame.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorExists' => __DIR__ . '/..' . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorExists.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorTextContains' => __DIR__ . '/..' . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorTextContains.php',\n        'Symfony\\\\Component\\\\DomCrawler\\\\Test\\\\Constraint\\\\CrawlerSelectorTextSame' => __DIR__ . '/..' . '/symfony/dom-crawler/Test/Constraint/CrawlerSelectorTextSame.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\TraceableEventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\Debug\\\\WrappedListener' => __DIR__ . '/..' . '/symfony/event-dispatcher/Debug/WrappedListener.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\DependencyInjection\\\\ExtractingEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\DependencyInjection\\\\RegisterListenersPass' => __DIR__ . '/..' . '/symfony/event-dispatcher/DependencyInjection/RegisterListenersPass.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\Event' => __DIR__ . '/..' . '/symfony/event-dispatcher/Event.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\EventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcher.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\EventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventDispatcherInterface.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\EventSubscriberInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher/EventSubscriberInterface.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\GenericEvent' => __DIR__ . '/..' . '/symfony/event-dispatcher/GenericEvent.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\ImmutableEventDispatcher' => __DIR__ . '/..' . '/symfony/event-dispatcher/ImmutableEventDispatcher.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\LegacyEventDispatcherProxy' => __DIR__ . '/..' . '/symfony/event-dispatcher/LegacyEventDispatcherProxy.php',\n        'Symfony\\\\Component\\\\EventDispatcher\\\\LegacyEventProxy' => __DIR__ . '/..' . '/symfony/event-dispatcher/LegacyEventProxy.php',\n        'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Comparator\\\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Exception\\\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php',\n        'Symfony\\\\Component\\\\Finder\\\\Exception\\\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php',\n        'Symfony\\\\Component\\\\Finder\\\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php',\n        'Symfony\\\\Component\\\\Finder\\\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php',\n        'Symfony\\\\Component\\\\Finder\\\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\Iterator\\\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php',\n        'Symfony\\\\Component\\\\Finder\\\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\AcceptHeader' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeader.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\AcceptHeaderItem' => __DIR__ . '/..' . '/symfony/http-foundation/AcceptHeaderItem.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\ApacheRequest' => __DIR__ . '/..' . '/symfony/http-foundation/ApacheRequest.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\BinaryFileResponse' => __DIR__ . '/..' . '/symfony/http-foundation/BinaryFileResponse.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Cookie' => __DIR__ . '/..' . '/symfony/http-foundation/Cookie.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\ConflictingHeadersException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/ConflictingHeadersException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\RequestExceptionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/RequestExceptionInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Exception\\\\SuspiciousOperationException' => __DIR__ . '/..' . '/symfony/http-foundation/Exception/SuspiciousOperationException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\ExpressionRequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/ExpressionRequestMatcher.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\FileBag' => __DIR__ . '/..' . '/symfony/http-foundation/FileBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/AccessDeniedException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\CannotWriteFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/CannotWriteFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\ExtensionFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/ExtensionFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FileNotFoundException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\FormSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/FormSizeFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\IniSizeFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/IniSizeFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\NoFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\NoTmpDirFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/NoTmpDirFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\PartialFileException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/PartialFileException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\UnexpectedTypeException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UnexpectedTypeException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Exception\\\\UploadException' => __DIR__ . '/..' . '/symfony/http-foundation/File/Exception/UploadException.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\File' => __DIR__ . '/..' . '/symfony/http-foundation/File/File.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\ExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesser.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\ExtensionGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/ExtensionGuesserInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\FileBinaryMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileBinaryMimeTypeGuesser.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\FileinfoMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/FileinfoMimeTypeGuesser.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeExtensionGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeExtensionGuesser.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeGuesser' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\MimeType\\\\MimeTypeGuesserInterface' => __DIR__ . '/..' . '/symfony/http-foundation/File/MimeType/MimeTypeGuesserInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\Stream' => __DIR__ . '/..' . '/symfony/http-foundation/File/Stream.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\File\\\\UploadedFile' => __DIR__ . '/..' . '/symfony/http-foundation/File/UploadedFile.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\HeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\HeaderUtils' => __DIR__ . '/..' . '/symfony/http-foundation/HeaderUtils.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\IpUtils' => __DIR__ . '/..' . '/symfony/http-foundation/IpUtils.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\JsonResponse' => __DIR__ . '/..' . '/symfony/http-foundation/JsonResponse.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\ParameterBag' => __DIR__ . '/..' . '/symfony/http-foundation/ParameterBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse' => __DIR__ . '/..' . '/symfony/http-foundation/RedirectResponse.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Request' => __DIR__ . '/..' . '/symfony/http-foundation/Request.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\RequestMatcher' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcher.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/http-foundation/RequestMatcherInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\RequestStack' => __DIR__ . '/..' . '/symfony/http-foundation/RequestStack.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Response' => __DIR__ . '/..' . '/symfony/http-foundation/Response.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\ResponseHeaderBag' => __DIR__ . '/..' . '/symfony/http-foundation/ResponseHeaderBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\ServerBag' => __DIR__ . '/..' . '/symfony/http-foundation/ServerBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\AttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\AttributeBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/AttributeBagInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Attribute\\\\NamespacedAttributeBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Attribute/NamespacedAttributeBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\AutoExpireFlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/AutoExpireFlashBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\FlashBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Flash\\\\FlashBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Flash/FlashBagInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Session' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Session.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionBagInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionBagProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionBagProxy.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionUtils' => __DIR__ . '/..' . '/symfony/http-foundation/Session/SessionUtils.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\AbstractSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MemcachedSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MigratingSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MigratingSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\MongoDbSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\NativeFileSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\NullSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/NullSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\PdoSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\RedisSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Handler\\\\StrictSessionHandler' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MetadataBag' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MetadataBag.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MockArraySessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\MockFileSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\NativeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/NativeSessionStorage.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\PhpBridgeSessionStorage' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/PhpBridgeSessionStorage.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Proxy\\\\AbstractProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\Proxy\\\\SessionHandlerProxy' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/Proxy/SessionHandlerProxy.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\Storage\\\\SessionStorageInterface' => __DIR__ . '/..' . '/symfony/http-foundation/Session/Storage/SessionStorageInterface.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\StreamedResponse' => __DIR__ . '/..' . '/symfony/http-foundation/StreamedResponse.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\RequestAttributeValueSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/RequestAttributeValueSame.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseCookieValueSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseCookieValueSame.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHasCookie' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHasCookie.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHasHeader' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHasHeader.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseHeaderSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseHeaderSame.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseIsRedirected' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsRedirected.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseIsSuccessful' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseIsSuccessful.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\Test\\\\Constraint\\\\ResponseStatusCodeSame' => __DIR__ . '/..' . '/symfony/http-foundation/Test/Constraint/ResponseStatusCodeSame.php',\n        'Symfony\\\\Component\\\\HttpFoundation\\\\UrlHelper' => __DIR__ . '/..' . '/symfony/http-foundation/UrlHelper.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Bundle\\\\Bundle' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/Bundle.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Bundle\\\\BundleInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Bundle/BundleInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\CacheClearerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/CacheClearerInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\ChainCacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/ChainCacheClearer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheClearer\\\\Psr6CacheClearer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheClearer/Psr6CacheClearer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmer' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmerAggregate' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\CacheWarmerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/CacheWarmerInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\CacheWarmer\\\\WarmableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/CacheWarmer/WarmableInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Client' => __DIR__ . '/..' . '/symfony/http-kernel/Client.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Config\\\\FileLocator' => __DIR__ . '/..' . '/symfony/http-kernel/Config/FileLocator.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadata' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadata.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadataFactory' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactory.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\ControllerMetadata\\\\ArgumentMetadataFactoryInterface' => __DIR__ . '/..' . '/symfony/http-kernel/ControllerMetadata/ArgumentMetadataFactoryInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolverInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\DefaultValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/DefaultValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\NotTaggedControllerValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/NotTaggedControllerValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\RequestAttributeValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestAttributeValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\RequestValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/RequestValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\ServiceValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\SessionValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/SessionValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\TraceableValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentResolver\\\\VariadicValueResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentResolver/VariadicValueResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ArgumentValueResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ArgumentValueResolverInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ContainerControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ContainerControllerResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerReference' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerReference.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\ControllerResolverInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/ControllerResolverInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\TraceableArgumentResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableArgumentResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Controller\\\\TraceableControllerResolver' => __DIR__ . '/..' . '/symfony/http-kernel/Controller/TraceableControllerResolver.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\AjaxDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/AjaxDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\ConfigDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ConfigDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DataCollectorInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\DumpDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/DumpDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\EventDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/EventDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\ExceptionDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/ExceptionDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\LateDataCollectorInterface' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LateDataCollectorInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\LoggerDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/LoggerDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\MemoryDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/MemoryDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\RequestDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RequestDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\RouterDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/RouterDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DataCollector\\\\TimeDataCollector' => __DIR__ . '/..' . '/symfony/http-kernel/DataCollector/TimeDataCollector.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Debug\\\\FileLinkFormatter' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/FileLinkFormatter.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Debug\\\\TraceableEventDispatcher' => __DIR__ . '/..' . '/symfony/http-kernel/Debug/TraceableEventDispatcher.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\AddAnnotatedClassesToCachePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/AddAnnotatedClassesToCachePass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ConfigurableExtension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ConfigurableExtension.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ControllerArgumentValueResolverPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ControllerArgumentValueResolverPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\Extension' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/Extension.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\FragmentRendererPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\LazyLoadingFragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\LoggerPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/LoggerPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\MergeExtensionConfigurationPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RegisterControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RegisterLocaleAwareServicesPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RegisterLocaleAwareServicesPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\RemoveEmptyControllerArgumentLocatorsPass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ResettableServicePass' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ResettableServicePass.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\DependencyInjection\\\\ServicesResetter' => __DIR__ . '/..' . '/symfony/http-kernel/DependencyInjection/ServicesResetter.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AbstractSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractSessionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AbstractTestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AbstractTestSessionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\AddRequestFormatsListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/AddRequestFormatsListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DebugHandlersListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DebugHandlersListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DisallowRobotsIndexingListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DisallowRobotsIndexingListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\DumpListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/DumpListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ExceptionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ExceptionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\FragmentListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/FragmentListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\LocaleAwareListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleAwareListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\LocaleListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/LocaleListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ProfilerListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ProfilerListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ResponseListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\RouterListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/RouterListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SaveSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SaveSessionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SessionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\StreamedResponseListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/StreamedResponseListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\SurrogateListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/SurrogateListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\TestSessionListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TestSessionListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\TranslatorListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/TranslatorListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\EventListener\\\\ValidateRequestListener' => __DIR__ . '/..' . '/symfony/http-kernel/EventListener/ValidateRequestListener.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerArgumentsEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ControllerEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ExceptionEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterControllerArgumentsEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterControllerEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterControllerEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FilterResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FilterResponseEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\FinishRequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/FinishRequestEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseForControllerResultEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForControllerResultEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\GetResponseForExceptionEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/GetResponseForExceptionEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\KernelEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/KernelEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\PostResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/PostResponseEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\RequestEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/RequestEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ResponseEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ResponseEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\TerminateEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/TerminateEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Event\\\\ViewEvent' => __DIR__ . '/..' . '/symfony/http-kernel/Event/ViewEvent.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\AccessDeniedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/AccessDeniedHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/BadRequestHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ConflictHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ConflictHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ControllerDoesNotReturnResponseException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ControllerDoesNotReturnResponseException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\GoneHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/GoneHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/HttpExceptionInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\LengthRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/LengthRequiredHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\MethodNotAllowedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/MethodNotAllowedHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotAcceptableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotAcceptableHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotFoundHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/NotFoundHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\PreconditionFailedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionFailedHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\PreconditionRequiredHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/PreconditionRequiredHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\ServiceUnavailableHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/ServiceUnavailableHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\TooManyRequestsHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/TooManyRequestsHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnauthorizedHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnauthorizedHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnprocessableEntityHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnprocessableEntityHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\UnsupportedMediaTypeHttpException' => __DIR__ . '/..' . '/symfony/http-kernel/Exception/UnsupportedMediaTypeHttpException.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\AbstractSurrogateFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/AbstractSurrogateFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\EsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/EsiFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\FragmentHandler' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentHandler.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\FragmentRendererInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/FragmentRendererInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\HIncludeFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/HIncludeFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\InlineFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/InlineFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\RoutableFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/RoutableFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Fragment\\\\SsiFragmentRenderer' => __DIR__ . '/..' . '/symfony/http-kernel/Fragment/SsiFragmentRenderer.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\AbstractSurrogate' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/AbstractSurrogate.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Esi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Esi.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\HttpCache' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/HttpCache.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\ResponseCacheStrategy' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategy.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\ResponseCacheStrategyInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/ResponseCacheStrategyInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Ssi' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Ssi.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\Store' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/Store.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\StoreInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/StoreInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\SubRequestHandler' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SubRequestHandler.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpCache\\\\SurrogateInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpCache/SurrogateInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpClientKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpClientKernel.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernel' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernel.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernelBrowser' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelBrowser.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\HttpKernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/HttpKernelInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Kernel' => __DIR__ . '/..' . '/symfony/http-kernel/Kernel.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\KernelEvents' => __DIR__ . '/..' . '/symfony/http-kernel/KernelEvents.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\KernelInterface' => __DIR__ . '/..' . '/symfony/http-kernel/KernelInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Log\\\\DebugLoggerInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Log/DebugLoggerInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Log\\\\Logger' => __DIR__ . '/..' . '/symfony/http-kernel/Log/Logger.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\FileProfilerStorage' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/FileProfilerStorage.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\Profile' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profile.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\Profiler' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/Profiler.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\Profiler\\\\ProfilerStorageInterface' => __DIR__ . '/..' . '/symfony/http-kernel/Profiler/ProfilerStorageInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\RebootableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/RebootableInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\TerminableInterface' => __DIR__ . '/..' . '/symfony/http-kernel/TerminableInterface.php',\n        'Symfony\\\\Component\\\\HttpKernel\\\\UriSigner' => __DIR__ . '/..' . '/symfony/http-kernel/UriSigner.php',\n        'Symfony\\\\Component\\\\Mime\\\\Address' => __DIR__ . '/..' . '/symfony/mime/Address.php',\n        'Symfony\\\\Component\\\\Mime\\\\BodyRendererInterface' => __DIR__ . '/..' . '/symfony/mime/BodyRendererInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\CharacterStream' => __DIR__ . '/..' . '/symfony/mime/CharacterStream.php',\n        'Symfony\\\\Component\\\\Mime\\\\DependencyInjection\\\\AddMimeTypeGuesserPass' => __DIR__ . '/..' . '/symfony/mime/DependencyInjection/AddMimeTypeGuesserPass.php',\n        'Symfony\\\\Component\\\\Mime\\\\Email' => __DIR__ . '/..' . '/symfony/mime/Email.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\AddressEncoderInterface' => __DIR__ . '/..' . '/symfony/mime/Encoder/AddressEncoderInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64ContentEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/Base64ContentEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64Encoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/Base64Encoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Base64MimeHeaderEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/Base64MimeHeaderEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\ContentEncoderInterface' => __DIR__ . '/..' . '/symfony/mime/Encoder/ContentEncoderInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\EightBitContentEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/EightBitContentEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\EncoderInterface' => __DIR__ . '/..' . '/symfony/mime/Encoder/EncoderInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\IdnAddressEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/IdnAddressEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\MimeHeaderEncoderInterface' => __DIR__ . '/..' . '/symfony/mime/Encoder/MimeHeaderEncoderInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpContentEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/QpContentEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/QpEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\QpMimeHeaderEncoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/QpMimeHeaderEncoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Encoder\\\\Rfc2231Encoder' => __DIR__ . '/..' . '/symfony/mime/Encoder/Rfc2231Encoder.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\AddressEncoderException' => __DIR__ . '/..' . '/symfony/mime/Exception/AddressEncoderException.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/mime/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/mime/Exception/InvalidArgumentException.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\LogicException' => __DIR__ . '/..' . '/symfony/mime/Exception/LogicException.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\RfcComplianceException' => __DIR__ . '/..' . '/symfony/mime/Exception/RfcComplianceException.php',\n        'Symfony\\\\Component\\\\Mime\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/symfony/mime/Exception/RuntimeException.php',\n        'Symfony\\\\Component\\\\Mime\\\\FileBinaryMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/mime/FileBinaryMimeTypeGuesser.php',\n        'Symfony\\\\Component\\\\Mime\\\\FileinfoMimeTypeGuesser' => __DIR__ . '/..' . '/symfony/mime/FileinfoMimeTypeGuesser.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\AbstractHeader' => __DIR__ . '/..' . '/symfony/mime/Header/AbstractHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\DateHeader' => __DIR__ . '/..' . '/symfony/mime/Header/DateHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\HeaderInterface' => __DIR__ . '/..' . '/symfony/mime/Header/HeaderInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\Headers' => __DIR__ . '/..' . '/symfony/mime/Header/Headers.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\IdentificationHeader' => __DIR__ . '/..' . '/symfony/mime/Header/IdentificationHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\MailboxHeader' => __DIR__ . '/..' . '/symfony/mime/Header/MailboxHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\MailboxListHeader' => __DIR__ . '/..' . '/symfony/mime/Header/MailboxListHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\ParameterizedHeader' => __DIR__ . '/..' . '/symfony/mime/Header/ParameterizedHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\PathHeader' => __DIR__ . '/..' . '/symfony/mime/Header/PathHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Header\\\\UnstructuredHeader' => __DIR__ . '/..' . '/symfony/mime/Header/UnstructuredHeader.php',\n        'Symfony\\\\Component\\\\Mime\\\\Message' => __DIR__ . '/..' . '/symfony/mime/Message.php',\n        'Symfony\\\\Component\\\\Mime\\\\MessageConverter' => __DIR__ . '/..' . '/symfony/mime/MessageConverter.php',\n        'Symfony\\\\Component\\\\Mime\\\\MimeTypeGuesserInterface' => __DIR__ . '/..' . '/symfony/mime/MimeTypeGuesserInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\MimeTypes' => __DIR__ . '/..' . '/symfony/mime/MimeTypes.php',\n        'Symfony\\\\Component\\\\Mime\\\\MimeTypesInterface' => __DIR__ . '/..' . '/symfony/mime/MimeTypesInterface.php',\n        'Symfony\\\\Component\\\\Mime\\\\NamedAddress' => __DIR__ . '/..' . '/symfony/mime/NamedAddress.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\AbstractMultipartPart' => __DIR__ . '/..' . '/symfony/mime/Part/AbstractMultipartPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\AbstractPart' => __DIR__ . '/..' . '/symfony/mime/Part/AbstractPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\DataPart' => __DIR__ . '/..' . '/symfony/mime/Part/DataPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\MessagePart' => __DIR__ . '/..' . '/symfony/mime/Part/MessagePart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\AlternativePart' => __DIR__ . '/..' . '/symfony/mime/Part/Multipart/AlternativePart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\DigestPart' => __DIR__ . '/..' . '/symfony/mime/Part/Multipart/DigestPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\FormDataPart' => __DIR__ . '/..' . '/symfony/mime/Part/Multipart/FormDataPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\MixedPart' => __DIR__ . '/..' . '/symfony/mime/Part/Multipart/MixedPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\Multipart\\\\RelatedPart' => __DIR__ . '/..' . '/symfony/mime/Part/Multipart/RelatedPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\Part\\\\TextPart' => __DIR__ . '/..' . '/symfony/mime/Part/TextPart.php',\n        'Symfony\\\\Component\\\\Mime\\\\RawMessage' => __DIR__ . '/..' . '/symfony/mime/RawMessage.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php',\n        'Symfony\\\\Component\\\\Process\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php',\n        'Symfony\\\\Component\\\\Process\\\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php',\n        'Symfony\\\\Component\\\\Process\\\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php',\n        'Symfony\\\\Component\\\\Process\\\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php',\n        'Symfony\\\\Component\\\\Process\\\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php',\n        'Symfony\\\\Component\\\\Process\\\\Pipes\\\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php',\n        'Symfony\\\\Component\\\\Process\\\\Pipes\\\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php',\n        'Symfony\\\\Component\\\\Process\\\\Pipes\\\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php',\n        'Symfony\\\\Component\\\\Process\\\\Pipes\\\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php',\n        'Symfony\\\\Component\\\\Process\\\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php',\n        'Symfony\\\\Component\\\\Process\\\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php',\n        'Symfony\\\\Component\\\\Routing\\\\Annotation\\\\Route' => __DIR__ . '/..' . '/symfony/routing/Annotation/Route.php',\n        'Symfony\\\\Component\\\\Routing\\\\CompiledRoute' => __DIR__ . '/..' . '/symfony/routing/CompiledRoute.php',\n        'Symfony\\\\Component\\\\Routing\\\\DependencyInjection\\\\RoutingResolverPass' => __DIR__ . '/..' . '/symfony/routing/DependencyInjection/RoutingResolverPass.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/routing/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\InvalidParameterException' => __DIR__ . '/..' . '/symfony/routing/Exception/InvalidParameterException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\MethodNotAllowedException' => __DIR__ . '/..' . '/symfony/routing/Exception/MethodNotAllowedException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\MissingMandatoryParametersException' => __DIR__ . '/..' . '/symfony/routing/Exception/MissingMandatoryParametersException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\NoConfigurationException' => __DIR__ . '/..' . '/symfony/routing/Exception/NoConfigurationException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\ResourceNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/ResourceNotFoundException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Exception\\\\RouteNotFoundException' => __DIR__ . '/..' . '/symfony/routing/Exception/RouteNotFoundException.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\CompiledUrlGenerator' => __DIR__ . '/..' . '/symfony/routing/Generator/CompiledUrlGenerator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\ConfigurableRequirementsInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/ConfigurableRequirementsInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\CompiledUrlGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/CompiledUrlGeneratorDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\GeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\GeneratorDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/GeneratorDumperInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\Dumper\\\\PhpGeneratorDumper' => __DIR__ . '/..' . '/symfony/routing/Generator/Dumper/PhpGeneratorDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\UrlGenerator' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGenerator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Generator\\\\UrlGeneratorInterface' => __DIR__ . '/..' . '/symfony/routing/Generator/UrlGeneratorInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationClassLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationClassLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationDirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationDirectoryLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\AnnotationFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/AnnotationFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ClosureLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ClosureLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\CollectionConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/CollectionConfigurator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\ImportConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/ImportConfigurator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\RouteConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RouteConfigurator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\RoutingConfigurator' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/RoutingConfigurator.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\Traits\\\\AddTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/AddTrait.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\Configurator\\\\Traits\\\\RouteTrait' => __DIR__ . '/..' . '/symfony/routing/Loader/Configurator/Traits/RouteTrait.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\DependencyInjection\\\\ServiceRouterLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DependencyInjection/ServiceRouterLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/DirectoryLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/GlobFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ObjectRouteLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/ObjectRouteLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\ProtectedPhpFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/PhpFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/XmlFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Loader\\\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/routing/Loader/YamlFileLoader.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\CompiledUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/CompiledUrlMatcher.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\CompiledUrlMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\CompiledUrlMatcherTrait' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\MatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\MatcherDumperInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/MatcherDumperInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\PhpMatcherDumper' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/PhpMatcherDumper.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\Dumper\\\\StaticPrefixCollection' => __DIR__ . '/..' . '/symfony/routing/Matcher/Dumper/StaticPrefixCollection.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RedirectableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcher.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RedirectableUrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RedirectableUrlMatcherInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\RequestMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/RequestMatcherInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\TraceableUrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/TraceableUrlMatcher.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\UrlMatcher' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcher.php',\n        'Symfony\\\\Component\\\\Routing\\\\Matcher\\\\UrlMatcherInterface' => __DIR__ . '/..' . '/symfony/routing/Matcher/UrlMatcherInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\RequestContext' => __DIR__ . '/..' . '/symfony/routing/RequestContext.php',\n        'Symfony\\\\Component\\\\Routing\\\\RequestContextAwareInterface' => __DIR__ . '/..' . '/symfony/routing/RequestContextAwareInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Route' => __DIR__ . '/..' . '/symfony/routing/Route.php',\n        'Symfony\\\\Component\\\\Routing\\\\RouteCollection' => __DIR__ . '/..' . '/symfony/routing/RouteCollection.php',\n        'Symfony\\\\Component\\\\Routing\\\\RouteCollectionBuilder' => __DIR__ . '/..' . '/symfony/routing/RouteCollectionBuilder.php',\n        'Symfony\\\\Component\\\\Routing\\\\RouteCompiler' => __DIR__ . '/..' . '/symfony/routing/RouteCompiler.php',\n        'Symfony\\\\Component\\\\Routing\\\\RouteCompilerInterface' => __DIR__ . '/..' . '/symfony/routing/RouteCompilerInterface.php',\n        'Symfony\\\\Component\\\\Routing\\\\Router' => __DIR__ . '/..' . '/symfony/routing/Router.php',\n        'Symfony\\\\Component\\\\Routing\\\\RouterInterface' => __DIR__ . '/..' . '/symfony/routing/RouterInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\AbstractOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/AbstractOperation.php',\n        'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\MergeOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/MergeOperation.php',\n        'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\OperationInterface' => __DIR__ . '/..' . '/symfony/translation/Catalogue/OperationInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Catalogue\\\\TargetOperation' => __DIR__ . '/..' . '/symfony/translation/Catalogue/TargetOperation.php',\n        'Symfony\\\\Component\\\\Translation\\\\Command\\\\XliffLintCommand' => __DIR__ . '/..' . '/symfony/translation/Command/XliffLintCommand.php',\n        'Symfony\\\\Component\\\\Translation\\\\DataCollectorTranslator' => __DIR__ . '/..' . '/symfony/translation/DataCollectorTranslator.php',\n        'Symfony\\\\Component\\\\Translation\\\\DataCollector\\\\TranslationDataCollector' => __DIR__ . '/..' . '/symfony/translation/DataCollector/TranslationDataCollector.php',\n        'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslationDumperPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationDumperPass.php',\n        'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslationExtractorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslationExtractorPass.php',\n        'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslatorPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslatorPass.php',\n        'Symfony\\\\Component\\\\Translation\\\\DependencyInjection\\\\TranslatorPathsPass' => __DIR__ . '/..' . '/symfony/translation/DependencyInjection/TranslatorPathsPass.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\CsvFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/CsvFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\DumperInterface' => __DIR__ . '/..' . '/symfony/translation/Dumper/DumperInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\FileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/FileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\IcuResFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IcuResFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\IniFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/IniFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\JsonFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/JsonFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\MoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/MoFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\PhpFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PhpFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\PoFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/PoFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\QtFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/QtFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\XliffFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/XliffFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Dumper\\\\YamlFileDumper' => __DIR__ . '/..' . '/symfony/translation/Dumper/YamlFileDumper.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/translation/Exception/ExceptionInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidArgumentException.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\InvalidResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/InvalidResourceException.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\LogicException' => __DIR__ . '/..' . '/symfony/translation/Exception/LogicException.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\NotFoundResourceException' => __DIR__ . '/..' . '/symfony/translation/Exception/NotFoundResourceException.php',\n        'Symfony\\\\Component\\\\Translation\\\\Exception\\\\RuntimeException' => __DIR__ . '/..' . '/symfony/translation/Exception/RuntimeException.php',\n        'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\AbstractFileExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/AbstractFileExtractor.php',\n        'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\ChainExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/ChainExtractor.php',\n        'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\ExtractorInterface' => __DIR__ . '/..' . '/symfony/translation/Extractor/ExtractorInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\PhpExtractor' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpExtractor.php',\n        'Symfony\\\\Component\\\\Translation\\\\Extractor\\\\PhpStringTokenParser' => __DIR__ . '/..' . '/symfony/translation/Extractor/PhpStringTokenParser.php',\n        'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\ChoiceMessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/ChoiceMessageFormatterInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\IntlFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatter.php',\n        'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\IntlFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/IntlFormatterInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\MessageFormatter' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatter.php',\n        'Symfony\\\\Component\\\\Translation\\\\Formatter\\\\MessageFormatterInterface' => __DIR__ . '/..' . '/symfony/translation/Formatter/MessageFormatterInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\IdentityTranslator' => __DIR__ . '/..' . '/symfony/translation/IdentityTranslator.php',\n        'Symfony\\\\Component\\\\Translation\\\\Interval' => __DIR__ . '/..' . '/symfony/translation/Interval.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\ArrayLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/ArrayLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\CsvFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/CsvFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\FileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/FileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IcuDatFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuDatFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IcuResFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IcuResFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\IniFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/IniFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\JsonFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/JsonFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\LoaderInterface' => __DIR__ . '/..' . '/symfony/translation/Loader/LoaderInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\MoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/MoFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PhpFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\PoFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/PoFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\QtFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/QtFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\XliffFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/XliffFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Loader\\\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/translation/Loader/YamlFileLoader.php',\n        'Symfony\\\\Component\\\\Translation\\\\LoggingTranslator' => __DIR__ . '/..' . '/symfony/translation/LoggingTranslator.php',\n        'Symfony\\\\Component\\\\Translation\\\\MessageCatalogue' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogue.php',\n        'Symfony\\\\Component\\\\Translation\\\\MessageCatalogueInterface' => __DIR__ . '/..' . '/symfony/translation/MessageCatalogueInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\MessageSelector' => __DIR__ . '/..' . '/symfony/translation/MessageSelector.php',\n        'Symfony\\\\Component\\\\Translation\\\\MetadataAwareInterface' => __DIR__ . '/..' . '/symfony/translation/MetadataAwareInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\PluralizationRules' => __DIR__ . '/..' . '/symfony/translation/PluralizationRules.php',\n        'Symfony\\\\Component\\\\Translation\\\\Reader\\\\TranslationReader' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReader.php',\n        'Symfony\\\\Component\\\\Translation\\\\Reader\\\\TranslationReaderInterface' => __DIR__ . '/..' . '/symfony/translation/Reader/TranslationReaderInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Translator' => __DIR__ . '/..' . '/symfony/translation/Translator.php',\n        'Symfony\\\\Component\\\\Translation\\\\TranslatorBagInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorBagInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation/TranslatorInterface.php',\n        'Symfony\\\\Component\\\\Translation\\\\Util\\\\ArrayConverter' => __DIR__ . '/..' . '/symfony/translation/Util/ArrayConverter.php',\n        'Symfony\\\\Component\\\\Translation\\\\Util\\\\XliffUtils' => __DIR__ . '/..' . '/symfony/translation/Util/XliffUtils.php',\n        'Symfony\\\\Component\\\\Translation\\\\Writer\\\\TranslationWriter' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriter.php',\n        'Symfony\\\\Component\\\\Translation\\\\Writer\\\\TranslationWriterInterface' => __DIR__ . '/..' . '/symfony/translation/Writer/TranslationWriterInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\AmqpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/AmqpCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ArgsStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ArgsStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\Caster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/Caster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ClassStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ClassStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ConstStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ConstStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\CutArrayStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutArrayStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\CutStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/CutStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DOMCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DOMCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DateCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DateCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DoctrineCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DoctrineCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DsCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\DsPairStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/DsPairStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\EnumStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/EnumStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ExceptionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ExceptionCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\FrameStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/FrameStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\GmpCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/GmpCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\IntlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/IntlCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\LinkStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/LinkStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\MemcachedCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/MemcachedCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\PdoCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PdoCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\PgSqlCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/PgSqlCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ProxyManagerCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ProxyManagerCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\RedisCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/RedisCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ReflectionCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ReflectionCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\ResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/ResourceCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\SplCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SplCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\StubCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/StubCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\SymfonyCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/SymfonyCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\TraceStub' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/TraceStub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\XmlReaderCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlReaderCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Caster\\\\XmlResourceCaster' => __DIR__ . '/..' . '/symfony/var-dumper/Caster/XmlResourceCaster.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\AbstractCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/AbstractCloner.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\ClonerInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/ClonerInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Cursor' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Cursor.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Data' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Data.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\DumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/DumperInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\Stub' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/Stub.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Cloner\\\\VarCloner' => __DIR__ . '/..' . '/symfony/var-dumper/Cloner/VarCloner.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\CliDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/CliDescriptor.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\DumpDescriptorInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\Descriptor\\\\HtmlDescriptor' => __DIR__ . '/..' . '/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Command\\\\ServerDumpCommand' => __DIR__ . '/..' . '/symfony/var-dumper/Command/ServerDumpCommand.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\AbstractDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/AbstractDumper.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\CliDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/CliDumper.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\CliContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\ContextProviderInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\RequestContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ContextProvider\\\\SourceContextProvider' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\DataDumperInterface' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/DataDumperInterface.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\HtmlDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/HtmlDumper.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Dumper\\\\ServerDumper' => __DIR__ . '/..' . '/symfony/var-dumper/Dumper/ServerDumper.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Exception\\\\ThrowingCasterException' => __DIR__ . '/..' . '/symfony/var-dumper/Exception/ThrowingCasterException.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Server\\\\Connection' => __DIR__ . '/..' . '/symfony/var-dumper/Server/Connection.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Server\\\\DumpServer' => __DIR__ . '/..' . '/symfony/var-dumper/Server/DumpServer.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\Test\\\\VarDumperTestTrait' => __DIR__ . '/..' . '/symfony/var-dumper/Test/VarDumperTestTrait.php',\n        'Symfony\\\\Component\\\\VarDumper\\\\VarDumper' => __DIR__ . '/..' . '/symfony/var-dumper/VarDumper.php',\n        'Symfony\\\\Contracts\\\\EventDispatcher\\\\Event' => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts/Event.php',\n        'Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface' => __DIR__ . '/..' . '/symfony/event-dispatcher-contracts/EventDispatcherInterface.php',\n        'Symfony\\\\Contracts\\\\Service\\\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php',\n        'Symfony\\\\Contracts\\\\Service\\\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php',\n        'Symfony\\\\Contracts\\\\Service\\\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php',\n        'Symfony\\\\Contracts\\\\Service\\\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php',\n        'Symfony\\\\Contracts\\\\Service\\\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php',\n        'Symfony\\\\Contracts\\\\Service\\\\Test\\\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/service-contracts/Test/ServiceLocatorTest.php',\n        'Symfony\\\\Contracts\\\\Translation\\\\LocaleAwareInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/LocaleAwareInterface.php',\n        'Symfony\\\\Contracts\\\\Translation\\\\Test\\\\TranslatorTest' => __DIR__ . '/..' . '/symfony/translation-contracts/Test/TranslatorTest.php',\n        'Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorInterface.php',\n        'Symfony\\\\Contracts\\\\Translation\\\\TranslatorTrait' => __DIR__ . '/..' . '/symfony/translation-contracts/TranslatorTrait.php',\n        'Symfony\\\\Polyfill\\\\Ctype\\\\Ctype' => __DIR__ . '/..' . '/symfony/polyfill-ctype/Ctype.php',\n        'Symfony\\\\Polyfill\\\\Iconv\\\\Iconv' => __DIR__ . '/..' . '/symfony/polyfill-iconv/Iconv.php',\n        'Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\Idn' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Idn.php',\n        'Symfony\\\\Polyfill\\\\Mbstring\\\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php',\n        'Symfony\\\\Polyfill\\\\Php72\\\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php',\n        'Symfony\\\\Polyfill\\\\Php73\\\\Php73' => __DIR__ . '/..' . '/symfony/polyfill-php73/Php73.php',\n        'Tests\\\\CreatesApplication' => __DIR__ . '/../..' . '/tests/CreatesApplication.php',\n        'Tests\\\\Feature\\\\ExampleTest' => __DIR__ . '/../..' . '/tests/Feature/ExampleTest.php',\n        'Tests\\\\TestCase' => __DIR__ . '/../..' . '/tests/TestCase.php',\n        'Tests\\\\Unit\\\\ExampleTest' => __DIR__ . '/../..' . '/tests/Unit/ExampleTest.php',\n        'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',\n        'TheSeer\\\\Tokenizer\\\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php',\n        'TheSeer\\\\Tokenizer\\\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php',\n        'TheSeer\\\\Tokenizer\\\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php',\n        'TheSeer\\\\Tokenizer\\\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php',\n        'TheSeer\\\\Tokenizer\\\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php',\n        'TheSeer\\\\Tokenizer\\\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php',\n        'TheSeer\\\\Tokenizer\\\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php',\n        'TheSeer\\\\Tokenizer\\\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\CssToInlineStyles' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Property\\\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Property\\\\Property' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Rule\\\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',\n        'TijsVerkoyen\\\\CssToInlineStyles\\\\Css\\\\Rule\\\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',\n        'Webmozart\\\\Assert\\\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php',\n        'Whoops\\\\Exception\\\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php',\n        'Whoops\\\\Exception\\\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php',\n        'Whoops\\\\Exception\\\\Frame' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Frame.php',\n        'Whoops\\\\Exception\\\\FrameCollection' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/FrameCollection.php',\n        'Whoops\\\\Exception\\\\Inspector' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Inspector.php',\n        'Whoops\\\\Handler\\\\CallbackHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/CallbackHandler.php',\n        'Whoops\\\\Handler\\\\Handler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/Handler.php',\n        'Whoops\\\\Handler\\\\HandlerInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/HandlerInterface.php',\n        'Whoops\\\\Handler\\\\JsonResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php',\n        'Whoops\\\\Handler\\\\PlainTextHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PlainTextHandler.php',\n        'Whoops\\\\Handler\\\\PrettyPageHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php',\n        'Whoops\\\\Handler\\\\XmlResponseHandler' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php',\n        'Whoops\\\\Run' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Run.php',\n        'Whoops\\\\RunInterface' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/RunInterface.php',\n        'Whoops\\\\Util\\\\HtmlDumperOutput' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php',\n        'Whoops\\\\Util\\\\Misc' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/Misc.php',\n        'Whoops\\\\Util\\\\SystemFacade' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/SystemFacade.php',\n        'Whoops\\\\Util\\\\TemplateHelper' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Util/TemplateHelper.php',\n        'XdgBaseDir\\\\Xdg' => __DIR__ . '/..' . '/dnoegel/php-xdg-base-dir/src/Xdg.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlockFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactory.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlockFactoryInterface' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Description' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Description.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\DescriptionFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\ExampleFinder' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Serializer' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\StandardTagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\TagFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Author' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\BaseTag' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Covers' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Deprecated' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Example' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Factory\\\\StaticMethod' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Factory\\\\Strategy' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter\\\\AlignFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Formatter\\\\PassthroughFormatter' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Generic' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Link' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Method' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Param' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Property' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\PropertyRead' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\PropertyWrite' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Reference' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Reference\\\\Url' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Return_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\See' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Since' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Source' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Throws' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Uses' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Var_' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php',\n        'phpDocumentor\\\\Reflection\\\\DocBlock\\\\Tags\\\\Version' => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php',\n        'phpDocumentor\\\\Reflection\\\\Element' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Element.php',\n        'phpDocumentor\\\\Reflection\\\\File' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/File.php',\n        'phpDocumentor\\\\Reflection\\\\Fqsen' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Fqsen.php',\n        'phpDocumentor\\\\Reflection\\\\FqsenResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/FqsenResolver.php',\n        'phpDocumentor\\\\Reflection\\\\Location' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Location.php',\n        'phpDocumentor\\\\Reflection\\\\Project' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/Project.php',\n        'phpDocumentor\\\\Reflection\\\\ProjectFactory' => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src/ProjectFactory.php',\n        'phpDocumentor\\\\Reflection\\\\Type' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Type.php',\n        'phpDocumentor\\\\Reflection\\\\TypeResolver' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/TypeResolver.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Array_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Array_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Boolean' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Boolean.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Callable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Callable_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Compound' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Compound.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Context' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Context.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\ContextFactory' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/ContextFactory.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Float_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Float_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Integer' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Integer.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Iterable_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Iterable_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Mixed_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Mixed_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Null_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Null_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Nullable' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Nullable.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Object_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Object_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Parent_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Parent_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Resource_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Resource_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Scalar' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Scalar.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Self_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Self_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Static_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Static_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\String_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/String_.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\This' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/This.php',\n        'phpDocumentor\\\\Reflection\\\\Types\\\\Void_' => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src/Types/Void_.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\AvInfo' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/AvInfo.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\DownloadUrl' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/DownloadUrl.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\Fetch' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/Fetch.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImageExif' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/ImageExif.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImageInfo' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/ImageInfo.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\ImagePreviewUrl' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/ImagePreviewUrl.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\LastReturn' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/LastReturn.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\PersistentFop' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/PersistentFop.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\PersistentStatus' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/PersistentStatus.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\PrivateDownloadUrl' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/PrivateDownloadUrl.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\PrivateImagePreviewUrl' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/PrivateImagePreviewUrl.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\Qetag' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/Qetag.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\UploadToken' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/UploadToken.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\VerifyCallback' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/VerifyCallback.php',\n        'zgldh\\\\QiniuStorage\\\\Plugins\\\\WithUploadToken' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/Plugins/WithUploadToken.php',\n        'zgldh\\\\QiniuStorage\\\\QiniuAdapter' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/QiniuAdapter.php',\n        'zgldh\\\\QiniuStorage\\\\QiniuFilesystemServiceProvider' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/QiniuFilesystemServiceProvider.php',\n        'zgldh\\\\QiniuStorage\\\\QiniuStorage' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/QiniuStorage.php',\n        'zgldh\\\\QiniuStorage\\\\QiniuUrl' => __DIR__ . '/..' . '/zgldh/qiniu-laravel-storage/src/QiniuUrl.php',\n    );\n\n    public static function getInitializer(ClassLoader $loader)\n    {\n        return \\Closure::bind(function () use ($loader) {\n            $loader->prefixLengthsPsr4 = ComposerStaticInit1b66a5b06579b18b92696e1317117c84::$prefixLengthsPsr4;\n            $loader->prefixDirsPsr4 = ComposerStaticInit1b66a5b06579b18b92696e1317117c84::$prefixDirsPsr4;\n            $loader->prefixesPsr0 = ComposerStaticInit1b66a5b06579b18b92696e1317117c84::$prefixesPsr0;\n            $loader->classMap = ComposerStaticInit1b66a5b06579b18b92696e1317117c84::$classMap;\n\n        }, null, ClassLoader::class);\n    }\n}\n"
  },
  {
    "path": "vendor/composer/installed.json",
    "content": "[\n    {\n        \"name\": \"beyondcode/laravel-dump-server\",\n        \"version\": \"1.2.2\",\n        \"version_normalized\": \"1.2.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/beyondcode/laravel-dump-server.git\",\n            \"reference\": \"8864b9efcb48e0a79e83014dd7f0a5481f5c808f\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/beyondcode/laravel-dump-server/zipball/8864b9efcb48e0a79e83014dd7f0a5481f5c808f\",\n            \"reference\": \"8864b9efcb48e0a79e83014dd7f0a5481f5c808f\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"illuminate/console\": \"5.6.*|5.7.*|5.8.*\",\n            \"illuminate/http\": \"5.6.*|5.7.*|5.8.*\",\n            \"illuminate/support\": \"5.6.*|5.7.*|5.8.*\",\n            \"php\": \"^7.1\",\n            \"symfony/var-dumper\": \"^4.1.1\"\n        },\n        \"require-dev\": {\n            \"larapack/dd\": \"^1.0\",\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"time\": \"2018-10-04T07:22:24+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"BeyondCode\\\\DumpServer\\\\DumpServerServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"BeyondCode\\\\DumpServer\\\\\": \"src\"\n            },\n            \"files\": [\n                \"helpers.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Marcel Pociot\",\n                \"email\": \"marcel@beyondco.de\",\n                \"homepage\": \"https://beyondcode.de\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"Symfony Var-Dump Server for Laravel\",\n        \"homepage\": \"https://github.com/beyondcode/laravel-dump-server\",\n        \"keywords\": [\n            \"beyondcode\",\n            \"laravel-dump-server\"\n        ]\n    },\n    {\n        \"name\": \"caouecs/laravel-lang\",\n        \"version\": \"4.0.2\",\n        \"version_normalized\": \"4.0.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/caouecs/Laravel-lang.git\",\n            \"reference\": \"884265ed667ddf826d8df495ea6b2bb3330be79c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/caouecs/Laravel-lang/zipball/884265ed667ddf826d8df495ea6b2bb3330be79c\",\n            \"reference\": \"884265ed667ddf826d8df495ea6b2bb3330be79c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require-dev\": {\n            \"friendsofphp/php-cs-fixer\": \"^2.10\"\n        },\n        \"suggest\": {\n            \"ablunier/laravel-lang-installer\": \"Command for easily add languages to a Laravel project\",\n            \"andrey-helldar/laravel-lang-publisher\": \"Easy installation and update of translation files for your project\",\n            \"arcanedev/laravel-lang\": \"Translations manager and checker for Laravel 5\",\n            \"overtrue/laravel-lang\": \"Command to add languages in your project\"\n        },\n        \"time\": \"2019-08-22T19:36:14+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"caouecs\",\n                \"email\": \"caouecs@caouecs.net\"\n            }\n        ],\n        \"description\": \"Languages for Laravel\",\n        \"keywords\": [\n            \"lang\",\n            \"languages\",\n            \"laravel\",\n            \"lpm\"\n        ]\n    },\n    {\n        \"name\": \"dianwoung/large-file-upload\",\n        \"version\": \"0.0.3\",\n        \"version_normalized\": \"0.0.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/laravel-admin-extensions/large-file-upload.git\",\n            \"reference\": \"6d069f5cfa8015ad8876c8755fd5ef0fcec86918\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/laravel-admin-extensions/large-file-upload/zipball/6d069f5cfa8015ad8876c8755fd5ef0fcec86918\",\n            \"reference\": \"6d069f5cfa8015ad8876c8755fd5ef0fcec86918\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"peinhu/aetherupload-laravel\": \"~2.0\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2019-08-16T16:36:10+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Encore\\\\LargeFileUpload\\\\LargeFileUploadServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Encore\\\\LargeFileUpload\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Dian Wang\",\n                \"email\": \"dian126@foxmail.com\"\n            }\n        ],\n        \"description\": \"An extension of laravel-admin for uploading large files\",\n        \"homepage\": \"https://github.com/Dianwoung/large-file-upload\",\n        \"keywords\": [\n            \"extension\",\n            \"laravel-admin\"\n        ]\n    },\n    {\n        \"name\": \"dnoegel/php-xdg-base-dir\",\n        \"version\": \"0.1\",\n        \"version_normalized\": \"0.1.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/dnoegel/php-xdg-base-dir.git\",\n            \"reference\": \"265b8593498b997dc2d31e75b89f053b5cc9621a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/265b8593498b997dc2d31e75b89f053b5cc9621a\",\n            \"reference\": \"265b8593498b997dc2d31e75b89f053b5cc9621a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.2\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"@stable\"\n        },\n        \"time\": \"2014-10-24T07:27:01+00:00\",\n        \"type\": \"project\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"XdgBaseDir\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"description\": \"implementation of xdg base directory specification for php\"\n    },\n    {\n        \"name\": \"doctrine/cache\",\n        \"version\": \"v1.8.0\",\n        \"version_normalized\": \"1.8.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/cache.git\",\n            \"reference\": \"d768d58baee9a4862ca783840eca1b9add7a7f57\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57\",\n            \"reference\": \"d768d58baee9a4862ca783840eca1b9add7a7f57\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"~7.1\"\n        },\n        \"conflict\": {\n            \"doctrine/common\": \">2.2,<2.4\"\n        },\n        \"require-dev\": {\n            \"alcaeus/mongo-php-adapter\": \"^1.1\",\n            \"doctrine/coding-standard\": \"^4.0\",\n            \"mongodb/mongodb\": \"^1.1\",\n            \"phpunit/phpunit\": \"^7.0\",\n            \"predis/predis\": \"~1.0\"\n        },\n        \"suggest\": {\n            \"alcaeus/mongo-php-adapter\": \"Required to use legacy MongoDB driver\"\n        },\n        \"time\": \"2018-08-21T18:01:43+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.8.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\Common\\\\Cache\\\\\": \"lib/Doctrine/Common/Cache\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Roman Borschel\",\n                \"email\": \"roman@code-factory.org\"\n            },\n            {\n                \"name\": \"Benjamin Eberlei\",\n                \"email\": \"kontakt@beberlei.de\"\n            },\n            {\n                \"name\": \"Guilherme Blanco\",\n                \"email\": \"guilhermeblanco@gmail.com\"\n            },\n            {\n                \"name\": \"Jonathan Wage\",\n                \"email\": \"jonwage@gmail.com\"\n            },\n            {\n                \"name\": \"Johannes Schmitt\",\n                \"email\": \"schmittjoh@gmail.com\"\n            }\n        ],\n        \"description\": \"Caching library offering an object-oriented API for many cache backends\",\n        \"homepage\": \"https://www.doctrine-project.org\",\n        \"keywords\": [\n            \"cache\",\n            \"caching\"\n        ]\n    },\n    {\n        \"name\": \"doctrine/dbal\",\n        \"version\": \"v2.9.2\",\n        \"version_normalized\": \"2.9.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/dbal.git\",\n            \"reference\": \"22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9\",\n            \"reference\": \"22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/cache\": \"^1.0\",\n            \"doctrine/event-manager\": \"^1.0\",\n            \"ext-pdo\": \"*\",\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"doctrine/coding-standard\": \"^5.0\",\n            \"jetbrains/phpstorm-stubs\": \"^2018.1.2\",\n            \"phpstan/phpstan\": \"^0.10.1\",\n            \"phpunit/phpunit\": \"^7.4\",\n            \"symfony/console\": \"^2.0.5|^3.0|^4.0\",\n            \"symfony/phpunit-bridge\": \"^3.4.5|^4.0.5\"\n        },\n        \"suggest\": {\n            \"symfony/console\": \"For helpful console commands such as SQL execution and import of files.\"\n        },\n        \"time\": \"2018-12-31T03:27:51+00:00\",\n        \"bin\": [\n            \"bin/doctrine-dbal\"\n        ],\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.9.x-dev\",\n                \"dev-develop\": \"3.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\DBAL\\\\\": \"lib/Doctrine/DBAL\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Roman Borschel\",\n                \"email\": \"roman@code-factory.org\"\n            },\n            {\n                \"name\": \"Benjamin Eberlei\",\n                \"email\": \"kontakt@beberlei.de\"\n            },\n            {\n                \"name\": \"Guilherme Blanco\",\n                \"email\": \"guilhermeblanco@gmail.com\"\n            },\n            {\n                \"name\": \"Jonathan Wage\",\n                \"email\": \"jonwage@gmail.com\"\n            }\n        ],\n        \"description\": \"Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.\",\n        \"homepage\": \"https://www.doctrine-project.org/projects/dbal.html\",\n        \"keywords\": [\n            \"abstraction\",\n            \"database\",\n            \"dbal\",\n            \"mysql\",\n            \"persistence\",\n            \"pgsql\",\n            \"php\",\n            \"queryobject\"\n        ]\n    },\n    {\n        \"name\": \"doctrine/event-manager\",\n        \"version\": \"v1.0.0\",\n        \"version_normalized\": \"1.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/event-manager.git\",\n            \"reference\": \"a520bc093a0170feeb6b14e9d83f3a14452e64b3\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3\",\n            \"reference\": \"a520bc093a0170feeb6b14e9d83f3a14452e64b3\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"conflict\": {\n            \"doctrine/common\": \"<2.9@dev\"\n        },\n        \"require-dev\": {\n            \"doctrine/coding-standard\": \"^4.0\",\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"time\": \"2018-06-11T11:59:03+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\Common\\\\\": \"lib/Doctrine/Common\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Roman Borschel\",\n                \"email\": \"roman@code-factory.org\"\n            },\n            {\n                \"name\": \"Benjamin Eberlei\",\n                \"email\": \"kontakt@beberlei.de\"\n            },\n            {\n                \"name\": \"Guilherme Blanco\",\n                \"email\": \"guilhermeblanco@gmail.com\"\n            },\n            {\n                \"name\": \"Jonathan Wage\",\n                \"email\": \"jonwage@gmail.com\"\n            },\n            {\n                \"name\": \"Johannes Schmitt\",\n                \"email\": \"schmittjoh@gmail.com\"\n            },\n            {\n                \"name\": \"Marco Pivetta\",\n                \"email\": \"ocramius@gmail.com\"\n            }\n        ],\n        \"description\": \"Doctrine Event Manager component\",\n        \"homepage\": \"https://www.doctrine-project.org/projects/event-manager.html\",\n        \"keywords\": [\n            \"event\",\n            \"eventdispatcher\",\n            \"eventmanager\"\n        ]\n    },\n    {\n        \"name\": \"doctrine/inflector\",\n        \"version\": \"v1.3.0\",\n        \"version_normalized\": \"1.3.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/inflector.git\",\n            \"reference\": \"5527a48b7313d15261292c149e55e26eae771b0a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a\",\n            \"reference\": \"5527a48b7313d15261292c149e55e26eae771b0a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.2\"\n        },\n        \"time\": \"2018-01-09T20:05:19+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.3.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\Common\\\\Inflector\\\\\": \"lib/Doctrine/Common/Inflector\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Roman Borschel\",\n                \"email\": \"roman@code-factory.org\"\n            },\n            {\n                \"name\": \"Benjamin Eberlei\",\n                \"email\": \"kontakt@beberlei.de\"\n            },\n            {\n                \"name\": \"Guilherme Blanco\",\n                \"email\": \"guilhermeblanco@gmail.com\"\n            },\n            {\n                \"name\": \"Jonathan Wage\",\n                \"email\": \"jonwage@gmail.com\"\n            },\n            {\n                \"name\": \"Johannes Schmitt\",\n                \"email\": \"schmittjoh@gmail.com\"\n            }\n        ],\n        \"description\": \"Common String Manipulations with regard to casing and singular/plural rules.\",\n        \"homepage\": \"http://www.doctrine-project.org\",\n        \"keywords\": [\n            \"inflection\",\n            \"pluralize\",\n            \"singularize\",\n            \"string\"\n        ]\n    },\n    {\n        \"name\": \"doctrine/instantiator\",\n        \"version\": \"1.2.0\",\n        \"version_normalized\": \"1.2.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/instantiator.git\",\n            \"reference\": \"a2c590166b2133a4633738648b6b064edae0814a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a\",\n            \"reference\": \"a2c590166b2133a4633738648b6b064edae0814a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"doctrine/coding-standard\": \"^6.0\",\n            \"ext-pdo\": \"*\",\n            \"ext-phar\": \"*\",\n            \"phpbench/phpbench\": \"^0.13\",\n            \"phpstan/phpstan-phpunit\": \"^0.11\",\n            \"phpstan/phpstan-shim\": \"^0.11\",\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"time\": \"2019-03-17T17:37:11+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.2.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\Instantiator\\\\\": \"src/Doctrine/Instantiator/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Marco Pivetta\",\n                \"email\": \"ocramius@gmail.com\",\n                \"homepage\": \"http://ocramius.github.com/\"\n            }\n        ],\n        \"description\": \"A small, lightweight utility to instantiate objects in PHP without invoking their constructors\",\n        \"homepage\": \"https://www.doctrine-project.org/projects/instantiator.html\",\n        \"keywords\": [\n            \"constructor\",\n            \"instantiate\"\n        ]\n    },\n    {\n        \"name\": \"doctrine/lexer\",\n        \"version\": \"1.0.2\",\n        \"version_normalized\": \"1.0.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/doctrine/lexer.git\",\n            \"reference\": \"1febd6c3ef84253d7c815bed85fc622ad207a9f8\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8\",\n            \"reference\": \"1febd6c3ef84253d7c815bed85fc622ad207a9f8\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.2\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.5\"\n        },\n        \"time\": \"2019-06-08T11:03:04+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Doctrine\\\\Common\\\\Lexer\\\\\": \"lib/Doctrine/Common/Lexer\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Roman Borschel\",\n                \"email\": \"roman@code-factory.org\"\n            },\n            {\n                \"name\": \"Guilherme Blanco\",\n                \"email\": \"guilhermeblanco@gmail.com\"\n            },\n            {\n                \"name\": \"Johannes Schmitt\",\n                \"email\": \"schmittjoh@gmail.com\"\n            }\n        ],\n        \"description\": \"PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.\",\n        \"homepage\": \"https://www.doctrine-project.org/projects/lexer.html\",\n        \"keywords\": [\n            \"annotations\",\n            \"docblock\",\n            \"lexer\",\n            \"parser\",\n            \"php\"\n        ]\n    },\n    {\n        \"name\": \"dragonmantank/cron-expression\",\n        \"version\": \"v2.3.0\",\n        \"version_normalized\": \"2.3.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/dragonmantank/cron-expression.git\",\n            \"reference\": \"72b6fbf76adb3cf5bc0db68559b33d41219aba27\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27\",\n            \"reference\": \"72b6fbf76adb3cf5bc0db68559b33d41219aba27\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.4|^7.0\"\n        },\n        \"time\": \"2019-03-31T00:38:28+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Cron\\\\\": \"src/Cron/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Michael Dowling\",\n                \"email\": \"mtdowling@gmail.com\",\n                \"homepage\": \"https://github.com/mtdowling\"\n            },\n            {\n                \"name\": \"Chris Tankersley\",\n                \"email\": \"chris@ctankersley.com\",\n                \"homepage\": \"https://github.com/dragonmantank\"\n            }\n        ],\n        \"description\": \"CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due\",\n        \"keywords\": [\n            \"cron\",\n            \"schedule\"\n        ]\n    },\n    {\n        \"name\": \"egulias/email-validator\",\n        \"version\": \"2.1.9\",\n        \"version_normalized\": \"2.1.9.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/egulias/EmailValidator.git\",\n            \"reference\": \"128cc721d771ec2c46ce59698f4ca42b73f71b25\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/egulias/EmailValidator/zipball/128cc721d771ec2c46ce59698f4ca42b73f71b25\",\n            \"reference\": \"128cc721d771ec2c46ce59698f4ca42b73f71b25\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/lexer\": \"^1.0.1\",\n            \"php\": \">= 5.5\"\n        },\n        \"require-dev\": {\n            \"dominicsayers/isemail\": \"dev-master\",\n            \"phpunit/phpunit\": \"^4.8.35||^5.7||^6.0\",\n            \"satooshi/php-coveralls\": \"^1.0.1\"\n        },\n        \"suggest\": {\n            \"ext-intl\": \"PHP Internationalization Libraries are required to use the SpoofChecking validation\"\n        },\n        \"time\": \"2019-06-23T10:14:27+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Egulias\\\\EmailValidator\\\\\": \"EmailValidator\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Eduardo Gulias Davis\"\n            }\n        ],\n        \"description\": \"A library for validating emails against several RFCs\",\n        \"homepage\": \"https://github.com/egulias/EmailValidator\",\n        \"keywords\": [\n            \"email\",\n            \"emailvalidation\",\n            \"emailvalidator\",\n            \"validation\",\n            \"validator\"\n        ]\n    },\n    {\n        \"name\": \"encore/laravel-admin\",\n        \"version\": \"v1.7.5\",\n        \"version_normalized\": \"1.7.5.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/z-song/laravel-admin.git\",\n            \"reference\": \"1696ae76863fc7b60ed2c717caef547dc39c30d3\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/z-song/laravel-admin/zipball/1696ae76863fc7b60ed2c717caef547dc39c30d3\",\n            \"reference\": \"1696ae76863fc7b60ed2c717caef547dc39c30d3\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/dbal\": \"2.*\",\n            \"laravel/framework\": \"~5.5\",\n            \"php\": \">=7.0.0\",\n            \"symfony/dom-crawler\": \"~3.1|~4.0\"\n        },\n        \"require-dev\": {\n            \"fzaninotto/faker\": \"~1.4\",\n            \"intervention/image\": \"~2.3\",\n            \"laravel/browser-kit-testing\": \"^2.0\",\n            \"laravel/laravel\": \"~5.5\",\n            \"phpunit/phpunit\": \"~6.0 || ~8.0\",\n            \"symfony/css-selector\": \"~3.1\"\n        },\n        \"suggest\": {\n            \"intervention/image\": \"Required to handling and manipulation upload images (~2.3).\",\n            \"spatie/eloquent-sortable\": \"Required to built orderable gird.\"\n        },\n        \"time\": \"2019-07-24T03:27:03+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Encore\\\\Admin\\\\AdminServiceProvider\"\n                ],\n                \"aliases\": {\n                    \"Admin\": \"Encore\\\\Admin\\\\Facades\\\\Admin\"\n                }\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Encore\\\\Admin\\\\\": \"src/\"\n            },\n            \"files\": [\n                \"src/helpers.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"zsong\",\n                \"email\": \"zosong@126.com\"\n            }\n        ],\n        \"description\": \"laravel admin\",\n        \"homepage\": \"https://github.com/z-song/laravel-admin\",\n        \"keywords\": [\n            \"admin\",\n            \"form\",\n            \"grid\",\n            \"laravel\"\n        ]\n    },\n    {\n        \"name\": \"erusev/parsedown\",\n        \"version\": \"1.7.3\",\n        \"version_normalized\": \"1.7.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/erusev/parsedown.git\",\n            \"reference\": \"6d893938171a817f4e9bc9e86f2da1e370b7bcd7\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7\",\n            \"reference\": \"6d893938171a817f4e9bc9e86f2da1e370b7bcd7\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-mbstring\": \"*\",\n            \"php\": \">=5.3.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.8.35\"\n        },\n        \"time\": \"2019-03-17T18:48:37+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-0\": {\n                \"Parsedown\": \"\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Emanuil Rusev\",\n                \"email\": \"hello@erusev.com\",\n                \"homepage\": \"http://erusev.com\"\n            }\n        ],\n        \"description\": \"Parser for Markdown.\",\n        \"homepage\": \"http://parsedown.org\",\n        \"keywords\": [\n            \"markdown\",\n            \"parser\"\n        ]\n    },\n    {\n        \"name\": \"fideloper/proxy\",\n        \"version\": \"4.1.0\",\n        \"version_normalized\": \"4.1.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/fideloper/TrustedProxy.git\",\n            \"reference\": \"177c79a2d1f9970f89ee2fb4c12b429af38b6dfb\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/fideloper/TrustedProxy/zipball/177c79a2d1f9970f89ee2fb4c12b429af38b6dfb\",\n            \"reference\": \"177c79a2d1f9970f89ee2fb4c12b429af38b6dfb\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"illuminate/contracts\": \"~5.0\",\n            \"php\": \">=5.4.0\"\n        },\n        \"require-dev\": {\n            \"illuminate/http\": \"~5.6\",\n            \"mockery/mockery\": \"~1.0\",\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"time\": \"2019-01-10T14:06:47+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Fideloper\\\\Proxy\\\\TrustedProxyServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Fideloper\\\\Proxy\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Chris Fidao\",\n                \"email\": \"fideloper@gmail.com\"\n            }\n        ],\n        \"description\": \"Set trusted proxies for Laravel\",\n        \"keywords\": [\n            \"load balancing\",\n            \"proxy\",\n            \"trusted proxy\"\n        ]\n    },\n    {\n        \"name\": \"filp/whoops\",\n        \"version\": \"2.4.1\",\n        \"version_normalized\": \"2.4.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/filp/whoops.git\",\n            \"reference\": \"6fb502c23885701a991b0bba974b1a8eb6673577\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/filp/whoops/zipball/6fb502c23885701a991b0bba974b1a8eb6673577\",\n            \"reference\": \"6fb502c23885701a991b0bba974b1a8eb6673577\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.5.9 || ^7.0\",\n            \"psr/log\": \"^1.0.1\"\n        },\n        \"require-dev\": {\n            \"mockery/mockery\": \"^0.9 || ^1.0\",\n            \"phpunit/phpunit\": \"^4.8.35 || ^5.7\",\n            \"symfony/var-dumper\": \"^2.6 || ^3.0 || ^4.0\"\n        },\n        \"suggest\": {\n            \"symfony/var-dumper\": \"Pretty print complex values better with var-dumper available\",\n            \"whoops/soap\": \"Formats errors as SOAP responses\"\n        },\n        \"time\": \"2019-07-04T09:00:00+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.2-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Whoops\\\\\": \"src/Whoops/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Filipe Dobreira\",\n                \"homepage\": \"https://github.com/filp\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"php error handling for cool kids\",\n        \"homepage\": \"https://filp.github.io/whoops/\",\n        \"keywords\": [\n            \"error\",\n            \"exception\",\n            \"handling\",\n            \"library\",\n            \"throwable\",\n            \"whoops\"\n        ]\n    },\n    {\n        \"name\": \"fzaninotto/faker\",\n        \"version\": \"v1.8.0\",\n        \"version_normalized\": \"1.8.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/fzaninotto/Faker.git\",\n            \"reference\": \"f72816b43e74063c8b10357394b6bba8cb1c10de\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/fzaninotto/Faker/zipball/f72816b43e74063c8b10357394b6bba8cb1c10de\",\n            \"reference\": \"f72816b43e74063c8b10357394b6bba8cb1c10de\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.3.3 || ^7.0\"\n        },\n        \"require-dev\": {\n            \"ext-intl\": \"*\",\n            \"phpunit/phpunit\": \"^4.8.35 || ^5.7\",\n            \"squizlabs/php_codesniffer\": \"^1.5\"\n        },\n        \"time\": \"2018-07-12T10:23:15+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.8-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Faker\\\\\": \"src/Faker/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"François Zaninotto\"\n            }\n        ],\n        \"description\": \"Faker is a PHP library that generates fake data for you.\",\n        \"keywords\": [\n            \"data\",\n            \"faker\",\n            \"fixtures\"\n        ]\n    },\n    {\n        \"name\": \"hamcrest/hamcrest-php\",\n        \"version\": \"v2.0.0\",\n        \"version_normalized\": \"2.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/hamcrest/hamcrest-php.git\",\n            \"reference\": \"776503d3a8e85d4f9a1148614f95b7a608b046ad\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad\",\n            \"reference\": \"776503d3a8e85d4f9a1148614f95b7a608b046ad\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.3|^7.0\"\n        },\n        \"replace\": {\n            \"cordoval/hamcrest-php\": \"*\",\n            \"davedevelopment/hamcrest-php\": \"*\",\n            \"kodova/hamcrest-php\": \"*\"\n        },\n        \"require-dev\": {\n            \"phpunit/php-file-iterator\": \"1.3.3\",\n            \"phpunit/phpunit\": \"~4.0\",\n            \"satooshi/php-coveralls\": \"^1.0\"\n        },\n        \"time\": \"2016-01-20T08:20:44+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"hamcrest\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD\"\n        ],\n        \"description\": \"This is the PHP port of Hamcrest Matchers\",\n        \"keywords\": [\n            \"test\"\n        ]\n    },\n    {\n        \"name\": \"ichynul/configx\",\n        \"version\": \"1.2.14\",\n        \"version_normalized\": \"1.2.14.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/ichynul/configx.git\",\n            \"reference\": \"4b5a7acf935415e43dce5fb9c072bdde6ef88025\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/ichynul/configx/zipball/4b5a7acf935415e43dce5fb9c072bdde6ef88025\",\n            \"reference\": \"4b5a7acf935415e43dce5fb9c072bdde6ef88025\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"ichynul/row-table\": \"^1.1.0\",\n            \"laravel-admin-ext/config\": \"^1.0\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2019-08-12T15:55:31+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Ichynul\\\\Configx\\\\ConfigxServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Ichynul\\\\Configx\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"ichynul\",\n                \"email\": \"ichynul@outlook.com\"\n            }\n        ],\n        \"description\": \"laravel-admin extension configx\",\n        \"homepage\": \"https://github.com/ichynul/configx\",\n        \"keywords\": [\n            \"extension\",\n            \"laravel-admin\"\n        ]\n    },\n    {\n        \"name\": \"ichynul/row-table\",\n        \"version\": \"1.1.0\",\n        \"version_normalized\": \"1.1.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/ichynul/row-table.git\",\n            \"reference\": \"e7e09d1caa8e668bedd7a876842ba1b6234b791d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/ichynul/row-table/zipball/e7e09d1caa8e668bedd7a876842ba1b6234b791d\",\n            \"reference\": \"e7e09d1caa8e668bedd7a876842ba1b6234b791d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2019-06-09T10:02:50+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Ichynul\\\\RowTable\\\\RowTableServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Ichynul\\\\RowTable\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"ichynul\",\n                \"email\": \"ichynul@outlook.com\"\n            }\n        ],\n        \"description\": \"laravel-admin extension row-table\",\n        \"homepage\": \"https://github.com/ichynul/row-table\",\n        \"keywords\": [\n            \"extension\",\n            \"laravel-admin\"\n        ]\n    },\n    {\n        \"name\": \"jakub-onderka/php-console-color\",\n        \"version\": \"v0.2\",\n        \"version_normalized\": \"0.2.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/JakubOnderka/PHP-Console-Color.git\",\n            \"reference\": \"d5deaecff52a0d61ccb613bb3804088da0307191\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/JakubOnderka/PHP-Console-Color/zipball/d5deaecff52a0d61ccb613bb3804088da0307191\",\n            \"reference\": \"d5deaecff52a0d61ccb613bb3804088da0307191\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.4.0\"\n        },\n        \"require-dev\": {\n            \"jakub-onderka/php-code-style\": \"1.0\",\n            \"jakub-onderka/php-parallel-lint\": \"1.0\",\n            \"jakub-onderka/php-var-dump-check\": \"0.*\",\n            \"phpunit/phpunit\": \"~4.3\",\n            \"squizlabs/php_codesniffer\": \"1.*\"\n        },\n        \"time\": \"2018-09-29T17:23:10+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"JakubOnderka\\\\PhpConsoleColor\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-2-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jakub Onderka\",\n                \"email\": \"jakub.onderka@gmail.com\"\n            }\n        ]\n    },\n    {\n        \"name\": \"jakub-onderka/php-console-highlighter\",\n        \"version\": \"v0.4\",\n        \"version_normalized\": \"0.4.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/JakubOnderka/PHP-Console-Highlighter.git\",\n            \"reference\": \"9f7a229a69d52506914b4bc61bfdb199d90c5547\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/JakubOnderka/PHP-Console-Highlighter/zipball/9f7a229a69d52506914b4bc61bfdb199d90c5547\",\n            \"reference\": \"9f7a229a69d52506914b4bc61bfdb199d90c5547\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-tokenizer\": \"*\",\n            \"jakub-onderka/php-console-color\": \"~0.2\",\n            \"php\": \">=5.4.0\"\n        },\n        \"require-dev\": {\n            \"jakub-onderka/php-code-style\": \"~1.0\",\n            \"jakub-onderka/php-parallel-lint\": \"~1.0\",\n            \"jakub-onderka/php-var-dump-check\": \"~0.1\",\n            \"phpunit/phpunit\": \"~4.0\",\n            \"squizlabs/php_codesniffer\": \"~1.5\"\n        },\n        \"time\": \"2018-09-29T18:48:56+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"JakubOnderka\\\\PhpConsoleHighlighter\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jakub Onderka\",\n                \"email\": \"acci@acci.cz\",\n                \"homepage\": \"http://www.acci.cz/\"\n            }\n        ],\n        \"description\": \"Highlight PHP code in terminal\"\n    },\n    {\n        \"name\": \"jxlwqq/simditor\",\n        \"version\": \"1.0.3\",\n        \"version_normalized\": \"1.0.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/laravel-admin-extensions/simditor.git\",\n            \"reference\": \"6c5c2c826e6280a8b30aec67cebc27dc3905eb46\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/laravel-admin-extensions/simditor/zipball/6c5c2c826e6280a8b30aec67cebc27dc3905eb46\",\n            \"reference\": \"6c5c2c826e6280a8b30aec67cebc27dc3905eb46\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2019-08-07T07:46:42+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Jxlwqq\\\\Simditor\\\\SimditorServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Jxlwqq\\\\Simditor\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"jxlwqq\",\n                \"email\": \"jxlwqq@gmail.com\"\n            }\n        ],\n        \"description\": \"Simditor for Laravel-admin\",\n        \"homepage\": \"https://github.com/jxlwqq/simditor\",\n        \"keywords\": [\n            \"extension\",\n            \"laravel-admin\"\n        ]\n    },\n    {\n        \"name\": \"laravel-admin-ext/config\",\n        \"version\": \"v1.0.3\",\n        \"version_normalized\": \"1.0.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/laravel-admin-extensions/config.git\",\n            \"reference\": \"c24d50742a0080b4f90745841387d5dd073e0878\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/laravel-admin-extensions/config/zipball/c24d50742a0080b4f90745841387d5dd073e0878\",\n            \"reference\": \"c24d50742a0080b4f90745841387d5dd073e0878\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"laravel/framework\": \"~5.5\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"laravel/laravel\": \"~5.5\",\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2018-12-12T04:03:36+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Encore\\\\Admin\\\\Config\\\\ConfigServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Encore\\\\Admin\\\\Config\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"z-song\",\n                \"email\": \"zosong@126.com\"\n            }\n        ],\n        \"description\": \"Config extension for laravel-admin\",\n        \"homepage\": \"https://github.com/laravel-admin-extensions/config\",\n        \"keywords\": [\n            \"laravel-admin\",\n            \"setting\"\n        ]\n    },\n    {\n        \"name\": \"laravel/framework\",\n        \"version\": \"v5.8.27\",\n        \"version_normalized\": \"5.8.27.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/laravel/framework.git\",\n            \"reference\": \"f1dccffb96f614895393e27e4667105a05407af5\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/laravel/framework/zipball/f1dccffb96f614895393e27e4667105a05407af5\",\n            \"reference\": \"f1dccffb96f614895393e27e4667105a05407af5\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/inflector\": \"^1.1\",\n            \"dragonmantank/cron-expression\": \"^2.0\",\n            \"egulias/email-validator\": \"^2.0\",\n            \"erusev/parsedown\": \"^1.7\",\n            \"ext-json\": \"*\",\n            \"ext-mbstring\": \"*\",\n            \"ext-openssl\": \"*\",\n            \"league/flysystem\": \"^1.0.8\",\n            \"monolog/monolog\": \"^1.12\",\n            \"nesbot/carbon\": \"^1.26.3 || ^2.0\",\n            \"opis/closure\": \"^3.1\",\n            \"php\": \"^7.1.3\",\n            \"psr/container\": \"^1.0\",\n            \"psr/simple-cache\": \"^1.0\",\n            \"ramsey/uuid\": \"^3.7\",\n            \"swiftmailer/swiftmailer\": \"^6.0\",\n            \"symfony/console\": \"^4.2\",\n            \"symfony/debug\": \"^4.2\",\n            \"symfony/finder\": \"^4.2\",\n            \"symfony/http-foundation\": \"^4.2\",\n            \"symfony/http-kernel\": \"^4.2\",\n            \"symfony/process\": \"^4.2\",\n            \"symfony/routing\": \"^4.2\",\n            \"symfony/var-dumper\": \"^4.2\",\n            \"tijsverkoyen/css-to-inline-styles\": \"^2.2.1\",\n            \"vlucas/phpdotenv\": \"^3.3\"\n        },\n        \"conflict\": {\n            \"tightenco/collect\": \"<5.5.33\"\n        },\n        \"replace\": {\n            \"illuminate/auth\": \"self.version\",\n            \"illuminate/broadcasting\": \"self.version\",\n            \"illuminate/bus\": \"self.version\",\n            \"illuminate/cache\": \"self.version\",\n            \"illuminate/config\": \"self.version\",\n            \"illuminate/console\": \"self.version\",\n            \"illuminate/container\": \"self.version\",\n            \"illuminate/contracts\": \"self.version\",\n            \"illuminate/cookie\": \"self.version\",\n            \"illuminate/database\": \"self.version\",\n            \"illuminate/encryption\": \"self.version\",\n            \"illuminate/events\": \"self.version\",\n            \"illuminate/filesystem\": \"self.version\",\n            \"illuminate/hashing\": \"self.version\",\n            \"illuminate/http\": \"self.version\",\n            \"illuminate/log\": \"self.version\",\n            \"illuminate/mail\": \"self.version\",\n            \"illuminate/notifications\": \"self.version\",\n            \"illuminate/pagination\": \"self.version\",\n            \"illuminate/pipeline\": \"self.version\",\n            \"illuminate/queue\": \"self.version\",\n            \"illuminate/redis\": \"self.version\",\n            \"illuminate/routing\": \"self.version\",\n            \"illuminate/session\": \"self.version\",\n            \"illuminate/support\": \"self.version\",\n            \"illuminate/translation\": \"self.version\",\n            \"illuminate/validation\": \"self.version\",\n            \"illuminate/view\": \"self.version\"\n        },\n        \"require-dev\": {\n            \"aws/aws-sdk-php\": \"^3.0\",\n            \"doctrine/dbal\": \"^2.6\",\n            \"filp/whoops\": \"^2.1.4\",\n            \"guzzlehttp/guzzle\": \"^6.3\",\n            \"league/flysystem-cached-adapter\": \"^1.0\",\n            \"mockery/mockery\": \"^1.0\",\n            \"moontoast/math\": \"^1.1\",\n            \"orchestra/testbench-core\": \"3.8.*\",\n            \"pda/pheanstalk\": \"^4.0\",\n            \"phpunit/phpunit\": \"^7.5|^8.0\",\n            \"predis/predis\": \"^1.1.1\",\n            \"symfony/css-selector\": \"^4.2\",\n            \"symfony/dom-crawler\": \"^4.2\",\n            \"true/punycode\": \"^2.1\"\n        },\n        \"suggest\": {\n            \"aws/aws-sdk-php\": \"Required to use the SQS queue driver and SES mail driver (^3.0).\",\n            \"doctrine/dbal\": \"Required to rename columns and drop SQLite columns (^2.6).\",\n            \"ext-pcntl\": \"Required to use all features of the queue worker.\",\n            \"ext-posix\": \"Required to use all features of the queue worker.\",\n            \"filp/whoops\": \"Required for friendly error pages in development (^2.1.4).\",\n            \"fzaninotto/faker\": \"Required to use the eloquent factory builder (^1.4).\",\n            \"guzzlehttp/guzzle\": \"Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (^6.0).\",\n            \"laravel/tinker\": \"Required to use the tinker console command (^1.0).\",\n            \"league/flysystem-aws-s3-v3\": \"Required to use the Flysystem S3 driver (^1.0).\",\n            \"league/flysystem-cached-adapter\": \"Required to use the Flysystem cache (^1.0).\",\n            \"league/flysystem-rackspace\": \"Required to use the Flysystem Rackspace driver (^1.0).\",\n            \"league/flysystem-sftp\": \"Required to use the Flysystem SFTP driver (^1.0).\",\n            \"moontoast/math\": \"Required to use ordered UUIDs (^1.1).\",\n            \"nexmo/client\": \"Required to use the Nexmo transport (^1.0).\",\n            \"pda/pheanstalk\": \"Required to use the beanstalk queue driver (^4.0).\",\n            \"predis/predis\": \"Required to use the redis cache and queue drivers (^1.0).\",\n            \"pusher/pusher-php-server\": \"Required to use the Pusher broadcast driver (^3.0).\",\n            \"symfony/css-selector\": \"Required to use some of the crawler integration testing tools (^4.2).\",\n            \"symfony/dom-crawler\": \"Required to use most of the crawler integration testing tools (^4.2).\",\n            \"symfony/psr-http-message-bridge\": \"Required to use PSR-7 bridging features (^1.1).\",\n            \"wildbit/swiftmailer-postmark\": \"Required to use Postmark mail driver (^3.0).\"\n        },\n        \"time\": \"2019-07-02T13:43:47+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"5.8-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"files\": [\n                \"src/Illuminate/Foundation/helpers.php\",\n                \"src/Illuminate/Support/helpers.php\"\n            ],\n            \"psr-4\": {\n                \"Illuminate\\\\\": \"src/Illuminate/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Taylor Otwell\",\n                \"email\": \"taylor@laravel.com\"\n            }\n        ],\n        \"description\": \"The Laravel Framework.\",\n        \"homepage\": \"https://laravel.com\",\n        \"keywords\": [\n            \"framework\",\n            \"laravel\"\n        ]\n    },\n    {\n        \"name\": \"laravel/tinker\",\n        \"version\": \"v1.0.8\",\n        \"version_normalized\": \"1.0.8.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/laravel/tinker.git\",\n            \"reference\": \"cafbf598a90acde68985660e79b2b03c5609a405\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/laravel/tinker/zipball/cafbf598a90acde68985660e79b2b03c5609a405\",\n            \"reference\": \"cafbf598a90acde68985660e79b2b03c5609a405\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"illuminate/console\": \"~5.1\",\n            \"illuminate/contracts\": \"~5.1\",\n            \"illuminate/support\": \"~5.1\",\n            \"php\": \">=5.5.9\",\n            \"psy/psysh\": \"0.7.*|0.8.*|0.9.*\",\n            \"symfony/var-dumper\": \"~3.0|~4.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~4.0|~5.0\"\n        },\n        \"suggest\": {\n            \"illuminate/database\": \"The Illuminate Database package (~5.1).\"\n        },\n        \"time\": \"2018-10-12T19:39:35+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0-dev\"\n            },\n            \"laravel\": {\n                \"providers\": [\n                    \"Laravel\\\\Tinker\\\\TinkerServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Laravel\\\\Tinker\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Taylor Otwell\",\n                \"email\": \"taylor@laravel.com\"\n            }\n        ],\n        \"description\": \"Powerful REPL for the Laravel framework.\",\n        \"keywords\": [\n            \"REPL\",\n            \"Tinker\",\n            \"laravel\",\n            \"psysh\"\n        ]\n    },\n    {\n        \"name\": \"league/flysystem\",\n        \"version\": \"1.0.53\",\n        \"version_normalized\": \"1.0.53.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/thephpleague/flysystem.git\",\n            \"reference\": \"08e12b7628f035600634a5e76d95b5eb66cea674\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674\",\n            \"reference\": \"08e12b7628f035600634a5e76d95b5eb66cea674\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-fileinfo\": \"*\",\n            \"php\": \">=5.5.9\"\n        },\n        \"conflict\": {\n            \"league/flysystem-sftp\": \"<1.0.6\"\n        },\n        \"require-dev\": {\n            \"phpspec/phpspec\": \"^3.4\",\n            \"phpunit/phpunit\": \"^5.7.10\"\n        },\n        \"suggest\": {\n            \"ext-fileinfo\": \"Required for MimeType\",\n            \"ext-ftp\": \"Allows you to use FTP server storage\",\n            \"ext-openssl\": \"Allows you to use FTPS server storage\",\n            \"league/flysystem-aws-s3-v2\": \"Allows you to use S3 storage with AWS SDK v2\",\n            \"league/flysystem-aws-s3-v3\": \"Allows you to use S3 storage with AWS SDK v3\",\n            \"league/flysystem-azure\": \"Allows you to use Windows Azure Blob storage\",\n            \"league/flysystem-cached-adapter\": \"Flysystem adapter decorator for metadata caching\",\n            \"league/flysystem-eventable-filesystem\": \"Allows you to use EventableFilesystem\",\n            \"league/flysystem-rackspace\": \"Allows you to use Rackspace Cloud Files\",\n            \"league/flysystem-sftp\": \"Allows you to use SFTP server storage via phpseclib\",\n            \"league/flysystem-webdav\": \"Allows you to use WebDAV storage\",\n            \"league/flysystem-ziparchive\": \"Allows you to use ZipArchive adapter\",\n            \"spatie/flysystem-dropbox\": \"Allows you to use Dropbox storage\",\n            \"srmklive/flysystem-dropbox-v2\": \"Allows you to use Dropbox storage for PHP 5 applications\"\n        },\n        \"time\": \"2019-06-18T20:09:29+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"League\\\\Flysystem\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Frank de Jonge\",\n                \"email\": \"info@frenky.net\"\n            }\n        ],\n        \"description\": \"Filesystem abstraction: Many filesystems, one API.\",\n        \"keywords\": [\n            \"Cloud Files\",\n            \"WebDAV\",\n            \"abstraction\",\n            \"aws\",\n            \"cloud\",\n            \"copy.com\",\n            \"dropbox\",\n            \"file systems\",\n            \"files\",\n            \"filesystem\",\n            \"filesystems\",\n            \"ftp\",\n            \"rackspace\",\n            \"remote\",\n            \"s3\",\n            \"sftp\",\n            \"storage\"\n        ]\n    },\n    {\n        \"name\": \"mockery/mockery\",\n        \"version\": \"1.2.2\",\n        \"version_normalized\": \"1.2.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/mockery/mockery.git\",\n            \"reference\": \"0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/mockery/mockery/zipball/0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2\",\n            \"reference\": \"0eb0b48c3f07b3b89f5169ce005b7d05b18cf1d2\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"hamcrest/hamcrest-php\": \"~2.0\",\n            \"lib-pcre\": \">=7.0\",\n            \"php\": \">=5.6.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~5.7.10|~6.5|~7.0|~8.0\"\n        },\n        \"time\": \"2019-02-13T09:37:52+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-0\": {\n                \"Mockery\": \"library/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Pádraic Brady\",\n                \"email\": \"padraic.brady@gmail.com\",\n                \"homepage\": \"http://blog.astrumfutura.com\"\n            },\n            {\n                \"name\": \"Dave Marshall\",\n                \"email\": \"dave.marshall@atstsolutions.co.uk\",\n                \"homepage\": \"http://davedevelopment.co.uk\"\n            }\n        ],\n        \"description\": \"Mockery is a simple yet flexible PHP mock object framework\",\n        \"homepage\": \"https://github.com/mockery/mockery\",\n        \"keywords\": [\n            \"BDD\",\n            \"TDD\",\n            \"library\",\n            \"mock\",\n            \"mock objects\",\n            \"mockery\",\n            \"stub\",\n            \"test\",\n            \"test double\",\n            \"testing\"\n        ]\n    },\n    {\n        \"name\": \"monolog/monolog\",\n        \"version\": \"1.24.0\",\n        \"version_normalized\": \"1.24.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/Seldaek/monolog.git\",\n            \"reference\": \"bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266\",\n            \"reference\": \"bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.0\",\n            \"psr/log\": \"~1.0\"\n        },\n        \"provide\": {\n            \"psr/log-implementation\": \"1.0.0\"\n        },\n        \"require-dev\": {\n            \"aws/aws-sdk-php\": \"^2.4.9 || ^3.0\",\n            \"doctrine/couchdb\": \"~1.0@dev\",\n            \"graylog2/gelf-php\": \"~1.0\",\n            \"jakub-onderka/php-parallel-lint\": \"0.9\",\n            \"php-amqplib/php-amqplib\": \"~2.4\",\n            \"php-console/php-console\": \"^3.1.3\",\n            \"phpunit/phpunit\": \"~4.5\",\n            \"phpunit/phpunit-mock-objects\": \"2.3.0\",\n            \"ruflin/elastica\": \">=0.90 <3.0\",\n            \"sentry/sentry\": \"^0.13\",\n            \"swiftmailer/swiftmailer\": \"^5.3|^6.0\"\n        },\n        \"suggest\": {\n            \"aws/aws-sdk-php\": \"Allow sending log messages to AWS services like DynamoDB\",\n            \"doctrine/couchdb\": \"Allow sending log messages to a CouchDB server\",\n            \"ext-amqp\": \"Allow sending log messages to an AMQP server (1.0+ required)\",\n            \"ext-mongo\": \"Allow sending log messages to a MongoDB server\",\n            \"graylog2/gelf-php\": \"Allow sending log messages to a GrayLog2 server\",\n            \"mongodb/mongodb\": \"Allow sending log messages to a MongoDB server via PHP Driver\",\n            \"php-amqplib/php-amqplib\": \"Allow sending log messages to an AMQP server using php-amqplib\",\n            \"php-console/php-console\": \"Allow sending log messages to Google Chrome\",\n            \"rollbar/rollbar\": \"Allow sending log messages to Rollbar\",\n            \"ruflin/elastica\": \"Allow sending log messages to an Elastic Search server\",\n            \"sentry/sentry\": \"Allow sending log messages to a Sentry server\"\n        },\n        \"time\": \"2018-11-05T09:00:11+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Monolog\\\\\": \"src/Monolog\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jordi Boggiano\",\n                \"email\": \"j.boggiano@seld.be\",\n                \"homepage\": \"http://seld.be\"\n            }\n        ],\n        \"description\": \"Sends your logs to files, sockets, inboxes, databases and various web services\",\n        \"homepage\": \"http://github.com/Seldaek/monolog\",\n        \"keywords\": [\n            \"log\",\n            \"logging\",\n            \"psr-3\"\n        ]\n    },\n    {\n        \"name\": \"myclabs/deep-copy\",\n        \"version\": \"1.9.1\",\n        \"version_normalized\": \"1.9.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/myclabs/DeepCopy.git\",\n            \"reference\": \"e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72\",\n            \"reference\": \"e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"replace\": {\n            \"myclabs/deep-copy\": \"self.version\"\n        },\n        \"require-dev\": {\n            \"doctrine/collections\": \"^1.0\",\n            \"doctrine/common\": \"^2.6\",\n            \"phpunit/phpunit\": \"^7.1\"\n        },\n        \"time\": \"2019-04-07T13:18:21+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"DeepCopy\\\\\": \"src/DeepCopy/\"\n            },\n            \"files\": [\n                \"src/DeepCopy/deep_copy.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"description\": \"Create deep copies (clones) of your objects\",\n        \"keywords\": [\n            \"clone\",\n            \"copy\",\n            \"duplicate\",\n            \"object\",\n            \"object graph\"\n        ]\n    },\n    {\n        \"name\": \"nesbot/carbon\",\n        \"version\": \"2.20.0\",\n        \"version_normalized\": \"2.20.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/briannesbitt/Carbon.git\",\n            \"reference\": \"bc671b896c276795fad8426b0aa24e8ade0f2498\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/briannesbitt/Carbon/zipball/bc671b896c276795fad8426b0aa24e8ade0f2498\",\n            \"reference\": \"bc671b896c276795fad8426b0aa24e8ade0f2498\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-json\": \"*\",\n            \"php\": \"^7.1.8 || ^8.0\",\n            \"symfony/translation\": \"^3.4 || ^4.0\"\n        },\n        \"require-dev\": {\n            \"friendsofphp/php-cs-fixer\": \"^2.14 || ^3.0\",\n            \"kylekatarnls/multi-tester\": \"^1.1\",\n            \"phpmd/phpmd\": \"^2.6\",\n            \"phpstan/phpstan\": \"^0.11\",\n            \"phpunit/phpunit\": \"^7.5 || ^8.0\",\n            \"squizlabs/php_codesniffer\": \"^3.4\"\n        },\n        \"time\": \"2019-06-25T10:00:57+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"Carbon\\\\Laravel\\\\ServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Carbon\\\\\": \"src/Carbon/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Brian Nesbitt\",\n                \"email\": \"brian@nesbot.com\",\n                \"homepage\": \"http://nesbot.com\"\n            }\n        ],\n        \"description\": \"A simple API extension for DateTime.\",\n        \"homepage\": \"http://carbon.nesbot.com\",\n        \"keywords\": [\n            \"date\",\n            \"datetime\",\n            \"time\"\n        ]\n    },\n    {\n        \"name\": \"nikic/php-parser\",\n        \"version\": \"v4.2.2\",\n        \"version_normalized\": \"4.2.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/nikic/PHP-Parser.git\",\n            \"reference\": \"1bd73cc04c3843ad8d6b0bfc0956026a151fc420\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/nikic/PHP-Parser/zipball/1bd73cc04c3843ad8d6b0bfc0956026a151fc420\",\n            \"reference\": \"1bd73cc04c3843ad8d6b0bfc0956026a151fc420\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-tokenizer\": \"*\",\n            \"php\": \">=7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.5 || ^7.0\"\n        },\n        \"time\": \"2019-05-25T20:07:01+00:00\",\n        \"bin\": [\n            \"bin/php-parse\"\n        ],\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.2-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"PhpParser\\\\\": \"lib/PhpParser\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nikita Popov\"\n            }\n        ],\n        \"description\": \"A PHP parser written in PHP\",\n        \"keywords\": [\n            \"parser\",\n            \"php\"\n        ]\n    },\n    {\n        \"name\": \"nunomaduro/collision\",\n        \"version\": \"v3.0.1\",\n        \"version_normalized\": \"3.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/nunomaduro/collision.git\",\n            \"reference\": \"af42d339fe2742295a54f6fdd42aaa6f8c4aca68\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/nunomaduro/collision/zipball/af42d339fe2742295a54f6fdd42aaa6f8c4aca68\",\n            \"reference\": \"af42d339fe2742295a54f6fdd42aaa6f8c4aca68\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"filp/whoops\": \"^2.1.4\",\n            \"jakub-onderka/php-console-highlighter\": \"0.3.*|0.4.*\",\n            \"php\": \"^7.1\",\n            \"symfony/console\": \"~2.8|~3.3|~4.0\"\n        },\n        \"require-dev\": {\n            \"laravel/framework\": \"5.8.*\",\n            \"nunomaduro/larastan\": \"^0.3.0\",\n            \"phpstan/phpstan\": \"^0.11\",\n            \"phpunit/phpunit\": \"~8.0\"\n        },\n        \"time\": \"2019-03-07T21:35:13+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\CollisionServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"NunoMaduro\\\\Collision\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nuno Maduro\",\n                \"email\": \"enunomaduro@gmail.com\"\n            }\n        ],\n        \"description\": \"Cli error handling for console/command-line PHP applications.\",\n        \"keywords\": [\n            \"artisan\",\n            \"cli\",\n            \"command-line\",\n            \"console\",\n            \"error\",\n            \"handling\",\n            \"laravel\",\n            \"laravel-zero\",\n            \"php\",\n            \"symfony\"\n        ]\n    },\n    {\n        \"name\": \"opis/closure\",\n        \"version\": \"3.3.0\",\n        \"version_normalized\": \"3.3.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/opis/closure.git\",\n            \"reference\": \"f846725591203098246276b2e7b9e8b7814c4965\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/opis/closure/zipball/f846725591203098246276b2e7b9e8b7814c4965\",\n            \"reference\": \"f846725591203098246276b2e7b9e8b7814c4965\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.4 || ^7.0\"\n        },\n        \"require-dev\": {\n            \"jeremeamia/superclosure\": \"^2.0\",\n            \"phpunit/phpunit\": \"^4.0 || ^5.0 || ^6.0 || ^7.0\"\n        },\n        \"time\": \"2019-05-31T20:04:32+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.3.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Opis\\\\Closure\\\\\": \"src/\"\n            },\n            \"files\": [\n                \"functions.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Marius Sarca\",\n                \"email\": \"marius.sarca@gmail.com\"\n            },\n            {\n                \"name\": \"Sorin Sarca\",\n                \"email\": \"sarca_sorin@hotmail.com\"\n            }\n        ],\n        \"description\": \"A library that can be used to serialize closures (anonymous functions) and arbitrary objects.\",\n        \"homepage\": \"https://opis.io/closure\",\n        \"keywords\": [\n            \"anonymous functions\",\n            \"closure\",\n            \"function\",\n            \"serializable\",\n            \"serialization\",\n            \"serialize\"\n        ]\n    },\n    {\n        \"name\": \"paragonie/random_compat\",\n        \"version\": \"v9.99.99\",\n        \"version_normalized\": \"9.99.99.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/paragonie/random_compat.git\",\n            \"reference\": \"84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95\",\n            \"reference\": \"84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"4.*|5.*\",\n            \"vimeo/psalm\": \"^1\"\n        },\n        \"suggest\": {\n            \"ext-libsodium\": \"Provides a modern crypto API that can be used to generate random bytes.\"\n        },\n        \"time\": \"2018-07-02T15:55:56+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Paragon Initiative Enterprises\",\n                \"email\": \"security@paragonie.com\",\n                \"homepage\": \"https://paragonie.com\"\n            }\n        ],\n        \"description\": \"PHP 5.x polyfill for random_bytes() and random_int() from PHP 7\",\n        \"keywords\": [\n            \"csprng\",\n            \"polyfill\",\n            \"pseudorandom\",\n            \"random\"\n        ]\n    },\n    {\n        \"name\": \"peinhu/aetherupload-laravel\",\n        \"version\": \"v2.0.7\",\n        \"version_normalized\": \"2.0.7.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/peinhu/AetherUpload-Laravel.git\",\n            \"reference\": \"8aa278137a547a328632f5df9abfec7020b7f52f\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/peinhu/AetherUpload-Laravel/zipball/8aa278137a547a328632f5df9abfec7020b7f52f\",\n            \"reference\": \"8aa278137a547a328632f5df9abfec7020b7f52f\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.5.9\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.5\"\n        },\n        \"suggest\": {\n            \"predis/predis\": \"Needed to support instant completion\"\n        },\n        \"time\": \"2019-07-16T10:00:47+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"AetherUpload\\\\AetherUploadServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"AetherUpload\\\\\": \"src/\"\n            },\n            \"files\": [\n                \"src/helpers.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"GPL-2.0\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Payne Hu\",\n                \"role\": \"Manager\",\n                \"email\": \"huyang110yahoo@gmail.com\",\n                \"homepage\": \"http://www.2ndrenais.com\"\n            }\n        ],\n        \"description\": \"Upload large files for Laravel 上传 大文件 laravel包\",\n        \"keywords\": [\n            \"laravel\",\n            \"large\",\n            \"upload\",\n            \"大文件\"\n        ]\n    },\n    {\n        \"name\": \"phar-io/manifest\",\n        \"version\": \"1.0.3\",\n        \"version_normalized\": \"1.0.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phar-io/manifest.git\",\n            \"reference\": \"7761fcacf03b4d4f16e7ccb606d4879ca431fcf4\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4\",\n            \"reference\": \"7761fcacf03b4d4f16e7ccb606d4879ca431fcf4\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-dom\": \"*\",\n            \"ext-phar\": \"*\",\n            \"phar-io/version\": \"^2.0\",\n            \"php\": \"^5.6 || ^7.0\"\n        },\n        \"time\": \"2018-07-08T19:23:20+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Arne Blankerts\",\n                \"email\": \"arne@blankerts.de\",\n                \"role\": \"Developer\"\n            },\n            {\n                \"name\": \"Sebastian Heuer\",\n                \"email\": \"sebastian@phpeople.de\",\n                \"role\": \"Developer\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"Component for reading phar.io manifest information from a PHP Archive (PHAR)\"\n    },\n    {\n        \"name\": \"phar-io/version\",\n        \"version\": \"2.0.1\",\n        \"version_normalized\": \"2.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phar-io/version.git\",\n            \"reference\": \"45a2ec53a73c70ce41d55cedef9063630abaf1b6\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6\",\n            \"reference\": \"45a2ec53a73c70ce41d55cedef9063630abaf1b6\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.6 || ^7.0\"\n        },\n        \"time\": \"2018-07-08T19:19:57+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Arne Blankerts\",\n                \"email\": \"arne@blankerts.de\",\n                \"role\": \"Developer\"\n            },\n            {\n                \"name\": \"Sebastian Heuer\",\n                \"email\": \"sebastian@phpeople.de\",\n                \"role\": \"Developer\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"Library for handling version information and constraints\"\n    },\n    {\n        \"name\": \"phpdocumentor/reflection-common\",\n        \"version\": \"1.0.1\",\n        \"version_normalized\": \"1.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phpDocumentor/ReflectionCommon.git\",\n            \"reference\": \"21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6\",\n            \"reference\": \"21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.5\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.6\"\n        },\n        \"time\": \"2017-09-11T18:02:19+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"phpDocumentor\\\\Reflection\\\\\": [\n                    \"src\"\n                ]\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jaap van Otterdijk\",\n                \"email\": \"opensource@ijaap.nl\"\n            }\n        ],\n        \"description\": \"Common reflection classes used by phpdocumentor to reflect the code structure\",\n        \"homepage\": \"http://www.phpdoc.org\",\n        \"keywords\": [\n            \"FQSEN\",\n            \"phpDocumentor\",\n            \"phpdoc\",\n            \"reflection\",\n            \"static analysis\"\n        ]\n    },\n    {\n        \"name\": \"phpdocumentor/reflection-docblock\",\n        \"version\": \"4.3.1\",\n        \"version_normalized\": \"4.3.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phpDocumentor/ReflectionDocBlock.git\",\n            \"reference\": \"bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c\",\n            \"reference\": \"bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\",\n            \"phpdocumentor/reflection-common\": \"^1.0.0\",\n            \"phpdocumentor/type-resolver\": \"^0.4.0\",\n            \"webmozart/assert\": \"^1.0\"\n        },\n        \"require-dev\": {\n            \"doctrine/instantiator\": \"~1.0.5\",\n            \"mockery/mockery\": \"^1.0\",\n            \"phpunit/phpunit\": \"^6.4\"\n        },\n        \"time\": \"2019-04-30T17:48:53+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"phpDocumentor\\\\Reflection\\\\\": [\n                    \"src/\"\n                ]\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Mike van Riel\",\n                \"email\": \"me@mikevanriel.com\"\n            }\n        ],\n        \"description\": \"With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.\"\n    },\n    {\n        \"name\": \"phpdocumentor/type-resolver\",\n        \"version\": \"0.4.0\",\n        \"version_normalized\": \"0.4.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phpDocumentor/TypeResolver.git\",\n            \"reference\": \"9c977708995954784726e25d0cd1dddf4e65b0f7\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7\",\n            \"reference\": \"9c977708995954784726e25d0cd1dddf4e65b0f7\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.5 || ^7.0\",\n            \"phpdocumentor/reflection-common\": \"^1.0\"\n        },\n        \"require-dev\": {\n            \"mockery/mockery\": \"^0.9.4\",\n            \"phpunit/phpunit\": \"^5.2||^4.8.24\"\n        },\n        \"time\": \"2017-07-14T14:27:02+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"phpDocumentor\\\\Reflection\\\\\": [\n                    \"src/\"\n                ]\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Mike van Riel\",\n                \"email\": \"me@mikevanriel.com\"\n            }\n        ]\n    },\n    {\n        \"name\": \"phpoption/phpoption\",\n        \"version\": \"1.5.0\",\n        \"version_normalized\": \"1.5.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/schmittjoh/php-option.git\",\n            \"reference\": \"94e644f7d2051a5f0fcf77d81605f152eecff0ed\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed\",\n            \"reference\": \"94e644f7d2051a5f0fcf77d81605f152eecff0ed\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"4.7.*\"\n        },\n        \"time\": \"2015-07-25T16:39:46+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-0\": {\n                \"PhpOption\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"Apache2\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Johannes M. Schmitt\",\n                \"email\": \"schmittjoh@gmail.com\"\n            }\n        ],\n        \"description\": \"Option Type for PHP\",\n        \"keywords\": [\n            \"language\",\n            \"option\",\n            \"php\",\n            \"type\"\n        ]\n    },\n    {\n        \"name\": \"phpspec/prophecy\",\n        \"version\": \"1.8.1\",\n        \"version_normalized\": \"1.8.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/phpspec/prophecy.git\",\n            \"reference\": \"1927e75f4ed19131ec9bcc3b002e07fb1173ee76\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76\",\n            \"reference\": \"1927e75f4ed19131ec9bcc3b002e07fb1173ee76\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/instantiator\": \"^1.0.2\",\n            \"php\": \"^5.3|^7.0\",\n            \"phpdocumentor/reflection-docblock\": \"^2.0|^3.0.2|^4.0\",\n            \"sebastian/comparator\": \"^1.1|^2.0|^3.0\",\n            \"sebastian/recursion-context\": \"^1.0|^2.0|^3.0\"\n        },\n        \"require-dev\": {\n            \"phpspec/phpspec\": \"^2.5|^3.2\",\n            \"phpunit/phpunit\": \"^4.8.35 || ^5.7 || ^6.5 || ^7.1\"\n        },\n        \"time\": \"2019-06-13T12:50:23+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.8.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Prophecy\\\\\": \"src/Prophecy\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Konstantin Kudryashov\",\n                \"email\": \"ever.zet@gmail.com\",\n                \"homepage\": \"http://everzet.com\"\n            },\n            {\n                \"name\": \"Marcello Duarte\",\n                \"email\": \"marcello.duarte@gmail.com\"\n            }\n        ],\n        \"description\": \"Highly opinionated mocking framework for PHP 5.3+\",\n        \"homepage\": \"https://github.com/phpspec/prophecy\",\n        \"keywords\": [\n            \"Double\",\n            \"Dummy\",\n            \"fake\",\n            \"mock\",\n            \"spy\",\n            \"stub\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/php-code-coverage\",\n        \"version\": \"6.1.4\",\n        \"version_normalized\": \"6.1.4.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/php-code-coverage.git\",\n            \"reference\": \"807e6013b00af69b6c5d9ceb4282d0393dbb9d8d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d\",\n            \"reference\": \"807e6013b00af69b6c5d9ceb4282d0393dbb9d8d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-dom\": \"*\",\n            \"ext-xmlwriter\": \"*\",\n            \"php\": \"^7.1\",\n            \"phpunit/php-file-iterator\": \"^2.0\",\n            \"phpunit/php-text-template\": \"^1.2.1\",\n            \"phpunit/php-token-stream\": \"^3.0\",\n            \"sebastian/code-unit-reverse-lookup\": \"^1.0.1\",\n            \"sebastian/environment\": \"^3.1 || ^4.0\",\n            \"sebastian/version\": \"^2.0.1\",\n            \"theseer/tokenizer\": \"^1.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"suggest\": {\n            \"ext-xdebug\": \"^2.6.0\"\n        },\n        \"time\": \"2018-10-31T16:06:48+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"6.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"Library that provides collection, processing, and rendering functionality for PHP code coverage information.\",\n        \"homepage\": \"https://github.com/sebastianbergmann/php-code-coverage\",\n        \"keywords\": [\n            \"coverage\",\n            \"testing\",\n            \"xunit\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/php-file-iterator\",\n        \"version\": \"2.0.2\",\n        \"version_normalized\": \"2.0.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/php-file-iterator.git\",\n            \"reference\": \"050bedf145a257b1ff02746c31894800e5122946\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946\",\n            \"reference\": \"050bedf145a257b1ff02746c31894800e5122946\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.1\"\n        },\n        \"time\": \"2018-09-13T20:33:42+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"FilterIterator implementation that filters files based on a list of suffixes.\",\n        \"homepage\": \"https://github.com/sebastianbergmann/php-file-iterator/\",\n        \"keywords\": [\n            \"filesystem\",\n            \"iterator\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/php-text-template\",\n        \"version\": \"1.2.1\",\n        \"version_normalized\": \"1.2.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/php-text-template.git\",\n            \"reference\": \"31f8b717e51d9a2afca6c9f046f5d69fc27c8686\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686\",\n            \"reference\": \"31f8b717e51d9a2afca6c9f046f5d69fc27c8686\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"time\": \"2015-06-21T13:50:34+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"Simple template engine.\",\n        \"homepage\": \"https://github.com/sebastianbergmann/php-text-template/\",\n        \"keywords\": [\n            \"template\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/php-timer\",\n        \"version\": \"2.1.2\",\n        \"version_normalized\": \"2.1.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/php-timer.git\",\n            \"reference\": \"1038454804406b0b5f5f520358e78c1c2f71501e\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e\",\n            \"reference\": \"1038454804406b0b5f5f520358e78c1c2f71501e\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"time\": \"2019-06-07T04:22:29+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"Utility class for timing\",\n        \"homepage\": \"https://github.com/sebastianbergmann/php-timer/\",\n        \"keywords\": [\n            \"timer\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/php-token-stream\",\n        \"version\": \"3.0.1\",\n        \"version_normalized\": \"3.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/php-token-stream.git\",\n            \"reference\": \"c99e3be9d3e85f60646f152f9002d46ed7770d18\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18\",\n            \"reference\": \"c99e3be9d3e85f60646f152f9002d46ed7770d18\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-tokenizer\": \"*\",\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.0\"\n        },\n        \"time\": \"2018-10-30T05:52:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Wrapper around PHP's tokenizer extension.\",\n        \"homepage\": \"https://github.com/sebastianbergmann/php-token-stream/\",\n        \"keywords\": [\n            \"tokenizer\"\n        ]\n    },\n    {\n        \"name\": \"phpunit/phpunit\",\n        \"version\": \"7.5.13\",\n        \"version_normalized\": \"7.5.13.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/phpunit.git\",\n            \"reference\": \"b9278591caa8630127f96c63b598712b699e671c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b9278591caa8630127f96c63b598712b699e671c\",\n            \"reference\": \"b9278591caa8630127f96c63b598712b699e671c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"doctrine/instantiator\": \"^1.1\",\n            \"ext-dom\": \"*\",\n            \"ext-json\": \"*\",\n            \"ext-libxml\": \"*\",\n            \"ext-mbstring\": \"*\",\n            \"ext-xml\": \"*\",\n            \"myclabs/deep-copy\": \"^1.7\",\n            \"phar-io/manifest\": \"^1.0.2\",\n            \"phar-io/version\": \"^2.0\",\n            \"php\": \"^7.1\",\n            \"phpspec/prophecy\": \"^1.7\",\n            \"phpunit/php-code-coverage\": \"^6.0.7\",\n            \"phpunit/php-file-iterator\": \"^2.0.1\",\n            \"phpunit/php-text-template\": \"^1.2.1\",\n            \"phpunit/php-timer\": \"^2.1\",\n            \"sebastian/comparator\": \"^3.0\",\n            \"sebastian/diff\": \"^3.0\",\n            \"sebastian/environment\": \"^4.0\",\n            \"sebastian/exporter\": \"^3.1\",\n            \"sebastian/global-state\": \"^2.0\",\n            \"sebastian/object-enumerator\": \"^3.0.3\",\n            \"sebastian/resource-operations\": \"^2.0\",\n            \"sebastian/version\": \"^2.0.1\"\n        },\n        \"conflict\": {\n            \"phpunit/phpunit-mock-objects\": \"*\"\n        },\n        \"require-dev\": {\n            \"ext-pdo\": \"*\"\n        },\n        \"suggest\": {\n            \"ext-soap\": \"*\",\n            \"ext-xdebug\": \"*\",\n            \"phpunit/php-invoker\": \"^2.0\"\n        },\n        \"time\": \"2019-06-19T12:01:51+00:00\",\n        \"bin\": [\n            \"phpunit\"\n        ],\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"7.5-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"The PHP Unit Testing framework.\",\n        \"homepage\": \"https://phpunit.de/\",\n        \"keywords\": [\n            \"phpunit\",\n            \"testing\",\n            \"xunit\"\n        ]\n    },\n    {\n        \"name\": \"predis/predis\",\n        \"version\": \"v1.1.1\",\n        \"version_normalized\": \"1.1.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/nrk/predis.git\",\n            \"reference\": \"f0210e38881631afeafb56ab43405a92cafd9fd1\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/nrk/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1\",\n            \"reference\": \"f0210e38881631afeafb56ab43405a92cafd9fd1\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.9\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~4.8\"\n        },\n        \"suggest\": {\n            \"ext-curl\": \"Allows access to Webdis when paired with phpiredis\",\n            \"ext-phpiredis\": \"Allows faster serialization and deserialization of the Redis protocol\"\n        },\n        \"time\": \"2016-06-16T16:22:20+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Predis\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Daniele Alessandri\",\n                \"email\": \"suppakilla@gmail.com\",\n                \"homepage\": \"http://clorophilla.net\"\n            }\n        ],\n        \"description\": \"Flexible and feature-complete Redis client for PHP and HHVM\",\n        \"homepage\": \"http://github.com/nrk/predis\",\n        \"keywords\": [\n            \"nosql\",\n            \"predis\",\n            \"redis\"\n        ]\n    },\n    {\n        \"name\": \"psr/container\",\n        \"version\": \"1.0.0\",\n        \"version_normalized\": \"1.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/php-fig/container.git\",\n            \"reference\": \"b7ce3b176482dbbc1245ebf52b181af44c2cf55f\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f\",\n            \"reference\": \"b7ce3b176482dbbc1245ebf52b181af44c2cf55f\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.0\"\n        },\n        \"time\": \"2017-02-14T16:28:37+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Psr\\\\Container\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"PHP-FIG\",\n                \"homepage\": \"http://www.php-fig.org/\"\n            }\n        ],\n        \"description\": \"Common Container Interface (PHP FIG PSR-11)\",\n        \"homepage\": \"https://github.com/php-fig/container\",\n        \"keywords\": [\n            \"PSR-11\",\n            \"container\",\n            \"container-interface\",\n            \"container-interop\",\n            \"psr\"\n        ]\n    },\n    {\n        \"name\": \"psr/log\",\n        \"version\": \"1.1.0\",\n        \"version_normalized\": \"1.1.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/php-fig/log.git\",\n            \"reference\": \"6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd\",\n            \"reference\": \"6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.0\"\n        },\n        \"time\": \"2018-11-20T15:27:04+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Psr\\\\Log\\\\\": \"Psr/Log/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"PHP-FIG\",\n                \"homepage\": \"http://www.php-fig.org/\"\n            }\n        ],\n        \"description\": \"Common interface for logging libraries\",\n        \"homepage\": \"https://github.com/php-fig/log\",\n        \"keywords\": [\n            \"log\",\n            \"psr\",\n            \"psr-3\"\n        ]\n    },\n    {\n        \"name\": \"psr/simple-cache\",\n        \"version\": \"1.0.1\",\n        \"version_normalized\": \"1.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/php-fig/simple-cache.git\",\n            \"reference\": \"408d5eafb83c57f6365a3ca330ff23aa4a5fa39b\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b\",\n            \"reference\": \"408d5eafb83c57f6365a3ca330ff23aa4a5fa39b\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.0\"\n        },\n        \"time\": \"2017-10-23T01:57:42+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Psr\\\\SimpleCache\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"PHP-FIG\",\n                \"homepage\": \"http://www.php-fig.org/\"\n            }\n        ],\n        \"description\": \"Common interfaces for simple caching\",\n        \"keywords\": [\n            \"cache\",\n            \"caching\",\n            \"psr\",\n            \"psr-16\",\n            \"simple-cache\"\n        ]\n    },\n    {\n        \"name\": \"psy/psysh\",\n        \"version\": \"v0.9.9\",\n        \"version_normalized\": \"0.9.9.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/bobthecow/psysh.git\",\n            \"reference\": \"9aaf29575bb8293206bb0420c1e1c87ff2ffa94e\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/bobthecow/psysh/zipball/9aaf29575bb8293206bb0420c1e1c87ff2ffa94e\",\n            \"reference\": \"9aaf29575bb8293206bb0420c1e1c87ff2ffa94e\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"dnoegel/php-xdg-base-dir\": \"0.1\",\n            \"ext-json\": \"*\",\n            \"ext-tokenizer\": \"*\",\n            \"jakub-onderka/php-console-highlighter\": \"0.3.*|0.4.*\",\n            \"nikic/php-parser\": \"~1.3|~2.0|~3.0|~4.0\",\n            \"php\": \">=5.4.0\",\n            \"symfony/console\": \"~2.3.10|^2.4.2|~3.0|~4.0\",\n            \"symfony/var-dumper\": \"~2.7|~3.0|~4.0\"\n        },\n        \"require-dev\": {\n            \"bamarni/composer-bin-plugin\": \"^1.2\",\n            \"hoa/console\": \"~2.15|~3.16\",\n            \"phpunit/phpunit\": \"~4.8.35|~5.0|~6.0|~7.0\"\n        },\n        \"suggest\": {\n            \"ext-pcntl\": \"Enabling the PCNTL extension makes PsySH a lot happier :)\",\n            \"ext-pdo-sqlite\": \"The doc command requires SQLite to work.\",\n            \"ext-posix\": \"If you have PCNTL, you'll want the POSIX extension as well.\",\n            \"ext-readline\": \"Enables support for arrow-key history navigation, and showing and manipulating command history.\",\n            \"hoa/console\": \"A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.\"\n        },\n        \"time\": \"2018-10-13T15:16:03+00:00\",\n        \"bin\": [\n            \"bin/psysh\"\n        ],\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-develop\": \"0.9.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"files\": [\n                \"src/functions.php\"\n            ],\n            \"psr-4\": {\n                \"Psy\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Justin Hileman\",\n                \"email\": \"justin@justinhileman.info\",\n                \"homepage\": \"http://justinhileman.com\"\n            }\n        ],\n        \"description\": \"An interactive shell for modern PHP.\",\n        \"homepage\": \"http://psysh.org\",\n        \"keywords\": [\n            \"REPL\",\n            \"console\",\n            \"interactive\",\n            \"shell\"\n        ]\n    },\n    {\n        \"name\": \"qiniu/php-sdk\",\n        \"version\": \"v7.2.10\",\n        \"version_normalized\": \"7.2.10.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/qiniu/php-sdk.git\",\n            \"reference\": \"d89987163f560ebf9dfa5bb25de9bd9b1a3b2bd8\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/qiniu/php-sdk/zipball/d89987163f560ebf9dfa5bb25de9bd9b1a3b2bd8\",\n            \"reference\": \"d89987163f560ebf9dfa5bb25de9bd9b1a3b2bd8\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~4.0\",\n            \"squizlabs/php_codesniffer\": \"~2.3\"\n        },\n        \"time\": \"2019-10-28T10:23:23+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Qiniu\\\\\": \"src/Qiniu\"\n            },\n            \"files\": [\n                \"src/Qiniu/functions.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Qiniu\",\n                \"email\": \"sdk@qiniu.com\",\n                \"homepage\": \"http://www.qiniu.com\"\n            }\n        ],\n        \"description\": \"Qiniu Resource (Cloud) Storage SDK for PHP\",\n        \"homepage\": \"http://developer.qiniu.com/\",\n        \"keywords\": [\n            \"cloud\",\n            \"qiniu\",\n            \"sdk\",\n            \"storage\"\n        ]\n    },\n    {\n        \"name\": \"ramsey/uuid\",\n        \"version\": \"3.8.0\",\n        \"version_normalized\": \"3.8.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/ramsey/uuid.git\",\n            \"reference\": \"d09ea80159c1929d75b3f9c60504d613aeb4a1e3\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3\",\n            \"reference\": \"d09ea80159c1929d75b3f9c60504d613aeb4a1e3\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"paragonie/random_compat\": \"^1.0|^2.0|9.99.99\",\n            \"php\": \"^5.4 || ^7.0\",\n            \"symfony/polyfill-ctype\": \"^1.8\"\n        },\n        \"replace\": {\n            \"rhumsaa/uuid\": \"self.version\"\n        },\n        \"require-dev\": {\n            \"codeception/aspect-mock\": \"^1.0 | ~2.0.0\",\n            \"doctrine/annotations\": \"~1.2.0\",\n            \"goaop/framework\": \"1.0.0-alpha.2 | ^1.0 | ~2.1.0\",\n            \"ircmaxell/random-lib\": \"^1.1\",\n            \"jakub-onderka/php-parallel-lint\": \"^0.9.0\",\n            \"mockery/mockery\": \"^0.9.9\",\n            \"moontoast/math\": \"^1.1\",\n            \"php-mock/php-mock-phpunit\": \"^0.3|^1.1\",\n            \"phpunit/phpunit\": \"^4.7|^5.0|^6.5\",\n            \"squizlabs/php_codesniffer\": \"^2.3\"\n        },\n        \"suggest\": {\n            \"ext-ctype\": \"Provides support for PHP Ctype functions\",\n            \"ext-libsodium\": \"Provides the PECL libsodium extension for use with the SodiumRandomGenerator\",\n            \"ext-uuid\": \"Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator\",\n            \"ircmaxell/random-lib\": \"Provides RandomLib for use with the RandomLibAdapter\",\n            \"moontoast/math\": \"Provides support for converting UUID to 128-bit integer (in string form).\",\n            \"ramsey/uuid-console\": \"A console application for generating UUIDs with ramsey/uuid\",\n            \"ramsey/uuid-doctrine\": \"Allows the use of Ramsey\\\\Uuid\\\\Uuid as Doctrine field type.\"\n        },\n        \"time\": \"2018-07-19T23:38:55+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Ramsey\\\\Uuid\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Marijn Huizendveld\",\n                \"email\": \"marijn.huizendveld@gmail.com\"\n            },\n            {\n                \"name\": \"Thibaud Fabre\",\n                \"email\": \"thibaud@aztech.io\"\n            },\n            {\n                \"name\": \"Ben Ramsey\",\n                \"email\": \"ben@benramsey.com\",\n                \"homepage\": \"https://benramsey.com\"\n            }\n        ],\n        \"description\": \"Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).\",\n        \"homepage\": \"https://github.com/ramsey/uuid\",\n        \"keywords\": [\n            \"guid\",\n            \"identifier\",\n            \"uuid\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/code-unit-reverse-lookup\",\n        \"version\": \"1.0.1\",\n        \"version_normalized\": \"1.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/code-unit-reverse-lookup.git\",\n            \"reference\": \"4419fcdb5eabb9caa61a27c7a1db532a6b55dd18\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18\",\n            \"reference\": \"4419fcdb5eabb9caa61a27c7a1db532a6b55dd18\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.6 || ^7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^5.7 || ^6.0\"\n        },\n        \"time\": \"2017-03-04T06:30:41+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Looks up which function or method a line of code belongs to\",\n        \"homepage\": \"https://github.com/sebastianbergmann/code-unit-reverse-lookup/\"\n    },\n    {\n        \"name\": \"sebastian/comparator\",\n        \"version\": \"3.0.2\",\n        \"version_normalized\": \"3.0.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/comparator.git\",\n            \"reference\": \"5de4fc177adf9bce8df98d8d141a7559d7ccf6da\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da\",\n            \"reference\": \"5de4fc177adf9bce8df98d8d141a7559d7ccf6da\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\",\n            \"sebastian/diff\": \"^3.0\",\n            \"sebastian/exporter\": \"^3.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.1\"\n        },\n        \"time\": \"2018-07-12T15:12:46+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jeff Welch\",\n                \"email\": \"whatthejeff@gmail.com\"\n            },\n            {\n                \"name\": \"Volker Dusch\",\n                \"email\": \"github@wallbash.com\"\n            },\n            {\n                \"name\": \"Bernhard Schussek\",\n                \"email\": \"bschussek@2bepublished.at\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Provides the functionality to compare PHP values for equality\",\n        \"homepage\": \"https://github.com/sebastianbergmann/comparator\",\n        \"keywords\": [\n            \"comparator\",\n            \"compare\",\n            \"equality\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/diff\",\n        \"version\": \"3.0.2\",\n        \"version_normalized\": \"3.0.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/diff.git\",\n            \"reference\": \"720fcc7e9b5cf384ea68d9d930d480907a0c1a29\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29\",\n            \"reference\": \"720fcc7e9b5cf384ea68d9d930d480907a0c1a29\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.5 || ^8.0\",\n            \"symfony/process\": \"^2 || ^3.3 || ^4\"\n        },\n        \"time\": \"2019-02-04T06:01:07+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Kore Nordmann\",\n                \"email\": \"mail@kore-nordmann.de\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Diff implementation\",\n        \"homepage\": \"https://github.com/sebastianbergmann/diff\",\n        \"keywords\": [\n            \"diff\",\n            \"udiff\",\n            \"unidiff\",\n            \"unified diff\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/environment\",\n        \"version\": \"4.2.2\",\n        \"version_normalized\": \"4.2.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/environment.git\",\n            \"reference\": \"f2a2c8e1c97c11ace607a7a667d73d47c19fe404\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404\",\n            \"reference\": \"f2a2c8e1c97c11ace607a7a667d73d47c19fe404\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^7.5\"\n        },\n        \"suggest\": {\n            \"ext-posix\": \"*\"\n        },\n        \"time\": \"2019-05-05T09:05:15+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.2-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Provides functionality to handle HHVM/PHP environments\",\n        \"homepage\": \"http://www.github.com/sebastianbergmann/environment\",\n        \"keywords\": [\n            \"Xdebug\",\n            \"environment\",\n            \"hhvm\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/exporter\",\n        \"version\": \"3.1.0\",\n        \"version_normalized\": \"3.1.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/exporter.git\",\n            \"reference\": \"234199f4528de6d12aaa58b612e98f7d36adb937\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937\",\n            \"reference\": \"234199f4528de6d12aaa58b612e98f7d36adb937\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\",\n            \"sebastian/recursion-context\": \"^3.0\"\n        },\n        \"require-dev\": {\n            \"ext-mbstring\": \"*\",\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"time\": \"2017-04-03T13:19:02+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.1.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jeff Welch\",\n                \"email\": \"whatthejeff@gmail.com\"\n            },\n            {\n                \"name\": \"Volker Dusch\",\n                \"email\": \"github@wallbash.com\"\n            },\n            {\n                \"name\": \"Bernhard Schussek\",\n                \"email\": \"bschussek@2bepublished.at\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            },\n            {\n                \"name\": \"Adam Harvey\",\n                \"email\": \"aharvey@php.net\"\n            }\n        ],\n        \"description\": \"Provides the functionality to export PHP variables for visualization\",\n        \"homepage\": \"http://www.github.com/sebastianbergmann/exporter\",\n        \"keywords\": [\n            \"export\",\n            \"exporter\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/global-state\",\n        \"version\": \"2.0.0\",\n        \"version_normalized\": \"2.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/global-state.git\",\n            \"reference\": \"e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4\",\n            \"reference\": \"e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"suggest\": {\n            \"ext-uopz\": \"*\"\n        },\n        \"time\": \"2017-04-27T15:39:26+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Snapshotting of global state\",\n        \"homepage\": \"http://www.github.com/sebastianbergmann/global-state\",\n        \"keywords\": [\n            \"global state\"\n        ]\n    },\n    {\n        \"name\": \"sebastian/object-enumerator\",\n        \"version\": \"3.0.3\",\n        \"version_normalized\": \"3.0.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/object-enumerator.git\",\n            \"reference\": \"7cfd9e65d11ffb5af41198476395774d4c8a84c5\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5\",\n            \"reference\": \"7cfd9e65d11ffb5af41198476395774d4c8a84c5\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\",\n            \"sebastian/object-reflector\": \"^1.1.1\",\n            \"sebastian/recursion-context\": \"^3.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"time\": \"2017-08-03T12:35:26+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Traverses array structures and object graphs to enumerate all referenced objects\",\n        \"homepage\": \"https://github.com/sebastianbergmann/object-enumerator/\"\n    },\n    {\n        \"name\": \"sebastian/object-reflector\",\n        \"version\": \"1.1.1\",\n        \"version_normalized\": \"1.1.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/object-reflector.git\",\n            \"reference\": \"773f97c67f28de00d397be301821b06708fca0be\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be\",\n            \"reference\": \"773f97c67f28de00d397be301821b06708fca0be\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"time\": \"2017-03-29T09:07:27+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Allows reflection of object attributes, including inherited and non-public ones\",\n        \"homepage\": \"https://github.com/sebastianbergmann/object-reflector/\"\n    },\n    {\n        \"name\": \"sebastian/recursion-context\",\n        \"version\": \"3.0.0\",\n        \"version_normalized\": \"3.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/recursion-context.git\",\n            \"reference\": \"5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8\",\n            \"reference\": \"5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^6.0\"\n        },\n        \"time\": \"2017-03-03T06:23:57+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jeff Welch\",\n                \"email\": \"whatthejeff@gmail.com\"\n            },\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            },\n            {\n                \"name\": \"Adam Harvey\",\n                \"email\": \"aharvey@php.net\"\n            }\n        ],\n        \"description\": \"Provides functionality to recursively process PHP variables\",\n        \"homepage\": \"http://www.github.com/sebastianbergmann/recursion-context\"\n    },\n    {\n        \"name\": \"sebastian/resource-operations\",\n        \"version\": \"2.0.1\",\n        \"version_normalized\": \"2.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/resource-operations.git\",\n            \"reference\": \"4d7a795d35b889bf80a0cc04e08d77cedfa917a9\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9\",\n            \"reference\": \"4d7a795d35b889bf80a0cc04e08d77cedfa917a9\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1\"\n        },\n        \"time\": \"2018-10-04T04:07:39+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\"\n            }\n        ],\n        \"description\": \"Provides a list of PHP built-in functions that operate on resources\",\n        \"homepage\": \"https://www.github.com/sebastianbergmann/resource-operations\"\n    },\n    {\n        \"name\": \"sebastian/version\",\n        \"version\": \"2.0.1\",\n        \"version_normalized\": \"2.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/sebastianbergmann/version.git\",\n            \"reference\": \"99732be0ddb3361e16ad77b68ba41efc8e979019\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019\",\n            \"reference\": \"99732be0ddb3361e16ad77b68ba41efc8e979019\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.6\"\n        },\n        \"time\": \"2016-10-03T07:35:21+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.0.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Sebastian Bergmann\",\n                \"email\": \"sebastian@phpunit.de\",\n                \"role\": \"lead\"\n            }\n        ],\n        \"description\": \"Library that helps with managing the version number of Git-hosted PHP projects\",\n        \"homepage\": \"https://github.com/sebastianbergmann/version\"\n    },\n    {\n        \"name\": \"sharemant/laravel-admin-ext-editormd\",\n        \"version\": \"v1.0.1\",\n        \"version_normalized\": \"1.0.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/ShareManT/laravel-admin-ext-editormd.git\",\n            \"reference\": \"acb1f754f2aca0a80e0f3d9de68a3aa8db313825\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/ShareManT/laravel-admin-ext-editormd/zipball/acb1f754f2aca0a80e0f3d9de68a3aa8db313825\",\n            \"reference\": \"acb1f754f2aca0a80e0f3d9de68a3aa8db313825\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"encore/laravel-admin\": \"~1.6\",\n            \"php\": \">=7.0.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"~6.0\"\n        },\n        \"time\": \"2019-02-06T14:24:39+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"ShareManT\\\\EditorMd\\\\EditorMdServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"ShareManT\\\\EditorMd\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"ShareManT\",\n                \"email\": \"sharemant@163.com\"\n            }\n        ],\n        \"description\": \"EditorMd(V.1.5.0) for laravel-admin.\",\n        \"homepage\": \"https://github.com/laravel-admin-ext/editormd\",\n        \"keywords\": [\n            \"extension\",\n            \"laravel-admin\"\n        ]\n    },\n    {\n        \"name\": \"spatie/eloquent-sortable\",\n        \"version\": \"3.6.0\",\n        \"version_normalized\": \"3.6.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/spatie/eloquent-sortable.git\",\n            \"reference\": \"a46a91d05d4ac66b6a2b8db2eb5e134a43d42277\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/spatie/eloquent-sortable/zipball/a46a91d05d4ac66b6a2b8db2eb5e134a43d42277\",\n            \"reference\": \"a46a91d05d4ac66b6a2b8db2eb5e134a43d42277\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"laravel/framework\": \"~5.8.0\",\n            \"php\": \"^7.2\"\n        },\n        \"require-dev\": {\n            \"orchestra/testbench\": \"~3.8.0\",\n            \"phpunit/phpunit\": \"^8.0\"\n        },\n        \"time\": \"2019-04-01T07:05:06+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Spatie\\\\EloquentSortable\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Freek Van der Herten\",\n                \"email\": \"freek@spatie.be\"\n            }\n        ],\n        \"description\": \"Sortable behaviour for eloquent models\",\n        \"homepage\": \"https://github.com/spatie/eloquent-sortable\",\n        \"keywords\": [\n            \"behaviour\",\n            \"eloquent\",\n            \"laravel\",\n            \"model\",\n            \"sort\",\n            \"sortable\"\n        ]\n    },\n    {\n        \"name\": \"spatie/laravel-pjax\",\n        \"version\": \"2.0.0\",\n        \"version_normalized\": \"2.0.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/spatie/laravel-pjax.git\",\n            \"reference\": \"ade708be9520e98c89f3641bcc6b6f4e52123002\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/spatie/laravel-pjax/zipball/ade708be9520e98c89f3641bcc6b6f4e52123002\",\n            \"reference\": \"ade708be9520e98c89f3641bcc6b6f4e52123002\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"illuminate/http\": \"^5.1|^6.0\",\n            \"illuminate/support\": \"^5.1|^6.0\",\n            \"php\": \"^7.2\",\n            \"symfony/css-selector\": \"^2.7|^3.0|^4.0\",\n            \"symfony/dom-crawler\": \"^2.7|^3.0|^4.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^8.3.5\",\n            \"scrutinizer/ocular\": \"~1.1\"\n        },\n        \"time\": \"2019-09-20T07:26:28+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Spatie\\\\Pjax\\\\\": \"src\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Freek Van der Herten\",\n                \"email\": \"freek@spatie.be\",\n                \"homepage\": \"https://spatie.be\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"A pjax middleware for Laravel 5\",\n        \"homepage\": \"https://github.com/spatie/laravel-pjax\",\n        \"keywords\": [\n            \"laravel-pjax\",\n            \"pjax\",\n            \"spatie\"\n        ]\n    },\n    {\n        \"name\": \"swiftmailer/swiftmailer\",\n        \"version\": \"v6.2.1\",\n        \"version_normalized\": \"6.2.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/swiftmailer/swiftmailer.git\",\n            \"reference\": \"5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a\",\n            \"reference\": \"5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"egulias/email-validator\": \"~2.0\",\n            \"php\": \">=7.0.0\",\n            \"symfony/polyfill-iconv\": \"^1.0\",\n            \"symfony/polyfill-intl-idn\": \"^1.10\",\n            \"symfony/polyfill-mbstring\": \"^1.0\"\n        },\n        \"require-dev\": {\n            \"mockery/mockery\": \"~0.9.1\",\n            \"symfony/phpunit-bridge\": \"^3.4.19|^4.1.8\"\n        },\n        \"suggest\": {\n            \"ext-intl\": \"Needed to support internationalized email addresses\",\n            \"true/punycode\": \"Needed to support internationalized email addresses, if ext-intl is not installed\"\n        },\n        \"time\": \"2019-04-21T09:21:45+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"6.2-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"files\": [\n                \"lib/swift_required.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Chris Corbyn\"\n            },\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            }\n        ],\n        \"description\": \"Swiftmailer, free feature-rich PHP mailer\",\n        \"homepage\": \"https://swiftmailer.symfony.com\",\n        \"keywords\": [\n            \"email\",\n            \"mail\",\n            \"mailer\"\n        ]\n    },\n    {\n        \"name\": \"symfony/console\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/console.git\",\n            \"reference\": \"b592b26a24265a35172d8a2094d8b10f22b7cc39\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/console/zipball/b592b26a24265a35172d8a2094d8b10f22b7cc39\",\n            \"reference\": \"b592b26a24265a35172d8a2094d8b10f22b7cc39\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/polyfill-mbstring\": \"~1.0\",\n            \"symfony/polyfill-php73\": \"^1.8\",\n            \"symfony/service-contracts\": \"^1.1\"\n        },\n        \"conflict\": {\n            \"symfony/dependency-injection\": \"<3.4\",\n            \"symfony/event-dispatcher\": \"<4.3\",\n            \"symfony/process\": \"<3.3\"\n        },\n        \"provide\": {\n            \"psr/log-implementation\": \"1.0\"\n        },\n        \"require-dev\": {\n            \"psr/log\": \"~1.0\",\n            \"symfony/config\": \"~3.4|~4.0\",\n            \"symfony/dependency-injection\": \"~3.4|~4.0\",\n            \"symfony/event-dispatcher\": \"^4.3\",\n            \"symfony/lock\": \"~3.4|~4.0\",\n            \"symfony/process\": \"~3.4|~4.0\",\n            \"symfony/var-dumper\": \"^4.3\"\n        },\n        \"suggest\": {\n            \"psr/log\": \"For using the console logger\",\n            \"symfony/event-dispatcher\": \"\",\n            \"symfony/lock\": \"\",\n            \"symfony/process\": \"\"\n        },\n        \"time\": \"2019-06-13T11:03:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Console\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Console Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/css-selector\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/css-selector.git\",\n            \"reference\": \"105c98bb0c5d8635bea056135304bd8edcc42b4d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/css-selector/zipball/105c98bb0c5d8635bea056135304bd8edcc42b4d\",\n            \"reference\": \"105c98bb0c5d8635bea056135304bd8edcc42b4d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"time\": \"2019-01-16T21:53:39+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\CssSelector\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Jean-François Simon\",\n                \"email\": \"jeanfrancois.simon@sensiolabs.com\"\n            },\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony CssSelector Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/debug\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/debug.git\",\n            \"reference\": \"d8f4fb38152e0eb6a433705e5f661d25b32c5fcd\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/debug/zipball/d8f4fb38152e0eb6a433705e5f661d25b32c5fcd\",\n            \"reference\": \"d8f4fb38152e0eb6a433705e5f661d25b32c5fcd\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"psr/log\": \"~1.0\"\n        },\n        \"conflict\": {\n            \"symfony/http-kernel\": \"<3.4\"\n        },\n        \"require-dev\": {\n            \"symfony/http-kernel\": \"~3.4|~4.0\"\n        },\n        \"time\": \"2019-06-19T15:27:09+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Debug\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Debug Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/dom-crawler\",\n        \"version\": \"v4.3.3\",\n        \"version_normalized\": \"4.3.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/dom-crawler.git\",\n            \"reference\": \"291397232a2eefb3347eaab9170409981eaad0e2\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/dom-crawler/zipball/291397232a2eefb3347eaab9170409981eaad0e2\",\n            \"reference\": \"291397232a2eefb3347eaab9170409981eaad0e2\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/polyfill-ctype\": \"~1.8\",\n            \"symfony/polyfill-mbstring\": \"~1.0\"\n        },\n        \"conflict\": {\n            \"masterminds/html5\": \"<2.6\"\n        },\n        \"require-dev\": {\n            \"masterminds/html5\": \"^2.6\",\n            \"symfony/css-selector\": \"~3.4|~4.0\"\n        },\n        \"suggest\": {\n            \"symfony/css-selector\": \"\"\n        },\n        \"time\": \"2019-06-13T11:03:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\DomCrawler\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony DomCrawler Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/event-dispatcher\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/event-dispatcher.git\",\n            \"reference\": \"d257021c1ab28d48d24a16de79dfab445ce93398\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/event-dispatcher/zipball/d257021c1ab28d48d24a16de79dfab445ce93398\",\n            \"reference\": \"d257021c1ab28d48d24a16de79dfab445ce93398\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/event-dispatcher-contracts\": \"^1.1\"\n        },\n        \"conflict\": {\n            \"symfony/dependency-injection\": \"<3.4\"\n        },\n        \"provide\": {\n            \"psr/event-dispatcher-implementation\": \"1.0\",\n            \"symfony/event-dispatcher-implementation\": \"1.1\"\n        },\n        \"require-dev\": {\n            \"psr/log\": \"~1.0\",\n            \"symfony/config\": \"~3.4|~4.0\",\n            \"symfony/dependency-injection\": \"~3.4|~4.0\",\n            \"symfony/expression-language\": \"~3.4|~4.0\",\n            \"symfony/http-foundation\": \"^3.4|^4.0\",\n            \"symfony/service-contracts\": \"^1.1\",\n            \"symfony/stopwatch\": \"~3.4|~4.0\"\n        },\n        \"suggest\": {\n            \"symfony/dependency-injection\": \"\",\n            \"symfony/http-kernel\": \"\"\n        },\n        \"time\": \"2019-06-13T11:03:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\EventDispatcher\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony EventDispatcher Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/event-dispatcher-contracts\",\n        \"version\": \"v1.1.5\",\n        \"version_normalized\": \"1.1.5.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/event-dispatcher-contracts.git\",\n            \"reference\": \"c61766f4440ca687de1084a5c00b08e167a2575c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c61766f4440ca687de1084a5c00b08e167a2575c\",\n            \"reference\": \"c61766f4440ca687de1084a5c00b08e167a2575c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"suggest\": {\n            \"psr/event-dispatcher\": \"\",\n            \"symfony/event-dispatcher-implementation\": \"\"\n        },\n        \"time\": \"2019-06-20T06:46:26+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Contracts\\\\EventDispatcher\\\\\": \"\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Generic abstractions related to dispatching event\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"abstractions\",\n            \"contracts\",\n            \"decoupling\",\n            \"interfaces\",\n            \"interoperability\",\n            \"standards\"\n        ]\n    },\n    {\n        \"name\": \"symfony/finder\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/finder.git\",\n            \"reference\": \"33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/finder/zipball/33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a\",\n            \"reference\": \"33c21f7d5d3dc8a140c282854a7e13aeb5d0f91a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"time\": \"2019-06-13T11:03:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Finder\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Finder Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/http-foundation\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/http-foundation.git\",\n            \"reference\": \"e1b507fcfa4e87d192281774b5ecd4265370180d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/http-foundation/zipball/e1b507fcfa4e87d192281774b5ecd4265370180d\",\n            \"reference\": \"e1b507fcfa4e87d192281774b5ecd4265370180d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/mime\": \"^4.3\",\n            \"symfony/polyfill-mbstring\": \"~1.1\"\n        },\n        \"require-dev\": {\n            \"predis/predis\": \"~1.0\",\n            \"symfony/expression-language\": \"~3.4|~4.0\"\n        },\n        \"time\": \"2019-06-26T09:25:00+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\HttpFoundation\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony HttpFoundation Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/http-kernel\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/http-kernel.git\",\n            \"reference\": \"4150f71e27ed37a74700561b77e3dbd754cbb44d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/http-kernel/zipball/4150f71e27ed37a74700561b77e3dbd754cbb44d\",\n            \"reference\": \"4150f71e27ed37a74700561b77e3dbd754cbb44d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"psr/log\": \"~1.0\",\n            \"symfony/debug\": \"~3.4|~4.0\",\n            \"symfony/event-dispatcher\": \"^4.3\",\n            \"symfony/http-foundation\": \"^4.1.1\",\n            \"symfony/polyfill-ctype\": \"~1.8\",\n            \"symfony/polyfill-php73\": \"^1.9\"\n        },\n        \"conflict\": {\n            \"symfony/browser-kit\": \"<4.3\",\n            \"symfony/config\": \"<3.4\",\n            \"symfony/dependency-injection\": \"<4.3\",\n            \"symfony/translation\": \"<4.2\",\n            \"symfony/var-dumper\": \"<4.1.1\",\n            \"twig/twig\": \"<1.34|<2.4,>=2\"\n        },\n        \"provide\": {\n            \"psr/log-implementation\": \"1.0\"\n        },\n        \"require-dev\": {\n            \"psr/cache\": \"~1.0\",\n            \"symfony/browser-kit\": \"^4.3\",\n            \"symfony/config\": \"~3.4|~4.0\",\n            \"symfony/console\": \"~3.4|~4.0\",\n            \"symfony/css-selector\": \"~3.4|~4.0\",\n            \"symfony/dependency-injection\": \"^4.3\",\n            \"symfony/dom-crawler\": \"~3.4|~4.0\",\n            \"symfony/expression-language\": \"~3.4|~4.0\",\n            \"symfony/finder\": \"~3.4|~4.0\",\n            \"symfony/process\": \"~3.4|~4.0\",\n            \"symfony/routing\": \"~3.4|~4.0\",\n            \"symfony/stopwatch\": \"~3.4|~4.0\",\n            \"symfony/templating\": \"~3.4|~4.0\",\n            \"symfony/translation\": \"~4.2\",\n            \"symfony/translation-contracts\": \"^1.1\",\n            \"symfony/var-dumper\": \"^4.1.1\",\n            \"twig/twig\": \"^1.34|^2.4\"\n        },\n        \"suggest\": {\n            \"symfony/browser-kit\": \"\",\n            \"symfony/config\": \"\",\n            \"symfony/console\": \"\",\n            \"symfony/dependency-injection\": \"\",\n            \"symfony/var-dumper\": \"\"\n        },\n        \"time\": \"2019-06-26T14:26:16+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\HttpKernel\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony HttpKernel Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/mime\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/mime.git\",\n            \"reference\": \"ec2c5565de60e03f33d4296a655e3273f0ad1f8b\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/mime/zipball/ec2c5565de60e03f33d4296a655e3273f0ad1f8b\",\n            \"reference\": \"ec2c5565de60e03f33d4296a655e3273f0ad1f8b\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/polyfill-intl-idn\": \"^1.10\",\n            \"symfony/polyfill-mbstring\": \"^1.0\"\n        },\n        \"require-dev\": {\n            \"egulias/email-validator\": \"^2.0\",\n            \"symfony/dependency-injection\": \"~3.4|^4.1\"\n        },\n        \"time\": \"2019-06-04T09:22:54+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Mime\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"A library to manipulate MIME messages\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"mime\",\n            \"mime-type\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-ctype\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-ctype.git\",\n            \"reference\": \"82ebae02209c21113908c229e9883c419720738a\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a\",\n            \"reference\": \"82ebae02209c21113908c229e9883c419720738a\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"suggest\": {\n            \"ext-ctype\": \"For best performance\"\n        },\n        \"time\": \"2019-02-06T07:57:58+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.11-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Ctype\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            },\n            {\n                \"name\": \"Gert de Pagter\",\n                \"email\": \"BackEndTea@gmail.com\"\n            }\n        ],\n        \"description\": \"Symfony polyfill for ctype functions\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"ctype\",\n            \"polyfill\",\n            \"portable\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-iconv\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-iconv.git\",\n            \"reference\": \"f037ea22acfaee983e271dd9c3b8bb4150bd8ad7\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-iconv/zipball/f037ea22acfaee983e271dd9c3b8bb4150bd8ad7\",\n            \"reference\": \"f037ea22acfaee983e271dd9c3b8bb4150bd8ad7\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"suggest\": {\n            \"ext-iconv\": \"For best performance\"\n        },\n        \"time\": \"2019-02-06T07:57:58+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.11-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Iconv\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony polyfill for the Iconv extension\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"iconv\",\n            \"polyfill\",\n            \"portable\",\n            \"shim\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-intl-idn\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-intl-idn.git\",\n            \"reference\": \"c766e95bec706cdd89903b1eda8afab7d7a6b7af\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c766e95bec706cdd89903b1eda8afab7d7a6b7af\",\n            \"reference\": \"c766e95bec706cdd89903b1eda8afab7d7a6b7af\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\",\n            \"symfony/polyfill-mbstring\": \"^1.3\",\n            \"symfony/polyfill-php72\": \"^1.9\"\n        },\n        \"suggest\": {\n            \"ext-intl\": \"For best performance\"\n        },\n        \"time\": \"2019-03-04T13:44:35+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.9-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            },\n            {\n                \"name\": \"Laurent Bassin\",\n                \"email\": \"laurent@bassin.info\"\n            }\n        ],\n        \"description\": \"Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"idn\",\n            \"intl\",\n            \"polyfill\",\n            \"portable\",\n            \"shim\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-mbstring\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-mbstring.git\",\n            \"reference\": \"fe5e94c604826c35a32fa832f35bd036b6799609\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609\",\n            \"reference\": \"fe5e94c604826c35a32fa832f35bd036b6799609\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"suggest\": {\n            \"ext-mbstring\": \"For best performance\"\n        },\n        \"time\": \"2019-02-06T07:57:58+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.11-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Mbstring\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony polyfill for the Mbstring extension\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"mbstring\",\n            \"polyfill\",\n            \"portable\",\n            \"shim\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-php72\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-php72.git\",\n            \"reference\": \"ab50dcf166d5f577978419edd37aa2bb8eabce0c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c\",\n            \"reference\": \"ab50dcf166d5f577978419edd37aa2bb8eabce0c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"time\": \"2019-02-06T07:57:58+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.11-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Php72\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"polyfill\",\n            \"portable\",\n            \"shim\"\n        ]\n    },\n    {\n        \"name\": \"symfony/polyfill-php73\",\n        \"version\": \"v1.11.0\",\n        \"version_normalized\": \"1.11.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/polyfill-php73.git\",\n            \"reference\": \"d1fb4abcc0c47be136208ad9d68bf59f1ee17abd\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/polyfill-php73/zipball/d1fb4abcc0c47be136208ad9d68bf59f1ee17abd\",\n            \"reference\": \"d1fb4abcc0c47be136208ad9d68bf59f1ee17abd\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \">=5.3.3\"\n        },\n        \"time\": \"2019-02-06T07:57:58+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.11-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Polyfill\\\\Php73\\\\\": \"\"\n            },\n            \"files\": [\n                \"bootstrap.php\"\n            ],\n            \"classmap\": [\n                \"Resources/stubs\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"compatibility\",\n            \"polyfill\",\n            \"portable\",\n            \"shim\"\n        ]\n    },\n    {\n        \"name\": \"symfony/process\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/process.git\",\n            \"reference\": \"856d35814cf287480465bb7a6c413bb7f5f5e69c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/process/zipball/856d35814cf287480465bb7a6c413bb7f5f5e69c\",\n            \"reference\": \"856d35814cf287480465bb7a6c413bb7f5f5e69c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"time\": \"2019-05-30T16:10:05+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Process\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Process Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/routing\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/routing.git\",\n            \"reference\": \"2ef809021d72071c611b218c47a3bf3b17b7325e\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/routing/zipball/2ef809021d72071c611b218c47a3bf3b17b7325e\",\n            \"reference\": \"2ef809021d72071c611b218c47a3bf3b17b7325e\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"conflict\": {\n            \"symfony/config\": \"<4.2\",\n            \"symfony/dependency-injection\": \"<3.4\",\n            \"symfony/yaml\": \"<3.4\"\n        },\n        \"require-dev\": {\n            \"doctrine/annotations\": \"~1.2\",\n            \"psr/log\": \"~1.0\",\n            \"symfony/config\": \"~4.2\",\n            \"symfony/dependency-injection\": \"~3.4|~4.0\",\n            \"symfony/expression-language\": \"~3.4|~4.0\",\n            \"symfony/http-foundation\": \"~3.4|~4.0\",\n            \"symfony/yaml\": \"~3.4|~4.0\"\n        },\n        \"suggest\": {\n            \"doctrine/annotations\": \"For using the annotation loader\",\n            \"symfony/config\": \"For using the all-in-one router or any loader\",\n            \"symfony/expression-language\": \"For using expression matching\",\n            \"symfony/http-foundation\": \"For using a Symfony Request object\",\n            \"symfony/yaml\": \"For using the YAML loader\"\n        },\n        \"time\": \"2019-06-26T13:54:39+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Routing\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Routing Component\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"router\",\n            \"routing\",\n            \"uri\",\n            \"url\"\n        ]\n    },\n    {\n        \"name\": \"symfony/service-contracts\",\n        \"version\": \"v1.1.5\",\n        \"version_normalized\": \"1.1.5.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/service-contracts.git\",\n            \"reference\": \"f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/service-contracts/zipball/f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d\",\n            \"reference\": \"f391a00de78ec7ec8cf5cdcdae59ec7b883edb8d\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"psr/container\": \"^1.0\"\n        },\n        \"suggest\": {\n            \"symfony/service-implementation\": \"\"\n        },\n        \"time\": \"2019-06-13T11:15:36+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Contracts\\\\Service\\\\\": \"\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Generic abstractions related to writing services\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"abstractions\",\n            \"contracts\",\n            \"decoupling\",\n            \"interfaces\",\n            \"interoperability\",\n            \"standards\"\n        ]\n    },\n    {\n        \"name\": \"symfony/translation\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/translation.git\",\n            \"reference\": \"934ab1d18545149e012aa898cf02e9f23790f7a0\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/translation/zipball/934ab1d18545149e012aa898cf02e9f23790f7a0\",\n            \"reference\": \"934ab1d18545149e012aa898cf02e9f23790f7a0\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/polyfill-mbstring\": \"~1.0\",\n            \"symfony/translation-contracts\": \"^1.1.2\"\n        },\n        \"conflict\": {\n            \"symfony/config\": \"<3.4\",\n            \"symfony/dependency-injection\": \"<3.4\",\n            \"symfony/yaml\": \"<3.4\"\n        },\n        \"provide\": {\n            \"symfony/translation-implementation\": \"1.0\"\n        },\n        \"require-dev\": {\n            \"psr/log\": \"~1.0\",\n            \"symfony/config\": \"~3.4|~4.0\",\n            \"symfony/console\": \"~3.4|~4.0\",\n            \"symfony/dependency-injection\": \"~3.4|~4.0\",\n            \"symfony/finder\": \"~2.8|~3.0|~4.0\",\n            \"symfony/http-kernel\": \"~3.4|~4.0\",\n            \"symfony/intl\": \"~3.4|~4.0\",\n            \"symfony/service-contracts\": \"^1.1.2\",\n            \"symfony/var-dumper\": \"~3.4|~4.0\",\n            \"symfony/yaml\": \"~3.4|~4.0\"\n        },\n        \"suggest\": {\n            \"psr/log-implementation\": \"To use logging capability in translator\",\n            \"symfony/config\": \"\",\n            \"symfony/yaml\": \"\"\n        },\n        \"time\": \"2019-06-13T11:03:18+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\Translation\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Fabien Potencier\",\n                \"email\": \"fabien@symfony.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony Translation Component\",\n        \"homepage\": \"https://symfony.com\"\n    },\n    {\n        \"name\": \"symfony/translation-contracts\",\n        \"version\": \"v1.1.5\",\n        \"version_normalized\": \"1.1.5.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/translation-contracts.git\",\n            \"reference\": \"cb4b18ad7b92a26e83b65dde940fab78339e6f3c\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/translation-contracts/zipball/cb4b18ad7b92a26e83b65dde940fab78339e6f3c\",\n            \"reference\": \"cb4b18ad7b92a26e83b65dde940fab78339e6f3c\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\"\n        },\n        \"suggest\": {\n            \"symfony/translation-implementation\": \"\"\n        },\n        \"time\": \"2019-06-13T11:15:36+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.1-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Symfony\\\\Contracts\\\\Translation\\\\\": \"\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Generic abstractions related to translation\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"abstractions\",\n            \"contracts\",\n            \"decoupling\",\n            \"interfaces\",\n            \"interoperability\",\n            \"standards\"\n        ]\n    },\n    {\n        \"name\": \"symfony/var-dumper\",\n        \"version\": \"v4.3.2\",\n        \"version_normalized\": \"4.3.2.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/symfony/var-dumper.git\",\n            \"reference\": \"45d6ef73671995aca565a1aa3d9a432a3ea63f91\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/symfony/var-dumper/zipball/45d6ef73671995aca565a1aa3d9a432a3ea63f91\",\n            \"reference\": \"45d6ef73671995aca565a1aa3d9a432a3ea63f91\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^7.1.3\",\n            \"symfony/polyfill-mbstring\": \"~1.0\",\n            \"symfony/polyfill-php72\": \"~1.5\"\n        },\n        \"conflict\": {\n            \"phpunit/phpunit\": \"<4.8.35|<5.4.3,>=5.0\",\n            \"symfony/console\": \"<3.4\"\n        },\n        \"require-dev\": {\n            \"ext-iconv\": \"*\",\n            \"symfony/console\": \"~3.4|~4.0\",\n            \"symfony/process\": \"~3.4|~4.0\",\n            \"twig/twig\": \"~1.34|~2.4\"\n        },\n        \"suggest\": {\n            \"ext-iconv\": \"To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).\",\n            \"ext-intl\": \"To show region name in time zone dump\",\n            \"symfony/console\": \"To use the ServerDumpCommand and/or the bin/var-dump-server script\"\n        },\n        \"time\": \"2019-06-17T17:37:00+00:00\",\n        \"bin\": [\n            \"Resources/bin/var-dump-server\"\n        ],\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"4.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"files\": [\n                \"Resources/functions/dump.php\"\n            ],\n            \"psr-4\": {\n                \"Symfony\\\\Component\\\\VarDumper\\\\\": \"\"\n            },\n            \"exclude-from-classmap\": [\n                \"/Tests/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Nicolas Grekas\",\n                \"email\": \"p@tchwork.com\"\n            },\n            {\n                \"name\": \"Symfony Community\",\n                \"homepage\": \"https://symfony.com/contributors\"\n            }\n        ],\n        \"description\": \"Symfony mechanism for exploring and dumping PHP variables\",\n        \"homepage\": \"https://symfony.com\",\n        \"keywords\": [\n            \"debug\",\n            \"dump\"\n        ]\n    },\n    {\n        \"name\": \"theseer/tokenizer\",\n        \"version\": \"1.1.3\",\n        \"version_normalized\": \"1.1.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/theseer/tokenizer.git\",\n            \"reference\": \"11336f6f84e16a720dae9d8e6ed5019efa85a0f9\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9\",\n            \"reference\": \"11336f6f84e16a720dae9d8e6ed5019efa85a0f9\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"ext-dom\": \"*\",\n            \"ext-tokenizer\": \"*\",\n            \"ext-xmlwriter\": \"*\",\n            \"php\": \"^7.0\"\n        },\n        \"time\": \"2019-06-13T22:48:21+00:00\",\n        \"type\": \"library\",\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"classmap\": [\n                \"src/\"\n            ]\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Arne Blankerts\",\n                \"email\": \"arne@blankerts.de\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"A small library for converting tokenized PHP source code into XML and potentially other formats\"\n    },\n    {\n        \"name\": \"tijsverkoyen/css-to-inline-styles\",\n        \"version\": \"2.2.1\",\n        \"version_normalized\": \"2.2.1.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/tijsverkoyen/CssToInlineStyles.git\",\n            \"reference\": \"0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757\",\n            \"reference\": \"0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.5 || ^7.0\",\n            \"symfony/css-selector\": \"^2.7 || ^3.0 || ^4.0\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.8.35 || ^5.7 || ^6.0\"\n        },\n        \"time\": \"2017-11-27T11:13:29+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"2.2.x-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"TijsVerkoyen\\\\CssToInlineStyles\\\\\": \"src\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Tijs Verkoyen\",\n                \"email\": \"css_to_inline_styles@verkoyen.eu\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.\",\n        \"homepage\": \"https://github.com/tijsverkoyen/CssToInlineStyles\"\n    },\n    {\n        \"name\": \"vlucas/phpdotenv\",\n        \"version\": \"v3.4.0\",\n        \"version_normalized\": \"3.4.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/vlucas/phpdotenv.git\",\n            \"reference\": \"5084b23845c24dbff8ac6c204290c341e4776c92\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/vlucas/phpdotenv/zipball/5084b23845c24dbff8ac6c204290c341e4776c92\",\n            \"reference\": \"5084b23845c24dbff8ac6c204290c341e4776c92\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.4 || ^7.0\",\n            \"phpoption/phpoption\": \"^1.5\",\n            \"symfony/polyfill-ctype\": \"^1.9\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.8.35 || ^5.0 || ^6.0\"\n        },\n        \"time\": \"2019-06-15T22:40:20+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"3.4-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Dotenv\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"BSD-3-Clause\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Vance Lucas\",\n                \"email\": \"vance@vancelucas.com\",\n                \"homepage\": \"http://www.vancelucas.com\"\n            }\n        ],\n        \"description\": \"Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.\",\n        \"keywords\": [\n            \"dotenv\",\n            \"env\",\n            \"environment\"\n        ]\n    },\n    {\n        \"name\": \"webmozart/assert\",\n        \"version\": \"1.4.0\",\n        \"version_normalized\": \"1.4.0.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/webmozart/assert.git\",\n            \"reference\": \"83e253c8e0be5b0257b881e1827274667c5c17a9\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9\",\n            \"reference\": \"83e253c8e0be5b0257b881e1827274667c5c17a9\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"php\": \"^5.3.3 || ^7.0\",\n            \"symfony/polyfill-ctype\": \"^1.8\"\n        },\n        \"require-dev\": {\n            \"phpunit/phpunit\": \"^4.6\",\n            \"sebastian/version\": \"^1.0.1\"\n        },\n        \"time\": \"2018-12-25T11:19:39+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"branch-alias\": {\n                \"dev-master\": \"1.3-dev\"\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"Webmozart\\\\Assert\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"Bernhard Schussek\",\n                \"email\": \"bschussek@gmail.com\"\n            }\n        ],\n        \"description\": \"Assertions to validate method input/output with nice error messages.\",\n        \"keywords\": [\n            \"assert\",\n            \"check\",\n            \"validate\"\n        ]\n    },\n    {\n        \"name\": \"zgldh/qiniu-laravel-storage\",\n        \"version\": \"v0.10.3\",\n        \"version_normalized\": \"0.10.3.0\",\n        \"source\": {\n            \"type\": \"git\",\n            \"url\": \"https://github.com/zgldh/qiniu-laravel-storage.git\",\n            \"reference\": \"abb9b8e2ef53d44b6a07ba4e4df0dde21f15eff3\"\n        },\n        \"dist\": {\n            \"type\": \"zip\",\n            \"url\": \"https://api.github.com/repos/zgldh/qiniu-laravel-storage/zipball/abb9b8e2ef53d44b6a07ba4e4df0dde21f15eff3\",\n            \"reference\": \"abb9b8e2ef53d44b6a07ba4e4df0dde21f15eff3\",\n            \"shasum\": \"\",\n            \"mirrors\": [\n                {\n                    \"url\": \"https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%\",\n                    \"preferred\": true\n                }\n            ]\n        },\n        \"require\": {\n            \"league/flysystem\": \"^1.0\",\n            \"php\": \">=5.3.3\",\n            \"qiniu/php-sdk\": \"^7.2\"\n        },\n        \"time\": \"2019-08-03T11:01:48+00:00\",\n        \"type\": \"library\",\n        \"extra\": {\n            \"laravel\": {\n                \"providers\": [\n                    \"zgldh\\\\QiniuStorage\\\\QiniuFilesystemServiceProvider\"\n                ]\n            }\n        },\n        \"installation-source\": \"dist\",\n        \"autoload\": {\n            \"psr-4\": {\n                \"zgldh\\\\QiniuStorage\\\\\": \"src/\"\n            }\n        },\n        \"notification-url\": \"https://packagist.org/downloads/\",\n        \"license\": [\n            \"MIT\"\n        ],\n        \"authors\": [\n            {\n                \"name\": \"zgldh\",\n                \"email\": \"zgldh@hotmail.com\",\n                \"role\": \"Original Developer\"\n            },\n            {\n                \"name\": \"abcsun\",\n                \"email\": \"chenglongsun_nj@163.com\",\n                \"homepage\": \"http://github.com/abcsun\",\n                \"role\": \"Developer\"\n            }\n        ],\n        \"description\": \"Qiniu Resource (Cloud) Storage SDK for Laravel 5\",\n        \"keywords\": [\n            \"cloud\",\n            \"laravel\",\n            \"qiniu\",\n            \"sdk\",\n            \"storage\"\n        ]\n    }\n]\n"
  },
  {
    "path": "vendor/doctrine/cache/LICENSE",
    "content": "Copyright (c) 2006-2015 Doctrine Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/doctrine/cache/README.md",
    "content": "# Doctrine Cache\n\n[![Build Status](https://img.shields.io/travis/doctrine/cache/master.svg?style=flat-square)](http://travis-ci.org/doctrine/cache) \n[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/doctrine/cache/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master) \n[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/doctrine/cache/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)\n\n[![Latest Stable Version](https://img.shields.io/packagist/v/doctrine/cache.svg?style=flat-square)](https://packagist.org/packages/doctrine/cache)\n[![Total Downloads](https://img.shields.io/packagist/dt/doctrine/cache.svg?style=flat-square)](https://packagist.org/packages/doctrine/cache)\n\nCache component extracted from the Doctrine Common project. [Documentation](http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/caching.html)\n"
  },
  {
    "path": "vendor/doctrine/cache/UPGRADE.md",
    "content": "# Upgrade to 1.4\n\n## Minor BC Break: `Doctrine\\Common\\Cache\\FileCache#$extension` is now `private`.\n\nIf you need to override the value of `Doctrine\\Common\\Cache\\FileCache#$extension`, then use the\nsecond parameter of `Doctrine\\Common\\Cache\\FileCache#__construct()` instead of overriding\nthe property in your own implementation.\n\n## Minor BC Break: file based caches paths changed\n\n`Doctrine\\Common\\Cache\\FileCache`, `Doctrine\\Common\\Cache\\PhpFileCache` and\n`Doctrine\\Common\\Cache\\FilesystemCache` are using a different cache paths structure.\n\nIf you rely on warmed up caches for deployments, consider that caches generated\nwith `doctrine/cache` `<1.4` are not compatible with the new directory structure,\nand will be ignored.\n"
  },
  {
    "path": "vendor/doctrine/cache/composer.json",
    "content": "{\n    \"name\": \"doctrine/cache\",\n    \"type\": \"library\",\n    \"description\": \"Caching library offering an object-oriented API for many cache backends\",\n    \"keywords\": [\"cache\", \"caching\"],\n    \"homepage\": \"https://www.doctrine-project.org\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\"name\": \"Guilherme Blanco\", \"email\": \"guilhermeblanco@gmail.com\"},\n        {\"name\": \"Roman Borschel\", \"email\": \"roman@code-factory.org\"},\n        {\"name\": \"Benjamin Eberlei\", \"email\": \"kontakt@beberlei.de\"},\n        {\"name\": \"Jonathan Wage\", \"email\": \"jonwage@gmail.com\"},\n        {\"name\": \"Johannes Schmitt\", \"email\": \"schmittjoh@gmail.com\"}\n    ],\n    \"require\": {\n        \"php\": \"~7.1\"\n    },\n    \"require-dev\": {\n        \"alcaeus/mongo-php-adapter\": \"^1.1\",\n        \"mongodb/mongodb\": \"^1.1\",\n        \"phpunit/phpunit\": \"^7.0\",\n        \"predis/predis\":   \"~1.0\",\n        \"doctrine/coding-standard\": \"^4.0\"\n    },\n    \"suggest\": {\n        \"alcaeus/mongo-php-adapter\": \"Required to use legacy MongoDB driver\"\n    },\n    \"conflict\": {\n        \"doctrine/common\": \">2.2,<2.4\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Doctrine\\\\Common\\\\Cache\\\\\": \"lib/Doctrine/Common/Cache\" }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": { \"Doctrine\\\\Tests\\\\\": \"tests/Doctrine/Tests\" }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.8.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/docs/en/index.rst",
    "content": "Introduction\n============\n\nDoctrine Cache is a library that provides an interface for caching data.\nIt comes with implementations for some of the most popular caching data\nstores. Here is what the ``Cache`` interface looks like.\n\n.. code-block:: php\n    namespace Doctrine\\Common\\Cache;\n\n    interface Cache\n    {\n        public function fetch($id);\n        public function contains($id);\n        public function save($id, $data, $lifeTime = 0);\n        public function delete($id);\n        public function getStats();\n    }\n\nHere is an example that uses Memcache.\n\n.. code-block:: php\n    use Doctrine\\Common\\Cache\\MemcacheCache;\n\n    $memcache = new Memcache();\n    $cache = new MemcacheCache();\n    $cache->setMemcache($memcache);\n\n    $cache->set('key', 'value');\n\n    echo $cache->get('key') // prints \"value\"\n\nDrivers\n=======\n\nDoctrine ships with several common drivers that you can easily use.\nBelow you can find information about all the available drivers.\n\nApcCache\n--------\n\nThe ``ApcCache`` driver uses the ``apc_fetch``, ``apc_exists``, etc. functions that come\nwith PHP so no additional setup is required in order to use it.\n\n.. code-block:: php\n    $cache = new ApcCache();\n\nApcuCache\n---------\n\nThe ``ApcuCache`` driver uses the ``apcu_fetch``, ``apcu_exists``, etc. functions that come\nwith PHP so no additional setup is required in order to use it.\n\n.. code-block:: php\n    $cache = new ApcuCache();\n\nArrayCache\n----------\n\nThe ``ArrayCache`` driver stores the cache data in PHPs memory and is not persisted anywhere.\nThis can be useful for caching things in memory for a single process when you don't need\nthe cache to be persistent across processes.\n\n.. code-block:: php\n    $cache = new ArrayCache();\n\nChainCache\n----------\n\nThe ``ChainCache`` driver lets you chain multiple other drivers together easily.\n\n.. code-block:: php\n    $arrayCache = new ArrayCache();\n    $apcuCache = new ApcuCache();\n\n    $cache = new ChainCache([$arrayCache, $apcuCache]);\n\nCouchbaseBucketCache\n--------------------\n\nThe ``CouchbaseBucketCache`` driver uses Couchbase to store the cache data.\n\n.. code-block:: php\n    $bucketName = 'bucket-name';\n\n    $authenticator = new Couchbase\\PasswordAuthenticator();\n    $authenticator->username('username')->password('password');\n\n    $cluster = new CouchbaseCluster('couchbase://127.0.0.1');\n\n    $cluster->authenticate($authenticator);\n    $bucket = $cluster->openBucket($bucketName);\n\n    $cache = new CouchbaseBucketCache($bucket);\n\nFilesystemCache\n---------------\n\nThe ``FilesystemCache`` driver stores the cache data on the local filesystem.\n\n.. code-block:: php\n    $cache = new FilesystemCache('/path/to/cache/directory');\n\nMemecacheCache\n--------------\n\nThe ``MemcacheCache`` drivers stores the cache data in Memcache.\n\n.. code-block:: php\n    $memcache = new Memcache();\n    $memcache->connect('localhost', 11211);\n\n    $cache = new MemcacheCache();\n    $cache->setMemcache($memcache);\n\nMemcachedCache\n--------------\n\nThe ``MemcachedCache`` drivers stores the cache data in Memcached.\n\n.. code-block:: php\n    $memcached = new Memcached();\n\n    $cache = new MemcachedCache();\n    $cache->setMemcached($memcached);\n\nMongoDBCache\n------------\n\nThe ``MongoDBCache`` drivers stores the cache data in a MongoDB collection.\n\n.. code-block:: php\n    $manager = new MongoDB\\Driver\\Manager(\"mongodb://localhost:27017\");\n\n    $collection = new MongoDB\\Collection($manager, 'database_name', 'collection_name');\n\n    $cache = new MongoDBCache($collection);\n\nPhpFileCache\n------------\n\nThe ``PhpFileCache`` driver stores the cache data on the local filesystem like the\n``FilesystemCache`` driver except the data is serialized using the ``serialize()``\nand ``unserialize()`` functions available in PHP. The files are included so this means\nthat the data can be cached in PHPs opcache.\n\n.. code-block:: php\n    $cache = new PhpFileCache('/path/to/cache/directory');\n\nPredisCache\n-----------\n\nThe ``PredisCache`` driver stores the cache data in Redis\nand depends on the ``predis/predis`` package which can be installed with composer.\n\n.. code-block:: bash\n    $ composer require predis/predis\n\nThen you can use the ``Predis\\Client`` class to pass to the ``PredisCache`` class.\n\n.. code-block:: php\n    $client = new Predis\\Client();\n\n    $cache = new PredisCache($client);\n\nRedisCache\n----------\n\nThe ``RedisCache`` driver stores the cache data in Redis and depends on the\n``phpredis`` extension which can be found `here <https://github.com/phpredis/phpredis>`_.\n\n.. code-block:: php\n    $redis = new Redis();\n\n    $cache = new RedisCache($redis);\n\nRiakCache\n---------\n\nThe ``RiakCache`` driver stores the cache data in Riak and depends on the\n``riak`` extension which can be found `here <https://github.com/php-riak/php_riak>`_.\n\n.. code-block:: php\n    $connection = new Riak\\Connection('localhost', 8087);\n\n    $bucket = new Riak\\Bucket($connection, 'bucket_name');\n\n    $cache = new RiakCache($bucket);\n\nSQLite3Cache\n------------\n\nThe ``SQLite3Cache`` driver stores the cache data in a SQLite database and depends on the\n``sqlite3`` extension which can be found `here <http://php.net/manual/en/book.sqlite3.php>`_.\n\n.. code-block:: php\n    $db = new SQLite3('mydatabase.db');\n\n    $cache = new SQLite3Cache($db, 'table_name');\n\nVoidCache\n---------\n\nThe ``VoidCache`` driver does not store the cache data anywhere. This can\nbe useful for test environments where you don't want to cache the data\nanywhere but need to satisfy the dependency for the ``Doctrine\\Common\\Cache\\Cache``\ninterface.\n\n.. code-block:: php\n    $cache = new VoidCache();\n\nWinCacheCache\n-------------\n\nThe ``WinCacheCache`` driver uses the ``wincache_ucache_get``, ``wincache_ucache_exists``, etc. functions that come\nwith the ``wincache`` extension which can be found `here <http://php.net/manual/en/book.wincache.php>`_.\n\n.. code-block:: php\n    $cache = new WinCacheCache();\n\nXcacheCache\n-----------\n\nThe ``XcacheCache`` driver uses functions that come with the ``xcache``\nextension which can be found `here <https://xcache.lighttpd.net/>`_.\n\n.. code-block:: php\n    $cache = new XcacheCache();\n\nZendDataCache\n-------------\n\nThe ``ZendDataCache`` driver uses the Zend Data Cache API available in the Zend Platform.\n\n.. code-block:: php\n    $cache = new ZendDataCache();\n\nCustom Drivers\n==============\n\nIf you want to implement your own cache driver, you just need to implement\nthe ``Doctrine\\Common\\Cache\\Cache`` interface. Here is an example implementation\nskeleton.\n\n.. code-block:: php\n    use Doctrine\\Common\\Cache\\Cache;\n\n    class MyCacheDriver implements Cache\n    {\n        public function fetch($id)\n        {\n            // fetch $id from the cache\n        }\n\n        public function contains($id)\n        {\n            // check if $id exists in the cache\n        }\n\n        public function save($id, $data, $lifeTime = 0)\n        {\n            // save $data under $id in the cache for $lifetime\n        }\n\n        public function delete($id)\n        {\n            // delete $id from the cache\n        }\n\n        public function getStats()\n        {\n            // get cache stats\n        }\n    }\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse const PHP_VERSION_ID;\nuse function apc_cache_info;\nuse function apc_clear_cache;\nuse function apc_delete;\nuse function apc_exists;\nuse function apc_fetch;\nuse function apc_sma_info;\nuse function apc_store;\n\n/**\n * APC cache provider.\n *\n * @link       www.doctrine-project.org\n * @deprecated since version 1.6, use ApcuCache instead\n */\nclass ApcCache extends CacheProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return apc_fetch($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return apc_exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return apc_store($id, $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        // apc_delete returns false if the id does not exist\n        return apc_delete($id) || ! apc_exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return apc_clear_cache() && apc_clear_cache('user');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        return apc_fetch($keys) ?: [];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $result = apc_store($keysAndValues, null, $lifetime);\n\n        return empty($result);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $info = apc_cache_info('', true);\n        $sma  = apc_sma_info();\n\n        // @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42\n        if (PHP_VERSION_ID >= 50500) {\n            $info['num_hits']   = $info['num_hits'] ?? $info['nhits'];\n            $info['num_misses'] = $info['num_misses'] ?? $info['nmisses'];\n            $info['start_time'] = $info['start_time'] ?? $info['stime'];\n        }\n\n        return [\n            Cache::STATS_HITS             => $info['num_hits'],\n            Cache::STATS_MISSES           => $info['num_misses'],\n            Cache::STATS_UPTIME           => $info['start_time'],\n            Cache::STATS_MEMORY_USAGE     => $info['mem_size'],\n            Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function apcu_cache_info;\nuse function apcu_clear_cache;\nuse function apcu_delete;\nuse function apcu_exists;\nuse function apcu_fetch;\nuse function apcu_sma_info;\nuse function apcu_store;\nuse function count;\n\n/**\n * APCu cache provider.\n *\n * @link   www.doctrine-project.org\n */\nclass ApcuCache extends CacheProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return apcu_fetch($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return apcu_exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return apcu_store($id, $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        // apcu_delete returns false if the id does not exist\n        return apcu_delete($id) || ! apcu_exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        $result = apcu_delete($keys);\n\n        return $result !== false && count($result) !== count($keys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return apcu_clear_cache();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        return apcu_fetch($keys) ?: [];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $result = apcu_store($keysAndValues, null, $lifetime);\n\n        return empty($result);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $info = apcu_cache_info(true);\n        $sma  = apcu_sma_info();\n\n        return [\n            Cache::STATS_HITS             => $info['num_hits'],\n            Cache::STATS_MISSES           => $info['num_misses'],\n            Cache::STATS_UPTIME           => $info['start_time'],\n            Cache::STATS_MEMORY_USAGE     => $info['mem_size'],\n            Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function time;\n\n/**\n * Array cache driver.\n *\n * @link   www.doctrine-project.org\n */\nclass ArrayCache extends CacheProvider\n{\n    /** @var array[] $data each element being a tuple of [$data, $expiration], where the expiration is int|bool */\n    private $data = [];\n\n    /** @var int */\n    private $hitsCount = 0;\n\n    /** @var int */\n    private $missesCount = 0;\n\n    /** @var int */\n    private $upTime;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct()\n    {\n        $this->upTime = time();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        if (! $this->doContains($id)) {\n            $this->missesCount += 1;\n\n            return false;\n        }\n\n        $this->hitsCount += 1;\n\n        return $this->data[$id][0];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        if (! isset($this->data[$id])) {\n            return false;\n        }\n\n        $expiration = $this->data[$id][1];\n\n        if ($expiration && $expiration < time()) {\n            $this->doDelete($id);\n\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        $this->data[$id] = [$data, $lifeTime ? time() + $lifeTime : false];\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        unset($this->data[$id]);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        $this->data = [];\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        return [\n            Cache::STATS_HITS             => $this->hitsCount,\n            Cache::STATS_MISSES           => $this->missesCount,\n            Cache::STATS_UPTIME           => $this->upTime,\n            Cache::STATS_MEMORY_USAGE     => null,\n            Cache::STATS_MEMORY_AVAILABLE => null,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache drivers.\n *\n * @link   www.doctrine-project.org\n */\ninterface Cache\n{\n    public const STATS_HITS             = 'hits';\n    public const STATS_MISSES           = 'misses';\n    public const STATS_UPTIME           = 'uptime';\n    public const STATS_MEMORY_USAGE     = 'memory_usage';\n    public const STATS_MEMORY_AVAILABLE = 'memory_available';\n    /**\n     * Only for backward compatibility (may be removed in next major release)\n     *\n     * @deprecated\n     */\n    public const STATS_MEMORY_AVAILIABLE = 'memory_available';\n\n    /**\n     * Fetches an entry from the cache.\n     *\n     * @param string $id The id of the cache entry to fetch.\n     *\n     * @return mixed The cached data or FALSE, if no cache entry exists for the given id.\n     */\n    public function fetch($id);\n\n    /**\n     * Tests if an entry exists in the cache.\n     *\n     * @param string $id The cache id of the entry to check for.\n     *\n     * @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.\n     */\n    public function contains($id);\n\n    /**\n     * Puts data into the cache.\n     *\n     * If a cache entry with the given id already exists, its data will be replaced.\n     *\n     * @param string $id       The cache id.\n     * @param mixed  $data     The cache entry/data.\n     * @param int    $lifeTime The lifetime in number of seconds for this cache entry.\n     *                         If zero (the default), the entry never expires (although it may be deleted from the cache\n     *                         to make place for other entries).\n     *\n     * @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.\n     */\n    public function save($id, $data, $lifeTime = 0);\n\n    /**\n     * Deletes a cache entry.\n     *\n     * @param string $id The cache id.\n     *\n     * @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.\n     *              Deleting a non-existing entry is considered successful.\n     */\n    public function delete($id);\n\n    /**\n     * Retrieves cached information from the data store.\n     *\n     * The server's statistics array has the following values:\n     *\n     * - <b>hits</b>\n     * Number of keys that have been requested and found present.\n     *\n     * - <b>misses</b>\n     * Number of items that have been requested and not found.\n     *\n     * - <b>uptime</b>\n     * Time that the server is running.\n     *\n     * - <b>memory_usage</b>\n     * Memory used by this server to store items.\n     *\n     * - <b>memory_available</b>\n     * Memory allowed to use for storage.\n     *\n     * @return array|null An associative array with server's statistics if available, NULL otherwise.\n     */\n    public function getStats();\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function array_combine;\nuse function array_key_exists;\nuse function array_map;\nuse function sprintf;\n\n/**\n * Base class for cache provider implementations.\n *\n */\nabstract class CacheProvider implements Cache, FlushableCache, ClearableCache, MultiOperationCache\n{\n    public const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]';\n\n    /**\n     * The namespace to prefix all cache ids with.\n     *\n     * @var string\n     */\n    private $namespace = '';\n\n    /**\n     * The namespace version.\n     *\n     * @var int|null\n     */\n    private $namespaceVersion;\n\n    /**\n     * Sets the namespace to prefix all cache ids with.\n     *\n     * @param string $namespace\n     *\n     * @return void\n     */\n    public function setNamespace($namespace)\n    {\n        $this->namespace        = (string) $namespace;\n        $this->namespaceVersion = null;\n    }\n\n    /**\n     * Retrieves the namespace that prefixes all cache ids.\n     *\n     * @return string\n     */\n    public function getNamespace()\n    {\n        return $this->namespace;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($id)\n    {\n        return $this->doFetch($this->getNamespacedId($id));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchMultiple(array $keys)\n    {\n        if (empty($keys)) {\n            return [];\n        }\n\n        // note: the array_combine() is in place to keep an association between our $keys and the $namespacedKeys\n        $namespacedKeys = array_combine($keys, array_map([$this, 'getNamespacedId'], $keys));\n        $items          = $this->doFetchMultiple($namespacedKeys);\n        $foundItems     = [];\n\n        // no internal array function supports this sort of mapping: needs to be iterative\n        // this filters and combines keys in one pass\n        foreach ($namespacedKeys as $requestedKey => $namespacedKey) {\n            if (! isset($items[$namespacedKey]) && ! array_key_exists($namespacedKey, $items)) {\n                continue;\n            }\n\n            $foundItems[$requestedKey] = $items[$namespacedKey];\n        }\n\n        return $foundItems;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function saveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $namespacedKeysAndValues = [];\n        foreach ($keysAndValues as $key => $value) {\n            $namespacedKeysAndValues[$this->getNamespacedId($key)] = $value;\n        }\n\n        return $this->doSaveMultiple($namespacedKeysAndValues, $lifetime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function contains($id)\n    {\n        return $this->doContains($this->getNamespacedId($id));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function save($id, $data, $lifeTime = 0)\n    {\n        return $this->doSave($this->getNamespacedId($id), $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function deleteMultiple(array $keys)\n    {\n        return $this->doDeleteMultiple(array_map([$this, 'getNamespacedId'], $keys));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function delete($id)\n    {\n        return $this->doDelete($this->getNamespacedId($id));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getStats()\n    {\n        return $this->doGetStats();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function flushAll()\n    {\n        return $this->doFlush();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function deleteAll()\n    {\n        $namespaceCacheKey = $this->getNamespaceCacheKey();\n        $namespaceVersion  = $this->getNamespaceVersion() + 1;\n\n        if ($this->doSave($namespaceCacheKey, $namespaceVersion)) {\n            $this->namespaceVersion = $namespaceVersion;\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Prefixes the passed id with the configured namespace value.\n     *\n     * @param string $id The id to namespace.\n     *\n     * @return string The namespaced id.\n     */\n    private function getNamespacedId(string $id) : string\n    {\n        $namespaceVersion = $this->getNamespaceVersion();\n\n        return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion);\n    }\n\n    /**\n     * Returns the namespace cache key.\n     */\n    private function getNamespaceCacheKey() : string\n    {\n        return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace);\n    }\n\n    /**\n     * Returns the namespace version.\n     */\n    private function getNamespaceVersion() : int\n    {\n        if ($this->namespaceVersion !== null) {\n            return $this->namespaceVersion;\n        }\n\n        $namespaceCacheKey      = $this->getNamespaceCacheKey();\n        $this->namespaceVersion = (int) $this->doFetch($namespaceCacheKey) ?: 1;\n\n        return $this->namespaceVersion;\n    }\n\n    /**\n     * Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.\n     *\n     * @param array $keys Array of keys to retrieve from cache\n     * @return array Array of values retrieved for the given keys.\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        $returnValues = [];\n\n        foreach ($keys as $key) {\n            $item = $this->doFetch($key);\n            if ($item === false && ! $this->doContains($key)) {\n                continue;\n            }\n\n            $returnValues[$key] = $item;\n        }\n\n        return $returnValues;\n    }\n\n    /**\n     * Fetches an entry from the cache.\n     *\n     * @param string $id The id of the cache entry to fetch.\n     *\n     * @return mixed|false The cached data or FALSE, if no cache entry exists for the given id.\n     */\n    abstract protected function doFetch($id);\n\n    /**\n     * Tests if an entry exists in the cache.\n     *\n     * @param string $id The cache id of the entry to check for.\n     *\n     * @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.\n     */\n    abstract protected function doContains($id);\n\n    /**\n     * Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.\n     *\n     * @param array $keysAndValues Array of keys and values to save in cache\n     * @param int   $lifetime      The lifetime. If != 0, sets a specific lifetime for these\n     *                             cache entries (0 => infinite lifeTime).\n     *\n     * @return bool TRUE if the operation was successful, FALSE if it wasn't.\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $success = true;\n\n        foreach ($keysAndValues as $key => $value) {\n            if ($this->doSave($key, $value, $lifetime)) {\n                continue;\n            }\n\n            $success = false;\n        }\n\n        return $success;\n    }\n\n    /**\n     * Puts data into the cache.\n     *\n     * @param string $id       The cache id.\n     * @param string $data     The cache entry/data.\n     * @param int    $lifeTime The lifetime. If != 0, sets a specific lifetime for this\n     *                           cache entry (0 => infinite lifeTime).\n     *\n     * @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.\n     */\n    abstract protected function doSave($id, $data, $lifeTime = 0);\n\n    /**\n     * Default implementation of doDeleteMultiple. Each driver that supports multi-delete should override it.\n     *\n     * @param array $keys Array of keys to delete from cache\n     *\n     * @return bool TRUE if the operation was successful, FALSE if it wasn't\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        $success = true;\n\n        foreach ($keys as $key) {\n            if ($this->doDelete($key)) {\n                continue;\n            }\n\n            $success = false;\n        }\n\n        return $success;\n    }\n\n    /**\n     * Deletes a cache entry.\n     *\n     * @param string $id The cache id.\n     *\n     * @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.\n     */\n    abstract protected function doDelete($id);\n\n    /**\n     * Flushes all cache entries.\n     *\n     * @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.\n     */\n    abstract protected function doFlush();\n\n    /**\n     * Retrieves cached information from the data store.\n     *\n     * @return array|null An associative array with server's statistics if available, NULL otherwise.\n     */\n    abstract protected function doGetStats();\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function array_values;\nuse function count;\nuse function iterator_to_array;\n\n/**\n * Cache provider that allows to easily chain multiple cache providers\n */\nclass ChainCache extends CacheProvider\n{\n    /** @var CacheProvider[] */\n    private $cacheProviders = [];\n\n    /**\n     * @param CacheProvider[] $cacheProviders\n     */\n    public function __construct($cacheProviders = [])\n    {\n        $this->cacheProviders = $cacheProviders instanceof \\Traversable\n            ? iterator_to_array($cacheProviders, false)\n            : array_values($cacheProviders);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function setNamespace($namespace)\n    {\n        parent::setNamespace($namespace);\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $cacheProvider->setNamespace($namespace);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doFetch($id)\n    {\n        foreach ($this->cacheProviders as $key => $cacheProvider) {\n            if ($cacheProvider->doContains($id)) {\n                $value = $cacheProvider->doFetch($id);\n\n                // We populate all the previous cache layers (that are assumed to be faster)\n                for ($subKey = $key - 1; $subKey >= 0; $subKey--) {\n                    $this->cacheProviders[$subKey]->doSave($id, $value);\n                }\n\n                return $value;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        /** @var CacheProvider[] $traversedProviders */\n        $traversedProviders = [];\n        $keysCount          = count($keys);\n        $fetchedValues      = [];\n\n        foreach ($this->cacheProviders as $key => $cacheProvider) {\n            $fetchedValues = $cacheProvider->doFetchMultiple($keys);\n\n            // We populate all the previous cache layers (that are assumed to be faster)\n            if (count($fetchedValues) === $keysCount) {\n                foreach ($traversedProviders as $previousCacheProvider) {\n                    $previousCacheProvider->doSaveMultiple($fetchedValues);\n                }\n\n                return $fetchedValues;\n            }\n\n            $traversedProviders[] = $cacheProvider;\n        }\n\n        return $fetchedValues;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doContains($id)\n    {\n        foreach ($this->cacheProviders as $cacheProvider) {\n            if ($cacheProvider->doContains($id)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        $stored = true;\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;\n        }\n\n        return $stored;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $stored = true;\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $stored = $cacheProvider->doSaveMultiple($keysAndValues, $lifetime) && $stored;\n        }\n\n        return $stored;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doDelete($id)\n    {\n        $deleted = true;\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $deleted = $cacheProvider->doDelete($id) && $deleted;\n        }\n\n        return $deleted;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        $deleted = true;\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $deleted = $cacheProvider->doDeleteMultiple($keys) && $deleted;\n        }\n\n        return $deleted;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doFlush()\n    {\n        $flushed = true;\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $flushed = $cacheProvider->doFlush() && $flushed;\n        }\n\n        return $flushed;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doGetStats()\n    {\n        // We return all the stats from all adapters\n        $stats = [];\n\n        foreach ($this->cacheProviders as $cacheProvider) {\n            $stats[] = $cacheProvider->doGetStats();\n        }\n\n        return $stats;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache that can be flushed.\n *\n * Intended to be used for partial clearing of a cache namespace. For a more\n * global \"flushing\", see {@see FlushableCache}.\n *\n * @link   www.doctrine-project.org\n */\ninterface ClearableCache\n{\n    /**\n     * Deletes all cache entries in the current cache namespace.\n     *\n     * @return bool TRUE if the cache entries were successfully deleted, FALSE otherwise.\n     */\n    public function deleteAll();\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Couchbase\\Bucket;\nuse Couchbase\\Document;\nuse Couchbase\\Exception;\nuse function phpversion;\nuse function serialize;\nuse function sprintf;\nuse function substr;\nuse function time;\nuse function unserialize;\nuse function version_compare;\n\n/**\n * Couchbase ^2.3.0 cache provider.\n */\nfinal class CouchbaseBucketCache extends CacheProvider\n{\n    private const MINIMUM_VERSION = '2.3.0';\n\n    private const KEY_NOT_FOUND = 13;\n\n    private const MAX_KEY_LENGTH = 250;\n\n    private const THIRTY_DAYS_IN_SECONDS = 2592000;\n\n    /** @var Bucket */\n    private $bucket;\n\n    public function __construct(Bucket $bucket)\n    {\n        if (version_compare(phpversion('couchbase'), self::MINIMUM_VERSION) < 0) {\n            // Manager is required to flush cache and pull stats.\n            throw new \\RuntimeException(sprintf('ext-couchbase:^%s is required.', self::MINIMUM_VERSION));\n        }\n\n        $this->bucket = $bucket;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $id = $this->normalizeKey($id);\n\n        try {\n            $document = $this->bucket->get($id);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        if ($document instanceof Document && $document->value !== false) {\n            return unserialize($document->value);\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $id = $this->normalizeKey($id);\n\n        try {\n            $document = $this->bucket->get($id);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        if ($document instanceof Document) {\n            return ! $document->error;\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        $id = $this->normalizeKey($id);\n\n        $lifeTime = $this->normalizeExpiry($lifeTime);\n\n        try {\n            $encoded = serialize($data);\n\n            $document = $this->bucket->upsert($id, $encoded, [\n                'expiry' => (int) $lifeTime,\n            ]);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        if ($document instanceof Document) {\n            return ! $document->error;\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        $id = $this->normalizeKey($id);\n\n        try {\n            $document = $this->bucket->remove($id);\n        } catch (Exception $e) {\n            return $e->getCode() === self::KEY_NOT_FOUND;\n        }\n\n        if ($document instanceof Document) {\n            return ! $document->error;\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        $manager = $this->bucket->manager();\n\n        // Flush does not return with success or failure, and must be enabled per bucket on the server.\n        // Store a marker item so that we will know if it was successful.\n        $this->doSave(__METHOD__, true, 60);\n\n        $manager->flush();\n\n        if ($this->doContains(__METHOD__)) {\n            $this->doDelete(__METHOD__);\n\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $manager          = $this->bucket->manager();\n        $stats            = $manager->info();\n        $nodes            = $stats['nodes'];\n        $node             = $nodes[0];\n        $interestingStats = $node['interestingStats'];\n\n        return [\n            Cache::STATS_HITS   => $interestingStats['get_hits'],\n            Cache::STATS_MISSES => $interestingStats['cmd_get'] - $interestingStats['get_hits'],\n            Cache::STATS_UPTIME => $node['uptime'],\n            Cache::STATS_MEMORY_USAGE     => $interestingStats['mem_used'],\n            Cache::STATS_MEMORY_AVAILABLE => $node['memoryFree'],\n        ];\n    }\n\n    private function normalizeKey(string $id) : string\n    {\n        $normalized = substr($id, 0, self::MAX_KEY_LENGTH);\n\n        if ($normalized === false) {\n            return $id;\n        }\n\n        return $normalized;\n    }\n\n    /**\n     * Expiry treated as a unix timestamp instead of an offset if expiry is greater than 30 days.\n     * @src https://developer.couchbase.com/documentation/server/4.1/developer-guide/expiry.html\n     */\n    private function normalizeExpiry(int $expiry) : int\n    {\n        if ($expiry > self::THIRTY_DAYS_IN_SECONDS) {\n            return time() + $expiry;\n        }\n\n        return $expiry;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Couchbase;\nuse function explode;\nuse function time;\n\n/**\n * Couchbase cache provider.\n *\n * @link   www.doctrine-project.org\n * @deprecated Couchbase SDK 1.x is now deprecated. Use \\Doctrine\\Common\\Cache\\CouchbaseBucketCache instead.\n * https://developer.couchbase.com/documentation/server/current/sdk/php/compatibility-versions-features.html\n */\nclass CouchbaseCache extends CacheProvider\n{\n    /** @var Couchbase|null */\n    private $couchbase;\n\n    /**\n     * Sets the Couchbase instance to use.\n     *\n     * @return void\n     */\n    public function setCouchbase(Couchbase $couchbase)\n    {\n        $this->couchbase = $couchbase;\n    }\n\n    /**\n     * Gets the Couchbase instance used by the cache.\n     *\n     * @return Couchbase|null\n     */\n    public function getCouchbase()\n    {\n        return $this->couchbase;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->couchbase->get($id) ?: false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return $this->couchbase->get($id) !== null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 30 * 24 * 3600) {\n            $lifeTime = time() + $lifeTime;\n        }\n        return $this->couchbase->set($id, $data, (int) $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return $this->couchbase->delete($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->couchbase->flush();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $stats   = $this->couchbase->getStats();\n        $servers = $this->couchbase->getServers();\n        $server  = explode(':', $servers[0]);\n        $key     = $server[0] . ':11210';\n        $stats   = $stats[$key];\n        return [\n            Cache::STATS_HITS   => $stats['get_hits'],\n            Cache::STATS_MISSES => $stats['get_misses'],\n            Cache::STATS_UPTIME => $stats['uptime'],\n            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],\n            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\n\nnamespace Doctrine\\Common\\Cache;\n\nuse MongoDB\\BSON\\Binary;\nuse MongoDB\\BSON\\UTCDateTime;\nuse MongoDB\\Collection;\nuse MongoDB\\Database;\nuse MongoDB\\Driver\\Exception\\Exception;\nuse MongoDB\\Model\\BSONDocument;\nuse function serialize;\nuse function time;\nuse function unserialize;\n\n/**\n * MongoDB cache provider for ext-mongodb\n *\n * @internal Do not use - will be removed in 2.0. Use MongoDBCache instead\n */\nclass ExtMongoDBCache extends CacheProvider\n{\n    /** @var Database */\n    private $database;\n\n    /** @var Collection */\n    private $collection;\n\n    /** @var bool */\n    private $expirationIndexCreated = false;\n\n    /**\n     * This provider will default to the write concern and read preference\n     * options set on the Database instance (or inherited from MongoDB or\n     * Client). Using an unacknowledged write concern (< 1) may make the return\n     * values of delete() and save() unreliable. Reading from secondaries may\n     * make contain() and fetch() unreliable.\n     *\n     * @see http://www.php.net/manual/en/mongo.readpreferences.php\n     * @see http://www.php.net/manual/en/mongo.writeconcerns.php\n     */\n    public function __construct(Collection $collection)\n    {\n        // Ensure there is no typemap set - we want to use our own\n        $this->collection = $collection->withOptions(['typeMap' => null]);\n        $this->database   = new Database($collection->getManager(), $collection->getDatabaseName());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $document = $this->collection->findOne(['_id' => $id], [MongoDBCache::DATA_FIELD, MongoDBCache::EXPIRATION_FIELD]);\n\n        if ($document === null) {\n            return false;\n        }\n\n        if ($this->isExpired($document)) {\n            $this->createExpirationIndex();\n            $this->doDelete($id);\n            return false;\n        }\n\n        return unserialize($document[MongoDBCache::DATA_FIELD]->getData());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $document = $this->collection->findOne(['_id' => $id], [MongoDBCache::EXPIRATION_FIELD]);\n\n        if ($document === null) {\n            return false;\n        }\n\n        if ($this->isExpired($document)) {\n            $this->createExpirationIndex();\n            $this->doDelete($id);\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        try {\n            $this->collection->updateOne(\n                ['_id' => $id],\n                [\n                    '$set' => [\n                        MongoDBCache::EXPIRATION_FIELD => ($lifeTime > 0 ? new UTCDateTime((time() + $lifeTime) * 1000): null),\n                        MongoDBCache::DATA_FIELD => new Binary(serialize($data), Binary::TYPE_GENERIC),\n                    ],\n                ],\n                ['upsert' => true]\n            );\n        } catch (Exception $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        try {\n            $this->collection->deleteOne(['_id' => $id]);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        try {\n            // Use remove() in lieu of drop() to maintain any collection indexes\n            $this->collection->deleteMany([]);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $uptime      = null;\n        $memoryUsage = null;\n\n        try {\n            $serverStatus = $this->database->command([\n                'serverStatus' => 1,\n                'locks' => 0,\n                'metrics' => 0,\n                'recordStats' => 0,\n                'repl' => 0,\n            ])->toArray()[0];\n            $uptime       = $serverStatus['uptime'] ?? null;\n        } catch (Exception $e) {\n        }\n\n        try {\n            $collStats   = $this->database->command(['collStats' => $this->collection->getCollectionName()])->toArray()[0];\n            $memoryUsage = $collStats['size'] ?? null;\n        } catch (Exception $e) {\n        }\n\n        return [\n            Cache::STATS_HITS => null,\n            Cache::STATS_MISSES => null,\n            Cache::STATS_UPTIME => $uptime,\n            Cache::STATS_MEMORY_USAGE => $memoryUsage,\n            Cache::STATS_MEMORY_AVAILABLE  => null,\n        ];\n    }\n\n    /**\n     * Check if the document is expired.\n     */\n    private function isExpired(BSONDocument $document) : bool\n    {\n        return isset($document[MongoDBCache::EXPIRATION_FIELD]) &&\n            $document[MongoDBCache::EXPIRATION_FIELD] instanceof UTCDateTime &&\n            $document[MongoDBCache::EXPIRATION_FIELD]->toDateTime() < new \\DateTime();\n    }\n\n    private function createExpirationIndex() : void\n    {\n        if ($this->expirationIndexCreated) {\n            return;\n        }\n\n        $this->collection->createIndex([MongoDBCache::EXPIRATION_FIELD => 1], ['background' => true, 'expireAfterSeconds' => 0]);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse const DIRECTORY_SEPARATOR;\nuse const PATHINFO_DIRNAME;\nuse function bin2hex;\nuse function chmod;\nuse function defined;\nuse function disk_free_space;\nuse function file_exists;\nuse function file_put_contents;\nuse function gettype;\nuse function hash;\nuse function is_dir;\nuse function is_int;\nuse function is_writable;\nuse function mkdir;\nuse function pathinfo;\nuse function realpath;\nuse function rename;\nuse function rmdir;\nuse function sprintf;\nuse function strlen;\nuse function strrpos;\nuse function substr;\nuse function tempnam;\nuse function unlink;\n\n/**\n * Base file cache driver.\n */\nabstract class FileCache extends CacheProvider\n{\n    /**\n     * The cache directory.\n     *\n     * @var string\n     */\n    protected $directory;\n\n    /**\n     * The cache file extension.\n     *\n     * @var string\n     */\n    private $extension;\n\n    /** @var int */\n    private $umask;\n\n    /** @var int */\n    private $directoryStringLength;\n\n    /** @var int */\n    private $extensionStringLength;\n\n    /** @var bool */\n    private $isRunningOnWindows;\n\n    /**\n     * @param string $directory The cache directory.\n     * @param string $extension The cache file extension.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct($directory, $extension = '', $umask = 0002)\n    {\n        // YES, this needs to be *before* createPathIfNeeded()\n        if (! is_int($umask)) {\n            throw new \\InvalidArgumentException(sprintf(\n                'The umask parameter is required to be integer, was: %s',\n                gettype($umask)\n            ));\n        }\n        $this->umask = $umask;\n\n        if (! $this->createPathIfNeeded($directory)) {\n            throw new \\InvalidArgumentException(sprintf(\n                'The directory \"%s\" does not exist and could not be created.',\n                $directory\n            ));\n        }\n\n        if (! is_writable($directory)) {\n            throw new \\InvalidArgumentException(sprintf(\n                'The directory \"%s\" is not writable.',\n                $directory\n            ));\n        }\n\n        // YES, this needs to be *after* createPathIfNeeded()\n        $this->directory = realpath($directory);\n        $this->extension = (string) $extension;\n\n        $this->directoryStringLength = strlen($this->directory);\n        $this->extensionStringLength = strlen($this->extension);\n        $this->isRunningOnWindows    = defined('PHP_WINDOWS_VERSION_BUILD');\n    }\n\n    /**\n     * Gets the cache directory.\n     *\n     * @return string\n     */\n    public function getDirectory()\n    {\n        return $this->directory;\n    }\n\n    /**\n     * Gets the cache file extension.\n     *\n     * @return string\n     */\n    public function getExtension()\n    {\n        return $this->extension;\n    }\n\n    /**\n     * @param string $id\n     *\n     * @return string\n     */\n    protected function getFilename($id)\n    {\n        $hash = hash('sha256', $id);\n\n        // This ensures that the filename is unique and that there are no invalid chars in it.\n        if ($id === ''\n            || ((strlen($id) * 2 + $this->extensionStringLength) > 255)\n            || ($this->isRunningOnWindows && ($this->directoryStringLength + 4 + strlen($id) * 2 + $this->extensionStringLength) > 258)\n        ) {\n            // Most filesystems have a limit of 255 chars for each path component. On Windows the the whole path is limited\n            // to 260 chars (including terminating null char). Using long UNC (\"\\\\?\\\" prefix) does not work with the PHP API.\n            // And there is a bug in PHP (https://bugs.php.net/bug.php?id=70943) with path lengths of 259.\n            // So if the id in hex representation would surpass the limit, we use the hash instead. The prefix prevents\n            // collisions between the hash and bin2hex.\n            $filename = '_' . $hash;\n        } else {\n            $filename = bin2hex($id);\n        }\n\n        return $this->directory\n            . DIRECTORY_SEPARATOR\n            . substr($hash, 0, 2)\n            . DIRECTORY_SEPARATOR\n            . $filename\n            . $this->extension;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        $filename = $this->getFilename($id);\n\n        return @unlink($filename) || ! file_exists($filename);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        foreach ($this->getIterator() as $name => $file) {\n            if ($file->isDir()) {\n                // Remove the intermediate directories which have been created to balance the tree. It only takes effect\n                // if the directory is empty. If several caches share the same directory but with different file extensions,\n                // the other ones are not removed.\n                @rmdir($name);\n            } elseif ($this->isFilenameEndingWithExtension($name)) {\n                // If an extension is set, only remove files which end with the given extension.\n                // If no extension is set, we have no other choice than removing everything.\n                @unlink($name);\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $usage = 0;\n        foreach ($this->getIterator() as $name => $file) {\n            if ($file->isDir() || ! $this->isFilenameEndingWithExtension($name)) {\n                continue;\n            }\n\n            $usage += $file->getSize();\n        }\n\n        $free = disk_free_space($this->directory);\n\n        return [\n            Cache::STATS_HITS               => null,\n            Cache::STATS_MISSES             => null,\n            Cache::STATS_UPTIME             => null,\n            Cache::STATS_MEMORY_USAGE       => $usage,\n            Cache::STATS_MEMORY_AVAILABLE   => $free,\n        ];\n    }\n\n    /**\n     * Create path if needed.\n     *\n     * @return bool TRUE on success or if path already exists, FALSE if path cannot be created.\n     */\n    private function createPathIfNeeded(string $path) : bool\n    {\n        if (! is_dir($path)) {\n            if (@mkdir($path, 0777 & (~$this->umask), true) === false && ! is_dir($path)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Writes a string content to file in an atomic way.\n     *\n     * @param string $filename Path to the file where to write the data.\n     * @param string $content  The content to write\n     *\n     * @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error.\n     */\n    protected function writeFile(string $filename, string $content) : bool\n    {\n        $filepath = pathinfo($filename, PATHINFO_DIRNAME);\n\n        if (! $this->createPathIfNeeded($filepath)) {\n            return false;\n        }\n\n        if (! is_writable($filepath)) {\n            return false;\n        }\n\n        $tmpFile = tempnam($filepath, 'swap');\n        @chmod($tmpFile, 0666 & (~$this->umask));\n\n        if (file_put_contents($tmpFile, $content) !== false) {\n            @chmod($tmpFile, 0666 & (~$this->umask));\n            if (@rename($tmpFile, $filename)) {\n                return true;\n            }\n\n            @unlink($tmpFile);\n        }\n\n        return false;\n    }\n\n    private function getIterator() : \\Iterator\n    {\n        return new \\RecursiveIteratorIterator(\n            new \\RecursiveDirectoryIterator($this->directory, \\FilesystemIterator::SKIP_DOTS),\n            \\RecursiveIteratorIterator::CHILD_FIRST\n        );\n    }\n\n    /**\n     * @param string $name The filename\n     */\n    private function isFilenameEndingWithExtension(string $name) : bool\n    {\n        return $this->extension === ''\n            || strrpos($name, $this->extension) === (strlen($name) - $this->extensionStringLength);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse const PHP_EOL;\nuse function fclose;\nuse function fgets;\nuse function fopen;\nuse function is_file;\nuse function serialize;\nuse function time;\nuse function unserialize;\n\n/**\n * Filesystem cache driver.\n */\nclass FilesystemCache extends FileCache\n{\n    public const EXTENSION = '.doctrinecache.data';\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)\n    {\n        parent::__construct($directory, $extension, $umask);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $data     = '';\n        $lifetime = -1;\n        $filename = $this->getFilename($id);\n\n        if (! is_file($filename)) {\n            return false;\n        }\n\n        $resource = fopen($filename, 'r');\n        $line     = fgets($resource);\n\n        if ($line !== false) {\n            $lifetime = (int) $line;\n        }\n\n        if ($lifetime !== 0 && $lifetime < time()) {\n            fclose($resource);\n\n            return false;\n        }\n\n        while (($line = fgets($resource)) !== false) {\n            $data .= $line;\n        }\n\n        fclose($resource);\n\n        return unserialize($data);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $lifetime = -1;\n        $filename = $this->getFilename($id);\n\n        if (! is_file($filename)) {\n            return false;\n        }\n\n        $resource = fopen($filename, 'r');\n        $line     = fgets($resource);\n\n        if ($line !== false) {\n            $lifetime = (int) $line;\n        }\n\n        fclose($resource);\n\n        return $lifetime === 0 || $lifetime > time();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 0) {\n            $lifeTime = time() + $lifeTime;\n        }\n\n        $data     = serialize($data);\n        $filename = $this->getFilename($id);\n\n        return $this->writeFile($filename, $lifeTime . PHP_EOL . $data);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache that can be flushed.\n *\n * @link   www.doctrine-project.org\n */\ninterface FlushableCache\n{\n    /**\n     * Flushes all cache entries, globally.\n     *\n     * @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.\n     */\n    public function flushAll();\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse MongoBinData;\nuse MongoCollection;\nuse MongoCursorException;\nuse MongoDate;\nuse const E_USER_DEPRECATED;\nuse function serialize;\nuse function time;\nuse function trigger_error;\nuse function unserialize;\n\n/**\n * MongoDB cache provider.\n *\n * @internal Do not use - will be removed in 2.0. Use MongoDBCache instead\n */\nclass LegacyMongoDBCache extends CacheProvider\n{\n    /** @var MongoCollection */\n    private $collection;\n\n    /** @var bool */\n    private $expirationIndexCreated = false;\n\n    /**\n     * This provider will default to the write concern and read preference\n     * options set on the MongoCollection instance (or inherited from MongoDB or\n     * MongoClient). Using an unacknowledged write concern (< 1) may make the\n     * return values of delete() and save() unreliable. Reading from secondaries\n     * may make contain() and fetch() unreliable.\n     *\n     * @see http://www.php.net/manual/en/mongo.readpreferences.php\n     * @see http://www.php.net/manual/en/mongo.writeconcerns.php\n     */\n    public function __construct(MongoCollection $collection)\n    {\n        @trigger_error('Using the legacy MongoDB cache provider is deprecated and will be removed in 2.0', E_USER_DEPRECATED);\n        $this->collection = $collection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $document = $this->collection->findOne(['_id' => $id], [MongoDBCache::DATA_FIELD, MongoDBCache::EXPIRATION_FIELD]);\n\n        if ($document === null) {\n            return false;\n        }\n\n        if ($this->isExpired($document)) {\n            $this->createExpirationIndex();\n            $this->doDelete($id);\n            return false;\n        }\n\n        return unserialize($document[MongoDBCache::DATA_FIELD]->bin);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $document = $this->collection->findOne(['_id' => $id], [MongoDBCache::EXPIRATION_FIELD]);\n\n        if ($document === null) {\n            return false;\n        }\n\n        if ($this->isExpired($document)) {\n            $this->createExpirationIndex();\n            $this->doDelete($id);\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        try {\n            $result = $this->collection->update(\n                ['_id' => $id],\n                [\n                    '$set' => [\n                        MongoDBCache::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null),\n                        MongoDBCache::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY),\n                    ],\n                ],\n                ['upsert' => true, 'multiple' => false]\n            );\n        } catch (MongoCursorException $e) {\n            return false;\n        }\n\n        return ($result['ok'] ?? 1) == 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        $result = $this->collection->remove(['_id' => $id]);\n\n        return ($result['ok'] ?? 1) == 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        // Use remove() in lieu of drop() to maintain any collection indexes\n        $result = $this->collection->remove();\n\n        return ($result['ok'] ?? 1) == 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $serverStatus = $this->collection->db->command([\n            'serverStatus' => 1,\n            'locks' => 0,\n            'metrics' => 0,\n            'recordStats' => 0,\n            'repl' => 0,\n        ]);\n\n        $collStats = $this->collection->db->command(['collStats' => 1]);\n\n        return [\n            Cache::STATS_HITS => null,\n            Cache::STATS_MISSES => null,\n            Cache::STATS_UPTIME => $serverStatus['uptime'] ?? null,\n            Cache::STATS_MEMORY_USAGE => $collStats['size'] ?? null,\n            Cache::STATS_MEMORY_AVAILABLE  => null,\n        ];\n    }\n\n    /**\n     * Check if the document is expired.\n     *\n     * @param array $document\n     */\n    private function isExpired(array $document) : bool\n    {\n        return isset($document[MongoDBCache::EXPIRATION_FIELD]) &&\n            $document[MongoDBCache::EXPIRATION_FIELD] instanceof MongoDate &&\n            $document[MongoDBCache::EXPIRATION_FIELD]->sec < time();\n    }\n\n\n    private function createExpirationIndex() : void\n    {\n        if ($this->expirationIndexCreated) {\n            return;\n        }\n\n        $this->expirationIndexCreated = true;\n        $this->collection->createIndex([MongoDBCache::EXPIRATION_FIELD => 1], ['background' => true, 'expireAfterSeconds' => 0]);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Memcache;\nuse function time;\n\n/**\n * Memcache cache provider.\n *\n * @link   www.doctrine-project.org\n *\n * @deprecated\n */\nclass MemcacheCache extends CacheProvider\n{\n    /** @var Memcache|null */\n    private $memcache;\n\n    /**\n     * Sets the memcache instance to use.\n     *\n     * @return void\n     */\n    public function setMemcache(Memcache $memcache)\n    {\n        $this->memcache = $memcache;\n    }\n\n    /**\n     * Gets the memcache instance used by the cache.\n     *\n     * @return Memcache|null\n     */\n    public function getMemcache()\n    {\n        return $this->memcache;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->memcache->get($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $flags = null;\n        $this->memcache->get($id, $flags);\n\n        //if memcache has changed the value of \"flags\", it means the value exists\n        return $flags !== null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 30 * 24 * 3600) {\n            $lifeTime = time() + $lifeTime;\n        }\n        return $this->memcache->set($id, $data, 0, (int) $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        // Memcache::delete() returns false if entry does not exist\n        return $this->memcache->delete($id) || ! $this->doContains($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->memcache->flush();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $stats = $this->memcache->getStats();\n        return [\n            Cache::STATS_HITS   => $stats['get_hits'],\n            Cache::STATS_MISSES => $stats['get_misses'],\n            Cache::STATS_UPTIME => $stats['uptime'],\n            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],\n            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Memcached;\nuse function time;\n\n/**\n * Memcached cache provider.\n *\n * @link   www.doctrine-project.org\n */\nclass MemcachedCache extends CacheProvider\n{\n    /** @var Memcached|null */\n    private $memcached;\n\n    /**\n     * Sets the memcache instance to use.\n     *\n     * @return void\n     */\n    public function setMemcached(Memcached $memcached)\n    {\n        $this->memcached = $memcached;\n    }\n\n    /**\n     * Gets the memcached instance used by the cache.\n     *\n     * @return Memcached|null\n     */\n    public function getMemcached()\n    {\n        return $this->memcached;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->memcached->get($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        return $this->memcached->getMulti($keys) ?: [];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        if ($lifetime > 30 * 24 * 3600) {\n            $lifetime = time() + $lifetime;\n        }\n\n        return $this->memcached->setMulti($keysAndValues, $lifetime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $this->memcached->get($id);\n\n        return $this->memcached->getResultCode() === Memcached::RES_SUCCESS;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 30 * 24 * 3600) {\n            $lifeTime = time() + $lifeTime;\n        }\n        return $this->memcached->set($id, $data, (int) $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        return $this->memcached->deleteMulti($keys)\n            || $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return $this->memcached->delete($id)\n            || $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->memcached->flush();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $stats   = $this->memcached->getStats();\n        $servers = $this->memcached->getServerList();\n        $key     = $servers[0]['host'] . ':' . $servers[0]['port'];\n        $stats   = $stats[$key];\n        return [\n            Cache::STATS_HITS   => $stats['get_hits'],\n            Cache::STATS_MISSES => $stats['get_misses'],\n            Cache::STATS_UPTIME => $stats['uptime'],\n            Cache::STATS_MEMORY_USAGE     => $stats['bytes'],\n            Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse MongoCollection;\nuse MongoDB\\Collection;\nuse const E_USER_DEPRECATED;\nuse function trigger_error;\n\n/**\n * MongoDB cache provider.\n */\nclass MongoDBCache extends CacheProvider\n{\n    /**\n     * The data field will store the serialized PHP value.\n     */\n    public const DATA_FIELD = 'd';\n\n    /**\n     * The expiration field will store a MongoDate value indicating when the\n     * cache entry should expire.\n     *\n     * With MongoDB 2.2+, entries can be automatically deleted by MongoDB by\n     * indexing this field with the \"expireAfterSeconds\" option equal to zero.\n     * This will direct MongoDB to regularly query for and delete any entries\n     * whose date is older than the current time. Entries without a date value\n     * in this field will be ignored.\n     *\n     * The cache provider will also check dates on its own, in case expired\n     * entries are fetched before MongoDB's TTLMonitor pass can expire them.\n     *\n     * @see http://docs.mongodb.org/manual/tutorial/expire-data/\n     */\n    public const EXPIRATION_FIELD = 'e';\n\n    /** @var CacheProvider */\n    private $provider;\n\n    /**\n     * This provider will default to the write concern and read preference\n     * options set on the collection instance (or inherited from MongoDB or\n     * MongoClient). Using an unacknowledged write concern (< 1) may make the\n     * return values of delete() and save() unreliable. Reading from secondaries\n     * may make contain() and fetch() unreliable.\n     *\n     * @see http://www.php.net/manual/en/mongo.readpreferences.php\n     * @see http://www.php.net/manual/en/mongo.writeconcerns.php\n     * @param MongoCollection|Collection $collection\n     */\n    public function __construct($collection)\n    {\n        if ($collection instanceof MongoCollection) {\n            @trigger_error('Using a MongoCollection instance for creating a cache adapter is deprecated and will be removed in 2.0', E_USER_DEPRECATED);\n            $this->provider = new LegacyMongoDBCache($collection);\n        } elseif ($collection instanceof Collection) {\n            $this->provider = new ExtMongoDBCache($collection);\n        } else {\n            throw new \\InvalidArgumentException('Invalid collection given - expected a MongoCollection or MongoDB\\Collection instance');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->provider->doFetch($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return $this->provider->doContains($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return $this->provider->doSave($id, $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return $this->provider->doDelete($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->provider->doFlush();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        return $this->provider->doGetStats();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache drivers that allows to put many items at once.\n *\n * @link   www.doctrine-project.org\n * @deprecated\n */\ninterface MultiDeleteCache\n{\n    /**\n     * Deletes several cache entries.\n     *\n     * @param string[] $keys Array of keys to delete from cache\n     *\n     * @return bool TRUE if the operation was successful, FALSE if it wasn't.\n     */\n    public function deleteMultiple(array $keys);\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache drivers that allows to get many items at once.\n *\n * @link   www.doctrine-project.org\n * @deprecated\n */\ninterface MultiGetCache\n{\n    /**\n     * Returns an associative array of values for keys is found in cache.\n     *\n     * @param string[] $keys Array of keys to retrieve from cache\n     * @return mixed[] Array of retrieved values, indexed by the specified keys.\n     *                 Values that couldn't be retrieved are not contained in this array.\n     */\n    public function fetchMultiple(array $keys);\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache drivers that supports multiple items manipulation.\n *\n * @link   www.doctrine-project.org\n */\ninterface MultiOperationCache extends MultiGetCache, MultiDeleteCache, MultiPutCache\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Interface for cache drivers that allows to put many items at once.\n *\n * @link   www.doctrine-project.org\n * @deprecated\n */\ninterface MultiPutCache\n{\n    /**\n     * Returns a boolean value indicating if the operation succeeded.\n     *\n     * @param array $keysAndValues Array of keys and values to save in cache\n     * @param int   $lifetime      The lifetime. If != 0, sets a specific lifetime for these\n     *                             cache entries (0 => infinite lifeTime).\n     *\n     * @return bool TRUE if the operation was successful, FALSE if it wasn't.\n     */\n    public function saveMultiple(array $keysAndValues, $lifetime = 0);\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function is_object;\nuse function method_exists;\nuse function restore_error_handler;\nuse function serialize;\nuse function set_error_handler;\nuse function sprintf;\nuse function time;\nuse function var_export;\n\n/**\n * Php file cache driver.\n */\nclass PhpFileCache extends FileCache\n{\n    public const EXTENSION = '.doctrinecache.php';\n\n    /**\n     * @var callable\n     *\n     * This is cached in a local static variable to avoid instantiating a closure each time we need an empty handler\n     */\n    private static $emptyErrorHandler;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)\n    {\n        parent::__construct($directory, $extension, $umask);\n\n        self::$emptyErrorHandler = function () {\n        };\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $value = $this->includeFileForId($id);\n\n        if ($value === null) {\n            return false;\n        }\n\n        if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) {\n            return false;\n        }\n\n        return $value['data'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $value = $this->includeFileForId($id);\n\n        if ($value === null) {\n            return false;\n        }\n\n        return $value['lifetime'] === 0 || $value['lifetime'] > time();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 0) {\n            $lifeTime = time() + $lifeTime;\n        }\n\n        $filename = $this->getFilename($id);\n\n        $value = [\n            'lifetime'  => $lifeTime,\n            'data'      => $data,\n        ];\n\n        if (is_object($data) && method_exists($data, '__set_state')) {\n            $value = var_export($value, true);\n            $code  = sprintf('<?php return %s;', $value);\n        } else {\n            $value = var_export(serialize($value), true);\n            $code  = sprintf('<?php return unserialize(%s);', $value);\n        }\n\n        return $this->writeFile($filename, $code);\n    }\n\n    /**\n     * @return array|null\n     */\n    private function includeFileForId(string $id) : ?array\n    {\n        $fileName = $this->getFilename($id);\n\n        // note: error suppression is still faster than `file_exists`, `is_file` and `is_readable`\n        set_error_handler(self::$emptyErrorHandler);\n\n        $value = include $fileName;\n\n        restore_error_handler();\n\n        if (! isset($value['lifetime'])) {\n            return null;\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Predis\\ClientInterface;\nuse function array_combine;\nuse function array_filter;\nuse function array_map;\nuse function call_user_func_array;\nuse function serialize;\nuse function unserialize;\n\n/**\n * Predis cache provider.\n */\nclass PredisCache extends CacheProvider\n{\n    /** @var ClientInterface */\n    private $client;\n\n    public function __construct(ClientInterface $client)\n    {\n        $this->client = $client;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $result = $this->client->get($id);\n        if ($result === null) {\n            return false;\n        }\n\n        return unserialize($result);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        $fetchedItems = call_user_func_array([$this->client, 'mget'], $keys);\n\n        return array_map('unserialize', array_filter(array_combine($keys, $fetchedItems)));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        if ($lifetime) {\n            $success = true;\n\n            // Keys have lifetime, use SETEX for each of them\n            foreach ($keysAndValues as $key => $value) {\n                $response = (string) $this->client->setex($key, $lifetime, serialize($value));\n\n                if ($response == 'OK') {\n                    continue;\n                }\n\n                $success = false;\n            }\n\n            return $success;\n        }\n\n        // No lifetime, use MSET\n        $response = $this->client->mset(array_map(function ($value) {\n            return serialize($value);\n        }, $keysAndValues));\n\n        return (string) $response == 'OK';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return (bool) $this->client->exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        $data = serialize($data);\n        if ($lifeTime > 0) {\n            $response = $this->client->setex($id, $lifeTime, $data);\n        } else {\n            $response = $this->client->set($id, $data);\n        }\n\n        return $response === true || $response == 'OK';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return $this->client->del($id) >= 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        return $this->client->del($keys) >= 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        $response = $this->client->flushdb();\n\n        return $response === true || $response == 'OK';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $info = $this->client->info();\n\n        return [\n            Cache::STATS_HITS              => $info['Stats']['keyspace_hits'],\n            Cache::STATS_MISSES            => $info['Stats']['keyspace_misses'],\n            Cache::STATS_UPTIME            => $info['Server']['uptime_in_seconds'],\n            Cache::STATS_MEMORY_USAGE      => $info['Memory']['used_memory'],\n            Cache::STATS_MEMORY_AVAILABLE  => false,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Redis;\nuse function array_combine;\nuse function defined;\nuse function extension_loaded;\nuse function is_bool;\n\n/**\n * Redis cache provider.\n *\n * @link   www.doctrine-project.org\n */\nclass RedisCache extends CacheProvider\n{\n    /** @var Redis|null */\n    private $redis;\n\n    /**\n     * Sets the redis instance to use.\n     *\n     * @return void\n     */\n    public function setRedis(Redis $redis)\n    {\n        $redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue());\n        $this->redis = $redis;\n    }\n\n    /**\n     * Gets the redis instance used by the cache.\n     *\n     * @return Redis|null\n     */\n    public function getRedis()\n    {\n        return $this->redis;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->redis->get($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        $fetchedItems = array_combine($keys, $this->redis->mget($keys));\n\n        // Redis mget returns false for keys that do not exist. So we need to filter those out unless it's the real data.\n        $foundItems = [];\n\n        foreach ($fetchedItems as $key => $value) {\n            if ($value === false && ! $this->redis->exists($key)) {\n                continue;\n            }\n\n            $foundItems[$key] = $value;\n        }\n\n        return $foundItems;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        if ($lifetime) {\n            $success = true;\n\n            // Keys have lifetime, use SETEX for each of them\n            foreach ($keysAndValues as $key => $value) {\n                if ($this->redis->setex($key, $lifetime, $value)) {\n                    continue;\n                }\n\n                $success = false;\n            }\n\n            return $success;\n        }\n\n        // No lifetime, use MSET\n        return (bool) $this->redis->mset($keysAndValues);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        $exists = $this->redis->exists($id);\n\n        if (is_bool($exists)) {\n            return $exists;\n        }\n\n        return $exists > 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        if ($lifeTime > 0) {\n            return $this->redis->setex($id, $lifeTime, $data);\n        }\n\n        return $this->redis->set($id, $data);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return $this->redis->delete($id) >= 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        return $this->redis->delete($keys) >= 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->redis->flushDB();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $info = $this->redis->info();\n        return [\n            Cache::STATS_HITS   => $info['keyspace_hits'],\n            Cache::STATS_MISSES => $info['keyspace_misses'],\n            Cache::STATS_UPTIME => $info['uptime_in_seconds'],\n            Cache::STATS_MEMORY_USAGE      => $info['used_memory'],\n            Cache::STATS_MEMORY_AVAILABLE  => false,\n        ];\n    }\n\n    /**\n     * Returns the serializer constant to use. If Redis is compiled with\n     * igbinary support, that is used. Otherwise the default PHP serializer is\n     * used.\n     *\n     * @return int One of the Redis::SERIALIZER_* constants\n     */\n    protected function getSerializerValue()\n    {\n        if (defined('Redis::SERIALIZER_IGBINARY') && extension_loaded('igbinary')) {\n            return Redis::SERIALIZER_IGBINARY;\n        }\n\n        return Redis::SERIALIZER_PHP;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse Riak\\Bucket;\nuse Riak\\Exception;\nuse Riak\\Input;\nuse Riak\\Object;\nuse function count;\nuse function serialize;\nuse function time;\nuse function unserialize;\n\n/**\n * Riak cache provider.\n *\n * @link   www.doctrine-project.org\n *\n * @deprecated\n */\nclass RiakCache extends CacheProvider\n{\n    public const EXPIRES_HEADER = 'X-Riak-Meta-Expires';\n\n    /** @var Bucket */\n    private $bucket;\n\n    /**\n     * Sets the riak bucket instance to use.\n     */\n    public function __construct(Bucket $bucket)\n    {\n        $this->bucket = $bucket;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        try {\n            $response = $this->bucket->get($id);\n\n            // No objects found\n            if (! $response->hasObject()) {\n                return false;\n            }\n\n            // Check for attempted siblings\n            $object = ($response->hasSiblings())\n                ? $this->resolveConflict($id, $response->getVClock(), $response->getObjectList())\n                : $response->getFirstObject();\n\n            // Check for expired object\n            if ($this->isExpired($object)) {\n                $this->bucket->delete($object);\n\n                return false;\n            }\n\n            return unserialize($object->getContent());\n        } catch (Exception\\RiakException $e) {\n            // Covers:\n            // - Riak\\ConnectionException\n            // - Riak\\CommunicationException\n            // - Riak\\UnexpectedResponseException\n            // - Riak\\NotFoundException\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        try {\n            // We only need the HEAD, not the entire object\n            $input = new Input\\GetInput();\n\n            $input->setReturnHead(true);\n\n            $response = $this->bucket->get($id, $input);\n\n            // No objects found\n            if (! $response->hasObject()) {\n                return false;\n            }\n\n            $object = $response->getFirstObject();\n\n            // Check for expired object\n            if ($this->isExpired($object)) {\n                $this->bucket->delete($object);\n\n                return false;\n            }\n\n            return true;\n        } catch (Exception\\RiakException $e) {\n            // Do nothing\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        try {\n            $object = new Object($id);\n\n            $object->setContent(serialize($data));\n\n            if ($lifeTime > 0) {\n                $object->addMetadata(self::EXPIRES_HEADER, (string) (time() + $lifeTime));\n            }\n\n            $this->bucket->put($object);\n\n            return true;\n        } catch (Exception\\RiakException $e) {\n            // Do nothing\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        try {\n            $this->bucket->delete($id);\n\n            return true;\n        } catch (Exception\\BadArgumentsException $e) {\n            // Key did not exist on cluster already\n        } catch (Exception\\RiakException $e) {\n            // Covers:\n            // - Riak\\Exception\\ConnectionException\n            // - Riak\\Exception\\CommunicationException\n            // - Riak\\Exception\\UnexpectedResponseException\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        try {\n            $keyList = $this->bucket->getKeyList();\n\n            foreach ($keyList as $key) {\n                $this->bucket->delete($key);\n            }\n\n            return true;\n        } catch (Exception\\RiakException $e) {\n            // Do nothing\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        // Only exposed through HTTP stats API, not Protocol Buffers API\n        return null;\n    }\n\n    /**\n     * Check if a given Riak Object have expired.\n     */\n    private function isExpired(Object $object) : bool\n    {\n        $metadataMap = $object->getMetadataMap();\n\n        return isset($metadataMap[self::EXPIRES_HEADER])\n            && $metadataMap[self::EXPIRES_HEADER] < time();\n    }\n\n    /**\n     * On-read conflict resolution. Applied approach here is last write wins.\n     * Specific needs may override this method to apply alternate conflict resolutions.\n     *\n     * {@internal Riak does not attempt to resolve a write conflict, and store\n     * it as sibling of conflicted one. By following this approach, it is up to\n     * the next read to resolve the conflict. When this happens, your fetched\n     * object will have a list of siblings (read as a list of objects).\n     * In our specific case, we do not care about the intermediate ones since\n     * they are all the same read from storage, and we do apply a last sibling\n     * (last write) wins logic.\n     * If by any means our resolution generates another conflict, it'll up to\n     * next read to properly solve it.}\n     *\n     * @param string $id\n     * @param string $vClock\n     * @param array  $objectList\n     *\n     * @return Object\n     */\n    protected function resolveConflict($id, $vClock, array $objectList)\n    {\n        // Our approach here is last-write wins\n        $winner = $objectList[count($objectList) - 1];\n\n        $putInput = new Input\\PutInput();\n        $putInput->setVClock($vClock);\n\n        $mergedObject = new Object($id);\n        $mergedObject->setContent($winner->getContent());\n\n        $this->bucket->put($mergedObject, $putInput);\n\n        return $mergedObject;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse SQLite3;\nuse SQLite3Result;\nuse const SQLITE3_ASSOC;\nuse const SQLITE3_BLOB;\nuse const SQLITE3_TEXT;\nuse function array_search;\nuse function implode;\nuse function serialize;\nuse function sprintf;\nuse function time;\nuse function unserialize;\n\n/**\n * SQLite3 cache provider.\n */\nclass SQLite3Cache extends CacheProvider\n{\n    /**\n     * The ID field will store the cache key.\n     */\n    public const ID_FIELD = 'k';\n\n    /**\n     * The data field will store the serialized PHP value.\n     */\n    public const DATA_FIELD = 'd';\n\n    /**\n     * The expiration field will store a date value indicating when the\n     * cache entry should expire.\n     */\n    public const EXPIRATION_FIELD = 'e';\n\n    /** @var SQLite3 */\n    private $sqlite;\n\n    /** @var string */\n    private $table;\n\n    /**\n     * Calling the constructor will ensure that the database file and table\n     * exist and will create both if they don't.\n     *\n     * @param string $table\n     */\n    public function __construct(SQLite3 $sqlite, $table)\n    {\n        $this->sqlite = $sqlite;\n        $this->table  = (string) $table;\n\n        $this->ensureTableExists();\n    }\n\n    private function ensureTableExists() : void\n    {\n        $this->sqlite->exec(\n            sprintf(\n                'CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY NOT NULL, %s BLOB, %s INTEGER)',\n                $this->table,\n                static::ID_FIELD,\n                static::DATA_FIELD,\n                static::EXPIRATION_FIELD\n            )\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        $item = $this->findById($id);\n\n        if (! $item) {\n            return false;\n        }\n\n        return unserialize($item[self::DATA_FIELD]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return $this->findById($id, false) !== null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        $statement = $this->sqlite->prepare(sprintf(\n            'INSERT OR REPLACE INTO %s (%s) VALUES (:id, :data, :expire)',\n            $this->table,\n            implode(',', $this->getFields())\n        ));\n\n        $statement->bindValue(':id', $id);\n        $statement->bindValue(':data', serialize($data), SQLITE3_BLOB);\n        $statement->bindValue(':expire', $lifeTime > 0 ? time() + $lifeTime : null);\n\n        return $statement->execute() instanceof SQLite3Result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        list($idField) = $this->getFields();\n\n        $statement = $this->sqlite->prepare(sprintf(\n            'DELETE FROM %s WHERE %s = :id',\n            $this->table,\n            $idField\n        ));\n\n        $statement->bindValue(':id', $id);\n\n        return $statement->execute() instanceof SQLite3Result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return $this->sqlite->exec(sprintf('DELETE FROM %s', $this->table));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        // no-op.\n    }\n\n    /**\n     * Find a single row by ID.\n     *\n     * @param mixed $id\n     *\n     * @return array|null\n     */\n    private function findById($id, bool $includeData = true) : ?array\n    {\n        list($idField) = $fields = $this->getFields();\n\n        if (! $includeData) {\n            $key = array_search(static::DATA_FIELD, $fields);\n            unset($fields[$key]);\n        }\n\n        $statement = $this->sqlite->prepare(sprintf(\n            'SELECT %s FROM %s WHERE %s = :id LIMIT 1',\n            implode(',', $fields),\n            $this->table,\n            $idField\n        ));\n\n        $statement->bindValue(':id', $id, SQLITE3_TEXT);\n\n        $item = $statement->execute()->fetchArray(SQLITE3_ASSOC);\n\n        if ($item === false) {\n            return null;\n        }\n\n        if ($this->isExpired($item)) {\n            $this->doDelete($id);\n\n            return null;\n        }\n\n        return $item;\n    }\n\n    /**\n     * Gets an array of the fields in our table.\n     *\n     * @return array\n     */\n    private function getFields() : array\n    {\n        return [static::ID_FIELD, static::DATA_FIELD, static::EXPIRATION_FIELD];\n    }\n\n    /**\n     * Check if the item is expired.\n     *\n     * @param array $item\n     */\n    private function isExpired(array $item) : bool\n    {\n        return isset($item[static::EXPIRATION_FIELD]) &&\n            $item[self::EXPIRATION_FIELD] !== null &&\n            $item[self::EXPIRATION_FIELD] < time();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nclass Version\n{\n    public const VERSION = '1.8.0';\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\n/**\n * Void cache driver. The cache could be of use in tests where you don`t need to cache anything.\n *\n * @link   www.doctrine-project.org\n */\nclass VoidCache extends CacheProvider\n{\n    /**\n     * {@inheritDoc}\n     */\n    protected function doFetch($id)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doContains($id)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doDelete($id)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doFlush()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doGetStats()\n    {\n        return;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function count;\nuse function is_array;\nuse function wincache_ucache_clear;\nuse function wincache_ucache_delete;\nuse function wincache_ucache_exists;\nuse function wincache_ucache_get;\nuse function wincache_ucache_info;\nuse function wincache_ucache_meminfo;\nuse function wincache_ucache_set;\n\n/**\n * WinCache cache provider.\n *\n * @link   www.doctrine-project.org\n */\nclass WinCacheCache extends CacheProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return wincache_ucache_get($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return wincache_ucache_exists($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return wincache_ucache_set($id, $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return wincache_ucache_delete($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        return wincache_ucache_clear();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetchMultiple(array $keys)\n    {\n        return wincache_ucache_get($keys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)\n    {\n        $result = wincache_ucache_set($keysAndValues, null, $lifetime);\n\n        return empty($result);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDeleteMultiple(array $keys)\n    {\n        $result = wincache_ucache_delete($keys);\n\n        return is_array($result) && count($result) !== count($keys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $info    = wincache_ucache_info();\n        $meminfo = wincache_ucache_meminfo();\n\n        return [\n            Cache::STATS_HITS             => $info['total_hit_count'],\n            Cache::STATS_MISSES           => $info['total_miss_count'],\n            Cache::STATS_UPTIME           => $info['total_cache_uptime'],\n            Cache::STATS_MEMORY_USAGE     => $meminfo['memory_total'],\n            Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse const XC_TYPE_VAR;\nuse function ini_get;\nuse function serialize;\nuse function unserialize;\nuse function xcache_clear_cache;\nuse function xcache_get;\nuse function xcache_info;\nuse function xcache_isset;\nuse function xcache_set;\nuse function xcache_unset;\n\n/**\n * Xcache cache driver.\n *\n * @link   www.doctrine-project.org\n *\n * @deprecated\n */\nclass XcacheCache extends CacheProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return $this->doContains($id) ? unserialize(xcache_get($id)) : false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return xcache_isset($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return xcache_set($id, serialize($data), (int) $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return xcache_unset($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        $this->checkAuthorization();\n\n        xcache_clear_cache(XC_TYPE_VAR);\n\n        return true;\n    }\n\n    /**\n     * Checks that xcache.admin.enable_auth is Off.\n     *\n     * @return void\n     *\n     * @throws \\BadMethodCallException When xcache.admin.enable_auth is On.\n     */\n    protected function checkAuthorization()\n    {\n        if (ini_get('xcache.admin.enable_auth')) {\n            throw new \\BadMethodCallException(\n                'To use all features of \\Doctrine\\Common\\Cache\\XcacheCache, '\n                . 'you must set \"xcache.admin.enable_auth\" to \"Off\" in your php.ini.'\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        $this->checkAuthorization();\n\n        $info = xcache_info(XC_TYPE_VAR, 0);\n        return [\n            Cache::STATS_HITS   => $info['hits'],\n            Cache::STATS_MISSES => $info['misses'],\n            Cache::STATS_UPTIME => null,\n            Cache::STATS_MEMORY_USAGE      => $info['size'],\n            Cache::STATS_MEMORY_AVAILABLE  => $info['avail'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php",
    "content": "<?php\n\nnamespace Doctrine\\Common\\Cache;\n\nuse function zend_shm_cache_clear;\nuse function zend_shm_cache_delete;\nuse function zend_shm_cache_fetch;\nuse function zend_shm_cache_store;\n\n/**\n * Zend Data Cache cache driver.\n *\n * @link   www.doctrine-project.org\n */\nclass ZendDataCache extends CacheProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFetch($id)\n    {\n        return zend_shm_cache_fetch($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doContains($id)\n    {\n        return zend_shm_cache_fetch($id) !== false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doSave($id, $data, $lifeTime = 0)\n    {\n        return zend_shm_cache_store($id, $data, $lifeTime);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doDelete($id)\n    {\n        return zend_shm_cache_delete($id);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doFlush()\n    {\n        $namespace = $this->getNamespace();\n        if (empty($namespace)) {\n            return zend_shm_cache_clear();\n        }\n        return zend_shm_cache_clear($namespace);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doGetStats()\n    {\n        return null;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/.doctrine-project.json",
    "content": "{\n    \"active\": true,\n    \"name\": \"Database Abstraction Layer\",\n    \"shortName\": \"DBAL\",\n    \"slug\": \"dbal\",\n    \"docsSlug\": \"doctrine-dbal\",\n    \"versions\": [\n        {\n            \"name\": \"3.0\",\n            \"branchName\": \"develop\",\n            \"slug\": \"latest\",\n            \"upcoming\": true\n        },\n        {\n            \"name\": \"2.9\",\n            \"branchName\": \"master\",\n            \"slug\": \"2.9\",\n            \"upcoming\": true\n        },\n        {\n            \"name\": \"2.8\",\n            \"branchName\": \"2.8\",\n            \"slug\": \"2.8\",\n            \"current\": true,\n            \"aliases\": [\n                \"current\",\n                \"stable\"\n            ]\n        },\n        {\n            \"name\": \"2.7\",\n            \"branchName\": \"2.7\",\n            \"slug\": \"2.7\",\n            \"maintained\": false\n        },\n        {\n            \"name\": \"2.6\",\n            \"branchName\": \"2.6\",\n            \"slug\": \"2.6\",\n            \"maintained\": false\n        },\n        {\n            \"name\": \"2.5\",\n            \"branchName\": \"2.5\",\n            \"slug\": \"2.5\",\n            \"maintained\": false\n        }\n    ]\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/LICENSE",
    "content": "Copyright (c) 2006-2018 Doctrine Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/doctrine/dbal/README.md",
    "content": "# Doctrine DBAL\n\n| [Master][Master] | [2.8][2.8] | [Develop][develop] |\n|:----------------:|:----------:|:------------------:|\n| [![Build status][Master image]][Master] | [![Build status][2.8 image]][2.8] | [![Build status][develop image]][develop] |\n| [![Build Status][ContinuousPHP image]][ContinuousPHP] | [![Build Status][ContinuousPHP 2.8 image]][ContinuousPHP] | [![Build Status][ContinuousPHP develop image]][ContinuousPHP] |\n| [![Code Coverage][Coverage image]][Scrutinizer Master] | [![Code Coverage][Coverage 2.8 image]][Scrutinizer 2.8] | [![Code Coverage][Coverage develop image]][Scrutinizer develop] |\n| [![Code Quality][Quality image]][Scrutinizer Master] | [![Code Quality][Quality 2.8 image]][Scrutinizer 2.8] | [![Code Quality][Quality develop image]][Scrutinizer develop] |\n| [![AppVeyor][AppVeyor master image]][AppVeyor master] | [![AppVeyor][AppVeyor 2.8 image]][AppVeyor 2.8] | [![AppVeyor][AppVeyor develop image]][AppVeyor develop] |\n\nPowerful database abstraction layer with many features for database schema introspection, schema management and PDO abstraction.\n\n## More resources:\n\n* [Website](http://www.doctrine-project.org/projects/dbal.html)\n* [Documentation](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/)\n* [Issue Tracker](https://github.com/doctrine/dbal/issues)\n\n\n  [Master image]: https://img.shields.io/travis/doctrine/dbal/master.svg?style=flat-square\n  [Coverage image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/master.svg?style=flat-square\n  [Quality image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/master.svg?style=flat-square\n  [ContinuousPHP image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/master.svg?style=flat-square\n  [Master]: https://travis-ci.org/doctrine/dbal\n  [Scrutinizer Master]: https://scrutinizer-ci.com/g/doctrine/dbal/\n  [AppVeyor master]: https://ci.appveyor.com/project/doctrine/dbal/branch/master\n  [AppVeyor master image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/master?svg=true\n  [ContinuousPHP]: https://continuousphp.com/git-hub/doctrine/dbal\n  [2.8 image]: https://img.shields.io/travis/doctrine/dbal/2.8.svg?style=flat-square\n  [Coverage 2.8 image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/2.8.svg?style=flat-square\n  [Quality 2.8 image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/2.8.svg?style=flat-square\n  [ContinuousPHP 2.8 image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/2.8.svg?style=flat-square\n  [2.8]: https://github.com/doctrine/dbal/tree/2.8\n  [Scrutinizer 2.8]: https://scrutinizer-ci.com/g/doctrine/dbal/?branch=2.8\n  [AppVeyor 2.8]: https://ci.appveyor.com/project/doctrine/dbal/branch/2.8\n  [AppVeyor 2.8 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/2.8?svg=true\n  [develop]: https://github.com/doctrine/dbal/tree/develop\n  [develop image]: https://img.shields.io/travis/doctrine/dbal/develop.svg?style=flat-square\n  [Coverage develop image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/develop.svg?style=flat-square\n  [Quality develop image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/develop.svg?style=flat-square\n  [ContinuousPHP develop image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/develop.svg?style=flat-square\n  [develop]: https://github.com/doctrine/dbal/tree/develop\n  [Scrutinizer develop]: https://scrutinizer-ci.com/g/doctrine/dbal/?branch=develop\n  [AppVeyor develop]: https://ci.appveyor.com/project/doctrine/dbal/branch/develop\n  [AppVeyor develop image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/develop?svg=true\n"
  },
  {
    "path": "vendor/doctrine/dbal/SECURITY.md",
    "content": "Security\n========\n\nThe Doctrine library is operating very close to your database and as such needs\nto handle and make assumptions about SQL injection vulnerabilities.\n\nIt is vital that you understand how Doctrine approaches security, because\nwe cannot protect you from SQL injection.\n\nPlease read the documentation chapter on Security in Doctrine DBAL to\nunderstand the assumptions we make.\n\n- [Latest security.rst page on Github](https://github.com/doctrine/dbal/blob/master/docs/en/reference/security.rst)\n- [Security Page in rendered documentation](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html)\n"
  },
  {
    "path": "vendor/doctrine/dbal/UPGRADE.md",
    "content": "# Upgrade to 2.9\n\n## Deprecated `Statement::fetchColumn()` with an invalid index\n\nCalls to `Statement::fetchColumn()` with an invalid column index currently return `NULL`. In the future, such calls will result in a exception.\n\n## Deprecated `Configuration::getFilterSchemaAssetsExpression()`, `::setFilterSchemaAssetsExpression()` and `AbstractSchemaManager::getFilterSchemaAssetsExpression()`.\n\nRegular expression-based filters are hard to extend by combining together. Instead, you may use callback-based filers via `::getSchemaAssetsFilter()` and `::getSchemaAssetsFilter()`. Callbacks can use regular expressions internally.\n\n## Deprecated `Doctrine\\DBAL\\Types\\Type::getDefaultLength()`\n\nThis method was never used by DBAL internally. It is now deprecated and will be removed in DBAL 3.0.\n\n## Deprecated `Doctrine\\DBAL\\Types\\Type::__toString()`\n\nRelying on string representation is discouraged and will be removed in DBAL 3.0.\n\n## Deprecated `NULL` value of `$offset` in LIMIT queries\n\nThe `NULL` value of the `$offset` argument in `AbstractPlatform::(do)?ModifyLimitQuery()` methods is deprecated. If explicitly used in the method call, the absence of the offset should be indicated with a `0`.\n\n## Deprecated dbal:import CLI command\n\nThe `dbal:import` CLI command has been deprecated since it only works with PDO-based drivers by relying on a non-documented behavior of the extension, and it's impossible to make it work with other drivers.\nPlease use other database client applications for import, e.g.:\n\n * For MySQL and MariaDB: `mysql [dbname] < data.sql`.\n * For PostgreSQL: `psql [dbname] < data.sql`.\n * For SQLite: `sqlite3 /path/to/file.db < data.sql`.\n\n# Upgrade to 2.8\n\n## Deprecated usage of DB-generated UUIDs\n\nThe format of DB-generated UUIDs is inconsistent across supported platforms and therefore is not portable. Some of the platforms produce UUIDv1, some produce UUIDv4, some produce the values which are not even UUID.\n\nUnless UUIDs are used in stored procedures which DBAL doesn't support, there's no real benefit of DB-generated UUIDs comparing to the application-generated ones.\n\nUse a PHP library (e.g. [ramsey/uuid](https://packagist.org/packages/ramsey/uuid)) to generate UUIDs on the application side.\n\n## Deprecated usage of binary fields whose length exceeds the platform maximum\n\n- The usage of binary fields whose length exceeds the maximum field size on a given platform is deprecated.\n  Use binary fields of a size which fits all target platforms, or use blob explicitly instead.\n\n## Removed dependency on doctrine/common\n\nThe dependency on doctrine/common package has been removed.\nDBAL now depends on doctrine/cache and doctrine/event-manager instead.\nIf you are using any other component from doctrine/common package,\nyou will have to add an explicit dependency to your composer.json.\n\n## Corrected exception thrown by ``Doctrine\\DBAL\\Platforms\\SQLAnywhere16Platform::getAdvancedIndexOptionsSQL()``\n\nThis method now throws SPL ``UnexpectedValueException`` instead of accidentally throwing ``Doctrine\\Common\\Proxy\\Exception\\UnexpectedValueException``.\n\n# Upgrade to 2.7\n\n## Doctrine\\DBAL\\Platforms\\AbstractPlatform::DATE_INTERVAL_UNIT_* constants deprecated\n\n``Doctrine\\DBAL\\Platforms\\AbstractPlatform::DATE_INTERVAL_UNIT_*`` constants were moved into ``Doctrine\\DBAL\\Platforms\\DateIntervalUnit`` class without the ``DATE_INTERVAL_UNIT_`` prefix.\n\n## Doctrine\\DBAL\\Platforms\\AbstractPlatform::TRIM_* constants deprecated\n\n``Doctrine\\DBAL\\Platforms\\AbstractPlatform::TRIM_*`` constants were moved into ``Doctrine\\DBAL\\Platforms\\TrimMode`` class without the ``TRIM_`` prefix.\n\n## Doctrine\\DBAL\\Connection::TRANSACTION_* constants deprecated\n\n``Doctrine\\DBAL\\Connection::TRANSACTION_*`` were moved into ``Doctrine\\DBAL\\TransactionIsolationLevel`` class without the ``TRANSACTION_`` prefix. \n\n## DEPRECATION: direct usage of the PDO APIs in the DBAL API\n\n1. When calling `Doctrine\\DBAL\\Driver\\Statement` methods, instead of `PDO::PARAM_*` constants, `Doctrine\\DBAL\\ParameterType` constants should be used.\n2. When calling `Doctrine\\DBAL\\Driver\\ResultStatement` methods, instead of `PDO::FETCH_*` constants, `Doctrine\\DBAL\\FetchMode` constants should be used.\n3. When configuring `Doctrine\\DBAL\\Portability\\Connection`, instead of `PDO::CASE_*` constants, `Doctrine\\DBAL\\ColumnCase` constants should be used.\n4. Usage of `PDO::PARAM_INPUT_OUTPUT` in `Doctrine\\DBAL\\Driver\\Statement::bindValue()` is deprecated.\n5. Usage of `PDO::FETCH_FUNC` in `Doctrine\\DBAL\\Driver\\ResultStatement::fetch()` is deprecated.\n6. Calls to `\\PDOStatement` methods on a `\\Doctrine\\DBAL\\Driver\\PDOStatement` instance (e.g. `fetchObject()`) are deprecated.\n\n# Upgrade to 2.6\n\n## MINOR BC BREAK: `fetch()` and `fetchAll()` method signatures in `Doctrine\\DBAL\\Driver\\ResultStatement`\n\n1. ``Doctrine\\DBAL\\Driver\\ResultStatement::fetch()`` now has 3 arguments instead of 1, respecting\n``PDO::fetch()`` signature.\n\nBefore:\n\n    Doctrine\\DBAL\\Driver\\ResultStatement::fetch($fetchMode);\n\nAfter:\n\n    Doctrine\\DBAL\\Driver\\ResultStatement::fetch($fetchMode, $cursorOrientation, $cursorOffset);\n\n2. ``Doctrine\\DBAL\\Driver\\ResultStatement::fetchAll()`` now has 3 arguments instead of 1, respecting\n``PDO::fetchAll()`` signature.\n\nBefore:\n\n    Doctrine\\DBAL\\Driver\\ResultStatement::fetchAll($fetchMode);\n\nAfter:\n\n    Doctrine\\DBAL\\Driver\\ResultStatement::fetch($fetchMode, $fetchArgument, $ctorArgs);\n\n\n## MINOR BC BREAK: URL-style DSN with percentage sign in password\n\nURL-style DSNs (e.g. ``mysql://foo@bar:localhost/db``) are now assumed to be percent-encoded\nin order to allow certain special characters in usernames, paswords and database names. If\nyou are using a URL-style DSN and have a username, password or database name containing a\npercentage sign, you need to update your DSN. If your password is, say, ``foo%foo``, it\nshould be encoded as ``foo%25foo``.\n\n# Upgrade to 2.5.1\n\n## MINOR BC BREAK: Doctrine\\DBAL\\Schema\\Table\n\nWhen adding indexes to ``Doctrine\\DBAL\\Schema\\Table`` via ``addIndex()`` or ``addUniqueIndex()``,\nduplicate indexes are not silently ignored/dropped anymore (based on semantics, not naming!).\nDuplicate indexes are considered indexes that pass ``isFullfilledBy()`` or ``overrules()``\nin ``Doctrine\\DBAL\\Schema\\Index``.\nThis is required to make the index renaming feature introduced in 2.5.0 work properly and avoid\nissues in the ORM schema tool / DBAL schema manager which pretends users from updating\ntheir schemas and migrate to DBAL 2.5.*.\nAdditionally it offers more flexibility in declaring indexes for the user and potentially fixes\nrelated issues in the ORM.\nWith this change, the responsibility to decide which index is a \"duplicate\" is completely deferred\nto the user.\nPlease also note that adding foreign key constraints to a table via ``addForeignKeyConstraint()``,\n``addUnnamedForeignKeyConstraint()`` or ``addNamedForeignKeyConstraint()`` now first checks if an\nappropriate index is already present and avoids adding an additional auto-generated one eventually.\n\n# Upgrade to 2.5\n\n## BC BREAK: time type resets date fields to UNIX epoch\n\nWhen mapping `time` type field to PHP's `DateTime` instance all unused date fields are\nreset to UNIX epoch (i.e. 1970-01-01). This might break any logic which relies on comparing\n`DateTime` instances with date fields set to the current date.\n\nUse `!` format prefix (see http://php.net/manual/en/datetime.createfromformat.php) for parsing\ntime strings to prevent having different date fields when comparing user input and `DateTime`\ninstances as mapped by Doctrine.\n\n## BC BREAK: Doctrine\\DBAL\\Schema\\Table\n\nThe methods ``addIndex()`` and ``addUniqueIndex()`` in ``Doctrine\\DBAL\\Schema\\Table``\nhave an additional, optional parameter. If you override these methods, you should\nadd this new parameter to the declaration of your overridden methods.\n\n## BC BREAK: Doctrine\\DBAL\\Connection\n\nThe visibility of the property ``$_platform`` in ``Doctrine\\DBAL\\Connection``\nwas changed from protected to private. If you have subclassed ``Doctrine\\DBAL\\Connection``\nin your application and accessed ``$_platform`` directly, you have to change the code\nportions to use ``getDatabasePlatform()`` instead to retrieve the underlying database\nplatform.\nThe reason for this change is the new automatic platform version detection feature,\nwhich lazily evaluates the appropriate platform class to use for the underlying database\nserver version at runtime.\nPlease also note, that calling ``getDatabasePlatform()`` now needs to establish a connection\nin order to evaluate the appropriate platform class if ``Doctrine\\DBAL\\Connection`` is not\nalready connected. Under the following circumstances, it is not possible anymore to retrieve\nthe platform instance from the connection object without having to do a real connect:\n\n1. ``Doctrine\\DBAL\\Connection`` was instantiated without the ``platform`` connection parameter.\n2. ``Doctrine\\DBAL\\Connection`` was instantiated without the ``serverVersion`` connection parameter.\n3. The underlying driver is \"version aware\" and can provide different platform instances\n   for different versions.\n4. The underlying driver connection is \"version aware\" and can provide the database server\n   version without having to query for it.\n\nIf one of the above conditions is NOT met, there is no need for ``Doctrine\\DBAL\\Connection``\nto do a connect when calling ``getDatabasePlatform()``.\n\n## datetime Type uses date_create() as fallback\n\nBefore 2.5 the DateTime type always required a specific format, defined in\n`$platform->getDateTimeFormatString()`, which could cause quite some troubles\non platforms that had various microtime precision formats. Starting with 2.5\nwhenever the parsing of a date fails with the predefined platform format,\nthe `date_create()` function will be used to parse the date.\n\nThis could cause some troubles when your date format is weird and not parsed\ncorrectly by `date_create`, however since databases are rather strict on dates\nthere should be no problem.\n\n## Support for pdo_ibm driver removed\n\nThe ``pdo_ibm`` driver is buggy and does not work well with Doctrine. Therefore it will no\nlonger be supported and has been removed from the ``Doctrine\\DBAL\\DriverManager`` drivers\nmap. It is highly encouraged to to use `ibm_db2` driver instead if you want to connect\nto an IBM DB2 database as it is much more stable and secure.\n\nIf for some reason you have to utilize the ``pdo_ibm`` driver you can still use the `driverClass`\nconnection parameter to explicitly specify the ``Doctrine\\DBAL\\Driver\\PDOIbm\\Driver`` class.\nHowever be aware that you are doing this at your own risk and it will not be guaranteed that\nDoctrine will work as expected.\n\n# Upgrade to 2.4\n\n## Doctrine\\DBAL\\Schema\\Constraint\n\nIf you have custom classes that implement the constraint interface, you have to implement\nan additional method ``getQuotedColumns`` now. This method is used to build proper constraint\nSQL for columns that need to be quoted, like keywords reserved by the specific platform used.\nThe method has to return the same values as ``getColumns`` only that those column names that\nneed quotation have to be returned quoted for the given platform.\n\n# Upgrade to 2.3\n\n## Oracle Session Init now sets Numeric Character\n\nBefore 2.3 the Oracle Session Init did not care about the numeric character of the Session.\nThis could lead to problems on non english locale systems that required a comma as a floating\npoint seperator in Oracle. Since 2.3, using the Oracle Session Init on connection start the\nclient session will be altered to set the numeric character to \".,\":\n\n    ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'\n\nSee [DBAL-345](http://www.doctrine-project.org/jira/browse/DBAL-345) for more details.\n\n## Doctrine\\DBAL\\Connection and Doctrine\\DBAL\\Statement\n\nThe query related methods including but not limited to executeQuery, exec, query, and executeUpdate\nnow wrap the driver exceptions such as PDOException with DBALException to add more debugging\ninformation such as the executed SQL statement, and any bound parameters.\n\nIf you want to retrieve the driver specific exception, you can retrieve it by calling the\n``getPrevious()`` method on DBALException.\n\nBefore:\n\n    catch(\\PDOException $ex) {\n        // ...\n    }\n\nAfter:\n\n    catch(\\Doctrine\\DBAL\\DBALException $ex) {\n        $pdoException = $ex->getPrevious();\n        // ...\n    }\n\n## Doctrine\\DBAL\\Connection#setCharsetSQL() removed\n\nThis method only worked on MySQL and it is considered unsafe on MySQL to use SET NAMES UTF-8 instead\nof setting the charset directly on connection already. Replace this behavior with the\nconnection charset option:\n\nBefore:\n\n    $conn = DriverManager::getConnection(array(..));\n    $conn->setCharset('UTF8');\n\nAfter:\n\n    $conn = DriverManager::getConnection(array('charset' => 'UTF8', ..));\n\n## Doctrine\\DBAL\\Schema\\Table#renameColumn() removed\n\nDoctrine\\DBAL\\Schema\\Table#renameColumn() was removed, because it drops and recreates\nthe column instead. There is no fix available, because a schema diff\ncannot reliably detect if a column was renamed or one column was created\nand another one dropped.\n\nYou should use explicit SQL ALTER TABLE statements to change columns names.\n\n## Schema Filter paths\n\nThe Filter Schema assets expression is not wrapped in () anymore for the regexp automatically.\n\nBefore:\n\n    $config->setFilterSchemaAssetsExpression('foo');\n\nAfter:\n\n    $config->setFilterSchemaAssetsExpression('(foo)');\n\n## Creating MySQL Tables now defaults to UTF-8\n\nIf you are creating a new MySQL Table through the Doctrine API, charset/collate are\nnow set to 'utf8'/'utf8_unicode_ci' by default. Previously the MySQL server defaults were used.\n\n# Upgrade to 2.2\n\n## Doctrine\\DBAL\\Connection#insert and Doctrine\\DBAL\\Connection#update\n\nBoth methods now accept an optional last parameter $types with binding types of the values passed.\nThis can potentially break child classes that have overwritten one of these methods.\n\n## Doctrine\\DBAL\\Connection#executeQuery\n\nDoctrine\\DBAL\\Connection#executeQuery() got a new last parameter \"QueryCacheProfile $qcp\"\n\n## Doctrine\\DBAL\\Driver\\Statement split\n\nThe Driver statement was split into a ResultStatement and the normal statement extending from it.\nThis separates the configuration and the retrieval API from a statement.\n\n## MsSql Platform/SchemaManager renamed\n\nThe MsSqlPlatform was renamed to SQLServerPlatform, the MsSqlSchemaManager was renamed\nto SQLServerSchemaManager.\n\n## Cleanup SQLServer Platform version mess\n\nDBAL 2.1 and before were actually only compatible to SQL Server 2008, not earlier versions.\nStill other parts of the platform did use old features instead of newly introduced datatypes\nin SQL Server 2005. Starting with DBAL 2.2 you can pick the Doctrine abstraction exactly\nmatching your SQL Server version.\n\nThe PDO SqlSrv driver now uses the new `SQLServer2008Platform` as default platform.\nThis platform uses new features of SQL Server as of version 2008. This also includes a switch\nin the used fields for \"text\" and \"blob\" field types to:\n\n    \"text\" => \"VARCHAR(MAX)\"\n    \"blob\" => \"VARBINARY(MAX)\"\n\nAdditionally `SQLServerPlatform` in DBAL 2.1 and before used \"DATE\", \"TIME\" and \"DATETIME2\" for dates.\nThis types are only available since version 2008 and the introduction of an explicit\nSQLServer 2008 platform makes this dependency explicit.\n\nAn `SQLServer2005Platform` was also introduced to differentiate the features between\nversions 2003, earlier and 2005.\n\nWith this change the `SQLServerPlatform` now throws an exception for using limit queries\nwith an offset, since SQLServer 2003 and lower do not support this feature.\n\nTo use the old SQL Server Platform, because you are using SQL Server 2003 and below use\nthe following configuration code:\n\n    use Doctrine\\DBAL\\DriverManager;\n    use Doctrine\\DBAL\\Platforms\\SQLServerPlatform;\n    use Doctrine\\DBAL\\Platforms\\SQLServer2005Platform;\n\n    // You are using SQL Server 2003 or earlier\n    $conn = DriverManager::getConnection(array(\n        'driver' => 'pdo_sqlsrv',\n        'platform' => new SQLServerPlatform()\n        // .. additional parameters\n    ));\n\n    // You are using SQL Server 2005\n    $conn = DriverManager::getConnection(array(\n        'driver' => 'pdo_sqlsrv',\n        'platform' => new SQLServer2005Platform()\n        // .. additional parameters\n    ));\n\n    // You are using SQL Server 2008\n    $conn = DriverManager::getConnection(array(\n        'driver' => 'pdo_sqlsrv',\n        // 2008 is default platform\n        // .. additional parameters\n    ));\n"
  },
  {
    "path": "vendor/doctrine/dbal/bin/doctrine-dbal",
    "content": "#!/usr/bin/env php\n<?php\n\nrequire __DIR__ . '/doctrine-dbal.php';\n"
  },
  {
    "path": "vendor/doctrine/dbal/bin/doctrine-dbal.php",
    "content": "<?php\n\nuse Doctrine\\DBAL\\Tools\\Console\\ConsoleRunner;\nuse Symfony\\Component\\Console\\Helper\\HelperSet;\n\n$files       = [__DIR__ . '/../vendor/autoload.php', __DIR__ . '/../../../autoload.php'];\n$loader      = null;\n$cwd         = getcwd();\n$directories = [$cwd, $cwd . DIRECTORY_SEPARATOR . 'config'];\n$configFile  = null;\n\nforeach ($files as $file) {\n    if (file_exists($file)) {\n        $loader = require $file;\n\n        break;\n    }\n}\n\nif (! $loader) {\n    throw new RuntimeException('vendor/autoload.php could not be found. Did you run `php composer.phar install`?');\n}\n\nforeach ($directories as $directory) {\n    $configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';\n\n    if (file_exists($configFile)) {\n        break;\n    }\n}\n\nif (! file_exists($configFile)) {\n    ConsoleRunner::printCliConfigTemplate();\n\n    exit(1);\n}\n\nif (! is_readable($configFile)) {\n    echo 'Configuration file [' . $configFile . '] does not have read permission.' . PHP_EOL;\n\n    exit(1);\n}\n\n$commands  = [];\n$helperSet = require $configFile;\n\nif (! $helperSet instanceof HelperSet) {\n    foreach ($GLOBALS as $helperSetCandidate) {\n        if ($helperSetCandidate instanceof HelperSet) {\n            $helperSet = $helperSetCandidate;\n\n            break;\n        }\n    }\n}\n\nConsoleRunner::run($helperSet, $commands);\n"
  },
  {
    "path": "vendor/doctrine/dbal/composer.json",
    "content": "{\n    \"name\": \"doctrine/dbal\",\n    \"type\": \"library\",\n    \"description\": \"Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.\",\n    \"keywords\": [\n        \"php\",\n        \"mysql\",\n        \"pgsql\",\n        \"dbal\",\n        \"database\",\n        \"abstraction\",\n        \"persistence\",\n        \"queryobject\"\n    ],\n    \"homepage\": \"https://www.doctrine-project.org/projects/dbal.html\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\"name\": \"Guilherme Blanco\", \"email\": \"guilhermeblanco@gmail.com\"},\n        {\"name\": \"Roman Borschel\", \"email\": \"roman@code-factory.org\"},\n        {\"name\": \"Benjamin Eberlei\", \"email\": \"kontakt@beberlei.de\"},\n        {\"name\": \"Jonathan Wage\", \"email\": \"jonwage@gmail.com\"}\n    ],\n    \"require\": {\n        \"php\": \"^7.1\",\n        \"ext-pdo\": \"*\",\n        \"doctrine/cache\": \"^1.0\",\n        \"doctrine/event-manager\": \"^1.0\"\n    },\n    \"require-dev\": {\n        \"doctrine/coding-standard\": \"^5.0\",\n        \"jetbrains/phpstorm-stubs\": \"^2018.1.2\",\n        \"phpstan/phpstan\": \"^0.10.1\",\n        \"phpunit/phpunit\": \"^7.4\",\n        \"symfony/console\": \"^2.0.5|^3.0|^4.0\",\n        \"symfony/phpunit-bridge\": \"^3.4.5|^4.0.5\"\n    },\n    \"suggest\": {\n        \"symfony/console\": \"For helpful console commands such as SQL execution and import of files.\"\n    },\n    \"bin\": [\"bin/doctrine-dbal\"],\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Doctrine\\\\DBAL\\\\\": \"lib/Doctrine/DBAL\" }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": { \"Doctrine\\\\Tests\\\\\": \"tests/Doctrine/Tests\" }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"2.9.x-dev\",\n            \"dev-develop\": \"3.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Cache;\n\nuse ArrayIterator;\nuse Doctrine\\DBAL\\Driver\\ResultStatement;\nuse Doctrine\\DBAL\\FetchMode;\nuse InvalidArgumentException;\nuse IteratorAggregate;\nuse PDO;\nuse function array_merge;\nuse function array_values;\nuse function count;\nuse function reset;\n\nclass ArrayStatement implements IteratorAggregate, ResultStatement\n{\n    /** @var mixed[] */\n    private $data;\n\n    /** @var int */\n    private $columnCount = 0;\n\n    /** @var int */\n    private $num = 0;\n\n    /** @var int */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * @param mixed[] $data\n     */\n    public function __construct(array $data)\n    {\n        $this->data = $data;\n        if (! count($data)) {\n            return;\n        }\n\n        $this->columnCount = count($data[0]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        unset($this->data);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return $this->columnCount;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        if ($arg2 !== null || $arg3 !== null) {\n            throw new InvalidArgumentException('Caching layer does not support 2nd/3rd argument to setFetchMode()');\n        }\n\n        $this->defaultFetchMode = $fetchMode;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        $data = $this->fetchAll();\n\n        return new ArrayIterator($data);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        if (! isset($this->data[$this->num])) {\n            return false;\n        }\n\n        $row       = $this->data[$this->num++];\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n        if ($fetchMode === FetchMode::ASSOCIATIVE) {\n            return $row;\n        }\n\n        if ($fetchMode === FetchMode::NUMERIC) {\n            return array_values($row);\n        }\n\n        if ($fetchMode === FetchMode::MIXED) {\n            return array_merge($row, array_values($row));\n        }\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            return reset($row);\n        }\n\n        throw new InvalidArgumentException('Invalid fetch-style given for fetching result.');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $rows = [];\n        while ($row = $this->fetch($fetchMode)) {\n            $rows[] = $row;\n        }\n\n        return $rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        // TODO: verify that return false is the correct behavior\n        return $row[$columnIndex] ?? false;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Cache;\n\nuse Doctrine\\DBAL\\DBALException;\n\nclass CacheException extends DBALException\n{\n    /**\n     * @return \\Doctrine\\DBAL\\Cache\\CacheException\n     */\n    public static function noCacheKey()\n    {\n        return new self('No cache key was set.');\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Cache\\CacheException\n     */\n    public static function noResultDriverConfigured()\n    {\n        return new self('Trying to cache a query but no result driver is configured.');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Cache;\n\nuse Doctrine\\Common\\Cache\\Cache;\nuse function hash;\nuse function serialize;\nuse function sha1;\n\n/**\n * Query Cache Profile handles the data relevant for query caching.\n *\n * It is a value object, setter methods return NEW instances.\n */\nclass QueryCacheProfile\n{\n    /** @var Cache|null */\n    private $resultCacheDriver;\n\n    /** @var int */\n    private $lifetime = 0;\n\n    /** @var string|null */\n    private $cacheKey;\n\n    /**\n     * @param int         $lifetime\n     * @param string|null $cacheKey\n     */\n    public function __construct($lifetime = 0, $cacheKey = null, ?Cache $resultCache = null)\n    {\n        $this->lifetime          = $lifetime;\n        $this->cacheKey          = $cacheKey;\n        $this->resultCacheDriver = $resultCache;\n    }\n\n    /**\n     * @return Cache|null\n     */\n    public function getResultCacheDriver()\n    {\n        return $this->resultCacheDriver;\n    }\n\n    /**\n     * @return int\n     */\n    public function getLifetime()\n    {\n        return $this->lifetime;\n    }\n\n    /**\n     * @return string\n     *\n     * @throws CacheException\n     */\n    public function getCacheKey()\n    {\n        if ($this->cacheKey === null) {\n            throw CacheException::noCacheKey();\n        }\n\n        return $this->cacheKey;\n    }\n\n    /**\n     * Generates the real cache key from query, params, types and connection parameters.\n     *\n     * @param string         $query\n     * @param mixed[]        $params\n     * @param int[]|string[] $types\n     * @param mixed[]        $connectionParams\n     *\n     * @return string[]\n     */\n    public function generateCacheKeys($query, $params, $types, array $connectionParams = [])\n    {\n        $realCacheKey = 'query=' . $query .\n            '&params=' . serialize($params) .\n            '&types=' . serialize($types) .\n            '&connectionParams=' . hash('sha256', serialize($connectionParams));\n\n        // should the key be automatically generated using the inputs or is the cache key set?\n        if ($this->cacheKey === null) {\n            $cacheKey = sha1($realCacheKey);\n        } else {\n            $cacheKey = $this->cacheKey;\n        }\n\n        return [$cacheKey, $realCacheKey];\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Cache\\QueryCacheProfile\n     */\n    public function setResultCacheDriver(Cache $cache)\n    {\n        return new QueryCacheProfile($this->lifetime, $this->cacheKey, $cache);\n    }\n\n    /**\n     * @param string|null $cacheKey\n     *\n     * @return \\Doctrine\\DBAL\\Cache\\QueryCacheProfile\n     */\n    public function setCacheKey($cacheKey)\n    {\n        return new QueryCacheProfile($this->lifetime, $cacheKey, $this->resultCacheDriver);\n    }\n\n    /**\n     * @param int $lifetime\n     *\n     * @return \\Doctrine\\DBAL\\Cache\\QueryCacheProfile\n     */\n    public function setLifetime($lifetime)\n    {\n        return new QueryCacheProfile($lifetime, $this->cacheKey, $this->resultCacheDriver);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Cache;\n\nuse ArrayIterator;\nuse Doctrine\\Common\\Cache\\Cache;\nuse Doctrine\\DBAL\\Driver\\ResultStatement;\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\FetchMode;\nuse InvalidArgumentException;\nuse IteratorAggregate;\nuse PDO;\nuse function array_merge;\nuse function array_values;\nuse function reset;\n\n/**\n * Cache statement for SQL results.\n *\n * A result is saved in multiple cache keys, there is the originally specified\n * cache key which is just pointing to result rows by key. The following things\n * have to be ensured:\n *\n * 1. lifetime of the original key has to be longer than that of all the individual rows keys\n * 2. if any one row key is missing the query has to be re-executed.\n *\n * Also you have to realize that the cache will load the whole result into memory at once to ensure 2.\n * This means that the memory usage for cached results might increase by using this feature.\n */\nclass ResultCacheStatement implements IteratorAggregate, ResultStatement\n{\n    /** @var Cache */\n    private $resultCache;\n\n    /** @var string */\n    private $cacheKey;\n\n    /** @var string */\n    private $realKey;\n\n    /** @var int */\n    private $lifetime;\n\n    /** @var Statement */\n    private $statement;\n\n    /**\n     * Did we reach the end of the statement?\n     *\n     * @var bool\n     */\n    private $emptied = false;\n\n    /** @var mixed[] */\n    private $data;\n\n    /** @var int */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * @param string $cacheKey\n     * @param string $realKey\n     * @param int    $lifetime\n     */\n    public function __construct(Statement $stmt, Cache $resultCache, $cacheKey, $realKey, $lifetime)\n    {\n        $this->statement   = $stmt;\n        $this->resultCache = $resultCache;\n        $this->cacheKey    = $cacheKey;\n        $this->realKey     = $realKey;\n        $this->lifetime    = $lifetime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        $this->statement->closeCursor();\n        if (! $this->emptied || $this->data === null) {\n            return true;\n        }\n\n        $data = $this->resultCache->fetch($this->cacheKey);\n        if (! $data) {\n            $data = [];\n        }\n        $data[$this->realKey] = $this->data;\n\n        $this->resultCache->save($this->cacheKey, $data, $this->lifetime);\n        unset($this->data);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return $this->statement->columnCount();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->defaultFetchMode = $fetchMode;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        $data = $this->fetchAll();\n\n        return new ArrayIterator($data);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        if ($this->data === null) {\n            $this->data = [];\n        }\n\n        $row = $this->statement->fetch(FetchMode::ASSOCIATIVE);\n\n        if ($row) {\n            $this->data[] = $row;\n\n            $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n            if ($fetchMode === FetchMode::ASSOCIATIVE) {\n                return $row;\n            }\n\n            if ($fetchMode === FetchMode::NUMERIC) {\n                return array_values($row);\n            }\n\n            if ($fetchMode === FetchMode::MIXED) {\n                return array_merge($row, array_values($row));\n            }\n\n            if ($fetchMode === FetchMode::COLUMN) {\n                return reset($row);\n            }\n\n            throw new InvalidArgumentException('Invalid fetch-style given for caching result.');\n        }\n\n        $this->emptied = true;\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $this->data    = $this->statement->fetchAll($fetchMode, $fetchArgument, $ctorArgs);\n        $this->emptied = true;\n\n        return $this->data;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        // TODO: verify that return false is the correct behavior\n        return $row[$columnIndex] ?? false;\n    }\n\n    /**\n     * Returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement\n     * executed by the corresponding object.\n     *\n     * If the last SQL statement executed by the associated Statement object was a SELECT statement,\n     * some databases may return the number of rows returned by that statement. However,\n     * this behaviour is not guaranteed for all databases and should not be\n     * relied on for portable applications.\n     *\n     * @return int The number of rows.\n     */\n    public function rowCount()\n    {\n        return $this->statement->rowCount();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse PDO;\n\n/**\n * Contains portable column case conversions.\n */\nfinal class ColumnCase\n{\n    /**\n     * Convert column names to upper case.\n     *\n     * @see \\PDO::CASE_UPPER\n     */\n    public const UPPER = PDO::CASE_UPPER;\n\n    /**\n     * Convert column names to lower case.\n     *\n     * @see \\PDO::CASE_LOWER\n     */\n    public const LOWER = PDO::CASE_LOWER;\n\n    /**\n     * This class cannot be instantiated.\n     */\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\Common\\Cache\\Cache;\nuse Doctrine\\DBAL\\Logging\\SQLLogger;\nuse Doctrine\\DBAL\\Schema\\AbstractAsset;\nuse function preg_match;\n\n/**\n * Configuration container for the Doctrine DBAL.\n *\n * @internal When adding a new configuration option just write a getter/setter\n *           pair and add the option to the _attributes array with a proper default value.\n */\nclass Configuration\n{\n    /**\n     * The attributes that are contained in the configuration.\n     * Values are default values.\n     *\n     * @var mixed[]\n     */\n    protected $_attributes = [];\n\n    /**\n     * Sets the SQL logger to use. Defaults to NULL which means SQL logging is disabled.\n     *\n     * @return void\n     */\n    public function setSQLLogger(?SQLLogger $logger = null)\n    {\n        $this->_attributes['sqlLogger'] = $logger;\n    }\n\n    /**\n     * Gets the SQL logger that is used.\n     *\n     * @return SQLLogger|null\n     */\n    public function getSQLLogger()\n    {\n        return $this->_attributes['sqlLogger'] ?? null;\n    }\n\n    /**\n     * Gets the cache driver implementation that is used for query result caching.\n     *\n     * @return Cache|null\n     */\n    public function getResultCacheImpl()\n    {\n        return $this->_attributes['resultCacheImpl'] ?? null;\n    }\n\n    /**\n     * Sets the cache driver implementation that is used for query result caching.\n     *\n     * @return void\n     */\n    public function setResultCacheImpl(Cache $cacheImpl)\n    {\n        $this->_attributes['resultCacheImpl'] = $cacheImpl;\n    }\n\n    /**\n     * Sets the filter schema assets expression.\n     *\n     * Only include tables/sequences matching the filter expression regexp in\n     * schema instances generated for the active connection when calling\n     * {AbstractSchemaManager#createSchema()}.\n     *\n     * @deprecated Use Configuration::setSchemaAssetsFilter() instead\n     *\n     * @param string $filterExpression\n     *\n     * @return void\n     */\n    public function setFilterSchemaAssetsExpression($filterExpression)\n    {\n        $this->_attributes['filterSchemaAssetsExpression'] = $filterExpression;\n        if ($filterExpression) {\n            $this->_attributes['filterSchemaAssetsExpressionCallable'] = $this->buildSchemaAssetsFilterFromExpression($filterExpression);\n        } else {\n            $this->_attributes['filterSchemaAssetsExpressionCallable'] = null;\n        }\n    }\n\n    /**\n     * Returns filter schema assets expression.\n     *\n     * @deprecated Use Configuration::getSchemaAssetsFilter() instead\n     *\n     * @return string|null\n     */\n    public function getFilterSchemaAssetsExpression()\n    {\n        return $this->_attributes['filterSchemaAssetsExpression'] ?? null;\n    }\n\n    /**\n     * @param string $filterExpression\n     */\n    private function buildSchemaAssetsFilterFromExpression($filterExpression) : callable\n    {\n        return static function ($assetName) use ($filterExpression) {\n            if ($assetName instanceof AbstractAsset) {\n                $assetName = $assetName->getName();\n            }\n            return preg_match($filterExpression, $assetName);\n        };\n    }\n\n    /**\n     * Sets the callable to use to filter schema assets.\n     */\n    public function setSchemaAssetsFilter(?callable $callable = null) : ?callable\n    {\n        $this->_attributes['filterSchemaAssetsExpression']                = null;\n        return $this->_attributes['filterSchemaAssetsExpressionCallable'] = $callable;\n    }\n\n    /**\n     * Returns the callable to use to filter schema assets.\n     */\n    public function getSchemaAssetsFilter() : ?callable\n    {\n        return $this->_attributes['filterSchemaAssetsExpressionCallable'] ?? null;\n    }\n\n    /**\n     * Sets the default auto-commit mode for connections.\n     *\n     * If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual\n     * transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either\n     * the method commit or the method rollback. By default, new connections are in auto-commit mode.\n     *\n     * @see   getAutoCommit\n     *\n     * @param bool $autoCommit True to enable auto-commit mode; false to disable it.\n     */\n    public function setAutoCommit($autoCommit)\n    {\n        $this->_attributes['autoCommit'] = (bool) $autoCommit;\n    }\n\n    /**\n     * Returns the default auto-commit mode for connections.\n     *\n     * @see    setAutoCommit\n     *\n     * @return bool True if auto-commit mode is enabled by default for connections, false otherwise.\n     */\n    public function getAutoCommit()\n    {\n        return $this->_attributes['autoCommit'] ?? true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Closure;\nuse Doctrine\\Common\\EventManager;\nuse Doctrine\\DBAL\\Cache\\ArrayStatement;\nuse Doctrine\\DBAL\\Cache\\CacheException;\nuse Doctrine\\DBAL\\Cache\\QueryCacheProfile;\nuse Doctrine\\DBAL\\Cache\\ResultCacheStatement;\nuse Doctrine\\DBAL\\Driver\\Connection as DriverConnection;\nuse Doctrine\\DBAL\\Driver\\PingableConnection;\nuse Doctrine\\DBAL\\Driver\\ResultStatement;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\Driver\\Statement as DriverStatement;\nuse Doctrine\\DBAL\\Exception\\InvalidArgumentException;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder;\nuse Doctrine\\DBAL\\Query\\QueryBuilder;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager;\nuse Doctrine\\DBAL\\Types\\Type;\nuse Exception;\nuse Throwable;\nuse function array_key_exists;\nuse function array_merge;\nuse function assert;\nuse function func_get_args;\nuse function implode;\nuse function is_int;\nuse function is_string;\nuse function key;\n\n/**\n * A wrapper around a Doctrine\\DBAL\\Driver\\Connection that adds features like\n * events, transaction isolation levels, configuration, emulated transaction nesting,\n * lazy connecting and more.\n */\nclass Connection implements DriverConnection\n{\n    /**\n     * Constant for transaction isolation level READ UNCOMMITTED.\n     *\n     * @deprecated Use TransactionIsolationLevel::READ_UNCOMMITTED.\n     */\n    public const TRANSACTION_READ_UNCOMMITTED = TransactionIsolationLevel::READ_UNCOMMITTED;\n\n    /**\n     * Constant for transaction isolation level READ COMMITTED.\n     *\n     * @deprecated Use TransactionIsolationLevel::READ_COMMITTED.\n     */\n    public const TRANSACTION_READ_COMMITTED = TransactionIsolationLevel::READ_COMMITTED;\n\n    /**\n     * Constant for transaction isolation level REPEATABLE READ.\n     *\n     * @deprecated Use TransactionIsolationLevel::REPEATABLE_READ.\n     */\n    public const TRANSACTION_REPEATABLE_READ = TransactionIsolationLevel::REPEATABLE_READ;\n\n    /**\n     * Constant for transaction isolation level SERIALIZABLE.\n     *\n     * @deprecated Use TransactionIsolationLevel::SERIALIZABLE.\n     */\n    public const TRANSACTION_SERIALIZABLE = TransactionIsolationLevel::SERIALIZABLE;\n\n    /**\n     * Represents an array of ints to be expanded by Doctrine SQL parsing.\n     */\n    public const PARAM_INT_ARRAY = ParameterType::INTEGER + self::ARRAY_PARAM_OFFSET;\n\n    /**\n     * Represents an array of strings to be expanded by Doctrine SQL parsing.\n     */\n    public const PARAM_STR_ARRAY = ParameterType::STRING + self::ARRAY_PARAM_OFFSET;\n\n    /**\n     * Offset by which PARAM_* constants are detected as arrays of the param type.\n     */\n    public const ARRAY_PARAM_OFFSET = 100;\n\n    /**\n     * The wrapped driver connection.\n     *\n     * @var \\Doctrine\\DBAL\\Driver\\Connection|null\n     */\n    protected $_conn;\n\n    /** @var Configuration */\n    protected $_config;\n\n    /** @var EventManager */\n    protected $_eventManager;\n\n    /** @var ExpressionBuilder */\n    protected $_expr;\n\n    /**\n     * Whether or not a connection has been established.\n     *\n     * @var bool\n     */\n    private $isConnected = false;\n\n    /**\n     * The current auto-commit mode of this connection.\n     *\n     * @var bool\n     */\n    private $autoCommit = true;\n\n    /**\n     * The transaction nesting level.\n     *\n     * @var int\n     */\n    private $transactionNestingLevel = 0;\n\n    /**\n     * The currently active transaction isolation level.\n     *\n     * @var int\n     */\n    private $transactionIsolationLevel;\n\n    /**\n     * If nested transactions should use savepoints.\n     *\n     * @var bool\n     */\n    private $nestTransactionsWithSavepoints = false;\n\n    /**\n     * The parameters used during creation of the Connection instance.\n     *\n     * @var mixed[]\n     */\n    private $params = [];\n\n    /**\n     * The DatabasePlatform object that provides information about the\n     * database platform used by the connection.\n     *\n     * @var AbstractPlatform\n     */\n    private $platform;\n\n    /**\n     * The schema manager.\n     *\n     * @var AbstractSchemaManager\n     */\n    protected $_schemaManager;\n\n    /**\n     * The used DBAL driver.\n     *\n     * @var Driver\n     */\n    protected $_driver;\n\n    /**\n     * Flag that indicates whether the current transaction is marked for rollback only.\n     *\n     * @var bool\n     */\n    private $isRollbackOnly = false;\n\n    /** @var int */\n    protected $defaultFetchMode = FetchMode::ASSOCIATIVE;\n\n    /**\n     * Initializes a new instance of the Connection class.\n     *\n     * @param mixed[]            $params       The connection parameters.\n     * @param Driver             $driver       The driver to use.\n     * @param Configuration|null $config       The configuration, optional.\n     * @param EventManager|null  $eventManager The event manager, optional.\n     *\n     * @throws DBALException\n     */\n    public function __construct(\n        array $params,\n        Driver $driver,\n        ?Configuration $config = null,\n        ?EventManager $eventManager = null\n    ) {\n        $this->_driver = $driver;\n        $this->params  = $params;\n\n        if (isset($params['pdo'])) {\n            $this->_conn       = $params['pdo'];\n            $this->isConnected = true;\n            unset($this->params['pdo']);\n        }\n\n        if (isset($params['platform'])) {\n            if (! $params['platform'] instanceof Platforms\\AbstractPlatform) {\n                throw DBALException::invalidPlatformType($params['platform']);\n            }\n\n            $this->platform = $params['platform'];\n            unset($this->params['platform']);\n        }\n\n        // Create default config and event manager if none given\n        if (! $config) {\n            $config = new Configuration();\n        }\n\n        if (! $eventManager) {\n            $eventManager = new EventManager();\n        }\n\n        $this->_config       = $config;\n        $this->_eventManager = $eventManager;\n\n        $this->_expr = new Query\\Expression\\ExpressionBuilder($this);\n\n        $this->autoCommit = $config->getAutoCommit();\n    }\n\n    /**\n     * Gets the parameters used during instantiation.\n     *\n     * @return mixed[]\n     */\n    public function getParams()\n    {\n        return $this->params;\n    }\n\n    /**\n     * Gets the name of the database this Connection is connected to.\n     *\n     * @return string\n     */\n    public function getDatabase()\n    {\n        return $this->_driver->getDatabase($this);\n    }\n\n    /**\n     * Gets the hostname of the currently connected database.\n     *\n     * @return string|null\n     */\n    public function getHost()\n    {\n        return $this->params['host'] ?? null;\n    }\n\n    /**\n     * Gets the port of the currently connected database.\n     *\n     * @return mixed\n     */\n    public function getPort()\n    {\n        return $this->params['port'] ?? null;\n    }\n\n    /**\n     * Gets the username used by this connection.\n     *\n     * @return string|null\n     */\n    public function getUsername()\n    {\n        return $this->params['user'] ?? null;\n    }\n\n    /**\n     * Gets the password used by this connection.\n     *\n     * @return string|null\n     */\n    public function getPassword()\n    {\n        return $this->params['password'] ?? null;\n    }\n\n    /**\n     * Gets the DBAL driver instance.\n     *\n     * @return Driver\n     */\n    public function getDriver()\n    {\n        return $this->_driver;\n    }\n\n    /**\n     * Gets the Configuration used by the Connection.\n     *\n     * @return Configuration\n     */\n    public function getConfiguration()\n    {\n        return $this->_config;\n    }\n\n    /**\n     * Gets the EventManager used by the Connection.\n     *\n     * @return EventManager\n     */\n    public function getEventManager()\n    {\n        return $this->_eventManager;\n    }\n\n    /**\n     * Gets the DatabasePlatform for the connection.\n     *\n     * @return AbstractPlatform\n     *\n     * @throws DBALException\n     */\n    public function getDatabasePlatform()\n    {\n        if ($this->platform === null) {\n            $this->detectDatabasePlatform();\n        }\n\n        return $this->platform;\n    }\n\n    /**\n     * Gets the ExpressionBuilder for the connection.\n     *\n     * @return ExpressionBuilder\n     */\n    public function getExpressionBuilder()\n    {\n        return $this->_expr;\n    }\n\n    /**\n     * Establishes the connection with the database.\n     *\n     * @return bool TRUE if the connection was successfully established, FALSE if\n     *              the connection is already open.\n     */\n    public function connect()\n    {\n        if ($this->isConnected) {\n            return false;\n        }\n\n        $driverOptions = $this->params['driverOptions'] ?? [];\n        $user          = $this->params['user'] ?? null;\n        $password      = $this->params['password'] ?? null;\n\n        $this->_conn       = $this->_driver->connect($this->params, $user, $password, $driverOptions);\n        $this->isConnected = true;\n\n        if ($this->autoCommit === false) {\n            $this->beginTransaction();\n        }\n\n        if ($this->_eventManager->hasListeners(Events::postConnect)) {\n            $eventArgs = new Event\\ConnectionEventArgs($this);\n            $this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);\n        }\n\n        return true;\n    }\n\n    /**\n     * Detects and sets the database platform.\n     *\n     * Evaluates custom platform class and version in order to set the correct platform.\n     *\n     * @throws DBALException If an invalid platform was specified for this connection.\n     */\n    private function detectDatabasePlatform()\n    {\n        $version = $this->getDatabasePlatformVersion();\n\n        if ($version !== null) {\n            assert($this->_driver instanceof VersionAwarePlatformDriver);\n\n            $this->platform = $this->_driver->createDatabasePlatformForVersion($version);\n        } else {\n            $this->platform = $this->_driver->getDatabasePlatform();\n        }\n\n        $this->platform->setEventManager($this->_eventManager);\n    }\n\n    /**\n     * Returns the version of the related platform if applicable.\n     *\n     * Returns null if either the driver is not capable to create version\n     * specific platform instances, no explicit server version was specified\n     * or the underlying driver connection cannot determine the platform\n     * version without having to query it (performance reasons).\n     *\n     * @return string|null\n     *\n     * @throws Exception\n     */\n    private function getDatabasePlatformVersion()\n    {\n        // Driver does not support version specific platforms.\n        if (! $this->_driver instanceof VersionAwarePlatformDriver) {\n            return null;\n        }\n\n        // Explicit platform version requested (supersedes auto-detection).\n        if (isset($this->params['serverVersion'])) {\n            return $this->params['serverVersion'];\n        }\n\n        // If not connected, we need to connect now to determine the platform version.\n        if ($this->_conn === null) {\n            try {\n                $this->connect();\n            } catch (Throwable $originalException) {\n                if (empty($this->params['dbname'])) {\n                    throw $originalException;\n                }\n\n                // The database to connect to might not yet exist.\n                // Retry detection without database name connection parameter.\n                $databaseName           = $this->params['dbname'];\n                $this->params['dbname'] = null;\n\n                try {\n                    $this->connect();\n                } catch (Throwable $fallbackException) {\n                    // Either the platform does not support database-less connections\n                    // or something else went wrong.\n                    // Reset connection parameters and rethrow the original exception.\n                    $this->params['dbname'] = $databaseName;\n\n                    throw $originalException;\n                }\n\n                // Reset connection parameters.\n                $this->params['dbname'] = $databaseName;\n                $serverVersion          = $this->getServerVersion();\n\n                // Close \"temporary\" connection to allow connecting to the real database again.\n                $this->close();\n\n                return $serverVersion;\n            }\n        }\n\n        return $this->getServerVersion();\n    }\n\n    /**\n     * Returns the database server version if the underlying driver supports it.\n     *\n     * @return string|null\n     */\n    private function getServerVersion()\n    {\n        // Automatic platform version detection.\n        if ($this->_conn instanceof ServerInfoAwareConnection &&\n            ! $this->_conn->requiresQueryForServerVersion()\n        ) {\n            return $this->_conn->getServerVersion();\n        }\n\n        // Unable to detect platform version.\n        return null;\n    }\n\n    /**\n     * Returns the current auto-commit mode for this connection.\n     *\n     * @see    setAutoCommit\n     *\n     * @return bool True if auto-commit mode is currently enabled for this connection, false otherwise.\n     */\n    public function isAutoCommit()\n    {\n        return $this->autoCommit === true;\n    }\n\n    /**\n     * Sets auto-commit mode for this connection.\n     *\n     * If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual\n     * transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either\n     * the method commit or the method rollback. By default, new connections are in auto-commit mode.\n     *\n     * NOTE: If this method is called during a transaction and the auto-commit mode is changed, the transaction is\n     * committed. If this method is called and the auto-commit mode is not changed, the call is a no-op.\n     *\n     * @see   isAutoCommit\n     *\n     * @param bool $autoCommit True to enable auto-commit mode; false to disable it.\n     */\n    public function setAutoCommit($autoCommit)\n    {\n        $autoCommit = (bool) $autoCommit;\n\n        // Mode not changed, no-op.\n        if ($autoCommit === $this->autoCommit) {\n            return;\n        }\n\n        $this->autoCommit = $autoCommit;\n\n        // Commit all currently active transactions if any when switching auto-commit mode.\n        if ($this->isConnected !== true || $this->transactionNestingLevel === 0) {\n            return;\n        }\n\n        $this->commitAll();\n    }\n\n    /**\n     * Sets the fetch mode.\n     *\n     * @param int $fetchMode\n     *\n     * @return void\n     */\n    public function setFetchMode($fetchMode)\n    {\n        $this->defaultFetchMode = $fetchMode;\n    }\n\n    /**\n     * Prepares and executes an SQL query and returns the first row of the result\n     * as an associative array.\n     *\n     * @param string         $statement The SQL query.\n     * @param mixed[]        $params    The query parameters.\n     * @param int[]|string[] $types     The query parameter types.\n     *\n     * @return mixed[]|false False is returned if no rows are found.\n     *\n     * @throws DBALException\n     */\n    public function fetchAssoc($statement, array $params = [], array $types = [])\n    {\n        return $this->executeQuery($statement, $params, $types)->fetch(FetchMode::ASSOCIATIVE);\n    }\n\n    /**\n     * Prepares and executes an SQL query and returns the first row of the result\n     * as a numerically indexed array.\n     *\n     * @param string         $statement The SQL query to be executed.\n     * @param mixed[]        $params    The prepared statement params.\n     * @param int[]|string[] $types     The query parameter types.\n     *\n     * @return mixed[]|false False is returned if no rows are found.\n     */\n    public function fetchArray($statement, array $params = [], array $types = [])\n    {\n        return $this->executeQuery($statement, $params, $types)->fetch(FetchMode::NUMERIC);\n    }\n\n    /**\n     * Prepares and executes an SQL query and returns the value of a single column\n     * of the first row of the result.\n     *\n     * @param string         $statement The SQL query to be executed.\n     * @param mixed[]        $params    The prepared statement params.\n     * @param int            $column    The 0-indexed column number to retrieve.\n     * @param int[]|string[] $types     The query parameter types.\n     *\n     * @return mixed|false False is returned if no rows are found.\n     *\n     * @throws DBALException\n     */\n    public function fetchColumn($statement, array $params = [], $column = 0, array $types = [])\n    {\n        return $this->executeQuery($statement, $params, $types)->fetchColumn($column);\n    }\n\n    /**\n     * Whether an actual connection to the database is established.\n     *\n     * @return bool\n     */\n    public function isConnected()\n    {\n        return $this->isConnected;\n    }\n\n    /**\n     * Checks whether a transaction is currently active.\n     *\n     * @return bool TRUE if a transaction is currently active, FALSE otherwise.\n     */\n    public function isTransactionActive()\n    {\n        return $this->transactionNestingLevel > 0;\n    }\n\n    /**\n     * Gathers conditions for an update or delete call.\n     *\n     * @param mixed[] $identifiers Input array of columns to values\n     *\n     * @return string[][] a triplet with:\n     *                    - the first key being the columns\n     *                    - the second key being the values\n     *                    - the third key being the conditions\n     */\n    private function gatherConditions(array $identifiers)\n    {\n        $columns    = [];\n        $values     = [];\n        $conditions = [];\n\n        foreach ($identifiers as $columnName => $value) {\n            if ($value === null) {\n                $conditions[] = $this->getDatabasePlatform()->getIsNullExpression($columnName);\n                continue;\n            }\n\n            $columns[]    = $columnName;\n            $values[]     = $value;\n            $conditions[] = $columnName . ' = ?';\n        }\n\n        return [$columns, $values, $conditions];\n    }\n\n    /**\n     * Executes an SQL DELETE statement on a table.\n     *\n     * Table expression and columns are not escaped and are not safe for user-input.\n     *\n     * @param string         $tableExpression The expression of the table on which to delete.\n     * @param mixed[]        $identifier      The deletion criteria. An associative array containing column-value pairs.\n     * @param int[]|string[] $types           The types of identifiers.\n     *\n     * @return int The number of affected rows.\n     *\n     * @throws DBALException\n     * @throws InvalidArgumentException\n     */\n    public function delete($tableExpression, array $identifier, array $types = [])\n    {\n        if (empty($identifier)) {\n            throw InvalidArgumentException::fromEmptyCriteria();\n        }\n\n        [$columns, $values, $conditions] = $this->gatherConditions($identifier);\n\n        return $this->executeUpdate(\n            'DELETE FROM ' . $tableExpression . ' WHERE ' . implode(' AND ', $conditions),\n            $values,\n            is_string(key($types)) ? $this->extractTypeValues($columns, $types) : $types\n        );\n    }\n\n    /**\n     * Closes the connection.\n     *\n     * @return void\n     */\n    public function close()\n    {\n        $this->_conn = null;\n\n        $this->isConnected = false;\n    }\n\n    /**\n     * Sets the transaction isolation level.\n     *\n     * @param int $level The level to set.\n     *\n     * @return int\n     */\n    public function setTransactionIsolation($level)\n    {\n        $this->transactionIsolationLevel = $level;\n\n        return $this->executeUpdate($this->getDatabasePlatform()->getSetTransactionIsolationSQL($level));\n    }\n\n    /**\n     * Gets the currently active transaction isolation level.\n     *\n     * @return int The current transaction isolation level.\n     */\n    public function getTransactionIsolation()\n    {\n        if ($this->transactionIsolationLevel === null) {\n            $this->transactionIsolationLevel = $this->getDatabasePlatform()->getDefaultTransactionIsolationLevel();\n        }\n\n        return $this->transactionIsolationLevel;\n    }\n\n    /**\n     * Executes an SQL UPDATE statement on a table.\n     *\n     * Table expression and columns are not escaped and are not safe for user-input.\n     *\n     * @param string         $tableExpression The expression of the table to update quoted or unquoted.\n     * @param mixed[]        $data            An associative array containing column-value pairs.\n     * @param mixed[]        $identifier      The update criteria. An associative array containing column-value pairs.\n     * @param int[]|string[] $types           Types of the merged $data and $identifier arrays in that order.\n     *\n     * @return int The number of affected rows.\n     *\n     * @throws DBALException\n     */\n    public function update($tableExpression, array $data, array $identifier, array $types = [])\n    {\n        $setColumns = [];\n        $setValues  = [];\n        $set        = [];\n\n        foreach ($data as $columnName => $value) {\n            $setColumns[] = $columnName;\n            $setValues[]  = $value;\n            $set[]        = $columnName . ' = ?';\n        }\n\n        [$conditionColumns, $conditionValues, $conditions] = $this->gatherConditions($identifier);\n        $columns                                           = array_merge($setColumns, $conditionColumns);\n        $values                                            = array_merge($setValues, $conditionValues);\n\n        if (is_string(key($types))) {\n            $types = $this->extractTypeValues($columns, $types);\n        }\n\n        $sql = 'UPDATE ' . $tableExpression . ' SET ' . implode(', ', $set)\n                . ' WHERE ' . implode(' AND ', $conditions);\n\n        return $this->executeUpdate($sql, $values, $types);\n    }\n\n    /**\n     * Inserts a table row with specified data.\n     *\n     * Table expression and columns are not escaped and are not safe for user-input.\n     *\n     * @param string         $tableExpression The expression of the table to insert data into, quoted or unquoted.\n     * @param mixed[]        $data            An associative array containing column-value pairs.\n     * @param int[]|string[] $types           Types of the inserted data.\n     *\n     * @return int The number of affected rows.\n     *\n     * @throws DBALException\n     */\n    public function insert($tableExpression, array $data, array $types = [])\n    {\n        if (empty($data)) {\n            return $this->executeUpdate('INSERT INTO ' . $tableExpression . ' () VALUES ()');\n        }\n\n        $columns = [];\n        $values  = [];\n        $set     = [];\n\n        foreach ($data as $columnName => $value) {\n            $columns[] = $columnName;\n            $values[]  = $value;\n            $set[]     = '?';\n        }\n\n        return $this->executeUpdate(\n            'INSERT INTO ' . $tableExpression . ' (' . implode(', ', $columns) . ')' .\n            ' VALUES (' . implode(', ', $set) . ')',\n            $values,\n            is_string(key($types)) ? $this->extractTypeValues($columns, $types) : $types\n        );\n    }\n\n    /**\n     * Extract ordered type list from an ordered column list and type map.\n     *\n     * @param string[]       $columnList\n     * @param int[]|string[] $types\n     *\n     * @return int[]|string[]\n     */\n    private function extractTypeValues(array $columnList, array $types)\n    {\n        $typeValues = [];\n\n        foreach ($columnList as $columnIndex => $columnName) {\n            $typeValues[] = $types[$columnName] ?? ParameterType::STRING;\n        }\n\n        return $typeValues;\n    }\n\n    /**\n     * Quotes a string so it can be safely used as a table or column name, even if\n     * it is a reserved name.\n     *\n     * Delimiting style depends on the underlying database platform that is being used.\n     *\n     * NOTE: Just because you CAN use quoted identifiers does not mean\n     * you SHOULD use them. In general, they end up causing way more\n     * problems than they solve.\n     *\n     * @param string $str The name to be quoted.\n     *\n     * @return string The quoted name.\n     */\n    public function quoteIdentifier($str)\n    {\n        return $this->getDatabasePlatform()->quoteIdentifier($str);\n    }\n\n    /**\n     * Quotes a given input parameter.\n     *\n     * @param mixed    $input The parameter to be quoted.\n     * @param int|null $type  The type of the parameter.\n     *\n     * @return string The quoted parameter.\n     */\n    public function quote($input, $type = null)\n    {\n        $this->connect();\n\n        [$value, $bindingType] = $this->getBindingInfo($input, $type);\n\n        return $this->_conn->quote($value, $bindingType);\n    }\n\n    /**\n     * Prepares and executes an SQL query and returns the result as an associative array.\n     *\n     * @param string         $sql    The SQL query.\n     * @param mixed[]        $params The query parameters.\n     * @param int[]|string[] $types  The query parameter types.\n     *\n     * @return mixed[]\n     */\n    public function fetchAll($sql, array $params = [], $types = [])\n    {\n        return $this->executeQuery($sql, $params, $types)->fetchAll();\n    }\n\n    /**\n     * Prepares an SQL statement.\n     *\n     * @param string $statement The SQL statement to prepare.\n     *\n     * @return DriverStatement The prepared statement.\n     *\n     * @throws DBALException\n     */\n    public function prepare($statement)\n    {\n        try {\n            $stmt = new Statement($statement, $this);\n        } catch (Throwable $ex) {\n            throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $statement);\n        }\n\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        return $stmt;\n    }\n\n    /**\n     * Executes an, optionally parametrized, SQL query.\n     *\n     * If the query is parametrized, a prepared statement is used.\n     * If an SQLLogger is configured, the execution is logged.\n     *\n     * @param string                 $query  The SQL query to execute.\n     * @param mixed[]                $params The parameters to bind to the query, if any.\n     * @param int[]|string[]         $types  The types the previous parameters are in.\n     * @param QueryCacheProfile|null $qcp    The query cache profile, optional.\n     *\n     * @return ResultStatement The executed statement.\n     *\n     * @throws DBALException\n     */\n    public function executeQuery($query, array $params = [], $types = [], ?QueryCacheProfile $qcp = null)\n    {\n        if ($qcp !== null) {\n            return $this->executeCacheQuery($query, $params, $types, $qcp);\n        }\n\n        $this->connect();\n\n        $logger = $this->_config->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($query, $params, $types);\n        }\n\n        try {\n            if ($params) {\n                [$query, $params, $types] = SQLParserUtils::expandListParameters($query, $params, $types);\n\n                $stmt = $this->_conn->prepare($query);\n                if ($types) {\n                    $this->_bindTypedValues($stmt, $params, $types);\n                    $stmt->execute();\n                } else {\n                    $stmt->execute($params);\n                }\n            } else {\n                $stmt = $this->_conn->query($query);\n            }\n        } catch (Throwable $ex) {\n            throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $query, $this->resolveParams($params, $types));\n        }\n\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n\n        return $stmt;\n    }\n\n    /**\n     * Executes a caching query.\n     *\n     * @param string            $query  The SQL query to execute.\n     * @param mixed[]           $params The parameters to bind to the query, if any.\n     * @param int[]|string[]    $types  The types the previous parameters are in.\n     * @param QueryCacheProfile $qcp    The query cache profile.\n     *\n     * @return ResultStatement\n     *\n     * @throws CacheException\n     */\n    public function executeCacheQuery($query, $params, $types, QueryCacheProfile $qcp)\n    {\n        $resultCache = $qcp->getResultCacheDriver() ?: $this->_config->getResultCacheImpl();\n        if (! $resultCache) {\n            throw CacheException::noResultDriverConfigured();\n        }\n\n        [$cacheKey, $realKey] = $qcp->generateCacheKeys($query, $params, $types, $this->getParams());\n\n        // fetch the row pointers entry\n        $data = $resultCache->fetch($cacheKey);\n\n        if ($data !== false) {\n            // is the real key part of this row pointers map or is the cache only pointing to other cache keys?\n            if (isset($data[$realKey])) {\n                $stmt = new ArrayStatement($data[$realKey]);\n            } elseif (array_key_exists($realKey, $data)) {\n                $stmt = new ArrayStatement([]);\n            }\n        }\n\n        if (! isset($stmt)) {\n            $stmt = new ResultCacheStatement($this->executeQuery($query, $params, $types), $resultCache, $cacheKey, $realKey, $qcp->getLifetime());\n        }\n\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        return $stmt;\n    }\n\n    /**\n     * Executes an, optionally parametrized, SQL query and returns the result,\n     * applying a given projection/transformation function on each row of the result.\n     *\n     * @param string  $query    The SQL query to execute.\n     * @param mixed[] $params   The parameters, if any.\n     * @param Closure $function The transformation function that is applied on each row.\n     *                           The function receives a single parameter, an array, that\n     *                           represents a row of the result set.\n     *\n     * @return mixed[] The projected result of the query.\n     */\n    public function project($query, array $params, Closure $function)\n    {\n        $result = [];\n        $stmt   = $this->executeQuery($query, $params);\n\n        while ($row = $stmt->fetch()) {\n            $result[] = $function($row);\n        }\n\n        $stmt->closeCursor();\n\n        return $result;\n    }\n\n    /**\n     * Executes an SQL statement, returning a result set as a Statement object.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\Statement\n     *\n     * @throws DBALException\n     */\n    public function query()\n    {\n        $this->connect();\n\n        $args = func_get_args();\n\n        $logger = $this->_config->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($args[0]);\n        }\n\n        try {\n            $statement = $this->_conn->query(...$args);\n        } catch (Throwable $ex) {\n            throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $args[0]);\n        }\n\n        $statement->setFetchMode($this->defaultFetchMode);\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n\n        return $statement;\n    }\n\n    /**\n     * Executes an SQL INSERT/UPDATE/DELETE query with the given parameters\n     * and returns the number of affected rows.\n     *\n     * This method supports PDO binding types as well as DBAL mapping types.\n     *\n     * @param string         $query  The SQL query.\n     * @param mixed[]        $params The query parameters.\n     * @param int[]|string[] $types  The parameter types.\n     *\n     * @return int The number of affected rows.\n     *\n     * @throws DBALException\n     */\n    public function executeUpdate($query, array $params = [], array $types = [])\n    {\n        $this->connect();\n\n        $logger = $this->_config->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($query, $params, $types);\n        }\n\n        try {\n            if ($params) {\n                [$query, $params, $types] = SQLParserUtils::expandListParameters($query, $params, $types);\n\n                $stmt = $this->_conn->prepare($query);\n                if ($types) {\n                    $this->_bindTypedValues($stmt, $params, $types);\n                    $stmt->execute();\n                } else {\n                    $stmt->execute($params);\n                }\n                $result = $stmt->rowCount();\n            } else {\n                $result = $this->_conn->exec($query);\n            }\n        } catch (Throwable $ex) {\n            throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $query, $this->resolveParams($params, $types));\n        }\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n\n        return $result;\n    }\n\n    /**\n     * Executes an SQL statement and return the number of affected rows.\n     *\n     * @param string $statement\n     *\n     * @return int The number of affected rows.\n     *\n     * @throws DBALException\n     */\n    public function exec($statement)\n    {\n        $this->connect();\n\n        $logger = $this->_config->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($statement);\n        }\n\n        try {\n            $result = $this->_conn->exec($statement);\n        } catch (Throwable $ex) {\n            throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $statement);\n        }\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n\n        return $result;\n    }\n\n    /**\n     * Returns the current transaction nesting level.\n     *\n     * @return int The nesting level. A value of 0 means there's no active transaction.\n     */\n    public function getTransactionNestingLevel()\n    {\n        return $this->transactionNestingLevel;\n    }\n\n    /**\n     * Fetches the SQLSTATE associated with the last database operation.\n     *\n     * @return string|null The last error code.\n     */\n    public function errorCode()\n    {\n        $this->connect();\n\n        return $this->_conn->errorCode();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function errorInfo()\n    {\n        $this->connect();\n\n        return $this->_conn->errorInfo();\n    }\n\n    /**\n     * Returns the ID of the last inserted row, or the last value from a sequence object,\n     * depending on the underlying driver.\n     *\n     * Note: This method may not return a meaningful or consistent result across different drivers,\n     * because the underlying database may not even support the notion of AUTO_INCREMENT/IDENTITY\n     * columns or sequences.\n     *\n     * @param string|null $seqName Name of the sequence object from which the ID should be returned.\n     *\n     * @return string A string representation of the last inserted ID.\n     */\n    public function lastInsertId($seqName = null)\n    {\n        $this->connect();\n\n        return $this->_conn->lastInsertId($seqName);\n    }\n\n    /**\n     * Executes a function in a transaction.\n     *\n     * The function gets passed this Connection instance as an (optional) parameter.\n     *\n     * If an exception occurs during execution of the function or transaction commit,\n     * the transaction is rolled back and the exception re-thrown.\n     *\n     * @param Closure $func The function to execute transactionally.\n     *\n     * @return mixed The value returned by $func\n     *\n     * @throws Exception\n     * @throws Throwable\n     */\n    public function transactional(Closure $func)\n    {\n        $this->beginTransaction();\n        try {\n            $res = $func($this);\n            $this->commit();\n            return $res;\n        } catch (Exception $e) {\n            $this->rollBack();\n            throw $e;\n        } catch (Throwable $e) {\n            $this->rollBack();\n            throw $e;\n        }\n    }\n\n    /**\n     * Sets if nested transactions should use savepoints.\n     *\n     * @param bool $nestTransactionsWithSavepoints\n     *\n     * @return void\n     *\n     * @throws ConnectionException\n     */\n    public function setNestTransactionsWithSavepoints($nestTransactionsWithSavepoints)\n    {\n        if ($this->transactionNestingLevel > 0) {\n            throw ConnectionException::mayNotAlterNestedTransactionWithSavepointsInTransaction();\n        }\n\n        if (! $this->getDatabasePlatform()->supportsSavepoints()) {\n            throw ConnectionException::savepointsNotSupported();\n        }\n\n        $this->nestTransactionsWithSavepoints = (bool) $nestTransactionsWithSavepoints;\n    }\n\n    /**\n     * Gets if nested transactions should use savepoints.\n     *\n     * @return bool\n     */\n    public function getNestTransactionsWithSavepoints()\n    {\n        return $this->nestTransactionsWithSavepoints;\n    }\n\n    /**\n     * Returns the savepoint name to use for nested transactions are false if they are not supported\n     * \"savepointFormat\" parameter is not set\n     *\n     * @return mixed A string with the savepoint name or false.\n     */\n    protected function _getNestedTransactionSavePointName()\n    {\n        return 'DOCTRINE2_SAVEPOINT_' . $this->transactionNestingLevel;\n    }\n\n    /**\n     * Starts a transaction by suspending auto-commit mode.\n     *\n     * @return void\n     */\n    public function beginTransaction()\n    {\n        $this->connect();\n\n        ++$this->transactionNestingLevel;\n\n        $logger = $this->_config->getSQLLogger();\n\n        if ($this->transactionNestingLevel === 1) {\n            if ($logger) {\n                $logger->startQuery('\"START TRANSACTION\"');\n            }\n            $this->_conn->beginTransaction();\n            if ($logger) {\n                $logger->stopQuery();\n            }\n        } elseif ($this->nestTransactionsWithSavepoints) {\n            if ($logger) {\n                $logger->startQuery('\"SAVEPOINT\"');\n            }\n            $this->createSavepoint($this->_getNestedTransactionSavePointName());\n            if ($logger) {\n                $logger->stopQuery();\n            }\n        }\n    }\n\n    /**\n     * Commits the current transaction.\n     *\n     * @return void\n     *\n     * @throws ConnectionException If the commit failed due to no active transaction or\n     *                                            because the transaction was marked for rollback only.\n     */\n    public function commit()\n    {\n        if ($this->transactionNestingLevel === 0) {\n            throw ConnectionException::noActiveTransaction();\n        }\n        if ($this->isRollbackOnly) {\n            throw ConnectionException::commitFailedRollbackOnly();\n        }\n\n        $this->connect();\n\n        $logger = $this->_config->getSQLLogger();\n\n        if ($this->transactionNestingLevel === 1) {\n            if ($logger) {\n                $logger->startQuery('\"COMMIT\"');\n            }\n            $this->_conn->commit();\n            if ($logger) {\n                $logger->stopQuery();\n            }\n        } elseif ($this->nestTransactionsWithSavepoints) {\n            if ($logger) {\n                $logger->startQuery('\"RELEASE SAVEPOINT\"');\n            }\n            $this->releaseSavepoint($this->_getNestedTransactionSavePointName());\n            if ($logger) {\n                $logger->stopQuery();\n            }\n        }\n\n        --$this->transactionNestingLevel;\n\n        if ($this->autoCommit !== false || $this->transactionNestingLevel !== 0) {\n            return;\n        }\n\n        $this->beginTransaction();\n    }\n\n    /**\n     * Commits all current nesting transactions.\n     */\n    private function commitAll()\n    {\n        while ($this->transactionNestingLevel !== 0) {\n            if ($this->autoCommit === false && $this->transactionNestingLevel === 1) {\n                // When in no auto-commit mode, the last nesting commit immediately starts a new transaction.\n                // Therefore we need to do the final commit here and then leave to avoid an infinite loop.\n                $this->commit();\n\n                return;\n            }\n\n            $this->commit();\n        }\n    }\n\n    /**\n     * Cancels any database changes done during the current transaction.\n     *\n     * @throws ConnectionException If the rollback operation failed.\n     */\n    public function rollBack()\n    {\n        if ($this->transactionNestingLevel === 0) {\n            throw ConnectionException::noActiveTransaction();\n        }\n\n        $this->connect();\n\n        $logger = $this->_config->getSQLLogger();\n\n        if ($this->transactionNestingLevel === 1) {\n            if ($logger) {\n                $logger->startQuery('\"ROLLBACK\"');\n            }\n            $this->transactionNestingLevel = 0;\n            $this->_conn->rollBack();\n            $this->isRollbackOnly = false;\n            if ($logger) {\n                $logger->stopQuery();\n            }\n\n            if ($this->autoCommit === false) {\n                $this->beginTransaction();\n            }\n        } elseif ($this->nestTransactionsWithSavepoints) {\n            if ($logger) {\n                $logger->startQuery('\"ROLLBACK TO SAVEPOINT\"');\n            }\n            $this->rollbackSavepoint($this->_getNestedTransactionSavePointName());\n            --$this->transactionNestingLevel;\n            if ($logger) {\n                $logger->stopQuery();\n            }\n        } else {\n            $this->isRollbackOnly = true;\n            --$this->transactionNestingLevel;\n        }\n    }\n\n    /**\n     * Creates a new savepoint.\n     *\n     * @param string $savepoint The name of the savepoint to create.\n     *\n     * @return void\n     *\n     * @throws ConnectionException\n     */\n    public function createSavepoint($savepoint)\n    {\n        if (! $this->getDatabasePlatform()->supportsSavepoints()) {\n            throw ConnectionException::savepointsNotSupported();\n        }\n\n        $this->_conn->exec($this->platform->createSavePoint($savepoint));\n    }\n\n    /**\n     * Releases the given savepoint.\n     *\n     * @param string $savepoint The name of the savepoint to release.\n     *\n     * @return void\n     *\n     * @throws ConnectionException\n     */\n    public function releaseSavepoint($savepoint)\n    {\n        if (! $this->getDatabasePlatform()->supportsSavepoints()) {\n            throw ConnectionException::savepointsNotSupported();\n        }\n\n        if (! $this->platform->supportsReleaseSavepoints()) {\n            return;\n        }\n\n        $this->_conn->exec($this->platform->releaseSavePoint($savepoint));\n    }\n\n    /**\n     * Rolls back to the given savepoint.\n     *\n     * @param string $savepoint The name of the savepoint to rollback to.\n     *\n     * @return void\n     *\n     * @throws ConnectionException\n     */\n    public function rollbackSavepoint($savepoint)\n    {\n        if (! $this->getDatabasePlatform()->supportsSavepoints()) {\n            throw ConnectionException::savepointsNotSupported();\n        }\n\n        $this->_conn->exec($this->platform->rollbackSavePoint($savepoint));\n    }\n\n    /**\n     * Gets the wrapped driver connection.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\Connection\n     */\n    public function getWrappedConnection()\n    {\n        $this->connect();\n\n        return $this->_conn;\n    }\n\n    /**\n     * Gets the SchemaManager that can be used to inspect or change the\n     * database schema through the connection.\n     *\n     * @return AbstractSchemaManager\n     */\n    public function getSchemaManager()\n    {\n        if (! $this->_schemaManager) {\n            $this->_schemaManager = $this->_driver->getSchemaManager($this);\n        }\n\n        return $this->_schemaManager;\n    }\n\n    /**\n     * Marks the current transaction so that the only possible\n     * outcome for the transaction to be rolled back.\n     *\n     * @return void\n     *\n     * @throws ConnectionException If no transaction is active.\n     */\n    public function setRollbackOnly()\n    {\n        if ($this->transactionNestingLevel === 0) {\n            throw ConnectionException::noActiveTransaction();\n        }\n        $this->isRollbackOnly = true;\n    }\n\n    /**\n     * Checks whether the current transaction is marked for rollback only.\n     *\n     * @return bool\n     *\n     * @throws ConnectionException If no transaction is active.\n     */\n    public function isRollbackOnly()\n    {\n        if ($this->transactionNestingLevel === 0) {\n            throw ConnectionException::noActiveTransaction();\n        }\n\n        return $this->isRollbackOnly;\n    }\n\n    /**\n     * Converts a given value to its database representation according to the conversion\n     * rules of a specific DBAL mapping type.\n     *\n     * @param mixed  $value The value to convert.\n     * @param string $type  The name of the DBAL mapping type.\n     *\n     * @return mixed The converted value.\n     */\n    public function convertToDatabaseValue($value, $type)\n    {\n        return Type::getType($type)->convertToDatabaseValue($value, $this->getDatabasePlatform());\n    }\n\n    /**\n     * Converts a given value to its PHP representation according to the conversion\n     * rules of a specific DBAL mapping type.\n     *\n     * @param mixed  $value The value to convert.\n     * @param string $type  The name of the DBAL mapping type.\n     *\n     * @return mixed The converted type.\n     */\n    public function convertToPHPValue($value, $type)\n    {\n        return Type::getType($type)->convertToPHPValue($value, $this->getDatabasePlatform());\n    }\n\n    /**\n     * Binds a set of parameters, some or all of which are typed with a PDO binding type\n     * or DBAL mapping type, to a given statement.\n     *\n     * @internal Duck-typing used on the $stmt parameter to support driver statements as well as\n     *           raw PDOStatement instances.\n     *\n     * @param \\Doctrine\\DBAL\\Driver\\Statement $stmt   The statement to bind the values to.\n     * @param mixed[]                         $params The map/list of named/positional parameters.\n     * @param int[]|string[]                  $types  The parameter types (PDO binding types or DBAL mapping types).\n     *\n     * @return void\n     */\n    private function _bindTypedValues($stmt, array $params, array $types)\n    {\n        // Check whether parameters are positional or named. Mixing is not allowed, just like in PDO.\n        if (is_int(key($params))) {\n            // Positional parameters\n            $typeOffset = array_key_exists(0, $types) ? -1 : 0;\n            $bindIndex  = 1;\n            foreach ($params as $value) {\n                $typeIndex = $bindIndex + $typeOffset;\n                if (isset($types[$typeIndex])) {\n                    $type                  = $types[$typeIndex];\n                    [$value, $bindingType] = $this->getBindingInfo($value, $type);\n                    $stmt->bindValue($bindIndex, $value, $bindingType);\n                } else {\n                    $stmt->bindValue($bindIndex, $value);\n                }\n                ++$bindIndex;\n            }\n        } else {\n            // Named parameters\n            foreach ($params as $name => $value) {\n                if (isset($types[$name])) {\n                    $type                  = $types[$name];\n                    [$value, $bindingType] = $this->getBindingInfo($value, $type);\n                    $stmt->bindValue($name, $value, $bindingType);\n                } else {\n                    $stmt->bindValue($name, $value);\n                }\n            }\n        }\n    }\n\n    /**\n     * Gets the binding type of a given type. The given type can be a PDO or DBAL mapping type.\n     *\n     * @param mixed      $value The value to bind.\n     * @param int|string $type  The type to bind (PDO or DBAL).\n     *\n     * @return mixed[] [0] => the (escaped) value, [1] => the binding type.\n     */\n    private function getBindingInfo($value, $type)\n    {\n        if (is_string($type)) {\n            $type = Type::getType($type);\n        }\n        if ($type instanceof Type) {\n            $value       = $type->convertToDatabaseValue($value, $this->getDatabasePlatform());\n            $bindingType = $type->getBindingType();\n        } else {\n            $bindingType = $type;\n        }\n\n        return [$value, $bindingType];\n    }\n\n    /**\n     * Resolves the parameters to a format which can be displayed.\n     *\n     * @internal This is a purely internal method. If you rely on this method, you are advised to\n     *           copy/paste the code as this method may change, or be removed without prior notice.\n     *\n     * @param mixed[]        $params\n     * @param int[]|string[] $types\n     *\n     * @return mixed[]\n     */\n    public function resolveParams(array $params, array $types)\n    {\n        $resolvedParams = [];\n\n        // Check whether parameters are positional or named. Mixing is not allowed, just like in PDO.\n        if (is_int(key($params))) {\n            // Positional parameters\n            $typeOffset = array_key_exists(0, $types) ? -1 : 0;\n            $bindIndex  = 1;\n            foreach ($params as $value) {\n                $typeIndex = $bindIndex + $typeOffset;\n                if (isset($types[$typeIndex])) {\n                    $type                       = $types[$typeIndex];\n                    [$value]                    = $this->getBindingInfo($value, $type);\n                    $resolvedParams[$bindIndex] = $value;\n                } else {\n                    $resolvedParams[$bindIndex] = $value;\n                }\n                ++$bindIndex;\n            }\n        } else {\n            // Named parameters\n            foreach ($params as $name => $value) {\n                if (isset($types[$name])) {\n                    $type                  = $types[$name];\n                    [$value]               = $this->getBindingInfo($value, $type);\n                    $resolvedParams[$name] = $value;\n                } else {\n                    $resolvedParams[$name] = $value;\n                }\n            }\n        }\n\n        return $resolvedParams;\n    }\n\n    /**\n     * Creates a new instance of a SQL query builder.\n     *\n     * @return QueryBuilder\n     */\n    public function createQueryBuilder()\n    {\n        return new Query\\QueryBuilder($this);\n    }\n\n    /**\n     * Ping the server\n     *\n     * When the server is not available the method returns FALSE.\n     * It is responsibility of the developer to handle this case\n     * and abort the request or reconnect manually:\n     *\n     * @return bool\n     *\n     * @example\n     *\n     *   if ($conn->ping() === false) {\n     *      $conn->close();\n     *      $conn->connect();\n     *   }\n     *\n     * It is undefined if the underlying driver attempts to reconnect\n     * or disconnect when the connection is not available anymore\n     * as long it returns TRUE when a reconnect succeeded and\n     * FALSE when the connection was dropped.\n     */\n    public function ping()\n    {\n        $this->connect();\n\n        if ($this->_conn instanceof PingableConnection) {\n            return $this->_conn->ping();\n        }\n\n        try {\n            $this->query($this->getDatabasePlatform()->getDummySelectSQL());\n\n            return true;\n        } catch (DBALException $e) {\n            return false;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nclass ConnectionException extends DBALException\n{\n    /**\n     * @return \\Doctrine\\DBAL\\ConnectionException\n     */\n    public static function commitFailedRollbackOnly()\n    {\n        return new self('Transaction commit failed because the transaction has been marked for rollback only.');\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\ConnectionException\n     */\n    public static function noActiveTransaction()\n    {\n        return new self('There is no active transaction.');\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\ConnectionException\n     */\n    public static function savepointsNotSupported()\n    {\n        return new self('Savepoints are not supported by this driver.');\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\ConnectionException\n     */\n    public static function mayNotAlterNestedTransactionWithSavepointsInTransaction()\n    {\n        return new self('May not alter the nested transaction with savepoints behavior while a transaction is open.');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Connections;\n\nuse Doctrine\\Common\\EventManager;\nuse Doctrine\\DBAL\\Configuration;\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Driver\\Connection as DriverConnection;\nuse Doctrine\\DBAL\\Event\\ConnectionEventArgs;\nuse Doctrine\\DBAL\\Events;\nuse InvalidArgumentException;\nuse function array_rand;\nuse function count;\nuse function func_get_args;\n\n/**\n * Master-Slave Connection\n *\n * Connection can be used with master-slave setups.\n *\n * Important for the understanding of this connection should be how and when\n * it picks the slave or master.\n *\n * 1. Slave if master was never picked before and ONLY if 'getWrappedConnection'\n *    or 'executeQuery' is used.\n * 2. Master picked when 'exec', 'executeUpdate', 'insert', 'delete', 'update', 'createSavepoint',\n *    'releaseSavepoint', 'beginTransaction', 'rollback', 'commit', 'query' or\n *    'prepare' is called.\n * 3. If master was picked once during the lifetime of the connection it will always get picked afterwards.\n * 4. One slave connection is randomly picked ONCE during a request.\n *\n * ATTENTION: You can write to the slave with this connection if you execute a write query without\n * opening up a transaction. For example:\n *\n *      $conn = DriverManager::getConnection(...);\n *      $conn->executeQuery(\"DELETE FROM table\");\n *\n * Be aware that Connection#executeQuery is a method specifically for READ\n * operations only.\n *\n * This connection is limited to slave operations using the\n * Connection#executeQuery operation only, because it wouldn't be compatible\n * with the ORM or SchemaManager code otherwise. Both use all the other\n * operations in a context where writes could happen to a slave, which makes\n * this restricted approach necessary.\n *\n * You can manually connect to the master at any time by calling:\n *\n *      $conn->connect('master');\n *\n * Instantiation through the DriverManager looks like:\n *\n * @example\n *\n * $conn = DriverManager::getConnection(array(\n *    'wrapperClass' => 'Doctrine\\DBAL\\Connections\\MasterSlaveConnection',\n *    'driver' => 'pdo_mysql',\n *    'master' => array('user' => '', 'password' => '', 'host' => '', 'dbname' => ''),\n *    'slaves' => array(\n *        array('user' => 'slave1', 'password', 'host' => '', 'dbname' => ''),\n *        array('user' => 'slave2', 'password', 'host' => '', 'dbname' => ''),\n *    )\n * ));\n *\n * You can also pass 'driverOptions' and any other documented option to each of this drivers to pass additional information.\n */\nclass MasterSlaveConnection extends Connection\n{\n    /**\n     * Master and slave connection (one of the randomly picked slaves).\n     *\n     * @var DriverConnection[]|null[]\n     */\n    protected $connections = ['master' => null, 'slave' => null];\n\n    /**\n     * You can keep the slave connection and then switch back to it\n     * during the request if you know what you are doing.\n     *\n     * @var bool\n     */\n    protected $keepSlave = false;\n\n    /**\n     * Creates Master Slave Connection.\n     *\n     * @param mixed[] $params\n     *\n     * @throws InvalidArgumentException\n     */\n    public function __construct(array $params, Driver $driver, ?Configuration $config = null, ?EventManager $eventManager = null)\n    {\n        if (! isset($params['slaves'], $params['master'])) {\n            throw new InvalidArgumentException('master or slaves configuration missing');\n        }\n        if (count($params['slaves']) === 0) {\n            throw new InvalidArgumentException('You have to configure at least one slaves.');\n        }\n\n        $params['master']['driver'] = $params['driver'];\n        foreach ($params['slaves'] as $slaveKey => $slave) {\n            $params['slaves'][$slaveKey]['driver'] = $params['driver'];\n        }\n\n        $this->keepSlave = (bool) ($params['keepSlave'] ?? false);\n\n        parent::__construct($params, $driver, $config, $eventManager);\n    }\n\n    /**\n     * Checks if the connection is currently towards the master or not.\n     *\n     * @return bool\n     */\n    public function isConnectedToMaster()\n    {\n        return $this->_conn !== null && $this->_conn === $this->connections['master'];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function connect($connectionName = null)\n    {\n        $requestedConnectionChange = ($connectionName !== null);\n        $connectionName            = $connectionName ?: 'slave';\n\n        if ($connectionName !== 'slave' && $connectionName !== 'master') {\n            throw new InvalidArgumentException('Invalid option to connect(), only master or slave allowed.');\n        }\n\n        // If we have a connection open, and this is not an explicit connection\n        // change request, then abort right here, because we are already done.\n        // This prevents writes to the slave in case of \"keepSlave\" option enabled.\n        if (isset($this->_conn) && $this->_conn && ! $requestedConnectionChange) {\n            return false;\n        }\n\n        $forceMasterAsSlave = false;\n\n        if ($this->getTransactionNestingLevel() > 0) {\n            $connectionName     = 'master';\n            $forceMasterAsSlave = true;\n        }\n\n        if (isset($this->connections[$connectionName]) && $this->connections[$connectionName]) {\n            $this->_conn = $this->connections[$connectionName];\n\n            if ($forceMasterAsSlave && ! $this->keepSlave) {\n                $this->connections['slave'] = $this->_conn;\n            }\n\n            return false;\n        }\n\n        if ($connectionName === 'master') {\n            $this->connections['master'] = $this->_conn = $this->connectTo($connectionName);\n\n            // Set slave connection to master to avoid invalid reads\n            if (! $this->keepSlave) {\n                $this->connections['slave'] = $this->connections['master'];\n            }\n        } else {\n            $this->connections['slave'] = $this->_conn = $this->connectTo($connectionName);\n        }\n\n        if ($this->_eventManager->hasListeners(Events::postConnect)) {\n            $eventArgs = new ConnectionEventArgs($this);\n            $this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);\n        }\n\n        return true;\n    }\n\n    /**\n     * Connects to a specific connection.\n     *\n     * @param string $connectionName\n     *\n     * @return DriverConnection\n     */\n    protected function connectTo($connectionName)\n    {\n        $params = $this->getParams();\n\n        $driverOptions = $params['driverOptions'] ?? [];\n\n        $connectionParams = $this->chooseConnectionConfiguration($connectionName, $params);\n\n        $user     = $connectionParams['user'] ?? null;\n        $password = $connectionParams['password'] ?? null;\n\n        return $this->_driver->connect($connectionParams, $user, $password, $driverOptions);\n    }\n\n    /**\n     * @param string  $connectionName\n     * @param mixed[] $params\n     *\n     * @return mixed\n     */\n    protected function chooseConnectionConfiguration($connectionName, $params)\n    {\n        if ($connectionName === 'master') {\n            return $params['master'];\n        }\n\n        $config = $params['slaves'][array_rand($params['slaves'])];\n\n        if (! isset($config['charset']) && isset($params['master']['charset'])) {\n            $config['charset'] = $params['master']['charset'];\n        }\n\n        return $config;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function executeUpdate($query, array $params = [], array $types = [])\n    {\n        $this->connect('master');\n\n        return parent::executeUpdate($query, $params, $types);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function beginTransaction()\n    {\n        $this->connect('master');\n\n        parent::beginTransaction();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function commit()\n    {\n        $this->connect('master');\n\n        parent::commit();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function rollBack()\n    {\n        $this->connect('master');\n\n        return parent::rollBack();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function delete($tableName, array $identifier, array $types = [])\n    {\n        $this->connect('master');\n\n        return parent::delete($tableName, $identifier, $types);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function close()\n    {\n        unset($this->connections['master'], $this->connections['slave']);\n\n        parent::close();\n\n        $this->_conn       = null;\n        $this->connections = ['master' => null, 'slave' => null];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function update($tableName, array $data, array $identifier, array $types = [])\n    {\n        $this->connect('master');\n\n        return parent::update($tableName, $data, $identifier, $types);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function insert($tableName, array $data, array $types = [])\n    {\n        $this->connect('master');\n\n        return parent::insert($tableName, $data, $types);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function exec($statement)\n    {\n        $this->connect('master');\n\n        return parent::exec($statement);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function createSavepoint($savepoint)\n    {\n        $this->connect('master');\n\n        parent::createSavepoint($savepoint);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function releaseSavepoint($savepoint)\n    {\n        $this->connect('master');\n\n        parent::releaseSavepoint($savepoint);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function rollbackSavepoint($savepoint)\n    {\n        $this->connect('master');\n\n        parent::rollbackSavepoint($savepoint);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function query()\n    {\n        $this->connect('master');\n\n        $args = func_get_args();\n\n        $logger = $this->getConfiguration()->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($args[0]);\n        }\n\n        $statement = $this->_conn->query(...$args);\n\n        $statement->setFetchMode($this->defaultFetchMode);\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n\n        return $statement;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prepare($statement)\n    {\n        $this->connect('master');\n\n        return parent::prepare($statement);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\DBAL\\Driver\\DriverException as DriverExceptionInterface;\nuse Doctrine\\DBAL\\Driver\\ExceptionConverterDriver;\nuse Doctrine\\DBAL\\Exception\\DriverException;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Exception;\nuse Throwable;\nuse function array_map;\nuse function bin2hex;\nuse function get_class;\nuse function gettype;\nuse function implode;\nuse function is_object;\nuse function is_resource;\nuse function is_string;\nuse function json_encode;\nuse function sprintf;\nuse function str_split;\n\nclass DBALException extends Exception\n{\n    /**\n     * @param string $method\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function notSupported($method)\n    {\n        return new self(sprintf(\"Operation '%s' is not supported by platform.\", $method));\n    }\n\n    public static function invalidPlatformSpecified() : self\n    {\n        return new self(\n            \"Invalid 'platform' option specified, need to give an instance of \" . AbstractPlatform::class . '.'\n        );\n    }\n\n    /**\n     * @param mixed $invalidPlatform\n     */\n    public static function invalidPlatformType($invalidPlatform) : self\n    {\n        if (is_object($invalidPlatform)) {\n            return new self(\n                sprintf(\n                    \"Option 'platform' must be a subtype of '%s', instance of '%s' given\",\n                    AbstractPlatform::class,\n                    get_class($invalidPlatform)\n                )\n            );\n        }\n\n        return new self(\n            sprintf(\n                \"Option 'platform' must be an object and subtype of '%s'. Got '%s'\",\n                AbstractPlatform::class,\n                gettype($invalidPlatform)\n            )\n        );\n    }\n\n    /**\n     * Returns a new instance for an invalid specified platform version.\n     *\n     * @param string $version        The invalid platform version given.\n     * @param string $expectedFormat The expected platform version format.\n     *\n     * @return DBALException\n     */\n    public static function invalidPlatformVersionSpecified($version, $expectedFormat)\n    {\n        return new self(\n            sprintf(\n                'Invalid platform version \"%s\" specified. ' .\n                'The platform version has to be specified in the format: \"%s\".',\n                $version,\n                $expectedFormat\n            )\n        );\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function invalidPdoInstance()\n    {\n        return new self(\n            \"The 'pdo' option was used in DriverManager::getConnection() but no \" .\n            'instance of PDO was given.'\n        );\n    }\n\n    /**\n     * @param string|null $url The URL that was provided in the connection parameters (if any).\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function driverRequired($url = null)\n    {\n        if ($url) {\n            return new self(\n                sprintf(\n                    \"The options 'driver' or 'driverClass' are mandatory if a connection URL without scheme \" .\n                    'is given to DriverManager::getConnection(). Given URL: %s',\n                    $url\n                )\n            );\n        }\n\n        return new self(\"The options 'driver' or 'driverClass' are mandatory if no PDO \" .\n            'instance is given to DriverManager::getConnection().');\n    }\n\n    /**\n     * @param string   $unknownDriverName\n     * @param string[] $knownDrivers\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function unknownDriver($unknownDriverName, array $knownDrivers)\n    {\n        return new self(\"The given 'driver' \" . $unknownDriverName . ' is unknown, ' .\n            'Doctrine currently supports only the following drivers: ' . implode(', ', $knownDrivers));\n    }\n\n    /**\n     * @param Exception $driverEx\n     * @param string    $sql\n     * @param mixed[]   $params\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function driverExceptionDuringQuery(Driver $driver, Throwable $driverEx, $sql, array $params = [])\n    {\n        $msg = \"An exception occurred while executing '\" . $sql . \"'\";\n        if ($params) {\n            $msg .= ' with params ' . self::formatParameters($params);\n        }\n        $msg .= \":\\n\\n\" . $driverEx->getMessage();\n\n        return static::wrapException($driver, $driverEx, $msg);\n    }\n\n    /**\n     * @param Exception $driverEx\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function driverException(Driver $driver, Throwable $driverEx)\n    {\n        return static::wrapException($driver, $driverEx, 'An exception occurred in driver: ' . $driverEx->getMessage());\n    }\n\n    /**\n     * @param Exception $driverEx\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    private static function wrapException(Driver $driver, Throwable $driverEx, $msg)\n    {\n        if ($driverEx instanceof DriverException) {\n            return $driverEx;\n        }\n        if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DriverExceptionInterface) {\n            return $driver->convertException($msg, $driverEx);\n        }\n\n        return new self($msg, 0, $driverEx);\n    }\n\n    /**\n     * Returns a human-readable representation of an array of parameters.\n     * This properly handles binary data by returning a hex representation.\n     *\n     * @param mixed[] $params\n     *\n     * @return string\n     */\n    private static function formatParameters(array $params)\n    {\n        return '[' . implode(', ', array_map(static function ($param) {\n            if (is_resource($param)) {\n                return (string) $param;\n            }\n\n            $json = @json_encode($param);\n\n            if (! is_string($json) || $json === 'null' && is_string($param)) {\n                // JSON encoding failed, this is not a UTF-8 string.\n                return '\"\\x' . implode('\\x', str_split(bin2hex($param), 2)) . '\"';\n            }\n\n            return $json;\n        }, $params)) . ']';\n    }\n\n    /**\n     * @param string $wrapperClass\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function invalidWrapperClass($wrapperClass)\n    {\n        return new self(\"The given 'wrapperClass' \" . $wrapperClass . ' has to be a ' .\n            'subtype of \\Doctrine\\DBAL\\Connection.');\n    }\n\n    /**\n     * @param string $driverClass\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function invalidDriverClass($driverClass)\n    {\n        return new self(\"The given 'driverClass' \" . $driverClass . ' has to implement the ' . Driver::class . ' interface.');\n    }\n\n    /**\n     * @param string $tableName\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function invalidTableName($tableName)\n    {\n        return new self('Invalid table name specified: ' . $tableName);\n    }\n\n    /**\n     * @param string $tableName\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function noColumnsSpecifiedForTable($tableName)\n    {\n        return new self('No columns specified for table ' . $tableName);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function limitOffsetInvalid()\n    {\n        return new self('Invalid Offset in Limit Query, it has to be larger than or equal to 0.');\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function typeExists($name)\n    {\n        return new self('Type ' . $name . ' already exists.');\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function unknownColumnType($name)\n    {\n        return new self('Unknown column type \"' . $name . '\" requested. Any Doctrine type that you use has ' .\n            'to be registered with \\Doctrine\\DBAL\\Types\\Type::addType(). You can get a list of all the ' .\n            'known types with \\Doctrine\\DBAL\\Types\\Type::getTypesMap(). If this error occurs during database ' .\n            'introspection then you might have forgotten to register all database types for a Doctrine Type. Use ' .\n            'AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement ' .\n            'Type#getMappedDatabaseTypes(). If the type name is empty you might ' .\n            'have a problem with the cache or forgot some mapping information.');\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return \\Doctrine\\DBAL\\DBALException\n     */\n    public static function typeNotFound($name)\n    {\n        return new self('Type to be overwritten ' . $name . ' does not exist.');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Platforms\\DB2Platform;\nuse Doctrine\\DBAL\\Schema\\DB2SchemaManager;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for IBM DB2 based drivers.\n */\nabstract class AbstractDB2Driver implements Driver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['dbname'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new DB2Platform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new DB2SchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Exception;\n\n/**\n * Abstract base implementation of the {@link DriverException} interface.\n */\nabstract class AbstractDriverException extends Exception implements DriverException\n{\n    /**\n     * The driver specific error code.\n     *\n     * @var int|string|null\n     */\n    private $errorCode;\n\n    /**\n     * The SQLSTATE of the driver.\n     *\n     * @var string|null\n     */\n    private $sqlState;\n\n    /**\n     * @param string          $message   The driver error message.\n     * @param string|null     $sqlState  The SQLSTATE the driver is in at the time the error occurred, if any.\n     * @param int|string|null $errorCode The driver specific error code if any.\n     */\n    public function __construct($message, $sqlState = null, $errorCode = null)\n    {\n        parent::__construct($message);\n\n        $this->errorCode = $errorCode;\n        $this->sqlState  = $sqlState;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getErrorCode()\n    {\n        return $this->errorCode;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLState()\n    {\n        return $this->sqlState;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Exception;\nuse Doctrine\\DBAL\\Platforms\\MariaDb1027Platform;\nuse Doctrine\\DBAL\\Platforms\\MySQL57Platform;\nuse Doctrine\\DBAL\\Platforms\\MySQL80Platform;\nuse Doctrine\\DBAL\\Platforms\\MySqlPlatform;\nuse Doctrine\\DBAL\\Schema\\MySqlSchemaManager;\nuse Doctrine\\DBAL\\VersionAwarePlatformDriver;\nuse function preg_match;\nuse function stripos;\nuse function version_compare;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for MySQL based drivers.\n */\nabstract class AbstractMySQLDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dev.mysql.com/doc/refman/5.7/en/error-messages-client.html\n     * @link http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html\n     */\n    public function convertException($message, DriverException $exception)\n    {\n        switch ($exception->getErrorCode()) {\n            case '1213':\n                return new Exception\\DeadlockException($message, $exception);\n            case '1205':\n                return new Exception\\LockWaitTimeoutException($message, $exception);\n            case '1050':\n                return new Exception\\TableExistsException($message, $exception);\n\n            case '1051':\n            case '1146':\n                return new Exception\\TableNotFoundException($message, $exception);\n\n            case '1216':\n            case '1217':\n            case '1451':\n            case '1452':\n            case '1701':\n                return new Exception\\ForeignKeyConstraintViolationException($message, $exception);\n\n            case '1062':\n            case '1557':\n            case '1569':\n            case '1586':\n                return new Exception\\UniqueConstraintViolationException($message, $exception);\n\n            case '1054':\n            case '1166':\n            case '1611':\n                return new Exception\\InvalidFieldNameException($message, $exception);\n\n            case '1052':\n            case '1060':\n            case '1110':\n                return new Exception\\NonUniqueFieldNameException($message, $exception);\n\n            case '1064':\n            case '1149':\n            case '1287':\n            case '1341':\n            case '1342':\n            case '1343':\n            case '1344':\n            case '1382':\n            case '1479':\n            case '1541':\n            case '1554':\n            case '1626':\n                return new Exception\\SyntaxErrorException($message, $exception);\n\n            case '1044':\n            case '1045':\n            case '1046':\n            case '1049':\n            case '1095':\n            case '1142':\n            case '1143':\n            case '1227':\n            case '1370':\n            case '1429':\n            case '2002':\n            case '2005':\n                return new Exception\\ConnectionException($message, $exception);\n\n            case '1048':\n            case '1121':\n            case '1138':\n            case '1171':\n            case '1252':\n            case '1263':\n            case '1364':\n            case '1566':\n                return new Exception\\NotNullConstraintViolationException($message, $exception);\n        }\n\n        return new Exception\\DriverException($message, $exception);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws DBALException\n     */\n    public function createDatabasePlatformForVersion($version)\n    {\n        $mariadb = stripos($version, 'mariadb') !== false;\n        if ($mariadb && version_compare($this->getMariaDbMysqlVersionNumber($version), '10.2.7', '>=')) {\n            return new MariaDb1027Platform();\n        }\n\n        if (! $mariadb) {\n            $oracleMysqlVersion = $this->getOracleMysqlVersionNumber($version);\n            if (version_compare($oracleMysqlVersion, '8', '>=')) {\n                return new MySQL80Platform();\n            }\n            if (version_compare($oracleMysqlVersion, '5.7.9', '>=')) {\n                return new MySQL57Platform();\n            }\n        }\n\n        return $this->getDatabasePlatform();\n    }\n\n    /**\n     * Get a normalized 'version number' from the server string\n     * returned by Oracle MySQL servers.\n     *\n     * @param string $versionString Version string returned by the driver, i.e. '5.7.10'\n     *\n     * @throws DBALException\n     */\n    private function getOracleMysqlVersionNumber(string $versionString) : string\n    {\n        if (! preg_match(\n            '/^(?P<major>\\d+)(?:\\.(?P<minor>\\d+)(?:\\.(?P<patch>\\d+))?)?/',\n            $versionString,\n            $versionParts\n        )) {\n            throw DBALException::invalidPlatformVersionSpecified(\n                $versionString,\n                '<major_version>.<minor_version>.<patch_version>'\n            );\n        }\n        $majorVersion = $versionParts['major'];\n        $minorVersion = $versionParts['minor'] ?? 0;\n        $patchVersion = $versionParts['patch'] ?? null;\n\n        if ($majorVersion === '5' && $minorVersion === '7' && $patchVersion === null) {\n            $patchVersion = '9';\n        }\n\n        return $majorVersion . '.' . $minorVersion . '.' . $patchVersion;\n    }\n\n    /**\n     * Detect MariaDB server version, including hack for some mariadb distributions\n     * that starts with the prefix '5.5.5-'\n     *\n     * @param string $versionString Version string as returned by mariadb server, i.e. '5.5.5-Mariadb-10.0.8-xenial'\n     *\n     * @throws DBALException\n     */\n    private function getMariaDbMysqlVersionNumber(string $versionString) : string\n    {\n        if (! preg_match(\n            '/^(?:5\\.5\\.5-)?(mariadb-)?(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)/i',\n            $versionString,\n            $versionParts\n        )) {\n            throw DBALException::invalidPlatformVersionSpecified(\n                $versionString,\n                '^(?:5\\.5\\.5-)?(mariadb-)?<major_version>.<minor_version>.<patch_version>'\n            );\n        }\n\n        return $versionParts['major'] . '.' . $versionParts['minor'] . '.' . $versionParts['patch'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['dbname'] ?? $conn->query('SELECT DATABASE()')->fetchColumn();\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @return MySqlPlatform\n     */\n    public function getDatabasePlatform()\n    {\n        return new MySqlPlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @return MySqlSchemaManager\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new MySqlSchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL\\Driver\\AbstractOracleDriver;\n\nuse function implode;\nuse function is_array;\nuse function sprintf;\n\n/**\n * Represents an Oracle Easy Connect string\n *\n * @link https://docs.oracle.com/database/121/NETAG/naming.htm\n */\nfinal class EasyConnectString\n{\n    /** @var string */\n    private $string;\n\n    private function __construct(string $string)\n    {\n        $this->string = $string;\n    }\n\n    public function __toString() : string\n    {\n        return $this->string;\n    }\n\n    /**\n     * Creates the object from an array representation\n     *\n     * @param mixed[] $params\n     */\n    public static function fromArray(array $params) : self\n    {\n        return new self(self::renderParams($params));\n    }\n\n    /**\n     * Creates the object from the given DBAL connection parameters.\n     *\n     * @param mixed[] $params\n     */\n    public static function fromConnectionParameters(array $params) : self\n    {\n        if (! empty($params['connectstring'])) {\n            return new self($params['connectstring']);\n        }\n\n        if (empty($params['host'])) {\n            return new self($params['dbname'] ?? '');\n        }\n\n        $connectData = [];\n\n        if (isset($params['servicename']) || isset($params['dbname'])) {\n            $serviceKey = 'SID';\n\n            if (! empty($params['service'])) {\n                $serviceKey = 'SERVICE_NAME';\n            }\n\n            $serviceName = $params['servicename'] ?? $params['dbname'];\n\n            $connectData[$serviceKey] = $serviceName;\n        }\n\n        if (! empty($params['instancename'])) {\n            $connectData['INSTANCE_NAME'] = $params['instancename'];\n        }\n\n        if (! empty($params['pooled'])) {\n            $connectData['SERVER'] = 'POOLED';\n        }\n\n        return self::fromArray([\n            'DESCRIPTION' => [\n                'ADDRESS' => [\n                    'PROTOCOL' => 'TCP',\n                    'HOST' => $params['host'],\n                    'PORT' => $params['port'] ?? 1521,\n                ],\n                'CONNECT_DATA' => $connectData,\n            ],\n        ]);\n    }\n\n    /**\n     * @param mixed[] $params\n     */\n    private static function renderParams(array $params) : string\n    {\n        $chunks = [];\n\n        foreach ($params as $key => $value) {\n            $string = self::renderValue($value);\n\n            if ($string === '') {\n                continue;\n            }\n\n            $chunks[] = sprintf('(%s=%s)', $key, $string);\n        }\n\n        return implode('', $chunks);\n    }\n\n    /**\n     * @param mixed $value\n     */\n    private static function renderValue($value) : string\n    {\n        if (is_array($value)) {\n            return self::renderParams($value);\n        }\n\n        return (string) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Driver\\AbstractOracleDriver\\EasyConnectString;\nuse Doctrine\\DBAL\\Exception;\nuse Doctrine\\DBAL\\Platforms\\OraclePlatform;\nuse Doctrine\\DBAL\\Schema\\OracleSchemaManager;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for Oracle based drivers.\n */\nabstract class AbstractOracleDriver implements Driver, ExceptionConverterDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function convertException($message, DriverException $exception)\n    {\n        switch ($exception->getErrorCode()) {\n            case '1':\n            case '2299':\n            case '38911':\n                return new Exception\\UniqueConstraintViolationException($message, $exception);\n\n            case '904':\n                return new Exception\\InvalidFieldNameException($message, $exception);\n\n            case '918':\n            case '960':\n                return new Exception\\NonUniqueFieldNameException($message, $exception);\n\n            case '923':\n                return new Exception\\SyntaxErrorException($message, $exception);\n\n            case '942':\n                return new Exception\\TableNotFoundException($message, $exception);\n\n            case '955':\n                return new Exception\\TableExistsException($message, $exception);\n\n            case '1017':\n            case '12545':\n                return new Exception\\ConnectionException($message, $exception);\n\n            case '1400':\n                return new Exception\\NotNullConstraintViolationException($message, $exception);\n\n            case '2266':\n            case '2291':\n            case '2292':\n                return new Exception\\ForeignKeyConstraintViolationException($message, $exception);\n        }\n\n        return new Exception\\DriverException($message, $exception);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['user'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new OraclePlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new OracleSchemaManager($conn);\n    }\n\n    /**\n     * Returns an appropriate Easy Connect String for the given parameters.\n     *\n     * @param mixed[] $params The connection parameters to return the Easy Connect String for.\n     *\n     * @return string\n     */\n    protected function getEasyConnectString(array $params)\n    {\n        return (string) EasyConnectString::fromConnectionParameters($params);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Exception;\nuse Doctrine\\DBAL\\Platforms\\PostgreSQL100Platform;\nuse Doctrine\\DBAL\\Platforms\\PostgreSQL91Platform;\nuse Doctrine\\DBAL\\Platforms\\PostgreSQL92Platform;\nuse Doctrine\\DBAL\\Platforms\\PostgreSQL94Platform;\nuse Doctrine\\DBAL\\Platforms\\PostgreSqlPlatform;\nuse Doctrine\\DBAL\\Schema\\PostgreSqlSchemaManager;\nuse Doctrine\\DBAL\\VersionAwarePlatformDriver;\nuse function preg_match;\nuse function strpos;\nuse function version_compare;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for PostgreSQL based drivers.\n */\nabstract class AbstractPostgreSQLDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html\n     */\n    public function convertException($message, DriverException $exception)\n    {\n        switch ($exception->getSQLState()) {\n            case '40001':\n            case '40P01':\n                return new Exception\\DeadlockException($message, $exception);\n            case '0A000':\n                // Foreign key constraint violations during a TRUNCATE operation\n                // are considered \"feature not supported\" in PostgreSQL.\n                if (strpos($exception->getMessage(), 'truncate') !== false) {\n                    return new Exception\\ForeignKeyConstraintViolationException($message, $exception);\n                }\n\n                break;\n            case '23502':\n                return new Exception\\NotNullConstraintViolationException($message, $exception);\n\n            case '23503':\n                return new Exception\\ForeignKeyConstraintViolationException($message, $exception);\n\n            case '23505':\n                return new Exception\\UniqueConstraintViolationException($message, $exception);\n\n            case '42601':\n                return new Exception\\SyntaxErrorException($message, $exception);\n\n            case '42702':\n                return new Exception\\NonUniqueFieldNameException($message, $exception);\n\n            case '42703':\n                return new Exception\\InvalidFieldNameException($message, $exception);\n\n            case '42P01':\n                return new Exception\\TableNotFoundException($message, $exception);\n\n            case '42P07':\n                return new Exception\\TableExistsException($message, $exception);\n\n            case '7':\n                // In some case (mainly connection errors) the PDO exception does not provide a SQLSTATE via its code.\n                // The exception code is always set to 7 here.\n                // We have to match against the SQLSTATE in the error message in these cases.\n                if (strpos($exception->getMessage(), 'SQLSTATE[08006]') !== false) {\n                    return new Exception\\ConnectionException($message, $exception);\n                }\n\n                break;\n        }\n\n        return new Exception\\DriverException($message, $exception);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabasePlatformForVersion($version)\n    {\n        if (! preg_match('/^(?P<major>\\d+)(?:\\.(?P<minor>\\d+)(?:\\.(?P<patch>\\d+))?)?/', $version, $versionParts)) {\n            throw DBALException::invalidPlatformVersionSpecified(\n                $version,\n                '<major_version>.<minor_version>.<patch_version>'\n            );\n        }\n\n        $majorVersion = $versionParts['major'];\n        $minorVersion = $versionParts['minor'] ?? 0;\n        $patchVersion = $versionParts['patch'] ?? 0;\n        $version      = $majorVersion . '.' . $minorVersion . '.' . $patchVersion;\n\n        switch (true) {\n            case version_compare($version, '10.0', '>='):\n                return new PostgreSQL100Platform();\n            case version_compare($version, '9.4', '>='):\n                return new PostgreSQL94Platform();\n            case version_compare($version, '9.2', '>='):\n                return new PostgreSQL92Platform();\n            case version_compare($version, '9.1', '>='):\n                return new PostgreSQL91Platform();\n            default:\n                return new PostgreSqlPlatform();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['dbname'] ?? $conn->query('SELECT CURRENT_DATABASE()')->fetchColumn();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new PostgreSqlPlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new PostgreSqlSchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Exception;\nuse Doctrine\\DBAL\\Platforms\\SQLAnywhere11Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLAnywhere12Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLAnywhere16Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLAnywherePlatform;\nuse Doctrine\\DBAL\\Schema\\SQLAnywhereSchemaManager;\nuse Doctrine\\DBAL\\VersionAwarePlatformDriver;\nuse function preg_match;\nuse function version_compare;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for SAP Sybase SQL Anywhere based drivers.\n */\nabstract class AbstractSQLAnywhereDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dcx.sybase.com/index.html#sa160/en/saerrors/sqlerror.html\n     */\n    public function convertException($message, DriverException $exception)\n    {\n        switch ($exception->getErrorCode()) {\n            case '-306':\n            case '-307':\n            case '-684':\n                return new Exception\\DeadlockException($message, $exception);\n            case '-210':\n            case '-1175':\n            case '-1281':\n                return new Exception\\LockWaitTimeoutException($message, $exception);\n            case '-100':\n            case '-103':\n            case '-832':\n                return new Exception\\ConnectionException($message, $exception);\n            case '-143':\n                return new Exception\\InvalidFieldNameException($message, $exception);\n            case '-193':\n            case '-196':\n                return new Exception\\UniqueConstraintViolationException($message, $exception);\n            case '-194':\n            case '-198':\n                return new Exception\\ForeignKeyConstraintViolationException($message, $exception);\n            case '-144':\n                return new Exception\\NonUniqueFieldNameException($message, $exception);\n            case '-184':\n            case '-195':\n                return new Exception\\NotNullConstraintViolationException($message, $exception);\n            case '-131':\n                return new Exception\\SyntaxErrorException($message, $exception);\n            case '-110':\n                return new Exception\\TableExistsException($message, $exception);\n            case '-141':\n            case '-1041':\n                return new Exception\\TableNotFoundException($message, $exception);\n        }\n\n        return new Exception\\DriverException($message, $exception);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabasePlatformForVersion($version)\n    {\n        if (! preg_match(\n            '/^(?P<major>\\d+)(?:\\.(?P<minor>\\d+)(?:\\.(?P<patch>\\d+)(?:\\.(?P<build>\\d+))?)?)?/',\n            $version,\n            $versionParts\n        )) {\n            throw DBALException::invalidPlatformVersionSpecified(\n                $version,\n                '<major_version>.<minor_version>.<patch_version>.<build_version>'\n            );\n        }\n\n        $majorVersion = $versionParts['major'];\n        $minorVersion = $versionParts['minor'] ?? 0;\n        $patchVersion = $versionParts['patch'] ?? 0;\n        $buildVersion = $versionParts['build'] ?? 0;\n        $version      = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;\n\n        switch (true) {\n            case version_compare($version, '16', '>='):\n                return new SQLAnywhere16Platform();\n            case version_compare($version, '12', '>='):\n                return new SQLAnywhere12Platform();\n            case version_compare($version, '11', '>='):\n                return new SQLAnywhere11Platform();\n            default:\n                return new SQLAnywherePlatform();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['dbname'] ?? $conn->query('SELECT DB_NAME()')->fetchColumn();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new SQLAnywhere12Platform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new SQLAnywhereSchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Platforms\\SQLServer2005Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLServer2008Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLServer2012Platform;\nuse Doctrine\\DBAL\\Platforms\\SQLServerPlatform;\nuse Doctrine\\DBAL\\Schema\\SQLServerSchemaManager;\nuse Doctrine\\DBAL\\VersionAwarePlatformDriver;\nuse function preg_match;\nuse function version_compare;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for Microsoft SQL Server based drivers.\n */\nabstract class AbstractSQLServerDriver implements Driver, VersionAwarePlatformDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabasePlatformForVersion($version)\n    {\n        if (! preg_match(\n            '/^(?P<major>\\d+)(?:\\.(?P<minor>\\d+)(?:\\.(?P<patch>\\d+)(?:\\.(?P<build>\\d+))?)?)?/',\n            $version,\n            $versionParts\n        )) {\n            throw DBALException::invalidPlatformVersionSpecified(\n                $version,\n                '<major_version>.<minor_version>.<patch_version>.<build_version>'\n            );\n        }\n\n        $majorVersion = $versionParts['major'];\n        $minorVersion = $versionParts['minor'] ?? 0;\n        $patchVersion = $versionParts['patch'] ?? 0;\n        $buildVersion = $versionParts['build'] ?? 0;\n        $version      = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;\n\n        switch (true) {\n            case version_compare($version, '11.00.2100', '>='):\n                return new SQLServer2012Platform();\n            case version_compare($version, '10.00.1600', '>='):\n                return new SQLServer2008Platform();\n            case version_compare($version, '9.00.1399', '>='):\n                return new SQLServer2005Platform();\n            default:\n                return new SQLServerPlatform();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['dbname'] ?? $conn->query('SELECT DB_NAME()')->fetchColumn();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new SQLServer2008Platform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new SQLServerSchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Exception;\nuse Doctrine\\DBAL\\Platforms\\SqlitePlatform;\nuse Doctrine\\DBAL\\Schema\\SqliteSchemaManager;\nuse function strpos;\n\n/**\n * Abstract base implementation of the {@link Doctrine\\DBAL\\Driver} interface for SQLite based drivers.\n */\nabstract class AbstractSQLiteDriver implements Driver, ExceptionConverterDriver\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://www.sqlite.org/c3ref/c_abort.html\n     */\n    public function convertException($message, DriverException $exception)\n    {\n        if (strpos($exception->getMessage(), 'database is locked') !== false) {\n            return new Exception\\LockWaitTimeoutException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'must be unique') !== false ||\n            strpos($exception->getMessage(), 'is not unique') !== false ||\n            strpos($exception->getMessage(), 'are not unique') !== false ||\n            strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false\n        ) {\n            return new Exception\\UniqueConstraintViolationException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'may not be NULL') !== false ||\n            strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false\n        ) {\n            return new Exception\\NotNullConstraintViolationException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'no such table:') !== false) {\n            return new Exception\\TableNotFoundException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'already exists') !== false) {\n            return new Exception\\TableExistsException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'has no column named') !== false) {\n            return new Exception\\InvalidFieldNameException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'ambiguous column name') !== false) {\n            return new Exception\\NonUniqueFieldNameException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'syntax error') !== false) {\n            return new Exception\\SyntaxErrorException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'attempt to write a readonly database') !== false) {\n            return new Exception\\ReadOnlyException($message, $exception);\n        }\n\n        if (strpos($exception->getMessage(), 'unable to open database file') !== false) {\n            return new Exception\\ConnectionException($message, $exception);\n        }\n\n        return new Exception\\DriverException($message, $exception);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabase(Connection $conn)\n    {\n        $params = $conn->getParams();\n\n        return $params['path'] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new SqlitePlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(Connection $conn)\n    {\n        return new SqliteSchemaManager($conn);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\ParameterType;\n\n/**\n * Connection interface.\n * Driver connections must implement this interface.\n *\n * This resembles (a subset of) the PDO interface.\n */\ninterface Connection\n{\n    /**\n     * Prepares a statement for execution and returns a Statement object.\n     *\n     * @param string $prepareString\n     *\n     * @return Statement\n     */\n    public function prepare($prepareString);\n\n    /**\n     * Executes an SQL statement, returning a result set as a Statement object.\n     *\n     * @return Statement\n     */\n    public function query();\n\n    /**\n     * Quotes a string for use in a query.\n     *\n     * @param mixed $input\n     * @param int   $type\n     *\n     * @return mixed\n     */\n    public function quote($input, $type = ParameterType::STRING);\n\n    /**\n     * Executes an SQL statement and return the number of affected rows.\n     *\n     * @param string $statement\n     *\n     * @return int\n     */\n    public function exec($statement);\n\n    /**\n     * Returns the ID of the last inserted row or sequence value.\n     *\n     * @param string|null $name\n     *\n     * @return string\n     */\n    public function lastInsertId($name = null);\n\n    /**\n     * Initiates a transaction.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function beginTransaction();\n\n    /**\n     * Commits a transaction.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function commit();\n\n    /**\n     * Rolls back the current transaction, as initiated by beginTransaction().\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function rollBack();\n\n    /**\n     * Returns the error code associated with the last operation on the database handle.\n     *\n     * @return string|null The error code, or null if no operation has been run on the database handle.\n     */\n    public function errorCode();\n\n    /**\n     * Returns extended error information associated with the last operation on the database handle.\n     *\n     * @return mixed[]\n     */\n    public function errorInfo();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Throwable;\n\n/**\n * Contract for a driver exception.\n *\n * Driver exceptions provide the SQLSTATE of the driver\n * and the driver specific error code at the time the error occurred.\n */\ninterface DriverException extends Throwable\n{\n    /**\n     * Returns the driver specific error code if available.\n     *\n     * Returns null if no driver specific error code is available\n     * for the error raised by the driver.\n     *\n     * @return int|string|null\n     */\n    public function getErrorCode();\n\n    /**\n     * Returns the driver error message.\n     *\n     * @return string\n     */\n    public function getMessage();\n\n    /**\n     * Returns the SQLSTATE the driver was in at the time the error occurred.\n     *\n     * Returns null if the driver does not provide a SQLSTATE for the error occurred.\n     *\n     * @return string|null\n     */\n    public function getSQLState();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\DrizzlePDOMySql;\n\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse Doctrine\\DBAL\\ParameterType;\n\nclass Connection extends PDOConnection\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($value, $type = ParameterType::STRING)\n    {\n        if ($type === ParameterType::BOOLEAN) {\n            return $value ? 'true' : 'false';\n        }\n\n        return parent::quote($value, $type);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\DrizzlePDOMySql;\n\nuse Doctrine\\DBAL\\Platforms\\DrizzlePlatform;\nuse Doctrine\\DBAL\\Schema\\DrizzleSchemaManager;\n\n/**\n * Drizzle driver using PDO MySql.\n */\nclass Driver extends \\Doctrine\\DBAL\\Driver\\PDOMySql\\Driver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        return new Connection(\n            $this->constructPdoDsn($params),\n            $username,\n            $password,\n            $driverOptions\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabasePlatformForVersion($version)\n    {\n        return $this->getDatabasePlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDatabasePlatform()\n    {\n        return new DrizzlePlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSchemaManager(\\Doctrine\\DBAL\\Connection $conn)\n    {\n        return new DrizzleSchemaManager($conn);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'drizzle_pdo_mysql';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\n/**\n * Contract for a driver that is capable of converting DBAL driver exceptions into standardized DBAL driver exceptions.\n */\ninterface ExceptionConverterDriver\n{\n    /**\n     * Converts a given DBAL driver exception into a standardized DBAL driver exception.\n     *\n     * It evaluates the vendor specific error code and SQLSTATE and transforms\n     * it into a unified {@link Doctrine\\DBAL\\Exception\\DriverException} subclass.\n     *\n     * @param string          $message   The DBAL exception message to use.\n     * @param DriverException $exception The DBAL driver exception to convert.\n     *\n     * @return \\Doctrine\\DBAL\\Exception\\DriverException An instance of one of the DriverException subclasses.\n     */\n    public function convertException($message, DriverException $exception);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\IBMDB2;\n\nuse Doctrine\\DBAL\\Driver\\Connection;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse stdClass;\nuse const DB2_AUTOCOMMIT_OFF;\nuse const DB2_AUTOCOMMIT_ON;\nuse function db2_autocommit;\nuse function db2_commit;\nuse function db2_conn_error;\nuse function db2_conn_errormsg;\nuse function db2_connect;\nuse function db2_escape_string;\nuse function db2_exec;\nuse function db2_last_insert_id;\nuse function db2_num_rows;\nuse function db2_pconnect;\nuse function db2_prepare;\nuse function db2_rollback;\nuse function db2_server_info;\nuse function db2_stmt_errormsg;\nuse function func_get_args;\n\nclass DB2Connection implements Connection, ServerInfoAwareConnection\n{\n    /** @var resource */\n    private $conn = null;\n\n    /**\n     * @param mixed[] $params\n     * @param string  $username\n     * @param string  $password\n     * @param mixed[] $driverOptions\n     *\n     * @throws DB2Exception\n     */\n    public function __construct(array $params, $username, $password, $driverOptions = [])\n    {\n        $isPersistent = (isset($params['persistent']) && $params['persistent'] === true);\n\n        if ($isPersistent) {\n            $this->conn = db2_pconnect($params['dbname'], $username, $password, $driverOptions);\n        } else {\n            $this->conn = db2_connect($params['dbname'], $username, $password, $driverOptions);\n        }\n        if (! $this->conn) {\n            throw new DB2Exception(db2_conn_errormsg());\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getServerVersion()\n    {\n        /** @var stdClass $serverInfo */\n        $serverInfo = db2_server_info($this->conn);\n\n        return $serverInfo->DBMS_VER;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($sql)\n    {\n        $stmt = @db2_prepare($this->conn, $sql);\n        if (! $stmt) {\n            throw new DB2Exception(db2_stmt_errormsg());\n        }\n\n        return new DB2Statement($stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $args = func_get_args();\n        $sql  = $args[0];\n        $stmt = $this->prepare($sql);\n        $stmt->execute();\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($input, $type = ParameterType::STRING)\n    {\n        $input = db2_escape_string($input);\n\n        if ($type === ParameterType::INTEGER) {\n            return $input;\n        }\n\n        return \"'\" . $input . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function exec($statement)\n    {\n        $stmt = @db2_exec($this->conn, $statement);\n\n        if ($stmt === false) {\n            throw new DB2Exception(db2_stmt_errormsg());\n        }\n\n        return db2_num_rows($stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        return db2_last_insert_id($this->conn);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function beginTransaction()\n    {\n        db2_autocommit($this->conn, DB2_AUTOCOMMIT_OFF);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function commit()\n    {\n        if (! db2_commit($this->conn)) {\n            throw new DB2Exception(db2_conn_errormsg($this->conn));\n        }\n        db2_autocommit($this->conn, DB2_AUTOCOMMIT_ON);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rollBack()\n    {\n        if (! db2_rollback($this->conn)) {\n            throw new DB2Exception(db2_conn_errormsg($this->conn));\n        }\n        db2_autocommit($this->conn, DB2_AUTOCOMMIT_ON);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return db2_conn_error($this->conn);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return [\n            0 => db2_conn_errormsg($this->conn),\n            1 => $this->errorCode(),\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\IBMDB2;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDB2Driver;\n\n/**\n * IBM DB2 Driver.\n */\nclass DB2Driver extends AbstractDB2Driver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        if (! isset($params['protocol'])) {\n            $params['protocol'] = 'TCPIP';\n        }\n\n        if ($params['host'] !== 'localhost' && $params['host'] !== '127.0.0.1') {\n            // if the host isn't localhost, use extended connection params\n            $params['dbname'] = 'DRIVER={IBM DB2 ODBC DRIVER}' .\n                     ';DATABASE=' . $params['dbname'] .\n                     ';HOSTNAME=' . $params['host'] .\n                     ';PROTOCOL=' . $params['protocol'] .\n                     ';UID=' . $username .\n                     ';PWD=' . $password . ';';\n            if (isset($params['port'])) {\n                $params['dbname'] .= 'PORT=' . $params['port'];\n            }\n\n            $username = null;\n            $password = null;\n        }\n\n        return new DB2Connection($params, $username, $password, $driverOptions);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'ibm_db2';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\IBMDB2;\n\nuse Exception;\n\nclass DB2Exception extends Exception\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\IBMDB2;\n\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse IteratorAggregate;\nuse PDO;\nuse ReflectionClass;\nuse ReflectionObject;\nuse ReflectionProperty;\nuse stdClass;\nuse const CASE_LOWER;\nuse const DB2_BINARY;\nuse const DB2_CHAR;\nuse const DB2_LONG;\nuse const DB2_PARAM_FILE;\nuse const DB2_PARAM_IN;\nuse function array_change_key_case;\nuse function db2_bind_param;\nuse function db2_execute;\nuse function db2_fetch_array;\nuse function db2_fetch_assoc;\nuse function db2_fetch_both;\nuse function db2_fetch_object;\nuse function db2_free_result;\nuse function db2_num_fields;\nuse function db2_num_rows;\nuse function db2_stmt_error;\nuse function db2_stmt_errormsg;\nuse function error_get_last;\nuse function fclose;\nuse function func_get_args;\nuse function func_num_args;\nuse function fwrite;\nuse function gettype;\nuse function is_object;\nuse function is_resource;\nuse function is_string;\nuse function ksort;\nuse function sprintf;\nuse function stream_copy_to_stream;\nuse function stream_get_meta_data;\nuse function strtolower;\nuse function tmpfile;\n\nclass DB2Statement implements IteratorAggregate, Statement\n{\n    /** @var resource */\n    private $stmt;\n\n    /** @var mixed[] */\n    private $bindParam = [];\n\n    /**\n     * Map of LOB parameter positions to the tuples containing reference to the variable bound to the driver statement\n     * and the temporary file handle bound to the underlying statement\n     *\n     * @var mixed[][]\n     */\n    private $lobs = [];\n\n    /** @var string Name of the default class to instantiate when fetching class instances. */\n    private $defaultFetchClass = '\\stdClass';\n\n    /** @var mixed[] Constructor arguments for the default class to instantiate when fetching class instances. */\n    private $defaultFetchClassCtorArgs = [];\n\n    /** @var int */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * Indicates whether the statement is in the state when fetching results is possible\n     *\n     * @var bool\n     */\n    private $result = false;\n\n    /**\n     * @param resource $stmt\n     */\n    public function __construct($stmt)\n    {\n        $this->stmt = $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        return $this->bindParam($param, $value, $type);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        switch ($type) {\n            case ParameterType::INTEGER:\n                $this->bind($column, $variable, DB2_PARAM_IN, DB2_LONG);\n                break;\n\n            case ParameterType::LARGE_OBJECT:\n                if (isset($this->lobs[$column])) {\n                    [, $handle] = $this->lobs[$column];\n                    fclose($handle);\n                }\n\n                $handle = $this->createTemporaryFile();\n                $path   = stream_get_meta_data($handle)['uri'];\n\n                $this->bind($column, $path, DB2_PARAM_FILE, DB2_BINARY);\n\n                $this->lobs[$column] = [&$variable, $handle];\n                break;\n\n            default:\n                $this->bind($column, $variable, DB2_PARAM_IN, DB2_CHAR);\n                break;\n        }\n\n        return true;\n    }\n\n    /**\n     * @param int|string $parameter Parameter position or name\n     * @param mixed      $variable\n     *\n     * @throws DB2Exception\n     */\n    private function bind($parameter, &$variable, int $parameterType, int $dataType) : void\n    {\n        $this->bindParam[$parameter] =& $variable;\n\n        if (! db2_bind_param($this->stmt, $parameter, 'variable', $parameterType, $dataType)) {\n            throw new DB2Exception(db2_stmt_errormsg());\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        if (! $this->stmt) {\n            return false;\n        }\n\n        $this->bindParam = [];\n\n        if (! db2_free_result($this->stmt)) {\n            return false;\n        }\n\n        $this->result = false;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        if (! $this->stmt) {\n            return false;\n        }\n\n        return db2_num_fields($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return db2_stmt_error();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return [\n            db2_stmt_errormsg(),\n            db2_stmt_error(),\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        if (! $this->stmt) {\n            return false;\n        }\n\n        if ($params === null) {\n            ksort($this->bindParam);\n\n            $params = [];\n\n            foreach ($this->bindParam as $column => $value) {\n                $params[] = $value;\n            }\n        }\n\n        foreach ($this->lobs as [$source, $target]) {\n            if (is_resource($source)) {\n                $this->copyStreamToStream($source, $target);\n\n                continue;\n            }\n\n            $this->writeStringToStream($source, $target);\n        }\n\n        $retval = db2_execute($this->stmt, $params);\n\n        foreach ($this->lobs as [, $handle]) {\n            fclose($handle);\n        }\n\n        $this->lobs = [];\n\n        if ($retval === false) {\n            throw new DB2Exception(db2_stmt_errormsg());\n        }\n\n        $this->result = true;\n\n        return $retval;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->defaultFetchMode          = $fetchMode;\n        $this->defaultFetchClass         = $arg2 ?: $this->defaultFetchClass;\n        $this->defaultFetchClassCtorArgs = $arg3 ? (array) $arg3 : $this->defaultFetchClassCtorArgs;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        // do not try fetching from the statement if it's not expected to contain result\n        // in order to prevent exceptional situation\n        if (! $this->result) {\n            return false;\n        }\n\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n        switch ($fetchMode) {\n            case FetchMode::COLUMN:\n                return $this->fetchColumn();\n\n            case FetchMode::MIXED:\n                return db2_fetch_both($this->stmt);\n\n            case FetchMode::ASSOCIATIVE:\n                return db2_fetch_assoc($this->stmt);\n\n            case FetchMode::CUSTOM_OBJECT:\n                $className = $this->defaultFetchClass;\n                $ctorArgs  = $this->defaultFetchClassCtorArgs;\n\n                if (func_num_args() >= 2) {\n                    $args      = func_get_args();\n                    $className = $args[1];\n                    $ctorArgs  = $args[2] ?? [];\n                }\n\n                $result = db2_fetch_object($this->stmt);\n\n                if ($result instanceof stdClass) {\n                    $result = $this->castObject($result, $className, $ctorArgs);\n                }\n\n                return $result;\n\n            case FetchMode::NUMERIC:\n                return db2_fetch_array($this->stmt);\n\n            case FetchMode::STANDARD_OBJECT:\n                return db2_fetch_object($this->stmt);\n\n            default:\n                throw new DB2Exception('Given Fetch-Style ' . $fetchMode . ' is not supported.');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $rows = [];\n\n        switch ($fetchMode) {\n            case FetchMode::CUSTOM_OBJECT:\n                while (($row = $this->fetch(...func_get_args())) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n            case FetchMode::COLUMN:\n                while (($row = $this->fetchColumn()) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n            default:\n                while (($row = $this->fetch($fetchMode)) !== false) {\n                    $rows[] = $row;\n                }\n        }\n\n        return $rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        if ($row === false) {\n            return false;\n        }\n\n        return $row[$columnIndex] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        return @db2_num_rows($this->stmt) ? : 0;\n    }\n\n    /**\n     * Casts a stdClass object to the given class name mapping its' properties.\n     *\n     * @param stdClass      $sourceObject     Object to cast from.\n     * @param string|object $destinationClass Name of the class or class instance to cast to.\n     * @param mixed[]       $ctorArgs         Arguments to use for constructing the destination class instance.\n     *\n     * @return object\n     *\n     * @throws DB2Exception\n     */\n    private function castObject(stdClass $sourceObject, $destinationClass, array $ctorArgs = [])\n    {\n        if (! is_string($destinationClass)) {\n            if (! is_object($destinationClass)) {\n                throw new DB2Exception(sprintf(\n                    'Destination class has to be of type string or object, %s given.',\n                    gettype($destinationClass)\n                ));\n            }\n        } else {\n            $destinationClass = new ReflectionClass($destinationClass);\n            $destinationClass = $destinationClass->newInstanceArgs($ctorArgs);\n        }\n\n        $sourceReflection           = new ReflectionObject($sourceObject);\n        $destinationClassReflection = new ReflectionObject($destinationClass);\n        /** @var ReflectionProperty[] $destinationProperties */\n        $destinationProperties = array_change_key_case($destinationClassReflection->getProperties(), CASE_LOWER);\n\n        foreach ($sourceReflection->getProperties() as $sourceProperty) {\n            $sourceProperty->setAccessible(true);\n\n            $name  = $sourceProperty->getName();\n            $value = $sourceProperty->getValue($sourceObject);\n\n            // Try to find a case-matching property.\n            if ($destinationClassReflection->hasProperty($name)) {\n                $destinationProperty = $destinationClassReflection->getProperty($name);\n\n                $destinationProperty->setAccessible(true);\n                $destinationProperty->setValue($destinationClass, $value);\n\n                continue;\n            }\n\n            $name = strtolower($name);\n\n            // Try to find a property without matching case.\n            // Fallback for the driver returning either all uppercase or all lowercase column names.\n            if (isset($destinationProperties[$name])) {\n                $destinationProperty = $destinationProperties[$name];\n\n                $destinationProperty->setAccessible(true);\n                $destinationProperty->setValue($destinationClass, $value);\n\n                continue;\n            }\n\n            $destinationClass->$name = $value;\n        }\n\n        return $destinationClass;\n    }\n\n    /**\n     * @return resource\n     *\n     * @throws DB2Exception\n     */\n    private function createTemporaryFile()\n    {\n        $handle = @tmpfile();\n\n        if ($handle === false) {\n            throw new DB2Exception('Could not create temporary file: ' . error_get_last()['message']);\n        }\n\n        return $handle;\n    }\n\n    /**\n     * @param resource $source\n     * @param resource $target\n     *\n     * @throws DB2Exception\n     */\n    private function copyStreamToStream($source, $target) : void\n    {\n        if (@stream_copy_to_stream($source, $target) === false) {\n            throw new DB2Exception('Could not copy source stream to temporary file: ' . error_get_last()['message']);\n        }\n    }\n\n    /**\n     * @param resource $target\n     *\n     * @throws DB2Exception\n     */\n    private function writeStringToStream(string $string, $target) : void\n    {\n        if (@fwrite($target, $string) === false) {\n            throw new DB2Exception('Could not write string to temporary file: ' . error_get_last()['message']);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\Mysqli;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractMySQLDriver;\n\nclass Driver extends AbstractMySQLDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            return new MysqliConnection($params, $username, $password, $driverOptions);\n        } catch (MysqliException $e) {\n            throw DBALException::driverException($this, $e);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'mysqli';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\Mysqli;\n\nuse Doctrine\\DBAL\\Driver\\Connection;\nuse Doctrine\\DBAL\\Driver\\PingableConnection;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse mysqli;\nuse const MYSQLI_INIT_COMMAND;\nuse const MYSQLI_OPT_CONNECT_TIMEOUT;\nuse const MYSQLI_OPT_LOCAL_INFILE;\nuse const MYSQLI_READ_DEFAULT_FILE;\nuse const MYSQLI_READ_DEFAULT_GROUP;\nuse const MYSQLI_SERVER_PUBLIC_KEY;\nuse function defined;\nuse function floor;\nuse function func_get_args;\nuse function in_array;\nuse function ini_get;\nuse function mysqli_errno;\nuse function mysqli_error;\nuse function mysqli_init;\nuse function mysqli_options;\nuse function restore_error_handler;\nuse function set_error_handler;\nuse function sprintf;\nuse function stripos;\n\nclass MysqliConnection implements Connection, PingableConnection, ServerInfoAwareConnection\n{\n    /**\n     * Name of the option to set connection flags\n     */\n    public const OPTION_FLAGS = 'flags';\n\n    /** @var mysqli */\n    private $conn;\n\n    /**\n     * @param mixed[] $params\n     * @param string  $username\n     * @param string  $password\n     * @param mixed[] $driverOptions\n     *\n     * @throws MysqliException\n     */\n    public function __construct(array $params, $username, $password, array $driverOptions = [])\n    {\n        $port = $params['port'] ?? ini_get('mysqli.default_port');\n\n        // Fallback to default MySQL port if not given.\n        if (! $port) {\n            $port = 3306;\n        }\n\n        $socket = $params['unix_socket'] ?? ini_get('mysqli.default_socket');\n        $dbname = $params['dbname'] ?? null;\n\n        $flags = $driverOptions[static::OPTION_FLAGS] ?? null;\n\n        $this->conn = mysqli_init();\n\n        $this->setSecureConnection($params);\n        $this->setDriverOptions($driverOptions);\n\n        set_error_handler(static function () {\n        });\n        try {\n            if (! $this->conn->real_connect($params['host'], $username, $password, $dbname, $port, $socket, $flags)) {\n                throw new MysqliException($this->conn->connect_error, $this->conn->sqlstate ?? 'HY000', $this->conn->connect_errno);\n            }\n        } finally {\n            restore_error_handler();\n        }\n\n        if (! isset($params['charset'])) {\n            return;\n        }\n\n        $this->conn->set_charset($params['charset']);\n    }\n\n    /**\n     * Retrieves mysqli native resource handle.\n     *\n     * Could be used if part of your application is not using DBAL.\n     *\n     * @return mysqli\n     */\n    public function getWrappedResourceHandle()\n    {\n        return $this->conn;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * The server version detection includes a special case for MariaDB\n     * to support '5.5.5-' prefixed versions introduced in Maria 10+\n     *\n     * @link https://jira.mariadb.org/browse/MDEV-4088\n     */\n    public function getServerVersion()\n    {\n        $serverInfos = $this->conn->get_server_info();\n        if (stripos($serverInfos, 'mariadb') !== false) {\n            return $serverInfos;\n        }\n\n        $majorVersion = floor($this->conn->server_version / 10000);\n        $minorVersion = floor(($this->conn->server_version - $majorVersion * 10000) / 100);\n        $patchVersion = floor($this->conn->server_version - $majorVersion * 10000 - $minorVersion * 100);\n\n        return $majorVersion . '.' . $minorVersion . '.' . $patchVersion;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($prepareString)\n    {\n        return new MysqliStatement($this->conn, $prepareString);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $args = func_get_args();\n        $sql  = $args[0];\n        $stmt = $this->prepare($sql);\n        $stmt->execute();\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($input, $type = ParameterType::STRING)\n    {\n        return \"'\" . $this->conn->escape_string($input) . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function exec($statement)\n    {\n        if ($this->conn->query($statement) === false) {\n            throw new MysqliException($this->conn->error, $this->conn->sqlstate, $this->conn->errno);\n        }\n\n        return $this->conn->affected_rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        return $this->conn->insert_id;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function beginTransaction()\n    {\n        $this->conn->query('START TRANSACTION');\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function commit()\n    {\n        return $this->conn->commit();\n    }\n\n    /**\n     * {@inheritdoc}non-PHPdoc)\n     */\n    public function rollBack()\n    {\n        return $this->conn->rollback();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return $this->conn->errno;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return $this->conn->error;\n    }\n\n    /**\n     * Apply the driver options to the connection.\n     *\n     * @param mixed[] $driverOptions\n     *\n     * @throws MysqliException When one of of the options is not supported.\n     * @throws MysqliException When applying doesn't work - e.g. due to incorrect value.\n     */\n    private function setDriverOptions(array $driverOptions = [])\n    {\n        $supportedDriverOptions = [\n            MYSQLI_OPT_CONNECT_TIMEOUT,\n            MYSQLI_OPT_LOCAL_INFILE,\n            MYSQLI_INIT_COMMAND,\n            MYSQLI_READ_DEFAULT_FILE,\n            MYSQLI_READ_DEFAULT_GROUP,\n        ];\n\n        if (defined('MYSQLI_SERVER_PUBLIC_KEY')) {\n            $supportedDriverOptions[] = MYSQLI_SERVER_PUBLIC_KEY;\n        }\n\n        $exceptionMsg = \"%s option '%s' with value '%s'\";\n\n        foreach ($driverOptions as $option => $value) {\n            if ($option === static::OPTION_FLAGS) {\n                continue;\n            }\n\n            if (! in_array($option, $supportedDriverOptions, true)) {\n                throw new MysqliException(\n                    sprintf($exceptionMsg, 'Unsupported', $option, $value)\n                );\n            }\n\n            if (@mysqli_options($this->conn, $option, $value)) {\n                continue;\n            }\n\n            $msg  = sprintf($exceptionMsg, 'Failed to set', $option, $value);\n            $msg .= sprintf(', error: %s (%d)', mysqli_error($this->conn), mysqli_errno($this->conn));\n\n            throw new MysqliException(\n                $msg,\n                $this->conn->sqlstate,\n                $this->conn->errno\n            );\n        }\n    }\n\n    /**\n     * Pings the server and re-connects when `mysqli.reconnect = 1`\n     *\n     * @return bool\n     */\n    public function ping()\n    {\n        return $this->conn->ping();\n    }\n\n    /**\n     * Establish a secure connection\n     *\n     * @param mixed[] $params\n     *\n     * @throws MysqliException\n     */\n    private function setSecureConnection(array $params)\n    {\n        if (! isset($params['ssl_key']) &&\n            ! isset($params['ssl_cert']) &&\n            ! isset($params['ssl_ca']) &&\n            ! isset($params['ssl_capath']) &&\n            ! isset($params['ssl_cipher'])\n        ) {\n            return;\n        }\n\n        $this->conn->ssl_set(\n            $params['ssl_key']    ?? null,\n            $params['ssl_cert']   ?? null,\n            $params['ssl_ca']     ?? null,\n            $params['ssl_capath'] ?? null,\n            $params['ssl_cipher'] ?? null\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\Mysqli;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDriverException;\n\n/**\n * Exception thrown in case the mysqli driver errors.\n */\nclass MysqliException extends AbstractDriverException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\Mysqli;\n\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\Exception\\InvalidArgumentException;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse IteratorAggregate;\nuse mysqli;\nuse mysqli_stmt;\nuse PDO;\nuse stdClass;\nuse function array_combine;\nuse function array_fill;\nuse function count;\nuse function feof;\nuse function fread;\nuse function get_resource_type;\nuse function is_resource;\nuse function sprintf;\nuse function str_repeat;\n\nclass MysqliStatement implements IteratorAggregate, Statement\n{\n    /** @var string[] */\n    protected static $_paramTypeMap = [\n        ParameterType::STRING       => 's',\n        ParameterType::BINARY       => 's',\n        ParameterType::BOOLEAN      => 'i',\n        ParameterType::NULL         => 's',\n        ParameterType::INTEGER      => 'i',\n        ParameterType::LARGE_OBJECT => 'b',\n    ];\n\n    /** @var mysqli */\n    protected $_conn;\n\n    /** @var mysqli_stmt */\n    protected $_stmt;\n\n    /** @var string[]|bool|null */\n    protected $_columnNames;\n\n    /** @var mixed[]|null */\n    protected $_rowBindedValues;\n\n    /** @var mixed[] */\n    protected $_bindedValues;\n\n    /** @var string */\n    protected $types;\n\n    /**\n     * Contains ref values for bindValue().\n     *\n     * @var mixed[]\n     */\n    protected $_values = [];\n\n    /** @var int */\n    protected $_defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * Indicates whether the statement is in the state when fetching results is possible\n     *\n     * @var bool\n     */\n    private $result = false;\n\n    /**\n     * @param string $prepareString\n     *\n     * @throws MysqliException\n     */\n    public function __construct(mysqli $conn, $prepareString)\n    {\n        $this->_conn = $conn;\n        $this->_stmt = $conn->prepare($prepareString);\n        if ($this->_stmt === false) {\n            throw new MysqliException($this->_conn->error, $this->_conn->sqlstate, $this->_conn->errno);\n        }\n\n        $paramCount = $this->_stmt->param_count;\n        if (0 >= $paramCount) {\n            return;\n        }\n\n        $this->types         = str_repeat('s', $paramCount);\n        $this->_bindedValues = array_fill(1, $paramCount, null);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        if ($type === null) {\n            $type = 's';\n        } else {\n            if (! isset(self::$_paramTypeMap[$type])) {\n                throw new MysqliException(sprintf(\"Unknown type: '%s'\", $type));\n            }\n\n            $type = self::$_paramTypeMap[$type];\n        }\n\n        $this->_bindedValues[$column] =& $variable;\n        $this->types[$column - 1]     = $type;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        if ($type === null) {\n            $type = 's';\n        } else {\n            if (! isset(self::$_paramTypeMap[$type])) {\n                throw new MysqliException(sprintf(\"Unknown type: '%s'\", $type));\n            }\n\n            $type = self::$_paramTypeMap[$type];\n        }\n\n        $this->_values[$param]       = $value;\n        $this->_bindedValues[$param] =& $this->_values[$param];\n        $this->types[$param - 1]     = $type;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        if ($this->_bindedValues !== null) {\n            if ($params !== null) {\n                if (! $this->_bindValues($params)) {\n                    throw new MysqliException($this->_stmt->error, $this->_stmt->errno);\n                }\n            } else {\n                [$types, $values, $streams] = $this->separateBoundValues();\n                if (! $this->_stmt->bind_param($types, ...$values)) {\n                    throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);\n                }\n                $this->sendLongData($streams);\n            }\n        }\n\n        if (! $this->_stmt->execute()) {\n            throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);\n        }\n\n        if ($this->_columnNames === null) {\n            $meta = $this->_stmt->result_metadata();\n            if ($meta !== false) {\n                $columnNames = [];\n                foreach ($meta->fetch_fields() as $col) {\n                    $columnNames[] = $col->name;\n                }\n                $meta->free();\n\n                $this->_columnNames = $columnNames;\n            } else {\n                $this->_columnNames = false;\n            }\n        }\n\n        if ($this->_columnNames !== false) {\n            // Store result of every execution which has it. Otherwise it will be impossible\n            // to execute a new statement in case if the previous one has non-fetched rows\n            // @link http://dev.mysql.com/doc/refman/5.7/en/commands-out-of-sync.html\n            $this->_stmt->store_result();\n\n            // Bind row values _after_ storing the result. Otherwise, if mysqli is compiled with libmysql,\n            // it will have to allocate as much memory as it may be needed for the given column type\n            // (e.g. for a LONGBLOB field it's 4 gigabytes)\n            // @link https://bugs.php.net/bug.php?id=51386#1270673122\n            //\n            // Make sure that the values are bound after each execution. Otherwise, if closeCursor() has been\n            // previously called on the statement, the values are unbound making the statement unusable.\n            //\n            // It's also important that row values are bound after _each_ call to store_result(). Otherwise,\n            // if mysqli is compiled with libmysql, subsequently fetched string values will get truncated\n            // to the length of the ones fetched during the previous execution.\n            $this->_rowBindedValues = array_fill(0, count($this->_columnNames), null);\n\n            $refs = [];\n            foreach ($this->_rowBindedValues as $key => &$value) {\n                $refs[$key] =& $value;\n            }\n\n            if (! $this->_stmt->bind_result(...$refs)) {\n                throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);\n            }\n        }\n\n        $this->result = true;\n\n        return true;\n    }\n\n    /**\n     * Split $this->_bindedValues into those values that need to be sent using mysqli::send_long_data()\n     * and those that can be bound the usual way.\n     *\n     * @return array<int, array<int|string, mixed>|string>\n     */\n    private function separateBoundValues()\n    {\n        $streams = $values = [];\n        $types   = $this->types;\n\n        foreach ($this->_bindedValues as $parameter => $value) {\n            if (! isset($types[$parameter - 1])) {\n                $types[$parameter - 1] = static::$_paramTypeMap[ParameterType::STRING];\n            }\n\n            if ($types[$parameter - 1] === static::$_paramTypeMap[ParameterType::LARGE_OBJECT]) {\n                if (is_resource($value)) {\n                    if (get_resource_type($value) !== 'stream') {\n                        throw new InvalidArgumentException('Resources passed with the LARGE_OBJECT parameter type must be stream resources.');\n                    }\n                    $streams[$parameter] = $value;\n                    $values[$parameter]  = null;\n                    continue;\n                } else {\n                    $types[$parameter - 1] = static::$_paramTypeMap[ParameterType::STRING];\n                }\n            }\n\n            $values[$parameter] = $value;\n        }\n\n        return [$types, $values, $streams];\n    }\n\n    /**\n     * Handle $this->_longData after regular query parameters have been bound\n     *\n     * @throws MysqliException\n     */\n    private function sendLongData($streams)\n    {\n        foreach ($streams as $paramNr => $stream) {\n            while (! feof($stream)) {\n                $chunk = fread($stream, 8192);\n\n                if ($chunk === false) {\n                    throw new MysqliException(\"Failed reading the stream resource for parameter offset ${paramNr}.\");\n                }\n\n                if (! $this->_stmt->send_long_data($paramNr - 1, $chunk)) {\n                    throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);\n                }\n            }\n        }\n    }\n\n    /**\n     * Binds a array of values to bound parameters.\n     *\n     * @param mixed[] $values\n     *\n     * @return bool\n     */\n    private function _bindValues($values)\n    {\n        $params = [];\n        $types  = str_repeat('s', count($values));\n\n        foreach ($values as &$v) {\n            $params[] =& $v;\n        }\n\n        return $this->_stmt->bind_param($types, ...$params);\n    }\n\n    /**\n     * @return mixed[]|false\n     */\n    private function _fetch()\n    {\n        $ret = $this->_stmt->fetch();\n\n        if ($ret === true) {\n            $values = [];\n            foreach ($this->_rowBindedValues as $v) {\n                $values[] = $v;\n            }\n\n            return $values;\n        }\n\n        return $ret;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        // do not try fetching from the statement if it's not expected to contain result\n        // in order to prevent exceptional situation\n        if (! $this->result) {\n            return false;\n        }\n\n        $fetchMode = $fetchMode ?: $this->_defaultFetchMode;\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            return $this->fetchColumn();\n        }\n\n        $values = $this->_fetch();\n        if ($values === null) {\n            return false;\n        }\n\n        if ($values === false) {\n            throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);\n        }\n\n        switch ($fetchMode) {\n            case FetchMode::NUMERIC:\n                return $values;\n\n            case FetchMode::ASSOCIATIVE:\n                return array_combine($this->_columnNames, $values);\n\n            case FetchMode::MIXED:\n                $ret  = array_combine($this->_columnNames, $values);\n                $ret += $values;\n\n                return $ret;\n\n            case FetchMode::STANDARD_OBJECT:\n                $assoc = array_combine($this->_columnNames, $values);\n                $ret   = new stdClass();\n\n                foreach ($assoc as $column => $value) {\n                    $ret->$column = $value;\n                }\n\n                return $ret;\n\n            default:\n                throw new MysqliException(sprintf(\"Unknown fetch type '%s'\", $fetchMode));\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $fetchMode = $fetchMode ?: $this->_defaultFetchMode;\n\n        $rows = [];\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            while (($row = $this->fetchColumn()) !== false) {\n                $rows[] = $row;\n            }\n        } else {\n            while (($row = $this->fetch($fetchMode)) !== false) {\n                $rows[] = $row;\n            }\n        }\n\n        return $rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        if ($row === false) {\n            return false;\n        }\n\n        return $row[$columnIndex] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return $this->_stmt->errno;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return $this->_stmt->error;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        $this->_stmt->free_result();\n        $this->result = false;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        if ($this->_columnNames === false) {\n            return $this->_stmt->affected_rows;\n        }\n\n        return $this->_stmt->num_rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return $this->_stmt->field_count;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->_defaultFetchMode = $fetchMode;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\OCI8;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractOracleDriver;\nuse const OCI_DEFAULT;\n\n/**\n * A Doctrine DBAL driver for the Oracle OCI8 PHP extensions.\n */\nclass Driver extends AbstractOracleDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            return new OCI8Connection(\n                $username,\n                $password,\n                $this->_constructDsn($params),\n                $params['charset'] ?? null,\n                $params['sessionMode'] ?? OCI_DEFAULT,\n                $params['persistent'] ?? false\n            );\n        } catch (OCI8Exception $e) {\n            throw DBALException::driverException($this, $e);\n        }\n    }\n\n    /**\n     * Constructs the Oracle DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    protected function _constructDsn(array $params)\n    {\n        return $this->getEasyConnectString($params);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'oci8';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\OCI8;\n\nuse Doctrine\\DBAL\\Driver\\Connection;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse UnexpectedValueException;\nuse const OCI_COMMIT_ON_SUCCESS;\nuse const OCI_DEFAULT;\nuse const OCI_NO_AUTO_COMMIT;\nuse function addcslashes;\nuse function define;\nuse function defined;\nuse function func_get_args;\nuse function is_float;\nuse function is_int;\nuse function oci_commit;\nuse function oci_connect;\nuse function oci_error;\nuse function oci_pconnect;\nuse function oci_rollback;\nuse function oci_server_version;\nuse function preg_match;\nuse function sprintf;\nuse function str_replace;\n\n/**\n * OCI8 implementation of the Connection interface.\n */\nclass OCI8Connection implements Connection, ServerInfoAwareConnection\n{\n    /** @var resource */\n    protected $dbh;\n\n    /** @var int */\n    protected $executeMode = OCI_COMMIT_ON_SUCCESS;\n\n    /**\n     * Creates a Connection to an Oracle Database using oci8 extension.\n     *\n     * @param string      $username\n     * @param string      $password\n     * @param string      $db\n     * @param string|null $charset\n     * @param int         $sessionMode\n     * @param bool        $persistent\n     *\n     * @throws OCI8Exception\n     */\n    public function __construct($username, $password, $db, $charset = null, $sessionMode = OCI_DEFAULT, $persistent = false)\n    {\n        if (! defined('OCI_NO_AUTO_COMMIT')) {\n            define('OCI_NO_AUTO_COMMIT', 0);\n        }\n\n        $this->dbh = $persistent\n            ? @oci_pconnect($username, $password, $db, $charset, $sessionMode)\n            : @oci_connect($username, $password, $db, $charset, $sessionMode);\n\n        if (! $this->dbh) {\n            throw OCI8Exception::fromErrorInfo(oci_error());\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws UnexpectedValueException If the version string returned by the database server\n     *                                  does not contain a parsable version number.\n     */\n    public function getServerVersion()\n    {\n        if (! preg_match('/\\s+(\\d+\\.\\d+\\.\\d+\\.\\d+\\.\\d+)\\s+/', oci_server_version($this->dbh), $version)) {\n            throw new UnexpectedValueException(\n                sprintf(\n                    'Unexpected database version string \"%s\". Cannot parse an appropriate version number from it. ' .\n                    'Please report this database version string to the Doctrine team.',\n                    oci_server_version($this->dbh)\n                )\n            );\n        }\n\n        return $version[1];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($prepareString)\n    {\n        return new OCI8Statement($this->dbh, $prepareString, $this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $args = func_get_args();\n        $sql  = $args[0];\n        //$fetchMode = $args[1];\n        $stmt = $this->prepare($sql);\n        $stmt->execute();\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($value, $type = ParameterType::STRING)\n    {\n        if (is_int($value) || is_float($value)) {\n            return $value;\n        }\n        $value = str_replace(\"'\", \"''\", $value);\n\n        return \"'\" . addcslashes($value, \"\\000\\n\\r\\\\\\032\") . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function exec($statement)\n    {\n        $stmt = $this->prepare($statement);\n        $stmt->execute();\n\n        return $stmt->rowCount();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        if ($name === null) {\n            return false;\n        }\n\n        $sql    = 'SELECT ' . $name . '.CURRVAL FROM DUAL';\n        $stmt   = $this->query($sql);\n        $result = $stmt->fetchColumn();\n\n        if ($result === false) {\n            throw new OCI8Exception('lastInsertId failed: Query was executed but no result was returned.');\n        }\n\n        return (int) $result;\n    }\n\n    /**\n     * Returns the current execution mode.\n     *\n     * @return int\n     */\n    public function getExecuteMode()\n    {\n        return $this->executeMode;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function beginTransaction()\n    {\n        $this->executeMode = OCI_NO_AUTO_COMMIT;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function commit()\n    {\n        if (! oci_commit($this->dbh)) {\n            throw OCI8Exception::fromErrorInfo($this->errorInfo());\n        }\n        $this->executeMode = OCI_COMMIT_ON_SUCCESS;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rollBack()\n    {\n        if (! oci_rollback($this->dbh)) {\n            throw OCI8Exception::fromErrorInfo($this->errorInfo());\n        }\n        $this->executeMode = OCI_COMMIT_ON_SUCCESS;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        $error = oci_error($this->dbh);\n        if ($error !== false) {\n            $error = $error['code'];\n        }\n\n        return $error;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return oci_error($this->dbh);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\OCI8;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDriverException;\n\nclass OCI8Exception extends AbstractDriverException\n{\n    /**\n     * @param mixed[] $error\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\OCI8\\OCI8Exception\n     */\n    public static function fromErrorInfo($error)\n    {\n        return new self($error['message'], null, $error['code']);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\OCI8;\n\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse InvalidArgumentException;\nuse IteratorAggregate;\nuse PDO;\nuse const OCI_ASSOC;\nuse const OCI_B_BIN;\nuse const OCI_B_BLOB;\nuse const OCI_BOTH;\nuse const OCI_D_LOB;\nuse const OCI_FETCHSTATEMENT_BY_COLUMN;\nuse const OCI_FETCHSTATEMENT_BY_ROW;\nuse const OCI_NUM;\nuse const OCI_RETURN_LOBS;\nuse const OCI_RETURN_NULLS;\nuse const OCI_TEMP_BLOB;\nuse const PREG_OFFSET_CAPTURE;\nuse const SQLT_CHR;\nuse function array_key_exists;\nuse function count;\nuse function implode;\nuse function is_numeric;\nuse function oci_bind_by_name;\nuse function oci_cancel;\nuse function oci_error;\nuse function oci_execute;\nuse function oci_fetch_all;\nuse function oci_fetch_array;\nuse function oci_fetch_object;\nuse function oci_new_descriptor;\nuse function oci_num_fields;\nuse function oci_num_rows;\nuse function oci_parse;\nuse function preg_match;\nuse function preg_quote;\nuse function sprintf;\nuse function substr;\n\n/**\n * The OCI8 implementation of the Statement interface.\n */\nclass OCI8Statement implements IteratorAggregate, Statement\n{\n    /** @var resource */\n    protected $_dbh;\n\n    /** @var resource */\n    protected $_sth;\n\n    /** @var OCI8Connection */\n    protected $_conn;\n\n    /** @var string */\n    protected static $_PARAM = ':param';\n\n    /** @var int[] */\n    protected static $fetchModeMap = [\n        FetchMode::MIXED       => OCI_BOTH,\n        FetchMode::ASSOCIATIVE => OCI_ASSOC,\n        FetchMode::NUMERIC     => OCI_NUM,\n        FetchMode::COLUMN      => OCI_NUM,\n    ];\n\n    /** @var int */\n    protected $_defaultFetchMode = FetchMode::MIXED;\n\n    /** @var string[] */\n    protected $_paramMap = [];\n\n    /**\n     * Holds references to bound parameter values.\n     *\n     * This is a new requirement for PHP7's oci8 extension that prevents bound values from being garbage collected.\n     *\n     * @var mixed[]\n     */\n    private $boundValues = [];\n\n    /**\n     * Indicates whether the statement is in the state when fetching results is possible\n     *\n     * @var bool\n     */\n    private $result = false;\n\n    /**\n     * Creates a new OCI8Statement that uses the given connection handle and SQL statement.\n     *\n     * @param resource $dbh       The connection handle.\n     * @param string   $statement The SQL statement.\n     */\n    public function __construct($dbh, $statement, OCI8Connection $conn)\n    {\n        [$statement, $paramMap] = self::convertPositionalToNamedPlaceholders($statement);\n        $this->_sth             = oci_parse($dbh, $statement);\n        $this->_dbh             = $dbh;\n        $this->_paramMap        = $paramMap;\n        $this->_conn            = $conn;\n    }\n\n    /**\n     * Converts positional (?) into named placeholders (:param<num>).\n     *\n     * Oracle does not support positional parameters, hence this method converts all\n     * positional parameters into artificially named parameters. Note that this conversion\n     * is not perfect. All question marks (?) in the original statement are treated as\n     * placeholders and converted to a named parameter.\n     *\n     * The algorithm uses a state machine with two possible states: InLiteral and NotInLiteral.\n     * Question marks inside literal strings are therefore handled correctly by this method.\n     * This comes at a cost, the whole sql statement has to be looped over.\n     *\n     * @param string $statement The SQL statement to convert.\n     *\n     * @return mixed[] [0] => the statement value (string), [1] => the paramMap value (array).\n     *\n     * @throws OCI8Exception\n     *\n     * @todo extract into utility class in Doctrine\\DBAL\\Util namespace\n     * @todo review and test for lost spaces. we experienced missing spaces with oci8 in some sql statements.\n     */\n    public static function convertPositionalToNamedPlaceholders($statement)\n    {\n        $fragmentOffset          = $tokenOffset = 0;\n        $fragments               = $paramMap = [];\n        $currentLiteralDelimiter = null;\n\n        do {\n            if (! $currentLiteralDelimiter) {\n                $result = self::findPlaceholderOrOpeningQuote(\n                    $statement,\n                    $tokenOffset,\n                    $fragmentOffset,\n                    $fragments,\n                    $currentLiteralDelimiter,\n                    $paramMap\n                );\n            } else {\n                $result = self::findClosingQuote($statement, $tokenOffset, $currentLiteralDelimiter);\n            }\n        } while ($result);\n\n        if ($currentLiteralDelimiter) {\n            throw new OCI8Exception(sprintf(\n                'The statement contains non-terminated string literal starting at offset %d',\n                $tokenOffset - 1\n            ));\n        }\n\n        $fragments[] = substr($statement, $fragmentOffset);\n        $statement   = implode('', $fragments);\n\n        return [$statement, $paramMap];\n    }\n\n    /**\n     * Finds next placeholder or opening quote.\n     *\n     * @param string             $statement               The SQL statement to parse\n     * @param string             $tokenOffset             The offset to start searching from\n     * @param int                $fragmentOffset          The offset to build the next fragment from\n     * @param string[]           $fragments               Fragments of the original statement not containing placeholders\n     * @param string|null        $currentLiteralDelimiter The delimiter of the current string literal\n     *                                                    or NULL if not currently in a literal\n     * @param array<int, string> $paramMap                Mapping of the original parameter positions to their named replacements\n     *\n     * @return bool Whether the token was found\n     */\n    private static function findPlaceholderOrOpeningQuote(\n        $statement,\n        &$tokenOffset,\n        &$fragmentOffset,\n        &$fragments,\n        &$currentLiteralDelimiter,\n        &$paramMap\n    ) {\n        $token = self::findToken($statement, $tokenOffset, '/[?\\'\"]/');\n\n        if (! $token) {\n            return false;\n        }\n\n        if ($token === '?') {\n            $position            = count($paramMap) + 1;\n            $param               = ':param' . $position;\n            $fragments[]         = substr($statement, $fragmentOffset, $tokenOffset - $fragmentOffset);\n            $fragments[]         = $param;\n            $paramMap[$position] = $param;\n            $tokenOffset        += 1;\n            $fragmentOffset      = $tokenOffset;\n\n            return true;\n        }\n\n        $currentLiteralDelimiter = $token;\n        ++$tokenOffset;\n\n        return true;\n    }\n\n    /**\n     * Finds closing quote\n     *\n     * @param string      $statement               The SQL statement to parse\n     * @param string      $tokenOffset             The offset to start searching from\n     * @param string|null $currentLiteralDelimiter The delimiter of the current string literal\n     *                                             or NULL if not currently in a literal\n     *\n     * @return bool Whether the token was found\n     */\n    private static function findClosingQuote(\n        $statement,\n        &$tokenOffset,\n        &$currentLiteralDelimiter\n    ) {\n        $token = self::findToken(\n            $statement,\n            $tokenOffset,\n            '/' . preg_quote($currentLiteralDelimiter, '/') . '/'\n        );\n\n        if (! $token) {\n            return false;\n        }\n\n        $currentLiteralDelimiter = false;\n        ++$tokenOffset;\n\n        return true;\n    }\n\n    /**\n     * Finds the token described by regex starting from the given offset. Updates the offset with the position\n     * where the token was found.\n     *\n     * @param string $statement The SQL statement to parse\n     * @param string $offset    The offset to start searching from\n     * @param string $regex     The regex containing token pattern\n     *\n     * @return string|null Token or NULL if not found\n     */\n    private static function findToken($statement, &$offset, $regex)\n    {\n        if (preg_match($regex, $statement, $matches, PREG_OFFSET_CAPTURE, $offset)) {\n            $offset = $matches[0][1];\n            return $matches[0][0];\n        }\n\n        return null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        return $this->bindParam($param, $value, $type, null);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        $column = $this->_paramMap[$column] ?? $column;\n\n        if ($type === ParameterType::LARGE_OBJECT) {\n            $lob = oci_new_descriptor($this->_dbh, OCI_D_LOB);\n            $lob->writeTemporary($variable, OCI_TEMP_BLOB);\n\n            $variable =& $lob;\n        }\n\n        $this->boundValues[$column] =& $variable;\n\n        return oci_bind_by_name(\n            $this->_sth,\n            $column,\n            $variable,\n            $length ?? -1,\n            $this->convertParameterType($type)\n        );\n    }\n\n    /**\n     * Converts DBAL parameter type to oci8 parameter type\n     */\n    private function convertParameterType(int $type) : int\n    {\n        switch ($type) {\n            case ParameterType::BINARY:\n                return OCI_B_BIN;\n\n            case ParameterType::LARGE_OBJECT:\n                return OCI_B_BLOB;\n\n            default:\n                return SQLT_CHR;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        // not having the result means there's nothing to close\n        if (! $this->result) {\n            return true;\n        }\n\n        oci_cancel($this->_sth);\n\n        $this->result = false;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return oci_num_fields($this->_sth);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        $error = oci_error($this->_sth);\n        if ($error !== false) {\n            $error = $error['code'];\n        }\n\n        return $error;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return oci_error($this->_sth);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        if ($params) {\n            $hasZeroIndex = array_key_exists(0, $params);\n            foreach ($params as $key => $val) {\n                if ($hasZeroIndex && is_numeric($key)) {\n                    $this->bindValue($key + 1, $val);\n                } else {\n                    $this->bindValue($key, $val);\n                }\n            }\n        }\n\n        $ret = @oci_execute($this->_sth, $this->_conn->getExecuteMode());\n        if (! $ret) {\n            throw OCI8Exception::fromErrorInfo($this->errorInfo());\n        }\n\n        $this->result = true;\n\n        return $ret;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->_defaultFetchMode = $fetchMode;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        // do not try fetching from the statement if it's not expected to contain result\n        // in order to prevent exceptional situation\n        if (! $this->result) {\n            return false;\n        }\n\n        $fetchMode = $fetchMode ?: $this->_defaultFetchMode;\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            return $this->fetchColumn();\n        }\n\n        if ($fetchMode === FetchMode::STANDARD_OBJECT) {\n            return oci_fetch_object($this->_sth);\n        }\n\n        if (! isset(self::$fetchModeMap[$fetchMode])) {\n            throw new InvalidArgumentException('Invalid fetch style: ' . $fetchMode);\n        }\n\n        return oci_fetch_array(\n            $this->_sth,\n            self::$fetchModeMap[$fetchMode] | OCI_RETURN_NULLS | OCI_RETURN_LOBS\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $fetchMode = $fetchMode ?: $this->_defaultFetchMode;\n\n        $result = [];\n\n        if ($fetchMode === FetchMode::STANDARD_OBJECT) {\n            while ($row = $this->fetch($fetchMode)) {\n                $result[] = $row;\n            }\n\n            return $result;\n        }\n\n        if (! isset(self::$fetchModeMap[$fetchMode])) {\n            throw new InvalidArgumentException('Invalid fetch style: ' . $fetchMode);\n        }\n\n        if (self::$fetchModeMap[$fetchMode] === OCI_BOTH) {\n            while ($row = $this->fetch($fetchMode)) {\n                $result[] = $row;\n            }\n        } else {\n            $fetchStructure = OCI_FETCHSTATEMENT_BY_ROW;\n\n            if ($fetchMode === FetchMode::COLUMN) {\n                $fetchStructure = OCI_FETCHSTATEMENT_BY_COLUMN;\n            }\n\n            // do not try fetching from the statement if it's not expected to contain result\n            // in order to prevent exceptional situation\n            if (! $this->result) {\n                return [];\n            }\n\n            oci_fetch_all(\n                $this->_sth,\n                $result,\n                0,\n                -1,\n                self::$fetchModeMap[$fetchMode] | OCI_RETURN_NULLS | $fetchStructure | OCI_RETURN_LOBS\n            );\n\n            if ($fetchMode === FetchMode::COLUMN) {\n                $result = $result[0];\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        // do not try fetching from the statement if it's not expected to contain result\n        // in order to prevent exceptional situation\n        if (! $this->result) {\n            return false;\n        }\n\n        $row = oci_fetch_array($this->_sth, OCI_NUM | OCI_RETURN_NULLS | OCI_RETURN_LOBS);\n\n        if ($row === false) {\n            return false;\n        }\n\n        return $row[$columnIndex] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        return oci_num_rows($this->_sth);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse PDO;\nuse function count;\nuse function func_get_args;\n\n/**\n * PDO implementation of the Connection interface.\n * Used by all PDO-based drivers.\n */\nclass PDOConnection extends PDO implements Connection, ServerInfoAwareConnection\n{\n    /**\n     * @param string       $dsn\n     * @param string|null  $user\n     * @param string|null  $password\n     * @param mixed[]|null $options\n     *\n     * @throws PDOException In case of an error.\n     */\n    public function __construct($dsn, $user = null, $password = null, ?array $options = null)\n    {\n        try {\n            parent::__construct($dsn, $user, $password, $options);\n            $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, []]);\n            $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function exec($statement)\n    {\n        try {\n            return parent::exec($statement);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getServerVersion()\n    {\n        return PDO::getAttribute(PDO::ATTR_SERVER_VERSION);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($prepareString, $driverOptions = [])\n    {\n        try {\n            return parent::prepare($prepareString, $driverOptions);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $args      = func_get_args();\n        $argsCount = count($args);\n\n        try {\n            if ($argsCount === 4) {\n                return parent::query($args[0], $args[1], $args[2], $args[3]);\n            }\n\n            if ($argsCount === 3) {\n                return parent::query($args[0], $args[1], $args[2]);\n            }\n\n            if ($argsCount === 2) {\n                return parent::query($args[0], $args[1]);\n            }\n\n            return parent::query($args[0]);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($input, $type = ParameterType::STRING)\n    {\n        return parent::quote($input, $type);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        try {\n            return parent::lastInsertId($name);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\n/**\n * Tiny wrapper for PDOException instances to implement the {@link DriverException} interface.\n */\nclass PDOException extends \\PDOException implements DriverException\n{\n    /**\n     * The driver specific error code.\n     *\n     * @var int|string|null\n     */\n    private $errorCode;\n\n    /**\n     * The SQLSTATE of the driver.\n     *\n     * @var string|null\n     */\n    private $sqlState;\n\n    /**\n     * @param \\PDOException $exception The PDO exception to wrap.\n     */\n    public function __construct(\\PDOException $exception)\n    {\n        parent::__construct($exception->getMessage(), 0, $exception);\n\n        $this->code      = $exception->getCode();\n        $this->errorInfo = $exception->errorInfo;\n        $this->errorCode = $exception->errorInfo[1] ?? $exception->getCode();\n        $this->sqlState  = $exception->errorInfo[0] ?? $exception->getCode();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getErrorCode()\n    {\n        return $this->errorCode;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLState()\n    {\n        return $this->sqlState;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOIbm;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDB2Driver;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\n\n/**\n * Driver for the PDO IBM extension.\n */\nclass Driver extends AbstractDB2Driver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        return new PDOConnection(\n            $this->_constructPdoDsn($params),\n            $username,\n            $password,\n            $driverOptions\n        );\n    }\n\n    /**\n     * Constructs the IBM PDO DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    private function _constructPdoDsn(array $params)\n    {\n        $dsn = 'ibm:';\n        if (isset($params['host'])) {\n            $dsn .= 'HOSTNAME=' . $params['host'] . ';';\n        }\n        if (isset($params['port'])) {\n            $dsn .= 'PORT=' . $params['port'] . ';';\n        }\n        $dsn .= 'PROTOCOL=TCPIP;';\n        if (isset($params['dbname'])) {\n            $dsn .= 'DATABASE=' . $params['dbname'] . ';';\n        }\n\n        return $dsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_ibm';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOMySql;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractMySQLDriver;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse PDOException;\n\n/**\n * PDO MySql driver.\n */\nclass Driver extends AbstractMySQLDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            $conn = new PDOConnection(\n                $this->constructPdoDsn($params),\n                $username,\n                $password,\n                $driverOptions\n            );\n        } catch (PDOException $e) {\n            throw DBALException::driverException($this, $e);\n        }\n\n        return $conn;\n    }\n\n    /**\n     * Constructs the MySql PDO DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    protected function constructPdoDsn(array $params)\n    {\n        $dsn = 'mysql:';\n        if (isset($params['host']) && $params['host'] !== '') {\n            $dsn .= 'host=' . $params['host'] . ';';\n        }\n        if (isset($params['port'])) {\n            $dsn .= 'port=' . $params['port'] . ';';\n        }\n        if (isset($params['dbname'])) {\n            $dsn .= 'dbname=' . $params['dbname'] . ';';\n        }\n        if (isset($params['unix_socket'])) {\n            $dsn .= 'unix_socket=' . $params['unix_socket'] . ';';\n        }\n        if (isset($params['charset'])) {\n            $dsn .= 'charset=' . $params['charset'] . ';';\n        }\n\n        return $dsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_mysql';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOOracle;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractOracleDriver;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse PDOException;\n\n/**\n * PDO Oracle driver.\n *\n * WARNING: This driver gives us segfaults in our testsuites on CLOB and other\n * stuff. PDO Oracle is not maintained by Oracle or anyone in the PHP community,\n * which leads us to the recommendation to use the \"oci8\" driver to connect\n * to Oracle instead.\n */\nclass Driver extends AbstractOracleDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            return new PDOConnection(\n                $this->constructPdoDsn($params),\n                $username,\n                $password,\n                $driverOptions\n            );\n        } catch (PDOException $e) {\n            throw DBALException::driverException($this, $e);\n        }\n    }\n\n    /**\n     * Constructs the Oracle PDO DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    private function constructPdoDsn(array $params)\n    {\n        $dsn = 'oci:dbname=' . $this->getEasyConnectString($params);\n\n        if (isset($params['charset'])) {\n            $dsn .= ';charset=' . $params['charset'];\n        }\n\n        return $dsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_oracle';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOPgSql;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractPostgreSQLDriver;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse PDO;\nuse PDOException;\nuse function defined;\n\n/**\n * Driver that connects through pdo_pgsql.\n */\nclass Driver extends AbstractPostgreSQLDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            $pdo = new PDOConnection(\n                $this->_constructPdoDsn($params),\n                $username,\n                $password,\n                $driverOptions\n            );\n\n            if (defined('PDO::PGSQL_ATTR_DISABLE_PREPARES')\n                && (! isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES])\n                    || $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES] === true\n                )\n            ) {\n                $pdo->setAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES, true);\n            }\n\n            /* defining client_encoding via SET NAMES to avoid inconsistent DSN support\n             * - the 'client_encoding' connection param only works with postgres >= 9.1\n             * - passing client_encoding via the 'options' param breaks pgbouncer support\n             */\n            if (isset($params['charset'])) {\n                $pdo->exec('SET NAMES \\'' . $params['charset'] . '\\'');\n            }\n\n            return $pdo;\n        } catch (PDOException $e) {\n            throw DBALException::driverException($this, $e);\n        }\n    }\n\n    /**\n     * Constructs the Postgres PDO DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    private function _constructPdoDsn(array $params)\n    {\n        $dsn = 'pgsql:';\n\n        if (isset($params['host']) && $params['host'] !== '') {\n            $dsn .= 'host=' . $params['host'] . ';';\n        }\n\n        if (isset($params['port']) && $params['port'] !== '') {\n            $dsn .= 'port=' . $params['port'] . ';';\n        }\n\n        if (isset($params['dbname'])) {\n            $dsn .= 'dbname=' . $params['dbname'] . ';';\n        } elseif (isset($params['default_dbname'])) {\n            $dsn .= 'dbname=' . $params['default_dbname'] . ';';\n        } else {\n            // Used for temporary connections to allow operations like dropping the database currently connected to.\n            // Connecting without an explicit database does not work, therefore \"postgres\" database is used\n            // as it is mostly present in every server setup.\n            $dsn .= 'dbname=postgres;';\n        }\n\n        if (isset($params['sslmode'])) {\n            $dsn .= 'sslmode=' . $params['sslmode'] . ';';\n        }\n\n        if (isset($params['sslrootcert'])) {\n            $dsn .= 'sslrootcert=' . $params['sslrootcert'] . ';';\n        }\n\n        if (isset($params['sslcert'])) {\n            $dsn .= 'sslcert=' . $params['sslcert'] . ';';\n        }\n\n        if (isset($params['sslkey'])) {\n            $dsn .= 'sslkey=' . $params['sslkey'] . ';';\n        }\n\n        if (isset($params['sslcrl'])) {\n            $dsn .= 'sslcrl=' . $params['sslcrl'] . ';';\n        }\n\n        if (isset($params['application_name'])) {\n            $dsn .= 'application_name=' . $params['application_name'] . ';';\n        }\n\n        return $dsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_pgsql';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOSqlite;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractSQLiteDriver;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse Doctrine\\DBAL\\Platforms\\SqlitePlatform;\nuse PDOException;\nuse function array_merge;\n\n/**\n * The PDO Sqlite driver.\n */\nclass Driver extends AbstractSQLiteDriver\n{\n    /** @var mixed[] */\n    protected $_userDefinedFunctions = [\n        'sqrt' => ['callback' => [SqlitePlatform::class, 'udfSqrt'], 'numArgs' => 1],\n        'mod'  => ['callback' => [SqlitePlatform::class, 'udfMod'], 'numArgs' => 2],\n        'locate'  => ['callback' => [SqlitePlatform::class, 'udfLocate'], 'numArgs' => -1],\n    ];\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        if (isset($driverOptions['userDefinedFunctions'])) {\n            $this->_userDefinedFunctions = array_merge(\n                $this->_userDefinedFunctions,\n                $driverOptions['userDefinedFunctions']\n            );\n            unset($driverOptions['userDefinedFunctions']);\n        }\n\n        try {\n            $pdo = new PDOConnection(\n                $this->_constructPdoDsn($params),\n                $username,\n                $password,\n                $driverOptions\n            );\n        } catch (PDOException $ex) {\n            throw DBALException::driverException($this, $ex);\n        }\n\n        foreach ($this->_userDefinedFunctions as $fn => $data) {\n            $pdo->sqliteCreateFunction($fn, $data['callback'], $data['numArgs']);\n        }\n\n        return $pdo;\n    }\n\n    /**\n     * Constructs the Sqlite PDO DSN.\n     *\n     * @param mixed[] $params\n     *\n     * @return string The DSN.\n     */\n    protected function _constructPdoDsn(array $params)\n    {\n        $dsn = 'sqlite:';\n        if (isset($params['path'])) {\n            $dsn .= $params['path'];\n        } elseif (isset($params['memory'])) {\n            $dsn .= ':memory:';\n        }\n\n        return $dsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_sqlite';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOSqlsrv;\n\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse PDO;\nuse function strpos;\nuse function substr;\n\n/**\n * Sqlsrv Connection implementation.\n */\nclass Connection extends PDOConnection\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct($dsn, $user = null, $password = null, ?array $options = null)\n    {\n        parent::__construct($dsn, $user, $password, $options);\n        $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [Statement::class, []]);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        if ($name === null) {\n            return parent::lastInsertId($name);\n        }\n\n        $stmt = $this->prepare('SELECT CONVERT(VARCHAR(MAX), current_value) FROM sys.sequences WHERE name = ?');\n        $stmt->execute([$name]);\n\n        return $stmt->fetchColumn();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function quote($value, $type = ParameterType::STRING)\n    {\n        $val = parent::quote($value, $type);\n\n        // Fix for a driver version terminating all values with null byte\n        if (strpos($val, \"\\0\") !== false) {\n            $val = substr($val, 0, -1);\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOSqlsrv;\n\nuse Doctrine\\DBAL\\Driver\\AbstractSQLServerDriver;\nuse function is_int;\nuse function sprintf;\n\n/**\n * The PDO-based Sqlsrv driver.\n */\nclass Driver extends AbstractSQLServerDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        [$driverOptions, $connectionOptions] = $this->splitOptions($driverOptions);\n\n        return new Connection(\n            $this->_constructPdoDsn($params, $connectionOptions),\n            $username,\n            $password,\n            $driverOptions\n        );\n    }\n\n    /**\n     * Constructs the Sqlsrv PDO DSN.\n     *\n     * @param mixed[]  $params\n     * @param string[] $connectionOptions\n     *\n     * @return string The DSN.\n     */\n    private function _constructPdoDsn(array $params, array $connectionOptions)\n    {\n        $dsn = 'sqlsrv:server=';\n\n        if (isset($params['host'])) {\n            $dsn .= $params['host'];\n        }\n\n        if (isset($params['port']) && ! empty($params['port'])) {\n            $dsn .= ',' . $params['port'];\n        }\n\n        if (isset($params['dbname'])) {\n            $connectionOptions['Database'] = $params['dbname'];\n        }\n\n        if (isset($params['MultipleActiveResultSets'])) {\n            $connectionOptions['MultipleActiveResultSets'] = $params['MultipleActiveResultSets'] ? 'true' : 'false';\n        }\n\n        return $dsn . $this->getConnectionOptionsDsn($connectionOptions);\n    }\n\n    /**\n     * Separates a connection options from a driver options\n     *\n     * @param int[]|string[] $options\n     *\n     * @return int[][]|string[][]\n     */\n    private function splitOptions(array $options) : array\n    {\n        $driverOptions     = [];\n        $connectionOptions = [];\n\n        foreach ($options as $optionKey => $optionValue) {\n            if (is_int($optionKey)) {\n                $driverOptions[$optionKey] = $optionValue;\n            } else {\n                $connectionOptions[$optionKey] = $optionValue;\n            }\n        }\n\n        return [$driverOptions, $connectionOptions];\n    }\n\n    /**\n     * Converts a connection options array to the DSN\n     *\n     * @param string[] $connectionOptions\n     */\n    private function getConnectionOptionsDsn(array $connectionOptions) : string\n    {\n        $connectionOptionsDsn = '';\n\n        foreach ($connectionOptions as $paramName => $paramValue) {\n            $connectionOptionsDsn .= sprintf(';%s=%s', $paramName, $paramValue);\n        }\n\n        return $connectionOptionsDsn;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'pdo_sqlsrv';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\PDOSqlsrv;\n\nuse Doctrine\\DBAL\\Driver\\PDOStatement;\nuse Doctrine\\DBAL\\ParameterType;\nuse PDO;\n\n/**\n * PDO SQL Server Statement\n */\nclass Statement extends PDOStatement\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null, $driverOptions = null)\n    {\n        if (($type === ParameterType::LARGE_OBJECT || $type === ParameterType::BINARY)\n            && $driverOptions === null\n        ) {\n            $driverOptions = PDO::SQLSRV_ENCODING_BINARY;\n        }\n\n        return parent::bindParam($column, $variable, $type, $length, $driverOptions);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        return $this->bindParam($param, $value, $type);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse PDO;\nuse const E_USER_DEPRECATED;\nuse function sprintf;\nuse function trigger_error;\n\n/**\n * The PDO implementation of the Statement interface.\n * Used by all PDO-based drivers.\n */\nclass PDOStatement extends \\PDOStatement implements Statement\n{\n    private const PARAM_TYPE_MAP = [\n        ParameterType::NULL         => PDO::PARAM_NULL,\n        ParameterType::INTEGER      => PDO::PARAM_INT,\n        ParameterType::STRING       => PDO::PARAM_STR,\n        ParameterType::BINARY       => PDO::PARAM_LOB,\n        ParameterType::LARGE_OBJECT => PDO::PARAM_LOB,\n        ParameterType::BOOLEAN      => PDO::PARAM_BOOL,\n    ];\n\n    private const FETCH_MODE_MAP = [\n        FetchMode::ASSOCIATIVE     => PDO::FETCH_ASSOC,\n        FetchMode::NUMERIC         => PDO::FETCH_NUM,\n        FetchMode::MIXED           => PDO::FETCH_BOTH,\n        FetchMode::STANDARD_OBJECT => PDO::FETCH_OBJ,\n        FetchMode::COLUMN          => PDO::FETCH_COLUMN,\n        FetchMode::CUSTOM_OBJECT   => PDO::FETCH_CLASS,\n    ];\n\n    /**\n     * Protected constructor.\n     */\n    protected function __construct()\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $fetchMode = $this->convertFetchMode($fetchMode);\n\n        // This thin wrapper is necessary to shield against the weird signature\n        // of PDOStatement::setFetchMode(): even if the second and third\n        // parameters are optional, PHP will not let us remove it from this\n        // declaration.\n        try {\n            if ($arg2 === null && $arg3 === null) {\n                return parent::setFetchMode($fetchMode);\n            }\n\n            if ($arg3 === null) {\n                return parent::setFetchMode($fetchMode, $arg2);\n            }\n\n            return parent::setFetchMode($fetchMode, $arg2, $arg3);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        $type = $this->convertParamType($type);\n\n        try {\n            return parent::bindValue($param, $value, $type);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null, $driverOptions = null)\n    {\n        $type = $this->convertParamType($type);\n\n        try {\n            return parent::bindParam($column, $variable, $type, $length, $driverOptions);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        try {\n            return parent::closeCursor();\n        } catch (\\PDOException $exception) {\n            // Exceptions not allowed by the interface.\n            // In case driver implementations do not adhere to the interface, silence exceptions here.\n            return true;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        try {\n            return parent::execute($params);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        $fetchMode = $this->convertFetchMode($fetchMode);\n\n        try {\n            if ($fetchMode === null && $cursorOrientation === PDO::FETCH_ORI_NEXT && $cursorOffset === 0) {\n                return parent::fetch();\n            }\n\n            if ($cursorOrientation === PDO::FETCH_ORI_NEXT && $cursorOffset === 0) {\n                return parent::fetch($fetchMode);\n            }\n\n            if ($cursorOffset === 0) {\n                return parent::fetch($fetchMode, $cursorOrientation);\n            }\n\n            return parent::fetch($fetchMode, $cursorOrientation, $cursorOffset);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $fetchMode = $this->convertFetchMode($fetchMode);\n\n        try {\n            if ($fetchMode === null && $fetchArgument === null && $ctorArgs === null) {\n                return parent::fetchAll();\n            }\n\n            if ($fetchArgument === null && $ctorArgs === null) {\n                return parent::fetchAll($fetchMode);\n            }\n\n            if ($ctorArgs === null) {\n                return parent::fetchAll($fetchMode, $fetchArgument);\n            }\n\n            return parent::fetchAll($fetchMode, $fetchArgument, $ctorArgs);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        try {\n            return parent::fetchColumn($columnIndex);\n        } catch (\\PDOException $exception) {\n            throw new PDOException($exception);\n        }\n    }\n\n    /**\n     * Converts DBAL parameter type to PDO parameter type\n     *\n     * @param int $type Parameter type\n     */\n    private function convertParamType(int $type) : int\n    {\n        if (! isset(self::PARAM_TYPE_MAP[$type])) {\n            // TODO: next major: throw an exception\n            @trigger_error(sprintf(\n                'Using a PDO parameter type (%d given) is deprecated and will cause an error in Doctrine 3.0',\n                $type\n            ), E_USER_DEPRECATED);\n\n            return $type;\n        }\n\n        return self::PARAM_TYPE_MAP[$type];\n    }\n\n    /**\n     * Converts DBAL fetch mode to PDO fetch mode\n     *\n     * @param int|null $fetchMode Fetch mode\n     */\n    private function convertFetchMode(?int $fetchMode) : ?int\n    {\n        if ($fetchMode === null) {\n            return null;\n        }\n\n        if (! isset(self::FETCH_MODE_MAP[$fetchMode])) {\n            // TODO: next major: throw an exception\n            @trigger_error(sprintf(\n                'Using a PDO fetch mode or their combination (%d given)' .\n                ' is deprecated and will cause an error in Doctrine 3.0',\n                $fetchMode\n            ), E_USER_DEPRECATED);\n\n            return $fetchMode;\n        }\n\n        return self::FETCH_MODE_MAP[$fetchMode];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PingableConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\n/**\n * An interface for connections which support a \"native\" ping method.\n */\ninterface PingableConnection\n{\n    /**\n     * Pings the database server to determine if the connection is still\n     * available. Return true/false based on if that was successful or not.\n     *\n     * @return bool\n     */\n    public function ping();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse PDO;\nuse Traversable;\n\n/**\n * Interface for the reading part of a prepare statement only.\n */\ninterface ResultStatement extends Traversable\n{\n    /**\n     * Closes the cursor, enabling the statement to be executed again.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function closeCursor();\n\n    /**\n     * Returns the number of columns in the result set\n     *\n     * @return int The number of columns in the result set represented\n     *                 by the PDOStatement object. If there is no result set,\n     *                 this method should return 0.\n     */\n    public function columnCount();\n\n    /**\n     * Sets the fetch mode to use while iterating this statement.\n     *\n     * @param int   $fetchMode The fetch mode must be one of the {@link \\Doctrine\\DBAL\\FetchMode} constants.\n     * @param mixed $arg2\n     * @param mixed $arg3\n     *\n     * @return bool\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null);\n\n    /**\n     * Returns the next row of a result set.\n     *\n     * @param int|null $fetchMode         Controls how the next row will be returned to the caller.\n     *                                    The value must be one of the {@link \\Doctrine\\DBAL\\FetchMode} constants,\n     *                                    defaulting to {@link \\Doctrine\\DBAL\\FetchMode::MIXED}.\n     * @param int      $cursorOrientation For a ResultStatement object representing a scrollable cursor,\n     *                                    this value determines which row will be returned to the caller.\n     *                                    This value must be one of the \\PDO::FETCH_ORI_* constants,\n     *                                    defaulting to \\PDO::FETCH_ORI_NEXT. To request a scrollable\n     *                                    cursor for your ResultStatement object, you must set the \\PDO::ATTR_CURSOR\n     *                                    attribute to \\PDO::CURSOR_SCROLL when you prepare the SQL statement with\n     *                                    \\PDO::prepare().\n     * @param int      $cursorOffset      For a ResultStatement object representing a scrollable cursor for which the\n     *                                    cursorOrientation parameter is set to \\PDO::FETCH_ORI_ABS, this value\n     *                                    specifies the absolute number of the row in the result set that shall be\n     *                                    fetched.\n     *                                    For a ResultStatement object representing a scrollable cursor for which the\n     *                                    cursorOrientation parameter is set to \\PDO::FETCH_ORI_REL, this value\n     *                                    specifies the row to fetch relative to the cursor position before\n     *                                    ResultStatement::fetch() was called.\n     *\n     * @return mixed The return value of this method on success depends on the fetch mode. In all cases, FALSE is\n     *               returned on failure.\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0);\n\n    /**\n     * Returns an array containing all of the result set rows.\n     *\n     * @param int|null     $fetchMode     Controls how the next row will be returned to the caller.\n     *                                    The value must be one of the {@link \\Doctrine\\DBAL\\FetchMode} constants,\n     *                                    defaulting to {@link \\Doctrine\\DBAL\\FetchMode::MIXED}.\n     * @param int|null     $fetchArgument This argument has a different meaning depending on the value of the $fetchMode parameter:\n     *                                    * {@link \\Doctrine\\DBAL\\FetchMode::COLUMN}:\n     *                                      Returns the indicated 0-indexed column.\n     *                                    * {@link \\Doctrine\\DBAL\\FetchMode::CUSTOM_OBJECT}:\n     *                                      Returns instances of the specified class, mapping the columns of each row\n     *                                      to named properties in the class.\n     *                                    * \\PDO::FETCH_FUNC: Returns the results of calling the specified function, using each row's\n     *                                      columns as parameters in the call.\n     * @param mixed[]|null $ctorArgs      Controls how the next row will be returned to the caller.\n     *                                    The value must be one of the {@link \\Doctrine\\DBAL\\FetchMode} constants,\n     *                                    defaulting to {@link \\Doctrine\\DBAL\\FetchMode::MIXED}.\n     *\n     * @return mixed[]\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null);\n\n    /**\n     * Returns a single column from the next row of a result set or FALSE if there are no more rows.\n     *\n     * @param int $columnIndex 0-indexed number of the column you wish to retrieve from the row.\n     *                         If no value is supplied, fetches the first column.\n     *\n     * @return mixed|false A single column in the next row of a result set, or FALSE if there are no more rows.\n     */\n    public function fetchColumn($columnIndex = 0);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLAnywhere;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\AbstractSQLAnywhereDriver;\nuse function array_keys;\nuse function array_map;\nuse function implode;\n\n/**\n * A Doctrine DBAL driver for the SAP Sybase SQL Anywhere PHP extension.\n */\nclass Driver extends AbstractSQLAnywhereDriver\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @throws DBALException If there was a problem establishing the connection.\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        try {\n            return new SQLAnywhereConnection(\n                $this->buildDsn(\n                    $params['host'] ?? null,\n                    $params['port'] ?? null,\n                    $params['server'] ?? null,\n                    $params['dbname'] ?? null,\n                    $username,\n                    $password,\n                    $driverOptions\n                ),\n                $params['persistent'] ?? false\n            );\n        } catch (SQLAnywhereException $e) {\n            throw DBALException::driverException($this, $e);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'sqlanywhere';\n    }\n\n    /**\n     * Build the connection string for given connection parameters and driver options.\n     *\n     * @param string  $host          Host address to connect to.\n     * @param int     $port          Port to use for the connection (default to SQL Anywhere standard port 2638).\n     * @param string  $server        Database server name on the host to connect to.\n     *                               SQL Anywhere allows multiple database server instances on the same host,\n     *                               therefore specifying the server instance name to use is mandatory.\n     * @param string  $dbname        Name of the database on the server instance to connect to.\n     * @param string  $username      User name to use for connection authentication.\n     * @param string  $password      Password to use for connection authentication.\n     * @param mixed[] $driverOptions Additional parameters to use for the connection.\n     *\n     * @return string\n     */\n    private function buildDsn($host, $port, $server, $dbname, $username = null, $password = null, array $driverOptions = [])\n    {\n        $host = $host ?: 'localhost';\n        $port = $port ?: 2638;\n\n        if (! empty($server)) {\n            $server = ';ServerName=' . $server;\n        }\n\n        return 'HOST=' . $host . ':' . $port .\n            $server .\n            ';DBN=' . $dbname .\n            ';UID=' . $username .\n            ';PWD=' . $password .\n            ';' . implode(\n                ';',\n                array_map(static function ($key, $value) {\n                    return $key . '=' . $value;\n                }, array_keys($driverOptions), $driverOptions)\n            );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLAnywhere;\n\nuse Doctrine\\DBAL\\Driver\\Connection;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse function assert;\nuse function func_get_args;\nuse function is_float;\nuse function is_int;\nuse function is_resource;\nuse function is_string;\nuse function sasql_affected_rows;\nuse function sasql_commit;\nuse function sasql_connect;\nuse function sasql_error;\nuse function sasql_errorcode;\nuse function sasql_escape_string;\nuse function sasql_insert_id;\nuse function sasql_pconnect;\nuse function sasql_real_query;\nuse function sasql_rollback;\nuse function sasql_set_option;\n\n/**\n * SAP Sybase SQL Anywhere implementation of the Connection interface.\n */\nclass SQLAnywhereConnection implements Connection, ServerInfoAwareConnection\n{\n    /** @var resource The SQL Anywhere connection resource. */\n    private $connection;\n\n    /**\n     * Connects to database with given connection string.\n     *\n     * @param string $dsn        The connection string.\n     * @param bool   $persistent Whether or not to establish a persistent connection.\n     *\n     * @throws SQLAnywhereException\n     */\n    public function __construct($dsn, $persistent = false)\n    {\n        $this->connection = $persistent ? @sasql_pconnect($dsn) : @sasql_connect($dsn);\n\n        if (! is_resource($this->connection)) {\n            throw SQLAnywhereException::fromSQLAnywhereError();\n        }\n\n        // Disable PHP warnings on error.\n        if (! sasql_set_option($this->connection, 'verbose_errors', false)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        // Enable auto committing by default.\n        if (! sasql_set_option($this->connection, 'auto_commit', 'on')) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function beginTransaction()\n    {\n        if (! sasql_set_option($this->connection, 'auto_commit', 'off')) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function commit()\n    {\n        if (! sasql_commit($this->connection)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        $this->endTransaction();\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return sasql_errorcode($this->connection);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return sasql_error($this->connection);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function exec($statement)\n    {\n        if (sasql_real_query($this->connection, $statement) === false) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        return sasql_affected_rows($this->connection);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getServerVersion()\n    {\n        $version = $this->query(\"SELECT PROPERTY('ProductVersion')\")->fetchColumn();\n\n        assert(is_string($version));\n\n        return $version;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        if ($name === null) {\n            return sasql_insert_id($this->connection);\n        }\n\n        return $this->query('SELECT ' . $name . '.CURRVAL')->fetchColumn();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($prepareString)\n    {\n        return new SQLAnywhereStatement($this->connection, $prepareString);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $args = func_get_args();\n        $stmt = $this->prepare($args[0]);\n\n        $stmt->execute();\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quote($input, $type = ParameterType::STRING)\n    {\n        if (is_int($input) || is_float($input)) {\n            return $input;\n        }\n\n        return \"'\" . sasql_escape_string($this->connection, $input) . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function rollBack()\n    {\n        if (! sasql_rollback($this->connection)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        $this->endTransaction();\n\n        return true;\n    }\n\n    /**\n     * Ends transactional mode and enables auto commit again.\n     *\n     * @return bool Whether or not ending transactional mode succeeded.\n     *\n     * @throws SQLAnywhereException\n     */\n    private function endTransaction()\n    {\n        if (! sasql_set_option($this->connection, 'auto_commit', 'on')) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->connection);\n        }\n\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLAnywhere;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDriverException;\nuse InvalidArgumentException;\nuse function is_resource;\nuse function sasql_error;\nuse function sasql_errorcode;\nuse function sasql_sqlstate;\nuse function sasql_stmt_errno;\nuse function sasql_stmt_error;\n\n/**\n * SAP Sybase SQL Anywhere driver exception.\n */\nclass SQLAnywhereException extends AbstractDriverException\n{\n    /**\n     * Helper method to turn SQL Anywhere error into exception.\n     *\n     * @param resource|null $conn The SQL Anywhere connection resource to retrieve the last error from.\n     * @param resource|null $stmt The SQL Anywhere statement resource to retrieve the last error from.\n     *\n     * @return SQLAnywhereException\n     *\n     * @throws InvalidArgumentException\n     */\n    public static function fromSQLAnywhereError($conn = null, $stmt = null)\n    {\n        if ($conn !== null && ! is_resource($conn)) {\n            throw new InvalidArgumentException('Invalid SQL Anywhere connection resource given: ' . $conn);\n        }\n\n        if ($stmt !== null && ! is_resource($stmt)) {\n            throw new InvalidArgumentException('Invalid SQL Anywhere statement resource given: ' . $stmt);\n        }\n\n        $state   = $conn ? sasql_sqlstate($conn) : sasql_sqlstate();\n        $code    = null;\n        $message = null;\n\n        /**\n         * Try retrieving the last error from statement resource if given\n         */\n        if ($stmt) {\n            $code    = sasql_stmt_errno($stmt);\n            $message = sasql_stmt_error($stmt);\n        }\n\n        /**\n         * Try retrieving the last error from the connection resource\n         * if either the statement resource is not given or the statement\n         * resource is given but the last error could not be retrieved from it (fallback).\n         * Depending on the type of error, it is sometimes necessary to retrieve\n         * it from the connection resource even though it occurred during\n         * a prepared statement.\n         */\n        if ($conn && ! $code) {\n            $code    = sasql_errorcode($conn);\n            $message = sasql_error($conn);\n        }\n\n        /**\n         * Fallback mode if either no connection resource is given\n         * or the last error could not be retrieved from the given\n         * connection / statement resource.\n         */\n        if (! $conn || ! $code) {\n            $code    = sasql_errorcode();\n            $message = sasql_error();\n        }\n\n        if ($message) {\n            return new self('SQLSTATE [' . $state . '] [' . $code . '] ' . $message, $state, $code);\n        }\n\n        return new self('SQL Anywhere error occurred but no error message was retrieved from driver.', $state, $code);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLAnywhere;\n\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse IteratorAggregate;\nuse PDO;\nuse ReflectionClass;\nuse ReflectionObject;\nuse stdClass;\nuse const SASQL_BOTH;\nuse function array_key_exists;\nuse function func_get_args;\nuse function func_num_args;\nuse function gettype;\nuse function is_array;\nuse function is_numeric;\nuse function is_object;\nuse function is_resource;\nuse function is_string;\nuse function sasql_fetch_array;\nuse function sasql_fetch_assoc;\nuse function sasql_fetch_object;\nuse function sasql_fetch_row;\nuse function sasql_prepare;\nuse function sasql_stmt_affected_rows;\nuse function sasql_stmt_bind_param_ex;\nuse function sasql_stmt_errno;\nuse function sasql_stmt_error;\nuse function sasql_stmt_execute;\nuse function sasql_stmt_field_count;\nuse function sasql_stmt_reset;\nuse function sasql_stmt_result_metadata;\nuse function sprintf;\n\n/**\n * SAP SQL Anywhere implementation of the Statement interface.\n */\nclass SQLAnywhereStatement implements IteratorAggregate, Statement\n{\n    /** @var resource The connection resource. */\n    private $conn;\n\n    /** @var string Name of the default class to instantiate when fetching class instances. */\n    private $defaultFetchClass = '\\stdClass';\n\n    /** @var mixed[] Constructor arguments for the default class to instantiate when fetching class instances. */\n    private $defaultFetchClassCtorArgs = [];\n\n    /** @var int Default fetch mode to use. */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /** @var resource The result set resource to fetch. */\n    private $result;\n\n    /** @var resource The prepared SQL statement to execute. */\n    private $stmt;\n\n    /** @var mixed[] The references to bound parameter values. */\n    private $boundValues = [];\n\n    /**\n     * Prepares given statement for given connection.\n     *\n     * @param resource $conn The connection resource to use.\n     * @param string   $sql  The SQL statement to prepare.\n     *\n     * @throws SQLAnywhereException\n     */\n    public function __construct($conn, $sql)\n    {\n        if (! is_resource($conn)) {\n            throw new SQLAnywhereException('Invalid SQL Anywhere connection resource: ' . $conn);\n        }\n\n        $this->conn = $conn;\n        $this->stmt = sasql_prepare($conn, $sql);\n\n        if (! is_resource($this->stmt)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($conn);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        switch ($type) {\n            case ParameterType::INTEGER:\n            case ParameterType::BOOLEAN:\n                $type = 'i';\n                break;\n\n            case ParameterType::LARGE_OBJECT:\n                $type = 'b';\n                break;\n\n            case ParameterType::NULL:\n            case ParameterType::STRING:\n            case ParameterType::BINARY:\n                $type = 's';\n                break;\n\n            default:\n                throw new SQLAnywhereException('Unknown type: ' . $type);\n        }\n\n        $this->boundValues[$column] =& $variable;\n\n        if (! sasql_stmt_bind_param_ex($this->stmt, $column - 1, $variable, $type, $variable === null)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->conn, $this->stmt);\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        return $this->bindParam($param, $value, $type);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function closeCursor()\n    {\n        if (! sasql_stmt_reset($this->stmt)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->conn, $this->stmt);\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return sasql_stmt_field_count($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return sasql_stmt_errno($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return sasql_stmt_error($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function execute($params = null)\n    {\n        if (is_array($params)) {\n            $hasZeroIndex = array_key_exists(0, $params);\n\n            foreach ($params as $key => $val) {\n                $key = $hasZeroIndex && is_numeric($key) ? $key + 1 : $key;\n\n                $this->bindValue($key, $val);\n            }\n        }\n\n        if (! sasql_stmt_execute($this->stmt)) {\n            throw SQLAnywhereException::fromSQLAnywhereError($this->conn, $this->stmt);\n        }\n\n        $this->result = sasql_stmt_result_metadata($this->stmt);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLAnywhereException\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        if (! is_resource($this->result)) {\n            return false;\n        }\n\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n        switch ($fetchMode) {\n            case FetchMode::COLUMN:\n                return $this->fetchColumn();\n\n            case FetchMode::ASSOCIATIVE:\n                return sasql_fetch_assoc($this->result);\n\n            case FetchMode::MIXED:\n                return sasql_fetch_array($this->result, SASQL_BOTH);\n\n            case FetchMode::CUSTOM_OBJECT:\n                $className = $this->defaultFetchClass;\n                $ctorArgs  = $this->defaultFetchClassCtorArgs;\n\n                if (func_num_args() >= 2) {\n                    $args      = func_get_args();\n                    $className = $args[1];\n                    $ctorArgs  = $args[2] ?? [];\n                }\n\n                $result = sasql_fetch_object($this->result);\n\n                if ($result instanceof stdClass) {\n                    $result = $this->castObject($result, $className, $ctorArgs);\n                }\n\n                return $result;\n\n            case FetchMode::NUMERIC:\n                return sasql_fetch_row($this->result);\n\n            case FetchMode::STANDARD_OBJECT:\n                return sasql_fetch_object($this->result);\n\n            default:\n                throw new SQLAnywhereException('Fetch mode is not supported: ' . $fetchMode);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $rows = [];\n\n        switch ($fetchMode) {\n            case FetchMode::CUSTOM_OBJECT:\n                while (($row = $this->fetch(...func_get_args())) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n\n            case FetchMode::COLUMN:\n                while (($row = $this->fetchColumn()) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n\n            default:\n                while (($row = $this->fetch($fetchMode)) !== false) {\n                    $rows[] = $row;\n                }\n        }\n\n        return $rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        if ($row === false) {\n            return false;\n        }\n\n        return $row[$columnIndex] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        return sasql_stmt_affected_rows($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->defaultFetchMode          = $fetchMode;\n        $this->defaultFetchClass         = $arg2 ?: $this->defaultFetchClass;\n        $this->defaultFetchClassCtorArgs = $arg3 ? (array) $arg3 : $this->defaultFetchClassCtorArgs;\n    }\n\n    /**\n     * Casts a stdClass object to the given class name mapping its' properties.\n     *\n     * @param stdClass      $sourceObject     Object to cast from.\n     * @param string|object $destinationClass Name of the class or class instance to cast to.\n     * @param mixed[]       $ctorArgs         Arguments to use for constructing the destination class instance.\n     *\n     * @return object\n     *\n     * @throws SQLAnywhereException\n     */\n    private function castObject(stdClass $sourceObject, $destinationClass, array $ctorArgs = [])\n    {\n        if (! is_string($destinationClass)) {\n            if (! is_object($destinationClass)) {\n                throw new SQLAnywhereException(sprintf(\n                    'Destination class has to be of type string or object, %s given.',\n                    gettype($destinationClass)\n                ));\n            }\n        } else {\n            $destinationClass = new ReflectionClass($destinationClass);\n            $destinationClass = $destinationClass->newInstanceArgs($ctorArgs);\n        }\n\n        $sourceReflection           = new ReflectionObject($sourceObject);\n        $destinationClassReflection = new ReflectionObject($destinationClass);\n\n        foreach ($sourceReflection->getProperties() as $sourceProperty) {\n            $sourceProperty->setAccessible(true);\n\n            $name  = $sourceProperty->getName();\n            $value = $sourceProperty->getValue($sourceObject);\n\n            if ($destinationClassReflection->hasProperty($name)) {\n                $destinationProperty = $destinationClassReflection->getProperty($name);\n\n                $destinationProperty->setAccessible(true);\n                $destinationProperty->setValue($destinationClass, $value);\n            } else {\n                $destinationClass->$name = $value;\n            }\n        }\n\n        return $destinationClass;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLSrv;\n\nuse Doctrine\\DBAL\\Driver\\AbstractSQLServerDriver;\n\n/**\n * Driver for ext/sqlsrv.\n */\nclass Driver extends AbstractSQLServerDriver\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])\n    {\n        if (! isset($params['host'])) {\n            throw new SQLSrvException(\"Missing 'host' in configuration for sqlsrv driver.\");\n        }\n\n        $serverName = $params['host'];\n        if (isset($params['port'])) {\n            $serverName .= ', ' . $params['port'];\n        }\n\n        if (isset($params['dbname'])) {\n            $driverOptions['Database'] = $params['dbname'];\n        }\n\n        if (isset($params['charset'])) {\n            $driverOptions['CharacterSet'] = $params['charset'];\n        }\n\n        if ($username !== null) {\n            $driverOptions['UID'] = $username;\n        }\n\n        if ($password !== null) {\n            $driverOptions['PWD'] = $password;\n        }\n\n        if (! isset($driverOptions['ReturnDatesAsStrings'])) {\n            $driverOptions['ReturnDatesAsStrings'] = 1;\n        }\n\n        return new SQLSrvConnection($serverName, $driverOptions);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'sqlsrv';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/LastInsertId.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLSrv;\n\n/**\n * Last Id Data Container.\n */\nclass LastInsertId\n{\n    /** @var int */\n    private $id;\n\n    /**\n     * @param int $id\n     */\n    public function setId($id)\n    {\n        $this->id = $id;\n    }\n\n    /**\n     * @return int\n     */\n    public function getId()\n    {\n        return $this->id;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLSrv;\n\nuse Doctrine\\DBAL\\Driver\\Connection;\nuse Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection;\nuse Doctrine\\DBAL\\ParameterType;\nuse const SQLSRV_ERR_ERRORS;\nuse function func_get_args;\nuse function is_float;\nuse function is_int;\nuse function sprintf;\nuse function sqlsrv_begin_transaction;\nuse function sqlsrv_commit;\nuse function sqlsrv_configure;\nuse function sqlsrv_connect;\nuse function sqlsrv_errors;\nuse function sqlsrv_query;\nuse function sqlsrv_rollback;\nuse function sqlsrv_rows_affected;\nuse function sqlsrv_server_info;\nuse function str_replace;\n\n/**\n * SQL Server implementation for the Connection interface.\n */\nclass SQLSrvConnection implements Connection, ServerInfoAwareConnection\n{\n    /** @var resource */\n    protected $conn;\n\n    /** @var LastInsertId */\n    protected $lastInsertId;\n\n    /**\n     * @param string  $serverName\n     * @param mixed[] $connectionOptions\n     *\n     * @throws SQLSrvException\n     */\n    public function __construct($serverName, $connectionOptions)\n    {\n        if (! sqlsrv_configure('WarningsReturnAsErrors', 0)) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n\n        $this->conn = sqlsrv_connect($serverName, $connectionOptions);\n        if (! $this->conn) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n        $this->lastInsertId = new LastInsertId();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getServerVersion()\n    {\n        $serverInfo = sqlsrv_server_info($this->conn);\n\n        return $serverInfo['SQLServerVersion'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresQueryForServerVersion()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prepare($sql)\n    {\n        return new SQLSrvStatement($this->conn, $sql, $this->lastInsertId);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function query()\n    {\n        $args = func_get_args();\n        $sql  = $args[0];\n        $stmt = $this->prepare($sql);\n        $stmt->execute();\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function quote($value, $type = ParameterType::STRING)\n    {\n        if (is_int($value)) {\n            return $value;\n        } elseif (is_float($value)) {\n            return sprintf('%F', $value);\n        }\n\n        return \"'\" . str_replace(\"'\", \"''\", $value) . \"'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function exec($statement)\n    {\n        $stmt = sqlsrv_query($this->conn, $statement);\n\n        if ($stmt === false) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n\n        return sqlsrv_rows_affected($stmt);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function lastInsertId($name = null)\n    {\n        if ($name !== null) {\n            $stmt = $this->prepare('SELECT CONVERT(VARCHAR(MAX), current_value) FROM sys.sequences WHERE name = ?');\n            $stmt->execute([$name]);\n        } else {\n            $stmt = $this->query('SELECT @@IDENTITY');\n        }\n\n        return $stmt->fetchColumn();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function beginTransaction()\n    {\n        if (! sqlsrv_begin_transaction($this->conn)) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function commit()\n    {\n        if (! sqlsrv_commit($this->conn)) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function rollBack()\n    {\n        if (! sqlsrv_rollback($this->conn)) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function errorCode()\n    {\n        $errors = sqlsrv_errors(SQLSRV_ERR_ERRORS);\n        if ($errors) {\n            return $errors[0]['code'];\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function errorInfo()\n    {\n        return sqlsrv_errors(SQLSRV_ERR_ERRORS);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLSrv;\n\nuse Doctrine\\DBAL\\Driver\\AbstractDriverException;\nuse const SQLSRV_ERR_ERRORS;\nuse function rtrim;\nuse function sqlsrv_errors;\n\nclass SQLSrvException extends AbstractDriverException\n{\n    /**\n     * Helper method to turn sql server errors into exception.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvException\n     */\n    public static function fromSqlSrvErrors()\n    {\n        $errors    = sqlsrv_errors(SQLSRV_ERR_ERRORS);\n        $message   = '';\n        $sqlState  = null;\n        $errorCode = null;\n\n        foreach ($errors as $error) {\n            $message .= 'SQLSTATE [' . $error['SQLSTATE'] . ', ' . $error['code'] . ']: ' . $error['message'] . \"\\n\";\n\n            if ($sqlState === null) {\n                $sqlState = $error['SQLSTATE'];\n            }\n\n            if ($errorCode !== null) {\n                continue;\n            }\n\n            $errorCode = $error['code'];\n        }\n        if (! $message) {\n            $message = 'SQL Server error occurred but no error message was retrieved from driver.';\n        }\n\n        return new self(rtrim($message), $sqlState, $errorCode);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver\\SQLSrv;\n\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse IteratorAggregate;\nuse PDO;\nuse const SQLSRV_ENC_BINARY;\nuse const SQLSRV_ERR_ERRORS;\nuse const SQLSRV_FETCH_ASSOC;\nuse const SQLSRV_FETCH_BOTH;\nuse const SQLSRV_FETCH_NUMERIC;\nuse const SQLSRV_PARAM_IN;\nuse function array_key_exists;\nuse function count;\nuse function func_get_args;\nuse function in_array;\nuse function is_numeric;\nuse function sqlsrv_errors;\nuse function sqlsrv_execute;\nuse function sqlsrv_fetch;\nuse function sqlsrv_fetch_array;\nuse function sqlsrv_fetch_object;\nuse function sqlsrv_get_field;\nuse function sqlsrv_next_result;\nuse function sqlsrv_num_fields;\nuse function SQLSRV_PHPTYPE_STREAM;\nuse function SQLSRV_PHPTYPE_STRING;\nuse function sqlsrv_prepare;\nuse function sqlsrv_rows_affected;\nuse function SQLSRV_SQLTYPE_VARBINARY;\nuse function stripos;\n\n/**\n * SQL Server Statement.\n */\nclass SQLSrvStatement implements IteratorAggregate, Statement\n{\n    /**\n     * The SQLSRV Resource.\n     *\n     * @var resource\n     */\n    private $conn;\n\n    /**\n     * The SQL statement to execute.\n     *\n     * @var string\n     */\n    private $sql;\n\n    /**\n     * The SQLSRV statement resource.\n     *\n     * @var resource|null\n     */\n    private $stmt;\n\n    /**\n     * References to the variables bound as statement parameters.\n     *\n     * @var mixed\n     */\n    private $variables = [];\n\n    /**\n     * Bound parameter types.\n     *\n     * @var int[]\n     */\n    private $types = [];\n\n    /**\n     * Translations.\n     *\n     * @var int[]\n     */\n    private static $fetchMap = [\n        FetchMode::MIXED       => SQLSRV_FETCH_BOTH,\n        FetchMode::ASSOCIATIVE => SQLSRV_FETCH_ASSOC,\n        FetchMode::NUMERIC     => SQLSRV_FETCH_NUMERIC,\n    ];\n\n    /**\n     * The name of the default class to instantiate when fetching class instances.\n     *\n     * @var string\n     */\n    private $defaultFetchClass = '\\stdClass';\n\n    /**\n     * The constructor arguments for the default class to instantiate when fetching class instances.\n     *\n     * @var mixed[]\n     */\n    private $defaultFetchClassCtorArgs = [];\n\n    /**\n     * The fetch style.\n     *\n     * @var int\n     */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * The last insert ID.\n     *\n     * @var LastInsertId|null\n     */\n    private $lastInsertId;\n\n    /**\n     * Indicates whether the statement is in the state when fetching results is possible\n     *\n     * @var bool\n     */\n    private $result = false;\n\n    /**\n     * Append to any INSERT query to retrieve the last insert id.\n     */\n    public const LAST_INSERT_ID_SQL = ';SELECT SCOPE_IDENTITY() AS LastInsertId;';\n\n    /**\n     * @param resource $conn\n     * @param string   $sql\n     */\n    public function __construct($conn, $sql, ?LastInsertId $lastInsertId = null)\n    {\n        $this->conn = $conn;\n        $this->sql  = $sql;\n\n        if (stripos($sql, 'INSERT INTO ') !== 0) {\n            return;\n        }\n\n        $this->sql         .= self::LAST_INSERT_ID_SQL;\n        $this->lastInsertId = $lastInsertId;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        if (! is_numeric($param)) {\n            throw new SQLSrvException(\n                'sqlsrv does not support named parameters to queries, use question mark (?) placeholders instead.'\n            );\n        }\n\n        $this->variables[$param] = $value;\n        $this->types[$param]     = $type;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        if (! is_numeric($column)) {\n            throw new SQLSrvException('sqlsrv does not support named parameters to queries, use question mark (?) placeholders instead.');\n        }\n\n        $this->variables[$column] =& $variable;\n        $this->types[$column]     = $type;\n\n        // unset the statement resource if it exists as the new one will need to be bound to the new variable\n        $this->stmt = null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        // not having the result means there's nothing to close\n        if (! $this->result) {\n            return true;\n        }\n\n        // emulate it by fetching and discarding rows, similarly to what PDO does in this case\n        // @link http://php.net/manual/en/pdostatement.closecursor.php\n        // @link https://github.com/php/php-src/blob/php-7.0.11/ext/pdo/pdo_stmt.c#L2075\n        // deliberately do not consider multiple result sets, since doctrine/dbal doesn't support them\n        while (sqlsrv_fetch($this->stmt)) {\n        }\n\n        $this->result = false;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return sqlsrv_num_fields($this->stmt);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        $errors = sqlsrv_errors(SQLSRV_ERR_ERRORS);\n        if ($errors) {\n            return $errors[0]['code'];\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return sqlsrv_errors(SQLSRV_ERR_ERRORS);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        if ($params) {\n            $hasZeroIndex = array_key_exists(0, $params);\n            foreach ($params as $key => $val) {\n                $key = $hasZeroIndex && is_numeric($key) ? $key + 1 : $key;\n                $this->bindValue($key, $val);\n            }\n        }\n\n        if (! $this->stmt) {\n            $this->stmt = $this->prepare();\n        }\n\n        if (! sqlsrv_execute($this->stmt)) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n\n        if ($this->lastInsertId) {\n            sqlsrv_next_result($this->stmt);\n            sqlsrv_fetch($this->stmt);\n            $this->lastInsertId->setId(sqlsrv_get_field($this->stmt, 0));\n        }\n\n        $this->result = true;\n    }\n\n    /**\n     * Prepares SQL Server statement resource\n     *\n     * @return resource\n     *\n     * @throws SQLSrvException\n     */\n    private function prepare()\n    {\n        $params = [];\n\n        foreach ($this->variables as $column => &$variable) {\n            switch ($this->types[$column]) {\n                case ParameterType::LARGE_OBJECT:\n                    $params[$column - 1] = [\n                        &$variable,\n                        SQLSRV_PARAM_IN,\n                        SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY),\n                        SQLSRV_SQLTYPE_VARBINARY('max'),\n                    ];\n                    break;\n\n                case ParameterType::BINARY:\n                    $params[$column - 1] = [\n                        &$variable,\n                        SQLSRV_PARAM_IN,\n                        SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_BINARY),\n                    ];\n                    break;\n\n                default:\n                    $params[$column - 1] =& $variable;\n                    break;\n            }\n        }\n\n        $stmt = sqlsrv_prepare($this->conn, $this->sql, $params);\n\n        if (! $stmt) {\n            throw SQLSrvException::fromSqlSrvErrors();\n        }\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        $this->defaultFetchMode          = $fetchMode;\n        $this->defaultFetchClass         = $arg2 ?: $this->defaultFetchClass;\n        $this->defaultFetchClassCtorArgs = $arg3 ? (array) $arg3 : $this->defaultFetchClassCtorArgs;\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @throws SQLSrvException\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        // do not try fetching from the statement if it's not expected to contain result\n        // in order to prevent exceptional situation\n        if (! $this->result) {\n            return false;\n        }\n\n        $args      = func_get_args();\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            return $this->fetchColumn();\n        }\n\n        if (isset(self::$fetchMap[$fetchMode])) {\n            return sqlsrv_fetch_array($this->stmt, self::$fetchMap[$fetchMode]) ?: false;\n        }\n\n        if (in_array($fetchMode, [FetchMode::STANDARD_OBJECT, FetchMode::CUSTOM_OBJECT], true)) {\n            $className = $this->defaultFetchClass;\n            $ctorArgs  = $this->defaultFetchClassCtorArgs;\n\n            if (count($args) >= 2) {\n                $className = $args[1];\n                $ctorArgs  = $args[2] ?? [];\n            }\n\n            return sqlsrv_fetch_object($this->stmt, $className, $ctorArgs) ?: false;\n        }\n\n        throw new SQLSrvException('Fetch mode is not supported!');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $rows = [];\n\n        switch ($fetchMode) {\n            case FetchMode::CUSTOM_OBJECT:\n                while (($row = $this->fetch(...func_get_args())) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n\n            case FetchMode::COLUMN:\n                while (($row = $this->fetchColumn()) !== false) {\n                    $rows[] = $row;\n                }\n                break;\n\n            default:\n                while (($row = $this->fetch($fetchMode)) !== false) {\n                    $rows[] = $row;\n                }\n        }\n\n        return $rows;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $row = $this->fetch(FetchMode::NUMERIC);\n\n        if ($row === false) {\n            return false;\n        }\n\n        return $row[$columnIndex] ?? null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        return sqlsrv_rows_affected($this->stmt);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\n/**\n * Contract for a connection that is able to provide information about the server it is connected to.\n */\ninterface ServerInfoAwareConnection\n{\n    /**\n     * Returns the version number of the database server connected to.\n     *\n     * @return string\n     */\n    public function getServerVersion();\n\n    /**\n     * Checks whether a query is required to retrieve the database server version.\n     *\n     * @return bool True if a query is required to retrieve the database server version, false otherwise.\n     */\n    public function requiresQueryForServerVersion();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse Doctrine\\DBAL\\ParameterType;\n\n/**\n * Statement interface.\n * Drivers must implement this interface.\n *\n * This resembles (a subset of) the PDOStatement interface.\n */\ninterface Statement extends ResultStatement\n{\n    /**\n     * Binds a value to a corresponding named (not supported by mysqli driver, see comment below) or positional\n     * placeholder in the SQL statement that was used to prepare the statement.\n     *\n     * As mentioned above, the named parameters are not natively supported by the mysqli driver, use executeQuery(),\n     * fetchAll(), fetchArray(), fetchColumn(), fetchAssoc() methods to have the named parameter emulated by doctrine.\n     *\n     * @param mixed $param Parameter identifier. For a prepared statement using named placeholders,\n     *                     this will be a parameter name of the form :name. For a prepared statement\n     *                     using question mark placeholders, this will be the 1-indexed position of the parameter.\n     * @param mixed $value The value to bind to the parameter.\n     * @param int   $type  Explicit data type for the parameter using the {@link \\Doctrine\\DBAL\\ParameterType}\n     *                     constants.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING);\n\n    /**\n     * Binds a PHP variable to a corresponding named (not supported by mysqli driver, see comment below) or question\n     * mark placeholder in the SQL statement that was use to prepare the statement. Unlike PDOStatement->bindValue(),\n     * the variable is bound as a reference and will only be evaluated at the time\n     * that PDOStatement->execute() is called.\n     *\n     * As mentioned above, the named parameters are not natively supported by the mysqli driver, use executeQuery(),\n     * fetchAll(), fetchArray(), fetchColumn(), fetchAssoc() methods to have the named parameter emulated by doctrine.\n     *\n     * Most parameters are input parameters, that is, parameters that are\n     * used in a read-only fashion to build up the query. Some drivers support the invocation\n     * of stored procedures that return data as output parameters, and some also as input/output\n     * parameters that both send in data and are updated to receive it.\n     *\n     * @param mixed    $column   Parameter identifier. For a prepared statement using named placeholders,\n     *                           this will be a parameter name of the form :name. For a prepared statement using\n     *                           question mark placeholders, this will be the 1-indexed position of the parameter.\n     * @param mixed    $variable Name of the PHP variable to bind to the SQL statement parameter.\n     * @param int|null $type     Explicit data type for the parameter using the {@link \\Doctrine\\DBAL\\ParameterType}\n     *                           constants. To return an INOUT parameter from a stored procedure, use the bitwise\n     *                           OR operator to set the PDO::PARAM_INPUT_OUTPUT bits for the data_type parameter.\n     * @param int|null $length   You must specify maxlength when using an OUT bind\n     *                           so that PHP allocates enough memory to hold the returned value.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null);\n\n    /**\n     * Fetches the SQLSTATE associated with the last operation on the statement handle.\n     *\n     * @see Doctrine_Adapter_Interface::errorCode()\n     *\n     * @return string|int|bool The error code string.\n     */\n    public function errorCode();\n\n    /**\n     * Fetches extended error information associated with the last operation on the statement handle.\n     *\n     * @return mixed[] The error info array.\n     */\n    public function errorInfo();\n\n    /**\n     * Executes a prepared statement\n     *\n     * If the prepared statement included parameter markers, you must either:\n     * call PDOStatement->bindParam() to bind PHP variables to the parameter markers:\n     * bound variables pass their value as input and receive the output value,\n     * if any, of their associated parameter markers or pass an array of input-only\n     * parameter values.\n     *\n     * @param mixed[]|null $params An array of values with as many elements as there are\n     *                             bound parameters in the SQL statement being executed.\n     *\n     * @return bool TRUE on success or FALSE on failure.\n     */\n    public function execute($params = null);\n\n    /**\n     * Returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement\n     * executed by the corresponding object.\n     *\n     * If the last SQL statement executed by the associated Statement object was a SELECT statement,\n     * some databases may return the number of rows returned by that statement. However,\n     * this behaviour is not guaranteed for all databases and should not be\n     * relied on for portable applications.\n     *\n     * @return int The number of rows.\n     */\n    public function rowCount();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/StatementIterator.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Driver;\n\nuse IteratorAggregate;\n\nclass StatementIterator implements IteratorAggregate\n{\n    /** @var Statement */\n    private $statement;\n\n    public function __construct(Statement $statement)\n    {\n        $this->statement = $statement;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        while (($result = $this->statement->fetch()) !== false) {\n            yield $result;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager;\n\n/**\n * Driver interface.\n * Interface that all DBAL drivers must implement.\n */\ninterface Driver\n{\n    /**\n     * Attempts to create a connection with the database.\n     *\n     * @param mixed[]     $params        All connection parameters passed by the user.\n     * @param string|null $username      The username to use when connecting.\n     * @param string|null $password      The password to use when connecting.\n     * @param mixed[]     $driverOptions The driver options to use when connecting.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\Connection The database connection.\n     */\n    public function connect(array $params, $username = null, $password = null, array $driverOptions = []);\n\n    /**\n     * Gets the DatabasePlatform instance that provides all the metadata about\n     * the platform this driver connects to.\n     *\n     * @return AbstractPlatform The database platform.\n     */\n    public function getDatabasePlatform();\n\n    /**\n     * Gets the SchemaManager that can be used to inspect and change the underlying\n     * database schema of the platform this driver connects to.\n     *\n     * @return AbstractSchemaManager\n     */\n    public function getSchemaManager(Connection $conn);\n\n    /**\n     * Gets the name of the driver.\n     *\n     * @return string The name of the driver.\n     */\n    public function getName();\n\n    /**\n     * Gets the name of the database connected to for this driver.\n     *\n     * @return string The name of the database.\n     */\n    public function getDatabase(Connection $conn);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\Common\\EventManager;\nuse Doctrine\\DBAL\\Driver\\DrizzlePDOMySql\\Driver as DrizzlePDOMySQLDriver;\nuse Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Driver;\nuse Doctrine\\DBAL\\Driver\\Mysqli\\Driver as MySQLiDriver;\nuse Doctrine\\DBAL\\Driver\\OCI8\\Driver as OCI8Driver;\nuse Doctrine\\DBAL\\Driver\\PDOMySql\\Driver as PDOMySQLDriver;\nuse Doctrine\\DBAL\\Driver\\PDOOracle\\Driver as PDOOCIDriver;\nuse Doctrine\\DBAL\\Driver\\PDOPgSql\\Driver as PDOPgSQLDriver;\nuse Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver as PDOSQLiteDriver;\nuse Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Driver as PDOSQLSrvDriver;\nuse Doctrine\\DBAL\\Driver\\SQLAnywhere\\Driver as SQLAnywhereDriver;\nuse Doctrine\\DBAL\\Driver\\SQLSrv\\Driver as SQLSrvDriver;\nuse PDO;\nuse function array_keys;\nuse function array_map;\nuse function array_merge;\nuse function class_implements;\nuse function in_array;\nuse function is_subclass_of;\nuse function parse_str;\nuse function parse_url;\nuse function preg_replace;\nuse function str_replace;\nuse function strpos;\nuse function substr;\n\n/**\n * Factory for creating Doctrine\\DBAL\\Connection instances.\n */\nfinal class DriverManager\n{\n    /**\n     * List of supported drivers and their mappings to the driver classes.\n     *\n     * To add your own driver use the 'driverClass' parameter to\n     * {@link DriverManager::getConnection()}.\n     *\n     * @var string[]\n     */\n    private static $_driverMap = [\n        'pdo_mysql'          => PDOMySQLDriver::class,\n        'pdo_sqlite'         => PDOSQLiteDriver::class,\n        'pdo_pgsql'          => PDOPgSQLDriver::class,\n        'pdo_oci'            => PDOOCIDriver::class,\n        'oci8'               => OCI8Driver::class,\n        'ibm_db2'            => DB2Driver::class,\n        'pdo_sqlsrv'         => PDOSQLSrvDriver::class,\n        'mysqli'             => MySQLiDriver::class,\n        'drizzle_pdo_mysql'  => DrizzlePDOMySQLDriver::class,\n        'sqlanywhere'        => SQLAnywhereDriver::class,\n        'sqlsrv'             => SQLSrvDriver::class,\n    ];\n\n    /**\n     * List of URL schemes from a database URL and their mappings to driver.\n     *\n     * @var string[]\n     */\n    private static $driverSchemeAliases = [\n        'db2'        => 'ibm_db2',\n        'mssql'      => 'pdo_sqlsrv',\n        'mysql'      => 'pdo_mysql',\n        'mysql2'     => 'pdo_mysql', // Amazon RDS, for some weird reason\n        'postgres'   => 'pdo_pgsql',\n        'postgresql' => 'pdo_pgsql',\n        'pgsql'      => 'pdo_pgsql',\n        'sqlite'     => 'pdo_sqlite',\n        'sqlite3'    => 'pdo_sqlite',\n    ];\n\n    /**\n     * Private constructor. This class cannot be instantiated.\n     */\n    private function __construct()\n    {\n    }\n\n    /**\n     * Creates a connection object based on the specified parameters.\n     * This method returns a Doctrine\\DBAL\\Connection which wraps the underlying\n     * driver connection.\n     *\n     * $params must contain at least one of the following.\n     *\n     * Either 'driver' with one of the following values:\n     *\n     *     pdo_mysql\n     *     pdo_sqlite\n     *     pdo_pgsql\n     *     pdo_oci (unstable)\n     *     pdo_sqlsrv\n     *     pdo_sqlsrv\n     *     mysqli\n     *     sqlanywhere\n     *     sqlsrv\n     *     ibm_db2 (unstable)\n     *     drizzle_pdo_mysql\n     *\n     * OR 'driverClass' that contains the full class name (with namespace) of the\n     * driver class to instantiate.\n     *\n     * Other (optional) parameters:\n     *\n     * <b>user (string)</b>:\n     * The username to use when connecting.\n     *\n     * <b>password (string)</b>:\n     * The password to use when connecting.\n     *\n     * <b>driverOptions (array)</b>:\n     * Any additional driver-specific options for the driver. These are just passed\n     * through to the driver.\n     *\n     * <b>pdo</b>:\n     * You can pass an existing PDO instance through this parameter. The PDO\n     * instance will be wrapped in a Doctrine\\DBAL\\Connection.\n     *\n     * <b>wrapperClass</b>:\n     * You may specify a custom wrapper class through the 'wrapperClass'\n     * parameter but this class MUST inherit from Doctrine\\DBAL\\Connection.\n     *\n     * <b>driverClass</b>:\n     * The driver class to use.\n     *\n     * @param mixed[]            $params       The parameters.\n     * @param Configuration|null $config       The configuration to use.\n     * @param EventManager|null  $eventManager The event manager to use.\n     *\n     * @throws DBALException\n     */\n    public static function getConnection(\n        array $params,\n        ?Configuration $config = null,\n        ?EventManager $eventManager = null\n    ) : Connection {\n        // create default config and event manager, if not set\n        if (! $config) {\n            $config = new Configuration();\n        }\n        if (! $eventManager) {\n            $eventManager = new EventManager();\n        }\n\n        $params = self::parseDatabaseUrl($params);\n\n        // URL support for MasterSlaveConnection\n        if (isset($params['master'])) {\n            $params['master'] = self::parseDatabaseUrl($params['master']);\n        }\n\n        if (isset($params['slaves'])) {\n            foreach ($params['slaves'] as $key => $slaveParams) {\n                $params['slaves'][$key] = self::parseDatabaseUrl($slaveParams);\n            }\n        }\n\n        // URL support for PoolingShardConnection\n        if (isset($params['global'])) {\n            $params['global'] = self::parseDatabaseUrl($params['global']);\n        }\n\n        if (isset($params['shards'])) {\n            foreach ($params['shards'] as $key => $shardParams) {\n                $params['shards'][$key] = self::parseDatabaseUrl($shardParams);\n            }\n        }\n\n        // check for existing pdo object\n        if (isset($params['pdo']) && ! $params['pdo'] instanceof PDO) {\n            throw DBALException::invalidPdoInstance();\n        } elseif (isset($params['pdo'])) {\n            $params['pdo']->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n            $params['driver'] = 'pdo_' . $params['pdo']->getAttribute(PDO::ATTR_DRIVER_NAME);\n        } else {\n            self::_checkParams($params);\n        }\n\n        $className = $params['driverClass'] ?? self::$_driverMap[$params['driver']];\n\n        $driver = new $className();\n\n        $wrapperClass = Connection::class;\n        if (isset($params['wrapperClass'])) {\n            if (! is_subclass_of($params['wrapperClass'], $wrapperClass)) {\n                throw DBALException::invalidWrapperClass($params['wrapperClass']);\n            }\n\n            $wrapperClass = $params['wrapperClass'];\n        }\n\n        return new $wrapperClass($params, $driver, $config, $eventManager);\n    }\n\n    /**\n     * Returns the list of supported drivers.\n     *\n     * @return string[]\n     */\n    public static function getAvailableDrivers() : array\n    {\n        return array_keys(self::$_driverMap);\n    }\n\n    /**\n     * Checks the list of parameters.\n     *\n     * @param mixed[] $params The list of parameters.\n     *\n     * @throws DBALException\n     */\n    private static function _checkParams(array $params) : void\n    {\n        // check existence of mandatory parameters\n\n        // driver\n        if (! isset($params['driver']) && ! isset($params['driverClass'])) {\n            throw DBALException::driverRequired();\n        }\n\n        // check validity of parameters\n\n        // driver\n        if (isset($params['driver']) && ! isset(self::$_driverMap[$params['driver']])) {\n            throw DBALException::unknownDriver($params['driver'], array_keys(self::$_driverMap));\n        }\n\n        if (isset($params['driverClass']) && ! in_array(Driver::class, class_implements($params['driverClass'], true))) {\n            throw DBALException::invalidDriverClass($params['driverClass']);\n        }\n    }\n\n    /**\n     * Normalizes the given connection URL path.\n     *\n     * @return string The normalized connection URL path\n     */\n    private static function normalizeDatabaseUrlPath(string $urlPath) : string\n    {\n        // Trim leading slash from URL path.\n        return substr($urlPath, 1);\n    }\n\n    /**\n     * Extracts parts from a database URL, if present, and returns an\n     * updated list of parameters.\n     *\n     * @param mixed[] $params The list of parameters.\n     *\n     * @return mixed[] A modified list of parameters with info from a database\n     *                 URL extracted into indidivual parameter parts.\n     *\n     * @throws DBALException\n     */\n    private static function parseDatabaseUrl(array $params) : array\n    {\n        if (! isset($params['url'])) {\n            return $params;\n        }\n\n        // (pdo_)?sqlite3?:///... => (pdo_)?sqlite3?://localhost/... or else the URL will be invalid\n        $url = preg_replace('#^((?:pdo_)?sqlite3?):///#', '$1://localhost/', $params['url']);\n        $url = parse_url($url);\n\n        if ($url === false) {\n            throw new DBALException('Malformed parameter \"url\".');\n        }\n\n        $url = array_map('rawurldecode', $url);\n\n        // If we have a connection URL, we have to unset the default PDO instance connection parameter (if any)\n        // as we cannot merge connection details from the URL into the PDO instance (URL takes precedence).\n        unset($params['pdo']);\n\n        $params = self::parseDatabaseUrlScheme($url, $params);\n\n        if (isset($url['host'])) {\n            $params['host'] = $url['host'];\n        }\n        if (isset($url['port'])) {\n            $params['port'] = $url['port'];\n        }\n        if (isset($url['user'])) {\n            $params['user'] = $url['user'];\n        }\n        if (isset($url['pass'])) {\n            $params['password'] = $url['pass'];\n        }\n\n        $params = self::parseDatabaseUrlPath($url, $params);\n        $params = self::parseDatabaseUrlQuery($url, $params);\n\n        return $params;\n    }\n\n    /**\n     * Parses the given connection URL and resolves the given connection parameters.\n     *\n     * Assumes that the connection URL scheme is already parsed and resolved into the given connection parameters\n     * via {@link parseDatabaseUrlScheme}.\n     *\n     * @see parseDatabaseUrlScheme\n     *\n     * @param mixed[] $url    The URL parts to evaluate.\n     * @param mixed[] $params The connection parameters to resolve.\n     *\n     * @return mixed[] The resolved connection parameters.\n     */\n    private static function parseDatabaseUrlPath(array $url, array $params) : array\n    {\n        if (! isset($url['path'])) {\n            return $params;\n        }\n\n        $url['path'] = self::normalizeDatabaseUrlPath($url['path']);\n\n        // If we do not have a known DBAL driver, we do not know any connection URL path semantics to evaluate\n        // and therefore treat the path as regular DBAL connection URL path.\n        if (! isset($params['driver'])) {\n            return self::parseRegularDatabaseUrlPath($url, $params);\n        }\n\n        if (strpos($params['driver'], 'sqlite') !== false) {\n            return self::parseSqliteDatabaseUrlPath($url, $params);\n        }\n\n        return self::parseRegularDatabaseUrlPath($url, $params);\n    }\n\n    /**\n     * Parses the query part of the given connection URL and resolves the given connection parameters.\n     *\n     * @param mixed[] $url    The connection URL parts to evaluate.\n     * @param mixed[] $params The connection parameters to resolve.\n     *\n     * @return mixed[] The resolved connection parameters.\n     */\n    private static function parseDatabaseUrlQuery(array $url, array $params) : array\n    {\n        if (! isset($url['query'])) {\n            return $params;\n        }\n\n        $query = [];\n\n        parse_str($url['query'], $query); // simply ingest query as extra params, e.g. charset or sslmode\n\n        return array_merge($params, $query); // parse_str wipes existing array elements\n    }\n\n    /**\n     * Parses the given regular connection URL and resolves the given connection parameters.\n     *\n     * Assumes that the \"path\" URL part is already normalized via {@link normalizeDatabaseUrlPath}.\n     *\n     * @see normalizeDatabaseUrlPath\n     *\n     * @param mixed[] $url    The regular connection URL parts to evaluate.\n     * @param mixed[] $params The connection parameters to resolve.\n     *\n     * @return mixed[] The resolved connection parameters.\n     */\n    private static function parseRegularDatabaseUrlPath(array $url, array $params) : array\n    {\n        $params['dbname'] = $url['path'];\n\n        return $params;\n    }\n\n    /**\n     * Parses the given SQLite connection URL and resolves the given connection parameters.\n     *\n     * Assumes that the \"path\" URL part is already normalized via {@link normalizeDatabaseUrlPath}.\n     *\n     * @see normalizeDatabaseUrlPath\n     *\n     * @param mixed[] $url    The SQLite connection URL parts to evaluate.\n     * @param mixed[] $params The connection parameters to resolve.\n     *\n     * @return mixed[] The resolved connection parameters.\n     */\n    private static function parseSqliteDatabaseUrlPath(array $url, array $params) : array\n    {\n        if ($url['path'] === ':memory:') {\n            $params['memory'] = true;\n\n            return $params;\n        }\n\n        $params['path'] = $url['path']; // pdo_sqlite driver uses 'path' instead of 'dbname' key\n\n        return $params;\n    }\n\n    /**\n     * Parses the scheme part from given connection URL and resolves the given connection parameters.\n     *\n     * @param mixed[] $url    The connection URL parts to evaluate.\n     * @param mixed[] $params The connection parameters to resolve.\n     *\n     * @return mixed[] The resolved connection parameters.\n     *\n     * @throws DBALException If parsing failed or resolution is not possible.\n     */\n    private static function parseDatabaseUrlScheme(array $url, array $params) : array\n    {\n        if (isset($url['scheme'])) {\n            // The requested driver from the URL scheme takes precedence\n            // over the default custom driver from the connection parameters (if any).\n            unset($params['driverClass']);\n\n            // URL schemes must not contain underscores, but dashes are ok\n            $driver = str_replace('-', '_', $url['scheme']);\n\n            // The requested driver from the URL scheme takes precedence over the\n            // default driver from the connection parameters. If the driver is\n            // an alias (e.g. \"postgres\"), map it to the actual name (\"pdo-pgsql\").\n            // Otherwise, let checkParams decide later if the driver exists.\n            $params['driver'] = self::$driverSchemeAliases[$driver] ?? $driver;\n\n            return $params;\n        }\n\n        // If a schemeless connection URL is given, we require a default driver or default custom driver\n        // as connection parameter.\n        if (! isset($params['driverClass']) && ! isset($params['driver'])) {\n            throw DBALException::driverRequired($params['url']);\n        }\n\n        return $params;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/ConnectionEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\Common\\EventArgs;\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager;\n\n/**\n * Event Arguments used when a Driver connection is established inside Doctrine\\DBAL\\Connection.\n */\nclass ConnectionEventArgs extends EventArgs\n{\n    /** @var Connection */\n    private $connection;\n\n    public function __construct(Connection $connection)\n    {\n        $this->connection = $connection;\n    }\n\n    /**\n     * @return Connection\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * @return Driver\n     */\n    public function getDriver()\n    {\n        return $this->connection->getDriver();\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getDatabasePlatform()\n    {\n        return $this->connection->getDatabasePlatform();\n    }\n\n    /**\n     * @return AbstractSchemaManager\n     */\n    public function getSchemaManager()\n    {\n        return $this->connection->getSchemaManager();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/MysqlSessionInit.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event\\Listeners;\n\nuse Doctrine\\Common\\EventSubscriber;\nuse Doctrine\\DBAL\\Event\\ConnectionEventArgs;\nuse Doctrine\\DBAL\\Events;\n\n/**\n * MySQL Session Init Event Subscriber which allows to set the Client Encoding of the Connection.\n *\n * @deprecated Use \"charset\" option to PDO MySQL Connection instead.\n */\nclass MysqlSessionInit implements EventSubscriber\n{\n    /**\n     * The charset.\n     *\n     * @var string\n     */\n    private $charset;\n\n    /**\n     * The collation, or FALSE if no collation.\n     *\n     * @var string|bool\n     */\n    private $collation;\n\n    /**\n     * Configure Charset and Collation options of MySQL Client for each Connection.\n     *\n     * @param string      $charset   The charset.\n     * @param string|bool $collation The collation, or FALSE if no collation.\n     */\n    public function __construct($charset = 'utf8', $collation = false)\n    {\n        $this->charset   = $charset;\n        $this->collation = $collation;\n    }\n\n    /**\n     * @return void\n     */\n    public function postConnect(ConnectionEventArgs $args)\n    {\n        $collation = $this->collation ? ' COLLATE ' . $this->collation : '';\n        $args->getConnection()->executeUpdate('SET NAMES ' . $this->charset . $collation);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSubscribedEvents()\n    {\n        return [Events::postConnect];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/OracleSessionInit.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event\\Listeners;\n\nuse Doctrine\\Common\\EventSubscriber;\nuse Doctrine\\DBAL\\Event\\ConnectionEventArgs;\nuse Doctrine\\DBAL\\Events;\nuse const CASE_UPPER;\nuse function array_change_key_case;\nuse function array_merge;\nuse function count;\nuse function implode;\n\n/**\n * Should be used when Oracle Server default environment does not match the Doctrine requirements.\n *\n * The following environment variables are required for the Doctrine default date format:\n *\n * NLS_TIME_FORMAT=\"HH24:MI:SS\"\n * NLS_DATE_FORMAT=\"YYYY-MM-DD HH24:MI:SS\"\n * NLS_TIMESTAMP_FORMAT=\"YYYY-MM-DD HH24:MI:SS\"\n * NLS_TIMESTAMP_TZ_FORMAT=\"YYYY-MM-DD HH24:MI:SS TZH:TZM\"\n */\nclass OracleSessionInit implements EventSubscriber\n{\n    /** @var string[] */\n    protected $_defaultSessionVars = [\n        'NLS_TIME_FORMAT' => 'HH24:MI:SS',\n        'NLS_DATE_FORMAT' => 'YYYY-MM-DD HH24:MI:SS',\n        'NLS_TIMESTAMP_FORMAT' => 'YYYY-MM-DD HH24:MI:SS',\n        'NLS_TIMESTAMP_TZ_FORMAT' => 'YYYY-MM-DD HH24:MI:SS TZH:TZM',\n        'NLS_NUMERIC_CHARACTERS' => '.,',\n    ];\n\n    /**\n     * @param string[] $oracleSessionVars\n     */\n    public function __construct(array $oracleSessionVars = [])\n    {\n        $this->_defaultSessionVars = array_merge($this->_defaultSessionVars, $oracleSessionVars);\n    }\n\n    /**\n     * @return void\n     */\n    public function postConnect(ConnectionEventArgs $args)\n    {\n        if (! count($this->_defaultSessionVars)) {\n            return;\n        }\n\n        array_change_key_case($this->_defaultSessionVars, CASE_UPPER);\n        $vars = [];\n        foreach ($this->_defaultSessionVars as $option => $value) {\n            if ($option === 'CURRENT_SCHEMA') {\n                $vars[] = $option . ' = ' . $value;\n            } else {\n                $vars[] = $option . \" = '\" . $value . \"'\";\n            }\n        }\n        $sql = 'ALTER SESSION SET ' . implode(' ', $vars);\n        $args->getConnection()->executeUpdate($sql);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSubscribedEvents()\n    {\n        return [Events::postConnect];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/SQLSessionInit.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event\\Listeners;\n\nuse Doctrine\\Common\\EventSubscriber;\nuse Doctrine\\DBAL\\Event\\ConnectionEventArgs;\nuse Doctrine\\DBAL\\Events;\n\n/**\n * Session init listener for executing a single SQL statement right after a connection is opened.\n */\nclass SQLSessionInit implements EventSubscriber\n{\n    /** @var string */\n    protected $sql;\n\n    /**\n     * @param string $sql\n     */\n    public function __construct($sql)\n    {\n        $this->sql = $sql;\n    }\n\n    /**\n     * @return void\n     */\n    public function postConnect(ConnectionEventArgs $args)\n    {\n        $conn = $args->getConnection();\n        $conn->exec($this->sql);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSubscribedEvents()\n    {\n        return [Events::postConnect];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableAddColumnEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for adding table columns are generated inside Doctrine\\DBAL\\Platform\\*Platform.\n */\nclass SchemaAlterTableAddColumnEventArgs extends SchemaEventArgs\n{\n    /** @var Column */\n    private $column;\n\n    /** @var TableDiff */\n    private $tableDiff;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    public function __construct(Column $column, TableDiff $tableDiff, AbstractPlatform $platform)\n    {\n        $this->column    = $column;\n        $this->tableDiff = $tableDiff;\n        $this->platform  = $platform;\n    }\n\n    /**\n     * @return Column\n     */\n    public function getColumn()\n    {\n        return $this->column;\n    }\n\n    /**\n     * @return TableDiff\n     */\n    public function getTableDiff()\n    {\n        return $this->tableDiff;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaAlterTableAddColumnEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableChangeColumnEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for changing table columns are generated inside Doctrine\\DBAL\\Platform\\*Platform.\n */\nclass SchemaAlterTableChangeColumnEventArgs extends SchemaEventArgs\n{\n    /** @var ColumnDiff */\n    private $columnDiff;\n\n    /** @var TableDiff */\n    private $tableDiff;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    public function __construct(ColumnDiff $columnDiff, TableDiff $tableDiff, AbstractPlatform $platform)\n    {\n        $this->columnDiff = $columnDiff;\n        $this->tableDiff  = $tableDiff;\n        $this->platform   = $platform;\n    }\n\n    /**\n     * @return ColumnDiff\n     */\n    public function getColumnDiff()\n    {\n        return $this->columnDiff;\n    }\n\n    /**\n     * @return TableDiff\n     */\n    public function getTableDiff()\n    {\n        return $this->tableDiff;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaAlterTableChangeColumnEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for creating tables are generated inside Doctrine\\DBAL\\Platform\\*Platform.\n */\nclass SchemaAlterTableEventArgs extends SchemaEventArgs\n{\n    /** @var TableDiff */\n    private $tableDiff;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    public function __construct(TableDiff $tableDiff, AbstractPlatform $platform)\n    {\n        $this->tableDiff = $tableDiff;\n        $this->platform  = $platform;\n    }\n\n    /**\n     * @return TableDiff\n     */\n    public function getTableDiff()\n    {\n        return $this->tableDiff;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaAlterTableEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRemoveColumnEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for removing table columns are generated inside Doctrine\\DBAL\\Platform\\*Platform.\n */\nclass SchemaAlterTableRemoveColumnEventArgs extends SchemaEventArgs\n{\n    /** @var Column */\n    private $column;\n\n    /** @var TableDiff */\n    private $tableDiff;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    public function __construct(Column $column, TableDiff $tableDiff, AbstractPlatform $platform)\n    {\n        $this->column    = $column;\n        $this->tableDiff = $tableDiff;\n        $this->platform  = $platform;\n    }\n\n    /**\n     * @return Column\n     */\n    public function getColumn()\n    {\n        return $this->column;\n    }\n\n    /**\n     * @return TableDiff\n     */\n    public function getTableDiff()\n    {\n        return $this->tableDiff;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaAlterTableRemoveColumnEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRenameColumnEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for renaming table columns are generated inside Doctrine\\DBAL\\Platform\\*Platform.\n */\nclass SchemaAlterTableRenameColumnEventArgs extends SchemaEventArgs\n{\n    /** @var string */\n    private $oldColumnName;\n\n    /** @var Column */\n    private $column;\n\n    /** @var TableDiff */\n    private $tableDiff;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    /**\n     * @param string $oldColumnName\n     */\n    public function __construct($oldColumnName, Column $column, TableDiff $tableDiff, AbstractPlatform $platform)\n    {\n        $this->oldColumnName = $oldColumnName;\n        $this->column        = $column;\n        $this->tableDiff     = $tableDiff;\n        $this->platform      = $platform;\n    }\n\n    /**\n     * @return string\n     */\n    public function getOldColumnName()\n    {\n        return $this->oldColumnName;\n    }\n\n    /**\n     * @return Column\n     */\n    public function getColumn()\n    {\n        return $this->column;\n    }\n\n    /**\n     * @return TableDiff\n     */\n    public function getTableDiff()\n    {\n        return $this->tableDiff;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaAlterTableRenameColumnEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaColumnDefinitionEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\n\n/**\n * Event Arguments used when the portable column definition is generated inside Doctrine\\DBAL\\Schema\\AbstractSchemaManager.\n */\nclass SchemaColumnDefinitionEventArgs extends SchemaEventArgs\n{\n    /** @var Column|null */\n    private $column = null;\n\n    /**\n     * Raw column data as fetched from the database.\n     *\n     * @var mixed[]\n     */\n    private $tableColumn;\n\n    /** @var string */\n    private $table;\n\n    /** @var string */\n    private $database;\n\n    /** @var Connection */\n    private $connection;\n\n    /**\n     * @param mixed[] $tableColumn\n     * @param string  $table\n     * @param string  $database\n     */\n    public function __construct(array $tableColumn, $table, $database, Connection $connection)\n    {\n        $this->tableColumn = $tableColumn;\n        $this->table       = $table;\n        $this->database    = $database;\n        $this->connection  = $connection;\n    }\n\n    /**\n     * Allows to clear the column which means the column will be excluded from\n     * tables column list.\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaColumnDefinitionEventArgs\n     */\n    public function setColumn(?Column $column = null)\n    {\n        $this->column = $column;\n\n        return $this;\n    }\n\n    /**\n     * @return Column|null\n     */\n    public function getColumn()\n    {\n        return $this->column;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getTableColumn()\n    {\n        return $this->tableColumn;\n    }\n\n    /**\n     * @return string\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * @return string\n     */\n    public function getDatabase()\n    {\n        return $this->database;\n    }\n\n    /**\n     * @return Connection\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getDatabasePlatform()\n    {\n        return $this->connection->getDatabasePlatform();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableColumnEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for creating table columns are generated inside Doctrine\\DBAL\\Platform\\AbstractPlatform.\n */\nclass SchemaCreateTableColumnEventArgs extends SchemaEventArgs\n{\n    /** @var Column */\n    private $column;\n\n    /** @var Table */\n    private $table;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    public function __construct(Column $column, Table $table, AbstractPlatform $platform)\n    {\n        $this->column   = $column;\n        $this->table    = $table;\n        $this->platform = $platform;\n    }\n\n    /**\n     * @return Column\n     */\n    public function getColumn()\n    {\n        return $this->column;\n    }\n\n    /**\n     * @return Table\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaCreateTableColumnEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse function array_merge;\nuse function is_array;\n\n/**\n * Event Arguments used when SQL queries for creating tables are generated inside Doctrine\\DBAL\\Platform\\AbstractPlatform.\n */\nclass SchemaCreateTableEventArgs extends SchemaEventArgs\n{\n    /** @var Table */\n    private $table;\n\n    /** @var Column[] */\n    private $columns;\n\n    /** @var mixed[] */\n    private $options;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string[] */\n    private $sql = [];\n\n    /**\n     * @param Column[] $columns\n     * @param mixed[]  $options\n     */\n    public function __construct(Table $table, array $columns, array $options, AbstractPlatform $platform)\n    {\n        $this->table    = $table;\n        $this->columns  = $columns;\n        $this->options  = $options;\n        $this->platform = $platform;\n    }\n\n    /**\n     * @return Table\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * @return Column[]\n     */\n    public function getColumns()\n    {\n        return $this->columns;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string|string[] $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaCreateTableEventArgs\n     */\n    public function addSql($sql)\n    {\n        if (is_array($sql)) {\n            $this->sql = array_merge($this->sql, $sql);\n        } else {\n            $this->sql[] = $sql;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaDropTableEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse InvalidArgumentException;\nuse function is_string;\n\n/**\n * Event Arguments used when the SQL query for dropping tables are generated inside Doctrine\\DBAL\\Platform\\AbstractPlatform.\n */\nclass SchemaDropTableEventArgs extends SchemaEventArgs\n{\n    /** @var string|Table */\n    private $table;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    /** @var string|null */\n    private $sql = null;\n\n    /**\n     * @param string|Table $table\n     *\n     * @throws InvalidArgumentException\n     */\n    public function __construct($table, AbstractPlatform $platform)\n    {\n        if (! $table instanceof Table && ! is_string($table)) {\n            throw new InvalidArgumentException('SchemaDropTableEventArgs expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        $this->table    = $table;\n        $this->platform = $platform;\n    }\n\n    /**\n     * @return string|Table\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getPlatform()\n    {\n        return $this->platform;\n    }\n\n    /**\n     * @param string $sql\n     *\n     * @return \\Doctrine\\DBAL\\Event\\SchemaDropTableEventArgs\n     */\n    public function setSql($sql)\n    {\n        $this->sql = $sql;\n\n        return $this;\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\Common\\EventArgs;\n\n/**\n * Base class for schema related events.\n */\nclass SchemaEventArgs extends EventArgs\n{\n    /** @var bool */\n    private $preventDefault = false;\n\n    /**\n     * @return \\Doctrine\\DBAL\\Event\\SchemaEventArgs\n     */\n    public function preventDefault()\n    {\n        $this->preventDefault = true;\n\n        return $this;\n    }\n\n    /**\n     * @return bool\n     */\n    public function isDefaultPrevented()\n    {\n        return $this->preventDefault;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaIndexDefinitionEventArgs.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Event;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Index;\n\n/**\n * Event Arguments used when the portable index definition is generated inside Doctrine\\DBAL\\Schema\\AbstractSchemaManager.\n */\nclass SchemaIndexDefinitionEventArgs extends SchemaEventArgs\n{\n    /** @var Index|null */\n    private $index = null;\n\n    /**\n     * Raw index data as fetched from the database.\n     *\n     * @var mixed[]\n     */\n    private $tableIndex;\n\n    /** @var string */\n    private $table;\n\n    /** @var Connection */\n    private $connection;\n\n    /**\n     * @param mixed[] $tableIndex\n     * @param string  $table\n     */\n    public function __construct(array $tableIndex, $table, Connection $connection)\n    {\n        $this->tableIndex = $tableIndex;\n        $this->table      = $table;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Allows to clear the index which means the index will be excluded from tables index list.\n     *\n     * @return SchemaIndexDefinitionEventArgs\n     */\n    public function setIndex(?Index $index = null)\n    {\n        $this->index = $index;\n\n        return $this;\n    }\n\n    /**\n     * @return Index|null\n     */\n    public function getIndex()\n    {\n        return $this->index;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getTableIndex()\n    {\n        return $this->tableIndex;\n    }\n\n    /**\n     * @return string\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * @return Connection\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * @return AbstractPlatform\n     */\n    public function getDatabasePlatform()\n    {\n        return $this->connection->getDatabasePlatform();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Events.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\n/**\n * Container for all DBAL events.\n *\n * This class cannot be instantiated.\n */\nfinal class Events\n{\n    /**\n     * Private constructor. This class cannot be instantiated.\n     */\n    private function __construct()\n    {\n    }\n\n    public const postConnect = 'postConnect';\n\n    public const onSchemaCreateTable            = 'onSchemaCreateTable';\n    public const onSchemaCreateTableColumn      = 'onSchemaCreateTableColumn';\n    public const onSchemaDropTable              = 'onSchemaDropTable';\n    public const onSchemaAlterTable             = 'onSchemaAlterTable';\n    public const onSchemaAlterTableAddColumn    = 'onSchemaAlterTableAddColumn';\n    public const onSchemaAlterTableRemoveColumn = 'onSchemaAlterTableRemoveColumn';\n    public const onSchemaAlterTableChangeColumn = 'onSchemaAlterTableChangeColumn';\n    public const onSchemaAlterTableRenameColumn = 'onSchemaAlterTableRenameColumn';\n    public const onSchemaColumnDefinition       = 'onSchemaColumnDefinition';\n    public const onSchemaIndexDefinition        = 'onSchemaIndexDefinition';\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConnectionException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Base class for all connection related errors detected in the driver.\n */\nclass ConnectionException extends DriverException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConstraintViolationException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Base class for all constraint violation related errors detected in the driver.\n */\nclass ConstraintViolationException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectExistsException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Base class for all already existing database object related errors detected in the driver.\n *\n * A database object is considered any asset that can be created in a database\n * such as schemas, tables, views, sequences, triggers,  constraints, indexes,\n * functions, stored procedures etc.\n */\nclass DatabaseObjectExistsException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectNotFoundException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Base class for all unknown database object related errors detected in the driver.\n *\n * A database object is considered any asset that can be created in a database\n * such as schemas, tables, views, sequences, triggers,  constraints, indexes,\n * functions, stored procedures etc.\n */\nclass DatabaseObjectNotFoundException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/DeadlockException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a deadlock error of a transaction detected in the driver.\n */\nclass DeadlockException extends ServerException implements RetryableException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/DriverException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Exception;\n\n/**\n * Base class for all errors detected in the driver.\n */\nclass DriverException extends DBALException\n{\n    /**\n     * The previous DBAL driver exception.\n     *\n     * @var \\Doctrine\\DBAL\\Driver\\DriverException\n     */\n    private $driverException;\n\n    /**\n     * @param string                                $message         The exception message.\n     * @param \\Doctrine\\DBAL\\Driver\\DriverException $driverException The DBAL driver exception to chain.\n     */\n    public function __construct($message, \\Doctrine\\DBAL\\Driver\\DriverException $driverException)\n    {\n        $exception = null;\n\n        if ($driverException instanceof Exception) {\n            $exception = $driverException;\n        }\n\n        parent::__construct($message, 0, $exception);\n\n        $this->driverException = $driverException;\n    }\n\n    /**\n     * Returns the driver specific error code if given.\n     *\n     * Returns null if no error code was given by the driver.\n     *\n     * @return int|string|null\n     */\n    public function getErrorCode()\n    {\n        return $this->driverException->getErrorCode();\n    }\n\n    /**\n     * Returns the SQLSTATE the driver was in at the time the error occurred, if given.\n     *\n     * Returns null if no SQLSTATE was given by the driver.\n     *\n     * @return string|null\n     */\n    public function getSQLState()\n    {\n        return $this->driverException->getSQLState();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/ForeignKeyConstraintViolationException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a foreign key constraint violation detected in the driver.\n */\nclass ForeignKeyConstraintViolationException extends ConstraintViolationException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidArgumentException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\nuse Doctrine\\DBAL\\DBALException;\n\n/**\n * Exception to be thrown when invalid arguments are passed to any DBAL API\n */\nclass InvalidArgumentException extends DBALException\n{\n    /**\n     * @return self\n     */\n    public static function fromEmptyCriteria()\n    {\n        return new self('Empty criteria was used, expected non-empty criteria');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidFieldNameException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for an invalid specified field name in a statement detected in the driver.\n */\nclass InvalidFieldNameException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/LockWaitTimeoutException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a lock wait timeout error of a transaction detected in the driver.\n */\nclass LockWaitTimeoutException extends ServerException implements RetryableException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/NonUniqueFieldNameException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a non-unique/ambiguous specified field name in a statement detected in the driver.\n */\nclass NonUniqueFieldNameException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/NotNullConstraintViolationException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a NOT NULL constraint violation detected in the driver.\n */\nclass NotNullConstraintViolationException extends ConstraintViolationException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/ReadOnlyException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a write operation attempt on a read-only database element detected in the driver.\n */\nclass ReadOnlyException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/RetryableException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Marker interface for all exceptions where retrying the transaction makes sense.\n */\ninterface RetryableException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/ServerException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Base class for all server related errors detected in the driver.\n */\nclass ServerException extends DriverException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/SyntaxErrorException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a syntax error in a statement detected in the driver.\n */\nclass SyntaxErrorException extends ServerException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableExistsException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for an already existing table referenced in a statement detected in the driver.\n */\nclass TableExistsException extends DatabaseObjectExistsException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableNotFoundException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for an unknown table referenced in a statement detected in the driver.\n */\nclass TableNotFoundException extends DatabaseObjectNotFoundException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Exception/UniqueConstraintViolationException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Exception;\n\n/**\n * Exception for a unique constraint violation detected in the driver.\n */\nclass UniqueConstraintViolationException extends ConstraintViolationException\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse PDO;\n\n/**\n * Contains statement fetch modes.\n */\nfinal class FetchMode\n{\n    /**\n     * Specifies that the fetch method shall return each row as an array indexed\n     * by column name as returned in the corresponding result set. If the result\n     * set contains multiple columns with the same name, the statement returns\n     * only a single value per column name.\n     *\n     * @see \\PDO::FETCH_ASSOC\n     */\n    public const ASSOCIATIVE = PDO::FETCH_ASSOC;\n\n    /**\n     * Specifies that the fetch method shall return each row as an array indexed\n     * by column number as returned in the corresponding result set, starting at\n     * column 0.\n     *\n     * @see \\PDO::FETCH_NUM\n     */\n    public const NUMERIC = PDO::FETCH_NUM;\n\n    /**\n     * Specifies that the fetch method shall return each row as an array indexed\n     * by both column name and number as returned in the corresponding result set,\n     * starting at column 0.\n     *\n     * @see \\PDO::FETCH_BOTH\n     */\n    public const MIXED = PDO::FETCH_BOTH;\n\n    /**\n     * Specifies that the fetch method shall return each row as an object with\n     * property names that correspond to the column names returned in the result\n     * set.\n     *\n     * @see \\PDO::FETCH_OBJ\n     */\n    public const STANDARD_OBJECT = PDO::FETCH_OBJ;\n\n    /**\n     * Specifies that the fetch method shall return only a single requested\n     * column from the next row in the result set.\n     *\n     * @see \\PDO::FETCH_COLUMN\n     */\n    public const COLUMN = PDO::FETCH_COLUMN;\n\n    /**\n     * Specifies that the fetch method shall return a new instance of the\n     * requested class, mapping the columns to named properties in the class.\n     *\n     * @see \\PDO::FETCH_CLASS\n     */\n    public const CUSTOM_OBJECT = PDO::FETCH_CLASS;\n\n    /**\n     * This class cannot be instantiated.\n     */\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGenerator.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Id;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\DriverManager;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\LockMode;\nuse Throwable;\nuse const CASE_LOWER;\nuse function array_change_key_case;\n\n/**\n * Table ID Generator for those poor languages that are missing sequences.\n *\n * WARNING: The Table Id Generator clones a second independent database\n * connection to work correctly. This means using the generator requests that\n * generate IDs will have two open database connections. This is necessary to\n * be safe from transaction failures in the main connection. Make sure to only\n * ever use one TableGenerator otherwise you end up with many connections.\n *\n * TableID Generator does not work with SQLite.\n *\n * The TableGenerator does not take care of creating the SQL Table itself. You\n * should look at the `TableGeneratorSchemaVisitor` to do this for you.\n * Otherwise the schema for a table looks like:\n *\n * CREATE sequences (\n *   sequence_name VARCHAR(255) NOT NULL,\n *   sequence_value INT NOT NULL DEFAULT 1,\n *   sequence_increment_by INT NOT NULL DEFAULT 1,\n *   PRIMARY KEY (sequence_name)\n * );\n *\n * Technically this generator works as follows:\n *\n * 1. Use a robust transaction serialization level.\n * 2. Open transaction\n * 3. Acquire a read lock on the table row (SELECT .. FOR UPDATE)\n * 4. Increment current value by one and write back to database\n * 5. Commit transaction\n *\n * If you are using a sequence_increment_by value that is larger than one the\n * ID Generator will keep incrementing values until it hits the incrementation\n * gap before issuing another query.\n *\n * If no row is present for a given sequence a new one will be created with the\n * default values 'value' = 1 and 'increment_by' = 1\n */\nclass TableGenerator\n{\n    /** @var Connection */\n    private $conn;\n\n    /** @var string */\n    private $generatorTableName;\n\n    /** @var mixed[][] */\n    private $sequences = [];\n\n    /**\n     * @param string $generatorTableName\n     *\n     * @throws DBALException\n     */\n    public function __construct(Connection $conn, $generatorTableName = 'sequences')\n    {\n        $params = $conn->getParams();\n        if ($params['driver'] === 'pdo_sqlite') {\n            throw new DBALException('Cannot use TableGenerator with SQLite.');\n        }\n        $this->conn               = DriverManager::getConnection($params, $conn->getConfiguration(), $conn->getEventManager());\n        $this->generatorTableName = $generatorTableName;\n    }\n\n    /**\n     * Generates the next unused value for the given sequence name.\n     *\n     * @param string $sequenceName\n     *\n     * @return int\n     *\n     * @throws DBALException\n     */\n    public function nextValue($sequenceName)\n    {\n        if (isset($this->sequences[$sequenceName])) {\n            $value = $this->sequences[$sequenceName]['value'];\n            $this->sequences[$sequenceName]['value']++;\n            if ($this->sequences[$sequenceName]['value'] >= $this->sequences[$sequenceName]['max']) {\n                unset($this->sequences[$sequenceName]);\n            }\n\n            return $value;\n        }\n\n        $this->conn->beginTransaction();\n\n        try {\n            $platform = $this->conn->getDatabasePlatform();\n            $sql      = 'SELECT sequence_value, sequence_increment_by'\n                . ' FROM ' . $platform->appendLockHint($this->generatorTableName, LockMode::PESSIMISTIC_WRITE)\n                . ' WHERE sequence_name = ? ' . $platform->getWriteLockSQL();\n            $stmt     = $this->conn->executeQuery($sql, [$sequenceName]);\n            $row      = $stmt->fetch(FetchMode::ASSOCIATIVE);\n\n            if ($row !== false) {\n                $row = array_change_key_case($row, CASE_LOWER);\n\n                $value = $row['sequence_value'];\n                $value++;\n\n                if ($row['sequence_increment_by'] > 1) {\n                    $this->sequences[$sequenceName] = [\n                        'value' => $value,\n                        'max' => $row['sequence_value'] + $row['sequence_increment_by'],\n                    ];\n                }\n\n                $sql  = 'UPDATE ' . $this->generatorTableName . ' ' .\n                       'SET sequence_value = sequence_value + sequence_increment_by ' .\n                       'WHERE sequence_name = ? AND sequence_value = ?';\n                $rows = $this->conn->executeUpdate($sql, [$sequenceName, $row['sequence_value']]);\n\n                if ($rows !== 1) {\n                    throw new DBALException('Race-condition detected while updating sequence. Aborting generation');\n                }\n            } else {\n                $this->conn->insert(\n                    $this->generatorTableName,\n                    ['sequence_name' => $sequenceName, 'sequence_value' => 1, 'sequence_increment_by' => 1]\n                );\n                $value = 1;\n            }\n\n            $this->conn->commit();\n        } catch (Throwable $e) {\n            $this->conn->rollBack();\n            throw new DBALException('Error occurred while generating ID with TableGenerator, aborted generation: ' . $e->getMessage(), 0, $e);\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGeneratorSchemaVisitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Id;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\n\nclass TableGeneratorSchemaVisitor implements Visitor\n{\n    /** @var string */\n    private $generatorTableName;\n\n    /**\n     * @param string $generatorTableName\n     */\n    public function __construct($generatorTableName = 'sequences')\n    {\n        $this->generatorTableName = $generatorTableName;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSchema(Schema $schema)\n    {\n        $table = $schema->createTable($this->generatorTableName);\n        $table->addColumn('sequence_name', 'string');\n        $table->addColumn('sequence_value', 'integer', ['default' => 1]);\n        $table->addColumn('sequence_increment_by', 'integer', ['default' => 1]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptColumn(Table $table, Column $column)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptIndex(Table $table, Index $index)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/LockMode.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\n/**\n * Contains all DBAL LockModes.\n */\nclass LockMode\n{\n    public const NONE              = 0;\n    public const OPTIMISTIC        = 1;\n    public const PESSIMISTIC_READ  = 2;\n    public const PESSIMISTIC_WRITE = 4;\n\n    /**\n     * Private constructor. This class cannot be instantiated.\n     */\n    final private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Logging/DebugStack.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Logging;\n\nuse function microtime;\n\n/**\n * Includes executed SQLs in a Debug Stack.\n */\nclass DebugStack implements SQLLogger\n{\n    /**\n     * Executed SQL queries.\n     *\n     * @var mixed[][]\n     */\n    public $queries = [];\n\n    /**\n     * If Debug Stack is enabled (log queries) or not.\n     *\n     * @var bool\n     */\n    public $enabled = true;\n\n    /** @var float|null */\n    public $start = null;\n\n    /** @var int */\n    public $currentQuery = 0;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function startQuery($sql, ?array $params = null, ?array $types = null)\n    {\n        if (! $this->enabled) {\n            return;\n        }\n\n        $this->start                          = microtime(true);\n        $this->queries[++$this->currentQuery] = ['sql' => $sql, 'params' => $params, 'types' => $types, 'executionMS' => 0];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function stopQuery()\n    {\n        if (! $this->enabled) {\n            return;\n        }\n\n        $this->queries[$this->currentQuery]['executionMS'] = microtime(true) - $this->start;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Logging;\n\nuse const PHP_EOL;\nuse function var_dump;\n\n/**\n * A SQL logger that logs to the standard output using echo/var_dump.\n */\nclass EchoSQLLogger implements SQLLogger\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function startQuery($sql, ?array $params = null, ?array $types = null)\n    {\n        echo $sql . PHP_EOL;\n\n        if ($params) {\n            var_dump($params);\n        }\n\n        if (! $types) {\n            return;\n        }\n\n        var_dump($types);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function stopQuery()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Logging/LoggerChain.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Logging;\n\n/**\n * Chains multiple SQLLogger.\n */\nclass LoggerChain implements SQLLogger\n{\n    /** @var SQLLogger[] */\n    private $loggers = [];\n\n    /**\n     * Adds a logger in the chain.\n     *\n     * @return void\n     */\n    public function addLogger(SQLLogger $logger)\n    {\n        $this->loggers[] = $logger;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function startQuery($sql, ?array $params = null, ?array $types = null)\n    {\n        foreach ($this->loggers as $logger) {\n            $logger->startQuery($sql, $params, $types);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function stopQuery()\n    {\n        foreach ($this->loggers as $logger) {\n            $logger->stopQuery();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Logging/SQLLogger.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Logging;\n\n/**\n * Interface for SQL loggers.\n */\ninterface SQLLogger\n{\n    /**\n     * Logs a SQL statement somewhere.\n     *\n     * @param string              $sql    The SQL to be executed.\n     * @param mixed[]|null        $params The SQL parameters.\n     * @param int[]|string[]|null $types  The SQL parameter types.\n     *\n     * @return void\n     */\n    public function startQuery($sql, ?array $params = null, ?array $types = null);\n\n    /**\n     * Marks the last started query as stopped. This can be used for timing of queries.\n     *\n     * @return void\n     */\n    public function stopQuery();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse PDO;\n\n/**\n * Contains statement parameter types.\n */\nfinal class ParameterType\n{\n    /**\n     * Represents the SQL NULL data type.\n     *\n     * @see \\PDO::PARAM_NULL\n     */\n    public const NULL = PDO::PARAM_NULL;\n\n    /**\n     * Represents the SQL INTEGER data type.\n     *\n     * @see \\PDO::PARAM_INT\n     */\n    public const INTEGER = PDO::PARAM_INT;\n\n    /**\n     * Represents the SQL CHAR, VARCHAR, or other string data type.\n     *\n     * @see \\PDO::PARAM_STR\n     */\n    public const STRING = PDO::PARAM_STR;\n\n    /**\n     * Represents the SQL large object data type.\n     *\n     * @see \\PDO::PARAM_LOB\n     */\n    public const LARGE_OBJECT = PDO::PARAM_LOB;\n\n    /**\n     * Represents a boolean data type.\n     *\n     * @see \\PDO::PARAM_BOOL\n     */\n    public const BOOLEAN = PDO::PARAM_BOOL;\n\n    /**\n     * Represents a binary string data type.\n     */\n    public const BINARY = 16;\n\n    /**\n     * This class cannot be instantiated.\n     */\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\Common\\EventManager;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Event\\SchemaAlterTableAddColumnEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaAlterTableChangeColumnEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaAlterTableEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaAlterTableRemoveColumnEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaAlterTableRenameColumnEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaCreateTableColumnEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaCreateTableEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaDropTableEventArgs;\nuse Doctrine\\DBAL\\Events;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\KeywordList;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\Constraint;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\TransactionIsolationLevel;\nuse Doctrine\\DBAL\\Types;\nuse Doctrine\\DBAL\\Types\\Type;\nuse InvalidArgumentException;\nuse const E_USER_DEPRECATED;\nuse function addcslashes;\nuse function array_map;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function explode;\nuse function func_get_arg;\nuse function func_get_args;\nuse function func_num_args;\nuse function implode;\nuse function in_array;\nuse function is_array;\nuse function is_bool;\nuse function is_int;\nuse function is_string;\nuse function preg_quote;\nuse function preg_replace;\nuse function sprintf;\nuse function str_replace;\nuse function strlen;\nuse function strpos;\nuse function strtolower;\nuse function strtoupper;\nuse function trigger_error;\n\n/**\n * Base class for all DatabasePlatforms. The DatabasePlatforms are the central\n * point of abstraction of platform-specific behaviors, features and SQL dialects.\n * They are a passive source of information.\n *\n * @todo Remove any unnecessary methods.\n */\nabstract class AbstractPlatform\n{\n    public const CREATE_INDEXES = 1;\n\n    public const CREATE_FOREIGNKEYS = 2;\n\n    /**\n     * @deprecated Use DateIntervalUnit::INTERVAL_UNIT_SECOND.\n     */\n    public const DATE_INTERVAL_UNIT_SECOND = DateIntervalUnit::SECOND;\n\n    /**\n     * @deprecated Use DateIntervalUnit::MINUTE.\n     */\n    public const DATE_INTERVAL_UNIT_MINUTE = DateIntervalUnit::MINUTE;\n\n    /**\n     * @deprecated Use DateIntervalUnit::HOUR.\n     */\n    public const DATE_INTERVAL_UNIT_HOUR = DateIntervalUnit::HOUR;\n\n    /**\n     * @deprecated Use DateIntervalUnit::DAY.\n     */\n    public const DATE_INTERVAL_UNIT_DAY = DateIntervalUnit::DAY;\n\n    /**\n     * @deprecated Use DateIntervalUnit::WEEK.\n     */\n    public const DATE_INTERVAL_UNIT_WEEK = DateIntervalUnit::WEEK;\n\n    /**\n     * @deprecated Use DateIntervalUnit::MONTH.\n     */\n    public const DATE_INTERVAL_UNIT_MONTH = DateIntervalUnit::MONTH;\n\n    /**\n     * @deprecated Use DateIntervalUnit::QUARTER.\n     */\n    public const DATE_INTERVAL_UNIT_QUARTER = DateIntervalUnit::QUARTER;\n\n    /**\n     * @deprecated Use DateIntervalUnit::QUARTER.\n     */\n    public const DATE_INTERVAL_UNIT_YEAR = DateIntervalUnit::YEAR;\n\n    /**\n     * @deprecated Use TrimMode::UNSPECIFIED.\n     */\n    public const TRIM_UNSPECIFIED = TrimMode::UNSPECIFIED;\n\n    /**\n     * @deprecated Use TrimMode::LEADING.\n     */\n    public const TRIM_LEADING = TrimMode::LEADING;\n\n    /**\n     * @deprecated Use TrimMode::TRAILING.\n     */\n    public const TRIM_TRAILING = TrimMode::TRAILING;\n\n    /**\n     * @deprecated Use TrimMode::BOTH.\n     */\n    public const TRIM_BOTH = TrimMode::BOTH;\n\n    /** @var string[]|null */\n    protected $doctrineTypeMapping = null;\n\n    /**\n     * Contains a list of all columns that should generate parseable column comments for type-detection\n     * in reverse engineering scenarios.\n     *\n     * @var string[]|null\n     */\n    protected $doctrineTypeComments = null;\n\n    /** @var EventManager */\n    protected $_eventManager;\n\n    /**\n     * Holds the KeywordList instance for the current platform.\n     *\n     * @var KeywordList\n     */\n    protected $_keywords;\n\n    public function __construct()\n    {\n    }\n\n    /**\n     * Sets the EventManager used by the Platform.\n     */\n    public function setEventManager(EventManager $eventManager)\n    {\n        $this->_eventManager = $eventManager;\n    }\n\n    /**\n     * Gets the EventManager used by the Platform.\n     *\n     * @return EventManager\n     */\n    public function getEventManager()\n    {\n        return $this->_eventManager;\n    }\n\n    /**\n     * Returns the SQL snippet that declares a boolean column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    abstract public function getBooleanTypeDeclarationSQL(array $columnDef);\n\n    /**\n     * Returns the SQL snippet that declares a 4 byte integer column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    abstract public function getIntegerTypeDeclarationSQL(array $columnDef);\n\n    /**\n     * Returns the SQL snippet that declares an 8 byte integer column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    abstract public function getBigIntTypeDeclarationSQL(array $columnDef);\n\n    /**\n     * Returns the SQL snippet that declares a 2 byte integer column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    abstract public function getSmallIntTypeDeclarationSQL(array $columnDef);\n\n    /**\n     * Returns the SQL snippet that declares common properties of an integer column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    abstract protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef);\n\n    /**\n     * Lazy load Doctrine Type Mappings.\n     *\n     * @return void\n     */\n    abstract protected function initializeDoctrineTypeMappings();\n\n    /**\n     * Initializes Doctrine Type Mappings with the platform defaults\n     * and with all additional type mappings.\n     *\n     * @return void\n     */\n    private function initializeAllDoctrineTypeMappings()\n    {\n        $this->initializeDoctrineTypeMappings();\n\n        foreach (Type::getTypesMap() as $typeName => $className) {\n            foreach (Type::getType($typeName)->getMappedDatabaseTypes($this) as $dbType) {\n                $this->doctrineTypeMapping[$dbType] = $typeName;\n            }\n        }\n    }\n\n    /**\n     * Returns the SQL snippet used to declare a VARCHAR column type.\n     *\n     * @param mixed[] $field\n     *\n     * @return string\n     */\n    public function getVarcharTypeDeclarationSQL(array $field)\n    {\n        if (! isset($field['length'])) {\n            $field['length'] = $this->getVarcharDefaultLength();\n        }\n\n        $fixed = $field['fixed'] ?? false;\n\n        $maxLength = $fixed\n            ? $this->getCharMaxLength()\n            : $this->getVarcharMaxLength();\n\n        if ($field['length'] > $maxLength) {\n            return $this->getClobTypeDeclarationSQL($field);\n        }\n\n        return $this->getVarcharTypeDeclarationSQLSnippet($field['length'], $fixed);\n    }\n\n    /**\n     * Returns the SQL snippet used to declare a BINARY/VARBINARY column type.\n     *\n     * @param mixed[] $field The column definition.\n     *\n     * @return string\n     */\n    public function getBinaryTypeDeclarationSQL(array $field)\n    {\n        if (! isset($field['length'])) {\n            $field['length'] = $this->getBinaryDefaultLength();\n        }\n\n        $fixed = $field['fixed'] ?? false;\n\n        $maxLength = $this->getBinaryMaxLength();\n\n        if ($field['length'] > $maxLength) {\n            if ($maxLength > 0) {\n                @trigger_error(sprintf(\n                    'Binary field length %d is greater than supported by the platform (%d). Reduce the field length or use a BLOB field instead.',\n                    $field['length'],\n                    $maxLength\n                ), E_USER_DEPRECATED);\n            }\n\n            return $this->getBlobTypeDeclarationSQL($field);\n        }\n\n        return $this->getBinaryTypeDeclarationSQLSnippet($field['length'], $fixed);\n    }\n\n    /**\n     * Returns the SQL snippet to declare a GUID/UUID field.\n     *\n     * By default this maps directly to a CHAR(36) and only maps to more\n     * special datatypes when the underlying databases support this datatype.\n     *\n     * @param mixed[] $field\n     *\n     * @return string\n     */\n    public function getGuidTypeDeclarationSQL(array $field)\n    {\n        $field['length'] = 36;\n        $field['fixed']  = true;\n\n        return $this->getVarcharTypeDeclarationSQL($field);\n    }\n\n    /**\n     * Returns the SQL snippet to declare a JSON field.\n     *\n     * By default this maps directly to a CLOB and only maps to more\n     * special datatypes when the underlying databases support this datatype.\n     *\n     * @param mixed[] $field\n     *\n     * @return string\n     */\n    public function getJsonTypeDeclarationSQL(array $field)\n    {\n        return $this->getClobTypeDeclarationSQL($field);\n    }\n\n    /**\n     * @param int  $length\n     * @param bool $fixed\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        throw DBALException::notSupported('VARCHARs not supported by Platform.');\n    }\n\n    /**\n     * Returns the SQL snippet used to declare a BINARY/VARBINARY column type.\n     *\n     * @param int  $length The length of the column.\n     * @param bool $fixed  Whether the column length is fixed.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        throw DBALException::notSupported('BINARY/VARBINARY column types are not supported by this platform.');\n    }\n\n    /**\n     * Returns the SQL snippet used to declare a CLOB column type.\n     *\n     * @param mixed[] $field\n     *\n     * @return string\n     */\n    abstract public function getClobTypeDeclarationSQL(array $field);\n\n    /**\n     * Returns the SQL Snippet used to declare a BLOB column type.\n     *\n     * @param mixed[] $field\n     *\n     * @return string\n     */\n    abstract public function getBlobTypeDeclarationSQL(array $field);\n\n    /**\n     * Gets the name of the platform.\n     *\n     * @return string\n     */\n    abstract public function getName();\n\n    /**\n     * Registers a doctrine type to be used in conjunction with a column type of this platform.\n     *\n     * @param string $dbType\n     * @param string $doctrineType\n     *\n     * @throws DBALException If the type is not found.\n     */\n    public function registerDoctrineTypeMapping($dbType, $doctrineType)\n    {\n        if ($this->doctrineTypeMapping === null) {\n            $this->initializeAllDoctrineTypeMappings();\n        }\n\n        if (! Types\\Type::hasType($doctrineType)) {\n            throw DBALException::typeNotFound($doctrineType);\n        }\n\n        $dbType                             = strtolower($dbType);\n        $this->doctrineTypeMapping[$dbType] = $doctrineType;\n\n        $doctrineType = Type::getType($doctrineType);\n\n        if (! $doctrineType->requiresSQLCommentHint($this)) {\n            return;\n        }\n\n        $this->markDoctrineTypeCommented($doctrineType);\n    }\n\n    /**\n     * Gets the Doctrine type that is mapped for the given database column type.\n     *\n     * @param string $dbType\n     *\n     * @return string\n     *\n     * @throws DBALException\n     */\n    public function getDoctrineTypeMapping($dbType)\n    {\n        if ($this->doctrineTypeMapping === null) {\n            $this->initializeAllDoctrineTypeMappings();\n        }\n\n        $dbType = strtolower($dbType);\n\n        if (! isset($this->doctrineTypeMapping[$dbType])) {\n            throw new DBALException('Unknown database type ' . $dbType . ' requested, ' . static::class . ' may not support it.');\n        }\n\n        return $this->doctrineTypeMapping[$dbType];\n    }\n\n    /**\n     * Checks if a database type is currently supported by this platform.\n     *\n     * @param string $dbType\n     *\n     * @return bool\n     */\n    public function hasDoctrineTypeMappingFor($dbType)\n    {\n        if ($this->doctrineTypeMapping === null) {\n            $this->initializeAllDoctrineTypeMappings();\n        }\n\n        $dbType = strtolower($dbType);\n\n        return isset($this->doctrineTypeMapping[$dbType]);\n    }\n\n    /**\n     * Initializes the Doctrine Type comments instance variable for in_array() checks.\n     *\n     * @return void\n     */\n    protected function initializeCommentedDoctrineTypes()\n    {\n        $this->doctrineTypeComments = [];\n\n        foreach (Type::getTypesMap() as $typeName => $className) {\n            $type = Type::getType($typeName);\n\n            if (! $type->requiresSQLCommentHint($this)) {\n                continue;\n            }\n\n            $this->doctrineTypeComments[] = $typeName;\n        }\n    }\n\n    /**\n     * Is it necessary for the platform to add a parsable type comment to allow reverse engineering the given type?\n     *\n     * @return bool\n     */\n    public function isCommentedDoctrineType(Type $doctrineType)\n    {\n        if ($this->doctrineTypeComments === null) {\n            $this->initializeCommentedDoctrineTypes();\n        }\n\n        return in_array($doctrineType->getName(), $this->doctrineTypeComments);\n    }\n\n    /**\n     * Marks this type as to be commented in ALTER TABLE and CREATE TABLE statements.\n     *\n     * @param string|Type $doctrineType\n     *\n     * @return void\n     */\n    public function markDoctrineTypeCommented($doctrineType)\n    {\n        if ($this->doctrineTypeComments === null) {\n            $this->initializeCommentedDoctrineTypes();\n        }\n\n        $this->doctrineTypeComments[] = $doctrineType instanceof Type ? $doctrineType->getName() : $doctrineType;\n    }\n\n    /**\n     * Gets the comment to append to a column comment that helps parsing this type in reverse engineering.\n     *\n     * @return string\n     */\n    public function getDoctrineTypeComment(Type $doctrineType)\n    {\n        return '(DC2Type:' . $doctrineType->getName() . ')';\n    }\n\n    /**\n     * Gets the comment of a passed column modified by potential doctrine type comment hints.\n     *\n     * @return string\n     */\n    protected function getColumnComment(Column $column)\n    {\n        $comment = $column->getComment();\n\n        if ($this->isCommentedDoctrineType($column->getType())) {\n            $comment .= $this->getDoctrineTypeComment($column->getType());\n        }\n\n        return $comment;\n    }\n\n    /**\n     * Gets the character used for identifier quoting.\n     *\n     * @return string\n     */\n    public function getIdentifierQuoteCharacter()\n    {\n        return '\"';\n    }\n\n    /**\n     * Gets the string portion that starts an SQL comment.\n     *\n     * @return string\n     */\n    public function getSqlCommentStartString()\n    {\n        return '--';\n    }\n\n    /**\n     * Gets the string portion that ends an SQL comment.\n     *\n     * @return string\n     */\n    public function getSqlCommentEndString()\n    {\n        return \"\\n\";\n    }\n\n    /**\n     * Gets the maximum length of a char field.\n     */\n    public function getCharMaxLength() : int\n    {\n        return $this->getVarcharMaxLength();\n    }\n\n    /**\n     * Gets the maximum length of a varchar field.\n     *\n     * @return int\n     */\n    public function getVarcharMaxLength()\n    {\n        return 4000;\n    }\n\n    /**\n     * Gets the default length of a varchar field.\n     *\n     * @return int\n     */\n    public function getVarcharDefaultLength()\n    {\n        return 255;\n    }\n\n    /**\n     * Gets the maximum length of a binary field.\n     *\n     * @return int\n     */\n    public function getBinaryMaxLength()\n    {\n        return 4000;\n    }\n\n    /**\n     * Gets the default length of a binary field.\n     *\n     * @return int\n     */\n    public function getBinaryDefaultLength()\n    {\n        return 255;\n    }\n\n    /**\n     * Gets all SQL wildcard characters of the platform.\n     *\n     * @return string[]\n     */\n    public function getWildcards()\n    {\n        return ['%', '_'];\n    }\n\n    /**\n     * Returns the regular expression operator.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getRegexpExpression()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the global unique identifier expression.\n     *\n     * @deprecated Use application-generated UUIDs instead\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getGuidExpression()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL snippet to get the average value of a column.\n     *\n     * @param string $column The column to use.\n     *\n     * @return string Generated SQL including an AVG aggregate function.\n     */\n    public function getAvgExpression($column)\n    {\n        return 'AVG(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the number of rows (without a NULL value) of a column.\n     *\n     * If a '*' is used instead of a column the number of selected rows is returned.\n     *\n     * @param string|int $column The column to use.\n     *\n     * @return string Generated SQL including a COUNT aggregate function.\n     */\n    public function getCountExpression($column)\n    {\n        return 'COUNT(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the highest value of a column.\n     *\n     * @param string $column The column to use.\n     *\n     * @return string Generated SQL including a MAX aggregate function.\n     */\n    public function getMaxExpression($column)\n    {\n        return 'MAX(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the lowest value of a column.\n     *\n     * @param string $column The column to use.\n     *\n     * @return string Generated SQL including a MIN aggregate function.\n     */\n    public function getMinExpression($column)\n    {\n        return 'MIN(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the total sum of a column.\n     *\n     * @param string $column The column to use.\n     *\n     * @return string Generated SQL including a SUM aggregate function.\n     */\n    public function getSumExpression($column)\n    {\n        return 'SUM(' . $column . ')';\n    }\n\n    // scalar functions\n\n    /**\n     * Returns the SQL snippet to get the md5 sum of a field.\n     *\n     * Note: Not SQL92, but common functionality.\n     *\n     * @param string $column\n     *\n     * @return string\n     */\n    public function getMd5Expression($column)\n    {\n        return 'MD5(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the length of a text field.\n     *\n     * @param string $column\n     *\n     * @return string\n     */\n    public function getLengthExpression($column)\n    {\n        return 'LENGTH(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the squared value of a column.\n     *\n     * @param string $column The column to use.\n     *\n     * @return string Generated SQL including an SQRT aggregate function.\n     */\n    public function getSqrtExpression($column)\n    {\n        return 'SQRT(' . $column . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to round a numeric field to the number of decimals specified.\n     *\n     * @param string $column\n     * @param int    $decimals\n     *\n     * @return string\n     */\n    public function getRoundExpression($column, $decimals = 0)\n    {\n        return 'ROUND(' . $column . ', ' . $decimals . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the remainder of the division operation $expression1 / $expression2.\n     *\n     * @param string $expression1\n     * @param string $expression2\n     *\n     * @return string\n     */\n    public function getModExpression($expression1, $expression2)\n    {\n        return 'MOD(' . $expression1 . ', ' . $expression2 . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to trim a string.\n     *\n     * @param string      $str  The expression to apply the trim to.\n     * @param int         $mode The position of the trim (leading/trailing/both).\n     * @param string|bool $char The char to trim, has to be quoted already. Defaults to space.\n     *\n     * @return string\n     */\n    public function getTrimExpression($str, $mode = TrimMode::UNSPECIFIED, $char = false)\n    {\n        $expression = '';\n\n        switch ($mode) {\n            case TrimMode::LEADING:\n                $expression = 'LEADING ';\n                break;\n\n            case TrimMode::TRAILING:\n                $expression = 'TRAILING ';\n                break;\n\n            case TrimMode::BOTH:\n                $expression = 'BOTH ';\n                break;\n        }\n\n        if ($char !== false) {\n            $expression .= $char . ' ';\n        }\n\n        if ($mode || $char !== false) {\n            $expression .= 'FROM ';\n        }\n\n        return 'TRIM(' . $expression . $str . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to trim trailing space characters from the expression.\n     *\n     * @param string $str Literal string or column name.\n     *\n     * @return string\n     */\n    public function getRtrimExpression($str)\n    {\n        return 'RTRIM(' . $str . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to trim leading space characters from the expression.\n     *\n     * @param string $str Literal string or column name.\n     *\n     * @return string\n     */\n    public function getLtrimExpression($str)\n    {\n        return 'LTRIM(' . $str . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to change all characters from the expression to uppercase,\n     * according to the current character set mapping.\n     *\n     * @param string $str Literal string or column name.\n     *\n     * @return string\n     */\n    public function getUpperExpression($str)\n    {\n        return 'UPPER(' . $str . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to change all characters from the expression to lowercase,\n     * according to the current character set mapping.\n     *\n     * @param string $str Literal string or column name.\n     *\n     * @return string\n     */\n    public function getLowerExpression($str)\n    {\n        return 'LOWER(' . $str . ')';\n    }\n\n    /**\n     * Returns the SQL snippet to get the position of the first occurrence of substring $substr in string $str.\n     *\n     * @param string   $str      Literal string.\n     * @param string   $substr   Literal string to find.\n     * @param int|bool $startPos Position to start at, beginning of string by default.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL snippet to get the current system date.\n     *\n     * @return string\n     */\n    public function getNowExpression()\n    {\n        return 'NOW()';\n    }\n\n    /**\n     * Returns a SQL snippet to get a substring inside an SQL statement.\n     *\n     * Note: Not SQL92, but common functionality.\n     *\n     * SQLite only supports the 2 parameter variant of this function.\n     *\n     * @param string   $value  An sql string literal or column name/alias.\n     * @param int      $from   Where to start the substring portion.\n     * @param int|null $length The substring portion length.\n     *\n     * @return string\n     */\n    public function getSubstringExpression($value, $from, $length = null)\n    {\n        if ($length === null) {\n            return 'SUBSTRING(' . $value . ' FROM ' . $from . ')';\n        }\n\n        return 'SUBSTRING(' . $value . ' FROM ' . $from . ' FOR ' . $length . ')';\n    }\n\n    /**\n     * Returns a SQL snippet to concatenate the given expressions.\n     *\n     * Accepts an arbitrary number of string parameters. Each parameter must contain an expression.\n     *\n     * @return string\n     */\n    public function getConcatExpression()\n    {\n        return implode(' || ', func_get_args());\n    }\n\n    /**\n     * Returns the SQL for a logical not.\n     *\n     * Example:\n     * <code>\n     * $q = new Doctrine_Query();\n     * $e = $q->expr;\n     * $q->select('*')->from('table')\n     *   ->where($e->eq('id', $e->not('null'));\n     * </code>\n     *\n     * @param string $expression\n     *\n     * @return string The logical expression.\n     */\n    public function getNotExpression($expression)\n    {\n        return 'NOT(' . $expression . ')';\n    }\n\n    /**\n     * Returns the SQL that checks if an expression is null.\n     *\n     * @param string $expression The expression that should be compared to null.\n     *\n     * @return string The logical expression.\n     */\n    public function getIsNullExpression($expression)\n    {\n        return $expression . ' IS NULL';\n    }\n\n    /**\n     * Returns the SQL that checks if an expression is not null.\n     *\n     * @param string $expression The expression that should be compared to null.\n     *\n     * @return string The logical expression.\n     */\n    public function getIsNotNullExpression($expression)\n    {\n        return $expression . ' IS NOT NULL';\n    }\n\n    /**\n     * Returns the SQL that checks if an expression evaluates to a value between two values.\n     *\n     * The parameter $expression is checked if it is between $value1 and $value2.\n     *\n     * Note: There is a slight difference in the way BETWEEN works on some databases.\n     * http://www.w3schools.com/sql/sql_between.asp. If you want complete database\n     * independence you should avoid using between().\n     *\n     * @param string $expression The value to compare to.\n     * @param string $value1     The lower value to compare with.\n     * @param string $value2     The higher value to compare with.\n     *\n     * @return string The logical expression.\n     */\n    public function getBetweenExpression($expression, $value1, $value2)\n    {\n        return $expression . ' BETWEEN ' . $value1 . ' AND ' . $value2;\n    }\n\n    /**\n     * Returns the SQL to get the arccosine of a value.\n     *\n     * @param string $value\n     *\n     * @return string\n     */\n    public function getAcosExpression($value)\n    {\n        return 'ACOS(' . $value . ')';\n    }\n\n    /**\n     * Returns the SQL to get the sine of a value.\n     *\n     * @param string $value\n     *\n     * @return string\n     */\n    public function getSinExpression($value)\n    {\n        return 'SIN(' . $value . ')';\n    }\n\n    /**\n     * Returns the SQL to get the PI value.\n     *\n     * @return string\n     */\n    public function getPiExpression()\n    {\n        return 'PI()';\n    }\n\n    /**\n     * Returns the SQL to get the cosine of a value.\n     *\n     * @param string $value\n     *\n     * @return string\n     */\n    public function getCosExpression($value)\n    {\n        return 'COS(' . $value . ')';\n    }\n\n    /**\n     * Returns the SQL to calculate the difference in days between the two passed dates.\n     *\n     * Computes diff = date1 - date2.\n     *\n     * @param string $date1\n     * @param string $date2\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to add the number of given seconds to a date.\n     *\n     * @param string $date\n     * @param int    $seconds\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddSecondsExpression($date, $seconds)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $seconds, DateIntervalUnit::SECOND);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given seconds from a date.\n     *\n     * @param string $date\n     * @param int    $seconds\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubSecondsExpression($date, $seconds)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $seconds, DateIntervalUnit::SECOND);\n    }\n\n    /**\n     * Returns the SQL to add the number of given minutes to a date.\n     *\n     * @param string $date\n     * @param int    $minutes\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddMinutesExpression($date, $minutes)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $minutes, DateIntervalUnit::MINUTE);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given minutes from a date.\n     *\n     * @param string $date\n     * @param int    $minutes\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubMinutesExpression($date, $minutes)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $minutes, DateIntervalUnit::MINUTE);\n    }\n\n    /**\n     * Returns the SQL to add the number of given hours to a date.\n     *\n     * @param string $date\n     * @param int    $hours\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddHourExpression($date, $hours)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $hours, DateIntervalUnit::HOUR);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given hours to a date.\n     *\n     * @param string $date\n     * @param int    $hours\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubHourExpression($date, $hours)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $hours, DateIntervalUnit::HOUR);\n    }\n\n    /**\n     * Returns the SQL to add the number of given days to a date.\n     *\n     * @param string $date\n     * @param int    $days\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddDaysExpression($date, $days)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $days, DateIntervalUnit::DAY);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given days to a date.\n     *\n     * @param string $date\n     * @param int    $days\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubDaysExpression($date, $days)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $days, DateIntervalUnit::DAY);\n    }\n\n    /**\n     * Returns the SQL to add the number of given weeks to a date.\n     *\n     * @param string $date\n     * @param int    $weeks\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddWeeksExpression($date, $weeks)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $weeks, DateIntervalUnit::WEEK);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given weeks from a date.\n     *\n     * @param string $date\n     * @param int    $weeks\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubWeeksExpression($date, $weeks)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $weeks, DateIntervalUnit::WEEK);\n    }\n\n    /**\n     * Returns the SQL to add the number of given months to a date.\n     *\n     * @param string $date\n     * @param int    $months\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddMonthExpression($date, $months)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $months, DateIntervalUnit::MONTH);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given months to a date.\n     *\n     * @param string $date\n     * @param int    $months\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubMonthExpression($date, $months)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $months, DateIntervalUnit::MONTH);\n    }\n\n    /**\n     * Returns the SQL to add the number of given quarters to a date.\n     *\n     * @param string $date\n     * @param int    $quarters\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddQuartersExpression($date, $quarters)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $quarters, DateIntervalUnit::QUARTER);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given quarters from a date.\n     *\n     * @param string $date\n     * @param int    $quarters\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubQuartersExpression($date, $quarters)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $quarters, DateIntervalUnit::QUARTER);\n    }\n\n    /**\n     * Returns the SQL to add the number of given years to a date.\n     *\n     * @param string $date\n     * @param int    $years\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateAddYearsExpression($date, $years)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '+', $years, DateIntervalUnit::YEAR);\n    }\n\n    /**\n     * Returns the SQL to subtract the number of given years from a date.\n     *\n     * @param string $date\n     * @param int    $years\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateSubYearsExpression($date, $years)\n    {\n        return $this->getDateArithmeticIntervalExpression($date, '-', $years, DateIntervalUnit::YEAR);\n    }\n\n    /**\n     * Returns the SQL for a date arithmetic expression.\n     *\n     * @param string $date     The column or literal representing a date to perform the arithmetic operation on.\n     * @param string $operator The arithmetic operator (+ or -).\n     * @param int    $interval The interval that shall be calculated into the date.\n     * @param string $unit     The unit of the interval that shall be calculated into the date.\n     *                         One of the DATE_INTERVAL_UNIT_* constants.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL bit AND comparison expression.\n     *\n     * @param string $value1\n     * @param string $value2\n     *\n     * @return string\n     */\n    public function getBitAndComparisonExpression($value1, $value2)\n    {\n        return '(' . $value1 . ' & ' . $value2 . ')';\n    }\n\n    /**\n     * Returns the SQL bit OR comparison expression.\n     *\n     * @param string $value1\n     * @param string $value2\n     *\n     * @return string\n     */\n    public function getBitOrComparisonExpression($value1, $value2)\n    {\n        return '(' . $value1 . ' | ' . $value2 . ')';\n    }\n\n    /**\n     * Returns the FOR UPDATE expression.\n     *\n     * @return string\n     */\n    public function getForUpdateSQL()\n    {\n        return 'FOR UPDATE';\n    }\n\n    /**\n     * Honors that some SQL vendors such as MsSql use table hints for locking instead of the ANSI SQL FOR UPDATE specification.\n     *\n     * @param string   $fromClause The FROM clause to append the hint for the given lock mode to.\n     * @param int|null $lockMode   One of the Doctrine\\DBAL\\LockMode::* constants. If null is given, nothing will\n     *                             be appended to the FROM clause.\n     *\n     * @return string\n     */\n    public function appendLockHint($fromClause, $lockMode)\n    {\n        return $fromClause;\n    }\n\n    /**\n     * Returns the SQL snippet to append to any SELECT statement which locks rows in shared read lock.\n     *\n     * This defaults to the ANSI SQL \"FOR UPDATE\", which is an exclusive lock (Write). Some database\n     * vendors allow to lighten this constraint up to be a real read lock.\n     *\n     * @return string\n     */\n    public function getReadLockSQL()\n    {\n        return $this->getForUpdateSQL();\n    }\n\n    /**\n     * Returns the SQL snippet to append to any SELECT statement which obtains an exclusive lock on the rows.\n     *\n     * The semantics of this lock mode should equal the SELECT .. FOR UPDATE of the ANSI SQL standard.\n     *\n     * @return string\n     */\n    public function getWriteLockSQL()\n    {\n        return $this->getForUpdateSQL();\n    }\n\n    /**\n     * Returns the SQL snippet to drop an existing database.\n     *\n     * @param string $database The name of the database that should be dropped.\n     *\n     * @return string\n     */\n    public function getDropDatabaseSQL($database)\n    {\n        return 'DROP DATABASE ' . $database;\n    }\n\n    /**\n     * Returns the SQL snippet to drop an existing table.\n     *\n     * @param Table|string $table\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getDropTableSQL($table)\n    {\n        $tableArg = $table;\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        if (! is_string($table)) {\n            throw new InvalidArgumentException('getDropTableSQL() expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        if ($this->_eventManager !== null && $this->_eventManager->hasListeners(Events::onSchemaDropTable)) {\n            $eventArgs = new SchemaDropTableEventArgs($tableArg, $this);\n            $this->_eventManager->dispatchEvent(Events::onSchemaDropTable, $eventArgs);\n\n            if ($eventArgs->isDefaultPrevented()) {\n                return $eventArgs->getSql();\n            }\n        }\n\n        return 'DROP TABLE ' . $table;\n    }\n\n    /**\n     * Returns the SQL to safely drop a temporary table WITHOUT implicitly committing an open transaction.\n     *\n     * @param Table|string $table\n     *\n     * @return string\n     */\n    public function getDropTemporaryTableSQL($table)\n    {\n        return $this->getDropTableSQL($table);\n    }\n\n    /**\n     * Returns the SQL to drop an index from a table.\n     *\n     * @param Index|string $index\n     * @param Table|string $table\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getDropIndexSQL($index, $table = null)\n    {\n        if ($index instanceof Index) {\n            $index = $index->getQuotedName($this);\n        } elseif (! is_string($index)) {\n            throw new InvalidArgumentException('AbstractPlatform::getDropIndexSQL() expects $index parameter to be string or \\Doctrine\\DBAL\\Schema\\Index.');\n        }\n\n        return 'DROP INDEX ' . $index;\n    }\n\n    /**\n     * Returns the SQL to drop a constraint.\n     *\n     * @param Constraint|string $constraint\n     * @param Table|string      $table\n     *\n     * @return string\n     */\n    public function getDropConstraintSQL($constraint, $table)\n    {\n        if (! $constraint instanceof Constraint) {\n            $constraint = new Identifier($constraint);\n        }\n\n        if (! $table instanceof Table) {\n            $table = new Identifier($table);\n        }\n\n        $constraint = $constraint->getQuotedName($this);\n        $table      = $table->getQuotedName($this);\n\n        return 'ALTER TABLE ' . $table . ' DROP CONSTRAINT ' . $constraint;\n    }\n\n    /**\n     * Returns the SQL to drop a foreign key.\n     *\n     * @param ForeignKeyConstraint|string $foreignKey\n     * @param Table|string                $table\n     *\n     * @return string\n     */\n    public function getDropForeignKeySQL($foreignKey, $table)\n    {\n        if (! $foreignKey instanceof ForeignKeyConstraint) {\n            $foreignKey = new Identifier($foreignKey);\n        }\n\n        if (! $table instanceof Table) {\n            $table = new Identifier($table);\n        }\n\n        $foreignKey = $foreignKey->getQuotedName($this);\n        $table      = $table->getQuotedName($this);\n\n        return 'ALTER TABLE ' . $table . ' DROP FOREIGN KEY ' . $foreignKey;\n    }\n\n    /**\n     * Returns the SQL statement(s) to create a table with the specified name, columns and constraints\n     * on this platform.\n     *\n     * @param int $createFlags\n     *\n     * @return string[] The sequence of SQL statements.\n     *\n     * @throws DBALException\n     * @throws InvalidArgumentException\n     */\n    public function getCreateTableSQL(Table $table, $createFlags = self::CREATE_INDEXES)\n    {\n        if (! is_int($createFlags)) {\n            throw new InvalidArgumentException('Second argument of AbstractPlatform::getCreateTableSQL() has to be integer.');\n        }\n\n        if (count($table->getColumns()) === 0) {\n            throw DBALException::noColumnsSpecifiedForTable($table->getName());\n        }\n\n        $tableName                    = $table->getQuotedName($this);\n        $options                      = $table->getOptions();\n        $options['uniqueConstraints'] = [];\n        $options['indexes']           = [];\n        $options['primary']           = [];\n\n        if (($createFlags&self::CREATE_INDEXES) > 0) {\n            foreach ($table->getIndexes() as $index) {\n                /** @var $index Index */\n                if ($index->isPrimary()) {\n                    $options['primary']       = $index->getQuotedColumns($this);\n                    $options['primary_index'] = $index;\n                } else {\n                    $options['indexes'][$index->getQuotedName($this)] = $index;\n                }\n            }\n        }\n\n        $columnSql = [];\n        $columns   = [];\n\n        foreach ($table->getColumns() as $column) {\n            if ($this->_eventManager !== null && $this->_eventManager->hasListeners(Events::onSchemaCreateTableColumn)) {\n                $eventArgs = new SchemaCreateTableColumnEventArgs($column, $table, $this);\n                $this->_eventManager->dispatchEvent(Events::onSchemaCreateTableColumn, $eventArgs);\n\n                $columnSql = array_merge($columnSql, $eventArgs->getSql());\n\n                if ($eventArgs->isDefaultPrevented()) {\n                    continue;\n                }\n            }\n\n            $columnData            = $column->toArray();\n            $columnData['name']    = $column->getQuotedName($this);\n            $columnData['version'] = $column->hasPlatformOption('version') ? $column->getPlatformOption('version') : false;\n            $columnData['comment'] = $this->getColumnComment($column);\n\n            if ($columnData['type'] instanceof Types\\StringType && $columnData['length'] === null) {\n                $columnData['length'] = 255;\n            }\n\n            if (in_array($column->getName(), $options['primary'])) {\n                $columnData['primary'] = true;\n            }\n\n            $columns[$columnData['name']] = $columnData;\n        }\n\n        if (($createFlags&self::CREATE_FOREIGNKEYS) > 0) {\n            $options['foreignKeys'] = [];\n            foreach ($table->getForeignKeys() as $fkConstraint) {\n                $options['foreignKeys'][] = $fkConstraint;\n            }\n        }\n\n        if ($this->_eventManager !== null && $this->_eventManager->hasListeners(Events::onSchemaCreateTable)) {\n            $eventArgs = new SchemaCreateTableEventArgs($table, $columns, $options, $this);\n            $this->_eventManager->dispatchEvent(Events::onSchemaCreateTable, $eventArgs);\n\n            if ($eventArgs->isDefaultPrevented()) {\n                return array_merge($eventArgs->getSql(), $columnSql);\n            }\n        }\n\n        $sql = $this->_getCreateTableSQL($tableName, $columns, $options);\n        if ($this->supportsCommentOnStatement()) {\n            foreach ($table->getColumns() as $column) {\n                $comment = $this->getColumnComment($column);\n\n                if ($comment === null || $comment === '') {\n                    continue;\n                }\n\n                $sql[] = $this->getCommentOnColumnSQL($tableName, $column->getQuotedName($this), $comment);\n            }\n        }\n\n        return array_merge($sql, $columnSql);\n    }\n\n    /**\n     * @param string $tableName\n     * @param string $columnName\n     * @param string $comment\n     *\n     * @return string\n     */\n    public function getCommentOnColumnSQL($tableName, $columnName, $comment)\n    {\n        $tableName  = new Identifier($tableName);\n        $columnName = new Identifier($columnName);\n        $comment    = $this->quoteStringLiteral($comment);\n\n        return sprintf(\n            'COMMENT ON COLUMN %s.%s IS %s',\n            $tableName->getQuotedName($this),\n            $columnName->getQuotedName($this),\n            $comment\n        );\n    }\n\n    /**\n     * Returns the SQL to create inline comment on a column.\n     *\n     * @param string $comment\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getInlineColumnCommentSQL($comment)\n    {\n        if (! $this->supportsInlineColumnComments()) {\n            throw DBALException::notSupported(__METHOD__);\n        }\n\n        return 'COMMENT ' . $this->quoteStringLiteral($comment);\n    }\n\n    /**\n     * Returns the SQL used to create a table.\n     *\n     * @param string    $tableName\n     * @param mixed[][] $columns\n     * @param mixed[]   $options\n     *\n     * @return string[]\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $columnListSql = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['uniqueConstraints']) && ! empty($options['uniqueConstraints'])) {\n            foreach ($options['uniqueConstraints'] as $name => $definition) {\n                $columnListSql .= ', ' . $this->getUniqueConstraintDeclarationSQL($name, $definition);\n            }\n        }\n\n        if (isset($options['primary']) && ! empty($options['primary'])) {\n            $columnListSql .= ', PRIMARY KEY(' . implode(', ', array_unique(array_values($options['primary']))) . ')';\n        }\n\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $index => $definition) {\n                $columnListSql .= ', ' . $this->getIndexDeclarationSQL($index, $definition);\n            }\n        }\n\n        $query = 'CREATE TABLE ' . $tableName . ' (' . $columnListSql;\n\n        $check = $this->getCheckDeclarationSQL($columns);\n        if (! empty($check)) {\n            $query .= ', ' . $check;\n        }\n        $query .= ')';\n\n        $sql[] = $query;\n\n        if (isset($options['foreignKeys'])) {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $sql[] = $this->getCreateForeignKeySQL($definition, $tableName);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * @return string\n     */\n    public function getCreateTemporaryTableSnippetSQL()\n    {\n        return 'CREATE TEMPORARY TABLE';\n    }\n\n    /**\n     * Returns the SQL to create a sequence on this platform.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getCreateSequenceSQL(Sequence $sequence)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to change a sequence on this platform.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getAlterSequenceSQL(Sequence $sequence)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to create a constraint on a table on this platform.\n     *\n     * @param Table|string $table\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getCreateConstraintSQL(Constraint $constraint, $table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        $query = 'ALTER TABLE ' . $table . ' ADD CONSTRAINT ' . $constraint->getQuotedName($this);\n\n        $columnList = '(' . implode(', ', $constraint->getQuotedColumns($this)) . ')';\n\n        $referencesClause = '';\n        if ($constraint instanceof Index) {\n            if ($constraint->isPrimary()) {\n                $query .= ' PRIMARY KEY';\n            } elseif ($constraint->isUnique()) {\n                $query .= ' UNIQUE';\n            } else {\n                throw new InvalidArgumentException(\n                    'Can only create primary or unique constraints, no common indexes with getCreateConstraintSQL().'\n                );\n            }\n        } elseif ($constraint instanceof ForeignKeyConstraint) {\n            $query .= ' FOREIGN KEY';\n\n            $referencesClause = ' REFERENCES ' . $constraint->getQuotedForeignTableName($this) .\n                ' (' . implode(', ', $constraint->getQuotedForeignColumns($this)) . ')';\n        }\n        $query .= ' ' . $columnList . $referencesClause;\n\n        return $query;\n    }\n\n    /**\n     * Returns the SQL to create an index on a table on this platform.\n     *\n     * @param Table|string $table The name of the table on which the index is to be created.\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getCreateIndexSQL(Index $index, $table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n        $name    = $index->getQuotedName($this);\n        $columns = $index->getColumns();\n\n        if (count($columns) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'columns' required.\");\n        }\n\n        if ($index->isPrimary()) {\n            return $this->getCreatePrimaryKeySQL($index, $table);\n        }\n\n        $query  = 'CREATE ' . $this->getCreateIndexSQLFlags($index) . 'INDEX ' . $name . ' ON ' . $table;\n        $query .= ' (' . $this->getIndexFieldDeclarationListSQL($index) . ')' . $this->getPartialIndexSQL($index);\n\n        return $query;\n    }\n\n    /**\n     * Adds condition for partial index.\n     *\n     * @return string\n     */\n    protected function getPartialIndexSQL(Index $index)\n    {\n        if ($this->supportsPartialIndexes() && $index->hasOption('where')) {\n            return ' WHERE ' . $index->getOption('where');\n        }\n\n        return '';\n    }\n\n    /**\n     * Adds additional flags for index generation.\n     *\n     * @return string\n     */\n    protected function getCreateIndexSQLFlags(Index $index)\n    {\n        return $index->isUnique() ? 'UNIQUE ' : '';\n    }\n\n    /**\n     * Returns the SQL to create an unnamed primary key constraint.\n     *\n     * @param Table|string $table\n     *\n     * @return string\n     */\n    public function getCreatePrimaryKeySQL(Index $index, $table)\n    {\n        return 'ALTER TABLE ' . $table . ' ADD PRIMARY KEY (' . $this->getIndexFieldDeclarationListSQL($index) . ')';\n    }\n\n    /**\n     * Returns the SQL to create a named schema.\n     *\n     * @param string $schemaName\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getCreateSchemaSQL($schemaName)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Quotes a string so that it can be safely used as a table or column name,\n     * even if it is a reserved word of the platform. This also detects identifier\n     * chains separated by dot and quotes them independently.\n     *\n     * NOTE: Just because you CAN use quoted identifiers doesn't mean\n     * you SHOULD use them. In general, they end up causing way more\n     * problems than they solve.\n     *\n     * @param string $str The identifier name to be quoted.\n     *\n     * @return string The quoted identifier string.\n     */\n    public function quoteIdentifier($str)\n    {\n        if (strpos($str, '.') !== false) {\n            $parts = array_map([$this, 'quoteSingleIdentifier'], explode('.', $str));\n\n            return implode('.', $parts);\n        }\n\n        return $this->quoteSingleIdentifier($str);\n    }\n\n    /**\n     * Quotes a single identifier (no dot chain separation).\n     *\n     * @param string $str The identifier name to be quoted.\n     *\n     * @return string The quoted identifier string.\n     */\n    public function quoteSingleIdentifier($str)\n    {\n        $c = $this->getIdentifierQuoteCharacter();\n\n        return $c . str_replace($c, $c . $c, $str) . $c;\n    }\n\n    /**\n     * Returns the SQL to create a new foreign key.\n     *\n     * @param ForeignKeyConstraint $foreignKey The foreign key constraint.\n     * @param Table|string         $table      The name of the table on which the foreign key is to be created.\n     *\n     * @return string\n     */\n    public function getCreateForeignKeySQL(ForeignKeyConstraint $foreignKey, $table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        return 'ALTER TABLE ' . $table . ' ADD ' . $this->getForeignKeyDeclarationSQL($foreignKey);\n    }\n\n    /**\n     * Gets the SQL statements for altering an existing table.\n     *\n     * This method returns an array of SQL statements, since some platforms need several statements.\n     *\n     * @return string[]\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param mixed[] $columnSql\n     *\n     * @return bool\n     */\n    protected function onSchemaAlterTableAddColumn(Column $column, TableDiff $diff, &$columnSql)\n    {\n        if ($this->_eventManager === null) {\n            return false;\n        }\n\n        if (! $this->_eventManager->hasListeners(Events::onSchemaAlterTableAddColumn)) {\n            return false;\n        }\n\n        $eventArgs = new SchemaAlterTableAddColumnEventArgs($column, $diff, $this);\n        $this->_eventManager->dispatchEvent(Events::onSchemaAlterTableAddColumn, $eventArgs);\n\n        $columnSql = array_merge($columnSql, $eventArgs->getSql());\n\n        return $eventArgs->isDefaultPrevented();\n    }\n\n    /**\n     * @param string[] $columnSql\n     *\n     * @return bool\n     */\n    protected function onSchemaAlterTableRemoveColumn(Column $column, TableDiff $diff, &$columnSql)\n    {\n        if ($this->_eventManager === null) {\n            return false;\n        }\n\n        if (! $this->_eventManager->hasListeners(Events::onSchemaAlterTableRemoveColumn)) {\n            return false;\n        }\n\n        $eventArgs = new SchemaAlterTableRemoveColumnEventArgs($column, $diff, $this);\n        $this->_eventManager->dispatchEvent(Events::onSchemaAlterTableRemoveColumn, $eventArgs);\n\n        $columnSql = array_merge($columnSql, $eventArgs->getSql());\n\n        return $eventArgs->isDefaultPrevented();\n    }\n\n    /**\n     * @param string[] $columnSql\n     *\n     * @return bool\n     */\n    protected function onSchemaAlterTableChangeColumn(ColumnDiff $columnDiff, TableDiff $diff, &$columnSql)\n    {\n        if ($this->_eventManager === null) {\n            return false;\n        }\n\n        if (! $this->_eventManager->hasListeners(Events::onSchemaAlterTableChangeColumn)) {\n            return false;\n        }\n\n        $eventArgs = new SchemaAlterTableChangeColumnEventArgs($columnDiff, $diff, $this);\n        $this->_eventManager->dispatchEvent(Events::onSchemaAlterTableChangeColumn, $eventArgs);\n\n        $columnSql = array_merge($columnSql, $eventArgs->getSql());\n\n        return $eventArgs->isDefaultPrevented();\n    }\n\n    /**\n     * @param string   $oldColumnName\n     * @param string[] $columnSql\n     *\n     * @return bool\n     */\n    protected function onSchemaAlterTableRenameColumn($oldColumnName, Column $column, TableDiff $diff, &$columnSql)\n    {\n        if ($this->_eventManager === null) {\n            return false;\n        }\n\n        if (! $this->_eventManager->hasListeners(Events::onSchemaAlterTableRenameColumn)) {\n            return false;\n        }\n\n        $eventArgs = new SchemaAlterTableRenameColumnEventArgs($oldColumnName, $column, $diff, $this);\n        $this->_eventManager->dispatchEvent(Events::onSchemaAlterTableRenameColumn, $eventArgs);\n\n        $columnSql = array_merge($columnSql, $eventArgs->getSql());\n\n        return $eventArgs->isDefaultPrevented();\n    }\n\n    /**\n     * @param string[] $sql\n     *\n     * @return bool\n     */\n    protected function onSchemaAlterTable(TableDiff $diff, &$sql)\n    {\n        if ($this->_eventManager === null) {\n            return false;\n        }\n\n        if (! $this->_eventManager->hasListeners(Events::onSchemaAlterTable)) {\n            return false;\n        }\n\n        $eventArgs = new SchemaAlterTableEventArgs($diff, $this);\n        $this->_eventManager->dispatchEvent(Events::onSchemaAlterTable, $eventArgs);\n\n        $sql = array_merge($sql, $eventArgs->getSql());\n\n        return $eventArgs->isDefaultPrevented();\n    }\n\n    /**\n     * @return string[]\n     */\n    protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        $tableName = $diff->getName($this)->getQuotedName($this);\n\n        $sql = [];\n        if ($this->supportsForeignKeyConstraints()) {\n            foreach ($diff->removedForeignKeys as $foreignKey) {\n                $sql[] = $this->getDropForeignKeySQL($foreignKey, $tableName);\n            }\n            foreach ($diff->changedForeignKeys as $foreignKey) {\n                $sql[] = $this->getDropForeignKeySQL($foreignKey, $tableName);\n            }\n        }\n\n        foreach ($diff->removedIndexes as $index) {\n            $sql[] = $this->getDropIndexSQL($index, $tableName);\n        }\n        foreach ($diff->changedIndexes as $index) {\n            $sql[] = $this->getDropIndexSQL($index, $tableName);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * @return string[]\n     */\n    protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        $tableName = $diff->newName !== false\n            ? $diff->getNewName()->getQuotedName($this)\n            : $diff->getName($this)->getQuotedName($this);\n\n        $sql = [];\n\n        if ($this->supportsForeignKeyConstraints()) {\n            foreach ($diff->addedForeignKeys as $foreignKey) {\n                $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableName);\n            }\n\n            foreach ($diff->changedForeignKeys as $foreignKey) {\n                $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableName);\n            }\n        }\n\n        foreach ($diff->addedIndexes as $index) {\n            $sql[] = $this->getCreateIndexSQL($index, $tableName);\n        }\n\n        foreach ($diff->changedIndexes as $index) {\n            $sql[] = $this->getCreateIndexSQL($index, $tableName);\n        }\n\n        foreach ($diff->renamedIndexes as $oldIndexName => $index) {\n            $oldIndexName = new Identifier($oldIndexName);\n            $sql          = array_merge(\n                $sql,\n                $this->getRenameIndexSQL($oldIndexName->getQuotedName($this), $index, $tableName)\n            );\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Returns the SQL for renaming an index on a table.\n     *\n     * @param string $oldIndexName The name of the index to rename from.\n     * @param Index  $index        The definition of the index to rename to.\n     * @param string $tableName    The table to rename the given index on.\n     *\n     * @return string[] The sequence of SQL statements for renaming the given index.\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        return [\n            $this->getDropIndexSQL($oldIndexName, $tableName),\n            $this->getCreateIndexSQL($index, $tableName),\n        ];\n    }\n\n    /**\n     * Common code for alter table statement generation that updates the changed Index and Foreign Key definitions.\n     *\n     * @return string[]\n     */\n    protected function _getAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        return array_merge($this->getPreAlterTableIndexForeignKeySQL($diff), $this->getPostAlterTableIndexForeignKeySQL($diff));\n    }\n\n    /**\n     * Gets declaration of a number of fields in bulk.\n     *\n     * @param mixed[][] $fields A multidimensional associative array.\n     *                          The first dimension determines the field name, while the second\n     *                          dimension is keyed with the name of the properties\n     *                          of the field being declared as array indexes. Currently, the types\n     *                          of supported field properties are as follows:\n     *\n     *      length\n     *          Integer value that determines the maximum length of the text\n     *          field. If this argument is missing the field should be\n     *          declared to have the longest length allowed by the DBMS.\n     *\n     *      default\n     *          Text value to be used as default for this field.\n     *\n     *      notnull\n     *          Boolean flag that indicates whether this field is constrained\n     *          to not be set to null.\n     *      charset\n     *          Text value with the default CHARACTER SET for this field.\n     *      collation\n     *          Text value with the default COLLATION for this field.\n     *      unique\n     *          unique constraint\n     *\n     * @return string\n     */\n    public function getColumnDeclarationListSQL(array $fields)\n    {\n        $queryFields = [];\n\n        foreach ($fields as $fieldName => $field) {\n            $queryFields[] = $this->getColumnDeclarationSQL($fieldName, $field);\n        }\n\n        return implode(', ', $queryFields);\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to declare a generic type\n     * field to be used in statements like CREATE TABLE.\n     *\n     * @param string  $name  The name the field to be declared.\n     * @param mixed[] $field An associative array with the name of the properties\n     *                       of the field being declared as array indexes. Currently, the types\n     *                       of supported field properties are as follows:\n     *\n     *      length\n     *          Integer value that determines the maximum length of the text\n     *          field. If this argument is missing the field should be\n     *          declared to have the longest length allowed by the DBMS.\n     *\n     *      default\n     *          Text value to be used as default for this field.\n     *\n     *      notnull\n     *          Boolean flag that indicates whether this field is constrained\n     *          to not be set to null.\n     *      charset\n     *          Text value with the default CHARACTER SET for this field.\n     *      collation\n     *          Text value with the default COLLATION for this field.\n     *      unique\n     *          unique constraint\n     *      check\n     *          column check constraint\n     *      columnDefinition\n     *          a string that defines the complete column\n     *\n     * @return string DBMS specific SQL code portion that should be used to declare the column.\n     */\n    public function getColumnDeclarationSQL($name, array $field)\n    {\n        if (isset($field['columnDefinition'])) {\n            $columnDef = $this->getCustomTypeDeclarationSQL($field);\n        } else {\n            $default = $this->getDefaultValueDeclarationSQL($field);\n\n            $charset = isset($field['charset']) && $field['charset'] ?\n                ' ' . $this->getColumnCharsetDeclarationSQL($field['charset']) : '';\n\n            $collation = isset($field['collation']) && $field['collation'] ?\n                ' ' . $this->getColumnCollationDeclarationSQL($field['collation']) : '';\n\n            $notnull = isset($field['notnull']) && $field['notnull'] ? ' NOT NULL' : '';\n\n            $unique = isset($field['unique']) && $field['unique'] ?\n                ' ' . $this->getUniqueFieldDeclarationSQL() : '';\n\n            $check = isset($field['check']) && $field['check'] ?\n                ' ' . $field['check'] : '';\n\n            $typeDecl  = $field['type']->getSQLDeclaration($field, $this);\n            $columnDef = $typeDecl . $charset . $default . $notnull . $unique . $check . $collation;\n\n            if ($this->supportsInlineColumnComments() && isset($field['comment']) && $field['comment'] !== '') {\n                $columnDef .= ' ' . $this->getInlineColumnCommentSQL($field['comment']);\n            }\n        }\n\n        return $name . ' ' . $columnDef;\n    }\n\n    /**\n     * Returns the SQL snippet that declares a floating point column of arbitrary precision.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    public function getDecimalTypeDeclarationSQL(array $columnDef)\n    {\n        $columnDef['precision'] = ! isset($columnDef['precision']) || empty($columnDef['precision'])\n            ? 10 : $columnDef['precision'];\n        $columnDef['scale']     = ! isset($columnDef['scale']) || empty($columnDef['scale'])\n            ? 0 : $columnDef['scale'];\n\n        return 'NUMERIC(' . $columnDef['precision'] . ', ' . $columnDef['scale'] . ')';\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set a default value\n     * declaration to be used in statements like CREATE TABLE.\n     *\n     * @param mixed[] $field The field definition array.\n     *\n     * @return string DBMS specific SQL code portion needed to set a default value.\n     */\n    public function getDefaultValueDeclarationSQL($field)\n    {\n        if (! isset($field['default'])) {\n            return empty($field['notnull']) ? ' DEFAULT NULL' : '';\n        }\n\n        $default = $field['default'];\n\n        if (! isset($field['type'])) {\n            return \" DEFAULT '\" . $default . \"'\";\n        }\n\n        $type = $field['type'];\n\n        if ($type instanceof Types\\PhpIntegerMappingType) {\n            return ' DEFAULT ' . $default;\n        }\n\n        if ($type instanceof Types\\PhpDateTimeMappingType && $default === $this->getCurrentTimestampSQL()) {\n            return ' DEFAULT ' . $this->getCurrentTimestampSQL();\n        }\n\n        if ($type instanceof Types\\TimeType && $default === $this->getCurrentTimeSQL()) {\n            return ' DEFAULT ' . $this->getCurrentTimeSQL();\n        }\n\n        if ($type instanceof Types\\DateType && $default === $this->getCurrentDateSQL()) {\n            return ' DEFAULT ' . $this->getCurrentDateSQL();\n        }\n\n        if ($type instanceof Types\\BooleanType) {\n            return \" DEFAULT '\" . $this->convertBooleans($default) . \"'\";\n        }\n\n        return \" DEFAULT '\" . $default . \"'\";\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set a CHECK constraint\n     * declaration to be used in statements like CREATE TABLE.\n     *\n     * @param mixed[][] $definition The check definition.\n     *\n     * @return string DBMS specific SQL code portion needed to set a CHECK constraint.\n     */\n    public function getCheckDeclarationSQL(array $definition)\n    {\n        $constraints = [];\n        foreach ($definition as $field => $def) {\n            if (is_string($def)) {\n                $constraints[] = 'CHECK (' . $def . ')';\n            } else {\n                if (isset($def['min'])) {\n                    $constraints[] = 'CHECK (' . $field . ' >= ' . $def['min'] . ')';\n                }\n\n                if (isset($def['max'])) {\n                    $constraints[] = 'CHECK (' . $field . ' <= ' . $def['max'] . ')';\n                }\n            }\n        }\n\n        return implode(', ', $constraints);\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set a unique\n     * constraint declaration to be used in statements like CREATE TABLE.\n     *\n     * @param string $name  The name of the unique constraint.\n     * @param Index  $index The index definition.\n     *\n     * @return string DBMS specific SQL code portion needed to set a constraint.\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getUniqueConstraintDeclarationSQL($name, Index $index)\n    {\n        $columns = $index->getColumns();\n        $name    = new Identifier($name);\n\n        if (count($columns) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'columns' required.\");\n        }\n\n        return 'CONSTRAINT ' . $name->getQuotedName($this) . ' UNIQUE ('\n            . $this->getIndexFieldDeclarationListSQL($index)\n            . ')' . $this->getPartialIndexSQL($index);\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set an index\n     * declaration to be used in statements like CREATE TABLE.\n     *\n     * @param string $name  The name of the index.\n     * @param Index  $index The index definition.\n     *\n     * @return string DBMS specific SQL code portion needed to set an index.\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getIndexDeclarationSQL($name, Index $index)\n    {\n        $columns = $index->getColumns();\n        $name    = new Identifier($name);\n\n        if (count($columns) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'columns' required.\");\n        }\n\n        return $this->getCreateIndexSQLFlags($index) . 'INDEX ' . $name->getQuotedName($this) . ' ('\n            . $this->getIndexFieldDeclarationListSQL($index)\n            . ')' . $this->getPartialIndexSQL($index);\n    }\n\n    /**\n     * Obtains SQL code portion needed to create a custom column,\n     * e.g. when a field has the \"columnDefinition\" keyword.\n     * Only \"AUTOINCREMENT\" and \"PRIMARY KEY\" are added if appropriate.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    public function getCustomTypeDeclarationSQL(array $columnDef)\n    {\n        return $columnDef['columnDefinition'];\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set an index\n     * declaration to be used in statements like CREATE TABLE.\n     *\n     * @param mixed[]|Index $columnsOrIndex array declaration is deprecated, prefer passing Index to this method\n     */\n    public function getIndexFieldDeclarationListSQL($columnsOrIndex) : string\n    {\n        if ($columnsOrIndex instanceof Index) {\n            return implode(', ', $columnsOrIndex->getQuotedColumns($this));\n        }\n\n        if (! is_array($columnsOrIndex)) {\n            throw new InvalidArgumentException('Fields argument should be an Index or array.');\n        }\n\n        $ret = [];\n\n        foreach ($columnsOrIndex as $column => $definition) {\n            if (is_array($definition)) {\n                $ret[] = $column;\n            } else {\n                $ret[] = $definition;\n            }\n        }\n\n        return implode(', ', $ret);\n    }\n\n    /**\n     * Returns the required SQL string that fits between CREATE ... TABLE\n     * to create the table as a temporary table.\n     *\n     * Should be overridden in driver classes to return the correct string for the\n     * specific database type.\n     *\n     * The default is to return the string \"TEMPORARY\" - this will result in a\n     * SQL error for any database that does not support temporary tables, or that\n     * requires a different SQL command from \"CREATE TEMPORARY TABLE\".\n     *\n     * @return string The string required to be placed between \"CREATE\" and \"TABLE\"\n     *                to generate a temporary table, if possible.\n     */\n    public function getTemporaryTableSQL()\n    {\n        return 'TEMPORARY';\n    }\n\n    /**\n     * Some vendors require temporary table names to be qualified specially.\n     *\n     * @param string $tableName\n     *\n     * @return string\n     */\n    public function getTemporaryTableName($tableName)\n    {\n        return $tableName;\n    }\n\n    /**\n     * Obtain DBMS specific SQL code portion needed to set the FOREIGN KEY constraint\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @return string DBMS specific SQL code portion needed to set the FOREIGN KEY constraint\n     *                of a field declaration.\n     */\n    public function getForeignKeyDeclarationSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $sql  = $this->getForeignKeyBaseDeclarationSQL($foreignKey);\n        $sql .= $this->getAdvancedForeignKeyOptionsSQL($foreignKey);\n\n        return $sql;\n    }\n\n    /**\n     * Returns the FOREIGN KEY query section dealing with non-standard options\n     * as MATCH, INITIALLY DEFERRED, ON UPDATE, ...\n     *\n     * @param ForeignKeyConstraint $foreignKey The foreign key definition.\n     *\n     * @return string\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $query = '';\n        if ($this->supportsForeignKeyOnUpdate() && $foreignKey->hasOption('onUpdate')) {\n            $query .= ' ON UPDATE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onUpdate'));\n        }\n        if ($foreignKey->hasOption('onDelete')) {\n            $query .= ' ON DELETE ' . $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete'));\n        }\n\n        return $query;\n    }\n\n    /**\n     * Returns the given referential action in uppercase if valid, otherwise throws an exception.\n     *\n     * @param string $action The foreign key referential action.\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException If unknown referential action given.\n     */\n    public function getForeignKeyReferentialActionSQL($action)\n    {\n        $upper = strtoupper($action);\n        switch ($upper) {\n            case 'CASCADE':\n            case 'SET NULL':\n            case 'NO ACTION':\n            case 'RESTRICT':\n            case 'SET DEFAULT':\n                return $upper;\n            default:\n                throw new InvalidArgumentException('Invalid foreign key action: ' . $upper);\n        }\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set the FOREIGN KEY constraint\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getForeignKeyBaseDeclarationSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $sql = '';\n        if (strlen($foreignKey->getName())) {\n            $sql .= 'CONSTRAINT ' . $foreignKey->getQuotedName($this) . ' ';\n        }\n        $sql .= 'FOREIGN KEY (';\n\n        if (count($foreignKey->getLocalColumns()) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'local' required.\");\n        }\n        if (count($foreignKey->getForeignColumns()) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'foreign' required.\");\n        }\n        if (strlen($foreignKey->getForeignTableName()) === 0) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'foreignTable' required.\");\n        }\n\n        return $sql . implode(', ', $foreignKey->getQuotedLocalColumns($this))\n            . ') REFERENCES '\n            . $foreignKey->getQuotedForeignTableName($this) . ' ('\n            . implode(', ', $foreignKey->getQuotedForeignColumns($this)) . ')';\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set the UNIQUE constraint\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @return string DBMS specific SQL code portion needed to set the UNIQUE constraint\n     *                of a field declaration.\n     */\n    public function getUniqueFieldDeclarationSQL()\n    {\n        return 'UNIQUE';\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set the CHARACTER SET\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @param string $charset The name of the charset.\n     *\n     * @return string DBMS specific SQL code portion needed to set the CHARACTER SET\n     *                of a field declaration.\n     */\n    public function getColumnCharsetDeclarationSQL($charset)\n    {\n        return '';\n    }\n\n    /**\n     * Obtains DBMS specific SQL code portion needed to set the COLLATION\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @param string $collation The name of the collation.\n     *\n     * @return string DBMS specific SQL code portion needed to set the COLLATION\n     *                of a field declaration.\n     */\n    public function getColumnCollationDeclarationSQL($collation)\n    {\n        return $this->supportsColumnCollation() ? 'COLLATE ' . $collation : '';\n    }\n\n    /**\n     * Whether the platform prefers sequences for ID generation.\n     * Subclasses should override this method to return TRUE if they prefer sequences.\n     *\n     * @return bool\n     */\n    public function prefersSequences()\n    {\n        return false;\n    }\n\n    /**\n     * Whether the platform prefers identity columns (eg. autoincrement) for ID generation.\n     * Subclasses should override this method to return TRUE if they prefer identity columns.\n     *\n     * @return bool\n     */\n    public function prefersIdentityColumns()\n    {\n        return false;\n    }\n\n    /**\n     * Some platforms need the boolean values to be converted.\n     *\n     * The default conversion in this implementation converts to integers (false => 0, true => 1).\n     *\n     * Note: if the input is not a boolean the original input might be returned.\n     *\n     * There are two contexts when converting booleans: Literals and Prepared Statements.\n     * This method should handle the literal case\n     *\n     * @param mixed $item A boolean or an array of them.\n     *\n     * @return mixed A boolean database value or an array of them.\n     */\n    public function convertBooleans($item)\n    {\n        if (is_array($item)) {\n            foreach ($item as $k => $value) {\n                if (! is_bool($value)) {\n                    continue;\n                }\n\n                $item[$k] = (int) $value;\n            }\n        } elseif (is_bool($item)) {\n            $item = (int) $item;\n        }\n\n        return $item;\n    }\n\n    /**\n     * Some platforms have boolean literals that needs to be correctly converted\n     *\n     * The default conversion tries to convert value into bool \"(bool)$item\"\n     *\n     * @param mixed $item\n     *\n     * @return bool|null\n     */\n    public function convertFromBoolean($item)\n    {\n        return $item === null ? null: (bool) $item;\n    }\n\n    /**\n     * This method should handle the prepared statements case. When there is no\n     * distinction, it's OK to use the same method.\n     *\n     * Note: if the input is not a boolean the original input might be returned.\n     *\n     * @param mixed $item A boolean or an array of them.\n     *\n     * @return mixed A boolean database value or an array of them.\n     */\n    public function convertBooleansToDatabaseValue($item)\n    {\n        return $this->convertBooleans($item);\n    }\n\n    /**\n     * Returns the SQL specific for the platform to get the current date.\n     *\n     * @return string\n     */\n    public function getCurrentDateSQL()\n    {\n        return 'CURRENT_DATE';\n    }\n\n    /**\n     * Returns the SQL specific for the platform to get the current time.\n     *\n     * @return string\n     */\n    public function getCurrentTimeSQL()\n    {\n        return 'CURRENT_TIME';\n    }\n\n    /**\n     * Returns the SQL specific for the platform to get the current timestamp\n     *\n     * @return string\n     */\n    public function getCurrentTimestampSQL()\n    {\n        return 'CURRENT_TIMESTAMP';\n    }\n\n    /**\n     * Returns the SQL for a given transaction isolation level Connection constant.\n     *\n     * @param int $level\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    protected function _getTransactionIsolationLevelSQL($level)\n    {\n        switch ($level) {\n            case TransactionIsolationLevel::READ_UNCOMMITTED:\n                return 'READ UNCOMMITTED';\n            case TransactionIsolationLevel::READ_COMMITTED:\n                return 'READ COMMITTED';\n            case TransactionIsolationLevel::REPEATABLE_READ:\n                return 'REPEATABLE READ';\n            case TransactionIsolationLevel::SERIALIZABLE:\n                return 'SERIALIZABLE';\n            default:\n                throw new InvalidArgumentException('Invalid isolation level:' . $level);\n        }\n    }\n\n    /**\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListDatabasesSQL()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL statement for retrieving the namespaces defined in the database.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListNamespacesSQL()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $database\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListSequencesSQL($database)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $table\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string      $table\n     * @param string|null $database\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListTablesSQL()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListUsersSQL()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to list all views of a database or user.\n     *\n     * @param string $database\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListViewsSQL($database)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the list of indexes for the current database.\n     *\n     * The current database parameter is optional but will always be passed\n     * when using the SchemaManager API and is the database the given table is in.\n     *\n     * Attention: Some platforms only support currentDatabase when they\n     * are connected with that database. Cross-database information schema\n     * requests may be impossible.\n     *\n     * @param string $table\n     * @param string $currentDatabase\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $table\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getListTableForeignKeysSQL($table)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $name\n     * @param string $sql\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDropViewSQL($name)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL snippet to drop an existing sequence.\n     *\n     * @param Sequence|string $sequence\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDropSequenceSQL($sequence)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getSequenceNextValSQL($sequenceName)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to create a new database.\n     *\n     * @param string $database The name of the database that should be created.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getCreateDatabaseSQL($database)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Returns the SQL to set the transaction isolation level.\n     *\n     * @param int $level\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Obtains DBMS specific SQL to be used to create datetime fields in\n     * statements like CREATE TABLE.\n     *\n     * @param mixed[] $fieldDeclaration\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Obtains DBMS specific SQL to be used to create datetime with timezone offset fields.\n     *\n     * @param mixed[] $fieldDeclaration\n     *\n     * @return string\n     */\n    public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return $this->getDateTimeTypeDeclarationSQL($fieldDeclaration);\n    }\n\n\n    /**\n     * Obtains DBMS specific SQL to be used to create date fields in statements\n     * like CREATE TABLE.\n     *\n     * @param mixed[] $fieldDeclaration\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Obtains DBMS specific SQL to be used to create time fields in statements\n     * like CREATE TABLE.\n     *\n     * @param mixed[] $fieldDeclaration\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * @param mixed[] $fieldDeclaration\n     *\n     * @return string\n     */\n    public function getFloatDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DOUBLE PRECISION';\n    }\n\n    /**\n     * Gets the default transaction isolation level of the platform.\n     *\n     * @see TransactionIsolationLevel\n     *\n     * @return int The default isolation level.\n     */\n    public function getDefaultTransactionIsolationLevel()\n    {\n        return TransactionIsolationLevel::READ_COMMITTED;\n    }\n\n    /* supports*() methods */\n\n    /**\n     * Whether the platform supports sequences.\n     *\n     * @return bool\n     */\n    public function supportsSequences()\n    {\n        return false;\n    }\n\n    /**\n     * Whether the platform supports identity columns.\n     *\n     * Identity columns are columns that receive an auto-generated value from the\n     * database on insert of a row.\n     *\n     * @return bool\n     */\n    public function supportsIdentityColumns()\n    {\n        return false;\n    }\n\n    /**\n     * Whether the platform emulates identity columns through sequences.\n     *\n     * Some platforms that do not support identity columns natively\n     * but support sequences can emulate identity columns by using\n     * sequences.\n     *\n     * @return bool\n     */\n    public function usesSequenceEmulatedIdentityColumns()\n    {\n        return false;\n    }\n\n    /**\n     * Returns the name of the sequence for a particular identity column in a particular table.\n     *\n     * @see    usesSequenceEmulatedIdentityColumns\n     *\n     * @param string $tableName  The name of the table to return the sequence name for.\n     * @param string $columnName The name of the identity column in the table to return the sequence name for.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getIdentitySequenceName($tableName, $columnName)\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Whether the platform supports indexes.\n     *\n     * @return bool\n     */\n    public function supportsIndexes()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports partial indexes.\n     *\n     * @return bool\n     */\n    public function supportsPartialIndexes()\n    {\n        return false;\n    }\n\n    /**\n     * Whether the platform supports indexes with column length definitions.\n     */\n    public function supportsColumnLengthIndexes() : bool\n    {\n        return false;\n    }\n\n    /**\n     * Whether the platform supports altering tables.\n     *\n     * @return bool\n     */\n    public function supportsAlterTable()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports transactions.\n     *\n     * @return bool\n     */\n    public function supportsTransactions()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports savepoints.\n     *\n     * @return bool\n     */\n    public function supportsSavepoints()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports releasing savepoints.\n     *\n     * @return bool\n     */\n    public function supportsReleaseSavepoints()\n    {\n        return $this->supportsSavepoints();\n    }\n\n    /**\n     * Whether the platform supports primary key constraints.\n     *\n     * @return bool\n     */\n    public function supportsPrimaryConstraints()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports foreign key constraints.\n     *\n     * @return bool\n     */\n    public function supportsForeignKeyConstraints()\n    {\n        return true;\n    }\n\n    /**\n     * Whether this platform supports onUpdate in foreign key constraints.\n     *\n     * @return bool\n     */\n    public function supportsForeignKeyOnUpdate()\n    {\n        return $this->supportsForeignKeyConstraints() && true;\n    }\n\n    /**\n     * Whether the platform supports database schemas.\n     *\n     * @return bool\n     */\n    public function supportsSchemas()\n    {\n        return false;\n    }\n\n    /**\n     * Whether this platform can emulate schemas.\n     *\n     * Platforms that either support or emulate schemas don't automatically\n     * filter a schema for the namespaced elements in {@link\n     * AbstractManager#createSchema}.\n     *\n     * @return bool\n     */\n    public function canEmulateSchemas()\n    {\n        return false;\n    }\n\n    /**\n     * Returns the default schema name.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    public function getDefaultSchemaName()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Whether this platform supports create database.\n     *\n     * Some databases don't allow to create and drop databases at all or only with certain tools.\n     *\n     * @return bool\n     */\n    public function supportsCreateDropDatabase()\n    {\n        return true;\n    }\n\n    /**\n     * Whether the platform supports getting the affected rows of a recent update/delete type query.\n     *\n     * @return bool\n     */\n    public function supportsGettingAffectedRows()\n    {\n        return true;\n    }\n\n    /**\n     * Whether this platform support to add inline column comments as postfix.\n     *\n     * @return bool\n     */\n    public function supportsInlineColumnComments()\n    {\n        return false;\n    }\n\n    /**\n     * Whether this platform support the proprietary syntax \"COMMENT ON asset\".\n     *\n     * @return bool\n     */\n    public function supportsCommentOnStatement()\n    {\n        return false;\n    }\n\n    /**\n     * Does this platform have native guid type.\n     *\n     * @return bool\n     */\n    public function hasNativeGuidType()\n    {\n        return false;\n    }\n\n    /**\n     * Does this platform have native JSON type.\n     *\n     * @return bool\n     */\n    public function hasNativeJsonType()\n    {\n        return false;\n    }\n\n    /**\n     * @deprecated\n     *\n     * @todo Remove in 3.0\n     */\n    public function getIdentityColumnNullInsertSQL()\n    {\n        return '';\n    }\n\n    /**\n     * Whether this platform supports views.\n     *\n     * @return bool\n     */\n    public function supportsViews()\n    {\n        return true;\n    }\n\n    /**\n     * Does this platform support column collation?\n     *\n     * @return bool\n     */\n    public function supportsColumnCollation()\n    {\n        return false;\n    }\n\n    /**\n     * Gets the format string, as accepted by the date() function, that describes\n     * the format of a stored datetime value of this platform.\n     *\n     * @return string The format string.\n     */\n    public function getDateTimeFormatString()\n    {\n        return 'Y-m-d H:i:s';\n    }\n\n    /**\n     * Gets the format string, as accepted by the date() function, that describes\n     * the format of a stored datetime with timezone value of this platform.\n     *\n     * @return string The format string.\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return 'Y-m-d H:i:s';\n    }\n\n    /**\n     * Gets the format string, as accepted by the date() function, that describes\n     * the format of a stored date value of this platform.\n     *\n     * @return string The format string.\n     */\n    public function getDateFormatString()\n    {\n        return 'Y-m-d';\n    }\n\n    /**\n     * Gets the format string, as accepted by the date() function, that describes\n     * the format of a stored time value of this platform.\n     *\n     * @return string The format string.\n     */\n    public function getTimeFormatString()\n    {\n        return 'H:i:s';\n    }\n\n    /**\n     * Adds an driver-specific LIMIT clause to the query.\n     *\n     * @param string   $query\n     * @param int|null $limit\n     * @param int|null $offset\n     *\n     * @return string\n     *\n     * @throws DBALException\n     */\n    final public function modifyLimitQuery($query, $limit, $offset = null)\n    {\n        if ($limit !== null) {\n            $limit = (int) $limit;\n        }\n\n        $offset = (int) $offset;\n\n        if ($offset < 0) {\n            throw new DBALException(sprintf(\n                'Offset must be a positive integer or zero, %d given',\n                $offset\n            ));\n        }\n\n        if ($offset > 0 && ! $this->supportsLimitOffset()) {\n            throw new DBALException(sprintf(\n                'Platform %s does not support offset values in limit queries.',\n                $this->getName()\n            ));\n        }\n\n        return $this->doModifyLimitQuery($query, $limit, $offset);\n    }\n\n    /**\n     * Adds an platform-specific LIMIT clause to the query.\n     *\n     * @param string   $query\n     * @param int|null $limit\n     * @param int|null $offset\n     *\n     * @return string\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset)\n    {\n        if ($limit !== null) {\n            $query .= ' LIMIT ' . $limit;\n        }\n\n        if ($offset > 0) {\n            $query .= ' OFFSET ' . $offset;\n        }\n\n        return $query;\n    }\n\n    /**\n     * Whether the database platform support offsets in modify limit clauses.\n     *\n     * @return bool\n     */\n    public function supportsLimitOffset()\n    {\n        return true;\n    }\n\n    /**\n     * Gets the character casing of a column in an SQL result set of this platform.\n     *\n     * @param string $column The column name for which to get the correct character casing.\n     *\n     * @return string The column name in the character casing used in SQL result sets.\n     */\n    public function getSQLResultCasing($column)\n    {\n        return $column;\n    }\n\n    /**\n     * Makes any fixes to a name of a schema element (table, sequence, ...) that are required\n     * by restrictions of the platform, like a maximum length.\n     *\n     * @param string $schemaElementName\n     *\n     * @return string\n     */\n    public function fixSchemaElementName($schemaElementName)\n    {\n        return $schemaElementName;\n    }\n\n    /**\n     * Maximum length of any given database identifier, like tables or column names.\n     *\n     * @return int\n     */\n    public function getMaxIdentifierLength()\n    {\n        return 63;\n    }\n\n    /**\n     * Returns the insert SQL for an empty insert statement.\n     *\n     * @param string $tableName\n     * @param string $identifierColumnName\n     *\n     * @return string\n     */\n    public function getEmptyIdentityInsertSQL($tableName, $identifierColumnName)\n    {\n        return 'INSERT INTO ' . $tableName . ' (' . $identifierColumnName . ') VALUES (null)';\n    }\n\n    /**\n     * Generates a Truncate Table SQL statement for a given table.\n     *\n     * Cascade is not supported on many platforms but would optionally cascade the truncate by\n     * following the foreign keys.\n     *\n     * @param string $tableName\n     * @param bool   $cascade\n     *\n     * @return string\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n\n        return 'TRUNCATE ' . $tableIdentifier->getQuotedName($this);\n    }\n\n    /**\n     * This is for test reasons, many vendors have special requirements for dummy statements.\n     *\n     * @return string\n     */\n    public function getDummySelectSQL()\n    {\n        $expression = func_num_args() > 0 ? func_get_arg(0) : '1';\n\n        return sprintf('SELECT %s', $expression);\n    }\n\n    /**\n     * Returns the SQL to create a new savepoint.\n     *\n     * @param string $savepoint\n     *\n     * @return string\n     */\n    public function createSavePoint($savepoint)\n    {\n        return 'SAVEPOINT ' . $savepoint;\n    }\n\n    /**\n     * Returns the SQL to release a savepoint.\n     *\n     * @param string $savepoint\n     *\n     * @return string\n     */\n    public function releaseSavePoint($savepoint)\n    {\n        return 'RELEASE SAVEPOINT ' . $savepoint;\n    }\n\n    /**\n     * Returns the SQL to rollback a savepoint.\n     *\n     * @param string $savepoint\n     *\n     * @return string\n     */\n    public function rollbackSavePoint($savepoint)\n    {\n        return 'ROLLBACK TO SAVEPOINT ' . $savepoint;\n    }\n\n    /**\n     * Returns the keyword list instance of this platform.\n     *\n     * @return KeywordList\n     *\n     * @throws DBALException If no keyword list is specified.\n     */\n    final public function getReservedKeywordsList()\n    {\n        // Check for an existing instantiation of the keywords class.\n        if ($this->_keywords) {\n            return $this->_keywords;\n        }\n\n        $class    = $this->getReservedKeywordsClass();\n        $keywords = new $class();\n        if (! $keywords instanceof KeywordList) {\n            throw DBALException::notSupported(__METHOD__);\n        }\n\n        // Store the instance so it doesn't need to be generated on every request.\n        $this->_keywords = $keywords;\n\n        return $keywords;\n    }\n\n    /**\n     * Returns the class name of the reserved keywords list.\n     *\n     * @return string\n     *\n     * @throws DBALException If not supported on this platform.\n     */\n    protected function getReservedKeywordsClass()\n    {\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * Quotes a literal string.\n     * This method is NOT meant to fix SQL injections!\n     * It is only meant to escape this platform's string literal\n     * quote character inside the given literal string.\n     *\n     * @param string $str The literal string to be quoted.\n     *\n     * @return string The quoted literal string.\n     */\n    public function quoteStringLiteral($str)\n    {\n        $c = $this->getStringLiteralQuoteCharacter();\n\n        return $c . str_replace($c, $c . $c, $str) . $c;\n    }\n\n    /**\n     * Gets the character used for string literal quoting.\n     *\n     * @return string\n     */\n    public function getStringLiteralQuoteCharacter()\n    {\n        return \"'\";\n    }\n\n    /**\n     * Escapes metacharacters in a string intended to be used with a LIKE\n     * operator.\n     *\n     * @param string $inputString a literal, unquoted string\n     * @param string $escapeChar  should be reused by the caller in the LIKE\n     *                            expression.\n     */\n    final public function escapeStringForLike(string $inputString, string $escapeChar) : string\n    {\n        return preg_replace(\n            '~([' . preg_quote($this->getLikeWildcardCharacters() . $escapeChar, '~') . '])~u',\n            addcslashes($escapeChar, '\\\\') . '$1',\n            $inputString\n        );\n    }\n\n    protected function getLikeWildcardCharacters() : string\n    {\n        return '%_';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DB2Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\Types\\Type;\nuse function array_merge;\nuse function count;\nuse function current;\nuse function explode;\nuse function func_get_arg;\nuse function func_num_args;\nuse function implode;\nuse function sprintf;\nuse function strpos;\nuse function strtoupper;\n\nclass DB2Platform extends AbstractPlatform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getCharMaxLength() : int\n    {\n        return 254;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 32704;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryDefaultLength()\n    {\n        return 1;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getVarcharTypeDeclarationSQL(array $field)\n    {\n        // for IBM DB2, the CHAR max length is less than VARCHAR default length\n        if (! isset($field['length']) && ! empty($field['fixed'])) {\n            $field['length'] = $this->getCharMaxLength();\n        }\n\n        return parent::getVarcharTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        // todo blob(n) with $field['length'];\n        return 'BLOB(1M)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'smallint'      => 'smallint',\n            'bigint'        => 'bigint',\n            'integer'       => 'integer',\n            'time'          => 'time',\n            'date'          => 'date',\n            'varchar'       => 'string',\n            'character'     => 'string',\n            'varbinary'     => 'binary',\n            'binary'        => 'binary',\n            'clob'          => 'text',\n            'blob'          => 'blob',\n            'decimal'       => 'decimal',\n            'double'        => 'float',\n            'real'          => 'float',\n            'timestamp'     => 'datetime',\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isCommentedDoctrineType(Type $doctrineType)\n    {\n        if ($doctrineType->getName() === Type::BOOLEAN) {\n            // We require a commented boolean type in order to distinguish between boolean and smallint\n            // as both (have to) map to the same native type.\n            return true;\n        }\n\n        return parent::isCommentedDoctrineType($doctrineType);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(254)')\n                : ($length ? 'VARCHAR(' . $length . ')' : 'VARCHAR(255)');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $this->getVarcharTypeDeclarationSQLSnippet($length, $fixed) . ' FOR BIT DATA';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        // todo clob(n) with $field['length'];\n        return 'CLOB(1M)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'db2';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $columnDef)\n    {\n        return 'SMALLINT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        return 'INTEGER' . $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $columnDef)\n    {\n        return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $columnDef)\n    {\n        return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        $autoinc = '';\n        if (! empty($columnDef['autoincrement'])) {\n            $autoinc = ' GENERATED BY DEFAULT AS IDENTITY';\n        }\n\n        return $autoinc;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBitAndComparisonExpression($value1, $value2)\n    {\n        return 'BITAND(' . $value1 . ', ' . $value2 . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBitOrComparisonExpression($value1, $value2)\n    {\n        return 'BITOR(' . $value1 . ', ' . $value2 . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        switch ($unit) {\n            case DateIntervalUnit::WEEK:\n                $interval *= 7;\n                $unit      = DateIntervalUnit::DAY;\n                break;\n\n            case DateIntervalUnit::QUARTER:\n                $interval *= 3;\n                $unit      = DateIntervalUnit::MONTH;\n                break;\n        }\n\n        return $date . ' ' . $operator . ' ' . $interval . ' ' . $unit;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return 'DAYS(' . $date1 . ') - DAYS(' . $date2 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        if (isset($fieldDeclaration['version']) && $fieldDeclaration['version'] === true) {\n            return 'TIMESTAMP(0) WITH DEFAULT';\n        }\n\n        return 'TIMESTAMP(0)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n\n        return 'TRUNCATE ' . $tableIdentifier->getQuotedName($this) . ' IMMEDIATE';\n    }\n\n    /**\n     * This code fragment is originally from the Zend_Db_Adapter_Db2 class, but has been edited.\n     *\n     * @param string $table\n     * @param string $database\n     *\n     * @return string\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        $table = $this->quoteStringLiteral($table);\n\n        // We do the funky subquery and join syscat.columns.default this crazy way because\n        // as of db2 v10, the column is CLOB(64k) and the distinct operator won't allow a CLOB,\n        // it wants shorter stuff like a varchar.\n        return \"\n        SELECT\n          cols.default,\n          subq.*\n        FROM (\n               SELECT DISTINCT\n                 c.tabschema,\n                 c.tabname,\n                 c.colname,\n                 c.colno,\n                 c.typename,\n                 c.nulls,\n                 c.length,\n                 c.scale,\n                 c.identity,\n                 tc.type AS tabconsttype,\n                 c.remarks AS comment,\n                 k.colseq,\n                 CASE\n                 WHEN c.generated = 'D' THEN 1\n                 ELSE 0\n                 END     AS autoincrement\n               FROM syscat.columns c\n                 LEFT JOIN (syscat.keycoluse k JOIN syscat.tabconst tc\n                     ON (k.tabschema = tc.tabschema\n                         AND k.tabname = tc.tabname\n                         AND tc.type = 'P'))\n                   ON (c.tabschema = k.tabschema\n                       AND c.tabname = k.tabname\n                       AND c.colname = k.colname)\n               WHERE UPPER(c.tabname) = UPPER(\" . $table . ')\n               ORDER BY c.colno\n             ) subq\n          JOIN syscat.columns cols\n            ON subq.tabschema = cols.tabschema\n               AND subq.tabname = cols.tabname\n               AND subq.colno = cols.colno\n        ORDER BY subq.colno\n        ';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SELECT NAME FROM SYSIBM.SYSTABLES WHERE TYPE = 'T'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return 'SELECT NAME, TEXT FROM SYSIBM.SYSVIEWS';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        $table = $this->quoteStringLiteral($table);\n\n        return \"SELECT   idx.INDNAME AS key_name,\n                         idxcol.COLNAME AS column_name,\n                         CASE\n                             WHEN idx.UNIQUERULE = 'P' THEN 1\n                             ELSE 0\n                         END AS primary,\n                         CASE\n                             WHEN idx.UNIQUERULE = 'D' THEN 1\n                             ELSE 0\n                         END AS non_unique\n                FROM     SYSCAT.INDEXES AS idx\n                JOIN     SYSCAT.INDEXCOLUSE AS idxcol\n                ON       idx.INDSCHEMA = idxcol.INDSCHEMA AND idx.INDNAME = idxcol.INDNAME\n                WHERE    idx.TABNAME = UPPER(\" . $table . ')\n                ORDER BY idxcol.COLSEQ ASC';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table)\n    {\n        $table = $this->quoteStringLiteral($table);\n\n        return \"SELECT   fkcol.COLNAME AS local_column,\n                         fk.REFTABNAME AS foreign_table,\n                         pkcol.COLNAME AS foreign_column,\n                         fk.CONSTNAME AS index_name,\n                         CASE\n                             WHEN fk.UPDATERULE = 'R' THEN 'RESTRICT'\n                             ELSE NULL\n                         END AS on_update,\n                         CASE\n                             WHEN fk.DELETERULE = 'C' THEN 'CASCADE'\n                             WHEN fk.DELETERULE = 'N' THEN 'SET NULL'\n                             WHEN fk.DELETERULE = 'R' THEN 'RESTRICT'\n                             ELSE NULL\n                         END AS on_delete\n                FROM     SYSCAT.REFERENCES AS fk\n                JOIN     SYSCAT.KEYCOLUSE AS fkcol\n                ON       fk.CONSTNAME = fkcol.CONSTNAME\n                AND      fk.TABSCHEMA = fkcol.TABSCHEMA\n                AND      fk.TABNAME = fkcol.TABNAME\n                JOIN     SYSCAT.KEYCOLUSE AS pkcol\n                ON       fk.REFKEYNAME = pkcol.CONSTNAME\n                AND      fk.REFTABSCHEMA = pkcol.TABSCHEMA\n                AND      fk.REFTABNAME = pkcol.TABNAME\n                WHERE    fk.TABNAME = UPPER(\" . $table . ')\n                ORDER BY fkcol.COLSEQ ASC';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateDatabaseSQL($database)\n    {\n        return 'CREATE DATABASE ' . $database;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropDatabaseSQL($database)\n    {\n        return 'DROP DATABASE ' . $database;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsCreateDropDatabase()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsReleaseSavepoints()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsCommentOnStatement()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCurrentDateSQL()\n    {\n        return 'CURRENT DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCurrentTimeSQL()\n    {\n        return 'CURRENT TIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCurrentTimestampSQL()\n    {\n        return 'CURRENT TIMESTAMP';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIndexDeclarationSQL($name, Index $index)\n    {\n        // Index declaration in statements like CREATE TABLE is not supported.\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $indexes = [];\n        if (isset($options['indexes'])) {\n            $indexes = $options['indexes'];\n        }\n        $options['indexes'] = [];\n\n        $sqls = parent::_getCreateTableSQL($tableName, $columns, $options);\n\n        foreach ($indexes as $definition) {\n            $sqls[] = $this->getCreateIndexSQL($definition, $tableName);\n        }\n        return $sqls;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $sql         = [];\n        $columnSql   = [];\n        $commentsSQL = [];\n\n        $queryParts = [];\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columnDef = $column->toArray();\n            $queryPart = 'ADD COLUMN ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnDef);\n\n            // Adding non-nullable columns to a table requires a default value to be specified.\n            if (! empty($columnDef['notnull']) &&\n                ! isset($columnDef['default']) &&\n                empty($columnDef['autoincrement'])\n            ) {\n                $queryPart .= ' WITH DEFAULT';\n            }\n\n            $queryParts[] = $queryPart;\n\n            $comment = $this->getColumnComment($column);\n\n            if ($comment === null || $comment === '') {\n                continue;\n            }\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $comment\n            );\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $queryParts[] =  'DROP COLUMN ' . $column->getQuotedName($this);\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            if ($columnDiff->hasChanged('comment')) {\n                $commentsSQL[] = $this->getCommentOnColumnSQL(\n                    $diff->getName($this)->getQuotedName($this),\n                    $columnDiff->column->getQuotedName($this),\n                    $this->getColumnComment($columnDiff->column)\n                );\n\n                if (count($columnDiff->changedProperties) === 1) {\n                    continue;\n                }\n            }\n\n            $this->gatherAlterColumnSQL($diff->fromTable, $columnDiff, $sql, $queryParts);\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = new Identifier($oldColumnName);\n\n            $queryParts[] =  'RENAME COLUMN ' . $oldColumnName->getQuotedName($this) .\n                ' TO ' . $column->getQuotedName($this);\n        }\n\n        $tableSql = [];\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            if (count($queryParts) > 0) {\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . implode(' ', $queryParts);\n            }\n\n            // Some table alteration operations require a table reorganization.\n            if (! empty($diff->removedColumns) || ! empty($diff->changedColumns)) {\n                $sql[] = \"CALL SYSPROC.ADMIN_CMD ('REORG TABLE \" . $diff->getName($this)->getQuotedName($this) . \"')\";\n            }\n\n            $sql = array_merge($sql, $commentsSQL);\n\n            if ($diff->newName !== false) {\n                $sql[] =  'RENAME TABLE ' . $diff->getName($this)->getQuotedName($this) . ' TO ' . $diff->getNewName()->getQuotedName($this);\n            }\n\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * Gathers the table alteration SQL for a given column diff.\n     *\n     * @param Table      $table      The table to gather the SQL for.\n     * @param ColumnDiff $columnDiff The column diff to evaluate.\n     * @param string[]   $sql        The sequence of table alteration statements to fill.\n     * @param mixed[]    $queryParts The sequence of column alteration clauses to fill.\n     */\n    private function gatherAlterColumnSQL(Table $table, ColumnDiff $columnDiff, array &$sql, array &$queryParts)\n    {\n        $alterColumnClauses = $this->getAlterColumnClausesSQL($columnDiff);\n\n        if (empty($alterColumnClauses)) {\n            return;\n        }\n\n        // If we have a single column alteration, we can append the clause to the main query.\n        if (count($alterColumnClauses) === 1) {\n            $queryParts[] = current($alterColumnClauses);\n\n            return;\n        }\n\n        // We have multiple alterations for the same column,\n        // so we need to trigger a complete ALTER TABLE statement\n        // for each ALTER COLUMN clause.\n        foreach ($alterColumnClauses as $alterColumnClause) {\n            $sql[] = 'ALTER TABLE ' . $table->getQuotedName($this) . ' ' . $alterColumnClause;\n        }\n    }\n\n    /**\n     * Returns the ALTER COLUMN SQL clauses for altering a column described by the given column diff.\n     *\n     * @param ColumnDiff $columnDiff The column diff to evaluate.\n     *\n     * @return string[]\n     */\n    private function getAlterColumnClausesSQL(ColumnDiff $columnDiff)\n    {\n        $column = $columnDiff->column->toArray();\n\n        $alterClause = 'ALTER COLUMN ' . $columnDiff->column->getQuotedName($this);\n\n        if ($column['columnDefinition']) {\n            return [$alterClause . ' ' . $column['columnDefinition']];\n        }\n\n        $clauses = [];\n\n        if ($columnDiff->hasChanged('type') ||\n            $columnDiff->hasChanged('length') ||\n            $columnDiff->hasChanged('precision') ||\n            $columnDiff->hasChanged('scale') ||\n            $columnDiff->hasChanged('fixed')\n        ) {\n            $clauses[] = $alterClause . ' SET DATA TYPE ' . $column['type']->getSQLDeclaration($column, $this);\n        }\n\n        if ($columnDiff->hasChanged('notnull')) {\n            $clauses[] = $column['notnull'] ? $alterClause . ' SET NOT NULL' : $alterClause . ' DROP NOT NULL';\n        }\n\n        if ($columnDiff->hasChanged('default')) {\n            if (isset($column['default'])) {\n                $defaultClause = $this->getDefaultValueDeclarationSQL($column);\n\n                if ($defaultClause) {\n                    $clauses[] = $alterClause . ' SET' . $defaultClause;\n                }\n            } else {\n                $clauses[] = $alterClause . ' DROP DEFAULT';\n            }\n        }\n\n        return $clauses;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        $sql   = [];\n        $table = $diff->getName($this)->getQuotedName($this);\n\n        foreach ($diff->removedIndexes as $remKey => $remIndex) {\n            foreach ($diff->addedIndexes as $addKey => $addIndex) {\n                if ($remIndex->getColumns() === $addIndex->getColumns()) {\n                    if ($remIndex->isPrimary()) {\n                        $sql[] = 'ALTER TABLE ' . $table . ' DROP PRIMARY KEY';\n                    } elseif ($remIndex->isUnique()) {\n                        $sql[] = 'ALTER TABLE ' . $table . ' DROP UNIQUE ' . $remIndex->getQuotedName($this);\n                    } else {\n                        $sql[] = $this->getDropIndexSQL($remIndex, $table);\n                    }\n\n                    $sql[] = $this->getCreateIndexSQL($addIndex, $table);\n\n                    unset($diff->removedIndexes[$remKey], $diff->addedIndexes[$addKey]);\n\n                    break;\n                }\n            }\n        }\n\n        $sql = array_merge($sql, parent::getPreAlterTableIndexForeignKeySQL($diff));\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schema]     = explode('.', $tableName);\n            $oldIndexName = $schema . '.' . $oldIndexName;\n        }\n\n        return ['RENAME INDEX ' . $oldIndexName . ' TO ' . $index->getQuotedName($this)];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDefaultValueDeclarationSQL($field)\n    {\n        if (! empty($field['autoincrement'])) {\n            return '';\n        }\n\n        if (isset($field['version']) && $field['version']) {\n            if ((string) $field['type'] !== 'DateTime') {\n                $field['default'] = '1';\n            }\n        }\n\n        return parent::getDefaultValueDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getEmptyIdentityInsertSQL($tableName, $identifierColumnName)\n    {\n        return 'INSERT INTO ' . $tableName . ' (' . $identifierColumnName . ') VALUES (DEFAULT)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateTemporaryTableSnippetSQL()\n    {\n        return 'DECLARE GLOBAL TEMPORARY TABLE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTemporaryTableName($tableName)\n    {\n        return 'SESSION.' . $tableName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset = null)\n    {\n        $where = [];\n\n        if ($offset > 0) {\n            $where[] = sprintf('db22.DC_ROWNUM >= %d', $offset + 1);\n        }\n\n        if ($limit !== null) {\n            $where[] = sprintf('db22.DC_ROWNUM <= %d', $offset + $limit);\n        }\n\n        if (empty($where)) {\n            return $query;\n        }\n\n        // Todo OVER() needs ORDER BY data!\n        return sprintf(\n            'SELECT db22.* FROM (SELECT db21.*, ROW_NUMBER() OVER() AS DC_ROWNUM FROM (%s) db21) db22 WHERE %s',\n            $query,\n            implode(' AND ', $where)\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'LOCATE(' . $substr . ', ' . $str . ')';\n        }\n\n        return 'LOCATE(' . $substr . ', ' . $str . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSubstringExpression($value, $from, $length = null)\n    {\n        if ($length === null) {\n            return 'SUBSTR(' . $value . ', ' . $from . ')';\n        }\n\n        return 'SUBSTR(' . $value . ', ' . $from . ', ' . $length . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * DB2 returns all column names in SQL result sets in uppercase.\n     */\n    public function getSQLResultCasing($column)\n    {\n        return strtoupper($column);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getForUpdateSQL()\n    {\n        return ' WITH RR USE AND KEEP UPDATE LOCKS';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDummySelectSQL()\n    {\n        $expression = func_num_args() > 0 ? func_get_arg(0) : '1';\n\n        return sprintf('SELECT %s FROM sysibm.sysdummy1', $expression);\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * DB2 supports savepoints, but they work semantically different than on other vendor platforms.\n     *\n     * TODO: We have to investigate how to get DB2 up and running with savepoints.\n     */\n    public function supportsSavepoints()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\DB2Keywords::class;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DateIntervalUnit.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nfinal class DateIntervalUnit\n{\n    public const SECOND = 'SECOND';\n\n    public const MINUTE = 'MINUTE';\n\n    public const HOUR = 'HOUR';\n\n    public const DAY = 'DAY';\n\n    public const WEEK = 'WEEK';\n\n    public const MONTH = 'MONTH';\n\n    public const QUARTER = 'QUARTER';\n\n    public const YEAR = 'YEAR';\n\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DrizzlePlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\Types\\BinaryType;\nuse InvalidArgumentException;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function func_get_args;\nuse function implode;\nuse function is_array;\nuse function is_bool;\nuse function is_numeric;\nuse function is_string;\nuse function sprintf;\nuse function trim;\n\n/**\n * Drizzle platform\n */\nclass DrizzlePlatform extends AbstractPlatform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'drizzle';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIdentifierQuoteCharacter()\n    {\n        return '`';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getConcatExpression()\n    {\n        $args = func_get_args();\n\n        return 'CONCAT(' . implode(', ', (array) $args) . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        $function = $operator === '+' ? 'DATE_ADD' : 'DATE_SUB';\n\n        return $function . '(' . $date . ', INTERVAL ' . $interval . ' ' . $unit . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return 'DATEDIFF(' . $date1 . ', ' . $date2 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'BOOLEAN';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        $autoinc = '';\n        if (! empty($columnDef['autoincrement'])) {\n            $autoinc = ' AUTO_INCREMENT';\n        }\n\n        return $autoinc;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $length ? 'VARCHAR(' . $length . ')' : 'VARCHAR(255)';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return 'VARBINARY(' . ($length ?: 255) . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'boolean'       => 'boolean',\n            'varchar'       => 'string',\n            'varbinary'     => 'binary',\n            'integer'       => 'integer',\n            'blob'          => 'blob',\n            'decimal'       => 'decimal',\n            'datetime'      => 'datetime',\n            'date'          => 'date',\n            'time'          => 'time',\n            'text'          => 'text',\n            'timestamp'     => 'datetime',\n            'double'        => 'float',\n            'bigint'        => 'bigint',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'TEXT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'BLOB';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateDatabaseSQL($name)\n    {\n        return 'CREATE DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropDatabaseSQL($name)\n    {\n        return 'DROP DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $queryFields = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['uniqueConstraints']) && ! empty($options['uniqueConstraints'])) {\n            foreach ($options['uniqueConstraints'] as $index => $definition) {\n                $queryFields .= ', ' . $this->getUniqueConstraintDeclarationSQL($index, $definition);\n            }\n        }\n\n        // add all indexes\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $index => $definition) {\n                $queryFields .= ', ' . $this->getIndexDeclarationSQL($index, $definition);\n            }\n        }\n\n        // attach all primary keys\n        if (isset($options['primary']) && ! empty($options['primary'])) {\n            $keyColumns   = array_unique(array_values($options['primary']));\n            $queryFields .= ', PRIMARY KEY(' . implode(', ', $keyColumns) . ')';\n        }\n\n        $query = 'CREATE ';\n\n        if (! empty($options['temporary'])) {\n            $query .= 'TEMPORARY ';\n        }\n\n        $query .= 'TABLE ' . $tableName . ' (' . $queryFields . ') ';\n        $query .= $this->buildTableOptions($options);\n        $query .= $this->buildPartitionOptions($options);\n\n        $sql = [$query];\n\n        if (isset($options['foreignKeys'])) {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $sql[] = $this->getCreateForeignKeySQL($definition, $tableName);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Build SQL for table options\n     *\n     * @param mixed[] $options\n     *\n     * @return string\n     */\n    private function buildTableOptions(array $options)\n    {\n        if (isset($options['table_options'])) {\n            return $options['table_options'];\n        }\n\n        $tableOptions = [];\n\n        // Collate\n        if (! isset($options['collate'])) {\n            $options['collate'] = 'utf8_unicode_ci';\n        }\n\n        $tableOptions[] = sprintf('COLLATE %s', $options['collate']);\n\n        // Engine\n        if (! isset($options['engine'])) {\n            $options['engine'] = 'InnoDB';\n        }\n\n        $tableOptions[] = sprintf('ENGINE = %s', $options['engine']);\n\n        // Auto increment\n        if (isset($options['auto_increment'])) {\n            $tableOptions[] = sprintf('AUTO_INCREMENT = %s', $options['auto_increment']);\n        }\n\n        // Comment\n        if (isset($options['comment'])) {\n            $comment = trim($options['comment'], \" '\");\n\n            $tableOptions[] = sprintf('COMMENT = %s ', $this->quoteStringLiteral($comment));\n        }\n\n        // Row format\n        if (isset($options['row_format'])) {\n            $tableOptions[] = sprintf('ROW_FORMAT = %s', $options['row_format']);\n        }\n\n        return implode(' ', $tableOptions);\n    }\n\n    /**\n     * Build SQL for partition options.\n     *\n     * @param mixed[] $options\n     *\n     * @return string\n     */\n    private function buildPartitionOptions(array $options)\n    {\n        return isset($options['partition_options'])\n            ? ' ' . $options['partition_options']\n            : '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return \"SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE CATALOG_NAME='LOCAL'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\DrizzleKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE' AND TABLE_SCHEMA=DATABASE()\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        if ($database) {\n            $databaseSQL = $this->quoteStringLiteral($database);\n        } else {\n            $databaseSQL = 'DATABASE()';\n        }\n\n        return 'SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT, IS_NULLABLE, IS_AUTO_INCREMENT, CHARACTER_MAXIMUM_LENGTH, COLUMN_DEFAULT,' .\n               ' NUMERIC_PRECISION, NUMERIC_SCALE, COLLATION_NAME' .\n               ' FROM DATA_DICTIONARY.COLUMNS' .\n               ' WHERE TABLE_SCHEMA=' . $databaseSQL . ' AND TABLE_NAME = ' . $this->quoteStringLiteral($table);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table, $database = null)\n    {\n        if ($database) {\n            $databaseSQL = $this->quoteStringLiteral($database);\n        } else {\n            $databaseSQL = 'DATABASE()';\n        }\n\n        return 'SELECT CONSTRAINT_NAME, CONSTRAINT_COLUMNS, REFERENCED_TABLE_NAME, REFERENCED_TABLE_COLUMNS, UPDATE_RULE, DELETE_RULE' .\n               ' FROM DATA_DICTIONARY.FOREIGN_KEYS' .\n               ' WHERE CONSTRAINT_SCHEMA=' . $databaseSQL . ' AND CONSTRAINT_TABLE=' . $this->quoteStringLiteral($table);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableIndexesSQL($table, $database = null)\n    {\n        if ($database) {\n            $databaseSQL = $this->quoteStringLiteral($database);\n        } else {\n            $databaseSQL = 'DATABASE()';\n        }\n\n        return \"SELECT INDEX_NAME AS 'key_name', COLUMN_NAME AS 'column_name', IS_USED_IN_PRIMARY AS 'primary', IS_UNIQUE=0 AS 'non_unique'\" .\n               ' FROM DATA_DICTIONARY.INDEX_PARTS' .\n               ' WHERE TABLE_SCHEMA=' . $databaseSQL . ' AND TABLE_NAME=' . $this->quoteStringLiteral($table);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsInlineColumnComments()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsViews()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsColumnCollation()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropIndexSQL($index, $table = null)\n    {\n        if ($index instanceof Index) {\n            $indexName = $index->getQuotedName($this);\n        } elseif (is_string($index)) {\n            $indexName = $index;\n        } else {\n            throw new InvalidArgumentException('DrizzlePlatform::getDropIndexSQL() expects $index parameter to be string or \\Doctrine\\DBAL\\Schema\\Index.');\n        }\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        } elseif (! is_string($table)) {\n            throw new InvalidArgumentException('DrizzlePlatform::getDropIndexSQL() expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        if ($index instanceof Index && $index->isPrimary()) {\n            // drizzle primary keys are always named \"PRIMARY\",\n            // so we cannot use them in statements because of them being keyword.\n            return $this->getDropPrimaryKeySQL($table);\n        }\n\n        return 'DROP INDEX ' . $indexName . ' ON ' . $table;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDropPrimaryKeySQL($table)\n    {\n        return 'ALTER TABLE ' . $table . ' DROP PRIMARY KEY';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        if (isset($fieldDeclaration['version']) && $fieldDeclaration['version'] === true) {\n            return 'TIMESTAMP';\n        }\n\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $columnSql  = [];\n        $queryParts = [];\n\n        if ($diff->newName !== false) {\n            $queryParts[] =  'RENAME TO ' . $diff->getNewName()->getQuotedName($this);\n        }\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columnArray            = $column->toArray();\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           = 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $queryParts[] =  'DROP ' . $column->getQuotedName($this);\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            $column      = $columnDiff->column;\n            $columnArray = $column->toArray();\n\n            // Do not generate column alteration clause if type is binary and only fixed property has changed.\n            // Drizzle only supports binary type columns with variable length.\n            // Avoids unnecessary table alteration statements.\n            if ($columnArray['type'] instanceof BinaryType &&\n                $columnDiff->hasChanged('fixed') &&\n                count($columnDiff->changedProperties) === 1\n            ) {\n                continue;\n            }\n\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           =  'CHANGE ' . ($columnDiff->getOldColumnName()->getQuotedName($this)) . ' '\n                    . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = new Identifier($oldColumnName);\n\n            $columnArray            = $column->toArray();\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           =  'CHANGE ' . $oldColumnName->getQuotedName($this) . ' '\n                    . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        $sql      = [];\n        $tableSql = [];\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            if (count($queryParts) > 0) {\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . implode(', ', $queryParts);\n            }\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropTemporaryTableSQL($table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        } elseif (! is_string($table)) {\n            throw new InvalidArgumentException('getDropTableSQL() expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        return 'DROP TEMPORARY TABLE ' . $table;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function convertBooleans($item)\n    {\n        if (is_array($item)) {\n            foreach ($item as $key => $value) {\n                if (! is_bool($value) && ! is_numeric($item)) {\n                    continue;\n                }\n\n                $item[$key] = $value ? 'true' : 'false';\n            }\n        } elseif (is_bool($item) || is_numeric($item)) {\n            $item = $item ? 'true' : 'false';\n        }\n\n        return $item;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'LOCATE(' . $substr . ', ' . $str . ')';\n        }\n\n        return 'LOCATE(' . $substr . ', ' . $str . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'UUID()';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getRegexpExpression()\n    {\n        return 'RLIKE';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DB2Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * DB2 Keywords.\n */\nclass DB2Keywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'DB2';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ACTIVATE',\n            'ADD',\n            'AFTER',\n            'ALIAS',\n            'ALL',\n            'ALLOCATE',\n            'DOCUMENT',\n            'DOUBLE',\n            'DROP',\n            'DSSIZE',\n            'DYNAMIC',\n            'EACH',\n            'LOCK',\n            'LOCKMAX',\n            'LOCKSIZE',\n            'LONG',\n            'LOOP',\n            'MAINTAINED',\n            'ROUND_CEILING',\n            'ROUND_DOWN',\n            'ROUND_FLOOR',\n            'ROUND_HALF_DOWN',\n            'ROUND_HALF_EVEN',\n            'ROUND_HALF_UP',\n            'ALLOW',\n            'ALTER',\n            'AND',\n            'ANY',\n            'AS',\n            'ASENSITIVE',\n            'ASSOCIATE',\n            'ASUTIME',\n            'AT',\n            'ATTRIBUTES',\n            'AUDIT',\n            'AUTHORIZATION',\n            'AUX',\n            'AUXILIARY',\n            'BEFORE',\n            'BEGIN',\n            'BETWEEN',\n            'BINARY',\n            'BUFFERPOOL',\n            'BY',\n            'CACHE',\n            'CALL',\n            'CALLED',\n            'CAPTURE',\n            'CARDINALITY',\n            'CASCADED',\n            'CASE',\n            'CAST',\n            'CCSID',\n            'CHAR',\n            'CHARACTER',\n            'CHECK',\n            'CLONE',\n            'CLOSE',\n            'CLUSTER',\n            'COLLECTION',\n            'COLLID',\n            'COLUMN',\n            'COMMENT',\n            'COMMIT',\n            'CONCAT',\n            'CONDITION',\n            'CONNECT',\n            'CONNECTION',\n            'CONSTRAINT',\n            'CONTAINS',\n            'CONTINUE',\n            'COUNT',\n            'COUNT_BIG',\n            'CREATE',\n            'CROSS',\n            'CURRENT',\n            'CURRENT_DATE',\n            'CURRENT_LC_CTYPE',\n            'CURRENT_PATH',\n            'CURRENT_SCHEMA',\n            'CURRENT_SERVER',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_TIMEZONE',\n            'CURRENT_USER',\n            'CURSOR',\n            'CYCLE',\n            'DATA',\n            'DATABASE',\n            'DATAPARTITIONNAME',\n            'DATAPARTITIONNUM',\n            'EDITPROC',\n            'ELSE',\n            'ELSEIF',\n            'ENABLE',\n            'ENCODING',\n            'ENCRYPTION',\n            'END',\n            'END-EXEC',\n            'ENDING',\n            'ERASE',\n            'ESCAPE',\n            'EVERY',\n            'EXCEPT',\n            'EXCEPTION',\n            'EXCLUDING',\n            'EXCLUSIVE',\n            'EXECUTE',\n            'EXISTS',\n            'EXIT',\n            'EXPLAIN',\n            'EXTERNAL',\n            'EXTRACT',\n            'FENCED',\n            'FETCH',\n            'FIELDPROC',\n            'FILE',\n            'FINAL',\n            'FOR',\n            'FOREIGN',\n            'FREE',\n            'FROM',\n            'FULL',\n            'FUNCTION',\n            'GENERAL',\n            'GENERATED',\n            'GET',\n            'GLOBAL',\n            'GO',\n            'GOTO',\n            'GRANT',\n            'GRAPHIC',\n            'GROUP',\n            'HANDLER',\n            'HASH',\n            'HASHED_VALUE',\n            'HAVING',\n            'HINT',\n            'HOLD',\n            'HOUR',\n            'HOURS',\n            'IDENTITY',\n            'IF',\n            'IMMEDIATE',\n            'IN',\n            'INCLUDING',\n            'INCLUSIVE',\n            'INCREMENT',\n            'INDEX',\n            'INDICATOR',\n            'INF',\n            'INFINITY',\n            'INHERIT',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INTEGRITY',\n            'MATERIALIZED',\n            'MAXVALUE',\n            'MICROSECOND',\n            'MICROSECONDS',\n            'MINUTE',\n            'MINUTES',\n            'MINVALUE',\n            'MODE',\n            'MODIFIES',\n            'MONTH',\n            'MONTHS',\n            'NAN',\n            'NEW',\n            'NEW_TABLE',\n            'NEXTVAL',\n            'NO',\n            'NOCACHE',\n            'NOCYCLE',\n            'NODENAME',\n            'NODENUMBER',\n            'NOMAXVALUE',\n            'NOMINVALUE',\n            'NONE',\n            'NOORDER',\n            'NORMALIZED',\n            'NOT',\n            'NULL',\n            'NULLS',\n            'NUMPARTS',\n            'OBID',\n            'OF',\n            'OLD',\n            'OLD_TABLE',\n            'ON',\n            'OPEN',\n            'OPTIMIZATION',\n            'OPTIMIZE',\n            'OPTION',\n            'OR',\n            'ORDER',\n            'OUT',\n            'OUTER',\n            'OVER',\n            'OVERRIDING',\n            'PACKAGE',\n            'PADDED',\n            'PAGESIZE',\n            'PARAMETER',\n            'PART',\n            'PARTITION',\n            'PARTITIONED',\n            'PARTITIONING',\n            'PARTITIONS',\n            'PASSWORD',\n            'PATH',\n            'PIECESIZE',\n            'PLAN',\n            'POSITION',\n            'PRECISION',\n            'PREPARE',\n            'PREVVAL',\n            'PRIMARY',\n            'PRIQTY',\n            'PRIVILEGES',\n            'PROCEDURE',\n            'PROGRAM',\n            'PSID',\n            'ROUND_UP',\n            'ROUTINE',\n            'ROW',\n            'ROW_NUMBER',\n            'ROWNUMBER',\n            'ROWS',\n            'ROWSET',\n            'RRN',\n            'RUN',\n            'SAVEPOINT',\n            'SCHEMA',\n            'SCRATCHPAD',\n            'SCROLL',\n            'SEARCH',\n            'SECOND',\n            'SECONDS',\n            'SECQTY',\n            'SECURITY',\n            'SELECT',\n            'SENSITIVE',\n            'SEQUENCE',\n            'SESSION',\n            'SESSION_USER',\n            'SET',\n            'SIGNAL',\n            'SIMPLE',\n            'SNAN',\n            'SOME',\n            'SOURCE',\n            'SPECIFIC',\n            'SQL',\n            'SQLID',\n            'STACKED',\n            'STANDARD',\n            'START',\n            'STARTING',\n            'STATEMENT',\n            'STATIC',\n            'STATMENT',\n            'STAY',\n            'STOGROUP',\n            'STORES',\n            'STYLE',\n            'SUBSTRING',\n            'SUMMARY',\n            'SYNONYM',\n            'SYSFUN',\n            'SYSIBM',\n            'SYSPROC',\n            'SYSTEM',\n            'SYSTEM_USER',\n            'TABLE',\n            'TABLESPACE',\n            'THEN',\n            'TIME',\n            'TIMESTAMP',\n            'TO',\n            'TRANSACTION',\n            'TRIGGER',\n            'TRIM',\n            'TRUNCATE',\n            'TYPE',\n            'UNDO',\n            'UNION',\n            'UNIQUE',\n            'UNTIL',\n            'UPDATE',\n            'DATE',\n            'DAY',\n            'DAYS',\n            'DB2GENERAL',\n            'DB2GENRL',\n            'DB2SQL',\n            'DBINFO',\n            'DBPARTITIONNAME',\n            'DBPARTITIONNUM',\n            'DEALLOCATE',\n            'DECLARE',\n            'DEFAULT',\n            'DEFAULTS',\n            'DEFINITION',\n            'DELETE',\n            'DENSE_RANK',\n            'DENSERANK',\n            'DESCRIBE',\n            'DESCRIPTOR',\n            'DETERMINISTIC',\n            'DIAGNOSTICS',\n            'DISABLE',\n            'DISALLOW',\n            'DISCONNECT',\n            'DISTINCT',\n            'DO',\n            'INTERSECT',\n            'PUBLIC',\n            'USAGE',\n            'INTO',\n            'QUERY',\n            'USER',\n            'IS',\n            'QUERYNO',\n            'USING',\n            'ISOBID',\n            'RANGE',\n            'VALIDPROC',\n            'ISOLATION',\n            'RANK',\n            'VALUE',\n            'ITERATE',\n            'READ',\n            'VALUES',\n            'JAR',\n            'READS',\n            'VARIABLE',\n            'JAVA',\n            'RECOVERY',\n            'VARIANT',\n            'JOIN',\n            'REFERENCES',\n            'VCAT',\n            'KEEP',\n            'REFERENCING',\n            'VERSION',\n            'KEY',\n            'REFRESH',\n            'VIEW',\n            'LABEL',\n            'RELEASE',\n            'VOLATILE',\n            'LANGUAGE',\n            'RENAME',\n            'VOLUMES',\n            'LATERAL',\n            'REPEAT',\n            'WHEN',\n            'LC_CTYPE',\n            'RESET',\n            'WHENEVER',\n            'LEAVE',\n            'RESIGNAL',\n            'WHERE',\n            'LEFT',\n            'RESTART',\n            'WHILE',\n            'LIKE',\n            'RESTRICT',\n            'WITH',\n            'LINKTYPE',\n            'RESULT',\n            'WITHOUT',\n            'LOCAL',\n            'RESULT_SET_LOCATOR WLM',\n            'LOCALDATE',\n            'RETURN',\n            'WRITE',\n            'LOCALE',\n            'RETURNS',\n            'XMLELEMENT',\n            'LOCALTIME',\n            'REVOKE',\n            'XMLEXISTS',\n            'LOCALTIMESTAMP RIGHT',\n            'XMLNAMESPACES',\n            'LOCATOR',\n            'ROLE',\n            'YEAR',\n            'LOCATORS',\n            'ROLLBACK',\n            'YEARS',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DrizzleKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * Drizzle Keywordlist.\n */\nclass DrizzleKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'drizzle';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ABS',\n            'ALL',\n            'ALLOCATE',\n            'ALTER',\n            'AND',\n            'ANY',\n            'ARE',\n            'ARRAY',\n            'AS',\n            'ASENSITIVE',\n            'ASYMMETRIC',\n            'AT',\n            'ATOMIC',\n            'AUTHORIZATION',\n            'AVG',\n            'BEGIN',\n            'BETWEEN',\n            'BIGINT',\n            'BINARY',\n            'BLOB',\n            'BOOLEAN',\n            'BOTH',\n            'BY',\n            'CALL',\n            'CALLED',\n            'CARDINALITY',\n            'CASCADED',\n            'CASE',\n            'CAST',\n            'CEIL',\n            'CEILING',\n            'CHAR',\n            'CHARACTER',\n            'CHARACTER_LENGTH',\n            'CHAR_LENGTH',\n            'CHECK',\n            'CLOB',\n            'CLOSE',\n            'COALESCE',\n            'COLLATE',\n            'COLLECT',\n            'COLUMN',\n            'COMMIT',\n            'CONDITION',\n            'CONNECT',\n            'CONSTRAINT',\n            'CONVERT',\n            'CORR',\n            'CORRESPONDING',\n            'COUNT',\n            'COVAR_POP',\n            'COVAR_SAMP',\n            'CREATE',\n            'CROSS',\n            'CUBE',\n            'CUME_DIST',\n            'CURRENT',\n            'CURRENT_DATE',\n            'CURRENT_DEFAULT_TRANSFORM_GROUP',\n            'CURRENT_PATH',\n            'CURRENT_ROLE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_TRANSFORM_GROUP_FOR_TYPE',\n            'CURRENT_USER',\n            'CURSOR',\n            'CYCLE',\n            'DATE',\n            'DAY',\n            'DEALLOCATE',\n            'DEC',\n            'DECIMAL',\n            'DECLARE',\n            'DEFAULT',\n            'DELETE',\n            'DENSE_RANK',\n            'DEREF',\n            'DESCRIBE',\n            'DETERMINISTIC',\n            'DISCONNECT',\n            'DISTINCT',\n            'DOUBLE',\n            'DROP',\n            'DYNAMIC',\n            'EACH',\n            'ELEMENT',\n            'ELSE',\n            'END',\n            'ESCAPE',\n            'EVERY',\n            'EXCEPT',\n            'EXEC',\n            'EXECUTE',\n            'EXISTS',\n            'EXP',\n            'EXTERNAL',\n            'EXTRACT',\n            'FALSE',\n            'FETCH',\n            'FILTER',\n            'FLOAT',\n            'FLOOR',\n            'FOR',\n            'FOREIGN',\n            'FREE',\n            'FROM',\n            'FULL',\n            'FUNCTION',\n            'FUSION',\n            'GET',\n            'GLOBAL',\n            'GRANT',\n            'GROUP',\n            'GROUPING',\n            'HAVING',\n            'HOLD',\n            'HOUR',\n            'IDENTITY',\n            'IN',\n            'INDICATOR',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INT',\n            'INTEGER',\n            'INTERSECT',\n            'INTERSECTION',\n            'INTERVAL',\n            'INTO',\n            'IS',\n            'JOIN',\n            'LANGUAGE',\n            'LARGE',\n            'LATERAL',\n            'LEADING',\n            'LEFT',\n            'LIKE',\n            'LN',\n            'LOCAL',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'LOWER',\n            'MATCH',\n            'MAX',\n            'MEMBER',\n            'MERGE',\n            'METHOD',\n            'MIN',\n            'MINUTE',\n            'MOD',\n            'MODIFIES',\n            'MODULE',\n            'MONTH',\n            'MULTISET',\n            'NATIONAL',\n            'NATURAL',\n            'NCHAR',\n            'NCLOB',\n            'NEW',\n            'NO',\n            'NONE',\n            'NORMALIZE',\n            'NOT',\n            'NULL_SYM',\n            'NULLIF',\n            'NUMERIC',\n            'OCTET_LENGTH',\n            'OF',\n            'OLD',\n            'ON',\n            'ONLY',\n            'OPEN',\n            'OR',\n            'ORDER',\n            'OUT',\n            'OUTER',\n            'OVER',\n            'OVERLAPS',\n            'OVERLAY',\n            'PARAMETER',\n            'PARTITION',\n            'PERCENTILE_CONT',\n            'PERCENTILE_DISC',\n            'PERCENT_RANK',\n            'POSITION',\n            'POWER',\n            'PRECISION',\n            'PREPARE',\n            'PRIMARY',\n            'PROCEDURE',\n            'RANGE',\n            'RANK',\n            'READS',\n            'REAL',\n            'RECURSIVE',\n            'REF',\n            'REFERENCES',\n            'REFERENCING',\n            'REGR_AVGX',\n            'REGR_AVGY',\n            'REGR_COUNT',\n            'REGR_INTERCEPT',\n            'REGR_R2',\n            'REGR_SLOPE',\n            'REGR_SXX',\n            'REGR_SXY',\n            'REGR_SYY',\n            'RELEASE',\n            'RESULT',\n            'RETURN',\n            'RETURNS',\n            'REVOKE',\n            'RIGHT',\n            'ROLLBACK',\n            'ROLLUP',\n            'ROW',\n            'ROWS',\n            'ROW_NUMBER',\n            'SAVEPOINT',\n            'SCOPE',\n            'SCROLL',\n            'SEARCH',\n            'SECOND',\n            'SELECT',\n            'SENSITIVE',\n            'SESSION_USER',\n            'SET',\n            'SIMILAR',\n            'SMALLINT',\n            'SOME',\n            'SPECIFIC',\n            'SPECIFICTYPE',\n            'SQL',\n            'SQLEXCEPTION',\n            'SQLSTATE',\n            'SQLWARNING',\n            'SQRT',\n            'START',\n            'STATIC',\n            'STDDEV_POP',\n            'STDDEV_SAMP',\n            'SUBMULTISET',\n            'SUBSTRING',\n            'SUM',\n            'SYMMETRIC',\n            'SYSTEM',\n            'SYSTEM_USER',\n            'TABLE',\n            'TABLESAMPLE',\n            'THEN',\n            'TIME',\n            'TIMESTAMP',\n            'TIMEZONE_HOUR',\n            'TIMEZONE_MINUTE',\n            'TO',\n            'TRAILING',\n            'TRANSLATE',\n            'TRANSLATION',\n            'TREAT',\n            'TRIGGER',\n            'TRIM',\n            'TRUE',\n            'UESCAPE',\n            'UNION',\n            'UNIQUE',\n            'UNKNOWN',\n            'UNNEST',\n            'UPDATE',\n            'UPPER',\n            'USER',\n            'USING',\n            'VALUE',\n            'VALUES',\n            'VARCHAR',\n            'VARYING',\n            'VAR_POP',\n            'VAR_SAMP',\n            'WHEN',\n            'WHENEVER',\n            'WHERE',\n            'WIDTH_BUCKET',\n            'WINDOW',\n            'WITH',\n            'WITHIN',\n            'WITHOUT',\n            'XML',\n            'XMLAGG',\n            'XMLATTRIBUTES',\n            'XMLBINARY',\n            'XMLCOMMENT',\n            'XMLCONCAT',\n            'XMLELEMENT',\n            'XMLFOREST',\n            'XMLNAMESPACES',\n            'XMLPARSE',\n            'XMLPI',\n            'XMLROOT',\n            'XMLSERIALIZE',\n            'YEAR',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_flip;\nuse function array_map;\nuse function strtoupper;\n\n/**\n * Abstract interface for a SQL reserved keyword dictionary.\n */\nabstract class KeywordList\n{\n    /** @var string[]|null */\n    private $keywords = null;\n\n    /**\n     * Checks if the given word is a keyword of this dialect/vendor platform.\n     *\n     * @param string $word\n     *\n     * @return bool\n     */\n    public function isKeyword($word)\n    {\n        if ($this->keywords === null) {\n            $this->initializeKeywords();\n        }\n\n        return isset($this->keywords[strtoupper($word)]);\n    }\n\n    /**\n     * @return void\n     */\n    protected function initializeKeywords()\n    {\n        $this->keywords = array_flip(array_map('strtoupper', $this->getKeywords()));\n    }\n\n    /**\n     * Returns the list of keywords.\n     *\n     * @return string[]\n     */\n    abstract protected function getKeywords();\n\n    /**\n     * Returns the name of this keyword list.\n     *\n     * @return string\n     */\n    abstract public function getName();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MariaDb102Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * MariaDb reserved keywords list.\n *\n * @link https://mariadb.com/kb/en/the-mariadb-library/reserved-words/\n */\nfinal class MariaDb102Keywords extends MySQLKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName() : string\n    {\n        return 'MariaDb102';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords() : array\n    {\n        return [\n            'ACCESSIBLE',\n            'ADD',\n            'ALL',\n            'ALTER',\n            'ANALYZE',\n            'AND',\n            'AS',\n            'ASC',\n            'ASENSITIVE',\n            'BEFORE',\n            'BETWEEN',\n            'BIGINT',\n            'BINARY',\n            'BLOB',\n            'BOTH',\n            'BY',\n            'CALL',\n            'CASCADE',\n            'CASE',\n            'CHANGE',\n            'CHAR',\n            'CHARACTER',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'CONDITION',\n            'CONSTRAINT',\n            'CONTINUE',\n            'CONVERT',\n            'CREATE',\n            'CROSS',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'CURSOR',\n            'DATABASE',\n            'DATABASES',\n            'DAY_HOUR',\n            'DAY_MICROSECOND',\n            'DAY_MINUTE',\n            'DAY_SECOND',\n            'DEC',\n            'DECIMAL',\n            'DECLARE',\n            'DEFAULT',\n            'DELAYED',\n            'DELETE',\n            'DESC',\n            'DESCRIBE',\n            'DETERMINISTIC',\n            'DISTINCT',\n            'DISTINCTROW',\n            'DIV',\n            'DOUBLE',\n            'DROP',\n            'DUAL',\n            'EACH',\n            'ELSE',\n            'ELSEIF',\n            'ENCLOSED',\n            'ESCAPED',\n            'EXCEPT',\n            'EXISTS',\n            'EXIT',\n            'EXPLAIN',\n            'FALSE',\n            'FETCH',\n            'FLOAT',\n            'FLOAT4',\n            'FLOAT8',\n            'FOR',\n            'FORCE',\n            'FOREIGN',\n            'FROM',\n            'FULLTEXT',\n            'GENERATED',\n            'GET',\n            'GENERAL',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'HIGH_PRIORITY',\n            'HOUR_MICROSECOND',\n            'HOUR_MINUTE',\n            'HOUR_SECOND',\n            'IF',\n            'IGNORE',\n            'IGNORE_SERVER_IDS',\n            'IN',\n            'INDEX',\n            'INFILE',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INT',\n            'INT1',\n            'INT2',\n            'INT3',\n            'INT4',\n            'INT8',\n            'INTEGER',\n            'INTERSECT',\n            'INTERVAL',\n            'INTO',\n            'IO_AFTER_GTIDS',\n            'IO_BEFORE_GTIDS',\n            'IS',\n            'ITERATE',\n            'JOIN',\n            'KEY',\n            'KEYS',\n            'KILL',\n            'LEADING',\n            'LEAVE',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'LINEAR',\n            'LINES',\n            'LOAD',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'LOCK',\n            'LONG',\n            'LONGBLOB',\n            'LONGTEXT',\n            'LOOP',\n            'LOW_PRIORITY',\n            'MASTER_BIND',\n            'MASTER_HEARTBEAT_PERIOD',\n            'MASTER_SSL_VERIFY_SERVER_CERT',\n            'MATCH',\n            'MAXVALUE',\n            'MEDIUMBLOB',\n            'MEDIUMINT',\n            'MEDIUMTEXT',\n            'MIDDLEINT',\n            'MINUTE_MICROSECOND',\n            'MINUTE_SECOND',\n            'MOD',\n            'MODIFIES',\n            'NATURAL',\n            'NO_WRITE_TO_BINLOG',\n            'NOT',\n            'NULL',\n            'NUMERIC',\n            'ON',\n            'OPTIMIZE',\n            'OPTIMIZER_COSTS',\n            'OPTION',\n            'OPTIONALLY',\n            'OR',\n            'ORDER',\n            'OUT',\n            'OUTER',\n            'OUTFILE',\n            'OVER',\n            'PARTITION',\n            'PRECISION',\n            'PRIMARY',\n            'PROCEDURE',\n            'PURGE',\n            'RANGE',\n            'READ',\n            'READ_WRITE',\n            'READS',\n            'REAL',\n            'RECURSIVE',\n            'REFERENCES',\n            'REGEXP',\n            'RELEASE',\n            'RENAME',\n            'REPEAT',\n            'REPLACE',\n            'REQUIRE',\n            'RESIGNAL',\n            'RESTRICT',\n            'RETURN',\n            'RETURNING',\n            'REVOKE',\n            'RIGHT',\n            'RLIKE',\n            'ROWS',\n            'SCHEMA',\n            'SCHEMAS',\n            'SECOND_MICROSECOND',\n            'SELECT',\n            'SENSITIVE',\n            'SEPARATOR',\n            'SET',\n            'SHOW',\n            'SIGNAL',\n            'SLOW',\n            'SMALLINT',\n            'SPATIAL',\n            'SPECIFIC',\n            'SQL',\n            'SQL_BIG_RESULT',\n            'SQL_CALC_FOUND_ROWS',\n            'SQL_SMALL_RESULT',\n            'SQLEXCEPTION',\n            'SQLSTATE',\n            'SQLWARNING',\n            'SSL',\n            'STARTING',\n            'STORED',\n            'STRAIGHT_JOIN',\n            'TABLE',\n            'TERMINATED',\n            'THEN',\n            'TINYBLOB',\n            'TINYINT',\n            'TINYTEXT',\n            'TO',\n            'TRAILING',\n            'TRIGGER',\n            'TRUE',\n            'UNDO',\n            'UNION',\n            'UNIQUE',\n            'UNLOCK',\n            'UNSIGNED',\n            'UPDATE',\n            'USAGE',\n            'USE',\n            'USING',\n            'UTC_DATE',\n            'UTC_TIME',\n            'UTC_TIMESTAMP',\n            'VALUES',\n            'VARBINARY',\n            'VARCHAR',\n            'VARCHARACTER',\n            'VARYING',\n            'VIRTUAL',\n            'WHEN',\n            'WHERE',\n            'WHILE',\n            'WINDOW',\n            'WITH',\n            'WRITE',\n            'XOR',\n            'YEAR_MONTH',\n            'ZEROFILL',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MsSQLKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * MsSQL Keywordlist\n *\n * @deprecated Use SQLServerKeywords class instead.\n *\n * @link       www.doctrine-project.com\n */\nclass MsSQLKeywords extends SQLServerKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'MsSQL';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL57Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * MySQL 5.7 reserved keywords list.\n */\nclass MySQL57Keywords extends MySQLKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'MySQL57';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-7.html\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ACCESSIBLE',\n            'ADD',\n            'ALL',\n            'ALTER',\n            'ANALYZE',\n            'AND',\n            'AS',\n            'ASC',\n            'ASENSITIVE',\n            'BEFORE',\n            'BETWEEN',\n            'BIGINT',\n            'BINARY',\n            'BLOB',\n            'BOTH',\n            'BY',\n            'CALL',\n            'CASCADE',\n            'CASE',\n            'CHANGE',\n            'CHAR',\n            'CHARACTER',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'CONDITION',\n            'CONSTRAINT',\n            'CONTINUE',\n            'CONVERT',\n            'CREATE',\n            'CROSS',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'CURSOR',\n            'DATABASE',\n            'DATABASES',\n            'DAY_HOUR',\n            'DAY_MICROSECOND',\n            'DAY_MINUTE',\n            'DAY_SECOND',\n            'DEC',\n            'DECIMAL',\n            'DECLARE',\n            'DEFAULT',\n            'DELAYED',\n            'DELETE',\n            'DESC',\n            'DESCRIBE',\n            'DETERMINISTIC',\n            'DISTINCT',\n            'DISTINCTROW',\n            'DIV',\n            'DOUBLE',\n            'DROP',\n            'DUAL',\n            'EACH',\n            'ELSE',\n            'ELSEIF',\n            'ENCLOSED',\n            'ESCAPED',\n            'EXISTS',\n            'EXIT',\n            'EXPLAIN',\n            'FALSE',\n            'FETCH',\n            'FLOAT',\n            'FLOAT4',\n            'FLOAT8',\n            'FOR',\n            'FORCE',\n            'FOREIGN',\n            'FROM',\n            'FULLTEXT',\n            'GENERATED',\n            'GET',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'HIGH_PRIORITY',\n            'HOUR_MICROSECOND',\n            'HOUR_MINUTE',\n            'HOUR_SECOND',\n            'IF',\n            'IGNORE',\n            'IN',\n            'INDEX',\n            'INFILE',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INT',\n            'INT1',\n            'INT2',\n            'INT3',\n            'INT4',\n            'INT8',\n            'INTEGER',\n            'INTERVAL',\n            'INTO',\n            'IO_AFTER_GTIDS',\n            'IO_BEFORE_GTIDS',\n            'IS',\n            'ITERATE',\n            'JOIN',\n            'KEY',\n            'KEYS',\n            'KILL',\n            'LEADING',\n            'LEAVE',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'LINEAR',\n            'LINES',\n            'LOAD',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'LOCK',\n            'LONG',\n            'LONGBLOB',\n            'LONGTEXT',\n            'LOOP',\n            'LOW_PRIORITY',\n            'MASTER_BIND',\n            'MASTER_SSL_VERIFY_SERVER_CERT',\n            'MATCH',\n            'MAXVALUE',\n            'MEDIUMBLOB',\n            'MEDIUMINT',\n            'MEDIUMTEXT',\n            'MIDDLEINT',\n            'MINUTE_MICROSECOND',\n            'MINUTE_SECOND',\n            'MOD',\n            'MODIFIES',\n            'NATURAL',\n            'NO_WRITE_TO_BINLOG',\n            'NOT',\n            'NULL',\n            'NUMERIC',\n            'ON',\n            'OPTIMIZE',\n            'OPTIMIZER_COSTS',\n            'OPTION',\n            'OPTIONALLY',\n            'OR',\n            'ORDER',\n            'OUT',\n            'OUTER',\n            'OUTFILE',\n            'PARTITION',\n            'PRECISION',\n            'PRIMARY',\n            'PROCEDURE',\n            'PURGE',\n            'RANGE',\n            'READ',\n            'READ_WRITE',\n            'READS',\n            'REAL',\n            'REFERENCES',\n            'REGEXP',\n            'RELEASE',\n            'RENAME',\n            'REPEAT',\n            'REPLACE',\n            'REQUIRE',\n            'RESIGNAL',\n            'RESTRICT',\n            'RETURN',\n            'REVOKE',\n            'RIGHT',\n            'RLIKE',\n            'SCHEMA',\n            'SCHEMAS',\n            'SECOND_MICROSECOND',\n            'SELECT',\n            'SENSITIVE',\n            'SEPARATOR',\n            'SET',\n            'SHOW',\n            'SIGNAL',\n            'SMALLINT',\n            'SPATIAL',\n            'SPECIFIC',\n            'SQL',\n            'SQL_BIG_RESULT',\n            'SQL_CALC_FOUND_ROWS',\n            'SQL_SMALL_RESULT',\n            'SQLEXCEPTION',\n            'SQLSTATE',\n            'SQLWARNING',\n            'SSL',\n            'STARTING',\n            'STORED',\n            'STRAIGHT_JOIN',\n            'TABLE',\n            'TERMINATED',\n            'THEN',\n            'TINYBLOB',\n            'TINYINT',\n            'TINYTEXT',\n            'TO',\n            'TRAILING',\n            'TRIGGER',\n            'TRUE',\n            'UNDO',\n            'UNION',\n            'UNIQUE',\n            'UNLOCK',\n            'UNSIGNED',\n            'UPDATE',\n            'USAGE',\n            'USE',\n            'USING',\n            'UTC_DATE',\n            'UTC_TIME',\n            'UTC_TIMESTAMP',\n            'VALUES',\n            'VARBINARY',\n            'VARCHAR',\n            'VARCHARACTER',\n            'VARYING',\n            'VIRTUAL',\n            'WHEN',\n            'WHERE',\n            'WHILE',\n            'WITH',\n            'WRITE',\n            'XOR',\n            'YEAR_MONTH',\n            'ZEROFILL',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL80Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_merge;\n\n/**\n * MySQL 8.0 reserved keywords list.\n */\nclass MySQL80Keywords extends MySQL57Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'MySQL80';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link https://dev.mysql.com/doc/refman/8.0/en/keywords.html\n     */\n    protected function getKeywords()\n    {\n        $keywords = parent::getKeywords();\n\n        $keywords = array_merge($keywords, [\n            'ADMIN',\n            'CUBE',\n            'CUME_DIST',\n            'DENSE_RANK',\n            'EMPTY',\n            'EXCEPT',\n            'FIRST_VALUE',\n            'FUNCTION',\n            'GROUPING',\n            'GROUPS',\n            'JSON_TABLE',\n            'LAG',\n            'LAST_VALUE',\n            'LEAD',\n            'NTH_VALUE',\n            'NTILE',\n            'OF',\n            'OVER',\n            'PERCENT_RANK',\n            'PERSIST',\n            'PERSIST_ONLY',\n            'RANK',\n            'RECURSIVE',\n            'ROW',\n            'ROWS',\n            'ROW_NUMBER',\n            'SYSTEM',\n            'WINDOW',\n        ]);\n\n        return $keywords;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * MySQL Keywordlist.\n */\nclass MySQLKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'MySQL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ACCESSIBLE',\n            'ADD',\n            'ALL',\n            'ALTER',\n            'ANALYZE',\n            'AND',\n            'AS',\n            'ASC',\n            'ASENSITIVE',\n            'BEFORE',\n            'BETWEEN',\n            'BIGINT',\n            'BINARY',\n            'BLOB',\n            'BOTH',\n            'BY',\n            'CALL',\n            'CASCADE',\n            'CASE',\n            'CHANGE',\n            'CHAR',\n            'CHARACTER',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'CONDITION',\n            'CONNECTION',\n            'CONSTRAINT',\n            'CONTINUE',\n            'CONVERT',\n            'CREATE',\n            'CROSS',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'CURSOR',\n            'DATABASE',\n            'DATABASES',\n            'DAY_HOUR',\n            'DAY_MICROSECOND',\n            'DAY_MINUTE',\n            'DAY_SECOND',\n            'DEC',\n            'DECIMAL',\n            'DECLARE',\n            'DEFAULT',\n            'DELAYED',\n            'DELETE',\n            'DESC',\n            'DESCRIBE',\n            'DETERMINISTIC',\n            'DISTINCT',\n            'DISTINCTROW',\n            'DIV',\n            'DOUBLE',\n            'DROP',\n            'DUAL',\n            'EACH',\n            'ELSE',\n            'ELSEIF',\n            'ENCLOSED',\n            'ESCAPED',\n            'EXISTS',\n            'EXIT',\n            'EXPLAIN',\n            'FALSE',\n            'FETCH',\n            'FLOAT',\n            'FLOAT4',\n            'FLOAT8',\n            'FOR',\n            'FORCE',\n            'FOREIGN',\n            'FROM',\n            'FULLTEXT',\n            'GENERAL',\n            'GOTO',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'HIGH_PRIORITY',\n            'HOUR_MICROSECOND',\n            'HOUR_MINUTE',\n            'HOUR_SECOND',\n            'IF',\n            'IGNORE',\n            'IGNORE_SERVER_IDS',\n            'IN',\n            'INDEX',\n            'INFILE',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INT',\n            'INT1',\n            'INT2',\n            'INT3',\n            'INT4',\n            'INT8',\n            'INTEGER',\n            'INTERVAL',\n            'INTO',\n            'IS',\n            'ITERATE',\n            'JOIN',\n            'KEY',\n            'KEYS',\n            'KILL',\n            'LABEL',\n            'LEADING',\n            'LEAVE',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'LINEAR',\n            'LINES',\n            'LOAD',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'LOCK',\n            'LONG',\n            'LONGBLOB',\n            'LONGTEXT',\n            'LOOP',\n            'LOW_PRIORITY',\n            'MASTER_HEARTBEAT_PERIOD',\n            'MASTER_SSL_VERIFY_SERVER_CERT',\n            'MATCH',\n            'MAXVALUE',\n            'MEDIUMBLOB',\n            'MEDIUMINT',\n            'MEDIUMTEXT',\n            'MIDDLEINT',\n            'MINUTE_MICROSECOND',\n            'MINUTE_SECOND',\n            'MOD',\n            'MODIFIES',\n            'NATURAL',\n            'NO_WRITE_TO_BINLOG',\n            'NOT',\n            'NULL',\n            'NUMERIC',\n            'ON',\n            'OPTIMIZE',\n            'OPTION',\n            'OPTIONALLY',\n            'OR',\n            'ORDER',\n            'OUT',\n            'OUTER',\n            'OUTFILE',\n            'PARTITION',\n            'PRECISION',\n            'PRIMARY',\n            'PROCEDURE',\n            'PURGE',\n            'RAID0',\n            'RANGE',\n            'READ',\n            'READ_WRITE',\n            'READS',\n            'REAL',\n            'RECURSIVE',\n            'REFERENCES',\n            'REGEXP',\n            'RELEASE',\n            'RENAME',\n            'REPEAT',\n            'REPLACE',\n            'REQUIRE',\n            'RESIGNAL',\n            'RESTRICT',\n            'RETURN',\n            'REVOKE',\n            'RIGHT',\n            'RLIKE',\n            'ROWS',\n            'SCHEMA',\n            'SCHEMAS',\n            'SECOND_MICROSECOND',\n            'SELECT',\n            'SENSITIVE',\n            'SEPARATOR',\n            'SET',\n            'SHOW',\n            'SIGNAL',\n            'SLOW',\n            'SMALLINT',\n            'SONAME',\n            'SPATIAL',\n            'SPECIFIC',\n            'SQL',\n            'SQL_BIG_RESULT',\n            'SQL_CALC_FOUND_ROWS',\n            'SQL_SMALL_RESULT',\n            'SQLEXCEPTION',\n            'SQLSTATE',\n            'SQLWARNING',\n            'SSL',\n            'STARTING',\n            'STRAIGHT_JOIN',\n            'TABLE',\n            'TERMINATED',\n            'THEN',\n            'TINYBLOB',\n            'TINYINT',\n            'TINYTEXT',\n            'TO',\n            'TRAILING',\n            'TRIGGER',\n            'TRUE',\n            'UNDO',\n            'UNION',\n            'UNIQUE',\n            'UNLOCK',\n            'UNSIGNED',\n            'UPDATE',\n            'USAGE',\n            'USE',\n            'USING',\n            'UTC_DATE',\n            'UTC_TIME',\n            'UTC_TIMESTAMP',\n            'VALUES',\n            'VARBINARY',\n            'VARCHAR',\n            'VARCHARACTER',\n            'VARYING',\n            'WHEN',\n            'WHERE',\n            'WHILE',\n            'WITH',\n            'WRITE',\n            'X509',\n            'XOR',\n            'YEAR_MONTH',\n            'ZEROFILL',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/OracleKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * Oracle Keywordlist.\n */\nclass OracleKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'Oracle';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ACCESS',\n            'ELSE',\n            'MODIFY',\n            'START',\n            'ADD',\n            'EXCLUSIVE',\n            'NOAUDIT',\n            'SELECT',\n            'ALL',\n            'EXISTS',\n            'NOCOMPRESS',\n            'SESSION',\n            'ALTER',\n            'FILE',\n            'NOT',\n            'SET',\n            'AND',\n            'FLOAT',\n            'NOTFOUND ',\n            'SHARE',\n            'ANY',\n            'FOR',\n            'NOWAIT',\n            'SIZE',\n            'ARRAYLEN',\n            'FROM',\n            'NULL',\n            'SMALLINT',\n            'AS',\n            'GRANT',\n            'NUMBER',\n            'SQLBUF',\n            'ASC',\n            'GROUP',\n            'OF',\n            'SUCCESSFUL',\n            'AUDIT',\n            'HAVING',\n            'OFFLINE ',\n            'SYNONYM',\n            'BETWEEN',\n            'IDENTIFIED',\n            'ON',\n            'SYSDATE',\n            'BY',\n            'IMMEDIATE',\n            'ONLINE',\n            'TABLE',\n            'CHAR',\n            'IN',\n            'OPTION',\n            'THEN',\n            'CHECK',\n            'INCREMENT',\n            'OR',\n            'TO',\n            'CLUSTER',\n            'INDEX',\n            'ORDER',\n            'TRIGGER',\n            'COLUMN',\n            'INITIAL',\n            'PCTFREE',\n            'UID',\n            'COMMENT',\n            'INSERT',\n            'PRIOR',\n            'UNION',\n            'COMPRESS',\n            'INTEGER',\n            'PRIVILEGES',\n            'UNIQUE',\n            'CONNECT',\n            'INTERSECT',\n            'PUBLIC',\n            'UPDATE',\n            'CREATE',\n            'INTO',\n            'RAW',\n            'USER',\n            'CURRENT',\n            'IS',\n            'RENAME',\n            'VALIDATE',\n            'DATE',\n            'LEVEL',\n            'RESOURCE',\n            'VALUES',\n            'DECIMAL',\n            'LIKE',\n            'REVOKE',\n            'VARCHAR',\n            'DEFAULT',\n            'LOCK',\n            'ROW',\n            'VARCHAR2',\n            'DELETE',\n            'LONG',\n            'ROWID',\n            'VIEW',\n            'DESC',\n            'MAXEXTENTS',\n            'ROWLABEL',\n            'WHENEVER',\n            'DISTINCT',\n            'MINUS',\n            'ROWNUM',\n            'WHERE',\n            'DROP',\n            'MODE',\n            'ROWS',\n            'WITH',\n            'RANGE',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL100Keywords.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * PostgreSQL 10.0 reserved keywords list.\n */\nclass PostgreSQL100Keywords extends PostgreSQL94Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName() : string\n    {\n        return 'PostgreSQL100';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL91Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * PostgreSQL 9.1 reserved keywords list.\n */\nclass PostgreSQL91Keywords extends PostgreSQLKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'PostgreSQL91';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://www.postgresql.org/docs/9.1/static/sql-keywords-appendix.html\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ALL',\n            'ANALYSE',\n            'ANALYZE',\n            'AND',\n            'ANY',\n            'ARRAY',\n            'AS',\n            'ASC',\n            'ASYMMETRIC',\n            'AUTHORIZATION',\n            'BINARY',\n            'BOTH',\n            'CASE',\n            'CAST',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'CONCURRENTLY',\n            'CONSTRAINT',\n            'CREATE',\n            'CROSS',\n            'CURRENT_CATALOG',\n            'CURRENT_DATE',\n            'CURRENT_ROLE',\n            'CURRENT_SCHEMA',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'DEFAULT',\n            'DEFERRABLE',\n            'DESC',\n            'DISTINCT',\n            'DO',\n            'ELSE',\n            'END',\n            'EXCEPT',\n            'FALSE',\n            'FETCH',\n            'FOR',\n            'FOREIGN',\n            'FREEZE',\n            'FROM',\n            'FULL',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'ILIKE',\n            'IN',\n            'INITIALLY',\n            'INNER',\n            'INTERSECT',\n            'INTO',\n            'IS',\n            'ISNULL',\n            'JOIN',\n            'LEADING',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'NATURAL',\n            'NOT',\n            'NOTNULL',\n            'NULL',\n            'OFFSET',\n            'ON',\n            'ONLY',\n            'OR',\n            'ORDER',\n            'OUTER',\n            'OVER',\n            'OVERLAPS',\n            'PLACING',\n            'PRIMARY',\n            'REFERENCES',\n            'RETURNING',\n            'RIGHT',\n            'SELECT',\n            'SESSION_USER',\n            'SIMILAR',\n            'SOME',\n            'SYMMETRIC',\n            'TABLE',\n            'THEN',\n            'TO',\n            'TRAILING',\n            'TRUE',\n            'UNION',\n            'UNIQUE',\n            'USER',\n            'USING',\n            'VARIADIC',\n            'VERBOSE',\n            'WHEN',\n            'WHERE',\n            'WINDOW',\n            'WITH',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL92Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_merge;\n\n/**\n * PostgreSQL 9.2 reserved keywords list.\n */\nclass PostgreSQL92Keywords extends PostgreSQL91Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'PostgreSQL92';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://www.postgresql.org/docs/9.2/static/sql-keywords-appendix.html\n     */\n    protected function getKeywords()\n    {\n        return array_merge(parent::getKeywords(), ['COLLATION']);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL94Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_diff;\nuse function array_merge;\n\n/**\n * PostgreSQL 9.4 reserved keywords list.\n */\nclass PostgreSQL94Keywords extends PostgreSQL92Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'PostgreSQL94';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://www.postgresql.org/docs/9.4/static/sql-keywords-appendix.html\n     */\n    protected function getKeywords()\n    {\n        $parentKeywords = array_diff(parent::getKeywords(), ['OVER']);\n\n        return array_merge($parentKeywords, ['LATERAL']);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQLKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * PostgreSQL Keywordlist.\n */\nclass PostgreSQLKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'PostgreSQL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ALL',\n            'ANALYSE',\n            'ANALYZE',\n            'AND',\n            'ANY',\n            'AS',\n            'ASC',\n            'AUTHORIZATION',\n            'BETWEEN',\n            'BINARY',\n            'BOTH',\n            'CASE',\n            'CAST',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'CONSTRAINT',\n            'CREATE',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'DEFAULT',\n            'DEFERRABLE',\n            'DESC',\n            'DISTINCT',\n            'DO',\n            'ELSE',\n            'END',\n            'EXCEPT',\n            'FALSE',\n            'FOR',\n            'FOREIGN',\n            'FREEZE',\n            'FROM',\n            'FULL',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'ILIKE',\n            'IN',\n            'INITIALLY',\n            'INNER',\n            'INTERSECT',\n            'INTO',\n            'IS',\n            'ISNULL',\n            'JOIN',\n            'LEADING',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'LOCALTIME',\n            'LOCALTIMESTAMP',\n            'NATURAL',\n            'NEW',\n            'NOT',\n            'NOTNULL',\n            'NULL',\n            'OFF',\n            'OFFSET',\n            'OLD',\n            'ON',\n            'ONLY',\n            'OR',\n            'ORDER',\n            'OUTER',\n            'OVERLAPS',\n            'PLACING',\n            'PRIMARY',\n            'REFERENCES',\n            'SELECT',\n            'SESSION_USER',\n            'SIMILAR',\n            'SOME',\n            'TABLE',\n            'THEN',\n            'TO',\n            'TRAILING',\n            'TRUE',\n            'UNION',\n            'UNIQUE',\n            'USER',\n            'USING',\n            'VERBOSE',\n            'WHEN',\n            'WHERE',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/ReservedKeywordsValidator.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\nuse function implode;\nuse function str_replace;\n\nclass ReservedKeywordsValidator implements Visitor\n{\n    /** @var KeywordList[] */\n    private $keywordLists = [];\n\n    /** @var string[] */\n    private $violations = [];\n\n    /**\n     * @param KeywordList[] $keywordLists\n     */\n    public function __construct(array $keywordLists)\n    {\n        $this->keywordLists = $keywordLists;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getViolations()\n    {\n        return $this->violations;\n    }\n\n    /**\n     * @param string $word\n     *\n     * @return string[]\n     */\n    private function isReservedWord($word)\n    {\n        if ($word[0] === '`') {\n            $word = str_replace('`', '', $word);\n        }\n\n        $keywordLists = [];\n        foreach ($this->keywordLists as $keywordList) {\n            if (! $keywordList->isKeyword($word)) {\n                continue;\n            }\n\n            $keywordLists[] = $keywordList->getName();\n        }\n\n        return $keywordLists;\n    }\n\n    /**\n     * @param string   $asset\n     * @param string[] $violatedPlatforms\n     *\n     * @return void\n     */\n    private function addViolation($asset, $violatedPlatforms)\n    {\n        if (! $violatedPlatforms) {\n            return;\n        }\n\n        $this->violations[] = $asset . ' keyword violations: ' . implode(', ', $violatedPlatforms);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptColumn(Table $table, Column $column)\n    {\n        $this->addViolation(\n            'Table ' . $table->getName() . ' column ' . $column->getName(),\n            $this->isReservedWord($column->getName())\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptIndex(Table $table, Index $index)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSchema(Schema $schema)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        $this->addViolation(\n            'Table ' . $table->getName(),\n            $this->isReservedWord($table->getName())\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere11Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_diff;\nuse function array_merge;\n\n/**\n * SAP Sybase SQL Anywhere 11 reserved keywords list.\n */\nclass SQLAnywhere11Keywords extends SQLAnywhereKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLAnywhere11';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dcx.sybase.com/1100/en/dbreference_en11/alhakeywords.html\n     */\n    protected function getKeywords()\n    {\n        return array_merge(\n            array_diff(\n                parent::getKeywords(),\n                ['IQ']\n            ),\n            [\n                'MERGE',\n                'OPENSTRING',\n            ]\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere12Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_diff;\nuse function array_merge;\n\n/**\n * SAP Sybase SQL Anywhere 12 reserved keywords list.\n */\nclass SQLAnywhere12Keywords extends SQLAnywhere11Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLAnywhere12';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dcx.sybase.com/1200/en/dbreference/alhakeywords.html\n     */\n    protected function getKeywords()\n    {\n        return array_merge(\n            array_diff(\n                parent::getKeywords(),\n                [\n                    'INDEX_LPAREN',\n                    'SYNTAX_ERROR',\n                    'WITH_CUBE',\n                    'WITH_LPAREN',\n                    'WITH_ROLLUP',\n                ]\n            ),\n            [\n                'DATETIMEOFFSET',\n                'LIMIT',\n                'OPENXML',\n                'SPATIAL',\n                'TREAT',\n            ]\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere16Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_merge;\n\n/**\n * SAP Sybase SQL Anywhere 16 reserved keywords list.\n */\nclass SQLAnywhere16Keywords extends SQLAnywhere12Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLAnywhere16';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://dcx.sybase.com/index.html#sa160/en/dbreference/alhakeywords.html\n     */\n    protected function getKeywords()\n    {\n        return array_merge(\n            parent::getKeywords(),\n            [\n                'ARRAY',\n                'JSON',\n                'ROW',\n                'ROWTYPE',\n                'UNNEST',\n                'VARRAY',\n            ]\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhereKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * SAP Sybase SQL Anywhere 10 reserved keywords list.\n */\nclass SQLAnywhereKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLAnywhere';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://infocenter.sybase.com/help/topic/com.sybase.dbrfen10/pdf/dbrfen10.pdf?noframes=true\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ADD',\n            'ALL',\n            'ALTER',\n            'AND',\n            'ANY',\n            'AS',\n            'ASC',\n            'ATTACH',\n            'BACKUP',\n            'BEGIN',\n            'BETWEEN',\n            'BIGINT',\n            'BINARY',\n            'BIT',\n            'BOTTOM',\n            'BREAK',\n            'BY',\n            'CALL',\n            'CAPABILITY',\n            'CASCADE',\n            'CASE',\n            'CAST',\n            'CHAR',\n            'CHAR_CONVERT',\n            'CHARACTER',\n            'CHECK',\n            'CHECKPOINT',\n            'CLOSE',\n            'COMMENT',\n            'COMMIT',\n            'COMPRESSED',\n            'CONFLICT',\n            'CONNECT',\n            'CONSTRAINT',\n            'CONTAINS',\n            'CONTINUE',\n            'CONVERT',\n            'CREATE',\n            'CROSS',\n            'CUBE',\n            'CURRENT',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'CURSOR',\n            'DATE',\n            'DBSPACE',\n            'DEALLOCATE',\n            'DEC',\n            'DECIMAL',\n            'DECLARE',\n            'DEFAULT',\n            'DELETE',\n            'DELETING',\n            'DESC',\n            'DETACH',\n            'DISTINCT',\n            'DO',\n            'DOUBLE',\n            'DROP',\n            'DYNAMIC',\n            'ELSE',\n            'ELSEIF',\n            'ENCRYPTED',\n            'END',\n            'ENDIF',\n            'ESCAPE',\n            'EXCEPT',\n            'EXCEPTION',\n            'EXEC',\n            'EXECUTE',\n            'EXISTING',\n            'EXISTS',\n            'EXTERNLOGIN',\n            'FETCH',\n            'FIRST',\n            'FLOAT',\n            'FOR',\n            'FORCE',\n            'FOREIGN',\n            'FORWARD',\n            'FROM',\n            'FULL',\n            'GOTO',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'HOLDLOCK',\n            'IDENTIFIED',\n            'IF',\n            'IN',\n            'INDEX',\n            'INDEX_LPAREN',\n            'INNER',\n            'INOUT',\n            'INSENSITIVE',\n            'INSERT',\n            'INSERTING',\n            'INSTALL',\n            'INSTEAD',\n            'INT',\n            'INTEGER',\n            'INTEGRATED',\n            'INTERSECT',\n            'INTO',\n            'IQ',\n            'IS',\n            'ISOLATION',\n            'JOIN',\n            'KERBEROS',\n            'KEY',\n            'LATERAL',\n            'LEFT',\n            'LIKE',\n            'LOCK',\n            'LOGIN',\n            'LONG',\n            'MATCH',\n            'MEMBERSHIP',\n            'MESSAGE',\n            'MODE',\n            'MODIFY',\n            'NATURAL',\n            'NCHAR',\n            'NEW',\n            'NO',\n            'NOHOLDLOCK',\n            'NOT',\n            'NOTIFY',\n            'NULL',\n            'NUMERIC',\n            'NVARCHAR',\n            'OF',\n            'OFF',\n            'ON',\n            'OPEN',\n            'OPTION',\n            'OPTIONS',\n            'OR',\n            'ORDER',\n            'OTHERS',\n            'OUT',\n            'OUTER',\n            'OVER',\n            'PASSTHROUGH',\n            'PRECISION',\n            'PREPARE',\n            'PRIMARY',\n            'PRINT',\n            'PRIVILEGES',\n            'PROC',\n            'PROCEDURE',\n            'PUBLICATION',\n            'RAISERROR',\n            'READTEXT',\n            'REAL',\n            'REFERENCE',\n            'REFERENCES',\n            'REFRESH',\n            'RELEASE',\n            'REMOTE',\n            'REMOVE',\n            'RENAME',\n            'REORGANIZE',\n            'RESOURCE',\n            'RESTORE',\n            'RESTRICT',\n            'RETURN',\n            'REVOKE',\n            'RIGHT',\n            'ROLLBACK',\n            'ROLLUP',\n            'SAVE',\n            'SAVEPOINT',\n            'SCROLL',\n            'SELECT',\n            'SENSITIVE',\n            'SESSION',\n            'SET',\n            'SETUSER',\n            'SHARE',\n            'SMALLINT',\n            'SOME',\n            'SQLCODE',\n            'SQLSTATE',\n            'START',\n            'STOP',\n            'SUBTRANS',\n            'SUBTRANSACTION',\n            'SYNCHRONIZE',\n            'SYNTAX_ERROR',\n            'TABLE',\n            'TEMPORARY',\n            'THEN',\n            'TIME',\n            'TIMESTAMP',\n            'TINYINT',\n            'TO',\n            'TOP',\n            'TRAN',\n            'TRIGGER',\n            'TRUNCATE',\n            'TSEQUAL',\n            'UNBOUNDED',\n            'UNION',\n            'UNIQUE',\n            'UNIQUEIDENTIFIER',\n            'UNKNOWN',\n            'UNSIGNED',\n            'UPDATE',\n            'UPDATING',\n            'USER',\n            'USING',\n            'VALIDATE',\n            'VALUES',\n            'VARBINARY',\n            'VARBIT',\n            'VARCHAR',\n            'VARIABLE',\n            'VARYING',\n            'VIEW',\n            'WAIT',\n            'WAITFOR',\n            'WHEN',\n            'WHERE',\n            'WHILE',\n            'WINDOW',\n            'WITH',\n            'WITH_CUBE',\n            'WITH_LPAREN',\n            'WITH_ROLLUP',\n            'WITHIN',\n            'WORK',\n            'WRITETEXT',\n            'XML',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2005Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_diff;\nuse function array_merge;\n\n/**\n * Microsoft SQL Server 2005 reserved keyword dictionary.\n *\n * @link    www.doctrine-project.com\n */\nclass SQLServer2005Keywords extends SQLServerKeywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLServer2005';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://msdn.microsoft.com/en-US/library/ms189822%28v=sql.90%29.aspx\n     */\n    protected function getKeywords()\n    {\n        return array_merge(array_diff(parent::getKeywords(), ['DUMMY']), [\n            'EXTERNAL',\n            'PIVOT',\n            'REVERT',\n            'SECURITYAUDIT',\n            'TABLESAMPLE',\n            'UNPIVOT',\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2008Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_merge;\n\n/**\n * Microsoft SQL Server 2008 reserved keyword dictionary.\n *\n * @link    www.doctrine-project.com\n */\nclass SQLServer2008Keywords extends SQLServer2005Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLServer2008';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://msdn.microsoft.com/en-us/library/ms189822%28v=sql.100%29.aspx\n     */\n    protected function getKeywords()\n    {\n        return array_merge(parent::getKeywords(), ['MERGE']);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2012Keywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\nuse function array_merge;\n\n/**\n * Microsoft SQL Server 2012 reserved keyword dictionary.\n *\n * @link    www.doctrine-project.com\n */\nclass SQLServer2012Keywords extends SQLServer2008Keywords\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLServer2012';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://msdn.microsoft.com/en-us/library/ms189822.aspx\n     */\n    protected function getKeywords()\n    {\n        return array_merge(parent::getKeywords(), [\n            'SEMANTICKEYPHRASETABLE',\n            'SEMANTICSIMILARITYDETAILSTABLE',\n            'SEMANTICSIMILARITYTABLE',\n            'TRY_CONVERT',\n            'WITHIN GROUP',\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServerKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * Microsoft SQL Server 2000 reserved keyword dictionary.\n *\n * @link    www.doctrine-project.com\n */\nclass SQLServerKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLServer';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://msdn.microsoft.com/en-us/library/aa238507%28v=sql.80%29.aspx\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ADD',\n            'ALL',\n            'ALTER',\n            'AND',\n            'ANY',\n            'AS',\n            'ASC',\n            'AUTHORIZATION',\n            'BACKUP',\n            'BEGIN',\n            'BETWEEN',\n            'BREAK',\n            'BROWSE',\n            'BULK',\n            'BY',\n            'CASCADE',\n            'CASE',\n            'CHECK',\n            'CHECKPOINT',\n            'CLOSE',\n            'CLUSTERED',\n            'COALESCE',\n            'COLLATE',\n            'COLUMN',\n            'COMMIT',\n            'COMPUTE',\n            'CONSTRAINT',\n            'CONTAINS',\n            'CONTAINSTABLE',\n            'CONTINUE',\n            'CONVERT',\n            'CREATE',\n            'CROSS',\n            'CURRENT',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'CURRENT_USER',\n            'CURSOR',\n            'DATABASE',\n            'DBCC',\n            'DEALLOCATE',\n            'DECLARE',\n            'DEFAULT',\n            'DELETE',\n            'DENY',\n            'DESC',\n            'DISK',\n            'DISTINCT',\n            'DISTRIBUTED',\n            'DOUBLE',\n            'DROP',\n            'DUMP',\n            'ELSE',\n            'END',\n            'ERRLVL',\n            'ESCAPE',\n            'EXCEPT',\n            'EXEC',\n            'EXECUTE',\n            'EXISTS',\n            'EXIT',\n            'EXTERNAL',\n            'FETCH',\n            'FILE',\n            'FILLFACTOR',\n            'FOR',\n            'FOREIGN',\n            'FREETEXT',\n            'FREETEXTTABLE',\n            'FROM',\n            'FULL',\n            'FUNCTION',\n            'GOTO',\n            'GRANT',\n            'GROUP',\n            'HAVING',\n            'HOLDLOCK',\n            'IDENTITY',\n            'IDENTITY_INSERT',\n            'IDENTITYCOL',\n            'IF',\n            'IN',\n            'INDEX',\n            'INNER',\n            'INSERT',\n            'INTERSECT',\n            'INTO',\n            'IS',\n            'JOIN',\n            'KEY',\n            'KILL',\n            'LEFT',\n            'LIKE',\n            'LINENO',\n            'LOAD',\n            'NATIONAL',\n            'NOCHECK ',\n            'NONCLUSTERED',\n            'NOT',\n            'NULL',\n            'NULLIF',\n            'OF',\n            'OFF',\n            'OFFSETS',\n            'ON',\n            'OPEN',\n            'OPENDATASOURCE',\n            'OPENQUERY',\n            'OPENROWSET',\n            'OPENXML',\n            'OPTION',\n            'OR',\n            'ORDER',\n            'OUTER',\n            'OVER',\n            'PERCENT',\n            'PIVOT',\n            'PLAN',\n            'PRECISION',\n            'PRIMARY',\n            'PRINT',\n            'PROC',\n            'PROCEDURE',\n            'PUBLIC',\n            'RAISERROR',\n            'READ',\n            'READTEXT',\n            'RECONFIGURE',\n            'REFERENCES',\n            'REPLICATION',\n            'RESTORE',\n            'RESTRICT',\n            'RETURN',\n            'REVERT',\n            'REVOKE',\n            'RIGHT',\n            'ROLLBACK',\n            'ROWCOUNT',\n            'ROWGUIDCOL',\n            'RULE',\n            'SAVE',\n            'SCHEMA',\n            'SECURITYAUDIT',\n            'SELECT',\n            'SESSION_USER',\n            'SET',\n            'SETUSER',\n            'SHUTDOWN',\n            'SOME',\n            'STATISTICS',\n            'SYSTEM_USER',\n            'TABLE',\n            'TABLESAMPLE',\n            'TEXTSIZE',\n            'THEN',\n            'TO',\n            'TOP',\n            'TRAN',\n            'TRANSACTION',\n            'TRIGGER',\n            'TRUNCATE',\n            'TSEQUAL',\n            'UNION',\n            'UNIQUE',\n            'UNPIVOT',\n            'UPDATE',\n            'UPDATETEXT',\n            'USE',\n            'USER',\n            'VALUES',\n            'VARYING',\n            'VIEW',\n            'WAITFOR',\n            'WHEN',\n            'WHERE',\n            'WHILE',\n            'WITH',\n            'WRITETEXT',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLiteKeywords.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms\\Keywords;\n\n/**\n * SQLite Keywordlist.\n */\nclass SQLiteKeywords extends KeywordList\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'SQLite';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getKeywords()\n    {\n        return [\n            'ABORT',\n            'ACTION',\n            'ADD',\n            'AFTER',\n            'ALL',\n            'ALTER',\n            'ANALYZE',\n            'AND',\n            'AS',\n            'ASC',\n            'ATTACH',\n            'AUTOINCREMENT',\n            'BEFORE',\n            'BEGIN',\n            'BETWEEN',\n            'BY',\n            'CASCADE',\n            'CASE',\n            'CAST',\n            'CHECK',\n            'COLLATE',\n            'COLUMN',\n            'COMMIT',\n            'CONFLICT',\n            'CONSTRAINT',\n            'CREATE',\n            'CROSS',\n            'CURRENT_DATE',\n            'CURRENT_TIME',\n            'CURRENT_TIMESTAMP',\n            'DATABASE',\n            'DEFAULT',\n            'DEFERRABLE',\n            'DEFERRED',\n            'DELETE',\n            'DESC',\n            'DETACH',\n            'DISTINCT',\n            'DROP',\n            'EACH',\n            'ELSE',\n            'END',\n            'ESCAPE',\n            'EXCEPT',\n            'EXCLUSIVE',\n            'EXISTS',\n            'EXPLAIN',\n            'FAIL',\n            'FOR',\n            'FOREIGN',\n            'FROM',\n            'FULL',\n            'GLOB',\n            'GROUP',\n            'HAVING',\n            'IF',\n            'IGNORE',\n            'IMMEDIATE',\n            'IN',\n            'INDEX',\n            'INDEXED',\n            'INITIALLY',\n            'INNER',\n            'INSERT',\n            'INSTEAD',\n            'INTERSECT',\n            'INTO',\n            'IS',\n            'ISNULL',\n            'JOIN',\n            'KEY',\n            'LEFT',\n            'LIKE',\n            'LIMIT',\n            'MATCH',\n            'NATURAL',\n            'NO',\n            'NOT',\n            'NOTNULL',\n            'NULL',\n            'OF',\n            'OFFSET',\n            'ON',\n            'OR',\n            'ORDER',\n            'OUTER',\n            'PLAN',\n            'PRAGMA',\n            'PRIMARY',\n            'QUERY',\n            'RAISE',\n            'REFERENCES',\n            'REGEXP',\n            'REINDEX',\n            'RELEASE',\n            'RENAME',\n            'REPLACE',\n            'RESTRICT',\n            'RIGHT',\n            'ROLLBACK',\n            'ROW',\n            'SAVEPOINT',\n            'SELECT',\n            'SET',\n            'TABLE',\n            'TEMP',\n            'TEMPORARY',\n            'THEN',\n            'TO',\n            'TRANSACTION',\n            'TRIGGER',\n            'UNION',\n            'UNIQUE',\n            'UPDATE',\n            'USING',\n            'VACUUM',\n            'VALUES',\n            'VIEW',\n            'VIRTUAL',\n            'WHEN',\n            'WHERE',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MariaDb1027Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Types\\Type;\n\n/**\n * Provides the behavior, features and SQL dialect of the MariaDB 10.2 (10.2.7 GA) database platform.\n *\n * Note: Should not be used with versions prior to 10.2.7.\n */\nfinal class MariaDb1027Platform extends MySqlPlatform\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @link https://mariadb.com/kb/en/library/json-data-type/\n     */\n    public function getJsonTypeDeclarationSQL(array $field) : string\n    {\n        return 'LONGTEXT';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass() : string\n    {\n        return Keywords\\MariaDb102Keywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function initializeDoctrineTypeMappings() : void\n    {\n        parent::initializeDoctrineTypeMappings();\n\n        $this->doctrineTypeMapping['json'] = Type::JSON;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL57Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\Types\\Type;\n\n/**\n * Provides the behavior, features and SQL dialect of the MySQL 5.7 (5.7.9 GA) database platform.\n */\nclass MySQL57Platform extends MySqlPlatform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function hasNativeJsonType()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getJsonTypeDeclarationSQL(array $field)\n    {\n        return 'JSON';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getPreAlterTableRenameIndexForeignKeySQL(TableDiff $diff)\n    {\n        return [];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getPostAlterTableRenameIndexForeignKeySQL(TableDiff $diff)\n    {\n        return [];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        return ['ALTER TABLE ' . $tableName . ' RENAME INDEX ' . $oldIndexName . ' TO ' . $index->getQuotedName($this)];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\MySQL57Keywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        parent::initializeDoctrineTypeMappings();\n\n        $this->doctrineTypeMapping['json'] = Type::JSON;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL80Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\n/**\n * Provides the behavior, features and SQL dialect of the MySQL 8.0 (8.0 GA) database platform.\n */\nclass MySQL80Platform extends MySQL57Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\MySQL80Keywords::class;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\TransactionIsolationLevel;\nuse Doctrine\\DBAL\\Types\\BlobType;\nuse Doctrine\\DBAL\\Types\\TextType;\nuse InvalidArgumentException;\nuse function array_diff_key;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function func_get_args;\nuse function implode;\nuse function in_array;\nuse function is_numeric;\nuse function is_string;\nuse function sprintf;\nuse function str_replace;\nuse function strtoupper;\nuse function trim;\n\n/**\n * The MySqlPlatform provides the behavior, features and SQL dialect of the\n * MySQL database platform. This platform represents a MySQL 5.0 or greater platform that\n * uses the InnoDB storage engine.\n *\n * @todo   Rename: MySQLPlatform\n */\nclass MySqlPlatform extends AbstractPlatform\n{\n    public const LENGTH_LIMIT_TINYTEXT   = 255;\n    public const LENGTH_LIMIT_TEXT       = 65535;\n    public const LENGTH_LIMIT_MEDIUMTEXT = 16777215;\n\n    public const LENGTH_LIMIT_TINYBLOB   = 255;\n    public const LENGTH_LIMIT_BLOB       = 65535;\n    public const LENGTH_LIMIT_MEDIUMBLOB = 16777215;\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset)\n    {\n        if ($limit !== null) {\n            $query .= ' LIMIT ' . $limit;\n\n            if ($offset > 0) {\n                $query .= ' OFFSET ' . $offset;\n            }\n        } elseif ($offset > 0) {\n            // 2^64-1 is the maximum of unsigned BIGINT, the biggest limit possible\n            $query .= ' LIMIT 18446744073709551615 OFFSET ' . $offset;\n        }\n\n        return $query;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIdentifierQuoteCharacter()\n    {\n        return '`';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getRegexpExpression()\n    {\n        return 'RLIKE';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'UUID()';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'LOCATE(' . $substr . ', ' . $str . ')';\n        }\n\n        return 'LOCATE(' . $substr . ', ' . $str . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getConcatExpression()\n    {\n        return sprintf('CONCAT(%s)', implode(', ', func_get_args()));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        $function = $operator === '+' ? 'DATE_ADD' : 'DATE_SUB';\n\n        return $function . '(' . $date . ', INTERVAL ' . $interval . ' ' . $unit . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return 'DATEDIFF(' . $date1 . ', ' . $date2 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return 'SHOW DATABASES';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        return 'SHOW INDEX FROM ' . $table;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Two approaches to listing the table indexes. The information_schema is\n     * preferred, because it doesn't cause problems with SQL keywords such as \"order\" or \"table\".\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        if ($currentDatabase) {\n            $currentDatabase = $this->quoteStringLiteral($currentDatabase);\n            $table           = $this->quoteStringLiteral($table);\n\n            return 'SELECT TABLE_NAME AS `Table`, NON_UNIQUE AS Non_Unique, INDEX_NAME AS Key_name, ' .\n                   'SEQ_IN_INDEX AS Seq_in_index, COLUMN_NAME AS Column_Name, COLLATION AS Collation, ' .\n                   'CARDINALITY AS Cardinality, SUB_PART AS Sub_Part, PACKED AS Packed, ' .\n                   'NULLABLE AS `Null`, INDEX_TYPE AS Index_Type, COMMENT AS Comment ' .\n                   'FROM information_schema.STATISTICS WHERE TABLE_NAME = ' . $table . ' AND TABLE_SCHEMA = ' . $currentDatabase .\n                   ' ORDER BY SEQ_IN_INDEX ASC';\n        }\n\n        return 'SHOW INDEX FROM ' . $table;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        $database = $this->quoteStringLiteral($database);\n\n        return 'SELECT * FROM information_schema.VIEWS WHERE TABLE_SCHEMA = ' . $database;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table, $database = null)\n    {\n        $table = $this->quoteStringLiteral($table);\n\n        if ($database !== null) {\n            $database = $this->quoteStringLiteral($database);\n        }\n\n        $sql = 'SELECT DISTINCT k.`CONSTRAINT_NAME`, k.`COLUMN_NAME`, k.`REFERENCED_TABLE_NAME`, ' .\n               'k.`REFERENCED_COLUMN_NAME` /*!50116 , c.update_rule, c.delete_rule */ ' .\n               'FROM information_schema.key_column_usage k /*!50116 ' .\n               'INNER JOIN information_schema.referential_constraints c ON ' .\n               '  c.constraint_name = k.constraint_name AND ' .\n               '  c.table_name = ' . $table . ' */ WHERE k.table_name = ' . $table;\n\n        $databaseNameSql = $database ?? 'DATABASE()';\n\n        $sql .= ' AND k.table_schema = ' . $databaseNameSql . ' /*!50116 AND c.constraint_schema = ' . $databaseNameSql . ' */';\n        $sql .= ' AND k.`REFERENCED_COLUMN_NAME` is not NULL';\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(255)')\n                : ($length ? 'VARCHAR(' . $length . ')' : 'VARCHAR(255)');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? 'BINARY(' . ($length ?: 255) . ')' : 'VARBINARY(' . ($length ?: 255) . ')';\n    }\n\n    /**\n     * Gets the SQL snippet used to declare a CLOB column type.\n     *     TINYTEXT   : 2 ^  8 - 1 = 255\n     *     TEXT       : 2 ^ 16 - 1 = 65535\n     *     MEDIUMTEXT : 2 ^ 24 - 1 = 16777215\n     *     LONGTEXT   : 2 ^ 32 - 1 = 4294967295\n     *\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['length']) && is_numeric($field['length'])) {\n            $length = $field['length'];\n\n            if ($length <= static::LENGTH_LIMIT_TINYTEXT) {\n                return 'TINYTEXT';\n            }\n\n            if ($length <= static::LENGTH_LIMIT_TEXT) {\n                return 'TEXT';\n            }\n\n            if ($length <= static::LENGTH_LIMIT_MEDIUMTEXT) {\n                return 'MEDIUMTEXT';\n            }\n        }\n\n        return 'LONGTEXT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        if (isset($fieldDeclaration['version']) && $fieldDeclaration['version'] === true) {\n            return 'TIMESTAMP';\n        }\n\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'TINYINT(1)';\n    }\n\n    /**\n     * Obtain DBMS specific SQL code portion needed to set the COLLATION\n     * of a field declaration to be used in statements like CREATE TABLE.\n     *\n     * @deprecated Deprecated since version 2.5, Use {@link self::getColumnCollationDeclarationSQL()} instead.\n     *\n     * @param string $collation name of the collation\n     *\n     * @return string  DBMS specific SQL code portion needed to set the COLLATION\n     *                 of a field declaration.\n     */\n    public function getCollationFieldDeclaration($collation)\n    {\n        return $this->getColumnCollationDeclarationSQL($collation);\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * MySql prefers \"autoincrement\" identity columns since sequences can only\n     * be emulated with a table.\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * MySql supports this through AUTO_INCREMENT columns.\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsInlineColumnComments()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsColumnCollation()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SHOW FULL TABLES WHERE Table_type = 'BASE TABLE'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        $table = $this->quoteStringLiteral($table);\n\n        if ($database) {\n            $database = $this->quoteStringLiteral($database);\n        } else {\n            $database = 'DATABASE()';\n        }\n\n        return 'SELECT COLUMN_NAME AS Field, COLUMN_TYPE AS Type, IS_NULLABLE AS `Null`, ' .\n               'COLUMN_KEY AS `Key`, COLUMN_DEFAULT AS `Default`, EXTRA AS Extra, COLUMN_COMMENT AS Comment, ' .\n               'CHARACTER_SET_NAME AS CharacterSet, COLLATION_NAME AS Collation ' .\n               'FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ' . $database . ' AND TABLE_NAME = ' . $table .\n               ' ORDER BY ORDINAL_POSITION ASC';\n    }\n\n    public function getListTableMetadataSQL(string $table, ?string $database = null) : string\n    {\n        return sprintf(\n            <<<'SQL'\nSELECT ENGINE, AUTO_INCREMENT, TABLE_COLLATION, TABLE_COMMENT, CREATE_OPTIONS\nFROM information_schema.TABLES\nWHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA = %s AND TABLE_NAME = %s\nSQL\n            ,\n            $database ? $this->quoteStringLiteral($database) : 'DATABASE()',\n            $this->quoteStringLiteral($table)\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateDatabaseSQL($name)\n    {\n        return 'CREATE DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropDatabaseSQL($name)\n    {\n        return 'DROP DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $queryFields = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['uniqueConstraints']) && ! empty($options['uniqueConstraints'])) {\n            foreach ($options['uniqueConstraints'] as $index => $definition) {\n                $queryFields .= ', ' . $this->getUniqueConstraintDeclarationSQL($index, $definition);\n            }\n        }\n\n        // add all indexes\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $index => $definition) {\n                $queryFields .= ', ' . $this->getIndexDeclarationSQL($index, $definition);\n            }\n        }\n\n        // attach all primary keys\n        if (isset($options['primary']) && ! empty($options['primary'])) {\n            $keyColumns   = array_unique(array_values($options['primary']));\n            $queryFields .= ', PRIMARY KEY(' . implode(', ', $keyColumns) . ')';\n        }\n\n        $query = 'CREATE ';\n\n        if (! empty($options['temporary'])) {\n            $query .= 'TEMPORARY ';\n        }\n\n        $query .= 'TABLE ' . $tableName . ' (' . $queryFields . ') ';\n        $query .= $this->buildTableOptions($options);\n        $query .= $this->buildPartitionOptions($options);\n\n        $sql    = [$query];\n        $engine = 'INNODB';\n\n        if (isset($options['engine'])) {\n            $engine = strtoupper(trim($options['engine']));\n        }\n\n        // Propagate foreign key constraints only for InnoDB.\n        if (isset($options['foreignKeys']) && $engine === 'INNODB') {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $sql[] = $this->getCreateForeignKeySQL($definition, $tableName);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultValueDeclarationSQL($field)\n    {\n        // Unset the default value if the given field definition does not allow default values.\n        if ($field['type'] instanceof TextType || $field['type'] instanceof BlobType) {\n            $field['default'] = null;\n        }\n\n        return parent::getDefaultValueDeclarationSQL($field);\n    }\n\n    /**\n     * Build SQL for table options\n     *\n     * @param mixed[] $options\n     *\n     * @return string\n     */\n    private function buildTableOptions(array $options)\n    {\n        if (isset($options['table_options'])) {\n            return $options['table_options'];\n        }\n\n        $tableOptions = [];\n\n        // Charset\n        if (! isset($options['charset'])) {\n            $options['charset'] = 'utf8';\n        }\n\n        $tableOptions[] = sprintf('DEFAULT CHARACTER SET %s', $options['charset']);\n\n        // Collate\n        if (! isset($options['collate'])) {\n            $options['collate'] = $options['charset'] . '_unicode_ci';\n        }\n\n        $tableOptions[] = sprintf('COLLATE %s', $options['collate']);\n\n        // Engine\n        if (! isset($options['engine'])) {\n            $options['engine'] = 'InnoDB';\n        }\n\n        $tableOptions[] = sprintf('ENGINE = %s', $options['engine']);\n\n        // Auto increment\n        if (isset($options['auto_increment'])) {\n            $tableOptions[] = sprintf('AUTO_INCREMENT = %s', $options['auto_increment']);\n        }\n\n        // Comment\n        if (isset($options['comment'])) {\n            $comment = trim($options['comment'], \" '\");\n\n            $tableOptions[] = sprintf('COMMENT = %s ', $this->quoteStringLiteral($comment));\n        }\n\n        // Row format\n        if (isset($options['row_format'])) {\n            $tableOptions[] = sprintf('ROW_FORMAT = %s', $options['row_format']);\n        }\n\n        return implode(' ', $tableOptions);\n    }\n\n    /**\n     * Build SQL for partition options.\n     *\n     * @param mixed[] $options\n     *\n     * @return string\n     */\n    private function buildPartitionOptions(array $options)\n    {\n        return isset($options['partition_options'])\n            ? ' ' . $options['partition_options']\n            : '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $columnSql  = [];\n        $queryParts = [];\n        if ($diff->newName !== false) {\n            $queryParts[] = 'RENAME TO ' . $diff->getNewName()->getQuotedName($this);\n        }\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columnArray            = $column->toArray();\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           = 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $queryParts[] =  'DROP ' . $column->getQuotedName($this);\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            $column      = $columnDiff->column;\n            $columnArray = $column->toArray();\n\n            // Don't propagate default value changes for unsupported column types.\n            if ($columnDiff->hasChanged('default') &&\n                count($columnDiff->changedProperties) === 1 &&\n                ($columnArray['type'] instanceof TextType || $columnArray['type'] instanceof BlobType)\n            ) {\n                continue;\n            }\n\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           =  'CHANGE ' . ($columnDiff->getOldColumnName()->getQuotedName($this)) . ' '\n                    . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName          = new Identifier($oldColumnName);\n            $columnArray            = $column->toArray();\n            $columnArray['comment'] = $this->getColumnComment($column);\n            $queryParts[]           =  'CHANGE ' . $oldColumnName->getQuotedName($this) . ' '\n                    . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnArray);\n        }\n\n        if (isset($diff->addedIndexes['primary'])) {\n            $keyColumns   = array_unique(array_values($diff->addedIndexes['primary']->getColumns()));\n            $queryParts[] = 'ADD PRIMARY KEY (' . implode(', ', $keyColumns) . ')';\n            unset($diff->addedIndexes['primary']);\n        }\n\n        $sql      = [];\n        $tableSql = [];\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            if (count($queryParts) > 0) {\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . implode(', ', $queryParts);\n            }\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        $sql   = [];\n        $table = $diff->getName($this)->getQuotedName($this);\n\n        foreach ($diff->changedIndexes as $changedIndex) {\n            $sql = array_merge($sql, $this->getPreAlterTableAlterPrimaryKeySQL($diff, $changedIndex));\n        }\n\n        foreach ($diff->removedIndexes as $remKey => $remIndex) {\n            $sql = array_merge($sql, $this->getPreAlterTableAlterPrimaryKeySQL($diff, $remIndex));\n\n            foreach ($diff->addedIndexes as $addKey => $addIndex) {\n                if ($remIndex->getColumns() === $addIndex->getColumns()) {\n                    $indexClause = 'INDEX ' . $addIndex->getName();\n\n                    if ($addIndex->isPrimary()) {\n                        $indexClause = 'PRIMARY KEY';\n                    } elseif ($addIndex->isUnique()) {\n                        $indexClause = 'UNIQUE INDEX ' . $addIndex->getName();\n                    }\n\n                    $query  = 'ALTER TABLE ' . $table . ' DROP INDEX ' . $remIndex->getName() . ', ';\n                    $query .= 'ADD ' . $indexClause;\n                    $query .= ' (' . $this->getIndexFieldDeclarationListSQL($addIndex) . ')';\n\n                    $sql[] = $query;\n\n                    unset($diff->removedIndexes[$remKey], $diff->addedIndexes[$addKey]);\n\n                    break;\n                }\n            }\n        }\n\n        $engine = 'INNODB';\n\n        if ($diff->fromTable instanceof Table && $diff->fromTable->hasOption('engine')) {\n            $engine = strtoupper(trim($diff->fromTable->getOption('engine')));\n        }\n\n        // Suppress foreign key constraint propagation on non-supporting engines.\n        if ($engine !== 'INNODB') {\n            $diff->addedForeignKeys   = [];\n            $diff->changedForeignKeys = [];\n            $diff->removedForeignKeys = [];\n        }\n\n        $sql = array_merge(\n            $sql,\n            $this->getPreAlterTableAlterIndexForeignKeySQL($diff),\n            parent::getPreAlterTableIndexForeignKeySQL($diff),\n            $this->getPreAlterTableRenameIndexForeignKeySQL($diff)\n        );\n\n        return $sql;\n    }\n\n    /**\n     * @return string[]\n     */\n    private function getPreAlterTableAlterPrimaryKeySQL(TableDiff $diff, Index $index)\n    {\n        $sql = [];\n\n        if (! $index->isPrimary() || ! $diff->fromTable instanceof Table) {\n            return $sql;\n        }\n\n        $tableName = $diff->getName($this)->getQuotedName($this);\n\n        // Dropping primary keys requires to unset autoincrement attribute on the particular column first.\n        foreach ($index->getColumns() as $columnName) {\n            if (! $diff->fromTable->hasColumn($columnName)) {\n                continue;\n            }\n\n            $column = $diff->fromTable->getColumn($columnName);\n\n            if ($column->getAutoincrement() !== true) {\n                continue;\n            }\n\n            $column->setAutoincrement(false);\n\n            $sql[] = 'ALTER TABLE ' . $tableName . ' MODIFY ' .\n                $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n\n            // original autoincrement information might be needed later on by other parts of the table alteration\n            $column->setAutoincrement(true);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * @param TableDiff $diff The table diff to gather the SQL for.\n     *\n     * @return string[]\n     */\n    private function getPreAlterTableAlterIndexForeignKeySQL(TableDiff $diff)\n    {\n        $sql   = [];\n        $table = $diff->getName($this)->getQuotedName($this);\n\n        foreach ($diff->changedIndexes as $changedIndex) {\n            // Changed primary key\n            if (! $changedIndex->isPrimary() || ! ($diff->fromTable instanceof Table)) {\n                continue;\n            }\n\n            foreach ($diff->fromTable->getPrimaryKeyColumns() as $columnName) {\n                $column = $diff->fromTable->getColumn($columnName);\n\n                // Check if an autoincrement column was dropped from the primary key.\n                if (! $column->getAutoincrement() || in_array($columnName, $changedIndex->getColumns())) {\n                    continue;\n                }\n\n                // The autoincrement attribute needs to be removed from the dropped column\n                // before we can drop and recreate the primary key.\n                $column->setAutoincrement(false);\n\n                $sql[] = 'ALTER TABLE ' . $table . ' MODIFY ' .\n                    $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n\n                // Restore the autoincrement attribute as it might be needed later on\n                // by other parts of the table alteration.\n                $column->setAutoincrement(true);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * @param TableDiff $diff The table diff to gather the SQL for.\n     *\n     * @return string[]\n     */\n    protected function getPreAlterTableRenameIndexForeignKeySQL(TableDiff $diff)\n    {\n        $sql       = [];\n        $tableName = $diff->getName($this)->getQuotedName($this);\n\n        foreach ($this->getRemainingForeignKeyConstraintsRequiringRenamedIndexes($diff) as $foreignKey) {\n            if (in_array($foreignKey, $diff->changedForeignKeys, true)) {\n                continue;\n            }\n\n            $sql[] = $this->getDropForeignKeySQL($foreignKey, $tableName);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Returns the remaining foreign key constraints that require one of the renamed indexes.\n     *\n     * \"Remaining\" here refers to the diff between the foreign keys currently defined in the associated\n     * table and the foreign keys to be removed.\n     *\n     * @param TableDiff $diff The table diff to evaluate.\n     *\n     * @return ForeignKeyConstraint[]\n     */\n    private function getRemainingForeignKeyConstraintsRequiringRenamedIndexes(TableDiff $diff)\n    {\n        if (empty($diff->renamedIndexes) || ! $diff->fromTable instanceof Table) {\n            return [];\n        }\n\n        $foreignKeys = [];\n        /** @var ForeignKeyConstraint[] $remainingForeignKeys */\n        $remainingForeignKeys = array_diff_key(\n            $diff->fromTable->getForeignKeys(),\n            $diff->removedForeignKeys\n        );\n\n        foreach ($remainingForeignKeys as $foreignKey) {\n            foreach ($diff->renamedIndexes as $index) {\n                if ($foreignKey->intersectsIndexColumns($index)) {\n                    $foreignKeys[] = $foreignKey;\n\n                    break;\n                }\n            }\n        }\n\n        return $foreignKeys;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        return array_merge(\n            parent::getPostAlterTableIndexForeignKeySQL($diff),\n            $this->getPostAlterTableRenameIndexForeignKeySQL($diff)\n        );\n    }\n\n    /**\n     * @param TableDiff $diff The table diff to gather the SQL for.\n     *\n     * @return string[]\n     */\n    protected function getPostAlterTableRenameIndexForeignKeySQL(TableDiff $diff)\n    {\n        $sql       = [];\n        $tableName = $diff->newName !== false\n            ? $diff->getNewName()->getQuotedName($this)\n            : $diff->getName($this)->getQuotedName($this);\n\n        foreach ($this->getRemainingForeignKeyConstraintsRequiringRenamedIndexes($diff) as $foreignKey) {\n            if (in_array($foreignKey, $diff->changedForeignKeys, true)) {\n                continue;\n            }\n\n            $sql[] = $this->getCreateForeignKeySQL($foreignKey, $tableName);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getCreateIndexSQLFlags(Index $index)\n    {\n        $type = '';\n        if ($index->isUnique()) {\n            $type .= 'UNIQUE ';\n        } elseif ($index->hasFlag('fulltext')) {\n            $type .= 'FULLTEXT ';\n        } elseif ($index->hasFlag('spatial')) {\n            $type .= 'SPATIAL ';\n        }\n\n        return $type;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getFloatDeclarationSQL(array $field)\n    {\n        return 'DOUBLE PRECISION' . $this->getUnsignedDeclaration($field);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDecimalTypeDeclarationSQL(array $columnDef)\n    {\n        return parent::getDecimalTypeDeclarationSQL($columnDef) . $this->getUnsignedDeclaration($columnDef);\n    }\n\n    /**\n     * Get unsigned declaration for a column.\n     *\n     * @param mixed[] $columnDef\n     *\n     * @return string\n     */\n    private function getUnsignedDeclaration(array $columnDef)\n    {\n        return ! empty($columnDef['unsigned']) ? ' UNSIGNED' : '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        $autoinc = '';\n        if (! empty($columnDef['autoincrement'])) {\n            $autoinc = ' AUTO_INCREMENT';\n        }\n\n        return $this->getUnsignedDeclaration($columnDef) . $autoinc;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $query = '';\n        if ($foreignKey->hasOption('match')) {\n            $query .= ' MATCH ' . $foreignKey->getOption('match');\n        }\n        $query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey);\n\n        return $query;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropIndexSQL($index, $table = null)\n    {\n        if ($index instanceof Index) {\n            $indexName = $index->getQuotedName($this);\n        } elseif (is_string($index)) {\n            $indexName = $index;\n        } else {\n            throw new InvalidArgumentException('MysqlPlatform::getDropIndexSQL() expects $index parameter to be string or \\Doctrine\\DBAL\\Schema\\Index.');\n        }\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        } elseif (! is_string($table)) {\n            throw new InvalidArgumentException('MysqlPlatform::getDropIndexSQL() expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        if ($index instanceof Index && $index->isPrimary()) {\n            // mysql primary keys are always named \"PRIMARY\",\n            // so we cannot use them in statements because of them being keyword.\n            return $this->getDropPrimaryKeySQL($table);\n        }\n\n        return 'DROP INDEX ' . $indexName . ' ON ' . $table;\n    }\n\n    /**\n     * @param string $table\n     *\n     * @return string\n     */\n    protected function getDropPrimaryKeySQL($table)\n    {\n        return 'ALTER TABLE ' . $table . ' DROP PRIMARY KEY';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'SET SESSION TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'mysql';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getReadLockSQL()\n    {\n        return 'LOCK IN SHARE MODE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'tinyint'       => 'boolean',\n            'smallint'      => 'smallint',\n            'mediumint'     => 'integer',\n            'int'           => 'integer',\n            'integer'       => 'integer',\n            'bigint'        => 'bigint',\n            'tinytext'      => 'text',\n            'mediumtext'    => 'text',\n            'longtext'      => 'text',\n            'text'          => 'text',\n            'varchar'       => 'string',\n            'string'        => 'string',\n            'char'          => 'string',\n            'date'          => 'date',\n            'datetime'      => 'datetime',\n            'timestamp'     => 'datetime',\n            'time'          => 'time',\n            'float'         => 'float',\n            'double'        => 'float',\n            'real'          => 'float',\n            'decimal'       => 'decimal',\n            'numeric'       => 'decimal',\n            'year'          => 'date',\n            'longblob'      => 'blob',\n            'blob'          => 'blob',\n            'mediumblob'    => 'blob',\n            'tinyblob'      => 'blob',\n            'binary'        => 'binary',\n            'varbinary'     => 'binary',\n            'set'           => 'simple_array',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getVarcharMaxLength()\n    {\n        return 65535;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 65535;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\MySQLKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * MySQL commits a transaction implicitly when DROP TABLE is executed, however not\n     * if DROP TEMPORARY TABLE is executed.\n     */\n    public function getDropTemporaryTableSQL($table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        } elseif (! is_string($table)) {\n            throw new InvalidArgumentException('getDropTemporaryTableSQL() expects $table parameter to be string or \\Doctrine\\DBAL\\Schema\\Table.');\n        }\n\n        return 'DROP TEMPORARY TABLE ' . $table;\n    }\n\n    /**\n     * Gets the SQL Snippet used to declare a BLOB column type.\n     *     TINYBLOB   : 2 ^  8 - 1 = 255\n     *     BLOB       : 2 ^ 16 - 1 = 65535\n     *     MEDIUMBLOB : 2 ^ 24 - 1 = 16777215\n     *     LONGBLOB   : 2 ^ 32 - 1 = 4294967295\n     *\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['length']) && is_numeric($field['length'])) {\n            $length = $field['length'];\n\n            if ($length <= static::LENGTH_LIMIT_TINYBLOB) {\n                return 'TINYBLOB';\n            }\n\n            if ($length <= static::LENGTH_LIMIT_BLOB) {\n                return 'BLOB';\n            }\n\n            if ($length <= static::LENGTH_LIMIT_MEDIUMBLOB) {\n                return 'MEDIUMBLOB';\n            }\n        }\n\n        return 'LONGBLOB';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function quoteStringLiteral($str)\n    {\n        $str = str_replace('\\\\', '\\\\\\\\', $str); // MySQL requires backslashes to be escaped aswell.\n\n        return parent::quoteStringLiteral($str);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultTransactionIsolationLevel()\n    {\n        return TransactionIsolationLevel::REPEATABLE_READ;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsColumnLengthIndexes() : bool\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/OraclePlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\TransactionIsolationLevel;\nuse Doctrine\\DBAL\\Types\\BinaryType;\nuse InvalidArgumentException;\nuse function array_merge;\nuse function count;\nuse function explode;\nuse function func_get_arg;\nuse function func_num_args;\nuse function implode;\nuse function preg_match;\nuse function sprintf;\nuse function strlen;\nuse function strpos;\nuse function strtoupper;\nuse function substr;\n\n/**\n * OraclePlatform.\n */\nclass OraclePlatform extends AbstractPlatform\n{\n    /**\n     * Assertion for Oracle identifiers.\n     *\n     * @link http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements008.htm\n     *\n     * @param string $identifier\n     *\n     * @throws DBALException\n     */\n    public static function assertValidIdentifier($identifier)\n    {\n        if (! preg_match('(^(([a-zA-Z]{1}[a-zA-Z0-9_$#]{0,})|(\"[^\"]+\"))$)', $identifier)) {\n            throw new DBALException('Invalid Oracle identifier');\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSubstringExpression($value, $position, $length = null)\n    {\n        if ($length !== null) {\n            return sprintf('SUBSTR(%s, %d, %d)', $value, $position, $length);\n        }\n\n        return sprintf('SUBSTR(%s, %d)', $value, $position);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getNowExpression($type = 'timestamp')\n    {\n        switch ($type) {\n            case 'date':\n            case 'time':\n            case 'timestamp':\n            default:\n                return 'TO_CHAR(CURRENT_TIMESTAMP, \\'YYYY-MM-DD HH24:MI:SS\\')';\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'INSTR(' . $str . ', ' . $substr . ')';\n        }\n\n        return 'INSTR(' . $str . ', ' . $substr . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'SYS_GUID()';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        switch ($unit) {\n            case DateIntervalUnit::MONTH:\n            case DateIntervalUnit::QUARTER:\n            case DateIntervalUnit::YEAR:\n                switch ($unit) {\n                    case DateIntervalUnit::QUARTER:\n                        $interval *= 3;\n                        break;\n\n                    case DateIntervalUnit::YEAR:\n                        $interval *= 12;\n                        break;\n                }\n\n                return 'ADD_MONTHS(' . $date . ', ' . $operator . $interval . ')';\n\n            default:\n                $calculationClause = '';\n\n                switch ($unit) {\n                    case DateIntervalUnit::SECOND:\n                        $calculationClause = '/24/60/60';\n                        break;\n\n                    case DateIntervalUnit::MINUTE:\n                        $calculationClause = '/24/60';\n                        break;\n\n                    case DateIntervalUnit::HOUR:\n                        $calculationClause = '/24';\n                        break;\n\n                    case DateIntervalUnit::WEEK:\n                        $calculationClause = '*7';\n                        break;\n                }\n\n                return '(' . $date . $operator . $interval . $calculationClause . ')';\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return sprintf('TRUNC(%s) - TRUNC(%s)', $date1, $date2);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBitAndComparisonExpression($value1, $value2)\n    {\n        return 'BITAND(' . $value1 . ', ' . $value2 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBitOrComparisonExpression($value1, $value2)\n    {\n        return '(' . $value1 . '-' .\n                $this->getBitAndComparisonExpression($value1, $value2)\n                . '+' . $value2 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Need to specifiy minvalue, since start with is hidden in the system and MINVALUE <= START WITH.\n     * Therefore we can use MINVALUE to be able to get a hint what START WITH was for later introspection\n     * in {@see listSequences()}\n     */\n    public function getCreateSequenceSQL(Sequence $sequence)\n    {\n        return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) .\n               ' START WITH ' . $sequence->getInitialValue() .\n               ' MINVALUE ' . $sequence->getInitialValue() .\n               ' INCREMENT BY ' . $sequence->getAllocationSize() .\n               $this->getSequenceCacheSQL($sequence);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterSequenceSQL(Sequence $sequence)\n    {\n        return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) .\n               ' INCREMENT BY ' . $sequence->getAllocationSize()\n               . $this->getSequenceCacheSQL($sequence);\n    }\n\n    /**\n     * Cache definition for sequences\n     *\n     * @return string\n     */\n    private function getSequenceCacheSQL(Sequence $sequence)\n    {\n        if ($sequence->getCache() === 0) {\n            return ' NOCACHE';\n        } elseif ($sequence->getCache() === 1) {\n            return ' NOCACHE';\n        } elseif ($sequence->getCache() > 1) {\n            return ' CACHE ' . $sequence->getCache();\n        }\n\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSequenceNextValSQL($sequenceName)\n    {\n        return 'SELECT ' . $sequenceName . '.nextval FROM DUAL';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'SET TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getTransactionIsolationLevelSQL($level)\n    {\n        switch ($level) {\n            case TransactionIsolationLevel::READ_UNCOMMITTED:\n                return 'READ UNCOMMITTED';\n            case TransactionIsolationLevel::READ_COMMITTED:\n                return 'READ COMMITTED';\n            case TransactionIsolationLevel::REPEATABLE_READ:\n            case TransactionIsolationLevel::SERIALIZABLE:\n                return 'SERIALIZABLE';\n            default:\n                return parent::_getTransactionIsolationLevelSQL($level);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'NUMBER(1)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        return 'NUMBER(10)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        return 'NUMBER(20)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        return 'NUMBER(5)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIMESTAMP(0)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIMESTAMP(0) WITH TIME ZONE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(2000)')\n                : ($length ? 'VARCHAR2(' . $length . ')' : 'VARCHAR2(4000)');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return 'RAW(' . ($length ?: $this->getBinaryMaxLength()) . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 2000;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'CLOB';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return 'SELECT username FROM all_users';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListSequencesSQL($database)\n    {\n        $database = $this->normalizeIdentifier($database);\n        $database = $this->quoteStringLiteral($database->getName());\n\n        return 'SELECT sequence_name, min_value, increment_by FROM sys.all_sequences ' .\n               'WHERE SEQUENCE_OWNER = ' . $database;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($table, array $columns, array $options = [])\n    {\n        $indexes            = $options['indexes'] ?? [];\n        $options['indexes'] = [];\n        $sql                = parent::_getCreateTableSQL($table, $columns, $options);\n\n        foreach ($columns as $name => $column) {\n            if (isset($column['sequence'])) {\n                $sql[] = $this->getCreateSequenceSQL($column['sequence']);\n            }\n\n            if (! isset($column['autoincrement']) || ! $column['autoincrement'] &&\n               (! isset($column['autoinc']) || ! $column['autoinc'])) {\n                continue;\n            }\n\n            $sql = array_merge($sql, $this->getCreateAutoincrementSql($name, $table));\n        }\n\n        if (isset($indexes) && ! empty($indexes)) {\n            foreach ($indexes as $index) {\n                $sql[] = $this->getCreateIndexSQL($index, $table);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaOracleReader.html\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        $table = $this->normalizeIdentifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        return \"SELECT uind_col.index_name AS name,\n                       (\n                           SELECT uind.index_type\n                           FROM   user_indexes uind\n                           WHERE  uind.index_name = uind_col.index_name\n                       ) AS type,\n                       decode(\n                           (\n                               SELECT uind.uniqueness\n                               FROM   user_indexes uind\n                               WHERE  uind.index_name = uind_col.index_name\n                           ),\n                           'NONUNIQUE',\n                           0,\n                           'UNIQUE',\n                           1\n                       ) AS is_unique,\n                       uind_col.column_name AS column_name,\n                       uind_col.column_position AS column_pos,\n                       (\n                           SELECT ucon.constraint_type\n                           FROM   user_constraints ucon\n                           WHERE  ucon.index_name = uind_col.index_name\n                       ) AS is_primary\n             FROM      user_ind_columns uind_col\n             WHERE     uind_col.table_name = \" . $table . '\n             ORDER BY  uind_col.column_position ASC';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return 'SELECT * FROM sys.user_tables';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return 'SELECT view_name, text FROM sys.user_views';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * @param string $name\n     * @param string $table\n     * @param int    $start\n     *\n     * @return string[]\n     */\n    public function getCreateAutoincrementSql($name, $table, $start = 1)\n    {\n        $tableIdentifier   = $this->normalizeIdentifier($table);\n        $quotedTableName   = $tableIdentifier->getQuotedName($this);\n        $unquotedTableName = $tableIdentifier->getName();\n\n        $nameIdentifier = $this->normalizeIdentifier($name);\n        $quotedName     = $nameIdentifier->getQuotedName($this);\n        $unquotedName   = $nameIdentifier->getName();\n\n        $sql = [];\n\n        $autoincrementIdentifierName = $this->getAutoincrementIdentifierName($tableIdentifier);\n\n        $idx = new Index($autoincrementIdentifierName, [$quotedName], true, true);\n\n        $sql[] = 'DECLARE\n  constraints_Count NUMBER;\nBEGIN\n  SELECT COUNT(CONSTRAINT_NAME) INTO constraints_Count FROM USER_CONSTRAINTS WHERE TABLE_NAME = \\'' . $unquotedTableName . '\\' AND CONSTRAINT_TYPE = \\'P\\';\n  IF constraints_Count = 0 OR constraints_Count = \\'\\' THEN\n    EXECUTE IMMEDIATE \\'' . $this->getCreateConstraintSQL($idx, $quotedTableName) . '\\';\n  END IF;\nEND;';\n\n        $sequenceName = $this->getIdentitySequenceName(\n            $tableIdentifier->isQuoted() ? $quotedTableName : $unquotedTableName,\n            $nameIdentifier->isQuoted() ? $quotedName : $unquotedName\n        );\n        $sequence     = new Sequence($sequenceName, $start);\n        $sql[]        = $this->getCreateSequenceSQL($sequence);\n\n        $sql[] = 'CREATE TRIGGER ' . $autoincrementIdentifierName . '\n   BEFORE INSERT\n   ON ' . $quotedTableName . '\n   FOR EACH ROW\nDECLARE\n   last_Sequence NUMBER;\n   last_InsertID NUMBER;\nBEGIN\n   SELECT ' . $sequenceName . '.NEXTVAL INTO :NEW.' . $quotedName . ' FROM DUAL;\n   IF (:NEW.' . $quotedName . ' IS NULL OR :NEW.' . $quotedName . ' = 0) THEN\n      SELECT ' . $sequenceName . '.NEXTVAL INTO :NEW.' . $quotedName . ' FROM DUAL;\n   ELSE\n      SELECT NVL(Last_Number, 0) INTO last_Sequence\n        FROM User_Sequences\n       WHERE Sequence_Name = \\'' . $sequence->getName() . '\\';\n      SELECT :NEW.' . $quotedName . ' INTO last_InsertID FROM DUAL;\n      WHILE (last_InsertID > last_Sequence) LOOP\n         SELECT ' . $sequenceName . '.NEXTVAL INTO last_Sequence FROM DUAL;\n      END LOOP;\n   END IF;\nEND;';\n\n        return $sql;\n    }\n\n    /**\n     * Returns the SQL statements to drop the autoincrement for the given table name.\n     *\n     * @param string $table The table name to drop the autoincrement for.\n     *\n     * @return string[]\n     */\n    public function getDropAutoincrementSql($table)\n    {\n        $table                       = $this->normalizeIdentifier($table);\n        $autoincrementIdentifierName = $this->getAutoincrementIdentifierName($table);\n        $identitySequenceName        = $this->getIdentitySequenceName(\n            $table->isQuoted() ? $table->getQuotedName($this) : $table->getName(),\n            ''\n        );\n\n        return [\n            'DROP TRIGGER ' . $autoincrementIdentifierName,\n            $this->getDropSequenceSQL($identitySequenceName),\n            $this->getDropConstraintSQL($autoincrementIdentifierName, $table->getQuotedName($this)),\n        ];\n    }\n\n    /**\n     * Normalizes the given identifier.\n     *\n     * Uppercases the given identifier if it is not quoted by intention\n     * to reflect Oracle's internal auto uppercasing strategy of unquoted identifiers.\n     *\n     * @param string $name The identifier to normalize.\n     *\n     * @return Identifier The normalized identifier.\n     */\n    private function normalizeIdentifier($name)\n    {\n        $identifier = new Identifier($name);\n\n        return $identifier->isQuoted() ? $identifier : new Identifier(strtoupper($name));\n    }\n\n    /**\n     * Returns the autoincrement primary key identifier name for the given table identifier.\n     *\n     * Quotes the autoincrement primary key identifier name\n     * if the given table name is quoted by intention.\n     *\n     * @param Identifier $table The table identifier to return the autoincrement primary key identifier name for.\n     *\n     * @return string\n     */\n    private function getAutoincrementIdentifierName(Identifier $table)\n    {\n        $identifierName = $table->getName() . '_AI_PK';\n\n        return $table->isQuoted()\n            ? $this->quoteSingleIdentifier($identifierName)\n            : $identifierName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table)\n    {\n        $table = $this->normalizeIdentifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        return \"SELECT alc.constraint_name,\n          alc.DELETE_RULE,\n          cols.column_name \\\"local_column\\\",\n          cols.position,\n          (\n              SELECT r_cols.table_name\n              FROM   user_cons_columns r_cols\n              WHERE  alc.r_constraint_name = r_cols.constraint_name\n              AND    r_cols.position = cols.position\n          ) AS \\\"references_table\\\",\n          (\n              SELECT r_cols.column_name\n              FROM   user_cons_columns r_cols\n              WHERE  alc.r_constraint_name = r_cols.constraint_name\n              AND    r_cols.position = cols.position\n          ) AS \\\"foreign_column\\\"\n     FROM user_cons_columns cols\n     JOIN user_constraints alc\n       ON alc.constraint_name = cols.constraint_name\n      AND alc.constraint_type = 'R'\n      AND alc.table_name = \" . $table . '\n    ORDER BY cols.constraint_name ASC, cols.position ASC';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        $table = $this->normalizeIdentifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        return 'SELECT * FROM user_constraints WHERE table_name = ' . $table;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        $table = $this->normalizeIdentifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        $tabColumnsTableName       = 'user_tab_columns';\n        $colCommentsTableName      = 'user_col_comments';\n        $tabColumnsOwnerCondition  = '';\n        $colCommentsOwnerCondition = '';\n\n        if ($database !== null && $database !== '/') {\n            $database                  = $this->normalizeIdentifier($database);\n            $database                  = $this->quoteStringLiteral($database->getName());\n            $tabColumnsTableName       = 'all_tab_columns';\n            $colCommentsTableName      = 'all_col_comments';\n            $tabColumnsOwnerCondition  = ' AND c.owner = ' . $database;\n            $colCommentsOwnerCondition = ' AND d.OWNER = c.OWNER';\n        }\n\n        return sprintf(\n            <<<'SQL'\nSELECT   c.*,\n         (\n             SELECT d.comments\n             FROM   %s d\n             WHERE  d.TABLE_NAME = c.TABLE_NAME%s\n             AND    d.COLUMN_NAME = c.COLUMN_NAME\n         ) AS comments\nFROM     %s c\nWHERE    c.table_name = %s%s\nORDER BY c.column_id\nSQL\n            ,\n            $colCommentsTableName,\n            $colCommentsOwnerCondition,\n            $tabColumnsTableName,\n            $table,\n            $tabColumnsOwnerCondition\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropSequenceSQL($sequence)\n    {\n        if ($sequence instanceof Sequence) {\n            $sequence = $sequence->getQuotedName($this);\n        }\n\n        return 'DROP SEQUENCE ' . $sequence;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropForeignKeySQL($foreignKey, $table)\n    {\n        if (! $foreignKey instanceof ForeignKeyConstraint) {\n            $foreignKey = new Identifier($foreignKey);\n        }\n\n        if (! $table instanceof Table) {\n            $table = new Identifier($table);\n        }\n\n        $foreignKey = $foreignKey->getQuotedName($this);\n        $table      = $table->getQuotedName($this);\n\n        return 'ALTER TABLE ' . $table . ' DROP CONSTRAINT ' . $foreignKey;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $referentialAction = null;\n\n        if ($foreignKey->hasOption('onDelete')) {\n            $referentialAction = $this->getForeignKeyReferentialActionSQL($foreignKey->getOption('onDelete'));\n        }\n\n        return $referentialAction ? ' ON DELETE ' . $referentialAction : '';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getForeignKeyReferentialActionSQL($action)\n    {\n        $action = strtoupper($action);\n\n        switch ($action) {\n            case 'RESTRICT': // RESTRICT is not supported, therefore falling back to NO ACTION.\n            case 'NO ACTION':\n                // NO ACTION cannot be declared explicitly,\n                // therefore returning empty string to indicate to OMIT the referential clause.\n                return '';\n\n            case 'CASCADE':\n            case 'SET NULL':\n                return $action;\n\n            default:\n                // SET DEFAULT is not supported, throw exception instead.\n                throw new InvalidArgumentException('Invalid foreign key action: ' . $action);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropDatabaseSQL($database)\n    {\n        return 'DROP USER ' . $database . ' CASCADE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $sql         = [];\n        $commentsSQL = [];\n        $columnSql   = [];\n\n        $fields = [];\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $fields[] = $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n            $comment  = $this->getColumnComment($column);\n\n            if (! $comment) {\n                continue;\n            }\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $comment\n            );\n        }\n\n        if (count($fields)) {\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ADD (' . implode(', ', $fields) . ')';\n        }\n\n        $fields = [];\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            $column = $columnDiff->column;\n\n            // Do not generate column alteration clause if type is binary and only fixed property has changed.\n            // Oracle only supports binary type columns with variable length.\n            // Avoids unnecessary table alteration statements.\n            if ($column->getType() instanceof BinaryType &&\n                $columnDiff->hasChanged('fixed') &&\n                count($columnDiff->changedProperties) === 1\n            ) {\n                continue;\n            }\n\n            $columnHasChangedComment = $columnDiff->hasChanged('comment');\n\n            /**\n             * Do not add query part if only comment has changed\n             */\n            if (! ($columnHasChangedComment && count($columnDiff->changedProperties) === 1)) {\n                $columnInfo = $column->toArray();\n\n                if (! $columnDiff->hasChanged('notnull')) {\n                    unset($columnInfo['notnull']);\n                }\n\n                $fields[] = $column->getQuotedName($this) . $this->getColumnDeclarationSQL('', $columnInfo);\n            }\n\n            if (! $columnHasChangedComment) {\n                continue;\n            }\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $this->getColumnComment($column)\n            );\n        }\n\n        if (count($fields)) {\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' MODIFY (' . implode(', ', $fields) . ')';\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = new Identifier($oldColumnName);\n\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) .\n                ' RENAME COLUMN ' . $oldColumnName->getQuotedName($this) . ' TO ' . $column->getQuotedName($this);\n        }\n\n        $fields = [];\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $fields[] = $column->getQuotedName($this);\n        }\n\n        if (count($fields)) {\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' DROP (' . implode(', ', $fields) . ')';\n        }\n\n        $tableSql = [];\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            $sql = array_merge($sql, $commentsSQL);\n\n            if ($diff->newName !== false) {\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' RENAME TO ' . $diff->getNewName()->getQuotedName($this);\n            }\n\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getColumnDeclarationSQL($name, array $field)\n    {\n        if (isset($field['columnDefinition'])) {\n            $columnDef = $this->getCustomTypeDeclarationSQL($field);\n        } else {\n            $default = $this->getDefaultValueDeclarationSQL($field);\n\n            $notnull = '';\n\n            if (isset($field['notnull'])) {\n                $notnull = $field['notnull'] ? ' NOT NULL' : ' NULL';\n            }\n\n            $unique = isset($field['unique']) && $field['unique'] ?\n                ' ' . $this->getUniqueFieldDeclarationSQL() : '';\n\n            $check = isset($field['check']) && $field['check'] ?\n                ' ' . $field['check'] : '';\n\n            $typeDecl  = $field['type']->getSQLDeclaration($field, $this);\n            $columnDef = $typeDecl . $default . $notnull . $unique . $check;\n        }\n\n        return $name . ' ' . $columnDef;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schema]     = explode('.', $tableName);\n            $oldIndexName = $schema . '.' . $oldIndexName;\n        }\n\n        return ['ALTER INDEX ' . $oldIndexName . ' RENAME TO ' . $index->getQuotedName($this)];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prefersSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function usesSequenceEmulatedIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIdentitySequenceName($tableName, $columnName)\n    {\n        $table = new Identifier($tableName);\n\n        // No usage of column name to preserve BC compatibility with <2.5\n        $identitySequenceName = $table->getName() . '_SEQ';\n\n        if ($table->isQuoted()) {\n            $identitySequenceName = '\"' . $identitySequenceName . '\"';\n        }\n\n        $identitySequenceIdentifier = $this->normalizeIdentifier($identitySequenceName);\n\n        return $identitySequenceIdentifier->getQuotedName($this);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsCommentOnStatement()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'oracle';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset = null)\n    {\n        if ($limit === null && $offset <= 0) {\n            return $query;\n        }\n\n        if (preg_match('/^\\s*SELECT/i', $query)) {\n            if (! preg_match('/\\sFROM\\s/i', $query)) {\n                $query .= ' FROM dual';\n            }\n\n            $columns = ['a.*'];\n\n            if ($offset > 0) {\n                $columns[] = 'ROWNUM AS doctrine_rownum';\n            }\n\n            $query = sprintf('SELECT %s FROM (%s) a', implode(', ', $columns), $query);\n\n            if ($limit !== null) {\n                $query .= sprintf(' WHERE ROWNUM <= %d', $offset + $limit);\n            }\n\n            if ($offset > 0) {\n                $query = sprintf('SELECT * FROM (%s) WHERE doctrine_rownum >= %d', $query, $offset + 1);\n            }\n        }\n\n        return $query;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Oracle returns all column names in SQL result sets in uppercase.\n     */\n    public function getSQLResultCasing($column)\n    {\n        return strtoupper($column);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateTemporaryTableSnippetSQL()\n    {\n        return 'CREATE GLOBAL TEMPORARY TABLE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return 'Y-m-d H:i:sP';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateFormatString()\n    {\n        return 'Y-m-d 00:00:00';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeFormatString()\n    {\n        return '1900-01-01 H:i:s';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function fixSchemaElementName($schemaElementName)\n    {\n        if (strlen($schemaElementName) > 30) {\n            // Trim it\n            return substr($schemaElementName, 0, 30);\n        }\n\n        return $schemaElementName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getMaxIdentifierLength()\n    {\n        return 30;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsForeignKeyOnUpdate()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsReleaseSavepoints()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n\n        return 'TRUNCATE TABLE ' . $tableIdentifier->getQuotedName($this);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDummySelectSQL()\n    {\n        $expression = func_num_args() > 0 ? func_get_arg(0) : '1';\n\n        return sprintf('SELECT %s FROM DUAL', $expression);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'integer'           => 'integer',\n            'number'            => 'integer',\n            'pls_integer'       => 'boolean',\n            'binary_integer'    => 'boolean',\n            'varchar'           => 'string',\n            'varchar2'          => 'string',\n            'nvarchar2'         => 'string',\n            'char'              => 'string',\n            'nchar'             => 'string',\n            'date'              => 'date',\n            'timestamp'         => 'datetime',\n            'timestamptz'       => 'datetimetz',\n            'float'             => 'float',\n            'binary_float'      => 'float',\n            'binary_double'     => 'float',\n            'long'              => 'string',\n            'clob'              => 'text',\n            'nclob'             => 'text',\n            'raw'               => 'binary',\n            'long raw'          => 'blob',\n            'rowid'             => 'string',\n            'urowid'            => 'string',\n            'blob'              => 'blob',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function releaseSavePoint($savepoint)\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\OracleKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'BLOB';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL100Platform.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL100Keywords;\n\n/**\n * Provides the behavior, features and SQL dialect of the PostgreSQL 10.0 database platform.\n */\nclass PostgreSQL100Platform extends PostgreSQL94Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass() : string\n    {\n        return PostgreSQL100Keywords::class;\n    }\n\n    public function getListSequencesSQL($database) : string\n    {\n        return 'SELECT sequence_name AS relname,\n                       sequence_schema AS schemaname,\n                       minimum_value AS min_value, \n                       increment AS increment_by\n                FROM   information_schema.sequences\n                WHERE  sequence_catalog = ' . $this->quoteStringLiteral($database) . \"\n                AND    sequence_schema NOT LIKE 'pg\\_%'\n                AND    sequence_schema != 'information_schema'\";\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL91Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse function explode;\n\n/**\n * Provides the behavior, features and SQL dialect of the PostgreSQL 9.1 database platform.\n */\nclass PostgreSQL91Platform extends PostgreSqlPlatform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsColumnCollation()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\PostgreSQL91Keywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getColumnCollationDeclarationSQL($collation)\n    {\n        return 'COLLATE ' . $this->quoteSingleIdentifier($collation);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        $sql   = parent::getListTableColumnsSQL($table, $database);\n        $parts = explode('AS complete_type,', $sql, 2);\n\n        return $parts[0] . 'AS complete_type, (SELECT tc.collcollate FROM pg_catalog.pg_collation tc WHERE tc.oid = a.attcollation) AS collation,' . $parts[1];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL92Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Types\\Type;\nuse function sprintf;\n\n/**\n * Provides the behavior, features and SQL dialect of the PostgreSQL 9.2 database platform.\n */\nclass PostgreSQL92Platform extends PostgreSQL91Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getJsonTypeDeclarationSQL(array $field)\n    {\n        return 'JSON';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['autoincrement'])) {\n            return 'SMALLSERIAL';\n        }\n\n        return parent::getSmallIntTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function hasNativeJsonType()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\PostgreSQL92Keywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        parent::initializeDoctrineTypeMappings();\n\n        $this->doctrineTypeMapping['json'] = Type::JSON;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCloseActiveDatabaseConnectionsSQL($database)\n    {\n        return sprintf(\n            'SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = %s',\n            $this->quoteStringLiteral($database)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL94Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Types\\Type;\n\n/**\n * Provides the behavior, features and SQL dialect of the PostgreSQL 9.4 database platform.\n */\nclass PostgreSQL94Platform extends PostgreSQL92Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getJsonTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['jsonb'])) {\n            return 'JSONB';\n        }\n\n        return 'JSON';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\PostgreSQL94Keywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        parent::initializeDoctrineTypeMappings();\n\n        $this->doctrineTypeMapping['jsonb'] = Type::JSON;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\Types\\BigIntType;\nuse Doctrine\\DBAL\\Types\\BinaryType;\nuse Doctrine\\DBAL\\Types\\BlobType;\nuse Doctrine\\DBAL\\Types\\IntegerType;\nuse Doctrine\\DBAL\\Types\\Type;\nuse UnexpectedValueException;\nuse function array_diff;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function explode;\nuse function implode;\nuse function in_array;\nuse function is_array;\nuse function is_bool;\nuse function is_numeric;\nuse function is_string;\nuse function sprintf;\nuse function strpos;\nuse function strtolower;\nuse function trim;\n\n/**\n * PostgreSqlPlatform.\n *\n * @todo   Rename: PostgreSQLPlatform\n */\nclass PostgreSqlPlatform extends AbstractPlatform\n{\n    /** @var bool */\n    private $useBooleanTrueFalseStrings = true;\n\n    /** @var string[][] PostgreSQL booleans literals */\n    private $booleanLiterals = [\n        'true' => [\n            't',\n            'true',\n            'y',\n            'yes',\n            'on',\n            '1',\n        ],\n        'false' => [\n            'f',\n            'false',\n            'n',\n            'no',\n            'off',\n            '0',\n        ],\n    ];\n\n    /**\n     * PostgreSQL has different behavior with some drivers\n     * with regard to how booleans have to be handled.\n     *\n     * Enables use of 'true'/'false' or otherwise 1 and 0 instead.\n     *\n     * @param bool $flag\n     */\n    public function setUseBooleanTrueFalseStrings($flag)\n    {\n        $this->useBooleanTrueFalseStrings = (bool) $flag;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSubstringExpression($value, $from, $length = null)\n    {\n        if ($length === null) {\n            return 'SUBSTRING(' . $value . ' FROM ' . $from . ')';\n        }\n\n        return 'SUBSTRING(' . $value . ' FROM ' . $from . ' FOR ' . $length . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getNowExpression()\n    {\n        return 'LOCALTIMESTAMP(0)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getRegexpExpression()\n    {\n        return 'SIMILAR TO';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos !== false) {\n            $str = $this->getSubstringExpression($str, $startPos);\n\n            return 'CASE WHEN (POSITION(' . $substr . ' IN ' . $str . ') = 0) THEN 0 ELSE (POSITION(' . $substr . ' IN ' . $str . ') + ' . ($startPos-1) . ') END';\n        }\n\n        return 'POSITION(' . $substr . ' IN ' . $str . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        if ($unit === DateIntervalUnit::QUARTER) {\n            $interval *= 3;\n            $unit      = DateIntervalUnit::MONTH;\n        }\n\n        return '(' . $date . ' ' . $operator . ' (' . $interval . \" || ' \" . $unit . \"')::interval)\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return '(DATE(' . $date1 . ')-DATE(' . $date2 . '))';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsSchemas()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultSchemaName()\n    {\n        return 'public';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsPartialIndexes()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function usesSequenceEmulatedIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIdentitySequenceName($tableName, $columnName)\n    {\n        return $tableName . '_' . $columnName . '_seq';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsCommentOnStatement()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prefersSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function hasNativeGuidType()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return 'SELECT datname FROM pg_database';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListNamespacesSQL()\n    {\n        return \"SELECT schema_name AS nspname\n                FROM   information_schema.schemata\n                WHERE  schema_name NOT LIKE 'pg\\_%'\n                AND    schema_name != 'information_schema'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListSequencesSQL($database)\n    {\n        return \"SELECT sequence_name AS relname,\n                       sequence_schema AS schemaname\n                FROM   information_schema.sequences\n                WHERE  sequence_schema NOT LIKE 'pg\\_%'\n                AND    sequence_schema != 'information_schema'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SELECT quote_ident(table_name) AS table_name,\n                       table_schema AS schema_name\n                FROM   information_schema.tables\n                WHERE  table_schema NOT LIKE 'pg\\_%'\n                AND    table_schema != 'information_schema'\n                AND    table_name != 'geometry_columns'\n                AND    table_name != 'spatial_ref_sys'\n                AND    table_type != 'VIEW'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return 'SELECT quote_ident(table_name) AS viewname,\n                       table_schema AS schemaname,\n                       view_definition AS definition\n                FROM   information_schema.views\n                WHERE  view_definition IS NOT NULL';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table, $database = null)\n    {\n        return 'SELECT quote_ident(r.conname) as conname, pg_catalog.pg_get_constraintdef(r.oid, true) as condef\n                  FROM pg_catalog.pg_constraint r\n                  WHERE r.conrelid =\n                  (\n                      SELECT c.oid\n                      FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n\n                      WHERE ' . $this->getTableWhereClause($table) . \" AND n.oid = c.relnamespace\n                  )\n                  AND r.contype = 'f'\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        $table = new Identifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        return sprintf(\n            <<<'SQL'\nSELECT\n    quote_ident(relname) as relname\nFROM\n    pg_class\nWHERE oid IN (\n    SELECT indexrelid\n    FROM pg_index, pg_class\n    WHERE pg_class.relname = %s\n        AND pg_class.oid = pg_index.indrelid\n        AND (indisunique = 't' OR indisprimary = 't')\n    )\nSQL\n            ,\n            $table\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaPgsqlReader.html\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        return 'SELECT quote_ident(relname) as relname, pg_index.indisunique, pg_index.indisprimary,\n                       pg_index.indkey, pg_index.indrelid,\n                       pg_get_expr(indpred, indrelid) AS where\n                 FROM pg_class, pg_index\n                 WHERE oid IN (\n                    SELECT indexrelid\n                    FROM pg_index si, pg_class sc, pg_namespace sn\n                    WHERE ' . $this->getTableWhereClause($table, 'sc', 'sn') . ' AND sc.oid=si.indrelid AND sc.relnamespace = sn.oid\n                 ) AND pg_index.indexrelid = oid';\n    }\n\n    /**\n     * @param string $table\n     * @param string $classAlias\n     * @param string $namespaceAlias\n     *\n     * @return string\n     */\n    private function getTableWhereClause($table, $classAlias = 'c', $namespaceAlias = 'n')\n    {\n        $whereClause = $namespaceAlias . \".nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast') AND \";\n        if (strpos($table, '.') !== false) {\n            [$schema, $table] = explode('.', $table);\n            $schema           = $this->quoteStringLiteral($schema);\n        } else {\n            $schema = \"ANY(string_to_array((select replace(replace(setting,'\\\"\\$user\\\"',user),' ','') from pg_catalog.pg_settings where name = 'search_path'),','))\";\n        }\n\n        $table = new Identifier($table);\n        $table = $this->quoteStringLiteral($table->getName());\n\n        return $whereClause . sprintf(\n            '%s.relname = %s AND %s.nspname = %s',\n            $classAlias,\n            $table,\n            $namespaceAlias,\n            $schema\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        return \"SELECT\n                    a.attnum,\n                    quote_ident(a.attname) AS field,\n                    t.typname AS type,\n                    format_type(a.atttypid, a.atttypmod) AS complete_type,\n                    (SELECT t1.typname FROM pg_catalog.pg_type t1 WHERE t1.oid = t.typbasetype) AS domain_type,\n                    (SELECT format_type(t2.typbasetype, t2.typtypmod) FROM\n                      pg_catalog.pg_type t2 WHERE t2.typtype = 'd' AND t2.oid = a.atttypid) AS domain_complete_type,\n                    a.attnotnull AS isnotnull,\n                    (SELECT 't'\n                     FROM pg_index\n                     WHERE c.oid = pg_index.indrelid\n                        AND pg_index.indkey[0] = a.attnum\n                        AND pg_index.indisprimary = 't'\n                    ) AS pri,\n                    (SELECT pg_get_expr(adbin, adrelid)\n                     FROM pg_attrdef\n                     WHERE c.oid = pg_attrdef.adrelid\n                        AND pg_attrdef.adnum=a.attnum\n                    ) AS default,\n                    (SELECT pg_description.description\n                        FROM pg_description WHERE pg_description.objoid = c.oid AND a.attnum = pg_description.objsubid\n                    ) AS comment\n                    FROM pg_attribute a, pg_class c, pg_type t, pg_namespace n\n                    WHERE \" . $this->getTableWhereClause($table, 'c', 'n') . '\n                        AND a.attnum > 0\n                        AND a.attrelid = c.oid\n                        AND a.atttypid = t.oid\n                        AND n.oid = c.relnamespace\n                    ORDER BY a.attnum';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateDatabaseSQL($name)\n    {\n        return 'CREATE DATABASE ' . $name;\n    }\n\n    /**\n     * Returns the SQL statement for disallowing new connections on the given database.\n     *\n     * This is useful to force DROP DATABASE operations which could fail because of active connections.\n     *\n     * @param string $database The name of the database to disallow new connections for.\n     *\n     * @return string\n     */\n    public function getDisallowDatabaseConnectionsSQL($database)\n    {\n        return \"UPDATE pg_database SET datallowconn = 'false' WHERE datname = \" . $this->quoteStringLiteral($database);\n    }\n\n    /**\n     * Returns the SQL statement for closing currently active connections on the given database.\n     *\n     * This is useful to force DROP DATABASE operations which could fail because of active connections.\n     *\n     * @param string $database The name of the database to close currently active connections for.\n     *\n     * @return string\n     */\n    public function getCloseActiveDatabaseConnectionsSQL($database)\n    {\n        return 'SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = '\n            . $this->quoteStringLiteral($database);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $query = '';\n\n        if ($foreignKey->hasOption('match')) {\n            $query .= ' MATCH ' . $foreignKey->getOption('match');\n        }\n\n        $query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey);\n\n        if ($foreignKey->hasOption('deferrable') && $foreignKey->getOption('deferrable') !== false) {\n            $query .= ' DEFERRABLE';\n        } else {\n            $query .= ' NOT DEFERRABLE';\n        }\n\n        if (($foreignKey->hasOption('feferred') && $foreignKey->getOption('feferred') !== false)\n            || ($foreignKey->hasOption('deferred') && $foreignKey->getOption('deferred') !== false)\n        ) {\n            $query .= ' INITIALLY DEFERRED';\n        } else {\n            $query .= ' INITIALLY IMMEDIATE';\n        }\n\n        return $query;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $sql         = [];\n        $commentsSQL = [];\n        $columnSql   = [];\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $query = 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n\n            $comment = $this->getColumnComment($column);\n\n            if ($comment === null || $comment === '') {\n                continue;\n            }\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $comment\n            );\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $query = 'DROP ' . $column->getQuotedName($this);\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            /** @var $columnDiff \\Doctrine\\DBAL\\Schema\\ColumnDiff */\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            if ($this->isUnchangedBinaryColumn($columnDiff)) {\n                continue;\n            }\n\n            $oldColumnName = $columnDiff->getOldColumnName()->getQuotedName($this);\n            $column        = $columnDiff->column;\n\n            if ($columnDiff->hasChanged('type') || $columnDiff->hasChanged('precision') || $columnDiff->hasChanged('scale') || $columnDiff->hasChanged('fixed')) {\n                $type = $column->getType();\n\n                // SERIAL/BIGSERIAL are not \"real\" types and we can't alter a column to that type\n                $columnDefinition                  = $column->toArray();\n                $columnDefinition['autoincrement'] = false;\n\n                // here was a server version check before, but DBAL API does not support this anymore.\n                $query = 'ALTER ' . $oldColumnName . ' TYPE ' . $type->getSQLDeclaration($columnDefinition, $this);\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n            }\n\n            if ($columnDiff->hasChanged('default') || $this->typeChangeBreaksDefaultValue($columnDiff)) {\n                $defaultClause = $column->getDefault() === null\n                    ? ' DROP DEFAULT'\n                    : ' SET' . $this->getDefaultValueDeclarationSQL($column->toArray());\n                $query         = 'ALTER ' . $oldColumnName . $defaultClause;\n                $sql[]         = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n            }\n\n            if ($columnDiff->hasChanged('notnull')) {\n                $query = 'ALTER ' . $oldColumnName . ' ' . ($column->getNotnull() ? 'SET' : 'DROP') . ' NOT NULL';\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n            }\n\n            if ($columnDiff->hasChanged('autoincrement')) {\n                if ($column->getAutoincrement()) {\n                    // add autoincrement\n                    $seqName = $this->getIdentitySequenceName($diff->name, $oldColumnName);\n\n                    $sql[] = 'CREATE SEQUENCE ' . $seqName;\n                    $sql[] = \"SELECT setval('\" . $seqName . \"', (SELECT MAX(\" . $oldColumnName . ') FROM ' . $diff->getName($this)->getQuotedName($this) . '))';\n                    $query = 'ALTER ' . $oldColumnName . \" SET DEFAULT nextval('\" . $seqName . \"')\";\n                    $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n                } else {\n                    // Drop autoincrement, but do NOT drop the sequence. It might be re-used by other tables or have\n                    $query = 'ALTER ' . $oldColumnName . ' DROP DEFAULT';\n                    $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n                }\n            }\n\n            $newComment = $this->getColumnComment($column);\n            $oldComment = $this->getOldColumnComment($columnDiff);\n\n            if ($columnDiff->hasChanged('comment') || ($columnDiff->fromColumn !== null && $oldComment !== $newComment)) {\n                $commentsSQL[] = $this->getCommentOnColumnSQL(\n                    $diff->getName($this)->getQuotedName($this),\n                    $column->getQuotedName($this),\n                    $newComment\n                );\n            }\n\n            if (! $columnDiff->hasChanged('length')) {\n                continue;\n            }\n\n            $query = 'ALTER ' . $oldColumnName . ' TYPE ' . $column->getType()->getSQLDeclaration($column->toArray(), $this);\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = new Identifier($oldColumnName);\n\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) .\n                ' RENAME COLUMN ' . $oldColumnName->getQuotedName($this) . ' TO ' . $column->getQuotedName($this);\n        }\n\n        $tableSql = [];\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            $sql = array_merge($sql, $commentsSQL);\n\n            if ($diff->newName !== false) {\n                $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' RENAME TO ' . $diff->getNewName()->getQuotedName($this);\n            }\n\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * Checks whether a given column diff is a logically unchanged binary type column.\n     *\n     * Used to determine whether a column alteration for a binary type column can be skipped.\n     * Doctrine's {@link \\Doctrine\\DBAL\\Types\\BinaryType} and {@link \\Doctrine\\DBAL\\Types\\BlobType}\n     * are mapped to the same database column type on this platform as this platform\n     * does not have a native VARBINARY/BINARY column type. Therefore the {@link \\Doctrine\\DBAL\\Schema\\Comparator}\n     * might detect differences for binary type columns which do not have to be propagated\n     * to database as there actually is no difference at database level.\n     *\n     * @param ColumnDiff $columnDiff The column diff to check against.\n     *\n     * @return bool True if the given column diff is an unchanged binary type column, false otherwise.\n     */\n    private function isUnchangedBinaryColumn(ColumnDiff $columnDiff)\n    {\n        $columnType = $columnDiff->column->getType();\n\n        if (! $columnType instanceof BinaryType && ! $columnType instanceof BlobType) {\n            return false;\n        }\n\n        $fromColumn = $columnDiff->fromColumn instanceof Column ? $columnDiff->fromColumn : null;\n\n        if ($fromColumn) {\n            $fromColumnType = $fromColumn->getType();\n\n            if (! $fromColumnType instanceof BinaryType && ! $fromColumnType instanceof BlobType) {\n                return false;\n            }\n\n            return count(array_diff($columnDiff->changedProperties, ['type', 'length', 'fixed'])) === 0;\n        }\n\n        if ($columnDiff->hasChanged('type')) {\n            return false;\n        }\n\n        return count(array_diff($columnDiff->changedProperties, ['length', 'fixed'])) === 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schema]     = explode('.', $tableName);\n            $oldIndexName = $schema . '.' . $oldIndexName;\n        }\n\n        return ['ALTER INDEX ' . $oldIndexName . ' RENAME TO ' . $index->getQuotedName($this)];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCommentOnColumnSQL($tableName, $columnName, $comment)\n    {\n        $tableName  = new Identifier($tableName);\n        $columnName = new Identifier($columnName);\n        $comment    = $comment === null ? 'NULL' : $this->quoteStringLiteral($comment);\n\n        return sprintf(\n            'COMMENT ON COLUMN %s.%s IS %s',\n            $tableName->getQuotedName($this),\n            $columnName->getQuotedName($this),\n            $comment\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateSequenceSQL(Sequence $sequence)\n    {\n        return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) .\n            ' INCREMENT BY ' . $sequence->getAllocationSize() .\n            ' MINVALUE ' . $sequence->getInitialValue() .\n            ' START ' . $sequence->getInitialValue() .\n            $this->getSequenceCacheSQL($sequence);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterSequenceSQL(Sequence $sequence)\n    {\n        return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) .\n            ' INCREMENT BY ' . $sequence->getAllocationSize() .\n            $this->getSequenceCacheSQL($sequence);\n    }\n\n    /**\n     * Cache definition for sequences\n     *\n     * @return string\n     */\n    private function getSequenceCacheSQL(Sequence $sequence)\n    {\n        if ($sequence->getCache() > 1) {\n            return ' CACHE ' . $sequence->getCache();\n        }\n\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropSequenceSQL($sequence)\n    {\n        if ($sequence instanceof Sequence) {\n            $sequence = $sequence->getQuotedName($this);\n        }\n\n        return 'DROP SEQUENCE ' . $sequence . ' CASCADE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateSchemaSQL($schemaName)\n    {\n        return 'CREATE SCHEMA ' . $schemaName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropForeignKeySQL($foreignKey, $table)\n    {\n        return $this->getDropConstraintSQL($foreignKey, $table);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $queryFields = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['primary']) && ! empty($options['primary'])) {\n            $keyColumns   = array_unique(array_values($options['primary']));\n            $queryFields .= ', PRIMARY KEY(' . implode(', ', $keyColumns) . ')';\n        }\n\n        $query = 'CREATE TABLE ' . $tableName . ' (' . $queryFields . ')';\n\n        $sql = [$query];\n\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $index) {\n                $sql[] = $this->getCreateIndexSQL($index, $tableName);\n            }\n        }\n\n        if (isset($options['foreignKeys'])) {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $sql[] = $this->getCreateForeignKeySQL($definition, $tableName);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Converts a single boolean value.\n     *\n     * First converts the value to its native PHP boolean type\n     * and passes it to the given callback function to be reconverted\n     * into any custom representation.\n     *\n     * @param mixed    $value    The value to convert.\n     * @param callable $callback The callback function to use for converting the real boolean value.\n     *\n     * @return mixed\n     *\n     * @throws UnexpectedValueException\n     */\n    private function convertSingleBooleanValue($value, $callback)\n    {\n        if ($value === null) {\n            return $callback(null);\n        }\n\n        if (is_bool($value) || is_numeric($value)) {\n            return $callback($value ? true : false);\n        }\n\n        if (! is_string($value)) {\n            return $callback(true);\n        }\n\n        /**\n         * Better safe than sorry: http://php.net/in_array#106319\n         */\n        if (in_array(strtolower(trim($value)), $this->booleanLiterals['false'], true)) {\n            return $callback(false);\n        }\n\n        if (in_array(strtolower(trim($value)), $this->booleanLiterals['true'], true)) {\n            return $callback(true);\n        }\n\n        throw new UnexpectedValueException(\"Unrecognized boolean literal '${value}'\");\n    }\n\n    /**\n     * Converts one or multiple boolean values.\n     *\n     * First converts the value(s) to their native PHP boolean type\n     * and passes them to the given callback function to be reconverted\n     * into any custom representation.\n     *\n     * @param mixed    $item     The value(s) to convert.\n     * @param callable $callback The callback function to use for converting the real boolean value(s).\n     *\n     * @return mixed\n     */\n    private function doConvertBooleans($item, $callback)\n    {\n        if (is_array($item)) {\n            foreach ($item as $key => $value) {\n                $item[$key] = $this->convertSingleBooleanValue($value, $callback);\n            }\n\n            return $item;\n        }\n\n        return $this->convertSingleBooleanValue($item, $callback);\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Postgres wants boolean values converted to the strings 'true'/'false'.\n     */\n    public function convertBooleans($item)\n    {\n        if (! $this->useBooleanTrueFalseStrings) {\n            return parent::convertBooleans($item);\n        }\n\n        return $this->doConvertBooleans(\n            $item,\n            static function ($boolean) {\n                if ($boolean === null) {\n                    return 'NULL';\n                }\n\n                return $boolean === true ? 'true' : 'false';\n            }\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function convertBooleansToDatabaseValue($item)\n    {\n        if (! $this->useBooleanTrueFalseStrings) {\n            return parent::convertBooleansToDatabaseValue($item);\n        }\n\n        return $this->doConvertBooleans(\n            $item,\n            static function ($boolean) {\n                return $boolean === null ? null : (int) $boolean;\n            }\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function convertFromBoolean($item)\n    {\n        if (in_array(strtolower($item), $this->booleanLiterals['false'], true)) {\n            return false;\n        }\n\n        return parent::convertFromBoolean($item);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSequenceNextValSQL($sequenceName)\n    {\n        return \"SELECT NEXTVAL('\" . $sequenceName . \"')\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL '\n            . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'BOOLEAN';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['autoincrement'])) {\n            return 'SERIAL';\n        }\n\n        return 'INT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        if (! empty($field['autoincrement'])) {\n            return 'BIGSERIAL';\n        }\n\n        return 'BIGINT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        return 'SMALLINT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getGuidTypeDeclarationSQL(array $field)\n    {\n        return 'UUID';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIMESTAMP(0) WITHOUT TIME ZONE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIMESTAMP(0) WITH TIME ZONE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME(0) WITHOUT TIME ZONE';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'UUID_GENERATE_V4()';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(255)')\n            : ($length ? 'VARCHAR(' . $length . ')' : 'VARCHAR(255)');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return 'BYTEA';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'TEXT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'postgresql';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * PostgreSQL returns all column names in SQL result sets in lowercase.\n     */\n    public function getSQLResultCasing($column)\n    {\n        return strtolower($column);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return 'Y-m-d H:i:sO';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getEmptyIdentityInsertSQL($quotedTableName, $quotedIdentifierColumnName)\n    {\n        return 'INSERT INTO ' . $quotedTableName . ' (' . $quotedIdentifierColumnName . ') VALUES (DEFAULT)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n        $sql             = 'TRUNCATE ' . $tableIdentifier->getQuotedName($this);\n\n        if ($cascade) {\n            $sql .= ' CASCADE';\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getReadLockSQL()\n    {\n        return 'FOR SHARE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'smallint'      => 'smallint',\n            'int2'          => 'smallint',\n            'serial'        => 'integer',\n            'serial4'       => 'integer',\n            'int'           => 'integer',\n            'int4'          => 'integer',\n            'integer'       => 'integer',\n            'bigserial'     => 'bigint',\n            'serial8'       => 'bigint',\n            'bigint'        => 'bigint',\n            'int8'          => 'bigint',\n            'bool'          => 'boolean',\n            'boolean'       => 'boolean',\n            'text'          => 'text',\n            'tsvector'      => 'text',\n            'varchar'       => 'string',\n            'interval'      => 'string',\n            '_varchar'      => 'string',\n            'char'          => 'string',\n            'bpchar'        => 'string',\n            'inet'          => 'string',\n            'date'          => 'date',\n            'datetime'      => 'datetime',\n            'timestamp'     => 'datetime',\n            'timestamptz'   => 'datetimetz',\n            'time'          => 'time',\n            'timetz'        => 'time',\n            'float'         => 'float',\n            'float4'        => 'float',\n            'float8'        => 'float',\n            'double'        => 'float',\n            'double precision' => 'float',\n            'real'          => 'float',\n            'decimal'       => 'decimal',\n            'money'         => 'decimal',\n            'numeric'       => 'decimal',\n            'year'          => 'date',\n            'uuid'          => 'guid',\n            'bytea'         => 'blob',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getVarcharMaxLength()\n    {\n        return 65535;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryDefaultLength()\n    {\n        return 0;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\PostgreSQLKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'BYTEA';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultValueDeclarationSQL($field)\n    {\n        if ($this->isSerialField($field)) {\n            return '';\n        }\n\n        return parent::getDefaultValueDeclarationSQL($field);\n    }\n\n    /**\n     * @param mixed[] $field\n     */\n    private function isSerialField(array $field) : bool\n    {\n        return $field['autoincrement'] ?? false === true && isset($field['type'])\n            && $this->isNumericType($field['type']);\n    }\n\n    /**\n     * Check whether the type of a column is changed in a way that invalidates the default value for the column\n     */\n    private function typeChangeBreaksDefaultValue(ColumnDiff $columnDiff) : bool\n    {\n        if (! $columnDiff->fromColumn) {\n            return $columnDiff->hasChanged('type');\n        }\n\n        $oldTypeIsNumeric = $this->isNumericType($columnDiff->fromColumn->getType());\n        $newTypeIsNumeric = $this->isNumericType($columnDiff->column->getType());\n\n        // default should not be changed when switching between numeric types and the default comes from a sequence\n        return $columnDiff->hasChanged('type')\n            && ! ($oldTypeIsNumeric && $newTypeIsNumeric && $columnDiff->column->getAutoincrement());\n    }\n\n    private function isNumericType(Type $type) : bool\n    {\n        return $type instanceof IntegerType || $type instanceof BigIntType;\n    }\n\n    private function getOldColumnComment(ColumnDiff $columnDiff) : ?string\n    {\n        return $columnDiff->fromColumn ? $this->getColumnComment($columnDiff->fromColumn) : null;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere11Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\n/**\n * The SQLAnywhere11Platform provides the behavior, features and SQL dialect of the\n * SAP Sybase SQL Anywhere 11 database platform.\n */\nclass SQLAnywhere11Platform extends SQLAnywherePlatform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getRegexpExpression()\n    {\n        return 'REGEXP';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLAnywhere11Keywords::class;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere12Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Sequence;\n\n/**\n * The SQLAnywhere12Platform provides the behavior, features and SQL dialect of the\n * SAP Sybase SQL Anywhere 12 database platform.\n */\nclass SQLAnywhere12Platform extends SQLAnywhere11Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateSequenceSQL(Sequence $sequence)\n    {\n        return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) .\n            ' INCREMENT BY ' . $sequence->getAllocationSize() .\n            ' START WITH ' . $sequence->getInitialValue() .\n            ' MINVALUE ' . $sequence->getInitialValue();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getAlterSequenceSQL(Sequence $sequence)\n    {\n        return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) .\n            ' INCREMENT BY ' . $sequence->getAllocationSize();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return 'Y-m-d H:i:s.uP';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIMESTAMP WITH TIME ZONE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropSequenceSQL($sequence)\n    {\n        if ($sequence instanceof Sequence) {\n            $sequence = $sequence->getQuotedName($this);\n        }\n\n        return 'DROP SEQUENCE ' . $sequence;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListSequencesSQL($database)\n    {\n        return 'SELECT sequence_name, increment_by, start_with, min_value FROM SYS.SYSSEQUENCE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSequenceNextValSQL($sequenceName)\n    {\n        return 'SELECT ' . $sequenceName . '.NEXTVAL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getAdvancedIndexOptionsSQL(Index $index)\n    {\n        if (! $index->isPrimary() && $index->isUnique() && $index->hasFlag('with_nulls_not_distinct')) {\n            return ' WITH NULLS NOT DISTINCT' . parent::getAdvancedIndexOptionsSQL($index);\n        }\n\n        return parent::getAdvancedIndexOptionsSQL($index);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLAnywhere12Keywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        parent::initializeDoctrineTypeMappings();\n        $this->doctrineTypeMapping['timestamp with time zone'] = 'datetime';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere16Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Index;\nuse UnexpectedValueException;\n\n/**\n * The SQLAnywhere16Platform provides the behavior, features and SQL dialect of the\n * SAP Sybase SQL Anywhere 16 database platform.\n */\nclass SQLAnywhere16Platform extends SQLAnywhere12Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getAdvancedIndexOptionsSQL(Index $index)\n    {\n        if ($index->hasFlag('with_nulls_distinct') && $index->hasFlag('with_nulls_not_distinct')) {\n            throw new UnexpectedValueException(\n                'An Index can either have a \"with_nulls_distinct\" or \"with_nulls_not_distinct\" flag but not both.'\n            );\n        }\n\n        if (! $index->isPrimary() && $index->isUnique() && $index->hasFlag('with_nulls_distinct')) {\n            return ' WITH NULLS DISTINCT' . parent::getAdvancedIndexOptionsSQL($index);\n        }\n\n        return parent::getAdvancedIndexOptionsSQL($index);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLAnywhere16Keywords::class;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywherePlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\LockMode;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\Constraint;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\TransactionIsolationLevel;\nuse InvalidArgumentException;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function explode;\nuse function func_get_args;\nuse function get_class;\nuse function implode;\nuse function is_string;\nuse function preg_replace;\nuse function sprintf;\nuse function strlen;\nuse function strpos;\nuse function strtoupper;\nuse function substr;\n\n/**\n * The SQLAnywherePlatform provides the behavior, features and SQL dialect of the\n * SAP Sybase SQL Anywhere 10 database platform.\n */\nclass SQLAnywherePlatform extends AbstractPlatform\n{\n    public const FOREIGN_KEY_MATCH_SIMPLE        = 1;\n    public const FOREIGN_KEY_MATCH_FULL          = 2;\n    public const FOREIGN_KEY_MATCH_SIMPLE_UNIQUE = 129;\n    public const FOREIGN_KEY_MATCH_FULL_UNIQUE   = 130;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function appendLockHint($fromClause, $lockMode)\n    {\n        switch (true) {\n            case $lockMode === LockMode::NONE:\n                return $fromClause . ' WITH (NOLOCK)';\n\n            case $lockMode === LockMode::PESSIMISTIC_READ:\n                return $fromClause . ' WITH (UPDLOCK)';\n\n            case $lockMode === LockMode::PESSIMISTIC_WRITE:\n                return $fromClause . ' WITH (XLOCK)';\n\n            default:\n                return $fromClause;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * SQL Anywhere supports a maximum length of 128 bytes for identifiers.\n     */\n    public function fixSchemaElementName($schemaElementName)\n    {\n        $maxIdentifierLength = $this->getMaxIdentifierLength();\n\n        if (strlen($schemaElementName) > $maxIdentifierLength) {\n            return substr($schemaElementName, 0, $maxIdentifierLength);\n        }\n\n        return $schemaElementName;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $query = '';\n\n        if ($foreignKey->hasOption('match')) {\n            $query = ' MATCH ' . $this->getForeignKeyMatchClauseSQL($foreignKey->getOption('match'));\n        }\n\n        $query .= parent::getAdvancedForeignKeyOptionsSQL($foreignKey);\n\n        if ($foreignKey->hasOption('check_on_commit') && (bool) $foreignKey->getOption('check_on_commit')) {\n            $query .= ' CHECK ON COMMIT';\n        }\n\n        if ($foreignKey->hasOption('clustered') && (bool) $foreignKey->getOption('clustered')) {\n            $query .= ' CLUSTERED';\n        }\n\n        if ($foreignKey->hasOption('for_olap_workload') && (bool) $foreignKey->getOption('for_olap_workload')) {\n            $query .= ' FOR OLAP WORKLOAD';\n        }\n\n        return $query;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $sql          = [];\n        $columnSql    = [];\n        $commentsSQL  = [];\n        $tableSql     = [];\n        $alterClauses = [];\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $alterClauses[] = $this->getAlterTableAddColumnClause($column);\n\n            $comment = $this->getColumnComment($column);\n\n            if ($comment === null || $comment === '') {\n                continue;\n            }\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $comment\n            );\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $alterClauses[] = $this->getAlterTableRemoveColumnClause($column);\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            $alterClause = $this->getAlterTableChangeColumnClause($columnDiff);\n\n            if ($alterClause !== null) {\n                $alterClauses[] = $alterClause;\n            }\n\n            if (! $columnDiff->hasChanged('comment')) {\n                continue;\n            }\n\n            $column = $columnDiff->column;\n\n            $commentsSQL[] = $this->getCommentOnColumnSQL(\n                $diff->getName($this)->getQuotedName($this),\n                $column->getQuotedName($this),\n                $this->getColumnComment($column)\n            );\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $sql[] = $this->getAlterTableClause($diff->getName($this)) . ' ' .\n                $this->getAlterTableRenameColumnClause($oldColumnName, $column);\n        }\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            if (! empty($alterClauses)) {\n                $sql[] = $this->getAlterTableClause($diff->getName($this)) . ' ' . implode(', ', $alterClauses);\n            }\n\n            $sql = array_merge($sql, $commentsSQL);\n\n            if ($diff->newName !== false) {\n                $sql[] = $this->getAlterTableClause($diff->getName($this)) . ' ' .\n                    $this->getAlterTableRenameTableClause($diff->getNewName());\n            }\n\n            $sql = array_merge(\n                $this->getPreAlterTableIndexForeignKeySQL($diff),\n                $sql,\n                $this->getPostAlterTableIndexForeignKeySQL($diff)\n            );\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * Returns the SQL clause for creating a column in a table alteration.\n     *\n     * @param Column $column The column to add.\n     *\n     * @return string\n     */\n    protected function getAlterTableAddColumnClause(Column $column)\n    {\n        return 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n    }\n\n    /**\n     * Returns the SQL clause for altering a table.\n     *\n     * @param Identifier $tableName The quoted name of the table to alter.\n     *\n     * @return string\n     */\n    protected function getAlterTableClause(Identifier $tableName)\n    {\n        return 'ALTER TABLE ' . $tableName->getQuotedName($this);\n    }\n\n    /**\n     * Returns the SQL clause for dropping a column in a table alteration.\n     *\n     * @param Column $column The column to drop.\n     *\n     * @return string\n     */\n    protected function getAlterTableRemoveColumnClause(Column $column)\n    {\n        return 'DROP ' . $column->getQuotedName($this);\n    }\n\n    /**\n     * Returns the SQL clause for renaming a column in a table alteration.\n     *\n     * @param string $oldColumnName The quoted name of the column to rename.\n     * @param Column $column        The column to rename to.\n     *\n     * @return string\n     */\n    protected function getAlterTableRenameColumnClause($oldColumnName, Column $column)\n    {\n        $oldColumnName = new Identifier($oldColumnName);\n\n        return 'RENAME ' . $oldColumnName->getQuotedName($this) . ' TO ' . $column->getQuotedName($this);\n    }\n\n    /**\n     * Returns the SQL clause for renaming a table in a table alteration.\n     *\n     * @param Identifier $newTableName The quoted name of the table to rename to.\n     *\n     * @return string\n     */\n    protected function getAlterTableRenameTableClause(Identifier $newTableName)\n    {\n        return 'RENAME ' . $newTableName->getQuotedName($this);\n    }\n\n    /**\n     * Returns the SQL clause for altering a column in a table alteration.\n     *\n     * This method returns null in case that only the column comment has changed.\n     * Changes in column comments have to be handled differently.\n     *\n     * @param ColumnDiff $columnDiff The diff of the column to alter.\n     *\n     * @return string|null\n     */\n    protected function getAlterTableChangeColumnClause(ColumnDiff $columnDiff)\n    {\n        $column = $columnDiff->column;\n\n        // Do not return alter clause if only comment has changed.\n        if (! ($columnDiff->hasChanged('comment') && count($columnDiff->changedProperties) === 1)) {\n            $columnAlterationClause = 'ALTER ' .\n                $this->getColumnDeclarationSQL($column->getQuotedName($this), $column->toArray());\n\n            if ($columnDiff->hasChanged('default') && $column->getDefault() === null) {\n                $columnAlterationClause .= ', ALTER ' . $column->getQuotedName($this) . ' DROP DEFAULT';\n            }\n\n            return $columnAlterationClause;\n        }\n\n        return null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $columnDef)\n    {\n        $columnDef['integer_type'] = 'BIGINT';\n\n        return $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryDefaultLength()\n    {\n        return 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 32767;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'LONG BINARY';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * BIT type columns require an explicit NULL declaration\n     * in SQL Anywhere if they shall be nullable.\n     * Otherwise by just omitting the NOT NULL clause,\n     * SQL Anywhere will declare them NOT NULL nonetheless.\n     */\n    public function getBooleanTypeDeclarationSQL(array $columnDef)\n    {\n        $nullClause = isset($columnDef['notnull']) && (bool) $columnDef['notnull'] === false ? ' NULL' : '';\n\n        return 'BIT' . $nullClause;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'TEXT';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCommentOnColumnSQL($tableName, $columnName, $comment)\n    {\n        $tableName  = new Identifier($tableName);\n        $columnName = new Identifier($columnName);\n        $comment    = $comment === null ? 'NULL' : $this->quoteStringLiteral($comment);\n\n        return sprintf(\n            'COMMENT ON COLUMN %s.%s IS %s',\n            $tableName->getQuotedName($this),\n            $columnName->getQuotedName($this),\n            $comment\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConcatExpression()\n    {\n        return 'STRING(' . implode(', ', (array) func_get_args()) . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateConstraintSQL(Constraint $constraint, $table)\n    {\n        if ($constraint instanceof ForeignKeyConstraint) {\n            return $this->getCreateForeignKeySQL($constraint, $table);\n        }\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        return 'ALTER TABLE ' . $table .\n               ' ADD ' . $this->getTableConstraintDeclarationSQL($constraint, $constraint->getQuotedName($this));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateDatabaseSQL($database)\n    {\n        $database = new Identifier($database);\n\n        return \"CREATE DATABASE '\" . $database->getName() . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Appends SQL Anywhere specific flags if given.\n     */\n    public function getCreateIndexSQL(Index $index, $table)\n    {\n        return parent::getCreateIndexSQL($index, $table) . $this->getAdvancedIndexOptionsSQL($index);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreatePrimaryKeySQL(Index $index, $table)\n    {\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        return 'ALTER TABLE ' . $table . ' ADD ' . $this->getPrimaryKeyDeclarationSQL($index);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateTemporaryTableSnippetSQL()\n    {\n        return 'CREATE ' . $this->getTemporaryTableSQL() . ' TABLE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrentDateSQL()\n    {\n        return 'CURRENT DATE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrentTimeSQL()\n    {\n        return 'CURRENT TIME';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrentTimestampSQL()\n    {\n        return 'CURRENT TIMESTAMP';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        $factorClause = '';\n\n        if ($operator === '-') {\n            $factorClause = '-1 * ';\n        }\n\n        return 'DATEADD(' . $unit . ', ' . $factorClause . $interval . ', ' . $date . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return 'DATEDIFF(day, ' . $date2 . ', ' . $date1 . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTimeFormatString()\n    {\n        return 'Y-m-d H:i:s.u';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return $this->getDateTimeFormatString();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultTransactionIsolationLevel()\n    {\n        return TransactionIsolationLevel::READ_UNCOMMITTED;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropDatabaseSQL($database)\n    {\n        $database = new Identifier($database);\n\n        return \"DROP DATABASE '\" . $database->getName() . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropIndexSQL($index, $table = null)\n    {\n        if ($index instanceof Index) {\n            $index = $index->getQuotedName($this);\n        }\n\n        if (! is_string($index)) {\n            throw new InvalidArgumentException(\n                'SQLAnywherePlatform::getDropIndexSQL() expects $index parameter to be string or ' . Index::class . '.'\n            );\n        }\n\n        if (! isset($table)) {\n            return 'DROP INDEX ' . $index;\n        }\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        if (! is_string($table)) {\n            throw new InvalidArgumentException(\n                'SQLAnywherePlatform::getDropIndexSQL() expects $table parameter to be string or ' . Index::class . '.'\n            );\n        }\n\n        return 'DROP INDEX ' . $table . '.' . $index;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getForeignKeyBaseDeclarationSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $sql              = '';\n        $foreignKeyName   = $foreignKey->getName();\n        $localColumns     = $foreignKey->getQuotedLocalColumns($this);\n        $foreignColumns   = $foreignKey->getQuotedForeignColumns($this);\n        $foreignTableName = $foreignKey->getQuotedForeignTableName($this);\n\n        if (! empty($foreignKeyName)) {\n            $sql .= 'CONSTRAINT ' . $foreignKey->getQuotedName($this) . ' ';\n        }\n\n        if (empty($localColumns)) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'local' required.\");\n        }\n\n        if (empty($foreignColumns)) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'foreign' required.\");\n        }\n\n        if (empty($foreignTableName)) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'foreignTable' required.\");\n        }\n\n        if ($foreignKey->hasOption('notnull') && (bool) $foreignKey->getOption('notnull')) {\n            $sql .= 'NOT NULL ';\n        }\n\n        return $sql .\n            'FOREIGN KEY (' . $this->getIndexFieldDeclarationListSQL($localColumns) . ') ' .\n            'REFERENCES ' . $foreignKey->getQuotedForeignTableName($this) .\n            ' (' . $this->getIndexFieldDeclarationListSQL($foreignColumns) . ')';\n    }\n\n    /**\n     * Returns foreign key MATCH clause for given type.\n     *\n     * @param int $type The foreign key match type\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException If unknown match type given.\n     */\n    public function getForeignKeyMatchClauseSQL($type)\n    {\n        switch ((int) $type) {\n            case self::FOREIGN_KEY_MATCH_SIMPLE:\n                return 'SIMPLE';\n                break;\n            case self::FOREIGN_KEY_MATCH_FULL:\n                return 'FULL';\n                break;\n            case self::FOREIGN_KEY_MATCH_SIMPLE_UNIQUE:\n                return 'UNIQUE SIMPLE';\n                break;\n            case self::FOREIGN_KEY_MATCH_FULL_UNIQUE:\n                return 'UNIQUE FULL';\n            default:\n                throw new InvalidArgumentException('Invalid foreign key match type: ' . $type);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getForeignKeyReferentialActionSQL($action)\n    {\n        // NO ACTION is not supported, therefore falling back to RESTRICT.\n        if (strtoupper($action) === 'NO ACTION') {\n            return 'RESTRICT';\n        }\n\n        return parent::getForeignKeyReferentialActionSQL($action);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getForUpdateSQL()\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'NEWID()';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getGuidTypeDeclarationSQL(array $field)\n    {\n        return 'UNIQUEIDENTIFIER';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIndexDeclarationSQL($name, Index $index)\n    {\n        // Index declaration in statements like CREATE TABLE is not supported.\n        throw DBALException::notSupported(__METHOD__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        $columnDef['integer_type'] = 'INT';\n\n        return $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return 'SELECT db_name(number) AS name FROM sa_db_list()';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        $user = 'USER_NAME()';\n\n        if (strpos($table, '.') !== false) {\n            [$user, $table] = explode('.', $table);\n            $user           = $this->quoteStringLiteral($user);\n        }\n\n        return sprintf(\n            <<<'SQL'\nSELECT    col.column_name,\n          COALESCE(def.user_type_name, def.domain_name) AS 'type',\n          def.declared_width AS 'length',\n          def.scale,\n          CHARINDEX('unsigned', def.domain_name) AS 'unsigned',\n          IF col.nulls = 'Y' THEN 0 ELSE 1 ENDIF AS 'notnull',\n          col.\"default\",\n          def.is_autoincrement AS 'autoincrement',\n          rem.remarks AS 'comment'\nFROM      sa_describe_query('SELECT * FROM \"%s\"') AS def\nJOIN      SYS.SYSTABCOL AS col\nON        col.table_id = def.base_table_id AND col.column_id = def.base_column_id\nLEFT JOIN SYS.SYSREMARK AS rem\nON        col.object_id = rem.object_id\nWHERE     def.base_owner_name = %s\nORDER BY  def.base_column_id ASC\nSQL\n            ,\n            $table,\n            $user\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @todo Where is this used? Which information should be retrieved?\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        $user = '';\n\n        if (strpos($table, '.') !== false) {\n            [$user, $table] = explode('.', $table);\n            $user           = $this->quoteStringLiteral($user);\n            $table          = $this->quoteStringLiteral($table);\n        } else {\n            $table = $this->quoteStringLiteral($table);\n        }\n\n        return sprintf(\n            <<<'SQL'\nSELECT con.*\nFROM   SYS.SYSCONSTRAINT AS con\nJOIN   SYS.SYSTAB AS tab ON con.table_object_id = tab.object_id\nWHERE  tab.table_name = %s\nAND    tab.creator = USER_ID(%s)\nSQL\n            ,\n            $table,\n            $user\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListTableForeignKeysSQL($table)\n    {\n        $user = '';\n\n        if (strpos($table, '.') !== false) {\n            [$user, $table] = explode('.', $table);\n            $user           = $this->quoteStringLiteral($user);\n            $table          = $this->quoteStringLiteral($table);\n        } else {\n            $table = $this->quoteStringLiteral($table);\n        }\n\n        return sprintf(\n            <<<'SQL'\nSELECT    fcol.column_name AS local_column,\n          ptbl.table_name AS foreign_table,\n          pcol.column_name AS foreign_column,\n          idx.index_name,\n          IF fk.nulls = 'N'\n              THEN 1\n              ELSE NULL\n          ENDIF AS notnull,\n          CASE ut.referential_action\n              WHEN 'C' THEN 'CASCADE'\n              WHEN 'D' THEN 'SET DEFAULT'\n              WHEN 'N' THEN 'SET NULL'\n              WHEN 'R' THEN 'RESTRICT'\n              ELSE NULL\n          END AS  on_update,\n          CASE dt.referential_action\n              WHEN 'C' THEN 'CASCADE'\n              WHEN 'D' THEN 'SET DEFAULT'\n              WHEN 'N' THEN 'SET NULL'\n              WHEN 'R' THEN 'RESTRICT'\n              ELSE NULL\n          END AS on_delete,\n          IF fk.check_on_commit = 'Y'\n              THEN 1\n              ELSE NULL\n          ENDIF AS check_on_commit, -- check_on_commit flag\n          IF ftbl.clustered_index_id = idx.index_id\n              THEN 1\n              ELSE NULL\n          ENDIF AS 'clustered', -- clustered flag\n          IF fk.match_type = 0\n              THEN NULL\n              ELSE fk.match_type\n          ENDIF AS 'match', -- match option\n          IF pidx.max_key_distance = 1\n              THEN 1\n              ELSE NULL\n          ENDIF AS for_olap_workload -- for_olap_workload flag\nFROM      SYS.SYSFKEY AS fk\nJOIN      SYS.SYSIDX AS idx\nON        fk.foreign_table_id = idx.table_id\nAND       fk.foreign_index_id = idx.index_id\nJOIN      SYS.SYSPHYSIDX pidx\nON        idx.table_id = pidx.table_id\nAND       idx.phys_index_id = pidx.phys_index_id\nJOIN      SYS.SYSTAB AS ptbl\nON        fk.primary_table_id = ptbl.table_id\nJOIN      SYS.SYSTAB AS ftbl\nON        fk.foreign_table_id = ftbl.table_id\nJOIN      SYS.SYSIDXCOL AS idxcol\nON        idx.table_id = idxcol.table_id\nAND       idx.index_id = idxcol.index_id\nJOIN      SYS.SYSTABCOL AS pcol\nON        ptbl.table_id = pcol.table_id\nAND       idxcol.primary_column_id = pcol.column_id\nJOIN      SYS.SYSTABCOL AS fcol\nON        ftbl.table_id = fcol.table_id\nAND       idxcol.column_id = fcol.column_id\nLEFT JOIN SYS.SYSTRIGGER ut\nON        fk.foreign_table_id = ut.foreign_table_id\nAND       fk.foreign_index_id = ut.foreign_key_id\nAND       ut.event = 'C'\nLEFT JOIN SYS.SYSTRIGGER dt\nON        fk.foreign_table_id = dt.foreign_table_id\nAND       fk.foreign_index_id = dt.foreign_key_id\nAND       dt.event = 'D'\nWHERE     ftbl.table_name = %s\nAND       ftbl.creator = USER_ID(%s)\nORDER BY  fk.foreign_index_id ASC, idxcol.sequence ASC\nSQL\n            ,\n            $table,\n            $user\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        $user = '';\n\n        if (strpos($table, '.') !== false) {\n            [$user, $table] = explode('.', $table);\n            $user           = $this->quoteStringLiteral($user);\n            $table          = $this->quoteStringLiteral($table);\n        } else {\n            $table = $this->quoteStringLiteral($table);\n        }\n\n        return sprintf(\n            <<<'SQL'\nSELECT   idx.index_name AS key_name,\n         IF idx.index_category = 1\n             THEN 1\n             ELSE 0\n         ENDIF AS 'primary',\n         col.column_name,\n         IF idx.\"unique\" IN(1, 2, 5)\n             THEN 0\n             ELSE 1\n         ENDIF AS non_unique,\n         IF tbl.clustered_index_id = idx.index_id\n             THEN 1\n             ELSE NULL\n         ENDIF AS 'clustered', -- clustered flag\n         IF idx.\"unique\" = 5\n             THEN 1\n             ELSE NULL\n         ENDIF AS with_nulls_not_distinct, -- with_nulls_not_distinct flag\n         IF pidx.max_key_distance = 1\n              THEN 1\n              ELSE NULL\n          ENDIF AS for_olap_workload -- for_olap_workload flag\nFROM     SYS.SYSIDX AS idx\nJOIN     SYS.SYSPHYSIDX pidx\nON       idx.table_id = pidx.table_id\nAND      idx.phys_index_id = pidx.phys_index_id\nJOIN     SYS.SYSIDXCOL AS idxcol\nON       idx.table_id = idxcol.table_id AND idx.index_id = idxcol.index_id\nJOIN     SYS.SYSTABCOL AS col\nON       idxcol.table_id = col.table_id AND idxcol.column_id = col.column_id\nJOIN     SYS.SYSTAB AS tbl\nON       idx.table_id = tbl.table_id\nWHERE    tbl.table_name = %s\nAND      tbl.creator = USER_ID(%s)\nAND      idx.index_category != 2 -- exclude indexes implicitly created by foreign key constraints\nORDER BY idx.index_id ASC, idxcol.sequence ASC\nSQL\n            ,\n            $table,\n            $user\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SELECT   tbl.table_name\n                FROM     SYS.SYSTAB AS tbl\n                JOIN     SYS.SYSUSER AS usr ON tbl.creator = usr.user_id\n                JOIN     dbo.SYSOBJECTS AS obj ON tbl.object_id = obj.id\n                WHERE    tbl.table_type IN(1, 3) -- 'BASE', 'GBL TEMP'\n                AND      usr.user_name NOT IN('SYS', 'dbo', 'rs_systabgroup') -- exclude system users\n                AND      obj.type = 'U' -- user created tables only\n                ORDER BY tbl.table_name ASC\";\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @todo Where is this used? Which information should be retrieved?\n     */\n    public function getListUsersSQL()\n    {\n        return 'SELECT * FROM SYS.SYSUSER ORDER BY user_name ASC';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return \"SELECT   tbl.table_name, v.view_def\n                FROM     SYS.SYSVIEW v\n                JOIN     SYS.SYSTAB tbl ON v.view_object_id = tbl.object_id\n                JOIN     SYS.SYSUSER usr ON tbl.creator = usr.user_id\n                JOIN     dbo.SYSOBJECTS obj ON tbl.object_id = obj.id\n                WHERE    usr.user_name NOT IN('SYS', 'dbo', 'rs_systabgroup') -- exclude system users\n                ORDER BY tbl.table_name ASC\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'LOCATE(' . $str . ', ' . $substr . ')';\n        }\n\n        return 'LOCATE(' . $str . ', ' . $substr . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMaxIdentifierLength()\n    {\n        return 128;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMd5Expression($column)\n    {\n        return 'HASH(' . $column . \", 'MD5')\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'sqlanywhere';\n    }\n\n    /**\n     * Obtain DBMS specific SQL code portion needed to set a primary key\n     * declaration to be used in statements like ALTER TABLE.\n     *\n     * @param Index  $index Index definition\n     * @param string $name  Name of the primary key\n     *\n     * @return string DBMS specific SQL code portion needed to set a primary key\n     *\n     * @throws InvalidArgumentException If the given index is not a primary key.\n     */\n    public function getPrimaryKeyDeclarationSQL(Index $index, $name = null)\n    {\n        if (! $index->isPrimary()) {\n            throw new InvalidArgumentException(\n                'Can only create primary key declarations with getPrimaryKeyDeclarationSQL()'\n            );\n        }\n\n        return $this->getTableConstraintDeclarationSQL($index, $name);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'SET TEMPORARY OPTION isolation_level = ' . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $columnDef)\n    {\n        $columnDef['integer_type'] = 'SMALLINT';\n\n        return $this->_getCommonIntegerTypeDeclarationSQL($columnDef);\n    }\n\n    /**\n     * Returns the SQL statement for starting an existing database.\n     *\n     * In SQL Anywhere you can start and stop databases on a\n     * database server instance.\n     * This is a required statement after having created a new database\n     * as it has to be explicitly started to be usable.\n     * SQL Anywhere does not automatically start a database after creation!\n     *\n     * @param string $database Name of the database to start.\n     *\n     * @return string\n     */\n    public function getStartDatabaseSQL($database)\n    {\n        $database = new Identifier($database);\n\n        return \"START DATABASE '\" . $database->getName() . \"' AUTOSTOP OFF\";\n    }\n\n    /**\n     * Returns the SQL statement for stopping a running database.\n     *\n     * In SQL Anywhere you can start and stop databases on a\n     * database server instance.\n     * This is a required statement before dropping an existing database\n     * as it has to be explicitly stopped before it can be dropped.\n     *\n     * @param string $database Name of the database to stop.\n     *\n     * @return string\n     */\n    public function getStopDatabaseSQL($database)\n    {\n        $database = new Identifier($database);\n\n        return 'STOP DATABASE \"' . $database->getName() . '\" UNCONDITIONALLY';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSubstringExpression($value, $from, $length = null)\n    {\n        if ($length === null) {\n            return 'SUBSTRING(' . $value . ', ' . $from . ')';\n        }\n\n        return 'SUBSTRING(' . $value . ', ' . $from . ', ' . $length . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTemporaryTableSQL()\n    {\n        return 'GLOBAL TEMPORARY';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTimeFormatString()\n    {\n        return 'H:i:s.u';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTrimExpression($str, $pos = TrimMode::UNSPECIFIED, $char = false)\n    {\n        if (! $char) {\n            switch ($pos) {\n                case TrimMode::LEADING:\n                    return $this->getLtrimExpression($str);\n                case TrimMode::TRAILING:\n                    return $this->getRtrimExpression($str);\n                default:\n                    return 'TRIM(' . $str . ')';\n            }\n        }\n\n        $pattern = \"'%[^' + \" . $char . \" + ']%'\";\n\n        switch ($pos) {\n            case TrimMode::LEADING:\n                return 'SUBSTR(' . $str . ', PATINDEX(' . $pattern . ', ' . $str . '))';\n            case TrimMode::TRAILING:\n                return 'REVERSE(SUBSTR(REVERSE(' . $str . '), PATINDEX(' . $pattern . ', REVERSE(' . $str . '))))';\n            default:\n                return 'REVERSE(SUBSTR(REVERSE(SUBSTR(' . $str . ', PATINDEX(' . $pattern . ', ' . $str . '))), ' .\n                    'PATINDEX(' . $pattern . ', REVERSE(SUBSTR(' . $str . ', PATINDEX(' . $pattern . ', ' . $str . '))))))';\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n\n        return 'TRUNCATE TABLE ' . $tableIdentifier->getQuotedName($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getUniqueConstraintDeclarationSQL($name, Index $index)\n    {\n        if ($index->isPrimary()) {\n            throw new InvalidArgumentException(\n                'Cannot create primary key constraint declarations with getUniqueConstraintDeclarationSQL().'\n            );\n        }\n\n        if (! $index->isUnique()) {\n            throw new InvalidArgumentException(\n                'Can only create unique constraint declarations, no common index declarations with ' .\n                'getUniqueConstraintDeclarationSQL().'\n            );\n        }\n\n        return $this->getTableConstraintDeclarationSQL($index, $name);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getVarcharDefaultLength()\n    {\n        return 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getVarcharMaxLength()\n    {\n        return 32767;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function hasNativeGuidType()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsCommentOnStatement()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        $unsigned      = ! empty($columnDef['unsigned']) ? 'UNSIGNED ' : '';\n        $autoincrement = ! empty($columnDef['autoincrement']) ? ' IDENTITY' : '';\n\n        return $unsigned . $columnDef['integer_type'] . $autoincrement;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $columnListSql = $this->getColumnDeclarationListSQL($columns);\n        $indexSql      = [];\n\n        if (! empty($options['uniqueConstraints'])) {\n            foreach ((array) $options['uniqueConstraints'] as $name => $definition) {\n                $columnListSql .= ', ' . $this->getUniqueConstraintDeclarationSQL($name, $definition);\n            }\n        }\n\n        if (! empty($options['indexes'])) {\n            /** @var Index $index */\n            foreach ((array) $options['indexes'] as $index) {\n                $indexSql[] = $this->getCreateIndexSQL($index, $tableName);\n            }\n        }\n\n        if (! empty($options['primary'])) {\n            $flags = '';\n\n            if (isset($options['primary_index']) && $options['primary_index']->hasFlag('clustered')) {\n                $flags = ' CLUSTERED ';\n            }\n\n            $columnListSql .= ', PRIMARY KEY' . $flags . ' (' . implode(', ', array_unique(array_values((array) $options['primary']))) . ')';\n        }\n\n        if (! empty($options['foreignKeys'])) {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $columnListSql .= ', ' . $this->getForeignKeyDeclarationSQL($definition);\n            }\n        }\n\n        $query = 'CREATE TABLE ' . $tableName . ' (' . $columnListSql;\n        $check = $this->getCheckDeclarationSQL($columns);\n\n        if (! empty($check)) {\n            $query .= ', ' . $check;\n        }\n\n        $query .= ')';\n\n        return array_merge([$query], $indexSql);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getTransactionIsolationLevelSQL($level)\n    {\n        switch ($level) {\n            case TransactionIsolationLevel::READ_UNCOMMITTED:\n                return 0;\n            case TransactionIsolationLevel::READ_COMMITTED:\n                return 1;\n            case TransactionIsolationLevel::REPEATABLE_READ:\n                return 2;\n            case TransactionIsolationLevel::SERIALIZABLE:\n                return 3;\n            default:\n                throw new InvalidArgumentException('Invalid isolation level:' . $level);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset)\n    {\n        $limitOffsetClause = $this->getTopClauseSQL($limit, $offset);\n\n        return $limitOffsetClause === ''\n            ? $query\n            : preg_replace('/^\\s*(SELECT\\s+(DISTINCT\\s+)?)/i', '\\1' . $limitOffsetClause . ' ', $query);\n    }\n\n    private function getTopClauseSQL(?int $limit, ?int $offset) : string\n    {\n        if ($offset > 0) {\n            return sprintf('TOP %s START AT %d', $limit ?? 'ALL', $offset + 1);\n        }\n\n        return $limit === null ? '' : 'TOP ' . $limit;\n    }\n\n    /**\n     * Return the INDEX query section dealing with non-standard\n     * SQL Anywhere options.\n     *\n     * @param Index $index Index definition\n     *\n     * @return string\n     */\n    protected function getAdvancedIndexOptionsSQL(Index $index)\n    {\n        $sql = '';\n\n        if (! $index->isPrimary() && $index->hasFlag('for_olap_workload')) {\n            $sql .= ' FOR OLAP WORKLOAD';\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed\n            ? 'BINARY(' . ($length ?: $this->getBinaryDefaultLength()) . ')'\n            : 'VARBINARY(' . ($length ?: $this->getBinaryDefaultLength()) . ')';\n    }\n\n    /**\n     * Returns the SQL snippet for creating a table constraint.\n     *\n     * @param Constraint  $constraint The table constraint to create the SQL snippet for.\n     * @param string|null $name       The table constraint name to use if any.\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException If the given table constraint type is not supported by this method.\n     */\n    protected function getTableConstraintDeclarationSQL(Constraint $constraint, $name = null)\n    {\n        if ($constraint instanceof ForeignKeyConstraint) {\n            return $this->getForeignKeyDeclarationSQL($constraint);\n        }\n\n        if (! $constraint instanceof Index) {\n            throw new InvalidArgumentException('Unsupported constraint type: ' . get_class($constraint));\n        }\n\n        if (! $constraint->isPrimary() && ! $constraint->isUnique()) {\n            throw new InvalidArgumentException(\n                'Can only create primary, unique or foreign key constraint declarations, no common index declarations ' .\n                'with getTableConstraintDeclarationSQL().'\n            );\n        }\n\n        $constraintColumns = $constraint->getQuotedColumns($this);\n\n        if (empty($constraintColumns)) {\n            throw new InvalidArgumentException(\"Incomplete definition. 'columns' required.\");\n        }\n\n        $sql   = '';\n        $flags = '';\n\n        if (! empty($name)) {\n            $name = new Identifier($name);\n            $sql .= 'CONSTRAINT ' . $name->getQuotedName($this) . ' ';\n        }\n\n        if ($constraint->hasFlag('clustered')) {\n            $flags = 'CLUSTERED ';\n        }\n\n        if ($constraint->isPrimary()) {\n            return $sql . 'PRIMARY KEY ' . $flags . '(' . $this->getIndexFieldDeclarationListSQL($constraintColumns) . ')';\n        }\n\n        return $sql . 'UNIQUE ' . $flags . '(' . $this->getIndexFieldDeclarationListSQL($constraintColumns) . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getCreateIndexSQLFlags(Index $index)\n    {\n        $type = '';\n        if ($index->hasFlag('virtual')) {\n            $type .= 'VIRTUAL ';\n        }\n\n        if ($index->isUnique()) {\n            $type .= 'UNIQUE ';\n        }\n\n        if ($index->hasFlag('clustered')) {\n            $type .= 'CLUSTERED ';\n        }\n\n        return $type;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        return ['ALTER INDEX ' . $oldIndexName . ' ON ' . $tableName . ' RENAME TO ' . $index->getQuotedName($this)];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLAnywhereKeywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed\n            ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(' . $this->getVarcharDefaultLength() . ')')\n            : ($length ? 'VARCHAR(' . $length . ')' : 'VARCHAR(' . $this->getVarcharDefaultLength() . ')');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'char' => 'string',\n            'long nvarchar' => 'text',\n            'long varchar' => 'text',\n            'nchar' => 'string',\n            'ntext' => 'text',\n            'nvarchar' => 'string',\n            'text' => 'text',\n            'uniqueidentifierstr' => 'guid',\n            'varchar' => 'string',\n            'xml' => 'text',\n            'bigint' => 'bigint',\n            'unsigned bigint' => 'bigint',\n            'bit' => 'boolean',\n            'decimal' => 'decimal',\n            'double' => 'float',\n            'float' => 'float',\n            'int' => 'integer',\n            'integer' => 'integer',\n            'unsigned int' => 'integer',\n            'numeric' => 'decimal',\n            'smallint' => 'smallint',\n            'unsigned smallint' => 'smallint',\n            'tinyint' => 'smallint',\n            'unsigned tinyint' => 'smallint',\n            'money' => 'decimal',\n            'smallmoney' => 'decimal',\n            'long varbit' => 'text',\n            'varbit' => 'string',\n            'date' => 'date',\n            'datetime' => 'datetime',\n            'smalldatetime' => 'datetime',\n            'time' => 'time',\n            'timestamp' => 'datetime',\n            'binary' => 'binary',\n            'image' => 'blob',\n            'long binary' => 'blob',\n            'uniqueidentifier' => 'guid',\n            'varbinary' => 'binary',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAzurePlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Table;\n\n/**\n * Platform to ensure compatibility of Doctrine with SQL Azure\n *\n * On top of SQL Server 2008 the following functionality is added:\n *\n * - Create tables with the FEDERATED ON syntax.\n */\nclass SQLAzurePlatform extends SQLServer2008Platform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateTableSQL(Table $table, $createFlags = self::CREATE_INDEXES)\n    {\n        $sql = parent::getCreateTableSQL($table, $createFlags);\n\n        if ($table->hasOption('azure.federatedOnColumnName')) {\n            $distributionName = $table->getOption('azure.federatedOnDistributionName');\n            $columnName       = $table->getOption('azure.federatedOnColumnName');\n            $stmt             = ' FEDERATED ON (' . $distributionName . ' = ' . $columnName . ')';\n\n            $sql[0] .= $stmt;\n        }\n\n        return $sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2005Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\n/**\n * Platform to ensure compatibility of Doctrine with Microsoft SQL Server 2005 version and\n * higher.\n *\n * Differences to SQL Server 2008 are:\n *\n * - DATETIME2 datatype does not exist, only DATETIME which has a precision of\n *   3. This is not supported by PHP DateTime, so we are emulating it by\n *   setting .000 manually.\n * - Starting with SQLServer2005 VARCHAR(MAX), VARBINARY(MAX) and\n *   NVARCHAR(max) replace the old TEXT, NTEXT and IMAGE types. See\n *   {@link http://www.sql-server-helper.com/faq/sql-server-2005-varchar-max-p01.aspx}\n *   for more information.\n */\nclass SQLServer2005Platform extends SQLServerPlatform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsLimitOffset()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'VARCHAR(MAX)';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Returns Microsoft SQL Server 2005 specific keywords class\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLServer2005Keywords::class;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2008Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\n/**\n * Platform to ensure compatibility of Doctrine with Microsoft SQL Server 2008 version.\n *\n * Differences to SQL Server 2005 and before are that a new DATETIME2 type was\n * introduced that has a higher precision.\n */\nclass SQLServer2008Platform extends SQLServer2005Platform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        // \"sysdiagrams\" table must be ignored as it's internal SQL Server table for Database Diagrams\n        // Category 2 must be ignored as it is \"MS SQL Server 'pseudo-system' object[s]\" for replication\n        return \"SELECT name, SCHEMA_NAME (uid) AS schema_name FROM sysobjects WHERE type = 'U' AND name != 'sysdiagrams' AND category != 2 ORDER BY name\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        // 3 - microseconds precision length\n        // http://msdn.microsoft.com/en-us/library/ms187819.aspx\n        return 'DATETIME2(6)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME(0)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIMEOFFSET(6)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeFormatString()\n    {\n        return 'Y-m-d H:i:s.u';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return 'Y-m-d H:i:s.u P';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateFormatString()\n    {\n        return 'Y-m-d';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeFormatString()\n    {\n        return 'H:i:s';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Adding Datetime2 Type\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        parent::initializeDoctrineTypeMappings();\n        $this->doctrineTypeMapping['datetime2']      = 'datetime';\n        $this->doctrineTypeMapping['date']           = 'date';\n        $this->doctrineTypeMapping['time']           = 'time';\n        $this->doctrineTypeMapping['datetimeoffset'] = 'datetimetz';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Returns Microsoft SQL Server 2008 specific keywords class\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLServer2008Keywords::class;\n    }\n\n    protected function getLikeWildcardCharacters() : string\n    {\n        return parent::getLikeWildcardCharacters() . '[]^';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2012Platform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse const PREG_OFFSET_CAPTURE;\nuse function preg_match;\nuse function preg_match_all;\nuse function substr_count;\n\n/**\n * Platform to ensure compatibility of Doctrine with Microsoft SQL Server 2012 version.\n *\n * Differences to SQL Server 2008 and before are that sequences are introduced,\n * and support for the new OFFSET... FETCH syntax for result pagination has been added.\n */\nclass SQLServer2012Platform extends SQLServer2008Platform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getAlterSequenceSQL(Sequence $sequence)\n    {\n        return 'ALTER SEQUENCE ' . $sequence->getQuotedName($this) .\n               ' INCREMENT BY ' . $sequence->getAllocationSize();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateSequenceSQL(Sequence $sequence)\n    {\n        return 'CREATE SEQUENCE ' . $sequence->getQuotedName($this) .\n               ' START WITH ' . $sequence->getInitialValue() .\n               ' INCREMENT BY ' . $sequence->getAllocationSize() .\n               ' MINVALUE ' . $sequence->getInitialValue();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropSequenceSQL($sequence)\n    {\n        if ($sequence instanceof Sequence) {\n            $sequence = $sequence->getQuotedName($this);\n        }\n\n        return 'DROP SEQUENCE ' . $sequence;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getListSequencesSQL($database)\n    {\n        return 'SELECT seq.name,\n                       CAST(\n                           seq.increment AS VARCHAR(MAX)\n                       ) AS increment, -- CAST avoids driver error for sql_variant type\n                       CAST(\n                           seq.start_value AS VARCHAR(MAX)\n                       ) AS start_value -- CAST avoids driver error for sql_variant type\n                FROM   sys.sequences AS seq';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSequenceNextValSQL($sequenceName)\n    {\n        return 'SELECT NEXT VALUE FOR ' . $sequenceName;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsSequences()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Returns Microsoft SQL Server 2012 specific keywords class\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLServer2012Keywords::class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset = null)\n    {\n        if ($limit === null && $offset <= 0) {\n            return $query;\n        }\n\n        // Queries using OFFSET... FETCH MUST have an ORDER BY clause\n        // Find the position of the last instance of ORDER BY and ensure it is not within a parenthetical statement\n        // but can be in a newline\n        $matches      = [];\n        $matchesCount = preg_match_all('/[\\\\s]+order\\\\s+by\\\\s/im', $query, $matches, PREG_OFFSET_CAPTURE);\n        $orderByPos   = false;\n        if ($matchesCount > 0) {\n            $orderByPos = $matches[0][($matchesCount - 1)][1];\n        }\n\n        if ($orderByPos === false\n            || substr_count($query, '(', $orderByPos) - substr_count($query, ')', $orderByPos)\n        ) {\n            if (preg_match('/^SELECT\\s+DISTINCT/im', $query)) {\n                // SQL Server won't let us order by a non-selected column in a DISTINCT query,\n                // so we have to do this madness. This says, order by the first column in the\n                // result. SQL Server's docs say that a nonordered query's result order is non-\n                // deterministic anyway, so this won't do anything that a bunch of update and\n                // deletes to the table wouldn't do anyway.\n                $query .= ' ORDER BY 1';\n            } else {\n                // In another DBMS, we could do ORDER BY 0, but SQL Server gets angry if you\n                // use constant expressions in the order by list.\n                $query .= ' ORDER BY (SELECT 0)';\n            }\n        }\n\n        if ($offset === null) {\n            $offset = 0;\n        }\n\n        // This looks somewhat like MYSQL, but limit/offset are in inverse positions\n        // Supposedly SQL:2008 core standard.\n        // Per TSQL spec, FETCH NEXT n ROWS ONLY is not valid without OFFSET n ROWS.\n        $query .= ' OFFSET ' . (int) $offset . ' ROWS';\n\n        if ($limit !== null) {\n            $query .= ' FETCH NEXT ' . (int) $limit . ' ROWS ONLY';\n        }\n\n        return $query;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServerPlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\LockMode;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ColumnDiff;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\Types;\nuse InvalidArgumentException;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function count;\nuse function crc32;\nuse function dechex;\nuse function explode;\nuse function func_get_args;\nuse function implode;\nuse function is_array;\nuse function is_bool;\nuse function is_numeric;\nuse function is_string;\nuse function preg_match;\nuse function preg_replace;\nuse function sprintf;\nuse function str_replace;\nuse function stripos;\nuse function stristr;\nuse function strlen;\nuse function strpos;\nuse function strtoupper;\nuse function substr;\nuse function substr_count;\n\n/**\n * The SQLServerPlatform provides the behavior, features and SQL dialect of the\n * Microsoft SQL Server database platform.\n */\nclass SQLServerPlatform extends AbstractPlatform\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrentDateSQL()\n    {\n        return $this->getConvertExpression('date', 'GETDATE()');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrentTimeSQL()\n    {\n        return $this->getConvertExpression('time', 'GETDATE()');\n    }\n\n    /**\n     * Returns an expression that converts an expression of one data type to another.\n     *\n     * @param string $dataType   The target native data type. Alias data types cannot be used.\n     * @param string $expression The SQL expression to convert.\n     *\n     * @return string\n     */\n    private function getConvertExpression($dataType, $expression)\n    {\n        return sprintf('CONVERT(%s, %s)', $dataType, $expression);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        $factorClause = '';\n\n        if ($operator === '-') {\n            $factorClause = '-1 * ';\n        }\n\n        return 'DATEADD(' . $unit . ', ' . $factorClause . $interval . ', ' . $date . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return 'DATEDIFF(day, ' . $date2 . ',' . $date1 . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Microsoft SQL Server prefers \"autoincrement\" identity columns\n     * since sequences can only be emulated with a table.\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Microsoft SQL Server supports this through AUTO_INCREMENT columns.\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsReleaseSavepoints()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsSchemas()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultSchemaName()\n    {\n        return 'dbo';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsColumnCollation()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function hasNativeGuidType()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateDatabaseSQL($name)\n    {\n        return 'CREATE DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropDatabaseSQL($name)\n    {\n        return 'DROP DATABASE ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsCreateDropDatabase()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateSchemaSQL($schemaName)\n    {\n        return 'CREATE SCHEMA ' . $schemaName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropForeignKeySQL($foreignKey, $table)\n    {\n        if (! $foreignKey instanceof ForeignKeyConstraint) {\n            $foreignKey = new Identifier($foreignKey);\n        }\n\n        if (! $table instanceof Table) {\n            $table = new Identifier($table);\n        }\n\n        $foreignKey = $foreignKey->getQuotedName($this);\n        $table      = $table->getQuotedName($this);\n\n        return 'ALTER TABLE ' . $table . ' DROP CONSTRAINT ' . $foreignKey;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropIndexSQL($index, $table = null)\n    {\n        if ($index instanceof Index) {\n            $index = $index->getQuotedName($this);\n        } elseif (! is_string($index)) {\n            throw new InvalidArgumentException('AbstractPlatform::getDropIndexSQL() expects $index parameter to be string or \\Doctrine\\DBAL\\Schema\\Index.');\n        }\n\n        if (! isset($table)) {\n            return 'DROP INDEX ' . $index;\n        }\n\n        if ($table instanceof Table) {\n            $table = $table->getQuotedName($this);\n        }\n\n        return sprintf(\n            <<<SQL\nIF EXISTS (SELECT * FROM sysobjects WHERE name = '%s')\n    ALTER TABLE %s DROP CONSTRAINT %s\nELSE\n    DROP INDEX %s ON %s\nSQL\n            ,\n            $index,\n            $table,\n            $index,\n            $index,\n            $table\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($tableName, array $columns, array $options = [])\n    {\n        $defaultConstraintsSql = [];\n        $commentsSql           = [];\n\n        // @todo does other code breaks because of this?\n        // force primary keys to be not null\n        foreach ($columns as &$column) {\n            if (isset($column['primary']) && $column['primary']) {\n                $column['notnull'] = true;\n            }\n\n            // Build default constraints SQL statements.\n            if (isset($column['default'])) {\n                $defaultConstraintsSql[] = 'ALTER TABLE ' . $tableName .\n                    ' ADD' . $this->getDefaultConstraintDeclarationSQL($tableName, $column);\n            }\n\n            if (empty($column['comment']) && ! is_numeric($column['comment'])) {\n                continue;\n            }\n\n            $commentsSql[] = $this->getCreateColumnCommentSQL($tableName, $column['name'], $column['comment']);\n        }\n\n        $columnListSql = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['uniqueConstraints']) && ! empty($options['uniqueConstraints'])) {\n            foreach ($options['uniqueConstraints'] as $name => $definition) {\n                $columnListSql .= ', ' . $this->getUniqueConstraintDeclarationSQL($name, $definition);\n            }\n        }\n\n        if (isset($options['primary']) && ! empty($options['primary'])) {\n            $flags = '';\n            if (isset($options['primary_index']) && $options['primary_index']->hasFlag('nonclustered')) {\n                $flags = ' NONCLUSTERED';\n            }\n            $columnListSql .= ', PRIMARY KEY' . $flags . ' (' . implode(', ', array_unique(array_values($options['primary']))) . ')';\n        }\n\n        $query = 'CREATE TABLE ' . $tableName . ' (' . $columnListSql;\n\n        $check = $this->getCheckDeclarationSQL($columns);\n        if (! empty($check)) {\n            $query .= ', ' . $check;\n        }\n        $query .= ')';\n\n        $sql = [$query];\n\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $index) {\n                $sql[] = $this->getCreateIndexSQL($index, $tableName);\n            }\n        }\n\n        if (isset($options['foreignKeys'])) {\n            foreach ((array) $options['foreignKeys'] as $definition) {\n                $sql[] = $this->getCreateForeignKeySQL($definition, $tableName);\n            }\n        }\n\n        return array_merge($sql, $commentsSql, $defaultConstraintsSql);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreatePrimaryKeySQL(Index $index, $table)\n    {\n        $flags = '';\n        if ($index->hasFlag('nonclustered')) {\n            $flags = ' NONCLUSTERED';\n        }\n\n        return 'ALTER TABLE ' . $table . ' ADD PRIMARY KEY' . $flags . ' (' . $this->getIndexFieldDeclarationListSQL($index) . ')';\n    }\n\n    /**\n     * Returns the SQL statement for creating a column comment.\n     *\n     * SQL Server does not support native column comments,\n     * therefore the extended properties functionality is used\n     * as a workaround to store them.\n     * The property name used to store column comments is \"MS_Description\"\n     * which provides compatibility with SQL Server Management Studio,\n     * as column comments are stored in the same property there when\n     * specifying a column's \"Description\" attribute.\n     *\n     * @param string $tableName  The quoted table name to which the column belongs.\n     * @param string $columnName The quoted column name to create the comment for.\n     * @param string $comment    The column's comment.\n     *\n     * @return string\n     */\n    protected function getCreateColumnCommentSQL($tableName, $columnName, $comment)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schemaSQL, $tableSQL] = explode('.', $tableName);\n            $schemaSQL              = $this->quoteStringLiteral($schemaSQL);\n            $tableSQL               = $this->quoteStringLiteral($tableSQL);\n        } else {\n            $schemaSQL = \"'dbo'\";\n            $tableSQL  = $this->quoteStringLiteral($tableName);\n        }\n\n        return $this->getAddExtendedPropertySQL(\n            'MS_Description',\n            $comment,\n            'SCHEMA',\n            $schemaSQL,\n            'TABLE',\n            $tableSQL,\n            'COLUMN',\n            $columnName\n        );\n    }\n\n    /**\n     * Returns the SQL snippet for declaring a default constraint.\n     *\n     * @param string  $table  Name of the table to return the default constraint declaration for.\n     * @param mixed[] $column Column definition.\n     *\n     * @return string\n     *\n     * @throws InvalidArgumentException\n     */\n    public function getDefaultConstraintDeclarationSQL($table, array $column)\n    {\n        if (! isset($column['default'])) {\n            throw new InvalidArgumentException(\"Incomplete column definition. 'default' required.\");\n        }\n\n        $columnName = new Identifier($column['name']);\n\n        return ' CONSTRAINT ' .\n            $this->generateDefaultConstraintName($table, $column['name']) .\n            $this->getDefaultValueDeclarationSQL($column) .\n            ' FOR ' . $columnName->getQuotedName($this);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getUniqueConstraintDeclarationSQL($name, Index $index)\n    {\n        $constraint = parent::getUniqueConstraintDeclarationSQL($name, $index);\n\n        $constraint = $this->_appendUniqueConstraintDefinition($constraint, $index);\n\n        return $constraint;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateIndexSQL(Index $index, $table)\n    {\n        $constraint = parent::getCreateIndexSQL($index, $table);\n\n        if ($index->isUnique() && ! $index->isPrimary()) {\n            $constraint = $this->_appendUniqueConstraintDefinition($constraint, $index);\n        }\n\n        return $constraint;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getCreateIndexSQLFlags(Index $index)\n    {\n        $type = '';\n        if ($index->isUnique()) {\n            $type .= 'UNIQUE ';\n        }\n\n        if ($index->hasFlag('clustered')) {\n            $type .= 'CLUSTERED ';\n        } elseif ($index->hasFlag('nonclustered')) {\n            $type .= 'NONCLUSTERED ';\n        }\n\n        return $type;\n    }\n\n    /**\n     * Extend unique key constraint with required filters\n     *\n     * @param string $sql\n     *\n     * @return string\n     */\n    private function _appendUniqueConstraintDefinition($sql, Index $index)\n    {\n        $fields = [];\n\n        foreach ($index->getQuotedColumns($this) as $field) {\n            $fields[] = $field . ' IS NOT NULL';\n        }\n\n        return $sql . ' WHERE ' . implode(' AND ', $fields);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $queryParts  = [];\n        $sql         = [];\n        $columnSql   = [];\n        $commentsSql = [];\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columnDef    = $column->toArray();\n            $queryParts[] = 'ADD ' . $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnDef);\n\n            if (isset($columnDef['default'])) {\n                $queryParts[] = $this->getAlterTableAddDefaultConstraintClause($diff->name, $column);\n            }\n\n            $comment = $this->getColumnComment($column);\n\n            if (empty($comment) && ! is_numeric($comment)) {\n                continue;\n            }\n\n            $commentsSql[] = $this->getCreateColumnCommentSQL(\n                $diff->name,\n                $column->getQuotedName($this),\n                $comment\n            );\n        }\n\n        foreach ($diff->removedColumns as $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $queryParts[] = 'DROP COLUMN ' . $column->getQuotedName($this);\n        }\n\n        foreach ($diff->changedColumns as $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            $column     = $columnDiff->column;\n            $comment    = $this->getColumnComment($column);\n            $hasComment = ! empty($comment) || is_numeric($comment);\n\n            if ($columnDiff->fromColumn instanceof Column) {\n                $fromComment    = $this->getColumnComment($columnDiff->fromColumn);\n                $hasFromComment = ! empty($fromComment) || is_numeric($fromComment);\n\n                if ($hasFromComment && $hasComment && $fromComment !== $comment) {\n                    $commentsSql[] = $this->getAlterColumnCommentSQL(\n                        $diff->name,\n                        $column->getQuotedName($this),\n                        $comment\n                    );\n                } elseif ($hasFromComment && ! $hasComment) {\n                    $commentsSql[] = $this->getDropColumnCommentSQL($diff->name, $column->getQuotedName($this));\n                } elseif ($hasComment) {\n                    $commentsSql[] = $this->getCreateColumnCommentSQL(\n                        $diff->name,\n                        $column->getQuotedName($this),\n                        $comment\n                    );\n                }\n            }\n\n            // Do not add query part if only comment has changed.\n            if ($columnDiff->hasChanged('comment') && count($columnDiff->changedProperties) === 1) {\n                continue;\n            }\n\n            $requireDropDefaultConstraint = $this->alterColumnRequiresDropDefaultConstraint($columnDiff);\n\n            if ($requireDropDefaultConstraint) {\n                $queryParts[] = $this->getAlterTableDropDefaultConstraintClause(\n                    $diff->name,\n                    $columnDiff->oldColumnName\n                );\n            }\n\n            $columnDef = $column->toArray();\n\n            $queryParts[] = 'ALTER COLUMN ' .\n                    $this->getColumnDeclarationSQL($column->getQuotedName($this), $columnDef);\n\n            if (! isset($columnDef['default']) || (! $requireDropDefaultConstraint && ! $columnDiff->hasChanged('default'))) {\n                continue;\n            }\n\n            $queryParts[] = $this->getAlterTableAddDefaultConstraintClause($diff->name, $column);\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = new Identifier($oldColumnName);\n\n            $sql[] = \"sp_RENAME '\" .\n                $diff->getName($this)->getQuotedName($this) . '.' . $oldColumnName->getQuotedName($this) .\n                \"', '\" . $column->getQuotedName($this) . \"', 'COLUMN'\";\n\n            // Recreate default constraint with new column name if necessary (for future reference).\n            if ($column->getDefault() === null) {\n                continue;\n            }\n\n            $queryParts[] = $this->getAlterTableDropDefaultConstraintClause(\n                $diff->name,\n                $oldColumnName->getQuotedName($this)\n            );\n            $queryParts[] = $this->getAlterTableAddDefaultConstraintClause($diff->name, $column);\n        }\n\n        $tableSql = [];\n\n        if ($this->onSchemaAlterTable($diff, $tableSql)) {\n            return array_merge($tableSql, $columnSql);\n        }\n\n        foreach ($queryParts as $query) {\n            $sql[] = 'ALTER TABLE ' . $diff->getName($this)->getQuotedName($this) . ' ' . $query;\n        }\n\n        $sql = array_merge($sql, $commentsSql);\n\n        if ($diff->newName !== false) {\n            $sql[] = \"sp_RENAME '\" . $diff->getName($this)->getQuotedName($this) . \"', '\" . $diff->getNewName()->getName() . \"'\";\n\n            /**\n             * Rename table's default constraints names\n             * to match the new table name.\n             * This is necessary to ensure that the default\n             * constraints can be referenced in future table\n             * alterations as the table name is encoded in\n             * default constraints' names.\n             */\n            $sql[] = \"DECLARE @sql NVARCHAR(MAX) = N''; \" .\n                \"SELECT @sql += N'EXEC sp_rename N''' + dc.name + ''', N''' \" .\n                \"+ REPLACE(dc.name, '\" . $this->generateIdentifierName($diff->name) . \"', \" .\n                \"'\" . $this->generateIdentifierName($diff->newName) . \"') + ''', ''OBJECT'';' \" .\n                'FROM sys.default_constraints dc ' .\n                'JOIN sys.tables tbl ON dc.parent_object_id = tbl.object_id ' .\n                \"WHERE tbl.name = '\" . $diff->getNewName()->getName() . \"';\" .\n                'EXEC sp_executesql @sql';\n        }\n\n        $sql = array_merge(\n            $this->getPreAlterTableIndexForeignKeySQL($diff),\n            $sql,\n            $this->getPostAlterTableIndexForeignKeySQL($diff)\n        );\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * Returns the SQL clause for adding a default constraint in an ALTER TABLE statement.\n     *\n     * @param string $tableName The name of the table to generate the clause for.\n     * @param Column $column    The column to generate the clause for.\n     *\n     * @return string\n     */\n    private function getAlterTableAddDefaultConstraintClause($tableName, Column $column)\n    {\n        $columnDef         = $column->toArray();\n        $columnDef['name'] = $column->getQuotedName($this);\n\n        return 'ADD' . $this->getDefaultConstraintDeclarationSQL($tableName, $columnDef);\n    }\n\n    /**\n     * Returns the SQL clause for dropping an existing default constraint in an ALTER TABLE statement.\n     *\n     * @param string $tableName  The name of the table to generate the clause for.\n     * @param string $columnName The name of the column to generate the clause for.\n     *\n     * @return string\n     */\n    private function getAlterTableDropDefaultConstraintClause($tableName, $columnName)\n    {\n        return 'DROP CONSTRAINT ' . $this->generateDefaultConstraintName($tableName, $columnName);\n    }\n\n    /**\n     * Checks whether a column alteration requires dropping its default constraint first.\n     *\n     * Different to other database vendors SQL Server implements column default values\n     * as constraints and therefore changes in a column's default value as well as changes\n     * in a column's type require dropping the default constraint first before being to\n     * alter the particular column to the new definition.\n     *\n     * @param ColumnDiff $columnDiff The column diff to evaluate.\n     *\n     * @return bool True if the column alteration requires dropping its default constraint first, false otherwise.\n     */\n    private function alterColumnRequiresDropDefaultConstraint(ColumnDiff $columnDiff)\n    {\n        // We can only decide whether to drop an existing default constraint\n        // if we know the original default value.\n        if (! $columnDiff->fromColumn instanceof Column) {\n            return false;\n        }\n\n        // We only need to drop an existing default constraint if we know the\n        // column was defined with a default value before.\n        if ($columnDiff->fromColumn->getDefault() === null) {\n            return false;\n        }\n\n        // We need to drop an existing default constraint if the column was\n        // defined with a default value before and it has changed.\n        if ($columnDiff->hasChanged('default')) {\n            return true;\n        }\n\n        // We need to drop an existing default constraint if the column was\n        // defined with a default value before and the native column type has changed.\n        return $columnDiff->hasChanged('type') || $columnDiff->hasChanged('fixed');\n    }\n\n    /**\n     * Returns the SQL statement for altering a column comment.\n     *\n     * SQL Server does not support native column comments,\n     * therefore the extended properties functionality is used\n     * as a workaround to store them.\n     * The property name used to store column comments is \"MS_Description\"\n     * which provides compatibility with SQL Server Management Studio,\n     * as column comments are stored in the same property there when\n     * specifying a column's \"Description\" attribute.\n     *\n     * @param string $tableName  The quoted table name to which the column belongs.\n     * @param string $columnName The quoted column name to alter the comment for.\n     * @param string $comment    The column's comment.\n     *\n     * @return string\n     */\n    protected function getAlterColumnCommentSQL($tableName, $columnName, $comment)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schemaSQL, $tableSQL] = explode('.', $tableName);\n            $schemaSQL              = $this->quoteStringLiteral($schemaSQL);\n            $tableSQL               = $this->quoteStringLiteral($tableSQL);\n        } else {\n            $schemaSQL = \"'dbo'\";\n            $tableSQL  = $this->quoteStringLiteral($tableName);\n        }\n\n        return $this->getUpdateExtendedPropertySQL(\n            'MS_Description',\n            $comment,\n            'SCHEMA',\n            $schemaSQL,\n            'TABLE',\n            $tableSQL,\n            'COLUMN',\n            $columnName\n        );\n    }\n\n    /**\n     * Returns the SQL statement for dropping a column comment.\n     *\n     * SQL Server does not support native column comments,\n     * therefore the extended properties functionality is used\n     * as a workaround to store them.\n     * The property name used to store column comments is \"MS_Description\"\n     * which provides compatibility with SQL Server Management Studio,\n     * as column comments are stored in the same property there when\n     * specifying a column's \"Description\" attribute.\n     *\n     * @param string $tableName  The quoted table name to which the column belongs.\n     * @param string $columnName The quoted column name to drop the comment for.\n     *\n     * @return string\n     */\n    protected function getDropColumnCommentSQL($tableName, $columnName)\n    {\n        if (strpos($tableName, '.') !== false) {\n            [$schemaSQL, $tableSQL] = explode('.', $tableName);\n            $schemaSQL              = $this->quoteStringLiteral($schemaSQL);\n            $tableSQL               = $this->quoteStringLiteral($tableSQL);\n        } else {\n            $schemaSQL = \"'dbo'\";\n            $tableSQL  = $this->quoteStringLiteral($tableName);\n        }\n\n        return $this->getDropExtendedPropertySQL(\n            'MS_Description',\n            'SCHEMA',\n            $schemaSQL,\n            'TABLE',\n            $tableSQL,\n            'COLUMN',\n            $columnName\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getRenameIndexSQL($oldIndexName, Index $index, $tableName)\n    {\n        return [sprintf(\n            \"EXEC sp_RENAME N'%s.%s', N'%s', N'INDEX'\",\n            $tableName,\n            $oldIndexName,\n            $index->getQuotedName($this)\n        ),\n        ];\n    }\n\n    /**\n     * Returns the SQL statement for adding an extended property to a database object.\n     *\n     * @link http://msdn.microsoft.com/en-us/library/ms180047%28v=sql.90%29.aspx\n     *\n     * @param string      $name       The name of the property to add.\n     * @param string|null $value      The value of the property to add.\n     * @param string|null $level0Type The type of the object at level 0 the property belongs to.\n     * @param string|null $level0Name The name of the object at level 0 the property belongs to.\n     * @param string|null $level1Type The type of the object at level 1 the property belongs to.\n     * @param string|null $level1Name The name of the object at level 1 the property belongs to.\n     * @param string|null $level2Type The type of the object at level 2 the property belongs to.\n     * @param string|null $level2Name The name of the object at level 2 the property belongs to.\n     *\n     * @return string\n     */\n    public function getAddExtendedPropertySQL(\n        $name,\n        $value = null,\n        $level0Type = null,\n        $level0Name = null,\n        $level1Type = null,\n        $level1Name = null,\n        $level2Type = null,\n        $level2Name = null\n    ) {\n        return 'EXEC sp_addextendedproperty ' .\n            'N' . $this->quoteStringLiteral($name) . ', N' . $this->quoteStringLiteral($value) . ', ' .\n            'N' . $this->quoteStringLiteral($level0Type) . ', ' . $level0Name . ', ' .\n            'N' . $this->quoteStringLiteral($level1Type) . ', ' . $level1Name . ', ' .\n            'N' . $this->quoteStringLiteral($level2Type) . ', ' . $level2Name;\n    }\n\n    /**\n     * Returns the SQL statement for dropping an extended property from a database object.\n     *\n     * @link http://technet.microsoft.com/en-gb/library/ms178595%28v=sql.90%29.aspx\n     *\n     * @param string      $name       The name of the property to drop.\n     * @param string|null $level0Type The type of the object at level 0 the property belongs to.\n     * @param string|null $level0Name The name of the object at level 0 the property belongs to.\n     * @param string|null $level1Type The type of the object at level 1 the property belongs to.\n     * @param string|null $level1Name The name of the object at level 1 the property belongs to.\n     * @param string|null $level2Type The type of the object at level 2 the property belongs to.\n     * @param string|null $level2Name The name of the object at level 2 the property belongs to.\n     *\n     * @return string\n     */\n    public function getDropExtendedPropertySQL(\n        $name,\n        $level0Type = null,\n        $level0Name = null,\n        $level1Type = null,\n        $level1Name = null,\n        $level2Type = null,\n        $level2Name = null\n    ) {\n        return 'EXEC sp_dropextendedproperty ' .\n            'N' . $this->quoteStringLiteral($name) . ', ' .\n            'N' . $this->quoteStringLiteral($level0Type) . ', ' . $level0Name . ', ' .\n            'N' . $this->quoteStringLiteral($level1Type) . ', ' . $level1Name . ', ' .\n            'N' . $this->quoteStringLiteral($level2Type) . ', ' . $level2Name;\n    }\n\n    /**\n     * Returns the SQL statement for updating an extended property of a database object.\n     *\n     * @link http://msdn.microsoft.com/en-us/library/ms186885%28v=sql.90%29.aspx\n     *\n     * @param string      $name       The name of the property to update.\n     * @param string|null $value      The value of the property to update.\n     * @param string|null $level0Type The type of the object at level 0 the property belongs to.\n     * @param string|null $level0Name The name of the object at level 0 the property belongs to.\n     * @param string|null $level1Type The type of the object at level 1 the property belongs to.\n     * @param string|null $level1Name The name of the object at level 1 the property belongs to.\n     * @param string|null $level2Type The type of the object at level 2 the property belongs to.\n     * @param string|null $level2Name The name of the object at level 2 the property belongs to.\n     *\n     * @return string\n     */\n    public function getUpdateExtendedPropertySQL(\n        $name,\n        $value = null,\n        $level0Type = null,\n        $level0Name = null,\n        $level1Type = null,\n        $level1Name = null,\n        $level2Type = null,\n        $level2Name = null\n    ) {\n        return 'EXEC sp_updateextendedproperty ' .\n        'N' . $this->quoteStringLiteral($name) . ', N' . $this->quoteStringLiteral($value) . ', ' .\n        'N' . $this->quoteStringLiteral($level0Type) . ', ' . $level0Name . ', ' .\n        'N' . $this->quoteStringLiteral($level1Type) . ', ' . $level1Name . ', ' .\n        'N' . $this->quoteStringLiteral($level2Type) . ', ' . $level2Name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getEmptyIdentityInsertSQL($quotedTableName, $quotedIdentifierColumnName)\n    {\n        return 'INSERT INTO ' . $quotedTableName . ' DEFAULT VALUES';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        // \"sysdiagrams\" table must be ignored as it's internal SQL Server table for Database Diagrams\n        // Category 2 must be ignored as it is \"MS SQL Server 'pseudo-system' object[s]\" for replication\n        return \"SELECT name FROM sysobjects WHERE type = 'U' AND name != 'sysdiagrams' AND category != 2 ORDER BY name\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $database = null)\n    {\n        return \"SELECT    col.name,\n                          type.name AS type,\n                          col.max_length AS length,\n                          ~col.is_nullable AS notnull,\n                          def.definition AS [default],\n                          col.scale,\n                          col.precision,\n                          col.is_identity AS autoincrement,\n                          col.collation_name AS collation,\n                          CAST(prop.value AS NVARCHAR(MAX)) AS comment -- CAST avoids driver error for sql_variant type\n                FROM      sys.columns AS col\n                JOIN      sys.types AS type\n                ON        col.user_type_id = type.user_type_id\n                JOIN      sys.objects AS obj\n                ON        col.object_id = obj.object_id\n                JOIN      sys.schemas AS scm\n                ON        obj.schema_id = scm.schema_id\n                LEFT JOIN sys.default_constraints def\n                ON        col.default_object_id = def.object_id\n                AND       col.object_id = def.parent_object_id\n                LEFT JOIN sys.extended_properties AS prop\n                ON        obj.object_id = prop.major_id\n                AND       col.column_id = prop.minor_id\n                AND       prop.name = 'MS_Description'\n                WHERE     obj.type = 'U'\n                AND       \" . $this->getTableWhereClause($table, 'scm.name', 'obj.name');\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table, $database = null)\n    {\n        return 'SELECT f.name AS ForeignKey,\n                SCHEMA_NAME (f.SCHEMA_ID) AS SchemaName,\n                OBJECT_NAME (f.parent_object_id) AS TableName,\n                COL_NAME (fc.parent_object_id,fc.parent_column_id) AS ColumnName,\n                SCHEMA_NAME (o.SCHEMA_ID) ReferenceSchemaName,\n                OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,\n                COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName,\n                f.delete_referential_action_desc,\n                f.update_referential_action_desc\n                FROM sys.foreign_keys AS f\n                INNER JOIN sys.foreign_key_columns AS fc\n                INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id\n                ON f.OBJECT_ID = fc.constraint_object_id\n                WHERE ' .\n                $this->getTableWhereClause($table, 'SCHEMA_NAME (f.schema_id)', 'OBJECT_NAME (f.parent_object_id)');\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        return \"SELECT idx.name AS key_name,\n                       col.name AS column_name,\n                       ~idx.is_unique AS non_unique,\n                       idx.is_primary_key AS [primary],\n                       CASE idx.type\n                           WHEN '1' THEN 'clustered'\n                           WHEN '2' THEN 'nonclustered'\n                           ELSE NULL\n                       END AS flags\n                FROM sys.tables AS tbl\n                JOIN sys.schemas AS scm ON tbl.schema_id = scm.schema_id\n                JOIN sys.indexes AS idx ON tbl.object_id = idx.object_id\n                JOIN sys.index_columns AS idxcol ON idx.object_id = idxcol.object_id AND idx.index_id = idxcol.index_id\n                JOIN sys.columns AS col ON idxcol.object_id = col.object_id AND idxcol.column_id = col.column_id\n                WHERE \" . $this->getTableWhereClause($table, 'scm.name', 'tbl.name') . '\n                ORDER BY idx.index_id ASC, idxcol.key_ordinal ASC';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return \"SELECT name FROM sysobjects WHERE type = 'V' ORDER BY name\";\n    }\n\n    /**\n     * Returns the where clause to filter schema and table name in a query.\n     *\n     * @param string $table        The full qualified name of the table.\n     * @param string $schemaColumn The name of the column to compare the schema to in the where clause.\n     * @param string $tableColumn  The name of the column to compare the table to in the where clause.\n     *\n     * @return string\n     */\n    private function getTableWhereClause($table, $schemaColumn, $tableColumn)\n    {\n        if (strpos($table, '.') !== false) {\n            [$schema, $table] = explode('.', $table);\n            $schema           = $this->quoteStringLiteral($schema);\n            $table            = $this->quoteStringLiteral($table);\n        } else {\n            $schema = 'SCHEMA_NAME()';\n            $table  = $this->quoteStringLiteral($table);\n        }\n\n        return sprintf('(%s = %s AND %s = %s)', $tableColumn, $table, $schemaColumn, $schema);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return 'NEWID()';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'CHARINDEX(' . $substr . ', ' . $str . ')';\n        }\n\n        return 'CHARINDEX(' . $substr . ', ' . $str . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getModExpression($expression1, $expression2)\n    {\n        return $expression1 . ' % ' . $expression2;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTrimExpression($str, $pos = TrimMode::UNSPECIFIED, $char = false)\n    {\n        if (! $char) {\n            switch ($pos) {\n                case TrimMode::LEADING:\n                    $trimFn = 'LTRIM';\n                    break;\n\n                case TrimMode::TRAILING:\n                    $trimFn = 'RTRIM';\n                    break;\n\n                default:\n                    return 'LTRIM(RTRIM(' . $str . '))';\n            }\n\n            return $trimFn . '(' . $str . ')';\n        }\n\n        /** Original query used to get those expressions\n          declare @c varchar(100) = 'xxxBarxxx', @trim_char char(1) = 'x';\n          declare @pat varchar(10) = '%[^' + @trim_char + ']%';\n          select @c as string\n          , @trim_char as trim_char\n          , stuff(@c, 1, patindex(@pat, @c) - 1, null) as trim_leading\n          , reverse(stuff(reverse(@c), 1, patindex(@pat, reverse(@c)) - 1, null)) as trim_trailing\n          , reverse(stuff(reverse(stuff(@c, 1, patindex(@pat, @c) - 1, null)), 1, patindex(@pat, reverse(stuff(@c, 1, patindex(@pat, @c) - 1, null))) - 1, null)) as trim_both;\n         */\n        $pattern = \"'%[^' + \" . $char . \" + ']%'\";\n\n        if ($pos === TrimMode::LEADING) {\n            return 'stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str . ') - 1, null)';\n        }\n\n        if ($pos === TrimMode::TRAILING) {\n            return 'reverse(stuff(reverse(' . $str . '), 1, patindex(' . $pattern . ', reverse(' . $str . ')) - 1, null))';\n        }\n\n        return 'reverse(stuff(reverse(stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str . ') - 1, null)), 1, patindex(' . $pattern . ', reverse(stuff(' . $str . ', 1, patindex(' . $pattern . ', ' . $str . ') - 1, null))) - 1, null))';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getConcatExpression()\n    {\n        $args = func_get_args();\n\n        return '(' . implode(' + ', $args) . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListDatabasesSQL()\n    {\n        return 'SELECT * FROM sys.databases';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListNamespacesSQL()\n    {\n        return \"SELECT name FROM sys.schemas WHERE name NOT IN('guest', 'INFORMATION_SCHEMA', 'sys')\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSubstringExpression($value, $from, $length = null)\n    {\n        if ($length !== null) {\n            return 'SUBSTRING(' . $value . ', ' . $from . ', ' . $length . ')';\n        }\n\n        return 'SUBSTRING(' . $value . ', ' . $from . ', LEN(' . $value . ') - ' . $from . ' + 1)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLengthExpression($column)\n    {\n        return 'LEN(' . $column . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'SET TRANSACTION ISOLATION LEVEL ' . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        return 'INT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getGuidTypeDeclarationSQL(array $field)\n    {\n        return 'UNIQUEIDENTIFIER';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'NCHAR(' . $length . ')' : 'CHAR(255)') : ($length ? 'NVARCHAR(' . $length . ')' : 'NVARCHAR(255)');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? 'BINARY(' . ($length ?: 255) . ')' : 'VARBINARY(' . ($length ?: 255) . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 8000;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'VARCHAR(MAX)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        return ! empty($columnDef['autoincrement']) ? ' IDENTITY' : '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'BIT';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset = null)\n    {\n        $where = [];\n\n        if ($offset > 0) {\n            $where[] = sprintf('doctrine_rownum >= %d', $offset + 1);\n        }\n\n        if ($limit !== null) {\n            $where[] = sprintf('doctrine_rownum <= %d', $offset + $limit);\n            $top     = sprintf('TOP %d', $offset + $limit);\n        } else {\n            $top = 'TOP 9223372036854775807';\n        }\n\n        if (empty($where)) {\n            return $query;\n        }\n\n        // We'll find a SELECT or SELECT distinct and prepend TOP n to it\n        // Even if the TOP n is very large, the use of a CTE will\n        // allow the SQL Server query planner to optimize it so it doesn't\n        // actually scan the entire range covered by the TOP clause.\n        $selectPattern  = '/^(\\s*SELECT\\s+(?:DISTINCT\\s+)?)(.*)$/im';\n        $replacePattern = sprintf('$1%s $2', $top);\n        $query          = preg_replace($selectPattern, $replacePattern, $query);\n\n        if (stristr($query, 'ORDER BY')) {\n            // Inner order by is not valid in SQL Server for our purposes\n            // unless it's in a TOP N subquery.\n            $query = $this->scrubInnerOrderBy($query);\n        }\n\n        // Build a new limited query around the original, using a CTE\n        return sprintf(\n            'WITH dctrn_cte AS (%s) '\n            . 'SELECT * FROM ('\n            . 'SELECT *, ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS doctrine_rownum FROM dctrn_cte'\n            . ') AS doctrine_tbl '\n            . 'WHERE %s ORDER BY doctrine_rownum ASC',\n            $query,\n            implode(' AND ', $where)\n        );\n    }\n\n    /**\n     * Remove ORDER BY clauses in subqueries - they're not supported by SQL Server.\n     * Caveat: will leave ORDER BY in TOP N subqueries.\n     *\n     * @param string $query\n     *\n     * @return string\n     */\n    private function scrubInnerOrderBy($query)\n    {\n        $count  = substr_count(strtoupper($query), 'ORDER BY');\n        $offset = 0;\n\n        while ($count-- > 0) {\n            $orderByPos = stripos($query, ' ORDER BY', $offset);\n            if ($orderByPos === false) {\n                break;\n            }\n\n            $qLen            = strlen($query);\n            $parenCount      = 0;\n            $currentPosition = $orderByPos;\n\n            while ($parenCount >= 0 && $currentPosition < $qLen) {\n                if ($query[$currentPosition] === '(') {\n                    $parenCount++;\n                } elseif ($query[$currentPosition] === ')') {\n                    $parenCount--;\n                }\n\n                $currentPosition++;\n            }\n\n            if ($this->isOrderByInTopNSubquery($query, $orderByPos)) {\n                // If the order by clause is in a TOP N subquery, do not remove\n                // it and continue iteration from the current position.\n                $offset = $currentPosition;\n                continue;\n            }\n\n            if ($currentPosition >= $qLen - 1) {\n                continue;\n            }\n\n            $query  = substr($query, 0, $orderByPos) . substr($query, $currentPosition - 1);\n            $offset = $orderByPos;\n        }\n        return $query;\n    }\n\n    /**\n     * Check an ORDER BY clause to see if it is in a TOP N query or subquery.\n     *\n     * @param string $query           The query\n     * @param int    $currentPosition Start position of ORDER BY clause\n     *\n     * @return bool true if ORDER BY is in a TOP N query, false otherwise\n     */\n    private function isOrderByInTopNSubquery($query, $currentPosition)\n    {\n        // Grab query text on the same nesting level as the ORDER BY clause we're examining.\n        $subQueryBuffer = '';\n        $parenCount     = 0;\n\n        // If $parenCount goes negative, we've exited the subquery we're examining.\n        // If $currentPosition goes negative, we've reached the beginning of the query.\n        while ($parenCount >= 0 && $currentPosition >= 0) {\n            if ($query[$currentPosition] === '(') {\n                $parenCount--;\n            } elseif ($query[$currentPosition] === ')') {\n                $parenCount++;\n            }\n\n            // Only yank query text on the same nesting level as the ORDER BY clause.\n            $subQueryBuffer = ($parenCount === 0 ? $query[$currentPosition] : ' ') . $subQueryBuffer;\n\n            $currentPosition--;\n        }\n\n        return (bool) preg_match('/SELECT\\s+(DISTINCT\\s+)?TOP\\s/i', $subQueryBuffer);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsLimitOffset()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function convertBooleans($item)\n    {\n        if (is_array($item)) {\n            foreach ($item as $key => $value) {\n                if (! is_bool($value) && ! is_numeric($item)) {\n                    continue;\n                }\n\n                $item[$key] = $value ? 1 : 0;\n            }\n        } elseif (is_bool($item) || is_numeric($item)) {\n            $item = $item ? 1 : 0;\n        }\n\n        return $item;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateTemporaryTableSnippetSQL()\n    {\n        return 'CREATE TABLE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTemporaryTableName($tableName)\n    {\n        return '#' . $tableName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeFormatString()\n    {\n        return 'Y-m-d H:i:s.000';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateFormatString()\n    {\n        return 'Y-m-d H:i:s.000';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeFormatString()\n    {\n        return 'Y-m-d H:i:s.000';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTzFormatString()\n    {\n        return $this->getDateTimeFormatString();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'mssql';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'bigint' => 'bigint',\n            'numeric' => 'decimal',\n            'bit' => 'boolean',\n            'smallint' => 'smallint',\n            'decimal' => 'decimal',\n            'smallmoney' => 'integer',\n            'int' => 'integer',\n            'tinyint' => 'smallint',\n            'money' => 'integer',\n            'float' => 'float',\n            'real' => 'float',\n            'double' => 'float',\n            'double precision' => 'float',\n            'smalldatetime' => 'datetime',\n            'datetime' => 'datetime',\n            'char' => 'string',\n            'varchar' => 'string',\n            'text' => 'text',\n            'nchar' => 'string',\n            'nvarchar' => 'string',\n            'ntext' => 'text',\n            'binary' => 'binary',\n            'varbinary' => 'binary',\n            'image' => 'blob',\n            'uniqueidentifier' => 'guid',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function createSavePoint($savepoint)\n    {\n        return 'SAVE TRANSACTION ' . $savepoint;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function releaseSavePoint($savepoint)\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function rollbackSavePoint($savepoint)\n    {\n        return 'ROLLBACK TRANSACTION ' . $savepoint;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getForeignKeyReferentialActionSQL($action)\n    {\n        // RESTRICT is not supported, therefore falling back to NO ACTION.\n        if (strtoupper($action) === 'RESTRICT') {\n            return 'NO ACTION';\n        }\n\n        return parent::getForeignKeyReferentialActionSQL($action);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function appendLockHint($fromClause, $lockMode)\n    {\n        switch (true) {\n            case $lockMode === LockMode::NONE:\n                return $fromClause . ' WITH (NOLOCK)';\n\n            case $lockMode === LockMode::PESSIMISTIC_READ:\n                return $fromClause . ' WITH (HOLDLOCK, ROWLOCK)';\n\n            case $lockMode === LockMode::PESSIMISTIC_WRITE:\n                return $fromClause . ' WITH (UPDLOCK, ROWLOCK)';\n\n            default:\n                return $fromClause;\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getForUpdateSQL()\n    {\n        return ' ';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLServerKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function quoteSingleIdentifier($str)\n    {\n        return '[' . str_replace(']', '][', $str) . ']';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n\n        return 'TRUNCATE TABLE ' . $tableIdentifier->getQuotedName($this);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'VARBINARY(MAX)';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDefaultValueDeclarationSQL($field)\n    {\n        if (! isset($field['default'])) {\n            return empty($field['notnull']) ? ' NULL' : '';\n        }\n\n        if (! isset($field['type'])) {\n            return \" DEFAULT '\" . $field['default'] . \"'\";\n        }\n\n        $type = $field['type'];\n\n        if ($type instanceof Types\\PhpIntegerMappingType) {\n            return ' DEFAULT ' . $field['default'];\n        }\n\n        if ($type instanceof Types\\PhpDateTimeMappingType && $field['default'] === $this->getCurrentTimestampSQL()) {\n            return ' DEFAULT ' . $this->getCurrentTimestampSQL();\n        }\n\n        if ($type instanceof Types\\BooleanType) {\n            return \" DEFAULT '\" . $this->convertBooleans($field['default']) . \"'\";\n        }\n\n        return \" DEFAULT '\" . $field['default'] . \"'\";\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Modifies column declaration order as it differs in Microsoft SQL Server.\n     */\n    public function getColumnDeclarationSQL($name, array $field)\n    {\n        if (isset($field['columnDefinition'])) {\n            $columnDef = $this->getCustomTypeDeclarationSQL($field);\n        } else {\n            $collation = isset($field['collation']) && $field['collation'] ?\n                ' ' . $this->getColumnCollationDeclarationSQL($field['collation']) : '';\n\n            $notnull = isset($field['notnull']) && $field['notnull'] ? ' NOT NULL' : '';\n\n            $unique = isset($field['unique']) && $field['unique'] ?\n                ' ' . $this->getUniqueFieldDeclarationSQL() : '';\n\n            $check = isset($field['check']) && $field['check'] ?\n                ' ' . $field['check'] : '';\n\n            $typeDecl  = $field['type']->getSQLDeclaration($field, $this);\n            $columnDef = $typeDecl . $collation . $notnull . $unique . $check;\n        }\n\n        return $name . ' ' . $columnDef;\n    }\n\n    /**\n     * Returns a unique default constraint name for a table and column.\n     *\n     * @param string $table  Name of the table to generate the unique default constraint name for.\n     * @param string $column Name of the column in the table to generate the unique default constraint name for.\n     *\n     * @return string\n     */\n    private function generateDefaultConstraintName($table, $column)\n    {\n        return 'DF_' . $this->generateIdentifierName($table) . '_' . $this->generateIdentifierName($column);\n    }\n\n    /**\n     * Returns a hash value for a given identifier.\n     *\n     * @param string $identifier Identifier to generate a hash value for.\n     *\n     * @return string\n     */\n    private function generateIdentifierName($identifier)\n    {\n        // Always generate name for unquoted identifiers to ensure consistency.\n        $identifier = new Identifier($identifier);\n\n        return strtoupper(dechex(crc32($identifier->getName())));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\Constraint;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Identifier;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Doctrine\\DBAL\\TransactionIsolationLevel;\nuse Doctrine\\DBAL\\Types;\nuse function array_merge;\nuse function array_unique;\nuse function array_values;\nuse function implode;\nuse function is_numeric;\nuse function sprintf;\nuse function sqrt;\nuse function str_replace;\nuse function strlen;\nuse function strpos;\nuse function strtolower;\n\n/**\n * The SqlitePlatform class describes the specifics and dialects of the SQLite\n * database platform.\n *\n * @todo   Rename: SQLitePlatform\n */\nclass SqlitePlatform extends AbstractPlatform\n{\n    /**\n     * {@inheritDoc}\n     */\n    public function getRegexpExpression()\n    {\n        return 'REGEXP';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @deprecated Use application-generated UUIDs instead\n     */\n    public function getGuidExpression()\n    {\n        return \"HEX(RANDOMBLOB(4)) || '-' || HEX(RANDOMBLOB(2)) || '-4' || \"\n            . \"SUBSTR(HEX(RANDOMBLOB(2)), 2) || '-' || \"\n            . \"SUBSTR('89AB', 1 + (ABS(RANDOM()) % 4), 1) || \"\n            . \"SUBSTR(HEX(RANDOMBLOB(2)), 2) || '-' || HEX(RANDOMBLOB(6))\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getNowExpression($type = 'timestamp')\n    {\n        switch ($type) {\n            case 'time':\n                return 'time(\\'now\\')';\n            case 'date':\n                return 'date(\\'now\\')';\n            case 'timestamp':\n            default:\n                return 'datetime(\\'now\\')';\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTrimExpression($str, $pos = TrimMode::UNSPECIFIED, $char = false)\n    {\n        $trimChar = $char !== false ? (', ' . $char) : '';\n\n        switch ($pos) {\n            case TrimMode::LEADING:\n                $trimFn = 'LTRIM';\n                break;\n\n            case TrimMode::TRAILING:\n                $trimFn = 'RTRIM';\n                break;\n\n            default:\n                $trimFn = 'TRIM';\n        }\n\n        return $trimFn . '(' . $str . $trimChar . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * SQLite only supports the 2 parameter variant of this function\n     */\n    public function getSubstringExpression($value, $position, $length = null)\n    {\n        if ($length !== null) {\n            return 'SUBSTR(' . $value . ', ' . $position . ', ' . $length . ')';\n        }\n\n        return 'SUBSTR(' . $value . ', ' . $position . ', LENGTH(' . $value . '))';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getLocateExpression($str, $substr, $startPos = false)\n    {\n        if ($startPos === false) {\n            return 'LOCATE(' . $str . ', ' . $substr . ')';\n        }\n\n        return 'LOCATE(' . $str . ', ' . $substr . ', ' . $startPos . ')';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)\n    {\n        switch ($unit) {\n            case DateIntervalUnit::SECOND:\n            case DateIntervalUnit::MINUTE:\n            case DateIntervalUnit::HOUR:\n                return 'DATETIME(' . $date . \",'\" . $operator . $interval . ' ' . $unit . \"')\";\n\n            default:\n                switch ($unit) {\n                    case DateIntervalUnit::WEEK:\n                        $interval *= 7;\n                        $unit      = DateIntervalUnit::DAY;\n                        break;\n\n                    case DateIntervalUnit::QUARTER:\n                        $interval *= 3;\n                        $unit      = DateIntervalUnit::MONTH;\n                        break;\n                }\n\n                if (! is_numeric($interval)) {\n                    $interval = \"' || \" . $interval . \" || '\";\n                }\n\n                return 'DATE(' . $date . \",'\" . $operator . $interval . ' ' . $unit . \"')\";\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateDiffExpression($date1, $date2)\n    {\n        return sprintf(\"JULIANDAY(%s, 'start of day') - JULIANDAY(%s, 'start of day')\", $date1, $date2);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getTransactionIsolationLevelSQL($level)\n    {\n        switch ($level) {\n            case TransactionIsolationLevel::READ_UNCOMMITTED:\n                return 0;\n            case TransactionIsolationLevel::READ_COMMITTED:\n            case TransactionIsolationLevel::REPEATABLE_READ:\n            case TransactionIsolationLevel::SERIALIZABLE:\n                return 1;\n            default:\n                return parent::_getTransactionIsolationLevelSQL($level);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSetTransactionIsolationSQL($level)\n    {\n        return 'PRAGMA read_uncommitted = ' . $this->_getTransactionIsolationLevelSQL($level);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function prefersIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBooleanTypeDeclarationSQL(array $field)\n    {\n        return 'BOOLEAN';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getIntegerTypeDeclarationSQL(array $field)\n    {\n        return 'INTEGER' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBigIntTypeDeclarationSQL(array $field)\n    {\n        //  SQLite autoincrement is implicit for INTEGER PKs, but not for BIGINT fields.\n        if (! empty($field['autoincrement'])) {\n            return $this->getIntegerTypeDeclarationSQL($field);\n        }\n\n        return 'BIGINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTinyIntTypeDeclarationSql(array $field)\n    {\n        //  SQLite autoincrement is implicit for INTEGER PKs, but not for TINYINT fields.\n        if (! empty($field['autoincrement'])) {\n            return $this->getIntegerTypeDeclarationSQL($field);\n        }\n\n        return 'TINYINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getSmallIntTypeDeclarationSQL(array $field)\n    {\n        //  SQLite autoincrement is implicit for INTEGER PKs, but not for SMALLINT fields.\n        if (! empty($field['autoincrement'])) {\n            return $this->getIntegerTypeDeclarationSQL($field);\n        }\n\n        return 'SMALLINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getMediumIntTypeDeclarationSql(array $field)\n    {\n        //  SQLite autoincrement is implicit for INTEGER PKs, but not for MEDIUMINT fields.\n        if (! empty($field['autoincrement'])) {\n            return $this->getIntegerTypeDeclarationSQL($field);\n        }\n\n        return 'MEDIUMINT' . $this->_getCommonIntegerTypeDeclarationSQL($field);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATETIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDateTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'DATE';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTimeTypeDeclarationSQL(array $fieldDeclaration)\n    {\n        return 'TIME';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCommonIntegerTypeDeclarationSQL(array $columnDef)\n    {\n        // sqlite autoincrement is only possible for the primary key\n        if (! empty($columnDef['autoincrement'])) {\n            return ' PRIMARY KEY AUTOINCREMENT';\n        }\n\n        return ! empty($columnDef['unsigned']) ? ' UNSIGNED' : '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getForeignKeyDeclarationSQL(ForeignKeyConstraint $foreignKey)\n    {\n        return parent::getForeignKeyDeclarationSQL(new ForeignKeyConstraint(\n            $foreignKey->getQuotedLocalColumns($this),\n            str_replace('.', '__', $foreignKey->getQuotedForeignTableName($this)),\n            $foreignKey->getQuotedForeignColumns($this),\n            $foreignKey->getName(),\n            $foreignKey->getOptions()\n        ));\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function _getCreateTableSQL($name, array $columns, array $options = [])\n    {\n        $name        = str_replace('.', '__', $name);\n        $queryFields = $this->getColumnDeclarationListSQL($columns);\n\n        if (isset($options['uniqueConstraints']) && ! empty($options['uniqueConstraints'])) {\n            foreach ($options['uniqueConstraints'] as $name => $definition) {\n                $queryFields .= ', ' . $this->getUniqueConstraintDeclarationSQL($name, $definition);\n            }\n        }\n\n        $queryFields .= $this->getNonAutoincrementPrimaryKeyDefinition($columns, $options);\n\n        if (isset($options['foreignKeys'])) {\n            foreach ($options['foreignKeys'] as $foreignKey) {\n                $queryFields .= ', ' . $this->getForeignKeyDeclarationSQL($foreignKey);\n            }\n        }\n\n        $query = ['CREATE TABLE ' . $name . ' (' . $queryFields . ')'];\n\n        if (isset($options['alter']) && $options['alter'] === true) {\n            return $query;\n        }\n\n        if (isset($options['indexes']) && ! empty($options['indexes'])) {\n            foreach ($options['indexes'] as $indexDef) {\n                $query[] = $this->getCreateIndexSQL($indexDef, $name);\n            }\n        }\n\n        if (isset($options['unique']) && ! empty($options['unique'])) {\n            foreach ($options['unique'] as $indexDef) {\n                $query[] = $this->getCreateIndexSQL($indexDef, $name);\n            }\n        }\n\n        return $query;\n    }\n\n    /**\n     * Generate a PRIMARY KEY definition if no autoincrement value is used\n     *\n     * @param string[] $columns\n     * @param mixed[]  $options\n     */\n    private function getNonAutoincrementPrimaryKeyDefinition(array $columns, array $options) : string\n    {\n        if (empty($options['primary'])) {\n            return '';\n        }\n\n        $keyColumns = array_unique(array_values($options['primary']));\n\n        foreach ($keyColumns as $keyColumn) {\n            if (isset($columns[$keyColumn]['autoincrement']) && ! empty($columns[$keyColumn]['autoincrement'])) {\n                return '';\n            }\n        }\n\n        return ', PRIMARY KEY(' . implode(', ', $keyColumns) . ')';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getVarcharTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return $fixed ? ($length ? 'CHAR(' . $length . ')' : 'CHAR(255)')\n                : ($length ? 'VARCHAR(' . $length . ')' : 'TEXT');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getBinaryTypeDeclarationSQLSnippet($length, $fixed)\n    {\n        return 'BLOB';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryMaxLength()\n    {\n        return 0;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBinaryDefaultLength()\n    {\n        return 0;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getClobTypeDeclarationSQL(array $field)\n    {\n        return 'CLOB';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableConstraintsSQL($table)\n    {\n        $table = str_replace('.', '__', $table);\n\n        return sprintf(\n            \"SELECT sql FROM sqlite_master WHERE type='index' AND tbl_name = %s AND sql NOT NULL ORDER BY name\",\n            $this->quoteStringLiteral($table)\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableColumnsSQL($table, $currentDatabase = null)\n    {\n        $table = str_replace('.', '__', $table);\n\n        return sprintf('PRAGMA table_info(%s)', $this->quoteStringLiteral($table));\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableIndexesSQL($table, $currentDatabase = null)\n    {\n        $table = str_replace('.', '__', $table);\n\n        return sprintf('PRAGMA index_list(%s)', $this->quoteStringLiteral($table));\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTablesSQL()\n    {\n        return \"SELECT name FROM sqlite_master WHERE type = 'table' AND name != 'sqlite_sequence' AND name != 'geometry_columns' AND name != 'spatial_ref_sys' \"\n             . 'UNION ALL SELECT name FROM sqlite_temp_master '\n             . \"WHERE type = 'table' ORDER BY name\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListViewsSQL($database)\n    {\n        return \"SELECT name, sql FROM sqlite_master WHERE type='view' AND sql NOT NULL\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateViewSQL($name, $sql)\n    {\n        return 'CREATE VIEW ' . $name . ' AS ' . $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getDropViewSQL($name)\n    {\n        return 'DROP VIEW ' . $name;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAdvancedForeignKeyOptionsSQL(ForeignKeyConstraint $foreignKey)\n    {\n        $query = parent::getAdvancedForeignKeyOptionsSQL($foreignKey);\n\n        $query .= ($foreignKey->hasOption('deferrable') && $foreignKey->getOption('deferrable') !== false ? ' ' : ' NOT ') . 'DEFERRABLE';\n        $query .= ' INITIALLY ' . ($foreignKey->hasOption('deferred') && $foreignKey->getOption('deferred') !== false ? 'DEFERRED' : 'IMMEDIATE');\n\n        return $query;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsIdentityColumns()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsColumnCollation()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsInlineColumnComments()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getName()\n    {\n        return 'sqlite';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTruncateTableSQL($tableName, $cascade = false)\n    {\n        $tableIdentifier = new Identifier($tableName);\n        $tableName       = str_replace('.', '__', $tableIdentifier->getQuotedName($this));\n\n        return 'DELETE FROM ' . $tableName;\n    }\n\n    /**\n     * User-defined function for Sqlite that is used with PDO::sqliteCreateFunction().\n     *\n     * @param int|float $value\n     *\n     * @return float\n     */\n    public static function udfSqrt($value)\n    {\n        return sqrt($value);\n    }\n\n    /**\n     * User-defined function for Sqlite that implements MOD(a, b).\n     *\n     * @param int $a\n     * @param int $b\n     *\n     * @return int\n     */\n    public static function udfMod($a, $b)\n    {\n        return $a % $b;\n    }\n\n    /**\n     * @param string $str\n     * @param string $substr\n     * @param int    $offset\n     *\n     * @return int\n     */\n    public static function udfLocate($str, $substr, $offset = 0)\n    {\n        // SQL's LOCATE function works on 1-based positions, while PHP's strpos works on 0-based positions.\n        // So we have to make them compatible if an offset is given.\n        if ($offset > 0) {\n            $offset -= 1;\n        }\n\n        $pos = strpos($str, $substr, $offset);\n\n        if ($pos !== false) {\n            return $pos + 1;\n        }\n\n        return 0;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getForUpdateSql()\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getInlineColumnCommentSQL($comment)\n    {\n        return '--' . str_replace(\"\\n\", \"\\n--\", $comment) . \"\\n\";\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function initializeDoctrineTypeMappings()\n    {\n        $this->doctrineTypeMapping = [\n            'boolean'          => 'boolean',\n            'tinyint'          => 'boolean',\n            'smallint'         => 'smallint',\n            'mediumint'        => 'integer',\n            'int'              => 'integer',\n            'integer'          => 'integer',\n            'serial'           => 'integer',\n            'bigint'           => 'bigint',\n            'bigserial'        => 'bigint',\n            'clob'             => 'text',\n            'tinytext'         => 'text',\n            'mediumtext'       => 'text',\n            'longtext'         => 'text',\n            'text'             => 'text',\n            'varchar'          => 'string',\n            'longvarchar'      => 'string',\n            'varchar2'         => 'string',\n            'nvarchar'         => 'string',\n            'image'            => 'string',\n            'ntext'            => 'string',\n            'char'             => 'string',\n            'date'             => 'date',\n            'datetime'         => 'datetime',\n            'timestamp'        => 'datetime',\n            'time'             => 'time',\n            'float'            => 'float',\n            'double'           => 'float',\n            'double precision' => 'float',\n            'real'             => 'float',\n            'decimal'          => 'decimal',\n            'numeric'          => 'decimal',\n            'blob'             => 'blob',\n        ];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getReservedKeywordsClass()\n    {\n        return Keywords\\SQLiteKeywords::class;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getPreAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        if (! $diff->fromTable instanceof Table) {\n            throw new DBALException('Sqlite platform requires for alter table the table diff with reference to original table schema');\n        }\n\n        $sql = [];\n        foreach ($diff->fromTable->getIndexes() as $index) {\n            if ($index->isPrimary()) {\n                continue;\n            }\n\n            $sql[] = $this->getDropIndexSQL($index, $diff->name);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getPostAlterTableIndexForeignKeySQL(TableDiff $diff)\n    {\n        if (! $diff->fromTable instanceof Table) {\n            throw new DBALException('Sqlite platform requires for alter table the table diff with reference to original table schema');\n        }\n\n        $sql       = [];\n        $tableName = $diff->newName ? $diff->getNewName(): $diff->getName($this);\n        foreach ($this->getIndexesInAlteredTable($diff) as $index) {\n            if ($index->isPrimary()) {\n                continue;\n            }\n\n            $sql[] = $this->getCreateIndexSQL($index, $tableName->getQuotedName($this));\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function doModifyLimitQuery($query, $limit, $offset)\n    {\n        if ($limit === null && $offset > 0) {\n            return $query . ' LIMIT -1 OFFSET ' . $offset;\n        }\n\n        return parent::doModifyLimitQuery($query, $limit, $offset);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getBlobTypeDeclarationSQL(array $field)\n    {\n        return 'BLOB';\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getTemporaryTableName($tableName)\n    {\n        $tableName = str_replace('.', '__', $tableName);\n\n        return $tableName;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * Sqlite Platform emulates schema by underscoring each dot and generating tables\n     * into the default database.\n     *\n     * This hack is implemented to be able to use SQLite as testdriver when\n     * using schema supporting databases.\n     */\n    public function canEmulateSchemas()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function supportsForeignKeyConstraints()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreatePrimaryKeySQL(Index $index, $table)\n    {\n        throw new DBALException('Sqlite platform does not support alter primary key.');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateForeignKeySQL(ForeignKeyConstraint $foreignKey, $table)\n    {\n        throw new DBALException('Sqlite platform does not support alter foreign key.');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropForeignKeySQL($foreignKey, $table)\n    {\n        throw new DBALException('Sqlite platform does not support alter foreign key.');\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateConstraintSQL(Constraint $constraint, $table)\n    {\n        throw new DBALException('Sqlite platform does not support alter constraint.');\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCreateTableSQL(Table $table, $createFlags = null)\n    {\n        $createFlags = $createFlags ?? self::CREATE_INDEXES | self::CREATE_FOREIGNKEYS;\n\n        return parent::getCreateTableSQL($table, $createFlags);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getListTableForeignKeysSQL($table, $database = null)\n    {\n        $table = str_replace('.', '__', $table);\n\n        return sprintf('PRAGMA foreign_key_list(%s)', $this->quoteStringLiteral($table));\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getAlterTableSQL(TableDiff $diff)\n    {\n        $sql = $this->getSimpleAlterTableSQL($diff);\n        if ($sql !== false) {\n            return $sql;\n        }\n\n        $fromTable = $diff->fromTable;\n        if (! $fromTable instanceof Table) {\n            throw new DBALException('Sqlite platform requires for alter table the table diff with reference to original table schema');\n        }\n\n        $table = clone $fromTable;\n\n        $columns        = [];\n        $oldColumnNames = [];\n        $newColumnNames = [];\n        $columnSql      = [];\n\n        foreach ($table->getColumns() as $columnName => $column) {\n            $columnName                  = strtolower($columnName);\n            $columns[$columnName]        = $column;\n            $oldColumnNames[$columnName] = $newColumnNames[$columnName] = $column->getQuotedName($this);\n        }\n\n        foreach ($diff->removedColumns as $columnName => $column) {\n            if ($this->onSchemaAlterTableRemoveColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columnName = strtolower($columnName);\n            if (! isset($columns[$columnName])) {\n                continue;\n            }\n\n            unset(\n                $columns[$columnName],\n                $oldColumnNames[$columnName],\n                $newColumnNames[$columnName]\n            );\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            if ($this->onSchemaAlterTableRenameColumn($oldColumnName, $column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $oldColumnName = strtolower($oldColumnName);\n            if (isset($columns[$oldColumnName])) {\n                unset($columns[$oldColumnName]);\n            }\n\n            $columns[strtolower($column->getName())] = $column;\n\n            if (! isset($newColumnNames[$oldColumnName])) {\n                continue;\n            }\n\n            $newColumnNames[$oldColumnName] = $column->getQuotedName($this);\n        }\n\n        foreach ($diff->changedColumns as $oldColumnName => $columnDiff) {\n            if ($this->onSchemaAlterTableChangeColumn($columnDiff, $diff, $columnSql)) {\n                continue;\n            }\n\n            if (isset($columns[$oldColumnName])) {\n                unset($columns[$oldColumnName]);\n            }\n\n            $columns[strtolower($columnDiff->column->getName())] = $columnDiff->column;\n\n            if (! isset($newColumnNames[$oldColumnName])) {\n                continue;\n            }\n\n            $newColumnNames[$oldColumnName] = $columnDiff->column->getQuotedName($this);\n        }\n\n        foreach ($diff->addedColumns as $columnName => $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $columns[strtolower($columnName)] = $column;\n        }\n\n        $sql      = [];\n        $tableSql = [];\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            $dataTable = new Table('__temp__' . $table->getName());\n\n            $newTable = new Table($table->getQuotedName($this), $columns, $this->getPrimaryIndexInAlteredTable($diff), $this->getForeignKeysInAlteredTable($diff), 0, $table->getOptions());\n            $newTable->addOption('alter', true);\n\n            $sql = $this->getPreAlterTableIndexForeignKeySQL($diff);\n            //$sql = array_merge($sql, $this->getCreateTableSQL($dataTable, 0));\n            $sql[] = sprintf('CREATE TEMPORARY TABLE %s AS SELECT %s FROM %s', $dataTable->getQuotedName($this), implode(', ', $oldColumnNames), $table->getQuotedName($this));\n            $sql[] = $this->getDropTableSQL($fromTable);\n\n            $sql   = array_merge($sql, $this->getCreateTableSQL($newTable));\n            $sql[] = sprintf('INSERT INTO %s (%s) SELECT %s FROM %s', $newTable->getQuotedName($this), implode(', ', $newColumnNames), implode(', ', $oldColumnNames), $dataTable->getQuotedName($this));\n            $sql[] = $this->getDropTableSQL($dataTable);\n\n            if ($diff->newName && $diff->newName !== $diff->name) {\n                $renamedTable = $diff->getNewName();\n                $sql[]        = 'ALTER TABLE ' . $newTable->getQuotedName($this) . ' RENAME TO ' . $renamedTable->getQuotedName($this);\n            }\n\n            $sql = array_merge($sql, $this->getPostAlterTableIndexForeignKeySQL($diff));\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * @return string[]|false\n     */\n    private function getSimpleAlterTableSQL(TableDiff $diff)\n    {\n        // Suppress changes on integer type autoincrement columns.\n        foreach ($diff->changedColumns as $oldColumnName => $columnDiff) {\n            if (! $columnDiff->fromColumn instanceof Column ||\n                ! $columnDiff->column instanceof Column ||\n                ! $columnDiff->column->getAutoincrement() ||\n                ! $columnDiff->column->getType() instanceof Types\\IntegerType\n            ) {\n                continue;\n            }\n\n            if (! $columnDiff->hasChanged('type') && $columnDiff->hasChanged('unsigned')) {\n                unset($diff->changedColumns[$oldColumnName]);\n\n                continue;\n            }\n\n            $fromColumnType = $columnDiff->fromColumn->getType();\n\n            if (! ($fromColumnType instanceof Types\\SmallIntType) && ! ($fromColumnType instanceof Types\\BigIntType)) {\n                continue;\n            }\n\n            unset($diff->changedColumns[$oldColumnName]);\n        }\n\n        if (! empty($diff->renamedColumns) || ! empty($diff->addedForeignKeys) || ! empty($diff->addedIndexes)\n                || ! empty($diff->changedColumns) || ! empty($diff->changedForeignKeys) || ! empty($diff->changedIndexes)\n                || ! empty($diff->removedColumns) || ! empty($diff->removedForeignKeys) || ! empty($diff->removedIndexes)\n                || ! empty($diff->renamedIndexes)\n        ) {\n            return false;\n        }\n\n        $table = new Table($diff->name);\n\n        $sql       = [];\n        $tableSql  = [];\n        $columnSql = [];\n\n        foreach ($diff->addedColumns as $column) {\n            if ($this->onSchemaAlterTableAddColumn($column, $diff, $columnSql)) {\n                continue;\n            }\n\n            $field = array_merge(['unique' => null, 'autoincrement' => null, 'default' => null], $column->toArray());\n            $type  = $field['type'];\n            switch (true) {\n                case isset($field['columnDefinition']) || $field['autoincrement'] || $field['unique']:\n                case $type instanceof Types\\DateTimeType && $field['default'] === $this->getCurrentTimestampSQL():\n                case $type instanceof Types\\DateType && $field['default'] === $this->getCurrentDateSQL():\n                case $type instanceof Types\\TimeType && $field['default'] === $this->getCurrentTimeSQL():\n                    return false;\n            }\n\n            $field['name'] = $column->getQuotedName($this);\n            if ($type instanceof Types\\StringType && $field['length'] === null) {\n                $field['length'] = 255;\n            }\n\n            $sql[] = 'ALTER TABLE ' . $table->getQuotedName($this) . ' ADD COLUMN ' . $this->getColumnDeclarationSQL($field['name'], $field);\n        }\n\n        if (! $this->onSchemaAlterTable($diff, $tableSql)) {\n            if ($diff->newName !== false) {\n                $newTable = new Identifier($diff->newName);\n                $sql[]    = 'ALTER TABLE ' . $table->getQuotedName($this) . ' RENAME TO ' . $newTable->getQuotedName($this);\n            }\n        }\n\n        return array_merge($sql, $tableSql, $columnSql);\n    }\n\n    /**\n     * @return string[]\n     */\n    private function getColumnNamesInAlteredTable(TableDiff $diff)\n    {\n        $columns = [];\n\n        foreach ($diff->fromTable->getColumns() as $columnName => $column) {\n            $columns[strtolower($columnName)] = $column->getName();\n        }\n\n        foreach ($diff->removedColumns as $columnName => $column) {\n            $columnName = strtolower($columnName);\n            if (! isset($columns[$columnName])) {\n                continue;\n            }\n\n            unset($columns[$columnName]);\n        }\n\n        foreach ($diff->renamedColumns as $oldColumnName => $column) {\n            $columnName                          = $column->getName();\n            $columns[strtolower($oldColumnName)] = $columnName;\n            $columns[strtolower($columnName)]    = $columnName;\n        }\n\n        foreach ($diff->changedColumns as $oldColumnName => $columnDiff) {\n            $columnName                          = $columnDiff->column->getName();\n            $columns[strtolower($oldColumnName)] = $columnName;\n            $columns[strtolower($columnName)]    = $columnName;\n        }\n\n        foreach ($diff->addedColumns as $columnName => $column) {\n            $columns[strtolower($columnName)] = $columnName;\n        }\n\n        return $columns;\n    }\n\n    /**\n     * @return Index[]\n     */\n    private function getIndexesInAlteredTable(TableDiff $diff)\n    {\n        $indexes     = $diff->fromTable->getIndexes();\n        $columnNames = $this->getColumnNamesInAlteredTable($diff);\n\n        foreach ($indexes as $key => $index) {\n            foreach ($diff->renamedIndexes as $oldIndexName => $renamedIndex) {\n                if (strtolower($key) !== strtolower($oldIndexName)) {\n                    continue;\n                }\n\n                unset($indexes[$key]);\n            }\n\n            $changed      = false;\n            $indexColumns = [];\n            foreach ($index->getColumns() as $columnName) {\n                $normalizedColumnName = strtolower($columnName);\n                if (! isset($columnNames[$normalizedColumnName])) {\n                    unset($indexes[$key]);\n                    continue 2;\n                } else {\n                    $indexColumns[] = $columnNames[$normalizedColumnName];\n                    if ($columnName !== $columnNames[$normalizedColumnName]) {\n                        $changed = true;\n                    }\n                }\n            }\n\n            if (! $changed) {\n                continue;\n            }\n\n            $indexes[$key] = new Index($index->getName(), $indexColumns, $index->isUnique(), $index->isPrimary(), $index->getFlags());\n        }\n\n        foreach ($diff->removedIndexes as $index) {\n            $indexName = strtolower($index->getName());\n            if (! strlen($indexName) || ! isset($indexes[$indexName])) {\n                continue;\n            }\n\n            unset($indexes[$indexName]);\n        }\n\n        foreach (array_merge($diff->changedIndexes, $diff->addedIndexes, $diff->renamedIndexes) as $index) {\n            $indexName = strtolower($index->getName());\n            if (strlen($indexName)) {\n                $indexes[$indexName] = $index;\n            } else {\n                $indexes[] = $index;\n            }\n        }\n\n        return $indexes;\n    }\n\n    /**\n     * @return ForeignKeyConstraint[]\n     */\n    private function getForeignKeysInAlteredTable(TableDiff $diff)\n    {\n        $foreignKeys = $diff->fromTable->getForeignKeys();\n        $columnNames = $this->getColumnNamesInAlteredTable($diff);\n\n        foreach ($foreignKeys as $key => $constraint) {\n            $changed      = false;\n            $localColumns = [];\n            foreach ($constraint->getLocalColumns() as $columnName) {\n                $normalizedColumnName = strtolower($columnName);\n                if (! isset($columnNames[$normalizedColumnName])) {\n                    unset($foreignKeys[$key]);\n                    continue 2;\n                } else {\n                    $localColumns[] = $columnNames[$normalizedColumnName];\n                    if ($columnName !== $columnNames[$normalizedColumnName]) {\n                        $changed = true;\n                    }\n                }\n            }\n\n            if (! $changed) {\n                continue;\n            }\n\n            $foreignKeys[$key] = new ForeignKeyConstraint($localColumns, $constraint->getForeignTableName(), $constraint->getForeignColumns(), $constraint->getName(), $constraint->getOptions());\n        }\n\n        foreach ($diff->removedForeignKeys as $constraint) {\n            $constraintName = strtolower($constraint->getName());\n            if (! strlen($constraintName) || ! isset($foreignKeys[$constraintName])) {\n                continue;\n            }\n\n            unset($foreignKeys[$constraintName]);\n        }\n\n        foreach (array_merge($diff->changedForeignKeys, $diff->addedForeignKeys) as $constraint) {\n            $constraintName = strtolower($constraint->getName());\n            if (strlen($constraintName)) {\n                $foreignKeys[$constraintName] = $constraint;\n            } else {\n                $foreignKeys[] = $constraint;\n            }\n        }\n\n        return $foreignKeys;\n    }\n\n    /**\n     * @return Index[]\n     */\n    private function getPrimaryIndexInAlteredTable(TableDiff $diff)\n    {\n        $primaryIndex = [];\n\n        foreach ($this->getIndexesInAlteredTable($diff) as $index) {\n            if (! $index->isPrimary()) {\n                continue;\n            }\n\n            $primaryIndex = [$index->getName() => $index];\n        }\n\n        return $primaryIndex;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/TrimMode.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL\\Platforms;\n\nfinal class TrimMode\n{\n    public const UNSPECIFIED = 0;\n\n    public const LEADING = 1;\n\n    public const TRAILING = 2;\n\n    public const BOTH = 3;\n\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Portability/Connection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Portability;\n\nuse Doctrine\\DBAL\\Cache\\QueryCacheProfile;\nuse Doctrine\\DBAL\\ColumnCase;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse PDO;\nuse const CASE_LOWER;\nuse const CASE_UPPER;\nuse function func_get_args;\n\n/**\n * Portability wrapper for a Connection.\n */\nclass Connection extends \\Doctrine\\DBAL\\Connection\n{\n    public const PORTABILITY_ALL           = 255;\n    public const PORTABILITY_NONE          = 0;\n    public const PORTABILITY_RTRIM         = 1;\n    public const PORTABILITY_EMPTY_TO_NULL = 4;\n    public const PORTABILITY_FIX_CASE      = 8;\n\n    public const PORTABILITY_DB2          = 13;\n    public const PORTABILITY_ORACLE       = 9;\n    public const PORTABILITY_POSTGRESQL   = 13;\n    public const PORTABILITY_SQLITE       = 13;\n    public const PORTABILITY_OTHERVENDORS = 12;\n    public const PORTABILITY_DRIZZLE      = 13;\n    public const PORTABILITY_SQLANYWHERE  = 13;\n    public const PORTABILITY_SQLSRV       = 13;\n\n    /** @var int */\n    private $portability = self::PORTABILITY_NONE;\n\n    /** @var int */\n    private $case;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        $ret = parent::connect();\n        if ($ret) {\n            $params = $this->getParams();\n            if (isset($params['portability'])) {\n                if ($this->getDatabasePlatform()->getName() === 'oracle') {\n                    $params['portability'] &= self::PORTABILITY_ORACLE;\n                } elseif ($this->getDatabasePlatform()->getName() === 'postgresql') {\n                    $params['portability'] &= self::PORTABILITY_POSTGRESQL;\n                } elseif ($this->getDatabasePlatform()->getName() === 'sqlite') {\n                    $params['portability'] &= self::PORTABILITY_SQLITE;\n                } elseif ($this->getDatabasePlatform()->getName() === 'drizzle') {\n                    $params['portability'] &= self::PORTABILITY_DRIZZLE;\n                } elseif ($this->getDatabasePlatform()->getName() === 'sqlanywhere') {\n                    $params['portability'] &= self::PORTABILITY_SQLANYWHERE;\n                } elseif ($this->getDatabasePlatform()->getName() === 'db2') {\n                    $params['portability'] &= self::PORTABILITY_DB2;\n                } elseif ($this->getDatabasePlatform()->getName() === 'mssql') {\n                    $params['portability'] &= self::PORTABILITY_SQLSRV;\n                } else {\n                    $params['portability'] &= self::PORTABILITY_OTHERVENDORS;\n                }\n                $this->portability = $params['portability'];\n            }\n\n            if (isset($params['fetch_case']) && $this->portability & self::PORTABILITY_FIX_CASE) {\n                if ($this->_conn instanceof PDOConnection) {\n                    // make use of c-level support for case handling\n                    $this->_conn->setAttribute(PDO::ATTR_CASE, $params['fetch_case']);\n                } else {\n                    $this->case = $params['fetch_case'] === ColumnCase::LOWER ? CASE_LOWER : CASE_UPPER;\n                }\n            }\n        }\n\n        return $ret;\n    }\n\n    /**\n     * @return int\n     */\n    public function getPortability()\n    {\n        return $this->portability;\n    }\n\n    /**\n     * @return int\n     */\n    public function getFetchCase()\n    {\n        return $this->case;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeQuery($query, array $params = [], $types = [], ?QueryCacheProfile $qcp = null)\n    {\n        $stmt = new Statement(parent::executeQuery($query, $params, $types, $qcp), $this);\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function prepare($statement)\n    {\n        $stmt = new Statement(parent::prepare($statement), $this);\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        return $stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function query()\n    {\n        $this->connect();\n\n        $stmt = $this->_conn->query(...func_get_args());\n        $stmt = new Statement($stmt, $this);\n        $stmt->setFetchMode($this->defaultFetchMode);\n\n        return $stmt;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Portability/Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Portability;\n\nuse Doctrine\\DBAL\\Driver\\Statement as DriverStatement;\nuse Doctrine\\DBAL\\Driver\\StatementIterator;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\ParameterType;\nuse IteratorAggregate;\nuse PDO;\nuse function array_change_key_case;\nuse function is_string;\nuse function rtrim;\n\n/**\n * Portability wrapper for a Statement.\n */\nclass Statement implements IteratorAggregate, DriverStatement\n{\n    /** @var int */\n    private $portability;\n\n    /** @var DriverStatement */\n    private $stmt;\n\n    /** @var int */\n    private $case;\n\n    /** @var int */\n    private $defaultFetchMode = FetchMode::MIXED;\n\n    /**\n     * Wraps <tt>Statement</tt> and applies portability measures.\n     *\n     * @param DriverStatement $stmt\n     */\n    public function __construct($stmt, Connection $conn)\n    {\n        $this->stmt        = $stmt;\n        $this->portability = $conn->getPortability();\n        $this->case        = $conn->getFetchCase();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)\n    {\n        return $this->stmt->bindParam($column, $variable, $type, $length);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function bindValue($param, $value, $type = ParameterType::STRING)\n    {\n        return $this->stmt->bindValue($param, $value, $type);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function closeCursor()\n    {\n        return $this->stmt->closeCursor();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function columnCount()\n    {\n        return $this->stmt->columnCount();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorCode()\n    {\n        return $this->stmt->errorCode();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function errorInfo()\n    {\n        return $this->stmt->errorInfo();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function execute($params = null)\n    {\n        return $this->stmt->execute($params);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg1 = null, $arg2 = null)\n    {\n        $this->defaultFetchMode = $fetchMode;\n\n        return $this->stmt->setFetchMode($fetchMode, $arg1, $arg2);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new StatementIterator($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n        $row = $this->stmt->fetch($fetchMode);\n\n        $iterateRow = $this->portability & (Connection::PORTABILITY_EMPTY_TO_NULL|Connection::PORTABILITY_RTRIM);\n        $fixCase    = $this->case !== null\n            && ($fetchMode === FetchMode::ASSOCIATIVE || $fetchMode === FetchMode::MIXED)\n            && ($this->portability & Connection::PORTABILITY_FIX_CASE);\n\n        $row = $this->fixRow($row, $iterateRow, $fixCase);\n\n        return $row;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        $fetchMode = $fetchMode ?: $this->defaultFetchMode;\n\n        if ($fetchArgument) {\n            $rows = $this->stmt->fetchAll($fetchMode, $fetchArgument);\n        } else {\n            $rows = $this->stmt->fetchAll($fetchMode);\n        }\n\n        $iterateRow = $this->portability & (Connection::PORTABILITY_EMPTY_TO_NULL|Connection::PORTABILITY_RTRIM);\n        $fixCase    = $this->case !== null\n            && ($fetchMode === FetchMode::ASSOCIATIVE || $fetchMode === FetchMode::MIXED)\n            && ($this->portability & Connection::PORTABILITY_FIX_CASE);\n\n        if (! $iterateRow && ! $fixCase) {\n            return $rows;\n        }\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            foreach ($rows as $num => $row) {\n                $rows[$num] = [$row];\n            }\n        }\n\n        foreach ($rows as $num => $row) {\n            $rows[$num] = $this->fixRow($row, $iterateRow, $fixCase);\n        }\n\n        if ($fetchMode === FetchMode::COLUMN) {\n            foreach ($rows as $num => $row) {\n                $rows[$num] = $row[0];\n            }\n        }\n\n        return $rows;\n    }\n\n    /**\n     * @param mixed $row\n     * @param int   $iterateRow\n     * @param bool  $fixCase\n     *\n     * @return mixed\n     */\n    protected function fixRow($row, $iterateRow, $fixCase)\n    {\n        if (! $row) {\n            return $row;\n        }\n\n        if ($fixCase) {\n            $row = array_change_key_case($row, $this->case);\n        }\n\n        if ($iterateRow) {\n            foreach ($row as $k => $v) {\n                if (($this->portability & Connection::PORTABILITY_EMPTY_TO_NULL) && $v === '') {\n                    $row[$k] = null;\n                } elseif (($this->portability & Connection::PORTABILITY_RTRIM) && is_string($v)) {\n                    $row[$k] = rtrim($v);\n                }\n            }\n        }\n\n        return $row;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        $value = $this->stmt->fetchColumn($columnIndex);\n\n        if ($this->portability & (Connection::PORTABILITY_EMPTY_TO_NULL|Connection::PORTABILITY_RTRIM)) {\n            if (($this->portability & Connection::PORTABILITY_EMPTY_TO_NULL) && $value === '') {\n                $value = null;\n            } elseif (($this->portability & Connection::PORTABILITY_RTRIM) && is_string($value)) {\n                $value = rtrim($value);\n            }\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rowCount()\n    {\n        return $this->stmt->rowCount();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/CompositeExpression.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Query\\Expression;\n\nuse Countable;\nuse function count;\nuse function implode;\n\n/**\n * Composite expression is responsible to build a group of similar expression.\n */\nclass CompositeExpression implements Countable\n{\n    /**\n     * Constant that represents an AND composite expression.\n     */\n    public const TYPE_AND = 'AND';\n\n    /**\n     * Constant that represents an OR composite expression.\n     */\n    public const TYPE_OR = 'OR';\n\n    /**\n     * The instance type of composite expression.\n     *\n     * @var string\n     */\n    private $type;\n\n    /**\n     * Each expression part of the composite expression.\n     *\n     * @var self[]|string[]\n     */\n    private $parts = [];\n\n    /**\n     * @param string          $type  Instance type of composite expression.\n     * @param self[]|string[] $parts Composition of expressions to be joined on composite expression.\n     */\n    public function __construct($type, array $parts = [])\n    {\n        $this->type = $type;\n\n        $this->addMultiple($parts);\n    }\n\n    /**\n     * Adds multiple parts to composite expression.\n     *\n     * @param self[]|string[] $parts\n     *\n     * @return \\Doctrine\\DBAL\\Query\\Expression\\CompositeExpression\n     */\n    public function addMultiple(array $parts = [])\n    {\n        foreach ($parts as $part) {\n            $this->add($part);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Adds an expression to composite expression.\n     *\n     * @param mixed $part\n     *\n     * @return \\Doctrine\\DBAL\\Query\\Expression\\CompositeExpression\n     */\n    public function add($part)\n    {\n        if (empty($part)) {\n            return $this;\n        }\n\n        if ($part instanceof self && count($part) === 0) {\n            return $this;\n        }\n\n        $this->parts[] = $part;\n\n        return $this;\n    }\n\n    /**\n     * Retrieves the amount of expressions on composite expression.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->parts);\n    }\n\n    /**\n     * Retrieves the string representation of this composite expression.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if ($this->count() === 1) {\n            return (string) $this->parts[0];\n        }\n\n        return '(' . implode(') ' . $this->type . ' (', $this->parts) . ')';\n    }\n\n    /**\n     * Returns the type of this composite expression (AND/OR).\n     *\n     * @return string\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Query\\Expression;\n\nuse Doctrine\\DBAL\\Connection;\nuse function func_get_arg;\nuse function func_get_args;\nuse function func_num_args;\nuse function implode;\nuse function sprintf;\n\n/**\n * ExpressionBuilder class is responsible to dynamically create SQL query parts.\n */\nclass ExpressionBuilder\n{\n    public const EQ  = '=';\n    public const NEQ = '<>';\n    public const LT  = '<';\n    public const LTE = '<=';\n    public const GT  = '>';\n    public const GTE = '>=';\n\n    /**\n     * The DBAL Connection.\n     *\n     * @var Connection\n     */\n    private $connection;\n\n    /**\n     * Initializes a new <tt>ExpressionBuilder</tt>.\n     *\n     * @param Connection $connection The DBAL Connection.\n     */\n    public function __construct(Connection $connection)\n    {\n        $this->connection = $connection;\n    }\n\n    /**\n     * Creates a conjunction of the given boolean expressions.\n     *\n     * Example:\n     *\n     *     [php]\n     *     // (u.type = ?) AND (u.role = ?)\n     *     $expr->andX('u.type = ?', 'u.role = ?'));\n     *\n     * @param mixed $x Optional clause. Defaults = null, but requires\n     *                 at least one defined when converting to string.\n     *\n     * @return CompositeExpression\n     */\n    public function andX($x = null)\n    {\n        return new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args());\n    }\n\n    /**\n     * Creates a disjunction of the given boolean expressions.\n     *\n     * Example:\n     *\n     *     [php]\n     *     // (u.type = ?) OR (u.role = ?)\n     *     $qb->where($qb->expr()->orX('u.type = ?', 'u.role = ?'));\n     *\n     * @param mixed $x Optional clause. Defaults = null, but requires\n     *                 at least one defined when converting to string.\n     *\n     * @return CompositeExpression\n     */\n    public function orX($x = null)\n    {\n        return new CompositeExpression(CompositeExpression::TYPE_OR, func_get_args());\n    }\n\n    /**\n     * Creates a comparison expression.\n     *\n     * @param mixed  $x        The left expression.\n     * @param string $operator One of the ExpressionBuilder::* constants.\n     * @param mixed  $y        The right expression.\n     *\n     * @return string\n     */\n    public function comparison($x, $operator, $y)\n    {\n        return $x . ' ' . $operator . ' ' . $y;\n    }\n\n    /**\n     * Creates an equality comparison expression with the given arguments.\n     *\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> = <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id = ?\n     *     $expr->eq('u.id', '?');\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function eq($x, $y)\n    {\n        return $this->comparison($x, self::EQ, $y);\n    }\n\n    /**\n     * Creates a non equality comparison expression with the given arguments.\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> <> <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id <> 1\n     *     $q->where($q->expr()->neq('u.id', '1'));\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function neq($x, $y)\n    {\n        return $this->comparison($x, self::NEQ, $y);\n    }\n\n    /**\n     * Creates a lower-than comparison expression with the given arguments.\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> < <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id < ?\n     *     $q->where($q->expr()->lt('u.id', '?'));\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function lt($x, $y)\n    {\n        return $this->comparison($x, self::LT, $y);\n    }\n\n    /**\n     * Creates a lower-than-equal comparison expression with the given arguments.\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> <= <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id <= ?\n     *     $q->where($q->expr()->lte('u.id', '?'));\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function lte($x, $y)\n    {\n        return $this->comparison($x, self::LTE, $y);\n    }\n\n    /**\n     * Creates a greater-than comparison expression with the given arguments.\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> > <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id > ?\n     *     $q->where($q->expr()->gt('u.id', '?'));\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function gt($x, $y)\n    {\n        return $this->comparison($x, self::GT, $y);\n    }\n\n    /**\n     * Creates a greater-than-equal comparison expression with the given arguments.\n     * First argument is considered the left expression and the second is the right expression.\n     * When converted to string, it will generated a <left expr> >= <right expr>. Example:\n     *\n     *     [php]\n     *     // u.id >= ?\n     *     $q->where($q->expr()->gte('u.id', '?'));\n     *\n     * @param mixed $x The left expression.\n     * @param mixed $y The right expression.\n     *\n     * @return string\n     */\n    public function gte($x, $y)\n    {\n        return $this->comparison($x, self::GTE, $y);\n    }\n\n    /**\n     * Creates an IS NULL expression with the given arguments.\n     *\n     * @param string $x The field in string format to be restricted by IS NULL.\n     *\n     * @return string\n     */\n    public function isNull($x)\n    {\n        return $x . ' IS NULL';\n    }\n\n    /**\n     * Creates an IS NOT NULL expression with the given arguments.\n     *\n     * @param string $x The field in string format to be restricted by IS NOT NULL.\n     *\n     * @return string\n     */\n    public function isNotNull($x)\n    {\n        return $x . ' IS NOT NULL';\n    }\n\n    /**\n     * Creates a LIKE() comparison expression with the given arguments.\n     *\n     * @param string $x Field in string format to be inspected by LIKE() comparison.\n     * @param mixed  $y Argument to be used in LIKE() comparison.\n     *\n     * @return string\n     */\n    public function like($x, $y/*, ?string $escapeChar = null */)\n    {\n        return $this->comparison($x, 'LIKE', $y) .\n            (func_num_args() >= 3 ? sprintf(' ESCAPE %s', func_get_arg(2)) : '');\n    }\n\n    /**\n     * Creates a NOT LIKE() comparison expression with the given arguments.\n     *\n     * @param string $x Field in string format to be inspected by NOT LIKE() comparison.\n     * @param mixed  $y Argument to be used in NOT LIKE() comparison.\n     *\n     * @return string\n     */\n    public function notLike($x, $y/*, ?string $escapeChar = null */)\n    {\n        return $this->comparison($x, 'NOT LIKE', $y) .\n            (func_num_args() >= 3 ? sprintf(' ESCAPE %s', func_get_arg(2)) : '');\n    }\n\n    /**\n     * Creates a IN () comparison expression with the given arguments.\n     *\n     * @param string          $x The field in string format to be inspected by IN() comparison.\n     * @param string|string[] $y The placeholder or the array of values to be used by IN() comparison.\n     *\n     * @return string\n     */\n    public function in($x, $y)\n    {\n        return $this->comparison($x, 'IN', '(' . implode(', ', (array) $y) . ')');\n    }\n\n    /**\n     * Creates a NOT IN () comparison expression with the given arguments.\n     *\n     * @param string          $x The field in string format to be inspected by NOT IN() comparison.\n     * @param string|string[] $y The placeholder or the array of values to be used by NOT IN() comparison.\n     *\n     * @return string\n     */\n    public function notIn($x, $y)\n    {\n        return $this->comparison($x, 'NOT IN', '(' . implode(', ', (array) $y) . ')');\n    }\n\n    /**\n     * Quotes a given input parameter.\n     *\n     * @param mixed       $input The parameter to be quoted.\n     * @param string|null $type  The type of the parameter.\n     *\n     * @return string\n     */\n    public function literal($input, $type = null)\n    {\n        return $this->connection->quote($input, $type);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Query;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver\\Statement;\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Query\\Expression\\CompositeExpression;\nuse Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder;\nuse function array_key_exists;\nuse function array_keys;\nuse function array_unshift;\nuse function func_get_args;\nuse function func_num_args;\nuse function implode;\nuse function is_array;\nuse function is_object;\nuse function key;\nuse function strtoupper;\nuse function substr;\n\n/**\n * QueryBuilder class is responsible to dynamically create SQL queries.\n *\n * Important: Verify that every feature you use will work with your database vendor.\n * SQL Query Builder does not attempt to validate the generated SQL at all.\n *\n * The query builder does no validation whatsoever if certain features even work with the\n * underlying database vendor. Limit queries and joins are NOT applied to UPDATE and DELETE statements\n * even if some vendors such as MySQL support it.\n */\nclass QueryBuilder\n{\n    /*\n     * The query types.\n     */\n    public const SELECT = 0;\n    public const DELETE = 1;\n    public const UPDATE = 2;\n    public const INSERT = 3;\n\n    /*\n     * The builder states.\n     */\n    public const STATE_DIRTY = 0;\n    public const STATE_CLEAN = 1;\n\n    /**\n     * The DBAL Connection.\n     *\n     * @var Connection\n     */\n    private $connection;\n\n    /**\n     * The array of SQL parts collected.\n     *\n     * @var mixed[]\n     */\n    private $sqlParts = [\n        'select'  => [],\n        'from'    => [],\n        'join'    => [],\n        'set'     => [],\n        'where'   => null,\n        'groupBy' => [],\n        'having'  => null,\n        'orderBy' => [],\n        'values'  => [],\n    ];\n\n    /**\n     * The complete SQL string for this query.\n     *\n     * @var string\n     */\n    private $sql;\n\n    /**\n     * The query parameters.\n     *\n     * @var mixed[]\n     */\n    private $params = [];\n\n    /**\n     * The parameter type map of this query.\n     *\n     * @var int[]|string[]\n     */\n    private $paramTypes = [];\n\n    /**\n     * The type of query this is. Can be select, update or delete.\n     *\n     * @var int\n     */\n    private $type = self::SELECT;\n\n    /**\n     * The state of the query object. Can be dirty or clean.\n     *\n     * @var int\n     */\n    private $state = self::STATE_CLEAN;\n\n    /**\n     * The index of the first result to retrieve.\n     *\n     * @var int\n     */\n    private $firstResult = null;\n\n    /**\n     * The maximum number of results to retrieve.\n     *\n     * @var int\n     */\n    private $maxResults = null;\n\n    /**\n     * The counter of bound parameters used with {@see bindValue).\n     *\n     * @var int\n     */\n    private $boundCounter = 0;\n\n    /**\n     * Initializes a new <tt>QueryBuilder</tt>.\n     *\n     * @param Connection $connection The DBAL Connection.\n     */\n    public function __construct(Connection $connection)\n    {\n        $this->connection = $connection;\n    }\n\n    /**\n     * Gets an ExpressionBuilder used for object-oriented construction of query expressions.\n     * This producer method is intended for convenient inline usage. Example:\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u')\n     *         ->from('users', 'u')\n     *         ->where($qb->expr()->eq('u.id', 1));\n     * </code>\n     *\n     * For more complex expression construction, consider storing the expression\n     * builder object in a local variable.\n     *\n     * @return ExpressionBuilder\n     */\n    public function expr()\n    {\n        return $this->connection->getExpressionBuilder();\n    }\n\n    /**\n     * Gets the type of the currently built query.\n     *\n     * @return int\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Gets the associated DBAL Connection for this query builder.\n     *\n     * @return Connection\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Gets the state of this query builder instance.\n     *\n     * @return int Either QueryBuilder::STATE_DIRTY or QueryBuilder::STATE_CLEAN.\n     */\n    public function getState()\n    {\n        return $this->state;\n    }\n\n    /**\n     * Executes this query using the bound parameters and their types.\n     *\n     * Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}\n     * for insert, update and delete statements.\n     *\n     * @return Statement|int\n     */\n    public function execute()\n    {\n        if ($this->type === self::SELECT) {\n            return $this->connection->executeQuery($this->getSQL(), $this->params, $this->paramTypes);\n        }\n\n        return $this->connection->executeUpdate($this->getSQL(), $this->params, $this->paramTypes);\n    }\n\n    /**\n     * Gets the complete SQL string formed by the current specifications of this QueryBuilder.\n     *\n     * <code>\n     *     $qb = $em->createQueryBuilder()\n     *         ->select('u')\n     *         ->from('User', 'u')\n     *     echo $qb->getSQL(); // SELECT u FROM User u\n     * </code>\n     *\n     * @return string The SQL query string.\n     */\n    public function getSQL()\n    {\n        if ($this->sql !== null && $this->state === self::STATE_CLEAN) {\n            return $this->sql;\n        }\n\n        switch ($this->type) {\n            case self::INSERT:\n                $sql = $this->getSQLForInsert();\n                break;\n            case self::DELETE:\n                $sql = $this->getSQLForDelete();\n                break;\n\n            case self::UPDATE:\n                $sql = $this->getSQLForUpdate();\n                break;\n\n            case self::SELECT:\n            default:\n                $sql = $this->getSQLForSelect();\n                break;\n        }\n\n        $this->state = self::STATE_CLEAN;\n        $this->sql   = $sql;\n\n        return $sql;\n    }\n\n    /**\n     * Sets a query parameter for the query being constructed.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u')\n     *         ->from('users', 'u')\n     *         ->where('u.id = :user_id')\n     *         ->setParameter(':user_id', 1);\n     * </code>\n     *\n     * @param string|int      $key   The parameter position or name.\n     * @param mixed           $value The parameter value.\n     * @param string|int|null $type  One of the {@link \\Doctrine\\DBAL\\ParameterType} constants.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function setParameter($key, $value, $type = null)\n    {\n        if ($type !== null) {\n            $this->paramTypes[$key] = $type;\n        }\n\n        $this->params[$key] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Sets a collection of query parameters for the query being constructed.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u')\n     *         ->from('users', 'u')\n     *         ->where('u.id = :user_id1 OR u.id = :user_id2')\n     *         ->setParameters(array(\n     *             ':user_id1' => 1,\n     *             ':user_id2' => 2\n     *         ));\n     * </code>\n     *\n     * @param mixed[]        $params The query parameters to set.\n     * @param int[]|string[] $types  The query parameters types to set.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function setParameters(array $params, array $types = [])\n    {\n        $this->paramTypes = $types;\n        $this->params     = $params;\n\n        return $this;\n    }\n\n    /**\n     * Gets all defined query parameters for the query being constructed indexed by parameter index or name.\n     *\n     * @return mixed[] The currently defined query parameters indexed by parameter index or name.\n     */\n    public function getParameters()\n    {\n        return $this->params;\n    }\n\n    /**\n     * Gets a (previously set) query parameter of the query being constructed.\n     *\n     * @param mixed $key The key (index or name) of the bound parameter.\n     *\n     * @return mixed The value of the bound parameter.\n     */\n    public function getParameter($key)\n    {\n        return $this->params[$key] ?? null;\n    }\n\n    /**\n     * Gets all defined query parameter types for the query being constructed indexed by parameter index or name.\n     *\n     * @return int[]|string[] The currently defined query parameter types indexed by parameter index or name.\n     */\n    public function getParameterTypes()\n    {\n        return $this->paramTypes;\n    }\n\n    /**\n     * Gets a (previously set) query parameter type of the query being constructed.\n     *\n     * @param mixed $key The key (index or name) of the bound parameter type.\n     *\n     * @return mixed The value of the bound parameter type.\n     */\n    public function getParameterType($key)\n    {\n        return $this->paramTypes[$key] ?? null;\n    }\n\n    /**\n     * Sets the position of the first result to retrieve (the \"offset\").\n     *\n     * @param int $firstResult The first result to return.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function setFirstResult($firstResult)\n    {\n        $this->state       = self::STATE_DIRTY;\n        $this->firstResult = $firstResult;\n\n        return $this;\n    }\n\n    /**\n     * Gets the position of the first result the query object was set to retrieve (the \"offset\").\n     * Returns NULL if {@link setFirstResult} was not applied to this QueryBuilder.\n     *\n     * @return int The position of the first result.\n     */\n    public function getFirstResult()\n    {\n        return $this->firstResult;\n    }\n\n    /**\n     * Sets the maximum number of results to retrieve (the \"limit\").\n     *\n     * @param int $maxResults The maximum number of results to retrieve.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function setMaxResults($maxResults)\n    {\n        $this->state      = self::STATE_DIRTY;\n        $this->maxResults = $maxResults;\n\n        return $this;\n    }\n\n    /**\n     * Gets the maximum number of results the query object was set to retrieve (the \"limit\").\n     * Returns NULL if {@link setMaxResults} was not applied to this query builder.\n     *\n     * @return int The maximum number of results.\n     */\n    public function getMaxResults()\n    {\n        return $this->maxResults;\n    }\n\n    /**\n     * Either appends to or replaces a single, generic query part.\n     *\n     * The available parts are: 'select', 'from', 'set', 'where',\n     * 'groupBy', 'having' and 'orderBy'.\n     *\n     * @param string $sqlPartName\n     * @param string $sqlPart\n     * @param bool   $append\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function add($sqlPartName, $sqlPart, $append = false)\n    {\n        $isArray    = is_array($sqlPart);\n        $isMultiple = is_array($this->sqlParts[$sqlPartName]);\n\n        if ($isMultiple && ! $isArray) {\n            $sqlPart = [$sqlPart];\n        }\n\n        $this->state = self::STATE_DIRTY;\n\n        if ($append) {\n            if ($sqlPartName === 'orderBy' || $sqlPartName === 'groupBy' || $sqlPartName === 'select' || $sqlPartName === 'set') {\n                foreach ($sqlPart as $part) {\n                    $this->sqlParts[$sqlPartName][] = $part;\n                }\n            } elseif ($isArray && is_array($sqlPart[key($sqlPart)])) {\n                $key                                  = key($sqlPart);\n                $this->sqlParts[$sqlPartName][$key][] = $sqlPart[$key];\n            } elseif ($isMultiple) {\n                $this->sqlParts[$sqlPartName][] = $sqlPart;\n            } else {\n                $this->sqlParts[$sqlPartName] = $sqlPart;\n            }\n\n            return $this;\n        }\n\n        $this->sqlParts[$sqlPartName] = $sqlPart;\n\n        return $this;\n    }\n\n    /**\n     * Specifies an item that is to be returned in the query result.\n     * Replaces any previously specified selections, if any.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.id', 'p.id')\n     *         ->from('users', 'u')\n     *         ->leftJoin('u', 'phonenumbers', 'p', 'u.id = p.user_id');\n     * </code>\n     *\n     * @param mixed $select The selection expressions.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function select($select = null)\n    {\n        $this->type = self::SELECT;\n\n        if (empty($select)) {\n            return $this;\n        }\n\n        $selects = is_array($select) ? $select : func_get_args();\n\n        return $this->add('select', $selects);\n    }\n\n    /**\n     * Adds an item that is to be returned in the query result.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.id')\n     *         ->addSelect('p.id')\n     *         ->from('users', 'u')\n     *         ->leftJoin('u', 'phonenumbers', 'u.id = p.user_id');\n     * </code>\n     *\n     * @param mixed $select The selection expression.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function addSelect($select = null)\n    {\n        $this->type = self::SELECT;\n\n        if (empty($select)) {\n            return $this;\n        }\n\n        $selects = is_array($select) ? $select : func_get_args();\n\n        return $this->add('select', $selects, true);\n    }\n\n    /**\n     * Turns the query being built into a bulk delete query that ranges over\n     * a certain table.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->delete('users', 'u')\n     *         ->where('u.id = :user_id');\n     *         ->setParameter(':user_id', 1);\n     * </code>\n     *\n     * @param string $delete The table whose rows are subject to the deletion.\n     * @param string $alias  The table alias used in the constructed query.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function delete($delete = null, $alias = null)\n    {\n        $this->type = self::DELETE;\n\n        if (! $delete) {\n            return $this;\n        }\n\n        return $this->add('from', [\n            'table' => $delete,\n            'alias' => $alias,\n        ]);\n    }\n\n    /**\n     * Turns the query being built into a bulk update query that ranges over\n     * a certain table\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->update('counters', 'c')\n     *         ->set('c.value', 'c.value + 1')\n     *         ->where('c.id = ?');\n     * </code>\n     *\n     * @param string $update The table whose rows are subject to the update.\n     * @param string $alias  The table alias used in the constructed query.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function update($update = null, $alias = null)\n    {\n        $this->type = self::UPDATE;\n\n        if (! $update) {\n            return $this;\n        }\n\n        return $this->add('from', [\n            'table' => $update,\n            'alias' => $alias,\n        ]);\n    }\n\n    /**\n     * Turns the query being built into an insert query that inserts into\n     * a certain table\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->insert('users')\n     *         ->values(\n     *             array(\n     *                 'name' => '?',\n     *                 'password' => '?'\n     *             )\n     *         );\n     * </code>\n     *\n     * @param string $insert The table into which the rows should be inserted.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function insert($insert = null)\n    {\n        $this->type = self::INSERT;\n\n        if (! $insert) {\n            return $this;\n        }\n\n        return $this->add('from', ['table' => $insert]);\n    }\n\n    /**\n     * Creates and adds a query root corresponding to the table identified by the\n     * given alias, forming a cartesian product with any existing query roots.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.id')\n     *         ->from('users', 'u')\n     * </code>\n     *\n     * @param string      $from  The table.\n     * @param string|null $alias The alias of the table.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function from($from, $alias = null)\n    {\n        return $this->add('from', [\n            'table' => $from,\n            'alias' => $alias,\n        ], true);\n    }\n\n    /**\n     * Creates and adds a join to the query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->join('u', 'phonenumbers', 'p', 'p.is_primary = 1');\n     * </code>\n     *\n     * @param string $fromAlias The alias that points to a from clause.\n     * @param string $join      The table name to join.\n     * @param string $alias     The alias of the join table.\n     * @param string $condition The condition for the join.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function join($fromAlias, $join, $alias, $condition = null)\n    {\n        return $this->innerJoin($fromAlias, $join, $alias, $condition);\n    }\n\n    /**\n     * Creates and adds a join to the query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->innerJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');\n     * </code>\n     *\n     * @param string $fromAlias The alias that points to a from clause.\n     * @param string $join      The table name to join.\n     * @param string $alias     The alias of the join table.\n     * @param string $condition The condition for the join.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function innerJoin($fromAlias, $join, $alias, $condition = null)\n    {\n        return $this->add('join', [\n            $fromAlias => [\n                'joinType'      => 'inner',\n                'joinTable'     => $join,\n                'joinAlias'     => $alias,\n                'joinCondition' => $condition,\n            ],\n        ], true);\n    }\n\n    /**\n     * Creates and adds a left join to the query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->leftJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');\n     * </code>\n     *\n     * @param string $fromAlias The alias that points to a from clause.\n     * @param string $join      The table name to join.\n     * @param string $alias     The alias of the join table.\n     * @param string $condition The condition for the join.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function leftJoin($fromAlias, $join, $alias, $condition = null)\n    {\n        return $this->add('join', [\n            $fromAlias => [\n                'joinType'      => 'left',\n                'joinTable'     => $join,\n                'joinAlias'     => $alias,\n                'joinCondition' => $condition,\n            ],\n        ], true);\n    }\n\n    /**\n     * Creates and adds a right join to the query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->rightJoin('u', 'phonenumbers', 'p', 'p.is_primary = 1');\n     * </code>\n     *\n     * @param string $fromAlias The alias that points to a from clause.\n     * @param string $join      The table name to join.\n     * @param string $alias     The alias of the join table.\n     * @param string $condition The condition for the join.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function rightJoin($fromAlias, $join, $alias, $condition = null)\n    {\n        return $this->add('join', [\n            $fromAlias => [\n                'joinType'      => 'right',\n                'joinTable'     => $join,\n                'joinAlias'     => $alias,\n                'joinCondition' => $condition,\n            ],\n        ], true);\n    }\n\n    /**\n     * Sets a new value for a column in a bulk update query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->update('counters', 'c')\n     *         ->set('c.value', 'c.value + 1')\n     *         ->where('c.id = ?');\n     * </code>\n     *\n     * @param string $key   The column to set.\n     * @param string $value The value, expression, placeholder, etc.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function set($key, $value)\n    {\n        return $this->add('set', $key . ' = ' . $value, true);\n    }\n\n    /**\n     * Specifies one or more restrictions to the query result.\n     * Replaces any previously specified restrictions, if any.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('c.value')\n     *         ->from('counters', 'c')\n     *         ->where('c.id = ?');\n     *\n     *     // You can optionally programatically build and/or expressions\n     *     $qb = $conn->createQueryBuilder();\n     *\n     *     $or = $qb->expr()->orx();\n     *     $or->add($qb->expr()->eq('c.id', 1));\n     *     $or->add($qb->expr()->eq('c.id', 2));\n     *\n     *     $qb->update('counters', 'c')\n     *         ->set('c.value', 'c.value + 1')\n     *         ->where($or);\n     * </code>\n     *\n     * @param mixed $predicates The restriction predicates.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function where($predicates)\n    {\n        if (! (func_num_args() === 1 && $predicates instanceof CompositeExpression)) {\n            $predicates = new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args());\n        }\n\n        return $this->add('where', $predicates);\n    }\n\n    /**\n     * Adds one or more restrictions to the query results, forming a logical\n     * conjunction with any previously specified restrictions.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u')\n     *         ->from('users', 'u')\n     *         ->where('u.username LIKE ?')\n     *         ->andWhere('u.is_active = 1');\n     * </code>\n     *\n     * @see where()\n     *\n     * @param mixed $where The query restrictions.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function andWhere($where)\n    {\n        $args  = func_get_args();\n        $where = $this->getQueryPart('where');\n\n        if ($where instanceof CompositeExpression && $where->getType() === CompositeExpression::TYPE_AND) {\n            $where->addMultiple($args);\n        } else {\n            array_unshift($args, $where);\n            $where = new CompositeExpression(CompositeExpression::TYPE_AND, $args);\n        }\n\n        return $this->add('where', $where, true);\n    }\n\n    /**\n     * Adds one or more restrictions to the query results, forming a logical\n     * disjunction with any previously specified restrictions.\n     *\n     * <code>\n     *     $qb = $em->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->where('u.id = 1')\n     *         ->orWhere('u.id = 2');\n     * </code>\n     *\n     * @see where()\n     *\n     * @param mixed $where The WHERE statement.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function orWhere($where)\n    {\n        $args  = func_get_args();\n        $where = $this->getQueryPart('where');\n\n        if ($where instanceof CompositeExpression && $where->getType() === CompositeExpression::TYPE_OR) {\n            $where->addMultiple($args);\n        } else {\n            array_unshift($args, $where);\n            $where = new CompositeExpression(CompositeExpression::TYPE_OR, $args);\n        }\n\n        return $this->add('where', $where, true);\n    }\n\n    /**\n     * Specifies a grouping over the results of the query.\n     * Replaces any previously specified groupings, if any.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->groupBy('u.id');\n     * </code>\n     *\n     * @param mixed $groupBy The grouping expression.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function groupBy($groupBy)\n    {\n        if (empty($groupBy)) {\n            return $this;\n        }\n\n        $groupBy = is_array($groupBy) ? $groupBy : func_get_args();\n\n        return $this->add('groupBy', $groupBy, false);\n    }\n\n\n    /**\n     * Adds a grouping expression to the query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->select('u.name')\n     *         ->from('users', 'u')\n     *         ->groupBy('u.lastLogin');\n     *         ->addGroupBy('u.createdAt')\n     * </code>\n     *\n     * @param mixed $groupBy The grouping expression.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function addGroupBy($groupBy)\n    {\n        if (empty($groupBy)) {\n            return $this;\n        }\n\n        $groupBy = is_array($groupBy) ? $groupBy : func_get_args();\n\n        return $this->add('groupBy', $groupBy, true);\n    }\n\n    /**\n     * Sets a value for a column in an insert query.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->insert('users')\n     *         ->values(\n     *             array(\n     *                 'name' => '?'\n     *             )\n     *         )\n     *         ->setValue('password', '?');\n     * </code>\n     *\n     * @param string $column The column into which the value should be inserted.\n     * @param string $value  The value that should be inserted into the column.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function setValue($column, $value)\n    {\n        $this->sqlParts['values'][$column] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Specifies values for an insert query indexed by column names.\n     * Replaces any previous values, if any.\n     *\n     * <code>\n     *     $qb = $conn->createQueryBuilder()\n     *         ->insert('users')\n     *         ->values(\n     *             array(\n     *                 'name' => '?',\n     *                 'password' => '?'\n     *             )\n     *         );\n     * </code>\n     *\n     * @param mixed[] $values The values to specify for the insert query indexed by column names.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function values(array $values)\n    {\n        return $this->add('values', $values);\n    }\n\n    /**\n     * Specifies a restriction over the groups of the query.\n     * Replaces any previous having restrictions, if any.\n     *\n     * @param mixed $having The restriction over the groups.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function having($having)\n    {\n        if (! (func_num_args() === 1 && $having instanceof CompositeExpression)) {\n            $having = new CompositeExpression(CompositeExpression::TYPE_AND, func_get_args());\n        }\n\n        return $this->add('having', $having);\n    }\n\n    /**\n     * Adds a restriction over the groups of the query, forming a logical\n     * conjunction with any existing having restrictions.\n     *\n     * @param mixed $having The restriction to append.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function andHaving($having)\n    {\n        $args   = func_get_args();\n        $having = $this->getQueryPart('having');\n\n        if ($having instanceof CompositeExpression && $having->getType() === CompositeExpression::TYPE_AND) {\n            $having->addMultiple($args);\n        } else {\n            array_unshift($args, $having);\n            $having = new CompositeExpression(CompositeExpression::TYPE_AND, $args);\n        }\n\n        return $this->add('having', $having);\n    }\n\n    /**\n     * Adds a restriction over the groups of the query, forming a logical\n     * disjunction with any existing having restrictions.\n     *\n     * @param mixed $having The restriction to add.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function orHaving($having)\n    {\n        $args   = func_get_args();\n        $having = $this->getQueryPart('having');\n\n        if ($having instanceof CompositeExpression && $having->getType() === CompositeExpression::TYPE_OR) {\n            $having->addMultiple($args);\n        } else {\n            array_unshift($args, $having);\n            $having = new CompositeExpression(CompositeExpression::TYPE_OR, $args);\n        }\n\n        return $this->add('having', $having);\n    }\n\n    /**\n     * Specifies an ordering for the query results.\n     * Replaces any previously specified orderings, if any.\n     *\n     * @param string $sort  The ordering expression.\n     * @param string $order The ordering direction.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function orderBy($sort, $order = null)\n    {\n        return $this->add('orderBy', $sort . ' ' . (! $order ? 'ASC' : $order), false);\n    }\n\n    /**\n     * Adds an ordering to the query results.\n     *\n     * @param string $sort  The ordering expression.\n     * @param string $order The ordering direction.\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function addOrderBy($sort, $order = null)\n    {\n        return $this->add('orderBy', $sort . ' ' . (! $order ? 'ASC' : $order), true);\n    }\n\n    /**\n     * Gets a query part by its name.\n     *\n     * @param string $queryPartName\n     *\n     * @return mixed\n     */\n    public function getQueryPart($queryPartName)\n    {\n        return $this->sqlParts[$queryPartName];\n    }\n\n    /**\n     * Gets all query parts.\n     *\n     * @return mixed[]\n     */\n    public function getQueryParts()\n    {\n        return $this->sqlParts;\n    }\n\n    /**\n     * Resets SQL parts.\n     *\n     * @param string[]|null $queryPartNames\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function resetQueryParts($queryPartNames = null)\n    {\n        if ($queryPartNames === null) {\n            $queryPartNames = array_keys($this->sqlParts);\n        }\n\n        foreach ($queryPartNames as $queryPartName) {\n            $this->resetQueryPart($queryPartName);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Resets a single SQL part.\n     *\n     * @param string $queryPartName\n     *\n     * @return $this This QueryBuilder instance.\n     */\n    public function resetQueryPart($queryPartName)\n    {\n        $this->sqlParts[$queryPartName] = is_array($this->sqlParts[$queryPartName])\n            ? [] : null;\n\n        $this->state = self::STATE_DIRTY;\n\n        return $this;\n    }\n\n    /**\n     * @return string\n     *\n     * @throws QueryException\n     */\n    private function getSQLForSelect()\n    {\n        $query = 'SELECT ' . implode(', ', $this->sqlParts['select']);\n\n        $query .= ($this->sqlParts['from'] ? ' FROM ' . implode(', ', $this->getFromClauses()) : '')\n            . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : '')\n            . ($this->sqlParts['groupBy'] ? ' GROUP BY ' . implode(', ', $this->sqlParts['groupBy']) : '')\n            . ($this->sqlParts['having'] !== null ? ' HAVING ' . ((string) $this->sqlParts['having']) : '')\n            . ($this->sqlParts['orderBy'] ? ' ORDER BY ' . implode(', ', $this->sqlParts['orderBy']) : '');\n\n        if ($this->isLimitQuery()) {\n            return $this->connection->getDatabasePlatform()->modifyLimitQuery(\n                $query,\n                $this->maxResults,\n                $this->firstResult\n            );\n        }\n\n        return $query;\n    }\n\n    /**\n     * @return string[]\n     */\n    private function getFromClauses()\n    {\n        $fromClauses  = [];\n        $knownAliases = [];\n\n        // Loop through all FROM clauses\n        foreach ($this->sqlParts['from'] as $from) {\n            if ($from['alias'] === null) {\n                $tableSql       = $from['table'];\n                $tableReference = $from['table'];\n            } else {\n                $tableSql       = $from['table'] . ' ' . $from['alias'];\n                $tableReference = $from['alias'];\n            }\n\n            $knownAliases[$tableReference] = true;\n\n            $fromClauses[$tableReference] = $tableSql . $this->getSQLForJoins($tableReference, $knownAliases);\n        }\n\n        $this->verifyAllAliasesAreKnown($knownAliases);\n\n        return $fromClauses;\n    }\n\n    /**\n     * @param string[] $knownAliases\n     *\n     * @throws QueryException\n     */\n    private function verifyAllAliasesAreKnown(array $knownAliases)\n    {\n        foreach ($this->sqlParts['join'] as $fromAlias => $joins) {\n            if (! isset($knownAliases[$fromAlias])) {\n                throw QueryException::unknownAlias($fromAlias, array_keys($knownAliases));\n            }\n        }\n    }\n\n    /**\n     * @return bool\n     */\n    private function isLimitQuery()\n    {\n        return $this->maxResults !== null || $this->firstResult !== null;\n    }\n\n    /**\n     * Converts this instance into an INSERT string in SQL.\n     *\n     * @return string\n     */\n    private function getSQLForInsert()\n    {\n        return 'INSERT INTO ' . $this->sqlParts['from']['table'] .\n        ' (' . implode(', ', array_keys($this->sqlParts['values'])) . ')' .\n        ' VALUES(' . implode(', ', $this->sqlParts['values']) . ')';\n    }\n\n    /**\n     * Converts this instance into an UPDATE string in SQL.\n     *\n     * @return string\n     */\n    private function getSQLForUpdate()\n    {\n        $table = $this->sqlParts['from']['table'] . ($this->sqlParts['from']['alias'] ? ' ' . $this->sqlParts['from']['alias'] : '');\n        return 'UPDATE ' . $table\n            . ' SET ' . implode(', ', $this->sqlParts['set'])\n            . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : '');\n    }\n\n    /**\n     * Converts this instance into a DELETE string in SQL.\n     *\n     * @return string\n     */\n    private function getSQLForDelete()\n    {\n        $table = $this->sqlParts['from']['table'] . ($this->sqlParts['from']['alias'] ? ' ' . $this->sqlParts['from']['alias'] : '');\n        return 'DELETE FROM ' . $table . ($this->sqlParts['where'] !== null ? ' WHERE ' . ((string) $this->sqlParts['where']) : '');\n    }\n\n    /**\n     * Gets a string representation of this QueryBuilder which corresponds to\n     * the final SQL query being constructed.\n     *\n     * @return string The string representation of this QueryBuilder.\n     */\n    public function __toString()\n    {\n        return $this->getSQL();\n    }\n\n    /**\n     * Creates a new named parameter and bind the value $value to it.\n     *\n     * This method provides a shortcut for PDOStatement::bindValue\n     * when using prepared statements.\n     *\n     * The parameter $value specifies the value that you want to bind. If\n     * $placeholder is not provided bindValue() will automatically create a\n     * placeholder for you. An automatic placeholder will be of the name\n     * ':dcValue1', ':dcValue2' etc.\n     *\n     * For more information see {@link http://php.net/pdostatement-bindparam}\n     *\n     * Example:\n     * <code>\n     * $value = 2;\n     * $q->eq( 'id', $q->bindValue( $value ) );\n     * $stmt = $q->executeQuery(); // executed with 'id = 2'\n     * </code>\n     *\n     * @link http://www.zetacomponents.org\n     *\n     * @param mixed  $value\n     * @param mixed  $type\n     * @param string $placeHolder The name to bind with. The string must start with a colon ':'.\n     *\n     * @return string the placeholder name used.\n     */\n    public function createNamedParameter($value, $type = ParameterType::STRING, $placeHolder = null)\n    {\n        if ($placeHolder === null) {\n            $this->boundCounter++;\n            $placeHolder = ':dcValue' . $this->boundCounter;\n        }\n        $this->setParameter(substr($placeHolder, 1), $value, $type);\n\n        return $placeHolder;\n    }\n\n    /**\n     * Creates a new positional parameter and bind the given value to it.\n     *\n     * Attention: If you are using positional parameters with the query builder you have\n     * to be very careful to bind all parameters in the order they appear in the SQL\n     * statement , otherwise they get bound in the wrong order which can lead to serious\n     * bugs in your code.\n     *\n     * Example:\n     * <code>\n     *  $qb = $conn->createQueryBuilder();\n     *  $qb->select('u.*')\n     *     ->from('users', 'u')\n     *     ->where('u.username = ' . $qb->createPositionalParameter('Foo', ParameterType::STRING))\n     *     ->orWhere('u.username = ' . $qb->createPositionalParameter('Bar', ParameterType::STRING))\n     * </code>\n     *\n     * @param mixed $value\n     * @param int   $type\n     *\n     * @return string\n     */\n    public function createPositionalParameter($value, $type = ParameterType::STRING)\n    {\n        $this->boundCounter++;\n        $this->setParameter($this->boundCounter, $value, $type);\n\n        return '?';\n    }\n\n    /**\n     * @param string   $fromAlias\n     * @param string[] $knownAliases\n     *\n     * @return string\n     *\n     * @throws QueryException\n     */\n    private function getSQLForJoins($fromAlias, array &$knownAliases)\n    {\n        $sql = '';\n\n        if (isset($this->sqlParts['join'][$fromAlias])) {\n            foreach ($this->sqlParts['join'][$fromAlias] as $join) {\n                if (array_key_exists($join['joinAlias'], $knownAliases)) {\n                    throw QueryException::nonUniqueAlias($join['joinAlias'], array_keys($knownAliases));\n                }\n                $sql                             .= ' ' . strtoupper($join['joinType'])\n                    . ' JOIN ' . $join['joinTable'] . ' ' . $join['joinAlias']\n                    . ' ON ' . ((string) $join['joinCondition']);\n                $knownAliases[$join['joinAlias']] = true;\n            }\n\n            foreach ($this->sqlParts['join'][$fromAlias] as $join) {\n                $sql .= $this->getSQLForJoins($join['joinAlias'], $knownAliases);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Deep clone of all expression objects in the SQL parts.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        foreach ($this->sqlParts as $part => $elements) {\n            if (is_array($this->sqlParts[$part])) {\n                foreach ($this->sqlParts[$part] as $idx => $element) {\n                    if (! is_object($element)) {\n                        continue;\n                    }\n\n                    $this->sqlParts[$part][$idx] = clone $element;\n                }\n            } elseif (is_object($elements)) {\n                $this->sqlParts[$part] = clone $elements;\n            }\n        }\n\n        foreach ($this->params as $name => $param) {\n            if (! is_object($param)) {\n                continue;\n            }\n\n            $this->params[$name] = clone $param;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Query;\n\nuse Doctrine\\DBAL\\DBALException;\nuse function implode;\n\nclass QueryException extends DBALException\n{\n    /**\n     * @param string   $alias\n     * @param string[] $registeredAliases\n     *\n     * @return \\Doctrine\\DBAL\\Query\\QueryException\n     */\n    public static function unknownAlias($alias, $registeredAliases)\n    {\n        return new self(\"The given alias '\" . $alias . \"' is not part of \" .\n            'any FROM or JOIN clause table. The currently registered ' .\n            'aliases are: ' . implode(', ', $registeredAliases) . '.');\n    }\n\n    /**\n     * @param string   $alias\n     * @param string[] $registeredAliases\n     *\n     * @return \\Doctrine\\DBAL\\Query\\QueryException\n     */\n    public static function nonUniqueAlias($alias, $registeredAliases)\n    {\n        return new self(\"The given alias '\" . $alias . \"' is not unique \" .\n            'in FROM and JOIN clause table. The currently registered ' .\n            'aliases are: ' . implode(', ', $registeredAliases) . '.');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse const PREG_OFFSET_CAPTURE;\nuse function array_fill;\nuse function array_key_exists;\nuse function array_merge;\nuse function array_slice;\nuse function array_values;\nuse function count;\nuse function implode;\nuse function is_int;\nuse function key;\nuse function ksort;\nuse function preg_match_all;\nuse function sprintf;\nuse function strlen;\nuse function strpos;\nuse function substr;\n\n/**\n * Utility class that parses sql statements with regard to types and parameters.\n */\nclass SQLParserUtils\n{\n    public const POSITIONAL_TOKEN = '\\?';\n    public const NAMED_TOKEN      = '(?<!:):[a-zA-Z_][a-zA-Z0-9_]*';\n\n    // Quote characters within string literals can be preceded by a backslash.\n    public const ESCAPED_SINGLE_QUOTED_TEXT   = \"(?:'(?:\\\\\\\\\\\\\\\\)+'|'(?:[^'\\\\\\\\]|\\\\\\\\'?|'')*')\";\n    public const ESCAPED_DOUBLE_QUOTED_TEXT   = '(?:\"(?:\\\\\\\\\\\\\\\\)+\"|\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)*\")';\n    public const ESCAPED_BACKTICK_QUOTED_TEXT = '(?:`(?:\\\\\\\\\\\\\\\\)+`|`(?:[^`\\\\\\\\]|\\\\\\\\`?)*`)';\n    private const ESCAPED_BRACKET_QUOTED_TEXT = '(?<!\\b(?i:ARRAY))\\[(?:[^\\]])*\\]';\n\n    /**\n     * Gets an array of the placeholders in an sql statements as keys and their positions in the query string.\n     *\n     * Returns an integer => integer pair (indexed from zero) for a positional statement\n     * and a string => int[] pair for a named statement.\n     *\n     * @param string $statement\n     * @param bool   $isPositional\n     *\n     * @return int[]\n     */\n    public static function getPlaceholderPositions($statement, $isPositional = true)\n    {\n        $match = $isPositional ? '?' : ':';\n        if (strpos($statement, $match) === false) {\n            return [];\n        }\n\n        $token    = $isPositional ? self::POSITIONAL_TOKEN : self::NAMED_TOKEN;\n        $paramMap = [];\n\n        foreach (self::getUnquotedStatementFragments($statement) as $fragment) {\n            preg_match_all('/' . $token . '/', $fragment[0], $matches, PREG_OFFSET_CAPTURE);\n            foreach ($matches[0] as $placeholder) {\n                if ($isPositional) {\n                    $paramMap[] = $placeholder[1] + $fragment[1];\n                } else {\n                    $pos            = $placeholder[1] + $fragment[1];\n                    $paramMap[$pos] = substr($placeholder[0], 1, strlen($placeholder[0]));\n                }\n            }\n        }\n\n        return $paramMap;\n    }\n\n    /**\n     * For a positional query this method can rewrite the sql statement with regard to array parameters.\n     *\n     * @param string         $query  The SQL query to execute.\n     * @param mixed[]        $params The parameters to bind to the query.\n     * @param int[]|string[] $types  The types the previous parameters are in.\n     *\n     * @return mixed[]\n     *\n     * @throws SQLParserUtilsException\n     */\n    public static function expandListParameters($query, $params, $types)\n    {\n        $isPositional   = is_int(key($params));\n        $arrayPositions = [];\n        $bindIndex      = -1;\n\n        if ($isPositional) {\n            ksort($params);\n            ksort($types);\n        }\n\n        foreach ($types as $name => $type) {\n            ++$bindIndex;\n\n            if ($type !== Connection::PARAM_INT_ARRAY && $type !== Connection::PARAM_STR_ARRAY) {\n                continue;\n            }\n\n            if ($isPositional) {\n                $name = $bindIndex;\n            }\n\n            $arrayPositions[$name] = false;\n        }\n\n        if (( ! $arrayPositions && $isPositional)) {\n            return [$query, $params, $types];\n        }\n\n        $paramPos = self::getPlaceholderPositions($query, $isPositional);\n\n        if ($isPositional) {\n            $paramOffset = 0;\n            $queryOffset = 0;\n            $params      = array_values($params);\n            $types       = array_values($types);\n\n            foreach ($paramPos as $needle => $needlePos) {\n                if (! isset($arrayPositions[$needle])) {\n                    continue;\n                }\n\n                $needle    += $paramOffset;\n                $needlePos += $queryOffset;\n                $count      = count($params[$needle]);\n\n                $params = array_merge(\n                    array_slice($params, 0, $needle),\n                    $params[$needle],\n                    array_slice($params, $needle + 1)\n                );\n\n                $types = array_merge(\n                    array_slice($types, 0, $needle),\n                    $count ?\n                        // array needles are at {@link \\Doctrine\\DBAL\\ParameterType} constants\n                        // + {@link Doctrine\\DBAL\\Connection::ARRAY_PARAM_OFFSET}\n                        array_fill(0, $count, $types[$needle] - Connection::ARRAY_PARAM_OFFSET) :\n                        [],\n                    array_slice($types, $needle + 1)\n                );\n\n                $expandStr = $count ? implode(', ', array_fill(0, $count, '?')) : 'NULL';\n                $query     = substr($query, 0, $needlePos) . $expandStr . substr($query, $needlePos + 1);\n\n                $paramOffset += ($count - 1); // Grows larger by number of parameters minus the replaced needle.\n                $queryOffset += (strlen($expandStr) - 1);\n            }\n\n            return [$query, $params, $types];\n        }\n\n        $queryOffset = 0;\n        $typesOrd    = [];\n        $paramsOrd   = [];\n\n        foreach ($paramPos as $pos => $paramName) {\n            $paramLen = strlen($paramName) + 1;\n            $value    = static::extractParam($paramName, $params, true);\n\n            if (! isset($arrayPositions[$paramName]) && ! isset($arrayPositions[':' . $paramName])) {\n                $pos         += $queryOffset;\n                $queryOffset -= ($paramLen - 1);\n                $paramsOrd[]  = $value;\n                $typesOrd[]   = static::extractParam($paramName, $types, false, ParameterType::STRING);\n                $query        = substr($query, 0, $pos) . '?' . substr($query, ($pos + $paramLen));\n\n                continue;\n            }\n\n            $count     = count($value);\n            $expandStr = $count > 0 ? implode(', ', array_fill(0, $count, '?')) : 'NULL';\n\n            foreach ($value as $val) {\n                $paramsOrd[] = $val;\n                $typesOrd[]  = static::extractParam($paramName, $types, false) - Connection::ARRAY_PARAM_OFFSET;\n            }\n\n            $pos         += $queryOffset;\n            $queryOffset += (strlen($expandStr) - $paramLen);\n            $query        = substr($query, 0, $pos) . $expandStr . substr($query, ($pos + $paramLen));\n        }\n\n        return [$query, $paramsOrd, $typesOrd];\n    }\n\n    /**\n     * Slice the SQL statement around pairs of quotes and\n     * return string fragments of SQL outside of quoted literals.\n     * Each fragment is captured as a 2-element array:\n     *\n     * 0 => matched fragment string,\n     * 1 => offset of fragment in $statement\n     *\n     * @param string $statement\n     *\n     * @return mixed[][]\n     */\n    private static function getUnquotedStatementFragments($statement)\n    {\n        $literal    = self::ESCAPED_SINGLE_QUOTED_TEXT . '|' .\n            self::ESCAPED_DOUBLE_QUOTED_TEXT . '|' .\n            self::ESCAPED_BACKTICK_QUOTED_TEXT . '|' .\n            self::ESCAPED_BRACKET_QUOTED_TEXT;\n        $expression = sprintf('/((.+(?i:ARRAY)\\\\[.+\\\\])|([^\\'\"`\\\\[]+))(?:%s)?/s', $literal);\n\n        preg_match_all($expression, $statement, $fragments, PREG_OFFSET_CAPTURE);\n\n        return $fragments[1];\n    }\n\n    /**\n     * @param string $paramName     The name of the parameter (without a colon in front)\n     * @param mixed  $paramsOrTypes A hash of parameters or types\n     * @param bool   $isParam\n     * @param mixed  $defaultValue  An optional default value. If omitted, an exception is thrown\n     *\n     * @return mixed\n     *\n     * @throws SQLParserUtilsException\n     */\n    private static function extractParam($paramName, $paramsOrTypes, $isParam, $defaultValue = null)\n    {\n        if (array_key_exists($paramName, $paramsOrTypes)) {\n            return $paramsOrTypes[$paramName];\n        }\n\n        // Hash keys can be prefixed with a colon for compatibility\n        if (array_key_exists(':' . $paramName, $paramsOrTypes)) {\n            return $paramsOrTypes[':' . $paramName];\n        }\n\n        if ($defaultValue !== null) {\n            return $defaultValue;\n        }\n\n        if ($isParam) {\n            throw SQLParserUtilsException::missingParam($paramName);\n        }\n\n        throw SQLParserUtilsException::missingType($paramName);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse function sprintf;\n\n/**\n * Doctrine\\DBAL\\ConnectionException\n */\nclass SQLParserUtilsException extends DBALException\n{\n    /**\n     * @param string $paramName\n     *\n     * @return \\Doctrine\\DBAL\\SQLParserUtilsException\n     */\n    public static function missingParam($paramName)\n    {\n        return new self(sprintf('Value for :%1$s not found in params array. Params array key should be \"%1$s\"', $paramName));\n    }\n\n    /**\n     * @param string $typeName\n     *\n     * @return \\Doctrine\\DBAL\\SQLParserUtilsException\n     */\n    public static function missingType($typeName)\n    {\n        return new self(sprintf('Value for :%1$s not found in types array. Types array key should be \"%1$s\"', $typeName));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function array_map;\nuse function crc32;\nuse function dechex;\nuse function explode;\nuse function implode;\nuse function str_replace;\nuse function strpos;\nuse function strtolower;\nuse function strtoupper;\nuse function substr;\n\n/**\n * The abstract asset allows to reset the name of all assets without publishing this to the public userland.\n *\n * This encapsulation hack is necessary to keep a consistent state of the database schema. Say we have a list of tables\n * array($tableName => Table($tableName)); if you want to rename the table, you have to make sure\n */\nabstract class AbstractAsset\n{\n    /** @var string */\n    protected $_name;\n\n    /**\n     * Namespace of the asset. If none isset the default namespace is assumed.\n     *\n     * @var string|null\n     */\n    protected $_namespace = null;\n\n    /** @var bool */\n    protected $_quoted = false;\n\n    /**\n     * Sets the name of this asset.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    protected function _setName($name)\n    {\n        if ($this->isIdentifierQuoted($name)) {\n            $this->_quoted = true;\n            $name          = $this->trimQuotes($name);\n        }\n        if (strpos($name, '.') !== false) {\n            $parts            = explode('.', $name);\n            $this->_namespace = $parts[0];\n            $name             = $parts[1];\n        }\n        $this->_name = $name;\n    }\n\n    /**\n     * Is this asset in the default namespace?\n     *\n     * @param string $defaultNamespaceName\n     *\n     * @return bool\n     */\n    public function isInDefaultNamespace($defaultNamespaceName)\n    {\n        return $this->_namespace === $defaultNamespaceName || $this->_namespace === null;\n    }\n\n    /**\n     * Gets the namespace name of this asset.\n     *\n     * If NULL is returned this means the default namespace is used.\n     *\n     * @return string|null\n     */\n    public function getNamespaceName()\n    {\n        return $this->_namespace;\n    }\n\n    /**\n     * The shortest name is stripped of the default namespace. All other\n     * namespaced elements are returned as full-qualified names.\n     *\n     * @param string $defaultNamespaceName\n     *\n     * @return string\n     */\n    public function getShortestName($defaultNamespaceName)\n    {\n        $shortestName = $this->getName();\n        if ($this->_namespace === $defaultNamespaceName) {\n            $shortestName = $this->_name;\n        }\n\n        return strtolower($shortestName);\n    }\n\n    /**\n     * The normalized name is full-qualified and lowerspaced. Lowerspacing is\n     * actually wrong, but we have to do it to keep our sanity. If you are\n     * using database objects that only differentiate in the casing (FOO vs\n     * Foo) then you will NOT be able to use Doctrine Schema abstraction.\n     *\n     * Every non-namespaced element is prefixed with the default namespace\n     * name which is passed as argument to this method.\n     *\n     * @param string $defaultNamespaceName\n     *\n     * @return string\n     */\n    public function getFullQualifiedName($defaultNamespaceName)\n    {\n        $name = $this->getName();\n        if (! $this->_namespace) {\n            $name = $defaultNamespaceName . '.' . $name;\n        }\n\n        return strtolower($name);\n    }\n\n    /**\n     * Checks if this asset's name is quoted.\n     *\n     * @return bool\n     */\n    public function isQuoted()\n    {\n        return $this->_quoted;\n    }\n\n    /**\n     * Checks if this identifier is quoted.\n     *\n     * @param string $identifier\n     *\n     * @return bool\n     */\n    protected function isIdentifierQuoted($identifier)\n    {\n        return isset($identifier[0]) && ($identifier[0] === '`' || $identifier[0] === '\"' || $identifier[0] === '[');\n    }\n\n    /**\n     * Trim quotes from the identifier.\n     *\n     * @param string $identifier\n     *\n     * @return string\n     */\n    protected function trimQuotes($identifier)\n    {\n        return str_replace(['`', '\"', '[', ']'], '', $identifier);\n    }\n\n    /**\n     * Returns the name of this schema asset.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        if ($this->_namespace) {\n            return $this->_namespace . '.' . $this->_name;\n        }\n\n        return $this->_name;\n    }\n\n    /**\n     * Gets the quoted representation of this asset but only if it was defined with one. Otherwise\n     * return the plain unquoted value as inserted.\n     *\n     * @return string\n     */\n    public function getQuotedName(AbstractPlatform $platform)\n    {\n        $keywords = $platform->getReservedKeywordsList();\n        $parts    = explode('.', $this->getName());\n        foreach ($parts as $k => $v) {\n            $parts[$k] = $this->_quoted || $keywords->isKeyword($v) ? $platform->quoteIdentifier($v) : $v;\n        }\n\n        return implode('.', $parts);\n    }\n\n    /**\n     * Generates an identifier from a list of column names obeying a certain string length.\n     *\n     * This is especially important for Oracle, since it does not allow identifiers larger than 30 chars,\n     * however building idents automatically for foreign keys, composite keys or such can easily create\n     * very long names.\n     *\n     * @param string[] $columnNames\n     * @param string   $prefix\n     * @param int      $maxSize\n     *\n     * @return string\n     */\n    protected function _generateIdentifierName($columnNames, $prefix = '', $maxSize = 30)\n    {\n        $hash = implode('', array_map(static function ($column) {\n            return dechex(crc32($column));\n        }, $columnNames));\n\n        return strtoupper(substr($prefix . '_' . $hash, 0, $maxSize));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\ConnectionException;\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Event\\SchemaColumnDefinitionEventArgs;\nuse Doctrine\\DBAL\\Event\\SchemaIndexDefinitionEventArgs;\nuse Doctrine\\DBAL\\Events;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Throwable;\nuse function array_filter;\nuse function array_intersect;\nuse function array_map;\nuse function array_values;\nuse function call_user_func_array;\nuse function count;\nuse function func_get_args;\nuse function is_array;\nuse function preg_match;\nuse function str_replace;\nuse function strtolower;\n\n/**\n * Base class for schema managers. Schema managers are used to inspect and/or\n * modify the database schema/structure.\n */\nabstract class AbstractSchemaManager\n{\n    /**\n     * Holds instance of the Doctrine connection for this schema manager.\n     *\n     * @var Connection\n     */\n    protected $_conn;\n\n    /**\n     * Holds instance of the database platform used for this schema manager.\n     *\n     * @var AbstractPlatform\n     */\n    protected $_platform;\n\n    /**\n     * Constructor. Accepts the Connection instance to manage the schema for.\n     */\n    public function __construct(Connection $conn, ?AbstractPlatform $platform = null)\n    {\n        $this->_conn     = $conn;\n        $this->_platform = $platform ?: $this->_conn->getDatabasePlatform();\n    }\n\n    /**\n     * Returns the associated platform.\n     *\n     * @return AbstractPlatform\n     */\n    public function getDatabasePlatform()\n    {\n        return $this->_platform;\n    }\n\n    /**\n     * Tries any method on the schema manager. Normally a method throws an\n     * exception when your DBMS doesn't support it or if an error occurs.\n     * This method allows you to try and method on your SchemaManager\n     * instance and will return false if it does not work or is not supported.\n     *\n     * <code>\n     * $result = $sm->tryMethod('dropView', 'view_name');\n     * </code>\n     *\n     * @return mixed\n     */\n    public function tryMethod()\n    {\n        $args   = func_get_args();\n        $method = $args[0];\n        unset($args[0]);\n        $args = array_values($args);\n\n        try {\n            return call_user_func_array([$this, $method], $args);\n        } catch (Throwable $e) {\n            return false;\n        }\n    }\n\n    /**\n     * Lists the available databases for this connection.\n     *\n     * @return string[]\n     */\n    public function listDatabases()\n    {\n        $sql = $this->_platform->getListDatabasesSQL();\n\n        $databases = $this->_conn->fetchAll($sql);\n\n        return $this->_getPortableDatabasesList($databases);\n    }\n\n    /**\n     * Returns a list of all namespaces in the current database.\n     *\n     * @return string[]\n     */\n    public function listNamespaceNames()\n    {\n        $sql = $this->_platform->getListNamespacesSQL();\n\n        $namespaces = $this->_conn->fetchAll($sql);\n\n        return $this->getPortableNamespacesList($namespaces);\n    }\n\n    /**\n     * Lists the available sequences for this connection.\n     *\n     * @param string|null $database\n     *\n     * @return Sequence[]\n     */\n    public function listSequences($database = null)\n    {\n        if ($database === null) {\n            $database = $this->_conn->getDatabase();\n        }\n        $sql = $this->_platform->getListSequencesSQL($database);\n\n        $sequences = $this->_conn->fetchAll($sql);\n\n        return $this->filterAssetNames($this->_getPortableSequencesList($sequences));\n    }\n\n    /**\n     * Lists the columns for a given table.\n     *\n     * In contrast to other libraries and to the old version of Doctrine,\n     * this column definition does try to contain the 'primary' field for\n     * the reason that it is not portable across different RDBMS. Use\n     * {@see listTableIndexes($tableName)} to retrieve the primary key\n     * of a table. We're a RDBMS specifies more details these are held\n     * in the platformDetails array.\n     *\n     * @param string      $table    The name of the table.\n     * @param string|null $database\n     *\n     * @return Column[]\n     */\n    public function listTableColumns($table, $database = null)\n    {\n        if (! $database) {\n            $database = $this->_conn->getDatabase();\n        }\n\n        $sql = $this->_platform->getListTableColumnsSQL($table, $database);\n\n        $tableColumns = $this->_conn->fetchAll($sql);\n\n        return $this->_getPortableTableColumnList($table, $database, $tableColumns);\n    }\n\n    /**\n     * Lists the indexes for a given table returning an array of Index instances.\n     *\n     * Keys of the portable indexes list are all lower-cased.\n     *\n     * @param string $table The name of the table.\n     *\n     * @return Index[]\n     */\n    public function listTableIndexes($table)\n    {\n        $sql = $this->_platform->getListTableIndexesSQL($table, $this->_conn->getDatabase());\n\n        $tableIndexes = $this->_conn->fetchAll($sql);\n\n        return $this->_getPortableTableIndexesList($tableIndexes, $table);\n    }\n\n    /**\n     * Returns true if all the given tables exist.\n     *\n     * @param string[] $tableNames\n     *\n     * @return bool\n     */\n    public function tablesExist($tableNames)\n    {\n        $tableNames = array_map('strtolower', (array) $tableNames);\n\n        return count($tableNames) === count(array_intersect($tableNames, array_map('strtolower', $this->listTableNames())));\n    }\n\n    /**\n     * Returns a list of all tables in the current database.\n     *\n     * @return string[]\n     */\n    public function listTableNames()\n    {\n        $sql = $this->_platform->getListTablesSQL();\n\n        $tables     = $this->_conn->fetchAll($sql);\n        $tableNames = $this->_getPortableTablesList($tables);\n\n        return $this->filterAssetNames($tableNames);\n    }\n\n    /**\n     * Filters asset names if they are configured to return only a subset of all\n     * the found elements.\n     *\n     * @param mixed[] $assetNames\n     *\n     * @return mixed[]\n     */\n    protected function filterAssetNames($assetNames)\n    {\n        $filter = $this->_conn->getConfiguration()->getSchemaAssetsFilter();\n        if (! $filter) {\n            return $assetNames;\n        }\n\n        return array_values(array_filter($assetNames, $filter));\n    }\n\n    /**\n     * @deprecated Use Configuration::getSchemaAssetsFilter() instead\n     *\n     * @return string|null\n     */\n    protected function getFilterSchemaAssetsExpression()\n    {\n        return $this->_conn->getConfiguration()->getFilterSchemaAssetsExpression();\n    }\n\n    /**\n     * Lists the tables for this connection.\n     *\n     * @return Table[]\n     */\n    public function listTables()\n    {\n        $tableNames = $this->listTableNames();\n\n        $tables = [];\n        foreach ($tableNames as $tableName) {\n            $tables[] = $this->listTableDetails($tableName);\n        }\n\n        return $tables;\n    }\n\n    /**\n     * @param string $tableName\n     *\n     * @return Table\n     */\n    public function listTableDetails($tableName)\n    {\n        $columns     = $this->listTableColumns($tableName);\n        $foreignKeys = [];\n        if ($this->_platform->supportsForeignKeyConstraints()) {\n            $foreignKeys = $this->listTableForeignKeys($tableName);\n        }\n        $indexes = $this->listTableIndexes($tableName);\n\n        return new Table($tableName, $columns, $indexes, $foreignKeys, false, []);\n    }\n\n    /**\n     * Lists the views this connection has.\n     *\n     * @return View[]\n     */\n    public function listViews()\n    {\n        $database = $this->_conn->getDatabase();\n        $sql      = $this->_platform->getListViewsSQL($database);\n        $views    = $this->_conn->fetchAll($sql);\n\n        return $this->_getPortableViewsList($views);\n    }\n\n    /**\n     * Lists the foreign keys for the given table.\n     *\n     * @param string      $table    The name of the table.\n     * @param string|null $database\n     *\n     * @return ForeignKeyConstraint[]\n     */\n    public function listTableForeignKeys($table, $database = null)\n    {\n        if ($database === null) {\n            $database = $this->_conn->getDatabase();\n        }\n        $sql              = $this->_platform->getListTableForeignKeysSQL($table, $database);\n        $tableForeignKeys = $this->_conn->fetchAll($sql);\n\n        return $this->_getPortableTableForeignKeysList($tableForeignKeys);\n    }\n\n    /* drop*() Methods */\n\n    /**\n     * Drops a database.\n     *\n     * NOTE: You can not drop the database this SchemaManager is currently connected to.\n     *\n     * @param string $database The name of the database to drop.\n     *\n     * @return void\n     */\n    public function dropDatabase($database)\n    {\n        $this->_execSql($this->_platform->getDropDatabaseSQL($database));\n    }\n\n    /**\n     * Drops the given table.\n     *\n     * @param string $tableName The name of the table to drop.\n     *\n     * @return void\n     */\n    public function dropTable($tableName)\n    {\n        $this->_execSql($this->_platform->getDropTableSQL($tableName));\n    }\n\n    /**\n     * Drops the index from the given table.\n     *\n     * @param Index|string $index The name of the index.\n     * @param Table|string $table The name of the table.\n     *\n     * @return void\n     */\n    public function dropIndex($index, $table)\n    {\n        if ($index instanceof Index) {\n            $index = $index->getQuotedName($this->_platform);\n        }\n\n        $this->_execSql($this->_platform->getDropIndexSQL($index, $table));\n    }\n\n    /**\n     * Drops the constraint from the given table.\n     *\n     * @param Table|string $table The name of the table.\n     *\n     * @return void\n     */\n    public function dropConstraint(Constraint $constraint, $table)\n    {\n        $this->_execSql($this->_platform->getDropConstraintSQL($constraint, $table));\n    }\n\n    /**\n     * Drops a foreign key from a table.\n     *\n     * @param ForeignKeyConstraint|string $foreignKey The name of the foreign key.\n     * @param Table|string                $table      The name of the table with the foreign key.\n     *\n     * @return void\n     */\n    public function dropForeignKey($foreignKey, $table)\n    {\n        $this->_execSql($this->_platform->getDropForeignKeySQL($foreignKey, $table));\n    }\n\n    /**\n     * Drops a sequence with a given name.\n     *\n     * @param string $name The name of the sequence to drop.\n     *\n     * @return void\n     */\n    public function dropSequence($name)\n    {\n        $this->_execSql($this->_platform->getDropSequenceSQL($name));\n    }\n\n    /**\n     * Drops a view.\n     *\n     * @param string $name The name of the view.\n     *\n     * @return void\n     */\n    public function dropView($name)\n    {\n        $this->_execSql($this->_platform->getDropViewSQL($name));\n    }\n\n    /* create*() Methods */\n\n    /**\n     * Creates a new database.\n     *\n     * @param string $database The name of the database to create.\n     *\n     * @return void\n     */\n    public function createDatabase($database)\n    {\n        $this->_execSql($this->_platform->getCreateDatabaseSQL($database));\n    }\n\n    /**\n     * Creates a new table.\n     *\n     * @return void\n     */\n    public function createTable(Table $table)\n    {\n        $createFlags = AbstractPlatform::CREATE_INDEXES|AbstractPlatform::CREATE_FOREIGNKEYS;\n        $this->_execSql($this->_platform->getCreateTableSQL($table, $createFlags));\n    }\n\n    /**\n     * Creates a new sequence.\n     *\n     * @param Sequence $sequence\n     *\n     * @return void\n     *\n     * @throws ConnectionException If something fails at database level.\n     */\n    public function createSequence($sequence)\n    {\n        $this->_execSql($this->_platform->getCreateSequenceSQL($sequence));\n    }\n\n    /**\n     * Creates a constraint on a table.\n     *\n     * @param Table|string $table\n     *\n     * @return void\n     */\n    public function createConstraint(Constraint $constraint, $table)\n    {\n        $this->_execSql($this->_platform->getCreateConstraintSQL($constraint, $table));\n    }\n\n    /**\n     * Creates a new index on a table.\n     *\n     * @param Table|string $table The name of the table on which the index is to be created.\n     *\n     * @return void\n     */\n    public function createIndex(Index $index, $table)\n    {\n        $this->_execSql($this->_platform->getCreateIndexSQL($index, $table));\n    }\n\n    /**\n     * Creates a new foreign key.\n     *\n     * @param ForeignKeyConstraint $foreignKey The ForeignKey instance.\n     * @param Table|string         $table      The name of the table on which the foreign key is to be created.\n     *\n     * @return void\n     */\n    public function createForeignKey(ForeignKeyConstraint $foreignKey, $table)\n    {\n        $this->_execSql($this->_platform->getCreateForeignKeySQL($foreignKey, $table));\n    }\n\n    /**\n     * Creates a new view.\n     *\n     * @return void\n     */\n    public function createView(View $view)\n    {\n        $this->_execSql($this->_platform->getCreateViewSQL($view->getQuotedName($this->_platform), $view->getSql()));\n    }\n\n    /* dropAndCreate*() Methods */\n\n    /**\n     * Drops and creates a constraint.\n     *\n     * @see dropConstraint()\n     * @see createConstraint()\n     *\n     * @param Table|string $table\n     *\n     * @return void\n     */\n    public function dropAndCreateConstraint(Constraint $constraint, $table)\n    {\n        $this->tryMethod('dropConstraint', $constraint, $table);\n        $this->createConstraint($constraint, $table);\n    }\n\n    /**\n     * Drops and creates a new index on a table.\n     *\n     * @param Table|string $table The name of the table on which the index is to be created.\n     *\n     * @return void\n     */\n    public function dropAndCreateIndex(Index $index, $table)\n    {\n        $this->tryMethod('dropIndex', $index->getQuotedName($this->_platform), $table);\n        $this->createIndex($index, $table);\n    }\n\n    /**\n     * Drops and creates a new foreign key.\n     *\n     * @param ForeignKeyConstraint $foreignKey An associative array that defines properties of the foreign key to be created.\n     * @param Table|string         $table      The name of the table on which the foreign key is to be created.\n     *\n     * @return void\n     */\n    public function dropAndCreateForeignKey(ForeignKeyConstraint $foreignKey, $table)\n    {\n        $this->tryMethod('dropForeignKey', $foreignKey, $table);\n        $this->createForeignKey($foreignKey, $table);\n    }\n\n    /**\n     * Drops and create a new sequence.\n     *\n     * @return void\n     *\n     * @throws ConnectionException If something fails at database level.\n     */\n    public function dropAndCreateSequence(Sequence $sequence)\n    {\n        $this->tryMethod('dropSequence', $sequence->getQuotedName($this->_platform));\n        $this->createSequence($sequence);\n    }\n\n    /**\n     * Drops and creates a new table.\n     *\n     * @return void\n     */\n    public function dropAndCreateTable(Table $table)\n    {\n        $this->tryMethod('dropTable', $table->getQuotedName($this->_platform));\n        $this->createTable($table);\n    }\n\n    /**\n     * Drops and creates a new database.\n     *\n     * @param string $database The name of the database to create.\n     *\n     * @return void\n     */\n    public function dropAndCreateDatabase($database)\n    {\n        $this->tryMethod('dropDatabase', $database);\n        $this->createDatabase($database);\n    }\n\n    /**\n     * Drops and creates a new view.\n     *\n     * @return void\n     */\n    public function dropAndCreateView(View $view)\n    {\n        $this->tryMethod('dropView', $view->getQuotedName($this->_platform));\n        $this->createView($view);\n    }\n\n    /* alterTable() Methods */\n\n    /**\n     * Alters an existing tables schema.\n     *\n     * @return void\n     */\n    public function alterTable(TableDiff $tableDiff)\n    {\n        $queries = $this->_platform->getAlterTableSQL($tableDiff);\n        if (! is_array($queries) || ! count($queries)) {\n            return;\n        }\n\n        foreach ($queries as $ddlQuery) {\n            $this->_execSql($ddlQuery);\n        }\n    }\n\n    /**\n     * Renames a given table to another name.\n     *\n     * @param string $name    The current name of the table.\n     * @param string $newName The new name of the table.\n     *\n     * @return void\n     */\n    public function renameTable($name, $newName)\n    {\n        $tableDiff          = new TableDiff($name);\n        $tableDiff->newName = $newName;\n        $this->alterTable($tableDiff);\n    }\n\n    /**\n     * Methods for filtering return values of list*() methods to convert\n     * the native DBMS data definition to a portable Doctrine definition\n     */\n\n    /**\n     * @param mixed[] $databases\n     *\n     * @return string[]\n     */\n    protected function _getPortableDatabasesList($databases)\n    {\n        $list = [];\n        foreach ($databases as $value) {\n            $value = $this->_getPortableDatabaseDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * Converts a list of namespace names from the native DBMS data definition to a portable Doctrine definition.\n     *\n     * @param mixed[][] $namespaces The list of namespace names in the native DBMS data definition.\n     *\n     * @return string[]\n     */\n    protected function getPortableNamespacesList(array $namespaces)\n    {\n        $namespacesList = [];\n\n        foreach ($namespaces as $namespace) {\n            $namespacesList[] = $this->getPortableNamespaceDefinition($namespace);\n        }\n\n        return $namespacesList;\n    }\n\n    /**\n     * @param mixed $database\n     *\n     * @return mixed\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database;\n    }\n\n    /**\n     * Converts a namespace definition from the native DBMS data definition to a portable Doctrine definition.\n     *\n     * @param mixed[] $namespace The native DBMS namespace definition.\n     *\n     * @return mixed\n     */\n    protected function getPortableNamespaceDefinition(array $namespace)\n    {\n        return $namespace;\n    }\n\n    /**\n     * @param mixed[][] $functions\n     *\n     * @return mixed[][]\n     */\n    protected function _getPortableFunctionsList($functions)\n    {\n        $list = [];\n        foreach ($functions as $value) {\n            $value = $this->_getPortableFunctionDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed[] $function\n     *\n     * @return mixed\n     */\n    protected function _getPortableFunctionDefinition($function)\n    {\n        return $function;\n    }\n\n    /**\n     * @param mixed[][] $triggers\n     *\n     * @return mixed[][]\n     */\n    protected function _getPortableTriggersList($triggers)\n    {\n        $list = [];\n        foreach ($triggers as $value) {\n            $value = $this->_getPortableTriggerDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed[] $trigger\n     *\n     * @return mixed\n     */\n    protected function _getPortableTriggerDefinition($trigger)\n    {\n        return $trigger;\n    }\n\n    /**\n     * @param mixed[][] $sequences\n     *\n     * @return Sequence[]\n     */\n    protected function _getPortableSequencesList($sequences)\n    {\n        $list = [];\n        foreach ($sequences as $value) {\n            $value = $this->_getPortableSequenceDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed[] $sequence\n     *\n     * @return Sequence\n     *\n     * @throws DBALException\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        throw DBALException::notSupported('Sequences');\n    }\n\n    /**\n     * Independent of the database the keys of the column list result are lowercased.\n     *\n     * The name of the created column instance however is kept in its case.\n     *\n     * @param string    $table        The name of the table.\n     * @param string    $database\n     * @param mixed[][] $tableColumns\n     *\n     * @return Column[]\n     */\n    protected function _getPortableTableColumnList($table, $database, $tableColumns)\n    {\n        $eventManager = $this->_platform->getEventManager();\n\n        $list = [];\n        foreach ($tableColumns as $tableColumn) {\n            $column           = null;\n            $defaultPrevented = false;\n\n            if ($eventManager !== null && $eventManager->hasListeners(Events::onSchemaColumnDefinition)) {\n                $eventArgs = new SchemaColumnDefinitionEventArgs($tableColumn, $table, $database, $this->_conn);\n                $eventManager->dispatchEvent(Events::onSchemaColumnDefinition, $eventArgs);\n\n                $defaultPrevented = $eventArgs->isDefaultPrevented();\n                $column           = $eventArgs->getColumn();\n            }\n\n            if (! $defaultPrevented) {\n                $column = $this->_getPortableTableColumnDefinition($tableColumn);\n            }\n\n            if (! $column) {\n                continue;\n            }\n\n            $name        = strtolower($column->getQuotedName($this->_platform));\n            $list[$name] = $column;\n        }\n\n        return $list;\n    }\n\n    /**\n     * Gets Table Column Definition.\n     *\n     * @param mixed[] $tableColumn\n     *\n     * @return Column\n     */\n    abstract protected function _getPortableTableColumnDefinition($tableColumn);\n\n    /**\n     * Aggregates and groups the index results according to the required data result.\n     *\n     * @param mixed[][]   $tableIndexRows\n     * @param string|null $tableName\n     *\n     * @return Index[]\n     */\n    protected function _getPortableTableIndexesList($tableIndexRows, $tableName = null)\n    {\n        $result = [];\n        foreach ($tableIndexRows as $tableIndex) {\n            $indexName = $keyName = $tableIndex['key_name'];\n            if ($tableIndex['primary']) {\n                $keyName = 'primary';\n            }\n            $keyName = strtolower($keyName);\n\n            if (! isset($result[$keyName])) {\n                $options = [\n                    'lengths' => [],\n                ];\n\n                if (isset($tableIndex['where'])) {\n                    $options['where'] = $tableIndex['where'];\n                }\n\n                $result[$keyName] = [\n                    'name' => $indexName,\n                    'columns' => [],\n                    'unique' => $tableIndex['non_unique'] ? false : true,\n                    'primary' => $tableIndex['primary'],\n                    'flags' => $tableIndex['flags'] ?? [],\n                    'options' => $options,\n                ];\n            }\n\n            $result[$keyName]['columns'][]            = $tableIndex['column_name'];\n            $result[$keyName]['options']['lengths'][] = $tableIndex['length'] ?? null;\n        }\n\n        $eventManager = $this->_platform->getEventManager();\n\n        $indexes = [];\n        foreach ($result as $indexKey => $data) {\n            $index            = null;\n            $defaultPrevented = false;\n\n            if ($eventManager !== null && $eventManager->hasListeners(Events::onSchemaIndexDefinition)) {\n                $eventArgs = new SchemaIndexDefinitionEventArgs($data, $tableName, $this->_conn);\n                $eventManager->dispatchEvent(Events::onSchemaIndexDefinition, $eventArgs);\n\n                $defaultPrevented = $eventArgs->isDefaultPrevented();\n                $index            = $eventArgs->getIndex();\n            }\n\n            if (! $defaultPrevented) {\n                $index = new Index($data['name'], $data['columns'], $data['unique'], $data['primary'], $data['flags'], $data['options']);\n            }\n\n            if (! $index) {\n                continue;\n            }\n\n            $indexes[$indexKey] = $index;\n        }\n\n        return $indexes;\n    }\n\n    /**\n     * @param mixed[][] $tables\n     *\n     * @return string[]\n     */\n    protected function _getPortableTablesList($tables)\n    {\n        $list = [];\n        foreach ($tables as $value) {\n            $value = $this->_getPortableTableDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed $table\n     *\n     * @return string\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        return $table;\n    }\n\n    /**\n     * @param mixed[][] $users\n     *\n     * @return string[][]\n     */\n    protected function _getPortableUsersList($users)\n    {\n        $list = [];\n        foreach ($users as $value) {\n            $value = $this->_getPortableUserDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed[] $user\n     *\n     * @return mixed[]\n     */\n    protected function _getPortableUserDefinition($user)\n    {\n        return $user;\n    }\n\n    /**\n     * @param mixed[][] $views\n     *\n     * @return View[]\n     */\n    protected function _getPortableViewsList($views)\n    {\n        $list = [];\n        foreach ($views as $value) {\n            $view = $this->_getPortableViewDefinition($value);\n\n            if (! $view) {\n                continue;\n            }\n\n            $viewName        = strtolower($view->getQuotedName($this->_platform));\n            $list[$viewName] = $view;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed[] $view\n     *\n     * @return View|false\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        return false;\n    }\n\n    /**\n     * @param mixed[][] $tableForeignKeys\n     *\n     * @return ForeignKeyConstraint[]\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $list = [];\n        foreach ($tableForeignKeys as $value) {\n            $value = $this->_getPortableTableForeignKeyDefinition($value);\n\n            if (! $value) {\n                continue;\n            }\n\n            $list[] = $value;\n        }\n\n        return $list;\n    }\n\n    /**\n     * @param mixed $tableForeignKey\n     *\n     * @return ForeignKeyConstraint\n     */\n    protected function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        return $tableForeignKey;\n    }\n\n    /**\n     * @param string[]|string $sql\n     *\n     * @return void\n     */\n    protected function _execSql($sql)\n    {\n        foreach ((array) $sql as $query) {\n            $this->_conn->executeUpdate($query);\n        }\n    }\n\n    /**\n     * Creates a schema instance for the current database.\n     *\n     * @return Schema\n     */\n    public function createSchema()\n    {\n        $namespaces = [];\n\n        if ($this->_platform->supportsSchemas()) {\n            $namespaces = $this->listNamespaceNames();\n        }\n\n        $sequences = [];\n\n        if ($this->_platform->supportsSequences()) {\n            $sequences = $this->listSequences();\n        }\n\n        $tables = $this->listTables();\n\n        return new Schema($tables, $sequences, $this->createSchemaConfig(), $namespaces);\n    }\n\n    /**\n     * Creates the configuration for this schema.\n     *\n     * @return SchemaConfig\n     */\n    public function createSchemaConfig()\n    {\n        $schemaConfig = new SchemaConfig();\n        $schemaConfig->setMaxIdentifierLength($this->_platform->getMaxIdentifierLength());\n\n        $searchPaths = $this->getSchemaSearchPaths();\n        if (isset($searchPaths[0])) {\n            $schemaConfig->setName($searchPaths[0]);\n        }\n\n        $params = $this->_conn->getParams();\n        if (! isset($params['defaultTableOptions'])) {\n            $params['defaultTableOptions'] = [];\n        }\n        if (! isset($params['defaultTableOptions']['charset']) && isset($params['charset'])) {\n            $params['defaultTableOptions']['charset'] = $params['charset'];\n        }\n        $schemaConfig->setDefaultTableOptions($params['defaultTableOptions']);\n\n        return $schemaConfig;\n    }\n\n    /**\n     * The search path for namespaces in the currently connected database.\n     *\n     * The first entry is usually the default namespace in the Schema. All\n     * further namespaces contain tables/sequences which can also be addressed\n     * with a short, not full-qualified name.\n     *\n     * For databases that don't support subschema/namespaces this method\n     * returns the name of the currently connected database.\n     *\n     * @return string[]\n     */\n    public function getSchemaSearchPaths()\n    {\n        return [$this->_conn->getDatabase()];\n    }\n\n    /**\n     * Given a table comment this method tries to extract a typehint for Doctrine Type, or returns\n     * the type given as default.\n     *\n     * @param string $comment\n     * @param string $currentType\n     *\n     * @return string\n     */\n    public function extractDoctrineTypeFromComment($comment, $currentType)\n    {\n        if (preg_match('(\\(DC2Type:(((?!\\)).)+)\\))', $comment, $match)) {\n            $currentType = $match[1];\n        }\n\n        return $currentType;\n    }\n\n    /**\n     * @param string $comment\n     * @param string $type\n     *\n     * @return string\n     */\n    public function removeDoctrineTypeFromComment($comment, $type)\n    {\n        return str_replace('(DC2Type:' . $type . ')', '', $comment);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Types\\Type;\nuse const E_USER_DEPRECATED;\nuse function array_merge;\nuse function is_numeric;\nuse function method_exists;\nuse function sprintf;\nuse function trigger_error;\n\n/**\n * Object representation of a database column.\n */\nclass Column extends AbstractAsset\n{\n    /** @var Type */\n    protected $_type;\n\n    /** @var int|null */\n    protected $_length = null;\n\n    /** @var int */\n    protected $_precision = 10;\n\n    /** @var int */\n    protected $_scale = 0;\n\n    /** @var bool */\n    protected $_unsigned = false;\n\n    /** @var bool */\n    protected $_fixed = false;\n\n    /** @var bool */\n    protected $_notnull = true;\n\n    /** @var string|null */\n    protected $_default = null;\n\n    /** @var bool */\n    protected $_autoincrement = false;\n\n    /** @var mixed[] */\n    protected $_platformOptions = [];\n\n    /** @var string|null */\n    protected $_columnDefinition = null;\n\n    /** @var string|null */\n    protected $_comment = null;\n\n    /** @var mixed[] */\n    protected $_customSchemaOptions = [];\n\n    /**\n     * Creates a new Column.\n     *\n     * @param string  $columnName\n     * @param mixed[] $options\n     */\n    public function __construct($columnName, Type $type, array $options = [])\n    {\n        $this->_setName($columnName);\n        $this->setType($type);\n        $this->setOptions($options);\n    }\n\n    /**\n     * @param mixed[] $options\n     *\n     * @return Column\n     */\n    public function setOptions(array $options)\n    {\n        foreach ($options as $name => $value) {\n            $method = 'set' . $name;\n            if (! method_exists($this, $method)) {\n                // next major: throw an exception\n                @trigger_error(sprintf(\n                    'The \"%s\" column option is not supported,' .\n                    ' setting it is deprecated and will cause an error in Doctrine 3.0',\n                    $name\n                ), E_USER_DEPRECATED);\n\n                continue;\n            }\n            $this->$method($value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return Column\n     */\n    public function setType(Type $type)\n    {\n        $this->_type = $type;\n\n        return $this;\n    }\n\n    /**\n     * @param int|null $length\n     *\n     * @return Column\n     */\n    public function setLength($length)\n    {\n        if ($length !== null) {\n            $this->_length = (int) $length;\n        } else {\n            $this->_length = null;\n        }\n\n        return $this;\n    }\n\n    /**\n     * @param int $precision\n     *\n     * @return Column\n     */\n    public function setPrecision($precision)\n    {\n        if (! is_numeric($precision)) {\n            $precision = 10; // defaults to 10 when no valid precision is given.\n        }\n\n        $this->_precision = (int) $precision;\n\n        return $this;\n    }\n\n    /**\n     * @param int $scale\n     *\n     * @return Column\n     */\n    public function setScale($scale)\n    {\n        if (! is_numeric($scale)) {\n            $scale = 0;\n        }\n\n        $this->_scale = (int) $scale;\n\n        return $this;\n    }\n\n    /**\n     * @param bool $unsigned\n     *\n     * @return Column\n     */\n    public function setUnsigned($unsigned)\n    {\n        $this->_unsigned = (bool) $unsigned;\n\n        return $this;\n    }\n\n    /**\n     * @param bool $fixed\n     *\n     * @return Column\n     */\n    public function setFixed($fixed)\n    {\n        $this->_fixed = (bool) $fixed;\n\n        return $this;\n    }\n\n    /**\n     * @param bool $notnull\n     *\n     * @return Column\n     */\n    public function setNotnull($notnull)\n    {\n        $this->_notnull = (bool) $notnull;\n\n        return $this;\n    }\n\n    /**\n     * @param mixed $default\n     *\n     * @return Column\n     */\n    public function setDefault($default)\n    {\n        $this->_default = $default;\n\n        return $this;\n    }\n\n    /**\n     * @param mixed[] $platformOptions\n     *\n     * @return Column\n     */\n    public function setPlatformOptions(array $platformOptions)\n    {\n        $this->_platformOptions = $platformOptions;\n\n        return $this;\n    }\n\n    /**\n     * @param string $name\n     * @param mixed  $value\n     *\n     * @return Column\n     */\n    public function setPlatformOption($name, $value)\n    {\n        $this->_platformOptions[$name] = $value;\n\n        return $this;\n    }\n\n    /**\n     * @param string $value\n     *\n     * @return Column\n     */\n    public function setColumnDefinition($value)\n    {\n        $this->_columnDefinition = $value;\n\n        return $this;\n    }\n\n    /**\n     * @return Type\n     */\n    public function getType()\n    {\n        return $this->_type;\n    }\n\n    /**\n     * @return int|null\n     */\n    public function getLength()\n    {\n        return $this->_length;\n    }\n\n    /**\n     * @return int\n     */\n    public function getPrecision()\n    {\n        return $this->_precision;\n    }\n\n    /**\n     * @return int\n     */\n    public function getScale()\n    {\n        return $this->_scale;\n    }\n\n    /**\n     * @return bool\n     */\n    public function getUnsigned()\n    {\n        return $this->_unsigned;\n    }\n\n    /**\n     * @return bool\n     */\n    public function getFixed()\n    {\n        return $this->_fixed;\n    }\n\n    /**\n     * @return bool\n     */\n    public function getNotnull()\n    {\n        return $this->_notnull;\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getDefault()\n    {\n        return $this->_default;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getPlatformOptions()\n    {\n        return $this->_platformOptions;\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function hasPlatformOption($name)\n    {\n        return isset($this->_platformOptions[$name]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return mixed\n     */\n    public function getPlatformOption($name)\n    {\n        return $this->_platformOptions[$name];\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getColumnDefinition()\n    {\n        return $this->_columnDefinition;\n    }\n\n    /**\n     * @return bool\n     */\n    public function getAutoincrement()\n    {\n        return $this->_autoincrement;\n    }\n\n    /**\n     * @param bool $flag\n     *\n     * @return Column\n     */\n    public function setAutoincrement($flag)\n    {\n        $this->_autoincrement = $flag;\n\n        return $this;\n    }\n\n    /**\n     * @param string $comment\n     *\n     * @return Column\n     */\n    public function setComment($comment)\n    {\n        $this->_comment = $comment;\n\n        return $this;\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getComment()\n    {\n        return $this->_comment;\n    }\n\n    /**\n     * @param string $name\n     * @param mixed  $value\n     *\n     * @return Column\n     */\n    public function setCustomSchemaOption($name, $value)\n    {\n        $this->_customSchemaOptions[$name] = $value;\n\n        return $this;\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function hasCustomSchemaOption($name)\n    {\n        return isset($this->_customSchemaOptions[$name]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return mixed\n     */\n    public function getCustomSchemaOption($name)\n    {\n        return $this->_customSchemaOptions[$name];\n    }\n\n    /**\n     * @param mixed[] $customSchemaOptions\n     *\n     * @return Column\n     */\n    public function setCustomSchemaOptions(array $customSchemaOptions)\n    {\n        $this->_customSchemaOptions = $customSchemaOptions;\n\n        return $this;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getCustomSchemaOptions()\n    {\n        return $this->_customSchemaOptions;\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function toArray()\n    {\n        return array_merge([\n            'name'          => $this->_name,\n            'type'          => $this->_type,\n            'default'       => $this->_default,\n            'notnull'       => $this->_notnull,\n            'length'        => $this->_length,\n            'precision'     => $this->_precision,\n            'scale'         => $this->_scale,\n            'fixed'         => $this->_fixed,\n            'unsigned'      => $this->_unsigned,\n            'autoincrement' => $this->_autoincrement,\n            'columnDefinition' => $this->_columnDefinition,\n            'comment' => $this->_comment,\n        ], $this->_platformOptions, $this->_customSchemaOptions);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/ColumnDiff.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse function in_array;\n\n/**\n * Represents the change of a column.\n */\nclass ColumnDiff\n{\n    /** @var string */\n    public $oldColumnName;\n\n    /** @var Column */\n    public $column;\n\n    /** @var string[] */\n    public $changedProperties = [];\n\n    /** @var Column */\n    public $fromColumn;\n\n    /**\n     * @param string   $oldColumnName\n     * @param string[] $changedProperties\n     */\n    public function __construct($oldColumnName, Column $column, array $changedProperties = [], ?Column $fromColumn = null)\n    {\n        $this->oldColumnName     = $oldColumnName;\n        $this->column            = $column;\n        $this->changedProperties = $changedProperties;\n        $this->fromColumn        = $fromColumn;\n    }\n\n    /**\n     * @param string $propertyName\n     *\n     * @return bool\n     */\n    public function hasChanged($propertyName)\n    {\n        return in_array($propertyName, $this->changedProperties);\n    }\n\n    /**\n     * @return Identifier\n     */\n    public function getOldColumnName()\n    {\n        $quote = $this->fromColumn && $this->fromColumn->isQuoted();\n\n        return new Identifier($this->oldColumnName, $quote);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Types;\nuse function array_intersect_key;\nuse function array_key_exists;\nuse function array_keys;\nuse function array_map;\nuse function array_merge;\nuse function array_shift;\nuse function array_unique;\nuse function count;\nuse function strtolower;\n\n/**\n * Compares two Schemas and return an instance of SchemaDiff.\n */\nclass Comparator\n{\n    /**\n     * @return SchemaDiff\n     */\n    public static function compareSchemas(Schema $fromSchema, Schema $toSchema)\n    {\n        $c = new self();\n\n        return $c->compare($fromSchema, $toSchema);\n    }\n\n    /**\n     * Returns a SchemaDiff object containing the differences between the schemas $fromSchema and $toSchema.\n     *\n     * The returned differences are returned in such a way that they contain the\n     * operations to change the schema stored in $fromSchema to the schema that is\n     * stored in $toSchema.\n     *\n     * @return SchemaDiff\n     */\n    public function compare(Schema $fromSchema, Schema $toSchema)\n    {\n        $diff             = new SchemaDiff();\n        $diff->fromSchema = $fromSchema;\n\n        $foreignKeysToTable = [];\n\n        foreach ($toSchema->getNamespaces() as $namespace) {\n            if ($fromSchema->hasNamespace($namespace)) {\n                continue;\n            }\n\n            $diff->newNamespaces[$namespace] = $namespace;\n        }\n\n        foreach ($fromSchema->getNamespaces() as $namespace) {\n            if ($toSchema->hasNamespace($namespace)) {\n                continue;\n            }\n\n            $diff->removedNamespaces[$namespace] = $namespace;\n        }\n\n        foreach ($toSchema->getTables() as $table) {\n            $tableName = $table->getShortestName($toSchema->getName());\n            if (! $fromSchema->hasTable($tableName)) {\n                $diff->newTables[$tableName] = $toSchema->getTable($tableName);\n            } else {\n                $tableDifferences = $this->diffTable($fromSchema->getTable($tableName), $toSchema->getTable($tableName));\n                if ($tableDifferences !== false) {\n                    $diff->changedTables[$tableName] = $tableDifferences;\n                }\n            }\n        }\n\n        /* Check if there are tables removed */\n        foreach ($fromSchema->getTables() as $table) {\n            $tableName = $table->getShortestName($fromSchema->getName());\n\n            $table = $fromSchema->getTable($tableName);\n            if (! $toSchema->hasTable($tableName)) {\n                $diff->removedTables[$tableName] = $table;\n            }\n\n            // also remember all foreign keys that point to a specific table\n            foreach ($table->getForeignKeys() as $foreignKey) {\n                $foreignTable = strtolower($foreignKey->getForeignTableName());\n                if (! isset($foreignKeysToTable[$foreignTable])) {\n                    $foreignKeysToTable[$foreignTable] = [];\n                }\n                $foreignKeysToTable[$foreignTable][] = $foreignKey;\n            }\n        }\n\n        foreach ($diff->removedTables as $tableName => $table) {\n            if (! isset($foreignKeysToTable[$tableName])) {\n                continue;\n            }\n\n            $diff->orphanedForeignKeys = array_merge($diff->orphanedForeignKeys, $foreignKeysToTable[$tableName]);\n\n            // deleting duplicated foreign keys present on both on the orphanedForeignKey\n            // and the removedForeignKeys from changedTables\n            foreach ($foreignKeysToTable[$tableName] as $foreignKey) {\n                // strtolower the table name to make if compatible with getShortestName\n                $localTableName = strtolower($foreignKey->getLocalTableName());\n                if (! isset($diff->changedTables[$localTableName])) {\n                    continue;\n                }\n\n                foreach ($diff->changedTables[$localTableName]->removedForeignKeys as $key => $removedForeignKey) {\n                    // We check if the key is from the removed table if not we skip.\n                    if ($tableName !== strtolower($removedForeignKey->getForeignTableName())) {\n                        continue;\n                    }\n                    unset($diff->changedTables[$localTableName]->removedForeignKeys[$key]);\n                }\n            }\n        }\n\n        foreach ($toSchema->getSequences() as $sequence) {\n            $sequenceName = $sequence->getShortestName($toSchema->getName());\n            if (! $fromSchema->hasSequence($sequenceName)) {\n                if (! $this->isAutoIncrementSequenceInSchema($fromSchema, $sequence)) {\n                    $diff->newSequences[] = $sequence;\n                }\n            } else {\n                if ($this->diffSequence($sequence, $fromSchema->getSequence($sequenceName))) {\n                    $diff->changedSequences[] = $toSchema->getSequence($sequenceName);\n                }\n            }\n        }\n\n        foreach ($fromSchema->getSequences() as $sequence) {\n            if ($this->isAutoIncrementSequenceInSchema($toSchema, $sequence)) {\n                continue;\n            }\n\n            $sequenceName = $sequence->getShortestName($fromSchema->getName());\n\n            if ($toSchema->hasSequence($sequenceName)) {\n                continue;\n            }\n\n            $diff->removedSequences[] = $sequence;\n        }\n\n        return $diff;\n    }\n\n    /**\n     * @param Schema   $schema\n     * @param Sequence $sequence\n     *\n     * @return bool\n     */\n    private function isAutoIncrementSequenceInSchema($schema, $sequence)\n    {\n        foreach ($schema->getTables() as $table) {\n            if ($sequence->isAutoIncrementsFor($table)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * @return bool\n     */\n    public function diffSequence(Sequence $sequence1, Sequence $sequence2)\n    {\n        if ($sequence1->getAllocationSize() !== $sequence2->getAllocationSize()) {\n            return true;\n        }\n\n        return $sequence1->getInitialValue() !== $sequence2->getInitialValue();\n    }\n\n    /**\n     * Returns the difference between the tables $table1 and $table2.\n     *\n     * If there are no differences this method returns the boolean false.\n     *\n     * @return TableDiff|false\n     */\n    public function diffTable(Table $table1, Table $table2)\n    {\n        $changes                     = 0;\n        $tableDifferences            = new TableDiff($table1->getName());\n        $tableDifferences->fromTable = $table1;\n\n        $table1Columns = $table1->getColumns();\n        $table2Columns = $table2->getColumns();\n\n        /* See if all the fields in table 1 exist in table 2 */\n        foreach ($table2Columns as $columnName => $column) {\n            if ($table1->hasColumn($columnName)) {\n                continue;\n            }\n\n            $tableDifferences->addedColumns[$columnName] = $column;\n            $changes++;\n        }\n        /* See if there are any removed fields in table 2 */\n        foreach ($table1Columns as $columnName => $column) {\n            // See if column is removed in table 2.\n            if (! $table2->hasColumn($columnName)) {\n                $tableDifferences->removedColumns[$columnName] = $column;\n                $changes++;\n                continue;\n            }\n\n            // See if column has changed properties in table 2.\n            $changedProperties = $this->diffColumn($column, $table2->getColumn($columnName));\n\n            if (empty($changedProperties)) {\n                continue;\n            }\n\n            $columnDiff                                           = new ColumnDiff($column->getName(), $table2->getColumn($columnName), $changedProperties);\n            $columnDiff->fromColumn                               = $column;\n            $tableDifferences->changedColumns[$column->getName()] = $columnDiff;\n            $changes++;\n        }\n\n        $this->detectColumnRenamings($tableDifferences);\n\n        $table1Indexes = $table1->getIndexes();\n        $table2Indexes = $table2->getIndexes();\n\n        /* See if all the indexes in table 1 exist in table 2 */\n        foreach ($table2Indexes as $indexName => $index) {\n            if (($index->isPrimary() && $table1->hasPrimaryKey()) || $table1->hasIndex($indexName)) {\n                continue;\n            }\n\n            $tableDifferences->addedIndexes[$indexName] = $index;\n            $changes++;\n        }\n        /* See if there are any removed indexes in table 2 */\n        foreach ($table1Indexes as $indexName => $index) {\n            // See if index is removed in table 2.\n            if (($index->isPrimary() && ! $table2->hasPrimaryKey()) ||\n                ! $index->isPrimary() && ! $table2->hasIndex($indexName)\n            ) {\n                $tableDifferences->removedIndexes[$indexName] = $index;\n                $changes++;\n                continue;\n            }\n\n            // See if index has changed in table 2.\n            $table2Index = $index->isPrimary() ? $table2->getPrimaryKey() : $table2->getIndex($indexName);\n\n            if (! $this->diffIndex($index, $table2Index)) {\n                continue;\n            }\n\n            $tableDifferences->changedIndexes[$indexName] = $table2Index;\n            $changes++;\n        }\n\n        $this->detectIndexRenamings($tableDifferences);\n\n        $fromFkeys = $table1->getForeignKeys();\n        $toFkeys   = $table2->getForeignKeys();\n\n        foreach ($fromFkeys as $key1 => $constraint1) {\n            foreach ($toFkeys as $key2 => $constraint2) {\n                if ($this->diffForeignKey($constraint1, $constraint2) === false) {\n                    unset($fromFkeys[$key1], $toFkeys[$key2]);\n                } else {\n                    if (strtolower($constraint1->getName()) === strtolower($constraint2->getName())) {\n                        $tableDifferences->changedForeignKeys[] = $constraint2;\n                        $changes++;\n                        unset($fromFkeys[$key1], $toFkeys[$key2]);\n                    }\n                }\n            }\n        }\n\n        foreach ($fromFkeys as $constraint1) {\n            $tableDifferences->removedForeignKeys[] = $constraint1;\n            $changes++;\n        }\n\n        foreach ($toFkeys as $constraint2) {\n            $tableDifferences->addedForeignKeys[] = $constraint2;\n            $changes++;\n        }\n\n        return $changes ? $tableDifferences : false;\n    }\n\n    /**\n     * Try to find columns that only changed their name, rename operations maybe cheaper than add/drop\n     * however ambiguities between different possibilities should not lead to renaming at all.\n     *\n     * @return void\n     */\n    private function detectColumnRenamings(TableDiff $tableDifferences)\n    {\n        $renameCandidates = [];\n        foreach ($tableDifferences->addedColumns as $addedColumnName => $addedColumn) {\n            foreach ($tableDifferences->removedColumns as $removedColumn) {\n                if (count($this->diffColumn($addedColumn, $removedColumn)) !== 0) {\n                    continue;\n                }\n\n                $renameCandidates[$addedColumn->getName()][] = [$removedColumn, $addedColumn, $addedColumnName];\n            }\n        }\n\n        foreach ($renameCandidates as $candidateColumns) {\n            if (count($candidateColumns) !== 1) {\n                continue;\n            }\n\n            [$removedColumn, $addedColumn] = $candidateColumns[0];\n            $removedColumnName             = strtolower($removedColumn->getName());\n            $addedColumnName               = strtolower($addedColumn->getName());\n\n            if (isset($tableDifferences->renamedColumns[$removedColumnName])) {\n                continue;\n            }\n\n            $tableDifferences->renamedColumns[$removedColumnName] = $addedColumn;\n            unset(\n                $tableDifferences->addedColumns[$addedColumnName],\n                $tableDifferences->removedColumns[$removedColumnName]\n            );\n        }\n    }\n\n    /**\n     * Try to find indexes that only changed their name, rename operations maybe cheaper than add/drop\n     * however ambiguities between different possibilities should not lead to renaming at all.\n     *\n     * @return void\n     */\n    private function detectIndexRenamings(TableDiff $tableDifferences)\n    {\n        $renameCandidates = [];\n\n        // Gather possible rename candidates by comparing each added and removed index based on semantics.\n        foreach ($tableDifferences->addedIndexes as $addedIndexName => $addedIndex) {\n            foreach ($tableDifferences->removedIndexes as $removedIndex) {\n                if ($this->diffIndex($addedIndex, $removedIndex)) {\n                    continue;\n                }\n\n                $renameCandidates[$addedIndex->getName()][] = [$removedIndex, $addedIndex, $addedIndexName];\n            }\n        }\n\n        foreach ($renameCandidates as $candidateIndexes) {\n            // If the current rename candidate contains exactly one semantically equal index,\n            // we can safely rename it.\n            // Otherwise it is unclear if a rename action is really intended,\n            // therefore we let those ambiguous indexes be added/dropped.\n            if (count($candidateIndexes) !== 1) {\n                continue;\n            }\n\n            [$removedIndex, $addedIndex] = $candidateIndexes[0];\n\n            $removedIndexName = strtolower($removedIndex->getName());\n            $addedIndexName   = strtolower($addedIndex->getName());\n\n            if (isset($tableDifferences->renamedIndexes[$removedIndexName])) {\n                continue;\n            }\n\n            $tableDifferences->renamedIndexes[$removedIndexName] = $addedIndex;\n            unset(\n                $tableDifferences->addedIndexes[$addedIndexName],\n                $tableDifferences->removedIndexes[$removedIndexName]\n            );\n        }\n    }\n\n    /**\n     * @return bool\n     */\n    public function diffForeignKey(ForeignKeyConstraint $key1, ForeignKeyConstraint $key2)\n    {\n        if (array_map('strtolower', $key1->getUnquotedLocalColumns()) !== array_map('strtolower', $key2->getUnquotedLocalColumns())) {\n            return true;\n        }\n\n        if (array_map('strtolower', $key1->getUnquotedForeignColumns()) !== array_map('strtolower', $key2->getUnquotedForeignColumns())) {\n            return true;\n        }\n\n        if ($key1->getUnqualifiedForeignTableName() !== $key2->getUnqualifiedForeignTableName()) {\n            return true;\n        }\n\n        if ($key1->onUpdate() !== $key2->onUpdate()) {\n            return true;\n        }\n\n        return $key1->onDelete() !== $key2->onDelete();\n    }\n\n    /**\n     * Returns the difference between the fields $field1 and $field2.\n     *\n     * If there are differences this method returns $field2, otherwise the\n     * boolean false.\n     *\n     * @return string[]\n     */\n    public function diffColumn(Column $column1, Column $column2)\n    {\n        $properties1 = $column1->toArray();\n        $properties2 = $column2->toArray();\n\n        $changedProperties = [];\n\n        foreach (['type', 'notnull', 'unsigned', 'autoincrement'] as $property) {\n            if ($properties1[$property] === $properties2[$property]) {\n                continue;\n            }\n\n            $changedProperties[] = $property;\n        }\n\n        // This is a very nasty hack to make comparator work with the legacy json_array type, which should be killed in v3\n        if ($this->isALegacyJsonComparison($properties1['type'], $properties2['type'])) {\n            array_shift($changedProperties);\n\n            $changedProperties[] = 'comment';\n        }\n\n        // Null values need to be checked additionally as they tell whether to create or drop a default value.\n        // null != 0, null != false, null != '' etc. This affects platform's table alteration SQL generation.\n        if (($properties1['default'] === null) !== ($properties2['default'] === null)\n            || $properties1['default'] != $properties2['default']) {\n            $changedProperties[] = 'default';\n        }\n\n        if (($properties1['type'] instanceof Types\\StringType && ! $properties1['type'] instanceof Types\\GuidType) ||\n            $properties1['type'] instanceof Types\\BinaryType\n        ) {\n            // check if value of length is set at all, default value assumed otherwise.\n            $length1 = $properties1['length'] ?: 255;\n            $length2 = $properties2['length'] ?: 255;\n            if ($length1 !== $length2) {\n                $changedProperties[] = 'length';\n            }\n\n            if ($properties1['fixed'] !== $properties2['fixed']) {\n                $changedProperties[] = 'fixed';\n            }\n        } elseif ($properties1['type'] instanceof Types\\DecimalType) {\n            if (($properties1['precision'] ?: 10) !== ($properties2['precision'] ?: 10)) {\n                $changedProperties[] = 'precision';\n            }\n            if ($properties1['scale'] !== $properties2['scale']) {\n                $changedProperties[] = 'scale';\n            }\n        }\n\n        // A null value and an empty string are actually equal for a comment so they should not trigger a change.\n        if ($properties1['comment'] !== $properties2['comment'] &&\n            ! ($properties1['comment'] === null && $properties2['comment'] === '') &&\n            ! ($properties2['comment'] === null && $properties1['comment'] === '')\n        ) {\n            $changedProperties[] = 'comment';\n        }\n\n        $customOptions1 = $column1->getCustomSchemaOptions();\n        $customOptions2 = $column2->getCustomSchemaOptions();\n\n        foreach (array_merge(array_keys($customOptions1), array_keys($customOptions2)) as $key) {\n            if (! array_key_exists($key, $properties1) || ! array_key_exists($key, $properties2)) {\n                $changedProperties[] = $key;\n            } elseif ($properties1[$key] !== $properties2[$key]) {\n                $changedProperties[] = $key;\n            }\n        }\n\n        $platformOptions1 = $column1->getPlatformOptions();\n        $platformOptions2 = $column2->getPlatformOptions();\n\n        foreach (array_keys(array_intersect_key($platformOptions1, $platformOptions2)) as $key) {\n            if ($properties1[$key] === $properties2[$key]) {\n                continue;\n            }\n\n            $changedProperties[] = $key;\n        }\n\n        return array_unique($changedProperties);\n    }\n\n    /**\n     * TODO: kill with fire on v3.0\n     *\n     * @deprecated\n     */\n    private function isALegacyJsonComparison(Types\\Type $one, Types\\Type $other) : bool\n    {\n        if (! $one instanceof Types\\JsonType || ! $other instanceof Types\\JsonType) {\n            return false;\n        }\n\n        return ( ! $one instanceof Types\\JsonArrayType && $other instanceof Types\\JsonArrayType)\n            || ( ! $other instanceof Types\\JsonArrayType && $one instanceof Types\\JsonArrayType);\n    }\n\n    /**\n     * Finds the difference between the indexes $index1 and $index2.\n     *\n     * Compares $index1 with $index2 and returns $index2 if there are any\n     * differences or false in case there are no differences.\n     *\n     * @return bool\n     */\n    public function diffIndex(Index $index1, Index $index2)\n    {\n        return ! ($index1->isFullfilledBy($index2) && $index2->isFullfilledBy($index1));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Marker interface for constraints.\n */\ninterface Constraint\n{\n    /**\n     * @return string\n     */\n    public function getName();\n\n    /**\n     * @return string\n     */\n    public function getQuotedName(AbstractPlatform $platform);\n\n    /**\n     * Returns the names of the referencing table columns\n     * the constraint is associated with.\n     *\n     * @return string[]\n     */\n    public function getColumns();\n\n    /**\n     * Returns the quoted representation of the column names\n     * the constraint is associated with.\n     *\n     * But only if they were defined with one or a column name\n     * is a keyword reserved by the platform.\n     * Otherwise the plain unquoted value as inserted is returned.\n     *\n     * @param AbstractPlatform $platform The platform to use for quotation.\n     *\n     * @return string[]\n     */\n    public function getQuotedColumns(AbstractPlatform $platform);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/DB2SchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Types\\Type;\nuse const CASE_LOWER;\nuse function array_change_key_case;\nuse function is_resource;\nuse function strpos;\nuse function strtolower;\nuse function substr;\nuse function trim;\n\n/**\n * IBM Db2 Schema Manager.\n */\nclass DB2SchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     *\n     * Apparently creator is the schema not the user who created it:\n     * {@link http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.sqlref/db2z_sysibmsystablestable.htm}\n     */\n    public function listTableNames()\n    {\n        $sql  = $this->_platform->getListTablesSQL();\n        $sql .= ' AND CREATOR = UPPER(' . $this->_conn->quote($this->_conn->getUsername()) . ')';\n\n        $tables = $this->_conn->fetchAll($sql);\n\n        return $this->filterAssetNames($this->_getPortableTablesList($tables));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $tableColumn = array_change_key_case($tableColumn, CASE_LOWER);\n\n        $length    = null;\n        $fixed     = null;\n        $unsigned  = false;\n        $scale     = false;\n        $precision = false;\n\n        $default = null;\n\n        if ($tableColumn['default'] !== null && $tableColumn['default'] !== 'NULL') {\n            $default = trim($tableColumn['default'], \"'\");\n        }\n\n        $type = $this->_platform->getDoctrineTypeMapping($tableColumn['typename']);\n\n        if (isset($tableColumn['comment'])) {\n            $type                   = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type);\n            $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type);\n        }\n\n        switch (strtolower($tableColumn['typename'])) {\n            case 'varchar':\n                $length = $tableColumn['length'];\n                $fixed  = false;\n                break;\n            case 'character':\n                $length = $tableColumn['length'];\n                $fixed  = true;\n                break;\n            case 'clob':\n                $length = $tableColumn['length'];\n                break;\n            case 'decimal':\n            case 'double':\n            case 'real':\n                $scale     = $tableColumn['scale'];\n                $precision = $tableColumn['length'];\n                break;\n        }\n\n        $options = [\n            'length'        => $length,\n            'unsigned'      => (bool) $unsigned,\n            'fixed'         => (bool) $fixed,\n            'default'       => $default,\n            'autoincrement' => (bool) $tableColumn['autoincrement'],\n            'notnull'       => (bool) ($tableColumn['nulls'] === 'N'),\n            'scale'         => null,\n            'precision'     => null,\n            'comment'       => isset($tableColumn['comment']) && $tableColumn['comment'] !== ''\n                ? $tableColumn['comment']\n                : null,\n            'platformOptions' => [],\n        ];\n\n        if ($scale !== null && $precision !== null) {\n            $options['scale']     = $scale;\n            $options['precision'] = $precision;\n        }\n\n        return new Column($tableColumn['colname'], Type::getType($type), $options);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTablesList($tables)\n    {\n        $tableNames = [];\n        foreach ($tables as $tableRow) {\n            $tableRow     = array_change_key_case($tableRow, CASE_LOWER);\n            $tableNames[] = $tableRow['name'];\n        }\n\n        return $tableNames;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexesList($tableIndexRows, $tableName = null)\n    {\n        foreach ($tableIndexRows as &$tableIndexRow) {\n            $tableIndexRow            = array_change_key_case($tableIndexRow, CASE_LOWER);\n            $tableIndexRow['primary'] = (bool) $tableIndexRow['primary'];\n        }\n\n        return parent::_getPortableTableIndexesList($tableIndexRows, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        return new ForeignKeyConstraint(\n            $tableForeignKey['local_columns'],\n            $tableForeignKey['foreign_table'],\n            $tableForeignKey['foreign_columns'],\n            $tableForeignKey['name'],\n            $tableForeignKey['options']\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $foreignKeys = [];\n\n        foreach ($tableForeignKeys as $tableForeignKey) {\n            $tableForeignKey = array_change_key_case($tableForeignKey, CASE_LOWER);\n\n            if (! isset($foreignKeys[$tableForeignKey['index_name']])) {\n                $foreignKeys[$tableForeignKey['index_name']] = [\n                    'local_columns'   => [$tableForeignKey['local_column']],\n                    'foreign_table'   => $tableForeignKey['foreign_table'],\n                    'foreign_columns' => [$tableForeignKey['foreign_column']],\n                    'name'            => $tableForeignKey['index_name'],\n                    'options'         => [\n                        'onUpdate' => $tableForeignKey['on_update'],\n                        'onDelete' => $tableForeignKey['on_delete'],\n                    ],\n                ];\n            } else {\n                $foreignKeys[$tableForeignKey['index_name']]['local_columns'][]   = $tableForeignKey['local_column'];\n                $foreignKeys[$tableForeignKey['index_name']]['foreign_columns'][] = $tableForeignKey['foreign_column'];\n            }\n        }\n\n        return parent::_getPortableTableForeignKeysList($foreignKeys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableForeignKeyRuleDef($def)\n    {\n        if ($def === 'C') {\n            return 'CASCADE';\n        } elseif ($def === 'N') {\n            return 'SET NULL';\n        }\n\n        return null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        $view = array_change_key_case($view, CASE_LOWER);\n        // sadly this still segfaults on PDO_IBM, see http://pecl.php.net/bugs/bug.php?id=17199\n        //$view['text'] = (is_resource($view['text']) ? stream_get_contents($view['text']) : $view['text']);\n        if (! is_resource($view['text'])) {\n            $pos = strpos($view['text'], ' AS ');\n            $sql = substr($view['text'], $pos+4);\n        } else {\n            $sql = '';\n        }\n\n        return new View($view['name'], $sql);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/DrizzleSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Types\\Type;\nuse function explode;\nuse function strtolower;\nuse function trim;\n\n/**\n * Schema manager for the Drizzle RDBMS.\n */\nclass DrizzleSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $dbType = strtolower($tableColumn['DATA_TYPE']);\n\n        $type                          = $this->_platform->getDoctrineTypeMapping($dbType);\n        $type                          = $this->extractDoctrineTypeFromComment($tableColumn['COLUMN_COMMENT'], $type);\n        $tableColumn['COLUMN_COMMENT'] = $this->removeDoctrineTypeFromComment($tableColumn['COLUMN_COMMENT'], $type);\n\n        $options = [\n            'notnull' => ! (bool) $tableColumn['IS_NULLABLE'],\n            'length' => (int) $tableColumn['CHARACTER_MAXIMUM_LENGTH'],\n            'default' => $tableColumn['COLUMN_DEFAULT'] ?? null,\n            'autoincrement' => (bool) $tableColumn['IS_AUTO_INCREMENT'],\n            'scale' => (int) $tableColumn['NUMERIC_SCALE'],\n            'precision' => (int) $tableColumn['NUMERIC_PRECISION'],\n            'comment' => isset($tableColumn['COLUMN_COMMENT']) && $tableColumn['COLUMN_COMMENT'] !== ''\n                ? $tableColumn['COLUMN_COMMENT']\n                : null,\n        ];\n\n        $column = new Column($tableColumn['COLUMN_NAME'], Type::getType($type), $options);\n\n        if (! empty($tableColumn['COLLATION_NAME'])) {\n            $column->setPlatformOption('collation', $tableColumn['COLLATION_NAME']);\n        }\n\n        return $column;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database['SCHEMA_NAME'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        return $table['TABLE_NAME'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        $columns = [];\n        foreach (explode(',', $tableForeignKey['CONSTRAINT_COLUMNS']) as $value) {\n            $columns[] = trim($value, ' `');\n        }\n\n        $refColumns = [];\n        foreach (explode(',', $tableForeignKey['REFERENCED_TABLE_COLUMNS']) as $value) {\n            $refColumns[] = trim($value, ' `');\n        }\n\n        return new ForeignKeyConstraint(\n            $columns,\n            $tableForeignKey['REFERENCED_TABLE_NAME'],\n            $refColumns,\n            $tableForeignKey['CONSTRAINT_NAME'],\n            [\n                'onUpdate' => $tableForeignKey['UPDATE_RULE'],\n                'onDelete' => $tableForeignKey['DELETE_RULE'],\n            ]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexesList($tableIndexes, $tableName = null)\n    {\n        $indexes = [];\n        foreach ($tableIndexes as $k) {\n            $k['primary'] = (bool) $k['primary'];\n            $indexes[]    = $k;\n        }\n\n        return parent::_getPortableTableIndexesList($indexes, $tableName);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function array_combine;\nuse function array_keys;\nuse function array_map;\nuse function end;\nuse function explode;\nuse function in_array;\nuse function strtolower;\nuse function strtoupper;\n\n/**\n * An abstraction class for a foreign key constraint.\n */\nclass ForeignKeyConstraint extends AbstractAsset implements Constraint\n{\n    /**\n     * Instance of the referencing table the foreign key constraint is associated with.\n     *\n     * @var Table\n     */\n    protected $_localTable;\n\n    /**\n     * Asset identifier instances of the referencing table column names the foreign key constraint is associated with.\n     * array($columnName => Identifier)\n     *\n     * @var Identifier[]\n     */\n    protected $_localColumnNames;\n\n    /**\n     * Table or asset identifier instance of the referenced table name the foreign key constraint is associated with.\n     *\n     * @var Table|Identifier\n     */\n    protected $_foreignTableName;\n\n    /**\n     * Asset identifier instances of the referenced table column names the foreign key constraint is associated with.\n     * array($columnName => Identifier)\n     *\n     * @var Identifier[]\n     */\n    protected $_foreignColumnNames;\n\n    /**\n     * Options associated with the foreign key constraint.\n     *\n     * @var mixed[]\n     */\n    protected $_options;\n\n    /**\n     * Initializes the foreign key constraint.\n     *\n     * @param string[]     $localColumnNames   Names of the referencing table columns.\n     * @param Table|string $foreignTableName   Referenced table.\n     * @param string[]     $foreignColumnNames Names of the referenced table columns.\n     * @param string|null  $name               Name of the foreign key constraint.\n     * @param mixed[]      $options            Options associated with the foreign key constraint.\n     */\n    public function __construct(array $localColumnNames, $foreignTableName, array $foreignColumnNames, $name = null, array $options = [])\n    {\n        $this->_setName($name);\n        $identifierConstructorCallback = static function ($column) {\n            return new Identifier($column);\n        };\n        $this->_localColumnNames       = $localColumnNames\n            ? array_combine($localColumnNames, array_map($identifierConstructorCallback, $localColumnNames))\n            : [];\n\n        if ($foreignTableName instanceof Table) {\n            $this->_foreignTableName = $foreignTableName;\n        } else {\n            $this->_foreignTableName = new Identifier($foreignTableName);\n        }\n\n        $this->_foreignColumnNames = $foreignColumnNames\n            ? array_combine($foreignColumnNames, array_map($identifierConstructorCallback, $foreignColumnNames))\n            : [];\n        $this->_options            = $options;\n    }\n\n    /**\n     * Returns the name of the referencing table\n     * the foreign key constraint is associated with.\n     *\n     * @return string\n     */\n    public function getLocalTableName()\n    {\n        return $this->_localTable->getName();\n    }\n\n    /**\n     * Sets the Table instance of the referencing table\n     * the foreign key constraint is associated with.\n     *\n     * @param Table $table Instance of the referencing table.\n     *\n     * @return void\n     */\n    public function setLocalTable(Table $table)\n    {\n        $this->_localTable = $table;\n    }\n\n    /**\n     * @return Table\n     */\n    public function getLocalTable()\n    {\n        return $this->_localTable;\n    }\n\n    /**\n     * Returns the names of the referencing table columns\n     * the foreign key constraint is associated with.\n     *\n     * @return string[]\n     */\n    public function getLocalColumns()\n    {\n        return array_keys($this->_localColumnNames);\n    }\n\n    /**\n     * Returns the quoted representation of the referencing table column names\n     * the foreign key constraint is associated with.\n     *\n     * But only if they were defined with one or the referencing table column name\n     * is a keyword reserved by the platform.\n     * Otherwise the plain unquoted value as inserted is returned.\n     *\n     * @param AbstractPlatform $platform The platform to use for quotation.\n     *\n     * @return string[]\n     */\n    public function getQuotedLocalColumns(AbstractPlatform $platform)\n    {\n        $columns = [];\n\n        foreach ($this->_localColumnNames as $column) {\n            $columns[] = $column->getQuotedName($platform);\n        }\n\n        return $columns;\n    }\n\n    /**\n     * Returns unquoted representation of local table column names for comparison with other FK\n     *\n     * @return string[]\n     */\n    public function getUnquotedLocalColumns()\n    {\n        return array_map([$this, 'trimQuotes'], $this->getLocalColumns());\n    }\n\n    /**\n     * Returns unquoted representation of foreign table column names for comparison with other FK\n     *\n     * @return string[]\n     */\n    public function getUnquotedForeignColumns()\n    {\n        return array_map([$this, 'trimQuotes'], $this->getForeignColumns());\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @see getLocalColumns\n     */\n    public function getColumns()\n    {\n        return $this->getLocalColumns();\n    }\n\n    /**\n     * Returns the quoted representation of the referencing table column names\n     * the foreign key constraint is associated with.\n     *\n     * But only if they were defined with one or the referencing table column name\n     * is a keyword reserved by the platform.\n     * Otherwise the plain unquoted value as inserted is returned.\n     *\n     * @see getQuotedLocalColumns\n     *\n     * @param AbstractPlatform $platform The platform to use for quotation.\n     *\n     * @return string[]\n     */\n    public function getQuotedColumns(AbstractPlatform $platform)\n    {\n        return $this->getQuotedLocalColumns($platform);\n    }\n\n    /**\n     * Returns the name of the referenced table\n     * the foreign key constraint is associated with.\n     *\n     * @return string\n     */\n    public function getForeignTableName()\n    {\n        return $this->_foreignTableName->getName();\n    }\n\n    /**\n     * Returns the non-schema qualified foreign table name.\n     *\n     * @return string\n     */\n    public function getUnqualifiedForeignTableName()\n    {\n        $parts = explode('.', $this->_foreignTableName->getName());\n\n        return strtolower(end($parts));\n    }\n\n    /**\n     * Returns the quoted representation of the referenced table name\n     * the foreign key constraint is associated with.\n     *\n     * But only if it was defined with one or the referenced table name\n     * is a keyword reserved by the platform.\n     * Otherwise the plain unquoted value as inserted is returned.\n     *\n     * @param AbstractPlatform $platform The platform to use for quotation.\n     *\n     * @return string\n     */\n    public function getQuotedForeignTableName(AbstractPlatform $platform)\n    {\n        return $this->_foreignTableName->getQuotedName($platform);\n    }\n\n    /**\n     * Returns the names of the referenced table columns\n     * the foreign key constraint is associated with.\n     *\n     * @return string[]\n     */\n    public function getForeignColumns()\n    {\n        return array_keys($this->_foreignColumnNames);\n    }\n\n    /**\n     * Returns the quoted representation of the referenced table column names\n     * the foreign key constraint is associated with.\n     *\n     * But only if they were defined with one or the referenced table column name\n     * is a keyword reserved by the platform.\n     * Otherwise the plain unquoted value as inserted is returned.\n     *\n     * @param AbstractPlatform $platform The platform to use for quotation.\n     *\n     * @return string[]\n     */\n    public function getQuotedForeignColumns(AbstractPlatform $platform)\n    {\n        $columns = [];\n\n        foreach ($this->_foreignColumnNames as $column) {\n            $columns[] = $column->getQuotedName($platform);\n        }\n\n        return $columns;\n    }\n\n    /**\n     * Returns whether or not a given option\n     * is associated with the foreign key constraint.\n     *\n     * @param string $name Name of the option to check.\n     *\n     * @return bool\n     */\n    public function hasOption($name)\n    {\n        return isset($this->_options[$name]);\n    }\n\n    /**\n     * Returns an option associated with the foreign key constraint.\n     *\n     * @param string $name Name of the option the foreign key constraint is associated with.\n     *\n     * @return mixed\n     */\n    public function getOption($name)\n    {\n        return $this->_options[$name];\n    }\n\n    /**\n     * Returns the options associated with the foreign key constraint.\n     *\n     * @return mixed[]\n     */\n    public function getOptions()\n    {\n        return $this->_options;\n    }\n\n    /**\n     * Returns the referential action for UPDATE operations\n     * on the referenced table the foreign key constraint is associated with.\n     *\n     * @return string|null\n     */\n    public function onUpdate()\n    {\n        return $this->onEvent('onUpdate');\n    }\n\n    /**\n     * Returns the referential action for DELETE operations\n     * on the referenced table the foreign key constraint is associated with.\n     *\n     * @return string|null\n     */\n    public function onDelete()\n    {\n        return $this->onEvent('onDelete');\n    }\n\n    /**\n     * Returns the referential action for a given database operation\n     * on the referenced table the foreign key constraint is associated with.\n     *\n     * @param string $event Name of the database operation/event to return the referential action for.\n     *\n     * @return string|null\n     */\n    private function onEvent($event)\n    {\n        if (isset($this->_options[$event])) {\n            $onEvent = strtoupper($this->_options[$event]);\n\n            if (! in_array($onEvent, ['NO ACTION', 'RESTRICT'])) {\n                return $onEvent;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Checks whether this foreign key constraint intersects the given index columns.\n     *\n     * Returns `true` if at least one of this foreign key's local columns\n     * matches one of the given index's columns, `false` otherwise.\n     *\n     * @param Index $index The index to be checked against.\n     *\n     * @return bool\n     */\n    public function intersectsIndexColumns(Index $index)\n    {\n        foreach ($index->getColumns() as $indexColumn) {\n            foreach ($this->_localColumnNames as $localColumn) {\n                if (strtolower($indexColumn) === strtolower($localColumn->getName())) {\n                    return true;\n                }\n            }\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\n/**\n * An abstraction class for an asset identifier.\n *\n * Wraps identifier names like column names in indexes / foreign keys\n * in an abstract class for proper quotation capabilities.\n */\nclass Identifier extends AbstractAsset\n{\n    /**\n     * @param string $identifier Identifier name to wrap.\n     * @param bool   $quote      Whether to force quoting the given identifier.\n     */\n    public function __construct($identifier, $quote = false)\n    {\n        $this->_setName($identifier);\n\n        if (! $quote || $this->_quoted) {\n            return;\n        }\n\n        $this->_setName('\"' . $this->getName() . '\"');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse InvalidArgumentException;\nuse function array_filter;\nuse function array_keys;\nuse function array_map;\nuse function array_search;\nuse function array_shift;\nuse function count;\nuse function is_string;\nuse function strtolower;\n\nclass Index extends AbstractAsset implements Constraint\n{\n    /**\n     * Asset identifier instances of the column names the index is associated with.\n     * array($columnName => Identifier)\n     *\n     * @var Identifier[]\n     */\n    protected $_columns = [];\n\n    /** @var bool */\n    protected $_isUnique = false;\n\n    /** @var bool */\n    protected $_isPrimary = false;\n\n    /**\n     * Platform specific flags for indexes.\n     * array($flagName => true)\n     *\n     * @var true[]\n     */\n    protected $_flags = [];\n\n    /**\n     * Platform specific options\n     *\n     * @todo $_flags should eventually be refactored into options\n     * @var mixed[]\n     */\n    private $options = [];\n\n    /**\n     * @param string   $indexName\n     * @param string[] $columns\n     * @param bool     $isUnique\n     * @param bool     $isPrimary\n     * @param string[] $flags\n     * @param mixed[]  $options\n     */\n    public function __construct($indexName, array $columns, $isUnique = false, $isPrimary = false, array $flags = [], array $options = [])\n    {\n        $isUnique = $isUnique || $isPrimary;\n\n        $this->_setName($indexName);\n        $this->_isUnique  = $isUnique;\n        $this->_isPrimary = $isPrimary;\n        $this->options    = $options;\n\n        foreach ($columns as $column) {\n            $this->_addColumn($column);\n        }\n        foreach ($flags as $flag) {\n            $this->addFlag($flag);\n        }\n    }\n\n    /**\n     * @param string $column\n     *\n     * @return void\n     *\n     * @throws InvalidArgumentException\n     */\n    protected function _addColumn($column)\n    {\n        if (! is_string($column)) {\n            throw new InvalidArgumentException('Expecting a string as Index Column');\n        }\n\n        $this->_columns[$column] = new Identifier($column);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getColumns()\n    {\n        return array_keys($this->_columns);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getQuotedColumns(AbstractPlatform $platform)\n    {\n        $subParts = $platform->supportsColumnLengthIndexes() && $this->hasOption('lengths')\n            ? $this->getOption('lengths') : [];\n\n        $columns = [];\n\n        foreach ($this->_columns as $column) {\n            $length = array_shift($subParts);\n\n            $quotedColumn = $column->getQuotedName($platform);\n\n            if ($length !== null) {\n                $quotedColumn .= '(' . $length . ')';\n            }\n\n            $columns[] = $quotedColumn;\n        }\n\n        return $columns;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getUnquotedColumns()\n    {\n        return array_map([$this, 'trimQuotes'], $this->getColumns());\n    }\n\n    /**\n     * Is the index neither unique nor primary key?\n     *\n     * @return bool\n     */\n    public function isSimpleIndex()\n    {\n        return ! $this->_isPrimary && ! $this->_isUnique;\n    }\n\n    /**\n     * @return bool\n     */\n    public function isUnique()\n    {\n        return $this->_isUnique;\n    }\n\n    /**\n     * @return bool\n     */\n    public function isPrimary()\n    {\n        return $this->_isPrimary;\n    }\n\n    /**\n     * @param string $columnName\n     * @param int    $pos\n     *\n     * @return bool\n     */\n    public function hasColumnAtPosition($columnName, $pos = 0)\n    {\n        $columnName   = $this->trimQuotes(strtolower($columnName));\n        $indexColumns = array_map('strtolower', $this->getUnquotedColumns());\n\n        return array_search($columnName, $indexColumns) === $pos;\n    }\n\n    /**\n     * Checks if this index exactly spans the given column names in the correct order.\n     *\n     * @param string[] $columnNames\n     *\n     * @return bool\n     */\n    public function spansColumns(array $columnNames)\n    {\n        $columns         = $this->getColumns();\n        $numberOfColumns = count($columns);\n        $sameColumns     = true;\n\n        for ($i = 0; $i < $numberOfColumns; $i++) {\n            if (isset($columnNames[$i]) && $this->trimQuotes(strtolower($columns[$i])) === $this->trimQuotes(strtolower($columnNames[$i]))) {\n                continue;\n            }\n\n            $sameColumns = false;\n        }\n\n        return $sameColumns;\n    }\n\n    /**\n     * Checks if the other index already fulfills all the indexing and constraint needs of the current one.\n     *\n     * @return bool\n     */\n    public function isFullfilledBy(Index $other)\n    {\n        // allow the other index to be equally large only. It being larger is an option\n        // but it creates a problem with scenarios of the kind PRIMARY KEY(foo,bar) UNIQUE(foo)\n        if (count($other->getColumns()) !== count($this->getColumns())) {\n            return false;\n        }\n\n        // Check if columns are the same, and even in the same order\n        $sameColumns = $this->spansColumns($other->getColumns());\n\n        if ($sameColumns) {\n            if (! $this->samePartialIndex($other)) {\n                return false;\n            }\n\n            if (! $this->hasSameColumnLengths($other)) {\n                return false;\n            }\n\n            if (! $this->isUnique() && ! $this->isPrimary()) {\n                // this is a special case: If the current key is neither primary or unique, any unique or\n                // primary key will always have the same effect for the index and there cannot be any constraint\n                // overlaps. This means a primary or unique index can always fulfill the requirements of just an\n                // index that has no constraints.\n                return true;\n            }\n\n            if ($other->isPrimary() !== $this->isPrimary()) {\n                return false;\n            }\n\n            return $other->isUnique() === $this->isUnique();\n        }\n\n        return false;\n    }\n\n    /**\n     * Detects if the other index is a non-unique, non primary index that can be overwritten by this one.\n     *\n     * @return bool\n     */\n    public function overrules(Index $other)\n    {\n        if ($other->isPrimary()) {\n            return false;\n        } elseif ($this->isSimpleIndex() && $other->isUnique()) {\n            return false;\n        }\n\n        return $this->spansColumns($other->getColumns()) && ($this->isPrimary() || $this->isUnique()) && $this->samePartialIndex($other);\n    }\n\n    /**\n     * Returns platform specific flags for indexes.\n     *\n     * @return string[]\n     */\n    public function getFlags()\n    {\n        return array_keys($this->_flags);\n    }\n\n    /**\n     * Adds Flag for an index that translates to platform specific handling.\n     *\n     * @param string $flag\n     *\n     * @return Index\n     *\n     * @example $index->addFlag('CLUSTERED')\n     */\n    public function addFlag($flag)\n    {\n        $this->_flags[strtolower($flag)] = true;\n\n        return $this;\n    }\n\n    /**\n     * Does this index have a specific flag?\n     *\n     * @param string $flag\n     *\n     * @return bool\n     */\n    public function hasFlag($flag)\n    {\n        return isset($this->_flags[strtolower($flag)]);\n    }\n\n    /**\n     * Removes a flag.\n     *\n     * @param string $flag\n     *\n     * @return void\n     */\n    public function removeFlag($flag)\n    {\n        unset($this->_flags[strtolower($flag)]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function hasOption($name)\n    {\n        return isset($this->options[strtolower($name)]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return mixed\n     */\n    public function getOption($name)\n    {\n        return $this->options[strtolower($name)];\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Return whether the two indexes have the same partial index\n     *\n     * @return bool\n     */\n    private function samePartialIndex(Index $other)\n    {\n        if ($this->hasOption('where') && $other->hasOption('where') && $this->getOption('where') === $other->getOption('where')) {\n            return true;\n        }\n\n        return ! $this->hasOption('where') && ! $other->hasOption('where');\n    }\n\n    /**\n     * Returns whether the index has the same column lengths as the other\n     */\n    private function hasSameColumnLengths(self $other) : bool\n    {\n        $filter = static function (?int $length) : bool {\n            return $length !== null;\n        };\n\n        return array_filter($this->options['lengths'] ?? [], $filter)\n            === array_filter($other->options['lengths'] ?? [], $filter);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\MariaDb1027Platform;\nuse Doctrine\\DBAL\\Platforms\\MySqlPlatform;\nuse Doctrine\\DBAL\\Types\\Type;\nuse const CASE_LOWER;\nuse function array_change_key_case;\nuse function array_shift;\nuse function array_values;\nuse function end;\nuse function explode;\nuse function preg_match;\nuse function preg_replace;\nuse function str_replace;\nuse function stripslashes;\nuse function strpos;\nuse function strtok;\nuse function strtolower;\n\n/**\n * Schema manager for the MySql RDBMS.\n */\nclass MySqlSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        return new View($view['TABLE_NAME'], $view['VIEW_DEFINITION']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        return array_shift($table);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableUserDefinition($user)\n    {\n        return [\n            'user' => $user['User'],\n            'password' => $user['Password'],\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexesList($tableIndexes, $tableName = null)\n    {\n        foreach ($tableIndexes as $k => $v) {\n            $v = array_change_key_case($v, CASE_LOWER);\n            if ($v['key_name'] === 'PRIMARY') {\n                $v['primary'] = true;\n            } else {\n                $v['primary'] = false;\n            }\n            if (strpos($v['index_type'], 'FULLTEXT') !== false) {\n                $v['flags'] = ['FULLTEXT'];\n            } elseif (strpos($v['index_type'], 'SPATIAL') !== false) {\n                $v['flags'] = ['SPATIAL'];\n            }\n            $v['length'] = $v['sub_part'] ?? null;\n\n            $tableIndexes[$k] = $v;\n        }\n\n        return parent::_getPortableTableIndexesList($tableIndexes, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        return end($sequence);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database['Database'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $tableColumn = array_change_key_case($tableColumn, CASE_LOWER);\n\n        $dbType = strtolower($tableColumn['type']);\n        $dbType = strtok($dbType, '(), ');\n        $length = $tableColumn['length'] ?? strtok('(), ');\n\n        $fixed = null;\n\n        if (! isset($tableColumn['name'])) {\n            $tableColumn['name'] = '';\n        }\n\n        $scale     = null;\n        $precision = null;\n\n        $type = $this->_platform->getDoctrineTypeMapping($dbType);\n\n        // In cases where not connected to a database DESCRIBE $table does not return 'Comment'\n        if (isset($tableColumn['comment'])) {\n            $type                   = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type);\n            $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type);\n        }\n\n        switch ($dbType) {\n            case 'char':\n            case 'binary':\n                $fixed = true;\n                break;\n            case 'float':\n            case 'double':\n            case 'real':\n            case 'numeric':\n            case 'decimal':\n                if (preg_match('([A-Za-z]+\\(([0-9]+)\\,([0-9]+)\\))', $tableColumn['type'], $match)) {\n                    $precision = $match[1];\n                    $scale     = $match[2];\n                    $length    = null;\n                }\n                break;\n            case 'tinytext':\n                $length = MySqlPlatform::LENGTH_LIMIT_TINYTEXT;\n                break;\n            case 'text':\n                $length = MySqlPlatform::LENGTH_LIMIT_TEXT;\n                break;\n            case 'mediumtext':\n                $length = MySqlPlatform::LENGTH_LIMIT_MEDIUMTEXT;\n                break;\n            case 'tinyblob':\n                $length = MySqlPlatform::LENGTH_LIMIT_TINYBLOB;\n                break;\n            case 'blob':\n                $length = MySqlPlatform::LENGTH_LIMIT_BLOB;\n                break;\n            case 'mediumblob':\n                $length = MySqlPlatform::LENGTH_LIMIT_MEDIUMBLOB;\n                break;\n            case 'tinyint':\n            case 'smallint':\n            case 'mediumint':\n            case 'int':\n            case 'integer':\n            case 'bigint':\n            case 'year':\n                $length = null;\n                break;\n        }\n\n        if ($this->_platform instanceof MariaDb1027Platform) {\n            $columnDefault = $this->getMariaDb1027ColumnDefault($this->_platform, $tableColumn['default']);\n        } else {\n            $columnDefault = $tableColumn['default'];\n        }\n\n        $options = [\n            'length'        => $length !== null ? (int) $length : null,\n            'unsigned'      => strpos($tableColumn['type'], 'unsigned') !== false,\n            'fixed'         => (bool) $fixed,\n            'default'       => $columnDefault,\n            'notnull'       => $tableColumn['null'] !== 'YES',\n            'scale'         => null,\n            'precision'     => null,\n            'autoincrement' => strpos($tableColumn['extra'], 'auto_increment') !== false,\n            'comment'       => isset($tableColumn['comment']) && $tableColumn['comment'] !== ''\n                ? $tableColumn['comment']\n                : null,\n        ];\n\n        if ($scale !== null && $precision !== null) {\n            $options['scale']     = (int) $scale;\n            $options['precision'] = (int) $precision;\n        }\n\n        $column = new Column($tableColumn['field'], Type::getType($type), $options);\n\n        if (isset($tableColumn['collation'])) {\n            $column->setPlatformOption('collation', $tableColumn['collation']);\n        }\n\n        return $column;\n    }\n\n    /**\n     * Return Doctrine/Mysql-compatible column default values for MariaDB 10.2.7+ servers.\n     *\n     * - Since MariaDb 10.2.7 column defaults stored in information_schema are now quoted\n     *   to distinguish them from expressions (see MDEV-10134).\n     * - CURRENT_TIMESTAMP, CURRENT_TIME, CURRENT_DATE are stored in information_schema\n     *   as current_timestamp(), currdate(), currtime()\n     * - Quoted 'NULL' is not enforced by Maria, it is technically possible to have\n     *   null in some circumstances (see https://jira.mariadb.org/browse/MDEV-14053)\n     * - \\' is always stored as '' in information_schema (normalized)\n     *\n     * @link https://mariadb.com/kb/en/library/information-schema-columns-table/\n     * @link https://jira.mariadb.org/browse/MDEV-13132\n     *\n     * @param string|null $columnDefault default value as stored in information_schema for MariaDB >= 10.2.7\n     */\n    private function getMariaDb1027ColumnDefault(MariaDb1027Platform $platform, ?string $columnDefault) : ?string\n    {\n        if ($columnDefault === 'NULL' || $columnDefault === null) {\n            return null;\n        }\n        if ($columnDefault[0] === \"'\") {\n            return stripslashes(\n                str_replace(\n                    \"''\",\n                    \"'\",\n                    preg_replace('/^\\'(.*)\\'$/', '$1', $columnDefault)\n                )\n            );\n        }\n        switch ($columnDefault) {\n            case 'current_timestamp()':\n                return $platform->getCurrentTimestampSQL();\n            case 'curdate()':\n                return $platform->getCurrentDateSQL();\n            case 'curtime()':\n                return $platform->getCurrentTimeSQL();\n        }\n        return $columnDefault;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $list = [];\n        foreach ($tableForeignKeys as $value) {\n            $value = array_change_key_case($value, CASE_LOWER);\n            if (! isset($list[$value['constraint_name']])) {\n                if (! isset($value['delete_rule']) || $value['delete_rule'] === 'RESTRICT') {\n                    $value['delete_rule'] = null;\n                }\n                if (! isset($value['update_rule']) || $value['update_rule'] === 'RESTRICT') {\n                    $value['update_rule'] = null;\n                }\n\n                $list[$value['constraint_name']] = [\n                    'name' => $value['constraint_name'],\n                    'local' => [],\n                    'foreign' => [],\n                    'foreignTable' => $value['referenced_table_name'],\n                    'onDelete' => $value['delete_rule'],\n                    'onUpdate' => $value['update_rule'],\n                ];\n            }\n            $list[$value['constraint_name']]['local'][]   = $value['column_name'];\n            $list[$value['constraint_name']]['foreign'][] = $value['referenced_column_name'];\n        }\n\n        $result = [];\n        foreach ($list as $constraint) {\n            $result[] = new ForeignKeyConstraint(\n                array_values($constraint['local']),\n                $constraint['foreignTable'],\n                array_values($constraint['foreign']),\n                $constraint['name'],\n                [\n                    'onDelete' => $constraint['onDelete'],\n                    'onUpdate' => $constraint['onUpdate'],\n                ]\n            );\n        }\n\n        return $result;\n    }\n\n    public function listTableDetails($tableName)\n    {\n        $table = parent::listTableDetails($tableName);\n\n        /** @var MySqlPlatform $platform */\n        $platform = $this->_platform;\n        $sql      = $platform->getListTableMetadataSQL($tableName);\n\n        $tableOptions = $this->_conn->fetchAssoc($sql);\n\n        $table->addOption('engine', $tableOptions['ENGINE']);\n        if ($tableOptions['TABLE_COLLATION'] !== null) {\n            $table->addOption('collation', $tableOptions['TABLE_COLLATION']);\n        }\n        if ($tableOptions['AUTO_INCREMENT'] !== null) {\n            $table->addOption('autoincrement', $tableOptions['AUTO_INCREMENT']);\n        }\n        $table->addOption('comment', $tableOptions['TABLE_COMMENT']);\n        $table->addOption('create_options', $this->parseCreateOptions($tableOptions['CREATE_OPTIONS']));\n\n        return $table;\n    }\n\n    /**\n     * @return string[]|true[]\n     */\n    private function parseCreateOptions(?string $string) : array\n    {\n        $options = [];\n\n        if ($string === null || $string === '') {\n            return $options;\n        }\n\n        foreach (explode(' ', $string) as $pair) {\n            $parts = explode('=', $pair, 2);\n\n            $options[$parts[0]] = $parts[1] ?? true;\n        }\n\n        return $options;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/OracleSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\DriverException;\nuse Doctrine\\DBAL\\Platforms\\OraclePlatform;\nuse Doctrine\\DBAL\\Types\\Type;\nuse const CASE_LOWER;\nuse function array_change_key_case;\nuse function array_values;\nuse function assert;\nuse function preg_match;\nuse function sprintf;\nuse function strpos;\nuse function strtolower;\nuse function strtoupper;\nuse function trim;\n\n/**\n * Oracle Schema Manager.\n */\nclass OracleSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function dropDatabase($database)\n    {\n        try {\n            parent::dropDatabase($database);\n        } catch (DBALException $exception) {\n            $exception = $exception->getPrevious();\n\n            if (! $exception instanceof DriverException) {\n                throw $exception;\n            }\n\n            // If we have a error code 1940 (ORA-01940), the drop database operation failed\n            // because of active connections on the database.\n            // To force dropping the database, we first have to close all active connections\n            // on that database and issue the drop database operation again.\n            if ($exception->getErrorCode() !== 1940) {\n                throw $exception;\n            }\n\n            $this->killUserSessions($database);\n\n            parent::dropDatabase($database);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        $view = array_change_key_case($view, CASE_LOWER);\n\n        return new View($this->getQuotedIdentifierName($view['view_name']), $view['text']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableUserDefinition($user)\n    {\n        $user = array_change_key_case($user, CASE_LOWER);\n\n        return [\n            'user' => $user['username'],\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        $table = array_change_key_case($table, CASE_LOWER);\n\n        return $this->getQuotedIdentifierName($table['table_name']);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaPgsqlReader.html\n     */\n    protected function _getPortableTableIndexesList($tableIndexes, $tableName = null)\n    {\n        $indexBuffer = [];\n        foreach ($tableIndexes as $tableIndex) {\n            $tableIndex = array_change_key_case($tableIndex, CASE_LOWER);\n\n            $keyName = strtolower($tableIndex['name']);\n            $buffer  = [];\n\n            if (strtolower($tableIndex['is_primary']) === 'p') {\n                $keyName              = 'primary';\n                $buffer['primary']    = true;\n                $buffer['non_unique'] = false;\n            } else {\n                $buffer['primary']    = false;\n                $buffer['non_unique'] = ! $tableIndex['is_unique'];\n            }\n            $buffer['key_name']    = $keyName;\n            $buffer['column_name'] = $this->getQuotedIdentifierName($tableIndex['column_name']);\n            $indexBuffer[]         = $buffer;\n        }\n\n        return parent::_getPortableTableIndexesList($indexBuffer, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $tableColumn = array_change_key_case($tableColumn, CASE_LOWER);\n\n        $dbType = strtolower($tableColumn['data_type']);\n        if (strpos($dbType, 'timestamp(') === 0) {\n            if (strpos($dbType, 'with time zone')) {\n                $dbType = 'timestamptz';\n            } else {\n                $dbType = 'timestamp';\n            }\n        }\n\n        $unsigned = $fixed = $precision = $scale = $length = null;\n\n        if (! isset($tableColumn['column_name'])) {\n            $tableColumn['column_name'] = '';\n        }\n\n        // Default values returned from database sometimes have trailing spaces.\n        $tableColumn['data_default'] = trim($tableColumn['data_default']);\n\n        if ($tableColumn['data_default'] === '' || $tableColumn['data_default'] === 'NULL') {\n            $tableColumn['data_default'] = null;\n        }\n\n        if ($tableColumn['data_default'] !== null) {\n            // Default values returned from database are enclosed in single quotes.\n            $tableColumn['data_default'] = trim($tableColumn['data_default'], \"'\");\n        }\n\n        if ($tableColumn['data_precision'] !== null) {\n            $precision = (int) $tableColumn['data_precision'];\n        }\n\n        if ($tableColumn['data_scale'] !== null) {\n            $scale = (int) $tableColumn['data_scale'];\n        }\n\n        $type                    = $this->_platform->getDoctrineTypeMapping($dbType);\n        $type                    = $this->extractDoctrineTypeFromComment($tableColumn['comments'], $type);\n        $tableColumn['comments'] = $this->removeDoctrineTypeFromComment($tableColumn['comments'], $type);\n\n        switch ($dbType) {\n            case 'number':\n                if ($precision === 20 && $scale === 0) {\n                    $type = 'bigint';\n                } elseif ($precision === 5 && $scale === 0) {\n                    $type = 'smallint';\n                } elseif ($precision === 1 && $scale === 0) {\n                    $type = 'boolean';\n                } elseif ($scale > 0) {\n                    $type = 'decimal';\n                }\n\n                break;\n            case 'varchar':\n            case 'varchar2':\n            case 'nvarchar2':\n                $length = $tableColumn['char_length'];\n                $fixed  = false;\n                break;\n            case 'char':\n            case 'nchar':\n                $length = $tableColumn['char_length'];\n                $fixed  = true;\n                break;\n        }\n\n        $options = [\n            'notnull'    => (bool) ($tableColumn['nullable'] === 'N'),\n            'fixed'      => (bool) $fixed,\n            'unsigned'   => (bool) $unsigned,\n            'default'    => $tableColumn['data_default'],\n            'length'     => $length,\n            'precision'  => $precision,\n            'scale'      => $scale,\n            'comment'    => isset($tableColumn['comments']) && $tableColumn['comments'] !== ''\n                ? $tableColumn['comments']\n                : null,\n        ];\n\n        return new Column($this->getQuotedIdentifierName($tableColumn['column_name']), Type::getType($type), $options);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $list = [];\n        foreach ($tableForeignKeys as $value) {\n            $value = array_change_key_case($value, CASE_LOWER);\n            if (! isset($list[$value['constraint_name']])) {\n                if ($value['delete_rule'] === 'NO ACTION') {\n                    $value['delete_rule'] = null;\n                }\n\n                $list[$value['constraint_name']] = [\n                    'name' => $this->getQuotedIdentifierName($value['constraint_name']),\n                    'local' => [],\n                    'foreign' => [],\n                    'foreignTable' => $value['references_table'],\n                    'onDelete' => $value['delete_rule'],\n                ];\n            }\n\n            $localColumn   = $this->getQuotedIdentifierName($value['local_column']);\n            $foreignColumn = $this->getQuotedIdentifierName($value['foreign_column']);\n\n            $list[$value['constraint_name']]['local'][$value['position']]   = $localColumn;\n            $list[$value['constraint_name']]['foreign'][$value['position']] = $foreignColumn;\n        }\n\n        $result = [];\n        foreach ($list as $constraint) {\n            $result[] = new ForeignKeyConstraint(\n                array_values($constraint['local']),\n                $this->getQuotedIdentifierName($constraint['foreignTable']),\n                array_values($constraint['foreign']),\n                $this->getQuotedIdentifierName($constraint['name']),\n                ['onDelete' => $constraint['onDelete']]\n            );\n        }\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        $sequence = array_change_key_case($sequence, CASE_LOWER);\n\n        return new Sequence(\n            $this->getQuotedIdentifierName($sequence['sequence_name']),\n            (int) $sequence['increment_by'],\n            (int) $sequence['min_value']\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableFunctionDefinition($function)\n    {\n        $function = array_change_key_case($function, CASE_LOWER);\n\n        return $function['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        $database = array_change_key_case($database, CASE_LOWER);\n\n        return $database['username'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabase($database = null)\n    {\n        if ($database === null) {\n            $database = $this->_conn->getDatabase();\n        }\n\n        $params   = $this->_conn->getParams();\n        $username = $database;\n        $password = $params['password'];\n\n        $query = 'CREATE USER ' . $username . ' IDENTIFIED BY ' . $password;\n        $this->_conn->executeUpdate($query);\n\n        $query = 'GRANT DBA TO ' . $username;\n        $this->_conn->executeUpdate($query);\n    }\n\n    /**\n     * @param string $table\n     *\n     * @return bool\n     */\n    public function dropAutoincrement($table)\n    {\n        assert($this->_platform instanceof OraclePlatform);\n\n        $sql = $this->_platform->getDropAutoincrementSql($table);\n        foreach ($sql as $query) {\n            $this->_conn->executeUpdate($query);\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropTable($name)\n    {\n        $this->tryMethod('dropAutoincrement', $name);\n\n        parent::dropTable($name);\n    }\n\n    /**\n     * Returns the quoted representation of the given identifier name.\n     *\n     * Quotes non-uppercase identifiers explicitly to preserve case\n     * and thus make references to the particular identifier work.\n     *\n     * @param string $identifier The identifier to quote.\n     *\n     * @return string The quoted identifier.\n     */\n    private function getQuotedIdentifierName($identifier)\n    {\n        if (preg_match('/[a-z]/', $identifier)) {\n            return $this->_platform->quoteIdentifier($identifier);\n        }\n\n        return $identifier;\n    }\n\n    /**\n     * Kills sessions connected with the given user.\n     *\n     * This is useful to force DROP USER operations which could fail because of active user sessions.\n     *\n     * @param string $user The name of the user to kill sessions for.\n     *\n     * @return void\n     */\n    private function killUserSessions($user)\n    {\n        $sql = <<<SQL\nSELECT\n    s.sid,\n    s.serial#\nFROM\n    gv\\$session s,\n    gv\\$process p\nWHERE\n    s.username = ?\n    AND p.addr(+) = s.paddr\nSQL;\n\n        $activeUserSessions = $this->_conn->fetchAll($sql, [strtoupper($user)]);\n\n        foreach ($activeUserSessions as $activeUserSession) {\n            $activeUserSession = array_change_key_case($activeUserSession, CASE_LOWER);\n\n            $this->_execSql(\n                sprintf(\n                    \"ALTER SYSTEM KILL SESSION '%s, %s' IMMEDIATE\",\n                    $activeUserSession['sid'],\n                    $activeUserSession['serial#']\n                )\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Exception\\DriverException;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\Platforms\\PostgreSqlPlatform;\nuse Doctrine\\DBAL\\Types\\Type;\nuse const CASE_LOWER;\nuse function array_change_key_case;\nuse function array_filter;\nuse function array_keys;\nuse function array_map;\nuse function array_shift;\nuse function assert;\nuse function explode;\nuse function implode;\nuse function in_array;\nuse function preg_match;\nuse function preg_replace;\nuse function sprintf;\nuse function str_replace;\nuse function stripos;\nuse function strlen;\nuse function strpos;\nuse function strtolower;\nuse function trim;\n\n/**\n * PostgreSQL Schema Manager.\n */\nclass PostgreSqlSchemaManager extends AbstractSchemaManager\n{\n    /** @var string[] */\n    private $existingSchemaPaths;\n\n    /**\n     * Gets all the existing schema names.\n     *\n     * @return string[]\n     */\n    public function getSchemaNames()\n    {\n        $statement = $this->_conn->executeQuery(\"SELECT nspname FROM pg_namespace WHERE nspname !~ '^pg_.*' AND nspname != 'information_schema'\");\n\n        return $statement->fetchAll(FetchMode::COLUMN);\n    }\n\n    /**\n     * Returns an array of schema search paths.\n     *\n     * This is a PostgreSQL only function.\n     *\n     * @return string[]\n     */\n    public function getSchemaSearchPaths()\n    {\n        $params = $this->_conn->getParams();\n        $schema = explode(',', $this->_conn->fetchColumn('SHOW search_path'));\n\n        if (isset($params['user'])) {\n            $schema = str_replace('\"$user\"', $params['user'], $schema);\n        }\n\n        return array_map('trim', $schema);\n    }\n\n    /**\n     * Gets names of all existing schemas in the current users search path.\n     *\n     * This is a PostgreSQL only function.\n     *\n     * @return string[]\n     */\n    public function getExistingSchemaSearchPaths()\n    {\n        if ($this->existingSchemaPaths === null) {\n            $this->determineExistingSchemaSearchPaths();\n        }\n\n        return $this->existingSchemaPaths;\n    }\n\n    /**\n     * Sets or resets the order of the existing schemas in the current search path of the user.\n     *\n     * This is a PostgreSQL only function.\n     *\n     * @return void\n     */\n    public function determineExistingSchemaSearchPaths()\n    {\n        $names = $this->getSchemaNames();\n        $paths = $this->getSchemaSearchPaths();\n\n        $this->existingSchemaPaths = array_filter($paths, static function ($v) use ($names) {\n            return in_array($v, $names);\n        });\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropDatabase($database)\n    {\n        try {\n            parent::dropDatabase($database);\n        } catch (DriverException $exception) {\n            // If we have a SQLSTATE 55006, the drop database operation failed\n            // because of active connections on the database.\n            // To force dropping the database, we first have to close all active connections\n            // on that database and issue the drop database operation again.\n            if ($exception->getSQLState() !== '55006') {\n                throw $exception;\n            }\n\n            assert($this->_platform instanceof PostgreSqlPlatform);\n\n            $this->_execSql(\n                [\n                    $this->_platform->getDisallowDatabaseConnectionsSQL($database),\n                    $this->_platform->getCloseActiveDatabaseConnectionsSQL($database),\n                ]\n            );\n\n            parent::dropDatabase($database);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        $onUpdate       = null;\n        $onDelete       = null;\n        $localColumns   = null;\n        $foreignColumns = null;\n        $foreignTable   = null;\n\n        if (preg_match('(ON UPDATE ([a-zA-Z0-9]+( (NULL|ACTION|DEFAULT))?))', $tableForeignKey['condef'], $match)) {\n            $onUpdate = $match[1];\n        }\n        if (preg_match('(ON DELETE ([a-zA-Z0-9]+( (NULL|ACTION|DEFAULT))?))', $tableForeignKey['condef'], $match)) {\n            $onDelete = $match[1];\n        }\n\n        if (preg_match('/FOREIGN KEY \\((.+)\\) REFERENCES (.+)\\((.+)\\)/', $tableForeignKey['condef'], $values)) {\n            // PostgreSQL returns identifiers that are keywords with quotes, we need them later, don't get\n            // the idea to trim them here.\n            $localColumns   = array_map('trim', explode(',', $values[1]));\n            $foreignColumns = array_map('trim', explode(',', $values[3]));\n            $foreignTable   = $values[2];\n        }\n\n        return new ForeignKeyConstraint(\n            $localColumns,\n            $foreignTable,\n            $foreignColumns,\n            $tableForeignKey['conname'],\n            ['onUpdate' => $onUpdate, 'onDelete' => $onDelete]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTriggerDefinition($trigger)\n    {\n        return $trigger['trigger_name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        return new View($view['schemaname'] . '.' . $view['viewname'], $view['definition']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableUserDefinition($user)\n    {\n        return [\n            'user' => $user['usename'],\n            'password' => $user['passwd'],\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        $schemas     = $this->getExistingSchemaSearchPaths();\n        $firstSchema = array_shift($schemas);\n\n        if ($table['schema_name'] === $firstSchema) {\n            return $table['table_name'];\n        }\n\n        return $table['schema_name'] . '.' . $table['table_name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaPgsqlReader.html\n     */\n    protected function _getPortableTableIndexesList($tableIndexes, $tableName = null)\n    {\n        $buffer = [];\n        foreach ($tableIndexes as $row) {\n            $colNumbers    = array_map('intval', explode(' ', $row['indkey']));\n            $columnNameSql = sprintf(\n                'SELECT attnum, attname FROM pg_attribute WHERE attrelid=%d AND attnum IN (%s) ORDER BY attnum ASC',\n                $row['indrelid'],\n                implode(' ,', $colNumbers)\n            );\n\n            $stmt         = $this->_conn->executeQuery($columnNameSql);\n            $indexColumns = $stmt->fetchAll();\n\n            // required for getting the order of the columns right.\n            foreach ($colNumbers as $colNum) {\n                foreach ($indexColumns as $colRow) {\n                    if ($colNum !== $colRow['attnum']) {\n                        continue;\n                    }\n\n                    $buffer[] = [\n                        'key_name' => $row['relname'],\n                        'column_name' => trim($colRow['attname']),\n                        'non_unique' => ! $row['indisunique'],\n                        'primary' => $row['indisprimary'],\n                        'where' => $row['where'],\n                    ];\n                }\n            }\n        }\n\n        return parent::_getPortableTableIndexesList($buffer, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database['datname'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequencesList($sequences)\n    {\n        $sequenceDefinitions = [];\n\n        foreach ($sequences as $sequence) {\n            if ($sequence['schemaname'] !== 'public') {\n                $sequenceName = $sequence['schemaname'] . '.' . $sequence['relname'];\n            } else {\n                $sequenceName = $sequence['relname'];\n            }\n\n            $sequenceDefinitions[$sequenceName] = $sequence;\n        }\n\n        $list = [];\n\n        foreach ($this->filterAssetNames(array_keys($sequenceDefinitions)) as $sequenceName) {\n            $list[] = $this->_getPortableSequenceDefinition($sequenceDefinitions[$sequenceName]);\n        }\n\n        return $list;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getPortableNamespaceDefinition(array $namespace)\n    {\n        return $namespace['nspname'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        if ($sequence['schemaname'] !== 'public') {\n            $sequenceName = $sequence['schemaname'] . '.' . $sequence['relname'];\n        } else {\n            $sequenceName = $sequence['relname'];\n        }\n\n        if (! isset($sequence['increment_by'], $sequence['min_value'])) {\n            /** @var string[] $data */\n            $data = $this->_conn->fetchAssoc('SELECT min_value, increment_by FROM ' . $this->_platform->quoteIdentifier($sequenceName));\n\n            $sequence += $data;\n        }\n\n        return new Sequence($sequenceName, (int) $sequence['increment_by'], (int) $sequence['min_value']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $tableColumn = array_change_key_case($tableColumn, CASE_LOWER);\n\n        if (strtolower($tableColumn['type']) === 'varchar' || strtolower($tableColumn['type']) === 'bpchar') {\n            // get length from varchar definition\n            $length                = preg_replace('~.*\\(([0-9]*)\\).*~', '$1', $tableColumn['complete_type']);\n            $tableColumn['length'] = $length;\n        }\n\n        $matches = [];\n\n        $autoincrement = false;\n        if (preg_match(\"/^nextval\\('(.*)'(::.*)?\\)$/\", $tableColumn['default'], $matches)) {\n            $tableColumn['sequence'] = $matches[1];\n            $tableColumn['default']  = null;\n            $autoincrement           = true;\n        }\n\n        if (preg_match(\"/^['(](.*)[')]::.*$/\", $tableColumn['default'], $matches)) {\n            $tableColumn['default'] = $matches[1];\n        }\n\n        if (stripos($tableColumn['default'], 'NULL') === 0) {\n            $tableColumn['default'] = null;\n        }\n\n        $length = $tableColumn['length'] ?? null;\n        if ($length === '-1' && isset($tableColumn['atttypmod'])) {\n            $length = $tableColumn['atttypmod'] - 4;\n        }\n        if ((int) $length <= 0) {\n            $length = null;\n        }\n        $fixed = null;\n\n        if (! isset($tableColumn['name'])) {\n            $tableColumn['name'] = '';\n        }\n\n        $precision = null;\n        $scale     = null;\n        $jsonb     = null;\n\n        $dbType = strtolower($tableColumn['type']);\n        if (strlen($tableColumn['domain_type']) && ! $this->_platform->hasDoctrineTypeMappingFor($tableColumn['type'])) {\n            $dbType                       = strtolower($tableColumn['domain_type']);\n            $tableColumn['complete_type'] = $tableColumn['domain_complete_type'];\n        }\n\n        $type                   = $this->_platform->getDoctrineTypeMapping($dbType);\n        $type                   = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type);\n        $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type);\n\n        switch ($dbType) {\n            case 'smallint':\n            case 'int2':\n                $tableColumn['default'] = $this->fixVersion94NegativeNumericDefaultValue($tableColumn['default']);\n                $length                 = null;\n                break;\n            case 'int':\n            case 'int4':\n            case 'integer':\n                $tableColumn['default'] = $this->fixVersion94NegativeNumericDefaultValue($tableColumn['default']);\n                $length                 = null;\n                break;\n            case 'bigint':\n            case 'int8':\n                $tableColumn['default'] = $this->fixVersion94NegativeNumericDefaultValue($tableColumn['default']);\n                $length                 = null;\n                break;\n            case 'bool':\n            case 'boolean':\n                if ($tableColumn['default'] === 'true') {\n                    $tableColumn['default'] = true;\n                }\n\n                if ($tableColumn['default'] === 'false') {\n                    $tableColumn['default'] = false;\n                }\n\n                $length = null;\n                break;\n            case 'text':\n                $fixed = false;\n                break;\n            case 'varchar':\n            case 'interval':\n            case '_varchar':\n                $fixed = false;\n                break;\n            case 'char':\n            case 'bpchar':\n                $fixed = true;\n                break;\n            case 'float':\n            case 'float4':\n            case 'float8':\n            case 'double':\n            case 'double precision':\n            case 'real':\n            case 'decimal':\n            case 'money':\n            case 'numeric':\n                $tableColumn['default'] = $this->fixVersion94NegativeNumericDefaultValue($tableColumn['default']);\n\n                if (preg_match('([A-Za-z]+\\(([0-9]+)\\,([0-9]+)\\))', $tableColumn['complete_type'], $match)) {\n                    $precision = $match[1];\n                    $scale     = $match[2];\n                    $length    = null;\n                }\n                break;\n            case 'year':\n                $length = null;\n                break;\n\n            // PostgreSQL 9.4+ only\n            case 'jsonb':\n                $jsonb = true;\n                break;\n        }\n\n        if ($tableColumn['default'] && preg_match(\"('([^']+)'::)\", $tableColumn['default'], $match)) {\n            $tableColumn['default'] = $match[1];\n        }\n\n        $options = [\n            'length'        => $length,\n            'notnull'       => (bool) $tableColumn['isnotnull'],\n            'default'       => $tableColumn['default'],\n            'precision'     => $precision,\n            'scale'         => $scale,\n            'fixed'         => $fixed,\n            'unsigned'      => false,\n            'autoincrement' => $autoincrement,\n            'comment'       => isset($tableColumn['comment']) && $tableColumn['comment'] !== ''\n                ? $tableColumn['comment']\n                : null,\n        ];\n\n        $column = new Column($tableColumn['field'], Type::getType($type), $options);\n\n        if (isset($tableColumn['collation']) && ! empty($tableColumn['collation'])) {\n            $column->setPlatformOption('collation', $tableColumn['collation']);\n        }\n\n        if (in_array($column->getType()->getName(), [Type::JSON_ARRAY, Type::JSON], true)) {\n            $column->setPlatformOption('jsonb', $jsonb);\n        }\n\n        return $column;\n    }\n\n    /**\n     * PostgreSQL 9.4 puts parentheses around negative numeric default values that need to be stripped eventually.\n     *\n     * @param mixed $defaultValue\n     *\n     * @return mixed\n     */\n    private function fixVersion94NegativeNumericDefaultValue($defaultValue)\n    {\n        if (strpos($defaultValue, '(') === 0) {\n            return trim($defaultValue, '()');\n        }\n\n        return $defaultValue;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLAnywhereSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\SQLAnywherePlatform;\nuse Doctrine\\DBAL\\Types\\Type;\nuse function assert;\nuse function preg_replace;\n\n/**\n * SAP Sybase SQL Anywhere schema manager.\n */\nclass SQLAnywhereSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     *\n     * Starts a database after creation\n     * as SQL Anywhere needs a database to be started\n     * before it can be used.\n     *\n     * @see startDatabase\n     */\n    public function createDatabase($database)\n    {\n        parent::createDatabase($database);\n        $this->startDatabase($database);\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * Tries stopping a database before dropping\n     * as SQL Anywhere needs a database to be stopped\n     * before it can be dropped.\n     *\n     * @see stopDatabase\n     */\n    public function dropDatabase($database)\n    {\n        $this->tryMethod('stopDatabase', $database);\n        parent::dropDatabase($database);\n    }\n\n    /**\n     * Starts a database.\n     *\n     * @param string $database The name of the database to start.\n     */\n    public function startDatabase($database)\n    {\n        assert($this->_platform instanceof SQLAnywherePlatform);\n        $this->_execSql($this->_platform->getStartDatabaseSQL($database));\n    }\n\n    /**\n     * Stops a database.\n     *\n     * @param string $database The name of the database to stop.\n     */\n    public function stopDatabase($database)\n    {\n        assert($this->_platform instanceof SQLAnywherePlatform);\n        $this->_execSql($this->_platform->getStopDatabaseSQL($database));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        return new Sequence($sequence['sequence_name'], $sequence['increment_by'], $sequence['start_with']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $type                   = $this->_platform->getDoctrineTypeMapping($tableColumn['type']);\n        $type                   = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type);\n        $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type);\n        $precision              = null;\n        $scale                  = null;\n        $fixed                  = false;\n        $default                = null;\n\n        if ($tableColumn['default'] !== null) {\n            // Strip quotes from default value.\n            $default = preg_replace([\"/^'(.*)'$/\", \"/''/\"], ['$1', \"'\"], $tableColumn['default']);\n\n            if ($default === 'autoincrement') {\n                $default = null;\n            }\n        }\n\n        switch ($tableColumn['type']) {\n            case 'binary':\n            case 'char':\n            case 'nchar':\n                $fixed = true;\n        }\n\n        switch ($type) {\n            case 'decimal':\n            case 'float':\n                $precision = $tableColumn['length'];\n                $scale     = $tableColumn['scale'];\n        }\n\n        return new Column(\n            $tableColumn['column_name'],\n            Type::getType($type),\n            [\n                'length'        => $type === 'string' ? $tableColumn['length'] : null,\n                'precision'     => $precision,\n                'scale'         => $scale,\n                'unsigned'      => (bool) $tableColumn['unsigned'],\n                'fixed'         => $fixed,\n                'notnull'       => (bool) $tableColumn['notnull'],\n                'default'       => $default,\n                'autoincrement' => (bool) $tableColumn['autoincrement'],\n                'comment'       => isset($tableColumn['comment']) && $tableColumn['comment'] !== ''\n                    ? $tableColumn['comment']\n                    : null,\n            ]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        return $table['table_name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        return new ForeignKeyConstraint(\n            $tableForeignKey['local_columns'],\n            $tableForeignKey['foreign_table'],\n            $tableForeignKey['foreign_columns'],\n            $tableForeignKey['name'],\n            $tableForeignKey['options']\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $foreignKeys = [];\n\n        foreach ($tableForeignKeys as $tableForeignKey) {\n            if (! isset($foreignKeys[$tableForeignKey['index_name']])) {\n                $foreignKeys[$tableForeignKey['index_name']] = [\n                    'local_columns'   => [$tableForeignKey['local_column']],\n                    'foreign_table'   => $tableForeignKey['foreign_table'],\n                    'foreign_columns' => [$tableForeignKey['foreign_column']],\n                    'name'            => $tableForeignKey['index_name'],\n                    'options'         => [\n                        'notnull'           => $tableForeignKey['notnull'],\n                        'match'             => $tableForeignKey['match'],\n                        'onUpdate'          => $tableForeignKey['on_update'],\n                        'onDelete'          => $tableForeignKey['on_delete'],\n                        'check_on_commit'   => $tableForeignKey['check_on_commit'],\n                        'clustered'         => $tableForeignKey['clustered'],\n                        'for_olap_workload' => $tableForeignKey['for_olap_workload'],\n                    ],\n                ];\n            } else {\n                $foreignKeys[$tableForeignKey['index_name']]['local_columns'][]   = $tableForeignKey['local_column'];\n                $foreignKeys[$tableForeignKey['index_name']]['foreign_columns'][] = $tableForeignKey['foreign_column'];\n            }\n        }\n\n        return parent::_getPortableTableForeignKeysList($foreignKeys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexesList($tableIndexRows, $tableName = null)\n    {\n        foreach ($tableIndexRows as &$tableIndex) {\n            $tableIndex['primary'] = (bool) $tableIndex['primary'];\n            $tableIndex['flags']   = [];\n\n            if ($tableIndex['clustered']) {\n                $tableIndex['flags'][] = 'clustered';\n            }\n\n            if ($tableIndex['with_nulls_not_distinct']) {\n                $tableIndex['flags'][] = 'with_nulls_not_distinct';\n            }\n\n            if (! $tableIndex['for_olap_workload']) {\n                continue;\n            }\n\n            $tableIndex['flags'][] = 'for_olap_workload';\n        }\n\n        return parent::_getPortableTableIndexesList($tableIndexRows, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        return new View(\n            $view['table_name'],\n            preg_replace('/^.*\\s+as\\s+SELECT(.*)/i', 'SELECT$1', $view['view_def'])\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Driver\\DriverException;\nuse Doctrine\\DBAL\\Types\\Type;\nuse PDOException;\nuse function count;\nuse function in_array;\nuse function preg_replace;\nuse function sprintf;\nuse function str_replace;\nuse function strpos;\nuse function strtok;\nuse function trim;\n\n/**\n * SQL Server Schema Manager.\n */\nclass SQLServerSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function dropDatabase($database)\n    {\n        try {\n            parent::dropDatabase($database);\n        } catch (DBALException $exception) {\n            $exception = $exception->getPrevious();\n\n            if (! $exception instanceof DriverException) {\n                throw $exception;\n            }\n\n            // If we have a error code 3702, the drop database operation failed\n            // because of active connections on the database.\n            // To force dropping the database, we first have to close all active connections\n            // on that database and issue the drop database operation again.\n            if ($exception->getErrorCode() !== 3702) {\n                throw $exception;\n            }\n\n            $this->closeActiveDatabaseConnections($database);\n\n            parent::dropDatabase($database);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableSequenceDefinition($sequence)\n    {\n        return new Sequence($sequence['name'], (int) $sequence['increment'], (int) $sequence['start_value']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $dbType  = strtok($tableColumn['type'], '(), ');\n        $fixed   = null;\n        $length  = (int) $tableColumn['length'];\n        $default = $tableColumn['default'];\n\n        if (! isset($tableColumn['name'])) {\n            $tableColumn['name'] = '';\n        }\n\n        if ($default !== null) {\n            while ($default !== ($default2 = preg_replace('/^\\((.*)\\)$/', '$1', $default))) {\n                $default = trim($default2, \"'\");\n\n                if ($default !== 'getdate()') {\n                    continue;\n                }\n\n                $default = $this->_platform->getCurrentTimestampSQL();\n            }\n        }\n\n        switch ($dbType) {\n            case 'nchar':\n            case 'nvarchar':\n            case 'ntext':\n                // Unicode data requires 2 bytes per character\n                $length /= 2;\n                break;\n            case 'varchar':\n                // TEXT type is returned as VARCHAR(MAX) with a length of -1\n                if ($length === -1) {\n                    $dbType = 'text';\n                }\n                break;\n        }\n\n        if ($dbType === 'char' || $dbType === 'nchar' || $dbType === 'binary') {\n            $fixed = true;\n        }\n\n        $type                   = $this->_platform->getDoctrineTypeMapping($dbType);\n        $type                   = $this->extractDoctrineTypeFromComment($tableColumn['comment'], $type);\n        $tableColumn['comment'] = $this->removeDoctrineTypeFromComment($tableColumn['comment'], $type);\n\n        $options = [\n            'length'        => $length === 0 || ! in_array($type, ['text', 'string']) ? null : $length,\n            'unsigned'      => false,\n            'fixed'         => (bool) $fixed,\n            'default'       => $default !== 'NULL' ? $default : null,\n            'notnull'       => (bool) $tableColumn['notnull'],\n            'scale'         => $tableColumn['scale'],\n            'precision'     => $tableColumn['precision'],\n            'autoincrement' => (bool) $tableColumn['autoincrement'],\n            'comment'       => $tableColumn['comment'] !== '' ? $tableColumn['comment'] : null,\n        ];\n\n        $column = new Column($tableColumn['name'], Type::getType($type), $options);\n\n        if (isset($tableColumn['collation']) && $tableColumn['collation'] !== 'NULL') {\n            $column->setPlatformOption('collation', $tableColumn['collation']);\n        }\n\n        return $column;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $foreignKeys = [];\n\n        foreach ($tableForeignKeys as $tableForeignKey) {\n            if (! isset($foreignKeys[$tableForeignKey['ForeignKey']])) {\n                $foreignKeys[$tableForeignKey['ForeignKey']] = [\n                    'local_columns' => [$tableForeignKey['ColumnName']],\n                    'foreign_table' => $tableForeignKey['ReferenceTableName'],\n                    'foreign_columns' => [$tableForeignKey['ReferenceColumnName']],\n                    'name' => $tableForeignKey['ForeignKey'],\n                    'options' => [\n                        'onUpdate' => str_replace('_', ' ', $tableForeignKey['update_referential_action_desc']),\n                        'onDelete' => str_replace('_', ' ', $tableForeignKey['delete_referential_action_desc']),\n                    ],\n                ];\n            } else {\n                $foreignKeys[$tableForeignKey['ForeignKey']]['local_columns'][]   = $tableForeignKey['ColumnName'];\n                $foreignKeys[$tableForeignKey['ForeignKey']]['foreign_columns'][] = $tableForeignKey['ReferenceColumnName'];\n            }\n        }\n\n        return parent::_getPortableTableForeignKeysList($foreignKeys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexesList($tableIndexRows, $tableName = null)\n    {\n        foreach ($tableIndexRows as &$tableIndex) {\n            $tableIndex['non_unique'] = (bool) $tableIndex['non_unique'];\n            $tableIndex['primary']    = (bool) $tableIndex['primary'];\n            $tableIndex['flags']      = $tableIndex['flags'] ? [$tableIndex['flags']] : null;\n        }\n\n        return parent::_getPortableTableIndexesList($tableIndexRows, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeyDefinition($tableForeignKey)\n    {\n        return new ForeignKeyConstraint(\n            $tableForeignKey['local_columns'],\n            $tableForeignKey['foreign_table'],\n            $tableForeignKey['foreign_columns'],\n            $tableForeignKey['name'],\n            $tableForeignKey['options']\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        if (isset($table['schema_name']) && $table['schema_name'] !== 'dbo') {\n            return $table['schema_name'] . '.' . $table['name'];\n        }\n\n        return $table['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableDatabaseDefinition($database)\n    {\n        return $database['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getPortableNamespaceDefinition(array $namespace)\n    {\n        return $namespace['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        // @todo\n        return new View($view['name'], null);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function listTableIndexes($table)\n    {\n        $sql = $this->_platform->getListTableIndexesSQL($table, $this->_conn->getDatabase());\n\n        try {\n            $tableIndexes = $this->_conn->fetchAll($sql);\n        } catch (PDOException $e) {\n            if ($e->getCode() === 'IMSSP') {\n                return [];\n            }\n\n            throw $e;\n        } catch (DBALException $e) {\n            if (strpos($e->getMessage(), 'SQLSTATE [01000, 15472]') === 0) {\n                return [];\n            }\n\n            throw $e;\n        }\n\n        return $this->_getPortableTableIndexesList($tableIndexes, $table);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function alterTable(TableDiff $tableDiff)\n    {\n        if (count($tableDiff->removedColumns) > 0) {\n            foreach ($tableDiff->removedColumns as $col) {\n                $columnConstraintSql = $this->getColumnConstraintSQL($tableDiff->name, $col->getName());\n                foreach ($this->_conn->fetchAll($columnConstraintSql) as $constraint) {\n                    $this->_conn->exec(\n                        sprintf(\n                            'ALTER TABLE %s DROP CONSTRAINT %s',\n                            $tableDiff->name,\n                            $constraint['Name']\n                        )\n                    );\n                }\n            }\n        }\n\n        parent::alterTable($tableDiff);\n    }\n\n    /**\n     * Returns the SQL to retrieve the constraints for a given column.\n     *\n     * @param string $table\n     * @param string $column\n     *\n     * @return string\n     */\n    private function getColumnConstraintSQL($table, $column)\n    {\n        return \"SELECT SysObjects.[Name]\n            FROM SysObjects INNER JOIN (SELECT [Name],[ID] FROM SysObjects WHERE XType = 'U') AS Tab\n            ON Tab.[ID] = Sysobjects.[Parent_Obj]\n            INNER JOIN sys.default_constraints DefCons ON DefCons.[object_id] = Sysobjects.[ID]\n            INNER JOIN SysColumns Col ON Col.[ColID] = DefCons.[parent_column_id] AND Col.[ID] = Tab.[ID]\n            WHERE Col.[Name] = \" . $this->_conn->quote($column) . ' AND Tab.[Name] = ' . $this->_conn->quote($table) . '\n            ORDER BY Col.[Name]';\n    }\n\n    /**\n     * Closes currently active connections on the given database.\n     *\n     * This is useful to force DROP DATABASE operations which could fail because of active connections.\n     *\n     * @param string $database The name of the database to close currently active connections for.\n     *\n     * @return void\n     */\n    private function closeActiveDatabaseConnections($database)\n    {\n        $database = new Identifier($database);\n\n        $this->_execSql(\n            sprintf(\n                'ALTER DATABASE %s SET SINGLE_USER WITH ROLLBACK IMMEDIATE',\n                $database->getQuotedName($this->_platform)\n            )\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Schema.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Visitor\\CreateSchemaSqlCollector;\nuse Doctrine\\DBAL\\Schema\\Visitor\\DropSchemaSqlCollector;\nuse Doctrine\\DBAL\\Schema\\Visitor\\NamespaceVisitor;\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\nuse function array_keys;\nuse function strpos;\nuse function strtolower;\n\n/**\n * Object representation of a database schema.\n *\n * Different vendors have very inconsistent naming with regard to the concept\n * of a \"schema\". Doctrine understands a schema as the entity that conceptually\n * wraps a set of database objects such as tables, sequences, indexes and\n * foreign keys that belong to each other into a namespace. A Doctrine Schema\n * has nothing to do with the \"SCHEMA\" defined as in PostgreSQL, it is more\n * related to the concept of \"DATABASE\" that exists in MySQL and PostgreSQL.\n *\n * Every asset in the doctrine schema has a name. A name consists of either a\n * namespace.local name pair or just a local unqualified name.\n *\n * The abstraction layer that covers a PostgreSQL schema is the namespace of an\n * database object (asset). A schema can have a name, which will be used as\n * default namespace for the unqualified database objects that are created in\n * the schema.\n *\n * In the case of MySQL where cross-database queries are allowed this leads to\n * databases being \"misinterpreted\" as namespaces. This is intentional, however\n * the CREATE/DROP SQL visitors will just filter this queries and do not\n * execute them. Only the queries for the currently connected database are\n * executed.\n */\nclass Schema extends AbstractAsset\n{\n    /**\n     * The namespaces in this schema.\n     *\n     * @var string[]\n     */\n    private $namespaces = [];\n\n    /** @var Table[] */\n    protected $_tables = [];\n\n    /** @var Sequence[] */\n    protected $_sequences = [];\n\n    /** @var SchemaConfig */\n    protected $_schemaConfig = false;\n\n    /**\n     * @param Table[]    $tables\n     * @param Sequence[] $sequences\n     * @param string[]   $namespaces\n     */\n    public function __construct(\n        array $tables = [],\n        array $sequences = [],\n        ?SchemaConfig $schemaConfig = null,\n        array $namespaces = []\n    ) {\n        if ($schemaConfig === null) {\n            $schemaConfig = new SchemaConfig();\n        }\n        $this->_schemaConfig = $schemaConfig;\n        $this->_setName($schemaConfig->getName() ?: 'public');\n\n        foreach ($namespaces as $namespace) {\n            $this->createNamespace($namespace);\n        }\n\n        foreach ($tables as $table) {\n            $this->_addTable($table);\n        }\n\n        foreach ($sequences as $sequence) {\n            $this->_addSequence($sequence);\n        }\n    }\n\n    /**\n     * @return bool\n     */\n    public function hasExplicitForeignKeyIndexes()\n    {\n        return $this->_schemaConfig->hasExplicitForeignKeyIndexes();\n    }\n\n    /**\n     * @return void\n     *\n     * @throws SchemaException\n     */\n    protected function _addTable(Table $table)\n    {\n        $namespaceName = $table->getNamespaceName();\n        $tableName     = $table->getFullQualifiedName($this->getName());\n\n        if (isset($this->_tables[$tableName])) {\n            throw SchemaException::tableAlreadyExists($tableName);\n        }\n\n        if (! $table->isInDefaultNamespace($this->getName()) && ! $this->hasNamespace($namespaceName)) {\n            $this->createNamespace($namespaceName);\n        }\n\n        $this->_tables[$tableName] = $table;\n        $table->setSchemaConfig($this->_schemaConfig);\n    }\n\n    /**\n     * @return void\n     *\n     * @throws SchemaException\n     */\n    protected function _addSequence(Sequence $sequence)\n    {\n        $namespaceName = $sequence->getNamespaceName();\n        $seqName       = $sequence->getFullQualifiedName($this->getName());\n\n        if (isset($this->_sequences[$seqName])) {\n            throw SchemaException::sequenceAlreadyExists($seqName);\n        }\n\n        if (! $sequence->isInDefaultNamespace($this->getName()) && ! $this->hasNamespace($namespaceName)) {\n            $this->createNamespace($namespaceName);\n        }\n\n        $this->_sequences[$seqName] = $sequence;\n    }\n\n    /**\n     * Returns the namespaces of this schema.\n     *\n     * @return string[] A list of namespace names.\n     */\n    public function getNamespaces()\n    {\n        return $this->namespaces;\n    }\n\n    /**\n     * Gets all tables of this schema.\n     *\n     * @return Table[]\n     */\n    public function getTables()\n    {\n        return $this->_tables;\n    }\n\n    /**\n     * @param string $tableName\n     *\n     * @return Table\n     *\n     * @throws SchemaException\n     */\n    public function getTable($tableName)\n    {\n        $tableName = $this->getFullQualifiedAssetName($tableName);\n        if (! isset($this->_tables[$tableName])) {\n            throw SchemaException::tableDoesNotExist($tableName);\n        }\n\n        return $this->_tables[$tableName];\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return string\n     */\n    private function getFullQualifiedAssetName($name)\n    {\n        $name = $this->getUnquotedAssetName($name);\n\n        if (strpos($name, '.') === false) {\n            $name = $this->getName() . '.' . $name;\n        }\n\n        return strtolower($name);\n    }\n\n    /**\n     * Returns the unquoted representation of a given asset name.\n     *\n     * @param string $assetName Quoted or unquoted representation of an asset name.\n     *\n     * @return string\n     */\n    private function getUnquotedAssetName($assetName)\n    {\n        if ($this->isIdentifierQuoted($assetName)) {\n            return $this->trimQuotes($assetName);\n        }\n\n        return $assetName;\n    }\n\n    /**\n     * Does this schema have a namespace with the given name?\n     *\n     * @param string $namespaceName\n     *\n     * @return bool\n     */\n    public function hasNamespace($namespaceName)\n    {\n        $namespaceName = strtolower($this->getUnquotedAssetName($namespaceName));\n\n        return isset($this->namespaces[$namespaceName]);\n    }\n\n    /**\n     * Does this schema have a table with the given name?\n     *\n     * @param string $tableName\n     *\n     * @return bool\n     */\n    public function hasTable($tableName)\n    {\n        $tableName = $this->getFullQualifiedAssetName($tableName);\n\n        return isset($this->_tables[$tableName]);\n    }\n\n    /**\n     * Gets all table names, prefixed with a schema name, even the default one if present.\n     *\n     * @return string[]\n     */\n    public function getTableNames()\n    {\n        return array_keys($this->_tables);\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return bool\n     */\n    public function hasSequence($sequenceName)\n    {\n        $sequenceName = $this->getFullQualifiedAssetName($sequenceName);\n\n        return isset($this->_sequences[$sequenceName]);\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return Sequence\n     *\n     * @throws SchemaException\n     */\n    public function getSequence($sequenceName)\n    {\n        $sequenceName = $this->getFullQualifiedAssetName($sequenceName);\n        if (! $this->hasSequence($sequenceName)) {\n            throw SchemaException::sequenceDoesNotExist($sequenceName);\n        }\n\n        return $this->_sequences[$sequenceName];\n    }\n\n    /**\n     * @return Sequence[]\n     */\n    public function getSequences()\n    {\n        return $this->_sequences;\n    }\n\n    /**\n     * Creates a new namespace.\n     *\n     * @param string $namespaceName The name of the namespace to create.\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Schema This schema instance.\n     *\n     * @throws SchemaException\n     */\n    public function createNamespace($namespaceName)\n    {\n        $unquotedNamespaceName = strtolower($this->getUnquotedAssetName($namespaceName));\n\n        if (isset($this->namespaces[$unquotedNamespaceName])) {\n            throw SchemaException::namespaceAlreadyExists($unquotedNamespaceName);\n        }\n\n        $this->namespaces[$unquotedNamespaceName] = $namespaceName;\n\n        return $this;\n    }\n\n    /**\n     * Creates a new table.\n     *\n     * @param string $tableName\n     *\n     * @return Table\n     */\n    public function createTable($tableName)\n    {\n        $table = new Table($tableName);\n        $this->_addTable($table);\n\n        foreach ($this->_schemaConfig->getDefaultTableOptions() as $name => $value) {\n            $table->addOption($name, $value);\n        }\n\n        return $table;\n    }\n\n    /**\n     * Renames a table.\n     *\n     * @param string $oldTableName\n     * @param string $newTableName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Schema\n     */\n    public function renameTable($oldTableName, $newTableName)\n    {\n        $table = $this->getTable($oldTableName);\n        $table->_setName($newTableName);\n\n        $this->dropTable($oldTableName);\n        $this->_addTable($table);\n\n        return $this;\n    }\n\n    /**\n     * Drops a table from the schema.\n     *\n     * @param string $tableName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Schema\n     */\n    public function dropTable($tableName)\n    {\n        $tableName = $this->getFullQualifiedAssetName($tableName);\n        $this->getTable($tableName);\n        unset($this->_tables[$tableName]);\n\n        return $this;\n    }\n\n    /**\n     * Creates a new sequence.\n     *\n     * @param string $sequenceName\n     * @param int    $allocationSize\n     * @param int    $initialValue\n     *\n     * @return Sequence\n     */\n    public function createSequence($sequenceName, $allocationSize = 1, $initialValue = 1)\n    {\n        $seq = new Sequence($sequenceName, $allocationSize, $initialValue);\n        $this->_addSequence($seq);\n\n        return $seq;\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Schema\n     */\n    public function dropSequence($sequenceName)\n    {\n        $sequenceName = $this->getFullQualifiedAssetName($sequenceName);\n        unset($this->_sequences[$sequenceName]);\n\n        return $this;\n    }\n\n    /**\n     * Returns an array of necessary SQL queries to create the schema on the given platform.\n     *\n     * @return string[]\n     */\n    public function toSql(AbstractPlatform $platform)\n    {\n        $sqlCollector = new CreateSchemaSqlCollector($platform);\n        $this->visit($sqlCollector);\n\n        return $sqlCollector->getQueries();\n    }\n\n    /**\n     * Return an array of necessary SQL queries to drop the schema on the given platform.\n     *\n     * @return string[]\n     */\n    public function toDropSql(AbstractPlatform $platform)\n    {\n        $dropSqlCollector = new DropSchemaSqlCollector($platform);\n        $this->visit($dropSqlCollector);\n\n        return $dropSqlCollector->getQueries();\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getMigrateToSql(Schema $toSchema, AbstractPlatform $platform)\n    {\n        $comparator = new Comparator();\n        $schemaDiff = $comparator->compare($this, $toSchema);\n\n        return $schemaDiff->toSql($platform);\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getMigrateFromSql(Schema $fromSchema, AbstractPlatform $platform)\n    {\n        $comparator = new Comparator();\n        $schemaDiff = $comparator->compare($fromSchema, $this);\n\n        return $schemaDiff->toSql($platform);\n    }\n\n    /**\n     * @return void\n     */\n    public function visit(Visitor $visitor)\n    {\n        $visitor->acceptSchema($this);\n\n        if ($visitor instanceof NamespaceVisitor) {\n            foreach ($this->namespaces as $namespace) {\n                $visitor->acceptNamespace($namespace);\n            }\n        }\n\n        foreach ($this->_tables as $table) {\n            $table->visit($visitor);\n        }\n\n        foreach ($this->_sequences as $sequence) {\n            $sequence->visit($visitor);\n        }\n    }\n\n    /**\n     * Cloning a Schema triggers a deep clone of all related assets.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        foreach ($this->_tables as $k => $table) {\n            $this->_tables[$k] = clone $table;\n        }\n        foreach ($this->_sequences as $k => $sequence) {\n            $this->_sequences[$k] = clone $sequence;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaConfig.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\n/**\n * Configuration for a Schema.\n */\nclass SchemaConfig\n{\n    /** @var bool */\n    protected $hasExplicitForeignKeyIndexes = false;\n\n    /** @var int */\n    protected $maxIdentifierLength = 63;\n\n    /** @var string */\n    protected $name;\n\n    /** @var mixed[] */\n    protected $defaultTableOptions = [];\n\n    /**\n     * @return bool\n     */\n    public function hasExplicitForeignKeyIndexes()\n    {\n        return $this->hasExplicitForeignKeyIndexes;\n    }\n\n    /**\n     * @param bool $flag\n     *\n     * @return void\n     */\n    public function setExplicitForeignKeyIndexes($flag)\n    {\n        $this->hasExplicitForeignKeyIndexes = (bool) $flag;\n    }\n\n    /**\n     * @param int $length\n     *\n     * @return void\n     */\n    public function setMaxIdentifierLength($length)\n    {\n        $this->maxIdentifierLength = (int) $length;\n    }\n\n    /**\n     * @return int\n     */\n    public function getMaxIdentifierLength()\n    {\n        return $this->maxIdentifierLength;\n    }\n\n    /**\n     * Gets the default namespace of schema objects.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    /**\n     * Sets the default namespace name of schema objects.\n     *\n     * @param string $name The value to set.\n     *\n     * @return void\n     */\n    public function setName($name)\n    {\n        $this->name = $name;\n    }\n\n    /**\n     * Gets the default options that are passed to Table instances created with\n     * Schema#createTable().\n     *\n     * @return mixed[]\n     */\n    public function getDefaultTableOptions()\n    {\n        return $this->defaultTableOptions;\n    }\n\n    /**\n     * @param mixed[] $defaultTableOptions\n     *\n     * @return void\n     */\n    public function setDefaultTableOptions(array $defaultTableOptions)\n    {\n        $this->defaultTableOptions = $defaultTableOptions;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaDiff.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function array_merge;\n\n/**\n * Schema Diff.\n */\nclass SchemaDiff\n{\n    /** @var Schema */\n    public $fromSchema;\n\n    /**\n     * All added namespaces.\n     *\n     * @var string[]\n     */\n    public $newNamespaces = [];\n\n    /**\n     * All removed namespaces.\n     *\n     * @var string[]\n     */\n    public $removedNamespaces = [];\n\n    /**\n     * All added tables.\n     *\n     * @var Table[]\n     */\n    public $newTables = [];\n\n    /**\n     * All changed tables.\n     *\n     * @var TableDiff[]\n     */\n    public $changedTables = [];\n\n    /**\n     * All removed tables.\n     *\n     * @var Table[]\n     */\n    public $removedTables = [];\n\n    /** @var Sequence[] */\n    public $newSequences = [];\n\n    /** @var Sequence[] */\n    public $changedSequences = [];\n\n    /** @var Sequence[] */\n    public $removedSequences = [];\n\n    /** @var ForeignKeyConstraint[] */\n    public $orphanedForeignKeys = [];\n\n    /**\n     * Constructs an SchemaDiff object.\n     *\n     * @param Table[]     $newTables\n     * @param TableDiff[] $changedTables\n     * @param Table[]     $removedTables\n     */\n    public function __construct($newTables = [], $changedTables = [], $removedTables = [], ?Schema $fromSchema = null)\n    {\n        $this->newTables     = $newTables;\n        $this->changedTables = $changedTables;\n        $this->removedTables = $removedTables;\n        $this->fromSchema    = $fromSchema;\n    }\n\n    /**\n     * The to save sql mode ensures that the following things don't happen:\n     *\n     * 1. Tables are deleted\n     * 2. Sequences are deleted\n     * 3. Foreign Keys which reference tables that would otherwise be deleted.\n     *\n     * This way it is ensured that assets are deleted which might not be relevant to the metadata schema at all.\n     *\n     * @return string[]\n     */\n    public function toSaveSql(AbstractPlatform $platform)\n    {\n        return $this->_toSql($platform, true);\n    }\n\n    /**\n     * @return string[]\n     */\n    public function toSql(AbstractPlatform $platform)\n    {\n        return $this->_toSql($platform, false);\n    }\n\n    /**\n     * @param bool $saveMode\n     *\n     * @return string[]\n     */\n    protected function _toSql(AbstractPlatform $platform, $saveMode = false)\n    {\n        $sql = [];\n\n        if ($platform->supportsSchemas()) {\n            foreach ($this->newNamespaces as $newNamespace) {\n                $sql[] = $platform->getCreateSchemaSQL($newNamespace);\n            }\n        }\n\n        if ($platform->supportsForeignKeyConstraints() && $saveMode === false) {\n            foreach ($this->orphanedForeignKeys as $orphanedForeignKey) {\n                $sql[] = $platform->getDropForeignKeySQL($orphanedForeignKey, $orphanedForeignKey->getLocalTable());\n            }\n        }\n\n        if ($platform->supportsSequences() === true) {\n            foreach ($this->changedSequences as $sequence) {\n                $sql[] = $platform->getAlterSequenceSQL($sequence);\n            }\n\n            if ($saveMode === false) {\n                foreach ($this->removedSequences as $sequence) {\n                    $sql[] = $platform->getDropSequenceSQL($sequence);\n                }\n            }\n\n            foreach ($this->newSequences as $sequence) {\n                $sql[] = $platform->getCreateSequenceSQL($sequence);\n            }\n        }\n\n        $foreignKeySql = [];\n        foreach ($this->newTables as $table) {\n            $sql = array_merge(\n                $sql,\n                $platform->getCreateTableSQL($table, AbstractPlatform::CREATE_INDEXES)\n            );\n\n            if (! $platform->supportsForeignKeyConstraints()) {\n                continue;\n            }\n\n            foreach ($table->getForeignKeys() as $foreignKey) {\n                $foreignKeySql[] = $platform->getCreateForeignKeySQL($foreignKey, $table);\n            }\n        }\n        $sql = array_merge($sql, $foreignKeySql);\n\n        if ($saveMode === false) {\n            foreach ($this->removedTables as $table) {\n                $sql[] = $platform->getDropTableSQL($table);\n            }\n        }\n\n        foreach ($this->changedTables as $tableDiff) {\n            $sql = array_merge($sql, $platform->getAlterTableSQL($tableDiff));\n        }\n\n        return $sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\DBALException;\nuse function implode;\nuse function sprintf;\n\nclass SchemaException extends DBALException\n{\n    public const TABLE_DOESNT_EXIST       = 10;\n    public const TABLE_ALREADY_EXISTS     = 20;\n    public const COLUMN_DOESNT_EXIST      = 30;\n    public const COLUMN_ALREADY_EXISTS    = 40;\n    public const INDEX_DOESNT_EXIST       = 50;\n    public const INDEX_ALREADY_EXISTS     = 60;\n    public const SEQUENCE_DOENST_EXIST    = 70;\n    public const SEQUENCE_ALREADY_EXISTS  = 80;\n    public const INDEX_INVALID_NAME       = 90;\n    public const FOREIGNKEY_DOESNT_EXIST  = 100;\n    public const NAMESPACE_ALREADY_EXISTS = 110;\n\n    /**\n     * @param string $tableName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function tableDoesNotExist($tableName)\n    {\n        return new self(\"There is no table with name '\" . $tableName . \"' in the schema.\", self::TABLE_DOESNT_EXIST);\n    }\n\n    /**\n     * @param string $indexName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function indexNameInvalid($indexName)\n    {\n        return new self(\n            sprintf('Invalid index-name %s given, has to be [a-zA-Z0-9_]', $indexName),\n            self::INDEX_INVALID_NAME\n        );\n    }\n\n    /**\n     * @param string $indexName\n     * @param string $table\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function indexDoesNotExist($indexName, $table)\n    {\n        return new self(\n            sprintf(\"Index '%s' does not exist on table '%s'.\", $indexName, $table),\n            self::INDEX_DOESNT_EXIST\n        );\n    }\n\n    /**\n     * @param string $indexName\n     * @param string $table\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function indexAlreadyExists($indexName, $table)\n    {\n        return new self(\n            sprintf(\"An index with name '%s' was already defined on table '%s'.\", $indexName, $table),\n            self::INDEX_ALREADY_EXISTS\n        );\n    }\n\n    /**\n     * @param string $columnName\n     * @param string $table\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function columnDoesNotExist($columnName, $table)\n    {\n        return new self(\n            sprintf(\"There is no column with name '%s' on table '%s'.\", $columnName, $table),\n            self::COLUMN_DOESNT_EXIST\n        );\n    }\n\n    /**\n     * @param string $namespaceName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function namespaceAlreadyExists($namespaceName)\n    {\n        return new self(\n            sprintf(\"The namespace with name '%s' already exists.\", $namespaceName),\n            self::NAMESPACE_ALREADY_EXISTS\n        );\n    }\n\n    /**\n     * @param string $tableName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function tableAlreadyExists($tableName)\n    {\n        return new self(\"The table with name '\" . $tableName . \"' already exists.\", self::TABLE_ALREADY_EXISTS);\n    }\n\n    /**\n     * @param string $tableName\n     * @param string $columnName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function columnAlreadyExists($tableName, $columnName)\n    {\n        return new self(\n            \"The column '\" . $columnName . \"' on table '\" . $tableName . \"' already exists.\",\n            self::COLUMN_ALREADY_EXISTS\n        );\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function sequenceAlreadyExists($sequenceName)\n    {\n        return new self(\"The sequence '\" . $sequenceName . \"' already exists.\", self::SEQUENCE_ALREADY_EXISTS);\n    }\n\n    /**\n     * @param string $sequenceName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function sequenceDoesNotExist($sequenceName)\n    {\n        return new self(\"There exists no sequence with the name '\" . $sequenceName . \"'.\", self::SEQUENCE_DOENST_EXIST);\n    }\n\n    /**\n     * @param string $fkName\n     * @param string $table\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function foreignKeyDoesNotExist($fkName, $table)\n    {\n        return new self(\n            sprintf(\"There exists no foreign key with the name '%s' on table '%s'.\", $fkName, $table),\n            self::FOREIGNKEY_DOESNT_EXIST\n        );\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function namedForeignKeyRequired(Table $localTable, ForeignKeyConstraint $foreignKey)\n    {\n        return new self(\n            'The performed schema operation on ' . $localTable->getName() . ' requires a named foreign key, ' .\n            'but the given foreign key from (' . implode(', ', $foreignKey->getColumns()) . ') onto foreign table ' .\n            \"'\" . $foreignKey->getForeignTableName() . \"' (\" . implode(', ', $foreignKey->getForeignColumns()) . ') is currently ' .\n            'unnamed.'\n        );\n    }\n\n    /**\n     * @param string $changeName\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\SchemaException\n     */\n    public static function alterTableChangeNotSupported($changeName)\n    {\n        return new self(\n            sprintf(\"Alter table change not supported, given '%s'\", $changeName)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Sequence.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\nuse function count;\nuse function is_numeric;\nuse function sprintf;\n\n/**\n * Sequence structure.\n */\nclass Sequence extends AbstractAsset\n{\n    /** @var int */\n    protected $allocationSize = 1;\n\n    /** @var int */\n    protected $initialValue = 1;\n\n    /** @var int|null */\n    protected $cache = null;\n\n    /**\n     * @param string   $name\n     * @param int      $allocationSize\n     * @param int      $initialValue\n     * @param int|null $cache\n     */\n    public function __construct($name, $allocationSize = 1, $initialValue = 1, $cache = null)\n    {\n        $this->_setName($name);\n        $this->setAllocationSize($allocationSize);\n        $this->setInitialValue($initialValue);\n        $this->cache = $cache;\n    }\n\n    /**\n     * @return int\n     */\n    public function getAllocationSize()\n    {\n        return $this->allocationSize;\n    }\n\n    /**\n     * @return int\n     */\n    public function getInitialValue()\n    {\n        return $this->initialValue;\n    }\n\n    /**\n     * @return int|null\n     */\n    public function getCache()\n    {\n        return $this->cache;\n    }\n\n    /**\n     * @param int $allocationSize\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Sequence\n     */\n    public function setAllocationSize($allocationSize)\n    {\n        $this->allocationSize = is_numeric($allocationSize) ? (int) $allocationSize : 1;\n\n        return $this;\n    }\n\n    /**\n     * @param int $initialValue\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Sequence\n     */\n    public function setInitialValue($initialValue)\n    {\n        $this->initialValue = is_numeric($initialValue) ? (int) $initialValue : 1;\n\n        return $this;\n    }\n\n    /**\n     * @param int $cache\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\Sequence\n     */\n    public function setCache($cache)\n    {\n        $this->cache = $cache;\n\n        return $this;\n    }\n\n    /**\n     * Checks if this sequence is an autoincrement sequence for a given table.\n     *\n     * This is used inside the comparator to not report sequences as missing,\n     * when the \"from\" schema implicitly creates the sequences.\n     *\n     * @return bool\n     */\n    public function isAutoIncrementsFor(Table $table)\n    {\n        if (! $table->hasPrimaryKey()) {\n            return false;\n        }\n\n        $pkColumns = $table->getPrimaryKey()->getColumns();\n\n        if (count($pkColumns) !== 1) {\n            return false;\n        }\n\n        $column = $table->getColumn($pkColumns[0]);\n\n        if (! $column->getAutoincrement()) {\n            return false;\n        }\n\n        $sequenceName      = $this->getShortestName($table->getNamespaceName());\n        $tableName         = $table->getShortestName($table->getNamespaceName());\n        $tableSequenceName = sprintf('%s_%s_seq', $tableName, $column->getShortestName($table->getNamespaceName()));\n\n        return $tableSequenceName === $sequenceName;\n    }\n\n    /**\n     * @return void\n     */\n    public function visit(Visitor $visitor)\n    {\n        $visitor->acceptSequence($this);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\DriverManager;\nuse Doctrine\\DBAL\\FetchMode;\nuse Doctrine\\DBAL\\Types\\StringType;\nuse Doctrine\\DBAL\\Types\\TextType;\nuse Doctrine\\DBAL\\Types\\Type;\nuse const CASE_LOWER;\nuse function array_change_key_case;\nuse function array_map;\nuse function array_reverse;\nuse function array_values;\nuse function explode;\nuse function file_exists;\nuse function preg_match;\nuse function preg_match_all;\nuse function preg_quote;\nuse function preg_replace;\nuse function rtrim;\nuse function sprintf;\nuse function str_replace;\nuse function strpos;\nuse function strtolower;\nuse function trim;\nuse function unlink;\nuse function usort;\n\n/**\n * Sqlite SchemaManager.\n */\nclass SqliteSchemaManager extends AbstractSchemaManager\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function dropDatabase($database)\n    {\n        if (! file_exists($database)) {\n            return;\n        }\n\n        unlink($database);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDatabase($database)\n    {\n        $params  = $this->_conn->getParams();\n        $driver  = $params['driver'];\n        $options = [\n            'driver' => $driver,\n            'path' => $database,\n        ];\n        $conn    = DriverManager::getConnection($options);\n        $conn->connect();\n        $conn->close();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function renameTable($name, $newName)\n    {\n        $tableDiff            = new TableDiff($name);\n        $tableDiff->fromTable = $this->listTableDetails($name);\n        $tableDiff->newName   = $newName;\n        $this->alterTable($tableDiff);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createForeignKey(ForeignKeyConstraint $foreignKey, $table)\n    {\n        $tableDiff                     = $this->getTableDiffForAlterForeignKey($foreignKey, $table);\n        $tableDiff->addedForeignKeys[] = $foreignKey;\n\n        $this->alterTable($tableDiff);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropAndCreateForeignKey(ForeignKeyConstraint $foreignKey, $table)\n    {\n        $tableDiff                       = $this->getTableDiffForAlterForeignKey($foreignKey, $table);\n        $tableDiff->changedForeignKeys[] = $foreignKey;\n\n        $this->alterTable($tableDiff);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropForeignKey($foreignKey, $table)\n    {\n        $tableDiff                       = $this->getTableDiffForAlterForeignKey($foreignKey, $table);\n        $tableDiff->removedForeignKeys[] = $foreignKey;\n\n        $this->alterTable($tableDiff);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function listTableForeignKeys($table, $database = null)\n    {\n        if ($database === null) {\n            $database = $this->_conn->getDatabase();\n        }\n        $sql              = $this->_platform->getListTableForeignKeysSQL($table, $database);\n        $tableForeignKeys = $this->_conn->fetchAll($sql);\n\n        if (! empty($tableForeignKeys)) {\n            $createSql = $this->getCreateTableSQL($table);\n\n            if ($createSql !== null && preg_match_all(\n                '#\n                    (?:CONSTRAINT\\s+([^\\s]+)\\s+)?\n                    (?:FOREIGN\\s+KEY[^\\)]+\\)\\s*)?\n                    REFERENCES\\s+[^\\s]+\\s+(?:\\([^\\)]+\\))?\n                    (?:\n                        [^,]*?\n                        (NOT\\s+DEFERRABLE|DEFERRABLE)\n                        (?:\\s+INITIALLY\\s+(DEFERRED|IMMEDIATE))?\n                    )?#isx',\n                $createSql,\n                $match\n            )) {\n                $names      = array_reverse($match[1]);\n                $deferrable = array_reverse($match[2]);\n                $deferred   = array_reverse($match[3]);\n            } else {\n                $names = $deferrable = $deferred = [];\n            }\n\n            foreach ($tableForeignKeys as $key => $value) {\n                $id                                        = $value['id'];\n                $tableForeignKeys[$key]['constraint_name'] = isset($names[$id]) && $names[$id] !== '' ? $names[$id] : $id;\n                $tableForeignKeys[$key]['deferrable']      = isset($deferrable[$id]) && strtolower($deferrable[$id]) === 'deferrable';\n                $tableForeignKeys[$key]['deferred']        = isset($deferred[$id]) && strtolower($deferred[$id]) === 'deferred';\n            }\n        }\n\n        return $this->_getPortableTableForeignKeysList($tableForeignKeys);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableDefinition($table)\n    {\n        return $table['name'];\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @link http://ezcomponents.org/docs/api/trunk/DatabaseSchema/ezcDbSchemaPgsqlReader.html\n     */\n    protected function _getPortableTableIndexesList($tableIndexes, $tableName = null)\n    {\n        $indexBuffer = [];\n\n        // fetch primary\n        $stmt       = $this->_conn->executeQuery(sprintf(\n            'PRAGMA TABLE_INFO (%s)',\n            $this->_conn->quote($tableName)\n        ));\n        $indexArray = $stmt->fetchAll(FetchMode::ASSOCIATIVE);\n\n        usort($indexArray, static function ($a, $b) {\n            if ($a['pk'] === $b['pk']) {\n                return $a['cid'] - $b['cid'];\n            }\n\n            return $a['pk'] - $b['pk'];\n        });\n        foreach ($indexArray as $indexColumnRow) {\n            if ($indexColumnRow['pk'] === '0') {\n                continue;\n            }\n\n            $indexBuffer[] = [\n                'key_name' => 'primary',\n                'primary' => true,\n                'non_unique' => false,\n                'column_name' => $indexColumnRow['name'],\n            ];\n        }\n\n        // fetch regular indexes\n        foreach ($tableIndexes as $tableIndex) {\n            // Ignore indexes with reserved names, e.g. autoindexes\n            if (strpos($tableIndex['name'], 'sqlite_') === 0) {\n                continue;\n            }\n\n            $keyName           = $tableIndex['name'];\n            $idx               = [];\n            $idx['key_name']   = $keyName;\n            $idx['primary']    = false;\n            $idx['non_unique'] = $tableIndex['unique']?false:true;\n\n                $stmt       = $this->_conn->executeQuery(sprintf(\n                    'PRAGMA INDEX_INFO (%s)',\n                    $this->_conn->quote($keyName)\n                ));\n                $indexArray = $stmt->fetchAll(FetchMode::ASSOCIATIVE);\n\n            foreach ($indexArray as $indexColumnRow) {\n                $idx['column_name'] = $indexColumnRow['name'];\n                $indexBuffer[]      = $idx;\n            }\n        }\n\n        return parent::_getPortableTableIndexesList($indexBuffer, $tableName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableIndexDefinition($tableIndex)\n    {\n        return [\n            'name' => $tableIndex['name'],\n            'unique' => (bool) $tableIndex['unique'],\n        ];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnList($table, $database, $tableColumns)\n    {\n        $list = parent::_getPortableTableColumnList($table, $database, $tableColumns);\n\n        // find column with autoincrement\n        $autoincrementColumn = null;\n        $autoincrementCount  = 0;\n\n        foreach ($tableColumns as $tableColumn) {\n            if ($tableColumn['pk'] === '0') {\n                continue;\n            }\n\n            $autoincrementCount++;\n            if ($autoincrementColumn !== null || strtolower($tableColumn['type']) !== 'integer') {\n                continue;\n            }\n\n            $autoincrementColumn = $tableColumn['name'];\n        }\n\n        if ($autoincrementCount === 1 && $autoincrementColumn !== null) {\n            foreach ($list as $column) {\n                if ($autoincrementColumn !== $column->getName()) {\n                    continue;\n                }\n\n                $column->setAutoincrement(true);\n            }\n        }\n\n        // inspect column collation and comments\n        $createSql = $this->getCreateTableSQL($table) ?? '';\n\n        foreach ($list as $columnName => $column) {\n            $type = $column->getType();\n\n            if ($type instanceof StringType || $type instanceof TextType) {\n                $column->setPlatformOption('collation', $this->parseColumnCollationFromSQL($columnName, $createSql) ?: 'BINARY');\n            }\n\n            $comment = $this->parseColumnCommentFromSQL($columnName, $createSql);\n\n            if ($comment === null) {\n                continue;\n            }\n\n            $type = $this->extractDoctrineTypeFromComment($comment, null);\n\n            if ($type !== null) {\n                $column->setType(Type::getType($type));\n\n                $comment = $this->removeDoctrineTypeFromComment($comment, $type);\n            }\n\n            $column->setComment($comment);\n        }\n\n        return $list;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableColumnDefinition($tableColumn)\n    {\n        $parts               = explode('(', $tableColumn['type']);\n        $tableColumn['type'] = trim($parts[0]);\n        if (isset($parts[1])) {\n            $length                = trim($parts[1], ')');\n            $tableColumn['length'] = $length;\n        }\n\n        $dbType   = strtolower($tableColumn['type']);\n        $length   = $tableColumn['length'] ?? null;\n        $unsigned = false;\n\n        if (strpos($dbType, ' unsigned') !== false) {\n            $dbType   = str_replace(' unsigned', '', $dbType);\n            $unsigned = true;\n        }\n\n        $fixed   = false;\n        $type    = $this->_platform->getDoctrineTypeMapping($dbType);\n        $default = $tableColumn['dflt_value'];\n        if ($default === 'NULL') {\n            $default = null;\n        }\n        if ($default !== null) {\n            // SQLite returns strings wrapped in single quotes, so we need to strip them\n            $default = preg_replace(\"/^'(.*)'$/\", '\\1', $default);\n        }\n        $notnull = (bool) $tableColumn['notnull'];\n\n        if (! isset($tableColumn['name'])) {\n            $tableColumn['name'] = '';\n        }\n\n        $precision = null;\n        $scale     = null;\n\n        switch ($dbType) {\n            case 'char':\n                $fixed = true;\n                break;\n            case 'float':\n            case 'double':\n            case 'real':\n            case 'decimal':\n            case 'numeric':\n                if (isset($tableColumn['length'])) {\n                    if (strpos($tableColumn['length'], ',') === false) {\n                        $tableColumn['length'] .= ',0';\n                    }\n                    [$precision, $scale] = array_map('trim', explode(',', $tableColumn['length']));\n                }\n                $length = null;\n                break;\n        }\n\n        $options = [\n            'length'   => $length,\n            'unsigned' => (bool) $unsigned,\n            'fixed'    => $fixed,\n            'notnull'  => $notnull,\n            'default'  => $default,\n            'precision' => $precision,\n            'scale'     => $scale,\n            'autoincrement' => false,\n        ];\n\n        return new Column($tableColumn['name'], Type::getType($type), $options);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableViewDefinition($view)\n    {\n        return new View($view['name'], $view['sql']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function _getPortableTableForeignKeysList($tableForeignKeys)\n    {\n        $list = [];\n        foreach ($tableForeignKeys as $value) {\n            $value = array_change_key_case($value, CASE_LOWER);\n            $name  = $value['constraint_name'];\n            if (! isset($list[$name])) {\n                if (! isset($value['on_delete']) || $value['on_delete'] === 'RESTRICT') {\n                    $value['on_delete'] = null;\n                }\n                if (! isset($value['on_update']) || $value['on_update'] === 'RESTRICT') {\n                    $value['on_update'] = null;\n                }\n\n                $list[$name] = [\n                    'name' => $name,\n                    'local' => [],\n                    'foreign' => [],\n                    'foreignTable' => $value['table'],\n                    'onDelete' => $value['on_delete'],\n                    'onUpdate' => $value['on_update'],\n                    'deferrable' => $value['deferrable'],\n                    'deferred'=> $value['deferred'],\n                ];\n            }\n            $list[$name]['local'][]   = $value['from'];\n            $list[$name]['foreign'][] = $value['to'];\n        }\n\n        $result = [];\n        foreach ($list as $constraint) {\n            $result[] = new ForeignKeyConstraint(\n                array_values($constraint['local']),\n                $constraint['foreignTable'],\n                array_values($constraint['foreign']),\n                $constraint['name'],\n                [\n                    'onDelete' => $constraint['onDelete'],\n                    'onUpdate' => $constraint['onUpdate'],\n                    'deferrable' => $constraint['deferrable'],\n                    'deferred'=> $constraint['deferred'],\n                ]\n            );\n        }\n\n        return $result;\n    }\n\n    /**\n     * @param Table|string $table\n     *\n     * @return TableDiff\n     *\n     * @throws DBALException\n     */\n    private function getTableDiffForAlterForeignKey(ForeignKeyConstraint $foreignKey, $table)\n    {\n        if (! $table instanceof Table) {\n            $tableDetails = $this->tryMethod('listTableDetails', $table);\n            if ($table === false) {\n                throw new DBALException(sprintf('Sqlite schema manager requires to modify foreign keys table definition \"%s\".', $table));\n            }\n\n            $table = $tableDetails;\n        }\n\n        $tableDiff            = new TableDiff($table->getName());\n        $tableDiff->fromTable = $table;\n\n        return $tableDiff;\n    }\n\n    private function parseColumnCollationFromSQL(string $column, string $sql) : ?string\n    {\n        $pattern = '{(?:\\W' . preg_quote($column) . '\\W|\\W' . preg_quote($this->_platform->quoteSingleIdentifier($column))\n            . '\\W)[^,(]+(?:\\([^()]+\\)[^,]*)?(?:(?:DEFAULT|CHECK)\\s*(?:\\(.*?\\))?[^,]*)*COLLATE\\s+[\"\\']?([^\\s,\"\\')]+)}is';\n\n        if (preg_match($pattern, $sql, $match) !== 1) {\n            return null;\n        }\n\n        return $match[1];\n    }\n\n    private function parseColumnCommentFromSQL(string $column, string $sql) : ?string\n    {\n        $pattern = '{[\\s(,](?:\\W' . preg_quote($this->_platform->quoteSingleIdentifier($column)) . '\\W|\\W' . preg_quote($column)\n            . '\\W)(?:\\(.*?\\)|[^,(])*?,?((?:(?!\\n))(?:\\s*--[^\\n]*\\n?)+)}i';\n\n        if (preg_match($pattern, $sql, $match) !== 1) {\n            return null;\n        }\n\n        $comment = preg_replace('{^\\s*--}m', '', rtrim($match[1], \"\\n\"));\n\n        return $comment === '' ? null : $comment;\n    }\n\n    private function getCreateTableSQL(string $table) : ?string\n    {\n        return $this->_conn->fetchColumn(\n            <<<'SQL'\nSELECT sql\n  FROM (\n      SELECT *\n        FROM sqlite_master\n   UNION ALL\n      SELECT *\n        FROM sqlite_temp_master\n  )\nWHERE type = 'table'\nAND name = ?\nSQL\n            ,\n            [$table]\n        ) ?: null;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/AbstractSchemaSynchronizer.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Synchronizer;\n\nuse Doctrine\\DBAL\\Connection;\nuse Throwable;\n\n/**\n * Abstract schema synchronizer with methods for executing batches of SQL.\n */\nabstract class AbstractSchemaSynchronizer implements SchemaSynchronizer\n{\n    /** @var Connection */\n    protected $conn;\n\n    public function __construct(Connection $conn)\n    {\n        $this->conn = $conn;\n    }\n\n    /**\n     * @param string[] $sql\n     */\n    protected function processSqlSafely(array $sql)\n    {\n        foreach ($sql as $s) {\n            try {\n                $this->conn->exec($s);\n            } catch (Throwable $e) {\n            }\n        }\n    }\n\n    /**\n     * @param string[] $sql\n     */\n    protected function processSql(array $sql)\n    {\n        foreach ($sql as $s) {\n            $this->conn->exec($s);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SchemaSynchronizer.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Synchronizer;\n\nuse Doctrine\\DBAL\\Schema\\Schema;\n\n/**\n * The synchronizer knows how to synchronize a schema with the configured\n * database.\n */\ninterface SchemaSynchronizer\n{\n    /**\n     * Gets the SQL statements that can be executed to create the schema.\n     *\n     * @return string[]\n     */\n    public function getCreateSchema(Schema $createSchema);\n\n    /**\n     * Gets the SQL Statements to update given schema with the underlying db.\n     *\n     * @param bool $noDrops\n     *\n     * @return string[]\n     */\n    public function getUpdateSchema(Schema $toSchema, $noDrops = false);\n\n    /**\n     * Gets the SQL Statements to drop the given schema from underlying db.\n     *\n     * @return string[]\n     */\n    public function getDropSchema(Schema $dropSchema);\n\n    /**\n     * Gets the SQL statements to drop all schema assets from underlying db.\n     *\n     * @return string[]\n     */\n    public function getDropAllSchema();\n\n    /**\n     * Creates the Schema.\n     *\n     * @return void\n     */\n    public function createSchema(Schema $createSchema);\n\n    /**\n     * Updates the Schema to new schema version.\n     *\n     * @param bool $noDrops\n     *\n     * @return void\n     */\n    public function updateSchema(Schema $toSchema, $noDrops = false);\n\n    /**\n     * Drops the given database schema from the underlying db.\n     *\n     * @return void\n     */\n    public function dropSchema(Schema $dropSchema);\n\n    /**\n     * Drops all assets from the underlying db.\n     *\n     * @return void\n     */\n    public function dropAllSchema();\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SingleDatabaseSynchronizer.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Synchronizer;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\Comparator;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Visitor\\DropSchemaSqlCollector;\nuse function count;\n\n/**\n * Schema Synchronizer for Default DBAL Connection.\n */\nclass SingleDatabaseSynchronizer extends AbstractSchemaSynchronizer\n{\n    /** @var AbstractPlatform */\n    private $platform;\n\n    public function __construct(Connection $conn)\n    {\n        parent::__construct($conn);\n        $this->platform = $conn->getDatabasePlatform();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateSchema(Schema $createSchema)\n    {\n        return $createSchema->toSql($this->platform);\n    }\n\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getUpdateSchema(Schema $toSchema, $noDrops = false)\n    {\n        $comparator = new Comparator();\n        $sm         = $this->conn->getSchemaManager();\n\n        $fromSchema = $sm->createSchema();\n        $schemaDiff = $comparator->compare($fromSchema, $toSchema);\n\n        if ($noDrops) {\n            return $schemaDiff->toSaveSql($this->platform);\n        }\n\n        return $schemaDiff->toSql($this->platform);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropSchema(Schema $dropSchema)\n    {\n        $visitor = new DropSchemaSqlCollector($this->platform);\n        $sm      = $this->conn->getSchemaManager();\n\n        $fullSchema = $sm->createSchema();\n\n        foreach ($fullSchema->getTables() as $table) {\n            if ($dropSchema->hasTable($table->getName())) {\n                $visitor->acceptTable($table);\n            }\n\n            foreach ($table->getForeignKeys() as $foreignKey) {\n                if (! $dropSchema->hasTable($table->getName())) {\n                    continue;\n                }\n\n                if (! $dropSchema->hasTable($foreignKey->getForeignTableName())) {\n                    continue;\n                }\n\n                $visitor->acceptForeignKey($table, $foreignKey);\n            }\n        }\n\n        if (! $this->platform->supportsSequences()) {\n            return $visitor->getQueries();\n        }\n\n        foreach ($dropSchema->getSequences() as $sequence) {\n            $visitor->acceptSequence($sequence);\n        }\n\n        foreach ($dropSchema->getTables() as $table) {\n            if (! $table->hasPrimaryKey()) {\n                continue;\n            }\n\n            $columns = $table->getPrimaryKey()->getColumns();\n            if (count($columns) > 1) {\n                continue;\n            }\n\n            $checkSequence = $table->getName() . '_' . $columns[0] . '_seq';\n            if (! $fullSchema->hasSequence($checkSequence)) {\n                continue;\n            }\n\n            $visitor->acceptSequence($fullSchema->getSequence($checkSequence));\n        }\n\n        return $visitor->getQueries();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropAllSchema()\n    {\n        $sm      = $this->conn->getSchemaManager();\n        $visitor = new DropSchemaSqlCollector($this->platform);\n\n        $schema = $sm->createSchema();\n        $schema->visit($visitor);\n\n        return $visitor->getQueries();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createSchema(Schema $createSchema)\n    {\n        $this->processSql($this->getCreateSchema($createSchema));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function updateSchema(Schema $toSchema, $noDrops = false)\n    {\n        $this->processSql($this->getUpdateSchema($toSchema, $noDrops));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropSchema(Schema $dropSchema)\n    {\n        $this->processSqlSafely($this->getDropSchema($dropSchema));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropAllSchema()\n    {\n        $this->processSql($this->getDropAllSchema());\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\nuse Doctrine\\DBAL\\Types\\Type;\nuse const ARRAY_FILTER_USE_KEY;\nuse function array_filter;\nuse function array_merge;\nuse function in_array;\nuse function preg_match;\nuse function strlen;\nuse function strtolower;\n\n/**\n * Object Representation of a table.\n */\nclass Table extends AbstractAsset\n{\n    /** @var string */\n    protected $_name = null;\n\n    /** @var Column[] */\n    protected $_columns = [];\n\n    /** @var Index[] */\n    private $implicitIndexes = [];\n\n    /** @var Index[] */\n    protected $_indexes = [];\n\n    /** @var string */\n    protected $_primaryKeyName = false;\n\n    /** @var ForeignKeyConstraint[] */\n    protected $_fkConstraints = [];\n\n    /** @var mixed[] */\n    protected $_options = [];\n\n    /** @var SchemaConfig|null */\n    protected $_schemaConfig = null;\n\n    /**\n     * @param string                 $tableName\n     * @param Column[]               $columns\n     * @param Index[]                $indexes\n     * @param ForeignKeyConstraint[] $fkConstraints\n     * @param int                    $idGeneratorType\n     * @param mixed[]                $options\n     *\n     * @throws DBALException\n     */\n    public function __construct($tableName, array $columns = [], array $indexes = [], array $fkConstraints = [], $idGeneratorType = 0, array $options = [])\n    {\n        if (strlen($tableName) === 0) {\n            throw DBALException::invalidTableName($tableName);\n        }\n\n        $this->_setName($tableName);\n\n        foreach ($columns as $column) {\n            $this->_addColumn($column);\n        }\n\n        foreach ($indexes as $idx) {\n            $this->_addIndex($idx);\n        }\n\n        foreach ($fkConstraints as $constraint) {\n            $this->_addForeignKeyConstraint($constraint);\n        }\n\n        $this->_options = $options;\n    }\n\n    /**\n     * @return void\n     */\n    public function setSchemaConfig(SchemaConfig $schemaConfig)\n    {\n        $this->_schemaConfig = $schemaConfig;\n    }\n\n    /**\n     * @return int\n     */\n    protected function _getMaxIdentifierLength()\n    {\n        if ($this->_schemaConfig instanceof SchemaConfig) {\n            return $this->_schemaConfig->getMaxIdentifierLength();\n        }\n\n        return 63;\n    }\n\n    /**\n     * Sets the Primary Key.\n     *\n     * @param string[]    $columnNames\n     * @param string|bool $indexName\n     *\n     * @return self\n     */\n    public function setPrimaryKey(array $columnNames, $indexName = false)\n    {\n        $this->_addIndex($this->_createIndex($columnNames, $indexName ?: 'primary', true, true));\n\n        foreach ($columnNames as $columnName) {\n            $column = $this->getColumn($columnName);\n            $column->setNotnull(true);\n        }\n\n        return $this;\n    }\n\n    /**\n     * @param string[]    $columnNames\n     * @param string|null $indexName\n     * @param string[]    $flags\n     * @param mixed[]     $options\n     *\n     * @return self\n     */\n    public function addIndex(array $columnNames, $indexName = null, array $flags = [], array $options = [])\n    {\n        if ($indexName === null) {\n            $indexName = $this->_generateIdentifierName(\n                array_merge([$this->getName()], $columnNames),\n                'idx',\n                $this->_getMaxIdentifierLength()\n            );\n        }\n\n        return $this->_addIndex($this->_createIndex($columnNames, $indexName, false, false, $flags, $options));\n    }\n\n    /**\n     * Drops the primary key from this table.\n     *\n     * @return void\n     */\n    public function dropPrimaryKey()\n    {\n        $this->dropIndex($this->_primaryKeyName);\n        $this->_primaryKeyName = false;\n    }\n\n    /**\n     * Drops an index from this table.\n     *\n     * @param string $indexName The index name.\n     *\n     * @return void\n     *\n     * @throws SchemaException If the index does not exist.\n     */\n    public function dropIndex($indexName)\n    {\n        $indexName = $this->normalizeIdentifier($indexName);\n        if (! $this->hasIndex($indexName)) {\n            throw SchemaException::indexDoesNotExist($indexName, $this->_name);\n        }\n        unset($this->_indexes[$indexName]);\n    }\n\n    /**\n     * @param string[]    $columnNames\n     * @param string|null $indexName\n     * @param mixed[]     $options\n     *\n     * @return self\n     */\n    public function addUniqueIndex(array $columnNames, $indexName = null, array $options = [])\n    {\n        if ($indexName === null) {\n            $indexName = $this->_generateIdentifierName(\n                array_merge([$this->getName()], $columnNames),\n                'uniq',\n                $this->_getMaxIdentifierLength()\n            );\n        }\n\n        return $this->_addIndex($this->_createIndex($columnNames, $indexName, true, false, [], $options));\n    }\n\n    /**\n     * Renames an index.\n     *\n     * @param string      $oldIndexName The name of the index to rename from.\n     * @param string|null $newIndexName The name of the index to rename to.\n     *                                  If null is given, the index name will be auto-generated.\n     *\n     * @return self This table instance.\n     *\n     * @throws SchemaException If no index exists for the given current name\n     *                         or if an index with the given new name already exists on this table.\n     */\n    public function renameIndex($oldIndexName, $newIndexName = null)\n    {\n        $oldIndexName           = $this->normalizeIdentifier($oldIndexName);\n        $normalizedNewIndexName = $this->normalizeIdentifier($newIndexName);\n\n        if ($oldIndexName === $normalizedNewIndexName) {\n            return $this;\n        }\n\n        if (! $this->hasIndex($oldIndexName)) {\n            throw SchemaException::indexDoesNotExist($oldIndexName, $this->_name);\n        }\n\n        if ($this->hasIndex($normalizedNewIndexName)) {\n            throw SchemaException::indexAlreadyExists($normalizedNewIndexName, $this->_name);\n        }\n\n        $oldIndex = $this->_indexes[$oldIndexName];\n\n        if ($oldIndex->isPrimary()) {\n            $this->dropPrimaryKey();\n\n            return $this->setPrimaryKey($oldIndex->getColumns(), $newIndexName);\n        }\n\n        unset($this->_indexes[$oldIndexName]);\n\n        if ($oldIndex->isUnique()) {\n            return $this->addUniqueIndex($oldIndex->getColumns(), $newIndexName, $oldIndex->getOptions());\n        }\n\n        return $this->addIndex($oldIndex->getColumns(), $newIndexName, $oldIndex->getFlags(), $oldIndex->getOptions());\n    }\n\n    /**\n     * Checks if an index begins in the order of the given columns.\n     *\n     * @param string[] $columnNames\n     *\n     * @return bool\n     */\n    public function columnsAreIndexed(array $columnNames)\n    {\n        foreach ($this->getIndexes() as $index) {\n            /** @var $index Index */\n            if ($index->spansColumns($columnNames)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * @param string[] $columnNames\n     * @param string   $indexName\n     * @param bool     $isUnique\n     * @param bool     $isPrimary\n     * @param string[] $flags\n     * @param mixed[]  $options\n     *\n     * @return Index\n     *\n     * @throws SchemaException\n     */\n    private function _createIndex(array $columnNames, $indexName, $isUnique, $isPrimary, array $flags = [], array $options = [])\n    {\n        if (preg_match('(([^a-zA-Z0-9_]+))', $this->normalizeIdentifier($indexName))) {\n            throw SchemaException::indexNameInvalid($indexName);\n        }\n\n        foreach ($columnNames as $columnName) {\n            if (! $this->hasColumn($columnName)) {\n                throw SchemaException::columnDoesNotExist($columnName, $this->_name);\n            }\n        }\n\n        return new Index($indexName, $columnNames, $isUnique, $isPrimary, $flags, $options);\n    }\n\n    /**\n     * @param string  $columnName\n     * @param string  $typeName\n     * @param mixed[] $options\n     *\n     * @return Column\n     */\n    public function addColumn($columnName, $typeName, array $options = [])\n    {\n        $column = new Column($columnName, Type::getType($typeName), $options);\n\n        $this->_addColumn($column);\n\n        return $column;\n    }\n\n    /**\n     * Renames a Column.\n     *\n     * @deprecated\n     *\n     * @param string $oldColumnName\n     * @param string $newColumnName\n     *\n     * @throws DBALException\n     */\n    public function renameColumn($oldColumnName, $newColumnName)\n    {\n        throw new DBALException('Table#renameColumn() was removed, because it drops and recreates ' .\n            'the column instead. There is no fix available, because a schema diff cannot reliably detect if a ' .\n            'column was renamed or one column was created and another one dropped.');\n    }\n\n    /**\n     * Change Column Details.\n     *\n     * @param string  $columnName\n     * @param mixed[] $options\n     *\n     * @return self\n     */\n    public function changeColumn($columnName, array $options)\n    {\n        $column = $this->getColumn($columnName);\n        $column->setOptions($options);\n\n        return $this;\n    }\n\n    /**\n     * Drops a Column from the Table.\n     *\n     * @param string $columnName\n     *\n     * @return self\n     */\n    public function dropColumn($columnName)\n    {\n        $columnName = $this->normalizeIdentifier($columnName);\n        unset($this->_columns[$columnName]);\n\n        return $this;\n    }\n\n    /**\n     * Adds a foreign key constraint.\n     *\n     * Name is inferred from the local columns.\n     *\n     * @param Table|string $foreignTable       Table schema instance or table name\n     * @param string[]     $localColumnNames\n     * @param string[]     $foreignColumnNames\n     * @param mixed[]      $options\n     * @param string|null  $constraintName\n     *\n     * @return self\n     */\n    public function addForeignKeyConstraint($foreignTable, array $localColumnNames, array $foreignColumnNames, array $options = [], $constraintName = null)\n    {\n        $constraintName = $constraintName ?: $this->_generateIdentifierName(array_merge((array) $this->getName(), $localColumnNames), 'fk', $this->_getMaxIdentifierLength());\n\n        return $this->addNamedForeignKeyConstraint($constraintName, $foreignTable, $localColumnNames, $foreignColumnNames, $options);\n    }\n\n    /**\n     * Adds a foreign key constraint.\n     *\n     * Name is to be generated by the database itself.\n     *\n     * @deprecated Use {@link addForeignKeyConstraint}\n     *\n     * @param Table|string $foreignTable       Table schema instance or table name\n     * @param string[]     $localColumnNames\n     * @param string[]     $foreignColumnNames\n     * @param mixed[]      $options\n     *\n     * @return self\n     */\n    public function addUnnamedForeignKeyConstraint($foreignTable, array $localColumnNames, array $foreignColumnNames, array $options = [])\n    {\n        return $this->addForeignKeyConstraint($foreignTable, $localColumnNames, $foreignColumnNames, $options);\n    }\n\n    /**\n     * Adds a foreign key constraint with a given name.\n     *\n     * @deprecated Use {@link addForeignKeyConstraint}\n     *\n     * @param string       $name\n     * @param Table|string $foreignTable       Table schema instance or table name\n     * @param string[]     $localColumnNames\n     * @param string[]     $foreignColumnNames\n     * @param mixed[]      $options\n     *\n     * @return self\n     *\n     * @throws SchemaException\n     */\n    public function addNamedForeignKeyConstraint($name, $foreignTable, array $localColumnNames, array $foreignColumnNames, array $options = [])\n    {\n        if ($foreignTable instanceof Table) {\n            foreach ($foreignColumnNames as $columnName) {\n                if (! $foreignTable->hasColumn($columnName)) {\n                    throw SchemaException::columnDoesNotExist($columnName, $foreignTable->getName());\n                }\n            }\n        }\n\n        foreach ($localColumnNames as $columnName) {\n            if (! $this->hasColumn($columnName)) {\n                throw SchemaException::columnDoesNotExist($columnName, $this->_name);\n            }\n        }\n\n        $constraint = new ForeignKeyConstraint(\n            $localColumnNames,\n            $foreignTable,\n            $foreignColumnNames,\n            $name,\n            $options\n        );\n        $this->_addForeignKeyConstraint($constraint);\n\n        return $this;\n    }\n\n    /**\n     * @param string $name\n     * @param string $value\n     *\n     * @return self\n     */\n    public function addOption($name, $value)\n    {\n        $this->_options[$name] = $value;\n\n        return $this;\n    }\n\n    /**\n     * @return void\n     *\n     * @throws SchemaException\n     */\n    protected function _addColumn(Column $column)\n    {\n        $columnName = $column->getName();\n        $columnName = $this->normalizeIdentifier($columnName);\n\n        if (isset($this->_columns[$columnName])) {\n            throw SchemaException::columnAlreadyExists($this->getName(), $columnName);\n        }\n\n        $this->_columns[$columnName] = $column;\n    }\n\n    /**\n     * Adds an index to the table.\n     *\n     * @return self\n     *\n     * @throws SchemaException\n     */\n    protected function _addIndex(Index $indexCandidate)\n    {\n        $indexName               = $indexCandidate->getName();\n        $indexName               = $this->normalizeIdentifier($indexName);\n        $replacedImplicitIndexes = [];\n\n        foreach ($this->implicitIndexes as $name => $implicitIndex) {\n            if (! $implicitIndex->isFullfilledBy($indexCandidate) || ! isset($this->_indexes[$name])) {\n                continue;\n            }\n\n            $replacedImplicitIndexes[] = $name;\n        }\n\n        if ((isset($this->_indexes[$indexName]) && ! in_array($indexName, $replacedImplicitIndexes, true)) ||\n            ($this->_primaryKeyName !== false && $indexCandidate->isPrimary())\n        ) {\n            throw SchemaException::indexAlreadyExists($indexName, $this->_name);\n        }\n\n        foreach ($replacedImplicitIndexes as $name) {\n            unset($this->_indexes[$name], $this->implicitIndexes[$name]);\n        }\n\n        if ($indexCandidate->isPrimary()) {\n            $this->_primaryKeyName = $indexName;\n        }\n\n        $this->_indexes[$indexName] = $indexCandidate;\n\n        return $this;\n    }\n\n    /**\n     * @return void\n     */\n    protected function _addForeignKeyConstraint(ForeignKeyConstraint $constraint)\n    {\n        $constraint->setLocalTable($this);\n\n        if (strlen($constraint->getName())) {\n            $name = $constraint->getName();\n        } else {\n            $name = $this->_generateIdentifierName(\n                array_merge((array) $this->getName(), $constraint->getLocalColumns()),\n                'fk',\n                $this->_getMaxIdentifierLength()\n            );\n        }\n        $name = $this->normalizeIdentifier($name);\n\n        $this->_fkConstraints[$name] = $constraint;\n\n        // add an explicit index on the foreign key columns. If there is already an index that fulfils this requirements drop the request.\n        // In the case of __construct calling this method during hydration from schema-details all the explicitly added indexes\n        // lead to duplicates. This creates computation overhead in this case, however no duplicate indexes are ever added (based on columns).\n        $indexName      = $this->_generateIdentifierName(\n            array_merge([$this->getName()], $constraint->getColumns()),\n            'idx',\n            $this->_getMaxIdentifierLength()\n        );\n        $indexCandidate = $this->_createIndex($constraint->getColumns(), $indexName, false, false);\n\n        foreach ($this->_indexes as $existingIndex) {\n            if ($indexCandidate->isFullfilledBy($existingIndex)) {\n                return;\n            }\n        }\n\n        $this->_addIndex($indexCandidate);\n        $this->implicitIndexes[$this->normalizeIdentifier($indexName)] = $indexCandidate;\n    }\n\n    /**\n     * Returns whether this table has a foreign key constraint with the given name.\n     *\n     * @param string $constraintName\n     *\n     * @return bool\n     */\n    public function hasForeignKey($constraintName)\n    {\n        $constraintName = $this->normalizeIdentifier($constraintName);\n\n        return isset($this->_fkConstraints[$constraintName]);\n    }\n\n    /**\n     * Returns the foreign key constraint with the given name.\n     *\n     * @param string $constraintName The constraint name.\n     *\n     * @return ForeignKeyConstraint\n     *\n     * @throws SchemaException If the foreign key does not exist.\n     */\n    public function getForeignKey($constraintName)\n    {\n        $constraintName = $this->normalizeIdentifier($constraintName);\n        if (! $this->hasForeignKey($constraintName)) {\n            throw SchemaException::foreignKeyDoesNotExist($constraintName, $this->_name);\n        }\n\n        return $this->_fkConstraints[$constraintName];\n    }\n\n    /**\n     * Removes the foreign key constraint with the given name.\n     *\n     * @param string $constraintName The constraint name.\n     *\n     * @return void\n     *\n     * @throws SchemaException\n     */\n    public function removeForeignKey($constraintName)\n    {\n        $constraintName = $this->normalizeIdentifier($constraintName);\n        if (! $this->hasForeignKey($constraintName)) {\n            throw SchemaException::foreignKeyDoesNotExist($constraintName, $this->_name);\n        }\n\n        unset($this->_fkConstraints[$constraintName]);\n    }\n\n    /**\n     * Returns ordered list of columns (primary keys are first, then foreign keys, then the rest)\n     *\n     * @return Column[]\n     */\n    public function getColumns()\n    {\n        $primaryKeyColumns = [];\n        if ($this->hasPrimaryKey()) {\n            $primaryKeyColumns = $this->filterColumns($this->getPrimaryKey()->getColumns());\n        }\n\n        return array_merge($primaryKeyColumns, $this->getForeignKeyColumns(), $this->_columns);\n    }\n\n    /**\n     * Returns foreign key columns\n     *\n     * @return Column[]\n     */\n    private function getForeignKeyColumns()\n    {\n        $foreignKeyColumns = [];\n        foreach ($this->getForeignKeys() as $foreignKey) {\n            $foreignKeyColumns = array_merge($foreignKeyColumns, $foreignKey->getColumns());\n        }\n        return $this->filterColumns($foreignKeyColumns);\n    }\n\n    /**\n     * Returns only columns that have specified names\n     *\n     * @param string[] $columnNames\n     *\n     * @return Column[]\n     */\n    private function filterColumns(array $columnNames)\n    {\n        return array_filter($this->_columns, static function ($columnName) use ($columnNames) {\n            return in_array($columnName, $columnNames, true);\n        }, ARRAY_FILTER_USE_KEY);\n    }\n\n    /**\n     * Returns whether this table has a Column with the given name.\n     *\n     * @param string $columnName The column name.\n     *\n     * @return bool\n     */\n    public function hasColumn($columnName)\n    {\n        $columnName = $this->normalizeIdentifier($columnName);\n\n        return isset($this->_columns[$columnName]);\n    }\n\n    /**\n     * Returns the Column with the given name.\n     *\n     * @param string $columnName The column name.\n     *\n     * @return Column\n     *\n     * @throws SchemaException If the column does not exist.\n     */\n    public function getColumn($columnName)\n    {\n        $columnName = $this->normalizeIdentifier($columnName);\n        if (! $this->hasColumn($columnName)) {\n            throw SchemaException::columnDoesNotExist($columnName, $this->_name);\n        }\n\n        return $this->_columns[$columnName];\n    }\n\n    /**\n     * Returns the primary key.\n     *\n     * @return Index|null The primary key, or null if this Table has no primary key.\n     */\n    public function getPrimaryKey()\n    {\n        if (! $this->hasPrimaryKey()) {\n            return null;\n        }\n\n        return $this->getIndex($this->_primaryKeyName);\n    }\n\n    /**\n     * Returns the primary key columns.\n     *\n     * @return string[]\n     *\n     * @throws DBALException\n     */\n    public function getPrimaryKeyColumns()\n    {\n        if (! $this->hasPrimaryKey()) {\n            throw new DBALException('Table ' . $this->getName() . ' has no primary key.');\n        }\n        return $this->getPrimaryKey()->getColumns();\n    }\n\n    /**\n     * Returns whether this table has a primary key.\n     *\n     * @return bool\n     */\n    public function hasPrimaryKey()\n    {\n        return $this->_primaryKeyName && $this->hasIndex($this->_primaryKeyName);\n    }\n\n    /**\n     * Returns whether this table has an Index with the given name.\n     *\n     * @param string $indexName The index name.\n     *\n     * @return bool\n     */\n    public function hasIndex($indexName)\n    {\n        $indexName = $this->normalizeIdentifier($indexName);\n\n        return isset($this->_indexes[$indexName]);\n    }\n\n    /**\n     * Returns the Index with the given name.\n     *\n     * @param string $indexName The index name.\n     *\n     * @return Index\n     *\n     * @throws SchemaException If the index does not exist.\n     */\n    public function getIndex($indexName)\n    {\n        $indexName = $this->normalizeIdentifier($indexName);\n        if (! $this->hasIndex($indexName)) {\n            throw SchemaException::indexDoesNotExist($indexName, $this->_name);\n        }\n\n        return $this->_indexes[$indexName];\n    }\n\n    /**\n     * @return Index[]\n     */\n    public function getIndexes()\n    {\n        return $this->_indexes;\n    }\n\n    /**\n     * Returns the foreign key constraints.\n     *\n     * @return ForeignKeyConstraint[]\n     */\n    public function getForeignKeys()\n    {\n        return $this->_fkConstraints;\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function hasOption($name)\n    {\n        return isset($this->_options[$name]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return mixed\n     */\n    public function getOption($name)\n    {\n        return $this->_options[$name];\n    }\n\n    /**\n     * @return mixed[]\n     */\n    public function getOptions()\n    {\n        return $this->_options;\n    }\n\n    /**\n     * @return void\n     */\n    public function visit(Visitor $visitor)\n    {\n        $visitor->acceptTable($this);\n\n        foreach ($this->getColumns() as $column) {\n            $visitor->acceptColumn($this, $column);\n        }\n\n        foreach ($this->getIndexes() as $index) {\n            $visitor->acceptIndex($this, $index);\n        }\n\n        foreach ($this->getForeignKeys() as $constraint) {\n            $visitor->acceptForeignKey($this, $constraint);\n        }\n    }\n\n    /**\n     * Clone of a Table triggers a deep clone of all affected assets.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        foreach ($this->_columns as $k => $column) {\n            $this->_columns[$k] = clone $column;\n        }\n        foreach ($this->_indexes as $k => $index) {\n            $this->_indexes[$k] = clone $index;\n        }\n        foreach ($this->_fkConstraints as $k => $fk) {\n            $this->_fkConstraints[$k] = clone $fk;\n            $this->_fkConstraints[$k]->setLocalTable($this);\n        }\n    }\n\n    /**\n     * Normalizes a given identifier.\n     *\n     * Trims quotes and lowercases the given identifier.\n     *\n     * @param string $identifier The identifier to normalize.\n     *\n     * @return string The normalized identifier.\n     */\n    private function normalizeIdentifier($identifier)\n    {\n        return $this->trimQuotes(strtolower($identifier));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Table Diff.\n */\nclass TableDiff\n{\n    /** @var string */\n    public $name = null;\n\n    /** @var string|bool */\n    public $newName = false;\n\n    /**\n     * All added fields.\n     *\n     * @var Column[]\n     */\n    public $addedColumns;\n\n    /**\n     * All changed fields.\n     *\n     * @var ColumnDiff[]\n     */\n    public $changedColumns = [];\n\n    /**\n     * All removed fields.\n     *\n     * @var Column[]\n     */\n    public $removedColumns = [];\n\n    /**\n     * Columns that are only renamed from key to column instance name.\n     *\n     * @var Column[]\n     */\n    public $renamedColumns = [];\n\n    /**\n     * All added indexes.\n     *\n     * @var Index[]\n     */\n    public $addedIndexes = [];\n\n    /**\n     * All changed indexes.\n     *\n     * @var Index[]\n     */\n    public $changedIndexes = [];\n\n    /**\n     * All removed indexes\n     *\n     * @var Index[]\n     */\n    public $removedIndexes = [];\n\n    /**\n     * Indexes that are only renamed but are identical otherwise.\n     *\n     * @var Index[]\n     */\n    public $renamedIndexes = [];\n\n    /**\n     * All added foreign key definitions\n     *\n     * @var ForeignKeyConstraint[]\n     */\n    public $addedForeignKeys = [];\n\n    /**\n     * All changed foreign keys\n     *\n     * @var ForeignKeyConstraint[]\n     */\n    public $changedForeignKeys = [];\n\n    /**\n     * All removed foreign keys\n     *\n     * @var ForeignKeyConstraint[]|string[]\n     */\n    public $removedForeignKeys = [];\n\n    /** @var Table */\n    public $fromTable;\n\n    /**\n     * Constructs an TableDiff object.\n     *\n     * @param string       $tableName\n     * @param Column[]     $addedColumns\n     * @param ColumnDiff[] $changedColumns\n     * @param Column[]     $removedColumns\n     * @param Index[]      $addedIndexes\n     * @param Index[]      $changedIndexes\n     * @param Index[]      $removedIndexes\n     */\n    public function __construct(\n        $tableName,\n        $addedColumns = [],\n        $changedColumns = [],\n        $removedColumns = [],\n        $addedIndexes = [],\n        $changedIndexes = [],\n        $removedIndexes = [],\n        ?Table $fromTable = null\n    ) {\n        $this->name           = $tableName;\n        $this->addedColumns   = $addedColumns;\n        $this->changedColumns = $changedColumns;\n        $this->removedColumns = $removedColumns;\n        $this->addedIndexes   = $addedIndexes;\n        $this->changedIndexes = $changedIndexes;\n        $this->removedIndexes = $removedIndexes;\n        $this->fromTable      = $fromTable;\n    }\n\n    /**\n     * @param AbstractPlatform $platform The platform to use for retrieving this table diff's name.\n     *\n     * @return Identifier\n     */\n    public function getName(AbstractPlatform $platform)\n    {\n        return new Identifier(\n            $this->fromTable instanceof Table ? $this->fromTable->getQuotedName($platform) : $this->name\n        );\n    }\n\n    /**\n     * @return Identifier|string|bool\n     */\n    public function getNewName()\n    {\n        return $this->newName ? new Identifier($this->newName) : $this->newName;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/View.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema;\n\n/**\n * Representation of a Database View.\n */\nclass View extends AbstractAsset\n{\n    /** @var string */\n    private $sql;\n\n    /**\n     * @param string $name\n     * @param string $sql\n     */\n    public function __construct($name, $sql)\n    {\n        $this->_setName($name);\n        $this->sql = $sql;\n    }\n\n    /**\n     * @return string\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/AbstractVisitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\n\n/**\n * Abstract Visitor with empty methods for easy extension.\n */\nclass AbstractVisitor implements Visitor, NamespaceVisitor\n{\n    public function acceptSchema(Schema $schema)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptNamespace($namespaceName)\n    {\n    }\n\n    public function acceptTable(Table $table)\n    {\n    }\n\n    public function acceptColumn(Table $table, Column $column)\n    {\n    }\n\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n    }\n\n    public function acceptIndex(Table $table, Index $index)\n    {\n    }\n\n    public function acceptSequence(Sequence $sequence)\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/CreateSchemaSqlCollector.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse function array_merge;\n\nclass CreateSchemaSqlCollector extends AbstractVisitor\n{\n    /** @var string[] */\n    private $createNamespaceQueries = [];\n\n    /** @var string[] */\n    private $createTableQueries = [];\n\n    /** @var string[] */\n    private $createSequenceQueries = [];\n\n    /** @var string[] */\n    private $createFkConstraintQueries = [];\n\n    /** @var AbstractPlatform */\n    private $platform = null;\n\n    public function __construct(AbstractPlatform $platform)\n    {\n        $this->platform = $platform;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptNamespace($namespaceName)\n    {\n        if (! $this->platform->supportsSchemas()) {\n            return;\n        }\n\n        $this->createNamespaceQueries[] = $this->platform->getCreateSchemaSQL($namespaceName);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        $this->createTableQueries = array_merge($this->createTableQueries, (array) $this->platform->getCreateTableSQL($table));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n        if (! $this->platform->supportsForeignKeyConstraints()) {\n            return;\n        }\n\n        $this->createFkConstraintQueries[] = $this->platform->getCreateForeignKeySQL($fkConstraint, $localTable);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n        $this->createSequenceQueries[] = $this->platform->getCreateSequenceSQL($sequence);\n    }\n\n    /**\n     * @return void\n     */\n    public function resetQueries()\n    {\n        $this->createNamespaceQueries    = [];\n        $this->createTableQueries        = [];\n        $this->createSequenceQueries     = [];\n        $this->createFkConstraintQueries = [];\n    }\n\n    /**\n     * Gets all queries collected so far.\n     *\n     * @return string[]\n     */\n    public function getQueries()\n    {\n        return array_merge(\n            $this->createNamespaceQueries,\n            $this->createTableQueries,\n            $this->createSequenceQueries,\n            $this->createFkConstraintQueries\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/DropSchemaSqlCollector.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\SchemaException;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse SplObjectStorage;\nuse function strlen;\n\n/**\n * Gathers SQL statements that allow to completely drop the current schema.\n */\nclass DropSchemaSqlCollector extends AbstractVisitor\n{\n    /** @var SplObjectStorage */\n    private $constraints;\n\n    /** @var SplObjectStorage */\n    private $sequences;\n\n    /** @var SplObjectStorage */\n    private $tables;\n\n    /** @var AbstractPlatform */\n    private $platform;\n\n    public function __construct(AbstractPlatform $platform)\n    {\n        $this->platform = $platform;\n        $this->clearQueries();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        $this->tables->attach($table);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n        if (strlen($fkConstraint->getName()) === 0) {\n            throw SchemaException::namedForeignKeyRequired($localTable, $fkConstraint);\n        }\n\n        $this->constraints->attach($fkConstraint, $localTable);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n        $this->sequences->attach($sequence);\n    }\n\n    /**\n     * @return void\n     */\n    public function clearQueries()\n    {\n        $this->constraints = new SplObjectStorage();\n        $this->sequences   = new SplObjectStorage();\n        $this->tables      = new SplObjectStorage();\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getQueries()\n    {\n        $sql = [];\n\n        foreach ($this->constraints as $fkConstraint) {\n            $localTable = $this->constraints[$fkConstraint];\n            $sql[]      = $this->platform->getDropForeignKeySQL($fkConstraint, $localTable);\n        }\n\n        foreach ($this->sequences as $sequence) {\n            $sql[] = $this->platform->getDropSequenceSQL($sequence);\n        }\n\n        foreach ($this->tables as $table) {\n            $sql[] = $this->platform->getDropTableSQL($table);\n        }\n\n        return $sql;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Graphviz.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse function current;\nuse function file_put_contents;\nuse function in_array;\nuse function mt_rand;\nuse function sha1;\nuse function strtolower;\n\n/**\n * Create a Graphviz output of a Schema.\n */\nclass Graphviz extends AbstractVisitor\n{\n    /** @var string */\n    private $output = '';\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n        $this->output .= $this->createNodeRelation(\n            $fkConstraint->getLocalTableName() . ':col' . current($fkConstraint->getLocalColumns()) . ':se',\n            $fkConstraint->getForeignTableName() . ':col' . current($fkConstraint->getForeignColumns()) . ':se',\n            [\n                'dir'       => 'back',\n                'arrowtail' => 'dot',\n                'arrowhead' => 'normal',\n            ]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSchema(Schema $schema)\n    {\n        $this->output  = 'digraph \"' . sha1(mt_rand()) . '\" {' . \"\\n\";\n        $this->output .= 'splines = true;' . \"\\n\";\n        $this->output .= 'overlap = false;' . \"\\n\";\n        $this->output .= 'outputorder=edgesfirst;' . \"\\n\";\n        $this->output .= 'mindist = 0.6;' . \"\\n\";\n        $this->output .= 'sep = .2;' . \"\\n\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        $this->output .= $this->createNode(\n            $table->getName(),\n            [\n                'label' => $this->createTableLabel($table),\n                'shape' => 'plaintext',\n            ]\n        );\n    }\n\n    /**\n     * @return string\n     */\n    private function createTableLabel(Table $table)\n    {\n        // Start the table\n        $label = '<<TABLE CELLSPACING=\"0\" BORDER=\"1\" ALIGN=\"LEFT\">';\n\n        // The title\n        $label .= '<TR><TD BORDER=\"1\" COLSPAN=\"3\" ALIGN=\"CENTER\" BGCOLOR=\"#fcaf3e\"><FONT COLOR=\"#2e3436\" FACE=\"Helvetica\" POINT-SIZE=\"12\">' . $table->getName() . '</FONT></TD></TR>';\n\n        // The attributes block\n        foreach ($table->getColumns() as $column) {\n            $columnLabel = $column->getName();\n\n            $label .= '<TR>';\n            $label .= '<TD BORDER=\"0\" ALIGN=\"LEFT\" BGCOLOR=\"#eeeeec\">';\n            $label .= '<FONT COLOR=\"#2e3436\" FACE=\"Helvetica\" POINT-SIZE=\"12\">' . $columnLabel . '</FONT>';\n            $label .= '</TD><TD BORDER=\"0\" ALIGN=\"LEFT\" BGCOLOR=\"#eeeeec\"><FONT COLOR=\"#2e3436\" FACE=\"Helvetica\" POINT-SIZE=\"10\">' . strtolower($column->getType()) . '</FONT></TD>';\n            $label .= '<TD BORDER=\"0\" ALIGN=\"RIGHT\" BGCOLOR=\"#eeeeec\" PORT=\"col' . $column->getName() . '\">';\n            if ($table->hasPrimaryKey() && in_array($column->getName(), $table->getPrimaryKey()->getColumns())) {\n                $label .= \"\\xe2\\x9c\\xb7\";\n            }\n            $label .= '</TD></TR>';\n        }\n\n        // End the table\n        $label .= '</TABLE>>';\n\n        return $label;\n    }\n\n    /**\n     * @param string   $name\n     * @param string[] $options\n     *\n     * @return string\n     */\n    private function createNode($name, $options)\n    {\n        $node = $name . ' [';\n        foreach ($options as $key => $value) {\n            $node .= $key . '=' . $value . ' ';\n        }\n        $node .= \"]\\n\";\n\n        return $node;\n    }\n\n    /**\n     * @param string   $node1\n     * @param string   $node2\n     * @param string[] $options\n     *\n     * @return string\n     */\n    private function createNodeRelation($node1, $node2, $options)\n    {\n        $relation = $node1 . ' -> ' . $node2 . ' [';\n        foreach ($options as $key => $value) {\n            $relation .= $key . '=' . $value . ' ';\n        }\n        $relation .= \"]\\n\";\n\n        return $relation;\n    }\n\n    /**\n     * Get Graphviz Output\n     *\n     * @return string\n     */\n    public function getOutput()\n    {\n        return $this->output . '}';\n    }\n\n    /**\n     * Writes dot language output to a file. This should usually be a *.dot file.\n     *\n     * You have to convert the output into a viewable format. For example use \"neato\" on linux systems\n     * and execute:\n     *\n     *  neato -Tpng -o er.png er.dot\n     *\n     * @param string $filename\n     *\n     * @return void\n     */\n    public function write($filename)\n    {\n        file_put_contents($filename, $this->getOutput());\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/NamespaceVisitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\n/**\n * Visitor that can visit schema namespaces.\n */\ninterface NamespaceVisitor\n{\n    /**\n     * Accepts a schema namespace name.\n     *\n     * @param string $namespaceName The schema namespace name to accept.\n     */\n    public function acceptNamespace($namespaceName);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/RemoveNamespacedAssets.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\n\n/**\n * Removes assets from a schema that are not in the default namespace.\n *\n * Some databases such as MySQL support cross databases joins, but don't\n * allow to call DDLs to a database from another connected database.\n * Before a schema is serialized into SQL this visitor can cleanup schemas with\n * non default namespaces.\n *\n * This visitor filters all these non-default namespaced tables and sequences\n * and removes them from the SChema instance.\n */\nclass RemoveNamespacedAssets extends AbstractVisitor\n{\n    /** @var Schema */\n    private $schema;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSchema(Schema $schema)\n    {\n        $this->schema = $schema;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        if ($table->isInDefaultNamespace($this->schema->getName())) {\n            return;\n        }\n\n        $this->schema->dropTable($table->getName());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n        if ($sequence->isInDefaultNamespace($this->schema->getName())) {\n            return;\n        }\n\n        $this->schema->dropSequence($sequence->getName());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n        // The table may already be deleted in a previous\n        // RemoveNamespacedAssets#acceptTable call. Removing Foreign keys that\n        // point to nowhere.\n        if (! $this->schema->hasTable($fkConstraint->getForeignTableName())) {\n            $localTable->removeForeignKey($fkConstraint->getName());\n            return;\n        }\n\n        $foreignTable = $this->schema->getTable($fkConstraint->getForeignTableName());\n        if ($foreignTable->isInDefaultNamespace($this->schema->getName())) {\n            return;\n        }\n\n        $localTable->removeForeignKey($fkConstraint->getName());\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/SchemaDiffVisitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\n\n/**\n * Visit a SchemaDiff.\n */\ninterface SchemaDiffVisitor\n{\n    /**\n     * Visit an orphaned foreign key whose table was deleted.\n     */\n    public function visitOrphanedForeignKey(ForeignKeyConstraint $foreignKey);\n\n    /**\n     * Visit a sequence that has changed.\n     */\n    public function visitChangedSequence(Sequence $sequence);\n\n    /**\n     * Visit a sequence that has been removed.\n     */\n    public function visitRemovedSequence(Sequence $sequence);\n\n    public function visitNewSequence(Sequence $sequence);\n\n    public function visitNewTable(Table $table);\n\n    public function visitNewTableForeignKey(Table $table, ForeignKeyConstraint $foreignKey);\n\n    public function visitRemovedTable(Table $table);\n\n    public function visitChangedTable(TableDiff $tableDiff);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Visitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Schema\\Visitor;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\n\n/**\n * Schema Visitor used for Validation or Generation purposes.\n */\ninterface Visitor\n{\n    /**\n     * @return void\n     */\n    public function acceptSchema(Schema $schema);\n\n    /**\n     * @return void\n     */\n    public function acceptTable(Table $table);\n\n    /**\n     * @return void\n     */\n    public function acceptColumn(Table $table, Column $column);\n\n    /**\n     * @return void\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint);\n\n    /**\n     * @return void\n     */\n    public function acceptIndex(Table $table, Index $index);\n\n    /**\n     * @return void\n     */\n    public function acceptSequence(Sequence $sequence);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardConnection.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding;\n\nuse Doctrine\\Common\\EventManager;\nuse Doctrine\\DBAL\\Configuration;\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Driver;\nuse Doctrine\\DBAL\\Driver\\Connection as DriverConnection;\nuse Doctrine\\DBAL\\Event\\ConnectionEventArgs;\nuse Doctrine\\DBAL\\Events;\nuse Doctrine\\DBAL\\Sharding\\ShardChoser\\ShardChoser;\nuse InvalidArgumentException;\nuse function array_merge;\nuse function is_numeric;\nuse function is_string;\n\n/**\n * Sharding implementation that pools many different connections\n * internally and serves data from the currently active connection.\n *\n * The internals of this class are:\n *\n * - All sharding clients are specified and given a shard-id during\n *   configuration.\n * - By default, the global shard is selected. If no global shard is configured\n *   an exception is thrown on access.\n * - Selecting a shard by distribution value delegates the mapping\n *   \"distributionValue\" => \"client\" to the ShardChooser interface.\n * - An exception is thrown if trying to switch shards during an open\n *   transaction.\n *\n * Instantiation through the DriverManager looks like:\n *\n * @example\n *\n * $conn = DriverManager::getConnection(array(\n *    'wrapperClass' => 'Doctrine\\DBAL\\Sharding\\PoolingShardConnection',\n *    'driver' => 'pdo_mysql',\n *    'global' => array('user' => '', 'password' => '', 'host' => '', 'dbname' => ''),\n *    'shards' => array(\n *        array('id' => 1, 'user' => 'slave1', 'password', 'host' => '', 'dbname' => ''),\n *        array('id' => 2, 'user' => 'slave2', 'password', 'host' => '', 'dbname' => ''),\n *    ),\n *    'shardChoser' => 'Doctrine\\DBAL\\Sharding\\ShardChoser\\MultiTenantShardChoser',\n * ));\n * $shardManager = $conn->getShardManager();\n * $shardManager->selectGlobal();\n * $shardManager->selectShard($value);\n */\nclass PoolingShardConnection extends Connection\n{\n    /** @var DriverConnection[] */\n    private $activeConnections = [];\n\n    /** @var int|null */\n    private $activeShardId;\n\n    /** @var mixed[] */\n    private $connectionParameters = [];\n\n    /**\n     * {@inheritDoc}\n     *\n     * @throws InvalidArgumentException\n     */\n    public function __construct(array $params, Driver $driver, ?Configuration $config = null, ?EventManager $eventManager = null)\n    {\n        if (! isset($params['global'], $params['shards'])) {\n            throw new InvalidArgumentException(\"Connection Parameters require 'global' and 'shards' configurations.\");\n        }\n\n        if (! isset($params['shardChoser'])) {\n            throw new InvalidArgumentException(\"Missing Shard Choser configuration 'shardChoser'\");\n        }\n\n        if (is_string($params['shardChoser'])) {\n            $params['shardChoser'] = new $params['shardChoser']();\n        }\n\n        if (! ($params['shardChoser'] instanceof ShardChoser)) {\n            throw new InvalidArgumentException(\"The 'shardChoser' configuration is not a valid instance of Doctrine\\DBAL\\Sharding\\ShardChoser\\ShardChoser\");\n        }\n\n        $this->connectionParameters[0] = array_merge($params, $params['global']);\n\n        foreach ($params['shards'] as $shard) {\n            if (! isset($shard['id'])) {\n                throw new InvalidArgumentException(\"Missing 'id' for one configured shard. Please specify a unique shard-id.\");\n            }\n\n            if (! is_numeric($shard['id']) || $shard['id'] < 1) {\n                throw new InvalidArgumentException('Shard Id has to be a non-negative number.');\n            }\n\n            if (isset($this->connectionParameters[$shard['id']])) {\n                throw new InvalidArgumentException('Shard ' . $shard['id'] . ' is duplicated in the configuration.');\n            }\n\n            $this->connectionParameters[$shard['id']] = array_merge($params, $shard);\n        }\n\n        parent::__construct($params, $driver, $config, $eventManager);\n    }\n\n    /**\n     * Get active shard id.\n     *\n     * @return int\n     */\n    public function getActiveShardId()\n    {\n        return $this->activeShardId;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getParams()\n    {\n        return $this->activeShardId ? $this->connectionParameters[$this->activeShardId] : $this->connectionParameters[0];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getHost()\n    {\n        $params = $this->getParams();\n\n        return $params['host'] ?? parent::getHost();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getPort()\n    {\n        $params = $this->getParams();\n\n        return $params['port'] ?? parent::getPort();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getUsername()\n    {\n        $params = $this->getParams();\n\n        return $params['user'] ?? parent::getUsername();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getPassword()\n    {\n        $params = $this->getParams();\n\n        return $params['password'] ?? parent::getPassword();\n    }\n\n    /**\n     * Connects to a given shard.\n     *\n     * @param mixed $shardId\n     *\n     * @return bool\n     *\n     * @throws ShardingException\n     */\n    public function connect($shardId = null)\n    {\n        if ($shardId === null && $this->_conn) {\n            return false;\n        }\n\n        if ($shardId !== null && $shardId === $this->activeShardId) {\n            return false;\n        }\n\n        if ($this->getTransactionNestingLevel() > 0) {\n            throw new ShardingException('Cannot switch shard when transaction is active.');\n        }\n\n        $this->activeShardId = (int) $shardId;\n\n        if (isset($this->activeConnections[$this->activeShardId])) {\n            $this->_conn = $this->activeConnections[$this->activeShardId];\n\n            return false;\n        }\n\n        $this->_conn = $this->activeConnections[$this->activeShardId] = $this->connectTo($this->activeShardId);\n\n        if ($this->_eventManager->hasListeners(Events::postConnect)) {\n            $eventArgs = new ConnectionEventArgs($this);\n            $this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);\n        }\n\n        return true;\n    }\n\n    /**\n     * Connects to a specific connection.\n     *\n     * @param string $shardId\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\Connection\n     */\n    protected function connectTo($shardId)\n    {\n        $params = $this->getParams();\n\n        $driverOptions = $params['driverOptions'] ?? [];\n\n        $connectionParams = $this->connectionParameters[$shardId];\n\n        $user     = $connectionParams['user'] ?? null;\n        $password = $connectionParams['password'] ?? null;\n\n        return $this->_driver->connect($connectionParams, $user, $password, $driverOptions);\n    }\n\n    /**\n     * @param string|null $shardId\n     *\n     * @return bool\n     */\n    public function isConnected($shardId = null)\n    {\n        if ($shardId === null) {\n            return $this->_conn !== null;\n        }\n\n        return isset($this->activeConnections[$shardId]);\n    }\n\n    /**\n     * @return void\n     */\n    public function close()\n    {\n        $this->_conn             = null;\n        $this->activeConnections = [];\n        $this->activeShardId     = null;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding;\n\nuse Doctrine\\DBAL\\Sharding\\ShardChoser\\ShardChoser;\nuse RuntimeException;\n\n/**\n * Shard Manager for the Connection Pooling Shard Strategy\n */\nclass PoolingShardManager implements ShardManager\n{\n    /** @var PoolingShardConnection */\n    private $conn;\n\n    /** @var ShardChoser */\n    private $choser;\n\n    /** @var string|null */\n    private $currentDistributionValue;\n\n    public function __construct(PoolingShardConnection $conn)\n    {\n        $params       = $conn->getParams();\n        $this->conn   = $conn;\n        $this->choser = $params['shardChoser'];\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function selectGlobal()\n    {\n        $this->conn->connect(0);\n        $this->currentDistributionValue = null;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function selectShard($distributionValue)\n    {\n        $shardId = $this->choser->pickShard($distributionValue, $this->conn);\n        $this->conn->connect($shardId);\n        $this->currentDistributionValue = $distributionValue;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCurrentDistributionValue()\n    {\n        return $this->currentDistributionValue;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getShards()\n    {\n        $params = $this->conn->getParams();\n        $shards = [];\n\n        foreach ($params['shards'] as $shard) {\n            $shards[] = ['id' => $shard['id']];\n        }\n\n        return $shards;\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @throws RuntimeException\n     */\n    public function queryAll($sql, array $params, array $types)\n    {\n        $shards = $this->getShards();\n        if (! $shards) {\n            throw new RuntimeException('No shards found.');\n        }\n\n        $result          = [];\n        $oldDistribution = $this->getCurrentDistributionValue();\n\n        foreach ($shards as $shard) {\n            $this->conn->connect($shard['id']);\n            foreach ($this->conn->fetchAll($sql, $params, $types) as $row) {\n                $result[] = $row;\n            }\n        }\n\n        if ($oldDistribution === null) {\n            $this->selectGlobal();\n        } else {\n            $this->selectShard($oldDistribution);\n        }\n\n        return $result;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureFederationsSynchronizer.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding\\SQLAzure;\n\nuse Closure;\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Synchronizer\\AbstractSchemaSynchronizer;\nuse Doctrine\\DBAL\\Schema\\Synchronizer\\SchemaSynchronizer;\nuse Doctrine\\DBAL\\Schema\\Synchronizer\\SingleDatabaseSynchronizer;\nuse Doctrine\\DBAL\\Types\\Type;\nuse RuntimeException;\nuse function array_merge;\n\n/**\n * SQL Azure Schema Synchronizer.\n *\n * Will iterate over all shards when performing schema operations. This is done\n * by partitioning the passed schema into subschemas for the federation and the\n * global database and then applying the operations step by step using the\n * {@see \\Doctrine\\DBAL\\Schema\\Synchronizer\\SingleDatabaseSynchronizer}.\n */\nclass SQLAzureFederationsSynchronizer extends AbstractSchemaSynchronizer\n{\n    public const FEDERATION_TABLE_FEDERATED   = 'azure.federated';\n    public const FEDERATION_DISTRIBUTION_NAME = 'azure.federatedOnDistributionName';\n\n    /** @var SQLAzureShardManager */\n    private $shardManager;\n\n    /** @var SchemaSynchronizer */\n    private $synchronizer;\n\n    public function __construct(Connection $conn, SQLAzureShardManager $shardManager, ?SchemaSynchronizer $sync = null)\n    {\n        parent::__construct($conn);\n        $this->shardManager = $shardManager;\n        $this->synchronizer = $sync ?: new SingleDatabaseSynchronizer($conn);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCreateSchema(Schema $createSchema)\n    {\n        $sql = [];\n\n        [$global, $federation] = $this->partitionSchema($createSchema);\n\n        $globalSql = $this->synchronizer->getCreateSchema($global);\n        if ($globalSql) {\n            $sql[] = \"-- Create Root Federation\\n\" .\n                     'USE FEDERATION ROOT WITH RESET;';\n            $sql   = array_merge($sql, $globalSql);\n        }\n\n        $federationSql = $this->synchronizer->getCreateSchema($federation);\n\n        if ($federationSql) {\n            $defaultValue = $this->getFederationTypeDefaultValue();\n\n            $sql[] = $this->getCreateFederationStatement();\n            $sql[] = 'USE FEDERATION ' . $this->shardManager->getFederationName() . ' (' . $this->shardManager->getDistributionKey() . ' = ' . $defaultValue . ') WITH RESET, FILTERING = OFF;';\n            $sql   = array_merge($sql, $federationSql);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getUpdateSchema(Schema $toSchema, $noDrops = false)\n    {\n        return $this->work($toSchema, static function ($synchronizer, $schema) use ($noDrops) {\n            return $synchronizer->getUpdateSchema($schema, $noDrops);\n        });\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropSchema(Schema $dropSchema)\n    {\n        return $this->work($dropSchema, static function ($synchronizer, $schema) {\n            return $synchronizer->getDropSchema($schema);\n        });\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createSchema(Schema $createSchema)\n    {\n        $this->processSql($this->getCreateSchema($createSchema));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function updateSchema(Schema $toSchema, $noDrops = false)\n    {\n        $this->processSql($this->getUpdateSchema($toSchema, $noDrops));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropSchema(Schema $dropSchema)\n    {\n        $this->processSqlSafely($this->getDropSchema($dropSchema));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDropAllSchema()\n    {\n        $this->shardManager->selectGlobal();\n        $globalSql = $this->synchronizer->getDropAllSchema();\n\n        if ($globalSql) {\n            $sql[] = \"-- Work on Root Federation\\nUSE FEDERATION ROOT WITH RESET;\";\n            $sql   = array_merge($sql, $globalSql);\n        }\n\n        $shards = $this->shardManager->getShards();\n        foreach ($shards as $shard) {\n            $this->shardManager->selectShard($shard['rangeLow']);\n\n            $federationSql = $this->synchronizer->getDropAllSchema();\n            if (! $federationSql) {\n                continue;\n            }\n\n            $sql[] = '-- Work on Federation ID ' . $shard['id'] . \"\\n\" .\n                     'USE FEDERATION ' . $this->shardManager->getFederationName() . ' (' . $this->shardManager->getDistributionKey() . ' = ' . $shard['rangeLow'] . ') WITH RESET, FILTERING = OFF;';\n            $sql   = array_merge($sql, $federationSql);\n        }\n\n        $sql[] = 'USE FEDERATION ROOT WITH RESET;';\n        $sql[] = 'DROP FEDERATION ' . $this->shardManager->getFederationName();\n\n        return $sql;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function dropAllSchema()\n    {\n        $this->processSqlSafely($this->getDropAllSchema());\n    }\n\n    /**\n     * @return Schema[]\n     */\n    private function partitionSchema(Schema $schema)\n    {\n        return [\n            $this->extractSchemaFederation($schema, false),\n            $this->extractSchemaFederation($schema, true),\n        ];\n    }\n\n    /**\n     * @param bool $isFederation\n     *\n     * @return Schema\n     *\n     * @throws RuntimeException\n     */\n    private function extractSchemaFederation(Schema $schema, $isFederation)\n    {\n        $partitionedSchema = clone $schema;\n\n        foreach ($partitionedSchema->getTables() as $table) {\n            if ($isFederation) {\n                $table->addOption(self::FEDERATION_DISTRIBUTION_NAME, $this->shardManager->getDistributionKey());\n            }\n\n            if ($table->hasOption(self::FEDERATION_TABLE_FEDERATED) !== $isFederation) {\n                $partitionedSchema->dropTable($table->getName());\n            } else {\n                foreach ($table->getForeignKeys() as $fk) {\n                    $foreignTable = $schema->getTable($fk->getForeignTableName());\n                    if ($foreignTable->hasOption(self::FEDERATION_TABLE_FEDERATED) !== $isFederation) {\n                        throw new RuntimeException('Cannot have foreign key between global/federation.');\n                    }\n                }\n            }\n        }\n\n        return $partitionedSchema;\n    }\n\n    /**\n     * Work on the Global/Federation based on currently existing shards and\n     * perform the given operation on the underlying schema synchronizer given\n     * the different partitioned schema instances.\n     *\n     * @return string[]\n     */\n    private function work(Schema $schema, Closure $operation)\n    {\n        [$global, $federation] = $this->partitionSchema($schema);\n        $sql                   = [];\n\n        $this->shardManager->selectGlobal();\n        $globalSql = $operation($this->synchronizer, $global);\n\n        if ($globalSql) {\n            $sql[] = \"-- Work on Root Federation\\nUSE FEDERATION ROOT WITH RESET;\";\n            $sql   = array_merge($sql, $globalSql);\n        }\n\n        $shards = $this->shardManager->getShards();\n\n        foreach ($shards as $shard) {\n            $this->shardManager->selectShard($shard['rangeLow']);\n\n            $federationSql = $operation($this->synchronizer, $federation);\n            if (! $federationSql) {\n                continue;\n            }\n\n            $sql[] = '-- Work on Federation ID ' . $shard['id'] . \"\\n\" .\n                     'USE FEDERATION ' . $this->shardManager->getFederationName() . ' (' . $this->shardManager->getDistributionKey() . ' = ' . $shard['rangeLow'] . ') WITH RESET, FILTERING = OFF;';\n            $sql   = array_merge($sql, $federationSql);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * @return string\n     */\n    private function getFederationTypeDefaultValue()\n    {\n        $federationType = Type::getType($this->shardManager->getDistributionType());\n\n        switch ($federationType->getName()) {\n            case Type::GUID:\n                $defaultValue = '00000000-0000-0000-0000-000000000000';\n                break;\n            case Type::INTEGER:\n            case Type::SMALLINT:\n            case Type::BIGINT:\n                $defaultValue = '0';\n                break;\n            default:\n                $defaultValue = '';\n                break;\n        }\n\n        return $defaultValue;\n    }\n\n    /**\n     * @return string\n     */\n    private function getCreateFederationStatement()\n    {\n        $federationType    = Type::getType($this->shardManager->getDistributionType());\n        $federationTypeSql = $federationType->getSQLDeclaration([], $this->conn->getDatabasePlatform());\n\n        return \"--Create Federation\\n\" .\n               'CREATE FEDERATION ' . $this->shardManager->getFederationName() . ' (' . $this->shardManager->getDistributionKey() . ' ' . $federationTypeSql . '  RANGE)';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureShardManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding\\SQLAzure;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Sharding\\ShardingException;\nuse Doctrine\\DBAL\\Sharding\\ShardManager;\nuse Doctrine\\DBAL\\Types\\Type;\nuse RuntimeException;\nuse function is_bool;\nuse function is_scalar;\nuse function sprintf;\n\n/**\n * Sharding using the SQL Azure Federations support.\n */\nclass SQLAzureShardManager implements ShardManager\n{\n    /** @var string */\n    private $federationName;\n\n    /** @var bool */\n    private $filteringEnabled;\n\n    /** @var string */\n    private $distributionKey;\n\n    /** @var string */\n    private $distributionType;\n\n    /** @var Connection */\n    private $conn;\n\n    /** @var string|null */\n    private $currentDistributionValue;\n\n    /**\n     * @throws ShardingException\n     */\n    public function __construct(Connection $conn)\n    {\n        $this->conn = $conn;\n        $params     = $conn->getParams();\n\n        if (! isset($params['sharding']['federationName'])) {\n            throw ShardingException::missingDefaultFederationName();\n        }\n\n        if (! isset($params['sharding']['distributionKey'])) {\n            throw ShardingException::missingDefaultDistributionKey();\n        }\n\n        if (! isset($params['sharding']['distributionType'])) {\n            throw ShardingException::missingDistributionType();\n        }\n\n        $this->federationName   = $params['sharding']['federationName'];\n        $this->distributionKey  = $params['sharding']['distributionKey'];\n        $this->distributionType = $params['sharding']['distributionType'];\n        $this->filteringEnabled = (bool) ($params['sharding']['filteringEnabled'] ?? false);\n    }\n\n    /**\n     * Gets the name of the federation.\n     *\n     * @return string\n     */\n    public function getFederationName()\n    {\n        return $this->federationName;\n    }\n\n    /**\n     * Gets the distribution key.\n     *\n     * @return string\n     */\n    public function getDistributionKey()\n    {\n        return $this->distributionKey;\n    }\n\n    /**\n     * Gets the Doctrine Type name used for the distribution.\n     *\n     * @return string\n     */\n    public function getDistributionType()\n    {\n        return $this->distributionType;\n    }\n\n    /**\n     * Sets Enabled/Disable filtering on the fly.\n     *\n     * @param bool $flag\n     *\n     * @return void\n     */\n    public function setFilteringEnabled($flag)\n    {\n        $this->filteringEnabled = (bool) $flag;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function selectGlobal()\n    {\n        if ($this->conn->isTransactionActive()) {\n            throw ShardingException::activeTransaction();\n        }\n\n        $sql = 'USE FEDERATION ROOT WITH RESET';\n        $this->conn->exec($sql);\n        $this->currentDistributionValue = null;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function selectShard($distributionValue)\n    {\n        if ($this->conn->isTransactionActive()) {\n            throw ShardingException::activeTransaction();\n        }\n\n        if ($distributionValue === null || is_bool($distributionValue) || ! is_scalar($distributionValue)) {\n            throw ShardingException::noShardDistributionValue();\n        }\n\n        $platform = $this->conn->getDatabasePlatform();\n        $sql      = sprintf(\n            'USE FEDERATION %s (%s = %s) WITH RESET, FILTERING = %s;',\n            $platform->quoteIdentifier($this->federationName),\n            $platform->quoteIdentifier($this->distributionKey),\n            $this->conn->quote($distributionValue),\n            ($this->filteringEnabled ? 'ON' : 'OFF')\n        );\n\n        $this->conn->exec($sql);\n        $this->currentDistributionValue = $distributionValue;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getCurrentDistributionValue()\n    {\n        return $this->currentDistributionValue;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function getShards()\n    {\n        $sql = 'SELECT member_id as id,\n                      distribution_name as distribution_key,\n                      CAST(range_low AS CHAR) AS rangeLow,\n                      CAST(range_high AS CHAR) AS rangeHigh\n                      FROM sys.federation_member_distributions d\n                      INNER JOIN sys.federations f ON f.federation_id = d.federation_id\n                      WHERE f.name = ' . $this->conn->quote($this->federationName);\n\n        return $this->conn->fetchAll($sql);\n    }\n\n     /**\n      * {@inheritDoc}\n      */\n    public function queryAll($sql, array $params = [], array $types = [])\n    {\n        $shards = $this->getShards();\n        if (! $shards) {\n            throw new RuntimeException('No shards found for ' . $this->federationName);\n        }\n\n        $result          = [];\n        $oldDistribution = $this->getCurrentDistributionValue();\n\n        foreach ($shards as $shard) {\n            $this->selectShard($shard['rangeLow']);\n            foreach ($this->conn->fetchAll($sql, $params, $types) as $row) {\n                $result[] = $row;\n            }\n        }\n\n        if ($oldDistribution === null) {\n            $this->selectGlobal();\n        } else {\n            $this->selectShard($oldDistribution);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Splits Federation at a given distribution value.\n     *\n     * @param mixed $splitDistributionValue\n     *\n     * @return void\n     */\n    public function splitFederation($splitDistributionValue)\n    {\n        $type = Type::getType($this->distributionType);\n\n        $sql = 'ALTER FEDERATION ' . $this->getFederationName() . ' ' .\n               'SPLIT AT (' . $this->getDistributionKey() . ' = ' .\n               $this->conn->quote($splitDistributionValue, $type->getBindingType()) . ')';\n        $this->conn->exec($sql);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/Schema/MultiTenantVisitor.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding\\SQLAzure\\Schema;\n\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\ForeignKeyConstraint;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Doctrine\\DBAL\\Schema\\Schema;\nuse Doctrine\\DBAL\\Schema\\Sequence;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Doctrine\\DBAL\\Schema\\Visitor\\Visitor;\nuse RuntimeException;\nuse function in_array;\n\n/**\n * Converts a single tenant schema into a multi-tenant schema for SQL Azure\n * Federations under the following assumptions:\n *\n * - Every table is part of the multi-tenant application, only explicitly\n *   excluded tables are non-federated. The behavior of the tables being in\n *   global or federated database is undefined. It depends on you selecting a\n *   federation before DDL statements or not.\n * - Every Primary key of a federated table is extended by another column\n *   'tenant_id' with a default value of the SQLAzure function\n *   `federation_filtering_value('tenant_id')`.\n * - You always have to work with `filtering=On` when using federations with this\n *   multi-tenant approach.\n * - Primary keys are either using globally unique ids (GUID, Table Generator)\n *   or you explicitly add the tenant_id in every UPDATE or DELETE statement\n *   (otherwise they will affect the same-id rows from other tenants as well).\n *   SQLAzure throws errors when you try to create IDENTIY columns on federated\n *   tables.\n */\nclass MultiTenantVisitor implements Visitor\n{\n    /** @var string[] */\n    private $excludedTables = [];\n\n    /** @var string */\n    private $tenantColumnName;\n\n    /** @var string */\n    private $tenantColumnType = 'integer';\n\n    /**\n     * Name of the federation distribution, defaulting to the tenantColumnName\n     * if not specified.\n     *\n     * @var string\n     */\n    private $distributionName;\n\n    /**\n     * @param string[]    $excludedTables\n     * @param string      $tenantColumnName\n     * @param string|null $distributionName\n     */\n    public function __construct(array $excludedTables = [], $tenantColumnName = 'tenant_id', $distributionName = null)\n    {\n        $this->excludedTables   = $excludedTables;\n        $this->tenantColumnName = $tenantColumnName;\n        $this->distributionName = $distributionName ?: $tenantColumnName;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptTable(Table $table)\n    {\n        if (in_array($table->getName(), $this->excludedTables)) {\n            return;\n        }\n\n        $table->addColumn($this->tenantColumnName, $this->tenantColumnType, [\n            'default' => \"federation_filtering_value('\" . $this->distributionName . \"')\",\n        ]);\n\n        $clusteredIndex = $this->getClusteredIndex($table);\n\n        $indexColumns   = $clusteredIndex->getColumns();\n        $indexColumns[] = $this->tenantColumnName;\n\n        if ($clusteredIndex->isPrimary()) {\n            $table->dropPrimaryKey();\n            $table->setPrimaryKey($indexColumns);\n        } else {\n            $table->dropIndex($clusteredIndex->getName());\n            $table->addIndex($indexColumns, $clusteredIndex->getName());\n            $table->getIndex($clusteredIndex->getName())->addFlag('clustered');\n        }\n    }\n\n    /**\n     * @param Table $table\n     *\n     * @return Index\n     *\n     * @throws RuntimeException\n     */\n    private function getClusteredIndex($table)\n    {\n        foreach ($table->getIndexes() as $index) {\n            if ($index->isPrimary() && ! $index->hasFlag('nonclustered')) {\n                return $index;\n            }\n\n            if ($index->hasFlag('clustered')) {\n                return $index;\n            }\n        }\n        throw new RuntimeException('No clustered index found on table ' . $table->getName());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSchema(Schema $schema)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptColumn(Table $table, Column $column)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptForeignKey(Table $localTable, ForeignKeyConstraint $fkConstraint)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptIndex(Table $table, Index $index)\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function acceptSequence(Sequence $sequence)\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/MultiTenantShardChoser.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding\\ShardChoser;\n\nuse Doctrine\\DBAL\\Sharding\\PoolingShardConnection;\n\n/**\n * The MultiTenant Shard choser assumes that the distribution value directly\n * maps to the shard id.\n */\nclass MultiTenantShardChoser implements ShardChoser\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function pickShard($distributionValue, PoolingShardConnection $conn)\n    {\n        return $distributionValue;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/ShardChoser.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding\\ShardChoser;\n\nuse Doctrine\\DBAL\\Sharding\\PoolingShardConnection;\n\n/**\n * Given a distribution value this shard-choser strategy will pick the shard to\n * connect to for retrieving rows with the distribution value.\n */\ninterface ShardChoser\n{\n    /**\n     * Picks a shard for the given distribution value.\n     *\n     * @param string|int $distributionValue\n     *\n     * @return string|int\n     */\n    public function pickShard($distributionValue, PoolingShardConnection $conn);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardManager.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding;\n\n/**\n * Sharding Manager gives access to APIs to implementing sharding on top of\n * Doctrine\\DBAL\\Connection instances.\n *\n * For simplicity and developer ease-of-use (and understanding) the sharding\n * API only covers single shard queries, no fan-out support. It is primarily\n * suited for multi-tenant applications.\n *\n * The assumption about sharding here\n * is that a distribution value can be found that gives access to all the\n * necessary data for all use-cases. Switching between shards should be done with\n * caution, especially if lazy loading is implemented. Any query is always\n * executed against the last shard that was selected. If a query is created for\n * a shard Y but then a shard X is selected when its actually executed you\n * will hit the wrong shard.\n */\ninterface ShardManager\n{\n    /**\n     * Selects global database with global data.\n     *\n     * This is the default database that is connected when no shard is\n     * selected.\n     *\n     * @return void\n     */\n    public function selectGlobal();\n\n    /**\n     * Selects the shard against which the queries after this statement will be issued.\n     *\n     * @param string $distributionValue\n     *\n     * @return void\n     *\n     * @throws ShardingException If no value is passed as shard identifier.\n     */\n    public function selectShard($distributionValue);\n\n    /**\n     * Gets the distribution value currently used for sharding.\n     *\n     * @return string|null\n     */\n    public function getCurrentDistributionValue();\n\n    /**\n     * Gets information about the amount of shards and other details.\n     *\n     * Format is implementation specific, each shard is one element and has an\n     * 'id' attribute at least.\n     *\n     * @return mixed[][]\n     */\n    public function getShards();\n\n    /**\n     * Queries all shards in undefined order and return the results appended to\n     * each other. Restore the previous distribution value after execution.\n     *\n     * Using {@link \\Doctrine\\DBAL\\Connection::fetchAll} to retrieve rows internally.\n     *\n     * @param string         $sql\n     * @param mixed[]        $params\n     * @param int[]|string[] $types\n     *\n     * @return mixed[]\n     */\n    public function queryAll($sql, array $params, array $types);\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardingException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Sharding;\n\nuse Doctrine\\DBAL\\DBALException;\n\n/**\n * Sharding related Exceptions\n */\nclass ShardingException extends DBALException\n{\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function notImplemented()\n    {\n        return new self('This functionality is not implemented with this sharding provider.', 1331557937);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function missingDefaultFederationName()\n    {\n        return new self('SQLAzure requires a federation name to be set during sharding configuration.', 1332141280);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function missingDefaultDistributionKey()\n    {\n        return new self('SQLAzure requires a distribution key to be set during sharding configuration.', 1332141329);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function activeTransaction()\n    {\n        return new self('Cannot switch shard during an active transaction.', 1332141766);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function noShardDistributionValue()\n    {\n        return new self('You have to specify a string or integer as shard distribution value.', 1332142103);\n    }\n\n    /**\n     * @return \\Doctrine\\DBAL\\Sharding\\ShardingException\n     */\n    public static function missingDistributionType()\n    {\n        return new self(\"You have to specify a sharding distribution type such as 'integer', 'string', 'guid'.\");\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Statement.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\DBAL\\Driver\\Statement as DriverStatement;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Doctrine\\DBAL\\Types\\Type;\nuse IteratorAggregate;\nuse PDO;\nuse Throwable;\nuse function is_array;\nuse function is_string;\n\n/**\n * A thin wrapper around a Doctrine\\DBAL\\Driver\\Statement that adds support\n * for logging, DBAL mapping types, etc.\n */\nclass Statement implements IteratorAggregate, DriverStatement\n{\n    /**\n     * The SQL statement.\n     *\n     * @var string\n     */\n    protected $sql;\n\n    /**\n     * The bound parameters.\n     *\n     * @var mixed[]\n     */\n    protected $params = [];\n\n    /**\n     * The parameter types.\n     *\n     * @var int[]|string[]\n     */\n    protected $types = [];\n\n    /**\n     * The underlying driver statement.\n     *\n     * @var \\Doctrine\\DBAL\\Driver\\Statement\n     */\n    protected $stmt;\n\n    /**\n     * The underlying database platform.\n     *\n     * @var AbstractPlatform\n     */\n    protected $platform;\n\n    /**\n     * The connection this statement is bound to and executed on.\n     *\n     * @var Connection\n     */\n    protected $conn;\n\n    /**\n     * Creates a new <tt>Statement</tt> for the given SQL and <tt>Connection</tt>.\n     *\n     * @param string     $sql  The SQL of the statement.\n     * @param Connection $conn The connection on which the statement should be executed.\n     */\n    public function __construct($sql, Connection $conn)\n    {\n        $this->sql      = $sql;\n        $this->stmt     = $conn->getWrappedConnection()->prepare($sql);\n        $this->conn     = $conn;\n        $this->platform = $conn->getDatabasePlatform();\n    }\n\n    /**\n     * Binds a parameter value to the statement.\n     *\n     * The value can optionally be bound with a PDO binding type or a DBAL mapping type.\n     * If bound with a DBAL mapping type, the binding type is derived from the mapping\n     * type and the value undergoes the conversion routines of the mapping type before\n     * being bound.\n     *\n     * @param string|int $name  The name or position of the parameter.\n     * @param mixed      $value The value of the parameter.\n     * @param mixed      $type  Either a PDO binding type or a DBAL mapping type name or instance.\n     *\n     * @return bool TRUE on success, FALSE on failure.\n     */\n    public function bindValue($name, $value, $type = ParameterType::STRING)\n    {\n        $this->params[$name] = $value;\n        $this->types[$name]  = $type;\n        if ($type !== null) {\n            if (is_string($type)) {\n                $type = Type::getType($type);\n            }\n            if ($type instanceof Type) {\n                $value       = $type->convertToDatabaseValue($value, $this->platform);\n                $bindingType = $type->getBindingType();\n            } else {\n                $bindingType = $type;\n            }\n\n            return $this->stmt->bindValue($name, $value, $bindingType);\n        }\n\n        return $this->stmt->bindValue($name, $value);\n    }\n\n    /**\n     * Binds a parameter to a value by reference.\n     *\n     * Binding a parameter by reference does not support DBAL mapping types.\n     *\n     * @param string|int $name   The name or position of the parameter.\n     * @param mixed      $var    The reference to the variable to bind.\n     * @param int        $type   The PDO binding type.\n     * @param int|null   $length Must be specified when using an OUT bind\n     *                           so that PHP allocates enough memory to hold the returned value.\n     *\n     * @return bool TRUE on success, FALSE on failure.\n     */\n    public function bindParam($name, &$var, $type = ParameterType::STRING, $length = null)\n    {\n        $this->params[$name] = $var;\n        $this->types[$name]  = $type;\n\n        return $this->stmt->bindParam($name, $var, $type, $length);\n    }\n\n    /**\n     * Executes the statement with the currently bound parameters.\n     *\n     * @param mixed[]|null $params\n     *\n     * @return bool TRUE on success, FALSE on failure.\n     *\n     * @throws DBALException\n     */\n    public function execute($params = null)\n    {\n        if (is_array($params)) {\n            $this->params = $params;\n        }\n\n        $logger = $this->conn->getConfiguration()->getSQLLogger();\n        if ($logger) {\n            $logger->startQuery($this->sql, $this->params, $this->types);\n        }\n\n        try {\n            $stmt = $this->stmt->execute($params);\n        } catch (Throwable $ex) {\n            if ($logger) {\n                $logger->stopQuery();\n            }\n            throw DBALException::driverExceptionDuringQuery(\n                $this->conn->getDriver(),\n                $ex,\n                $this->sql,\n                $this->conn->resolveParams($this->params, $this->types)\n            );\n        }\n\n        if ($logger) {\n            $logger->stopQuery();\n        }\n        $this->params = [];\n        $this->types  = [];\n\n        return $stmt;\n    }\n\n    /**\n     * Closes the cursor, freeing the database resources used by this statement.\n     *\n     * @return bool TRUE on success, FALSE on failure.\n     */\n    public function closeCursor()\n    {\n        return $this->stmt->closeCursor();\n    }\n\n    /**\n     * Returns the number of columns in the result set.\n     *\n     * @return int\n     */\n    public function columnCount()\n    {\n        return $this->stmt->columnCount();\n    }\n\n    /**\n     * Fetches the SQLSTATE associated with the last operation on the statement.\n     *\n     * @return string|int|bool\n     */\n    public function errorCode()\n    {\n        return $this->stmt->errorCode();\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function errorInfo()\n    {\n        return $this->stmt->errorInfo();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)\n    {\n        if ($arg2 === null) {\n            return $this->stmt->setFetchMode($fetchMode);\n        } elseif ($arg3 === null) {\n            return $this->stmt->setFetchMode($fetchMode, $arg2);\n        }\n\n        return $this->stmt->setFetchMode($fetchMode, $arg2, $arg3);\n    }\n\n    /**\n     * Required by interface IteratorAggregate.\n     *\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return $this->stmt;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)\n    {\n        return $this->stmt->fetch($fetchMode);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)\n    {\n        if ($fetchArgument) {\n            return $this->stmt->fetchAll($fetchMode, $fetchArgument);\n        }\n\n        return $this->stmt->fetchAll($fetchMode);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function fetchColumn($columnIndex = 0)\n    {\n        return $this->stmt->fetchColumn($columnIndex);\n    }\n\n    /**\n     * Returns the number of rows affected by the last execution of this statement.\n     *\n     * @return int The number of affected rows.\n     */\n    public function rowCount()\n    {\n        return $this->stmt->rowCount();\n    }\n\n    /**\n     * Gets the wrapped driver statement.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\Statement\n     */\n    public function getWrappedStatement()\n    {\n        return $this->stmt;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools\\Console\\Command;\n\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse Doctrine\\DBAL\\Driver\\PDOStatement;\nuse InvalidArgumentException;\nuse PDOException;\nuse RuntimeException;\nuse Symfony\\Component\\Console\\Command\\Command;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse const PHP_EOL;\nuse function assert;\nuse function file_exists;\nuse function file_get_contents;\nuse function is_readable;\nuse function realpath;\nuse function sprintf;\n\n/**\n * Task for executing arbitrary SQL that can come from a file or directly from\n * the command line.\n *\n * @deprecated Use a database client application instead\n */\nclass ImportCommand extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function configure()\n    {\n        $this\n        ->setName('dbal:import')\n        ->setDescription('Import SQL file(s) directly to Database.')\n        ->setDefinition([new InputArgument(\n            'file',\n            InputArgument::REQUIRED | InputArgument::IS_ARRAY,\n            'File path(s) of SQL to be executed.'\n        ),\n        ])\n        ->setHelp(<<<EOT\nImport SQL file(s) directly to Database.\nEOT\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function execute(InputInterface $input, OutputInterface $output)\n    {\n        $conn = $this->getHelper('db')->getConnection();\n\n        $fileNames = $input->getArgument('file');\n\n        if ($fileNames === null) {\n            return null;\n        }\n\n        foreach ((array) $fileNames as $fileName) {\n            $filePath = realpath($fileName);\n\n            // Phar compatibility.\n            if ($filePath === false) {\n                $filePath = $fileName;\n            }\n\n            if (! file_exists($filePath)) {\n                throw new InvalidArgumentException(\n                    sprintf(\"SQL file '<info>%s</info>' does not exist.\", $filePath)\n                );\n            } elseif (! is_readable($filePath)) {\n                throw new InvalidArgumentException(\n                    sprintf(\"SQL file '<info>%s</info>' does not have read permissions.\", $filePath)\n                );\n            }\n\n            $output->write(sprintf(\"Processing file '<info>%s</info>'... \", $filePath));\n            $sql = file_get_contents($filePath);\n\n            if ($conn instanceof PDOConnection) {\n                // PDO Drivers\n                try {\n                    $lines = 0;\n\n                    $stmt = $conn->prepare($sql);\n                    assert($stmt instanceof PDOStatement);\n\n                    $stmt->execute();\n\n                    do {\n                        // Required due to \"MySQL has gone away!\" issue\n                        $stmt->fetch();\n                        $stmt->closeCursor();\n\n                        $lines++;\n                    } while ($stmt->nextRowset());\n\n                    $output->write(sprintf('%d statements executed!', $lines) . PHP_EOL);\n                } catch (PDOException $e) {\n                    $output->write('error!' . PHP_EOL);\n\n                    throw new RuntimeException($e->getMessage(), $e->getCode(), $e);\n                }\n            } else {\n                // Non-PDO Drivers (ie. OCI8 driver)\n                $stmt = $conn->prepare($sql);\n                $rs   = $stmt->execute();\n\n                if (! $rs) {\n                    $error = $stmt->errorInfo();\n\n                    $output->write('error!' . PHP_EOL);\n\n                    throw new RuntimeException($error[2], $error[0]);\n                }\n\n                $output->writeln('OK!' . PHP_EOL);\n\n                $stmt->closeCursor();\n            }\n        }\n\n        return null;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools\\Console\\Command;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\DB2Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\MySQL57Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\MySQL80Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\MySQLKeywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\OracleKeywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL91Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL92Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQLKeywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\ReservedKeywordsValidator;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere11Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere12Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere16Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhereKeywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLiteKeywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2005Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2008Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2012Keywords;\nuse Doctrine\\DBAL\\Platforms\\Keywords\\SQLServerKeywords;\nuse InvalidArgumentException;\nuse Symfony\\Component\\Console\\Command\\Command;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse function array_keys;\nuse function count;\nuse function implode;\n\nclass ReservedWordsCommand extends Command\n{\n    /** @var string[] */\n    private $keywordListClasses = [\n        'mysql'         => MySQLKeywords::class,\n        'mysql57'       => MySQL57Keywords::class,\n        'mysql80'       => MySQL80Keywords::class,\n        'sqlserver'     => SQLServerKeywords::class,\n        'sqlserver2005' => SQLServer2005Keywords::class,\n        'sqlserver2008' => SQLServer2008Keywords::class,\n        'sqlserver2012' => SQLServer2012Keywords::class,\n        'sqlite'        => SQLiteKeywords::class,\n        'pgsql'         => PostgreSQLKeywords::class,\n        'pgsql91'       => PostgreSQL91Keywords::class,\n        'pgsql92'       => PostgreSQL92Keywords::class,\n        'oracle'        => OracleKeywords::class,\n        'db2'           => DB2Keywords::class,\n        'sqlanywhere'   => SQLAnywhereKeywords::class,\n        'sqlanywhere11' => SQLAnywhere11Keywords::class,\n        'sqlanywhere12' => SQLAnywhere12Keywords::class,\n        'sqlanywhere16' => SQLAnywhere16Keywords::class,\n    ];\n\n    /**\n     * If you want to add or replace a keywords list use this command.\n     *\n     * @param string $name\n     * @param string $class\n     *\n     * @return void\n     */\n    public function setKeywordListClass($name, $class)\n    {\n        $this->keywordListClasses[$name] = $class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function configure()\n    {\n        $this\n        ->setName('dbal:reserved-words')\n        ->setDescription('Checks if the current database contains identifiers that are reserved.')\n        ->setDefinition([new InputOption(\n            'list',\n            'l',\n            InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY,\n            'Keyword-List name.'\n        ),\n        ])\n        ->setHelp(<<<EOT\nChecks if the current database contains tables and columns\nwith names that are identifiers in this dialect or in other SQL dialects.\n\nBy default SQLite, MySQL, PostgreSQL, Microsoft SQL Server, Oracle\nand SQL Anywhere keywords are checked:\n\n    <info>%command.full_name%</info>\n\nIf you want to check against specific dialects you can\npass them to the command:\n\n    <info>%command.full_name% -l mysql -l pgsql</info>\n\nThe following keyword lists are currently shipped with Doctrine:\n\n    * mysql\n    * mysql57\n    * mysql80\n    * pgsql\n    * pgsql92\n    * sqlite\n    * oracle\n    * sqlserver\n    * sqlserver2005\n    * sqlserver2008\n    * sqlserver2012\n    * sqlanywhere\n    * sqlanywhere11\n    * sqlanywhere12\n    * sqlanywhere16\n    * db2 (Not checked by default)\nEOT\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function execute(InputInterface $input, OutputInterface $output)\n    {\n        /** @var Connection $conn */\n        $conn = $this->getHelper('db')->getConnection();\n\n        $keywordLists = (array) $input->getOption('list');\n        if (! $keywordLists) {\n            $keywordLists = [\n                'mysql',\n                'mysql57',\n                'mysql80',\n                'pgsql',\n                'pgsql92',\n                'sqlite',\n                'oracle',\n                'sqlserver',\n                'sqlserver2005',\n                'sqlserver2008',\n                'sqlserver2012',\n                'sqlanywhere',\n                'sqlanywhere11',\n                'sqlanywhere12',\n                'sqlanywhere16',\n            ];\n        }\n\n        $keywords = [];\n        foreach ($keywordLists as $keywordList) {\n            if (! isset($this->keywordListClasses[$keywordList])) {\n                throw new InvalidArgumentException(\n                    \"There exists no keyword list with name '\" . $keywordList . \"'. \" .\n                    'Known lists: ' . implode(', ', array_keys($this->keywordListClasses))\n                );\n            }\n            $class      = $this->keywordListClasses[$keywordList];\n            $keywords[] = new $class();\n        }\n\n        $output->write('Checking keyword violations for <comment>' . implode(', ', $keywordLists) . '</comment>...', true);\n\n        $schema  = $conn->getSchemaManager()->createSchema();\n        $visitor = new ReservedKeywordsValidator($keywords);\n        $schema->visit($visitor);\n\n        $violations = $visitor->getViolations();\n        if (count($violations) !== 0) {\n            $output->write('There are <error>' . count($violations) . '</error> reserved keyword violations in your database schema:', true);\n            foreach ($violations as $violation) {\n                $output->write('  - ' . $violation, true);\n            }\n\n            return 1;\n        }\n\n        $output->write('No reserved keywords violations have been found!', true);\n\n        return 0;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools\\Console\\Command;\n\nuse Doctrine\\DBAL\\Tools\\Dumper;\nuse LogicException;\nuse RuntimeException;\nuse Symfony\\Component\\Console\\Command\\Command;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse function is_numeric;\nuse function stripos;\n\n/**\n * Task for executing arbitrary SQL that can come from a file or directly from\n * the command line.\n */\nclass RunSqlCommand extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function configure()\n    {\n        $this\n        ->setName('dbal:run-sql')\n        ->setDescription('Executes arbitrary SQL directly from the command line.')\n        ->setDefinition([\n            new InputArgument('sql', InputArgument::REQUIRED, 'The SQL statement to execute.'),\n            new InputOption('depth', null, InputOption::VALUE_REQUIRED, 'Dumping depth of result set.', 7),\n            new InputOption('force-fetch', null, InputOption::VALUE_NONE, 'Forces fetching the result.'),\n        ])\n        ->setHelp(<<<EOT\nExecutes arbitrary SQL directly from the command line.\nEOT\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function execute(InputInterface $input, OutputInterface $output)\n    {\n        $conn = $this->getHelper('db')->getConnection();\n\n        $sql = $input->getArgument('sql');\n\n        if ($sql === null) {\n            throw new RuntimeException(\"Argument 'SQL' is required in order to execute this command correctly.\");\n        }\n\n        $depth = $input->getOption('depth');\n\n        if (! is_numeric($depth)) {\n            throw new LogicException(\"Option 'depth' must contains an integer value\");\n        }\n\n        if (stripos($sql, 'select') === 0 || $input->getOption('force-fetch')) {\n            $resultSet = $conn->fetchAll($sql);\n        } else {\n            $resultSet = $conn->executeUpdate($sql);\n        }\n\n        $output->write(Dumper::dump($resultSet, (int) $depth));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/ConsoleRunner.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools\\Console;\n\nuse Doctrine\\DBAL\\Connection;\nuse Doctrine\\DBAL\\Tools\\Console\\Command\\ImportCommand;\nuse Doctrine\\DBAL\\Tools\\Console\\Command\\ReservedWordsCommand;\nuse Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand;\nuse Doctrine\\DBAL\\Tools\\Console\\Helper\\ConnectionHelper;\nuse Doctrine\\DBAL\\Version;\nuse Symfony\\Component\\Console\\Application;\nuse Symfony\\Component\\Console\\Command\\Command;\nuse Symfony\\Component\\Console\\Helper\\HelperSet;\n\n/**\n * Handles running the Console Tools inside Symfony Console context.\n */\nclass ConsoleRunner\n{\n    /**\n     * Create a Symfony Console HelperSet\n     *\n     * @return HelperSet\n     */\n    public static function createHelperSet(Connection $connection)\n    {\n        return new HelperSet([\n            'db' => new ConnectionHelper($connection),\n        ]);\n    }\n\n    /**\n     * Runs console with the given helperset.\n     *\n     * @param Command[] $commands\n     *\n     * @return void\n     */\n    public static function run(HelperSet $helperSet, $commands = [])\n    {\n        $cli = new Application('Doctrine Command Line Interface', Version::VERSION);\n\n        $cli->setCatchExceptions(true);\n        $cli->setHelperSet($helperSet);\n\n        self::addCommands($cli);\n\n        $cli->addCommands($commands);\n        $cli->run();\n    }\n\n    /**\n     * @return void\n     */\n    public static function addCommands(Application $cli)\n    {\n        $cli->addCommands([\n            new RunSqlCommand(),\n            new ImportCommand(),\n            new ReservedWordsCommand(),\n        ]);\n    }\n\n    /**\n     * Prints the instructions to create a configuration file\n     */\n    public static function printCliConfigTemplate()\n    {\n        echo <<<'HELP'\nYou are missing a \"cli-config.php\" or \"config/cli-config.php\" file in your\nproject, which is required to get the Doctrine-DBAL Console working. You can use the\nfollowing sample as a template:\n\n<?php\nuse Doctrine\\DBAL\\Tools\\Console\\ConsoleRunner;\n\n// replace with the mechanism to retrieve DBAL connection in your app\n$connection = getDBALConnection();\n\n// You can append new commands to $commands array, if needed\n\nreturn ConsoleRunner::createHelperSet($connection);\n\nHELP;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools\\Console\\Helper;\n\nuse Doctrine\\DBAL\\Connection;\nuse Symfony\\Component\\Console\\Helper\\Helper;\n\n/**\n * Doctrine CLI Connection Helper.\n */\nclass ConnectionHelper extends Helper\n{\n    /**\n     * The Doctrine database Connection.\n     *\n     * @var Connection\n     */\n    protected $_connection;\n\n    /**\n     * @param Connection $connection The Doctrine database Connection.\n     */\n    public function __construct(Connection $connection)\n    {\n        $this->_connection = $connection;\n    }\n\n    /**\n     * Retrieves the Doctrine database Connection.\n     *\n     * @return Connection\n     */\n    public function getConnection()\n    {\n        return $this->_connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return 'connection';\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Dumper.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Tools;\n\nuse ArrayIterator;\nuse ArrayObject;\nuse DateTimeInterface;\nuse Doctrine\\Common\\Collections\\Collection;\nuse Doctrine\\Common\\Persistence\\Proxy;\nuse stdClass;\nuse function array_keys;\nuse function class_exists;\nuse function count;\nuse function end;\nuse function explode;\nuse function extension_loaded;\nuse function get_class;\nuse function html_entity_decode;\nuse function ini_get;\nuse function ini_set;\nuse function is_array;\nuse function is_object;\nuse function ob_get_clean;\nuse function ob_start;\nuse function strip_tags;\nuse function strrpos;\nuse function substr;\nuse function var_dump;\n\n/**\n * Static class used to dump the variable to be used on output.\n * Simplified port of Util\\Debug from doctrine/common.\n *\n * @internal\n */\nfinal class Dumper\n{\n    /**\n     * Private constructor (prevents instantiation).\n     */\n    private function __construct()\n    {\n    }\n\n    /**\n     * Returns a dump of the public, protected and private properties of $var.\n     *\n     * @link https://xdebug.org/\n     *\n     * @param mixed $var      The variable to dump.\n     * @param int   $maxDepth The maximum nesting level for object properties.\n     */\n    public static function dump($var, int $maxDepth = 2) : string\n    {\n        $html = ini_get('html_errors');\n\n        if ($html !== true) {\n            ini_set('html_errors', true);\n        }\n\n        if (extension_loaded('xdebug')) {\n            ini_set('xdebug.var_display_max_depth', $maxDepth);\n        }\n\n        $var = self::export($var, $maxDepth);\n\n        ob_start();\n        var_dump($var);\n\n        try {\n            return strip_tags(html_entity_decode(ob_get_clean()));\n        } finally {\n            ini_set('html_errors', $html);\n        }\n    }\n\n    /**\n     * @param mixed $var\n     *\n     * @return mixed\n     */\n    public static function export($var, int $maxDepth)\n    {\n        $return = null;\n        $isObj  = is_object($var);\n\n        if ($var instanceof Collection) {\n            $var = $var->toArray();\n        }\n\n        if ($maxDepth === 0) {\n            return is_object($var) ? get_class($var)\n                : (is_array($var) ? 'Array(' . count($var) . ')' : $var);\n        }\n\n        if (is_array($var)) {\n            $return = [];\n\n            foreach ($var as $k => $v) {\n                $return[$k] = self::export($v, $maxDepth - 1);\n            }\n\n            return $return;\n        }\n\n        if (! $isObj) {\n            return $var;\n        }\n\n        $return = new stdClass();\n        if ($var instanceof DateTimeInterface) {\n            $return->__CLASS__ = get_class($var);\n            $return->date      = $var->format('c');\n            $return->timezone  = $var->getTimezone()->getName();\n\n            return $return;\n        }\n\n        $return->__CLASS__ = self::getClass($var);\n\n        if ($var instanceof Proxy) {\n            $return->__IS_PROXY__          = true;\n            $return->__PROXY_INITIALIZED__ = $var->__isInitialized();\n        }\n\n        if ($var instanceof ArrayObject || $var instanceof ArrayIterator) {\n            $return->__STORAGE__ = self::export($var->getArrayCopy(), $maxDepth - 1);\n        }\n\n        return self::fillReturnWithClassAttributes($var, $return, $maxDepth);\n    }\n\n    /**\n     * Fill the $return variable with class attributes\n     * Based on obj2array function from {@see https://secure.php.net/manual/en/function.get-object-vars.php#47075}\n     *\n     * @param object $var\n     *\n     * @return mixed\n     */\n    private static function fillReturnWithClassAttributes($var, stdClass $return, int $maxDepth)\n    {\n        $clone = (array) $var;\n\n        foreach (array_keys($clone) as $key) {\n            $aux  = explode(\"\\0\", $key);\n            $name = end($aux);\n            if ($aux[0] === '') {\n                $name .= ':' . ($aux[1] === '*' ? 'protected' : $aux[1] . ':private');\n            }\n            $return->$name = self::export($clone[$key], $maxDepth - 1);\n        }\n\n        return $return;\n    }\n\n    /**\n     * @param object $object\n     */\n    private static function getClass($object) : string\n    {\n        $class = get_class($object);\n\n        if (! class_exists(Proxy::class)) {\n            return $class;\n        }\n\n        $pos = strrpos($class, '\\\\' . Proxy::MARKER . '\\\\');\n\n        if ($pos === false) {\n            return $class;\n        }\n\n        return substr($class, $pos + Proxy::MARKER_LENGTH + 2);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\DBAL;\n\nfinal class TransactionIsolationLevel\n{\n    /**\n     * Transaction isolation level READ UNCOMMITTED.\n     */\n    public const READ_UNCOMMITTED = 1;\n\n    /**\n     * Transaction isolation level READ COMMITTED.\n     */\n    public const READ_COMMITTED = 2;\n\n    /**\n     * Transaction isolation level REPEATABLE READ.\n     */\n    public const REPEATABLE_READ = 3;\n\n    /**\n     * Transaction isolation level SERIALIZABLE.\n     */\n    public const SERIALIZABLE = 4;\n\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function is_resource;\nuse function restore_error_handler;\nuse function serialize;\nuse function set_error_handler;\nuse function stream_get_contents;\nuse function unserialize;\n\n/**\n * Type that maps a PHP array to a clob SQL type.\n */\nclass ArrayType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getClobTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        // @todo 3.0 - $value === null check to save real NULL in database\n        return serialize($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        $value = is_resource($value) ? stream_get_contents($value) : $value;\n\n        set_error_handler(function (int $code, string $message) : void {\n            throw ConversionException::conversionFailedUnserialization($this->getName(), $message);\n        });\n\n        try {\n            return unserialize($value);\n        } finally {\n            restore_error_handler();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::TARRAY;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps a database BIGINT to a PHP string.\n */\nclass BigIntType extends Type implements PhpIntegerMappingType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::BIGINT;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getBigIntTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::STRING;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value === null ? null : (string) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function fopen;\nuse function fseek;\nuse function fwrite;\nuse function is_resource;\nuse function is_string;\n\n/**\n * Type that maps ab SQL BINARY/VARBINARY to a PHP resource stream.\n */\nclass BinaryType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getBinaryTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        if (is_string($value)) {\n            $fp = fopen('php://temp', 'rb+');\n            fwrite($fp, $value);\n            fseek($fp, 0);\n            $value = $fp;\n        }\n\n        if (! is_resource($value)) {\n            throw ConversionException::conversionFailed($value, self::BINARY);\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::BINARY;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::BINARY;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function fopen;\nuse function fseek;\nuse function fwrite;\nuse function is_resource;\nuse function is_string;\n\n/**\n * Type that maps an SQL BLOB to a PHP resource stream.\n */\nclass BlobType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getBlobTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        if (is_string($value)) {\n            $fp = fopen('php://temp', 'rb+');\n            fwrite($fp, $value);\n            fseek($fp, 0);\n            $value = $fp;\n        }\n\n        if (! is_resource($value)) {\n            throw ConversionException::conversionFailed($value, self::BLOB);\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::BLOB;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::LARGE_OBJECT;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL boolean to a PHP boolean.\n */\nclass BooleanType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getBooleanTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        return $platform->convertBooleansToDatabaseValue($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $platform->convertFromBoolean($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::BOOLEAN;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::BOOLEAN;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Throwable;\nuse function get_class;\nuse function gettype;\nuse function implode;\nuse function is_object;\nuse function is_scalar;\nuse function sprintf;\nuse function strlen;\nuse function substr;\n\n/**\n * Conversion Exception is thrown when the database to PHP conversion fails.\n */\nclass ConversionException extends DBALException\n{\n    /**\n     * Thrown when a Database to Doctrine Type Conversion fails.\n     *\n     * @param string $value\n     * @param string $toType\n     *\n     * @return \\Doctrine\\DBAL\\Types\\ConversionException\n     */\n    public static function conversionFailed($value, $toType)\n    {\n        $value = strlen($value) > 32 ? substr($value, 0, 20) . '...' : $value;\n\n        return new self('Could not convert database value \"' . $value . '\" to Doctrine Type ' . $toType);\n    }\n\n    /**\n     * Thrown when a Database to Doctrine Type Conversion fails and we can make a statement\n     * about the expected format.\n     *\n     * @param string $value\n     * @param string $toType\n     * @param string $expectedFormat\n     *\n     * @return \\Doctrine\\DBAL\\Types\\ConversionException\n     */\n    public static function conversionFailedFormat($value, $toType, $expectedFormat, ?Throwable $previous = null)\n    {\n        $value = strlen($value) > 32 ? substr($value, 0, 20) . '...' : $value;\n\n        return new self(\n            'Could not convert database value \"' . $value . '\" to Doctrine Type ' .\n            $toType . '. Expected format: ' . $expectedFormat,\n            0,\n            $previous\n        );\n    }\n\n    /**\n     * Thrown when the PHP value passed to the converter was not of the expected type.\n     *\n     * @param mixed    $value\n     * @param string   $toType\n     * @param string[] $possibleTypes\n     *\n     * @return \\Doctrine\\DBAL\\Types\\ConversionException\n     */\n    public static function conversionFailedInvalidType($value, $toType, array $possibleTypes)\n    {\n        $actualType = is_object($value) ? get_class($value) : gettype($value);\n\n        if (is_scalar($value)) {\n            return new self(sprintf(\n                \"Could not convert PHP value '%s' of type '%s' to type '%s'. Expected one of the following types: %s\",\n                $value,\n                $actualType,\n                $toType,\n                implode(', ', $possibleTypes)\n            ));\n        }\n\n        return new self(sprintf(\n            \"Could not convert PHP value of type '%s' to type '%s'. Expected one of the following types: %s\",\n            $actualType,\n            $toType,\n            implode(', ', $possibleTypes)\n        ));\n    }\n\n    public static function conversionFailedSerialization($value, $format, $error)\n    {\n        $actualType = is_object($value) ? get_class($value) : gettype($value);\n\n        return new self(sprintf(\n            \"Could not convert PHP type '%s' to '%s', as an '%s' error was triggered by the serialization\",\n            $actualType,\n            $format,\n            $error\n        ));\n    }\n\n    public static function conversionFailedUnserialization(string $format, string $error) : self\n    {\n        return new self(sprintf(\n            \"Could not convert database value to '%s' as an error was triggered by the unserialization: '%s'\",\n            $format,\n            $error\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateImmutableType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTimeImmutable;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Immutable type of {@see DateType}.\n */\nclass DateImmutableType extends DateType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATE_IMMUTABLE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeImmutable) {\n            return $value->format($platform->getDateFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType(\n            $value,\n            $this->getName(),\n            ['null', DateTimeImmutable::class]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeImmutable) {\n            return $value;\n        }\n\n        $dateTime = DateTimeImmutable::createFromFormat('!' . $platform->getDateFormatString(), $value);\n\n        if (! $dateTime) {\n            throw ConversionException::conversionFailedFormat(\n                $value,\n                $this->getName(),\n                $platform->getDateFormatString()\n            );\n        }\n\n        return $dateTime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateIntervalType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateInterval;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse Throwable;\nuse function substr;\n\n/**\n * Type that maps interval string to a PHP DateInterval Object.\n */\nclass DateIntervalType extends Type\n{\n    public const FORMAT = '%RP%YY%MM%DDT%HH%IM%SS';\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATEINTERVAL;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        $fieldDeclaration['length'] = 255;\n\n        return $platform->getVarcharTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        if ($value instanceof DateInterval) {\n            return $value->format(self::FORMAT);\n        }\n\n        throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'DateInterval']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateInterval) {\n            return $value;\n        }\n\n        $negative = false;\n\n        if (isset($value[0]) && ($value[0] === '+' || $value[0] === '-')) {\n            $negative = $value[0] === '-';\n            $value    = substr($value, 1);\n        }\n\n        try {\n            $interval = new DateInterval($value);\n\n            if ($negative) {\n                $interval->invert = 1;\n            }\n\n            return $interval;\n        } catch (Throwable $exception) {\n            throw ConversionException::conversionFailedFormat($value, $this->getName(), self::FORMAT, $exception);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeImmutableType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTimeImmutable;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function date_create_immutable;\n\n/**\n * Immutable type of {@see DateTimeType}.\n */\nclass DateTimeImmutableType extends DateTimeType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATETIME_IMMUTABLE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeImmutable) {\n            return $value->format($platform->getDateTimeFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType(\n            $value,\n            $this->getName(),\n            ['null', DateTimeImmutable::class]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeImmutable) {\n            return $value;\n        }\n\n        $dateTime = DateTimeImmutable::createFromFormat($platform->getDateTimeFormatString(), $value);\n\n        if (! $dateTime) {\n            $dateTime = date_create_immutable($value);\n        }\n\n        if (! $dateTime) {\n            throw ConversionException::conversionFailedFormat(\n                $value,\n                $this->getName(),\n                $platform->getDateTimeFormatString()\n            );\n        }\n\n        return $dateTime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTime;\nuse DateTimeInterface;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function date_create;\n\n/**\n * Type that maps an SQL DATETIME/TIMESTAMP to a PHP DateTime object.\n */\nclass DateTimeType extends Type implements PhpDateTimeMappingType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATETIME;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getDateTimeTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeInterface) {\n            return $value->format($platform->getDateTimeFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'DateTime']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeInterface) {\n            return $value;\n        }\n\n        $val = DateTime::createFromFormat($platform->getDateTimeFormatString(), $value);\n\n        if (! $val) {\n            $val = date_create($value);\n        }\n\n        if (! $val) {\n            throw ConversionException::conversionFailedFormat($value, $this->getName(), $platform->getDateTimeFormatString());\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzImmutableType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTimeImmutable;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Immutable type of {@see DateTimeTzType}.\n */\nclass DateTimeTzImmutableType extends DateTimeTzType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATETIMETZ_IMMUTABLE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeImmutable) {\n            return $value->format($platform->getDateTimeTzFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType(\n            $value,\n            $this->getName(),\n            ['null', DateTimeImmutable::class]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeImmutable) {\n            return $value;\n        }\n\n        $dateTime = DateTimeImmutable::createFromFormat($platform->getDateTimeTzFormatString(), $value);\n\n        if (! $dateTime) {\n            throw ConversionException::conversionFailedFormat(\n                $value,\n                $this->getName(),\n                $platform->getDateTimeTzFormatString()\n            );\n        }\n\n        return $dateTime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTime;\nuse DateTimeInterface;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * DateTime type saving additional timezone information.\n *\n * Caution: Databases are not necessarily experts at storing timezone related\n * data of dates. First, of all the supported vendors only PostgreSQL and Oracle\n * support storing Timezone data. But those two don't save the actual timezone\n * attached to a DateTime instance (for example \"Europe/Berlin\" or \"America/Montreal\")\n * but the current offset of them related to UTC. That means depending on daylight saving times\n * or not you may get different offsets.\n *\n * This datatype makes only sense to use, if your application works with an offset, not\n * with an actual timezone that uses transitions. Otherwise your DateTime instance\n * attached with a timezone such as Europe/Berlin gets saved into the database with\n * the offset and re-created from persistence with only the offset, not the original timezone\n * attached.\n */\nclass DateTimeTzType extends Type implements PhpDateTimeMappingType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATETIMETZ;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getDateTimeTzTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeInterface) {\n            return $value->format($platform->getDateTimeTzFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'DateTime']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeInterface) {\n            return $value;\n        }\n\n        $val = DateTime::createFromFormat($platform->getDateTimeTzFormatString(), $value);\n        if (! $val) {\n            throw ConversionException::conversionFailedFormat($value, $this->getName(), $platform->getDateTimeTzFormatString());\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTime;\nuse DateTimeInterface;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL DATE to a PHP Date object.\n */\nclass DateType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getDateTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeInterface) {\n            return $value->format($platform->getDateFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'DateTime']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeInterface) {\n            return $value;\n        }\n\n        $val = DateTime::createFromFormat('!' . $platform->getDateFormatString(), $value);\n        if (! $val) {\n            throw ConversionException::conversionFailedFormat($value, $this->getName(), $platform->getDateFormatString());\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL DECIMAL to a PHP string.\n */\nclass DecimalType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DECIMAL;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getDecimalTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\nclass FloatType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::FLOAT;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getFloatDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value === null ? null : (float) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Represents a GUID/UUID datatype (both are actually synonyms) in the database.\n */\nclass GuidType extends StringType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getGuidTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::GUID;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return ! $platform->hasNativeGuidType();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL INT to a PHP integer.\n */\nclass IntegerType extends Type implements PhpIntegerMappingType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::INTEGER;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getIntegerTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value === null ? null : (int) $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::INTEGER;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function is_resource;\nuse function json_decode;\nuse function stream_get_contents;\n\n/**\n * Array Type which can be used to generate json arrays.\n *\n * @deprecated Use JsonType instead\n */\nclass JsonArrayType extends JsonType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value === '') {\n            return [];\n        }\n\n        $value = is_resource($value) ? stream_get_contents($value) : $value;\n\n        return json_decode($value, true);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::JSON_ARRAY;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse const JSON_ERROR_NONE;\nuse function is_resource;\nuse function json_decode;\nuse function json_encode;\nuse function json_last_error;\nuse function json_last_error_msg;\nuse function stream_get_contents;\n\n/**\n * Type generating json objects values\n */\nclass JsonType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getJsonTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        $encoded = json_encode($value);\n\n        if (json_last_error() !== JSON_ERROR_NONE) {\n            throw ConversionException::conversionFailedSerialization($value, 'json', json_last_error_msg());\n        }\n\n        return $encoded;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value === '') {\n            return null;\n        }\n\n        if (is_resource($value)) {\n            $value = stream_get_contents($value);\n        }\n\n        $val = json_decode($value, true);\n\n        if (json_last_error() !== JSON_ERROR_NONE) {\n            throw ConversionException::conversionFailed($value, $this->getName());\n        }\n\n        return $val;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::JSON;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return ! $platform->hasNativeJsonType();\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function is_resource;\nuse function restore_error_handler;\nuse function serialize;\nuse function set_error_handler;\nuse function stream_get_contents;\nuse function unserialize;\n\n/**\n * Type that maps a PHP object to a clob SQL type.\n */\nclass ObjectType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getClobTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        return serialize($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return null;\n        }\n\n        $value = is_resource($value) ? stream_get_contents($value) : $value;\n\n        set_error_handler(function (int $code, string $message) : void {\n            throw ConversionException::conversionFailedUnserialization($this->getName(), $message);\n        });\n\n        try {\n            return unserialize($value);\n        } finally {\n            restore_error_handler();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::OBJECT;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpDateTimeMappingType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\n/**\n * Implementations should map a database type to a PHP DateTimeInterface instance.\n *\n * @internal\n */\ninterface PhpDateTimeMappingType\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpIntegerMappingType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\n/**\n * Implementations should map a database type to a PHP integer.\n *\n * @internal\n */\ninterface PhpIntegerMappingType\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function explode;\nuse function implode;\nuse function is_resource;\nuse function stream_get_contents;\n\n/**\n * Array Type which can be used for simple values.\n *\n * Only use this type if you are sure that your values cannot contain a \",\".\n */\nclass SimpleArrayType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getClobTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if (! $value) {\n            return null;\n        }\n\n        return implode(',', $value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return [];\n        }\n\n        $value = is_resource($value) ? stream_get_contents($value) : $value;\n\n        return explode(',', $value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::SIMPLE_ARRAY;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps a database SMALLINT to a PHP integer.\n */\nclass SmallIntType extends Type implements PhpIntegerMappingType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::SMALLINT;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getSmallIntTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value === null ? null : (int) $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBindingType()\n    {\n        return ParameterType::INTEGER;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL VARCHAR to a PHP string.\n */\nclass StringType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getVarcharTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultLength(AbstractPlatform $platform)\n    {\n        return $platform->getVarcharDefaultLength();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::STRING;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function is_resource;\nuse function stream_get_contents;\n\n/**\n * Type that maps an SQL CLOB to a PHP string.\n */\nclass TextType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getClobTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return is_resource($value) ? stream_get_contents($value) : $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::TEXT;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeImmutableType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTimeImmutable;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Immutable type of {@see TimeType}.\n */\nclass TimeImmutableType extends TimeType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::TIME_IMMUTABLE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeImmutable) {\n            return $value->format($platform->getTimeFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType(\n            $value,\n            $this->getName(),\n            ['null', DateTimeImmutable::class]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeImmutable) {\n            return $value;\n        }\n\n        $dateTime = DateTimeImmutable::createFromFormat('!' . $platform->getTimeFormatString(), $value);\n\n        if (! $dateTime) {\n            throw ConversionException::conversionFailedFormat(\n                $value,\n                $this->getName(),\n                $platform->getTimeFormatString()\n            );\n        }\n\n        return $dateTime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTime;\nuse DateTimeInterface;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Type that maps an SQL TIME to a PHP DateTime object.\n */\nclass TimeType extends Type\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::TIME;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)\n    {\n        return $platform->getTimeTypeDeclarationSQL($fieldDeclaration);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeInterface) {\n            return $value->format($platform->getTimeFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType($value, $this->getName(), ['null', 'DateTime']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeInterface) {\n            return $value;\n        }\n\n        $val = DateTime::createFromFormat('!' . $platform->getTimeFormatString(), $value);\n        if (! $val) {\n            throw ConversionException::conversionFailedFormat($value, $this->getName(), $platform->getTimeFormatString());\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse Doctrine\\DBAL\\DBALException;\nuse Doctrine\\DBAL\\ParameterType;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function end;\nuse function explode;\nuse function str_replace;\n\n/**\n * The base class for so-called Doctrine mapping types.\n *\n * A Type object is obtained by calling the static {@link getType()} method.\n */\nabstract class Type\n{\n    public const TARRAY               = 'array';\n    public const SIMPLE_ARRAY         = 'simple_array';\n    public const JSON_ARRAY           = 'json_array';\n    public const JSON                 = 'json';\n    public const BIGINT               = 'bigint';\n    public const BOOLEAN              = 'boolean';\n    public const DATETIME             = 'datetime';\n    public const DATETIME_IMMUTABLE   = 'datetime_immutable';\n    public const DATETIMETZ           = 'datetimetz';\n    public const DATETIMETZ_IMMUTABLE = 'datetimetz_immutable';\n    public const DATE                 = 'date';\n    public const DATE_IMMUTABLE       = 'date_immutable';\n    public const TIME                 = 'time';\n    public const TIME_IMMUTABLE       = 'time_immutable';\n    public const DECIMAL              = 'decimal';\n    public const INTEGER              = 'integer';\n    public const OBJECT               = 'object';\n    public const SMALLINT             = 'smallint';\n    public const STRING               = 'string';\n    public const TEXT                 = 'text';\n    public const BINARY               = 'binary';\n    public const BLOB                 = 'blob';\n    public const FLOAT                = 'float';\n    public const GUID                 = 'guid';\n    public const DATEINTERVAL         = 'dateinterval';\n\n    /**\n     * Map of already instantiated type objects. One instance per type (flyweight).\n     *\n     * @var self[]\n     */\n    private static $_typeObjects = [];\n\n    /**\n     * The map of supported doctrine mapping types.\n     *\n     * @var string[]\n     */\n    private static $_typesMap = [\n        self::TARRAY => ArrayType::class,\n        self::SIMPLE_ARRAY => SimpleArrayType::class,\n        self::JSON_ARRAY => JsonArrayType::class,\n        self::JSON => JsonType::class,\n        self::OBJECT => ObjectType::class,\n        self::BOOLEAN => BooleanType::class,\n        self::INTEGER => IntegerType::class,\n        self::SMALLINT => SmallIntType::class,\n        self::BIGINT => BigIntType::class,\n        self::STRING => StringType::class,\n        self::TEXT => TextType::class,\n        self::DATETIME => DateTimeType::class,\n        self::DATETIME_IMMUTABLE => DateTimeImmutableType::class,\n        self::DATETIMETZ => DateTimeTzType::class,\n        self::DATETIMETZ_IMMUTABLE => DateTimeTzImmutableType::class,\n        self::DATE => DateType::class,\n        self::DATE_IMMUTABLE => DateImmutableType::class,\n        self::TIME => TimeType::class,\n        self::TIME_IMMUTABLE => TimeImmutableType::class,\n        self::DECIMAL => DecimalType::class,\n        self::FLOAT => FloatType::class,\n        self::BINARY => BinaryType::class,\n        self::BLOB => BlobType::class,\n        self::GUID => GuidType::class,\n        self::DATEINTERVAL => DateIntervalType::class,\n    ];\n\n    /**\n     * Prevents instantiation and forces use of the factory method.\n     */\n    final private function __construct()\n    {\n    }\n\n    /**\n     * Converts a value from its PHP representation to its database representation\n     * of this type.\n     *\n     * @param mixed            $value    The value to convert.\n     * @param AbstractPlatform $platform The currently used database platform.\n     *\n     * @return mixed The database representation of the value.\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        return $value;\n    }\n\n    /**\n     * Converts a value from its database representation to its PHP representation\n     * of this type.\n     *\n     * @param mixed            $value    The value to convert.\n     * @param AbstractPlatform $platform The currently used database platform.\n     *\n     * @return mixed The PHP representation of the value.\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        return $value;\n    }\n\n    /**\n     * Gets the default length of this type.\n     *\n     * @deprecated Rely on information provided by the platform instead.\n     *\n     * @return int|null\n     */\n    public function getDefaultLength(AbstractPlatform $platform)\n    {\n        return null;\n    }\n\n    /**\n     * Gets the SQL declaration snippet for a field of this type.\n     *\n     * @param mixed[]          $fieldDeclaration The field declaration.\n     * @param AbstractPlatform $platform         The currently used database platform.\n     *\n     * @return string\n     */\n    abstract public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform);\n\n    /**\n     * Gets the name of this type.\n     *\n     * @return string\n     *\n     * @todo Needed?\n     */\n    abstract public function getName();\n\n    /**\n     * Factory method to create type instances.\n     * Type instances are implemented as flyweights.\n     *\n     * @param string $name The name of the type (as returned by getName()).\n     *\n     * @return \\Doctrine\\DBAL\\Types\\Type\n     *\n     * @throws DBALException\n     */\n    public static function getType($name)\n    {\n        if (! isset(self::$_typeObjects[$name])) {\n            if (! isset(self::$_typesMap[$name])) {\n                throw DBALException::unknownColumnType($name);\n            }\n            self::$_typeObjects[$name] = new self::$_typesMap[$name]();\n        }\n\n        return self::$_typeObjects[$name];\n    }\n\n    /**\n     * Adds a custom type to the type map.\n     *\n     * @param string $name      The name of the type. This should correspond to what getName() returns.\n     * @param string $className The class name of the custom type.\n     *\n     * @return void\n     *\n     * @throws DBALException\n     */\n    public static function addType($name, $className)\n    {\n        if (isset(self::$_typesMap[$name])) {\n            throw DBALException::typeExists($name);\n        }\n\n        self::$_typesMap[$name] = $className;\n    }\n\n    /**\n     * Checks if exists support for a type.\n     *\n     * @param string $name The name of the type.\n     *\n     * @return bool TRUE if type is supported; FALSE otherwise.\n     */\n    public static function hasType($name)\n    {\n        return isset(self::$_typesMap[$name]);\n    }\n\n    /**\n     * Overrides an already defined type to use a different implementation.\n     *\n     * @param string $name\n     * @param string $className\n     *\n     * @return void\n     *\n     * @throws DBALException\n     */\n    public static function overrideType($name, $className)\n    {\n        if (! isset(self::$_typesMap[$name])) {\n            throw DBALException::typeNotFound($name);\n        }\n\n        if (isset(self::$_typeObjects[$name])) {\n            unset(self::$_typeObjects[$name]);\n        }\n\n        self::$_typesMap[$name] = $className;\n    }\n\n    /**\n     * Gets the (preferred) binding type for values of this type that\n     * can be used when binding parameters to prepared statements.\n     *\n     * This method should return one of the {@link \\Doctrine\\DBAL\\ParameterType} constants.\n     *\n     * @return int\n     */\n    public function getBindingType()\n    {\n        return ParameterType::STRING;\n    }\n\n    /**\n     * Gets the types array map which holds all registered types and the corresponding\n     * type class\n     *\n     * @return string[]\n     */\n    public static function getTypesMap()\n    {\n        return self::$_typesMap;\n    }\n\n    /**\n     * @deprecated Relying on string representation is discouraged and will be removed in DBAL 3.0.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        $e = explode('\\\\', static::class);\n\n        return str_replace('Type', '', end($e));\n    }\n\n    /**\n     * Does working with this column require SQL conversion functions?\n     *\n     * This is a metadata function that is required for example in the ORM.\n     * Usage of {@link convertToDatabaseValueSQL} and\n     * {@link convertToPHPValueSQL} works for any type and mostly\n     * does nothing. This method can additionally be used for optimization purposes.\n     *\n     * @return bool\n     */\n    public function canRequireSQLConversion()\n    {\n        return false;\n    }\n\n    /**\n     * Modifies the SQL expression (identifier, parameter) to convert to a database value.\n     *\n     * @param string $sqlExpr\n     *\n     * @return string\n     */\n    public function convertToDatabaseValueSQL($sqlExpr, AbstractPlatform $platform)\n    {\n        return $sqlExpr;\n    }\n\n    /**\n     * Modifies the SQL expression (identifier, parameter) to convert to a PHP value.\n     *\n     * @param string           $sqlExpr\n     * @param AbstractPlatform $platform\n     *\n     * @return string\n     */\n    public function convertToPHPValueSQL($sqlExpr, $platform)\n    {\n        return $sqlExpr;\n    }\n\n    /**\n     * Gets an array of database types that map to this Doctrine type.\n     *\n     * @return string[]\n     */\n    public function getMappedDatabaseTypes(AbstractPlatform $platform)\n    {\n        return [];\n    }\n\n    /**\n     * If this Doctrine Type maps to an already mapped database type,\n     * reverse schema engineering can't tell them apart. You need to mark\n     * one of those types as commented, which will have Doctrine use an SQL\n     * comment to typehint the actual Doctrine Type.\n     *\n     * @return bool\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeImmutableType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTimeImmutable;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function date_create_immutable;\n\n/**\n * Immutable type of {@see VarDateTimeType}.\n */\nclass VarDateTimeImmutableType extends VarDateTimeType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getName()\n    {\n        return Type::DATETIME_IMMUTABLE;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToDatabaseValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null) {\n            return $value;\n        }\n\n        if ($value instanceof DateTimeImmutable) {\n            return $value->format($platform->getDateTimeFormatString());\n        }\n\n        throw ConversionException::conversionFailedInvalidType(\n            $value,\n            $this->getName(),\n            ['null', DateTimeImmutable::class]\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTimeImmutable) {\n            return $value;\n        }\n\n        $dateTime = date_create_immutable($value);\n\n        if (! $dateTime) {\n            throw ConversionException::conversionFailed($value, $this->getName());\n        }\n\n        return $dateTime;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function requiresSQLCommentHint(AbstractPlatform $platform)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeType.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL\\Types;\n\nuse DateTime;\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\nuse function date_create;\n\n/**\n * Variable DateTime Type using date_create() instead of DateTime::createFromFormat().\n *\n * This type has performance implications as it runs twice as long as the regular\n * {@see DateTimeType}, however in certain PostgreSQL configurations with\n * TIMESTAMP(n) columns where n > 0 it is necessary to use this type.\n */\nclass VarDateTimeType extends DateTimeType\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function convertToPHPValue($value, AbstractPlatform $platform)\n    {\n        if ($value === null || $value instanceof DateTime) {\n            return $value;\n        }\n\n        $val = date_create($value);\n        if (! $val) {\n            throw ConversionException::conversionFailed($value, $this->getName());\n        }\n\n        return $val;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/Version.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse function str_replace;\nuse function strtolower;\nuse function version_compare;\n\n/**\n * Class to store and retrieve the version of Doctrine.\n */\nclass Version\n{\n    /**\n     * Current Doctrine Version.\n     */\n    public const VERSION = '2.9.2';\n\n    /**\n     * Compares a Doctrine version with the current one.\n     *\n     * @param string $version The Doctrine version to compare to.\n     *\n     * @return int -1 if older, 0 if it is the same, 1 if version passed as argument is newer.\n     */\n    public static function compare($version)\n    {\n        $currentVersion = str_replace(' ', '', strtolower(self::VERSION));\n        $version        = str_replace(' ', '', $version);\n\n        return version_compare($version, $currentVersion);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php",
    "content": "<?php\n\nnamespace Doctrine\\DBAL;\n\nuse Doctrine\\DBAL\\Platforms\\AbstractPlatform;\n\n/**\n * Contract for a driver that is able to create platform instances by version.\n *\n * Doctrine uses different platform classes for different vendor versions to\n * support the correct features and SQL syntax of each version.\n * This interface should be implemented by drivers that are capable to do this\n * distinction.\n */\ninterface VersionAwarePlatformDriver\n{\n    /**\n     * Factory method for creating the appropriate platform instance for the given version.\n     *\n     * @param string $version The platform/server version string to evaluate. This should be given in the notation\n     *                        the underlying database vendor uses.\n     *\n     * @return AbstractPlatform\n     *\n     * @throws DBALException If the given version string could not be evaluated.\n     */\n    public function createDatabasePlatformForVersion($version);\n}\n"
  },
  {
    "path": "vendor/doctrine/event-manager/.scrutinizer.yml",
    "content": "build:\n    nodes:\n        analysis:\n            environment:\n                php:\n                    version: 7.1\n            cache:\n                disabled: false\n                directories:\n                    - ~/.composer/cache\n            project_setup:\n                override: true\n            tests:\n                override:\n                    - php-scrutinizer-run\n                    - phpcs-run\n    dependencies:\n        override:\n            - composer install -noa\n\ntools:\n    external_code_coverage:\n        timeout: 600\n\nbuild_failure_conditions:\n    - 'elements.rating(<= C).new.exists'                        # No new classes/methods with a rating of C or worse allowed\n    - 'issues.label(\"coding-style\").new.exists'                 # No new coding style issues allowed\n    - 'issues.severity(>= MAJOR).new.exists'                    # New issues of major or higher severity\n    - 'project.metric_change(\"scrutinizer.test_coverage\", < 0)' # Code Coverage decreased from previous inspection\n"
  },
  {
    "path": "vendor/doctrine/event-manager/LICENSE",
    "content": "Copyright (c) 2006-2015 Doctrine Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/doctrine/event-manager/README.md",
    "content": "# Doctrine Event Manager\n\n[![Build Status](https://travis-ci.org/doctrine/event-manager.svg)](https://travis-ci.org/doctrine/event-manager)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/event-manager/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/event-manager/?branch=master)\n[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/event-manager/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/event-manager/?branch=master)\n\nThe Doctrine Event Manager is a library that provides a simple event system.\n\n## More resources:\n\n* [Website](https://www.doctrine-project.org/)\n* [Documentation](https://www.doctrine-project.org/projects/doctrine-event-manager/en/latest/)\n* [Downloads](https://github.com/doctrine/event-manager/releases)\n"
  },
  {
    "path": "vendor/doctrine/event-manager/composer.json",
    "content": "{\n    \"name\": \"doctrine/event-manager\",\n    \"type\": \"library\",\n    \"description\": \"Doctrine Event Manager component\",\n    \"keywords\": [\"eventmanager\", \"eventdispatcher\", \"event\"],\n    \"homepage\": \"https://www.doctrine-project.org/projects/event-manager.html\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\"name\": \"Guilherme Blanco\", \"email\": \"guilhermeblanco@gmail.com\"},\n        {\"name\": \"Roman Borschel\", \"email\": \"roman@code-factory.org\"},\n        {\"name\": \"Benjamin Eberlei\", \"email\": \"kontakt@beberlei.de\"},\n        {\"name\": \"Jonathan Wage\", \"email\": \"jonwage@gmail.com\"},\n        {\"name\": \"Johannes Schmitt\", \"email\": \"schmittjoh@gmail.com\"},\n        {\"name\": \"Marco Pivetta\", \"email\": \"ocramius@gmail.com\"}\n    ],\n    \"require\": {\n        \"php\": \"^7.1\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^7.0\",\n        \"doctrine/coding-standard\": \"^4.0\"\n    },\n    \"conflict\": {\n        \"doctrine/common\": \"<2.9@dev\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Doctrine\\\\Common\\\\\": \"lib/Doctrine/Common\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Doctrine\\\\Tests\\\\\": \"tests/Doctrine/Tests\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/event-manager/docs/en/index.rst",
    "content": "Event Manager Documentation\n===========================\n\nThe Doctrine Event Manager documentation is a reference guide to everything you need\nto know about the project.\n\nGetting Help\n------------\n\nIf this documentation is not helping to answer questions you have about the\nDoctrine DBAL, don't panic. You can get help from different sources:\n\n-  Gitter chat room `#doctrine/event-manager <https://gitter.im/doctrine/event-manager>`_\n-  On `Stack Overflow <http://stackoverflow.com/questions/tagged/doctrine-event-manager>`_\n-  The `Doctrine Mailing List <http://groups.google.com/group/doctrine-user>`_\n-  Report a bug on `GitHub <https://github.com/doctrine/event-manager/issues>`_.\n\nGetting Started\n---------------\n\nThe best way to get started is with the :doc:`Introduction <reference/index#introduction>` section\nin the documentation. Use the sidebar to browse other documentation for the Doctrine Event Manager.\n"
  },
  {
    "path": "vendor/doctrine/event-manager/docs/en/reference/index.rst",
    "content": "Introduction\n============\n\nThe Doctrine Event Manager is a simple event system used by the various Doctrine projects. It was originally built\nfor the DBAL and ORM but over time other projects adopted it and now it is available as a standalone library.\n\nInstallation\n============\n\nThe library can easily be installed with composer.\n\n.. code-block:: sh\n\n    $ composer require doctrine/event-manager\n\nSetup\n=====\n\nThe event system is controlled by the ``Doctrine\\Common\\EventManager`` class.\n\n.. code-block:: php\n\n    use Doctrine\\Common\\EventManager;\n\n    $eventManager = new EventManager();\n\nListeners\n=========\n\nNow you are ready to listen for events. Here is an example of a custom event listener named ``TestEvent``.\n\n.. code-block:: php\n\n    use Doctrine\\Common\\EventArgs;\n    use Doctrine\\Common\\EventManager;\n\n    final class TestEvent\n    {\n        public const preFoo = 'preFoo';\n        public const postFoo = 'postFoo';\n\n        /** @var EventManager */\n        private $eventManager;\n\n        /** @var bool */\n        public $preFooInvoked = false;\n\n        /** @var bool */\n        public $postFooInvoked = false;\n\n        public function __construct(EventManager $eventManager)\n        {\n            $eventManager->addEventListener([self::preFoo, self::postFoo], $this);\n        }\n\n        public function preFoo(EventArgs $eventArgs) : void\n        {\n            $this->preFooInvoked = true;\n        }\n\n        public function postFoo(EventArgs $eventArgs) : void\n        {\n            $this->postFooInvoked = true;\n        }\n    }\n\n    // Create a new instance\n    $testEvent = new TestEvent($eventManager);\n\nDispatching Events\n==================\n\nNow you can dispatch events with the ``dispatchEvent()`` method.\n\n.. code-block:: php\n\n    $eventManager->dispatchEvent(TestEvent::preFoo);\n    $eventManager->dispatchEvent(TestEvent::postFoo);\n\nRemoving Event Listeners\n========================\n\nYou can easily remove a listener with the ``removeEventListener()`` method.\n\n.. code-block:: php\n\n    $eventManager->removeEventListener([TestEvent::preFoo, TestEvent::postFoo], $testEvent);\n\nEvent Subscribers\n=================\n\nThe Doctrine event system also has a simple concept of event subscribers. We can define a simple ``TestEventSubscriber`` class which implements the ``Doctrine\\Common\\EventSubscriber`` interface with a ``getSubscribedEvents()`` method which returns an array of events it should be subscribed to.\n\n.. code-block:: php\n\n    use Doctrine\\Common\\EventSubscriber;\n\n    final class TestEventSubscriber implements EventSubscriber\n    {\n        /** @var bool */\n        public $preFooInvoked = false;\n\n        public function preFoo() : void\n        {\n            $this->preFooInvoked = true;\n        }\n\n        public function getSubscribedEvents() : array\n        {\n            return [TestEvent::preFoo];\n        }\n    }\n\n    $eventSubscriber = new TestEventSubscriber();\n    $eventManager->addEventSubscriber($eventSubscriber);\n\n.. note::\n\n    The array returned by the ``getSubscribedEvents()`` method is a simple array with the values being the event names. The subscriber must have a method that is named exactly like the event.\n\nNow when you dispatch an event, any event subscribers will be notified of that event.\n\n.. code-block:: php\n\n    $eventManager->dispatchEvent(TestEvent::preFoo);\n\nNow you can check the ``preFooInvoked`` property to see if the event subscriber was notified of the event:\n\n.. code-block:: php\n\n    if ($eventSubscriber->preFooInvoked) {\n        // the preFoo method was invoked\n    }\n"
  },
  {
    "path": "vendor/doctrine/event-manager/docs/en/sidebar.rst",
    "content": ".. toctree::\n    :depth: 3\n\n    reference/index\n"
  },
  {
    "path": "vendor/doctrine/event-manager/lib/Doctrine/Common/EventArgs.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\Common;\n\n/**\n * EventArgs is the base class for classes containing event data.\n *\n * This class contains no event data. It is used by events that do not pass state\n * information to an event handler when an event is raised. The single empty EventArgs\n * instance can be obtained through {@link getEmptyInstance}.\n */\nclass EventArgs\n{\n    /**\n     * Single instance of EventArgs.\n     *\n     * @var EventArgs\n     */\n    private static $_emptyEventArgsInstance;\n\n    /**\n     * Gets the single, empty and immutable EventArgs instance.\n     *\n     * This instance will be used when events are dispatched without any parameter,\n     * like this: EventManager::dispatchEvent('eventname');\n     *\n     * The benefit from this is that only one empty instance is instantiated and shared\n     * (otherwise there would be instances for every dispatched in the abovementioned form).\n     *\n     * @see EventManager::dispatchEvent\n     *\n     * @link https://msdn.microsoft.com/en-us/library/system.eventargs.aspx\n     *\n     * @return EventArgs\n     */\n    public static function getEmptyInstance()\n    {\n        if (! self::$_emptyEventArgsInstance) {\n            self::$_emptyEventArgsInstance = new EventArgs();\n        }\n\n        return self::$_emptyEventArgsInstance;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/event-manager/lib/Doctrine/Common/EventManager.php",
    "content": "<?php\nnamespace Doctrine\\Common;\n\nuse function spl_object_hash;\n\n/**\n * The EventManager is the central point of Doctrine's event listener system.\n * Listeners are registered on the manager and events are dispatched through the\n * manager.\n */\nclass EventManager\n{\n    /**\n     * Map of registered listeners.\n     * <event> => <listeners>\n     *\n     * @var object[][]\n     */\n    private $_listeners = [];\n\n    /**\n     * Dispatches an event to all registered listeners.\n     *\n     * @param string         $eventName The name of the event to dispatch. The name of the event is\n     *                                  the name of the method that is invoked on listeners.\n     * @param EventArgs|null $eventArgs The event arguments to pass to the event handlers/listeners.\n     *                                  If not supplied, the single empty EventArgs instance is used.\n     *\n     * @return void\n     */\n    public function dispatchEvent($eventName, ?EventArgs $eventArgs = null)\n    {\n        if (! isset($this->_listeners[$eventName])) {\n            return;\n        }\n\n        $eventArgs = $eventArgs ?? EventArgs::getEmptyInstance();\n\n        foreach ($this->_listeners[$eventName] as $listener) {\n            $listener->$eventName($eventArgs);\n        }\n    }\n\n    /**\n     * Gets the listeners of a specific event or all listeners.\n     *\n     * @param string|null $event The name of the event.\n     *\n     * @return object[]|object[][] The event listeners for the specified event, or all event listeners.\n     */\n    public function getListeners($event = null)\n    {\n        return $event ? $this->_listeners[$event] : $this->_listeners;\n    }\n\n    /**\n     * Checks whether an event has any registered listeners.\n     *\n     * @param string $event\n     *\n     * @return bool TRUE if the specified event has any listeners, FALSE otherwise.\n     */\n    public function hasListeners($event)\n    {\n        return ! empty($this->_listeners[$event]);\n    }\n\n    /**\n     * Adds an event listener that listens on the specified events.\n     *\n     * @param string|string[] $events   The event(s) to listen on.\n     * @param object          $listener The listener object.\n     *\n     * @return void\n     */\n    public function addEventListener($events, $listener)\n    {\n        // Picks the hash code related to that listener\n        $hash = spl_object_hash($listener);\n\n        foreach ((array) $events as $event) {\n            // Overrides listener if a previous one was associated already\n            // Prevents duplicate listeners on same event (same instance only)\n            $this->_listeners[$event][$hash] = $listener;\n        }\n    }\n\n    /**\n     * Removes an event listener from the specified events.\n     *\n     * @param string|string[] $events\n     * @param object          $listener\n     *\n     * @return void\n     */\n    public function removeEventListener($events, $listener)\n    {\n        // Picks the hash code related to that listener\n        $hash = spl_object_hash($listener);\n\n        foreach ((array) $events as $event) {\n            unset($this->_listeners[$event][$hash]);\n        }\n    }\n\n    /**\n     * Adds an EventSubscriber. The subscriber is asked for all the events it is\n     * interested in and added as a listener for these events.\n     *\n     * @param EventSubscriber $subscriber The subscriber.\n     *\n     * @return void\n     */\n    public function addEventSubscriber(EventSubscriber $subscriber)\n    {\n        $this->addEventListener($subscriber->getSubscribedEvents(), $subscriber);\n    }\n\n    /**\n     * Removes an EventSubscriber. The subscriber is asked for all the events it is\n     * interested in and removed as a listener for these events.\n     *\n     * @param EventSubscriber $subscriber The subscriber.\n     *\n     * @return void\n     */\n    public function removeEventSubscriber(EventSubscriber $subscriber)\n    {\n        $this->removeEventListener($subscriber->getSubscribedEvents(), $subscriber);\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/event-manager/lib/Doctrine/Common/EventSubscriber.php",
    "content": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Doctrine\\Common;\n\n/**\n * An EventSubscriber knows himself what events he is interested in.\n * If an EventSubscriber is added to an EventManager, the manager invokes\n * {@link getSubscribedEvents} and registers the subscriber as a listener for all\n * returned events.\n */\ninterface EventSubscriber\n{\n    /**\n     * Returns an array of events this subscriber wants to listen to.\n     *\n     * @return string[]\n     */\n    public function getSubscribedEvents();\n}\n"
  },
  {
    "path": "vendor/doctrine/inflector/LICENSE",
    "content": "Copyright (c) 2006-2015 Doctrine Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/doctrine/inflector/README.md",
    "content": "# Doctrine Inflector\n\nDoctrine Inflector is a small library that can perform string manipulations\nwith regard to upper-/lowercase and singular/plural forms of words.\n\n[![Build Status](https://travis-ci.org/doctrine/inflector.svg?branch=master)](https://travis-ci.org/doctrine/inflector)\n"
  },
  {
    "path": "vendor/doctrine/inflector/composer.json",
    "content": "{\n    \"name\": \"doctrine/inflector\",\n    \"type\": \"library\",\n    \"description\": \"Common String Manipulations with regard to casing and singular/plural rules.\",\n    \"keywords\": [\"string\", \"inflection\", \"singularize\", \"pluralize\"],\n    \"homepage\": \"http://www.doctrine-project.org\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\"name\": \"Guilherme Blanco\", \"email\": \"guilhermeblanco@gmail.com\"},\n        {\"name\": \"Roman Borschel\", \"email\": \"roman@code-factory.org\"},\n        {\"name\": \"Benjamin Eberlei\", \"email\": \"kontakt@beberlei.de\"},\n        {\"name\": \"Jonathan Wage\", \"email\": \"jonwage@gmail.com\"},\n        {\"name\": \"Johannes Schmitt\", \"email\": \"schmittjoh@gmail.com\"}\n    ],\n    \"require\": {\n        \"php\": \"^7.1\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^6.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Doctrine\\\\Common\\\\Inflector\\\\\": \"lib/Doctrine/Common/Inflector\" }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": { \"Doctrine\\\\Tests\\\\Common\\\\Inflector\\\\\": \"tests/Doctrine/Tests/Common/Inflector\" }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.3.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php",
    "content": "<?php\n/*\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * This software consists of voluntary contributions made by many individuals\n * and is licensed under the MIT license. For more information, see\n * <http://www.doctrine-project.org>.\n */\n\nnamespace Doctrine\\Common\\Inflector;\n\n/**\n * Doctrine inflector has static methods for inflecting text.\n *\n * The methods in these classes are from several different sources collected\n * across several different php projects and several different authors. The\n * original author names and emails are not known.\n *\n * Pluralize & Singularize implementation are borrowed from CakePHP with some modifications.\n *\n * @link   www.doctrine-project.org\n * @since  1.0\n * @author Konsta Vesterinen <kvesteri@cc.hut.fi>\n * @author Jonathan H. Wage <jonwage@gmail.com>\n */\nclass Inflector\n{\n    /**\n     * Plural inflector rules.\n     *\n     * @var string[][]\n     */\n    private static $plural = array(\n        'rules' => array(\n            '/(s)tatus$/i' => '\\1\\2tatuses',\n            '/(quiz)$/i' => '\\1zes',\n            '/^(ox)$/i' => '\\1\\2en',\n            '/([m|l])ouse$/i' => '\\1ice',\n            '/(matr|vert|ind)(ix|ex)$/i' => '\\1ices',\n            '/(x|ch|ss|sh)$/i' => '\\1es',\n            '/([^aeiouy]|qu)y$/i' => '\\1ies',\n            '/(hive|gulf)$/i' => '\\1s',\n            '/(?:([^f])fe|([lr])f)$/i' => '\\1\\2ves',\n            '/sis$/i' => 'ses',\n            '/([ti])um$/i' => '\\1a',\n            '/(c)riterion$/i' => '\\1riteria',\n            '/(p)erson$/i' => '\\1eople',\n            '/(m)an$/i' => '\\1en',\n            '/(c)hild$/i' => '\\1hildren',\n            '/(f)oot$/i' => '\\1eet',\n            '/(buffal|her|potat|tomat|volcan)o$/i' => '\\1\\2oes',\n            '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\\1i',\n            '/us$/i' => 'uses',\n            '/(alias)$/i' => '\\1es',\n            '/(analys|ax|cris|test|thes)is$/i' => '\\1es',\n            '/s$/' => 's',\n            '/^$/' => '',\n            '/$/' => 's',\n        ),\n        'uninflected' => array(\n            '.*[nrlm]ese',\n            '.*deer',\n            '.*fish',\n            '.*measles',\n            '.*ois',\n            '.*pox',\n            '.*sheep',\n            'people',\n            'cookie',\n            'police',\n        ),\n        'irregular' => array(\n            'atlas' => 'atlases',\n            'axe' => 'axes',\n            'beef' => 'beefs',\n            'brother' => 'brothers',\n            'cafe' => 'cafes',\n            'chateau' => 'chateaux',\n            'niveau' => 'niveaux',\n            'child' => 'children',\n            'cookie' => 'cookies',\n            'corpus' => 'corpuses',\n            'cow' => 'cows',\n            'criterion' => 'criteria',\n            'curriculum' => 'curricula',\n            'demo' => 'demos',\n            'domino' => 'dominoes',\n            'echo' => 'echoes',\n            'foot' => 'feet',\n            'fungus' => 'fungi',\n            'ganglion' => 'ganglions',\n            'genie' => 'genies',\n            'genus' => 'genera',\n            'goose' => 'geese',\n            'graffito' => 'graffiti',\n            'hippopotamus' => 'hippopotami',\n            'hoof' => 'hoofs',\n            'human' => 'humans',\n            'iris' => 'irises',\n            'larva' => 'larvae',\n            'leaf' => 'leaves',\n            'loaf' => 'loaves',\n            'man' => 'men',\n            'medium' => 'media',\n            'memorandum' => 'memoranda',\n            'money' => 'monies',\n            'mongoose' => 'mongooses',\n            'motto' => 'mottoes',\n            'move' => 'moves',\n            'mythos' => 'mythoi',\n            'niche' => 'niches',\n            'nucleus' => 'nuclei',\n            'numen' => 'numina',\n            'occiput' => 'occiputs',\n            'octopus' => 'octopuses',\n            'opus' => 'opuses',\n            'ox' => 'oxen',\n            'passerby' => 'passersby',\n            'penis' => 'penises',\n            'person' => 'people',\n            'plateau' => 'plateaux',\n            'runner-up' => 'runners-up',\n            'sex' => 'sexes',\n            'soliloquy' => 'soliloquies',\n            'son-in-law' => 'sons-in-law',\n            'syllabus' => 'syllabi',\n            'testis' => 'testes',\n            'thief' => 'thieves',\n            'tooth' => 'teeth',\n            'tornado' => 'tornadoes',\n            'trilby' => 'trilbys',\n            'turf' => 'turfs',\n            'valve' => 'valves',\n            'volcano' => 'volcanoes',\n        )\n    );\n\n    /**\n     * Singular inflector rules.\n     *\n     * @var string[][]\n     */\n    private static $singular = array(\n        'rules' => array(\n            '/(s)tatuses$/i' => '\\1\\2tatus',\n            '/^(.*)(menu)s$/i' => '\\1\\2',\n            '/(quiz)zes$/i' => '\\\\1',\n            '/(matr)ices$/i' => '\\1ix',\n            '/(vert|ind)ices$/i' => '\\1ex',\n            '/^(ox)en/i' => '\\1',\n            '/(alias)(es)*$/i' => '\\1',\n            '/(buffal|her|potat|tomat|volcan)oes$/i' => '\\1o',\n            '/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\\1us',\n            '/([ftw]ax)es/i' => '\\1',\n            '/(analys|ax|cris|test|thes)es$/i' => '\\1is',\n            '/(shoe|slave)s$/i' => '\\1',\n            '/(o)es$/i' => '\\1',\n            '/ouses$/' => 'ouse',\n            '/([^a])uses$/' => '\\1us',\n            '/([m|l])ice$/i' => '\\1ouse',\n            '/(x|ch|ss|sh)es$/i' => '\\1',\n            '/(m)ovies$/i' => '\\1\\2ovie',\n            '/(s)eries$/i' => '\\1\\2eries',\n            '/([^aeiouy]|qu)ies$/i' => '\\1y',\n            '/([lr])ves$/i' => '\\1f',\n            '/(tive)s$/i' => '\\1',\n            '/(hive)s$/i' => '\\1',\n            '/(drive)s$/i' => '\\1',\n            '/(dive)s$/i' => '\\1',\n            '/(olive)s$/i' => '\\1',\n            '/([^fo])ves$/i' => '\\1fe',\n            '/(^analy)ses$/i' => '\\1sis',\n            '/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\\1\\2sis',\n            '/(c)riteria$/i' => '\\1riterion',\n            '/([ti])a$/i' => '\\1um',\n            '/(p)eople$/i' => '\\1\\2erson',\n            '/(m)en$/i' => '\\1an',\n            '/(c)hildren$/i' => '\\1\\2hild',\n            '/(f)eet$/i' => '\\1oot',\n            '/(n)ews$/i' => '\\1\\2ews',\n            '/eaus$/' => 'eau',\n            '/^(.*us)$/' => '\\\\1',\n            '/s$/i' => '',\n        ),\n        'uninflected' => array(\n            '.*[nrlm]ese',\n            '.*deer',\n            '.*fish',\n            '.*measles',\n            '.*ois',\n            '.*pox',\n            '.*sheep',\n            '.*ss',\n            'data',\n            'police',\n            'pants',\n            'clothes',\n        ),\n        'irregular' => array(\n            'abuses'     => 'abuse',\n            'avalanches' => 'avalanche',\n            'caches'     => 'cache',\n            'criteria'   => 'criterion',\n            'curves'     => 'curve',\n            'emphases'   => 'emphasis',\n            'foes'       => 'foe',\n            'geese'      => 'goose',\n            'graves'     => 'grave',\n            'hoaxes'     => 'hoax',\n            'media'      => 'medium',\n            'neuroses'   => 'neurosis',\n            'waves'      => 'wave',\n            'oases'      => 'oasis',\n            'valves'     => 'valve',\n        )\n    );\n\n    /**\n     * Words that should not be inflected.\n     *\n     * @var array\n     */\n    private static $uninflected = array(\n        '.*?media', 'Amoyese', 'audio', 'bison', 'Borghese', 'bream', 'breeches',\n        'britches', 'buffalo', 'cantus', 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'compensation', 'Congoese',\n        'contretemps', 'coreopsis', 'corps', 'data', 'debris', 'deer', 'diabetes', 'djinn', 'education', 'eland',\n        'elk', 'emoji', 'equipment', 'evidence', 'Faroese', 'feedback', 'fish', 'flounder', 'Foochowese',\n        'Furniture', 'furniture', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'gold', \n        'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', 'jackanapes', 'jedi',\n        'Kiplingese', 'knowledge', 'Kongoese', 'love', 'Lucchese', 'Luggage', 'mackerel', 'Maltese', 'metadata',\n        'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', 'nutrition', 'offspring',\n        'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'plankton', 'pliers', 'pokemon', 'police', 'Portuguese',\n        'proceedings', 'rabies', 'rain', 'rhinoceros', 'rice', 'salmon', 'Sarawakese', 'scissors', 'sea[- ]bass',\n        'series', 'Shavese', 'shears', 'sheep', 'siemens', 'species', 'staff', 'swine', 'traffic',\n        'trousers', 'trout', 'tuna', 'us', 'Vermontese', 'Wenchowese', 'wheat', 'whiting', 'wildebeest', 'Yengeese'\n    );\n\n    /**\n     * Method cache array.\n     *\n     * @var array\n     */\n    private static $cache = array();\n\n    /**\n     * The initial state of Inflector so reset() works.\n     *\n     * @var array\n     */\n    private static $initialState = array();\n\n    /**\n     * Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'.\n     */\n    public static function tableize(string $word) : string\n    {\n        return strtolower(preg_replace('~(?<=\\\\w)([A-Z])~', '_$1', $word));\n    }\n\n    /**\n     * Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'.\n     */\n    public static function classify(string $word) : string\n    {\n        return str_replace([' ', '_', '-'], '', ucwords($word, ' _-'));\n    }\n\n    /**\n     * Camelizes a word. This uses the classify() method and turns the first character to lowercase.\n     */\n    public static function camelize(string $word) : string\n    {\n        return lcfirst(self::classify($word));\n    }\n\n    /**\n     * Uppercases words with configurable delimeters between words.\n     *\n     * Takes a string and capitalizes all of the words, like PHP's built-in\n     * ucwords function. This extends that behavior, however, by allowing the\n     * word delimeters to be configured, rather than only separating on\n     * whitespace.\n     *\n     * Here is an example:\n     * <code>\n     * <?php\n     * $string = 'top-o-the-morning to all_of_you!';\n     * echo \\Doctrine\\Common\\Inflector\\Inflector::ucwords($string);\n     * // Top-O-The-Morning To All_of_you!\n     *\n     * echo \\Doctrine\\Common\\Inflector\\Inflector::ucwords($string, '-_ ');\n     * // Top-O-The-Morning To All_Of_You!\n     * ?>\n     * </code>\n     *\n     * @param string $string The string to operate on.\n     * @param string $delimiters A list of word separators.\n     *\n     * @return string The string with all delimeter-separated words capitalized.\n     */\n    public static function ucwords(string $string, string $delimiters = \" \\n\\t\\r\\0\\x0B-\") : string\n    {\n        return ucwords($string, $delimiters);\n    }\n\n    /**\n     * Clears Inflectors inflected value caches, and resets the inflection\n     * rules to the initial values.\n     */\n    public static function reset() : void\n    {\n        if (empty(self::$initialState)) {\n            self::$initialState = get_class_vars('Inflector');\n\n            return;\n        }\n\n        foreach (self::$initialState as $key => $val) {\n            if ($key !== 'initialState') {\n                self::${$key} = $val;\n            }\n        }\n    }\n\n    /**\n     * Adds custom inflection $rules, of either 'plural' or 'singular' $type.\n     *\n     * ### Usage:\n     *\n     * {{{\n     * Inflector::rules('plural', array('/^(inflect)or$/i' => '\\1ables'));\n     * Inflector::rules('plural', array(\n     *     'rules' => array('/^(inflect)ors$/i' => '\\1ables'),\n     *     'uninflected' => array('dontinflectme'),\n     *     'irregular' => array('red' => 'redlings')\n     * ));\n     * }}}\n     *\n     * @param string  $type         The type of inflection, either 'plural' or 'singular'\n     * @param array|iterable $rules An array of rules to be added.\n     * @param boolean $reset        If true, will unset default inflections for all\n     *                              new rules that are being defined in $rules.\n     *\n     * @return void\n     */\n    public static function rules(string $type, iterable $rules, bool $reset = false) : void\n    {\n        foreach ($rules as $rule => $pattern) {\n            if ( ! is_array($pattern)) {\n                continue;\n            }\n\n            if ($reset) {\n                self::${$type}[$rule] = $pattern;\n            } else {\n                self::${$type}[$rule] = ($rule === 'uninflected')\n                    ? array_merge($pattern, self::${$type}[$rule])\n                    : $pattern + self::${$type}[$rule];\n            }\n\n            unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]);\n\n            if (isset(self::${$type}['merged'][$rule])) {\n                unset(self::${$type}['merged'][$rule]);\n            }\n\n            if ($type === 'plural') {\n                self::$cache['pluralize'] = self::$cache['tableize'] = array();\n            } elseif ($type === 'singular') {\n                self::$cache['singularize'] = array();\n            }\n        }\n\n        self::${$type}['rules'] = $rules + self::${$type}['rules'];\n    }\n\n    /**\n     * Returns a word in plural form.\n     *\n     * @param string $word The word in singular form.\n     *\n     * @return string The word in plural form.\n     */\n    public static function pluralize(string $word) : string\n    {\n        if (isset(self::$cache['pluralize'][$word])) {\n            return self::$cache['pluralize'][$word];\n        }\n\n        if (!isset(self::$plural['merged']['irregular'])) {\n            self::$plural['merged']['irregular'] = self::$plural['irregular'];\n        }\n\n        if (!isset(self::$plural['merged']['uninflected'])) {\n            self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected);\n        }\n\n        if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) {\n            self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')';\n            self::$plural['cacheIrregular']   = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')';\n        }\n\n        if (preg_match('/(.*)\\\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) {\n            self::$cache['pluralize'][$word] = $regs[1] . $word[0] . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1);\n\n            return self::$cache['pluralize'][$word];\n        }\n\n        if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) {\n            self::$cache['pluralize'][$word] = $word;\n\n            return $word;\n        }\n\n        foreach (self::$plural['rules'] as $rule => $replacement) {\n            if (preg_match($rule, $word)) {\n                self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word);\n\n                return self::$cache['pluralize'][$word];\n            }\n        }\n    }\n\n    /**\n     * Returns a word in singular form.\n     *\n     * @param string $word The word in plural form.\n     *\n     * @return string The word in singular form.\n     */\n    public static function singularize(string $word) : string\n    {\n        if (isset(self::$cache['singularize'][$word])) {\n            return self::$cache['singularize'][$word];\n        }\n\n        if (!isset(self::$singular['merged']['uninflected'])) {\n            self::$singular['merged']['uninflected'] = array_merge(\n                self::$singular['uninflected'],\n                self::$uninflected\n            );\n        }\n\n        if (!isset(self::$singular['merged']['irregular'])) {\n            self::$singular['merged']['irregular'] = array_merge(\n                self::$singular['irregular'],\n                array_flip(self::$plural['irregular'])\n            );\n        }\n\n        if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) {\n            self::$singular['cacheUninflected'] = '(?:' . implode('|', self::$singular['merged']['uninflected']) . ')';\n            self::$singular['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$singular['merged']['irregular'])) . ')';\n        }\n\n        if (preg_match('/(.*)\\\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) {\n            self::$cache['singularize'][$word] = $regs[1] . $word[0] . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1);\n\n            return self::$cache['singularize'][$word];\n        }\n\n        if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) {\n            self::$cache['singularize'][$word] = $word;\n\n            return $word;\n        }\n\n        foreach (self::$singular['rules'] as $rule => $replacement) {\n            if (preg_match($rule, $word)) {\n                self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word);\n\n                return self::$cache['singularize'][$word];\n            }\n        }\n\n        self::$cache['singularize'][$word] = $word;\n\n        return $word;\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/.doctrine-project.json",
    "content": "{\n    \"active\": true,\n    \"name\": \"Instantiator\",\n    \"slug\": \"instantiator\",\n    \"docsSlug\": \"doctrine-instantiator\",\n    \"codePath\": \"/src\",\n    \"versions\": [\n        {\n            \"name\": \"1.1\",\n            \"branchName\": \"master\",\n            \"slug\": \"latest\",\n            \"aliases\": [\n                \"current\",\n                \"stable\"\n            ],\n            \"maintained\": true,\n            \"current\": true\n        },\n        {\n            \"name\": \"1.0\",\n            \"branchName\": \"1.0.x\",\n            \"slug\": \"1.0\"\n        }\n    ]\n}\n\n"
  },
  {
    "path": "vendor/doctrine/instantiator/CONTRIBUTING.md",
    "content": "# Contributing\n\n * Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard)\n * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)\n * Any contribution must provide tests for additional introduced conditions\n * Any un-confirmed issue needs a failing test case before being accepted\n * Pull requests must be sent from a new hotfix/feature branch, not from `master`.\n\n## Installation\n\nTo install the project and run the tests, you need to clone it first:\n\n```sh\n$ git clone git://github.com/doctrine/instantiator.git\n```\n\nYou will then need to run a composer installation:\n\n```sh\n$ cd Instantiator\n$ curl -s https://getcomposer.org/installer | php\n$ php composer.phar update\n```\n\n## Testing\n\nThe PHPUnit version to be used is the one installed as a dev- dependency via composer:\n\n```sh\n$ ./vendor/bin/phpunit\n```\n\nAccepted coverage for new contributions is 80%. Any contribution not satisfying this requirement \nwon't be merged.\n\n"
  },
  {
    "path": "vendor/doctrine/instantiator/LICENSE",
    "content": "Copyright (c) 2014 Doctrine Project\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/doctrine/instantiator/README.md",
    "content": "# Instantiator\n\nThis library provides a way of avoiding usage of constructors when instantiating PHP classes.\n\n[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator)\n[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/instantiator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/instantiator/?branch=master)\n[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator)\n\n[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator)\n[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator)\n\n## Installation\n\nThe suggested installation method is via [composer](https://getcomposer.org/):\n\n```sh\nphp composer.phar require \"doctrine/instantiator:~1.0.3\"\n```\n\n## Usage\n\nThe instantiator is able to create new instances of any class without using the constructor or any API of the class\nitself:\n\n```php\n$instantiator = new \\Doctrine\\Instantiator\\Instantiator();\n\n$instance = $instantiator->instantiate(\\My\\ClassName\\Here::class);\n```\n\n## Contributing\n\nPlease read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!\n\n## Credits\n\nThis library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which\nhas been donated to the doctrine organization, and which is now deprecated in favour of this package.\n"
  },
  {
    "path": "vendor/doctrine/instantiator/composer.json",
    "content": "{\n    \"name\":              \"doctrine/instantiator\",\n    \"description\":       \"A small, lightweight utility to instantiate objects in PHP without invoking their constructors\",\n    \"type\":              \"library\",\n    \"license\":           \"MIT\",\n    \"homepage\":          \"https://www.doctrine-project.org/projects/instantiator.html\",\n    \"keywords\":          [\n        \"instantiate\",\n        \"constructor\"\n    ],\n    \"authors\": [\n        {\n            \"name\":     \"Marco Pivetta\",\n            \"email\":    \"ocramius@gmail.com\",\n            \"homepage\": \"http://ocramius.github.com/\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1\"\n    },\n    \"require-dev\": {\n        \"ext-phar\":                  \"*\",\n        \"ext-pdo\":                   \"*\",\n        \"doctrine/coding-standard\":  \"^6.0\",\n        \"phpbench/phpbench\":         \"^0.13\",\n        \"phpstan/phpstan-phpunit\":   \"^0.11\",\n        \"phpstan/phpstan-shim\":      \"^0.11\",\n        \"phpunit/phpunit\":           \"^7.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Doctrine\\\\Instantiator\\\\\": \"src/Doctrine/Instantiator/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-0\": {\n            \"DoctrineTest\\\\InstantiatorPerformance\\\\\": \"tests\",\n            \"DoctrineTest\\\\InstantiatorTest\\\\\": \"tests\",\n            \"DoctrineTest\\\\InstantiatorTestAsset\\\\\": \"tests\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.2.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/docs/en/index.rst",
    "content": "Introduction\n============\n\nThis library provides a way of avoiding usage of constructors when instantiating PHP classes.\n\nInstallation\n============\n\nThe suggested installation method is via `composer`_:\n\n.. code-block:: console\n\n   $ composer require doctrine/instantiator\n\nUsage\n=====\n\nThe instantiator is able to create new instances of any class without\nusing the constructor or any API of the class itself:\n\n.. code-block:: php\n\n    <?php\n\n    use Doctrine\\Instantiator\\Instantiator;\n    use App\\Entities\\User;\n\n    $instantiator = new Instantiator();\n\n    $user = $instantiator->instantiate(User::class);\n\nContributing\n============\n\n-  Follow the `Doctrine Coding Standard`_\n-  The project will follow strict `object calisthenics`_\n-  Any contribution must provide tests for additional introduced\n   conditions\n-  Any un-confirmed issue needs a failing test case before being\n   accepted\n-  Pull requests must be sent from a new hotfix/feature branch, not from\n   ``master``.\n\nTesting\n=======\n\nThe PHPUnit version to be used is the one installed as a dev- dependency\nvia composer:\n\n.. code-block:: console\n\n   $ ./vendor/bin/phpunit\n\nAccepted coverage for new contributions is 80%. Any contribution not\nsatisfying this requirement won’t be merged.\n\nCredits\n=======\n\nThis library was migrated from `ocramius/instantiator`_, which has been\ndonated to the doctrine organization, and which is now deprecated in\nfavour of this package.\n\n.. _composer: https://getcomposer.org/\n.. _CONTRIBUTING.md: CONTRIBUTING.md\n.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator\n.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard\n.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php\n"
  },
  {
    "path": "vendor/doctrine/instantiator/docs/en/sidebar.rst",
    "content": ".. toctree::\n    :depth: 3\n\n    index\n"
  },
  {
    "path": "vendor/doctrine/instantiator/phpbench.json",
    "content": "{\n    \"bootstrap\": \"vendor/autoload.php\",\n    \"path\": \"tests/DoctrineTest/InstantiatorPerformance\"\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/phpcs.xml.dist",
    "content": "<?xml version=\"1.0\"?>\n<ruleset>\n    <arg name=\"basepath\" value=\".\"/>\n    <arg name=\"extensions\" value=\"php\"/>\n    <arg name=\"parallel\" value=\"80\"/>\n    <arg name=\"cache\" value=\".phpcs-cache\"/>\n    <arg name=\"colors\"/>\n\n    <!-- Ignore warnings, show progress of the run and show sniff names -->\n    <arg value=\"nps\"/>\n\n    <file>src</file>\n    <file>tests</file>\n\n    <rule ref=\"Doctrine\">\n        <exclude name=\"SlevomatCodingStandard.TypeHints.DeclareStrictTypes\"/>\n        <exclude name=\"SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint\"/>\n        <exclude name=\"SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint\"/>\n        <exclude name=\"SlevomatCodingStandard.Exceptions.ReferenceThrowableOnly.ReferencedGeneralException\"/>\n    </rule>\n\n    <rule ref=\"SlevomatCodingStandard.Classes.SuperfluousAbstractClassNaming\">\n        <exclude-pattern>tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php</exclude-pattern>\n    </rule>\n\n    <rule ref=\"SlevomatCodingStandard.Classes.SuperfluousExceptionNaming\">\n        <exclude-pattern>src/Doctrine/Instantiator/Exception/UnexpectedValueException.php</exclude-pattern>\n        <exclude-pattern>src/Doctrine/Instantiator/Exception/InvalidArgumentException.php</exclude-pattern>\n    </rule>\n\n    <rule ref=\"SlevomatCodingStandard.Classes.SuperfluousInterfaceNaming\">\n        <exclude-pattern>src/Doctrine/Instantiator/Exception/ExceptionInterface.php</exclude-pattern>\n        <exclude-pattern>src/Doctrine/Instantiator/InstantiatorInterface.php</exclude-pattern>\n    </rule>\n</ruleset>\n"
  },
  {
    "path": "vendor/doctrine/instantiator/phpstan.neon.dist",
    "content": "includes:\n    - vendor/phpstan/phpstan-phpunit/extension.neon\n    - vendor/phpstan/phpstan-phpunit/rules.neon\n\nparameters:\n    level: max\n    paths:\n        - src\n        - tests\n\n    ignoreErrors:\n        -\n            message: '#::__construct\\(\\) does not call parent constructor from#'\n            path: '*/tests/DoctrineTest/InstantiatorTestAsset/*.php'\n\n        # dynamic properties confuse static analysis\n        -\n            message: '#Access to an undefined property object::\\$foo\\.#'\n            path: '*/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php'\n"
  },
  {
    "path": "vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php",
    "content": "<?php\n\nnamespace Doctrine\\Instantiator\\Exception;\n\nuse Throwable;\n\n/**\n * Base exception marker interface for the instantiator component\n */\ninterface ExceptionInterface extends Throwable\n{\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php",
    "content": "<?php\n\nnamespace Doctrine\\Instantiator\\Exception;\n\nuse InvalidArgumentException as BaseInvalidArgumentException;\nuse ReflectionClass;\nuse const PHP_VERSION_ID;\nuse function interface_exists;\nuse function sprintf;\nuse function trait_exists;\n\n/**\n * Exception for invalid arguments provided to the instantiator\n */\nclass InvalidArgumentException extends BaseInvalidArgumentException implements ExceptionInterface\n{\n    public static function fromNonExistingClass(string $className) : self\n    {\n        if (interface_exists($className)) {\n            return new self(sprintf('The provided type \"%s\" is an interface, and can not be instantiated', $className));\n        }\n\n        if (PHP_VERSION_ID >= 50400 && trait_exists($className)) {\n            return new self(sprintf('The provided type \"%s\" is a trait, and can not be instantiated', $className));\n        }\n\n        return new self(sprintf('The provided class \"%s\" does not exist', $className));\n    }\n\n    public static function fromAbstractClass(ReflectionClass $reflectionClass) : self\n    {\n        return new self(sprintf(\n            'The provided class \"%s\" is abstract, and can not be instantiated',\n            $reflectionClass->getName()\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php",
    "content": "<?php\n\nnamespace Doctrine\\Instantiator\\Exception;\n\nuse Exception;\nuse ReflectionClass;\nuse UnexpectedValueException as BaseUnexpectedValueException;\nuse function sprintf;\n\n/**\n * Exception for given parameters causing invalid/unexpected state on instantiation\n */\nclass UnexpectedValueException extends BaseUnexpectedValueException implements ExceptionInterface\n{\n    public static function fromSerializationTriggeredException(\n        ReflectionClass $reflectionClass,\n        Exception $exception\n    ) : self {\n        return new self(\n            sprintf(\n                'An exception was raised while trying to instantiate an instance of \"%s\" via un-serialization',\n                $reflectionClass->getName()\n            ),\n            0,\n            $exception\n        );\n    }\n\n    public static function fromUncleanUnSerialization(\n        ReflectionClass $reflectionClass,\n        string $errorString,\n        int $errorCode,\n        string $errorFile,\n        int $errorLine\n    ) : self {\n        return new self(\n            sprintf(\n                'Could not produce an instance of \"%s\" via un-serialization, since an error was triggered '\n                . 'in file \"%s\" at line \"%d\"',\n                $reflectionClass->getName(),\n                $errorFile,\n                $errorLine\n            ),\n            0,\n            new Exception($errorString, $errorCode)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php",
    "content": "<?php\n\nnamespace Doctrine\\Instantiator;\n\nuse Doctrine\\Instantiator\\Exception\\InvalidArgumentException;\nuse Doctrine\\Instantiator\\Exception\\UnexpectedValueException;\nuse Exception;\nuse ReflectionClass;\nuse ReflectionException;\nuse function class_exists;\nuse function restore_error_handler;\nuse function set_error_handler;\nuse function sprintf;\nuse function strlen;\nuse function unserialize;\n\n/**\n * {@inheritDoc}\n */\nfinal class Instantiator implements InstantiatorInterface\n{\n    /**\n     * Markers used internally by PHP to define whether {@see \\unserialize} should invoke\n     * the method {@see \\Serializable::unserialize()} when dealing with classes implementing\n     * the {@see \\Serializable} interface.\n     */\n    public const SERIALIZATION_FORMAT_USE_UNSERIALIZER   = 'C';\n    public const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O';\n\n    /**\n     * Used to instantiate specific classes, indexed by class name.\n     *\n     * @var callable[]\n     */\n    private static $cachedInstantiators = [];\n\n    /**\n     * Array of objects that can directly be cloned, indexed by class name.\n     *\n     * @var object[]\n     */\n    private static $cachedCloneables = [];\n\n    /**\n     * {@inheritDoc}\n     */\n    public function instantiate($className)\n    {\n        if (isset(self::$cachedCloneables[$className])) {\n            return clone self::$cachedCloneables[$className];\n        }\n\n        if (isset(self::$cachedInstantiators[$className])) {\n            $factory = self::$cachedInstantiators[$className];\n\n            return $factory();\n        }\n\n        return $this->buildAndCacheFromFactory($className);\n    }\n\n    /**\n     * Builds the requested object and caches it in static properties for performance\n     *\n     * @return object\n     */\n    private function buildAndCacheFromFactory(string $className)\n    {\n        $factory  = self::$cachedInstantiators[$className] = $this->buildFactory($className);\n        $instance = $factory();\n\n        if ($this->isSafeToClone(new ReflectionClass($instance))) {\n            self::$cachedCloneables[$className] = clone $instance;\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Builds a callable capable of instantiating the given $className without\n     * invoking its constructor.\n     *\n     * @throws InvalidArgumentException\n     * @throws UnexpectedValueException\n     * @throws ReflectionException\n     */\n    private function buildFactory(string $className) : callable\n    {\n        $reflectionClass = $this->getReflectionClass($className);\n\n        if ($this->isInstantiableViaReflection($reflectionClass)) {\n            return [$reflectionClass, 'newInstanceWithoutConstructor'];\n        }\n\n        $serializedString = sprintf(\n            '%s:%d:\"%s\":0:{}',\n            self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,\n            strlen($className),\n            $className\n        );\n\n        $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);\n\n        return static function () use ($serializedString) {\n            return unserialize($serializedString);\n        };\n    }\n\n    /**\n     * @param string $className\n     *\n     * @throws InvalidArgumentException\n     * @throws ReflectionException\n     */\n    private function getReflectionClass($className) : ReflectionClass\n    {\n        if (! class_exists($className)) {\n            throw InvalidArgumentException::fromNonExistingClass($className);\n        }\n\n        $reflection = new ReflectionClass($className);\n\n        if ($reflection->isAbstract()) {\n            throw InvalidArgumentException::fromAbstractClass($reflection);\n        }\n\n        return $reflection;\n    }\n\n    /**\n     * @throws UnexpectedValueException\n     */\n    private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString) : void\n    {\n        set_error_handler(static function ($code, $message, $file, $line) use ($reflectionClass, & $error) : void {\n            $error = UnexpectedValueException::fromUncleanUnSerialization(\n                $reflectionClass,\n                $message,\n                $code,\n                $file,\n                $line\n            );\n        });\n\n        try {\n            $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);\n        } finally {\n            restore_error_handler();\n        }\n\n        if ($error) {\n            throw $error;\n        }\n    }\n\n    /**\n     * @throws UnexpectedValueException\n     */\n    private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString) : void\n    {\n        try {\n            unserialize($serializedString);\n        } catch (Exception $exception) {\n            throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception);\n        }\n    }\n\n    private function isInstantiableViaReflection(ReflectionClass $reflectionClass) : bool\n    {\n        return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal());\n    }\n\n    /**\n     * Verifies whether the given class is to be considered internal\n     */\n    private function hasInternalAncestors(ReflectionClass $reflectionClass) : bool\n    {\n        do {\n            if ($reflectionClass->isInternal()) {\n                return true;\n            }\n\n            $reflectionClass = $reflectionClass->getParentClass();\n        } while ($reflectionClass);\n\n        return false;\n    }\n\n    /**\n     * Checks if a class is cloneable\n     *\n     * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.\n     */\n    private function isSafeToClone(ReflectionClass $reflection) : bool\n    {\n        return $reflection->isCloneable() && ! $reflection->hasMethod('__clone');\n    }\n}\n"
  },
  {
    "path": "vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php",
    "content": "<?php\n\nnamespace Doctrine\\Instantiator;\n\nuse Doctrine\\Instantiator\\Exception\\ExceptionInterface;\n\n/**\n * Instantiator provides utility methods to build objects without invoking their constructors\n */\ninterface InstantiatorInterface\n{\n    /**\n     * @param string $className\n     *\n     * @return object\n     *\n     * @throws ExceptionInterface\n     */\n    public function instantiate($className);\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/.editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\ntrim_trailing_whitespace = true\n\n[*.md]\ntrim_trailing_whitespace = false\n\n[*.yml]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/CHANGELOG.md",
    "content": "# Change Log\n\n## [2.3.0] - 2019-03-30\n### Added\n- Added support for DateTimeImmutable via DateTimeInterface\n- Added support for PHP 7.3\n- Started listing projects that use the library\n### Changed\n- Errors should now report a human readable position in the cron expression, instead of starting at 0\n### Fixed\n- N/A\n\n## [2.2.0] - 2018-06-05\n### Added\n- Added support for steps larger than field ranges (#6)\n## Changed\n- N/A\n### Fixed\n- Fixed validation for numbers with leading 0s (#12)\n\n## [2.1.0] - 2018-04-06\n### Added\n- N/A\n### Changed\n- Upgraded to PHPUnit 6 (#2)\n### Fixed\n- Refactored timezones to deal with some inconsistent behavior (#3)\n- Allow ranges and lists in same expression (#5)\n- Fixed regression where literals were not converted to their numerical counterpart (#)\n\n## [2.0.0] - 2017-10-12\n### Added\n- N/A\n\n### Changed\n- Dropped support for PHP 5.x\n- Dropped support for the YEAR field, as it was not part of the cron standard\n\n### Fixed\n- Reworked validation for all the field types\n- Stepping should now work for 1-indexed fields like Month (#153)\n\n## [1.2.0] - 2017-01-22\n### Added\n- Added IDE, CodeSniffer, and StyleCI.IO support\n\n### Changed\n- Switched to PSR-4 Autoloading\n\n### Fixed\n- 0 step expressions are handled better\n- Fixed `DayOfMonth` validation to be more strict\n- Typos\n\n## [1.1.0] - 2016-01-26\n### Added\n- Support for non-hourly offset timezones \n- Checks for valid expressions\n\n### Changed\n- Max Iterations no longer hardcoded for `getRunDate()`\n- Supports DateTimeImmutable for newer PHP verions\n\n### Fixed\n- Fixed looping bug for PHP 7 when determining the last specified weekday of a month\n\n## [1.0.3] - 2013-11-23\n### Added\n- Now supports expressions with any number of extra spaces, tabs, or newlines\n\n### Changed\n- Using static instead of self in `CronExpression::factory`\n\n### Fixed\n- Fixes issue [#28](https://github.com/mtdowling/cron-expression/issues/28) where PHP increments of ranges were failing due to PHP casting hyphens to 0\n- Only set default timezone if the given $currentTime is not a DateTime instance ([#34](https://github.com/mtdowling/cron-expression/issues/34))\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/LICENSE",
    "content": "Copyright (c) 2011 Michael Dowling <mtdowling@gmail.com>, 2016 Chris Tankersley <chris@ctankersley.com>, and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/README.md",
    "content": "PHP Cron Expression Parser\n==========================\n\n[![Latest Stable Version](https://poser.pugx.org/dragonmantank/cron-expression/v/stable.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Total Downloads](https://poser.pugx.org/dragonmantank/cron-expression/downloads.png)](https://packagist.org/packages/dragonmantank/cron-expression) [![Build Status](https://secure.travis-ci.org/dragonmantank/cron-expression.png)](http://travis-ci.org/dragonmantank/cron-expression)\n\nThe PHP cron expression parser can parse a CRON expression, determine if it is\ndue to run, calculate the next run date of the expression, and calculate the previous\nrun date of the expression.  You can calculate dates far into the future or past by\nskipping **n** number of matching dates.\n\nThe parser can handle increments of ranges (e.g. */12, 2-59/3), intervals (e.g. 0-9),\nlists (e.g. 1,2,3), **W** to find the nearest weekday for a given day of the month, **L** to\nfind the last day of the month, **L** to find the last given weekday of a month, and hash\n(#) to find the nth weekday of a given month.\n\nMore information about this fork can be found in the blog post [here](http://ctankersley.com/2017/10/12/cron-expression-update/). tl;dr - v2.0.0 is a major breaking change, and @dragonmantank can better take care of the project in a separate fork.\n\nInstalling\n==========\n\nAdd the dependency to your project:\n\n```bash\ncomposer require dragonmantank/cron-expression\n```\n\nUsage\n=====\n```php\n<?php\n\nrequire_once '/vendor/autoload.php';\n\n// Works with predefined scheduling definitions\n$cron = Cron\\CronExpression::factory('@daily');\n$cron->isDue();\necho $cron->getNextRunDate()->format('Y-m-d H:i:s');\necho $cron->getPreviousRunDate()->format('Y-m-d H:i:s');\n\n// Works with complex expressions\n$cron = Cron\\CronExpression::factory('3-59/15 6-12 */15 1 2-5');\necho $cron->getNextRunDate()->format('Y-m-d H:i:s');\n\n// Calculate a run date two iterations into the future\n$cron = Cron\\CronExpression::factory('@daily');\necho $cron->getNextRunDate(null, 2)->format('Y-m-d H:i:s');\n\n// Calculate a run date relative to a specific time\n$cron = Cron\\CronExpression::factory('@monthly');\necho $cron->getNextRunDate('2010-01-12 00:00:00')->format('Y-m-d H:i:s');\n```\n\nCRON Expressions\n================\n\nA CRON expression is a string representing the schedule for a particular command to execute.  The parts of a CRON schedule are as follows:\n\n    *    *    *    *    *\n    -    -    -    -    -\n    |    |    |    |    |\n    |    |    |    |    |\n    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)\n    |    |    |    +---------- month (1 - 12)\n    |    |    +--------------- day of month (1 - 31)\n    |    +-------------------- hour (0 - 23)\n    +------------------------- min (0 - 59)\n\nRequirements\n============\n\n- PHP 7.0+\n- PHPUnit is required to run the unit tests\n- Composer is required to run the unit tests\n\nProjects that Use cron-expression\n=================================\n* Part of the [Laravel Framework](https://github.com/laravel/framework/)\n* Available as a [Symfony Bundle - setono/cron-expression-bundle](https://github.com/Setono/CronExpressionBundle)"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/composer.json",
    "content": "{\n    \"name\": \"dragonmantank/cron-expression\",\n    \"type\": \"library\",\n    \"description\": \"CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due\",\n    \"keywords\": [\"cron\", \"schedule\"],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Michael Dowling\",\n            \"email\": \"mtdowling@gmail.com\",\n            \"homepage\": \"https://github.com/mtdowling\"\n        },\n        {\n            \"name\": \"Chris Tankersley\",\n            \"email\": \"chris@ctankersley.com\",\n            \"homepage\": \"https://github.com/dragonmantank\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.0\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^6.4|^7.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Cron\\\\\": \"src/Cron/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Tests\\\\\": \"tests/Cron/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"2.3-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/AbstractField.php",
    "content": "<?php\n\nnamespace Cron;\n\n/**\n * Abstract CRON expression field\n */\nabstract class AbstractField implements FieldInterface\n{\n    /**\n     * Full range of values that are allowed for this field type\n     * @var array\n     */\n    protected $fullRange = [];\n\n    /**\n     * Literal values we need to convert to integers\n     * @var array\n     */\n    protected $literals = [];\n\n    /**\n     * Start value of the full range\n     * @var integer\n     */\n    protected $rangeStart;\n\n    /**\n     * End value of the full range\n     * @var integer\n     */\n    protected $rangeEnd;\n\n    /**\n     * Constructor\n     */\n    public function __construct()\n    {\n        $this->fullRange = range($this->rangeStart, $this->rangeEnd);\n    }\n\n    /**\n     * Check to see if a field is satisfied by a value\n     *\n     * @param string $dateValue Date value to check\n     * @param string $value     Value to test\n     *\n     * @return bool\n     */\n    public function isSatisfied($dateValue, $value)\n    {\n        if ($this->isIncrementsOfRanges($value)) {\n            return $this->isInIncrementsOfRanges($dateValue, $value);\n        } elseif ($this->isRange($value)) {\n            return $this->isInRange($dateValue, $value);\n        }\n\n        return $value == '*' || $dateValue == $value;\n    }\n\n    /**\n     * Check if a value is a range\n     *\n     * @param string $value Value to test\n     *\n     * @return bool\n     */\n    public function isRange($value)\n    {\n        return strpos($value, '-') !== false;\n    }\n\n    /**\n     * Check if a value is an increments of ranges\n     *\n     * @param string $value Value to test\n     *\n     * @return bool\n     */\n    public function isIncrementsOfRanges($value)\n    {\n        return strpos($value, '/') !== false;\n    }\n\n    /**\n     * Test if a value is within a range\n     *\n     * @param string $dateValue Set date value\n     * @param string $value     Value to test\n     *\n     * @return bool\n     */\n    public function isInRange($dateValue, $value)\n    {\n        $parts = array_map(function($value) {\n                $value = trim($value);\n                $value = $this->convertLiterals($value);\n                return $value;\n            },\n            explode('-', $value, 2)\n        );\n\n\n        return $dateValue >= $parts[0] && $dateValue <= $parts[1];\n    }\n\n    /**\n     * Test if a value is within an increments of ranges (offset[-to]/step size)\n     *\n     * @param string $dateValue Set date value\n     * @param string $value     Value to test\n     *\n     * @return bool\n     */\n    public function isInIncrementsOfRanges($dateValue, $value)\n    {\n        $chunks = array_map('trim', explode('/', $value, 2));\n        $range = $chunks[0];\n        $step = isset($chunks[1]) ? $chunks[1] : 0;\n\n        // No step or 0 steps aren't cool\n        if (is_null($step) || '0' === $step || 0 === $step) {\n            return false;\n        }\n\n        // Expand the * to a full range\n        if ('*' == $range) {\n            $range = $this->rangeStart . '-' . $this->rangeEnd;\n        }\n\n        // Generate the requested small range\n        $rangeChunks = explode('-', $range, 2);\n        $rangeStart = $rangeChunks[0];\n        $rangeEnd = isset($rangeChunks[1]) ? $rangeChunks[1] : $rangeStart;\n\n        if ($rangeStart < $this->rangeStart || $rangeStart > $this->rangeEnd || $rangeStart > $rangeEnd) {\n            throw new \\OutOfRangeException('Invalid range start requested');\n        }\n\n        if ($rangeEnd < $this->rangeStart || $rangeEnd > $this->rangeEnd || $rangeEnd < $rangeStart) {\n            throw new \\OutOfRangeException('Invalid range end requested');\n        }\n\n        // Steps larger than the range need to wrap around and be handled slightly differently than smaller steps\n        if ($step >= $this->rangeEnd) {\n            $thisRange = [$this->fullRange[$step % count($this->fullRange)]];\n        } else {\n            $thisRange = range($rangeStart, $rangeEnd, $step);\n        }\n\n        return in_array($dateValue, $thisRange);\n    }\n\n    /**\n     * Returns a range of values for the given cron expression\n     *\n     * @param string $expression The expression to evaluate\n     * @param int $max           Maximum offset for range\n     *\n     * @return array\n     */\n    public function getRangeForExpression($expression, $max)\n    {\n        $values = array();\n        $expression = $this->convertLiterals($expression);\n\n        if (strpos($expression, ',') !== false) {\n            $ranges = explode(',', $expression);\n            $values = [];\n            foreach ($ranges as $range) {\n                $expanded = $this->getRangeForExpression($range, $this->rangeEnd);\n                $values = array_merge($values, $expanded);\n            }\n            return $values;\n        }\n\n        if ($this->isRange($expression) || $this->isIncrementsOfRanges($expression)) {\n            if (!$this->isIncrementsOfRanges($expression)) {\n                list ($offset, $to) = explode('-', $expression);\n                $offset = $this->convertLiterals($offset);\n                $to = $this->convertLiterals($to);\n                $stepSize = 1;\n            }\n            else {\n                $range = array_map('trim', explode('/', $expression, 2));\n                $stepSize = isset($range[1]) ? $range[1] : 0;\n                $range = $range[0];\n                $range = explode('-', $range, 2);\n                $offset = $range[0];\n                $to = isset($range[1]) ? $range[1] : $max;\n            }\n            $offset = $offset == '*' ? $this->rangeStart : $offset;\n            if ($stepSize >= $this->rangeEnd) {\n                $values = [$this->fullRange[$stepSize % count($this->fullRange)]];\n            } else {\n                for ($i = $offset; $i <= $to; $i += $stepSize) {\n                    $values[] = (int)$i;\n                }\n            }\n            sort($values);\n        }\n        else {\n            $values = array($expression);\n        }\n\n        return $values;\n    }\n\n    /**\n     * Convert literal\n     *\n     * @param string $value\n     * @return string\n     */\n    protected function convertLiterals($value)\n    {\n        if (count($this->literals)) {\n            $key = array_search($value, $this->literals);\n            if ($key !== false) {\n                return (string) $key;\n            }\n        }\n\n        return $value;\n    }\n\n    /**\n     * Checks to see if a value is valid for the field\n     *\n     * @param string $value\n     * @return bool\n     */\n    public function validate($value)\n    {\n        $value = $this->convertLiterals($value);\n\n        // All fields allow * as a valid value\n        if ('*' === $value) {\n            return true;\n        }\n\n        if (strpos($value, '/') !== false) {\n            list($range, $step) = explode('/', $value);\n            return $this->validate($range) && filter_var($step, FILTER_VALIDATE_INT);\n        }\n\n        // Validate each chunk of a list individually\n        if (strpos($value, ',') !== false) {\n            foreach (explode(',', $value) as $listItem) {\n                if (!$this->validate($listItem)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n\n        if (strpos($value, '-') !== false) {\n            if (substr_count($value, '-') > 1) {\n                return false;\n            }\n\n            $chunks = explode('-', $value);\n            $chunks[0] = $this->convertLiterals($chunks[0]);\n            $chunks[1] = $this->convertLiterals($chunks[1]);\n\n            if ('*' == $chunks[0] || '*' == $chunks[1]) {\n                return false;\n            }\n\n            return $this->validate($chunks[0]) && $this->validate($chunks[1]);\n        }\n\n        if (!is_numeric($value)) {\n            return false;\n        }\n\n        if (is_float($value) || strpos($value, '.') !== false) {\n            return false;\n        }\n\n        // We should have a numeric by now, so coerce this into an integer\n        $value = (int) $value;\n\n        return in_array($value, $this->fullRange, true);\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTime;\nuse DateTimeImmutable;\nuse DateTimeInterface;\nuse DateTimeZone;\nuse Exception;\nuse InvalidArgumentException;\nuse RuntimeException;\n\n/**\n * CRON expression parser that can determine whether or not a CRON expression is\n * due to run, the next run date and previous run date of a CRON expression.\n * The determinations made by this class are accurate if checked run once per\n * minute (seconds are dropped from date time comparisons).\n *\n * Schedule parts must map to:\n * minute [0-59], hour [0-23], day of month, month [1-12|JAN-DEC], day of week\n * [1-7|MON-SUN], and an optional year.\n *\n * @link http://en.wikipedia.org/wiki/Cron\n */\nclass CronExpression\n{\n    const MINUTE = 0;\n    const HOUR = 1;\n    const DAY = 2;\n    const MONTH = 3;\n    const WEEKDAY = 4;\n    const YEAR = 5;\n\n    /**\n     * @var array CRON expression parts\n     */\n    private $cronParts;\n\n    /**\n     * @var FieldFactory CRON field factory\n     */\n    private $fieldFactory;\n\n    /**\n     * @var int Max iteration count when searching for next run date\n     */\n    private $maxIterationCount = 1000;\n\n    /**\n     * @var array Order in which to test of cron parts\n     */\n    private static $order = array(self::YEAR, self::MONTH, self::DAY, self::WEEKDAY, self::HOUR, self::MINUTE);\n\n    /**\n     * Factory method to create a new CronExpression.\n     *\n     * @param string $expression The CRON expression to create.  There are\n     *                           several special predefined values which can be used to substitute the\n     *                           CRON expression:\n     *\n     *      `@yearly`, `@annually` - Run once a year, midnight, Jan. 1 - 0 0 1 1 *\n     *      `@monthly` - Run once a month, midnight, first of month - 0 0 1 * *\n     *      `@weekly` - Run once a week, midnight on Sun - 0 0 * * 0\n     *      `@daily` - Run once a day, midnight - 0 0 * * *\n     *      `@hourly` - Run once an hour, first minute - 0 * * * *\n     * @param FieldFactory|null $fieldFactory Field factory to use\n     *\n     * @return CronExpression\n     */\n    public static function factory($expression, FieldFactory $fieldFactory = null)\n    {\n        $mappings = array(\n            '@yearly' => '0 0 1 1 *',\n            '@annually' => '0 0 1 1 *',\n            '@monthly' => '0 0 1 * *',\n            '@weekly' => '0 0 * * 0',\n            '@daily' => '0 0 * * *',\n            '@hourly' => '0 * * * *'\n        );\n\n        if (isset($mappings[$expression])) {\n            $expression = $mappings[$expression];\n        }\n\n        return new static($expression, $fieldFactory ?: new FieldFactory());\n    }\n\n    /**\n     * Validate a CronExpression.\n     *\n     * @param string $expression The CRON expression to validate.\n     *\n     * @return bool True if a valid CRON expression was passed. False if not.\n     * @see \\Cron\\CronExpression::factory\n     */\n    public static function isValidExpression($expression)\n    {\n        try {\n            self::factory($expression);\n        } catch (InvalidArgumentException $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Parse a CRON expression\n     *\n     * @param string       $expression   CRON expression (e.g. '8 * * * *')\n     * @param FieldFactory|null $fieldFactory Factory to create cron fields\n     */\n    public function __construct($expression, FieldFactory $fieldFactory = null)\n    {\n        $this->fieldFactory = $fieldFactory;\n        $this->setExpression($expression);\n    }\n\n    /**\n     * Set or change the CRON expression\n     *\n     * @param string $value CRON expression (e.g. 8 * * * *)\n     *\n     * @return CronExpression\n     * @throws \\InvalidArgumentException if not a valid CRON expression\n     */\n    public function setExpression($value)\n    {\n        $this->cronParts = preg_split('/\\s/', $value, -1, PREG_SPLIT_NO_EMPTY);\n        if (count($this->cronParts) < 5) {\n            throw new InvalidArgumentException(\n                $value . ' is not a valid CRON expression'\n            );\n        }\n\n        foreach ($this->cronParts as $position => $part) {\n            $this->setPart($position, $part);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set part of the CRON expression\n     *\n     * @param int    $position The position of the CRON expression to set\n     * @param string $value    The value to set\n     *\n     * @return CronExpression\n     * @throws \\InvalidArgumentException if the value is not valid for the part\n     */\n    public function setPart($position, $value)\n    {\n        if (!$this->fieldFactory->getField($position)->validate($value)) {\n            throw new InvalidArgumentException(\n                'Invalid CRON field value ' . $value . ' at position ' . $position\n            );\n        }\n\n        $this->cronParts[$position] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set max iteration count for searching next run dates\n     *\n     * @param int $maxIterationCount Max iteration count when searching for next run date\n     *\n     * @return CronExpression\n     */\n    public function setMaxIterationCount($maxIterationCount)\n    {\n        $this->maxIterationCount = $maxIterationCount;\n\n        return $this;\n    }\n\n    /**\n     * Get a next run date relative to the current date or a specific date\n     *\n     * @param string|\\DateTimeInterface $currentTime      Relative calculation date\n     * @param int                       $nth              Number of matches to skip before returning a\n     *                                                    matching next run date.  0, the default, will return the\n     *                                                    current date and time if the next run date falls on the\n     *                                                    current date and time.  Setting this value to 1 will\n     *                                                    skip the first match and go to the second match.\n     *                                                    Setting this value to 2 will skip the first 2\n     *                                                    matches and so on.\n     * @param bool                      $allowCurrentDate Set to TRUE to return the current date if\n     *                                                    it matches the cron expression.\n     * @param null|string               $timeZone         TimeZone to use instead of the system default\n     *\n     * @return \\DateTime\n     * @throws \\RuntimeException on too many iterations\n     */\n    public function getNextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null)\n    {\n        return $this->getRunDate($currentTime, $nth, false, $allowCurrentDate, $timeZone);\n    }\n\n    /**\n     * Get a previous run date relative to the current date or a specific date\n     *\n     * @param string|\\DateTimeInterface $currentTime      Relative calculation date\n     * @param int                       $nth              Number of matches to skip before returning\n     * @param bool                      $allowCurrentDate Set to TRUE to return the\n     *                                                    current date if it matches the cron expression\n     * @param null|string               $timeZone         TimeZone to use instead of the system default\n     *\n     * @return \\DateTime\n     * @throws \\RuntimeException on too many iterations\n     * @see \\Cron\\CronExpression::getNextRunDate\n     */\n    public function getPreviousRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false, $timeZone = null)\n    {\n        return $this->getRunDate($currentTime, $nth, true, $allowCurrentDate, $timeZone);\n    }\n\n    /**\n     * Get multiple run dates starting at the current date or a specific date\n     *\n     * @param int                       $total            Set the total number of dates to calculate\n     * @param string|\\DateTimeInterface $currentTime      Relative calculation date\n     * @param bool                      $invert           Set to TRUE to retrieve previous dates\n     * @param bool                      $allowCurrentDate Set to TRUE to return the\n     *                                                    current date if it matches the cron expression\n     * @param null|string               $timeZone         TimeZone to use instead of the system default\n     *\n     * @return \\DateTime[] Returns an array of run dates\n     */\n    public function getMultipleRunDates($total, $currentTime = 'now', $invert = false, $allowCurrentDate = false, $timeZone = null)\n    {\n        $matches = array();\n        for ($i = 0; $i < max(0, $total); $i++) {\n            try {\n                $matches[] = $this->getRunDate($currentTime, $i, $invert, $allowCurrentDate, $timeZone);\n            } catch (RuntimeException $e) {\n                break;\n            }\n        }\n\n        return $matches;\n    }\n\n    /**\n     * Get all or part of the CRON expression\n     *\n     * @param string $part Specify the part to retrieve or NULL to get the full\n     *                     cron schedule string.\n     *\n     * @return string|null Returns the CRON expression, a part of the\n     *                     CRON expression, or NULL if the part was specified but not found\n     */\n    public function getExpression($part = null)\n    {\n        if (null === $part) {\n            return implode(' ', $this->cronParts);\n        } elseif (array_key_exists($part, $this->cronParts)) {\n            return $this->cronParts[$part];\n        }\n\n        return null;\n    }\n\n    /**\n     * Helper method to output the full expression.\n     *\n     * @return string Full CRON expression\n     */\n    public function __toString()\n    {\n        return $this->getExpression();\n    }\n\n    /**\n     * Determine if the cron is due to run based on the current date or a\n     * specific date.  This method assumes that the current number of\n     * seconds are irrelevant, and should be called once per minute.\n     *\n     * @param string|\\DateTimeInterface $currentTime Relative calculation date\n     * @param null|string               $timeZone    TimeZone to use instead of the system default\n     *\n     * @return bool Returns TRUE if the cron is due to run or FALSE if not\n     */\n    public function isDue($currentTime = 'now', $timeZone = null)\n    {\n        $timeZone = $this->determineTimeZone($currentTime, $timeZone);\n\n        if ('now' === $currentTime) {\n            $currentTime = new DateTime();\n        } elseif ($currentTime instanceof DateTime) {\n            //\n        } elseif ($currentTime instanceof DateTimeImmutable) {\n            $currentTime = DateTime::createFromFormat('U', $currentTime->format('U'));\n        } else {\n            $currentTime = new DateTime($currentTime);\n        }\n        $currentTime->setTimeZone(new DateTimeZone($timeZone));\n\n        // drop the seconds to 0\n        $currentTime = DateTime::createFromFormat('Y-m-d H:i', $currentTime->format('Y-m-d H:i'));\n\n        try {\n            return $this->getNextRunDate($currentTime, 0, true)->getTimestamp() === $currentTime->getTimestamp();\n        } catch (Exception $e) {\n            return false;\n        }\n    }\n\n    /**\n     * Get the next or previous run date of the expression relative to a date\n     *\n     * @param string|\\DateTimeInterface $currentTime      Relative calculation date\n     * @param int                       $nth              Number of matches to skip before returning\n     * @param bool                      $invert           Set to TRUE to go backwards in time\n     * @param bool                      $allowCurrentDate Set to TRUE to return the\n     *                                                    current date if it matches the cron expression\n     * @param string|null               $timeZone         TimeZone to use instead of the system default\n     *\n     * @return \\DateTime\n     * @throws \\RuntimeException on too many iterations\n     */\n    protected function getRunDate($currentTime = null, $nth = 0, $invert = false, $allowCurrentDate = false, $timeZone = null)\n    {\n        $timeZone = $this->determineTimeZone($currentTime, $timeZone);\n\n        if ($currentTime instanceof DateTime) {\n            $currentDate = clone $currentTime;\n        } elseif ($currentTime instanceof DateTimeImmutable) {\n            $currentDate = DateTime::createFromFormat('U', $currentTime->format('U'));\n        } else {\n            $currentDate = new DateTime($currentTime ?: 'now');\n        }\n\n        $currentDate->setTimeZone(new DateTimeZone($timeZone));\n        $currentDate->setTime($currentDate->format('H'), $currentDate->format('i'), 0);\n        $nextRun = clone $currentDate;\n        $nth = (int) $nth;\n\n        // We don't have to satisfy * or null fields\n        $parts = array();\n        $fields = array();\n        foreach (self::$order as $position) {\n            $part = $this->getExpression($position);\n            if (null === $part || '*' === $part) {\n                continue;\n            }\n            $parts[$position] = $part;\n            $fields[$position] = $this->fieldFactory->getField($position);\n        }\n\n        // Set a hard limit to bail on an impossible date\n        for ($i = 0; $i < $this->maxIterationCount; $i++) {\n\n            foreach ($parts as $position => $part) {\n                $satisfied = false;\n                // Get the field object used to validate this part\n                $field = $fields[$position];\n                // Check if this is singular or a list\n                if (strpos($part, ',') === false) {\n                    $satisfied = $field->isSatisfiedBy($nextRun, $part);\n                } else {\n                    foreach (array_map('trim', explode(',', $part)) as $listPart) {\n                        if ($field->isSatisfiedBy($nextRun, $listPart)) {\n                            $satisfied = true;\n                            break;\n                        }\n                    }\n                }\n\n                // If the field is not satisfied, then start over\n                if (!$satisfied) {\n                    $field->increment($nextRun, $invert, $part);\n                    continue 2;\n                }\n            }\n\n            // Skip this match if needed\n            if ((!$allowCurrentDate && $nextRun == $currentDate) || --$nth > -1) {\n                $this->fieldFactory->getField(0)->increment($nextRun, $invert, isset($parts[0]) ? $parts[0] : null);\n                continue;\n            }\n\n            return $nextRun;\n        }\n\n        // @codeCoverageIgnoreStart\n        throw new RuntimeException('Impossible CRON expression');\n        // @codeCoverageIgnoreEnd\n    }\n\n    /**\n     * Workout what timeZone should be used.\n     *\n     * @param string|\\DateTimeInterface $currentTime      Relative calculation date\n     * @param string|null               $timeZone         TimeZone to use instead of the system default\n     *\n     * @return string\n     */\n    protected function determineTimeZone($currentTime, $timeZone)\n    {\n        if (! is_null($timeZone)) {\n            return $timeZone;\n        }\n\n        if ($currentTime instanceOf DateTimeInterface) {\n            return $currentTime->getTimeZone()->getName();\n        }\n\n        return date_default_timezone_get();\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/DayOfMonthField.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTime;\nuse DateTimeInterface;\n\n/**\n * Day of month field.  Allows: * , / - ? L W\n *\n * 'L' stands for \"last\" and specifies the last day of the month.\n *\n * The 'W' character is used to specify the weekday (Monday-Friday) nearest the\n * given day. As an example, if you were to specify \"15W\" as the value for the\n * day-of-month field, the meaning is: \"the nearest weekday to the 15th of the\n * month\". So if the 15th is a Saturday, the trigger will fire on Friday the\n * 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If\n * the 15th is a Tuesday, then it will fire on Tuesday the 15th. However if you\n * specify \"1W\" as the value for day-of-month, and the 1st is a Saturday, the\n * trigger will fire on Monday the 3rd, as it will not 'jump' over the boundary\n * of a month's days. The 'W' character can only be specified when the\n * day-of-month is a single day, not a range or list of days.\n *\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass DayOfMonthField extends AbstractField\n{\n    /**\n     * @inheritDoc\n     */\n    protected $rangeStart = 1;\n\n    /**\n     * @inheritDoc\n     */\n    protected $rangeEnd = 31;\n\n    /**\n     * Get the nearest day of the week for a given day in a month\n     *\n     * @param int $currentYear  Current year\n     * @param int $currentMonth Current month\n     * @param int $targetDay    Target day of the month\n     *\n     * @return \\DateTime Returns the nearest date\n     */\n    private static function getNearestWeekday($currentYear, $currentMonth, $targetDay)\n    {\n        $tday = str_pad($targetDay, 2, '0', STR_PAD_LEFT);\n        $target = DateTime::createFromFormat('Y-m-d', \"$currentYear-$currentMonth-$tday\");\n        $currentWeekday = (int) $target->format('N');\n\n        if ($currentWeekday < 6) {\n            return $target;\n        }\n\n        $lastDayOfMonth = $target->format('t');\n\n        foreach (array(-1, 1, -2, 2) as $i) {\n            $adjusted = $targetDay + $i;\n            if ($adjusted > 0 && $adjusted <= $lastDayOfMonth) {\n                $target->setDate($currentYear, $currentMonth, $adjusted);\n                if ($target->format('N') < 6 && $target->format('m') == $currentMonth) {\n                    return $target;\n                }\n            }\n        }\n    }\n\n    /**\n     * @inheritDoc\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value)\n    {\n        // ? states that the field value is to be skipped\n        if ($value == '?') {\n            return true;\n        }\n\n        $fieldValue = $date->format('d');\n\n        // Check to see if this is the last day of the month\n        if ($value == 'L') {\n            return $fieldValue == $date->format('t');\n        }\n\n        // Check to see if this is the nearest weekday to a particular value\n        if (strpos($value, 'W')) {\n            // Parse the target day\n            $targetDay = substr($value, 0, strpos($value, 'W'));\n            // Find out if the current day is the nearest day of the week\n            return $date->format('j') == self::getNearestWeekday(\n                $date->format('Y'),\n                $date->format('m'),\n                $targetDay\n            )->format('j');\n        }\n\n        return $this->isSatisfied($date->format('d'), $value);\n    }\n\n    /**\n     * @inheritDoc\n     *\n     * @param \\DateTime|\\DateTimeImmutable &$date\n     */\n    public function increment(DateTimeInterface &$date, $invert = false)\n    {\n        if ($invert) {\n            $date = $date->modify('previous day')->setTime(23, 59);\n        } else {\n            $date = $date->modify('next day')->setTime(0, 0);\n        }\n\n        return $this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    public function validate($value)\n    {\n        $basicChecks = parent::validate($value);\n\n        // Validate that a list don't have W or L\n        if (strpos($value, ',') !== false && (strpos($value, 'W') !== false || strpos($value, 'L') !== false)) {\n            return false;\n        }\n\n        if (!$basicChecks) {\n\n            if ($value === 'L') {\n                return true;\n            }\n\n            if (preg_match('/^(.*)W$/', $value, $matches)) {\n                return $this->validate($matches[1]);\n            }\n\n            return false;\n        }\n\n        return $basicChecks;\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/DayOfWeekField.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTime;\nuse DateTimeInterface;\nuse InvalidArgumentException;\n\n/**\n * Day of week field.  Allows: * / , - ? L #\n *\n * Days of the week can be represented as a number 0-7 (0|7 = Sunday)\n * or as a three letter string: SUN, MON, TUE, WED, THU, FRI, SAT.\n *\n * 'L' stands for \"last\". It allows you to specify constructs such as\n * \"the last Friday\" of a given month.\n *\n * '#' is allowed for the day-of-week field, and must be followed by a\n * number between one and five. It allows you to specify constructs such as\n * \"the second Friday\" of a given month.\n */\nclass DayOfWeekField extends AbstractField\n{\n    /**\n     * @inheritDoc\n     */\n    protected $rangeStart = 0;\n\n    /**\n     * @inheritDoc\n     */\n    protected $rangeEnd = 7;\n\n    /**\n     * @var array Weekday range\n     */\n    protected $nthRange;\n\n    /**\n     * @inheritDoc\n     */\n    protected $literals = [1 => 'MON', 2 => 'TUE', 3 => 'WED', 4 => 'THU', 5 => 'FRI', 6 => 'SAT', 7 => 'SUN'];\n\n    /**\n     * Constructor\n     */\n    public function __construct()\n    {\n        $this->nthRange = range(1, 5);\n        parent::__construct();\n    }\n\n    /**\n     * @inheritDoc\n     *\n     * @param \\DateTime|\\DateTimeImmutable $date\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value)\n    {\n        if ($value == '?') {\n            return true;\n        }\n\n        // Convert text day of the week values to integers\n        $value = $this->convertLiterals($value);\n\n        $currentYear = $date->format('Y');\n        $currentMonth = $date->format('m');\n        $lastDayOfMonth = $date->format('t');\n\n        // Find out if this is the last specific weekday of the month\n        if (strpos($value, 'L')) {\n            $weekday = $this->convertLiterals(substr($value, 0, strpos($value, 'L')));\n            $weekday = str_replace('7', '0', $weekday);\n\n            $tdate = clone $date;\n            $tdate = $tdate->setDate($currentYear, $currentMonth, $lastDayOfMonth);\n            while ($tdate->format('w') != $weekday) {\n                $tdateClone = new DateTime();\n                $tdate = $tdateClone\n                    ->setTimezone($tdate->getTimezone())\n                    ->setDate($currentYear, $currentMonth, --$lastDayOfMonth);\n            }\n\n            return $date->format('j') == $lastDayOfMonth;\n        }\n\n        // Handle # hash tokens\n        if (strpos($value, '#')) {\n            list($weekday, $nth) = explode('#', $value);\n\n            if (!is_numeric($nth)) {\n                throw new InvalidArgumentException(\"Hashed weekdays must be numeric, {$nth} given\");\n            } else {\n                $nth = (int) $nth;\n            }\n\n            // 0 and 7 are both Sunday, however 7 matches date('N') format ISO-8601\n            if ($weekday === '0') {\n                $weekday = 7;\n            }\n\n            $weekday = $this->convertLiterals($weekday);\n\n            // Validate the hash fields\n            if ($weekday < 0 || $weekday > 7) {\n                throw new InvalidArgumentException(\"Weekday must be a value between 0 and 7. {$weekday} given\");\n            }\n\n            if (!in_array($nth, $this->nthRange)) {\n                throw new InvalidArgumentException(\"There are never more than 5 or less than 1 of a given weekday in a month, {$nth} given\");\n            }\n\n            // The current weekday must match the targeted weekday to proceed\n            if ($date->format('N') != $weekday) {\n                return false;\n            }\n\n            $tdate = clone $date;\n            $tdate = $tdate->setDate($currentYear, $currentMonth, 1);\n            $dayCount = 0;\n            $currentDay = 1;\n            while ($currentDay < $lastDayOfMonth + 1) {\n                if ($tdate->format('N') == $weekday) {\n                    if (++$dayCount >= $nth) {\n                        break;\n                    }\n                }\n                $tdate = $tdate->setDate($currentYear, $currentMonth, ++$currentDay);\n            }\n\n            return $date->format('j') == $currentDay;\n        }\n\n        // Handle day of the week values\n        if (strpos($value, '-')) {\n            $parts = explode('-', $value);\n            if ($parts[0] == '7') {\n                $parts[0] = '0';\n            } elseif ($parts[1] == '0') {\n                $parts[1] = '7';\n            }\n            $value = implode('-', $parts);\n        }\n\n        // Test to see which Sunday to use -- 0 == 7 == Sunday\n        $format = in_array(7, str_split($value)) ? 'N' : 'w';\n        $fieldValue = $date->format($format);\n\n        return $this->isSatisfied($fieldValue, $value);\n    }\n\n    /**\n     * @inheritDoc\n     *\n     * @param \\DateTime|\\DateTimeImmutable &$date\n     */\n    public function increment(DateTimeInterface &$date, $invert = false)\n    {\n        if ($invert) {\n            $date = $date->modify('-1 day')->setTime(23, 59, 0);\n        } else {\n            $date = $date->modify('+1 day')->setTime(0, 0, 0);\n        }\n\n        return $this;\n    }\n\n    /**\n     * @inheritDoc\n     */\n    public function validate($value)\n    {\n        $basicChecks = parent::validate($value);\n\n        if (!$basicChecks) {\n            // Handle the # value\n            if (strpos($value, '#') !== false) {\n                $chunks = explode('#', $value);\n                $chunks[0] = $this->convertLiterals($chunks[0]);\n\n                if (parent::validate($chunks[0]) && is_numeric($chunks[1]) && in_array($chunks[1], $this->nthRange)) {\n                    return true;\n                }\n            }\n\n            if (preg_match('/^(.*)L$/', $value, $matches)) {\n                return $this->validate($matches[1]);\n            }\n\n            return false;\n        }\n\n        return $basicChecks;\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse InvalidArgumentException;\n\n/**\n * CRON field factory implementing a flyweight factory\n * @link http://en.wikipedia.org/wiki/Cron\n */\nclass FieldFactory\n{\n    /**\n     * @var array Cache of instantiated fields\n     */\n    private $fields = array();\n\n    /**\n     * Get an instance of a field object for a cron expression position\n     *\n     * @param int $position CRON expression position value to retrieve\n     *\n     * @return FieldInterface\n     * @throws InvalidArgumentException if a position is not valid\n     */\n    public function getField($position)\n    {\n        if (!isset($this->fields[$position])) {\n            switch ($position) {\n                case 0:\n                    $this->fields[$position] = new MinutesField();\n                    break;\n                case 1:\n                    $this->fields[$position] = new HoursField();\n                    break;\n                case 2:\n                    $this->fields[$position] = new DayOfMonthField();\n                    break;\n                case 3:\n                    $this->fields[$position] = new MonthField();\n                    break;\n                case 4:\n                    $this->fields[$position] = new DayOfWeekField();\n                    break;\n                default:\n                    throw new InvalidArgumentException(\n                        ($position + 1) . ' is not a valid position'\n                    );\n            }\n        }\n\n        return $this->fields[$position];\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/FieldInterface.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTimeInterface;\n\n/**\n * CRON field interface\n */\ninterface FieldInterface\n{\n    /**\n     * Check if the respective value of a DateTime field satisfies a CRON exp\n     *\n     * @param DateTimeInterface $date  DateTime object to check\n     * @param string            $value CRON expression to test against\n     *\n     * @return bool Returns TRUE if satisfied, FALSE otherwise\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value);\n\n    /**\n     * When a CRON expression is not satisfied, this method is used to increment\n     * or decrement a DateTime object by the unit of the cron field\n     *\n     * @param DateTimeInterface &$date  DateTime object to change\n     * @param bool              $invert (optional) Set to TRUE to decrement\n     *\n     * @return FieldInterface\n     */\n    public function increment(DateTimeInterface &$date, $invert = false);\n\n    /**\n     * Validates a CRON expression for a given field\n     *\n     * @param string $value CRON expression value to validate\n     *\n     * @return bool Returns TRUE if valid, FALSE otherwise\n     */\n    public function validate($value);\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/HoursField.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTimeInterface;\nuse DateTimeZone;\n\n/**\n * Hours field.  Allows: * , / -\n */\nclass HoursField extends AbstractField\n{\n    /**\n     * @inheritDoc\n     */\n    protected $rangeStart = 0;\n\n    /**\n     * @inheritDoc\n     */\n    protected $rangeEnd = 23;\n\n    /**\n     * @inheritDoc\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value)\n    {\n        if ($value == '?') {\n            return true;\n        }\n\n        return $this->isSatisfied($date->format('H'), $value);\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @param \\DateTime|\\DateTimeImmutable &$date\n     * @param string|null                  $parts\n     */\n    public function increment(DateTimeInterface &$date, $invert = false, $parts = null)\n    {\n        // Change timezone to UTC temporarily. This will\n        // allow us to go back or forwards and hour even\n        // if DST will be changed between the hours.\n        if (is_null($parts) || $parts == '*') {\n            $timezone = $date->getTimezone();\n            $date = $date->setTimezone(new DateTimeZone('UTC'));\n            $date = $date->modify(($invert ? '-' : '+') . '1 hour');\n            $date = $date->setTimezone($timezone);\n\n            $date = $date->setTime($date->format('H'), $invert ? 59 : 0);\n            return $this;\n        }\n\n        $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts);\n        $hours = array();\n        foreach ($parts as $part) {\n            $hours = array_merge($hours, $this->getRangeForExpression($part, 23));\n        }\n\n        $current_hour = $date->format('H');\n        $position = $invert ? count($hours) - 1 : 0;\n        if (count($hours) > 1) {\n            for ($i = 0; $i < count($hours) - 1; $i++) {\n                if ((!$invert && $current_hour >= $hours[$i] && $current_hour < $hours[$i + 1]) ||\n                    ($invert && $current_hour > $hours[$i] && $current_hour <= $hours[$i + 1])) {\n                    $position = $invert ? $i : $i + 1;\n                    break;\n                }\n            }\n        }\n\n        $hour = $hours[$position];\n        if ((!$invert && $date->format('H') >= $hour) || ($invert && $date->format('H') <= $hour)) {\n            $date = $date->modify(($invert ? '-' : '+') . '1 day');\n            $date = $date->setTime($invert ? 23 : 0, $invert ? 59 : 0);\n        }\n        else {\n            $date = $date->setTime($hour, $invert ? 59 : 0);\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/MinutesField.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTimeInterface;\n\n/**\n * Minutes field.  Allows: * , / -\n */\nclass MinutesField extends AbstractField\n{\n    /**\n     * @inheritDoc\n     */\n    protected $rangeStart = 0;\n\n    /**\n     * @inheritDoc\n     */\n    protected $rangeEnd = 59;\n\n    /**\n     * @inheritDoc\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value)\n    {\n        if ($value == '?') {\n            return true;\n        }\n\n        return $this->isSatisfied($date->format('i'), $value);\n    }\n\n    /**\n     * {@inheritDoc}\n     *\n     * @param \\DateTime|\\DateTimeImmutable &$date\n     * @param string|null                  $parts\n     */\n    public function increment(DateTimeInterface &$date, $invert = false, $parts = null)\n    {\n        if (is_null($parts)) {\n            $date = $date->modify(($invert ? '-' : '+') . '1 minute');\n            return $this;\n        }\n\n        $parts = strpos($parts, ',') !== false ? explode(',', $parts) : array($parts);\n        $minutes = array();\n        foreach ($parts as $part) {\n            $minutes = array_merge($minutes, $this->getRangeForExpression($part, 59));\n        }\n\n        $current_minute = $date->format('i');\n        $position = $invert ? count($minutes) - 1 : 0;\n        if (count($minutes) > 1) {\n            for ($i = 0; $i < count($minutes) - 1; $i++) {\n                if ((!$invert && $current_minute >= $minutes[$i] && $current_minute < $minutes[$i + 1]) ||\n                    ($invert && $current_minute > $minutes[$i] && $current_minute <= $minutes[$i + 1])) {\n                    $position = $invert ? $i : $i + 1;\n                    break;\n                }\n            }\n        }\n\n        if ((!$invert && $current_minute >= $minutes[$position]) || ($invert && $current_minute <= $minutes[$position])) {\n            $date = $date->modify(($invert ? '-' : '+') . '1 hour');\n            $date = $date->setTime($date->format('H'), $invert ? 59 : 0);\n        }\n        else {\n            $date = $date->setTime($date->format('H'), $minutes[$position]);\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/src/Cron/MonthField.php",
    "content": "<?php\n\nnamespace Cron;\n\nuse DateTimeInterface;\n\n/**\n * Month field.  Allows: * , / -\n */\nclass MonthField extends AbstractField\n{\n    /**\n     * @inheritDoc\n     */\n    protected $rangeStart = 1;\n\n    /**\n     * @inheritDoc\n     */\n    protected $rangeEnd = 12;\n\n    /**\n     * @inheritDoc\n     */\n    protected $literals = [1 => 'JAN', 2 => 'FEB', 3 => 'MAR', 4 => 'APR', 5 => 'MAY', 6 => 'JUN', 7 => 'JUL',\n        8 => 'AUG', 9 => 'SEP', 10 => 'OCT', 11 => 'NOV', 12 => 'DEC'];\n\n    /**\n     * @inheritDoc\n     */\n    public function isSatisfiedBy(DateTimeInterface $date, $value)\n    {\n        if ($value == '?') {\n            return true;\n        }\n\n        $value = $this->convertLiterals($value);\n\n        return $this->isSatisfied($date->format('m'), $value);\n    }\n\n    /**\n     * @inheritDoc\n     *\n     * @param \\DateTime|\\DateTimeImmutable &$date\n     */\n    public function increment(DateTimeInterface &$date, $invert = false)\n    {\n        if ($invert) {\n            $date = $date->modify('last day of previous month')->setTime(23, 59);\n        } else {\n            $date = $date->modify('first day of next month')->setTime(0, 0);\n        }\n\n        return $this;\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\DayOfWeekField;\nuse Cron\\HoursField;\nuse Cron\\MinutesField;\nuse Cron\\MonthField;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass AbstractFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\AbstractField::isRange\n     */\n    public function testTestsIfRange()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isRange('1-2'));\n        $this->assertFalse($f->isRange('2'));\n    }\n\n    /**\n     * @covers \\Cron\\AbstractField::isIncrementsOfRanges\n     */\n    public function testTestsIfIncrementsOfRanges()\n    {\n        $f = new DayOfWeekField();\n        $this->assertFalse($f->isIncrementsOfRanges('1-2'));\n        $this->assertTrue($f->isIncrementsOfRanges('1/2'));\n        $this->assertTrue($f->isIncrementsOfRanges('*/2'));\n        $this->assertTrue($f->isIncrementsOfRanges('3-12/2'));\n    }\n\n    /**\n     * @covers \\Cron\\AbstractField::isInRange\n     */\n    public function testTestsIfInRange()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isInRange('1', '1-2'));\n        $this->assertTrue($f->isInRange('2', '1-2'));\n        $this->assertTrue($f->isInRange('5', '4-12'));\n        $this->assertFalse($f->isInRange('3', '4-12'));\n        $this->assertFalse($f->isInRange('13', '4-12'));\n    }\n\n    /**\n     * @covers \\Cron\\AbstractField::isInIncrementsOfRanges\n     */\n    public function testTestsIfInIncrementsOfRangesOnZeroStartRange()\n    {\n        $f = new MinutesField();\n        $this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2'));\n        $this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2'));\n        $this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2'));\n        $this->assertTrue($f->isInIncrementsOfRanges('14', '*/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13'));\n        $this->assertFalse($f->isInIncrementsOfRanges('14', '*/13'));\n        $this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '2-59'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '*'));\n        $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0'));\n        $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0'));\n\n        $this->assertTrue($f->isInIncrementsOfRanges('4', '4/1'));\n        $this->assertFalse($f->isInIncrementsOfRanges('14', '4/1'));\n        $this->assertFalse($f->isInIncrementsOfRanges('34', '4/1'));\n    }\n\n    /**\n     * @covers \\Cron\\AbstractField::isInIncrementsOfRanges\n     */\n    public function testTestsIfInIncrementsOfRangesOnOneStartRange()\n    {\n        $f = new MonthField();\n        $this->assertTrue($f->isInIncrementsOfRanges('3', '3-12/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('13', '3-12/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('15', '3-12/2'));\n        $this->assertTrue($f->isInIncrementsOfRanges('3', '*/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '*/3'));\n        $this->assertTrue($f->isInIncrementsOfRanges('7', '*/3'));\n        $this->assertFalse($f->isInIncrementsOfRanges('14', '3-12/2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '2-12'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '2'));\n        $this->assertFalse($f->isInIncrementsOfRanges('3', '*'));\n        $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0'));\n        $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0'));\n\n        $this->assertTrue($f->isInIncrementsOfRanges('4', '4/1'));\n        $this->assertFalse($f->isInIncrementsOfRanges('14', '4/1'));\n        $this->assertFalse($f->isInIncrementsOfRanges('34', '4/1'));\n    }\n\n    /**\n     * @covers \\Cron\\AbstractField::isSatisfied\n     */\n    public function testTestsIfSatisfied()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfied('12', '3-13'));\n        $this->assertFalse($f->isSatisfied('15', '3-7/2'));\n        $this->assertTrue($f->isSatisfied('12', '*'));\n        $this->assertTrue($f->isSatisfied('12', '12'));\n        $this->assertFalse($f->isSatisfied('12', '3-11'));\n        $this->assertFalse($f->isSatisfied('12', '3-7/2'));\n        $this->assertFalse($f->isSatisfied('12', '11'));\n    }\n\n    /**\n     * Allows ranges and lists to coexist in the same expression\n     *\n     * @see https://github.com/dragonmantank/cron-expression/issues/5\n     */\n    public function testAllowRangesAndLists()\n    {\n        $expression = '5-7,11-13';\n        $f = new HoursField();\n        $this->assertTrue($f->validate($expression));\n    }\n\n    /**\n     * Makes sure that various types of ranges expand out properly\n     *\n     * @see https://github.com/dragonmantank/cron-expression/issues/5\n     */\n    public function testGetRangeForExpressionExpandsCorrectly()\n    {\n        $f = new HoursField();\n        $this->assertSame([5, 6, 7, 11, 12, 13], $f->getRangeForExpression('5-7,11-13', 23));\n        $this->assertSame(['5', '6', '7', '11', '12', '13'], $f->getRangeForExpression('5,6,7,11,12,13', 23));\n        $this->assertSame([0, 6, 12, 18], $f->getRangeForExpression('*/6', 23));\n        $this->assertSame([5, 11], $f->getRangeForExpression('5-13/6', 23));\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/CronExpressionTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\CronExpression;\nuse Cron\\MonthField;\nuse DateTime;\nuse DateTimeImmutable;\nuse DateTimeZone;\nuse InvalidArgumentException;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass CronExpressionTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\CronExpression::factory\n     */\n    public function testFactoryRecognizesTemplates()\n    {\n        $this->assertSame('0 0 1 1 *', CronExpression::factory('@annually')->getExpression());\n        $this->assertSame('0 0 1 1 *', CronExpression::factory('@yearly')->getExpression());\n        $this->assertSame('0 0 * * 0', CronExpression::factory('@weekly')->getExpression());\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::__construct\n     * @covers \\Cron\\CronExpression::getExpression\n     * @covers \\Cron\\CronExpression::__toString\n     */\n    public function testParsesCronSchedule()\n    {\n        // '2010-09-10 12:00:00'\n        $cron = CronExpression::factory('1 2-4 * 4,5,6 */3');\n        $this->assertSame('1', $cron->getExpression(CronExpression::MINUTE));\n        $this->assertSame('2-4', $cron->getExpression(CronExpression::HOUR));\n        $this->assertSame('*', $cron->getExpression(CronExpression::DAY));\n        $this->assertSame('4,5,6', $cron->getExpression(CronExpression::MONTH));\n        $this->assertSame('*/3', $cron->getExpression(CronExpression::WEEKDAY));\n        $this->assertSame('1 2-4 * 4,5,6 */3', $cron->getExpression());\n        $this->assertSame('1 2-4 * 4,5,6 */3', (string) $cron);\n        $this->assertNull($cron->getExpression('foo'));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::__construct\n     * @covers \\Cron\\CronExpression::getExpression\n     * @covers \\Cron\\CronExpression::__toString\n     * @expectedException \\InvalidArgumentException\n     * @expectedExceptionMessage Invalid CRON field value A at position 0\n     */\n    public function testParsesCronScheduleThrowsAnException()\n    {\n        CronExpression::factory('A 1 2 3 4');\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::__construct\n     * @covers \\Cron\\CronExpression::getExpression\n     * @dataProvider scheduleWithDifferentSeparatorsProvider\n     */\n    public function testParsesCronScheduleWithAnySpaceCharsAsSeparators($schedule, array $expected)\n    {\n        $cron = CronExpression::factory($schedule);\n        $this->assertSame($expected[0], $cron->getExpression(CronExpression::MINUTE));\n        $this->assertSame($expected[1], $cron->getExpression(CronExpression::HOUR));\n        $this->assertSame($expected[2], $cron->getExpression(CronExpression::DAY));\n        $this->assertSame($expected[3], $cron->getExpression(CronExpression::MONTH));\n        $this->assertSame($expected[4], $cron->getExpression(CronExpression::WEEKDAY));\n    }\n\n    /**\n     * Data provider for testParsesCronScheduleWithAnySpaceCharsAsSeparators\n     *\n     * @return array\n     */\n    public static function scheduleWithDifferentSeparatorsProvider()\n    {\n        return array(\n            array(\"*\\t*\\t*\\t*\\t*\\t\", array('*', '*', '*', '*', '*', '*')),\n            array(\"*  *  *  *  *  \", array('*', '*', '*', '*', '*', '*')),\n            array(\"* \\t * \\t * \\t * \\t * \\t\", array('*', '*', '*', '*', '*', '*')),\n            array(\"*\\t \\t*\\t \\t*\\t \\t*\\t \\t*\\t \\t\", array('*', '*', '*', '*', '*', '*')),\n        );\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::__construct\n     * @covers \\Cron\\CronExpression::setExpression\n     * @covers \\Cron\\CronExpression::setPart\n     * @expectedException InvalidArgumentException\n     */\n    public function testInvalidCronsWillFail()\n    {\n        // Only four values\n        $cron = CronExpression::factory('* * * 1');\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::setPart\n     * @expectedException InvalidArgumentException\n     */\n    public function testInvalidPartsWillFail()\n    {\n        // Only four values\n        $cron = CronExpression::factory('* * * * *');\n        $cron->setPart(1, 'abc');\n    }\n\n    /**\n     * Data provider for cron schedule\n     *\n     * @return array\n     */\n    public function scheduleProvider()\n    {\n        return array(\n            array('*/2 */2 * * *', '2015-08-10 21:47:27', '2015-08-10 22:00:00', false),\n            array('* * * * *', '2015-08-10 21:50:37', '2015-08-10 21:50:00', true),\n            array('* 20,21,22 * * *', '2015-08-10 21:50:00', '2015-08-10 21:50:00', true),\n            // Handles CSV values\n            array('* 20,22 * * *', '2015-08-10 21:50:00', '2015-08-10 22:00:00', false),\n            // CSV values can be complex\n            array('7-9 * */9 * *', '2015-08-10 22:02:33', '2015-08-10 22:07:00', false),\n            // 15th minute, of the second hour, every 15 days, in January, every Friday\n            array('1 * * * 7', '2015-08-10 21:47:27', '2015-08-16 00:01:00', false),\n            // Test with exact times\n            array('47 21 * * *', strtotime('2015-08-10 21:47:30'), '2015-08-10 21:47:00', true),\n            // Test Day of the week (issue #1)\n            // According cron implementation, 0|7 = sunday, 1 => monday, etc\n            array('* * * * 0', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false),\n            array('* * * * 7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false),\n            array('* * * * 1', strtotime('2011-06-15 23:09:00'), '2011-06-20 00:00:00', false),\n            // Should return the sunday date as 7 equals 0\n            array('0 0 * * MON,SUN', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false),\n            array('0 0 * * 1,7', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false),\n            array('0 0 * * 0-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false),\n            array('0 0 * * 7-4', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false),\n            array('0 0 * * 4-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false),\n            array('0 0 * * 7-3', strtotime('2011-06-15 23:09:00'), '2011-06-19 00:00:00', false),\n            array('0 0 * * 3-7', strtotime('2011-06-15 23:09:00'), '2011-06-16 00:00:00', false),\n            array('0 0 * * 3-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false),\n            // Test lists of values and ranges (Abhoryo)\n            array('0 0 * * 2-7', strtotime('2011-06-20 23:09:00'), '2011-06-21 00:00:00', false),\n            array('0 0 * * 2-7', strtotime('2011-06-18 23:09:00'), '2011-06-19 00:00:00', false),\n            array('0 0 * * 4-7', strtotime('2011-07-19 00:00:00'), '2011-07-21 00:00:00', false),\n            // Test increments of ranges\n            array('0-12/4 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true),\n            array('4-59/2 * * * *', strtotime('2011-06-20 12:04:00'), '2011-06-20 12:04:00', true),\n            array('4-59/2 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:06:00', true),\n            array('4-59/3 * * * *', strtotime('2011-06-20 12:06:00'), '2011-06-20 12:07:00', false),\n            // Test Day of the Week and the Day of the Month (issue #1)\n            array('0 0 1 1 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),\n            array('0 0 1 JAN 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),\n            array('0 0 1 * 0', strtotime('2011-06-15 23:09:00'), '2012-01-01 00:00:00', false),\n            // Test the W day of the week modifier for day of the month field\n            array('0 0 2W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true),\n            array('0 0 1W * *', strtotime('2011-05-01 00:00:00'), '2011-05-02 00:00:00', false),\n            array('0 0 1W * *', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true),\n            array('0 0 3W * *', strtotime('2011-07-01 00:00:00'), '2011-07-04 00:00:00', false),\n            array('0 0 16W * *', strtotime('2011-07-01 00:00:00'), '2011-07-15 00:00:00', false),\n            array('0 0 28W * *', strtotime('2011-07-01 00:00:00'), '2011-07-28 00:00:00', false),\n            array('0 0 30W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),\n            array('0 0 31W * *', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),\n            // Test the last weekday of a month\n            array('* * * * 5L', strtotime('2011-07-01 00:00:00'), '2011-07-29 00:00:00', false),\n            array('* * * * 6L', strtotime('2011-07-01 00:00:00'), '2011-07-30 00:00:00', false),\n            array('* * * * 7L', strtotime('2011-07-01 00:00:00'), '2011-07-31 00:00:00', false),\n            array('* * * * 1L', strtotime('2011-07-24 00:00:00'), '2011-07-25 00:00:00', false),\n            array('* * * 1 5L', strtotime('2011-12-25 00:00:00'), '2012-01-27 00:00:00', false),\n            // Test the hash symbol for the nth weekday of a given month\n            array('* * * * 5#2', strtotime('2011-07-01 00:00:00'), '2011-07-08 00:00:00', false),\n            array('* * * * 5#1', strtotime('2011-07-01 00:00:00'), '2011-07-01 00:00:00', true),\n            array('* * * * 3#4', strtotime('2011-07-01 00:00:00'), '2011-07-27 00:00:00', false),\n\n            // Issue #7, documented example failed\n            ['3-59/15 6-12 */15 1 2-5', strtotime('2017-01-08 00:00:00'), '2017-01-31 06:03:00', false],\n\n            // https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403\n            ['* * * * MON-FRI', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-09 00:00:00'), false],\n            ['* * * * TUE', strtotime('2017-01-08 00:00:00'), strtotime('2017-01-10 00:00:00'), false],\n        );\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::isDue\n     * @covers \\Cron\\CronExpression::getNextRunDate\n     * @covers \\Cron\\DayOfMonthField\n     * @covers \\Cron\\DayOfWeekField\n     * @covers \\Cron\\MinutesField\n     * @covers \\Cron\\HoursField\n     * @covers \\Cron\\MonthField\n     * @covers \\Cron\\CronExpression::getRunDate\n     * @dataProvider scheduleProvider\n     */\n    public function testDeterminesIfCronIsDue($schedule, $relativeTime, $nextRun, $isDue)\n    {\n        $relativeTimeString = is_int($relativeTime) ? date('Y-m-d H:i:s', $relativeTime) : $relativeTime;\n\n        // Test next run date\n        $cron = CronExpression::factory($schedule);\n        if (is_string($relativeTime)) {\n            $relativeTime = new DateTime($relativeTime);\n        } elseif (is_int($relativeTime)) {\n            $relativeTime = date('Y-m-d H:i:s', $relativeTime);\n        }\n\n        if (is_string($nextRun)) {\n            $nextRunDate = new DateTime($nextRun);\n        } elseif (is_int($nextRun)) {\n            $nextRunDate = new DateTime();\n            $nextRunDate->setTimestamp($nextRun);\n        }\n        $this->assertSame($isDue, $cron->isDue($relativeTime));\n        $next = $cron->getNextRunDate($relativeTime, 0, true);\n\n        $this->assertEquals($nextRunDate, $next);\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::isDue\n     */\n    public function testIsDueHandlesDifferentDates()\n    {\n        $cron = CronExpression::factory('* * * * *');\n        $this->assertTrue($cron->isDue());\n        $this->assertTrue($cron->isDue('now'));\n        $this->assertTrue($cron->isDue(new DateTime('now')));\n        $this->assertTrue($cron->isDue(date('Y-m-d H:i')));\n        $this->assertTrue($cron->isDue(new DateTimeImmutable('now')));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::isDue\n     */\n    public function testIsDueHandlesDifferentDefaultTimezones()\n    {\n        $originalTimezone = date_default_timezone_get();\n        $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00\n        $date = '2014-01-01 15:00'; //Wednesday\n\n        date_default_timezone_set('UTC');\n        $this->assertTrue($cron->isDue(new DateTime($date), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo'));\n\n        date_default_timezone_set('Europe/Amsterdam');\n        $this->assertFalse($cron->isDue(new DateTime($date), 'UTC'));\n        $this->assertTrue($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date), 'Asia/Tokyo'));\n\n        date_default_timezone_set('Asia/Tokyo');\n        $this->assertFalse($cron->isDue(new DateTime($date), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date), 'Europe/Amsterdam'));\n        $this->assertTrue($cron->isDue(new DateTime($date), 'Asia/Tokyo'));\n\n        date_default_timezone_set($originalTimezone);\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::isDue\n     */\n    public function testIsDueHandlesDifferentSuppliedTimezones()\n    {\n        $cron = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00\n        $date = '2014-01-01 15:00'; //Wednesday\n\n        $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('UTC')), 'Asia/Tokyo'));\n\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'UTC'));\n        $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Europe/Amsterdam')), 'Asia/Tokyo'));\n\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Europe/Amsterdam'));\n        $this->assertTrue($cron->isDue(new DateTime($date, new DateTimeZone('Asia/Tokyo')), 'Asia/Tokyo'));\n    }\n\n   /**\n     * @covers Cron\\CronExpression::isDue\n     */\n    public function testIsDueHandlesDifferentTimezonesAsArgument()\n    {\n        $cron      = CronExpression::factory('0 15 * * 3'); //Wednesday at 15:00\n        $date      = '2014-01-01 15:00'; //Wednesday\n        $utc       = new \\DateTimeZone('UTC');\n        $amsterdam = new \\DateTimeZone('Europe/Amsterdam');\n        $tokyo     = new \\DateTimeZone('Asia/Tokyo');\n        $this->assertTrue($cron->isDue(new DateTime($date, $utc), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'UTC'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Europe/Amsterdam'));\n        $this->assertTrue($cron->isDue(new DateTime($date, $amsterdam), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $tokyo), 'Europe/Amsterdam'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $utc), 'Asia/Tokyo'));\n        $this->assertFalse($cron->isDue(new DateTime($date, $amsterdam), 'Asia/Tokyo'));\n        $this->assertTrue($cron->isDue(new DateTime($date, $tokyo), 'Asia/Tokyo'));\n    }\n\n    /**\n     * @covers Cron\\CronExpression::isDue\n     */\n    public function testRecognisesTimezonesAsPartOfDateTime()\n    {\n        $cron = CronExpression::factory(\"0 7 * * *\");\n        $tzCron = \"America/New_York\";\n        $tzServer = new \\DateTimeZone(\"Europe/London\");\n\n        $dtCurrent = \\DateTime::createFromFormat(\"!Y-m-d H:i:s\", \"2017-10-17 10:00:00\", $tzServer);\n        $dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron);\n        $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format(\"U \\: c \\: e\"));\n\n        $dtCurrent = \\DateTimeImmutable::createFromFormat(\"!Y-m-d H:i:s\", \"2017-10-17 10:00:00\", $tzServer);\n        $dtPrev = $cron->getPreviousRunDate($dtCurrent, 0, true, $tzCron);\n        $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format(\"U \\: c \\: e\"));\n\n        $dtCurrent = \\DateTimeImmutable::createFromFormat(\"!Y-m-d H:i:s\", \"2017-10-17 10:00:00\", $tzServer);\n        $dtPrev = $cron->getPreviousRunDate($dtCurrent->format(\"c\"), 0, true, $tzCron);\n        $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format(\"U \\: c \\: e\"));\n\n        $dtCurrent = \\DateTimeImmutable::createFromFormat(\"!Y-m-d H:i:s\", \"2017-10-17 10:00:00\", $tzServer);\n        $dtPrev = $cron->getPreviousRunDate($dtCurrent->format(\"\\@U\"), 0, true, $tzCron);\n        $this->assertEquals('1508151600 : 2017-10-16T07:00:00-04:00 : America/New_York', $dtPrev->format(\"U \\: c \\: e\"));\n\n    }\n\n\n    /**\n     * @covers \\Cron\\CronExpression::getPreviousRunDate\n     */\n    public function testCanGetPreviousRunDates()\n    {\n        $cron = CronExpression::factory('* * * * *');\n        $next = $cron->getNextRunDate('now');\n        $two = $cron->getNextRunDate('now', 1);\n        $this->assertEquals($next, $cron->getPreviousRunDate($two));\n\n        $cron = CronExpression::factory('* */2 * * *');\n        $next = $cron->getNextRunDate('now');\n        $two = $cron->getNextRunDate('now', 1);\n        $this->assertEquals($next, $cron->getPreviousRunDate($two));\n\n        $cron = CronExpression::factory('* * * */2 *');\n        $next = $cron->getNextRunDate('now');\n        $two = $cron->getNextRunDate('now', 1);\n        $this->assertEquals($next, $cron->getPreviousRunDate($two));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getMultipleRunDates\n     */\n    public function testProvidesMultipleRunDates()\n    {\n        $cron = CronExpression::factory('*/2 * * * *');\n        $this->assertEquals(array(\n            new DateTime('2008-11-09 00:00:00'),\n            new DateTime('2008-11-09 00:02:00'),\n            new DateTime('2008-11-09 00:04:00'),\n            new DateTime('2008-11-09 00:06:00')\n        ), $cron->getMultipleRunDates(4, '2008-11-09 00:00:00', false, true));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getMultipleRunDates\n     * @covers \\Cron\\CronExpression::setMaxIterationCount\n     */\n    public function testProvidesMultipleRunDatesForTheFarFuture() {\n        // Fails with the default 1000 iteration limit\n        $cron = CronExpression::factory('0 0 12 1 *');\n        $cron->setMaxIterationCount(2000);\n        $this->assertEquals(array(\n            new DateTime('2016-01-12 00:00:00'),\n            new DateTime('2017-01-12 00:00:00'),\n            new DateTime('2018-01-12 00:00:00'),\n            new DateTime('2019-01-12 00:00:00'),\n            new DateTime('2020-01-12 00:00:00'),\n            new DateTime('2021-01-12 00:00:00'),\n            new DateTime('2022-01-12 00:00:00'),\n            new DateTime('2023-01-12 00:00:00'),\n            new DateTime('2024-01-12 00:00:00'),\n        ), $cron->getMultipleRunDates(9, '2015-04-28 00:00:00', false, true));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression\n     */\n    public function testCanIterateOverNextRuns()\n    {\n        $cron = CronExpression::factory('@weekly');\n        $nextRun = $cron->getNextRunDate(\"2008-11-09 08:00:00\");\n        $this->assertEquals($nextRun, new DateTime(\"2008-11-16 00:00:00\"));\n\n        // true is cast to 1\n        $nextRun = $cron->getNextRunDate(\"2008-11-09 00:00:00\", true, true);\n        $this->assertEquals($nextRun, new DateTime(\"2008-11-16 00:00:00\"));\n\n        // You can iterate over them\n        $nextRun = $cron->getNextRunDate($cron->getNextRunDate(\"2008-11-09 00:00:00\", 1, true), 1, true);\n        $this->assertEquals($nextRun, new DateTime(\"2008-11-23 00:00:00\"));\n\n        // You can skip more than one\n        $nextRun = $cron->getNextRunDate(\"2008-11-09 00:00:00\", 2, true);\n        $this->assertEquals($nextRun, new DateTime(\"2008-11-23 00:00:00\"));\n        $nextRun = $cron->getNextRunDate(\"2008-11-09 00:00:00\", 3, true);\n        $this->assertEquals($nextRun, new DateTime(\"2008-11-30 00:00:00\"));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getRunDate\n     */\n    public function testGetRunDateHandlesDifferentDates()\n    {\n        $cron = CronExpression::factory('@weekly');\n        $date = new DateTime(\"2019-03-10 00:00:00\");\n        $this->assertEquals($date, $cron->getNextRunDate(\"2019-03-03 08:00:00\"));\n        $this->assertEquals($date, $cron->getNextRunDate(new DateTime(\"2019-03-03 08:00:00\")));\n        $this->assertEquals($date, $cron->getNextRunDate(new DateTimeImmutable(\"2019-03-03 08:00:00\")));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getRunDate\n     */\n    public function testSkipsCurrentDateByDefault()\n    {\n        $cron = CronExpression::factory('* * * * *');\n        $current = new DateTime('now');\n        $next = $cron->getNextRunDate($current);\n        $nextPrev = $cron->getPreviousRunDate($next);\n        $this->assertSame($current->format('Y-m-d H:i:00'), $nextPrev->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getRunDate\n     * @ticket 7\n     */\n    public function testStripsForSeconds()\n    {\n        $cron = CronExpression::factory('* * * * *');\n        $current = new DateTime('2011-09-27 10:10:54');\n        $this->assertSame('2011-09-27 10:11:00', $cron->getNextRunDate($current)->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getRunDate\n     */\n    public function testFixesPhpBugInDateIntervalMonth()\n    {\n        $cron = CronExpression::factory('0 0 27 JAN *');\n        $this->assertSame('2011-01-27 00:00:00', $cron->getPreviousRunDate('2011-08-22 00:00:00')->format('Y-m-d H:i:s'));\n    }\n\n    public function testIssue29()\n    {\n        $cron = CronExpression::factory('@weekly');\n        $this->assertSame(\n            '2013-03-10 00:00:00',\n            $cron->getPreviousRunDate('2013-03-17 00:00:00')->format('Y-m-d H:i:s')\n        );\n    }\n\n    /**\n     * @see https://github.com/mtdowling/cron-expression/issues/20\n     */\n    public function testIssue20() {\n        $e = CronExpression::factory('* * * * MON#1');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));\n        $this->assertFalse($e->isDue(new DateTime('2014-04-14 00:00:00')));\n        $this->assertFalse($e->isDue(new DateTime('2014-04-21 00:00:00')));\n\n        $e = CronExpression::factory('* * * * SAT#2');\n        $this->assertFalse($e->isDue(new DateTime('2014-04-05 00:00:00')));\n        $this->assertTrue($e->isDue(new DateTime('2014-04-12 00:00:00')));\n        $this->assertFalse($e->isDue(new DateTime('2014-04-19 00:00:00')));\n\n        $e = CronExpression::factory('* * * * SUN#3');\n        $this->assertFalse($e->isDue(new DateTime('2014-04-13 00:00:00')));\n        $this->assertTrue($e->isDue(new DateTime('2014-04-20 00:00:00')));\n        $this->assertFalse($e->isDue(new DateTime('2014-04-27 00:00:00')));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::getRunDate\n     */\n    public function testKeepOriginalTime()\n    {\n        $now = new \\DateTime;\n        $strNow = $now->format(DateTime::ISO8601);\n        $cron = CronExpression::factory('0 0 * * *');\n        $cron->getPreviousRunDate($now);\n        $this->assertSame($strNow, $now->format(DateTime::ISO8601));\n    }\n\n    /**\n     * @covers \\Cron\\CronExpression::__construct\n     * @covers \\Cron\\CronExpression::factory\n     * @covers \\Cron\\CronExpression::isValidExpression\n     * @covers \\Cron\\CronExpression::setExpression\n     * @covers \\Cron\\CronExpression::setPart\n     */\n    public function testValidationWorks()\n    {\n        // Invalid. Only four values\n        $this->assertFalse(CronExpression::isValidExpression('* * * 1'));\n        // Valid\n        $this->assertTrue(CronExpression::isValidExpression('* * * * 1'));\n\n        // Issue #156, 13 is an invalid month\n        $this->assertFalse(CronExpression::isValidExpression(\"* * * 13 * \"));\n\n        // Issue #155, 90 is an invalid second\n        $this->assertFalse(CronExpression::isValidExpression('90 * * * *'));\n\n        // Issue #154, 24 is an invalid hour\n        $this->assertFalse(CronExpression::isValidExpression(\"0 24 1 12 0\"));\n\n        // Issue #125, this is just all sorts of wrong\n        $this->assertFalse(CronExpression::isValidExpression('990 14 * * mon-fri0345345'));\n\n        // see https://github.com/dragonmantank/cron-expression/issues/5\n        $this->assertTrue(CronExpression::isValidExpression('2,17,35,47 5-7,11-13 * * *'));\n    }\n\n    /**\n     * Makes sure that 00 is considered a valid value for 0-based fields\n     * cronie allows numbers with a leading 0, so adding support for this as well\n     *\n     * @see https://github.com/dragonmantank/cron-expression/issues/12\n     */\n    public function testDoubleZeroIsValid()\n    {\n        $this->assertTrue(CronExpression::isValidExpression('00 * * * *'));\n        $this->assertTrue(CronExpression::isValidExpression('01 * * * *'));\n        $this->assertTrue(CronExpression::isValidExpression('* 00 * * *'));\n        $this->assertTrue(CronExpression::isValidExpression('* 01 * * *'));\n\n        $e = CronExpression::factory('00 * * * *');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));\n        $e = CronExpression::factory('01 * * * *');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:01:00')));\n\n        $e = CronExpression::factory('* 00 * * *');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));\n        $e = CronExpression::factory('* 01 * * *');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 01:00:00')));\n    }\n\n\n    /**\n     * Ranges with large steps should \"wrap around\" to the appropriate value\n     * cronie allows for steps that are larger than the range of a field, with it wrapping around like a ring buffer. We\n     * should do the same.\n     *\n     * @see https://github.com/dragonmantank/cron-expression/issues/6\n     */\n    public function testRangesWrapAroundWithLargeSteps()\n    {\n        $f = new MonthField();\n        $this->assertTrue($f->validate('*/123'));\n        $this->assertSame([4], $f->getRangeForExpression('*/123', 12));\n\n        $e = CronExpression::factory('* * * */123 *');\n        $this->assertTrue($e->isDue(new DateTime('2014-04-07 00:00:00')));\n\n        $nextRunDate = $e->getNextRunDate(new DateTime('2014-04-07 00:00:00'));\n        $this->assertSame('2014-04-07 00:01:00', $nextRunDate->format('Y-m-d H:i:s'));\n\n        $nextRunDate = $e->getNextRunDate(new DateTime('2014-05-07 00:00:00'));\n        $this->assertSame('2015-04-01 00:00:00', $nextRunDate->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * When there is an issue with a field, we should report the human readable position\n     *\n     * @see https://github.com/dragonmantank/cron-expression/issues/29\n     */\n    public function testFieldPositionIsHumanAdjusted()\n    {\n        $this->expectException(InvalidArgumentException::class);\n        $this->expectExceptionMessage(\"6 is not a valid position\");\n        $e = CronExpression::factory('0 * * * * ? *');\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/DayOfMonthFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\DayOfMonthField;\nuse DateTime;\nuse DateTimeImmutable;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass DayOfMonthFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\DayOfMonthField::validate\n     */\n    public function testValidatesField()\n    {\n        $f = new DayOfMonthField();\n        $this->assertTrue($f->validate('1'));\n        $this->assertTrue($f->validate('*'));\n        $this->assertTrue($f->validate('L'));\n        $this->assertTrue($f->validate('5W'));\n        $this->assertTrue($f->validate('01'));\n        $this->assertFalse($f->validate('5W,L'));\n        $this->assertFalse($f->validate('1.'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfMonthField::isSatisfiedBy\n     */\n    public function testChecksIfSatisfied()\n    {\n        $f = new DayOfMonthField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfMonthField::increment\n     */\n    public function testIncrementsDate()\n    {\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new DayOfMonthField();\n        $f->increment($d);\n        $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f->increment($d, true);\n        $this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfMonthField::increment\n     */\n    public function testIncrementsDateTimeImmutable()\n    {\n        $d = new DateTimeImmutable('2011-03-15 11:15:00');\n        $f = new DayOfMonthField();\n        $f->increment($d);\n        $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * Day of the month cannot accept a 0 value, it must be between 1 and 31\n     * See Github issue #120\n     *\n     * @since 2017-01-22\n     */\n    public function testDoesNotAccept0Date()\n    {\n        $f = new DayOfMonthField();\n        $this->assertFalse($f->validate(0));\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/DayOfWeekFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\DayOfWeekField;\nuse DateTime;\nuse DateTimeImmutable;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass DayOfWeekFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\DayOfWeekField::validate\n     */\n    public function testValidatesField()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->validate('1'));\n        $this->assertTrue($f->validate('01'));\n        $this->assertTrue($f->validate('00'));\n        $this->assertTrue($f->validate('*'));\n        $this->assertFalse($f->validate('*/3,1,1-12'));\n        $this->assertTrue($f->validate('SUN-2'));\n        $this->assertFalse($f->validate('1.'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::isSatisfiedBy\n     */\n    public function testChecksIfSatisfied()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::increment\n     */\n    public function testIncrementsDate()\n    {\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new DayOfWeekField();\n        $f->increment($d);\n        $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f->increment($d, true);\n        $this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::increment\n     */\n    public function testIncrementsDateTimeImmutable()\n    {\n        $d = new DateTimeImmutable('2011-03-15 11:15:00');\n        $f = new DayOfWeekField();\n        $f->increment($d);\n        $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::isSatisfiedBy\n     * @expectedException InvalidArgumentException\n     * @expectedExceptionMessage Weekday must be a value between 0 and 7. 12 given\n     */\n    public function testValidatesHashValueWeekday()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '12#1'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::isSatisfiedBy\n     * @expectedException InvalidArgumentException\n     * @expectedExceptionMessage There are never more than 5 or less than 1 of a given weekday in a month\n     */\n    public function testValidatesHashValueNth()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '3#6'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::validate\n     */\n    public function testValidateWeekendHash()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->validate('MON#1'));\n        $this->assertTrue($f->validate('TUE#2'));\n        $this->assertTrue($f->validate('WED#3'));\n        $this->assertTrue($f->validate('THU#4'));\n        $this->assertTrue($f->validate('FRI#5'));\n        $this->assertTrue($f->validate('SAT#1'));\n        $this->assertTrue($f->validate('SUN#3'));\n        $this->assertTrue($f->validate('MON#1,MON#3'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::isSatisfiedBy\n     */\n    public function testHandlesZeroAndSevenDayOfTheWeekValues()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '0-2'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2011-09-04 00:00:00'), '6-0'));\n\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), 'SUN#3'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '0#3'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2014-04-20 00:00:00'), '7#3'));\n    }\n\n    /**\n     * @covers \\Cron\\DayOfWeekField::isSatisfiedBy\n     */\n    public function testHandlesLastWeekdayOfTheMonth()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2018-12-28 00:00:00'), 'FRIL'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTime('2018-12-28 00:00:00'), '5L'));\n        $this->assertFalse($f->isSatisfiedBy(new DateTime('2018-12-21 00:00:00'), 'FRIL'));\n        $this->assertFalse($f->isSatisfiedBy(new DateTime('2018-12-21 00:00:00'), '5L'));\n    }\n\n    /**\n     * @see https://github.com/mtdowling/cron-expression/issues/47\n     */\n    public function testIssue47() {\n        $f = new DayOfWeekField();\n        $this->assertFalse($f->validate('mon,'));\n        $this->assertFalse($f->validate('mon-'));\n        $this->assertFalse($f->validate('*/2,'));\n        $this->assertFalse($f->validate('-mon'));\n        $this->assertFalse($f->validate(',1'));\n        $this->assertFalse($f->validate('*-'));\n        $this->assertFalse($f->validate(',-'));\n    }\n\n    /**\n     * @see https://github.com/laravel/framework/commit/07d160ac3cc9764d5b429734ffce4fa311385403\n     */\n    public function testLiteralsExpandProperly()\n    {\n        $f = new DayOfWeekField();\n        $this->assertTrue($f->validate('MON-FRI'));\n        $this->assertSame([1,2,3,4,5], $f->getRangeForExpression('MON-FRI', 7));\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/FieldFactoryTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\FieldFactory;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass FieldFactoryTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\FieldFactory::getField\n     */\n    public function testRetrievesFieldInstances()\n    {\n        $mappings = array(\n            0 => 'Cron\\MinutesField',\n            1 => 'Cron\\HoursField',\n            2 => 'Cron\\DayOfMonthField',\n            3 => 'Cron\\MonthField',\n            4 => 'Cron\\DayOfWeekField',\n        );\n\n        $f = new FieldFactory();\n\n        foreach ($mappings as $position => $class) {\n            $this->assertSame($class, get_class($f->getField($position)));\n        }\n    }\n\n    /**\n     * @covers \\Cron\\FieldFactory::getField\n     * @expectedException InvalidArgumentException\n     */\n    public function testValidatesFieldPosition()\n    {\n        $f = new FieldFactory();\n        $f->getField(-1);\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/HoursFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\HoursField;\nuse DateTime;\nuse DateTimeImmutable;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass HoursFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\HoursField::validate\n     */\n    public function testValidatesField()\n    {\n        $f = new HoursField();\n        $this->assertTrue($f->validate('1'));\n        $this->assertTrue($f->validate('00'));\n        $this->assertTrue($f->validate('01'));\n        $this->assertTrue($f->validate('*'));\n        $this->assertFalse($f->validate('*/3,1,1-12'));\n    }\n\n    /**\n     * @covers \\Cron\\HoursField::isSatisfiedBy\n     */\n    public function testChecksIfSatisfied()\n    {\n        $f = new HoursField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));\n    }\n\n    /**\n     * @covers \\Cron\\HoursField::increment\n     */\n    public function testIncrementsDate()\n    {\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new HoursField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d->setTime(11, 15, 0);\n        $f->increment($d, true);\n        $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\HoursField::increment\n     */\n    public function testIncrementsDateTimeImmutable()\n    {\n        $d = new DateTimeImmutable('2011-03-15 11:15:00');\n        $f = new HoursField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\HoursField::increment\n     */\n    public function testIncrementsDateWithThirtyMinuteOffsetTimezone()\n    {\n        $tz = date_default_timezone_get();\n        date_default_timezone_set('America/St_Johns');\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new HoursField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d->setTime(11, 15, 0);\n        $f->increment($d, true);\n        $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));\n        date_default_timezone_set($tz);\n    }\n\n    /**\n     * @covers \\Cron\\HoursField::increment\n     */\n    public function testIncrementDateWithFifteenMinuteOffsetTimezone()\n    {\n        $tz = date_default_timezone_get();\n        date_default_timezone_set('Asia/Kathmandu');\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new HoursField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d->setTime(11, 15, 0);\n        $f->increment($d, true);\n        $this->assertSame('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));\n        date_default_timezone_set($tz);\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/MinutesFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\MinutesField;\nuse DateTime;\nuse DateTimeImmutable;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass MinutesFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\MinutesField::validate\n     */\n    public function testValidatesField()\n    {\n        $f = new MinutesField();\n        $this->assertTrue($f->validate('1'));\n        $this->assertTrue($f->validate('*'));\n        $this->assertFalse($f->validate('*/3,1,1-12'));\n    }\n\n    /**\n     * @covers \\Cron\\MinutesField::isSatisfiedBy\n     */\n    public function testChecksIfSatisfied()\n    {\n        $f = new MinutesField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));\n    }\n\n    /**\n     * @covers \\Cron\\MinutesField::increment\n     */\n    public function testIncrementsDate()\n    {\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new MinutesField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s'));\n        $f->increment($d, true);\n        $this->assertSame('2011-03-15 11:15:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\MinutesField::increment\n     */\n    public function testIncrementsDateTimeImmutable()\n    {\n        $d = new DateTimeImmutable('2011-03-15 11:15:00');\n        $f = new MinutesField();\n        $f->increment($d);\n        $this->assertSame('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * Various bad syntaxes that are reported to work, but shouldn't.\n     *\n     * @author Chris Tankersley\n     * @since 2017-08-18\n     */\n    public function testBadSyntaxesShouldNotValidate()\n    {\n        $f = new MinutesField();\n        $this->assertFalse($f->validate('*-1'));\n        $this->assertFalse($f->validate('1-2-3'));\n        $this->assertFalse($f->validate('-1'));\n    }\n}\n"
  },
  {
    "path": "vendor/dragonmantank/cron-expression/tests/Cron/MonthFieldTest.php",
    "content": "<?php\n\nnamespace Cron\\Tests;\n\nuse Cron\\MonthField;\nuse DateTime;\nuse DateTimeImmutable;\nuse PHPUnit\\Framework\\TestCase;\n\n/**\n * @author Michael Dowling <mtdowling@gmail.com>\n */\nclass MonthFieldTest extends TestCase\n{\n    /**\n     * @covers \\Cron\\MonthField::validate\n     */\n    public function testValidatesField()\n    {\n        $f = new MonthField();\n        $this->assertTrue($f->validate('12'));\n        $this->assertTrue($f->validate('*'));\n        $this->assertFalse($f->validate('*/10,2,1-12'));\n        $this->assertFalse($f->validate('1.fix-regexp'));\n    }\n\n    /**\n     * @covers \\Cron\\MonthField::isSatisfiedBy\n     */\n    public function testChecksIfSatisfied()\n    {\n        $f = new MonthField();\n        $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));\n        $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));\n    }\n\n    /**\n     * @covers \\Cron\\MonthField::increment\n     */\n    public function testIncrementsDate()\n    {\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f = new MonthField();\n        $f->increment($d);\n        $this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f->increment($d, true);\n        $this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\MonthField::increment\n     */\n    public function testIncrementsDateTimeImmutable()\n    {\n        $d = new DateTimeImmutable('2011-03-15 11:15:00');\n        $f = new MonthField();\n        $f->increment($d);\n        $this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\MonthField::increment\n     */\n    public function testIncrementsDateWithThirtyMinuteTimezone()\n    {\n        $tz = date_default_timezone_get();\n        date_default_timezone_set('America/St_Johns');\n        $d = new DateTime('2011-03-31 11:59:59');\n        $f = new MonthField();\n        $f->increment($d);\n        $this->assertSame('2011-04-01 00:00:00', $d->format('Y-m-d H:i:s'));\n\n        $d = new DateTime('2011-03-15 11:15:00');\n        $f->increment($d, true);\n        $this->assertSame('2011-02-28 23:59:00', $d->format('Y-m-d H:i:s'));\n        date_default_timezone_set($tz);\n    }\n\n\n    /**\n     * @covers \\Cron\\MonthField::increment\n     */\n    public function testIncrementsYearAsNeeded()\n    {\n        $f = new MonthField();\n        $d = new DateTime('2011-12-15 00:00:00');\n        $f->increment($d);\n        $this->assertSame('2012-01-01 00:00:00', $d->format('Y-m-d H:i:s'));\n    }\n\n    /**\n     * @covers \\Cron\\MonthField::increment\n     */\n    public function testDecrementsYearAsNeeded()\n    {\n        $f = new MonthField();\n        $d = new DateTime('2011-01-15 00:00:00');\n        $f->increment($d, true);\n        $this->assertSame('2010-12-31 23:59:00', $d->format('Y-m-d H:i:s'));\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/EmailLexer.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator;\n\nuse Doctrine\\Common\\Lexer\\AbstractLexer;\n\nclass EmailLexer extends AbstractLexer\n{\n    //ASCII values\n    const C_DEL              = 127;\n    const C_NUL              = 0;\n    const S_AT               = 64;\n    const S_BACKSLASH        = 92;\n    const S_DOT              = 46;\n    const S_DQUOTE           = 34;\n    const S_OPENPARENTHESIS  = 49;\n    const S_CLOSEPARENTHESIS = 261;\n    const S_OPENBRACKET      = 262;\n    const S_CLOSEBRACKET     = 263;\n    const S_HYPHEN           = 264;\n    const S_COLON            = 265;\n    const S_DOUBLECOLON      = 266;\n    const S_SP               = 267;\n    const S_HTAB             = 268;\n    const S_CR               = 269;\n    const S_LF               = 270;\n    const S_IPV6TAG          = 271;\n    const S_LOWERTHAN        = 272;\n    const S_GREATERTHAN      = 273;\n    const S_COMMA            = 274;\n    const S_SEMICOLON        = 275;\n    const S_OPENQBRACKET     = 276;\n    const S_CLOSEQBRACKET    = 277;\n    const S_SLASH            = 278;\n    const S_EMPTY            = null;\n    const GENERIC            = 300;\n    const CRLF               = 301;\n    const INVALID            = 302;\n    const ASCII_INVALID_FROM = 127;\n    const ASCII_INVALID_TO   = 199;\n\n    /**\n     * US-ASCII visible characters not valid for atext (@link http://tools.ietf.org/html/rfc5322#section-3.2.3)\n     *\n     * @var array\n     */\n    protected $charValue = array(\n        '('    => self::S_OPENPARENTHESIS,\n        ')'    => self::S_CLOSEPARENTHESIS,\n        '<'    => self::S_LOWERTHAN,\n        '>'    => self::S_GREATERTHAN,\n        '['    => self::S_OPENBRACKET,\n        ']'    => self::S_CLOSEBRACKET,\n        ':'    => self::S_COLON,\n        ';'    => self::S_SEMICOLON,\n        '@'    => self::S_AT,\n        '\\\\'   => self::S_BACKSLASH,\n        '/'    => self::S_SLASH,\n        ','    => self::S_COMMA,\n        '.'    => self::S_DOT,\n        '\"'    => self::S_DQUOTE,\n        '-'    => self::S_HYPHEN,\n        '::'   => self::S_DOUBLECOLON,\n        ' '    => self::S_SP,\n        \"\\t\"   => self::S_HTAB,\n        \"\\r\"   => self::S_CR,\n        \"\\n\"   => self::S_LF,\n        \"\\r\\n\" => self::CRLF,\n        'IPv6' => self::S_IPV6TAG,\n        '{'    => self::S_OPENQBRACKET,\n        '}'    => self::S_CLOSEQBRACKET,\n        ''     => self::S_EMPTY,\n        '\\0'   => self::C_NUL,\n    );\n\n    protected $hasInvalidTokens = false;\n\n    protected $previous;\n\n    public function reset()\n    {\n        $this->hasInvalidTokens = false;\n        parent::reset();\n    }\n\n    public function hasInvalidTokens()\n    {\n        return $this->hasInvalidTokens;\n    }\n\n    /**\n     * @param string $type\n     * @throws \\UnexpectedValueException\n     * @return boolean\n     */\n    public function find($type)\n    {\n        $search = clone $this;\n        $search->skipUntil($type);\n\n        if (!$search->lookahead) {\n            throw new \\UnexpectedValueException($type . ' not found');\n        }\n        return true;\n    }\n\n    /**\n     * getPrevious\n     *\n     * @return array token\n     */\n    public function getPrevious()\n    {\n        return $this->previous;\n    }\n\n    /**\n     * moveNext\n     *\n     * @return boolean\n     */\n    public function moveNext()\n    {\n        $this->previous = $this->token;\n\n        return parent::moveNext();\n    }\n\n    /**\n     * Lexical catchable patterns.\n     *\n     * @return string[]\n     */\n    protected function getCatchablePatterns()\n    {\n        return array(\n            '[a-zA-Z_]+[46]?', //ASCII and domain literal\n            '[^\\x00-\\x7F]',  //UTF-8\n            '[0-9]+',\n            '\\r\\n',\n            '::',\n            '\\s+?',\n            '.',\n            );\n    }\n\n    /**\n     * Lexical non-catchable patterns.\n     *\n     * @return string[]\n     */\n    protected function getNonCatchablePatterns()\n    {\n        return array('[\\xA0-\\xff]+');\n    }\n\n    /**\n     * Retrieve token type. Also processes the token value if necessary.\n     *\n     * @param string $value\n     * @throws \\InvalidArgumentException\n     * @return integer\n     */\n    protected function getType(&$value)\n    {\n        if ($this->isNullType($value)) {\n            return self::C_NUL;\n        }\n\n        if ($this->isValid($value)) {\n            return $this->charValue[$value];\n        }\n\n        if ($this->isUTF8Invalid($value)) {\n            $this->hasInvalidTokens = true;\n            return self::INVALID;\n        }\n\n        return  self::GENERIC;\n    }\n\n    protected function isValid($value)\n    {\n        if (isset($this->charValue[$value])) {\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * @param string $value\n     * @return bool\n     */\n    protected function isNullType($value)\n    {\n        if ($value === \"\\0\") {\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * @param string $value\n     * @return bool\n     */\n    protected function isUTF8Invalid($value)\n    {\n        if (preg_match('/\\p{Cc}+/u', $value)) {\n            return true;\n        }\n\n        return false;\n    }\n\n    protected function getModifiers()\n    {\n        return 'iu';\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/EmailParser.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator;\n\nuse Egulias\\EmailValidator\\Exception\\ExpectingATEXT;\nuse Egulias\\EmailValidator\\Exception\\NoLocalPart;\nuse Egulias\\EmailValidator\\Parser\\DomainPart;\nuse Egulias\\EmailValidator\\Parser\\LocalPart;\nuse Egulias\\EmailValidator\\Warning\\EmailTooLong;\n\n/**\n * EmailParser\n *\n * @author Eduardo Gulias Davis <me@egulias.com>\n */\nclass EmailParser\n{\n    const EMAIL_MAX_LENGTH = 254;\n\n    protected $warnings;\n    protected $domainPart = '';\n    protected $localPart = '';\n    protected $lexer;\n    protected $localPartParser;\n    protected $domainPartParser;\n\n    public function __construct(EmailLexer $lexer)\n    {\n        $this->lexer = $lexer;\n        $this->localPartParser = new LocalPart($this->lexer);\n        $this->domainPartParser = new DomainPart($this->lexer);\n        $this->warnings = new \\SplObjectStorage();\n    }\n\n    /**\n     * @param string $str\n     * @return array\n     */\n    public function parse($str)\n    {\n        $this->lexer->setInput($str);\n\n        if (!$this->hasAtToken()) {\n            throw new NoLocalPart();\n        }\n\n\n        $this->localPartParser->parse($str);\n        $this->domainPartParser->parse($str);\n\n        $this->setParts($str);\n\n        if ($this->lexer->hasInvalidTokens()) {\n            throw new ExpectingATEXT();\n        }\n\n        return array('local' => $this->localPart, 'domain' => $this->domainPart);\n    }\n\n    public function getWarnings()\n    {\n        $localPartWarnings = $this->localPartParser->getWarnings();\n        $domainPartWarnings = $this->domainPartParser->getWarnings();\n        $this->warnings = array_merge($localPartWarnings, $domainPartWarnings);\n\n        $this->addLongEmailWarning($this->localPart, $this->domainPart);\n\n        return $this->warnings;\n    }\n\n    public function getParsedDomainPart()\n    {\n        return $this->domainPart;\n    }\n\n    protected function setParts($email)\n    {\n        $parts = explode('@', $email);\n        $this->domainPart = $this->domainPartParser->getDomainPart();\n        $this->localPart = $parts[0];\n    }\n\n    protected function hasAtToken()\n    {\n        $this->lexer->moveNext();\n        $this->lexer->moveNext();\n        if ($this->lexer->token['type'] === EmailLexer::S_AT) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * @param string $localPart\n     * @param string $parsedDomainPart\n     */\n    protected function addLongEmailWarning($localPart, $parsedDomainPart)\n    {\n        if (strlen($localPart . '@' . $parsedDomainPart) > self::EMAIL_MAX_LENGTH) {\n            $this->warnings[EmailTooLong::CODE] = new EmailTooLong();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/EmailValidator.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator;\n\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\nuse Egulias\\EmailValidator\\Validation\\EmailValidation;\n\nclass EmailValidator\n{\n    /**\n     * @var EmailLexer\n     */\n    private $lexer;\n\n    /**\n     * @var array\n     */\n    protected $warnings;\n\n    /**\n     * @var InvalidEmail\n     */\n    protected $error;\n\n    public function __construct()\n    {\n        $this->lexer = new EmailLexer();\n    }\n\n    /**\n     * @param string          $email\n     * @param EmailValidation $emailValidation\n     * @return bool\n     */\n    public function isValid($email, EmailValidation $emailValidation)\n    {\n        $isValid = $emailValidation->isValid($email, $this->lexer);\n        $this->warnings = $emailValidation->getWarnings();\n        $this->error = $emailValidation->getError();\n\n        return $isValid;\n    }\n\n    /**\n     * @return boolean\n     */\n    public function hasWarnings()\n    {\n        return !empty($this->warnings);\n    }\n\n    /**\n     * @return array\n     */\n    public function getWarnings()\n    {\n        return $this->warnings;\n    }\n\n    /**\n     * @return InvalidEmail\n     */\n    public function getError()\n    {\n        return $this->error;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/AtextAfterCFWS.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass AtextAfterCFWS extends InvalidEmail\n{\n    const CODE = 133;\n    const REASON = \"ATEXT found after CFWS\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/CRLFAtTheEnd.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass CRLFAtTheEnd extends InvalidEmail\n{\n    const CODE = 149;\n    const REASON = \"CRLF at the end\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/CRLFX2.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass CRLFX2 extends InvalidEmail\n{\n    const CODE = 148;\n    const REASON = \"Folding whitespace CR LF found twice\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/CRNoLF.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass CRNoLF extends InvalidEmail\n{\n    const CODE = 150;\n    const REASON = \"Missing LF after CR\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/CharNotAllowed.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass CharNotAllowed extends InvalidEmail\n{\n    const CODE = 201;\n    const REASON = \"Non allowed character in domain\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/CommaInDomain.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass CommaInDomain extends InvalidEmail\n{\n    const CODE = 200;\n    const REASON = \"Comma ',' is not allowed in domain part\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveAt.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ConsecutiveAt extends InvalidEmail\n{\n    const CODE = 128;\n    const REASON = \"Consecutive AT\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ConsecutiveDot.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ConsecutiveDot extends InvalidEmail\n{\n    const CODE = 132;\n    const REASON = \"Consecutive DOT\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/DomainHyphened.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass DomainHyphened extends InvalidEmail\n{\n    const CODE = 144;\n    const REASON = \"Hyphen found in domain\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/DotAtEnd.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass DotAtEnd extends InvalidEmail\n{\n    const CODE = 142;\n    const REASON = \"Dot at the end\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/DotAtStart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass DotAtStart extends InvalidEmail\n{\n    const CODE = 141;\n    const REASON = \"Found DOT at start\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingAT.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingAT extends InvalidEmail\n{\n    const CODE = 202;\n    const REASON = \"Expecting AT '@' \";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingATEXT.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingATEXT extends InvalidEmail\n{\n    const CODE = 137;\n    const REASON = \"Expecting ATEXT\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingCTEXT.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingCTEXT extends InvalidEmail\n{\n    const CODE = 139;\n    const REASON = \"Expecting CTEXT\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDTEXT.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingDTEXT extends InvalidEmail\n{\n    const CODE = 129;\n    const REASON = \"Expected DTEXT\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingDomainLiteralClose.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingDomainLiteralClose extends InvalidEmail\n{\n    const CODE = 137;\n    const REASON = \"Closing bracket ']' for domain literal not found\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/ExpectingQPair.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass ExpectingQPair extends InvalidEmail\n{\n    const CODE = 136;\n    const REASON = \"Expecting QPAIR\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/InvalidEmail.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nabstract class InvalidEmail extends \\InvalidArgumentException\n{\n    const REASON = \"Invalid email\";\n    const CODE = 0;\n\n    public function __construct()\n    {\n        parent::__construct(static::REASON, static::CODE);\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/NoDNSRecord.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass NoDNSRecord extends InvalidEmail\n{\n    const CODE = 5;\n    const REASON = 'No MX or A DSN record was found for this email';\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/NoDomainPart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass NoDomainPart extends InvalidEmail\n{\n    const CODE = 131;\n    const REASON = \"No Domain part\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/NoLocalPart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass NoLocalPart extends InvalidEmail\n{\n    const CODE = 130;\n    const REASON = \"No local part\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/UnclosedComment.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass UnclosedComment extends InvalidEmail\n{\n    const CODE = 146;\n    const REASON = \"No colosing comment token found\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/UnclosedQuotedString.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass UnclosedQuotedString extends InvalidEmail\n{\n    const CODE = 145;\n    const REASON = \"Unclosed quoted string\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Exception/UnopenedComment.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Exception;\n\nclass UnopenedComment extends InvalidEmail\n{\n    const CODE = 152;\n    const REASON = \"No opening comment token found\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Parser/DomainPart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Parser;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\CharNotAllowed;\nuse Egulias\\EmailValidator\\Exception\\CommaInDomain;\nuse Egulias\\EmailValidator\\Exception\\ConsecutiveAt;\nuse Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd;\nuse Egulias\\EmailValidator\\Exception\\CRNoLF;\nuse Egulias\\EmailValidator\\Exception\\DomainHyphened;\nuse Egulias\\EmailValidator\\Exception\\DotAtEnd;\nuse Egulias\\EmailValidator\\Exception\\DotAtStart;\nuse Egulias\\EmailValidator\\Exception\\ExpectingATEXT;\nuse Egulias\\EmailValidator\\Exception\\ExpectingDomainLiteralClose;\nuse Egulias\\EmailValidator\\Exception\\ExpectingDTEXT;\nuse Egulias\\EmailValidator\\Exception\\NoDomainPart;\nuse Egulias\\EmailValidator\\Exception\\UnopenedComment;\nuse Egulias\\EmailValidator\\Warning\\AddressLiteral;\nuse Egulias\\EmailValidator\\Warning\\CFWSWithFWS;\nuse Egulias\\EmailValidator\\Warning\\DeprecatedComment;\nuse Egulias\\EmailValidator\\Warning\\DomainLiteral;\nuse Egulias\\EmailValidator\\Warning\\DomainTooLong;\nuse Egulias\\EmailValidator\\Warning\\IPV6BadChar;\nuse Egulias\\EmailValidator\\Warning\\IPV6ColonEnd;\nuse Egulias\\EmailValidator\\Warning\\IPV6ColonStart;\nuse Egulias\\EmailValidator\\Warning\\IPV6Deprecated;\nuse Egulias\\EmailValidator\\Warning\\IPV6DoubleColon;\nuse Egulias\\EmailValidator\\Warning\\IPV6GroupCount;\nuse Egulias\\EmailValidator\\Warning\\IPV6MaxGroups;\nuse Egulias\\EmailValidator\\Warning\\LabelTooLong;\nuse Egulias\\EmailValidator\\Warning\\ObsoleteDTEXT;\nuse Egulias\\EmailValidator\\Warning\\TLD;\n\nclass DomainPart extends Parser\n{\n    const DOMAIN_MAX_LENGTH = 254;\n    protected $domainPart = '';\n\n    public function parse($domainPart)\n    {\n        $this->lexer->moveNext();\n\n        $this->performDomainStartChecks();\n\n        $domain = $this->doParseDomainPart();\n\n        $prev = $this->lexer->getPrevious();\n        $length = strlen($domain);\n\n        if ($prev['type'] === EmailLexer::S_DOT) {\n            throw new DotAtEnd();\n        }\n        if ($prev['type'] === EmailLexer::S_HYPHEN) {\n            throw new DomainHyphened();\n        }\n        if ($length > self::DOMAIN_MAX_LENGTH) {\n            $this->warnings[DomainTooLong::CODE] = new DomainTooLong();\n        }\n        if ($prev['type'] === EmailLexer::S_CR) {\n            throw new CRLFAtTheEnd();\n        }\n        $this->domainPart = $domain;\n    }\n\n    private function performDomainStartChecks()\n    {\n        $this->checkInvalidTokensAfterAT();\n        $this->checkEmptyDomain();\n\n        if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {\n            $this->warnings[DeprecatedComment::CODE] = new DeprecatedComment();\n            $this->parseDomainComments();\n        }\n    }\n\n    private function checkEmptyDomain()\n    {\n        $thereIsNoDomain = $this->lexer->token['type'] === EmailLexer::S_EMPTY ||\n            ($this->lexer->token['type'] === EmailLexer::S_SP &&\n            !$this->lexer->isNextToken(EmailLexer::GENERIC));\n\n        if ($thereIsNoDomain) {\n            throw new NoDomainPart();\n        }\n    }\n\n    private function checkInvalidTokensAfterAT()\n    {\n        if ($this->lexer->token['type'] === EmailLexer::S_DOT) {\n            throw new DotAtStart();\n        }\n        if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN) {\n            throw new DomainHyphened();\n        }\n    }\n\n    public function getDomainPart()\n    {\n        return $this->domainPart;\n    }\n\n    public function checkIPV6Tag($addressLiteral, $maxGroups = 8)\n    {\n        $prev = $this->lexer->getPrevious();\n        if ($prev['type'] === EmailLexer::S_COLON) {\n            $this->warnings[IPV6ColonEnd::CODE] = new IPV6ColonEnd();\n        }\n\n        $IPv6       = substr($addressLiteral, 5);\n        //Daniel Marschall's new IPv6 testing strategy\n        $matchesIP  = explode(':', $IPv6);\n        $groupCount = count($matchesIP);\n        $colons     = strpos($IPv6, '::');\n\n        if (count(preg_grep('/^[0-9A-Fa-f]{0,4}$/', $matchesIP, PREG_GREP_INVERT)) !== 0) {\n            $this->warnings[IPV6BadChar::CODE] = new IPV6BadChar();\n        }\n\n        if ($colons === false) {\n            // We need exactly the right number of groups\n            if ($groupCount !== $maxGroups) {\n                $this->warnings[IPV6GroupCount::CODE] = new IPV6GroupCount();\n            }\n            return;\n        }\n\n        if ($colons !== strrpos($IPv6, '::')) {\n            $this->warnings[IPV6DoubleColon::CODE] = new IPV6DoubleColon();\n            return;\n        }\n\n        if ($colons === 0 || $colons === (strlen($IPv6) - 2)) {\n            // RFC 4291 allows :: at the start or end of an address\n            //with 7 other groups in addition\n            ++$maxGroups;\n        }\n\n        if ($groupCount > $maxGroups) {\n            $this->warnings[IPV6MaxGroups::CODE] = new IPV6MaxGroups();\n        } elseif ($groupCount === $maxGroups) {\n            $this->warnings[IPV6Deprecated::CODE] = new IPV6Deprecated();\n        }\n    }\n\n    protected function doParseDomainPart()\n    {\n        $domain = '';\n        $openedParenthesis = 0;\n        do {\n            $prev = $this->lexer->getPrevious();\n\n            $this->checkNotAllowedChars($this->lexer->token);\n\n            if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {\n                $this->parseComments();\n                $openedParenthesis += $this->getOpenedParenthesis();\n                $this->lexer->moveNext();\n                $tmpPrev = $this->lexer->getPrevious();\n                if ($tmpPrev['type'] === EmailLexer::S_CLOSEPARENTHESIS) {\n                    $openedParenthesis--;\n                }\n            }\n            if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) {\n                if ($openedParenthesis === 0) {\n                    throw new UnopenedComment();\n                } else {\n                    $openedParenthesis--;\n                }\n            }\n\n            $this->checkConsecutiveDots();\n            $this->checkDomainPartExceptions($prev);\n\n            if ($this->hasBrackets()) {\n                $this->parseDomainLiteral();\n            }\n\n            $this->checkLabelLength($prev);\n\n            if ($this->isFWS()) {\n                $this->parseFWS();\n            }\n\n            $domain .= $this->lexer->token['value'];\n            $this->lexer->moveNext();\n        } while ($this->lexer->token);\n\n        return $domain;\n    }\n\n    private function checkNotAllowedChars($token)\n    {\n        $notAllowed = [EmailLexer::S_BACKSLASH => true, EmailLexer::S_SLASH=> true];\n        if (isset($notAllowed[$token['type']])) {\n            throw new CharNotAllowed();\n        }\n    }\n\n    protected function parseDomainLiteral()\n    {\n        if ($this->lexer->isNextToken(EmailLexer::S_COLON)) {\n            $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart();\n        }\n        if ($this->lexer->isNextToken(EmailLexer::S_IPV6TAG)) {\n            $lexer = clone $this->lexer;\n            $lexer->moveNext();\n            if ($lexer->isNextToken(EmailLexer::S_DOUBLECOLON)) {\n                $this->warnings[IPV6ColonStart::CODE] = new IPV6ColonStart();\n            }\n        }\n\n        return $this->doParseDomainLiteral();\n    }\n\n    protected function doParseDomainLiteral()\n    {\n        $IPv6TAG = false;\n        $addressLiteral = '';\n        do {\n            if ($this->lexer->token['type'] === EmailLexer::C_NUL) {\n                throw new ExpectingDTEXT();\n            }\n\n            if ($this->lexer->token['type'] === EmailLexer::INVALID ||\n                $this->lexer->token['type'] === EmailLexer::C_DEL   ||\n                $this->lexer->token['type'] === EmailLexer::S_LF\n            ) {\n                $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT();\n            }\n\n            if ($this->lexer->isNextTokenAny(array(EmailLexer::S_OPENQBRACKET, EmailLexer::S_OPENBRACKET))) {\n                throw new ExpectingDTEXT();\n            }\n\n            if ($this->lexer->isNextTokenAny(\n                array(EmailLexer::S_HTAB, EmailLexer::S_SP, $this->lexer->token['type'] === EmailLexer::CRLF)\n            )) {\n                $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS();\n                $this->parseFWS();\n            }\n\n            if ($this->lexer->isNextToken(EmailLexer::S_CR)) {\n                throw new CRNoLF();\n            }\n\n            if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH) {\n                $this->warnings[ObsoleteDTEXT::CODE] = new ObsoleteDTEXT();\n                $addressLiteral .= $this->lexer->token['value'];\n                $this->lexer->moveNext();\n                $this->validateQuotedPair();\n            }\n            if ($this->lexer->token['type'] === EmailLexer::S_IPV6TAG) {\n                $IPv6TAG = true;\n            }\n            if ($this->lexer->token['type'] === EmailLexer::S_CLOSEQBRACKET) {\n                break;\n            }\n\n            $addressLiteral .= $this->lexer->token['value'];\n\n        } while ($this->lexer->moveNext());\n\n        $addressLiteral = str_replace('[', '', $addressLiteral);\n        $addressLiteral = $this->checkIPV4Tag($addressLiteral);\n\n        if (false === $addressLiteral) {\n            return $addressLiteral;\n        }\n\n        if (!$IPv6TAG) {\n            $this->warnings[DomainLiteral::CODE] = new DomainLiteral();\n            return $addressLiteral;\n        }\n\n        $this->warnings[AddressLiteral::CODE] = new AddressLiteral();\n\n        $this->checkIPV6Tag($addressLiteral);\n\n        return $addressLiteral;\n    }\n\n    protected function checkIPV4Tag($addressLiteral)\n    {\n        $matchesIP  = array();\n\n        // Extract IPv4 part from the end of the address-literal (if there is one)\n        if (preg_match(\n            '/\\\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/',\n            $addressLiteral,\n            $matchesIP\n        ) > 0\n        ) {\n            $index = strrpos($addressLiteral, $matchesIP[0]);\n            if ($index === 0) {\n                $this->warnings[AddressLiteral::CODE] = new AddressLiteral();\n                return false;\n            }\n            // Convert IPv4 part to IPv6 format for further testing\n            $addressLiteral = substr($addressLiteral, 0, $index) . '0:0';\n        }\n\n        return $addressLiteral;\n    }\n\n    protected function checkDomainPartExceptions($prev)\n    {\n        $invalidDomainTokens = array(\n            EmailLexer::S_DQUOTE => true,\n            EmailLexer::S_SEMICOLON => true,\n            EmailLexer::S_GREATERTHAN => true,\n            EmailLexer::S_LOWERTHAN => true,\n        );\n\n        if (isset($invalidDomainTokens[$this->lexer->token['type']])) {\n            throw new ExpectingATEXT();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_COMMA) {\n            throw new CommaInDomain();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_AT) {\n            throw new ConsecutiveAt();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) {\n            throw new ExpectingATEXT();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) {\n            throw new DomainHyphened();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH\n            && $this->lexer->isNextToken(EmailLexer::GENERIC)) {\n            throw new ExpectingATEXT();\n        }\n    }\n\n    protected function hasBrackets()\n    {\n        if ($this->lexer->token['type'] !== EmailLexer::S_OPENBRACKET) {\n            return false;\n        }\n\n        try {\n            $this->lexer->find(EmailLexer::S_CLOSEBRACKET);\n        } catch (\\RuntimeException $e) {\n            throw new ExpectingDomainLiteralClose();\n        }\n\n        return true;\n    }\n\n    protected function checkLabelLength($prev)\n    {\n        if ($this->lexer->token['type'] === EmailLexer::S_DOT &&\n            $prev['type'] === EmailLexer::GENERIC &&\n            strlen($prev['value']) > 63\n        ) {\n            $this->warnings[LabelTooLong::CODE] = new LabelTooLong();\n        }\n    }\n\n    protected function parseDomainComments()\n    {\n        $this->isUnclosedComment();\n        while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) {\n            $this->warnEscaping();\n            $this->lexer->moveNext();\n        }\n\n        $this->lexer->moveNext();\n        if ($this->lexer->isNextToken(EmailLexer::S_DOT)) {\n            throw new ExpectingATEXT();\n        }\n    }\n\n    protected function addTLDWarnings()\n    {\n        if ($this->warnings[DomainLiteral::CODE]) {\n            $this->warnings[TLD::CODE] = new TLD();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Parser/LocalPart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Parser;\n\nuse Egulias\\EmailValidator\\Exception\\DotAtEnd;\nuse Egulias\\EmailValidator\\Exception\\DotAtStart;\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\EmailValidator;\nuse Egulias\\EmailValidator\\Exception\\ExpectingAT;\nuse Egulias\\EmailValidator\\Exception\\ExpectingATEXT;\nuse Egulias\\EmailValidator\\Exception\\UnclosedQuotedString;\nuse Egulias\\EmailValidator\\Exception\\UnopenedComment;\nuse Egulias\\EmailValidator\\Warning\\CFWSWithFWS;\nuse Egulias\\EmailValidator\\Warning\\LocalTooLong;\n\nclass LocalPart extends Parser\n{\n    public function parse($localPart)\n    {\n        $parseDQuote = true;\n        $closingQuote = false;\n        $openedParenthesis = 0;\n\n        while ($this->lexer->token['type'] !== EmailLexer::S_AT && $this->lexer->token) {\n            if ($this->lexer->token['type'] === EmailLexer::S_DOT && !$this->lexer->getPrevious()) {\n                throw new DotAtStart();\n            }\n\n            $closingQuote = $this->checkDQUOTE($closingQuote);\n            if ($closingQuote && $parseDQuote) {\n                $parseDQuote = $this->parseDoubleQuote();\n            }\n\n            if ($this->lexer->token['type'] === EmailLexer::S_OPENPARENTHESIS) {\n                $this->parseComments();\n                $openedParenthesis += $this->getOpenedParenthesis();\n            }\n            if ($this->lexer->token['type'] === EmailLexer::S_CLOSEPARENTHESIS) {\n                if ($openedParenthesis === 0) {\n                    throw new UnopenedComment();\n                } else {\n                    $openedParenthesis--;\n                }\n            }\n\n            $this->checkConsecutiveDots();\n\n            if ($this->lexer->token['type'] === EmailLexer::S_DOT &&\n                $this->lexer->isNextToken(EmailLexer::S_AT)\n            ) {\n                throw new DotAtEnd();\n            }\n\n            $this->warnEscaping();\n            $this->isInvalidToken($this->lexer->token, $closingQuote);\n\n            if ($this->isFWS()) {\n                $this->parseFWS();\n            }\n\n            $this->lexer->moveNext();\n        }\n\n        $prev = $this->lexer->getPrevious();\n        if (strlen($prev['value']) > LocalTooLong::LOCAL_PART_LENGTH) {\n            $this->warnings[LocalTooLong::CODE] = new LocalTooLong();\n        }\n    }\n\n    protected function parseDoubleQuote()\n    {\n        $parseAgain = true;\n        $special = array(\n            EmailLexer::S_CR => true,\n            EmailLexer::S_HTAB => true,\n            EmailLexer::S_LF => true\n        );\n\n        $invalid = array(\n            EmailLexer::C_NUL => true,\n            EmailLexer::S_HTAB => true,\n            EmailLexer::S_CR => true,\n            EmailLexer::S_LF => true\n        );\n        $setSpecialsWarning = true;\n\n        $this->lexer->moveNext();\n\n        while ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE && $this->lexer->token) {\n            $parseAgain = false;\n            if (isset($special[$this->lexer->token['type']]) && $setSpecialsWarning) {\n                $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS();\n                $setSpecialsWarning = false;\n            }\n            if ($this->lexer->token['type'] === EmailLexer::S_BACKSLASH && $this->lexer->isNextToken(EmailLexer::S_DQUOTE)) {\n                $this->lexer->moveNext();\n            }\n\n            $this->lexer->moveNext();\n\n            if (!$this->escaped() && isset($invalid[$this->lexer->token['type']])) {\n                throw new ExpectingATEXT();\n            }\n        }\n\n        $prev = $this->lexer->getPrevious();\n\n        if ($prev['type'] === EmailLexer::S_BACKSLASH) {\n            if (!$this->checkDQUOTE(false)) {\n                throw new UnclosedQuotedString();\n            }\n        }\n\n        if (!$this->lexer->isNextToken(EmailLexer::S_AT) && $prev['type'] !== EmailLexer::S_BACKSLASH) {\n            throw new ExpectingAT();\n        }\n\n        return $parseAgain;\n    }\n\n    protected function isInvalidToken($token, $closingQuote)\n    {\n        $forbidden = array(\n            EmailLexer::S_COMMA,\n            EmailLexer::S_CLOSEBRACKET,\n            EmailLexer::S_OPENBRACKET,\n            EmailLexer::S_GREATERTHAN,\n            EmailLexer::S_LOWERTHAN,\n            EmailLexer::S_COLON,\n            EmailLexer::S_SEMICOLON,\n            EmailLexer::INVALID\n        );\n\n        if (in_array($token['type'], $forbidden) && !$closingQuote) {\n            throw new ExpectingATEXT();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Parser/Parser.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Parser;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\AtextAfterCFWS;\nuse Egulias\\EmailValidator\\Exception\\ConsecutiveDot;\nuse Egulias\\EmailValidator\\Exception\\CRLFAtTheEnd;\nuse Egulias\\EmailValidator\\Exception\\CRLFX2;\nuse Egulias\\EmailValidator\\Exception\\CRNoLF;\nuse Egulias\\EmailValidator\\Exception\\ExpectingQPair;\nuse Egulias\\EmailValidator\\Exception\\ExpectingATEXT;\nuse Egulias\\EmailValidator\\Exception\\ExpectingCTEXT;\nuse Egulias\\EmailValidator\\Exception\\UnclosedComment;\nuse Egulias\\EmailValidator\\Exception\\UnclosedQuotedString;\nuse Egulias\\EmailValidator\\Warning\\CFWSNearAt;\nuse Egulias\\EmailValidator\\Warning\\CFWSWithFWS;\nuse Egulias\\EmailValidator\\Warning\\Comment;\nuse Egulias\\EmailValidator\\Warning\\QuotedPart;\nuse Egulias\\EmailValidator\\Warning\\QuotedString;\n\nabstract class Parser\n{\n    protected $warnings = [];\n    protected $lexer;\n    protected $openedParenthesis = 0;\n\n    public function __construct(EmailLexer $lexer)\n    {\n        $this->lexer = $lexer;\n    }\n\n    public function getWarnings()\n    {\n        return $this->warnings;\n    }\n\n    abstract public function parse($str);\n\n    /** @return int */\n    public function getOpenedParenthesis()\n    {\n        return $this->openedParenthesis;\n    }\n\n    /**\n     * validateQuotedPair\n     */\n    protected function validateQuotedPair()\n    {\n        if (!($this->lexer->token['type'] === EmailLexer::INVALID\n            || $this->lexer->token['type'] === EmailLexer::C_DEL)) {\n            throw new ExpectingQPair();\n        }\n\n        $this->warnings[QuotedPart::CODE] =\n            new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']);\n    }\n\n    protected function parseComments()\n    {\n        $this->openedParenthesis = 1;\n        $this->isUnclosedComment();\n        $this->warnings[Comment::CODE] = new Comment();\n        while (!$this->lexer->isNextToken(EmailLexer::S_CLOSEPARENTHESIS)) {\n            if ($this->lexer->isNextToken(EmailLexer::S_OPENPARENTHESIS)) {\n                $this->openedParenthesis++;\n            }\n            $this->warnEscaping();\n            $this->lexer->moveNext();\n        }\n\n        $this->lexer->moveNext();\n        if ($this->lexer->isNextTokenAny(array(EmailLexer::GENERIC, EmailLexer::S_EMPTY))) {\n            throw new ExpectingATEXT();\n        }\n\n        if ($this->lexer->isNextToken(EmailLexer::S_AT)) {\n            $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt();\n        }\n    }\n\n    protected function isUnclosedComment()\n    {\n        try {\n            $this->lexer->find(EmailLexer::S_CLOSEPARENTHESIS);\n            return true;\n        } catch (\\RuntimeException $e) {\n            throw new UnclosedComment();\n        }\n    }\n\n    protected function parseFWS()\n    {\n        $previous = $this->lexer->getPrevious();\n\n        $this->checkCRLFInFWS();\n\n        if ($this->lexer->token['type'] === EmailLexer::S_CR) {\n            throw new CRNoLF();\n        }\n\n        if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type']  !== EmailLexer::S_AT) {\n            throw new AtextAfterCFWS();\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_LF || $this->lexer->token['type'] === EmailLexer::C_NUL) {\n            throw new ExpectingCTEXT();\n        }\n\n        if ($this->lexer->isNextToken(EmailLexer::S_AT) || $previous['type']  === EmailLexer::S_AT) {\n            $this->warnings[CFWSNearAt::CODE] = new CFWSNearAt();\n        } else {\n            $this->warnings[CFWSWithFWS::CODE] = new CFWSWithFWS();\n        }\n    }\n\n    protected function checkConsecutiveDots()\n    {\n        if ($this->lexer->token['type'] === EmailLexer::S_DOT && $this->lexer->isNextToken(EmailLexer::S_DOT)) {\n            throw new ConsecutiveDot();\n        }\n    }\n\n    protected function isFWS()\n    {\n        if ($this->escaped()) {\n            return false;\n        }\n\n        if ($this->lexer->token['type'] === EmailLexer::S_SP ||\n            $this->lexer->token['type'] === EmailLexer::S_HTAB ||\n            $this->lexer->token['type'] === EmailLexer::S_CR ||\n            $this->lexer->token['type'] === EmailLexer::S_LF ||\n            $this->lexer->token['type'] === EmailLexer::CRLF\n        ) {\n            return true;\n        }\n\n        return false;\n    }\n\n    protected function escaped()\n    {\n        $previous = $this->lexer->getPrevious();\n\n        if ($previous['type'] === EmailLexer::S_BACKSLASH\n            &&\n            $this->lexer->token['type'] !== EmailLexer::GENERIC\n        ) {\n            return true;\n        }\n\n        return false;\n    }\n\n    protected function warnEscaping()\n    {\n        if ($this->lexer->token['type'] !== EmailLexer::S_BACKSLASH) {\n            return false;\n        }\n\n        if ($this->lexer->isNextToken(EmailLexer::GENERIC)) {\n            throw new ExpectingATEXT();\n        }\n\n        if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB, EmailLexer::C_DEL))) {\n            return false;\n        }\n\n        $this->warnings[QuotedPart::CODE] =\n            new QuotedPart($this->lexer->getPrevious()['type'], $this->lexer->token['type']);\n        return true;\n\n    }\n\n    protected function checkDQUOTE($hasClosingQuote)\n    {\n        if ($this->lexer->token['type'] !== EmailLexer::S_DQUOTE) {\n            return $hasClosingQuote;\n        }\n        if ($hasClosingQuote) {\n            return $hasClosingQuote;\n        }\n        $previous = $this->lexer->getPrevious();\n        if ($this->lexer->isNextToken(EmailLexer::GENERIC) && $previous['type'] === EmailLexer::GENERIC) {\n            throw new ExpectingATEXT();\n        }\n\n        try {\n            $this->lexer->find(EmailLexer::S_DQUOTE);\n            $hasClosingQuote = true;\n        } catch (\\Exception $e) {\n            throw new UnclosedQuotedString();\n        }\n        $this->warnings[QuotedString::CODE] = new QuotedString($previous['value'], $this->lexer->token['value']);\n\n        return $hasClosingQuote;\n    }\n\n    protected function checkCRLFInFWS()\n    {\n        if ($this->lexer->token['type'] !== EmailLexer::CRLF) {\n            return;\n        }\n\n        if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) {\n            throw new CRLFX2();\n        }\n\n        if (!$this->lexer->isNextTokenAny(array(EmailLexer::S_SP, EmailLexer::S_HTAB))) {\n            throw new CRLFAtTheEnd();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/DNSCheckValidation.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\nuse Egulias\\EmailValidator\\Warning\\NoDNSMXRecord;\nuse Egulias\\EmailValidator\\Exception\\NoDNSRecord;\n\nclass DNSCheckValidation implements EmailValidation\n{\n    /**\n     * @var array\n     */\n    private $warnings = [];\n\n    /**\n     * @var InvalidEmail\n     */\n    private $error;\n    \n    public function __construct()\n    {\n        if (!extension_loaded('intl')) {\n            throw new \\LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));\n        }\n    }\n\n    public function isValid($email, EmailLexer $emailLexer)\n    {\n        // use the input to check DNS if we cannot extract something similar to a domain\n        $host = $email;\n\n        // Arguable pattern to extract the domain. Not aiming to validate the domain nor the email\n        if (false !== $lastAtPos = strrpos($email, '@')) {\n            $host = substr($email, $lastAtPos + 1);\n        }\n\n        return $this->checkDNS($host);\n    }\n\n    public function getError()\n    {\n        return $this->error;\n    }\n\n    public function getWarnings()\n    {\n        return $this->warnings;\n    }\n\n    protected function checkDNS($host)\n    {\n        $variant = INTL_IDNA_VARIANT_2003;\n        if ( defined('INTL_IDNA_VARIANT_UTS46') ) {\n            $variant = INTL_IDNA_VARIANT_UTS46;\n        }\n        $host = rtrim(idn_to_ascii($host, IDNA_DEFAULT, $variant), '.') . '.';\n\n        $Aresult = true;\n        $MXresult = checkdnsrr($host, 'MX');\n\n        if (!$MXresult) {\n            $this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord();\n            $Aresult = checkdnsrr($host, 'A') || checkdnsrr($host, 'AAAA');\n            if (!$Aresult) {\n                $this->error = new NoDNSRecord();\n            }\n        }\n        return $MXresult || $Aresult;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/EmailValidation.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\nuse Egulias\\EmailValidator\\Warning\\Warning;\n\ninterface EmailValidation\n{\n    /**\n     * Returns true if the given email is valid.\n     *\n     * @param string     $email      The email you want to validate.\n     * @param EmailLexer $emailLexer The email lexer.\n     *\n     * @return bool\n     */\n    public function isValid($email, EmailLexer $emailLexer);\n\n    /**\n     * Returns the validation error.\n     *\n     * @return InvalidEmail|null\n     */\n    public function getError();\n\n    /**\n     * Returns the validation warnings.\n     *\n     * @return Warning[]\n     */\n    public function getWarnings();\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/Error/RFCWarnings.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation\\Error;\n\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\n\nclass RFCWarnings extends InvalidEmail\n{\n    const CODE = 997;\n    const REASON = 'Warnings were found.';\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/Error/SpoofEmail.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation\\Error;\n\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\n\nclass SpoofEmail extends InvalidEmail\n{\n    const CODE = 998;\n    const REASON = \"The email contains mixed UTF8 chars that makes it suspicious\";\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/Exception/EmptyValidationList.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation\\Exception;\n\nuse Exception;\n\nclass EmptyValidationList extends \\InvalidArgumentException\n{\n    public function __construct($code = 0, Exception $previous = null)\n    {\n        parent::__construct(\"Empty validation list is not allowed\", $code, $previous);\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/MultipleErrors.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\n\nclass MultipleErrors extends InvalidEmail\n{\n    const CODE = 999;\n    const REASON = \"Accumulated errors for multiple validations\";\n    /**\n     * @var array\n     */\n    private $errors = [];\n\n    public function __construct(array $errors)\n    {\n        $this->errors = $errors;\n        parent::__construct();\n    }\n\n    public function getErrors()\n    {\n        return $this->errors;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/MultipleValidationWithAnd.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Validation\\Exception\\EmptyValidationList;\n\nclass MultipleValidationWithAnd implements EmailValidation\n{\n    /**\n     * If one of validations gets failure skips all succeeding validation.\n     * This means MultipleErrors will only contain a single error which first found.\n     */\n    const STOP_ON_ERROR = 0;\n\n    /**\n     * All of validations will be invoked even if one of them got failure.\n     * So MultipleErrors will contain all causes.\n     */\n    const ALLOW_ALL_ERRORS = 1;\n\n    /**\n     * @var EmailValidation[]\n     */\n    private $validations = [];\n\n    /**\n     * @var array\n     */\n    private $warnings = [];\n\n    /**\n     * @var MultipleErrors\n     */\n    private $error;\n\n    /**\n     * @var bool\n     */\n    private $mode;\n\n    /**\n     * @param EmailValidation[] $validations The validations.\n     * @param int               $mode        The validation mode (one of the constants).\n     */\n    public function __construct(array $validations, $mode = self::ALLOW_ALL_ERRORS)\n    {\n        if (count($validations) == 0) {\n            throw new EmptyValidationList();\n        }\n\n        $this->validations = $validations;\n        $this->mode = $mode;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isValid($email, EmailLexer $emailLexer)\n    {\n        $result = true;\n        $errors = [];\n        foreach ($this->validations as $validation) {\n            $emailLexer->reset();\n            $validationResult = $validation->isValid($email, $emailLexer);\n            $result = $result && $validationResult;\n            $this->warnings = array_merge($this->warnings, $validation->getWarnings());\n            $errors = $this->addNewError($validation->getError(), $errors);\n\n            if ($this->shouldStop($result)) {\n                break;\n            }\n        }\n\n        if (!empty($errors)) {\n            $this->error = new MultipleErrors($errors);\n        }\n\n        return $result;\n    }\n\n    private function addNewError($possibleError, array $errors)\n    {\n        if (null !== $possibleError) {\n            $errors[] = $possibleError;\n        }\n\n        return $errors;\n    }\n\n    private function shouldStop($result)\n    {\n        return !$result && $this->mode === self::STOP_ON_ERROR;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getError()\n    {\n        return $this->error;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getWarnings()\n    {\n        return $this->warnings;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/NoRFCWarningsValidation.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\nuse Egulias\\EmailValidator\\Validation\\Error\\RFCWarnings;\n\nclass NoRFCWarningsValidation extends RFCValidation\n{\n    /**\n     * @var InvalidEmail\n     */\n    private $error;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isValid($email, EmailLexer $emailLexer)\n    {\n        if (!parent::isValid($email, $emailLexer)) {\n            return false;\n        }\n\n        if (empty($this->getWarnings())) {\n            return true;\n        }\n\n        $this->error = new RFCWarnings();\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getError()\n    {\n        return $this->error ?: parent::getError();\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/RFCValidation.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\EmailParser;\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\n\nclass RFCValidation implements EmailValidation\n{\n    /**\n     * @var EmailParser\n     */\n    private $parser;\n\n    /**\n     * @var array\n     */\n    private $warnings = [];\n\n    /**\n     * @var InvalidEmail\n     */\n    private $error;\n\n    public function isValid($email, EmailLexer $emailLexer)\n    {\n        $this->parser = new EmailParser($emailLexer);\n        try {\n            $this->parser->parse((string)$email);\n        } catch (InvalidEmail $invalid) {\n            $this->error = $invalid;\n            return false;\n        }\n\n        $this->warnings = $this->parser->getWarnings();\n        return true;\n    }\n\n    public function getError()\n    {\n        return $this->error;\n    }\n\n    public function getWarnings()\n    {\n        return $this->warnings;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Validation/SpoofCheckValidation.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Validation;\n\nuse Egulias\\EmailValidator\\EmailLexer;\nuse Egulias\\EmailValidator\\Exception\\InvalidEmail;\nuse Egulias\\EmailValidator\\Validation\\Error\\SpoofEmail;\nuse \\Spoofchecker;\n\nclass SpoofCheckValidation implements EmailValidation\n{\n    /**\n     * @var InvalidEmail\n     */\n    private $error;\n\n    public function __construct()\n    {\n        if (!extension_loaded('intl')) {\n            throw new \\LogicException(sprintf('The %s class requires the Intl extension.', __CLASS__));\n        }\n    }\n\n    public function isValid($email, EmailLexer $emailLexer)\n    {\n        $checker = new Spoofchecker();\n        $checker->setChecks(Spoofchecker::SINGLE_SCRIPT);\n\n        if ($checker->isSuspicious($email)) {\n            $this->error = new SpoofEmail();\n        }\n\n        return $this->error === null;\n    }\n\n    public function getError()\n    {\n        return $this->error;\n    }\n\n    public function getWarnings()\n    {\n        return [];\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/AddressLiteral.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass AddressLiteral extends Warning\n{\n    const CODE = 12;\n\n    public function __construct()\n    {\n        $this->message = 'Address literal in domain part';\n        $this->rfcNumber = 5321;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/CFWSNearAt.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass CFWSNearAt extends Warning\n{\n    const CODE = 49;\n\n    public function __construct()\n    {\n        $this->message = \"Deprecated folding white space near @\";\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/CFWSWithFWS.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass CFWSWithFWS extends Warning\n{\n    const CODE = 18;\n\n    public function __construct()\n    {\n        $this->message = 'Folding whites space followed by folding white space';\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/Comment.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass Comment extends Warning\n{\n    const CODE = 17;\n\n    public function __construct()\n    {\n        $this->message = \"Comments found in this email\";\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/DeprecatedComment.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass DeprecatedComment extends Warning\n{\n    const CODE = 37;\n\n    public function __construct()\n    {\n        $this->message = 'Deprecated comments';\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/DomainLiteral.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass DomainLiteral extends Warning\n{\n    const CODE = 70;\n\n    public function __construct()\n    {\n        $this->message = 'Domain Literal';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/DomainTooLong.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass DomainTooLong extends Warning\n{\n    const CODE = 255;\n\n    public function __construct()\n    {\n        $this->message = 'Domain is too long, exceeds 255 chars';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/EmailTooLong.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nuse Egulias\\EmailValidator\\EmailParser;\n\nclass EmailTooLong extends Warning\n{\n    const CODE = 66;\n\n    public function __construct()\n    {\n        $this->message = 'Email is too long, exceeds ' . EmailParser::EMAIL_MAX_LENGTH;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6BadChar.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6BadChar extends Warning\n{\n    const CODE = 74;\n\n    public function __construct()\n    {\n        $this->message = 'Bad char in IPV6 domain literal';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonEnd.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6ColonEnd extends Warning\n{\n    const CODE = 77;\n\n    public function __construct()\n    {\n        $this->message = ':: found at the end of the domain literal';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6ColonStart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6ColonStart extends Warning\n{\n    const CODE = 76;\n\n    public function __construct()\n    {\n        $this->message = ':: found at the start of the domain literal';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6Deprecated.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6Deprecated extends Warning\n{\n    const CODE = 13;\n\n    public function __construct()\n    {\n        $this->message = 'Deprecated form of IPV6';\n        $this->rfcNumber = 5321;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6DoubleColon.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6DoubleColon extends Warning\n{\n    const CODE = 73;\n\n    public function __construct()\n    {\n        $this->message = 'Double colon found after IPV6 tag';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6GroupCount.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6GroupCount extends Warning\n{\n    const CODE = 72;\n\n    public function __construct()\n    {\n        $this->message = 'Group count is not IPV6 valid';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/IPV6MaxGroups.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass IPV6MaxGroups extends Warning\n{\n    const CODE = 75;\n\n    public function __construct()\n    {\n        $this->message = 'Reached the maximum number of IPV6 groups allowed';\n        $this->rfcNumber = 5321;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/LabelTooLong.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass LabelTooLong extends Warning\n{\n    const CODE = 63;\n\n    public function __construct()\n    {\n        $this->message = 'Label too long';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/LocalTooLong.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass LocalTooLong extends Warning\n{\n    const CODE = 64;\n    const LOCAL_PART_LENGTH = 64;\n\n    public function __construct()\n    {\n        $this->message = 'Local part is too long, exceeds 64 chars (octets)';\n        $this->rfcNumber = 5322;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/NoDNSMXRecord.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass NoDNSMXRecord extends Warning\n{\n    const CODE = 6;\n\n    public function __construct()\n    {\n        $this->message = 'No MX DSN record was found for this email';\n        $this->rfcNumber = 5321;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/ObsoleteDTEXT.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass ObsoleteDTEXT extends Warning\n{\n    const CODE = 71;\n\n    public function __construct()\n    {\n        $this->rfcNumber = 5322;\n        $this->message = 'Obsolete DTEXT in domain literal';\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/QuotedPart.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass QuotedPart extends Warning\n{\n    const CODE = 36;\n\n    public function __construct($prevToken, $postToken)\n    {\n        $this->message = \"Deprecated Quoted String found between $prevToken and $postToken\";\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/QuotedString.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass QuotedString extends Warning\n{\n    const CODE = 11;\n\n    public function __construct($prevToken, $postToken)\n    {\n        $this->message = \"Quoted String found between $prevToken and $postToken\";\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/TLD.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nclass TLD extends Warning\n{\n    const CODE = 9;\n\n    public function __construct()\n    {\n        $this->message = \"RFC5321, TLD\";\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/EmailValidator/Warning/Warning.php",
    "content": "<?php\n\nnamespace Egulias\\EmailValidator\\Warning;\n\nabstract class Warning\n{\n    const CODE = 0;\n    protected $message;\n    protected $rfcNumber;\n\n    public function message()\n    {\n        return $this->message;\n    }\n\n    public function code()\n    {\n        return self::CODE;\n    }\n\n    public function RFCNumber()\n    {\n        return $this->rfcNumber;\n    }\n\n    public function __toString()\n    {\n        return $this->message() . \" rfc: \" .  $this->rfcNumber . \"interal code: \" . static::CODE;\n    }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/LICENSE",
    "content": "Copyright (c) 2013-2016 Eduardo Gulias Davis\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/egulias/email-validator/README.md",
    "content": "# EmailValidator\n[![Build Status](https://travis-ci.org/egulias/EmailValidator.svg?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.svg?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6)\n=============================\n## Suported RFCs ##\nThis library aims to support:\n\nRFC 5321, 5322, 6530, 6531, 6532.\n\n## Requirements ##\n\n * [Composer](https://getcomposer.org) is required for installation\n * [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system has the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl)\n\n## Installation ##\n\nRun the command below to install via Composer\n\n```shell\ncomposer require egulias/email-validator\n```\n\n## Getting Started ##\n`EmailValidator`requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each [validation](#available-validations).\n\nA basic example with the RFC validation\n```php\n<?php\n\nuse Egulias\\EmailValidator\\EmailValidator;\nuse Egulias\\EmailValidator\\Validation\\RFCValidation;\n\n$validator = new EmailValidator();\n$validator->isValid(\"example@example.com\", new RFCValidation()); //true\n```\n\n\n### Available validations ###\n\n1. [RFCValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/RFCValidation.php)\n2. [NoRFCWarningsValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/NoRFCWarningsValidation.php)\n3. [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php)\n4. [SpoofCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php)\n5. [MultipleValidationWithAnd](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/MultipleValidationWithAnd.php)\n6. [Your own validation](#how-to-extend)\n\n`MultipleValidationWithAnd`\n\nIt is a validation that operates over other validations performing a logical and (&&) over the result of each validation.\n\n```php\n<?php\n\nuse Egulias\\EmailValidator\\EmailValidator;\nuse Egulias\\EmailValidator\\Validation\\DNSCheckValidation;\nuse Egulias\\EmailValidator\\Validation\\MultipleValidationWithAnd;\nuse Egulias\\EmailValidator\\Validation\\RFCValidation;\n\n$validator = new EmailValidator();\n$multipleValidations = new MultipleValidationWithAnd([\n    new RFCValidation(),\n    new DNSCheckValidation()\n]);\n$validator->isValid(\"example@example.com\", $multipleValidations); //true\n```\n\n### How to extend ###\n\nIt's easy! You just need to implement [EmailValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/EmailValidation.php) and you can use your own validation.\n\n\n## Other Contributors ##\n(You can find current contributors [here](https://github.com/egulias/EmailValidator/graphs/contributors))\n\nAs this is a port from another library and work, here are other people related to the previous one:\n\n* Ricard Clau [@ricardclau](https://github.com/ricardclau):      \tPerformance against PHP built-in filter_var\n* Josepf Bielawski [@stloyd](https://github.com/stloyd):      \t\tFor its first re-work of Dominic's lib\n* Dominic Sayers [@dominicsayers](https://github.com/dominicsayers):  \tThe original isemail function\n\n## License ##\nReleased under the MIT License attached with this code.\n\n"
  },
  {
    "path": "vendor/egulias/email-validator/composer.json",
    "content": "{\n  \"name\":         \"egulias/email-validator\",\n  \"description\":  \"A library for validating emails against several RFCs\",\n  \"homepage\":     \"https://github.com/egulias/EmailValidator\",\n  \"type\":         \"Library\",\n  \"keywords\":     [\"email\", \"validation\", \"validator\", \"emailvalidation\", \"emailvalidator\"],\n  \"license\":      \"MIT\",\n  \"authors\": [\n    {\"name\": \"Eduardo Gulias Davis\"}\n  ],\n  \"extra\": {\n    \"branch-alias\": {\n      \"dev-master\": \"2.0.x-dev\"\n    }\n  },\n  \"repositories\": [\n    {\n      \"type\": \"git\",\n      \"url\": \"https://github.com/dominicsayers/isemail\"\n    }\n  ],\n  \"require\":      {\n    \"php\": \">= 5.5\",\n    \"doctrine/lexer\": \"^1.0.1\"\n  },\n  \"require-dev\" :   {\n    \"satooshi/php-coveralls\": \"^1.0.1\",\n    \"phpunit/phpunit\": \"^4.8.35||^5.7||^6.0\",\n    \"dominicsayers/isemail\": \"dev-master\"\n  },\n  \"suggest\": {\n    \"ext-intl\": \"PHP Internationalization Libraries are required to use the SpoofChecking validation\"\n  },\n  \"autoload\": {\n    \"psr-4\": {\n      \"Egulias\\\\EmailValidator\\\\\": \"EmailValidator\"\n    }\n  },\n  \"autoload-dev\": {\n    \"psr-4\": {\n      \"Egulias\\\\Tests\\\\\": \"test\"\n    }\n  }\n}\n"
  },
  {
    "path": "vendor/egulias/email-validator/phpunit.xml.dist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<phpunit backupGlobals=\"false\"\n         backupStaticAttributes=\"false\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n         processIsolation=\"false\"\n         stopOnFailure=\"false\"\n         syntaxCheck=\"false\"\n         bootstrap=\"vendor/autoload.php\"\n>\n<testsuites>\n  <testsuite name=\"EmailValidator Test Suite\">\n    <directory>./Tests/EmailValidator</directory>\n    <exclude>./vendor/</exclude>\n  </testsuite>\n</testsuites>\n\n<filter>\n  <blacklist>\n    <directory>./vendor</directory>\n  </blacklist>\n</filter>\n</phpunit>\n"
  },
  {
    "path": "vendor/erusev/parsedown/LICENSE.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013-2018 Emanuil Rusev, erusev.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/erusev/parsedown/Parsedown.php",
    "content": "<?php\n\n#\n#\n# Parsedown\n# http://parsedown.org\n#\n# (c) Emanuil Rusev\n# http://erusev.com\n#\n# For the full license information, view the LICENSE file that was distributed\n# with this source code.\n#\n#\n\nclass Parsedown\n{\n    # ~\n\n    const version = '1.7.3';\n\n    # ~\n\n    function text($text)\n    {\n        # make sure no definitions are set\n        $this->DefinitionData = array();\n\n        # standardize line breaks\n        $text = str_replace(array(\"\\r\\n\", \"\\r\"), \"\\n\", $text);\n\n        # remove surrounding line breaks\n        $text = trim($text, \"\\n\");\n\n        # split text into lines\n        $lines = explode(\"\\n\", $text);\n\n        # iterate through lines to identify blocks\n        $markup = $this->lines($lines);\n\n        # trim line breaks\n        $markup = trim($markup, \"\\n\");\n\n        return $markup;\n    }\n\n    #\n    # Setters\n    #\n\n    function setBreaksEnabled($breaksEnabled)\n    {\n        $this->breaksEnabled = $breaksEnabled;\n\n        return $this;\n    }\n\n    protected $breaksEnabled;\n\n    function setMarkupEscaped($markupEscaped)\n    {\n        $this->markupEscaped = $markupEscaped;\n\n        return $this;\n    }\n\n    protected $markupEscaped;\n\n    function setUrlsLinked($urlsLinked)\n    {\n        $this->urlsLinked = $urlsLinked;\n\n        return $this;\n    }\n\n    protected $urlsLinked = true;\n\n    function setSafeMode($safeMode)\n    {\n        $this->safeMode = (bool) $safeMode;\n\n        return $this;\n    }\n\n    protected $safeMode;\n\n    protected $safeLinksWhitelist = array(\n        'http://',\n        'https://',\n        'ftp://',\n        'ftps://',\n        'mailto:',\n        'data:image/png;base64,',\n        'data:image/gif;base64,',\n        'data:image/jpeg;base64,',\n        'irc:',\n        'ircs:',\n        'git:',\n        'ssh:',\n        'news:',\n        'steam:',\n    );\n\n    #\n    # Lines\n    #\n\n    protected $BlockTypes = array(\n        '#' => array('Header'),\n        '*' => array('Rule', 'List'),\n        '+' => array('List'),\n        '-' => array('SetextHeader', 'Table', 'Rule', 'List'),\n        '0' => array('List'),\n        '1' => array('List'),\n        '2' => array('List'),\n        '3' => array('List'),\n        '4' => array('List'),\n        '5' => array('List'),\n        '6' => array('List'),\n        '7' => array('List'),\n        '8' => array('List'),\n        '9' => array('List'),\n        ':' => array('Table'),\n        '<' => array('Comment', 'Markup'),\n        '=' => array('SetextHeader'),\n        '>' => array('Quote'),\n        '[' => array('Reference'),\n        '_' => array('Rule'),\n        '`' => array('FencedCode'),\n        '|' => array('Table'),\n        '~' => array('FencedCode'),\n    );\n\n    # ~\n\n    protected $unmarkedBlockTypes = array(\n        'Code',\n    );\n\n    #\n    # Blocks\n    #\n\n    protected function lines(array $lines)\n    {\n        $CurrentBlock = null;\n\n        foreach ($lines as $line)\n        {\n            if (chop($line) === '')\n            {\n                if (isset($CurrentBlock))\n                {\n                    $CurrentBlock['interrupted'] = true;\n                }\n\n                continue;\n            }\n\n            if (strpos($line, \"\\t\") !== false)\n            {\n                $parts = explode(\"\\t\", $line);\n\n                $line = $parts[0];\n\n                unset($parts[0]);\n\n                foreach ($parts as $part)\n                {\n                    $shortage = 4 - mb_strlen($line, 'utf-8') % 4;\n\n                    $line .= str_repeat(' ', $shortage);\n                    $line .= $part;\n                }\n            }\n\n            $indent = 0;\n\n            while (isset($line[$indent]) and $line[$indent] === ' ')\n            {\n                $indent ++;\n            }\n\n            $text = $indent > 0 ? substr($line, $indent) : $line;\n\n            # ~\n\n            $Line = array('body' => $line, 'indent' => $indent, 'text' => $text);\n\n            # ~\n\n            if (isset($CurrentBlock['continuable']))\n            {\n                $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock);\n\n                if (isset($Block))\n                {\n                    $CurrentBlock = $Block;\n\n                    continue;\n                }\n                else\n                {\n                    if ($this->isBlockCompletable($CurrentBlock['type']))\n                    {\n                        $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);\n                    }\n                }\n            }\n\n            # ~\n\n            $marker = $text[0];\n\n            # ~\n\n            $blockTypes = $this->unmarkedBlockTypes;\n\n            if (isset($this->BlockTypes[$marker]))\n            {\n                foreach ($this->BlockTypes[$marker] as $blockType)\n                {\n                    $blockTypes []= $blockType;\n                }\n            }\n\n            #\n            # ~\n\n            foreach ($blockTypes as $blockType)\n            {\n                $Block = $this->{'block'.$blockType}($Line, $CurrentBlock);\n\n                if (isset($Block))\n                {\n                    $Block['type'] = $blockType;\n\n                    if ( ! isset($Block['identified']))\n                    {\n                        $Blocks []= $CurrentBlock;\n\n                        $Block['identified'] = true;\n                    }\n\n                    if ($this->isBlockContinuable($blockType))\n                    {\n                        $Block['continuable'] = true;\n                    }\n\n                    $CurrentBlock = $Block;\n\n                    continue 2;\n                }\n            }\n\n            # ~\n\n            if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted']))\n            {\n                $CurrentBlock['element']['text'] .= \"\\n\".$text;\n            }\n            else\n            {\n                $Blocks []= $CurrentBlock;\n\n                $CurrentBlock = $this->paragraph($Line);\n\n                $CurrentBlock['identified'] = true;\n            }\n        }\n\n        # ~\n\n        if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type']))\n        {\n            $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock);\n        }\n\n        # ~\n\n        $Blocks []= $CurrentBlock;\n\n        unset($Blocks[0]);\n\n        # ~\n\n        $markup = '';\n\n        foreach ($Blocks as $Block)\n        {\n            if (isset($Block['hidden']))\n            {\n                continue;\n            }\n\n            $markup .= \"\\n\";\n            $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']);\n        }\n\n        $markup .= \"\\n\";\n\n        # ~\n\n        return $markup;\n    }\n\n    protected function isBlockContinuable($Type)\n    {\n        return method_exists($this, 'block'.$Type.'Continue');\n    }\n\n    protected function isBlockCompletable($Type)\n    {\n        return method_exists($this, 'block'.$Type.'Complete');\n    }\n\n    #\n    # Code\n\n    protected function blockCode($Line, $Block = null)\n    {\n        if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted']))\n        {\n            return;\n        }\n\n        if ($Line['indent'] >= 4)\n        {\n            $text = substr($Line['body'], 4);\n\n            $Block = array(\n                'element' => array(\n                    'name' => 'pre',\n                    'handler' => 'element',\n                    'text' => array(\n                        'name' => 'code',\n                        'text' => $text,\n                    ),\n                ),\n            );\n\n            return $Block;\n        }\n    }\n\n    protected function blockCodeContinue($Line, $Block)\n    {\n        if ($Line['indent'] >= 4)\n        {\n            if (isset($Block['interrupted']))\n            {\n                $Block['element']['text']['text'] .= \"\\n\";\n\n                unset($Block['interrupted']);\n            }\n\n            $Block['element']['text']['text'] .= \"\\n\";\n\n            $text = substr($Line['body'], 4);\n\n            $Block['element']['text']['text'] .= $text;\n\n            return $Block;\n        }\n    }\n\n    protected function blockCodeComplete($Block)\n    {\n        $text = $Block['element']['text']['text'];\n\n        $Block['element']['text']['text'] = $text;\n\n        return $Block;\n    }\n\n    #\n    # Comment\n\n    protected function blockComment($Line)\n    {\n        if ($this->markupEscaped or $this->safeMode)\n        {\n            return;\n        }\n\n        if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!')\n        {\n            $Block = array(\n                'markup' => $Line['body'],\n            );\n\n            if (preg_match('/-->$/', $Line['text']))\n            {\n                $Block['closed'] = true;\n            }\n\n            return $Block;\n        }\n    }\n\n    protected function blockCommentContinue($Line, array $Block)\n    {\n        if (isset($Block['closed']))\n        {\n            return;\n        }\n\n        $Block['markup'] .= \"\\n\" . $Line['body'];\n\n        if (preg_match('/-->$/', $Line['text']))\n        {\n            $Block['closed'] = true;\n        }\n\n        return $Block;\n    }\n\n    #\n    # Fenced Code\n\n    protected function blockFencedCode($Line)\n    {\n        if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches))\n        {\n            $Element = array(\n                'name' => 'code',\n                'text' => '',\n            );\n\n            if (isset($matches[1]))\n            {\n                /**\n                 * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes\n                 * Every HTML element may have a class attribute specified.\n                 * The attribute, if specified, must have a value that is a set\n                 * of space-separated tokens representing the various classes\n                 * that the element belongs to.\n                 * [...]\n                 * The space characters, for the purposes of this specification,\n                 * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab),\n                 * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and\n                 * U+000D CARRIAGE RETURN (CR).\n                 */\n                $language = substr($matches[1], 0, strcspn($matches[1], \" \\t\\n\\f\\r\"));\n\n                $class = 'language-'.$language;\n\n                $Element['attributes'] = array(\n                    'class' => $class,\n                );\n            }\n\n            $Block = array(\n                'char' => $Line['text'][0],\n                'element' => array(\n                    'name' => 'pre',\n                    'handler' => 'element',\n                    'text' => $Element,\n                ),\n            );\n\n            return $Block;\n        }\n    }\n\n    protected function blockFencedCodeContinue($Line, $Block)\n    {\n        if (isset($Block['complete']))\n        {\n            return;\n        }\n\n        if (isset($Block['interrupted']))\n        {\n            $Block['element']['text']['text'] .= \"\\n\";\n\n            unset($Block['interrupted']);\n        }\n\n        if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text']))\n        {\n            $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1);\n\n            $Block['complete'] = true;\n\n            return $Block;\n        }\n\n        $Block['element']['text']['text'] .= \"\\n\".$Line['body'];\n\n        return $Block;\n    }\n\n    protected function blockFencedCodeComplete($Block)\n    {\n        $text = $Block['element']['text']['text'];\n\n        $Block['element']['text']['text'] = $text;\n\n        return $Block;\n    }\n\n    #\n    # Header\n\n    protected function blockHeader($Line)\n    {\n        if (isset($Line['text'][1]))\n        {\n            $level = 1;\n\n            while (isset($Line['text'][$level]) and $Line['text'][$level] === '#')\n            {\n                $level ++;\n            }\n\n            if ($level > 6)\n            {\n                return;\n            }\n\n            $text = trim($Line['text'], '# ');\n\n            $Block = array(\n                'element' => array(\n                    'name' => 'h' . min(6, $level),\n                    'text' => $text,\n                    'handler' => 'line',\n                ),\n            );\n\n            return $Block;\n        }\n    }\n\n    #\n    # List\n\n    protected function blockList($Line)\n    {\n        list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]');\n\n        if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches))\n        {\n            $Block = array(\n                'indent' => $Line['indent'],\n                'pattern' => $pattern,\n                'element' => array(\n                    'name' => $name,\n                    'handler' => 'elements',\n                ),\n            );\n\n            if($name === 'ol')\n            {\n                $listStart = stristr($matches[0], '.', true);\n\n                if($listStart !== '1')\n                {\n                    $Block['element']['attributes'] = array('start' => $listStart);\n                }\n            }\n\n            $Block['li'] = array(\n                'name' => 'li',\n                'handler' => 'li',\n                'text' => array(\n                    $matches[2],\n                ),\n            );\n\n            $Block['element']['text'] []= & $Block['li'];\n\n            return $Block;\n        }\n    }\n\n    protected function blockListContinue($Line, array $Block)\n    {\n        if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches))\n        {\n            if (isset($Block['interrupted']))\n            {\n                $Block['li']['text'] []= '';\n\n                $Block['loose'] = true;\n\n                unset($Block['interrupted']);\n            }\n\n            unset($Block['li']);\n\n            $text = isset($matches[1]) ? $matches[1] : '';\n\n            $Block['li'] = array(\n                'name' => 'li',\n                'handler' => 'li',\n                'text' => array(\n                    $text,\n                ),\n            );\n\n            $Block['element']['text'] []= & $Block['li'];\n\n            return $Block;\n        }\n\n        if ($Line['text'][0] === '[' and $this->blockReference($Line))\n        {\n            return $Block;\n        }\n\n        if ( ! isset($Block['interrupted']))\n        {\n            $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']);\n\n            $Block['li']['text'] []= $text;\n\n            return $Block;\n        }\n\n        if ($Line['indent'] > 0)\n        {\n            $Block['li']['text'] []= '';\n\n            $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']);\n\n            $Block['li']['text'] []= $text;\n\n            unset($Block['interrupted']);\n\n            return $Block;\n        }\n    }\n\n    protected function blockListComplete(array $Block)\n    {\n        if (isset($Block['loose']))\n        {\n            foreach ($Block['element']['text'] as &$li)\n            {\n                if (end($li['text']) !== '')\n                {\n                    $li['text'] []= '';\n                }\n            }\n        }\n\n        return $Block;\n    }\n\n    #\n    # Quote\n\n    protected function blockQuote($Line)\n    {\n        if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches))\n        {\n            $Block = array(\n                'element' => array(\n                    'name' => 'blockquote',\n                    'handler' => 'lines',\n                    'text' => (array) $matches[1],\n                ),\n            );\n\n            return $Block;\n        }\n    }\n\n    protected function blockQuoteContinue($Line, array $Block)\n    {\n        if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches))\n        {\n            if (isset($Block['interrupted']))\n            {\n                $Block['element']['text'] []= '';\n\n                unset($Block['interrupted']);\n            }\n\n            $Block['element']['text'] []= $matches[1];\n\n            return $Block;\n        }\n\n        if ( ! isset($Block['interrupted']))\n        {\n            $Block['element']['text'] []= $Line['text'];\n\n            return $Block;\n        }\n    }\n\n    #\n    # Rule\n\n    protected function blockRule($Line)\n    {\n        if (preg_match('/^(['.$Line['text'][0].'])([ ]*\\1){2,}[ ]*$/', $Line['text']))\n        {\n            $Block = array(\n                'element' => array(\n                    'name' => 'hr'\n                ),\n            );\n\n            return $Block;\n        }\n    }\n\n    #\n    # Setext\n\n    protected function blockSetextHeader($Line, array $Block = null)\n    {\n        if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted']))\n        {\n            return;\n        }\n\n        if (chop($Line['text'], $Line['text'][0]) === '')\n        {\n            $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2';\n\n            return $Block;\n        }\n    }\n\n    #\n    # Markup\n\n    protected function blockMarkup($Line)\n    {\n        if ($this->markupEscaped or $this->safeMode)\n        {\n            return;\n        }\n\n        if (preg_match('/^<(\\w[\\w-]*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\\/)?>/', $Line['text'], $matches))\n        {\n            $element = strtolower($matches[1]);\n\n            if (in_array($element, $this->textLevelElements))\n            {\n                return;\n            }\n\n            $Block = array(\n                'name' => $matches[1],\n                'depth' => 0,\n                'markup' => $Line['text'],\n            );\n\n            $length = strlen($matches[0]);\n\n            $remainder = substr($Line['text'], $length);\n\n            if (trim($remainder) === '')\n            {\n                if (isset($matches[2]) or in_array($matches[1], $this->voidElements))\n                {\n                    $Block['closed'] = true;\n\n                    $Block['void'] = true;\n                }\n            }\n            else\n            {\n                if (isset($matches[2]) or in_array($matches[1], $this->voidElements))\n                {\n                    return;\n                }\n\n                if (preg_match('/<\\/'.$matches[1].'>[ ]*$/i', $remainder))\n                {\n                    $Block['closed'] = true;\n                }\n            }\n\n            return $Block;\n        }\n    }\n\n    protected function blockMarkupContinue($Line, array $Block)\n    {\n        if (isset($Block['closed']))\n        {\n            return;\n        }\n\n        if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open\n        {\n            $Block['depth'] ++;\n        }\n\n        if (preg_match('/(.*?)<\\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close\n        {\n            if ($Block['depth'] > 0)\n            {\n                $Block['depth'] --;\n            }\n            else\n            {\n                $Block['closed'] = true;\n            }\n        }\n\n        if (isset($Block['interrupted']))\n        {\n            $Block['markup'] .= \"\\n\";\n\n            unset($Block['interrupted']);\n        }\n\n        $Block['markup'] .= \"\\n\".$Line['body'];\n\n        return $Block;\n    }\n\n    #\n    # Reference\n\n    protected function blockReference($Line)\n    {\n        if (preg_match('/^\\[(.+?)\\]:[ ]*<?(\\S+?)>?(?:[ ]+[\"\\'(](.+)[\"\\')])?[ ]*$/', $Line['text'], $matches))\n        {\n            $id = strtolower($matches[1]);\n\n            $Data = array(\n                'url' => $matches[2],\n                'title' => null,\n            );\n\n            if (isset($matches[3]))\n            {\n                $Data['title'] = $matches[3];\n            }\n\n            $this->DefinitionData['Reference'][$id] = $Data;\n\n            $Block = array(\n                'hidden' => true,\n            );\n\n            return $Block;\n        }\n    }\n\n    #\n    # Table\n\n    protected function blockTable($Line, array $Block = null)\n    {\n        if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted']))\n        {\n            return;\n        }\n\n        if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '')\n        {\n            $alignments = array();\n\n            $divider = $Line['text'];\n\n            $divider = trim($divider);\n            $divider = trim($divider, '|');\n\n            $dividerCells = explode('|', $divider);\n\n            foreach ($dividerCells as $dividerCell)\n            {\n                $dividerCell = trim($dividerCell);\n\n                if ($dividerCell === '')\n                {\n                    continue;\n                }\n\n                $alignment = null;\n\n                if ($dividerCell[0] === ':')\n                {\n                    $alignment = 'left';\n                }\n\n                if (substr($dividerCell, - 1) === ':')\n                {\n                    $alignment = $alignment === 'left' ? 'center' : 'right';\n                }\n\n                $alignments []= $alignment;\n            }\n\n            # ~\n\n            $HeaderElements = array();\n\n            $header = $Block['element']['text'];\n\n            $header = trim($header);\n            $header = trim($header, '|');\n\n            $headerCells = explode('|', $header);\n\n            foreach ($headerCells as $index => $headerCell)\n            {\n                $headerCell = trim($headerCell);\n\n                $HeaderElement = array(\n                    'name' => 'th',\n                    'text' => $headerCell,\n                    'handler' => 'line',\n                );\n\n                if (isset($alignments[$index]))\n                {\n                    $alignment = $alignments[$index];\n\n                    $HeaderElement['attributes'] = array(\n                        'style' => 'text-align: '.$alignment.';',\n                    );\n                }\n\n                $HeaderElements []= $HeaderElement;\n            }\n\n            # ~\n\n            $Block = array(\n                'alignments' => $alignments,\n                'identified' => true,\n                'element' => array(\n                    'name' => 'table',\n                    'handler' => 'elements',\n                ),\n            );\n\n            $Block['element']['text'] []= array(\n                'name' => 'thead',\n                'handler' => 'elements',\n            );\n\n            $Block['element']['text'] []= array(\n                'name' => 'tbody',\n                'handler' => 'elements',\n                'text' => array(),\n            );\n\n            $Block['element']['text'][0]['text'] []= array(\n                'name' => 'tr',\n                'handler' => 'elements',\n                'text' => $HeaderElements,\n            );\n\n            return $Block;\n        }\n    }\n\n    protected function blockTableContinue($Line, array $Block)\n    {\n        if (isset($Block['interrupted']))\n        {\n            return;\n        }\n\n        if ($Line['text'][0] === '|' or strpos($Line['text'], '|'))\n        {\n            $Elements = array();\n\n            $row = $Line['text'];\n\n            $row = trim($row);\n            $row = trim($row, '|');\n\n            preg_match_all('/(?:(\\\\\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches);\n\n            foreach ($matches[0] as $index => $cell)\n            {\n                $cell = trim($cell);\n\n                $Element = array(\n                    'name' => 'td',\n                    'handler' => 'line',\n                    'text' => $cell,\n                );\n\n                if (isset($Block['alignments'][$index]))\n                {\n                    $Element['attributes'] = array(\n                        'style' => 'text-align: '.$Block['alignments'][$index].';',\n                    );\n                }\n\n                $Elements []= $Element;\n            }\n\n            $Element = array(\n                'name' => 'tr',\n                'handler' => 'elements',\n                'text' => $Elements,\n            );\n\n            $Block['element']['text'][1]['text'] []= $Element;\n\n            return $Block;\n        }\n    }\n\n    #\n    # ~\n    #\n\n    protected function paragraph($Line)\n    {\n        $Block = array(\n            'element' => array(\n                'name' => 'p',\n                'text' => $Line['text'],\n                'handler' => 'line',\n            ),\n        );\n\n        return $Block;\n    }\n\n    #\n    # Inline Elements\n    #\n\n    protected $InlineTypes = array(\n        '\"' => array('SpecialCharacter'),\n        '!' => array('Image'),\n        '&' => array('SpecialCharacter'),\n        '*' => array('Emphasis'),\n        ':' => array('Url'),\n        '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'),\n        '>' => array('SpecialCharacter'),\n        '[' => array('Link'),\n        '_' => array('Emphasis'),\n        '`' => array('Code'),\n        '~' => array('Strikethrough'),\n        '\\\\' => array('EscapeSequence'),\n    );\n\n    # ~\n\n    protected $inlineMarkerList = '!\"*_&[:<>`~\\\\';\n\n    #\n    # ~\n    #\n\n    public function line($text, $nonNestables=array())\n    {\n        $markup = '';\n\n        # $excerpt is based on the first occurrence of a marker\n\n        while ($excerpt = strpbrk($text, $this->inlineMarkerList))\n        {\n            $marker = $excerpt[0];\n\n            $markerPosition = strpos($text, $marker);\n\n            $Excerpt = array('text' => $excerpt, 'context' => $text);\n\n            foreach ($this->InlineTypes[$marker] as $inlineType)\n            {\n                # check to see if the current inline type is nestable in the current context\n\n                if ( ! empty($nonNestables) and in_array($inlineType, $nonNestables))\n                {\n                    continue;\n                }\n\n                $Inline = $this->{'inline'.$inlineType}($Excerpt);\n\n                if ( ! isset($Inline))\n                {\n                    continue;\n                }\n\n                # makes sure that the inline belongs to \"our\" marker\n\n                if (isset($Inline['position']) and $Inline['position'] > $markerPosition)\n                {\n                    continue;\n                }\n\n                # sets a default inline position\n\n                if ( ! isset($Inline['position']))\n                {\n                    $Inline['position'] = $markerPosition;\n                }\n\n                # cause the new element to 'inherit' our non nestables\n\n                foreach ($nonNestables as $non_nestable)\n                {\n                    $Inline['element']['nonNestables'][] = $non_nestable;\n                }\n\n                # the text that comes before the inline\n                $unmarkedText = substr($text, 0, $Inline['position']);\n\n                # compile the unmarked text\n                $markup .= $this->unmarkedText($unmarkedText);\n\n                # compile the inline\n                $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']);\n\n                # remove the examined text\n                $text = substr($text, $Inline['position'] + $Inline['extent']);\n\n                continue 2;\n            }\n\n            # the marker does not belong to an inline\n\n            $unmarkedText = substr($text, 0, $markerPosition + 1);\n\n            $markup .= $this->unmarkedText($unmarkedText);\n\n            $text = substr($text, $markerPosition + 1);\n        }\n\n        $markup .= $this->unmarkedText($text);\n\n        return $markup;\n    }\n\n    #\n    # ~\n    #\n\n    protected function inlineCode($Excerpt)\n    {\n        $marker = $Excerpt['text'][0];\n\n        if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(?<!'.$marker.')\\1(?!'.$marker.')/s', $Excerpt['text'], $matches))\n        {\n            $text = $matches[2];\n            $text = preg_replace(\"/[ ]*\\n/\", ' ', $text);\n\n            return array(\n                'extent' => strlen($matches[0]),\n                'element' => array(\n                    'name' => 'code',\n                    'text' => $text,\n                ),\n            );\n        }\n    }\n\n    protected function inlineEmailTag($Excerpt)\n    {\n        if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\\S+?@\\S+?)>/i', $Excerpt['text'], $matches))\n        {\n            $url = $matches[1];\n\n            if ( ! isset($matches[2]))\n            {\n                $url = 'mailto:' . $url;\n            }\n\n            return array(\n                'extent' => strlen($matches[0]),\n                'element' => array(\n                    'name' => 'a',\n                    'text' => $matches[1],\n                    'attributes' => array(\n                        'href' => $url,\n                    ),\n                ),\n            );\n        }\n    }\n\n    protected function inlineEmphasis($Excerpt)\n    {\n        if ( ! isset($Excerpt['text'][1]))\n        {\n            return;\n        }\n\n        $marker = $Excerpt['text'][0];\n\n        if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches))\n        {\n            $emphasis = 'strong';\n        }\n        elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches))\n        {\n            $emphasis = 'em';\n        }\n        else\n        {\n            return;\n        }\n\n        return array(\n            'extent' => strlen($matches[0]),\n            'element' => array(\n                'name' => $emphasis,\n                'handler' => 'line',\n                'text' => $matches[1],\n            ),\n        );\n    }\n\n    protected function inlineEscapeSequence($Excerpt)\n    {\n        if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters))\n        {\n            return array(\n                'markup' => $Excerpt['text'][1],\n                'extent' => 2,\n            );\n        }\n    }\n\n    protected function inlineImage($Excerpt)\n    {\n        if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[')\n        {\n            return;\n        }\n\n        $Excerpt['text']= substr($Excerpt['text'], 1);\n\n        $Link = $this->inlineLink($Excerpt);\n\n        if ($Link === null)\n        {\n            return;\n        }\n\n        $Inline = array(\n            'extent' => $Link['extent'] + 1,\n            'element' => array(\n                'name' => 'img',\n                'attributes' => array(\n                    'src' => $Link['element']['attributes']['href'],\n                    'alt' => $Link['element']['text'],\n                ),\n            ),\n        );\n\n        $Inline['element']['attributes'] += $Link['element']['attributes'];\n\n        unset($Inline['element']['attributes']['href']);\n\n        return $Inline;\n    }\n\n    protected function inlineLink($Excerpt)\n    {\n        $Element = array(\n            'name' => 'a',\n            'handler' => 'line',\n            'nonNestables' => array('Url', 'Link'),\n            'text' => null,\n            'attributes' => array(\n                'href' => null,\n                'title' => null,\n            ),\n        );\n\n        $extent = 0;\n\n        $remainder = $Excerpt['text'];\n\n        if (preg_match('/\\[((?:[^][]++|(?R))*+)\\]/', $remainder, $matches))\n        {\n            $Element['text'] = $matches[1];\n\n            $extent += strlen($matches[0]);\n\n            $remainder = substr($remainder, $extent);\n        }\n        else\n        {\n            return;\n        }\n\n        if (preg_match('/^[(]\\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+(\"[^\"]*\"|\\'[^\\']*\\'))?\\s*[)]/', $remainder, $matches))\n        {\n            $Element['attributes']['href'] = $matches[1];\n\n            if (isset($matches[2]))\n            {\n                $Element['attributes']['title'] = substr($matches[2], 1, - 1);\n            }\n\n            $extent += strlen($matches[0]);\n        }\n        else\n        {\n            if (preg_match('/^\\s*\\[(.*?)\\]/', $remainder, $matches))\n            {\n                $definition = strlen($matches[1]) ? $matches[1] : $Element['text'];\n                $definition = strtolower($definition);\n\n                $extent += strlen($matches[0]);\n            }\n            else\n            {\n                $definition = strtolower($Element['text']);\n            }\n\n            if ( ! isset($this->DefinitionData['Reference'][$definition]))\n            {\n                return;\n            }\n\n            $Definition = $this->DefinitionData['Reference'][$definition];\n\n            $Element['attributes']['href'] = $Definition['url'];\n            $Element['attributes']['title'] = $Definition['title'];\n        }\n\n        return array(\n            'extent' => $extent,\n            'element' => $Element,\n        );\n    }\n\n    protected function inlineMarkup($Excerpt)\n    {\n        if ($this->markupEscaped or $this->safeMode or strpos($Excerpt['text'], '>') === false)\n        {\n            return;\n        }\n\n        if ($Excerpt['text'][1] === '/' and preg_match('/^<\\/\\w[\\w-]*[ ]*>/s', $Excerpt['text'], $matches))\n        {\n            return array(\n                'markup' => $matches[0],\n                'extent' => strlen($matches[0]),\n            );\n        }\n\n        if ($Excerpt['text'][1] === '!' and preg_match('/^<!---?[^>-](?:-?[^-])*-->/s', $Excerpt['text'], $matches))\n        {\n            return array(\n                'markup' => $matches[0],\n                'extent' => strlen($matches[0]),\n            );\n        }\n\n        if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\\w[\\w-]*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\\/?>/s', $Excerpt['text'], $matches))\n        {\n            return array(\n                'markup' => $matches[0],\n                'extent' => strlen($matches[0]),\n            );\n        }\n    }\n\n    protected function inlineSpecialCharacter($Excerpt)\n    {\n        if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\\w+;/', $Excerpt['text']))\n        {\n            return array(\n                'markup' => '&amp;',\n                'extent' => 1,\n            );\n        }\n\n        $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '\"' => 'quot');\n\n        if (isset($SpecialCharacter[$Excerpt['text'][0]]))\n        {\n            return array(\n                'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';',\n                'extent' => 1,\n            );\n        }\n    }\n\n    protected function inlineStrikethrough($Excerpt)\n    {\n        if ( ! isset($Excerpt['text'][1]))\n        {\n            return;\n        }\n\n        if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\\S)(.+?)(?<=\\S)~~/', $Excerpt['text'], $matches))\n        {\n            return array(\n                'extent' => strlen($matches[0]),\n                'element' => array(\n                    'name' => 'del',\n                    'text' => $matches[1],\n                    'handler' => 'line',\n                ),\n            );\n        }\n    }\n\n    protected function inlineUrl($Excerpt)\n    {\n        if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/')\n        {\n            return;\n        }\n\n        if (preg_match('/\\bhttps?:[\\/]{2}[^\\s<]+\\b\\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE))\n        {\n            $url = $matches[0][0];\n\n            $Inline = array(\n                'extent' => strlen($matches[0][0]),\n                'position' => $matches[0][1],\n                'element' => array(\n                    'name' => 'a',\n                    'text' => $url,\n                    'attributes' => array(\n                        'href' => $url,\n                    ),\n                ),\n            );\n\n            return $Inline;\n        }\n    }\n\n    protected function inlineUrlTag($Excerpt)\n    {\n        if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\\w+:\\/{2}[^ >]+)>/i', $Excerpt['text'], $matches))\n        {\n            $url = $matches[1];\n\n            return array(\n                'extent' => strlen($matches[0]),\n                'element' => array(\n                    'name' => 'a',\n                    'text' => $url,\n                    'attributes' => array(\n                        'href' => $url,\n                    ),\n                ),\n            );\n        }\n    }\n\n    # ~\n\n    protected function unmarkedText($text)\n    {\n        if ($this->breaksEnabled)\n        {\n            $text = preg_replace('/[ ]*\\n/', \"<br />\\n\", $text);\n        }\n        else\n        {\n            $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\\\\\)\\n/', \"<br />\\n\", $text);\n            $text = str_replace(\" \\n\", \"\\n\", $text);\n        }\n\n        return $text;\n    }\n\n    #\n    # Handlers\n    #\n\n    protected function element(array $Element)\n    {\n        if ($this->safeMode)\n        {\n            $Element = $this->sanitiseElement($Element);\n        }\n\n        $markup = '<'.$Element['name'];\n\n        if (isset($Element['attributes']))\n        {\n            foreach ($Element['attributes'] as $name => $value)\n            {\n                if ($value === null)\n                {\n                    continue;\n                }\n\n                $markup .= ' '.$name.'=\"'.self::escape($value).'\"';\n            }\n        }\n\n        if (isset($Element['text']))\n        {\n            $markup .= '>';\n\n            if (!isset($Element['nonNestables'])) \n            {\n                $Element['nonNestables'] = array();\n            }\n\n            if (isset($Element['handler']))\n            {\n                $markup .= $this->{$Element['handler']}($Element['text'], $Element['nonNestables']);\n            }\n            else\n            {\n                $markup .= self::escape($Element['text'], true);\n            }\n\n            $markup .= '</'.$Element['name'].'>';\n        }\n        else\n        {\n            $markup .= ' />';\n        }\n\n        return $markup;\n    }\n\n    protected function elements(array $Elements)\n    {\n        $markup = '';\n\n        foreach ($Elements as $Element)\n        {\n            $markup .= \"\\n\" . $this->element($Element);\n        }\n\n        $markup .= \"\\n\";\n\n        return $markup;\n    }\n\n    # ~\n\n    protected function li($lines)\n    {\n        $markup = $this->lines($lines);\n\n        $trimmedMarkup = trim($markup);\n\n        if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '<p>')\n        {\n            $markup = $trimmedMarkup;\n            $markup = substr($markup, 3);\n\n            $position = strpos($markup, \"</p>\");\n\n            $markup = substr_replace($markup, '', $position, 4);\n        }\n\n        return $markup;\n    }\n\n    #\n    # Deprecated Methods\n    #\n\n    function parse($text)\n    {\n        $markup = $this->text($text);\n\n        return $markup;\n    }\n\n    protected function sanitiseElement(array $Element)\n    {\n        static $goodAttribute = '/^[a-zA-Z0-9][a-zA-Z0-9-_]*+$/';\n        static $safeUrlNameToAtt  = array(\n            'a'   => 'href',\n            'img' => 'src',\n        );\n\n        if (isset($safeUrlNameToAtt[$Element['name']]))\n        {\n            $Element = $this->filterUnsafeUrlInAttribute($Element, $safeUrlNameToAtt[$Element['name']]);\n        }\n\n        if ( ! empty($Element['attributes']))\n        {\n            foreach ($Element['attributes'] as $att => $val)\n            {\n                # filter out badly parsed attribute\n                if ( ! preg_match($goodAttribute, $att))\n                {\n                    unset($Element['attributes'][$att]);\n                }\n                # dump onevent attribute\n                elseif (self::striAtStart($att, 'on'))\n                {\n                    unset($Element['attributes'][$att]);\n                }\n            }\n        }\n\n        return $Element;\n    }\n\n    protected function filterUnsafeUrlInAttribute(array $Element, $attribute)\n    {\n        foreach ($this->safeLinksWhitelist as $scheme)\n        {\n            if (self::striAtStart($Element['attributes'][$attribute], $scheme))\n            {\n                return $Element;\n            }\n        }\n\n        $Element['attributes'][$attribute] = str_replace(':', '%3A', $Element['attributes'][$attribute]);\n\n        return $Element;\n    }\n\n    #\n    # Static Methods\n    #\n\n    protected static function escape($text, $allowQuotes = false)\n    {\n        return htmlspecialchars($text, $allowQuotes ? ENT_NOQUOTES : ENT_QUOTES, 'UTF-8');\n    }\n\n    protected static function striAtStart($string, $needle)\n    {\n        $len = strlen($needle);\n\n        if ($len > strlen($string))\n        {\n            return false;\n        }\n        else\n        {\n            return strtolower(substr($string, 0, $len)) === strtolower($needle);\n        }\n    }\n\n    static function instance($name = 'default')\n    {\n        if (isset(self::$instances[$name]))\n        {\n            return self::$instances[$name];\n        }\n\n        $instance = new static();\n\n        self::$instances[$name] = $instance;\n\n        return $instance;\n    }\n\n    private static $instances = array();\n\n    #\n    # Fields\n    #\n\n    protected $DefinitionData;\n\n    #\n    # Read-Only\n\n    protected $specialCharacters = array(\n        '\\\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|',\n    );\n\n    protected $StrongRegex = array(\n        '*' => '/^[*]{2}((?:\\\\\\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s',\n        '_' => '/^__((?:\\\\\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us',\n    );\n\n    protected $EmRegex = array(\n        '*' => '/^[*]((?:\\\\\\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s',\n        '_' => '/^_((?:\\\\\\\\_|[^_]|__[^_]*__)+?)_(?!_)\\b/us',\n    );\n\n    protected $regexHtmlAttribute = '[a-zA-Z_:][\\w:.-]*(?:\\s*=\\s*(?:[^\"\\'=<>`\\s]+|\"[^\"]*\"|\\'[^\\']*\\'))?';\n\n    protected $voidElements = array(\n        'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source',\n    );\n\n    protected $textLevelElements = array(\n        'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont',\n        'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing',\n        'i', 'rp', 'del', 'code',          'strike', 'marquee',\n        'q', 'rt', 'ins', 'font',          'strong',\n        's', 'tt', 'kbd', 'mark',\n        'u', 'xm', 'sub', 'nobr',\n                   'sup', 'ruby',\n                   'var', 'span',\n                   'wbr', 'time',\n    );\n}\n"
  },
  {
    "path": "vendor/erusev/parsedown/README.md",
    "content": "> I also make [Caret](https://caret.io?ref=parsedown) - a Markdown editor for Mac and PC.\n\n## Parsedown\n\n[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown)\n<!--[![Total Downloads](http://img.shields.io/packagist/dt/erusev/parsedown.svg?style=flat-square)](https://packagist.org/packages/erusev/parsedown)-->\n\nBetter Markdown Parser in PHP\n\n[Demo](http://parsedown.org/demo) |\n[Benchmarks](http://parsedown.org/speed) |\n[Tests](http://parsedown.org/tests/) |\n[Documentation](https://github.com/erusev/parsedown/wiki/)\n\n### Features\n\n* One File\n* No Dependencies\n* Super Fast\n* Extensible\n* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown)\n* Tested in 5.3 to 7.1 and in HHVM\n* [Markdown Extra extension](https://github.com/erusev/parsedown-extra)\n\n### Installation\n\nInclude `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown).\n\n### Example\n\n``` php\n$Parsedown = new Parsedown();\n\necho $Parsedown->text('Hello _Parsedown_!'); # prints: <p>Hello <em>Parsedown</em>!</p>\n```\n\nMore examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI).\n\n### Security\n\nParsedown is capable of escaping user-input within the HTML that it generates. Additionally Parsedown will apply sanitisation to additional scripting vectors (such as scripting link destinations) that are introduced by the markdown syntax itself.\n\nTo tell Parsedown that it is processing untrusted user-input, use the following:\n```php\n$parsedown = new Parsedown;\n$parsedown->setSafeMode(true);\n```\n\nIf instead, you wish to allow HTML within untrusted user-input, but still want output to be free from XSS it is recommended that you make use of a HTML sanitiser that allows HTML tags to be whitelisted, like [HTML Purifier](http://htmlpurifier.org/).\n\nIn both cases you should strongly consider employing defence-in-depth measures, like [deploying a Content-Security-Policy](https://scotthelme.co.uk/content-security-policy-an-introduction/) (a browser security feature) so that your page is likely to be safe even if an attacker finds a vulnerability in one of the first lines of defence above.\n\n#### Security of Parsedown Extensions\n\nSafe mode does not necessarily yield safe results when using extensions to Parsedown. Extensions should be evaluated on their own to determine their specific safety against XSS.\n\n### Escaping HTML\n> ⚠️  **WARNING:** This method isn't safe from XSS!\n\nIf you wish to escape HTML **in trusted input**, you can use the following:\n```php\n$parsedown = new Parsedown;\n$parsedown->setMarkupEscaped(true);\n```\n\nBeware that this still allows users to insert unsafe scripting vectors, such as links like `[xss](javascript:alert%281%29)`.\n\n### Questions\n\n**How does Parsedown work?**\n\nIt tries to read Markdown like a human. First, it looks at the lines. It’s interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line starts with a `-` then perhaps it belongs to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines).\n\nWe call this approach \"line based\". We believe that Parsedown is the first Markdown parser to use it. Since the release of Parsedown, other developers have used the same approach to develop other Markdown parsers in PHP and in other languages.\n\n**Is it compliant with CommonMark?**\n\nIt passes most of the CommonMark tests. Most of the tests that don't pass deal with cases that are quite uncommon. Still, as CommonMark matures, compliance should improve.\n\n**Who uses it?**\n\n[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents).\n\n**How can I help?**\n\nUse it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2).\n"
  },
  {
    "path": "vendor/erusev/parsedown/composer.json",
    "content": "{\n    \"name\": \"erusev/parsedown\",\n    \"description\": \"Parser for Markdown.\",\n    \"keywords\": [\"markdown\", \"parser\"],\n    \"homepage\": \"http://parsedown.org\",\n    \"type\": \"library\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Emanuil Rusev\",\n            \"email\": \"hello@erusev.com\",\n            \"homepage\": \"http://erusev.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.0\",\n        \"ext-mbstring\": \"*\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^4.8.35\"\n    },\n    \"autoload\": {\n        \"psr-0\": {\"Parsedown\": \"\"}\n    },\n    \"autoload-dev\": {\n        \"psr-0\": {\n            \"TestParsedown\": \"test/\",\n            \"ParsedownTest\": \"test/\",\n            \"CommonMarkTest\": \"test/\",\n            \"CommonMarkTestWeak\": \"test/\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/fideloper/proxy/LICENSE.md",
    "content": "MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/fideloper/proxy/composer.json",
    "content": "{\n    \"name\": \"fideloper/proxy\",\n    \"description\": \"Set trusted proxies for Laravel\",\n    \"keywords\": [\"proxy\", \"trusted proxy\", \"load balancing\"],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Chris Fidao\",\n            \"email\": \"fideloper@gmail.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.4.0\",\n        \"illuminate/contracts\": \"~5.0\"\n    },\n    \"require-dev\": {\n        \"illuminate/http\": \"~5.6\",\n        \"mockery/mockery\": \"~1.0\",\n        \"phpunit/phpunit\": \"^6.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Fideloper\\\\Proxy\\\\\": \"src/\"\n        }\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"providers\": [\n                \"Fideloper\\\\Proxy\\\\TrustedProxyServiceProvider\"\n            ]\n        }\n    },\n    \"minimum-stability\": \"dev\",\n    \"prefer-stable\": true\n}\n"
  },
  {
    "path": "vendor/fideloper/proxy/config/trustedproxy.php",
    "content": "<?php\n\nreturn [\n\n    /*\n     * Set trusted proxy IP addresses.\n     *\n     * Both IPv4 and IPv6 addresses are\n     * supported, along with CIDR notation.\n     *\n     * The \"*\" character is syntactic sugar\n     * within TrustedProxy to trust any proxy\n     * that connects directly to your server,\n     * a requirement when you cannot know the address\n     * of your proxy (e.g. if using ELB or similar).\n     *\n     */\n    'proxies' => null, // [<ip addresses>,], '*', '<ip addresses>,'\n\n    /*\n     * To trust one or more specific proxies that connect\n     * directly to your server, use an array or a string separated by comma of IP addresses:\n     */\n    // 'proxies' => ['192.168.1.1'],\n    // 'proxies' => '192.168.1.1, 192.168.1.2',\n\n    /*\n     * Or, to trust all proxies that connect\n     * directly to your server, use a \"*\"\n     */\n    // 'proxies' => '*',\n\n    /*\n     * Which headers to use to detect proxy related data (For, Host, Proto, Port)\n     * \n     * Options include:\n     * \n     * - Illuminate\\Http\\Request::HEADER_X_FORWARDED_ALL (use all x-forwarded-* headers to establish trust)\n     * - Illuminate\\Http\\Request::HEADER_FORWARDED (use the FORWARDED header to establish trust)\n     * - Illuminate\\Http\\Request::HEADER_X_FORWARDED_AWS_ELB (If you are using AWS Elastic Load Balancer)\n     *\n     * - 'HEADER_X_FORWARDED_ALL' (use all x-forwarded-* headers to establish trust)\n     * - 'HEADER_FORWARDED' (use the FORWARDED header to establish trust)\n     * - 'HEADER_X_FORWARDED_AWS_ELB' (If you are using AWS Elastic Load Balancer)\n     * \n     * @link https://symfony.com/doc/current/deployment/proxies.html\n     */\n    'headers' => Illuminate\\Http\\Request::HEADER_X_FORWARDED_ALL,\n\n];\n"
  },
  {
    "path": "vendor/fideloper/proxy/src/TrustProxies.php",
    "content": "<?php\n\nnamespace Fideloper\\Proxy;\n\nuse Closure;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Config\\Repository;\n\nclass TrustProxies\n{\n    /**\n     * The config repository instance.\n     *\n     * @var \\Illuminate\\Contracts\\Config\\Repository\n     */\n    protected $config;\n\n    /**\n     * The trusted proxies for the application.\n     *\n     * @var null|string|array\n     */\n    protected $proxies;\n\n    /**\n     * The proxy header mappings.\n     *\n     * @var null|string|int\n     */\n    protected $headers;\n\n    /**\n     * Create a new trusted proxies middleware instance.\n     *\n     * @param \\Illuminate\\Contracts\\Config\\Repository $config\n     */\n    public function __construct(Repository $config)\n    {\n        $this->config = $config;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param \\Illuminate\\Http\\Request $request\n     * @param \\Closure                 $next\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     *\n     * @return mixed\n     */\n    public function handle(Request $request, Closure $next)\n    {\n        $request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests\n        $this->setTrustedProxyIpAddresses($request);\n\n        return $next($request);\n    }\n\n    /**\n     * Sets the trusted proxies on the request to the value of trustedproxy.proxies\n     *\n     * @param \\Illuminate\\Http\\Request $request\n     */\n    protected function setTrustedProxyIpAddresses(Request $request)\n    {\n        $trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');\n\n        // Trust any IP address that calls us\n        // `**` for backwards compatibility, but is deprecated\n        if ($trustedIps === '*' || $trustedIps === '**') {\n            return $this->setTrustedProxyIpAddressesToTheCallingIp($request);\n        }\n\n        // Support IPs addresses separated by comma\n        $trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;\n\n        // Only trust specific IP addresses\n        if (is_array($trustedIps)) {\n            return $this->setTrustedProxyIpAddressesToSpecificIps($request, $trustedIps);\n        }\n    }\n\n    /**\n     * Specify the IP addresses to trust explicitly.\n     *\n     * @param \\Illuminate\\Http\\Request $request\n     * @param array                    $trustedIps\n     */\n    private function setTrustedProxyIpAddressesToSpecificIps(Request $request, $trustedIps)\n    {\n        $request->setTrustedProxies((array) $trustedIps, $this->getTrustedHeaderNames());\n    }\n\n    /**\n     * Set the trusted proxy to be the IP address calling this servers\n     *\n     * @param \\Illuminate\\Http\\Request $request\n     */\n    private function setTrustedProxyIpAddressesToTheCallingIp(Request $request)\n    {\n        $request->setTrustedProxies([$request->server->get('REMOTE_ADDR')], $this->getTrustedHeaderNames());\n    }\n\n    /**\n     * Retrieve trusted header name(s), falling back to defaults if config not set.\n     *\n     * @return int A bit field of Request::HEADER_*, to set which headers to trust from your proxies.\n     */\n    protected function getTrustedHeaderNames()\n    {\n        $headers = $this->headers ?: $this->config->get('trustedproxy.headers');\n        switch ($headers) {\n            case 'HEADER_X_FORWARDED_AWS_ELB':\n            case Request::HEADER_X_FORWARDED_AWS_ELB:\n                return Request::HEADER_X_FORWARDED_AWS_ELB;\n                break;\n            case 'HEADER_FORWARDED':\n            case Request::HEADER_FORWARDED:\n                return Request::HEADER_FORWARDED;\n                break;\n            default:\n                return Request::HEADER_X_FORWARDED_ALL;\n        }\n\n        // Should never reach this point\n        return $headers;\n    }\n}\n"
  },
  {
    "path": "vendor/fideloper/proxy/src/TrustedProxyServiceProvider.php",
    "content": "<?php\n\nnamespace Fideloper\\Proxy;\n\nuse Illuminate\\Foundation\\Application as LaravelApplication;\nuse Illuminate\\Support\\ServiceProvider;\nuse Laravel\\Lumen\\Application as LumenApplication;\n\nclass TrustedProxyServiceProvider extends ServiceProvider\n{\n    /**\n     * Boot the service provider.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $source = realpath($raw = __DIR__.'/../config/trustedproxy.php') ?: $raw;\n\n        if ($this->app instanceof LaravelApplication && $this->app->runningInConsole()) {\n            $this->publishes([$source => config_path('trustedproxy.php')]);\n        } elseif ($this->app instanceof LumenApplication) {\n            $this->app->configure('trustedproxy');\n        }\n\n\n        if ($this->app instanceof LaravelApplication && ! $this->app->configurationIsCached()) {\n            $this->mergeConfigFrom($source, 'trustedproxy');\n        }\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/CHANGELOG.md",
    "content": "# 2.4.1\n\n* Try harder to close all output buffers\n\n# 2.4.0\n\n* Allow to prepend and append handlers.\n\n# 2.3.2\n\n* Various fixes from the community.\n\n# 2.3.1\n\n* Prevent exception in Whoops when caught exception frame is not related to real file\n\n# 2.3.0\n\n* Show previous exception messages.\n\n# 2.2.0\n\n* Support PHP 7.2\n\n# 2.1.0\n\n* Add a `SystemFacade` to allow clients to override Whoops behavior.\n* Show frame arguments in `PrettyPageHandler`.\n* Highlight the line with the error.\n* Add icons to search on Google and Stack Overflow.\n\n# 2.0.0\n\nBackwards compatibility breaking changes:\n\n* `Run` class is now `final`. If you inherited from `Run`, please now instead use a custom `SystemFacade` injected into the `Run` constructor, or contribute your changes to our core.\n* PHP < 5.5 support dropped.\n"
  },
  {
    "path": "vendor/filp/whoops/LICENSE.md",
    "content": "# The MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/filp/whoops/composer.json",
    "content": "{\n    \"name\": \"filp/whoops\",\n    \"license\": \"MIT\",\n    \"description\": \"php error handling for cool kids\",\n    \"keywords\": [\"library\", \"error\", \"handling\", \"exception\", \"whoops\", \"throwable\"],\n    \"homepage\": \"https://filp.github.io/whoops/\",\n    \"authors\": [\n        {\n            \"name\": \"Filipe Dobreira\",\n            \"homepage\": \"https://github.com/filp\",\n            \"role\": \"Developer\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^5.5.9 || ^7.0\",\n        \"psr/log\": \"^1.0.1\"        \n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^4.8.35 || ^5.7\",\n        \"mockery/mockery\": \"^0.9 || ^1.0\",\n        \"symfony/var-dumper\": \"^2.6 || ^3.0 || ^4.0\"\n    },\n    \"suggest\": {\n        \"symfony/var-dumper\": \"Pretty print complex values better with var-dumper available\",\n        \"whoops/soap\": \"Formats errors as SOAP responses\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Whoops\\\\\": \"src/Whoops/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Whoops\\\\\": \"tests/Whoops/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"2.2-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Exception/ErrorException.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Exception;\n\nuse ErrorException as BaseErrorException;\n\n/**\n * Wraps ErrorException; mostly used for typing (at least now)\n * to easily cleanup the stack trace of redundant info.\n */\nclass ErrorException extends BaseErrorException\n{\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Exception/Formatter.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Exception;\n\nclass Formatter\n{\n    /**\n     * Returns all basic information about the exception in a simple array\n     * for further convertion to other languages\n     * @param  Inspector $inspector\n     * @param  bool      $shouldAddTrace\n     * @return array\n     */\n    public static function formatExceptionAsDataArray(Inspector $inspector, $shouldAddTrace)\n    {\n        $exception = $inspector->getException();\n        $response = [\n            'type'    => get_class($exception),\n            'message' => $exception->getMessage(),\n            'file'    => $exception->getFile(),\n            'line'    => $exception->getLine(),\n        ];\n\n        if ($shouldAddTrace) {\n            $frames    = $inspector->getFrames();\n            $frameData = [];\n\n            foreach ($frames as $frame) {\n                /** @var Frame $frame */\n                $frameData[] = [\n                    'file'     => $frame->getFile(),\n                    'line'     => $frame->getLine(),\n                    'function' => $frame->getFunction(),\n                    'class'    => $frame->getClass(),\n                    'args'     => $frame->getArgs(),\n                ];\n            }\n\n            $response['trace'] = $frameData;\n        }\n\n        return $response;\n    }\n\n    public static function formatExceptionPlain(Inspector $inspector)\n    {\n        $message = $inspector->getException()->getMessage();\n        $frames = $inspector->getFrames();\n\n        $plain = $inspector->getExceptionName();\n        $plain .= ' thrown with message \"';\n        $plain .= $message;\n        $plain .= '\"'.\"\\n\\n\";\n\n        $plain .= \"Stacktrace:\\n\";\n        foreach ($frames as $i => $frame) {\n            $plain .= \"#\". (count($frames) - $i - 1). \" \";\n            $plain .= $frame->getClass() ?: '';\n            $plain .= $frame->getClass() && $frame->getFunction() ? \":\" : \"\";\n            $plain .= $frame->getFunction() ?: '';\n            $plain .= ' in ';\n            $plain .= ($frame->getFile() ?: '<#unknown>');\n            $plain .= ':';\n            $plain .= (int) $frame->getLine(). \"\\n\";\n        }\n\n        return $plain;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Exception/Frame.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Exception;\n\nuse InvalidArgumentException;\nuse Serializable;\n\nclass Frame implements Serializable\n{\n    /**\n     * @var array\n     */\n    protected $frame;\n\n    /**\n     * @var string\n     */\n    protected $fileContentsCache;\n\n    /**\n     * @var array[]\n     */\n    protected $comments = [];\n\n    /**\n     * @var bool\n     */\n    protected $application;\n\n    /**\n     * @param array[]\n     */\n    public function __construct(array $frame)\n    {\n        $this->frame = $frame;\n    }\n\n    /**\n     * @param  bool        $shortened\n     * @return string|null\n     */\n    public function getFile($shortened = false)\n    {\n        if (empty($this->frame['file'])) {\n            return null;\n        }\n\n        $file = $this->frame['file'];\n\n        // Check if this frame occurred within an eval().\n        // @todo: This can be made more reliable by checking if we've entered\n        // eval() in a previous trace, but will need some more work on the upper\n        // trace collector(s).\n        if (preg_match('/^(.*)\\((\\d+)\\) : (?:eval\\(\\)\\'d|assert) code$/', $file, $matches)) {\n            $file = $this->frame['file'] = $matches[1];\n            $this->frame['line'] = (int) $matches[2];\n        }\n\n        if ($shortened && is_string($file)) {\n            // Replace the part of the path that all frames have in common, and add 'soft hyphens' for smoother line-breaks.\n            $dirname = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))));\n            if ($dirname !== '/') {\n                $file = str_replace($dirname, \"&hellip;\", $file);\n            }\n            $file = str_replace(\"/\", \"/&shy;\", $file);\n        }\n\n        return $file;\n    }\n\n    /**\n     * @return int|null\n     */\n    public function getLine()\n    {\n        return isset($this->frame['line']) ? $this->frame['line'] : null;\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getClass()\n    {\n        return isset($this->frame['class']) ? $this->frame['class'] : null;\n    }\n\n    /**\n     * @return string|null\n     */\n    public function getFunction()\n    {\n        return isset($this->frame['function']) ? $this->frame['function'] : null;\n    }\n\n    /**\n     * @return array\n     */\n    public function getArgs()\n    {\n        return isset($this->frame['args']) ? (array) $this->frame['args'] : [];\n    }\n\n    /**\n     * Returns the full contents of the file for this frame,\n     * if it's known.\n     * @return string|null\n     */\n    public function getFileContents()\n    {\n        if ($this->fileContentsCache === null && $filePath = $this->getFile()) {\n            // Leave the stage early when 'Unknown' or '[internal]' is passed\n            // this would otherwise raise an exception when\n            // open_basedir is enabled.\n            if ($filePath === \"Unknown\" || $filePath === '[internal]') {\n                return null;\n            }\n\n            try {\n                $this->fileContentsCache = file_get_contents($filePath);\n            } catch (ErrorException $exception) {\n                // Internal file paths of PHP extensions cannot be opened\n            }\n        }\n\n        return $this->fileContentsCache;\n    }\n\n    /**\n     * Adds a comment to this frame, that can be received and\n     * used by other handlers. For example, the PrettyPage handler\n     * can attach these comments under the code for each frame.\n     *\n     * An interesting use for this would be, for example, code analysis\n     * & annotations.\n     *\n     * @param string $comment\n     * @param string $context Optional string identifying the origin of the comment\n     */\n    public function addComment($comment, $context = 'global')\n    {\n        $this->comments[] = [\n            'comment' => $comment,\n            'context' => $context,\n        ];\n    }\n\n    /**\n     * Returns all comments for this frame. Optionally allows\n     * a filter to only retrieve comments from a specific\n     * context.\n     *\n     * @param  string  $filter\n     * @return array[]\n     */\n    public function getComments($filter = null)\n    {\n        $comments = $this->comments;\n\n        if ($filter !== null) {\n            $comments = array_filter($comments, function ($c) use ($filter) {\n                return $c['context'] == $filter;\n            });\n        }\n\n        return $comments;\n    }\n\n    /**\n     * Returns the array containing the raw frame data from which\n     * this Frame object was built\n     *\n     * @return array\n     */\n    public function getRawFrame()\n    {\n        return $this->frame;\n    }\n\n    /**\n     * Returns the contents of the file for this frame as an\n     * array of lines, and optionally as a clamped range of lines.\n     *\n     * NOTE: lines are 0-indexed\n     *\n     * @example\n     *     Get all lines for this file\n     *     $frame->getFileLines(); // => array( 0 => '<?php', 1 => '...', ...)\n     * @example\n     *     Get one line for this file, starting at line 10 (zero-indexed, remember!)\n     *     $frame->getFileLines(9, 1); // array( 10 => '...', 11 => '...')\n     *\n     * @throws InvalidArgumentException if $length is less than or equal to 0\n     * @param  int                      $start\n     * @param  int                      $length\n     * @return string[]|null\n     */\n    public function getFileLines($start = 0, $length = null)\n    {\n        if (null !== ($contents = $this->getFileContents())) {\n            $lines = explode(\"\\n\", $contents);\n\n            // Get a subset of lines from $start to $end\n            if ($length !== null) {\n                $start  = (int) $start;\n                $length = (int) $length;\n                if ($start < 0) {\n                    $start = 0;\n                }\n\n                if ($length <= 0) {\n                    throw new InvalidArgumentException(\n                        \"\\$length($length) cannot be lower or equal to 0\"\n                    );\n                }\n\n                $lines = array_slice($lines, $start, $length, true);\n            }\n\n            return $lines;\n        }\n    }\n\n    /**\n     * Implements the Serializable interface, with special\n     * steps to also save the existing comments.\n     *\n     * @see Serializable::serialize\n     * @return string\n     */\n    public function serialize()\n    {\n        $frame = $this->frame;\n        if (!empty($this->comments)) {\n            $frame['_comments'] = $this->comments;\n        }\n\n        return serialize($frame);\n    }\n\n    /**\n     * Unserializes the frame data, while also preserving\n     * any existing comment data.\n     *\n     * @see Serializable::unserialize\n     * @param string $serializedFrame\n     */\n    public function unserialize($serializedFrame)\n    {\n        $frame = unserialize($serializedFrame);\n\n        if (!empty($frame['_comments'])) {\n            $this->comments = $frame['_comments'];\n            unset($frame['_comments']);\n        }\n\n        $this->frame = $frame;\n    }\n\n    /**\n     * Compares Frame against one another\n     * @param  Frame $frame\n     * @return bool\n     */\n    public function equals(Frame $frame)\n    {\n        if (!$this->getFile() || $this->getFile() === 'Unknown' || !$this->getLine()) {\n            return false;\n        }\n        return $frame->getFile() === $this->getFile() && $frame->getLine() === $this->getLine();\n    }\n\n    /**\n     * Returns whether this frame belongs to the application or not.\n     *\n     * @return boolean\n     */\n    public function isApplication()\n    {\n        return $this->application;\n    }\n\n    /**\n     * Mark as an frame belonging to the application.\n     *\n     * @param boolean $application\n     */\n    public function setApplication($application)\n    {\n        $this->application = $application;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Exception/FrameCollection.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Exception;\n\nuse ArrayAccess;\nuse ArrayIterator;\nuse Countable;\nuse IteratorAggregate;\nuse Serializable;\nuse UnexpectedValueException;\n\n/**\n * Exposes a fluent interface for dealing with an ordered list\n * of stack-trace frames.\n */\nclass FrameCollection implements ArrayAccess, IteratorAggregate, Serializable, Countable\n{\n    /**\n     * @var array[]\n     */\n    private $frames;\n\n    /**\n     * @param array $frames\n     */\n    public function __construct(array $frames)\n    {\n        $this->frames = array_map(function ($frame) {\n            return new Frame($frame);\n        }, $frames);\n    }\n\n    /**\n     * Filters frames using a callable, returns the same FrameCollection\n     *\n     * @param  callable        $callable\n     * @return FrameCollection\n     */\n    public function filter($callable)\n    {\n        $this->frames = array_values(array_filter($this->frames, $callable));\n        return $this;\n    }\n\n    /**\n     * Map the collection of frames\n     *\n     * @param  callable        $callable\n     * @return FrameCollection\n     */\n    public function map($callable)\n    {\n        // Contain the map within a higher-order callable\n        // that enforces type-correctness for the $callable\n        $this->frames = array_map(function ($frame) use ($callable) {\n            $frame = call_user_func($callable, $frame);\n\n            if (!$frame instanceof Frame) {\n                throw new UnexpectedValueException(\n                    \"Callable to \" . __METHOD__ . \" must return a Frame object\"\n                );\n            }\n\n            return $frame;\n        }, $this->frames);\n\n        return $this;\n    }\n\n    /**\n     * Returns an array with all frames, does not affect\n     * the internal array.\n     *\n     * @todo   If this gets any more complex than this,\n     *         have getIterator use this method.\n     * @see    FrameCollection::getIterator\n     * @return array\n     */\n    public function getArray()\n    {\n        return $this->frames;\n    }\n\n    /**\n     * @see IteratorAggregate::getIterator\n     * @return ArrayIterator\n     */\n    public function getIterator()\n    {\n        return new ArrayIterator($this->frames);\n    }\n\n    /**\n     * @see ArrayAccess::offsetExists\n     * @param int $offset\n     */\n    public function offsetExists($offset)\n    {\n        return isset($this->frames[$offset]);\n    }\n\n    /**\n     * @see ArrayAccess::offsetGet\n     * @param int $offset\n     */\n    public function offsetGet($offset)\n    {\n        return $this->frames[$offset];\n    }\n\n    /**\n     * @see ArrayAccess::offsetSet\n     * @param int $offset\n     */\n    public function offsetSet($offset, $value)\n    {\n        throw new \\Exception(__CLASS__ . ' is read only');\n    }\n\n    /**\n     * @see ArrayAccess::offsetUnset\n     * @param int $offset\n     */\n    public function offsetUnset($offset)\n    {\n        throw new \\Exception(__CLASS__ . ' is read only');\n    }\n\n    /**\n     * @see Countable::count\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->frames);\n    }\n\n    /**\n     * Count the frames that belongs to the application.\n     *\n     * @return int\n     */\n    public function countIsApplication()\n    {\n        return count(array_filter($this->frames, function (Frame $f) {\n            return $f->isApplication();\n        }));\n    }\n\n    /**\n     * @see Serializable::serialize\n     * @return string\n     */\n    public function serialize()\n    {\n        return serialize($this->frames);\n    }\n\n    /**\n     * @see Serializable::unserialize\n     * @param string $serializedFrames\n     */\n    public function unserialize($serializedFrames)\n    {\n        $this->frames = unserialize($serializedFrames);\n    }\n\n    /**\n     * @param Frame[] $frames Array of Frame instances, usually from $e->getPrevious()\n     */\n    public function prependFrames(array $frames)\n    {\n        $this->frames = array_merge($frames, $this->frames);\n    }\n\n    /**\n     * Gets the innermost part of stack trace that is not the same as that of outer exception\n     *\n     * @param  FrameCollection $parentFrames Outer exception frames to compare tail against\n     * @return Frame[]\n     */\n    public function topDiff(FrameCollection $parentFrames)\n    {\n        $diff = $this->frames;\n\n        $parentFrames = $parentFrames->getArray();\n        $p = count($parentFrames)-1;\n\n        for ($i = count($diff)-1; $i >= 0 && $p >= 0; $i--) {\n            /** @var Frame $tailFrame */\n            $tailFrame = $diff[$i];\n            if ($tailFrame->equals($parentFrames[$p])) {\n                unset($diff[$i]);\n            }\n            $p--;\n        }\n        return $diff;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Exception/Inspector.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Exception;\n\nuse Whoops\\Util\\Misc;\n\nclass Inspector\n{\n    /**\n     * @var \\Throwable\n     */\n    private $exception;\n\n    /**\n     * @var \\Whoops\\Exception\\FrameCollection\n     */\n    private $frames;\n\n    /**\n     * @var \\Whoops\\Exception\\Inspector\n     */\n    private $previousExceptionInspector;\n\n    /**\n     * @var \\Throwable[]\n     */\n    private $previousExceptions;\n\n    /**\n     * @param \\Throwable $exception The exception to inspect\n     */\n    public function __construct($exception)\n    {\n        $this->exception = $exception;\n    }\n\n    /**\n     * @return \\Throwable\n     */\n    public function getException()\n    {\n        return $this->exception;\n    }\n\n    /**\n     * @return string\n     */\n    public function getExceptionName()\n    {\n        return get_class($this->exception);\n    }\n\n    /**\n     * @return string\n     */\n    public function getExceptionMessage()\n    {\n        return $this->extractDocrefUrl($this->exception->getMessage())['message'];\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getPreviousExceptionMessages()\n    {\n        return array_map(function ($prev) {\n            /** @var \\Throwable $prev */\n            return $this->extractDocrefUrl($prev->getMessage())['message'];\n        }, $this->getPreviousExceptions());\n    }\n\n    /**\n     * @return int[]\n     */\n    public function getPreviousExceptionCodes()\n    {\n        return array_map(function ($prev) {\n            /** @var \\Throwable $prev */\n            return $prev->getCode();\n        }, $this->getPreviousExceptions());\n    }\n\n    /**\n     * Returns a url to the php-manual related to the underlying error - when available.\n     *\n     * @return string|null\n     */\n    public function getExceptionDocrefUrl()\n    {\n        return $this->extractDocrefUrl($this->exception->getMessage())['url'];\n    }\n\n    private function extractDocrefUrl($message)\n    {\n        $docref = [\n            'message' => $message,\n            'url' => null,\n        ];\n\n        // php embbeds urls to the manual into the Exception message with the following ini-settings defined\n        // http://php.net/manual/en/errorfunc.configuration.php#ini.docref-root\n        if (!ini_get('html_errors') || !ini_get('docref_root')) {\n            return $docref;\n        }\n\n        $pattern = \"/\\[<a href='([^']+)'>(?:[^<]+)<\\/a>\\]/\";\n        if (preg_match($pattern, $message, $matches)) {\n            // -> strip those automatically generated links from the exception message\n            $docref['message'] = preg_replace($pattern, '', $message, 1);\n            $docref['url'] = $matches[1];\n        }\n\n        return $docref;\n    }\n\n    /**\n     * Does the wrapped Exception has a previous Exception?\n     * @return bool\n     */\n    public function hasPreviousException()\n    {\n        return $this->previousExceptionInspector || $this->exception->getPrevious();\n    }\n\n    /**\n     * Returns an Inspector for a previous Exception, if any.\n     * @todo   Clean this up a bit, cache stuff a bit better.\n     * @return Inspector\n     */\n    public function getPreviousExceptionInspector()\n    {\n        if ($this->previousExceptionInspector === null) {\n            $previousException = $this->exception->getPrevious();\n\n            if ($previousException) {\n                $this->previousExceptionInspector = new Inspector($previousException);\n            }\n        }\n\n        return $this->previousExceptionInspector;\n    }\n\n\n    /**\n     * Returns an array of all previous exceptions for this inspector's exception\n     * @return \\Throwable[]\n     */\n    public function getPreviousExceptions()\n    {\n        if ($this->previousExceptions === null) {\n            $this->previousExceptions = [];\n\n            $prev = $this->exception->getPrevious();\n            while ($prev !== null) {\n                $this->previousExceptions[] = $prev;\n                $prev = $prev->getPrevious();\n            }\n        }\n\n        return $this->previousExceptions;\n    }\n\n    /**\n     * Returns an iterator for the inspected exception's\n     * frames.\n     * @return \\Whoops\\Exception\\FrameCollection\n     */\n    public function getFrames()\n    {\n        if ($this->frames === null) {\n            $frames = $this->getTrace($this->exception);\n\n            // Fill empty line/file info for call_user_func_array usages (PHP Bug #44428)\n            foreach ($frames as $k => $frame) {\n                if (empty($frame['file'])) {\n                    // Default values when file and line are missing\n                    $file = '[internal]';\n                    $line = 0;\n\n                    $next_frame = !empty($frames[$k + 1]) ? $frames[$k + 1] : [];\n\n                    if ($this->isValidNextFrame($next_frame)) {\n                        $file = $next_frame['file'];\n                        $line = $next_frame['line'];\n                    }\n\n                    $frames[$k]['file'] = $file;\n                    $frames[$k]['line'] = $line;\n                }\n            }\n\n            // Find latest non-error handling frame index ($i) used to remove error handling frames\n            $i = 0;\n            foreach ($frames as $k => $frame) {\n                if ($frame['file'] == $this->exception->getFile() && $frame['line'] == $this->exception->getLine()) {\n                    $i = $k;\n                }\n            }\n\n            // Remove error handling frames\n            if ($i > 0) {\n                array_splice($frames, 0, $i);\n            }\n\n            $firstFrame = $this->getFrameFromException($this->exception);\n            array_unshift($frames, $firstFrame);\n\n            $this->frames = new FrameCollection($frames);\n\n            if ($previousInspector = $this->getPreviousExceptionInspector()) {\n                // Keep outer frame on top of the inner one\n                $outerFrames = $this->frames;\n                $newFrames = clone $previousInspector->getFrames();\n                // I assume it will always be set, but let's be safe\n                if (isset($newFrames[0])) {\n                    $newFrames[0]->addComment(\n                        $previousInspector->getExceptionMessage(),\n                        'Exception message:'\n                    );\n                }\n                $newFrames->prependFrames($outerFrames->topDiff($newFrames));\n                $this->frames = $newFrames;\n            }\n        }\n\n        return $this->frames;\n    }\n\n    /**\n     * Gets the backtrace from an exception.\n     *\n     * If xdebug is installed\n     *\n     * @param \\Throwable $e\n     * @return array\n     */\n    protected function getTrace($e)\n    {\n        $traces = $e->getTrace();\n\n        // Get trace from xdebug if enabled, failure exceptions only trace to the shutdown handler by default\n        if (!$e instanceof \\ErrorException) {\n            return $traces;\n        }\n\n        if (!Misc::isLevelFatal($e->getSeverity())) {\n            return $traces;\n        }\n\n        if (!extension_loaded('xdebug') || !xdebug_is_enabled()) {\n            return $traces;\n        }\n\n        // Use xdebug to get the full stack trace and remove the shutdown handler stack trace\n        $stack = array_reverse(xdebug_get_function_stack());\n        $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);\n        $traces = array_diff_key($stack, $trace);\n\n        return $traces;\n    }\n\n    /**\n     * Given an exception, generates an array in the format\n     * generated by Exception::getTrace()\n     * @param  \\Throwable $exception\n     * @return array\n     */\n    protected function getFrameFromException($exception)\n    {\n        return [\n            'file'  => $exception->getFile(),\n            'line'  => $exception->getLine(),\n            'class' => get_class($exception),\n            'args'  => [\n                $exception->getMessage(),\n            ],\n        ];\n    }\n\n    /**\n     * Given an error, generates an array in the format\n     * generated by ErrorException\n     * @param  ErrorException $exception\n     * @return array\n     */\n    protected function getFrameFromError(ErrorException $exception)\n    {\n        return [\n            'file'  => $exception->getFile(),\n            'line'  => $exception->getLine(),\n            'class' => null,\n            'args'  => [],\n        ];\n    }\n\n    /**\n     * Determine if the frame can be used to fill in previous frame's missing info\n     * happens for call_user_func and call_user_func_array usages (PHP Bug #44428)\n     *\n     * @param array $frame\n     * @return bool\n     */\n    protected function isValidNextFrame(array $frame)\n    {\n        if (empty($frame['file'])) {\n            return false;\n        }\n\n        if (empty($frame['line'])) {\n            return false;\n        }\n\n        if (empty($frame['function']) || !stristr($frame['function'], 'call_user_func')) {\n            return false;\n        }\n\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse InvalidArgumentException;\n\n/**\n * Wrapper for Closures passed as handlers. Can be used\n * directly, or will be instantiated automagically by Whoops\\Run\n * if passed to Run::pushHandler\n */\nclass CallbackHandler extends Handler\n{\n    /**\n     * @var callable\n     */\n    protected $callable;\n\n    /**\n     * @throws InvalidArgumentException If argument is not callable\n     * @param  callable                 $callable\n     */\n    public function __construct($callable)\n    {\n        if (!is_callable($callable)) {\n            throw new InvalidArgumentException(\n                'Argument to ' . __METHOD__ . ' must be valid callable'\n            );\n        }\n\n        $this->callable = $callable;\n    }\n\n    /**\n     * @return int|null\n     */\n    public function handle()\n    {\n        $exception = $this->getException();\n        $inspector = $this->getInspector();\n        $run       = $this->getRun();\n        $callable  = $this->callable;\n\n        // invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func).\n        // this assumes that $callable is a properly typed php-callable, which we check in __construct().\n        return $callable($exception, $inspector, $run);\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/Handler.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse Whoops\\Exception\\Inspector;\nuse Whoops\\RunInterface;\n\n/**\n * Abstract implementation of a Handler.\n */\nabstract class Handler implements HandlerInterface\n{\n    /*\n     Return constants that can be returned from Handler::handle\n     to message the handler walker.\n     */\n    const DONE         = 0x10; // returning this is optional, only exists for\n                               // semantic purposes\n    /**\n     * The Handler has handled the Throwable in some way, and wishes to skip any other Handler.\n     * Execution will continue.\n     */\n    const LAST_HANDLER = 0x20;\n    /**\n     * The Handler has handled the Throwable in some way, and wishes to quit/stop execution\n     */\n    const QUIT         = 0x30;\n\n    /**\n     * @var RunInterface\n     */\n    private $run;\n\n    /**\n     * @var Inspector $inspector\n     */\n    private $inspector;\n\n    /**\n     * @var \\Throwable $exception\n     */\n    private $exception;\n\n    /**\n     * @param RunInterface $run\n     */\n    public function setRun(RunInterface $run)\n    {\n        $this->run = $run;\n    }\n\n    /**\n     * @return RunInterface\n     */\n    protected function getRun()\n    {\n        return $this->run;\n    }\n\n    /**\n     * @param Inspector $inspector\n     */\n    public function setInspector(Inspector $inspector)\n    {\n        $this->inspector = $inspector;\n    }\n\n    /**\n     * @return Inspector\n     */\n    protected function getInspector()\n    {\n        return $this->inspector;\n    }\n\n    /**\n     * @param \\Throwable $exception\n     */\n    public function setException($exception)\n    {\n        $this->exception = $exception;\n    }\n\n    /**\n     * @return \\Throwable\n     */\n    protected function getException()\n    {\n        return $this->exception;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse Whoops\\Exception\\Inspector;\nuse Whoops\\RunInterface;\n\ninterface HandlerInterface\n{\n    /**\n     * @return int|null A handler may return nothing, or a Handler::HANDLE_* constant\n     */\n    public function handle();\n\n    /**\n     * @param  RunInterface  $run\n     * @return void\n     */\n    public function setRun(RunInterface $run);\n\n    /**\n     * @param  \\Throwable $exception\n     * @return void\n     */\n    public function setException($exception);\n\n    /**\n     * @param  Inspector $inspector\n     * @return void\n     */\n    public function setInspector(Inspector $inspector);\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/JsonResponseHandler.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse Whoops\\Exception\\Formatter;\n\n/**\n * Catches an exception and converts it to a JSON\n * response. Additionally can also return exception\n * frames for consumption by an API.\n */\nclass JsonResponseHandler extends Handler\n{\n    /**\n     * @var bool\n     */\n    private $returnFrames = false;\n\n    /**\n     * @var bool\n     */\n    private $jsonApi = false;\n\n    /**\n     * Returns errors[[]] instead of error[] to be in compliance with the json:api spec\n     * @param bool $jsonApi Default is false\n     * @return $this\n     */\n    public function setJsonApi($jsonApi = false)\n    {\n        $this->jsonApi = (bool) $jsonApi;\n        return $this;\n    }\n\n    /**\n     * @param  bool|null  $returnFrames\n     * @return bool|$this\n     */\n    public function addTraceToOutput($returnFrames = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->returnFrames;\n        }\n\n        $this->returnFrames = (bool) $returnFrames;\n        return $this;\n    }\n\n    /**\n     * @return int\n     */\n    public function handle()\n    {\n        if ($this->jsonApi === true) {\n            $response = [\n                'errors' => [\n                    Formatter::formatExceptionAsDataArray(\n                        $this->getInspector(),\n                        $this->addTraceToOutput()\n                    ),\n                ]\n            ];\n        } else {\n            $response = [\n                'error' => Formatter::formatExceptionAsDataArray(\n                    $this->getInspector(),\n                    $this->addTraceToOutput()\n                ),\n            ];\n        }\n\n        echo json_encode($response, defined('JSON_PARTIAL_OUTPUT_ON_ERROR') ? JSON_PARTIAL_OUTPUT_ON_ERROR : 0);\n\n        return Handler::QUIT;\n    }\n\n    /**\n     * @return string\n     */\n    public function contentType()\n    {\n        return 'application/json';\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/PlainTextHandler.php",
    "content": "<?php\n/**\n* Whoops - php errors for cool kids\n* @author Filipe Dobreira <http://github.com/filp>\n* Plaintext handler for command line and logs.\n* @author Pierre-Yves Landuré <https://howto.biapy.com/>\n*/\n\nnamespace Whoops\\Handler;\n\nuse InvalidArgumentException;\nuse Psr\\Log\\LoggerInterface;\nuse Whoops\\Exception\\Frame;\n\n/**\n* Handler outputing plaintext error messages. Can be used\n* directly, or will be instantiated automagically by Whoops\\Run\n* if passed to Run::pushHandler\n*/\nclass PlainTextHandler extends Handler\n{\n    const VAR_DUMP_PREFIX = '   | ';\n\n    /**\n     * @var \\Psr\\Log\\LoggerInterface\n     */\n    protected $logger;\n\n    /**\n     * @var callable\n     */\n    protected $dumper;\n\n    /**\n     * @var bool\n     */\n    private $addTraceToOutput = true;\n\n    /**\n     * @var bool|integer\n     */\n    private $addTraceFunctionArgsToOutput = false;\n\n    /**\n     * @var integer\n     */\n    private $traceFunctionArgsOutputLimit = 1024;\n\n    /**\n     * @var bool\n     */\n    private $addPreviousToOutput = true;\n\n    /**\n     * @var bool\n     */\n    private $loggerOnly = false;\n\n    /**\n     * Constructor.\n     * @throws InvalidArgumentException     If argument is not null or a LoggerInterface\n     * @param  \\Psr\\Log\\LoggerInterface|null $logger\n     */\n    public function __construct($logger = null)\n    {\n        $this->setLogger($logger);\n    }\n\n    /**\n     * Set the output logger interface.\n     * @throws InvalidArgumentException     If argument is not null or a LoggerInterface\n     * @param  \\Psr\\Log\\LoggerInterface|null $logger\n     */\n    public function setLogger($logger = null)\n    {\n        if (! (is_null($logger)\n            || $logger instanceof LoggerInterface)) {\n            throw new InvalidArgumentException(\n                'Argument to ' . __METHOD__ .\n                \" must be a valid Logger Interface (aka. Monolog), \" .\n                get_class($logger) . ' given.'\n            );\n        }\n\n        $this->logger = $logger;\n    }\n\n    /**\n     * @return \\Psr\\Log\\LoggerInterface|null\n     */\n    public function getLogger()\n    {\n        return $this->logger;\n    }\n\n    /**\n     * Set var dumper callback function.\n     *\n     * @param  callable $dumper\n     * @return void\n     */\n    public function setDumper(callable $dumper)\n    {\n        $this->dumper = $dumper;\n    }\n\n    /**\n     * Add error trace to output.\n     * @param  bool|null  $addTraceToOutput\n     * @return bool|$this\n     */\n    public function addTraceToOutput($addTraceToOutput = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->addTraceToOutput;\n        }\n\n        $this->addTraceToOutput = (bool) $addTraceToOutput;\n        return $this;\n    }\n\n    /**\n     * Add previous exceptions to output.\n     * @param  bool|null $addPreviousToOutput\n     * @return bool|$this\n     */\n    public function addPreviousToOutput($addPreviousToOutput = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->addPreviousToOutput;\n        }\n\n        $this->addPreviousToOutput = (bool) $addPreviousToOutput;\n        return $this;\n    }\n\n    /**\n     * Add error trace function arguments to output.\n     * Set to True for all frame args, or integer for the n first frame args.\n     * @param  bool|integer|null $addTraceFunctionArgsToOutput\n     * @return null|bool|integer\n     */\n    public function addTraceFunctionArgsToOutput($addTraceFunctionArgsToOutput = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->addTraceFunctionArgsToOutput;\n        }\n\n        if (! is_integer($addTraceFunctionArgsToOutput)) {\n            $this->addTraceFunctionArgsToOutput = (bool) $addTraceFunctionArgsToOutput;\n        } else {\n            $this->addTraceFunctionArgsToOutput = $addTraceFunctionArgsToOutput;\n        }\n    }\n\n    /**\n     * Set the size limit in bytes of frame arguments var_dump output.\n     * If the limit is reached, the var_dump output is discarded.\n     * Prevent memory limit errors.\n     * @var integer\n     */\n    public function setTraceFunctionArgsOutputLimit($traceFunctionArgsOutputLimit)\n    {\n        $this->traceFunctionArgsOutputLimit = (integer) $traceFunctionArgsOutputLimit;\n    }\n\n    /**\n     * Create plain text response and return it as a string\n     * @return string\n     */\n    public function generateResponse()\n    {\n        $exception = $this->getException();\n        $message = $this->getExceptionOutput($exception);\n\n        if ($this->addPreviousToOutput) {\n            $previous = $exception->getPrevious();\n            while ($previous) {\n                $message .= \"\\n\\nCaused by\\n\" . $this->getExceptionOutput($previous);\n                $previous = $previous->getPrevious();\n            }\n        }\n\n\n        return $message . $this->getTraceOutput() . \"\\n\";\n    }\n\n    /**\n     * Get the size limit in bytes of frame arguments var_dump output.\n     * If the limit is reached, the var_dump output is discarded.\n     * Prevent memory limit errors.\n     * @return integer\n     */\n    public function getTraceFunctionArgsOutputLimit()\n    {\n        return $this->traceFunctionArgsOutputLimit;\n    }\n\n    /**\n     * Only output to logger.\n     * @param  bool|null $loggerOnly\n     * @return null|bool\n     */\n    public function loggerOnly($loggerOnly = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->loggerOnly;\n        }\n\n        $this->loggerOnly = (bool) $loggerOnly;\n    }\n\n    /**\n     * Test if handler can output to stdout.\n     * @return bool\n     */\n    private function canOutput()\n    {\n        return !$this->loggerOnly();\n    }\n\n    /**\n     * Get the frame args var_dump.\n     * @param  \\Whoops\\Exception\\Frame $frame [description]\n     * @param  integer                 $line  [description]\n     * @return string\n     */\n    private function getFrameArgsOutput(Frame $frame, $line)\n    {\n        if ($this->addTraceFunctionArgsToOutput() === false\n            || $this->addTraceFunctionArgsToOutput() < $line) {\n            return '';\n        }\n\n        // Dump the arguments:\n        ob_start();\n        $this->dump($frame->getArgs());\n        if (ob_get_length() > $this->getTraceFunctionArgsOutputLimit()) {\n            // The argument var_dump is to big.\n            // Discarded to limit memory usage.\n            ob_clean();\n            return sprintf(\n                \"\\n%sArguments dump length greater than %d Bytes. Discarded.\",\n                self::VAR_DUMP_PREFIX,\n                $this->getTraceFunctionArgsOutputLimit()\n            );\n        }\n\n        return sprintf(\n            \"\\n%s\",\n            preg_replace('/^/m', self::VAR_DUMP_PREFIX, ob_get_clean())\n        );\n    }\n\n    /**\n     * Dump variable.\n     *\n     * @param mixed $var\n     * @return void\n     */\n    protected function dump($var)\n    {\n        if ($this->dumper) {\n            call_user_func($this->dumper, $var);\n        } else {\n            var_dump($var);\n        }\n    }\n\n    /**\n     * Get the exception trace as plain text.\n     * @return string\n     */\n    private function getTraceOutput()\n    {\n        if (! $this->addTraceToOutput()) {\n            return '';\n        }\n        $inspector = $this->getInspector();\n        $frames = $inspector->getFrames();\n\n        $response = \"\\nStack trace:\";\n\n        $line = 1;\n        foreach ($frames as $frame) {\n            /** @var Frame $frame */\n            $class = $frame->getClass();\n\n            $template = \"\\n%3d. %s->%s() %s:%d%s\";\n            if (! $class) {\n                // Remove method arrow (->) from output.\n                $template = \"\\n%3d. %s%s() %s:%d%s\";\n            }\n\n            $response .= sprintf(\n                $template,\n                $line,\n                $class,\n                $frame->getFunction(),\n                $frame->getFile(),\n                $frame->getLine(),\n                $this->getFrameArgsOutput($frame, $line)\n            );\n\n            $line++;\n        }\n\n        return $response;\n    }\n\n    /**\n     * Get the exception as plain text.\n     * @param \\Throwable $exception\n     * @return string\n     */\n    private function getExceptionOutput($exception)\n    {\n        return sprintf(\n            \"%s: %s in file %s on line %d\",\n            get_class($exception),\n            $exception->getMessage(),\n            $exception->getFile(),\n            $exception->getLine()\n        );\n    }\n\n    /**\n     * @return int\n     */\n    public function handle()\n    {\n        $response = $this->generateResponse();\n\n        if ($this->getLogger()) {\n            $this->getLogger()->error($response);\n        }\n\n        if (! $this->canOutput()) {\n            return Handler::DONE;\n        }\n\n        echo $response;\n\n        return Handler::QUIT;\n    }\n\n    /**\n     * @return string\n     */\n    public function contentType()\n    {\n        return 'text/plain';\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/PrettyPageHandler.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse InvalidArgumentException;\nuse RuntimeException;\nuse Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner;\nuse Symfony\\Component\\VarDumper\\Cloner\\VarCloner;\nuse UnexpectedValueException;\nuse Whoops\\Exception\\Formatter;\nuse Whoops\\Util\\Misc;\nuse Whoops\\Util\\TemplateHelper;\n\nclass PrettyPageHandler extends Handler\n{\n    const EDITOR_SUBLIME = \"sublime\";\n    const EDITOR_TEXTMATE = \"textmate\";\n    const EDITOR_EMACS = \"emacs\";\n    const EDITOR_MACVIM = \"macvim\";\n    const EDITOR_PHPSTORM = \"phpstorm\";\n    const EDITOR_IDEA = \"idea\";\n    const EDITOR_VSCODE = \"vscode\";\n    const EDITOR_ATOM = \"atom\";\n    const EDITOR_ESPRESSO = \"espresso\";\n    const EDITOR_XDEBUG = \"xdebug\";\n\n    /**\n     * Search paths to be scanned for resources, in the reverse\n     * order they're declared.\n     *\n     * @var array\n     */\n    private $searchPaths = [];\n\n    /**\n     * Fast lookup cache for known resource locations.\n     *\n     * @var array\n     */\n    private $resourceCache = [];\n\n    /**\n     * The name of the custom css file.\n     *\n     * @var string\n     */\n    private $customCss = null;\n\n    /**\n     * @var array[]\n     */\n    private $extraTables = [];\n\n    /**\n     * @var bool\n     */\n    private $handleUnconditionally = false;\n\n    /**\n     * @var string\n     */\n    private $pageTitle = \"Whoops! There was an error.\";\n\n    /**\n     * @var array[]\n     */\n    private $applicationPaths;\n\n    /**\n     * @var array[]\n     */\n    private $blacklist = [\n        '_GET' => [],\n        '_POST' => [],\n        '_FILES' => [],\n        '_COOKIE' => [],\n        '_SESSION' => [],\n        '_SERVER' => [],\n        '_ENV' => [],\n    ];\n\n    /**\n     * A string identifier for a known IDE/text editor, or a closure\n     * that resolves a string that can be used to open a given file\n     * in an editor. If the string contains the special substrings\n     * %file or %line, they will be replaced with the correct data.\n     *\n     * @example\n     *  \"txmt://open?url=%file&line=%line\"\n     * @var mixed $editor\n     */\n    protected $editor;\n\n    /**\n     * A list of known editor strings\n     * @var array\n     */\n    protected $editors = [\n        \"sublime\"  => \"subl://open?url=file://%file&line=%line\",\n        \"textmate\" => \"txmt://open?url=file://%file&line=%line\",\n        \"emacs\"    => \"emacs://open?url=file://%file&line=%line\",\n        \"macvim\"   => \"mvim://open/?url=file://%file&line=%line\",\n        \"phpstorm\" => \"phpstorm://open?file=%file&line=%line\",\n        \"idea\"     => \"idea://open?file=%file&line=%line\",\n        \"vscode\"   => \"vscode://file/%file:%line\",\n        \"atom\"     => \"atom://core/open/file?filename=%file&line=%line\",\n        \"espresso\" => \"x-espresso://open?filepath=%file&lines=%line\",\n    ];\n\n    /**\n     * @var TemplateHelper\n     */\n    private $templateHelper;\n\n    /**\n     * Constructor.\n     */\n    public function __construct()\n    {\n        if (ini_get('xdebug.file_link_format') || extension_loaded('xdebug')) {\n            // Register editor using xdebug's file_link_format option.\n            $this->editors['xdebug'] = function ($file, $line) {\n                return str_replace(['%f', '%l'], [$file, $line], ini_get('xdebug.file_link_format'));\n            };\n        }\n\n        // Add the default, local resource search path:\n        $this->searchPaths[] = __DIR__ . \"/../Resources\";\n\n        // blacklist php provided auth based values\n        $this->blacklist('_SERVER', 'PHP_AUTH_PW');\n\n        $this->templateHelper = new TemplateHelper();\n\n        if (class_exists('Symfony\\Component\\VarDumper\\Cloner\\VarCloner')) {\n            $cloner = new VarCloner();\n            // Only dump object internals if a custom caster exists.\n            $cloner->addCasters(['*' => function ($obj, $a, $stub, $isNested, $filter = 0) {\n                $class = $stub->class;\n                $classes = [$class => $class] + class_parents($class) + class_implements($class);\n\n                foreach ($classes as $class) {\n                    if (isset(AbstractCloner::$defaultCasters[$class])) {\n                        return $a;\n                    }\n                }\n\n                // Remove all internals\n                return [];\n            }]);\n            $this->templateHelper->setCloner($cloner);\n        }\n    }\n\n    /**\n     * @return int|null\n     */\n    public function handle()\n    {\n        if (!$this->handleUnconditionally()) {\n            // Check conditions for outputting HTML:\n            // @todo: Make this more robust\n            if (PHP_SAPI === 'cli') {\n                // Help users who have been relying on an internal test value\n                // fix their code to the proper method\n                if (isset($_ENV['whoops-test'])) {\n                    throw new \\Exception(\n                        'Use handleUnconditionally instead of whoops-test'\n                        .' environment variable'\n                    );\n                }\n\n                return Handler::DONE;\n            }\n        }\n\n        $templateFile = $this->getResource(\"views/layout.html.php\");\n        $cssFile      = $this->getResource(\"css/whoops.base.css\");\n        $zeptoFile    = $this->getResource(\"js/zepto.min.js\");\n        $prettifyFile = $this->getResource(\"js/prettify.min.js\");\n        $clipboard    = $this->getResource(\"js/clipboard.min.js\");\n        $jsFile       = $this->getResource(\"js/whoops.base.js\");\n\n        if ($this->customCss) {\n            $customCssFile = $this->getResource($this->customCss);\n        }\n\n        $inspector = $this->getInspector();\n        $frames = $this->getExceptionFrames();\n        $code = $this->getExceptionCode();\n\n        // List of variables that will be passed to the layout template.\n        $vars = [\n            \"page_title\" => $this->getPageTitle(),\n\n            // @todo: Asset compiler\n            \"stylesheet\" => file_get_contents($cssFile),\n            \"zepto\"      => file_get_contents($zeptoFile),\n            \"prettify\"   => file_get_contents($prettifyFile),\n            \"clipboard\"  => file_get_contents($clipboard),\n            \"javascript\" => file_get_contents($jsFile),\n\n            // Template paths:\n            \"header\"                     => $this->getResource(\"views/header.html.php\"),\n            \"header_outer\"               => $this->getResource(\"views/header_outer.html.php\"),\n            \"frame_list\"                 => $this->getResource(\"views/frame_list.html.php\"),\n            \"frames_description\"         => $this->getResource(\"views/frames_description.html.php\"),\n            \"frames_container\"           => $this->getResource(\"views/frames_container.html.php\"),\n            \"panel_details\"              => $this->getResource(\"views/panel_details.html.php\"),\n            \"panel_details_outer\"        => $this->getResource(\"views/panel_details_outer.html.php\"),\n            \"panel_left\"                 => $this->getResource(\"views/panel_left.html.php\"),\n            \"panel_left_outer\"           => $this->getResource(\"views/panel_left_outer.html.php\"),\n            \"frame_code\"                 => $this->getResource(\"views/frame_code.html.php\"),\n            \"env_details\"                => $this->getResource(\"views/env_details.html.php\"),\n\n            \"title\"            => $this->getPageTitle(),\n            \"name\"             => explode(\"\\\\\", $inspector->getExceptionName()),\n            \"message\"          => $inspector->getExceptionMessage(),\n            \"previousMessages\" => $inspector->getPreviousExceptionMessages(),\n            \"docref_url\"       => $inspector->getExceptionDocrefUrl(),\n            \"code\"             => $code,\n            \"previousCodes\"    => $inspector->getPreviousExceptionCodes(),\n            \"plain_exception\"  => Formatter::formatExceptionPlain($inspector),\n            \"frames\"           => $frames,\n            \"has_frames\"       => !!count($frames),\n            \"handler\"          => $this,\n            \"handlers\"         => $this->getRun()->getHandlers(),\n\n            \"active_frames_tab\" => count($frames) && $frames->offsetGet(0)->isApplication() ?  'application' : 'all',\n            \"has_frames_tabs\"   => $this->getApplicationPaths(),\n\n            \"tables\"      => [\n                \"GET Data\"              => $this->masked($_GET, '_GET'),\n                \"POST Data\"             => $this->masked($_POST, '_POST'),\n                \"Files\"                 => isset($_FILES) ? $this->masked($_FILES, '_FILES') : [],\n                \"Cookies\"               => $this->masked($_COOKIE, '_COOKIE'),\n                \"Session\"               => isset($_SESSION) ? $this->masked($_SESSION, '_SESSION') :  [],\n                \"Server/Request Data\"   => $this->masked($_SERVER, '_SERVER'),\n                \"Environment Variables\" => $this->masked($_ENV, '_ENV'),\n            ],\n        ];\n\n        if (isset($customCssFile)) {\n            $vars[\"stylesheet\"] .= file_get_contents($customCssFile);\n        }\n\n        // Add extra entries list of data tables:\n        // @todo: Consolidate addDataTable and addDataTableCallback\n        $extraTables = array_map(function ($table) use ($inspector) {\n            return $table instanceof \\Closure ? $table($inspector) : $table;\n        }, $this->getDataTables());\n        $vars[\"tables\"] = array_merge($extraTables, $vars[\"tables\"]);\n\n        $plainTextHandler = new PlainTextHandler();\n        $plainTextHandler->setException($this->getException());\n        $plainTextHandler->setInspector($this->getInspector());\n        $vars[\"preface\"] = \"<!--\\n\\n\\n\" .  $this->templateHelper->escape($plainTextHandler->generateResponse()) . \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n-->\";\n\n        $this->templateHelper->setVariables($vars);\n        $this->templateHelper->render($templateFile);\n\n        return Handler::QUIT;\n    }\n\n    /**\n     * Get the stack trace frames of the exception that is currently being handled.\n     *\n     * @return \\Whoops\\Exception\\FrameCollection;\n     */\n    protected function getExceptionFrames()\n    {\n        $frames = $this->getInspector()->getFrames();\n\n        if ($this->getApplicationPaths()) {\n            foreach ($frames as $frame) {\n                foreach ($this->getApplicationPaths() as $path) {\n                    if (strpos($frame->getFile(), $path) === 0) {\n                        $frame->setApplication(true);\n                        break;\n                    }\n                }\n            }\n        }\n\n        return $frames;\n    }\n\n    /**\n     * Get the code of the exception that is currently being handled.\n     *\n     * @return string\n     */\n    protected function getExceptionCode()\n    {\n        $exception = $this->getException();\n\n        $code = $exception->getCode();\n        if ($exception instanceof \\ErrorException) {\n            // ErrorExceptions wrap the php-error types within the 'severity' property\n            $code = Misc::translateErrorCode($exception->getSeverity());\n        }\n\n        return (string) $code;\n    }\n\n    /**\n     * @return string\n     */\n    public function contentType()\n    {\n        return 'text/html';\n    }\n\n    /**\n     * Adds an entry to the list of tables displayed in the template.\n     * The expected data is a simple associative array. Any nested arrays\n     * will be flattened with print_r\n     * @param string $label\n     * @param array  $data\n     */\n    public function addDataTable($label, array $data)\n    {\n        $this->extraTables[$label] = $data;\n    }\n\n    /**\n     * Lazily adds an entry to the list of tables displayed in the table.\n     * The supplied callback argument will be called when the error is rendered,\n     * it should produce a simple associative array. Any nested arrays will\n     * be flattened with print_r.\n     *\n     * @throws InvalidArgumentException If $callback is not callable\n     * @param  string                   $label\n     * @param  callable                 $callback Callable returning an associative array\n     */\n    public function addDataTableCallback($label, /* callable */ $callback)\n    {\n        if (!is_callable($callback)) {\n            throw new InvalidArgumentException('Expecting callback argument to be callable');\n        }\n\n        $this->extraTables[$label] = function (\\Whoops\\Exception\\Inspector $inspector = null) use ($callback) {\n            try {\n                $result = call_user_func($callback, $inspector);\n\n                // Only return the result if it can be iterated over by foreach().\n                return is_array($result) || $result instanceof \\Traversable ? $result : [];\n            } catch (\\Exception $e) {\n                // Don't allow failure to break the rendering of the original exception.\n                return [];\n            }\n        };\n    }\n\n    /**\n     * Returns all the extra data tables registered with this handler.\n     * Optionally accepts a 'label' parameter, to only return the data\n     * table under that label.\n     * @param  string|null      $label\n     * @return array[]|callable\n     */\n    public function getDataTables($label = null)\n    {\n        if ($label !== null) {\n            return isset($this->extraTables[$label]) ?\n                   $this->extraTables[$label] : [];\n        }\n\n        return $this->extraTables;\n    }\n\n    /**\n     * Allows to disable all attempts to dynamically decide whether to\n     * handle or return prematurely.\n     * Set this to ensure that the handler will perform no matter what.\n     * @param  bool|null $value\n     * @return bool|null\n     */\n    public function handleUnconditionally($value = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->handleUnconditionally;\n        }\n\n        $this->handleUnconditionally = (bool) $value;\n    }\n\n    /**\n     * Adds an editor resolver, identified by a string\n     * name, and that may be a string path, or a callable\n     * resolver. If the callable returns a string, it will\n     * be set as the file reference's href attribute.\n     *\n     * @example\n     *  $run->addEditor('macvim', \"mvim://open?url=file://%file&line=%line\")\n     * @example\n     *   $run->addEditor('remove-it', function($file, $line) {\n     *       unlink($file);\n     *       return \"http://stackoverflow.com\";\n     *   });\n     * @param string $identifier\n     * @param string|callable $resolver\n     */\n    public function addEditor($identifier, $resolver)\n    {\n        $this->editors[$identifier] = $resolver;\n    }\n\n    /**\n     * Set the editor to use to open referenced files, by a string\n     * identifier, or a callable that will be executed for every\n     * file reference, with a $file and $line argument, and should\n     * return a string.\n     *\n     * @example\n     *   $run->setEditor(function($file, $line) { return \"file:///{$file}\"; });\n     * @example\n     *   $run->setEditor('sublime');\n     *\n     * @throws InvalidArgumentException If invalid argument identifier provided\n     * @param  string|callable          $editor\n     */\n    public function setEditor($editor)\n    {\n        if (!is_callable($editor) && !isset($this->editors[$editor])) {\n            throw new InvalidArgumentException(\n                \"Unknown editor identifier: $editor. Known editors:\" .\n                implode(\",\", array_keys($this->editors))\n            );\n        }\n\n        $this->editor = $editor;\n    }\n\n    /**\n     * Given a string file path, and an integer file line,\n     * executes the editor resolver and returns, if available,\n     * a string that may be used as the href property for that\n     * file reference.\n     *\n     * @throws InvalidArgumentException If editor resolver does not return a string\n     * @param  string                   $filePath\n     * @param  int                      $line\n     * @return string|bool\n     */\n    public function getEditorHref($filePath, $line)\n    {\n        $editor = $this->getEditor($filePath, $line);\n\n        if (empty($editor)) {\n            return false;\n        }\n\n        // Check that the editor is a string, and replace the\n        // %line and %file placeholders:\n        if (!isset($editor['url']) || !is_string($editor['url'])) {\n            throw new UnexpectedValueException(\n                __METHOD__ . \" should always resolve to a string or a valid editor array; got something else instead.\"\n            );\n        }\n\n        $editor['url'] = str_replace(\"%line\", rawurlencode($line), $editor['url']);\n        $editor['url'] = str_replace(\"%file\", rawurlencode($filePath), $editor['url']);\n\n        return $editor['url'];\n    }\n\n    /**\n     * Given a boolean if the editor link should\n     * act as an Ajax request. The editor must be a\n     * valid callable function/closure\n     *\n     * @throws UnexpectedValueException  If editor resolver does not return a boolean\n     * @param  string                   $filePath\n     * @param  int                      $line\n     * @return bool\n     */\n    public function getEditorAjax($filePath, $line)\n    {\n        $editor = $this->getEditor($filePath, $line);\n\n        // Check that the ajax is a bool\n        if (!isset($editor['ajax']) || !is_bool($editor['ajax'])) {\n            throw new UnexpectedValueException(\n                __METHOD__ . \" should always resolve to a bool; got something else instead.\"\n            );\n        }\n        return $editor['ajax'];\n    }\n\n    /**\n     * Given a boolean if the editor link should\n     * act as an Ajax request. The editor must be a\n     * valid callable function/closure\n     *\n     * @param  string $filePath\n     * @param  int    $line\n     * @return array\n     */\n    protected function getEditor($filePath, $line)\n    {\n        if (!$this->editor || (!is_string($this->editor) && !is_callable($this->editor))) {\n            return [];\n        }\n\n        if (is_string($this->editor) && isset($this->editors[$this->editor]) && !is_callable($this->editors[$this->editor])) {\n            return [\n                'ajax' => false,\n                'url' => $this->editors[$this->editor],\n            ];\n        }\n\n        if (is_callable($this->editor) || (isset($this->editors[$this->editor]) && is_callable($this->editors[$this->editor]))) {\n            if (is_callable($this->editor)) {\n                $callback = call_user_func($this->editor, $filePath, $line);\n            } else {\n                $callback = call_user_func($this->editors[$this->editor], $filePath, $line);\n            }\n\n            if (empty($callback)) {\n                return [];\n            }\n\n            if (is_string($callback)) {\n                return [\n                    'ajax' => false,\n                    'url' => $callback,\n                ];\n            }\n\n            return [\n                'ajax' => isset($callback['ajax']) ? $callback['ajax'] : false,\n                'url' => isset($callback['url']) ? $callback['url'] : $callback,\n            ];\n        }\n\n        return [];\n    }\n\n    /**\n     * @param  string $title\n     * @return void\n     */\n    public function setPageTitle($title)\n    {\n        $this->pageTitle = (string) $title;\n    }\n\n    /**\n     * @return string\n     */\n    public function getPageTitle()\n    {\n        return $this->pageTitle;\n    }\n\n    /**\n     * Adds a path to the list of paths to be searched for\n     * resources.\n     *\n     * @throws InvalidArgumentException If $path is not a valid directory\n     *\n     * @param  string $path\n     * @return void\n     */\n    public function addResourcePath($path)\n    {\n        if (!is_dir($path)) {\n            throw new InvalidArgumentException(\n                \"'$path' is not a valid directory\"\n            );\n        }\n\n        array_unshift($this->searchPaths, $path);\n    }\n\n    /**\n     * Adds a custom css file to be loaded.\n     *\n     * @param  string $name\n     * @return void\n     */\n    public function addCustomCss($name)\n    {\n        $this->customCss = $name;\n    }\n\n    /**\n     * @return array\n     */\n    public function getResourcePaths()\n    {\n        return $this->searchPaths;\n    }\n\n    /**\n     * Finds a resource, by its relative path, in all available search paths.\n     * The search is performed starting at the last search path, and all the\n     * way back to the first, enabling a cascading-type system of overrides\n     * for all resources.\n     *\n     * @throws RuntimeException If resource cannot be found in any of the available paths\n     *\n     * @param  string $resource\n     * @return string\n     */\n    protected function getResource($resource)\n    {\n        // If the resource was found before, we can speed things up\n        // by caching its absolute, resolved path:\n        if (isset($this->resourceCache[$resource])) {\n            return $this->resourceCache[$resource];\n        }\n\n        // Search through available search paths, until we find the\n        // resource we're after:\n        foreach ($this->searchPaths as $path) {\n            $fullPath = $path . \"/$resource\";\n\n            if (is_file($fullPath)) {\n                // Cache the result:\n                $this->resourceCache[$resource] = $fullPath;\n                return $fullPath;\n            }\n        }\n\n        // If we got this far, nothing was found.\n        throw new RuntimeException(\n            \"Could not find resource '$resource' in any resource paths.\"\n            . \"(searched: \" . join(\", \", $this->searchPaths). \")\"\n        );\n    }\n\n    /**\n     * @deprecated\n     *\n     * @return string\n     */\n    public function getResourcesPath()\n    {\n        $allPaths = $this->getResourcePaths();\n\n        // Compat: return only the first path added\n        return end($allPaths) ?: null;\n    }\n\n    /**\n     * @deprecated\n     *\n     * @param  string $resourcesPath\n     * @return void\n     */\n    public function setResourcesPath($resourcesPath)\n    {\n        $this->addResourcePath($resourcesPath);\n    }\n\n    /**\n     * Return the application paths.\n     *\n     * @return array\n     */\n    public function getApplicationPaths()\n    {\n        return $this->applicationPaths;\n    }\n\n    /**\n     * Set the application paths.\n     *\n     * @param array $applicationPaths\n     */\n    public function setApplicationPaths($applicationPaths)\n    {\n        $this->applicationPaths = $applicationPaths;\n    }\n\n    /**\n     * Set the application root path.\n     *\n     * @param string $applicationRootPath\n     */\n    public function setApplicationRootPath($applicationRootPath)\n    {\n        $this->templateHelper->setApplicationRootPath($applicationRootPath);\n    }\n\n    /**\n     * blacklist a sensitive value within one of the superglobal arrays.\n     *\n     * @param $superGlobalName string the name of the superglobal array, e.g. '_GET'\n     * @param $key string the key within the superglobal\n     */\n    public function blacklist($superGlobalName, $key)\n    {\n        $this->blacklist[$superGlobalName][] = $key;\n    }\n\n    /**\n     * Checks all values within the given superGlobal array.\n     * Blacklisted values will be replaced by a equal length string cointaining only '*' characters.\n     *\n     * We intentionally dont rely on $GLOBALS as it depends on 'auto_globals_jit' php.ini setting.\n     *\n     * @param $superGlobal array One of the superglobal arrays\n     * @param $superGlobalName string the name of the superglobal array, e.g. '_GET'\n     * @return array $values without sensitive data\n     */\n    private function masked(array $superGlobal, $superGlobalName)\n    {\n        $blacklisted = $this->blacklist[$superGlobalName];\n\n        $values = $superGlobal;\n        foreach ($blacklisted as $key) {\n            if (isset($superGlobal[$key]) && is_string($superGlobal[$key])) {\n                $values[$key] = str_repeat('*', strlen($superGlobal[$key]));\n            }\n        }\n        return $values;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Handler/XmlResponseHandler.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Handler;\n\nuse SimpleXMLElement;\nuse Whoops\\Exception\\Formatter;\n\n/**\n * Catches an exception and converts it to an XML\n * response. Additionally can also return exception\n * frames for consumption by an API.\n */\nclass XmlResponseHandler extends Handler\n{\n    /**\n     * @var bool\n     */\n    private $returnFrames = false;\n\n    /**\n     * @param  bool|null  $returnFrames\n     * @return bool|$this\n     */\n    public function addTraceToOutput($returnFrames = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->returnFrames;\n        }\n\n        $this->returnFrames = (bool) $returnFrames;\n        return $this;\n    }\n\n    /**\n     * @return int\n     */\n    public function handle()\n    {\n        $response = [\n            'error' => Formatter::formatExceptionAsDataArray(\n                $this->getInspector(),\n                $this->addTraceToOutput()\n            ),\n        ];\n\n        echo self::toXml($response);\n\n        return Handler::QUIT;\n    }\n\n    /**\n     * @return string\n     */\n    public function contentType()\n    {\n        return 'application/xml';\n    }\n\n    /**\n     * @param  SimpleXMLElement  $node Node to append data to, will be modified in place\n     * @param  array|\\Traversable $data\n     * @return SimpleXMLElement  The modified node, for chaining\n     */\n    private static function addDataToNode(\\SimpleXMLElement $node, $data)\n    {\n        assert(is_array($data) || $data instanceof Traversable);\n\n        foreach ($data as $key => $value) {\n            if (is_numeric($key)) {\n                // Convert the key to a valid string\n                $key = \"unknownNode_\". (string) $key;\n            }\n\n            // Delete any char not allowed in XML element names\n            $key = preg_replace('/[^a-z0-9\\-\\_\\.\\:]/i', '', $key);\n\n            if (is_array($value)) {\n                $child = $node->addChild($key);\n                self::addDataToNode($child, $value);\n            } else {\n                $value = str_replace('&', '&amp;', print_r($value, true));\n                $node->addChild($key, $value);\n            }\n        }\n\n        return $node;\n    }\n\n    /**\n     * The main function for converting to an XML document.\n     *\n     * @param  array|\\Traversable $data\n     * @return string            XML\n     */\n    private static function toXml($data)\n    {\n        assert(is_array($data) || $data instanceof Traversable);\n\n        $node = simplexml_load_string(\"<?xml version='1.0' encoding='utf-8'?><root />\");\n\n        return self::addDataToNode($node, $data)->asXML();\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/css/whoops.base.css",
    "content": "body {\n  font: 12px \"Helvetica Neue\", helvetica, arial, sans-serif;\n  color: #131313;\n  background: #eeeeee;\n  padding:0;\n  margin: 0;\n  max-height: 100%;\n\n  text-rendering: optimizeLegibility;\n}\n  a {\n    text-decoration: none;\n  }\n\n.Whoops.container {\n    position: relative;\n    z-index: 9999999999;\n}\n\n.panel {\n    overflow-y: scroll;\n    height: 100%;\n    position: fixed;\n    margin: 0;\n    left: 0;\n    top: 0;\n}\n\n.branding {\n  position: absolute;\n  top: 10px;\n  right: 20px;\n  color: #777777;\n  font-size: 10px;\n    z-index: 100;\n}\n  .branding a {\n    color: #e95353;\n  }\n\nheader {\n  color: white;\n  box-sizing: border-box;\n  background-color: #2a2a2a;\n  padding: 35px 40px;\n  max-height: 180px;\n  overflow: hidden;\n  transition: 0.5s;\n}\n\n  header.header-expand {\n    max-height: 1000px;\n  }\n\n  .exc-title {\n    margin: 0;\n    color: #bebebe;\n    font-size: 14px;\n  }\n    .exc-title-primary, .exc-title-secondary {\n      color: #e95353;\n    }\n\n    .exc-message {\n      font-size: 20px;\n      word-wrap: break-word;\n      margin: 4px 0 0 0;\n      color: white;\n    }\n      .exc-message span {\n        display: block;\n      }\n      .exc-message-empty-notice {\n        color: #a29d9d;\n        font-weight: 300;\n      }\n\n.prev-exc-title {\n  margin: 10px 0;\n}\n\n.prev-exc-title + ul {\n  margin: 0;\n  padding: 0 0 0 20px;\n  line-height: 12px;\n}\n\n.prev-exc-title + ul li {\n  font: 12px \"Helvetica Neue\", helvetica, arial, sans-serif;\n}\n\n.prev-exc-title + ul li .prev-exc-code {\n  display: inline-block;\n  color: #bebebe;\n}\n\n.details-container {\n  left: 30%;\n  width: 70%;\n  background: #fafafa;\n}\n  .details {\n    padding: 5px;\n  }\n\n    .details-heading {\n      color: #4288CE;\n      font-weight: 300;\n      padding-bottom: 10px;\n      margin-bottom: 10px;\n      border-bottom: 1px solid rgba(0, 0, 0, .1);\n    }\n\n    .details pre.sf-dump {\n      white-space: pre;\n      word-wrap: inherit;\n    }\n\n    .details pre.sf-dump,\n    .details pre.sf-dump .sf-dump-num,\n    .details pre.sf-dump .sf-dump-const,\n    .details pre.sf-dump .sf-dump-str,\n    .details pre.sf-dump .sf-dump-note,\n    .details pre.sf-dump .sf-dump-ref,\n    .details pre.sf-dump .sf-dump-public,\n    .details pre.sf-dump .sf-dump-protected,\n    .details pre.sf-dump .sf-dump-private,\n    .details pre.sf-dump .sf-dump-meta,\n    .details pre.sf-dump .sf-dump-key,\n    .details pre.sf-dump .sf-dump-index {\n      color: #463C54;\n    }\n\n.left-panel {\n  width: 30%;\n  background: #ded8d8;\n}\n\n  .frames-description {\n    background: rgba(0, 0, 0, .05);\n    padding: 8px 15px;\n    color: #a29d9d;\n    font-size: 11px;\n  }\n\n  .frames-description.frames-description-application {\n    text-align: center;\n    font-size: 12px;\n  }\n  .frames-container.frames-container-application .frame:not(.frame-application) {\n    display: none;\n  }\n\n  .frames-tab {\n    color: #a29d9d;\n    display: inline-block;\n    padding: 4px 8px;\n    margin: 0 2px;\n    border-radius: 3px;\n  }\n\n  .frames-tab.frames-tab-active {\n    background-color: #2a2a2a;\n    color: #bebebe;\n  }\n\n  .frame {\n    padding: 14px;\n    cursor: pointer;\n    transition: all 0.1s ease;\n    background: #eeeeee;\n  }\n    .frame:not(:last-child) {\n      border-bottom: 1px solid rgba(0, 0, 0, .05);\n    }\n\n    .frame.active {\n      box-shadow: inset -5px 0 0 0 #4288CE;\n      color: #4288CE;\n    }\n\n    .frame:not(.active):hover {\n      background: #BEE9EA;\n    }\n\n    .frame-method-info {\n      margin-bottom: 10px;\n    }\n\n    .frame-class, .frame-function, .frame-index {\n      font-size: 14px;\n    }\n\n    .frame-index {\n      float: left;\n    }\n\n    .frame-method-info {\n      margin-left: 24px;\n    }\n\n    .frame-index {\n      font-size: 11px;\n      color: #a29d9d;\n      background-color: rgba(0, 0, 0, .05);\n      height: 18px;\n      width: 18px;\n      line-height: 18px;\n      border-radius: 5px;\n      padding: 0 1px 0 1px;\n      text-align: center;\n      display: inline-block;\n    }\n\n    .frame-application .frame-index {\n      background-color: #2a2a2a;\n      color: #bebebe;\n    }\n\n    .frame-file {\n      font-family: \"Inconsolata\", \"Fira Mono\", \"Source Code Pro\", Monaco, Consolas, \"Lucida Console\", monospace;\n      color: #a29d9d;\n    }\n\n      .frame-file .editor-link {\n        color: #a29d9d;\n      }\n\n    .frame-line {\n      font-weight: bold;\n    }\n\n    .frame-line:before {\n      content: \":\";\n    }\n\n    .frame-code {\n      padding: 5px;\n      background: #303030;\n      display: none;\n    }\n\n    .frame-code.active {\n      display: block;\n    }\n\n    .frame-code .frame-file {\n      color: #a29d9d;\n      padding: 12px 6px;\n\n      border-bottom: none;\n    }\n\n    .code-block {\n      padding: 10px;\n      margin: 0;\n      border-radius: 6px;\n      box-shadow: 0 3px 0 rgba(0, 0, 0, .05),\n                  0 10px 30px rgba(0, 0, 0, .05),\n                  inset 0 0 1px 0 rgba(255, 255, 255, .07);\n      -moz-tab-size: 4;\n      -o-tab-size: 4;\n      tab-size: 4;\n    }\n\n    .linenums {\n      margin: 0;\n      margin-left: 10px;\n    }\n\n    .frame-comments {\n      border-top: none;\n      margin-top: 15px;\n\n      font-size: 12px;\n    }\n\n    .frame-comments.empty {\n    }\n\n    .frame-comments.empty:before {\n      content: \"No comments for this stack frame.\";\n      font-weight: 300;\n      color: #a29d9d;\n    }\n\n    .frame-comment {\n      padding: 10px;\n      color: #e3e3e3;\n      border-radius: 6px;\n      background-color: rgba(255, 255, 255, .05);\n    }\n      .frame-comment a {\n        font-weight: bold;\n        text-decoration: none;\n      }\n        .frame-comment a:hover {\n          color: #4bb1b1;\n        }\n\n    .frame-comment:not(:last-child) {\n      border-bottom: 1px dotted rgba(0, 0, 0, .3);\n    }\n\n    .frame-comment-context {\n      font-size: 10px;\n      color: white;\n    }\n\n.delimiter {\n  display: inline-block;\n}\n\n.data-table-container label {\n  font-size: 16px;\n  color: #303030;\n  font-weight: bold;\n  margin: 10px 0;\n\n  display: block;\n\n  margin-bottom: 5px;\n  padding-bottom: 5px;\n}\n  .data-table {\n    width: 100%;\n    margin-bottom: 10px;\n  }\n\n  .data-table tbody {\n    font: 13px \"Inconsolata\", \"Fira Mono\", \"Source Code Pro\", Monaco, Consolas, \"Lucida Console\", monospace;\n  }\n\n  .data-table thead {\n    display: none;\n  }\n\n  .data-table tr {\n    padding: 5px 0;\n  }\n\n  .data-table td:first-child {\n    width: 20%;\n    min-width: 130px;\n    overflow: hidden;\n    font-weight: bold;\n    color: #463C54;\n    padding-right: 5px;\n\n  }\n\n  .data-table td:last-child {\n    width: 80%;\n    -ms-word-break: break-all;\n    word-break: break-all;\n    word-break: break-word;\n    -webkit-hyphens: auto;\n    -moz-hyphens: auto;\n    hyphens: auto;\n  }\n\n  .data-table span.empty {\n    color: rgba(0, 0, 0, .3);\n    font-weight: 300;\n  }\n  .data-table label.empty {\n    display: inline;\n  }\n\n.handler {\n  padding: 4px 0;\n  font: 14px \"Inconsolata\", \"Fira Mono\", \"Source Code Pro\", Monaco, Consolas, \"Lucida Console\", monospace;\n}\n\n/* prettify code style\nUses the Doxy theme as a base */\npre .str, code .str { color: #BCD42A; }  /* string  */\npre .kwd, code .kwd { color: #4bb1b1;  font-weight: bold; }  /* keyword*/\npre .com, code .com { color: #888; font-weight: bold; } /* comment */\npre .typ, code .typ { color: #ef7c61; }  /* type  */\npre .lit, code .lit { color: #BCD42A; }  /* literal */\npre .pun, code .pun { color: #fff; font-weight: bold;  } /* punctuation  */\npre .pln, code .pln { color: #e9e4e5; }  /* plaintext  */\npre .tag, code .tag { color: #4bb1b1; }  /* html/xml tag  */\npre .htm, code .htm { color: #dda0dd; }  /* html tag */\npre .xsl, code .xsl { color: #d0a0d0; }  /* xslt tag */\npre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */\npre .atv, code .atv { color: #bcd42a; }  /* html/xml attribute value  */\npre .dec, code .dec { color: #606; }  /* decimal  */\npre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp {\n  font-family: \"Inconsolata\", \"Fira Mono\", \"Source Code Pro\", Monaco, Consolas, \"Lucida Console\", monospace;\n  background: #333;\n  color: #e9e4e5;\n}\n  pre.code-block {\n    white-space: pre-wrap;\n  }\n\n  pre.code-block a, code.code-block a {\n    text-decoration:none;\n  }\n\n  .linenums li {\n    color: #A5A5A5;\n  }\n\n  .linenums li.current{\n    background: rgba(255, 100, 100, .07);\n  }\n    .linenums li.current.active {\n      background: rgba(255, 100, 100, .17);\n    }\n\npre:not(.prettyprinted) {\n  padding-left: 60px;\n}\n\n#plain-exception {\n  display: none;\n}\n\n.rightButton {\n  cursor: pointer;\n  border: 0;\n  opacity: .8;\n  background: none;\n\n  color: rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);\n\n  border-radius: 3px;\n\n  outline: none !important;\n}\n\n  .rightButton:hover {\n    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);\n    color: rgba(255, 255, 255, 0.3);\n  }\n\n/* inspired by githubs kbd styles */\nkbd {\n  -moz-border-bottom-colors: none;\n  -moz-border-left-colors: none;\n  -moz-border-right-colors: none;\n  -moz-border-top-colors: none;\n  background-color: #fcfcfc;\n  border-color: #ccc #ccc #bbb;\n  border-image: none;\n  border-style: solid;\n  border-width: 1px;\n  color: #555;\n  display: inline-block;\n  font-size: 11px;\n  line-height: 10px;\n  padding: 3px 5px;\n  vertical-align: middle;\n}\n\n\n/* == Media queries */\n\n/* Expand the spacing in the details section */\n@media (min-width: 1000px) {\n  .details, .frame-code {\n    padding: 20px 40px;\n  }\n\n  .details-container {\n    left: 32%;\n    width: 68%;\n  }\n\n  .frames-container {\n    margin: 5px;\n  }\n\n  .left-panel {\n    width: 32%;\n  }\n}\n\n/* Stack panels */\n@media (max-width: 600px) {\n  .panel {\n    position: static;\n    width: 100%;\n  }\n}\n\n/* Stack details tables */\n@media (max-width: 400px) {\n  .data-table,\n  .data-table tbody,\n  .data-table tbody tr,\n  .data-table tbody td {\n    display: block;\n    width: 100%;\n  }\n\n    .data-table tbody tr:first-child {\n      padding-top: 0;\n    }\n\n      .data-table tbody td:first-child,\n      .data-table tbody td:last-child {\n        padding-left: 0;\n        padding-right: 0;\n      }\n\n      .data-table tbody td:last-child {\n        padding-top: 3px;\n      }\n}\n\n.tooltipped {\n  position: relative\n}\n.tooltipped:after {\n  position: absolute;\n  z-index: 1000000;\n  display: none;\n  padding: 5px 8px;\n  color: #fff;\n  text-align: center;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  letter-spacing: normal;\n  word-wrap: break-word;\n  white-space: pre;\n  pointer-events: none;\n  content: attr(aria-label);\n  background: rgba(0, 0, 0, 0.8);\n  border-radius: 3px;\n  -webkit-font-smoothing: subpixel-antialiased\n}\n.tooltipped:before {\n  position: absolute;\n  z-index: 1000001;\n  display: none;\n  width: 0;\n  height: 0;\n  color: rgba(0, 0, 0, 0.8);\n  pointer-events: none;\n  content: \"\";\n  border: 5px solid transparent\n}\n.tooltipped:hover:before,\n.tooltipped:hover:after,\n.tooltipped:active:before,\n.tooltipped:active:after,\n.tooltipped:focus:before,\n.tooltipped:focus:after {\n  display: inline-block;\n  text-decoration: none\n}\n.tooltipped-s:after {\n  top: 100%;\n  right: 50%;\n  margin-top: 5px\n}\n.tooltipped-s:before {\n  top: auto;\n  right: 50%;\n  bottom: -5px;\n  margin-right: -5px;\n  border-bottom-color: rgba(0, 0, 0, 0.8)\n}\n\npre.sf-dump {\n  padding: 0px !important;\n  margin: 0px !important;\n}\n\n.search-for-help {\n  width: 85%;\n  padding: 0;\n  margin: 10px 0;\n  list-style-type: none;\n  display: inline-block;\n}\n  .search-for-help li {\n    display: inline-block;\n    margin-right: 5px;\n  }\n  .search-for-help li:last-child {\n    margin-right: 0;\n  }\n    .search-for-help li a {\n\n    }\n      .search-for-help li a i {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        display: block;\n      }\n      .search-for-help li a svg {\n        fill: #fff;\n      }\n      .search-for-help li a svg path {\n        background-size: contain;\n      }\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/js/whoops.base.js",
    "content": "Zepto(function($) {\n  var $leftPanel      = $('.left-panel');\n  var $frameContainer = $('.frames-container');\n  var $appFramesTab   = $('#application-frames-tab');\n  var $allFramesTab   = $('#all-frames-tab');\n  var $container      = $('.details-container');\n  var $activeLine     = $frameContainer.find('.frame.active');\n  var $activeFrame    = $container.find('.frame-code.active');\n  var $ajaxEditors    = $('.editor-link[data-ajax]');\n  var $header         = $('header');\n\n  $header.on('mouseenter', function () {\n    if ($header.find('.exception').height() >= 145) {\n      $header.addClass('header-expand');\n    }\n  });\n  $header.on('mouseleave', function () {\n    $header.removeClass('header-expand');\n  });\n\n  /*\n   * add prettyprint classes to our current active codeblock\n   * run prettyPrint() to highlight the active code\n   * scroll to the line when prettyprint is done\n   * highlight the current line\n   */\n  var renderCurrentCodeblock = function(id) {\n\n    // remove previous codeblocks so we only render the active one\n    $('.code-block').removeClass('prettyprint');\n\n    // pass the id in when we can for speed\n    if (typeof(id) === 'undefined' || typeof(id) === 'object') {\n      var id = /frame\\-line\\-([\\d]*)/.exec($activeLine.attr('id'))[1];\n    }\n\n    $('#frame-code-linenums-' + id).addClass('prettyprint');\n    $('#frame-code-args-' + id).addClass('prettyprint');\n\n    prettyPrint(highlightCurrentLine);\n\n  }\n\n  /*\n   * Highlight the active and neighboring lines for the current frame\n   * Adjust the offset to make sure that line is veritcally centered\n   */\n\n  var highlightCurrentLine = function() {\n    var activeLineNumber = +($activeLine.find('.frame-line').text());\n    var $lines           = $activeFrame.find('.linenums li');\n    var firstLine        = +($lines.first().val());\n\n    // We show more code than needed, purely for proper syntax highlighting\n    // Let’s hide a big chunk of that code and then scroll the remaining block\n    $activeFrame.find('.code-block').first().css({\n      maxHeight: 345,\n      overflow: 'hidden',\n    });\n\n    var $offset = $($lines[activeLineNumber - firstLine - 10]);\n    if ($offset.length > 0) {\n      $offset[0].scrollIntoView();\n    }\n\n    $($lines[activeLineNumber - firstLine - 1]).addClass('current');\n    $($lines[activeLineNumber - firstLine]).addClass('current active');\n    $($lines[activeLineNumber - firstLine + 1]).addClass('current');\n\n    $container.scrollTop(0);\n\n  }\n\n  /*\n   * click handler for loading codeblocks\n   */\n\n  $frameContainer.on('click', '.frame', function() {\n\n    var $this  = $(this);\n    var id     = /frame\\-line\\-([\\d]*)/.exec($this.attr('id'))[1];\n    var $codeFrame = $('#frame-code-' + id);\n\n    if ($codeFrame) {\n\n      $activeLine.removeClass('active');\n      $activeFrame.removeClass('active');\n\n      $this.addClass('active');\n      $codeFrame.addClass('active');\n\n      $activeLine  = $this;\n      $activeFrame = $codeFrame;\n\n      renderCurrentCodeblock(id);\n\n    }\n\n  });\n\n  var clipboard = new Clipboard('.clipboard');\n  var showTooltip = function(elem, msg) {\n    elem.setAttribute('class', 'clipboard tooltipped tooltipped-s');\n    elem.setAttribute('aria-label', msg);\n  };\n\n  clipboard.on('success', function(e) {\n      e.clearSelection();\n\n      showTooltip(e.trigger, 'Copied!');\n  });\n\n  clipboard.on('error', function(e) {\n      showTooltip(e.trigger, fallbackMessage(e.action));\n  });\n\n  var btn = document.querySelector('.clipboard');\n\n  btn.addEventListener('mouseleave', function(e) {\n    e.currentTarget.setAttribute('class', 'clipboard');\n    e.currentTarget.removeAttribute('aria-label');\n  });\n\n  function fallbackMessage(action) {\n    var actionMsg = '';\n    var actionKey = (action === 'cut' ? 'X' : 'C');\n\n    if (/Mac/i.test(navigator.userAgent)) {\n        actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n    } else {\n        actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n    }\n\n    return actionMsg;\n  }\n\n  function scrollIntoView($node, $parent) {\n    var nodeOffset = $node.offset();\n    var nodeTop = nodeOffset.top;\n    var nodeBottom = nodeTop + nodeOffset.height;\n    var parentScrollTop = $parent.scrollTop();\n    var parentHeight = $parent.height();\n\n    if (nodeTop < 0) {\n      $parent.scrollTop(parentScrollTop + nodeTop);\n    } else if (nodeBottom > parentHeight) {\n      $parent.scrollTop(parentScrollTop + nodeBottom - parentHeight);\n    }\n  }\n\n  $(document).on('keydown', function(e) {\n    var applicationFrames = $frameContainer.hasClass('frames-container-application'),\n        frameClass = applicationFrames ? '.frame.frame-application' : '.frame';\n\n\t  if(e.ctrlKey || e.which === 74  || e.which === 75) {\n\t\t  // CTRL+Arrow-UP/k and Arrow-Down/j support:\n\t\t  // 1) select the next/prev element\n\t\t  // 2) make sure the newly selected element is within the view-scope\n\t\t  // 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details\n\t\t  if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) {\n\t\t\t  $activeLine.prev(frameClass).click();\n\t\t\t  scrollIntoView($activeLine, $leftPanel);\n\t\t\t  $container.focus();\n\t\t\t  e.preventDefault();\n\t\t  } else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) {\n\t\t\t  $activeLine.next(frameClass).click();\n\t\t\t  scrollIntoView($activeLine, $leftPanel);\n\t\t\t  $container.focus();\n\t\t\t  e.preventDefault();\n\t\t  }\n\t  } else if (e.which == 78 /* n */) {\n      if ($appFramesTab.length) {\n        setActiveFramesTab($('.frames-tab:not(.frames-tab-active)'));\n      }\n    }\n  });\n\n  // Render late enough for highlightCurrentLine to be ready\n  renderCurrentCodeblock();\n\n  // Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API)\n  $ajaxEditors.on('click', function(e){\n    e.preventDefault();\n    $.get(this.href);\n  });\n\n  // Symfony VarDumper: Close the by default expanded objects\n  $('.sf-dump-expanded')\n    .removeClass('sf-dump-expanded')\n    .addClass('sf-dump-compact');\n  $('.sf-dump-toggle span').html('&#9654;');\n\n  // Make the given frames-tab active\n  function setActiveFramesTab($tab) {\n    $tab.addClass('frames-tab-active');\n\n    if ($tab.attr('id') == 'application-frames-tab') {\n      $frameContainer.addClass('frames-container-application');\n      $allFramesTab.removeClass('frames-tab-active');\n    } else {\n      $frameContainer.removeClass('frames-container-application');\n      $appFramesTab.removeClass('frames-tab-active');\n    }\n  }\n\n  $('a.frames-tab').on('click', function(e) {\n    e.preventDefault();\n    setActiveFramesTab($(this));\n  });\n});\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php",
    "content": "<?php /* List data-table values, i.e: $_SERVER, $_GET, .... */ ?>\n<div class=\"details\">\n  <h2 class=\"details-heading\">Environment &amp; details:</h2>\n\n  <div class=\"data-table-container\" id=\"data-tables\">\n    <?php foreach ($tables as $label => $data): ?>\n      <div class=\"data-table\" id=\"sg-<?php echo $tpl->escape($tpl->slug($label)) ?>\">\n        <?php if (!empty($data)): ?>\n            <label><?php echo $tpl->escape($label) ?></label>\n            <table class=\"data-table\">\n              <thead>\n                <tr>\n                  <td class=\"data-table-k\">Key</td>\n                  <td class=\"data-table-v\">Value</td>\n                </tr>\n              </thead>\n            <?php foreach ($data as $k => $value): ?>\n              <tr>\n                <td><?php echo $tpl->escape($k) ?></td>\n                <td><?php echo $tpl->dump($value) ?></td>\n              </tr>\n            <?php endforeach ?>\n            </table>\n        <?php else: ?>\n            <label class=\"empty\"><?php echo $tpl->escape($label) ?></label>\n            <span class=\"empty\">empty</span>\n        <?php endif ?>\n      </div>\n    <?php endforeach ?>\n  </div>\n\n  <?php /* List registered handlers, in order of first to last registered */ ?>\n  <div class=\"data-table-container\" id=\"handlers\">\n    <label>Registered Handlers</label>\n    <?php foreach ($handlers as $i => $handler): ?>\n      <div class=\"handler <?php echo ($handler === $handler) ? 'active' : ''?>\">\n        <?php echo $i ?>. <?php echo $tpl->escape(get_class($handler)) ?>\n      </div>\n    <?php endforeach ?>\n  </div>\n\n</div>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/frame_code.html.php",
    "content": "<?php /* Display a code block for all frames in the stack.\n       * @todo: This should PROBABLY be done on-demand, lest\n       * we get 200 frames to process. */ ?>\n<div class=\"frame-code-container <?php echo (!$has_frames ? 'empty' : '') ?>\">\n  <?php foreach ($frames as $i => $frame): ?>\n    <?php $line = $frame->getLine(); ?>\n      <div class=\"frame-code <?php echo ($i == 0 ) ? 'active' : '' ?>\" id=\"frame-code-<?php echo $i ?>\">\n        <div class=\"frame-file\">\n          <?php $filePath = $frame->getFile(); ?>\n          <?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>\n            <a href=\"<?php echo $editorHref ?>\" class=\"editor-link\"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>\n              Open:\n              <strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>\n            </a>\n          <?php else: ?>\n            <strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>\n          <?php endif ?>\n        </div>\n        <?php\n          // Do nothing if there's no line to work off\n          if ($line !== null):\n\n          // the $line is 1-indexed, we nab -1 where needed to account for this\n          $range = $frame->getFileLines($line - 20, 40);\n\n          // getFileLines can return null if there is no source code\n          if ($range):\n            $range = array_map(function ($line) { return empty($line) ? ' ' : $line;}, $range);\n            $start = key($range) + 1;\n            $code  = join(\"\\n\", $range);\n        ?>\n            <pre id=\"frame-code-linenums-<?=$i?>\" class=\"code-block linenums:<?php echo $start ?>\"><?php echo $tpl->escape($code) ?></pre>\n\n          <?php endif ?>\n        <?php endif ?>\n\n        <?php $frameArgs = $tpl->dumpArgs($frame); ?>\n        <?php if ($frameArgs): ?>\n          <div class=\"frame-file\">\n              Arguments\n          </div>\n          <div id=\"frame-code-args-<?=$i?>\" class=\"code-block frame-args\">\n              <?php echo $frameArgs; ?>\n          </div>\n        <?php endif ?>\n\n        <?php\n          // Append comments for this frame\n          $comments = $frame->getComments();\n        ?>\n        <div class=\"frame-comments <?php echo empty($comments) ? 'empty' : '' ?>\">\n          <?php foreach ($comments as $commentNo => $comment): ?>\n            <?php extract($comment) ?>\n            <div class=\"frame-comment\" id=\"comment-<?php echo $i . '-' . $commentNo ?>\">\n              <span class=\"frame-comment-context\"><?php echo $tpl->escape($context) ?></span>\n              <?php echo $tpl->escapeButPreserveUris($comment) ?>\n            </div>\n          <?php endforeach ?>\n        </div>\n\n      </div>\n  <?php endforeach ?>\n</div>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php",
    "content": "<?php /* List file names & line numbers for all stack frames;\n         clicking these links/buttons will display the code view\n         for that particular frame */ ?>\n<?php foreach ($frames as $i => $frame): ?>\n  <div class=\"frame <?php echo ($i == 0 ? 'active' : '') ?> <?php echo ($frame->isApplication() ? 'frame-application' : '') ?>\" id=\"frame-line-<?php echo $i ?>\">\n      <span class=\"frame-index\"><?php echo (count($frames) - $i - 1) ?></span>\n      <div class=\"frame-method-info\">\n        <span class=\"frame-class\"><?php echo $tpl->breakOnDelimiter('\\\\', $tpl->escape($frame->getClass() ?: '')) ?></span>\n        <span class=\"frame-function\"><?php echo $tpl->breakOnDelimiter('\\\\', $tpl->escape($frame->getFunction() ?: '')) ?></span>\n      </div>\n\n    <div class=\"frame-file\">\n        <?php echo $frame->getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?><!--\n   --><span class=\"frame-line\"><?php echo (int) $frame->getLine() ?></span>\n    </div>\n  </div>\n<?php endforeach;\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/frames_container.html.php",
    "content": "<div class=\"frames-container <?php echo $active_frames_tab == 'application' ? 'frames-container-application' : '' ?>\">\n  <?php $tpl->render($frame_list) ?>\n</div>"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php",
    "content": "<div class=\"frames-description <?php echo $has_frames_tabs ? 'frames-description-application' : '' ?>\">\n  <?php if ($has_frames_tabs): ?>\n    <a href=\"#\" id=\"application-frames-tab\" class=\"frames-tab <?php echo $active_frames_tab == 'application' ? 'frames-tab-active' : '' ?>\">\n        Application frames (<?php echo $frames->countIsApplication() ?>)\n    </a>\n    <a href=\"#\" id=\"all-frames-tab\" class=\"frames-tab <?php echo $active_frames_tab == 'all' ? 'frames-tab-active' : '' ?>\">\n      All frames (<?php echo count($frames) ?>)\n    </a>\n  <?php else: ?>\n    <span>\n        Stack frames (<?php echo count($frames) ?>)\n    </span>\n  <?php endif; ?>\n</div>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/header.html.php",
    "content": "<div class=\"exception\">\n  <div class=\"exc-title\">\n    <?php foreach ($name as $i => $nameSection): ?>\n      <?php if ($i == count($name) - 1): ?>\n        <span class=\"exc-title-primary\"><?php echo $tpl->escape($nameSection) ?></span>\n      <?php else: ?>\n        <?php echo $tpl->escape($nameSection) . ' \\\\' ?>\n      <?php endif ?>\n    <?php endforeach ?>\n    <?php if ($code): ?>\n      <span title=\"Exception Code\">(<?php echo $tpl->escape($code) ?>)</span>\n    <?php endif ?>\n  </div>\n\n  <div class=\"exc-message\">\n    <?php if (!empty($message)): ?>\n      <span><?php echo $tpl->escape($message) ?></span>\n\n\n      <?php if (count($previousMessages)): ?>\n        <div class=\"exc-title prev-exc-title\">\n          <span class=\"exc-title-secondary\">Previous exceptions</span>\n        </div>\n\n        <ul>\n          <?php foreach ($previousMessages as $i => $previousMessage): ?>\n            <li>\n              <?php echo $tpl->escape($previousMessage) ?>\n              <span class=\"prev-exc-code\">(<?php echo $previousCodes[$i] ?>)</span>\n            </li>\n          <?php endforeach; ?>\n        </ul>\n      <?php endif ?>\n\n\n\n    <?php else: ?>\n      <span class=\"exc-message-empty-notice\">No message</span>\n    <?php endif ?>\n\n    <ul class=\"search-for-help\">\n      <?php if (!empty($docref_url)): ?>\n      <li>\n        <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"<?php echo $docref_url; ?>\" title=\"Search for help in the PHP manual.\">\n          <!-- PHP icon by Icons Solid -->\n          <!-- https://www.iconfinder.com/icons/322421/book_icon -->\n          <!-- Free for commercial use -->\n          <svg height=\"16px\" id=\"Layer_1\" style=\"enable-background:new 0 0 32 32;\" version=\"1.1\" viewBox=\"0 0 32 32\" width=\"16px\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g transform=\"translate(240 0)\"><path d=\"M-211,4v26h-24c-1.104,0-2-0.895-2-2s0.896-2,2-2h22V0h-22c-2.209,0-4,1.791-4,4v24c0,2.209,1.791,4,4,4h26V4H-211z    M-235,8V2h20v22h-20V8z M-219,6h-12V4h12V6z M-223,10h-8V8h8V10z M-227,14h-4v-2h4V14z\"/></g></svg>\n        </a>\n      </li>\n      <?php endif ?>\n      <li>\n        <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://google.com/search?q=<?php echo urlencode(implode('\\\\', $name).' '.$message) ?>\" title=\"Search for help on Google.\">\n          <!-- Google icon by Alfredo H, from https://www.iconfinder.com/alfredoh -->\n          <!-- Creative Commons (Attribution 3.0 Unported) -->\n          <!-- http://creativecommons.org/licenses/by/3.0/ -->\n          <svg class=\"google\" height=\"16\" viewBox=\"0 0 512 512\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path d=\"M457.732 216.625c2.628 14.04 4.063 28.743 4.063 44.098C461.795 380.688 381.48 466 260.205 466c-116.024 0-210-93.977-210-210s93.976-210 210-210c56.703 0 104.076 20.867 140.44 54.73l-59.205 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.84 0 69.29 56.306 127.97 125.604 127.97 62.87 0 105.653-35.966 114.46-85.313h-114.46v-81.902h197.528z\"/>\n          </svg>\n        </a>\n      </li>\n      <li>\n        <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://duckduckgo.com/?q=<?php echo urlencode(implode('\\\\', $name).' '.$message) ?>\" title=\"Search for help on DuckDuckGo.\">\n          <!-- DuckDuckGo icon by IconBaandar Team, from https://www.iconfinder.com/iconbaandar -->\n          <!-- Creative Commons (Attribution 3.0 Unported) -->\n          <!-- http://creativecommons.org/licenses/by/3.0/ -->\n          <svg class=\"duckduckgo\" height=\"16\" viewBox=\"150 150 1675 1675\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path d=\"M1792 1024c0 204.364-80.472 398.56-224.955 543.04-144.483 144.48-338.68 224.95-543.044 224.95-204.36 0-398.56-80.47-543.04-224.95-144.48-144.482-224.95-338.676-224.95-543.04 0-204.365 80.47-398.562 224.96-543.045C625.44 336.47 819.64 256 1024 256c204.367 0 398.565 80.47 543.05 224.954C1711.532 625.437 1792 819.634 1792 1024zm-270.206 497.787C1654.256 1389.327 1728 1211.36 1728 1024c0-187.363-73.74-365.332-206.203-497.796C1389.332 393.74 1211.363 320 1024 320s-365.33 73.742-497.795 206.205C393.742 658.67 320 836.637 320 1024c0 187.36 73.744 365.326 206.206 497.787C658.67 1654.25 836.638 1727.99 1024 1727.99c187.362 0 365.33-73.74 497.794-206.203z\"/>\n            <path d=\"M1438.64 1177.41c0-.03-.005-.017-.01.004l.01-.004z\"/>\n            <path d=\"M1499.8 976.878c.03-.156-.024-.048-.11.107l.11-.107z\"/>\n            <path d=\"M1105.19 991.642zm-68.013-376.128c-8.087-10.14-18.028-19.965-29.89-29.408-13.29-10.582-29-20.76-47.223-30.443-35.07-18.624-74.482-31.61-115.265-38.046-39.78-6.28-80.84-6.256-120.39.917l1.37 31.562c1.8.164 7.7 3.9 14.36 8.32-20.68 5.94-39.77 14.447-39.48 39.683l.2 17.48 17.3-1.73c29.38-2.95 60.17-2.06 90.32 2.61 9.21 1.42 18.36 3.2 27.38 5.32l-4.33 1.15c-20.45 5.58-38.93 12.52-54.25 20.61-46.28 24.32-75.51 60.85-90.14 108.37-14.14 45.95-14.27 101.81-2.72 166.51l.06.06c15.14 84.57 64.16 316.39 104.11 505.39 19.78 93.59 37.38 176.83 47.14 224.4 3.26 15.84 5.03 31.02 5.52 45.52.3 9.08.09 17.96-.58 26.62-.45 5.8-1.11 11.51-1.96 17.112l31.62 4.75c.71-4.705 1.3-9.494 1.76-14.373 48.964 10.517 99.78 16.05 151.88 16.05 60.68 0 119.61-7.505 175.91-21.64 3.04 6.08 6.08 12.19 9.11 18.32l28.62-14.128c-2.11-4.27-4.235-8.55-6.37-12.84-23.005-46.124-47.498-93.01-68.67-133.534-15.39-29.466-29.01-55.53-39.046-75.58-26.826-53.618-53.637-119.47-68.28-182.368-8.78-37.705-13.128-74.098-10.308-105.627-15.31-6.28-26.69-11.8-31.968-15.59l-.01.015c-14.22-10.2-31.11-28.12-41.82-49.717-8.618-17.376-13.4-37.246-10.147-57.84 3.17-19.84 27.334-46.714 57.843-67.46v-.063c26.554-18.05 58.75-32.506 86.32-34.31 7.835-.51 16.31-1.008 23.99-1.45 33.45-1.95 50.243-2.93 84.475-11.42 10.88-2.697 26.19-6.56 43.53-11.09 2.364-40.7-5.947-87.596-21.04-133.234-22.004-66.53-58.68-131.25-97.627-170.21-12.543-12.55-28.17-22.79-45.9-30.933-16.88-7.753-35.64-13.615-55.436-17.782zm-10.658 178.553s6.77-42.485 58.39-33.977c27.96 4.654 37.89 29.833 37.89 29.833s-25.31-14.46-44.95-14.198c-40.33.53-51.35 18.342-51.35 18.342zm-240.45-18.802c48.49-19.853 72.11 11.298 72.11 11.298s-35.21-15.928-69.46 5.59c-34.19 21.477-32.92 43.452-32.92 43.452s-18.17-40.5 30.26-60.34zm296.5 95.4c0-6.677 2.68-12.694 7.01-17.02 4.37-4.37 10.42-7.074 17.1-7.074 6.73 0 12.79 2.7 17.15 7.05 4.33 4.33 7.01 10.36 7.01 17.05 0 6.74-2.7 12.81-7.07 17.18-4.33 4.33-10.37 7.01-17.1 7.01-6.68 0-12.72-2.69-17.05-7.03-4.36-4.37-7.07-10.43-7.07-17.16zm-268.42 51.27c0-8.535 3.41-16.22 8.93-21.738 5.55-5.55 13.25-8.982 21.81-8.982 8.51 0 16.18 3.415 21.7 8.934 5.55 5.55 8.98 13.25 8.98 21.78 0 8.53-3.44 16.23-8.98 21.79-5.52 5.52-13.19 8.93-21.71 8.93-8.55 0-16.26-3.43-21.82-8.99-5.52-5.52-8.93-13.2-8.93-21.74z\"/>\n            <path d=\"M1102.48 986.34zm390.074-64.347c-28.917-11.34-74.89-12.68-93.32-3.778-11.5 5.567-35.743 13.483-63.565 21.707-25.75 7.606-53.9 15.296-78.15 21.702-17.69 4.67-33.3 8.66-44.4 11.435-34.92 8.76-52.05 9.77-86.17 11.78-7.84.46-16.48.97-24.48 1.5-28.12 1.86-60.97 16.77-88.05 35.4v.06c-31.12 21.4-55.77 49.12-59.01 69.59-3.32 21.24 1.56 41.74 10.35 59.67 10.92 22.28 28.15 40.77 42.66 51.29l.01-.02c5.38 3.9 16.98 9.6 32.6 16.08 26.03 10.79 63.2 23.76 101.25 34.23 43.6 11.99 89.11 21.05 121.69 20.41 34.26-.69 77.73-10.52 114.54-24.67 22.15-8.52 42.21-18.71 56.88-29.58 17.85-13.22 28.7-28.42 28.4-44.74-.07-3.89-.72-7.63-1.97-11.21l-.02.01c-11.6-33.06-50.37-23.59-105.53-10.12-46.86 11.445-107.94 26.365-169.01 20.434-32.56-3.167-54.45-10.61-67.88-20.133-5.96-4.224-9.93-8.67-12.18-13.11-1.96-3.865-2.68-7.84-2.33-11.714.39-4.42 2.17-9.048 5.1-13.57l-.05-.03c7.86-12.118 23.082-9.72 43.93-6.43 25.91 4.08 58.2 9.172 99.013-3.61 39.63-12.378 87.76-29.9 131.184-47.39 42.405-17.08 80.08-34.078 100.74-46.18 25.46-14.87 37.57-29.428 40.59-42.866 2.725-12.152-.89-22.48-8.903-31.07-5.87-6.29-14.254-11.31-23.956-15.115z\"/>\n          </svg>\n        </a>\n      </li>\n      <li>\n        <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://stackoverflow.com/search?q=<?php echo urlencode(implode('\\\\', $name).' '.$message) ?>\" title=\"Search for help on Stack Overflow.\">\n          <!-- Stack Overflow icon by Picons.me, from https://www.iconfinder.com/Picons -->\n          <!-- Free for commercial use -->\n          <svg class=\"stackoverflow\" height=\"16\" viewBox=\"-1163 1657.697 56.693 56.693\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path d=\"M-1126.04 1689.533l-16.577-9.778 2.088-3.54 16.578 9.778zM-1127.386 1694.635l-18.586-4.996 1.068-3.97 18.586 4.995zM-1127.824 1700.137l-19.165-1.767.378-4.093 19.165 1.767zM-1147.263 1701.293h19.247v4.11h-19.247z\"/>\n            <path d=\"M-1121.458 1710.947s0 .96-.032.96v.016h-30.796s-.96 0-.96-.016h-.032v-20.03h3.288v16.805h25.244v-16.804h3.288v19.07zM-1130.667 1667.04l10.844 15.903-3.396 2.316-10.843-15.903zM-1118.313 1663.044l3.29 18.963-4.05.703-3.29-18.963z\"/>\n          </svg>\n        </a>\n      </li>\n    </ul>\n\n    <span id=\"plain-exception\"><?php echo $tpl->escape($plain_exception) ?></span>\n    <button id=\"copy-button\" class=\"rightButton clipboard\" data-clipboard-text=\"<?php echo $tpl->escape($plain_exception) ?>\" title=\"Copy exception details to clipboard\">\n      COPY\n    </button>\n    <button id=\"hide-error\" class=\"rightButton\" title=\"Hide error message\" onclick=\"document.getElementsByClassName('Whoops')[0].style.display = 'none';\">\n      HIDE\n    </button>\n  </div>\n</div>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php",
    "content": "<header>\n  <?php $tpl->render($header) ?>\n</header>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php",
    "content": "<?php\n/**\n* Layout template file for Whoops's pretty error output.\n*/\n?>\n<!DOCTYPE html><?php echo $preface; ?>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <meta name=\"robots\" content=\"noindex,nofollow\"/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\"/>\n    <title><?php echo $tpl->escape($page_title) ?></title>\n\n    <style><?php echo $stylesheet ?></style>\n  </head>\n  <body>\n\n    <div class=\"Whoops container\">\n      <div class=\"stack-container\">\n\n        <?php $tpl->render($panel_left_outer) ?>\n\n        <?php $tpl->render($panel_details_outer) ?>\n\n      </div>\n    </div>\n\n    <script><?php echo $prettify ?></script>\n    <script><?php echo $zepto ?></script>\n    <script><?php echo $clipboard ?></script>\n    <script><?php echo $javascript ?></script>\n  </body>\n</html>\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php",
    "content": "<?php $tpl->render($frame_code) ?>\n<?php $tpl->render($env_details) ?>"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php",
    "content": "<div class=\"panel details-container cf\">\n  <?php $tpl->render($panel_details) ?>\n</div>"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php",
    "content": "<?php \n$tpl->render($header_outer);\n$tpl->render($frames_description);\n$tpl->render($frames_container);\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php",
    "content": "<div class=\"panel left-panel cf <?php echo (!$has_frames ? 'empty' : '') ?>\">\n  <?php $tpl->render($panel_left) ?>\n</div>"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Run.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops;\n\nuse InvalidArgumentException;\nuse Whoops\\Exception\\ErrorException;\nuse Whoops\\Exception\\Inspector;\nuse Whoops\\Handler\\CallbackHandler;\nuse Whoops\\Handler\\Handler;\nuse Whoops\\Handler\\HandlerInterface;\nuse Whoops\\Util\\Misc;\nuse Whoops\\Util\\SystemFacade;\n\nfinal class Run implements RunInterface\n{\n    private $isRegistered;\n    private $allowQuit       = true;\n    private $sendOutput      = true;\n\n    /**\n     * @var integer|false\n     */\n    private $sendHttpCode    = 500;\n\n    /**\n     * @var HandlerInterface[]\n     */\n    private $handlerQueue = [];\n\n    private $silencedPatterns = [];\n\n    private $system;\n\n    public function __construct(SystemFacade $system = null)\n    {\n        $this->system = $system ?: new SystemFacade;\n    }\n\n    /**\n     * Prepends a handler to the start of the queue\n     *\n     * @throws InvalidArgumentException  If argument is not callable or instance of HandlerInterface\n     * @param  Callable|HandlerInterface $handler\n     * @return Run\n     * @deprecated use appendHandler and prependHandler instead\n     */\n    public function pushHandler($handler)\n    {\n        return $this->prependHandler($handler);\n    }\n\n    /**\n     * Appends a handler to the end of the queue\n     *\n     * @throws InvalidArgumentException  If argument is not callable or instance of HandlerInterface\n     * @param  Callable|HandlerInterface $handler\n     * @return Run\n     */\n    public function appendHandler($handler)\n    {\n        array_push($this->handlerQueue, $this->resolveHandler($handler));\n        return $this;\n    }\n\n    /**\n     * Prepends a handler to the start of the queue\n     *\n     * @throws InvalidArgumentException  If argument is not callable or instance of HandlerInterface\n     * @param  Callable|HandlerInterface $handler\n     * @return Run\n     */\n    public function prependHandler($handler)\n    {\n        array_unshift($this->handlerQueue, $this->resolveHandler($handler));\n        return $this;\n    }\n\n    /**\n     * Create a CallbackHandler from callable and throw if handler is invalid\n     *\n     * @throws InvalidArgumentException  If argument is not callable or instance of HandlerInterface\n     * @param Callable|HandlerInterface $handler\n     * @return HandlerInterface\n     */\n    private function resolveHandler($handler)\n    {\n        if (is_callable($handler)) {\n            $handler = new CallbackHandler($handler);\n        }\n\n        if (!$handler instanceof HandlerInterface) {\n            throw new InvalidArgumentException(\n                \"Argument to \" . __METHOD__ . \" must be a callable, or instance of \"\n                . \"Whoops\\\\Handler\\\\HandlerInterface\"\n            );\n        }\n\n        return $handler;\n    }\n\n    /**\n     * Removes the last handler in the queue and returns it.\n     * Returns null if there\"s nothing else to pop.\n     * @return null|HandlerInterface\n     */\n    public function popHandler()\n    {\n        return array_pop($this->handlerQueue);\n    }\n\n    /**\n     * Removes the first handler in the queue and returns it.\n     * Returns null if there\"s nothing else to shift.\n     * @return null|HandlerInterface\n     */\n    public function shiftHandler()\n    {\n        return array_shift($this->handlerQueue);\n    }\n\n    /**\n     * Returns an array with all handlers, in the\n     * order they were added to the queue.\n     * @return array\n     */\n    public function getHandlers()\n    {\n        return $this->handlerQueue;\n    }\n\n    /**\n     * Clears all handlers in the handlerQueue, including\n     * the default PrettyPage handler.\n     * @return Run\n     */\n    public function clearHandlers()\n    {\n        $this->handlerQueue = [];\n        return $this;\n    }\n\n    /**\n     * @param  \\Throwable $exception\n     * @return Inspector\n     */\n    private function getInspector($exception)\n    {\n        return new Inspector($exception);\n    }\n\n    /**\n     * Registers this instance as an error handler.\n     * @return Run\n     */\n    public function register()\n    {\n        if (!$this->isRegistered) {\n            // Workaround PHP bug 42098\n            // https://bugs.php.net/bug.php?id=42098\n            class_exists(\"\\\\Whoops\\\\Exception\\\\ErrorException\");\n            class_exists(\"\\\\Whoops\\\\Exception\\\\FrameCollection\");\n            class_exists(\"\\\\Whoops\\\\Exception\\\\Frame\");\n            class_exists(\"\\\\Whoops\\\\Exception\\\\Inspector\");\n\n            $this->system->setErrorHandler([$this, self::ERROR_HANDLER]);\n            $this->system->setExceptionHandler([$this, self::EXCEPTION_HANDLER]);\n            $this->system->registerShutdownFunction([$this, self::SHUTDOWN_HANDLER]);\n\n            $this->isRegistered = true;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Unregisters all handlers registered by this Whoops\\Run instance\n     * @return Run\n     */\n    public function unregister()\n    {\n        if ($this->isRegistered) {\n            $this->system->restoreExceptionHandler();\n            $this->system->restoreErrorHandler();\n\n            $this->isRegistered = false;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Should Whoops allow Handlers to force the script to quit?\n     * @param  bool|int $exit\n     * @return bool\n     */\n    public function allowQuit($exit = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->allowQuit;\n        }\n\n        return $this->allowQuit = (bool) $exit;\n    }\n\n    /**\n     * Silence particular errors in particular files\n     * @param  array|string $patterns List or a single regex pattern to match\n     * @param  int          $levels   Defaults to E_STRICT | E_DEPRECATED\n     * @return \\Whoops\\Run\n     */\n    public function silenceErrorsInPaths($patterns, $levels = 10240)\n    {\n        $this->silencedPatterns = array_merge(\n            $this->silencedPatterns,\n            array_map(\n                function ($pattern) use ($levels) {\n                    return [\n                        \"pattern\" => $pattern,\n                        \"levels\" => $levels,\n                    ];\n                },\n                (array) $patterns\n            )\n        );\n        return $this;\n    }\n\n\n    /**\n     * Returns an array with silent errors in path configuration\n     *\n     * @return array\n     */\n    public function getSilenceErrorsInPaths()\n    {\n        return $this->silencedPatterns;\n    }\n\n    /*\n     * Should Whoops send HTTP error code to the browser if possible?\n     * Whoops will by default send HTTP code 500, but you may wish to\n     * use 502, 503, or another 5xx family code.\n     *\n     * @param bool|int $code\n     * @return int|false\n     */\n    public function sendHttpCode($code = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->sendHttpCode;\n        }\n\n        if (!$code) {\n            return $this->sendHttpCode = false;\n        }\n\n        if ($code === true) {\n            $code = 500;\n        }\n\n        if ($code < 400 || 600 <= $code) {\n            throw new InvalidArgumentException(\n                 \"Invalid status code '$code', must be 4xx or 5xx\"\n            );\n        }\n\n        return $this->sendHttpCode = $code;\n    }\n\n    /**\n     * Should Whoops push output directly to the client?\n     * If this is false, output will be returned by handleException\n     * @param  bool|int $send\n     * @return bool\n     */\n    public function writeToOutput($send = null)\n    {\n        if (func_num_args() == 0) {\n            return $this->sendOutput;\n        }\n\n        return $this->sendOutput = (bool) $send;\n    }\n\n    /**\n     * Handles an exception, ultimately generating a Whoops error\n     * page.\n     *\n     * @param  \\Throwable $exception\n     * @return string     Output generated by handlers\n     */\n    public function handleException($exception)\n    {\n        // Walk the registered handlers in the reverse order\n        // they were registered, and pass off the exception\n        $inspector = $this->getInspector($exception);\n\n        // Capture output produced while handling the exception,\n        // we might want to send it straight away to the client,\n        // or return it silently.\n        $this->system->startOutputBuffering();\n        \n        // Just in case there are no handlers:\n        $handlerResponse = null;\n        $handlerContentType = null;\n\n        try {\n            foreach ($this->handlerQueue as $handler) {\n                $handler->setRun($this);\n                $handler->setInspector($inspector);\n                $handler->setException($exception);\n\n                // The HandlerInterface does not require an Exception passed to handle()\n                // and neither of our bundled handlers use it.\n                // However, 3rd party handlers may have already relied on this parameter,\n                // and removing it would be possibly breaking for users.\n                $handlerResponse = $handler->handle($exception);\n\n                // Collect the content type for possible sending in the headers.\n                $handlerContentType = method_exists($handler, 'contentType') ? $handler->contentType() : null;\n\n                if (in_array($handlerResponse, [Handler::LAST_HANDLER, Handler::QUIT])) {\n                    // The Handler has handled the exception in some way, and\n                    // wishes to quit execution (Handler::QUIT), or skip any\n                    // other handlers (Handler::LAST_HANDLER). If $this->allowQuit\n                    // is false, Handler::QUIT behaves like Handler::LAST_HANDLER\n                    break;\n                }\n            }\n\n            $willQuit = $handlerResponse == Handler::QUIT && $this->allowQuit();\n        } finally {\n            $output = $this->system->cleanOutputBuffer();\n        }\n\n        // If we're allowed to, send output generated by handlers directly\n        // to the output, otherwise, and if the script doesn't quit, return\n        // it so that it may be used by the caller\n        if ($this->writeToOutput()) {\n            // @todo Might be able to clean this up a bit better\n            if ($willQuit) {\n                // Cleanup all other output buffers before sending our output:\n                while ($this->system->getOutputBufferLevel() > 0) {\n                    $this->system->endOutputBuffering();\n                }\n\n                // Send any headers if needed:\n                if (Misc::canSendHeaders() && $handlerContentType) {\n                    header(\"Content-Type: {$handlerContentType}\");\n                }\n            }\n\n            $this->writeToOutputNow($output);\n        }\n\n        if ($willQuit) {\n            // HHVM fix for https://github.com/facebook/hhvm/issues/4055\n            $this->system->flushOutputBuffer();\n\n            $this->system->stopExecution(1);\n        }\n\n        return $output;\n    }\n\n    /**\n     * Converts generic PHP errors to \\ErrorException\n     * instances, before passing them off to be handled.\n     *\n     * This method MUST be compatible with set_error_handler.\n     *\n     * @param int    $level\n     * @param string $message\n     * @param string $file\n     * @param int    $line\n     *\n     * @return bool\n     * @throws ErrorException\n     */\n    public function handleError($level, $message, $file = null, $line = null)\n    {\n        if ($level & $this->system->getErrorReportingLevel()) {\n            foreach ($this->silencedPatterns as $entry) {\n                $pathMatches = (bool) preg_match($entry[\"pattern\"], $file);\n                $levelMatches = $level & $entry[\"levels\"];\n                if ($pathMatches && $levelMatches) {\n                    // Ignore the error, abort handling\n                    // See https://github.com/filp/whoops/issues/418\n                    return true;\n                }\n            }\n\n            // XXX we pass $level for the \"code\" param only for BC reasons.\n            // see https://github.com/filp/whoops/issues/267\n            $exception = new ErrorException($message, /*code*/ $level, /*severity*/ $level, $file, $line);\n            if ($this->canThrowExceptions) {\n                throw $exception;\n            } else {\n                $this->handleException($exception);\n            }\n            // Do not propagate errors which were already handled by Whoops.\n            return true;\n        }\n\n        // Propagate error to the next handler, allows error_get_last() to\n        // work on silenced errors.\n        return false;\n    }\n\n    /**\n     * Special case to deal with Fatal errors and the like.\n     */\n    public function handleShutdown()\n    {\n        // If we reached this step, we are in shutdown handler.\n        // An exception thrown in a shutdown handler will not be propagated\n        // to the exception handler. Pass that information along.\n        $this->canThrowExceptions = false;\n\n        $error = $this->system->getLastError();\n        if ($error && Misc::isLevelFatal($error['type'])) {\n            // If there was a fatal error,\n            // it was not handled in handleError yet.\n            $this->allowQuit = false;\n            $this->handleError(\n                $error['type'],\n                $error['message'],\n                $error['file'],\n                $error['line']\n            );\n        }\n    }\n\n    /**\n     * In certain scenarios, like in shutdown handler, we can not throw exceptions\n     * @var bool\n     */\n    private $canThrowExceptions = true;\n\n    /**\n     * Echo something to the browser\n     * @param  string $output\n     * @return $this\n     */\n    private function writeToOutputNow($output)\n    {\n        if ($this->sendHttpCode() && \\Whoops\\Util\\Misc::canSendHeaders()) {\n            $this->system->setHttpResponseCode(\n                $this->sendHttpCode()\n            );\n        }\n\n        echo $output;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/RunInterface.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops;\n\nuse InvalidArgumentException;\nuse Whoops\\Exception\\ErrorException;\nuse Whoops\\Handler\\HandlerInterface;\n\ninterface RunInterface\n{\n    const EXCEPTION_HANDLER = \"handleException\";\n    const ERROR_HANDLER     = \"handleError\";\n    const SHUTDOWN_HANDLER  = \"handleShutdown\";\n\n    /**\n     * Pushes a handler to the end of the stack\n     *\n     * @throws InvalidArgumentException  If argument is not callable or instance of HandlerInterface\n     * @param  Callable|HandlerInterface $handler\n     * @return Run\n     */\n    public function pushHandler($handler);\n\n    /**\n     * Removes the last handler in the stack and returns it.\n     * Returns null if there\"s nothing else to pop.\n     *\n     * @return null|HandlerInterface\n     */\n    public function popHandler();\n\n    /**\n     * Returns an array with all handlers, in the\n     * order they were added to the stack.\n     *\n     * @return array\n     */\n    public function getHandlers();\n\n    /**\n     * Clears all handlers in the handlerStack, including\n     * the default PrettyPage handler.\n     *\n     * @return Run\n     */\n    public function clearHandlers();\n\n    /**\n     * Registers this instance as an error handler.\n     *\n     * @return Run\n     */\n    public function register();\n\n    /**\n     * Unregisters all handlers registered by this Whoops\\Run instance\n     *\n     * @return Run\n     */\n    public function unregister();\n\n    /**\n     * Should Whoops allow Handlers to force the script to quit?\n     *\n     * @param  bool|int $exit\n     * @return bool\n     */\n    public function allowQuit($exit = null);\n\n    /**\n     * Silence particular errors in particular files\n     *\n     * @param  array|string $patterns List or a single regex pattern to match\n     * @param  int          $levels   Defaults to E_STRICT | E_DEPRECATED\n     * @return \\Whoops\\Run\n     */\n    public function silenceErrorsInPaths($patterns, $levels = 10240);\n\n    /**\n     * Should Whoops send HTTP error code to the browser if possible?\n     * Whoops will by default send HTTP code 500, but you may wish to\n     * use 502, 503, or another 5xx family code.\n     *\n     * @param bool|int $code\n     * @return int|false\n     */\n    public function sendHttpCode($code = null);\n\n    /**\n     * Should Whoops push output directly to the client?\n     * If this is false, output will be returned by handleException\n     *\n     * @param  bool|int $send\n     * @return bool\n     */\n    public function writeToOutput($send = null);\n\n    /**\n     * Handles an exception, ultimately generating a Whoops error\n     * page.\n     *\n     * @param  \\Throwable $exception\n     * @return string     Output generated by handlers\n     */\n    public function handleException($exception);\n\n    /**\n     * Converts generic PHP errors to \\ErrorException\n     * instances, before passing them off to be handled.\n     *\n     * This method MUST be compatible with set_error_handler.\n     *\n     * @param int    $level\n     * @param string $message\n     * @param string $file\n     * @param int    $line\n     *\n     * @return bool\n     * @throws ErrorException\n     */\n    public function handleError($level, $message, $file = null, $line = null);\n\n    /**\n     * Special case to deal with Fatal errors and the like.\n     */\n    public function handleShutdown();\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Util;\n\n/**\n * Used as output callable for Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper::dump()\n *\n * @see TemplateHelper::dump()\n */\nclass HtmlDumperOutput\n{\n    private $output;\n\n    public function __invoke($line, $depth)\n    {\n        // A negative depth means \"end of dump\"\n        if ($depth >= 0) {\n            // Adds a two spaces indentation to the line\n            $this->output .= str_repeat('  ', $depth) . $line . \"\\n\";\n        }\n    }\n\n    public function getOutput()\n    {\n        return $this->output;\n    }\n\n    public function clear()\n    {\n        $this->output = null;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Util/Misc.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Util;\n\nclass Misc\n{\n    /**\n     * Can we at this point in time send HTTP headers?\n     *\n     * Currently this checks if we are even serving an HTTP request,\n     * as opposed to running from a command line.\n     *\n     * If we are serving an HTTP request, we check if it's not too late.\n     *\n     * @return bool\n     */\n    public static function canSendHeaders()\n    {\n        return isset($_SERVER[\"REQUEST_URI\"]) && !headers_sent();\n    }\n\n    public static function isAjaxRequest()\n    {\n        return (\n            !empty($_SERVER['HTTP_X_REQUESTED_WITH'])\n            && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');\n    }\n\n    /**\n     * Check, if possible, that this execution was triggered by a command line.\n     * @return bool\n     */\n    public static function isCommandLine()\n    {\n        return PHP_SAPI == 'cli';\n    }\n\n    /**\n     * Translate ErrorException code into the represented constant.\n     *\n     * @param int $error_code\n     * @return string\n     */\n    public static function translateErrorCode($error_code)\n    {\n        $constants = get_defined_constants(true);\n        if (array_key_exists('Core', $constants)) {\n            foreach ($constants['Core'] as $constant => $value) {\n                if (substr($constant, 0, 2) == 'E_' && $value == $error_code) {\n                    return $constant;\n                }\n            }\n        }\n        return \"E_UNKNOWN\";\n    }\n    \n    /**\n     * Determine if an error level is fatal (halts execution)\n     *\n     * @param int $level\n     * @return bool\n     */\n    public static function isLevelFatal($level)\n    {\n        $errors = E_ERROR;\n        $errors |= E_PARSE;\n        $errors |= E_CORE_ERROR;\n        $errors |= E_CORE_WARNING;\n        $errors |= E_COMPILE_ERROR;\n        $errors |= E_COMPILE_WARNING;\n        return ($level & $errors) > 0;\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Util/SystemFacade.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Util;\n\nclass SystemFacade\n{\n    /**\n     * Turns on output buffering.\n     *\n     * @return bool\n     */\n    public function startOutputBuffering()\n    {\n        return ob_start();\n    }\n\n    /**\n     * @param callable $handler\n     * @param int      $types\n     *\n     * @return callable|null\n     */\n    public function setErrorHandler(callable $handler, $types = 'use-php-defaults')\n    {\n        // Since PHP 5.4 the constant E_ALL contains all errors (even E_STRICT)\n        if ($types === 'use-php-defaults') {\n            $types = E_ALL;\n        }\n        return set_error_handler($handler, $types);\n    }\n\n    /**\n     * @param callable $handler\n     *\n     * @return callable|null\n     */\n    public function setExceptionHandler(callable $handler)\n    {\n        return set_exception_handler($handler);\n    }\n\n    /**\n     * @return void\n     */\n    public function restoreExceptionHandler()\n    {\n        restore_exception_handler();\n    }\n\n    /**\n     * @return void\n     */\n    public function restoreErrorHandler()\n    {\n        restore_error_handler();\n    }\n\n    /**\n     * @param callable $function\n     *\n     * @return void\n     */\n    public function registerShutdownFunction(callable $function)\n    {\n        register_shutdown_function($function);\n    }\n\n    /**\n     * @return string|false\n     */\n    public function cleanOutputBuffer()\n    {\n        return ob_get_clean();\n    }\n\n    /**\n     * @return int\n     */\n    public function getOutputBufferLevel()\n    {\n        return ob_get_level();\n    }\n\n    /**\n     * @return bool\n     */\n    public function endOutputBuffering()\n    {\n        return ob_end_clean();\n    }\n\n    /**\n     * @return void\n     */\n    public function flushOutputBuffer()\n    {\n        flush();\n    }\n\n    /**\n     * @return int\n     */\n    public function getErrorReportingLevel()\n    {\n        return error_reporting();\n    }\n\n    /**\n     * @return array|null\n     */\n    public function getLastError()\n    {\n        return error_get_last();\n    }\n\n    /**\n     * @param int $httpCode\n     *\n     * @return int\n     */\n    public function setHttpResponseCode($httpCode)\n    {\n        return http_response_code($httpCode);\n    }\n\n    /**\n     * @param int $exitStatus\n     */\n    public function stopExecution($exitStatus)\n    {\n        exit($exitStatus);\n    }\n}\n"
  },
  {
    "path": "vendor/filp/whoops/src/Whoops/Util/TemplateHelper.php",
    "content": "<?php\n/**\n * Whoops - php errors for cool kids\n * @author Filipe Dobreira <http://github.com/filp>\n */\n\nnamespace Whoops\\Util;\n\nuse Symfony\\Component\\VarDumper\\Caster\\Caster;\nuse Symfony\\Component\\VarDumper\\Cloner\\AbstractCloner;\nuse Symfony\\Component\\VarDumper\\Cloner\\VarCloner;\nuse Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper;\nuse Whoops\\Exception\\Frame;\n\n/**\n * Exposes useful tools for working with/in templates\n */\nclass TemplateHelper\n{\n    /**\n     * An array of variables to be passed to all templates\n     * @var array\n     */\n    private $variables = [];\n\n    /**\n     * @var HtmlDumper\n     */\n    private $htmlDumper;\n\n    /**\n     * @var HtmlDumperOutput\n     */\n    private $htmlDumperOutput;\n\n    /**\n     * @var AbstractCloner\n     */\n    private $cloner;\n\n    /**\n     * @var string\n     */\n    private $applicationRootPath;\n\n    public function __construct()\n    {\n        // root path for ordinary composer projects\n        $this->applicationRootPath = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))));\n    }\n\n    /**\n     * Escapes a string for output in an HTML document\n     *\n     * @param  string $raw\n     * @return string\n     */\n    public function escape($raw)\n    {\n        $flags = ENT_QUOTES;\n\n        // HHVM has all constants defined, but only ENT_IGNORE\n        // works at the moment\n        if (defined(\"ENT_SUBSTITUTE\") && !defined(\"HHVM_VERSION\")) {\n            $flags |= ENT_SUBSTITUTE;\n        } else {\n            // This is for 5.3.\n            // The documentation warns of a potential security issue,\n            // but it seems it does not apply in our case, because\n            // we do not blacklist anything anywhere.\n            $flags |= ENT_IGNORE;\n        }\n\n        $raw = str_replace(chr(9), '    ', $raw);\n\n        return htmlspecialchars($raw, $flags, \"UTF-8\");\n    }\n\n    /**\n     * Escapes a string for output in an HTML document, but preserves\n     * URIs within it, and converts them to clickable anchor elements.\n     *\n     * @param  string $raw\n     * @return string\n     */\n    public function escapeButPreserveUris($raw)\n    {\n        $escaped = $this->escape($raw);\n        return preg_replace(\n            \"@([A-z]+?://([-\\w\\.]+[-\\w])+(:\\d+)?(/([\\w/_\\.#-]*(\\?\\S+)?[^\\.\\s])?)?)@\",\n            \"<a href=\\\"$1\\\" target=\\\"_blank\\\" rel=\\\"noreferrer noopener\\\">$1</a>\",\n            $escaped\n        );\n    }\n\n    /**\n     * Makes sure that the given string breaks on the delimiter.\n     *\n     * @param  string $delimiter\n     * @param  string $s\n     * @return string\n     */\n    public function breakOnDelimiter($delimiter, $s)\n    {\n        $parts = explode($delimiter, $s);\n        foreach ($parts as &$part) {\n            $part = '<span class=\"delimiter\">' . $part . '</span>';\n        }\n\n        return implode($delimiter, $parts);\n    }\n\n    /**\n     * Replace the part of the path that all files have in common.\n     *\n     * @param  string $path\n     * @return string\n     */\n    public function shorten($path)\n    {\n        if ($this->applicationRootPath != \"/\") {\n            $path = str_replace($this->applicationRootPath, '&hellip;', $path);\n        }\n\n        return $path;\n    }\n\n    private function getDumper()\n    {\n        if (!$this->htmlDumper && class_exists('Symfony\\Component\\VarDumper\\Cloner\\VarCloner')) {\n            $this->htmlDumperOutput = new HtmlDumperOutput();\n            // re-use the same var-dumper instance, so it won't re-render the global styles/scripts on each dump.\n            $this->htmlDumper = new HtmlDumper($this->htmlDumperOutput);\n\n            $styles = [\n                'default' => 'color:#FFFFFF; line-height:normal; font:12px \"Inconsolata\", \"Fira Mono\", \"Source Code Pro\", Monaco, Consolas, \"Lucida Console\", monospace !important; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: normal',\n                'num' => 'color:#BCD42A',\n                'const' => 'color: #4bb1b1;',\n                'str' => 'color:#BCD42A',\n                'note' => 'color:#ef7c61',\n                'ref' => 'color:#A0A0A0',\n                'public' => 'color:#FFFFFF',\n                'protected' => 'color:#FFFFFF',\n                'private' => 'color:#FFFFFF',\n                'meta' => 'color:#FFFFFF',\n                'key' => 'color:#BCD42A',\n                'index' => 'color:#ef7c61',\n            ];\n            $this->htmlDumper->setStyles($styles);\n        }\n\n        return $this->htmlDumper;\n    }\n\n    /**\n     * Format the given value into a human readable string.\n     *\n     * @param  mixed $value\n     * @return string\n     */\n    public function dump($value)\n    {\n        $dumper = $this->getDumper();\n\n        if ($dumper) {\n            // re-use the same DumpOutput instance, so it won't re-render the global styles/scripts on each dump.\n            // exclude verbose information (e.g. exception stack traces)\n            if (class_exists('Symfony\\Component\\VarDumper\\Caster\\Caster')) {\n                $cloneVar = $this->getCloner()->cloneVar($value, Caster::EXCLUDE_VERBOSE);\n                // Symfony VarDumper 2.6 Caster class dont exist.\n            } else {\n                $cloneVar = $this->getCloner()->cloneVar($value);\n            }\n\n            $dumper->dump(\n                $cloneVar,\n                $this->htmlDumperOutput\n            );\n\n            $output = $this->htmlDumperOutput->getOutput();\n            $this->htmlDumperOutput->clear();\n\n            return $output;\n        }\n\n        return htmlspecialchars(print_r($value, true));\n    }\n\n    /**\n     * Format the args of the given Frame as a human readable html string\n     *\n     * @param  Frame $frame\n     * @return string the rendered html\n     */\n    public function dumpArgs(Frame $frame)\n    {\n        // we support frame args only when the optional dumper is available\n        if (!$this->getDumper()) {\n            return '';\n        }\n\n        $html = '';\n        $numFrames = count($frame->getArgs());\n\n        if ($numFrames > 0) {\n            $html = '<ol class=\"linenums\">';\n            foreach ($frame->getArgs() as $j => $frameArg) {\n                $html .= '<li>'. $this->dump($frameArg) .'</li>';\n            }\n            $html .= '</ol>';\n        }\n\n        return $html;\n    }\n\n    /**\n     * Convert a string to a slug version of itself\n     *\n     * @param  string $original\n     * @return string\n     */\n    public function slug($original)\n    {\n        $slug = str_replace(\" \", \"-\", $original);\n        $slug = preg_replace('/[^\\w\\d\\-\\_]/i', '', $slug);\n        return strtolower($slug);\n    }\n\n    /**\n     * Given a template path, render it within its own scope. This\n     * method also accepts an array of additional variables to be\n     * passed to the template.\n     *\n     * @param string $template\n     * @param array  $additionalVariables\n     */\n    public function render($template, array $additionalVariables = null)\n    {\n        $variables = $this->getVariables();\n\n        // Pass the helper to the template:\n        $variables[\"tpl\"] = $this;\n\n        if ($additionalVariables !== null) {\n            $variables = array_replace($variables, $additionalVariables);\n        }\n\n        call_user_func(function () {\n            extract(func_get_arg(1));\n            require func_get_arg(0);\n        }, $template, $variables);\n    }\n\n    /**\n     * Sets the variables to be passed to all templates rendered\n     * by this template helper.\n     *\n     * @param array $variables\n     */\n    public function setVariables(array $variables)\n    {\n        $this->variables = $variables;\n    }\n\n    /**\n     * Sets a single template variable, by its name:\n     *\n     * @param string $variableName\n     * @param mixed  $variableValue\n     */\n    public function setVariable($variableName, $variableValue)\n    {\n        $this->variables[$variableName] = $variableValue;\n    }\n\n    /**\n     * Gets a single template variable, by its name, or\n     * $defaultValue if the variable does not exist\n     *\n     * @param  string $variableName\n     * @param  mixed  $defaultValue\n     * @return mixed\n     */\n    public function getVariable($variableName, $defaultValue = null)\n    {\n        return isset($this->variables[$variableName]) ?\n            $this->variables[$variableName] : $defaultValue;\n    }\n\n    /**\n     * Unsets a single template variable, by its name\n     *\n     * @param string $variableName\n     */\n    public function delVariable($variableName)\n    {\n        unset($this->variables[$variableName]);\n    }\n\n    /**\n     * Returns all variables for this helper\n     *\n     * @return array\n     */\n    public function getVariables()\n    {\n        return $this->variables;\n    }\n\n    /**\n     * Set the cloner used for dumping variables.\n     *\n     * @param AbstractCloner $cloner\n     */\n    public function setCloner($cloner)\n    {\n        $this->cloner = $cloner;\n    }\n\n    /**\n     * Get the cloner used for dumping variables.\n     *\n     * @return AbstractCloner\n     */\n    public function getCloner()\n    {\n        if (!$this->cloner) {\n            $this->cloner = new VarCloner();\n        }\n        return $this->cloner;\n    }\n\n    /**\n     * Set the application root path.\n     *\n     * @param string $applicationRootPath\n     */\n    public function setApplicationRootPath($applicationRootPath)\n    {\n        $this->applicationRootPath = $applicationRootPath;\n    }\n\n    /**\n     * Return the application root path.\n     *\n     * @return string\n     */\n    public function getApplicationRootPath()\n    {\n        return $this->applicationRootPath;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/README.md",
    "content": "<p align=\"center\"><a href=\"https://laravel.com\" target=\"_blank\"><img src=\"https://laravel.com/assets/img/components/logo-laravel.svg\"></a></p>\n\n<p align=\"center\">\n<a href=\"https://travis-ci.org/laravel/framework\"><img src=\"https://travis-ci.org/laravel/framework.svg\" alt=\"Build Status\"></a>\n<a href=\"https://packagist.org/packages/laravel/framework\"><img src=\"https://poser.pugx.org/laravel/framework/d/total.svg\" alt=\"Total Downloads\"></a>\n<a href=\"https://packagist.org/packages/laravel/framework\"><img src=\"https://poser.pugx.org/laravel/framework/v/stable.svg\" alt=\"Latest Stable Version\"></a>\n<a href=\"https://packagist.org/packages/laravel/framework\"><img src=\"https://poser.pugx.org/laravel/framework/license.svg\" alt=\"License\"></a>\n</p>\n\n## About Laravel\n\n> **Note:** This repository contains the core code of the Laravel framework. If you want to build an application using Laravel 5, visit the main [Laravel repository](https://github.com/laravel/laravel).\n\nLaravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as:\n\n- [Simple, fast routing engine](https://laravel.com/docs/routing).\n- [Powerful dependency injection container](https://laravel.com/docs/container).\n- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.\n- Database agnostic [schema migrations](https://laravel.com/docs/migrations).\n- [Robust background job processing](https://laravel.com/docs/queues).\n- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).\n\nLaravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation gives you a complete toolset required to build any application with which you are tasked.\n\n## Learning Laravel\n\nLaravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is in-depth and complete, making it a breeze to get started learning the framework.\n\nIf you're not in the mood to read, [Laracasts](https://laracasts.com) contains over 1100 video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.\n\n## Contributing\n\nThank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).\n\n## Code of Conduct\n\nIn order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Security Vulnerabilities\n\nPlease review [our security policy](https://github.com/laravel/framework/security/policy) on how to report security vulnerabilities.\n\n## License\n\nThe Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n"
  },
  {
    "path": "vendor/laravel/framework/SECURITY.md",
    "content": "# Security Policy\n\n**PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY, [SEE BELOW](#reporting-a-vulnerability).**\n\n## Supported Versions\n\nVersion | Security Fixes Until\n--- | ---\n5.8\t| February 26th, 2020\n5.7\t| September 4th, 2019\n5.6\t| February 7th, 2019\n5.5 (LTS) | August 30th, 2020\n5.4\t| January 24th, 2018\n5.3\t| August 23rd, 2017\n5.2\t| December 21st, 2016\n5.1 (LTS) | June 9th, 2018\n5.0\t| February 4th, 2016\n\n## Reporting a Vulnerability\n\nIf you discover a security vulnerability within Laravel, please send an email to Taylor Otwell at taylor@laravel.com. All security vulnerabilities will be promptly addressed.\n\n### Public PGP Key\n\n```\n-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: OpenPGP v2.0.8\nComment: https://sela.io/pgp/\n\nxsFNBFugFSQBEACxEKhIY9IoJzcouVTIYKJfWFGvwFgbRjQWBiH3QdHId5vCrbWo\ns2l+4Rv03gMG+yHLJ3rWElnNdRaNdQv59+lShrZF7Bvu7Zvc0mMNmFOM/mQ/K2Lt\nOK/8bh6iwNNbEuyOhNQlarEy/w8hF8Yf55hBeu/rajGtcyURJDloQ/vNzcx4RWGK\nG3CLr8ka7zPYIjIFUvHLt27mcYFF9F4/G7b4HKpn75ICKC4vPoQSaYNAHlHQBLFb\nJg/WPl93SySHLugU5F58sICs+fBZadXYQG5dWmbaF5OWB1K2XgRs45BQaBzf/8oS\nqq0scN8wVhAdBeYlVFf0ImDOxGlZ2suLK1BKJboR6zCIkBAwufKss4NV1R9KSUMv\nYGn3mq13PGme0QoIkvQkua5VjTwWfQx7wFDxZ3VQSsjIlbVyRL/Ac/hq71eAmiIR\nt6ZMNMPFpuSwBfYimrXqqb4EOffrfsTzRenG1Cxm4jNZRzX/6P4an7F/euoqXeXZ\nh37TiC7df+eHKcBI4mL+qOW4ibBqg8WwWPJ+jvuhANyQpRVzf3NNEOwJYCNbQPM/\nPbqYvMruAH+gg7uyu9u0jX3o/yLSxJMV7kF4x/SCDuBKIxSSUI4cgbjIlnxWLXZC\nwl7KW4xAKkerO3wgIPnxNfxQoiYiEKA1c3PShWRA0wHIMt3rVRJxwGM4CwARAQAB\nzRJ0YXlsb3JAbGFyYXZlbC5jb23CwXAEEwEKABoFAlugFSQCGy8DCwkHAxUKCAIe\nAQIXgAIZAQAKCRDKAI7r/Ml7Zo0SD/9zwu9K87rbqXbvZ3TVu7TnN+z7mPvVBzl+\nSFEK360TYq8a4GosghZuGm4aNEyZ90CeUjPQwc5fHwa26tIwqgLRppsG21B/mZwu\n0m8c5RaBFRFX/mCTEjlpvBkOwMJZ8f05nNdaktq6W98DbMN03neUwnpWlNSLeoNI\nu4KYZmJopNFLEax5WGaaDpmqD1J+WDr/aPHx39MUAg2ZVuC3Gj/IjYZbD1nCh0xD\na09uDODje8a9uG33cKRBcKKPRLZjWEt5SWReLx0vsTuqJSWhCybHRBl9BQTc/JJR\ngJu5V4X3f1IYMTNRm9GggxcXrlOAiDCjE2J8ZTUt0cSxedQFnNyGfKxe/l94oTFP\nwwFHbdKhsSDZ1OyxPNIY5OHlMfMvvJaNbOw0xPPAEutPwr1aqX9sbgPeeiJwAdyw\nmPw2x/wNQvKJITRv6atw56TtLxSevQIZGPHCYTSlsIoi9jqh9/6vfq2ruMDYItCq\n+8uzei6TyH6w+fUpp/uFmcwZdrDwgNVqW+Ptu+pD2WmthqESF8UEQVoOv7OPgA5E\nofOMaeH2ND74r2UgcXjPxZuUp1RkhHE2jJeiuLtbvOgrWwv3KOaatyEbVl+zHA1e\n1RHdJRJRPK+S7YThxxduqfOBX7E03arbbhHdS1HKhPwMc2e0hNnQDoNxQcv0GQp4\n2Y6UyCRaus7ATQRboBUkAQgA0h5j3EO2HNvp8YuT1t/VF00uUwbQaz2LIoZogqgC\n14Eb77diuIPM9MnuG7bEOnNtPVMFXxI5UYBIlzhLMxf7pfbrsoR4lq7Ld+7KMzdm\neREqJRgUNfjZhtRZ9Z+jiFPr8AGpYxwmJk4v387uQGh1GC9JCc3CCLJoI62I9t/1\nK2b25KiOzW/FVZ/vYFj1WbISRd5GqS8SEFh4ifU79LUlJ/nEsFv4JxAXN9RqjU0e\nH4S/m1Nb24UCtYAv1JKymcf5O0G7kOzvI0w06uKxk0hNwspjDcOebD8Vv9IdYtGl\n0bn7PpBlVO1Az3s8s6Xoyyw+9Us+VLNtVka3fcrdaV/n0wARAQABwsKEBBgBCgAP\nBQJboBUkBQkPCZwAAhsuASkJEMoAjuv8yXtmwF0gBBkBCgAGBQJboBUkAAoJEA1I\n8aTLtYHmjpIH/A1ZKwTGetHFokJxsd2omvbqv+VtpAjnUbvZEi5g3yZXn+dHJV+K\nUR/DNlfGxLWEcY6datJ3ziNzzD5u8zcPp2CqeTlCxOky8F74FjEL9tN/EqUbvvmR\ntd2LXsSFjHnLJRK5lYfZ3rnjKA5AjqC9MttILBovY2rI7lyVt67kbS3hMHi8AZl8\nEgihnHRJxGZjEUxyTxcB13nhfjAvxQq58LOj5754Rpe9ePSKbT8DNMjHbGpLrESz\ncmyn0VzDMLfxg8AA9uQFMwdlKqve7yRZXzeqvy08AatUpJaL7DsS4LKOItwvBub6\ntHbCE3mqrUw5lSNyUahO3vOcMAHnF7fd4W++eA//WIQKnPX5t3CwCedKn8Qkb3Ow\noj8xUNl2T6kEtQJnO85lKBFXaMOUykopu6uB9EEXEr0ShdunOKX/UdDbkv46F2AB\n7TtltDSLB6s/QeHExSb8Jo3qra86JkDUutWdJxV7DYFUttBga8I0GqdPu4yRRoc/\n0irVXsdDY9q7jz6l7fw8mSeJR96C0Puhk70t4M1Vg/tu/ONRarXQW7fJ8kl21PcD\nUKNWWa242gji/+GLRI8AIpGMsBiX7pHhqmMMth3u7+ne5BZGGJz0uX+CzWboOHyq\nkWgfY4a62t3hM0vwnUkl/D7VgSGy4LiKQrapd3LvU2uuEfFsMu3CDicZBRXPqoXj\nPBjkkPKhwUTNlwEQrGF3QsZhNe0M9ptM2fC34qtxZtMIMB2NLvE4S621rmQ05oQv\nsT0B9WgUL3GYRKdx700+ojHEuwZ79bcLgo1dezvkfPtu/++2CXtieFthDlWHy8x5\nXJJjI1pDfGO+BgX0rS3QrQEYlF/uPQynKwxe6cGI62eZ0ug0hNrPvKEcfMLVqBQv\nw4VH6iGp9yNKMUOgAECLCs4YCxK+Eka9Prq/Gh4wuqjWiX8m66z8YvKf27sFL3fR\nOwGaz3LsnRSxbk/8oSiZuOVLfn44XRcxsHebteZat23lwD93oq54rtKnlJgmZHJY\n4vMgk1jpS4laGnvhZj7OwE0EW6AVJAEIAKJSrUvXRyK3XQnLp3Kfj82uj0St8Dt2\nh8BMeVbrAbg38wCN8XQZzVR9+bRZRR+aCzpKSqwhEQVtH7gdKgfdNdGNhG2DFAVk\nSihMhQz190FKttUZgwY00enzD7uaaA5VwNAZzRIr8skwiASB7UoO+lIhrAYgcQCA\nLpwCSMrUNB3gY1IVa2xi9FljEbS2uMABfOsTfl7z4L4T4DRv/ovDf+ihyZOXsXiH\nRVoUTIpN8ZILCZiiKubE1sMj4fSQwCs06UyDy17HbOG5/dO9awR/LHW53O3nZCxE\nJbCqr5iHa2MdHMC12+luxWJKD9DbVB01LiiPZCTkuKUDswCyi7otpVEAEQEAAcLC\nhAQYAQoADwUCW6AVJAUJDwmcAAIbLgEpCRDKAI7r/Ml7ZsBdIAQZAQoABgUCW6AV\nJAAKCRDxrCjKN7eORjt2B/9EnKVJ9lwB1JwXcQp6bZgJ21r6ghyXBssv24N9UF+v\n5QDz/tuSkTsKK1UoBrBDEinF/xTP2z+xXIeyP4c3mthMHsYdMl7AaGpcCwVJiL62\nfZvd+AiYNX3C+Bepwnwoziyhx4uPaqoezSEMD8G2WQftt6Gqttmm0Di5RVysCECF\nEyhkHwvCcbpXb5Qq+4XFzCUyaIZuGpe+oeO7U8B1CzOC16hEUu0Uhbk09Xt6dSbS\nZERoxFjrGU+6bk424MkZkKvNS8FdTN2s3kQuHoNmhbMY+fRzKX5JNrcQ4dQQufiB\nzFcc2Ba0JVU0nYAMftTeT5ALakhwSqr3AcdD2avJZp3EYfYP/3smPGTeg1cDJV3E\nWIlCtSlhbwviUjvWEWJUE+n9MjhoUNU0TJtHIliUYUajKMG/At5wJZTXJaKVUx32\nUCWr4ioKfSzlbp1ngBuFlvU7LgZRcKbBZWvKj/KRYpxpfvPyPElmegCjAk6oiZYV\nLOV+jFfnMkk9PnR91ZZfTNx/bK+BwjOnO+g7oE8V2g2bA90vHdeSUHR52SnaVN/b\n9ytt07R0f+YtyKojuPmlNsbyAaUYUtJ1o+XNCwdVxzarYEuUabhAfDiVTu9n8wTr\nYVvnriSFOjNvOY9wdLAa56n7/qM8bzuGpoBS5SilXgJvITvQfWPvg7I9C3QhwK1S\nF6B1uquQGbBSze2wlnMbKXmhyGLlv9XpOqpkkejQo3o58B+Sqj4B8DuYixSjoknr\npRbj8gqgqBKlcpf1wD5X9qCrl9vq19asVOHaKhiFZGxZIVbBpBOdvAKaMj4p/uln\nyklN3YFIfgmGPYbL0elvXVn7XfvwSV1mCQV5LtMbLHsFf0VsA16UsG8A/tLWtwgt\n0antzftRHXb+DI4qr+qEYKFkv9F3oCOXyH4QBhPA42EzKqhMXByEkEK9bu6skioL\nmHhDQ7yHjTWcxstqQjkUQ0T/IF9ls+Sm5u7rVXEifpyI7MCb+76kSCDawesvInKt\nWBGOG/qJGDlNiqBYYt2xNqzHCJoC\n=zXOv\n-----END PGP PUBLIC KEY BLOCK-----\n```\n"
  },
  {
    "path": "vendor/laravel/framework/composer.json",
    "content": "{\n    \"name\": \"laravel/framework\",\n    \"description\": \"The Laravel Framework.\",\n    \"keywords\": [\"framework\", \"laravel\"],\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"ext-mbstring\": \"*\",\n        \"ext-openssl\": \"*\",\n        \"doctrine/inflector\": \"^1.1\",\n        \"dragonmantank/cron-expression\": \"^2.0\",\n        \"egulias/email-validator\": \"^2.0\",\n        \"erusev/parsedown\": \"^1.7\",\n        \"league/flysystem\": \"^1.0.8\",\n        \"monolog/monolog\": \"^1.12\",\n        \"nesbot/carbon\": \"^1.26.3 || ^2.0\",\n        \"opis/closure\": \"^3.1\",\n        \"psr/container\": \"^1.0\",\n        \"psr/simple-cache\": \"^1.0\",\n        \"ramsey/uuid\": \"^3.7\",\n        \"swiftmailer/swiftmailer\": \"^6.0\",\n        \"symfony/console\": \"^4.2\",\n        \"symfony/debug\": \"^4.2\",\n        \"symfony/finder\": \"^4.2\",\n        \"symfony/http-foundation\": \"^4.2\",\n        \"symfony/http-kernel\": \"^4.2\",\n        \"symfony/process\": \"^4.2\",\n        \"symfony/routing\": \"^4.2\",\n        \"symfony/var-dumper\": \"^4.2\",\n        \"tijsverkoyen/css-to-inline-styles\": \"^2.2.1\",\n        \"vlucas/phpdotenv\": \"^3.3\"\n    },\n    \"replace\": {\n        \"illuminate/auth\": \"self.version\",\n        \"illuminate/broadcasting\": \"self.version\",\n        \"illuminate/bus\": \"self.version\",\n        \"illuminate/cache\": \"self.version\",\n        \"illuminate/config\": \"self.version\",\n        \"illuminate/console\": \"self.version\",\n        \"illuminate/container\": \"self.version\",\n        \"illuminate/contracts\": \"self.version\",\n        \"illuminate/cookie\": \"self.version\",\n        \"illuminate/database\": \"self.version\",\n        \"illuminate/encryption\": \"self.version\",\n        \"illuminate/events\": \"self.version\",\n        \"illuminate/filesystem\": \"self.version\",\n        \"illuminate/hashing\": \"self.version\",\n        \"illuminate/http\": \"self.version\",\n        \"illuminate/log\": \"self.version\",\n        \"illuminate/mail\": \"self.version\",\n        \"illuminate/notifications\": \"self.version\",\n        \"illuminate/pagination\": \"self.version\",\n        \"illuminate/pipeline\": \"self.version\",\n        \"illuminate/queue\": \"self.version\",\n        \"illuminate/redis\": \"self.version\",\n        \"illuminate/routing\": \"self.version\",\n        \"illuminate/session\": \"self.version\",\n        \"illuminate/support\": \"self.version\",\n        \"illuminate/translation\": \"self.version\",\n        \"illuminate/validation\": \"self.version\",\n        \"illuminate/view\": \"self.version\"\n    },\n    \"conflict\": {\n        \"tightenco/collect\": \"<5.5.33\"\n    },\n    \"require-dev\": {\n        \"aws/aws-sdk-php\": \"^3.0\",\n        \"doctrine/dbal\": \"^2.6\",\n        \"filp/whoops\": \"^2.1.4\",\n        \"guzzlehttp/guzzle\": \"^6.3\",\n        \"league/flysystem-cached-adapter\": \"^1.0\",\n        \"mockery/mockery\": \"^1.0\",\n        \"moontoast/math\": \"^1.1\",\n        \"orchestra/testbench-core\": \"3.8.*\",\n        \"pda/pheanstalk\": \"^4.0\",\n        \"phpunit/phpunit\": \"^7.5|^8.0\",\n        \"predis/predis\": \"^1.1.1\",\n        \"symfony/css-selector\": \"^4.2\",\n        \"symfony/dom-crawler\": \"^4.2\",\n        \"true/punycode\": \"^2.1\"\n    },\n    \"autoload\": {\n        \"files\": [\n            \"src/Illuminate/Foundation/helpers.php\",\n            \"src/Illuminate/Support/helpers.php\"\n        ],\n        \"psr-4\": {\n            \"Illuminate\\\\\": \"src/Illuminate/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"files\": [\n            \"tests/Database/stubs/MigrationCreatorFakeMigration.php\"\n        ],\n        \"psr-4\": {\n            \"Illuminate\\\\Tests\\\\\": \"tests/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"ext-pcntl\": \"Required to use all features of the queue worker.\",\n        \"ext-posix\": \"Required to use all features of the queue worker.\",\n        \"aws/aws-sdk-php\": \"Required to use the SQS queue driver and SES mail driver (^3.0).\",\n        \"doctrine/dbal\": \"Required to rename columns and drop SQLite columns (^2.6).\",\n        \"filp/whoops\": \"Required for friendly error pages in development (^2.1.4).\",\n        \"fzaninotto/faker\": \"Required to use the eloquent factory builder (^1.4).\",\n        \"guzzlehttp/guzzle\": \"Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (^6.0).\",\n        \"laravel/tinker\": \"Required to use the tinker console command (^1.0).\",\n        \"league/flysystem-aws-s3-v3\": \"Required to use the Flysystem S3 driver (^1.0).\",\n        \"league/flysystem-cached-adapter\": \"Required to use the Flysystem cache (^1.0).\",\n        \"league/flysystem-rackspace\": \"Required to use the Flysystem Rackspace driver (^1.0).\",\n        \"league/flysystem-sftp\": \"Required to use the Flysystem SFTP driver (^1.0).\",\n        \"moontoast/math\": \"Required to use ordered UUIDs (^1.1).\",\n        \"nexmo/client\": \"Required to use the Nexmo transport (^1.0).\",\n        \"pda/pheanstalk\": \"Required to use the beanstalk queue driver (^4.0).\",\n        \"predis/predis\": \"Required to use the redis cache and queue drivers (^1.0).\",\n        \"pusher/pusher-php-server\": \"Required to use the Pusher broadcast driver (^3.0).\",\n        \"symfony/css-selector\": \"Required to use some of the crawler integration testing tools (^4.2).\",\n        \"symfony/dom-crawler\": \"Required to use most of the crawler integration testing tools (^4.2).\",\n        \"symfony/psr-http-message-bridge\": \"Required to use PSR-7 bridging features (^1.1).\",\n        \"wildbit/swiftmailer-postmark\": \"Required to use Postmark mail driver (^3.0).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\",\n    \"prefer-stable\": true\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Access/AuthorizationException.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Access;\n\nuse Exception;\n\nclass AuthorizationException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Access;\n\nuse Exception;\nuse ReflectionClass;\nuse ReflectionFunction;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Auth\\Access\\Gate as GateContract;\n\nclass Gate implements GateContract\n{\n    use HandlesAuthorization;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The user resolver callable.\n     *\n     * @var callable\n     */\n    protected $userResolver;\n\n    /**\n     * All of the defined abilities.\n     *\n     * @var array\n     */\n    protected $abilities = [];\n\n    /**\n     * All of the defined policies.\n     *\n     * @var array\n     */\n    protected $policies = [];\n\n    /**\n     * All of the registered before callbacks.\n     *\n     * @var array\n     */\n    protected $beforeCallbacks = [];\n\n    /**\n     * All of the registered after callbacks.\n     *\n     * @var array\n     */\n    protected $afterCallbacks = [];\n\n    /**\n     * All of the defined abilities using class@method notation.\n     *\n     * @var array\n     */\n    protected $stringCallbacks = [];\n\n    /**\n     * The callback to be used to guess policy names.\n     *\n     * @var callable|null\n     */\n    protected $guessPolicyNamesUsingCallback;\n\n    /**\n     * Create a new gate instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @param  callable  $userResolver\n     * @param  array  $abilities\n     * @param  array  $policies\n     * @param  array  $beforeCallbacks\n     * @param  array  $afterCallbacks\n     * @param  callable|null  $guessPolicyNamesUsingCallback\n     * @return void\n     */\n    public function __construct(Container $container, callable $userResolver, array $abilities = [],\n                                array $policies = [], array $beforeCallbacks = [], array $afterCallbacks = [],\n                                callable $guessPolicyNamesUsingCallback = null)\n    {\n        $this->policies = $policies;\n        $this->container = $container;\n        $this->abilities = $abilities;\n        $this->userResolver = $userResolver;\n        $this->afterCallbacks = $afterCallbacks;\n        $this->beforeCallbacks = $beforeCallbacks;\n        $this->guessPolicyNamesUsingCallback = $guessPolicyNamesUsingCallback;\n    }\n\n    /**\n     * Determine if a given ability has been defined.\n     *\n     * @param  string|array  $ability\n     * @return bool\n     */\n    public function has($ability)\n    {\n        $abilities = is_array($ability) ? $ability : func_get_args();\n\n        foreach ($abilities as $ability) {\n            if (! isset($this->abilities[$ability])) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Define a new ability.\n     *\n     * @param  string  $ability\n     * @param  callable|string  $callback\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function define($ability, $callback)\n    {\n        if (is_callable($callback)) {\n            $this->abilities[$ability] = $callback;\n        } elseif (is_string($callback)) {\n            $this->stringCallbacks[$ability] = $callback;\n\n            $this->abilities[$ability] = $this->buildAbilityCallback($ability, $callback);\n        } else {\n            throw new InvalidArgumentException(\"Callback must be a callable or a 'Class@method' string.\");\n        }\n\n        return $this;\n    }\n\n    /**\n     * Define abilities for a resource.\n     *\n     * @param  string  $name\n     * @param  string  $class\n     * @param  array|null   $abilities\n     * @return $this\n     */\n    public function resource($name, $class, array $abilities = null)\n    {\n        $abilities = $abilities ?: [\n            'viewAny' => 'viewAny',\n            'view'    => 'view',\n            'create'  => 'create',\n            'update'  => 'update',\n            'delete'  => 'delete',\n        ];\n\n        foreach ($abilities as $ability => $method) {\n            $this->define($name.'.'.$ability, $class.'@'.$method);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Create the ability callback for a callback string.\n     *\n     * @param  string  $ability\n     * @param  string  $callback\n     * @return \\Closure\n     */\n    protected function buildAbilityCallback($ability, $callback)\n    {\n        return function () use ($ability, $callback) {\n            if (Str::contains($callback, '@')) {\n                [$class, $method] = Str::parseCallback($callback);\n            } else {\n                $class = $callback;\n            }\n\n            $policy = $this->resolvePolicy($class);\n\n            $arguments = func_get_args();\n\n            $user = array_shift($arguments);\n\n            $result = $this->callPolicyBefore(\n                $policy, $user, $ability, $arguments\n            );\n\n            if (! is_null($result)) {\n                return $result;\n            }\n\n            return isset($method)\n                    ? $policy->{$method}(...func_get_args())\n                    : $policy(...func_get_args());\n        };\n    }\n\n    /**\n     * Define a policy class for a given class type.\n     *\n     * @param  string  $class\n     * @param  string  $policy\n     * @return $this\n     */\n    public function policy($class, $policy)\n    {\n        $this->policies[$class] = $policy;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to run before all Gate checks.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function before(callable $callback)\n    {\n        $this->beforeCallbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to run after all Gate checks.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function after(callable $callback)\n    {\n        $this->afterCallbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Determine if the given ability should be granted for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function allows($ability, $arguments = [])\n    {\n        return $this->check($ability, $arguments);\n    }\n\n    /**\n     * Determine if the given ability should be denied for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function denies($ability, $arguments = [])\n    {\n        return ! $this->allows($ability, $arguments);\n    }\n\n    /**\n     * Determine if all of the given abilities should be granted for the current user.\n     *\n     * @param  iterable|string  $abilities\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function check($abilities, $arguments = [])\n    {\n        return collect($abilities)->every(function ($ability) use ($arguments) {\n            try {\n                return (bool) $this->raw($ability, $arguments);\n            } catch (AuthorizationException $e) {\n                return false;\n            }\n        });\n    }\n\n    /**\n     * Determine if any one of the given abilities should be granted for the current user.\n     *\n     * @param  iterable|string  $abilities\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function any($abilities, $arguments = [])\n    {\n        return collect($abilities)->contains(function ($ability) use ($arguments) {\n            return $this->check($ability, $arguments);\n        });\n    }\n\n    /**\n     * Determine if all of the given abilities should be denied for the current user.\n     *\n     * @param  iterable|string  $abilities\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function none($abilities, $arguments = [])\n    {\n        return ! $this->any($abilities, $arguments);\n    }\n\n    /**\n     * Determine if the given ability should be granted for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return \\Illuminate\\Auth\\Access\\Response\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function authorize($ability, $arguments = [])\n    {\n        $result = $this->raw($ability, $arguments);\n\n        if ($result instanceof Response) {\n            return $result;\n        }\n\n        return $result ? $this->allow() : $this->deny();\n    }\n\n    /**\n     * Get the raw result from the authorization callback.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return mixed\n     */\n    public function raw($ability, $arguments = [])\n    {\n        $arguments = Arr::wrap($arguments);\n\n        $user = $this->resolveUser();\n\n        // First we will call the \"before\" callbacks for the Gate. If any of these give\n        // back a non-null response, we will immediately return that result in order\n        // to let the developers override all checks for some authorization cases.\n        $result = $this->callBeforeCallbacks(\n            $user, $ability, $arguments\n        );\n\n        if (is_null($result)) {\n            $result = $this->callAuthCallback($user, $ability, $arguments);\n        }\n\n        // After calling the authorization callback, we will call the \"after\" callbacks\n        // that are registered with the Gate, which allows a developer to do logging\n        // if that is required for this application. Then we'll return the result.\n        return $this->callAfterCallbacks(\n            $user, $ability, $arguments, $result\n        );\n    }\n\n    /**\n     * Determine whether the callback/method can be called with the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  \\Closure|string|array  $class\n     * @param  string|null $method\n     * @return bool\n     */\n    protected function canBeCalledWithUser($user, $class, $method = null)\n    {\n        if (! is_null($user)) {\n            return true;\n        }\n\n        if (! is_null($method)) {\n            return $this->methodAllowsGuests($class, $method);\n        }\n\n        if (is_array($class)) {\n            $className = is_string($class[0]) ? $class[0] : get_class($class[0]);\n\n            return $this->methodAllowsGuests($className, $class[1]);\n        }\n\n        return $this->callbackAllowsGuests($class);\n    }\n\n    /**\n     * Determine if the given class method allows guests.\n     *\n     * @param  string  $class\n     * @param  string  $method\n     * @return bool\n     */\n    protected function methodAllowsGuests($class, $method)\n    {\n        try {\n            $reflection = new ReflectionClass($class);\n\n            $method = $reflection->getMethod($method);\n        } catch (Exception $e) {\n            return false;\n        }\n\n        if ($method) {\n            $parameters = $method->getParameters();\n\n            return isset($parameters[0]) && $this->parameterAllowsGuests($parameters[0]);\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the callback allows guests.\n     *\n     * @param  callable  $callback\n     * @return bool\n     *\n     * @throws \\ReflectionException\n     */\n    protected function callbackAllowsGuests($callback)\n    {\n        $parameters = (new ReflectionFunction($callback))->getParameters();\n\n        return isset($parameters[0]) && $this->parameterAllowsGuests($parameters[0]);\n    }\n\n    /**\n     * Determine if the given parameter allows guests.\n     *\n     * @param  \\ReflectionParameter  $parameter\n     * @return bool\n     */\n    protected function parameterAllowsGuests($parameter)\n    {\n        return ($parameter->getClass() && $parameter->allowsNull()) ||\n               ($parameter->isDefaultValueAvailable() && is_null($parameter->getDefaultValue()));\n    }\n\n    /**\n     * Resolve and call the appropriate authorization callback.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @return bool\n     */\n    protected function callAuthCallback($user, $ability, array $arguments)\n    {\n        $callback = $this->resolveAuthCallback($user, $ability, $arguments);\n\n        return $callback($user, ...$arguments);\n    }\n\n    /**\n     * Call all of the before callbacks and return if a result is given.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @return bool|null\n     */\n    protected function callBeforeCallbacks($user, $ability, array $arguments)\n    {\n        foreach ($this->beforeCallbacks as $before) {\n            if (! $this->canBeCalledWithUser($user, $before)) {\n                continue;\n            }\n\n            if (! is_null($result = $before($user, $ability, $arguments))) {\n                return $result;\n            }\n        }\n    }\n\n    /**\n     * Call all of the after callbacks with check result.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @param  bool  $result\n     * @return bool|null\n     */\n    protected function callAfterCallbacks($user, $ability, array $arguments, $result)\n    {\n        foreach ($this->afterCallbacks as $after) {\n            if (! $this->canBeCalledWithUser($user, $after)) {\n                continue;\n            }\n\n            $afterResult = $after($user, $ability, $result, $arguments);\n\n            $result = $result ?? $afterResult;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Resolve the callable for the given ability and arguments.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @return callable\n     */\n    protected function resolveAuthCallback($user, $ability, array $arguments)\n    {\n        if (isset($arguments[0]) &&\n            ! is_null($policy = $this->getPolicyFor($arguments[0])) &&\n            $callback = $this->resolvePolicyCallback($user, $ability, $arguments, $policy)) {\n            return $callback;\n        }\n\n        if (isset($this->stringCallbacks[$ability])) {\n            [$class, $method] = Str::parseCallback($this->stringCallbacks[$ability]);\n\n            if ($this->canBeCalledWithUser($user, $class, $method ?: '__invoke')) {\n                return $this->abilities[$ability];\n            }\n        }\n\n        if (isset($this->abilities[$ability]) &&\n            $this->canBeCalledWithUser($user, $this->abilities[$ability])) {\n            return $this->abilities[$ability];\n        }\n\n        return function () {\n        };\n    }\n\n    /**\n     * Get a policy instance for a given class.\n     *\n     * @param  object|string  $class\n     * @return mixed\n     */\n    public function getPolicyFor($class)\n    {\n        if (is_object($class)) {\n            $class = get_class($class);\n        }\n\n        if (! is_string($class)) {\n            return;\n        }\n\n        if (isset($this->policies[$class])) {\n            return $this->resolvePolicy($this->policies[$class]);\n        }\n\n        foreach ($this->guessPolicyName($class) as $guessedPolicy) {\n            if (class_exists($guessedPolicy)) {\n                return $this->resolvePolicy($guessedPolicy);\n            }\n        }\n\n        foreach ($this->policies as $expected => $policy) {\n            if (is_subclass_of($class, $expected)) {\n                return $this->resolvePolicy($policy);\n            }\n        }\n    }\n\n    /**\n     * Guess the policy name for the given class.\n     *\n     * @param  string  $class\n     * @return array\n     */\n    protected function guessPolicyName($class)\n    {\n        if ($this->guessPolicyNamesUsingCallback) {\n            return Arr::wrap(call_user_func($this->guessPolicyNamesUsingCallback, $class));\n        }\n\n        $classDirname = str_replace('/', '\\\\', dirname(str_replace('\\\\', '/', $class)));\n\n        return [$classDirname.'\\\\Policies\\\\'.class_basename($class).'Policy'];\n    }\n\n    /**\n     * Specify a callback to be used to guess policy names.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function guessPolicyNamesUsing(callable $callback)\n    {\n        $this->guessPolicyNamesUsingCallback = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Build a policy class instance of the given type.\n     *\n     * @param  object|string  $class\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    public function resolvePolicy($class)\n    {\n        return $this->container->make($class);\n    }\n\n    /**\n     * Resolve the callback for a policy check.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @param  mixed  $policy\n     * @return bool|callable\n     */\n    protected function resolvePolicyCallback($user, $ability, array $arguments, $policy)\n    {\n        if (! is_callable([$policy, $this->formatAbilityToMethod($ability)])) {\n            return false;\n        }\n\n        return function () use ($user, $ability, $arguments, $policy) {\n            // This callback will be responsible for calling the policy's before method and\n            // running this policy method if necessary. This is used to when objects are\n            // mapped to policy objects in the user's configurations or on this class.\n            $result = $this->callPolicyBefore(\n                $policy, $user, $ability, $arguments\n            );\n\n            // When we receive a non-null result from this before method, we will return it\n            // as the \"final\" results. This will allow developers to override the checks\n            // in this policy to return the result for all rules defined in the class.\n            if (! is_null($result)) {\n                return $result;\n            }\n\n            $method = $this->formatAbilityToMethod($ability);\n\n            return $this->callPolicyMethod($policy, $method, $user, $arguments);\n        };\n    }\n\n    /**\n     * Call the \"before\" method on the given policy, if applicable.\n     *\n     * @param  mixed  $policy\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string  $ability\n     * @param  array  $arguments\n     * @return mixed\n     */\n    protected function callPolicyBefore($policy, $user, $ability, $arguments)\n    {\n        if (! method_exists($policy, 'before')) {\n            return;\n        }\n\n        if ($this->canBeCalledWithUser($user, $policy, 'before')) {\n            return $policy->before($user, $ability, ...$arguments);\n        }\n    }\n\n    /**\n     * Call the appropriate method on the given policy.\n     *\n     * @param  mixed  $policy\n     * @param  string  $method\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  array  $arguments\n     * @return mixed\n     */\n    protected function callPolicyMethod($policy, $method, $user, array $arguments)\n    {\n        // If this first argument is a string, that means they are passing a class name\n        // to the policy. We will remove the first argument from this argument array\n        // because this policy already knows what type of models it can authorize.\n        if (isset($arguments[0]) && is_string($arguments[0])) {\n            array_shift($arguments);\n        }\n\n        if (! is_callable([$policy, $method])) {\n            return;\n        }\n\n        if ($this->canBeCalledWithUser($user, $policy, $method)) {\n            return $policy->{$method}($user, ...$arguments);\n        }\n    }\n\n    /**\n     * Format the policy ability into a method name.\n     *\n     * @param  string  $ability\n     * @return string\n     */\n    protected function formatAbilityToMethod($ability)\n    {\n        return strpos($ability, '-') !== false ? Str::camel($ability) : $ability;\n    }\n\n    /**\n     * Get a gate instance for the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|mixed  $user\n     * @return static\n     */\n    public function forUser($user)\n    {\n        $callback = function () use ($user) {\n            return $user;\n        };\n\n        return new static(\n            $this->container, $callback, $this->abilities,\n            $this->policies, $this->beforeCallbacks, $this->afterCallbacks,\n            $this->guessPolicyNamesUsingCallback\n        );\n    }\n\n    /**\n     * Resolve the user from the user resolver.\n     *\n     * @return mixed\n     */\n    protected function resolveUser()\n    {\n        return call_user_func($this->userResolver);\n    }\n\n    /**\n     * Get all of the defined abilities.\n     *\n     * @return array\n     */\n    public function abilities()\n    {\n        return $this->abilities;\n    }\n\n    /**\n     * Get all of the defined policies.\n     *\n     * @return array\n     */\n    public function policies()\n    {\n        return $this->policies;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Access/HandlesAuthorization.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Access;\n\ntrait HandlesAuthorization\n{\n    /**\n     * Create a new access response.\n     *\n     * @param  string|null  $message\n     * @return \\Illuminate\\Auth\\Access\\Response\n     */\n    protected function allow($message = null)\n    {\n        return new Response($message);\n    }\n\n    /**\n     * Throws an unauthorized exception.\n     *\n     * @param  string  $message\n     * @return void\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    protected function deny($message = 'This action is unauthorized.')\n    {\n        throw new AuthorizationException($message);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Access/Response.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Access;\n\nclass Response\n{\n    /**\n     * The response message.\n     *\n     * @var string|null\n     */\n    protected $message;\n\n    /**\n     * Create a new response.\n     *\n     * @param  string|null  $message\n     * @return void\n     */\n    public function __construct($message = null)\n    {\n        $this->message = $message;\n    }\n\n    /**\n     * Get the response message.\n     *\n     * @return string|null\n     */\n    public function message()\n    {\n        return $this->message;\n    }\n\n    /**\n     * Get the string representation of the message.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return (string) $this->message();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Closure;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Auth\\Factory as FactoryContract;\n\nclass AuthManager implements FactoryContract\n{\n    use CreatesUserProviders;\n\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * The array of created \"drivers\".\n     *\n     * @var array\n     */\n    protected $guards = [];\n\n    /**\n     * The user resolver shared by various services.\n     *\n     * Determines the default user for Gate, Request, and the Authenticatable contract.\n     *\n     * @var \\Closure\n     */\n    protected $userResolver;\n\n    /**\n     * Create a new Auth manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n\n        $this->userResolver = function ($guard = null) {\n            return $this->guard($guard)->user();\n        };\n    }\n\n    /**\n     * Attempt to get the guard from the local cache.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n     */\n    public function guard($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        return $this->guards[$name] ?? $this->guards[$name] = $this->resolve($name);\n    }\n\n    /**\n     * Resolve the given guard.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (is_null($config)) {\n            throw new InvalidArgumentException(\"Auth guard [{$name}] is not defined.\");\n        }\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($name, $config);\n        }\n\n        $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n        if (method_exists($this, $driverMethod)) {\n            return $this->{$driverMethod}($name, $config);\n        }\n\n        throw new InvalidArgumentException(\n            \"Auth driver [{$config['driver']}] for guard [{$name}] is not defined.\"\n        );\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  string  $name\n     * @param  array  $config\n     * @return mixed\n     */\n    protected function callCustomCreator($name, array $config)\n    {\n        return $this->customCreators[$config['driver']]($this->app, $name, $config);\n    }\n\n    /**\n     * Create a session based authentication guard.\n     *\n     * @param  string  $name\n     * @param  array  $config\n     * @return \\Illuminate\\Auth\\SessionGuard\n     */\n    public function createSessionDriver($name, $config)\n    {\n        $provider = $this->createUserProvider($config['provider'] ?? null);\n\n        $guard = new SessionGuard($name, $provider, $this->app['session.store']);\n\n        // When using the remember me functionality of the authentication services we\n        // will need to be set the encryption instance of the guard, which allows\n        // secure, encrypted cookie values to get generated for those cookies.\n        if (method_exists($guard, 'setCookieJar')) {\n            $guard->setCookieJar($this->app['cookie']);\n        }\n\n        if (method_exists($guard, 'setDispatcher')) {\n            $guard->setDispatcher($this->app['events']);\n        }\n\n        if (method_exists($guard, 'setRequest')) {\n            $guard->setRequest($this->app->refresh('request', $guard, 'setRequest'));\n        }\n\n        return $guard;\n    }\n\n    /**\n     * Create a token based authentication guard.\n     *\n     * @param  string  $name\n     * @param  array  $config\n     * @return \\Illuminate\\Auth\\TokenGuard\n     */\n    public function createTokenDriver($name, $config)\n    {\n        // The token guard implements a basic API token based guard implementation\n        // that takes an API token field from the request and matches it to the\n        // user in the database or another persistence layer where users are.\n        $guard = new TokenGuard(\n            $this->createUserProvider($config['provider'] ?? null),\n            $this->app['request'],\n            $config['input_key'] ?? 'api_token',\n            $config['storage_key'] ?? 'api_token',\n            $config['hash'] ?? false\n        );\n\n        $this->app->refresh('request', $guard, 'setRequest');\n\n        return $guard;\n    }\n\n    /**\n     * Get the guard configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        return $this->app['config'][\"auth.guards.{$name}\"];\n    }\n\n    /**\n     * Get the default authentication driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['auth.defaults.guard'];\n    }\n\n    /**\n     * Set the default guard driver the factory should serve.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function shouldUse($name)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        $this->setDefaultDriver($name);\n\n        $this->userResolver = function ($name = null) {\n            return $this->guard($name)->user();\n        };\n    }\n\n    /**\n     * Set the default authentication driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['auth.defaults.guard'] = $name;\n    }\n\n    /**\n     * Register a new callback based request guard.\n     *\n     * @param  string  $driver\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function viaRequest($driver, callable $callback)\n    {\n        return $this->extend($driver, function () use ($callback) {\n            $guard = new RequestGuard($callback, $this->app['request'], $this->createUserProvider());\n\n            $this->app->refresh('request', $guard, 'setRequest');\n\n            return $guard;\n        });\n    }\n\n    /**\n     * Get the user resolver callback.\n     *\n     * @return \\Closure\n     */\n    public function userResolver()\n    {\n        return $this->userResolver;\n    }\n\n    /**\n     * Set the callback to be used to resolve users.\n     *\n     * @param  \\Closure  $userResolver\n     * @return $this\n     */\n    public function resolveUsersUsing(Closure $userResolver)\n    {\n        $this->userResolver = $userResolver;\n\n        return $this;\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string  $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Register a custom provider creator Closure.\n     *\n     * @param  string  $name\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function provider($name, Closure $callback)\n    {\n        $this->customProviderCreators[$name] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->guard()->{$method}(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Auth\\Access\\Gate;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Auth\\Access\\Gate as GateContract;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\n\nclass AuthServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerAuthenticator();\n        $this->registerUserResolver();\n        $this->registerAccessGate();\n        $this->registerRequestRebindHandler();\n        $this->registerEventRebindHandler();\n    }\n\n    /**\n     * Register the authenticator services.\n     *\n     * @return void\n     */\n    protected function registerAuthenticator()\n    {\n        $this->app->singleton('auth', function ($app) {\n            // Once the authentication service has actually been requested by the developer\n            // we will set a variable in the application indicating such. This helps us\n            // know that we need to set any queued cookies in the after event later.\n            $app['auth.loaded'] = true;\n\n            return new AuthManager($app);\n        });\n\n        $this->app->singleton('auth.driver', function ($app) {\n            return $app['auth']->guard();\n        });\n    }\n\n    /**\n     * Register a resolver for the authenticated user.\n     *\n     * @return void\n     */\n    protected function registerUserResolver()\n    {\n        $this->app->bind(\n            AuthenticatableContract::class, function ($app) {\n                return call_user_func($app['auth']->userResolver());\n            }\n        );\n    }\n\n    /**\n     * Register the access gate service.\n     *\n     * @return void\n     */\n    protected function registerAccessGate()\n    {\n        $this->app->singleton(GateContract::class, function ($app) {\n            return new Gate($app, function () use ($app) {\n                return call_user_func($app['auth']->userResolver());\n            });\n        });\n    }\n\n    /**\n     * Handle the re-binding of the request binding.\n     *\n     * @return void\n     */\n    protected function registerRequestRebindHandler()\n    {\n        $this->app->rebinding('request', function ($app, $request) {\n            $request->setUserResolver(function ($guard = null) use ($app) {\n                return call_user_func($app['auth']->userResolver(), $guard);\n            });\n        });\n    }\n\n    /**\n     * Handle the re-binding of the event dispatcher binding.\n     *\n     * @return void\n     */\n    protected function registerEventRebindHandler()\n    {\n        $this->app->rebinding('events', function ($app, $dispatcher) {\n            if (! $app->resolved('auth')) {\n                return;\n            }\n\n            if (method_exists($guard = $app['auth']->guard(), 'setDispatcher')) {\n                $guard->setDispatcher($dispatcher);\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Authenticatable.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\ntrait Authenticatable\n{\n    /**\n     * The column name of the \"remember me\" token.\n     *\n     * @var string\n     */\n    protected $rememberTokenName = 'remember_token';\n\n    /**\n     * Get the name of the unique identifier for the user.\n     *\n     * @return string\n     */\n    public function getAuthIdentifierName()\n    {\n        return $this->getKeyName();\n    }\n\n    /**\n     * Get the unique identifier for the user.\n     *\n     * @return mixed\n     */\n    public function getAuthIdentifier()\n    {\n        return $this->{$this->getAuthIdentifierName()};\n    }\n\n    /**\n     * Get the password for the user.\n     *\n     * @return string\n     */\n    public function getAuthPassword()\n    {\n        return $this->password;\n    }\n\n    /**\n     * Get the token value for the \"remember me\" session.\n     *\n     * @return string|null\n     */\n    public function getRememberToken()\n    {\n        if (! empty($this->getRememberTokenName())) {\n            return (string) $this->{$this->getRememberTokenName()};\n        }\n    }\n\n    /**\n     * Set the token value for the \"remember me\" session.\n     *\n     * @param  string  $value\n     * @return void\n     */\n    public function setRememberToken($value)\n    {\n        if (! empty($this->getRememberTokenName())) {\n            $this->{$this->getRememberTokenName()} = $value;\n        }\n    }\n\n    /**\n     * Get the column name for the \"remember me\" token.\n     *\n     * @return string\n     */\n    public function getRememberTokenName()\n    {\n        return $this->rememberTokenName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/AuthenticationException.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Exception;\n\nclass AuthenticationException extends Exception\n{\n    /**\n     * All of the guards that were checked.\n     *\n     * @var array\n     */\n    protected $guards;\n\n    /**\n     * The path the user should be redirected to.\n     *\n     * @var string\n     */\n    protected $redirectTo;\n\n    /**\n     * Create a new authentication exception.\n     *\n     * @param  string  $message\n     * @param  array  $guards\n     * @param  string|null  $redirectTo\n     * @return void\n     */\n    public function __construct($message = 'Unauthenticated.', array $guards = [], $redirectTo = null)\n    {\n        parent::__construct($message);\n\n        $this->guards = $guards;\n        $this->redirectTo = $redirectTo;\n    }\n\n    /**\n     * Get the guards that were checked.\n     *\n     * @return array\n     */\n    public function guards()\n    {\n        return $this->guards;\n    }\n\n    /**\n     * Get the path the user should be redirected to.\n     *\n     * @return string\n     */\n    public function redirectTo()\n    {\n        return $this->redirectTo;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/AuthMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Console\\DetectsApplicationNamespace;\n\nclass AuthMakeCommand extends Command\n{\n    use DetectsApplicationNamespace;\n\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'make:auth\n                    {--views : Only scaffold the authentication views}\n                    {--force : Overwrite existing views by default}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Scaffold basic login and registration views and routes';\n\n    /**\n     * The views that need to be exported.\n     *\n     * @var array\n     */\n    protected $views = [\n        'auth/login.stub' => 'auth/login.blade.php',\n        'auth/register.stub' => 'auth/register.blade.php',\n        'auth/verify.stub' => 'auth/verify.blade.php',\n        'auth/passwords/email.stub' => 'auth/passwords/email.blade.php',\n        'auth/passwords/reset.stub' => 'auth/passwords/reset.blade.php',\n        'layouts/app.stub' => 'layouts/app.blade.php',\n        'home.stub' => 'home.blade.php',\n    ];\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->createDirectories();\n\n        $this->exportViews();\n\n        if (! $this->option('views')) {\n            file_put_contents(\n                app_path('Http/Controllers/HomeController.php'),\n                $this->compileControllerStub()\n            );\n\n            file_put_contents(\n                base_path('routes/web.php'),\n                file_get_contents(__DIR__.'/stubs/make/routes.stub'),\n                FILE_APPEND\n            );\n        }\n\n        $this->info('Authentication scaffolding generated successfully.');\n    }\n\n    /**\n     * Create the directories for the files.\n     *\n     * @return void\n     */\n    protected function createDirectories()\n    {\n        if (! is_dir($directory = $this->getViewPath('layouts'))) {\n            mkdir($directory, 0755, true);\n        }\n\n        if (! is_dir($directory = $this->getViewPath('auth/passwords'))) {\n            mkdir($directory, 0755, true);\n        }\n    }\n\n    /**\n     * Export the authentication views.\n     *\n     * @return void\n     */\n    protected function exportViews()\n    {\n        foreach ($this->views as $key => $value) {\n            if (file_exists($view = $this->getViewPath($value)) && ! $this->option('force')) {\n                if (! $this->confirm(\"The [{$value}] view already exists. Do you want to replace it?\")) {\n                    continue;\n                }\n            }\n\n            copy(\n                __DIR__.'/stubs/make/views/'.$key,\n                $view\n            );\n        }\n    }\n\n    /**\n     * Compiles the HomeController stub.\n     *\n     * @return string\n     */\n    protected function compileControllerStub()\n    {\n        return str_replace(\n            '{{namespace}}',\n            $this->getAppNamespace(),\n            file_get_contents(__DIR__.'/stubs/make/controllers/HomeController.stub')\n        );\n    }\n\n    /**\n     * Get full view path relative to the app's configured view path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    protected function getViewPath($path)\n    {\n        return implode(DIRECTORY_SEPARATOR, [\n            config('view.paths')[0] ?? resource_path('views'), $path,\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/ClearResetsCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass ClearResetsCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'auth:clear-resets {name? : The name of the password broker}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Flush expired password reset tokens';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->laravel['auth.password']->broker($this->argument('name'))->getRepository()->deleteExpired();\n\n        $this->info('Expired reset tokens cleared!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/controllers/HomeController.stub",
    "content": "<?php\n\nnamespace {{namespace}}Http\\Controllers;\n\nuse Illuminate\\Http\\Request;\n\nclass HomeController extends Controller\n{\n    /**\n     * Create a new controller instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->middleware('auth');\n    }\n\n    /**\n     * Show the application dashboard.\n     *\n     * @return \\Illuminate\\Contracts\\Support\\Renderable\n     */\n    public function index()\n    {\n        return view('home');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/routes.stub",
    "content": "\nAuth::routes();\n\nRoute::get('/home', 'HomeController@index')->name('home');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/login.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">{{ __('Login') }}</div>\n\n                <div class=\"card-body\">\n                    <form method=\"POST\" action=\"{{ route('login') }}\">\n                        @csrf\n\n                        <div class=\"form-group row\">\n                            <label for=\"email\" class=\"col-md-4 col-form-label text-md-right\">{{ __('E-Mail Address') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"email\" type=\"email\" class=\"form-control @error('email') is-invalid @enderror\" name=\"email\" value=\"{{ old('email') }}\" required autocomplete=\"email\" autofocus>\n\n                                @error('email')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"password\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Password') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"password\" type=\"password\" class=\"form-control @error('password') is-invalid @enderror\" name=\"password\" required autocomplete=\"current-password\">\n\n                                @error('password')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <div class=\"col-md-6 offset-md-4\">\n                                <div class=\"form-check\">\n                                    <input class=\"form-check-input\" type=\"checkbox\" name=\"remember\" id=\"remember\" {{ old('remember') ? 'checked' : '' }}>\n\n                                    <label class=\"form-check-label\" for=\"remember\">\n                                        {{ __('Remember Me') }}\n                                    </label>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row mb-0\">\n                            <div class=\"col-md-8 offset-md-4\">\n                                <button type=\"submit\" class=\"btn btn-primary\">\n                                    {{ __('Login') }}\n                                </button>\n\n                                @if (Route::has('password.request'))\n                                    <a class=\"btn btn-link\" href=\"{{ route('password.request') }}\">\n                                        {{ __('Forgot Your Password?') }}\n                                    </a>\n                                @endif\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/email.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">{{ __('Reset Password') }}</div>\n\n                <div class=\"card-body\">\n                    @if (session('status'))\n                        <div class=\"alert alert-success\" role=\"alert\">\n                            {{ session('status') }}\n                        </div>\n                    @endif\n\n                    <form method=\"POST\" action=\"{{ route('password.email') }}\">\n                        @csrf\n\n                        <div class=\"form-group row\">\n                            <label for=\"email\" class=\"col-md-4 col-form-label text-md-right\">{{ __('E-Mail Address') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"email\" type=\"email\" class=\"form-control @error('email') is-invalid @enderror\" name=\"email\" value=\"{{ old('email') }}\" required autocomplete=\"email\" autofocus>\n\n                                @error('email')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row mb-0\">\n                            <div class=\"col-md-6 offset-md-4\">\n                                <button type=\"submit\" class=\"btn btn-primary\">\n                                    {{ __('Send Password Reset Link') }}\n                                </button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/passwords/reset.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">{{ __('Reset Password') }}</div>\n\n                <div class=\"card-body\">\n                    <form method=\"POST\" action=\"{{ route('password.update') }}\">\n                        @csrf\n\n                        <input type=\"hidden\" name=\"token\" value=\"{{ $token }}\">\n\n                        <div class=\"form-group row\">\n                            <label for=\"email\" class=\"col-md-4 col-form-label text-md-right\">{{ __('E-Mail Address') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"email\" type=\"email\" class=\"form-control @error('email') is-invalid @enderror\" name=\"email\" value=\"{{ $email ?? old('email') }}\" required autocomplete=\"email\" autofocus>\n\n                                @error('email')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"password\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Password') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"password\" type=\"password\" class=\"form-control @error('password') is-invalid @enderror\" name=\"password\" required autocomplete=\"new-password\">\n\n                                @error('password')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"password-confirm\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Confirm Password') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"password-confirm\" type=\"password\" class=\"form-control\" name=\"password_confirmation\" required autocomplete=\"new-password\">\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row mb-0\">\n                            <div class=\"col-md-6 offset-md-4\">\n                                <button type=\"submit\" class=\"btn btn-primary\">\n                                    {{ __('Reset Password') }}\n                                </button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/register.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">{{ __('Register') }}</div>\n\n                <div class=\"card-body\">\n                    <form method=\"POST\" action=\"{{ route('register') }}\">\n                        @csrf\n\n                        <div class=\"form-group row\">\n                            <label for=\"name\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Name') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"name\" type=\"text\" class=\"form-control @error('name') is-invalid @enderror\" name=\"name\" value=\"{{ old('name') }}\" required autocomplete=\"name\" autofocus>\n\n                                @error('name')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"email\" class=\"col-md-4 col-form-label text-md-right\">{{ __('E-Mail Address') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"email\" type=\"email\" class=\"form-control @error('email') is-invalid @enderror\" name=\"email\" value=\"{{ old('email') }}\" required autocomplete=\"email\">\n\n                                @error('email')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"password\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Password') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"password\" type=\"password\" class=\"form-control @error('password') is-invalid @enderror\" name=\"password\" required autocomplete=\"new-password\">\n\n                                @error('password')\n                                    <span class=\"invalid-feedback\" role=\"alert\">\n                                        <strong>{{ $message }}</strong>\n                                    </span>\n                                @enderror\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row\">\n                            <label for=\"password-confirm\" class=\"col-md-4 col-form-label text-md-right\">{{ __('Confirm Password') }}</label>\n\n                            <div class=\"col-md-6\">\n                                <input id=\"password-confirm\" type=\"password\" class=\"form-control\" name=\"password_confirmation\" required autocomplete=\"new-password\">\n                            </div>\n                        </div>\n\n                        <div class=\"form-group row mb-0\">\n                            <div class=\"col-md-6 offset-md-4\">\n                                <button type=\"submit\" class=\"btn btn-primary\">\n                                    {{ __('Register') }}\n                                </button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/auth/verify.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">{{ __('Verify Your Email Address') }}</div>\n\n                <div class=\"card-body\">\n                    @if (session('resent'))\n                        <div class=\"alert alert-success\" role=\"alert\">\n                            {{ __('A fresh verification link has been sent to your email address.') }}\n                        </div>\n                    @endif\n\n                    {{ __('Before proceeding, please check your email for a verification link.') }}\n                    {{ __('If you did not receive the email') }}, <a href=\"{{ route('verification.resend') }}\">{{ __('click here to request another') }}</a>.\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/home.stub",
    "content": "@extends('layouts.app')\n\n@section('content')\n<div class=\"container\">\n    <div class=\"row justify-content-center\">\n        <div class=\"col-md-8\">\n            <div class=\"card\">\n                <div class=\"card-header\">Dashboard</div>\n\n                <div class=\"card-body\">\n                    @if (session('status'))\n                        <div class=\"alert alert-success\" role=\"alert\">\n                            {{ session('status') }}\n                        </div>\n                    @endif\n\n                    You are logged in!\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n@endsection\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Console/stubs/make/views/layouts/app.stub",
    "content": "<!DOCTYPE html>\n<html lang=\"{{ str_replace('_', '-', app()->getLocale()) }}\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n    <!-- CSRF Token -->\n    <meta name=\"csrf-token\" content=\"{{ csrf_token() }}\">\n\n    <title>{{ config('app.name', 'Laravel') }}</title>\n\n    <!-- Scripts -->\n    <script src=\"{{ asset('js/app.js') }}\"></script>\n\n    <!-- Fonts -->\n    <link rel=\"dns-prefetch\" href=\"//fonts.gstatic.com\">\n    <link href=\"https://fonts.googleapis.com/css?family=Nunito\" rel=\"stylesheet\">\n\n    <!-- Styles -->\n    <link href=\"{{ asset('css/app.css') }}\" rel=\"stylesheet\">\n</head>\n<body>\n    <div id=\"app\">\n        <nav class=\"navbar navbar-expand-md navbar-light bg-white shadow-sm\">\n            <div class=\"container\">\n                <a class=\"navbar-brand\" href=\"{{ url('/') }}\">\n                    {{ config('app.name', 'Laravel') }}\n                </a>\n                <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarSupportedContent\" aria-controls=\"navbarSupportedContent\" aria-expanded=\"false\" aria-label=\"{{ __('Toggle navigation') }}\">\n                    <span class=\"navbar-toggler-icon\"></span>\n                </button>\n\n                <div class=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\n                    <!-- Left Side Of Navbar -->\n                    <ul class=\"navbar-nav mr-auto\">\n\n                    </ul>\n\n                    <!-- Right Side Of Navbar -->\n                    <ul class=\"navbar-nav ml-auto\">\n                        <!-- Authentication Links -->\n                        @guest\n                            <li class=\"nav-item\">\n                                <a class=\"nav-link\" href=\"{{ route('login') }}\">{{ __('Login') }}</a>\n                            </li>\n                            @if (Route::has('register'))\n                                <li class=\"nav-item\">\n                                    <a class=\"nav-link\" href=\"{{ route('register') }}\">{{ __('Register') }}</a>\n                                </li>\n                            @endif\n                        @else\n                            <li class=\"nav-item dropdown\">\n                                <a id=\"navbarDropdown\" class=\"nav-link dropdown-toggle\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\" v-pre>\n                                    {{ Auth::user()->name }} <span class=\"caret\"></span>\n                                </a>\n\n                                <div class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"navbarDropdown\">\n                                    <a class=\"dropdown-item\" href=\"{{ route('logout') }}\"\n                                       onclick=\"event.preventDefault();\n                                                     document.getElementById('logout-form').submit();\">\n                                        {{ __('Logout') }}\n                                    </a>\n\n                                    <form id=\"logout-form\" action=\"{{ route('logout') }}\" method=\"POST\" style=\"display: none;\">\n                                        @csrf\n                                    </form>\n                                </div>\n                            </li>\n                        @endguest\n                    </ul>\n                </div>\n            </div>\n        </nav>\n\n        <main class=\"py-4\">\n            @yield('content')\n        </main>\n    </div>\n</body>\n</html>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse InvalidArgumentException;\n\ntrait CreatesUserProviders\n{\n    /**\n     * The registered custom provider creators.\n     *\n     * @var array\n     */\n    protected $customProviderCreators = [];\n\n    /**\n     * Create the user provider implementation for the driver.\n     *\n     * @param  string|null  $provider\n     * @return \\Illuminate\\Contracts\\Auth\\UserProvider|null\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function createUserProvider($provider = null)\n    {\n        if (is_null($config = $this->getProviderConfiguration($provider))) {\n            return;\n        }\n\n        if (isset($this->customProviderCreators[$driver = ($config['driver'] ?? null)])) {\n            return call_user_func(\n                $this->customProviderCreators[$driver], $this->app, $config\n            );\n        }\n\n        switch ($driver) {\n            case 'database':\n                return $this->createDatabaseProvider($config);\n            case 'eloquent':\n                return $this->createEloquentProvider($config);\n            default:\n                throw new InvalidArgumentException(\n                    \"Authentication user provider [{$driver}] is not defined.\"\n                );\n        }\n    }\n\n    /**\n     * Get the user provider configuration.\n     *\n     * @param  string|null  $provider\n     * @return array|null\n     */\n    protected function getProviderConfiguration($provider)\n    {\n        if ($provider = $provider ?: $this->getDefaultUserProvider()) {\n            return $this->app['config']['auth.providers.'.$provider];\n        }\n    }\n\n    /**\n     * Create an instance of the database user provider.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Auth\\DatabaseUserProvider\n     */\n    protected function createDatabaseProvider($config)\n    {\n        $connection = $this->app['db']->connection();\n\n        return new DatabaseUserProvider($connection, $this->app['hash'], $config['table']);\n    }\n\n    /**\n     * Create an instance of the Eloquent user provider.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Auth\\EloquentUserProvider\n     */\n    protected function createEloquentProvider($config)\n    {\n        return new EloquentUserProvider($this->app['hash'], $config['model']);\n    }\n\n    /**\n     * Get the default user provider name.\n     *\n     * @return string\n     */\n    public function getDefaultUserProvider()\n    {\n        return $this->app['config']['auth.defaults.provider'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/DatabaseUserProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Database\\ConnectionInterface;\nuse Illuminate\\Contracts\\Hashing\\Hasher as HasherContract;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as UserContract;\n\nclass DatabaseUserProvider implements UserProvider\n{\n    /**\n     * The active database connection.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    protected $conn;\n\n    /**\n     * The hasher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Hashing\\Hasher\n     */\n    protected $hasher;\n\n    /**\n     * The table containing the users.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * Create a new database user provider.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $conn\n     * @param  \\Illuminate\\Contracts\\Hashing\\Hasher  $hasher\n     * @param  string  $table\n     * @return void\n     */\n    public function __construct(ConnectionInterface $conn, HasherContract $hasher, $table)\n    {\n        $this->conn = $conn;\n        $this->table = $table;\n        $this->hasher = $hasher;\n    }\n\n    /**\n     * Retrieve a user by their unique identifier.\n     *\n     * @param  mixed  $identifier\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveById($identifier)\n    {\n        $user = $this->conn->table($this->table)->find($identifier);\n\n        return $this->getGenericUser($user);\n    }\n\n    /**\n     * Retrieve a user by their unique identifier and \"remember me\" token.\n     *\n     * @param  mixed  $identifier\n     * @param  string  $token\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByToken($identifier, $token)\n    {\n        $user = $this->getGenericUser(\n            $this->conn->table($this->table)->find($identifier)\n        );\n\n        return $user && $user->getRememberToken() && hash_equals($user->getRememberToken(), $token)\n                    ? $user : null;\n    }\n\n    /**\n     * Update the \"remember me\" token for the given user in storage.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string  $token\n     * @return void\n     */\n    public function updateRememberToken(UserContract $user, $token)\n    {\n        $this->conn->table($this->table)\n                ->where($user->getAuthIdentifierName(), $user->getAuthIdentifier())\n                ->update([$user->getRememberTokenName() => $token]);\n    }\n\n    /**\n     * Retrieve a user by the given credentials.\n     *\n     * @param  array  $credentials\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByCredentials(array $credentials)\n    {\n        if (empty($credentials) ||\n           (count($credentials) === 1 &&\n            array_key_exists('password', $credentials))) {\n            return;\n        }\n\n        // First we will add each credential element to the query as a where clause.\n        // Then we can execute the query and, if we found a user, return it in a\n        // generic \"user\" object that will be utilized by the Guard instances.\n        $query = $this->conn->table($this->table);\n\n        foreach ($credentials as $key => $value) {\n            if (Str::contains($key, 'password')) {\n                continue;\n            }\n\n            if (is_array($value) || $value instanceof Arrayable) {\n                $query->whereIn($key, $value);\n            } else {\n                $query->where($key, $value);\n            }\n        }\n\n        // Now we are ready to execute the query to see if we have an user matching\n        // the given credentials. If not, we will just return nulls and indicate\n        // that there are no matching users for these given credential arrays.\n        $user = $query->first();\n\n        return $this->getGenericUser($user);\n    }\n\n    /**\n     * Get the generic user.\n     *\n     * @param  mixed  $user\n     * @return \\Illuminate\\Auth\\GenericUser|null\n     */\n    protected function getGenericUser($user)\n    {\n        if (! is_null($user)) {\n            return new GenericUser((array) $user);\n        }\n    }\n\n    /**\n     * Validate a user against the given credentials.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validateCredentials(UserContract $user, array $credentials)\n    {\n        return $this->hasher->check(\n            $credentials['password'], $user->getAuthPassword()\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Hashing\\Hasher as HasherContract;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as UserContract;\n\nclass EloquentUserProvider implements UserProvider\n{\n    /**\n     * The hasher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Hashing\\Hasher\n     */\n    protected $hasher;\n\n    /**\n     * The Eloquent user model.\n     *\n     * @var string\n     */\n    protected $model;\n\n    /**\n     * Create a new database user provider.\n     *\n     * @param  \\Illuminate\\Contracts\\Hashing\\Hasher  $hasher\n     * @param  string  $model\n     * @return void\n     */\n    public function __construct(HasherContract $hasher, $model)\n    {\n        $this->model = $model;\n        $this->hasher = $hasher;\n    }\n\n    /**\n     * Retrieve a user by their unique identifier.\n     *\n     * @param  mixed  $identifier\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveById($identifier)\n    {\n        $model = $this->createModel();\n\n        return $this->newModelQuery($model)\n                    ->where($model->getAuthIdentifierName(), $identifier)\n                    ->first();\n    }\n\n    /**\n     * Retrieve a user by their unique identifier and \"remember me\" token.\n     *\n     * @param  mixed  $identifier\n     * @param  string  $token\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByToken($identifier, $token)\n    {\n        $model = $this->createModel();\n\n        $retrievedModel = $this->newModelQuery($model)->where(\n            $model->getAuthIdentifierName(), $identifier\n        )->first();\n\n        if (! $retrievedModel) {\n            return;\n        }\n\n        $rememberToken = $retrievedModel->getRememberToken();\n\n        return $rememberToken && hash_equals($rememberToken, $token)\n                        ? $retrievedModel : null;\n    }\n\n    /**\n     * Update the \"remember me\" token for the given user in storage.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|\\Illuminate\\Database\\Eloquent\\Model  $user\n     * @param  string  $token\n     * @return void\n     */\n    public function updateRememberToken(UserContract $user, $token)\n    {\n        $user->setRememberToken($token);\n\n        $timestamps = $user->timestamps;\n\n        $user->timestamps = false;\n\n        $user->save();\n\n        $user->timestamps = $timestamps;\n    }\n\n    /**\n     * Retrieve a user by the given credentials.\n     *\n     * @param  array  $credentials\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByCredentials(array $credentials)\n    {\n        if (empty($credentials) ||\n           (count($credentials) === 1 &&\n            array_key_exists('password', $credentials))) {\n            return;\n        }\n\n        // First we will add each credential element to the query as a where clause.\n        // Then we can execute the query and, if we found a user, return it in a\n        // Eloquent User \"model\" that will be utilized by the Guard instances.\n        $query = $this->newModelQuery();\n\n        foreach ($credentials as $key => $value) {\n            if (Str::contains($key, 'password')) {\n                continue;\n            }\n\n            if (is_array($value) || $value instanceof Arrayable) {\n                $query->whereIn($key, $value);\n            } else {\n                $query->where($key, $value);\n            }\n        }\n\n        return $query->first();\n    }\n\n    /**\n     * Validate a user against the given credentials.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validateCredentials(UserContract $user, array $credentials)\n    {\n        $plain = $credentials['password'];\n\n        return $this->hasher->check($plain, $user->getAuthPassword());\n    }\n\n    /**\n     * Get a new query builder for the model instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model|null  $model\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function newModelQuery($model = null)\n    {\n        return is_null($model)\n                ? $this->createModel()->newQuery()\n                : $model->newQuery();\n    }\n\n    /**\n     * Create a new instance of the model.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function createModel()\n    {\n        $class = '\\\\'.ltrim($this->model, '\\\\');\n\n        return new $class;\n    }\n\n    /**\n     * Gets the hasher implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Hashing\\Hasher\n     */\n    public function getHasher()\n    {\n        return $this->hasher;\n    }\n\n    /**\n     * Sets the hasher implementation.\n     *\n     * @param  \\Illuminate\\Contracts\\Hashing\\Hasher  $hasher\n     * @return $this\n     */\n    public function setHasher(HasherContract $hasher)\n    {\n        $this->hasher = $hasher;\n\n        return $this;\n    }\n\n    /**\n     * Gets the name of the Eloquent user model.\n     *\n     * @return string\n     */\n    public function getModel()\n    {\n        return $this->model;\n    }\n\n    /**\n     * Sets the name of the Eloquent user model.\n     *\n     * @param  string  $model\n     * @return $this\n     */\n    public function setModel($model)\n    {\n        $this->model = $model;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Attempting.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nclass Attempting\n{\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The credentials for the user.\n     *\n     * @var array\n     */\n    public $credentials;\n\n    /**\n     * Indicates if the user should be \"remembered\".\n     *\n     * @var bool\n     */\n    public $remember;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $guard\n     * @param  array  $credentials\n     * @param  bool  $remember\n     * @return void\n     */\n    public function __construct($guard, $credentials, $remember)\n    {\n        $this->guard = $guard;\n        $this->remember = $remember;\n        $this->credentials = $credentials;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Authenticated.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Authenticated\n{\n    use SerializesModels;\n\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $guard\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function __construct($guard, $user)\n    {\n        $this->user = $user;\n        $this->guard = $guard;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Failed.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nclass Failed\n{\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The user the attempter was trying to authenticate as.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public $user;\n\n    /**\n     * The credentials provided by the attempter.\n     *\n     * @var array\n     */\n    public $credentials;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $guard\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  array  $credentials\n     * @return void\n     */\n    public function __construct($guard, $user, $credentials)\n    {\n        $this->user = $user;\n        $this->guard = $guard;\n        $this->credentials = $credentials;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Lockout.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Http\\Request;\n\nclass Lockout\n{\n    /**\n     * The throttled request.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    public $request;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function __construct(Request $request)\n    {\n        $this->request = $request;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Login.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Login\n{\n    use SerializesModels;\n\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Indicates if the user should be \"remembered\".\n     *\n     * @var bool\n     */\n    public $remember;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string $guard\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  bool  $remember\n     * @return void\n     */\n    public function __construct($guard, $user, $remember)\n    {\n        $this->user = $user;\n        $this->guard = $guard;\n        $this->remember = $remember;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Logout.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Logout\n{\n    use SerializesModels;\n\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string $guard\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function __construct($guard, $user)\n    {\n        $this->user = $user;\n        $this->guard = $guard;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/OtherDeviceLogout.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass OtherDeviceLogout\n{\n    use SerializesModels;\n\n    /**\n     * The authentication guard name.\n     *\n     * @var string\n     */\n    public $guard;\n\n    /**\n     * The authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $guard\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function __construct($guard, $user)\n    {\n        $this->user = $user;\n        $this->guard = $guard;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/PasswordReset.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass PasswordReset\n{\n    use SerializesModels;\n\n    /**\n     * The user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function __construct($user)\n    {\n        $this->user = $user;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Registered.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Registered\n{\n    use SerializesModels;\n\n    /**\n     * The authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function __construct($user)\n    {\n        $this->user = $user;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Events/Verified.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Events;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Verified\n{\n    use SerializesModels;\n\n    /**\n     * The verified user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\MustVerifyEmail\n     */\n    public $user;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\MustVerifyEmail  $user\n     * @return void\n     */\n    public function __construct($user)\n    {\n        $this->user = $user;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/GenericUser.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable as UserContract;\n\nclass GenericUser implements UserContract\n{\n    /**\n     * All of the user's attributes.\n     *\n     * @var array\n     */\n    protected $attributes;\n\n    /**\n     * Create a new generic User object.\n     *\n     * @param  array  $attributes\n     * @return void\n     */\n    public function __construct(array $attributes)\n    {\n        $this->attributes = $attributes;\n    }\n\n    /**\n     * Get the name of the unique identifier for the user.\n     *\n     * @return string\n     */\n    public function getAuthIdentifierName()\n    {\n        return 'id';\n    }\n\n    /**\n     * Get the unique identifier for the user.\n     *\n     * @return mixed\n     */\n    public function getAuthIdentifier()\n    {\n        $name = $this->getAuthIdentifierName();\n\n        return $this->attributes[$name];\n    }\n\n    /**\n     * Get the password for the user.\n     *\n     * @return string\n     */\n    public function getAuthPassword()\n    {\n        return $this->attributes['password'];\n    }\n\n    /**\n     * Get the \"remember me\" token value.\n     *\n     * @return string\n     */\n    public function getRememberToken()\n    {\n        return $this->attributes[$this->getRememberTokenName()];\n    }\n\n    /**\n     * Set the \"remember me\" token value.\n     *\n     * @param  string  $value\n     * @return void\n     */\n    public function setRememberToken($value)\n    {\n        $this->attributes[$this->getRememberTokenName()] = $value;\n    }\n\n    /**\n     * Get the column name for the \"remember me\" token.\n     *\n     * @return string\n     */\n    public function getRememberTokenName()\n    {\n        return 'remember_token';\n    }\n\n    /**\n     * Dynamically access the user's attributes.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->attributes[$key];\n    }\n\n    /**\n     * Dynamically set an attribute on the user.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this->attributes[$key] = $value;\n    }\n\n    /**\n     * Dynamically check if a value is set on the user.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return isset($this->attributes[$key]);\n    }\n\n    /**\n     * Dynamically unset a value on the user.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function __unset($key)\n    {\n        unset($this->attributes[$key]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/GuardHelpers.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Contracts\\Auth\\UserProvider;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\n\n/**\n * These methods are typically the same across all guards.\n */\ntrait GuardHelpers\n{\n    /**\n     * The currently authenticated user.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    protected $user;\n\n    /**\n     * The user provider implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\UserProvider\n     */\n    protected $provider;\n\n    /**\n     * Determine if current user is authenticated. If not, throw an exception.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable\n     *\n     * @throws \\Illuminate\\Auth\\AuthenticationException\n     */\n    public function authenticate()\n    {\n        if (! is_null($user = $this->user())) {\n            return $user;\n        }\n\n        throw new AuthenticationException;\n    }\n\n    /**\n     * Determine if the guard has a user instance.\n     *\n     * @return bool\n     */\n    public function hasUser()\n    {\n        return ! is_null($this->user);\n    }\n\n    /**\n     * Determine if the current user is authenticated.\n     *\n     * @return bool\n     */\n    public function check()\n    {\n        return ! is_null($this->user());\n    }\n\n    /**\n     * Determine if the current user is a guest.\n     *\n     * @return bool\n     */\n    public function guest()\n    {\n        return ! $this->check();\n    }\n\n    /**\n     * Get the ID for the currently authenticated user.\n     *\n     * @return int|null\n     */\n    public function id()\n    {\n        if ($this->user()) {\n            return $this->user()->getAuthIdentifier();\n        }\n    }\n\n    /**\n     * Set the current user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return $this\n     */\n    public function setUser(AuthenticatableContract $user)\n    {\n        $this->user = $user;\n\n        return $this;\n    }\n\n    /**\n     * Get the user provider used by the guard.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\UserProvider\n     */\n    public function getProvider()\n    {\n        return $this->provider;\n    }\n\n    /**\n     * Set the user provider used by the guard.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\UserProvider  $provider\n     * @return void\n     */\n    public function setProvider(UserProvider $provider)\n    {\n        $this->provider = $provider;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Listeners/SendEmailVerificationNotification.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Listeners;\n\nuse Illuminate\\Auth\\Events\\Registered;\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\n\nclass SendEmailVerificationNotification\n{\n    /**\n     * Handle the event.\n     *\n     * @param  \\Illuminate\\Auth\\Events\\Registered  $event\n     * @return void\n     */\n    public function handle(Registered $event)\n    {\n        if ($event->user instanceof MustVerifyEmail && ! $event->user->hasVerifiedEmail()) {\n            $event->user->sendEmailVerificationNotification();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Middleware;\n\nuse Closure;\nuse Illuminate\\Auth\\AuthenticationException;\nuse Illuminate\\Contracts\\Auth\\Factory as Auth;\n\nclass Authenticate\n{\n    /**\n     * The authentication factory instance.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Factory\n     */\n    protected $auth;\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Factory  $auth\n     * @return void\n     */\n    public function __construct(Auth $auth)\n    {\n        $this->auth = $auth;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string[]  ...$guards\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Auth\\AuthenticationException\n     */\n    public function handle($request, Closure $next, ...$guards)\n    {\n        $this->authenticate($request, $guards);\n\n        return $next($request);\n    }\n\n    /**\n     * Determine if the user is logged in to any of the given guards.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array  $guards\n     * @return void\n     *\n     * @throws \\Illuminate\\Auth\\AuthenticationException\n     */\n    protected function authenticate($request, array $guards)\n    {\n        if (empty($guards)) {\n            $guards = [null];\n        }\n\n        foreach ($guards as $guard) {\n            if ($this->auth->guard($guard)->check()) {\n                return $this->auth->shouldUse($guard);\n            }\n        }\n\n        throw new AuthenticationException(\n            'Unauthenticated.', $guards, $this->redirectTo($request)\n        );\n    }\n\n    /**\n     * Get the path the user should be redirected to when they are not authenticated.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return string\n     */\n    protected function redirectTo($request)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Middleware/AuthenticateWithBasicAuth.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Middleware;\n\nuse Closure;\nuse Illuminate\\Contracts\\Auth\\Factory as AuthFactory;\n\nclass AuthenticateWithBasicAuth\n{\n    /**\n     * The guard factory instance.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Factory\n     */\n    protected $auth;\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Factory  $auth\n     * @return void\n     */\n    public function __construct(AuthFactory $auth)\n    {\n        $this->auth = $auth;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string|null  $guard\n     * @param  string|null  $field\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n     */\n    public function handle($request, Closure $next, $guard = null, $field = null)\n    {\n        $this->auth->guard($guard)->basic($field ?: 'email');\n\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Middleware;\n\nuse Closure;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Contracts\\Auth\\Access\\Gate;\n\nclass Authorize\n{\n    /**\n     * The gate instance.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Access\\Gate\n     */\n    protected $gate;\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Access\\Gate  $gate\n     * @return void\n     */\n    public function __construct(Gate $gate)\n    {\n        $this->gate = $gate;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string  $ability\n     * @param  array|null  ...$models\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Auth\\AuthenticationException\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function handle($request, Closure $next, $ability, ...$models)\n    {\n        $this->gate->authorize($ability, $this->getGateArguments($request, $models));\n\n        return $next($request);\n    }\n\n    /**\n     * Get the arguments parameter for the gate.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array|null  $models\n     * @return array|string|\\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected function getGateArguments($request, $models)\n    {\n        if (is_null($models)) {\n            return [];\n        }\n\n        return collect($models)->map(function ($model) use ($request) {\n            return $model instanceof Model ? $model : $this->getModel($request, $model);\n        })->all();\n    }\n\n    /**\n     * Get the model to authorize.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $model\n     * @return \\Illuminate\\Database\\Eloquent\\Model|string\n     */\n    protected function getModel($request, $model)\n    {\n        if ($this->isClassName($model)) {\n            return trim($model);\n        } else {\n            return $request->route($model, null) ?:\n                ((preg_match(\"/^['\\\"](.*)['\\\"]$/\", trim($model), $matches)) ? $matches[1] : null);\n        }\n    }\n\n    /**\n     * Checks if the given string looks like a fully qualified class name.\n     *\n     * @param  string  $value\n     * @return bool\n     */\n    protected function isClassName($value)\n    {\n        return strpos($value, '\\\\') !== false;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Middleware/EnsureEmailIsVerified.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Middleware;\n\nuse Closure;\nuse Illuminate\\Support\\Facades\\Redirect;\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\n\nclass EnsureEmailIsVerified\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string|null  $redirectToRoute\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\RedirectResponse\n     */\n    public function handle($request, Closure $next, $redirectToRoute = null)\n    {\n        if (! $request->user() ||\n            ($request->user() instanceof MustVerifyEmail &&\n            ! $request->user()->hasVerifiedEmail())) {\n            return $request->expectsJson()\n                    ? abort(403, 'Your email address is not verified.')\n                    : Redirect::route($redirectToRoute ?: 'verification.notice');\n        }\n\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/MustVerifyEmail.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\ntrait MustVerifyEmail\n{\n    /**\n     * Determine if the user has verified their email address.\n     *\n     * @return bool\n     */\n    public function hasVerifiedEmail()\n    {\n        return ! is_null($this->email_verified_at);\n    }\n\n    /**\n     * Mark the given user's email as verified.\n     *\n     * @return bool\n     */\n    public function markEmailAsVerified()\n    {\n        return $this->forceFill([\n            'email_verified_at' => $this->freshTimestamp(),\n        ])->save();\n    }\n\n    /**\n     * Send the email verification notification.\n     *\n     * @return void\n     */\n    public function sendEmailVerificationNotification()\n    {\n        $this->notify(new Notifications\\VerifyEmail);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Notifications;\n\nuse Illuminate\\Support\\Facades\\Lang;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Notifications\\Messages\\MailMessage;\n\nclass ResetPassword extends Notification\n{\n    /**\n     * The password reset token.\n     *\n     * @var string\n     */\n    public $token;\n\n    /**\n     * The callback that should be used to build the mail message.\n     *\n     * @var \\Closure|null\n     */\n    public static $toMailCallback;\n\n    /**\n     * Create a notification instance.\n     *\n     * @param  string  $token\n     * @return void\n     */\n    public function __construct($token)\n    {\n        $this->token = $token;\n    }\n\n    /**\n     * Get the notification's channels.\n     *\n     * @param  mixed  $notifiable\n     * @return array|string\n     */\n    public function via($notifiable)\n    {\n        return ['mail'];\n    }\n\n    /**\n     * Build the mail representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return \\Illuminate\\Notifications\\Messages\\MailMessage\n     */\n    public function toMail($notifiable)\n    {\n        if (static::$toMailCallback) {\n            return call_user_func(static::$toMailCallback, $notifiable, $this->token);\n        }\n\n        return (new MailMessage)\n            ->subject(Lang::getFromJson('Reset Password Notification'))\n            ->line(Lang::getFromJson('You are receiving this email because we received a password reset request for your account.'))\n            ->action(Lang::getFromJson('Reset Password'), url(config('app.url').route('password.reset', ['token' => $this->token, 'email' => $notifiable->getEmailForPasswordReset()], false)))\n            ->line(Lang::getFromJson('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.users.expire')]))\n            ->line(Lang::getFromJson('If you did not request a password reset, no further action is required.'));\n    }\n\n    /**\n     * Set a callback that should be used when building the notification mail message.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public static function toMailUsing($callback)\n    {\n        static::$toMailCallback = $callback;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Notifications;\n\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Facades\\URL;\nuse Illuminate\\Support\\Facades\\Lang;\nuse Illuminate\\Support\\Facades\\Config;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Notifications\\Messages\\MailMessage;\n\nclass VerifyEmail extends Notification\n{\n    /**\n     * The callback that should be used to build the mail message.\n     *\n     * @var \\Closure|null\n     */\n    public static $toMailCallback;\n\n    /**\n     * Get the notification's channels.\n     *\n     * @param  mixed  $notifiable\n     * @return array|string\n     */\n    public function via($notifiable)\n    {\n        return ['mail'];\n    }\n\n    /**\n     * Build the mail representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return \\Illuminate\\Notifications\\Messages\\MailMessage\n     */\n    public function toMail($notifiable)\n    {\n        $verificationUrl = $this->verificationUrl($notifiable);\n\n        if (static::$toMailCallback) {\n            return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);\n        }\n\n        return (new MailMessage)\n            ->subject(Lang::getFromJson('Verify Email Address'))\n            ->line(Lang::getFromJson('Please click the button below to verify your email address.'))\n            ->action(Lang::getFromJson('Verify Email Address'), $verificationUrl)\n            ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));\n    }\n\n    /**\n     * Get the verification URL for the given notifiable.\n     *\n     * @param  mixed  $notifiable\n     * @return string\n     */\n    protected function verificationUrl($notifiable)\n    {\n        return URL::temporarySignedRoute(\n            'verification.verify',\n            Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),\n            ['id' => $notifiable->getKey()]\n        );\n    }\n\n    /**\n     * Set a callback that should be used when building the notification mail message.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public static function toMailUsing($callback)\n    {\n        static::$toMailCallback = $callback;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/CanResetPassword.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Illuminate\\Auth\\Notifications\\ResetPassword as ResetPasswordNotification;\n\ntrait CanResetPassword\n{\n    /**\n     * Get the e-mail address where password reset links are sent.\n     *\n     * @return string\n     */\n    public function getEmailForPasswordReset()\n    {\n        return $this->email;\n    }\n\n    /**\n     * Send the password reset notification.\n     *\n     * @param  string  $token\n     * @return void\n     */\n    public function sendPasswordResetNotification($token)\n    {\n        $this->notify(new ResetPasswordNotification($token));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/DatabaseTokenRepository.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\ConnectionInterface;\nuse Illuminate\\Contracts\\Hashing\\Hasher as HasherContract;\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\n\nclass DatabaseTokenRepository implements TokenRepositoryInterface\n{\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    protected $connection;\n\n    /**\n     * The Hasher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Hashing\\Hasher\n     */\n    protected $hasher;\n\n    /**\n     * The token database table.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The hashing key.\n     *\n     * @var string\n     */\n    protected $hashKey;\n\n    /**\n     * The number of seconds a token should last.\n     *\n     * @var int\n     */\n    protected $expires;\n\n    /**\n     * Create a new token repository instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $connection\n     * @param  \\Illuminate\\Contracts\\Hashing\\Hasher  $hasher\n     * @param  string  $table\n     * @param  string  $hashKey\n     * @param  int  $expires\n     * @return void\n     */\n    public function __construct(ConnectionInterface $connection, HasherContract $hasher,\n                                $table, $hashKey, $expires = 60)\n    {\n        $this->table = $table;\n        $this->hasher = $hasher;\n        $this->hashKey = $hashKey;\n        $this->expires = $expires * 60;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Create a new token record.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @return string\n     */\n    public function create(CanResetPasswordContract $user)\n    {\n        $email = $user->getEmailForPasswordReset();\n\n        $this->deleteExisting($user);\n\n        // We will create a new, random token for the user so that we can e-mail them\n        // a safe link to the password reset form. Then we will insert a record in\n        // the database so that we can verify the token within the actual reset.\n        $token = $this->createNewToken();\n\n        $this->getTable()->insert($this->getPayload($email, $token));\n\n        return $token;\n    }\n\n    /**\n     * Delete all existing reset tokens from the database.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @return int\n     */\n    protected function deleteExisting(CanResetPasswordContract $user)\n    {\n        return $this->getTable()->where('email', $user->getEmailForPasswordReset())->delete();\n    }\n\n    /**\n     * Build the record payload for the table.\n     *\n     * @param  string  $email\n     * @param  string  $token\n     * @return array\n     */\n    protected function getPayload($email, $token)\n    {\n        return ['email' => $email, 'token' => $this->hasher->make($token), 'created_at' => new Carbon];\n    }\n\n    /**\n     * Determine if a token record exists and is valid.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @param  string  $token\n     * @return bool\n     */\n    public function exists(CanResetPasswordContract $user, $token)\n    {\n        $record = (array) $this->getTable()->where(\n            'email', $user->getEmailForPasswordReset()\n        )->first();\n\n        return $record &&\n               ! $this->tokenExpired($record['created_at']) &&\n                 $this->hasher->check($token, $record['token']);\n    }\n\n    /**\n     * Determine if the token has expired.\n     *\n     * @param  string  $createdAt\n     * @return bool\n     */\n    protected function tokenExpired($createdAt)\n    {\n        return Carbon::parse($createdAt)->addSeconds($this->expires)->isPast();\n    }\n\n    /**\n     * Delete a token record by user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @return void\n     */\n    public function delete(CanResetPasswordContract $user)\n    {\n        $this->deleteExisting($user);\n    }\n\n    /**\n     * Delete expired tokens.\n     *\n     * @return void\n     */\n    public function deleteExpired()\n    {\n        $expiredAt = Carbon::now()->subSeconds($this->expires);\n\n        $this->getTable()->where('created_at', '<', $expiredAt)->delete();\n    }\n\n    /**\n     * Create a new token for the user.\n     *\n     * @return string\n     */\n    public function createNewToken()\n    {\n        return hash_hmac('sha256', Str::random(40), $this->hashKey);\n    }\n\n    /**\n     * Get the database connection instance.\n     *\n     * @return \\Illuminate\\Database\\ConnectionInterface\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Begin a new database query against the table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function getTable()\n    {\n        return $this->connection->table($this->table);\n    }\n\n    /**\n     * Get the hasher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Hashing\\Hasher\n     */\n    public function getHasher()\n    {\n        return $this->hasher;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse UnexpectedValueException;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\nuse Illuminate\\Contracts\\Auth\\PasswordBroker as PasswordBrokerContract;\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\n\nclass PasswordBroker implements PasswordBrokerContract\n{\n    /**\n     * The password token repository.\n     *\n     * @var \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface\n     */\n    protected $tokens;\n\n    /**\n     * The user provider implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\UserProvider\n     */\n    protected $users;\n\n    /**\n     * The custom password validator callback.\n     *\n     * @var \\Closure\n     */\n    protected $passwordValidator;\n\n    /**\n     * Create a new password broker instance.\n     *\n     * @param  \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface  $tokens\n     * @param  \\Illuminate\\Contracts\\Auth\\UserProvider  $users\n     * @return void\n     */\n    public function __construct(TokenRepositoryInterface $tokens,\n                                UserProvider $users)\n    {\n        $this->users = $users;\n        $this->tokens = $tokens;\n    }\n\n    /**\n     * Send a password reset link to a user.\n     *\n     * @param  array  $credentials\n     * @return string\n     */\n    public function sendResetLink(array $credentials)\n    {\n        // First we will check to see if we found a user at the given credentials and\n        // if we did not we will redirect back to this current URI with a piece of\n        // \"flash\" data in the session to indicate to the developers the errors.\n        $user = $this->getUser($credentials);\n\n        if (is_null($user)) {\n            return static::INVALID_USER;\n        }\n\n        // Once we have the reset token, we are ready to send the message out to this\n        // user with a link to reset their password. We will then redirect back to\n        // the current URI having nothing set in the session to indicate errors.\n        $user->sendPasswordResetNotification(\n            $this->tokens->create($user)\n        );\n\n        return static::RESET_LINK_SENT;\n    }\n\n    /**\n     * Reset the password for the given token.\n     *\n     * @param  array  $credentials\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function reset(array $credentials, Closure $callback)\n    {\n        // If the responses from the validate method is not a user instance, we will\n        // assume that it is a redirect and simply return it from this method and\n        // the user is properly redirected having an error message on the post.\n        $user = $this->validateReset($credentials);\n\n        if (! $user instanceof CanResetPasswordContract) {\n            return $user;\n        }\n\n        $password = $credentials['password'];\n\n        // Once the reset has been validated, we'll call the given callback with the\n        // new password. This gives the user an opportunity to store the password\n        // in their persistent storage. Then we'll delete the token and return.\n        $callback($user, $password);\n\n        $this->tokens->delete($user);\n\n        return static::PASSWORD_RESET;\n    }\n\n    /**\n     * Validate a password reset for the given credentials.\n     *\n     * @param  array  $credentials\n     * @return \\Illuminate\\Contracts\\Auth\\CanResetPassword|string\n     */\n    protected function validateReset(array $credentials)\n    {\n        if (is_null($user = $this->getUser($credentials))) {\n            return static::INVALID_USER;\n        }\n\n        if (! $this->validateNewPassword($credentials)) {\n            return static::INVALID_PASSWORD;\n        }\n\n        if (! $this->tokens->exists($user, $credentials['token'])) {\n            return static::INVALID_TOKEN;\n        }\n\n        return $user;\n    }\n\n    /**\n     * Set a custom password validator.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function validator(Closure $callback)\n    {\n        $this->passwordValidator = $callback;\n    }\n\n    /**\n     * Determine if the passwords match for the request.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validateNewPassword(array $credentials)\n    {\n        if (isset($this->passwordValidator)) {\n            [$password, $confirm] = [\n                $credentials['password'],\n                $credentials['password_confirmation'],\n            ];\n\n            return call_user_func(\n                $this->passwordValidator, $credentials\n            ) && $password === $confirm;\n        }\n\n        return $this->validatePasswordWithDefaults($credentials);\n    }\n\n    /**\n     * Determine if the passwords are valid for the request.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    protected function validatePasswordWithDefaults(array $credentials)\n    {\n        [$password, $confirm] = [\n            $credentials['password'],\n            $credentials['password_confirmation'],\n        ];\n\n        return $password === $confirm && mb_strlen($password) >= 8;\n    }\n\n    /**\n     * Get the user for the given credentials.\n     *\n     * @param  array  $credentials\n     * @return \\Illuminate\\Contracts\\Auth\\CanResetPassword|null\n     *\n     * @throws \\UnexpectedValueException\n     */\n    public function getUser(array $credentials)\n    {\n        $credentials = Arr::except($credentials, ['token']);\n\n        $user = $this->users->retrieveByCredentials($credentials);\n\n        if ($user && ! $user instanceof CanResetPasswordContract) {\n            throw new UnexpectedValueException('User must implement CanResetPassword interface.');\n        }\n\n        return $user;\n    }\n\n    /**\n     * Create a new password reset token for the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword $user\n     * @return string\n     */\n    public function createToken(CanResetPasswordContract $user)\n    {\n        return $this->tokens->create($user);\n    }\n\n    /**\n     * Delete password reset tokens of the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword $user\n     * @return void\n     */\n    public function deleteToken(CanResetPasswordContract $user)\n    {\n        $this->tokens->delete($user);\n    }\n\n    /**\n     * Validate the given password reset token.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword $user\n     * @param  string $token\n     * @return bool\n     */\n    public function tokenExists(CanResetPasswordContract $user, $token)\n    {\n        return $this->tokens->exists($user, $token);\n    }\n\n    /**\n     * Get the password reset token repository implementation.\n     *\n     * @return \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface\n     */\n    public function getRepository()\n    {\n        return $this->tokens;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Auth\\PasswordBrokerFactory as FactoryContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Auth\\PasswordBroker\n */\nclass PasswordBrokerManager implements FactoryContract\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of created \"drivers\".\n     *\n     * @var array\n     */\n    protected $brokers = [];\n\n    /**\n     * Create a new PasswordBroker manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Attempt to get the broker from the local cache.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n     */\n    public function broker($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        return $this->brokers[$name] ?? ($this->brokers[$name] = $this->resolve($name));\n    }\n\n    /**\n     * Resolve the given broker.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (is_null($config)) {\n            throw new InvalidArgumentException(\"Password resetter [{$name}] is not defined.\");\n        }\n\n        // The password broker uses a token repository to validate tokens and send user\n        // password e-mails, as well as validating that password reset process as an\n        // aggregate service of sorts providing a convenient interface for resets.\n        return new PasswordBroker(\n            $this->createTokenRepository($config),\n            $this->app['auth']->createUserProvider($config['provider'] ?? null)\n        );\n    }\n\n    /**\n     * Create a token repository instance based on the given configuration.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Auth\\Passwords\\TokenRepositoryInterface\n     */\n    protected function createTokenRepository(array $config)\n    {\n        $key = $this->app['config']['app.key'];\n\n        if (Str::startsWith($key, 'base64:')) {\n            $key = base64_decode(substr($key, 7));\n        }\n\n        $connection = $config['connection'] ?? null;\n\n        return new DatabaseTokenRepository(\n            $this->app['db']->connection($connection),\n            $this->app['hash'],\n            $config['table'],\n            $key,\n            $config['expire']\n        );\n    }\n\n    /**\n     * Get the password broker configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        return $this->app['config'][\"auth.passwords.{$name}\"];\n    }\n\n    /**\n     * Get the default password broker name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['auth.defaults.passwords'];\n    }\n\n    /**\n     * Set the default password broker name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['auth.defaults.passwords'] = $name;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->broker()->{$method}(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordResetServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass PasswordResetServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerPasswordBroker();\n    }\n\n    /**\n     * Register the password broker instance.\n     *\n     * @return void\n     */\n    protected function registerPasswordBroker()\n    {\n        $this->app->singleton('auth.password', function ($app) {\n            return new PasswordBrokerManager($app);\n        });\n\n        $this->app->bind('auth.password.broker', function ($app) {\n            return $app->make('auth.password')->broker();\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['auth.password', 'auth.password.broker'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Passwords/TokenRepositoryInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth\\Passwords;\n\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\n\ninterface TokenRepositoryInterface\n{\n    /**\n     * Create a new token.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @return string\n     */\n    public function create(CanResetPasswordContract $user);\n\n    /**\n     * Determine if a token record exists and is valid.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @param  string  $token\n     * @return bool\n     */\n    public function exists(CanResetPasswordContract $user, $token);\n\n    /**\n     * Delete a token record.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @return void\n     */\n    public function delete(CanResetPasswordContract $user);\n\n    /**\n     * Delete expired tokens.\n     *\n     * @return void\n     */\n    public function deleteExpired();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/Recaller.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Support\\Str;\n\nclass Recaller\n{\n    /**\n     * The \"recaller\" / \"remember me\" cookie string.\n     *\n     * @var string\n     */\n    protected $recaller;\n\n    /**\n     * Create a new recaller instance.\n     *\n     * @param  string  $recaller\n     * @return void\n     */\n    public function __construct($recaller)\n    {\n        $this->recaller = @unserialize($recaller, ['allowed_classes' => false]) ?: $recaller;\n    }\n\n    /**\n     * Get the user ID from the recaller.\n     *\n     * @return string\n     */\n    public function id()\n    {\n        return explode('|', $this->recaller, 3)[0];\n    }\n\n    /**\n     * Get the \"remember token\" token from the recaller.\n     *\n     * @return string\n     */\n    public function token()\n    {\n        return explode('|', $this->recaller, 3)[1];\n    }\n\n    /**\n     * Get the password from the recaller.\n     *\n     * @return string\n     */\n    public function hash()\n    {\n        return explode('|', $this->recaller, 3)[2];\n    }\n\n    /**\n     * Determine if the recaller is valid.\n     *\n     * @return bool\n     */\n    public function valid()\n    {\n        return $this->properString() && $this->hasAllSegments();\n    }\n\n    /**\n     * Determine if the recaller is an invalid string.\n     *\n     * @return bool\n     */\n    protected function properString()\n    {\n        return is_string($this->recaller) && Str::contains($this->recaller, '|');\n    }\n\n    /**\n     * Determine if the recaller has all segments.\n     *\n     * @return bool\n     */\n    protected function hasAllSegments()\n    {\n        $segments = explode('|', $this->recaller);\n\n        return count($segments) === 3 && trim($segments[0]) !== '' && trim($segments[1]) !== '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/RequestGuard.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Auth\\Guard;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\n\nclass RequestGuard implements Guard\n{\n    use GuardHelpers, Macroable;\n\n    /**\n     * The guard callback.\n     *\n     * @var callable\n     */\n    protected $callback;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $request;\n\n    /**\n     * Create a new authentication guard.\n     *\n     * @param  callable  $callback\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Contracts\\Auth\\UserProvider|null $provider\n     * @return void\n     */\n    public function __construct(callable $callback, Request $request, UserProvider $provider = null)\n    {\n        $this->request = $request;\n        $this->callback = $callback;\n        $this->provider = $provider;\n    }\n\n    /**\n     * Get the currently authenticated user.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function user()\n    {\n        // If we've already retrieved the user for the current request we can just\n        // return it back immediately. We do not want to fetch the user data on\n        // every call to this method because that would be tremendously slow.\n        if (! is_null($this->user)) {\n            return $this->user;\n        }\n\n        return $this->user = call_user_func(\n            $this->callback, $this->request, $this->getProvider()\n        );\n    }\n\n    /**\n     * Validate a user's credentials.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validate(array $credentials = [])\n    {\n        return ! is_null((new static(\n            $this->callback, $credentials['request'], $this->getProvider()\n        ))->user());\n    }\n\n    /**\n     * Set the current request instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return $this\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Facades\\Hash;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Session\\Session;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Auth\\StatefulGuard;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Illuminate\\Contracts\\Auth\\SupportsBasicAuth;\nuse Illuminate\\Contracts\\Cookie\\QueueingFactory as CookieJar;\nuse Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\n\nclass SessionGuard implements StatefulGuard, SupportsBasicAuth\n{\n    use GuardHelpers, Macroable;\n\n    /**\n     * The name of the Guard. Typically \"session\".\n     *\n     * Corresponds to guard name in authentication configuration.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The user we last attempted to retrieve.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    protected $lastAttempted;\n\n    /**\n     * Indicates if the user was authenticated via a recaller cookie.\n     *\n     * @var bool\n     */\n    protected $viaRemember = false;\n\n    /**\n     * The session used by the guard.\n     *\n     * @var \\Illuminate\\Contracts\\Session\\Session\n     */\n    protected $session;\n\n    /**\n     * The Illuminate cookie creator service.\n     *\n     * @var \\Illuminate\\Contracts\\Cookie\\QueueingFactory\n     */\n    protected $cookie;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\Request\n     */\n    protected $request;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * Indicates if the logout method has been called.\n     *\n     * @var bool\n     */\n    protected $loggedOut = false;\n\n    /**\n     * Indicates if a token user retrieval has been attempted.\n     *\n     * @var bool\n     */\n    protected $recallAttempted = false;\n\n    /**\n     * Create a new authentication guard.\n     *\n     * @param  string  $name\n     * @param  \\Illuminate\\Contracts\\Auth\\UserProvider  $provider\n     * @param  \\Illuminate\\Contracts\\Session\\Session  $session\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request|null  $request\n     * @return void\n     */\n    public function __construct($name,\n                                UserProvider $provider,\n                                Session $session,\n                                Request $request = null)\n    {\n        $this->name = $name;\n        $this->session = $session;\n        $this->request = $request;\n        $this->provider = $provider;\n    }\n\n    /**\n     * Get the currently authenticated user.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function user()\n    {\n        if ($this->loggedOut) {\n            return;\n        }\n\n        // If we've already retrieved the user for the current request we can just\n        // return it back immediately. We do not want to fetch the user data on\n        // every call to this method because that would be tremendously slow.\n        if (! is_null($this->user)) {\n            return $this->user;\n        }\n\n        $id = $this->session->get($this->getName());\n\n        // First we will try to load the user using the identifier in the session if\n        // one exists. Otherwise we will check for a \"remember me\" cookie in this\n        // request, and if one exists, attempt to retrieve the user using that.\n        if (! is_null($id) && $this->user = $this->provider->retrieveById($id)) {\n            $this->fireAuthenticatedEvent($this->user);\n        }\n\n        // If the user is null, but we decrypt a \"recaller\" cookie we can attempt to\n        // pull the user data on that cookie which serves as a remember cookie on\n        // the application. Once we have a user we can return it to the caller.\n        if (is_null($this->user) && ! is_null($recaller = $this->recaller())) {\n            $this->user = $this->userFromRecaller($recaller);\n\n            if ($this->user) {\n                $this->updateSession($this->user->getAuthIdentifier());\n\n                $this->fireLoginEvent($this->user, true);\n            }\n        }\n\n        return $this->user;\n    }\n\n    /**\n     * Pull a user from the repository by its \"remember me\" cookie token.\n     *\n     * @param  \\Illuminate\\Auth\\Recaller  $recaller\n     * @return mixed\n     */\n    protected function userFromRecaller($recaller)\n    {\n        if (! $recaller->valid() || $this->recallAttempted) {\n            return;\n        }\n\n        // If the user is null, but we decrypt a \"recaller\" cookie we can attempt to\n        // pull the user data on that cookie which serves as a remember cookie on\n        // the application. Once we have a user we can return it to the caller.\n        $this->recallAttempted = true;\n\n        $this->viaRemember = ! is_null($user = $this->provider->retrieveByToken(\n            $recaller->id(), $recaller->token()\n        ));\n\n        return $user;\n    }\n\n    /**\n     * Get the decrypted recaller cookie for the request.\n     *\n     * @return \\Illuminate\\Auth\\Recaller|null\n     */\n    protected function recaller()\n    {\n        if (is_null($this->request)) {\n            return;\n        }\n\n        if ($recaller = $this->request->cookies->get($this->getRecallerName())) {\n            return new Recaller($recaller);\n        }\n    }\n\n    /**\n     * Get the ID for the currently authenticated user.\n     *\n     * @return int|null\n     */\n    public function id()\n    {\n        if ($this->loggedOut) {\n            return;\n        }\n\n        return $this->user()\n                    ? $this->user()->getAuthIdentifier()\n                    : $this->session->get($this->getName());\n    }\n\n    /**\n     * Log a user into the application without sessions or cookies.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function once(array $credentials = [])\n    {\n        $this->fireAttemptEvent($credentials);\n\n        if ($this->validate($credentials)) {\n            $this->setUser($this->lastAttempted);\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Log the given user ID into the application without sessions or cookies.\n     *\n     * @param  mixed  $id\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|false\n     */\n    public function onceUsingId($id)\n    {\n        if (! is_null($user = $this->provider->retrieveById($id))) {\n            $this->setUser($user);\n\n            return $user;\n        }\n\n        return false;\n    }\n\n    /**\n     * Validate a user's credentials.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validate(array $credentials = [])\n    {\n        $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials);\n\n        return $this->hasValidCredentials($user, $credentials);\n    }\n\n    /**\n     * Attempt to authenticate using HTTP Basic Auth.\n     *\n     * @param  string  $field\n     * @param  array  $extraConditions\n     * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public function basic($field = 'email', $extraConditions = [])\n    {\n        if ($this->check()) {\n            return;\n        }\n\n        // If a username is set on the HTTP basic request, we will return out without\n        // interrupting the request lifecycle. Otherwise, we'll need to generate a\n        // request indicating that the given credentials were invalid for login.\n        if ($this->attemptBasic($this->getRequest(), $field, $extraConditions)) {\n            return;\n        }\n\n        return $this->failedBasicResponse();\n    }\n\n    /**\n     * Perform a stateless HTTP Basic login attempt.\n     *\n     * @param  string  $field\n     * @param  array  $extraConditions\n     * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public function onceBasic($field = 'email', $extraConditions = [])\n    {\n        $credentials = $this->basicCredentials($this->getRequest(), $field);\n\n        if (! $this->once(array_merge($credentials, $extraConditions))) {\n            return $this->failedBasicResponse();\n        }\n    }\n\n    /**\n     * Attempt to authenticate using basic authentication.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @param  string  $field\n     * @param  array  $extraConditions\n     * @return bool\n     */\n    protected function attemptBasic(Request $request, $field, $extraConditions = [])\n    {\n        if (! $request->getUser()) {\n            return false;\n        }\n\n        return $this->attempt(array_merge(\n            $this->basicCredentials($request, $field), $extraConditions\n        ));\n    }\n\n    /**\n     * Get the credential array for a HTTP Basic request.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @param  string  $field\n     * @return array\n     */\n    protected function basicCredentials(Request $request, $field)\n    {\n        return [$field => $request->getUser(), 'password' => $request->getPassword()];\n    }\n\n    /**\n     * Get the response for basic authentication.\n     *\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\UnauthorizedHttpException\n     */\n    protected function failedBasicResponse()\n    {\n        throw new UnauthorizedHttpException('Basic', 'Invalid credentials.');\n    }\n\n    /**\n     * Attempt to authenticate a user using the given credentials.\n     *\n     * @param  array  $credentials\n     * @param  bool   $remember\n     * @return bool\n     */\n    public function attempt(array $credentials = [], $remember = false)\n    {\n        $this->fireAttemptEvent($credentials, $remember);\n\n        $this->lastAttempted = $user = $this->provider->retrieveByCredentials($credentials);\n\n        // If an implementation of UserInterface was returned, we'll ask the provider\n        // to validate the user against the given credentials, and if they are in\n        // fact valid we'll log the users into the application and return true.\n        if ($this->hasValidCredentials($user, $credentials)) {\n            $this->login($user, $remember);\n\n            return true;\n        }\n\n        // If the authentication attempt fails we will fire an event so that the user\n        // may be notified of any suspicious attempts to access their account from\n        // an unrecognized user. A developer may listen to this event as needed.\n        $this->fireFailedEvent($user, $credentials);\n\n        return false;\n    }\n\n    /**\n     * Determine if the user matches the credentials.\n     *\n     * @param  mixed  $user\n     * @param  array  $credentials\n     * @return bool\n     */\n    protected function hasValidCredentials($user, $credentials)\n    {\n        return ! is_null($user) && $this->provider->validateCredentials($user, $credentials);\n    }\n\n    /**\n     * Log the given user ID into the application.\n     *\n     * @param  mixed  $id\n     * @param  bool   $remember\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|false\n     */\n    public function loginUsingId($id, $remember = false)\n    {\n        if (! is_null($user = $this->provider->retrieveById($id))) {\n            $this->login($user, $remember);\n\n            return $user;\n        }\n\n        return false;\n    }\n\n    /**\n     * Log a user into the application.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  bool  $remember\n     * @return void\n     */\n    public function login(AuthenticatableContract $user, $remember = false)\n    {\n        $this->updateSession($user->getAuthIdentifier());\n\n        // If the user should be permanently \"remembered\" by the application we will\n        // queue a permanent cookie that contains the encrypted copy of the user\n        // identifier. We will then decrypt this later to retrieve the users.\n        if ($remember) {\n            $this->ensureRememberTokenIsSet($user);\n\n            $this->queueRecallerCookie($user);\n        }\n\n        // If we have an event dispatcher instance set we will fire an event so that\n        // any listeners will hook into the authentication events and run actions\n        // based on the login and logout events fired from the guard instances.\n        $this->fireLoginEvent($user, $remember);\n\n        $this->setUser($user);\n    }\n\n    /**\n     * Update the session with the given ID.\n     *\n     * @param  string  $id\n     * @return void\n     */\n    protected function updateSession($id)\n    {\n        $this->session->put($this->getName(), $id);\n\n        $this->session->migrate(true);\n    }\n\n    /**\n     * Create a new \"remember me\" token for the user if one doesn't already exist.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    protected function ensureRememberTokenIsSet(AuthenticatableContract $user)\n    {\n        if (empty($user->getRememberToken())) {\n            $this->cycleRememberToken($user);\n        }\n    }\n\n    /**\n     * Queue the recaller cookie into the cookie jar.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    protected function queueRecallerCookie(AuthenticatableContract $user)\n    {\n        $this->getCookieJar()->queue($this->createRecaller(\n            $user->getAuthIdentifier().'|'.$user->getRememberToken().'|'.$user->getAuthPassword()\n        ));\n    }\n\n    /**\n     * Create a \"remember me\" cookie for a given ID.\n     *\n     * @param  string  $value\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    protected function createRecaller($value)\n    {\n        return $this->getCookieJar()->forever($this->getRecallerName(), $value);\n    }\n\n    /**\n     * Log the user out of the application.\n     *\n     * @return void\n     */\n    public function logout()\n    {\n        $user = $this->user();\n\n        // If we have an event dispatcher instance, we can fire off the logout event\n        // so any further processing can be done. This allows the developer to be\n        // listening for anytime a user signs out of this application manually.\n        $this->clearUserDataFromStorage();\n\n        if (! is_null($this->user) && ! empty($user->getRememberToken())) {\n            $this->cycleRememberToken($user);\n        }\n\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\Logout($this->name, $user));\n        }\n\n        // Once we have fired the logout event we will clear the users out of memory\n        // so they are no longer available as the user is no longer considered as\n        // being signed into this application and should not be available here.\n        $this->user = null;\n\n        $this->loggedOut = true;\n    }\n\n    /**\n     * Remove the user data from the session and cookies.\n     *\n     * @return void\n     */\n    protected function clearUserDataFromStorage()\n    {\n        $this->session->remove($this->getName());\n\n        if (! is_null($this->recaller())) {\n            $this->getCookieJar()->queue($this->getCookieJar()\n                    ->forget($this->getRecallerName()));\n        }\n    }\n\n    /**\n     * Refresh the \"remember me\" token for the user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    protected function cycleRememberToken(AuthenticatableContract $user)\n    {\n        $user->setRememberToken($token = Str::random(60));\n\n        $this->provider->updateRememberToken($user, $token);\n    }\n\n    /**\n     * Invalidate other sessions for the current user.\n     *\n     * The application must be using the AuthenticateSession middleware.\n     *\n     * @param  string  $password\n     * @param  string  $attribute\n     * @return bool|null\n     */\n    public function logoutOtherDevices($password, $attribute = 'password')\n    {\n        if (! $this->user()) {\n            return;\n        }\n\n        $result = tap($this->user()->forceFill([\n            $attribute => Hash::make($password),\n        ]))->save();\n\n        if ($this->recaller() ||\n            $this->getCookieJar()->hasQueued($this->getRecallerName())) {\n            $this->queueRecallerCookie($this->user());\n        }\n\n        $this->fireOtherDeviceLogoutEvent($this->user());\n\n        return $result;\n    }\n\n    /**\n     * Register an authentication attempt event listener.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function attempting($callback)\n    {\n        if (isset($this->events)) {\n            $this->events->listen(Events\\Attempting::class, $callback);\n        }\n    }\n\n    /**\n     * Fire the attempt event with the arguments.\n     *\n     * @param  array  $credentials\n     * @param  bool  $remember\n     * @return void\n     */\n    protected function fireAttemptEvent(array $credentials, $remember = false)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\Attempting(\n                $this->name, $credentials, $remember\n            ));\n        }\n    }\n\n    /**\n     * Fire the login event if the dispatcher is set.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  bool  $remember\n     * @return void\n     */\n    protected function fireLoginEvent($user, $remember = false)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\Login(\n                $this->name, $user, $remember\n            ));\n        }\n    }\n\n    /**\n     * Fire the authenticated event if the dispatcher is set.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    protected function fireAuthenticatedEvent($user)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\Authenticated(\n                $this->name, $user\n            ));\n        }\n    }\n\n    /**\n     * Fire the other device logout event if the dispatcher is set.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    protected function fireOtherDeviceLogoutEvent($user)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\OtherDeviceLogout(\n                $this->name, $user\n            ));\n        }\n    }\n\n    /**\n     * Fire the failed authentication attempt event with the given arguments.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|null  $user\n     * @param  array  $credentials\n     * @return void\n     */\n    protected function fireFailedEvent($user, array $credentials)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch(new Events\\Failed(\n                $this->name, $user, $credentials\n            ));\n        }\n    }\n\n    /**\n     * Get the last user we attempted to authenticate.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public function getLastAttempted()\n    {\n        return $this->lastAttempted;\n    }\n\n    /**\n     * Get a unique identifier for the auth session value.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return 'login_'.$this->name.'_'.sha1(static::class);\n    }\n\n    /**\n     * Get the name of the cookie used to store the \"recaller\".\n     *\n     * @return string\n     */\n    public function getRecallerName()\n    {\n        return 'remember_'.$this->name.'_'.sha1(static::class);\n    }\n\n    /**\n     * Determine if the user was authenticated via \"remember me\" cookie.\n     *\n     * @return bool\n     */\n    public function viaRemember()\n    {\n        return $this->viaRemember;\n    }\n\n    /**\n     * Get the cookie creator instance used by the guard.\n     *\n     * @return \\Illuminate\\Contracts\\Cookie\\QueueingFactory\n     *\n     * @throws \\RuntimeException\n     */\n    public function getCookieJar()\n    {\n        if (! isset($this->cookie)) {\n            throw new RuntimeException('Cookie jar has not been set.');\n        }\n\n        return $this->cookie;\n    }\n\n    /**\n     * Set the cookie creator instance used by the guard.\n     *\n     * @param  \\Illuminate\\Contracts\\Cookie\\QueueingFactory  $cookie\n     * @return void\n     */\n    public function setCookieJar(CookieJar $cookie)\n    {\n        $this->cookie = $cookie;\n    }\n\n    /**\n     * Get the event dispatcher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public function getDispatcher()\n    {\n        return $this->events;\n    }\n\n    /**\n     * Set the event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function setDispatcher(Dispatcher $events)\n    {\n        $this->events = $events;\n    }\n\n    /**\n     * Get the session store used by the guard.\n     *\n     * @return \\Illuminate\\Contracts\\Session\\Session\n     */\n    public function getSession()\n    {\n        return $this->session;\n    }\n\n    /**\n     * Return the currently cached user.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function getUser()\n    {\n        return $this->user;\n    }\n\n    /**\n     * Set the current user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return $this\n     */\n    public function setUser(AuthenticatableContract $user)\n    {\n        $this->user = $user;\n\n        $this->loggedOut = false;\n\n        $this->fireAuthenticatedEvent($user);\n\n        return $this;\n    }\n\n    /**\n     * Get the current request instance.\n     *\n     * @return \\Symfony\\Component\\HttpFoundation\\Request\n     */\n    public function getRequest()\n    {\n        return $this->request ?: Request::createFromGlobals();\n    }\n\n    /**\n     * Set the current request instance.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @return $this\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php",
    "content": "<?php\n\nnamespace Illuminate\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Auth\\Guard;\nuse Illuminate\\Contracts\\Auth\\UserProvider;\n\nclass TokenGuard implements Guard\n{\n    use GuardHelpers;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $request;\n\n    /**\n     * The name of the query string item from the request containing the API token.\n     *\n     * @var string\n     */\n    protected $inputKey;\n\n    /**\n     * The name of the token \"column\" in persistent storage.\n     *\n     * @var string\n     */\n    protected $storageKey;\n\n    /**\n     * Indicates if the API token is hashed in storage.\n     *\n     * @var bool\n     */\n    protected $hash = false;\n\n    /**\n     * Create a new authentication guard.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\UserProvider  $provider\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $inputKey\n     * @param  string  $storageKey\n     * @param  bool  $hash\n     * @return void\n     */\n    public function __construct(\n        UserProvider $provider,\n        Request $request,\n        $inputKey = 'api_token',\n        $storageKey = 'api_token',\n        $hash = false)\n    {\n        $this->hash = $hash;\n        $this->request = $request;\n        $this->provider = $provider;\n        $this->inputKey = $inputKey;\n        $this->storageKey = $storageKey;\n    }\n\n    /**\n     * Get the currently authenticated user.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function user()\n    {\n        // If we've already retrieved the user for the current request we can just\n        // return it back immediately. We do not want to fetch the user data on\n        // every call to this method because that would be tremendously slow.\n        if (! is_null($this->user)) {\n            return $this->user;\n        }\n\n        $user = null;\n\n        $token = $this->getTokenForRequest();\n\n        if (! empty($token)) {\n            $user = $this->provider->retrieveByCredentials([\n                $this->storageKey => $this->hash ? hash('sha256', $token) : $token,\n            ]);\n        }\n\n        return $this->user = $user;\n    }\n\n    /**\n     * Get the token for the current request.\n     *\n     * @return string\n     */\n    public function getTokenForRequest()\n    {\n        $token = $this->request->query($this->inputKey);\n\n        if (empty($token)) {\n            $token = $this->request->input($this->inputKey);\n        }\n\n        if (empty($token)) {\n            $token = $this->request->bearerToken();\n        }\n\n        if (empty($token)) {\n            $token = $this->request->getPassword();\n        }\n\n        return $token;\n    }\n\n    /**\n     * Validate a user's credentials.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validate(array $credentials = [])\n    {\n        if (empty($credentials[$this->inputKey])) {\n            return false;\n        }\n\n        $credentials = [$this->storageKey => $credentials[$this->inputKey]];\n\n        if ($this->provider->retrieveByCredentials($credentials)) {\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Set the current request instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return $this\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Auth/composer.json",
    "content": "{\n    \"name\": \"illuminate/auth\",\n    \"description\": \"The Illuminate Auth package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/http\": \"5.8.*\",\n        \"illuminate/queue\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Auth\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/console\": \"Required to use the auth:clear-resets command (5.8.*).\",\n        \"illuminate/queue\": \"Required to fire login / logout events (5.8.*).\",\n        \"illuminate/session\": \"Required to use the session based guard (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastController.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Controller;\nuse Illuminate\\Support\\Facades\\Broadcast;\n\nclass BroadcastController extends Controller\n{\n    /**\n     * Authenticate the request for channel access.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function authenticate(Request $request)\n    {\n        if ($request->hasSession()) {\n            $request->session()->reflash();\n        }\n\n        return Broadcast::auth($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse ReflectionClass;\nuse ReflectionProperty;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Broadcasting\\Broadcaster;\n\nclass BroadcastEvent implements ShouldQueue\n{\n    use Queueable;\n\n    /**\n     * The event instance.\n     *\n     * @var mixed\n     */\n    public $event;\n\n    /**\n     * Create a new job handler instance.\n     *\n     * @param  mixed  $event\n     * @return void\n     */\n    public function __construct($event)\n    {\n        $this->event = $event;\n    }\n\n    /**\n     * Handle the queued job.\n     *\n     * @param  \\Illuminate\\Contracts\\Broadcasting\\Broadcaster  $broadcaster\n     * @return void\n     */\n    public function handle(Broadcaster $broadcaster)\n    {\n        $name = method_exists($this->event, 'broadcastAs')\n                ? $this->event->broadcastAs() : get_class($this->event);\n\n        $broadcaster->broadcast(\n            Arr::wrap($this->event->broadcastOn()), $name,\n            $this->getPayloadFromEvent($this->event)\n        );\n    }\n\n    /**\n     * Get the payload for the given event.\n     *\n     * @param  mixed  $event\n     * @return array\n     */\n    protected function getPayloadFromEvent($event)\n    {\n        if (method_exists($event, 'broadcastWith')) {\n            return array_merge(\n                $event->broadcastWith(), ['socket' => data_get($event, 'socket')]\n            );\n        }\n\n        $payload = [];\n\n        foreach ((new ReflectionClass($event))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) {\n            $payload[$property->getName()] = $this->formatProperty($property->getValue($event));\n        }\n\n        unset($payload['broadcastQueue']);\n\n        return $payload;\n    }\n\n    /**\n     * Format the given value for a property.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function formatProperty($value)\n    {\n        if ($value instanceof Arrayable) {\n            return $value->toArray();\n        }\n\n        return $value;\n    }\n\n    /**\n     * Get the display name for the queued job.\n     *\n     * @return string\n     */\n    public function displayName()\n    {\n        return get_class($this->event);\n    }\n\n    /**\n     * Prepare the instance for cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->event = clone $this->event;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastException.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse RuntimeException;\n\nclass BroadcastException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse Closure;\nuse Pusher\\Pusher;\nuse Psr\\Log\\LoggerInterface;\nuse InvalidArgumentException;\nuse Illuminate\\Broadcasting\\Broadcasters\\LogBroadcaster;\nuse Illuminate\\Broadcasting\\Broadcasters\\NullBroadcaster;\nuse Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow;\nuse Illuminate\\Broadcasting\\Broadcasters\\RedisBroadcaster;\nuse Illuminate\\Broadcasting\\Broadcasters\\PusherBroadcaster;\nuse Illuminate\\Contracts\\Broadcasting\\Factory as FactoryContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n */\nclass BroadcastManager implements FactoryContract\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of resolved broadcast drivers.\n     *\n     * @var array\n     */\n    protected $drivers = [];\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * Create a new manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Register the routes for handling broadcast authentication and sockets.\n     *\n     * @param  array|null  $attributes\n     * @return void\n     */\n    public function routes(array $attributes = null)\n    {\n        if ($this->app->routesAreCached()) {\n            return;\n        }\n\n        $attributes = $attributes ?: ['middleware' => ['web']];\n\n        $this->app['router']->group($attributes, function ($router) {\n            $router->match(\n                ['get', 'post'], '/broadcasting/auth',\n                '\\\\'.BroadcastController::class.'@authenticate'\n            );\n        });\n    }\n\n    /**\n     * Get the socket ID for the given request.\n     *\n     * @param  \\Illuminate\\Http\\Request|null  $request\n     * @return string|null\n     */\n    public function socket($request = null)\n    {\n        if (! $request && ! $this->app->bound('request')) {\n            return;\n        }\n\n        $request = $request ?: $this->app['request'];\n\n        return $request->header('X-Socket-ID');\n    }\n\n    /**\n     * Begin broadcasting an event.\n     *\n     * @param  mixed|null  $event\n     * @return \\Illuminate\\Broadcasting\\PendingBroadcast|void\n     */\n    public function event($event = null)\n    {\n        return new PendingBroadcast($this->app->make('events'), $event);\n    }\n\n    /**\n     * Queue the given event for broadcast.\n     *\n     * @param  mixed  $event\n     * @return void\n     */\n    public function queue($event)\n    {\n        $connection = $event instanceof ShouldBroadcastNow ? 'sync' : null;\n\n        if (is_null($connection) && isset($event->connection)) {\n            $connection = $event->connection;\n        }\n\n        $queue = null;\n\n        if (method_exists($event, 'broadcastQueue')) {\n            $queue = $event->broadcastQueue();\n        } elseif (isset($event->broadcastQueue)) {\n            $queue = $event->broadcastQueue;\n        } elseif (isset($event->queue)) {\n            $queue = $event->queue;\n        }\n\n        $this->app->make('queue')->connection($connection)->pushOn(\n            $queue, new BroadcastEvent(clone $event)\n        );\n    }\n\n    /**\n     * Get a driver instance.\n     *\n     * @param  string|null  $driver\n     * @return mixed\n     */\n    public function connection($driver = null)\n    {\n        return $this->driver($driver);\n    }\n\n    /**\n     * Get a driver instance.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function driver($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        return $this->drivers[$name] = $this->get($name);\n    }\n\n    /**\n     * Attempt to get the connection from the local cache.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     */\n    protected function get($name)\n    {\n        return $this->drivers[$name] ?? $this->resolve($name);\n    }\n\n    /**\n     * Resolve the given broadcaster.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($config);\n        }\n\n        $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n        if (! method_exists($this, $driverMethod)) {\n            throw new InvalidArgumentException(\"Driver [{$config['driver']}] is not supported.\");\n        }\n\n        return $this->{$driverMethod}($config);\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  array  $config\n     * @return mixed\n     */\n    protected function callCustomCreator(array $config)\n    {\n        return $this->customCreators[$config['driver']]($this->app, $config);\n    }\n\n    /**\n     * Create an instance of the driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     */\n    protected function createPusherDriver(array $config)\n    {\n        $pusher = new Pusher(\n            $config['key'], $config['secret'],\n            $config['app_id'], $config['options'] ?? []\n        );\n\n        if ($config['log'] ?? false) {\n            $pusher->setLogger($this->app->make(LoggerInterface::class));\n        }\n\n        return new PusherBroadcaster($pusher);\n    }\n\n    /**\n     * Create an instance of the driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     */\n    protected function createRedisDriver(array $config)\n    {\n        return new RedisBroadcaster(\n            $this->app->make('redis'), $config['connection'] ?? null\n        );\n    }\n\n    /**\n     * Create an instance of the driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     */\n    protected function createLogDriver(array $config)\n    {\n        return new LogBroadcaster(\n            $this->app->make(LoggerInterface::class)\n        );\n    }\n\n    /**\n     * Create an instance of the driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Broadcasting\\Broadcaster\n     */\n    protected function createNullDriver(array $config)\n    {\n        return new NullBroadcaster;\n    }\n\n    /**\n     * Get the connection configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        if (! is_null($name) && $name !== 'null') {\n            return $this->app['config'][\"broadcasting.connections.{$name}\"];\n        }\n\n        return ['driver' => 'null'];\n    }\n\n    /**\n     * Get the default driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['broadcasting.default'];\n    }\n\n    /**\n     * Set the default driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['broadcasting.default'] = $name;\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->driver()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/BroadcastServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Contracts\\Broadcasting\\Factory as BroadcastingFactory;\nuse Illuminate\\Contracts\\Broadcasting\\Broadcaster as BroadcasterContract;\n\nclass BroadcastServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton(BroadcastManager::class, function ($app) {\n            return new BroadcastManager($app);\n        });\n\n        $this->app->singleton(BroadcasterContract::class, function ($app) {\n            return $app->make(BroadcastManager::class)->connection();\n        });\n\n        $this->app->alias(\n            BroadcastManager::class, BroadcastingFactory::class\n        );\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            BroadcastManager::class,\n            BroadcastingFactory::class,\n            BroadcasterContract::class,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nuse Exception;\nuse ReflectionClass;\nuse ReflectionFunction;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Routing\\UrlRoutable;\nuse Illuminate\\Contracts\\Routing\\BindingRegistrar;\nuse Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException;\nuse Illuminate\\Contracts\\Broadcasting\\Broadcaster as BroadcasterContract;\n\nabstract class Broadcaster implements BroadcasterContract\n{\n    /**\n     * The registered channel authenticators.\n     *\n     * @var array\n     */\n    protected $channels = [];\n\n    /**\n     * The registered channel options.\n     *\n     * @var array\n     */\n    protected $channelOptions = [];\n\n    /**\n     * The binding registrar instance.\n     *\n     * @var \\Illuminate\\Contracts\\Routing\\BindingRegistrar\n     */\n    protected $bindingRegistrar;\n\n    /**\n     * Register a channel authenticator.\n     *\n     * @param  string  $channel\n     * @param  callable|string  $callback\n     * @param  array  $options\n     * @return $this\n     */\n    public function channel($channel, $callback, $options = [])\n    {\n        $this->channels[$channel] = $callback;\n\n        $this->channelOptions[$channel] = $options;\n\n        return $this;\n    }\n\n    /**\n     * Authenticate the incoming request for a given channel.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $channel\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException\n     */\n    protected function verifyUserCanAccessChannel($request, $channel)\n    {\n        foreach ($this->channels as $pattern => $callback) {\n            if (! $this->channelNameMatchesPattern($channel, $pattern)) {\n                continue;\n            }\n\n            $parameters = $this->extractAuthParameters($pattern, $channel, $callback);\n\n            $handler = $this->normalizeChannelHandlerToCallable($callback);\n\n            if ($result = $handler($this->retrieveUser($request, $channel), ...$parameters)) {\n                return $this->validAuthenticationResponse($request, $result);\n            }\n        }\n\n        throw new AccessDeniedHttpException;\n    }\n\n    /**\n     * Extract the parameters from the given pattern and channel.\n     *\n     * @param  string  $pattern\n     * @param  string  $channel\n     * @param  callable|string  $callback\n     * @return array\n     */\n    protected function extractAuthParameters($pattern, $channel, $callback)\n    {\n        $callbackParameters = $this->extractParameters($callback);\n\n        return collect($this->extractChannelKeys($pattern, $channel))->reject(function ($value, $key) {\n            return is_numeric($key);\n        })->map(function ($value, $key) use ($callbackParameters) {\n            return $this->resolveBinding($key, $value, $callbackParameters);\n        })->values()->all();\n    }\n\n    /**\n     * Extracts the parameters out of what the user passed to handle the channel authentication.\n     *\n     * @param  callable|string  $callback\n     * @return \\ReflectionParameter[]\n     *\n     * @throws \\Exception\n     */\n    protected function extractParameters($callback)\n    {\n        if (is_callable($callback)) {\n            return (new ReflectionFunction($callback))->getParameters();\n        } elseif (is_string($callback)) {\n            return $this->extractParametersFromClass($callback);\n        }\n\n        throw new Exception('Given channel handler is an unknown type.');\n    }\n\n    /**\n     * Extracts the parameters out of a class channel's \"join\" method.\n     *\n     * @param  string  $callback\n     * @return \\ReflectionParameter[]\n     *\n     * @throws \\Exception\n     */\n    protected function extractParametersFromClass($callback)\n    {\n        $reflection = new ReflectionClass($callback);\n\n        if (! $reflection->hasMethod('join')) {\n            throw new Exception('Class based channel must define a \"join\" method.');\n        }\n\n        return $reflection->getMethod('join')->getParameters();\n    }\n\n    /**\n     * Extract the channel keys from the incoming channel name.\n     *\n     * @param  string  $pattern\n     * @param  string  $channel\n     * @return array\n     */\n    protected function extractChannelKeys($pattern, $channel)\n    {\n        preg_match('/^'.preg_replace('/\\{(.*?)\\}/', '(?<$1>[^\\.]+)', $pattern).'/', $channel, $keys);\n\n        return $keys;\n    }\n\n    /**\n     * Resolve the given parameter binding.\n     *\n     * @param  string  $key\n     * @param  string  $value\n     * @param  array  $callbackParameters\n     * @return mixed\n     */\n    protected function resolveBinding($key, $value, $callbackParameters)\n    {\n        $newValue = $this->resolveExplicitBindingIfPossible($key, $value);\n\n        return $newValue === $value ? $this->resolveImplicitBindingIfPossible(\n            $key, $value, $callbackParameters\n        ) : $newValue;\n    }\n\n    /**\n     * Resolve an explicit parameter binding if applicable.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function resolveExplicitBindingIfPossible($key, $value)\n    {\n        $binder = $this->binder();\n\n        if ($binder && $binder->getBindingCallback($key)) {\n            return call_user_func($binder->getBindingCallback($key), $value);\n        }\n\n        return $value;\n    }\n\n    /**\n     * Resolve an implicit parameter binding if applicable.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  array  $callbackParameters\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException\n     */\n    protected function resolveImplicitBindingIfPossible($key, $value, $callbackParameters)\n    {\n        foreach ($callbackParameters as $parameter) {\n            if (! $this->isImplicitlyBindable($key, $parameter)) {\n                continue;\n            }\n\n            $instance = $parameter->getClass()->newInstance();\n\n            if (! $model = $instance->resolveRouteBinding($value)) {\n                throw new AccessDeniedHttpException;\n            }\n\n            return $model;\n        }\n\n        return $value;\n    }\n\n    /**\n     * Determine if a given key and parameter is implicitly bindable.\n     *\n     * @param  string  $key\n     * @param  \\ReflectionParameter  $parameter\n     * @return bool\n     */\n    protected function isImplicitlyBindable($key, $parameter)\n    {\n        return $parameter->name === $key && $parameter->getClass() &&\n                        $parameter->getClass()->isSubclassOf(UrlRoutable::class);\n    }\n\n    /**\n     * Format the channel array into an array of strings.\n     *\n     * @param  array  $channels\n     * @return array\n     */\n    protected function formatChannels(array $channels)\n    {\n        return array_map(function ($channel) {\n            return (string) $channel;\n        }, $channels);\n    }\n\n    /**\n     * Get the model binding registrar instance.\n     *\n     * @return \\Illuminate\\Contracts\\Routing\\BindingRegistrar\n     */\n    protected function binder()\n    {\n        if (! $this->bindingRegistrar) {\n            $this->bindingRegistrar = Container::getInstance()->bound(BindingRegistrar::class)\n                        ? Container::getInstance()->make(BindingRegistrar::class) : null;\n        }\n\n        return $this->bindingRegistrar;\n    }\n\n    /**\n     * Normalize the given callback into a callable.\n     *\n     * @param  mixed  $callback\n     * @return callable|\\Closure\n     */\n    protected function normalizeChannelHandlerToCallable($callback)\n    {\n        return is_callable($callback) ? $callback : function (...$args) use ($callback) {\n            return Container::getInstance()\n                ->make($callback)\n                ->join(...$args);\n        };\n    }\n\n    /**\n     * Retrieve the authenticated user using the configured guard (if any).\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $channel\n     * @return mixed\n     */\n    protected function retrieveUser($request, $channel)\n    {\n        $options = $this->retrieveChannelOptions($channel);\n\n        $guards = $options['guards'] ?? null;\n\n        if (is_null($guards)) {\n            return $request->user();\n        }\n\n        foreach (Arr::wrap($guards) as $guard) {\n            if ($user = $request->user($guard)) {\n                return $user;\n            }\n        }\n    }\n\n    /**\n     * Retrieve options for a certain channel.\n     *\n     * @param  string  $channel\n     * @return array\n     */\n    protected function retrieveChannelOptions($channel)\n    {\n        foreach ($this->channelOptions as $pattern => $options) {\n            if (! $this->channelNameMatchesPattern($channel, $pattern)) {\n                continue;\n            }\n\n            return $options;\n        }\n\n        return [];\n    }\n\n    /**\n     * Check if channel name from request match a pattern from registered channels.\n     *\n     * @param  string  $channel\n     * @param  string  $pattern\n     * @return bool\n     */\n    protected function channelNameMatchesPattern($channel, $pattern)\n    {\n        return Str::is(preg_replace('/\\{(.*?)\\}/', '*', $pattern), $channel);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/LogBroadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nuse Psr\\Log\\LoggerInterface;\n\nclass LogBroadcaster extends Broadcaster\n{\n    /**\n     * The logger implementation.\n     *\n     * @var \\Psr\\Log\\LoggerInterface\n     */\n    protected $logger;\n\n    /**\n     * Create a new broadcaster instance.\n     *\n     * @param  \\Psr\\Log\\LoggerInterface  $logger\n     * @return void\n     */\n    public function __construct(LoggerInterface $logger)\n    {\n        $this->logger = $logger;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function auth($request)\n    {\n        //\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function validAuthenticationResponse($request, $result)\n    {\n        //\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function broadcast(array $channels, $event, array $payload = [])\n    {\n        $channels = implode(', ', $this->formatChannels($channels));\n\n        $payload = json_encode($payload, JSON_PRETTY_PRINT);\n\n        $this->logger->info('Broadcasting ['.$event.'] on channels ['.$channels.'] with payload:'.PHP_EOL.$payload);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/NullBroadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nclass NullBroadcaster extends Broadcaster\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function auth($request)\n    {\n        //\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function validAuthenticationResponse($request, $result)\n    {\n        //\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function broadcast(array $channels, $event, array $payload = [])\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nuse Pusher\\Pusher;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Broadcasting\\BroadcastException;\nuse Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException;\n\nclass PusherBroadcaster extends Broadcaster\n{\n    use UsePusherChannelConventions;\n\n    /**\n     * The Pusher SDK instance.\n     *\n     * @var \\Pusher\\Pusher\n     */\n    protected $pusher;\n\n    /**\n     * Create a new broadcaster instance.\n     *\n     * @param  \\Pusher\\Pusher  $pusher\n     * @return void\n     */\n    public function __construct(Pusher $pusher)\n    {\n        $this->pusher = $pusher;\n    }\n\n    /**\n     * Authenticate the incoming request for a given channel.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException\n     */\n    public function auth($request)\n    {\n        $channelName = $this->normalizeChannelName($request->channel_name);\n\n        if ($this->isGuardedChannel($request->channel_name) &&\n            ! $this->retrieveUser($request, $channelName)) {\n            throw new AccessDeniedHttpException;\n        }\n\n        return parent::verifyUserCanAccessChannel(\n            $request, $channelName\n        );\n    }\n\n    /**\n     * Return the valid authentication response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $result\n     * @return mixed\n     */\n    public function validAuthenticationResponse($request, $result)\n    {\n        if (Str::startsWith($request->channel_name, 'private')) {\n            return $this->decodePusherResponse(\n                $request, $this->pusher->socket_auth($request->channel_name, $request->socket_id)\n            );\n        }\n\n        $channelName = $this->normalizeChannelName($request->channel_name);\n\n        return $this->decodePusherResponse(\n            $request,\n            $this->pusher->presence_auth(\n                $request->channel_name, $request->socket_id,\n                $this->retrieveUser($request, $channelName)->getAuthIdentifier(), $result\n            )\n        );\n    }\n\n    /**\n     * Decode the given Pusher response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $response\n     * @return array\n     */\n    protected function decodePusherResponse($request, $response)\n    {\n        if (! $request->input('callback', false)) {\n            return json_decode($response, true);\n        }\n\n        return response()->json(json_decode($response, true))\n                    ->withCallback($request->callback);\n    }\n\n    /**\n     * Broadcast the given event.\n     *\n     * @param  array  $channels\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function broadcast(array $channels, $event, array $payload = [])\n    {\n        $socket = Arr::pull($payload, 'socket');\n\n        $response = $this->pusher->trigger(\n            $this->formatChannels($channels), $event, $payload, $socket, true\n        );\n\n        if ((is_array($response) && $response['status'] >= 200 && $response['status'] <= 299)\n            || $response === true) {\n            return;\n        }\n\n        throw new BroadcastException(\n            is_bool($response) ? 'Failed to connect to Pusher.' : $response['body']\n        );\n    }\n\n    /**\n     * Get the Pusher SDK instance.\n     *\n     * @return \\Pusher\\Pusher\n     */\n    public function getPusher()\n    {\n        return $this->pusher;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/RedisBroadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Contracts\\Redis\\Factory as Redis;\nuse Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException;\n\nclass RedisBroadcaster extends Broadcaster\n{\n    use UsePusherChannelConventions;\n\n    /**\n     * The Redis instance.\n     *\n     * @var \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    protected $redis;\n\n    /**\n     * The Redis connection to use for broadcasting.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * Create a new broadcaster instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Redis\\Factory  $redis\n     * @param  string|null  $connection\n     * @return void\n     */\n    public function __construct(Redis $redis, $connection = null)\n    {\n        $this->redis = $redis;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Authenticate the incoming request for a given channel.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException\n     */\n    public function auth($request)\n    {\n        $channelName = $this->normalizeChannelName($request->channel_name);\n\n        if ($this->isGuardedChannel($request->channel_name) &&\n            ! $this->retrieveUser($request, $channelName)) {\n            throw new AccessDeniedHttpException;\n        }\n\n        return parent::verifyUserCanAccessChannel(\n            $request, $channelName\n        );\n    }\n\n    /**\n     * Return the valid authentication response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $result\n     * @return mixed\n     */\n    public function validAuthenticationResponse($request, $result)\n    {\n        if (is_bool($result)) {\n            return json_encode($result);\n        }\n\n        $channelName = $this->normalizeChannelName($request->channel_name);\n\n        return json_encode(['channel_data' => [\n            'user_id' => $this->retrieveUser($request, $channelName)->getAuthIdentifier(),\n            'user_info' => $result,\n        ]]);\n    }\n\n    /**\n     * Broadcast the given event.\n     *\n     * @param  array  $channels\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function broadcast(array $channels, $event, array $payload = [])\n    {\n        $connection = $this->redis->connection($this->connection);\n\n        $payload = json_encode([\n            'event' => $event,\n            'data' => $payload,\n            'socket' => Arr::pull($payload, 'socket'),\n        ]);\n\n        foreach ($this->formatChannels($channels) as $channel) {\n            $connection->publish($channel, $payload);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/UsePusherChannelConventions.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting\\Broadcasters;\n\nuse Illuminate\\Support\\Str;\n\ntrait UsePusherChannelConventions\n{\n    /**\n     * Return true if channel is protected by authentication.\n     *\n     * @param  string  $channel\n     * @return bool\n     */\n    public function isGuardedChannel($channel)\n    {\n        return Str::startsWith($channel, ['private-', 'presence-']);\n    }\n\n    /**\n     * Remove prefix from channel name.\n     *\n     * @param  string  $channel\n     * @return string\n     */\n    public function normalizeChannelName($channel)\n    {\n        if ($this->isGuardedChannel($channel)) {\n            return Str::startsWith($channel, 'private-')\n                ? Str::replaceFirst('private-', '', $channel)\n                : Str::replaceFirst('presence-', '', $channel);\n        }\n\n        return $channel;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/Channel.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nclass Channel\n{\n    /**\n     * The channel's name.\n     *\n     * @var string\n     */\n    public $name;\n\n    /**\n     * Create a new channel instance.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function __construct($name)\n    {\n        $this->name = $name;\n    }\n\n    /**\n     * Convert the channel instance to a string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/InteractsWithSockets.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse Illuminate\\Support\\Facades\\Broadcast;\n\ntrait InteractsWithSockets\n{\n    /**\n     * The socket ID for the user that raised the event.\n     *\n     * @var string|null\n     */\n    public $socket;\n\n    /**\n     * Exclude the current user from receiving the broadcast.\n     *\n     * @return $this\n     */\n    public function dontBroadcastToCurrentUser()\n    {\n        $this->socket = Broadcast::socket();\n\n        return $this;\n    }\n\n    /**\n     * Broadcast the event to everyone.\n     *\n     * @return $this\n     */\n    public function broadcastToEveryone()\n    {\n        $this->socket = null;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/PendingBroadcast.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nuse Illuminate\\Contracts\\Events\\Dispatcher;\n\nclass PendingBroadcast\n{\n    /**\n     * The event dispatcher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The event instance.\n     *\n     * @var mixed\n     */\n    protected $event;\n\n    /**\n     * Create a new pending broadcast instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @param  mixed  $event\n     * @return void\n     */\n    public function __construct(Dispatcher $events, $event)\n    {\n        $this->event = $event;\n        $this->events = $events;\n    }\n\n    /**\n     * Broadcast the event to everyone except the current user.\n     *\n     * @return $this\n     */\n    public function toOthers()\n    {\n        if (method_exists($this->event, 'dontBroadcastToCurrentUser')) {\n            $this->event->dontBroadcastToCurrentUser();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Handle the object's destruction.\n     *\n     * @return void\n     */\n    public function __destruct()\n    {\n        $this->events->dispatch($this->event);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/PresenceChannel.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nclass PresenceChannel extends Channel\n{\n    /**\n     * Create a new channel instance.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function __construct($name)\n    {\n        parent::__construct('presence-'.$name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/PrivateChannel.php",
    "content": "<?php\n\nnamespace Illuminate\\Broadcasting;\n\nclass PrivateChannel extends Channel\n{\n    /**\n     * Create a new channel instance.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function __construct($name)\n    {\n        parent::__construct('private-'.$name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Broadcasting/composer.json",
    "content": "{\n    \"name\": \"illuminate/broadcasting\",\n    \"description\": \"The Illuminate Broadcasting package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"psr/log\": \"^1.0\",\n        \"illuminate/bus\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/queue\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Broadcasting\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"pusher/pusher-php-server\": \"Required to use the Pusher broadcast driver (^3.0).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Bus;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as DispatcherContract;\nuse Illuminate\\Contracts\\Queue\\Factory as QueueFactoryContract;\nuse Illuminate\\Contracts\\Bus\\QueueingDispatcher as QueueingDispatcherContract;\n\nclass BusServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton(Dispatcher::class, function ($app) {\n            return new Dispatcher($app, function ($connection = null) use ($app) {\n                return $app[QueueFactoryContract::class]->connection($connection);\n            });\n        });\n\n        $this->app->alias(\n            Dispatcher::class, DispatcherContract::class\n        );\n\n        $this->app->alias(\n            Dispatcher::class, QueueingDispatcherContract::class\n        );\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            Dispatcher::class,\n            DispatcherContract::class,\n            QueueingDispatcherContract::class,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Bus;\n\nuse Closure;\nuse RuntimeException;\nuse Illuminate\\Pipeline\\Pipeline;\nuse Illuminate\\Contracts\\Queue\\Queue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Bus\\QueueingDispatcher;\n\nclass Dispatcher implements QueueingDispatcher\n{\n    /**\n     * The container implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The pipeline instance for the bus.\n     *\n     * @var \\Illuminate\\Pipeline\\Pipeline\n     */\n    protected $pipeline;\n\n    /**\n     * The pipes to send commands through before dispatching.\n     *\n     * @var array\n     */\n    protected $pipes = [];\n\n    /**\n     * The command to handler mapping for non-self-handling events.\n     *\n     * @var array\n     */\n    protected $handlers = [];\n\n    /**\n     * The queue resolver callback.\n     *\n     * @var \\Closure|null\n     */\n    protected $queueResolver;\n\n    /**\n     * Create a new command dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @param  \\Closure|null  $queueResolver\n     * @return void\n     */\n    public function __construct(Container $container, Closure $queueResolver = null)\n    {\n        $this->container = $container;\n        $this->queueResolver = $queueResolver;\n        $this->pipeline = new Pipeline($container);\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     */\n    public function dispatch($command)\n    {\n        if ($this->queueResolver && $this->commandShouldBeQueued($command)) {\n            return $this->dispatchToQueue($command);\n        }\n\n        return $this->dispatchNow($command);\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler in the current process.\n     *\n     * @param  mixed  $command\n     * @param  mixed  $handler\n     * @return mixed\n     */\n    public function dispatchNow($command, $handler = null)\n    {\n        if ($handler || $handler = $this->getCommandHandler($command)) {\n            $callback = function ($command) use ($handler) {\n                return $handler->handle($command);\n            };\n        } else {\n            $callback = function ($command) {\n                return $this->container->call([$command, 'handle']);\n            };\n        }\n\n        return $this->pipeline->send($command)->through($this->pipes)->then($callback);\n    }\n\n    /**\n     * Determine if the given command has a handler.\n     *\n     * @param  mixed  $command\n     * @return bool\n     */\n    public function hasCommandHandler($command)\n    {\n        return array_key_exists(get_class($command), $this->handlers);\n    }\n\n    /**\n     * Retrieve the handler for a command.\n     *\n     * @param  mixed  $command\n     * @return bool|mixed\n     */\n    public function getCommandHandler($command)\n    {\n        if ($this->hasCommandHandler($command)) {\n            return $this->container->make($this->handlers[get_class($command)]);\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the given command should be queued.\n     *\n     * @param  mixed  $command\n     * @return bool\n     */\n    protected function commandShouldBeQueued($command)\n    {\n        return $command instanceof ShouldQueue;\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler behind a queue.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     *\n     * @throws \\RuntimeException\n     */\n    public function dispatchToQueue($command)\n    {\n        $connection = $command->connection ?? null;\n\n        $queue = call_user_func($this->queueResolver, $connection);\n\n        if (! $queue instanceof Queue) {\n            throw new RuntimeException('Queue resolver did not return a Queue implementation.');\n        }\n\n        if (method_exists($command, 'queue')) {\n            return $command->queue($queue, $command);\n        }\n\n        return $this->pushCommandToQueue($queue, $command);\n    }\n\n    /**\n     * Push the command onto the given queue instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Queue  $queue\n     * @param  mixed  $command\n     * @return mixed\n     */\n    protected function pushCommandToQueue($queue, $command)\n    {\n        if (isset($command->queue, $command->delay)) {\n            return $queue->laterOn($command->queue, $command->delay, $command);\n        }\n\n        if (isset($command->queue)) {\n            return $queue->pushOn($command->queue, $command);\n        }\n\n        if (isset($command->delay)) {\n            return $queue->later($command->delay, $command);\n        }\n\n        return $queue->push($command);\n    }\n\n    /**\n     * Set the pipes through which commands should be piped before dispatching.\n     *\n     * @param  array  $pipes\n     * @return $this\n     */\n    public function pipeThrough(array $pipes)\n    {\n        $this->pipes = $pipes;\n\n        return $this;\n    }\n\n    /**\n     * Map a command to a handler.\n     *\n     * @param  array  $map\n     * @return $this\n     */\n    public function map(array $map)\n    {\n        $this->handlers = array_merge($this->handlers, $map);\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Bus/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Bus/Queueable.php",
    "content": "<?php\n\nnamespace Illuminate\\Bus;\n\ntrait Queueable\n{\n    /**\n     * The name of the connection the job should be sent to.\n     *\n     * @var string|null\n     */\n    public $connection;\n\n    /**\n     * The name of the queue the job should be sent to.\n     *\n     * @var string|null\n     */\n    public $queue;\n\n    /**\n     * The name of the connection the chain should be sent to.\n     *\n     * @var string|null\n     */\n    public $chainConnection;\n\n    /**\n     * The name of the queue the chain should be sent to.\n     *\n     * @var string|null\n     */\n    public $chainQueue;\n\n    /**\n     * The number of seconds before the job should be made available.\n     *\n     * @var \\DateTimeInterface|\\DateInterval|int|null\n     */\n    public $delay;\n\n    /**\n     * The jobs that should run if this job is successful.\n     *\n     * @var array\n     */\n    public $chained = [];\n\n    /**\n     * Set the desired connection for the job.\n     *\n     * @param  string|null  $connection\n     * @return $this\n     */\n    public function onConnection($connection)\n    {\n        $this->connection = $connection;\n\n        return $this;\n    }\n\n    /**\n     * Set the desired queue for the job.\n     *\n     * @param  string|null  $queue\n     * @return $this\n     */\n    public function onQueue($queue)\n    {\n        $this->queue = $queue;\n\n        return $this;\n    }\n\n    /**\n     * Set the desired connection for the chain.\n     *\n     * @param  string|null  $connection\n     * @return $this\n     */\n    public function allOnConnection($connection)\n    {\n        $this->chainConnection = $connection;\n        $this->connection = $connection;\n\n        return $this;\n    }\n\n    /**\n     * Set the desired queue for the chain.\n     *\n     * @param  string|null  $queue\n     * @return $this\n     */\n    public function allOnQueue($queue)\n    {\n        $this->chainQueue = $queue;\n        $this->queue = $queue;\n\n        return $this;\n    }\n\n    /**\n     * Set the desired delay for the job.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $delay\n     * @return $this\n     */\n    public function delay($delay)\n    {\n        $this->delay = $delay;\n\n        return $this;\n    }\n\n    /**\n     * Set the jobs that should run if this job is successful.\n     *\n     * @param  array  $chain\n     * @return $this\n     */\n    public function chain($chain)\n    {\n        $this->chained = collect($chain)->map(function ($job) {\n            return serialize($job);\n        })->all();\n\n        return $this;\n    }\n\n    /**\n     * Dispatch the next job on the chain.\n     *\n     * @return void\n     */\n    public function dispatchNextJobInChain()\n    {\n        if (! empty($this->chained)) {\n            dispatch(tap(unserialize(array_shift($this->chained)), function ($next) {\n                $next->chained = $this->chained;\n\n                $next->onConnection($next->connection ?: $this->chainConnection);\n                $next->onQueue($next->queue ?: $this->chainQueue);\n\n                $next->chainConnection = $this->chainConnection;\n                $next->chainQueue = $this->chainQueue;\n            }));\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Bus/composer.json",
    "content": "{\n    \"name\": \"illuminate/bus\",\n    \"description\": \"The Illuminate Bus package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/pipeline\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Bus\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/ApcStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass ApcStore extends TaggableStore\n{\n    use RetrievesMultipleKeys;\n\n    /**\n     * The APC wrapper instance.\n     *\n     * @var \\Illuminate\\Cache\\ApcWrapper\n     */\n    protected $apc;\n\n    /**\n     * A string that should be prepended to keys.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * Create a new APC store.\n     *\n     * @param  \\Illuminate\\Cache\\ApcWrapper  $apc\n     * @param  string  $prefix\n     * @return void\n     */\n    public function __construct(ApcWrapper $apc, $prefix = '')\n    {\n        $this->apc = $apc;\n        $this->prefix = $prefix;\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        $value = $this->apc->get($this->prefix.$key);\n\n        if ($value !== false) {\n            return $value;\n        }\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        return $this->apc->put($this->prefix.$key, $value, $seconds);\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        return $this->apc->increment($this->prefix.$key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->apc->decrement($this->prefix.$key, $value);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, 0);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        return $this->apc->delete($this->prefix.$key);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        return $this->apc->flush();\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/ApcWrapper.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass ApcWrapper\n{\n    /**\n     * Indicates if APCu is supported.\n     *\n     * @var bool\n     */\n    protected $apcu = false;\n\n    /**\n     * Create a new APC wrapper instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->apcu = function_exists('apcu_fetch');\n    }\n\n    /**\n     * Get an item from the cache.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        return $this->apcu ? apcu_fetch($key) : apc_fetch($key);\n    }\n\n    /**\n     * Store an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int     $seconds\n     * @return array|bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        return $this->apcu ? apcu_store($key, $value, $seconds) : apc_store($key, $value, $seconds);\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function increment($key, $value)\n    {\n        return $this->apcu ? apcu_inc($key, $value) : apc_inc($key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function decrement($key, $value)\n    {\n        return $this->apcu ? apcu_dec($key, $value) : apc_dec($key, $value);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function delete($key)\n    {\n        return $this->apcu ? apcu_delete($key) : apc_delete($key);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        return $this->apcu ? apcu_clear_cache() : apc_clear_cache('user');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/ArrayStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Support\\InteractsWithTime;\n\nclass ArrayStore extends TaggableStore\n{\n    use InteractsWithTime, RetrievesMultipleKeys;\n\n    /**\n     * The array of stored values.\n     *\n     * @var array\n     */\n    protected $storage = [];\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        if (! isset($this->storage[$key])) {\n            return;\n        }\n\n        $item = $this->storage[$key];\n\n        $expiresAt = $item['expiresAt'] ?? 0;\n\n        if ($expiresAt !== 0 && $this->currentTime() > $expiresAt) {\n            $this->forget($key);\n\n            return;\n        }\n\n        return $item['value'];\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        $this->storage[$key] = [\n            'value' => $value,\n            'expiresAt' => $this->calculateExpiration($seconds),\n        ];\n\n        return true;\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function increment($key, $value = 1)\n    {\n        if (! isset($this->storage[$key])) {\n            $this->forever($key, $value);\n\n            return $this->storage[$key]['value'];\n        }\n\n        $this->storage[$key]['value'] = ((int) $this->storage[$key]['value']) + $value;\n\n        return $this->storage[$key]['value'];\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->increment($key, $value * -1);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, 0);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        unset($this->storage[$key]);\n\n        return true;\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        $this->storage = [];\n\n        return true;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return '';\n    }\n\n    /**\n     * Get the expiration time of the key.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function calculateExpiration($seconds)\n    {\n        return $this->toTimestamp($seconds);\n    }\n\n    /**\n     * Get the UNIX timestamp for the given number of seconds.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function toTimestamp($seconds)\n    {\n        return $seconds > 0 ? $this->availableAt($seconds) : 0;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/CacheManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse Aws\\DynamoDb\\DynamoDbClient;\nuse Illuminate\\Contracts\\Cache\\Store;\nuse Illuminate\\Contracts\\Cache\\Factory as FactoryContract;\nuse Illuminate\\Contracts\\Events\\Dispatcher as DispatcherContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Cache\\Repository\n */\nclass CacheManager implements FactoryContract\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of resolved cache stores.\n     *\n     * @var array\n     */\n    protected $stores = [];\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * Create a new Cache manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Get a cache store instance by name, wrapped in a repository.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    public function store($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        return $this->stores[$name] = $this->get($name);\n    }\n\n    /**\n     * Get a cache driver instance.\n     *\n     * @param  string|null  $driver\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    public function driver($driver = null)\n    {\n        return $this->store($driver);\n    }\n\n    /**\n     * Attempt to get the store from the local cache.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    protected function get($name)\n    {\n        return $this->stores[$name] ?? $this->resolve($name);\n    }\n\n    /**\n     * Resolve the given store.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (is_null($config)) {\n            throw new InvalidArgumentException(\"Cache store [{$name}] is not defined.\");\n        }\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($config);\n        } else {\n            $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n            if (method_exists($this, $driverMethod)) {\n                return $this->{$driverMethod}($config);\n            } else {\n                throw new InvalidArgumentException(\"Driver [{$config['driver']}] is not supported.\");\n            }\n        }\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  array  $config\n     * @return mixed\n     */\n    protected function callCustomCreator(array $config)\n    {\n        return $this->customCreators[$config['driver']]($this->app, $config);\n    }\n\n    /**\n     * Create an instance of the APC cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createApcDriver(array $config)\n    {\n        $prefix = $this->getPrefix($config);\n\n        return $this->repository(new ApcStore(new ApcWrapper, $prefix));\n    }\n\n    /**\n     * Create an instance of the array cache driver.\n     *\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createArrayDriver()\n    {\n        return $this->repository(new ArrayStore);\n    }\n\n    /**\n     * Create an instance of the file cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createFileDriver(array $config)\n    {\n        return $this->repository(new FileStore($this->app['files'], $config['path']));\n    }\n\n    /**\n     * Create an instance of the Memcached cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createMemcachedDriver(array $config)\n    {\n        $prefix = $this->getPrefix($config);\n\n        $memcached = $this->app['memcached.connector']->connect(\n            $config['servers'],\n            $config['persistent_id'] ?? null,\n            $config['options'] ?? [],\n            array_filter($config['sasl'] ?? [])\n        );\n\n        return $this->repository(new MemcachedStore($memcached, $prefix));\n    }\n\n    /**\n     * Create an instance of the Null cache driver.\n     *\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createNullDriver()\n    {\n        return $this->repository(new NullStore);\n    }\n\n    /**\n     * Create an instance of the Redis cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createRedisDriver(array $config)\n    {\n        $redis = $this->app['redis'];\n\n        $connection = $config['connection'] ?? 'default';\n\n        return $this->repository(new RedisStore($redis, $this->getPrefix($config), $connection));\n    }\n\n    /**\n     * Create an instance of the database cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createDatabaseDriver(array $config)\n    {\n        $connection = $this->app['db']->connection($config['connection'] ?? null);\n\n        return $this->repository(\n            new DatabaseStore(\n                $connection, $config['table'], $this->getPrefix($config)\n            )\n        );\n    }\n\n    /**\n     * Create an instance of the DynamoDB cache driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function createDynamodbDriver(array $config)\n    {\n        $dynamoConfig = [\n            'region' => $config['region'],\n            'version' => 'latest',\n            'endpoint' => $config['endpoint'] ?? null,\n        ];\n\n        if ($config['key'] && $config['secret']) {\n            $dynamoConfig['credentials'] = Arr::only(\n                $config, ['key', 'secret', 'token']\n            );\n        }\n\n        return $this->repository(\n            new DynamoDbStore(\n                new DynamoDbClient($dynamoConfig),\n                $config['table'],\n                $config['attributes']['key'] ?? 'key',\n                $config['attributes']['value'] ?? 'value',\n                $config['attributes']['expiration'] ?? 'expires_at',\n                $this->getPrefix($config)\n            )\n        );\n    }\n\n    /**\n     * Create a new cache repository with the given implementation.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Store  $store\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    public function repository(Store $store)\n    {\n        $repository = new Repository($store);\n\n        if ($this->app->bound(DispatcherContract::class)) {\n            $repository->setEventDispatcher(\n                $this->app[DispatcherContract::class]\n            );\n        }\n\n        return $repository;\n    }\n\n    /**\n     * Get the cache prefix.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getPrefix(array $config)\n    {\n        return $config['prefix'] ?? $this->app['config']['cache.prefix'];\n    }\n\n    /**\n     * Get the cache connection configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        return $this->app['config'][\"cache.stores.{$name}\"];\n    }\n\n    /**\n     * Get the default cache driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['cache.default'];\n    }\n\n    /**\n     * Set the default cache driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['cache.default'] = $name;\n    }\n\n    /**\n     * Unset the given driver instances.\n     *\n     * @param  array|string|null  $name\n     * @return $this\n     */\n    public function forgetDriver($name = null)\n    {\n        $name = $name ?? $this->getDefaultDriver();\n\n        foreach ((array) $name as $cacheName) {\n            if (isset($this->stores[$cacheName])) {\n                unset($this->stores[$cacheName]);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string  $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback->bindTo($this, $this);\n\n        return $this;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->store()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/CacheServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass CacheServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('cache', function ($app) {\n            return new CacheManager($app);\n        });\n\n        $this->app->singleton('cache.store', function ($app) {\n            return $app['cache']->driver();\n        });\n\n        $this->app->singleton('memcached.connector', function () {\n            return new MemcachedConnector;\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            'cache', 'cache.store', 'memcached.connector',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Console/CacheTableCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass CacheTableCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'cache:table';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a migration for the cache database table';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new cache table command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer  $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $fullPath = $this->createBaseMigration();\n\n        $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/cache.stub'));\n\n        $this->info('Migration created successfully!');\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Create a base migration file for the table.\n     *\n     * @return string\n     */\n    protected function createBaseMigration()\n    {\n        $name = 'create_cache_table';\n\n        $path = $this->laravel->databasePath().'/migrations';\n\n        return $this->laravel['migration.creator']->create($name, $path);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Console/ClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Cache\\CacheManager;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nclass ClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'cache:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Flush the application cache';\n\n    /**\n     * The cache manager instance.\n     *\n     * @var \\Illuminate\\Cache\\CacheManager\n     */\n    protected $cache;\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new cache clear command instance.\n     *\n     * @param  \\Illuminate\\Cache\\CacheManager  $cache\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(CacheManager $cache, Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->cache = $cache;\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->laravel['events']->dispatch(\n            'cache:clearing', [$this->argument('store'), $this->tags()]\n        );\n\n        $successful = $this->cache()->flush();\n\n        $this->flushFacades();\n\n        if (! $successful) {\n            return $this->error('Failed to clear cache. Make sure you have the appropriate permissions.');\n        }\n\n        $this->laravel['events']->dispatch(\n            'cache:cleared', [$this->argument('store'), $this->tags()]\n        );\n\n        $this->info('Application cache cleared!');\n    }\n\n    /**\n     * Flush the real-time facades stored in the cache directory.\n     *\n     * @return void\n     */\n    public function flushFacades()\n    {\n        if (! $this->files->exists($storagePath = storage_path('framework/cache'))) {\n            return;\n        }\n\n        foreach ($this->files->files($storagePath) as $file) {\n            if (preg_match('/facade-.*\\.php$/', $file)) {\n                $this->files->delete($file);\n            }\n        }\n    }\n\n    /**\n     * Get the cache instance for the command.\n     *\n     * @return \\Illuminate\\Cache\\Repository\n     */\n    protected function cache()\n    {\n        $cache = $this->cache->store($this->argument('store'));\n\n        return empty($this->tags()) ? $cache : $cache->tags($this->tags());\n    }\n\n    /**\n     * Get the tags passed to the command.\n     *\n     * @return array\n     */\n    protected function tags()\n    {\n        return array_filter(explode(',', $this->option('tags')));\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [\n            ['store', InputArgument::OPTIONAL, 'The name of the store you would like to clear'],\n        ];\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['tags', null, InputOption::VALUE_OPTIONAL, 'The cache tags you would like to clear', null],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Console/ForgetCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Cache\\CacheManager;\n\nclass ForgetCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'cache:forget {key : The key to remove} {store? : The store to remove the key from}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove an item from the cache';\n\n    /**\n     * The cache manager instance.\n     *\n     * @var \\Illuminate\\Cache\\CacheManager\n     */\n    protected $cache;\n\n    /**\n     * Create a new cache clear command instance.\n     *\n     * @param  \\Illuminate\\Cache\\CacheManager  $cache\n     * @return void\n     */\n    public function __construct(CacheManager $cache)\n    {\n        parent::__construct();\n\n        $this->cache = $cache;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->cache->store($this->argument('store'))->forget(\n            $this->argument('key')\n        );\n\n        $this->info('The ['.$this->argument('key').'] key has been removed from the cache.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Console/stubs/cache.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateCacheTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('cache', function (Blueprint $table) {\n            $table->string('key')->unique();\n            $table->mediumText('value');\n            $table->integer('expiration');\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('cache');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/DatabaseStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Closure;\nuse Exception;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Cache\\Store;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Database\\PostgresConnection;\nuse Illuminate\\Database\\ConnectionInterface;\n\nclass DatabaseStore implements Store\n{\n    use InteractsWithTime, RetrievesMultipleKeys;\n\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    protected $connection;\n\n    /**\n     * The name of the cache table.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * A string that should be prepended to keys.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * Create a new database store.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $connection\n     * @param  string  $table\n     * @param  string  $prefix\n     * @return void\n     */\n    public function __construct(ConnectionInterface $connection, $table, $prefix = '')\n    {\n        $this->table = $table;\n        $this->prefix = $prefix;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        $prefixed = $this->prefix.$key;\n\n        $cache = $this->table()->where('key', '=', $prefixed)->first();\n\n        // If we have a cache record we will check the expiration time against current\n        // time on the system and see if the record has expired. If it has, we will\n        // remove the records from the database table so it isn't returned again.\n        if (is_null($cache)) {\n            return;\n        }\n\n        $cache = is_array($cache) ? (object) $cache : $cache;\n\n        // If this cache expiration date is past the current time, we will remove this\n        // item from the cache. Then we will return a null value since the cache is\n        // expired. We will use \"Carbon\" to make this comparison with the column.\n        if ($this->currentTime() >= $cache->expiration) {\n            $this->forget($key);\n\n            return;\n        }\n\n        return $this->unserialize($cache->value);\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        $key = $this->prefix.$key;\n\n        $value = $this->serialize($value);\n\n        $expiration = $this->getTime() + $seconds;\n\n        try {\n            return $this->table()->insert(compact('key', 'value', 'expiration'));\n        } catch (Exception $e) {\n            $result = $this->table()->where('key', $key)->update(compact('value', 'expiration'));\n\n            return $result > 0;\n        }\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        return $this->incrementOrDecrement($key, $value, function ($current, $value) {\n            return $current + $value;\n        });\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->incrementOrDecrement($key, $value, function ($current, $value) {\n            return $current - $value;\n        });\n    }\n\n    /**\n     * Increment or decrement an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  \\Closure  $callback\n     * @return int|bool\n     */\n    protected function incrementOrDecrement($key, $value, Closure $callback)\n    {\n        return $this->connection->transaction(function () use ($key, $value, $callback) {\n            $prefixed = $this->prefix.$key;\n\n            $cache = $this->table()->where('key', $prefixed)\n                        ->lockForUpdate()->first();\n\n            // If there is no value in the cache, we will return false here. Otherwise the\n            // value will be decrypted and we will proceed with this function to either\n            // increment or decrement this value based on the given action callbacks.\n            if (is_null($cache)) {\n                return false;\n            }\n\n            $cache = is_array($cache) ? (object) $cache : $cache;\n\n            $current = $this->unserialize($cache->value);\n\n            // Here we'll call this callback function that was given to the function which\n            // is used to either increment or decrement the function. We use a callback\n            // so we do not have to recreate all this logic in each of the functions.\n            $new = $callback((int) $current, $value);\n\n            if (! is_numeric($current)) {\n                return false;\n            }\n\n            // Here we will update the values in the table. We will also encrypt the value\n            // since database cache values are encrypted by default with secure storage\n            // that can't be easily read. We will return the new value after storing.\n            $this->table()->where('key', $prefixed)->update([\n                'value' => $this->serialize($new),\n            ]);\n\n            return $new;\n        });\n    }\n\n    /**\n     * Get the current system time.\n     *\n     * @return int\n     */\n    protected function getTime()\n    {\n        return $this->currentTime();\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, 315360000);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        $this->table()->where('key', '=', $this->prefix.$key)->delete();\n\n        return true;\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        $this->table()->delete();\n\n        return true;\n    }\n\n    /**\n     * Get a query builder for the cache table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function table()\n    {\n        return $this->connection->table($this->table);\n    }\n\n    /**\n     * Get the underlying database connection.\n     *\n     * @return \\Illuminate\\Database\\ConnectionInterface\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n\n    /**\n     * Serialize the given value.\n     *\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function serialize($value)\n    {\n        $result = serialize($value);\n\n        if ($this->connection instanceof PostgresConnection && Str::contains($result, \"\\0\")) {\n            $result = base64_encode($result);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Unserialize the given value.\n     *\n     * @param  string  $value\n     * @return mixed\n     */\n    protected function unserialize($value)\n    {\n        if ($this->connection instanceof PostgresConnection && ! Str::contains($value, [':', ';'])) {\n            $value = base64_decode($value);\n        }\n\n        return unserialize($value);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/DynamoDbLock.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass DynamoDbLock extends Lock\n{\n    /**\n     * The DynamoDB client instance.\n     *\n     * @var \\Illuminate\\Cache\\DynamoDbStore\n     */\n    protected $dynamo;\n\n    /**\n     * Create a new lock instance.\n     *\n     * @param  \\Illuminate\\Cache\\DynamoDbStore  $dynamo\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return void\n     */\n    public function __construct(DynamoDbStore $dynamo, $name, $seconds, $owner = null)\n    {\n        parent::__construct($name, $seconds, $owner);\n\n        $this->dynamo = $dynamo;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @return bool\n     */\n    public function acquire()\n    {\n        return $this->dynamo->add(\n            $this->name, $this->owner, $this->seconds\n        );\n    }\n\n    /**\n     * Release the lock.\n     *\n     * @return void\n     */\n    public function release()\n    {\n        if ($this->isOwnedByCurrentProcess()) {\n            $this->dynamo->forget($this->name);\n        }\n    }\n\n    /**\n     * Release this lock in disregard of ownership.\n     *\n     * @return void\n     */\n    public function forceRelease()\n    {\n        $this->dynamo->forget($this->name);\n    }\n\n    /**\n     * Returns the owner value written into the driver for this lock.\n     *\n     * @return mixed\n     */\n    protected function getCurrentOwner()\n    {\n        return $this->dynamo->get($this->name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/DynamoDbStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Carbon;\nuse Aws\\DynamoDb\\DynamoDbClient;\nuse Illuminate\\Contracts\\Cache\\Store;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Cache\\LockProvider;\nuse Aws\\DynamoDb\\Exception\\DynamoDbException;\n\nclass DynamoDbStore implements Store, LockProvider\n{\n    use InteractsWithTime;\n\n    /**\n     * The DynamoDB client instance.\n     *\n     * @var \\Aws\\DynamoDb\\DynamoDbClient\n     */\n    protected $dynamo;\n\n    /**\n     * The table name.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The name of the attribute that should hold the key.\n     *\n     * @var string\n     */\n    protected $keyAttribute;\n\n    /**\n     * The name of the attribute that should hold the value.\n     *\n     * @var string\n     */\n    protected $valueAttribute;\n\n    /**\n     * The name of the attribute that should hold the expiration timestamp.\n     *\n     * @var string\n     */\n    protected $expirationAttribute;\n\n    /**\n     * A string that should be prepended to keys.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * Create a new store instance.\n     *\n     * @param  \\Aws\\DynamoDb\\DynamoDbClient  $dynamo\n     * @param  string  $table\n     * @param  string  $keyAttribute\n     * @param  string  $valueAttribute\n     * @param  string  $expirationAttribute\n     * @param  string  $prefix\n     * @return void\n     */\n    public function __construct(DynamoDbClient $dynamo,\n                                $table,\n                                $keyAttribute = 'key',\n                                $valueAttribute = 'value',\n                                $expirationAttribute = 'expires_at',\n                                $prefix = '')\n    {\n        $this->table = $table;\n        $this->dynamo = $dynamo;\n        $this->keyAttribute = $keyAttribute;\n        $this->valueAttribute = $valueAttribute;\n        $this->expirationAttribute = $expirationAttribute;\n\n        $this->setPrefix($prefix);\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        $response = $this->dynamo->getItem([\n            'TableName' => $this->table,\n            'ConsistentRead' => false,\n            'Key' => [\n                $this->keyAttribute => [\n                    'S' => $this->prefix.$key,\n                ],\n            ],\n        ]);\n\n        if (! isset($response['Item'])) {\n            return;\n        }\n\n        if ($this->isExpired($response['Item'])) {\n            return;\n        }\n\n        if (isset($response['Item'][$this->valueAttribute])) {\n            return $this->unserialize(\n                $response['Item'][$this->valueAttribute]['S'] ??\n                $response['Item'][$this->valueAttribute]['N'] ??\n                null\n            );\n        }\n    }\n\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys)\n    {\n        $prefixedKeys = array_map(function ($key) {\n            return $this->prefix.$key;\n        }, $keys);\n\n        $response = $this->dynamo->batchGetItem([\n            'RequestItems' => [\n                $this->table => [\n                    'ConsistentRead' => false,\n                    'Keys' => collect($prefixedKeys)->map(function ($key) {\n                        return [\n                            $this->keyAttribute => [\n                                'S' => $key,\n                            ],\n                        ];\n                    })->all(),\n                ],\n            ],\n        ]);\n\n        $now = Carbon::now();\n\n        return array_merge(collect(array_flip($keys))->map(function () {\n        })->all(), collect($response['Responses'][$this->table])->mapWithKeys(function ($response) use ($now) {\n            if ($this->isExpired($response, $now)) {\n                $value = null;\n            } else {\n                $value = $this->unserialize(\n                    $response[$this->valueAttribute]['S'] ??\n                    $response[$this->valueAttribute]['N'] ??\n                    null\n                );\n            }\n\n            return [Str::replaceFirst($this->prefix, '', $response[$this->keyAttribute]['S']) => $value];\n        })->all());\n    }\n\n    /**\n     * Determine if the given item is expired.\n     *\n     * @param  array  $item\n     * @param  \\DateTimeInterface|null  $expiration\n     * @return bool\n     */\n    protected function isExpired(array $item, $expiration = null)\n    {\n        $expiration = $expiration ?: Carbon::now();\n\n        return isset($item[$this->expirationAttribute]) &&\n               $expiration->getTimestamp() >= $item[$this->expirationAttribute]['N'];\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        $this->dynamo->putItem([\n            'TableName' => $this->table,\n            'Item' => [\n                $this->keyAttribute => [\n                    'S' => $this->prefix.$key,\n                ],\n                $this->valueAttribute => [\n                    $this->type($value) => $this->serialize($value),\n                ],\n                $this->expirationAttribute => [\n                    'N' => (string) $this->toTimestamp($seconds),\n                ],\n            ],\n        ]);\n\n        return true;\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of $seconds.\n     *\n     * @param  array  $values\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function putMany(array $values, $seconds)\n    {\n        $expiration = $this->toTimestamp($seconds);\n\n        $this->dynamo->batchWriteItem([\n            'RequestItems' => [\n                $this->table => collect($values)->map(function ($value, $key) use ($expiration) {\n                    return [\n                        'PutRequest' => [\n                            'Item' => [\n                                $this->keyAttribute => [\n                                    'S' => $this->prefix.$key,\n                                ],\n                                $this->valueAttribute => [\n                                    $this->type($value) => $this->serialize($value),\n                                ],\n                                $this->expirationAttribute => [\n                                    'N' => (string) $expiration,\n                                ],\n                            ],\n                        ],\n                    ];\n                })->values()->all(),\n            ],\n        ]);\n\n        return true;\n    }\n\n    /**\n     * Store an item in the cache if the key doesn't exist.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function add($key, $value, $seconds)\n    {\n        try {\n            $this->dynamo->putItem([\n                'TableName' => $this->table,\n                'Item' => [\n                    $this->keyAttribute => [\n                        'S' => $this->prefix.$key,\n                    ],\n                    $this->valueAttribute => [\n                        $this->type($value) => $this->serialize($value),\n                    ],\n                    $this->expirationAttribute => [\n                        'N' => (string) $this->toTimestamp($seconds),\n                    ],\n                ],\n                'ConditionExpression' => 'attribute_not_exists(#key) OR #expires_at < :now',\n                'ExpressionAttributeNames' => [\n                    '#key' => $this->keyAttribute,\n                    '#expires_at' => $this->expirationAttribute,\n                ],\n                'ExpressionAttributeValues' => [\n                    ':now' => [\n                        'N' => (string) Carbon::now()->getTimestamp(),\n                    ],\n                ],\n            ]);\n\n            return true;\n        } catch (DynamoDbException $e) {\n            if (Str::contains($e->getMessage(), 'ConditionalCheckFailed')) {\n                return false;\n            }\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        try {\n            $response = $this->dynamo->updateItem([\n                'TableName' => $this->table,\n                'Key' => [\n                    $this->keyAttribute => [\n                        'S' => $this->prefix.$key,\n                    ],\n                ],\n                'ConditionExpression' => 'attribute_exists(#key) AND #expires_at > :now',\n                'UpdateExpression' => 'SET #value = #value + :amount',\n                'ExpressionAttributeNames' => [\n                    '#key' => $this->keyAttribute,\n                    '#value' => $this->valueAttribute,\n                    '#expires_at' => $this->expirationAttribute,\n                ],\n                'ExpressionAttributeValues' => [\n                    ':now' => [\n                        'N' => (string) Carbon::now()->getTimestamp(),\n                    ],\n                    ':amount' => [\n                        'N' => (string) $value,\n                    ],\n                ],\n                'ReturnValues' => 'UPDATED_NEW',\n            ]);\n\n            return (int) $response['Attributes'][$this->valueAttribute]['N'];\n        } catch (DynamoDbException $e) {\n            if (Str::contains($e->getMessage(), 'ConditionalCheckFailed')) {\n                return false;\n            }\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        try {\n            $response = $this->dynamo->updateItem([\n                'TableName' => $this->table,\n                'Key' => [\n                    $this->keyAttribute => [\n                        'S' => $this->prefix.$key,\n                    ],\n                ],\n                'ConditionExpression' => 'attribute_exists(#key) AND #expires_at > :now',\n                'UpdateExpression' => 'SET #value = #value - :amount',\n                'ExpressionAttributeNames' => [\n                    '#key' => $this->keyAttribute,\n                    '#value' => $this->valueAttribute,\n                    '#expires_at' => $this->expirationAttribute,\n                ],\n                'ExpressionAttributeValues' => [\n                    ':now' => [\n                        'N' => (string) Carbon::now()->getTimestamp(),\n                    ],\n                    ':amount' => [\n                        'N' => (string) $value,\n                    ],\n                ],\n                'ReturnValues' => 'UPDATED_NEW',\n            ]);\n\n            return (int) $response['Attributes'][$this->valueAttribute]['N'];\n        } catch (DynamoDbException $e) {\n            if (Str::contains($e->getMessage(), 'ConditionalCheckFailed')) {\n                return false;\n            }\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, now()->addYears(5)->getTimestamp());\n    }\n\n    /**\n     * Get a lock instance.\n     *\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function lock($name, $seconds = 0, $owner = null)\n    {\n        return new DynamoDbLock($this, $this->prefix.$name, $seconds, $owner);\n    }\n\n    /**\n     * Restore a lock instance using the owner identifier.\n     *\n     * @param  string  $name\n     * @param  string  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function restoreLock($name, $owner)\n    {\n        return $this->lock($name, 0, $owner);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        $this->dynamo->deleteItem([\n            'TableName' => $this->table,\n            'Key' => [\n                $this->keyAttribute => [\n                    'S' => $this->prefix.$key,\n                ],\n            ],\n        ]);\n\n        return true;\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        throw new RuntimeException('DynamoDb does not support flushing an entire table. Please create a new table.');\n    }\n\n    /**\n     * Get the UNIX timestamp for the given number of seconds.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function toTimestamp($seconds)\n    {\n        return $seconds > 0\n                    ? $this->availableAt($seconds)\n                    : Carbon::now()->getTimestamp();\n    }\n\n    /**\n     * Serialize the value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function serialize($value)\n    {\n        return is_numeric($value) ? (string) $value : serialize($value);\n    }\n\n    /**\n     * Unserialize the value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function unserialize($value)\n    {\n        if (filter_var($value, FILTER_VALIDATE_INT) !== false) {\n            return (int) $value;\n        }\n\n        if (is_numeric($value)) {\n            return (float) $value;\n        }\n\n        return unserialize($value);\n    }\n\n    /**\n     * Get the DynamoDB type for the given value.\n     *\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function type($value)\n    {\n        return is_numeric($value) ? 'N' : 'S';\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n\n    /**\n     * Set the cache key prefix.\n     *\n     * @param  string  $prefix\n     * @return void\n     */\n    public function setPrefix($prefix)\n    {\n        $this->prefix = ! empty($prefix) ? $prefix.':' : '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Events/CacheEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Events;\n\nabstract class CacheEvent\n{\n    /**\n     * The key of the event.\n     *\n     * @var string\n     */\n    public $key;\n\n    /**\n     * The tags that were assigned to the key.\n     *\n     * @var array\n     */\n    public $tags;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $key\n     * @param  array  $tags\n     * @return void\n     */\n    public function __construct($key, array $tags = [])\n    {\n        $this->key = $key;\n        $this->tags = $tags;\n    }\n\n    /**\n     * Set the tags for the cache event.\n     *\n     * @param  array  $tags\n     * @return $this\n     */\n    public function setTags($tags)\n    {\n        $this->tags = $tags;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Events/CacheHit.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Events;\n\nclass CacheHit extends CacheEvent\n{\n    /**\n     * The value that was retrieved.\n     *\n     * @var mixed\n     */\n    public $value;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  array  $tags\n     * @return void\n     */\n    public function __construct($key, $value, array $tags = [])\n    {\n        parent::__construct($key, $tags);\n\n        $this->value = $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Events/CacheMissed.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Events;\n\nclass CacheMissed extends CacheEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Events/KeyForgotten.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Events;\n\nclass KeyForgotten extends CacheEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Events/KeyWritten.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache\\Events;\n\nclass KeyWritten extends CacheEvent\n{\n    /**\n     * The value that was written.\n     *\n     * @var mixed\n     */\n    public $value;\n\n    /**\n     * The number of seconds the key should be valid.\n     *\n     * @var int|null\n     */\n    public $seconds;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  int|null  $seconds\n     * @param  array  $tags\n     * @return void\n     */\n    public function __construct($key, $value, $seconds = null, $tags = [])\n    {\n        parent::__construct($key, $tags);\n\n        $this->value = $value;\n        $this->seconds = $seconds;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/FileStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Exception;\nuse Illuminate\\Contracts\\Cache\\Store;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Support\\InteractsWithTime;\n\nclass FileStore implements Store\n{\n    use InteractsWithTime, RetrievesMultipleKeys;\n\n    /**\n     * The Illuminate Filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The file cache directory.\n     *\n     * @var string\n     */\n    protected $directory;\n\n    /**\n     * Create a new file cache store instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $directory\n     * @return void\n     */\n    public function __construct(Filesystem $files, $directory)\n    {\n        $this->files = $files;\n        $this->directory = $directory;\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        return $this->getPayload($key)['data'] ?? null;\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        $this->ensureCacheDirectoryExists($path = $this->path($key));\n\n        $result = $this->files->put(\n            $path, $this->expiration($seconds).serialize($value), true\n        );\n\n        return $result !== false && $result > 0;\n    }\n\n    /**\n     * Create the file cache directory if necessary.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    protected function ensureCacheDirectoryExists($path)\n    {\n        if (! $this->files->exists(dirname($path))) {\n            $this->files->makeDirectory(dirname($path), 0777, true, true);\n        }\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function increment($key, $value = 1)\n    {\n        $raw = $this->getPayload($key);\n\n        return tap(((int) $raw['data']) + $value, function ($newValue) use ($key, $raw) {\n            $this->put($key, $newValue, $raw['time'] ?? 0);\n        });\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->increment($key, $value * -1);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, 0);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        if ($this->files->exists($file = $this->path($key))) {\n            return $this->files->delete($file);\n        }\n\n        return false;\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        if (! $this->files->isDirectory($this->directory)) {\n            return false;\n        }\n\n        foreach ($this->files->directories($this->directory) as $directory) {\n            if (! $this->files->deleteDirectory($directory)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Retrieve an item and expiry time from the cache by key.\n     *\n     * @param  string  $key\n     * @return array\n     */\n    protected function getPayload($key)\n    {\n        $path = $this->path($key);\n\n        // If the file doesn't exist, we obviously cannot return the cache so we will\n        // just return null. Otherwise, we'll get the contents of the file and get\n        // the expiration UNIX timestamps from the start of the file's contents.\n        try {\n            $expire = substr(\n                $contents = $this->files->get($path, true), 0, 10\n            );\n        } catch (Exception $e) {\n            return $this->emptyPayload();\n        }\n\n        // If the current time is greater than expiration timestamps we will delete\n        // the file and return null. This helps clean up the old files and keeps\n        // this directory much cleaner for us as old files aren't hanging out.\n        if ($this->currentTime() >= $expire) {\n            $this->forget($key);\n\n            return $this->emptyPayload();\n        }\n\n        try {\n            $data = unserialize(substr($contents, 10));\n        } catch (Exception $e) {\n            $this->forget($key);\n\n            return $this->emptyPayload();\n        }\n\n        // Next, we'll extract the number of seconds that are remaining for a cache\n        // so that we can properly retain the time for things like the increment\n        // operation that may be performed on this cache on a later operation.\n        $time = $expire - $this->currentTime();\n\n        return compact('data', 'time');\n    }\n\n    /**\n     * Get a default empty payload for the cache.\n     *\n     * @return array\n     */\n    protected function emptyPayload()\n    {\n        return ['data' => null, 'time' => null];\n    }\n\n    /**\n     * Get the full path for the given cache key.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    protected function path($key)\n    {\n        $parts = array_slice(str_split($hash = sha1($key), 2), 0, 2);\n\n        return $this->directory.'/'.implode('/', $parts).'/'.$hash;\n    }\n\n    /**\n     * Get the expiration time based on the given seconds.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function expiration($seconds)\n    {\n        $time = $this->availableAt($seconds);\n\n        return $seconds === 0 || $time > 9999999999 ? 9999999999 : $time;\n    }\n\n    /**\n     * Get the Filesystem instance.\n     *\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public function getFilesystem()\n    {\n        return $this->files;\n    }\n\n    /**\n     * Get the working directory of the cache.\n     *\n     * @return string\n     */\n    public function getDirectory()\n    {\n        return $this->directory;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Lock.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Cache\\Lock as LockContract;\nuse Illuminate\\Contracts\\Cache\\LockTimeoutException;\n\nabstract class Lock implements LockContract\n{\n    use InteractsWithTime;\n\n    /**\n     * The name of the lock.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The number of seconds the lock should be maintained.\n     *\n     * @var int\n     */\n    protected $seconds;\n\n    /**\n     * The scope identifier of this lock.\n     *\n     * @var string\n     */\n    protected $owner;\n\n    /**\n     * Create a new lock instance.\n     *\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return void\n     */\n    public function __construct($name, $seconds, $owner = null)\n    {\n        if (is_null($owner)) {\n            $owner = Str::random();\n        }\n\n        $this->name = $name;\n        $this->owner = $owner;\n        $this->seconds = $seconds;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @return bool\n     */\n    abstract public function acquire();\n\n    /**\n     * Release the lock.\n     *\n     * @return void\n     */\n    abstract public function release();\n\n    /**\n     * Returns the owner value written into the driver for this lock.\n     *\n     * @return string\n     */\n    abstract protected function getCurrentOwner();\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    public function get($callback = null)\n    {\n        $result = $this->acquire();\n\n        if ($result && is_callable($callback)) {\n            try {\n                return $callback();\n            } finally {\n                $this->release();\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * Attempt to acquire the lock for the given number of seconds.\n     *\n     * @param  int  $seconds\n     * @param  callable|null  $callback\n     * @return bool\n     *\n     * @throws \\Illuminate\\Contracts\\Cache\\LockTimeoutException\n     */\n    public function block($seconds, $callback = null)\n    {\n        $starting = $this->currentTime();\n\n        while (! $this->acquire()) {\n            usleep(250 * 1000);\n\n            if ($this->currentTime() - $seconds >= $starting) {\n                throw new LockTimeoutException;\n            }\n        }\n\n        if (is_callable($callback)) {\n            try {\n                return $callback();\n            } finally {\n                $this->release();\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Returns the current owner of the lock.\n     *\n     * @return string\n     */\n    public function owner()\n    {\n        return $this->owner;\n    }\n\n    /**\n     * Determines whether this lock is allowed to release the lock in the driver.\n     *\n     * @return bool\n     */\n    protected function isOwnedByCurrentProcess()\n    {\n        return $this->getCurrentOwner() === $this->owner;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/LuaScripts.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass LuaScripts\n{\n    /**\n     * Get the Lua script to atomically release a lock.\n     *\n     * KEYS[1] - The name of the lock\n     * ARGV[1] - The owner key of the lock instance trying to release it\n     *\n     * @return string\n     */\n    public static function releaseLock()\n    {\n        return <<<'LUA'\nif redis.call(\"get\",KEYS[1]) == ARGV[1] then\n    return redis.call(\"del\",KEYS[1])\nelse\n    return 0\nend\nLUA;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Memcached;\n\nclass MemcachedConnector\n{\n    /**\n     * Create a new Memcached connection.\n     *\n     * @param  array  $servers\n     * @param  string|null  $connectionId\n     * @param  array  $options\n     * @param  array  $credentials\n     * @return \\Memcached\n     */\n    public function connect(array $servers, $connectionId = null, array $options = [], array $credentials = [])\n    {\n        $memcached = $this->getMemcached(\n            $connectionId, $credentials, $options\n        );\n\n        if (! $memcached->getServerList()) {\n            // For each server in the array, we'll just extract the configuration and add\n            // the server to the Memcached connection. Once we have added all of these\n            // servers we'll verify the connection is successful and return it back.\n            foreach ($servers as $server) {\n                $memcached->addServer(\n                    $server['host'], $server['port'], $server['weight']\n                );\n            }\n        }\n\n        return $memcached;\n    }\n\n    /**\n     * Get a new Memcached instance.\n     *\n     * @param  string|null  $connectionId\n     * @param  array  $credentials\n     * @param  array  $options\n     * @return \\Memcached\n     */\n    protected function getMemcached($connectionId, array $credentials, array $options)\n    {\n        $memcached = $this->createMemcachedInstance($connectionId);\n\n        if (count($credentials) === 2) {\n            $this->setCredentials($memcached, $credentials);\n        }\n\n        if (count($options)) {\n            $memcached->setOptions($options);\n        }\n\n        return $memcached;\n    }\n\n    /**\n     * Create the Memcached instance.\n     *\n     * @param  string|null  $connectionId\n     * @return \\Memcached\n     */\n    protected function createMemcachedInstance($connectionId)\n    {\n        return empty($connectionId) ? new Memcached : new Memcached($connectionId);\n    }\n\n    /**\n     * Set the SASL credentials on the Memcached connection.\n     *\n     * @param  \\Memcached  $memcached\n     * @param  array  $credentials\n     * @return void\n     */\n    protected function setCredentials($memcached, $credentials)\n    {\n        [$username, $password] = $credentials;\n\n        $memcached->setOption(Memcached::OPT_BINARY_PROTOCOL, true);\n\n        $memcached->setSaslAuthData($username, $password);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/MemcachedLock.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass MemcachedLock extends Lock\n{\n    /**\n     * The Memcached instance.\n     *\n     * @var \\Memcached\n     */\n    protected $memcached;\n\n    /**\n     * Create a new lock instance.\n     *\n     * @param  \\Memcached  $memcached\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return void\n     */\n    public function __construct($memcached, $name, $seconds, $owner = null)\n    {\n        parent::__construct($name, $seconds, $owner);\n\n        $this->memcached = $memcached;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @return bool\n     */\n    public function acquire()\n    {\n        return $this->memcached->add(\n            $this->name, $this->owner, $this->seconds\n        );\n    }\n\n    /**\n     * Release the lock.\n     *\n     * @return void\n     */\n    public function release()\n    {\n        if ($this->isOwnedByCurrentProcess()) {\n            $this->memcached->delete($this->name);\n        }\n    }\n\n    /**\n     * Releases this lock in disregard of ownership.\n     *\n     * @return void\n     */\n    public function forceRelease()\n    {\n        $this->memcached->delete($this->name);\n    }\n\n    /**\n     * Returns the owner value written into the driver for this lock.\n     *\n     * @return mixed\n     */\n    protected function getCurrentOwner()\n    {\n        return $this->memcached->get($this->name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/MemcachedStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Memcached;\nuse ReflectionMethod;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Cache\\LockProvider;\n\nclass MemcachedStore extends TaggableStore implements LockProvider\n{\n    use InteractsWithTime;\n\n    /**\n     * The Memcached instance.\n     *\n     * @var \\Memcached\n     */\n    protected $memcached;\n\n    /**\n     * A string that should be prepended to keys.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * Indicates whether we are using Memcached version >= 3.0.0.\n     *\n     * @var bool\n     */\n    protected $onVersionThree;\n\n    /**\n     * Create a new Memcached store.\n     *\n     * @param  \\Memcached  $memcached\n     * @param  string      $prefix\n     * @return void\n     */\n    public function __construct($memcached, $prefix = '')\n    {\n        $this->setPrefix($prefix);\n        $this->memcached = $memcached;\n\n        $this->onVersionThree = (new ReflectionMethod('Memcached', 'getMulti'))\n                            ->getNumberOfParameters() == 2;\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        $value = $this->memcached->get($this->prefix.$key);\n\n        if ($this->memcached->getResultCode() == 0) {\n            return $value;\n        }\n    }\n\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys)\n    {\n        $prefixedKeys = array_map(function ($key) {\n            return $this->prefix.$key;\n        }, $keys);\n\n        if ($this->onVersionThree) {\n            $values = $this->memcached->getMulti($prefixedKeys, Memcached::GET_PRESERVE_ORDER);\n        } else {\n            $null = null;\n\n            $values = $this->memcached->getMulti($prefixedKeys, $null, Memcached::GET_PRESERVE_ORDER);\n        }\n\n        if ($this->memcached->getResultCode() != 0) {\n            return array_fill_keys($keys, null);\n        }\n\n        return array_combine($keys, $values);\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        return $this->memcached->set(\n            $this->prefix.$key, $value, $this->calculateExpiration($seconds)\n        );\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function putMany(array $values, $seconds)\n    {\n        $prefixedValues = [];\n\n        foreach ($values as $key => $value) {\n            $prefixedValues[$this->prefix.$key] = $value;\n        }\n\n        return $this->memcached->setMulti(\n            $prefixedValues, $this->calculateExpiration($seconds)\n        );\n    }\n\n    /**\n     * Store an item in the cache if the key doesn't exist.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function add($key, $value, $seconds)\n    {\n        return $this->memcached->add(\n            $this->prefix.$key, $value, $this->calculateExpiration($seconds)\n        );\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        return $this->memcached->increment($this->prefix.$key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->memcached->decrement($this->prefix.$key, $value);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return $this->put($key, $value, 0);\n    }\n\n    /**\n     * Get a lock instance.\n     *\n     * @param  string $name\n     * @param  int $seconds\n     * @param  string|null $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function lock($name, $seconds = 0, $owner = null)\n    {\n        return new MemcachedLock($this->memcached, $this->prefix.$name, $seconds, $owner);\n    }\n\n    /**\n     * Restore a lock instance using the owner identifier.\n     *\n     * @param  string  $name\n     * @param  string  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function restoreLock($name, $owner)\n    {\n        return $this->lock($name, 0, $owner);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        return $this->memcached->delete($this->prefix.$key);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        return $this->memcached->flush();\n    }\n\n    /**\n     * Get the expiration time of the key.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function calculateExpiration($seconds)\n    {\n        return $this->toTimestamp($seconds);\n    }\n\n    /**\n     * Get the UNIX timestamp for the given number of seconds.\n     *\n     * @param  int  $seconds\n     * @return int\n     */\n    protected function toTimestamp($seconds)\n    {\n        return $seconds > 0 ? $this->availableAt($seconds) : 0;\n    }\n\n    /**\n     * Get the underlying Memcached connection.\n     *\n     * @return \\Memcached\n     */\n    public function getMemcached()\n    {\n        return $this->memcached;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n\n    /**\n     * Set the cache key prefix.\n     *\n     * @param  string  $prefix\n     * @return void\n     */\n    public function setPrefix($prefix)\n    {\n        $this->prefix = ! empty($prefix) ? $prefix.':' : '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/NullStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass NullStore extends TaggableStore\n{\n    use RetrievesMultipleKeys;\n\n    /**\n     * The array of stored values.\n     *\n     * @var array\n     */\n    protected $storage = [];\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        return false;\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        return false;\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        return false;\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return false;\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        return true;\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        return true;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/RateLimiter.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Cache\\Repository as Cache;\n\nclass RateLimiter\n{\n    use InteractsWithTime;\n\n    /**\n     * The cache store implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    protected $cache;\n\n    /**\n     * Create a new rate limiter instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Repository  $cache\n     * @return void\n     */\n    public function __construct(Cache $cache)\n    {\n        $this->cache = $cache;\n    }\n\n    /**\n     * Determine if the given key has been \"accessed\" too many times.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @return bool\n     */\n    public function tooManyAttempts($key, $maxAttempts)\n    {\n        if ($this->attempts($key) >= $maxAttempts) {\n            if ($this->cache->has($key.':timer')) {\n                return true;\n            }\n\n            $this->resetAttempts($key);\n        }\n\n        return false;\n    }\n\n    /**\n     * Increment the counter for a given key for a given decay time.\n     *\n     * @param  string  $key\n     * @param  int  $decaySeconds\n     * @return int\n     */\n    public function hit($key, $decaySeconds = 60)\n    {\n        $this->cache->add(\n            $key.':timer', $this->availableAt($decaySeconds), $decaySeconds\n        );\n\n        $added = $this->cache->add($key, 0, $decaySeconds);\n\n        $hits = (int) $this->cache->increment($key);\n\n        if (! $added && $hits == 1) {\n            $this->cache->put($key, 1, $decaySeconds);\n        }\n\n        return $hits;\n    }\n\n    /**\n     * Get the number of attempts for the given key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function attempts($key)\n    {\n        return $this->cache->get($key, 0);\n    }\n\n    /**\n     * Reset the number of attempts for the given key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function resetAttempts($key)\n    {\n        return $this->cache->forget($key);\n    }\n\n    /**\n     * Get the number of retries left for the given key.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @return int\n     */\n    public function retriesLeft($key, $maxAttempts)\n    {\n        $attempts = $this->attempts($key);\n\n        return $maxAttempts - $attempts;\n    }\n\n    /**\n     * Clear the hits and lockout timer for the given key.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function clear($key)\n    {\n        $this->resetAttempts($key);\n\n        $this->cache->forget($key.':timer');\n    }\n\n    /**\n     * Get the number of seconds until the \"key\" is accessible again.\n     *\n     * @param  string  $key\n     * @return int\n     */\n    public function availableIn($key)\n    {\n        return $this->cache->get($key.':timer') - $this->currentTime();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/RedisLock.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass RedisLock extends Lock\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    protected $redis;\n\n    /**\n     * Create a new lock instance.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $redis\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return void\n     */\n    public function __construct($redis, $name, $seconds, $owner = null)\n    {\n        parent::__construct($name, $seconds, $owner);\n\n        $this->redis = $redis;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @return bool\n     */\n    public function acquire()\n    {\n        $result = $this->redis->setnx($this->name, $this->owner);\n\n        if ($result === 1 && $this->seconds > 0) {\n            $this->redis->expire($this->name, $this->seconds);\n        }\n\n        return $result === 1;\n    }\n\n    /**\n     * Release the lock.\n     *\n     * @return void\n     */\n    public function release()\n    {\n        $this->redis->eval(LuaScripts::releaseLock(), 1, $this->name, $this->owner);\n    }\n\n    /**\n     * Releases this lock in disregard of ownership.\n     *\n     * @return void\n     */\n    public function forceRelease()\n    {\n        $this->redis->del($this->name);\n    }\n\n    /**\n     * Returns the owner value written into the driver for this lock.\n     *\n     * @return string\n     */\n    protected function getCurrentOwner()\n    {\n        return $this->redis->get($this->name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/RedisStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Contracts\\Cache\\LockProvider;\nuse Illuminate\\Contracts\\Redis\\Factory as Redis;\n\nclass RedisStore extends TaggableStore implements LockProvider\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    protected $redis;\n\n    /**\n     * A string that should be prepended to keys.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * The Redis connection that should be used.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * Create a new Redis store.\n     *\n     * @param  \\Illuminate\\Contracts\\Redis\\Factory  $redis\n     * @param  string  $prefix\n     * @param  string  $connection\n     * @return void\n     */\n    public function __construct(Redis $redis, $prefix = '', $connection = 'default')\n    {\n        $this->redis = $redis;\n        $this->setPrefix($prefix);\n        $this->setConnection($connection);\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key)\n    {\n        $value = $this->connection()->get($this->prefix.$key);\n\n        return ! is_null($value) ? $this->unserialize($value) : null;\n    }\n\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys)\n    {\n        $results = [];\n\n        $values = $this->connection()->mget(array_map(function ($key) {\n            return $this->prefix.$key;\n        }, $keys));\n\n        foreach ($values as $index => $value) {\n            $results[$keys[$index]] = ! is_null($value) ? $this->unserialize($value) : null;\n        }\n\n        return $results;\n    }\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds)\n    {\n        return (bool) $this->connection()->setex(\n            $this->prefix.$key, (int) max(1, $seconds), $this->serialize($value)\n        );\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function putMany(array $values, $seconds)\n    {\n        $this->connection()->multi();\n\n        $manyResult = null;\n\n        foreach ($values as $key => $value) {\n            $result = $this->put($key, $value, $seconds);\n\n            $manyResult = is_null($manyResult) ? $result : $result && $manyResult;\n        }\n\n        $this->connection()->exec();\n\n        return $manyResult ?: false;\n    }\n\n    /**\n     * Store an item in the cache if the key doesn't exist.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function add($key, $value, $seconds)\n    {\n        $lua = \"return redis.call('exists',KEYS[1])<1 and redis.call('setex',KEYS[1],ARGV[2],ARGV[1])\";\n\n        return (bool) $this->connection()->eval(\n            $lua, 1, $this->prefix.$key, $this->serialize($value), (int) max(1, $seconds)\n        );\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function increment($key, $value = 1)\n    {\n        return $this->connection()->incrby($this->prefix.$key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return int\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->connection()->decrby($this->prefix.$key, $value);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        return (bool) $this->connection()->set($this->prefix.$key, $this->serialize($value));\n    }\n\n    /**\n     * Get a lock instance.\n     *\n     * @param  string $name\n     * @param  int $seconds\n     * @param  string|null $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function lock($name, $seconds = 0, $owner = null)\n    {\n        return new RedisLock($this->connection(), $this->prefix.$name, $seconds, $owner);\n    }\n\n    /**\n     * Restore a lock instance using the owner identifier.\n     *\n     * @param  string  $name\n     * @param  string  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function restoreLock($name, $owner)\n    {\n        return $this->lock($name, 0, $owner);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        return (bool) $this->connection()->del($this->prefix.$key);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        $this->connection()->flushdb();\n\n        return true;\n    }\n\n    /**\n     * Begin executing a new tags operation.\n     *\n     * @param  array|mixed  $names\n     * @return \\Illuminate\\Cache\\RedisTaggedCache\n     */\n    public function tags($names)\n    {\n        return new RedisTaggedCache(\n            $this, new TagSet($this, is_array($names) ? $names : func_get_args())\n        );\n    }\n\n    /**\n     * Get the Redis connection instance.\n     *\n     * @return \\Predis\\ClientInterface\n     */\n    public function connection()\n    {\n        return $this->redis->connection($this->connection);\n    }\n\n    /**\n     * Set the connection name to be used.\n     *\n     * @param  string  $connection\n     * @return void\n     */\n    public function setConnection($connection)\n    {\n        $this->connection = $connection;\n    }\n\n    /**\n     * Get the Redis database instance.\n     *\n     * @return \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    public function getRedis()\n    {\n        return $this->redis;\n    }\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n\n    /**\n     * Set the cache key prefix.\n     *\n     * @param  string  $prefix\n     * @return void\n     */\n    public function setPrefix($prefix)\n    {\n        $this->prefix = ! empty($prefix) ? $prefix.':' : '';\n    }\n\n    /**\n     * Serialize the value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function serialize($value)\n    {\n        return is_numeric($value) ? $value : serialize($value);\n    }\n\n    /**\n     * Unserialize the value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function unserialize($value)\n    {\n        return is_numeric($value) ? $value : unserialize($value);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/RedisTaggedCache.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nclass RedisTaggedCache extends TaggedCache\n{\n    /**\n     * Forever reference key.\n     *\n     * @var string\n     */\n    const REFERENCE_KEY_FOREVER = 'forever_ref';\n    /**\n     * Standard reference key.\n     *\n     * @var string\n     */\n    const REFERENCE_KEY_STANDARD = 'standard_ref';\n\n    /**\n     * Store an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function put($key, $value, $ttl = null)\n    {\n        if ($ttl === null) {\n            return $this->forever($key, $value);\n        }\n\n        $this->pushStandardKeys($this->tags->getNamespace(), $key);\n\n        return parent::put($key, $value, $ttl);\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function increment($key, $value = 1)\n    {\n        $this->pushStandardKeys($this->tags->getNamespace(), $key);\n\n        parent::increment($key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function decrement($key, $value = 1)\n    {\n        $this->pushStandardKeys($this->tags->getNamespace(), $key);\n\n        parent::decrement($key, $value);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        $this->pushForeverKeys($this->tags->getNamespace(), $key);\n\n        return parent::forever($key, $value);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        $this->deleteForeverKeys();\n        $this->deleteStandardKeys();\n\n        return parent::flush();\n    }\n\n    /**\n     * Store standard key references into store.\n     *\n     * @param  string  $namespace\n     * @param  string  $key\n     * @return void\n     */\n    protected function pushStandardKeys($namespace, $key)\n    {\n        $this->pushKeys($namespace, $key, self::REFERENCE_KEY_STANDARD);\n    }\n\n    /**\n     * Store forever key references into store.\n     *\n     * @param  string  $namespace\n     * @param  string  $key\n     * @return void\n     */\n    protected function pushForeverKeys($namespace, $key)\n    {\n        $this->pushKeys($namespace, $key, self::REFERENCE_KEY_FOREVER);\n    }\n\n    /**\n     * Store a reference to the cache key against the reference key.\n     *\n     * @param  string  $namespace\n     * @param  string  $key\n     * @param  string  $reference\n     * @return void\n     */\n    protected function pushKeys($namespace, $key, $reference)\n    {\n        $fullKey = $this->store->getPrefix().sha1($namespace).':'.$key;\n\n        foreach (explode('|', $namespace) as $segment) {\n            $this->store->connection()->sadd($this->referenceKey($segment, $reference), $fullKey);\n        }\n    }\n\n    /**\n     * Delete all of the items that were stored forever.\n     *\n     * @return void\n     */\n    protected function deleteForeverKeys()\n    {\n        $this->deleteKeysByReference(self::REFERENCE_KEY_FOREVER);\n    }\n\n    /**\n     * Delete all standard items.\n     *\n     * @return void\n     */\n    protected function deleteStandardKeys()\n    {\n        $this->deleteKeysByReference(self::REFERENCE_KEY_STANDARD);\n    }\n\n    /**\n     * Find and delete all of the items that were stored against a reference.\n     *\n     * @param  string  $reference\n     * @return void\n     */\n    protected function deleteKeysByReference($reference)\n    {\n        foreach (explode('|', $this->tags->getNamespace()) as $segment) {\n            $this->deleteValues($segment = $this->referenceKey($segment, $reference));\n\n            $this->store->connection()->del($segment);\n        }\n    }\n\n    /**\n     * Delete item keys that have been stored against a reference.\n     *\n     * @param  string  $referenceKey\n     * @return void\n     */\n    protected function deleteValues($referenceKey)\n    {\n        $values = array_unique($this->store->connection()->smembers($referenceKey));\n\n        if (count($values) > 0) {\n            foreach (array_chunk($values, 1000) as $valuesChunk) {\n                call_user_func_array([$this->store->connection(), 'del'], $valuesChunk);\n            }\n        }\n    }\n\n    /**\n     * Get the reference key for the segment.\n     *\n     * @param  string  $segment\n     * @param  string  $suffix\n     * @return string\n     */\n    protected function referenceKey($segment, $suffix)\n    {\n        return $this->store->getPrefix().$segment.':'.$suffix;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/Repository.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Closure;\nuse ArrayAccess;\nuse DateTimeInterface;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Cache\\Events\\CacheHit;\nuse Illuminate\\Contracts\\Cache\\Store;\nuse Illuminate\\Cache\\Events\\KeyWritten;\nuse Illuminate\\Cache\\Events\\CacheMissed;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Cache\\Events\\KeyForgotten;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Cache\\Repository as CacheContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Cache\\Store\n */\nclass Repository implements CacheContract, ArrayAccess\n{\n    use InteractsWithTime;\n    use Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The cache store implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Store\n     */\n    protected $store;\n\n    /**\n     * The event dispatcher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The default number of seconds to store items.\n     *\n     * @var int|null\n     */\n    protected $default = 3600;\n\n    /**\n     * Create a new cache repository instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Store  $store\n     * @return void\n     */\n    public function __construct(Store $store)\n    {\n        $this->store = $store;\n    }\n\n    /**\n     * Determine if an item exists in the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        return ! is_null($this->get($key));\n    }\n\n    /**\n     * Determine if an item doesn't exist in the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function missing($key)\n    {\n        return ! $this->has($key);\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        if (is_array($key)) {\n            return $this->many($key);\n        }\n\n        $value = $this->store->get($this->itemKey($key));\n\n        // If we could not find the cache value, we will fire the missed event and get\n        // the default value for this cache value. This default could be a callback\n        // so we will execute the value function which will resolve it if needed.\n        if (is_null($value)) {\n            $this->event(new CacheMissed($key));\n\n            $value = value($default);\n        } else {\n            $this->event(new CacheHit($key, $value));\n        }\n\n        return $value;\n    }\n\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys)\n    {\n        $values = $this->store->many(collect($keys)->map(function ($value, $key) {\n            return is_string($key) ? $key : $value;\n        })->values()->all());\n\n        return collect($values)->map(function ($value, $key) use ($keys) {\n            return $this->handleManyResult($keys, $key, $value);\n        })->all();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMultiple($keys, $default = null)\n    {\n        if (is_null($default)) {\n            return $this->many($keys);\n        }\n\n        foreach ($keys as $key) {\n            if (! isset($default[$key])) {\n                $default[$key] = null;\n            }\n        }\n\n        return $this->many($default);\n    }\n\n    /**\n     * Handle a result for the \"many\" method.\n     *\n     * @param  array  $keys\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function handleManyResult($keys, $key, $value)\n    {\n        // If we could not find the cache value, we will fire the missed event and get\n        // the default value for this cache value. This default could be a callback\n        // so we will execute the value function which will resolve it if needed.\n        if (is_null($value)) {\n            $this->event(new CacheMissed($key));\n\n            return isset($keys[$key]) ? value($keys[$key]) : null;\n        }\n\n        // If we found a valid value we will fire the \"hit\" event and return the value\n        // back from this function. The \"hit\" event gives developers an opportunity\n        // to listen for every possible cache \"hit\" throughout this applications.\n        $this->event(new CacheHit($key, $value));\n\n        return $value;\n    }\n\n    /**\n     * Retrieve an item from the cache and delete it.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function pull($key, $default = null)\n    {\n        return tap($this->get($key, $default), function () use ($key) {\n            $this->forget($key);\n        });\n    }\n\n    /**\n     * Store an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function put($key, $value, $ttl = null)\n    {\n        if (is_array($key)) {\n            return $this->putMany($key, $value);\n        }\n\n        if ($ttl === null) {\n            return $this->forever($key, $value);\n        }\n\n        $seconds = $this->getSeconds($ttl);\n\n        if ($seconds <= 0) {\n            return $this->delete($key);\n        }\n\n        $result = $this->store->put($this->itemKey($key), $value, $seconds);\n\n        if ($result) {\n            $this->event(new KeyWritten($key, $value, $seconds));\n        }\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function set($key, $value, $ttl = null)\n    {\n        return $this->put($key, $value, $ttl);\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function putMany(array $values, $ttl = null)\n    {\n        if ($ttl === null) {\n            return $this->putManyForever($values);\n        }\n\n        $seconds = $this->getSeconds($ttl);\n\n        if ($seconds <= 0) {\n            return $this->deleteMultiple(array_keys($values));\n        }\n\n        $result = $this->store->putMany($values, $seconds);\n\n        if ($result) {\n            foreach ($values as $key => $value) {\n                $this->event(new KeyWritten($key, $value, $seconds));\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * Store multiple items in the cache indefinitely.\n     *\n     * @param  array  $values\n     * @return bool\n     */\n    protected function putManyForever(array $values)\n    {\n        $result = true;\n\n        foreach ($values as $key => $value) {\n            if (! $this->forever($key, $value)) {\n                $result = false;\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setMultiple($values, $ttl = null)\n    {\n        return $this->putMany($values, $ttl);\n    }\n\n    /**\n     * Store an item in the cache if the key does not exist.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function add($key, $value, $ttl = null)\n    {\n        if ($ttl !== null) {\n            if ($this->getSeconds($ttl) <= 0) {\n                return false;\n            }\n\n            // If the store has an \"add\" method we will call the method on the store so it\n            // has a chance to override this logic. Some drivers better support the way\n            // this operation should work with a total \"atomic\" implementation of it.\n            if (method_exists($this->store, 'add')) {\n                $seconds = $this->getSeconds($ttl);\n\n                return $this->store->add(\n                    $this->itemKey($key), $value, $seconds\n                );\n            }\n        }\n\n        // If the value did not exist in the cache, we will put the value in the cache\n        // so it exists for subsequent requests. Then, we will return true so it is\n        // easy to know if the value gets added. Otherwise, we will return false.\n        if (is_null($this->get($key))) {\n            return $this->put($key, $value, $ttl);\n        }\n\n        return false;\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1)\n    {\n        return $this->store->increment($key, $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1)\n    {\n        return $this->store->decrement($key, $value);\n    }\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function forever($key, $value)\n    {\n        $result = $this->store->forever($this->itemKey($key), $value);\n\n        if ($result) {\n            $this->event(new KeyWritten($key, $value));\n        }\n\n        return $result;\n    }\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result.\n     *\n     * @param  string  $key\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function remember($key, $ttl, Closure $callback)\n    {\n        $value = $this->get($key);\n\n        // If the item exists in the cache we will just return this immediately and if\n        // not we will execute the given Closure and cache the result of that for a\n        // given number of seconds so it's available for all subsequent requests.\n        if (! is_null($value)) {\n            return $value;\n        }\n\n        $this->put($key, $value = $callback(), $ttl);\n\n        return $value;\n    }\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result forever.\n     *\n     * @param  string  $key\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function sear($key, Closure $callback)\n    {\n        return $this->rememberForever($key, $callback);\n    }\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result forever.\n     *\n     * @param  string  $key\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function rememberForever($key, Closure $callback)\n    {\n        $value = $this->get($key);\n\n        // If the item exists in the cache we will just return this immediately\n        // and if not we will execute the given Closure and cache the result\n        // of that forever so it is available for all subsequent requests.\n        if (! is_null($value)) {\n            return $value;\n        }\n\n        $this->forever($key, $value = $callback());\n\n        return $value;\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key)\n    {\n        return tap($this->store->forget($this->itemKey($key)), function ($result) use ($key) {\n            if ($result) {\n                $this->event(new KeyForgotten($key));\n            }\n        });\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function delete($key)\n    {\n        return $this->forget($key);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function deleteMultiple($keys)\n    {\n        $result = true;\n\n        foreach ($keys as $key) {\n            if (! $this->forget($key)) {\n                $result = false;\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function clear()\n    {\n        return $this->store->flush();\n    }\n\n    /**\n     * Begin executing a new tags operation if the store supports it.\n     *\n     * @param  array|mixed  $names\n     * @return \\Illuminate\\Cache\\TaggedCache\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function tags($names)\n    {\n        if (! method_exists($this->store, 'tags')) {\n            throw new BadMethodCallException('This cache store does not support tagging.');\n        }\n\n        $cache = $this->store->tags(is_array($names) ? $names : func_get_args());\n\n        if (! is_null($this->events)) {\n            $cache->setEventDispatcher($this->events);\n        }\n\n        return $cache->setDefaultCacheTime($this->default);\n    }\n\n    /**\n     * Format the key for a cache item.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    protected function itemKey($key)\n    {\n        return $key;\n    }\n\n    /**\n     * Get the default cache time.\n     *\n     * @return int\n     */\n    public function getDefaultCacheTime()\n    {\n        return $this->default;\n    }\n\n    /**\n     * Set the default cache time in seconds.\n     *\n     * @param  int|null  $seconds\n     * @return $this\n     */\n    public function setDefaultCacheTime($seconds)\n    {\n        $this->default = $seconds;\n\n        return $this;\n    }\n\n    /**\n     * Get the cache store implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Cache\\Store\n     */\n    public function getStore()\n    {\n        return $this->store;\n    }\n\n    /**\n     * Fire an event for this cache instance.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    protected function event($event)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch($event);\n        }\n    }\n\n    /**\n     * Set the event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function setEventDispatcher(Dispatcher $events)\n    {\n        $this->events = $events;\n    }\n\n    /**\n     * Determine if a cached value exists.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return $this->has($key);\n    }\n\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->get($key);\n    }\n\n    /**\n     * Store an item in the cache for the default time.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        $this->put($key, $value, $this->default);\n    }\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        $this->forget($key);\n    }\n\n    /**\n     * Calculate the number of seconds for the given TTL.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $ttl\n     * @return int\n     */\n    protected function getSeconds($ttl)\n    {\n        $duration = $this->parseDateInterval($ttl);\n\n        if ($duration instanceof DateTimeInterface) {\n            $duration = Carbon::now()->diffInRealSeconds($duration, false);\n        }\n\n        return (int) $duration > 0 ? $duration : 0;\n    }\n\n    /**\n     * Handle dynamic calls into macros or pass missing methods to the store.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        return $this->store->$method(...$parameters);\n    }\n\n    /**\n     * Clone cache repository instance.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->store = clone $this->store;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/RetrievesMultipleKeys.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\ntrait RetrievesMultipleKeys\n{\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys)\n    {\n        $return = [];\n\n        foreach ($keys as $key) {\n            $return[$key] = $this->get($key);\n        }\n\n        return $return;\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function putMany(array $values, $seconds)\n    {\n        $manyResult = null;\n\n        foreach ($values as $key => $value) {\n            $result = $this->put($key, $value, $seconds);\n\n            $manyResult = is_null($manyResult) ? $result : $result && $manyResult;\n        }\n\n        return $manyResult ?: false;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/TagSet.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Contracts\\Cache\\Store;\n\nclass TagSet\n{\n    /**\n     * The cache store implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Store\n     */\n    protected $store;\n\n    /**\n     * The tag names.\n     *\n     * @var array\n     */\n    protected $names = [];\n\n    /**\n     * Create a new TagSet instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Store  $store\n     * @param  array  $names\n     * @return void\n     */\n    public function __construct(Store $store, array $names = [])\n    {\n        $this->store = $store;\n        $this->names = $names;\n    }\n\n    /**\n     * Reset all tags in the set.\n     *\n     * @return void\n     */\n    public function reset()\n    {\n        array_walk($this->names, [$this, 'resetTag']);\n    }\n\n    /**\n     * Reset the tag and return the new tag identifier.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function resetTag($name)\n    {\n        $this->store->forever($this->tagKey($name), $id = str_replace('.', '', uniqid('', true)));\n\n        return $id;\n    }\n\n    /**\n     * Get a unique namespace that changes when any of the tags are flushed.\n     *\n     * @return string\n     */\n    public function getNamespace()\n    {\n        return implode('|', $this->tagIds());\n    }\n\n    /**\n     * Get an array of tag identifiers for all of the tags in the set.\n     *\n     * @return array\n     */\n    protected function tagIds()\n    {\n        return array_map([$this, 'tagId'], $this->names);\n    }\n\n    /**\n     * Get the unique tag identifier for a given tag.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function tagId($name)\n    {\n        return $this->store->get($this->tagKey($name)) ?: $this->resetTag($name);\n    }\n\n    /**\n     * Get the tag identifier key for a given tag.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function tagKey($name)\n    {\n        return 'tag:'.$name.':key';\n    }\n\n    /**\n     * Get all of the tag names in the set.\n     *\n     * @return array\n     */\n    public function getNames()\n    {\n        return $this->names;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/TaggableStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Contracts\\Cache\\Store;\n\nabstract class TaggableStore implements Store\n{\n    /**\n     * Begin executing a new tags operation.\n     *\n     * @param  array|mixed  $names\n     * @return \\Illuminate\\Cache\\TaggedCache\n     */\n    public function tags($names)\n    {\n        return new TaggedCache($this, new TagSet($this, is_array($names) ? $names : func_get_args()));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/TaggedCache.php",
    "content": "<?php\n\nnamespace Illuminate\\Cache;\n\nuse Illuminate\\Contracts\\Cache\\Store;\n\nclass TaggedCache extends Repository\n{\n    use RetrievesMultipleKeys {\n        putMany as putManyAlias;\n    }\n\n    /**\n     * The tag set instance.\n     *\n     * @var \\Illuminate\\Cache\\TagSet\n     */\n    protected $tags;\n\n    /**\n     * Create a new tagged cache instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Store  $store\n     * @param  \\Illuminate\\Cache\\TagSet  $tags\n     * @return void\n     */\n    public function __construct(Store $store, TagSet $tags)\n    {\n        parent::__construct($store);\n\n        $this->tags = $tags;\n    }\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  int|null  $ttl\n     * @return bool\n     */\n    public function putMany(array $values, $ttl = null)\n    {\n        if ($ttl === null) {\n            return $this->putManyForever($values);\n        }\n\n        return $this->putManyAlias($values, $ttl);\n    }\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function increment($key, $value = 1)\n    {\n        $this->store->increment($this->itemKey($key), $value);\n    }\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function decrement($key, $value = 1)\n    {\n        $this->store->decrement($this->itemKey($key), $value);\n    }\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush()\n    {\n        $this->tags->reset();\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function itemKey($key)\n    {\n        return $this->taggedItemKey($key);\n    }\n\n    /**\n     * Get a fully qualified key for a tagged item.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    public function taggedItemKey($key)\n    {\n        return sha1($this->tags->getNamespace()).':'.$key;\n    }\n\n    /**\n     * Fire an event for this cache instance.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    protected function event($event)\n    {\n        parent::event($event->setTags($this->tags->getNames()));\n    }\n\n    /**\n     * Get the tag set instance.\n     *\n     * @return \\Illuminate\\Cache\\TagSet\n     */\n    public function getTags()\n    {\n        return $this->tags;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cache/composer.json",
    "content": "{\n    \"name\": \"illuminate/cache\",\n    \"description\": \"The Illuminate Cache package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Cache\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/database\": \"Required to use the database cache driver (5.8.*).\",\n        \"illuminate/filesystem\": \"Required to use the file cache driver (5.8.*).\",\n        \"illuminate/redis\": \"Required to use the redis cache driver (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Config/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Config/Repository.php",
    "content": "<?php\n\nnamespace Illuminate\\Config;\n\nuse ArrayAccess;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Contracts\\Config\\Repository as ConfigContract;\n\nclass Repository implements ArrayAccess, ConfigContract\n{\n    /**\n     * All of the configuration items.\n     *\n     * @var array\n     */\n    protected $items = [];\n\n    /**\n     * Create a new configuration repository.\n     *\n     * @param  array  $items\n     * @return void\n     */\n    public function __construct(array $items = [])\n    {\n        $this->items = $items;\n    }\n\n    /**\n     * Determine if the given configuration value exists.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        return Arr::has($this->items, $key);\n    }\n\n    /**\n     * Get the specified configuration value.\n     *\n     * @param  array|string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        if (is_array($key)) {\n            return $this->getMany($key);\n        }\n\n        return Arr::get($this->items, $key, $default);\n    }\n\n    /**\n     * Get many configuration values.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function getMany($keys)\n    {\n        $config = [];\n\n        foreach ($keys as $key => $default) {\n            if (is_numeric($key)) {\n                [$key, $default] = [$default, null];\n            }\n\n            $config[$key] = Arr::get($this->items, $key, $default);\n        }\n\n        return $config;\n    }\n\n    /**\n     * Set a given configuration value.\n     *\n     * @param  array|string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function set($key, $value = null)\n    {\n        $keys = is_array($key) ? $key : [$key => $value];\n\n        foreach ($keys as $key => $value) {\n            Arr::set($this->items, $key, $value);\n        }\n    }\n\n    /**\n     * Prepend a value onto an array configuration value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function prepend($key, $value)\n    {\n        $array = $this->get($key);\n\n        array_unshift($array, $value);\n\n        $this->set($key, $array);\n    }\n\n    /**\n     * Push a value onto an array configuration value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function push($key, $value)\n    {\n        $array = $this->get($key);\n\n        $array[] = $value;\n\n        $this->set($key, $array);\n    }\n\n    /**\n     * Get all of the configuration items for the application.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        return $this->items;\n    }\n\n    /**\n     * Determine if the given configuration option exists.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return $this->has($key);\n    }\n\n    /**\n     * Get a configuration option.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->get($key);\n    }\n\n    /**\n     * Set a configuration option.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        $this->set($key, $value);\n    }\n\n    /**\n     * Unset a configuration option.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        $this->set($key, null);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Config/composer.json",
    "content": "{\n    \"name\": \"illuminate/config\",\n    \"description\": \"The Illuminate Config package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Config\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Application.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Closure;\nuse Illuminate\\Support\\ProcessUtils;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Symfony\\Component\\Console\\Input\\ArgvInput;\nuse Symfony\\Component\\Console\\Input\\ArrayInput;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Input\\StringInput;\nuse Symfony\\Component\\Process\\PhpExecutableFinder;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\ConsoleOutput;\nuse Symfony\\Component\\Console\\Output\\BufferedOutput;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse Symfony\\Component\\Console\\Application as SymfonyApplication;\nuse Symfony\\Component\\Console\\Command\\Command as SymfonyCommand;\nuse Symfony\\Component\\Console\\Exception\\CommandNotFoundException;\nuse Illuminate\\Contracts\\Console\\Application as ApplicationContract;\n\nclass Application extends SymfonyApplication implements ApplicationContract\n{\n    /**\n     * The Laravel application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $laravel;\n\n    /**\n     * The output from the previous command.\n     *\n     * @var \\Symfony\\Component\\Console\\Output\\BufferedOutput\n     */\n    protected $lastOutput;\n\n    /**\n     * The console application bootstrappers.\n     *\n     * @var array\n     */\n    protected static $bootstrappers = [];\n\n    /**\n     * The Event Dispatcher.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * Create a new Artisan console application.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $laravel\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @param  string  $version\n     * @return void\n     */\n    public function __construct(Container $laravel, Dispatcher $events, $version)\n    {\n        parent::__construct('Laravel Framework', $version);\n\n        $this->laravel = $laravel;\n        $this->events = $events;\n        $this->setAutoExit(false);\n        $this->setCatchExceptions(false);\n\n        $this->events->dispatch(new Events\\ArtisanStarting($this));\n\n        $this->bootstrap();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function run(InputInterface $input = null, OutputInterface $output = null)\n    {\n        $commandName = $this->getCommandName(\n            $input = $input ?: new ArgvInput\n        );\n\n        $this->events->dispatch(\n            new Events\\CommandStarting(\n                $commandName, $input, $output = $output ?: new ConsoleOutput\n            )\n        );\n\n        $exitCode = parent::run($input, $output);\n\n        $this->events->dispatch(\n            new Events\\CommandFinished($commandName, $input, $output, $exitCode)\n        );\n\n        return $exitCode;\n    }\n\n    /**\n     * Determine the proper PHP executable.\n     *\n     * @return string\n     */\n    public static function phpBinary()\n    {\n        return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));\n    }\n\n    /**\n     * Determine the proper Artisan executable.\n     *\n     * @return string\n     */\n    public static function artisanBinary()\n    {\n        return defined('ARTISAN_BINARY') ? ProcessUtils::escapeArgument(ARTISAN_BINARY) : 'artisan';\n    }\n\n    /**\n     * Format the given command as a fully-qualified executable command.\n     *\n     * @param  string  $string\n     * @return string\n     */\n    public static function formatCommandString($string)\n    {\n        return sprintf('%s %s %s', static::phpBinary(), static::artisanBinary(), $string);\n    }\n\n    /**\n     * Register a console \"starting\" bootstrapper.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public static function starting(Closure $callback)\n    {\n        static::$bootstrappers[] = $callback;\n    }\n\n    /**\n     * Bootstrap the console application.\n     *\n     * @return void\n     */\n    protected function bootstrap()\n    {\n        foreach (static::$bootstrappers as $bootstrapper) {\n            $bootstrapper($this);\n        }\n    }\n\n    /**\n     * Clear the console application bootstrappers.\n     *\n     * @return void\n     */\n    public static function forgetBootstrappers()\n    {\n        static::$bootstrappers = [];\n    }\n\n    /**\n     * Run an Artisan console command by name.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $outputBuffer\n     * @return int\n     *\n     * @throws \\Symfony\\Component\\Console\\Exception\\CommandNotFoundException\n     */\n    public function call($command, array $parameters = [], $outputBuffer = null)\n    {\n        [$command, $input] = $this->parseCommand($command, $parameters);\n\n        if (! $this->has($command)) {\n            throw new CommandNotFoundException(sprintf('The command \"%s\" does not exist.', $command));\n        }\n\n        return $this->run(\n            $input, $this->lastOutput = $outputBuffer ?: new BufferedOutput\n        );\n    }\n\n    /**\n     * Parse the incoming Artisan command and its input.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function parseCommand($command, $parameters)\n    {\n        if (is_subclass_of($command, SymfonyCommand::class)) {\n            $callingClass = true;\n\n            $command = $this->laravel->make($command)->getName();\n        }\n\n        if (! isset($callingClass) && empty($parameters)) {\n            $command = $this->getCommandName($input = new StringInput($command));\n        } else {\n            array_unshift($parameters, $command);\n\n            $input = new ArrayInput($parameters);\n        }\n\n        return [$command, $input ?? null];\n    }\n\n    /**\n     * Get the output for the last run command.\n     *\n     * @return string\n     */\n    public function output()\n    {\n        return $this->lastOutput && method_exists($this->lastOutput, 'fetch')\n                        ? $this->lastOutput->fetch()\n                        : '';\n    }\n\n    /**\n     * Add a command to the console.\n     *\n     * @param  \\Symfony\\Component\\Console\\Command\\Command  $command\n     * @return \\Symfony\\Component\\Console\\Command\\Command\n     */\n    public function add(SymfonyCommand $command)\n    {\n        if ($command instanceof Command) {\n            $command->setLaravel($this->laravel);\n        }\n\n        return $this->addToParent($command);\n    }\n\n    /**\n     * Add the command to the parent instance.\n     *\n     * @param  \\Symfony\\Component\\Console\\Command\\Command  $command\n     * @return \\Symfony\\Component\\Console\\Command\\Command\n     */\n    protected function addToParent(SymfonyCommand $command)\n    {\n        return parent::add($command);\n    }\n\n    /**\n     * Add a command, resolving through the application.\n     *\n     * @param  string  $command\n     * @return \\Symfony\\Component\\Console\\Command\\Command\n     */\n    public function resolve($command)\n    {\n        return $this->add($this->laravel->make($command));\n    }\n\n    /**\n     * Resolve an array of commands through the application.\n     *\n     * @param  array|mixed  $commands\n     * @return $this\n     */\n    public function resolveCommands($commands)\n    {\n        $commands = is_array($commands) ? $commands : func_get_args();\n\n        foreach ($commands as $command) {\n            $this->resolve($command);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the default input definition for the application.\n     *\n     * This is used to add the --env option to every available command.\n     *\n     * @return \\Symfony\\Component\\Console\\Input\\InputDefinition\n     */\n    protected function getDefaultInputDefinition()\n    {\n        return tap(parent::getDefaultInputDefinition(), function ($definition) {\n            $definition->addOption($this->getEnvironmentOption());\n        });\n    }\n\n    /**\n     * Get the global environment option for the definition.\n     *\n     * @return \\Symfony\\Component\\Console\\Input\\InputOption\n     */\n    protected function getEnvironmentOption()\n    {\n        $message = 'The environment the command should run under';\n\n        return new InputOption('--env', null, InputOption::VALUE_OPTIONAL, $message);\n    }\n\n    /**\n     * Get the Laravel application instance.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    public function getLaravel()\n    {\n        return $this->laravel;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Command.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Symfony\\Component\\Console\\Helper\\Table;\nuse Symfony\\Component\\Console\\Input\\ArrayInput;\nuse Symfony\\Component\\Console\\Output\\NullOutput;\nuse Symfony\\Component\\Console\\Question\\Question;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse Symfony\\Component\\Console\\Question\\ChoiceQuestion;\nuse Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle;\nuse Symfony\\Component\\Console\\Command\\Command as SymfonyCommand;\n\nclass Command extends SymfonyCommand\n{\n    use Macroable;\n\n    /**\n     * The Laravel application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $laravel;\n\n    /**\n     * The input interface implementation.\n     *\n     * @var \\Symfony\\Component\\Console\\Input\\InputInterface\n     */\n    protected $input;\n\n    /**\n     * The output interface implementation.\n     *\n     * @var \\Illuminate\\Console\\OutputStyle\n     */\n    protected $output;\n\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description;\n\n    /**\n     * Indicates whether the command should be shown in the Artisan command list.\n     *\n     * @var bool\n     */\n    protected $hidden = false;\n\n    /**\n     * The default verbosity of output commands.\n     *\n     * @var int\n     */\n    protected $verbosity = OutputInterface::VERBOSITY_NORMAL;\n\n    /**\n     * The mapping between human readable verbosity levels and Symfony's OutputInterface.\n     *\n     * @var array\n     */\n    protected $verbosityMap = [\n        'v' => OutputInterface::VERBOSITY_VERBOSE,\n        'vv' => OutputInterface::VERBOSITY_VERY_VERBOSE,\n        'vvv' => OutputInterface::VERBOSITY_DEBUG,\n        'quiet' => OutputInterface::VERBOSITY_QUIET,\n        'normal' => OutputInterface::VERBOSITY_NORMAL,\n    ];\n\n    /**\n     * Create a new console command instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        // We will go ahead and set the name, description, and parameters on console\n        // commands just to make things a little easier on the developer. This is\n        // so they don't have to all be manually specified in the constructors.\n        if (isset($this->signature)) {\n            $this->configureUsingFluentDefinition();\n        } else {\n            parent::__construct($this->name);\n        }\n\n        // Once we have constructed the command, we'll set the description and other\n        // related properties of the command. If a signature wasn't used to build\n        // the command we'll set the arguments and the options on this command.\n        $this->setDescription($this->description);\n\n        $this->setHidden($this->isHidden());\n\n        if (! isset($this->signature)) {\n            $this->specifyParameters();\n        }\n    }\n\n    /**\n     * Configure the console command using a fluent definition.\n     *\n     * @return void\n     */\n    protected function configureUsingFluentDefinition()\n    {\n        [$name, $arguments, $options] = Parser::parse($this->signature);\n\n        parent::__construct($this->name = $name);\n\n        // After parsing the signature we will spin through the arguments and options\n        // and set them on this command. These will already be changed into proper\n        // instances of these \"InputArgument\" and \"InputOption\" Symfony classes.\n        $this->getDefinition()->addArguments($arguments);\n        $this->getDefinition()->addOptions($options);\n    }\n\n    /**\n     * Specify the arguments and options on the command.\n     *\n     * @return void\n     */\n    protected function specifyParameters()\n    {\n        // We will loop through all of the arguments and options for the command and\n        // set them all on the base command instance. This specifies what can get\n        // passed into these commands as \"parameters\" to control the execution.\n        foreach ($this->getArguments() as $arguments) {\n            call_user_func_array([$this, 'addArgument'], $arguments);\n        }\n\n        foreach ($this->getOptions() as $options) {\n            call_user_func_array([$this, 'addOption'], $options);\n        }\n    }\n\n    /**\n     * Run the console command.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @return int\n     */\n    public function run(InputInterface $input, OutputInterface $output)\n    {\n        $this->output = $this->laravel->make(\n            OutputStyle::class, ['input' => $input, 'output' => $output]\n        );\n\n        return parent::run(\n            $this->input = $input, $this->output\n        );\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @return mixed\n     */\n    protected function execute(InputInterface $input, OutputInterface $output)\n    {\n        return $this->laravel->call([$this, 'handle']);\n    }\n\n    /**\n     * Call another console command.\n     *\n     * @param  string  $command\n     * @param  array   $arguments\n     * @return int\n     */\n    public function call($command, array $arguments = [])\n    {\n        $arguments['command'] = $command;\n\n        return $this->getApplication()->find($command)->run(\n            $this->createInputFromArguments($arguments), $this->output\n        );\n    }\n\n    /**\n     * Call another console command silently.\n     *\n     * @param  string  $command\n     * @param  array   $arguments\n     * @return int\n     */\n    public function callSilent($command, array $arguments = [])\n    {\n        $arguments['command'] = $command;\n\n        return $this->getApplication()->find($command)->run(\n            $this->createInputFromArguments($arguments), new NullOutput\n        );\n    }\n\n    /**\n     * Create an input instance from the given arguments.\n     *\n     * @param  array  $arguments\n     * @return \\Symfony\\Component\\Console\\Input\\ArrayInput\n     */\n    protected function createInputFromArguments(array $arguments)\n    {\n        return tap(new ArrayInput(array_merge($this->context(), $arguments)), function ($input) {\n            if ($input->hasParameterOption(['--no-interaction'], true)) {\n                $input->setInteractive(false);\n            }\n        });\n    }\n\n    /**\n     * Get all of the context passed to the command.\n     *\n     * @return array\n     */\n    protected function context()\n    {\n        return collect($this->option())->only([\n            'ansi',\n            'no-ansi',\n            'no-interaction',\n            'quiet',\n            'verbose',\n        ])->filter()->mapWithKeys(function ($value, $key) {\n            return [\"--{$key}\" => $value];\n        })->all();\n    }\n\n    /**\n     * Determine if the given argument is present.\n     *\n     * @param  string|int  $name\n     * @return bool\n     */\n    public function hasArgument($name)\n    {\n        return $this->input->hasArgument($name);\n    }\n\n    /**\n     * Get the value of a command argument.\n     *\n     * @param  string|null  $key\n     * @return string|array|null\n     */\n    public function argument($key = null)\n    {\n        if (is_null($key)) {\n            return $this->input->getArguments();\n        }\n\n        return $this->input->getArgument($key);\n    }\n\n    /**\n     * Get all of the arguments passed to the command.\n     *\n     * @return array\n     */\n    public function arguments()\n    {\n        return $this->argument();\n    }\n\n    /**\n     * Determine if the given option is present.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasOption($name)\n    {\n        return $this->input->hasOption($name);\n    }\n\n    /**\n     * Get the value of a command option.\n     *\n     * @param  string|null  $key\n     * @return string|array|bool|null\n     */\n    public function option($key = null)\n    {\n        if (is_null($key)) {\n            return $this->input->getOptions();\n        }\n\n        return $this->input->getOption($key);\n    }\n\n    /**\n     * Get all of the options passed to the command.\n     *\n     * @return array\n     */\n    public function options()\n    {\n        return $this->option();\n    }\n\n    /**\n     * Confirm a question with the user.\n     *\n     * @param  string  $question\n     * @param  bool    $default\n     * @return bool\n     */\n    public function confirm($question, $default = false)\n    {\n        return $this->output->confirm($question, $default);\n    }\n\n    /**\n     * Prompt the user for input.\n     *\n     * @param  string  $question\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function ask($question, $default = null)\n    {\n        return $this->output->ask($question, $default);\n    }\n\n    /**\n     * Prompt the user for input with auto completion.\n     *\n     * @param  string  $question\n     * @param  array   $choices\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function anticipate($question, array $choices, $default = null)\n    {\n        return $this->askWithCompletion($question, $choices, $default);\n    }\n\n    /**\n     * Prompt the user for input with auto completion.\n     *\n     * @param  string  $question\n     * @param  array   $choices\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function askWithCompletion($question, array $choices, $default = null)\n    {\n        $question = new Question($question, $default);\n\n        $question->setAutocompleterValues($choices);\n\n        return $this->output->askQuestion($question);\n    }\n\n    /**\n     * Prompt the user for input but hide the answer from the console.\n     *\n     * @param  string  $question\n     * @param  bool    $fallback\n     * @return mixed\n     */\n    public function secret($question, $fallback = true)\n    {\n        $question = new Question($question);\n\n        $question->setHidden(true)->setHiddenFallback($fallback);\n\n        return $this->output->askQuestion($question);\n    }\n\n    /**\n     * Give the user a single choice from an array of answers.\n     *\n     * @param  string  $question\n     * @param  array   $choices\n     * @param  string|null  $default\n     * @param  mixed|null   $attempts\n     * @param  bool|null    $multiple\n     * @return string\n     */\n    public function choice($question, array $choices, $default = null, $attempts = null, $multiple = null)\n    {\n        $question = new ChoiceQuestion($question, $choices, $default);\n\n        $question->setMaxAttempts($attempts)->setMultiselect($multiple);\n\n        return $this->output->askQuestion($question);\n    }\n\n    /**\n     * Format input to textual table.\n     *\n     * @param  array   $headers\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $rows\n     * @param  string  $tableStyle\n     * @param  array   $columnStyles\n     * @return void\n     */\n    public function table($headers, $rows, $tableStyle = 'default', array $columnStyles = [])\n    {\n        $table = new Table($this->output);\n\n        if ($rows instanceof Arrayable) {\n            $rows = $rows->toArray();\n        }\n\n        $table->setHeaders((array) $headers)->setRows($rows)->setStyle($tableStyle);\n\n        foreach ($columnStyles as $columnIndex => $columnStyle) {\n            $table->setColumnStyle($columnIndex, $columnStyle);\n        }\n\n        $table->render();\n    }\n\n    /**\n     * Write a string as information output.\n     *\n     * @param  string  $string\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function info($string, $verbosity = null)\n    {\n        $this->line($string, 'info', $verbosity);\n    }\n\n    /**\n     * Write a string as standard output.\n     *\n     * @param  string  $string\n     * @param  string|null  $style\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function line($string, $style = null, $verbosity = null)\n    {\n        $styled = $style ? \"<$style>$string</$style>\" : $string;\n\n        $this->output->writeln($styled, $this->parseVerbosity($verbosity));\n    }\n\n    /**\n     * Write a string as comment output.\n     *\n     * @param  string  $string\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function comment($string, $verbosity = null)\n    {\n        $this->line($string, 'comment', $verbosity);\n    }\n\n    /**\n     * Write a string as question output.\n     *\n     * @param  string  $string\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function question($string, $verbosity = null)\n    {\n        $this->line($string, 'question', $verbosity);\n    }\n\n    /**\n     * Write a string as error output.\n     *\n     * @param  string  $string\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function error($string, $verbosity = null)\n    {\n        $this->line($string, 'error', $verbosity);\n    }\n\n    /**\n     * Write a string as warning output.\n     *\n     * @param  string  $string\n     * @param  int|string|null  $verbosity\n     * @return void\n     */\n    public function warn($string, $verbosity = null)\n    {\n        if (! $this->output->getFormatter()->hasStyle('warning')) {\n            $style = new OutputFormatterStyle('yellow');\n\n            $this->output->getFormatter()->setStyle('warning', $style);\n        }\n\n        $this->line($string, 'warning', $verbosity);\n    }\n\n    /**\n     * Write a string in an alert box.\n     *\n     * @param  string  $string\n     * @return void\n     */\n    public function alert($string)\n    {\n        $length = Str::length(strip_tags($string)) + 12;\n\n        $this->comment(str_repeat('*', $length));\n        $this->comment('*     '.$string.'     *');\n        $this->comment(str_repeat('*', $length));\n\n        $this->output->newLine();\n    }\n\n    /**\n     * Set the verbosity level.\n     *\n     * @param  string|int  $level\n     * @return void\n     */\n    protected function setVerbosity($level)\n    {\n        $this->verbosity = $this->parseVerbosity($level);\n    }\n\n    /**\n     * Get the verbosity level in terms of Symfony's OutputInterface level.\n     *\n     * @param  string|int|null  $level\n     * @return int\n     */\n    protected function parseVerbosity($level = null)\n    {\n        if (isset($this->verbosityMap[$level])) {\n            $level = $this->verbosityMap[$level];\n        } elseif (! is_int($level)) {\n            $level = $this->verbosity;\n        }\n\n        return $level;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHidden()\n    {\n        return $this->hidden;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setHidden($hidden)\n    {\n        parent::setHidden($this->hidden = $hidden);\n\n        return $this;\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [];\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [];\n    }\n\n    /**\n     * Get the output implementation.\n     *\n     * @return \\Illuminate\\Console\\OutputStyle\n     */\n    public function getOutput()\n    {\n        return $this->output;\n    }\n\n    /**\n     * Get the Laravel application instance.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    public function getLaravel()\n    {\n        return $this->laravel;\n    }\n\n    /**\n     * Set the Laravel application instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $laravel\n     * @return void\n     */\n    public function setLaravel($laravel)\n    {\n        $this->laravel = $laravel;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/ConfirmableTrait.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Closure;\n\ntrait ConfirmableTrait\n{\n    /**\n     * Confirm before proceeding with the action.\n     *\n     * This method only asks for confirmation in production.\n     *\n     * @param  string  $warning\n     * @param  \\Closure|bool|null  $callback\n     * @return bool\n     */\n    public function confirmToProceed($warning = 'Application In Production!', $callback = null)\n    {\n        $callback = is_null($callback) ? $this->getDefaultConfirmCallback() : $callback;\n\n        $shouldConfirm = $callback instanceof Closure ? call_user_func($callback) : $callback;\n\n        if ($shouldConfirm) {\n            if ($this->hasOption('force') && $this->option('force')) {\n                return true;\n            }\n\n            $this->alert($warning);\n\n            $confirmed = $this->confirm('Do you really wish to run this command?');\n\n            if (! $confirmed) {\n                $this->comment('Command Cancelled!');\n\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the default confirmation callback.\n     *\n     * @return \\Closure\n     */\n    protected function getDefaultConfirmCallback()\n    {\n        return function () {\n            return $this->getLaravel()->environment() === 'production';\n        };\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/DetectsApplicationNamespace.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Illuminate\\Container\\Container;\n\ntrait DetectsApplicationNamespace\n{\n    /**\n     * Get the application namespace.\n     *\n     * @return string\n     */\n    protected function getAppNamespace()\n    {\n        return Container::getInstance()->getNamespace();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Events/ArtisanStarting.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Events;\n\nclass ArtisanStarting\n{\n    /**\n     * The Artisan application instance.\n     *\n     * @var \\Illuminate\\Console\\Application\n     */\n    public $artisan;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Console\\Application  $artisan\n     * @return void\n     */\n    public function __construct($artisan)\n    {\n        $this->artisan = $artisan;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Events/CommandFinished.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Events;\n\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\nclass CommandFinished\n{\n    /**\n     * The command name.\n     *\n     * @var string\n     */\n    public $command;\n\n    /**\n     * The console input implementation.\n     *\n     * @var \\Symfony\\Component\\Console\\Input\\InputInterface|null\n     */\n    public $input;\n\n    /**\n     * The command output implementation.\n     *\n     * @var \\Symfony\\Component\\Console\\Output\\OutputInterface|null\n     */\n    public $output;\n\n    /**\n     * The command exit code.\n     *\n     * @var int\n     */\n    public $exitCode;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $command\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @param  int  $exitCode\n     * @return void\n     */\n    public function __construct($command, InputInterface $input, OutputInterface $output, $exitCode)\n    {\n        $this->input = $input;\n        $this->output = $output;\n        $this->command = $command;\n        $this->exitCode = $exitCode;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Events/CommandStarting.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Events;\n\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\nclass CommandStarting\n{\n    /**\n     * The command name.\n     *\n     * @var string\n     */\n    public $command;\n\n    /**\n     * The console input implementation.\n     *\n     * @var \\Symfony\\Component\\Console\\Input\\InputInterface|null\n     */\n    public $input;\n\n    /**\n     * The command output implementation.\n     *\n     * @var \\Symfony\\Component\\Console\\Output\\OutputInterface|null\n     */\n    public $output;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $command\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @return void\n     */\n    public function __construct($command, InputInterface $input, OutputInterface $output)\n    {\n        $this->input = $input;\n        $this->output = $output;\n        $this->command = $command;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/GeneratorCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nabstract class GeneratorCommand extends Command\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type;\n\n    /**\n     * Create a new controller creator command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    abstract protected function getStub();\n\n    /**\n     * Execute the console command.\n     *\n     * @return bool|null\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function handle()\n    {\n        $name = $this->qualifyClass($this->getNameInput());\n\n        $path = $this->getPath($name);\n\n        // First we will check to see if the class already exists. If it does, we don't want\n        // to create the class and overwrite the user's code. So, we will bail out so the\n        // code is untouched. Otherwise, we will continue generating this class' files.\n        if ((! $this->hasOption('force') ||\n             ! $this->option('force')) &&\n             $this->alreadyExists($this->getNameInput())) {\n            $this->error($this->type.' already exists!');\n\n            return false;\n        }\n\n        // Next, we will generate the path to the location where this class' file should get\n        // written. Then, we will build the class and make the proper replacements on the\n        // stub files so that it gets the correctly formatted namespace and class name.\n        $this->makeDirectory($path);\n\n        $this->files->put($path, $this->buildClass($name));\n\n        $this->info($this->type.' created successfully.');\n    }\n\n    /**\n     * Parse the class name and format according to the root namespace.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function qualifyClass($name)\n    {\n        $name = ltrim($name, '\\\\/');\n\n        $rootNamespace = $this->rootNamespace();\n\n        if (Str::startsWith($name, $rootNamespace)) {\n            return $name;\n        }\n\n        $name = str_replace('/', '\\\\', $name);\n\n        return $this->qualifyClass(\n            $this->getDefaultNamespace(trim($rootNamespace, '\\\\')).'\\\\'.$name\n        );\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace;\n    }\n\n    /**\n     * Determine if the class already exists.\n     *\n     * @param  string  $rawName\n     * @return bool\n     */\n    protected function alreadyExists($rawName)\n    {\n        return $this->files->exists($this->getPath($this->qualifyClass($rawName)));\n    }\n\n    /**\n     * Get the destination class path.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getPath($name)\n    {\n        $name = Str::replaceFirst($this->rootNamespace(), '', $name);\n\n        return $this->laravel['path'].'/'.str_replace('\\\\', '/', $name).'.php';\n    }\n\n    /**\n     * Build the directory for the class if necessary.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    protected function makeDirectory($path)\n    {\n        if (! $this->files->isDirectory(dirname($path))) {\n            $this->files->makeDirectory(dirname($path), 0777, true, true);\n        }\n\n        return $path;\n    }\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    protected function buildClass($name)\n    {\n        $stub = $this->files->get($this->getStub());\n\n        return $this->replaceNamespace($stub, $name)->replaceClass($stub, $name);\n    }\n\n    /**\n     * Replace the namespace for the given stub.\n     *\n     * @param  string  $stub\n     * @param  string  $name\n     * @return $this\n     */\n    protected function replaceNamespace(&$stub, $name)\n    {\n        $stub = str_replace(\n            ['DummyNamespace', 'DummyRootNamespace', 'NamespacedDummyUserModel'],\n            [$this->getNamespace($name), $this->rootNamespace(), $this->userProviderModel()],\n            $stub\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the full namespace for a given class, without the class name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getNamespace($name)\n    {\n        return trim(implode('\\\\', array_slice(explode('\\\\', $name), 0, -1)), '\\\\');\n    }\n\n    /**\n     * Replace the class name for the given stub.\n     *\n     * @param  string  $stub\n     * @param  string  $name\n     * @return string\n     */\n    protected function replaceClass($stub, $name)\n    {\n        $class = str_replace($this->getNamespace($name).'\\\\', '', $name);\n\n        return str_replace('DummyClass', $class, $stub);\n    }\n\n    /**\n     * Get the desired class name from the input.\n     *\n     * @return string\n     */\n    protected function getNameInput()\n    {\n        return trim($this->argument('name'));\n    }\n\n    /**\n     * Get the root namespace for the class.\n     *\n     * @return string\n     */\n    protected function rootNamespace()\n    {\n        return $this->laravel->getNamespace();\n    }\n\n    /**\n     * Get the model for the default guard's user provider.\n     *\n     * @return string|null\n     */\n    protected function userProviderModel()\n    {\n        $guard = config('auth.defaults.guard');\n\n        $provider = config(\"auth.guards.{$guard}.provider\");\n\n        return config(\"auth.providers.{$provider}.model\");\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [\n            ['name', InputArgument::REQUIRED, 'The name of the class'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/OutputStyle.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Symfony\\Component\\Console\\Style\\SymfonyStyle;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\nclass OutputStyle extends SymfonyStyle\n{\n    /**\n     * The output instance.\n     *\n     * @var \\Symfony\\Component\\Console\\Output\\OutputInterface\n     */\n    private $output;\n\n    /**\n     * Create a new Console OutputStyle instance.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @return void\n     */\n    public function __construct(InputInterface $input, OutputInterface $output)\n    {\n        $this->output = $output;\n\n        parent::__construct($input, $output);\n    }\n\n    /**\n     * Returns whether verbosity is quiet (-q).\n     *\n     * @return bool\n     */\n    public function isQuiet()\n    {\n        return $this->output->isQuiet();\n    }\n\n    /**\n     * Returns whether verbosity is verbose (-v).\n     *\n     * @return bool\n     */\n    public function isVerbose()\n    {\n        return $this->output->isVerbose();\n    }\n\n    /**\n     * Returns whether verbosity is very verbose (-vv).\n     *\n     * @return bool\n     */\n    public function isVeryVerbose()\n    {\n        return $this->output->isVeryVerbose();\n    }\n\n    /**\n     * Returns whether verbosity is debug (-vvv).\n     *\n     * @return bool\n     */\n    public function isDebug()\n    {\n        return $this->output->isDebug();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Parser.php",
    "content": "<?php\n\nnamespace Illuminate\\Console;\n\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nclass Parser\n{\n    /**\n     * Parse the given console command definition into an array.\n     *\n     * @param  string  $expression\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public static function parse($expression)\n    {\n        $name = static::name($expression);\n\n        if (preg_match_all('/\\{\\s*(.*?)\\s*\\}/', $expression, $matches)) {\n            if (count($matches[1])) {\n                return array_merge([$name], static::parameters($matches[1]));\n            }\n        }\n\n        return [$name, [], []];\n    }\n\n    /**\n     * Extract the name of the command from the expression.\n     *\n     * @param  string  $expression\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected static function name($expression)\n    {\n        if (trim($expression) === '') {\n            throw new InvalidArgumentException('Console command definition is empty.');\n        }\n\n        if (! preg_match('/[^\\s]+/', $expression, $matches)) {\n            throw new InvalidArgumentException('Unable to determine command name from signature.');\n        }\n\n        return $matches[0];\n    }\n\n    /**\n     * Extract all of the parameters from the tokens.\n     *\n     * @param  array  $tokens\n     * @return array\n     */\n    protected static function parameters(array $tokens)\n    {\n        $arguments = [];\n\n        $options = [];\n\n        foreach ($tokens as $token) {\n            if (preg_match('/-{2,}(.*)/', $token, $matches)) {\n                $options[] = static::parseOption($matches[1]);\n            } else {\n                $arguments[] = static::parseArgument($token);\n            }\n        }\n\n        return [$arguments, $options];\n    }\n\n    /**\n     * Parse an argument expression.\n     *\n     * @param  string  $token\n     * @return \\Symfony\\Component\\Console\\Input\\InputArgument\n     */\n    protected static function parseArgument($token)\n    {\n        [$token, $description] = static::extractDescription($token);\n\n        switch (true) {\n            case Str::endsWith($token, '?*'):\n                return new InputArgument(trim($token, '?*'), InputArgument::IS_ARRAY, $description);\n            case Str::endsWith($token, '*'):\n                return new InputArgument(trim($token, '*'), InputArgument::IS_ARRAY | InputArgument::REQUIRED, $description);\n            case Str::endsWith($token, '?'):\n                return new InputArgument(trim($token, '?'), InputArgument::OPTIONAL, $description);\n            case preg_match('/(.+)\\=\\*(.+)/', $token, $matches):\n                return new InputArgument($matches[1], InputArgument::IS_ARRAY, $description, preg_split('/,\\s?/', $matches[2]));\n            case preg_match('/(.+)\\=(.+)/', $token, $matches):\n                return new InputArgument($matches[1], InputArgument::OPTIONAL, $description, $matches[2]);\n            default:\n                return new InputArgument($token, InputArgument::REQUIRED, $description);\n        }\n    }\n\n    /**\n     * Parse an option expression.\n     *\n     * @param  string  $token\n     * @return \\Symfony\\Component\\Console\\Input\\InputOption\n     */\n    protected static function parseOption($token)\n    {\n        [$token, $description] = static::extractDescription($token);\n\n        $matches = preg_split('/\\s*\\|\\s*/', $token, 2);\n\n        if (isset($matches[1])) {\n            $shortcut = $matches[0];\n            $token = $matches[1];\n        } else {\n            $shortcut = null;\n        }\n\n        switch (true) {\n            case Str::endsWith($token, '='):\n                return new InputOption(trim($token, '='), $shortcut, InputOption::VALUE_OPTIONAL, $description);\n            case Str::endsWith($token, '=*'):\n                return new InputOption(trim($token, '=*'), $shortcut, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, $description);\n            case preg_match('/(.+)\\=\\*(.+)/', $token, $matches):\n                return new InputOption($matches[1], $shortcut, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, $description, preg_split('/,\\s?/', $matches[2]));\n            case preg_match('/(.+)\\=(.+)/', $token, $matches):\n                return new InputOption($matches[1], $shortcut, InputOption::VALUE_OPTIONAL, $description, $matches[2]);\n            default:\n                return new InputOption($token, $shortcut, InputOption::VALUE_NONE, $description);\n        }\n    }\n\n    /**\n     * Parse the token into its token and description segments.\n     *\n     * @param  string  $token\n     * @return array\n     */\n    protected static function extractDescription($token)\n    {\n        $parts = preg_split('/\\s+:\\s+/', trim($token), 2);\n\n        return count($parts) === 2 ? $parts : [$token, ''];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheEventMutex.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Illuminate\\Contracts\\Cache\\Factory as Cache;\n\nclass CacheEventMutex implements EventMutex\n{\n    /**\n     * The cache repository implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Factory\n     */\n    public $cache;\n\n    /**\n     * The cache store that should be used.\n     *\n     * @var string|null\n     */\n    public $store;\n\n    /**\n     * Create a new overlapping strategy.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Factory  $cache\n     * @return void\n     */\n    public function __construct(Cache $cache)\n    {\n        $this->cache = $cache;\n    }\n\n    /**\n     * Attempt to obtain an event mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return bool\n     */\n    public function create(Event $event)\n    {\n        return $this->cache->store($this->store)->add(\n            $event->mutexName(), true, $event->expiresAt * 60\n        );\n    }\n\n    /**\n     * Determine if an event mutex exists for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return bool\n     */\n    public function exists(Event $event)\n    {\n        return $this->cache->store($this->store)->has($event->mutexName());\n    }\n\n    /**\n     * Clear the event mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return void\n     */\n    public function forget(Event $event)\n    {\n        $this->cache->store($this->store)->forget($event->mutexName());\n    }\n\n    /**\n     * Specify the cache store that should be used.\n     *\n     * @param  string  $store\n     * @return $this\n     */\n    public function useStore($store)\n    {\n        $this->store = $store;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/CacheSchedulingMutex.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse DateTimeInterface;\nuse Illuminate\\Contracts\\Cache\\Factory as Cache;\n\nclass CacheSchedulingMutex implements SchedulingMutex\n{\n    /**\n     * The cache factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Factory\n     */\n    public $cache;\n\n    /**\n     * The cache store that should be used.\n     *\n     * @var string|null\n     */\n    public $store;\n\n    /**\n     * Create a new scheduling strategy.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Factory  $cache\n     * @return void\n     */\n    public function __construct(Cache $cache)\n    {\n        $this->cache = $cache;\n    }\n\n    /**\n     * Attempt to obtain a scheduling mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  \\DateTimeInterface  $time\n     * @return bool\n     */\n    public function create(Event $event, DateTimeInterface $time)\n    {\n        return $this->cache->store($this->store)->add(\n            $event->mutexName().$time->format('Hi'), true, 3600\n        );\n    }\n\n    /**\n     * Determine if a scheduling mutex exists for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  \\DateTimeInterface  $time\n     * @return bool\n     */\n    public function exists(Event $event, DateTimeInterface $time)\n    {\n        return $this->cache->store($this->store)->has(\n            $event->mutexName().$time->format('Hi')\n        );\n    }\n\n    /**\n     * Specify the cache store that should be used.\n     *\n     * @param  string  $store\n     * @return $this\n     */\n    public function useStore($store)\n    {\n        $this->store = $store;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/CallbackEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse LogicException;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Container\\Container;\n\nclass CallbackEvent extends Event\n{\n    /**\n     * The callback to call.\n     *\n     * @var string\n     */\n    protected $callback;\n\n    /**\n     * The parameters to pass to the method.\n     *\n     * @var array\n     */\n    protected $parameters;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\EventMutex  $mutex\n     * @param  string  $callback\n     * @param  array  $parameters\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct(EventMutex $mutex, $callback, array $parameters = [])\n    {\n        if (! is_string($callback) && ! is_callable($callback)) {\n            throw new InvalidArgumentException(\n                'Invalid scheduled callback event. Must be a string or callable.'\n            );\n        }\n\n        $this->mutex = $mutex;\n        $this->callback = $callback;\n        $this->parameters = $parameters;\n    }\n\n    /**\n     * Run the given event.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    public function run(Container $container)\n    {\n        if ($this->description && $this->withoutOverlapping &&\n            ! $this->mutex->create($this)) {\n            return;\n        }\n\n        $pid = getmypid();\n\n        register_shutdown_function(function () use ($pid) {\n            if ($pid === getmypid()) {\n                $this->removeMutex();\n            }\n        });\n\n        parent::callBeforeCallbacks($container);\n\n        try {\n            $response = is_object($this->callback)\n                        ? $container->call([$this->callback, '__invoke'], $this->parameters)\n                        : $container->call($this->callback, $this->parameters);\n        } finally {\n            $this->removeMutex();\n\n            parent::callAfterCallbacks($container);\n        }\n\n        return $response;\n    }\n\n    /**\n     * Clear the mutex for the event.\n     *\n     * @return void\n     */\n    protected function removeMutex()\n    {\n        if ($this->description) {\n            $this->mutex->forget($this);\n        }\n    }\n\n    /**\n     * Do not allow the event to overlap each other.\n     *\n     * @param  int  $expiresAt\n     * @return $this\n     *\n     * @throws \\LogicException\n     */\n    public function withoutOverlapping($expiresAt = 1440)\n    {\n        if (! isset($this->description)) {\n            throw new LogicException(\n                \"A scheduled event name is required to prevent overlapping. Use the 'name' method before 'withoutOverlapping'.\"\n            );\n        }\n\n        $this->withoutOverlapping = true;\n\n        $this->expiresAt = $expiresAt;\n\n        return $this->skip(function () {\n            return $this->mutex->exists($this);\n        });\n    }\n\n    /**\n     * Allow the event to only run on one server for each cron expression.\n     *\n     * @return $this\n     *\n     * @throws \\LogicException\n     */\n    public function onOneServer()\n    {\n        if (! isset($this->description)) {\n            throw new LogicException(\n                \"A scheduled event name is required to only run on one server. Use the 'name' method before 'onOneServer'.\"\n            );\n        }\n\n        $this->onOneServer = true;\n\n        return $this;\n    }\n\n    /**\n     * Get the mutex name for the scheduled command.\n     *\n     * @return string\n     */\n    public function mutexName()\n    {\n        return 'framework/schedule-'.sha1($this->description);\n    }\n\n    /**\n     * Get the summary of the event for display.\n     *\n     * @return string\n     */\n    public function getSummaryForDisplay()\n    {\n        if (is_string($this->description)) {\n            return $this->description;\n        }\n\n        return is_string($this->callback) ? $this->callback : 'Closure';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/CommandBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Illuminate\\Console\\Application;\nuse Illuminate\\Support\\ProcessUtils;\n\nclass CommandBuilder\n{\n    /**\n     * Build the command for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return string\n     */\n    public function buildCommand(Event $event)\n    {\n        if ($event->runInBackground) {\n            return $this->buildBackgroundCommand($event);\n        }\n\n        return $this->buildForegroundCommand($event);\n    }\n\n    /**\n     * Build the command for running the event in the foreground.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return string\n     */\n    protected function buildForegroundCommand(Event $event)\n    {\n        $output = ProcessUtils::escapeArgument($event->output);\n\n        return $this->ensureCorrectUser(\n            $event, $event->command.($event->shouldAppendOutput ? ' >> ' : ' > ').$output.' 2>&1'\n        );\n    }\n\n    /**\n     * Build the command for running the event in the background.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return string\n     */\n    protected function buildBackgroundCommand(Event $event)\n    {\n        $output = ProcessUtils::escapeArgument($event->output);\n\n        $redirect = $event->shouldAppendOutput ? ' >> ' : ' > ';\n\n        $finished = Application::formatCommandString('schedule:finish').' \"'.$event->mutexName().'\"';\n\n        return $this->ensureCorrectUser($event,\n            '('.$event->command.$redirect.$output.' 2>&1 '.(windows_os() ? '&' : ';').' '.$finished.') > '\n            .ProcessUtils::escapeArgument($event->getDefaultOutput()).' 2>&1 &'\n        );\n    }\n\n    /**\n     * Finalize the event's command syntax with the correct user.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  string  $command\n     * @return string\n     */\n    protected function ensureCorrectUser(Event $event, $command)\n    {\n        return $event->user && ! windows_os() ? 'sudo -u '.$event->user.' -- sh -c \\''.$command.'\\'' : $command;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Closure;\nuse Cron\\CronExpression;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Carbon;\nuse GuzzleHttp\\Client as HttpClient;\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Contracts\\Mail\\Mailer;\nuse Symfony\\Component\\Process\\Process;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Container\\Container;\n\nclass Event\n{\n    use Macroable, ManagesFrequencies;\n\n    /**\n     * The command string.\n     *\n     * @var string\n     */\n    public $command;\n\n    /**\n     * The cron expression representing the event's frequency.\n     *\n     * @var string\n     */\n    public $expression = '* * * * *';\n\n    /**\n     * The timezone the date should be evaluated on.\n     *\n     * @var \\DateTimeZone|string\n     */\n    public $timezone;\n\n    /**\n     * The user the command should run as.\n     *\n     * @var string\n     */\n    public $user;\n\n    /**\n     * The list of environments the command should run under.\n     *\n     * @var array\n     */\n    public $environments = [];\n\n    /**\n     * Indicates if the command should run in maintenance mode.\n     *\n     * @var bool\n     */\n    public $evenInMaintenanceMode = false;\n\n    /**\n     * Indicates if the command should not overlap itself.\n     *\n     * @var bool\n     */\n    public $withoutOverlapping = false;\n\n    /**\n     * Indicates if the command should only be allowed to run on one server for each cron expression.\n     *\n     * @var bool\n     */\n    public $onOneServer = false;\n\n    /**\n     * The amount of time the mutex should be valid.\n     *\n     * @var int\n     */\n    public $expiresAt = 1440;\n\n    /**\n     * Indicates if the command should run in background.\n     *\n     * @var bool\n     */\n    public $runInBackground = false;\n\n    /**\n     * The array of filter callbacks.\n     *\n     * @var array\n     */\n    protected $filters = [];\n\n    /**\n     * The array of reject callbacks.\n     *\n     * @var array\n     */\n    protected $rejects = [];\n\n    /**\n     * The location that output should be sent to.\n     *\n     * @var string\n     */\n    public $output = '/dev/null';\n\n    /**\n     * Indicates whether output should be appended.\n     *\n     * @var bool\n     */\n    public $shouldAppendOutput = false;\n\n    /**\n     * The array of callbacks to be run before the event is started.\n     *\n     * @var array\n     */\n    protected $beforeCallbacks = [];\n\n    /**\n     * The array of callbacks to be run after the event is finished.\n     *\n     * @var array\n     */\n    protected $afterCallbacks = [];\n\n    /**\n     * The human readable description of the event.\n     *\n     * @var string\n     */\n    public $description;\n\n    /**\n     * The event mutex implementation.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\EventMutex\n     */\n    public $mutex;\n\n    /**\n     * The exit status code of the command.\n     *\n     * @var int|null\n     */\n    public $exitCode;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\EventMutex  $mutex\n     * @param  string  $command\n     * @param  \\DateTimeZone|string|null $timezone\n     * @return void\n     */\n    public function __construct(EventMutex $mutex, $command, $timezone = null)\n    {\n        $this->mutex = $mutex;\n        $this->command = $command;\n        $this->timezone = $timezone;\n\n        $this->output = $this->getDefaultOutput();\n    }\n\n    /**\n     * Get the default output depending on the OS.\n     *\n     * @return string\n     */\n    public function getDefaultOutput()\n    {\n        return (DIRECTORY_SEPARATOR === '\\\\') ? 'NUL' : '/dev/null';\n    }\n\n    /**\n     * Run the given event.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function run(Container $container)\n    {\n        if ($this->withoutOverlapping &&\n            ! $this->mutex->create($this)) {\n            return;\n        }\n\n        $this->runInBackground\n                    ? $this->runCommandInBackground($container)\n                    : $this->runCommandInForeground($container);\n    }\n\n    /**\n     * Get the mutex name for the scheduled command.\n     *\n     * @return string\n     */\n    public function mutexName()\n    {\n        return 'framework'.DIRECTORY_SEPARATOR.'schedule-'.sha1($this->expression.$this->command);\n    }\n\n    /**\n     * Run the command in the foreground.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    protected function runCommandInForeground(Container $container)\n    {\n        $this->callBeforeCallbacks($container);\n\n        $this->exitCode = Process::fromShellCommandline($this->buildCommand(), base_path(), null, null, null)->run();\n\n        $this->callAfterCallbacks($container);\n    }\n\n    /**\n     * Run the command in the background.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    protected function runCommandInBackground(Container $container)\n    {\n        $this->callBeforeCallbacks($container);\n\n        Process::fromShellCommandline($this->buildCommand(), base_path(), null, null, null)->run();\n    }\n\n    /**\n     * Call all of the \"before\" callbacks for the event.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function callBeforeCallbacks(Container $container)\n    {\n        foreach ($this->beforeCallbacks as $callback) {\n            $container->call($callback);\n        }\n    }\n\n    /**\n     * Call all of the \"after\" callbacks for the event.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function callAfterCallbacks(Container $container)\n    {\n        foreach ($this->afterCallbacks as $callback) {\n            $container->call($callback);\n        }\n    }\n\n    /**\n     * Build the command string.\n     *\n     * @return string\n     */\n    public function buildCommand()\n    {\n        return (new CommandBuilder)->buildCommand($this);\n    }\n\n    /**\n     * Determine if the given event should run based on the Cron expression.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return bool\n     */\n    public function isDue($app)\n    {\n        if (! $this->runsInMaintenanceMode() && $app->isDownForMaintenance()) {\n            return false;\n        }\n\n        return $this->expressionPasses() &&\n               $this->runsInEnvironment($app->environment());\n    }\n\n    /**\n     * Determine if the event runs in maintenance mode.\n     *\n     * @return bool\n     */\n    public function runsInMaintenanceMode()\n    {\n        return $this->evenInMaintenanceMode;\n    }\n\n    /**\n     * Determine if the Cron expression passes.\n     *\n     * @return bool\n     */\n    protected function expressionPasses()\n    {\n        $date = Carbon::now();\n\n        if ($this->timezone) {\n            $date->setTimezone($this->timezone);\n        }\n\n        return CronExpression::factory($this->expression)->isDue($date->toDateTimeString());\n    }\n\n    /**\n     * Determine if the event runs in the given environment.\n     *\n     * @param  string  $environment\n     * @return bool\n     */\n    public function runsInEnvironment($environment)\n    {\n        return empty($this->environments) || in_array($environment, $this->environments);\n    }\n\n    /**\n     * Determine if the filters pass for the event.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return bool\n     */\n    public function filtersPass($app)\n    {\n        foreach ($this->filters as $callback) {\n            if (! $app->call($callback)) {\n                return false;\n            }\n        }\n\n        foreach ($this->rejects as $callback) {\n            if ($app->call($callback)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Ensure that the output is stored on disk in a log file.\n     *\n     * @return $this\n     */\n    public function storeOutput()\n    {\n        $this->ensureOutputIsBeingCaptured();\n\n        return $this;\n    }\n\n    /**\n     * Send the output of the command to a given location.\n     *\n     * @param  string  $location\n     * @param  bool  $append\n     * @return $this\n     */\n    public function sendOutputTo($location, $append = false)\n    {\n        $this->output = $location;\n\n        $this->shouldAppendOutput = $append;\n\n        return $this;\n    }\n\n    /**\n     * Append the output of the command to a given location.\n     *\n     * @param  string  $location\n     * @return $this\n     */\n    public function appendOutputTo($location)\n    {\n        return $this->sendOutputTo($location, true);\n    }\n\n    /**\n     * E-mail the results of the scheduled operation.\n     *\n     * @param  array|mixed  $addresses\n     * @param  bool  $onlyIfOutputExists\n     * @return $this\n     *\n     * @throws \\LogicException\n     */\n    public function emailOutputTo($addresses, $onlyIfOutputExists = false)\n    {\n        $this->ensureOutputIsBeingCaptured();\n\n        $addresses = Arr::wrap($addresses);\n\n        return $this->then(function (Mailer $mailer) use ($addresses, $onlyIfOutputExists) {\n            $this->emailOutput($mailer, $addresses, $onlyIfOutputExists);\n        });\n    }\n\n    /**\n     * E-mail the results of the scheduled operation if it produces output.\n     *\n     * @param  array|mixed  $addresses\n     * @return $this\n     *\n     * @throws \\LogicException\n     */\n    public function emailWrittenOutputTo($addresses)\n    {\n        return $this->emailOutputTo($addresses, true);\n    }\n\n    /**\n     * E-mail the results of the scheduled operation if it fails.\n     *\n     * @param  array|mixed  $addresses\n     * @return $this\n     */\n    public function emailOutputOnFailure($addresses)\n    {\n        $this->ensureOutputIsBeingCaptured();\n\n        $addresses = Arr::wrap($addresses);\n\n        return $this->onFailure(function (Mailer $mailer) use ($addresses) {\n            $this->emailOutput($mailer, $addresses, false);\n        });\n    }\n\n    /**\n     * Ensure that the command output is being captured.\n     *\n     * @return void\n     */\n    protected function ensureOutputIsBeingCaptured()\n    {\n        if (is_null($this->output) || $this->output == $this->getDefaultOutput()) {\n            $this->sendOutputTo(storage_path('logs/schedule-'.sha1($this->mutexName()).'.log'));\n        }\n    }\n\n    /**\n     * E-mail the output of the event to the recipients.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @param  array  $addresses\n     * @param  bool  $onlyIfOutputExists\n     * @return void\n     */\n    protected function emailOutput(Mailer $mailer, $addresses, $onlyIfOutputExists = false)\n    {\n        $text = file_exists($this->output) ? file_get_contents($this->output) : '';\n\n        if ($onlyIfOutputExists && empty($text)) {\n            return;\n        }\n\n        $mailer->raw($text, function ($m) use ($addresses) {\n            $m->to($addresses)->subject($this->getEmailSubject());\n        });\n    }\n\n    /**\n     * Get the e-mail subject line for output results.\n     *\n     * @return string\n     */\n    protected function getEmailSubject()\n    {\n        if ($this->description) {\n            return $this->description;\n        }\n\n        return \"Scheduled Job Output For [{$this->command}]\";\n    }\n\n    /**\n     * Register a callback to ping a given URL before the job runs.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function pingBefore($url)\n    {\n        return $this->before(function () use ($url) {\n            (new HttpClient)->get($url);\n        });\n    }\n\n    /**\n     * Register a callback to ping a given URL before the job runs if the given condition is true.\n     *\n     * @param  bool  $value\n     * @param  string  $url\n     * @return $this\n     */\n    public function pingBeforeIf($value, $url)\n    {\n        return $value ? $this->pingBefore($url) : $this;\n    }\n\n    /**\n     * Register a callback to ping a given URL after the job runs.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function thenPing($url)\n    {\n        return $this->then(function () use ($url) {\n            (new HttpClient)->get($url);\n        });\n    }\n\n    /**\n     * Register a callback to ping a given URL after the job runs if the given condition is true.\n     *\n     * @param  bool  $value\n     * @param  string  $url\n     * @return $this\n     */\n    public function thenPingIf($value, $url)\n    {\n        return $value ? $this->thenPing($url) : $this;\n    }\n\n    /**\n     * Register a callback to ping a given URL if the operation succeeds.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function pingOnSuccess($url)\n    {\n        return $this->onSuccess(function () use ($url) {\n            (new HttpClient)->get($url);\n        });\n    }\n\n    /**\n     * Register a callback to ping a given URL if the operation fails.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function pingOnFailure($url)\n    {\n        return $this->onFailure(function () use ($url) {\n            (new HttpClient)->get($url);\n        });\n    }\n\n    /**\n     * State that the command should run in background.\n     *\n     * @return $this\n     */\n    public function runInBackground()\n    {\n        $this->runInBackground = true;\n\n        return $this;\n    }\n\n    /**\n     * Set which user the command should run as.\n     *\n     * @param  string  $user\n     * @return $this\n     */\n    public function user($user)\n    {\n        $this->user = $user;\n\n        return $this;\n    }\n\n    /**\n     * Limit the environments the command should run in.\n     *\n     * @param  array|mixed  $environments\n     * @return $this\n     */\n    public function environments($environments)\n    {\n        $this->environments = is_array($environments) ? $environments : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * State that the command should run even in maintenance mode.\n     *\n     * @return $this\n     */\n    public function evenInMaintenanceMode()\n    {\n        $this->evenInMaintenanceMode = true;\n\n        return $this;\n    }\n\n    /**\n     * Do not allow the event to overlap each other.\n     *\n     * @param  int  $expiresAt\n     * @return $this\n     */\n    public function withoutOverlapping($expiresAt = 1440)\n    {\n        $this->withoutOverlapping = true;\n\n        $this->expiresAt = $expiresAt;\n\n        return $this->then(function () {\n            $this->mutex->forget($this);\n        })->skip(function () {\n            return $this->mutex->exists($this);\n        });\n    }\n\n    /**\n     * Allow the event to only run on one server for each cron expression.\n     *\n     * @return $this\n     */\n    public function onOneServer()\n    {\n        $this->onOneServer = true;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to further filter the schedule.\n     *\n     * @param  \\Closure|bool  $callback\n     * @return $this\n     */\n    public function when($callback)\n    {\n        $this->filters[] = is_callable($callback) ? $callback : function () use ($callback) {\n            return $callback;\n        };\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to further filter the schedule.\n     *\n     * @param  \\Closure|bool  $callback\n     * @return $this\n     */\n    public function skip($callback)\n    {\n        $this->rejects[] = is_callable($callback) ? $callback : function () use ($callback) {\n            return $callback;\n        };\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to be called before the operation.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function before(Closure $callback)\n    {\n        $this->beforeCallbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to be called after the operation.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function after(Closure $callback)\n    {\n        return $this->then($callback);\n    }\n\n    /**\n     * Register a callback to be called after the operation.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function then(Closure $callback)\n    {\n        $this->afterCallbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to be called if the operation succeeds.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function onSuccess(Closure $callback)\n    {\n        return $this->then(function (Container $container) use ($callback) {\n            if (0 === $this->exitCode) {\n                $container->call($callback);\n            }\n        });\n    }\n\n    /**\n     * Register a callback to be called if the operation fails.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function onFailure(Closure $callback)\n    {\n        return $this->then(function (Container $container) use ($callback) {\n            if (0 !== $this->exitCode) {\n                $container->call($callback);\n            }\n        });\n    }\n\n    /**\n     * Set the human-friendly description of the event.\n     *\n     * @param  string  $description\n     * @return $this\n     */\n    public function name($description)\n    {\n        return $this->description($description);\n    }\n\n    /**\n     * Set the human-friendly description of the event.\n     *\n     * @param  string  $description\n     * @return $this\n     */\n    public function description($description)\n    {\n        $this->description = $description;\n\n        return $this;\n    }\n\n    /**\n     * Get the summary of the event for display.\n     *\n     * @return string\n     */\n    public function getSummaryForDisplay()\n    {\n        if (is_string($this->description)) {\n            return $this->description;\n        }\n\n        return $this->buildCommand();\n    }\n\n    /**\n     * Determine the next due date for an event.\n     *\n     * @param  \\DateTimeInterface|string  $currentTime\n     * @param  int  $nth\n     * @param  bool  $allowCurrentDate\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    public function nextRunDate($currentTime = 'now', $nth = 0, $allowCurrentDate = false)\n    {\n        return Date::instance(CronExpression::factory(\n            $this->getExpression()\n        )->getNextRunDate($currentTime, $nth, $allowCurrentDate, $this->timezone));\n    }\n\n    /**\n     * Get the Cron expression for the event.\n     *\n     * @return string\n     */\n    public function getExpression()\n    {\n        return $this->expression;\n    }\n\n    /**\n     * Set the event mutex implementation to be used.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\EventMutex  $mutex\n     * @return $this\n     */\n    public function preventOverlapsUsing(EventMutex $mutex)\n    {\n        $this->mutex = $mutex;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/EventMutex.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\ninterface EventMutex\n{\n    /**\n     * Attempt to obtain an event mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return bool\n     */\n    public function create(Event $event);\n\n    /**\n     * Determine if an event mutex exists for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return bool\n     */\n    public function exists(Event $event);\n\n    /**\n     * Clear the event mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return void\n     */\n    public function forget(Event $event);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/ManagesFrequencies.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Illuminate\\Support\\Carbon;\n\ntrait ManagesFrequencies\n{\n    /**\n     * The Cron expression representing the event's frequency.\n     *\n     * @param  string  $expression\n     * @return $this\n     */\n    public function cron($expression)\n    {\n        $this->expression = $expression;\n\n        return $this;\n    }\n\n    /**\n     * Schedule the event to run between start and end time.\n     *\n     * @param  string  $startTime\n     * @param  string  $endTime\n     * @return $this\n     */\n    public function between($startTime, $endTime)\n    {\n        return $this->when($this->inTimeInterval($startTime, $endTime));\n    }\n\n    /**\n     * Schedule the event to not run between start and end time.\n     *\n     * @param  string  $startTime\n     * @param  string  $endTime\n     * @return $this\n     */\n    public function unlessBetween($startTime, $endTime)\n    {\n        return $this->skip($this->inTimeInterval($startTime, $endTime));\n    }\n\n    /**\n     * Schedule the event to run between start and end time.\n     *\n     * @param  string  $startTime\n     * @param  string  $endTime\n     * @return \\Closure\n     */\n    private function inTimeInterval($startTime, $endTime)\n    {\n        return function () use ($startTime, $endTime) {\n            return Carbon::now($this->timezone)->between(\n                Carbon::parse($startTime, $this->timezone),\n                Carbon::parse($endTime, $this->timezone),\n                true\n            );\n        };\n    }\n\n    /**\n     * Schedule the event to run every minute.\n     *\n     * @return $this\n     */\n    public function everyMinute()\n    {\n        return $this->spliceIntoPosition(1, '*');\n    }\n\n    /**\n     * Schedule the event to run every five minutes.\n     *\n     * @return $this\n     */\n    public function everyFiveMinutes()\n    {\n        return $this->spliceIntoPosition(1, '*/5');\n    }\n\n    /**\n     * Schedule the event to run every ten minutes.\n     *\n     * @return $this\n     */\n    public function everyTenMinutes()\n    {\n        return $this->spliceIntoPosition(1, '*/10');\n    }\n\n    /**\n     * Schedule the event to run every fifteen minutes.\n     *\n     * @return $this\n     */\n    public function everyFifteenMinutes()\n    {\n        return $this->spliceIntoPosition(1, '*/15');\n    }\n\n    /**\n     * Schedule the event to run every thirty minutes.\n     *\n     * @return $this\n     */\n    public function everyThirtyMinutes()\n    {\n        return $this->spliceIntoPosition(1, '0,30');\n    }\n\n    /**\n     * Schedule the event to run hourly.\n     *\n     * @return $this\n     */\n    public function hourly()\n    {\n        return $this->spliceIntoPosition(1, 0);\n    }\n\n    /**\n     * Schedule the event to run hourly at a given offset in the hour.\n     *\n     * @param  int  $offset\n     * @return $this\n     */\n    public function hourlyAt($offset)\n    {\n        return $this->spliceIntoPosition(1, $offset);\n    }\n\n    /**\n     * Schedule the event to run daily.\n     *\n     * @return $this\n     */\n    public function daily()\n    {\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, 0);\n    }\n\n    /**\n     * Schedule the command at a given time.\n     *\n     * @param  string  $time\n     * @return $this\n     */\n    public function at($time)\n    {\n        return $this->dailyAt($time);\n    }\n\n    /**\n     * Schedule the event to run daily at a given time (10:00, 19:30, etc).\n     *\n     * @param  string  $time\n     * @return $this\n     */\n    public function dailyAt($time)\n    {\n        $segments = explode(':', $time);\n\n        return $this->spliceIntoPosition(2, (int) $segments[0])\n                    ->spliceIntoPosition(1, count($segments) === 2 ? (int) $segments[1] : '0');\n    }\n\n    /**\n     * Schedule the event to run twice daily.\n     *\n     * @param  int  $first\n     * @param  int  $second\n     * @return $this\n     */\n    public function twiceDaily($first = 1, $second = 13)\n    {\n        $hours = $first.','.$second;\n\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, $hours);\n    }\n\n    /**\n     * Schedule the event to run only on weekdays.\n     *\n     * @return $this\n     */\n    public function weekdays()\n    {\n        return $this->spliceIntoPosition(5, '1-5');\n    }\n\n    /**\n     * Schedule the event to run only on weekends.\n     *\n     * @return $this\n     */\n    public function weekends()\n    {\n        return $this->spliceIntoPosition(5, '0,6');\n    }\n\n    /**\n     * Schedule the event to run only on Mondays.\n     *\n     * @return $this\n     */\n    public function mondays()\n    {\n        return $this->days(1);\n    }\n\n    /**\n     * Schedule the event to run only on Tuesdays.\n     *\n     * @return $this\n     */\n    public function tuesdays()\n    {\n        return $this->days(2);\n    }\n\n    /**\n     * Schedule the event to run only on Wednesdays.\n     *\n     * @return $this\n     */\n    public function wednesdays()\n    {\n        return $this->days(3);\n    }\n\n    /**\n     * Schedule the event to run only on Thursdays.\n     *\n     * @return $this\n     */\n    public function thursdays()\n    {\n        return $this->days(4);\n    }\n\n    /**\n     * Schedule the event to run only on Fridays.\n     *\n     * @return $this\n     */\n    public function fridays()\n    {\n        return $this->days(5);\n    }\n\n    /**\n     * Schedule the event to run only on Saturdays.\n     *\n     * @return $this\n     */\n    public function saturdays()\n    {\n        return $this->days(6);\n    }\n\n    /**\n     * Schedule the event to run only on Sundays.\n     *\n     * @return $this\n     */\n    public function sundays()\n    {\n        return $this->days(0);\n    }\n\n    /**\n     * Schedule the event to run weekly.\n     *\n     * @return $this\n     */\n    public function weekly()\n    {\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, 0)\n                    ->spliceIntoPosition(5, 0);\n    }\n\n    /**\n     * Schedule the event to run weekly on a given day and time.\n     *\n     * @param  int  $day\n     * @param  string  $time\n     * @return $this\n     */\n    public function weeklyOn($day, $time = '0:0')\n    {\n        $this->dailyAt($time);\n\n        return $this->spliceIntoPosition(5, $day);\n    }\n\n    /**\n     * Schedule the event to run monthly.\n     *\n     * @return $this\n     */\n    public function monthly()\n    {\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, 0)\n                    ->spliceIntoPosition(3, 1);\n    }\n\n    /**\n     * Schedule the event to run monthly on a given day and time.\n     *\n     * @param  int  $day\n     * @param  string  $time\n     * @return $this\n     */\n    public function monthlyOn($day = 1, $time = '0:0')\n    {\n        $this->dailyAt($time);\n\n        return $this->spliceIntoPosition(3, $day);\n    }\n\n    /**\n     * Schedule the event to run twice monthly.\n     *\n     * @param  int  $first\n     * @param  int  $second\n     * @return $this\n     */\n    public function twiceMonthly($first = 1, $second = 16)\n    {\n        $days = $first.','.$second;\n\n        return $this->spliceIntoPosition(1, 0)\n            ->spliceIntoPosition(2, 0)\n            ->spliceIntoPosition(3, $days);\n    }\n\n    /**\n     * Schedule the event to run quarterly.\n     *\n     * @return $this\n     */\n    public function quarterly()\n    {\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, 0)\n                    ->spliceIntoPosition(3, 1)\n                    ->spliceIntoPosition(4, '1-12/3');\n    }\n\n    /**\n     * Schedule the event to run yearly.\n     *\n     * @return $this\n     */\n    public function yearly()\n    {\n        return $this->spliceIntoPosition(1, 0)\n                    ->spliceIntoPosition(2, 0)\n                    ->spliceIntoPosition(3, 1)\n                    ->spliceIntoPosition(4, 1);\n    }\n\n    /**\n     * Set the days of the week the command should run on.\n     *\n     * @param  array|mixed  $days\n     * @return $this\n     */\n    public function days($days)\n    {\n        $days = is_array($days) ? $days : func_get_args();\n\n        return $this->spliceIntoPosition(5, implode(',', $days));\n    }\n\n    /**\n     * Set the timezone the date should be evaluated on.\n     *\n     * @param  \\DateTimeZone|string  $timezone\n     * @return $this\n     */\n    public function timezone($timezone)\n    {\n        $this->timezone = $timezone;\n\n        return $this;\n    }\n\n    /**\n     * Splice the given value into the given position of the expression.\n     *\n     * @param  int  $position\n     * @param  string  $value\n     * @return $this\n     */\n    protected function spliceIntoPosition($position, $value)\n    {\n        $segments = explode(' ', $this->expression);\n\n        $segments[$position - 1] = $value;\n\n        return $this->cron(implode(' ', $segments));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse DateTimeInterface;\nuse Illuminate\\Console\\Application;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\ProcessUtils;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass Schedule\n{\n    /**\n     * All of the events on the schedule.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\Event[]\n     */\n    protected $events = [];\n\n    /**\n     * The event mutex implementation.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\EventMutex\n     */\n    protected $eventMutex;\n\n    /**\n     * The scheduling mutex implementation.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\SchedulingMutex\n     */\n    protected $schedulingMutex;\n\n    /**\n     * The timezone the date should be evaluated on.\n     *\n     * @var \\DateTimeZone|string\n     */\n    protected $timezone;\n\n    /**\n     * Create a new schedule instance.\n     *\n     * @param  \\DateTimeZone|string|null  $timezone\n     * @return void\n     */\n    public function __construct($timezone = null)\n    {\n        $this->timezone = $timezone;\n\n        $container = Container::getInstance();\n\n        $this->eventMutex = $container->bound(EventMutex::class)\n                                ? $container->make(EventMutex::class)\n                                : $container->make(CacheEventMutex::class);\n\n        $this->schedulingMutex = $container->bound(SchedulingMutex::class)\n                                ? $container->make(SchedulingMutex::class)\n                                : $container->make(CacheSchedulingMutex::class);\n    }\n\n    /**\n     * Add a new callback event to the schedule.\n     *\n     * @param  string|callable  $callback\n     * @param  array  $parameters\n     * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n     */\n    public function call($callback, array $parameters = [])\n    {\n        $this->events[] = $event = new CallbackEvent(\n            $this->eventMutex, $callback, $parameters\n        );\n\n        return $event;\n    }\n\n    /**\n     * Add a new Artisan command event to the schedule.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return \\Illuminate\\Console\\Scheduling\\Event\n     */\n    public function command($command, array $parameters = [])\n    {\n        if (class_exists($command)) {\n            $command = Container::getInstance()->make($command)->getName();\n        }\n\n        return $this->exec(\n            Application::formatCommandString($command), $parameters\n        );\n    }\n\n    /**\n     * Add a new job callback event to the schedule.\n     *\n     * @param  object|string  $job\n     * @param  string|null  $queue\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Console\\Scheduling\\CallbackEvent\n     */\n    public function job($job, $queue = null, $connection = null)\n    {\n        return $this->call(function () use ($job, $queue, $connection) {\n            $job = is_string($job) ? resolve($job) : $job;\n\n            if ($job instanceof ShouldQueue) {\n                dispatch($job)\n                    ->onConnection($connection ?? $job->connection)\n                    ->onQueue($queue ?? $job->queue);\n            } else {\n                dispatch_now($job);\n            }\n        })->name(is_string($job) ? $job : get_class($job));\n    }\n\n    /**\n     * Add a new command event to the schedule.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return \\Illuminate\\Console\\Scheduling\\Event\n     */\n    public function exec($command, array $parameters = [])\n    {\n        if (count($parameters)) {\n            $command .= ' '.$this->compileParameters($parameters);\n        }\n\n        $this->events[] = $event = new Event($this->eventMutex, $command, $this->timezone);\n\n        return $event;\n    }\n\n    /**\n     * Compile parameters for a command.\n     *\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function compileParameters(array $parameters)\n    {\n        return collect($parameters)->map(function ($value, $key) {\n            if (is_array($value)) {\n                $value = collect($value)->map(function ($value) {\n                    return ProcessUtils::escapeArgument($value);\n                })->implode(' ');\n            } elseif (! is_numeric($value) && ! preg_match('/^(-.$|--.*)/i', $value)) {\n                $value = ProcessUtils::escapeArgument($value);\n            }\n\n            return is_numeric($key) ? $value : \"{$key}={$value}\";\n        })->implode(' ');\n    }\n\n    /**\n     * Determine if the server is allowed to run this event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  \\DateTimeInterface  $time\n     * @return bool\n     */\n    public function serverShouldRun(Event $event, DateTimeInterface $time)\n    {\n        return $this->schedulingMutex->create($event, $time);\n    }\n\n    /**\n     * Get all of the events on the schedule that are due.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function dueEvents($app)\n    {\n        return collect($this->events)->filter->isDue($app);\n    }\n\n    /**\n     * Get all of the events on the schedule.\n     *\n     * @return \\Illuminate\\Console\\Scheduling\\Event[]\n     */\n    public function events()\n    {\n        return $this->events;\n    }\n\n    /**\n     * Specify the cache store that should be used to store mutexes.\n     *\n     * @param  string  $store\n     * @return $this\n     */\n    public function useCache($store)\n    {\n        if ($this->eventMutex instanceof CacheEventMutex) {\n            $this->eventMutex->useStore($store);\n        }\n\n        if ($this->schedulingMutex instanceof CacheSchedulingMutex) {\n            $this->schedulingMutex->useStore($store);\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleFinishCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Illuminate\\Console\\Command;\n\nclass ScheduleFinishCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'schedule:finish {id}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Handle the completion of a scheduled command';\n\n    /**\n     * Indicates whether the command should be shown in the Artisan command list.\n     *\n     * @var bool\n     */\n    protected $hidden = true;\n\n    /**\n     * The schedule instance.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\Schedule\n     */\n    protected $schedule;\n\n    /**\n     * Create a new command instance.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Schedule  $schedule\n     * @return void\n     */\n    public function __construct(Schedule $schedule)\n    {\n        $this->schedule = $schedule;\n\n        parent::__construct();\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        collect($this->schedule->events())->filter(function ($value) {\n            return $value->mutexName() == $this->argument('id');\n        })->each->callAfterCallbacks($this->laravel);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Facades\\Date;\n\nclass ScheduleRunCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'schedule:run';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Run the scheduled commands';\n\n    /**\n     * The schedule instance.\n     *\n     * @var \\Illuminate\\Console\\Scheduling\\Schedule\n     */\n    protected $schedule;\n\n    /**\n     * The 24 hour timestamp this scheduler command started running.\n     *\n     * @var \\Illuminate\\Support\\Carbon;\n     */\n    protected $startedAt;\n\n    /**\n     * Check if any events ran.\n     *\n     * @var bool\n     */\n    protected $eventsRan = false;\n\n    /**\n     * Create a new command instance.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Schedule  $schedule\n     * @return void\n     */\n    public function __construct(Schedule $schedule)\n    {\n        $this->schedule = $schedule;\n\n        $this->startedAt = Date::now();\n\n        parent::__construct();\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        foreach ($this->schedule->dueEvents($this->laravel) as $event) {\n            if (! $event->filtersPass($this->laravel)) {\n                continue;\n            }\n\n            if ($event->onOneServer) {\n                $this->runSingleServerEvent($event);\n            } else {\n                $this->runEvent($event);\n            }\n\n            $this->eventsRan = true;\n        }\n\n        if (! $this->eventsRan) {\n            $this->info('No scheduled commands are ready to run.');\n        }\n    }\n\n    /**\n     * Run the given single server event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return void\n     */\n    protected function runSingleServerEvent($event)\n    {\n        if ($this->schedule->serverShouldRun($event, $this->startedAt)) {\n            $this->runEvent($event);\n        } else {\n            $this->line('<info>Skipping command (has already run on another server):</info> '.$event->getSummaryForDisplay());\n        }\n    }\n\n    /**\n     * Run the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @return void\n     */\n    protected function runEvent($event)\n    {\n        $this->line('<info>Running scheduled command:</info> '.$event->getSummaryForDisplay());\n\n        $event->run($this->laravel);\n\n        $this->eventsRan = true;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/Scheduling/SchedulingMutex.php",
    "content": "<?php\n\nnamespace Illuminate\\Console\\Scheduling;\n\nuse DateTimeInterface;\n\ninterface SchedulingMutex\n{\n    /**\n     * Attempt to obtain a scheduling mutex for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  \\DateTimeInterface  $time\n     * @return bool\n     */\n    public function create(Event $event, DateTimeInterface $time);\n\n    /**\n     * Determine if a scheduling mutex exists for the given event.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Event  $event\n     * @param  \\DateTimeInterface  $time\n     * @return bool\n     */\n    public function exists(Event $event, DateTimeInterface $time);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Console/composer.json",
    "content": "{\n    \"name\": \"illuminate/console\",\n    \"description\": \"The Illuminate Console package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/console\": \"^4.2\",\n        \"symfony/process\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Console\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"dragonmantank/cron-expression\": \"Required to use scheduling component (^2.0).\",\n        \"guzzlehttp/guzzle\": \"Required to use the ping methods on schedules (^6.0).\",\n        \"illuminate/filesystem\": \"Required to use the generator command (5.8.*)\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php",
    "content": "<?php\n\nnamespace Illuminate\\Container;\n\nuse Closure;\nuse ReflectionMethod;\nuse ReflectionFunction;\nuse InvalidArgumentException;\n\nclass BoundMethod\n{\n    /**\n     * Call the given Closure / class@method and inject its dependencies.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  callable|string  $callback\n     * @param  array  $parameters\n     * @param  string|null  $defaultMethod\n     * @return mixed\n     *\n     * @throws \\ReflectionException\n     * @throws \\InvalidArgumentException\n     */\n    public static function call($container, $callback, array $parameters = [], $defaultMethod = null)\n    {\n        if (static::isCallableWithAtSign($callback) || $defaultMethod) {\n            return static::callClass($container, $callback, $parameters, $defaultMethod);\n        }\n\n        return static::callBoundMethod($container, $callback, function () use ($container, $callback, $parameters) {\n            return call_user_func_array(\n                $callback, static::getMethodDependencies($container, $callback, $parameters)\n            );\n        });\n    }\n\n    /**\n     * Call a string reference to a class using Class@method syntax.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  string  $target\n     * @param  array  $parameters\n     * @param  string|null  $defaultMethod\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected static function callClass($container, $target, array $parameters = [], $defaultMethod = null)\n    {\n        $segments = explode('@', $target);\n\n        // We will assume an @ sign is used to delimit the class name from the method\n        // name. We will split on this @ sign and then build a callable array that\n        // we can pass right back into the \"call\" method for dependency binding.\n        $method = count($segments) === 2\n                        ? $segments[1] : $defaultMethod;\n\n        if (is_null($method)) {\n            throw new InvalidArgumentException('Method not provided.');\n        }\n\n        return static::call(\n            $container, [$container->make($segments[0]), $method], $parameters\n        );\n    }\n\n    /**\n     * Call a method that has been bound to the container.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  callable  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    protected static function callBoundMethod($container, $callback, $default)\n    {\n        if (! is_array($callback)) {\n            return $default instanceof Closure ? $default() : $default;\n        }\n\n        // Here we need to turn the array callable into a Class@method string we can use to\n        // examine the container and see if there are any method bindings for this given\n        // method. If there are, we can call this method binding callback immediately.\n        $method = static::normalizeMethod($callback);\n\n        if ($container->hasMethodBinding($method)) {\n            return $container->callMethodBinding($method, $callback[0]);\n        }\n\n        return $default instanceof Closure ? $default() : $default;\n    }\n\n    /**\n     * Normalize the given callback into a Class@method string.\n     *\n     * @param  callable  $callback\n     * @return string\n     */\n    protected static function normalizeMethod($callback)\n    {\n        $class = is_string($callback[0]) ? $callback[0] : get_class($callback[0]);\n\n        return \"{$class}@{$callback[1]}\";\n    }\n\n    /**\n     * Get all dependencies for a given method.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  callable|string  $callback\n     * @param  array  $parameters\n     * @return array\n     *\n     * @throws \\ReflectionException\n     */\n    protected static function getMethodDependencies($container, $callback, array $parameters = [])\n    {\n        $dependencies = [];\n\n        foreach (static::getCallReflector($callback)->getParameters() as $parameter) {\n            static::addDependencyForCallParameter($container, $parameter, $parameters, $dependencies);\n        }\n\n        return array_merge($dependencies, $parameters);\n    }\n\n    /**\n     * Get the proper reflection instance for the given callback.\n     *\n     * @param  callable|string $callback\n     * @return \\ReflectionFunctionAbstract\n     *\n     * @throws \\ReflectionException\n     */\n    protected static function getCallReflector($callback)\n    {\n        if (is_string($callback) && strpos($callback, '::') !== false) {\n            $callback = explode('::', $callback);\n        }\n\n        return is_array($callback)\n                        ? new ReflectionMethod($callback[0], $callback[1])\n                        : new ReflectionFunction($callback);\n    }\n\n    /**\n     * Get the dependency for the given call parameter.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\ReflectionParameter  $parameter\n     * @param  array  $parameters\n     * @param  array  $dependencies\n     * @return void\n     */\n    protected static function addDependencyForCallParameter($container, $parameter,\n                                                            array &$parameters, &$dependencies)\n    {\n        if (array_key_exists($parameter->name, $parameters)) {\n            $dependencies[] = $parameters[$parameter->name];\n\n            unset($parameters[$parameter->name]);\n        } elseif ($parameter->getClass() && array_key_exists($parameter->getClass()->name, $parameters)) {\n            $dependencies[] = $parameters[$parameter->getClass()->name];\n\n            unset($parameters[$parameter->getClass()->name]);\n        } elseif ($parameter->getClass()) {\n            $dependencies[] = $container->make($parameter->getClass()->name);\n        } elseif ($parameter->isDefaultValueAvailable()) {\n            $dependencies[] = $parameter->getDefaultValue();\n        }\n    }\n\n    /**\n     * Determine if the given string is in Class@method syntax.\n     *\n     * @param  mixed  $callback\n     * @return bool\n     */\n    protected static function isCallableWithAtSign($callback)\n    {\n        return is_string($callback) && strpos($callback, '@') !== false;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/Container.php",
    "content": "<?php\n\nnamespace Illuminate\\Container;\n\nuse Closure;\nuse Exception;\nuse ArrayAccess;\nuse LogicException;\nuse ReflectionClass;\nuse ReflectionParameter;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Contracts\\Container\\BindingResolutionException;\nuse Illuminate\\Contracts\\Container\\Container as ContainerContract;\n\nclass Container implements ArrayAccess, ContainerContract\n{\n    /**\n     * The current globally available container (if any).\n     *\n     * @var static\n     */\n    protected static $instance;\n\n    /**\n     * An array of the types that have been resolved.\n     *\n     * @var bool[]\n     */\n    protected $resolved = [];\n\n    /**\n     * The container's bindings.\n     *\n     * @var array[]\n     */\n    protected $bindings = [];\n\n    /**\n     * The container's method bindings.\n     *\n     * @var \\Closure[]\n     */\n    protected $methodBindings = [];\n\n    /**\n     * The container's shared instances.\n     *\n     * @var object[]\n     */\n    protected $instances = [];\n\n    /**\n     * The registered type aliases.\n     *\n     * @var string[]\n     */\n    protected $aliases = [];\n\n    /**\n     * The registered aliases keyed by the abstract name.\n     *\n     * @var array[]\n     */\n    protected $abstractAliases = [];\n\n    /**\n     * The extension closures for services.\n     *\n     * @var array[]\n     */\n    protected $extenders = [];\n\n    /**\n     * All of the registered tags.\n     *\n     * @var array[]\n     */\n    protected $tags = [];\n\n    /**\n     * The stack of concretions currently being built.\n     *\n     * @var array[]\n     */\n    protected $buildStack = [];\n\n    /**\n     * The parameter override stack.\n     *\n     * @var array[]\n     */\n    protected $with = [];\n\n    /**\n     * The contextual binding map.\n     *\n     * @var array[]\n     */\n    public $contextual = [];\n\n    /**\n     * All of the registered rebound callbacks.\n     *\n     * @var array[]\n     */\n    protected $reboundCallbacks = [];\n\n    /**\n     * All of the global resolving callbacks.\n     *\n     * @var \\Closure[]\n     */\n    protected $globalResolvingCallbacks = [];\n\n    /**\n     * All of the global after resolving callbacks.\n     *\n     * @var \\Closure[]\n     */\n    protected $globalAfterResolvingCallbacks = [];\n\n    /**\n     * All of the resolving callbacks by class type.\n     *\n     * @var array[]\n     */\n    protected $resolvingCallbacks = [];\n\n    /**\n     * All of the after resolving callbacks by class type.\n     *\n     * @var array[]\n     */\n    protected $afterResolvingCallbacks = [];\n\n    /**\n     * Define a contextual binding.\n     *\n     * @param  array|string  $concrete\n     * @return \\Illuminate\\Contracts\\Container\\ContextualBindingBuilder\n     */\n    public function when($concrete)\n    {\n        $aliases = [];\n\n        foreach (Arr::wrap($concrete) as $c) {\n            $aliases[] = $this->getAlias($c);\n        }\n\n        return new ContextualBindingBuilder($this, $aliases);\n    }\n\n    /**\n     * Determine if the given abstract type has been bound.\n     *\n     * @param  string  $abstract\n     * @return bool\n     */\n    public function bound($abstract)\n    {\n        return isset($this->bindings[$abstract]) ||\n               isset($this->instances[$abstract]) ||\n               $this->isAlias($abstract);\n    }\n\n    /**\n     *  {@inheritdoc}\n     */\n    public function has($id)\n    {\n        return $this->bound($id);\n    }\n\n    /**\n     * Determine if the given abstract type has been resolved.\n     *\n     * @param  string  $abstract\n     * @return bool\n     */\n    public function resolved($abstract)\n    {\n        if ($this->isAlias($abstract)) {\n            $abstract = $this->getAlias($abstract);\n        }\n\n        return isset($this->resolved[$abstract]) ||\n               isset($this->instances[$abstract]);\n    }\n\n    /**\n     * Determine if a given type is shared.\n     *\n     * @param  string  $abstract\n     * @return bool\n     */\n    public function isShared($abstract)\n    {\n        return isset($this->instances[$abstract]) ||\n               (isset($this->bindings[$abstract]['shared']) &&\n               $this->bindings[$abstract]['shared'] === true);\n    }\n\n    /**\n     * Determine if a given string is an alias.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function isAlias($name)\n    {\n        return isset($this->aliases[$name]);\n    }\n\n    /**\n     * Register a binding with the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @param  bool  $shared\n     * @return void\n     */\n    public function bind($abstract, $concrete = null, $shared = false)\n    {\n        $this->dropStaleInstances($abstract);\n\n        // If no concrete type was given, we will simply set the concrete type to the\n        // abstract type. After that, the concrete type to be registered as shared\n        // without being forced to state their classes in both of the parameters.\n        if (is_null($concrete)) {\n            $concrete = $abstract;\n        }\n\n        // If the factory is not a Closure, it means it is just a class name which is\n        // bound into this container to the abstract type and we will just wrap it\n        // up inside its own Closure to give us more convenience when extending.\n        if (! $concrete instanceof Closure) {\n            $concrete = $this->getClosure($abstract, $concrete);\n        }\n\n        $this->bindings[$abstract] = compact('concrete', 'shared');\n\n        // If the abstract type was already resolved in this container we'll fire the\n        // rebound listener so that any objects which have already gotten resolved\n        // can have their copy of the object updated via the listener callbacks.\n        if ($this->resolved($abstract)) {\n            $this->rebound($abstract);\n        }\n    }\n\n    /**\n     * Get the Closure to be used when building a type.\n     *\n     * @param  string  $abstract\n     * @param  string  $concrete\n     * @return \\Closure\n     */\n    protected function getClosure($abstract, $concrete)\n    {\n        return function ($container, $parameters = []) use ($abstract, $concrete) {\n            if ($abstract == $concrete) {\n                return $container->build($concrete);\n            }\n\n            return $container->resolve(\n                $concrete, $parameters, $raiseEvents = false\n            );\n        };\n    }\n\n    /**\n     * Determine if the container has a method binding.\n     *\n     * @param  string  $method\n     * @return bool\n     */\n    public function hasMethodBinding($method)\n    {\n        return isset($this->methodBindings[$method]);\n    }\n\n    /**\n     * Bind a callback to resolve with Container::call.\n     *\n     * @param  array|string  $method\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function bindMethod($method, $callback)\n    {\n        $this->methodBindings[$this->parseBindMethod($method)] = $callback;\n    }\n\n    /**\n     * Get the method to be bound in class@method format.\n     *\n     * @param  array|string $method\n     * @return string\n     */\n    protected function parseBindMethod($method)\n    {\n        if (is_array($method)) {\n            return $method[0].'@'.$method[1];\n        }\n\n        return $method;\n    }\n\n    /**\n     * Get the method binding for the given method.\n     *\n     * @param  string  $method\n     * @param  mixed  $instance\n     * @return mixed\n     */\n    public function callMethodBinding($method, $instance)\n    {\n        return call_user_func($this->methodBindings[$method], $instance, $this);\n    }\n\n    /**\n     * Add a contextual binding to the container.\n     *\n     * @param  string  $concrete\n     * @param  string  $abstract\n     * @param  \\Closure|string  $implementation\n     * @return void\n     */\n    public function addContextualBinding($concrete, $abstract, $implementation)\n    {\n        $this->contextual[$concrete][$this->getAlias($abstract)] = $implementation;\n    }\n\n    /**\n     * Register a binding if it hasn't already been registered.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @param  bool  $shared\n     * @return void\n     */\n    public function bindIf($abstract, $concrete = null, $shared = false)\n    {\n        if (! $this->bound($abstract)) {\n            $this->bind($abstract, $concrete, $shared);\n        }\n    }\n\n    /**\n     * Register a shared binding in the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @return void\n     */\n    public function singleton($abstract, $concrete = null)\n    {\n        $this->bind($abstract, $concrete, true);\n    }\n\n    /**\n     * \"Extend\" an abstract type in the container.\n     *\n     * @param  string    $abstract\n     * @param  \\Closure  $closure\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function extend($abstract, Closure $closure)\n    {\n        $abstract = $this->getAlias($abstract);\n\n        if (isset($this->instances[$abstract])) {\n            $this->instances[$abstract] = $closure($this->instances[$abstract], $this);\n\n            $this->rebound($abstract);\n        } else {\n            $this->extenders[$abstract][] = $closure;\n\n            if ($this->resolved($abstract)) {\n                $this->rebound($abstract);\n            }\n        }\n    }\n\n    /**\n     * Register an existing instance as shared in the container.\n     *\n     * @param  string  $abstract\n     * @param  mixed   $instance\n     * @return mixed\n     */\n    public function instance($abstract, $instance)\n    {\n        $this->removeAbstractAlias($abstract);\n\n        $isBound = $this->bound($abstract);\n\n        unset($this->aliases[$abstract]);\n\n        // We'll check to determine if this type has been bound before, and if it has\n        // we will fire the rebound callbacks registered with the container and it\n        // can be updated with consuming classes that have gotten resolved here.\n        $this->instances[$abstract] = $instance;\n\n        if ($isBound) {\n            $this->rebound($abstract);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Remove an alias from the contextual binding alias cache.\n     *\n     * @param  string  $searched\n     * @return void\n     */\n    protected function removeAbstractAlias($searched)\n    {\n        if (! isset($this->aliases[$searched])) {\n            return;\n        }\n\n        foreach ($this->abstractAliases as $abstract => $aliases) {\n            foreach ($aliases as $index => $alias) {\n                if ($alias == $searched) {\n                    unset($this->abstractAliases[$abstract][$index]);\n                }\n            }\n        }\n    }\n\n    /**\n     * Assign a set of tags to a given binding.\n     *\n     * @param  array|string  $abstracts\n     * @param  array|mixed   ...$tags\n     * @return void\n     */\n    public function tag($abstracts, $tags)\n    {\n        $tags = is_array($tags) ? $tags : array_slice(func_get_args(), 1);\n\n        foreach ($tags as $tag) {\n            if (! isset($this->tags[$tag])) {\n                $this->tags[$tag] = [];\n            }\n\n            foreach ((array) $abstracts as $abstract) {\n                $this->tags[$tag][] = $abstract;\n            }\n        }\n    }\n\n    /**\n     * Resolve all of the bindings for a given tag.\n     *\n     * @param  string  $tag\n     * @return iterable\n     */\n    public function tagged($tag)\n    {\n        if (! isset($this->tags[$tag])) {\n            return [];\n        }\n\n        return new RewindableGenerator(function () use ($tag) {\n            foreach ($this->tags[$tag] as $abstract) {\n                yield $this->make($abstract);\n            }\n        }, count($this->tags[$tag]));\n    }\n\n    /**\n     * Alias a type to a different name.\n     *\n     * @param  string  $abstract\n     * @param  string  $alias\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function alias($abstract, $alias)\n    {\n        if ($alias === $abstract) {\n            throw new LogicException(\"[{$abstract}] is aliased to itself.\");\n        }\n\n        $this->aliases[$alias] = $abstract;\n\n        $this->abstractAliases[$abstract][] = $alias;\n    }\n\n    /**\n     * Bind a new callback to an abstract's rebind event.\n     *\n     * @param  string    $abstract\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function rebinding($abstract, Closure $callback)\n    {\n        $this->reboundCallbacks[$abstract = $this->getAlias($abstract)][] = $callback;\n\n        if ($this->bound($abstract)) {\n            return $this->make($abstract);\n        }\n    }\n\n    /**\n     * Refresh an instance on the given target and method.\n     *\n     * @param  string  $abstract\n     * @param  mixed   $target\n     * @param  string  $method\n     * @return mixed\n     */\n    public function refresh($abstract, $target, $method)\n    {\n        return $this->rebinding($abstract, function ($app, $instance) use ($target, $method) {\n            $target->{$method}($instance);\n        });\n    }\n\n    /**\n     * Fire the \"rebound\" callbacks for the given abstract type.\n     *\n     * @param  string  $abstract\n     * @return void\n     */\n    protected function rebound($abstract)\n    {\n        $instance = $this->make($abstract);\n\n        foreach ($this->getReboundCallbacks($abstract) as $callback) {\n            call_user_func($callback, $this, $instance);\n        }\n    }\n\n    /**\n     * Get the rebound callbacks for a given type.\n     *\n     * @param  string  $abstract\n     * @return array\n     */\n    protected function getReboundCallbacks($abstract)\n    {\n        return $this->reboundCallbacks[$abstract] ?? [];\n    }\n\n    /**\n     * Wrap the given closure such that its dependencies will be injected when executed.\n     *\n     * @param  \\Closure  $callback\n     * @param  array  $parameters\n     * @return \\Closure\n     */\n    public function wrap(Closure $callback, array $parameters = [])\n    {\n        return function () use ($callback, $parameters) {\n            return $this->call($callback, $parameters);\n        };\n    }\n\n    /**\n     * Call the given Closure / class@method and inject its dependencies.\n     *\n     * @param  callable|string  $callback\n     * @param  array  $parameters\n     * @param  string|null  $defaultMethod\n     * @return mixed\n     */\n    public function call($callback, array $parameters = [], $defaultMethod = null)\n    {\n        return BoundMethod::call($this, $callback, $parameters, $defaultMethod);\n    }\n\n    /**\n     * Get a closure to resolve the given type from the container.\n     *\n     * @param  string  $abstract\n     * @return \\Closure\n     */\n    public function factory($abstract)\n    {\n        return function () use ($abstract) {\n            return $this->make($abstract);\n        };\n    }\n\n    /**\n     * An alias function name for make().\n     *\n     * @param  string  $abstract\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function makeWith($abstract, array $parameters = [])\n    {\n        return $this->make($abstract, $parameters);\n    }\n\n    /**\n     * Resolve the given type from the container.\n     *\n     * @param  string  $abstract\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    public function make($abstract, array $parameters = [])\n    {\n        return $this->resolve($abstract, $parameters);\n    }\n\n    /**\n     *  {@inheritdoc}\n     */\n    public function get($id)\n    {\n        try {\n            return $this->resolve($id);\n        } catch (Exception $e) {\n            if ($this->has($id)) {\n                throw $e;\n            }\n\n            throw new EntryNotFoundException;\n        }\n    }\n\n    /**\n     * Resolve the given type from the container.\n     *\n     * @param  string  $abstract\n     * @param  array  $parameters\n     * @param  bool   $raiseEvents\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function resolve($abstract, $parameters = [], $raiseEvents = true)\n    {\n        $abstract = $this->getAlias($abstract);\n\n        $needsContextualBuild = ! empty($parameters) || ! is_null(\n            $this->getContextualConcrete($abstract)\n        );\n\n        // If an instance of the type is currently being managed as a singleton we'll\n        // just return an existing instance instead of instantiating new instances\n        // so the developer can keep using the same objects instance every time.\n        if (isset($this->instances[$abstract]) && ! $needsContextualBuild) {\n            return $this->instances[$abstract];\n        }\n\n        $this->with[] = $parameters;\n\n        $concrete = $this->getConcrete($abstract);\n\n        // We're ready to instantiate an instance of the concrete type registered for\n        // the binding. This will instantiate the types, as well as resolve any of\n        // its \"nested\" dependencies recursively until all have gotten resolved.\n        if ($this->isBuildable($concrete, $abstract)) {\n            $object = $this->build($concrete);\n        } else {\n            $object = $this->make($concrete);\n        }\n\n        // If we defined any extenders for this type, we'll need to spin through them\n        // and apply them to the object being built. This allows for the extension\n        // of services, such as changing configuration or decorating the object.\n        foreach ($this->getExtenders($abstract) as $extender) {\n            $object = $extender($object, $this);\n        }\n\n        // If the requested type is registered as a singleton we'll want to cache off\n        // the instances in \"memory\" so we can return it later without creating an\n        // entirely new instance of an object on each subsequent request for it.\n        if ($this->isShared($abstract) && ! $needsContextualBuild) {\n            $this->instances[$abstract] = $object;\n        }\n\n        if ($raiseEvents) {\n            $this->fireResolvingCallbacks($abstract, $object);\n        }\n\n        // Before returning, we will also set the resolved flag to \"true\" and pop off\n        // the parameter overrides for this build. After those two things are done\n        // we will be ready to return back the fully constructed class instance.\n        $this->resolved[$abstract] = true;\n\n        array_pop($this->with);\n\n        return $object;\n    }\n\n    /**\n     * Get the concrete type for a given abstract.\n     *\n     * @param  string  $abstract\n     * @return mixed   $concrete\n     */\n    protected function getConcrete($abstract)\n    {\n        if (! is_null($concrete = $this->getContextualConcrete($abstract))) {\n            return $concrete;\n        }\n\n        // If we don't have a registered resolver or concrete for the type, we'll just\n        // assume each type is a concrete name and will attempt to resolve it as is\n        // since the container should be able to resolve concretes automatically.\n        if (isset($this->bindings[$abstract])) {\n            return $this->bindings[$abstract]['concrete'];\n        }\n\n        return $abstract;\n    }\n\n    /**\n     * Get the contextual concrete binding for the given abstract.\n     *\n     * @param  string  $abstract\n     * @return \\Closure|string|null\n     */\n    protected function getContextualConcrete($abstract)\n    {\n        if (! is_null($binding = $this->findInContextualBindings($abstract))) {\n            return $binding;\n        }\n\n        // Next we need to see if a contextual binding might be bound under an alias of the\n        // given abstract type. So, we will need to check if any aliases exist with this\n        // type and then spin through them and check for contextual bindings on these.\n        if (empty($this->abstractAliases[$abstract])) {\n            return;\n        }\n\n        foreach ($this->abstractAliases[$abstract] as $alias) {\n            if (! is_null($binding = $this->findInContextualBindings($alias))) {\n                return $binding;\n            }\n        }\n    }\n\n    /**\n     * Find the concrete binding for the given abstract in the contextual binding array.\n     *\n     * @param  string  $abstract\n     * @return \\Closure|string|null\n     */\n    protected function findInContextualBindings($abstract)\n    {\n        if (isset($this->contextual[end($this->buildStack)][$abstract])) {\n            return $this->contextual[end($this->buildStack)][$abstract];\n        }\n    }\n\n    /**\n     * Determine if the given concrete is buildable.\n     *\n     * @param  mixed   $concrete\n     * @param  string  $abstract\n     * @return bool\n     */\n    protected function isBuildable($concrete, $abstract)\n    {\n        return $concrete === $abstract || $concrete instanceof Closure;\n    }\n\n    /**\n     * Instantiate a concrete instance of the given type.\n     *\n     * @param  string  $concrete\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    public function build($concrete)\n    {\n        // If the concrete type is actually a Closure, we will just execute it and\n        // hand back the results of the functions, which allows functions to be\n        // used as resolvers for more fine-tuned resolution of these objects.\n        if ($concrete instanceof Closure) {\n            return $concrete($this, $this->getLastParameterOverride());\n        }\n\n        $reflector = new ReflectionClass($concrete);\n\n        // If the type is not instantiable, the developer is attempting to resolve\n        // an abstract type such as an Interface or Abstract Class and there is\n        // no binding registered for the abstractions so we need to bail out.\n        if (! $reflector->isInstantiable()) {\n            return $this->notInstantiable($concrete);\n        }\n\n        $this->buildStack[] = $concrete;\n\n        $constructor = $reflector->getConstructor();\n\n        // If there are no constructors, that means there are no dependencies then\n        // we can just resolve the instances of the objects right away, without\n        // resolving any other types or dependencies out of these containers.\n        if (is_null($constructor)) {\n            array_pop($this->buildStack);\n\n            return new $concrete;\n        }\n\n        $dependencies = $constructor->getParameters();\n\n        // Once we have all the constructor's parameters we can create each of the\n        // dependency instances and then use the reflection instances to make a\n        // new instance of this class, injecting the created dependencies in.\n        $instances = $this->resolveDependencies(\n            $dependencies\n        );\n\n        array_pop($this->buildStack);\n\n        return $reflector->newInstanceArgs($instances);\n    }\n\n    /**\n     * Resolve all of the dependencies from the ReflectionParameters.\n     *\n     * @param  array  $dependencies\n     * @return array\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function resolveDependencies(array $dependencies)\n    {\n        $results = [];\n\n        foreach ($dependencies as $dependency) {\n            // If this dependency has a override for this particular build we will use\n            // that instead as the value. Otherwise, we will continue with this run\n            // of resolutions and let reflection attempt to determine the result.\n            if ($this->hasParameterOverride($dependency)) {\n                $results[] = $this->getParameterOverride($dependency);\n\n                continue;\n            }\n\n            // If the class is null, it means the dependency is a string or some other\n            // primitive type which we can not resolve since it is not a class and\n            // we will just bomb out with an error since we have no-where to go.\n            $results[] = is_null($dependency->getClass())\n                            ? $this->resolvePrimitive($dependency)\n                            : $this->resolveClass($dependency);\n        }\n\n        return $results;\n    }\n\n    /**\n     * Determine if the given dependency has a parameter override.\n     *\n     * @param  \\ReflectionParameter  $dependency\n     * @return bool\n     */\n    protected function hasParameterOverride($dependency)\n    {\n        return array_key_exists(\n            $dependency->name, $this->getLastParameterOverride()\n        );\n    }\n\n    /**\n     * Get a parameter override for a dependency.\n     *\n     * @param  \\ReflectionParameter  $dependency\n     * @return mixed\n     */\n    protected function getParameterOverride($dependency)\n    {\n        return $this->getLastParameterOverride()[$dependency->name];\n    }\n\n    /**\n     * Get the last parameter override.\n     *\n     * @return array\n     */\n    protected function getLastParameterOverride()\n    {\n        return count($this->with) ? end($this->with) : [];\n    }\n\n    /**\n     * Resolve a non-class hinted primitive dependency.\n     *\n     * @param  \\ReflectionParameter  $parameter\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function resolvePrimitive(ReflectionParameter $parameter)\n    {\n        if (! is_null($concrete = $this->getContextualConcrete('$'.$parameter->name))) {\n            return $concrete instanceof Closure ? $concrete($this) : $concrete;\n        }\n\n        if ($parameter->isDefaultValueAvailable()) {\n            return $parameter->getDefaultValue();\n        }\n\n        $this->unresolvablePrimitive($parameter);\n    }\n\n    /**\n     * Resolve a class based dependency from the container.\n     *\n     * @param  \\ReflectionParameter  $parameter\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function resolveClass(ReflectionParameter $parameter)\n    {\n        try {\n            return $this->make($parameter->getClass()->name);\n        }\n\n        // If we can not resolve the class instance, we will check to see if the value\n        // is optional, and if it is we will return the optional parameter value as\n        // the value of the dependency, similarly to how we do this with scalars.\n        catch (BindingResolutionException $e) {\n            if ($parameter->isOptional()) {\n                return $parameter->getDefaultValue();\n            }\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Throw an exception that the concrete is not instantiable.\n     *\n     * @param  string  $concrete\n     * @return void\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function notInstantiable($concrete)\n    {\n        if (! empty($this->buildStack)) {\n            $previous = implode(', ', $this->buildStack);\n\n            $message = \"Target [$concrete] is not instantiable while building [$previous].\";\n        } else {\n            $message = \"Target [$concrete] is not instantiable.\";\n        }\n\n        throw new BindingResolutionException($message);\n    }\n\n    /**\n     * Throw an exception for an unresolvable primitive.\n     *\n     * @param  \\ReflectionParameter  $parameter\n     * @return void\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function unresolvablePrimitive(ReflectionParameter $parameter)\n    {\n        $message = \"Unresolvable dependency resolving [$parameter] in class {$parameter->getDeclaringClass()->getName()}\";\n\n        throw new BindingResolutionException($message);\n    }\n\n    /**\n     * Register a new resolving callback.\n     *\n     * @param  \\Closure|string  $abstract\n     * @param  \\Closure|null  $callback\n     * @return void\n     */\n    public function resolving($abstract, Closure $callback = null)\n    {\n        if (is_string($abstract)) {\n            $abstract = $this->getAlias($abstract);\n        }\n\n        if (is_null($callback) && $abstract instanceof Closure) {\n            $this->globalResolvingCallbacks[] = $abstract;\n        } else {\n            $this->resolvingCallbacks[$abstract][] = $callback;\n        }\n    }\n\n    /**\n     * Register a new after resolving callback for all types.\n     *\n     * @param  \\Closure|string  $abstract\n     * @param  \\Closure|null  $callback\n     * @return void\n     */\n    public function afterResolving($abstract, Closure $callback = null)\n    {\n        if (is_string($abstract)) {\n            $abstract = $this->getAlias($abstract);\n        }\n\n        if ($abstract instanceof Closure && is_null($callback)) {\n            $this->globalAfterResolvingCallbacks[] = $abstract;\n        } else {\n            $this->afterResolvingCallbacks[$abstract][] = $callback;\n        }\n    }\n\n    /**\n     * Fire all of the resolving callbacks.\n     *\n     * @param  string  $abstract\n     * @param  mixed   $object\n     * @return void\n     */\n    protected function fireResolvingCallbacks($abstract, $object)\n    {\n        $this->fireCallbackArray($object, $this->globalResolvingCallbacks);\n\n        $this->fireCallbackArray(\n            $object, $this->getCallbacksForType($abstract, $object, $this->resolvingCallbacks)\n        );\n\n        $this->fireAfterResolvingCallbacks($abstract, $object);\n    }\n\n    /**\n     * Fire all of the after resolving callbacks.\n     *\n     * @param  string  $abstract\n     * @param  mixed   $object\n     * @return void\n     */\n    protected function fireAfterResolvingCallbacks($abstract, $object)\n    {\n        $this->fireCallbackArray($object, $this->globalAfterResolvingCallbacks);\n\n        $this->fireCallbackArray(\n            $object, $this->getCallbacksForType($abstract, $object, $this->afterResolvingCallbacks)\n        );\n    }\n\n    /**\n     * Get all callbacks for a given type.\n     *\n     * @param  string  $abstract\n     * @param  object  $object\n     * @param  array   $callbacksPerType\n     *\n     * @return array\n     */\n    protected function getCallbacksForType($abstract, $object, array $callbacksPerType)\n    {\n        $results = [];\n\n        foreach ($callbacksPerType as $type => $callbacks) {\n            if ($type === $abstract || $object instanceof $type) {\n                $results = array_merge($results, $callbacks);\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Fire an array of callbacks with an object.\n     *\n     * @param  mixed  $object\n     * @param  array  $callbacks\n     * @return void\n     */\n    protected function fireCallbackArray($object, array $callbacks)\n    {\n        foreach ($callbacks as $callback) {\n            $callback($object, $this);\n        }\n    }\n\n    /**\n     * Get the container's bindings.\n     *\n     * @return array\n     */\n    public function getBindings()\n    {\n        return $this->bindings;\n    }\n\n    /**\n     * Get the alias for an abstract if available.\n     *\n     * @param  string  $abstract\n     * @return string\n     */\n    public function getAlias($abstract)\n    {\n        if (! isset($this->aliases[$abstract])) {\n            return $abstract;\n        }\n\n        return $this->getAlias($this->aliases[$abstract]);\n    }\n\n    /**\n     * Get the extender callbacks for a given type.\n     *\n     * @param  string  $abstract\n     * @return array\n     */\n    protected function getExtenders($abstract)\n    {\n        $abstract = $this->getAlias($abstract);\n\n        return $this->extenders[$abstract] ?? [];\n    }\n\n    /**\n     * Remove all of the extender callbacks for a given type.\n     *\n     * @param  string  $abstract\n     * @return void\n     */\n    public function forgetExtenders($abstract)\n    {\n        unset($this->extenders[$this->getAlias($abstract)]);\n    }\n\n    /**\n     * Drop all of the stale instances and aliases.\n     *\n     * @param  string  $abstract\n     * @return void\n     */\n    protected function dropStaleInstances($abstract)\n    {\n        unset($this->instances[$abstract], $this->aliases[$abstract]);\n    }\n\n    /**\n     * Remove a resolved instance from the instance cache.\n     *\n     * @param  string  $abstract\n     * @return void\n     */\n    public function forgetInstance($abstract)\n    {\n        unset($this->instances[$abstract]);\n    }\n\n    /**\n     * Clear all of the instances from the container.\n     *\n     * @return void\n     */\n    public function forgetInstances()\n    {\n        $this->instances = [];\n    }\n\n    /**\n     * Flush the container of all bindings and resolved instances.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        $this->aliases = [];\n        $this->resolved = [];\n        $this->bindings = [];\n        $this->instances = [];\n        $this->abstractAliases = [];\n    }\n\n    /**\n     * Set the globally available instance of the container.\n     *\n     * @return static\n     */\n    public static function getInstance()\n    {\n        if (is_null(static::$instance)) {\n            static::$instance = new static;\n        }\n\n        return static::$instance;\n    }\n\n    /**\n     * Set the shared instance of the container.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return \\Illuminate\\Contracts\\Container\\Container|static\n     */\n    public static function setInstance(ContainerContract $container = null)\n    {\n        return static::$instance = $container;\n    }\n\n    /**\n     * Determine if a given offset exists.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return $this->bound($key);\n    }\n\n    /**\n     * Get the value at a given offset.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->make($key);\n    }\n\n    /**\n     * Set the value at a given offset.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        $this->bind($key, $value instanceof Closure ? $value : function () use ($value) {\n            return $value;\n        });\n    }\n\n    /**\n     * Unset the value at a given offset.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        unset($this->bindings[$key], $this->instances[$key], $this->resolved[$key]);\n    }\n\n    /**\n     * Dynamically access container services.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this[$key];\n    }\n\n    /**\n     * Dynamically set container services.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this[$key] = $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/ContextualBindingBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Container;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Container\\ContextualBindingBuilder as ContextualBindingBuilderContract;\n\nclass ContextualBindingBuilder implements ContextualBindingBuilderContract\n{\n    /**\n     * The underlying container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The concrete instance.\n     *\n     * @var string|array\n     */\n    protected $concrete;\n\n    /**\n     * The abstract target.\n     *\n     * @var string\n     */\n    protected $needs;\n\n    /**\n     * Create a new contextual binding builder.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @param  string|array  $concrete\n     * @return void\n     */\n    public function __construct(Container $container, $concrete)\n    {\n        $this->concrete = $concrete;\n        $this->container = $container;\n    }\n\n    /**\n     * Define the abstract target that depends on the context.\n     *\n     * @param  string  $abstract\n     * @return $this\n     */\n    public function needs($abstract)\n    {\n        $this->needs = $abstract;\n\n        return $this;\n    }\n\n    /**\n     * Define the implementation for the contextual binding.\n     *\n     * @param  \\Closure|string  $implementation\n     * @return void\n     */\n    public function give($implementation)\n    {\n        foreach (Arr::wrap($this->concrete) as $concrete) {\n            $this->container->addContextualBinding($concrete, $this->needs, $implementation);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/EntryNotFoundException.php",
    "content": "<?php\n\nnamespace Illuminate\\Container;\n\nuse Exception;\nuse Psr\\Container\\NotFoundExceptionInterface;\n\nclass EntryNotFoundException extends Exception implements NotFoundExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/RewindableGenerator.php",
    "content": "<?php\n\nnamespace Illuminate\\Container;\n\nuse Countable;\nuse IteratorAggregate;\n\nclass RewindableGenerator implements Countable, IteratorAggregate\n{\n    /**\n     * The generator callback.\n     *\n     * @var callable\n     */\n    protected $generator;\n\n    /**\n     * The number of tagged services.\n     *\n     * @var callable|int\n     */\n    protected $count;\n\n    /**\n     * Create a new generator instance.\n     *\n     * @param  callable  $generator\n     * @param  callable|int  $count\n     * @return void\n     */\n    public function __construct(callable $generator, $count)\n    {\n        $this->count = $count;\n        $this->generator = $generator;\n    }\n\n    /**\n     * Get an iterator from the generator.\n     *\n     * @return mixed\n     */\n    public function getIterator()\n    {\n        return ($this->generator)();\n    }\n\n    /**\n     * Get the total number of tagged services.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        if (is_callable($count = $this->count)) {\n            $this->count = $count();\n        }\n\n        return $this->count;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Container/composer.json",
    "content": "{\n    \"name\": \"illuminate/container\",\n    \"description\": \"The Illuminate Container package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"psr/container\": \"^1.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Container\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Authorizable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth\\Access;\n\ninterface Authorizable\n{\n    /**\n     * Determine if the entity has a given ability.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function can($ability, $arguments = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/Access/Gate.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth\\Access;\n\ninterface Gate\n{\n    /**\n     * Determine if a given ability has been defined.\n     *\n     * @param  string  $ability\n     * @return bool\n     */\n    public function has($ability);\n\n    /**\n     * Define a new ability.\n     *\n     * @param  string  $ability\n     * @param  callable|string  $callback\n     * @return $this\n     */\n    public function define($ability, $callback);\n\n    /**\n     * Define a policy class for a given class type.\n     *\n     * @param  string  $class\n     * @param  string  $policy\n     * @return $this\n     */\n    public function policy($class, $policy);\n\n    /**\n     * Register a callback to run before all Gate checks.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function before(callable $callback);\n\n    /**\n     * Register a callback to run after all Gate checks.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function after(callable $callback);\n\n    /**\n     * Determine if the given ability should be granted for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function allows($ability, $arguments = []);\n\n    /**\n     * Determine if the given ability should be denied for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function denies($ability, $arguments = []);\n\n    /**\n     * Determine if all of the given abilities should be granted for the current user.\n     *\n     * @param  iterable|string  $abilities\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function check($abilities, $arguments = []);\n\n    /**\n     * Determine if any one of the given abilities should be granted for the current user.\n     *\n     * @param  iterable|string  $abilities\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function any($abilities, $arguments = []);\n\n    /**\n     * Determine if the given ability should be granted for the current user.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return \\Illuminate\\Auth\\Access\\Response\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function authorize($ability, $arguments = []);\n\n    /**\n     * Get the raw result from the authorization callback.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return mixed\n     */\n    public function raw($ability, $arguments = []);\n\n    /**\n     * Get a policy instance for a given class.\n     *\n     * @param  object|string  $class\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function getPolicyFor($class);\n\n    /**\n     * Get a guard instance for the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|mixed  $user\n     * @return static\n     */\n    public function forUser($user);\n\n    /**\n     * Get all of the defined abilities.\n     *\n     * @return array\n     */\n    public function abilities();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/Authenticatable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface Authenticatable\n{\n    /**\n     * Get the name of the unique identifier for the user.\n     *\n     * @return string\n     */\n    public function getAuthIdentifierName();\n\n    /**\n     * Get the unique identifier for the user.\n     *\n     * @return mixed\n     */\n    public function getAuthIdentifier();\n\n    /**\n     * Get the password for the user.\n     *\n     * @return string\n     */\n    public function getAuthPassword();\n\n    /**\n     * Get the token value for the \"remember me\" session.\n     *\n     * @return string\n     */\n    public function getRememberToken();\n\n    /**\n     * Set the token value for the \"remember me\" session.\n     *\n     * @param  string  $value\n     * @return void\n     */\n    public function setRememberToken($value);\n\n    /**\n     * Get the column name for the \"remember me\" token.\n     *\n     * @return string\n     */\n    public function getRememberTokenName();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/CanResetPassword.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface CanResetPassword\n{\n    /**\n     * Get the e-mail address where password reset links are sent.\n     *\n     * @return string\n     */\n    public function getEmailForPasswordReset();\n\n    /**\n     * Send the password reset notification.\n     *\n     * @param  string  $token\n     * @return void\n     */\n    public function sendPasswordResetNotification($token);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface Factory\n{\n    /**\n     * Get a guard instance by name.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function guard($name = null);\n\n    /**\n     * Set the default guard the factory should serve.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function shouldUse($name);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/Guard.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface Guard\n{\n    /**\n     * Determine if the current user is authenticated.\n     *\n     * @return bool\n     */\n    public function check();\n\n    /**\n     * Determine if the current user is a guest.\n     *\n     * @return bool\n     */\n    public function guest();\n\n    /**\n     * Get the currently authenticated user.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function user();\n\n    /**\n     * Get the ID for the currently authenticated user.\n     *\n     * @return int|string|null\n     */\n    public function id();\n\n    /**\n     * Validate a user's credentials.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validate(array $credentials = []);\n\n    /**\n     * Set the current user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @return void\n     */\n    public function setUser(Authenticatable $user);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/MustVerifyEmail.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface MustVerifyEmail\n{\n    /**\n     * Determine if the user has verified their email address.\n     *\n     * @return bool\n     */\n    public function hasVerifiedEmail();\n\n    /**\n     * Mark the given user's email as verified.\n     *\n     * @return bool\n     */\n    public function markEmailAsVerified();\n\n    /**\n     * Send the email verification notification.\n     *\n     * @return void\n     */\n    public function sendEmailVerificationNotification();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBroker.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\nuse Closure;\n\ninterface PasswordBroker\n{\n    /**\n     * Constant representing a successfully sent reminder.\n     *\n     * @var string\n     */\n    const RESET_LINK_SENT = 'passwords.sent';\n\n    /**\n     * Constant representing a successfully reset password.\n     *\n     * @var string\n     */\n    const PASSWORD_RESET = 'passwords.reset';\n\n    /**\n     * Constant representing the user not found response.\n     *\n     * @var string\n     */\n    const INVALID_USER = 'passwords.user';\n\n    /**\n     * Constant representing an invalid password.\n     *\n     * @var string\n     */\n    const INVALID_PASSWORD = 'passwords.password';\n\n    /**\n     * Constant representing an invalid token.\n     *\n     * @var string\n     */\n    const INVALID_TOKEN = 'passwords.token';\n\n    /**\n     * Send a password reset link to a user.\n     *\n     * @param  array  $credentials\n     * @return string\n     */\n    public function sendResetLink(array $credentials);\n\n    /**\n     * Reset the password for the given token.\n     *\n     * @param  array     $credentials\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function reset(array $credentials, Closure $callback);\n\n    /**\n     * Set a custom password validator.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function validator(Closure $callback);\n\n    /**\n     * Determine if the passwords match for the request.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validateNewPassword(array $credentials);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/PasswordBrokerFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface PasswordBrokerFactory\n{\n    /**\n     * Get a password broker instance by name.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function broker($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/StatefulGuard.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface StatefulGuard extends Guard\n{\n    /**\n     * Attempt to authenticate a user using the given credentials.\n     *\n     * @param  array  $credentials\n     * @param  bool   $remember\n     * @return bool\n     */\n    public function attempt(array $credentials = [], $remember = false);\n\n    /**\n     * Log a user into the application without sessions or cookies.\n     *\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function once(array $credentials = []);\n\n    /**\n     * Log a user into the application.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  bool  $remember\n     * @return void\n     */\n    public function login(Authenticatable $user, $remember = false);\n\n    /**\n     * Log the given user ID into the application.\n     *\n     * @param  mixed  $id\n     * @param  bool   $remember\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable\n     */\n    public function loginUsingId($id, $remember = false);\n\n    /**\n     * Log the given user ID into the application without sessions or cookies.\n     *\n     * @param  mixed  $id\n     * @return bool\n     */\n    public function onceUsingId($id);\n\n    /**\n     * Determine if the user was authenticated via \"remember me\" cookie.\n     *\n     * @return bool\n     */\n    public function viaRemember();\n\n    /**\n     * Log the user out of the application.\n     *\n     * @return void\n     */\n    public function logout();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/SupportsBasicAuth.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface SupportsBasicAuth\n{\n    /**\n     * Attempt to authenticate using HTTP Basic Auth.\n     *\n     * @param  string  $field\n     * @param  array  $extraConditions\n     * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public function basic($field = 'email', $extraConditions = []);\n\n    /**\n     * Perform a stateless HTTP Basic login attempt.\n     *\n     * @param  string  $field\n     * @param  array  $extraConditions\n     * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public function onceBasic($field = 'email', $extraConditions = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Auth/UserProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Auth;\n\ninterface UserProvider\n{\n    /**\n     * Retrieve a user by their unique identifier.\n     *\n     * @param  mixed  $identifier\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveById($identifier);\n\n    /**\n     * Retrieve a user by their unique identifier and \"remember me\" token.\n     *\n     * @param  mixed  $identifier\n     * @param  string  $token\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByToken($identifier, $token);\n\n    /**\n     * Update the \"remember me\" token for the given user in storage.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string  $token\n     * @return void\n     */\n    public function updateRememberToken(Authenticatable $user, $token);\n\n    /**\n     * Retrieve a user by the given credentials.\n     *\n     * @param  array  $credentials\n     * @return \\Illuminate\\Contracts\\Auth\\Authenticatable|null\n     */\n    public function retrieveByCredentials(array $credentials);\n\n    /**\n     * Validate a user against the given credentials.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  array  $credentials\n     * @return bool\n     */\n    public function validateCredentials(Authenticatable $user, array $credentials);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Broadcaster.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Broadcasting;\n\ninterface Broadcaster\n{\n    /**\n     * Authenticate the incoming request for a given channel.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return mixed\n     */\n    public function auth($request);\n\n    /**\n     * Return the valid authentication response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $result\n     * @return mixed\n     */\n    public function validAuthenticationResponse($request, $result);\n\n    /**\n     * Broadcast the given event.\n     *\n     * @param  array  $channels\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function broadcast(array $channels, $event, array $payload = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Broadcasting;\n\ninterface Factory\n{\n    /**\n     * Get a broadcaster implementation by name.\n     *\n     * @param  string|null  $name\n     * @return void\n     */\n    public function connection($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcast.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Broadcasting;\n\ninterface ShouldBroadcast\n{\n    /**\n     * Get the channels the event should broadcast on.\n     *\n     * @return \\Illuminate\\Broadcasting\\Channel|\\Illuminate\\Broadcasting\\Channel[]\n     */\n    public function broadcastOn();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Broadcasting/ShouldBroadcastNow.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Broadcasting;\n\ninterface ShouldBroadcastNow extends ShouldBroadcast\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Bus/Dispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Bus;\n\ninterface Dispatcher\n{\n    /**\n     * Dispatch a command to its appropriate handler.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     */\n    public function dispatch($command);\n\n    /**\n     * Dispatch a command to its appropriate handler in the current process.\n     *\n     * @param  mixed  $command\n     * @param  mixed  $handler\n     * @return mixed\n     */\n    public function dispatchNow($command, $handler = null);\n\n    /**\n     * Determine if the given command has a handler.\n     *\n     * @param  mixed  $command\n     * @return bool\n     */\n    public function hasCommandHandler($command);\n\n    /**\n     * Retrieve the handler for a command.\n     *\n     * @param  mixed  $command\n     * @return bool|mixed\n     */\n    public function getCommandHandler($command);\n\n    /**\n     * Set the pipes commands should be piped through before dispatching.\n     *\n     * @param  array  $pipes\n     * @return $this\n     */\n    public function pipeThrough(array $pipes);\n\n    /**\n     * Map a command to a handler.\n     *\n     * @param  array  $map\n     * @return $this\n     */\n    public function map(array $map);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Bus/QueueingDispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Bus;\n\ninterface QueueingDispatcher extends Dispatcher\n{\n    /**\n     * Dispatch a command to its appropriate handler behind a queue.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     */\n    public function dispatchToQueue($command);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\ninterface Factory\n{\n    /**\n     * Get a cache store instance by name.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    public function store($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/Lock.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\ninterface Lock\n{\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    public function get($callback = null);\n\n    /**\n     * Attempt to acquire the lock for the given number of seconds.\n     *\n     * @param  int  $seconds\n     * @param  callable|null  $callback\n     * @return bool\n     */\n    public function block($seconds, $callback = null);\n\n    /**\n     * Release the lock.\n     *\n     * @return void\n     */\n    public function release();\n\n    /**\n     * Returns the current owner of the lock.\n     *\n     * @return string\n     */\n    public function owner();\n\n    /**\n     * Releases this lock in disregard of ownership.\n     *\n     * @return void\n     */\n    public function forceRelease();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\ninterface LockProvider\n{\n    /**\n     * Get a lock instance.\n     *\n     * @param  string  $name\n     * @param  int  $seconds\n     * @param  string|null  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function lock($name, $seconds = 0, $owner = null);\n\n    /**\n     * Restore a lock instance using the owner identifier.\n     *\n     * @param  string  $name\n     * @param  string  $owner\n     * @return \\Illuminate\\Contracts\\Cache\\Lock\n     */\n    public function restoreLock($name, $owner);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/LockTimeoutException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\nuse Exception;\n\nclass LockTimeoutException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/Repository.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\nuse Closure;\nuse Psr\\SimpleCache\\CacheInterface;\n\ninterface Repository extends CacheInterface\n{\n    /**\n     * Retrieve an item from the cache and delete it.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function pull($key, $default = null);\n\n    /**\n     * Store an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function put($key, $value, $ttl = null);\n\n    /**\n     * Store an item in the cache if the key does not exist.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @return bool\n     */\n    public function add($key, $value, $ttl = null);\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1);\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1);\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function forever($key, $value);\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result.\n     *\n     * @param  string  $key\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $ttl\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function remember($key, $ttl, Closure $callback);\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result forever.\n     *\n     * @param  string  $key\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function sear($key, Closure $callback);\n\n    /**\n     * Get an item from the cache, or execute the given Closure and store the result forever.\n     *\n     * @param  string  $key\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function rememberForever($key, Closure $callback);\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string $key\n     * @return bool\n     */\n    public function forget($key);\n\n    /**\n     * Get the cache store implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Cache\\Store\n     */\n    public function getStore();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cache/Store.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cache;\n\ninterface Store\n{\n    /**\n     * Retrieve an item from the cache by key.\n     *\n     * @param  string|array  $key\n     * @return mixed\n     */\n    public function get($key);\n\n    /**\n     * Retrieve multiple items from the cache by key.\n     *\n     * Items not found in the cache will have a null value.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function many(array $keys);\n\n    /**\n     * Store an item in the cache for a given number of seconds.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function put($key, $value, $seconds);\n\n    /**\n     * Store multiple items in the cache for a given number of seconds.\n     *\n     * @param  array  $values\n     * @param  int  $seconds\n     * @return bool\n     */\n    public function putMany(array $values, $seconds);\n\n    /**\n     * Increment the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function increment($key, $value = 1);\n\n    /**\n     * Decrement the value of an item in the cache.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return int|bool\n     */\n    public function decrement($key, $value = 1);\n\n    /**\n     * Store an item in the cache indefinitely.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function forever($key, $value);\n\n    /**\n     * Remove an item from the cache.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function forget($key);\n\n    /**\n     * Remove all items from the cache.\n     *\n     * @return bool\n     */\n    public function flush();\n\n    /**\n     * Get the cache key prefix.\n     *\n     * @return string\n     */\n    public function getPrefix();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Config/Repository.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Config;\n\ninterface Repository\n{\n    /**\n     * Determine if the given configuration value exists.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function has($key);\n\n    /**\n     * Get the specified configuration value.\n     *\n     * @param  array|string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public function get($key, $default = null);\n\n    /**\n     * Get all of the configuration items for the application.\n     *\n     * @return array\n     */\n    public function all();\n\n    /**\n     * Set a given configuration value.\n     *\n     * @param  array|string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function set($key, $value = null);\n\n    /**\n     * Prepend a value onto an array configuration value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function prepend($key, $value);\n\n    /**\n     * Push a value onto an array configuration value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function push($key, $value);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Console/Application.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Console;\n\ninterface Application\n{\n    /**\n     * Run an Artisan console command by name.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $outputBuffer\n     * @return int\n     */\n    public function call($command, array $parameters = [], $outputBuffer = null);\n\n    /**\n     * Get the output from the last command.\n     *\n     * @return string\n     */\n    public function output();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Console/Kernel.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Console;\n\ninterface Kernel\n{\n    /**\n     * Handle an incoming console command.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $output\n     * @return int\n     */\n    public function handle($input, $output = null);\n\n    /**\n     * Run an Artisan console command by name.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $outputBuffer\n     * @return int\n     */\n    public function call($command, array $parameters = [], $outputBuffer = null);\n\n    /**\n     * Queue an Artisan console command by name.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n     */\n    public function queue($command, array $parameters = []);\n\n    /**\n     * Get all of the commands registered with the console.\n     *\n     * @return array\n     */\n    public function all();\n\n    /**\n     * Get the output for the last run command.\n     *\n     * @return string\n     */\n    public function output();\n\n    /**\n     * Terminate the application.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  int  $status\n     * @return void\n     */\n    public function terminate($input, $status);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Container/BindingResolutionException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Container;\n\nuse Exception;\nuse Psr\\Container\\ContainerExceptionInterface;\n\nclass BindingResolutionException extends Exception implements ContainerExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Container/Container.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Container;\n\nuse Closure;\nuse Psr\\Container\\ContainerInterface;\n\ninterface Container extends ContainerInterface\n{\n    /**\n     * Determine if the given abstract type has been bound.\n     *\n     * @param  string  $abstract\n     * @return bool\n     */\n    public function bound($abstract);\n\n    /**\n     * Alias a type to a different name.\n     *\n     * @param  string  $abstract\n     * @param  string  $alias\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function alias($abstract, $alias);\n\n    /**\n     * Assign a set of tags to a given binding.\n     *\n     * @param  array|string  $abstracts\n     * @param  array|mixed   ...$tags\n     * @return void\n     */\n    public function tag($abstracts, $tags);\n\n    /**\n     * Resolve all of the bindings for a given tag.\n     *\n     * @param  string  $tag\n     * @return iterable\n     */\n    public function tagged($tag);\n\n    /**\n     * Register a binding with the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @param  bool  $shared\n     * @return void\n     */\n    public function bind($abstract, $concrete = null, $shared = false);\n\n    /**\n     * Register a binding if it hasn't already been registered.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @param  bool  $shared\n     * @return void\n     */\n    public function bindIf($abstract, $concrete = null, $shared = false);\n\n    /**\n     * Register a shared binding in the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|string|null  $concrete\n     * @return void\n     */\n    public function singleton($abstract, $concrete = null);\n\n    /**\n     * \"Extend\" an abstract type in the container.\n     *\n     * @param  string    $abstract\n     * @param  \\Closure  $closure\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function extend($abstract, Closure $closure);\n\n    /**\n     * Register an existing instance as shared in the container.\n     *\n     * @param  string  $abstract\n     * @param  mixed   $instance\n     * @return mixed\n     */\n    public function instance($abstract, $instance);\n\n    /**\n     * Add a contextual binding to the container.\n     *\n     * @param  string  $concrete\n     * @param  string  $abstract\n     * @param  \\Closure|string  $implementation\n     * @return void\n     */\n    public function addContextualBinding($concrete, $abstract, $implementation);\n\n    /**\n     * Define a contextual binding.\n     *\n     * @param  string|array  $concrete\n     * @return \\Illuminate\\Contracts\\Container\\ContextualBindingBuilder\n     */\n    public function when($concrete);\n\n    /**\n     * Get a closure to resolve the given type from the container.\n     *\n     * @param  string  $abstract\n     * @return \\Closure\n     */\n    public function factory($abstract);\n\n    /**\n     * Flush the container of all bindings and resolved instances.\n     *\n     * @return void\n     */\n    public function flush();\n\n    /**\n     * Resolve the given type from the container.\n     *\n     * @param  string  $abstract\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    public function make($abstract, array $parameters = []);\n\n    /**\n     * Call the given Closure / class@method and inject its dependencies.\n     *\n     * @param  callable|string  $callback\n     * @param  array  $parameters\n     * @param  string|null  $defaultMethod\n     * @return mixed\n     */\n    public function call($callback, array $parameters = [], $defaultMethod = null);\n\n    /**\n     * Determine if the given abstract type has been resolved.\n     *\n     * @param  string $abstract\n     * @return bool\n     */\n    public function resolved($abstract);\n\n    /**\n     * Register a new resolving callback.\n     *\n     * @param  \\Closure|string  $abstract\n     * @param  \\Closure|null  $callback\n     * @return void\n     */\n    public function resolving($abstract, Closure $callback = null);\n\n    /**\n     * Register a new after resolving callback.\n     *\n     * @param  \\Closure|string  $abstract\n     * @param  \\Closure|null  $callback\n     * @return void\n     */\n    public function afterResolving($abstract, Closure $callback = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Container/ContextualBindingBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Container;\n\ninterface ContextualBindingBuilder\n{\n    /**\n     * Define the abstract target that depends on the context.\n     *\n     * @param  string  $abstract\n     * @return $this\n     */\n    public function needs($abstract);\n\n    /**\n     * Define the implementation for the contextual binding.\n     *\n     * @param  \\Closure|string  $implementation\n     * @return void\n     */\n    public function give($implementation);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cookie/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cookie;\n\ninterface Factory\n{\n    /**\n     * Create a new cookie instance.\n     *\n     * @param  string  $name\n     * @param  string  $value\n     * @param  int     $minutes\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @param  bool|null    $secure\n     * @param  bool    $httpOnly\n     * @param  bool         $raw\n     * @param  string|null  $sameSite\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null);\n\n    /**\n     * Create a cookie that lasts \"forever\" (five years).\n     *\n     * @param  string  $name\n     * @param  string  $value\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @param  bool|null    $secure\n     * @param  bool    $httpOnly\n     * @param  bool         $raw\n     * @param  string|null  $sameSite\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null);\n\n    /**\n     * Expire the given cookie.\n     *\n     * @param  string  $name\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function forget($name, $path = null, $domain = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Cookie/QueueingFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Cookie;\n\ninterface QueueingFactory extends Factory\n{\n    /**\n     * Queue a cookie to send with the next response.\n     *\n     * @param  array  $parameters\n     * @return void\n     */\n    public function queue(...$parameters);\n\n    /**\n     * Remove a cookie from the queue.\n     *\n     * @param  string  $name\n     */\n    public function unqueue($name);\n\n    /**\n     * Get the cookies which have been queued for the next request.\n     *\n     * @return array\n     */\n    public function getQueuedCookies();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Database/Events/MigrationEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Database\\Events;\n\ninterface MigrationEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Database/ModelIdentifier.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Database;\n\nclass ModelIdentifier\n{\n    /**\n     * The class name of the model.\n     *\n     * @var string\n     */\n    public $class;\n\n    /**\n     * The unique identifier of the model.\n     *\n     * This may be either a single ID or an array of IDs.\n     *\n     * @var mixed\n     */\n    public $id;\n\n    /**\n     * The relationships loaded on the model.\n     *\n     * @var array\n     */\n    public $relations;\n\n    /**\n     * The connection name of the model.\n     *\n     * @var string|null\n     */\n    public $connection;\n\n    /**\n     * Create a new model identifier.\n     *\n     * @param  string  $class\n     * @param  mixed  $id\n     * @param  array  $relations\n     * @param  mixed  $connection\n     * @return void\n     */\n    public function __construct($class, $id, array $relations, $connection)\n    {\n        $this->id = $id;\n        $this->class = $class;\n        $this->relations = $relations;\n        $this->connection = $connection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Debug/ExceptionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Debug;\n\nuse Exception;\n\ninterface ExceptionHandler\n{\n    /**\n     * Report or log an exception.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function report(Exception $e);\n\n    /**\n     * Determine if the exception should be reported.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    public function shouldReport(Exception $e);\n\n    /**\n     * Render an exception into an HTTP response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception  $e\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function render($request, Exception $e);\n\n    /**\n     * Render an exception to the console.\n     *\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function renderForConsole($output, Exception $e);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Encryption/DecryptException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Encryption;\n\nuse RuntimeException;\n\nclass DecryptException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Encryption/EncryptException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Encryption;\n\nuse RuntimeException;\n\nclass EncryptException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Encryption/Encrypter.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Encryption;\n\ninterface Encrypter\n{\n    /**\n     * Encrypt the given value.\n     *\n     * @param  mixed  $value\n     * @param  bool  $serialize\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n     */\n    public function encrypt($value, $serialize = true);\n\n    /**\n     * Decrypt the given value.\n     *\n     * @param  string  $payload\n     * @param  bool  $unserialize\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n     */\n    public function decrypt($payload, $unserialize = true);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Events/Dispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Events;\n\ninterface Dispatcher\n{\n    /**\n     * Register an event listener with the dispatcher.\n     *\n     * @param  string|array  $events\n     * @param  mixed  $listener\n     * @return void\n     */\n    public function listen($events, $listener);\n\n    /**\n     * Determine if a given event has listeners.\n     *\n     * @param  string  $eventName\n     * @return bool\n     */\n    public function hasListeners($eventName);\n\n    /**\n     * Register an event subscriber with the dispatcher.\n     *\n     * @param  object|string  $subscriber\n     * @return void\n     */\n    public function subscribe($subscriber);\n\n    /**\n     * Dispatch an event until the first non-null response is returned.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @return array|null\n     */\n    public function until($event, $payload = []);\n\n    /**\n     * Dispatch an event and call the listeners.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @param  bool  $halt\n     * @return array|null\n     */\n    public function dispatch($event, $payload = [], $halt = false);\n\n    /**\n     * Register an event and payload to be fired later.\n     *\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function push($event, $payload = []);\n\n    /**\n     * Flush a set of pushed events.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function flush($event);\n\n    /**\n     * Remove a set of listeners from the dispatcher.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function forget($event);\n\n    /**\n     * Forget all of the queued listeners.\n     *\n     * @return void\n     */\n    public function forgetPushed();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Cloud.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Filesystem;\n\ninterface Cloud extends Filesystem\n{\n    /**\n     * Get the URL for the file at the given path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function url($path);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Filesystem;\n\ninterface Factory\n{\n    /**\n     * Get a filesystem implementation.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function disk($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileExistsException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Filesystem;\n\nuse Exception;\n\nclass FileExistsException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/FileNotFoundException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Filesystem;\n\nuse Exception;\n\nclass FileNotFoundException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Filesystem/Filesystem.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Filesystem;\n\ninterface Filesystem\n{\n    /**\n     * The public visibility setting.\n     *\n     * @var string\n     */\n    const VISIBILITY_PUBLIC = 'public';\n\n    /**\n     * The private visibility setting.\n     *\n     * @var string\n     */\n    const VISIBILITY_PRIVATE = 'private';\n\n    /**\n     * Determine if a file exists.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function exists($path);\n\n    /**\n     * Get the contents of a file.\n     *\n     * @param  string  $path\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function get($path);\n\n    /**\n     * Get a resource to read the file.\n     *\n     * @param  string  $path\n     * @return resource|null The path resource or null on failure.\n     *\n     * @throws FileNotFoundException\n     */\n    public function readStream($path);\n\n    /**\n     * Write the contents of a file.\n     *\n     * @param  string  $path\n     * @param  string|resource  $contents\n     * @param  mixed  $options\n     * @return bool\n     */\n    public function put($path, $contents, $options = []);\n\n    /**\n     * Write a new file using a stream.\n     *\n     * @param  string  $path\n     * @param  resource $resource\n     * @param  array  $options\n     * @return bool\n     *\n     * @throws \\InvalidArgumentException If $resource is not a file handle.\n     * @throws FileExistsException\n     */\n    public function writeStream($path, $resource, array $options = []);\n\n    /**\n     * Get the visibility for the given path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function getVisibility($path);\n\n    /**\n     * Set the visibility for the given path.\n     *\n     * @param  string  $path\n     * @param  string  $visibility\n     * @return bool\n     */\n    public function setVisibility($path, $visibility);\n\n    /**\n     * Prepend to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @return bool\n     */\n    public function prepend($path, $data);\n\n    /**\n     * Append to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @return bool\n     */\n    public function append($path, $data);\n\n    /**\n     * Delete the file at a given path.\n     *\n     * @param  string|array  $paths\n     * @return bool\n     */\n    public function delete($paths);\n\n    /**\n     * Copy a file to a new location.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return bool\n     */\n    public function copy($from, $to);\n\n    /**\n     * Move a file to a new location.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return bool\n     */\n    public function move($from, $to);\n\n    /**\n     * Get the file size of a given file.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function size($path);\n\n    /**\n     * Get the file's last modification time.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function lastModified($path);\n\n    /**\n     * Get an array of all files in a directory.\n     *\n     * @param  string|null  $directory\n     * @param  bool  $recursive\n     * @return array\n     */\n    public function files($directory = null, $recursive = false);\n\n    /**\n     * Get all of the files from the given directory (recursive).\n     *\n     * @param  string|null  $directory\n     * @return array\n     */\n    public function allFiles($directory = null);\n\n    /**\n     * Get all of the directories within a given directory.\n     *\n     * @param  string|null  $directory\n     * @param  bool  $recursive\n     * @return array\n     */\n    public function directories($directory = null, $recursive = false);\n\n    /**\n     * Get all (recursive) of the directories within a given directory.\n     *\n     * @param  string|null  $directory\n     * @return array\n     */\n    public function allDirectories($directory = null);\n\n    /**\n     * Create a directory.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function makeDirectory($path);\n\n    /**\n     * Recursively delete a directory.\n     *\n     * @param  string  $directory\n     * @return bool\n     */\n    public function deleteDirectory($directory);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Foundation/Application.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Foundation;\n\nuse Closure;\nuse Illuminate\\Contracts\\Container\\Container;\n\ninterface Application extends Container\n{\n    /**\n     * Get the version number of the application.\n     *\n     * @return string\n     */\n    public function version();\n\n    /**\n     * Get the base path of the Laravel installation.\n     *\n     * @return string\n     */\n    public function basePath();\n\n    /**\n     * Get the path to the bootstrap directory.\n     *\n     * @param  string  $path Optionally, a path to append to the bootstrap path\n     * @return string\n     */\n    public function bootstrapPath($path = '');\n\n    /**\n     * Get the path to the application configuration files.\n     *\n     * @param  string  $path Optionally, a path to append to the config path\n     * @return string\n     */\n    public function configPath($path = '');\n\n    /**\n     * Get the path to the database directory.\n     *\n     * @param  string  $path Optionally, a path to append to the database path\n     * @return string\n     */\n    public function databasePath($path = '');\n\n    /**\n     * Get the path to the environment file directory.\n     *\n     * @return string\n     */\n    public function environmentPath();\n\n    /**\n     * Get the path to the resources directory.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function resourcePath($path = '');\n\n    /**\n     * Get the path to the storage directory.\n     *\n     * @return string\n     */\n    public function storagePath();\n\n    /**\n     * Get or check the current application environment.\n     *\n     * @param  string|array  $environments\n     * @return string|bool\n     */\n    public function environment(...$environments);\n\n    /**\n     * Determine if the application is running in the console.\n     *\n     * @return bool\n     */\n    public function runningInConsole();\n\n    /**\n     * Determine if the application is running unit tests.\n     *\n     * @return bool\n     */\n    public function runningUnitTests();\n\n    /**\n     * Determine if the application is currently down for maintenance.\n     *\n     * @return bool\n     */\n    public function isDownForMaintenance();\n\n    /**\n     * Register all of the configured providers.\n     *\n     * @return void\n     */\n    public function registerConfiguredProviders();\n\n    /**\n     * Register a service provider with the application.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider|string  $provider\n     * @param  bool   $force\n     * @return \\Illuminate\\Support\\ServiceProvider\n     */\n    public function register($provider, $force = false);\n\n    /**\n     * Register a deferred provider and service.\n     *\n     * @param  string  $provider\n     * @param  string|null  $service\n     * @return void\n     */\n    public function registerDeferredProvider($provider, $service = null);\n\n    /**\n     * Resolve a service provider instance from the class name.\n     *\n     * @param  string  $provider\n     * @return \\Illuminate\\Support\\ServiceProvider\n     */\n    public function resolveProvider($provider);\n\n    /**\n     * Boot the application's service providers.\n     *\n     * @return void\n     */\n    public function boot();\n\n    /**\n     * Register a new boot listener.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function booting($callback);\n\n    /**\n     * Register a new \"booted\" listener.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function booted($callback);\n\n    /**\n     * Run the given array of bootstrap classes.\n     *\n     * @param  array  $bootstrappers\n     * @return void\n     */\n    public function bootstrapWith(array $bootstrappers);\n\n    /**\n     * Determine if the application configuration is cached.\n     *\n     * @return bool\n     */\n    public function configurationIsCached();\n\n    /**\n     * Detect the application's current environment.\n     *\n     * @param  \\Closure  $callback\n     * @return string\n     */\n    public function detectEnvironment(Closure $callback);\n\n    /**\n     * Get the environment file the application is using.\n     *\n     * @return string\n     */\n    public function environmentFile();\n\n    /**\n     * Get the fully qualified path to the environment file.\n     *\n     * @return string\n     */\n    public function environmentFilePath();\n\n    /**\n     * Get the path to the configuration cache file.\n     *\n     * @return string\n     */\n    public function getCachedConfigPath();\n\n    /**\n     * Get the path to the cached services.php file.\n     *\n     * @return string\n     */\n    public function getCachedServicesPath();\n\n    /**\n     * Get the path to the cached packages.php file.\n     *\n     * @return string\n     */\n    public function getCachedPackagesPath();\n\n    /**\n     * Get the path to the routes cache file.\n     *\n     * @return string\n     */\n    public function getCachedRoutesPath();\n\n    /**\n     * Get the current application locale.\n     *\n     * @return string\n     */\n    public function getLocale();\n\n    /**\n     * Get the application namespace.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function getNamespace();\n\n    /**\n     * Get the registered service provider instances if any exist.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider|string  $provider\n     * @return array\n     */\n    public function getProviders($provider);\n\n    /**\n     * Determine if the application has been bootstrapped before.\n     *\n     * @return bool\n     */\n    public function hasBeenBootstrapped();\n\n    /**\n     * Load and boot all of the remaining deferred providers.\n     *\n     * @return void\n     */\n    public function loadDeferredProviders();\n\n    /**\n     * Set the environment file to be loaded during bootstrapping.\n     *\n     * @param  string  $file\n     * @return $this\n     */\n    public function loadEnvironmentFrom($file);\n\n    /**\n     * Determine if the application routes are cached.\n     *\n     * @return bool\n     */\n    public function routesAreCached();\n\n    /**\n     * Set the current application locale.\n     *\n     * @param  string  $locale\n     * @return void\n     */\n    public function setLocale($locale);\n\n    /**\n     * Determine if middleware has been disabled for the application.\n     *\n     * @return bool\n     */\n    public function shouldSkipMiddleware();\n\n    /**\n     * Terminate the application.\n     *\n     * @return void\n     */\n    public function terminate();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Hashing/Hasher.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Hashing;\n\ninterface Hasher\n{\n    /**\n     * Get information about the given hashed value.\n     *\n     * @param  string  $hashedValue\n     * @return array\n     */\n    public function info($hashedValue);\n\n    /**\n     * Hash the given value.\n     *\n     * @param  string  $value\n     * @param  array   $options\n     * @return string\n     */\n    public function make($value, array $options = []);\n\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array   $options\n     * @return bool\n     */\n    public function check($value, $hashedValue, array $options = []);\n\n    /**\n     * Check if the given hash has been hashed using the given options.\n     *\n     * @param  string  $hashedValue\n     * @param  array   $options\n     * @return bool\n     */\n    public function needsRehash($hashedValue, array $options = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Http/Kernel.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Http;\n\ninterface Kernel\n{\n    /**\n     * Bootstrap the application for HTTP requests.\n     *\n     * @return void\n     */\n    public function bootstrap();\n\n    /**\n     * Handle an incoming HTTP request.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function handle($request);\n\n    /**\n     * Perform any final actions for the request lifecycle.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @return void\n     */\n    public function terminate($request, $response);\n\n    /**\n     * Get the Laravel application instance.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    public function getApplication();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Mail/MailQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Mail;\n\ninterface MailQueue\n{\n    /**\n     * Queue a new e-mail message for sending.\n     *\n     * @param  string|array|\\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function queue($view, $queue = null);\n\n    /**\n     * Queue a new e-mail message for sending after (n) seconds.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string|array|\\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $view, $queue = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Mail;\n\nuse Illuminate\\Contracts\\Queue\\Factory as Queue;\n\ninterface Mailable\n{\n    /**\n     * Send the message using the given mailer.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @return void\n     */\n    public function send(Mailer $mailer);\n\n    /**\n     * Queue the given message.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Factory  $queue\n     * @return mixed\n     */\n    public function queue(Queue $queue);\n\n    /**\n     * Deliver the queued message after the given delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  \\Illuminate\\Contracts\\Queue\\Factory  $queue\n     * @return mixed\n     */\n    public function later($delay, Queue $queue);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Mail/Mailer.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Mail;\n\ninterface Mailer\n{\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function to($users);\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function bcc($users);\n\n    /**\n     * Send a new message with only a raw text part.\n     *\n     * @param  string  $text\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function raw($text, $callback);\n\n    /**\n     * Send a new message using a view.\n     *\n     * @param  string|array|\\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  array  $data\n     * @param  \\Closure|string|null  $callback\n     * @return void\n     */\n    public function send($view, array $data = [], $callback = null);\n\n    /**\n     * Get the array of failed recipients.\n     *\n     * @return array\n     */\n    public function failures();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Dispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Notifications;\n\ninterface Dispatcher\n{\n    /**\n     * Send the given notification to the given notifiable entities.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function send($notifiables, $notification);\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function sendNow($notifiables, $notification);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Notifications/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Notifications;\n\ninterface Factory\n{\n    /**\n     * Get a channel instance by name.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function channel($name = null);\n\n    /**\n     * Send the given notification to the given notifiable entities.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function send($notifiables, $notification);\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function sendNow($notifiables, $notification);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Pagination/LengthAwarePaginator.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Pagination;\n\ninterface LengthAwarePaginator extends Paginator\n{\n    /**\n     * Create a range of pagination URLs.\n     *\n     * @param  int  $start\n     * @param  int  $end\n     * @return array\n     */\n    public function getUrlRange($start, $end);\n\n    /**\n     * Determine the total number of items in the data store.\n     *\n     * @return int\n     */\n    public function total();\n\n    /**\n     * Get the page number of the last available page.\n     *\n     * @return int\n     */\n    public function lastPage();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Pagination/Paginator.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Pagination;\n\ninterface Paginator\n{\n    /**\n     * Get the URL for a given page.\n     *\n     * @param  int  $page\n     * @return string\n     */\n    public function url($page);\n\n    /**\n     * Add a set of query string values to the paginator.\n     *\n     * @param  array|string  $key\n     * @param  string|null  $value\n     * @return $this\n     */\n    public function appends($key, $value = null);\n\n    /**\n     * Get / set the URL fragment to be appended to URLs.\n     *\n     * @param  string|null  $fragment\n     * @return $this|string\n     */\n    public function fragment($fragment = null);\n\n    /**\n     * The URL for the next page, or null.\n     *\n     * @return string|null\n     */\n    public function nextPageUrl();\n\n    /**\n     * Get the URL for the previous page, or null.\n     *\n     * @return string|null\n     */\n    public function previousPageUrl();\n\n    /**\n     * Get all of the items being paginated.\n     *\n     * @return array\n     */\n    public function items();\n\n    /**\n     * Get the \"index\" of the first item being paginated.\n     *\n     * @return int\n     */\n    public function firstItem();\n\n    /**\n     * Get the \"index\" of the last item being paginated.\n     *\n     * @return int\n     */\n    public function lastItem();\n\n    /**\n     * Determine how many items are being shown per page.\n     *\n     * @return int\n     */\n    public function perPage();\n\n    /**\n     * Determine the current page being paginated.\n     *\n     * @return int\n     */\n    public function currentPage();\n\n    /**\n     * Determine if there are enough items to split into multiple pages.\n     *\n     * @return bool\n     */\n    public function hasPages();\n\n    /**\n     * Determine if there is more items in the data store.\n     *\n     * @return bool\n     */\n    public function hasMorePages();\n\n    /**\n     * Determine if the list of items is empty or not.\n     *\n     * @return bool\n     */\n    public function isEmpty();\n\n    /**\n     * Determine if the list of items is not empty.\n     *\n     * @return bool\n     */\n    public function isNotEmpty();\n\n    /**\n     * Render the paginator using a given view.\n     *\n     * @param  string|null  $view\n     * @param  array  $data\n     * @return string\n     */\n    public function render($view = null, $data = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Hub.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Pipeline;\n\ninterface Hub\n{\n    /**\n     * Send an object through one of the available pipelines.\n     *\n     * @param  mixed  $object\n     * @param  string|null  $pipeline\n     * @return mixed\n     */\n    public function pipe($object, $pipeline = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Pipeline/Pipeline.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Pipeline;\n\nuse Closure;\n\ninterface Pipeline\n{\n    /**\n     * Set the traveler object being sent on the pipeline.\n     *\n     * @param  mixed  $traveler\n     * @return $this\n     */\n    public function send($traveler);\n\n    /**\n     * Set the stops of the pipeline.\n     *\n     * @param  dynamic|array  $stops\n     * @return $this\n     */\n    public function through($stops);\n\n    /**\n     * Set the method to call on the stops.\n     *\n     * @param  string  $method\n     * @return $this\n     */\n    public function via($method);\n\n    /**\n     * Run the pipeline with a final destination callback.\n     *\n     * @param  \\Closure  $destination\n     * @return mixed\n     */\n    public function then(Closure $destination);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityNotFoundException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\nuse InvalidArgumentException;\n\nclass EntityNotFoundException extends InvalidArgumentException\n{\n    /**\n     * Create a new exception instance.\n     *\n     * @param  string  $type\n     * @param  mixed  $id\n     * @return void\n     */\n    public function __construct($type, $id)\n    {\n        $id = (string) $id;\n\n        parent::__construct(\"Queueable entity [{$type}] not found for ID [{$id}].\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/EntityResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface EntityResolver\n{\n    /**\n     * Resolve the entity for the given ID.\n     *\n     * @param  string  $type\n     * @param  mixed  $id\n     * @return mixed\n     */\n    public function resolve($type, $id);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface Factory\n{\n    /**\n     * Resolve a queue connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connection($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/Job.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface Job\n{\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    public function getJobId();\n\n    /**\n     * Get the decoded body of the job.\n     *\n     * @return array\n     */\n    public function payload();\n\n    /**\n     * Fire the job.\n     *\n     * @return void\n     */\n    public function fire();\n\n    /**\n     * Release the job back into the queue.\n     *\n     * Accepts a delay specified in seconds.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0);\n\n    /**\n     * Determine if the job was released back into the queue.\n     *\n     * @return bool\n     */\n    public function isReleased();\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete();\n\n    /**\n     * Determine if the job has been deleted.\n     *\n     * @return bool\n     */\n    public function isDeleted();\n\n    /**\n     * Determine if the job has been deleted or released.\n     *\n     * @return bool\n     */\n    public function isDeletedOrReleased();\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts();\n\n    /**\n     * Determine if the job has been marked as a failure.\n     *\n     * @return bool\n     */\n    public function hasFailed();\n\n    /**\n     * Mark the job as \"failed\".\n     *\n     * @return void\n     */\n    public function markAsFailed();\n\n    /**\n     * Delete the job, call the \"failed\" method, and raise the failed job event.\n     *\n     * @param  \\Throwable|null $e\n     * @return void\n     */\n    public function fail($e = null);\n\n    /**\n     * Get the number of times to attempt a job.\n     *\n     * @return int|null\n     */\n    public function maxTries();\n\n    /**\n     * Get the number of seconds the job can run.\n     *\n     * @return int|null\n     */\n    public function timeout();\n\n    /**\n     * Get the timestamp indicating when the job should timeout.\n     *\n     * @return int|null\n     */\n    public function timeoutAt();\n\n    /**\n     * Get the name of the queued job class.\n     *\n     * @return string\n     */\n    public function getName();\n\n    /**\n     * Get the resolved name of the queued job class.\n     *\n     * Resolves the name of \"wrapped\" jobs such as class-based handlers.\n     *\n     * @return string\n     */\n    public function resolveName();\n\n    /**\n     * Get the name of the connection the job belongs to.\n     *\n     * @return string\n     */\n    public function getConnectionName();\n\n    /**\n     * Get the name of the queue the job belongs to.\n     *\n     * @return string\n     */\n    public function getQueue();\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/Monitor.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface Monitor\n{\n    /**\n     * Register a callback to be executed on every iteration through the queue loop.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function looping($callback);\n\n    /**\n     * Register a callback to be executed when a job fails after the maximum amount of retries.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function failing($callback);\n\n    /**\n     * Register a callback to be executed when a daemon queue is stopping.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function stopping($callback);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/Queue.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface Queue\n{\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null);\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string|object  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null);\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $queue\n     * @param  string|object  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function pushOn($queue, $job, $data = '');\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = []);\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string|object  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null);\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  string  $queue\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string|object  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function laterOn($queue, $delay, $job, $data = '');\n\n    /**\n     * Push an array of jobs onto the queue.\n     *\n     * @param  array   $jobs\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function bulk($jobs, $data = '', $queue = null);\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null);\n\n    /**\n     * Get the connection name for the queue.\n     *\n     * @return string\n     */\n    public function getConnectionName();\n\n    /**\n     * Set the connection name for the queue.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function setConnectionName($name);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableCollection.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface QueueableCollection\n{\n    /**\n     * Get the type of the entities being queued.\n     *\n     * @return string|null\n     */\n    public function getQueueableClass();\n\n    /**\n     * Get the identifiers for all of the entities.\n     *\n     * @return array\n     */\n    public function getQueueableIds();\n\n    /**\n     * Get the relationships of the entities being queued.\n     *\n     * @return array\n     */\n    public function getQueueableRelations();\n\n    /**\n     * Get the connection of the entities being queued.\n     *\n     * @return string|null\n     */\n    public function getQueueableConnection();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/QueueableEntity.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface QueueableEntity\n{\n    /**\n     * Get the queueable identity for the entity.\n     *\n     * @return mixed\n     */\n    public function getQueueableId();\n\n    /**\n     * Get the relationships for the entity.\n     *\n     * @return array\n     */\n    public function getQueueableRelations();\n\n    /**\n     * Get the connection of the entity.\n     *\n     * @return string|null\n     */\n    public function getQueueableConnection();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Queue/ShouldQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Queue;\n\ninterface ShouldQueue\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Redis/Connection.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Redis;\n\nuse Closure;\n\ninterface Connection\n{\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function subscribe($channels, Closure $callback);\n\n    /**\n     * Subscribe to a set of given channels with wildcards.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function psubscribe($channels, Closure $callback);\n\n    /**\n     * Run a command against the Redis database.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function command($method, array $parameters = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Redis/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Redis;\n\ninterface Factory\n{\n    /**\n     * Get a Redis connection by name.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     */\n    public function connection($name = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Redis/LimiterTimeoutException.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Redis;\n\nuse Exception;\n\nclass LimiterTimeoutException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Routing/BindingRegistrar.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Routing;\n\ninterface BindingRegistrar\n{\n    /**\n     * Add a new route parameter binder.\n     *\n     * @param  string  $key\n     * @param  string|callable  $binder\n     * @return void\n     */\n    public function bind($key, $binder);\n\n    /**\n     * Get the binding callback for a given binding.\n     *\n     * @param  string  $key\n     * @return \\Closure\n     */\n    public function getBindingCallback($key);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Routing/Registrar.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Routing;\n\ninterface Registrar\n{\n    /**\n     * Register a new GET route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function get($uri, $action);\n\n    /**\n     * Register a new POST route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function post($uri, $action);\n\n    /**\n     * Register a new PUT route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function put($uri, $action);\n\n    /**\n     * Register a new DELETE route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function delete($uri, $action);\n\n    /**\n     * Register a new PATCH route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function patch($uri, $action);\n\n    /**\n     * Register a new OPTIONS route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function options($uri, $action);\n\n    /**\n     * Register a new route with the given verbs.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function match($methods, $uri, $action);\n\n    /**\n     * Route a resource to a controller.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function resource($name, $controller, array $options = []);\n\n    /**\n     * Create a route group with shared attributes.\n     *\n     * @param  array  $attributes\n     * @param  \\Closure|string  $routes\n     * @return void\n     */\n    public function group(array $attributes, $routes);\n\n    /**\n     * Substitute the route bindings onto the route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function substituteBindings($route);\n\n    /**\n     * Substitute the implicit Eloquent model bindings for the route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    public function substituteImplicitBindings($route);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Routing/ResponseFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Routing;\n\ninterface ResponseFactory\n{\n    /**\n     * Create a new response instance.\n     *\n     * @param  string  $content\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function make($content = '', $status = 200, array $headers = []);\n\n    /**\n     * Create a new \"no content\" response.\n     *\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function noContent($status = 204, array $headers = []);\n\n    /**\n     * Create a new response for a given view.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function view($view, $data = [], $status = 200, array $headers = []);\n\n    /**\n     * Create a new JSON response instance.\n     *\n     * @param  string|array|object  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  int  $options\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function json($data = [], $status = 200, array $headers = [], $options = 0);\n\n    /**\n     * Create a new JSONP response instance.\n     *\n     * @param  string  $callback\n     * @param  string|array|object  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  int  $options\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0);\n\n    /**\n     * Create a new streamed response instance.\n     *\n     * @param  \\Closure  $callback\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function stream($callback, $status = 200, array $headers = []);\n\n    /**\n     * Create a new streamed response instance as a file download.\n     *\n     * @param  \\Closure  $callback\n     * @param  string|null  $name\n     * @param  array  $headers\n     * @param  string|null  $disposition\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function streamDownload($callback, $name = null, array $headers = [], $disposition = 'attachment');\n\n    /**\n     * Create a new file download response.\n     *\n     * @param  \\SplFileInfo|string  $file\n     * @param  string|null  $name\n     * @param  array  $headers\n     * @param  string|null  $disposition\n     * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n     */\n    public function download($file, $name = null, array $headers = [], $disposition = 'attachment');\n\n    /**\n     * Return the raw contents of a binary file.\n     *\n     * @param  \\SplFileInfo|string  $file\n     * @param  array  $headers\n     * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n     */\n    public function file($file, array $headers = []);\n\n    /**\n     * Create a new redirect response to the given path.\n     *\n     * @param  string  $path\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectTo($path, $status = 302, $headers = [], $secure = null);\n\n    /**\n     * Create a new redirect response to a named route.\n     *\n     * @param  string  $route\n     * @param  array  $parameters\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToRoute($route, $parameters = [], $status = 302, $headers = []);\n\n    /**\n     * Create a new redirect response to a controller action.\n     *\n     * @param  string  $action\n     * @param  array  $parameters\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToAction($action, $parameters = [], $status = 302, $headers = []);\n\n    /**\n     * Create a new redirect response, while putting the current URL in the session.\n     *\n     * @param  string  $path\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectGuest($path, $status = 302, $headers = [], $secure = null);\n\n    /**\n     * Create a new redirect response to the previously intended location.\n     *\n     * @param  string  $default\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlGenerator.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Routing;\n\ninterface UrlGenerator\n{\n    /**\n     * Get the current URL for the request.\n     *\n     * @return string\n     */\n    public function current();\n\n    /**\n     * Get the URL for the previous request.\n     *\n     * @param  mixed  $fallback\n     * @return string\n     */\n    public function previous($fallback = false);\n\n    /**\n     * Generate an absolute URL to the given path.\n     *\n     * @param  string  $path\n     * @param  mixed  $extra\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function to($path, $extra = [], $secure = null);\n\n    /**\n     * Generate a secure, absolute URL to the given path.\n     *\n     * @param  string  $path\n     * @param  array   $parameters\n     * @return string\n     */\n    public function secure($path, $parameters = []);\n\n    /**\n     * Generate the URL to an application asset.\n     *\n     * @param  string  $path\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function asset($path, $secure = null);\n\n    /**\n     * Get the URL to a named route.\n     *\n     * @param  string  $name\n     * @param  mixed   $parameters\n     * @param  bool  $absolute\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function route($name, $parameters = [], $absolute = true);\n\n    /**\n     * Get the URL to a controller action.\n     *\n     * @param  string|array  $action\n     * @param  mixed $parameters\n     * @param  bool $absolute\n     * @return string\n     */\n    public function action($action, $parameters = [], $absolute = true);\n\n    /**\n     * Set the root controller namespace.\n     *\n     * @param  string  $rootNamespace\n     * @return $this\n     */\n    public function setRootControllerNamespace($rootNamespace);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Routing/UrlRoutable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Routing;\n\ninterface UrlRoutable\n{\n    /**\n     * Get the value of the model's route key.\n     *\n     * @return mixed\n     */\n    public function getRouteKey();\n\n    /**\n     * Get the route key for the model.\n     *\n     * @return string\n     */\n    public function getRouteKeyName();\n\n    /**\n     * Retrieve the model for a bound value.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Eloquent\\Model|null\n     */\n    public function resolveRouteBinding($value);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Session/Session.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Session;\n\ninterface Session\n{\n    /**\n     * Get the name of the session.\n     *\n     * @return string\n     */\n    public function getName();\n\n    /**\n     * Get the current session ID.\n     *\n     * @return string\n     */\n    public function getId();\n\n    /**\n     * Set the session ID.\n     *\n     * @param  string  $id\n     * @return void\n     */\n    public function setId($id);\n\n    /**\n     * Start the session, reading the data from a handler.\n     *\n     * @return bool\n     */\n    public function start();\n\n    /**\n     * Save the session data to storage.\n     *\n     * @return void\n     */\n    public function save();\n\n    /**\n     * Get all of the session data.\n     *\n     * @return array\n     */\n    public function all();\n\n    /**\n     * Checks if a key exists.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function exists($key);\n\n    /**\n     * Checks if an a key is present and not null.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function has($key);\n\n    /**\n     * Get an item from the session.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function get($key, $default = null);\n\n    /**\n     * Put a key / value pair or array of key / value pairs in the session.\n     *\n     * @param  string|array  $key\n     * @param  mixed       $value\n     * @return void\n     */\n    public function put($key, $value = null);\n\n    /**\n     * Get the CSRF token value.\n     *\n     * @return string\n     */\n    public function token();\n\n    /**\n     * Remove an item from the session, returning its value.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function remove($key);\n\n    /**\n     * Remove one or many items from the session.\n     *\n     * @param  string|array  $keys\n     * @return void\n     */\n    public function forget($keys);\n\n    /**\n     * Remove all of the items from the session.\n     *\n     * @return void\n     */\n    public function flush();\n\n    /**\n     * Generate a new session ID for the session.\n     *\n     * @param  bool  $destroy\n     * @return bool\n     */\n    public function migrate($destroy = false);\n\n    /**\n     * Determine if the session has been started.\n     *\n     * @return bool\n     */\n    public function isStarted();\n\n    /**\n     * Get the previous URL from the session.\n     *\n     * @return string|null\n     */\n    public function previousUrl();\n\n    /**\n     * Set the \"previous\" URL in the session.\n     *\n     * @param  string  $url\n     * @return void\n     */\n    public function setPreviousUrl($url);\n\n    /**\n     * Get the session handler instance.\n     *\n     * @return \\SessionHandlerInterface\n     */\n    public function getHandler();\n\n    /**\n     * Determine if the session handler needs a request.\n     *\n     * @return bool\n     */\n    public function handlerNeedsRequest();\n\n    /**\n     * Set the request on the handler instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function setRequestOnHandler($request);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/Arrayable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface Arrayable\n{\n    /**\n     * Get the instance as an array.\n     *\n     * @return array\n     */\n    public function toArray();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/DeferrableProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface DeferrableProvider\n{\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/Htmlable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface Htmlable\n{\n    /**\n     * Get content as a string of HTML.\n     *\n     * @return string\n     */\n    public function toHtml();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/Jsonable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface Jsonable\n{\n    /**\n     * Convert the object to its JSON representation.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageBag.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface MessageBag extends Arrayable\n{\n    /**\n     * Get the keys present in the message bag.\n     *\n     * @return array\n     */\n    public function keys();\n\n    /**\n     * Add a message to the bag.\n     *\n     * @param  string  $key\n     * @param  string  $message\n     * @return $this\n     */\n    public function add($key, $message);\n\n    /**\n     * Merge a new array of messages into the bag.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array  $messages\n     * @return $this\n     */\n    public function merge($messages);\n\n    /**\n     * Determine if messages exist for a given key.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function has($key);\n\n    /**\n     * Get the first message from the bag for a given key.\n     *\n     * @param  string|null  $key\n     * @param  string|null  $format\n     * @return string\n     */\n    public function first($key = null, $format = null);\n\n    /**\n     * Get all of the messages from the bag for a given key.\n     *\n     * @param  string  $key\n     * @param  string|null  $format\n     * @return array\n     */\n    public function get($key, $format = null);\n\n    /**\n     * Get all of the messages for every key in the bag.\n     *\n     * @param  string|null  $format\n     * @return array\n     */\n    public function all($format = null);\n\n    /**\n     * Get the raw messages in the container.\n     *\n     * @return array\n     */\n    public function getMessages();\n\n    /**\n     * Get the default message format.\n     *\n     * @return string\n     */\n    public function getFormat();\n\n    /**\n     * Set the default message format.\n     *\n     * @param  string  $format\n     * @return $this\n     */\n    public function setFormat($format = ':message');\n\n    /**\n     * Determine if the message bag has any messages.\n     *\n     * @return bool\n     */\n    public function isEmpty();\n\n    /**\n     * Determine if the message bag has any messages.\n     *\n     * @return bool\n     */\n    public function isNotEmpty();\n\n    /**\n     * Get the number of messages in the container.\n     *\n     * @return int\n     */\n    public function count();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/MessageProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface MessageProvider\n{\n    /**\n     * Get the messages for the instance.\n     *\n     * @return \\Illuminate\\Contracts\\Support\\MessageBag\n     */\n    public function getMessageBag();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/Renderable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface Renderable\n{\n    /**\n     * Get the evaluated contents of the object.\n     *\n     * @return string\n     */\n    public function render();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Support/Responsable.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Support;\n\ninterface Responsable\n{\n    /**\n     * Create an HTTP response that represents the object.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function toResponse($request);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Translation/HasLocalePreference.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Translation;\n\ninterface HasLocalePreference\n{\n    /**\n     * Get the preferred locale of the entity.\n     *\n     * @return string|null\n     */\n    public function preferredLocale();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Translation/Loader.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Translation;\n\ninterface Loader\n{\n    /**\n     * Load the messages for the given locale.\n     *\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  string|null  $namespace\n     * @return array\n     */\n    public function load($locale, $group, $namespace = null);\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string  $hint\n     * @return void\n     */\n    public function addNamespace($namespace, $hint);\n\n    /**\n     * Add a new JSON path to the loader.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function addJsonPath($path);\n\n    /**\n     * Get an array of all the registered namespaces.\n     *\n     * @return array\n     */\n    public function namespaces();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Translation/Translator.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Translation;\n\ninterface Translator\n{\n    /**\n     * Get the translation for a given key.\n     *\n     * @param  string  $key\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return mixed\n     */\n    public function trans($key, array $replace = [], $locale = null);\n\n    /**\n     * Get a translation according to an integer value.\n     *\n     * @param  string  $key\n     * @param  int|array|\\Countable  $number\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return string\n     */\n    public function transChoice($key, $number, array $replace = [], $locale = null);\n\n    /**\n     * Get the default locale being used.\n     *\n     * @return string\n     */\n    public function getLocale();\n\n    /**\n     * Set the default locale.\n     *\n     * @param  string  $locale\n     * @return void\n     */\n    public function setLocale($locale);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Validation/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Validation;\n\ninterface Factory\n{\n    /**\n     * Create a new Validator instance.\n     *\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    public function make(array $data, array $rules, array $messages = [], array $customAttributes = []);\n\n    /**\n     * Register a custom validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @param  string|null  $message\n     * @return void\n     */\n    public function extend($rule, $extension, $message = null);\n\n    /**\n     * Register a custom implicit validator extension.\n     *\n     * @param  string   $rule\n     * @param  \\Closure|string  $extension\n     * @param  string|null  $message\n     * @return void\n     */\n    public function extendImplicit($rule, $extension, $message = null);\n\n    /**\n     * Register a custom implicit validator message replacer.\n     *\n     * @param  string   $rule\n     * @param  \\Closure|string  $replacer\n     * @return void\n     */\n    public function replacer($rule, $replacer);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Validation/ImplicitRule.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Validation;\n\ninterface ImplicitRule extends Rule\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Validation/Rule.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Validation;\n\ninterface Rule\n{\n    /**\n     * Determine if the validation rule passes.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function passes($attribute, $value);\n\n    /**\n     * Get the validation error message.\n     *\n     * @return string|array\n     */\n    public function message();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Validation/ValidatesWhenResolved.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Validation;\n\ninterface ValidatesWhenResolved\n{\n    /**\n     * Validate the given class instance.\n     *\n     * @return void\n     */\n    public function validateResolved();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/Validation/Validator.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\Validation;\n\nuse Illuminate\\Contracts\\Support\\MessageProvider;\n\ninterface Validator extends MessageProvider\n{\n    /**\n     * Run the validator's rules against its data.\n     *\n     * @return array\n     */\n    public function validate();\n\n    /**\n     * Get the attributes and values that were validated.\n     *\n     * @return array\n     */\n    public function validated();\n\n    /**\n     * Determine if the data fails the validation rules.\n     *\n     * @return bool\n     */\n    public function fails();\n\n    /**\n     * Get the failed validation rules.\n     *\n     * @return array\n     */\n    public function failed();\n\n    /**\n     * Add conditions to a given field based on a Closure.\n     *\n     * @param  string|array  $attribute\n     * @param  string|array  $rules\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function sometimes($attribute, $rules, callable $callback);\n\n    /**\n     * Add an after validation callback.\n     *\n     * @param  callable|string  $callback\n     * @return $this\n     */\n    public function after($callback);\n\n    /**\n     * Get all of the validation error messages.\n     *\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function errors();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/View/Engine.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\View;\n\ninterface Engine\n{\n    /**\n     * Get the evaluated contents of the view.\n     *\n     * @param  string  $path\n     * @param  array   $data\n     * @return string\n     */\n    public function get($path, array $data = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/View/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\View;\n\ninterface Factory\n{\n    /**\n     * Determine if a given view exists.\n     *\n     * @param  string  $view\n     * @return bool\n     */\n    public function exists($view);\n\n    /**\n     * Get the evaluated view contents for the given path.\n     *\n     * @param  string  $path\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $data\n     * @param  array  $mergeData\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    public function file($path, $data = [], $mergeData = []);\n\n    /**\n     * Get the evaluated view contents for the given view.\n     *\n     * @param  string  $view\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $data\n     * @param  array  $mergeData\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    public function make($view, $data = [], $mergeData = []);\n\n    /**\n     * Add a piece of shared data to the environment.\n     *\n     * @param  array|string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    public function share($key, $value = null);\n\n    /**\n     * Register a view composer event.\n     *\n     * @param  array|string  $views\n     * @param  \\Closure|string  $callback\n     * @return array\n     */\n    public function composer($views, $callback);\n\n    /**\n     * Register a view creator event.\n     *\n     * @param  array|string  $views\n     * @param  \\Closure|string  $callback\n     * @return array\n     */\n    public function creator($views, $callback);\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return $this\n     */\n    public function addNamespace($namespace, $hints);\n\n    /**\n     * Replace the namespace hints for the given namespace.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return $this\n     */\n    public function replaceNamespace($namespace, $hints);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/View/View.php",
    "content": "<?php\n\nnamespace Illuminate\\Contracts\\View;\n\nuse Illuminate\\Contracts\\Support\\Renderable;\n\ninterface View extends Renderable\n{\n    /**\n     * Get the name of the view.\n     *\n     * @return string\n     */\n    public function name();\n\n    /**\n     * Add a piece of data to the view.\n     *\n     * @param  string|array  $key\n     * @param  mixed   $value\n     * @return $this\n     */\n    public function with($key, $value = null);\n\n    /**\n     * Get the array of view data.\n     *\n     * @return array\n     */\n    public function getData();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Contracts/composer.json",
    "content": "{\n    \"name\": \"illuminate/contracts\",\n    \"description\": \"The Illuminate Contracts package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"psr/container\": \"^1.0\",\n        \"psr/simple-cache\": \"^1.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Contracts\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/CookieJar.php",
    "content": "<?php\n\nnamespace Illuminate\\Cookie;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Symfony\\Component\\HttpFoundation\\Cookie;\nuse Illuminate\\Contracts\\Cookie\\QueueingFactory as JarContract;\n\nclass CookieJar implements JarContract\n{\n    use InteractsWithTime, Macroable;\n\n    /**\n     * The default path (if specified).\n     *\n     * @var string\n     */\n    protected $path = '/';\n\n    /**\n     * The default domain (if specified).\n     *\n     * @var string\n     */\n    protected $domain;\n\n    /**\n     * The default secure setting (defaults to false).\n     *\n     * @var bool\n     */\n    protected $secure = false;\n\n    /**\n     * The default SameSite option (if specified).\n     *\n     * @var string\n     */\n    protected $sameSite;\n\n    /**\n     * All of the cookies queued for sending.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\Cookie[]\n     */\n    protected $queued = [];\n\n    /**\n     * Create a new cookie instance.\n     *\n     * @param  string       $name\n     * @param  string       $value\n     * @param  int          $minutes\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @param  bool|null    $secure\n     * @param  bool         $httpOnly\n     * @param  bool         $raw\n     * @param  string|null  $sameSite\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n    {\n        [$path, $domain, $secure, $sameSite] = $this->getPathAndDomain($path, $domain, $secure, $sameSite);\n\n        $time = ($minutes == 0) ? 0 : $this->availableAt($minutes * 60);\n\n        return new Cookie($name, $value, $time, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n    }\n\n    /**\n     * Create a cookie that lasts \"forever\" (five years).\n     *\n     * @param  string       $name\n     * @param  string       $value\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @param  bool|null    $secure\n     * @param  bool         $httpOnly\n     * @param  bool         $raw\n     * @param  string|null  $sameSite\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null)\n    {\n        return $this->make($name, $value, 2628000, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n    }\n\n    /**\n     * Expire the given cookie.\n     *\n     * @param  string  $name\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function forget($name, $path = null, $domain = null)\n    {\n        return $this->make($name, null, -2628000, $path, $domain);\n    }\n\n    /**\n     * Determine if a cookie has been queued.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasQueued($key)\n    {\n        return ! is_null($this->queued($key));\n    }\n\n    /**\n     * Get a queued cookie instance.\n     *\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    public function queued($key, $default = null)\n    {\n        return Arr::get($this->queued, $key, $default);\n    }\n\n    /**\n     * Queue a cookie to send with the next response.\n     *\n     * @param  array  $parameters\n     * @return void\n     */\n    public function queue(...$parameters)\n    {\n        if (head($parameters) instanceof Cookie) {\n            $cookie = head($parameters);\n        } else {\n            $cookie = call_user_func_array([$this, 'make'], $parameters);\n        }\n\n        $this->queued[$cookie->getName()] = $cookie;\n    }\n\n    /**\n     * Remove a cookie from the queue.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function unqueue($name)\n    {\n        unset($this->queued[$name]);\n    }\n\n    /**\n     * Get the path and domain, or the default values.\n     *\n     * @param  string    $path\n     * @param  string    $domain\n     * @param  bool|null $secure\n     * @param  string|null  $sameSite\n     * @return array\n     */\n    protected function getPathAndDomain($path, $domain, $secure = null, $sameSite = null)\n    {\n        return [$path ?: $this->path, $domain ?: $this->domain, is_bool($secure) ? $secure : $this->secure, $sameSite ?: $this->sameSite];\n    }\n\n    /**\n     * Set the default path and domain for the jar.\n     *\n     * @param  string  $path\n     * @param  string  $domain\n     * @param  bool    $secure\n     * @param  string|null  $sameSite\n     * @return $this\n     */\n    public function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null)\n    {\n        [$this->path, $this->domain, $this->secure, $this->sameSite] = [$path, $domain, $secure, $sameSite];\n\n        return $this;\n    }\n\n    /**\n     * Get the cookies which have been queued for the next request.\n     *\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie[]\n     */\n    public function getQueuedCookies()\n    {\n        return $this->queued;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/CookieServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Cookie;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass CookieServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('cookie', function ($app) {\n            $config = $app->make('config')->get('session');\n\n            return (new CookieJar)->setDefaultPathAndDomain(\n                $config['path'], $config['domain'], $config['secure'], $config['same_site'] ?? null\n            );\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Cookie\\Middleware;\n\nuse Closure;\nuse Illuminate\\Contracts\\Cookie\\QueueingFactory as CookieJar;\n\nclass AddQueuedCookiesToResponse\n{\n    /**\n     * The cookie jar instance.\n     *\n     * @var \\Illuminate\\Contracts\\Cookie\\QueueingFactory\n     */\n    protected $cookies;\n\n    /**\n     * Create a new CookieQueue instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cookie\\QueueingFactory  $cookies\n     * @return void\n     */\n    public function __construct(CookieJar $cookies)\n    {\n        $this->cookies = $cookies;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        foreach ($this->cookies->getQueuedCookies() as $cookie) {\n            $response->headers->setCookie($cookie);\n        }\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php",
    "content": "<?php\n\nnamespace Illuminate\\Cookie\\Middleware;\n\nuse Closure;\nuse Symfony\\Component\\HttpFoundation\\Cookie;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Illuminate\\Contracts\\Encryption\\DecryptException;\nuse Illuminate\\Contracts\\Encryption\\Encrypter as EncrypterContract;\n\nclass EncryptCookies\n{\n    /**\n     * The encrypter instance.\n     *\n     * @var \\Illuminate\\Contracts\\Encryption\\Encrypter\n     */\n    protected $encrypter;\n\n    /**\n     * The names of the cookies that should not be encrypted.\n     *\n     * @var array\n     */\n    protected $except = [];\n\n    /**\n     * Indicates if cookies should be serialized.\n     *\n     * @var bool\n     */\n    protected static $serialize = false;\n\n    /**\n     * Create a new CookieGuard instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Encryption\\Encrypter  $encrypter\n     * @return void\n     */\n    public function __construct(EncrypterContract $encrypter)\n    {\n        $this->encrypter = $encrypter;\n    }\n\n    /**\n     * Disable encryption for the given cookie name(s).\n     *\n     * @param  string|array  $name\n     * @return void\n     */\n    public function disableFor($name)\n    {\n        $this->except = array_merge($this->except, (array) $name);\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function handle($request, Closure $next)\n    {\n        return $this->encrypt($next($this->decrypt($request)));\n    }\n\n    /**\n     * Decrypt the cookies on the request.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @return \\Symfony\\Component\\HttpFoundation\\Request\n     */\n    protected function decrypt(Request $request)\n    {\n        foreach ($request->cookies as $key => $cookie) {\n            if ($this->isDisabled($key)) {\n                continue;\n            }\n\n            try {\n                $request->cookies->set($key, $this->decryptCookie($key, $cookie));\n            } catch (DecryptException $e) {\n                $request->cookies->set($key, null);\n            }\n        }\n\n        return $request;\n    }\n\n    /**\n     * Decrypt the given cookie and return the value.\n     *\n     * @param  string  $name\n     * @param  string|array  $cookie\n     * @return string|array\n     */\n    protected function decryptCookie($name, $cookie)\n    {\n        return is_array($cookie)\n                        ? $this->decryptArray($cookie)\n                        : $this->encrypter->decrypt($cookie, static::serialized($name));\n    }\n\n    /**\n     * Decrypt an array based cookie.\n     *\n     * @param  array  $cookie\n     * @return array\n     */\n    protected function decryptArray(array $cookie)\n    {\n        $decrypted = [];\n\n        foreach ($cookie as $key => $value) {\n            if (is_string($value)) {\n                $decrypted[$key] = $this->encrypter->decrypt($value, static::serialized($key));\n            }\n        }\n\n        return $decrypted;\n    }\n\n    /**\n     * Encrypt the cookies on an outgoing response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function encrypt(Response $response)\n    {\n        foreach ($response->headers->getCookies() as $cookie) {\n            if ($this->isDisabled($cookie->getName())) {\n                continue;\n            }\n\n            $response->headers->setCookie($this->duplicate(\n                $cookie, $this->encrypter->encrypt($cookie->getValue(), static::serialized($cookie->getName()))\n            ));\n        }\n\n        return $response;\n    }\n\n    /**\n     * Duplicate a cookie with a new value.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Cookie  $cookie\n     * @param  mixed  $value\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    protected function duplicate(Cookie $cookie, $value)\n    {\n        return new Cookie(\n            $cookie->getName(), $value, $cookie->getExpiresTime(),\n            $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(),\n            $cookie->isHttpOnly(), $cookie->isRaw(), $cookie->getSameSite()\n        );\n    }\n\n    /**\n     * Determine whether encryption has been disabled for the given cookie.\n     *\n     * @param  string $name\n     * @return bool\n     */\n    public function isDisabled($name)\n    {\n        return in_array($name, $this->except);\n    }\n\n    /**\n     * Determine if the cookie contents should be serialized.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public static function serialized($name)\n    {\n        return static::$serialize;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Cookie/composer.json",
    "content": "{\n    \"name\": \"illuminate/cookie\",\n    \"description\": \"The Illuminate Cookie package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/http-foundation\": \"^4.2\",\n        \"symfony/http-kernel\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Cookie\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Capsule/Manager.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Capsule;\n\nuse PDO;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Database\\DatabaseManager;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Support\\Traits\\CapsuleManagerTrait;\nuse Illuminate\\Database\\Eloquent\\Model as Eloquent;\nuse Illuminate\\Database\\Connectors\\ConnectionFactory;\n\nclass Manager\n{\n    use CapsuleManagerTrait;\n\n    /**\n     * The database manager instance.\n     *\n     * @var \\Illuminate\\Database\\DatabaseManager\n     */\n    protected $manager;\n\n    /**\n     * Create a new database capsule manager.\n     *\n     * @param  \\Illuminate\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Container $container = null)\n    {\n        $this->setupContainer($container ?: new Container);\n\n        // Once we have the container setup, we will setup the default configuration\n        // options in the container \"config\" binding. This will make the database\n        // manager work correctly out of the box without extreme configuration.\n        $this->setupDefaultConfiguration();\n\n        $this->setupManager();\n    }\n\n    /**\n     * Setup the default database configuration options.\n     *\n     * @return void\n     */\n    protected function setupDefaultConfiguration()\n    {\n        $this->container['config']['database.fetch'] = PDO::FETCH_OBJ;\n\n        $this->container['config']['database.default'] = 'default';\n    }\n\n    /**\n     * Build the database manager instance.\n     *\n     * @return void\n     */\n    protected function setupManager()\n    {\n        $factory = new ConnectionFactory($this->container);\n\n        $this->manager = new DatabaseManager($this->container, $factory);\n    }\n\n    /**\n     * Get a connection instance from the global manager.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public static function connection($connection = null)\n    {\n        return static::$instance->getConnection($connection);\n    }\n\n    /**\n     * Get a fluent query builder instance.\n     *\n     * @param  string  $table\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public static function table($table, $connection = null)\n    {\n        return static::$instance->connection($connection)->table($table);\n    }\n\n    /**\n     * Get a schema builder instance.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Schema\\Builder\n     */\n    public static function schema($connection = null)\n    {\n        return static::$instance->connection($connection)->getSchemaBuilder();\n    }\n\n    /**\n     * Get a registered connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function getConnection($name = null)\n    {\n        return $this->manager->connection($name);\n    }\n\n    /**\n     * Register a connection with the manager.\n     *\n     * @param  array   $config\n     * @param  string  $name\n     * @return void\n     */\n    public function addConnection(array $config, $name = 'default')\n    {\n        $connections = $this->container['config']['database.connections'];\n\n        $connections[$name] = $config;\n\n        $this->container['config']['database.connections'] = $connections;\n    }\n\n    /**\n     * Bootstrap Eloquent so it is ready for usage.\n     *\n     * @return void\n     */\n    public function bootEloquent()\n    {\n        Eloquent::setConnectionResolver($this->manager);\n\n        // If we have an event dispatcher instance, we will go ahead and register it\n        // with the Eloquent ORM, allowing for model callbacks while creating and\n        // updating \"model\" instances; however, it is not necessary to operate.\n        if ($dispatcher = $this->getEventDispatcher()) {\n            Eloquent::setEventDispatcher($dispatcher);\n        }\n    }\n\n    /**\n     * Set the fetch mode for the database connections.\n     *\n     * @param  int  $fetchMode\n     * @return $this\n     */\n    public function setFetchMode($fetchMode)\n    {\n        $this->container['config']['database.fetch'] = $fetchMode;\n\n        return $this;\n    }\n\n    /**\n     * Get the database manager instance.\n     *\n     * @return \\Illuminate\\Database\\DatabaseManager\n     */\n    public function getDatabaseManager()\n    {\n        return $this->manager;\n    }\n\n    /**\n     * Get the current event dispatcher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher|null\n     */\n    public function getEventDispatcher()\n    {\n        if ($this->container->bound('events')) {\n            return $this->container['events'];\n        }\n    }\n\n    /**\n     * Set the event dispatcher instance to be used by connections.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $dispatcher\n     * @return void\n     */\n    public function setEventDispatcher(Dispatcher $dispatcher)\n    {\n        $this->container->instance('events', $dispatcher);\n    }\n\n    /**\n     * Dynamically pass methods to the default connection.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        return static::connection()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Concerns/BuildsQueries.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Concerns;\n\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Pagination\\Paginator;\nuse Illuminate\\Pagination\\LengthAwarePaginator;\n\ntrait BuildsQueries\n{\n    /**\n     * Chunk the results of the query.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @return bool\n     */\n    public function chunk($count, callable $callback)\n    {\n        $this->enforceOrderBy();\n\n        $page = 1;\n\n        do {\n            // We'll execute the query for the given page and get the results. If there are\n            // no results we can just break and return from here. When there are results\n            // we will call the callback with the current chunk of these results here.\n            $results = $this->forPage($page, $count)->get();\n\n            $countResults = $results->count();\n\n            if ($countResults == 0) {\n                break;\n            }\n\n            // On each chunk result set, we will pass them to the callback and then let the\n            // developer take care of everything within the callback, which allows us to\n            // keep the memory low for spinning through large result sets for working.\n            if ($callback($results, $page) === false) {\n                return false;\n            }\n\n            unset($results);\n\n            $page++;\n        } while ($countResults == $count);\n\n        return true;\n    }\n\n    /**\n     * Execute a callback over each item while chunking.\n     *\n     * @param  callable  $callback\n     * @param  int  $count\n     * @return bool\n     */\n    public function each(callable $callback, $count = 1000)\n    {\n        return $this->chunk($count, function ($results) use ($callback) {\n            foreach ($results as $key => $value) {\n                if ($callback($value, $key) === false) {\n                    return false;\n                }\n            }\n        });\n    }\n\n    /**\n     * Execute the query and get the first result.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|object|static|null\n     */\n    public function first($columns = ['*'])\n    {\n        return $this->take(1)->get($columns)->first();\n    }\n\n    /**\n     * Apply the callback's query changes if the given \"value\" is true.\n     *\n     * @param  mixed  $value\n     * @param  callable  $callback\n     * @param  callable|null  $default\n     * @return mixed|$this\n     */\n    public function when($value, $callback, $default = null)\n    {\n        if ($value) {\n            return $callback($this, $value) ?: $this;\n        } elseif ($default) {\n            return $default($this, $value) ?: $this;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Pass the query to a given callback.\n     *\n     * @param  callable  $callback\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function tap($callback)\n    {\n        return $this->when(true, $callback);\n    }\n\n    /**\n     * Apply the callback's query changes if the given \"value\" is false.\n     *\n     * @param  mixed  $value\n     * @param  callable  $callback\n     * @param  callable|null  $default\n     * @return mixed|$this\n     */\n    public function unless($value, $callback, $default = null)\n    {\n        if (! $value) {\n            return $callback($this, $value) ?: $this;\n        } elseif ($default) {\n            return $default($this, $value) ?: $this;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Create a new length-aware paginator instance.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $items\n     * @param  int  $total\n     * @param  int  $perPage\n     * @param  int  $currentPage\n     * @param  array  $options\n     * @return \\Illuminate\\Pagination\\LengthAwarePaginator\n     */\n    protected function paginator($items, $total, $perPage, $currentPage, $options)\n    {\n        return Container::getInstance()->makeWith(LengthAwarePaginator::class, compact(\n            'items', 'total', 'perPage', 'currentPage', 'options'\n        ));\n    }\n\n    /**\n     * Create a new simple paginator instance.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $items\n     * @param  int $perPage\n     * @param  int $currentPage\n     * @param  array  $options\n     * @return \\Illuminate\\Pagination\\Paginator\n     */\n    protected function simplePaginator($items, $perPage, $currentPage, $options)\n    {\n        return Container::getInstance()->makeWith(Paginator::class, compact(\n            'items', 'perPage', 'currentPage', 'options'\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Concerns/ManagesTransactions.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Concerns;\n\nuse Closure;\nuse Exception;\nuse Throwable;\n\ntrait ManagesTransactions\n{\n    /**\n     * Execute a Closure within a transaction.\n     *\n     * @param  \\Closure  $callback\n     * @param  int  $attempts\n     * @return mixed\n     *\n     * @throws \\Exception|\\Throwable\n     */\n    public function transaction(Closure $callback, $attempts = 1)\n    {\n        for ($currentAttempt = 1; $currentAttempt <= $attempts; $currentAttempt++) {\n            $this->beginTransaction();\n\n            // We'll simply execute the given callback within a try / catch block and if we\n            // catch any exception we can rollback this transaction so that none of this\n            // gets actually persisted to a database or stored in a permanent fashion.\n            try {\n                return tap($callback($this), function () {\n                    $this->commit();\n                });\n            }\n\n            // If we catch an exception we'll rollback this transaction and try again if we\n            // are not out of attempts. If we are out of attempts we will just throw the\n            // exception back out and let the developer handle an uncaught exceptions.\n            catch (Exception $e) {\n                $this->handleTransactionException(\n                    $e, $currentAttempt, $attempts\n                );\n            } catch (Throwable $e) {\n                $this->rollBack();\n\n                throw $e;\n            }\n        }\n    }\n\n    /**\n     * Handle an exception encountered when running a transacted statement.\n     *\n     * @param  \\Exception  $e\n     * @param  int  $currentAttempt\n     * @param  int  $maxAttempts\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleTransactionException($e, $currentAttempt, $maxAttempts)\n    {\n        // On a deadlock, MySQL rolls back the entire transaction so we can't just\n        // retry the query. We have to throw this exception all the way out and\n        // let the developer handle it in another way. We will decrement too.\n        if ($this->causedByDeadlock($e) &&\n            $this->transactions > 1) {\n            $this->transactions--;\n\n            throw $e;\n        }\n\n        // If there was an exception we will rollback this transaction and then we\n        // can check if we have exceeded the maximum attempt count for this and\n        // if we haven't we will return and try this query again in our loop.\n        $this->rollBack();\n\n        if ($this->causedByDeadlock($e) &&\n            $currentAttempt < $maxAttempts) {\n            return;\n        }\n\n        throw $e;\n    }\n\n    /**\n     * Start a new database transaction.\n     *\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    public function beginTransaction()\n    {\n        $this->createTransaction();\n\n        $this->transactions++;\n\n        $this->fireConnectionEvent('beganTransaction');\n    }\n\n    /**\n     * Create a transaction within the database.\n     *\n     * @return void\n     */\n    protected function createTransaction()\n    {\n        if ($this->transactions == 0) {\n            try {\n                $this->getPdo()->beginTransaction();\n            } catch (Exception $e) {\n                $this->handleBeginTransactionException($e);\n            }\n        } elseif ($this->transactions >= 1 && $this->queryGrammar->supportsSavepoints()) {\n            $this->createSavepoint();\n        }\n    }\n\n    /**\n     * Create a save point within the database.\n     *\n     * @return void\n     */\n    protected function createSavepoint()\n    {\n        $this->getPdo()->exec(\n            $this->queryGrammar->compileSavepoint('trans'.($this->transactions + 1))\n        );\n    }\n\n    /**\n     * Handle an exception from a transaction beginning.\n     *\n     * @param  \\Throwable  $e\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleBeginTransactionException($e)\n    {\n        if ($this->causedByLostConnection($e)) {\n            $this->reconnect();\n\n            $this->pdo->beginTransaction();\n        } else {\n            throw $e;\n        }\n    }\n\n    /**\n     * Commit the active database transaction.\n     *\n     * @return void\n     */\n    public function commit()\n    {\n        if ($this->transactions == 1) {\n            $this->getPdo()->commit();\n        }\n\n        $this->transactions = max(0, $this->transactions - 1);\n\n        $this->fireConnectionEvent('committed');\n    }\n\n    /**\n     * Rollback the active database transaction.\n     *\n     * @param  int|null  $toLevel\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    public function rollBack($toLevel = null)\n    {\n        // We allow developers to rollback to a certain transaction level. We will verify\n        // that this given transaction level is valid before attempting to rollback to\n        // that level. If it's not we will just return out and not attempt anything.\n        $toLevel = is_null($toLevel)\n                    ? $this->transactions - 1\n                    : $toLevel;\n\n        if ($toLevel < 0 || $toLevel >= $this->transactions) {\n            return;\n        }\n\n        // Next, we will actually perform this rollback within this database and fire the\n        // rollback event. We will also set the current transaction level to the given\n        // level that was passed into this method so it will be right from here out.\n        try {\n            $this->performRollBack($toLevel);\n        } catch (Exception $e) {\n            $this->handleRollBackException($e);\n        }\n\n        $this->transactions = $toLevel;\n\n        $this->fireConnectionEvent('rollingBack');\n    }\n\n    /**\n     * Perform a rollback within the database.\n     *\n     * @param  int  $toLevel\n     * @return void\n     */\n    protected function performRollBack($toLevel)\n    {\n        if ($toLevel == 0) {\n            $this->getPdo()->rollBack();\n        } elseif ($this->queryGrammar->supportsSavepoints()) {\n            $this->getPdo()->exec(\n                $this->queryGrammar->compileSavepointRollBack('trans'.($toLevel + 1))\n            );\n        }\n    }\n\n    /**\n     * Handle an exception from a rollback.\n     *\n     * @param \\Exception  $e\n     *\n     * @throws \\Exception\n     */\n    protected function handleRollBackException($e)\n    {\n        if ($this->causedByLostConnection($e)) {\n            $this->transactions = 0;\n        }\n\n        throw $e;\n    }\n\n    /**\n     * Get the number of active transactions.\n     *\n     * @return int\n     */\n    public function transactionLevel()\n    {\n        return $this->transactions;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/ConfigurationUrlParser.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Support\\ConfigurationUrlParser as BaseConfigurationUrlParser;\n\nclass ConfigurationUrlParser extends BaseConfigurationUrlParser\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse PDO;\nuse Closure;\nuse Exception;\nuse PDOStatement;\nuse LogicException;\nuse DateTimeInterface;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Query\\Expression;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Database\\Events\\QueryExecuted;\nuse Doctrine\\DBAL\\Connection as DoctrineConnection;\nuse Illuminate\\Database\\Query\\Processors\\Processor;\nuse Illuminate\\Database\\Query\\Builder as QueryBuilder;\nuse Illuminate\\Database\\Schema\\Builder as SchemaBuilder;\nuse Illuminate\\Database\\Query\\Grammars\\Grammar as QueryGrammar;\n\nclass Connection implements ConnectionInterface\n{\n    use DetectsDeadlocks,\n        DetectsLostConnections,\n        Concerns\\ManagesTransactions;\n\n    /**\n     * The active PDO connection.\n     *\n     * @var \\PDO|\\Closure\n     */\n    protected $pdo;\n\n    /**\n     * The active PDO connection used for reads.\n     *\n     * @var \\PDO|\\Closure\n     */\n    protected $readPdo;\n\n    /**\n     * The name of the connected database.\n     *\n     * @var string\n     */\n    protected $database;\n\n    /**\n     * The table prefix for the connection.\n     *\n     * @var string\n     */\n    protected $tablePrefix = '';\n\n    /**\n     * The database connection configuration options.\n     *\n     * @var array\n     */\n    protected $config = [];\n\n    /**\n     * The reconnector instance for the connection.\n     *\n     * @var callable\n     */\n    protected $reconnector;\n\n    /**\n     * The query grammar implementation.\n     *\n     * @var \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    protected $queryGrammar;\n\n    /**\n     * The schema grammar implementation.\n     *\n     * @var \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n     */\n    protected $schemaGrammar;\n\n    /**\n     * The query post processor implementation.\n     *\n     * @var \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    protected $postProcessor;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The default fetch mode of the connection.\n     *\n     * @var int\n     */\n    protected $fetchMode = PDO::FETCH_OBJ;\n\n    /**\n     * The number of active transactions.\n     *\n     * @var int\n     */\n    protected $transactions = 0;\n\n    /**\n     * Indicates if changes have been made to the database.\n     *\n     * @var int\n     */\n    protected $recordsModified = false;\n\n    /**\n     * All of the queries run against the connection.\n     *\n     * @var array\n     */\n    protected $queryLog = [];\n\n    /**\n     * Indicates whether queries are being logged.\n     *\n     * @var bool\n     */\n    protected $loggingQueries = false;\n\n    /**\n     * Indicates if the connection is in a \"dry run\".\n     *\n     * @var bool\n     */\n    protected $pretending = false;\n\n    /**\n     * The instance of Doctrine connection.\n     *\n     * @var \\Doctrine\\DBAL\\Connection\n     */\n    protected $doctrineConnection;\n\n    /**\n     * The connection resolvers.\n     *\n     * @var array\n     */\n    protected static $resolvers = [];\n\n    /**\n     * Create a new database connection instance.\n     *\n     * @param  \\PDO|\\Closure     $pdo\n     * @param  string   $database\n     * @param  string   $tablePrefix\n     * @param  array    $config\n     * @return void\n     */\n    public function __construct($pdo, $database = '', $tablePrefix = '', array $config = [])\n    {\n        $this->pdo = $pdo;\n\n        // First we will setup the default properties. We keep track of the DB\n        // name we are connected to since it is needed when some reflective\n        // type commands are run such as checking whether a table exists.\n        $this->database = $database;\n\n        $this->tablePrefix = $tablePrefix;\n\n        $this->config = $config;\n\n        // We need to initialize a query grammar and the query post processors\n        // which are both very important parts of the database abstractions\n        // so we initialize these to their default values while starting.\n        $this->useDefaultQueryGrammar();\n\n        $this->useDefaultPostProcessor();\n    }\n\n    /**\n     * Set the query grammar to the default implementation.\n     *\n     * @return void\n     */\n    public function useDefaultQueryGrammar()\n    {\n        $this->queryGrammar = $this->getDefaultQueryGrammar();\n    }\n\n    /**\n     * Get the default query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    protected function getDefaultQueryGrammar()\n    {\n        return new QueryGrammar;\n    }\n\n    /**\n     * Set the schema grammar to the default implementation.\n     *\n     * @return void\n     */\n    public function useDefaultSchemaGrammar()\n    {\n        $this->schemaGrammar = $this->getDefaultSchemaGrammar();\n    }\n\n    /**\n     * Get the default schema grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n     */\n    protected function getDefaultSchemaGrammar()\n    {\n        //\n    }\n\n    /**\n     * Set the query post processor to the default implementation.\n     *\n     * @return void\n     */\n    public function useDefaultPostProcessor()\n    {\n        $this->postProcessor = $this->getDefaultPostProcessor();\n    }\n\n    /**\n     * Get the default post processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    protected function getDefaultPostProcessor()\n    {\n        return new Processor;\n    }\n\n    /**\n     * Get a schema builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Builder\n     */\n    public function getSchemaBuilder()\n    {\n        if (is_null($this->schemaGrammar)) {\n            $this->useDefaultSchemaGrammar();\n        }\n\n        return new SchemaBuilder($this);\n    }\n\n    /**\n     * Begin a fluent query against a database table.\n     *\n     * @param  string  $table\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function table($table)\n    {\n        return $this->query()->from($table);\n    }\n\n    /**\n     * Get a new query builder instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function query()\n    {\n        return new QueryBuilder(\n            $this, $this->getQueryGrammar(), $this->getPostProcessor()\n        );\n    }\n\n    /**\n     * Run a select statement and return a single result.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @param  bool  $useReadPdo\n     * @return mixed\n     */\n    public function selectOne($query, $bindings = [], $useReadPdo = true)\n    {\n        $records = $this->select($query, $bindings, $useReadPdo);\n\n        return array_shift($records);\n    }\n\n    /**\n     * Run a select statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return array\n     */\n    public function selectFromWriteConnection($query, $bindings = [])\n    {\n        return $this->select($query, $bindings, false);\n    }\n\n    /**\n     * Run a select statement against the database.\n     *\n     * @param  string  $query\n     * @param  array  $bindings\n     * @param  bool  $useReadPdo\n     * @return array\n     */\n    public function select($query, $bindings = [], $useReadPdo = true)\n    {\n        return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {\n            if ($this->pretending()) {\n                return [];\n            }\n\n            // For select statements, we'll simply execute the query and return an array\n            // of the database result set. Each element in the array will be a single\n            // row from the database table, and will either be an array or objects.\n            $statement = $this->prepared($this->getPdoForSelect($useReadPdo)\n                              ->prepare($query));\n\n            $this->bindValues($statement, $this->prepareBindings($bindings));\n\n            $statement->execute();\n\n            return $statement->fetchAll();\n        });\n    }\n\n    /**\n     * Run a select statement against the database and returns a generator.\n     *\n     * @param  string  $query\n     * @param  array  $bindings\n     * @param  bool  $useReadPdo\n     * @return \\Generator\n     */\n    public function cursor($query, $bindings = [], $useReadPdo = true)\n    {\n        $statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {\n            if ($this->pretending()) {\n                return [];\n            }\n\n            // First we will create a statement for the query. Then, we will set the fetch\n            // mode and prepare the bindings for the query. Once that's done we will be\n            // ready to execute the query against the database and return the cursor.\n            $statement = $this->prepared($this->getPdoForSelect($useReadPdo)\n                              ->prepare($query));\n\n            $this->bindValues(\n                $statement, $this->prepareBindings($bindings)\n            );\n\n            // Next, we'll execute the query against the database and return the statement\n            // so we can return the cursor. The cursor will use a PHP generator to give\n            // back one row at a time without using a bunch of memory to render them.\n            $statement->execute();\n\n            return $statement;\n        });\n\n        while ($record = $statement->fetch()) {\n            yield $record;\n        }\n    }\n\n    /**\n     * Configure the PDO prepared statement.\n     *\n     * @param  \\PDOStatement  $statement\n     * @return \\PDOStatement\n     */\n    protected function prepared(PDOStatement $statement)\n    {\n        $statement->setFetchMode($this->fetchMode);\n\n        $this->event(new Events\\StatementPrepared(\n            $this, $statement\n        ));\n\n        return $statement;\n    }\n\n    /**\n     * Get the PDO connection to use for a select query.\n     *\n     * @param  bool  $useReadPdo\n     * @return \\PDO\n     */\n    protected function getPdoForSelect($useReadPdo = true)\n    {\n        return $useReadPdo ? $this->getReadPdo() : $this->getPdo();\n    }\n\n    /**\n     * Run an insert statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return bool\n     */\n    public function insert($query, $bindings = [])\n    {\n        return $this->statement($query, $bindings);\n    }\n\n    /**\n     * Run an update statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function update($query, $bindings = [])\n    {\n        return $this->affectingStatement($query, $bindings);\n    }\n\n    /**\n     * Run a delete statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function delete($query, $bindings = [])\n    {\n        return $this->affectingStatement($query, $bindings);\n    }\n\n    /**\n     * Execute an SQL statement and return the boolean result.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return bool\n     */\n    public function statement($query, $bindings = [])\n    {\n        return $this->run($query, $bindings, function ($query, $bindings) {\n            if ($this->pretending()) {\n                return true;\n            }\n\n            $statement = $this->getPdo()->prepare($query);\n\n            $this->bindValues($statement, $this->prepareBindings($bindings));\n\n            $this->recordsHaveBeenModified();\n\n            return $statement->execute();\n        });\n    }\n\n    /**\n     * Run an SQL statement and get the number of rows affected.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function affectingStatement($query, $bindings = [])\n    {\n        return $this->run($query, $bindings, function ($query, $bindings) {\n            if ($this->pretending()) {\n                return 0;\n            }\n\n            // For update or delete statements, we want to get the number of rows affected\n            // by the statement and return that back to the developer. We'll first need\n            // to execute the statement and then we'll use PDO to fetch the affected.\n            $statement = $this->getPdo()->prepare($query);\n\n            $this->bindValues($statement, $this->prepareBindings($bindings));\n\n            $statement->execute();\n\n            $this->recordsHaveBeenModified(\n                ($count = $statement->rowCount()) > 0\n            );\n\n            return $count;\n        });\n    }\n\n    /**\n     * Run a raw, unprepared query against the PDO connection.\n     *\n     * @param  string  $query\n     * @return bool\n     */\n    public function unprepared($query)\n    {\n        return $this->run($query, [], function ($query) {\n            if ($this->pretending()) {\n                return true;\n            }\n\n            $this->recordsHaveBeenModified(\n                $change = $this->getPdo()->exec($query) !== false\n            );\n\n            return $change;\n        });\n    }\n\n    /**\n     * Execute the given callback in \"dry run\" mode.\n     *\n     * @param  \\Closure  $callback\n     * @return array\n     */\n    public function pretend(Closure $callback)\n    {\n        return $this->withFreshQueryLog(function () use ($callback) {\n            $this->pretending = true;\n\n            // Basically to make the database connection \"pretend\", we will just return\n            // the default values for all the query methods, then we will return an\n            // array of queries that were \"executed\" within the Closure callback.\n            $callback($this);\n\n            $this->pretending = false;\n\n            return $this->queryLog;\n        });\n    }\n\n    /**\n     * Execute the given callback in \"dry run\" mode.\n     *\n     * @param  \\Closure  $callback\n     * @return array\n     */\n    protected function withFreshQueryLog($callback)\n    {\n        $loggingQueries = $this->loggingQueries;\n\n        // First we will back up the value of the logging queries property and then\n        // we'll be ready to run callbacks. This query log will also get cleared\n        // so we will have a new log of all the queries that are executed now.\n        $this->enableQueryLog();\n\n        $this->queryLog = [];\n\n        // Now we'll execute this callback and capture the result. Once it has been\n        // executed we will restore the value of query logging and give back the\n        // value of the callback so the original callers can have the results.\n        $result = $callback();\n\n        $this->loggingQueries = $loggingQueries;\n\n        return $result;\n    }\n\n    /**\n     * Bind values to their parameters in the given statement.\n     *\n     * @param  \\PDOStatement $statement\n     * @param  array  $bindings\n     * @return void\n     */\n    public function bindValues($statement, $bindings)\n    {\n        foreach ($bindings as $key => $value) {\n            $statement->bindValue(\n                is_string($key) ? $key : $key + 1, $value,\n                is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR\n            );\n        }\n    }\n\n    /**\n     * Prepare the query bindings for execution.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    public function prepareBindings(array $bindings)\n    {\n        $grammar = $this->getQueryGrammar();\n\n        foreach ($bindings as $key => $value) {\n            // We need to transform all instances of DateTimeInterface into the actual\n            // date string. Each query grammar maintains its own date string format\n            // so we'll just ask the grammar for the format to get from the date.\n            if ($value instanceof DateTimeInterface) {\n                $bindings[$key] = $value->format($grammar->getDateFormat());\n            } elseif (is_bool($value)) {\n                $bindings[$key] = (int) $value;\n            }\n        }\n\n        return $bindings;\n    }\n\n    /**\n     * Run a SQL statement and log its execution context.\n     *\n     * @param  string    $query\n     * @param  array     $bindings\n     * @param  \\Closure  $callback\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Database\\QueryException\n     */\n    protected function run($query, $bindings, Closure $callback)\n    {\n        $this->reconnectIfMissingConnection();\n\n        $start = microtime(true);\n\n        // Here we will run this query. If an exception occurs we'll determine if it was\n        // caused by a connection that has been lost. If that is the cause, we'll try\n        // to re-establish connection and re-run the query with a fresh connection.\n        try {\n            $result = $this->runQueryCallback($query, $bindings, $callback);\n        } catch (QueryException $e) {\n            $result = $this->handleQueryException(\n                $e, $query, $bindings, $callback\n            );\n        }\n\n        // Once we have run the query we will calculate the time that it took to run and\n        // then log the query, bindings, and execution time so we will report them on\n        // the event that the developer needs them. We'll log time in milliseconds.\n        $this->logQuery(\n            $query, $bindings, $this->getElapsedTime($start)\n        );\n\n        return $result;\n    }\n\n    /**\n     * Run a SQL statement.\n     *\n     * @param  string    $query\n     * @param  array     $bindings\n     * @param  \\Closure  $callback\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Database\\QueryException\n     */\n    protected function runQueryCallback($query, $bindings, Closure $callback)\n    {\n        // To execute the statement, we'll simply call the callback, which will actually\n        // run the SQL against the PDO connection. Then we can calculate the time it\n        // took to execute and log the query SQL, bindings and time in our memory.\n        try {\n            $result = $callback($query, $bindings);\n        }\n\n        // If an exception occurs when attempting to run a query, we'll format the error\n        // message to include the bindings with SQL, which will make this exception a\n        // lot more helpful to the developer instead of just the database's errors.\n        catch (Exception $e) {\n            throw new QueryException(\n                $query, $this->prepareBindings($bindings), $e\n            );\n        }\n\n        return $result;\n    }\n\n    /**\n     * Log a query in the connection's query log.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @param  float|null  $time\n     * @return void\n     */\n    public function logQuery($query, $bindings, $time = null)\n    {\n        $this->event(new QueryExecuted($query, $bindings, $time, $this));\n\n        if ($this->loggingQueries) {\n            $this->queryLog[] = compact('query', 'bindings', 'time');\n        }\n    }\n\n    /**\n     * Get the elapsed time since a given starting point.\n     *\n     * @param  int    $start\n     * @return float\n     */\n    protected function getElapsedTime($start)\n    {\n        return round((microtime(true) - $start) * 1000, 2);\n    }\n\n    /**\n     * Handle a query exception.\n     *\n     * @param  \\Illuminate\\Database\\QueryException  $e\n     * @param  string  $query\n     * @param  array  $bindings\n     * @param  \\Closure  $callback\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Database\\QueryException\n     */\n    protected function handleQueryException(QueryException $e, $query, $bindings, Closure $callback)\n    {\n        if ($this->transactions >= 1) {\n            throw $e;\n        }\n\n        return $this->tryAgainIfCausedByLostConnection(\n            $e, $query, $bindings, $callback\n        );\n    }\n\n    /**\n     * Handle a query exception that occurred during query execution.\n     *\n     * @param  \\Illuminate\\Database\\QueryException  $e\n     * @param  string    $query\n     * @param  array     $bindings\n     * @param  \\Closure  $callback\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Database\\QueryException\n     */\n    protected function tryAgainIfCausedByLostConnection(QueryException $e, $query, $bindings, Closure $callback)\n    {\n        if ($this->causedByLostConnection($e->getPrevious())) {\n            $this->reconnect();\n\n            return $this->runQueryCallback($query, $bindings, $callback);\n        }\n\n        throw $e;\n    }\n\n    /**\n     * Reconnect to the database.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function reconnect()\n    {\n        if (is_callable($this->reconnector)) {\n            $this->doctrineConnection = null;\n\n            return call_user_func($this->reconnector, $this);\n        }\n\n        throw new LogicException('Lost connection and no reconnector available.');\n    }\n\n    /**\n     * Reconnect to the database if a PDO connection is missing.\n     *\n     * @return void\n     */\n    protected function reconnectIfMissingConnection()\n    {\n        if (is_null($this->pdo)) {\n            $this->reconnect();\n        }\n    }\n\n    /**\n     * Disconnect from the underlying PDO connection.\n     *\n     * @return void\n     */\n    public function disconnect()\n    {\n        $this->setPdo(null)->setReadPdo(null);\n    }\n\n    /**\n     * Register a database query listener with the connection.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function listen(Closure $callback)\n    {\n        if (isset($this->events)) {\n            $this->events->listen(Events\\QueryExecuted::class, $callback);\n        }\n    }\n\n    /**\n     * Fire an event for this connection.\n     *\n     * @param  string  $event\n     * @return array|null\n     */\n    protected function fireConnectionEvent($event)\n    {\n        if (! isset($this->events)) {\n            return;\n        }\n\n        switch ($event) {\n            case 'beganTransaction':\n                return $this->events->dispatch(new Events\\TransactionBeginning($this));\n            case 'committed':\n                return $this->events->dispatch(new Events\\TransactionCommitted($this));\n            case 'rollingBack':\n                return $this->events->dispatch(new Events\\TransactionRolledBack($this));\n        }\n    }\n\n    /**\n     * Fire the given event if possible.\n     *\n     * @param  mixed  $event\n     * @return void\n     */\n    protected function event($event)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch($event);\n        }\n    }\n\n    /**\n     * Get a new raw query expression.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Query\\Expression\n     */\n    public function raw($value)\n    {\n        return new Expression($value);\n    }\n\n    /**\n     * Indicate if any records have been modified.\n     *\n     * @param  bool  $value\n     * @return void\n     */\n    public function recordsHaveBeenModified($value = true)\n    {\n        if (! $this->recordsModified) {\n            $this->recordsModified = $value;\n        }\n    }\n\n    /**\n     * Is Doctrine available?\n     *\n     * @return bool\n     */\n    public function isDoctrineAvailable()\n    {\n        return class_exists('Doctrine\\DBAL\\Connection');\n    }\n\n    /**\n     * Get a Doctrine Schema Column instance.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return \\Doctrine\\DBAL\\Schema\\Column\n     */\n    public function getDoctrineColumn($table, $column)\n    {\n        $schema = $this->getDoctrineSchemaManager();\n\n        return $schema->listTableDetails($table)->getColumn($column);\n    }\n\n    /**\n     * Get the Doctrine DBAL schema manager for the connection.\n     *\n     * @return \\Doctrine\\DBAL\\Schema\\AbstractSchemaManager\n     */\n    public function getDoctrineSchemaManager()\n    {\n        return $this->getDoctrineDriver()->getSchemaManager($this->getDoctrineConnection());\n    }\n\n    /**\n     * Get the Doctrine DBAL database connection instance.\n     *\n     * @return \\Doctrine\\DBAL\\Connection\n     */\n    public function getDoctrineConnection()\n    {\n        if (is_null($this->doctrineConnection)) {\n            $driver = $this->getDoctrineDriver();\n\n            $this->doctrineConnection = new DoctrineConnection(array_filter([\n                'pdo' => $this->getPdo(),\n                'dbname' => $this->getConfig('database'),\n                'driver' => $driver->getName(),\n                'serverVersion' => $this->getConfig('server_version'),\n            ]), $driver);\n        }\n\n        return $this->doctrineConnection;\n    }\n\n    /**\n     * Get the current PDO connection.\n     *\n     * @return \\PDO\n     */\n    public function getPdo()\n    {\n        if ($this->pdo instanceof Closure) {\n            return $this->pdo = call_user_func($this->pdo);\n        }\n\n        return $this->pdo;\n    }\n\n    /**\n     * Get the current PDO connection used for reading.\n     *\n     * @return \\PDO\n     */\n    public function getReadPdo()\n    {\n        if ($this->transactions > 0) {\n            return $this->getPdo();\n        }\n\n        if ($this->recordsModified && $this->getConfig('sticky')) {\n            return $this->getPdo();\n        }\n\n        if ($this->readPdo instanceof Closure) {\n            return $this->readPdo = call_user_func($this->readPdo);\n        }\n\n        return $this->readPdo ?: $this->getPdo();\n    }\n\n    /**\n     * Set the PDO connection.\n     *\n     * @param  \\PDO|\\Closure|null  $pdo\n     * @return $this\n     */\n    public function setPdo($pdo)\n    {\n        $this->transactions = 0;\n\n        $this->pdo = $pdo;\n\n        return $this;\n    }\n\n    /**\n     * Set the PDO connection used for reading.\n     *\n     * @param  \\PDO|\\Closure|null  $pdo\n     * @return $this\n     */\n    public function setReadPdo($pdo)\n    {\n        $this->readPdo = $pdo;\n\n        return $this;\n    }\n\n    /**\n     * Set the reconnect instance on the connection.\n     *\n     * @param  callable  $reconnector\n     * @return $this\n     */\n    public function setReconnector(callable $reconnector)\n    {\n        $this->reconnector = $reconnector;\n\n        return $this;\n    }\n\n    /**\n     * Get the database connection name.\n     *\n     * @return string|null\n     */\n    public function getName()\n    {\n        return $this->getConfig('name');\n    }\n\n    /**\n     * Get an option from the configuration options.\n     *\n     * @param  string|null  $option\n     * @return mixed\n     */\n    public function getConfig($option = null)\n    {\n        return Arr::get($this->config, $option);\n    }\n\n    /**\n     * Get the PDO driver name.\n     *\n     * @return string\n     */\n    public function getDriverName()\n    {\n        return $this->getConfig('driver');\n    }\n\n    /**\n     * Get the query grammar used by the connection.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    public function getQueryGrammar()\n    {\n        return $this->queryGrammar;\n    }\n\n    /**\n     * Set the query grammar used by the connection.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Grammars\\Grammar  $grammar\n     * @return $this\n     */\n    public function setQueryGrammar(Query\\Grammars\\Grammar $grammar)\n    {\n        $this->queryGrammar = $grammar;\n\n        return $this;\n    }\n\n    /**\n     * Get the schema grammar used by the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n     */\n    public function getSchemaGrammar()\n    {\n        return $this->schemaGrammar;\n    }\n\n    /**\n     * Set the schema grammar used by the connection.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @return $this\n     */\n    public function setSchemaGrammar(Schema\\Grammars\\Grammar $grammar)\n    {\n        $this->schemaGrammar = $grammar;\n\n        return $this;\n    }\n\n    /**\n     * Get the query post processor used by the connection.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    public function getPostProcessor()\n    {\n        return $this->postProcessor;\n    }\n\n    /**\n     * Set the query post processor used by the connection.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Processors\\Processor  $processor\n     * @return $this\n     */\n    public function setPostProcessor(Processor $processor)\n    {\n        $this->postProcessor = $processor;\n\n        return $this;\n    }\n\n    /**\n     * Get the event dispatcher used by the connection.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public function getEventDispatcher()\n    {\n        return $this->events;\n    }\n\n    /**\n     * Set the event dispatcher instance on the connection.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return $this\n     */\n    public function setEventDispatcher(Dispatcher $events)\n    {\n        $this->events = $events;\n\n        return $this;\n    }\n\n    /**\n     * Unset the event dispatcher for this connection.\n     *\n     * @return void\n     */\n    public function unsetEventDispatcher()\n    {\n        $this->events = null;\n    }\n\n    /**\n     * Determine if the connection is in a \"dry run\".\n     *\n     * @return bool\n     */\n    public function pretending()\n    {\n        return $this->pretending === true;\n    }\n\n    /**\n     * Get the connection query log.\n     *\n     * @return array\n     */\n    public function getQueryLog()\n    {\n        return $this->queryLog;\n    }\n\n    /**\n     * Clear the query log.\n     *\n     * @return void\n     */\n    public function flushQueryLog()\n    {\n        $this->queryLog = [];\n    }\n\n    /**\n     * Enable the query log on the connection.\n     *\n     * @return void\n     */\n    public function enableQueryLog()\n    {\n        $this->loggingQueries = true;\n    }\n\n    /**\n     * Disable the query log on the connection.\n     *\n     * @return void\n     */\n    public function disableQueryLog()\n    {\n        $this->loggingQueries = false;\n    }\n\n    /**\n     * Determine whether we're logging queries.\n     *\n     * @return bool\n     */\n    public function logging()\n    {\n        return $this->loggingQueries;\n    }\n\n    /**\n     * Get the name of the connected database.\n     *\n     * @return string\n     */\n    public function getDatabaseName()\n    {\n        return $this->database;\n    }\n\n    /**\n     * Set the name of the connected database.\n     *\n     * @param  string  $database\n     * @return $this\n     */\n    public function setDatabaseName($database)\n    {\n        $this->database = $database;\n\n        return $this;\n    }\n\n    /**\n     * Get the table prefix for the connection.\n     *\n     * @return string\n     */\n    public function getTablePrefix()\n    {\n        return $this->tablePrefix;\n    }\n\n    /**\n     * Set the table prefix in use by the connection.\n     *\n     * @param  string  $prefix\n     * @return $this\n     */\n    public function setTablePrefix($prefix)\n    {\n        $this->tablePrefix = $prefix;\n\n        $this->getQueryGrammar()->setTablePrefix($prefix);\n\n        return $this;\n    }\n\n    /**\n     * Set the table prefix and return the grammar.\n     *\n     * @param  \\Illuminate\\Database\\Grammar  $grammar\n     * @return \\Illuminate\\Database\\Grammar\n     */\n    public function withTablePrefix(Grammar $grammar)\n    {\n        $grammar->setTablePrefix($this->tablePrefix);\n\n        return $grammar;\n    }\n\n    /**\n     * Register a connection resolver.\n     *\n     * @param  string  $driver\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public static function resolverFor($driver, Closure $callback)\n    {\n        static::$resolvers[$driver] = $callback;\n    }\n\n    /**\n     * Get the connection resolver for the given driver.\n     *\n     * @param  string  $driver\n     * @return mixed\n     */\n    public static function getResolver($driver)\n    {\n        return static::$resolvers[$driver] ?? null;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/ConnectionInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Closure;\n\ninterface ConnectionInterface\n{\n    /**\n     * Begin a fluent query against a database table.\n     *\n     * @param  string  $table\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function table($table);\n\n    /**\n     * Get a new raw query expression.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Query\\Expression\n     */\n    public function raw($value);\n\n    /**\n     * Run a select statement and return a single result.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @param  bool  $useReadPdo\n     * @return mixed\n     */\n    public function selectOne($query, $bindings = [], $useReadPdo = true);\n\n    /**\n     * Run a select statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @param  bool  $useReadPdo\n     * @return array\n     */\n    public function select($query, $bindings = [], $useReadPdo = true);\n\n    /**\n     * Run a select statement against the database and returns a generator.\n     *\n     * @param  string  $query\n     * @param  array  $bindings\n     * @param  bool  $useReadPdo\n     * @return \\Generator\n     */\n    public function cursor($query, $bindings = [], $useReadPdo = true);\n\n    /**\n     * Run an insert statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return bool\n     */\n    public function insert($query, $bindings = []);\n\n    /**\n     * Run an update statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function update($query, $bindings = []);\n\n    /**\n     * Run a delete statement against the database.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function delete($query, $bindings = []);\n\n    /**\n     * Execute an SQL statement and return the boolean result.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return bool\n     */\n    public function statement($query, $bindings = []);\n\n    /**\n     * Run an SQL statement and get the number of rows affected.\n     *\n     * @param  string  $query\n     * @param  array   $bindings\n     * @return int\n     */\n    public function affectingStatement($query, $bindings = []);\n\n    /**\n     * Run a raw, unprepared query against the PDO connection.\n     *\n     * @param  string  $query\n     * @return bool\n     */\n    public function unprepared($query);\n\n    /**\n     * Prepare the query bindings for execution.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    public function prepareBindings(array $bindings);\n\n    /**\n     * Execute a Closure within a transaction.\n     *\n     * @param  \\Closure  $callback\n     * @param  int  $attempts\n     * @return mixed\n     *\n     * @throws \\Throwable\n     */\n    public function transaction(Closure $callback, $attempts = 1);\n\n    /**\n     * Start a new database transaction.\n     *\n     * @return void\n     */\n    public function beginTransaction();\n\n    /**\n     * Commit the active database transaction.\n     *\n     * @return void\n     */\n    public function commit();\n\n    /**\n     * Rollback the active database transaction.\n     *\n     * @return void\n     */\n    public function rollBack();\n\n    /**\n     * Get the number of active transactions.\n     *\n     * @return int\n     */\n    public function transactionLevel();\n\n    /**\n     * Execute the given callback in \"dry run\" mode.\n     *\n     * @param  \\Closure  $callback\n     * @return array\n     */\n    public function pretend(Closure $callback);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/ConnectionResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nclass ConnectionResolver implements ConnectionResolverInterface\n{\n    /**\n     * All of the registered connections.\n     *\n     * @var array\n     */\n    protected $connections = [];\n\n    /**\n     * The default connection name.\n     *\n     * @var string\n     */\n    protected $default;\n\n    /**\n     * Create a new connection resolver instance.\n     *\n     * @param  array  $connections\n     * @return void\n     */\n    public function __construct(array $connections = [])\n    {\n        foreach ($connections as $name => $connection) {\n            $this->addConnection($name, $connection);\n        }\n    }\n\n    /**\n     * Get a database connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\ConnectionInterface\n     */\n    public function connection($name = null)\n    {\n        if (is_null($name)) {\n            $name = $this->getDefaultConnection();\n        }\n\n        return $this->connections[$name];\n    }\n\n    /**\n     * Add a connection to the resolver.\n     *\n     * @param  string  $name\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $connection\n     * @return void\n     */\n    public function addConnection($name, ConnectionInterface $connection)\n    {\n        $this->connections[$name] = $connection;\n    }\n\n    /**\n     * Check if a connection has been registered.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasConnection($name)\n    {\n        return isset($this->connections[$name]);\n    }\n\n    /**\n     * Get the default connection name.\n     *\n     * @return string\n     */\n    public function getDefaultConnection()\n    {\n        return $this->default;\n    }\n\n    /**\n     * Set the default connection name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultConnection($name)\n    {\n        $this->default = $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/ConnectionResolverInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\ninterface ConnectionResolverInterface\n{\n    /**\n     * Get a database connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\ConnectionInterface\n     */\n    public function connection($name = null);\n\n    /**\n     * Get the default connection name.\n     *\n     * @return string\n     */\n    public function getDefaultConnection();\n\n    /**\n     * Set the default connection name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultConnection($name);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse PDOException;\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\MySqlConnection;\nuse Illuminate\\Database\\SQLiteConnection;\nuse Illuminate\\Database\\PostgresConnection;\nuse Illuminate\\Database\\SqlServerConnection;\nuse Illuminate\\Contracts\\Container\\Container;\n\nclass ConnectionFactory\n{\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Create a new connection factory instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function __construct(Container $container)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Establish a PDO connection based on the configuration.\n     *\n     * @param  array   $config\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function make(array $config, $name = null)\n    {\n        $config = $this->parseConfig($config, $name);\n\n        if (isset($config['read'])) {\n            return $this->createReadWriteConnection($config);\n        }\n\n        return $this->createSingleConnection($config);\n    }\n\n    /**\n     * Parse and prepare the database configuration.\n     *\n     * @param  array   $config\n     * @param  string  $name\n     * @return array\n     */\n    protected function parseConfig(array $config, $name)\n    {\n        return Arr::add(Arr::add($config, 'prefix', ''), 'name', $name);\n    }\n\n    /**\n     * Create a single database connection instance.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function createSingleConnection(array $config)\n    {\n        $pdo = $this->createPdoResolver($config);\n\n        return $this->createConnection(\n            $config['driver'], $pdo, $config['database'], $config['prefix'], $config\n        );\n    }\n\n    /**\n     * Create a single database connection instance.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function createReadWriteConnection(array $config)\n    {\n        $connection = $this->createSingleConnection($this->getWriteConfig($config));\n\n        return $connection->setReadPdo($this->createReadPdo($config));\n    }\n\n    /**\n     * Create a new PDO instance for reading.\n     *\n     * @param  array  $config\n     * @return \\Closure\n     */\n    protected function createReadPdo(array $config)\n    {\n        return $this->createPdoResolver($this->getReadConfig($config));\n    }\n\n    /**\n     * Get the read configuration for a read / write connection.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function getReadConfig(array $config)\n    {\n        return $this->mergeReadWriteConfig(\n            $config, $this->getReadWriteConfig($config, 'read')\n        );\n    }\n\n    /**\n     * Get the read configuration for a read / write connection.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function getWriteConfig(array $config)\n    {\n        return $this->mergeReadWriteConfig(\n            $config, $this->getReadWriteConfig($config, 'write')\n        );\n    }\n\n    /**\n     * Get a read / write level configuration.\n     *\n     * @param  array   $config\n     * @param  string  $type\n     * @return array\n     */\n    protected function getReadWriteConfig(array $config, $type)\n    {\n        return isset($config[$type][0])\n                        ? Arr::random($config[$type])\n                        : $config[$type];\n    }\n\n    /**\n     * Merge a configuration for a read / write connection.\n     *\n     * @param  array  $config\n     * @param  array  $merge\n     * @return array\n     */\n    protected function mergeReadWriteConfig(array $config, array $merge)\n    {\n        return Arr::except(array_merge($config, $merge), ['read', 'write']);\n    }\n\n    /**\n     * Create a new Closure that resolves to a PDO instance.\n     *\n     * @param  array  $config\n     * @return \\Closure\n     */\n    protected function createPdoResolver(array $config)\n    {\n        return array_key_exists('host', $config)\n                            ? $this->createPdoResolverWithHosts($config)\n                            : $this->createPdoResolverWithoutHosts($config);\n    }\n\n    /**\n     * Create a new Closure that resolves to a PDO instance with a specific host or an array of hosts.\n     *\n     * @param  array  $config\n     * @return \\Closure\n     */\n    protected function createPdoResolverWithHosts(array $config)\n    {\n        return function () use ($config) {\n            foreach (Arr::shuffle($hosts = $this->parseHosts($config)) as $key => $host) {\n                $config['host'] = $host;\n\n                try {\n                    return $this->createConnector($config)->connect($config);\n                } catch (PDOException $e) {\n                    continue;\n                }\n            }\n\n            throw $e;\n        };\n    }\n\n    /**\n     * Parse the hosts configuration item into an array.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function parseHosts(array $config)\n    {\n        $hosts = Arr::wrap($config['host']);\n\n        if (empty($hosts)) {\n            throw new InvalidArgumentException('Database hosts array is empty.');\n        }\n\n        return $hosts;\n    }\n\n    /**\n     * Create a new Closure that resolves to a PDO instance where there is no configured host.\n     *\n     * @param  array  $config\n     * @return \\Closure\n     */\n    protected function createPdoResolverWithoutHosts(array $config)\n    {\n        return function () use ($config) {\n            return $this->createConnector($config)->connect($config);\n        };\n    }\n\n    /**\n     * Create a connector instance based on the configuration.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Database\\Connectors\\ConnectorInterface\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function createConnector(array $config)\n    {\n        if (! isset($config['driver'])) {\n            throw new InvalidArgumentException('A driver must be specified.');\n        }\n\n        if ($this->container->bound($key = \"db.connector.{$config['driver']}\")) {\n            return $this->container->make($key);\n        }\n\n        switch ($config['driver']) {\n            case 'mysql':\n                return new MySqlConnector;\n            case 'pgsql':\n                return new PostgresConnector;\n            case 'sqlite':\n                return new SQLiteConnector;\n            case 'sqlsrv':\n                return new SqlServerConnector;\n        }\n\n        throw new InvalidArgumentException(\"Unsupported driver [{$config['driver']}]\");\n    }\n\n    /**\n     * Create a new connection instance.\n     *\n     * @param  string   $driver\n     * @param  \\PDO|\\Closure     $connection\n     * @param  string   $database\n     * @param  string   $prefix\n     * @param  array    $config\n     * @return \\Illuminate\\Database\\Connection\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function createConnection($driver, $connection, $database, $prefix = '', array $config = [])\n    {\n        if ($resolver = Connection::getResolver($driver)) {\n            return $resolver($connection, $database, $prefix, $config);\n        }\n\n        switch ($driver) {\n            case 'mysql':\n                return new MySqlConnection($connection, $database, $prefix, $config);\n            case 'pgsql':\n                return new PostgresConnection($connection, $database, $prefix, $config);\n            case 'sqlite':\n                return new SQLiteConnection($connection, $database, $prefix, $config);\n            case 'sqlsrv':\n                return new SqlServerConnection($connection, $database, $prefix, $config);\n        }\n\n        throw new InvalidArgumentException(\"Unsupported driver [{$driver}]\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse PDO;\nuse Exception;\nuse Throwable;\nuse Doctrine\\DBAL\\Driver\\PDOConnection;\nuse Illuminate\\Database\\DetectsLostConnections;\n\nclass Connector\n{\n    use DetectsLostConnections;\n\n    /**\n     * The default PDO connection options.\n     *\n     * @var array\n     */\n    protected $options = [\n        PDO::ATTR_CASE => PDO::CASE_NATURAL,\n        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n        PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,\n        PDO::ATTR_STRINGIFY_FETCHES => false,\n        PDO::ATTR_EMULATE_PREPARES => false,\n    ];\n\n    /**\n     * Create a new PDO connection.\n     *\n     * @param  string  $dsn\n     * @param  array   $config\n     * @param  array   $options\n     * @return \\PDO\n     *\n     * @throws \\Exception\n     */\n    public function createConnection($dsn, array $config, array $options)\n    {\n        [$username, $password] = [\n            $config['username'] ?? null, $config['password'] ?? null,\n        ];\n\n        try {\n            return $this->createPdoConnection(\n                $dsn, $username, $password, $options\n            );\n        } catch (Exception $e) {\n            return $this->tryAgainIfCausedByLostConnection(\n                $e, $dsn, $username, $password, $options\n            );\n        }\n    }\n\n    /**\n     * Create a new PDO connection instance.\n     *\n     * @param  string  $dsn\n     * @param  string  $username\n     * @param  string  $password\n     * @param  array  $options\n     * @return \\PDO\n     */\n    protected function createPdoConnection($dsn, $username, $password, $options)\n    {\n        if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) {\n            return new PDOConnection($dsn, $username, $password, $options);\n        }\n\n        return new PDO($dsn, $username, $password, $options);\n    }\n\n    /**\n     * Determine if the connection is persistent.\n     *\n     * @param  array  $options\n     * @return bool\n     */\n    protected function isPersistentConnection($options)\n    {\n        return isset($options[PDO::ATTR_PERSISTENT]) &&\n               $options[PDO::ATTR_PERSISTENT];\n    }\n\n    /**\n     * Handle an exception that occurred during connect execution.\n     *\n     * @param  \\Throwable  $e\n     * @param  string  $dsn\n     * @param  string  $username\n     * @param  string  $password\n     * @param  array   $options\n     * @return \\PDO\n     *\n     * @throws \\Exception\n     */\n    protected function tryAgainIfCausedByLostConnection(Throwable $e, $dsn, $username, $password, $options)\n    {\n        if ($this->causedByLostConnection($e)) {\n            return $this->createPdoConnection($dsn, $username, $password, $options);\n        }\n\n        throw $e;\n    }\n\n    /**\n     * Get the PDO options based on the configuration.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    public function getOptions(array $config)\n    {\n        $options = $config['options'] ?? [];\n\n        return array_diff_key($this->options, $options) + $options;\n    }\n\n    /**\n     * Get the default PDO connection options.\n     *\n     * @return array\n     */\n    public function getDefaultOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Set the default PDO connection options.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public function setDefaultOptions(array $options)\n    {\n        $this->options = $options;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectorInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\ninterface ConnectorInterface\n{\n    /**\n     * Establish a database connection.\n     *\n     * @param  array  $config\n     * @return \\PDO\n     */\n    public function connect(array $config);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse PDO;\n\nclass MySqlConnector extends Connector implements ConnectorInterface\n{\n    /**\n     * Establish a database connection.\n     *\n     * @param  array  $config\n     * @return \\PDO\n     */\n    public function connect(array $config)\n    {\n        $dsn = $this->getDsn($config);\n\n        $options = $this->getOptions($config);\n\n        // We need to grab the PDO options that should be used while making the brand\n        // new connection instance. The PDO options control various aspects of the\n        // connection's behavior, and some might be specified by the developers.\n        $connection = $this->createConnection($dsn, $config, $options);\n\n        if (! empty($config['database'])) {\n            $connection->exec(\"use `{$config['database']}`;\");\n        }\n\n        $this->configureEncoding($connection, $config);\n\n        // Next, we will check to see if a timezone has been specified in this config\n        // and if it has we will issue a statement to modify the timezone with the\n        // database. Setting this DB timezone is an optional configuration item.\n        $this->configureTimezone($connection, $config);\n\n        $this->setModes($connection, $config);\n\n        return $connection;\n    }\n\n    /**\n     * Set the connection character set and collation.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureEncoding($connection, array $config)\n    {\n        if (! isset($config['charset'])) {\n            return $connection;\n        }\n\n        $connection->prepare(\n            \"set names '{$config['charset']}'\".$this->getCollation($config)\n        )->execute();\n    }\n\n    /**\n     * Get the collation for the configuration.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getCollation(array $config)\n    {\n        return isset($config['collation']) ? \" collate '{$config['collation']}'\" : '';\n    }\n\n    /**\n     * Set the timezone on the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureTimezone($connection, array $config)\n    {\n        if (isset($config['timezone'])) {\n            $connection->prepare('set time_zone=\"'.$config['timezone'].'\"')->execute();\n        }\n    }\n\n    /**\n     * Create a DSN string from a configuration.\n     *\n     * Chooses socket or host/port based on the 'unix_socket' config value.\n     *\n     * @param  array   $config\n     * @return string\n     */\n    protected function getDsn(array $config)\n    {\n        return $this->hasSocket($config)\n                            ? $this->getSocketDsn($config)\n                            : $this->getHostDsn($config);\n    }\n\n    /**\n     * Determine if the given configuration array has a UNIX socket value.\n     *\n     * @param  array  $config\n     * @return bool\n     */\n    protected function hasSocket(array $config)\n    {\n        return isset($config['unix_socket']) && ! empty($config['unix_socket']);\n    }\n\n    /**\n     * Get the DSN string for a socket configuration.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getSocketDsn(array $config)\n    {\n        return \"mysql:unix_socket={$config['unix_socket']};dbname={$config['database']}\";\n    }\n\n    /**\n     * Get the DSN string for a host / port configuration.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getHostDsn(array $config)\n    {\n        extract($config, EXTR_SKIP);\n\n        return isset($port)\n                    ? \"mysql:host={$host};port={$port};dbname={$database}\"\n                    : \"mysql:host={$host};dbname={$database}\";\n    }\n\n    /**\n     * Set the modes for the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function setModes(PDO $connection, array $config)\n    {\n        if (isset($config['modes'])) {\n            $this->setCustomModes($connection, $config);\n        } elseif (isset($config['strict'])) {\n            if ($config['strict']) {\n                $connection->prepare($this->strictMode($connection))->execute();\n            } else {\n                $connection->prepare(\"set session sql_mode='NO_ENGINE_SUBSTITUTION'\")->execute();\n            }\n        }\n    }\n\n    /**\n     * Set the custom modes on the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function setCustomModes(PDO $connection, array $config)\n    {\n        $modes = implode(',', $config['modes']);\n\n        $connection->prepare(\"set session sql_mode='{$modes}'\")->execute();\n    }\n\n    /**\n     * Get the query to enable strict mode.\n     *\n     * @param  \\PDO  $connection\n     * @return string\n     */\n    protected function strictMode(PDO $connection)\n    {\n        if (version_compare($connection->getAttribute(PDO::ATTR_SERVER_VERSION), '8.0.11') >= 0) {\n            return \"set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'\";\n        }\n\n        return \"set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse PDO;\n\nclass PostgresConnector extends Connector implements ConnectorInterface\n{\n    /**\n     * The default PDO connection options.\n     *\n     * @var array\n     */\n    protected $options = [\n        PDO::ATTR_CASE => PDO::CASE_NATURAL,\n        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n        PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,\n        PDO::ATTR_STRINGIFY_FETCHES => false,\n    ];\n\n    /**\n     * Establish a database connection.\n     *\n     * @param  array  $config\n     * @return \\PDO\n     */\n    public function connect(array $config)\n    {\n        // First we'll create the basic DSN and connection instance connecting to the\n        // using the configuration option specified by the developer. We will also\n        // set the default character set on the connections to UTF-8 by default.\n        $connection = $this->createConnection(\n            $this->getDsn($config), $config, $this->getOptions($config)\n        );\n\n        $this->configureEncoding($connection, $config);\n\n        // Next, we will check to see if a timezone has been specified in this config\n        // and if it has we will issue a statement to modify the timezone with the\n        // database. Setting this DB timezone is an optional configuration item.\n        $this->configureTimezone($connection, $config);\n\n        $this->configureSchema($connection, $config);\n\n        // Postgres allows an application_name to be set by the user and this name is\n        // used to when monitoring the application with pg_stat_activity. So we'll\n        // determine if the option has been specified and run a statement if so.\n        $this->configureApplicationName($connection, $config);\n\n        return $connection;\n    }\n\n    /**\n     * Set the connection character set and collation.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureEncoding($connection, $config)\n    {\n        if (! isset($config['charset'])) {\n            return;\n        }\n\n        $connection->prepare(\"set names '{$config['charset']}'\")->execute();\n    }\n\n    /**\n     * Set the timezone on the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureTimezone($connection, array $config)\n    {\n        if (isset($config['timezone'])) {\n            $timezone = $config['timezone'];\n\n            $connection->prepare(\"set time zone '{$timezone}'\")->execute();\n        }\n    }\n\n    /**\n     * Set the schema on the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureSchema($connection, $config)\n    {\n        if (isset($config['schema'])) {\n            $schema = $this->formatSchema($config['schema']);\n\n            $connection->prepare(\"set search_path to {$schema}\")->execute();\n        }\n    }\n\n    /**\n     * Format the schema for the DSN.\n     *\n     * @param  array|string  $schema\n     * @return string\n     */\n    protected function formatSchema($schema)\n    {\n        if (is_array($schema)) {\n            return '\"'.implode('\", \"', $schema).'\"';\n        }\n\n        return '\"'.$schema.'\"';\n    }\n\n    /**\n     * Set the schema on the connection.\n     *\n     * @param  \\PDO  $connection\n     * @param  array  $config\n     * @return void\n     */\n    protected function configureApplicationName($connection, $config)\n    {\n        if (isset($config['application_name'])) {\n            $applicationName = $config['application_name'];\n\n            $connection->prepare(\"set application_name to '$applicationName'\")->execute();\n        }\n    }\n\n    /**\n     * Create a DSN string from a configuration.\n     *\n     * @param  array   $config\n     * @return string\n     */\n    protected function getDsn(array $config)\n    {\n        // First we will create the basic DSN setup as well as the port if it is in\n        // in the configuration options. This will give us the basic DSN we will\n        // need to establish the PDO connections and return them back for use.\n        extract($config, EXTR_SKIP);\n\n        $host = isset($host) ? \"host={$host};\" : '';\n\n        $dsn = \"pgsql:{$host}dbname={$database}\";\n\n        // If a port was specified, we will add it to this Postgres DSN connections\n        // format. Once we have done that we are ready to return this connection\n        // string back out for usage, as this has been fully constructed here.\n        if (isset($config['port'])) {\n            $dsn .= \";port={$port}\";\n        }\n\n        return $this->addSslOptions($dsn, $config);\n    }\n\n    /**\n     * Add the SSL options to the DSN.\n     *\n     * @param  string  $dsn\n     * @param  array  $config\n     * @return string\n     */\n    protected function addSslOptions($dsn, array $config)\n    {\n        foreach (['sslmode', 'sslcert', 'sslkey', 'sslrootcert'] as $option) {\n            if (isset($config[$option])) {\n                $dsn .= \";{$option}={$config[$option]}\";\n            }\n        }\n\n        return $dsn;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/SQLiteConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse InvalidArgumentException;\n\nclass SQLiteConnector extends Connector implements ConnectorInterface\n{\n    /**\n     * Establish a database connection.\n     *\n     * @param  array  $config\n     * @return \\PDO\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function connect(array $config)\n    {\n        $options = $this->getOptions($config);\n\n        // SQLite supports \"in-memory\" databases that only last as long as the owning\n        // connection does. These are useful for tests or for short lifetime store\n        // querying. In-memory databases may only have a single open connection.\n        if ($config['database'] === ':memory:') {\n            return $this->createConnection('sqlite::memory:', $config, $options);\n        }\n\n        $path = realpath($config['database']);\n\n        // Here we'll verify that the SQLite database exists before going any further\n        // as the developer probably wants to know if the database exists and this\n        // SQLite driver will not throw any exception if it does not by default.\n        if ($path === false) {\n            throw new InvalidArgumentException(\"Database ({$config['database']}) does not exist.\");\n        }\n\n        return $this->createConnection(\"sqlite:{$path}\", $config, $options);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Connectors;\n\nuse PDO;\nuse Illuminate\\Support\\Arr;\n\nclass SqlServerConnector extends Connector implements ConnectorInterface\n{\n    /**\n     * The PDO connection options.\n     *\n     * @var array\n     */\n    protected $options = [\n        PDO::ATTR_CASE => PDO::CASE_NATURAL,\n        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n        PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,\n        PDO::ATTR_STRINGIFY_FETCHES => false,\n    ];\n\n    /**\n     * Establish a database connection.\n     *\n     * @param  array  $config\n     * @return \\PDO\n     */\n    public function connect(array $config)\n    {\n        $options = $this->getOptions($config);\n\n        return $this->createConnection($this->getDsn($config), $config, $options);\n    }\n\n    /**\n     * Create a DSN string from a configuration.\n     *\n     * @param  array   $config\n     * @return string\n     */\n    protected function getDsn(array $config)\n    {\n        // First we will create the basic DSN setup as well as the port if it is in\n        // in the configuration options. This will give us the basic DSN we will\n        // need to establish the PDO connections and return them back for use.\n        if ($this->prefersOdbc($config)) {\n            return $this->getOdbcDsn($config);\n        }\n\n        if (in_array('sqlsrv', $this->getAvailableDrivers())) {\n            return $this->getSqlSrvDsn($config);\n        } else {\n            return $this->getDblibDsn($config);\n        }\n    }\n\n    /**\n     * Determine if the database configuration prefers ODBC.\n     *\n     * @param  array  $config\n     * @return bool\n     */\n    protected function prefersOdbc(array $config)\n    {\n        return in_array('odbc', $this->getAvailableDrivers()) &&\n               ($config['odbc'] ?? null) === true;\n    }\n\n    /**\n     * Get the DSN string for a DbLib connection.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getDblibDsn(array $config)\n    {\n        return $this->buildConnectString('dblib', array_merge([\n            'host' => $this->buildHostString($config, ':'),\n            'dbname' => $config['database'],\n        ], Arr::only($config, ['appname', 'charset', 'version'])));\n    }\n\n    /**\n     * Get the DSN string for an ODBC connection.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getOdbcDsn(array $config)\n    {\n        return isset($config['odbc_datasource_name'])\n                    ? 'odbc:'.$config['odbc_datasource_name'] : '';\n    }\n\n    /**\n     * Get the DSN string for a SqlSrv connection.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function getSqlSrvDsn(array $config)\n    {\n        $arguments = [\n            'Server' => $this->buildHostString($config, ','),\n        ];\n\n        if (isset($config['database'])) {\n            $arguments['Database'] = $config['database'];\n        }\n\n        if (isset($config['readonly'])) {\n            $arguments['ApplicationIntent'] = 'ReadOnly';\n        }\n\n        if (isset($config['pooling']) && $config['pooling'] === false) {\n            $arguments['ConnectionPooling'] = '0';\n        }\n\n        if (isset($config['appname'])) {\n            $arguments['APP'] = $config['appname'];\n        }\n\n        if (isset($config['encrypt'])) {\n            $arguments['Encrypt'] = $config['encrypt'];\n        }\n\n        if (isset($config['trust_server_certificate'])) {\n            $arguments['TrustServerCertificate'] = $config['trust_server_certificate'];\n        }\n\n        if (isset($config['multiple_active_result_sets']) && $config['multiple_active_result_sets'] === false) {\n            $arguments['MultipleActiveResultSets'] = 'false';\n        }\n\n        if (isset($config['transaction_isolation'])) {\n            $arguments['TransactionIsolation'] = $config['transaction_isolation'];\n        }\n\n        if (isset($config['multi_subnet_failover'])) {\n            $arguments['MultiSubnetFailover'] = $config['multi_subnet_failover'];\n        }\n\n        return $this->buildConnectString('sqlsrv', $arguments);\n    }\n\n    /**\n     * Build a connection string from the given arguments.\n     *\n     * @param  string  $driver\n     * @param  array  $arguments\n     * @return string\n     */\n    protected function buildConnectString($driver, array $arguments)\n    {\n        return $driver.':'.implode(';', array_map(function ($key) use ($arguments) {\n            return sprintf('%s=%s', $key, $arguments[$key]);\n        }, array_keys($arguments)));\n    }\n\n    /**\n     * Build a host string from the given configuration.\n     *\n     * @param  array  $config\n     * @param  string  $separator\n     * @return string\n     */\n    protected function buildHostString(array $config, $separator)\n    {\n        if (isset($config['port']) && ! empty($config['port'])) {\n            return $config['host'].$separator.$config['port'];\n        } else {\n            return $config['host'];\n        }\n    }\n\n    /**\n     * Get the available PDO drivers.\n     *\n     * @return array\n     */\n    protected function getAvailableDrivers()\n    {\n        return PDO::getAvailableDrivers();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Factories/FactoryMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Factories;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass FactoryMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:factory';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new model factory';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Factory';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/factory.stub';\n    }\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $namespaceModel = $this->option('model')\n                        ? $this->qualifyClass($this->option('model'))\n                        : trim($this->rootNamespace(), '\\\\').'\\\\Model';\n\n        $model = class_basename($namespaceModel);\n\n        return str_replace(\n            [\n                'NamespacedDummyModel',\n                'DummyModel',\n            ],\n            [\n                $namespaceModel,\n                $model,\n            ],\n            parent::buildClass($name)\n        );\n    }\n\n    /**\n     * Get the destination class path.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getPath($name)\n    {\n        $name = str_replace(\n            ['\\\\', '/'], '', $this->argument('name')\n        );\n\n        return $this->laravel->databasePath().\"/factories/{$name}.php\";\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['model', 'm', InputOption::VALUE_OPTIONAL, 'The name of the model'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Factories/stubs/factory.stub",
    "content": "<?php\n\n/* @var $factory \\Illuminate\\Database\\Eloquent\\Factory */\n\nuse NamespacedDummyModel;\nuse Faker\\Generator as Faker;\n\n$factory->define(DummyModel::class, function (Faker $faker) {\n    return [\n        //\n    ];\n});\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/BaseCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\Command;\n\nclass BaseCommand extends Command\n{\n    /**\n     * Get all of the migration paths.\n     *\n     * @return array\n     */\n    protected function getMigrationPaths()\n    {\n        // Here, we will check to see if a path option has been defined. If it has we will\n        // use the path relative to the root of the installation folder so our database\n        // migrations may be run for any customized path from within the application.\n        if ($this->input->hasOption('path') && $this->option('path')) {\n            return collect($this->option('path'))->map(function ($path) {\n                return ! $this->usingRealPath()\n                                ? $this->laravel->basePath().'/'.$path\n                                : $path;\n            })->all();\n        }\n\n        return array_merge(\n            $this->migrator->paths(), [$this->getMigrationPath()]\n        );\n    }\n\n    /**\n     * Determine if the given path(s) are pre-resolved \"real\" paths.\n     *\n     * @return bool\n     */\n    protected function usingRealPath()\n    {\n        return $this->input->hasOption('realpath') && $this->option('realpath');\n    }\n\n    /**\n     * Get the path to the migration directory.\n     *\n     * @return string\n     */\n    protected function getMigrationPath()\n    {\n        return $this->laravel->databasePath().DIRECTORY_SEPARATOR.'migrations';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass FreshCommand extends Command\n{\n    use ConfirmableTrait;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:fresh';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Drop all tables and re-run all migrations';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        $database = $this->input->getOption('database');\n\n        if ($this->option('drop-views')) {\n            $this->dropAllViews($database);\n\n            $this->info('Dropped all views successfully.');\n        }\n\n        $this->dropAllTables($database);\n\n        $this->info('Dropped all tables successfully.');\n\n        if ($this->option('drop-types')) {\n            $this->dropAllTypes($database);\n\n            $this->info('Dropped all types successfully.');\n        }\n\n        $this->call('migrate', array_filter([\n            '--database' => $database,\n            '--path' => $this->input->getOption('path'),\n            '--realpath' => $this->input->getOption('realpath'),\n            '--force' => true,\n            '--step' => $this->option('step'),\n        ]));\n\n        if ($this->needsSeeding()) {\n            $this->runSeeder($database);\n        }\n    }\n\n    /**\n     * Drop all of the database tables.\n     *\n     * @param  string  $database\n     * @return void\n     */\n    protected function dropAllTables($database)\n    {\n        $this->laravel['db']->connection($database)\n                    ->getSchemaBuilder()\n                    ->dropAllTables();\n    }\n\n    /**\n     * Drop all of the database views.\n     *\n     * @param  string  $database\n     * @return void\n     */\n    protected function dropAllViews($database)\n    {\n        $this->laravel['db']->connection($database)\n                    ->getSchemaBuilder()\n                    ->dropAllViews();\n    }\n\n    /**\n     * Drop all of the database types.\n     *\n     * @param string $database\n     * @return void\n     */\n    protected function dropAllTypes($database)\n    {\n        $this->laravel['db']->connection($database)\n                    ->getSchemaBuilder()\n                    ->dropAllTypes();\n    }\n\n    /**\n     * Determine if the developer has requested database seeding.\n     *\n     * @return bool\n     */\n    protected function needsSeeding()\n    {\n        return $this->option('seed') || $this->option('seeder');\n    }\n\n    /**\n     * Run the database seeder command.\n     *\n     * @param  string  $database\n     * @return void\n     */\n    protected function runSeeder($database)\n    {\n        $this->call('db:seed', array_filter([\n            '--database' => $database,\n            '--class' => $this->option('seeder') ?: 'DatabaseSeeder',\n            '--force' => true,\n        ]));\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n            ['drop-views', null, InputOption::VALUE_NONE, 'Drop all tables and views'],\n            ['drop-types', null, InputOption::VALUE_NONE, 'Drop all tables and types (Postgres only)'],\n            ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],\n            ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to be executed'],\n            ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],\n            ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run'],\n            ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder'],\n            ['step', null, InputOption::VALUE_NONE, 'Force the migrations to be run so they can be rolled back individually'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/InstallCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\Command;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Illuminate\\Database\\Migrations\\MigrationRepositoryInterface;\n\nclass InstallCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:install';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create the migration repository';\n\n    /**\n     * The repository instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\MigrationRepositoryInterface\n     */\n    protected $repository;\n\n    /**\n     * Create a new migration install command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\MigrationRepositoryInterface  $repository\n     * @return void\n     */\n    public function __construct(MigrationRepositoryInterface $repository)\n    {\n        parent::__construct();\n\n        $this->repository = $repository;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->repository->setSource($this->input->getOption('database'));\n\n        $this->repository->createRepository();\n\n        $this->info('Migration table created successfully.');\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Illuminate\\Database\\Migrations\\Migrator;\n\nclass MigrateCommand extends BaseCommand\n{\n    use ConfirmableTrait;\n\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'migrate {--database= : The database connection to use}\n                {--force : Force the operation to run when in production}\n                {--path=* : The path(s) to the migrations files to be executed}\n                {--realpath : Indicate any provided migration file paths are pre-resolved absolute paths}\n                {--pretend : Dump the SQL queries that would be run}\n                {--seed : Indicates if the seed task should be re-run}\n                {--step : Force the migrations to be run so they can be rolled back individually}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Run the database migrations';\n\n    /**\n     * The migrator instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\Migrator\n     */\n    protected $migrator;\n\n    /**\n     * Create a new migration command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\Migrator  $migrator\n     * @return void\n     */\n    public function __construct(Migrator $migrator)\n    {\n        parent::__construct();\n\n        $this->migrator = $migrator;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        $this->prepareDatabase();\n\n        // Next, we will check to see if a path option has been defined. If it has\n        // we will use the path relative to the root of this installation folder\n        // so that migrations may be run for any path within the applications.\n        $this->migrator->setOutput($this->output)\n                ->run($this->getMigrationPaths(), [\n                    'pretend' => $this->option('pretend'),\n                    'step' => $this->option('step'),\n                ]);\n\n        // Finally, if the \"seed\" option has been given, we will re-run the database\n        // seed task to re-populate the database, which is convenient when adding\n        // a migration and a seed at the same time, as it is only this command.\n        if ($this->option('seed') && ! $this->option('pretend')) {\n            $this->call('db:seed', ['--force' => true]);\n        }\n    }\n\n    /**\n     * Prepare the migration database for running.\n     *\n     * @return void\n     */\n    protected function prepareDatabase()\n    {\n        $this->migrator->setConnection($this->option('database'));\n\n        if (! $this->migrator->repositoryExists()) {\n            $this->call('migrate:install', array_filter([\n                '--database' => $this->option('database'),\n            ]));\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/MigrateMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Database\\Migrations\\MigrationCreator;\n\nclass MigrateMakeCommand extends BaseCommand\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'make:migration {name : The name of the migration}\n        {--create= : The table to be created}\n        {--table= : The table to migrate}\n        {--path= : The location where the migration file should be created}\n        {--realpath : Indicate any provided migration file paths are pre-resolved absolute paths}\n        {--fullpath : Output the full path of the migration}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new migration file';\n\n    /**\n     * The migration creator instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\MigrationCreator\n     */\n    protected $creator;\n\n    /**\n     * The Composer instance.\n     *\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new migration install command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\MigrationCreator  $creator\n     * @param  \\Illuminate\\Support\\Composer  $composer\n     * @return void\n     */\n    public function __construct(MigrationCreator $creator, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->creator = $creator;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        // It's possible for the developer to specify the tables to modify in this\n        // schema operation. The developer may also specify if this table needs\n        // to be freshly created so we can create the appropriate migrations.\n        $name = Str::snake(trim($this->input->getArgument('name')));\n\n        $table = $this->input->getOption('table');\n\n        $create = $this->input->getOption('create') ?: false;\n\n        // If no table was given as an option but a create option is given then we\n        // will use the \"create\" option as the table name. This allows the devs\n        // to pass a table name into this option as a short-cut for creating.\n        if (! $table && is_string($create)) {\n            $table = $create;\n\n            $create = true;\n        }\n\n        // Next, we will attempt to guess the table name if this the migration has\n        // \"create\" in the name. This will allow us to provide a convenient way\n        // of creating migrations that create new tables for the application.\n        if (! $table) {\n            [$table, $create] = TableGuesser::guess($name);\n        }\n\n        // Now we are ready to write the migration out to disk. Once we've written\n        // the migration out, we will dump-autoload for the entire framework to\n        // make sure that the migrations are registered by the class loaders.\n        $this->writeMigration($name, $table, $create);\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Write the migration file to disk.\n     *\n     * @param  string  $name\n     * @param  string  $table\n     * @param  bool    $create\n     * @return string\n     */\n    protected function writeMigration($name, $table, $create)\n    {\n        $file = $this->creator->create(\n            $name, $this->getMigrationPath(), $table, $create\n        );\n\n        if (! $this->option('fullpath')) {\n            $file = pathinfo($file, PATHINFO_FILENAME);\n        }\n\n        $this->line(\"<info>Created Migration:</info> {$file}\");\n    }\n\n    /**\n     * Get migration path (either specified by '--path' option or default location).\n     *\n     * @return string\n     */\n    protected function getMigrationPath()\n    {\n        if (! is_null($targetPath = $this->input->getOption('path'))) {\n            return ! $this->usingRealPath()\n                            ? $this->laravel->basePath().'/'.$targetPath\n                            : $targetPath;\n        }\n\n        return parent::getMigrationPath();\n    }\n\n    /**\n     * Determine if the given path(s) are pre-resolved \"real\" paths.\n     *\n     * @return bool\n     */\n    protected function usingRealPath()\n    {\n        return $this->input->hasOption('realpath') && $this->option('realpath');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RefreshCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass RefreshCommand extends Command\n{\n    use ConfirmableTrait;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:refresh';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Reset and re-run all migrations';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        // Next we'll gather some of the options so that we can have the right options\n        // to pass to the commands. This includes options such as which database to\n        // use and the path to use for the migration. Then we'll run the command.\n        $database = $this->input->getOption('database');\n\n        $path = $this->input->getOption('path');\n\n        // If the \"step\" option is specified it means we only want to rollback a small\n        // number of migrations before migrating again. For example, the user might\n        // only rollback and remigrate the latest four migrations instead of all.\n        $step = $this->input->getOption('step') ?: 0;\n\n        if ($step > 0) {\n            $this->runRollback($database, $path, $step);\n        } else {\n            $this->runReset($database, $path);\n        }\n\n        // The refresh command is essentially just a brief aggregate of a few other of\n        // the migration commands and just provides a convenient wrapper to execute\n        // them in succession. We'll also see if we need to re-seed the database.\n        $this->call('migrate', array_filter([\n            '--database' => $database,\n            '--path' => $path,\n            '--realpath' => $this->input->getOption('realpath'),\n            '--force' => true,\n        ]));\n\n        if ($this->needsSeeding()) {\n            $this->runSeeder($database);\n        }\n    }\n\n    /**\n     * Run the rollback command.\n     *\n     * @param  string  $database\n     * @param  string  $path\n     * @param  int  $step\n     * @return void\n     */\n    protected function runRollback($database, $path, $step)\n    {\n        $this->call('migrate:rollback', array_filter([\n            '--database' => $database,\n            '--path' => $path,\n            '--realpath' => $this->input->getOption('realpath'),\n            '--step' => $step,\n            '--force' => true,\n        ]));\n    }\n\n    /**\n     * Run the reset command.\n     *\n     * @param  string  $database\n     * @param  string  $path\n     * @return void\n     */\n    protected function runReset($database, $path)\n    {\n        $this->call('migrate:reset', array_filter([\n            '--database' => $database,\n            '--path' => $path,\n            '--realpath' => $this->input->getOption('realpath'),\n            '--force' => true,\n        ]));\n    }\n\n    /**\n     * Determine if the developer has requested database seeding.\n     *\n     * @return bool\n     */\n    protected function needsSeeding()\n    {\n        return $this->option('seed') || $this->option('seeder');\n    }\n\n    /**\n     * Run the database seeder command.\n     *\n     * @param  string  $database\n     * @return void\n     */\n    protected function runSeeder($database)\n    {\n        $this->call('db:seed', array_filter([\n            '--database' => $database,\n            '--class' => $this->option('seeder') ?: 'DatabaseSeeder',\n            '--force' => true,\n        ]));\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n\n            ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],\n\n            ['path', null, InputOption::VALUE_OPTIONAL, 'The path to the migrations files to be executed'],\n\n            ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],\n\n            ['seed', null, InputOption::VALUE_NONE, 'Indicates if the seed task should be re-run'],\n\n            ['seeder', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder'],\n\n            ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted & re-run'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/ResetCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Illuminate\\Database\\Migrations\\Migrator;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ResetCommand extends BaseCommand\n{\n    use ConfirmableTrait;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:reset';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Rollback all database migrations';\n\n    /**\n     * The migrator instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\Migrator\n     */\n    protected $migrator;\n\n    /**\n     * Create a new migration rollback command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\Migrator  $migrator\n     * @return void\n     */\n    public function __construct(Migrator $migrator)\n    {\n        parent::__construct();\n\n        $this->migrator = $migrator;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        $this->migrator->setConnection($this->option('database'));\n\n        // First, we'll make sure that the migration table actually exists before we\n        // start trying to rollback and re-run all of the migrations. If it's not\n        // present we'll just bail out with an info message for the developers.\n        if (! $this->migrator->repositoryExists()) {\n            return $this->comment('Migration table not found.');\n        }\n\n        $this->migrator->setOutput($this->output)->reset(\n            $this->getMigrationPaths(), $this->option('pretend')\n        );\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n\n            ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],\n\n            ['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) to the migrations files to be executed'],\n\n            ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],\n\n            ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/RollbackCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Illuminate\\Database\\Migrations\\Migrator;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass RollbackCommand extends BaseCommand\n{\n    use ConfirmableTrait;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:rollback';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Rollback the last database migration';\n\n    /**\n     * The migrator instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\Migrator\n     */\n    protected $migrator;\n\n    /**\n     * Create a new migration rollback command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\Migrator  $migrator\n     * @return void\n     */\n    public function __construct(Migrator $migrator)\n    {\n        parent::__construct();\n\n        $this->migrator = $migrator;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        $this->migrator->setConnection($this->option('database'));\n\n        $this->migrator->setOutput($this->output)->rollback(\n            $this->getMigrationPaths(), [\n                'pretend' => $this->option('pretend'),\n                'step' => (int) $this->option('step'),\n            ]\n        );\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n\n            ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],\n\n            ['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) to the migrations files to be executed'],\n\n            ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],\n\n            ['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run'],\n\n            ['step', null, InputOption::VALUE_OPTIONAL, 'The number of migrations to be reverted'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/StatusCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Database\\Migrations\\Migrator;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass StatusCommand extends BaseCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'migrate:status';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Show the status of each migration';\n\n    /**\n     * The migrator instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\Migrator\n     */\n    protected $migrator;\n\n    /**\n     * Create a new migration rollback command instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\Migrator $migrator\n     * @return void\n     */\n    public function __construct(Migrator $migrator)\n    {\n        parent::__construct();\n\n        $this->migrator = $migrator;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->migrator->setConnection($this->option('database'));\n\n        if (! $this->migrator->repositoryExists()) {\n            return $this->error('Migration table not found.');\n        }\n\n        $ran = $this->migrator->getRepository()->getRan();\n\n        $batches = $this->migrator->getRepository()->getMigrationBatches();\n\n        if (count($migrations = $this->getStatusFor($ran, $batches)) > 0) {\n            $this->table(['Ran?', 'Migration', 'Batch'], $migrations);\n        } else {\n            $this->error('No migrations found');\n        }\n    }\n\n    /**\n     * Get the status for the given ran migrations.\n     *\n     * @param  array  $ran\n     * @param  array  $batches\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function getStatusFor(array $ran, array $batches)\n    {\n        return Collection::make($this->getAllMigrationFiles())\n                    ->map(function ($migration) use ($ran, $batches) {\n                        $migrationName = $this->migrator->getMigrationName($migration);\n\n                        return in_array($migrationName, $ran)\n                                ? ['<info>Yes</info>', $migrationName, $batches[$migrationName]]\n                                : ['<fg=red>No</fg=red>', $migrationName];\n                    });\n    }\n\n    /**\n     * Get an array of all of the migration files.\n     *\n     * @return array\n     */\n    protected function getAllMigrationFiles()\n    {\n        return $this->migrator->getMigrationFiles($this->getMigrationPaths());\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],\n\n            ['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) to the migrations files to use'],\n\n            ['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/TableGuesser.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Migrations;\n\nclass TableGuesser\n{\n    const CREATE_PATTERNS = [\n        '/^create_(\\w+)_table$/',\n        '/^create_(\\w+)$/',\n    ];\n\n    const CHANGE_PATTERNS = [\n        '/_(to|from|in)_(\\w+)_table$/',\n        '/_(to|from|in)_(\\w+)$/',\n    ];\n\n    /**\n     * Attempt to guess the table name and \"creation\" status of the given migration.\n     *\n     * @param  string  $migration\n     * @return array\n     */\n    public static function guess($migration)\n    {\n        foreach (self::CREATE_PATTERNS as $pattern) {\n            if (preg_match($pattern, $migration, $matches)) {\n                return [$matches[1], $create = true];\n            }\n        }\n\n        foreach (self::CHANGE_PATTERNS as $pattern) {\n            if (preg_match($pattern, $migration, $matches)) {\n                return [$matches[2], $create = false];\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Seeds;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Console\\ConfirmableTrait;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Illuminate\\Database\\ConnectionResolverInterface as Resolver;\n\nclass SeedCommand extends Command\n{\n    use ConfirmableTrait;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'db:seed';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Seed the database with records';\n\n    /**\n     * The connection resolver instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $resolver;\n\n    /**\n     * Create a new database seed command instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $resolver\n     * @return void\n     */\n    public function __construct(Resolver $resolver)\n    {\n        parent::__construct();\n\n        $this->resolver = $resolver;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (! $this->confirmToProceed()) {\n            return;\n        }\n\n        $this->resolver->setDefaultConnection($this->getDatabase());\n\n        Model::unguarded(function () {\n            $this->getSeeder()->__invoke();\n        });\n\n        $this->info('Database seeding completed successfully.');\n    }\n\n    /**\n     * Get a seeder instance from the container.\n     *\n     * @return \\Illuminate\\Database\\Seeder\n     */\n    protected function getSeeder()\n    {\n        $class = $this->laravel->make($this->input->getOption('class'));\n\n        return $class->setContainer($this->laravel)->setCommand($this);\n    }\n\n    /**\n     * Get the name of the database connection to use.\n     *\n     * @return string\n     */\n    protected function getDatabase()\n    {\n        $database = $this->input->getOption('database');\n\n        return $database ?: $this->laravel['config']['database.default'];\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['class', null, InputOption::VALUE_OPTIONAL, 'The class name of the root seeder', 'DatabaseSeeder'],\n\n            ['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to seed'],\n\n            ['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeederMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Console\\Seeds;\n\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass SeederMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:seeder';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new seeder class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Seeder';\n\n    /**\n     * The Composer instance.\n     *\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer  $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct($files);\n\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        parent::handle();\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/seeder.stub';\n    }\n\n    /**\n     * Get the destination class path.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getPath($name)\n    {\n        return $this->laravel->databasePath().'/seeds/'.$name.'.php';\n    }\n\n    /**\n     * Parse the class name and format according to the root namespace.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function qualifyClass($name)\n    {\n        return $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/stubs/seeder.stub",
    "content": "<?php\n\nuse Illuminate\\Database\\Seeder;\n\nclass DummyClass extends Seeder\n{\n    /**\n     * Run the database seeds.\n     *\n     * @return void\n     */\n    public function run()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse PDO;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\ConfigurationUrlParser;\nuse Illuminate\\Database\\Connectors\\ConnectionFactory;\n\n/**\n * @mixin \\Illuminate\\Database\\Connection\n */\nclass DatabaseManager implements ConnectionResolverInterface\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The database connection factory instance.\n     *\n     * @var \\Illuminate\\Database\\Connectors\\ConnectionFactory\n     */\n    protected $factory;\n\n    /**\n     * The active connection instances.\n     *\n     * @var array\n     */\n    protected $connections = [];\n\n    /**\n     * The custom connection resolvers.\n     *\n     * @var array\n     */\n    protected $extensions = [];\n\n    /**\n     * The callback to be executed to reconnect to a database.\n     *\n     * @var callable\n     */\n    protected $reconnector;\n\n    /**\n     * Create a new database manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Database\\Connectors\\ConnectionFactory  $factory\n     * @return void\n     */\n    public function __construct($app, ConnectionFactory $factory)\n    {\n        $this->app = $app;\n        $this->factory = $factory;\n\n        $this->reconnector = function ($connection) {\n            $this->reconnect($connection->getName());\n        };\n    }\n\n    /**\n     * Get a database connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function connection($name = null)\n    {\n        [$database, $type] = $this->parseConnectionName($name);\n\n        $name = $name ?: $database;\n\n        // If we haven't created this connection, we'll create it based on the config\n        // provided in the application. Once we've created the connections we will\n        // set the \"fetch mode\" for PDO which determines the query return types.\n        if (! isset($this->connections[$name])) {\n            $this->connections[$name] = $this->configure(\n                $this->makeConnection($database), $type\n            );\n        }\n\n        return $this->connections[$name];\n    }\n\n    /**\n     * Parse the connection into an array of the name and read / write type.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function parseConnectionName($name)\n    {\n        $name = $name ?: $this->getDefaultConnection();\n\n        return Str::endsWith($name, ['::read', '::write'])\n                            ? explode('::', $name, 2) : [$name, null];\n    }\n\n    /**\n     * Make the database connection instance.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function makeConnection($name)\n    {\n        $config = $this->configuration($name);\n\n        // First we will check by the connection name to see if an extension has been\n        // registered specifically for that connection. If it has we will call the\n        // Closure and pass it the config allowing it to resolve the connection.\n        if (isset($this->extensions[$name])) {\n            return call_user_func($this->extensions[$name], $config, $name);\n        }\n\n        // Next we will check to see if an extension has been registered for a driver\n        // and will call the Closure if so, which allows us to have a more generic\n        // resolver for the drivers themselves which applies to all connections.\n        if (isset($this->extensions[$driver = $config['driver']])) {\n            return call_user_func($this->extensions[$driver], $config, $name);\n        }\n\n        return $this->factory->make($config, $name);\n    }\n\n    /**\n     * Get the configuration for a connection.\n     *\n     * @param  string  $name\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function configuration($name)\n    {\n        $name = $name ?: $this->getDefaultConnection();\n\n        // To get the database connection configuration, we will just pull each of the\n        // connection configurations and get the configurations for the given name.\n        // If the configuration doesn't exist, we'll throw an exception and bail.\n        $connections = $this->app['config']['database.connections'];\n\n        if (is_null($config = Arr::get($connections, $name))) {\n            throw new InvalidArgumentException(\"Database [{$name}] not configured.\");\n        }\n\n        return (new ConfigurationUrlParser)\n                    ->parseConfiguration($config);\n    }\n\n    /**\n     * Prepare the database connection instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  string  $type\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function configure(Connection $connection, $type)\n    {\n        $connection = $this->setPdoForType($connection, $type);\n\n        // First we'll set the fetch mode and a few other dependencies of the database\n        // connection. This method basically just configures and prepares it to get\n        // used by the application. Once we're finished we'll return it back out.\n        if ($this->app->bound('events')) {\n            $connection->setEventDispatcher($this->app['events']);\n        }\n\n        // Here we'll set a reconnector callback. This reconnector can be any callable\n        // so we will set a Closure to reconnect from this manager with the name of\n        // the connection, which will allow us to reconnect from the connections.\n        $connection->setReconnector($this->reconnector);\n\n        return $connection;\n    }\n\n    /**\n     * Prepare the read / write mode for database connection instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  string|null  $type\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function setPdoForType(Connection $connection, $type = null)\n    {\n        if ($type === 'read') {\n            $connection->setPdo($connection->getReadPdo());\n        } elseif ($type === 'write') {\n            $connection->setReadPdo($connection->getPdo());\n        }\n\n        return $connection;\n    }\n\n    /**\n     * Disconnect from the given database and remove from local cache.\n     *\n     * @param  string|null  $name\n     * @return void\n     */\n    public function purge($name = null)\n    {\n        $name = $name ?: $this->getDefaultConnection();\n\n        $this->disconnect($name);\n\n        unset($this->connections[$name]);\n    }\n\n    /**\n     * Disconnect from the given database.\n     *\n     * @param  string|null  $name\n     * @return void\n     */\n    public function disconnect($name = null)\n    {\n        if (isset($this->connections[$name = $name ?: $this->getDefaultConnection()])) {\n            $this->connections[$name]->disconnect();\n        }\n    }\n\n    /**\n     * Reconnect to the given database.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function reconnect($name = null)\n    {\n        $this->disconnect($name = $name ?: $this->getDefaultConnection());\n\n        if (! isset($this->connections[$name])) {\n            return $this->connection($name);\n        }\n\n        return $this->refreshPdoConnections($name);\n    }\n\n    /**\n     * Refresh the PDO connections on a given connection.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function refreshPdoConnections($name)\n    {\n        $fresh = $this->makeConnection($name);\n\n        return $this->connections[$name]\n                                ->setPdo($fresh->getPdo())\n                                ->setReadPdo($fresh->getReadPdo());\n    }\n\n    /**\n     * Get the default connection name.\n     *\n     * @return string\n     */\n    public function getDefaultConnection()\n    {\n        return $this->app['config']['database.default'];\n    }\n\n    /**\n     * Set the default connection name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultConnection($name)\n    {\n        $this->app['config']['database.default'] = $name;\n    }\n\n    /**\n     * Get all of the support drivers.\n     *\n     * @return array\n     */\n    public function supportedDrivers()\n    {\n        return ['mysql', 'pgsql', 'sqlite', 'sqlsrv'];\n    }\n\n    /**\n     * Get all of the drivers that are actually available.\n     *\n     * @return array\n     */\n    public function availableDrivers()\n    {\n        return array_intersect(\n            $this->supportedDrivers(),\n            str_replace('dblib', 'sqlsrv', PDO::getAvailableDrivers())\n        );\n    }\n\n    /**\n     * Register an extension connection resolver.\n     *\n     * @param  string    $name\n     * @param  callable  $resolver\n     * @return void\n     */\n    public function extend($name, callable $resolver)\n    {\n        $this->extensions[$name] = $resolver;\n    }\n\n    /**\n     * Return all of the created connections.\n     *\n     * @return array\n     */\n    public function getConnections()\n    {\n        return $this->connections;\n    }\n\n    /**\n     * Set the database reconnector callback.\n     *\n     * @param  callable  $reconnector\n     * @return void\n     */\n    public function setReconnector(callable $reconnector)\n    {\n        $this->reconnector = $reconnector;\n    }\n\n    /**\n     * Dynamically pass methods to the default connection.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->connection()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/DatabaseServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Faker\\Factory as FakerFactory;\nuse Faker\\Generator as FakerGenerator;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Queue\\EntityResolver;\nuse Illuminate\\Database\\Connectors\\ConnectionFactory;\nuse Illuminate\\Database\\Eloquent\\QueueEntityResolver;\nuse Illuminate\\Database\\Eloquent\\Factory as EloquentFactory;\n\nclass DatabaseServiceProvider extends ServiceProvider\n{\n    /**\n     * Bootstrap the application events.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        Model::setConnectionResolver($this->app['db']);\n\n        Model::setEventDispatcher($this->app['events']);\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        Model::clearBootedModels();\n\n        $this->registerConnectionServices();\n\n        $this->registerEloquentFactory();\n\n        $this->registerQueueableEntityResolver();\n    }\n\n    /**\n     * Register the primary database bindings.\n     *\n     * @return void\n     */\n    protected function registerConnectionServices()\n    {\n        // The connection factory is used to create the actual connection instances on\n        // the database. We will inject the factory into the manager so that it may\n        // make the connections while they are actually needed and not of before.\n        $this->app->singleton('db.factory', function ($app) {\n            return new ConnectionFactory($app);\n        });\n\n        // The database manager is used to resolve various connections, since multiple\n        // connections might be managed. It also implements the connection resolver\n        // interface which may be used by other components requiring connections.\n        $this->app->singleton('db', function ($app) {\n            return new DatabaseManager($app, $app['db.factory']);\n        });\n\n        $this->app->bind('db.connection', function ($app) {\n            return $app['db']->connection();\n        });\n    }\n\n    /**\n     * Register the Eloquent factory instance in the container.\n     *\n     * @return void\n     */\n    protected function registerEloquentFactory()\n    {\n        $this->app->singleton(FakerGenerator::class, function ($app) {\n            return FakerFactory::create($app['config']->get('app.faker_locale', 'en_US'));\n        });\n\n        $this->app->singleton(EloquentFactory::class, function ($app) {\n            return EloquentFactory::construct(\n                $app->make(FakerGenerator::class), $this->app->databasePath('factories')\n            );\n        });\n    }\n\n    /**\n     * Register the queueable entity resolver implementation.\n     *\n     * @return void\n     */\n    protected function registerQueueableEntityResolver()\n    {\n        $this->app->singleton(EntityResolver::class, function () {\n            return new QueueEntityResolver;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/DetectsDeadlocks.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Exception;\nuse Illuminate\\Support\\Str;\n\ntrait DetectsDeadlocks\n{\n    /**\n     * Determine if the given exception was caused by a deadlock.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    protected function causedByDeadlock(Exception $e)\n    {\n        $message = $e->getMessage();\n\n        return Str::contains($message, [\n            'Deadlock found when trying to get lock',\n            'deadlock detected',\n            'The database file is locked',\n            'database is locked',\n            'database table is locked',\n            'A table in the database is locked',\n            'has been chosen as the deadlock victim',\n            'Lock wait timeout exceeded; try restarting transaction',\n            'WSREP detected deadlock/conflict and aborted the transaction. Try restarting the transaction',\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/DetectsLostConnections.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Throwable;\nuse Illuminate\\Support\\Str;\n\ntrait DetectsLostConnections\n{\n    /**\n     * Determine if the given exception was caused by a lost connection.\n     *\n     * @param  \\Throwable  $e\n     * @return bool\n     */\n    protected function causedByLostConnection(Throwable $e)\n    {\n        $message = $e->getMessage();\n\n        return Str::contains($message, [\n            'server has gone away',\n            'no connection to the server',\n            'Lost connection',\n            'is dead or not enabled',\n            'Error while sending',\n            'decryption failed or bad record mac',\n            'server closed the connection unexpectedly',\n            'SSL connection has been closed unexpectedly',\n            'Error writing data to the connection',\n            'Resource deadlock avoided',\n            'Transaction() on null',\n            'child connection forced to terminate due to client_idle_limit',\n            'query_wait_timeout',\n            'reset by peer',\n            'Physical connection is not usable',\n            'TCP Provider: Error code 0x68',\n            'ORA-03114',\n            'Packets out of order. Expected',\n            'Adaptive Server connection failed',\n            'Communication link failure',\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse Closure;\nuse Exception;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Pagination\\Paginator;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Database\\Concerns\\BuildsQueries;\nuse Illuminate\\Database\\Eloquent\\Relations\\Relation;\nuse Illuminate\\Database\\Query\\Builder as QueryBuilder;\n\n/**\n * @property-read HigherOrderBuilderProxy $orWhere\n *\n * @mixin \\Illuminate\\Database\\Query\\Builder\n */\nclass Builder\n{\n    use BuildsQueries, Concerns\\QueriesRelationships, ForwardsCalls;\n\n    /**\n     * The base query builder instance.\n     *\n     * @var \\Illuminate\\Database\\Query\\Builder\n     */\n    protected $query;\n\n    /**\n     * The model being queried.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected $model;\n\n    /**\n     * The relationships that should be eager loaded.\n     *\n     * @var array\n     */\n    protected $eagerLoad = [];\n\n    /**\n     * All of the globally registered builder macros.\n     *\n     * @var array\n     */\n    protected static $macros = [];\n\n    /**\n     * All of the locally registered builder macros.\n     *\n     * @var array\n     */\n    protected $localMacros = [];\n\n    /**\n     * A replacement for the typical delete function.\n     *\n     * @var \\Closure\n     */\n    protected $onDelete;\n\n    /**\n     * The methods that should be returned from query builder.\n     *\n     * @var array\n     */\n    protected $passthru = [\n        'insert', 'insertGetId', 'getBindings', 'toSql', 'dump', 'dd',\n        'exists', 'doesntExist', 'count', 'min', 'max', 'avg', 'average', 'sum', 'getConnection',\n    ];\n\n    /**\n     * Applied global scopes.\n     *\n     * @var array\n     */\n    protected $scopes = [];\n\n    /**\n     * Removed global scopes.\n     *\n     * @var array\n     */\n    protected $removedScopes = [];\n\n    /**\n     * Create a new Eloquent query builder instance.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return void\n     */\n    public function __construct(QueryBuilder $query)\n    {\n        $this->query = $query;\n    }\n\n    /**\n     * Create and return an un-saved model instance.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function make(array $attributes = [])\n    {\n        return $this->newModelInstance($attributes);\n    }\n\n    /**\n     * Register a new global scope.\n     *\n     * @param  string  $identifier\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|\\Closure  $scope\n     * @return $this\n     */\n    public function withGlobalScope($identifier, $scope)\n    {\n        $this->scopes[$identifier] = $scope;\n\n        if (method_exists($scope, 'extend')) {\n            $scope->extend($this);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Remove a registered global scope.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|string  $scope\n     * @return $this\n     */\n    public function withoutGlobalScope($scope)\n    {\n        if (! is_string($scope)) {\n            $scope = get_class($scope);\n        }\n\n        unset($this->scopes[$scope]);\n\n        $this->removedScopes[] = $scope;\n\n        return $this;\n    }\n\n    /**\n     * Remove all or passed registered global scopes.\n     *\n     * @param  array|null  $scopes\n     * @return $this\n     */\n    public function withoutGlobalScopes(array $scopes = null)\n    {\n        if (! is_array($scopes)) {\n            $scopes = array_keys($this->scopes);\n        }\n\n        foreach ($scopes as $scope) {\n            $this->withoutGlobalScope($scope);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get an array of global scopes that were removed from the query.\n     *\n     * @return array\n     */\n    public function removedScopes()\n    {\n        return $this->removedScopes;\n    }\n\n    /**\n     * Add a where clause on the primary key to the query.\n     *\n     * @param  mixed  $id\n     * @return $this\n     */\n    public function whereKey($id)\n    {\n        if (is_array($id) || $id instanceof Arrayable) {\n            $this->query->whereIn($this->model->getQualifiedKeyName(), $id);\n\n            return $this;\n        }\n\n        return $this->where($this->model->getQualifiedKeyName(), '=', $id);\n    }\n\n    /**\n     * Add a where clause on the primary key to the query.\n     *\n     * @param  mixed  $id\n     * @return $this\n     */\n    public function whereKeyNot($id)\n    {\n        if (is_array($id) || $id instanceof Arrayable) {\n            $this->query->whereNotIn($this->model->getQualifiedKeyName(), $id);\n\n            return $this;\n        }\n\n        return $this->where($this->model->getQualifiedKeyName(), '!=', $id);\n    }\n\n    /**\n     * Add a basic where clause to the query.\n     *\n     * @param  string|array|\\Closure  $column\n     * @param  mixed   $operator\n     * @param  mixed   $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function where($column, $operator = null, $value = null, $boolean = 'and')\n    {\n        if ($column instanceof Closure) {\n            $column($query = $this->model->newModelQuery());\n\n            $this->query->addNestedWhereQuery($query->getQuery(), $boolean);\n        } else {\n            $this->query->where(...func_get_args());\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add an \"or where\" clause to the query.\n     *\n     * @param  \\Closure|array|string  $column\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orWhere($column, $operator = null, $value = null)\n    {\n        [$value, $operator] = $this->query->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->where($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add an \"order by\" clause for a timestamp to the query.\n     *\n     * @param  string  $column\n     * @return $this\n     */\n    public function latest($column = null)\n    {\n        if (is_null($column)) {\n            $column = $this->model->getCreatedAtColumn() ?? 'created_at';\n        }\n\n        $this->query->latest($column);\n\n        return $this;\n    }\n\n    /**\n     * Add an \"order by\" clause for a timestamp to the query.\n     *\n     * @param  string  $column\n     * @return $this\n     */\n    public function oldest($column = null)\n    {\n        if (is_null($column)) {\n            $column = $this->model->getCreatedAtColumn() ?? 'created_at';\n        }\n\n        $this->query->oldest($column);\n\n        return $this;\n    }\n\n    /**\n     * Create a collection of models from plain arrays.\n     *\n     * @param  array  $items\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function hydrate(array $items)\n    {\n        $instance = $this->newModelInstance();\n\n        return $instance->newCollection(array_map(function ($item) use ($instance) {\n            return $instance->newFromBuilder($item);\n        }, $items));\n    }\n\n    /**\n     * Create a collection of models from a raw query.\n     *\n     * @param  string  $query\n     * @param  array  $bindings\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function fromQuery($query, $bindings = [])\n    {\n        return $this->hydrate(\n            $this->query->getConnection()->select($query, $bindings)\n        );\n    }\n\n    /**\n     * Find a model by its primary key.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection|static[]|static|null\n     */\n    public function find($id, $columns = ['*'])\n    {\n        if (is_array($id) || $id instanceof Arrayable) {\n            return $this->findMany($id, $columns);\n        }\n\n        return $this->whereKey($id)->first($columns);\n    }\n\n    /**\n     * Find multiple models by their primary keys.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $ids\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function findMany($ids, $columns = ['*'])\n    {\n        $ids = $ids instanceof Arrayable ? $ids->toArray() : $ids;\n\n        if (empty($ids)) {\n            return $this->model->newCollection();\n        }\n\n        return $this->whereKey($ids)->get($columns);\n    }\n\n    /**\n     * Find a model by its primary key or throw an exception.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection|static|static[]\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function findOrFail($id, $columns = ['*'])\n    {\n        $result = $this->find($id, $columns);\n\n        if (is_array($id)) {\n            if (count($result) === count(array_unique($id))) {\n                return $result;\n            }\n        } elseif (! is_null($result)) {\n            return $result;\n        }\n\n        throw (new ModelNotFoundException)->setModel(\n            get_class($this->model), $id\n        );\n    }\n\n    /**\n     * Find a model by its primary key or return fresh model instance.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function findOrNew($id, $columns = ['*'])\n    {\n        if (! is_null($model = $this->find($id, $columns))) {\n            return $model;\n        }\n\n        return $this->newModelInstance();\n    }\n\n    /**\n     * Get the first record matching the attributes or instantiate it.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function firstOrNew(array $attributes, array $values = [])\n    {\n        if (! is_null($instance = $this->where($attributes)->first())) {\n            return $instance;\n        }\n\n        return $this->newModelInstance($attributes + $values);\n    }\n\n    /**\n     * Get the first record matching the attributes or create it.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function firstOrCreate(array $attributes, array $values = [])\n    {\n        if (! is_null($instance = $this->where($attributes)->first())) {\n            return $instance;\n        }\n\n        return tap($this->newModelInstance($attributes + $values), function ($instance) {\n            $instance->save();\n        });\n    }\n\n    /**\n     * Create or update a record matching the attributes, and fill it with values.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function updateOrCreate(array $attributes, array $values = [])\n    {\n        return tap($this->firstOrNew($attributes), function ($instance) use ($values) {\n            $instance->fill($values)->save();\n        });\n    }\n\n    /**\n     * Execute the query and get the first result or throw an exception.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function firstOrFail($columns = ['*'])\n    {\n        if (! is_null($model = $this->first($columns))) {\n            return $model;\n        }\n\n        throw (new ModelNotFoundException)->setModel(get_class($this->model));\n    }\n\n    /**\n     * Execute the query and get the first result or call a callback.\n     *\n     * @param  \\Closure|array  $columns\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static|mixed\n     */\n    public function firstOr($columns = ['*'], Closure $callback = null)\n    {\n        if ($columns instanceof Closure) {\n            $callback = $columns;\n\n            $columns = ['*'];\n        }\n\n        if (! is_null($model = $this->first($columns))) {\n            return $model;\n        }\n\n        return call_user_func($callback);\n    }\n\n    /**\n     * Get a single column's value from the first result of a query.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function value($column)\n    {\n        if ($result = $this->first([$column])) {\n            return $result->{$column};\n        }\n    }\n\n    /**\n     * Execute the query as a \"select\" statement.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection|static[]\n     */\n    public function get($columns = ['*'])\n    {\n        $builder = $this->applyScopes();\n\n        // If we actually found models we will also eager load any relationships that\n        // have been specified as needing to be eager loaded, which will solve the\n        // n+1 query issue for the developers to avoid running a lot of queries.\n        if (count($models = $builder->getModels($columns)) > 0) {\n            $models = $builder->eagerLoadRelations($models);\n        }\n\n        return $builder->getModel()->newCollection($models);\n    }\n\n    /**\n     * Get the hydrated models without eager loading.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model[]|static[]\n     */\n    public function getModels($columns = ['*'])\n    {\n        return $this->model->hydrate(\n            $this->query->get($columns)->all()\n        )->all();\n    }\n\n    /**\n     * Eager load the relationships for the models.\n     *\n     * @param  array  $models\n     * @return array\n     */\n    public function eagerLoadRelations(array $models)\n    {\n        foreach ($this->eagerLoad as $name => $constraints) {\n            // For nested eager loads we'll skip loading them here and they will be set as an\n            // eager load on the query to retrieve the relation so that they will be eager\n            // loaded on that query, because that is where they get hydrated as models.\n            if (strpos($name, '.') === false) {\n                $models = $this->eagerLoadRelation($models, $name, $constraints);\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Eagerly load the relationship on a set of models.\n     *\n     * @param  array  $models\n     * @param  string  $name\n     * @param  \\Closure  $constraints\n     * @return array\n     */\n    protected function eagerLoadRelation(array $models, $name, Closure $constraints)\n    {\n        // First we will \"back up\" the existing where conditions on the query so we can\n        // add our eager constraints. Then we will merge the wheres that were on the\n        // query back to it in order that any where conditions might be specified.\n        $relation = $this->getRelation($name);\n\n        $relation->addEagerConstraints($models);\n\n        $constraints($relation);\n\n        // Once we have the results, we just match those back up to their parent models\n        // using the relationship instance. Then we just return the finished arrays\n        // of models which have been eagerly hydrated and are readied for return.\n        return $relation->match(\n            $relation->initRelation($models, $name),\n            $relation->getEager(), $name\n        );\n    }\n\n    /**\n     * Get the relation instance for the given relation name.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Relation\n     */\n    public function getRelation($name)\n    {\n        // We want to run a relationship query without any constrains so that we will\n        // not have to remove these where clauses manually which gets really hacky\n        // and error prone. We don't want constraints because we add eager ones.\n        $relation = Relation::noConstraints(function () use ($name) {\n            try {\n                return $this->getModel()->newInstance()->$name();\n            } catch (BadMethodCallException $e) {\n                throw RelationNotFoundException::make($this->getModel(), $name);\n            }\n        });\n\n        $nested = $this->relationsNestedUnder($name);\n\n        // If there are nested relationships set on the query, we will put those onto\n        // the query instances so that they can be handled after this relationship\n        // is loaded. In this way they will all trickle down as they are loaded.\n        if (count($nested) > 0) {\n            $relation->getQuery()->with($nested);\n        }\n\n        return $relation;\n    }\n\n    /**\n     * Get the deeply nested relations for a given top-level relation.\n     *\n     * @param  string  $relation\n     * @return array\n     */\n    protected function relationsNestedUnder($relation)\n    {\n        $nested = [];\n\n        // We are basically looking for any relationships that are nested deeper than\n        // the given top-level relationship. We will just check for any relations\n        // that start with the given top relations and adds them to our arrays.\n        foreach ($this->eagerLoad as $name => $constraints) {\n            if ($this->isNestedUnder($relation, $name)) {\n                $nested[substr($name, strlen($relation.'.'))] = $constraints;\n            }\n        }\n\n        return $nested;\n    }\n\n    /**\n     * Determine if the relationship is nested.\n     *\n     * @param  string  $relation\n     * @param  string  $name\n     * @return bool\n     */\n    protected function isNestedUnder($relation, $name)\n    {\n        return Str::contains($name, '.') && Str::startsWith($name, $relation.'.');\n    }\n\n    /**\n     * Get a generator for the given query.\n     *\n     * @return \\Generator\n     */\n    public function cursor()\n    {\n        foreach ($this->applyScopes()->query->cursor() as $record) {\n            yield $this->newModelInstance()->newFromBuilder($record);\n        }\n    }\n\n    /**\n     * Chunk the results of a query by comparing numeric IDs.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @param  string|null  $column\n     * @param  string|null  $alias\n     * @return bool\n     */\n    public function chunkById($count, callable $callback, $column = null, $alias = null)\n    {\n        $column = is_null($column) ? $this->getModel()->getKeyName() : $column;\n\n        $alias = is_null($alias) ? $column : $alias;\n\n        $lastId = null;\n\n        do {\n            $clone = clone $this;\n\n            // We'll execute the query for the given page and get the results. If there are\n            // no results we can just break and return from here. When there are results\n            // we will call the callback with the current chunk of these results here.\n            $results = $clone->forPageAfterId($count, $lastId, $column)->get();\n\n            $countResults = $results->count();\n\n            if ($countResults == 0) {\n                break;\n            }\n\n            // On each chunk result set, we will pass them to the callback and then let the\n            // developer take care of everything within the callback, which allows us to\n            // keep the memory low for spinning through large result sets for working.\n            if ($callback($results) === false) {\n                return false;\n            }\n\n            $lastId = $results->last()->{$alias};\n\n            unset($results);\n        } while ($countResults == $count);\n\n        return true;\n    }\n\n    /**\n     * Add a generic \"order by\" clause if the query doesn't already have one.\n     *\n     * @return void\n     */\n    protected function enforceOrderBy()\n    {\n        if (empty($this->query->orders) && empty($this->query->unionOrders)) {\n            $this->orderBy($this->model->getQualifiedKeyName(), 'asc');\n        }\n    }\n\n    /**\n     * Get an array with the values of a given column.\n     *\n     * @param  string  $column\n     * @param  string|null  $key\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function pluck($column, $key = null)\n    {\n        $results = $this->toBase()->pluck($column, $key);\n\n        // If the model has a mutator for the requested column, we will spin through\n        // the results and mutate the values so that the mutated version of these\n        // columns are returned as you would expect from these Eloquent models.\n        if (! $this->model->hasGetMutator($column) &&\n            ! $this->model->hasCast($column) &&\n            ! in_array($column, $this->model->getDates())) {\n            return $results;\n        }\n\n        return $results->map(function ($value) use ($column) {\n            return $this->model->newFromBuilder([$column => $value])->{$column};\n        });\n    }\n\n    /**\n     * Paginate the given query.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $page = $page ?: Paginator::resolveCurrentPage($pageName);\n\n        $perPage = $perPage ?: $this->model->getPerPage();\n\n        $results = ($total = $this->toBase()->getCountForPagination())\n                                    ? $this->forPage($page, $perPage)->get($columns)\n                                    : $this->model->newCollection();\n\n        return $this->paginator($results, $total, $perPage, $page, [\n            'path' => Paginator::resolveCurrentPath(),\n            'pageName' => $pageName,\n        ]);\n    }\n\n    /**\n     * Paginate the given query into a simple paginator.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n     */\n    public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $page = $page ?: Paginator::resolveCurrentPage($pageName);\n\n        $perPage = $perPage ?: $this->model->getPerPage();\n\n        // Next we will set the limit and offset for this query so that when we get the\n        // results we get the proper section of results. Then, we'll create the full\n        // paginator instances for these results with the given page and per page.\n        $this->skip(($page - 1) * $perPage)->take($perPage + 1);\n\n        return $this->simplePaginator($this->get($columns), $perPage, $page, [\n            'path' => Paginator::resolveCurrentPath(),\n            'pageName' => $pageName,\n        ]);\n    }\n\n    /**\n     * Save a new model and return the instance.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model|$this\n     */\n    public function create(array $attributes = [])\n    {\n        return tap($this->newModelInstance($attributes), function ($instance) {\n            $instance->save();\n        });\n    }\n\n    /**\n     * Save a new model and return the instance. Allow mass-assignment.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model|$this\n     */\n    public function forceCreate(array $attributes)\n    {\n        return $this->model->unguarded(function () use ($attributes) {\n            return $this->newModelInstance()->create($attributes);\n        });\n    }\n\n    /**\n     * Update a record in the database.\n     *\n     * @param  array  $values\n     * @return int\n     */\n    public function update(array $values)\n    {\n        return $this->toBase()->update($this->addUpdatedAtColumn($values));\n    }\n\n    /**\n     * Increment a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    public function increment($column, $amount = 1, array $extra = [])\n    {\n        return $this->toBase()->increment(\n            $column, $amount, $this->addUpdatedAtColumn($extra)\n        );\n    }\n\n    /**\n     * Decrement a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    public function decrement($column, $amount = 1, array $extra = [])\n    {\n        return $this->toBase()->decrement(\n            $column, $amount, $this->addUpdatedAtColumn($extra)\n        );\n    }\n\n    /**\n     * Add the \"updated at\" column to an array of values.\n     *\n     * @param  array  $values\n     * @return array\n     */\n    protected function addUpdatedAtColumn(array $values)\n    {\n        if (! $this->model->usesTimestamps() ||\n            is_null($this->model->getUpdatedAtColumn())) {\n            return $values;\n        }\n\n        $column = $this->model->getUpdatedAtColumn();\n\n        $values = array_merge(\n            [$column => $this->model->freshTimestampString()],\n            $values\n        );\n\n        $segments = preg_split('/\\s+as\\s+/i', $this->query->from);\n\n        $qualifiedColumn = end($segments).'.'.$column;\n\n        $values[$qualifiedColumn] = $values[$column];\n\n        unset($values[$column]);\n\n        return $values;\n    }\n\n    /**\n     * Delete a record from the database.\n     *\n     * @return mixed\n     */\n    public function delete()\n    {\n        if (isset($this->onDelete)) {\n            return call_user_func($this->onDelete, $this);\n        }\n\n        return $this->toBase()->delete();\n    }\n\n    /**\n     * Run the default delete function on the builder.\n     *\n     * Since we do not apply scopes here, the row will actually be deleted.\n     *\n     * @return mixed\n     */\n    public function forceDelete()\n    {\n        return $this->query->delete();\n    }\n\n    /**\n     * Register a replacement for the default delete function.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function onDelete(Closure $callback)\n    {\n        $this->onDelete = $callback;\n    }\n\n    /**\n     * Call the given local model scopes.\n     *\n     * @param  array  $scopes\n     * @return static|mixed\n     */\n    public function scopes(array $scopes)\n    {\n        $builder = $this;\n\n        foreach ($scopes as $scope => $parameters) {\n            // If the scope key is an integer, then the scope was passed as the value and\n            // the parameter list is empty, so we will format the scope name and these\n            // parameters here. Then, we'll be ready to call the scope on the model.\n            if (is_int($scope)) {\n                [$scope, $parameters] = [$parameters, []];\n            }\n\n            // Next we'll pass the scope callback to the callScope method which will take\n            // care of grouping the \"wheres\" properly so the logical order doesn't get\n            // messed up when adding scopes. Then we'll return back out the builder.\n            $builder = $builder->callScope(\n                [$this->model, 'scope'.ucfirst($scope)],\n                (array) $parameters\n            );\n        }\n\n        return $builder;\n    }\n\n    /**\n     * Apply the scopes to the Eloquent builder instance and return it.\n     *\n     * @return static\n     */\n    public function applyScopes()\n    {\n        if (! $this->scopes) {\n            return $this;\n        }\n\n        $builder = clone $this;\n\n        foreach ($this->scopes as $identifier => $scope) {\n            if (! isset($builder->scopes[$identifier])) {\n                continue;\n            }\n\n            $builder->callScope(function (self $builder) use ($scope) {\n                // If the scope is a Closure we will just go ahead and call the scope with the\n                // builder instance. The \"callScope\" method will properly group the clauses\n                // that are added to this query so \"where\" clauses maintain proper logic.\n                if ($scope instanceof Closure) {\n                    $scope($builder);\n                }\n\n                // If the scope is a scope object, we will call the apply method on this scope\n                // passing in the builder and the model instance. After we run all of these\n                // scopes we will return back the builder instance to the outside caller.\n                if ($scope instanceof Scope) {\n                    $scope->apply($builder, $this->getModel());\n                }\n            });\n        }\n\n        return $builder;\n    }\n\n    /**\n     * Apply the given scope on the current builder instance.\n     *\n     * @param  callable  $scope\n     * @param  array  $parameters\n     * @return mixed\n     */\n    protected function callScope(callable $scope, $parameters = [])\n    {\n        array_unshift($parameters, $this);\n\n        $query = $this->getQuery();\n\n        // We will keep track of how many wheres are on the query before running the\n        // scope so that we can properly group the added scope constraints in the\n        // query as their own isolated nested where statement and avoid issues.\n        $originalWhereCount = is_null($query->wheres)\n                    ? 0 : count($query->wheres);\n\n        $result = $scope(...array_values($parameters)) ?? $this;\n\n        if (count((array) $query->wheres) > $originalWhereCount) {\n            $this->addNewWheresWithinGroup($query, $originalWhereCount);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Nest where conditions by slicing them at the given where count.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  int  $originalWhereCount\n     * @return void\n     */\n    protected function addNewWheresWithinGroup(QueryBuilder $query, $originalWhereCount)\n    {\n        // Here, we totally remove all of the where clauses since we are going to\n        // rebuild them as nested queries by slicing the groups of wheres into\n        // their own sections. This is to prevent any confusing logic order.\n        $allWheres = $query->wheres;\n\n        $query->wheres = [];\n\n        $this->groupWhereSliceForScope(\n            $query, array_slice($allWheres, 0, $originalWhereCount)\n        );\n\n        $this->groupWhereSliceForScope(\n            $query, array_slice($allWheres, $originalWhereCount)\n        );\n    }\n\n    /**\n     * Slice where conditions at the given offset and add them to the query as a nested condition.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $whereSlice\n     * @return void\n     */\n    protected function groupWhereSliceForScope(QueryBuilder $query, $whereSlice)\n    {\n        $whereBooleans = collect($whereSlice)->pluck('boolean');\n\n        // Here we'll check if the given subset of where clauses contains any \"or\"\n        // booleans and in this case create a nested where expression. That way\n        // we don't add any unnecessary nesting thus keeping the query clean.\n        if ($whereBooleans->contains('or')) {\n            $query->wheres[] = $this->createNestedWhere(\n                $whereSlice, $whereBooleans->first()\n            );\n        } else {\n            $query->wheres = array_merge($query->wheres, $whereSlice);\n        }\n    }\n\n    /**\n     * Create a where array with nested where conditions.\n     *\n     * @param  array  $whereSlice\n     * @param  string  $boolean\n     * @return array\n     */\n    protected function createNestedWhere($whereSlice, $boolean = 'and')\n    {\n        $whereGroup = $this->getQuery()->forNestedWhere();\n\n        $whereGroup->wheres = $whereSlice;\n\n        return ['type' => 'Nested', 'query' => $whereGroup, 'boolean' => $boolean];\n    }\n\n    /**\n     * Set the relationships that should be eager loaded.\n     *\n     * @param  mixed  $relations\n     * @return $this\n     */\n    public function with($relations)\n    {\n        $eagerLoad = $this->parseWithRelations(is_string($relations) ? func_get_args() : $relations);\n\n        $this->eagerLoad = array_merge($this->eagerLoad, $eagerLoad);\n\n        return $this;\n    }\n\n    /**\n     * Prevent the specified relations from being eager loaded.\n     *\n     * @param  mixed  $relations\n     * @return $this\n     */\n    public function without($relations)\n    {\n        $this->eagerLoad = array_diff_key($this->eagerLoad, array_flip(\n            is_string($relations) ? func_get_args() : $relations\n        ));\n\n        return $this;\n    }\n\n    /**\n     * Create a new instance of the model being queried.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function newModelInstance($attributes = [])\n    {\n        return $this->model->newInstance($attributes)->setConnection(\n            $this->query->getConnection()->getName()\n        );\n    }\n\n    /**\n     * Parse a list of relations into individuals.\n     *\n     * @param  array  $relations\n     * @return array\n     */\n    protected function parseWithRelations(array $relations)\n    {\n        $results = [];\n\n        foreach ($relations as $name => $constraints) {\n            // If the \"name\" value is a numeric key, we can assume that no\n            // constraints have been specified. We'll just put an empty\n            // Closure there, so that we can treat them all the same.\n            if (is_numeric($name)) {\n                $name = $constraints;\n\n                [$name, $constraints] = Str::contains($name, ':')\n                            ? $this->createSelectWithConstraint($name)\n                            : [$name, function () {\n                                //\n                            }];\n            }\n\n            // We need to separate out any nested includes, which allows the developers\n            // to load deep relationships using \"dots\" without stating each level of\n            // the relationship with its own key in the array of eager-load names.\n            $results = $this->addNestedWiths($name, $results);\n\n            $results[$name] = $constraints;\n        }\n\n        return $results;\n    }\n\n    /**\n     * Create a constraint to select the given columns for the relation.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function createSelectWithConstraint($name)\n    {\n        return [explode(':', $name)[0], function ($query) use ($name) {\n            $query->select(explode(',', explode(':', $name)[1]));\n        }];\n    }\n\n    /**\n     * Parse the nested relationships in a relation.\n     *\n     * @param  string  $name\n     * @param  array  $results\n     * @return array\n     */\n    protected function addNestedWiths($name, $results)\n    {\n        $progress = [];\n\n        // If the relation has already been set on the result array, we will not set it\n        // again, since that would override any constraints that were already placed\n        // on the relationships. We will only set the ones that are not specified.\n        foreach (explode('.', $name) as $segment) {\n            $progress[] = $segment;\n\n            if (! isset($results[$last = implode('.', $progress)])) {\n                $results[$last] = function () {\n                    //\n                };\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get the underlying query builder instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function getQuery()\n    {\n        return $this->query;\n    }\n\n    /**\n     * Set the underlying query builder instance.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return $this\n     */\n    public function setQuery($query)\n    {\n        $this->query = $query;\n\n        return $this;\n    }\n\n    /**\n     * Get a base query builder instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function toBase()\n    {\n        return $this->applyScopes()->getQuery();\n    }\n\n    /**\n     * Get the relationships being eagerly loaded.\n     *\n     * @return array\n     */\n    public function getEagerLoads()\n    {\n        return $this->eagerLoad;\n    }\n\n    /**\n     * Set the relationships being eagerly loaded.\n     *\n     * @param  array  $eagerLoad\n     * @return $this\n     */\n    public function setEagerLoads(array $eagerLoad)\n    {\n        $this->eagerLoad = $eagerLoad;\n\n        return $this;\n    }\n\n    /**\n     * Get the model instance being queried.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     */\n    public function getModel()\n    {\n        return $this->model;\n    }\n\n    /**\n     * Set a model instance for the model being queried.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return $this\n     */\n    public function setModel(Model $model)\n    {\n        $this->model = $model;\n\n        $this->query->from($model->getTable());\n\n        return $this;\n    }\n\n    /**\n     * Qualify the given column name by the model's table.\n     *\n     * @param  string  $column\n     * @return string\n     */\n    public function qualifyColumn($column)\n    {\n        return $this->model->qualifyColumn($column);\n    }\n\n    /**\n     * Get the given macro by name.\n     *\n     * @param  string  $name\n     * @return \\Closure\n     */\n    public function getMacro($name)\n    {\n        return Arr::get($this->localMacros, $name);\n    }\n\n    /**\n     * Dynamically access builder proxies.\n     *\n     * @param  string  $key\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    public function __get($key)\n    {\n        if ($key === 'orWhere') {\n            return new HigherOrderBuilderProxy($this, $key);\n        }\n\n        throw new Exception(\"Property [{$key}] does not exist on the Eloquent builder instance.\");\n    }\n\n    /**\n     * Dynamically handle calls into the query instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if ($method === 'macro') {\n            $this->localMacros[$parameters[0]] = $parameters[1];\n\n            return;\n        }\n\n        if (isset($this->localMacros[$method])) {\n            array_unshift($parameters, $this);\n\n            return $this->localMacros[$method](...$parameters);\n        }\n\n        if (isset(static::$macros[$method])) {\n            if (static::$macros[$method] instanceof Closure) {\n                return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters);\n            }\n\n            return call_user_func_array(static::$macros[$method], $parameters);\n        }\n\n        if (method_exists($this->model, $scope = 'scope'.ucfirst($method))) {\n            return $this->callScope([$this->model, $scope], $parameters);\n        }\n\n        if (in_array($method, $this->passthru)) {\n            return $this->toBase()->{$method}(...$parameters);\n        }\n\n        $this->forwardCallTo($this->query, $method, $parameters);\n\n        return $this;\n    }\n\n    /**\n     * Dynamically handle calls into the query instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        if ($method === 'macro') {\n            static::$macros[$parameters[0]] = $parameters[1];\n\n            return;\n        }\n\n        if (! isset(static::$macros[$method])) {\n            static::throwBadMethodCallException($method);\n        }\n\n        if (static::$macros[$method] instanceof Closure) {\n            return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters);\n        }\n\n        return call_user_func_array(static::$macros[$method], $parameters);\n    }\n\n    /**\n     * Force a clone of the underlying query builder when cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->query = clone $this->query;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse LogicException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Queue\\QueueableEntity;\nuse Illuminate\\Contracts\\Queue\\QueueableCollection;\nuse Illuminate\\Support\\Collection as BaseCollection;\n\nclass Collection extends BaseCollection implements QueueableCollection\n{\n    /**\n     * Find a model in the collection by key.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $default\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static|null\n     */\n    public function find($key, $default = null)\n    {\n        if ($key instanceof Model) {\n            $key = $key->getKey();\n        }\n\n        if ($key instanceof Arrayable) {\n            $key = $key->toArray();\n        }\n\n        if (is_array($key)) {\n            if ($this->isEmpty()) {\n                return new static;\n            }\n\n            return $this->whereIn($this->first()->getKeyName(), $key);\n        }\n\n        return Arr::first($this->items, function ($model) use ($key) {\n            return $model->getKey() == $key;\n        }, $default);\n    }\n\n    /**\n     * Load a set of relationships onto the collection.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function load($relations)\n    {\n        if ($this->isNotEmpty()) {\n            if (is_string($relations)) {\n                $relations = func_get_args();\n            }\n\n            $query = $this->first()->newQueryWithoutRelationships()->with($relations);\n\n            $this->items = $query->eagerLoadRelations($this->items);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Load a set of relationship counts onto the collection.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function loadCount($relations)\n    {\n        if ($this->isEmpty()) {\n            return $this;\n        }\n\n        $models = $this->first()->newModelQuery()\n            ->whereKey($this->modelKeys())\n            ->select($this->first()->getKeyName())\n            ->withCount(...func_get_args())\n            ->get();\n\n        $attributes = Arr::except(\n            array_keys($models->first()->getAttributes()),\n            $models->first()->getKeyName()\n        );\n\n        $models->each(function ($model) use ($attributes) {\n            $this->find($model->getKey())->forceFill(\n                Arr::only($model->getAttributes(), $attributes)\n            )->syncOriginalAttributes($attributes);\n        });\n\n        return $this;\n    }\n\n    /**\n     * Load a set of relationships onto the collection if they are not already eager loaded.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function loadMissing($relations)\n    {\n        if (is_string($relations)) {\n            $relations = func_get_args();\n        }\n\n        foreach ($relations as $key => $value) {\n            if (is_numeric($key)) {\n                $key = $value;\n            }\n\n            $segments = explode('.', explode(':', $key)[0]);\n\n            if (Str::contains($key, ':')) {\n                $segments[count($segments) - 1] .= ':'.explode(':', $key)[1];\n            }\n\n            $path = [];\n\n            foreach ($segments as $segment) {\n                $path[] = [$segment => $segment];\n            }\n\n            if (is_callable($value)) {\n                $path[count($segments) - 1][end($segments)] = $value;\n            }\n\n            $this->loadMissingRelation($this, $path);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Load a relationship path if it is not already eager loaded.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $models\n     * @param  array  $path\n     * @return void\n     */\n    protected function loadMissingRelation(self $models, array $path)\n    {\n        $relation = array_shift($path);\n\n        $name = explode(':', key($relation))[0];\n\n        if (is_string(reset($relation))) {\n            $relation = reset($relation);\n        }\n\n        $models->filter(function ($model) use ($name) {\n            return ! is_null($model) && ! $model->relationLoaded($name);\n        })->load($relation);\n\n        if (empty($path)) {\n            return;\n        }\n\n        $models = $models->pluck($name);\n\n        if ($models->first() instanceof BaseCollection) {\n            $models = $models->collapse();\n        }\n\n        $this->loadMissingRelation(new static($models), $path);\n    }\n\n    /**\n     * Load a set of relationships onto the mixed relationship collection.\n     *\n     * @param  string  $relation\n     * @param  array  $relations\n     * @return $this\n     */\n    public function loadMorph($relation, $relations)\n    {\n        $this->pluck($relation)\n            ->filter()\n            ->groupBy(function ($model) {\n                return get_class($model);\n            })\n            ->each(function ($models, $className) use ($relations) {\n                static::make($models)->load($relations[$className] ?? []);\n            });\n\n        return $this;\n    }\n\n    /**\n     * Determine if a key exists in the collection.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function contains($key, $operator = null, $value = null)\n    {\n        if (func_num_args() > 1 || $this->useAsCallable($key)) {\n            return parent::contains(...func_get_args());\n        }\n\n        if ($key instanceof Model) {\n            return parent::contains(function ($model) use ($key) {\n                return $model->is($key);\n            });\n        }\n\n        return parent::contains(function ($model) use ($key) {\n            return $model->getKey() == $key;\n        });\n    }\n\n    /**\n     * Get the array of primary keys.\n     *\n     * @return array\n     */\n    public function modelKeys()\n    {\n        return array_map(function ($model) {\n            return $model->getKey();\n        }, $this->items);\n    }\n\n    /**\n     * Merge the collection with the given items.\n     *\n     * @param  \\ArrayAccess|array  $items\n     * @return static\n     */\n    public function merge($items)\n    {\n        $dictionary = $this->getDictionary();\n\n        foreach ($items as $item) {\n            $dictionary[$item->getKey()] = $item;\n        }\n\n        return new static(array_values($dictionary));\n    }\n\n    /**\n     * Run a map over each of the items.\n     *\n     * @param  callable  $callback\n     * @return \\Illuminate\\Support\\Collection|static\n     */\n    public function map(callable $callback)\n    {\n        $result = parent::map($callback);\n\n        return $result->contains(function ($item) {\n            return ! $item instanceof Model;\n        }) ? $result->toBase() : $result;\n    }\n\n    /**\n     * Reload a fresh model instance from the database for all the entities.\n     *\n     * @param  array|string  $with\n     * @return static\n     */\n    public function fresh($with = [])\n    {\n        if ($this->isEmpty()) {\n            return new static;\n        }\n\n        $model = $this->first();\n\n        $freshModels = $model->newQueryWithoutScopes()\n            ->with(is_string($with) ? func_get_args() : $with)\n            ->whereIn($model->getKeyName(), $this->modelKeys())\n            ->get()\n            ->getDictionary();\n\n        return $this->map(function ($model) use ($freshModels) {\n            return $model->exists && isset($freshModels[$model->getKey()])\n                    ? $freshModels[$model->getKey()] : null;\n        });\n    }\n\n    /**\n     * Diff the collection with the given items.\n     *\n     * @param  \\ArrayAccess|array  $items\n     * @return static\n     */\n    public function diff($items)\n    {\n        $diff = new static;\n\n        $dictionary = $this->getDictionary($items);\n\n        foreach ($this->items as $item) {\n            if (! isset($dictionary[$item->getKey()])) {\n                $diff->add($item);\n            }\n        }\n\n        return $diff;\n    }\n\n    /**\n     * Intersect the collection with the given items.\n     *\n     * @param  \\ArrayAccess|array  $items\n     * @return static\n     */\n    public function intersect($items)\n    {\n        $intersect = new static;\n\n        $dictionary = $this->getDictionary($items);\n\n        foreach ($this->items as $item) {\n            if (isset($dictionary[$item->getKey()])) {\n                $intersect->add($item);\n            }\n        }\n\n        return $intersect;\n    }\n\n    /**\n     * Return only unique items from the collection.\n     *\n     * @param  string|callable|null  $key\n     * @param  bool  $strict\n     * @return static|\\Illuminate\\Support\\Collection\n     */\n    public function unique($key = null, $strict = false)\n    {\n        if (! is_null($key)) {\n            return parent::unique($key, $strict);\n        }\n\n        return new static(array_values($this->getDictionary()));\n    }\n\n    /**\n     * Returns only the models from the collection with the specified keys.\n     *\n     * @param  mixed  $keys\n     * @return static\n     */\n    public function only($keys)\n    {\n        if (is_null($keys)) {\n            return new static($this->items);\n        }\n\n        $dictionary = Arr::only($this->getDictionary(), $keys);\n\n        return new static(array_values($dictionary));\n    }\n\n    /**\n     * Returns all models in the collection except the models with specified keys.\n     *\n     * @param  mixed  $keys\n     * @return static\n     */\n    public function except($keys)\n    {\n        $dictionary = Arr::except($this->getDictionary(), $keys);\n\n        return new static(array_values($dictionary));\n    }\n\n    /**\n     * Make the given, typically visible, attributes hidden across the entire collection.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function makeHidden($attributes)\n    {\n        return $this->each->addHidden($attributes);\n    }\n\n    /**\n     * Make the given, typically hidden, attributes visible across the entire collection.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function makeVisible($attributes)\n    {\n        return $this->each->makeVisible($attributes);\n    }\n\n    /**\n     * Get a dictionary keyed by primary keys.\n     *\n     * @param  \\ArrayAccess|array|null  $items\n     * @return array\n     */\n    public function getDictionary($items = null)\n    {\n        $items = is_null($items) ? $this->items : $items;\n\n        $dictionary = [];\n\n        foreach ($items as $value) {\n            $dictionary[$value->getKey()] = $value;\n        }\n\n        return $dictionary;\n    }\n\n    /**\n     * The following methods are intercepted to always return base collections.\n     */\n\n    /**\n     * Get an array with the values of a given key.\n     *\n     * @param  string  $value\n     * @param  string|null  $key\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function pluck($value, $key = null)\n    {\n        return $this->toBase()->pluck($value, $key);\n    }\n\n    /**\n     * Get the keys of the collection items.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function keys()\n    {\n        return $this->toBase()->keys();\n    }\n\n    /**\n     * Zip the collection together with one or more arrays.\n     *\n     * @param  mixed ...$items\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function zip($items)\n    {\n        return call_user_func_array([$this->toBase(), 'zip'], func_get_args());\n    }\n\n    /**\n     * Collapse the collection of items into a single array.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function collapse()\n    {\n        return $this->toBase()->collapse();\n    }\n\n    /**\n     * Get a flattened array of the items in the collection.\n     *\n     * @param  int  $depth\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function flatten($depth = INF)\n    {\n        return $this->toBase()->flatten($depth);\n    }\n\n    /**\n     * Flip the items in the collection.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function flip()\n    {\n        return $this->toBase()->flip();\n    }\n\n    /**\n     * Pad collection to the specified length with a value.\n     *\n     * @param  int  $size\n     * @param  mixed $value\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function pad($size, $value)\n    {\n        return $this->toBase()->pad($size, $value);\n    }\n\n    /**\n     * Get the comparison function to detect duplicates.\n     *\n     * @param  bool  $strict\n     * @return \\Closure\n     */\n    protected function duplicateComparator($strict)\n    {\n        return function ($a, $b) {\n            return $a->is($b);\n        };\n    }\n\n    /**\n     * Get the type of the entities being queued.\n     *\n     * @return string|null\n     *\n     * @throws \\LogicException\n     */\n    public function getQueueableClass()\n    {\n        if ($this->isEmpty()) {\n            return;\n        }\n\n        $class = get_class($this->first());\n\n        $this->each(function ($model) use ($class) {\n            if (get_class($model) !== $class) {\n                throw new LogicException('Queueing collections with multiple model types is not supported.');\n            }\n        });\n\n        return $class;\n    }\n\n    /**\n     * Get the identifiers for all of the entities.\n     *\n     * @return array\n     */\n    public function getQueueableIds()\n    {\n        if ($this->isEmpty()) {\n            return [];\n        }\n\n        return $this->first() instanceof QueueableEntity\n                    ? $this->map->getQueueableId()->all()\n                    : $this->modelKeys();\n    }\n\n    /**\n     * Get the relationships of the entities being queued.\n     *\n     * @return array\n     */\n    public function getQueueableRelations()\n    {\n        return $this->isNotEmpty() ? $this->first()->getQueueableRelations() : [];\n    }\n\n    /**\n     * Get the connection of the entities being queued.\n     *\n     * @return string|null\n     *\n     * @throws \\LogicException\n     */\n    public function getQueueableConnection()\n    {\n        if ($this->isEmpty()) {\n            return;\n        }\n\n        $connection = $this->first()->getConnectionName();\n\n        $this->each(function ($model) use ($connection) {\n            if ($model->getConnectionName() !== $connection) {\n                throw new LogicException('Queueing collections with multiple model connections is not supported.');\n            }\n        });\n\n        return $connection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Illuminate\\Support\\Str;\n\ntrait GuardsAttributes\n{\n    /**\n     * The attributes that are mass assignable.\n     *\n     * @var array\n     */\n    protected $fillable = [];\n\n    /**\n     * The attributes that aren't mass assignable.\n     *\n     * @var array\n     */\n    protected $guarded = ['*'];\n\n    /**\n     * Indicates if all mass assignment is enabled.\n     *\n     * @var bool\n     */\n    protected static $unguarded = false;\n\n    /**\n     * Get the fillable attributes for the model.\n     *\n     * @return array\n     */\n    public function getFillable()\n    {\n        return $this->fillable;\n    }\n\n    /**\n     * Set the fillable attributes for the model.\n     *\n     * @param  array  $fillable\n     * @return $this\n     */\n    public function fillable(array $fillable)\n    {\n        $this->fillable = $fillable;\n\n        return $this;\n    }\n\n    /**\n     * Get the guarded attributes for the model.\n     *\n     * @return array\n     */\n    public function getGuarded()\n    {\n        return $this->guarded;\n    }\n\n    /**\n     * Set the guarded attributes for the model.\n     *\n     * @param  array  $guarded\n     * @return $this\n     */\n    public function guard(array $guarded)\n    {\n        $this->guarded = $guarded;\n\n        return $this;\n    }\n\n    /**\n     * Disable all mass assignable restrictions.\n     *\n     * @param  bool  $state\n     * @return void\n     */\n    public static function unguard($state = true)\n    {\n        static::$unguarded = $state;\n    }\n\n    /**\n     * Enable the mass assignment restrictions.\n     *\n     * @return void\n     */\n    public static function reguard()\n    {\n        static::$unguarded = false;\n    }\n\n    /**\n     * Determine if current state is \"unguarded\".\n     *\n     * @return bool\n     */\n    public static function isUnguarded()\n    {\n        return static::$unguarded;\n    }\n\n    /**\n     * Run the given callable while being unguarded.\n     *\n     * @param  callable  $callback\n     * @return mixed\n     */\n    public static function unguarded(callable $callback)\n    {\n        if (static::$unguarded) {\n            return $callback();\n        }\n\n        static::unguard();\n\n        try {\n            return $callback();\n        } finally {\n            static::reguard();\n        }\n    }\n\n    /**\n     * Determine if the given attribute may be mass assigned.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function isFillable($key)\n    {\n        if (static::$unguarded) {\n            return true;\n        }\n\n        // If the key is in the \"fillable\" array, we can of course assume that it's\n        // a fillable attribute. Otherwise, we will check the guarded array when\n        // we need to determine if the attribute is black-listed on the model.\n        if (in_array($key, $this->getFillable())) {\n            return true;\n        }\n\n        // If the attribute is explicitly listed in the \"guarded\" array then we can\n        // return false immediately. This means this attribute is definitely not\n        // fillable and there is no point in going any further in this method.\n        if ($this->isGuarded($key)) {\n            return false;\n        }\n\n        return empty($this->getFillable()) &&\n            ! Str::startsWith($key, '_');\n    }\n\n    /**\n     * Determine if the given key is guarded.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function isGuarded($key)\n    {\n        return in_array($key, $this->getGuarded()) || $this->getGuarded() == ['*'];\n    }\n\n    /**\n     * Determine if the model is totally guarded.\n     *\n     * @return bool\n     */\n    public function totallyGuarded()\n    {\n        return count($this->getFillable()) === 0 && $this->getGuarded() == ['*'];\n    }\n\n    /**\n     * Get the fillable attributes of a given array.\n     *\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function fillableFromArray(array $attributes)\n    {\n        if (count($this->getFillable()) > 0 && ! static::$unguarded) {\n            return array_intersect_key($attributes, array_flip($this->getFillable()));\n        }\n\n        return $attributes;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse LogicException;\nuse DateTimeInterface;\nuse Carbon\\CarbonInterface;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Database\\Eloquent\\Relations\\Relation;\nuse Illuminate\\Support\\Collection as BaseCollection;\nuse Illuminate\\Database\\Eloquent\\JsonEncodingException;\n\ntrait HasAttributes\n{\n    /**\n     * The model's attributes.\n     *\n     * @var array\n     */\n    protected $attributes = [];\n\n    /**\n     * The model attribute's original state.\n     *\n     * @var array\n     */\n    protected $original = [];\n\n    /**\n     * The changed model attributes.\n     *\n     * @var array\n     */\n    protected $changes = [];\n\n    /**\n     * The attributes that should be cast to native types.\n     *\n     * @var array\n     */\n    protected $casts = [];\n\n    /**\n     * The attributes that should be mutated to dates.\n     *\n     * @var array\n     */\n    protected $dates = [];\n\n    /**\n     * The storage format of the model's date columns.\n     *\n     * @var string\n     */\n    protected $dateFormat;\n\n    /**\n     * The accessors to append to the model's array form.\n     *\n     * @var array\n     */\n    protected $appends = [];\n\n    /**\n     * Indicates whether attributes are snake cased on arrays.\n     *\n     * @var bool\n     */\n    public static $snakeAttributes = true;\n\n    /**\n     * The cache of the mutated attributes for each class.\n     *\n     * @var array\n     */\n    protected static $mutatorCache = [];\n\n    /**\n     * Convert the model's attributes to an array.\n     *\n     * @return array\n     */\n    public function attributesToArray()\n    {\n        // If an attribute is a date, we will cast it to a string after converting it\n        // to a DateTime / Carbon instance. This is so we will get some consistent\n        // formatting while accessing attributes vs. arraying / JSONing a model.\n        $attributes = $this->addDateAttributesToArray(\n            $attributes = $this->getArrayableAttributes()\n        );\n\n        $attributes = $this->addMutatedAttributesToArray(\n            $attributes, $mutatedAttributes = $this->getMutatedAttributes()\n        );\n\n        // Next we will handle any casts that have been setup for this model and cast\n        // the values to their appropriate type. If the attribute has a mutator we\n        // will not perform the cast on those attributes to avoid any confusion.\n        $attributes = $this->addCastAttributesToArray(\n            $attributes, $mutatedAttributes\n        );\n\n        // Here we will grab all of the appended, calculated attributes to this model\n        // as these attributes are not really in the attributes array, but are run\n        // when we need to array or JSON the model for convenience to the coder.\n        foreach ($this->getArrayableAppends() as $key) {\n            $attributes[$key] = $this->mutateAttributeForArray($key, null);\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Add the date attributes to the attributes array.\n     *\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function addDateAttributesToArray(array $attributes)\n    {\n        foreach ($this->getDates() as $key) {\n            if (! isset($attributes[$key])) {\n                continue;\n            }\n\n            $attributes[$key] = $this->serializeDate(\n                $this->asDateTime($attributes[$key])\n            );\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Add the mutated attributes to the attributes array.\n     *\n     * @param  array  $attributes\n     * @param  array  $mutatedAttributes\n     * @return array\n     */\n    protected function addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)\n    {\n        foreach ($mutatedAttributes as $key) {\n            // We want to spin through all the mutated attributes for this model and call\n            // the mutator for the attribute. We cache off every mutated attributes so\n            // we don't have to constantly check on attributes that actually change.\n            if (! array_key_exists($key, $attributes)) {\n                continue;\n            }\n\n            // Next, we will call the mutator for this attribute so that we can get these\n            // mutated attribute's actual values. After we finish mutating each of the\n            // attributes we will return this final array of the mutated attributes.\n            $attributes[$key] = $this->mutateAttributeForArray(\n                $key, $attributes[$key]\n            );\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Add the casted attributes to the attributes array.\n     *\n     * @param  array  $attributes\n     * @param  array  $mutatedAttributes\n     * @return array\n     */\n    protected function addCastAttributesToArray(array $attributes, array $mutatedAttributes)\n    {\n        foreach ($this->getCasts() as $key => $value) {\n            if (! array_key_exists($key, $attributes) || in_array($key, $mutatedAttributes)) {\n                continue;\n            }\n\n            // Here we will cast the attribute. Then, if the cast is a date or datetime cast\n            // then we will serialize the date for the array. This will convert the dates\n            // to strings based on the date format specified for these Eloquent models.\n            $attributes[$key] = $this->castAttribute(\n                $key, $attributes[$key]\n            );\n\n            // If the attribute cast was a date or a datetime, we will serialize the date as\n            // a string. This allows the developers to customize how dates are serialized\n            // into an array without affecting how they are persisted into the storage.\n            if ($attributes[$key] &&\n                ($value === 'date' || $value === 'datetime')) {\n                $attributes[$key] = $this->serializeDate($attributes[$key]);\n            }\n\n            if ($attributes[$key] && $this->isCustomDateTimeCast($value)) {\n                $attributes[$key] = $attributes[$key]->format(explode(':', $value, 2)[1]);\n            }\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Get an attribute array of all arrayable attributes.\n     *\n     * @return array\n     */\n    protected function getArrayableAttributes()\n    {\n        return $this->getArrayableItems($this->attributes);\n    }\n\n    /**\n     * Get all of the appendable values that are arrayable.\n     *\n     * @return array\n     */\n    protected function getArrayableAppends()\n    {\n        if (! count($this->appends)) {\n            return [];\n        }\n\n        return $this->getArrayableItems(\n            array_combine($this->appends, $this->appends)\n        );\n    }\n\n    /**\n     * Get the model's relationships in array form.\n     *\n     * @return array\n     */\n    public function relationsToArray()\n    {\n        $attributes = [];\n\n        foreach ($this->getArrayableRelations() as $key => $value) {\n            // If the values implements the Arrayable interface we can just call this\n            // toArray method on the instances which will convert both models and\n            // collections to their proper array form and we'll set the values.\n            if ($value instanceof Arrayable) {\n                $relation = $value->toArray();\n            }\n\n            // If the value is null, we'll still go ahead and set it in this list of\n            // attributes since null is used to represent empty relationships if\n            // if it a has one or belongs to type relationships on the models.\n            elseif (is_null($value)) {\n                $relation = $value;\n            }\n\n            // If the relationships snake-casing is enabled, we will snake case this\n            // key so that the relation attribute is snake cased in this returned\n            // array to the developers, making this consistent with attributes.\n            if (static::$snakeAttributes) {\n                $key = Str::snake($key);\n            }\n\n            // If the relation value has been set, we will set it on this attributes\n            // list for returning. If it was not arrayable or null, we'll not set\n            // the value on the array because it is some type of invalid value.\n            if (isset($relation) || is_null($value)) {\n                $attributes[$key] = $relation;\n            }\n\n            unset($relation);\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Get an attribute array of all arrayable relations.\n     *\n     * @return array\n     */\n    protected function getArrayableRelations()\n    {\n        return $this->getArrayableItems($this->relations);\n    }\n\n    /**\n     * Get an attribute array of all arrayable values.\n     *\n     * @param  array  $values\n     * @return array\n     */\n    protected function getArrayableItems(array $values)\n    {\n        if (count($this->getVisible()) > 0) {\n            $values = array_intersect_key($values, array_flip($this->getVisible()));\n        }\n\n        if (count($this->getHidden()) > 0) {\n            $values = array_diff_key($values, array_flip($this->getHidden()));\n        }\n\n        return $values;\n    }\n\n    /**\n     * Get an attribute from the model.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function getAttribute($key)\n    {\n        if (! $key) {\n            return;\n        }\n\n        // If the attribute exists in the attribute array or has a \"get\" mutator we will\n        // get the attribute's value. Otherwise, we will proceed as if the developers\n        // are asking for a relationship's value. This covers both types of values.\n        if (array_key_exists($key, $this->attributes) ||\n            $this->hasGetMutator($key)) {\n            return $this->getAttributeValue($key);\n        }\n\n        // Here we will determine if the model base class itself contains this given key\n        // since we don't want to treat any of those methods as relationships because\n        // they are all intended as helper methods and none of these are relations.\n        if (method_exists(self::class, $key)) {\n            return;\n        }\n\n        return $this->getRelationValue($key);\n    }\n\n    /**\n     * Get a plain attribute (not a relationship).\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function getAttributeValue($key)\n    {\n        $value = $this->getAttributeFromArray($key);\n\n        // If the attribute has a get mutator, we will call that then return what\n        // it returns as the value, which is useful for transforming values on\n        // retrieval from the model to a form that is more useful for usage.\n        if ($this->hasGetMutator($key)) {\n            return $this->mutateAttribute($key, $value);\n        }\n\n        // If the attribute exists within the cast array, we will convert it to\n        // an appropriate native PHP type dependant upon the associated value\n        // given with the key in the pair. Dayle made this comment line up.\n        if ($this->hasCast($key)) {\n            return $this->castAttribute($key, $value);\n        }\n\n        // If the attribute is listed as a date, we will convert it to a DateTime\n        // instance on retrieval, which makes it quite convenient to work with\n        // date fields without having to create a mutator for each property.\n        if (in_array($key, $this->getDates()) &&\n            ! is_null($value)) {\n            return $this->asDateTime($value);\n        }\n\n        return $value;\n    }\n\n    /**\n     * Get an attribute from the $attributes array.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    protected function getAttributeFromArray($key)\n    {\n        if (isset($this->attributes[$key])) {\n            return $this->attributes[$key];\n        }\n    }\n\n    /**\n     * Get a relationship.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function getRelationValue($key)\n    {\n        // If the key already exists in the relationships array, it just means the\n        // relationship has already been loaded, so we'll just return it out of\n        // here because there is no need to query within the relations twice.\n        if ($this->relationLoaded($key)) {\n            return $this->relations[$key];\n        }\n\n        // If the \"attribute\" exists as a method on the model, we will just assume\n        // it is a relationship and will load and return results from the query\n        // and hydrate the relationship's value on the \"relationships\" array.\n        if (method_exists($this, $key)) {\n            return $this->getRelationshipFromMethod($key);\n        }\n    }\n\n    /**\n     * Get a relationship value from a method.\n     *\n     * @param  string  $method\n     * @return mixed\n     *\n     * @throws \\LogicException\n     */\n    protected function getRelationshipFromMethod($method)\n    {\n        $relation = $this->$method();\n\n        if (! $relation instanceof Relation) {\n            if (is_null($relation)) {\n                throw new LogicException(sprintf(\n                    '%s::%s must return a relationship instance, but \"null\" was returned. Was the \"return\" keyword used?', static::class, $method\n                ));\n            }\n\n            throw new LogicException(sprintf(\n                '%s::%s must return a relationship instance.', static::class, $method\n            ));\n        }\n\n        return tap($relation->getResults(), function ($results) use ($method) {\n            $this->setRelation($method, $results);\n        });\n    }\n\n    /**\n     * Determine if a get mutator exists for an attribute.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasGetMutator($key)\n    {\n        return method_exists($this, 'get'.Str::studly($key).'Attribute');\n    }\n\n    /**\n     * Get the value of an attribute using its mutator.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function mutateAttribute($key, $value)\n    {\n        return $this->{'get'.Str::studly($key).'Attribute'}($value);\n    }\n\n    /**\n     * Get the value of an attribute using its mutator for array conversion.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function mutateAttributeForArray($key, $value)\n    {\n        $value = $this->mutateAttribute($key, $value);\n\n        return $value instanceof Arrayable ? $value->toArray() : $value;\n    }\n\n    /**\n     * Cast an attribute to a native PHP type.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function castAttribute($key, $value)\n    {\n        if (is_null($value)) {\n            return $value;\n        }\n\n        switch ($this->getCastType($key)) {\n            case 'int':\n            case 'integer':\n                return (int) $value;\n            case 'real':\n            case 'float':\n            case 'double':\n                return $this->fromFloat($value);\n            case 'decimal':\n                return $this->asDecimal($value, explode(':', $this->getCasts()[$key], 2)[1]);\n            case 'string':\n                return (string) $value;\n            case 'bool':\n            case 'boolean':\n                return (bool) $value;\n            case 'object':\n                return $this->fromJson($value, true);\n            case 'array':\n            case 'json':\n                return $this->fromJson($value);\n            case 'collection':\n                return new BaseCollection($this->fromJson($value));\n            case 'date':\n                return $this->asDate($value);\n            case 'datetime':\n            case 'custom_datetime':\n                return $this->asDateTime($value);\n            case 'timestamp':\n                return $this->asTimestamp($value);\n            default:\n                return $value;\n        }\n    }\n\n    /**\n     * Get the type of cast for a model attribute.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    protected function getCastType($key)\n    {\n        if ($this->isCustomDateTimeCast($this->getCasts()[$key])) {\n            return 'custom_datetime';\n        }\n\n        if ($this->isDecimalCast($this->getCasts()[$key])) {\n            return 'decimal';\n        }\n\n        return trim(strtolower($this->getCasts()[$key]));\n    }\n\n    /**\n     * Determine if the cast type is a custom date time cast.\n     *\n     * @param  string  $cast\n     * @return bool\n     */\n    protected function isCustomDateTimeCast($cast)\n    {\n        return strncmp($cast, 'date:', 5) === 0 ||\n               strncmp($cast, 'datetime:', 9) === 0;\n    }\n\n    /**\n     * Determine if the cast type is a decimal cast.\n     *\n     * @param  string  $cast\n     * @return bool\n     */\n    protected function isDecimalCast($cast)\n    {\n        return strncmp($cast, 'decimal:', 8) === 0;\n    }\n\n    /**\n     * Set a given attribute on the model.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    public function setAttribute($key, $value)\n    {\n        // First we will check for the presence of a mutator for the set operation\n        // which simply lets the developers tweak the attribute as it is set on\n        // the model, such as \"json_encoding\" an listing of data for storage.\n        if ($this->hasSetMutator($key)) {\n            return $this->setMutatedAttributeValue($key, $value);\n        }\n\n        // If an attribute is listed as a \"date\", we'll convert it from a DateTime\n        // instance into a form proper for storage on the database tables using\n        // the connection grammar's date format. We will auto set the values.\n        elseif ($value && $this->isDateAttribute($key)) {\n            $value = $this->fromDateTime($value);\n        }\n\n        if ($this->isJsonCastable($key) && ! is_null($value)) {\n            $value = $this->castAttributeAsJson($key, $value);\n        }\n\n        // If this attribute contains a JSON ->, we'll set the proper value in the\n        // attribute's underlying array. This takes care of properly nesting an\n        // attribute in the array's value in the case of deeply nested items.\n        if (Str::contains($key, '->')) {\n            return $this->fillJsonAttribute($key, $value);\n        }\n\n        $this->attributes[$key] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Determine if a set mutator exists for an attribute.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasSetMutator($key)\n    {\n        return method_exists($this, 'set'.Str::studly($key).'Attribute');\n    }\n\n    /**\n     * Set the value of an attribute using its mutator.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function setMutatedAttributeValue($key, $value)\n    {\n        return $this->{'set'.Str::studly($key).'Attribute'}($value);\n    }\n\n    /**\n     * Determine if the given attribute is a date or date castable.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    protected function isDateAttribute($key)\n    {\n        return in_array($key, $this->getDates()) ||\n                                    $this->isDateCastable($key);\n    }\n\n    /**\n     * Set a given JSON attribute on the model.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function fillJsonAttribute($key, $value)\n    {\n        [$key, $path] = explode('->', $key, 2);\n\n        $this->attributes[$key] = $this->asJson($this->getArrayAttributeWithValue(\n            $path, $key, $value\n        ));\n\n        return $this;\n    }\n\n    /**\n     * Get an array attribute with the given key and value set.\n     *\n     * @param  string  $path\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    protected function getArrayAttributeWithValue($path, $key, $value)\n    {\n        return tap($this->getArrayAttributeByKey($key), function (&$array) use ($path, $value) {\n            Arr::set($array, str_replace('->', '.', $path), $value);\n        });\n    }\n\n    /**\n     * Get an array attribute or return an empty array if it is not set.\n     *\n     * @param  string  $key\n     * @return array\n     */\n    protected function getArrayAttributeByKey($key)\n    {\n        return isset($this->attributes[$key]) ?\n                    $this->fromJson($this->attributes[$key]) : [];\n    }\n\n    /**\n     * Cast the given attribute to JSON.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function castAttributeAsJson($key, $value)\n    {\n        $value = $this->asJson($value);\n\n        if ($value === false) {\n            throw JsonEncodingException::forAttribute(\n                $this, $key, json_last_error_msg()\n            );\n        }\n\n        return $value;\n    }\n\n    /**\n     * Encode the given value as JSON.\n     *\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function asJson($value)\n    {\n        return json_encode($value);\n    }\n\n    /**\n     * Decode the given JSON back into an array or object.\n     *\n     * @param  string  $value\n     * @param  bool  $asObject\n     * @return mixed\n     */\n    public function fromJson($value, $asObject = false)\n    {\n        return json_decode($value, ! $asObject);\n    }\n\n    /**\n     * Decode the given float.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    public function fromFloat($value)\n    {\n        switch ((string) $value) {\n            case 'Infinity':\n                return INF;\n            case '-Infinity':\n                return -INF;\n            case 'NaN':\n                return NAN;\n            default:\n                return (float) $value;\n        }\n    }\n\n    /**\n     * Return a decimal as string.\n     *\n     * @param  float  $value\n     * @param  int  $decimals\n     * @return string\n     */\n    protected function asDecimal($value, $decimals)\n    {\n        return number_format($value, $decimals, '.', '');\n    }\n\n    /**\n     * Return a timestamp as DateTime object with time set to 00:00:00.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    protected function asDate($value)\n    {\n        return $this->asDateTime($value)->startOfDay();\n    }\n\n    /**\n     * Return a timestamp as DateTime object.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    protected function asDateTime($value)\n    {\n        // If this value is already a Carbon instance, we shall just return it as is.\n        // This prevents us having to re-instantiate a Carbon instance when we know\n        // it already is one, which wouldn't be fulfilled by the DateTime check.\n        if ($value instanceof Carbon || $value instanceof CarbonInterface) {\n            return Date::instance($value);\n        }\n\n        // If the value is already a DateTime instance, we will just skip the rest of\n        // these checks since they will be a waste of time, and hinder performance\n        // when checking the field. We will just return the DateTime right away.\n        if ($value instanceof DateTimeInterface) {\n            return Date::parse(\n                $value->format('Y-m-d H:i:s.u'), $value->getTimezone()\n            );\n        }\n\n        // If this value is an integer, we will assume it is a UNIX timestamp's value\n        // and format a Carbon object from this timestamp. This allows flexibility\n        // when defining your date fields as they might be UNIX timestamps here.\n        if (is_numeric($value)) {\n            return Date::createFromTimestamp($value);\n        }\n\n        // If the value is in simply year, month, day format, we will instantiate the\n        // Carbon instances from that format. Again, this provides for simple date\n        // fields on the database, while still supporting Carbonized conversion.\n        if ($this->isStandardDateFormat($value)) {\n            return Date::instance(Carbon::createFromFormat('Y-m-d', $value)->startOfDay());\n        }\n\n        $format = $this->getDateFormat();\n\n        // https://bugs.php.net/bug.php?id=75577\n        if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) {\n            $format = str_replace('.v', '.u', $format);\n        }\n\n        // Finally, we will just assume this date is in the format used by default on\n        // the database connection and use that format to create the Carbon object\n        // that is returned back out to the developers after we convert it here.\n        return Date::createFromFormat($format, $value);\n    }\n\n    /**\n     * Determine if the given value is a standard date format.\n     *\n     * @param  string  $value\n     * @return bool\n     */\n    protected function isStandardDateFormat($value)\n    {\n        return preg_match('/^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/', $value);\n    }\n\n    /**\n     * Convert a DateTime to a storable string.\n     *\n     * @param  mixed  $value\n     * @return string|null\n     */\n    public function fromDateTime($value)\n    {\n        return empty($value) ? $value : $this->asDateTime($value)->format(\n            $this->getDateFormat()\n        );\n    }\n\n    /**\n     * Return a timestamp as unix timestamp.\n     *\n     * @param  mixed  $value\n     * @return int\n     */\n    protected function asTimestamp($value)\n    {\n        return $this->asDateTime($value)->getTimestamp();\n    }\n\n    /**\n     * Prepare a date for array / JSON serialization.\n     *\n     * @param  \\DateTimeInterface  $date\n     * @return string\n     */\n    protected function serializeDate(DateTimeInterface $date)\n    {\n        return $date->format($this->getDateFormat());\n    }\n\n    /**\n     * Get the attributes that should be converted to dates.\n     *\n     * @return array\n     */\n    public function getDates()\n    {\n        $defaults = [static::CREATED_AT, static::UPDATED_AT];\n\n        return $this->usesTimestamps()\n                    ? array_unique(array_merge($this->dates, $defaults))\n                    : $this->dates;\n    }\n\n    /**\n     * Get the format for database stored dates.\n     *\n     * @return string\n     */\n    public function getDateFormat()\n    {\n        return $this->dateFormat ?: $this->getConnection()->getQueryGrammar()->getDateFormat();\n    }\n\n    /**\n     * Set the date format used by the model.\n     *\n     * @param  string  $format\n     * @return $this\n     */\n    public function setDateFormat($format)\n    {\n        $this->dateFormat = $format;\n\n        return $this;\n    }\n\n    /**\n     * Determine whether an attribute should be cast to a native type.\n     *\n     * @param  string  $key\n     * @param  array|string|null  $types\n     * @return bool\n     */\n    public function hasCast($key, $types = null)\n    {\n        if (array_key_exists($key, $this->getCasts())) {\n            return $types ? in_array($this->getCastType($key), (array) $types, true) : true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Get the casts array.\n     *\n     * @return array\n     */\n    public function getCasts()\n    {\n        if ($this->getIncrementing()) {\n            return array_merge([$this->getKeyName() => $this->getKeyType()], $this->casts);\n        }\n\n        return $this->casts;\n    }\n\n    /**\n     * Determine whether a value is Date / DateTime castable for inbound manipulation.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    protected function isDateCastable($key)\n    {\n        return $this->hasCast($key, ['date', 'datetime']);\n    }\n\n    /**\n     * Determine whether a value is JSON castable for inbound manipulation.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    protected function isJsonCastable($key)\n    {\n        return $this->hasCast($key, ['array', 'json', 'object', 'collection']);\n    }\n\n    /**\n     * Get all of the current attributes on the model.\n     *\n     * @return array\n     */\n    public function getAttributes()\n    {\n        return $this->attributes;\n    }\n\n    /**\n     * Set the array of model attributes. No checking is done.\n     *\n     * @param  array  $attributes\n     * @param  bool  $sync\n     * @return $this\n     */\n    public function setRawAttributes(array $attributes, $sync = false)\n    {\n        $this->attributes = $attributes;\n\n        if ($sync) {\n            $this->syncOriginal();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the model's original attribute values.\n     *\n     * @param  string|null  $key\n     * @param  mixed  $default\n     * @return mixed|array\n     */\n    public function getOriginal($key = null, $default = null)\n    {\n        return Arr::get($this->original, $key, $default);\n    }\n\n    /**\n     * Get a subset of the model's attributes.\n     *\n     * @param  array|mixed  $attributes\n     * @return array\n     */\n    public function only($attributes)\n    {\n        $results = [];\n\n        foreach (is_array($attributes) ? $attributes : func_get_args() as $attribute) {\n            $results[$attribute] = $this->getAttribute($attribute);\n        }\n\n        return $results;\n    }\n\n    /**\n     * Sync the original attributes with the current.\n     *\n     * @return $this\n     */\n    public function syncOriginal()\n    {\n        $this->original = $this->attributes;\n\n        return $this;\n    }\n\n    /**\n     * Sync a single original attribute with its current value.\n     *\n     * @param  string  $attribute\n     * @return $this\n     */\n    public function syncOriginalAttribute($attribute)\n    {\n        return $this->syncOriginalAttributes($attribute);\n    }\n\n    /**\n     * Sync multiple original attribute with their current values.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function syncOriginalAttributes($attributes)\n    {\n        $attributes = is_array($attributes) ? $attributes : func_get_args();\n\n        foreach ($attributes as $attribute) {\n            $this->original[$attribute] = $this->attributes[$attribute];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Sync the changed attributes.\n     *\n     * @return $this\n     */\n    public function syncChanges()\n    {\n        $this->changes = $this->getDirty();\n\n        return $this;\n    }\n\n    /**\n     * Determine if the model or any of the given attribute(s) have been modified.\n     *\n     * @param  array|string|null  $attributes\n     * @return bool\n     */\n    public function isDirty($attributes = null)\n    {\n        return $this->hasChanges(\n            $this->getDirty(), is_array($attributes) ? $attributes : func_get_args()\n        );\n    }\n\n    /**\n     * Determine if the model and all the given attribute(s) have remained the same.\n     *\n     * @param  array|string|null  $attributes\n     * @return bool\n     */\n    public function isClean($attributes = null)\n    {\n        return ! $this->isDirty(...func_get_args());\n    }\n\n    /**\n     * Determine if the model or any of the given attribute(s) have been modified.\n     *\n     * @param  array|string|null  $attributes\n     * @return bool\n     */\n    public function wasChanged($attributes = null)\n    {\n        return $this->hasChanges(\n            $this->getChanges(), is_array($attributes) ? $attributes : func_get_args()\n        );\n    }\n\n    /**\n     * Determine if any of the given attributes were changed.\n     *\n     * @param  array  $changes\n     * @param  array|string|null  $attributes\n     * @return bool\n     */\n    protected function hasChanges($changes, $attributes = null)\n    {\n        // If no specific attributes were provided, we will just see if the dirty array\n        // already contains any attributes. If it does we will just return that this\n        // count is greater than zero. Else, we need to check specific attributes.\n        if (empty($attributes)) {\n            return count($changes) > 0;\n        }\n\n        // Here we will spin through every attribute and see if this is in the array of\n        // dirty attributes. If it is, we will return true and if we make it through\n        // all of the attributes for the entire array we will return false at end.\n        foreach (Arr::wrap($attributes) as $attribute) {\n            if (array_key_exists($attribute, $changes)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Get the attributes that have been changed since last sync.\n     *\n     * @return array\n     */\n    public function getDirty()\n    {\n        $dirty = [];\n\n        foreach ($this->getAttributes() as $key => $value) {\n            if (! $this->originalIsEquivalent($key, $value)) {\n                $dirty[$key] = $value;\n            }\n        }\n\n        return $dirty;\n    }\n\n    /**\n     * Get the attributes that were changed.\n     *\n     * @return array\n     */\n    public function getChanges()\n    {\n        return $this->changes;\n    }\n\n    /**\n     * Determine if the new and old values for a given key are equivalent.\n     *\n     * @param  string $key\n     * @param  mixed  $current\n     * @return bool\n     */\n    public function originalIsEquivalent($key, $current)\n    {\n        if (! array_key_exists($key, $this->original)) {\n            return false;\n        }\n\n        $original = $this->getOriginal($key);\n\n        if ($current === $original) {\n            return true;\n        } elseif (is_null($current)) {\n            return false;\n        } elseif ($this->isDateAttribute($key)) {\n            return $this->fromDateTime($current) ===\n                   $this->fromDateTime($original);\n        } elseif ($this->hasCast($key)) {\n            return $this->castAttribute($key, $current) ===\n                   $this->castAttribute($key, $original);\n        }\n\n        return is_numeric($current) && is_numeric($original)\n                && strcmp((string) $current, (string) $original) === 0;\n    }\n\n    /**\n     * Append attributes to query when building a query.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function append($attributes)\n    {\n        $this->appends = array_unique(\n            array_merge($this->appends, is_string($attributes) ? func_get_args() : $attributes)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Set the accessors to append to model arrays.\n     *\n     * @param  array  $appends\n     * @return $this\n     */\n    public function setAppends(array $appends)\n    {\n        $this->appends = $appends;\n\n        return $this;\n    }\n\n    /**\n     * Get the mutated attributes for a given instance.\n     *\n     * @return array\n     */\n    public function getMutatedAttributes()\n    {\n        $class = static::class;\n\n        if (! isset(static::$mutatorCache[$class])) {\n            static::cacheMutatedAttributes($class);\n        }\n\n        return static::$mutatorCache[$class];\n    }\n\n    /**\n     * Extract and cache all the mutated attributes of a class.\n     *\n     * @param  string  $class\n     * @return void\n     */\n    public static function cacheMutatedAttributes($class)\n    {\n        static::$mutatorCache[$class] = collect(static::getMutatorMethods($class))->map(function ($match) {\n            return lcfirst(static::$snakeAttributes ? Str::snake($match) : $match);\n        })->all();\n    }\n\n    /**\n     * Get all of the attribute mutator methods.\n     *\n     * @param  mixed  $class\n     * @return array\n     */\n    protected static function getMutatorMethods($class)\n    {\n        preg_match_all('/(?<=^|;)get([^;]+?)Attribute(;|$)/', implode(';', get_class_methods($class)), $matches);\n\n        return $matches[1];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasEvents.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\n\ntrait HasEvents\n{\n    /**\n     * The event map for the model.\n     *\n     * Allows for object-based events for native Eloquent events.\n     *\n     * @var array\n     */\n    protected $dispatchesEvents = [];\n\n    /**\n     * User exposed observable events.\n     *\n     * These are extra user-defined events observers may subscribe to.\n     *\n     * @var array\n     */\n    protected $observables = [];\n\n    /**\n     * Register observers with the model.\n     *\n     * @param  object|array|string  $classes\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    public static function observe($classes)\n    {\n        $instance = new static;\n\n        foreach (Arr::wrap($classes) as $class) {\n            $instance->registerObserver($class);\n        }\n    }\n\n    /**\n     * Register a single observer with the model.\n     *\n     * @param  object|string $class\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    protected function registerObserver($class)\n    {\n        $className = $this->resolveObserverClassName($class);\n\n        // When registering a model observer, we will spin through the possible events\n        // and determine if this observer has that method. If it does, we will hook\n        // it into the model's event system, making it convenient to watch these.\n        foreach ($this->getObservableEvents() as $event) {\n            if (method_exists($class, $event)) {\n                static::registerModelEvent($event, $className.'@'.$event);\n            }\n        }\n    }\n\n    /**\n     * Resolve the observer's class name from an object or string.\n     *\n     * @param  object|string $class\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    private function resolveObserverClassName($class)\n    {\n        if (is_object($class)) {\n            return get_class($class);\n        }\n\n        if (class_exists($class)) {\n            return $class;\n        }\n\n        throw new InvalidArgumentException('Unable to find observer: '.$class);\n    }\n\n    /**\n     * Get the observable event names.\n     *\n     * @return array\n     */\n    public function getObservableEvents()\n    {\n        return array_merge(\n            [\n                'retrieved', 'creating', 'created', 'updating', 'updated',\n                'saving', 'saved', 'restoring', 'restored', 'replicating',\n                'deleting', 'deleted', 'forceDeleted',\n            ],\n            $this->observables\n        );\n    }\n\n    /**\n     * Set the observable event names.\n     *\n     * @param  array  $observables\n     * @return $this\n     */\n    public function setObservableEvents(array $observables)\n    {\n        $this->observables = $observables;\n\n        return $this;\n    }\n\n    /**\n     * Add an observable event name.\n     *\n     * @param  array|mixed  $observables\n     * @return void\n     */\n    public function addObservableEvents($observables)\n    {\n        $this->observables = array_unique(array_merge(\n            $this->observables, is_array($observables) ? $observables : func_get_args()\n        ));\n    }\n\n    /**\n     * Remove an observable event name.\n     *\n     * @param  array|mixed  $observables\n     * @return void\n     */\n    public function removeObservableEvents($observables)\n    {\n        $this->observables = array_diff(\n            $this->observables, is_array($observables) ? $observables : func_get_args()\n        );\n    }\n\n    /**\n     * Register a model event with the dispatcher.\n     *\n     * @param  string  $event\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    protected static function registerModelEvent($event, $callback)\n    {\n        if (isset(static::$dispatcher)) {\n            $name = static::class;\n\n            static::$dispatcher->listen(\"eloquent.{$event}: {$name}\", $callback);\n        }\n    }\n\n    /**\n     * Fire the given event for the model.\n     *\n     * @param  string  $event\n     * @param  bool  $halt\n     * @return mixed\n     */\n    protected function fireModelEvent($event, $halt = true)\n    {\n        if (! isset(static::$dispatcher)) {\n            return true;\n        }\n\n        // First, we will get the proper method to call on the event dispatcher, and then we\n        // will attempt to fire a custom, object based event for the given event. If that\n        // returns a result we can return that result, or we'll call the string events.\n        $method = $halt ? 'until' : 'dispatch';\n\n        $result = $this->filterModelEventResults(\n            $this->fireCustomModelEvent($event, $method)\n        );\n\n        if ($result === false) {\n            return false;\n        }\n\n        return ! empty($result) ? $result : static::$dispatcher->{$method}(\n            \"eloquent.{$event}: \".static::class, $this\n        );\n    }\n\n    /**\n     * Fire a custom model event for the given event.\n     *\n     * @param  string  $event\n     * @param  string  $method\n     * @return mixed|null\n     */\n    protected function fireCustomModelEvent($event, $method)\n    {\n        if (! isset($this->dispatchesEvents[$event])) {\n            return;\n        }\n\n        $result = static::$dispatcher->$method(new $this->dispatchesEvents[$event]($this));\n\n        if (! is_null($result)) {\n            return $result;\n        }\n    }\n\n    /**\n     * Filter the model event results.\n     *\n     * @param  mixed  $result\n     * @return mixed\n     */\n    protected function filterModelEventResults($result)\n    {\n        if (is_array($result)) {\n            $result = array_filter($result, function ($response) {\n                return ! is_null($response);\n            });\n        }\n\n        return $result;\n    }\n\n    /**\n     * Register a retrieved model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function retrieved($callback)\n    {\n        static::registerModelEvent('retrieved', $callback);\n    }\n\n    /**\n     * Register a saving model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function saving($callback)\n    {\n        static::registerModelEvent('saving', $callback);\n    }\n\n    /**\n     * Register a saved model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function saved($callback)\n    {\n        static::registerModelEvent('saved', $callback);\n    }\n\n    /**\n     * Register an updating model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function updating($callback)\n    {\n        static::registerModelEvent('updating', $callback);\n    }\n\n    /**\n     * Register an updated model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function updated($callback)\n    {\n        static::registerModelEvent('updated', $callback);\n    }\n\n    /**\n     * Register a creating model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function creating($callback)\n    {\n        static::registerModelEvent('creating', $callback);\n    }\n\n    /**\n     * Register a created model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function created($callback)\n    {\n        static::registerModelEvent('created', $callback);\n    }\n\n    /**\n     * Register a replicating model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function replicating($callback)\n    {\n        static::registerModelEvent('replicating', $callback);\n    }\n\n    /**\n     * Register a deleting model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function deleting($callback)\n    {\n        static::registerModelEvent('deleting', $callback);\n    }\n\n    /**\n     * Register a deleted model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function deleted($callback)\n    {\n        static::registerModelEvent('deleted', $callback);\n    }\n\n    /**\n     * Remove all of the event listeners for the model.\n     *\n     * @return void\n     */\n    public static function flushEventListeners()\n    {\n        if (! isset(static::$dispatcher)) {\n            return;\n        }\n\n        $instance = new static;\n\n        foreach ($instance->getObservableEvents() as $event) {\n            static::$dispatcher->forget(\"eloquent.{$event}: \".static::class);\n        }\n\n        foreach (array_values($instance->dispatchesEvents) as $event) {\n            static::$dispatcher->forget($event);\n        }\n    }\n\n    /**\n     * Get the event dispatcher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public static function getEventDispatcher()\n    {\n        return static::$dispatcher;\n    }\n\n    /**\n     * Set the event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $dispatcher\n     * @return void\n     */\n    public static function setEventDispatcher(Dispatcher $dispatcher)\n    {\n        static::$dispatcher = $dispatcher;\n    }\n\n    /**\n     * Unset the event dispatcher for models.\n     *\n     * @return void\n     */\n    public static function unsetEventDispatcher()\n    {\n        static::$dispatcher = null;\n    }\n\n    /**\n     * Execute a callback without firing any model events for any model type.\n     *\n     * @param  callable  $callback\n     * @return mixed\n     */\n    public static function withoutEvents(callable $callback)\n    {\n        $dispatcher = static::getEventDispatcher();\n\n        static::unsetEventDispatcher();\n\n        try {\n            return $callback();\n        } finally {\n            if ($dispatcher) {\n                static::setEventDispatcher($dispatcher);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasGlobalScopes.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse Illuminate\\Database\\Eloquent\\Scope;\n\ntrait HasGlobalScopes\n{\n    /**\n     * Register a new global scope on the model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|\\Closure|string  $scope\n     * @param  \\Closure|null  $implementation\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public static function addGlobalScope($scope, Closure $implementation = null)\n    {\n        if (is_string($scope) && ! is_null($implementation)) {\n            return static::$globalScopes[static::class][$scope] = $implementation;\n        } elseif ($scope instanceof Closure) {\n            return static::$globalScopes[static::class][spl_object_hash($scope)] = $scope;\n        } elseif ($scope instanceof Scope) {\n            return static::$globalScopes[static::class][get_class($scope)] = $scope;\n        }\n\n        throw new InvalidArgumentException('Global scope must be an instance of Closure or Scope.');\n    }\n\n    /**\n     * Determine if a model has a global scope.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|string  $scope\n     * @return bool\n     */\n    public static function hasGlobalScope($scope)\n    {\n        return ! is_null(static::getGlobalScope($scope));\n    }\n\n    /**\n     * Get a global scope registered with the model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|string  $scope\n     * @return \\Illuminate\\Database\\Eloquent\\Scope|\\Closure|null\n     */\n    public static function getGlobalScope($scope)\n    {\n        if (is_string($scope)) {\n            return Arr::get(static::$globalScopes, static::class.'.'.$scope);\n        }\n\n        return Arr::get(\n            static::$globalScopes, static::class.'.'.get_class($scope)\n        );\n    }\n\n    /**\n     * Get the global scopes for this class instance.\n     *\n     * @return array\n     */\n    public function getGlobalScopes()\n    {\n        return Arr::get(static::$globalScopes, static::class, []);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasOne;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphTo;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphOne;\nuse Illuminate\\Database\\Eloquent\\Relations\\Relation;\nuse Illuminate\\Database\\Eloquent\\Relations\\BelongsTo;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphToMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasOneThrough;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough;\n\ntrait HasRelationships\n{\n    /**\n     * The loaded relationships for the model.\n     *\n     * @var array\n     */\n    protected $relations = [];\n\n    /**\n     * The relationships that should be touched on save.\n     *\n     * @var array\n     */\n    protected $touches = [];\n\n    /**\n     * The many to many relationship methods.\n     *\n     * @var array\n     */\n    public static $manyMethods = [\n        'belongsToMany', 'morphToMany', 'morphedByMany',\n    ];\n\n    /**\n     * Define a one-to-one relationship.\n     *\n     * @param  string  $related\n     * @param  string  $foreignKey\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasOne\n     */\n    public function hasOne($related, $foreignKey = null, $localKey = null)\n    {\n        $instance = $this->newRelatedInstance($related);\n\n        $foreignKey = $foreignKey ?: $this->getForeignKey();\n\n        $localKey = $localKey ?: $this->getKeyName();\n\n        return $this->newHasOne($instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey);\n    }\n\n    /**\n     * Instantiate a new HasOne relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $foreignKey\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasOne\n     */\n    protected function newHasOne(Builder $query, Model $parent, $foreignKey, $localKey)\n    {\n        return new HasOne($query, $parent, $foreignKey, $localKey);\n    }\n\n    /**\n     * Define a has-one-through relationship.\n     *\n     * @param  string  $related\n     * @param  string  $through\n     * @param  string|null  $firstKey\n     * @param  string|null  $secondKey\n     * @param  string|null  $localKey\n     * @param  string|null  $secondLocalKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasOneThrough\n     */\n    public function hasOneThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)\n    {\n        $through = new $through;\n\n        $firstKey = $firstKey ?: $this->getForeignKey();\n\n        $secondKey = $secondKey ?: $through->getForeignKey();\n\n        return $this->newHasOneThrough(\n            $this->newRelatedInstance($related)->newQuery(), $this, $through,\n            $firstKey, $secondKey, $localKey ?: $this->getKeyName(),\n            $secondLocalKey ?: $through->getKeyName()\n        );\n    }\n\n    /**\n     * Instantiate a new HasOneThrough relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $farParent\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $throughParent\n     * @param  string  $firstKey\n     * @param  string  $secondKey\n     * @param  string  $localKey\n     * @param  string  $secondLocalKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasOneThrough\n     */\n    protected function newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)\n    {\n        return new HasOneThrough($query, $farParent, $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey);\n    }\n\n    /**\n     * Define a polymorphic one-to-one relationship.\n     *\n     * @param  string  $related\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphOne\n     */\n    public function morphOne($related, $name, $type = null, $id = null, $localKey = null)\n    {\n        $instance = $this->newRelatedInstance($related);\n\n        [$type, $id] = $this->getMorphs($name, $type, $id);\n\n        $table = $instance->getTable();\n\n        $localKey = $localKey ?: $this->getKeyName();\n\n        return $this->newMorphOne($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey);\n    }\n\n    /**\n     * Instantiate a new MorphOne relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphOne\n     */\n    protected function newMorphOne(Builder $query, Model $parent, $type, $id, $localKey)\n    {\n        return new MorphOne($query, $parent, $type, $id, $localKey);\n    }\n\n    /**\n     * Define an inverse one-to-one or many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $foreignKey\n     * @param  string  $ownerKey\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\BelongsTo\n     */\n    public function belongsTo($related, $foreignKey = null, $ownerKey = null, $relation = null)\n    {\n        // If no relation name was given, we will use this debug backtrace to extract\n        // the calling method's name and use that as the relationship name as most\n        // of the time this will be what we desire to use for the relationships.\n        if (is_null($relation)) {\n            $relation = $this->guessBelongsToRelation();\n        }\n\n        $instance = $this->newRelatedInstance($related);\n\n        // If no foreign key was supplied, we can use a backtrace to guess the proper\n        // foreign key name by using the name of the relationship function, which\n        // when combined with an \"_id\" should conventionally match the columns.\n        if (is_null($foreignKey)) {\n            $foreignKey = Str::snake($relation).'_'.$instance->getKeyName();\n        }\n\n        // Once we have the foreign key names, we'll just create a new Eloquent query\n        // for the related models and returns the relationship instance which will\n        // actually be responsible for retrieving and hydrating every relations.\n        $ownerKey = $ownerKey ?: $instance->getKeyName();\n\n        return $this->newBelongsTo(\n            $instance->newQuery(), $this, $foreignKey, $ownerKey, $relation\n        );\n    }\n\n    /**\n     * Instantiate a new BelongsTo relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $child\n     * @param  string  $foreignKey\n     * @param  string  $ownerKey\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\BelongsTo\n     */\n    protected function newBelongsTo(Builder $query, Model $child, $foreignKey, $ownerKey, $relation)\n    {\n        return new BelongsTo($query, $child, $foreignKey, $ownerKey, $relation);\n    }\n\n    /**\n     * Define a polymorphic, inverse one-to-one or many relationship.\n     *\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $ownerKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo\n     */\n    public function morphTo($name = null, $type = null, $id = null, $ownerKey = null)\n    {\n        // If no name is provided, we will use the backtrace to get the function name\n        // since that is most likely the name of the polymorphic interface. We can\n        // use that to get both the class and foreign key that will be utilized.\n        $name = $name ?: $this->guessBelongsToRelation();\n\n        [$type, $id] = $this->getMorphs(\n            Str::snake($name), $type, $id\n        );\n\n        // If the type value is null it is probably safe to assume we're eager loading\n        // the relationship. In this case we'll just pass in a dummy query where we\n        // need to remove any eager loads that may already be defined on a model.\n        return empty($class = $this->{$type})\n                    ? $this->morphEagerTo($name, $type, $id, $ownerKey)\n                    : $this->morphInstanceTo($class, $name, $type, $id, $ownerKey);\n    }\n\n    /**\n     * Define a polymorphic, inverse one-to-one or many relationship.\n     *\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $ownerKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo\n     */\n    protected function morphEagerTo($name, $type, $id, $ownerKey)\n    {\n        return $this->newMorphTo(\n            $this->newQuery()->setEagerLoads([]), $this, $id, $ownerKey, $type, $name\n        );\n    }\n\n    /**\n     * Define a polymorphic, inverse one-to-one or many relationship.\n     *\n     * @param  string  $target\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $ownerKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo\n     */\n    protected function morphInstanceTo($target, $name, $type, $id, $ownerKey)\n    {\n        $instance = $this->newRelatedInstance(\n            static::getActualClassNameForMorph($target)\n        );\n\n        return $this->newMorphTo(\n            $instance->newQuery(), $this, $id, $ownerKey ?? $instance->getKeyName(), $type, $name\n        );\n    }\n\n    /**\n     * Instantiate a new MorphTo relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $foreignKey\n     * @param  string  $ownerKey\n     * @param  string  $type\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo\n     */\n    protected function newMorphTo(Builder $query, Model $parent, $foreignKey, $ownerKey, $type, $relation)\n    {\n        return new MorphTo($query, $parent, $foreignKey, $ownerKey, $type, $relation);\n    }\n\n    /**\n     * Retrieve the actual class name for a given morph class.\n     *\n     * @param  string  $class\n     * @return string\n     */\n    public static function getActualClassNameForMorph($class)\n    {\n        return Arr::get(Relation::morphMap() ?: [], $class, $class);\n    }\n\n    /**\n     * Guess the \"belongs to\" relationship name.\n     *\n     * @return string\n     */\n    protected function guessBelongsToRelation()\n    {\n        [$one, $two, $caller] = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);\n\n        return $caller['function'];\n    }\n\n    /**\n     * Define a one-to-many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $foreignKey\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany\n     */\n    public function hasMany($related, $foreignKey = null, $localKey = null)\n    {\n        $instance = $this->newRelatedInstance($related);\n\n        $foreignKey = $foreignKey ?: $this->getForeignKey();\n\n        $localKey = $localKey ?: $this->getKeyName();\n\n        return $this->newHasMany(\n            $instance->newQuery(), $this, $instance->getTable().'.'.$foreignKey, $localKey\n        );\n    }\n\n    /**\n     * Instantiate a new HasMany relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $foreignKey\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany\n     */\n    protected function newHasMany(Builder $query, Model $parent, $foreignKey, $localKey)\n    {\n        return new HasMany($query, $parent, $foreignKey, $localKey);\n    }\n\n    /**\n     * Define a has-many-through relationship.\n     *\n     * @param  string  $related\n     * @param  string  $through\n     * @param  string|null  $firstKey\n     * @param  string|null  $secondKey\n     * @param  string|null  $localKey\n     * @param  string|null  $secondLocalKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough\n     */\n    public function hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null)\n    {\n        $through = new $through;\n\n        $firstKey = $firstKey ?: $this->getForeignKey();\n\n        $secondKey = $secondKey ?: $through->getForeignKey();\n\n        return $this->newHasManyThrough(\n            $this->newRelatedInstance($related)->newQuery(), $this, $through,\n            $firstKey, $secondKey, $localKey ?: $this->getKeyName(),\n            $secondLocalKey ?: $through->getKeyName()\n        );\n    }\n\n    /**\n     * Instantiate a new HasManyThrough relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $farParent\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $throughParent\n     * @param  string  $firstKey\n     * @param  string  $secondKey\n     * @param  string  $localKey\n     * @param  string  $secondLocalKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasManyThrough\n     */\n    protected function newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)\n    {\n        return new HasManyThrough($query, $farParent, $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey);\n    }\n\n    /**\n     * Define a polymorphic one-to-many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany\n     */\n    public function morphMany($related, $name, $type = null, $id = null, $localKey = null)\n    {\n        $instance = $this->newRelatedInstance($related);\n\n        // Here we will gather up the morph type and ID for the relationship so that we\n        // can properly query the intermediate table of a relation. Finally, we will\n        // get the table and create the relationship instances for the developers.\n        [$type, $id] = $this->getMorphs($name, $type, $id);\n\n        $table = $instance->getTable();\n\n        $localKey = $localKey ?: $this->getKeyName();\n\n        return $this->newMorphMany($instance->newQuery(), $this, $table.'.'.$type, $table.'.'.$id, $localKey);\n    }\n\n    /**\n     * Instantiate a new MorphMany relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $localKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany\n     */\n    protected function newMorphMany(Builder $query, Model $parent, $type, $id, $localKey)\n    {\n        return new MorphMany($query, $parent, $type, $id, $localKey);\n    }\n\n    /**\n     * Define a many-to-many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany\n     */\n    public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null,\n                                  $parentKey = null, $relatedKey = null, $relation = null)\n    {\n        // If no relationship name was passed, we will pull backtraces to get the\n        // name of the calling function. We will use that function name as the\n        // title of this relation since that is a great convention to apply.\n        if (is_null($relation)) {\n            $relation = $this->guessBelongsToManyRelation();\n        }\n\n        // First, we'll need to determine the foreign key and \"other key\" for the\n        // relationship. Once we have determined the keys we'll make the query\n        // instances as well as the relationship instances we need for this.\n        $instance = $this->newRelatedInstance($related);\n\n        $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey();\n\n        $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey();\n\n        // If no table name was provided, we can guess it by concatenating the two\n        // models using underscores in alphabetical order. The two model names\n        // are transformed to snake case from their default CamelCase also.\n        if (is_null($table)) {\n            $table = $this->joiningTable($related, $instance);\n        }\n\n        return $this->newBelongsToMany(\n            $instance->newQuery(), $this, $table, $foreignPivotKey,\n            $relatedPivotKey, $parentKey ?: $this->getKeyName(),\n            $relatedKey ?: $instance->getKeyName(), $relation\n        );\n    }\n\n    /**\n     * Instantiate a new BelongsToMany relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  string  $relationName\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\BelongsToMany\n     */\n    protected function newBelongsToMany(Builder $query, Model $parent, $table, $foreignPivotKey, $relatedPivotKey,\n                                        $parentKey, $relatedKey, $relationName = null)\n    {\n        return new BelongsToMany($query, $parent, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $relationName);\n    }\n\n    /**\n     * Define a polymorphic many-to-many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $name\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  bool  $inverse\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphToMany\n     */\n    public function morphToMany($related, $name, $table = null, $foreignPivotKey = null,\n                                $relatedPivotKey = null, $parentKey = null,\n                                $relatedKey = null, $inverse = false)\n    {\n        $caller = $this->guessBelongsToManyRelation();\n\n        // First, we will need to determine the foreign key and \"other key\" for the\n        // relationship. Once we have determined the keys we will make the query\n        // instances, as well as the relationship instances we need for these.\n        $instance = $this->newRelatedInstance($related);\n\n        $foreignPivotKey = $foreignPivotKey ?: $name.'_id';\n\n        $relatedPivotKey = $relatedPivotKey ?: $instance->getForeignKey();\n\n        // Now we're ready to create a new query builder for this related model and\n        // the relationship instances for this relation. This relations will set\n        // appropriate query constraints then entirely manages the hydrations.\n        if (! $table) {\n            $words = preg_split('/(_)/u', $name, -1, PREG_SPLIT_DELIM_CAPTURE);\n\n            $lastWord = array_pop($words);\n\n            $table = implode('', $words).Str::plural($lastWord);\n        }\n\n        return $this->newMorphToMany(\n            $instance->newQuery(), $this, $name, $table,\n            $foreignPivotKey, $relatedPivotKey, $parentKey ?: $this->getKeyName(),\n            $relatedKey ?: $instance->getKeyName(), $caller, $inverse\n        );\n    }\n\n    /**\n     * Instantiate a new MorphToMany relationship.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $name\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  string  $relationName\n     * @param  bool  $inverse\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphToMany\n     */\n    protected function newMorphToMany(Builder $query, Model $parent, $name, $table, $foreignPivotKey,\n                                      $relatedPivotKey, $parentKey, $relatedKey,\n                                      $relationName = null, $inverse = false)\n    {\n        return new MorphToMany($query, $parent, $name, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey,\n            $relationName, $inverse);\n    }\n\n    /**\n     * Define a polymorphic, inverse many-to-many relationship.\n     *\n     * @param  string  $related\n     * @param  string  $name\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphToMany\n     */\n    public function morphedByMany($related, $name, $table = null, $foreignPivotKey = null,\n                                  $relatedPivotKey = null, $parentKey = null, $relatedKey = null)\n    {\n        $foreignPivotKey = $foreignPivotKey ?: $this->getForeignKey();\n\n        // For the inverse of the polymorphic many-to-many relations, we will change\n        // the way we determine the foreign and other keys, as it is the opposite\n        // of the morph-to-many method since we're figuring out these inverses.\n        $relatedPivotKey = $relatedPivotKey ?: $name.'_id';\n\n        return $this->morphToMany(\n            $related, $name, $table, $foreignPivotKey,\n            $relatedPivotKey, $parentKey, $relatedKey, true\n        );\n    }\n\n    /**\n     * Get the relationship name of the belongsToMany relationship.\n     *\n     * @return string|null\n     */\n    protected function guessBelongsToManyRelation()\n    {\n        $caller = Arr::first(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), function ($trace) {\n            return ! in_array(\n                $trace['function'],\n                array_merge(static::$manyMethods, ['guessBelongsToManyRelation'])\n            );\n        });\n\n        return ! is_null($caller) ? $caller['function'] : null;\n    }\n\n    /**\n     * Get the joining table name for a many-to-many relation.\n     *\n     * @param  string  $related\n     * @param  \\Illuminate\\Database\\Eloquent\\Model|null  $instance\n     * @return string\n     */\n    public function joiningTable($related, $instance = null)\n    {\n        // The joining table name, by convention, is simply the snake cased models\n        // sorted alphabetically and concatenated with an underscore, so we can\n        // just sort the models and join them together to get the table name.\n        $segments = [\n            $instance ? $instance->joiningTableSegment()\n                      : Str::snake(class_basename($related)),\n            $this->joiningTableSegment(),\n        ];\n\n        // Now that we have the model names in an array we can just sort them and\n        // use the implode function to join them together with an underscores,\n        // which is typically used by convention within the database system.\n        sort($segments);\n\n        return strtolower(implode('_', $segments));\n    }\n\n    /**\n     * Get this model's half of the intermediate table name for belongsToMany relationships.\n     *\n     * @return string\n     */\n    public function joiningTableSegment()\n    {\n        return Str::snake(class_basename($this));\n    }\n\n    /**\n     * Determine if the model touches a given relation.\n     *\n     * @param  string  $relation\n     * @return bool\n     */\n    public function touches($relation)\n    {\n        return in_array($relation, $this->touches);\n    }\n\n    /**\n     * Touch the owning relations of the model.\n     *\n     * @return void\n     */\n    public function touchOwners()\n    {\n        foreach ($this->touches as $relation) {\n            $this->$relation()->touch();\n\n            if ($this->$relation instanceof self) {\n                $this->$relation->fireModelEvent('saved', false);\n\n                $this->$relation->touchOwners();\n            } elseif ($this->$relation instanceof Collection) {\n                $this->$relation->each(function (Model $relation) {\n                    $relation->touchOwners();\n                });\n            }\n        }\n    }\n\n    /**\n     * Get the polymorphic relationship columns.\n     *\n     * @param  string  $name\n     * @param  string  $type\n     * @param  string  $id\n     * @return array\n     */\n    protected function getMorphs($name, $type, $id)\n    {\n        return [$type ?: $name.'_type', $id ?: $name.'_id'];\n    }\n\n    /**\n     * Get the class name for polymorphic relations.\n     *\n     * @return string\n     */\n    public function getMorphClass()\n    {\n        $morphMap = Relation::morphMap();\n\n        if (! empty($morphMap) && in_array(static::class, $morphMap)) {\n            return array_search(static::class, $morphMap, true);\n        }\n\n        return static::class;\n    }\n\n    /**\n     * Create a new model instance for a related model.\n     *\n     * @param  string  $class\n     * @return mixed\n     */\n    protected function newRelatedInstance($class)\n    {\n        return tap(new $class, function ($instance) {\n            if (! $instance->getConnectionName()) {\n                $instance->setConnection($this->connection);\n            }\n        });\n    }\n\n    /**\n     * Get all the loaded relations for the instance.\n     *\n     * @return array\n     */\n    public function getRelations()\n    {\n        return $this->relations;\n    }\n\n    /**\n     * Get a specified relationship.\n     *\n     * @param  string  $relation\n     * @return mixed\n     */\n    public function getRelation($relation)\n    {\n        return $this->relations[$relation];\n    }\n\n    /**\n     * Determine if the given relation is loaded.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function relationLoaded($key)\n    {\n        return array_key_exists($key, $this->relations);\n    }\n\n    /**\n     * Set the given relationship on the model.\n     *\n     * @param  string  $relation\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function setRelation($relation, $value)\n    {\n        $this->relations[$relation] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Unset a loaded relationship.\n     *\n     * @param  string  $relation\n     * @return $this\n     */\n    public function unsetRelation($relation)\n    {\n        unset($this->relations[$relation]);\n\n        return $this;\n    }\n\n    /**\n     * Set the entire relations array on the model.\n     *\n     * @param  array  $relations\n     * @return $this\n     */\n    public function setRelations(array $relations)\n    {\n        $this->relations = $relations;\n\n        return $this;\n    }\n\n    /**\n     * Get the relationships that are touched on save.\n     *\n     * @return array\n     */\n    public function getTouchedRelations()\n    {\n        return $this->touches;\n    }\n\n    /**\n     * Set the relationships that are touched on save.\n     *\n     * @param  array  $touches\n     * @return $this\n     */\n    public function setTouchedRelations(array $touches)\n    {\n        $this->touches = $touches;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Illuminate\\Support\\Facades\\Date;\n\ntrait HasTimestamps\n{\n    /**\n     * Indicates if the model should be timestamped.\n     *\n     * @var bool\n     */\n    public $timestamps = true;\n\n    /**\n     * Update the model's update timestamp.\n     *\n     * @return bool\n     */\n    public function touch()\n    {\n        if (! $this->usesTimestamps()) {\n            return false;\n        }\n\n        $this->updateTimestamps();\n\n        return $this->save();\n    }\n\n    /**\n     * Update the creation and update timestamps.\n     *\n     * @return void\n     */\n    protected function updateTimestamps()\n    {\n        $time = $this->freshTimestamp();\n\n        if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) {\n            $this->setUpdatedAt($time);\n        }\n\n        if (! $this->exists && ! is_null(static::CREATED_AT) &&\n            ! $this->isDirty(static::CREATED_AT)) {\n            $this->setCreatedAt($time);\n        }\n    }\n\n    /**\n     * Set the value of the \"created at\" attribute.\n     *\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function setCreatedAt($value)\n    {\n        $this->{static::CREATED_AT} = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the value of the \"updated at\" attribute.\n     *\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function setUpdatedAt($value)\n    {\n        $this->{static::UPDATED_AT} = $value;\n\n        return $this;\n    }\n\n    /**\n     * Get a fresh timestamp for the model.\n     *\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    public function freshTimestamp()\n    {\n        return Date::now();\n    }\n\n    /**\n     * Get a fresh timestamp for the model.\n     *\n     * @return string\n     */\n    public function freshTimestampString()\n    {\n        return $this->fromDateTime($this->freshTimestamp());\n    }\n\n    /**\n     * Determine if the model uses timestamps.\n     *\n     * @return bool\n     */\n    public function usesTimestamps()\n    {\n        return $this->timestamps;\n    }\n\n    /**\n     * Get the name of the \"created at\" column.\n     *\n     * @return string\n     */\n    public function getCreatedAtColumn()\n    {\n        return static::CREATED_AT;\n    }\n\n    /**\n     * Get the name of the \"updated at\" column.\n     *\n     * @return string\n     */\n    public function getUpdatedAtColumn()\n    {\n        return static::UPDATED_AT;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HidesAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\ntrait HidesAttributes\n{\n    /**\n     * The attributes that should be hidden for serialization.\n     *\n     * @var array\n     */\n    protected $hidden = [];\n\n    /**\n     * The attributes that should be visible in serialization.\n     *\n     * @var array\n     */\n    protected $visible = [];\n\n    /**\n     * Get the hidden attributes for the model.\n     *\n     * @return array\n     */\n    public function getHidden()\n    {\n        return $this->hidden;\n    }\n\n    /**\n     * Set the hidden attributes for the model.\n     *\n     * @param  array  $hidden\n     * @return $this\n     */\n    public function setHidden(array $hidden)\n    {\n        $this->hidden = $hidden;\n\n        return $this;\n    }\n\n    /**\n     * Add hidden attributes for the model.\n     *\n     * @param  array|string|null  $attributes\n     * @return void\n     */\n    public function addHidden($attributes = null)\n    {\n        $this->hidden = array_merge(\n            $this->hidden, is_array($attributes) ? $attributes : func_get_args()\n        );\n    }\n\n    /**\n     * Get the visible attributes for the model.\n     *\n     * @return array\n     */\n    public function getVisible()\n    {\n        return $this->visible;\n    }\n\n    /**\n     * Set the visible attributes for the model.\n     *\n     * @param  array  $visible\n     * @return $this\n     */\n    public function setVisible(array $visible)\n    {\n        $this->visible = $visible;\n\n        return $this;\n    }\n\n    /**\n     * Add visible attributes for the model.\n     *\n     * @param  array|string|null  $attributes\n     * @return void\n     */\n    public function addVisible($attributes = null)\n    {\n        $this->visible = array_merge(\n            $this->visible, is_array($attributes) ? $attributes : func_get_args()\n        );\n    }\n\n    /**\n     * Make the given, typically hidden, attributes visible.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function makeVisible($attributes)\n    {\n        $this->hidden = array_diff($this->hidden, (array) $attributes);\n\n        if (! empty($this->visible)) {\n            $this->addVisible($attributes);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Make the given, typically visible, attributes hidden.\n     *\n     * @param  array|string  $attributes\n     * @return $this\n     */\n    public function makeHidden($attributes)\n    {\n        $attributes = (array) $attributes;\n\n        $this->visible = array_diff($this->visible, $attributes);\n\n        $this->hidden = array_unique(array_merge($this->hidden, $attributes));\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/QueriesRelationships.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Concerns;\n\nuse Closure;\nuse RuntimeException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Query\\Expression;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphTo;\nuse Illuminate\\Database\\Eloquent\\Relations\\Relation;\nuse Illuminate\\Database\\Query\\Builder as QueryBuilder;\n\ntrait QueriesRelationships\n{\n    /**\n     * Add a relationship count / exists condition to the query.\n     *\n     * @param  string|\\Illuminate\\Database\\Eloquent\\Relations\\Relation  $relation\n     * @param  string  $operator\n     * @param  int     $count\n     * @param  string  $boolean\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function has($relation, $operator = '>=', $count = 1, $boolean = 'and', Closure $callback = null)\n    {\n        if (is_string($relation)) {\n            if (strpos($relation, '.') !== false) {\n                return $this->hasNested($relation, $operator, $count, $boolean, $callback);\n            }\n\n            $relation = $this->getRelationWithoutConstraints($relation);\n        }\n\n        if ($relation instanceof MorphTo) {\n            throw new RuntimeException('Please use whereHasMorph() for MorphTo relationships.');\n        }\n\n        // If we only need to check for the existence of the relation, then we can optimize\n        // the subquery to only run a \"where exists\" clause instead of this full \"count\"\n        // clause. This will make these queries run much faster compared with a count.\n        $method = $this->canUseExistsForExistenceCheck($operator, $count)\n                        ? 'getRelationExistenceQuery'\n                        : 'getRelationExistenceCountQuery';\n\n        $hasQuery = $relation->{$method}(\n            $relation->getRelated()->newQueryWithoutRelationships(), $this\n        );\n\n        // Next we will call any given callback as an \"anonymous\" scope so they can get the\n        // proper logical grouping of the where clauses if needed by this Eloquent query\n        // builder. Then, we will be ready to finalize and return this query instance.\n        if ($callback) {\n            $hasQuery->callScope($callback);\n        }\n\n        return $this->addHasWhere(\n            $hasQuery, $relation, $operator, $count, $boolean\n        );\n    }\n\n    /**\n     * Add nested relationship count / exists conditions to the query.\n     *\n     * Sets up recursive call to whereHas until we finish the nested relation.\n     *\n     * @param  string  $relations\n     * @param  string  $operator\n     * @param  int     $count\n     * @param  string  $boolean\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    protected function hasNested($relations, $operator = '>=', $count = 1, $boolean = 'and', $callback = null)\n    {\n        $relations = explode('.', $relations);\n\n        $doesntHave = $operator === '<' && $count === 1;\n\n        if ($doesntHave) {\n            $operator = '>=';\n            $count = 1;\n        }\n\n        $closure = function ($q) use (&$closure, &$relations, $operator, $count, $callback) {\n            // In order to nest \"has\", we need to add count relation constraints on the\n            // callback Closure. We'll do this by simply passing the Closure its own\n            // reference to itself so it calls itself recursively on each segment.\n            count($relations) > 1\n                ? $q->whereHas(array_shift($relations), $closure)\n                : $q->has(array_shift($relations), $operator, $count, 'and', $callback);\n        };\n\n        return $this->has(array_shift($relations), $doesntHave ? '<' : '>=', 1, $boolean, $closure);\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with an \"or\".\n     *\n     * @param  string  $relation\n     * @param  string  $operator\n     * @param  int     $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orHas($relation, $operator = '>=', $count = 1)\n    {\n        return $this->has($relation, $operator, $count, 'or');\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query.\n     *\n     * @param  string  $relation\n     * @param  string  $boolean\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function doesntHave($relation, $boolean = 'and', Closure $callback = null)\n    {\n        return $this->has($relation, '<', 1, $boolean, $callback);\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with an \"or\".\n     *\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orDoesntHave($relation)\n    {\n        return $this->doesntHave($relation, 'or');\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with where clauses.\n     *\n     * @param  string  $relation\n     * @param  \\Closure|null  $callback\n     * @param  string  $operator\n     * @param  int     $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function whereHas($relation, Closure $callback = null, $operator = '>=', $count = 1)\n    {\n        return $this->has($relation, $operator, $count, 'and', $callback);\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n     *\n     * @param  string    $relation\n     * @param  \\Closure  $callback\n     * @param  string    $operator\n     * @param  int       $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orWhereHas($relation, Closure $callback = null, $operator = '>=', $count = 1)\n    {\n        return $this->has($relation, $operator, $count, 'or', $callback);\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with where clauses.\n     *\n     * @param  string  $relation\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function whereDoesntHave($relation, Closure $callback = null)\n    {\n        return $this->doesntHave($relation, 'and', $callback);\n    }\n\n    /**\n     * Add a relationship count / exists condition to the query with where clauses and an \"or\".\n     *\n     * @param  string    $relation\n     * @param  \\Closure  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orWhereDoesntHave($relation, Closure $callback = null)\n    {\n        return $this->doesntHave($relation, 'or', $callback);\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query.\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  string  $operator\n     * @param  int  $count\n     * @param  string  $boolean\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', Closure $callback = null)\n    {\n        $relation = $this->getRelationWithoutConstraints($relation);\n\n        $types = (array) $types;\n\n        if ($types === ['*']) {\n            $types = $this->model->newModelQuery()->distinct()->pluck($relation->getMorphType())->all();\n\n            foreach ($types as &$type) {\n                $type = Relation::getMorphedModel($type) ?? $type;\n            }\n        }\n\n        return $this->where(function ($query) use ($relation, $callback, $operator, $count, $types) {\n            foreach ($types as $type) {\n                $query->orWhere(function ($query) use ($relation, $callback, $operator, $count, $type) {\n                    $belongsTo = $this->getBelongsToRelation($relation, $type);\n\n                    if ($callback) {\n                        $callback = function ($query) use ($callback, $type) {\n                            return $callback($query, $type);\n                        };\n                    }\n\n                    $query->where($relation->getMorphType(), '=', (new $type)->getMorphClass())\n                        ->whereHas($belongsTo, $callback, $operator, $count);\n                });\n            }\n        }, null, null, $boolean);\n    }\n\n    /**\n     * Get the BelongsTo relationship for a single polymorphic type.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo  $relation\n     * @param  string  $type\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\BelongsTo\n     */\n    protected function getBelongsToRelation(MorphTo $relation, $type)\n    {\n        $belongsTo = Relation::noConstraints(function () use ($relation, $type) {\n            return $this->model->belongsTo(\n                $type,\n                $relation->getForeignKeyName(),\n                $relation->getOwnerKeyName()\n            );\n        });\n\n        $belongsTo->getQuery()->mergeConstraintsFrom($relation->getQuery());\n\n        return $belongsTo;\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  string  $operator\n     * @param  int  $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orHasMorph($relation, $types, $operator = '>=', $count = 1)\n    {\n        return $this->hasMorph($relation, $types, $operator, $count, 'or');\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query.\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  string  $boolean\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function doesntHaveMorph($relation, $types, $boolean = 'and', Closure $callback = null)\n    {\n        return $this->hasMorph($relation, $types, '<', 1, $boolean, $callback);\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with an \"or\".\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orDoesntHaveMorph($relation, $types)\n    {\n        return $this->doesntHaveMorph($relation, $types, 'or');\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with where clauses.\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  \\Closure|null  $callback\n     * @param  string  $operator\n     * @param  int  $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function whereHasMorph($relation, $types, Closure $callback = null, $operator = '>=', $count = 1)\n    {\n        return $this->hasMorph($relation, $types, $operator, $count, 'and', $callback);\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  \\Closure  $callback\n     * @param  string  $operator\n     * @param  int  $count\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orWhereHasMorph($relation, $types, Closure $callback = null, $operator = '>=', $count = 1)\n    {\n        return $this->hasMorph($relation, $types, $operator, $count, 'or', $callback);\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with where clauses.\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function whereDoesntHaveMorph($relation, $types, Closure $callback = null)\n    {\n        return $this->doesntHaveMorph($relation, $types, 'and', $callback);\n    }\n\n    /**\n     * Add a polymorphic relationship count / exists condition to the query with where clauses and an \"or\".\n     *\n     * @param  string  $relation\n     * @param  string|array  $types\n     * @param  \\Closure  $callback\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function orWhereDoesntHaveMorph($relation, $types, Closure $callback = null)\n    {\n        return $this->doesntHaveMorph($relation, $types, 'or', $callback);\n    }\n\n    /**\n     * Add subselect queries to count the relations.\n     *\n     * @param  mixed  $relations\n     * @return $this\n     */\n    public function withCount($relations)\n    {\n        if (empty($relations)) {\n            return $this;\n        }\n\n        if (is_null($this->query->columns)) {\n            $this->query->select([$this->query->from.'.*']);\n        }\n\n        $relations = is_array($relations) ? $relations : func_get_args();\n\n        foreach ($this->parseWithRelations($relations) as $name => $constraints) {\n            // First we will determine if the name has been aliased using an \"as\" clause on the name\n            // and if it has we will extract the actual relationship name and the desired name of\n            // the resulting column. This allows multiple counts on the same relationship name.\n            $segments = explode(' ', $name);\n\n            unset($alias);\n\n            if (count($segments) === 3 && Str::lower($segments[1]) === 'as') {\n                [$name, $alias] = [$segments[0], $segments[2]];\n            }\n\n            $relation = $this->getRelationWithoutConstraints($name);\n\n            // Here we will get the relationship count query and prepare to add it to the main query\n            // as a sub-select. First, we'll get the \"has\" query and use that to get the relation\n            // count query. We will normalize the relation name then append _count as the name.\n            $query = $relation->getRelationExistenceCountQuery(\n                $relation->getRelated()->newQuery(), $this\n            );\n\n            $query->callScope($constraints);\n\n            $query = $query->mergeConstraintsFrom($relation->getQuery())->toBase();\n\n            if (count($query->columns) > 1) {\n                $query->columns = [$query->columns[0]];\n            }\n\n            // Finally we will add the proper result column alias to the query and run the subselect\n            // statement against the query builder. Then we will return the builder instance back\n            // to the developer for further constraint chaining that needs to take place on it.\n            $column = $alias ?? Str::snake($name.'_count');\n\n            $this->selectSub($query, $column);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add the \"has\" condition where clause to the query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $hasQuery\n     * @param  \\Illuminate\\Database\\Eloquent\\Relations\\Relation  $relation\n     * @param  string  $operator\n     * @param  int  $count\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    protected function addHasWhere(Builder $hasQuery, Relation $relation, $operator, $count, $boolean)\n    {\n        $hasQuery->mergeConstraintsFrom($relation->getQuery());\n\n        return $this->canUseExistsForExistenceCheck($operator, $count)\n                ? $this->addWhereExistsQuery($hasQuery->toBase(), $boolean, $operator === '<' && $count === 1)\n                : $this->addWhereCountQuery($hasQuery->toBase(), $operator, $count, $boolean);\n    }\n\n    /**\n     * Merge the where constraints from another query to the current query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $from\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function mergeConstraintsFrom(Builder $from)\n    {\n        $whereBindings = $from->getQuery()->getRawBindings()['where'] ?? [];\n\n        // Here we have some other query that we want to merge the where constraints from. We will\n        // copy over any where constraints on the query as well as remove any global scopes the\n        // query might have removed. Then we will return ourselves with the finished merging.\n        return $this->withoutGlobalScopes(\n            $from->removedScopes()\n        )->mergeWheres(\n            $from->getQuery()->wheres, $whereBindings\n        );\n    }\n\n    /**\n     * Add a sub-query count clause to this query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder $query\n     * @param  string  $operator\n     * @param  int  $count\n     * @param  string  $boolean\n     * @return $this\n     */\n    protected function addWhereCountQuery(QueryBuilder $query, $operator = '>=', $count = 1, $boolean = 'and')\n    {\n        $this->query->addBinding($query->getBindings(), 'where');\n\n        return $this->where(\n            new Expression('('.$query->toSql().')'),\n            $operator,\n            is_numeric($count) ? new Expression($count) : $count,\n            $boolean\n        );\n    }\n\n    /**\n     * Get the \"has relation\" base query instance.\n     *\n     * @param  string  $relation\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Relation\n     */\n    protected function getRelationWithoutConstraints($relation)\n    {\n        return Relation::noConstraints(function () use ($relation) {\n            return $this->getModel()->{$relation}();\n        });\n    }\n\n    /**\n     * Check if we can run an \"exists\" query to optimize performance.\n     *\n     * @param  string  $operator\n     * @param  int  $count\n     * @return bool\n     */\n    protected function canUseExistsForExistenceCheck($operator, $count)\n    {\n        return ($operator === '>=' || $operator === '<') && $count === 1;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse ArrayAccess;\nuse Faker\\Generator as Faker;\nuse Symfony\\Component\\Finder\\Finder;\n\nclass Factory implements ArrayAccess\n{\n    /**\n     * The model definitions in the container.\n     *\n     * @var array\n     */\n    protected $definitions = [];\n\n    /**\n     * The registered model states.\n     *\n     * @var array\n     */\n    protected $states = [];\n\n    /**\n     * The registered after making callbacks.\n     *\n     * @var array\n     */\n    protected $afterMaking = [];\n\n    /**\n     * The registered after creating callbacks.\n     *\n     * @var array\n     */\n    protected $afterCreating = [];\n\n    /**\n     * The Faker instance for the builder.\n     *\n     * @var \\Faker\\Generator\n     */\n    protected $faker;\n\n    /**\n     * Create a new factory instance.\n     *\n     * @param  \\Faker\\Generator  $faker\n     * @return void\n     */\n    public function __construct(Faker $faker)\n    {\n        $this->faker = $faker;\n    }\n\n    /**\n     * Create a new factory container.\n     *\n     * @param  \\Faker\\Generator  $faker\n     * @param  string|null  $pathToFactories\n     * @return static\n     */\n    public static function construct(Faker $faker, $pathToFactories = null)\n    {\n        $pathToFactories = $pathToFactories ?: database_path('factories');\n\n        return (new static($faker))->load($pathToFactories);\n    }\n\n    /**\n     * Define a class with a given short-name.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  callable  $attributes\n     * @return $this\n     */\n    public function defineAs($class, $name, callable $attributes)\n    {\n        return $this->define($class, $attributes, $name);\n    }\n\n    /**\n     * Define a class with a given set of attributes.\n     *\n     * @param  string  $class\n     * @param  callable  $attributes\n     * @param  string  $name\n     * @return $this\n     */\n    public function define($class, callable $attributes, $name = 'default')\n    {\n        $this->definitions[$class][$name] = $attributes;\n\n        return $this;\n    }\n\n    /**\n     * Define a state with a given set of attributes.\n     *\n     * @param  string  $class\n     * @param  string  $state\n     * @param  callable|array  $attributes\n     * @return $this\n     */\n    public function state($class, $state, $attributes)\n    {\n        $this->states[$class][$state] = $attributes;\n\n        return $this;\n    }\n\n    /**\n     * Define a callback to run after making a model.\n     *\n     * @param  string  $class\n     * @param  callable  $callback\n     * @param  string  $name\n     * @return $this\n     */\n    public function afterMaking($class, callable $callback, $name = 'default')\n    {\n        $this->afterMaking[$class][$name][] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Define a callback to run after making a model with given state.\n     *\n     * @param  string  $class\n     * @param  string  $state\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function afterMakingState($class, $state, callable $callback)\n    {\n        return $this->afterMaking($class, $callback, $state);\n    }\n\n    /**\n     * Define a callback to run after creating a model.\n     *\n     * @param  string  $class\n     * @param  callable  $callback\n     * @param  string $name\n     * @return $this\n     */\n    public function afterCreating($class, callable $callback, $name = 'default')\n    {\n        $this->afterCreating[$class][$name][] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Define a callback to run after creating a model with given state.\n     *\n     * @param  string  $class\n     * @param  string  $state\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function afterCreatingState($class, $state, callable $callback)\n    {\n        return $this->afterCreating($class, $callback, $state);\n    }\n\n    /**\n     * Create an instance of the given model and persist it to the database.\n     *\n     * @param  string  $class\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function create($class, array $attributes = [])\n    {\n        return $this->of($class)->create($attributes);\n    }\n\n    /**\n     * Create an instance of the given model and type and persist it to the database.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function createAs($class, $name, array $attributes = [])\n    {\n        return $this->of($class, $name)->create($attributes);\n    }\n\n    /**\n     * Create an instance of the given model.\n     *\n     * @param  string  $class\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function make($class, array $attributes = [])\n    {\n        return $this->of($class)->make($attributes);\n    }\n\n    /**\n     * Create an instance of the given model and type.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function makeAs($class, $name, array $attributes = [])\n    {\n        return $this->of($class, $name)->make($attributes);\n    }\n\n    /**\n     * Get the raw attribute array for a given named model.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  array  $attributes\n     * @return array\n     */\n    public function rawOf($class, $name, array $attributes = [])\n    {\n        return $this->raw($class, $attributes, $name);\n    }\n\n    /**\n     * Get the raw attribute array for a given model.\n     *\n     * @param  string  $class\n     * @param  array  $attributes\n     * @param  string  $name\n     * @return array\n     */\n    public function raw($class, array $attributes = [], $name = 'default')\n    {\n        return array_merge(\n            call_user_func($this->definitions[$class][$name], $this->faker), $attributes\n        );\n    }\n\n    /**\n     * Create a builder for the given model.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @return \\Illuminate\\Database\\Eloquent\\FactoryBuilder\n     */\n    public function of($class, $name = 'default')\n    {\n        return new FactoryBuilder(\n            $class, $name, $this->definitions, $this->states,\n            $this->afterMaking, $this->afterCreating, $this->faker\n        );\n    }\n\n    /**\n     * Load factories from path.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function load($path)\n    {\n        $factory = $this;\n\n        if (is_dir($path)) {\n            foreach (Finder::create()->files()->name('*.php')->in($path) as $file) {\n                require $file->getRealPath();\n            }\n        }\n\n        return $factory;\n    }\n\n    /**\n     * Determine if the given offset exists.\n     *\n     * @param  string  $offset\n     * @return bool\n     */\n    public function offsetExists($offset)\n    {\n        return isset($this->definitions[$offset]);\n    }\n\n    /**\n     * Get the value of the given offset.\n     *\n     * @param  string  $offset\n     * @return mixed\n     */\n    public function offsetGet($offset)\n    {\n        return $this->make($offset);\n    }\n\n    /**\n     * Set the given offset to the given value.\n     *\n     * @param  string  $offset\n     * @param  callable  $value\n     * @return void\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->define($offset, $value);\n    }\n\n    /**\n     * Unset the value at the given offset.\n     *\n     * @param  string  $offset\n     * @return void\n     */\n    public function offsetUnset($offset)\n    {\n        unset($this->definitions[$offset]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse Faker\\Generator as Faker;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Traits\\Macroable;\n\nclass FactoryBuilder\n{\n    use Macroable;\n\n    /**\n     * The model definitions in the container.\n     *\n     * @var array\n     */\n    protected $definitions;\n\n    /**\n     * The model being built.\n     *\n     * @var string\n     */\n    protected $class;\n\n    /**\n     * The name of the model being built.\n     *\n     * @var string\n     */\n    protected $name = 'default';\n\n    /**\n     * The database connection on which the model instance should be persisted.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * The model states.\n     *\n     * @var array\n     */\n    protected $states;\n\n    /**\n     * The model after making callbacks.\n     *\n     * @var array\n     */\n    protected $afterMaking = [];\n\n    /**\n     * The model after creating callbacks.\n     *\n     * @var array\n     */\n    protected $afterCreating = [];\n\n    /**\n     * The states to apply.\n     *\n     * @var array\n     */\n    protected $activeStates = [];\n\n    /**\n     * The Faker instance for the builder.\n     *\n     * @var \\Faker\\Generator\n     */\n    protected $faker;\n\n    /**\n     * The number of models to build.\n     *\n     * @var int|null\n     */\n    protected $amount = null;\n\n    /**\n     * Create an new builder instance.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  array  $definitions\n     * @param  array  $states\n     * @param  array  $afterMaking\n     * @param  array  $afterCreating\n     * @param  \\Faker\\Generator  $faker\n     * @return void\n     */\n    public function __construct($class, $name, array $definitions, array $states,\n                                array $afterMaking, array $afterCreating, Faker $faker)\n    {\n        $this->name = $name;\n        $this->class = $class;\n        $this->faker = $faker;\n        $this->states = $states;\n        $this->definitions = $definitions;\n        $this->afterMaking = $afterMaking;\n        $this->afterCreating = $afterCreating;\n    }\n\n    /**\n     * Set the amount of models you wish to create / make.\n     *\n     * @param  int  $amount\n     * @return $this\n     */\n    public function times($amount)\n    {\n        $this->amount = $amount;\n\n        return $this;\n    }\n\n    /**\n     * Set the state to be applied to the model.\n     *\n     * @param  string  $state\n     * @return $this\n     */\n    public function state($state)\n    {\n        return $this->states([$state]);\n    }\n\n    /**\n     * Set the states to be applied to the model.\n     *\n     * @param  array|mixed  $states\n     * @return $this\n     */\n    public function states($states)\n    {\n        $this->activeStates = is_array($states) ? $states : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Set the database connection on which the model instance should be persisted.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function connection($name)\n    {\n        $this->connection = $name;\n\n        return $this;\n    }\n\n    /**\n     * Create a model and persist it in the database if requested.\n     *\n     * @param  array  $attributes\n     * @return \\Closure\n     */\n    public function lazy(array $attributes = [])\n    {\n        return function () use ($attributes) {\n            return $this->create($attributes);\n        };\n    }\n\n    /**\n     * Create a collection of models and persist them to the database.\n     *\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function create(array $attributes = [])\n    {\n        $results = $this->make($attributes);\n\n        if ($results instanceof Model) {\n            $this->store(collect([$results]));\n\n            $this->callAfterCreating(collect([$results]));\n        } else {\n            $this->store($results);\n\n            $this->callAfterCreating($results);\n        }\n\n        return $results;\n    }\n\n    /**\n     * Set the connection name on the results and store them.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $results\n     * @return void\n     */\n    protected function store($results)\n    {\n        $results->each(function ($model) {\n            if (! isset($this->connection)) {\n                $model->setConnection($model->newQueryWithoutScopes()->getConnection()->getName());\n            }\n\n            $model->save();\n        });\n    }\n\n    /**\n     * Create a collection of models.\n     *\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function make(array $attributes = [])\n    {\n        if ($this->amount === null) {\n            return tap($this->makeInstance($attributes), function ($instance) {\n                $this->callAfterMaking(collect([$instance]));\n            });\n        }\n\n        if ($this->amount < 1) {\n            return (new $this->class)->newCollection();\n        }\n\n        $instances = (new $this->class)->newCollection(array_map(function () use ($attributes) {\n            return $this->makeInstance($attributes);\n        }, range(1, $this->amount)));\n\n        $this->callAfterMaking($instances);\n\n        return $instances;\n    }\n\n    /**\n     * Create an array of raw attribute arrays.\n     *\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function raw(array $attributes = [])\n    {\n        if ($this->amount === null) {\n            return $this->getRawAttributes($attributes);\n        }\n\n        if ($this->amount < 1) {\n            return [];\n        }\n\n        return array_map(function () use ($attributes) {\n            return $this->getRawAttributes($attributes);\n        }, range(1, $this->amount));\n    }\n\n    /**\n     * Get a raw attributes array for the model.\n     *\n     * @param  array  $attributes\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function getRawAttributes(array $attributes = [])\n    {\n        if (! isset($this->definitions[$this->class][$this->name])) {\n            throw new InvalidArgumentException(\"Unable to locate factory with name [{$this->name}] [{$this->class}].\");\n        }\n\n        $definition = call_user_func(\n            $this->definitions[$this->class][$this->name],\n            $this->faker, $attributes\n        );\n\n        return $this->expandAttributes(\n            array_merge($this->applyStates($definition, $attributes), $attributes)\n        );\n    }\n\n    /**\n     * Make an instance of the model with the given attributes.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected function makeInstance(array $attributes = [])\n    {\n        return Model::unguarded(function () use ($attributes) {\n            $instance = new $this->class(\n                $this->getRawAttributes($attributes)\n            );\n\n            if (isset($this->connection)) {\n                $instance->setConnection($this->connection);\n            }\n\n            return $instance;\n        });\n    }\n\n    /**\n     * Apply the active states to the model definition array.\n     *\n     * @param  array  $definition\n     * @param  array  $attributes\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function applyStates(array $definition, array $attributes = [])\n    {\n        foreach ($this->activeStates as $state) {\n            if (! isset($this->states[$this->class][$state])) {\n                if ($this->stateHasAfterCallback($state)) {\n                    continue;\n                }\n\n                throw new InvalidArgumentException(\"Unable to locate [{$state}] state for [{$this->class}].\");\n            }\n\n            $definition = array_merge(\n                $definition,\n                $this->stateAttributes($state, $attributes)\n            );\n        }\n\n        return $definition;\n    }\n\n    /**\n     * Get the state attributes.\n     *\n     * @param  string  $state\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function stateAttributes($state, array $attributes)\n    {\n        $stateAttributes = $this->states[$this->class][$state];\n\n        if (! is_callable($stateAttributes)) {\n            return $stateAttributes;\n        }\n\n        return call_user_func(\n            $stateAttributes,\n            $this->faker, $attributes\n        );\n    }\n\n    /**\n     * Expand all attributes to their underlying values.\n     *\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function expandAttributes(array $attributes)\n    {\n        foreach ($attributes as &$attribute) {\n            if (is_callable($attribute) && ! is_string($attribute) && ! is_array($attribute)) {\n                $attribute = $attribute($attributes);\n            }\n\n            if ($attribute instanceof static) {\n                $attribute = $attribute->create()->getKey();\n            }\n\n            if ($attribute instanceof Model) {\n                $attribute = $attribute->getKey();\n            }\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Run after making callbacks on a collection of models.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $models\n     * @return void\n     */\n    public function callAfterMaking($models)\n    {\n        $this->callAfter($this->afterMaking, $models);\n    }\n\n    /**\n     * Run after creating callbacks on a collection of models.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $models\n     * @return void\n     */\n    public function callAfterCreating($models)\n    {\n        $this->callAfter($this->afterCreating, $models);\n    }\n\n    /**\n     * Call after callbacks for each model and state.\n     *\n     * @param  array  $afterCallbacks\n     * @param  \\Illuminate\\Support\\Collection  $models\n     * @return void\n     */\n    protected function callAfter(array $afterCallbacks, $models)\n    {\n        $states = array_merge([$this->name], $this->activeStates);\n\n        $models->each(function ($model) use ($states, $afterCallbacks) {\n            foreach ($states as $state) {\n                $this->callAfterCallbacks($afterCallbacks, $model, $state);\n            }\n        });\n    }\n\n    /**\n     * Call after callbacks for each model and state.\n     *\n     * @param  array  $afterCallbacks\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @param  string  $state\n     * @return void\n     */\n    protected function callAfterCallbacks(array $afterCallbacks, $model, $state)\n    {\n        if (! isset($afterCallbacks[$this->class][$state])) {\n            return;\n        }\n\n        foreach ($afterCallbacks[$this->class][$state] as $callback) {\n            $callback($model, $this->faker);\n        }\n    }\n\n    /**\n     * Determine if the given state has an \"after\" callback.\n     *\n     * @param  string  $state\n     * @return bool\n     */\n    protected function stateHasAfterCallback($state)\n    {\n        return isset($this->afterMaking[$this->class][$state]) ||\n               isset($this->afterCreating[$this->class][$state]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/HigherOrderBuilderProxy.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\n/**\n * @mixin \\Illuminate\\Database\\Eloquent\\Builder\n */\nclass HigherOrderBuilderProxy\n{\n    /**\n     * The collection being operated on.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected $builder;\n\n    /**\n     * The method being proxied.\n     *\n     * @var string\n     */\n    protected $method;\n\n    /**\n     * Create a new proxy instance.\n     *\n     * @param Builder $builder\n     * @param string $method\n     */\n    public function __construct(Builder $builder, $method)\n    {\n        $this->method = $method;\n        $this->builder = $builder;\n    }\n\n    /**\n     * Proxy a scope call onto the query builder.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->builder->{$this->method}(function ($value) use ($method, $parameters) {\n            return $value->{$method}(...$parameters);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/JsonEncodingException.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse RuntimeException;\n\nclass JsonEncodingException extends RuntimeException\n{\n    /**\n     * Create a new JSON encoding exception for the model.\n     *\n     * @param  mixed  $model\n     * @param  string  $message\n     * @return static\n     */\n    public static function forModel($model, $message)\n    {\n        return new static('Error encoding model ['.get_class($model).'] with ID ['.$model->getKey().'] to JSON: '.$message);\n    }\n\n    /**\n     * Create a new JSON encoding exception for an attribute.\n     *\n     * @param  mixed  $model\n     * @param  mixed  $key\n     * @param  string $message\n     * @return static\n     */\n    public static function forAttribute($model, $key, $message)\n    {\n        $class = get_class($model);\n\n        return new static(\"Unable to encode attribute [{$key}] for model [{$class}] to JSON: {$message}.\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/MassAssignmentException.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse RuntimeException;\n\nclass MassAssignmentException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse Exception;\nuse ArrayAccess;\nuse JsonSerializable;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Contracts\\Routing\\UrlRoutable;\nuse Illuminate\\Contracts\\Queue\\QueueableEntity;\nuse Illuminate\\Database\\Eloquent\\Relations\\Pivot;\nuse Illuminate\\Contracts\\Queue\\QueueableCollection;\nuse Illuminate\\Support\\Collection as BaseCollection;\nuse Illuminate\\Database\\ConnectionResolverInterface as Resolver;\n\nabstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable\n{\n    use Concerns\\HasAttributes,\n        Concerns\\HasEvents,\n        Concerns\\HasGlobalScopes,\n        Concerns\\HasRelationships,\n        Concerns\\HasTimestamps,\n        Concerns\\HidesAttributes,\n        Concerns\\GuardsAttributes,\n        ForwardsCalls;\n\n    /**\n     * The connection name for the model.\n     *\n     * @var string|null\n     */\n    protected $connection;\n\n    /**\n     * The table associated with the model.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The primary key for the model.\n     *\n     * @var string\n     */\n    protected $primaryKey = 'id';\n\n    /**\n     * The \"type\" of the primary key ID.\n     *\n     * @var string\n     */\n    protected $keyType = 'int';\n\n    /**\n     * Indicates if the IDs are auto-incrementing.\n     *\n     * @var bool\n     */\n    public $incrementing = true;\n\n    /**\n     * The relations to eager load on every query.\n     *\n     * @var array\n     */\n    protected $with = [];\n\n    /**\n     * The relationship counts that should be eager loaded on every query.\n     *\n     * @var array\n     */\n    protected $withCount = [];\n\n    /**\n     * The number of models to return for pagination.\n     *\n     * @var int\n     */\n    protected $perPage = 15;\n\n    /**\n     * Indicates if the model exists.\n     *\n     * @var bool\n     */\n    public $exists = false;\n\n    /**\n     * Indicates if the model was inserted during the current request lifecycle.\n     *\n     * @var bool\n     */\n    public $wasRecentlyCreated = false;\n\n    /**\n     * The connection resolver instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected static $resolver;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected static $dispatcher;\n\n    /**\n     * The array of booted models.\n     *\n     * @var array\n     */\n    protected static $booted = [];\n\n    /**\n     * The array of trait initializers that will be called on each new instance.\n     *\n     * @var array\n     */\n    protected static $traitInitializers = [];\n\n    /**\n     * The array of global scopes on the model.\n     *\n     * @var array\n     */\n    protected static $globalScopes = [];\n\n    /**\n     * The list of models classes that should not be affected with touch.\n     *\n     * @var array\n     */\n    protected static $ignoreOnTouch = [];\n\n    /**\n     * The name of the \"created at\" column.\n     *\n     * @var string\n     */\n    const CREATED_AT = 'created_at';\n\n    /**\n     * The name of the \"updated at\" column.\n     *\n     * @var string\n     */\n    const UPDATED_AT = 'updated_at';\n\n    /**\n     * Create a new Eloquent model instance.\n     *\n     * @param  array  $attributes\n     * @return void\n     */\n    public function __construct(array $attributes = [])\n    {\n        $this->bootIfNotBooted();\n\n        $this->initializeTraits();\n\n        $this->syncOriginal();\n\n        $this->fill($attributes);\n    }\n\n    /**\n     * Check if the model needs to be booted and if so, do it.\n     *\n     * @return void\n     */\n    protected function bootIfNotBooted()\n    {\n        if (! isset(static::$booted[static::class])) {\n            static::$booted[static::class] = true;\n\n            $this->fireModelEvent('booting', false);\n\n            static::boot();\n\n            $this->fireModelEvent('booted', false);\n        }\n    }\n\n    /**\n     * The \"booting\" method of the model.\n     *\n     * @return void\n     */\n    protected static function boot()\n    {\n        static::bootTraits();\n    }\n\n    /**\n     * Boot all of the bootable traits on the model.\n     *\n     * @return void\n     */\n    protected static function bootTraits()\n    {\n        $class = static::class;\n\n        $booted = [];\n\n        static::$traitInitializers[$class] = [];\n\n        foreach (class_uses_recursive($class) as $trait) {\n            $method = 'boot'.class_basename($trait);\n\n            if (method_exists($class, $method) && ! in_array($method, $booted)) {\n                forward_static_call([$class, $method]);\n\n                $booted[] = $method;\n            }\n\n            if (method_exists($class, $method = 'initialize'.class_basename($trait))) {\n                static::$traitInitializers[$class][] = $method;\n\n                static::$traitInitializers[$class] = array_unique(\n                    static::$traitInitializers[$class]\n                );\n            }\n        }\n    }\n\n    /**\n     * Initialize any initializable traits on the model.\n     *\n     * @return void\n     */\n    protected function initializeTraits()\n    {\n        foreach (static::$traitInitializers[static::class] as $method) {\n            $this->{$method}();\n        }\n    }\n\n    /**\n     * Clear the list of booted models so they will be re-booted.\n     *\n     * @return void\n     */\n    public static function clearBootedModels()\n    {\n        static::$booted = [];\n\n        static::$globalScopes = [];\n    }\n\n    /**\n     * Disables relationship model touching for the current class during given callback scope.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public static function withoutTouching(callable $callback)\n    {\n        static::withoutTouchingOn([static::class], $callback);\n    }\n\n    /**\n     * Disables relationship model touching for the given model classes during given callback scope.\n     *\n     * @param  array  $models\n     * @param  callable  $callback\n     * @return void\n     */\n    public static function withoutTouchingOn(array $models, callable $callback)\n    {\n        static::$ignoreOnTouch = array_values(array_merge(static::$ignoreOnTouch, $models));\n\n        try {\n            call_user_func($callback);\n        } finally {\n            static::$ignoreOnTouch = array_values(array_diff(static::$ignoreOnTouch, $models));\n        }\n    }\n\n    /**\n     * Determine if the given model is ignoring touches.\n     *\n     * @param  string|null  $class\n     * @return bool\n     */\n    public static function isIgnoringTouch($class = null)\n    {\n        $class = $class ?: static::class;\n\n        if (! get_class_vars($class)['timestamps'] || ! $class::UPDATED_AT) {\n            return true;\n        }\n\n        foreach (static::$ignoreOnTouch as $ignoredClass) {\n            if ($class === $ignoredClass || is_subclass_of($class, $ignoredClass)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Fill the model with an array of attributes.\n     *\n     * @param  array  $attributes\n     * @return $this\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\MassAssignmentException\n     */\n    public function fill(array $attributes)\n    {\n        $totallyGuarded = $this->totallyGuarded();\n\n        foreach ($this->fillableFromArray($attributes) as $key => $value) {\n            $key = $this->removeTableFromKey($key);\n\n            // The developers may choose to place some attributes in the \"fillable\" array\n            // which means only those attributes may be set through mass assignment to\n            // the model, and all others will just get ignored for security reasons.\n            if ($this->isFillable($key)) {\n                $this->setAttribute($key, $value);\n            } elseif ($totallyGuarded) {\n                throw new MassAssignmentException(sprintf(\n                    'Add [%s] to fillable property to allow mass assignment on [%s].',\n                    $key, get_class($this)\n                ));\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Fill the model with an array of attributes. Force mass assignment.\n     *\n     * @param  array  $attributes\n     * @return $this\n     */\n    public function forceFill(array $attributes)\n    {\n        return static::unguarded(function () use ($attributes) {\n            return $this->fill($attributes);\n        });\n    }\n\n    /**\n     * Qualify the given column name by the model's table.\n     *\n     * @param  string  $column\n     * @return string\n     */\n    public function qualifyColumn($column)\n    {\n        if (Str::contains($column, '.')) {\n            return $column;\n        }\n\n        return $this->getTable().'.'.$column;\n    }\n\n    /**\n     * Remove the table name from a given key.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    protected function removeTableFromKey($key)\n    {\n        return Str::contains($key, '.') ? last(explode('.', $key)) : $key;\n    }\n\n    /**\n     * Create a new instance of the given model.\n     *\n     * @param  array  $attributes\n     * @param  bool  $exists\n     * @return static\n     */\n    public function newInstance($attributes = [], $exists = false)\n    {\n        // This method just provides a convenient way for us to generate fresh model\n        // instances of this current model. It is particularly useful during the\n        // hydration of new objects via the Eloquent query builder instances.\n        $model = new static((array) $attributes);\n\n        $model->exists = $exists;\n\n        $model->setConnection(\n            $this->getConnectionName()\n        );\n\n        $model->setTable($this->getTable());\n\n        return $model;\n    }\n\n    /**\n     * Create a new model instance that is existing.\n     *\n     * @param  array  $attributes\n     * @param  string|null  $connection\n     * @return static\n     */\n    public function newFromBuilder($attributes = [], $connection = null)\n    {\n        $model = $this->newInstance([], true);\n\n        $model->setRawAttributes((array) $attributes, true);\n\n        $model->setConnection($connection ?: $this->getConnectionName());\n\n        $model->fireModelEvent('retrieved', false);\n\n        return $model;\n    }\n\n    /**\n     * Begin querying the model on a given connection.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public static function on($connection = null)\n    {\n        // First we will just create a fresh instance of this model, and then we can set the\n        // connection on the model so that it is used for the queries we execute, as well\n        // as being set on every relation we retrieve without a custom connection name.\n        $instance = new static;\n\n        $instance->setConnection($connection);\n\n        return $instance->newQuery();\n    }\n\n    /**\n     * Begin querying the model on the write connection.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public static function onWriteConnection()\n    {\n        return static::query()->useWritePdo();\n    }\n\n    /**\n     * Get all of the models from the database.\n     *\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection|static[]\n     */\n    public static function all($columns = ['*'])\n    {\n        return static::query()->get(\n            is_array($columns) ? $columns : func_get_args()\n        );\n    }\n\n    /**\n     * Begin querying a model with eager loading.\n     *\n     * @param  array|string  $relations\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public static function with($relations)\n    {\n        return static::query()->with(\n            is_string($relations) ? func_get_args() : $relations\n        );\n    }\n\n    /**\n     * Eager load relations on the model.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function load($relations)\n    {\n        $query = $this->newQueryWithoutRelationships()->with(\n            is_string($relations) ? func_get_args() : $relations\n        );\n\n        $query->eagerLoadRelations([$this]);\n\n        return $this;\n    }\n\n    /**\n     * Eager load relations on the model if they are not already eager loaded.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function loadMissing($relations)\n    {\n        $relations = is_string($relations) ? func_get_args() : $relations;\n\n        $this->newCollection([$this])->loadMissing($relations);\n\n        return $this;\n    }\n\n    /**\n     * Eager load relation counts on the model.\n     *\n     * @param  array|string  $relations\n     * @return $this\n     */\n    public function loadCount($relations)\n    {\n        $relations = is_string($relations) ? func_get_args() : $relations;\n\n        $this->newCollection([$this])->loadCount($relations);\n\n        return $this;\n    }\n\n    /**\n     * Increment a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    protected function increment($column, $amount = 1, array $extra = [])\n    {\n        return $this->incrementOrDecrement($column, $amount, $extra, 'increment');\n    }\n\n    /**\n     * Decrement a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    protected function decrement($column, $amount = 1, array $extra = [])\n    {\n        return $this->incrementOrDecrement($column, $amount, $extra, 'decrement');\n    }\n\n    /**\n     * Run the increment or decrement method on the model.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @param  string  $method\n     * @return int\n     */\n    protected function incrementOrDecrement($column, $amount, $extra, $method)\n    {\n        $query = $this->newQueryWithoutRelationships();\n\n        if (! $this->exists) {\n            return $query->{$method}($column, $amount, $extra);\n        }\n\n        $this->incrementOrDecrementAttributeValue($column, $amount, $extra, $method);\n\n        return $query->where(\n            $this->getKeyName(), $this->getKey()\n        )->{$method}($column, $amount, $extra);\n    }\n\n    /**\n     * Increment the underlying attribute value and sync with original.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @param  string  $method\n     * @return void\n     */\n    protected function incrementOrDecrementAttributeValue($column, $amount, $extra, $method)\n    {\n        $this->{$column} = $this->{$column} + ($method === 'increment' ? $amount : $amount * -1);\n\n        $this->forceFill($extra);\n\n        $this->syncOriginalAttribute($column);\n    }\n\n    /**\n     * Update the model in the database.\n     *\n     * @param  array  $attributes\n     * @param  array  $options\n     * @return bool\n     */\n    public function update(array $attributes = [], array $options = [])\n    {\n        if (! $this->exists) {\n            return false;\n        }\n\n        return $this->fill($attributes)->save($options);\n    }\n\n    /**\n     * Save the model and all of its relationships.\n     *\n     * @return bool\n     */\n    public function push()\n    {\n        if (! $this->save()) {\n            return false;\n        }\n\n        // To sync all of the relationships to the database, we will simply spin through\n        // the relationships and save each model via this \"push\" method, which allows\n        // us to recurse into all of these nested relations for the model instance.\n        foreach ($this->relations as $models) {\n            $models = $models instanceof Collection\n                        ? $models->all() : [$models];\n\n            foreach (array_filter($models) as $model) {\n                if (! $model->push()) {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Save the model to the database.\n     *\n     * @param  array  $options\n     * @return bool\n     */\n    public function save(array $options = [])\n    {\n        $query = $this->newModelQuery();\n\n        // If the \"saving\" event returns false we'll bail out of the save and return\n        // false, indicating that the save failed. This provides a chance for any\n        // listeners to cancel save operations if validations fail or whatever.\n        if ($this->fireModelEvent('saving') === false) {\n            return false;\n        }\n\n        // If the model already exists in the database we can just update our record\n        // that is already in this database using the current IDs in this \"where\"\n        // clause to only update this model. Otherwise, we'll just insert them.\n        if ($this->exists) {\n            $saved = $this->isDirty() ?\n                        $this->performUpdate($query) : true;\n        }\n\n        // If the model is brand new, we'll insert it into our database and set the\n        // ID attribute on the model to the value of the newly inserted row's ID\n        // which is typically an auto-increment value managed by the database.\n        else {\n            $saved = $this->performInsert($query);\n\n            if (! $this->getConnectionName() &&\n                $connection = $query->getConnection()) {\n                $this->setConnection($connection->getName());\n            }\n        }\n\n        // If the model is successfully saved, we need to do a few more things once\n        // that is done. We will call the \"saved\" method here to run any actions\n        // we need to happen after a model gets successfully saved right here.\n        if ($saved) {\n            $this->finishSave($options);\n        }\n\n        return $saved;\n    }\n\n    /**\n     * Save the model to the database using transaction.\n     *\n     * @param  array  $options\n     * @return bool\n     *\n     * @throws \\Throwable\n     */\n    public function saveOrFail(array $options = [])\n    {\n        return $this->getConnection()->transaction(function () use ($options) {\n            return $this->save($options);\n        });\n    }\n\n    /**\n     * Perform any actions that are necessary after the model is saved.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    protected function finishSave(array $options)\n    {\n        $this->fireModelEvent('saved', false);\n\n        if ($this->isDirty() && ($options['touch'] ?? true)) {\n            $this->touchOwners();\n        }\n\n        $this->syncOriginal();\n    }\n\n    /**\n     * Perform a model update operation.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return bool\n     */\n    protected function performUpdate(Builder $query)\n    {\n        // If the updating event returns false, we will cancel the update operation so\n        // developers can hook Validation systems into their models and cancel this\n        // operation if the model does not pass validation. Otherwise, we update.\n        if ($this->fireModelEvent('updating') === false) {\n            return false;\n        }\n\n        // First we need to create a fresh query instance and touch the creation and\n        // update timestamp on the model which are maintained by us for developer\n        // convenience. Then we will just continue saving the model instances.\n        if ($this->usesTimestamps()) {\n            $this->updateTimestamps();\n        }\n\n        // Once we have run the update operation, we will fire the \"updated\" event for\n        // this model instance. This will allow developers to hook into these after\n        // models are updated, giving them a chance to do any special processing.\n        $dirty = $this->getDirty();\n\n        if (count($dirty) > 0) {\n            $this->setKeysForSaveQuery($query)->update($dirty);\n\n            $this->syncChanges();\n\n            $this->fireModelEvent('updated', false);\n        }\n\n        return true;\n    }\n\n    /**\n     * Set the keys for a save update query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function setKeysForSaveQuery(Builder $query)\n    {\n        $query->where($this->getKeyName(), '=', $this->getKeyForSaveQuery());\n\n        return $query;\n    }\n\n    /**\n     * Get the primary key value for a save query.\n     *\n     * @return mixed\n     */\n    protected function getKeyForSaveQuery()\n    {\n        return $this->original[$this->getKeyName()]\n                        ?? $this->getKey();\n    }\n\n    /**\n     * Perform a model insert operation.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return bool\n     */\n    protected function performInsert(Builder $query)\n    {\n        if ($this->fireModelEvent('creating') === false) {\n            return false;\n        }\n\n        // First we'll need to create a fresh query instance and touch the creation and\n        // update timestamps on this model, which are maintained by us for developer\n        // convenience. After, we will just continue saving these model instances.\n        if ($this->usesTimestamps()) {\n            $this->updateTimestamps();\n        }\n\n        // If the model has an incrementing key, we can use the \"insertGetId\" method on\n        // the query builder, which will give us back the final inserted ID for this\n        // table from the database. Not all tables have to be incrementing though.\n        $attributes = $this->getAttributes();\n\n        if ($this->getIncrementing()) {\n            $this->insertAndSetId($query, $attributes);\n        }\n\n        // If the table isn't incrementing we'll simply insert these attributes as they\n        // are. These attribute arrays must contain an \"id\" column previously placed\n        // there by the developer as the manually determined key for these models.\n        else {\n            if (empty($attributes)) {\n                return true;\n            }\n\n            $query->insert($attributes);\n        }\n\n        // We will go ahead and set the exists property to true, so that it is set when\n        // the created event is fired, just in case the developer tries to update it\n        // during the event. This will allow them to do so and run an update here.\n        $this->exists = true;\n\n        $this->wasRecentlyCreated = true;\n\n        $this->fireModelEvent('created', false);\n\n        return true;\n    }\n\n    /**\n     * Insert the given attributes and set the ID on the model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  array  $attributes\n     * @return void\n     */\n    protected function insertAndSetId(Builder $query, $attributes)\n    {\n        $id = $query->insertGetId($attributes, $keyName = $this->getKeyName());\n\n        $this->setAttribute($keyName, $id);\n    }\n\n    /**\n     * Destroy the models for the given IDs.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|int  $ids\n     * @return int\n     */\n    public static function destroy($ids)\n    {\n        // We'll initialize a count here so we will return the total number of deletes\n        // for the operation. The developers can then check this number as a boolean\n        // type value or get this total count of records deleted for logging, etc.\n        $count = 0;\n\n        if ($ids instanceof BaseCollection) {\n            $ids = $ids->all();\n        }\n\n        $ids = is_array($ids) ? $ids : func_get_args();\n\n        // We will actually pull the models from the database table and call delete on\n        // each of them individually so that their events get fired properly with a\n        // correct set of attributes in case the developers wants to check these.\n        $key = ($instance = new static)->getKeyName();\n\n        foreach ($instance->whereIn($key, $ids)->get() as $model) {\n            if ($model->delete()) {\n                $count++;\n            }\n        }\n\n        return $count;\n    }\n\n    /**\n     * Delete the model from the database.\n     *\n     * @return bool|null\n     *\n     * @throws \\Exception\n     */\n    public function delete()\n    {\n        if (is_null($this->getKeyName())) {\n            throw new Exception('No primary key defined on model.');\n        }\n\n        // If the model doesn't exist, there is nothing to delete so we'll just return\n        // immediately and not do anything else. Otherwise, we will continue with a\n        // deletion process on the model, firing the proper events, and so forth.\n        if (! $this->exists) {\n            return;\n        }\n\n        if ($this->fireModelEvent('deleting') === false) {\n            return false;\n        }\n\n        // Here, we'll touch the owning models, verifying these timestamps get updated\n        // for the models. This will allow any caching to get broken on the parents\n        // by the timestamp. Then we will go ahead and delete the model instance.\n        $this->touchOwners();\n\n        $this->performDeleteOnModel();\n\n        // Once the model has been deleted, we will fire off the deleted event so that\n        // the developers may hook into post-delete operations. We will then return\n        // a boolean true as the delete is presumably successful on the database.\n        $this->fireModelEvent('deleted', false);\n\n        return true;\n    }\n\n    /**\n     * Force a hard delete on a soft deleted model.\n     *\n     * This method protects developers from running forceDelete when trait is missing.\n     *\n     * @return bool|null\n     */\n    public function forceDelete()\n    {\n        return $this->delete();\n    }\n\n    /**\n     * Perform the actual delete query on this model instance.\n     *\n     * @return void\n     */\n    protected function performDeleteOnModel()\n    {\n        $this->setKeysForSaveQuery($this->newModelQuery())->delete();\n\n        $this->exists = false;\n    }\n\n    /**\n     * Begin querying the model.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public static function query()\n    {\n        return (new static)->newQuery();\n    }\n\n    /**\n     * Get a new query builder for the model's table.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQuery()\n    {\n        return $this->registerGlobalScopes($this->newQueryWithoutScopes());\n    }\n\n    /**\n     * Get a new query builder that doesn't have any global scopes or eager loading.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function newModelQuery()\n    {\n        return $this->newEloquentBuilder(\n            $this->newBaseQueryBuilder()\n        )->setModel($this);\n    }\n\n    /**\n     * Get a new query builder with no relationships loaded.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQueryWithoutRelationships()\n    {\n        return $this->registerGlobalScopes($this->newModelQuery());\n    }\n\n    /**\n     * Register the global scopes for this builder instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function registerGlobalScopes($builder)\n    {\n        foreach ($this->getGlobalScopes() as $identifier => $scope) {\n            $builder->withGlobalScope($identifier, $scope);\n        }\n\n        return $builder;\n    }\n\n    /**\n     * Get a new query builder that doesn't have any global scopes.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function newQueryWithoutScopes()\n    {\n        return $this->newModelQuery()\n                    ->with($this->with)\n                    ->withCount($this->withCount);\n    }\n\n    /**\n     * Get a new query instance without a given scope.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Scope|string  $scope\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQueryWithoutScope($scope)\n    {\n        return $this->newQuery()->withoutGlobalScope($scope);\n    }\n\n    /**\n     * Get a new query to restore one or more models by their queueable IDs.\n     *\n     * @param  array|int  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQueryForRestoration($ids)\n    {\n        return is_array($ids)\n                ? $this->newQueryWithoutScopes()->whereIn($this->getQualifiedKeyName(), $ids)\n                : $this->newQueryWithoutScopes()->whereKey($ids);\n    }\n\n    /**\n     * Create a new Eloquent query builder for the model.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return \\Illuminate\\Database\\Eloquent\\Builder|static\n     */\n    public function newEloquentBuilder($query)\n    {\n        return new Builder($query);\n    }\n\n    /**\n     * Get a new query builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function newBaseQueryBuilder()\n    {\n        return $this->getConnection()->query();\n    }\n\n    /**\n     * Create a new Eloquent Collection instance.\n     *\n     * @param  array  $models\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function newCollection(array $models = [])\n    {\n        return new Collection($models);\n    }\n\n    /**\n     * Create a new pivot model instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  array  $attributes\n     * @param  string  $table\n     * @param  bool  $exists\n     * @param  string|null  $using\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Pivot\n     */\n    public function newPivot(self $parent, array $attributes, $table, $exists, $using = null)\n    {\n        return $using ? $using::fromRawAttributes($parent, $attributes, $table, $exists)\n                      : Pivot::fromAttributes($parent, $attributes, $table, $exists);\n    }\n\n    /**\n     * Convert the model instance to an array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return array_merge($this->attributesToArray(), $this->relationsToArray());\n    }\n\n    /**\n     * Convert the model instance to JSON.\n     *\n     * @param  int  $options\n     * @return string\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\JsonEncodingException\n     */\n    public function toJson($options = 0)\n    {\n        $json = json_encode($this->jsonSerialize(), $options);\n\n        if (JSON_ERROR_NONE !== json_last_error()) {\n            throw JsonEncodingException::forModel($this, json_last_error_msg());\n        }\n\n        return $json;\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->toArray();\n    }\n\n    /**\n     * Reload a fresh model instance from the database.\n     *\n     * @param  array|string  $with\n     * @return static|null\n     */\n    public function fresh($with = [])\n    {\n        if (! $this->exists) {\n            return;\n        }\n\n        return static::newQueryWithoutScopes()\n                        ->with(is_string($with) ? func_get_args() : $with)\n                        ->where($this->getKeyName(), $this->getKey())\n                        ->first();\n    }\n\n    /**\n     * Reload the current model instance with fresh attributes from the database.\n     *\n     * @return $this\n     */\n    public function refresh()\n    {\n        if (! $this->exists) {\n            return $this;\n        }\n\n        $this->setRawAttributes(\n            static::newQueryWithoutScopes()->findOrFail($this->getKey())->attributes\n        );\n\n        $this->load(collect($this->relations)->except('pivot')->keys()->toArray());\n\n        $this->syncOriginal();\n\n        return $this;\n    }\n\n    /**\n     * Clone the model into a new, non-existing instance.\n     *\n     * @param  array|null  $except\n     * @return static\n     */\n    public function replicate(array $except = null)\n    {\n        $defaults = [\n            $this->getKeyName(),\n            $this->getCreatedAtColumn(),\n            $this->getUpdatedAtColumn(),\n        ];\n\n        $attributes = Arr::except(\n            $this->attributes, $except ? array_unique(array_merge($except, $defaults)) : $defaults\n        );\n\n        return tap(new static, function ($instance) use ($attributes) {\n            $instance->setRawAttributes($attributes);\n\n            $instance->setRelations($this->relations);\n\n            $instance->fireModelEvent('replicating', false);\n        });\n    }\n\n    /**\n     * Determine if two models have the same ID and belong to the same table.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model|null  $model\n     * @return bool\n     */\n    public function is($model)\n    {\n        return ! is_null($model) &&\n               $this->getKey() === $model->getKey() &&\n               $this->getTable() === $model->getTable() &&\n               $this->getConnectionName() === $model->getConnectionName();\n    }\n\n    /**\n     * Determine if two models are not the same.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model|null  $model\n     * @return bool\n     */\n    public function isNot($model)\n    {\n        return ! $this->is($model);\n    }\n\n    /**\n     * Get the database connection for the model.\n     *\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function getConnection()\n    {\n        return static::resolveConnection($this->getConnectionName());\n    }\n\n    /**\n     * Get the current connection name for the model.\n     *\n     * @return string|null\n     */\n    public function getConnectionName()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Set the connection associated with the model.\n     *\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function setConnection($name)\n    {\n        $this->connection = $name;\n\n        return $this;\n    }\n\n    /**\n     * Resolve a connection instance.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public static function resolveConnection($connection = null)\n    {\n        return static::$resolver->connection($connection);\n    }\n\n    /**\n     * Get the connection resolver instance.\n     *\n     * @return \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    public static function getConnectionResolver()\n    {\n        return static::$resolver;\n    }\n\n    /**\n     * Set the connection resolver instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $resolver\n     * @return void\n     */\n    public static function setConnectionResolver(Resolver $resolver)\n    {\n        static::$resolver = $resolver;\n    }\n\n    /**\n     * Unset the connection resolver for models.\n     *\n     * @return void\n     */\n    public static function unsetConnectionResolver()\n    {\n        static::$resolver = null;\n    }\n\n    /**\n     * Get the table associated with the model.\n     *\n     * @return string\n     */\n    public function getTable()\n    {\n        return $this->table ?? Str::snake(Str::pluralStudly(class_basename($this)));\n    }\n\n    /**\n     * Set the table associated with the model.\n     *\n     * @param  string  $table\n     * @return $this\n     */\n    public function setTable($table)\n    {\n        $this->table = $table;\n\n        return $this;\n    }\n\n    /**\n     * Get the primary key for the model.\n     *\n     * @return string\n     */\n    public function getKeyName()\n    {\n        return $this->primaryKey;\n    }\n\n    /**\n     * Set the primary key for the model.\n     *\n     * @param  string  $key\n     * @return $this\n     */\n    public function setKeyName($key)\n    {\n        $this->primaryKey = $key;\n\n        return $this;\n    }\n\n    /**\n     * Get the table qualified key name.\n     *\n     * @return string\n     */\n    public function getQualifiedKeyName()\n    {\n        return $this->qualifyColumn($this->getKeyName());\n    }\n\n    /**\n     * Get the auto-incrementing key type.\n     *\n     * @return string\n     */\n    public function getKeyType()\n    {\n        return $this->keyType;\n    }\n\n    /**\n     * Set the data type for the primary key.\n     *\n     * @param  string  $type\n     * @return $this\n     */\n    public function setKeyType($type)\n    {\n        $this->keyType = $type;\n\n        return $this;\n    }\n\n    /**\n     * Get the value indicating whether the IDs are incrementing.\n     *\n     * @return bool\n     */\n    public function getIncrementing()\n    {\n        return $this->incrementing;\n    }\n\n    /**\n     * Set whether IDs are incrementing.\n     *\n     * @param  bool  $value\n     * @return $this\n     */\n    public function setIncrementing($value)\n    {\n        $this->incrementing = $value;\n\n        return $this;\n    }\n\n    /**\n     * Get the value of the model's primary key.\n     *\n     * @return mixed\n     */\n    public function getKey()\n    {\n        return $this->getAttribute($this->getKeyName());\n    }\n\n    /**\n     * Get the queueable identity for the entity.\n     *\n     * @return mixed\n     */\n    public function getQueueableId()\n    {\n        return $this->getKey();\n    }\n\n    /**\n     * Get the queueable relationships for the entity.\n     *\n     * @return array\n     */\n    public function getQueueableRelations()\n    {\n        $relations = [];\n\n        foreach ($this->getRelations() as $key => $relation) {\n            if (! method_exists($this, $key)) {\n                continue;\n            }\n\n            $relations[] = $key;\n\n            if ($relation instanceof QueueableCollection) {\n                foreach ($relation->getQueueableRelations() as $collectionValue) {\n                    $relations[] = $key.'.'.$collectionValue;\n                }\n            }\n\n            if ($relation instanceof QueueableEntity) {\n                foreach ($relation->getQueueableRelations() as $entityKey => $entityValue) {\n                    $relations[] = $key.'.'.$entityValue;\n                }\n            }\n        }\n\n        return array_unique($relations);\n    }\n\n    /**\n     * Get the queueable connection for the entity.\n     *\n     * @return string|null\n     */\n    public function getQueueableConnection()\n    {\n        return $this->getConnectionName();\n    }\n\n    /**\n     * Get the value of the model's route key.\n     *\n     * @return mixed\n     */\n    public function getRouteKey()\n    {\n        return $this->getAttribute($this->getRouteKeyName());\n    }\n\n    /**\n     * Get the route key for the model.\n     *\n     * @return string\n     */\n    public function getRouteKeyName()\n    {\n        return $this->getKeyName();\n    }\n\n    /**\n     * Retrieve the model for a bound value.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Eloquent\\Model|null\n     */\n    public function resolveRouteBinding($value)\n    {\n        return $this->where($this->getRouteKeyName(), $value)->first();\n    }\n\n    /**\n     * Get the default foreign key name for the model.\n     *\n     * @return string\n     */\n    public function getForeignKey()\n    {\n        return Str::snake(class_basename($this)).'_'.$this->getKeyName();\n    }\n\n    /**\n     * Get the number of models to return per page.\n     *\n     * @return int\n     */\n    public function getPerPage()\n    {\n        return $this->perPage;\n    }\n\n    /**\n     * Set the number of models to return per page.\n     *\n     * @param  int  $perPage\n     * @return $this\n     */\n    public function setPerPage($perPage)\n    {\n        $this->perPage = $perPage;\n\n        return $this;\n    }\n\n    /**\n     * Dynamically retrieve attributes on the model.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->getAttribute($key);\n    }\n\n    /**\n     * Dynamically set attributes on the model.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this->setAttribute($key, $value);\n    }\n\n    /**\n     * Determine if the given attribute exists.\n     *\n     * @param  mixed  $offset\n     * @return bool\n     */\n    public function offsetExists($offset)\n    {\n        return ! is_null($this->getAttribute($offset));\n    }\n\n    /**\n     * Get the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @return mixed\n     */\n    public function offsetGet($offset)\n    {\n        return $this->getAttribute($offset);\n    }\n\n    /**\n     * Set the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->setAttribute($offset, $value);\n    }\n\n    /**\n     * Unset the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @return void\n     */\n    public function offsetUnset($offset)\n    {\n        unset($this->attributes[$offset], $this->relations[$offset]);\n    }\n\n    /**\n     * Determine if an attribute or relation exists on the model.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return $this->offsetExists($key);\n    }\n\n    /**\n     * Unset an attribute on the model.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function __unset($key)\n    {\n        $this->offsetUnset($key);\n    }\n\n    /**\n     * Handle dynamic method calls into the model.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (in_array($method, ['increment', 'decrement'])) {\n            return $this->$method(...$parameters);\n        }\n\n        return $this->forwardCallTo($this->newQuery(), $method, $parameters);\n    }\n\n    /**\n     * Handle dynamic static method calls into the method.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        return (new static)->$method(...$parameters);\n    }\n\n    /**\n     * Convert the model to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->toJson();\n    }\n\n    /**\n     * When a model is being unserialized, check if it needs to be booted.\n     *\n     * @return void\n     */\n    public function __wakeup()\n    {\n        $this->bootIfNotBooted();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/ModelNotFoundException.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Arr;\n\nclass ModelNotFoundException extends RuntimeException\n{\n    /**\n     * Name of the affected Eloquent model.\n     *\n     * @var string\n     */\n    protected $model;\n\n    /**\n     * The affected model IDs.\n     *\n     * @var int|array\n     */\n    protected $ids;\n\n    /**\n     * Set the affected Eloquent model and instance ids.\n     *\n     * @param  string  $model\n     * @param  int|array  $ids\n     * @return $this\n     */\n    public function setModel($model, $ids = [])\n    {\n        $this->model = $model;\n        $this->ids = Arr::wrap($ids);\n\n        $this->message = \"No query results for model [{$model}]\";\n\n        if (count($this->ids) > 0) {\n            $this->message .= ' '.implode(', ', $this->ids);\n        } else {\n            $this->message .= '.';\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the affected Eloquent model.\n     *\n     * @return string\n     */\n    public function getModel()\n    {\n        return $this->model;\n    }\n\n    /**\n     * Get the affected Eloquent model IDs.\n     *\n     * @return int|array\n     */\n    public function getIds()\n    {\n        return $this->ids;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/QueueEntityResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse Illuminate\\Contracts\\Queue\\EntityNotFoundException;\nuse Illuminate\\Contracts\\Queue\\EntityResolver as EntityResolverContract;\n\nclass QueueEntityResolver implements EntityResolverContract\n{\n    /**\n     * Resolve the entity for the given ID.\n     *\n     * @param  string  $type\n     * @param  mixed  $id\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Queue\\EntityNotFoundException\n     */\n    public function resolve($type, $id)\n    {\n        $instance = (new $type)->find($id);\n\n        if ($instance) {\n            return $instance;\n        }\n\n        throw new EntityNotFoundException($type, $id);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/RelationNotFoundException.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nuse RuntimeException;\n\nclass RelationNotFoundException extends RuntimeException\n{\n    /**\n     * The name of the affected Eloquent model.\n     *\n     * @var string\n     */\n    public $model;\n\n    /**\n     * The name of the relation.\n     *\n     * @var string\n     */\n    public $relation;\n\n    /**\n     * Create a new exception instance.\n     *\n     * @param  mixed  $model\n     * @param  string  $relation\n     * @return static\n     */\n    public static function make($model, $relation)\n    {\n        $class = get_class($model);\n\n        $instance = new static(\"Call to undefined relationship [{$relation}] on model [{$class}].\");\n\n        $instance->model = $model;\n        $instance->relation = $relation;\n\n        return $instance;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels;\n\nclass BelongsTo extends Relation\n{\n    use SupportsDefaultModels;\n\n    /**\n     * The child model instance of the relation.\n     */\n    protected $child;\n\n    /**\n     * The foreign key of the parent model.\n     *\n     * @var string\n     */\n    protected $foreignKey;\n\n    /**\n     * The associated key on the parent model.\n     *\n     * @var string\n     */\n    protected $ownerKey;\n\n    /**\n     * The name of the relationship.\n     *\n     * @var string\n     */\n    protected $relationName;\n\n    /**\n     * The count of self joins.\n     *\n     * @var int\n     */\n    protected static $selfJoinCount = 0;\n\n    /**\n     * Create a new belongs to relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $child\n     * @param  string  $foreignKey\n     * @param  string  $ownerKey\n     * @param  string  $relationName\n     *\n     * @return void\n     */\n    public function __construct(Builder $query, Model $child, $foreignKey, $ownerKey, $relationName)\n    {\n        $this->ownerKey = $ownerKey;\n        $this->relationName = $relationName;\n        $this->foreignKey = $foreignKey;\n\n        // In the underlying base relationship class, this variable is referred to as\n        // the \"parent\" since most relationships are not inversed. But, since this\n        // one is we will create a \"child\" variable for much better readability.\n        $this->child = $child;\n\n        parent::__construct($query, $child);\n    }\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        if (is_null($this->child->{$this->foreignKey})) {\n            return $this->getDefaultFor($this->parent);\n        }\n\n        return $this->query->first() ?: $this->getDefaultFor($this->parent);\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    public function addConstraints()\n    {\n        if (static::$constraints) {\n            // For belongs to relationships, which are essentially the inverse of has one\n            // or has many relationships, we need to actually query on the primary key\n            // of the related models matching on the foreign key that's on a parent.\n            $table = $this->related->getTable();\n\n            $this->query->where($table.'.'.$this->ownerKey, '=', $this->child->{$this->foreignKey});\n        }\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        // We'll grab the primary key name of the related models since it could be set to\n        // a non-standard name and not \"id\". We will then construct the constraint for\n        // our eagerly loading query so it returns the proper models from execution.\n        $key = $this->related->getTable().'.'.$this->ownerKey;\n\n        $whereIn = $this->whereInMethod($this->related, $this->ownerKey);\n\n        $this->query->{$whereIn}($key, $this->getEagerModelKeys($models));\n    }\n\n    /**\n     * Gather the keys from an array of related models.\n     *\n     * @param  array  $models\n     * @return array\n     */\n    protected function getEagerModelKeys(array $models)\n    {\n        $keys = [];\n\n        // First we need to gather all of the keys from the parent models so we know what\n        // to query for via the eager loading query. We will add them to an array then\n        // execute a \"where in\" statement to gather up all of those related records.\n        foreach ($models as $model) {\n            if (! is_null($value = $model->{$this->foreignKey})) {\n                $keys[] = $value;\n            }\n        }\n\n        sort($keys);\n\n        return array_values(array_unique($keys));\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->getDefaultFor($model));\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        $foreign = $this->foreignKey;\n\n        $owner = $this->ownerKey;\n\n        // First we will get to build a dictionary of the child models by their primary\n        // key of the relationship, then we can easily match the children back onto\n        // the parents using that dictionary and the primary key of the children.\n        $dictionary = [];\n\n        foreach ($results as $result) {\n            $dictionary[$result->getAttribute($owner)] = $result;\n        }\n\n        // Once we have the dictionary constructed, we can loop through all the parents\n        // and match back onto their children using these keys of the dictionary and\n        // the primary key of the children to map them onto the correct instances.\n        foreach ($models as $model) {\n            if (isset($dictionary[$model->{$foreign}])) {\n                $model->setRelation($relation, $dictionary[$model->{$foreign}]);\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Update the parent model on the relationship.\n     *\n     * @param  array  $attributes\n     * @return mixed\n     */\n    public function update(array $attributes)\n    {\n        return $this->getResults()->fill($attributes)->save();\n    }\n\n    /**\n     * Associate the model instance to the given parent.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model|int|string  $model\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function associate($model)\n    {\n        $ownerKey = $model instanceof Model ? $model->getAttribute($this->ownerKey) : $model;\n\n        $this->child->setAttribute($this->foreignKey, $ownerKey);\n\n        if ($model instanceof Model) {\n            $this->child->setRelation($this->relationName, $model);\n        } elseif ($this->child->isDirty($this->foreignKey)) {\n            $this->child->unsetRelation($this->relationName);\n        }\n\n        return $this->child;\n    }\n\n    /**\n     * Dissociate previously associated model from the given parent.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function dissociate()\n    {\n        $this->child->setAttribute($this->foreignKey, null);\n\n        return $this->child->setRelation($this->relationName, null);\n    }\n\n    /**\n     * Add the constraints for a relationship query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        if ($parentQuery->getQuery()->from == $query->getQuery()->from) {\n            return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns);\n        }\n\n        return $query->select($columns)->whereColumn(\n            $this->getQualifiedForeignKeyName(), '=', $query->qualifyColumn($this->ownerKey)\n        );\n    }\n\n    /**\n     * Add the constraints for a relationship query on the same table.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        $query->select($columns)->from(\n            $query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash()\n        );\n\n        $query->getModel()->setTable($hash);\n\n        return $query->whereColumn(\n            $hash.'.'.$this->ownerKey, '=', $this->getQualifiedForeignKeyName()\n        );\n    }\n\n    /**\n     * Get a relationship join table hash.\n     *\n     * @return string\n     */\n    public function getRelationCountHash()\n    {\n        return 'laravel_reserved_'.static::$selfJoinCount++;\n    }\n\n    /**\n     * Determine if the related model has an auto-incrementing ID.\n     *\n     * @return bool\n     */\n    protected function relationHasIncrementingId()\n    {\n        return $this->related->getIncrementing() &&\n                                $this->related->getKeyType() === 'int';\n    }\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected function newRelatedInstanceFor(Model $parent)\n    {\n        return $this->related->newInstance();\n    }\n\n    /**\n     * Get the child of the relationship.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function getChild()\n    {\n        return $this->child;\n    }\n\n    /**\n     * Get the foreign key of the relationship.\n     *\n     * @return string\n     */\n    public function getForeignKeyName()\n    {\n        return $this->foreignKey;\n    }\n\n    /**\n     * Get the fully qualified foreign key of the relationship.\n     *\n     * @return string\n     */\n    public function getQualifiedForeignKeyName()\n    {\n        return $this->child->qualifyColumn($this->foreignKey);\n    }\n\n    /**\n     * Get the associated key of the relationship.\n     *\n     * @return string\n     */\n    public function getOwnerKeyName()\n    {\n        return $this->ownerKey;\n    }\n\n    /**\n     * Get the fully qualified associated key of the relationship.\n     *\n     * @return string\n     */\n    public function getQualifiedOwnerKeyName()\n    {\n        return $this->related->qualifyColumn($this->ownerKey);\n    }\n\n    /**\n     * Get the name of the relationship.\n     *\n     * @return string\n     */\n    public function getRelationName()\n    {\n        return $this->relationName;\n    }\n\n    /**\n     * Get the name of the relationship.\n     *\n     * @return string\n     * @deprecated The getRelationName() method should be used instead. Will be removed in Laravel 5.9.\n     */\n    public function getRelation()\n    {\n        return $this->relationName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsToMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\n\nclass BelongsToMany extends Relation\n{\n    use Concerns\\InteractsWithPivotTable;\n\n    /**\n     * The intermediate table for the relation.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The foreign key of the parent model.\n     *\n     * @var string\n     */\n    protected $foreignPivotKey;\n\n    /**\n     * The associated key of the relation.\n     *\n     * @var string\n     */\n    protected $relatedPivotKey;\n\n    /**\n     * The key name of the parent model.\n     *\n     * @var string\n     */\n    protected $parentKey;\n\n    /**\n     * The key name of the related model.\n     *\n     * @var string\n     */\n    protected $relatedKey;\n\n    /**\n     * The \"name\" of the relationship.\n     *\n     * @var string\n     */\n    protected $relationName;\n\n    /**\n     * The pivot table columns to retrieve.\n     *\n     * @var array\n     */\n    protected $pivotColumns = [];\n\n    /**\n     * Any pivot table restrictions for where clauses.\n     *\n     * @var array\n     */\n    protected $pivotWheres = [];\n\n    /**\n     * Any pivot table restrictions for whereIn clauses.\n     *\n     * @var array\n     */\n    protected $pivotWhereIns = [];\n\n    /**\n     * The default values for the pivot columns.\n     *\n     * @var array\n     */\n    protected $pivotValues = [];\n\n    /**\n     * Indicates if timestamps are available on the pivot table.\n     *\n     * @var bool\n     */\n    public $withTimestamps = false;\n\n    /**\n     * The custom pivot table column for the created_at timestamp.\n     *\n     * @var string\n     */\n    protected $pivotCreatedAt;\n\n    /**\n     * The custom pivot table column for the updated_at timestamp.\n     *\n     * @var string\n     */\n    protected $pivotUpdatedAt;\n\n    /**\n     * The class name of the custom pivot model to use for the relationship.\n     *\n     * @var string\n     */\n    protected $using;\n\n    /**\n     * The name of the accessor to use for the \"pivot\" relationship.\n     *\n     * @var string\n     */\n    protected $accessor = 'pivot';\n\n    /**\n     * The count of self joins.\n     *\n     * @var int\n     */\n    protected static $selfJoinCount = 0;\n\n    /**\n     * Create a new belongs to many relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  string  $relationName\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent, $table, $foreignPivotKey,\n                                $relatedPivotKey, $parentKey, $relatedKey, $relationName = null)\n    {\n        $this->parentKey = $parentKey;\n        $this->relatedKey = $relatedKey;\n        $this->relationName = $relationName;\n        $this->relatedPivotKey = $relatedPivotKey;\n        $this->foreignPivotKey = $foreignPivotKey;\n        $this->table = $this->resolveTableName($table);\n\n        parent::__construct($query, $parent);\n    }\n\n    /**\n     * Attempt to resolve the intermediate table name from the given string.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function resolveTableName($table)\n    {\n        if (! Str::contains($table, '\\\\') || ! class_exists($table)) {\n            return $table;\n        }\n\n        $model = new $table;\n\n        if (! $model instanceof Model) {\n            return $table;\n        }\n\n        if ($model instanceof Pivot) {\n            $this->using($table);\n        }\n\n        return $model->getTable();\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    public function addConstraints()\n    {\n        $this->performJoin();\n\n        if (static::$constraints) {\n            $this->addWhereConstraints();\n        }\n    }\n\n    /**\n     * Set the join clause for the relation query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder|null  $query\n     * @return $this\n     */\n    protected function performJoin($query = null)\n    {\n        $query = $query ?: $this->query;\n\n        // We need to join to the intermediate table on the related model's primary\n        // key column with the intermediate table's foreign key for the related\n        // model instance. Then we can set the \"where\" for the parent models.\n        $baseTable = $this->related->getTable();\n\n        $key = $baseTable.'.'.$this->relatedKey;\n\n        $query->join($this->table, $key, '=', $this->getQualifiedRelatedPivotKeyName());\n\n        return $this;\n    }\n\n    /**\n     * Set the where clause for the relation query.\n     *\n     * @return $this\n     */\n    protected function addWhereConstraints()\n    {\n        $this->query->where(\n            $this->getQualifiedForeignPivotKeyName(), '=', $this->parent->{$this->parentKey}\n        );\n\n        return $this;\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        $whereIn = $this->whereInMethod($this->parent, $this->parentKey);\n\n        $this->query->{$whereIn}(\n            $this->getQualifiedForeignPivotKeyName(),\n            $this->getKeys($models, $this->parentKey)\n        );\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->related->newCollection());\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        $dictionary = $this->buildDictionary($results);\n\n        // Once we have an array dictionary of child objects we can easily match the\n        // children back to their parent using the dictionary and the keys on the\n        // the parent models. Then we will return the hydrated models back out.\n        foreach ($models as $model) {\n            if (isset($dictionary[$key = $model->{$this->parentKey}])) {\n                $model->setRelation(\n                    $relation, $this->related->newCollection($dictionary[$key])\n                );\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Build model dictionary keyed by the relation's foreign key.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @return array\n     */\n    protected function buildDictionary(Collection $results)\n    {\n        // First we will build a dictionary of child models keyed by the foreign key\n        // of the relation so that we will easily and quickly match them to their\n        // parents without having a possibly slow inner loops for every models.\n        $dictionary = [];\n\n        foreach ($results as $result) {\n            $dictionary[$result->{$this->accessor}->{$this->foreignPivotKey}][] = $result;\n        }\n\n        return $dictionary;\n    }\n\n    /**\n     * Get the class being used for pivot models.\n     *\n     * @return string\n     */\n    public function getPivotClass()\n    {\n        return $this->using ?? Pivot::class;\n    }\n\n    /**\n     * Specify the custom pivot model to use for the relationship.\n     *\n     * @param  string  $class\n     * @return $this\n     */\n    public function using($class)\n    {\n        $this->using = $class;\n\n        return $this;\n    }\n\n    /**\n     * Specify the custom pivot accessor to use for the relationship.\n     *\n     * @param  string  $accessor\n     * @return $this\n     */\n    public function as($accessor)\n    {\n        $this->accessor = $accessor;\n\n        return $this;\n    }\n\n    /**\n     * Set a where clause for a pivot table column.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  mixed   $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function wherePivot($column, $operator = null, $value = null, $boolean = 'and')\n    {\n        $this->pivotWheres[] = func_get_args();\n\n        return $this->where($this->table.'.'.$column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Set a \"where in\" clause for a pivot table column.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @param  string  $boolean\n     * @param  bool    $not\n     * @return $this\n     */\n    public function wherePivotIn($column, $values, $boolean = 'and', $not = false)\n    {\n        $this->pivotWhereIns[] = func_get_args();\n\n        return $this->whereIn($this->table.'.'.$column, $values, $boolean, $not);\n    }\n\n    /**\n     * Set an \"or where\" clause for a pivot table column.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  mixed   $value\n     * @return $this\n     */\n    public function orWherePivot($column, $operator = null, $value = null)\n    {\n        return $this->wherePivot($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Set a where clause for a pivot table column.\n     *\n     * In addition, new pivot records will receive this value.\n     *\n     * @param  string|array  $column\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function withPivotValue($column, $value = null)\n    {\n        if (is_array($column)) {\n            foreach ($column as $name => $value) {\n                $this->withPivotValue($name, $value);\n            }\n\n            return $this;\n        }\n\n        if (is_null($value)) {\n            throw new InvalidArgumentException('The provided value may not be null.');\n        }\n\n        $this->pivotValues[] = compact('column', 'value');\n\n        return $this->wherePivot($column, '=', $value);\n    }\n\n    /**\n     * Set an \"or where in\" clause for a pivot table column.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @return $this\n     */\n    public function orWherePivotIn($column, $values)\n    {\n        return $this->wherePivotIn($column, $values, 'or');\n    }\n\n    /**\n     * Find a related model by its primary key or return new instance of the related model.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Support\\Collection|\\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function findOrNew($id, $columns = ['*'])\n    {\n        if (is_null($instance = $this->find($id, $columns))) {\n            $instance = $this->related->newInstance();\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Get the first related model record matching the attributes or instantiate it.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function firstOrNew(array $attributes)\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            $instance = $this->related->newInstance($attributes);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Get the first related record matching the attributes or create it.\n     *\n     * @param  array  $attributes\n     * @param  array  $joining\n     * @param  bool   $touch\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function firstOrCreate(array $attributes, array $joining = [], $touch = true)\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            $instance = $this->create($attributes, $joining, $touch);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create or update a related record matching the attributes, and fill it with values.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @param  array  $joining\n     * @param  bool   $touch\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function updateOrCreate(array $attributes, array $values = [], array $joining = [], $touch = true)\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            return $this->create($values, $joining, $touch);\n        }\n\n        $instance->fill($values);\n\n        $instance->save(['touch' => false]);\n\n        return $instance;\n    }\n\n    /**\n     * Find a related model by its primary key.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection|null\n     */\n    public function find($id, $columns = ['*'])\n    {\n        return is_array($id) ? $this->findMany($id, $columns) : $this->where(\n            $this->getRelated()->getQualifiedKeyName(), '=', $id\n        )->first($columns);\n    }\n\n    /**\n     * Find multiple related models by their primary keys.\n     *\n     * @param  mixed  $ids\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function findMany($ids, $columns = ['*'])\n    {\n        return empty($ids) ? $this->getRelated()->newCollection() : $this->whereIn(\n            $this->getRelated()->getQualifiedKeyName(), $ids\n        )->get($columns);\n    }\n\n    /**\n     * Find a related model by its primary key or throw an exception.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function findOrFail($id, $columns = ['*'])\n    {\n        $result = $this->find($id, $columns);\n\n        if (is_array($id)) {\n            if (count($result) === count(array_unique($id))) {\n                return $result;\n            }\n        } elseif (! is_null($result)) {\n            return $result;\n        }\n\n        throw (new ModelNotFoundException)->setModel(get_class($this->related), $id);\n    }\n\n    /**\n     * Execute the query and get the first result.\n     *\n     * @param  array   $columns\n     * @return mixed\n     */\n    public function first($columns = ['*'])\n    {\n        $results = $this->take(1)->get($columns);\n\n        return count($results) > 0 ? $results->first() : null;\n    }\n\n    /**\n     * Execute the query and get the first result or throw an exception.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function firstOrFail($columns = ['*'])\n    {\n        if (! is_null($model = $this->first($columns))) {\n            return $model;\n        }\n\n        throw (new ModelNotFoundException)->setModel(get_class($this->related));\n    }\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        return ! is_null($this->parent->{$this->parentKey})\n                ? $this->get()\n                : $this->related->newCollection();\n    }\n\n    /**\n     * Execute the query as a \"select\" statement.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function get($columns = ['*'])\n    {\n        // First we'll add the proper select columns onto the query so it is run with\n        // the proper columns. Then, we will get the results and hydrate out pivot\n        // models with the result of those columns as a separate model relation.\n        $builder = $this->query->applyScopes();\n\n        $columns = $builder->getQuery()->columns ? [] : $columns;\n\n        $models = $builder->addSelect(\n            $this->shouldSelect($columns)\n        )->getModels();\n\n        $this->hydratePivotRelation($models);\n\n        // If we actually found models we will also eager load any relationships that\n        // have been specified as needing to be eager loaded. This will solve the\n        // n + 1 query problem for the developer and also increase performance.\n        if (count($models) > 0) {\n            $models = $builder->eagerLoadRelations($models);\n        }\n\n        return $this->related->newCollection($models);\n    }\n\n    /**\n     * Get the select columns for the relation query.\n     *\n     * @param  array  $columns\n     * @return array\n     */\n    protected function shouldSelect(array $columns = ['*'])\n    {\n        if ($columns == ['*']) {\n            $columns = [$this->related->getTable().'.*'];\n        }\n\n        return array_merge($columns, $this->aliasedPivotColumns());\n    }\n\n    /**\n     * Get the pivot columns for the relation.\n     *\n     * \"pivot_\" is prefixed ot each column for easy removal later.\n     *\n     * @return array\n     */\n    protected function aliasedPivotColumns()\n    {\n        $defaults = [$this->foreignPivotKey, $this->relatedPivotKey];\n\n        return collect(array_merge($defaults, $this->pivotColumns))->map(function ($column) {\n            return $this->table.'.'.$column.' as pivot_'.$column;\n        })->unique()->all();\n    }\n\n    /**\n     * Get a paginator for the \"select\" statement.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\n     */\n    public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $this->query->addSelect($this->shouldSelect($columns));\n\n        return tap($this->query->paginate($perPage, $columns, $pageName, $page), function ($paginator) {\n            $this->hydratePivotRelation($paginator->items());\n        });\n    }\n\n    /**\n     * Paginate the given query into a simple paginator.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n     */\n    public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $this->query->addSelect($this->shouldSelect($columns));\n\n        return tap($this->query->simplePaginate($perPage, $columns, $pageName, $page), function ($paginator) {\n            $this->hydratePivotRelation($paginator->items());\n        });\n    }\n\n    /**\n     * Chunk the results of the query.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @return bool\n     */\n    public function chunk($count, callable $callback)\n    {\n        $this->query->addSelect($this->shouldSelect());\n\n        return $this->query->chunk($count, function ($results) use ($callback) {\n            $this->hydratePivotRelation($results->all());\n\n            return $callback($results);\n        });\n    }\n\n    /**\n     * Chunk the results of a query by comparing numeric IDs.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @param  string|null  $column\n     * @param  string|null  $alias\n     * @return bool\n     */\n    public function chunkById($count, callable $callback, $column = null, $alias = null)\n    {\n        $this->query->addSelect($this->shouldSelect());\n\n        $column = $column ?? $this->getRelated()->qualifyColumn(\n            $this->getRelatedKeyName()\n        );\n\n        $alias = $alias ?? $this->getRelatedKeyName();\n\n        return $this->query->chunkById($count, function ($results) use ($callback) {\n            $this->hydratePivotRelation($results->all());\n\n            return $callback($results);\n        }, $column, $alias);\n    }\n\n    /**\n     * Execute a callback over each item while chunking.\n     *\n     * @param  callable  $callback\n     * @param  int  $count\n     * @return bool\n     */\n    public function each(callable $callback, $count = 1000)\n    {\n        return $this->chunk($count, function ($results) use ($callback) {\n            foreach ($results as $key => $value) {\n                if ($callback($value, $key) === false) {\n                    return false;\n                }\n            }\n        });\n    }\n\n    /**\n     * Hydrate the pivot table relationship on the models.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    protected function hydratePivotRelation(array $models)\n    {\n        // To hydrate the pivot relationship, we will just gather the pivot attributes\n        // and create a new Pivot model, which is basically a dynamic model that we\n        // will set the attributes, table, and connections on it so it will work.\n        foreach ($models as $model) {\n            $model->setRelation($this->accessor, $this->newExistingPivot(\n                $this->migratePivotAttributes($model)\n            ));\n        }\n    }\n\n    /**\n     * Get the pivot attributes from a model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return array\n     */\n    protected function migratePivotAttributes(Model $model)\n    {\n        $values = [];\n\n        foreach ($model->getAttributes() as $key => $value) {\n            // To get the pivots attributes we will just take any of the attributes which\n            // begin with \"pivot_\" and add those to this arrays, as well as unsetting\n            // them from the parent's models since they exist in a different table.\n            if (strpos($key, 'pivot_') === 0) {\n                $values[substr($key, 6)] = $value;\n\n                unset($model->$key);\n            }\n        }\n\n        return $values;\n    }\n\n    /**\n     * If we're touching the parent model, touch.\n     *\n     * @return void\n     */\n    public function touchIfTouching()\n    {\n        if ($this->touchingParent()) {\n            $this->getParent()->touch();\n        }\n\n        if ($this->getParent()->touches($this->relationName)) {\n            $this->touch();\n        }\n    }\n\n    /**\n     * Determine if we should touch the parent on sync.\n     *\n     * @return bool\n     */\n    protected function touchingParent()\n    {\n        return $this->getRelated()->touches($this->guessInverseRelation());\n    }\n\n    /**\n     * Attempt to guess the name of the inverse of the relation.\n     *\n     * @return string\n     */\n    protected function guessInverseRelation()\n    {\n        return Str::camel(Str::pluralStudly(class_basename($this->getParent())));\n    }\n\n    /**\n     * Touch all of the related models for the relationship.\n     *\n     * E.g.: Touch all roles associated with this user.\n     *\n     * @return void\n     */\n    public function touch()\n    {\n        $key = $this->getRelated()->getKeyName();\n\n        $columns = [\n            $this->related->getUpdatedAtColumn() => $this->related->freshTimestampString(),\n        ];\n\n        // If we actually have IDs for the relation, we will run the query to update all\n        // the related model's timestamps, to make sure these all reflect the changes\n        // to the parent models. This will help us keep any caching synced up here.\n        if (count($ids = $this->allRelatedIds()) > 0) {\n            $this->getRelated()->newQueryWithoutRelationships()->whereIn($key, $ids)->update($columns);\n        }\n    }\n\n    /**\n     * Get all of the IDs for the related models.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function allRelatedIds()\n    {\n        return $this->newPivotQuery()->pluck($this->relatedPivotKey);\n    }\n\n    /**\n     * Save a new model and attach it to the parent model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @param  array  $pivotAttributes\n     * @param  bool   $touch\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function save(Model $model, array $pivotAttributes = [], $touch = true)\n    {\n        $model->save(['touch' => false]);\n\n        $this->attach($model, $pivotAttributes, $touch);\n\n        return $model;\n    }\n\n    /**\n     * Save an array of new models and attach them to the parent model.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array  $models\n     * @param  array  $pivotAttributes\n     * @return array\n     */\n    public function saveMany($models, array $pivotAttributes = [])\n    {\n        foreach ($models as $key => $model) {\n            $this->save($model, (array) ($pivotAttributes[$key] ?? []), false);\n        }\n\n        $this->touchIfTouching();\n\n        return $models;\n    }\n\n    /**\n     * Create a new instance of the related model.\n     *\n     * @param  array  $attributes\n     * @param  array  $joining\n     * @param  bool   $touch\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function create(array $attributes = [], array $joining = [], $touch = true)\n    {\n        $instance = $this->related->newInstance($attributes);\n\n        // Once we save the related model, we need to attach it to the base model via\n        // through intermediate table so we'll use the existing \"attach\" method to\n        // accomplish this which will insert the record and any more attributes.\n        $instance->save(['touch' => false]);\n\n        $this->attach($instance, $joining, $touch);\n\n        return $instance;\n    }\n\n    /**\n     * Create an array of new instances of the related models.\n     *\n     * @param  array  $records\n     * @param  array  $joinings\n     * @return array\n     */\n    public function createMany(array $records, array $joinings = [])\n    {\n        $instances = [];\n\n        foreach ($records as $key => $record) {\n            $instances[] = $this->create($record, (array) ($joinings[$key] ?? []), false);\n        }\n\n        $this->touchIfTouching();\n\n        return $instances;\n    }\n\n    /**\n     * Add the constraints for a relationship query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        if ($parentQuery->getQuery()->from == $query->getQuery()->from) {\n            return $this->getRelationExistenceQueryForSelfJoin($query, $parentQuery, $columns);\n        }\n\n        $this->performJoin($query);\n\n        return parent::getRelationExistenceQuery($query, $parentQuery, $columns);\n    }\n\n    /**\n     * Add the constraints for a relationship query on the same table.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQueryForSelfJoin(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        $query->select($columns);\n\n        $query->from($this->related->getTable().' as '.$hash = $this->getRelationCountHash());\n\n        $this->related->setTable($hash);\n\n        $this->performJoin($query);\n\n        return parent::getRelationExistenceQuery($query, $parentQuery, $columns);\n    }\n\n    /**\n     * Get the key for comparing against the parent key in \"has\" query.\n     *\n     * @return string\n     */\n    public function getExistenceCompareKey()\n    {\n        return $this->getQualifiedForeignPivotKeyName();\n    }\n\n    /**\n     * Get a relationship join table hash.\n     *\n     * @return string\n     */\n    public function getRelationCountHash()\n    {\n        return 'laravel_reserved_'.static::$selfJoinCount++;\n    }\n\n    /**\n     * Specify that the pivot table has creation and update timestamps.\n     *\n     * @param  mixed  $createdAt\n     * @param  mixed  $updatedAt\n     * @return $this\n     */\n    public function withTimestamps($createdAt = null, $updatedAt = null)\n    {\n        $this->withTimestamps = true;\n\n        $this->pivotCreatedAt = $createdAt;\n        $this->pivotUpdatedAt = $updatedAt;\n\n        return $this->withPivot($this->createdAt(), $this->updatedAt());\n    }\n\n    /**\n     * Get the name of the \"created at\" column.\n     *\n     * @return string\n     */\n    public function createdAt()\n    {\n        return $this->pivotCreatedAt ?: $this->parent->getCreatedAtColumn();\n    }\n\n    /**\n     * Get the name of the \"updated at\" column.\n     *\n     * @return string\n     */\n    public function updatedAt()\n    {\n        return $this->pivotUpdatedAt ?: $this->parent->getUpdatedAtColumn();\n    }\n\n    /**\n     * Get the foreign key for the relation.\n     *\n     * @return string\n     */\n    public function getForeignPivotKeyName()\n    {\n        return $this->foreignPivotKey;\n    }\n\n    /**\n     * Get the fully qualified foreign key for the relation.\n     *\n     * @return string\n     */\n    public function getQualifiedForeignPivotKeyName()\n    {\n        return $this->table.'.'.$this->foreignPivotKey;\n    }\n\n    /**\n     * Get the \"related key\" for the relation.\n     *\n     * @return string\n     */\n    public function getRelatedPivotKeyName()\n    {\n        return $this->relatedPivotKey;\n    }\n\n    /**\n     * Get the fully qualified \"related key\" for the relation.\n     *\n     * @return string\n     */\n    public function getQualifiedRelatedPivotKeyName()\n    {\n        return $this->table.'.'.$this->relatedPivotKey;\n    }\n\n    /**\n     * Get the parent key for the relationship.\n     *\n     * @return string\n     */\n    public function getParentKeyName()\n    {\n        return $this->parentKey;\n    }\n\n    /**\n     * Get the fully qualified parent key name for the relation.\n     *\n     * @return string\n     */\n    public function getQualifiedParentKeyName()\n    {\n        return $this->parent->qualifyColumn($this->parentKey);\n    }\n\n    /**\n     * Get the related key for the relationship.\n     *\n     * @return string\n     */\n    public function getRelatedKeyName()\n    {\n        return $this->relatedKey;\n    }\n\n    /**\n     * Get the intermediate table for the relationship.\n     *\n     * @return string\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * Get the relationship name for the relationship.\n     *\n     * @return string\n     */\n    public function getRelationName()\n    {\n        return $this->relationName;\n    }\n\n    /**\n     * Get the name of the pivot accessor for this relationship.\n     *\n     * @return string\n     */\n    public function getPivotAccessor()\n    {\n        return $this->accessor;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/AsPivot.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations\\Concerns;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\n\ntrait AsPivot\n{\n    /**\n     * The parent model of the relationship.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public $pivotParent;\n\n    /**\n     * The name of the foreign key column.\n     *\n     * @var string\n     */\n    protected $foreignKey;\n\n    /**\n     * The name of the \"other key\" column.\n     *\n     * @var string\n     */\n    protected $relatedKey;\n\n    /**\n     * Create a new pivot model instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  array   $attributes\n     * @param  string  $table\n     * @param  bool    $exists\n     * @return static\n     */\n    public static function fromAttributes(Model $parent, $attributes, $table, $exists = false)\n    {\n        $instance = new static;\n\n        $instance->timestamps = $instance->hasTimestampAttributes($attributes);\n\n        // The pivot model is a \"dynamic\" model since we will set the tables dynamically\n        // for the instance. This allows it work for any intermediate tables for the\n        // many to many relationship that are defined by this developer's classes.\n        $instance->setConnection($parent->getConnectionName())\n            ->setTable($table)\n            ->forceFill($attributes)\n            ->syncOriginal();\n\n        // We store off the parent instance so we will access the timestamp column names\n        // for the model, since the pivot model timestamps aren't easily configurable\n        // from the developer's point of view. We can use the parents to get these.\n        $instance->pivotParent = $parent;\n\n        $instance->exists = $exists;\n\n        return $instance;\n    }\n\n    /**\n     * Create a new pivot model from raw values returned from a query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  array   $attributes\n     * @param  string  $table\n     * @param  bool    $exists\n     * @return static\n     */\n    public static function fromRawAttributes(Model $parent, $attributes, $table, $exists = false)\n    {\n        $instance = static::fromAttributes($parent, [], $table, $exists);\n\n        $instance->timestamps = $instance->hasTimestampAttributes($attributes);\n\n        $instance->setRawAttributes($attributes, true);\n\n        return $instance;\n    }\n\n    /**\n     * Set the keys for a save update query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function setKeysForSaveQuery(Builder $query)\n    {\n        if (isset($this->attributes[$this->getKeyName()])) {\n            return parent::setKeysForSaveQuery($query);\n        }\n\n        $query->where($this->foreignKey, $this->getOriginal(\n            $this->foreignKey, $this->getAttribute($this->foreignKey)\n        ));\n\n        return $query->where($this->relatedKey, $this->getOriginal(\n            $this->relatedKey, $this->getAttribute($this->relatedKey)\n        ));\n    }\n\n    /**\n     * Delete the pivot model record from the database.\n     *\n     * @return int\n     */\n    public function delete()\n    {\n        if (isset($this->attributes[$this->getKeyName()])) {\n            return (int) parent::delete();\n        }\n\n        if ($this->fireModelEvent('deleting') === false) {\n            return 0;\n        }\n\n        $this->touchOwners();\n\n        return tap($this->getDeleteQuery()->delete(), function () {\n            $this->fireModelEvent('deleted', false);\n        });\n    }\n\n    /**\n     * Get the query builder for a delete operation on the pivot.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function getDeleteQuery()\n    {\n        return $this->newQueryWithoutRelationships()->where([\n            $this->foreignKey => $this->getOriginal($this->foreignKey, $this->getAttribute($this->foreignKey)),\n            $this->relatedKey => $this->getOriginal($this->relatedKey, $this->getAttribute($this->relatedKey)),\n        ]);\n    }\n\n    /**\n     * Get the table associated with the model.\n     *\n     * @return string\n     */\n    public function getTable()\n    {\n        if (! isset($this->table)) {\n            $this->setTable(str_replace(\n                '\\\\', '', Str::snake(Str::singular(class_basename($this)))\n            ));\n        }\n\n        return $this->table;\n    }\n\n    /**\n     * Get the foreign key column name.\n     *\n     * @return string\n     */\n    public function getForeignKey()\n    {\n        return $this->foreignKey;\n    }\n\n    /**\n     * Get the \"related key\" column name.\n     *\n     * @return string\n     */\n    public function getRelatedKey()\n    {\n        return $this->relatedKey;\n    }\n\n    /**\n     * Get the \"related key\" column name.\n     *\n     * @return string\n     */\n    public function getOtherKey()\n    {\n        return $this->getRelatedKey();\n    }\n\n    /**\n     * Set the key names for the pivot model instance.\n     *\n     * @param  string  $foreignKey\n     * @param  string  $relatedKey\n     * @return $this\n     */\n    public function setPivotKeys($foreignKey, $relatedKey)\n    {\n        $this->foreignKey = $foreignKey;\n\n        $this->relatedKey = $relatedKey;\n\n        return $this;\n    }\n\n    /**\n     * Determine if the pivot model or given attributes has timestamp attributes.\n     *\n     * @param  $attributes  array|null\n     * @return bool\n     */\n    public function hasTimestampAttributes($attributes = null)\n    {\n        return array_key_exists($this->getCreatedAtColumn(), $attributes ?? $this->attributes);\n    }\n\n    /**\n     * Get the name of the \"created at\" column.\n     *\n     * @return string\n     */\n    public function getCreatedAtColumn()\n    {\n        return $this->pivotParent\n            ? $this->pivotParent->getCreatedAtColumn()\n            : parent::getCreatedAtColumn();\n    }\n\n    /**\n     * Get the name of the \"updated at\" column.\n     *\n     * @return string\n     */\n    public function getUpdatedAtColumn()\n    {\n        return $this->pivotParent\n            ? $this->pivotParent->getUpdatedAtColumn()\n            : parent::getUpdatedAtColumn();\n    }\n\n    /**\n     * Get the queueable identity for the entity.\n     *\n     * @return mixed\n     */\n    public function getQueueableId()\n    {\n        if (isset($this->attributes[$this->getKeyName()])) {\n            return $this->getKey();\n        }\n\n        return sprintf(\n            '%s:%s:%s:%s',\n            $this->foreignKey, $this->getAttribute($this->foreignKey),\n            $this->relatedKey, $this->getAttribute($this->relatedKey)\n        );\n    }\n\n    /**\n     * Get a new query to restore one or more models by their queueable IDs.\n     *\n     * @param  int[]|string[]|string  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQueryForRestoration($ids)\n    {\n        if (is_array($ids)) {\n            return $this->newQueryForCollectionRestoration($ids);\n        }\n\n        if (! Str::contains($ids, ':')) {\n            return parent::newQueryForRestoration($ids);\n        }\n\n        $segments = explode(':', $ids);\n\n        return $this->newQueryWithoutScopes()\n            ->where($segments[0], $segments[1])\n            ->where($segments[2], $segments[3]);\n    }\n\n    /**\n     * Get a new query to restore multiple models by their queueable IDs.\n     *\n     * @param  int[]|string[]  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function newQueryForCollectionRestoration(array $ids)\n    {\n        if (! Str::contains($ids[0], ':')) {\n            return parent::newQueryForRestoration($ids);\n        }\n\n        $query = $this->newQueryWithoutScopes();\n\n        foreach ($ids as $id) {\n            $segments = explode(':', $id);\n\n            $query->orWhere(function ($query) use ($segments) {\n                return $query->where($segments[0], $segments[1])\n                    ->where($segments[2], $segments[3]);\n            });\n        }\n\n        return $query;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations\\Concerns;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\Pivot;\nuse Illuminate\\Support\\Collection as BaseCollection;\n\ntrait InteractsWithPivotTable\n{\n    /**\n     * The cached copy of the currently attached pivot models.\n     *\n     * @var Collection\n     */\n    private $currentlyAttached;\n\n    /**\n     * Toggles a model (or models) from the parent.\n     *\n     * Each existing model is detached, and non existing ones are attached.\n     *\n     * @param  mixed  $ids\n     * @param  bool   $touch\n     * @return array\n     */\n    public function toggle($ids, $touch = true)\n    {\n        $changes = [\n            'attached' => [], 'detached' => [],\n        ];\n\n        $records = $this->formatRecordsList($this->parseIds($ids));\n\n        // Next, we will determine which IDs should get removed from the join table by\n        // checking which of the given ID/records is in the list of current records\n        // and removing all of those rows from this \"intermediate\" joining table.\n        $detach = array_values(array_intersect(\n            $this->newPivotQuery()->pluck($this->relatedPivotKey)->all(),\n            array_keys($records)\n        ));\n\n        if (count($detach) > 0) {\n            $this->detach($detach, false);\n\n            $changes['detached'] = $this->castKeys($detach);\n        }\n\n        // Finally, for all of the records which were not \"detached\", we'll attach the\n        // records into the intermediate table. Then, we will add those attaches to\n        // this change list and get ready to return these results to the callers.\n        $attach = array_diff_key($records, array_flip($detach));\n\n        if (count($attach) > 0) {\n            $this->attach($attach, [], false);\n\n            $changes['attached'] = array_keys($attach);\n        }\n\n        // Once we have finished attaching or detaching the records, we will see if we\n        // have done any attaching or detaching, and if we have we will touch these\n        // relationships if they are configured to touch on any database updates.\n        if ($touch && (count($changes['attached']) ||\n                       count($changes['detached']))) {\n            $this->touchIfTouching();\n        }\n\n        return $changes;\n    }\n\n    /**\n     * Sync the intermediate tables with a list of IDs without detaching.\n     *\n     * @param  \\Illuminate\\Support\\Collection|\\Illuminate\\Database\\Eloquent\\Model|array  $ids\n     * @return array\n     */\n    public function syncWithoutDetaching($ids)\n    {\n        return $this->sync($ids, false);\n    }\n\n    /**\n     * Sync the intermediate tables with a list of IDs or collection of models.\n     *\n     * @param  \\Illuminate\\Support\\Collection|\\Illuminate\\Database\\Eloquent\\Model|array  $ids\n     * @param  bool   $detaching\n     * @return array\n     */\n    public function sync($ids, $detaching = true)\n    {\n        $changes = [\n            'attached' => [], 'detached' => [], 'updated' => [],\n        ];\n\n        // First we need to attach any of the associated models that are not currently\n        // in this joining table. We'll spin through the given IDs, checking to see\n        // if they exist in the array of current ones, and if not we will insert.\n        $current = $this->getCurrentlyAttachedPivots()\n                        ->pluck($this->relatedPivotKey)->all();\n\n        $detach = array_diff($current, array_keys(\n            $records = $this->formatRecordsList($this->parseIds($ids))\n        ));\n\n        // Next, we will take the differences of the currents and given IDs and detach\n        // all of the entities that exist in the \"current\" array but are not in the\n        // array of the new IDs given to the method which will complete the sync.\n        if ($detaching && count($detach) > 0) {\n            $this->detach($detach);\n\n            $changes['detached'] = $this->castKeys($detach);\n        }\n\n        // Now we are finally ready to attach the new records. Note that we'll disable\n        // touching until after the entire operation is complete so we don't fire a\n        // ton of touch operations until we are totally done syncing the records.\n        $changes = array_merge(\n            $changes, $this->attachNew($records, $current, false)\n        );\n\n        // Once we have finished attaching or detaching the records, we will see if we\n        // have done any attaching or detaching, and if we have we will touch these\n        // relationships if they are configured to touch on any database updates.\n        if (count($changes['attached']) ||\n            count($changes['updated'])) {\n            $this->touchIfTouching();\n        }\n\n        return $changes;\n    }\n\n    /**\n     * Format the sync / toggle record list so that it is keyed by ID.\n     *\n     * @param  array  $records\n     * @return array\n     */\n    protected function formatRecordsList(array $records)\n    {\n        return collect($records)->mapWithKeys(function ($attributes, $id) {\n            if (! is_array($attributes)) {\n                [$id, $attributes] = [$attributes, []];\n            }\n\n            return [$id => $attributes];\n        })->all();\n    }\n\n    /**\n     * Attach all of the records that aren't in the given current records.\n     *\n     * @param  array  $records\n     * @param  array  $current\n     * @param  bool   $touch\n     * @return array\n     */\n    protected function attachNew(array $records, array $current, $touch = true)\n    {\n        $changes = ['attached' => [], 'updated' => []];\n\n        foreach ($records as $id => $attributes) {\n            // If the ID is not in the list of existing pivot IDs, we will insert a new pivot\n            // record, otherwise, we will just update this existing record on this joining\n            // table, so that the developers will easily update these records pain free.\n            if (! in_array($id, $current)) {\n                $this->attach($id, $attributes, $touch);\n\n                $changes['attached'][] = $this->castKey($id);\n            }\n\n            // Now we'll try to update an existing pivot record with the attributes that were\n            // given to the method. If the model is actually updated we will add it to the\n            // list of updated pivot records so we return them back out to the consumer.\n            elseif (count($attributes) > 0 &&\n                $this->updateExistingPivot($id, $attributes, $touch)) {\n                $changes['updated'][] = $this->castKey($id);\n            }\n        }\n\n        return $changes;\n    }\n\n    /**\n     * Update an existing pivot record on the table.\n     *\n     * @param  mixed  $id\n     * @param  array  $attributes\n     * @param  bool   $touch\n     * @return int\n     */\n    public function updateExistingPivot($id, array $attributes, $touch = true)\n    {\n        if ($this->using && empty($this->pivotWheres) && empty($this->pivotWhereIns)) {\n            return $this->updateExistingPivotUsingCustomClass($id, $attributes, $touch);\n        }\n\n        if (in_array($this->updatedAt(), $this->pivotColumns)) {\n            $attributes = $this->addTimestampsToAttachment($attributes, true);\n        }\n\n        $updated = $this->newPivotStatementForId($this->parseId($id))->update(\n            $this->castAttributes($attributes)\n        );\n\n        if ($touch) {\n            $this->touchIfTouching();\n        }\n\n        return $updated;\n    }\n\n    /**\n     * Update an existing pivot record on the table via a custom class.\n     *\n     * @param  mixed  $id\n     * @param  array  $attributes\n     * @param  bool   $touch\n     * @return int\n     */\n    protected function updateExistingPivotUsingCustomClass($id, array $attributes, $touch)\n    {\n        $updated = $this->getCurrentlyAttachedPivots()\n                    ->where($this->foreignPivotKey, $this->parent->{$this->parentKey})\n                    ->where($this->relatedPivotKey, $this->parseId($id))\n                    ->first()\n                    ->fill($attributes)\n                    ->isDirty();\n\n        $this->newPivot([\n            $this->foreignPivotKey => $this->parent->{$this->parentKey},\n            $this->relatedPivotKey => $this->parseId($id),\n        ], true)->fill($attributes)->save();\n\n        if ($touch) {\n            $this->touchIfTouching();\n        }\n\n        return (int) $updated;\n    }\n\n    /**\n     * Attach a model to the parent.\n     *\n     * @param  mixed  $id\n     * @param  array  $attributes\n     * @param  bool   $touch\n     * @return void\n     */\n    public function attach($id, array $attributes = [], $touch = true)\n    {\n        if ($this->using) {\n            $this->attachUsingCustomClass($id, $attributes);\n        } else {\n            // Here we will insert the attachment records into the pivot table. Once we have\n            // inserted the records, we will touch the relationships if necessary and the\n            // function will return. We can parse the IDs before inserting the records.\n            $this->newPivotStatement()->insert($this->formatAttachRecords(\n                $this->parseIds($id), $attributes\n            ));\n        }\n\n        if ($touch) {\n            $this->touchIfTouching();\n        }\n    }\n\n    /**\n     * Attach a model to the parent using a custom class.\n     *\n     * @param  mixed  $id\n     * @param  array  $attributes\n     * @return void\n     */\n    protected function attachUsingCustomClass($id, array $attributes)\n    {\n        $records = $this->formatAttachRecords(\n            $this->parseIds($id), $attributes\n        );\n\n        foreach ($records as $record) {\n            $this->newPivot($record, false)->save();\n        }\n    }\n\n    /**\n     * Create an array of records to insert into the pivot table.\n     *\n     * @param  array  $ids\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function formatAttachRecords($ids, array $attributes)\n    {\n        $records = [];\n\n        $hasTimestamps = ($this->hasPivotColumn($this->createdAt()) ||\n                  $this->hasPivotColumn($this->updatedAt()));\n\n        // To create the attachment records, we will simply spin through the IDs given\n        // and create a new record to insert for each ID. Each ID may actually be a\n        // key in the array, with extra attributes to be placed in other columns.\n        foreach ($ids as $key => $value) {\n            $records[] = $this->formatAttachRecord(\n                $key, $value, $attributes, $hasTimestamps\n            );\n        }\n\n        return $records;\n    }\n\n    /**\n     * Create a full attachment record payload.\n     *\n     * @param  int    $key\n     * @param  mixed  $value\n     * @param  array  $attributes\n     * @param  bool   $hasTimestamps\n     * @return array\n     */\n    protected function formatAttachRecord($key, $value, $attributes, $hasTimestamps)\n    {\n        [$id, $attributes] = $this->extractAttachIdAndAttributes($key, $value, $attributes);\n\n        return array_merge(\n            $this->baseAttachRecord($id, $hasTimestamps), $this->castAttributes($attributes)\n        );\n    }\n\n    /**\n     * Get the attach record ID and extra attributes.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @param  array  $attributes\n     * @return array\n     */\n    protected function extractAttachIdAndAttributes($key, $value, array $attributes)\n    {\n        return is_array($value)\n                    ? [$key, array_merge($value, $attributes)]\n                    : [$value, $attributes];\n    }\n\n    /**\n     * Create a new pivot attachment record.\n     *\n     * @param  int   $id\n     * @param  bool  $timed\n     * @return array\n     */\n    protected function baseAttachRecord($id, $timed)\n    {\n        $record[$this->relatedPivotKey] = $id;\n\n        $record[$this->foreignPivotKey] = $this->parent->{$this->parentKey};\n\n        // If the record needs to have creation and update timestamps, we will make\n        // them by calling the parent model's \"freshTimestamp\" method which will\n        // provide us with a fresh timestamp in this model's preferred format.\n        if ($timed) {\n            $record = $this->addTimestampsToAttachment($record);\n        }\n\n        foreach ($this->pivotValues as $value) {\n            $record[$value['column']] = $value['value'];\n        }\n\n        return $record;\n    }\n\n    /**\n     * Set the creation and update timestamps on an attach record.\n     *\n     * @param  array  $record\n     * @param  bool   $exists\n     * @return array\n     */\n    protected function addTimestampsToAttachment(array $record, $exists = false)\n    {\n        $fresh = $this->parent->freshTimestamp();\n\n        if ($this->using) {\n            $pivotModel = new $this->using;\n\n            $fresh = $fresh->format($pivotModel->getDateFormat());\n        }\n\n        if (! $exists && $this->hasPivotColumn($this->createdAt())) {\n            $record[$this->createdAt()] = $fresh;\n        }\n\n        if ($this->hasPivotColumn($this->updatedAt())) {\n            $record[$this->updatedAt()] = $fresh;\n        }\n\n        return $record;\n    }\n\n    /**\n     * Determine whether the given column is defined as a pivot column.\n     *\n     * @param  string  $column\n     * @return bool\n     */\n    protected function hasPivotColumn($column)\n    {\n        return in_array($column, $this->pivotColumns);\n    }\n\n    /**\n     * Detach models from the relationship.\n     *\n     * @param  mixed  $ids\n     * @param  bool  $touch\n     * @return int\n     */\n    public function detach($ids = null, $touch = true)\n    {\n        if ($this->using && ! empty($ids) && empty($this->pivotWheres) && empty($this->pivotWhereIns)) {\n            $results = $this->detachUsingCustomClass($ids);\n        } else {\n            $query = $this->newPivotQuery();\n\n            // If associated IDs were passed to the method we will only delete those\n            // associations, otherwise all of the association ties will be broken.\n            // We'll return the numbers of affected rows when we do the deletes.\n            if (! is_null($ids)) {\n                $ids = $this->parseIds($ids);\n\n                if (empty($ids)) {\n                    return 0;\n                }\n\n                $query->whereIn($this->relatedPivotKey, (array) $ids);\n            }\n\n            // Once we have all of the conditions set on the statement, we are ready\n            // to run the delete on the pivot table. Then, if the touch parameter\n            // is true, we will go ahead and touch all related models to sync.\n            $results = $query->delete();\n        }\n\n        if ($touch) {\n            $this->touchIfTouching();\n        }\n\n        return $results;\n    }\n\n    /**\n     * Detach models from the relationship using a custom class.\n     *\n     * @param  mixed  $ids\n     * @return int\n     */\n    protected function detachUsingCustomClass($ids)\n    {\n        $results = 0;\n\n        foreach ($this->parseIds($ids) as $id) {\n            $results += $this->newPivot([\n                $this->foreignPivotKey => $this->parent->{$this->parentKey},\n                $this->relatedPivotKey => $id,\n            ], true)->delete();\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get the pivot models that are currently attached.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function getCurrentlyAttachedPivots()\n    {\n        return $this->currentlyAttached ?: $this->newPivotQuery()->get()->map(function ($record) {\n            $class = $this->using ? $this->using : Pivot::class;\n\n            return (new $class)->setRawAttributes((array) $record, true);\n        });\n    }\n\n    /**\n     * Create a new pivot model instance.\n     *\n     * @param  array  $attributes\n     * @param  bool   $exists\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Pivot\n     */\n    public function newPivot(array $attributes = [], $exists = false)\n    {\n        $pivot = $this->related->newPivot(\n            $this->parent, $attributes, $this->table, $exists, $this->using\n        );\n\n        return $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey);\n    }\n\n    /**\n     * Create a new existing pivot model instance.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Pivot\n     */\n    public function newExistingPivot(array $attributes = [])\n    {\n        return $this->newPivot($attributes, true);\n    }\n\n    /**\n     * Get a new plain query builder for the pivot table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function newPivotStatement()\n    {\n        return $this->query->getQuery()->newQuery()->from($this->table);\n    }\n\n    /**\n     * Get a new pivot statement for a given \"other\" ID.\n     *\n     * @param  mixed  $id\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function newPivotStatementForId($id)\n    {\n        return $this->newPivotQuery()->whereIn($this->relatedPivotKey, $this->parseIds($id));\n    }\n\n    /**\n     * Create a new query builder for the pivot table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function newPivotQuery()\n    {\n        $query = $this->newPivotStatement();\n\n        foreach ($this->pivotWheres as $arguments) {\n            call_user_func_array([$query, 'where'], $arguments);\n        }\n\n        foreach ($this->pivotWhereIns as $arguments) {\n            call_user_func_array([$query, 'whereIn'], $arguments);\n        }\n\n        return $query->where($this->foreignPivotKey, $this->parent->{$this->parentKey});\n    }\n\n    /**\n     * Set the columns on the pivot table to retrieve.\n     *\n     * @param  array|mixed  $columns\n     * @return $this\n     */\n    public function withPivot($columns)\n    {\n        $this->pivotColumns = array_merge(\n            $this->pivotColumns, is_array($columns) ? $columns : func_get_args()\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get all of the IDs from the given mixed value.\n     *\n     * @param  mixed  $value\n     * @return array\n     */\n    protected function parseIds($value)\n    {\n        if ($value instanceof Model) {\n            return [$value->{$this->relatedKey}];\n        }\n\n        if ($value instanceof Collection) {\n            return $value->pluck($this->relatedKey)->all();\n        }\n\n        if ($value instanceof BaseCollection) {\n            return $value->toArray();\n        }\n\n        return (array) $value;\n    }\n\n    /**\n     * Get the ID from the given mixed value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function parseId($value)\n    {\n        return $value instanceof Model ? $value->{$this->relatedKey} : $value;\n    }\n\n    /**\n     * Cast the given keys to integers if they are numeric and string otherwise.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    protected function castKeys(array $keys)\n    {\n        return array_map(function ($v) {\n            return $this->castKey($v);\n        }, $keys);\n    }\n\n    /**\n     * Cast the given key to convert to primary key type.\n     *\n     * @param  mixed  $key\n     * @return mixed\n     */\n    protected function castKey($key)\n    {\n        return $this->getTypeSwapValue(\n            $this->related->getKeyType(),\n            $key\n        );\n    }\n\n    /**\n     * Cast the given pivot attributes.\n     *\n     * @param  array $attributes\n     * @return array\n     */\n    protected function castAttributes($attributes)\n    {\n        return $this->using\n                    ? $this->newPivot()->fill($attributes)->getAttributes()\n                    : $attributes;\n    }\n\n    /**\n     * Converts a given value to a given type value.\n     *\n     * @param  string $type\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function getTypeSwapValue($type, $value)\n    {\n        switch (strtolower($type)) {\n            case 'int':\n            case 'integer':\n                return (int) $value;\n            case 'real':\n            case 'float':\n            case 'double':\n                return (float) $value;\n            case 'string':\n                return (string) $value;\n            default:\n                return $value;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Concerns/SupportsDefaultModels.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations\\Concerns;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\ntrait SupportsDefaultModels\n{\n    /**\n     * Indicates if a default model instance should be used.\n     *\n     * Alternatively, may be a Closure or array.\n     *\n     * @var \\Closure|array|bool\n     */\n    protected $withDefault;\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    abstract protected function newRelatedInstanceFor(Model $parent);\n\n    /**\n     * Return a new model instance in case the relationship does not exist.\n     *\n     * @param  \\Closure|array|bool  $callback\n     * @return $this\n     */\n    public function withDefault($callback = true)\n    {\n        $this->withDefault = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get the default value for this relation.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model|null\n     */\n    protected function getDefaultFor(Model $parent)\n    {\n        if (! $this->withDefault) {\n            return;\n        }\n\n        $instance = $this->newRelatedInstanceFor($parent);\n\n        if (is_callable($this->withDefault)) {\n            return call_user_func($this->withDefault, $instance, $parent) ?: $instance;\n        }\n\n        if (is_array($this->withDefault)) {\n            $instance->forceFill($this->withDefault);\n        }\n\n        return $instance;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Collection;\n\nclass HasMany extends HasOneOrMany\n{\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        return ! is_null($this->getParentKey())\n                ? $this->query->get()\n                : $this->related->newCollection();\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->related->newCollection());\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        return $this->matchMany($models, $results, $relation);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasManyThrough.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\SoftDeletes;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\n\nclass HasManyThrough extends Relation\n{\n    /**\n     * The \"through\" parent model instance.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected $throughParent;\n\n    /**\n     * The far parent model instance.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected $farParent;\n\n    /**\n     * The near key on the relationship.\n     *\n     * @var string\n     */\n    protected $firstKey;\n\n    /**\n     * The far key on the relationship.\n     *\n     * @var string\n     */\n    protected $secondKey;\n\n    /**\n     * The local key on the relationship.\n     *\n     * @var string\n     */\n    protected $localKey;\n\n    /**\n     * The local key on the intermediary model.\n     *\n     * @var string\n     */\n    protected $secondLocalKey;\n\n    /**\n     * The count of self joins.\n     *\n     * @var int\n     */\n    protected static $selfJoinCount = 0;\n\n    /**\n     * Create a new has many through relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $farParent\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $throughParent\n     * @param  string  $firstKey\n     * @param  string  $secondKey\n     * @param  string  $localKey\n     * @param  string  $secondLocalKey\n     * @return void\n     */\n    public function __construct(Builder $query, Model $farParent, Model $throughParent, $firstKey, $secondKey, $localKey, $secondLocalKey)\n    {\n        $this->localKey = $localKey;\n        $this->firstKey = $firstKey;\n        $this->secondKey = $secondKey;\n        $this->farParent = $farParent;\n        $this->throughParent = $throughParent;\n        $this->secondLocalKey = $secondLocalKey;\n\n        parent::__construct($query, $throughParent);\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    public function addConstraints()\n    {\n        $localValue = $this->farParent[$this->localKey];\n\n        $this->performJoin();\n\n        if (static::$constraints) {\n            $this->query->where($this->getQualifiedFirstKeyName(), '=', $localValue);\n        }\n    }\n\n    /**\n     * Set the join clause on the query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder|null  $query\n     * @return void\n     */\n    protected function performJoin(Builder $query = null)\n    {\n        $query = $query ?: $this->query;\n\n        $farKey = $this->getQualifiedFarKeyName();\n\n        $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $farKey);\n\n        if ($this->throughParentSoftDeletes()) {\n            $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn());\n        }\n    }\n\n    /**\n     * Get the fully qualified parent key name.\n     *\n     * @return string\n     */\n    public function getQualifiedParentKeyName()\n    {\n        return $this->parent->qualifyColumn($this->secondLocalKey);\n    }\n\n    /**\n     * Determine whether \"through\" parent of the relation uses Soft Deletes.\n     *\n     * @return bool\n     */\n    public function throughParentSoftDeletes()\n    {\n        return in_array(SoftDeletes::class, class_uses_recursive($this->throughParent));\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        $whereIn = $this->whereInMethod($this->farParent, $this->localKey);\n\n        $this->query->{$whereIn}(\n            $this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey)\n        );\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->related->newCollection());\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        $dictionary = $this->buildDictionary($results);\n\n        // Once we have the dictionary we can simply spin through the parent models to\n        // link them up with their children using the keyed dictionary to make the\n        // matching very convenient and easy work. Then we'll just return them.\n        foreach ($models as $model) {\n            if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) {\n                $model->setRelation(\n                    $relation, $this->related->newCollection($dictionary[$key])\n                );\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Build model dictionary keyed by the relation's foreign key.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @return array\n     */\n    protected function buildDictionary(Collection $results)\n    {\n        $dictionary = [];\n\n        // First we will create a dictionary of models keyed by the foreign key of the\n        // relationship as this will allow us to quickly access all of the related\n        // models without having to do nested looping which will be quite slow.\n        foreach ($results as $result) {\n            $dictionary[$result->laravel_through_key][] = $result;\n        }\n\n        return $dictionary;\n    }\n\n    /**\n     * Get the first related model record matching the attributes or instantiate it.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function firstOrNew(array $attributes)\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            $instance = $this->related->newInstance($attributes);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create or update a related record matching the attributes, and fill it with values.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function updateOrCreate(array $attributes, array $values = [])\n    {\n        $instance = $this->firstOrNew($attributes);\n\n        $instance->fill($values)->save();\n\n        return $instance;\n    }\n\n    /**\n     * Execute the query and get the first related model.\n     *\n     * @param  array   $columns\n     * @return mixed\n     */\n    public function first($columns = ['*'])\n    {\n        $results = $this->take(1)->get($columns);\n\n        return count($results) > 0 ? $results->first() : null;\n    }\n\n    /**\n     * Execute the query and get the first result or throw an exception.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|static\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function firstOrFail($columns = ['*'])\n    {\n        if (! is_null($model = $this->first($columns))) {\n            return $model;\n        }\n\n        throw (new ModelNotFoundException)->setModel(get_class($this->related));\n    }\n\n    /**\n     * Find a related model by its primary key.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection|null\n     */\n    public function find($id, $columns = ['*'])\n    {\n        if (is_array($id)) {\n            return $this->findMany($id, $columns);\n        }\n\n        return $this->where(\n            $this->getRelated()->getQualifiedKeyName(), '=', $id\n        )->first($columns);\n    }\n\n    /**\n     * Find multiple related models by their primary keys.\n     *\n     * @param  mixed  $ids\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function findMany($ids, $columns = ['*'])\n    {\n        if (empty($ids)) {\n            return $this->getRelated()->newCollection();\n        }\n\n        return $this->whereIn(\n            $this->getRelated()->getQualifiedKeyName(), $ids\n        )->get($columns);\n    }\n\n    /**\n     * Find a related model by its primary key or throw an exception.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Model|\\Illuminate\\Database\\Eloquent\\Collection\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function findOrFail($id, $columns = ['*'])\n    {\n        $result = $this->find($id, $columns);\n\n        if (is_array($id)) {\n            if (count($result) === count(array_unique($id))) {\n                return $result;\n            }\n        } elseif (! is_null($result)) {\n            return $result;\n        }\n\n        throw (new ModelNotFoundException)->setModel(get_class($this->related), $id);\n    }\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        return ! is_null($this->farParent->{$this->localKey})\n                ? $this->get()\n                : $this->related->newCollection();\n    }\n\n    /**\n     * Execute the query as a \"select\" statement.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function get($columns = ['*'])\n    {\n        $builder = $this->prepareQueryBuilder($columns);\n\n        $models = $builder->getModels();\n\n        // If we actually found models we will also eager load any relationships that\n        // have been specified as needing to be eager loaded. This will solve the\n        // n + 1 query problem for the developer and also increase performance.\n        if (count($models) > 0) {\n            $models = $builder->eagerLoadRelations($models);\n        }\n\n        return $this->related->newCollection($models);\n    }\n\n    /**\n     * Get a paginator for the \"select\" statement.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\n     */\n    public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $this->query->addSelect($this->shouldSelect($columns));\n\n        return $this->query->paginate($perPage, $columns, $pageName, $page);\n    }\n\n    /**\n     * Paginate the given query into a simple paginator.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n     */\n    public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $this->query->addSelect($this->shouldSelect($columns));\n\n        return $this->query->simplePaginate($perPage, $columns, $pageName, $page);\n    }\n\n    /**\n     * Set the select clause for the relation query.\n     *\n     * @param  array  $columns\n     * @return array\n     */\n    protected function shouldSelect(array $columns = ['*'])\n    {\n        if ($columns == ['*']) {\n            $columns = [$this->related->getTable().'.*'];\n        }\n\n        return array_merge($columns, [$this->getQualifiedFirstKeyName().' as laravel_through_key']);\n    }\n\n    /**\n     * Chunk the results of the query.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @return bool\n     */\n    public function chunk($count, callable $callback)\n    {\n        return $this->prepareQueryBuilder()->chunk($count, $callback);\n    }\n\n    /**\n     * Chunk the results of a query by comparing numeric IDs.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @param  string|null  $column\n     * @param  string|null  $alias\n     * @return bool\n     */\n    public function chunkById($count, callable $callback, $column = null, $alias = null)\n    {\n        $column = $column ?? $this->getRelated()->getQualifiedKeyName();\n\n        $alias = $alias ?? $this->getRelated()->getKeyName();\n\n        return $this->prepareQueryBuilder()->chunkById($count, $callback, $column, $alias);\n    }\n\n    /**\n     * Get a generator for the given query.\n     *\n     * @return \\Generator\n     */\n    public function cursor()\n    {\n        return $this->prepareQueryBuilder()->cursor();\n    }\n\n    /**\n     * Execute a callback over each item while chunking.\n     *\n     * @param  callable  $callback\n     * @param  int  $count\n     * @return bool\n     */\n    public function each(callable $callback, $count = 1000)\n    {\n        return $this->chunk($count, function ($results) use ($callback) {\n            foreach ($results as $key => $value) {\n                if ($callback($value, $key) === false) {\n                    return false;\n                }\n            }\n        });\n    }\n\n    /**\n     * Prepare the query builder for query execution.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function prepareQueryBuilder($columns = ['*'])\n    {\n        $builder = $this->query->applyScopes();\n\n        return $builder->addSelect(\n            $this->shouldSelect($builder->getQuery()->columns ? [] : $columns)\n        );\n    }\n\n    /**\n     * Add the constraints for a relationship query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        if ($parentQuery->getQuery()->from === $query->getQuery()->from) {\n            return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns);\n        }\n\n        if ($parentQuery->getQuery()->from === $this->throughParent->getTable()) {\n            return $this->getRelationExistenceQueryForThroughSelfRelation($query, $parentQuery, $columns);\n        }\n\n        $this->performJoin($query);\n\n        return $query->select($columns)->whereColumn(\n            $this->getQualifiedLocalKeyName(), '=', $this->getQualifiedFirstKeyName()\n        );\n    }\n\n    /**\n     * Add the constraints for a relationship query on the same table.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash());\n\n        $query->join($this->throughParent->getTable(), $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->secondKey);\n\n        if ($this->throughParentSoftDeletes()) {\n            $query->whereNull($this->throughParent->getQualifiedDeletedAtColumn());\n        }\n\n        $query->getModel()->setTable($hash);\n\n        return $query->select($columns)->whereColumn(\n            $parentQuery->getQuery()->from.'.'.$this->localKey, '=', $this->getQualifiedFirstKeyName()\n        );\n    }\n\n    /**\n     * Add the constraints for a relationship query on the same table as the through parent.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQueryForThroughSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        $table = $this->throughParent->getTable().' as '.$hash = $this->getRelationCountHash();\n\n        $query->join($table, $hash.'.'.$this->secondLocalKey, '=', $this->getQualifiedFarKeyName());\n\n        if ($this->throughParentSoftDeletes()) {\n            $query->whereNull($hash.'.'.$this->throughParent->getDeletedAtColumn());\n        }\n\n        return $query->select($columns)->whereColumn(\n            $parentQuery->getQuery()->from.'.'.$this->localKey, '=', $hash.'.'.$this->firstKey\n        );\n    }\n\n    /**\n     * Get a relationship join table hash.\n     *\n     * @return string\n     */\n    public function getRelationCountHash()\n    {\n        return 'laravel_reserved_'.static::$selfJoinCount++;\n    }\n\n    /**\n     * Get the qualified foreign key on the related model.\n     *\n     * @return string\n     */\n    public function getQualifiedFarKeyName()\n    {\n        return $this->getQualifiedForeignKeyName();\n    }\n\n    /**\n     * Get the foreign key on the \"through\" model.\n     *\n     * @return string\n     */\n    public function getFirstKeyName()\n    {\n        return $this->firstKey;\n    }\n\n    /**\n     * Get the qualified foreign key on the \"through\" model.\n     *\n     * @return string\n     */\n    public function getQualifiedFirstKeyName()\n    {\n        return $this->throughParent->qualifyColumn($this->firstKey);\n    }\n\n    /**\n     * Get the foreign key on the related model.\n     *\n     * @return string\n     */\n    public function getForeignKeyName()\n    {\n        return $this->secondKey;\n    }\n\n    /**\n     * Get the qualified foreign key on the related model.\n     *\n     * @return string\n     */\n    public function getQualifiedForeignKeyName()\n    {\n        return $this->related->qualifyColumn($this->secondKey);\n    }\n\n    /**\n     * Get the local key on the far parent model.\n     *\n     * @return string\n     */\n    public function getLocalKeyName()\n    {\n        return $this->localKey;\n    }\n\n    /**\n     * Get the qualified local key on the far parent model.\n     *\n     * @return string\n     */\n    public function getQualifiedLocalKeyName()\n    {\n        return $this->farParent->qualifyColumn($this->localKey);\n    }\n\n    /**\n     * Get the local key on the intermediary model.\n     *\n     * @return string\n     */\n    public function getSecondLocalKeyName()\n    {\n        return $this->secondLocalKey;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOne.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels;\n\nclass HasOne extends HasOneOrMany\n{\n    use SupportsDefaultModels;\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        if (is_null($this->getParentKey())) {\n            return $this->getDefaultFor($this->parent);\n        }\n\n        return $this->query->first() ?: $this->getDefaultFor($this->parent);\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->getDefaultFor($model));\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array  $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        return $this->matchOne($models, $results, $relation);\n    }\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function newRelatedInstanceFor(Model $parent)\n    {\n        return $this->related->newInstance()->setAttribute(\n            $this->getForeignKeyName(), $parent->{$this->localKey}\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\n\nabstract class HasOneOrMany extends Relation\n{\n    /**\n     * The foreign key of the parent model.\n     *\n     * @var string\n     */\n    protected $foreignKey;\n\n    /**\n     * The local key of the parent model.\n     *\n     * @var string\n     */\n    protected $localKey;\n\n    /**\n     * The count of self joins.\n     *\n     * @var int\n     */\n    protected static $selfJoinCount = 0;\n\n    /**\n     * Create a new has one or many relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $foreignKey\n     * @param  string  $localKey\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent, $foreignKey, $localKey)\n    {\n        $this->localKey = $localKey;\n        $this->foreignKey = $foreignKey;\n\n        parent::__construct($query, $parent);\n    }\n\n    /**\n     * Create and return an un-saved instance of the related model.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function make(array $attributes = [])\n    {\n        return tap($this->related->newInstance($attributes), function ($instance) {\n            $this->setForeignAttributesForCreate($instance);\n        });\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    public function addConstraints()\n    {\n        if (static::$constraints) {\n            $this->query->where($this->foreignKey, '=', $this->getParentKey());\n\n            $this->query->whereNotNull($this->foreignKey);\n        }\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        $whereIn = $this->whereInMethod($this->parent, $this->localKey);\n\n        $this->query->{$whereIn}(\n            $this->foreignKey, $this->getKeys($models, $this->localKey)\n        );\n    }\n\n    /**\n     * Match the eagerly loaded results to their single parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function matchOne(array $models, Collection $results, $relation)\n    {\n        return $this->matchOneOrMany($models, $results, $relation, 'one');\n    }\n\n    /**\n     * Match the eagerly loaded results to their many parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function matchMany(array $models, Collection $results, $relation)\n    {\n        return $this->matchOneOrMany($models, $results, $relation, 'many');\n    }\n\n    /**\n     * Match the eagerly loaded results to their many parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @param  string  $type\n     * @return array\n     */\n    protected function matchOneOrMany(array $models, Collection $results, $relation, $type)\n    {\n        $dictionary = $this->buildDictionary($results);\n\n        // Once we have the dictionary we can simply spin through the parent models to\n        // link them up with their children using the keyed dictionary to make the\n        // matching very convenient and easy work. Then we'll just return them.\n        foreach ($models as $model) {\n            if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) {\n                $model->setRelation(\n                    $relation, $this->getRelationValue($dictionary, $key, $type)\n                );\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Get the value of a relationship by one or many type.\n     *\n     * @param  array   $dictionary\n     * @param  string  $key\n     * @param  string  $type\n     * @return mixed\n     */\n    protected function getRelationValue(array $dictionary, $key, $type)\n    {\n        $value = $dictionary[$key];\n\n        return $type === 'one' ? reset($value) : $this->related->newCollection($value);\n    }\n\n    /**\n     * Build model dictionary keyed by the relation's foreign key.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @return array\n     */\n    protected function buildDictionary(Collection $results)\n    {\n        $foreign = $this->getForeignKeyName();\n\n        return $results->mapToDictionary(function ($result) use ($foreign) {\n            return [$result->{$foreign} => $result];\n        })->all();\n    }\n\n    /**\n     * Find a model by its primary key or return new instance of the related model.\n     *\n     * @param  mixed  $id\n     * @param  array  $columns\n     * @return \\Illuminate\\Support\\Collection|\\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function findOrNew($id, $columns = ['*'])\n    {\n        if (is_null($instance = $this->find($id, $columns))) {\n            $instance = $this->related->newInstance();\n\n            $this->setForeignAttributesForCreate($instance);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Get the first related model record matching the attributes or instantiate it.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function firstOrNew(array $attributes, array $values = [])\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            $instance = $this->related->newInstance($attributes + $values);\n\n            $this->setForeignAttributesForCreate($instance);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Get the first related record matching the attributes or create it.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function firstOrCreate(array $attributes, array $values = [])\n    {\n        if (is_null($instance = $this->where($attributes)->first())) {\n            $instance = $this->create($attributes + $values);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create or update a related record matching the attributes, and fill it with values.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function updateOrCreate(array $attributes, array $values = [])\n    {\n        return tap($this->firstOrNew($attributes), function ($instance) use ($values) {\n            $instance->fill($values);\n\n            $instance->save();\n        });\n    }\n\n    /**\n     * Attach a model instance to the parent model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return \\Illuminate\\Database\\Eloquent\\Model|false\n     */\n    public function save(Model $model)\n    {\n        $this->setForeignAttributesForCreate($model);\n\n        return $model->save() ? $model : false;\n    }\n\n    /**\n     * Attach a collection of models to the parent instance.\n     *\n     * @param  iterable  $models\n     * @return iterable\n     */\n    public function saveMany($models)\n    {\n        foreach ($models as $model) {\n            $this->save($model);\n        }\n\n        return $models;\n    }\n\n    /**\n     * Create a new instance of the related model.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function create(array $attributes = [])\n    {\n        return tap($this->related->newInstance($attributes), function ($instance) {\n            $this->setForeignAttributesForCreate($instance);\n\n            $instance->save();\n        });\n    }\n\n    /**\n     * Create a Collection of new instances of the related model.\n     *\n     * @param  array  $records\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function createMany(array $records)\n    {\n        $instances = $this->related->newCollection();\n\n        foreach ($records as $record) {\n            $instances->push($this->create($record));\n        }\n\n        return $instances;\n    }\n\n    /**\n     * Set the foreign ID for creating a related model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return void\n     */\n    protected function setForeignAttributesForCreate(Model $model)\n    {\n        $model->setAttribute($this->getForeignKeyName(), $this->getParentKey());\n    }\n\n    /**\n     * Add the constraints for a relationship query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        if ($query->getQuery()->from == $parentQuery->getQuery()->from) {\n            return $this->getRelationExistenceQueryForSelfRelation($query, $parentQuery, $columns);\n        }\n\n        return parent::getRelationExistenceQuery($query, $parentQuery, $columns);\n    }\n\n    /**\n     * Add the constraints for a relationship query on the same table.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQueryForSelfRelation(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        $query->from($query->getModel()->getTable().' as '.$hash = $this->getRelationCountHash());\n\n        $query->getModel()->setTable($hash);\n\n        return $query->select($columns)->whereColumn(\n            $this->getQualifiedParentKeyName(), '=', $hash.'.'.$this->getForeignKeyName()\n        );\n    }\n\n    /**\n     * Get a relationship join table hash.\n     *\n     * @return string\n     */\n    public function getRelationCountHash()\n    {\n        return 'laravel_reserved_'.static::$selfJoinCount++;\n    }\n\n    /**\n     * Get the key for comparing against the parent key in \"has\" query.\n     *\n     * @return string\n     */\n    public function getExistenceCompareKey()\n    {\n        return $this->getQualifiedForeignKeyName();\n    }\n\n    /**\n     * Get the key value of the parent's local key.\n     *\n     * @return mixed\n     */\n    public function getParentKey()\n    {\n        return $this->parent->getAttribute($this->localKey);\n    }\n\n    /**\n     * Get the fully qualified parent key name.\n     *\n     * @return string\n     */\n    public function getQualifiedParentKeyName()\n    {\n        return $this->parent->qualifyColumn($this->localKey);\n    }\n\n    /**\n     * Get the plain foreign key.\n     *\n     * @return string\n     */\n    public function getForeignKeyName()\n    {\n        $segments = explode('.', $this->getQualifiedForeignKeyName());\n\n        return end($segments);\n    }\n\n    /**\n     * Get the foreign key for the relationship.\n     *\n     * @return string\n     */\n    public function getQualifiedForeignKeyName()\n    {\n        return $this->foreignKey;\n    }\n\n    /**\n     * Get the local key for the relationship.\n     *\n     * @return string\n     */\n    public function getLocalKeyName()\n    {\n        return $this->localKey;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneThrough.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels;\n\nclass HasOneThrough extends HasManyThrough\n{\n    use SupportsDefaultModels;\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        return $this->first() ?: $this->getDefaultFor($this->farParent);\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->getDefaultFor($model));\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        $dictionary = $this->buildDictionary($results);\n\n        // Once we have the dictionary we can simply spin through the parent models to\n        // link them up with their children using the keyed dictionary to make the\n        // matching very convenient and easy work. Then we'll just return them.\n        foreach ($models as $model) {\n            if (isset($dictionary[$key = $model->getAttribute($this->localKey)])) {\n                $value = $dictionary[$key];\n                $model->setRelation(\n                    $relation, reset($value)\n                );\n            }\n        }\n\n        return $models;\n    }\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function newRelatedInstanceFor(Model $parent)\n    {\n        return $this->related->newInstance();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Collection;\n\nclass MorphMany extends MorphOneOrMany\n{\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        return ! is_null($this->getParentKey())\n                ? $this->query->get()\n                : $this->related->newCollection();\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->related->newCollection());\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        return $this->matchMany($models, $results, $relation);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOne.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Database\\Eloquent\\Relations\\Concerns\\SupportsDefaultModels;\n\nclass MorphOne extends MorphOneOrMany\n{\n    use SupportsDefaultModels;\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    public function getResults()\n    {\n        if (is_null($this->getParentKey())) {\n            return $this->getDefaultFor($this->parent);\n        }\n\n        return $this->query->first() ?: $this->getDefaultFor($this->parent);\n    }\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    public function initRelation(array $models, $relation)\n    {\n        foreach ($models as $model) {\n            $model->setRelation($relation, $this->getDefaultFor($model));\n        }\n\n        return $models;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        return $this->matchOne($models, $results, $relation);\n    }\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function newRelatedInstanceFor(Model $parent)\n    {\n        return $this->related->newInstance()\n                    ->setAttribute($this->getForeignKeyName(), $parent->{$this->localKey})\n                    ->setAttribute($this->getMorphType(), $this->morphClass);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphOneOrMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\n\nabstract class MorphOneOrMany extends HasOneOrMany\n{\n    /**\n     * The foreign key type for the relationship.\n     *\n     * @var string\n     */\n    protected $morphType;\n\n    /**\n     * The class name of the parent model.\n     *\n     * @var string\n     */\n    protected $morphClass;\n\n    /**\n     * Create a new morph one or many relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $type\n     * @param  string  $id\n     * @param  string  $localKey\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent, $type, $id, $localKey)\n    {\n        $this->morphType = $type;\n\n        $this->morphClass = $parent->getMorphClass();\n\n        parent::__construct($query, $parent, $id, $localKey);\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    public function addConstraints()\n    {\n        if (static::$constraints) {\n            parent::addConstraints();\n\n            $this->query->where($this->morphType, $this->morphClass);\n        }\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        parent::addEagerConstraints($models);\n\n        $this->query->where($this->morphType, $this->morphClass);\n    }\n\n    /**\n     * Set the foreign ID and type for creating a related model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return void\n     */\n    protected function setForeignAttributesForCreate(Model $model)\n    {\n        $model->{$this->getForeignKeyName()} = $this->getParentKey();\n\n        $model->{$this->getMorphType()} = $this->morphClass;\n    }\n\n    /**\n     * Get the relationship query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where(\n            $this->morphType, $this->morphClass\n        );\n    }\n\n    /**\n     * Get the foreign key \"type\" name.\n     *\n     * @return string\n     */\n    public function getQualifiedMorphType()\n    {\n        return $this->morphType;\n    }\n\n    /**\n     * Get the plain morph type name without the table.\n     *\n     * @return string\n     */\n    public function getMorphType()\n    {\n        return last(explode('.', $this->morphType));\n    }\n\n    /**\n     * Get the class name of the parent model.\n     *\n     * @return string\n     */\n    public function getMorphClass()\n    {\n        return $this->morphClass;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphPivot.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Eloquent\\Builder;\n\nclass MorphPivot extends Pivot\n{\n    /**\n     * The type of the polymorphic relation.\n     *\n     * Explicitly define this so it's not included in saved attributes.\n     *\n     * @var string\n     */\n    protected $morphType;\n\n    /**\n     * The value of the polymorphic relation.\n     *\n     * Explicitly define this so it's not included in saved attributes.\n     *\n     * @var string\n     */\n    protected $morphClass;\n\n    /**\n     * Set the keys for a save update query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function setKeysForSaveQuery(Builder $query)\n    {\n        $query->where($this->morphType, $this->morphClass);\n\n        return parent::setKeysForSaveQuery($query);\n    }\n\n    /**\n     * Delete the pivot model record from the database.\n     *\n     * @return int\n     */\n    public function delete()\n    {\n        $query = $this->getDeleteQuery();\n\n        $query->where($this->morphType, $this->morphClass);\n\n        return $query->delete();\n    }\n\n    /**\n     * Set the morph type for the pivot.\n     *\n     * @param  string  $morphType\n     * @return $this\n     */\n    public function setMorphType($morphType)\n    {\n        $this->morphType = $morphType;\n\n        return $this;\n    }\n\n    /**\n     * Set the morph class for the pivot.\n     *\n     * @param  string  $morphClass\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphPivot\n     */\n    public function setMorphClass($morphClass)\n    {\n        $this->morphClass = $morphClass;\n\n        return $this;\n    }\n\n    /**\n     * Get the queueable identity for the entity.\n     *\n     * @return mixed\n     */\n    public function getQueueableId()\n    {\n        if (isset($this->attributes[$this->getKeyName()])) {\n            return $this->getKey();\n        }\n\n        return sprintf(\n            '%s:%s:%s:%s:%s:%s',\n            $this->foreignKey, $this->getAttribute($this->foreignKey),\n            $this->relatedKey, $this->getAttribute($this->relatedKey),\n            $this->morphType, $this->morphClass\n        );\n    }\n\n    /**\n     * Get a new query to restore one or more models by their queueable IDs.\n     *\n     * @param  array|int  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function newQueryForRestoration($ids)\n    {\n        if (is_array($ids)) {\n            return $this->newQueryForCollectionRestoration($ids);\n        }\n\n        if (! Str::contains($ids, ':')) {\n            return parent::newQueryForRestoration($ids);\n        }\n\n        $segments = explode(':', $ids);\n\n        return $this->newQueryWithoutScopes()\n                        ->where($segments[0], $segments[1])\n                        ->where($segments[2], $segments[3])\n                        ->where($segments[4], $segments[5]);\n    }\n\n    /**\n     * Get a new query to restore multiple models by their queueable IDs.\n     *\n     * @param  array  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function newQueryForCollectionRestoration(array $ids)\n    {\n        if (! Str::contains($ids[0], ':')) {\n            return parent::newQueryForRestoration($ids);\n        }\n\n        $query = $this->newQueryWithoutScopes();\n\n        foreach ($ids as $id) {\n            $segments = explode(':', $id);\n\n            $query->orWhere(function ($query) use ($segments) {\n                return $query->where($segments[0], $segments[1])\n                             ->where($segments[2], $segments[3])\n                             ->where($segments[4], $segments[5]);\n            });\n        }\n\n        return $query;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphTo.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse BadMethodCallException;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Eloquent\\Collection;\n\nclass MorphTo extends BelongsTo\n{\n    /**\n     * The type of the polymorphic relation.\n     *\n     * @var string\n     */\n    protected $morphType;\n\n    /**\n     * The models whose relations are being eager loaded.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    protected $models;\n\n    /**\n     * All of the models keyed by ID.\n     *\n     * @var array\n     */\n    protected $dictionary = [];\n\n    /**\n     * A buffer of dynamic calls to query macros.\n     *\n     * @var array\n     */\n    protected $macroBuffer = [];\n\n    /**\n     * A map of relations to load for each individual morph type.\n     *\n     * @var array\n     */\n    protected $morphableEagerLoads = [];\n\n    /**\n     * Create a new morph to relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $foreignKey\n     * @param  string  $ownerKey\n     * @param  string  $type\n     * @param  string  $relation\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent, $foreignKey, $ownerKey, $type, $relation)\n    {\n        $this->morphType = $type;\n\n        parent::__construct($query, $parent, $foreignKey, $ownerKey, $relation);\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        $this->buildDictionary($this->models = Collection::make($models));\n    }\n\n    /**\n     * Build a dictionary with the models.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $models\n     * @return void\n     */\n    protected function buildDictionary(Collection $models)\n    {\n        foreach ($models as $model) {\n            if ($model->{$this->morphType}) {\n                $this->dictionary[$model->{$this->morphType}][$model->{$this->foreignKey}][] = $model;\n            }\n        }\n    }\n\n    /**\n     * Get the results of the relationship.\n     *\n     * Called via eager load method of Eloquent query builder.\n     *\n     * @return mixed\n     */\n    public function getEager()\n    {\n        foreach (array_keys($this->dictionary) as $type) {\n            $this->matchToMorphParents($type, $this->getResultsByType($type));\n        }\n\n        return $this->models;\n    }\n\n    /**\n     * Get all of the relation results for a type.\n     *\n     * @param  string  $type\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    protected function getResultsByType($type)\n    {\n        $instance = $this->createModelByType($type);\n\n        $ownerKey = $this->ownerKey ?? $instance->getKeyName();\n\n        $query = $this->replayMacros($instance->newQuery())\n                            ->mergeConstraintsFrom($this->getQuery())\n                            ->with(array_merge(\n                                $this->getQuery()->getEagerLoads(),\n                                (array) ($this->morphableEagerLoads[get_class($instance)] ?? [])\n                            ));\n\n        return $query->whereIn(\n            $instance->getTable().'.'.$ownerKey, $this->gatherKeysByType($type)\n        )->get();\n    }\n\n    /**\n     * Gather all of the foreign keys for a given type.\n     *\n     * @param  string  $type\n     * @return array\n     */\n    protected function gatherKeysByType($type)\n    {\n        return collect($this->dictionary[$type])->map(function ($models) {\n            return head($models)->{$this->foreignKey};\n        })->values()->unique()->all();\n    }\n\n    /**\n     * Create a new model instance by type.\n     *\n     * @param  string  $type\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function createModelByType($type)\n    {\n        $class = Model::getActualClassNameForMorph($type);\n\n        return new $class;\n    }\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    public function match(array $models, Collection $results, $relation)\n    {\n        return $models;\n    }\n\n    /**\n     * Match the results for a given type to their parents.\n     *\n     * @param  string  $type\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @return void\n     */\n    protected function matchToMorphParents($type, Collection $results)\n    {\n        foreach ($results as $result) {\n            $ownerKey = ! is_null($this->ownerKey) ? $result->{$this->ownerKey} : $result->getKey();\n\n            if (isset($this->dictionary[$type][$ownerKey])) {\n                foreach ($this->dictionary[$type][$ownerKey] as $model) {\n                    $model->setRelation($this->relationName, $result);\n                }\n            }\n        }\n    }\n\n    /**\n     * Associate the model instance to the given parent.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function associate($model)\n    {\n        $this->parent->setAttribute(\n            $this->foreignKey, $model instanceof Model ? $model->getKey() : null\n        );\n\n        $this->parent->setAttribute(\n            $this->morphType, $model instanceof Model ? $model->getMorphClass() : null\n        );\n\n        return $this->parent->setRelation($this->relationName, $model);\n    }\n\n    /**\n     * Dissociate previously associated model from the given parent.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function dissociate()\n    {\n        $this->parent->setAttribute($this->foreignKey, null);\n\n        $this->parent->setAttribute($this->morphType, null);\n\n        return $this->parent->setRelation($this->relationName, null);\n    }\n\n    /**\n     * Touch all of the related models for the relationship.\n     *\n     * @return void\n     */\n    public function touch()\n    {\n        if (! is_null($this->child->{$this->foreignKey})) {\n            parent::touch();\n        }\n    }\n\n    /**\n     * Make a new related instance for the given model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected function newRelatedInstanceFor(Model $parent)\n    {\n        return $parent->{$this->getRelationName()}()->getRelated()->newInstance();\n    }\n\n    /**\n     * Get the foreign key \"type\" name.\n     *\n     * @return string\n     */\n    public function getMorphType()\n    {\n        return $this->morphType;\n    }\n\n    /**\n     * Get the dictionary used by the relationship.\n     *\n     * @return array\n     */\n    public function getDictionary()\n    {\n        return $this->dictionary;\n    }\n\n    /**\n     * Specify which relations to load for a given morph type.\n     *\n     * @param  array  $with\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphTo\n     */\n    public function morphWith(array $with)\n    {\n        $this->morphableEagerLoads = array_merge(\n            $this->morphableEagerLoads, $with\n        );\n\n        return $this;\n    }\n\n    /**\n     * Replay stored macro calls on the actual related instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function replayMacros(Builder $query)\n    {\n        foreach ($this->macroBuffer as $macro) {\n            $query->{$macro['method']}(...$macro['parameters']);\n        }\n\n        return $query;\n    }\n\n    /**\n     * Handle dynamic method calls to the relationship.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        try {\n            $result = parent::__call($method, $parameters);\n\n            if (in_array($method, ['select', 'selectRaw', 'selectSub', 'addSelect', 'withoutGlobalScopes'])) {\n                $this->macroBuffer[] = compact('method', 'parameters');\n            }\n\n            return $result;\n        }\n\n        // If we tried to call a method that does not exist on the parent Builder instance,\n        // we'll assume that we want to call a query macro (e.g. withTrashed) that only\n        // exists on related models. We will just store the call and replay it later.\n        catch (BadMethodCallException $e) {\n            $this->macroBuffer[] = compact('method', 'parameters');\n\n            return $this;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/MorphToMany.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Builder;\n\nclass MorphToMany extends BelongsToMany\n{\n    /**\n     * The type of the polymorphic relation.\n     *\n     * @var string\n     */\n    protected $morphType;\n\n    /**\n     * The class name of the morph type constraint.\n     *\n     * @var string\n     */\n    protected $morphClass;\n\n    /**\n     * Indicates if we are connecting the inverse of the relation.\n     *\n     * This primarily affects the morphClass constraint.\n     *\n     * @var bool\n     */\n    protected $inverse;\n\n    /**\n     * Create a new morph to many relationship instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @param  string  $name\n     * @param  string  $table\n     * @param  string  $foreignPivotKey\n     * @param  string  $relatedPivotKey\n     * @param  string  $parentKey\n     * @param  string  $relatedKey\n     * @param  string  $relationName\n     * @param  bool  $inverse\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent, $name, $table, $foreignPivotKey,\n                                $relatedPivotKey, $parentKey, $relatedKey, $relationName = null, $inverse = false)\n    {\n        $this->inverse = $inverse;\n        $this->morphType = $name.'_type';\n        $this->morphClass = $inverse ? $query->getModel()->getMorphClass() : $parent->getMorphClass();\n\n        parent::__construct(\n            $query, $parent, $table, $foreignPivotKey,\n            $relatedPivotKey, $parentKey, $relatedKey, $relationName\n        );\n    }\n\n    /**\n     * Set the where clause for the relation query.\n     *\n     * @return $this\n     */\n    protected function addWhereConstraints()\n    {\n        parent::addWhereConstraints();\n\n        $this->query->where($this->table.'.'.$this->morphType, $this->morphClass);\n\n        return $this;\n    }\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    public function addEagerConstraints(array $models)\n    {\n        parent::addEagerConstraints($models);\n\n        $this->query->where($this->table.'.'.$this->morphType, $this->morphClass);\n    }\n\n    /**\n     * Create a new pivot attachment record.\n     *\n     * @param  int   $id\n     * @param  bool  $timed\n     * @return array\n     */\n    protected function baseAttachRecord($id, $timed)\n    {\n        return Arr::add(\n            parent::baseAttachRecord($id, $timed), $this->morphType, $this->morphClass\n        );\n    }\n\n    /**\n     * Add the constraints for a relationship count query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        return parent::getRelationExistenceQuery($query, $parentQuery, $columns)->where(\n            $this->table.'.'.$this->morphType, $this->morphClass\n        );\n    }\n\n    /**\n     * Create a new query builder for the pivot table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function newPivotQuery()\n    {\n        return parent::newPivotQuery()->where($this->morphType, $this->morphClass);\n    }\n\n    /**\n     * Create a new pivot model instance.\n     *\n     * @param  array  $attributes\n     * @param  bool   $exists\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\Pivot\n     */\n    public function newPivot(array $attributes = [], $exists = false)\n    {\n        $using = $this->using;\n\n        $pivot = $using ? $using::fromRawAttributes($this->parent, $attributes, $this->table, $exists)\n                        : MorphPivot::fromAttributes($this->parent, $attributes, $this->table, $exists);\n\n        $pivot->setPivotKeys($this->foreignPivotKey, $this->relatedPivotKey)\n              ->setMorphType($this->morphType)\n              ->setMorphClass($this->morphClass);\n\n        return $pivot;\n    }\n\n    /**\n     * Get the pivot columns for the relation.\n     *\n     * \"pivot_\" is prefixed at each column for easy removal later.\n     *\n     * @return array\n     */\n    protected function aliasedPivotColumns()\n    {\n        $defaults = [$this->foreignPivotKey, $this->relatedPivotKey, $this->morphType];\n\n        return collect(array_merge($defaults, $this->pivotColumns))->map(function ($column) {\n            return $this->table.'.'.$column.' as pivot_'.$column;\n        })->unique()->all();\n    }\n\n    /**\n     * Get the foreign key \"type\" name.\n     *\n     * @return string\n     */\n    public function getMorphType()\n    {\n        return $this->morphType;\n    }\n\n    /**\n     * Get the class name of the parent model.\n     *\n     * @return string\n     */\n    public function getMorphClass()\n    {\n        return $this->morphClass;\n    }\n\n    /**\n     * Get the indicator for a reverse relationship.\n     *\n     * @return bool\n     */\n    public function getInverse()\n    {\n        return $this->inverse;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Pivot.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Database\\Eloquent\\Relations\\Concerns\\AsPivot;\n\nclass Pivot extends Model\n{\n    use AsPivot;\n\n    /**\n     * Indicates if the IDs are auto-incrementing.\n     *\n     * @var bool\n     */\n    public $incrementing = false;\n\n    /**\n     * The attributes that aren't mass assignable.\n     *\n     * @var array\n     */\n    protected $guarded = [];\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent\\Relations;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Database\\Query\\Expression;\nuse Illuminate\\Database\\Eloquent\\Collection;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\n\n/**\n * @mixin \\Illuminate\\Database\\Eloquent\\Builder\n */\nabstract class Relation\n{\n    use ForwardsCalls, Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The Eloquent query builder instance.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected $query;\n\n    /**\n     * The parent model instance.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected $parent;\n\n    /**\n     * The related model instance.\n     *\n     * @var \\Illuminate\\Database\\Eloquent\\Model\n     */\n    protected $related;\n\n    /**\n     * Indicates if the relation is adding constraints.\n     *\n     * @var bool\n     */\n    protected static $constraints = true;\n\n    /**\n     * An array to map class names to their morph names in database.\n     *\n     * @var array\n     */\n    public static $morphMap = [];\n\n    /**\n     * Create a new relation instance.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $parent\n     * @return void\n     */\n    public function __construct(Builder $query, Model $parent)\n    {\n        $this->query = $query;\n        $this->parent = $parent;\n        $this->related = $query->getModel();\n\n        $this->addConstraints();\n    }\n\n    /**\n     * Run a callback with constraints disabled on the relation.\n     *\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public static function noConstraints(Closure $callback)\n    {\n        $previous = static::$constraints;\n\n        static::$constraints = false;\n\n        // When resetting the relation where clause, we want to shift the first element\n        // off of the bindings, leaving only the constraints that the developers put\n        // as \"extra\" on the relationships, and not original relation constraints.\n        try {\n            return call_user_func($callback);\n        } finally {\n            static::$constraints = $previous;\n        }\n    }\n\n    /**\n     * Set the base constraints on the relation query.\n     *\n     * @return void\n     */\n    abstract public function addConstraints();\n\n    /**\n     * Set the constraints for an eager load of the relation.\n     *\n     * @param  array  $models\n     * @return void\n     */\n    abstract public function addEagerConstraints(array $models);\n\n    /**\n     * Initialize the relation on a set of models.\n     *\n     * @param  array   $models\n     * @param  string  $relation\n     * @return array\n     */\n    abstract public function initRelation(array $models, $relation);\n\n    /**\n     * Match the eagerly loaded results to their parents.\n     *\n     * @param  array   $models\n     * @param  \\Illuminate\\Database\\Eloquent\\Collection  $results\n     * @param  string  $relation\n     * @return array\n     */\n    abstract public function match(array $models, Collection $results, $relation);\n\n    /**\n     * Get the results of the relationship.\n     *\n     * @return mixed\n     */\n    abstract public function getResults();\n\n    /**\n     * Get the relationship for eager loading.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function getEager()\n    {\n        return $this->get();\n    }\n\n    /**\n     * Execute the query as a \"select\" statement.\n     *\n     * @param  array  $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    public function get($columns = ['*'])\n    {\n        return $this->query->get($columns);\n    }\n\n    /**\n     * Touch all of the related models for the relationship.\n     *\n     * @return void\n     */\n    public function touch()\n    {\n        $model = $this->getRelated();\n\n        if (! $model::isIgnoringTouch()) {\n            $this->rawUpdate([\n                $model->getUpdatedAtColumn() => $model->freshTimestampString(),\n            ]);\n        }\n    }\n\n    /**\n     * Run a raw update against the base query.\n     *\n     * @param  array  $attributes\n     * @return int\n     */\n    public function rawUpdate(array $attributes = [])\n    {\n        return $this->query->withoutGlobalScopes()->update($attributes);\n    }\n\n    /**\n     * Add the constraints for a relationship count query.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceCountQuery(Builder $query, Builder $parentQuery)\n    {\n        return $this->getRelationExistenceQuery(\n            $query, $parentQuery, new Expression('count(*)')\n        )->setBindings([], 'select');\n    }\n\n    /**\n     * Add the constraints for an internal relationship existence query.\n     *\n     * Essentially, these queries compare on column names like whereColumn.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $query\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $parentQuery\n     * @param  array|mixed $columns\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getRelationExistenceQuery(Builder $query, Builder $parentQuery, $columns = ['*'])\n    {\n        return $query->select($columns)->whereColumn(\n            $this->getQualifiedParentKeyName(), '=', $this->getExistenceCompareKey()\n        );\n    }\n\n    /**\n     * Get all of the primary keys for an array of models.\n     *\n     * @param  array   $models\n     * @param  string  $key\n     * @return array\n     */\n    protected function getKeys(array $models, $key = null)\n    {\n        return collect($models)->map(function ($value) use ($key) {\n            return $key ? $value->getAttribute($key) : $value->getKey();\n        })->values()->unique(null, true)->sort()->all();\n    }\n\n    /**\n     * Get the underlying query for the relation.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    public function getQuery()\n    {\n        return $this->query;\n    }\n\n    /**\n     * Get the base query builder driving the Eloquent builder.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function getBaseQuery()\n    {\n        return $this->query->getQuery();\n    }\n\n    /**\n     * Get the parent model of the relation.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function getParent()\n    {\n        return $this->parent;\n    }\n\n    /**\n     * Get the fully qualified parent key name.\n     *\n     * @return string\n     */\n    public function getQualifiedParentKeyName()\n    {\n        return $this->parent->getQualifiedKeyName();\n    }\n\n    /**\n     * Get the related model of the relation.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function getRelated()\n    {\n        return $this->related;\n    }\n\n    /**\n     * Get the name of the \"created at\" column.\n     *\n     * @return string\n     */\n    public function createdAt()\n    {\n        return $this->parent->getCreatedAtColumn();\n    }\n\n    /**\n     * Get the name of the \"updated at\" column.\n     *\n     * @return string\n     */\n    public function updatedAt()\n    {\n        return $this->parent->getUpdatedAtColumn();\n    }\n\n    /**\n     * Get the name of the related model's \"updated at\" column.\n     *\n     * @return string\n     */\n    public function relatedUpdatedAt()\n    {\n        return $this->related->getUpdatedAtColumn();\n    }\n\n    /**\n     * Get the name of the \"where in\" method for eager loading.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @param  string  $key\n     * @return string\n     */\n    protected function whereInMethod(Model $model, $key)\n    {\n        return $model->getKeyName() === last(explode('.', $key))\n                    && $model->getIncrementing()\n                    && in_array($model->getKeyType(), ['int', 'integer'])\n                        ? 'whereIntegerInRaw'\n                        : 'whereIn';\n    }\n\n    /**\n     * Set or get the morph map for polymorphic relations.\n     *\n     * @param  array|null  $map\n     * @param  bool  $merge\n     * @return array\n     */\n    public static function morphMap(array $map = null, $merge = true)\n    {\n        $map = static::buildMorphMapFromModels($map);\n\n        if (is_array($map)) {\n            static::$morphMap = $merge && static::$morphMap\n                            ? $map + static::$morphMap : $map;\n        }\n\n        return static::$morphMap;\n    }\n\n    /**\n     * Builds a table-keyed array from model class names.\n     *\n     * @param  string[]|null  $models\n     * @return array|null\n     */\n    protected static function buildMorphMapFromModels(array $models = null)\n    {\n        if (is_null($models) || Arr::isAssoc($models)) {\n            return $models;\n        }\n\n        return array_combine(array_map(function ($model) {\n            return (new $model)->getTable();\n        }, $models), $models);\n    }\n\n    /**\n     * Get the model associated with a custom polymorphic type.\n     *\n     * @param  string  $alias\n     * @return string|null\n     */\n    public static function getMorphedModel($alias)\n    {\n        return static::$morphMap[$alias] ?? null;\n    }\n\n    /**\n     * Handle dynamic method calls to the relationship.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        $result = $this->forwardCallTo($this->query, $method, $parameters);\n\n        if ($result === $this->query) {\n            return $this;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Force a clone of the underlying query builder when cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->query = clone $this->query;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/Scope.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\ninterface Scope\n{\n    /**\n     * Apply the scope to a given Eloquent query builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return void\n     */\n    public function apply(Builder $builder, Model $model);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletes.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\n/**\n * @method static static|\\Illuminate\\Database\\Eloquent\\Builder|\\Illuminate\\Database\\Query\\Builder withTrashed()\n * @method static static|\\Illuminate\\Database\\Eloquent\\Builder|\\Illuminate\\Database\\Query\\Builder onlyTrashed()\n * @method static static|\\Illuminate\\Database\\Eloquent\\Builder|\\Illuminate\\Database\\Query\\Builder withoutTrashed()\n */\ntrait SoftDeletes\n{\n    /**\n     * Indicates if the model is currently force deleting.\n     *\n     * @var bool\n     */\n    protected $forceDeleting = false;\n\n    /**\n     * Boot the soft deleting trait for a model.\n     *\n     * @return void\n     */\n    public static function bootSoftDeletes()\n    {\n        static::addGlobalScope(new SoftDeletingScope);\n    }\n\n    /**\n     * Initialize the soft deleting trait for an instance.\n     *\n     * @return void\n     */\n    public function initializeSoftDeletes()\n    {\n        $this->dates[] = $this->getDeletedAtColumn();\n    }\n\n    /**\n     * Force a hard delete on a soft deleted model.\n     *\n     * @return bool|null\n     */\n    public function forceDelete()\n    {\n        $this->forceDeleting = true;\n\n        return tap($this->delete(), function ($deleted) {\n            $this->forceDeleting = false;\n\n            if ($deleted) {\n                $this->fireModelEvent('forceDeleted', false);\n            }\n        });\n    }\n\n    /**\n     * Perform the actual delete query on this model instance.\n     *\n     * @return mixed\n     */\n    protected function performDeleteOnModel()\n    {\n        if ($this->forceDeleting) {\n            $this->exists = false;\n\n            return $this->setKeysForSaveQuery($this->newModelQuery())->forceDelete();\n        }\n\n        return $this->runSoftDelete();\n    }\n\n    /**\n     * Perform the actual delete query on this model instance.\n     *\n     * @return void\n     */\n    protected function runSoftDelete()\n    {\n        $query = $this->setKeysForSaveQuery($this->newModelQuery());\n\n        $time = $this->freshTimestamp();\n\n        $columns = [$this->getDeletedAtColumn() => $this->fromDateTime($time)];\n\n        $this->{$this->getDeletedAtColumn()} = $time;\n\n        if ($this->timestamps && ! is_null($this->getUpdatedAtColumn())) {\n            $this->{$this->getUpdatedAtColumn()} = $time;\n\n            $columns[$this->getUpdatedAtColumn()] = $this->fromDateTime($time);\n        }\n\n        $query->update($columns);\n    }\n\n    /**\n     * Restore a soft-deleted model instance.\n     *\n     * @return bool|null\n     */\n    public function restore()\n    {\n        // If the restoring event does not return false, we will proceed with this\n        // restore operation. Otherwise, we bail out so the developer will stop\n        // the restore totally. We will clear the deleted timestamp and save.\n        if ($this->fireModelEvent('restoring') === false) {\n            return false;\n        }\n\n        $this->{$this->getDeletedAtColumn()} = null;\n\n        // Once we have saved the model, we will fire the \"restored\" event so this\n        // developer will do anything they need to after a restore operation is\n        // totally finished. Then we will return the result of the save call.\n        $this->exists = true;\n\n        $result = $this->save();\n\n        $this->fireModelEvent('restored', false);\n\n        return $result;\n    }\n\n    /**\n     * Determine if the model instance has been soft-deleted.\n     *\n     * @return bool\n     */\n    public function trashed()\n    {\n        return ! is_null($this->{$this->getDeletedAtColumn()});\n    }\n\n    /**\n     * Register a restoring model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function restoring($callback)\n    {\n        static::registerModelEvent('restoring', $callback);\n    }\n\n    /**\n     * Register a restored model event with the dispatcher.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public static function restored($callback)\n    {\n        static::registerModelEvent('restored', $callback);\n    }\n\n    /**\n     * Determine if the model is currently force deleting.\n     *\n     * @return bool\n     */\n    public function isForceDeleting()\n    {\n        return $this->forceDeleting;\n    }\n\n    /**\n     * Get the name of the \"deleted at\" column.\n     *\n     * @return string\n     */\n    public function getDeletedAtColumn()\n    {\n        return defined('static::DELETED_AT') ? static::DELETED_AT : 'deleted_at';\n    }\n\n    /**\n     * Get the fully qualified \"deleted at\" column.\n     *\n     * @return string\n     */\n    public function getQualifiedDeletedAtColumn()\n    {\n        return $this->qualifyColumn($this->getDeletedAtColumn());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Eloquent/SoftDeletingScope.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Eloquent;\n\nclass SoftDeletingScope implements Scope\n{\n    /**\n     * All of the extensions to be added to the builder.\n     *\n     * @var array\n     */\n    protected $extensions = ['Restore', 'WithTrashed', 'WithoutTrashed', 'OnlyTrashed'];\n\n    /**\n     * Apply the scope to a given Eloquent query builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return void\n     */\n    public function apply(Builder $builder, Model $model)\n    {\n        $builder->whereNull($model->getQualifiedDeletedAtColumn());\n    }\n\n    /**\n     * Extend the query builder with the needed functions.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return void\n     */\n    public function extend(Builder $builder)\n    {\n        foreach ($this->extensions as $extension) {\n            $this->{\"add{$extension}\"}($builder);\n        }\n\n        $builder->onDelete(function (Builder $builder) {\n            $column = $this->getDeletedAtColumn($builder);\n\n            return $builder->update([\n                $column => $builder->getModel()->freshTimestampString(),\n            ]);\n        });\n    }\n\n    /**\n     * Get the \"deleted at\" column for the builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return string\n     */\n    protected function getDeletedAtColumn(Builder $builder)\n    {\n        if (count((array) $builder->getQuery()->joins) > 0) {\n            return $builder->getModel()->getQualifiedDeletedAtColumn();\n        }\n\n        return $builder->getModel()->getDeletedAtColumn();\n    }\n\n    /**\n     * Add the restore extension to the builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return void\n     */\n    protected function addRestore(Builder $builder)\n    {\n        $builder->macro('restore', function (Builder $builder) {\n            $builder->withTrashed();\n\n            return $builder->update([$builder->getModel()->getDeletedAtColumn() => null]);\n        });\n    }\n\n    /**\n     * Add the with-trashed extension to the builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return void\n     */\n    protected function addWithTrashed(Builder $builder)\n    {\n        $builder->macro('withTrashed', function (Builder $builder, $withTrashed = true) {\n            if (! $withTrashed) {\n                return $builder->withoutTrashed();\n            }\n\n            return $builder->withoutGlobalScope($this);\n        });\n    }\n\n    /**\n     * Add the without-trashed extension to the builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return void\n     */\n    protected function addWithoutTrashed(Builder $builder)\n    {\n        $builder->macro('withoutTrashed', function (Builder $builder) {\n            $model = $builder->getModel();\n\n            $builder->withoutGlobalScope($this)->whereNull(\n                $model->getQualifiedDeletedAtColumn()\n            );\n\n            return $builder;\n        });\n    }\n\n    /**\n     * Add the only-trashed extension to the builder.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Builder  $builder\n     * @return void\n     */\n    protected function addOnlyTrashed(Builder $builder)\n    {\n        $builder->macro('onlyTrashed', function (Builder $builder) {\n            $model = $builder->getModel();\n\n            $builder->withoutGlobalScope($this)->whereNotNull(\n                $model->getQualifiedDeletedAtColumn()\n            );\n\n            return $builder;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/ConnectionEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nabstract class ConnectionEvent\n{\n    /**\n     * The name of the connection.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    public $connection;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return void\n     */\n    public function __construct($connection)\n    {\n        $this->connection = $connection;\n        $this->connectionName = $connection->getName();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEnded.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass MigrationEnded extends MigrationEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/MigrationEvent.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Contracts\\Database\\Events\\MigrationEvent as MigrationEventContract;\n\nabstract class MigrationEvent implements MigrationEventContract\n{\n    /**\n     * An migration instance.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\Migration\n     */\n    public $migration;\n\n    /**\n     * The migration method that was called.\n     *\n     * @var string\n     */\n    public $method;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\Migration  $migration\n     * @param  string  $method\n     * @return void\n     */\n    public function __construct(Migration $migration, $method)\n    {\n        $this->method = $method;\n        $this->migration = $migration;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/MigrationStarted.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass MigrationStarted extends MigrationEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/MigrationsEnded.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nuse Illuminate\\Contracts\\Database\\Events\\MigrationEvent as MigrationEventContract;\n\nclass MigrationsEnded implements MigrationEventContract\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/MigrationsStarted.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nuse Illuminate\\Contracts\\Database\\Events\\MigrationEvent as MigrationEventContract;\n\nclass MigrationsStarted implements MigrationEventContract\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/QueryExecuted.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass QueryExecuted\n{\n    /**\n     * The SQL query that was executed.\n     *\n     * @var string\n     */\n    public $sql;\n\n    /**\n     * The array of query bindings.\n     *\n     * @var array\n     */\n    public $bindings;\n\n    /**\n     * The number of milliseconds it took to execute the query.\n     *\n     * @var float\n     */\n    public $time;\n\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    public $connection;\n\n    /**\n     * The database connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $sql\n     * @param  array  $bindings\n     * @param  float|null  $time\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return void\n     */\n    public function __construct($sql, $bindings, $time, $connection)\n    {\n        $this->sql = $sql;\n        $this->time = $time;\n        $this->bindings = $bindings;\n        $this->connection = $connection;\n        $this->connectionName = $connection->getName();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/StatementPrepared.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass StatementPrepared\n{\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    public $connection;\n\n    /**\n     * The PDO statement.\n     *\n     * @var \\PDOStatement\n     */\n    public $statement;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  \\PDOStatement  $statement\n     * @return void\n     */\n    public function __construct($connection, $statement)\n    {\n        $this->statement = $statement;\n        $this->connection = $connection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/TransactionBeginning.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass TransactionBeginning extends ConnectionEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/TransactionCommitted.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass TransactionCommitted extends ConnectionEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Events/TransactionRolledBack.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Events;\n\nclass TransactionRolledBack extends ConnectionEvent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Grammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Database\\Query\\Expression;\n\nabstract class Grammar\n{\n    use Macroable;\n\n    /**\n     * The grammar table prefix.\n     *\n     * @var string\n     */\n    protected $tablePrefix = '';\n\n    /**\n     * Wrap an array of values.\n     *\n     * @param  array  $values\n     * @return array\n     */\n    public function wrapArray(array $values)\n    {\n        return array_map([$this, 'wrap'], $values);\n    }\n\n    /**\n     * Wrap a table in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $table\n     * @return string\n     */\n    public function wrapTable($table)\n    {\n        if (! $this->isExpression($table)) {\n            return $this->wrap($this->tablePrefix.$table, true);\n        }\n\n        return $this->getValue($table);\n    }\n\n    /**\n     * Wrap a value in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $value\n     * @param  bool    $prefixAlias\n     * @return string\n     */\n    public function wrap($value, $prefixAlias = false)\n    {\n        if ($this->isExpression($value)) {\n            return $this->getValue($value);\n        }\n\n        // If the value being wrapped has a column alias we will need to separate out\n        // the pieces so we can wrap each of the segments of the expression on its\n        // own, and then join these both back together using the \"as\" connector.\n        if (stripos($value, ' as ') !== false) {\n            return $this->wrapAliasedValue($value, $prefixAlias);\n        }\n\n        return $this->wrapSegments(explode('.', $value));\n    }\n\n    /**\n     * Wrap a value that has an alias.\n     *\n     * @param  string  $value\n     * @param  bool  $prefixAlias\n     * @return string\n     */\n    protected function wrapAliasedValue($value, $prefixAlias = false)\n    {\n        $segments = preg_split('/\\s+as\\s+/i', $value);\n\n        // If we are wrapping a table we need to prefix the alias with the table prefix\n        // as well in order to generate proper syntax. If this is a column of course\n        // no prefix is necessary. The condition will be true when from wrapTable.\n        if ($prefixAlias) {\n            $segments[1] = $this->tablePrefix.$segments[1];\n        }\n\n        return $this->wrap(\n            $segments[0]).' as '.$this->wrapValue($segments[1]\n        );\n    }\n\n    /**\n     * Wrap the given value segments.\n     *\n     * @param  array  $segments\n     * @return string\n     */\n    protected function wrapSegments($segments)\n    {\n        return collect($segments)->map(function ($segment, $key) use ($segments) {\n            return $key == 0 && count($segments) > 1\n                            ? $this->wrapTable($segment)\n                            : $this->wrapValue($segment);\n        })->implode('.');\n    }\n\n    /**\n     * Wrap a single string in keyword identifiers.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapValue($value)\n    {\n        if ($value !== '*') {\n            return '\"'.str_replace('\"', '\"\"', $value).'\"';\n        }\n\n        return $value;\n    }\n\n    /**\n     * Convert an array of column names into a delimited string.\n     *\n     * @param  array   $columns\n     * @return string\n     */\n    public function columnize(array $columns)\n    {\n        return implode(', ', array_map([$this, 'wrap'], $columns));\n    }\n\n    /**\n     * Create query parameter place-holders for an array.\n     *\n     * @param  array   $values\n     * @return string\n     */\n    public function parameterize(array $values)\n    {\n        return implode(', ', array_map([$this, 'parameter'], $values));\n    }\n\n    /**\n     * Get the appropriate query parameter place-holder for a value.\n     *\n     * @param  mixed   $value\n     * @return string\n     */\n    public function parameter($value)\n    {\n        return $this->isExpression($value) ? $this->getValue($value) : '?';\n    }\n\n    /**\n     * Quote the given string literal.\n     *\n     * @param  string|array  $value\n     * @return string\n     */\n    public function quoteString($value)\n    {\n        if (is_array($value)) {\n            return implode(', ', array_map([$this, __FUNCTION__], $value));\n        }\n\n        return \"'$value'\";\n    }\n\n    /**\n     * Determine if the given value is a raw expression.\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function isExpression($value)\n    {\n        return $value instanceof Expression;\n    }\n\n    /**\n     * Get the value of a raw expression.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression  $expression\n     * @return string\n     */\n    public function getValue($expression)\n    {\n        return $expression->getValue();\n    }\n\n    /**\n     * Get the format for database stored dates.\n     *\n     * @return string\n     */\n    public function getDateFormat()\n    {\n        return 'Y-m-d H:i:s';\n    }\n\n    /**\n     * Get the grammar's table prefix.\n     *\n     * @return string\n     */\n    public function getTablePrefix()\n    {\n        return $this->tablePrefix;\n    }\n\n    /**\n     * Set the grammar's table prefix.\n     *\n     * @param  string  $prefix\n     * @return $this\n     */\n    public function setTablePrefix($prefix)\n    {\n        $this->tablePrefix = $prefix;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/MigrationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Database\\Migrations\\Migrator;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Database\\Migrations\\MigrationCreator;\nuse Illuminate\\Database\\Migrations\\DatabaseMigrationRepository;\n\nclass MigrationServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerRepository();\n\n        $this->registerMigrator();\n\n        $this->registerCreator();\n    }\n\n    /**\n     * Register the migration repository service.\n     *\n     * @return void\n     */\n    protected function registerRepository()\n    {\n        $this->app->singleton('migration.repository', function ($app) {\n            $table = $app['config']['database.migrations'];\n\n            return new DatabaseMigrationRepository($app['db'], $table);\n        });\n    }\n\n    /**\n     * Register the migrator service.\n     *\n     * @return void\n     */\n    protected function registerMigrator()\n    {\n        // The migrator is responsible for actually running and rollback the migration\n        // files in the application. We'll pass in our database connection resolver\n        // so the migrator can resolve any of these connections when it needs to.\n        $this->app->singleton('migrator', function ($app) {\n            $repository = $app['migration.repository'];\n\n            return new Migrator($repository, $app['db'], $app['files'], $app['events']);\n        });\n    }\n\n    /**\n     * Register the migration creator.\n     *\n     * @return void\n     */\n    protected function registerCreator()\n    {\n        $this->app->singleton('migration.creator', function ($app) {\n            return new MigrationCreator($app['files']);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            'migrator', 'migration.repository', 'migration.creator',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/DatabaseMigrationRepository.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Migrations;\n\nuse Illuminate\\Database\\ConnectionResolverInterface as Resolver;\n\nclass DatabaseMigrationRepository implements MigrationRepositoryInterface\n{\n    /**\n     * The database connection resolver instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $resolver;\n\n    /**\n     * The name of the migration table.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The name of the database connection to use.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * Create a new database migration repository instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $resolver\n     * @param  string  $table\n     * @return void\n     */\n    public function __construct(Resolver $resolver, $table)\n    {\n        $this->table = $table;\n        $this->resolver = $resolver;\n    }\n\n    /**\n     * Get the completed migrations.\n     *\n     * @return array\n     */\n    public function getRan()\n    {\n        return $this->table()\n                ->orderBy('batch', 'asc')\n                ->orderBy('migration', 'asc')\n                ->pluck('migration')->all();\n    }\n\n    /**\n     * Get list of migrations.\n     *\n     * @param  int  $steps\n     * @return array\n     */\n    public function getMigrations($steps)\n    {\n        $query = $this->table()->where('batch', '>=', '1');\n\n        return $query->orderBy('batch', 'desc')\n                     ->orderBy('migration', 'desc')\n                     ->take($steps)->get()->all();\n    }\n\n    /**\n     * Get the last migration batch.\n     *\n     * @return array\n     */\n    public function getLast()\n    {\n        $query = $this->table()->where('batch', $this->getLastBatchNumber());\n\n        return $query->orderBy('migration', 'desc')->get()->all();\n    }\n\n    /**\n     * Get the completed migrations with their batch numbers.\n     *\n     * @return array\n     */\n    public function getMigrationBatches()\n    {\n        return $this->table()\n                ->orderBy('batch', 'asc')\n                ->orderBy('migration', 'asc')\n                ->pluck('batch', 'migration')->all();\n    }\n\n    /**\n     * Log that a migration was run.\n     *\n     * @param  string  $file\n     * @param  int  $batch\n     * @return void\n     */\n    public function log($file, $batch)\n    {\n        $record = ['migration' => $file, 'batch' => $batch];\n\n        $this->table()->insert($record);\n    }\n\n    /**\n     * Remove a migration from the log.\n     *\n     * @param  object  $migration\n     * @return void\n     */\n    public function delete($migration)\n    {\n        $this->table()->where('migration', $migration->migration)->delete();\n    }\n\n    /**\n     * Get the next migration batch number.\n     *\n     * @return int\n     */\n    public function getNextBatchNumber()\n    {\n        return $this->getLastBatchNumber() + 1;\n    }\n\n    /**\n     * Get the last migration batch number.\n     *\n     * @return int\n     */\n    public function getLastBatchNumber()\n    {\n        return $this->table()->max('batch');\n    }\n\n    /**\n     * Create the migration repository data store.\n     *\n     * @return void\n     */\n    public function createRepository()\n    {\n        $schema = $this->getConnection()->getSchemaBuilder();\n\n        $schema->create($this->table, function ($table) {\n            // The migrations table is responsible for keeping track of which of the\n            // migrations have actually run for the application. We'll create the\n            // table to hold the migration file's path as well as the batch ID.\n            $table->increments('id');\n            $table->string('migration');\n            $table->integer('batch');\n        });\n    }\n\n    /**\n     * Determine if the migration repository exists.\n     *\n     * @return bool\n     */\n    public function repositoryExists()\n    {\n        $schema = $this->getConnection()->getSchemaBuilder();\n\n        return $schema->hasTable($this->table);\n    }\n\n    /**\n     * Get a query builder for the migration table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function table()\n    {\n        return $this->getConnection()->table($this->table)->useWritePdo();\n    }\n\n    /**\n     * Get the connection resolver instance.\n     *\n     * @return \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    public function getConnectionResolver()\n    {\n        return $this->resolver;\n    }\n\n    /**\n     * Resolve the database connection instance.\n     *\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function getConnection()\n    {\n        return $this->resolver->connection($this->connection);\n    }\n\n    /**\n     * Set the information source to gather data.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setSource($name)\n    {\n        $this->connection = $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/Migration.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Migrations;\n\nabstract class Migration\n{\n    /**\n     * The name of the database connection to use.\n     *\n     * @var string|null\n     */\n    protected $connection;\n\n    /**\n     * Enables, if supported, wrapping the migration within a transaction.\n     *\n     * @var bool\n     */\n    public $withinTransaction = true;\n\n    /**\n     * Get the migration connection name.\n     *\n     * @return string|null\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationCreator.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Migrations;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass MigrationCreator\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The registered post create hooks.\n     *\n     * @var array\n     */\n    protected $postCreate = [];\n\n    /**\n     * Create a new migration creator instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        $this->files = $files;\n    }\n\n    /**\n     * Create a new migration at the given path.\n     *\n     * @param  string  $name\n     * @param  string  $path\n     * @param  string|null  $table\n     * @param  bool    $create\n     * @return string\n     *\n     * @throws \\Exception\n     */\n    public function create($name, $path, $table = null, $create = false)\n    {\n        $this->ensureMigrationDoesntAlreadyExist($name);\n\n        // First we will get the stub file for the migration, which serves as a type\n        // of template for the migration. Once we have those we will populate the\n        // various place-holders, save the file, and run the post create event.\n        $stub = $this->getStub($table, $create);\n\n        $this->files->put(\n            $path = $this->getPath($name, $path),\n            $this->populateStub($name, $stub, $table)\n        );\n\n        // Next, we will fire any hooks that are supposed to fire after a migration is\n        // created. Once that is done we'll be ready to return the full path to the\n        // migration file so it can be used however it's needed by the developer.\n        $this->firePostCreateHooks($table);\n\n        return $path;\n    }\n\n    /**\n     * Ensure that a migration with the given name doesn't already exist.\n     *\n     * @param  string  $name\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function ensureMigrationDoesntAlreadyExist($name)\n    {\n        if (class_exists($className = $this->getClassName($name))) {\n            throw new InvalidArgumentException(\"A {$className} class already exists.\");\n        }\n    }\n\n    /**\n     * Get the migration stub file.\n     *\n     * @param  string|null  $table\n     * @param  bool    $create\n     * @return string\n     */\n    protected function getStub($table, $create)\n    {\n        if (is_null($table)) {\n            return $this->files->get($this->stubPath().'/blank.stub');\n        }\n\n        // We also have stubs for creating new tables and modifying existing tables\n        // to save the developer some typing when they are creating a new tables\n        // or modifying existing tables. We'll grab the appropriate stub here.\n        $stub = $create ? 'create.stub' : 'update.stub';\n\n        return $this->files->get($this->stubPath().\"/{$stub}\");\n    }\n\n    /**\n     * Populate the place-holders in the migration stub.\n     *\n     * @param  string  $name\n     * @param  string  $stub\n     * @param  string|null  $table\n     * @return string\n     */\n    protected function populateStub($name, $stub, $table)\n    {\n        $stub = str_replace('DummyClass', $this->getClassName($name), $stub);\n\n        // Here we will replace the table place-holders with the table specified by\n        // the developer, which is useful for quickly creating a tables creation\n        // or update migration from the console instead of typing it manually.\n        if (! is_null($table)) {\n            $stub = str_replace('DummyTable', $table, $stub);\n        }\n\n        return $stub;\n    }\n\n    /**\n     * Get the class name of a migration name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getClassName($name)\n    {\n        return Str::studly($name);\n    }\n\n    /**\n     * Get the full path to the migration.\n     *\n     * @param  string  $name\n     * @param  string  $path\n     * @return string\n     */\n    protected function getPath($name, $path)\n    {\n        return $path.'/'.$this->getDatePrefix().'_'.$name.'.php';\n    }\n\n    /**\n     * Fire the registered post create hooks.\n     *\n     * @param  string|null  $table\n     * @return void\n     */\n    protected function firePostCreateHooks($table)\n    {\n        foreach ($this->postCreate as $callback) {\n            call_user_func($callback, $table);\n        }\n    }\n\n    /**\n     * Register a post migration create hook.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function afterCreate(Closure $callback)\n    {\n        $this->postCreate[] = $callback;\n    }\n\n    /**\n     * Get the date prefix for the migration.\n     *\n     * @return string\n     */\n    protected function getDatePrefix()\n    {\n        return date('Y_m_d_His');\n    }\n\n    /**\n     * Get the path to the stubs.\n     *\n     * @return string\n     */\n    public function stubPath()\n    {\n        return __DIR__.'/stubs';\n    }\n\n    /**\n     * Get the filesystem instance.\n     *\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public function getFilesystem()\n    {\n        return $this->files;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/MigrationRepositoryInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Migrations;\n\ninterface MigrationRepositoryInterface\n{\n    /**\n     * Get the completed migrations.\n     *\n     * @return array\n     */\n    public function getRan();\n\n    /**\n     * Get list of migrations.\n     *\n     * @param  int  $steps\n     * @return array\n     */\n    public function getMigrations($steps);\n\n    /**\n     * Get the last migration batch.\n     *\n     * @return array\n     */\n    public function getLast();\n\n    /**\n     * Get the completed migrations with their batch numbers.\n     *\n     * @return array\n     */\n    public function getMigrationBatches();\n\n    /**\n     * Log that a migration was run.\n     *\n     * @param  string  $file\n     * @param  int  $batch\n     * @return void\n     */\n    public function log($file, $batch);\n\n    /**\n     * Remove a migration from the log.\n     *\n     * @param  object  $migration\n     * @return void\n     */\n    public function delete($migration);\n\n    /**\n     * Get the next migration batch number.\n     *\n     * @return int\n     */\n    public function getNextBatchNumber();\n\n    /**\n     * Create the migration repository data store.\n     *\n     * @return void\n     */\n    public function createRepository();\n\n    /**\n     * Determine if the migration repository exists.\n     *\n     * @return bool\n     */\n    public function repositoryExists();\n\n    /**\n     * Set the information source to gather data.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setSource($name);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Migrations;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Console\\OutputStyle;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Database\\Events\\MigrationEnded;\nuse Illuminate\\Database\\Events\\MigrationsEnded;\nuse Illuminate\\Database\\Events\\MigrationStarted;\nuse Illuminate\\Database\\Events\\MigrationsStarted;\nuse Illuminate\\Database\\ConnectionResolverInterface as Resolver;\n\nclass Migrator\n{\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The migration repository implementation.\n     *\n     * @var \\Illuminate\\Database\\Migrations\\MigrationRepositoryInterface\n     */\n    protected $repository;\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The connection resolver instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $resolver;\n\n    /**\n     * The name of the default connection.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * The paths to all of the migration files.\n     *\n     * @var array\n     */\n    protected $paths = [];\n\n    /**\n     * The output interface implementation.\n     *\n     * @var \\Illuminate\\Console\\OutputStyle\n     */\n    protected $output;\n\n    /**\n     * Create a new migrator instance.\n     *\n     * @param  \\Illuminate\\Database\\Migrations\\MigrationRepositoryInterface  $repository\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $resolver\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher|null  $dispatcher\n     * @return void\n     */\n    public function __construct(MigrationRepositoryInterface $repository,\n                                Resolver $resolver,\n                                Filesystem $files,\n                                Dispatcher $dispatcher = null)\n    {\n        $this->files = $files;\n        $this->events = $dispatcher;\n        $this->resolver = $resolver;\n        $this->repository = $repository;\n    }\n\n    /**\n     * Run the pending migrations at a given path.\n     *\n     * @param  array|string  $paths\n     * @param  array  $options\n     * @return array\n     */\n    public function run($paths = [], array $options = [])\n    {\n        // Once we grab all of the migration files for the path, we will compare them\n        // against the migrations that have already been run for this package then\n        // run each of the outstanding migrations against a database connection.\n        $files = $this->getMigrationFiles($paths);\n\n        $this->requireFiles($migrations = $this->pendingMigrations(\n            $files, $this->repository->getRan()\n        ));\n\n        // Once we have all these migrations that are outstanding we are ready to run\n        // we will go ahead and run them \"up\". This will execute each migration as\n        // an operation against a database. Then we'll return this list of them.\n        $this->runPending($migrations, $options);\n\n        return $migrations;\n    }\n\n    /**\n     * Get the migration files that have not yet run.\n     *\n     * @param  array  $files\n     * @param  array  $ran\n     * @return array\n     */\n    protected function pendingMigrations($files, $ran)\n    {\n        return Collection::make($files)\n                ->reject(function ($file) use ($ran) {\n                    return in_array($this->getMigrationName($file), $ran);\n                })->values()->all();\n    }\n\n    /**\n     * Run an array of migrations.\n     *\n     * @param  array  $migrations\n     * @param  array  $options\n     * @return void\n     */\n    public function runPending(array $migrations, array $options = [])\n    {\n        // First we will just make sure that there are any migrations to run. If there\n        // aren't, we will just make a note of it to the developer so they're aware\n        // that all of the migrations have been run against this database system.\n        if (count($migrations) === 0) {\n            $this->note('<info>Nothing to migrate.</info>');\n\n            return;\n        }\n\n        // Next, we will get the next batch number for the migrations so we can insert\n        // correct batch number in the database migrations repository when we store\n        // each migration's execution. We will also extract a few of the options.\n        $batch = $this->repository->getNextBatchNumber();\n\n        $pretend = $options['pretend'] ?? false;\n\n        $step = $options['step'] ?? false;\n\n        $this->fireMigrationEvent(new MigrationsStarted);\n\n        // Once we have the array of migrations, we will spin through them and run the\n        // migrations \"up\" so the changes are made to the databases. We'll then log\n        // that the migration was run so we don't repeat it next time we execute.\n        foreach ($migrations as $file) {\n            $this->runUp($file, $batch, $pretend);\n\n            if ($step) {\n                $batch++;\n            }\n        }\n\n        $this->fireMigrationEvent(new MigrationsEnded);\n    }\n\n    /**\n     * Run \"up\" a migration instance.\n     *\n     * @param  string  $file\n     * @param  int     $batch\n     * @param  bool    $pretend\n     * @return void\n     */\n    protected function runUp($file, $batch, $pretend)\n    {\n        // First we will resolve a \"real\" instance of the migration class from this\n        // migration file name. Once we have the instances we can run the actual\n        // command such as \"up\" or \"down\", or we can just simulate the action.\n        $migration = $this->resolve(\n            $name = $this->getMigrationName($file)\n        );\n\n        if ($pretend) {\n            return $this->pretendToRun($migration, 'up');\n        }\n\n        $this->note(\"<comment>Migrating:</comment> {$name}\");\n\n        $this->runMigration($migration, 'up');\n\n        // Once we have run a migrations class, we will log that it was run in this\n        // repository so that we don't try to run it next time we do a migration\n        // in the application. A migration repository keeps the migrate order.\n        $this->repository->log($name, $batch);\n\n        $this->note(\"<info>Migrated:</info>  {$name}\");\n    }\n\n    /**\n     * Rollback the last migration operation.\n     *\n     * @param  array|string $paths\n     * @param  array  $options\n     * @return array\n     */\n    public function rollback($paths = [], array $options = [])\n    {\n        // We want to pull in the last batch of migrations that ran on the previous\n        // migration operation. We'll then reverse those migrations and run each\n        // of them \"down\" to reverse the last migration \"operation\" which ran.\n        $migrations = $this->getMigrationsForRollback($options);\n\n        if (count($migrations) === 0) {\n            $this->note('<info>Nothing to rollback.</info>');\n\n            return [];\n        }\n\n        return $this->rollbackMigrations($migrations, $paths, $options);\n    }\n\n    /**\n     * Get the migrations for a rollback operation.\n     *\n     * @param  array  $options\n     * @return array\n     */\n    protected function getMigrationsForRollback(array $options)\n    {\n        if (($steps = $options['step'] ?? 0) > 0) {\n            return $this->repository->getMigrations($steps);\n        }\n\n        return $this->repository->getLast();\n    }\n\n    /**\n     * Rollback the given migrations.\n     *\n     * @param  array  $migrations\n     * @param  array|string  $paths\n     * @param  array  $options\n     * @return array\n     */\n    protected function rollbackMigrations(array $migrations, $paths, array $options)\n    {\n        $rolledBack = [];\n\n        $this->requireFiles($files = $this->getMigrationFiles($paths));\n\n        $this->fireMigrationEvent(new MigrationsStarted);\n\n        // Next we will run through all of the migrations and call the \"down\" method\n        // which will reverse each migration in order. This getLast method on the\n        // repository already returns these migration's names in reverse order.\n        foreach ($migrations as $migration) {\n            $migration = (object) $migration;\n\n            if (! $file = Arr::get($files, $migration->migration)) {\n                $this->note(\"<fg=red>Migration not found:</> {$migration->migration}\");\n\n                continue;\n            }\n\n            $rolledBack[] = $file;\n\n            $this->runDown(\n                $file, $migration,\n                $options['pretend'] ?? false\n            );\n        }\n\n        $this->fireMigrationEvent(new MigrationsEnded);\n\n        return $rolledBack;\n    }\n\n    /**\n     * Rolls all of the currently applied migrations back.\n     *\n     * @param  array|string $paths\n     * @param  bool  $pretend\n     * @return array\n     */\n    public function reset($paths = [], $pretend = false)\n    {\n        // Next, we will reverse the migration list so we can run them back in the\n        // correct order for resetting this database. This will allow us to get\n        // the database back into its \"empty\" state ready for the migrations.\n        $migrations = array_reverse($this->repository->getRan());\n\n        if (count($migrations) === 0) {\n            $this->note('<info>Nothing to rollback.</info>');\n\n            return [];\n        }\n\n        return $this->resetMigrations($migrations, $paths, $pretend);\n    }\n\n    /**\n     * Reset the given migrations.\n     *\n     * @param  array  $migrations\n     * @param  array  $paths\n     * @param  bool  $pretend\n     * @return array\n     */\n    protected function resetMigrations(array $migrations, array $paths, $pretend = false)\n    {\n        // Since the getRan method that retrieves the migration name just gives us the\n        // migration name, we will format the names into objects with the name as a\n        // property on the objects so that we can pass it to the rollback method.\n        $migrations = collect($migrations)->map(function ($m) {\n            return (object) ['migration' => $m];\n        })->all();\n\n        return $this->rollbackMigrations(\n            $migrations, $paths, compact('pretend')\n        );\n    }\n\n    /**\n     * Run \"down\" a migration instance.\n     *\n     * @param  string  $file\n     * @param  object  $migration\n     * @param  bool    $pretend\n     * @return void\n     */\n    protected function runDown($file, $migration, $pretend)\n    {\n        // First we will get the file name of the migration so we can resolve out an\n        // instance of the migration. Once we get an instance we can either run a\n        // pretend execution of the migration or we can run the real migration.\n        $instance = $this->resolve(\n            $name = $this->getMigrationName($file)\n        );\n\n        $this->note(\"<comment>Rolling back:</comment> {$name}\");\n\n        if ($pretend) {\n            return $this->pretendToRun($instance, 'down');\n        }\n\n        $this->runMigration($instance, 'down');\n\n        // Once we have successfully run the migration \"down\" we will remove it from\n        // the migration repository so it will be considered to have not been run\n        // by the application then will be able to fire by any later operation.\n        $this->repository->delete($migration);\n\n        $this->note(\"<info>Rolled back:</info>  {$name}\");\n    }\n\n    /**\n     * Run a migration inside a transaction if the database supports it.\n     *\n     * @param  object  $migration\n     * @param  string  $method\n     * @return void\n     */\n    protected function runMigration($migration, $method)\n    {\n        $connection = $this->resolveConnection(\n            $migration->getConnection()\n        );\n\n        $callback = function () use ($migration, $method) {\n            if (method_exists($migration, $method)) {\n                $this->fireMigrationEvent(new MigrationStarted($migration, $method));\n\n                $migration->{$method}();\n\n                $this->fireMigrationEvent(new MigrationEnded($migration, $method));\n            }\n        };\n\n        $this->getSchemaGrammar($connection)->supportsSchemaTransactions()\n            && $migration->withinTransaction\n                    ? $connection->transaction($callback)\n                    : $callback();\n    }\n\n    /**\n     * Pretend to run the migrations.\n     *\n     * @param  object  $migration\n     * @param  string  $method\n     * @return void\n     */\n    protected function pretendToRun($migration, $method)\n    {\n        foreach ($this->getQueries($migration, $method) as $query) {\n            $name = get_class($migration);\n\n            $this->note(\"<info>{$name}:</info> {$query['query']}\");\n        }\n    }\n\n    /**\n     * Get all of the queries that would be run for a migration.\n     *\n     * @param  object  $migration\n     * @param  string  $method\n     * @return array\n     */\n    protected function getQueries($migration, $method)\n    {\n        // Now that we have the connections we can resolve it and pretend to run the\n        // queries against the database returning the array of raw SQL statements\n        // that would get fired against the database system for this migration.\n        $db = $this->resolveConnection(\n            $migration->getConnection()\n        );\n\n        return $db->pretend(function () use ($migration, $method) {\n            if (method_exists($migration, $method)) {\n                $migration->{$method}();\n            }\n        });\n    }\n\n    /**\n     * Resolve a migration instance from a file.\n     *\n     * @param  string  $file\n     * @return object\n     */\n    public function resolve($file)\n    {\n        $class = Str::studly(implode('_', array_slice(explode('_', $file), 4)));\n\n        return new $class;\n    }\n\n    /**\n     * Get all of the migration files in a given path.\n     *\n     * @param  string|array  $paths\n     * @return array\n     */\n    public function getMigrationFiles($paths)\n    {\n        return Collection::make($paths)->flatMap(function ($path) {\n            return Str::endsWith($path, '.php') ? [$path] : $this->files->glob($path.'/*_*.php');\n        })->filter()->sortBy(function ($file) {\n            return $this->getMigrationName($file);\n        })->values()->keyBy(function ($file) {\n            return $this->getMigrationName($file);\n        })->all();\n    }\n\n    /**\n     * Require in all the migration files in a given path.\n     *\n     * @param  array   $files\n     * @return void\n     */\n    public function requireFiles(array $files)\n    {\n        foreach ($files as $file) {\n            $this->files->requireOnce($file);\n        }\n    }\n\n    /**\n     * Get the name of the migration.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function getMigrationName($path)\n    {\n        return str_replace('.php', '', basename($path));\n    }\n\n    /**\n     * Register a custom migration path.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function path($path)\n    {\n        $this->paths = array_unique(array_merge($this->paths, [$path]));\n    }\n\n    /**\n     * Get all of the custom migration paths.\n     *\n     * @return array\n     */\n    public function paths()\n    {\n        return $this->paths;\n    }\n\n    /**\n     * Get the default connection name.\n     *\n     * @return string\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Set the default connection name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setConnection($name)\n    {\n        if (! is_null($name)) {\n            $this->resolver->setDefaultConnection($name);\n        }\n\n        $this->repository->setSource($name);\n\n        $this->connection = $name;\n    }\n\n    /**\n     * Resolve the database connection instance.\n     *\n     * @param  string  $connection\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function resolveConnection($connection)\n    {\n        return $this->resolver->connection($connection ?: $this->connection);\n    }\n\n    /**\n     * Get the schema grammar out of a migration connection.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n     */\n    protected function getSchemaGrammar($connection)\n    {\n        if (is_null($grammar = $connection->getSchemaGrammar())) {\n            $connection->useDefaultSchemaGrammar();\n\n            $grammar = $connection->getSchemaGrammar();\n        }\n\n        return $grammar;\n    }\n\n    /**\n     * Get the migration repository instance.\n     *\n     * @return \\Illuminate\\Database\\Migrations\\MigrationRepositoryInterface\n     */\n    public function getRepository()\n    {\n        return $this->repository;\n    }\n\n    /**\n     * Determine if the migration repository exists.\n     *\n     * @return bool\n     */\n    public function repositoryExists()\n    {\n        return $this->repository->repositoryExists();\n    }\n\n    /**\n     * Get the file system instance.\n     *\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public function getFilesystem()\n    {\n        return $this->files;\n    }\n\n    /**\n     * Set the output implementation that should be used by the console.\n     *\n     * @param  \\Illuminate\\Console\\OutputStyle  $output\n     * @return $this\n     */\n    public function setOutput(OutputStyle $output)\n    {\n        $this->output = $output;\n\n        return $this;\n    }\n\n    /**\n     * Write a note to the console's output.\n     *\n     * @param  string  $message\n     * @return void\n     */\n    protected function note($message)\n    {\n        if ($this->output) {\n            $this->output->writeln($message);\n        }\n    }\n\n    /**\n     * Fire the given event for the migration.\n     *\n     * @param  \\Illuminate\\Contracts\\Database\\Events\\MigrationEvent $event\n     * @return void\n     */\n    public function fireMigrationEvent($event)\n    {\n        if ($this->events) {\n            $this->events->dispatch($event);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/blank.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass DummyClass extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        //\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/create.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass DummyClass extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('DummyTable', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('DummyTable');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Migrations/stubs/update.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass DummyClass extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::table('DummyTable', function (Blueprint $table) {\n            //\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::table('DummyTable', function (Blueprint $table) {\n            //\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/MySqlConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse PDO;\nuse Illuminate\\Database\\Schema\\MySqlBuilder;\nuse Illuminate\\Database\\Query\\Processors\\MySqlProcessor;\nuse Doctrine\\DBAL\\Driver\\PDOMySql\\Driver as DoctrineDriver;\nuse Illuminate\\Database\\Query\\Grammars\\MySqlGrammar as QueryGrammar;\nuse Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar as SchemaGrammar;\n\nclass MySqlConnection extends Connection\n{\n    /**\n     * Get the default query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\MySqlGrammar\n     */\n    protected function getDefaultQueryGrammar()\n    {\n        return $this->withTablePrefix(new QueryGrammar);\n    }\n\n    /**\n     * Get a schema builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\MySqlBuilder\n     */\n    public function getSchemaBuilder()\n    {\n        if (is_null($this->schemaGrammar)) {\n            $this->useDefaultSchemaGrammar();\n        }\n\n        return new MySqlBuilder($this);\n    }\n\n    /**\n     * Get the default schema grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\MySqlGrammar\n     */\n    protected function getDefaultSchemaGrammar()\n    {\n        return $this->withTablePrefix(new SchemaGrammar);\n    }\n\n    /**\n     * Get the default post processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\MySqlProcessor\n     */\n    protected function getDefaultPostProcessor()\n    {\n        return new MySqlProcessor;\n    }\n\n    /**\n     * Get the Doctrine DBAL driver.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\PDOMySql\\Driver\n     */\n    protected function getDoctrineDriver()\n    {\n        return new DoctrineDriver;\n    }\n\n    /**\n     * Bind values to their parameters in the given statement.\n     *\n     * @param  \\PDOStatement $statement\n     * @param  array  $bindings\n     * @return void\n     */\n    public function bindValues($statement, $bindings)\n    {\n        foreach ($bindings as $key => $value) {\n            $statement->bindValue(\n                is_string($key) ? $key : $key + 1, $value,\n                is_int($value) || is_float($value) ? PDO::PARAM_INT : PDO::PARAM_STR\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/PostgresConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Database\\Schema\\PostgresBuilder;\nuse Doctrine\\DBAL\\Driver\\PDOPgSql\\Driver as DoctrineDriver;\nuse Illuminate\\Database\\Query\\Processors\\PostgresProcessor;\nuse Illuminate\\Database\\Query\\Grammars\\PostgresGrammar as QueryGrammar;\nuse Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar as SchemaGrammar;\n\nclass PostgresConnection extends Connection\n{\n    /**\n     * Get the default query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\PostgresGrammar\n     */\n    protected function getDefaultQueryGrammar()\n    {\n        return $this->withTablePrefix(new QueryGrammar);\n    }\n\n    /**\n     * Get a schema builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\PostgresBuilder\n     */\n    public function getSchemaBuilder()\n    {\n        if (is_null($this->schemaGrammar)) {\n            $this->useDefaultSchemaGrammar();\n        }\n\n        return new PostgresBuilder($this);\n    }\n\n    /**\n     * Get the default schema grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\PostgresGrammar\n     */\n    protected function getDefaultSchemaGrammar()\n    {\n        return $this->withTablePrefix(new SchemaGrammar);\n    }\n\n    /**\n     * Get the default post processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\PostgresProcessor\n     */\n    protected function getDefaultPostProcessor()\n    {\n        return new PostgresProcessor;\n    }\n\n    /**\n     * Get the Doctrine DBAL driver.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\PDOPgSql\\Driver\n     */\n    protected function getDoctrineDriver()\n    {\n        return new DoctrineDriver;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query;\n\nuse Closure;\nuse RuntimeException;\nuse DateTimeInterface;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Pagination\\Paginator;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Database\\ConnectionInterface;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Database\\Concerns\\BuildsQueries;\nuse Illuminate\\Database\\Query\\Grammars\\Grammar;\nuse Illuminate\\Database\\Query\\Processors\\Processor;\nuse Illuminate\\Database\\Eloquent\\Builder as EloquentBuilder;\n\nclass Builder\n{\n    use BuildsQueries, ForwardsCalls, Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    public $connection;\n\n    /**\n     * The database query grammar instance.\n     *\n     * @var \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    public $grammar;\n\n    /**\n     * The database query post processor instance.\n     *\n     * @var \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    public $processor;\n\n    /**\n     * The current query value bindings.\n     *\n     * @var array\n     */\n    public $bindings = [\n        'select' => [],\n        'from'   => [],\n        'join'   => [],\n        'where'  => [],\n        'having' => [],\n        'order'  => [],\n        'union'  => [],\n    ];\n\n    /**\n     * An aggregate function and column to be run.\n     *\n     * @var array\n     */\n    public $aggregate;\n\n    /**\n     * The columns that should be returned.\n     *\n     * @var array\n     */\n    public $columns;\n\n    /**\n     * Indicates if the query returns distinct results.\n     *\n     * @var bool\n     */\n    public $distinct = false;\n\n    /**\n     * The table which the query is targeting.\n     *\n     * @var string\n     */\n    public $from;\n\n    /**\n     * The table joins for the query.\n     *\n     * @var array\n     */\n    public $joins;\n\n    /**\n     * The where constraints for the query.\n     *\n     * @var array\n     */\n    public $wheres = [];\n\n    /**\n     * The groupings for the query.\n     *\n     * @var array\n     */\n    public $groups;\n\n    /**\n     * The having constraints for the query.\n     *\n     * @var array\n     */\n    public $havings;\n\n    /**\n     * The orderings for the query.\n     *\n     * @var array\n     */\n    public $orders;\n\n    /**\n     * The maximum number of records to return.\n     *\n     * @var int\n     */\n    public $limit;\n\n    /**\n     * The number of records to skip.\n     *\n     * @var int\n     */\n    public $offset;\n\n    /**\n     * The query union statements.\n     *\n     * @var array\n     */\n    public $unions;\n\n    /**\n     * The maximum number of union records to return.\n     *\n     * @var int\n     */\n    public $unionLimit;\n\n    /**\n     * The number of union records to skip.\n     *\n     * @var int\n     */\n    public $unionOffset;\n\n    /**\n     * The orderings for the union query.\n     *\n     * @var array\n     */\n    public $unionOrders;\n\n    /**\n     * Indicates whether row locking is being used.\n     *\n     * @var string|bool\n     */\n    public $lock;\n\n    /**\n     * All of the available clause operators.\n     *\n     * @var array\n     */\n    public $operators = [\n        '=', '<', '>', '<=', '>=', '<>', '!=', '<=>',\n        'like', 'like binary', 'not like', 'ilike',\n        '&', '|', '^', '<<', '>>',\n        'rlike', 'regexp', 'not regexp',\n        '~', '~*', '!~', '!~*', 'similar to',\n        'not similar to', 'not ilike', '~~*', '!~~*',\n    ];\n\n    /**\n     * Whether use write pdo for select.\n     *\n     * @var bool\n     */\n    public $useWritePdo = false;\n\n    /**\n     * Create a new query builder instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $connection\n     * @param  \\Illuminate\\Database\\Query\\Grammars\\Grammar|null  $grammar\n     * @param  \\Illuminate\\Database\\Query\\Processors\\Processor|null  $processor\n     * @return void\n     */\n    public function __construct(ConnectionInterface $connection,\n                                Grammar $grammar = null,\n                                Processor $processor = null)\n    {\n        $this->connection = $connection;\n        $this->grammar = $grammar ?: $connection->getQueryGrammar();\n        $this->processor = $processor ?: $connection->getPostProcessor();\n    }\n\n    /**\n     * Set the columns to be selected.\n     *\n     * @param  array|mixed  $columns\n     * @return $this\n     */\n    public function select($columns = ['*'])\n    {\n        $this->columns = is_array($columns) ? $columns : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Add a subselect expression to the query.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @param  string  $as\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function selectSub($query, $as)\n    {\n        [$query, $bindings] = $this->createSub($query);\n\n        return $this->selectRaw(\n            '('.$query.') as '.$this->grammar->wrap($as), $bindings\n        );\n    }\n\n    /**\n     * Add a new \"raw\" select expression to the query.\n     *\n     * @param  string  $expression\n     * @param  array   $bindings\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function selectRaw($expression, array $bindings = [])\n    {\n        $this->addSelect(new Expression($expression));\n\n        if ($bindings) {\n            $this->addBinding($bindings, 'select');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Makes \"from\" fetch from a subquery.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @param  string  $as\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function fromSub($query, $as)\n    {\n        [$query, $bindings] = $this->createSub($query);\n\n        return $this->fromRaw('('.$query.') as '.$this->grammar->wrapTable($as), $bindings);\n    }\n\n    /**\n     * Add a raw from clause to the query.\n     *\n     * @param  string  $expression\n     * @param  mixed   $bindings\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function fromRaw($expression, $bindings = [])\n    {\n        $this->from = new Expression($expression);\n\n        $this->addBinding($bindings, 'from');\n\n        return $this;\n    }\n\n    /**\n     * Creates a subquery and parse it.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @return array\n     */\n    protected function createSub($query)\n    {\n        // If the given query is a Closure, we will execute it while passing in a new\n        // query instance to the Closure. This will give the developer a chance to\n        // format and work with the query before we cast it to a raw SQL string.\n        if ($query instanceof Closure) {\n            $callback = $query;\n\n            $callback($query = $this->forSubQuery());\n        }\n\n        return $this->parseSub($query);\n    }\n\n    /**\n     * Parse the subquery into SQL and bindings.\n     *\n     * @param  mixed  $query\n     * @return array\n     */\n    protected function parseSub($query)\n    {\n        if ($query instanceof self || $query instanceof EloquentBuilder) {\n            return [$query->toSql(), $query->getBindings()];\n        } elseif (is_string($query)) {\n            return [$query, []];\n        } else {\n            throw new InvalidArgumentException;\n        }\n    }\n\n    /**\n     * Add a new select column to the query.\n     *\n     * @param  array|mixed  $column\n     * @return $this\n     */\n    public function addSelect($column)\n    {\n        $column = is_array($column) ? $column : func_get_args();\n\n        $this->columns = array_merge((array) $this->columns, $column);\n\n        return $this;\n    }\n\n    /**\n     * Force the query to only return distinct results.\n     *\n     * @return $this\n     */\n    public function distinct()\n    {\n        $this->distinct = true;\n\n        return $this;\n    }\n\n    /**\n     * Set the table which the query is targeting.\n     *\n     * @param  string  $table\n     * @return $this\n     */\n    public function from($table)\n    {\n        $this->from = $table;\n\n        return $this;\n    }\n\n    /**\n     * Add a join clause to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @param  string  $type\n     * @param  bool    $where\n     * @return $this\n     */\n    public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n    {\n        $join = $this->newJoinClause($this, $type, $table);\n\n        // If the first \"column\" of the join is really a Closure instance the developer\n        // is trying to build a join with a complex \"on\" clause containing more than\n        // one condition, so we'll add the join and call a Closure with the query.\n        if ($first instanceof Closure) {\n            call_user_func($first, $join);\n\n            $this->joins[] = $join;\n\n            $this->addBinding($join->getBindings(), 'join');\n        }\n\n        // If the column is simply a string, we can assume the join simply has a basic\n        // \"on\" clause with a single condition. So we will just build the join with\n        // this simple join clauses attached to it. There is not a join callback.\n        else {\n            $method = $where ? 'where' : 'on';\n\n            $this->joins[] = $join->$method($first, $operator, $second);\n\n            $this->addBinding($join->getBindings(), 'join');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a \"join where\" clause to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string  $operator\n     * @param  string  $second\n     * @param  string  $type\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function joinWhere($table, $first, $operator, $second, $type = 'inner')\n    {\n        return $this->join($table, $first, $operator, $second, $type, true);\n    }\n\n    /**\n     * Add a subquery join clause to the query.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @param  string  $as\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @param  string  $type\n     * @param  bool    $where\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false)\n    {\n        [$query, $bindings] = $this->createSub($query);\n\n        $expression = '('.$query.') as '.$this->grammar->wrapTable($as);\n\n        $this->addBinding($bindings, 'join');\n\n        return $this->join(new Expression($expression), $first, $operator, $second, $type, $where);\n    }\n\n    /**\n     * Add a left join to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function leftJoin($table, $first, $operator = null, $second = null)\n    {\n        return $this->join($table, $first, $operator, $second, 'left');\n    }\n\n    /**\n     * Add a \"join where\" clause to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string  $operator\n     * @param  string  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function leftJoinWhere($table, $first, $operator, $second)\n    {\n        return $this->joinWhere($table, $first, $operator, $second, 'left');\n    }\n\n    /**\n     * Add a subquery left join to the query.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @param  string  $as\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function leftJoinSub($query, $as, $first, $operator = null, $second = null)\n    {\n        return $this->joinSub($query, $as, $first, $operator, $second, 'left');\n    }\n\n    /**\n     * Add a right join to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function rightJoin($table, $first, $operator = null, $second = null)\n    {\n        return $this->join($table, $first, $operator, $second, 'right');\n    }\n\n    /**\n     * Add a \"right join where\" clause to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string  $first\n     * @param  string  $operator\n     * @param  string  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function rightJoinWhere($table, $first, $operator, $second)\n    {\n        return $this->joinWhere($table, $first, $operator, $second, 'right');\n    }\n\n    /**\n     * Add a subquery right join to the query.\n     *\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string $query\n     * @param  string  $as\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function rightJoinSub($query, $as, $first, $operator = null, $second = null)\n    {\n        return $this->joinSub($query, $as, $first, $operator, $second, 'right');\n    }\n\n    /**\n     * Add a \"cross join\" clause to the query.\n     *\n     * @param  string  $table\n     * @param  \\Closure|string|null  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function crossJoin($table, $first = null, $operator = null, $second = null)\n    {\n        if ($first) {\n            return $this->join($table, $first, $operator, $second, 'cross');\n        }\n\n        $this->joins[] = $this->newJoinClause($this, 'cross', $table);\n\n        return $this;\n    }\n\n    /**\n     * Get a new join clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder $parentQuery\n     * @param  string  $type\n     * @param  string  $table\n     * @return \\Illuminate\\Database\\Query\\JoinClause\n     */\n    protected function newJoinClause(self $parentQuery, $type, $table)\n    {\n        return new JoinClause($parentQuery, $type, $table);\n    }\n\n    /**\n     * Merge an array of where clauses and bindings.\n     *\n     * @param  array  $wheres\n     * @param  array  $bindings\n     * @return void\n     */\n    public function mergeWheres($wheres, $bindings)\n    {\n        $this->wheres = array_merge($this->wheres, (array) $wheres);\n\n        $this->bindings['where'] = array_values(\n            array_merge($this->bindings['where'], (array) $bindings)\n        );\n    }\n\n    /**\n     * Add a basic where clause to the query.\n     *\n     * @param  string|array|\\Closure  $column\n     * @param  mixed   $operator\n     * @param  mixed   $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function where($column, $operator = null, $value = null, $boolean = 'and')\n    {\n        // If the column is an array, we will assume it is an array of key-value pairs\n        // and can add them each as a where clause. We will maintain the boolean we\n        // received when the method was called and pass it into the nested where.\n        if (is_array($column)) {\n            return $this->addArrayOfWheres($column, $boolean);\n        }\n\n        // Here we will make some assumptions about the operator. If only 2 values are\n        // passed to the method, we will assume that the operator is an equals sign\n        // and keep going. Otherwise, we'll require the operator to be passed in.\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        // If the columns is actually a Closure instance, we will assume the developer\n        // wants to begin a nested where statement which is wrapped in parenthesis.\n        // We'll add that Closure to the query then return back out immediately.\n        if ($column instanceof Closure) {\n            return $this->whereNested($column, $boolean);\n        }\n\n        // If the given operator is not found in the list of valid operators we will\n        // assume that the developer is just short-cutting the '=' operators and\n        // we will set the operators to '=' and set the values appropriately.\n        if ($this->invalidOperator($operator)) {\n            [$value, $operator] = [$operator, '='];\n        }\n\n        // If the value is a Closure, it means the developer is performing an entire\n        // sub-select within the query and we will need to compile the sub-select\n        // within the where clause to get the appropriate query record results.\n        if ($value instanceof Closure) {\n            return $this->whereSub($column, $operator, $value, $boolean);\n        }\n\n        // If the value is \"null\", we will just assume the developer wants to add a\n        // where null clause to the query. So, we will allow a short-cut here to\n        // that method for convenience so the developer doesn't have to check.\n        if (is_null($value)) {\n            return $this->whereNull($column, $boolean, $operator !== '=');\n        }\n\n        $type = 'Basic';\n\n        // If the column is making a JSON reference we'll check to see if the value\n        // is a boolean. If it is, we'll add the raw boolean string as an actual\n        // value to the query to ensure this is properly handled by the query.\n        if (Str::contains($column, '->') && is_bool($value)) {\n            $value = new Expression($value ? 'true' : 'false');\n\n            if (is_string($column)) {\n                $type = 'JsonBoolean';\n            }\n        }\n\n        // Now that we are working with just a simple query we can put the elements\n        // in our array and add the query binding to our array of bindings that\n        // will be bound to each SQL statements when it is finally executed.\n        $this->wheres[] = compact(\n            'type', 'column', 'operator', 'value', 'boolean'\n        );\n\n        if (! $value instanceof Expression) {\n            $this->addBinding($value, 'where');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add an array of where clauses to the query.\n     *\n     * @param  array  $column\n     * @param  string  $boolean\n     * @param  string  $method\n     * @return $this\n     */\n    protected function addArrayOfWheres($column, $boolean, $method = 'where')\n    {\n        return $this->whereNested(function ($query) use ($column, $method, $boolean) {\n            foreach ($column as $key => $value) {\n                if (is_numeric($key) && is_array($value)) {\n                    $query->{$method}(...array_values($value));\n                } else {\n                    $query->$method($key, '=', $value, $boolean);\n                }\n            }\n        }, $boolean);\n    }\n\n    /**\n     * Prepare the value and operator for a where clause.\n     *\n     * @param  string  $value\n     * @param  string  $operator\n     * @param  bool  $useDefault\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function prepareValueAndOperator($value, $operator, $useDefault = false)\n    {\n        if ($useDefault) {\n            return [$operator, '='];\n        } elseif ($this->invalidOperatorAndValue($operator, $value)) {\n            throw new InvalidArgumentException('Illegal operator and value combination.');\n        }\n\n        return [$value, $operator];\n    }\n\n    /**\n     * Determine if the given operator and value combination is legal.\n     *\n     * Prevents using Null values with invalid operators.\n     *\n     * @param  string  $operator\n     * @param  mixed  $value\n     * @return bool\n     */\n    protected function invalidOperatorAndValue($operator, $value)\n    {\n        return is_null($value) && in_array($operator, $this->operators) &&\n             ! in_array($operator, ['=', '<>', '!=']);\n    }\n\n    /**\n     * Determine if the given operator is supported.\n     *\n     * @param  string  $operator\n     * @return bool\n     */\n    protected function invalidOperator($operator)\n    {\n        return ! in_array(strtolower($operator), $this->operators, true) &&\n               ! in_array(strtolower($operator), $this->grammar->getOperators(), true);\n    }\n\n    /**\n     * Add an \"or where\" clause to the query.\n     *\n     * @param  string|array|\\Closure  $column\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhere($column, $operator = null, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->where($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"where\" clause comparing two columns to the query.\n     *\n     * @param  string|array  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @param  string|null  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereColumn($first, $operator = null, $second = null, $boolean = 'and')\n    {\n        // If the column is an array, we will assume it is an array of key-value pairs\n        // and can add them each as a where clause. We will maintain the boolean we\n        // received when the method was called and pass it into the nested where.\n        if (is_array($first)) {\n            return $this->addArrayOfWheres($first, $boolean, 'whereColumn');\n        }\n\n        // If the given operator is not found in the list of valid operators we will\n        // assume that the developer is just short-cutting the '=' operators and\n        // we will set the operators to '=' and set the values appropriately.\n        if ($this->invalidOperator($operator)) {\n            [$second, $operator] = [$operator, '='];\n        }\n\n        // Finally, we will add this where clause into this array of clauses that we\n        // are building for the query. All of them will be compiled via a grammar\n        // once the query is about to be executed and run against the database.\n        $type = 'Column';\n\n        $this->wheres[] = compact(\n            'type', 'first', 'operator', 'second', 'boolean'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Add an \"or where\" clause comparing two columns to the query.\n     *\n     * @param  string|array  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereColumn($first, $operator = null, $second = null)\n    {\n        return $this->whereColumn($first, $operator, $second, 'or');\n    }\n\n    /**\n     * Add a raw where clause to the query.\n     *\n     * @param  string  $sql\n     * @param  mixed   $bindings\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function whereRaw($sql, $bindings = [], $boolean = 'and')\n    {\n        $this->wheres[] = ['type' => 'raw', 'sql' => $sql, 'boolean' => $boolean];\n\n        $this->addBinding((array) $bindings, 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add a raw or where clause to the query.\n     *\n     * @param  string  $sql\n     * @param  mixed   $bindings\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereRaw($sql, $bindings = [])\n    {\n        return $this->whereRaw($sql, $bindings, 'or');\n    }\n\n    /**\n     * Add a \"where in\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @param  string  $boolean\n     * @param  bool    $not\n     * @return $this\n     */\n    public function whereIn($column, $values, $boolean = 'and', $not = false)\n    {\n        $type = $not ? 'NotIn' : 'In';\n\n        // If the value is a query builder instance we will assume the developer wants to\n        // look for any values that exists within this given query. So we will add the\n        // query accordingly so that this query is properly executed when it is run.\n        if ($values instanceof self ||\n            $values instanceof EloquentBuilder ||\n            $values instanceof Closure) {\n            [$query, $bindings] = $this->createSub($values);\n\n            $values = [new Expression($query)];\n\n            $this->addBinding($bindings, 'where');\n        }\n\n        // Next, if the value is Arrayable we need to cast it to its raw array form so we\n        // have the underlying array value instead of an Arrayable object which is not\n        // able to be added as a binding, etc. We will then add to the wheres array.\n        if ($values instanceof Arrayable) {\n            $values = $values->toArray();\n        }\n\n        $this->wheres[] = compact('type', 'column', 'values', 'boolean');\n\n        // Finally we'll add a binding for each values unless that value is an expression\n        // in which case we will just skip over it since it will be the query as a raw\n        // string and not as a parameterized place-holder to be replaced by the PDO.\n        $this->addBinding($this->cleanBindings($values), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add an \"or where in\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereIn($column, $values)\n    {\n        return $this->whereIn($column, $values, 'or');\n    }\n\n    /**\n     * Add a \"where not in\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereNotIn($column, $values, $boolean = 'and')\n    {\n        return $this->whereIn($column, $values, $boolean, true);\n    }\n\n    /**\n     * Add an \"or where not in\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed   $values\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereNotIn($column, $values)\n    {\n        return $this->whereNotIn($column, $values, 'or');\n    }\n\n    /**\n     * Add a where in with a sub-select to the query.\n     *\n     * @param  string   $column\n     * @param  \\Closure $callback\n     * @param  string   $boolean\n     * @param  bool     $not\n     * @return $this\n     */\n    protected function whereInSub($column, Closure $callback, $boolean, $not)\n    {\n        $type = $not ? 'NotInSub' : 'InSub';\n\n        // To create the exists sub-select, we will actually create a query and call the\n        // provided callback with the query so the developer may set any of the query\n        // conditions they want for the in clause, then we'll put it in this array.\n        call_user_func($callback, $query = $this->forSubQuery());\n\n        $this->wheres[] = compact('type', 'column', 'query', 'boolean');\n\n        $this->addBinding($query->getBindings(), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add an external sub-select to the query.\n     *\n     * @param  string   $column\n     * @param  \\Illuminate\\Database\\Query\\Builder|static  $query\n     * @param  string   $boolean\n     * @param  bool     $not\n     * @return $this\n     */\n    protected function whereInExistingQuery($column, $query, $boolean, $not)\n    {\n        $type = $not ? 'NotInSub' : 'InSub';\n\n        $this->wheres[] = compact('type', 'column', 'query', 'boolean');\n\n        $this->addBinding($query->getBindings(), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add a \"where in raw\" clause for integer values to the query.\n     *\n     * @param  string  $column\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $values\n     * @param  string  $boolean\n     * @param  bool  $not\n     * @return $this\n     */\n    public function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false)\n    {\n        $type = $not ? 'NotInRaw' : 'InRaw';\n\n        if ($values instanceof Arrayable) {\n            $values = $values->toArray();\n        }\n\n        foreach ($values as &$value) {\n            $value = (int) $value;\n        }\n\n        $this->wheres[] = compact('type', 'column', 'values', 'boolean');\n\n        return $this;\n    }\n\n    /**\n     * Add a \"where not in raw\" clause for integer values to the query.\n     *\n     * @param  string  $column\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $values\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function whereIntegerNotInRaw($column, $values, $boolean = 'and')\n    {\n        return $this->whereIntegerInRaw($column, $values, $boolean, true);\n    }\n\n    /**\n     * Add a \"where null\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  string  $boolean\n     * @param  bool    $not\n     * @return $this\n     */\n    public function whereNull($column, $boolean = 'and', $not = false)\n    {\n        $type = $not ? 'NotNull' : 'Null';\n\n        $this->wheres[] = compact('type', 'column', 'boolean');\n\n        return $this;\n    }\n\n    /**\n     * Add an \"or where null\" clause to the query.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereNull($column)\n    {\n        return $this->whereNull($column, 'or');\n    }\n\n    /**\n     * Add a \"where not null\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereNotNull($column, $boolean = 'and')\n    {\n        return $this->whereNull($column, $boolean, true);\n    }\n\n    /**\n     * Add a where between statement to the query.\n     *\n     * @param  string  $column\n     * @param  array   $values\n     * @param  string  $boolean\n     * @param  bool  $not\n     * @return $this\n     */\n    public function whereBetween($column, array $values, $boolean = 'and', $not = false)\n    {\n        $type = 'between';\n\n        $this->wheres[] = compact('type', 'column', 'values', 'boolean', 'not');\n\n        $this->addBinding($this->cleanBindings($values), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add an or where between statement to the query.\n     *\n     * @param  string  $column\n     * @param  array   $values\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereBetween($column, array $values)\n    {\n        return $this->whereBetween($column, $values, 'or');\n    }\n\n    /**\n     * Add a where not between statement to the query.\n     *\n     * @param  string  $column\n     * @param  array   $values\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereNotBetween($column, array $values, $boolean = 'and')\n    {\n        return $this->whereBetween($column, $values, $boolean, true);\n    }\n\n    /**\n     * Add an or where not between statement to the query.\n     *\n     * @param  string  $column\n     * @param  array   $values\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereNotBetween($column, array $values)\n    {\n        return $this->whereNotBetween($column, $values, 'or');\n    }\n\n    /**\n     * Add an \"or where not null\" clause to the query.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereNotNull($column)\n    {\n        return $this->whereNotNull($column, 'or');\n    }\n\n    /**\n     * Add a \"where date\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereDate($column, $operator, $value = null, $boolean = 'and')\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        if ($value instanceof DateTimeInterface) {\n            $value = $value->format('Y-m-d');\n        }\n\n        return $this->addDateBasedWhere('Date', $column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Add an \"or where date\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereDate($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->whereDate($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"where time\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string   $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @param  string   $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereTime($column, $operator, $value = null, $boolean = 'and')\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        if ($value instanceof DateTimeInterface) {\n            $value = $value->format('H:i:s');\n        }\n\n        return $this->addDateBasedWhere('Time', $column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Add an \"or where time\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string   $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereTime($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->whereTime($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"where day\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereDay($column, $operator, $value = null, $boolean = 'and')\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        if ($value instanceof DateTimeInterface) {\n            $value = $value->format('d');\n        }\n\n        $value = str_pad($value, 2, '0', STR_PAD_LEFT);\n\n        return $this->addDateBasedWhere('Day', $column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Add an \"or where day\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereDay($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->addDateBasedWhere('Day', $column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"where month\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereMonth($column, $operator, $value = null, $boolean = 'and')\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        if ($value instanceof DateTimeInterface) {\n            $value = $value->format('m');\n        }\n\n        $value = str_pad($value, 2, '0', STR_PAD_LEFT);\n\n        return $this->addDateBasedWhere('Month', $column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Add an \"or where month\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereMonth($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->addDateBasedWhere('Month', $column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"where year\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|int|null  $value\n     * @param  string  $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereYear($column, $operator, $value = null, $boolean = 'and')\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        if ($value instanceof DateTimeInterface) {\n            $value = $value->format('Y');\n        }\n\n        return $this->addDateBasedWhere('Year', $column, $operator, $value, $boolean);\n    }\n\n    /**\n     * Add an \"or where year\" statement to the query.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  \\DateTimeInterface|string|int|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereYear($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->addDateBasedWhere('Year', $column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a date based (year, month, day, time) statement to the query.\n     *\n     * @param  string  $type\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  mixed  $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    protected function addDateBasedWhere($type, $column, $operator, $value, $boolean = 'and')\n    {\n        $this->wheres[] = compact('column', 'type', 'boolean', 'operator', 'value');\n\n        if (! $value instanceof Expression) {\n            $this->addBinding($value, 'where');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a nested where statement to the query.\n     *\n     * @param  \\Closure $callback\n     * @param  string   $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereNested(Closure $callback, $boolean = 'and')\n    {\n        call_user_func($callback, $query = $this->forNestedWhere());\n\n        return $this->addNestedWhereQuery($query, $boolean);\n    }\n\n    /**\n     * Create a new query instance for nested where condition.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function forNestedWhere()\n    {\n        return $this->newQuery()->from($this->from);\n    }\n\n    /**\n     * Add another query builder as a nested where to the query builder.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder|static $query\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function addNestedWhereQuery($query, $boolean = 'and')\n    {\n        if (count($query->wheres)) {\n            $type = 'Nested';\n\n            $this->wheres[] = compact('type', 'query', 'boolean');\n\n            $this->addBinding($query->getRawBindings()['where'], 'where');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a full sub-select to the query.\n     *\n     * @param  string   $column\n     * @param  string   $operator\n     * @param  \\Closure $callback\n     * @param  string   $boolean\n     * @return $this\n     */\n    protected function whereSub($column, $operator, Closure $callback, $boolean)\n    {\n        $type = 'Sub';\n\n        // Once we have the query instance we can simply execute it so it can add all\n        // of the sub-select's conditions to itself, and then we can cache it off\n        // in the array of where clauses for the \"main\" parent query instance.\n        call_user_func($callback, $query = $this->forSubQuery());\n\n        $this->wheres[] = compact(\n            'type', 'column', 'operator', 'query', 'boolean'\n        );\n\n        $this->addBinding($query->getBindings(), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Add an exists clause to the query.\n     *\n     * @param  \\Closure $callback\n     * @param  string   $boolean\n     * @param  bool     $not\n     * @return $this\n     */\n    public function whereExists(Closure $callback, $boolean = 'and', $not = false)\n    {\n        $query = $this->forSubQuery();\n\n        // Similar to the sub-select clause, we will create a new query instance so\n        // the developer may cleanly specify the entire exists query and we will\n        // compile the whole thing in the grammar and insert it into the SQL.\n        call_user_func($callback, $query);\n\n        return $this->addWhereExistsQuery($query, $boolean, $not);\n    }\n\n    /**\n     * Add an or exists clause to the query.\n     *\n     * @param  \\Closure $callback\n     * @param  bool     $not\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereExists(Closure $callback, $not = false)\n    {\n        return $this->whereExists($callback, 'or', $not);\n    }\n\n    /**\n     * Add a where not exists clause to the query.\n     *\n     * @param  \\Closure $callback\n     * @param  string   $boolean\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function whereNotExists(Closure $callback, $boolean = 'and')\n    {\n        return $this->whereExists($callback, $boolean, true);\n    }\n\n    /**\n     * Add a where not exists clause to the query.\n     *\n     * @param  \\Closure  $callback\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orWhereNotExists(Closure $callback)\n    {\n        return $this->orWhereExists($callback, true);\n    }\n\n    /**\n     * Add an exists clause to the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder $query\n     * @param  string  $boolean\n     * @param  bool  $not\n     * @return $this\n     */\n    public function addWhereExistsQuery(self $query, $boolean = 'and', $not = false)\n    {\n        $type = $not ? 'NotExists' : 'Exists';\n\n        $this->wheres[] = compact('type', 'query', 'boolean');\n\n        $this->addBinding($query->getBindings(), 'where');\n\n        return $this;\n    }\n\n    /**\n     * Adds a where condition using row values.\n     *\n     * @param  array   $columns\n     * @param  string  $operator\n     * @param  array   $values\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function whereRowValues($columns, $operator, $values, $boolean = 'and')\n    {\n        if (count($columns) !== count($values)) {\n            throw new InvalidArgumentException('The number of columns must match the number of values');\n        }\n\n        $type = 'RowValues';\n\n        $this->wheres[] = compact('type', 'columns', 'operator', 'values', 'boolean');\n\n        $this->addBinding($this->cleanBindings($values));\n\n        return $this;\n    }\n\n    /**\n     * Adds a or where condition using row values.\n     *\n     * @param  array   $columns\n     * @param  string  $operator\n     * @param  array   $values\n     * @return $this\n     */\n    public function orWhereRowValues($columns, $operator, $values)\n    {\n        return $this->whereRowValues($columns, $operator, $values, 'or');\n    }\n\n    /**\n     * Add a \"where JSON contains\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $value\n     * @param  string  $boolean\n     * @param  bool  $not\n     * @return $this\n     */\n    public function whereJsonContains($column, $value, $boolean = 'and', $not = false)\n    {\n        $type = 'JsonContains';\n\n        $this->wheres[] = compact('type', 'column', 'value', 'boolean', 'not');\n\n        if (! $value instanceof Expression) {\n            $this->addBinding($this->grammar->prepareBindingForJsonContains($value));\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a \"or where JSON contains\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function orWhereJsonContains($column, $value)\n    {\n        return $this->whereJsonContains($column, $value, 'or');\n    }\n\n    /**\n     * Add a \"where JSON not contains\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function whereJsonDoesntContain($column, $value, $boolean = 'and')\n    {\n        return $this->whereJsonContains($column, $value, $boolean, true);\n    }\n\n    /**\n     * Add a \"or where JSON not contains\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function orWhereJsonDoesntContain($column, $value)\n    {\n        return $this->whereJsonDoesntContain($column, $value, 'or');\n    }\n\n    /**\n     * Add a \"where JSON length\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function whereJsonLength($column, $operator, $value = null, $boolean = 'and')\n    {\n        $type = 'JsonLength';\n\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        $this->wheres[] = compact('type', 'column', 'operator', 'value', 'boolean');\n\n        if (! $value instanceof Expression) {\n            $this->addBinding($value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a \"or where JSON length\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function orWhereJsonLength($column, $operator, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->whereJsonLength($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Handles dynamic \"where\" clauses to the query.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return $this\n     */\n    public function dynamicWhere($method, $parameters)\n    {\n        $finder = substr($method, 5);\n\n        $segments = preg_split(\n            '/(And|Or)(?=[A-Z])/', $finder, -1, PREG_SPLIT_DELIM_CAPTURE\n        );\n\n        // The connector variable will determine which connector will be used for the\n        // query condition. We will change it as we come across new boolean values\n        // in the dynamic method strings, which could contain a number of these.\n        $connector = 'and';\n\n        $index = 0;\n\n        foreach ($segments as $segment) {\n            // If the segment is not a boolean connector, we can assume it is a column's name\n            // and we will add it to the query as a new constraint as a where clause, then\n            // we can keep iterating through the dynamic method string's segments again.\n            if ($segment !== 'And' && $segment !== 'Or') {\n                $this->addDynamic($segment, $connector, $parameters, $index);\n\n                $index++;\n            }\n\n            // Otherwise, we will store the connector so we know how the next where clause we\n            // find in the query should be connected to the previous ones, meaning we will\n            // have the proper boolean connector to connect the next where clause found.\n            else {\n                $connector = $segment;\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a single dynamic where clause statement to the query.\n     *\n     * @param  string  $segment\n     * @param  string  $connector\n     * @param  array   $parameters\n     * @param  int     $index\n     * @return void\n     */\n    protected function addDynamic($segment, $connector, $parameters, $index)\n    {\n        // Once we have parsed out the columns and formatted the boolean operators we\n        // are ready to add it to this query as a where clause just like any other\n        // clause on the query. Then we'll increment the parameter index values.\n        $bool = strtolower($connector);\n\n        $this->where(Str::snake($segment), '=', $parameters[$index], $bool);\n    }\n\n    /**\n     * Add a \"group by\" clause to the query.\n     *\n     * @param  array  ...$groups\n     * @return $this\n     */\n    public function groupBy(...$groups)\n    {\n        foreach ($groups as $group) {\n            $this->groups = array_merge(\n                (array) $this->groups,\n                Arr::wrap($group)\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a \"having\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  string|null  $operator\n     * @param  string|null  $value\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function having($column, $operator = null, $value = null, $boolean = 'and')\n    {\n        $type = 'Basic';\n\n        // Here we will make some assumptions about the operator. If only 2 values are\n        // passed to the method, we will assume that the operator is an equals sign\n        // and keep going. Otherwise, we'll require the operator to be passed in.\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        // If the given operator is not found in the list of valid operators we will\n        // assume that the developer is just short-cutting the '=' operators and\n        // we will set the operators to '=' and set the values appropriately.\n        if ($this->invalidOperator($operator)) {\n            [$value, $operator] = [$operator, '='];\n        }\n\n        $this->havings[] = compact('type', 'column', 'operator', 'value', 'boolean');\n\n        if (! $value instanceof Expression) {\n            $this->addBinding($value, 'having');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a \"or having\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  string|null  $operator\n     * @param  string|null  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orHaving($column, $operator = null, $value = null)\n    {\n        [$value, $operator] = $this->prepareValueAndOperator(\n            $value, $operator, func_num_args() === 2\n        );\n\n        return $this->having($column, $operator, $value, 'or');\n    }\n\n    /**\n     * Add a \"having between \" clause to the query.\n     *\n     * @param  string  $column\n     * @param  array  $values\n     * @param  string  $boolean\n     * @param  bool  $not\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function havingBetween($column, array $values, $boolean = 'and', $not = false)\n    {\n        $type = 'between';\n\n        $this->havings[] = compact('type', 'column', 'values', 'boolean', 'not');\n\n        $this->addBinding($this->cleanBindings($values), 'having');\n\n        return $this;\n    }\n\n    /**\n     * Add a raw having clause to the query.\n     *\n     * @param  string  $sql\n     * @param  array   $bindings\n     * @param  string  $boolean\n     * @return $this\n     */\n    public function havingRaw($sql, array $bindings = [], $boolean = 'and')\n    {\n        $type = 'Raw';\n\n        $this->havings[] = compact('type', 'sql', 'boolean');\n\n        $this->addBinding($bindings, 'having');\n\n        return $this;\n    }\n\n    /**\n     * Add a raw or having clause to the query.\n     *\n     * @param  string  $sql\n     * @param  array   $bindings\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function orHavingRaw($sql, array $bindings = [])\n    {\n        return $this->havingRaw($sql, $bindings, 'or');\n    }\n\n    /**\n     * Add an \"order by\" clause to the query.\n     *\n     * @param  string  $column\n     * @param  string  $direction\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function orderBy($column, $direction = 'asc')\n    {\n        $direction = strtolower($direction);\n\n        if (! in_array($direction, ['asc', 'desc'], true)) {\n            throw new InvalidArgumentException('Order direction must be \"asc\" or \"desc\".');\n        }\n\n        $this->{$this->unions ? 'unionOrders' : 'orders'}[] = [\n            'column' => $column,\n            'direction' => $direction,\n        ];\n\n        return $this;\n    }\n\n    /**\n     * Add a descending \"order by\" clause to the query.\n     *\n     * @param  string  $column\n     * @return $this\n     */\n    public function orderByDesc($column)\n    {\n        return $this->orderBy($column, 'desc');\n    }\n\n    /**\n     * Add an \"order by\" clause for a timestamp to the query.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function latest($column = 'created_at')\n    {\n        return $this->orderBy($column, 'desc');\n    }\n\n    /**\n     * Add an \"order by\" clause for a timestamp to the query.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function oldest($column = 'created_at')\n    {\n        return $this->orderBy($column, 'asc');\n    }\n\n    /**\n     * Put the query's results in random order.\n     *\n     * @param  string  $seed\n     * @return $this\n     */\n    public function inRandomOrder($seed = '')\n    {\n        return $this->orderByRaw($this->grammar->compileRandom($seed));\n    }\n\n    /**\n     * Add a raw \"order by\" clause to the query.\n     *\n     * @param  string  $sql\n     * @param  array  $bindings\n     * @return $this\n     */\n    public function orderByRaw($sql, $bindings = [])\n    {\n        $type = 'Raw';\n\n        $this->{$this->unions ? 'unionOrders' : 'orders'}[] = compact('type', 'sql');\n\n        $this->addBinding($bindings, 'order');\n\n        return $this;\n    }\n\n    /**\n     * Alias to set the \"offset\" value of the query.\n     *\n     * @param  int  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function skip($value)\n    {\n        return $this->offset($value);\n    }\n\n    /**\n     * Set the \"offset\" value of the query.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function offset($value)\n    {\n        $property = $this->unions ? 'unionOffset' : 'offset';\n\n        $this->$property = max(0, $value);\n\n        return $this;\n    }\n\n    /**\n     * Alias to set the \"limit\" value of the query.\n     *\n     * @param  int  $value\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function take($value)\n    {\n        return $this->limit($value);\n    }\n\n    /**\n     * Set the \"limit\" value of the query.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function limit($value)\n    {\n        $property = $this->unions ? 'unionLimit' : 'limit';\n\n        if ($value >= 0) {\n            $this->$property = $value;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the limit and offset for a given page.\n     *\n     * @param  int  $page\n     * @param  int  $perPage\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function forPage($page, $perPage = 15)\n    {\n        return $this->skip(($page - 1) * $perPage)->take($perPage);\n    }\n\n    /**\n     * Constrain the query to the previous \"page\" of results before a given ID.\n     *\n     * @param  int  $perPage\n     * @param  int|null  $lastId\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id')\n    {\n        $this->orders = $this->removeExistingOrdersFor($column);\n\n        if (! is_null($lastId)) {\n            $this->where($column, '<', $lastId);\n        }\n\n        return $this->orderBy($column, 'desc')\n                    ->take($perPage);\n    }\n\n    /**\n     * Constrain the query to the next \"page\" of results after a given ID.\n     *\n     * @param  int  $perPage\n     * @param  int|null  $lastId\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id')\n    {\n        $this->orders = $this->removeExistingOrdersFor($column);\n\n        if (! is_null($lastId)) {\n            $this->where($column, '>', $lastId);\n        }\n\n        return $this->orderBy($column, 'asc')\n                    ->take($perPage);\n    }\n\n    /**\n     * Get an array with all orders with a given column removed.\n     *\n     * @param  string  $column\n     * @return array\n     */\n    protected function removeExistingOrdersFor($column)\n    {\n        return Collection::make($this->orders)\n                    ->reject(function ($order) use ($column) {\n                        return isset($order['column'])\n                               ? $order['column'] === $column : false;\n                    })->values()->all();\n    }\n\n    /**\n     * Add a union statement to the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder|\\Closure  $query\n     * @param  bool  $all\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function union($query, $all = false)\n    {\n        if ($query instanceof Closure) {\n            call_user_func($query, $query = $this->newQuery());\n        }\n\n        $this->unions[] = compact('query', 'all');\n\n        $this->addBinding($query->getBindings(), 'union');\n\n        return $this;\n    }\n\n    /**\n     * Add a union all statement to the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder|\\Closure  $query\n     * @return \\Illuminate\\Database\\Query\\Builder|static\n     */\n    public function unionAll($query)\n    {\n        return $this->union($query, true);\n    }\n\n    /**\n     * Lock the selected rows in the table.\n     *\n     * @param  string|bool  $value\n     * @return $this\n     */\n    public function lock($value = true)\n    {\n        $this->lock = $value;\n\n        if (! is_null($this->lock)) {\n            $this->useWritePdo();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Lock the selected rows in the table for updating.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function lockForUpdate()\n    {\n        return $this->lock(true);\n    }\n\n    /**\n     * Share lock the selected rows in the table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function sharedLock()\n    {\n        return $this->lock(false);\n    }\n\n    /**\n     * Get the SQL representation of the query.\n     *\n     * @return string\n     */\n    public function toSql()\n    {\n        return $this->grammar->compileSelect($this);\n    }\n\n    /**\n     * Execute a query for a single record by ID.\n     *\n     * @param  int|string  $id\n     * @param  array  $columns\n     * @return mixed|static\n     */\n    public function find($id, $columns = ['*'])\n    {\n        return $this->where('id', '=', $id)->first($columns);\n    }\n\n    /**\n     * Get a single column's value from the first result of a query.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function value($column)\n    {\n        $result = (array) $this->first([$column]);\n\n        return count($result) > 0 ? reset($result) : null;\n    }\n\n    /**\n     * Execute the query as a \"select\" statement.\n     *\n     * @param  array|string  $columns\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function get($columns = ['*'])\n    {\n        return collect($this->onceWithColumns(Arr::wrap($columns), function () {\n            return $this->processor->processSelect($this, $this->runSelect());\n        }));\n    }\n\n    /**\n     * Run the query as a \"select\" statement against the connection.\n     *\n     * @return array\n     */\n    protected function runSelect()\n    {\n        return $this->connection->select(\n            $this->toSql(), $this->getBindings(), ! $this->useWritePdo\n        );\n    }\n\n    /**\n     * Paginate the given query into a simple paginator.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\n     */\n    public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $page = $page ?: Paginator::resolveCurrentPage($pageName);\n\n        $total = $this->getCountForPagination();\n\n        $results = $total ? $this->forPage($page, $perPage)->get($columns) : collect();\n\n        return $this->paginator($results, $total, $perPage, $page, [\n            'path' => Paginator::resolveCurrentPath(),\n            'pageName' => $pageName,\n        ]);\n    }\n\n    /**\n     * Get a paginator only supporting simple next and previous links.\n     *\n     * This is more efficient on larger data-sets, etc.\n     *\n     * @param  int  $perPage\n     * @param  array  $columns\n     * @param  string  $pageName\n     * @param  int|null  $page\n     * @return \\Illuminate\\Contracts\\Pagination\\Paginator\n     */\n    public function simplePaginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null)\n    {\n        $page = $page ?: Paginator::resolveCurrentPage($pageName);\n\n        $this->skip(($page - 1) * $perPage)->take($perPage + 1);\n\n        return $this->simplePaginator($this->get($columns), $perPage, $page, [\n            'path' => Paginator::resolveCurrentPath(),\n            'pageName' => $pageName,\n        ]);\n    }\n\n    /**\n     * Get the count of the total records for the paginator.\n     *\n     * @param  array  $columns\n     * @return int\n     */\n    public function getCountForPagination($columns = ['*'])\n    {\n        $results = $this->runPaginationCountQuery($columns);\n\n        // Once we have run the pagination count query, we will get the resulting count and\n        // take into account what type of query it was. When there is a group by we will\n        // just return the count of the entire results set since that will be correct.\n        if (isset($this->groups)) {\n            return count($results);\n        } elseif (! isset($results[0])) {\n            return 0;\n        } elseif (is_object($results[0])) {\n            return (int) $results[0]->aggregate;\n        }\n\n        return (int) array_change_key_case((array) $results[0])['aggregate'];\n    }\n\n    /**\n     * Run a pagination count query.\n     *\n     * @param  array  $columns\n     * @return array\n     */\n    protected function runPaginationCountQuery($columns = ['*'])\n    {\n        $without = $this->unions ? ['orders', 'limit', 'offset'] : ['columns', 'orders', 'limit', 'offset'];\n\n        return $this->cloneWithout($without)\n                    ->cloneWithoutBindings($this->unions ? ['order'] : ['select', 'order'])\n                    ->setAggregate('count', $this->withoutSelectAliases($columns))\n                    ->get()->all();\n    }\n\n    /**\n     * Remove the column aliases since they will break count queries.\n     *\n     * @param  array  $columns\n     * @return array\n     */\n    protected function withoutSelectAliases(array $columns)\n    {\n        return array_map(function ($column) {\n            return is_string($column) && ($aliasPosition = stripos($column, ' as ')) !== false\n                    ? substr($column, 0, $aliasPosition) : $column;\n        }, $columns);\n    }\n\n    /**\n     * Get a generator for the given query.\n     *\n     * @return \\Generator\n     */\n    public function cursor()\n    {\n        if (is_null($this->columns)) {\n            $this->columns = ['*'];\n        }\n\n        return $this->connection->cursor(\n            $this->toSql(), $this->getBindings(), ! $this->useWritePdo\n        );\n    }\n\n    /**\n     * Chunk the results of a query by comparing numeric IDs.\n     *\n     * @param  int  $count\n     * @param  callable  $callback\n     * @param  string  $column\n     * @param  string|null  $alias\n     * @return bool\n     */\n    public function chunkById($count, callable $callback, $column = 'id', $alias = null)\n    {\n        $alias = $alias ?: $column;\n\n        $lastId = null;\n\n        do {\n            $clone = clone $this;\n\n            // We'll execute the query for the given page and get the results. If there are\n            // no results we can just break and return from here. When there are results\n            // we will call the callback with the current chunk of these results here.\n            $results = $clone->forPageAfterId($count, $lastId, $column)->get();\n\n            $countResults = $results->count();\n\n            if ($countResults == 0) {\n                break;\n            }\n\n            // On each chunk result set, we will pass them to the callback and then let the\n            // developer take care of everything within the callback, which allows us to\n            // keep the memory low for spinning through large result sets for working.\n            if ($callback($results) === false) {\n                return false;\n            }\n\n            $lastId = $results->last()->{$alias};\n\n            unset($results);\n        } while ($countResults == $count);\n\n        return true;\n    }\n\n    /**\n     * Throw an exception if the query doesn't have an orderBy clause.\n     *\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    protected function enforceOrderBy()\n    {\n        if (empty($this->orders) && empty($this->unionOrders)) {\n            throw new RuntimeException('You must specify an orderBy clause when using this function.');\n        }\n    }\n\n    /**\n     * Get an array with the values of a given column.\n     *\n     * @param  string  $column\n     * @param  string|null  $key\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function pluck($column, $key = null)\n    {\n        // First, we will need to select the results of the query accounting for the\n        // given columns / key. Once we have the results, we will be able to take\n        // the results and get the exact data that was requested for the query.\n        $queryResult = $this->onceWithColumns(\n            is_null($key) ? [$column] : [$column, $key],\n            function () {\n                return $this->processor->processSelect(\n                    $this, $this->runSelect()\n                );\n            }\n        );\n\n        if (empty($queryResult)) {\n            return collect();\n        }\n\n        // If the columns are qualified with a table or have an alias, we cannot use\n        // those directly in the \"pluck\" operations since the results from the DB\n        // are only keyed by the column itself. We'll strip the table out here.\n        $column = $this->stripTableForPluck($column);\n\n        $key = $this->stripTableForPluck($key);\n\n        return is_array($queryResult[0])\n                    ? $this->pluckFromArrayColumn($queryResult, $column, $key)\n                    : $this->pluckFromObjectColumn($queryResult, $column, $key);\n    }\n\n    /**\n     * Strip off the table name or alias from a column identifier.\n     *\n     * @param  string  $column\n     * @return string|null\n     */\n    protected function stripTableForPluck($column)\n    {\n        return is_null($column) ? $column : last(preg_split('~\\.| ~', $column));\n    }\n\n    /**\n     * Retrieve column values from rows represented as objects.\n     *\n     * @param  array  $queryResult\n     * @param  string $column\n     * @param  string $key\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function pluckFromObjectColumn($queryResult, $column, $key)\n    {\n        $results = [];\n\n        if (is_null($key)) {\n            foreach ($queryResult as $row) {\n                $results[] = $row->$column;\n            }\n        } else {\n            foreach ($queryResult as $row) {\n                $results[$row->$key] = $row->$column;\n            }\n        }\n\n        return collect($results);\n    }\n\n    /**\n     * Retrieve column values from rows represented as arrays.\n     *\n     * @param  array  $queryResult\n     * @param  string $column\n     * @param  string $key\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function pluckFromArrayColumn($queryResult, $column, $key)\n    {\n        $results = [];\n\n        if (is_null($key)) {\n            foreach ($queryResult as $row) {\n                $results[] = $row[$column];\n            }\n        } else {\n            foreach ($queryResult as $row) {\n                $results[$row[$key]] = $row[$column];\n            }\n        }\n\n        return collect($results);\n    }\n\n    /**\n     * Concatenate values of a given column as a string.\n     *\n     * @param  string  $column\n     * @param  string  $glue\n     * @return string\n     */\n    public function implode($column, $glue = '')\n    {\n        return $this->pluck($column)->implode($glue);\n    }\n\n    /**\n     * Determine if any rows exist for the current query.\n     *\n     * @return bool\n     */\n    public function exists()\n    {\n        $results = $this->connection->select(\n            $this->grammar->compileExists($this), $this->getBindings(), ! $this->useWritePdo\n        );\n\n        // If the results has rows, we will get the row and see if the exists column is a\n        // boolean true. If there is no results for this query we will return false as\n        // there are no rows for this query at all and we can return that info here.\n        if (isset($results[0])) {\n            $results = (array) $results[0];\n\n            return (bool) $results['exists'];\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if no rows exist for the current query.\n     *\n     * @return bool\n     */\n    public function doesntExist()\n    {\n        return ! $this->exists();\n    }\n\n    /**\n     * Retrieve the \"count\" result of the query.\n     *\n     * @param  string  $columns\n     * @return int\n     */\n    public function count($columns = '*')\n    {\n        return (int) $this->aggregate(__FUNCTION__, Arr::wrap($columns));\n    }\n\n    /**\n     * Retrieve the minimum value of a given column.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function min($column)\n    {\n        return $this->aggregate(__FUNCTION__, [$column]);\n    }\n\n    /**\n     * Retrieve the maximum value of a given column.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function max($column)\n    {\n        return $this->aggregate(__FUNCTION__, [$column]);\n    }\n\n    /**\n     * Retrieve the sum of the values of a given column.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function sum($column)\n    {\n        $result = $this->aggregate(__FUNCTION__, [$column]);\n\n        return $result ?: 0;\n    }\n\n    /**\n     * Retrieve the average of the values of a given column.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function avg($column)\n    {\n        return $this->aggregate(__FUNCTION__, [$column]);\n    }\n\n    /**\n     * Alias for the \"avg\" method.\n     *\n     * @param  string  $column\n     * @return mixed\n     */\n    public function average($column)\n    {\n        return $this->avg($column);\n    }\n\n    /**\n     * Execute an aggregate function on the database.\n     *\n     * @param  string  $function\n     * @param  array   $columns\n     * @return mixed\n     */\n    public function aggregate($function, $columns = ['*'])\n    {\n        $results = $this->cloneWithout($this->unions ? [] : ['columns'])\n                        ->cloneWithoutBindings($this->unions ? [] : ['select'])\n                        ->setAggregate($function, $columns)\n                        ->get($columns);\n\n        if (! $results->isEmpty()) {\n            return array_change_key_case((array) $results[0])['aggregate'];\n        }\n    }\n\n    /**\n     * Execute a numeric aggregate function on the database.\n     *\n     * @param  string  $function\n     * @param  array   $columns\n     * @return float|int\n     */\n    public function numericAggregate($function, $columns = ['*'])\n    {\n        $result = $this->aggregate($function, $columns);\n\n        // If there is no result, we can obviously just return 0 here. Next, we will check\n        // if the result is an integer or float. If it is already one of these two data\n        // types we can just return the result as-is, otherwise we will convert this.\n        if (! $result) {\n            return 0;\n        }\n\n        if (is_int($result) || is_float($result)) {\n            return $result;\n        }\n\n        // If the result doesn't contain a decimal place, we will assume it is an int then\n        // cast it to one. When it does we will cast it to a float since it needs to be\n        // cast to the expected data type for the developers out of pure convenience.\n        return strpos((string) $result, '.') === false\n                ? (int) $result : (float) $result;\n    }\n\n    /**\n     * Set the aggregate property without running the query.\n     *\n     * @param  string  $function\n     * @param  array  $columns\n     * @return $this\n     */\n    protected function setAggregate($function, $columns)\n    {\n        $this->aggregate = compact('function', 'columns');\n\n        if (empty($this->groups)) {\n            $this->orders = null;\n\n            $this->bindings['order'] = [];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Execute the given callback while selecting the given columns.\n     *\n     * After running the callback, the columns are reset to the original value.\n     *\n     * @param  array  $columns\n     * @param  callable  $callback\n     * @return mixed\n     */\n    protected function onceWithColumns($columns, $callback)\n    {\n        $original = $this->columns;\n\n        if (is_null($original)) {\n            $this->columns = $columns;\n        }\n\n        $result = $callback();\n\n        $this->columns = $original;\n\n        return $result;\n    }\n\n    /**\n     * Insert a new record into the database.\n     *\n     * @param  array  $values\n     * @return bool\n     */\n    public function insert(array $values)\n    {\n        // Since every insert gets treated like a batch insert, we will make sure the\n        // bindings are structured in a way that is convenient when building these\n        // inserts statements by verifying these elements are actually an array.\n        if (empty($values)) {\n            return true;\n        }\n\n        if (! is_array(reset($values))) {\n            $values = [$values];\n        }\n\n        // Here, we will sort the insert keys for every record so that each insert is\n        // in the same order for the record. We need to make sure this is the case\n        // so there are not any errors or problems when inserting these records.\n        else {\n            foreach ($values as $key => $value) {\n                ksort($value);\n\n                $values[$key] = $value;\n            }\n        }\n\n        // Finally, we will run this query against the database connection and return\n        // the results. We will need to also flatten these bindings before running\n        // the query so they are all in one huge, flattened array for execution.\n        return $this->connection->insert(\n            $this->grammar->compileInsert($this, $values),\n            $this->cleanBindings(Arr::flatten($values, 1))\n        );\n    }\n\n    /**\n     * Insert a new record and get the value of the primary key.\n     *\n     * @param  array  $values\n     * @param  string|null  $sequence\n     * @return int\n     */\n    public function insertGetId(array $values, $sequence = null)\n    {\n        $sql = $this->grammar->compileInsertGetId($this, $values, $sequence);\n\n        $values = $this->cleanBindings($values);\n\n        return $this->processor->processInsertGetId($this, $sql, $values, $sequence);\n    }\n\n    /**\n     * Insert new records into the table using a subquery.\n     *\n     * @param  array  $columns\n     * @param  \\Closure|\\Illuminate\\Database\\Query\\Builder|string  $query\n     * @return bool\n     */\n    public function insertUsing(array $columns, $query)\n    {\n        [$sql, $bindings] = $this->createSub($query);\n\n        return $this->connection->insert(\n            $this->grammar->compileInsertUsing($this, $columns, $sql),\n            $this->cleanBindings($bindings)\n        );\n    }\n\n    /**\n     * Update a record in the database.\n     *\n     * @param  array  $values\n     * @return int\n     */\n    public function update(array $values)\n    {\n        $sql = $this->grammar->compileUpdate($this, $values);\n\n        return $this->connection->update($sql, $this->cleanBindings(\n            $this->grammar->prepareBindingsForUpdate($this->bindings, $values)\n        ));\n    }\n\n    /**\n     * Insert or update a record matching the attributes, and fill it with values.\n     *\n     * @param  array  $attributes\n     * @param  array  $values\n     * @return bool\n     */\n    public function updateOrInsert(array $attributes, array $values = [])\n    {\n        if (! $this->where($attributes)->exists()) {\n            return $this->insert(array_merge($attributes, $values));\n        }\n\n        if (empty($values)) {\n            return true;\n        }\n\n        return (bool) $this->take(1)->update($values);\n    }\n\n    /**\n     * Increment a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    public function increment($column, $amount = 1, array $extra = [])\n    {\n        if (! is_numeric($amount)) {\n            throw new InvalidArgumentException('Non-numeric value passed to increment method.');\n        }\n\n        $wrapped = $this->grammar->wrap($column);\n\n        $columns = array_merge([$column => $this->raw(\"$wrapped + $amount\")], $extra);\n\n        return $this->update($columns);\n    }\n\n    /**\n     * Decrement a column's value by a given amount.\n     *\n     * @param  string  $column\n     * @param  float|int  $amount\n     * @param  array  $extra\n     * @return int\n     */\n    public function decrement($column, $amount = 1, array $extra = [])\n    {\n        if (! is_numeric($amount)) {\n            throw new InvalidArgumentException('Non-numeric value passed to decrement method.');\n        }\n\n        $wrapped = $this->grammar->wrap($column);\n\n        $columns = array_merge([$column => $this->raw(\"$wrapped - $amount\")], $extra);\n\n        return $this->update($columns);\n    }\n\n    /**\n     * Delete a record from the database.\n     *\n     * @param  mixed  $id\n     * @return int\n     */\n    public function delete($id = null)\n    {\n        // If an ID is passed to the method, we will set the where clause to check the\n        // ID to let developers to simply and quickly remove a single row from this\n        // database without manually specifying the \"where\" clauses on the query.\n        if (! is_null($id)) {\n            $this->where($this->from.'.id', '=', $id);\n        }\n\n        return $this->connection->delete(\n            $this->grammar->compileDelete($this), $this->cleanBindings(\n                $this->grammar->prepareBindingsForDelete($this->bindings)\n            )\n        );\n    }\n\n    /**\n     * Run a truncate statement on the table.\n     *\n     * @return void\n     */\n    public function truncate()\n    {\n        foreach ($this->grammar->compileTruncate($this) as $sql => $bindings) {\n            $this->connection->statement($sql, $bindings);\n        }\n    }\n\n    /**\n     * Get a new instance of the query builder.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function newQuery()\n    {\n        return new static($this->connection, $this->grammar, $this->processor);\n    }\n\n    /**\n     * Create a new query instance for a sub-query.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function forSubQuery()\n    {\n        return $this->newQuery();\n    }\n\n    /**\n     * Create a raw database expression.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Database\\Query\\Expression\n     */\n    public function raw($value)\n    {\n        return $this->connection->raw($value);\n    }\n\n    /**\n     * Get the current query value bindings in a flattened array.\n     *\n     * @return array\n     */\n    public function getBindings()\n    {\n        return Arr::flatten($this->bindings);\n    }\n\n    /**\n     * Get the raw array of bindings.\n     *\n     * @return array\n     */\n    public function getRawBindings()\n    {\n        return $this->bindings;\n    }\n\n    /**\n     * Set the bindings on the query builder.\n     *\n     * @param  array   $bindings\n     * @param  string  $type\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function setBindings(array $bindings, $type = 'where')\n    {\n        if (! array_key_exists($type, $this->bindings)) {\n            throw new InvalidArgumentException(\"Invalid binding type: {$type}.\");\n        }\n\n        $this->bindings[$type] = $bindings;\n\n        return $this;\n    }\n\n    /**\n     * Add a binding to the query.\n     *\n     * @param  mixed   $value\n     * @param  string  $type\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function addBinding($value, $type = 'where')\n    {\n        if (! array_key_exists($type, $this->bindings)) {\n            throw new InvalidArgumentException(\"Invalid binding type: {$type}.\");\n        }\n\n        if (is_array($value)) {\n            $this->bindings[$type] = array_values(array_merge($this->bindings[$type], $value));\n        } else {\n            $this->bindings[$type][] = $value;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Merge an array of bindings into our bindings.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return $this\n     */\n    public function mergeBindings(self $query)\n    {\n        $this->bindings = array_merge_recursive($this->bindings, $query->bindings);\n\n        return $this;\n    }\n\n    /**\n     * Remove all of the expressions from a list of bindings.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    protected function cleanBindings(array $bindings)\n    {\n        return array_values(array_filter($bindings, function ($binding) {\n            return ! $binding instanceof Expression;\n        }));\n    }\n\n    /**\n     * Get the database connection instance.\n     *\n     * @return \\Illuminate\\Database\\ConnectionInterface\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Get the database query processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    public function getProcessor()\n    {\n        return $this->processor;\n    }\n\n    /**\n     * Get the query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    public function getGrammar()\n    {\n        return $this->grammar;\n    }\n\n    /**\n     * Use the write pdo for query.\n     *\n     * @return $this\n     */\n    public function useWritePdo()\n    {\n        $this->useWritePdo = true;\n\n        return $this;\n    }\n\n    /**\n     * Clone the query without the given properties.\n     *\n     * @param  array  $properties\n     * @return static\n     */\n    public function cloneWithout(array $properties)\n    {\n        return tap(clone $this, function ($clone) use ($properties) {\n            foreach ($properties as $property) {\n                $clone->{$property} = null;\n            }\n        });\n    }\n\n    /**\n     * Clone the query without the given bindings.\n     *\n     * @param  array  $except\n     * @return static\n     */\n    public function cloneWithoutBindings(array $except)\n    {\n        return tap(clone $this, function ($clone) use ($except) {\n            foreach ($except as $type) {\n                $clone->bindings[$type] = [];\n            }\n        });\n    }\n\n    /**\n     * Dump the current SQL and bindings.\n     *\n     * @return void\n     */\n    public function dump()\n    {\n        dump($this->toSql(), $this->getBindings());\n    }\n\n    /**\n     * Die and dump the current SQL and bindings.\n     *\n     * @return void\n     */\n    public function dd()\n    {\n        dd($this->toSql(), $this->getBindings());\n    }\n\n    /**\n     * Handle dynamic method calls into the method.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        if (Str::startsWith($method, 'where')) {\n            return $this->dynamicWhere($method, $parameters);\n        }\n\n        static::throwBadMethodCallException($method);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Expression.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query;\n\nclass Expression\n{\n    /**\n     * The value of the expression.\n     *\n     * @var mixed\n     */\n    protected $value;\n\n    /**\n     * Create a new raw query expression.\n     *\n     * @param  mixed  $value\n     * @return void\n     */\n    public function __construct($value)\n    {\n        $this->value = $value;\n    }\n\n    /**\n     * Get the value of the expression.\n     *\n     * @return mixed\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n\n    /**\n     * Get the value of the expression.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return (string) $this->getValue();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Grammars;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Query\\Builder;\nuse Illuminate\\Database\\Query\\JoinClause;\nuse Illuminate\\Database\\Grammar as BaseGrammar;\n\nclass Grammar extends BaseGrammar\n{\n    /**\n     * The grammar specific operators.\n     *\n     * @var array\n     */\n    protected $operators = [];\n\n    /**\n     * The components that make up a select clause.\n     *\n     * @var array\n     */\n    protected $selectComponents = [\n        'aggregate',\n        'columns',\n        'from',\n        'joins',\n        'wheres',\n        'groups',\n        'havings',\n        'orders',\n        'limit',\n        'offset',\n        'unions',\n        'lock',\n    ];\n\n    /**\n     * Compile a select query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileSelect(Builder $query)\n    {\n        if ($query->unions && $query->aggregate) {\n            return $this->compileUnionAggregate($query);\n        }\n\n        // If the query does not have any columns set, we'll set the columns to the\n        // * character to just get all of the columns from the database. Then we\n        // can build the query and concatenate all the pieces together as one.\n        $original = $query->columns;\n\n        if (is_null($query->columns)) {\n            $query->columns = ['*'];\n        }\n\n        // To compile the query, we'll spin through each component of the query and\n        // see if that component exists. If it does we'll just call the compiler\n        // function for the component which is responsible for making the SQL.\n        $sql = trim($this->concatenate(\n            $this->compileComponents($query))\n        );\n\n        $query->columns = $original;\n\n        return $sql;\n    }\n\n    /**\n     * Compile the components necessary for a select clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    protected function compileComponents(Builder $query)\n    {\n        $sql = [];\n\n        foreach ($this->selectComponents as $component) {\n            // To compile the query, we'll spin through each component of the query and\n            // see if that component exists. If it does we'll just call the compiler\n            // function for the component which is responsible for making the SQL.\n            if (isset($query->$component) && ! is_null($query->$component)) {\n                $method = 'compile'.ucfirst($component);\n\n                $sql[$component] = $this->$method($query, $query->$component);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile an aggregated select clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $aggregate\n     * @return string\n     */\n    protected function compileAggregate(Builder $query, $aggregate)\n    {\n        $column = $this->columnize($aggregate['columns']);\n\n        // If the query has a \"distinct\" constraint and we're not asking for all columns\n        // we need to prepend \"distinct\" onto the column name so that the query takes\n        // it into account when it performs the aggregating operations on the data.\n        if ($query->distinct && $column !== '*') {\n            $column = 'distinct '.$column;\n        }\n\n        return 'select '.$aggregate['function'].'('.$column.') as aggregate';\n    }\n\n    /**\n     * Compile the \"select *\" portion of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $columns\n     * @return string|null\n     */\n    protected function compileColumns(Builder $query, $columns)\n    {\n        // If the query is actually performing an aggregating select, we will let that\n        // compiler handle the building of the select clauses, as it will need some\n        // more syntax that is best handled by that function to keep things neat.\n        if (! is_null($query->aggregate)) {\n            return;\n        }\n\n        $select = $query->distinct ? 'select distinct ' : 'select ';\n\n        return $select.$this->columnize($columns);\n    }\n\n    /**\n     * Compile the \"from\" portion of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @return string\n     */\n    protected function compileFrom(Builder $query, $table)\n    {\n        return 'from '.$this->wrapTable($table);\n    }\n\n    /**\n     * Compile the \"join\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $joins\n     * @return string\n     */\n    protected function compileJoins(Builder $query, $joins)\n    {\n        return collect($joins)->map(function ($join) use ($query) {\n            $table = $this->wrapTable($join->table);\n\n            $nestedJoins = is_null($join->joins) ? '' : ' '.$this->compileJoins($query, $join->joins);\n\n            $tableAndNestedJoins = is_null($join->joins) ? $table : '('.$table.$nestedJoins.')';\n\n            return trim(\"{$join->type} join {$tableAndNestedJoins} {$this->compileWheres($join)}\");\n        })->implode(' ');\n    }\n\n    /**\n     * Compile the \"where\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileWheres(Builder $query)\n    {\n        // Each type of where clauses has its own compiler function which is responsible\n        // for actually creating the where clauses SQL. This helps keep the code nice\n        // and maintainable since each clause has a very small method that it uses.\n        if (is_null($query->wheres)) {\n            return '';\n        }\n\n        // If we actually have some where clauses, we will strip off the first boolean\n        // operator, which is added by the query builders for convenience so we can\n        // avoid checking for the first clauses in each of the compilers methods.\n        if (count($sql = $this->compileWheresToArray($query)) > 0) {\n            return $this->concatenateWhereClauses($query, $sql);\n        }\n\n        return '';\n    }\n\n    /**\n     * Get an array of all the where clauses for the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    protected function compileWheresToArray($query)\n    {\n        return collect($query->wheres)->map(function ($where) use ($query) {\n            return $where['boolean'].' '.$this->{\"where{$where['type']}\"}($query, $where);\n        })->all();\n    }\n\n    /**\n     * Format the where clause statements into one string.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $sql\n     * @return string\n     */\n    protected function concatenateWhereClauses($query, $sql)\n    {\n        $conjunction = $query instanceof JoinClause ? 'on' : 'where';\n\n        return $conjunction.' '.$this->removeLeadingBoolean(implode(' ', $sql));\n    }\n\n    /**\n     * Compile a raw where clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereRaw(Builder $query, $where)\n    {\n        return $where['sql'];\n    }\n\n    /**\n     * Compile a basic where clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereBasic(Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return $this->wrap($where['column']).' '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a \"where in\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereIn(Builder $query, $where)\n    {\n        if (! empty($where['values'])) {\n            return $this->wrap($where['column']).' in ('.$this->parameterize($where['values']).')';\n        }\n\n        return '0 = 1';\n    }\n\n    /**\n     * Compile a \"where not in\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNotIn(Builder $query, $where)\n    {\n        if (! empty($where['values'])) {\n            return $this->wrap($where['column']).' not in ('.$this->parameterize($where['values']).')';\n        }\n\n        return '1 = 1';\n    }\n\n    /**\n     * Compile a \"where not in raw\" clause.\n     *\n     * For safety, whereIntegerInRaw ensures this method is only used with integer values.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNotInRaw(Builder $query, $where)\n    {\n        if (! empty($where['values'])) {\n            return $this->wrap($where['column']).' not in ('.implode(', ', $where['values']).')';\n        }\n\n        return '1 = 1';\n    }\n\n    /**\n     * Compile a where in sub-select clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereInSub(Builder $query, $where)\n    {\n        return $this->wrap($where['column']).' in ('.$this->compileSelect($where['query']).')';\n    }\n\n    /**\n     * Compile a where not in sub-select clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNotInSub(Builder $query, $where)\n    {\n        return $this->wrap($where['column']).' not in ('.$this->compileSelect($where['query']).')';\n    }\n\n    /**\n     * Compile a \"where in raw\" clause.\n     *\n     * For safety, whereIntegerInRaw ensures this method is only used with integer values.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereInRaw(Builder $query, $where)\n    {\n        if (! empty($where['values'])) {\n            return $this->wrap($where['column']).' in ('.implode(', ', $where['values']).')';\n        }\n\n        return '0 = 1';\n    }\n\n    /**\n     * Compile a \"where null\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNull(Builder $query, $where)\n    {\n        return $this->wrap($where['column']).' is null';\n    }\n\n    /**\n     * Compile a \"where not null\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNotNull(Builder $query, $where)\n    {\n        return $this->wrap($where['column']).' is not null';\n    }\n\n    /**\n     * Compile a \"between\" where clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereBetween(Builder $query, $where)\n    {\n        $between = $where['not'] ? 'not between' : 'between';\n\n        $min = $this->parameter(reset($where['values']));\n\n        $max = $this->parameter(end($where['values']));\n\n        return $this->wrap($where['column']).' '.$between.' '.$min.' and '.$max;\n    }\n\n    /**\n     * Compile a \"where date\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDate(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('date', $query, $where);\n    }\n\n    /**\n     * Compile a \"where time\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereTime(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('time', $query, $where);\n    }\n\n    /**\n     * Compile a \"where day\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDay(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('day', $query, $where);\n    }\n\n    /**\n     * Compile a \"where month\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereMonth(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('month', $query, $where);\n    }\n\n    /**\n     * Compile a \"where year\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereYear(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('year', $query, $where);\n    }\n\n    /**\n     * Compile a date based where clause.\n     *\n     * @param  string  $type\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function dateBasedWhere($type, Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return $type.'('.$this->wrap($where['column']).') '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a where clause comparing two columns..\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereColumn(Builder $query, $where)\n    {\n        return $this->wrap($where['first']).' '.$where['operator'].' '.$this->wrap($where['second']);\n    }\n\n    /**\n     * Compile a nested where clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNested(Builder $query, $where)\n    {\n        // Here we will calculate what portion of the string we need to remove. If this\n        // is a join clause query, we need to remove the \"on\" portion of the SQL and\n        // if it is a normal query we need to take the leading \"where\" of queries.\n        $offset = $query instanceof JoinClause ? 3 : 6;\n\n        return '('.substr($this->compileWheres($where['query']), $offset).')';\n    }\n\n    /**\n     * Compile a where condition with a sub-select.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder $query\n     * @param  array   $where\n     * @return string\n     */\n    protected function whereSub(Builder $query, $where)\n    {\n        $select = $this->compileSelect($where['query']);\n\n        return $this->wrap($where['column']).' '.$where['operator'].\" ($select)\";\n    }\n\n    /**\n     * Compile a where exists clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereExists(Builder $query, $where)\n    {\n        return 'exists ('.$this->compileSelect($where['query']).')';\n    }\n\n    /**\n     * Compile a where exists clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereNotExists(Builder $query, $where)\n    {\n        return 'not exists ('.$this->compileSelect($where['query']).')';\n    }\n\n    /**\n     * Compile a where row values condition.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereRowValues(Builder $query, $where)\n    {\n        $columns = $this->columnize($where['columns']);\n\n        $values = $this->parameterize($where['values']);\n\n        return '('.$columns.') '.$where['operator'].' ('.$values.')';\n    }\n\n    /**\n     * Compile a \"where JSON boolean\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereJsonBoolean(Builder $query, $where)\n    {\n        $column = $this->wrapJsonBooleanSelector($where['column']);\n\n        $value = $this->wrapJsonBooleanValue(\n            $this->parameter($where['value'])\n        );\n\n        return $column.' '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a \"where JSON contains\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereJsonContains(Builder $query, $where)\n    {\n        $not = $where['not'] ? 'not ' : '';\n\n        return $not.$this->compileJsonContains(\n            $where['column'], $this->parameter($where['value'])\n        );\n    }\n\n    /**\n     * Compile a \"JSON contains\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $value\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected function compileJsonContains($column, $value)\n    {\n        throw new RuntimeException('This database engine does not support JSON contains operations.');\n    }\n\n    /**\n     * Prepare the binding for a \"JSON contains\" statement.\n     *\n     * @param  mixed  $binding\n     * @return string\n     */\n    public function prepareBindingForJsonContains($binding)\n    {\n        return json_encode($binding);\n    }\n\n    /**\n     * Compile a \"where JSON length\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereJsonLength(Builder $query, $where)\n    {\n        return $this->compileJsonLength(\n            $where['column'], $where['operator'], $this->parameter($where['value'])\n        );\n    }\n\n    /**\n     * Compile a \"JSON length\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  string  $value\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected function compileJsonLength($column, $operator, $value)\n    {\n        throw new RuntimeException('This database engine does not support JSON length operations.');\n    }\n\n    /**\n     * Compile the \"group by\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $groups\n     * @return string\n     */\n    protected function compileGroups(Builder $query, $groups)\n    {\n        return 'group by '.$this->columnize($groups);\n    }\n\n    /**\n     * Compile the \"having\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $havings\n     * @return string\n     */\n    protected function compileHavings(Builder $query, $havings)\n    {\n        $sql = implode(' ', array_map([$this, 'compileHaving'], $havings));\n\n        return 'having '.$this->removeLeadingBoolean($sql);\n    }\n\n    /**\n     * Compile a single having clause.\n     *\n     * @param  array   $having\n     * @return string\n     */\n    protected function compileHaving(array $having)\n    {\n        // If the having clause is \"raw\", we can just return the clause straight away\n        // without doing any more processing on it. Otherwise, we will compile the\n        // clause into SQL based on the components that make it up from builder.\n        if ($having['type'] === 'Raw') {\n            return $having['boolean'].' '.$having['sql'];\n        } elseif ($having['type'] === 'between') {\n            return $this->compileHavingBetween($having);\n        }\n\n        return $this->compileBasicHaving($having);\n    }\n\n    /**\n     * Compile a basic having clause.\n     *\n     * @param  array   $having\n     * @return string\n     */\n    protected function compileBasicHaving($having)\n    {\n        $column = $this->wrap($having['column']);\n\n        $parameter = $this->parameter($having['value']);\n\n        return $having['boolean'].' '.$column.' '.$having['operator'].' '.$parameter;\n    }\n\n    /**\n     * Compile a \"between\" having clause.\n     *\n     * @param  array  $having\n     * @return string\n     */\n    protected function compileHavingBetween($having)\n    {\n        $between = $having['not'] ? 'not between' : 'between';\n\n        $column = $this->wrap($having['column']);\n\n        $min = $this->parameter(head($having['values']));\n\n        $max = $this->parameter(last($having['values']));\n\n        return $having['boolean'].' '.$column.' '.$between.' '.$min.' and '.$max;\n    }\n\n    /**\n     * Compile the \"order by\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $orders\n     * @return string\n     */\n    protected function compileOrders(Builder $query, $orders)\n    {\n        if (! empty($orders)) {\n            return 'order by '.implode(', ', $this->compileOrdersToArray($query, $orders));\n        }\n\n        return '';\n    }\n\n    /**\n     * Compile the query orders to an array.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $orders\n     * @return array\n     */\n    protected function compileOrdersToArray(Builder $query, $orders)\n    {\n        return array_map(function ($order) {\n            return $order['sql'] ?? $this->wrap($order['column']).' '.$order['direction'];\n        }, $orders);\n    }\n\n    /**\n     * Compile the random statement into SQL.\n     *\n     * @param  string  $seed\n     * @return string\n     */\n    public function compileRandom($seed)\n    {\n        return 'RANDOM()';\n    }\n\n    /**\n     * Compile the \"limit\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  int  $limit\n     * @return string\n     */\n    protected function compileLimit(Builder $query, $limit)\n    {\n        return 'limit '.(int) $limit;\n    }\n\n    /**\n     * Compile the \"offset\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  int  $offset\n     * @return string\n     */\n    protected function compileOffset(Builder $query, $offset)\n    {\n        return 'offset '.(int) $offset;\n    }\n\n    /**\n     * Compile the \"union\" queries attached to the main query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileUnions(Builder $query)\n    {\n        $sql = '';\n\n        foreach ($query->unions as $union) {\n            $sql .= $this->compileUnion($union);\n        }\n\n        if (! empty($query->unionOrders)) {\n            $sql .= ' '.$this->compileOrders($query, $query->unionOrders);\n        }\n\n        if (isset($query->unionLimit)) {\n            $sql .= ' '.$this->compileLimit($query, $query->unionLimit);\n        }\n\n        if (isset($query->unionOffset)) {\n            $sql .= ' '.$this->compileOffset($query, $query->unionOffset);\n        }\n\n        return ltrim($sql);\n    }\n\n    /**\n     * Compile a single union statement.\n     *\n     * @param  array  $union\n     * @return string\n     */\n    protected function compileUnion(array $union)\n    {\n        $conjunction = $union['all'] ? ' union all ' : ' union ';\n\n        return $conjunction.$union['query']->toSql();\n    }\n\n    /**\n     * Compile a union aggregate query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileUnionAggregate(Builder $query)\n    {\n        $sql = $this->compileAggregate($query, $query->aggregate);\n\n        $query->aggregate = null;\n\n        return $sql.' from ('.$this->compileSelect($query).') as '.$this->wrapTable('temp_table');\n    }\n\n    /**\n     * Compile an exists statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileExists(Builder $query)\n    {\n        $select = $this->compileSelect($query);\n\n        return \"select exists({$select}) as {$this->wrap('exists')}\";\n    }\n\n    /**\n     * Compile an insert statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileInsert(Builder $query, array $values)\n    {\n        // Essentially we will force every insert to be treated as a batch insert which\n        // simply makes creating the SQL easier for us since we can utilize the same\n        // basic routine regardless of an amount of records given to us to insert.\n        $table = $this->wrapTable($query->from);\n\n        if (! is_array(reset($values))) {\n            $values = [$values];\n        }\n\n        $columns = $this->columnize(array_keys(reset($values)));\n\n        // We need to build a list of parameter place-holders of values that are bound\n        // to the query. Each insert should have the exact same amount of parameter\n        // bindings so we will loop through the record and parameterize them all.\n        $parameters = collect($values)->map(function ($record) {\n            return '('.$this->parameterize($record).')';\n        })->implode(', ');\n\n        return \"insert into $table ($columns) values $parameters\";\n    }\n\n    /**\n     * Compile an insert and get ID statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array   $values\n     * @param  string  $sequence\n     * @return string\n     */\n    public function compileInsertGetId(Builder $query, $values, $sequence)\n    {\n        return $this->compileInsert($query, $values);\n    }\n\n    /**\n     * Compile an insert statement using a subquery into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $columns\n     * @param  string  $sql\n     * @return string\n     */\n    public function compileInsertUsing(Builder $query, array $columns, string $sql)\n    {\n        return \"insert into {$this->wrapTable($query->from)} ({$this->columnize($columns)}) $sql\";\n    }\n\n    /**\n     * Compile an update statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileUpdate(Builder $query, $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        // Each one of the columns in the update statements needs to be wrapped in the\n        // keyword identifiers, also a place-holder needs to be created for each of\n        // the values in the list of bindings so we can make the sets statements.\n        $columns = collect($values)->map(function ($value, $key) {\n            return $this->wrap($key).' = '.$this->parameter($value);\n        })->implode(', ');\n\n        // If the query has any \"join\" clauses, we will setup the joins on the builder\n        // and compile them so we can attach them to this update, as update queries\n        // can get join statements to attach to other tables when they're needed.\n        $joins = '';\n\n        if (isset($query->joins)) {\n            $joins = ' '.$this->compileJoins($query, $query->joins);\n        }\n\n        // Of course, update queries may also be constrained by where clauses so we'll\n        // need to compile the where clauses and attach it to the query so only the\n        // intended records are updated by the SQL statements we generate to run.\n        $wheres = $this->compileWheres($query);\n\n        return trim(\"update {$table}{$joins} set $columns $wheres\");\n    }\n\n    /**\n     * Prepare the bindings for an update statement.\n     *\n     * @param  array  $bindings\n     * @param  array  $values\n     * @return array\n     */\n    public function prepareBindingsForUpdate(array $bindings, array $values)\n    {\n        $cleanBindings = Arr::except($bindings, ['join', 'select']);\n\n        return array_values(\n            array_merge($bindings['join'], $values, Arr::flatten($cleanBindings))\n        );\n    }\n\n    /**\n     * Compile a delete statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileDelete(Builder $query)\n    {\n        $wheres = is_array($query->wheres) ? $this->compileWheres($query) : '';\n\n        return trim(\"delete from {$this->wrapTable($query->from)} $wheres\");\n    }\n\n    /**\n     * Prepare the bindings for a delete statement.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    public function prepareBindingsForDelete(array $bindings)\n    {\n        return Arr::flatten($bindings);\n    }\n\n    /**\n     * Compile a truncate table statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    public function compileTruncate(Builder $query)\n    {\n        return ['truncate '.$this->wrapTable($query->from) => []];\n    }\n\n    /**\n     * Compile the lock into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  bool|string  $value\n     * @return string\n     */\n    protected function compileLock(Builder $query, $value)\n    {\n        return is_string($value) ? $value : '';\n    }\n\n    /**\n     * Determine if the grammar supports savepoints.\n     *\n     * @return bool\n     */\n    public function supportsSavepoints()\n    {\n        return true;\n    }\n\n    /**\n     * Compile the SQL statement to define a savepoint.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function compileSavepoint($name)\n    {\n        return 'SAVEPOINT '.$name;\n    }\n\n    /**\n     * Compile the SQL statement to execute a savepoint rollback.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function compileSavepointRollBack($name)\n    {\n        return 'ROLLBACK TO SAVEPOINT '.$name;\n    }\n\n    /**\n     * Wrap a value in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $value\n     * @param  bool    $prefixAlias\n     * @return string\n     */\n    public function wrap($value, $prefixAlias = false)\n    {\n        if ($this->isExpression($value)) {\n            return $this->getValue($value);\n        }\n\n        // If the value being wrapped has a column alias we will need to separate out\n        // the pieces so we can wrap each of the segments of the expression on its\n        // own, and then join these both back together using the \"as\" connector.\n        if (stripos($value, ' as ') !== false) {\n            return $this->wrapAliasedValue($value, $prefixAlias);\n        }\n\n        // If the given value is a JSON selector we will wrap it differently than a\n        // traditional value. We will need to split this path and wrap each part\n        // wrapped, etc. Otherwise, we will simply wrap the value as a string.\n        if ($this->isJsonSelector($value)) {\n            return $this->wrapJsonSelector($value);\n        }\n\n        return $this->wrapSegments(explode('.', $value));\n    }\n\n    /**\n     * Wrap the given JSON selector.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonSelector($value)\n    {\n        throw new RuntimeException('This database engine does not support JSON operations.');\n    }\n\n    /**\n     * Wrap the given JSON selector for boolean values.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanSelector($value)\n    {\n        return $this->wrapJsonSelector($value);\n    }\n\n    /**\n     * Wrap the given JSON boolean value.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanValue($value)\n    {\n        return $value;\n    }\n\n    /**\n     * Split the given JSON selector into the field and the optional path and wrap them separately.\n     *\n     * @param  string  $column\n     * @return array\n     */\n    protected function wrapJsonFieldAndPath($column)\n    {\n        $parts = explode('->', $column, 2);\n\n        $field = $this->wrap($parts[0]);\n\n        $path = count($parts) > 1 ? ', '.$this->wrapJsonPath($parts[1], '->') : '';\n\n        return [$field, $path];\n    }\n\n    /**\n     * Wrap the given JSON path.\n     *\n     * @param  string  $value\n     * @param  string  $delimiter\n     * @return string\n     */\n    protected function wrapJsonPath($value, $delimiter = '->')\n    {\n        $value = preg_replace(\"/([\\\\\\\\]+)?\\\\'/\", \"\\\\'\", $value);\n\n        return '\\'$.\"'.str_replace($delimiter, '\".\"', $value).'\"\\'';\n    }\n\n    /**\n     * Determine if the given string is a JSON selector.\n     *\n     * @param  string  $value\n     * @return bool\n     */\n    protected function isJsonSelector($value)\n    {\n        return Str::contains($value, '->');\n    }\n\n    /**\n     * Concatenate an array of segments, removing empties.\n     *\n     * @param  array   $segments\n     * @return string\n     */\n    protected function concatenate($segments)\n    {\n        return implode(' ', array_filter($segments, function ($value) {\n            return (string) $value !== '';\n        }));\n    }\n\n    /**\n     * Remove the leading boolean from a statement.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function removeLeadingBoolean($value)\n    {\n        return preg_replace('/and |or /i', '', $value, 1);\n    }\n\n    /**\n     * Get the grammar specific operators.\n     *\n     * @return array\n     */\n    public function getOperators()\n    {\n        return $this->operators;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Grammars;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Query\\Builder;\nuse Illuminate\\Database\\Query\\JsonExpression;\n\nclass MySqlGrammar extends Grammar\n{\n    /**\n     * The grammar specific operators.\n     *\n     * @var array\n     */\n    protected $operators = ['sounds like'];\n\n    /**\n     * The components that make up a select clause.\n     *\n     * @var array\n     */\n    protected $selectComponents = [\n        'aggregate',\n        'columns',\n        'from',\n        'joins',\n        'wheres',\n        'groups',\n        'havings',\n        'orders',\n        'limit',\n        'offset',\n        'lock',\n    ];\n\n    /**\n     * Compile a select query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileSelect(Builder $query)\n    {\n        if ($query->unions && $query->aggregate) {\n            return $this->compileUnionAggregate($query);\n        }\n\n        $sql = parent::compileSelect($query);\n\n        if ($query->unions) {\n            $sql = '('.$sql.') '.$this->compileUnions($query);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile a \"JSON contains\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonContains($column, $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($column);\n\n        return 'json_contains('.$field.', '.$value.$path.')';\n    }\n\n    /**\n     * Compile a \"JSON length\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonLength($column, $operator, $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($column);\n\n        return 'json_length('.$field.$path.') '.$operator.' '.$value;\n    }\n\n    /**\n     * Compile a single union statement.\n     *\n     * @param  array  $union\n     * @return string\n     */\n    protected function compileUnion(array $union)\n    {\n        $conjunction = $union['all'] ? ' union all ' : ' union ';\n\n        return $conjunction.'('.$union['query']->toSql().')';\n    }\n\n    /**\n     * Compile the random statement into SQL.\n     *\n     * @param  string  $seed\n     * @return string\n     */\n    public function compileRandom($seed)\n    {\n        return 'RAND('.$seed.')';\n    }\n\n    /**\n     * Compile the lock into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  bool|string  $value\n     * @return string\n     */\n    protected function compileLock(Builder $query, $value)\n    {\n        if (! is_string($value)) {\n            return $value ? 'for update' : 'lock in share mode';\n        }\n\n        return $value;\n    }\n\n    /**\n     * Compile an update statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileUpdate(Builder $query, $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        // Each one of the columns in the update statements needs to be wrapped in the\n        // keyword identifiers, also a place-holder needs to be created for each of\n        // the values in the list of bindings so we can make the sets statements.\n        $columns = $this->compileUpdateColumns($values);\n\n        // If the query has any \"join\" clauses, we will setup the joins on the builder\n        // and compile them so we can attach them to this update, as update queries\n        // can get join statements to attach to other tables when they're needed.\n        $joins = '';\n\n        if (isset($query->joins)) {\n            $joins = ' '.$this->compileJoins($query, $query->joins);\n        }\n\n        // Of course, update queries may also be constrained by where clauses so we'll\n        // need to compile the where clauses and attach it to the query so only the\n        // intended records are updated by the SQL statements we generate to run.\n        $where = $this->compileWheres($query);\n\n        $sql = rtrim(\"update {$table}{$joins} set $columns $where\");\n\n        // If the query has an order by clause we will compile it since MySQL supports\n        // order bys on update statements. We'll compile them using the typical way\n        // of compiling order bys. Then they will be appended to the SQL queries.\n        if (! empty($query->orders)) {\n            $sql .= ' '.$this->compileOrders($query, $query->orders);\n        }\n\n        // Updates on MySQL also supports \"limits\", which allow you to easily update a\n        // single record very easily. This is not supported by all database engines\n        // so we have customized this update compiler here in order to add it in.\n        if (isset($query->limit)) {\n            $sql .= ' '.$this->compileLimit($query, $query->limit);\n        }\n\n        return rtrim($sql);\n    }\n\n    /**\n     * Compile all of the columns for an update statement.\n     *\n     * @param  array  $values\n     * @return string\n     */\n    protected function compileUpdateColumns($values)\n    {\n        return collect($values)->map(function ($value, $key) {\n            if ($this->isJsonSelector($key)) {\n                return $this->compileJsonUpdateColumn($key, new JsonExpression($value));\n            }\n\n            return $this->wrap($key).' = '.$this->parameter($value);\n        })->implode(', ');\n    }\n\n    /**\n     * Prepares a JSON column being updated using the JSON_SET function.\n     *\n     * @param  string  $key\n     * @param  \\Illuminate\\Database\\Query\\JsonExpression  $value\n     * @return string\n     */\n    protected function compileJsonUpdateColumn($key, JsonExpression $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($key);\n\n        return \"{$field} = json_set({$field}{$path}, {$value->getValue()})\";\n    }\n\n    /**\n     * Prepare the bindings for an update statement.\n     *\n     * Booleans, integers, and doubles are inserted into JSON updates as raw values.\n     *\n     * @param  array  $bindings\n     * @param  array  $values\n     * @return array\n     */\n    public function prepareBindingsForUpdate(array $bindings, array $values)\n    {\n        $values = collect($values)->reject(function ($value, $column) {\n            return $this->isJsonSelector($column) && is_bool($value);\n        })->all();\n\n        return parent::prepareBindingsForUpdate($bindings, $values);\n    }\n\n    /**\n     * Compile a delete statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileDelete(Builder $query)\n    {\n        $table = $this->wrapTable($query->from);\n\n        $where = is_array($query->wheres) ? $this->compileWheres($query) : '';\n\n        return isset($query->joins)\n                    ? $this->compileDeleteWithJoins($query, $table, $where)\n                    : $this->compileDeleteWithoutJoins($query, $table, $where);\n    }\n\n    /**\n     * Prepare the bindings for a delete statement.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    public function prepareBindingsForDelete(array $bindings)\n    {\n        $cleanBindings = Arr::except($bindings, ['join', 'select']);\n\n        return array_values(\n            array_merge($bindings['join'], Arr::flatten($cleanBindings))\n        );\n    }\n\n    /**\n     * Compile a delete query that does not use joins.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @param  string  $where\n     * @return string\n     */\n    protected function compileDeleteWithoutJoins($query, $table, $where)\n    {\n        $sql = trim(\"delete from {$table} {$where}\");\n\n        // When using MySQL, delete statements may contain order by statements and limits\n        // so we will compile both of those here. Once we have finished compiling this\n        // we will return the completed SQL statement so it will be executed for us.\n        if (! empty($query->orders)) {\n            $sql .= ' '.$this->compileOrders($query, $query->orders);\n        }\n\n        if (isset($query->limit)) {\n            $sql .= ' '.$this->compileLimit($query, $query->limit);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile a delete query that uses joins.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @param  string  $where\n     * @return string\n     */\n    protected function compileDeleteWithJoins($query, $table, $where)\n    {\n        $joins = ' '.$this->compileJoins($query, $query->joins);\n\n        $alias = stripos($table, ' as ') !== false\n                ? explode(' as ', $table)[1] : $table;\n\n        return trim(\"delete {$alias} from {$table}{$joins} {$where}\");\n    }\n\n    /**\n     * Wrap a single string in keyword identifiers.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapValue($value)\n    {\n        return $value === '*' ? $value : '`'.str_replace('`', '``', $value).'`';\n    }\n\n    /**\n     * Wrap the given JSON selector.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonSelector($value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($value);\n\n        return 'json_unquote(json_extract('.$field.$path.'))';\n    }\n\n    /**\n     * Wrap the given JSON selector for boolean values.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanSelector($value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($value);\n\n        return 'json_extract('.$field.$path.')';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/PostgresGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Grammars;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Query\\Builder;\n\nclass PostgresGrammar extends Grammar\n{\n    /**\n     * The components that make up a select clause.\n     *\n     * @var array\n     */\n    protected $selectComponents = [\n        'aggregate',\n        'columns',\n        'from',\n        'joins',\n        'wheres',\n        'groups',\n        'havings',\n        'orders',\n        'limit',\n        'offset',\n        'lock',\n    ];\n\n    /**\n     * All of the available clause operators.\n     *\n     * @var array\n     */\n    protected $operators = [\n        '=', '<', '>', '<=', '>=', '<>', '!=',\n        'like', 'not like', 'between', 'ilike', 'not ilike',\n        '~', '&', '|', '#', '<<', '>>', '<<=', '>>=',\n        '&&', '@>', '<@', '?', '?|', '?&', '||', '-', '-', '#-',\n        'is distinct from', 'is not distinct from',\n    ];\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereBasic(Builder $query, $where)\n    {\n        if (Str::contains(strtolower($where['operator']), 'like')) {\n            return sprintf(\n                '%s::text %s %s',\n                $this->wrap($where['column']),\n                $where['operator'],\n                $this->parameter($where['value'])\n            );\n        }\n\n        return parent::whereBasic($query, $where);\n    }\n\n    /**\n     * Compile a \"where date\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDate(Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return $this->wrap($where['column']).'::date '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a \"where time\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereTime(Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return $this->wrap($where['column']).'::time '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a date based where clause.\n     *\n     * @param  string  $type\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function dateBasedWhere($type, Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return 'extract('.$type.' from '.$this->wrap($where['column']).') '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a select query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileSelect(Builder $query)\n    {\n        if ($query->unions && $query->aggregate) {\n            return $this->compileUnionAggregate($query);\n        }\n\n        $sql = parent::compileSelect($query);\n\n        if ($query->unions) {\n            $sql = '('.$sql.') '.$this->compileUnions($query);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile a single union statement.\n     *\n     * @param  array  $union\n     * @return string\n     */\n    protected function compileUnion(array $union)\n    {\n        $conjunction = $union['all'] ? ' union all ' : ' union ';\n\n        return $conjunction.'('.$union['query']->toSql().')';\n    }\n\n    /**\n     * Compile a \"JSON contains\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonContains($column, $value)\n    {\n        $column = str_replace('->>', '->', $this->wrap($column));\n\n        return '('.$column.')::jsonb @> '.$value;\n    }\n\n    /**\n     * Compile a \"JSON length\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonLength($column, $operator, $value)\n    {\n        $column = str_replace('->>', '->', $this->wrap($column));\n\n        return 'json_array_length(('.$column.')::json) '.$operator.' '.$value;\n    }\n\n    /**\n     * Compile the lock into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  bool|string  $value\n     * @return string\n     */\n    protected function compileLock(Builder $query, $value)\n    {\n        if (! is_string($value)) {\n            return $value ? 'for update' : 'for share';\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function compileInsert(Builder $query, array $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        return empty($values)\n                ? \"insert into {$table} DEFAULT VALUES\"\n                : parent::compileInsert($query, $values);\n    }\n\n    /**\n     * Compile an insert and get ID statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array   $values\n     * @param  string  $sequence\n     * @return string\n     */\n    public function compileInsertGetId(Builder $query, $values, $sequence)\n    {\n        if (is_null($sequence)) {\n            $sequence = 'id';\n        }\n\n        return $this->compileInsert($query, $values).' returning '.$this->wrap($sequence);\n    }\n\n    /**\n     * Compile an update statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileUpdate(Builder $query, $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        // Each one of the columns in the update statements needs to be wrapped in the\n        // keyword identifiers, also a place-holder needs to be created for each of\n        // the values in the list of bindings so we can make the sets statements.\n        $columns = $this->compileUpdateColumns($query, $values);\n\n        $from = $this->compileUpdateFrom($query);\n\n        $where = $this->compileUpdateWheres($query);\n\n        return trim(\"update {$table} set {$columns}{$from} {$where}\");\n    }\n\n    /**\n     * Compile the columns for the update statement.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array   $values\n     * @return string\n     */\n    protected function compileUpdateColumns($query, $values)\n    {\n        // When gathering the columns for an update statement, we'll wrap each of the\n        // columns and convert it to a parameter value. Then we will concatenate a\n        // list of the columns that can be added into this update query clauses.\n        return collect($values)->map(function ($value, $key) use ($query) {\n            $column = Str::after($key, $query->from.'.');\n\n            if ($this->isJsonSelector($key)) {\n                return $this->compileJsonUpdateColumn($column, $value);\n            }\n\n            return $this->wrap($column).' = '.$this->parameter($value);\n        })->implode(', ');\n    }\n\n    /**\n     * Prepares a JSON column being updated using the JSONB_SET function.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function compileJsonUpdateColumn($key, $value)\n    {\n        $parts = explode('->', $key);\n\n        $field = $this->wrap(array_shift($parts));\n\n        $path = '\\'{\"'.implode('\",\"', $parts).'\"}\\'';\n\n        return \"{$field} = jsonb_set({$field}::jsonb, {$path}, {$this->parameter($value)})\";\n    }\n\n    /**\n     * Compile the \"from\" clause for an update with a join.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string|null\n     */\n    protected function compileUpdateFrom(Builder $query)\n    {\n        if (! isset($query->joins)) {\n            return '';\n        }\n\n        // When using Postgres, updates with joins list the joined tables in the from\n        // clause, which is different than other systems like MySQL. Here, we will\n        // compile out the tables that are joined and add them to a from clause.\n        $froms = collect($query->joins)->map(function ($join) {\n            return $this->wrapTable($join->table);\n        })->all();\n\n        if (count($froms) > 0) {\n            return ' from '.implode(', ', $froms);\n        }\n    }\n\n    /**\n     * Compile the additional where clauses for updates with joins.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileUpdateWheres(Builder $query)\n    {\n        $baseWheres = $this->compileWheres($query);\n\n        if (! isset($query->joins)) {\n            return $baseWheres;\n        }\n\n        // Once we compile the join constraints, we will either use them as the where\n        // clause or append them to the existing base where clauses. If we need to\n        // strip the leading boolean we will do so when using as the only where.\n        $joinWheres = $this->compileUpdateJoinWheres($query);\n\n        if (trim($baseWheres) == '') {\n            return 'where '.$this->removeLeadingBoolean($joinWheres);\n        }\n\n        return $baseWheres.' '.$joinWheres;\n    }\n\n    /**\n     * Compile the \"join\" clause where clauses for an update.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileUpdateJoinWheres(Builder $query)\n    {\n        $joinWheres = [];\n\n        // Here we will just loop through all of the join constraints and compile them\n        // all out then implode them. This should give us \"where\" like syntax after\n        // everything has been built and then we will join it to the real wheres.\n        foreach ($query->joins as $join) {\n            foreach ($join->wheres as $where) {\n                $method = \"where{$where['type']}\";\n\n                $joinWheres[] = $where['boolean'].' '.$this->$method($query, $where);\n            }\n        }\n\n        return implode(' ', $joinWheres);\n    }\n\n    /**\n     * Prepare the bindings for an update statement.\n     *\n     * @param  array  $bindings\n     * @param  array  $values\n     * @return array\n     */\n    public function prepareBindingsForUpdate(array $bindings, array $values)\n    {\n        $values = collect($values)->map(function ($value, $column) {\n            return $this->isJsonSelector($column) && ! $this->isExpression($value)\n                ? json_encode($value)\n                : $value;\n        })->all();\n\n        // Update statements with \"joins\" in Postgres use an interesting syntax. We need to\n        // take all of the bindings and put them on the end of this array since they are\n        // added to the end of the \"where\" clause statements as typical where clauses.\n        $bindingsWithoutJoin = Arr::except($bindings, 'join');\n\n        return array_values(\n            array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin))\n        );\n    }\n\n    /**\n     * Compile a delete statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileDelete(Builder $query)\n    {\n        $table = $this->wrapTable($query->from);\n\n        return isset($query->joins)\n            ? $this->compileDeleteWithJoins($query, $table)\n            : parent::compileDelete($query);\n    }\n\n    /**\n     * Compile a delete query that uses joins.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @return string\n     */\n    protected function compileDeleteWithJoins($query, $table)\n    {\n        $using = ' USING '.collect($query->joins)->map(function ($join) {\n            return $this->wrapTable($join->table);\n        })->implode(', ');\n\n        $where = count($query->wheres) > 0 ? ' '.$this->compileUpdateWheres($query) : '';\n\n        return trim(\"delete from {$table}{$using}{$where}\");\n    }\n\n    /**\n     * Compile a truncate table statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    public function compileTruncate(Builder $query)\n    {\n        return ['truncate '.$this->wrapTable($query->from).' restart identity cascade' => []];\n    }\n\n    /**\n     * Wrap the given JSON selector.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonSelector($value)\n    {\n        $path = explode('->', $value);\n\n        $field = $this->wrapSegments(explode('.', array_shift($path)));\n\n        $wrappedPath = $this->wrapJsonPathAttributes($path);\n\n        $attribute = array_pop($wrappedPath);\n\n        if (! empty($wrappedPath)) {\n            return $field.'->'.implode('->', $wrappedPath).'->>'.$attribute;\n        }\n\n        return $field.'->>'.$attribute;\n    }\n\n    /**\n     *Wrap the given JSON selector for boolean values.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanSelector($value)\n    {\n        $selector = str_replace(\n            '->>', '->',\n            $this->wrapJsonSelector($value)\n        );\n\n        return '('.$selector.')::jsonb';\n    }\n\n    /**\n     * Wrap the given JSON boolean value.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanValue($value)\n    {\n        return \"'\".$value.\"'::jsonb\";\n    }\n\n    /**\n     * Wrap the attributes of the give JSON path.\n     *\n     * @param  array  $path\n     * @return array\n     */\n    protected function wrapJsonPathAttributes($path)\n    {\n        return array_map(function ($attribute) {\n            return \"'$attribute'\";\n        }, $path);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SQLiteGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Grammars;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Query\\Builder;\n\nclass SQLiteGrammar extends Grammar\n{\n    /**\n     * The components that make up a select clause.\n     *\n     * @var array\n     */\n    protected $selectComponents = [\n        'aggregate',\n        'columns',\n        'from',\n        'joins',\n        'wheres',\n        'groups',\n        'havings',\n        'orders',\n        'limit',\n        'offset',\n        'lock',\n    ];\n\n    /**\n     * All of the available clause operators.\n     *\n     * @var array\n     */\n    protected $operators = [\n        '=', '<', '>', '<=', '>=', '<>', '!=',\n        'like', 'not like', 'ilike',\n        '&', '|', '<<', '>>',\n    ];\n\n    /**\n     * Compile a select query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileSelect(Builder $query)\n    {\n        if ($query->unions && $query->aggregate) {\n            return $this->compileUnionAggregate($query);\n        }\n\n        $sql = parent::compileSelect($query);\n\n        if ($query->unions) {\n            $sql = 'select * from ('.$sql.') '.$this->compileUnions($query);\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile a single union statement.\n     *\n     * @param  array  $union\n     * @return string\n     */\n    protected function compileUnion(array $union)\n    {\n        $conjunction = $union['all'] ? ' union all ' : ' union ';\n\n        return $conjunction.'select * from ('.$union['query']->toSql().')';\n    }\n\n    /**\n     * Compile a \"where date\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDate(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('%Y-%m-%d', $query, $where);\n    }\n\n    /**\n     * Compile a \"where day\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDay(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('%d', $query, $where);\n    }\n\n    /**\n     * Compile a \"where month\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereMonth(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('%m', $query, $where);\n    }\n\n    /**\n     * Compile a \"where year\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereYear(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('%Y', $query, $where);\n    }\n\n    /**\n     * Compile a \"where time\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereTime(Builder $query, $where)\n    {\n        return $this->dateBasedWhere('%H:%M:%S', $query, $where);\n    }\n\n    /**\n     * Compile a date based where clause.\n     *\n     * @param  string  $type\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function dateBasedWhere($type, Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return \"strftime('{$type}', {$this->wrap($where['column'])}) {$where['operator']} cast({$value} as text)\";\n    }\n\n    /**\n     * Compile a \"JSON length\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonLength($column, $operator, $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($column);\n\n        return 'json_array_length('.$field.$path.') '.$operator.' '.$value;\n    }\n\n    /**\n     * Compile an insert statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileInsert(Builder $query, array $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        return empty($values)\n                ? \"insert into {$table} DEFAULT VALUES\"\n                : parent::compileInsert($query, $values);\n    }\n\n    /**\n     * Compile an update statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileUpdate(Builder $query, $values)\n    {\n        $table = $this->wrapTable($query->from);\n\n        $columns = collect($values)->map(function ($value, $key) use ($query) {\n            return $this->wrap(Str::after($key, $query->from.'.')).' = '.$this->parameter($value);\n        })->implode(', ');\n\n        if (isset($query->joins) || isset($query->limit)) {\n            $selectSql = parent::compileSelect($query->select(\"{$query->from}.rowid\"));\n\n            return \"update {$table} set $columns where {$this->wrap('rowid')} in ({$selectSql})\";\n        }\n\n        return trim(\"update {$table} set {$columns} {$this->compileWheres($query)}\");\n    }\n\n    /**\n     * Prepare the bindings for an update statement.\n     *\n     * @param  array  $bindings\n     * @param  array  $values\n     * @return array\n     */\n    public function prepareBindingsForUpdate(array $bindings, array $values)\n    {\n        $cleanBindings = Arr::except($bindings, ['select', 'join']);\n\n        return array_values(\n            array_merge($values, $bindings['join'], Arr::flatten($cleanBindings))\n        );\n    }\n\n    /**\n     * Compile a delete statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileDelete(Builder $query)\n    {\n        if (isset($query->joins) || isset($query->limit)) {\n            $selectSql = parent::compileSelect($query->select(\"{$query->from}.rowid\"));\n\n            return \"delete from {$this->wrapTable($query->from)} where {$this->wrap('rowid')} in ({$selectSql})\";\n        }\n\n        $wheres = is_array($query->wheres) ? $this->compileWheres($query) : '';\n\n        return trim(\"delete from {$this->wrapTable($query->from)} $wheres\");\n    }\n\n    /**\n     * Prepare the bindings for a delete statement.\n     *\n     * @param  array  $bindings\n     * @return array\n     */\n    public function prepareBindingsForDelete(array $bindings)\n    {\n        $cleanBindings = Arr::except($bindings, ['select', 'join']);\n\n        return array_values(\n            array_merge($bindings['join'], Arr::flatten($cleanBindings))\n        );\n    }\n\n    /**\n     * Compile a truncate table statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    public function compileTruncate(Builder $query)\n    {\n        return [\n            'delete from sqlite_sequence where name = ?' => [$query->from],\n            'delete from '.$this->wrapTable($query->from) => [],\n        ];\n    }\n\n    /**\n     * Wrap the given JSON selector.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonSelector($value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($value);\n\n        return 'json_extract('.$field.$path.')';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/SqlServerGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Grammars;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Query\\Builder;\n\nclass SqlServerGrammar extends Grammar\n{\n    /**\n     * All of the available clause operators.\n     *\n     * @var array\n     */\n    protected $operators = [\n        '=', '<', '>', '<=', '>=', '!<', '!>', '<>', '!=',\n        'like', 'not like', 'ilike',\n        '&', '&=', '|', '|=', '^', '^=',\n    ];\n\n    /**\n     * Compile a select query into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileSelect(Builder $query)\n    {\n        if (! $query->offset) {\n            return parent::compileSelect($query);\n        }\n\n        // If an offset is present on the query, we will need to wrap the query in\n        // a big \"ANSI\" offset syntax block. This is very nasty compared to the\n        // other database systems but is necessary for implementing features.\n        if (is_null($query->columns)) {\n            $query->columns = ['*'];\n        }\n\n        return $this->compileAnsiOffset(\n            $query, $this->compileComponents($query)\n        );\n    }\n\n    /**\n     * Compile the \"select *\" portion of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $columns\n     * @return string|null\n     */\n    protected function compileColumns(Builder $query, $columns)\n    {\n        if (! is_null($query->aggregate)) {\n            return;\n        }\n\n        $select = $query->distinct ? 'select distinct ' : 'select ';\n\n        // If there is a limit on the query, but not an offset, we will add the top\n        // clause to the query, which serves as a \"limit\" type clause within the\n        // SQL Server system similar to the limit keywords available in MySQL.\n        if ($query->limit > 0 && $query->offset <= 0) {\n            $select .= 'top '.$query->limit.' ';\n        }\n\n        return $select.$this->columnize($columns);\n    }\n\n    /**\n     * Compile the \"from\" portion of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @return string\n     */\n    protected function compileFrom(Builder $query, $table)\n    {\n        $from = parent::compileFrom($query, $table);\n\n        if (is_string($query->lock)) {\n            return $from.' '.$query->lock;\n        }\n\n        if (! is_null($query->lock)) {\n            return $from.' with(rowlock,'.($query->lock ? 'updlock,' : '').'holdlock)';\n        }\n\n        return $from;\n    }\n\n    /**\n     * Compile a \"where date\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereDate(Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return 'cast('.$this->wrap($where['column']).' as date) '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a \"where time\" clause.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $where\n     * @return string\n     */\n    protected function whereTime(Builder $query, $where)\n    {\n        $value = $this->parameter($where['value']);\n\n        return 'cast('.$this->wrap($where['column']).' as time) '.$where['operator'].' '.$value;\n    }\n\n    /**\n     * Compile a \"JSON contains\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonContains($column, $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($column);\n\n        return $value.' in (select [value] from openjson('.$field.$path.'))';\n    }\n\n    /**\n     * Prepare the binding for a \"JSON contains\" statement.\n     *\n     * @param  mixed  $binding\n     * @return string\n     */\n    public function prepareBindingForJsonContains($binding)\n    {\n        return is_bool($binding) ? json_encode($binding) : $binding;\n    }\n\n    /**\n     * Compile a \"JSON length\" statement into SQL.\n     *\n     * @param  string  $column\n     * @param  string  $operator\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileJsonLength($column, $operator, $value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($column);\n\n        return '(select count(*) from openjson('.$field.$path.')) '.$operator.' '.$value;\n    }\n\n    /**\n     * Create a full ANSI offset clause for the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $components\n     * @return string\n     */\n    protected function compileAnsiOffset(Builder $query, $components)\n    {\n        // An ORDER BY clause is required to make this offset query work, so if one does\n        // not exist we'll just create a dummy clause to trick the database and so it\n        // does not complain about the queries for not having an \"order by\" clause.\n        if (empty($components['orders'])) {\n            $components['orders'] = 'order by (select 0)';\n        }\n\n        // We need to add the row number to the query so we can compare it to the offset\n        // and limit values given for the statements. So we will add an expression to\n        // the \"select\" that will give back the row numbers on each of the records.\n        $components['columns'] .= $this->compileOver($components['orders']);\n\n        unset($components['orders']);\n\n        // Next we need to calculate the constraints that should be placed on the query\n        // to get the right offset and limit from our query but if there is no limit\n        // set we will just handle the offset only since that is all that matters.\n        $sql = $this->concatenate($components);\n\n        return $this->compileTableExpression($sql, $query);\n    }\n\n    /**\n     * Compile the over statement for a table expression.\n     *\n     * @param  string  $orderings\n     * @return string\n     */\n    protected function compileOver($orderings)\n    {\n        return \", row_number() over ({$orderings}) as row_num\";\n    }\n\n    /**\n     * Compile a common table expression for a query.\n     *\n     * @param  string  $sql\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileTableExpression($sql, $query)\n    {\n        $constraint = $this->compileRowConstraint($query);\n\n        return \"select * from ({$sql}) as temp_table where row_num {$constraint} order by row_num\";\n    }\n\n    /**\n     * Compile the limit / offset row constraint for a query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    protected function compileRowConstraint($query)\n    {\n        $start = $query->offset + 1;\n\n        if ($query->limit > 0) {\n            $finish = $query->offset + $query->limit;\n\n            return \"between {$start} and {$finish}\";\n        }\n\n        return \">= {$start}\";\n    }\n\n    /**\n     * Compile the random statement into SQL.\n     *\n     * @param  string  $seed\n     * @return string\n     */\n    public function compileRandom($seed)\n    {\n        return 'NEWID()';\n    }\n\n    /**\n     * Compile the \"limit\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  int  $limit\n     * @return string\n     */\n    protected function compileLimit(Builder $query, $limit)\n    {\n        return '';\n    }\n\n    /**\n     * Compile the \"offset\" portions of the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  int  $offset\n     * @return string\n     */\n    protected function compileOffset(Builder $query, $offset)\n    {\n        return '';\n    }\n\n    /**\n     * Compile the lock into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  bool|string  $value\n     * @return string\n     */\n    protected function compileLock(Builder $query, $value)\n    {\n        return '';\n    }\n\n    /**\n     * Compile an exists statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileExists(Builder $query)\n    {\n        $existsQuery = clone $query;\n\n        $existsQuery->columns = [];\n\n        return $this->compileSelect($existsQuery->selectRaw('1 [exists]')->limit(1));\n    }\n\n    /**\n     * Compile a delete statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return string\n     */\n    public function compileDelete(Builder $query)\n    {\n        $table = $this->wrapTable($query->from);\n\n        $where = is_array($query->wheres) ? $this->compileWheres($query) : '';\n\n        return isset($query->joins)\n                    ? $this->compileDeleteWithJoins($query, $table, $where)\n                    : trim(\"delete from {$table} {$where}\");\n    }\n\n    /**\n     * Compile a delete statement with joins into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $table\n     * @param  string  $where\n     * @return string\n     */\n    protected function compileDeleteWithJoins(Builder $query, $table, $where)\n    {\n        $joins = ' '.$this->compileJoins($query, $query->joins);\n\n        $alias = stripos($table, ' as ') !== false\n                ? explode(' as ', $table)[1] : $table;\n\n        return trim(\"delete {$alias} from {$table}{$joins} {$where}\");\n    }\n\n    /**\n     * Compile a truncate table statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return array\n     */\n    public function compileTruncate(Builder $query)\n    {\n        return ['truncate table '.$this->wrapTable($query->from) => []];\n    }\n\n    /**\n     * Compile an update statement into SQL.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $values\n     * @return string\n     */\n    public function compileUpdate(Builder $query, $values)\n    {\n        [$table, $alias] = $this->parseUpdateTable($query->from);\n\n        // Each one of the columns in the update statements needs to be wrapped in the\n        // keyword identifiers, also a place-holder needs to be created for each of\n        // the values in the list of bindings so we can make the sets statements.\n        $columns = collect($values)->map(function ($value, $key) {\n            return $this->wrap($key).' = '.$this->parameter($value);\n        })->implode(', ');\n\n        // If the query has any \"join\" clauses, we will setup the joins on the builder\n        // and compile them so we can attach them to this update, as update queries\n        // can get join statements to attach to other tables when they're needed.\n        $joins = '';\n\n        if (isset($query->joins)) {\n            $joins = ' '.$this->compileJoins($query, $query->joins);\n        }\n\n        // Of course, update queries may also be constrained by where clauses so we'll\n        // need to compile the where clauses and attach it to the query so only the\n        // intended records are updated by the SQL statements we generate to run.\n        $where = $this->compileWheres($query);\n\n        if (! empty($joins)) {\n            return trim(\"update {$alias} set {$columns} from {$table}{$joins} {$where}\");\n        }\n\n        return trim(\"update {$table}{$joins} set $columns $where\");\n    }\n\n    /**\n     * Get the table and alias for the given table.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    protected function parseUpdateTable($table)\n    {\n        $table = $alias = $this->wrapTable($table);\n\n        if (stripos($table, '] as [') !== false) {\n            $alias = '['.explode('] as [', $table)[1];\n        }\n\n        return [$table, $alias];\n    }\n\n    /**\n     * Prepare the bindings for an update statement.\n     *\n     * @param  array  $bindings\n     * @param  array  $values\n     * @return array\n     */\n    public function prepareBindingsForUpdate(array $bindings, array $values)\n    {\n        // Update statements with joins in SQL Servers utilize an unique syntax. We need to\n        // take all of the bindings and put them on the end of this array since they are\n        // added to the end of the \"where\" clause statements as typical where clauses.\n        $bindingsWithoutJoin = Arr::except($bindings, 'join');\n\n        return array_values(\n            array_merge($values, $bindings['join'], Arr::flatten($bindingsWithoutJoin))\n        );\n    }\n\n    /**\n     * Compile the SQL statement to define a savepoint.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function compileSavepoint($name)\n    {\n        return 'SAVE TRANSACTION '.$name;\n    }\n\n    /**\n     * Compile the SQL statement to execute a savepoint rollback.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function compileSavepointRollBack($name)\n    {\n        return 'ROLLBACK TRANSACTION '.$name;\n    }\n\n    /**\n     * Get the format for database stored dates.\n     *\n     * @return string\n     */\n    public function getDateFormat()\n    {\n        return 'Y-m-d H:i:s.v';\n    }\n\n    /**\n     * Wrap a single string in keyword identifiers.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapValue($value)\n    {\n        return $value === '*' ? $value : '['.str_replace(']', ']]', $value).']';\n    }\n\n    /**\n     * Wrap the given JSON selector.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonSelector($value)\n    {\n        [$field, $path] = $this->wrapJsonFieldAndPath($value);\n\n        return 'json_value('.$field.$path.')';\n    }\n\n    /**\n     * Wrap the given JSON boolean value.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapJsonBooleanValue($value)\n    {\n        return \"'\".$value.\"'\";\n    }\n\n    /**\n     * Wrap a table in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $table\n     * @return string\n     */\n    public function wrapTable($table)\n    {\n        if (! $this->isExpression($table)) {\n            return $this->wrapTableValuedFunction(parent::wrapTable($table));\n        }\n\n        return $this->getValue($table);\n    }\n\n    /**\n     * Wrap a table in keyword identifiers.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function wrapTableValuedFunction($table)\n    {\n        if (preg_match('/^(.+?)(\\(.*?\\))]$/', $table, $matches) === 1) {\n            $table = $matches[1].']'.$matches[2];\n        }\n\n        return $table;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/JoinClause.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query;\n\nuse Closure;\n\nclass JoinClause extends Builder\n{\n    /**\n     * The type of join being performed.\n     *\n     * @var string\n     */\n    public $type;\n\n    /**\n     * The table the join clause is joining to.\n     *\n     * @var string\n     */\n    public $table;\n\n    /**\n     * The connection of the parent query builder.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    protected $parentConnection;\n\n    /**\n     * The grammar of the parent query builder.\n     *\n     * @var \\Illuminate\\Database\\Query\\Grammars\\Grammar\n     */\n    protected $parentGrammar;\n\n    /**\n     * The processor of the parent query builder.\n     *\n     * @var \\Illuminate\\Database\\Query\\Processors\\Processor\n     */\n    protected $parentProcessor;\n\n    /**\n     * The class name of the parent query builder.\n     *\n     * @var string\n     */\n    protected $parentClass;\n\n    /**\n     * Create a new join clause instance.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder $parentQuery\n     * @param  string  $type\n     * @param  string  $table\n     * @return void\n     */\n    public function __construct(Builder $parentQuery, $type, $table)\n    {\n        $this->type = $type;\n        $this->table = $table;\n        $this->parentClass = get_class($parentQuery);\n        $this->parentGrammar = $parentQuery->getGrammar();\n        $this->parentProcessor = $parentQuery->getProcessor();\n        $this->parentConnection = $parentQuery->getConnection();\n\n        parent::__construct(\n            $this->parentConnection, $this->parentGrammar, $this->parentProcessor\n        );\n    }\n\n    /**\n     * Add an \"on\" clause to the join.\n     *\n     * On clauses can be chained, e.g.\n     *\n     *  $join->on('contacts.user_id', '=', 'users.id')\n     *       ->on('contacts.info_id', '=', 'info.id')\n     *\n     * will produce the following SQL:\n     *\n     * on `contacts`.`user_id` = `users`.`id` and `contacts`.`info_id` = `info`.`id`\n     *\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @param  string  $boolean\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function on($first, $operator = null, $second = null, $boolean = 'and')\n    {\n        if ($first instanceof Closure) {\n            return $this->whereNested($first, $boolean);\n        }\n\n        return $this->whereColumn($first, $operator, $second, $boolean);\n    }\n\n    /**\n     * Add an \"or on\" clause to the join.\n     *\n     * @param  \\Closure|string  $first\n     * @param  string|null  $operator\n     * @param  string|null  $second\n     * @return \\Illuminate\\Database\\Query\\JoinClause\n     */\n    public function orOn($first, $operator = null, $second = null)\n    {\n        return $this->on($first, $operator, $second, 'or');\n    }\n\n    /**\n     * Get a new instance of the join clause builder.\n     *\n     * @return \\Illuminate\\Database\\Query\\JoinClause\n     */\n    public function newQuery()\n    {\n        return new static($this->newParentQuery(), $this->type, $this->table);\n    }\n\n    /**\n     * Create a new query instance for sub-query.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function forSubQuery()\n    {\n        return $this->newParentQuery()->newQuery();\n    }\n\n    /**\n     * Create a new parent query instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function newParentQuery()\n    {\n        $class = $this->parentClass;\n\n        return new $class($this->parentConnection, $this->parentGrammar, $this->parentProcessor);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/JsonExpression.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query;\n\nuse InvalidArgumentException;\n\nclass JsonExpression extends Expression\n{\n    /**\n     * Create a new raw query expression.\n     *\n     * @param  mixed  $value\n     * @return void\n     */\n    public function __construct($value)\n    {\n        parent::__construct(\n            $this->getJsonBindingParameter($value)\n        );\n    }\n\n    /**\n     * Translate the given value into the appropriate JSON binding parameter.\n     *\n     * @param  mixed  $value\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function getJsonBindingParameter($value)\n    {\n        if ($value instanceof Expression) {\n            return $value->getValue();\n        }\n\n        switch ($type = gettype($value)) {\n            case 'boolean':\n                return $value ? 'true' : 'false';\n            case 'NULL':\n            case 'integer':\n            case 'double':\n            case 'string':\n                return '?';\n            case 'object':\n            case 'array':\n                return '?';\n        }\n\n        throw new InvalidArgumentException(\"JSON value is of illegal type: {$type}\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Processors/MySqlProcessor.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Processors;\n\nclass MySqlProcessor extends Processor\n{\n    /**\n     * Process the results of a column listing query.\n     *\n     * @param  array  $results\n     * @return array\n     */\n    public function processColumnListing($results)\n    {\n        return array_map(function ($result) {\n            return ((object) $result)->column_name;\n        }, $results);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Processors/PostgresProcessor.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Processors;\n\nuse Illuminate\\Database\\Query\\Builder;\n\nclass PostgresProcessor extends Processor\n{\n    /**\n     * Process an \"insert get ID\" query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $sql\n     * @param  array   $values\n     * @param  string|null  $sequence\n     * @return int\n     */\n    public function processInsertGetId(Builder $query, $sql, $values, $sequence = null)\n    {\n        $result = $query->getConnection()->selectFromWriteConnection($sql, $values)[0];\n\n        $sequence = $sequence ?: 'id';\n\n        $id = is_object($result) ? $result->{$sequence} : $result[$sequence];\n\n        return is_numeric($id) ? (int) $id : $id;\n    }\n\n    /**\n     * Process the results of a column listing query.\n     *\n     * @param  array  $results\n     * @return array\n     */\n    public function processColumnListing($results)\n    {\n        return array_map(function ($result) {\n            return ((object) $result)->column_name;\n        }, $results);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Processors;\n\nuse Illuminate\\Database\\Query\\Builder;\n\nclass Processor\n{\n    /**\n     * Process the results of a \"select\" query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $results\n     * @return array\n     */\n    public function processSelect(Builder $query, $results)\n    {\n        return $results;\n    }\n\n    /**\n     * Process an  \"insert get ID\" query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $sql\n     * @param  array   $values\n     * @param  string|null  $sequence\n     * @return int\n     */\n    public function processInsertGetId(Builder $query, $sql, $values, $sequence = null)\n    {\n        $query->getConnection()->insert($sql, $values);\n\n        $id = $query->getConnection()->getPdo()->lastInsertId($sequence);\n\n        return is_numeric($id) ? (int) $id : $id;\n    }\n\n    /**\n     * Process the results of a column listing query.\n     *\n     * @param  array  $results\n     * @return array\n     */\n    public function processColumnListing($results)\n    {\n        return $results;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SQLiteProcessor.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Processors;\n\nclass SQLiteProcessor extends Processor\n{\n    /**\n     * Process the results of a column listing query.\n     *\n     * @param  array  $results\n     * @return array\n     */\n    public function processColumnListing($results)\n    {\n        return array_map(function ($result) {\n            return ((object) $result)->name;\n        }, $results);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Query/Processors/SqlServerProcessor.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Query\\Processors;\n\nuse Exception;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Query\\Builder;\n\nclass SqlServerProcessor extends Processor\n{\n    /**\n     * Process an \"insert get ID\" query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $sql\n     * @param  array   $values\n     * @param  string|null  $sequence\n     * @return int\n     */\n    public function processInsertGetId(Builder $query, $sql, $values, $sequence = null)\n    {\n        $connection = $query->getConnection();\n\n        $connection->insert($sql, $values);\n\n        if ($connection->getConfig('odbc') === true) {\n            $id = $this->processInsertGetIdForOdbc($connection);\n        } else {\n            $id = $connection->getPdo()->lastInsertId();\n        }\n\n        return is_numeric($id) ? (int) $id : $id;\n    }\n\n    /**\n     * Process an \"insert get ID\" query for ODBC.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return int\n     *\n     * @throws \\Exception\n     */\n    protected function processInsertGetIdForOdbc(Connection $connection)\n    {\n        $result = $connection->selectFromWriteConnection(\n            'SELECT CAST(COALESCE(SCOPE_IDENTITY(), @@IDENTITY) AS int) AS insertid'\n        );\n\n        if (! $result) {\n            throw new Exception('Unable to retrieve lastInsertID for ODBC.');\n        }\n\n        $row = $result[0];\n\n        return is_object($row) ? $row->insertid : $row['insertid'];\n    }\n\n    /**\n     * Process the results of a column listing query.\n     *\n     * @param  array  $results\n     * @return array\n     */\n    public function processColumnListing($results)\n    {\n        return array_map(function ($result) {\n            return ((object) $result)->name;\n        }, $results);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/QueryException.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse PDOException;\nuse Illuminate\\Support\\Str;\n\nclass QueryException extends PDOException\n{\n    /**\n     * The SQL for the query.\n     *\n     * @var string\n     */\n    protected $sql;\n\n    /**\n     * The bindings for the query.\n     *\n     * @var array\n     */\n    protected $bindings;\n\n    /**\n     * Create a new query exception instance.\n     *\n     * @param  string  $sql\n     * @param  array  $bindings\n     * @param  \\Exception $previous\n     * @return void\n     */\n    public function __construct($sql, array $bindings, $previous)\n    {\n        parent::__construct('', 0, $previous);\n\n        $this->sql = $sql;\n        $this->bindings = $bindings;\n        $this->code = $previous->getCode();\n        $this->message = $this->formatMessage($sql, $bindings, $previous);\n\n        if ($previous instanceof PDOException) {\n            $this->errorInfo = $previous->errorInfo;\n        }\n    }\n\n    /**\n     * Format the SQL error message.\n     *\n     * @param  string  $sql\n     * @param  array  $bindings\n     * @param  \\Exception $previous\n     * @return string\n     */\n    protected function formatMessage($sql, $bindings, $previous)\n    {\n        return $previous->getMessage().' (SQL: '.Str::replaceArray('?', $bindings, $sql).')';\n    }\n\n    /**\n     * Get the SQL for the query.\n     *\n     * @return string\n     */\n    public function getSql()\n    {\n        return $this->sql;\n    }\n\n    /**\n     * Get the bindings for the query.\n     *\n     * @return array\n     */\n    public function getBindings()\n    {\n        return $this->bindings;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/README.md",
    "content": "## Illuminate Database\n\nThe Illuminate Database component is a full database toolkit for PHP, providing an expressive query builder, ActiveRecord style ORM, and schema builder. It currently supports MySQL, Postgres, SQL Server, and SQLite. It also serves as the database layer of the Laravel PHP framework.\n\n### Usage Instructions\n\nFirst, create a new \"Capsule\" manager instance. Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible.\n\n```PHP\nuse Illuminate\\Database\\Capsule\\Manager as Capsule;\n\n$capsule = new Capsule;\n\n$capsule->addConnection([\n    'driver'    => 'mysql',\n    'host'      => 'localhost',\n    'database'  => 'database',\n    'username'  => 'root',\n    'password'  => 'password',\n    'charset'   => 'utf8',\n    'collation' => 'utf8_unicode_ci',\n    'prefix'    => '',\n]);\n\n// Set the event dispatcher used by Eloquent models... (optional)\nuse Illuminate\\Events\\Dispatcher;\nuse Illuminate\\Container\\Container;\n$capsule->setEventDispatcher(new Dispatcher(new Container));\n\n// Make this Capsule instance available globally via static methods... (optional)\n$capsule->setAsGlobal();\n\n// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())\n$capsule->bootEloquent();\n```\n\n> `composer require \"illuminate/events\"` required when you need to use observers with Eloquent.\n\nOnce the Capsule instance has been registered. You may use it like so:\n\n**Using The Query Builder**\n\n```PHP\n$users = Capsule::table('users')->where('votes', '>', 100)->get();\n```\nOther core methods may be accessed directly from the Capsule in the same manner as from the DB facade:\n```PHP\n$results = Capsule::select('select * from users where id = ?', [1]);\n```\n\n**Using The Schema Builder**\n\n```PHP\nCapsule::schema()->create('users', function ($table) {\n    $table->increments('id');\n    $table->string('email')->unique();\n    $table->timestamps();\n});\n```\n\n**Using The Eloquent ORM**\n\n```PHP\nclass User extends Illuminate\\Database\\Eloquent\\Model {}\n\n$users = User::where('votes', '>', 1)->get();\n```\n\nFor further documentation on using the various database facilities this library provides, consult the [Laravel framework documentation](https://laravel.com/docs).\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/SQLiteConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Database\\Schema\\SQLiteBuilder;\nuse Illuminate\\Database\\Query\\Processors\\SQLiteProcessor;\nuse Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver as DoctrineDriver;\nuse Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar as QueryGrammar;\nuse Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar as SchemaGrammar;\n\nclass SQLiteConnection extends Connection\n{\n    /**\n     * Create a new database connection instance.\n     *\n     * @param  \\PDO|\\Closure     $pdo\n     * @param  string   $database\n     * @param  string   $tablePrefix\n     * @param  array    $config\n     * @return void\n     */\n    public function __construct($pdo, $database = '', $tablePrefix = '', array $config = [])\n    {\n        parent::__construct($pdo, $database, $tablePrefix, $config);\n\n        $enableForeignKeyConstraints = $this->getForeignKeyConstraintsConfigurationValue();\n\n        if ($enableForeignKeyConstraints === null) {\n            return;\n        }\n\n        $enableForeignKeyConstraints\n            ? $this->getSchemaBuilder()->enableForeignKeyConstraints()\n            : $this->getSchemaBuilder()->disableForeignKeyConstraints();\n    }\n\n    /**\n     * Get the default query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\SQLiteGrammar\n     */\n    protected function getDefaultQueryGrammar()\n    {\n        return $this->withTablePrefix(new QueryGrammar);\n    }\n\n    /**\n     * Get a schema builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\SQLiteBuilder\n     */\n    public function getSchemaBuilder()\n    {\n        if (is_null($this->schemaGrammar)) {\n            $this->useDefaultSchemaGrammar();\n        }\n\n        return new SQLiteBuilder($this);\n    }\n\n    /**\n     * Get the default schema grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\SQLiteGrammar\n     */\n    protected function getDefaultSchemaGrammar()\n    {\n        return $this->withTablePrefix(new SchemaGrammar);\n    }\n\n    /**\n     * Get the default post processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\SQLiteProcessor\n     */\n    protected function getDefaultPostProcessor()\n    {\n        return new SQLiteProcessor;\n    }\n\n    /**\n     * Get the Doctrine DBAL driver.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver\n     */\n    protected function getDoctrineDriver()\n    {\n        return new DoctrineDriver;\n    }\n\n    /**\n     * Get the database connection foreign key constraints configuration option.\n     *\n     * @return bool|null\n     */\n    protected function getForeignKeyConstraintsConfigurationValue()\n    {\n        return $this->getConfig('foreign_key_constraints');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nuse Closure;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Database\\SQLiteConnection;\nuse Illuminate\\Database\\Schema\\Grammars\\Grammar;\n\nclass Blueprint\n{\n    use Macroable;\n\n    /**\n     * The table the blueprint describes.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The prefix of the table.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * The columns that should be added to the table.\n     *\n     * @var \\Illuminate\\Database\\Schema\\ColumnDefinition[]\n     */\n    protected $columns = [];\n\n    /**\n     * The commands that should be run for the table.\n     *\n     * @var \\Illuminate\\Support\\Fluent[]\n     */\n    protected $commands = [];\n\n    /**\n     * The storage engine that should be used for the table.\n     *\n     * @var string\n     */\n    public $engine;\n\n    /**\n     * The default character set that should be used for the table.\n     */\n    public $charset;\n\n    /**\n     * The collation that should be used for the table.\n     */\n    public $collation;\n\n    /**\n     * Whether to make the table temporary.\n     *\n     * @var bool\n     */\n    public $temporary = false;\n\n    /**\n     * Create a new schema blueprint.\n     *\n     * @param  string  $table\n     * @param  \\Closure|null  $callback\n     * @param  string  $prefix\n     * @return void\n     */\n    public function __construct($table, Closure $callback = null, $prefix = '')\n    {\n        $this->table = $table;\n        $this->prefix = $prefix;\n\n        if (! is_null($callback)) {\n            $callback($this);\n        }\n    }\n\n    /**\n     * Execute the blueprint against the database.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @return void\n     */\n    public function build(Connection $connection, Grammar $grammar)\n    {\n        foreach ($this->toSql($connection, $grammar) as $statement) {\n            $connection->statement($statement);\n        }\n    }\n\n    /**\n     * Get the raw SQL statements for the blueprint.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @return array\n     */\n    public function toSql(Connection $connection, Grammar $grammar)\n    {\n        $this->addImpliedCommands($grammar);\n\n        $statements = [];\n\n        // Each type of command has a corresponding compiler function on the schema\n        // grammar which is used to build the necessary SQL statements to build\n        // the blueprint element, so we'll just call that compilers function.\n        $this->ensureCommandsAreValid($connection);\n\n        foreach ($this->commands as $command) {\n            $method = 'compile'.ucfirst($command->name);\n\n            if (method_exists($grammar, $method)) {\n                if (! is_null($sql = $grammar->$method($this, $command, $connection))) {\n                    $statements = array_merge($statements, (array) $sql);\n                }\n            }\n        }\n\n        return $statements;\n    }\n\n    /**\n     * Ensure the commands on the blueprint are valid for the connection type.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return void\n     *\n     * @throws \\BadMethodCallException\n     */\n    protected function ensureCommandsAreValid(Connection $connection)\n    {\n        if ($connection instanceof SQLiteConnection) {\n            if ($this->commandsNamed(['dropColumn', 'renameColumn'])->count() > 1) {\n                throw new BadMethodCallException(\n                    \"SQLite doesn't support multiple calls to dropColumn / renameColumn in a single modification.\"\n                );\n            }\n\n            if ($this->commandsNamed(['dropForeign'])->count() > 0) {\n                throw new BadMethodCallException(\n                    \"SQLite doesn't support dropping foreign keys (you would need to re-create the table).\"\n                );\n            }\n        }\n    }\n\n    /**\n     * Get all of the commands matching the given names.\n     *\n     * @param  array  $names\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function commandsNamed(array $names)\n    {\n        return collect($this->commands)->filter(function ($command) use ($names) {\n            return in_array($command->name, $names);\n        });\n    }\n\n    /**\n     * Add the commands that are implied by the blueprint's state.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @return void\n     */\n    protected function addImpliedCommands(Grammar $grammar)\n    {\n        if (count($this->getAddedColumns()) > 0 && ! $this->creating()) {\n            array_unshift($this->commands, $this->createCommand('add'));\n        }\n\n        if (count($this->getChangedColumns()) > 0 && ! $this->creating()) {\n            array_unshift($this->commands, $this->createCommand('change'));\n        }\n\n        $this->addFluentIndexes();\n\n        $this->addFluentCommands($grammar);\n    }\n\n    /**\n     * Add the index commands fluently specified on columns.\n     *\n     * @return void\n     */\n    protected function addFluentIndexes()\n    {\n        foreach ($this->columns as $column) {\n            foreach (['primary', 'unique', 'index', 'spatialIndex'] as $index) {\n                // If the index has been specified on the given column, but is simply equal\n                // to \"true\" (boolean), no name has been specified for this index so the\n                // index method can be called without a name and it will generate one.\n                if ($column->{$index} === true) {\n                    $this->{$index}($column->name);\n\n                    continue 2;\n                }\n\n                // If the index has been specified on the given column, and it has a string\n                // value, we'll go ahead and call the index method and pass the name for\n                // the index since the developer specified the explicit name for this.\n                elseif (isset($column->{$index})) {\n                    $this->{$index}($column->name, $column->{$index});\n\n                    continue 2;\n                }\n            }\n        }\n    }\n\n    /**\n     * Add the fluent commands specified on any columns.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @return void\n     */\n    public function addFluentCommands(Grammar $grammar)\n    {\n        foreach ($this->columns as $column) {\n            foreach ($grammar->getFluentCommands() as $commandName) {\n                $attributeName = lcfirst($commandName);\n\n                if (! isset($column->{$attributeName})) {\n                    continue;\n                }\n\n                $value = $column->{$attributeName};\n\n                $this->addCommand(\n                    $commandName, compact('value', 'column')\n                );\n            }\n        }\n    }\n\n    /**\n     * Determine if the blueprint has a create command.\n     *\n     * @return bool\n     */\n    protected function creating()\n    {\n        return collect($this->commands)->contains(function ($command) {\n            return $command->name === 'create';\n        });\n    }\n\n    /**\n     * Indicate that the table needs to be created.\n     *\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function create()\n    {\n        return $this->addCommand('create');\n    }\n\n    /**\n     * Indicate that the table needs to be temporary.\n     *\n     * @return void\n     */\n    public function temporary()\n    {\n        $this->temporary = true;\n    }\n\n    /**\n     * Indicate that the table should be dropped.\n     *\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function drop()\n    {\n        return $this->addCommand('drop');\n    }\n\n    /**\n     * Indicate that the table should be dropped if it exists.\n     *\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropIfExists()\n    {\n        return $this->addCommand('dropIfExists');\n    }\n\n    /**\n     * Indicate that the given columns should be dropped.\n     *\n     * @param  array|mixed  $columns\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropColumn($columns)\n    {\n        $columns = is_array($columns) ? $columns : func_get_args();\n\n        return $this->addCommand('dropColumn', compact('columns'));\n    }\n\n    /**\n     * Indicate that the given columns should be renamed.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function renameColumn($from, $to)\n    {\n        return $this->addCommand('renameColumn', compact('from', 'to'));\n    }\n\n    /**\n     * Indicate that the given primary key should be dropped.\n     *\n     * @param  string|array|null  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropPrimary($index = null)\n    {\n        return $this->dropIndexCommand('dropPrimary', 'primary', $index);\n    }\n\n    /**\n     * Indicate that the given unique key should be dropped.\n     *\n     * @param  string|array  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropUnique($index)\n    {\n        return $this->dropIndexCommand('dropUnique', 'unique', $index);\n    }\n\n    /**\n     * Indicate that the given index should be dropped.\n     *\n     * @param  string|array  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropIndex($index)\n    {\n        return $this->dropIndexCommand('dropIndex', 'index', $index);\n    }\n\n    /**\n     * Indicate that the given spatial index should be dropped.\n     *\n     * @param  string|array  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropSpatialIndex($index)\n    {\n        return $this->dropIndexCommand('dropSpatialIndex', 'spatialIndex', $index);\n    }\n\n    /**\n     * Indicate that the given foreign key should be dropped.\n     *\n     * @param  string|array  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function dropForeign($index)\n    {\n        return $this->dropIndexCommand('dropForeign', 'foreign', $index);\n    }\n\n    /**\n     * Indicate that the given indexes should be renamed.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function renameIndex($from, $to)\n    {\n        return $this->addCommand('renameIndex', compact('from', 'to'));\n    }\n\n    /**\n     * Indicate that the timestamp columns should be dropped.\n     *\n     * @return void\n     */\n    public function dropTimestamps()\n    {\n        $this->dropColumn('created_at', 'updated_at');\n    }\n\n    /**\n     * Indicate that the timestamp columns should be dropped.\n     *\n     * @return void\n     */\n    public function dropTimestampsTz()\n    {\n        $this->dropTimestamps();\n    }\n\n    /**\n     * Indicate that the soft delete column should be dropped.\n     *\n     * @param  string  $column\n     * @return void\n     */\n    public function dropSoftDeletes($column = 'deleted_at')\n    {\n        $this->dropColumn($column);\n    }\n\n    /**\n     * Indicate that the soft delete column should be dropped.\n     *\n     * @param  string  $column\n     * @return void\n     */\n    public function dropSoftDeletesTz($column = 'deleted_at')\n    {\n        $this->dropSoftDeletes($column);\n    }\n\n    /**\n     * Indicate that the remember token column should be dropped.\n     *\n     * @return void\n     */\n    public function dropRememberToken()\n    {\n        $this->dropColumn('remember_token');\n    }\n\n    /**\n     * Indicate that the polymorphic columns should be dropped.\n     *\n     * @param  string  $name\n     * @param  string|null  $indexName\n     * @return void\n     */\n    public function dropMorphs($name, $indexName = null)\n    {\n        $this->dropIndex($indexName ?: $this->createIndexName('index', [\"{$name}_type\", \"{$name}_id\"]));\n\n        $this->dropColumn(\"{$name}_type\", \"{$name}_id\");\n    }\n\n    /**\n     * Rename the table to a given name.\n     *\n     * @param  string  $to\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function rename($to)\n    {\n        return $this->addCommand('rename', compact('to'));\n    }\n\n    /**\n     * Specify the primary key(s) for the table.\n     *\n     * @param  string|array  $columns\n     * @param  string|null  $name\n     * @param  string|null  $algorithm\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function primary($columns, $name = null, $algorithm = null)\n    {\n        return $this->indexCommand('primary', $columns, $name, $algorithm);\n    }\n\n    /**\n     * Specify a unique index for the table.\n     *\n     * @param  string|array  $columns\n     * @param  string|null  $name\n     * @param  string|null  $algorithm\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function unique($columns, $name = null, $algorithm = null)\n    {\n        return $this->indexCommand('unique', $columns, $name, $algorithm);\n    }\n\n    /**\n     * Specify an index for the table.\n     *\n     * @param  string|array  $columns\n     * @param  string|null  $name\n     * @param  string|null  $algorithm\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function index($columns, $name = null, $algorithm = null)\n    {\n        return $this->indexCommand('index', $columns, $name, $algorithm);\n    }\n\n    /**\n     * Specify a spatial index for the table.\n     *\n     * @param  string|array  $columns\n     * @param  string|null  $name\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    public function spatialIndex($columns, $name = null)\n    {\n        return $this->indexCommand('spatialIndex', $columns, $name);\n    }\n\n    /**\n     * Specify a foreign key for the table.\n     *\n     * @param  string|array  $columns\n     * @param  string|null  $name\n     * @return \\Illuminate\\Support\\Fluent|\\Illuminate\\Database\\Schema\\ForeignKeyDefinition\n     */\n    public function foreign($columns, $name = null)\n    {\n        return $this->indexCommand('foreign', $columns, $name);\n    }\n\n    /**\n     * Create a new auto-incrementing integer (4-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function increments($column)\n    {\n        return $this->unsignedInteger($column, true);\n    }\n\n    /**\n     * Create a new auto-incrementing integer (4-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function integerIncrements($column)\n    {\n        return $this->unsignedInteger($column, true);\n    }\n\n    /**\n     * Create a new auto-incrementing tiny integer (1-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function tinyIncrements($column)\n    {\n        return $this->unsignedTinyInteger($column, true);\n    }\n\n    /**\n     * Create a new auto-incrementing small integer (2-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function smallIncrements($column)\n    {\n        return $this->unsignedSmallInteger($column, true);\n    }\n\n    /**\n     * Create a new auto-incrementing medium integer (3-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function mediumIncrements($column)\n    {\n        return $this->unsignedMediumInteger($column, true);\n    }\n\n    /**\n     * Create a new auto-incrementing big integer (8-byte) column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function bigIncrements($column)\n    {\n        return $this->unsignedBigInteger($column, true);\n    }\n\n    /**\n     * Create a new char column on the table.\n     *\n     * @param  string  $column\n     * @param  int|null  $length\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function char($column, $length = null)\n    {\n        $length = $length ?: Builder::$defaultStringLength;\n\n        return $this->addColumn('char', $column, compact('length'));\n    }\n\n    /**\n     * Create a new string column on the table.\n     *\n     * @param  string  $column\n     * @param  int|null  $length\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function string($column, $length = null)\n    {\n        $length = $length ?: Builder::$defaultStringLength;\n\n        return $this->addColumn('string', $column, compact('length'));\n    }\n\n    /**\n     * Create a new text column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function text($column)\n    {\n        return $this->addColumn('text', $column);\n    }\n\n    /**\n     * Create a new medium text column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function mediumText($column)\n    {\n        return $this->addColumn('mediumText', $column);\n    }\n\n    /**\n     * Create a new long text column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function longText($column)\n    {\n        return $this->addColumn('longText', $column);\n    }\n\n    /**\n     * Create a new integer (4-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @param  bool  $unsigned\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function integer($column, $autoIncrement = false, $unsigned = false)\n    {\n        return $this->addColumn('integer', $column, compact('autoIncrement', 'unsigned'));\n    }\n\n    /**\n     * Create a new tiny integer (1-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @param  bool  $unsigned\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function tinyInteger($column, $autoIncrement = false, $unsigned = false)\n    {\n        return $this->addColumn('tinyInteger', $column, compact('autoIncrement', 'unsigned'));\n    }\n\n    /**\n     * Create a new small integer (2-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @param  bool  $unsigned\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function smallInteger($column, $autoIncrement = false, $unsigned = false)\n    {\n        return $this->addColumn('smallInteger', $column, compact('autoIncrement', 'unsigned'));\n    }\n\n    /**\n     * Create a new medium integer (3-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @param  bool  $unsigned\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function mediumInteger($column, $autoIncrement = false, $unsigned = false)\n    {\n        return $this->addColumn('mediumInteger', $column, compact('autoIncrement', 'unsigned'));\n    }\n\n    /**\n     * Create a new big integer (8-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @param  bool  $unsigned\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function bigInteger($column, $autoIncrement = false, $unsigned = false)\n    {\n        return $this->addColumn('bigInteger', $column, compact('autoIncrement', 'unsigned'));\n    }\n\n    /**\n     * Create a new unsigned integer (4-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedInteger($column, $autoIncrement = false)\n    {\n        return $this->integer($column, $autoIncrement, true);\n    }\n\n    /**\n     * Create a new unsigned tiny integer (1-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedTinyInteger($column, $autoIncrement = false)\n    {\n        return $this->tinyInteger($column, $autoIncrement, true);\n    }\n\n    /**\n     * Create a new unsigned small integer (2-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedSmallInteger($column, $autoIncrement = false)\n    {\n        return $this->smallInteger($column, $autoIncrement, true);\n    }\n\n    /**\n     * Create a new unsigned medium integer (3-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedMediumInteger($column, $autoIncrement = false)\n    {\n        return $this->mediumInteger($column, $autoIncrement, true);\n    }\n\n    /**\n     * Create a new unsigned big integer (8-byte) column on the table.\n     *\n     * @param  string  $column\n     * @param  bool  $autoIncrement\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedBigInteger($column, $autoIncrement = false)\n    {\n        return $this->bigInteger($column, $autoIncrement, true);\n    }\n\n    /**\n     * Create a new float column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $total\n     * @param  int  $places\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function float($column, $total = 8, $places = 2)\n    {\n        return $this->addColumn('float', $column, compact('total', 'places'));\n    }\n\n    /**\n     * Create a new double column on the table.\n     *\n     * @param  string  $column\n     * @param  int|null  $total\n     * @param  int|null  $places\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function double($column, $total = null, $places = null)\n    {\n        return $this->addColumn('double', $column, compact('total', 'places'));\n    }\n\n    /**\n     * Create a new decimal column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $total\n     * @param  int  $places\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function decimal($column, $total = 8, $places = 2)\n    {\n        return $this->addColumn('decimal', $column, compact('total', 'places'));\n    }\n\n    /**\n     * Create a new unsigned decimal column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $total\n     * @param  int  $places\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function unsignedDecimal($column, $total = 8, $places = 2)\n    {\n        return $this->addColumn('decimal', $column, [\n            'total' => $total, 'places' => $places, 'unsigned' => true,\n        ]);\n    }\n\n    /**\n     * Create a new boolean column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function boolean($column)\n    {\n        return $this->addColumn('boolean', $column);\n    }\n\n    /**\n     * Create a new enum column on the table.\n     *\n     * @param  string  $column\n     * @param  array  $allowed\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function enum($column, array $allowed)\n    {\n        return $this->addColumn('enum', $column, compact('allowed'));\n    }\n\n    /**\n     * Create a new set column on the table.\n     *\n     * @param  string  $column\n     * @param  array  $allowed\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function set($column, array $allowed)\n    {\n        return $this->addColumn('set', $column, compact('allowed'));\n    }\n\n    /**\n     * Create a new json column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function json($column)\n    {\n        return $this->addColumn('json', $column);\n    }\n\n    /**\n     * Create a new jsonb column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function jsonb($column)\n    {\n        return $this->addColumn('jsonb', $column);\n    }\n\n    /**\n     * Create a new date column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function date($column)\n    {\n        return $this->addColumn('date', $column);\n    }\n\n    /**\n     * Create a new date-time column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function dateTime($column, $precision = 0)\n    {\n        return $this->addColumn('dateTime', $column, compact('precision'));\n    }\n\n    /**\n     * Create a new date-time column (with time zone) on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function dateTimeTz($column, $precision = 0)\n    {\n        return $this->addColumn('dateTimeTz', $column, compact('precision'));\n    }\n\n    /**\n     * Create a new time column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function time($column, $precision = 0)\n    {\n        return $this->addColumn('time', $column, compact('precision'));\n    }\n\n    /**\n     * Create a new time column (with time zone) on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function timeTz($column, $precision = 0)\n    {\n        return $this->addColumn('timeTz', $column, compact('precision'));\n    }\n\n    /**\n     * Create a new timestamp column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function timestamp($column, $precision = 0)\n    {\n        return $this->addColumn('timestamp', $column, compact('precision'));\n    }\n\n    /**\n     * Create a new timestamp (with time zone) column on the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function timestampTz($column, $precision = 0)\n    {\n        return $this->addColumn('timestampTz', $column, compact('precision'));\n    }\n\n    /**\n     * Add nullable creation and update timestamps to the table.\n     *\n     * @param  int  $precision\n     * @return void\n     */\n    public function timestamps($precision = 0)\n    {\n        $this->timestamp('created_at', $precision)->nullable();\n\n        $this->timestamp('updated_at', $precision)->nullable();\n    }\n\n    /**\n     * Add nullable creation and update timestamps to the table.\n     *\n     * Alias for self::timestamps().\n     *\n     * @param  int  $precision\n     * @return void\n     */\n    public function nullableTimestamps($precision = 0)\n    {\n        $this->timestamps($precision);\n    }\n\n    /**\n     * Add creation and update timestampTz columns to the table.\n     *\n     * @param  int  $precision\n     * @return void\n     */\n    public function timestampsTz($precision = 0)\n    {\n        $this->timestampTz('created_at', $precision)->nullable();\n\n        $this->timestampTz('updated_at', $precision)->nullable();\n    }\n\n    /**\n     * Add a \"deleted at\" timestamp for the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function softDeletes($column = 'deleted_at', $precision = 0)\n    {\n        return $this->timestamp($column, $precision)->nullable();\n    }\n\n    /**\n     * Add a \"deleted at\" timestampTz for the table.\n     *\n     * @param  string  $column\n     * @param  int  $precision\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function softDeletesTz($column = 'deleted_at', $precision = 0)\n    {\n        return $this->timestampTz($column, $precision)->nullable();\n    }\n\n    /**\n     * Create a new year column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function year($column)\n    {\n        return $this->addColumn('year', $column);\n    }\n\n    /**\n     * Create a new binary column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function binary($column)\n    {\n        return $this->addColumn('binary', $column);\n    }\n\n    /**\n     * Create a new uuid column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function uuid($column)\n    {\n        return $this->addColumn('uuid', $column);\n    }\n\n    /**\n     * Create a new IP address column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function ipAddress($column)\n    {\n        return $this->addColumn('ipAddress', $column);\n    }\n\n    /**\n     * Create a new MAC address column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function macAddress($column)\n    {\n        return $this->addColumn('macAddress', $column);\n    }\n\n    /**\n     * Create a new geometry column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function geometry($column)\n    {\n        return $this->addColumn('geometry', $column);\n    }\n\n    /**\n     * Create a new point column on the table.\n     *\n     * @param  string  $column\n     * @param  int|null  $srid\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function point($column, $srid = null)\n    {\n        return $this->addColumn('point', $column, compact('srid'));\n    }\n\n    /**\n     * Create a new linestring column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function lineString($column)\n    {\n        return $this->addColumn('linestring', $column);\n    }\n\n    /**\n     * Create a new polygon column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function polygon($column)\n    {\n        return $this->addColumn('polygon', $column);\n    }\n\n    /**\n     * Create a new geometrycollection column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function geometryCollection($column)\n    {\n        return $this->addColumn('geometrycollection', $column);\n    }\n\n    /**\n     * Create a new multipoint column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function multiPoint($column)\n    {\n        return $this->addColumn('multipoint', $column);\n    }\n\n    /**\n     * Create a new multilinestring column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function multiLineString($column)\n    {\n        return $this->addColumn('multilinestring', $column);\n    }\n\n    /**\n     * Create a new multipolygon column on the table.\n     *\n     * @param  string  $column\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function multiPolygon($column)\n    {\n        return $this->addColumn('multipolygon', $column);\n    }\n\n    /**\n     * Create a new generated, computed column on the table.\n     *\n     * @param  string  $column\n     * @param  string  $expression\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function computed($column, $expression)\n    {\n        return $this->addColumn('computed', $column, compact('expression'));\n    }\n\n    /**\n     * Add the proper columns for a polymorphic table.\n     *\n     * @param  string  $name\n     * @param  string|null  $indexName\n     * @return void\n     */\n    public function morphs($name, $indexName = null)\n    {\n        $this->string(\"{$name}_type\");\n\n        $this->unsignedBigInteger(\"{$name}_id\");\n\n        $this->index([\"{$name}_type\", \"{$name}_id\"], $indexName);\n    }\n\n    /**\n     * Add nullable columns for a polymorphic table.\n     *\n     * @param  string  $name\n     * @param  string|null  $indexName\n     * @return void\n     */\n    public function nullableMorphs($name, $indexName = null)\n    {\n        $this->string(\"{$name}_type\")->nullable();\n\n        $this->unsignedBigInteger(\"{$name}_id\")->nullable();\n\n        $this->index([\"{$name}_type\", \"{$name}_id\"], $indexName);\n    }\n\n    /**\n     * Adds the `remember_token` column to the table.\n     *\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function rememberToken()\n    {\n        return $this->string('remember_token', 100)->nullable();\n    }\n\n    /**\n     * Add a new index command to the blueprint.\n     *\n     * @param  string  $type\n     * @param  string|array  $columns\n     * @param  string  $index\n     * @param  string|null  $algorithm\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    protected function indexCommand($type, $columns, $index, $algorithm = null)\n    {\n        $columns = (array) $columns;\n\n        // If no name was specified for this index, we will create one using a basic\n        // convention of the table name, followed by the columns, followed by an\n        // index type, such as primary or index, which makes the index unique.\n        $index = $index ?: $this->createIndexName($type, $columns);\n\n        return $this->addCommand(\n            $type, compact('index', 'columns', 'algorithm')\n        );\n    }\n\n    /**\n     * Create a new drop index command on the blueprint.\n     *\n     * @param  string  $command\n     * @param  string  $type\n     * @param  string|array  $index\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    protected function dropIndexCommand($command, $type, $index)\n    {\n        $columns = [];\n\n        // If the given \"index\" is actually an array of columns, the developer means\n        // to drop an index merely by specifying the columns involved without the\n        // conventional name, so we will build the index name from the columns.\n        if (is_array($index)) {\n            $index = $this->createIndexName($type, $columns = $index);\n        }\n\n        return $this->indexCommand($command, $columns, $index);\n    }\n\n    /**\n     * Create a default index name for the table.\n     *\n     * @param  string  $type\n     * @param  array  $columns\n     * @return string\n     */\n    protected function createIndexName($type, array $columns)\n    {\n        $index = strtolower($this->prefix.$this->table.'_'.implode('_', $columns).'_'.$type);\n\n        return str_replace(['-', '.'], '_', $index);\n    }\n\n    /**\n     * Add a new column to the blueprint.\n     *\n     * @param  string  $type\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition\n     */\n    public function addColumn($type, $name, array $parameters = [])\n    {\n        $this->columns[] = $column = new ColumnDefinition(\n            array_merge(compact('type', 'name'), $parameters)\n        );\n\n        return $column;\n    }\n\n    /**\n     * Remove a column from the schema blueprint.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function removeColumn($name)\n    {\n        $this->columns = array_values(array_filter($this->columns, function ($c) use ($name) {\n            return $c['name'] != $name;\n        }));\n\n        return $this;\n    }\n\n    /**\n     * Add a new command to the blueprint.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    protected function addCommand($name, array $parameters = [])\n    {\n        $this->commands[] = $command = $this->createCommand($name, $parameters);\n\n        return $command;\n    }\n\n    /**\n     * Create a new Fluent command.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return \\Illuminate\\Support\\Fluent\n     */\n    protected function createCommand($name, array $parameters = [])\n    {\n        return new Fluent(array_merge(compact('name'), $parameters));\n    }\n\n    /**\n     * Get the table the blueprint describes.\n     *\n     * @return string\n     */\n    public function getTable()\n    {\n        return $this->table;\n    }\n\n    /**\n     * Get the columns on the blueprint.\n     *\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition[]\n     */\n    public function getColumns()\n    {\n        return $this->columns;\n    }\n\n    /**\n     * Get the commands on the blueprint.\n     *\n     * @return \\Illuminate\\Support\\Fluent[]\n     */\n    public function getCommands()\n    {\n        return $this->commands;\n    }\n\n    /**\n     * Get the columns on the blueprint that should be added.\n     *\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition[]\n     */\n    public function getAddedColumns()\n    {\n        return array_filter($this->columns, function ($column) {\n            return ! $column->change;\n        });\n    }\n\n    /**\n     * Get the columns on the blueprint that should be changed.\n     *\n     * @return \\Illuminate\\Database\\Schema\\ColumnDefinition[]\n     */\n    public function getChangedColumns()\n    {\n        return array_filter($this->columns, function ($column) {\n            return (bool) $column->change;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nuse Closure;\nuse LogicException;\nuse RuntimeException;\nuse Doctrine\\DBAL\\Types\\Type;\nuse Illuminate\\Database\\Connection;\n\nclass Builder\n{\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    protected $connection;\n\n    /**\n     * The schema grammar instance.\n     *\n     * @var \\Illuminate\\Database\\Schema\\Grammars\\Grammar\n     */\n    protected $grammar;\n\n    /**\n     * The Blueprint resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected $resolver;\n\n    /**\n     * The default string length for migrations.\n     *\n     * @var int\n     */\n    public static $defaultStringLength = 255;\n\n    /**\n     * Create a new database Schema manager.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return void\n     */\n    public function __construct(Connection $connection)\n    {\n        $this->connection = $connection;\n        $this->grammar = $connection->getSchemaGrammar();\n    }\n\n    /**\n     * Set the default string length for migrations.\n     *\n     * @param  int  $length\n     * @return void\n     */\n    public static function defaultStringLength($length)\n    {\n        static::$defaultStringLength = $length;\n    }\n\n    /**\n     * Determine if the given table exists.\n     *\n     * @param  string  $table\n     * @return bool\n     */\n    public function hasTable($table)\n    {\n        $table = $this->connection->getTablePrefix().$table;\n\n        return count($this->connection->selectFromWriteConnection(\n            $this->grammar->compileTableExists(), [$table]\n        )) > 0;\n    }\n\n    /**\n     * Determine if the given table has a given column.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return bool\n     */\n    public function hasColumn($table, $column)\n    {\n        return in_array(\n            strtolower($column), array_map('strtolower', $this->getColumnListing($table))\n        );\n    }\n\n    /**\n     * Determine if the given table has given columns.\n     *\n     * @param  string  $table\n     * @param  array   $columns\n     * @return bool\n     */\n    public function hasColumns($table, array $columns)\n    {\n        $tableColumns = array_map('strtolower', $this->getColumnListing($table));\n\n        foreach ($columns as $column) {\n            if (! in_array(strtolower($column), $tableColumns)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the data type for the given column name.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return string\n     */\n    public function getColumnType($table, $column)\n    {\n        $table = $this->connection->getTablePrefix().$table;\n\n        return $this->connection->getDoctrineColumn($table, $column)->getType()->getName();\n    }\n\n    /**\n     * Get the column listing for a given table.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    public function getColumnListing($table)\n    {\n        $results = $this->connection->selectFromWriteConnection($this->grammar->compileColumnListing(\n            $this->connection->getTablePrefix().$table\n        ));\n\n        return $this->connection->getPostProcessor()->processColumnListing($results);\n    }\n\n    /**\n     * Modify a table on the schema.\n     *\n     * @param  string    $table\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function table($table, Closure $callback)\n    {\n        $this->build($this->createBlueprint($table, $callback));\n    }\n\n    /**\n     * Create a new table on the schema.\n     *\n     * @param  string    $table\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function create($table, Closure $callback)\n    {\n        $this->build(tap($this->createBlueprint($table), function ($blueprint) use ($callback) {\n            $blueprint->create();\n\n            $callback($blueprint);\n        }));\n    }\n\n    /**\n     * Drop a table from the schema.\n     *\n     * @param  string  $table\n     * @return void\n     */\n    public function drop($table)\n    {\n        $this->build(tap($this->createBlueprint($table), function ($blueprint) {\n            $blueprint->drop();\n        }));\n    }\n\n    /**\n     * Drop a table from the schema if it exists.\n     *\n     * @param  string  $table\n     * @return void\n     */\n    public function dropIfExists($table)\n    {\n        $this->build(tap($this->createBlueprint($table), function ($blueprint) {\n            $blueprint->dropIfExists();\n        }));\n    }\n\n    /**\n     * Drop all tables from the database.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function dropAllTables()\n    {\n        throw new LogicException('This database driver does not support dropping all tables.');\n    }\n\n    /**\n     * Drop all views from the database.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function dropAllViews()\n    {\n        throw new LogicException('This database driver does not support dropping all views.');\n    }\n\n    /**\n     * Drop all types from the database.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function dropAllTypes()\n    {\n        throw new LogicException('This database driver does not support dropping all types.');\n    }\n\n    /**\n     * Rename a table on the schema.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return void\n     */\n    public function rename($from, $to)\n    {\n        $this->build(tap($this->createBlueprint($from), function ($blueprint) use ($to) {\n            $blueprint->rename($to);\n        }));\n    }\n\n    /**\n     * Enable foreign key constraints.\n     *\n     * @return bool\n     */\n    public function enableForeignKeyConstraints()\n    {\n        return $this->connection->statement(\n            $this->grammar->compileEnableForeignKeyConstraints()\n        );\n    }\n\n    /**\n     * Disable foreign key constraints.\n     *\n     * @return bool\n     */\n    public function disableForeignKeyConstraints()\n    {\n        return $this->connection->statement(\n            $this->grammar->compileDisableForeignKeyConstraints()\n        );\n    }\n\n    /**\n     * Execute the blueprint to build / modify the table.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @return void\n     */\n    protected function build(Blueprint $blueprint)\n    {\n        $blueprint->build($this->connection, $this->grammar);\n    }\n\n    /**\n     * Create a new command set with a Closure.\n     *\n     * @param  string  $table\n     * @param  \\Closure|null  $callback\n     * @return \\Illuminate\\Database\\Schema\\Blueprint\n     */\n    protected function createBlueprint($table, Closure $callback = null)\n    {\n        $prefix = $this->connection->getConfig('prefix_indexes')\n                    ? $this->connection->getConfig('prefix')\n                    : '';\n\n        if (isset($this->resolver)) {\n            return call_user_func($this->resolver, $table, $callback, $prefix);\n        }\n\n        return new Blueprint($table, $callback, $prefix);\n    }\n\n    /**\n     * Register a custom Doctrine mapping type.\n     *\n     * @param  string  $class\n     * @param  string  $name\n     * @param  string  $type\n     * @return void\n     *\n     * @throws \\Doctrine\\DBAL\\DBALException\n     */\n    public function registerCustomDoctrineType($class, $name, $type)\n    {\n        if (! $this->connection->isDoctrineAvailable()) {\n            throw new RuntimeException(\n                'Registering a custom Doctrine type requires Doctrine DBAL (doctrine/dbal).'\n            );\n        }\n\n        if (! Type::hasType($name)) {\n            Type::addType($name, $class);\n\n            $this->connection\n                ->getDoctrineSchemaManager()\n                ->getDatabasePlatform()\n                ->registerDoctrineTypeMapping($type, $name);\n        }\n    }\n\n    /**\n     * Get the database connection instance.\n     *\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Set the database connection instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return $this\n     */\n    public function setConnection(Connection $connection)\n    {\n        $this->connection = $connection;\n\n        return $this;\n    }\n\n    /**\n     * Set the Schema Blueprint resolver callback.\n     *\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public function blueprintResolver(Closure $resolver)\n    {\n        $this->resolver = $resolver;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/ColumnDefinition.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Database\\Query\\Expression;\n\n/**\n * @method ColumnDefinition after(string $column) Place the column \"after\" another column (MySQL)\n * @method ColumnDefinition always() Used as a modifier for generatedAs() (PostgreSQL)\n * @method ColumnDefinition autoIncrement() Set INTEGER columns as auto-increment (primary key)\n * @method ColumnDefinition change() Change the column\n * @method ColumnDefinition charset(string $charset) Specify a character set for the column (MySQL)\n * @method ColumnDefinition collation(string $collation) Specify a collation for the column (MySQL/SQL Server)\n * @method ColumnDefinition comment(string $comment) Add a comment to the column (MySQL)\n * @method ColumnDefinition default(mixed $value) Specify a \"default\" value for the column\n * @method ColumnDefinition first() Place the column \"first\" in the table (MySQL)\n * @method ColumnDefinition generatedAs(string|Expression $expression = null) Create a SQL compliant identity column (PostgreSQL)\n * @method ColumnDefinition index(string $indexName = null) Add an index\n * @method ColumnDefinition nullable(bool $value = true) Allow NULL values to be inserted into the column\n * @method ColumnDefinition primary() Add a primary index\n * @method ColumnDefinition spatialIndex() Add a spatial index\n * @method ColumnDefinition storedAs(string $expression) Create a stored generated column (MySQL)\n * @method ColumnDefinition unique() Add a unique index\n * @method ColumnDefinition unsigned() Set the INTEGER column as UNSIGNED (MySQL)\n * @method ColumnDefinition useCurrent() Set the TIMESTAMP column to use CURRENT_TIMESTAMP as default value\n * @method ColumnDefinition virtualAs(string $expression) Create a virtual generated column (MySQL)\n * @method ColumnDefinition persisted() Mark the computed generated column as persistent (SQL Server)\n */\nclass ColumnDefinition extends Fluent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/ForeignKeyDefinition.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nuse Illuminate\\Support\\Fluent;\n\n/**\n * @method ForeignKeyDefinition references(string|array $columns) Specify the referenced column(s)\n * @method ForeignKeyDefinition on(string $table) Specify the referenced table\n * @method ForeignKeyDefinition onDelete(string $action) Add an ON DELETE action\n * @method ForeignKeyDefinition onUpdate(string $action) Add an ON UPDATE action\n * @method ForeignKeyDefinition deferrable(bool $value = true) Set the foreign key as deferrable (PostgreSQL)\n * @method ForeignKeyDefinition initiallyImmediate(bool $value = true) Set the default time to check the constraint (PostgreSQL)\n */\nclass ForeignKeyDefinition extends Fluent\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/ChangeColumn.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse RuntimeException;\nuse Doctrine\\DBAL\\Types\\Type;\nuse Illuminate\\Support\\Fluent;\nuse Doctrine\\DBAL\\Schema\\Table;\nuse Illuminate\\Database\\Connection;\nuse Doctrine\\DBAL\\Schema\\Comparator;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager as SchemaManager;\n\nclass ChangeColumn\n{\n    /**\n     * Compile a change column command into a series of SQL statements.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection $connection\n     * @return array\n     *\n     * @throws \\RuntimeException\n     */\n    public static function compile($grammar, Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        if (! $connection->isDoctrineAvailable()) {\n            throw new RuntimeException(sprintf(\n                'Changing columns for table \"%s\" requires Doctrine DBAL; install \"doctrine/dbal\".',\n                $blueprint->getTable()\n            ));\n        }\n\n        $tableDiff = static::getChangedDiff(\n            $grammar, $blueprint, $schema = $connection->getDoctrineSchemaManager()\n        );\n\n        if ($tableDiff !== false) {\n            return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff);\n        }\n\n        return [];\n    }\n\n    /**\n     * Get the Doctrine table difference for the given changes.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Doctrine\\DBAL\\Schema\\AbstractSchemaManager  $schema\n     * @return \\Doctrine\\DBAL\\Schema\\TableDiff|bool\n     */\n    protected static function getChangedDiff($grammar, Blueprint $blueprint, SchemaManager $schema)\n    {\n        $current = $schema->listTableDetails($grammar->getTablePrefix().$blueprint->getTable());\n\n        return (new Comparator)->diffTable(\n            $current, static::getTableWithColumnChanges($blueprint, $current)\n        );\n    }\n\n    /**\n     * Get a copy of the given Doctrine table after making the column changes.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Doctrine\\DBAL\\Schema\\Table  $table\n     * @return \\Doctrine\\DBAL\\Schema\\Table\n     */\n    protected static function getTableWithColumnChanges(Blueprint $blueprint, Table $table)\n    {\n        $table = clone $table;\n\n        foreach ($blueprint->getChangedColumns() as $fluent) {\n            $column = static::getDoctrineColumn($table, $fluent);\n\n            // Here we will spin through each fluent column definition and map it to the proper\n            // Doctrine column definitions - which is necessary because Laravel and Doctrine\n            // use some different terminology for various column attributes on the tables.\n            foreach ($fluent->getAttributes() as $key => $value) {\n                if (! is_null($option = static::mapFluentOptionToDoctrine($key))) {\n                    if (method_exists($column, $method = 'set'.ucfirst($option))) {\n                        $column->{$method}(static::mapFluentValueToDoctrine($option, $value));\n                        continue;\n                    }\n\n                    $column->setCustomSchemaOption($option, static::mapFluentValueToDoctrine($option, $value));\n                }\n            }\n        }\n\n        return $table;\n    }\n\n    /**\n     * Get the Doctrine column instance for a column change.\n     *\n     * @param  \\Doctrine\\DBAL\\Schema\\Table  $table\n     * @param  \\Illuminate\\Support\\Fluent  $fluent\n     * @return \\Doctrine\\DBAL\\Schema\\Column\n     */\n    protected static function getDoctrineColumn(Table $table, Fluent $fluent)\n    {\n        return $table->changeColumn(\n            $fluent['name'], static::getDoctrineColumnChangeOptions($fluent)\n        )->getColumn($fluent['name']);\n    }\n\n    /**\n     * Get the Doctrine column change options.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $fluent\n     * @return array\n     */\n    protected static function getDoctrineColumnChangeOptions(Fluent $fluent)\n    {\n        $options = ['type' => static::getDoctrineColumnType($fluent['type'])];\n\n        if (in_array($fluent['type'], ['text', 'mediumText', 'longText'])) {\n            $options['length'] = static::calculateDoctrineTextLength($fluent['type']);\n        }\n\n        if (in_array($fluent['type'], ['json', 'binary'])) {\n            $options['customSchemaOptions'] = [\n                'collation' => '',\n            ];\n        }\n\n        return $options;\n    }\n\n    /**\n     * Get the doctrine column type.\n     *\n     * @param  string  $type\n     * @return \\Doctrine\\DBAL\\Types\\Type\n     */\n    protected static function getDoctrineColumnType($type)\n    {\n        $type = strtolower($type);\n\n        switch ($type) {\n            case 'biginteger':\n                $type = 'bigint';\n                break;\n            case 'smallinteger':\n                $type = 'smallint';\n                break;\n            case 'mediumtext':\n            case 'longtext':\n                $type = 'text';\n                break;\n            case 'binary':\n                $type = 'blob';\n                break;\n        }\n\n        return Type::getType($type);\n    }\n\n    /**\n     * Calculate the proper column length to force the Doctrine text type.\n     *\n     * @param  string  $type\n     * @return int\n     */\n    protected static function calculateDoctrineTextLength($type)\n    {\n        switch ($type) {\n            case 'mediumText':\n                return 65535 + 1;\n            case 'longText':\n                return 16777215 + 1;\n            default:\n                return 255 + 1;\n        }\n    }\n\n    /**\n     * Get the matching Doctrine option for a given Fluent attribute name.\n     *\n     * @param  string  $attribute\n     * @return string|null\n     */\n    protected static function mapFluentOptionToDoctrine($attribute)\n    {\n        switch ($attribute) {\n            case 'type':\n            case 'name':\n                return;\n            case 'nullable':\n                return 'notnull';\n            case 'total':\n                return 'precision';\n            case 'places':\n                return 'scale';\n            default:\n                return $attribute;\n        }\n    }\n\n    /**\n     * Get the matching Doctrine value for a given Fluent attribute.\n     *\n     * @param  string  $option\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected static function mapFluentValueToDoctrine($option, $value)\n    {\n        return $option === 'notnull' ? ! $value : $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/Grammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Fluent;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Query\\Expression;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Grammar as BaseGrammar;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager as SchemaManager;\n\nabstract class Grammar extends BaseGrammar\n{\n    /**\n     * If this Grammar supports schema changes wrapped in a transaction.\n     *\n     * @var bool\n     */\n    protected $transactions = false;\n\n    /**\n     * The commands to be executed outside of create or alter command.\n     *\n     * @var array\n     */\n    protected $fluentCommands = [];\n\n    /**\n     * Compile a rename column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return array\n     */\n    public function compileRenameColumn(Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        return RenameColumn::compile($this, $blueprint, $command, $connection);\n    }\n\n    /**\n     * Compile a change column command into a series of SQL statements.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection $connection\n     * @return array\n     *\n     * @throws \\RuntimeException\n     */\n    public function compileChange(Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        return ChangeColumn::compile($this, $blueprint, $command, $connection);\n    }\n\n    /**\n     * Compile a foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileForeign(Blueprint $blueprint, Fluent $command)\n    {\n        // We need to prepare several of the elements of the foreign key definition\n        // before we can create the SQL, such as wrapping the tables and convert\n        // an array of columns to comma-delimited strings for the SQL queries.\n        $sql = sprintf('alter table %s add constraint %s ',\n            $this->wrapTable($blueprint),\n            $this->wrap($command->index)\n        );\n\n        // Once we have the initial portion of the SQL statement we will add on the\n        // key name, table name, and referenced columns. These will complete the\n        // main portion of the SQL statement and this SQL will almost be done.\n        $sql .= sprintf('foreign key (%s) references %s (%s)',\n            $this->columnize($command->columns),\n            $this->wrapTable($command->on),\n            $this->columnize((array) $command->references)\n        );\n\n        // Once we have the basic foreign key creation statement constructed we can\n        // build out the syntax for what should happen on an update or delete of\n        // the affected columns, which will get something like \"cascade\", etc.\n        if (! is_null($command->onDelete)) {\n            $sql .= \" on delete {$command->onDelete}\";\n        }\n\n        if (! is_null($command->onUpdate)) {\n            $sql .= \" on update {$command->onUpdate}\";\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile the blueprint's column definitions.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint $blueprint\n     * @return array\n     */\n    protected function getColumns(Blueprint $blueprint)\n    {\n        $columns = [];\n\n        foreach ($blueprint->getAddedColumns() as $column) {\n            // Each of the column types have their own compiler functions which are tasked\n            // with turning the column definition into its SQL format for this platform\n            // used by the connection. The column's modifiers are compiled and added.\n            $sql = $this->wrap($column).' '.$this->getType($column);\n\n            $columns[] = $this->addModifiers($sql, $blueprint, $column);\n        }\n\n        return $columns;\n    }\n\n    /**\n     * Get the SQL for the column data type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function getType(Fluent $column)\n    {\n        return $this->{'type'.ucfirst($column->type)}($column);\n    }\n\n    /**\n     * Create the column definition for a generated, computed column type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    protected function typeComputed(Fluent $column)\n    {\n        throw new RuntimeException('This database driver does not support the computed type.');\n    }\n\n    /**\n     * Add the column modifiers to the definition.\n     *\n     * @param  string  $sql\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function addModifiers($sql, Blueprint $blueprint, Fluent $column)\n    {\n        foreach ($this->modifiers as $modifier) {\n            if (method_exists($this, $method = \"modify{$modifier}\")) {\n                $sql .= $this->{$method}($blueprint, $column);\n            }\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Get the primary key command if it exists on the blueprint.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  string  $name\n     * @return \\Illuminate\\Support\\Fluent|null\n     */\n    protected function getCommandByName(Blueprint $blueprint, $name)\n    {\n        $commands = $this->getCommandsByName($blueprint, $name);\n\n        if (count($commands) > 0) {\n            return reset($commands);\n        }\n    }\n\n    /**\n     * Get all of the commands with a given name.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  string  $name\n     * @return array\n     */\n    protected function getCommandsByName(Blueprint $blueprint, $name)\n    {\n        return array_filter($blueprint->getCommands(), function ($value) use ($name) {\n            return $value->name == $name;\n        });\n    }\n\n    /**\n     * Add a prefix to an array of values.\n     *\n     * @param  string  $prefix\n     * @param  array   $values\n     * @return array\n     */\n    public function prefixArray($prefix, array $values)\n    {\n        return array_map(function ($value) use ($prefix) {\n            return $prefix.' '.$value;\n        }, $values);\n    }\n\n    /**\n     * Wrap a table in keyword identifiers.\n     *\n     * @param  mixed   $table\n     * @return string\n     */\n    public function wrapTable($table)\n    {\n        return parent::wrapTable(\n            $table instanceof Blueprint ? $table->getTable() : $table\n        );\n    }\n\n    /**\n     * Wrap a value in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $value\n     * @param  bool    $prefixAlias\n     * @return string\n     */\n    public function wrap($value, $prefixAlias = false)\n    {\n        return parent::wrap(\n            $value instanceof Fluent ? $value->name : $value, $prefixAlias\n        );\n    }\n\n    /**\n     * Format a value so that it can be used in \"default\" clauses.\n     *\n     * @param  mixed   $value\n     * @return string\n     */\n    protected function getDefaultValue($value)\n    {\n        if ($value instanceof Expression) {\n            return $value;\n        }\n\n        return is_bool($value)\n                    ? \"'\".(int) $value.\"'\"\n                    : \"'\".(string) $value.\"'\";\n    }\n\n    /**\n     * Create an empty Doctrine DBAL TableDiff from the Blueprint.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Doctrine\\DBAL\\Schema\\AbstractSchemaManager  $schema\n     * @return \\Doctrine\\DBAL\\Schema\\TableDiff\n     */\n    public function getDoctrineTableDiff(Blueprint $blueprint, SchemaManager $schema)\n    {\n        $table = $this->getTablePrefix().$blueprint->getTable();\n\n        return tap(new TableDiff($table), function ($tableDiff) use ($schema, $table) {\n            $tableDiff->fromTable = $schema->listTableDetails($table);\n        });\n    }\n\n    /**\n     * Get the fluent commands for the grammar.\n     *\n     * @return array\n     */\n    public function getFluentCommands()\n    {\n        return $this->fluentCommands;\n    }\n\n    /**\n     * Check if this Grammar supports schema changes wrapped in a transaction.\n     *\n     * @return bool\n     */\n    public function supportsSchemaTransactions()\n    {\n        return $this->transactions;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/MySqlGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Schema\\Blueprint;\n\nclass MySqlGrammar extends Grammar\n{\n    /**\n     * The possible column modifiers.\n     *\n     * @var array\n     */\n    protected $modifiers = [\n        'Unsigned', 'VirtualAs', 'StoredAs', 'Charset', 'Collate', 'Nullable',\n        'Default', 'Increment', 'Comment', 'After', 'First', 'Srid',\n    ];\n\n    /**\n     * The possible column serials.\n     *\n     * @var array\n     */\n    protected $serials = ['bigInteger', 'integer', 'mediumInteger', 'smallInteger', 'tinyInteger'];\n\n    /**\n     * Compile the query to determine the list of tables.\n     *\n     * @return string\n     */\n    public function compileTableExists()\n    {\n        return \"select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'\";\n    }\n\n    /**\n     * Compile the query to determine the list of columns.\n     *\n     * @return string\n     */\n    public function compileColumnListing()\n    {\n        return 'select column_name as `column_name` from information_schema.columns where table_schema = ? and table_name = ?';\n    }\n\n    /**\n     * Compile a create table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return string\n     */\n    public function compileCreate(Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        $sql = $this->compileCreateTable(\n            $blueprint, $command, $connection\n        );\n\n        // Once we have the primary SQL, we can add the encoding option to the SQL for\n        // the table.  Then, we can check if a storage engine has been supplied for\n        // the table. If so, we will add the engine declaration to the SQL query.\n        $sql = $this->compileCreateEncoding(\n            $sql, $connection, $blueprint\n        );\n\n        // Finally, we will append the engine configuration onto this SQL statement as\n        // the final thing we do before returning this finished SQL. Once this gets\n        // added the query will be ready to execute against the real connections.\n        return $this->compileCreateEngine(\n            $sql, $connection, $blueprint\n        );\n    }\n\n    /**\n     * Create the main create table clause.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return string\n     */\n    protected function compileCreateTable($blueprint, $command, $connection)\n    {\n        return sprintf('%s table %s (%s)',\n            $blueprint->temporary ? 'create temporary' : 'create',\n            $this->wrapTable($blueprint),\n            implode(', ', $this->getColumns($blueprint))\n        );\n    }\n\n    /**\n     * Append the character set specifications to a command.\n     *\n     * @param  string  $sql\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @return string\n     */\n    protected function compileCreateEncoding($sql, Connection $connection, Blueprint $blueprint)\n    {\n        // First we will set the character set if one has been set on either the create\n        // blueprint itself or on the root configuration for the connection that the\n        // table is being created on. We will add these to the create table query.\n        if (isset($blueprint->charset)) {\n            $sql .= ' default character set '.$blueprint->charset;\n        } elseif (! is_null($charset = $connection->getConfig('charset'))) {\n            $sql .= ' default character set '.$charset;\n        }\n\n        // Next we will add the collation to the create table statement if one has been\n        // added to either this create table blueprint or the configuration for this\n        // connection that the query is targeting. We'll add it to this SQL query.\n        if (isset($blueprint->collation)) {\n            $sql .= \" collate '{$blueprint->collation}'\";\n        } elseif (! is_null($collation = $connection->getConfig('collation'))) {\n            $sql .= \" collate '{$collation}'\";\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Append the engine specifications to a command.\n     *\n     * @param  string  $sql\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @return string\n     */\n    protected function compileCreateEngine($sql, Connection $connection, Blueprint $blueprint)\n    {\n        if (isset($blueprint->engine)) {\n            return $sql.' engine = '.$blueprint->engine;\n        } elseif (! is_null($engine = $connection->getConfig('engine'))) {\n            return $sql.' engine = '.$engine;\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile an add column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileAdd(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->prefixArray('add', $this->getColumns($blueprint));\n\n        return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns);\n    }\n\n    /**\n     * Compile a primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compilePrimary(Blueprint $blueprint, Fluent $command)\n    {\n        $command->name(null);\n\n        return $this->compileKey($blueprint, $command, 'primary key');\n    }\n\n    /**\n     * Compile a unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileUnique(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileKey($blueprint, $command, 'unique');\n    }\n\n    /**\n     * Compile a plain index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileKey($blueprint, $command, 'index');\n    }\n\n    /**\n     * Compile a spatial index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileKey($blueprint, $command, 'spatial index');\n    }\n\n    /**\n     * Compile an index creation command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  string  $type\n     * @return string\n     */\n    protected function compileKey(Blueprint $blueprint, Fluent $command, $type)\n    {\n        return sprintf('alter table %s add %s %s%s(%s)',\n            $this->wrapTable($blueprint),\n            $type,\n            $this->wrap($command->index),\n            $command->algorithm ? ' using '.$command->algorithm : '',\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a drop table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDrop(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile a drop table (if exists) command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIfExists(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table if exists '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile a drop column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropColumn(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->prefixArray('drop', $this->wrapArray($command->columns));\n\n        return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns);\n    }\n\n    /**\n     * Compile a drop primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropPrimary(Blueprint $blueprint, Fluent $command)\n    {\n        return 'alter table '.$this->wrapTable($blueprint).' drop primary key';\n    }\n\n    /**\n     * Compile a drop unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropUnique(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop index {$index}\";\n    }\n\n    /**\n     * Compile a drop index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIndex(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop index {$index}\";\n    }\n\n    /**\n     * Compile a drop spatial index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileDropIndex($blueprint, $command);\n    }\n\n    /**\n     * Compile a drop foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropForeign(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop foreign key {$index}\";\n    }\n\n    /**\n     * Compile a rename table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileRename(Blueprint $blueprint, Fluent $command)\n    {\n        $from = $this->wrapTable($blueprint);\n\n        return \"rename table {$from} to \".$this->wrapTable($command->to);\n    }\n\n    /**\n     * Compile a rename index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint $blueprint\n     * @param  \\Illuminate\\Support\\Fluent $command\n     * @return string\n     */\n    public function compileRenameIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter table %s rename index %s to %s',\n            $this->wrapTable($blueprint),\n            $this->wrap($command->from),\n            $this->wrap($command->to)\n        );\n    }\n\n    /**\n     * Compile the SQL needed to drop all tables.\n     *\n     * @param  array  $tables\n     * @return string\n     */\n    public function compileDropAllTables($tables)\n    {\n        return 'drop table '.implode(',', $this->wrapArray($tables));\n    }\n\n    /**\n     * Compile the SQL needed to drop all views.\n     *\n     * @param  array  $views\n     * @return string\n     */\n    public function compileDropAllViews($views)\n    {\n        return 'drop view '.implode(',', $this->wrapArray($views));\n    }\n\n    /**\n     * Compile the SQL needed to retrieve all table names.\n     *\n     * @return string\n     */\n    public function compileGetAllTables()\n    {\n        return 'SHOW FULL TABLES WHERE table_type = \\'BASE TABLE\\'';\n    }\n\n    /**\n     * Compile the SQL needed to retrieve all view names.\n     *\n     * @return string\n     */\n    public function compileGetAllViews()\n    {\n        return 'SHOW FULL TABLES WHERE table_type = \\'VIEW\\'';\n    }\n\n    /**\n     * Compile the command to enable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileEnableForeignKeyConstraints()\n    {\n        return 'SET FOREIGN_KEY_CHECKS=1;';\n    }\n\n    /**\n     * Compile the command to disable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileDisableForeignKeyConstraints()\n    {\n        return 'SET FOREIGN_KEY_CHECKS=0;';\n    }\n\n    /**\n     * Create the column definition for a char type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeChar(Fluent $column)\n    {\n        return \"char({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a string type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeString(Fluent $column)\n    {\n        return \"varchar({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a medium text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumText(Fluent $column)\n    {\n        return 'mediumtext';\n    }\n\n    /**\n     * Create the column definition for a long text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeLongText(Fluent $column)\n    {\n        return 'longtext';\n    }\n\n    /**\n     * Create the column definition for a big integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBigInteger(Fluent $column)\n    {\n        return 'bigint';\n    }\n\n    /**\n     * Create the column definition for an integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeInteger(Fluent $column)\n    {\n        return 'int';\n    }\n\n    /**\n     * Create the column definition for a medium integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumInteger(Fluent $column)\n    {\n        return 'mediumint';\n    }\n\n    /**\n     * Create the column definition for a tiny integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTinyInteger(Fluent $column)\n    {\n        return 'tinyint';\n    }\n\n    /**\n     * Create the column definition for a small integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeSmallInteger(Fluent $column)\n    {\n        return 'smallint';\n    }\n\n    /**\n     * Create the column definition for a float type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeFloat(Fluent $column)\n    {\n        return $this->typeDouble($column);\n    }\n\n    /**\n     * Create the column definition for a double type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDouble(Fluent $column)\n    {\n        if ($column->total && $column->places) {\n            return \"double({$column->total}, {$column->places})\";\n        }\n\n        return 'double';\n    }\n\n    /**\n     * Create the column definition for a decimal type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDecimal(Fluent $column)\n    {\n        return \"decimal({$column->total}, {$column->places})\";\n    }\n\n    /**\n     * Create the column definition for a boolean type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBoolean(Fluent $column)\n    {\n        return 'tinyint(1)';\n    }\n\n    /**\n     * Create the column definition for an enumeration type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeEnum(Fluent $column)\n    {\n        return sprintf('enum(%s)', $this->quoteString($column->allowed));\n    }\n\n    /**\n     * Create the column definition for a set enumeration type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeSet(Fluent $column)\n    {\n        return sprintf('set(%s)', $this->quoteString($column->allowed));\n    }\n\n    /**\n     * Create the column definition for a json type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJson(Fluent $column)\n    {\n        return 'json';\n    }\n\n    /**\n     * Create the column definition for a jsonb type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJsonb(Fluent $column)\n    {\n        return 'json';\n    }\n\n    /**\n     * Create the column definition for a date type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDate(Fluent $column)\n    {\n        return 'date';\n    }\n\n    /**\n     * Create the column definition for a date-time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTime(Fluent $column)\n    {\n        $columnType = $column->precision ? \"datetime($column->precision)\" : 'datetime';\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a date-time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTimeTz(Fluent $column)\n    {\n        return $this->typeDateTime($column);\n    }\n\n    /**\n     * Create the column definition for a time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTime(Fluent $column)\n    {\n        return $column->precision ? \"time($column->precision)\" : 'time';\n    }\n\n    /**\n     * Create the column definition for a time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimeTz(Fluent $column)\n    {\n        return $this->typeTime($column);\n    }\n\n    /**\n     * Create the column definition for a timestamp type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestamp(Fluent $column)\n    {\n        $columnType = $column->precision ? \"timestamp($column->precision)\" : 'timestamp';\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a timestamp (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestampTz(Fluent $column)\n    {\n        return $this->typeTimestamp($column);\n    }\n\n    /**\n     * Create the column definition for a year type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeYear(Fluent $column)\n    {\n        return 'year';\n    }\n\n    /**\n     * Create the column definition for a binary type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBinary(Fluent $column)\n    {\n        return 'blob';\n    }\n\n    /**\n     * Create the column definition for a uuid type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeUuid(Fluent $column)\n    {\n        return 'char(36)';\n    }\n\n    /**\n     * Create the column definition for an IP address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeIpAddress(Fluent $column)\n    {\n        return 'varchar(45)';\n    }\n\n    /**\n     * Create the column definition for a MAC address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMacAddress(Fluent $column)\n    {\n        return 'varchar(17)';\n    }\n\n    /**\n     * Create the column definition for a spatial Geometry type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometry(Fluent $column)\n    {\n        return 'geometry';\n    }\n\n    /**\n     * Create the column definition for a spatial Point type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePoint(Fluent $column)\n    {\n        return 'point';\n    }\n\n    /**\n     * Create the column definition for a spatial LineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeLineString(Fluent $column)\n    {\n        return 'linestring';\n    }\n\n    /**\n     * Create the column definition for a spatial Polygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePolygon(Fluent $column)\n    {\n        return 'polygon';\n    }\n\n    /**\n     * Create the column definition for a spatial GeometryCollection type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometryCollection(Fluent $column)\n    {\n        return 'geometrycollection';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPoint type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPoint(Fluent $column)\n    {\n        return 'multipoint';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiLineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiLineString(Fluent $column)\n    {\n        return 'multilinestring';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPolygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPolygon(Fluent $column)\n    {\n        return 'multipolygon';\n    }\n\n    /**\n     * Create the column definition for a generated, computed column type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    protected function typeComputed(Fluent $column)\n    {\n        throw new RuntimeException('This database driver requires a type, see the virtualAs / storedAs modifiers.');\n    }\n\n    /**\n     * Get the SQL for a generated virtual column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyVirtualAs(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->virtualAs)) {\n            return \" as ({$column->virtualAs})\";\n        }\n    }\n\n    /**\n     * Get the SQL for a generated stored column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyStoredAs(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->storedAs)) {\n            return \" as ({$column->storedAs}) stored\";\n        }\n    }\n\n    /**\n     * Get the SQL for an unsigned column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyUnsigned(Blueprint $blueprint, Fluent $column)\n    {\n        if ($column->unsigned) {\n            return ' unsigned';\n        }\n    }\n\n    /**\n     * Get the SQL for a character set column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyCharset(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->charset)) {\n            return ' character set '.$column->charset;\n        }\n    }\n\n    /**\n     * Get the SQL for a collation column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyCollate(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->collation)) {\n            return \" collate '{$column->collation}'\";\n        }\n    }\n\n    /**\n     * Get the SQL for a nullable column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyNullable(Blueprint $blueprint, Fluent $column)\n    {\n        if (is_null($column->virtualAs) && is_null($column->storedAs)) {\n            return $column->nullable ? ' null' : ' not null';\n        }\n    }\n\n    /**\n     * Get the SQL for a default column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyDefault(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->default)) {\n            return ' default '.$this->getDefaultValue($column->default);\n        }\n    }\n\n    /**\n     * Get the SQL for an auto-increment column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyIncrement(Blueprint $blueprint, Fluent $column)\n    {\n        if (in_array($column->type, $this->serials) && $column->autoIncrement) {\n            return ' auto_increment primary key';\n        }\n    }\n\n    /**\n     * Get the SQL for a \"first\" column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyFirst(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->first)) {\n            return ' first';\n        }\n    }\n\n    /**\n     * Get the SQL for an \"after\" column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyAfter(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->after)) {\n            return ' after '.$this->wrap($column->after);\n        }\n    }\n\n    /**\n     * Get the SQL for a \"comment\" column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyComment(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->comment)) {\n            return \" comment '\".addslashes($column->comment).\"'\";\n        }\n    }\n\n    /**\n     * Get the SQL for a SRID column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifySrid(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->srid) && is_int($column->srid) && $column->srid > 0) {\n            return ' srid '.$column->srid;\n        }\n    }\n\n    /**\n     * Wrap a single string in keyword identifiers.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function wrapValue($value)\n    {\n        if ($value !== '*') {\n            return '`'.str_replace('`', '``', $value).'`';\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/PostgresGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Database\\Schema\\Blueprint;\n\nclass PostgresGrammar extends Grammar\n{\n    /**\n     * If this Grammar supports schema changes wrapped in a transaction.\n     *\n     * @var bool\n     */\n    protected $transactions = true;\n\n    /**\n     * The possible column modifiers.\n     *\n     * @var array\n     */\n    protected $modifiers = ['Increment', 'Nullable', 'Default'];\n\n    /**\n     * The columns available as serials.\n     *\n     * @var array\n     */\n    protected $serials = ['bigInteger', 'integer', 'mediumInteger', 'smallInteger', 'tinyInteger'];\n\n    /**\n     * The commands to be executed outside of create or alter command.\n     *\n     * @var array\n     */\n    protected $fluentCommands = ['Comment'];\n\n    /**\n     * Compile the query to determine if a table exists.\n     *\n     * @return string\n     */\n    public function compileTableExists()\n    {\n        return \"select * from information_schema.tables where table_schema = ? and table_name = ? and table_type = 'BASE TABLE'\";\n    }\n\n    /**\n     * Compile the query to determine the list of columns.\n     *\n     * @return string\n     */\n    public function compileColumnListing()\n    {\n        return 'select column_name from information_schema.columns where table_schema = ? and table_name = ?';\n    }\n\n    /**\n     * Compile a create table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileCreate(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('%s table %s (%s)',\n            $blueprint->temporary ? 'create temporary' : 'create',\n            $this->wrapTable($blueprint),\n            implode(', ', $this->getColumns($blueprint))\n        );\n    }\n\n    /**\n     * Compile a column addition command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileAdd(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter table %s %s',\n            $this->wrapTable($blueprint),\n            implode(', ', $this->prefixArray('add column', $this->getColumns($blueprint)))\n        );\n    }\n\n    /**\n     * Compile a primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compilePrimary(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->columnize($command->columns);\n\n        return 'alter table '.$this->wrapTable($blueprint).\" add primary key ({$columns})\";\n    }\n\n    /**\n     * Compile a unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileUnique(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter table %s add constraint %s unique (%s)',\n            $this->wrapTable($blueprint),\n            $this->wrap($command->index),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a plain index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create index %s on %s%s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $command->algorithm ? ' using '.$command->algorithm : '',\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a spatial index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        $command->algorithm = 'gist';\n\n        return $this->compileIndex($blueprint, $command);\n    }\n\n    /**\n     * Compile a foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileForeign(Blueprint $blueprint, Fluent $command)\n    {\n        $sql = parent::compileForeign($blueprint, $command);\n\n        if (! is_null($command->deferrable)) {\n            $sql .= $command->deferrable ? ' deferrable' : ' not deferrable';\n        }\n\n        if ($command->deferrable && ! is_null($command->initiallyImmediate)) {\n            $sql .= $command->initiallyImmediate ? ' initially immediate' : ' initially deferred';\n        }\n\n        if (! is_null($command->notValid)) {\n            $sql .= ' not valid';\n        }\n\n        return $sql;\n    }\n\n    /**\n     * Compile a drop table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDrop(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile a drop table (if exists) command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIfExists(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table if exists '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile the SQL needed to drop all tables.\n     *\n     * @param  array  $tables\n     * @return string\n     */\n    public function compileDropAllTables($tables)\n    {\n        return 'drop table \"'.implode('\",\"', $tables).'\" cascade';\n    }\n\n    /**\n     * Compile the SQL needed to drop all views.\n     *\n     * @param  array  $views\n     * @return string\n     */\n    public function compileDropAllViews($views)\n    {\n        return 'drop view \"'.implode('\",\"', $views).'\" cascade';\n    }\n\n    /**\n     * Compile the SQL needed to drop all types.\n     *\n     * @param array $types\n     * @return string\n     */\n    public function compileDropAllTypes($types)\n    {\n        return 'drop type \"'.implode('\",\"', $types).'\" cascade';\n    }\n\n    /**\n     * Compile the SQL needed to retrieve all table names.\n     *\n     * @param  string  $schema\n     * @return string\n     */\n    public function compileGetAllTables($schema)\n    {\n        return \"select tablename from pg_catalog.pg_tables where schemaname = '{$schema}'\";\n    }\n\n    /**\n     * Compile the SQL needed to retrieve all view names.\n     *\n     * @param  string  $schema\n     * @return string\n     */\n    public function compileGetAllViews($schema)\n    {\n        return \"select viewname from pg_catalog.pg_views where schemaname = '{$schema}'\";\n    }\n\n    /**\n     * Compile the SQL needed to retrieve all type names.\n     *\n     * @return string\n     */\n    public function compileGetAllTypes()\n    {\n        return 'select distinct pg_type.typname from pg_type inner join pg_enum on pg_enum.enumtypid = pg_type.oid';\n    }\n\n    /**\n     * Compile a drop column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropColumn(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->prefixArray('drop column', $this->wrapArray($command->columns));\n\n        return 'alter table '.$this->wrapTable($blueprint).' '.implode(', ', $columns);\n    }\n\n    /**\n     * Compile a drop primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropPrimary(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap(\"{$blueprint->getTable()}_pkey\");\n\n        return 'alter table '.$this->wrapTable($blueprint).\" drop constraint {$index}\";\n    }\n\n    /**\n     * Compile a drop unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropUnique(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop constraint {$index}\";\n    }\n\n    /**\n     * Compile a drop index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return \"drop index {$this->wrap($command->index)}\";\n    }\n\n    /**\n     * Compile a drop spatial index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileDropIndex($blueprint, $command);\n    }\n\n    /**\n     * Compile a drop foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropForeign(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop constraint {$index}\";\n    }\n\n    /**\n     * Compile a rename table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileRename(Blueprint $blueprint, Fluent $command)\n    {\n        $from = $this->wrapTable($blueprint);\n\n        return \"alter table {$from} rename to \".$this->wrapTable($command->to);\n    }\n\n    /**\n     * Compile a rename index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint $blueprint\n     * @param  \\Illuminate\\Support\\Fluent $command\n     * @return string\n     */\n    public function compileRenameIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter index %s rename to %s',\n            $this->wrap($command->from),\n            $this->wrap($command->to)\n        );\n    }\n\n    /**\n     * Compile the command to enable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileEnableForeignKeyConstraints()\n    {\n        return 'SET CONSTRAINTS ALL IMMEDIATE;';\n    }\n\n    /**\n     * Compile the command to disable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileDisableForeignKeyConstraints()\n    {\n        return 'SET CONSTRAINTS ALL DEFERRED;';\n    }\n\n    /**\n     * Compile a comment command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileComment(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('comment on column %s.%s is %s',\n            $this->wrapTable($blueprint),\n            $this->wrap($command->column->name),\n            \"'\".str_replace(\"'\", \"''\", $command->value).\"'\"\n        );\n    }\n\n    /**\n     * Create the column definition for a char type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeChar(Fluent $column)\n    {\n        return \"char({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a string type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeString(Fluent $column)\n    {\n        return \"varchar({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a medium text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a long text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeLongText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for an integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeInteger(Fluent $column)\n    {\n        return $this->generatableColumn('integer', $column);\n    }\n\n    /**\n     * Create the column definition for a big integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBigInteger(Fluent $column)\n    {\n        return $this->generatableColumn('bigint', $column);\n    }\n\n    /**\n     * Create the column definition for a medium integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumInteger(Fluent $column)\n    {\n        return $this->generatableColumn('integer', $column);\n    }\n\n    /**\n     * Create the column definition for a tiny integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTinyInteger(Fluent $column)\n    {\n        return $this->generatableColumn('smallint', $column);\n    }\n\n    /**\n     * Create the column definition for a small integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeSmallInteger(Fluent $column)\n    {\n        return $this->generatableColumn('smallint', $column);\n    }\n\n    /**\n     * Create the column definition for a generatable column.\n     *\n     * @param  string  $type\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function generatableColumn($type, Fluent $column)\n    {\n        if (! $column->autoIncrement && is_null($column->generatedAs)) {\n            return $type;\n        }\n\n        if ($column->autoIncrement && is_null($column->generatedAs)) {\n            return with([\n                'integer' => 'serial',\n                'bigint' => 'bigserial',\n                'smallint' => 'smallserial',\n            ])[$type];\n        }\n\n        $options = '';\n\n        if (! is_bool($column->generatedAs) && ! empty($column->generatedAs)) {\n            $options = sprintf(' (%s)', $column->generatedAs);\n        }\n\n        return sprintf(\n            '%s generated %s as identity%s',\n            $type,\n            $column->always ? 'always' : 'by default',\n            $options\n        );\n    }\n\n    /**\n     * Create the column definition for a float type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeFloat(Fluent $column)\n    {\n        return $this->typeDouble($column);\n    }\n\n    /**\n     * Create the column definition for a double type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDouble(Fluent $column)\n    {\n        return 'double precision';\n    }\n\n    /**\n     * Create the column definition for a real type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeReal(Fluent $column)\n    {\n        return 'real';\n    }\n\n    /**\n     * Create the column definition for a decimal type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDecimal(Fluent $column)\n    {\n        return \"decimal({$column->total}, {$column->places})\";\n    }\n\n    /**\n     * Create the column definition for a boolean type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBoolean(Fluent $column)\n    {\n        return 'boolean';\n    }\n\n    /**\n     * Create the column definition for an enumeration type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeEnum(Fluent $column)\n    {\n        return sprintf(\n            'varchar(255) check (\"%s\" in (%s))',\n            $column->name,\n            $this->quoteString($column->allowed)\n        );\n    }\n\n    /**\n     * Create the column definition for a json type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJson(Fluent $column)\n    {\n        return 'json';\n    }\n\n    /**\n     * Create the column definition for a jsonb type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJsonb(Fluent $column)\n    {\n        return 'jsonb';\n    }\n\n    /**\n     * Create the column definition for a date type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDate(Fluent $column)\n    {\n        return 'date';\n    }\n\n    /**\n     * Create the column definition for a date-time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTime(Fluent $column)\n    {\n        return $this->typeTimestamp($column);\n    }\n\n    /**\n     * Create the column definition for a date-time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTimeTz(Fluent $column)\n    {\n        return $this->typeTimestampTz($column);\n    }\n\n    /**\n     * Create the column definition for a time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTime(Fluent $column)\n    {\n        return \"time($column->precision) without time zone\";\n    }\n\n    /**\n     * Create the column definition for a time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimeTz(Fluent $column)\n    {\n        return \"time($column->precision) with time zone\";\n    }\n\n    /**\n     * Create the column definition for a timestamp type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestamp(Fluent $column)\n    {\n        $columnType = \"timestamp($column->precision) without time zone\";\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a timestamp (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestampTz(Fluent $column)\n    {\n        $columnType = \"timestamp($column->precision) with time zone\";\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a year type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeYear(Fluent $column)\n    {\n        return $this->typeInteger($column);\n    }\n\n    /**\n     * Create the column definition for a binary type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBinary(Fluent $column)\n    {\n        return 'bytea';\n    }\n\n    /**\n     * Create the column definition for a uuid type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeUuid(Fluent $column)\n    {\n        return 'uuid';\n    }\n\n    /**\n     * Create the column definition for an IP address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeIpAddress(Fluent $column)\n    {\n        return 'inet';\n    }\n\n    /**\n     * Create the column definition for a MAC address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMacAddress(Fluent $column)\n    {\n        return 'macaddr';\n    }\n\n    /**\n     * Create the column definition for a spatial Geometry type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeGeometry(Fluent $column)\n    {\n        return $this->formatPostGisType('geometry');\n    }\n\n    /**\n     * Create the column definition for a spatial Point type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typePoint(Fluent $column)\n    {\n        return $this->formatPostGisType('point');\n    }\n\n    /**\n     * Create the column definition for a spatial LineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeLineString(Fluent $column)\n    {\n        return $this->formatPostGisType('linestring');\n    }\n\n    /**\n     * Create the column definition for a spatial Polygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typePolygon(Fluent $column)\n    {\n        return $this->formatPostGisType('polygon');\n    }\n\n    /**\n     * Create the column definition for a spatial GeometryCollection type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeGeometryCollection(Fluent $column)\n    {\n        return $this->formatPostGisType('geometrycollection');\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPoint type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMultiPoint(Fluent $column)\n    {\n        return $this->formatPostGisType('multipoint');\n    }\n\n    /**\n     * Create the column definition for a spatial MultiLineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiLineString(Fluent $column)\n    {\n        return $this->formatPostGisType('multilinestring');\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPolygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMultiPolygon(Fluent $column)\n    {\n        return $this->formatPostGisType('multipolygon');\n    }\n\n    /**\n     * Format the column definition for a PostGIS spatial type.\n     *\n     * @param  string  $type\n     * @return string\n     */\n    private function formatPostGisType(string $type)\n    {\n        return \"geography($type, 4326)\";\n    }\n\n    /**\n     * Get the SQL for a nullable column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyNullable(Blueprint $blueprint, Fluent $column)\n    {\n        return $column->nullable ? ' null' : ' not null';\n    }\n\n    /**\n     * Get the SQL for a default column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyDefault(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->default)) {\n            return ' default '.$this->getDefaultValue($column->default);\n        }\n    }\n\n    /**\n     * Get the SQL for an auto-increment column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyIncrement(Blueprint $blueprint, Fluent $column)\n    {\n        if ((in_array($column->type, $this->serials) || ($column->generatedAs !== null)) && $column->autoIncrement) {\n            return ' primary key';\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/RenameColumn.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse Illuminate\\Support\\Fluent;\nuse Doctrine\\DBAL\\Schema\\Column;\nuse Doctrine\\DBAL\\Schema\\TableDiff;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Doctrine\\DBAL\\Schema\\AbstractSchemaManager as SchemaManager;\n\nclass RenameColumn\n{\n    /**\n     * Compile a rename column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return array\n     */\n    public static function compile(Grammar $grammar, Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        $column = $connection->getDoctrineColumn(\n            $grammar->getTablePrefix().$blueprint->getTable(), $command->from\n        );\n\n        $schema = $connection->getDoctrineSchemaManager();\n\n        return (array) $schema->getDatabasePlatform()->getAlterTableSQL(static::getRenamedDiff(\n            $grammar, $blueprint, $command, $column, $schema\n        ));\n    }\n\n    /**\n     * Get a new column instance with the new column name.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Grammars\\Grammar  $grammar\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Doctrine\\DBAL\\Schema\\Column  $column\n     * @param  \\Doctrine\\DBAL\\Schema\\AbstractSchemaManager  $schema\n     * @return \\Doctrine\\DBAL\\Schema\\TableDiff\n     */\n    protected static function getRenamedDiff(Grammar $grammar, Blueprint $blueprint, Fluent $command, Column $column, SchemaManager $schema)\n    {\n        return static::setRenamedColumns(\n            $grammar->getDoctrineTableDiff($blueprint, $schema), $command, $column\n        );\n    }\n\n    /**\n     * Set the renamed columns on the table diff.\n     *\n     * @param  \\Doctrine\\DBAL\\Schema\\TableDiff  $tableDiff\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Doctrine\\DBAL\\Schema\\Column  $column\n     * @return \\Doctrine\\DBAL\\Schema\\TableDiff\n     */\n    protected static function setRenamedColumns(TableDiff $tableDiff, Fluent $command, Column $column)\n    {\n        $tableDiff->renamedColumns = [\n            $command->from => new Column($command->to, $column->getType(), $column->toArray()),\n        ];\n\n        return $tableDiff;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SQLiteGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Fluent;\nuse Doctrine\\DBAL\\Schema\\Index;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Database\\Schema\\Blueprint;\n\nclass SQLiteGrammar extends Grammar\n{\n    /**\n     * The possible column modifiers.\n     *\n     * @var array\n     */\n    protected $modifiers = ['Nullable', 'Default', 'Increment'];\n\n    /**\n     * The columns available as serials.\n     *\n     * @var array\n     */\n    protected $serials = ['bigInteger', 'integer', 'mediumInteger', 'smallInteger', 'tinyInteger'];\n\n    /**\n     * Compile the query to determine if a table exists.\n     *\n     * @return string\n     */\n    public function compileTableExists()\n    {\n        return \"select * from sqlite_master where type = 'table' and name = ?\";\n    }\n\n    /**\n     * Compile the query to determine the list of columns.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    public function compileColumnListing($table)\n    {\n        return 'pragma table_info('.$this->wrap(str_replace('.', '__', $table)).')';\n    }\n\n    /**\n     * Compile a create table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileCreate(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('%s table %s (%s%s%s)',\n            $blueprint->temporary ? 'create temporary' : 'create',\n            $this->wrapTable($blueprint),\n            implode(', ', $this->getColumns($blueprint)),\n            (string) $this->addForeignKeys($blueprint),\n            (string) $this->addPrimaryKeys($blueprint)\n        );\n    }\n\n    /**\n     * Get the foreign key syntax for a table creation statement.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @return string|null\n     */\n    protected function addForeignKeys(Blueprint $blueprint)\n    {\n        $foreigns = $this->getCommandsByName($blueprint, 'foreign');\n\n        return collect($foreigns)->reduce(function ($sql, $foreign) {\n            // Once we have all the foreign key commands for the table creation statement\n            // we'll loop through each of them and add them to the create table SQL we\n            // are building, since SQLite needs foreign keys on the tables creation.\n            $sql .= $this->getForeignKey($foreign);\n\n            if (! is_null($foreign->onDelete)) {\n                $sql .= \" on delete {$foreign->onDelete}\";\n            }\n\n            // If this foreign key specifies the action to be taken on update we will add\n            // that to the statement here. We'll append it to this SQL and then return\n            // the SQL so we can keep adding any other foreign constraints onto this.\n            if (! is_null($foreign->onUpdate)) {\n                $sql .= \" on update {$foreign->onUpdate}\";\n            }\n\n            return $sql;\n        }, '');\n    }\n\n    /**\n     * Get the SQL for the foreign key.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $foreign\n     * @return string\n     */\n    protected function getForeignKey($foreign)\n    {\n        // We need to columnize the columns that the foreign key is being defined for\n        // so that it is a properly formatted list. Once we have done this, we can\n        // return the foreign key SQL declaration to the calling method for use.\n        return sprintf(', foreign key(%s) references %s(%s)',\n            $this->columnize($foreign->columns),\n            $this->wrapTable($foreign->on),\n            $this->columnize((array) $foreign->references)\n        );\n    }\n\n    /**\n     * Get the primary key syntax for a table creation statement.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @return string|null\n     */\n    protected function addPrimaryKeys(Blueprint $blueprint)\n    {\n        if (! is_null($primary = $this->getCommandByName($blueprint, 'primary'))) {\n            return \", primary key ({$this->columnize($primary->columns)})\";\n        }\n    }\n\n    /**\n     * Compile alter table commands for adding columns.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return array\n     */\n    public function compileAdd(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->prefixArray('add column', $this->getColumns($blueprint));\n\n        return collect($columns)->map(function ($column) use ($blueprint) {\n            return 'alter table '.$this->wrapTable($blueprint).' '.$column;\n        })->all();\n    }\n\n    /**\n     * Compile a unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileUnique(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create unique index %s on %s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a plain index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create index %s on %s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a spatial index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     *\n     * @throws \\RuntimeException\n     */\n    public function compileSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        throw new RuntimeException('The database driver in use does not support spatial indexes.');\n    }\n\n    /**\n     * Compile a foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileForeign(Blueprint $blueprint, Fluent $command)\n    {\n        // Handled on table creation...\n    }\n\n    /**\n     * Compile a drop table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDrop(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile a drop table (if exists) command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIfExists(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table if exists '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile the SQL needed to drop all tables.\n     *\n     * @return string\n     */\n    public function compileDropAllTables()\n    {\n        return \"delete from sqlite_master where type in ('table', 'index', 'trigger')\";\n    }\n\n    /**\n     * Compile the SQL needed to drop all views.\n     *\n     * @return string\n     */\n    public function compileDropAllViews()\n    {\n        return \"delete from sqlite_master where type in ('view')\";\n    }\n\n    /**\n     * Compile the SQL needed to rebuild the database.\n     *\n     * @return string\n     */\n    public function compileRebuild()\n    {\n        return 'vacuum';\n    }\n\n    /**\n     * Compile a drop column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @param  \\Illuminate\\Database\\Connection  $connection\n     * @return array\n     */\n    public function compileDropColumn(Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        $tableDiff = $this->getDoctrineTableDiff(\n            $blueprint, $schema = $connection->getDoctrineSchemaManager()\n        );\n\n        foreach ($command->columns as $name) {\n            $tableDiff->removedColumns[$name] = $connection->getDoctrineColumn(\n                $this->getTablePrefix().$blueprint->getTable(), $name\n            );\n        }\n\n        return (array) $schema->getDatabasePlatform()->getAlterTableSQL($tableDiff);\n    }\n\n    /**\n     * Compile a drop unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropUnique(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"drop index {$index}\";\n    }\n\n    /**\n     * Compile a drop index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIndex(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"drop index {$index}\";\n    }\n\n    /**\n     * Compile a drop spatial index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     *\n     * @throws \\RuntimeException\n     */\n    public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        throw new RuntimeException('The database driver in use does not support spatial indexes.');\n    }\n\n    /**\n     * Compile a rename table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileRename(Blueprint $blueprint, Fluent $command)\n    {\n        $from = $this->wrapTable($blueprint);\n\n        return \"alter table {$from} rename to \".$this->wrapTable($command->to);\n    }\n\n    /**\n     * Compile a rename index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint $blueprint\n     * @param  \\Illuminate\\Support\\Fluent $command\n     * @param  \\Illuminate\\Database\\Connection $connection\n     * @return array\n     */\n    public function compileRenameIndex(Blueprint $blueprint, Fluent $command, Connection $connection)\n    {\n        $schemaManager = $connection->getDoctrineSchemaManager();\n\n        $indexes = $schemaManager->listTableIndexes($this->getTablePrefix().$blueprint->getTable());\n\n        $index = Arr::get($indexes, $command->from);\n\n        if (! $index) {\n            throw new RuntimeException(\"Index [{$command->from}] does not exist.\");\n        }\n\n        $newIndex = new Index(\n            $command->to, $index->getColumns(), $index->isUnique(),\n            $index->isPrimary(), $index->getFlags(), $index->getOptions()\n        );\n\n        $platform = $schemaManager->getDatabasePlatform();\n\n        return [\n            $platform->getDropIndexSQL($command->from, $this->getTablePrefix().$blueprint->getTable()),\n            $platform->getCreateIndexSQL($newIndex, $this->getTablePrefix().$blueprint->getTable()),\n        ];\n    }\n\n    /**\n     * Compile the command to enable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileEnableForeignKeyConstraints()\n    {\n        return 'PRAGMA foreign_keys = ON;';\n    }\n\n    /**\n     * Compile the command to disable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileDisableForeignKeyConstraints()\n    {\n        return 'PRAGMA foreign_keys = OFF;';\n    }\n\n    /**\n     * Compile the SQL needed to enable a writable schema.\n     *\n     * @return string\n     */\n    public function compileEnableWriteableSchema()\n    {\n        return 'PRAGMA writable_schema = 1;';\n    }\n\n    /**\n     * Compile the SQL needed to disable a writable schema.\n     *\n     * @return string\n     */\n    public function compileDisableWriteableSchema()\n    {\n        return 'PRAGMA writable_schema = 0;';\n    }\n\n    /**\n     * Create the column definition for a char type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeChar(Fluent $column)\n    {\n        return 'varchar';\n    }\n\n    /**\n     * Create the column definition for a string type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeString(Fluent $column)\n    {\n        return 'varchar';\n    }\n\n    /**\n     * Create the column definition for a text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a medium text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a long text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeLongText(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeInteger(Fluent $column)\n    {\n        return 'integer';\n    }\n\n    /**\n     * Create the column definition for a big integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBigInteger(Fluent $column)\n    {\n        return 'integer';\n    }\n\n    /**\n     * Create the column definition for a medium integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumInteger(Fluent $column)\n    {\n        return 'integer';\n    }\n\n    /**\n     * Create the column definition for a tiny integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTinyInteger(Fluent $column)\n    {\n        return 'integer';\n    }\n\n    /**\n     * Create the column definition for a small integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeSmallInteger(Fluent $column)\n    {\n        return 'integer';\n    }\n\n    /**\n     * Create the column definition for a float type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeFloat(Fluent $column)\n    {\n        return 'float';\n    }\n\n    /**\n     * Create the column definition for a double type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDouble(Fluent $column)\n    {\n        return 'float';\n    }\n\n    /**\n     * Create the column definition for a decimal type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDecimal(Fluent $column)\n    {\n        return 'numeric';\n    }\n\n    /**\n     * Create the column definition for a boolean type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBoolean(Fluent $column)\n    {\n        return 'tinyint(1)';\n    }\n\n    /**\n     * Create the column definition for an enumeration type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeEnum(Fluent $column)\n    {\n        return sprintf(\n            'varchar check (\"%s\" in (%s))',\n            $column->name,\n            $this->quoteString($column->allowed)\n        );\n    }\n\n    /**\n     * Create the column definition for a json type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJson(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a jsonb type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJsonb(Fluent $column)\n    {\n        return 'text';\n    }\n\n    /**\n     * Create the column definition for a date type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDate(Fluent $column)\n    {\n        return 'date';\n    }\n\n    /**\n     * Create the column definition for a date-time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTime(Fluent $column)\n    {\n        return $this->typeTimestamp($column);\n    }\n\n    /**\n     * Create the column definition for a date-time (with time zone) type.\n     *\n     * Note: \"SQLite does not have a storage class set aside for storing dates and/or times.\"\n     * @link https://www.sqlite.org/datatype3.html\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTimeTz(Fluent $column)\n    {\n        return $this->typeDateTime($column);\n    }\n\n    /**\n     * Create the column definition for a time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTime(Fluent $column)\n    {\n        return 'time';\n    }\n\n    /**\n     * Create the column definition for a time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimeTz(Fluent $column)\n    {\n        return $this->typeTime($column);\n    }\n\n    /**\n     * Create the column definition for a timestamp type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestamp(Fluent $column)\n    {\n        return $column->useCurrent ? 'datetime default CURRENT_TIMESTAMP' : 'datetime';\n    }\n\n    /**\n     * Create the column definition for a timestamp (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestampTz(Fluent $column)\n    {\n        return $this->typeTimestamp($column);\n    }\n\n    /**\n     * Create the column definition for a year type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeYear(Fluent $column)\n    {\n        return $this->typeInteger($column);\n    }\n\n    /**\n     * Create the column definition for a binary type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBinary(Fluent $column)\n    {\n        return 'blob';\n    }\n\n    /**\n     * Create the column definition for a uuid type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeUuid(Fluent $column)\n    {\n        return 'varchar';\n    }\n\n    /**\n     * Create the column definition for an IP address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeIpAddress(Fluent $column)\n    {\n        return 'varchar';\n    }\n\n    /**\n     * Create the column definition for a MAC address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMacAddress(Fluent $column)\n    {\n        return 'varchar';\n    }\n\n    /**\n     * Create the column definition for a spatial Geometry type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometry(Fluent $column)\n    {\n        return 'geometry';\n    }\n\n    /**\n     * Create the column definition for a spatial Point type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePoint(Fluent $column)\n    {\n        return 'point';\n    }\n\n    /**\n     * Create the column definition for a spatial LineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeLineString(Fluent $column)\n    {\n        return 'linestring';\n    }\n\n    /**\n     * Create the column definition for a spatial Polygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePolygon(Fluent $column)\n    {\n        return 'polygon';\n    }\n\n    /**\n     * Create the column definition for a spatial GeometryCollection type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometryCollection(Fluent $column)\n    {\n        return 'geometrycollection';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPoint type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPoint(Fluent $column)\n    {\n        return 'multipoint';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiLineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiLineString(Fluent $column)\n    {\n        return 'multilinestring';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPolygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPolygon(Fluent $column)\n    {\n        return 'multipolygon';\n    }\n\n    /**\n     * Get the SQL for a nullable column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyNullable(Blueprint $blueprint, Fluent $column)\n    {\n        return $column->nullable ? ' null' : ' not null';\n    }\n\n    /**\n     * Get the SQL for a default column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyDefault(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->default)) {\n            return ' default '.$this->getDefaultValue($column->default);\n        }\n    }\n\n    /**\n     * Get the SQL for an auto-increment column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyIncrement(Blueprint $blueprint, Fluent $column)\n    {\n        if (in_array($column->type, $this->serials) && $column->autoIncrement) {\n            return ' primary key autoincrement';\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/Grammars/SqlServerGrammar.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema\\Grammars;\n\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Database\\Schema\\Blueprint;\n\nclass SqlServerGrammar extends Grammar\n{\n    /**\n     * If this Grammar supports schema changes wrapped in a transaction.\n     *\n     * @var bool\n     */\n    protected $transactions = true;\n\n    /**\n     * The possible column modifiers.\n     *\n     * @var array\n     */\n    protected $modifiers = ['Increment', 'Collate', 'Nullable', 'Default', 'Persisted'];\n\n    /**\n     * The columns available as serials.\n     *\n     * @var array\n     */\n    protected $serials = ['tinyInteger', 'smallInteger', 'mediumInteger', 'integer', 'bigInteger'];\n\n    /**\n     * Compile the query to determine if a table exists.\n     *\n     * @return string\n     */\n    public function compileTableExists()\n    {\n        return \"select * from sysobjects where type = 'U' and name = ?\";\n    }\n\n    /**\n     * Compile the query to determine the list of columns.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    public function compileColumnListing($table)\n    {\n        return \"select col.name from sys.columns as col\n                join sys.objects as obj on col.object_id = obj.object_id\n                where obj.type = 'U' and obj.name = '$table'\";\n    }\n\n    /**\n     * Compile a create table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileCreate(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = implode(', ', $this->getColumns($blueprint));\n\n        return 'create table '.$this->wrapTable($blueprint).\" ($columns)\";\n    }\n\n    /**\n     * Compile a column addition table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileAdd(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter table %s add %s',\n            $this->wrapTable($blueprint),\n            implode(', ', $this->getColumns($blueprint))\n        );\n    }\n\n    /**\n     * Compile a primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compilePrimary(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('alter table %s add constraint %s primary key (%s)',\n            $this->wrapTable($blueprint),\n            $this->wrap($command->index),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileUnique(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create unique index %s on %s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a plain index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create index %s on %s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a spatial index key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('create spatial index %s on %s (%s)',\n            $this->wrap($command->index),\n            $this->wrapTable($blueprint),\n            $this->columnize($command->columns)\n        );\n    }\n\n    /**\n     * Compile a drop table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDrop(Blueprint $blueprint, Fluent $command)\n    {\n        return 'drop table '.$this->wrapTable($blueprint);\n    }\n\n    /**\n     * Compile a drop table (if exists) command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIfExists(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf('if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = %s) drop table %s',\n            \"'\".str_replace(\"'\", \"''\", $this->getTablePrefix().$blueprint->getTable()).\"'\",\n            $this->wrapTable($blueprint)\n        );\n    }\n\n    /**\n     * Compile the SQL needed to drop all tables.\n     *\n     * @return string\n     */\n    public function compileDropAllTables()\n    {\n        return \"EXEC sp_msforeachtable 'DROP TABLE ?'\";\n    }\n\n    /**\n     * Compile a drop column command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropColumn(Blueprint $blueprint, Fluent $command)\n    {\n        $columns = $this->wrapArray($command->columns);\n\n        return 'alter table '.$this->wrapTable($blueprint).' drop column '.implode(', ', $columns);\n    }\n\n    /**\n     * Compile a drop primary key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropPrimary(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop constraint {$index}\";\n    }\n\n    /**\n     * Compile a drop unique key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropUnique(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"drop index {$index} on {$this->wrapTable($blueprint)}\";\n    }\n\n    /**\n     * Compile a drop index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropIndex(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"drop index {$index} on {$this->wrapTable($blueprint)}\";\n    }\n\n    /**\n     * Compile a drop spatial index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropSpatialIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return $this->compileDropIndex($blueprint, $command);\n    }\n\n    /**\n     * Compile a drop foreign key command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileDropForeign(Blueprint $blueprint, Fluent $command)\n    {\n        $index = $this->wrap($command->index);\n\n        return \"alter table {$this->wrapTable($blueprint)} drop constraint {$index}\";\n    }\n\n    /**\n     * Compile a rename table command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $command\n     * @return string\n     */\n    public function compileRename(Blueprint $blueprint, Fluent $command)\n    {\n        $from = $this->wrapTable($blueprint);\n\n        return \"sp_rename {$from}, \".$this->wrapTable($command->to);\n    }\n\n    /**\n     * Compile a rename index command.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint $blueprint\n     * @param  \\Illuminate\\Support\\Fluent $command\n     * @return string\n     */\n    public function compileRenameIndex(Blueprint $blueprint, Fluent $command)\n    {\n        return sprintf(\"sp_rename N'%s', %s, N'INDEX'\",\n            $this->wrap($blueprint->getTable().'.'.$command->from),\n            $this->wrap($command->to)\n        );\n    }\n\n    /**\n     * Compile the command to enable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileEnableForeignKeyConstraints()\n    {\n        return 'EXEC sp_msforeachtable @command1=\"print \\'?\\'\", @command2=\"ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all\";';\n    }\n\n    /**\n     * Compile the command to disable foreign key constraints.\n     *\n     * @return string\n     */\n    public function compileDisableForeignKeyConstraints()\n    {\n        return 'EXEC sp_msforeachtable \"ALTER TABLE ? NOCHECK CONSTRAINT all\";';\n    }\n\n    /**\n     * Compile the command to drop all foreign keys.\n     *\n     * @return string\n     */\n    public function compileDropAllForeignKeys()\n    {\n        return \"DECLARE @sql NVARCHAR(MAX) = N'';\n            SELECT @sql += 'ALTER TABLE ' + QUOTENAME(OBJECT_NAME(parent_object_id)) \n                + ' DROP CONSTRAINT ' + QUOTENAME(name) + ';'\n            FROM sys.foreign_keys;\n            \n            EXEC sp_executesql @sql;\";\n    }\n\n    /**\n     * Create the column definition for a char type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeChar(Fluent $column)\n    {\n        return \"nchar({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a string type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeString(Fluent $column)\n    {\n        return \"nvarchar({$column->length})\";\n    }\n\n    /**\n     * Create the column definition for a text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeText(Fluent $column)\n    {\n        return 'nvarchar(max)';\n    }\n\n    /**\n     * Create the column definition for a medium text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumText(Fluent $column)\n    {\n        return 'nvarchar(max)';\n    }\n\n    /**\n     * Create the column definition for a long text type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeLongText(Fluent $column)\n    {\n        return 'nvarchar(max)';\n    }\n\n    /**\n     * Create the column definition for an integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeInteger(Fluent $column)\n    {\n        return 'int';\n    }\n\n    /**\n     * Create the column definition for a big integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBigInteger(Fluent $column)\n    {\n        return 'bigint';\n    }\n\n    /**\n     * Create the column definition for a medium integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMediumInteger(Fluent $column)\n    {\n        return 'int';\n    }\n\n    /**\n     * Create the column definition for a tiny integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTinyInteger(Fluent $column)\n    {\n        return 'tinyint';\n    }\n\n    /**\n     * Create the column definition for a small integer type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeSmallInteger(Fluent $column)\n    {\n        return 'smallint';\n    }\n\n    /**\n     * Create the column definition for a float type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeFloat(Fluent $column)\n    {\n        return 'float';\n    }\n\n    /**\n     * Create the column definition for a double type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDouble(Fluent $column)\n    {\n        return 'float';\n    }\n\n    /**\n     * Create the column definition for a decimal type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDecimal(Fluent $column)\n    {\n        return \"decimal({$column->total}, {$column->places})\";\n    }\n\n    /**\n     * Create the column definition for a boolean type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBoolean(Fluent $column)\n    {\n        return 'bit';\n    }\n\n    /**\n     * Create the column definition for an enumeration type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeEnum(Fluent $column)\n    {\n        return sprintf(\n            'nvarchar(255) check (\"%s\" in (%s))',\n            $column->name,\n            $this->quoteString($column->allowed)\n        );\n    }\n\n    /**\n     * Create the column definition for a json type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJson(Fluent $column)\n    {\n        return 'nvarchar(max)';\n    }\n\n    /**\n     * Create the column definition for a jsonb type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeJsonb(Fluent $column)\n    {\n        return 'nvarchar(max)';\n    }\n\n    /**\n     * Create the column definition for a date type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDate(Fluent $column)\n    {\n        return 'date';\n    }\n\n    /**\n     * Create the column definition for a date-time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTime(Fluent $column)\n    {\n        return $this->typeTimestamp($column);\n    }\n\n    /**\n     * Create the column definition for a date-time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeDateTimeTz(Fluent $column)\n    {\n        return $this->typeTimestampTz($column);\n    }\n\n    /**\n     * Create the column definition for a time type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTime(Fluent $column)\n    {\n        return $column->precision ? \"time($column->precision)\" : 'time';\n    }\n\n    /**\n     * Create the column definition for a time (with time zone) type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimeTz(Fluent $column)\n    {\n        return $this->typeTime($column);\n    }\n\n    /**\n     * Create the column definition for a timestamp type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestamp(Fluent $column)\n    {\n        $columnType = $column->precision ? \"datetime2($column->precision)\" : 'datetime';\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a timestamp (with time zone) type.\n     *\n     * @link https://msdn.microsoft.com/en-us/library/bb630289(v=sql.120).aspx\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeTimestampTz(Fluent $column)\n    {\n        $columnType = $column->precision ? \"datetimeoffset($column->precision)\" : 'datetimeoffset';\n\n        return $column->useCurrent ? \"$columnType default CURRENT_TIMESTAMP\" : $columnType;\n    }\n\n    /**\n     * Create the column definition for a year type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeYear(Fluent $column)\n    {\n        return $this->typeInteger($column);\n    }\n\n    /**\n     * Create the column definition for a binary type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeBinary(Fluent $column)\n    {\n        return 'varbinary(max)';\n    }\n\n    /**\n     * Create the column definition for a uuid type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeUuid(Fluent $column)\n    {\n        return 'uniqueidentifier';\n    }\n\n    /**\n     * Create the column definition for an IP address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeIpAddress(Fluent $column)\n    {\n        return 'nvarchar(45)';\n    }\n\n    /**\n     * Create the column definition for a MAC address type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    protected function typeMacAddress(Fluent $column)\n    {\n        return 'nvarchar(17)';\n    }\n\n    /**\n     * Create the column definition for a spatial Geometry type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometry(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial Point type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePoint(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial LineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeLineString(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial Polygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typePolygon(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial GeometryCollection type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeGeometryCollection(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPoint type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPoint(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiLineString type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiLineString(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a spatial MultiPolygon type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string\n     */\n    public function typeMultiPolygon(Fluent $column)\n    {\n        return 'geography';\n    }\n\n    /**\n     * Create the column definition for a generated, computed column type.\n     *\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function typeComputed(Fluent $column)\n    {\n        return \"as ({$column->expression})\";\n    }\n\n    /**\n     * Get the SQL for a collation column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyCollate(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->collation)) {\n            return ' collate '.$column->collation;\n        }\n    }\n\n    /**\n     * Get the SQL for a nullable column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyNullable(Blueprint $blueprint, Fluent $column)\n    {\n        if ($column->type !== 'computed') {\n            return $column->nullable ? ' null' : ' not null';\n        }\n    }\n\n    /**\n     * Get the SQL for a default column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyDefault(Blueprint $blueprint, Fluent $column)\n    {\n        if (! is_null($column->default)) {\n            return ' default '.$this->getDefaultValue($column->default);\n        }\n    }\n\n    /**\n     * Get the SQL for an auto-increment column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyIncrement(Blueprint $blueprint, Fluent $column)\n    {\n        if (in_array($column->type, $this->serials) && $column->autoIncrement) {\n            return ' identity primary key';\n        }\n    }\n\n    /**\n     * Get the SQL for a generated stored column modifier.\n     *\n     * @param  \\Illuminate\\Database\\Schema\\Blueprint  $blueprint\n     * @param  \\Illuminate\\Support\\Fluent  $column\n     * @return string|null\n     */\n    protected function modifyPersisted(Blueprint $blueprint, Fluent $column)\n    {\n        if ($column->persisted) {\n            return ' persisted';\n        }\n    }\n\n    /**\n     * Wrap a table in keyword identifiers.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Expression|string  $table\n     * @return string\n     */\n    public function wrapTable($table)\n    {\n        if ($table instanceof Blueprint && $table->temporary) {\n            $this->setTablePrefix('#');\n        }\n\n        return parent::wrapTable($table);\n    }\n\n    /**\n     * Quote the given string literal.\n     *\n     * @param  string|array  $value\n     * @return string\n     */\n    public function quoteString($value)\n    {\n        if (is_array($value)) {\n            return implode(', ', array_map([$this, __FUNCTION__], $value));\n        }\n\n        return \"N'$value'\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nclass MySqlBuilder extends Builder\n{\n    /**\n     * Determine if the given table exists.\n     *\n     * @param  string  $table\n     * @return bool\n     */\n    public function hasTable($table)\n    {\n        $table = $this->connection->getTablePrefix().$table;\n\n        return count($this->connection->select(\n            $this->grammar->compileTableExists(), [$this->connection->getDatabaseName(), $table]\n        )) > 0;\n    }\n\n    /**\n     * Get the column listing for a given table.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    public function getColumnListing($table)\n    {\n        $table = $this->connection->getTablePrefix().$table;\n\n        $results = $this->connection->select(\n            $this->grammar->compileColumnListing(), [$this->connection->getDatabaseName(), $table]\n        );\n\n        return $this->connection->getPostProcessor()->processColumnListing($results);\n    }\n\n    /**\n     * Drop all tables from the database.\n     *\n     * @return void\n     */\n    public function dropAllTables()\n    {\n        $tables = [];\n\n        foreach ($this->getAllTables() as $row) {\n            $row = (array) $row;\n\n            $tables[] = reset($row);\n        }\n\n        if (empty($tables)) {\n            return;\n        }\n\n        $this->disableForeignKeyConstraints();\n\n        $this->connection->statement(\n            $this->grammar->compileDropAllTables($tables)\n        );\n\n        $this->enableForeignKeyConstraints();\n    }\n\n    /**\n     * Drop all views from the database.\n     *\n     * @return void\n     */\n    public function dropAllViews()\n    {\n        $views = [];\n\n        foreach ($this->getAllViews() as $row) {\n            $row = (array) $row;\n\n            $views[] = reset($row);\n        }\n\n        if (empty($views)) {\n            return;\n        }\n\n        $this->connection->statement(\n            $this->grammar->compileDropAllViews($views)\n        );\n    }\n\n    /**\n     * Get all of the table names for the database.\n     *\n     * @return array\n     */\n    protected function getAllTables()\n    {\n        return $this->connection->select(\n            $this->grammar->compileGetAllTables()\n        );\n    }\n\n    /**\n     * Get all of the view names for the database.\n     *\n     * @return array\n     */\n    protected function getAllViews()\n    {\n        return $this->connection->select(\n            $this->grammar->compileGetAllViews()\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/PostgresBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nclass PostgresBuilder extends Builder\n{\n    /**\n     * Determine if the given table exists.\n     *\n     * @param  string  $table\n     * @return bool\n     */\n    public function hasTable($table)\n    {\n        [$schema, $table] = $this->parseSchemaAndTable($table);\n\n        $table = $this->connection->getTablePrefix().$table;\n\n        return count($this->connection->select(\n            $this->grammar->compileTableExists(), [$schema, $table]\n        )) > 0;\n    }\n\n    /**\n     * Drop all tables from the database.\n     *\n     * @return void\n     */\n    public function dropAllTables()\n    {\n        $tables = [];\n\n        $excludedTables = ['spatial_ref_sys'];\n\n        foreach ($this->getAllTables() as $row) {\n            $row = (array) $row;\n\n            $table = reset($row);\n\n            if (! in_array($table, $excludedTables)) {\n                $tables[] = $table;\n            }\n        }\n\n        if (empty($tables)) {\n            return;\n        }\n\n        $this->connection->statement(\n            $this->grammar->compileDropAllTables($tables)\n        );\n    }\n\n    /**\n     * Drop all views from the database.\n     *\n     * @return void\n     */\n    public function dropAllViews()\n    {\n        $views = [];\n\n        foreach ($this->getAllViews() as $row) {\n            $row = (array) $row;\n\n            $views[] = reset($row);\n        }\n\n        if (empty($views)) {\n            return;\n        }\n\n        $this->connection->statement(\n            $this->grammar->compileDropAllViews($views)\n        );\n    }\n\n    /**\n     * Drop all types from the database.\n     */\n    public function dropAllTypes()\n    {\n        $types = [];\n\n        foreach ($this->getAllTypes() as $row) {\n            $row = (array) $row;\n\n            $types[] = reset($row);\n        }\n\n        if (empty($types)) {\n            return;\n        }\n\n        $this->connection->statement(\n            $this->grammar->compileDropAllTypes($types)\n        );\n    }\n\n    /**\n     * Get all of the table names for the database.\n     *\n     * @return array\n     */\n    protected function getAllTables()\n    {\n        return $this->connection->select(\n            $this->grammar->compileGetAllTables($this->connection->getConfig('schema'))\n        );\n    }\n\n    /**\n     * Get all of the view names for the database.\n     *\n     * @return array\n     */\n    protected function getAllViews()\n    {\n        return $this->connection->select(\n            $this->grammar->compileGetAllViews($this->connection->getConfig('schema'))\n        );\n    }\n\n    /**\n     * Get all of the type names for the database.\n     *\n     * @return array\n     */\n    protected function getAllTypes()\n    {\n        return $this->connection->select(\n            $this->grammar->compileGetAllTypes()\n        );\n    }\n\n    /**\n     * Get the column listing for a given table.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    public function getColumnListing($table)\n    {\n        [$schema, $table] = $this->parseSchemaAndTable($table);\n\n        $table = $this->connection->getTablePrefix().$table;\n\n        $results = $this->connection->select(\n            $this->grammar->compileColumnListing(), [$schema, $table]\n        );\n\n        return $this->connection->getPostProcessor()->processColumnListing($results);\n    }\n\n    /**\n     * Parse the table name and extract the schema and table.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    protected function parseSchemaAndTable($table)\n    {\n        $table = explode('.', $table);\n\n        if (is_array($schema = $this->connection->getConfig('schema'))) {\n            if (in_array($table[0], $schema)) {\n                return [array_shift($table), implode('.', $table)];\n            }\n\n            $schema = head($schema);\n        }\n\n        return [$schema ?: 'public', implode('.', $table)];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/SQLiteBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nclass SQLiteBuilder extends Builder\n{\n    /**\n     * Drop all tables from the database.\n     *\n     * @return void\n     */\n    public function dropAllTables()\n    {\n        if ($this->connection->getDatabaseName() !== ':memory:') {\n            return $this->refreshDatabaseFile();\n        }\n\n        $this->connection->select($this->grammar->compileEnableWriteableSchema());\n\n        $this->connection->select($this->grammar->compileDropAllTables());\n\n        $this->connection->select($this->grammar->compileDisableWriteableSchema());\n\n        $this->connection->select($this->grammar->compileRebuild());\n    }\n\n    /**\n     * Drop all views from the database.\n     *\n     * @return void\n     */\n    public function dropAllViews()\n    {\n        $this->connection->select($this->grammar->compileEnableWriteableSchema());\n\n        $this->connection->select($this->grammar->compileDropAllViews());\n\n        $this->connection->select($this->grammar->compileDisableWriteableSchema());\n\n        $this->connection->select($this->grammar->compileRebuild());\n    }\n\n    /**\n     * Empty the database file.\n     *\n     * @return void\n     */\n    public function refreshDatabaseFile()\n    {\n        file_put_contents($this->connection->getDatabaseName(), '');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Schema/SqlServerBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database\\Schema;\n\nclass SqlServerBuilder extends Builder\n{\n    /**\n     * Drop all tables from the database.\n     *\n     * @return void\n     */\n    public function dropAllTables()\n    {\n        $this->connection->statement($this->grammar->compileDropAllForeignKeys());\n\n        $this->connection->statement($this->grammar->compileDropAllTables());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/Seeder.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Container\\Container;\n\nabstract class Seeder\n{\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The console command instance.\n     *\n     * @var \\Illuminate\\Console\\Command\n     */\n    protected $command;\n\n    /**\n     * Seed the given connection from the given path.\n     *\n     * @param  array|string  $class\n     * @param  bool  $silent\n     * @return $this\n     */\n    public function call($class, $silent = false)\n    {\n        $classes = Arr::wrap($class);\n\n        foreach ($classes as $class) {\n            if ($silent === false && isset($this->command)) {\n                $this->command->getOutput()->writeln(\"<info>Seeding:</info> $class\");\n            }\n\n            $this->resolve($class)->__invoke();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Silently seed the given connection from the given path.\n     *\n     * @param  array|string  $class\n     * @return void\n     */\n    public function callSilent($class)\n    {\n        $this->call($class, true);\n    }\n\n    /**\n     * Resolve an instance of the given seeder class.\n     *\n     * @param  string  $class\n     * @return \\Illuminate\\Database\\Seeder\n     */\n    protected function resolve($class)\n    {\n        if (isset($this->container)) {\n            $instance = $this->container->make($class);\n\n            $instance->setContainer($this->container);\n        } else {\n            $instance = new $class;\n        }\n\n        if (isset($this->command)) {\n            $instance->setCommand($this->command);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Set the IoC container instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @return $this\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n\n        return $this;\n    }\n\n    /**\n     * Set the console command instance.\n     *\n     * @param  \\Illuminate\\Console\\Command  $command\n     * @return $this\n     */\n    public function setCommand(Command $command)\n    {\n        $this->command = $command;\n\n        return $this;\n    }\n\n    /**\n     * Run the database seeds.\n     *\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __invoke()\n    {\n        if (! method_exists($this, 'run')) {\n            throw new InvalidArgumentException('Method [run] missing from '.get_class($this));\n        }\n\n        return isset($this->container)\n                    ? $this->container->call([$this, 'run'])\n                    : $this->run();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/SqlServerConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Database;\n\nuse Closure;\nuse Exception;\nuse Throwable;\nuse Illuminate\\Database\\Schema\\SqlServerBuilder;\nuse Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Driver as DoctrineDriver;\nuse Illuminate\\Database\\Query\\Processors\\SqlServerProcessor;\nuse Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar as QueryGrammar;\nuse Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar as SchemaGrammar;\n\nclass SqlServerConnection extends Connection\n{\n    /**\n     * Execute a Closure within a transaction.\n     *\n     * @param  \\Closure  $callback\n     * @param  int  $attempts\n     * @return mixed\n     *\n     * @throws \\Exception|\\Throwable\n     */\n    public function transaction(Closure $callback, $attempts = 1)\n    {\n        for ($a = 1; $a <= $attempts; $a++) {\n            if ($this->getDriverName() === 'sqlsrv') {\n                return parent::transaction($callback);\n            }\n\n            $this->getPdo()->exec('BEGIN TRAN');\n\n            // We'll simply execute the given callback within a try / catch block\n            // and if we catch any exception we can rollback the transaction\n            // so that none of the changes are persisted to the database.\n            try {\n                $result = $callback($this);\n\n                $this->getPdo()->exec('COMMIT TRAN');\n            }\n\n            // If we catch an exception, we will roll back so nothing gets messed\n            // up in the database. Then we'll re-throw the exception so it can\n            // be handled how the developer sees fit for their applications.\n            catch (Exception $e) {\n                $this->getPdo()->exec('ROLLBACK TRAN');\n\n                throw $e;\n            } catch (Throwable $e) {\n                $this->getPdo()->exec('ROLLBACK TRAN');\n\n                throw $e;\n            }\n\n            return $result;\n        }\n    }\n\n    /**\n     * Get the default query grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Grammars\\SqlServerGrammar\n     */\n    protected function getDefaultQueryGrammar()\n    {\n        return $this->withTablePrefix(new QueryGrammar);\n    }\n\n    /**\n     * Get a schema builder instance for the connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\SqlServerBuilder\n     */\n    public function getSchemaBuilder()\n    {\n        if (is_null($this->schemaGrammar)) {\n            $this->useDefaultSchemaGrammar();\n        }\n\n        return new SqlServerBuilder($this);\n    }\n\n    /**\n     * Get the default schema grammar instance.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Grammars\\SqlServerGrammar\n     */\n    protected function getDefaultSchemaGrammar()\n    {\n        return $this->withTablePrefix(new SchemaGrammar);\n    }\n\n    /**\n     * Get the default post processor instance.\n     *\n     * @return \\Illuminate\\Database\\Query\\Processors\\SqlServerProcessor\n     */\n    protected function getDefaultPostProcessor()\n    {\n        return new SqlServerProcessor;\n    }\n\n    /**\n     * Get the Doctrine DBAL driver.\n     *\n     * @return \\Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Driver\n     */\n    protected function getDoctrineDriver()\n    {\n        return new DoctrineDriver;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Database/composer.json",
    "content": "{\n    \"name\": \"illuminate/database\",\n    \"description\": \"The Illuminate Database package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"keywords\": [\"laravel\", \"database\", \"sql\", \"orm\"],\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Database\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"doctrine/dbal\": \"Required to rename columns and drop SQLite columns (^2.6).\",\n        \"fzaninotto/faker\": \"Required to use the eloquent factory builder (^1.4).\",\n        \"illuminate/console\": \"Required to use the database commands (5.8.*).\",\n        \"illuminate/events\": \"Required to use the observers with Eloquent (5.8.*).\",\n        \"illuminate/filesystem\": \"Required to use the migrations (5.8.*).\",\n        \"illuminate/pagination\": \"Required to paginate the result set (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php",
    "content": "<?php\n\nnamespace Illuminate\\Encryption;\n\nuse RuntimeException;\nuse Illuminate\\Contracts\\Encryption\\DecryptException;\nuse Illuminate\\Contracts\\Encryption\\EncryptException;\nuse Illuminate\\Contracts\\Encryption\\Encrypter as EncrypterContract;\n\nclass Encrypter implements EncrypterContract\n{\n    /**\n     * The encryption key.\n     *\n     * @var string\n     */\n    protected $key;\n\n    /**\n     * The algorithm used for encryption.\n     *\n     * @var string\n     */\n    protected $cipher;\n\n    /**\n     * Create a new encrypter instance.\n     *\n     * @param  string  $key\n     * @param  string  $cipher\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    public function __construct($key, $cipher = 'AES-128-CBC')\n    {\n        $key = (string) $key;\n\n        if (static::supported($key, $cipher)) {\n            $this->key = $key;\n            $this->cipher = $cipher;\n        } else {\n            throw new RuntimeException('The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.');\n        }\n    }\n\n    /**\n     * Determine if the given key and cipher combination is valid.\n     *\n     * @param  string  $key\n     * @param  string  $cipher\n     * @return bool\n     */\n    public static function supported($key, $cipher)\n    {\n        $length = mb_strlen($key, '8bit');\n\n        return ($cipher === 'AES-128-CBC' && $length === 16) ||\n               ($cipher === 'AES-256-CBC' && $length === 32);\n    }\n\n    /**\n     * Create a new encryption key for the given cipher.\n     *\n     * @param  string  $cipher\n     * @return string\n     */\n    public static function generateKey($cipher)\n    {\n        return random_bytes($cipher === 'AES-128-CBC' ? 16 : 32);\n    }\n\n    /**\n     * Encrypt the given value.\n     *\n     * @param  mixed  $value\n     * @param  bool  $serialize\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n     */\n    public function encrypt($value, $serialize = true)\n    {\n        $iv = random_bytes(openssl_cipher_iv_length($this->cipher));\n\n        // First we will encrypt the value using OpenSSL. After this is encrypted we\n        // will proceed to calculating a MAC for the encrypted value so that this\n        // value can be verified later as not having been changed by the users.\n        $value = \\openssl_encrypt(\n            $serialize ? serialize($value) : $value,\n            $this->cipher, $this->key, 0, $iv\n        );\n\n        if ($value === false) {\n            throw new EncryptException('Could not encrypt the data.');\n        }\n\n        // Once we get the encrypted value we'll go ahead and base64_encode the input\n        // vector and create the MAC for the encrypted value so we can then verify\n        // its authenticity. Then, we'll JSON the data into the \"payload\" array.\n        $mac = $this->hash($iv = base64_encode($iv), $value);\n\n        $json = json_encode(compact('iv', 'value', 'mac'));\n\n        if (json_last_error() !== JSON_ERROR_NONE) {\n            throw new EncryptException('Could not encrypt the data.');\n        }\n\n        return base64_encode($json);\n    }\n\n    /**\n     * Encrypt a string without serialization.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\EncryptException\n     */\n    public function encryptString($value)\n    {\n        return $this->encrypt($value, false);\n    }\n\n    /**\n     * Decrypt the given value.\n     *\n     * @param  string  $payload\n     * @param  bool  $unserialize\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n     */\n    public function decrypt($payload, $unserialize = true)\n    {\n        $payload = $this->getJsonPayload($payload);\n\n        $iv = base64_decode($payload['iv']);\n\n        // Here we will decrypt the value. If we are able to successfully decrypt it\n        // we will then unserialize it and return it out to the caller. If we are\n        // unable to decrypt this value we will throw out an exception message.\n        $decrypted = \\openssl_decrypt(\n            $payload['value'], $this->cipher, $this->key, 0, $iv\n        );\n\n        if ($decrypted === false) {\n            throw new DecryptException('Could not decrypt the data.');\n        }\n\n        return $unserialize ? unserialize($decrypted) : $decrypted;\n    }\n\n    /**\n     * Decrypt the given string without unserialization.\n     *\n     * @param  string  $payload\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n     */\n    public function decryptString($payload)\n    {\n        return $this->decrypt($payload, false);\n    }\n\n    /**\n     * Create a MAC for the given value.\n     *\n     * @param  string  $iv\n     * @param  mixed  $value\n     * @return string\n     */\n    protected function hash($iv, $value)\n    {\n        return hash_hmac('sha256', $iv.$value, $this->key);\n    }\n\n    /**\n     * Get the JSON array from the given payload.\n     *\n     * @param  string  $payload\n     * @return array\n     *\n     * @throws \\Illuminate\\Contracts\\Encryption\\DecryptException\n     */\n    protected function getJsonPayload($payload)\n    {\n        $payload = json_decode(base64_decode($payload), true);\n\n        // If the payload is not valid JSON or does not have the proper keys set we will\n        // assume it is invalid and bail out of the routine since we will not be able\n        // to decrypt the given value. We'll also check the MAC for this encryption.\n        if (! $this->validPayload($payload)) {\n            throw new DecryptException('The payload is invalid.');\n        }\n\n        if (! $this->validMac($payload)) {\n            throw new DecryptException('The MAC is invalid.');\n        }\n\n        return $payload;\n    }\n\n    /**\n     * Verify that the encryption payload is valid.\n     *\n     * @param  mixed  $payload\n     * @return bool\n     */\n    protected function validPayload($payload)\n    {\n        return is_array($payload) && isset($payload['iv'], $payload['value'], $payload['mac']) &&\n               strlen(base64_decode($payload['iv'], true)) === openssl_cipher_iv_length($this->cipher);\n    }\n\n    /**\n     * Determine if the MAC for the given payload is valid.\n     *\n     * @param  array  $payload\n     * @return bool\n     */\n    protected function validMac(array $payload)\n    {\n        $calculated = $this->calculateMac($payload, $bytes = random_bytes(16));\n\n        return hash_equals(\n            hash_hmac('sha256', $payload['mac'], $bytes, true), $calculated\n        );\n    }\n\n    /**\n     * Calculate the hash of the given payload.\n     *\n     * @param  array  $payload\n     * @param  string  $bytes\n     * @return string\n     */\n    protected function calculateMac($payload, $bytes)\n    {\n        return hash_hmac(\n            'sha256', $this->hash($payload['iv'], $payload['value']), $bytes, true\n        );\n    }\n\n    /**\n     * Get the encryption key.\n     *\n     * @return string\n     */\n    public function getKey()\n    {\n        return $this->key;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Encryption;\n\nuse RuntimeException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\ServiceProvider;\n\nclass EncryptionServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('encrypter', function ($app) {\n            $config = $app->make('config')->get('app');\n\n            // If the key starts with \"base64:\", we will need to decode the key before handing\n            // it off to the encrypter. Keys may be base-64 encoded for presentation and we\n            // want to make sure to convert them back to the raw bytes before encrypting.\n            if (Str::startsWith($key = $this->key($config), 'base64:')) {\n                $key = base64_decode(substr($key, 7));\n            }\n\n            return new Encrypter($key, $config['cipher']);\n        });\n    }\n\n    /**\n     * Extract the encryption key from the given configuration.\n     *\n     * @param  array  $config\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected function key(array $config)\n    {\n        return tap($config['key'], function ($key) {\n            if (empty($key)) {\n                throw new RuntimeException(\n                    'No application encryption key has been specified.'\n                );\n            }\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Encryption/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Encryption/composer.json",
    "content": "{\n    \"name\": \"illuminate/encryption\",\n    \"description\": \"The Illuminate Encryption package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"ext-mbstring\": \"*\",\n        \"ext-openssl\": \"*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Encryption\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php",
    "content": "<?php\n\nnamespace Illuminate\\Events;\n\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Queue\\Job;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass CallQueuedListener implements ShouldQueue\n{\n    use InteractsWithQueue;\n\n    /**\n     * The listener class name.\n     *\n     * @var string\n     */\n    public $class;\n\n    /**\n     * The listener method.\n     *\n     * @var string\n     */\n    public $method;\n\n    /**\n     * The data to be passed to the listener.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * The number of times the job may be attempted.\n     *\n     * @var int\n     */\n    public $tries;\n\n    /**\n     * The timestamp indicating when the job should timeout.\n     *\n     * @var int\n     */\n    public $timeoutAt;\n\n    /**\n     * The number of seconds the job can run before timing out.\n     *\n     * @var int\n     */\n    public $timeout;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  string  $class\n     * @param  string  $method\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($class, $method, $data)\n    {\n        $this->data = $data;\n        $this->class = $class;\n        $this->method = $method;\n    }\n\n    /**\n     * Handle the queued job.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @return void\n     */\n    public function handle(Container $container)\n    {\n        $this->prepareData();\n\n        $handler = $this->setJobInstanceIfNecessary(\n            $this->job, $container->make($this->class)\n        );\n\n        call_user_func_array(\n            [$handler, $this->method], $this->data\n        );\n    }\n\n    /**\n     * Set the job instance of the given class if necessary.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  mixed  $instance\n     * @return mixed\n     */\n    protected function setJobInstanceIfNecessary(Job $job, $instance)\n    {\n        if (in_array(InteractsWithQueue::class, class_uses_recursive($instance))) {\n            $instance->setJob($job);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Call the failed method on the job instance.\n     *\n     * The event instance and the exception will be passed.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function failed($e)\n    {\n        $this->prepareData();\n\n        $handler = Container::getInstance()->make($this->class);\n\n        $parameters = array_merge($this->data, [$e]);\n\n        if (method_exists($handler, 'failed')) {\n            call_user_func_array([$handler, 'failed'], $parameters);\n        }\n    }\n\n    /**\n     * Unserialize the data if needed.\n     *\n     * @return void\n     */\n    protected function prepareData()\n    {\n        if (is_string($this->data)) {\n            $this->data = unserialize($this->data);\n        }\n    }\n\n    /**\n     * Get the display name for the queued job.\n     *\n     * @return string\n     */\n    public function displayName()\n    {\n        return $this->class;\n    }\n\n    /**\n     * Prepare the instance for cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->data = array_map(function ($data) {\n            return is_object($data) ? clone $data : $data;\n        }, $this->data);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Events;\n\nuse Exception;\nuse ReflectionClass;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast;\nuse Illuminate\\Contracts\\Events\\Dispatcher as DispatcherContract;\nuse Illuminate\\Contracts\\Broadcasting\\Factory as BroadcastFactory;\nuse Illuminate\\Contracts\\Container\\Container as ContainerContract;\n\nclass Dispatcher implements DispatcherContract\n{\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The registered event listeners.\n     *\n     * @var array\n     */\n    protected $listeners = [];\n\n    /**\n     * The wildcard listeners.\n     *\n     * @var array\n     */\n    protected $wildcards = [];\n\n    /**\n     * The cached wildcard listeners.\n     *\n     * @var array\n     */\n    protected $wildcardsCache = [];\n\n    /**\n     * The queue resolver instance.\n     *\n     * @var callable\n     */\n    protected $queueResolver;\n\n    /**\n     * Create a new event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(ContainerContract $container = null)\n    {\n        $this->container = $container ?: new Container;\n    }\n\n    /**\n     * Register an event listener with the dispatcher.\n     *\n     * @param  string|array  $events\n     * @param  mixed  $listener\n     * @return void\n     */\n    public function listen($events, $listener)\n    {\n        foreach ((array) $events as $event) {\n            if (Str::contains($event, '*')) {\n                $this->setupWildcardListen($event, $listener);\n            } else {\n                $this->listeners[$event][] = $this->makeListener($listener);\n            }\n        }\n    }\n\n    /**\n     * Setup a wildcard listener callback.\n     *\n     * @param  string  $event\n     * @param  mixed  $listener\n     * @return void\n     */\n    protected function setupWildcardListen($event, $listener)\n    {\n        $this->wildcards[$event][] = $this->makeListener($listener, true);\n\n        $this->wildcardsCache = [];\n    }\n\n    /**\n     * Determine if a given event has listeners.\n     *\n     * @param  string  $eventName\n     * @return bool\n     */\n    public function hasListeners($eventName)\n    {\n        return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]);\n    }\n\n    /**\n     * Register an event and payload to be fired later.\n     *\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function push($event, $payload = [])\n    {\n        $this->listen($event.'_pushed', function () use ($event, $payload) {\n            $this->dispatch($event, $payload);\n        });\n    }\n\n    /**\n     * Flush a set of pushed events.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function flush($event)\n    {\n        $this->dispatch($event.'_pushed');\n    }\n\n    /**\n     * Register an event subscriber with the dispatcher.\n     *\n     * @param  object|string  $subscriber\n     * @return void\n     */\n    public function subscribe($subscriber)\n    {\n        $subscriber = $this->resolveSubscriber($subscriber);\n\n        $subscriber->subscribe($this);\n    }\n\n    /**\n     * Resolve the subscriber instance.\n     *\n     * @param  object|string  $subscriber\n     * @return mixed\n     */\n    protected function resolveSubscriber($subscriber)\n    {\n        if (is_string($subscriber)) {\n            return $this->container->make($subscriber);\n        }\n\n        return $subscriber;\n    }\n\n    /**\n     * Fire an event until the first non-null response is returned.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @return array|null\n     */\n    public function until($event, $payload = [])\n    {\n        return $this->dispatch($event, $payload, true);\n    }\n\n    /**\n     * Fire an event and call the listeners.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @param  bool  $halt\n     * @return array|null\n     */\n    public function dispatch($event, $payload = [], $halt = false)\n    {\n        // When the given \"event\" is actually an object we will assume it is an event\n        // object and use the class as the event name and this event itself as the\n        // payload to the handler, which makes object based events quite simple.\n        [$event, $payload] = $this->parseEventAndPayload(\n            $event, $payload\n        );\n\n        if ($this->shouldBroadcast($payload)) {\n            $this->broadcastEvent($payload[0]);\n        }\n\n        $responses = [];\n\n        foreach ($this->getListeners($event) as $listener) {\n            $response = $listener($event, $payload);\n\n            // If a response is returned from the listener and event halting is enabled\n            // we will just return this response, and not call the rest of the event\n            // listeners. Otherwise we will add the response on the response list.\n            if ($halt && ! is_null($response)) {\n                return $response;\n            }\n\n            // If a boolean false is returned from a listener, we will stop propagating\n            // the event to any further listeners down in the chain, else we keep on\n            // looping through the listeners and firing every one in our sequence.\n            if ($response === false) {\n                break;\n            }\n\n            $responses[] = $response;\n        }\n\n        return $halt ? null : $responses;\n    }\n\n    /**\n     * Parse the given event and payload and prepare them for dispatching.\n     *\n     * @param  mixed  $event\n     * @param  mixed  $payload\n     * @return array\n     */\n    protected function parseEventAndPayload($event, $payload)\n    {\n        if (is_object($event)) {\n            [$payload, $event] = [[$event], get_class($event)];\n        }\n\n        return [$event, Arr::wrap($payload)];\n    }\n\n    /**\n     * Determine if the payload has a broadcastable event.\n     *\n     * @param  array  $payload\n     * @return bool\n     */\n    protected function shouldBroadcast(array $payload)\n    {\n        return isset($payload[0]) &&\n               $payload[0] instanceof ShouldBroadcast &&\n               $this->broadcastWhen($payload[0]);\n    }\n\n    /**\n     * Check if event should be broadcasted by condition.\n     *\n     * @param  mixed  $event\n     * @return bool\n     */\n    protected function broadcastWhen($event)\n    {\n        return method_exists($event, 'broadcastWhen')\n                ? $event->broadcastWhen() : true;\n    }\n\n    /**\n     * Broadcast the given event class.\n     *\n     * @param  \\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast  $event\n     * @return void\n     */\n    protected function broadcastEvent($event)\n    {\n        $this->container->make(BroadcastFactory::class)->queue($event);\n    }\n\n    /**\n     * Get all of the listeners for a given event name.\n     *\n     * @param  string  $eventName\n     * @return array\n     */\n    public function getListeners($eventName)\n    {\n        $listeners = $this->listeners[$eventName] ?? [];\n\n        $listeners = array_merge(\n            $listeners,\n            $this->wildcardsCache[$eventName] ?? $this->getWildcardListeners($eventName)\n        );\n\n        return class_exists($eventName, false)\n                    ? $this->addInterfaceListeners($eventName, $listeners)\n                    : $listeners;\n    }\n\n    /**\n     * Get the wildcard listeners for the event.\n     *\n     * @param  string  $eventName\n     * @return array\n     */\n    protected function getWildcardListeners($eventName)\n    {\n        $wildcards = [];\n\n        foreach ($this->wildcards as $key => $listeners) {\n            if (Str::is($key, $eventName)) {\n                $wildcards = array_merge($wildcards, $listeners);\n            }\n        }\n\n        return $this->wildcardsCache[$eventName] = $wildcards;\n    }\n\n    /**\n     * Add the listeners for the event's interfaces to the given array.\n     *\n     * @param  string  $eventName\n     * @param  array  $listeners\n     * @return array\n     */\n    protected function addInterfaceListeners($eventName, array $listeners = [])\n    {\n        foreach (class_implements($eventName) as $interface) {\n            if (isset($this->listeners[$interface])) {\n                foreach ($this->listeners[$interface] as $names) {\n                    $listeners = array_merge($listeners, (array) $names);\n                }\n            }\n        }\n\n        return $listeners;\n    }\n\n    /**\n     * Register an event listener with the dispatcher.\n     *\n     * @param  \\Closure|string  $listener\n     * @param  bool  $wildcard\n     * @return \\Closure\n     */\n    public function makeListener($listener, $wildcard = false)\n    {\n        if (is_string($listener)) {\n            return $this->createClassListener($listener, $wildcard);\n        }\n\n        return function ($event, $payload) use ($listener, $wildcard) {\n            if ($wildcard) {\n                return $listener($event, $payload);\n            }\n\n            return $listener(...array_values($payload));\n        };\n    }\n\n    /**\n     * Create a class based listener using the IoC container.\n     *\n     * @param  string  $listener\n     * @param  bool  $wildcard\n     * @return \\Closure\n     */\n    public function createClassListener($listener, $wildcard = false)\n    {\n        return function ($event, $payload) use ($listener, $wildcard) {\n            if ($wildcard) {\n                return call_user_func($this->createClassCallable($listener), $event, $payload);\n            }\n\n            return call_user_func_array(\n                $this->createClassCallable($listener), $payload\n            );\n        };\n    }\n\n    /**\n     * Create the class based event callable.\n     *\n     * @param  string  $listener\n     * @return callable\n     */\n    protected function createClassCallable($listener)\n    {\n        [$class, $method] = $this->parseClassCallable($listener);\n\n        if ($this->handlerShouldBeQueued($class)) {\n            return $this->createQueuedHandlerCallable($class, $method);\n        }\n\n        return [$this->container->make($class), $method];\n    }\n\n    /**\n     * Parse the class listener into class and method.\n     *\n     * @param  string  $listener\n     * @return array\n     */\n    protected function parseClassCallable($listener)\n    {\n        return Str::parseCallback($listener, 'handle');\n    }\n\n    /**\n     * Determine if the event handler class should be queued.\n     *\n     * @param  string  $class\n     * @return bool\n     */\n    protected function handlerShouldBeQueued($class)\n    {\n        try {\n            return (new ReflectionClass($class))->implementsInterface(\n                ShouldQueue::class\n            );\n        } catch (Exception $e) {\n            return false;\n        }\n    }\n\n    /**\n     * Create a callable for putting an event handler on the queue.\n     *\n     * @param  string  $class\n     * @param  string  $method\n     * @return \\Closure\n     */\n    protected function createQueuedHandlerCallable($class, $method)\n    {\n        return function () use ($class, $method) {\n            $arguments = array_map(function ($a) {\n                return is_object($a) ? clone $a : $a;\n            }, func_get_args());\n\n            if ($this->handlerWantsToBeQueued($class, $arguments)) {\n                $this->queueHandler($class, $method, $arguments);\n            }\n        };\n    }\n\n    /**\n     * Determine if the event handler wants to be queued.\n     *\n     * @param  string  $class\n     * @param  array  $arguments\n     * @return bool\n     */\n    protected function handlerWantsToBeQueued($class, $arguments)\n    {\n        if (method_exists($class, 'shouldQueue')) {\n            return $this->container->make($class)->shouldQueue($arguments[0]);\n        }\n\n        return true;\n    }\n\n    /**\n     * Queue the handler class.\n     *\n     * @param  string  $class\n     * @param  string  $method\n     * @param  array  $arguments\n     * @return void\n     */\n    protected function queueHandler($class, $method, $arguments)\n    {\n        [$listener, $job] = $this->createListenerAndJob($class, $method, $arguments);\n\n        $connection = $this->resolveQueue()->connection(\n            $listener->connection ?? null\n        );\n\n        $queue = $listener->queue ?? null;\n\n        isset($listener->delay)\n                    ? $connection->laterOn($queue, $listener->delay, $job)\n                    : $connection->pushOn($queue, $job);\n    }\n\n    /**\n     * Create the listener and job for a queued listener.\n     *\n     * @param  string  $class\n     * @param  string  $method\n     * @param  array  $arguments\n     * @return array\n     */\n    protected function createListenerAndJob($class, $method, $arguments)\n    {\n        $listener = (new ReflectionClass($class))->newInstanceWithoutConstructor();\n\n        return [$listener, $this->propagateListenerOptions(\n            $listener, new CallQueuedListener($class, $method, $arguments)\n        )];\n    }\n\n    /**\n     * Propagate listener options to the job.\n     *\n     * @param  mixed  $listener\n     * @param  mixed  $job\n     * @return mixed\n     */\n    protected function propagateListenerOptions($listener, $job)\n    {\n        return tap($job, function ($job) use ($listener) {\n            $job->tries = $listener->tries ?? null;\n            $job->timeout = $listener->timeout ?? null;\n            $job->timeoutAt = method_exists($listener, 'retryUntil')\n                                ? $listener->retryUntil() : null;\n        });\n    }\n\n    /**\n     * Remove a set of listeners from the dispatcher.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function forget($event)\n    {\n        if (Str::contains($event, '*')) {\n            unset($this->wildcards[$event]);\n        } else {\n            unset($this->listeners[$event]);\n        }\n    }\n\n    /**\n     * Forget all of the pushed listeners.\n     *\n     * @return void\n     */\n    public function forgetPushed()\n    {\n        foreach ($this->listeners as $key => $value) {\n            if (Str::endsWith($key, '_pushed')) {\n                $this->forget($key);\n            }\n        }\n    }\n\n    /**\n     * Get the queue implementation from the resolver.\n     *\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    protected function resolveQueue()\n    {\n        return call_user_func($this->queueResolver);\n    }\n\n    /**\n     * Set the queue resolver implementation.\n     *\n     * @param  callable  $resolver\n     * @return $this\n     */\n    public function setQueueResolver(callable $resolver)\n    {\n        $this->queueResolver = $resolver;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Events;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Queue\\Factory as QueueFactoryContract;\n\nclass EventServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('events', function ($app) {\n            return (new Dispatcher($app))->setQueueResolver(function () use ($app) {\n                return $app->make(QueueFactoryContract::class);\n            });\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Events/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Events/composer.json",
    "content": "{\n    \"name\": \"illuminate/events\",\n    \"description\": \"The Illuminate Events package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Events\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php",
    "content": "<?php\n\nnamespace Illuminate\\Filesystem;\n\nuse Illuminate\\Contracts\\Cache\\Repository;\nuse League\\Flysystem\\Cached\\Storage\\AbstractCache;\n\nclass Cache extends AbstractCache\n{\n    /**\n     * The cache repository implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    protected $repository;\n\n    /**\n     * The cache key.\n     *\n     * @var string\n     */\n    protected $key;\n\n    /**\n     * The cache expiration time in seconds.\n     *\n     * @var int|null\n     */\n    protected $expire;\n\n    /**\n     * Create a new cache instance.\n     *\n     * @param \\Illuminate\\Contracts\\Cache\\Repository  $repository\n     * @param string  $key\n     * @param int|null  $expire\n     */\n    public function __construct(Repository $repository, $key = 'flysystem', $expire = null)\n    {\n        $this->key = $key;\n        $this->expire = $expire;\n        $this->repository = $repository;\n    }\n\n    /**\n     * Load the cache.\n     *\n     * @return void\n     */\n    public function load()\n    {\n        $contents = $this->repository->get($this->key);\n\n        if (! is_null($contents)) {\n            $this->setFromStorage($contents);\n        }\n    }\n\n    /**\n     * Persist the cache.\n     *\n     * @return void\n     */\n    public function save()\n    {\n        $contents = $this->getForStorage();\n\n        $this->repository->put($this->key, $contents, $this->expire);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php",
    "content": "<?php\n\nnamespace Illuminate\\Filesystem;\n\nuse ErrorException;\nuse FilesystemIterator;\nuse Symfony\\Component\\Finder\\Finder;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Filesystem\\FileNotFoundException;\n\nclass Filesystem\n{\n    use Macroable;\n\n    /**\n     * Determine if a file or directory exists.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function exists($path)\n    {\n        return file_exists($path);\n    }\n\n    /**\n     * Get the contents of a file.\n     *\n     * @param  string  $path\n     * @param  bool  $lock\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function get($path, $lock = false)\n    {\n        if ($this->isFile($path)) {\n            return $lock ? $this->sharedGet($path) : file_get_contents($path);\n        }\n\n        throw new FileNotFoundException(\"File does not exist at path {$path}\");\n    }\n\n    /**\n     * Get contents of a file with shared access.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function sharedGet($path)\n    {\n        $contents = '';\n\n        $handle = fopen($path, 'rb');\n\n        if ($handle) {\n            try {\n                if (flock($handle, LOCK_SH)) {\n                    clearstatcache(true, $path);\n\n                    $contents = fread($handle, $this->size($path) ?: 1);\n\n                    flock($handle, LOCK_UN);\n                }\n            } finally {\n                fclose($handle);\n            }\n        }\n\n        return $contents;\n    }\n\n    /**\n     * Get the returned value of a file.\n     *\n     * @param  string  $path\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function getRequire($path)\n    {\n        if ($this->isFile($path)) {\n            return require $path;\n        }\n\n        throw new FileNotFoundException(\"File does not exist at path {$path}\");\n    }\n\n    /**\n     * Require the given file once.\n     *\n     * @param  string  $file\n     * @return mixed\n     */\n    public function requireOnce($file)\n    {\n        require_once $file;\n    }\n\n    /**\n     * Get the MD5 hash of the file at the given path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function hash($path)\n    {\n        return md5_file($path);\n    }\n\n    /**\n     * Write the contents of a file.\n     *\n     * @param  string  $path\n     * @param  string  $contents\n     * @param  bool  $lock\n     * @return int|bool\n     */\n    public function put($path, $contents, $lock = false)\n    {\n        return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);\n    }\n\n    /**\n     * Write the contents of a file, replacing it atomically if it already exists.\n     *\n     * @param  string  $path\n     * @param  string  $content\n     * @return void\n     */\n    public function replace($path, $content)\n    {\n        // If the path already exists and is a symlink, get the real path...\n        clearstatcache(true, $path);\n\n        $path = realpath($path) ?: $path;\n\n        $tempPath = tempnam(dirname($path), basename($path));\n\n        // Fix permissions of tempPath because `tempnam()` creates it with permissions set to 0600...\n        chmod($tempPath, 0777 - umask());\n\n        file_put_contents($tempPath, $content);\n\n        rename($tempPath, $path);\n    }\n\n    /**\n     * Prepend to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @return int\n     */\n    public function prepend($path, $data)\n    {\n        if ($this->exists($path)) {\n            return $this->put($path, $data.$this->get($path));\n        }\n\n        return $this->put($path, $data);\n    }\n\n    /**\n     * Append to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @return int\n     */\n    public function append($path, $data)\n    {\n        return file_put_contents($path, $data, FILE_APPEND);\n    }\n\n    /**\n     * Get or set UNIX mode of a file or directory.\n     *\n     * @param  string  $path\n     * @param  int|null  $mode\n     * @return mixed\n     */\n    public function chmod($path, $mode = null)\n    {\n        if ($mode) {\n            return chmod($path, $mode);\n        }\n\n        return substr(sprintf('%o', fileperms($path)), -4);\n    }\n\n    /**\n     * Delete the file at a given path.\n     *\n     * @param  string|array  $paths\n     * @return bool\n     */\n    public function delete($paths)\n    {\n        $paths = is_array($paths) ? $paths : func_get_args();\n\n        $success = true;\n\n        foreach ($paths as $path) {\n            try {\n                if (! @unlink($path)) {\n                    $success = false;\n                }\n            } catch (ErrorException $e) {\n                $success = false;\n            }\n        }\n\n        return $success;\n    }\n\n    /**\n     * Move a file to a new location.\n     *\n     * @param  string  $path\n     * @param  string  $target\n     * @return bool\n     */\n    public function move($path, $target)\n    {\n        return rename($path, $target);\n    }\n\n    /**\n     * Copy a file to a new location.\n     *\n     * @param  string  $path\n     * @param  string  $target\n     * @return bool\n     */\n    public function copy($path, $target)\n    {\n        return copy($path, $target);\n    }\n\n    /**\n     * Create a hard link to the target file or directory.\n     *\n     * @param  string  $target\n     * @param  string  $link\n     * @return void\n     */\n    public function link($target, $link)\n    {\n        if (! windows_os()) {\n            return symlink($target, $link);\n        }\n\n        $mode = $this->isDirectory($target) ? 'J' : 'H';\n\n        exec(\"mklink /{$mode} \".escapeshellarg($link).' '.escapeshellarg($target));\n    }\n\n    /**\n     * Extract the file name from a file path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function name($path)\n    {\n        return pathinfo($path, PATHINFO_FILENAME);\n    }\n\n    /**\n     * Extract the trailing name component from a file path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function basename($path)\n    {\n        return pathinfo($path, PATHINFO_BASENAME);\n    }\n\n    /**\n     * Extract the parent directory from a file path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function dirname($path)\n    {\n        return pathinfo($path, PATHINFO_DIRNAME);\n    }\n\n    /**\n     * Extract the file extension from a file path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function extension($path)\n    {\n        return pathinfo($path, PATHINFO_EXTENSION);\n    }\n\n    /**\n     * Get the file type of a given file.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function type($path)\n    {\n        return filetype($path);\n    }\n\n    /**\n     * Get the mime-type of a given file.\n     *\n     * @param  string  $path\n     * @return string|false\n     */\n    public function mimeType($path)\n    {\n        return finfo_file(finfo_open(FILEINFO_MIME_TYPE), $path);\n    }\n\n    /**\n     * Get the file size of a given file.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function size($path)\n    {\n        return filesize($path);\n    }\n\n    /**\n     * Get the file's last modification time.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function lastModified($path)\n    {\n        return filemtime($path);\n    }\n\n    /**\n     * Determine if the given path is a directory.\n     *\n     * @param  string  $directory\n     * @return bool\n     */\n    public function isDirectory($directory)\n    {\n        return is_dir($directory);\n    }\n\n    /**\n     * Determine if the given path is readable.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function isReadable($path)\n    {\n        return is_readable($path);\n    }\n\n    /**\n     * Determine if the given path is writable.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function isWritable($path)\n    {\n        return is_writable($path);\n    }\n\n    /**\n     * Determine if the given path is a file.\n     *\n     * @param  string  $file\n     * @return bool\n     */\n    public function isFile($file)\n    {\n        return is_file($file);\n    }\n\n    /**\n     * Find path names matching a given pattern.\n     *\n     * @param  string  $pattern\n     * @param  int     $flags\n     * @return array\n     */\n    public function glob($pattern, $flags = 0)\n    {\n        return glob($pattern, $flags);\n    }\n\n    /**\n     * Get an array of all files in a directory.\n     *\n     * @param  string  $directory\n     * @param  bool  $hidden\n     * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n     */\n    public function files($directory, $hidden = false)\n    {\n        return iterator_to_array(\n            Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->depth(0)->sortByName(),\n            false\n        );\n    }\n\n    /**\n     * Get all of the files from the given directory (recursive).\n     *\n     * @param  string  $directory\n     * @param  bool  $hidden\n     * @return \\Symfony\\Component\\Finder\\SplFileInfo[]\n     */\n    public function allFiles($directory, $hidden = false)\n    {\n        return iterator_to_array(\n            Finder::create()->files()->ignoreDotFiles(! $hidden)->in($directory)->sortByName(),\n            false\n        );\n    }\n\n    /**\n     * Get all of the directories within a given directory.\n     *\n     * @param  string  $directory\n     * @return array\n     */\n    public function directories($directory)\n    {\n        $directories = [];\n\n        foreach (Finder::create()->in($directory)->directories()->depth(0)->sortByName() as $dir) {\n            $directories[] = $dir->getPathname();\n        }\n\n        return $directories;\n    }\n\n    /**\n     * Create a directory.\n     *\n     * @param  string  $path\n     * @param  int     $mode\n     * @param  bool    $recursive\n     * @param  bool    $force\n     * @return bool\n     */\n    public function makeDirectory($path, $mode = 0755, $recursive = false, $force = false)\n    {\n        if ($force) {\n            return @mkdir($path, $mode, $recursive);\n        }\n\n        return mkdir($path, $mode, $recursive);\n    }\n\n    /**\n     * Move a directory.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @param  bool  $overwrite\n     * @return bool\n     */\n    public function moveDirectory($from, $to, $overwrite = false)\n    {\n        if ($overwrite && $this->isDirectory($to) && ! $this->deleteDirectory($to)) {\n            return false;\n        }\n\n        return @rename($from, $to) === true;\n    }\n\n    /**\n     * Copy a directory from one location to another.\n     *\n     * @param  string  $directory\n     * @param  string  $destination\n     * @param  int|null  $options\n     * @return bool\n     */\n    public function copyDirectory($directory, $destination, $options = null)\n    {\n        if (! $this->isDirectory($directory)) {\n            return false;\n        }\n\n        $options = $options ?: FilesystemIterator::SKIP_DOTS;\n\n        // If the destination directory does not actually exist, we will go ahead and\n        // create it recursively, which just gets the destination prepared to copy\n        // the files over. Once we make the directory we'll proceed the copying.\n        if (! $this->isDirectory($destination)) {\n            $this->makeDirectory($destination, 0777, true);\n        }\n\n        $items = new FilesystemIterator($directory, $options);\n\n        foreach ($items as $item) {\n            // As we spin through items, we will check to see if the current file is actually\n            // a directory or a file. When it is actually a directory we will need to call\n            // back into this function recursively to keep copying these nested folders.\n            $target = $destination.'/'.$item->getBasename();\n\n            if ($item->isDir()) {\n                $path = $item->getPathname();\n\n                if (! $this->copyDirectory($path, $target, $options)) {\n                    return false;\n                }\n            }\n\n            // If the current items is just a regular file, we will just copy this to the new\n            // location and keep looping. If for some reason the copy fails we'll bail out\n            // and return false, so the developer is aware that the copy process failed.\n            else {\n                if (! $this->copy($item->getPathname(), $target)) {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Recursively delete a directory.\n     *\n     * The directory itself may be optionally preserved.\n     *\n     * @param  string  $directory\n     * @param  bool    $preserve\n     * @return bool\n     */\n    public function deleteDirectory($directory, $preserve = false)\n    {\n        if (! $this->isDirectory($directory)) {\n            return false;\n        }\n\n        $items = new FilesystemIterator($directory);\n\n        foreach ($items as $item) {\n            // If the item is a directory, we can just recurse into the function and\n            // delete that sub-directory otherwise we'll just delete the file and\n            // keep iterating through each file until the directory is cleaned.\n            if ($item->isDir() && ! $item->isLink()) {\n                $this->deleteDirectory($item->getPathname());\n            }\n\n            // If the item is just a file, we can go ahead and delete it since we're\n            // just looping through and waxing all of the files in this directory\n            // and calling directories recursively, so we delete the real path.\n            else {\n                $this->delete($item->getPathname());\n            }\n        }\n\n        if (! $preserve) {\n            @rmdir($directory);\n        }\n\n        return true;\n    }\n\n    /**\n     * Remove all of the directories within a given directory.\n     *\n     * @param  string  $directory\n     * @return bool\n     */\n    public function deleteDirectories($directory)\n    {\n        $allDirectories = $this->directories($directory);\n\n        if (! empty($allDirectories)) {\n            foreach ($allDirectories as $directoryName) {\n                $this->deleteDirectory($directoryName);\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Empty the specified directory of all files and folders.\n     *\n     * @param  string  $directory\n     * @return bool\n     */\n    public function cleanDirectory($directory)\n    {\n        return $this->deleteDirectory($directory, true);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php",
    "content": "<?php\n\nnamespace Illuminate\\Filesystem;\n\nuse RuntimeException;\nuse Illuminate\\Http\\File;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Http\\UploadedFile;\nuse Illuminate\\Support\\Collection;\nuse League\\Flysystem\\AdapterInterface;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\nuse League\\Flysystem\\FileExistsException;\nuse League\\Flysystem\\FilesystemInterface;\nuse League\\Flysystem\\AwsS3v3\\AwsS3Adapter;\nuse League\\Flysystem\\Cached\\CachedAdapter;\nuse League\\Flysystem\\FileNotFoundException;\nuse League\\Flysystem\\Rackspace\\RackspaceAdapter;\nuse League\\Flysystem\\Adapter\\Local as LocalAdapter;\nuse Symfony\\Component\\HttpFoundation\\StreamedResponse;\nuse Illuminate\\Contracts\\Filesystem\\Cloud as CloudFilesystemContract;\nuse Illuminate\\Contracts\\Filesystem\\Filesystem as FilesystemContract;\nuse Illuminate\\Contracts\\Filesystem\\FileExistsException as ContractFileExistsException;\nuse Illuminate\\Contracts\\Filesystem\\FileNotFoundException as ContractFileNotFoundException;\n\n/**\n * @mixin \\League\\Flysystem\\FilesystemInterface\n */\nclass FilesystemAdapter implements FilesystemContract, CloudFilesystemContract\n{\n    /**\n     * The Flysystem filesystem implementation.\n     *\n     * @var \\League\\Flysystem\\FilesystemInterface\n     */\n    protected $driver;\n\n    /**\n     * Create a new filesystem adapter instance.\n     *\n     * @param  \\League\\Flysystem\\FilesystemInterface  $driver\n     * @return void\n     */\n    public function __construct(FilesystemInterface $driver)\n    {\n        $this->driver = $driver;\n    }\n\n    /**\n     * Assert that the given file exists.\n     *\n     * @param  string|array  $path\n     * @return $this\n     */\n    public function assertExists($path)\n    {\n        $paths = Arr::wrap($path);\n\n        foreach ($paths as $path) {\n            PHPUnit::assertTrue(\n                $this->exists($path), \"Unable to find a file at path [{$path}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given file does not exist.\n     *\n     * @param  string|array  $path\n     * @return $this\n     */\n    public function assertMissing($path)\n    {\n        $paths = Arr::wrap($path);\n\n        foreach ($paths as $path) {\n            PHPUnit::assertFalse(\n                $this->exists($path), \"Found unexpected file at path [{$path}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Determine if a file exists.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function exists($path)\n    {\n        return $this->driver->has($path);\n    }\n\n    /**\n     * Get the full path for the file at the given \"short\" path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function path($path)\n    {\n        return $this->driver->getAdapter()->getPathPrefix().$path;\n    }\n\n    /**\n     * Get the contents of a file.\n     *\n     * @param  string  $path\n     * @return string\n     *\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function get($path)\n    {\n        try {\n            return $this->driver->read($path);\n        } catch (FileNotFoundException $e) {\n            throw new ContractFileNotFoundException($path, $e->getCode(), $e);\n        }\n    }\n\n    /**\n     * Create a streamed response for a given file.\n     *\n     * @param  string  $path\n     * @param  string|null  $name\n     * @param  array|null  $headers\n     * @param  string|null  $disposition\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function response($path, $name = null, array $headers = [], $disposition = 'inline')\n    {\n        $response = new StreamedResponse;\n\n        $filename = $name ?? basename($path);\n\n        $disposition = $response->headers->makeDisposition(\n            $disposition, $filename, $this->fallbackName($filename)\n        );\n\n        $response->headers->replace($headers + [\n            'Content-Type' => $this->mimeType($path),\n            'Content-Length' => $this->size($path),\n            'Content-Disposition' => $disposition,\n        ]);\n\n        $response->setCallback(function () use ($path) {\n            $stream = $this->readStream($path);\n            fpassthru($stream);\n            fclose($stream);\n        });\n\n        return $response;\n    }\n\n    /**\n     * Create a streamed download response for a given file.\n     *\n     * @param  string  $path\n     * @param  string|null  $name\n     * @param  array|null  $headers\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function download($path, $name = null, array $headers = [])\n    {\n        return $this->response($path, $name, $headers, 'attachment');\n    }\n\n    /**\n     * Convert the string to ASCII characters that are equivalent to the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function fallbackName($name)\n    {\n        return str_replace('%', '', Str::ascii($name));\n    }\n\n    /**\n     * Write the contents of a file.\n     *\n     * @param  string  $path\n     * @param  string|resource  $contents\n     * @param  mixed  $options\n     * @return bool\n     */\n    public function put($path, $contents, $options = [])\n    {\n        $options = is_string($options)\n                     ? ['visibility' => $options]\n                     : (array) $options;\n\n        // If the given contents is actually a file or uploaded file instance than we will\n        // automatically store the file using a stream. This provides a convenient path\n        // for the developer to store streams without managing them manually in code.\n        if ($contents instanceof File ||\n            $contents instanceof UploadedFile) {\n            return $this->putFile($path, $contents, $options);\n        }\n\n        return is_resource($contents)\n                ? $this->driver->putStream($path, $contents, $options)\n                : $this->driver->put($path, $contents, $options);\n    }\n\n    /**\n     * Store the uploaded file on the disk.\n     *\n     * @param  string  $path\n     * @param  \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile  $file\n     * @param  array  $options\n     * @return string|false\n     */\n    public function putFile($path, $file, $options = [])\n    {\n        return $this->putFileAs($path, $file, $file->hashName(), $options);\n    }\n\n    /**\n     * Store the uploaded file on the disk with a given name.\n     *\n     * @param  string  $path\n     * @param  \\Illuminate\\Http\\File|\\Illuminate\\Http\\UploadedFile  $file\n     * @param  string  $name\n     * @param  array  $options\n     * @return string|false\n     */\n    public function putFileAs($path, $file, $name, $options = [])\n    {\n        $stream = fopen($file->getRealPath(), 'r');\n\n        // Next, we will format the path of the file and store the file using a stream since\n        // they provide better performance than alternatives. Once we write the file this\n        // stream will get closed automatically by us so the developer doesn't have to.\n        $result = $this->put(\n            $path = trim($path.'/'.$name, '/'), $stream, $options\n        );\n\n        if (is_resource($stream)) {\n            fclose($stream);\n        }\n\n        return $result ? $path : false;\n    }\n\n    /**\n     * Get the visibility for the given path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function getVisibility($path)\n    {\n        if ($this->driver->getVisibility($path) == AdapterInterface::VISIBILITY_PUBLIC) {\n            return FilesystemContract::VISIBILITY_PUBLIC;\n        }\n\n        return FilesystemContract::VISIBILITY_PRIVATE;\n    }\n\n    /**\n     * Set the visibility for the given path.\n     *\n     * @param  string  $path\n     * @param  string  $visibility\n     * @return bool\n     */\n    public function setVisibility($path, $visibility)\n    {\n        return $this->driver->setVisibility($path, $this->parseVisibility($visibility));\n    }\n\n    /**\n     * Prepend to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @param  string  $separator\n     * @return bool\n     */\n    public function prepend($path, $data, $separator = PHP_EOL)\n    {\n        if ($this->exists($path)) {\n            return $this->put($path, $data.$separator.$this->get($path));\n        }\n\n        return $this->put($path, $data);\n    }\n\n    /**\n     * Append to a file.\n     *\n     * @param  string  $path\n     * @param  string  $data\n     * @param  string  $separator\n     * @return bool\n     */\n    public function append($path, $data, $separator = PHP_EOL)\n    {\n        if ($this->exists($path)) {\n            return $this->put($path, $this->get($path).$separator.$data);\n        }\n\n        return $this->put($path, $data);\n    }\n\n    /**\n     * Delete the file at a given path.\n     *\n     * @param  string|array  $paths\n     * @return bool\n     */\n    public function delete($paths)\n    {\n        $paths = is_array($paths) ? $paths : func_get_args();\n\n        $success = true;\n\n        foreach ($paths as $path) {\n            try {\n                if (! $this->driver->delete($path)) {\n                    $success = false;\n                }\n            } catch (FileNotFoundException $e) {\n                $success = false;\n            }\n        }\n\n        return $success;\n    }\n\n    /**\n     * Copy a file to a new location.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return bool\n     */\n    public function copy($from, $to)\n    {\n        return $this->driver->copy($from, $to);\n    }\n\n    /**\n     * Move a file to a new location.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return bool\n     */\n    public function move($from, $to)\n    {\n        return $this->driver->rename($from, $to);\n    }\n\n    /**\n     * Get the file size of a given file.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function size($path)\n    {\n        return $this->driver->getSize($path);\n    }\n\n    /**\n     * Get the mime-type of a given file.\n     *\n     * @param  string  $path\n     * @return string|false\n     */\n    public function mimeType($path)\n    {\n        return $this->driver->getMimetype($path);\n    }\n\n    /**\n     * Get the file's last modification time.\n     *\n     * @param  string  $path\n     * @return int\n     */\n    public function lastModified($path)\n    {\n        return $this->driver->getTimestamp($path);\n    }\n\n    /**\n     * Get the URL for the file at the given path.\n     *\n     * @param  string  $path\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function url($path)\n    {\n        $adapter = $this->driver->getAdapter();\n\n        if ($adapter instanceof CachedAdapter) {\n            $adapter = $adapter->getAdapter();\n        }\n\n        if (method_exists($adapter, 'getUrl')) {\n            return $adapter->getUrl($path);\n        } elseif (method_exists($this->driver, 'getUrl')) {\n            return $this->driver->getUrl($path);\n        } elseif ($adapter instanceof AwsS3Adapter) {\n            return $this->getAwsUrl($adapter, $path);\n        } elseif ($adapter instanceof RackspaceAdapter) {\n            return $this->getRackspaceUrl($adapter, $path);\n        } elseif ($adapter instanceof LocalAdapter) {\n            return $this->getLocalUrl($path);\n        } else {\n            throw new RuntimeException('This driver does not support retrieving URLs.');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readStream($path)\n    {\n        try {\n            return $this->driver->readStream($path) ?: null;\n        } catch (FileNotFoundException $e) {\n            throw new ContractFileNotFoundException($e->getMessage(), $e->getCode(), $e);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeStream($path, $resource, array $options = [])\n    {\n        try {\n            return $this->driver->writeStream($path, $resource, $options);\n        } catch (FileExistsException $e) {\n            throw new ContractFileExistsException($e->getMessage(), $e->getCode(), $e);\n        }\n    }\n\n    /**\n     * Get the URL for the file at the given path.\n     *\n     * @param  \\League\\Flysystem\\AwsS3v3\\AwsS3Adapter  $adapter\n     * @param  string  $path\n     * @return string\n     */\n    protected function getAwsUrl($adapter, $path)\n    {\n        // If an explicit base URL has been set on the disk configuration then we will use\n        // it as the base URL instead of the default path. This allows the developer to\n        // have full control over the base path for this filesystem's generated URLs.\n        if (! is_null($url = $this->driver->getConfig()->get('url'))) {\n            return $this->concatPathToUrl($url, $adapter->getPathPrefix().$path);\n        }\n\n        return $adapter->getClient()->getObjectUrl(\n            $adapter->getBucket(), $adapter->getPathPrefix().$path\n        );\n    }\n\n    /**\n     * Get the URL for the file at the given path.\n     *\n     * @param  \\League\\Flysystem\\Rackspace\\RackspaceAdapter $adapter\n     * @param  string $path\n     * @return string\n     */\n    protected function getRackspaceUrl($adapter, $path)\n    {\n        return (string) $adapter->getContainer()->getObject($path)->getPublicUrl();\n    }\n\n    /**\n     * Get the URL for the file at the given path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    protected function getLocalUrl($path)\n    {\n        $config = $this->driver->getConfig();\n\n        // If an explicit base URL has been set on the disk configuration then we will use\n        // it as the base URL instead of the default path. This allows the developer to\n        // have full control over the base path for this filesystem's generated URLs.\n        if ($config->has('url')) {\n            return $this->concatPathToUrl($config->get('url'), $path);\n        }\n\n        $path = '/storage/'.$path;\n\n        // If the path contains \"storage/public\", it probably means the developer is using\n        // the default disk to generate the path instead of the \"public\" disk like they\n        // are really supposed to use. We will remove the public from this path here.\n        if (Str::contains($path, '/storage/public/')) {\n            return Str::replaceFirst('/public/', '/', $path);\n        }\n\n        return $path;\n    }\n\n    /**\n     * Get a temporary URL for the file at the given path.\n     *\n     * @param  string  $path\n     * @param  \\DateTimeInterface  $expiration\n     * @param  array  $options\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function temporaryUrl($path, $expiration, array $options = [])\n    {\n        $adapter = $this->driver->getAdapter();\n\n        if ($adapter instanceof CachedAdapter) {\n            $adapter = $adapter->getAdapter();\n        }\n\n        if (method_exists($adapter, 'getTemporaryUrl')) {\n            return $adapter->getTemporaryUrl($path, $expiration, $options);\n        } elseif ($adapter instanceof AwsS3Adapter) {\n            return $this->getAwsTemporaryUrl($adapter, $path, $expiration, $options);\n        } elseif ($adapter instanceof RackspaceAdapter) {\n            return $this->getRackspaceTemporaryUrl($adapter, $path, $expiration, $options);\n        } else {\n            throw new RuntimeException('This driver does not support creating temporary URLs.');\n        }\n    }\n\n    /**\n     * Get a temporary URL for the file at the given path.\n     *\n     * @param  \\League\\Flysystem\\AwsS3v3\\AwsS3Adapter  $adapter\n     * @param  string $path\n     * @param  \\DateTimeInterface $expiration\n     * @param  array $options\n     * @return string\n     */\n    public function getAwsTemporaryUrl($adapter, $path, $expiration, $options)\n    {\n        $client = $adapter->getClient();\n\n        $command = $client->getCommand('GetObject', array_merge([\n            'Bucket' => $adapter->getBucket(),\n            'Key' => $adapter->getPathPrefix().$path,\n        ], $options));\n\n        return (string) $client->createPresignedRequest(\n            $command, $expiration\n        )->getUri();\n    }\n\n    /**\n     * Get a temporary URL for the file at the given path.\n     *\n     * @param  \\League\\Flysystem\\Rackspace\\RackspaceAdapter  $adapter\n     * @param  string  $path\n     * @param  \\DateTimeInterface  $expiration\n     * @param  array  $options\n     * @return string\n     */\n    public function getRackspaceTemporaryUrl($adapter, $path, $expiration, $options)\n    {\n        return $adapter->getContainer()->getObject($path)->getTemporaryUrl(\n            Carbon::now()->diffInSeconds($expiration),\n            $options['method'] ?? 'GET',\n            $options['forcePublicUrl'] ?? true\n        );\n    }\n\n    /**\n     * Concatenate a path to a URL.\n     *\n     * @param  string $url\n     * @param  string $path\n     * @return string\n     */\n    protected function concatPathToUrl($url, $path)\n    {\n        return rtrim($url, '/').'/'.ltrim($path, '/');\n    }\n\n    /**\n     * Get an array of all files in a directory.\n     *\n     * @param  string|null  $directory\n     * @param  bool  $recursive\n     * @return array\n     */\n    public function files($directory = null, $recursive = false)\n    {\n        $contents = $this->driver->listContents($directory, $recursive);\n\n        return $this->filterContentsByType($contents, 'file');\n    }\n\n    /**\n     * Get all of the files from the given directory (recursive).\n     *\n     * @param  string|null  $directory\n     * @return array\n     */\n    public function allFiles($directory = null)\n    {\n        return $this->files($directory, true);\n    }\n\n    /**\n     * Get all of the directories within a given directory.\n     *\n     * @param  string|null  $directory\n     * @param  bool  $recursive\n     * @return array\n     */\n    public function directories($directory = null, $recursive = false)\n    {\n        $contents = $this->driver->listContents($directory, $recursive);\n\n        return $this->filterContentsByType($contents, 'dir');\n    }\n\n    /**\n     * Get all (recursive) of the directories within a given directory.\n     *\n     * @param  string|null  $directory\n     * @return array\n     */\n    public function allDirectories($directory = null)\n    {\n        return $this->directories($directory, true);\n    }\n\n    /**\n     * Create a directory.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function makeDirectory($path)\n    {\n        return $this->driver->createDir($path);\n    }\n\n    /**\n     * Recursively delete a directory.\n     *\n     * @param  string  $directory\n     * @return bool\n     */\n    public function deleteDirectory($directory)\n    {\n        return $this->driver->deleteDir($directory);\n    }\n\n    /**\n     * Flush the Flysystem cache.\n     *\n     * @return void\n     */\n    public function flushCache()\n    {\n        $adapter = $this->driver->getAdapter();\n\n        if ($adapter instanceof CachedAdapter) {\n            $adapter->getCache()->flush();\n        }\n    }\n\n    /**\n     * Get the Flysystem driver.\n     *\n     * @return \\League\\Flysystem\\FilesystemInterface\n     */\n    public function getDriver()\n    {\n        return $this->driver;\n    }\n\n    /**\n     * Filter directory contents by type.\n     *\n     * @param  array  $contents\n     * @param  string  $type\n     * @return array\n     */\n    protected function filterContentsByType($contents, $type)\n    {\n        return Collection::make($contents)\n            ->where('type', $type)\n            ->pluck('path')\n            ->values()\n            ->all();\n    }\n\n    /**\n     * Parse the given visibility value.\n     *\n     * @param  string|null  $visibility\n     * @return string|null\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function parseVisibility($visibility)\n    {\n        if (is_null($visibility)) {\n            return;\n        }\n\n        switch ($visibility) {\n            case FilesystemContract::VISIBILITY_PUBLIC:\n                return AdapterInterface::VISIBILITY_PUBLIC;\n            case FilesystemContract::VISIBILITY_PRIVATE:\n                return AdapterInterface::VISIBILITY_PRIVATE;\n        }\n\n        throw new InvalidArgumentException(\"Unknown visibility: {$visibility}\");\n    }\n\n    /**\n     * Pass dynamic methods call onto Flysystem.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, array $parameters)\n    {\n        return call_user_func_array([$this->driver, $method], $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Filesystem;\n\nuse Closure;\nuse Aws\\S3\\S3Client;\nuse OpenCloud\\Rackspace;\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\nuse League\\Flysystem\\AdapterInterface;\nuse League\\Flysystem\\Sftp\\SftpAdapter;\nuse League\\Flysystem\\FilesystemInterface;\nuse League\\Flysystem\\Cached\\CachedAdapter;\nuse League\\Flysystem\\Filesystem as Flysystem;\nuse League\\Flysystem\\Adapter\\Ftp as FtpAdapter;\nuse League\\Flysystem\\Rackspace\\RackspaceAdapter;\nuse League\\Flysystem\\Adapter\\Local as LocalAdapter;\nuse League\\Flysystem\\AwsS3v3\\AwsS3Adapter as S3Adapter;\nuse League\\Flysystem\\Cached\\Storage\\Memory as MemoryStore;\nuse Illuminate\\Contracts\\Filesystem\\Factory as FactoryContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Filesystem\\Filesystem\n */\nclass FilesystemManager implements FactoryContract\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of resolved filesystem drivers.\n     *\n     * @var array\n     */\n    protected $disks = [];\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * Create a new filesystem manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Get a filesystem instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function drive($name = null)\n    {\n        return $this->disk($name);\n    }\n\n    /**\n     * Get a filesystem instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function disk($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        return $this->disks[$name] = $this->get($name);\n    }\n\n    /**\n     * Get a default cloud filesystem instance.\n     *\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function cloud()\n    {\n        $name = $this->getDefaultCloudDriver();\n\n        return $this->disks[$name] = $this->get($name);\n    }\n\n    /**\n     * Attempt to get the disk from the local cache.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    protected function get($name)\n    {\n        return $this->disks[$name] ?? $this->resolve($name);\n    }\n\n    /**\n     * Resolve the given disk.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($config);\n        }\n\n        $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n        if (method_exists($this, $driverMethod)) {\n            return $this->{$driverMethod}($config);\n        } else {\n            throw new InvalidArgumentException(\"Driver [{$config['driver']}] is not supported.\");\n        }\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    protected function callCustomCreator(array $config)\n    {\n        $driver = $this->customCreators[$config['driver']]($this->app, $config);\n\n        if ($driver instanceof FilesystemInterface) {\n            return $this->adapt($driver);\n        }\n\n        return $driver;\n    }\n\n    /**\n     * Create an instance of the local driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function createLocalDriver(array $config)\n    {\n        $permissions = $config['permissions'] ?? [];\n\n        $links = ($config['links'] ?? null) === 'skip'\n            ? LocalAdapter::SKIP_LINKS\n            : LocalAdapter::DISALLOW_LINKS;\n\n        return $this->adapt($this->createFlysystem(new LocalAdapter(\n            $config['root'], $config['lock'] ?? LOCK_EX, $links, $permissions\n        ), $config));\n    }\n\n    /**\n     * Create an instance of the ftp driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function createFtpDriver(array $config)\n    {\n        return $this->adapt($this->createFlysystem(\n            new FtpAdapter($config), $config\n        ));\n    }\n\n    /**\n     * Create an instance of the sftp driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    public function createSftpDriver(array $config)\n    {\n        return $this->adapt($this->createFlysystem(\n            new SftpAdapter($config), $config\n        ));\n    }\n\n    /**\n     * Create an instance of the Amazon S3 driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n     */\n    public function createS3Driver(array $config)\n    {\n        $s3Config = $this->formatS3Config($config);\n\n        $root = $s3Config['root'] ?? null;\n\n        $options = $config['options'] ?? [];\n\n        return $this->adapt($this->createFlysystem(\n            new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options), $config\n        ));\n    }\n\n    /**\n     * Format the given S3 configuration with the default options.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function formatS3Config(array $config)\n    {\n        $config += ['version' => 'latest'];\n\n        if ($config['key'] && $config['secret']) {\n            $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']);\n        }\n\n        return $config;\n    }\n\n    /**\n     * Create an instance of the Rackspace driver.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Filesystem\\Cloud\n     */\n    public function createRackspaceDriver(array $config)\n    {\n        $client = new Rackspace($config['endpoint'], [\n            'username' => $config['username'], 'apiKey' => $config['key'],\n        ], $config['options'] ?? []);\n\n        $root = $config['root'] ?? null;\n\n        return $this->adapt($this->createFlysystem(\n            new RackspaceAdapter($this->getRackspaceContainer($client, $config), $root), $config\n        ));\n    }\n\n    /**\n     * Get the Rackspace Cloud Files container.\n     *\n     * @param  \\OpenCloud\\Rackspace  $client\n     * @param  array  $config\n     * @return \\OpenCloud\\ObjectStore\\Resource\\Container\n     */\n    protected function getRackspaceContainer(Rackspace $client, array $config)\n    {\n        $urlType = $config['url_type'] ?? null;\n\n        $store = $client->objectStoreService('cloudFiles', $config['region'], $urlType);\n\n        return $store->getContainer($config['container']);\n    }\n\n    /**\n     * Create a Flysystem instance with the given adapter.\n     *\n     * @param  \\League\\Flysystem\\AdapterInterface  $adapter\n     * @param  array  $config\n     * @return \\League\\Flysystem\\FilesystemInterface\n     */\n    protected function createFlysystem(AdapterInterface $adapter, array $config)\n    {\n        $cache = Arr::pull($config, 'cache');\n\n        $config = Arr::only($config, ['visibility', 'disable_asserts', 'url']);\n\n        if ($cache) {\n            $adapter = new CachedAdapter($adapter, $this->createCacheStore($cache));\n        }\n\n        return new Flysystem($adapter, count($config) > 0 ? $config : null);\n    }\n\n    /**\n     * Create a cache store instance.\n     *\n     * @param  mixed  $config\n     * @return \\League\\Flysystem\\Cached\\CacheInterface\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function createCacheStore($config)\n    {\n        if ($config === true) {\n            return new MemoryStore;\n        }\n\n        return new Cache(\n            $this->app['cache']->store($config['store']),\n            $config['prefix'] ?? 'flysystem',\n            $config['expire'] ?? null\n        );\n    }\n\n    /**\n     * Adapt the filesystem implementation.\n     *\n     * @param  \\League\\Flysystem\\FilesystemInterface  $filesystem\n     * @return \\Illuminate\\Contracts\\Filesystem\\Filesystem\n     */\n    protected function adapt(FilesystemInterface $filesystem)\n    {\n        return new FilesystemAdapter($filesystem);\n    }\n\n    /**\n     * Set the given disk instance.\n     *\n     * @param  string  $name\n     * @param  mixed  $disk\n     * @return $this\n     */\n    public function set($name, $disk)\n    {\n        $this->disks[$name] = $disk;\n\n        return $this;\n    }\n\n    /**\n     * Get the filesystem connection configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        return $this->app['config'][\"filesystems.disks.{$name}\"];\n    }\n\n    /**\n     * Get the default driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['filesystems.default'];\n    }\n\n    /**\n     * Get the default cloud driver name.\n     *\n     * @return string\n     */\n    public function getDefaultCloudDriver()\n    {\n        return $this->app['config']['filesystems.cloud'];\n    }\n\n    /**\n     * Unset the given disk instances.\n     *\n     * @param  array|string  $disk\n     * @return $this\n     */\n    public function forgetDisk($disk)\n    {\n        foreach ((array) $disk as $diskName) {\n            unset($this->disks[$diskName]);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->disk()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Filesystem;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass FilesystemServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerNativeFilesystem();\n\n        $this->registerFlysystem();\n    }\n\n    /**\n     * Register the native filesystem implementation.\n     *\n     * @return void\n     */\n    protected function registerNativeFilesystem()\n    {\n        $this->app->singleton('files', function () {\n            return new Filesystem;\n        });\n    }\n\n    /**\n     * Register the driver based filesystem.\n     *\n     * @return void\n     */\n    protected function registerFlysystem()\n    {\n        $this->registerManager();\n\n        $this->app->singleton('filesystem.disk', function () {\n            return $this->app['filesystem']->disk($this->getDefaultDriver());\n        });\n\n        $this->app->singleton('filesystem.cloud', function () {\n            return $this->app['filesystem']->disk($this->getCloudDriver());\n        });\n    }\n\n    /**\n     * Register the filesystem manager.\n     *\n     * @return void\n     */\n    protected function registerManager()\n    {\n        $this->app->singleton('filesystem', function () {\n            return new FilesystemManager($this->app);\n        });\n    }\n\n    /**\n     * Get the default file driver.\n     *\n     * @return string\n     */\n    protected function getDefaultDriver()\n    {\n        return $this->app['config']['filesystems.default'];\n    }\n\n    /**\n     * Get the default cloud based file driver.\n     *\n     * @return string\n     */\n    protected function getCloudDriver()\n    {\n        return $this->app['config']['filesystems.cloud'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Filesystem/composer.json",
    "content": "{\n    \"name\": \"illuminate/filesystem\",\n    \"description\": \"The Illuminate Filesystem package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/finder\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Filesystem\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"league/flysystem\": \"Required to use the Flysystem local and FTP drivers (^1.0).\",\n        \"league/flysystem-aws-s3-v3\": \"Required to use the Flysystem S3 driver (^1.0).\",\n        \"league/flysystem-cached-adapter\": \"Required to use the Flysystem cache (^1.0).\",\n        \"league/flysystem-rackspace\": \"Required to use the Flysystem Rackspace driver (^1.0).\",\n        \"league/flysystem-sftp\": \"Required to use the Flysystem SFTP driver (^1.0).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/AliasLoader.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nclass AliasLoader\n{\n    /**\n     * The array of class aliases.\n     *\n     * @var array\n     */\n    protected $aliases;\n\n    /**\n     * Indicates if a loader has been registered.\n     *\n     * @var bool\n     */\n    protected $registered = false;\n\n    /**\n     * The namespace for all real-time facades.\n     *\n     * @var string\n     */\n    protected static $facadeNamespace = 'Facades\\\\';\n\n    /**\n     * The singleton instance of the loader.\n     *\n     * @var \\Illuminate\\Foundation\\AliasLoader\n     */\n    protected static $instance;\n\n    /**\n     * Create a new AliasLoader instance.\n     *\n     * @param  array  $aliases\n     * @return void\n     */\n    private function __construct($aliases)\n    {\n        $this->aliases = $aliases;\n    }\n\n    /**\n     * Get or create the singleton alias loader instance.\n     *\n     * @param  array  $aliases\n     * @return \\Illuminate\\Foundation\\AliasLoader\n     */\n    public static function getInstance(array $aliases = [])\n    {\n        if (is_null(static::$instance)) {\n            return static::$instance = new static($aliases);\n        }\n\n        $aliases = array_merge(static::$instance->getAliases(), $aliases);\n\n        static::$instance->setAliases($aliases);\n\n        return static::$instance;\n    }\n\n    /**\n     * Load a class alias if it is registered.\n     *\n     * @param  string  $alias\n     * @return bool|null\n     */\n    public function load($alias)\n    {\n        if (static::$facadeNamespace && strpos($alias, static::$facadeNamespace) === 0) {\n            $this->loadFacade($alias);\n\n            return true;\n        }\n\n        if (isset($this->aliases[$alias])) {\n            return class_alias($this->aliases[$alias], $alias);\n        }\n    }\n\n    /**\n     * Load a real-time facade for the given alias.\n     *\n     * @param  string  $alias\n     * @return void\n     */\n    protected function loadFacade($alias)\n    {\n        require $this->ensureFacadeExists($alias);\n    }\n\n    /**\n     * Ensure that the given alias has an existing real-time facade class.\n     *\n     * @param  string  $alias\n     * @return string\n     */\n    protected function ensureFacadeExists($alias)\n    {\n        if (file_exists($path = storage_path('framework/cache/facade-'.sha1($alias).'.php'))) {\n            return $path;\n        }\n\n        file_put_contents($path, $this->formatFacadeStub(\n            $alias, file_get_contents(__DIR__.'/stubs/facade.stub')\n        ));\n\n        return $path;\n    }\n\n    /**\n     * Format the facade stub with the proper namespace and class.\n     *\n     * @param  string  $alias\n     * @param  string  $stub\n     * @return string\n     */\n    protected function formatFacadeStub($alias, $stub)\n    {\n        $replacements = [\n            str_replace('/', '\\\\', dirname(str_replace('\\\\', '/', $alias))),\n            class_basename($alias),\n            substr($alias, strlen(static::$facadeNamespace)),\n        ];\n\n        return str_replace(\n            ['DummyNamespace', 'DummyClass', 'DummyTarget'], $replacements, $stub\n        );\n    }\n\n    /**\n     * Add an alias to the loader.\n     *\n     * @param  string  $class\n     * @param  string  $alias\n     * @return void\n     */\n    public function alias($class, $alias)\n    {\n        $this->aliases[$class] = $alias;\n    }\n\n    /**\n     * Register the loader on the auto-loader stack.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        if (! $this->registered) {\n            $this->prependToLoaderStack();\n\n            $this->registered = true;\n        }\n    }\n\n    /**\n     * Prepend the load method to the auto-loader stack.\n     *\n     * @return void\n     */\n    protected function prependToLoaderStack()\n    {\n        spl_autoload_register([$this, 'load'], true, true);\n    }\n\n    /**\n     * Get the registered aliases.\n     *\n     * @return array\n     */\n    public function getAliases()\n    {\n        return $this->aliases;\n    }\n\n    /**\n     * Set the registered aliases.\n     *\n     * @param  array  $aliases\n     * @return void\n     */\n    public function setAliases(array $aliases)\n    {\n        $this->aliases = $aliases;\n    }\n\n    /**\n     * Indicates if the loader has been registered.\n     *\n     * @return bool\n     */\n    public function isRegistered()\n    {\n        return $this->registered;\n    }\n\n    /**\n     * Set the \"registered\" state of the loader.\n     *\n     * @param  bool  $value\n     * @return void\n     */\n    public function setRegistered($value)\n    {\n        $this->registered = $value;\n    }\n\n    /**\n     * Set the real-time facade namespace.\n     *\n     * @param  string  $namespace\n     * @return void\n     */\n    public static function setFacadeNamespace($namespace)\n    {\n        static::$facadeNamespace = rtrim($namespace, '\\\\').'\\\\';\n    }\n\n    /**\n     * Set the value of the singleton alias loader.\n     *\n     * @param  \\Illuminate\\Foundation\\AliasLoader  $loader\n     * @return void\n     */\n    public static function setInstance($loader)\n    {\n        static::$instance = $loader;\n    }\n\n    /**\n     * Clone method.\n     *\n     * @return void\n     */\n    private function __clone()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Closure;\nuse RuntimeException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Log\\LogServiceProvider;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Events\\EventServiceProvider;\nuse Illuminate\\Routing\\RoutingServiceProvider;\nuse Symfony\\Component\\HttpKernel\\HttpKernelInterface;\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpException;\nuse Illuminate\\Contracts\\Http\\Kernel as HttpKernelContract;\nuse Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables;\nuse Symfony\\Component\\HttpFoundation\\Request as SymfonyRequest;\nuse Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException;\nuse Illuminate\\Contracts\\Foundation\\Application as ApplicationContract;\n\nclass Application extends Container implements ApplicationContract, HttpKernelInterface\n{\n    /**\n     * The Laravel framework version.\n     *\n     * @var string\n     */\n    const VERSION = '5.8.27';\n\n    /**\n     * The base path for the Laravel installation.\n     *\n     * @var string\n     */\n    protected $basePath;\n\n    /**\n     * Indicates if the application has been bootstrapped before.\n     *\n     * @var bool\n     */\n    protected $hasBeenBootstrapped = false;\n\n    /**\n     * Indicates if the application has \"booted\".\n     *\n     * @var bool\n     */\n    protected $booted = false;\n\n    /**\n     * The array of booting callbacks.\n     *\n     * @var callable[]\n     */\n    protected $bootingCallbacks = [];\n\n    /**\n     * The array of booted callbacks.\n     *\n     * @var callable[]\n     */\n    protected $bootedCallbacks = [];\n\n    /**\n     * The array of terminating callbacks.\n     *\n     * @var callable[]\n     */\n    protected $terminatingCallbacks = [];\n\n    /**\n     * All of the registered service providers.\n     *\n     * @var \\Illuminate\\Support\\ServiceProvider[]\n     */\n    protected $serviceProviders = [];\n\n    /**\n     * The names of the loaded service providers.\n     *\n     * @var array\n     */\n    protected $loadedProviders = [];\n\n    /**\n     * The deferred services and their providers.\n     *\n     * @var array\n     */\n    protected $deferredServices = [];\n\n    /**\n     * The custom application path defined by the developer.\n     *\n     * @var string\n     */\n    protected $appPath;\n\n    /**\n     * The custom database path defined by the developer.\n     *\n     * @var string\n     */\n    protected $databasePath;\n\n    /**\n     * The custom storage path defined by the developer.\n     *\n     * @var string\n     */\n    protected $storagePath;\n\n    /**\n     * The custom environment path defined by the developer.\n     *\n     * @var string\n     */\n    protected $environmentPath;\n\n    /**\n     * The environment file to load during bootstrapping.\n     *\n     * @var string\n     */\n    protected $environmentFile = '.env';\n\n    /**\n     * The application namespace.\n     *\n     * @var string\n     */\n    protected $namespace;\n\n    /**\n     * Create a new Illuminate application instance.\n     *\n     * @param  string|null  $basePath\n     * @return void\n     */\n    public function __construct($basePath = null)\n    {\n        if ($basePath) {\n            $this->setBasePath($basePath);\n        }\n\n        $this->registerBaseBindings();\n        $this->registerBaseServiceProviders();\n        $this->registerCoreContainerAliases();\n    }\n\n    /**\n     * Get the version number of the application.\n     *\n     * @return string\n     */\n    public function version()\n    {\n        return static::VERSION;\n    }\n\n    /**\n     * Register the basic bindings into the container.\n     *\n     * @return void\n     */\n    protected function registerBaseBindings()\n    {\n        static::setInstance($this);\n\n        $this->instance('app', $this);\n\n        $this->instance(Container::class, $this);\n        $this->singleton(Mix::class);\n\n        $this->instance(PackageManifest::class, new PackageManifest(\n            new Filesystem, $this->basePath(), $this->getCachedPackagesPath()\n        ));\n    }\n\n    /**\n     * Register all of the base service providers.\n     *\n     * @return void\n     */\n    protected function registerBaseServiceProviders()\n    {\n        $this->register(new EventServiceProvider($this));\n        $this->register(new LogServiceProvider($this));\n        $this->register(new RoutingServiceProvider($this));\n    }\n\n    /**\n     * Run the given array of bootstrap classes.\n     *\n     * @param  string[]  $bootstrappers\n     * @return void\n     */\n    public function bootstrapWith(array $bootstrappers)\n    {\n        $this->hasBeenBootstrapped = true;\n\n        foreach ($bootstrappers as $bootstrapper) {\n            $this['events']->dispatch('bootstrapping: '.$bootstrapper, [$this]);\n\n            $this->make($bootstrapper)->bootstrap($this);\n\n            $this['events']->dispatch('bootstrapped: '.$bootstrapper, [$this]);\n        }\n    }\n\n    /**\n     * Register a callback to run after loading the environment.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function afterLoadingEnvironment(Closure $callback)\n    {\n        return $this->afterBootstrapping(\n            LoadEnvironmentVariables::class, $callback\n        );\n    }\n\n    /**\n     * Register a callback to run before a bootstrapper.\n     *\n     * @param  string  $bootstrapper\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function beforeBootstrapping($bootstrapper, Closure $callback)\n    {\n        $this['events']->listen('bootstrapping: '.$bootstrapper, $callback);\n    }\n\n    /**\n     * Register a callback to run after a bootstrapper.\n     *\n     * @param  string  $bootstrapper\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function afterBootstrapping($bootstrapper, Closure $callback)\n    {\n        $this['events']->listen('bootstrapped: '.$bootstrapper, $callback);\n    }\n\n    /**\n     * Determine if the application has been bootstrapped before.\n     *\n     * @return bool\n     */\n    public function hasBeenBootstrapped()\n    {\n        return $this->hasBeenBootstrapped;\n    }\n\n    /**\n     * Set the base path for the application.\n     *\n     * @param  string  $basePath\n     * @return $this\n     */\n    public function setBasePath($basePath)\n    {\n        $this->basePath = rtrim($basePath, '\\/');\n\n        $this->bindPathsInContainer();\n\n        return $this;\n    }\n\n    /**\n     * Bind all of the application paths in the container.\n     *\n     * @return void\n     */\n    protected function bindPathsInContainer()\n    {\n        $this->instance('path', $this->path());\n        $this->instance('path.base', $this->basePath());\n        $this->instance('path.lang', $this->langPath());\n        $this->instance('path.config', $this->configPath());\n        $this->instance('path.public', $this->publicPath());\n        $this->instance('path.storage', $this->storagePath());\n        $this->instance('path.database', $this->databasePath());\n        $this->instance('path.resources', $this->resourcePath());\n        $this->instance('path.bootstrap', $this->bootstrapPath());\n    }\n\n    /**\n     * Get the path to the application \"app\" directory.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function path($path = '')\n    {\n        $appPath = $this->appPath ?: $this->basePath.DIRECTORY_SEPARATOR.'app';\n\n        return $appPath.($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Set the application directory.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function useAppPath($path)\n    {\n        $this->appPath = $path;\n\n        $this->instance('path', $path);\n\n        return $this;\n    }\n\n    /**\n     * Get the base path of the Laravel installation.\n     *\n     * @param  string  $path Optionally, a path to append to the base path\n     * @return string\n     */\n    public function basePath($path = '')\n    {\n        return $this->basePath.($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Get the path to the bootstrap directory.\n     *\n     * @param  string  $path Optionally, a path to append to the bootstrap path\n     * @return string\n     */\n    public function bootstrapPath($path = '')\n    {\n        return $this->basePath.DIRECTORY_SEPARATOR.'bootstrap'.($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Get the path to the application configuration files.\n     *\n     * @param  string  $path Optionally, a path to append to the config path\n     * @return string\n     */\n    public function configPath($path = '')\n    {\n        return $this->basePath.DIRECTORY_SEPARATOR.'config'.($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Get the path to the database directory.\n     *\n     * @param  string  $path Optionally, a path to append to the database path\n     * @return string\n     */\n    public function databasePath($path = '')\n    {\n        return ($this->databasePath ?: $this->basePath.DIRECTORY_SEPARATOR.'database').($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Set the database directory.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function useDatabasePath($path)\n    {\n        $this->databasePath = $path;\n\n        $this->instance('path.database', $path);\n\n        return $this;\n    }\n\n    /**\n     * Get the path to the language files.\n     *\n     * @return string\n     */\n    public function langPath()\n    {\n        return $this->resourcePath().DIRECTORY_SEPARATOR.'lang';\n    }\n\n    /**\n     * Get the path to the public / web directory.\n     *\n     * @return string\n     */\n    public function publicPath()\n    {\n        return $this->basePath.DIRECTORY_SEPARATOR.'public';\n    }\n\n    /**\n     * Get the path to the storage directory.\n     *\n     * @return string\n     */\n    public function storagePath()\n    {\n        return $this->storagePath ?: $this->basePath.DIRECTORY_SEPARATOR.'storage';\n    }\n\n    /**\n     * Set the storage directory.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function useStoragePath($path)\n    {\n        $this->storagePath = $path;\n\n        $this->instance('path.storage', $path);\n\n        return $this;\n    }\n\n    /**\n     * Get the path to the resources directory.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function resourcePath($path = '')\n    {\n        return $this->basePath.DIRECTORY_SEPARATOR.'resources'.($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n\n    /**\n     * Get the path to the environment file directory.\n     *\n     * @return string\n     */\n    public function environmentPath()\n    {\n        return $this->environmentPath ?: $this->basePath;\n    }\n\n    /**\n     * Set the directory for the environment file.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function useEnvironmentPath($path)\n    {\n        $this->environmentPath = $path;\n\n        return $this;\n    }\n\n    /**\n     * Set the environment file to be loaded during bootstrapping.\n     *\n     * @param  string  $file\n     * @return $this\n     */\n    public function loadEnvironmentFrom($file)\n    {\n        $this->environmentFile = $file;\n\n        return $this;\n    }\n\n    /**\n     * Get the environment file the application is using.\n     *\n     * @return string\n     */\n    public function environmentFile()\n    {\n        return $this->environmentFile ?: '.env';\n    }\n\n    /**\n     * Get the fully qualified path to the environment file.\n     *\n     * @return string\n     */\n    public function environmentFilePath()\n    {\n        return $this->environmentPath().DIRECTORY_SEPARATOR.$this->environmentFile();\n    }\n\n    /**\n     * Get or check the current application environment.\n     *\n     * @param  string|array  $environments\n     * @return string|bool\n     */\n    public function environment(...$environments)\n    {\n        if (count($environments) > 0) {\n            $patterns = is_array($environments[0]) ? $environments[0] : $environments;\n\n            return Str::is($patterns, $this['env']);\n        }\n\n        return $this['env'];\n    }\n\n    /**\n     * Determine if application is in local environment.\n     *\n     * @return bool\n     */\n    public function isLocal()\n    {\n        return $this['env'] === 'local';\n    }\n\n    /**\n     * Determine if application is in production environment.\n     *\n     * @return bool\n     */\n    public function isProduction()\n    {\n        return $this['env'] === 'production';\n    }\n\n    /**\n     * Detect the application's current environment.\n     *\n     * @param  \\Closure  $callback\n     * @return string\n     */\n    public function detectEnvironment(Closure $callback)\n    {\n        $args = $_SERVER['argv'] ?? null;\n\n        return $this['env'] = (new EnvironmentDetector)->detect($callback, $args);\n    }\n\n    /**\n     * Determine if the application is running in the console.\n     *\n     * @return bool\n     */\n    public function runningInConsole()\n    {\n        if (isset($_ENV['APP_RUNNING_IN_CONSOLE'])) {\n            return $_ENV['APP_RUNNING_IN_CONSOLE'] === 'true';\n        }\n\n        return php_sapi_name() === 'cli' || php_sapi_name() === 'phpdbg';\n    }\n\n    /**\n     * Determine if the application is running unit tests.\n     *\n     * @return bool\n     */\n    public function runningUnitTests()\n    {\n        return $this['env'] === 'testing';\n    }\n\n    /**\n     * Register all of the configured providers.\n     *\n     * @return void\n     */\n    public function registerConfiguredProviders()\n    {\n        $providers = Collection::make($this->config['app.providers'])\n                        ->partition(function ($provider) {\n                            return Str::startsWith($provider, 'Illuminate\\\\');\n                        });\n\n        $providers->splice(1, 0, [$this->make(PackageManifest::class)->providers()]);\n\n        (new ProviderRepository($this, new Filesystem, $this->getCachedServicesPath()))\n                    ->load($providers->collapse()->toArray());\n    }\n\n    /**\n     * Register a service provider with the application.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider|string  $provider\n     * @param  bool   $force\n     * @return \\Illuminate\\Support\\ServiceProvider\n     */\n    public function register($provider, $force = false)\n    {\n        if (($registered = $this->getProvider($provider)) && ! $force) {\n            return $registered;\n        }\n\n        // If the given \"provider\" is a string, we will resolve it, passing in the\n        // application instance automatically for the developer. This is simply\n        // a more convenient way of specifying your service provider classes.\n        if (is_string($provider)) {\n            $provider = $this->resolveProvider($provider);\n        }\n\n        $provider->register();\n\n        // If there are bindings / singletons set as properties on the provider we\n        // will spin through them and register them with the application, which\n        // serves as a convenience layer while registering a lot of bindings.\n        if (property_exists($provider, 'bindings')) {\n            foreach ($provider->bindings as $key => $value) {\n                $this->bind($key, $value);\n            }\n        }\n\n        if (property_exists($provider, 'singletons')) {\n            foreach ($provider->singletons as $key => $value) {\n                $this->singleton($key, $value);\n            }\n        }\n\n        $this->markAsRegistered($provider);\n\n        // If the application has already booted, we will call this boot method on\n        // the provider class so it has an opportunity to do its boot logic and\n        // will be ready for any usage by this developer's application logic.\n        if ($this->booted) {\n            $this->bootProvider($provider);\n        }\n\n        return $provider;\n    }\n\n    /**\n     * Get the registered service provider instance if it exists.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider|string  $provider\n     * @return \\Illuminate\\Support\\ServiceProvider|null\n     */\n    public function getProvider($provider)\n    {\n        return array_values($this->getProviders($provider))[0] ?? null;\n    }\n\n    /**\n     * Get the registered service provider instances if any exist.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider|string  $provider\n     * @return array\n     */\n    public function getProviders($provider)\n    {\n        $name = is_string($provider) ? $provider : get_class($provider);\n\n        return Arr::where($this->serviceProviders, function ($value) use ($name) {\n            return $value instanceof $name;\n        });\n    }\n\n    /**\n     * Resolve a service provider instance from the class name.\n     *\n     * @param  string  $provider\n     * @return \\Illuminate\\Support\\ServiceProvider\n     */\n    public function resolveProvider($provider)\n    {\n        return new $provider($this);\n    }\n\n    /**\n     * Mark the given provider as registered.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider  $provider\n     * @return void\n     */\n    protected function markAsRegistered($provider)\n    {\n        $this->serviceProviders[] = $provider;\n\n        $this->loadedProviders[get_class($provider)] = true;\n    }\n\n    /**\n     * Load and boot all of the remaining deferred providers.\n     *\n     * @return void\n     */\n    public function loadDeferredProviders()\n    {\n        // We will simply spin through each of the deferred providers and register each\n        // one and boot them if the application has booted. This should make each of\n        // the remaining services available to this application for immediate use.\n        foreach ($this->deferredServices as $service => $provider) {\n            $this->loadDeferredProvider($service);\n        }\n\n        $this->deferredServices = [];\n    }\n\n    /**\n     * Load the provider for a deferred service.\n     *\n     * @param  string  $service\n     * @return void\n     */\n    public function loadDeferredProvider($service)\n    {\n        if (! isset($this->deferredServices[$service])) {\n            return;\n        }\n\n        $provider = $this->deferredServices[$service];\n\n        // If the service provider has not already been loaded and registered we can\n        // register it with the application and remove the service from this list\n        // of deferred services, since it will already be loaded on subsequent.\n        if (! isset($this->loadedProviders[$provider])) {\n            $this->registerDeferredProvider($provider, $service);\n        }\n    }\n\n    /**\n     * Register a deferred provider and service.\n     *\n     * @param  string  $provider\n     * @param  string|null  $service\n     * @return void\n     */\n    public function registerDeferredProvider($provider, $service = null)\n    {\n        // Once the provider that provides the deferred service has been registered we\n        // will remove it from our local list of the deferred services with related\n        // providers so that this container does not try to resolve it out again.\n        if ($service) {\n            unset($this->deferredServices[$service]);\n        }\n\n        $this->register($instance = new $provider($this));\n\n        if (! $this->booted) {\n            $this->booting(function () use ($instance) {\n                $this->bootProvider($instance);\n            });\n        }\n    }\n\n    /**\n     * Resolve the given type from the container.\n     *\n     * (Overriding Container::make)\n     *\n     * @param  string  $abstract\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function make($abstract, array $parameters = [])\n    {\n        $abstract = $this->getAlias($abstract);\n\n        if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) {\n            $this->loadDeferredProvider($abstract);\n        }\n\n        return parent::make($abstract, $parameters);\n    }\n\n    /**\n     * Determine if the given abstract type has been bound.\n     *\n     * (Overriding Container::bound)\n     *\n     * @param  string  $abstract\n     * @return bool\n     */\n    public function bound($abstract)\n    {\n        return isset($this->deferredServices[$abstract]) || parent::bound($abstract);\n    }\n\n    /**\n     * Determine if the application has booted.\n     *\n     * @return bool\n     */\n    public function isBooted()\n    {\n        return $this->booted;\n    }\n\n    /**\n     * Boot the application's service providers.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        if ($this->booted) {\n            return;\n        }\n\n        // Once the application has booted we will also fire some \"booted\" callbacks\n        // for any listeners that need to do work after this initial booting gets\n        // finished. This is useful when ordering the boot-up processes we run.\n        $this->fireAppCallbacks($this->bootingCallbacks);\n\n        array_walk($this->serviceProviders, function ($p) {\n            $this->bootProvider($p);\n        });\n\n        $this->booted = true;\n\n        $this->fireAppCallbacks($this->bootedCallbacks);\n    }\n\n    /**\n     * Boot the given service provider.\n     *\n     * @param  \\Illuminate\\Support\\ServiceProvider  $provider\n     * @return mixed\n     */\n    protected function bootProvider(ServiceProvider $provider)\n    {\n        if (method_exists($provider, 'boot')) {\n            return $this->call([$provider, 'boot']);\n        }\n    }\n\n    /**\n     * Register a new boot listener.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function booting($callback)\n    {\n        $this->bootingCallbacks[] = $callback;\n    }\n\n    /**\n     * Register a new \"booted\" listener.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function booted($callback)\n    {\n        $this->bootedCallbacks[] = $callback;\n\n        if ($this->isBooted()) {\n            $this->fireAppCallbacks([$callback]);\n        }\n    }\n\n    /**\n     * Call the booting callbacks for the application.\n     *\n     * @param  callable[]  $callbacks\n     * @return void\n     */\n    protected function fireAppCallbacks(array $callbacks)\n    {\n        foreach ($callbacks as $callback) {\n            call_user_func($callback, $this);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(SymfonyRequest $request, $type = self::MASTER_REQUEST, $catch = true)\n    {\n        return $this[HttpKernelContract::class]->handle(Request::createFromBase($request));\n    }\n\n    /**\n     * Determine if middleware has been disabled for the application.\n     *\n     * @return bool\n     */\n    public function shouldSkipMiddleware()\n    {\n        return $this->bound('middleware.disable') &&\n               $this->make('middleware.disable') === true;\n    }\n\n    /**\n     * Get the path to the cached services.php file.\n     *\n     * @return string\n     */\n    public function getCachedServicesPath()\n    {\n        return $_ENV['APP_SERVICES_CACHE'] ?? $this->bootstrapPath().'/cache/services.php';\n    }\n\n    /**\n     * Get the path to the cached packages.php file.\n     *\n     * @return string\n     */\n    public function getCachedPackagesPath()\n    {\n        return $_ENV['APP_PACKAGES_CACHE'] ?? $this->bootstrapPath().'/cache/packages.php';\n    }\n\n    /**\n     * Determine if the application configuration is cached.\n     *\n     * @return bool\n     */\n    public function configurationIsCached()\n    {\n        return file_exists($this->getCachedConfigPath());\n    }\n\n    /**\n     * Get the path to the configuration cache file.\n     *\n     * @return string\n     */\n    public function getCachedConfigPath()\n    {\n        return $_ENV['APP_CONFIG_CACHE'] ?? $this->bootstrapPath().'/cache/config.php';\n    }\n\n    /**\n     * Determine if the application routes are cached.\n     *\n     * @return bool\n     */\n    public function routesAreCached()\n    {\n        return $this['files']->exists($this->getCachedRoutesPath());\n    }\n\n    /**\n     * Get the path to the routes cache file.\n     *\n     * @return string\n     */\n    public function getCachedRoutesPath()\n    {\n        return $_ENV['APP_ROUTES_CACHE'] ?? $this->bootstrapPath().'/cache/routes.php';\n    }\n\n    /**\n     * Determine if the application events are cached.\n     *\n     * @return bool\n     */\n    public function eventsAreCached()\n    {\n        return $this['files']->exists($this->getCachedEventsPath());\n    }\n\n    /**\n     * Get the path to the events cache file.\n     *\n     * @return string\n     */\n    public function getCachedEventsPath()\n    {\n        return $_ENV['APP_EVENTS_CACHE'] ?? $this->bootstrapPath().'/cache/events.php';\n    }\n\n    /**\n     * Determine if the application is currently down for maintenance.\n     *\n     * @return bool\n     */\n    public function isDownForMaintenance()\n    {\n        return file_exists($this->storagePath().'/framework/down');\n    }\n\n    /**\n     * Throw an HttpException with the given data.\n     *\n     * @param  int     $code\n     * @param  string  $message\n     * @param  array   $headers\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     */\n    public function abort($code, $message = '', array $headers = [])\n    {\n        if ($code == 404) {\n            throw new NotFoundHttpException($message);\n        }\n\n        throw new HttpException($code, $message, null, $headers);\n    }\n\n    /**\n     * Register a terminating callback with the application.\n     *\n     * @param  callable|string  $callback\n     * @return $this\n     */\n    public function terminating($callback)\n    {\n        $this->terminatingCallbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Terminate the application.\n     *\n     * @return void\n     */\n    public function terminate()\n    {\n        foreach ($this->terminatingCallbacks as $terminating) {\n            $this->call($terminating);\n        }\n    }\n\n    /**\n     * Get the service providers that have been loaded.\n     *\n     * @return array\n     */\n    public function getLoadedProviders()\n    {\n        return $this->loadedProviders;\n    }\n\n    /**\n     * Get the application's deferred services.\n     *\n     * @return array\n     */\n    public function getDeferredServices()\n    {\n        return $this->deferredServices;\n    }\n\n    /**\n     * Set the application's deferred services.\n     *\n     * @param  array  $services\n     * @return void\n     */\n    public function setDeferredServices(array $services)\n    {\n        $this->deferredServices = $services;\n    }\n\n    /**\n     * Add an array of services to the application's deferred services.\n     *\n     * @param  array  $services\n     * @return void\n     */\n    public function addDeferredServices(array $services)\n    {\n        $this->deferredServices = array_merge($this->deferredServices, $services);\n    }\n\n    /**\n     * Determine if the given service is a deferred service.\n     *\n     * @param  string  $service\n     * @return bool\n     */\n    public function isDeferredService($service)\n    {\n        return isset($this->deferredServices[$service]);\n    }\n\n    /**\n     * Configure the real-time facade namespace.\n     *\n     * @param  string  $namespace\n     * @return void\n     */\n    public function provideFacades($namespace)\n    {\n        AliasLoader::setFacadeNamespace($namespace);\n    }\n\n    /**\n     * Get the current application locale.\n     *\n     * @return string\n     */\n    public function getLocale()\n    {\n        return $this['config']->get('app.locale');\n    }\n\n    /**\n     * Set the current application locale.\n     *\n     * @param  string  $locale\n     * @return void\n     */\n    public function setLocale($locale)\n    {\n        $this['config']->set('app.locale', $locale);\n\n        $this['translator']->setLocale($locale);\n\n        $this['events']->dispatch(new Events\\LocaleUpdated($locale));\n    }\n\n    /**\n     * Determine if application locale is the given locale.\n     *\n     * @param  string  $locale\n     * @return bool\n     */\n    public function isLocale($locale)\n    {\n        return $this->getLocale() == $locale;\n    }\n\n    /**\n     * Register the core class aliases in the container.\n     *\n     * @return void\n     */\n    public function registerCoreContainerAliases()\n    {\n        foreach ([\n            'app'                  => [self::class, \\Illuminate\\Contracts\\Container\\Container::class, \\Illuminate\\Contracts\\Foundation\\Application::class,  \\Psr\\Container\\ContainerInterface::class],\n            'auth'                 => [\\Illuminate\\Auth\\AuthManager::class, \\Illuminate\\Contracts\\Auth\\Factory::class],\n            'auth.driver'          => [\\Illuminate\\Contracts\\Auth\\Guard::class],\n            'blade.compiler'       => [\\Illuminate\\View\\Compilers\\BladeCompiler::class],\n            'cache'                => [\\Illuminate\\Cache\\CacheManager::class, \\Illuminate\\Contracts\\Cache\\Factory::class],\n            'cache.store'          => [\\Illuminate\\Cache\\Repository::class, \\Illuminate\\Contracts\\Cache\\Repository::class],\n            'config'               => [\\Illuminate\\Config\\Repository::class, \\Illuminate\\Contracts\\Config\\Repository::class],\n            'cookie'               => [\\Illuminate\\Cookie\\CookieJar::class, \\Illuminate\\Contracts\\Cookie\\Factory::class, \\Illuminate\\Contracts\\Cookie\\QueueingFactory::class],\n            'encrypter'            => [\\Illuminate\\Encryption\\Encrypter::class, \\Illuminate\\Contracts\\Encryption\\Encrypter::class],\n            'db'                   => [\\Illuminate\\Database\\DatabaseManager::class],\n            'db.connection'        => [\\Illuminate\\Database\\Connection::class, \\Illuminate\\Database\\ConnectionInterface::class],\n            'events'               => [\\Illuminate\\Events\\Dispatcher::class, \\Illuminate\\Contracts\\Events\\Dispatcher::class],\n            'files'                => [\\Illuminate\\Filesystem\\Filesystem::class],\n            'filesystem'           => [\\Illuminate\\Filesystem\\FilesystemManager::class, \\Illuminate\\Contracts\\Filesystem\\Factory::class],\n            'filesystem.disk'      => [\\Illuminate\\Contracts\\Filesystem\\Filesystem::class],\n            'filesystem.cloud'     => [\\Illuminate\\Contracts\\Filesystem\\Cloud::class],\n            'hash'                 => [\\Illuminate\\Hashing\\HashManager::class],\n            'hash.driver'          => [\\Illuminate\\Contracts\\Hashing\\Hasher::class],\n            'translator'           => [\\Illuminate\\Translation\\Translator::class, \\Illuminate\\Contracts\\Translation\\Translator::class],\n            'log'                  => [\\Illuminate\\Log\\LogManager::class, \\Psr\\Log\\LoggerInterface::class],\n            'mailer'               => [\\Illuminate\\Mail\\Mailer::class, \\Illuminate\\Contracts\\Mail\\Mailer::class, \\Illuminate\\Contracts\\Mail\\MailQueue::class],\n            'auth.password'        => [\\Illuminate\\Auth\\Passwords\\PasswordBrokerManager::class, \\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory::class],\n            'auth.password.broker' => [\\Illuminate\\Auth\\Passwords\\PasswordBroker::class, \\Illuminate\\Contracts\\Auth\\PasswordBroker::class],\n            'queue'                => [\\Illuminate\\Queue\\QueueManager::class, \\Illuminate\\Contracts\\Queue\\Factory::class, \\Illuminate\\Contracts\\Queue\\Monitor::class],\n            'queue.connection'     => [\\Illuminate\\Contracts\\Queue\\Queue::class],\n            'queue.failer'         => [\\Illuminate\\Queue\\Failed\\FailedJobProviderInterface::class],\n            'redirect'             => [\\Illuminate\\Routing\\Redirector::class],\n            'redis'                => [\\Illuminate\\Redis\\RedisManager::class, \\Illuminate\\Contracts\\Redis\\Factory::class],\n            'request'              => [\\Illuminate\\Http\\Request::class, \\Symfony\\Component\\HttpFoundation\\Request::class],\n            'router'               => [\\Illuminate\\Routing\\Router::class, \\Illuminate\\Contracts\\Routing\\Registrar::class, \\Illuminate\\Contracts\\Routing\\BindingRegistrar::class],\n            'session'              => [\\Illuminate\\Session\\SessionManager::class],\n            'session.store'        => [\\Illuminate\\Session\\Store::class, \\Illuminate\\Contracts\\Session\\Session::class],\n            'url'                  => [\\Illuminate\\Routing\\UrlGenerator::class, \\Illuminate\\Contracts\\Routing\\UrlGenerator::class],\n            'validator'            => [\\Illuminate\\Validation\\Factory::class, \\Illuminate\\Contracts\\Validation\\Factory::class],\n            'view'                 => [\\Illuminate\\View\\Factory::class, \\Illuminate\\Contracts\\View\\Factory::class],\n        ] as $key => $aliases) {\n            foreach ($aliases as $alias) {\n                $this->alias($key, $alias);\n            }\n        }\n    }\n\n    /**\n     * Flush the container of all bindings and resolved instances.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        parent::flush();\n\n        $this->buildStack = [];\n        $this->loadedProviders = [];\n        $this->bootedCallbacks = [];\n        $this->bootingCallbacks = [];\n        $this->deferredServices = [];\n        $this->reboundCallbacks = [];\n        $this->serviceProviders = [];\n        $this->resolvingCallbacks = [];\n        $this->afterResolvingCallbacks = [];\n        $this->globalResolvingCallbacks = [];\n    }\n\n    /**\n     * Get the application namespace.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function getNamespace()\n    {\n        if (! is_null($this->namespace)) {\n            return $this->namespace;\n        }\n\n        $composer = json_decode(file_get_contents($this->basePath('composer.json')), true);\n\n        foreach ((array) data_get($composer, 'autoload.psr-4') as $namespace => $path) {\n            foreach ((array) $path as $pathChoice) {\n                if (realpath($this->path()) === realpath($this->basePath($pathChoice))) {\n                    return $this->namespace = $namespace;\n                }\n            }\n        }\n\n        throw new RuntimeException('Unable to detect application namespace.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/Authorizable.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth\\Access;\n\nuse Illuminate\\Contracts\\Auth\\Access\\Gate;\n\ntrait Authorizable\n{\n    /**\n     * Determine if the entity has a given ability.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function can($ability, $arguments = [])\n    {\n        return app(Gate::class)->forUser($this)->check($ability, $arguments);\n    }\n\n    /**\n     * Determine if the entity does not have a given ability.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function cant($ability, $arguments = [])\n    {\n        return ! $this->can($ability, $arguments);\n    }\n\n    /**\n     * Determine if the entity does not have a given ability.\n     *\n     * @param  string  $ability\n     * @param  array|mixed  $arguments\n     * @return bool\n     */\n    public function cannot($ability, $arguments = [])\n    {\n        return $this->cant($ability, $arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth\\Access;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Auth\\Access\\Gate;\n\ntrait AuthorizesRequests\n{\n    /**\n     * Authorize a given action for the current user.\n     *\n     * @param  mixed  $ability\n     * @param  mixed|array  $arguments\n     * @return \\Illuminate\\Auth\\Access\\Response\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function authorize($ability, $arguments = [])\n    {\n        [$ability, $arguments] = $this->parseAbilityAndArguments($ability, $arguments);\n\n        return app(Gate::class)->authorize($ability, $arguments);\n    }\n\n    /**\n     * Authorize a given action for a user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable|mixed  $user\n     * @param  mixed  $ability\n     * @param  mixed|array  $arguments\n     * @return \\Illuminate\\Auth\\Access\\Response\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function authorizeForUser($user, $ability, $arguments = [])\n    {\n        [$ability, $arguments] = $this->parseAbilityAndArguments($ability, $arguments);\n\n        return app(Gate::class)->forUser($user)->authorize($ability, $arguments);\n    }\n\n    /**\n     * Guesses the ability's name if it wasn't provided.\n     *\n     * @param  mixed  $ability\n     * @param  mixed|array  $arguments\n     * @return array\n     */\n    protected function parseAbilityAndArguments($ability, $arguments)\n    {\n        if (is_string($ability) && strpos($ability, '\\\\') === false) {\n            return [$ability, $arguments];\n        }\n\n        $method = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['function'];\n\n        return [$this->normalizeGuessedAbilityName($method), $ability];\n    }\n\n    /**\n     * Normalize the ability name that has been guessed from the method name.\n     *\n     * @param  string  $ability\n     * @return string\n     */\n    protected function normalizeGuessedAbilityName($ability)\n    {\n        $map = $this->resourceAbilityMap();\n\n        return $map[$ability] ?? $ability;\n    }\n\n    /**\n     * Authorize a resource action based on the incoming request.\n     *\n     * @param  string  $model\n     * @param  string|null  $parameter\n     * @param  array  $options\n     * @param  \\Illuminate\\Http\\Request|null  $request\n     * @return void\n     */\n    public function authorizeResource($model, $parameter = null, array $options = [], $request = null)\n    {\n        $parameter = $parameter ?: Str::snake(class_basename($model));\n\n        $middleware = [];\n\n        foreach ($this->resourceAbilityMap() as $method => $ability) {\n            $modelName = in_array($method, $this->resourceMethodsWithoutModels()) ? $model : $parameter;\n\n            $middleware[\"can:{$ability},{$modelName}\"][] = $method;\n        }\n\n        foreach ($middleware as $middlewareName => $methods) {\n            $this->middleware($middlewareName, $options)->only($methods);\n        }\n    }\n\n    /**\n     * Get the map of resource methods to ability names.\n     *\n     * @return array\n     */\n    protected function resourceAbilityMap()\n    {\n        return [\n            'show' => 'view',\n            'create' => 'create',\n            'store' => 'create',\n            'edit' => 'update',\n            'update' => 'update',\n            'destroy' => 'delete',\n        ];\n    }\n\n    /**\n     * Get the list of resource methods which do not have model parameters.\n     *\n     * @return array\n     */\n    protected function resourceMethodsWithoutModels()\n    {\n        return ['index', 'create', 'store'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Auth;\nuse Illuminate\\Validation\\ValidationException;\n\ntrait AuthenticatesUsers\n{\n    use RedirectsUsers, ThrottlesLogins;\n\n    /**\n     * Show the application's login form.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function showLoginForm()\n    {\n        return view('auth.login');\n    }\n\n    /**\n     * Handle a login request to the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function login(Request $request)\n    {\n        $this->validateLogin($request);\n\n        // If the class is using the ThrottlesLogins trait, we can automatically throttle\n        // the login attempts for this application. We'll key this by the username and\n        // the IP address of the client making these requests into this application.\n        if (method_exists($this, 'hasTooManyLoginAttempts') &&\n            $this->hasTooManyLoginAttempts($request)) {\n            $this->fireLockoutEvent($request);\n\n            return $this->sendLockoutResponse($request);\n        }\n\n        if ($this->attemptLogin($request)) {\n            return $this->sendLoginResponse($request);\n        }\n\n        // If the login attempt was unsuccessful we will increment the number of attempts\n        // to login and redirect the user back to the login form. Of course, when this\n        // user surpasses their maximum number of attempts they will get locked out.\n        $this->incrementLoginAttempts($request);\n\n        return $this->sendFailedLoginResponse($request);\n    }\n\n    /**\n     * Validate the user login request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    protected function validateLogin(Request $request)\n    {\n        $request->validate([\n            $this->username() => 'required|string',\n            'password' => 'required|string',\n        ]);\n    }\n\n    /**\n     * Attempt to log the user into the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function attemptLogin(Request $request)\n    {\n        return $this->guard()->attempt(\n            $this->credentials($request), $request->filled('remember')\n        );\n    }\n\n    /**\n     * Get the needed authorization credentials from the request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function credentials(Request $request)\n    {\n        return $request->only($this->username(), 'password');\n    }\n\n    /**\n     * Send the response after the user was authenticated.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    protected function sendLoginResponse(Request $request)\n    {\n        $request->session()->regenerate();\n\n        $this->clearLoginAttempts($request);\n\n        return $this->authenticated($request, $this->guard()->user())\n                ?: redirect()->intended($this->redirectPath());\n    }\n\n    /**\n     * The user has been authenticated.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $user\n     * @return mixed\n     */\n    protected function authenticated(Request $request, $user)\n    {\n        //\n    }\n\n    /**\n     * Get the failed login response instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    protected function sendFailedLoginResponse(Request $request)\n    {\n        throw ValidationException::withMessages([\n            $this->username() => [trans('auth.failed')],\n        ]);\n    }\n\n    /**\n     * Get the login username to be used by the controller.\n     *\n     * @return string\n     */\n    public function username()\n    {\n        return 'email';\n    }\n\n    /**\n     * Log the user out of the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function logout(Request $request)\n    {\n        $this->guard()->logout();\n\n        $request->session()->invalidate();\n\n        return $this->loggedOut($request) ?: redirect('/');\n    }\n\n    /**\n     * The user has logged out of the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return mixed\n     */\n    protected function loggedOut(Request $request)\n    {\n        //\n    }\n\n    /**\n     * Get the guard to be used during authentication.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\StatefulGuard\n     */\n    protected function guard()\n    {\n        return Auth::guard();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/RedirectsUsers.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\ntrait RedirectsUsers\n{\n    /**\n     * Get the post register / login redirect path.\n     *\n     * @return string\n     */\n    public function redirectPath()\n    {\n        if (method_exists($this, 'redirectTo')) {\n            return $this->redirectTo();\n        }\n\n        return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Auth;\nuse Illuminate\\Auth\\Events\\Registered;\n\ntrait RegistersUsers\n{\n    use RedirectsUsers;\n\n    /**\n     * Show the application registration form.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function showRegistrationForm()\n    {\n        return view('auth.register');\n    }\n\n    /**\n     * Handle a registration request for the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function register(Request $request)\n    {\n        $this->validator($request->all())->validate();\n\n        event(new Registered($user = $this->create($request->all())));\n\n        $this->guard()->login($user);\n\n        return $this->registered($request, $user)\n                        ?: redirect($this->redirectPath());\n    }\n\n    /**\n     * Get the guard to be used during registration.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\StatefulGuard\n     */\n    protected function guard()\n    {\n        return Auth::guard();\n    }\n\n    /**\n     * The user has been registered.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  mixed  $user\n     * @return mixed\n     */\n    protected function registered(Request $request, $user)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/ResetsPasswords.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Auth;\nuse Illuminate\\Support\\Facades\\Hash;\nuse Illuminate\\Support\\Facades\\Password;\nuse Illuminate\\Auth\\Events\\PasswordReset;\n\ntrait ResetsPasswords\n{\n    use RedirectsUsers;\n\n    /**\n     * Display the password reset view for the given token.\n     *\n     * If no token is present, display the link request form.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string|null  $token\n     * @return \\Illuminate\\Contracts\\View\\Factory|\\Illuminate\\View\\View\n     */\n    public function showResetForm(Request $request, $token = null)\n    {\n        return view('auth.passwords.reset')->with(\n            ['token' => $token, 'email' => $request->email]\n        );\n    }\n\n    /**\n     * Reset the given user's password.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    public function reset(Request $request)\n    {\n        $request->validate($this->rules(), $this->validationErrorMessages());\n\n        // Here we will attempt to reset the user's password. If it is successful we\n        // will update the password on an actual user model and persist it to the\n        // database. Otherwise we will parse the error and return the response.\n        $response = $this->broker()->reset(\n            $this->credentials($request), function ($user, $password) {\n                $this->resetPassword($user, $password);\n            }\n        );\n\n        // If the password was successfully reset, we will redirect the user back to\n        // the application's home authenticated view. If there is an error we can\n        // redirect them back to where they came from with their error message.\n        return $response == Password::PASSWORD_RESET\n                    ? $this->sendResetResponse($request, $response)\n                    : $this->sendResetFailedResponse($request, $response);\n    }\n\n    /**\n     * Get the password reset validation rules.\n     *\n     * @return array\n     */\n    protected function rules()\n    {\n        return [\n            'token' => 'required',\n            'email' => 'required|email',\n            'password' => 'required|confirmed|min:8',\n        ];\n    }\n\n    /**\n     * Get the password reset validation error messages.\n     *\n     * @return array\n     */\n    protected function validationErrorMessages()\n    {\n        return [];\n    }\n\n    /**\n     * Get the password reset credentials from the request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function credentials(Request $request)\n    {\n        return $request->only(\n            'email', 'password', 'password_confirmation', 'token'\n        );\n    }\n\n    /**\n     * Reset the given user's password.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\CanResetPassword  $user\n     * @param  string  $password\n     * @return void\n     */\n    protected function resetPassword($user, $password)\n    {\n        $user->password = Hash::make($password);\n\n        $user->setRememberToken(Str::random(60));\n\n        $user->save();\n\n        event(new PasswordReset($user));\n\n        $this->guard()->login($user);\n    }\n\n    /**\n     * Get the response for a successful password reset.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $response\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    protected function sendResetResponse(Request $request, $response)\n    {\n        return redirect($this->redirectPath())\n                            ->with('status', trans($response));\n    }\n\n    /**\n     * Get the response for a failed password reset.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $response\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    protected function sendResetFailedResponse(Request $request, $response)\n    {\n        return redirect()->back()\n                    ->withInput($request->only('email'))\n                    ->withErrors(['email' => trans($response)]);\n    }\n\n    /**\n     * Get the broker to be used during password reset.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n     */\n    public function broker()\n    {\n        return Password::broker();\n    }\n\n    /**\n     * Get the guard to be used during password reset.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\StatefulGuard\n     */\n    protected function guard()\n    {\n        return Auth::guard();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/SendsPasswordResetEmails.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\Password;\n\ntrait SendsPasswordResetEmails\n{\n    /**\n     * Display the form to request a password reset link.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function showLinkRequestForm()\n    {\n        return view('auth.passwords.email');\n    }\n\n    /**\n     * Send a reset link to the given user.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    public function sendResetLinkEmail(Request $request)\n    {\n        $this->validateEmail($request);\n\n        // We will send the password reset link to this user. Once we have attempted\n        // to send the link, we will examine the response then see the message we\n        // need to show to the user. Finally, we'll send out a proper response.\n        $response = $this->broker()->sendResetLink(\n            $this->credentials($request)\n        );\n\n        return $response == Password::RESET_LINK_SENT\n                    ? $this->sendResetLinkResponse($request, $response)\n                    : $this->sendResetLinkFailedResponse($request, $response);\n    }\n\n    /**\n     * Validate the email for the given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function validateEmail(Request $request)\n    {\n        $request->validate(['email' => 'required|email']);\n    }\n\n    /**\n     * Get the needed authentication credentials from the request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function credentials(Request $request)\n    {\n        return $request->only('email');\n    }\n\n    /**\n     * Get the response for a successful password reset link.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $response\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    protected function sendResetLinkResponse(Request $request, $response)\n    {\n        return back()->with('status', trans($response));\n    }\n\n    /**\n     * Get the response for a failed password reset link.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string  $response\n     * @return \\Illuminate\\Http\\RedirectResponse|\\Illuminate\\Http\\JsonResponse\n     */\n    protected function sendResetLinkFailedResponse(Request $request, $response)\n    {\n        return back()\n                ->withInput($request->only('email'))\n                ->withErrors(['email' => trans($response)]);\n    }\n\n    /**\n     * Get the broker to be used during password reset.\n     *\n     * @return \\Illuminate\\Contracts\\Auth\\PasswordBroker\n     */\n    public function broker()\n    {\n        return Password::broker();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/ThrottlesLogins.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Cache\\RateLimiter;\nuse Illuminate\\Auth\\Events\\Lockout;\nuse Illuminate\\Support\\Facades\\Lang;\nuse Illuminate\\Validation\\ValidationException;\n\ntrait ThrottlesLogins\n{\n    /**\n     * Determine if the user has too many failed login attempts.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function hasTooManyLoginAttempts(Request $request)\n    {\n        return $this->limiter()->tooManyAttempts(\n            $this->throttleKey($request), $this->maxAttempts()\n        );\n    }\n\n    /**\n     * Increment the login attempts for the user.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function incrementLoginAttempts(Request $request)\n    {\n        $this->limiter()->hit(\n            $this->throttleKey($request), $this->decayMinutes() * 60\n        );\n    }\n\n    /**\n     * Redirect the user after determining they are locked out.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    protected function sendLockoutResponse(Request $request)\n    {\n        $seconds = $this->limiter()->availableIn(\n            $this->throttleKey($request)\n        );\n\n        throw ValidationException::withMessages([\n            $this->username() => [Lang::get('auth.throttle', ['seconds' => $seconds])],\n        ])->status(429);\n    }\n\n    /**\n     * Clear the login locks for the given user credentials.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function clearLoginAttempts(Request $request)\n    {\n        $this->limiter()->clear($this->throttleKey($request));\n    }\n\n    /**\n     * Fire an event when a lockout occurs.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function fireLockoutEvent(Request $request)\n    {\n        event(new Lockout($request));\n    }\n\n    /**\n     * Get the throttle key for the given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return string\n     */\n    protected function throttleKey(Request $request)\n    {\n        return Str::lower($request->input($this->username())).'|'.$request->ip();\n    }\n\n    /**\n     * Get the rate limiter instance.\n     *\n     * @return \\Illuminate\\Cache\\RateLimiter\n     */\n    protected function limiter()\n    {\n        return app(RateLimiter::class);\n    }\n\n    /**\n     * Get the maximum number of attempts to allow.\n     *\n     * @return int\n     */\n    public function maxAttempts()\n    {\n        return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5;\n    }\n\n    /**\n     * Get the number of minutes to throttle for.\n     *\n     * @return int\n     */\n    public function decayMinutes()\n    {\n        return property_exists($this, 'decayMinutes') ? $this->decayMinutes : 1;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/User.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Auth\\Authenticatable;\nuse Illuminate\\Auth\\MustVerifyEmail;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Auth\\Passwords\\CanResetPassword;\nuse Illuminate\\Foundation\\Auth\\Access\\Authorizable;\nuse Illuminate\\Contracts\\Auth\\Authenticatable as AuthenticatableContract;\nuse Illuminate\\Contracts\\Auth\\Access\\Authorizable as AuthorizableContract;\nuse Illuminate\\Contracts\\Auth\\CanResetPassword as CanResetPasswordContract;\n\nclass User extends Model implements\n    AuthenticatableContract,\n    AuthorizableContract,\n    CanResetPasswordContract\n{\n    use Authenticatable, Authorizable, CanResetPassword, MustVerifyEmail;\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Auth/VerifiesEmails.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Auth;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Auth\\Events\\Verified;\nuse Illuminate\\Auth\\Access\\AuthorizationException;\n\ntrait VerifiesEmails\n{\n    use RedirectsUsers;\n\n    /**\n     * Show the email verification notice.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show(Request $request)\n    {\n        return $request->user()->hasVerifiedEmail()\n                        ? redirect($this->redirectPath())\n                        : view('auth.verify');\n    }\n\n    /**\n     * Mark the authenticated user's email address as verified.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    public function verify(Request $request)\n    {\n        if ($request->route('id') != $request->user()->getKey()) {\n            throw new AuthorizationException;\n        }\n\n        if ($request->user()->hasVerifiedEmail()) {\n            return redirect($this->redirectPath());\n        }\n\n        if ($request->user()->markEmailAsVerified()) {\n            event(new Verified($request->user()));\n        }\n\n        return redirect($this->redirectPath())->with('verified', true);\n    }\n\n    /**\n     * Resend the email verification notification.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function resend(Request $request)\n    {\n        if ($request->user()->hasVerifiedEmail()) {\n            return redirect($this->redirectPath());\n        }\n\n        $request->user()->sendEmailVerificationNotification();\n\n        return back()->with('resent', true);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Illuminate\\Contracts\\Foundation\\Application;\n\nclass BootProviders\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        $app->boot();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Exception;\nuse ErrorException;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Symfony\\Component\\Console\\Output\\ConsoleOutput;\nuse Symfony\\Component\\Debug\\Exception\\FatalErrorException;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\nclass HandleExceptions\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        $this->app = $app;\n\n        error_reporting(-1);\n\n        set_error_handler([$this, 'handleError']);\n\n        set_exception_handler([$this, 'handleException']);\n\n        register_shutdown_function([$this, 'handleShutdown']);\n\n        if (! $app->environment('testing')) {\n            ini_set('display_errors', 'Off');\n        }\n    }\n\n    /**\n     * Convert PHP errors to ErrorException instances.\n     *\n     * @param  int  $level\n     * @param  string  $message\n     * @param  string  $file\n     * @param  int  $line\n     * @param  array  $context\n     * @return void\n     *\n     * @throws \\ErrorException\n     */\n    public function handleError($level, $message, $file = '', $line = 0, $context = [])\n    {\n        if (error_reporting() & $level) {\n            throw new ErrorException($message, 0, $level, $file, $line);\n        }\n    }\n\n    /**\n     * Handle an uncaught exception from the application.\n     *\n     * Note: Most exceptions can be handled via the try / catch block in\n     * the HTTP and Console kernels. But, fatal error exceptions must\n     * be handled differently since they are not normal exceptions.\n     *\n     * @param  \\Throwable  $e\n     * @return void\n     */\n    public function handleException($e)\n    {\n        if (! $e instanceof Exception) {\n            $e = new FatalThrowableError($e);\n        }\n\n        try {\n            $this->getExceptionHandler()->report($e);\n        } catch (Exception $e) {\n            //\n        }\n\n        if ($this->app->runningInConsole()) {\n            $this->renderForConsole($e);\n        } else {\n            $this->renderHttpResponse($e);\n        }\n    }\n\n    /**\n     * Render an exception to the console.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function renderForConsole(Exception $e)\n    {\n        $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);\n    }\n\n    /**\n     * Render an exception as an HTTP response and send it.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function renderHttpResponse(Exception $e)\n    {\n        $this->getExceptionHandler()->render($this->app['request'], $e)->send();\n    }\n\n    /**\n     * Handle the PHP shutdown event.\n     *\n     * @return void\n     */\n    public function handleShutdown()\n    {\n        if (! is_null($error = error_get_last()) && $this->isFatal($error['type'])) {\n            $this->handleException($this->fatalExceptionFromError($error, 0));\n        }\n    }\n\n    /**\n     * Create a new fatal exception instance from an error array.\n     *\n     * @param  array  $error\n     * @param  int|null  $traceOffset\n     * @return \\Symfony\\Component\\Debug\\Exception\\FatalErrorException\n     */\n    protected function fatalExceptionFromError(array $error, $traceOffset = null)\n    {\n        return new FatalErrorException(\n            $error['message'], $error['type'], 0, $error['file'], $error['line'], $traceOffset\n        );\n    }\n\n    /**\n     * Determine if the error type is fatal.\n     *\n     * @param  int  $type\n     * @return bool\n     */\n    protected function isFatal($type)\n    {\n        return in_array($type, [E_COMPILE_ERROR, E_CORE_ERROR, E_ERROR, E_PARSE]);\n    }\n\n    /**\n     * Get an instance of the exception handler.\n     *\n     * @return \\Illuminate\\Contracts\\Debug\\ExceptionHandler\n     */\n    protected function getExceptionHandler()\n    {\n        return $this->app->make(ExceptionHandler::class);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Exception;\nuse SplFileInfo;\nuse Illuminate\\Config\\Repository;\nuse Symfony\\Component\\Finder\\Finder;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Illuminate\\Contracts\\Config\\Repository as RepositoryContract;\n\nclass LoadConfiguration\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        $items = [];\n\n        // First we will see if we have a cache configuration file. If we do, we'll load\n        // the configuration items from that file so that it is very quick. Otherwise\n        // we will need to spin through every configuration file and load them all.\n        if (file_exists($cached = $app->getCachedConfigPath())) {\n            $items = require $cached;\n\n            $loadedFromCache = true;\n        }\n\n        // Next we will spin through all of the configuration files in the configuration\n        // directory and load each one into the repository. This will make all of the\n        // options available to the developer for use in various parts of this app.\n        $app->instance('config', $config = new Repository($items));\n\n        if (! isset($loadedFromCache)) {\n            $this->loadConfigurationFiles($app, $config);\n        }\n\n        // Finally, we will set the application's environment based on the configuration\n        // values that were loaded. We will pass a callback which will be used to get\n        // the environment in a web context where an \"--env\" switch is not present.\n        $app->detectEnvironment(function () use ($config) {\n            return $config->get('app.env', 'production');\n        });\n\n        date_default_timezone_set($config->get('app.timezone', 'UTC'));\n\n        mb_internal_encoding('UTF-8');\n    }\n\n    /**\n     * Load the configuration items from all of the files.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Contracts\\Config\\Repository  $repository\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function loadConfigurationFiles(Application $app, RepositoryContract $repository)\n    {\n        $files = $this->getConfigurationFiles($app);\n\n        if (! isset($files['app'])) {\n            throw new Exception('Unable to load the \"app\" configuration file.');\n        }\n\n        foreach ($files as $key => $path) {\n            $repository->set($key, require $path);\n        }\n    }\n\n    /**\n     * Get all of the configuration files for the application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return array\n     */\n    protected function getConfigurationFiles(Application $app)\n    {\n        $files = [];\n\n        $configPath = realpath($app->configPath());\n\n        foreach (Finder::create()->files()->name('*.php')->in($configPath) as $file) {\n            $directory = $this->getNestedDirectory($file, $configPath);\n\n            $files[$directory.basename($file->getRealPath(), '.php')] = $file->getRealPath();\n        }\n\n        ksort($files, SORT_NATURAL);\n\n        return $files;\n    }\n\n    /**\n     * Get the configuration file nesting path.\n     *\n     * @param  \\SplFileInfo  $file\n     * @param  string  $configPath\n     * @return string\n     */\n    protected function getNestedDirectory(SplFileInfo $file, $configPath)\n    {\n        $directory = $file->getPath();\n\n        if ($nested = trim(str_replace($configPath, '', $directory), DIRECTORY_SEPARATOR)) {\n            $nested = str_replace(DIRECTORY_SEPARATOR, '.', $nested).'.';\n        }\n\n        return $nested;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadEnvironmentVariables.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Dotenv\\Dotenv;\nuse Dotenv\\Environment\\DotenvFactory;\nuse Dotenv\\Exception\\InvalidFileException;\nuse Dotenv\\Environment\\Adapter\\PutenvAdapter;\nuse Symfony\\Component\\Console\\Input\\ArgvInput;\nuse Dotenv\\Environment\\Adapter\\EnvConstAdapter;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Dotenv\\Environment\\Adapter\\ServerConstAdapter;\nuse Symfony\\Component\\Console\\Output\\ConsoleOutput;\n\nclass LoadEnvironmentVariables\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        if ($app->configurationIsCached()) {\n            return;\n        }\n\n        $this->checkForSpecificEnvironmentFile($app);\n\n        try {\n            $this->createDotenv($app)->safeLoad();\n        } catch (InvalidFileException $e) {\n            $this->writeErrorAndDie($e);\n        }\n    }\n\n    /**\n     * Detect if a custom environment file matching the APP_ENV exists.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    protected function checkForSpecificEnvironmentFile($app)\n    {\n        if ($app->runningInConsole() && ($input = new ArgvInput)->hasParameterOption('--env')) {\n            if ($this->setEnvironmentFilePath(\n                $app, $app->environmentFile().'.'.$input->getParameterOption('--env')\n            )) {\n                return;\n            }\n        }\n\n        if (! env('APP_ENV')) {\n            return;\n        }\n\n        $this->setEnvironmentFilePath(\n            $app, $app->environmentFile().'.'.env('APP_ENV')\n        );\n    }\n\n    /**\n     * Load a custom environment file.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  string  $file\n     * @return bool\n     */\n    protected function setEnvironmentFilePath($app, $file)\n    {\n        if (file_exists($app->environmentPath().'/'.$file)) {\n            $app->loadEnvironmentFrom($file);\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Create a Dotenv instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return \\Dotenv\\Dotenv\n     */\n    protected function createDotenv($app)\n    {\n        return Dotenv::create(\n            $app->environmentPath(),\n            $app->environmentFile(),\n            new DotenvFactory([new EnvConstAdapter, new ServerConstAdapter, new PutenvAdapter])\n        );\n    }\n\n    /**\n     * Write the error information to the screen and exit.\n     *\n     * @param  \\Dotenv\\Exception\\InvalidFileException  $e\n     * @return void\n     */\n    protected function writeErrorAndDie(InvalidFileException $e)\n    {\n        $output = (new ConsoleOutput)->getErrorOutput();\n\n        $output->writeln('The environment file is invalid!');\n        $output->writeln($e->getMessage());\n\n        die(1);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Illuminate\\Foundation\\AliasLoader;\nuse Illuminate\\Support\\Facades\\Facade;\nuse Illuminate\\Foundation\\PackageManifest;\nuse Illuminate\\Contracts\\Foundation\\Application;\n\nclass RegisterFacades\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        Facade::clearResolvedInstances();\n\n        Facade::setFacadeApplication($app);\n\n        AliasLoader::getInstance(array_merge(\n            $app->make('config')->get('app.aliases', []),\n            $app->make(PackageManifest::class)->aliases()\n        ))->register();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Illuminate\\Contracts\\Foundation\\Application;\n\nclass RegisterProviders\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        $app->registerConfiguredProviders();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/SetRequestForConsole.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bootstrap;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Foundation\\Application;\n\nclass SetRequestForConsole\n{\n    /**\n     * Bootstrap the given application.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function bootstrap(Application $app)\n    {\n        $uri = $app->make('config')->get('app.url', 'http://localhost');\n\n        $components = parse_url($uri);\n\n        $server = $_SERVER;\n\n        if (isset($components['path'])) {\n            $server = array_merge($server, [\n                'SCRIPT_FILENAME' => $components['path'],\n                'SCRIPT_NAME' => $components['path'],\n            ]);\n        }\n\n        $app->instance('request', Request::create(\n            $uri, 'GET', [], [], [], $server\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bus;\n\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\n\ntrait Dispatchable\n{\n    /**\n     * Dispatch the job with the given arguments.\n     *\n     * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n     */\n    public static function dispatch()\n    {\n        return new PendingDispatch(new static(...func_get_args()));\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler in the current process.\n     *\n     * @return mixed\n     */\n    public static function dispatchNow()\n    {\n        return app(Dispatcher::class)->dispatchNow(new static(...func_get_args()));\n    }\n\n    /**\n     * Set the jobs that should run if this job is successful.\n     *\n     * @param  array  $chain\n     * @return \\Illuminate\\Foundation\\Bus\\PendingChain\n     */\n    public static function withChain($chain)\n    {\n        return new PendingChain(static::class, $chain);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bus/DispatchesJobs.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bus;\n\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\n\ntrait DispatchesJobs\n{\n    /**\n     * Dispatch a job to its appropriate handler.\n     *\n     * @param  mixed  $job\n     * @return mixed\n     */\n    protected function dispatch($job)\n    {\n        return app(Dispatcher::class)->dispatch($job);\n    }\n\n    /**\n     * Dispatch a job to its appropriate handler in the current process.\n     *\n     * @param  mixed  $job\n     * @return mixed\n     */\n    public function dispatchNow($job)\n    {\n        return app(Dispatcher::class)->dispatchNow($job);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingChain.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bus;\n\nclass PendingChain\n{\n    /**\n     * The class name of the job being dispatched.\n     *\n     * @var string\n     */\n    public $class;\n\n    /**\n     * The jobs to be chained.\n     *\n     * @var array\n     */\n    public $chain;\n\n    /**\n     * Create a new PendingChain instance.\n     *\n     * @param  string  $class\n     * @param  array  $chain\n     * @return void\n     */\n    public function __construct($class, $chain)\n    {\n        $this->class = $class;\n        $this->chain = $chain;\n    }\n\n    /**\n     * Dispatch the job with the given arguments.\n     *\n     * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n     */\n    public function dispatch()\n    {\n        return (new PendingDispatch(\n            new $this->class(...func_get_args())\n        ))->chain($this->chain);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Bus/PendingDispatch.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Bus;\n\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\n\nclass PendingDispatch\n{\n    /**\n     * The job.\n     *\n     * @var mixed\n     */\n    protected $job;\n\n    /**\n     * Create a new pending job dispatch.\n     *\n     * @param  mixed  $job\n     * @return void\n     */\n    public function __construct($job)\n    {\n        $this->job = $job;\n    }\n\n    /**\n     * Set the desired connection for the job.\n     *\n     * @param  string|null  $connection\n     * @return $this\n     */\n    public function onConnection($connection)\n    {\n        $this->job->onConnection($connection);\n\n        return $this;\n    }\n\n    /**\n     * Set the desired queue for the job.\n     *\n     * @param  string|null  $queue\n     * @return $this\n     */\n    public function onQueue($queue)\n    {\n        $this->job->onQueue($queue);\n\n        return $this;\n    }\n\n    /**\n     * Set the desired connection for the chain.\n     *\n     * @param  string|null  $connection\n     * @return $this\n     */\n    public function allOnConnection($connection)\n    {\n        $this->job->allOnConnection($connection);\n\n        return $this;\n    }\n\n    /**\n     * Set the desired queue for the chain.\n     *\n     * @param  string|null  $queue\n     * @return $this\n     */\n    public function allOnQueue($queue)\n    {\n        $this->job->allOnQueue($queue);\n\n        return $this;\n    }\n\n    /**\n     * Set the desired delay for the job.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $delay\n     * @return $this\n     */\n    public function delay($delay)\n    {\n        $this->job->delay($delay);\n\n        return $this;\n    }\n\n    /**\n     * Set the jobs that should run if this job is successful.\n     *\n     * @param  array  $chain\n     * @return $this\n     */\n    public function chain($chain)\n    {\n        $this->job->chain($chain);\n\n        return $this;\n    }\n\n    /**\n     * Handle the object's destruction.\n     *\n     * @return void\n     */\n    public function __destruct()\n    {\n        app(Dispatcher::class)->dispatch($this->job);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/ComposerScripts.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Composer\\Script\\Event;\n\nclass ComposerScripts\n{\n    /**\n     * Handle the post-install Composer event.\n     *\n     * @param  \\Composer\\Script\\Event  $event\n     * @return void\n     */\n    public static function postInstall(Event $event)\n    {\n        require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php';\n\n        static::clearCompiled();\n    }\n\n    /**\n     * Handle the post-update Composer event.\n     *\n     * @param  \\Composer\\Script\\Event  $event\n     * @return void\n     */\n    public static function postUpdate(Event $event)\n    {\n        require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php';\n\n        static::clearCompiled();\n    }\n\n    /**\n     * Handle the post-autoload-dump Composer event.\n     *\n     * @param  \\Composer\\Script\\Event  $event\n     * @return void\n     */\n    public static function postAutoloadDump(Event $event)\n    {\n        require_once $event->getComposer()->getConfig()->get('vendor-dir').'/autoload.php';\n\n        static::clearCompiled();\n    }\n\n    /**\n     * Clear the cached Laravel bootstrapping files.\n     *\n     * @return void\n     */\n    protected static function clearCompiled()\n    {\n        $laravel = new Application(getcwd());\n\n        if (file_exists($servicesPath = $laravel->getCachedServicesPath())) {\n            @unlink($servicesPath);\n        }\n\n        if (file_exists($packagesPath = $laravel->getCachedPackagesPath())) {\n            @unlink($packagesPath);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/AppNameCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Symfony\\Component\\Finder\\Finder;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nclass AppNameCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'app:name';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Set the application namespace';\n\n    /**\n     * The Composer class instance.\n     *\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Current root application namespace.\n     *\n     * @var string\n     */\n    protected $currentRoot;\n\n    /**\n     * Create a new key generator command.\n     *\n     * @param  \\Illuminate\\Support\\Composer  $composer\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Composer $composer, Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->currentRoot = trim($this->laravel->getNamespace(), '\\\\');\n\n        $this->setAppDirectoryNamespace();\n        $this->setBootstrapNamespaces();\n        $this->setConfigNamespaces();\n        $this->setComposerNamespace();\n        $this->setDatabaseFactoryNamespaces();\n\n        $this->info('Application namespace set!');\n\n        $this->composer->dumpAutoloads();\n\n        $this->call('optimize:clear');\n    }\n\n    /**\n     * Set the namespace on the files in the app directory.\n     *\n     * @return void\n     */\n    protected function setAppDirectoryNamespace()\n    {\n        $files = Finder::create()\n                            ->in($this->laravel['path'])\n                            ->contains($this->currentRoot)\n                            ->name('*.php');\n\n        foreach ($files as $file) {\n            $this->replaceNamespace($file->getRealPath());\n        }\n    }\n\n    /**\n     * Replace the App namespace at the given path.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    protected function replaceNamespace($path)\n    {\n        $search = [\n            'namespace '.$this->currentRoot.';',\n            $this->currentRoot.'\\\\',\n        ];\n\n        $replace = [\n            'namespace '.$this->argument('name').';',\n            $this->argument('name').'\\\\',\n        ];\n\n        $this->replaceIn($path, $search, $replace);\n    }\n\n    /**\n     * Set the bootstrap namespaces.\n     *\n     * @return void\n     */\n    protected function setBootstrapNamespaces()\n    {\n        $search = [\n            $this->currentRoot.'\\\\Http',\n            $this->currentRoot.'\\\\Console',\n            $this->currentRoot.'\\\\Exceptions',\n        ];\n\n        $replace = [\n            $this->argument('name').'\\\\Http',\n            $this->argument('name').'\\\\Console',\n            $this->argument('name').'\\\\Exceptions',\n        ];\n\n        $this->replaceIn($this->getBootstrapPath(), $search, $replace);\n    }\n\n    /**\n     * Set the namespace in the appropriate configuration files.\n     *\n     * @return void\n     */\n    protected function setConfigNamespaces()\n    {\n        $this->setAppConfigNamespaces();\n        $this->setAuthConfigNamespace();\n        $this->setServicesConfigNamespace();\n    }\n\n    /**\n     * Set the application provider namespaces.\n     *\n     * @return void\n     */\n    protected function setAppConfigNamespaces()\n    {\n        $search = [\n            $this->currentRoot.'\\\\Providers',\n            $this->currentRoot.'\\\\Http\\\\Controllers\\\\',\n        ];\n\n        $replace = [\n            $this->argument('name').'\\\\Providers',\n            $this->argument('name').'\\\\Http\\\\Controllers\\\\',\n        ];\n\n        $this->replaceIn($this->getConfigPath('app'), $search, $replace);\n    }\n\n    /**\n     * Set the authentication User namespace.\n     *\n     * @return void\n     */\n    protected function setAuthConfigNamespace()\n    {\n        $this->replaceIn(\n            $this->getConfigPath('auth'),\n            $this->currentRoot.'\\\\User',\n            $this->argument('name').'\\\\User'\n        );\n    }\n\n    /**\n     * Set the services User namespace.\n     *\n     * @return void\n     */\n    protected function setServicesConfigNamespace()\n    {\n        $this->replaceIn(\n            $this->getConfigPath('services'),\n            $this->currentRoot.'\\\\User',\n            $this->argument('name').'\\\\User'\n        );\n    }\n\n    /**\n     * Set the PSR-4 namespace in the Composer file.\n     *\n     * @return void\n     */\n    protected function setComposerNamespace()\n    {\n        $this->replaceIn(\n            $this->getComposerPath(),\n            str_replace('\\\\', '\\\\\\\\', $this->currentRoot).'\\\\\\\\',\n            str_replace('\\\\', '\\\\\\\\', $this->argument('name')).'\\\\\\\\'\n        );\n    }\n\n    /**\n     * Set the namespace in database factory files.\n     *\n     * @return void\n     */\n    protected function setDatabaseFactoryNamespaces()\n    {\n        $files = Finder::create()\n                            ->in(database_path('factories'))\n                            ->contains($this->currentRoot)\n                            ->name('*.php');\n\n        foreach ($files as $file) {\n            $this->replaceIn(\n                $file->getRealPath(),\n                $this->currentRoot, $this->argument('name')\n            );\n        }\n    }\n\n    /**\n     * Replace the given string in the given file.\n     *\n     * @param  string  $path\n     * @param  string|array  $search\n     * @param  string|array  $replace\n     * @return void\n     */\n    protected function replaceIn($path, $search, $replace)\n    {\n        if ($this->files->exists($path)) {\n            $this->files->put($path, str_replace($search, $replace, $this->files->get($path)));\n        }\n    }\n\n    /**\n     * Get the path to the bootstrap/app.php file.\n     *\n     * @return string\n     */\n    protected function getBootstrapPath()\n    {\n        return $this->laravel->bootstrapPath().'/app.php';\n    }\n\n    /**\n     * Get the path to the Composer.json file.\n     *\n     * @return string\n     */\n    protected function getComposerPath()\n    {\n        return base_path('composer.json');\n    }\n\n    /**\n     * Get the path to the given configuration file.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getConfigPath($name)\n    {\n        return $this->laravel['path.config'].'/'.$name.'.php';\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [\n            ['name', InputArgument::REQUIRED, 'The desired namespace'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ChannelMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass ChannelMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:channel';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new channel class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Channel';\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        return str_replace(\n            'DummyUser',\n            class_basename($this->userProviderModel()),\n            parent::buildClass($name)\n        );\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/channel.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Broadcasting';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ClearCompiledCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass ClearCompiledCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'clear-compiled';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove the compiled class file';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (file_exists($servicesPath = $this->laravel->getCachedServicesPath())) {\n            @unlink($servicesPath);\n        }\n\n        if (file_exists($packagesPath = $this->laravel->getCachedPackagesPath())) {\n            @unlink($packagesPath);\n        }\n\n        $this->info('Compiled services and packages files removed!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Closure;\nuse ReflectionFunction;\nuse Illuminate\\Console\\Command;\nuse Symfony\\Component\\Console\\Input\\InputInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\nclass ClosureCommand extends Command\n{\n    /**\n     * The command callback.\n     *\n     * @var \\Closure\n     */\n    protected $callback;\n\n    /**\n     * Create a new command instance.\n     *\n     * @param  string  $signature\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function __construct($signature, Closure $callback)\n    {\n        $this->callback = $callback;\n        $this->signature = $signature;\n\n        parent::__construct();\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @return mixed\n     */\n    protected function execute(InputInterface $input, OutputInterface $output)\n    {\n        $inputs = array_merge($input->getArguments(), $input->getOptions());\n\n        $parameters = [];\n\n        foreach ((new ReflectionFunction($this->callback))->getParameters() as $parameter) {\n            if (isset($inputs[$parameter->name])) {\n                $parameters[$parameter->name] = $inputs[$parameter->name];\n            }\n        }\n\n        return $this->laravel->call(\n            $this->callback->bindTo($this, $this), $parameters\n        );\n    }\n\n    /**\n     * Set the description for the command.\n     *\n     * @param  string  $description\n     * @return $this\n     */\n    public function describe($description)\n    {\n        $this->setDescription($description);\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigCacheCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Throwable;\nuse LogicException;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Contracts\\Console\\Kernel as ConsoleKernelContract;\n\nclass ConfigCacheCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'config:cache';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a cache file for faster configuration loading';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new config cache command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function handle()\n    {\n        $this->call('config:clear');\n\n        $config = $this->getFreshConfiguration();\n\n        $configPath = $this->laravel->getCachedConfigPath();\n\n        $this->files->put(\n            $configPath, '<?php return '.var_export($config, true).';'.PHP_EOL\n        );\n\n        try {\n            require $configPath;\n        } catch (Throwable $e) {\n            $this->files->delete($configPath);\n\n            throw new LogicException('Your configuration files are not serializable.', 0, $e);\n        }\n\n        $this->info('Configuration cached successfully!');\n    }\n\n    /**\n     * Boot a fresh copy of the application configuration.\n     *\n     * @return array\n     */\n    protected function getFreshConfiguration()\n    {\n        $app = require $this->laravel->bootstrapPath().'/app.php';\n\n        $app->useStoragePath($this->laravel->storagePath());\n\n        $app->make(ConsoleKernelContract::class)->bootstrap();\n\n        return $app['config']->all();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ConfigClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass ConfigClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'config:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove the configuration cache file';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new config clear command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->files->delete($this->laravel->getCachedConfigPath());\n\n        $this->info('Configuration cache cleared!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ConsoleMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nclass ConsoleMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:command';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new Artisan command';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Console command';\n\n    /**\n     * Replace the class name for the given stub.\n     *\n     * @param  string  $stub\n     * @param  string  $name\n     * @return string\n     */\n    protected function replaceClass($stub, $name)\n    {\n        $stub = parent::replaceClass($stub, $name);\n\n        return str_replace('dummy:command', $this->option('command'), $stub);\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/console.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Console\\Commands';\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [\n            ['name', InputArgument::REQUIRED, 'The name of the command'],\n        ];\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['command', null, InputOption::VALUE_OPTIONAL, 'The terminal command that should be assigned', 'command:name'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/DownCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Exception;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\InteractsWithTime;\n\nclass DownCommand extends Command\n{\n    use InteractsWithTime;\n\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'down {--message= : The message for the maintenance mode}\n                                 {--retry= : The number of seconds after which the request may be retried}\n                                 {--allow=* : IP or networks allowed to access the application while in maintenance mode}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Put the application into maintenance mode';\n\n    /**\n     * Execute the console command.\n     *\n     * @return int\n     */\n    public function handle()\n    {\n        try {\n            file_put_contents(storage_path('framework/down'),\n                              json_encode($this->getDownFilePayload(),\n                              JSON_PRETTY_PRINT));\n\n            $this->comment('Application is now in maintenance mode.');\n        } catch (Exception $e) {\n            $this->error('Failed to enter maintenance mode.');\n\n            $this->error($e->getMessage());\n\n            return 1;\n        }\n    }\n\n    /**\n     * Get the payload to be placed in the \"down\" file.\n     *\n     * @return array\n     */\n    protected function getDownFilePayload()\n    {\n        return [\n            'time' => $this->currentTime(),\n            'message' => $this->option('message'),\n            'retry' => $this->getRetryTime(),\n            'allowed' => $this->option('allow'),\n        ];\n    }\n\n    /**\n     * Get the number of seconds the client should wait before retrying their request.\n     *\n     * @return int|null\n     */\n    protected function getRetryTime()\n    {\n        $retry = $this->option('retry');\n\n        return is_numeric($retry) && $retry > 0 ? (int) $retry : null;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EnvironmentCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass EnvironmentCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'env';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Display the current framework environment';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->line('<info>Current application environment:</info> <comment>'.$this->laravel['env'].'</comment>');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EventCacheCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider;\n\nclass EventCacheCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'event:cache';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = \"Discover and cache the application's events and listeners\";\n\n    /**\n     * Execute the console command.\n     *\n     * @return mixed\n     */\n    public function handle()\n    {\n        $this->call('event:clear');\n\n        file_put_contents(\n            $this->laravel->getCachedEventsPath(),\n            '<?php return '.var_export($this->getEvents(), true).';'\n        );\n\n        $this->info('Events cached successfully!');\n    }\n\n    /**\n     * Get all of the events and listeners configured for the application.\n     *\n     * @return array\n     */\n    protected function getEvents()\n    {\n        $events = [];\n\n        foreach ($this->laravel->getProviders(EventServiceProvider::class) as $provider) {\n            $providerEvents = array_merge_recursive($provider->shouldDiscoverEvents() ? $provider->discoverEvents() : [], $provider->listens());\n\n            $events[get_class($provider)] = $providerEvents;\n        }\n\n        return $events;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EventClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass EventClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'event:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Clear all cached events and listeners';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new config clear command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    public function handle()\n    {\n        $this->files->delete($this->laravel->getCachedEventsPath());\n\n        $this->info('Cached events cleared!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EventGenerateCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider;\n\nclass EventGenerateCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'event:generate';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Generate the missing events and listeners based on registration';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $providers = $this->laravel->getProviders(EventServiceProvider::class);\n\n        foreach ($providers as $provider) {\n            foreach ($provider->listens() as $event => $listeners) {\n                $this->makeEventAndListeners($event, $listeners);\n            }\n        }\n\n        $this->info('Events and listeners generated successfully!');\n    }\n\n    /**\n     * Make the event and listeners for the given event.\n     *\n     * @param  string  $event\n     * @param  array  $listeners\n     * @return void\n     */\n    protected function makeEventAndListeners($event, $listeners)\n    {\n        if (! Str::contains($event, '\\\\')) {\n            return;\n        }\n\n        $this->callSilent('make:event', ['name' => $event]);\n\n        $this->makeListeners($event, $listeners);\n    }\n\n    /**\n     * Make the listeners for the given event.\n     *\n     * @param  string  $event\n     * @param  array  $listeners\n     * @return void\n     */\n    protected function makeListeners($event, $listeners)\n    {\n        foreach ($listeners as $listener) {\n            $listener = preg_replace('/@.+$/', '', $listener);\n\n            $this->callSilent('make:listener', array_filter(\n                ['name' => $listener, '--event' => $event]\n            ));\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EventListCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider;\n\nclass EventListCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'event:list {--event= : Filter the events by name}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = \"List the application's events and listeners\";\n\n    /**\n     * Execute the console command.\n     *\n     * @return mixed\n     */\n    public function handle()\n    {\n        $events = $this->getEvents();\n\n        if (empty($events)) {\n            return $this->error(\"Your application doesn't have any events matching the given criteria.\");\n        }\n\n        $this->table(['Event', 'Listeners'], $events);\n    }\n\n    /**\n     * Get all of the events and listeners configured for the application.\n     *\n     * @return array\n     */\n    protected function getEvents()\n    {\n        $events = [];\n\n        foreach ($this->laravel->getProviders(EventServiceProvider::class) as $provider) {\n            $providerEvents = array_merge_recursive($provider->discoverEvents(), $provider->listens());\n\n            $events = array_merge_recursive($events, $providerEvents);\n        }\n\n        if ($this->filteringByEvent()) {\n            $events = $this->filterEvents($events);\n        }\n\n        return collect($events)->map(function ($listeners, $event) {\n            return ['Event' => $event, 'Listeners' => implode(PHP_EOL, $listeners)];\n        })->sortBy('Event')->values()->toArray();\n    }\n\n    /**\n     * Filter the given events using the provided event name filter.\n     *\n     * @param  array  $events\n     * @return array\n     */\n    protected function filterEvents(array $events)\n    {\n        if (! $eventName = $this->option('event')) {\n            return $events;\n        }\n\n        return collect($events)->filter(function ($listeners, $event) use ($eventName) {\n            return Str::contains($event, $eventName);\n        })->toArray();\n    }\n\n    /**\n     * Determine whether the user is filtering by an event name.\n     *\n     * @return bool\n     */\n    protected function filteringByEvent()\n    {\n        return ! empty($this->option('event'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/EventMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass EventMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:event';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new event class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Event';\n\n    /**\n     * Determine if the class already exists.\n     *\n     * @param  string  $rawName\n     * @return bool\n     */\n    protected function alreadyExists($rawName)\n    {\n        return class_exists($rawName);\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/event.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Events';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ExceptionMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ExceptionMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:exception';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new custom exception class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Exception';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        if ($this->option('render')) {\n            return $this->option('report')\n                ? __DIR__.'/stubs/exception-render-report.stub'\n                : __DIR__.'/stubs/exception-render.stub';\n        }\n\n        return $this->option('report')\n            ? __DIR__.'/stubs/exception-report.stub'\n            : __DIR__.'/stubs/exception.stub';\n    }\n\n    /**\n     * Determine if the class already exists.\n     *\n     * @param  string  $rawName\n     * @return bool\n     */\n    protected function alreadyExists($rawName)\n    {\n        return class_exists($this->rootNamespace().'Exceptions\\\\'.$rawName);\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Exceptions';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['render', null, InputOption::VALUE_NONE, 'Create the exception with an empty render method'],\n\n            ['report', null, InputOption::VALUE_NONE, 'Create the exception with an empty report method'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/JobMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass JobMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:job';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new job class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Job';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->option('sync')\n                        ? __DIR__.'/stubs/job.stub'\n                        : __DIR__.'/stubs/job-queued.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Jobs';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['sync', null, InputOption::VALUE_NONE, 'Indicates that job should be synchronous'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Closure;\nuse Exception;\nuse Throwable;\nuse ReflectionClass;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\Command;\nuse Symfony\\Component\\Finder\\Finder;\nuse Illuminate\\Console\\Scheduling\\Schedule;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Console\\Application as Artisan;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Illuminate\\Contracts\\Console\\Kernel as KernelContract;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\nclass Kernel implements KernelContract\n{\n    /**\n     * The application implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The event dispatcher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The Artisan application instance.\n     *\n     * @var \\Illuminate\\Console\\Application\n     */\n    protected $artisan;\n\n    /**\n     * The Artisan commands provided by the application.\n     *\n     * @var array\n     */\n    protected $commands = [];\n\n    /**\n     * Indicates if the Closure commands have been loaded.\n     *\n     * @var bool\n     */\n    protected $commandsLoaded = false;\n\n    /**\n     * The bootstrap classes for the application.\n     *\n     * @var array\n     */\n    protected $bootstrappers = [\n        \\Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables::class,\n        \\Illuminate\\Foundation\\Bootstrap\\LoadConfiguration::class,\n        \\Illuminate\\Foundation\\Bootstrap\\HandleExceptions::class,\n        \\Illuminate\\Foundation\\Bootstrap\\RegisterFacades::class,\n        \\Illuminate\\Foundation\\Bootstrap\\SetRequestForConsole::class,\n        \\Illuminate\\Foundation\\Bootstrap\\RegisterProviders::class,\n        \\Illuminate\\Foundation\\Bootstrap\\BootProviders::class,\n    ];\n\n    /**\n     * Create a new console kernel instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function __construct(Application $app, Dispatcher $events)\n    {\n        if (! defined('ARTISAN_BINARY')) {\n            define('ARTISAN_BINARY', 'artisan');\n        }\n\n        $this->app = $app;\n        $this->events = $events;\n\n        $this->app->booted(function () {\n            $this->defineConsoleSchedule();\n        });\n    }\n\n    /**\n     * Define the application's command schedule.\n     *\n     * @return void\n     */\n    protected function defineConsoleSchedule()\n    {\n        $this->app->singleton(Schedule::class, function ($app) {\n            return (new Schedule($this->scheduleTimezone()))\n                    ->useCache($this->scheduleCache());\n        });\n\n        $schedule = $this->app->make(Schedule::class);\n\n        $this->schedule($schedule);\n    }\n\n    /**\n     * Get the name of the cache store that should manage scheduling mutexes.\n     *\n     * @return string\n     */\n    protected function scheduleCache()\n    {\n        return $_ENV['SCHEDULE_CACHE_DRIVER'] ?? null;\n    }\n\n    /**\n     * Run the console application.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $output\n     * @return int\n     */\n    public function handle($input, $output = null)\n    {\n        try {\n            $this->bootstrap();\n\n            return $this->getArtisan()->run($input, $output);\n        } catch (Exception $e) {\n            $this->reportException($e);\n\n            $this->renderException($output, $e);\n\n            return 1;\n        } catch (Throwable $e) {\n            $e = new FatalThrowableError($e);\n\n            $this->reportException($e);\n\n            $this->renderException($output, $e);\n\n            return 1;\n        }\n    }\n\n    /**\n     * Terminate the application.\n     *\n     * @param  \\Symfony\\Component\\Console\\Input\\InputInterface  $input\n     * @param  int  $status\n     * @return void\n     */\n    public function terminate($input, $status)\n    {\n        $this->app->terminate();\n    }\n\n    /**\n     * Define the application's command schedule.\n     *\n     * @param  \\Illuminate\\Console\\Scheduling\\Schedule  $schedule\n     * @return void\n     */\n    protected function schedule(Schedule $schedule)\n    {\n        //\n    }\n\n    /**\n     * Get the timezone that should be used by default for scheduled events.\n     *\n     * @return \\DateTimeZone|string|null\n     */\n    protected function scheduleTimezone()\n    {\n        $config = $this->app['config'];\n\n        return $config->get('app.schedule_timezone', $config->get('app.timezone'));\n    }\n\n    /**\n     * Register the Closure based commands for the application.\n     *\n     * @return void\n     */\n    protected function commands()\n    {\n        //\n    }\n\n    /**\n     * Register a Closure based command with the application.\n     *\n     * @param  string  $signature\n     * @param  \\Closure  $callback\n     * @return \\Illuminate\\Foundation\\Console\\ClosureCommand\n     */\n    public function command($signature, Closure $callback)\n    {\n        $command = new ClosureCommand($signature, $callback);\n\n        Artisan::starting(function ($artisan) use ($command) {\n            $artisan->add($command);\n        });\n\n        return $command;\n    }\n\n    /**\n     * Register all of the commands in the given directory.\n     *\n     * @param  array|string  $paths\n     * @return void\n     */\n    protected function load($paths)\n    {\n        $paths = array_unique(Arr::wrap($paths));\n\n        $paths = array_filter($paths, function ($path) {\n            return is_dir($path);\n        });\n\n        if (empty($paths)) {\n            return;\n        }\n\n        $namespace = $this->app->getNamespace();\n\n        foreach ((new Finder)->in($paths)->files() as $command) {\n            $command = $namespace.str_replace(\n                ['/', '.php'],\n                ['\\\\', ''],\n                Str::after($command->getPathname(), realpath(app_path()).DIRECTORY_SEPARATOR)\n            );\n\n            if (is_subclass_of($command, Command::class) &&\n                ! (new ReflectionClass($command))->isAbstract()) {\n                Artisan::starting(function ($artisan) use ($command) {\n                    $artisan->resolve($command);\n                });\n            }\n        }\n    }\n\n    /**\n     * Register the given command with the console application.\n     *\n     * @param  \\Symfony\\Component\\Console\\Command\\Command  $command\n     * @return void\n     */\n    public function registerCommand($command)\n    {\n        $this->getArtisan()->add($command);\n    }\n\n    /**\n     * Run an Artisan console command by name.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface|null  $outputBuffer\n     * @return int\n     *\n     * @throws \\Symfony\\Component\\Console\\Exception\\CommandNotFoundException\n     */\n    public function call($command, array $parameters = [], $outputBuffer = null)\n    {\n        $this->bootstrap();\n\n        return $this->getArtisan()->call($command, $parameters, $outputBuffer);\n    }\n\n    /**\n     * Queue the given console command.\n     *\n     * @param  string  $command\n     * @param  array   $parameters\n     * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n     */\n    public function queue($command, array $parameters = [])\n    {\n        return QueuedCommand::dispatch(func_get_args());\n    }\n\n    /**\n     * Get all of the commands registered with the console.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        $this->bootstrap();\n\n        return $this->getArtisan()->all();\n    }\n\n    /**\n     * Get the output for the last run command.\n     *\n     * @return string\n     */\n    public function output()\n    {\n        $this->bootstrap();\n\n        return $this->getArtisan()->output();\n    }\n\n    /**\n     * Bootstrap the application for artisan commands.\n     *\n     * @return void\n     */\n    public function bootstrap()\n    {\n        if (! $this->app->hasBeenBootstrapped()) {\n            $this->app->bootstrapWith($this->bootstrappers());\n        }\n\n        $this->app->loadDeferredProviders();\n\n        if (! $this->commandsLoaded) {\n            $this->commands();\n\n            $this->commandsLoaded = true;\n        }\n    }\n\n    /**\n     * Get the Artisan application instance.\n     *\n     * @return \\Illuminate\\Console\\Application\n     */\n    protected function getArtisan()\n    {\n        if (is_null($this->artisan)) {\n            return $this->artisan = (new Artisan($this->app, $this->events, $this->app->version()))\n                                ->resolveCommands($this->commands);\n        }\n\n        return $this->artisan;\n    }\n\n    /**\n     * Set the Artisan application instance.\n     *\n     * @param  \\Illuminate\\Console\\Application  $artisan\n     * @return void\n     */\n    public function setArtisan($artisan)\n    {\n        $this->artisan = $artisan;\n    }\n\n    /**\n     * Get the bootstrap classes for the application.\n     *\n     * @return array\n     */\n    protected function bootstrappers()\n    {\n        return $this->bootstrappers;\n    }\n\n    /**\n     * Report the exception to the exception handler.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function reportException(Exception $e)\n    {\n        $this->app[ExceptionHandler::class]->report($e);\n    }\n\n    /**\n     * Render the given exception.\n     *\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function renderException($output, Exception $e)\n    {\n        $this->app[ExceptionHandler::class]->renderForConsole($output, $e);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/KeyGenerateCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Encryption\\Encrypter;\nuse Illuminate\\Console\\ConfirmableTrait;\n\nclass KeyGenerateCommand extends Command\n{\n    use ConfirmableTrait;\n\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'key:generate\n                    {--show : Display the key instead of modifying files}\n                    {--force : Force the operation to run when in production}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Set the application key';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $key = $this->generateRandomKey();\n\n        if ($this->option('show')) {\n            return $this->line('<comment>'.$key.'</comment>');\n        }\n\n        // Next, we will replace the application key in the environment file so it is\n        // automatically setup for this developer. This key gets generated using a\n        // secure random byte generator and is later base64 encoded for storage.\n        if (! $this->setKeyInEnvironmentFile($key)) {\n            return;\n        }\n\n        $this->laravel['config']['app.key'] = $key;\n\n        $this->info('Application key set successfully.');\n    }\n\n    /**\n     * Generate a random key for the application.\n     *\n     * @return string\n     */\n    protected function generateRandomKey()\n    {\n        return 'base64:'.base64_encode(\n            Encrypter::generateKey($this->laravel['config']['app.cipher'])\n        );\n    }\n\n    /**\n     * Set the application key in the environment file.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    protected function setKeyInEnvironmentFile($key)\n    {\n        $currentKey = $this->laravel['config']['app.key'];\n\n        if (strlen($currentKey) !== 0 && (! $this->confirmToProceed())) {\n            return false;\n        }\n\n        $this->writeNewEnvironmentFileWith($key);\n\n        return true;\n    }\n\n    /**\n     * Write a new environment file with the given key.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    protected function writeNewEnvironmentFileWith($key)\n    {\n        file_put_contents($this->laravel->environmentFilePath(), preg_replace(\n            $this->keyReplacementPattern(),\n            'APP_KEY='.$key,\n            file_get_contents($this->laravel->environmentFilePath())\n        ));\n    }\n\n    /**\n     * Get a regex pattern that will match env APP_KEY with any random key.\n     *\n     * @return string\n     */\n    protected function keyReplacementPattern()\n    {\n        $escaped = preg_quote('='.$this->laravel['config']['app.key'], '/');\n\n        return \"/^APP_KEY{$escaped}/m\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ListenerMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ListenerMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:listener';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new event listener class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Listener';\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $event = $this->option('event');\n\n        if (! Str::startsWith($event, [\n            $this->laravel->getNamespace(),\n            'Illuminate',\n            '\\\\',\n        ])) {\n            $event = $this->laravel->getNamespace().'Events\\\\'.$event;\n        }\n\n        $stub = str_replace(\n            'DummyEvent', class_basename($event), parent::buildClass($name)\n        );\n\n        return str_replace(\n            'DummyFullEvent', trim($event, '\\\\'), $stub\n        );\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        if ($this->option('queued')) {\n            return $this->option('event')\n                        ? __DIR__.'/stubs/listener-queued.stub'\n                        : __DIR__.'/stubs/listener-queued-duck.stub';\n        }\n\n        return $this->option('event')\n                    ? __DIR__.'/stubs/listener.stub'\n                    : __DIR__.'/stubs/listener-duck.stub';\n    }\n\n    /**\n     * Determine if the class already exists.\n     *\n     * @param  string  $rawName\n     * @return bool\n     */\n    protected function alreadyExists($rawName)\n    {\n        return class_exists($rawName);\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Listeners';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['event', 'e', InputOption::VALUE_OPTIONAL, 'The event class being listened for'],\n\n            ['queued', null, InputOption::VALUE_NONE, 'Indicates the event listener should be queued'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/MailMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass MailMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:mail';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new email class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Mail';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (parent::handle() === false && ! $this->option('force')) {\n            return;\n        }\n\n        if ($this->option('markdown')) {\n            $this->writeMarkdownTemplate();\n        }\n    }\n\n    /**\n     * Write the Markdown template for the mailable.\n     *\n     * @return void\n     */\n    protected function writeMarkdownTemplate()\n    {\n        $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php';\n\n        if (! $this->files->isDirectory(dirname($path))) {\n            $this->files->makeDirectory(dirname($path), 0755, true);\n        }\n\n        $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub'));\n    }\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $class = parent::buildClass($name);\n\n        if ($this->option('markdown')) {\n            $class = str_replace('DummyView', $this->option('markdown'), $class);\n        }\n\n        return $class;\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->option('markdown')\n                        ? __DIR__.'/stubs/markdown-mail.stub'\n                        : __DIR__.'/stubs/mail.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Mail';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the mailable already exists'],\n\n            ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the mailable'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ModelMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ModelMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:model';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new Eloquent model class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Model';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (parent::handle() === false && ! $this->option('force')) {\n            return false;\n        }\n\n        if ($this->option('all')) {\n            $this->input->setOption('factory', true);\n            $this->input->setOption('migration', true);\n            $this->input->setOption('controller', true);\n            $this->input->setOption('resource', true);\n        }\n\n        if ($this->option('factory')) {\n            $this->createFactory();\n        }\n\n        if ($this->option('migration')) {\n            $this->createMigration();\n        }\n\n        if ($this->option('controller') || $this->option('resource')) {\n            $this->createController();\n        }\n    }\n\n    /**\n     * Create a model factory for the model.\n     *\n     * @return void\n     */\n    protected function createFactory()\n    {\n        $factory = Str::studly(class_basename($this->argument('name')));\n\n        $this->call('make:factory', [\n            'name' => \"{$factory}Factory\",\n            '--model' => $this->qualifyClass($this->getNameInput()),\n        ]);\n    }\n\n    /**\n     * Create a migration file for the model.\n     *\n     * @return void\n     */\n    protected function createMigration()\n    {\n        $table = Str::snake(Str::pluralStudly(class_basename($this->argument('name'))));\n\n        if ($this->option('pivot')) {\n            $table = Str::singular($table);\n        }\n\n        $this->call('make:migration', [\n            'name' => \"create_{$table}_table\",\n            '--create' => $table,\n        ]);\n    }\n\n    /**\n     * Create a controller for the model.\n     *\n     * @return void\n     */\n    protected function createController()\n    {\n        $controller = Str::studly(class_basename($this->argument('name')));\n\n        $modelName = $this->qualifyClass($this->getNameInput());\n\n        $this->call('make:controller', [\n            'name' => \"{$controller}Controller\",\n            '--model' => $this->option('resource') ? $modelName : null,\n        ]);\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        if ($this->option('pivot')) {\n            return __DIR__.'/stubs/pivot.model.stub';\n        }\n\n        return __DIR__.'/stubs/model.stub';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['all', 'a', InputOption::VALUE_NONE, 'Generate a migration, factory, and resource controller for the model'],\n\n            ['controller', 'c', InputOption::VALUE_NONE, 'Create a new controller for the model'],\n\n            ['factory', 'f', InputOption::VALUE_NONE, 'Create a new factory for the model'],\n\n            ['force', null, InputOption::VALUE_NONE, 'Create the class even if the model already exists'],\n\n            ['migration', 'm', InputOption::VALUE_NONE, 'Create a new migration file for the model'],\n\n            ['pivot', 'p', InputOption::VALUE_NONE, 'Indicates if the generated model should be a custom intermediate table model'],\n\n            ['resource', 'r', InputOption::VALUE_NONE, 'Indicates if the generated controller should be a resource controller'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/NotificationMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass NotificationMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:notification';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new notification class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Notification';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (parent::handle() === false && ! $this->option('force')) {\n            return;\n        }\n\n        if ($this->option('markdown')) {\n            $this->writeMarkdownTemplate();\n        }\n    }\n\n    /**\n     * Write the Markdown template for the mailable.\n     *\n     * @return void\n     */\n    protected function writeMarkdownTemplate()\n    {\n        $path = resource_path('views/'.str_replace('.', '/', $this->option('markdown'))).'.blade.php';\n\n        if (! $this->files->isDirectory(dirname($path))) {\n            $this->files->makeDirectory(dirname($path), 0755, true);\n        }\n\n        $this->files->put($path, file_get_contents(__DIR__.'/stubs/markdown.stub'));\n    }\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $class = parent::buildClass($name);\n\n        if ($this->option('markdown')) {\n            $class = str_replace('DummyView', $this->option('markdown'), $class);\n        }\n\n        return $class;\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->option('markdown')\n                        ? __DIR__.'/stubs/markdown-notification.stub'\n                        : __DIR__.'/stubs/notification.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Notifications';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['force', 'f', InputOption::VALUE_NONE, 'Create the class even if the notification already exists'],\n\n            ['markdown', 'm', InputOption::VALUE_OPTIONAL, 'Create a new Markdown template for the notification'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ObserverMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ObserverMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:observer';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new observer class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Observer';\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $stub = parent::buildClass($name);\n\n        $model = $this->option('model');\n\n        return $model ? $this->replaceModel($stub, $model) : $stub;\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->option('model')\n                    ? __DIR__.'/stubs/observer.stub'\n                    : __DIR__.'/stubs/observer.plain.stub';\n    }\n\n    /**\n     * Replace the model for the given stub.\n     *\n     * @param  string  $stub\n     * @param  string  $model\n     * @return string\n     */\n    protected function replaceModel($stub, $model)\n    {\n        $model = str_replace('/', '\\\\', $model);\n\n        $namespaceModel = $this->laravel->getNamespace().$model;\n\n        if (Str::startsWith($model, '\\\\')) {\n            $stub = str_replace('NamespacedDummyModel', trim($model, '\\\\'), $stub);\n        } else {\n            $stub = str_replace('NamespacedDummyModel', $namespaceModel, $stub);\n        }\n\n        $stub = str_replace(\n            \"use {$namespaceModel};\\nuse {$namespaceModel};\", \"use {$namespaceModel};\", $stub\n        );\n\n        $model = class_basename(trim($model, '\\\\'));\n\n        $stub = str_replace('DocDummyModel', Str::snake($model, ' '), $stub);\n\n        $stub = str_replace('DummyModel', $model, $stub);\n\n        return str_replace('dummyModel', Str::camel($model), $stub);\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Observers';\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['model', 'm', InputOption::VALUE_OPTIONAL, 'The model that the observer applies to.'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass OptimizeClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'optimize:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove the cached bootstrap files';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->call('view:clear');\n        $this->call('cache:clear');\n        $this->call('route:clear');\n        $this->call('config:clear');\n        $this->call('clear-compiled');\n\n        $this->info('Caches cleared successfully!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass OptimizeCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'optimize';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Cache the framework bootstrap files';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->call('config:cache');\n        $this->call('route:cache');\n\n        $this->info('Files cached successfully!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/PackageDiscoverCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Foundation\\PackageManifest;\n\nclass PackageDiscoverCommand extends Command\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'package:discover';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Rebuild the cached package manifest';\n\n    /**\n     * Execute the console command.\n     *\n     * @param  \\Illuminate\\Foundation\\PackageManifest  $manifest\n     * @return void\n     */\n    public function handle(PackageManifest $manifest)\n    {\n        $manifest->build();\n\n        foreach (array_keys($manifest->manifest) as $package) {\n            $this->line(\"Discovered Package: <info>{$package}</info>\");\n        }\n\n        $this->info('Package manifest generated successfully.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/PolicyMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass PolicyMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:policy';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new policy class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Policy';\n\n    /**\n     * Build the class with the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $stub = $this->replaceUserNamespace(\n            parent::buildClass($name)\n        );\n\n        $model = $this->option('model');\n\n        return $model ? $this->replaceModel($stub, $model) : $stub;\n    }\n\n    /**\n     * Replace the User model namespace.\n     *\n     * @param  string  $stub\n     * @return string\n     */\n    protected function replaceUserNamespace($stub)\n    {\n        $model = $this->userProviderModel();\n\n        if (! $model) {\n            return $stub;\n        }\n\n        return str_replace(\n            $this->rootNamespace().'User',\n            $model,\n            $stub\n        );\n    }\n\n    /**\n     * Replace the model for the given stub.\n     *\n     * @param  string  $stub\n     * @param  string  $model\n     * @return string\n     */\n    protected function replaceModel($stub, $model)\n    {\n        $model = str_replace('/', '\\\\', $model);\n\n        $namespaceModel = $this->laravel->getNamespace().$model;\n\n        if (Str::startsWith($model, '\\\\')) {\n            $stub = str_replace('NamespacedDummyModel', trim($model, '\\\\'), $stub);\n        } else {\n            $stub = str_replace('NamespacedDummyModel', $namespaceModel, $stub);\n        }\n\n        $stub = str_replace(\n            \"use {$namespaceModel};\\nuse {$namespaceModel};\", \"use {$namespaceModel};\", $stub\n        );\n\n        $model = class_basename(trim($model, '\\\\'));\n\n        $dummyUser = class_basename($this->userProviderModel());\n\n        $dummyModel = Str::camel($model) === 'user' ? 'model' : $model;\n\n        $stub = str_replace('DocDummyModel', Str::snake($dummyModel, ' '), $stub);\n\n        $stub = str_replace('DummyModel', $model, $stub);\n\n        $stub = str_replace('dummyModel', Str::camel($dummyModel), $stub);\n\n        $stub = str_replace('DummyUser', $dummyUser, $stub);\n\n        return str_replace('DocDummyPluralModel', Str::snake(Str::pluralStudly($dummyModel), ' '), $stub);\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->option('model')\n                    ? __DIR__.'/stubs/policy.stub'\n                    : __DIR__.'/stubs/policy.plain.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Policies';\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['model', 'm', InputOption::VALUE_OPTIONAL, 'The model that the policy applies to'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/PresetCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse InvalidArgumentException;\nuse Illuminate\\Console\\Command;\n\nclass PresetCommand extends Command\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'preset\n                            { type : The preset type (none, bootstrap, vue, react) }\n                            { --option=* : Pass an option to the preset command }';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Swap the front-end scaffolding for the application';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function handle()\n    {\n        if (static::hasMacro($this->argument('type'))) {\n            return call_user_func(static::$macros[$this->argument('type')], $this);\n        }\n\n        if (! in_array($this->argument('type'), ['none', 'bootstrap', 'vue', 'react'])) {\n            throw new InvalidArgumentException('Invalid preset.');\n        }\n\n        return $this->{$this->argument('type')}();\n    }\n\n    /**\n     * Install the \"fresh\" preset.\n     *\n     * @return void\n     */\n    protected function none()\n    {\n        Presets\\None::install();\n\n        $this->info('Frontend scaffolding removed successfully.');\n    }\n\n    /**\n     * Install the \"bootstrap\" preset.\n     *\n     * @return void\n     */\n    protected function bootstrap()\n    {\n        Presets\\Bootstrap::install();\n\n        $this->info('Bootstrap scaffolding installed successfully.');\n        $this->comment('Please run \"npm install && npm run dev\" to compile your fresh scaffolding.');\n    }\n\n    /**\n     * Install the \"vue\" preset.\n     *\n     * @return void\n     */\n    protected function vue()\n    {\n        Presets\\Vue::install();\n\n        $this->info('Vue scaffolding installed successfully.');\n        $this->comment('Please run \"npm install && npm run dev\" to compile your fresh scaffolding.');\n    }\n\n    /**\n     * Install the \"react\" preset.\n     *\n     * @return void\n     */\n    protected function react()\n    {\n        Presets\\React::install();\n\n        $this->info('React scaffolding installed successfully.');\n        $this->comment('Please run \"npm install && npm run dev\" to compile your fresh scaffolding.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Bootstrap.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console\\Presets;\n\nclass Bootstrap extends Preset\n{\n    /**\n     * Install the preset.\n     *\n     * @return void\n     */\n    public static function install()\n    {\n        static::updatePackages();\n        static::updateSass();\n        static::removeNodeModules();\n    }\n\n    /**\n     * Update the given package array.\n     *\n     * @param  array  $packages\n     * @return array\n     */\n    protected static function updatePackageArray(array $packages)\n    {\n        return [\n            'bootstrap' => '^4.0.0',\n            'jquery' => '^3.2',\n            'popper.js' => '^1.12',\n        ] + $packages;\n    }\n\n    /**\n     * Update the Sass files for the application.\n     *\n     * @return void\n     */\n    protected static function updateSass()\n    {\n        copy(__DIR__.'/bootstrap-stubs/_variables.scss', resource_path('sass/_variables.scss'));\n        copy(__DIR__.'/bootstrap-stubs/app.scss', resource_path('sass/app.scss'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/None.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console\\Presets;\n\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass None extends Preset\n{\n    /**\n     * Install the preset.\n     *\n     * @return void\n     */\n    public static function install()\n    {\n        static::updatePackages();\n        static::updateBootstrapping();\n        static::updateWebpackConfiguration();\n\n        tap(new Filesystem, function ($filesystem) {\n            $filesystem->deleteDirectory(resource_path('js/components'));\n            $filesystem->delete(resource_path('sass/_variables.scss'));\n            $filesystem->deleteDirectory(base_path('node_modules'));\n            $filesystem->deleteDirectory(public_path('css'));\n            $filesystem->deleteDirectory(public_path('js'));\n        });\n    }\n\n    /**\n     * Update the given package array.\n     *\n     * @param  array  $packages\n     * @return array\n     */\n    protected static function updatePackageArray(array $packages)\n    {\n        unset(\n            $packages['bootstrap'],\n            $packages['jquery'],\n            $packages['popper.js'],\n            $packages['vue'],\n            $packages['vue-template-compiler'],\n            $packages['@babel/preset-react'],\n            $packages['react'],\n            $packages['react-dom']\n        );\n\n        return $packages;\n    }\n\n    /**\n     * Write the stubs for the Sass and JavaScript files.\n     *\n     * @return void\n     */\n    protected static function updateBootstrapping()\n    {\n        file_put_contents(resource_path('sass/app.scss'), ''.PHP_EOL);\n        copy(__DIR__.'/none-stubs/app.js', resource_path('js/app.js'));\n        copy(__DIR__.'/none-stubs/bootstrap.js', resource_path('js/bootstrap.js'));\n    }\n\n    /**\n     * Update the Webpack configuration.\n     *\n     * @return void\n     */\n    protected static function updateWebpackConfiguration()\n    {\n        copy(__DIR__.'/none-stubs/webpack.mix.js', base_path('webpack.mix.js'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Preset.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console\\Presets;\n\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass Preset\n{\n    /**\n     * Ensure the component directories we need exist.\n     *\n     * @return void\n     */\n    protected static function ensureComponentDirectoryExists()\n    {\n        $filesystem = new Filesystem;\n\n        if (! $filesystem->isDirectory($directory = resource_path('js/components'))) {\n            $filesystem->makeDirectory($directory, 0755, true);\n        }\n    }\n\n    /**\n     * Update the \"package.json\" file.\n     *\n     * @param  bool  $dev\n     * @return void\n     */\n    protected static function updatePackages($dev = true)\n    {\n        if (! file_exists(base_path('package.json'))) {\n            return;\n        }\n\n        $configurationKey = $dev ? 'devDependencies' : 'dependencies';\n\n        $packages = json_decode(file_get_contents(base_path('package.json')), true);\n\n        $packages[$configurationKey] = static::updatePackageArray(\n            array_key_exists($configurationKey, $packages) ? $packages[$configurationKey] : [],\n            $configurationKey\n        );\n\n        ksort($packages[$configurationKey]);\n\n        file_put_contents(\n            base_path('package.json'),\n            json_encode($packages, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT).PHP_EOL\n        );\n    }\n\n    /**\n     * Remove the installed Node modules.\n     *\n     * @return void\n     */\n    protected static function removeNodeModules()\n    {\n        tap(new Filesystem, function ($files) {\n            $files->deleteDirectory(base_path('node_modules'));\n\n            $files->delete(base_path('yarn.lock'));\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/React.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console\\Presets;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass React extends Preset\n{\n    /**\n     * Install the preset.\n     *\n     * @return void\n     */\n    public static function install()\n    {\n        static::ensureComponentDirectoryExists();\n        static::updatePackages();\n        static::updateWebpackConfiguration();\n        static::updateBootstrapping();\n        static::updateComponent();\n        static::removeNodeModules();\n    }\n\n    /**\n     * Update the given package array.\n     *\n     * @param  array  $packages\n     * @return array\n     */\n    protected static function updatePackageArray(array $packages)\n    {\n        return [\n            '@babel/preset-react' => '^7.0.0',\n            'react' => '^16.2.0',\n            'react-dom' => '^16.2.0',\n        ] + Arr::except($packages, ['vue', 'vue-template-compiler']);\n    }\n\n    /**\n     * Update the Webpack configuration.\n     *\n     * @return void\n     */\n    protected static function updateWebpackConfiguration()\n    {\n        copy(__DIR__.'/react-stubs/webpack.mix.js', base_path('webpack.mix.js'));\n    }\n\n    /**\n     * Update the example component.\n     *\n     * @return void\n     */\n    protected static function updateComponent()\n    {\n        (new Filesystem)->delete(\n            resource_path('js/components/ExampleComponent.vue')\n        );\n\n        copy(\n            __DIR__.'/react-stubs/Example.js',\n            resource_path('js/components/Example.js')\n        );\n    }\n\n    /**\n     * Update the bootstrapping files.\n     *\n     * @return void\n     */\n    protected static function updateBootstrapping()\n    {\n        copy(__DIR__.'/react-stubs/app.js', resource_path('js/app.js'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/Vue.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console\\Presets;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass Vue extends Preset\n{\n    /**\n     * Install the preset.\n     *\n     * @return void\n     */\n    public static function install()\n    {\n        static::ensureComponentDirectoryExists();\n        static::updatePackages();\n        static::updateWebpackConfiguration();\n        static::updateBootstrapping();\n        static::updateComponent();\n        static::removeNodeModules();\n    }\n\n    /**\n     * Update the given package array.\n     *\n     * @param  array  $packages\n     * @return array\n     */\n    protected static function updatePackageArray(array $packages)\n    {\n        return ['vue' => '^2.5.17'] + Arr::except($packages, [\n            '@babel/preset-react',\n            'react',\n            'react-dom',\n        ]);\n    }\n\n    /**\n     * Update the Webpack configuration.\n     *\n     * @return void\n     */\n    protected static function updateWebpackConfiguration()\n    {\n        copy(__DIR__.'/vue-stubs/webpack.mix.js', base_path('webpack.mix.js'));\n    }\n\n    /**\n     * Update the example component.\n     *\n     * @return void\n     */\n    protected static function updateComponent()\n    {\n        (new Filesystem)->delete(\n            resource_path('js/components/Example.js')\n        );\n\n        copy(\n            __DIR__.'/vue-stubs/ExampleComponent.vue',\n            resource_path('js/components/ExampleComponent.vue')\n        );\n    }\n\n    /**\n     * Update the bootstrapping files.\n     *\n     * @return void\n     */\n    protected static function updateBootstrapping()\n    {\n        copy(__DIR__.'/vue-stubs/app.js', resource_path('js/app.js'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/_variables.scss",
    "content": "// Body\n$body-bg: #f8fafc;\n\n// Typography\n$font-family-sans-serif: 'Nunito', sans-serif;\n$font-size-base: 0.9rem;\n$line-height-base: 1.6;\n\n// Colors\n$blue: #3490dc;\n$indigo: #6574cd;\n$purple: #9561e2;\n$pink: #f66d9b;\n$red: #e3342f;\n$orange: #f6993f;\n$yellow: #ffed4a;\n$green: #38c172;\n$teal: #4dc0b5;\n$cyan: #6cb2eb;\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/bootstrap-stubs/app.scss",
    "content": "// Fonts\n@import url('https://fonts.googleapis.com/css?family=Nunito');\n\n// Variables\n@import 'variables';\n\n// Bootstrap\n@import '~bootstrap/scss/bootstrap';\n\n.navbar-laravel {\n    background-color: #fff;\n    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/app.js",
    "content": "/**\n * First, we will load all of this project's Javascript utilities and other\n * dependencies. Then, we will be ready to develop a robust and powerful\n * application frontend using useful Laravel and JavaScript libraries.\n */\n\nrequire('./bootstrap');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/bootstrap.js",
    "content": "window._ = require('lodash');\n\n/**\n * We'll load the axios HTTP library which allows us to easily issue requests\n * to our Laravel back-end. This library automatically handles sending the\n * CSRF token as a header based on the value of the \"XSRF\" token cookie.\n */\n\nwindow.axios = require('axios');\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\n/**\n * Next we will register the CSRF Token as a common header with Axios so that\n * all outgoing HTTP requests automatically have it attached. This is just\n * a simple convenience so we don't have to attach every token manually.\n */\n\nlet token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n} else {\n    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\n/**\n * Echo exposes an expressive API for subscribing to channels and listening\n * for events that are broadcast by Laravel. Echo and event broadcasting\n * allows your team to easily build robust real-time web applications.\n */\n\n// import Echo from 'laravel-echo'\n\n// window.Pusher = require('pusher-js');\n\n// window.Echo = new Echo({\n//     broadcaster: 'pusher',\n//     key: process.env.MIX_PUSHER_APP_KEY,\n//     cluster: process.env.MIX_PUSHER_APP_CLUSTER,\n//     encrypted: true\n// });\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/none-stubs/webpack.mix.js",
    "content": "const mix = require('laravel-mix');\n\n/*\n |--------------------------------------------------------------------------\n | Mix Asset Management\n |--------------------------------------------------------------------------\n |\n | Mix provides a clean, fluent API for defining some Webpack build steps\n | for your Laravel application. By default, we are compiling the Sass\n | file for the application as well as bundling up all the JS files.\n |\n */\n\nmix.js('resources/js/app.js', 'public/js')\n   .sass('resources/sass/app.scss', 'public/css');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/Example.js",
    "content": "import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\n\nexport default class Example extends Component {\n    render() {\n        return (\n            <div className=\"container\">\n                <div className=\"row justify-content-center\">\n                    <div className=\"col-md-8\">\n                        <div className=\"card\">\n                            <div className=\"card-header\">Example Component</div>\n\n                            <div className=\"card-body\">I'm an example component!</div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        );\n    }\n}\n\nif (document.getElementById('example')) {\n    ReactDOM.render(<Example />, document.getElementById('example'));\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/app.js",
    "content": "/**\n * First we will load all of this project's JavaScript dependencies which\n * includes React and other helpers. It's a great starting point while\n * building robust, powerful web applications using React + Laravel.\n */\n\nrequire('./bootstrap');\n\n/**\n * Next, we will create a fresh React component instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\nrequire('./components/Example');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/react-stubs/webpack.mix.js",
    "content": "const mix = require('laravel-mix');\n\n/*\n |--------------------------------------------------------------------------\n | Mix Asset Management\n |--------------------------------------------------------------------------\n |\n | Mix provides a clean, fluent API for defining some Webpack build steps\n | for your Laravel application. By default, we are compiling the Sass\n | file for the application as well as bundling up all the JS files.\n |\n */\n\nmix.react('resources/js/app.js', 'public/js')\n   .sass('resources/sass/app.scss', 'public/css');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/ExampleComponent.vue",
    "content": "<template>\n    <div class=\"container\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-md-8\">\n                <div class=\"card\">\n                    <div class=\"card-header\">Example Component</div>\n\n                    <div class=\"card-body\">\n                        I'm an example component.\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    export default {\n        mounted() {\n            console.log('Component mounted.')\n        }\n    }\n</script>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/app.js",
    "content": "/**\n * First we will load all of this project's JavaScript dependencies which\n * includes Vue and other libraries. It is a great starting point when\n * building robust, powerful web applications using Vue and Laravel.\n */\n\nrequire('./bootstrap');\n\nwindow.Vue = require('vue');\n\n/**\n * The following block of code may be used to automatically register your\n * Vue components. It will recursively scan this directory for the Vue\n * components and automatically register them with their \"basename\".\n *\n * Eg. ./components/ExampleComponent.vue -> <example-component></example-component>\n */\n\n// const files = require.context('./', true, /\\.vue$/i)\n// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))\n\nVue.component('example-component', require('./components/ExampleComponent.vue').default);\n\n/**\n * Next, we will create a fresh Vue application instance and attach it to\n * the page. Then, you may begin adding components to this application\n * or customize the JavaScript scaffolding to fit your unique needs.\n */\n\nconst app = new Vue({\n    el: '#app',\n});\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/Presets/vue-stubs/webpack.mix.js",
    "content": "const mix = require('laravel-mix');\n\n/*\n |--------------------------------------------------------------------------\n | Mix Asset Management\n |--------------------------------------------------------------------------\n |\n | Mix provides a clean, fluent API for defining some Webpack build steps\n | for your Laravel application. By default, we are compiling the Sass\n | file for the application as well as bundling up all the JS files.\n |\n */\n\nmix.js('resources/js/app.js', 'public/js')\n   .sass('resources/sass/app.scss', 'public/css');\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ProviderMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass ProviderMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:provider';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new service provider class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Provider';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/provider.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Providers';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/QueuedCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Contracts\\Console\\Kernel as KernelContract;\n\nclass QueuedCommand implements ShouldQueue\n{\n    use Dispatchable, Queueable;\n\n    /**\n     * The data to pass to the Artisan command.\n     *\n     * @var array\n     */\n    protected $data;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($data)\n    {\n        $this->data = $data;\n    }\n\n    /**\n     * Handle the job.\n     *\n     * @param  \\Illuminate\\Contracts\\Console\\Kernel  $kernel\n     * @return void\n     */\n    public function handle(KernelContract $kernel)\n    {\n        call_user_func_array([$kernel, 'call'], $this->data);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/RequestMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass RequestMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:request';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new form request class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Request';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/request.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Http\\Requests';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ResourceMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ResourceMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:resource';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new resource';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Resource';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if ($this->collection()) {\n            $this->type = 'Resource collection';\n        }\n\n        parent::handle();\n    }\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return $this->collection()\n                    ? __DIR__.'/stubs/resource-collection.stub'\n                    : __DIR__.'/stubs/resource.stub';\n    }\n\n    /**\n     * Determine if the command is generating a resource collection.\n     *\n     * @return bool\n     */\n    protected function collection()\n    {\n        return $this->option('collection') ||\n               Str::endsWith($this->argument('name'), 'Collection');\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Http\\Resources';\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['collection', 'c', InputOption::VALUE_NONE, 'Create a resource collection'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Routing\\RouteCollection;\nuse Illuminate\\Contracts\\Console\\Kernel as ConsoleKernelContract;\n\nclass RouteCacheCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'route:cache';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a route cache file for faster route registration';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new route command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->call('route:clear');\n\n        $routes = $this->getFreshApplicationRoutes();\n\n        if (count($routes) === 0) {\n            return $this->error(\"Your application doesn't have any routes.\");\n        }\n\n        foreach ($routes as $route) {\n            $route->prepareForSerialization();\n        }\n\n        $this->files->put(\n            $this->laravel->getCachedRoutesPath(), $this->buildRouteCacheFile($routes)\n        );\n\n        $this->info('Routes cached successfully!');\n    }\n\n    /**\n     * Boot a fresh copy of the application and get the routes.\n     *\n     * @return \\Illuminate\\Routing\\RouteCollection\n     */\n    protected function getFreshApplicationRoutes()\n    {\n        return tap($this->getFreshApplication()['router']->getRoutes(), function ($routes) {\n            $routes->refreshNameLookups();\n            $routes->refreshActionLookups();\n        });\n    }\n\n    /**\n     * Get a fresh application instance.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected function getFreshApplication()\n    {\n        return tap(require $this->laravel->bootstrapPath().'/app.php', function ($app) {\n            $app->make(ConsoleKernelContract::class)->bootstrap();\n        });\n    }\n\n    /**\n     * Build the route cache file.\n     *\n     * @param  \\Illuminate\\Routing\\RouteCollection  $routes\n     * @return string\n     */\n    protected function buildRouteCacheFile(RouteCollection $routes)\n    {\n        $stub = $this->files->get(__DIR__.'/stubs/routes.stub');\n\n        return str_replace('{{routes}}', base64_encode(serialize($routes)), $stub);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass RouteClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'route:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove the route cache file';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new route clear command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->files->delete($this->laravel->getCachedRoutesPath());\n\n        $this->info('Route cache cleared!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Routing\\Route;\nuse Illuminate\\Routing\\Router;\nuse Illuminate\\Console\\Command;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass RouteListCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'route:list';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'List all registered routes';\n\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * The table headers for the command.\n     *\n     * @var array\n     */\n    protected $headers = ['Domain', 'Method', 'URI', 'Name', 'Action', 'Middleware'];\n\n    /**\n     * The columns to display when using the \"compact\" flag.\n     *\n     * @var array\n     */\n    protected $compactColumns = ['method', 'uri', 'action'];\n\n    /**\n     * Create a new route command instance.\n     *\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return void\n     */\n    public function __construct(Router $router)\n    {\n        parent::__construct();\n\n        $this->router = $router;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (empty($this->router->getRoutes())) {\n            return $this->error(\"Your application doesn't have any routes.\");\n        }\n\n        if (empty($routes = $this->getRoutes())) {\n            return $this->error(\"Your application doesn't have any routes matching the given criteria.\");\n        }\n\n        $this->displayRoutes($routes);\n    }\n\n    /**\n     * Compile the routes into a displayable format.\n     *\n     * @return array\n     */\n    protected function getRoutes()\n    {\n        $routes = collect($this->router->getRoutes())->map(function ($route) {\n            return $this->getRouteInformation($route);\n        })->filter()->all();\n\n        if ($sort = $this->option('sort')) {\n            $routes = $this->sortRoutes($sort, $routes);\n        }\n\n        if ($this->option('reverse')) {\n            $routes = array_reverse($routes);\n        }\n\n        return $this->pluckColumns($routes);\n    }\n\n    /**\n     * Get the route information for a given route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return array\n     */\n    protected function getRouteInformation(Route $route)\n    {\n        return $this->filterRoute([\n            'domain' => $route->domain(),\n            'method' => implode('|', $route->methods()),\n            'uri'    => $route->uri(),\n            'name'   => $route->getName(),\n            'action' => ltrim($route->getActionName(), '\\\\'),\n            'middleware' => $this->getMiddleware($route),\n        ]);\n    }\n\n    /**\n     * Sort the routes by a given element.\n     *\n     * @param  string  $sort\n     * @param  array  $routes\n     * @return array\n     */\n    protected function sortRoutes($sort, array $routes)\n    {\n        return Arr::sort($routes, function ($route) use ($sort) {\n            return $route[$sort];\n        });\n    }\n\n    /**\n     * Remove unnecessary columns from the routes.\n     *\n     * @param  array  $routes\n     * @return array\n     */\n    protected function pluckColumns(array $routes)\n    {\n        return array_map(function ($route) {\n            return Arr::only($route, $this->getColumns());\n        }, $routes);\n    }\n\n    /**\n     * Display the route information on the console.\n     *\n     * @param  array  $routes\n     * @return void\n     */\n    protected function displayRoutes(array $routes)\n    {\n        if ($this->option('json')) {\n            $this->line(json_encode(array_values($routes)));\n\n            return;\n        }\n\n        $this->table($this->getHeaders(), $routes);\n    }\n\n    /**\n     * Get before filters.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return string\n     */\n    protected function getMiddleware($route)\n    {\n        return collect($route->gatherMiddleware())->map(function ($middleware) {\n            return $middleware instanceof Closure ? 'Closure' : $middleware;\n        })->implode(',');\n    }\n\n    /**\n     * Filter the route by URI and / or name.\n     *\n     * @param  array  $route\n     * @return array|null\n     */\n    protected function filterRoute(array $route)\n    {\n        if (($this->option('name') && ! Str::contains($route['name'], $this->option('name'))) ||\n             $this->option('path') && ! Str::contains($route['uri'], $this->option('path')) ||\n             $this->option('method') && ! Str::contains($route['method'], strtoupper($this->option('method')))) {\n            return;\n        }\n\n        return $route;\n    }\n\n    /**\n     * Get the table headers for the visible columns.\n     *\n     * @return array\n     */\n    protected function getHeaders()\n    {\n        return Arr::only($this->headers, array_keys($this->getColumns()));\n    }\n\n    /**\n     * Get the column names to show (lowercase table headers).\n     *\n     * @return array\n     */\n    protected function getColumns()\n    {\n        $availableColumns = array_map('strtolower', $this->headers);\n\n        if ($this->option('compact')) {\n            return array_intersect($availableColumns, $this->compactColumns);\n        }\n\n        if ($columns = $this->option('columns')) {\n            return array_intersect($availableColumns, $this->parseColumns($columns));\n        }\n\n        return $availableColumns;\n    }\n\n    /**\n     * Parse the column list.\n     *\n     * @param  array  $columns\n     * @return array\n     */\n    protected function parseColumns(array $columns)\n    {\n        $results = [];\n\n        foreach ($columns as $i => $column) {\n            if (Str::contains($column, ',')) {\n                $results = array_merge($results, explode(',', $column));\n            } else {\n                $results[] = $column;\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['columns', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Columns to include in the route table'],\n            ['compact', 'c', InputOption::VALUE_NONE, 'Only show method, URI and action columns'],\n            ['json', null, InputOption::VALUE_NONE, 'Output the route list as JSON'],\n            ['method', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by method'],\n            ['name', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by name'],\n            ['path', null, InputOption::VALUE_OPTIONAL, 'Filter the routes by path'],\n            ['reverse', 'r', InputOption::VALUE_NONE, 'Reverse the ordering of the routes'],\n            ['sort', null, InputOption::VALUE_OPTIONAL, 'The column (domain, method, uri, name, action, middleware) to sort by', 'uri'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/RuleMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass RuleMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:rule';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new validation rule';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Rule';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/rule.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Rules';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ServeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\ProcessUtils;\nuse Symfony\\Component\\Console\\Input\\InputOption;\nuse Symfony\\Component\\Process\\PhpExecutableFinder;\n\nclass ServeCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'serve';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Serve the application on the PHP development server';\n\n    /**\n     * The current port offset.\n     *\n     * @var int\n     */\n    protected $portOffset = 0;\n\n    /**\n     * Execute the console command.\n     *\n     * @return int\n     *\n     * @throws \\Exception\n     */\n    public function handle()\n    {\n        chdir(public_path());\n\n        $this->line(\"<info>Laravel development server started:</info> <http://{$this->host()}:{$this->port()}>\");\n\n        passthru($this->serverCommand(), $status);\n\n        if ($status && $this->canTryAnotherPort()) {\n            $this->portOffset += 1;\n\n            return $this->handle();\n        }\n\n        return $status;\n    }\n\n    /**\n     * Get the full server command.\n     *\n     * @return string\n     */\n    protected function serverCommand()\n    {\n        return sprintf('%s -S %s:%s %s',\n            ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)),\n            $this->host(),\n            $this->port(),\n            ProcessUtils::escapeArgument(base_path('server.php'))\n        );\n    }\n\n    /**\n     * Get the host for the command.\n     *\n     * @return string\n     */\n    protected function host()\n    {\n        return $this->input->getOption('host');\n    }\n\n    /**\n     * Get the port for the command.\n     *\n     * @return string\n     */\n    protected function port()\n    {\n        $port = $this->input->getOption('port') ?: 8000;\n\n        return $port + $this->portOffset;\n    }\n\n    /**\n     * Check if command has reached its max amount of port tries.\n     *\n     * @return bool\n     */\n    protected function canTryAnotherPort()\n    {\n        return is_null($this->input->getOption('port')) &&\n               ($this->input->getOption('tries') > $this->portOffset);\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['host', null, InputOption::VALUE_OPTIONAL, 'The host address to serve the application on', '127.0.0.1'],\n\n            ['port', null, InputOption::VALUE_OPTIONAL, 'The port to serve the application on', $_ENV['SERVER_PORT'] ?? null],\n\n            ['tries', null, InputOption::VALUE_OPTIONAL, 'The max number of ports to attempt to serve from', 10],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/StorageLinkCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass StorageLinkCommand extends Command\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'storage:link';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a symbolic link from \"public/storage\" to \"storage/app/public\"';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (file_exists(public_path('storage'))) {\n            return $this->error('The \"public/storage\" directory already exists.');\n        }\n\n        $this->laravel->make('files')->link(\n            storage_path('app/public'), public_path('storage')\n        );\n\n        $this->info('The [public/storage] directory has been linked.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/TestMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass TestMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'make:test {name : The name of the class} {--unit : Create a unit test}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new test class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Test';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        if ($this->option('unit')) {\n            return __DIR__.'/stubs/unit-test.stub';\n        }\n\n        return __DIR__.'/stubs/test.stub';\n    }\n\n    /**\n     * Get the destination class path.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getPath($name)\n    {\n        $name = Str::replaceFirst($this->rootNamespace(), '', $name);\n\n        return base_path('tests').str_replace('\\\\', '/', $name).'.php';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        if ($this->option('unit')) {\n            return $rootNamespace.'\\Unit';\n        } else {\n            return $rootNamespace.'\\Feature';\n        }\n    }\n\n    /**\n     * Get the root namespace for the class.\n     *\n     * @return string\n     */\n    protected function rootNamespace()\n    {\n        return 'Tests';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/UpCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Exception;\nuse Illuminate\\Console\\Command;\n\nclass UpCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'up';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Bring the application out of maintenance mode';\n\n    /**\n     * Execute the console command.\n     *\n     * @return int\n     */\n    public function handle()\n    {\n        try {\n            if (! file_exists(storage_path('framework/down'))) {\n                $this->comment('Application is already up.');\n\n                return true;\n            }\n\n            unlink(storage_path('framework/down'));\n\n            $this->info('Application is now live.');\n        } catch (Exception $e) {\n            $this->error('Failed to disable maintenance mode.');\n\n            $this->error($e->getMessage());\n\n            return 1;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/VendorPublishCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Console\\Command;\nuse League\\Flysystem\\MountManager;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Support\\ServiceProvider;\nuse League\\Flysystem\\Filesystem as Flysystem;\nuse League\\Flysystem\\Adapter\\Local as LocalAdapter;\n\nclass VendorPublishCommand extends Command\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The provider to publish.\n     *\n     * @var string\n     */\n    protected $provider = null;\n\n    /**\n     * The tags to publish.\n     *\n     * @var array\n     */\n    protected $tags = [];\n\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'vendor:publish {--force : Overwrite any existing files}\n                    {--all : Publish assets for all service providers without prompt}\n                    {--provider= : The service provider that has assets you want to publish}\n                    {--tag=* : One or many tags that have assets you want to publish}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Publish any publishable assets from vendor packages';\n\n    /**\n     * Create a new command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->determineWhatShouldBePublished();\n\n        foreach ($this->tags ?: [null] as $tag) {\n            $this->publishTag($tag);\n        }\n\n        $this->info('Publishing complete.');\n    }\n\n    /**\n     * Determine the provider or tag(s) to publish.\n     *\n     * @return void\n     */\n    protected function determineWhatShouldBePublished()\n    {\n        if ($this->option('all')) {\n            return;\n        }\n\n        [$this->provider, $this->tags] = [\n            $this->option('provider'), (array) $this->option('tag'),\n        ];\n\n        if (! $this->provider && ! $this->tags) {\n            $this->promptForProviderOrTag();\n        }\n    }\n\n    /**\n     * Prompt for which provider or tag to publish.\n     *\n     * @return void\n     */\n    protected function promptForProviderOrTag()\n    {\n        $choice = $this->choice(\n            \"Which provider or tag's files would you like to publish?\",\n            $choices = $this->publishableChoices()\n        );\n\n        if ($choice == $choices[0] || is_null($choice)) {\n            return;\n        }\n\n        $this->parseChoice($choice);\n    }\n\n    /**\n     * The choices available via the prompt.\n     *\n     * @return array\n     */\n    protected function publishableChoices()\n    {\n        return array_merge(\n            ['<comment>Publish files from all providers and tags listed below</comment>'],\n            preg_filter('/^/', '<comment>Provider: </comment>', Arr::sort(ServiceProvider::publishableProviders())),\n            preg_filter('/^/', '<comment>Tag: </comment>', Arr::sort(ServiceProvider::publishableGroups()))\n        );\n    }\n\n    /**\n     * Parse the answer that was given via the prompt.\n     *\n     * @param  string  $choice\n     * @return void\n     */\n    protected function parseChoice($choice)\n    {\n        [$type, $value] = explode(': ', strip_tags($choice));\n\n        if ($type === 'Provider') {\n            $this->provider = $value;\n        } elseif ($type === 'Tag') {\n            $this->tags = [$value];\n        }\n    }\n\n    /**\n     * Publishes the assets for a tag.\n     *\n     * @param  string  $tag\n     * @return mixed\n     */\n    protected function publishTag($tag)\n    {\n        foreach ($this->pathsToPublish($tag) as $from => $to) {\n            $this->publishItem($from, $to);\n        }\n    }\n\n    /**\n     * Get all of the paths to publish.\n     *\n     * @param  string  $tag\n     * @return array\n     */\n    protected function pathsToPublish($tag)\n    {\n        return ServiceProvider::pathsToPublish(\n            $this->provider, $tag\n        );\n    }\n\n    /**\n     * Publish the given item from and to the given location.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return void\n     */\n    protected function publishItem($from, $to)\n    {\n        if ($this->files->isFile($from)) {\n            return $this->publishFile($from, $to);\n        } elseif ($this->files->isDirectory($from)) {\n            return $this->publishDirectory($from, $to);\n        }\n\n        $this->error(\"Can't locate path: <{$from}>\");\n    }\n\n    /**\n     * Publish the file to the given path.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return void\n     */\n    protected function publishFile($from, $to)\n    {\n        if (! $this->files->exists($to) || $this->option('force')) {\n            $this->createParentDirectory(dirname($to));\n\n            $this->files->copy($from, $to);\n\n            $this->status($from, $to, 'File');\n        }\n    }\n\n    /**\n     * Publish the directory to the given directory.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return void\n     */\n    protected function publishDirectory($from, $to)\n    {\n        $this->moveManagedFiles(new MountManager([\n            'from' => new Flysystem(new LocalAdapter($from)),\n            'to' => new Flysystem(new LocalAdapter($to)),\n        ]));\n\n        $this->status($from, $to, 'Directory');\n    }\n\n    /**\n     * Move all the files in the given MountManager.\n     *\n     * @param  \\League\\Flysystem\\MountManager  $manager\n     * @return void\n     */\n    protected function moveManagedFiles($manager)\n    {\n        foreach ($manager->listContents('from://', true) as $file) {\n            if ($file['type'] === 'file' && (! $manager->has('to://'.$file['path']) || $this->option('force'))) {\n                $manager->put('to://'.$file['path'], $manager->read('from://'.$file['path']));\n            }\n        }\n    }\n\n    /**\n     * Create the directory to house the published files if needed.\n     *\n     * @param  string  $directory\n     * @return void\n     */\n    protected function createParentDirectory($directory)\n    {\n        if (! $this->files->isDirectory($directory)) {\n            $this->files->makeDirectory($directory, 0755, true);\n        }\n    }\n\n    /**\n     * Write a status message to the console.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @param  string  $type\n     * @return void\n     */\n    protected function status($from, $to, $type)\n    {\n        $from = str_replace(base_path(), '', realpath($from));\n\n        $to = str_replace(base_path(), '', realpath($to));\n\n        $this->line('<info>Copied '.$type.'</info> <comment>['.$from.']</comment> <info>To</info> <comment>['.$to.']</comment>');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewCacheCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Collection;\nuse Symfony\\Component\\Finder\\Finder;\nuse Symfony\\Component\\Finder\\SplFileInfo;\n\nclass ViewCacheCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'view:cache';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = \"Compile all of the application's Blade templates\";\n\n    /**\n     * Execute the console command.\n     *\n     * @return mixed\n     */\n    public function handle()\n    {\n        $this->call('view:clear');\n\n        $this->paths()->each(function ($path) {\n            $this->compileViews($this->bladeFilesIn([$path]));\n        });\n\n        $this->info('Blade templates cached successfully!');\n    }\n\n    /**\n     * Compile the given view files.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $views\n     * @return void\n     */\n    protected function compileViews(Collection $views)\n    {\n        $compiler = $this->laravel['view']->getEngineResolver()->resolve('blade')->getCompiler();\n\n        $views->map(function (SplFileInfo $file) use ($compiler) {\n            $compiler->compile($file->getRealPath());\n        });\n    }\n\n    /**\n     * Get the Blade files in the given path.\n     *\n     * @param  array  $paths\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function bladeFilesIn(array $paths)\n    {\n        return collect(\n            Finder::create()\n                ->in($paths)\n                ->exclude('vendor')\n                ->name('*.blade.php')\n                ->files()\n        );\n    }\n\n    /**\n     * Get all of the possible view paths.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function paths()\n    {\n        $finder = $this->laravel['view']->getFinder();\n\n        return collect($finder->getPaths())->merge(\n            collect($finder->getHints())->flatten()\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/ViewClearCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Console;\n\nuse RuntimeException;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass ViewClearCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'view:clear';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Clear all compiled view files';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Create a new config clear command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @return void\n     */\n    public function __construct(Filesystem $files)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    public function handle()\n    {\n        $path = $this->laravel['config']['view.compiled'];\n\n        if (! $path) {\n            throw new RuntimeException('View path not found.');\n        }\n\n        foreach ($this->files->glob(\"{$path}/*\") as $view) {\n            $this->files->delete($view);\n        }\n\n        $this->info('Compiled views cleared!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/channel.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse NamespacedDummyUserModel;\n\nclass DummyClass\n{\n    /**\n     * Create a new channel instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Authenticate the user's access to the channel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @return array|bool\n     */\n    public function join(DummyUser $user)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/console.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Console\\Command;\n\nclass DummyClass extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'dummy:command';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Command description';\n\n    /**\n     * Create a new command instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        parent::__construct();\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return mixed\n     */\n    public function handle()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler-queued.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullEvent;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass implements ShouldQueue\n{\n    use InteractsWithQueue;\n\n    /**\n     * Create the event handler.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  DummyEvent  $event\n     * @return void\n     */\n    public function handle(DummyEvent $event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event-handler.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullEvent;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass\n{\n    /**\n     * Create the event handler.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  DummyEvent  $event\n     * @return void\n     */\n    public function handle(DummyEvent $event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/event.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Broadcasting\\Channel;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Broadcasting\\PrivateChannel;\nuse Illuminate\\Broadcasting\\PresenceChannel;\nuse Illuminate\\Foundation\\Events\\Dispatchable;\nuse Illuminate\\Broadcasting\\InteractsWithSockets;\nuse Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast;\n\nclass DummyClass\n{\n    use Dispatchable, InteractsWithSockets, SerializesModels;\n\n    /**\n     * Create a new event instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Get the channels the event should broadcast on.\n     *\n     * @return \\Illuminate\\Broadcasting\\Channel|array\n     */\n    public function broadcastOn()\n    {\n        return new PrivateChannel('channel-name');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render-report.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Exception;\n\nclass DummyClass extends Exception\n{\n    /**\n     * Report the exception.\n     *\n     * @return void\n     */\n     public function report()\n     {\n        //\n    }\n\n    /**\n     * Render the exception as an HTTP response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function render($request)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-render.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Exception;\n\nclass DummyClass extends Exception\n{\n    /**\n     * Render the exception as an HTTP response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function render($request)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception-report.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Exception;\n\nclass DummyClass extends Exception\n{\n    /**\n     * Report the exception.\n     *\n     * @return void\n     */\n    public function report()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/exception.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Exception;\n\nclass DummyClass extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job-queued.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\n\nclass DummyClass implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    /**\n     * Create a new job instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Execute the job.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/job.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\n\nclass DummyClass\n{\n    use Dispatchable, Queueable;\n\n    /**\n     * Create a new job instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Execute the job.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-duck.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass\n{\n    /**\n     * Create the event listener.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  object  $event\n     * @return void\n     */\n    public function handle($event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued-duck.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass implements ShouldQueue\n{\n    use InteractsWithQueue;\n    \n    /**\n     * Create the event listener.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  object  $event\n     * @return void\n     */\n    public function handle($event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener-queued.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullEvent;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass implements ShouldQueue\n{\n    use InteractsWithQueue;\n\n    /**\n     * Create the event listener.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  DummyEvent  $event\n     * @return void\n     */\n    public function handle(DummyEvent $event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/listener.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullEvent;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass\n{\n    /**\n     * Create the event listener.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Handle the event.\n     *\n     * @param  DummyEvent  $event\n     * @return void\n     */\n    public function handle(DummyEvent $event)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/mail.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Mail\\Mailable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * Create a new message instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Build the message.\n     *\n     * @return $this\n     */\n    public function build()\n    {\n        return $this->view('view.name');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-mail.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Mail\\Mailable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass DummyClass extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * Create a new message instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Build the message.\n     *\n     * @return $this\n     */\n    public function build()\n    {\n        return $this->markdown('DummyView');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown-notification.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Notifications\\Messages\\MailMessage;\n\nclass DummyClass extends Notification\n{\n    use Queueable;\n\n    /**\n     * Create a new notification instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Get the notification's delivery channels.\n     *\n     * @param  mixed  $notifiable\n     * @return array\n     */\n    public function via($notifiable)\n    {\n        return ['mail'];\n    }\n\n    /**\n     * Get the mail representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return \\Illuminate\\Notifications\\Messages\\MailMessage\n     */\n    public function toMail($notifiable)\n    {\n        return (new MailMessage)->markdown('DummyView');\n    }\n\n    /**\n     * Get the array representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return array\n     */\n    public function toArray($notifiable)\n    {\n        return [\n            //\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/markdown.stub",
    "content": "@component('mail::message')\n# Introduction\n\nThe body of your message.\n\n@component('mail::button', ['url' => ''])\nButton Text\n@endcomponent\n\nThanks,<br>\n{{ config('app.name') }}\n@endcomponent\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/model.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass DummyClass extends Model\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/notification.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Notifications\\Messages\\MailMessage;\n\nclass DummyClass extends Notification\n{\n    use Queueable;\n\n    /**\n     * Create a new notification instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Get the notification's delivery channels.\n     *\n     * @param  mixed  $notifiable\n     * @return array\n     */\n    public function via($notifiable)\n    {\n        return ['mail'];\n    }\n\n    /**\n     * Get the mail representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return \\Illuminate\\Notifications\\Messages\\MailMessage\n     */\n    public function toMail($notifiable)\n    {\n        return (new MailMessage)\n                    ->line('The introduction to the notification.')\n                    ->action('Notification Action', url('/'))\n                    ->line('Thank you for using our application!');\n    }\n\n    /**\n     * Get the array representation of the notification.\n     *\n     * @param  mixed  $notifiable\n     * @return array\n     */\n    public function toArray($notifiable)\n    {\n        return [\n            //\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.plain.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nclass DummyClass\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/observer.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse NamespacedDummyModel;\n\nclass DummyClass\n{\n    /**\n     * Handle the DocDummyModel \"created\" event.\n     *\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return void\n     */\n    public function created(DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Handle the DocDummyModel \"updated\" event.\n     *\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return void\n     */\n    public function updated(DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Handle the DocDummyModel \"deleted\" event.\n     *\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return void\n     */\n    public function deleted(DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Handle the DocDummyModel \"restored\" event.\n     *\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return void\n     */\n    public function restored(DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Handle the DocDummyModel \"force deleted\" event.\n     *\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return void\n     */\n    public function forceDeleted(DummyModel $dummyModel)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/pivot.model.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Database\\Eloquent\\Relations\\Pivot;\n\nclass DummyClass extends Pivot\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.plain.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse NamespacedDummyUserModel;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\n\nclass DummyClass\n{\n    use HandlesAuthorization;\n\n    /**\n     * Create a new policy instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/policy.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse NamespacedDummyUserModel;\nuse NamespacedDummyModel;\nuse Illuminate\\Auth\\Access\\HandlesAuthorization;\n\nclass DummyClass\n{\n    use HandlesAuthorization;\n    \n    /**\n     * Determine whether the user can view any DocDummyPluralModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @return mixed\n     */\n    public function viewAny(DummyUser $user)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can view the DocDummyModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return mixed\n     */\n    public function view(DummyUser $user, DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can create DocDummyPluralModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @return mixed\n     */\n    public function create(DummyUser $user)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can update the DocDummyModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return mixed\n     */\n    public function update(DummyUser $user, DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can delete the DocDummyModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return mixed\n     */\n    public function delete(DummyUser $user, DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can restore the DocDummyModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return mixed\n     */\n    public function restore(DummyUser $user, DummyModel $dummyModel)\n    {\n        //\n    }\n\n    /**\n     * Determine whether the user can permanently delete the DocDummyModel.\n     *\n     * @param  \\NamespacedDummyUserModel  $user\n     * @param  \\NamespacedDummyModel  $dummyModel\n     * @return mixed\n     */\n    public function forceDelete(DummyUser $user, DummyModel $dummyModel)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/provider.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass DummyClass extends ServiceProvider\n{\n    /**\n     * Register services.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n\n    /**\n     * Bootstrap services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/request.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Foundation\\Http\\FormRequest;\n\nclass DummyClass extends FormRequest\n{\n    /**\n     * Determine if the user is authorized to make this request.\n     *\n     * @return bool\n     */\n    public function authorize()\n    {\n        return false;\n    }\n\n    /**\n     * Get the validation rules that apply to the request.\n     *\n     * @return array\n     */\n    public function rules()\n    {\n        return [\n            //\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource-collection.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Resources\\Json\\ResourceCollection;\n\nclass DummyClass extends ResourceCollection\n{\n    /**\n     * Transform the resource collection into an array.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function toArray($request)\n    {\n        return parent::toArray($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/resource.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Resources\\Json\\JsonResource;\n\nclass DummyClass extends JsonResource\n{\n    /**\n     * Transform the resource into an array.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function toArray($request)\n    {\n        return parent::toArray($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/routes.stub",
    "content": "<?php\n\n/*\n|--------------------------------------------------------------------------\n| Load The Cached Routes\n|--------------------------------------------------------------------------\n|\n| Here we will decode and unserialize the RouteCollection instance that\n| holds all of the route information for an application. This allows\n| us to instantaneously load the entire route map into the router.\n|\n*/\n\napp('router')->setRoutes(\n    unserialize(base64_decode('{{routes}}'))\n);\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/rule.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Contracts\\Validation\\Rule;\n\nclass DummyClass implements Rule\n{\n    /**\n     * Create a new rule instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        //\n    }\n\n    /**\n     * Determine if the validation rule passes.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function passes($attribute, $value)\n    {\n        //\n    }\n\n    /**\n     * Get the validation error message.\n     *\n     * @return string\n     */\n    public function message()\n    {\n        return 'The validation error message.';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/test.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Tests\\TestCase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\n\nclass DummyClass extends TestCase\n{\n    /**\n     * A basic feature test example.\n     *\n     * @return void\n     */\n    public function testExample()\n    {\n        $response = $this->get('/');\n\n        $response->assertStatus(200);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Console/stubs/unit-test.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Tests\\TestCase;\nuse Illuminate\\Foundation\\Testing\\WithFaker;\nuse Illuminate\\Foundation\\Testing\\RefreshDatabase;\n\nclass DummyClass extends TestCase\n{\n    /**\n     * A basic unit test example.\n     *\n     * @return void\n     */\n    public function testExample()\n    {\n        $this->assertTrue(true);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\n\nclass EnvironmentDetector\n{\n    /**\n     * Detect the application's current environment.\n     *\n     * @param  \\Closure  $callback\n     * @param  array|null  $consoleArgs\n     * @return string\n     */\n    public function detect(Closure $callback, $consoleArgs = null)\n    {\n        if ($consoleArgs) {\n            return $this->detectConsoleEnvironment($callback, $consoleArgs);\n        }\n\n        return $this->detectWebEnvironment($callback);\n    }\n\n    /**\n     * Set the application environment for a web request.\n     *\n     * @param  \\Closure  $callback\n     * @return string\n     */\n    protected function detectWebEnvironment(Closure $callback)\n    {\n        return call_user_func($callback);\n    }\n\n    /**\n     * Set the application environment from command-line arguments.\n     *\n     * @param  \\Closure  $callback\n     * @param  array  $args\n     * @return string\n     */\n    protected function detectConsoleEnvironment(Closure $callback, array $args)\n    {\n        // First we will check if an environment argument was passed via console arguments\n        // and if it was that automatically overrides as the environment. Otherwise, we\n        // will check the environment as a \"web\" request like a typical HTTP request.\n        if (! is_null($value = $this->getEnvironmentArgument($args))) {\n            return $value;\n        }\n\n        return $this->detectWebEnvironment($callback);\n    }\n\n    /**\n     * Get the environment argument from the console.\n     *\n     * @param  array  $args\n     * @return string|null\n     */\n    protected function getEnvironmentArgument(array $args)\n    {\n        foreach ($args as $i => $value) {\n            if ($value === '--env') {\n                return $args[$i + 1] ?? null;\n            }\n\n            if (Str::startsWith($value, '--env')) {\n                return head(array_slice(explode('=', $value), 1));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Events/DiscoverEvents.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Events;\n\nuse SplFileInfo;\nuse ReflectionClass;\nuse ReflectionMethod;\nuse Illuminate\\Support\\Str;\nuse Symfony\\Component\\Finder\\Finder;\n\nclass DiscoverEvents\n{\n    /**\n     * Get all of the events and listeners by searching the given listener directory.\n     *\n     * @param  string  $listenerPath\n     * @param  string  $basePath\n     * @return array\n     */\n    public static function within($listenerPath, $basePath)\n    {\n        return collect(static::getListenerEvents(\n            (new Finder)->files()->in($listenerPath), $basePath\n        ))->mapToDictionary(function ($event, $listener) {\n            return [$event => $listener];\n        })->all();\n    }\n\n    /**\n     * Get all of the listeners and their corresponding events.\n     *\n     * @param  iterable  $listeners\n     * @param  string  $basePath\n     * @return array\n     */\n    protected static function getListenerEvents($listeners, $basePath)\n    {\n        $listenerEvents = [];\n\n        foreach ($listeners as $listener) {\n            $listener = new ReflectionClass(\n                static::classFromFile($listener, $basePath)\n            );\n\n            foreach ($listener->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {\n                if (! Str::is('handle*', $method->name) ||\n                    ! isset($method->getParameters()[0])) {\n                    continue;\n                }\n\n                $listenerEvents[$listener->name.'@'.$method->name] =\n                                optional($method->getParameters()[0]->getClass())->name;\n            }\n        }\n\n        return array_filter($listenerEvents);\n    }\n\n    /**\n     * Extract the class name from the given file path.\n     *\n     * @param  \\SplFileInfo  $file\n     * @param  string  $basePath\n     * @return string\n     */\n    protected static function classFromFile(SplFileInfo $file, $basePath)\n    {\n        $class = trim(Str::replaceFirst($basePath, '', $file->getRealPath()), DIRECTORY_SEPARATOR);\n\n        return str_replace(\n            [DIRECTORY_SEPARATOR, ucfirst(basename(app()->path())).'\\\\'],\n            ['\\\\', app()->getNamespace()],\n            ucfirst(Str::replaceLast('.php', '', $class))\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Events;\n\ntrait Dispatchable\n{\n    /**\n     * Dispatch the event with the given arguments.\n     *\n     * @return void\n     */\n    public static function dispatch()\n    {\n        return event(new static(...func_get_args()));\n    }\n\n    /**\n     * Broadcast the event with the given arguments.\n     *\n     * @return \\Illuminate\\Broadcasting\\PendingBroadcast\n     */\n    public static function broadcast()\n    {\n        return broadcast(new static(...func_get_args()));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Events/LocaleUpdated.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Events;\n\nclass LocaleUpdated\n{\n    /**\n     * The new locale.\n     *\n     * @var string\n     */\n    public $locale;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $locale\n     * @return void\n     */\n    public function __construct($locale)\n    {\n        $this->locale = $locale;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Exceptions;\n\nuse Exception;\nuse Throwable;\nuse Whoops\\Run as Whoops;\nuse Illuminate\\Support\\Arr;\nuse Psr\\Log\\LoggerInterface;\nuse Illuminate\\Http\\Response;\nuse Illuminate\\Routing\\Router;\nuse Illuminate\\Http\\JsonResponse;\nuse Illuminate\\Support\\Facades\\Auth;\nuse Illuminate\\Support\\Facades\\View;\nuse Illuminate\\Support\\ViewErrorBag;\nuse Illuminate\\Http\\RedirectResponse;\nuse Illuminate\\Auth\\AuthenticationException;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Support\\Responsable;\nuse Illuminate\\Session\\TokenMismatchException;\nuse Illuminate\\Validation\\ValidationException;\nuse Illuminate\\Auth\\Access\\AuthorizationException;\nuse Illuminate\\Http\\Exceptions\\HttpResponseException;\nuse Symfony\\Component\\Debug\\Exception\\FlattenException;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpException;\nuse Symfony\\Component\\Console\\Application as ConsoleApplication;\nuse Symfony\\Component\\HttpFoundation\\Response as SymfonyResponse;\nuse Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException;\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface;\nuse Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException;\nuse Symfony\\Component\\Debug\\ExceptionHandler as SymfonyExceptionHandler;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler as ExceptionHandlerContract;\nuse Symfony\\Component\\HttpFoundation\\Exception\\SuspiciousOperationException;\nuse Symfony\\Component\\HttpFoundation\\RedirectResponse as SymfonyRedirectResponse;\n\nclass Handler implements ExceptionHandlerContract\n{\n    /**\n     * The container implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * A list of the exception types that are not reported.\n     *\n     * @var array\n     */\n    protected $dontReport = [];\n\n    /**\n     * A list of the internal exception types that should not be reported.\n     *\n     * @var array\n     */\n    protected $internalDontReport = [\n        AuthenticationException::class,\n        AuthorizationException::class,\n        HttpException::class,\n        HttpResponseException::class,\n        ModelNotFoundException::class,\n        SuspiciousOperationException::class,\n        TokenMismatchException::class,\n        ValidationException::class,\n    ];\n\n    /**\n     * A list of the inputs that are never flashed for validation exceptions.\n     *\n     * @var array\n     */\n    protected $dontFlash = [\n        'password',\n        'password_confirmation',\n    ];\n\n    /**\n     * Create a new exception handler instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function __construct(Container $container)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Report or log an exception.\n     *\n     * @param  \\Exception  $e\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    public function report(Exception $e)\n    {\n        if ($this->shouldntReport($e)) {\n            return;\n        }\n\n        if (is_callable($reportCallable = [$e, 'report'])) {\n            return $this->container->call($reportCallable);\n        }\n\n        try {\n            $logger = $this->container->make(LoggerInterface::class);\n        } catch (Exception $ex) {\n            throw $e;\n        }\n\n        $logger->error(\n            $e->getMessage(),\n            array_merge($this->context(), ['exception' => $e]\n        ));\n    }\n\n    /**\n     * Determine if the exception should be reported.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    public function shouldReport(Exception $e)\n    {\n        return ! $this->shouldntReport($e);\n    }\n\n    /**\n     * Determine if the exception is in the \"do not report\" list.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    protected function shouldntReport(Exception $e)\n    {\n        $dontReport = array_merge($this->dontReport, $this->internalDontReport);\n\n        return ! is_null(Arr::first($dontReport, function ($type) use ($e) {\n            return $e instanceof $type;\n        }));\n    }\n\n    /**\n     * Get the default context variables for logging.\n     *\n     * @return array\n     */\n    protected function context()\n    {\n        try {\n            return array_filter([\n                'userId' => Auth::id(),\n                // 'email' => optional(Auth::user())->email,\n            ]);\n        } catch (Throwable $e) {\n            return [];\n        }\n    }\n\n    /**\n     * Render an exception into a response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception  $e\n     * @return \\Illuminate\\Http\\Response|\\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function render($request, Exception $e)\n    {\n        if (method_exists($e, 'render') && $response = $e->render($request)) {\n            return Router::toResponse($request, $response);\n        } elseif ($e instanceof Responsable) {\n            return $e->toResponse($request);\n        }\n\n        $e = $this->prepareException($e);\n\n        if ($e instanceof HttpResponseException) {\n            return $e->getResponse();\n        } elseif ($e instanceof AuthenticationException) {\n            return $this->unauthenticated($request, $e);\n        } elseif ($e instanceof ValidationException) {\n            return $this->convertValidationExceptionToResponse($e, $request);\n        }\n\n        return $request->expectsJson()\n                        ? $this->prepareJsonResponse($request, $e)\n                        : $this->prepareResponse($request, $e);\n    }\n\n    /**\n     * Prepare exception for rendering.\n     *\n     * @param  \\Exception  $e\n     * @return \\Exception\n     */\n    protected function prepareException(Exception $e)\n    {\n        if ($e instanceof ModelNotFoundException) {\n            $e = new NotFoundHttpException($e->getMessage(), $e);\n        } elseif ($e instanceof AuthorizationException) {\n            $e = new AccessDeniedHttpException($e->getMessage(), $e);\n        } elseif ($e instanceof TokenMismatchException) {\n            $e = new HttpException(419, $e->getMessage(), $e);\n        } elseif ($e instanceof SuspiciousOperationException) {\n            $e = new NotFoundHttpException('Bad hostname provided.', $e);\n        }\n\n        return $e;\n    }\n\n    /**\n     * Convert an authentication exception into a response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Auth\\AuthenticationException  $exception\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function unauthenticated($request, AuthenticationException $exception)\n    {\n        return $request->expectsJson()\n                    ? response()->json(['message' => $exception->getMessage()], 401)\n                    : redirect()->guest($exception->redirectTo() ?? route('login'));\n    }\n\n    /**\n     * Create a response object from the given validation exception.\n     *\n     * @param  \\Illuminate\\Validation\\ValidationException  $e\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function convertValidationExceptionToResponse(ValidationException $e, $request)\n    {\n        if ($e->response) {\n            return $e->response;\n        }\n\n        return $request->expectsJson()\n                    ? $this->invalidJson($request, $e)\n                    : $this->invalid($request, $e);\n    }\n\n    /**\n     * Convert a validation exception into a response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Validation\\ValidationException  $exception\n     * @return \\Illuminate\\Http\\Response\n     */\n    protected function invalid($request, ValidationException $exception)\n    {\n        return redirect($exception->redirectTo ?? url()->previous())\n                    ->withInput(Arr::except($request->input(), $this->dontFlash))\n                    ->withErrors($exception->errors(), $exception->errorBag);\n    }\n\n    /**\n     * Convert a validation exception into a JSON response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Validation\\ValidationException  $exception\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    protected function invalidJson($request, ValidationException $exception)\n    {\n        return response()->json([\n            'message' => $exception->getMessage(),\n            'errors' => $exception->errors(),\n        ], $exception->status);\n    }\n\n    /**\n     * Prepare a response for the given exception.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception $e\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function prepareResponse($request, Exception $e)\n    {\n        if (! $this->isHttpException($e) && config('app.debug')) {\n            return $this->toIlluminateResponse($this->convertExceptionToResponse($e), $e);\n        }\n\n        if (! $this->isHttpException($e)) {\n            $e = new HttpException(500, $e->getMessage());\n        }\n\n        return $this->toIlluminateResponse(\n            $this->renderHttpException($e), $e\n        );\n    }\n\n    /**\n     * Create a Symfony response for the given exception.\n     *\n     * @param  \\Exception  $e\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function convertExceptionToResponse(Exception $e)\n    {\n        return SymfonyResponse::create(\n            $this->renderExceptionContent($e),\n            $this->isHttpException($e) ? $e->getStatusCode() : 500,\n            $this->isHttpException($e) ? $e->getHeaders() : []\n        );\n    }\n\n    /**\n     * Get the response content for the given exception.\n     *\n     * @param  \\Exception  $e\n     * @return string\n     */\n    protected function renderExceptionContent(Exception $e)\n    {\n        try {\n            return config('app.debug') && class_exists(Whoops::class)\n                        ? $this->renderExceptionWithWhoops($e)\n                        : $this->renderExceptionWithSymfony($e, config('app.debug'));\n        } catch (Exception $e) {\n            return $this->renderExceptionWithSymfony($e, config('app.debug'));\n        }\n    }\n\n    /**\n     * Render an exception to a string using \"Whoops\".\n     *\n     * @param  \\Exception  $e\n     * @return string\n     */\n    protected function renderExceptionWithWhoops(Exception $e)\n    {\n        return tap(new Whoops, function ($whoops) {\n            $whoops->pushHandler($this->whoopsHandler());\n\n            $whoops->writeToOutput(false);\n\n            $whoops->allowQuit(false);\n        })->handleException($e);\n    }\n\n    /**\n     * Get the Whoops handler for the application.\n     *\n     * @return \\Whoops\\Handler\\Handler\n     */\n    protected function whoopsHandler()\n    {\n        return (new WhoopsHandler)->forDebug();\n    }\n\n    /**\n     * Render an exception to a string using Symfony.\n     *\n     * @param  \\Exception  $e\n     * @param  bool  $debug\n     * @return string\n     */\n    protected function renderExceptionWithSymfony(Exception $e, $debug)\n    {\n        return (new SymfonyExceptionHandler($debug))->getHtml(\n            FlattenException::create($e)\n        );\n    }\n\n    /**\n     * Render the given HttpException.\n     *\n     * @param  \\Symfony\\Component\\HttpKernel\\Exception\\HttpExceptionInterface  $e\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function renderHttpException(HttpExceptionInterface $e)\n    {\n        $this->registerErrorViewPaths();\n\n        if (view()->exists($view = \"errors::{$e->getStatusCode()}\")) {\n            return response()->view($view, [\n                'errors' => new ViewErrorBag,\n                'exception' => $e,\n            ], $e->getStatusCode(), $e->getHeaders());\n        }\n\n        return $this->convertExceptionToResponse($e);\n    }\n\n    /**\n     * Register the error template hint paths.\n     *\n     * @return void\n     */\n    protected function registerErrorViewPaths()\n    {\n        $paths = collect(config('view.paths'));\n\n        View::replaceNamespace('errors', $paths->map(function ($path) {\n            return \"{$path}/errors\";\n        })->push(__DIR__.'/views')->all());\n    }\n\n    /**\n     * Map the given exception into an Illuminate response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @param  \\Exception  $e\n     * @return \\Illuminate\\Http\\Response\n     */\n    protected function toIlluminateResponse($response, Exception $e)\n    {\n        if ($response instanceof SymfonyRedirectResponse) {\n            $response = new RedirectResponse(\n                $response->getTargetUrl(), $response->getStatusCode(), $response->headers->all()\n            );\n        } else {\n            $response = new Response(\n                $response->getContent(), $response->getStatusCode(), $response->headers->all()\n            );\n        }\n\n        return $response->withException($e);\n    }\n\n    /**\n     * Prepare a JSON response for the given exception.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception $e\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    protected function prepareJsonResponse($request, Exception $e)\n    {\n        return new JsonResponse(\n            $this->convertExceptionToArray($e),\n            $this->isHttpException($e) ? $e->getStatusCode() : 500,\n            $this->isHttpException($e) ? $e->getHeaders() : [],\n            JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES\n        );\n    }\n\n    /**\n     * Convert the given exception to an array.\n     *\n     * @param  \\Exception  $e\n     * @return array\n     */\n    protected function convertExceptionToArray(Exception $e)\n    {\n        return config('app.debug') ? [\n            'message' => $e->getMessage(),\n            'exception' => get_class($e),\n            'file' => $e->getFile(),\n            'line' => $e->getLine(),\n            'trace' => collect($e->getTrace())->map(function ($trace) {\n                return Arr::except($trace, ['args']);\n            })->all(),\n        ] : [\n            'message' => $this->isHttpException($e) ? $e->getMessage() : 'Server Error',\n        ];\n    }\n\n    /**\n     * Render an exception to the console.\n     *\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function renderForConsole($output, Exception $e)\n    {\n        (new ConsoleApplication)->renderException($e, $output);\n    }\n\n    /**\n     * Determine if the given exception is an HTTP exception.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    protected function isHttpException(Exception $e)\n    {\n        return $e instanceof HttpExceptionInterface;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/WhoopsHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Exceptions;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Whoops\\Handler\\PrettyPageHandler;\n\nclass WhoopsHandler\n{\n    /**\n     * Create a new Whoops handler for debug mode.\n     *\n     * @return \\Whoops\\Handler\\PrettyPageHandler\n     */\n    public function forDebug()\n    {\n        return tap(new PrettyPageHandler, function ($handler) {\n            $handler->handleUnconditionally(true);\n\n            $this->registerApplicationPaths($handler)\n                 ->registerBlacklist($handler)\n                 ->registerEditor($handler);\n        });\n    }\n\n    /**\n     * Register the application paths with the handler.\n     *\n     * @param  \\Whoops\\Handler\\PrettyPageHandler $handler\n     * @return $this\n     */\n    protected function registerApplicationPaths($handler)\n    {\n        $handler->setApplicationPaths(\n            array_flip($this->directoriesExceptVendor())\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the application paths except for the \"vendor\" directory.\n     *\n     * @return array\n     */\n    protected function directoriesExceptVendor()\n    {\n        return Arr::except(\n            array_flip((new Filesystem)->directories(base_path())),\n            [base_path('vendor')]\n        );\n    }\n\n    /**\n     * Register the blacklist with the handler.\n     *\n     * @param  \\Whoops\\Handler\\PrettyPageHandler $handler\n     * @return $this\n     */\n    protected function registerBlacklist($handler)\n    {\n        foreach (config('app.debug_blacklist', []) as $key => $secrets) {\n            foreach ($secrets as $secret) {\n                $handler->blacklist($key, $secret);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Register the editor with the handler.\n     *\n     * @param  \\Whoops\\Handler\\PrettyPageHandler $handler\n     * @return $this\n     */\n    protected function registerEditor($handler)\n    {\n        if (config('app.editor', false)) {\n            $handler->setEditor(config('app.editor'));\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/401.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Unauthorized'))\n@section('code', '401')\n@section('message', __('Unauthorized'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/403.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Forbidden'))\n@section('code', '403')\n@section('message', __($exception->getMessage() ?: 'Forbidden'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/404.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Not Found'))\n@section('code', '404')\n@section('message', __('Not Found'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Page Expired'))\n@section('code', '419')\n@section('message', __('Page Expired'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/429.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Too Many Requests'))\n@section('code', '429')\n@section('message', __('Too Many Requests'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/500.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Server Error'))\n@section('code', '500')\n@section('message', __('Server Error'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/503.blade.php",
    "content": "@extends('errors::minimal')\n\n@section('title', __('Service Unavailable'))\n@section('code', '503')\n@section('message', __($exception->getMessage() ?: 'Service Unavailable'))\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/illustrated-layout.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n\n        <title>@yield('title')</title>\n\n        <!-- Fonts -->\n        <link rel=\"dns-prefetch\" href=\"//fonts.gstatic.com\">\n        <link href=\"https://fonts.googleapis.com/css?family=Nunito\" rel=\"stylesheet\">\n\n        <!-- Styles -->\n        <style>\n            html {\n                line-height: 1.15;\n                    -ms-text-size-adjust: 100%;\n                -webkit-text-size-adjust: 100%;\n            }\n\n            body {\n                margin: 0;\n            }\n\n            header,\n            nav,\n            section {\n                display: block;\n            }\n\n            figcaption,\n            main {\n                display: block;\n            }\n\n            a {\n                background-color: transparent;\n                -webkit-text-decoration-skip: objects;\n            }\n\n            strong {\n                font-weight: inherit;\n            }\n\n            strong {\n                font-weight: bolder;\n            }\n\n            code {\n                font-family: monospace, monospace;\n                font-size: 1em;\n            }\n\n            dfn {\n                font-style: italic;\n            }\n\n            svg:not(:root) {\n                overflow: hidden;\n            }\n\n            button,\n            input {\n                font-family: sans-serif;\n                font-size: 100%;\n                line-height: 1.15;\n                margin: 0;\n            }\n\n            button,\n            input {\n                overflow: visible;\n            }\n\n            button {\n                text-transform: none;\n            }\n\n            button,\n            html [type=\"button\"],\n            [type=\"reset\"],\n            [type=\"submit\"] {\n                -webkit-appearance: button;\n            }\n\n            button::-moz-focus-inner,\n            [type=\"button\"]::-moz-focus-inner,\n            [type=\"reset\"]::-moz-focus-inner,\n            [type=\"submit\"]::-moz-focus-inner {\n                border-style: none;\n                padding: 0;\n            }\n\n            button:-moz-focusring,\n            [type=\"button\"]:-moz-focusring,\n            [type=\"reset\"]:-moz-focusring,\n            [type=\"submit\"]:-moz-focusring {\n                outline: 1px dotted ButtonText;\n            }\n\n            legend {\n                -webkit-box-sizing: border-box;\n                        box-sizing: border-box;\n                color: inherit;\n                display: table;\n                max-width: 100%;\n                padding: 0;\n                white-space: normal;\n            }\n\n            [type=\"checkbox\"],\n            [type=\"radio\"] {\n                -webkit-box-sizing: border-box;\n                        box-sizing: border-box;\n                padding: 0;\n            }\n\n            [type=\"number\"]::-webkit-inner-spin-button,\n            [type=\"number\"]::-webkit-outer-spin-button {\n                height: auto;\n            }\n\n            [type=\"search\"] {\n                -webkit-appearance: textfield;\n                outline-offset: -2px;\n            }\n\n            [type=\"search\"]::-webkit-search-cancel-button,\n            [type=\"search\"]::-webkit-search-decoration {\n                -webkit-appearance: none;\n            }\n\n            ::-webkit-file-upload-button {\n                -webkit-appearance: button;\n                font: inherit;\n            }\n\n            menu {\n                display: block;\n            }\n\n            canvas {\n                display: inline-block;\n            }\n\n            template {\n                display: none;\n            }\n\n            [hidden] {\n                display: none;\n            }\n\n            html {\n                -webkit-box-sizing: border-box;\n                        box-sizing: border-box;\n                font-family: sans-serif;\n            }\n\n            *,\n            *::before,\n            *::after {\n                -webkit-box-sizing: inherit;\n                        box-sizing: inherit;\n            }\n\n            p {\n                margin: 0;\n            }\n\n            button {\n                background: transparent;\n                padding: 0;\n            }\n\n            button:focus {\n                outline: 1px dotted;\n                outline: 5px auto -webkit-focus-ring-color;\n            }\n\n            *,\n            *::before,\n            *::after {\n                border-width: 0;\n                border-style: solid;\n                border-color: #dae1e7;\n            }\n\n            button,\n            [type=\"button\"],\n            [type=\"reset\"],\n            [type=\"submit\"] {\n                border-radius: 0;\n            }\n\n            button,\n            input {\n                font-family: inherit;\n            }\n\n            input::-webkit-input-placeholder {\n                color: inherit;\n                opacity: .5;\n            }\n\n            input:-ms-input-placeholder {\n                color: inherit;\n                opacity: .5;\n            }\n\n            input::-ms-input-placeholder {\n                color: inherit;\n                opacity: .5;\n            }\n\n            input::placeholder {\n                color: inherit;\n                opacity: .5;\n            }\n\n            button,\n            [role=button] {\n                cursor: pointer;\n            }\n\n            .bg-transparent {\n                background-color: transparent;\n            }\n\n            .bg-white {\n                background-color: #fff;\n            }\n\n            .bg-teal-light {\n                background-color: #64d5ca;\n            }\n\n            .bg-blue-dark {\n                background-color: #2779bd;\n            }\n\n            .bg-indigo-light {\n                background-color: #7886d7;\n            }\n\n            .bg-purple-light {\n                background-color: #a779e9;\n            }\n\n            .bg-no-repeat {\n                background-repeat: no-repeat;\n            }\n\n            .bg-cover {\n                background-size: cover;\n            }\n\n            .border-grey-light {\n                border-color: #dae1e7;\n            }\n\n            .hover\\:border-grey:hover {\n                border-color: #b8c2cc;\n            }\n\n            .rounded-lg {\n                border-radius: .5rem;\n            }\n\n            .border-2 {\n                border-width: 2px;\n            }\n\n            .hidden {\n                display: none;\n            }\n\n            .flex {\n                display: -webkit-box;\n                display: -ms-flexbox;\n                display: flex;\n            }\n\n            .items-center {\n                -webkit-box-align: center;\n                    -ms-flex-align: center;\n                        align-items: center;\n            }\n\n            .justify-center {\n                -webkit-box-pack: center;\n                    -ms-flex-pack: center;\n                        justify-content: center;\n            }\n\n            .font-sans {\n                font-family: Nunito, sans-serif;\n            }\n\n            .font-light {\n                font-weight: 300;\n            }\n\n            .font-bold {\n                font-weight: 700;\n            }\n\n            .font-black {\n                font-weight: 900;\n            }\n\n            .h-1 {\n                height: .25rem;\n            }\n\n            .leading-normal {\n                line-height: 1.5;\n            }\n\n            .m-8 {\n                margin: 2rem;\n            }\n\n            .my-3 {\n                margin-top: .75rem;\n                margin-bottom: .75rem;\n            }\n\n            .mb-8 {\n                margin-bottom: 2rem;\n            }\n\n            .max-w-sm {\n                max-width: 30rem;\n            }\n\n            .min-h-screen {\n                min-height: 100vh;\n            }\n\n            .py-3 {\n                padding-top: .75rem;\n                padding-bottom: .75rem;\n            }\n\n            .px-6 {\n                padding-left: 1.5rem;\n                padding-right: 1.5rem;\n            }\n\n            .pb-full {\n                padding-bottom: 100%;\n            }\n\n            .absolute {\n                position: absolute;\n            }\n\n            .relative {\n                position: relative;\n            }\n\n            .pin {\n                top: 0;\n                right: 0;\n                bottom: 0;\n                left: 0;\n            }\n\n            .text-black {\n                color: #22292f;\n            }\n\n            .text-grey-darkest {\n                color: #3d4852;\n            }\n\n            .text-grey-darker {\n                color: #606f7b;\n            }\n\n            .text-2xl {\n                font-size: 1.5rem;\n            }\n\n            .text-5xl {\n                font-size: 3rem;\n            }\n\n            .uppercase {\n                text-transform: uppercase;\n            }\n\n            .antialiased {\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n\n            .tracking-wide {\n                letter-spacing: .05em;\n            }\n\n            .w-16 {\n                width: 4rem;\n            }\n\n            .w-full {\n                width: 100%;\n            }\n\n            @media (min-width: 768px) {\n                .md\\:bg-left {\n                    background-position: left;\n                }\n\n                .md\\:bg-right {\n                    background-position: right;\n                }\n\n                .md\\:flex {\n                    display: -webkit-box;\n                    display: -ms-flexbox;\n                    display: flex;\n                }\n\n                .md\\:my-6 {\n                    margin-top: 1.5rem;\n                    margin-bottom: 1.5rem;\n                }\n\n                .md\\:min-h-screen {\n                    min-height: 100vh;\n                }\n\n                .md\\:pb-0 {\n                    padding-bottom: 0;\n                }\n\n                .md\\:text-3xl {\n                    font-size: 1.875rem;\n                }\n\n                .md\\:text-15xl {\n                    font-size: 9rem;\n                }\n\n                .md\\:w-1\\/2 {\n                    width: 50%;\n                }\n            }\n\n            @media (min-width: 992px) {\n                .lg\\:bg-center {\n                    background-position: center;\n                }\n            }\n        </style>\n    </head>\n    <body class=\"antialiased font-sans\">\n        <div class=\"md:flex min-h-screen\">\n            <div class=\"w-full md:w-1/2 bg-white flex items-center justify-center\">\n                <div class=\"max-w-sm m-8\">\n                    <div class=\"text-black text-5xl md:text-15xl font-black\">\n                        @yield('code', __('Oh no'))\n                    </div>\n\n                    <div class=\"w-16 h-1 bg-purple-light my-3 md:my-6\"></div>\n\n                    <p class=\"text-grey-darker text-2xl md:text-3xl font-light mb-8 leading-normal\">\n                        @yield('message')\n                    </p>\n\n                    <a href=\"{{ app('router')->has('home') ? route('home') : url('/') }}\">\n                        <button class=\"bg-transparent text-grey-darkest font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg\">\n                            {{ __('Go Home') }}\n                        </button>\n                    </a>\n                </div>\n            </div>\n\n            <div class=\"relative pb-full md:flex md:pb-0 md:min-h-screen w-full md:w-1/2\">\n                @yield('image')\n            </div>\n        </div>\n    </body>\n</html>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/layout.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n        <title>@yield('title')</title>\n\n        <!-- Fonts -->\n        <link rel=\"dns-prefetch\" href=\"//fonts.gstatic.com\">\n        <link href=\"https://fonts.googleapis.com/css?family=Nunito\" rel=\"stylesheet\" type=\"text/css\">\n\n        <!-- Styles -->\n        <style>\n            html, body {\n                background-color: #fff;\n                color: #636b6f;\n                font-family: 'Nunito', sans-serif;\n                font-weight: 100;\n                height: 100vh;\n                margin: 0;\n            }\n\n            .full-height {\n                height: 100vh;\n            }\n\n            .flex-center {\n                align-items: center;\n                display: flex;\n                justify-content: center;\n            }\n\n            .position-ref {\n                position: relative;\n            }\n\n            .content {\n                text-align: center;\n            }\n\n            .title {\n                font-size: 36px;\n                padding: 20px;\n            }\n        </style>\n    </head>\n    <body>\n        <div class=\"flex-center position-ref full-height\">\n            <div class=\"content\">\n                <div class=\"title\">\n                    @yield('message')\n                </div>\n            </div>\n        </div>\n    </body>\n</html>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\">\n        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n        <title>@yield('title')</title>\n\n        <!-- Fonts -->\n        <link rel=\"dns-prefetch\" href=\"//fonts.gstatic.com\">\n        <link href=\"https://fonts.googleapis.com/css?family=Nunito\" rel=\"stylesheet\">\n\n        <!-- Styles -->\n        <style>\n            html, body {\n                background-color: #fff;\n                color: #636b6f;\n                font-family: 'Nunito', sans-serif;\n                font-weight: 100;\n                height: 100vh;\n                margin: 0;\n            }\n\n            .full-height {\n                height: 100vh;\n            }\n\n            .flex-center {\n                align-items: center;\n                display: flex;\n                justify-content: center;\n            }\n\n            .position-ref {\n                position: relative;\n            }\n\n            .code {\n                border-right: 2px solid;\n                font-size: 26px;\n                padding: 0 15px 0 15px;\n                text-align: center;\n            }\n\n            .message {\n                font-size: 18px;\n                text-align: center;\n            }\n        </style>\n    </head>\n    <body>\n        <div class=\"flex-center position-ref full-height\">\n            <div class=\"code\">\n                @yield('code')\n            </div>\n\n            <div class=\"message\" style=\"padding: 10px;\">\n                @yield('message')\n            </div>\n        </div>\n    </body>\n</html>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Events/RequestHandled.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Events;\n\nclass RequestHandled\n{\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    public $request;\n\n    /**\n     * The response instance.\n     *\n     * @var \\Illuminate\\Http\\Response\n     */\n    public $response;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return void\n     */\n    public function __construct($request, $response)\n    {\n        $this->request = $request;\n        $this->response = $response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Exceptions/MaintenanceModeException.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Exceptions;\n\nuse Exception;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Facades\\Date;\nuse Symfony\\Component\\HttpKernel\\Exception\\ServiceUnavailableHttpException;\n\nclass MaintenanceModeException extends ServiceUnavailableHttpException\n{\n    /**\n     * When the application was put in maintenance mode.\n     *\n     * @var \\Illuminate\\Support\\Carbon\n     */\n    public $wentDownAt;\n\n    /**\n     * The number of seconds to wait before retrying.\n     *\n     * @var int\n     */\n    public $retryAfter;\n\n    /**\n     * When the application should next be available.\n     *\n     * @var \\Illuminate\\Support\\Carbon\n     */\n    public $willBeAvailableAt;\n\n    /**\n     * Create a new exception instance.\n     *\n     * @param  int  $time\n     * @param  int|null  $retryAfter\n     * @param  string|null  $message\n     * @param  \\Exception|null  $previous\n     * @param  int  $code\n     * @return void\n     */\n    public function __construct($time, $retryAfter = null, $message = null, Exception $previous = null, $code = 0)\n    {\n        parent::__construct($retryAfter, $message, $previous, $code);\n\n        $this->wentDownAt = Date::createFromTimestamp($time);\n\n        if ($retryAfter) {\n            $this->retryAfter = $retryAfter;\n\n            $this->willBeAvailableAt = Date::instance(Carbon::createFromTimestamp($time)->addRealSeconds($this->retryAfter));\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Redirector;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Validation\\Validator;\nuse Illuminate\\Validation\\ValidationException;\nuse Illuminate\\Auth\\Access\\AuthorizationException;\nuse Illuminate\\Validation\\ValidatesWhenResolvedTrait;\nuse Illuminate\\Contracts\\Validation\\ValidatesWhenResolved;\nuse Illuminate\\Contracts\\Validation\\Factory as ValidationFactory;\n\nclass FormRequest extends Request implements ValidatesWhenResolved\n{\n    use ValidatesWhenResolvedTrait;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The redirector instance.\n     *\n     * @var \\Illuminate\\Routing\\Redirector\n     */\n    protected $redirector;\n\n    /**\n     * The URI to redirect to if validation fails.\n     *\n     * @var string\n     */\n    protected $redirect;\n\n    /**\n     * The route to redirect to if validation fails.\n     *\n     * @var string\n     */\n    protected $redirectRoute;\n\n    /**\n     * The controller action to redirect to if validation fails.\n     *\n     * @var string\n     */\n    protected $redirectAction;\n\n    /**\n     * The key to be used for the view error bag.\n     *\n     * @var string\n     */\n    protected $errorBag = 'default';\n\n    /**\n     * The validator instance.\n     *\n     * @var \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    protected $validator;\n\n    /**\n     * Get the validator instance for the request.\n     *\n     * @return \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    protected function getValidatorInstance()\n    {\n        if ($this->validator) {\n            return $this->validator;\n        }\n\n        $factory = $this->container->make(ValidationFactory::class);\n\n        if (method_exists($this, 'validator')) {\n            $validator = $this->container->call([$this, 'validator'], compact('factory'));\n        } else {\n            $validator = $this->createDefaultValidator($factory);\n        }\n\n        if (method_exists($this, 'withValidator')) {\n            $this->withValidator($validator);\n        }\n\n        $this->setValidator($validator);\n\n        return $this->validator;\n    }\n\n    /**\n     * Create the default validator instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Validation\\Factory  $factory\n     * @return \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    protected function createDefaultValidator(ValidationFactory $factory)\n    {\n        return $factory->make(\n            $this->validationData(), $this->container->call([$this, 'rules']),\n            $this->messages(), $this->attributes()\n        );\n    }\n\n    /**\n     * Get data to be validated from the request.\n     *\n     * @return array\n     */\n    protected function validationData()\n    {\n        return $this->all();\n    }\n\n    /**\n     * Handle a failed validation attempt.\n     *\n     * @param  \\Illuminate\\Contracts\\Validation\\Validator  $validator\n     * @return void\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    protected function failedValidation(Validator $validator)\n    {\n        throw (new ValidationException($validator))\n                    ->errorBag($this->errorBag)\n                    ->redirectTo($this->getRedirectUrl());\n    }\n\n    /**\n     * Get the URL to redirect to on a validation error.\n     *\n     * @return string\n     */\n    protected function getRedirectUrl()\n    {\n        $url = $this->redirector->getUrlGenerator();\n\n        if ($this->redirect) {\n            return $url->to($this->redirect);\n        } elseif ($this->redirectRoute) {\n            return $url->route($this->redirectRoute);\n        } elseif ($this->redirectAction) {\n            return $url->action($this->redirectAction);\n        }\n\n        return $url->previous();\n    }\n\n    /**\n     * Determine if the request passes the authorization check.\n     *\n     * @return bool\n     */\n    protected function passesAuthorization()\n    {\n        if (method_exists($this, 'authorize')) {\n            return $this->container->call([$this, 'authorize']);\n        }\n\n        return true;\n    }\n\n    /**\n     * Handle a failed authorization attempt.\n     *\n     * @return void\n     *\n     * @throws \\Illuminate\\Auth\\Access\\AuthorizationException\n     */\n    protected function failedAuthorization()\n    {\n        throw new AuthorizationException('This action is unauthorized.');\n    }\n\n    /**\n     * Get the validated data from the request.\n     *\n     * @return array\n     */\n    public function validated()\n    {\n        return $this->validator->validated();\n    }\n\n    /**\n     * Get custom messages for validator errors.\n     *\n     * @return array\n     */\n    public function messages()\n    {\n        return [];\n    }\n\n    /**\n     * Get custom attributes for validator errors.\n     *\n     * @return array\n     */\n    public function attributes()\n    {\n        return [];\n    }\n\n    /**\n     * Set the Validator instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Validation\\Validator  $validator\n     * @return $this\n     */\n    public function setValidator(Validator $validator)\n    {\n        $this->validator = $validator;\n\n        return $this;\n    }\n\n    /**\n     * Set the Redirector instance.\n     *\n     * @param  \\Illuminate\\Routing\\Redirector  $redirector\n     * @return $this\n     */\n    public function setRedirector(Redirector $redirector)\n    {\n        $this->redirector = $redirector;\n\n        return $this;\n    }\n\n    /**\n     * Set the container implementation.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return $this\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http;\n\nuse Exception;\nuse Throwable;\nuse Illuminate\\Routing\\Router;\nuse Illuminate\\Routing\\Pipeline;\nuse Illuminate\\Support\\Facades\\Facade;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Illuminate\\Contracts\\Http\\Kernel as KernelContract;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\nclass Kernel implements KernelContract\n{\n    /**\n     * The application implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * The bootstrap classes for the application.\n     *\n     * @var array\n     */\n    protected $bootstrappers = [\n        \\Illuminate\\Foundation\\Bootstrap\\LoadEnvironmentVariables::class,\n        \\Illuminate\\Foundation\\Bootstrap\\LoadConfiguration::class,\n        \\Illuminate\\Foundation\\Bootstrap\\HandleExceptions::class,\n        \\Illuminate\\Foundation\\Bootstrap\\RegisterFacades::class,\n        \\Illuminate\\Foundation\\Bootstrap\\RegisterProviders::class,\n        \\Illuminate\\Foundation\\Bootstrap\\BootProviders::class,\n    ];\n\n    /**\n     * The application's middleware stack.\n     *\n     * @var array\n     */\n    protected $middleware = [];\n\n    /**\n     * The application's route middleware groups.\n     *\n     * @var array\n     */\n    protected $middlewareGroups = [];\n\n    /**\n     * The application's route middleware.\n     *\n     * @var array\n     */\n    protected $routeMiddleware = [];\n\n    /**\n     * The priority-sorted list of middleware.\n     *\n     * Forces non-global middleware to always be in the given order.\n     *\n     * @var array\n     */\n    protected $middlewarePriority = [\n        \\Illuminate\\Session\\Middleware\\StartSession::class,\n        \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class,\n        \\Illuminate\\Auth\\Middleware\\Authenticate::class,\n        \\Illuminate\\Session\\Middleware\\AuthenticateSession::class,\n        \\Illuminate\\Routing\\Middleware\\SubstituteBindings::class,\n        \\Illuminate\\Auth\\Middleware\\Authorize::class,\n    ];\n\n    /**\n     * Create a new HTTP kernel instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return void\n     */\n    public function __construct(Application $app, Router $router)\n    {\n        $this->app = $app;\n        $this->router = $router;\n\n        $router->middlewarePriority = $this->middlewarePriority;\n\n        foreach ($this->middlewareGroups as $key => $middleware) {\n            $router->middlewareGroup($key, $middleware);\n        }\n\n        foreach ($this->routeMiddleware as $key => $middleware) {\n            $router->aliasMiddleware($key, $middleware);\n        }\n    }\n\n    /**\n     * Handle an incoming HTTP request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function handle($request)\n    {\n        try {\n            $request->enableHttpMethodParameterOverride();\n\n            $response = $this->sendRequestThroughRouter($request);\n        } catch (Exception $e) {\n            $this->reportException($e);\n\n            $response = $this->renderException($request, $e);\n        } catch (Throwable $e) {\n            $this->reportException($e = new FatalThrowableError($e));\n\n            $response = $this->renderException($request, $e);\n        }\n\n        $this->app['events']->dispatch(\n            new Events\\RequestHandled($request, $response)\n        );\n\n        return $response;\n    }\n\n    /**\n     * Send the given request through the middleware / router.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    protected function sendRequestThroughRouter($request)\n    {\n        $this->app->instance('request', $request);\n\n        Facade::clearResolvedInstance('request');\n\n        $this->bootstrap();\n\n        return (new Pipeline($this->app))\n                    ->send($request)\n                    ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)\n                    ->then($this->dispatchToRouter());\n    }\n\n    /**\n     * Bootstrap the application for HTTP requests.\n     *\n     * @return void\n     */\n    public function bootstrap()\n    {\n        if (! $this->app->hasBeenBootstrapped()) {\n            $this->app->bootstrapWith($this->bootstrappers());\n        }\n    }\n\n    /**\n     * Get the route dispatcher callback.\n     *\n     * @return \\Closure\n     */\n    protected function dispatchToRouter()\n    {\n        return function ($request) {\n            $this->app->instance('request', $request);\n\n            return $this->router->dispatch($request);\n        };\n    }\n\n    /**\n     * Call the terminate method on any terminable middleware.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return void\n     */\n    public function terminate($request, $response)\n    {\n        $this->terminateMiddleware($request, $response);\n\n        $this->app->terminate();\n    }\n\n    /**\n     * Call the terminate method on any terminable middleware.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return void\n     */\n    protected function terminateMiddleware($request, $response)\n    {\n        $middlewares = $this->app->shouldSkipMiddleware() ? [] : array_merge(\n            $this->gatherRouteMiddleware($request),\n            $this->middleware\n        );\n\n        foreach ($middlewares as $middleware) {\n            if (! is_string($middleware)) {\n                continue;\n            }\n\n            [$name] = $this->parseMiddleware($middleware);\n\n            $instance = $this->app->make($name);\n\n            if (method_exists($instance, 'terminate')) {\n                $instance->terminate($request, $response);\n            }\n        }\n    }\n\n    /**\n     * Gather the route middleware for the given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function gatherRouteMiddleware($request)\n    {\n        if ($route = $request->route()) {\n            return $this->router->gatherRouteMiddleware($route);\n        }\n\n        return [];\n    }\n\n    /**\n     * Parse a middleware string to get the name and parameters.\n     *\n     * @param  string  $middleware\n     * @return array\n     */\n    protected function parseMiddleware($middleware)\n    {\n        [$name, $parameters] = array_pad(explode(':', $middleware, 2), 2, []);\n\n        if (is_string($parameters)) {\n            $parameters = explode(',', $parameters);\n        }\n\n        return [$name, $parameters];\n    }\n\n    /**\n     * Determine if the kernel has a given middleware.\n     *\n     * @param  string  $middleware\n     * @return bool\n     */\n    public function hasMiddleware($middleware)\n    {\n        return in_array($middleware, $this->middleware);\n    }\n\n    /**\n     * Add a new middleware to beginning of the stack if it does not already exist.\n     *\n     * @param  string  $middleware\n     * @return $this\n     */\n    public function prependMiddleware($middleware)\n    {\n        if (array_search($middleware, $this->middleware) === false) {\n            array_unshift($this->middleware, $middleware);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a new middleware to end of the stack if it does not already exist.\n     *\n     * @param  string  $middleware\n     * @return $this\n     */\n    public function pushMiddleware($middleware)\n    {\n        if (array_search($middleware, $this->middleware) === false) {\n            $this->middleware[] = $middleware;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the bootstrap classes for the application.\n     *\n     * @return array\n     */\n    protected function bootstrappers()\n    {\n        return $this->bootstrappers;\n    }\n\n    /**\n     * Report the exception to the exception handler.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function reportException(Exception $e)\n    {\n        $this->app[ExceptionHandler::class]->report($e);\n    }\n\n    /**\n     * Render the exception to a response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Exception  $e\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function renderException($request, Exception $e)\n    {\n        return $this->app[ExceptionHandler::class]->render($request, $e);\n    }\n\n    /**\n     * Get the application's route middleware groups.\n     *\n     * @return array\n     */\n    public function getMiddlewareGroups()\n    {\n        return $this->middlewareGroups;\n    }\n\n    /**\n     * Get the application's route middleware.\n     *\n     * @return array\n     */\n    public function getRouteMiddleware()\n    {\n        return $this->routeMiddleware;\n    }\n\n    /**\n     * Get the Laravel application instance.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    public function getApplication()\n    {\n        return $this->app;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nuse Closure;\nuse Symfony\\Component\\HttpFoundation\\IpUtils;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Illuminate\\Foundation\\Http\\Exceptions\\MaintenanceModeException;\n\nclass CheckForMaintenanceMode\n{\n    /**\n     * The application implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The URIs that should be accessible while maintenance mode is enabled.\n     *\n     * @var array\n     */\n    protected $except = [];\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct(Application $app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     */\n    public function handle($request, Closure $next)\n    {\n        if ($this->app->isDownForMaintenance()) {\n            $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true);\n\n            if (isset($data['allowed']) && IpUtils::checkIp($request->ip(), (array) $data['allowed'])) {\n                return $next($request);\n            }\n\n            if ($this->inExceptArray($request)) {\n                return $next($request);\n            }\n\n            throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']);\n        }\n\n        return $next($request);\n    }\n\n    /**\n     * Determine if the request has a URI that should be accessible in maintenance mode.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function inExceptArray($request)\n    {\n        foreach ($this->except as $except) {\n            if ($except !== '/') {\n                $except = trim($except, '/');\n            }\n\n            if ($request->fullUrlIs($except) || $request->is($except)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nclass ConvertEmptyStringsToNull extends TransformsRequest\n{\n    /**\n     * Transform the given value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function transform($key, $value)\n    {\n        return is_string($value) && $value === '' ? null : $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nuse Closure;\nuse Symfony\\Component\\HttpFoundation\\ParameterBag;\n\nclass TransformsRequest\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $this->clean($request);\n\n        return $next($request);\n    }\n\n    /**\n     * Clean the request's data.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function clean($request)\n    {\n        $this->cleanParameterBag($request->query);\n\n        if ($request->isJson()) {\n            $this->cleanParameterBag($request->json());\n        } elseif ($request->request !== $request->query) {\n            $this->cleanParameterBag($request->request);\n        }\n    }\n\n    /**\n     * Clean the data in the parameter bag.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\ParameterBag  $bag\n     * @return void\n     */\n    protected function cleanParameterBag(ParameterBag $bag)\n    {\n        $bag->replace($this->cleanArray($bag->all()));\n    }\n\n    /**\n     * Clean the data in the given array.\n     *\n     * @param  array  $data\n     * @param  string  $keyPrefix\n     * @return array\n     */\n    protected function cleanArray(array $data, $keyPrefix = '')\n    {\n        return collect($data)->map(function ($value, $key) use ($keyPrefix) {\n            return $this->cleanValue($keyPrefix.$key, $value);\n        })->all();\n    }\n\n    /**\n     * Clean the given value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function cleanValue($key, $value)\n    {\n        if (is_array($value)) {\n            return $this->cleanArray($value, $key.'.');\n        }\n\n        return $this->transform($key, $value);\n    }\n\n    /**\n     * Transform the given value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function transform($key, $value)\n    {\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nclass TrimStrings extends TransformsRequest\n{\n    /**\n     * The attributes that should not be trimmed.\n     *\n     * @var array\n     */\n    protected $except = [\n        //\n    ];\n\n    /**\n     * Transform the given value.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function transform($key, $value)\n    {\n        if (in_array($key, $this->except, true)) {\n            return $value;\n        }\n\n        return is_string($value) ? trim($value) : $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Exceptions\\PostTooLargeException;\n\nclass ValidatePostSize\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Http\\Exceptions\\PostTooLargeException\n     */\n    public function handle($request, Closure $next)\n    {\n        $max = $this->getPostMaxSize();\n\n        if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) {\n            throw new PostTooLargeException;\n        }\n\n        return $next($request);\n    }\n\n    /**\n     * Determine the server 'post_max_size' as bytes.\n     *\n     * @return int\n     */\n    protected function getPostMaxSize()\n    {\n        if (is_numeric($postMaxSize = ini_get('post_max_size'))) {\n            return (int) $postMaxSize;\n        }\n\n        $metric = strtoupper(substr($postMaxSize, -1));\n        $postMaxSize = (int) $postMaxSize;\n\n        switch ($metric) {\n            case 'K':\n                return $postMaxSize * 1024;\n            case 'M':\n                return $postMaxSize * 1048576;\n            case 'G':\n                return $postMaxSize * 1073741824;\n            default:\n                return $postMaxSize;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Http\\Middleware;\n\nuse Closure;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Symfony\\Component\\HttpFoundation\\Cookie;\nuse Illuminate\\Contracts\\Encryption\\Encrypter;\nuse Illuminate\\Session\\TokenMismatchException;\nuse Illuminate\\Contracts\\Foundation\\Application;\nuse Illuminate\\Cookie\\Middleware\\EncryptCookies;\n\nclass VerifyCsrfToken\n{\n    use InteractsWithTime;\n\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The encrypter implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Encryption\\Encrypter\n     */\n    protected $encrypter;\n\n    /**\n     * The URIs that should be excluded from CSRF verification.\n     *\n     * @var array\n     */\n    protected $except = [];\n\n    /**\n     * Indicates whether the XSRF-TOKEN cookie should be set on the response.\n     *\n     * @var bool\n     */\n    protected $addHttpCookie = true;\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Contracts\\Encryption\\Encrypter  $encrypter\n     * @return void\n     */\n    public function __construct(Application $app, Encrypter $encrypter)\n    {\n        $this->app = $app;\n        $this->encrypter = $encrypter;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Session\\TokenMismatchException\n     */\n    public function handle($request, Closure $next)\n    {\n        if (\n            $this->isReading($request) ||\n            $this->runningUnitTests() ||\n            $this->inExceptArray($request) ||\n            $this->tokensMatch($request)\n        ) {\n            return tap($next($request), function ($response) use ($request) {\n                if ($this->shouldAddXsrfTokenCookie()) {\n                    $this->addCookieToResponse($request, $response);\n                }\n            });\n        }\n\n        throw new TokenMismatchException('CSRF token mismatch.');\n    }\n\n    /**\n     * Determine if the HTTP request uses a ‘read’ verb.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function isReading($request)\n    {\n        return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']);\n    }\n\n    /**\n     * Determine if the application is running unit tests.\n     *\n     * @return bool\n     */\n    protected function runningUnitTests()\n    {\n        return $this->app->runningInConsole() && $this->app->runningUnitTests();\n    }\n\n    /**\n     * Determine if the request has a URI that should pass through CSRF verification.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function inExceptArray($request)\n    {\n        foreach ($this->except as $except) {\n            if ($except !== '/') {\n                $except = trim($except, '/');\n            }\n\n            if ($request->fullUrlIs($except) || $request->is($except)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the session and input CSRF tokens match.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    protected function tokensMatch($request)\n    {\n        $token = $this->getTokenFromRequest($request);\n\n        return is_string($request->session()->token()) &&\n               is_string($token) &&\n               hash_equals($request->session()->token(), $token);\n    }\n\n    /**\n     * Get the CSRF token from the request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return string\n     */\n    protected function getTokenFromRequest($request)\n    {\n        $token = $request->input('_token') ?: $request->header('X-CSRF-TOKEN');\n\n        if (! $token && $header = $request->header('X-XSRF-TOKEN')) {\n            $token = $this->encrypter->decrypt($header, static::serialized());\n        }\n\n        return $token;\n    }\n\n    /**\n     * Determine if the cookie should be added to the response.\n     *\n     * @return bool\n     */\n    public function shouldAddXsrfTokenCookie()\n    {\n        return $this->addHttpCookie;\n    }\n\n    /**\n     * Add the CSRF token to the response cookies.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function addCookieToResponse($request, $response)\n    {\n        $config = config('session');\n\n        $response->headers->setCookie(\n            new Cookie(\n                'XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']),\n                $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null\n            )\n        );\n\n        return $response;\n    }\n\n    /**\n     * Determine if the cookie contents should be serialized.\n     *\n     * @return bool\n     */\n    public static function serialized()\n    {\n        return EncryptCookies::serialized('XSRF-TOKEN');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Inspiring.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Illuminate\\Support\\Collection;\n\nclass Inspiring\n{\n    /**\n     * Get an inspiring quote.\n     *\n     * Taylor & Dayle made this commit from Jungfraujoch. (11,333 ft.)\n     *\n     * May McGinnis always control the board. #LaraconUS2015\n     *\n     * RIP Charlie - Feb 6, 2018\n     *\n     * @return string\n     */\n    public static function quote()\n    {\n        return Collection::make([\n            'When there is no desire, all things are at peace. - Laozi',\n            'Simplicity is the ultimate sophistication. - Leonardo da Vinci',\n            'Simplicity is the essence of happiness. - Cedric Bledsoe',\n            'Smile, breathe, and go slowly. - Thich Nhat Hanh',\n            'Simplicity is an acquired taste. - Katharine Gerould',\n            'Well begun is half done. - Aristotle',\n            'He who is contented is rich. - Laozi',\n            'Very little is needed to make a happy life. - Marcus Antoninus',\n            'It is quality rather than quantity that matters. - Lucius Annaeus Seneca',\n            'Genius is one percent inspiration and ninety-nine percent perspiration. - Thomas Edison',\n            'Computer science is no more about computers than astronomy is about telescopes. - Edsger Dijkstra',\n            'It always seems impossible until it is done. - Nelson Mandela',\n            'Act only according to that maxim whereby you can, at the same time, will that it should become a universal law. - Immanuel Kant',\n        ])->random();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Mix.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Exception;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\HtmlString;\n\nclass Mix\n{\n    /**\n     * Get the path to a versioned Mix file.\n     *\n     * @param  string  $path\n     * @param  string  $manifestDirectory\n     * @return \\Illuminate\\Support\\HtmlString|string\n     *\n     * @throws \\Exception\n     */\n    public function __invoke($path, $manifestDirectory = '')\n    {\n        static $manifests = [];\n\n        if (! Str::startsWith($path, '/')) {\n            $path = \"/{$path}\";\n        }\n\n        if ($manifestDirectory && ! Str::startsWith($manifestDirectory, '/')) {\n            $manifestDirectory = \"/{$manifestDirectory}\";\n        }\n\n        if (file_exists(public_path($manifestDirectory.'/hot'))) {\n            $url = rtrim(file_get_contents(public_path($manifestDirectory.'/hot')));\n\n            if (Str::startsWith($url, ['http://', 'https://'])) {\n                return new HtmlString(Str::after($url, ':').$path);\n            }\n\n            return new HtmlString(\"//localhost:8080{$path}\");\n        }\n\n        $manifestPath = public_path($manifestDirectory.'/mix-manifest.json');\n\n        if (! isset($manifests[$manifestPath])) {\n            if (! file_exists($manifestPath)) {\n                throw new Exception('The Mix manifest does not exist.');\n            }\n\n            $manifests[$manifestPath] = json_decode(file_get_contents($manifestPath), true);\n        }\n\n        $manifest = $manifests[$manifestPath];\n\n        if (! isset($manifest[$path])) {\n            $exception = new Exception(\"Unable to locate Mix file: {$path}.\");\n\n            if (! app('config')->get('app.debug')) {\n                report($exception);\n\n                return $path;\n            } else {\n                throw $exception;\n            }\n        }\n\n        return new HtmlString(app('config')->get('app.mix_url').$manifestDirectory.$manifest[$path]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Exception;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass PackageManifest\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    public $files;\n\n    /**\n     * The base path.\n     *\n     * @var string\n     */\n    public $basePath;\n\n    /**\n     * The vendor path.\n     *\n     * @var string\n     */\n    public $vendorPath;\n\n    /**\n     * The manifest path.\n     *\n     * @var string|null\n     */\n    public $manifestPath;\n\n    /**\n     * The loaded manifest array.\n     *\n     * @var array\n     */\n    public $manifest;\n\n    /**\n     * Create a new package manifest instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $basePath\n     * @param  string  $manifestPath\n     * @return void\n     */\n    public function __construct(Filesystem $files, $basePath, $manifestPath)\n    {\n        $this->files = $files;\n        $this->basePath = $basePath;\n        $this->manifestPath = $manifestPath;\n        $this->vendorPath = $basePath.'/vendor';\n    }\n\n    /**\n     * Get all of the service provider class names for all packages.\n     *\n     * @return array\n     */\n    public function providers()\n    {\n        return collect($this->getManifest())->flatMap(function ($configuration) {\n            return (array) ($configuration['providers'] ?? []);\n        })->filter()->all();\n    }\n\n    /**\n     * Get all of the aliases for all packages.\n     *\n     * @return array\n     */\n    public function aliases()\n    {\n        return collect($this->getManifest())->flatMap(function ($configuration) {\n            return (array) ($configuration['aliases'] ?? []);\n        })->filter()->all();\n    }\n\n    /**\n     * Get the current package manifest.\n     *\n     * @return array\n     */\n    protected function getManifest()\n    {\n        if (! is_null($this->manifest)) {\n            return $this->manifest;\n        }\n\n        if (! file_exists($this->manifestPath)) {\n            $this->build();\n        }\n\n        $this->files->get($this->manifestPath);\n\n        return $this->manifest = file_exists($this->manifestPath) ?\n            $this->files->getRequire($this->manifestPath) : [];\n    }\n\n    /**\n     * Build the manifest and write it to disk.\n     *\n     * @return void\n     */\n    public function build()\n    {\n        $packages = [];\n\n        if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) {\n            $packages = json_decode($this->files->get($path), true);\n        }\n\n        $ignoreAll = in_array('*', $ignore = $this->packagesToIgnore());\n\n        $this->write(collect($packages)->mapWithKeys(function ($package) {\n            return [$this->format($package['name']) => $package['extra']['laravel'] ?? []];\n        })->each(function ($configuration) use (&$ignore) {\n            $ignore = array_merge($ignore, $configuration['dont-discover'] ?? []);\n        })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) {\n            return $ignoreAll || in_array($package, $ignore);\n        })->filter()->all());\n    }\n\n    /**\n     * Format the given package name.\n     *\n     * @param  string  $package\n     * @return string\n     */\n    protected function format($package)\n    {\n        return str_replace($this->vendorPath.'/', '', $package);\n    }\n\n    /**\n     * Get all of the package names that should be ignored.\n     *\n     * @return array\n     */\n    protected function packagesToIgnore()\n    {\n        if (! file_exists($this->basePath.'/composer.json')) {\n            return [];\n        }\n\n        return json_decode(file_get_contents(\n            $this->basePath.'/composer.json'\n        ), true)['extra']['laravel']['dont-discover'] ?? [];\n    }\n\n    /**\n     * Write the given manifest array to disk.\n     *\n     * @param  array  $manifest\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function write(array $manifest)\n    {\n        if (! is_writable(dirname($this->manifestPath))) {\n            throw new Exception('The '.dirname($this->manifestPath).' directory must be present and writable.');\n        }\n\n        $this->files->replace(\n            $this->manifestPath, '<?php return '.var_export($manifest, true).';'\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation;\n\nuse Exception;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Contracts\\Foundation\\Application as ApplicationContract;\n\nclass ProviderRepository\n{\n    /**\n     * The application implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The path to the manifest file.\n     *\n     * @var string\n     */\n    protected $manifestPath;\n\n    /**\n     * Create a new service repository instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $manifestPath\n     * @return void\n     */\n    public function __construct(ApplicationContract $app, Filesystem $files, $manifestPath)\n    {\n        $this->app = $app;\n        $this->files = $files;\n        $this->manifestPath = $manifestPath;\n    }\n\n    /**\n     * Register the application service providers.\n     *\n     * @param  array  $providers\n     * @return void\n     */\n    public function load(array $providers)\n    {\n        $manifest = $this->loadManifest();\n\n        // First we will load the service manifest, which contains information on all\n        // service providers registered with the application and which services it\n        // provides. This is used to know which services are \"deferred\" loaders.\n        if ($this->shouldRecompile($manifest, $providers)) {\n            $manifest = $this->compileManifest($providers);\n        }\n\n        // Next, we will register events to load the providers for each of the events\n        // that it has requested. This allows the service provider to defer itself\n        // while still getting automatically loaded when a certain event occurs.\n        foreach ($manifest['when'] as $provider => $events) {\n            $this->registerLoadEvents($provider, $events);\n        }\n\n        // We will go ahead and register all of the eagerly loaded providers with the\n        // application so their services can be registered with the application as\n        // a provided service. Then we will set the deferred service list on it.\n        foreach ($manifest['eager'] as $provider) {\n            $this->app->register($provider);\n        }\n\n        $this->app->addDeferredServices($manifest['deferred']);\n    }\n\n    /**\n     * Load the service provider manifest JSON file.\n     *\n     * @return array|null\n     */\n    public function loadManifest()\n    {\n        // The service manifest is a file containing a JSON representation of every\n        // service provided by the application and whether its provider is using\n        // deferred loading or should be eagerly loaded on each request to us.\n        if ($this->files->exists($this->manifestPath)) {\n            $manifest = $this->files->getRequire($this->manifestPath);\n\n            if ($manifest) {\n                return array_merge(['when' => []], $manifest);\n            }\n        }\n    }\n\n    /**\n     * Determine if the manifest should be compiled.\n     *\n     * @param  array  $manifest\n     * @param  array  $providers\n     * @return bool\n     */\n    public function shouldRecompile($manifest, $providers)\n    {\n        return is_null($manifest) || $manifest['providers'] != $providers;\n    }\n\n    /**\n     * Register the load events for the given provider.\n     *\n     * @param  string  $provider\n     * @param  array  $events\n     * @return void\n     */\n    protected function registerLoadEvents($provider, array $events)\n    {\n        if (count($events) < 1) {\n            return;\n        }\n\n        $this->app->make('events')->listen($events, function () use ($provider) {\n            $this->app->register($provider);\n        });\n    }\n\n    /**\n     * Compile the application service manifest file.\n     *\n     * @param  array  $providers\n     * @return array\n     */\n    protected function compileManifest($providers)\n    {\n        // The service manifest should contain a list of all of the providers for\n        // the application so we can compare it on each request to the service\n        // and determine if the manifest should be recompiled or is current.\n        $manifest = $this->freshManifest($providers);\n\n        foreach ($providers as $provider) {\n            $instance = $this->createProvider($provider);\n\n            // When recompiling the service manifest, we will spin through each of the\n            // providers and check if it's a deferred provider or not. If so we'll\n            // add it's provided services to the manifest and note the provider.\n            if ($instance->isDeferred()) {\n                foreach ($instance->provides() as $service) {\n                    $manifest['deferred'][$service] = $provider;\n                }\n\n                $manifest['when'][$provider] = $instance->when();\n            }\n\n            // If the service providers are not deferred, we will simply add it to an\n            // array of eagerly loaded providers that will get registered on every\n            // request to this application instead of \"lazy\" loading every time.\n            else {\n                $manifest['eager'][] = $provider;\n            }\n        }\n\n        return $this->writeManifest($manifest);\n    }\n\n    /**\n     * Create a fresh service manifest data structure.\n     *\n     * @param  array  $providers\n     * @return array\n     */\n    protected function freshManifest(array $providers)\n    {\n        return ['providers' => $providers, 'eager' => [], 'deferred' => []];\n    }\n\n    /**\n     * Write the service manifest file to disk.\n     *\n     * @param  array  $manifest\n     * @return array\n     *\n     * @throws \\Exception\n     */\n    public function writeManifest($manifest)\n    {\n        if (! is_writable(dirname($this->manifestPath))) {\n            throw new Exception('The bootstrap/cache directory must be present and writable.');\n        }\n\n        $this->files->replace(\n            $this->manifestPath, '<?php return '.var_export($manifest, true).';'\n        );\n\n        return array_merge(['when' => []], $manifest);\n    }\n\n    /**\n     * Create a new provider instance.\n     *\n     * @param  string  $provider\n     * @return \\Illuminate\\Support\\ServiceProvider\n     */\n    public function createProvider($provider)\n    {\n        return new $provider($this->app);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Providers/ArtisanServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Providers;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Queue\\Console\\TableCommand;\nuse Illuminate\\Auth\\Console\\AuthMakeCommand;\nuse Illuminate\\Foundation\\Console\\UpCommand;\nuse Illuminate\\Foundation\\Console\\DownCommand;\nuse Illuminate\\Auth\\Console\\ClearResetsCommand;\nuse Illuminate\\Cache\\Console\\CacheTableCommand;\nuse Illuminate\\Foundation\\Console\\ServeCommand;\nuse Illuminate\\Foundation\\Console\\PresetCommand;\nuse Illuminate\\Queue\\Console\\FailedTableCommand;\nuse Illuminate\\Foundation\\Console\\AppNameCommand;\nuse Illuminate\\Foundation\\Console\\JobMakeCommand;\nuse Illuminate\\Database\\Console\\Seeds\\SeedCommand;\nuse Illuminate\\Foundation\\Console\\MailMakeCommand;\nuse Illuminate\\Foundation\\Console\\OptimizeCommand;\nuse Illuminate\\Foundation\\Console\\RuleMakeCommand;\nuse Illuminate\\Foundation\\Console\\TestMakeCommand;\nuse Illuminate\\Foundation\\Console\\EventListCommand;\nuse Illuminate\\Foundation\\Console\\EventMakeCommand;\nuse Illuminate\\Foundation\\Console\\ModelMakeCommand;\nuse Illuminate\\Foundation\\Console\\RouteListCommand;\nuse Illuminate\\Foundation\\Console\\ViewCacheCommand;\nuse Illuminate\\Foundation\\Console\\ViewClearCommand;\nuse Illuminate\\Session\\Console\\SessionTableCommand;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Foundation\\Console\\EventCacheCommand;\nuse Illuminate\\Foundation\\Console\\EventClearCommand;\nuse Illuminate\\Foundation\\Console\\PolicyMakeCommand;\nuse Illuminate\\Foundation\\Console\\RouteCacheCommand;\nuse Illuminate\\Foundation\\Console\\RouteClearCommand;\nuse Illuminate\\Console\\Scheduling\\ScheduleRunCommand;\nuse Illuminate\\Foundation\\Console\\ChannelMakeCommand;\nuse Illuminate\\Foundation\\Console\\ConfigCacheCommand;\nuse Illuminate\\Foundation\\Console\\ConfigClearCommand;\nuse Illuminate\\Foundation\\Console\\ConsoleMakeCommand;\nuse Illuminate\\Foundation\\Console\\EnvironmentCommand;\nuse Illuminate\\Foundation\\Console\\KeyGenerateCommand;\nuse Illuminate\\Foundation\\Console\\RequestMakeCommand;\nuse Illuminate\\Foundation\\Console\\StorageLinkCommand;\nuse Illuminate\\Routing\\Console\\ControllerMakeCommand;\nuse Illuminate\\Routing\\Console\\MiddlewareMakeCommand;\nuse Illuminate\\Foundation\\Console\\ListenerMakeCommand;\nuse Illuminate\\Foundation\\Console\\ObserverMakeCommand;\nuse Illuminate\\Foundation\\Console\\ProviderMakeCommand;\nuse Illuminate\\Foundation\\Console\\ResourceMakeCommand;\nuse Illuminate\\Foundation\\Console\\ClearCompiledCommand;\nuse Illuminate\\Foundation\\Console\\EventGenerateCommand;\nuse Illuminate\\Foundation\\Console\\ExceptionMakeCommand;\nuse Illuminate\\Foundation\\Console\\OptimizeClearCommand;\nuse Illuminate\\Foundation\\Console\\VendorPublishCommand;\nuse Illuminate\\Console\\Scheduling\\ScheduleFinishCommand;\nuse Illuminate\\Database\\Console\\Seeds\\SeederMakeCommand;\nuse Illuminate\\Foundation\\Console\\PackageDiscoverCommand;\nuse Illuminate\\Database\\Console\\Migrations\\MigrateCommand;\nuse Illuminate\\Foundation\\Console\\NotificationMakeCommand;\nuse Illuminate\\Database\\Console\\Factories\\FactoryMakeCommand;\nuse Illuminate\\Queue\\Console\\WorkCommand as QueueWorkCommand;\nuse Illuminate\\Database\\Console\\Migrations\\MigrateMakeCommand;\nuse Illuminate\\Notifications\\Console\\NotificationTableCommand;\nuse Illuminate\\Cache\\Console\\ClearCommand as CacheClearCommand;\nuse Illuminate\\Queue\\Console\\RetryCommand as QueueRetryCommand;\nuse Illuminate\\Cache\\Console\\ForgetCommand as CacheForgetCommand;\nuse Illuminate\\Queue\\Console\\ListenCommand as QueueListenCommand;\nuse Illuminate\\Queue\\Console\\RestartCommand as QueueRestartCommand;\nuse Illuminate\\Queue\\Console\\ListFailedCommand as ListFailedQueueCommand;\nuse Illuminate\\Queue\\Console\\FlushFailedCommand as FlushFailedQueueCommand;\nuse Illuminate\\Queue\\Console\\ForgetFailedCommand as ForgetFailedQueueCommand;\nuse Illuminate\\Database\\Console\\Migrations\\FreshCommand as MigrateFreshCommand;\nuse Illuminate\\Database\\Console\\Migrations\\ResetCommand as MigrateResetCommand;\nuse Illuminate\\Database\\Console\\Migrations\\StatusCommand as MigrateStatusCommand;\nuse Illuminate\\Database\\Console\\Migrations\\InstallCommand as MigrateInstallCommand;\nuse Illuminate\\Database\\Console\\Migrations\\RefreshCommand as MigrateRefreshCommand;\nuse Illuminate\\Database\\Console\\Migrations\\RollbackCommand as MigrateRollbackCommand;\n\nclass ArtisanServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * The commands to be registered.\n     *\n     * @var array\n     */\n    protected $commands = [\n        'CacheClear' => 'command.cache.clear',\n        'CacheForget' => 'command.cache.forget',\n        'ClearCompiled' => 'command.clear-compiled',\n        'ClearResets' => 'command.auth.resets.clear',\n        'ConfigCache' => 'command.config.cache',\n        'ConfigClear' => 'command.config.clear',\n        'Down' => 'command.down',\n        'Environment' => 'command.environment',\n        'EventCache' => 'command.event.cache',\n        'EventClear' => 'command.event.clear',\n        'EventList' => 'command.event.list',\n        'KeyGenerate' => 'command.key.generate',\n        'Migrate' => 'command.migrate',\n        'MigrateFresh' => 'command.migrate.fresh',\n        'MigrateInstall' => 'command.migrate.install',\n        'MigrateRefresh' => 'command.migrate.refresh',\n        'MigrateReset' => 'command.migrate.reset',\n        'MigrateRollback' => 'command.migrate.rollback',\n        'MigrateStatus' => 'command.migrate.status',\n        'Optimize' => 'command.optimize',\n        'OptimizeClear' => 'command.optimize.clear',\n        'PackageDiscover' => 'command.package.discover',\n        'Preset' => 'command.preset',\n        'QueueFailed' => 'command.queue.failed',\n        'QueueFlush' => 'command.queue.flush',\n        'QueueForget' => 'command.queue.forget',\n        'QueueListen' => 'command.queue.listen',\n        'QueueRestart' => 'command.queue.restart',\n        'QueueRetry' => 'command.queue.retry',\n        'QueueWork' => 'command.queue.work',\n        'RouteCache' => 'command.route.cache',\n        'RouteClear' => 'command.route.clear',\n        'RouteList' => 'command.route.list',\n        'Seed' => 'command.seed',\n        'ScheduleFinish' => ScheduleFinishCommand::class,\n        'ScheduleRun' => ScheduleRunCommand::class,\n        'StorageLink' => 'command.storage.link',\n        'Up' => 'command.up',\n        'ViewCache' => 'command.view.cache',\n        'ViewClear' => 'command.view.clear',\n    ];\n\n    /**\n     * The commands to be registered.\n     *\n     * @var array\n     */\n    protected $devCommands = [\n        'AppName' => 'command.app.name',\n        'AuthMake' => 'command.auth.make',\n        'CacheTable' => 'command.cache.table',\n        'ChannelMake' => 'command.channel.make',\n        'ConsoleMake' => 'command.console.make',\n        'ControllerMake' => 'command.controller.make',\n        'EventGenerate' => 'command.event.generate',\n        'EventMake' => 'command.event.make',\n        'ExceptionMake' => 'command.exception.make',\n        'FactoryMake' => 'command.factory.make',\n        'JobMake' => 'command.job.make',\n        'ListenerMake' => 'command.listener.make',\n        'MailMake' => 'command.mail.make',\n        'MiddlewareMake' => 'command.middleware.make',\n        'MigrateMake' => 'command.migrate.make',\n        'ModelMake' => 'command.model.make',\n        'NotificationMake' => 'command.notification.make',\n        'NotificationTable' => 'command.notification.table',\n        'ObserverMake' => 'command.observer.make',\n        'PolicyMake' => 'command.policy.make',\n        'ProviderMake' => 'command.provider.make',\n        'QueueFailedTable' => 'command.queue.failed-table',\n        'QueueTable' => 'command.queue.table',\n        'RequestMake' => 'command.request.make',\n        'ResourceMake' => 'command.resource.make',\n        'RuleMake' => 'command.rule.make',\n        'SeederMake' => 'command.seeder.make',\n        'SessionTable' => 'command.session.table',\n        'Serve' => 'command.serve',\n        'TestMake' => 'command.test.make',\n        'VendorPublish' => 'command.vendor.publish',\n    ];\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerCommands(array_merge(\n            $this->commands, $this->devCommands\n        ));\n    }\n\n    /**\n     * Register the given commands.\n     *\n     * @param  array  $commands\n     * @return void\n     */\n    protected function registerCommands(array $commands)\n    {\n        foreach (array_keys($commands) as $command) {\n            call_user_func_array([$this, \"register{$command}Command\"], []);\n        }\n\n        $this->commands(array_values($commands));\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerAppNameCommand()\n    {\n        $this->app->singleton('command.app.name', function ($app) {\n            return new AppNameCommand($app['composer'], $app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerAuthMakeCommand()\n    {\n        $this->app->singleton('command.auth.make', function () {\n            return new AuthMakeCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerCacheClearCommand()\n    {\n        $this->app->singleton('command.cache.clear', function ($app) {\n            return new CacheClearCommand($app['cache'], $app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerCacheForgetCommand()\n    {\n        $this->app->singleton('command.cache.forget', function ($app) {\n            return new CacheForgetCommand($app['cache']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerCacheTableCommand()\n    {\n        $this->app->singleton('command.cache.table', function ($app) {\n            return new CacheTableCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerChannelMakeCommand()\n    {\n        $this->app->singleton('command.channel.make', function ($app) {\n            return new ChannelMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerClearCompiledCommand()\n    {\n        $this->app->singleton('command.clear-compiled', function () {\n            return new ClearCompiledCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerClearResetsCommand()\n    {\n        $this->app->singleton('command.auth.resets.clear', function () {\n            return new ClearResetsCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerConfigCacheCommand()\n    {\n        $this->app->singleton('command.config.cache', function ($app) {\n            return new ConfigCacheCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerConfigClearCommand()\n    {\n        $this->app->singleton('command.config.clear', function ($app) {\n            return new ConfigClearCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerConsoleMakeCommand()\n    {\n        $this->app->singleton('command.console.make', function ($app) {\n            return new ConsoleMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerControllerMakeCommand()\n    {\n        $this->app->singleton('command.controller.make', function ($app) {\n            return new ControllerMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEventGenerateCommand()\n    {\n        $this->app->singleton('command.event.generate', function () {\n            return new EventGenerateCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEventMakeCommand()\n    {\n        $this->app->singleton('command.event.make', function ($app) {\n            return new EventMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerExceptionMakeCommand()\n    {\n        $this->app->singleton('command.exception.make', function ($app) {\n            return new ExceptionMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerFactoryMakeCommand()\n    {\n        $this->app->singleton('command.factory.make', function ($app) {\n            return new FactoryMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerDownCommand()\n    {\n        $this->app->singleton('command.down', function () {\n            return new DownCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEnvironmentCommand()\n    {\n        $this->app->singleton('command.environment', function () {\n            return new EnvironmentCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEventCacheCommand()\n    {\n        $this->app->singleton('command.event.cache', function () {\n            return new EventCacheCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEventClearCommand()\n    {\n        $this->app->singleton('command.event.clear', function ($app) {\n            return new EventClearCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerEventListCommand()\n    {\n        $this->app->singleton('command.event.list', function () {\n            return new EventListCommand();\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerJobMakeCommand()\n    {\n        $this->app->singleton('command.job.make', function ($app) {\n            return new JobMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerKeyGenerateCommand()\n    {\n        $this->app->singleton('command.key.generate', function () {\n            return new KeyGenerateCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerListenerMakeCommand()\n    {\n        $this->app->singleton('command.listener.make', function ($app) {\n            return new ListenerMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMailMakeCommand()\n    {\n        $this->app->singleton('command.mail.make', function ($app) {\n            return new MailMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMiddlewareMakeCommand()\n    {\n        $this->app->singleton('command.middleware.make', function ($app) {\n            return new MiddlewareMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateCommand()\n    {\n        $this->app->singleton('command.migrate', function ($app) {\n            return new MigrateCommand($app['migrator']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateFreshCommand()\n    {\n        $this->app->singleton('command.migrate.fresh', function () {\n            return new MigrateFreshCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateInstallCommand()\n    {\n        $this->app->singleton('command.migrate.install', function ($app) {\n            return new MigrateInstallCommand($app['migration.repository']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateMakeCommand()\n    {\n        $this->app->singleton('command.migrate.make', function ($app) {\n            // Once we have the migration creator registered, we will create the command\n            // and inject the creator. The creator is responsible for the actual file\n            // creation of the migrations, and may be extended by these developers.\n            $creator = $app['migration.creator'];\n\n            $composer = $app['composer'];\n\n            return new MigrateMakeCommand($creator, $composer);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateRefreshCommand()\n    {\n        $this->app->singleton('command.migrate.refresh', function () {\n            return new MigrateRefreshCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateResetCommand()\n    {\n        $this->app->singleton('command.migrate.reset', function ($app) {\n            return new MigrateResetCommand($app['migrator']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateRollbackCommand()\n    {\n        $this->app->singleton('command.migrate.rollback', function ($app) {\n            return new MigrateRollbackCommand($app['migrator']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerMigrateStatusCommand()\n    {\n        $this->app->singleton('command.migrate.status', function ($app) {\n            return new MigrateStatusCommand($app['migrator']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerModelMakeCommand()\n    {\n        $this->app->singleton('command.model.make', function ($app) {\n            return new ModelMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerNotificationMakeCommand()\n    {\n        $this->app->singleton('command.notification.make', function ($app) {\n            return new NotificationMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerNotificationTableCommand()\n    {\n        $this->app->singleton('command.notification.table', function ($app) {\n            return new NotificationTableCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerOptimizeCommand()\n    {\n        $this->app->singleton('command.optimize', function () {\n            return new OptimizeCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerObserverMakeCommand()\n    {\n        $this->app->singleton('command.observer.make', function ($app) {\n            return new ObserverMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerOptimizeClearCommand()\n    {\n        $this->app->singleton('command.optimize.clear', function () {\n            return new OptimizeClearCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerPackageDiscoverCommand()\n    {\n        $this->app->singleton('command.package.discover', function () {\n            return new PackageDiscoverCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerPolicyMakeCommand()\n    {\n        $this->app->singleton('command.policy.make', function ($app) {\n            return new PolicyMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerPresetCommand()\n    {\n        $this->app->singleton('command.preset', function () {\n            return new PresetCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerProviderMakeCommand()\n    {\n        $this->app->singleton('command.provider.make', function ($app) {\n            return new ProviderMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueFailedCommand()\n    {\n        $this->app->singleton('command.queue.failed', function () {\n            return new ListFailedQueueCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueForgetCommand()\n    {\n        $this->app->singleton('command.queue.forget', function () {\n            return new ForgetFailedQueueCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueFlushCommand()\n    {\n        $this->app->singleton('command.queue.flush', function () {\n            return new FlushFailedQueueCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueListenCommand()\n    {\n        $this->app->singleton('command.queue.listen', function ($app) {\n            return new QueueListenCommand($app['queue.listener']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueRestartCommand()\n    {\n        $this->app->singleton('command.queue.restart', function () {\n            return new QueueRestartCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueRetryCommand()\n    {\n        $this->app->singleton('command.queue.retry', function () {\n            return new QueueRetryCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueWorkCommand()\n    {\n        $this->app->singleton('command.queue.work', function ($app) {\n            return new QueueWorkCommand($app['queue.worker']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueFailedTableCommand()\n    {\n        $this->app->singleton('command.queue.failed-table', function ($app) {\n            return new FailedTableCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerQueueTableCommand()\n    {\n        $this->app->singleton('command.queue.table', function ($app) {\n            return new TableCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerRequestMakeCommand()\n    {\n        $this->app->singleton('command.request.make', function ($app) {\n            return new RequestMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerResourceMakeCommand()\n    {\n        $this->app->singleton('command.resource.make', function ($app) {\n            return new ResourceMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerRuleMakeCommand()\n    {\n        $this->app->singleton('command.rule.make', function ($app) {\n            return new RuleMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerSeederMakeCommand()\n    {\n        $this->app->singleton('command.seeder.make', function ($app) {\n            return new SeederMakeCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerSessionTableCommand()\n    {\n        $this->app->singleton('command.session.table', function ($app) {\n            return new SessionTableCommand($app['files'], $app['composer']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerStorageLinkCommand()\n    {\n        $this->app->singleton('command.storage.link', function () {\n            return new StorageLinkCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerRouteCacheCommand()\n    {\n        $this->app->singleton('command.route.cache', function ($app) {\n            return new RouteCacheCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerRouteClearCommand()\n    {\n        $this->app->singleton('command.route.clear', function ($app) {\n            return new RouteClearCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerRouteListCommand()\n    {\n        $this->app->singleton('command.route.list', function ($app) {\n            return new RouteListCommand($app['router']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerSeedCommand()\n    {\n        $this->app->singleton('command.seed', function ($app) {\n            return new SeedCommand($app['db']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerScheduleFinishCommand()\n    {\n        $this->app->singleton(ScheduleFinishCommand::class);\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerScheduleRunCommand()\n    {\n        $this->app->singleton(ScheduleRunCommand::class);\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerServeCommand()\n    {\n        $this->app->singleton('command.serve', function () {\n            return new ServeCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerTestMakeCommand()\n    {\n        $this->app->singleton('command.test.make', function ($app) {\n            return new TestMakeCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerUpCommand()\n    {\n        $this->app->singleton('command.up', function () {\n            return new UpCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerVendorPublishCommand()\n    {\n        $this->app->singleton('command.vendor.publish', function ($app) {\n            return new VendorPublishCommand($app['files']);\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerViewCacheCommand()\n    {\n        $this->app->singleton('command.view.cache', function () {\n            return new ViewCacheCommand;\n        });\n    }\n\n    /**\n     * Register the command.\n     *\n     * @return void\n     */\n    protected function registerViewClearCommand()\n    {\n        $this->app->singleton('command.view.clear', function ($app) {\n            return new ViewClearCommand($app['files']);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return array_merge(array_values($this->commands), array_values($this->devCommands));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Providers/ComposerServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Providers;\n\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass ComposerServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('composer', function ($app) {\n            return new Composer($app['files'], $app->basePath());\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['composer'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Providers/ConsoleSupportServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Providers;\n\nuse Illuminate\\Support\\AggregateServiceProvider;\nuse Illuminate\\Database\\MigrationServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass ConsoleSupportServiceProvider extends AggregateServiceProvider implements DeferrableProvider\n{\n    /**\n     * The provider class names.\n     *\n     * @var array\n     */\n    protected $providers = [\n        ArtisanServiceProvider::class,\n        MigrationServiceProvider::class,\n        ComposerServiceProvider::class,\n    ];\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Providers/FormRequestServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Providers;\n\nuse Illuminate\\Routing\\Redirector;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Foundation\\Http\\FormRequest;\nuse Illuminate\\Contracts\\Validation\\ValidatesWhenResolved;\n\nclass FormRequestServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n\n    /**\n     * Bootstrap the application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $this->app->afterResolving(ValidatesWhenResolved::class, function ($resolved) {\n            $resolved->validateResolved();\n        });\n\n        $this->app->resolving(FormRequest::class, function ($request, $app) {\n            $request = FormRequest::createFrom($app['request'], $request);\n\n            $request->setContainer($app)->setRedirector($app->make(Redirector::class));\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Providers;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Facades\\URL;\nuse Illuminate\\Support\\AggregateServiceProvider;\n\nclass FoundationServiceProvider extends AggregateServiceProvider\n{\n    /**\n     * The provider class names.\n     *\n     * @var array\n     */\n    protected $providers = [\n        FormRequestServiceProvider::class,\n    ];\n\n    /**\n     * Boot the service provider.\n     */\n    public function boot()\n    {\n        if ($this->app->runningInConsole()) {\n            $this->publishes([\n                __DIR__.'/../Exceptions/views' => $this->app->resourcePath('views/errors/'),\n            ], 'laravel-errors');\n        }\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        parent::register();\n\n        $this->registerRequestValidation();\n        $this->registerRequestSignatureValidation();\n    }\n\n    /**\n     * Register the \"validate\" macro on the request.\n     *\n     * @return void\n     */\n    public function registerRequestValidation()\n    {\n        Request::macro('validate', function (array $rules, ...$params) {\n            return validator()->validate($this->all(), $rules, ...$params);\n        });\n    }\n\n    /**\n     * Register the \"hasValidSignature\" macro on the request.\n     *\n     * @return void\n     */\n    public function registerRequestSignatureValidation()\n    {\n        Request::macro('hasValidSignature', function ($absolute = true) {\n            return URL::hasValidSignature($this, $absolute);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/AuthServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Support\\Providers;\n\nuse Illuminate\\Support\\Facades\\Gate;\nuse Illuminate\\Support\\ServiceProvider;\n\nclass AuthServiceProvider extends ServiceProvider\n{\n    /**\n     * The policy mappings for the application.\n     *\n     * @var array\n     */\n    protected $policies = [];\n\n    /**\n     * Register the application's policies.\n     *\n     * @return void\n     */\n    public function registerPolicies()\n    {\n        foreach ($this->policies as $key => $value) {\n            Gate::policy($key, $value);\n        }\n    }\n\n    /**\n     * Get the policies defined on the provider.\n     *\n     * @return array\n     */\n    public function policies()\n    {\n        return $this->policies;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/EventServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Support\\Providers;\n\nuse Illuminate\\Support\\Facades\\Event;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Foundation\\Events\\DiscoverEvents;\n\nclass EventServiceProvider extends ServiceProvider\n{\n    /**\n     * The event handler mappings for the application.\n     *\n     * @var array\n     */\n    protected $listen = [];\n\n    /**\n     * The subscriber classes to register.\n     *\n     * @var array\n     */\n    protected $subscribe = [];\n\n    /**\n     * Register the application's event listeners.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $events = $this->getEvents();\n\n        foreach ($events as $event => $listeners) {\n            foreach (array_unique($listeners) as $listener) {\n                Event::listen($event, $listener);\n            }\n        }\n\n        foreach ($this->subscribe as $subscriber) {\n            Event::subscribe($subscriber);\n        }\n    }\n\n    /**\n     * Get the events and handlers.\n     *\n     * @return array\n     */\n    public function listens()\n    {\n        return $this->listen;\n    }\n\n    /**\n     * Get the discovered events and listeners for the application.\n     *\n     * @return array\n     */\n    public function getEvents()\n    {\n        if ($this->app->eventsAreCached()) {\n            $cache = require $this->app->getCachedEventsPath();\n\n            return $cache[get_class($this)] ?? [];\n        } else {\n            return array_merge_recursive(\n                $this->discoveredEvents(),\n                $this->listens()\n            );\n        }\n    }\n\n    /**\n     * Get the discovered events for the application.\n     *\n     * @return array\n     */\n    protected function discoveredEvents()\n    {\n        return $this->shouldDiscoverEvents()\n                    ? $this->discoverEvents()\n                    : [];\n    }\n\n    /**\n     * Determine if events and listeners should be automatically discovered.\n     *\n     * @return bool\n     */\n    public function shouldDiscoverEvents()\n    {\n        return false;\n    }\n\n    /**\n     * Discover the events and listeners for the application.\n     *\n     * @return array\n     */\n    public function discoverEvents()\n    {\n        return collect($this->discoverEventsWithin())\n                    ->reject(function ($directory) {\n                        return ! is_dir($directory);\n                    })\n                    ->reduce(function ($discovered, $directory) {\n                        return array_merge_recursive(\n                            $discovered,\n                            DiscoverEvents::within($directory, base_path())\n                        );\n                    }, []);\n    }\n\n    /**\n     * Get the listener directories that should be used to discover events.\n     *\n     * @return array\n     */\n    protected function discoverEventsWithin()\n    {\n        return [\n            $this->app->path('Listeners'),\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Support\\Providers;\n\nuse Illuminate\\Routing\\Router;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Contracts\\Routing\\UrlGenerator;\n\n/**\n * @mixin \\Illuminate\\Routing\\Router\n */\nclass RouteServiceProvider extends ServiceProvider\n{\n    use ForwardsCalls;\n\n    /**\n     * The controller namespace for the application.\n     *\n     * @var string|null\n     */\n    protected $namespace;\n\n    /**\n     * Bootstrap any application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $this->setRootControllerNamespace();\n\n        if ($this->routesAreCached()) {\n            $this->loadCachedRoutes();\n        } else {\n            $this->loadRoutes();\n\n            $this->app->booted(function () {\n                $this->app['router']->getRoutes()->refreshNameLookups();\n                $this->app['router']->getRoutes()->refreshActionLookups();\n            });\n        }\n    }\n\n    /**\n     * Set the root controller namespace for the application.\n     *\n     * @return void\n     */\n    protected function setRootControllerNamespace()\n    {\n        if (! is_null($this->namespace)) {\n            $this->app[UrlGenerator::class]->setRootControllerNamespace($this->namespace);\n        }\n    }\n\n    /**\n     * Determine if the application routes are cached.\n     *\n     * @return bool\n     */\n    protected function routesAreCached()\n    {\n        return $this->app->routesAreCached();\n    }\n\n    /**\n     * Load the cached routes for the application.\n     *\n     * @return void\n     */\n    protected function loadCachedRoutes()\n    {\n        $this->app->booted(function () {\n            require $this->app->getCachedRoutesPath();\n        });\n    }\n\n    /**\n     * Load the application routes.\n     *\n     * @return void\n     */\n    protected function loadRoutes()\n    {\n        if (method_exists($this, 'map')) {\n            $this->app->call([$this, 'map']);\n        }\n    }\n\n    /**\n     * Pass dynamic methods onto the router instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->forwardCallTo(\n            $this->app->make(Router::class), $method, $parameters\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Assert.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse ArrayAccess;\nuse PHPUnit\\Util\\InvalidArgumentHelper;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\nuse PHPUnit\\Framework\\Constraint\\ArraySubset;\n\n/**\n * @internal This class is not meant to be used or overwritten outside the framework itself.\n */\nabstract class Assert extends PHPUnit\n{\n    /**\n     * Asserts that an array has a specified subset.\n     *\n     * This method was taken over from PHPUnit where it was deprecated. See link for more info.\n     *\n     * @param  array|\\ArrayAccess  $subset\n     * @param  array|\\ArrayAccess  $array\n     * @param  bool  $checkForObjectIdentity\n     * @param  string  $message\n     * @return void\n     *\n     * @link https://github.com/sebastianbergmann/phpunit/issues/3494\n     */\n    public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void\n    {\n        if (! (is_array($subset) || $subset instanceof ArrayAccess)) {\n            throw InvalidArgumentHelper::factory(1, 'array or ArrayAccess');\n        }\n\n        if (! (is_array($array) || $array instanceof ArrayAccess)) {\n            throw InvalidArgumentHelper::factory(2, 'array or ArrayAccess');\n        }\n\n        $constraint = new ArraySubset($subset, $checkForObjectIdentity);\n\n        static::assertThat($array, $constraint, $message);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithAuthentication.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable as UserContract;\n\ntrait InteractsWithAuthentication\n{\n    /**\n     * Set the currently logged in user for the application.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string|null  $driver\n     * @return $this\n     */\n    public function actingAs(UserContract $user, $driver = null)\n    {\n        return $this->be($user, $driver);\n    }\n\n    /**\n     * Set the currently logged in user for the application.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string|null  $driver\n     * @return $this\n     */\n    public function be(UserContract $user, $driver = null)\n    {\n        if (isset($user->wasRecentlyCreated) && $user->wasRecentlyCreated) {\n            $user->wasRecentlyCreated = false;\n        }\n\n        $this->app['auth']->guard($driver)->setUser($user);\n\n        $this->app['auth']->shouldUse($driver);\n\n        return $this;\n    }\n\n    /**\n     * Assert that the user is authenticated.\n     *\n     * @param  string|null  $guard\n     * @return $this\n     */\n    public function assertAuthenticated($guard = null)\n    {\n        $this->assertTrue($this->isAuthenticated($guard), 'The user is not authenticated');\n\n        return $this;\n    }\n\n    /**\n     * Assert that the user is not authenticated.\n     *\n     * @param  string|null  $guard\n     * @return $this\n     */\n    public function assertGuest($guard = null)\n    {\n        $this->assertFalse($this->isAuthenticated($guard), 'The user is authenticated');\n\n        return $this;\n    }\n\n    /**\n     * Return true if the user is authenticated, false otherwise.\n     *\n     * @param  string|null  $guard\n     * @return bool\n     */\n    protected function isAuthenticated($guard = null)\n    {\n        return $this->app->make('auth')->guard($guard)->check();\n    }\n\n    /**\n     * Assert that the user is authenticated as the given user.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Authenticatable  $user\n     * @param  string|null  $guard\n     * @return $this\n     */\n    public function assertAuthenticatedAs($user, $guard = null)\n    {\n        $expected = $this->app->make('auth')->guard($guard)->user();\n\n        $this->assertNotNull($expected, 'The current user is not authenticated.');\n\n        $this->assertInstanceOf(\n            get_class($expected), $user,\n            'The currently authenticated user is not who was expected'\n        );\n\n        $this->assertSame(\n            $expected->getAuthIdentifier(), $user->getAuthIdentifier(),\n            'The currently authenticated user is not who was expected'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given credentials are valid.\n     *\n     * @param  array  $credentials\n     * @param  string|null  $guard\n     * @return $this\n     */\n    public function assertCredentials(array $credentials, $guard = null)\n    {\n        $this->assertTrue(\n            $this->hasCredentials($credentials, $guard), 'The given credentials are invalid.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given credentials are invalid.\n     *\n     * @param  array  $credentials\n     * @param  string|null  $guard\n     * @return $this\n     */\n    public function assertInvalidCredentials(array $credentials, $guard = null)\n    {\n        $this->assertFalse(\n            $this->hasCredentials($credentials, $guard), 'The given credentials are valid.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Return true if the credentials are valid, false otherwise.\n     *\n     * @param  array  $credentials\n     * @param  string|null  $guard\n     * @return bool\n     */\n    protected function hasCredentials(array $credentials, $guard = null)\n    {\n        $provider = $this->app->make('auth')->guard($guard)->getProvider();\n\n        $user = $provider->retrieveByCredentials($credentials);\n\n        return $user && $provider->validateCredentials($user, $credentials);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Console\\OutputStyle;\nuse Illuminate\\Contracts\\Console\\Kernel;\nuse Illuminate\\Foundation\\Testing\\PendingCommand;\n\ntrait InteractsWithConsole\n{\n    /**\n     * Indicates if the console output should be mocked.\n     *\n     * @var bool\n     */\n    public $mockConsoleOutput = true;\n\n    /**\n     * All of the expected output lines.\n     *\n     * @var array\n     */\n    public $expectedOutput = [];\n\n    /**\n     * All of the expected questions.\n     *\n     * @var array\n     */\n    public $expectedQuestions = [];\n\n    /**\n     * Call artisan command and return code.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return \\Illuminate\\Foundation\\Testing\\PendingCommand|int\n     */\n    public function artisan($command, $parameters = [])\n    {\n        if (! $this->mockConsoleOutput) {\n            return $this->app[Kernel::class]->call($command, $parameters);\n        }\n\n        $this->beforeApplicationDestroyed(function () {\n            if (count($this->expectedQuestions)) {\n                $this->fail('Question \"'.Arr::first($this->expectedQuestions)[0].'\" was not asked.');\n            }\n\n            if (count($this->expectedOutput)) {\n                $this->fail('Output \"'.Arr::first($this->expectedOutput).'\" was not printed.');\n            }\n        });\n\n        return new PendingCommand($this, $this->app, $command, $parameters);\n    }\n\n    /**\n     * Disable mocking the console output.\n     *\n     * @return $this\n     */\n    protected function withoutMockingConsoleOutput()\n    {\n        $this->mockConsoleOutput = false;\n\n        $this->app->offsetUnset(OutputStyle::class);\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithContainer.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Closure;\nuse Mockery;\n\ntrait InteractsWithContainer\n{\n    /**\n     * Register an instance of an object in the container.\n     *\n     * @param  string  $abstract\n     * @param  object  $instance\n     * @return object\n     */\n    protected function swap($abstract, $instance)\n    {\n        return $this->instance($abstract, $instance);\n    }\n\n    /**\n     * Register an instance of an object in the container.\n     *\n     * @param  string  $abstract\n     * @param  object  $instance\n     * @return object\n     */\n    protected function instance($abstract, $instance)\n    {\n        $this->app->instance($abstract, $instance);\n\n        return $instance;\n    }\n\n    /**\n     * Mock an instance of an object in the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|null  $mock\n     * @return object\n     */\n    protected function mock($abstract, Closure $mock = null)\n    {\n        return $this->instance($abstract, Mockery::mock(...array_filter(func_get_args())));\n    }\n\n    /**\n     * Spy an instance of an object in the container.\n     *\n     * @param  string  $abstract\n     * @param  \\Closure|null  $mock\n     * @return object\n     */\n    protected function spy($abstract, Closure $mock = null)\n    {\n        return $this->instance($abstract, Mockery::spy(...array_filter(func_get_args())));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Foundation\\Testing\\Constraints\\HasInDatabase;\nuse PHPUnit\\Framework\\Constraint\\LogicalNot as ReverseConstraint;\nuse Illuminate\\Foundation\\Testing\\Constraints\\SoftDeletedInDatabase;\n\ntrait InteractsWithDatabase\n{\n    /**\n     * Assert that a given where condition exists in the database.\n     *\n     * @param  string  $table\n     * @param  array  $data\n     * @param  string|null  $connection\n     * @return $this\n     */\n    protected function assertDatabaseHas($table, array $data, $connection = null)\n    {\n        $this->assertThat(\n            $table, new HasInDatabase($this->getConnection($connection), $data)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that a given where condition does not exist in the database.\n     *\n     * @param  string  $table\n     * @param  array  $data\n     * @param  string|null  $connection\n     * @return $this\n     */\n    protected function assertDatabaseMissing($table, array $data, $connection = null)\n    {\n        $constraint = new ReverseConstraint(\n            new HasInDatabase($this->getConnection($connection), $data)\n        );\n\n        $this->assertThat($table, $constraint);\n\n        return $this;\n    }\n\n    /**\n     * Assert the given record has been deleted.\n     *\n     * @param  string|\\Illuminate\\Database\\Eloquent\\Model  $table\n     * @param  array  $data\n     * @param  string|null  $connection\n     * @return $this\n     */\n    protected function assertSoftDeleted($table, array $data = [], $connection = null)\n    {\n        if ($table instanceof Model) {\n            return $this->assertSoftDeleted($table->getTable(), [$table->getKeyName() => $table->getKey()], $table->getConnectionName());\n        }\n\n        $this->assertThat(\n            $table, new SoftDeletedInDatabase($this->getConnection($connection), $data)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the database connection.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function getConnection($connection = null)\n    {\n        $database = $this->app->make('db');\n\n        $connection = $connection ?: $database->getDefaultConnection();\n\n        return $database->connection($connection);\n    }\n\n    /**\n     * Seed a given database connection.\n     *\n     * @param  array|string  $class\n     * @return $this\n     */\n    public function seed($class = 'DatabaseSeeder')\n    {\n        foreach (Arr::wrap($class) as $class) {\n            $this->artisan('db:seed', ['--class' => $class, '--no-interaction' => true]);\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Exception;\nuse Illuminate\\Validation\\ValidationException;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Symfony\\Component\\Console\\Application as ConsoleApplication;\nuse Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException;\n\ntrait InteractsWithExceptionHandling\n{\n    /**\n     * The original exception handler.\n     *\n     * @var \\Illuminate\\Contracts\\Debug\\ExceptionHandler|null\n     */\n    protected $originalExceptionHandler;\n\n    /**\n     * Restore exception handling.\n     *\n     * @return $this\n     */\n    protected function withExceptionHandling()\n    {\n        if ($this->originalExceptionHandler) {\n            $this->app->instance(ExceptionHandler::class, $this->originalExceptionHandler);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Only handle the given exceptions via the exception handler.\n     *\n     * @param  array  $exceptions\n     * @return $this\n     */\n    protected function handleExceptions(array $exceptions)\n    {\n        return $this->withoutExceptionHandling($exceptions);\n    }\n\n    /**\n     * Only handle validation exceptions via the exception handler.\n     *\n     * @return $this\n     */\n    protected function handleValidationExceptions()\n    {\n        return $this->handleExceptions([ValidationException::class]);\n    }\n\n    /**\n     * Disable exception handling for the test.\n     *\n     * @param  array  $except\n     * @return $this\n     */\n    protected function withoutExceptionHandling(array $except = [])\n    {\n        if ($this->originalExceptionHandler == null) {\n            $this->originalExceptionHandler = app(ExceptionHandler::class);\n        }\n\n        $this->app->instance(ExceptionHandler::class, new class($this->originalExceptionHandler, $except) implements ExceptionHandler {\n            protected $except;\n            protected $originalHandler;\n\n            /**\n             * Create a new class instance.\n             *\n             * @param  \\Illuminate\\Contracts\\Debug\\ExceptionHandler  $originalHandler\n             * @param  array  $except\n             * @return void\n             */\n            public function __construct($originalHandler, $except = [])\n            {\n                $this->except = $except;\n                $this->originalHandler = $originalHandler;\n            }\n\n            /**\n             * Report the given exception.\n             *\n             * @param  \\Exception  $e\n             * @return void\n             */\n            public function report(Exception $e)\n            {\n                //\n            }\n\n            /**\n             * Determine if the exception should be reported.\n             *\n             * @param  \\Exception  $e\n             * @return bool\n             */\n            public function shouldReport(Exception $e)\n            {\n                return false;\n            }\n\n            /**\n             * Render the given exception.\n             *\n             * @param  \\Illuminate\\Http\\Request  $request\n             * @param  \\Exception  $e\n             * @return mixed\n             *\n             * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException|\\Exception\n             */\n            public function render($request, Exception $e)\n            {\n                if ($e instanceof NotFoundHttpException) {\n                    throw new NotFoundHttpException(\n                        \"{$request->method()} {$request->url()}\", null, $e->getCode()\n                    );\n                }\n\n                foreach ($this->except as $class) {\n                    if ($e instanceof $class) {\n                        return $this->originalHandler->render($request, $e);\n                    }\n                }\n\n                throw $e;\n            }\n\n            /**\n             * Render the exception for the console.\n             *\n             * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface  $output\n             * @param  \\Exception  $e\n             * @return void\n             */\n            public function renderForConsole($output, Exception $e)\n            {\n                (new ConsoleApplication)->renderException($e, $output);\n            }\n        });\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithRedis.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Exception;\nuse Illuminate\\Redis\\RedisManager;\nuse Illuminate\\Foundation\\Application;\n\ntrait InteractsWithRedis\n{\n    /**\n     * Indicate connection failed if redis is not available.\n     *\n     * @var bool\n     */\n    private static $connectionFailedOnceWithDefaultsSkip = false;\n\n    /**\n     * Redis manager instance.\n     *\n     * @var \\Illuminate\\Redis\\RedisManager[]\n     */\n    private $redis;\n\n    /**\n     * Setup redis connection.\n     *\n     * @return void\n     */\n    public function setUpRedis()\n    {\n        $app = $this->app ?? new Application;\n        $host = getenv('REDIS_HOST') ?: '127.0.0.1';\n        $port = getenv('REDIS_PORT') ?: 6379;\n\n        if (static::$connectionFailedOnceWithDefaultsSkip) {\n            $this->markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__);\n\n            return;\n        }\n\n        foreach ($this->redisDriverProvider() as $driver) {\n            $this->redis[$driver[0]] = new RedisManager($app, $driver[0], [\n                'cluster' => false,\n                'default' => [\n                    'host' => $host,\n                    'port' => $port,\n                    'database' => 5,\n                    'timeout' => 0.5,\n                ],\n            ]);\n        }\n\n        try {\n            $this->redis['predis']->connection()->flushdb();\n        } catch (Exception $e) {\n            if ($host === '127.0.0.1' && $port === 6379 && getenv('REDIS_HOST') === false) {\n                static::$connectionFailedOnceWithDefaultsSkip = true;\n                $this->markTestSkipped('Trying default host/port failed, please set environment variable REDIS_HOST & REDIS_PORT to enable '.__CLASS__);\n            }\n        }\n    }\n\n    /**\n     * Teardown redis connection.\n     *\n     * @return void\n     */\n    public function tearDownRedis()\n    {\n        $this->redis['predis']->connection()->flushdb();\n\n        foreach ($this->redisDriverProvider() as $driver) {\n            $this->redis[$driver[0]]->connection()->disconnect();\n        }\n    }\n\n    /**\n     * Get redis driver provider.\n     *\n     * @return array\n     */\n    public function redisDriverProvider()\n    {\n        $providers = [\n            ['predis'],\n        ];\n\n        if (extension_loaded('redis')) {\n            $providers[] = ['phpredis'];\n        }\n\n        return $providers;\n    }\n\n    /**\n     * Run test if redis is available.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function ifRedisAvailable($callback)\n    {\n        $this->setUpRedis();\n\n        $callback();\n\n        $this->tearDownRedis();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithSession.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\ntrait InteractsWithSession\n{\n    /**\n     * Set the session to the given array.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function withSession(array $data)\n    {\n        $this->session($data);\n\n        return $this;\n    }\n\n    /**\n     * Set the session to the given array.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function session(array $data)\n    {\n        $this->startSession();\n\n        foreach ($data as $key => $value) {\n            $this->app['session']->put($key, $value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Start the session for the application.\n     *\n     * @return $this\n     */\n    protected function startSession()\n    {\n        if (! $this->app['session']->isStarted()) {\n            $this->app['session']->start();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Flush all of the current session data.\n     *\n     * @return $this\n     */\n    public function flushSession()\n    {\n        $this->startSession();\n\n        $this->app['session']->flush();\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Foundation\\Testing\\TestResponse;\nuse Illuminate\\Contracts\\Http\\Kernel as HttpKernel;\nuse Symfony\\Component\\HttpFoundation\\Request as SymfonyRequest;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile as SymfonyUploadedFile;\n\ntrait MakesHttpRequests\n{\n    /**\n     * Additional headers for the request.\n     *\n     * @var array\n     */\n    protected $defaultHeaders = [];\n\n    /**\n     * Additional server variables for the request.\n     *\n     * @var array\n     */\n    protected $serverVariables = [];\n\n    /**\n     * Indicates whether redirects should be followed.\n     *\n     * @var bool\n     */\n    protected $followRedirects = false;\n\n    /**\n     * Define additional headers to be sent with the request.\n     *\n     * @param  array $headers\n     * @return $this\n     */\n    public function withHeaders(array $headers)\n    {\n        $this->defaultHeaders = array_merge($this->defaultHeaders, $headers);\n\n        return $this;\n    }\n\n    /**\n     * Add a header to be sent with the request.\n     *\n     * @param  string $name\n     * @param  string $value\n     * @return $this\n     */\n    public function withHeader(string $name, string $value)\n    {\n        $this->defaultHeaders[$name] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Flush all the configured headers.\n     *\n     * @return $this\n     */\n    public function flushHeaders()\n    {\n        $this->defaultHeaders = [];\n\n        return $this;\n    }\n\n    /**\n     * Define a set of server variables to be sent with the requests.\n     *\n     * @param  array  $server\n     * @return $this\n     */\n    public function withServerVariables(array $server)\n    {\n        $this->serverVariables = $server;\n\n        return $this;\n    }\n\n    /**\n     * Disable middleware for the test.\n     *\n     * @param  string|array|null  $middleware\n     * @return $this\n     */\n    public function withoutMiddleware($middleware = null)\n    {\n        if (is_null($middleware)) {\n            $this->app->instance('middleware.disable', true);\n\n            return $this;\n        }\n\n        foreach ((array) $middleware as $abstract) {\n            $this->app->instance($abstract, new class {\n                public function handle($request, $next)\n                {\n                    return $next($request);\n                }\n            });\n        }\n\n        return $this;\n    }\n\n    /**\n     * Enable the given middleware for the test.\n     *\n     * @param  string|array|null  $middleware\n     * @return $this\n     */\n    public function withMiddleware($middleware = null)\n    {\n        if (is_null($middleware)) {\n            unset($this->app['middleware.disable']);\n\n            return $this;\n        }\n\n        foreach ((array) $middleware as $abstract) {\n            unset($this->app[$abstract]);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Automatically follow any redirects returned from the response.\n     *\n     * @return $this\n     */\n    public function followingRedirects()\n    {\n        $this->followRedirects = true;\n\n        return $this;\n    }\n\n    /**\n     * Set the referer header and previous URL session value in order to simulate a previous request.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function from(string $url)\n    {\n        $this->app['session']->setPreviousUrl($url);\n\n        return $this->withHeader('referer', $url);\n    }\n\n    /**\n     * Visit the given URI with a GET request.\n     *\n     * @param  string  $uri\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function get($uri, array $headers = [])\n    {\n        $server = $this->transformHeadersToServerVars($headers);\n\n        return $this->call('GET', $uri, [], [], [], $server);\n    }\n\n    /**\n     * Visit the given URI with a GET request, expecting a JSON response.\n     *\n     * @param  string  $uri\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function getJson($uri, array $headers = [])\n    {\n        return $this->json('GET', $uri, [], $headers);\n    }\n\n    /**\n     * Visit the given URI with a POST request.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function post($uri, array $data = [], array $headers = [])\n    {\n        $server = $this->transformHeadersToServerVars($headers);\n\n        return $this->call('POST', $uri, $data, [], [], $server);\n    }\n\n    /**\n     * Visit the given URI with a POST request, expecting a JSON response.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function postJson($uri, array $data = [], array $headers = [])\n    {\n        return $this->json('POST', $uri, $data, $headers);\n    }\n\n    /**\n     * Visit the given URI with a PUT request.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function put($uri, array $data = [], array $headers = [])\n    {\n        $server = $this->transformHeadersToServerVars($headers);\n\n        return $this->call('PUT', $uri, $data, [], [], $server);\n    }\n\n    /**\n     * Visit the given URI with a PUT request, expecting a JSON response.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function putJson($uri, array $data = [], array $headers = [])\n    {\n        return $this->json('PUT', $uri, $data, $headers);\n    }\n\n    /**\n     * Visit the given URI with a PATCH request.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function patch($uri, array $data = [], array $headers = [])\n    {\n        $server = $this->transformHeadersToServerVars($headers);\n\n        return $this->call('PATCH', $uri, $data, [], [], $server);\n    }\n\n    /**\n     * Visit the given URI with a PATCH request, expecting a JSON response.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function patchJson($uri, array $data = [], array $headers = [])\n    {\n        return $this->json('PATCH', $uri, $data, $headers);\n    }\n\n    /**\n     * Visit the given URI with a DELETE request.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function delete($uri, array $data = [], array $headers = [])\n    {\n        $server = $this->transformHeadersToServerVars($headers);\n\n        return $this->call('DELETE', $uri, $data, [], [], $server);\n    }\n\n    /**\n     * Visit the given URI with a DELETE request, expecting a JSON response.\n     *\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function deleteJson($uri, array $data = [], array $headers = [])\n    {\n        return $this->json('DELETE', $uri, $data, $headers);\n    }\n\n    /**\n     * Call the given URI with a JSON request.\n     *\n     * @param  string  $method\n     * @param  string  $uri\n     * @param  array  $data\n     * @param  array  $headers\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function json($method, $uri, array $data = [], array $headers = [])\n    {\n        $files = $this->extractFilesFromDataArray($data);\n\n        $content = json_encode($data);\n\n        $headers = array_merge([\n            'CONTENT_LENGTH' => mb_strlen($content, '8bit'),\n            'CONTENT_TYPE' => 'application/json',\n            'Accept' => 'application/json',\n        ], $headers);\n\n        return $this->call(\n            $method, $uri, [], [], $files, $this->transformHeadersToServerVars($headers), $content\n        );\n    }\n\n    /**\n     * Call the given URI and return the Response.\n     *\n     * @param  string  $method\n     * @param  string  $uri\n     * @param  array  $parameters\n     * @param  array  $cookies\n     * @param  array  $files\n     * @param  array  $server\n     * @param  string|null  $content\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)\n    {\n        $kernel = $this->app->make(HttpKernel::class);\n\n        $files = array_merge($files, $this->extractFilesFromDataArray($parameters));\n\n        $symfonyRequest = SymfonyRequest::create(\n            $this->prepareUrlForRequest($uri), $method, $parameters,\n            $cookies, $files, array_replace($this->serverVariables, $server), $content\n        );\n\n        $response = $kernel->handle(\n            $request = Request::createFromBase($symfonyRequest)\n        );\n\n        if ($this->followRedirects) {\n            $response = $this->followRedirects($response);\n        }\n\n        $kernel->terminate($request, $response);\n\n        return $this->createTestResponse($response);\n    }\n\n    /**\n     * Turn the given URI into a fully qualified URL.\n     *\n     * @param  string  $uri\n     * @return string\n     */\n    protected function prepareUrlForRequest($uri)\n    {\n        if (Str::startsWith($uri, '/')) {\n            $uri = substr($uri, 1);\n        }\n\n        if (! Str::startsWith($uri, 'http')) {\n            $uri = config('app.url').'/'.$uri;\n        }\n\n        return trim($uri, '/');\n    }\n\n    /**\n     * Transform headers array to array of $_SERVER vars with HTTP_* format.\n     *\n     * @param  array  $headers\n     * @return array\n     */\n    protected function transformHeadersToServerVars(array $headers)\n    {\n        return collect(array_merge($this->defaultHeaders, $headers))->mapWithKeys(function ($value, $name) {\n            $name = strtr(strtoupper($name), '-', '_');\n\n            return [$this->formatServerHeaderKey($name) => $value];\n        })->all();\n    }\n\n    /**\n     * Format the header name for the server array.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function formatServerHeaderKey($name)\n    {\n        if (! Str::startsWith($name, 'HTTP_') && $name !== 'CONTENT_TYPE' && $name !== 'REMOTE_ADDR') {\n            return 'HTTP_'.$name;\n        }\n\n        return $name;\n    }\n\n    /**\n     * Extract the file uploads from the given data array.\n     *\n     * @param  array  $data\n     * @return array\n     */\n    protected function extractFilesFromDataArray(&$data)\n    {\n        $files = [];\n\n        foreach ($data as $key => $value) {\n            if ($value instanceof SymfonyUploadedFile) {\n                $files[$key] = $value;\n\n                unset($data[$key]);\n            }\n\n            if (is_array($value)) {\n                $files[$key] = $this->extractFilesFromDataArray($value);\n\n                $data[$key] = $value;\n            }\n        }\n\n        return $files;\n    }\n\n    /**\n     * Follow a redirect chain until a non-redirect is received.\n     *\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    protected function followRedirects($response)\n    {\n        while ($response->isRedirect()) {\n            $response = $this->get($response->headers->get('Location'));\n        }\n\n        $this->followRedirects = false;\n\n        return $response;\n    }\n\n    /**\n     * Create the test response instance from the given response.\n     *\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return \\Illuminate\\Foundation\\Testing\\TestResponse\n     */\n    protected function createTestResponse($response)\n    {\n        return TestResponse::fromBaseResponse($response);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MocksApplicationServices.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Concerns;\n\nuse Mockery;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as BusDispatcherContract;\nuse Illuminate\\Contracts\\Events\\Dispatcher as EventsDispatcherContract;\nuse Illuminate\\Contracts\\Notifications\\Dispatcher as NotificationDispatcher;\n\ntrait MocksApplicationServices\n{\n    /**\n     * All of the fired events.\n     *\n     * @var array\n     */\n    protected $firedEvents = [];\n\n    /**\n     * All of the fired model events.\n     *\n     * @var array\n     */\n    protected $firedModelEvents = [];\n\n    /**\n     * All of the dispatched jobs.\n     *\n     * @var array\n     */\n    protected $dispatchedJobs = [];\n\n    /**\n     * All of the dispatched notifications.\n     *\n     * @var array\n     */\n    protected $dispatchedNotifications = [];\n\n    /**\n     * Specify a list of events that should be fired for the given operation.\n     *\n     * These events will be mocked, so that handlers will not actually be executed.\n     *\n     * @param  array|string  $events\n     * @return $this\n     *\n     * @throws \\Exception\n     */\n    public function expectsEvents($events)\n    {\n        $events = is_array($events) ? $events : func_get_args();\n\n        $this->withoutEvents();\n\n        $this->beforeApplicationDestroyed(function () use ($events) {\n            $fired = $this->getFiredEvents($events);\n\n            $this->assertEmpty(\n                $eventsNotFired = array_diff($events, $fired),\n                'These expected events were not fired: ['.implode(', ', $eventsNotFired).']'\n            );\n        });\n\n        return $this;\n    }\n\n    /**\n     * Specify a list of events that should not be fired for the given operation.\n     *\n     * These events will be mocked, so that handlers will not actually be executed.\n     *\n     * @param  array|string  $events\n     * @return $this\n     */\n    public function doesntExpectEvents($events)\n    {\n        $events = is_array($events) ? $events : func_get_args();\n\n        $this->withoutEvents();\n\n        $this->beforeApplicationDestroyed(function () use ($events) {\n            $this->assertEmpty(\n                $fired = $this->getFiredEvents($events),\n                'These unexpected events were fired: ['.implode(', ', $fired).']'\n            );\n        });\n\n        return $this;\n    }\n\n    /**\n     * Mock the event dispatcher so all events are silenced and collected.\n     *\n     * @return $this\n     */\n    protected function withoutEvents()\n    {\n        $mock = Mockery::mock(EventsDispatcherContract::class)->shouldIgnoreMissing();\n\n        $mock->shouldReceive('dispatch')->andReturnUsing(function ($called) {\n            $this->firedEvents[] = $called;\n        });\n\n        $this->app->instance('events', $mock);\n\n        return $this;\n    }\n\n    /**\n     * Filter the given events against the fired events.\n     *\n     * @param  array  $events\n     * @return array\n     */\n    protected function getFiredEvents(array $events)\n    {\n        return $this->getDispatched($events, $this->firedEvents);\n    }\n\n    /**\n     * Specify a list of jobs that should be dispatched for the given operation.\n     *\n     * These jobs will be mocked, so that handlers will not actually be executed.\n     *\n     * @param  array|string  $jobs\n     * @return $this\n     */\n    protected function expectsJobs($jobs)\n    {\n        $jobs = is_array($jobs) ? $jobs : func_get_args();\n\n        $this->withoutJobs();\n\n        $this->beforeApplicationDestroyed(function () use ($jobs) {\n            $dispatched = $this->getDispatchedJobs($jobs);\n\n            $this->assertEmpty(\n                $jobsNotDispatched = array_diff($jobs, $dispatched),\n                'These expected jobs were not dispatched: ['.implode(', ', $jobsNotDispatched).']'\n            );\n        });\n\n        return $this;\n    }\n\n    /**\n     * Specify a list of jobs that should not be dispatched for the given operation.\n     *\n     * These jobs will be mocked, so that handlers will not actually be executed.\n     *\n     * @param  array|string  $jobs\n     * @return $this\n     */\n    protected function doesntExpectJobs($jobs)\n    {\n        $jobs = is_array($jobs) ? $jobs : func_get_args();\n\n        $this->withoutJobs();\n\n        $this->beforeApplicationDestroyed(function () use ($jobs) {\n            $this->assertEmpty(\n                $dispatched = $this->getDispatchedJobs($jobs),\n                'These unexpected jobs were dispatched: ['.implode(', ', $dispatched).']'\n            );\n        });\n\n        return $this;\n    }\n\n    /**\n     * Mock the job dispatcher so all jobs are silenced and collected.\n     *\n     * @return $this\n     */\n    protected function withoutJobs()\n    {\n        $mock = Mockery::mock(BusDispatcherContract::class)->shouldIgnoreMissing();\n\n        $mock->shouldReceive('dispatch', 'dispatchNow')->andReturnUsing(function ($dispatched) {\n            $this->dispatchedJobs[] = $dispatched;\n        });\n\n        $this->app->instance(\n            BusDispatcherContract::class, $mock\n        );\n\n        return $this;\n    }\n\n    /**\n     * Filter the given jobs against the dispatched jobs.\n     *\n     * @param  array  $jobs\n     * @return array\n     */\n    protected function getDispatchedJobs(array $jobs)\n    {\n        return $this->getDispatched($jobs, $this->dispatchedJobs);\n    }\n\n    /**\n     * Filter the given classes against an array of dispatched classes.\n     *\n     * @param  array  $classes\n     * @param  array  $dispatched\n     * @return array\n     */\n    protected function getDispatched(array $classes, array $dispatched)\n    {\n        return array_filter($classes, function ($class) use ($dispatched) {\n            return $this->wasDispatched($class, $dispatched);\n        });\n    }\n\n    /**\n     * Check if the given class exists in an array of dispatched classes.\n     *\n     * @param  string  $needle\n     * @param  array  $haystack\n     * @return bool\n     */\n    protected function wasDispatched($needle, array $haystack)\n    {\n        foreach ($haystack as $dispatched) {\n            if ((is_string($dispatched) && ($dispatched === $needle || is_subclass_of($dispatched, $needle))) ||\n                $dispatched instanceof $needle) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Mock the notification dispatcher so all notifications are silenced.\n     *\n     * @return $this\n     */\n    protected function withoutNotifications()\n    {\n        $mock = Mockery::mock(NotificationDispatcher::class);\n\n        $mock->shouldReceive('send')->andReturnUsing(function ($notifiable, $instance, $channels = []) {\n            $this->dispatchedNotifications[] = compact(\n                'notifiable', 'instance', 'channels'\n            );\n        });\n\n        $this->app->instance(NotificationDispatcher::class, $mock);\n\n        return $this;\n    }\n\n    /**\n     * Specify a notification that is expected to be dispatched.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @return $this\n     */\n    protected function expectsNotification($notifiable, $notification)\n    {\n        $this->withoutNotifications();\n\n        $this->beforeApplicationDestroyed(function () use ($notifiable, $notification) {\n            foreach ($this->dispatchedNotifications as $dispatched) {\n                $notified = $dispatched['notifiable'];\n\n                if (($notified === $notifiable ||\n                     $notified->getKey() == $notifiable->getKey()) &&\n                    get_class($dispatched['instance']) === $notification\n                ) {\n                    return $this;\n                }\n            }\n\n            $this->fail('The following expected notification were not dispatched: ['.$notification.']');\n        });\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/HasInDatabase.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Constraints;\n\nuse Illuminate\\Database\\Connection;\nuse PHPUnit\\Framework\\Constraint\\Constraint;\n\nclass HasInDatabase extends Constraint\n{\n    /**\n     * Number of records that will be shown in the console in case of failure.\n     *\n     * @var int\n     */\n    protected $show = 3;\n\n    /**\n     * The database connection.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    protected $database;\n\n    /**\n     * The data that will be used to narrow the search in the database table.\n     *\n     * @var array\n     */\n    protected $data;\n\n    /**\n     * Create a new constraint instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $database\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct(Connection $database, array $data)\n    {\n        $this->data = $data;\n\n        $this->database = $database;\n    }\n\n    /**\n     * Check if the data is found in the given table.\n     *\n     * @param  string  $table\n     * @return bool\n     */\n    public function matches($table): bool\n    {\n        return $this->database->table($table)->where($this->data)->count() > 0;\n    }\n\n    /**\n     * Get the description of the failure.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    public function failureDescription($table): string\n    {\n        return sprintf(\n            \"a row in the table [%s] matches the attributes %s.\\n\\n%s\",\n            $table, $this->toString(JSON_PRETTY_PRINT), $this->getAdditionalInfo($table)\n        );\n    }\n\n    /**\n     * Get additional info about the records found in the database table.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function getAdditionalInfo($table)\n    {\n        $results = $this->database->table($table)->get();\n\n        if ($results->isEmpty()) {\n            return 'The table is empty';\n        }\n\n        $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT);\n\n        if ($results->count() > $this->show) {\n            $description .= sprintf(' and %s others', $results->count() - $this->show);\n        }\n\n        return $description;\n    }\n\n    /**\n     * Get a string representation of the object.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toString($options = 0): string\n    {\n        return json_encode($this->data, $options);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SeeInOrder.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Constraints;\n\nuse ReflectionClass;\nuse PHPUnit\\Framework\\Constraint\\Constraint;\n\nclass SeeInOrder extends Constraint\n{\n    /**\n     * The string under validation.\n     *\n     * @var string\n     */\n    protected $content;\n\n    /**\n     * The last value that failed to pass validation.\n     *\n     * @var string\n     */\n    protected $failedValue;\n\n    /**\n     * Create a new constraint instance.\n     *\n     * @param  string  $content\n     * @return void\n     */\n    public function __construct($content)\n    {\n        $this->content = $content;\n    }\n\n    /**\n     * Determine if the rule passes validation.\n     *\n     * @param  array  $values\n     * @return bool\n     */\n    public function matches($values) : bool\n    {\n        $position = 0;\n\n        foreach ($values as $value) {\n            if (empty($value)) {\n                continue;\n            }\n\n            $valuePosition = mb_strpos($this->content, $value, $position);\n\n            if ($valuePosition === false || $valuePosition < $position) {\n                $this->failedValue = $value;\n\n                return false;\n            }\n\n            $position = $valuePosition + mb_strlen($value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the description of the failure.\n     *\n     * @param  array  $values\n     * @return string\n     */\n    public function failureDescription($values) : string\n    {\n        return sprintf(\n            'Failed asserting that \\'%s\\' contains \"%s\" in specified order.',\n            $this->content,\n            $this->failedValue\n        );\n    }\n\n    /**\n     * Get a string representation of the object.\n     *\n     * @return string\n     */\n    public function toString() : string\n    {\n        return (new ReflectionClass($this))->name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/Constraints/SoftDeletedInDatabase.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing\\Constraints;\n\nuse Illuminate\\Database\\Connection;\nuse PHPUnit\\Framework\\Constraint\\Constraint;\n\nclass SoftDeletedInDatabase extends Constraint\n{\n    /**\n     * Number of records that will be shown in the console in case of failure.\n     *\n     * @var int\n     */\n    protected $show = 3;\n\n    /**\n     * The database connection.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    protected $database;\n\n    /**\n     * The data that will be used to narrow the search in the database table.\n     *\n     * @var array\n     */\n    protected $data;\n\n    /**\n     * Create a new constraint instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $database\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct(Connection $database, array $data)\n    {\n        $this->data = $data;\n\n        $this->database = $database;\n    }\n\n    /**\n     * Check if the data is found in the given table.\n     *\n     * @param  string  $table\n     * @return bool\n     */\n    public function matches($table): bool\n    {\n        return $this->database->table($table)\n                ->where($this->data)->whereNotNull('deleted_at')->count() > 0;\n    }\n\n    /**\n     * Get the description of the failure.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    public function failureDescription($table): string\n    {\n        return sprintf(\n            \"any soft deleted row in the table [%s] matches the attributes %s.\\n\\n%s\",\n            $table, $this->toString(), $this->getAdditionalInfo($table)\n        );\n    }\n\n    /**\n     * Get additional info about the records found in the database table.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function getAdditionalInfo($table)\n    {\n        $results = $this->database->table($table)->get();\n\n        if ($results->isEmpty()) {\n            return 'The table is empty';\n        }\n\n        $description = 'Found: '.json_encode($results->take($this->show), JSON_PRETTY_PRINT);\n\n        if ($results->count() > $this->show) {\n            $description .= sprintf(' and %s others', $results->count() - $this->show);\n        }\n\n        return $description;\n    }\n\n    /**\n     * Get a string representation of the object.\n     *\n     * @return string\n     */\n    public function toString(): string\n    {\n        return json_encode($this->data);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseMigrations.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Illuminate\\Contracts\\Console\\Kernel;\n\ntrait DatabaseMigrations\n{\n    /**\n     * Define hooks to migrate the database before and after each test.\n     *\n     * @return void\n     */\n    public function runDatabaseMigrations()\n    {\n        $this->artisan('migrate:fresh');\n\n        $this->app[Kernel::class]->setArtisan(null);\n\n        $this->beforeApplicationDestroyed(function () {\n            $this->artisan('migrate:rollback');\n\n            RefreshDatabaseState::$migrated = false;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/DatabaseTransactions.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\ntrait DatabaseTransactions\n{\n    /**\n     * Handle database transactions on the specified connections.\n     *\n     * @return void\n     */\n    public function beginDatabaseTransaction()\n    {\n        $database = $this->app->make('db');\n\n        foreach ($this->connectionsToTransact() as $name) {\n            $database->connection($name)->beginTransaction();\n        }\n\n        $this->beforeApplicationDestroyed(function () use ($database) {\n            foreach ($this->connectionsToTransact() as $name) {\n                $connection = $database->connection($name);\n\n                $connection->rollBack();\n                $connection->disconnect();\n            }\n        });\n    }\n\n    /**\n     * The database connections that should have transactions.\n     *\n     * @return array\n     */\n    protected function connectionsToTransact()\n    {\n        return property_exists($this, 'connectionsToTransact')\n                            ? $this->connectionsToTransact : [null];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/PendingCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Mockery;\nuse Illuminate\\Console\\OutputStyle;\nuse Illuminate\\Contracts\\Console\\Kernel;\nuse Symfony\\Component\\Console\\Input\\ArrayInput;\nuse PHPUnit\\Framework\\TestCase as PHPUnitTestCase;\nuse Symfony\\Component\\Console\\Output\\BufferedOutput;\nuse Mockery\\Exception\\NoMatchingExpectationException;\n\nclass PendingCommand\n{\n    /**\n     * The test being run.\n     *\n     * @var \\Illuminate\\Foundation\\Testing\\TestCase\n     */\n    public $test;\n\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The command to run.\n     *\n     * @var string\n     */\n    protected $command;\n\n    /**\n     * The parameters to pass to the command.\n     *\n     * @var array\n     */\n    protected $parameters;\n\n    /**\n     * The expected exit code.\n     *\n     * @var int\n     */\n    protected $expectedExitCode;\n\n    /**\n     * Determine if command has executed.\n     *\n     * @var bool\n     */\n    protected $hasExecuted = false;\n\n    /**\n     * Create a new pending console command run.\n     *\n     * @param  \\PHPUnit\\Framework\\TestCase  $test\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  string  $command\n     * @param  array  $parameters\n     * @return void\n     */\n    public function __construct(PHPUnitTestCase $test, $app, $command, $parameters)\n    {\n        $this->app = $app;\n        $this->test = $test;\n        $this->command = $command;\n        $this->parameters = $parameters;\n    }\n\n    /**\n     * Specify a question that should be asked when the command runs.\n     *\n     * @param  string  $question\n     * @param  string  $answer\n     * @return $this\n     */\n    public function expectsQuestion($question, $answer)\n    {\n        $this->test->expectedQuestions[] = [$question, $answer];\n\n        return $this;\n    }\n\n    /**\n     * Specify output that should be printed when the command runs.\n     *\n     * @param  string  $output\n     * @return $this\n     */\n    public function expectsOutput($output)\n    {\n        $this->test->expectedOutput[] = $output;\n\n        return $this;\n    }\n\n    /**\n     * Assert that the command has the given exit code.\n     *\n     * @param  int  $exitCode\n     * @return $this\n     */\n    public function assertExitCode($exitCode)\n    {\n        $this->expectedExitCode = $exitCode;\n\n        return $this;\n    }\n\n    /**\n     * Execute the command.\n     *\n     * @return int\n     */\n    public function execute()\n    {\n        return $this->run();\n    }\n\n    /**\n     * Execute the command.\n     *\n     * @return int\n     */\n    public function run()\n    {\n        $this->hasExecuted = true;\n\n        $this->mockConsoleOutput();\n\n        try {\n            $exitCode = $this->app[Kernel::class]->call($this->command, $this->parameters);\n        } catch (NoMatchingExpectationException $e) {\n            if ($e->getMethodName() === 'askQuestion') {\n                $this->test->fail('Unexpected question \"'.$e->getActualArguments()[0]->getQuestion().'\" was asked.');\n            }\n\n            throw $e;\n        }\n\n        if ($this->expectedExitCode !== null) {\n            $this->test->assertEquals(\n                $this->expectedExitCode, $exitCode,\n                \"Expected status code {$this->expectedExitCode} but received {$exitCode}.\"\n            );\n        }\n\n        return $exitCode;\n    }\n\n    /**\n     * Mock the application's console output.\n     *\n     * @return void\n     */\n    protected function mockConsoleOutput()\n    {\n        $mock = Mockery::mock(OutputStyle::class.'[askQuestion]', [\n            (new ArrayInput($this->parameters)), $this->createABufferedOutputMock(),\n        ]);\n\n        foreach ($this->test->expectedQuestions as $i => $question) {\n            $mock->shouldReceive('askQuestion')\n                ->once()\n                ->ordered()\n                ->with(Mockery::on(function ($argument) use ($question) {\n                    return $argument->getQuestion() == $question[0];\n                }))\n                ->andReturnUsing(function () use ($question, $i) {\n                    unset($this->test->expectedQuestions[$i]);\n\n                    return $question[1];\n                });\n        }\n\n        $this->app->bind(OutputStyle::class, function () use ($mock) {\n            return $mock;\n        });\n    }\n\n    /**\n     * Create a mock for the buffered output.\n     *\n     * @return \\Mockery\\MockInterface\n     */\n    private function createABufferedOutputMock()\n    {\n        $mock = Mockery::mock(BufferedOutput::class.'[doWrite]')\n                ->shouldAllowMockingProtectedMethods()\n                ->shouldIgnoreMissing();\n\n        foreach ($this->test->expectedOutput as $i => $output) {\n            $mock->shouldReceive('doWrite')\n                ->once()\n                ->ordered()\n                ->with($output, Mockery::any())\n                ->andReturnUsing(function () use ($i) {\n                    unset($this->test->expectedOutput[$i]);\n                });\n        }\n\n        return $mock;\n    }\n\n    /**\n     * Handle the object's destruction.\n     *\n     * @return void\n     */\n    public function __destruct()\n    {\n        if ($this->hasExecuted) {\n            return;\n        }\n\n        $this->run();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Illuminate\\Contracts\\Console\\Kernel;\n\ntrait RefreshDatabase\n{\n    /**\n     * Define hooks to migrate the database before and after each test.\n     *\n     * @return void\n     */\n    public function refreshDatabase()\n    {\n        $this->usingInMemoryDatabase()\n                        ? $this->refreshInMemoryDatabase()\n                        : $this->refreshTestDatabase();\n    }\n\n    /**\n     * Determine if an in-memory database is being used.\n     *\n     * @return bool\n     */\n    protected function usingInMemoryDatabase()\n    {\n        $default = config('database.default');\n\n        return config(\"database.connections.$default.database\") === ':memory:';\n    }\n\n    /**\n     * Refresh the in-memory database.\n     *\n     * @return void\n     */\n    protected function refreshInMemoryDatabase()\n    {\n        $this->artisan('migrate');\n\n        $this->app[Kernel::class]->setArtisan(null);\n    }\n\n    /**\n     * Refresh a conventional test database.\n     *\n     * @return void\n     */\n    protected function refreshTestDatabase()\n    {\n        if (! RefreshDatabaseState::$migrated) {\n            $this->artisan('migrate:fresh', [\n                '--drop-views' => $this->shouldDropViews(),\n                '--drop-types' => $this->shouldDropTypes(),\n            ]);\n\n            $this->app[Kernel::class]->setArtisan(null);\n\n            RefreshDatabaseState::$migrated = true;\n        }\n\n        $this->beginDatabaseTransaction();\n    }\n\n    /**\n     * Begin a database transaction on the testing database.\n     *\n     * @return void\n     */\n    public function beginDatabaseTransaction()\n    {\n        $database = $this->app->make('db');\n\n        foreach ($this->connectionsToTransact() as $name) {\n            $connection = $database->connection($name);\n            $dispatcher = $connection->getEventDispatcher();\n\n            $connection->unsetEventDispatcher();\n            $connection->beginTransaction();\n            $connection->setEventDispatcher($dispatcher);\n        }\n\n        $this->beforeApplicationDestroyed(function () use ($database) {\n            foreach ($this->connectionsToTransact() as $name) {\n                $connection = $database->connection($name);\n                $dispatcher = $connection->getEventDispatcher();\n\n                $connection->unsetEventDispatcher();\n                $connection->rollback();\n                $connection->setEventDispatcher($dispatcher);\n                $connection->disconnect();\n            }\n        });\n    }\n\n    /**\n     * The database connections that should have transactions.\n     *\n     * @return array\n     */\n    protected function connectionsToTransact()\n    {\n        return property_exists($this, 'connectionsToTransact')\n                            ? $this->connectionsToTransact : [null];\n    }\n\n    /**\n     * Determine if views should be dropped when refreshing the database.\n     *\n     * @return bool\n     */\n    protected function shouldDropViews()\n    {\n        return property_exists($this, 'dropViews')\n                            ? $this->dropViews : false;\n    }\n\n    /**\n     * Determine if types should be dropped when refreshing the database.\n     *\n     * @return bool\n     */\n    protected function shouldDropTypes()\n    {\n        return property_exists($this, 'dropTypes')\n                            ? $this->dropTypes : false;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabaseState.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nclass RefreshDatabaseState\n{\n    /**\n     * Indicates if the test database has been migrated.\n     *\n     * @var bool\n     */\n    public static $migrated = false;\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Mockery;\nuse Carbon\\Carbon;\nuse Carbon\\CarbonImmutable;\nuse Illuminate\\Support\\Facades\\Facade;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Console\\Application as Artisan;\nuse PHPUnit\\Framework\\TestCase as BaseTestCase;\n\nabstract class TestCase extends BaseTestCase\n{\n    use Concerns\\InteractsWithContainer,\n        Concerns\\MakesHttpRequests,\n        Concerns\\InteractsWithAuthentication,\n        Concerns\\InteractsWithConsole,\n        Concerns\\InteractsWithDatabase,\n        Concerns\\InteractsWithExceptionHandling,\n        Concerns\\InteractsWithSession,\n        Concerns\\MocksApplicationServices;\n\n    /**\n     * The Illuminate application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The callbacks that should be run after the application is created.\n     *\n     * @var array\n     */\n    protected $afterApplicationCreatedCallbacks = [];\n\n    /**\n     * The callbacks that should be run before the application is destroyed.\n     *\n     * @var array\n     */\n    protected $beforeApplicationDestroyedCallbacks = [];\n\n    /**\n     * Indicates if we have made it through the base setUp function.\n     *\n     * @var bool\n     */\n    protected $setUpHasRun = false;\n\n    /**\n     * Creates the application.\n     *\n     * Needs to be implemented by subclasses.\n     *\n     * @return \\Symfony\\Component\\HttpKernel\\HttpKernelInterface\n     */\n    abstract public function createApplication();\n\n    /**\n     * Setup the test environment.\n     *\n     * @return void\n     */\n    protected function setUp(): void\n    {\n        if (! $this->app) {\n            $this->refreshApplication();\n        }\n\n        $this->setUpTraits();\n\n        foreach ($this->afterApplicationCreatedCallbacks as $callback) {\n            call_user_func($callback);\n        }\n\n        Facade::clearResolvedInstances();\n\n        Model::setEventDispatcher($this->app['events']);\n\n        $this->setUpHasRun = true;\n    }\n\n    /**\n     * Refresh the application instance.\n     *\n     * @return void\n     */\n    protected function refreshApplication()\n    {\n        $this->app = $this->createApplication();\n    }\n\n    /**\n     * Boot the testing helper traits.\n     *\n     * @return array\n     */\n    protected function setUpTraits()\n    {\n        $uses = array_flip(class_uses_recursive(static::class));\n\n        if (isset($uses[RefreshDatabase::class])) {\n            $this->refreshDatabase();\n        }\n\n        if (isset($uses[DatabaseMigrations::class])) {\n            $this->runDatabaseMigrations();\n        }\n\n        if (isset($uses[DatabaseTransactions::class])) {\n            $this->beginDatabaseTransaction();\n        }\n\n        if (isset($uses[WithoutMiddleware::class])) {\n            $this->disableMiddlewareForAllTests();\n        }\n\n        if (isset($uses[WithoutEvents::class])) {\n            $this->disableEventsForAllTests();\n        }\n\n        if (isset($uses[WithFaker::class])) {\n            $this->setUpFaker();\n        }\n\n        return $uses;\n    }\n\n    /**\n     * Clean up the testing environment before the next test.\n     *\n     * @return void\n     */\n    protected function tearDown(): void\n    {\n        if ($this->app) {\n            foreach ($this->beforeApplicationDestroyedCallbacks as $callback) {\n                call_user_func($callback);\n            }\n\n            $this->app->flush();\n\n            $this->app = null;\n        }\n\n        $this->setUpHasRun = false;\n\n        if (property_exists($this, 'serverVariables')) {\n            $this->serverVariables = [];\n        }\n\n        if (property_exists($this, 'defaultHeaders')) {\n            $this->defaultHeaders = [];\n        }\n\n        if (class_exists('Mockery')) {\n            if ($container = Mockery::getContainer()) {\n                $this->addToAssertionCount($container->mockery_getExpectationCount());\n            }\n\n            Mockery::close();\n        }\n\n        if (class_exists(Carbon::class)) {\n            Carbon::setTestNow();\n        }\n\n        if (class_exists(CarbonImmutable::class)) {\n            CarbonImmutable::setTestNow();\n        }\n\n        $this->afterApplicationCreatedCallbacks = [];\n        $this->beforeApplicationDestroyedCallbacks = [];\n\n        Artisan::forgetBootstrappers();\n    }\n\n    /**\n     * Register a callback to be run after the application is created.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public function afterApplicationCreated(callable $callback)\n    {\n        $this->afterApplicationCreatedCallbacks[] = $callback;\n\n        if ($this->setUpHasRun) {\n            call_user_func($callback);\n        }\n    }\n\n    /**\n     * Register a callback to be run before the application is destroyed.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    protected function beforeApplicationDestroyed(callable $callback)\n    {\n        $this->beforeApplicationDestroyedCallbacks[] = $callback;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Contracts\\View\\View;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Foundation\\Testing\\Assert as PHPUnit;\nuse Symfony\\Component\\HttpFoundation\\StreamedResponse;\nuse Illuminate\\Foundation\\Testing\\Constraints\\SeeInOrder;\n\n/**\n * @mixin \\Illuminate\\Http\\Response\n */\nclass TestResponse\n{\n    use Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The response to delegate to.\n     *\n     * @var \\Illuminate\\Http\\Response\n     */\n    public $baseResponse;\n\n    /**\n     * The streamed content of the response.\n     *\n     * @var string\n     */\n    protected $streamedContent;\n\n    /**\n     * Create a new test response instance.\n     *\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return void\n     */\n    public function __construct($response)\n    {\n        $this->baseResponse = $response;\n    }\n\n    /**\n     * Create a new TestResponse from another response.\n     *\n     * @param  \\Illuminate\\Http\\Response  $response\n     * @return static\n     */\n    public static function fromBaseResponse($response)\n    {\n        return new static($response);\n    }\n\n    /**\n     * Assert that the response has a successful status code.\n     *\n     * @return $this\n     */\n    public function assertSuccessful()\n    {\n        PHPUnit::assertTrue(\n            $this->isSuccessful(),\n            'Response status code ['.$this->getStatusCode().'] is not a successful status code.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has a 200 status code.\n     *\n     * @return $this\n     */\n    public function assertOk()\n    {\n        PHPUnit::assertTrue(\n            $this->isOk(),\n            'Response status code ['.$this->getStatusCode().'] does not match expected 200 status code.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has a not found status code.\n     *\n     * @return $this\n     */\n    public function assertNotFound()\n    {\n        PHPUnit::assertTrue(\n            $this->isNotFound(),\n            'Response status code ['.$this->getStatusCode().'] is not a not found status code.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has a forbidden status code.\n     *\n     * @return $this\n     */\n    public function assertForbidden()\n    {\n        PHPUnit::assertTrue(\n            $this->isForbidden(),\n            'Response status code ['.$this->getStatusCode().'] is not a forbidden status code.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has an unauthorized status code.\n     *\n     * @return $this\n     */\n    public function assertUnauthorized()\n    {\n        $actual = $this->getStatusCode();\n\n        PHPUnit::assertTrue(\n            401 === $actual,\n            'Response status code ['.$actual.'] is not an unauthorized status code.'\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has the given status code.\n     *\n     * @param  int  $status\n     * @return $this\n     */\n    public function assertStatus($status)\n    {\n        $actual = $this->getStatusCode();\n\n        PHPUnit::assertTrue(\n            $actual === $status,\n            \"Expected status code {$status} but received {$actual}.\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert whether the response is redirecting to a given URI.\n     *\n     * @param  string|null  $uri\n     * @return $this\n     */\n    public function assertRedirect($uri = null)\n    {\n        PHPUnit::assertTrue(\n            $this->isRedirect(), 'Response status code ['.$this->getStatusCode().'] is not a redirect status code.'\n        );\n\n        if (! is_null($uri)) {\n            $this->assertLocation($uri);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response contains the given header and equals the optional value.\n     *\n     * @param  string  $headerName\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function assertHeader($headerName, $value = null)\n    {\n        PHPUnit::assertTrue(\n            $this->headers->has($headerName), \"Header [{$headerName}] not present on response.\"\n        );\n\n        $actual = $this->headers->get($headerName);\n\n        if (! is_null($value)) {\n            PHPUnit::assertEquals(\n                $value, $this->headers->get($headerName),\n                \"Header [{$headerName}] was found, but value [{$actual}] does not match [{$value}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response does not contains the given header.\n     *\n     * @param  string  $headerName\n     * @return $this\n     */\n    public function assertHeaderMissing($headerName)\n    {\n        PHPUnit::assertFalse(\n            $this->headers->has($headerName), \"Unexpected header [{$headerName}] is present on response.\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the current location header matches the given URI.\n     *\n     * @param  string  $uri\n     * @return $this\n     */\n    public function assertLocation($uri)\n    {\n        PHPUnit::assertEquals(\n            app('url')->to($uri), app('url')->to($this->headers->get('Location'))\n        );\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response contains the given cookie and equals the optional value.\n     *\n     * @param  string  $cookieName\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function assertPlainCookie($cookieName, $value = null)\n    {\n        $this->assertCookie($cookieName, $value, false);\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response contains the given cookie and equals the optional value.\n     *\n     * @param  string  $cookieName\n     * @param  mixed  $value\n     * @param  bool  $encrypted\n     * @param  bool  $unserialize\n     * @return $this\n     */\n    public function assertCookie($cookieName, $value = null, $encrypted = true, $unserialize = false)\n    {\n        PHPUnit::assertNotNull(\n            $cookie = $this->getCookie($cookieName),\n            \"Cookie [{$cookieName}] not present on response.\"\n        );\n\n        if (! $cookie || is_null($value)) {\n            return $this;\n        }\n\n        $cookieValue = $cookie->getValue();\n\n        $actual = $encrypted\n            ? app('encrypter')->decrypt($cookieValue, $unserialize) : $cookieValue;\n\n        PHPUnit::assertEquals(\n            $value, $actual,\n            \"Cookie [{$cookieName}] was found, but value [{$actual}] does not match [{$value}].\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response contains the given cookie and is expired.\n     *\n     * @param  string  $cookieName\n     * @return $this\n     */\n    public function assertCookieExpired($cookieName)\n    {\n        PHPUnit::assertNotNull(\n            $cookie = $this->getCookie($cookieName),\n            \"Cookie [{$cookieName}] not present on response.\"\n        );\n\n        $expiresAt = Carbon::createFromTimestamp($cookie->getExpiresTime());\n\n        PHPUnit::assertTrue(\n            $expiresAt->lessThan(Carbon::now()),\n            \"Cookie [{$cookieName}] is not expired, it expires at [{$expiresAt}].\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response contains the given cookie and is not expired.\n     *\n     * @param  string  $cookieName\n     * @return $this\n     */\n    public function assertCookieNotExpired($cookieName)\n    {\n        PHPUnit::assertNotNull(\n            $cookie = $this->getCookie($cookieName),\n            \"Cookie [{$cookieName}] not present on response.\"\n        );\n\n        $expiresAt = Carbon::createFromTimestamp($cookie->getExpiresTime());\n\n        PHPUnit::assertTrue(\n            $expiresAt->greaterThan(Carbon::now()),\n            \"Cookie [{$cookieName}] is expired, it expired at [{$expiresAt}].\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Asserts that the response does not contains the given cookie.\n     *\n     * @param  string  $cookieName\n     * @return $this\n     */\n    public function assertCookieMissing($cookieName)\n    {\n        PHPUnit::assertNull(\n            $this->getCookie($cookieName),\n            \"Cookie [{$cookieName}] is present on response.\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the given cookie from the response.\n     *\n     * @param  string  $cookieName\n     * @return \\Symfony\\Component\\HttpFoundation\\Cookie|null\n     */\n    protected function getCookie($cookieName)\n    {\n        foreach ($this->headers->getCookies() as $cookie) {\n            if ($cookie->getName() === $cookieName) {\n                return $cookie;\n            }\n        }\n    }\n\n    /**\n     * Assert that the given string is contained within the response.\n     *\n     * @param  string  $value\n     * @return $this\n     */\n    public function assertSee($value)\n    {\n        PHPUnit::assertStringContainsString((string) $value, $this->getContent());\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given strings are contained in order within the response.\n     *\n     * @param  array  $values\n     * @return $this\n     */\n    public function assertSeeInOrder(array $values)\n    {\n        PHPUnit::assertThat($values, new SeeInOrder($this->getContent()));\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given string is contained within the response text.\n     *\n     * @param  string  $value\n     * @return $this\n     */\n    public function assertSeeText($value)\n    {\n        PHPUnit::assertStringContainsString((string) $value, strip_tags($this->getContent()));\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given strings are contained in order within the response text.\n     *\n     * @param  array  $values\n     * @return $this\n     */\n    public function assertSeeTextInOrder(array $values)\n    {\n        PHPUnit::assertThat($values, new SeeInOrder(strip_tags($this->getContent())));\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given string is not contained within the response.\n     *\n     * @param  string  $value\n     * @return $this\n     */\n    public function assertDontSee($value)\n    {\n        PHPUnit::assertStringNotContainsString((string) $value, $this->getContent());\n\n        return $this;\n    }\n\n    /**\n     * Assert that the given string is not contained within the response text.\n     *\n     * @param  string  $value\n     * @return $this\n     */\n    public function assertDontSeeText($value)\n    {\n        PHPUnit::assertStringNotContainsString((string) $value, strip_tags($this->getContent()));\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response is a superset of the given JSON.\n     *\n     * @param  array  $data\n     * @param  bool  $strict\n     * @return $this\n     */\n    public function assertJson(array $data, $strict = false)\n    {\n        PHPUnit::assertArraySubset(\n            $data, $this->decodeResponseJson(), $strict, $this->assertJsonMessage($data)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the assertion message for assertJson.\n     *\n     * @param  array  $data\n     * @return string\n     */\n    protected function assertJsonMessage(array $data)\n    {\n        $expected = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);\n\n        $actual = json_encode($this->decodeResponseJson(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);\n\n        return 'Unable to find JSON: '.PHP_EOL.PHP_EOL.\n            \"[{$expected}]\".PHP_EOL.PHP_EOL.\n            'within response JSON:'.PHP_EOL.PHP_EOL.\n            \"[{$actual}].\".PHP_EOL.PHP_EOL;\n    }\n\n    /**\n     * Assert that the response has the exact given JSON.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function assertExactJson(array $data)\n    {\n        $actual = json_encode(Arr::sortRecursive(\n            (array) $this->decodeResponseJson()\n        ));\n\n        PHPUnit::assertEquals(json_encode(Arr::sortRecursive($data)), $actual);\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response contains the given JSON fragment.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function assertJsonFragment(array $data)\n    {\n        $actual = json_encode(Arr::sortRecursive(\n            (array) $this->decodeResponseJson()\n        ));\n\n        foreach (Arr::sortRecursive($data) as $key => $value) {\n            $expected = $this->jsonSearchStrings($key, $value);\n\n            PHPUnit::assertTrue(\n                Str::contains($actual, $expected),\n                'Unable to find JSON fragment: '.PHP_EOL.PHP_EOL.\n                '['.json_encode([$key => $value]).']'.PHP_EOL.PHP_EOL.\n                'within'.PHP_EOL.PHP_EOL.\n                \"[{$actual}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response does not contain the given JSON fragment.\n     *\n     * @param  array  $data\n     * @param  bool   $exact\n     * @return $this\n     */\n    public function assertJsonMissing(array $data, $exact = false)\n    {\n        if ($exact) {\n            return $this->assertJsonMissingExact($data);\n        }\n\n        $actual = json_encode(Arr::sortRecursive(\n            (array) $this->decodeResponseJson()\n        ));\n\n        foreach (Arr::sortRecursive($data) as $key => $value) {\n            $unexpected = $this->jsonSearchStrings($key, $value);\n\n            PHPUnit::assertFalse(\n                Str::contains($actual, $unexpected),\n                'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL.\n                '['.json_encode([$key => $value]).']'.PHP_EOL.PHP_EOL.\n                'within'.PHP_EOL.PHP_EOL.\n                \"[{$actual}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response does not contain the exact JSON fragment.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function assertJsonMissingExact(array $data)\n    {\n        $actual = json_encode(Arr::sortRecursive(\n            (array) $this->decodeResponseJson()\n        ));\n\n        foreach (Arr::sortRecursive($data) as $key => $value) {\n            $unexpected = $this->jsonSearchStrings($key, $value);\n\n            if (! Str::contains($actual, $unexpected)) {\n                return $this;\n            }\n        }\n\n        PHPUnit::fail(\n            'Found unexpected JSON fragment: '.PHP_EOL.PHP_EOL.\n            '['.json_encode($data).']'.PHP_EOL.PHP_EOL.\n            'within'.PHP_EOL.PHP_EOL.\n            \"[{$actual}].\"\n        );\n    }\n\n    /**\n     * Get the strings we need to search for when examining the JSON.\n     *\n     * @param  string  $key\n     * @param  string  $value\n     * @return array\n     */\n    protected function jsonSearchStrings($key, $value)\n    {\n        $needle = substr(json_encode([$key => $value]), 1, -1);\n\n        return [\n            $needle.']',\n            $needle.'}',\n            $needle.',',\n        ];\n    }\n\n    /**\n     * Assert that the response has a given JSON structure.\n     *\n     * @param  array|null  $structure\n     * @param  array|null  $responseData\n     * @return $this\n     */\n    public function assertJsonStructure(array $structure = null, $responseData = null)\n    {\n        if (is_null($structure)) {\n            return $this->assertExactJson($this->json());\n        }\n\n        if (is_null($responseData)) {\n            $responseData = $this->decodeResponseJson();\n        }\n\n        foreach ($structure as $key => $value) {\n            if (is_array($value) && $key === '*') {\n                PHPUnit::assertIsArray($responseData);\n\n                foreach ($responseData as $responseDataItem) {\n                    $this->assertJsonStructure($structure['*'], $responseDataItem);\n                }\n            } elseif (is_array($value)) {\n                PHPUnit::assertArrayHasKey($key, $responseData);\n\n                $this->assertJsonStructure($structure[$key], $responseData[$key]);\n            } else {\n                PHPUnit::assertArrayHasKey($value, $responseData);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response JSON has the expected count of items at the given key.\n     *\n     * @param  int  $count\n     * @param  string|null  $key\n     * @return $this\n     */\n    public function assertJsonCount(int $count, $key = null)\n    {\n        if ($key) {\n            PHPUnit::assertCount(\n                $count, data_get($this->json(), $key),\n                \"Failed to assert that the response count matched the expected {$count}\"\n            );\n\n            return $this;\n        }\n\n        PHPUnit::assertCount($count,\n            $this->json(),\n            \"Failed to assert that the response count matched the expected {$count}\"\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has the given JSON validation errors.\n     *\n     * @param  string|array  $errors\n     * @return $this\n     */\n    public function assertJsonValidationErrors($errors)\n    {\n        $errors = Arr::wrap($errors);\n\n        PHPUnit::assertNotEmpty($errors, 'No validation errors were provided.');\n\n        $jsonErrors = $this->json()['errors'] ?? [];\n\n        $errorMessage = $jsonErrors\n                ? 'Response has the following JSON validation errors:'.\n                        PHP_EOL.PHP_EOL.json_encode($jsonErrors, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE).PHP_EOL\n                : 'Response does not have JSON validation errors.';\n\n        foreach ($errors as $key => $value) {\n            PHPUnit::assertArrayHasKey(\n                (is_int($key)) ? $value : $key,\n                $jsonErrors,\n                \"Failed to find a validation error in the response for key: '{$value}'\".PHP_EOL.PHP_EOL.$errorMessage\n            );\n\n            if (! is_int($key)) {\n                foreach (Arr::wrap($jsonErrors[$key]) as $jsonErrorMessage) {\n                    if (Str::contains($jsonErrorMessage, $value)) {\n                        return $this;\n                    }\n                }\n\n                PHPUnit::fail(\n                    \"Failed to find a validation error in the response for key and message: '$key' => '$value'\".PHP_EOL.PHP_EOL.$errorMessage\n                );\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response has no JSON validation errors for the given keys.\n     *\n     * @param  string|array|null  $keys\n     * @return $this\n     */\n    public function assertJsonMissingValidationErrors($keys = null)\n    {\n        if ($this->getContent() === '') {\n            PHPUnit::assertTrue(true);\n\n            return $this;\n        }\n\n        $json = $this->json();\n\n        if (! array_key_exists('errors', $json)) {\n            PHPUnit::assertArrayNotHasKey('errors', $json);\n\n            return $this;\n        }\n\n        $errors = $json['errors'];\n\n        if (is_null($keys) && count($errors) > 0) {\n            PHPUnit::fail(\n                'Response has unexpected validation errors: '.PHP_EOL.PHP_EOL.\n                json_encode($errors, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)\n            );\n        }\n\n        foreach (Arr::wrap($keys) as $key) {\n            PHPUnit::assertFalse(\n                isset($errors[$key]),\n                \"Found unexpected validation error for key: '{$key}'\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Validate and return the decoded response JSON.\n     *\n     * @param  string|null  $key\n     * @return mixed\n     */\n    public function decodeResponseJson($key = null)\n    {\n        $decodedResponse = json_decode($this->getContent(), true);\n\n        if (is_null($decodedResponse) || $decodedResponse === false) {\n            if ($this->exception) {\n                throw $this->exception;\n            } else {\n                PHPUnit::fail('Invalid JSON was returned from the route.');\n            }\n        }\n\n        return data_get($decodedResponse, $key);\n    }\n\n    /**\n     * Validate and return the decoded response JSON.\n     *\n     * @param  string|null  $key\n     * @return mixed\n     */\n    public function json($key = null)\n    {\n        return $this->decodeResponseJson($key);\n    }\n\n    /**\n     * Assert that the response view equals the given value.\n     *\n     * @param  string $value\n     * @return $this\n     */\n    public function assertViewIs($value)\n    {\n        $this->ensureResponseHasView();\n\n        PHPUnit::assertEquals($value, $this->original->name());\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response view has a given piece of bound data.\n     *\n     * @param  string|array  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function assertViewHas($key, $value = null)\n    {\n        if (is_array($key)) {\n            return $this->assertViewHasAll($key);\n        }\n\n        $this->ensureResponseHasView();\n\n        if (is_null($value)) {\n            PHPUnit::assertArrayHasKey($key, $this->original->gatherData());\n        } elseif ($value instanceof Closure) {\n            PHPUnit::assertTrue($value($this->original->gatherData()[$key]));\n        } elseif ($value instanceof Model) {\n            PHPUnit::assertTrue($value->is($this->original->gatherData()[$key]));\n        } else {\n            PHPUnit::assertEquals($value, $this->original->gatherData()[$key]);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the response view has a given list of bound data.\n     *\n     * @param  array  $bindings\n     * @return $this\n     */\n    public function assertViewHasAll(array $bindings)\n    {\n        foreach ($bindings as $key => $value) {\n            if (is_int($key)) {\n                $this->assertViewHas($value);\n            } else {\n                $this->assertViewHas($key, $value);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get a piece of data from the original view.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function viewData($key)\n    {\n        $this->ensureResponseHasView();\n\n        return $this->original->gatherData()[$key];\n    }\n\n    /**\n     * Assert that the response view is missing a piece of bound data.\n     *\n     * @param  string  $key\n     * @return $this\n     */\n    public function assertViewMissing($key)\n    {\n        $this->ensureResponseHasView();\n\n        PHPUnit::assertArrayNotHasKey($key, $this->original->gatherData());\n\n        return $this;\n    }\n\n    /**\n     * Ensure that the response has a view as its original content.\n     *\n     * @return $this\n     */\n    protected function ensureResponseHasView()\n    {\n        if (! isset($this->original) || ! $this->original instanceof View) {\n            return PHPUnit::fail('The response is not a view.');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session has a given value.\n     *\n     * @param  string|array  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function assertSessionHas($key, $value = null)\n    {\n        if (is_array($key)) {\n            return $this->assertSessionHasAll($key);\n        }\n\n        if (is_null($value)) {\n            PHPUnit::assertTrue(\n                $this->session()->has($key),\n                \"Session is missing expected key [{$key}].\"\n            );\n        } elseif ($value instanceof Closure) {\n            PHPUnit::assertTrue($value($this->session()->get($key)));\n        } else {\n            PHPUnit::assertEquals($value, $this->session()->get($key));\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session has a given list of values.\n     *\n     * @param  array  $bindings\n     * @return $this\n     */\n    public function assertSessionHasAll(array $bindings)\n    {\n        foreach ($bindings as $key => $value) {\n            if (is_int($key)) {\n                $this->assertSessionHas($value);\n            } else {\n                $this->assertSessionHas($key, $value);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session has the given errors.\n     *\n     * @param  string|array  $keys\n     * @param  mixed  $format\n     * @param  string  $errorBag\n     * @return $this\n     */\n    public function assertSessionHasErrors($keys = [], $format = null, $errorBag = 'default')\n    {\n        $this->assertSessionHas('errors');\n\n        $keys = (array) $keys;\n\n        $errors = $this->session()->get('errors')->getBag($errorBag);\n\n        foreach ($keys as $key => $value) {\n            if (is_int($key)) {\n                PHPUnit::assertTrue($errors->has($value), \"Session missing error: $value\");\n            } else {\n                PHPUnit::assertContains($value, $errors->get($key, $format));\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session is missing the given errors.\n     *\n     * @param  string|array  $keys\n     * @param  string|null  $format\n     * @param  string  $errorBag\n     * @return $this\n     */\n    public function assertSessionDoesntHaveErrors($keys = [], $format = null, $errorBag = 'default')\n    {\n        $keys = (array) $keys;\n\n        if (empty($keys)) {\n            return $this->assertSessionHasNoErrors();\n        }\n\n        if (is_null($this->session()->get('errors'))) {\n            PHPUnit::assertTrue(true);\n\n            return $this;\n        }\n\n        $errors = $this->session()->get('errors')->getBag($errorBag);\n\n        foreach ($keys as $key => $value) {\n            if (is_int($key)) {\n                PHPUnit::assertFalse($errors->has($value), \"Session has unexpected error: $value\");\n            } else {\n                PHPUnit::assertNotContains($value, $errors->get($key, $format));\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session has no errors.\n     *\n     * @return $this\n     */\n    public function assertSessionHasNoErrors()\n    {\n        $hasErrors = $this->session()->has('errors');\n\n        $errors = $hasErrors ? $this->session()->get('errors')->all() : [];\n\n        PHPUnit::assertFalse(\n            $hasErrors,\n            'Session has unexpected errors: '.PHP_EOL.PHP_EOL.\n            json_encode($errors, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Assert that the session has the given errors.\n     *\n     * @param  string  $errorBag\n     * @param  string|array  $keys\n     * @param  mixed  $format\n     * @return $this\n     */\n    public function assertSessionHasErrorsIn($errorBag, $keys = [], $format = null)\n    {\n        return $this->assertSessionHasErrors($keys, $format, $errorBag);\n    }\n\n    /**\n     * Assert that the session does not have a given key.\n     *\n     * @param  string|array  $key\n     * @return $this\n     */\n    public function assertSessionMissing($key)\n    {\n        if (is_array($key)) {\n            foreach ($key as $value) {\n                $this->assertSessionMissing($value);\n            }\n        } else {\n            PHPUnit::assertFalse(\n                $this->session()->has($key),\n                \"Session has unexpected key [{$key}].\"\n            );\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the current session store.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function session()\n    {\n        return app('session.store');\n    }\n\n    /**\n     * Dump the content from the response.\n     *\n     * @return $this\n     */\n    public function dump()\n    {\n        $content = $this->getContent();\n\n        $json = json_decode($content);\n\n        if (json_last_error() === JSON_ERROR_NONE) {\n            $content = $json;\n        }\n\n        dump($content);\n\n        return $this;\n    }\n\n    /**\n     * Dump the headers from the response.\n     *\n     * @return $this\n     */\n    public function dumpHeaders()\n    {\n        dump($this->headers->all());\n\n        return $this;\n    }\n\n    /**\n     * Get the streamed content from the response.\n     *\n     * @return string\n     */\n    public function streamedContent()\n    {\n        if (! is_null($this->streamedContent)) {\n            return $this->streamedContent;\n        }\n\n        if (! $this->baseResponse instanceof StreamedResponse) {\n            PHPUnit::fail('The response is not a streamed response.');\n        }\n\n        ob_start();\n\n        $this->sendContent();\n\n        return $this->streamedContent = ob_get_clean();\n    }\n\n    /**\n     * Dynamically access base response parameters.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->baseResponse->{$key};\n    }\n\n    /**\n     * Proxy isset() checks to the underlying base response.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __isset($key)\n    {\n        return isset($this->baseResponse->{$key});\n    }\n\n    /**\n     * Handle dynamic calls into macros or pass missing methods to the base response.\n     *\n     * @param  string  $method\n     * @param  array  $args\n     * @return mixed\n     */\n    public function __call($method, $args)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $args);\n        }\n\n        return $this->baseResponse->{$method}(...$args);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithFaker.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Faker\\Factory;\n\ntrait WithFaker\n{\n    /**\n     * The Faker instance.\n     *\n     * @var \\Faker\\Generator\n     */\n    protected $faker;\n\n    /**\n     * Setup up the Faker instance.\n     *\n     * @return void\n     */\n    protected function setUpFaker()\n    {\n        $this->faker = $this->makeFaker();\n    }\n\n    /**\n     * Get the default Faker instance for a given locale.\n     *\n     * @param  string|null  $locale\n     * @return \\Faker\\Generator\n     */\n    protected function faker($locale = null)\n    {\n        return is_null($locale) ? $this->faker : $this->makeFaker($locale);\n    }\n\n    /**\n     * Create a Faker instance for the given locale.\n     *\n     * @param  string|null  $locale\n     * @return \\Faker\\Generator\n     */\n    protected function makeFaker($locale = null)\n    {\n        return Factory::create($locale ?? Factory::DEFAULT_LOCALE);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutEvents.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Exception;\n\ntrait WithoutEvents\n{\n    /**\n     * Prevent all event handles from being executed.\n     *\n     * @throws \\Exception\n     */\n    public function disableEventsForAllTests()\n    {\n        if (method_exists($this, 'withoutEvents')) {\n            $this->withoutEvents();\n        } else {\n            throw new Exception('Unable to disable events. ApplicationTrait not used.');\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Testing/WithoutMiddleware.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Testing;\n\nuse Exception;\n\ntrait WithoutMiddleware\n{\n    /**\n     * Prevent all middleware from being executed for this test class.\n     *\n     * @throws \\Exception\n     */\n    public function disableMiddlewareForAllTests()\n    {\n        if (method_exists($this, 'withoutMiddleware')) {\n            $this->withoutMiddleware();\n        } else {\n            throw new Exception('Unable to disable middleware. MakesHttpRequests trait not used.');\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php",
    "content": "<?php\n\nnamespace Illuminate\\Foundation\\Validation;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Validation\\Factory;\nuse Illuminate\\Validation\\ValidationException;\n\ntrait ValidatesRequests\n{\n    /**\n     * Run the validation routine against the given validator.\n     *\n     * @param  \\Illuminate\\Contracts\\Validation\\Validator|array  $validator\n     * @param  \\Illuminate\\Http\\Request|null  $request\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validateWith($validator, Request $request = null)\n    {\n        $request = $request ?: request();\n\n        if (is_array($validator)) {\n            $validator = $this->getValidationFactory()->make($request->all(), $validator);\n        }\n\n        return $validator->validate();\n    }\n\n    /**\n     * Validate the given request with the given rules.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validate(Request $request, array $rules,\n                             array $messages = [], array $customAttributes = [])\n    {\n        return $this->getValidationFactory()->make(\n            $request->all(), $rules, $messages, $customAttributes\n        )->validate();\n    }\n\n    /**\n     * Validate the given request with the given rules.\n     *\n     * @param  string  $errorBag\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validateWithBag($errorBag, Request $request, array $rules,\n                                    array $messages = [], array $customAttributes = [])\n    {\n        try {\n            return $this->validate($request, $rules, $messages, $customAttributes);\n        } catch (ValidationException $e) {\n            $e->errorBag = $errorBag;\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Get a validation factory instance.\n     *\n     * @return \\Illuminate\\Contracts\\Validation\\Factory\n     */\n    protected function getValidationFactory()\n    {\n        return app(Factory::class);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/helpers.php",
    "content": "<?php\n\nuse Illuminate\\Foundation\\Mix;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Queue\\CallQueuedClosure;\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\nuse Illuminate\\Queue\\SerializableClosure;\nuse Illuminate\\Contracts\\Auth\\Access\\Gate;\nuse Illuminate\\Contracts\\Support\\Responsable;\nuse Illuminate\\Contracts\\Routing\\UrlGenerator;\nuse Illuminate\\Foundation\\Bus\\PendingDispatch;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Contracts\\Routing\\ResponseFactory;\nuse Illuminate\\Contracts\\Auth\\Factory as AuthFactory;\nuse Illuminate\\Contracts\\View\\Factory as ViewFactory;\nuse Illuminate\\Http\\Exceptions\\HttpResponseException;\nuse Illuminate\\Contracts\\Cookie\\Factory as CookieFactory;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\nuse Illuminate\\Database\\Eloquent\\Factory as EloquentFactory;\nuse Illuminate\\Contracts\\Validation\\Factory as ValidationFactory;\nuse Illuminate\\Contracts\\Broadcasting\\Factory as BroadcastFactory;\n\nif (! function_exists('abort')) {\n    /**\n     * Throw an HttpException with the given data.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response|\\Illuminate\\Contracts\\Support\\Responsable|int     $code\n     * @param  string  $message\n     * @param  array   $headers\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n     */\n    function abort($code, $message = '', array $headers = [])\n    {\n        if ($code instanceof Response) {\n            throw new HttpResponseException($code);\n        } elseif ($code instanceof Responsable) {\n            throw new HttpResponseException($code->toResponse(request()));\n        }\n\n        app()->abort($code, $message, $headers);\n    }\n}\n\nif (! function_exists('abort_if')) {\n    /**\n     * Throw an HttpException with the given data if the given condition is true.\n     *\n     * @param  bool    $boolean\n     * @param  int     $code\n     * @param  string  $message\n     * @param  array   $headers\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n     */\n    function abort_if($boolean, $code, $message = '', array $headers = [])\n    {\n        if ($boolean) {\n            abort($code, $message, $headers);\n        }\n    }\n}\n\nif (! function_exists('abort_unless')) {\n    /**\n     * Throw an HttpException with the given data unless the given condition is true.\n     *\n     * @param  bool    $boolean\n     * @param  int     $code\n     * @param  string  $message\n     * @param  array   $headers\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n     */\n    function abort_unless($boolean, $code, $message = '', array $headers = [])\n    {\n        if (! $boolean) {\n            abort($code, $message, $headers);\n        }\n    }\n}\n\nif (! function_exists('action')) {\n    /**\n     * Generate the URL to a controller action.\n     *\n     * @param  string|array  $name\n     * @param  mixed   $parameters\n     * @param  bool    $absolute\n     * @return string\n     */\n    function action($name, $parameters = [], $absolute = true)\n    {\n        return app('url')->action($name, $parameters, $absolute);\n    }\n}\n\nif (! function_exists('app')) {\n    /**\n     * Get the available container instance.\n     *\n     * @param  string|null  $abstract\n     * @param  array   $parameters\n     * @return mixed|\\Illuminate\\Contracts\\Foundation\\Application\n     */\n    function app($abstract = null, array $parameters = [])\n    {\n        if (is_null($abstract)) {\n            return Container::getInstance();\n        }\n\n        return Container::getInstance()->make($abstract, $parameters);\n    }\n}\n\nif (! function_exists('app_path')) {\n    /**\n     * Get the path to the application folder.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function app_path($path = '')\n    {\n        return app('path').($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n}\n\nif (! function_exists('asset')) {\n    /**\n     * Generate an asset path for the application.\n     *\n     * @param  string  $path\n     * @param  bool|null  $secure\n     * @return string\n     */\n    function asset($path, $secure = null)\n    {\n        return app('url')->asset($path, $secure);\n    }\n}\n\nif (! function_exists('auth')) {\n    /**\n     * Get the available auth instance.\n     *\n     * @param  string|null  $guard\n     * @return \\Illuminate\\Contracts\\Auth\\Factory|\\Illuminate\\Contracts\\Auth\\Guard|\\Illuminate\\Contracts\\Auth\\StatefulGuard\n     */\n    function auth($guard = null)\n    {\n        if (is_null($guard)) {\n            return app(AuthFactory::class);\n        }\n\n        return app(AuthFactory::class)->guard($guard);\n    }\n}\n\nif (! function_exists('back')) {\n    /**\n     * Create a new redirect response to the previous location.\n     *\n     * @param  int    $status\n     * @param  array  $headers\n     * @param  mixed  $fallback\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    function back($status = 302, $headers = [], $fallback = false)\n    {\n        return app('redirect')->back($status, $headers, $fallback);\n    }\n}\n\nif (! function_exists('base_path')) {\n    /**\n     * Get the path to the base of the install.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function base_path($path = '')\n    {\n        return app()->basePath().($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n}\n\nif (! function_exists('bcrypt')) {\n    /**\n     * Hash the given value against the bcrypt algorithm.\n     *\n     * @param  string  $value\n     * @param  array  $options\n     * @return string\n     */\n    function bcrypt($value, $options = [])\n    {\n        return app('hash')->driver('bcrypt')->make($value, $options);\n    }\n}\n\nif (! function_exists('broadcast')) {\n    /**\n     * Begin broadcasting an event.\n     *\n     * @param  mixed|null  $event\n     * @return \\Illuminate\\Broadcasting\\PendingBroadcast\n     */\n    function broadcast($event = null)\n    {\n        return app(BroadcastFactory::class)->event($event);\n    }\n}\n\nif (! function_exists('cache')) {\n    /**\n     * Get / set the specified cache value.\n     *\n     * If an array is passed, we'll assume you want to put to the cache.\n     *\n     * @param  dynamic  key|key,default|data,expiration|null\n     * @return mixed|\\Illuminate\\Cache\\CacheManager\n     *\n     * @throws \\Exception\n     */\n    function cache()\n    {\n        $arguments = func_get_args();\n\n        if (empty($arguments)) {\n            return app('cache');\n        }\n\n        if (is_string($arguments[0])) {\n            return app('cache')->get(...$arguments);\n        }\n\n        if (! is_array($arguments[0])) {\n            throw new Exception(\n                'When setting a value in the cache, you must pass an array of key / value pairs.'\n            );\n        }\n\n        if (! isset($arguments[1])) {\n            throw new Exception(\n                'You must specify an expiration time when setting a value in the cache.'\n            );\n        }\n\n        return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1]);\n    }\n}\n\nif (! function_exists('config')) {\n    /**\n     * Get / set the specified configuration value.\n     *\n     * If an array is passed as the key, we will assume you want to set an array of values.\n     *\n     * @param  array|string|null  $key\n     * @param  mixed  $default\n     * @return mixed|\\Illuminate\\Config\\Repository\n     */\n    function config($key = null, $default = null)\n    {\n        if (is_null($key)) {\n            return app('config');\n        }\n\n        if (is_array($key)) {\n            return app('config')->set($key);\n        }\n\n        return app('config')->get($key, $default);\n    }\n}\n\nif (! function_exists('config_path')) {\n    /**\n     * Get the configuration path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function config_path($path = '')\n    {\n        return app()->make('path.config').($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n}\n\nif (! function_exists('cookie')) {\n    /**\n     * Create a new cookie instance.\n     *\n     * @param  string|null  $name\n     * @param  string|null  $value\n     * @param  int  $minutes\n     * @param  string|null  $path\n     * @param  string|null  $domain\n     * @param  bool  $secure\n     * @param  bool  $httpOnly\n     * @param  bool  $raw\n     * @param  string|null  $sameSite\n     * @return \\Illuminate\\Cookie\\CookieJar|\\Symfony\\Component\\HttpFoundation\\Cookie\n     */\n    function cookie($name = null, $value = null, $minutes = 0, $path = null, $domain = null, $secure = false, $httpOnly = true, $raw = false, $sameSite = null)\n    {\n        $cookie = app(CookieFactory::class);\n\n        if (is_null($name)) {\n            return $cookie;\n        }\n\n        return $cookie->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite);\n    }\n}\n\nif (! function_exists('csrf_field')) {\n    /**\n     * Generate a CSRF token form field.\n     *\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    function csrf_field()\n    {\n        return new HtmlString('<input type=\"hidden\" name=\"_token\" value=\"'.csrf_token().'\">');\n    }\n}\n\nif (! function_exists('csrf_token')) {\n    /**\n     * Get the CSRF token value.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    function csrf_token()\n    {\n        $session = app('session');\n\n        if (isset($session)) {\n            return $session->token();\n        }\n\n        throw new RuntimeException('Application session store not set.');\n    }\n}\n\nif (! function_exists('database_path')) {\n    /**\n     * Get the database path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function database_path($path = '')\n    {\n        return app()->databasePath($path);\n    }\n}\n\nif (! function_exists('decrypt')) {\n    /**\n     * Decrypt the given value.\n     *\n     * @param  string  $value\n     * @param  bool   $unserialize\n     * @return mixed\n     */\n    function decrypt($value, $unserialize = true)\n    {\n        return app('encrypter')->decrypt($value, $unserialize);\n    }\n}\n\nif (! function_exists('dispatch')) {\n    /**\n     * Dispatch a job to its appropriate handler.\n     *\n     * @param  mixed  $job\n     * @return \\Illuminate\\Foundation\\Bus\\PendingDispatch\n     */\n    function dispatch($job)\n    {\n        if ($job instanceof Closure) {\n            $job = new CallQueuedClosure(new SerializableClosure($job));\n        }\n\n        return new PendingDispatch($job);\n    }\n}\n\nif (! function_exists('dispatch_now')) {\n    /**\n     * Dispatch a command to its appropriate handler in the current process.\n     *\n     * @param  mixed  $job\n     * @param  mixed  $handler\n     * @return mixed\n     */\n    function dispatch_now($job, $handler = null)\n    {\n        return app(Dispatcher::class)->dispatchNow($job, $handler);\n    }\n}\n\nif (! function_exists('elixir')) {\n    /**\n     * Get the path to a versioned Elixir file.\n     *\n     * @param  string  $file\n     * @param  string  $buildDirectory\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    function elixir($file, $buildDirectory = 'build')\n    {\n        static $manifest = [];\n        static $manifestPath;\n\n        if (empty($manifest) || $manifestPath !== $buildDirectory) {\n            $path = public_path($buildDirectory.'/rev-manifest.json');\n\n            if (file_exists($path)) {\n                $manifest = json_decode(file_get_contents($path), true);\n                $manifestPath = $buildDirectory;\n            }\n        }\n\n        $file = ltrim($file, '/');\n\n        if (isset($manifest[$file])) {\n            return '/'.trim($buildDirectory.'/'.$manifest[$file], '/');\n        }\n\n        $unversioned = public_path($file);\n\n        if (file_exists($unversioned)) {\n            return '/'.trim($file, '/');\n        }\n\n        throw new InvalidArgumentException(\"File {$file} not defined in asset manifest.\");\n    }\n}\n\nif (! function_exists('encrypt')) {\n    /**\n     * Encrypt the given value.\n     *\n     * @param  mixed  $value\n     * @param  bool   $serialize\n     * @return string\n     */\n    function encrypt($value, $serialize = true)\n    {\n        return app('encrypter')->encrypt($value, $serialize);\n    }\n}\n\nif (! function_exists('event')) {\n    /**\n     * Dispatch an event and call the listeners.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @param  bool  $halt\n     * @return array|null\n     */\n    function event(...$args)\n    {\n        return app('events')->dispatch(...$args);\n    }\n}\n\nif (! function_exists('factory')) {\n    /**\n     * Create a model factory builder for a given class, name, and amount.\n     *\n     * @param  dynamic  class|class,name|class,amount|class,name,amount\n     * @return \\Illuminate\\Database\\Eloquent\\FactoryBuilder\n     */\n    function factory()\n    {\n        $factory = app(EloquentFactory::class);\n\n        $arguments = func_get_args();\n\n        if (isset($arguments[1]) && is_string($arguments[1])) {\n            return $factory->of($arguments[0], $arguments[1])->times($arguments[2] ?? null);\n        } elseif (isset($arguments[1])) {\n            return $factory->of($arguments[0])->times($arguments[1]);\n        }\n\n        return $factory->of($arguments[0]);\n    }\n}\n\nif (! function_exists('info')) {\n    /**\n     * Write some information to the log.\n     *\n     * @param  string  $message\n     * @param  array   $context\n     * @return void\n     */\n    function info($message, $context = [])\n    {\n        app('log')->info($message, $context);\n    }\n}\n\nif (! function_exists('logger')) {\n    /**\n     * Log a debug message to the logs.\n     *\n     * @param  string|null  $message\n     * @param  array  $context\n     * @return \\Illuminate\\Log\\LogManager|null\n     */\n    function logger($message = null, array $context = [])\n    {\n        if (is_null($message)) {\n            return app('log');\n        }\n\n        return app('log')->debug($message, $context);\n    }\n}\n\nif (! function_exists('logs')) {\n    /**\n     * Get a log driver instance.\n     *\n     * @param  string|null  $driver\n     * @return \\Illuminate\\Log\\LogManager|\\Psr\\Log\\LoggerInterface\n     */\n    function logs($driver = null)\n    {\n        return $driver ? app('log')->driver($driver) : app('log');\n    }\n}\n\nif (! function_exists('method_field')) {\n    /**\n     * Generate a form field to spoof the HTTP verb used by forms.\n     *\n     * @param  string  $method\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    function method_field($method)\n    {\n        return new HtmlString('<input type=\"hidden\" name=\"_method\" value=\"'.$method.'\">');\n    }\n}\n\nif (! function_exists('mix')) {\n    /**\n     * Get the path to a versioned Mix file.\n     *\n     * @param  string  $path\n     * @param  string  $manifestDirectory\n     * @return \\Illuminate\\Support\\HtmlString|string\n     *\n     * @throws \\Exception\n     */\n    function mix($path, $manifestDirectory = '')\n    {\n        return app(Mix::class)(...func_get_args());\n    }\n}\n\nif (! function_exists('now')) {\n    /**\n     * Create a new Carbon instance for the current time.\n     *\n     * @param  \\DateTimeZone|string|null $tz\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    function now($tz = null)\n    {\n        return Date::now($tz);\n    }\n}\n\nif (! function_exists('old')) {\n    /**\n     * Retrieve an old input item.\n     *\n     * @param  string|null  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    function old($key = null, $default = null)\n    {\n        return app('request')->old($key, $default);\n    }\n}\n\nif (! function_exists('policy')) {\n    /**\n     * Get a policy instance for a given class.\n     *\n     * @param  object|string  $class\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    function policy($class)\n    {\n        return app(Gate::class)->getPolicyFor($class);\n    }\n}\n\nif (! function_exists('public_path')) {\n    /**\n     * Get the path to the public folder.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function public_path($path = '')\n    {\n        return app()->make('path.public').($path ? DIRECTORY_SEPARATOR.ltrim($path, DIRECTORY_SEPARATOR) : $path);\n    }\n}\n\nif (! function_exists('redirect')) {\n    /**\n     * Get an instance of the redirector.\n     *\n     * @param  string|null  $to\n     * @param  int     $status\n     * @param  array   $headers\n     * @param  bool|null    $secure\n     * @return \\Illuminate\\Routing\\Redirector|\\Illuminate\\Http\\RedirectResponse\n     */\n    function redirect($to = null, $status = 302, $headers = [], $secure = null)\n    {\n        if (is_null($to)) {\n            return app('redirect');\n        }\n\n        return app('redirect')->to($to, $status, $headers, $secure);\n    }\n}\n\nif (! function_exists('report')) {\n    /**\n     * Report an exception.\n     *\n     * @param  \\Throwable  $exception\n     * @return void\n     */\n    function report($exception)\n    {\n        if ($exception instanceof Throwable &&\n            ! $exception instanceof Exception) {\n            $exception = new FatalThrowableError($exception);\n        }\n\n        app(ExceptionHandler::class)->report($exception);\n    }\n}\n\nif (! function_exists('request')) {\n    /**\n     * Get an instance of the current request or an input item from the request.\n     *\n     * @param  array|string|null  $key\n     * @param  mixed   $default\n     * @return \\Illuminate\\Http\\Request|string|array\n     */\n    function request($key = null, $default = null)\n    {\n        if (is_null($key)) {\n            return app('request');\n        }\n\n        if (is_array($key)) {\n            return app('request')->only($key);\n        }\n\n        $value = app('request')->__get($key);\n\n        return is_null($value) ? value($default) : $value;\n    }\n}\n\nif (! function_exists('rescue')) {\n    /**\n     * Catch a potential exception and return a default value.\n     *\n     * @param  callable  $callback\n     * @param  mixed  $rescue\n     * @param  bool  $report\n     * @return mixed\n     */\n    function rescue(callable $callback, $rescue = null, $report = true)\n    {\n        try {\n            return $callback();\n        } catch (Throwable $e) {\n            if ($report) {\n                report($e);\n            }\n\n            return value($rescue);\n        }\n    }\n}\n\nif (! function_exists('resolve')) {\n    /**\n     * Resolve a service from the container.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return mixed\n     */\n    function resolve($name, array $parameters = [])\n    {\n        return app($name, $parameters);\n    }\n}\n\nif (! function_exists('resource_path')) {\n    /**\n     * Get the path to the resources folder.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function resource_path($path = '')\n    {\n        return app()->resourcePath($path);\n    }\n}\n\nif (! function_exists('response')) {\n    /**\n     * Return a new response from the application.\n     *\n     * @param  \\Illuminate\\View\\View|string|array|null  $content\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Contracts\\Routing\\ResponseFactory\n     */\n    function response($content = '', $status = 200, array $headers = [])\n    {\n        $factory = app(ResponseFactory::class);\n\n        if (func_num_args() === 0) {\n            return $factory;\n        }\n\n        return $factory->make($content, $status, $headers);\n    }\n}\n\nif (! function_exists('route')) {\n    /**\n     * Generate the URL to a named route.\n     *\n     * @param  array|string  $name\n     * @param  mixed  $parameters\n     * @param  bool  $absolute\n     * @return string\n     */\n    function route($name, $parameters = [], $absolute = true)\n    {\n        return app('url')->route($name, $parameters, $absolute);\n    }\n}\n\nif (! function_exists('secure_asset')) {\n    /**\n     * Generate an asset path for the application.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function secure_asset($path)\n    {\n        return asset($path, true);\n    }\n}\n\nif (! function_exists('secure_url')) {\n    /**\n     * Generate a HTTPS url for the application.\n     *\n     * @param  string  $path\n     * @param  mixed   $parameters\n     * @return string\n     */\n    function secure_url($path, $parameters = [])\n    {\n        return url($path, $parameters, true);\n    }\n}\n\nif (! function_exists('session')) {\n    /**\n     * Get / set the specified session value.\n     *\n     * If an array is passed as the key, we will assume you want to set an array of values.\n     *\n     * @param  array|string|null  $key\n     * @param  mixed  $default\n     * @return mixed|\\Illuminate\\Session\\Store|\\Illuminate\\Session\\SessionManager\n     */\n    function session($key = null, $default = null)\n    {\n        if (is_null($key)) {\n            return app('session');\n        }\n\n        if (is_array($key)) {\n            return app('session')->put($key);\n        }\n\n        return app('session')->get($key, $default);\n    }\n}\n\nif (! function_exists('storage_path')) {\n    /**\n     * Get the path to the storage folder.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    function storage_path($path = '')\n    {\n        return app('path.storage').($path ? DIRECTORY_SEPARATOR.$path : $path);\n    }\n}\n\nif (! function_exists('today')) {\n    /**\n     * Create a new Carbon instance for the current date.\n     *\n     * @param  \\DateTimeZone|string|null $tz\n     * @return \\Illuminate\\Support\\Carbon\n     */\n    function today($tz = null)\n    {\n        return Date::today($tz);\n    }\n}\n\nif (! function_exists('trans')) {\n    /**\n     * Translate the given message.\n     *\n     * @param  string|null  $key\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return \\Illuminate\\Contracts\\Translation\\Translator|string|array|null\n     */\n    function trans($key = null, $replace = [], $locale = null)\n    {\n        if (is_null($key)) {\n            return app('translator');\n        }\n\n        return app('translator')->trans($key, $replace, $locale);\n    }\n}\n\nif (! function_exists('trans_choice')) {\n    /**\n     * Translates the given message based on a count.\n     *\n     * @param  string  $key\n     * @param  int|array|\\Countable  $number\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return string\n     */\n    function trans_choice($key, $number, array $replace = [], $locale = null)\n    {\n        return app('translator')->transChoice($key, $number, $replace, $locale);\n    }\n}\n\nif (! function_exists('__')) {\n    /**\n     * Translate the given message.\n     *\n     * @param  string  $key\n     * @param  array  $replace\n     * @param  string|null  $locale\n     * @return string|array|null\n     */\n    function __($key, $replace = [], $locale = null)\n    {\n        return app('translator')->getFromJson($key, $replace, $locale);\n    }\n}\n\nif (! function_exists('url')) {\n    /**\n     * Generate a url for the application.\n     *\n     * @param  string  $path\n     * @param  mixed   $parameters\n     * @param  bool|null    $secure\n     * @return \\Illuminate\\Contracts\\Routing\\UrlGenerator|string\n     */\n    function url($path = null, $parameters = [], $secure = null)\n    {\n        if (is_null($path)) {\n            return app(UrlGenerator::class);\n        }\n\n        return app(UrlGenerator::class)->to($path, $parameters, $secure);\n    }\n}\n\nif (! function_exists('validator')) {\n    /**\n     * Create a new Validator instance.\n     *\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return \\Illuminate\\Contracts\\Validation\\Validator|\\Illuminate\\Contracts\\Validation\\Factory\n     */\n    function validator(array $data = [], array $rules = [], array $messages = [], array $customAttributes = [])\n    {\n        $factory = app(ValidationFactory::class);\n\n        if (func_num_args() === 0) {\n            return $factory;\n        }\n\n        return $factory->make($data, $rules, $messages, $customAttributes);\n    }\n}\n\nif (! function_exists('view')) {\n    /**\n     * Get the evaluated view contents for the given view.\n     *\n     * @param  string|null  $view\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array   $data\n     * @param  array   $mergeData\n     * @return \\Illuminate\\View\\View|\\Illuminate\\Contracts\\View\\Factory\n     */\n    function view($view = null, $data = [], $mergeData = [])\n    {\n        $factory = app(ViewFactory::class);\n\n        if (func_num_args() === 0) {\n            return $factory;\n        }\n\n        return $factory->make($view, $data, $mergeData);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Foundation/stubs/facade.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Support\\Facades\\Facade;\n\n/**\n * @see \\DummyTarget\n */\nclass DummyClass extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'DummyTarget';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/AbstractHasher.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nabstract class AbstractHasher\n{\n    /**\n     * Get information about the given hashed value.\n     *\n     * @param  string $hashedValue\n     * @return array\n     */\n    public function info($hashedValue)\n    {\n        return password_get_info($hashedValue);\n    }\n\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array  $options\n     * @return bool\n     */\n    public function check($value, $hashedValue, array $options = [])\n    {\n        if (strlen($hashedValue) === 0) {\n            return false;\n        }\n\n        return password_verify($value, $hashedValue);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/Argon2IdHasher.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nuse RuntimeException;\n\nclass Argon2IdHasher extends ArgonHasher\n{\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array  $options\n     * @return bool\n     */\n    public function check($value, $hashedValue, array $options = [])\n    {\n        if ($this->verifyAlgorithm && $this->info($hashedValue)['algoName'] !== 'argon2id') {\n            throw new RuntimeException('This password does not use the Argon2id algorithm.');\n        }\n\n        if (strlen($hashedValue) === 0) {\n            return false;\n        }\n\n        return password_verify($value, $hashedValue);\n    }\n\n    /**\n     * Get the algorithm that should be used for hashing.\n     *\n     * @return int\n     */\n    protected function algorithm()\n    {\n        return PASSWORD_ARGON2ID;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/ArgonHasher.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nuse RuntimeException;\nuse Illuminate\\Contracts\\Hashing\\Hasher as HasherContract;\n\nclass ArgonHasher extends AbstractHasher implements HasherContract\n{\n    /**\n     * The default memory cost factor.\n     *\n     * @var int\n     */\n    protected $memory = 1024;\n\n    /**\n     * The default time cost factor.\n     *\n     * @var int\n     */\n    protected $time = 2;\n\n    /**\n     * The default threads factor.\n     *\n     * @var int\n     */\n    protected $threads = 2;\n\n    /**\n     * Indicates whether to perform an algorithm check.\n     *\n     * @var bool\n     */\n    protected $verifyAlgorithm = false;\n\n    /**\n     * Create a new hasher instance.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(array $options = [])\n    {\n        $this->time = $options['time'] ?? $this->time;\n        $this->memory = $options['memory'] ?? $this->memory;\n        $this->threads = $options['threads'] ?? $this->threads;\n        $this->verifyAlgorithm = $options['verify'] ?? $this->verifyAlgorithm;\n    }\n\n    /**\n     * Hash the given value.\n     *\n     * @param  string  $value\n     * @param  array  $options\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function make($value, array $options = [])\n    {\n        $hash = password_hash($value, $this->algorithm(), [\n            'memory_cost' => $this->memory($options),\n            'time_cost' => $this->time($options),\n            'threads' => $this->threads($options),\n        ]);\n\n        if ($hash === false) {\n            throw new RuntimeException('Argon2 hashing not supported.');\n        }\n\n        return $hash;\n    }\n\n    /**\n     * Get the algorithm that should be used for hashing.\n     *\n     * @return int\n     */\n    protected function algorithm()\n    {\n        return PASSWORD_ARGON2I;\n    }\n\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array  $options\n     * @return bool\n     */\n    public function check($value, $hashedValue, array $options = [])\n    {\n        if ($this->verifyAlgorithm && $this->info($hashedValue)['algoName'] !== 'argon2i') {\n            throw new RuntimeException('This password does not use the Argon2i algorithm.');\n        }\n\n        return parent::check($value, $hashedValue, $options);\n    }\n\n    /**\n     * Check if the given hash has been hashed using the given options.\n     *\n     * @param  string  $hashedValue\n     * @param  array  $options\n     * @return bool\n     */\n    public function needsRehash($hashedValue, array $options = [])\n    {\n        return password_needs_rehash($hashedValue, $this->algorithm(), [\n            'memory_cost' => $this->memory($options),\n            'time_cost' => $this->time($options),\n            'threads' => $this->threads($options),\n        ]);\n    }\n\n    /**\n     * Set the default password memory factor.\n     *\n     * @param  int  $memory\n     * @return $this\n     */\n    public function setMemory(int $memory)\n    {\n        $this->memory = $memory;\n\n        return $this;\n    }\n\n    /**\n     * Set the default password timing factor.\n     *\n     * @param  int  $time\n     * @return $this\n     */\n    public function setTime(int $time)\n    {\n        $this->time = $time;\n\n        return $this;\n    }\n\n    /**\n     * Set the default password threads factor.\n     *\n     * @param  int  $threads\n     * @return $this\n     */\n    public function setThreads(int $threads)\n    {\n        $this->threads = $threads;\n\n        return $this;\n    }\n\n    /**\n     * Extract the memory cost value from the options array.\n     *\n     * @param  array  $options\n     * @return int\n     */\n    protected function memory(array $options)\n    {\n        return $options['memory'] ?? $this->memory;\n    }\n\n    /**\n     * Extract the time cost value from the options array.\n     *\n     * @param  array  $options\n     * @return int\n     */\n    protected function time(array $options)\n    {\n        return $options['time'] ?? $this->time;\n    }\n\n    /**\n     * Extract the threads value from the options array.\n     *\n     * @param  array  $options\n     * @return int\n     */\n    protected function threads(array $options)\n    {\n        return $options['threads'] ?? $this->threads;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nuse RuntimeException;\nuse Illuminate\\Contracts\\Hashing\\Hasher as HasherContract;\n\nclass BcryptHasher extends AbstractHasher implements HasherContract\n{\n    /**\n     * The default cost factor.\n     *\n     * @var int\n     */\n    protected $rounds = 10;\n\n    /**\n     * Indicates whether to perform an algorithm check.\n     *\n     * @var bool\n     */\n    protected $verifyAlgorithm = false;\n\n    /**\n     * Create a new hasher instance.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(array $options = [])\n    {\n        $this->rounds = $options['rounds'] ?? $this->rounds;\n        $this->verifyAlgorithm = $options['verify'] ?? $this->verifyAlgorithm;\n    }\n\n    /**\n     * Hash the given value.\n     *\n     * @param  string  $value\n     * @param  array   $options\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function make($value, array $options = [])\n    {\n        $hash = password_hash($value, PASSWORD_BCRYPT, [\n            'cost' => $this->cost($options),\n        ]);\n\n        if ($hash === false) {\n            throw new RuntimeException('Bcrypt hashing not supported.');\n        }\n\n        return $hash;\n    }\n\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array  $options\n     * @return bool\n     *\n     * @throws \\RuntimeException\n     */\n    public function check($value, $hashedValue, array $options = [])\n    {\n        if ($this->verifyAlgorithm && $this->info($hashedValue)['algoName'] !== 'bcrypt') {\n            throw new RuntimeException('This password does not use the Bcrypt algorithm.');\n        }\n\n        return parent::check($value, $hashedValue, $options);\n    }\n\n    /**\n     * Check if the given hash has been hashed using the given options.\n     *\n     * @param  string  $hashedValue\n     * @param  array   $options\n     * @return bool\n     */\n    public function needsRehash($hashedValue, array $options = [])\n    {\n        return password_needs_rehash($hashedValue, PASSWORD_BCRYPT, [\n            'cost' => $this->cost($options),\n        ]);\n    }\n\n    /**\n     * Set the default password work factor.\n     *\n     * @param  int  $rounds\n     * @return $this\n     */\n    public function setRounds($rounds)\n    {\n        $this->rounds = (int) $rounds;\n\n        return $this;\n    }\n\n    /**\n     * Extract the cost value from the options array.\n     *\n     * @param  array  $options\n     * @return int\n     */\n    protected function cost(array $options = [])\n    {\n        return $options['rounds'] ?? $this->rounds;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/HashManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nuse Illuminate\\Support\\Manager;\nuse Illuminate\\Contracts\\Hashing\\Hasher;\n\nclass HashManager extends Manager implements Hasher\n{\n    /**\n     * Create an instance of the Bcrypt hash Driver.\n     *\n     * @return \\Illuminate\\Hashing\\BcryptHasher\n     */\n    public function createBcryptDriver()\n    {\n        return new BcryptHasher($this->app['config']['hashing.bcrypt'] ?? []);\n    }\n\n    /**\n     * Create an instance of the Argon2i hash Driver.\n     *\n     * @return \\Illuminate\\Hashing\\ArgonHasher\n     */\n    public function createArgonDriver()\n    {\n        return new ArgonHasher($this->app['config']['hashing.argon'] ?? []);\n    }\n\n    /**\n     * Create an instance of the Argon2id hash Driver.\n     *\n     * @return \\Illuminate\\Hashing\\Argon2IdHasher\n     */\n    public function createArgon2idDriver()\n    {\n        return new Argon2IdHasher($this->app['config']['hashing.argon'] ?? []);\n    }\n\n    /**\n     * Get information about the given hashed value.\n     *\n     * @param  string  $hashedValue\n     * @return array\n     */\n    public function info($hashedValue)\n    {\n        return $this->driver()->info($hashedValue);\n    }\n\n    /**\n     * Hash the given value.\n     *\n     * @param  string  $value\n     * @param  array   $options\n     * @return string\n     */\n    public function make($value, array $options = [])\n    {\n        return $this->driver()->make($value, $options);\n    }\n\n    /**\n     * Check the given plain value against a hash.\n     *\n     * @param  string  $value\n     * @param  string  $hashedValue\n     * @param  array   $options\n     * @return bool\n     */\n    public function check($value, $hashedValue, array $options = [])\n    {\n        return $this->driver()->check($value, $hashedValue, $options);\n    }\n\n    /**\n     * Check if the given hash has been hashed using the given options.\n     *\n     * @param  string  $hashedValue\n     * @param  array   $options\n     * @return bool\n     */\n    public function needsRehash($hashedValue, array $options = [])\n    {\n        return $this->driver()->needsRehash($hashedValue, $options);\n    }\n\n    /**\n     * Get the default driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['hashing.driver'] ?? 'bcrypt';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/HashServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Hashing;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass HashServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('hash', function ($app) {\n            return new HashManager($app);\n        });\n\n        $this->app->singleton('hash.driver', function ($app) {\n            return $app['hash']->driver();\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['hash', 'hash.driver'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Hashing/composer.json",
    "content": "{\n    \"name\": \"illuminate/hashing\",\n    \"description\": \"The Illuminate Hashing package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Hashing\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithContentTypes.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Concerns;\n\nuse Illuminate\\Support\\Str;\n\ntrait InteractsWithContentTypes\n{\n    /**\n     * Determine if the given content types match.\n     *\n     * @param  string  $actual\n     * @param  string  $type\n     * @return bool\n     */\n    public static function matchesType($actual, $type)\n    {\n        if ($actual === $type) {\n            return true;\n        }\n\n        $split = explode('/', $actual);\n\n        return isset($split[1]) && preg_match('#'.preg_quote($split[0], '#').'/.+\\+'.preg_quote($split[1], '#').'#', $type);\n    }\n\n    /**\n     * Determine if the request is sending JSON.\n     *\n     * @return bool\n     */\n    public function isJson()\n    {\n        return Str::contains($this->header('CONTENT_TYPE'), ['/json', '+json']);\n    }\n\n    /**\n     * Determine if the current request probably expects a JSON response.\n     *\n     * @return bool\n     */\n    public function expectsJson()\n    {\n        return ($this->ajax() && ! $this->pjax() && $this->acceptsAnyContentType()) || $this->wantsJson();\n    }\n\n    /**\n     * Determine if the current request is asking for JSON.\n     *\n     * @return bool\n     */\n    public function wantsJson()\n    {\n        $acceptable = $this->getAcceptableContentTypes();\n\n        return isset($acceptable[0]) && Str::contains($acceptable[0], ['/json', '+json']);\n    }\n\n    /**\n     * Determines whether the current requests accepts a given content type.\n     *\n     * @param  string|array  $contentTypes\n     * @return bool\n     */\n    public function accepts($contentTypes)\n    {\n        $accepts = $this->getAcceptableContentTypes();\n\n        if (count($accepts) === 0) {\n            return true;\n        }\n\n        $types = (array) $contentTypes;\n\n        foreach ($accepts as $accept) {\n            if ($accept === '*/*' || $accept === '*') {\n                return true;\n            }\n\n            foreach ($types as $type) {\n                if ($this->matchesType($accept, $type) || $accept === strtok($type, '/').'/*') {\n                    return true;\n                }\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Return the most suitable content type from the given array based on content negotiation.\n     *\n     * @param  string|array  $contentTypes\n     * @return string|null\n     */\n    public function prefers($contentTypes)\n    {\n        $accepts = $this->getAcceptableContentTypes();\n\n        $contentTypes = (array) $contentTypes;\n\n        foreach ($accepts as $accept) {\n            if (in_array($accept, ['*/*', '*'])) {\n                return $contentTypes[0];\n            }\n\n            foreach ($contentTypes as $contentType) {\n                $type = $contentType;\n\n                if (! is_null($mimeType = $this->getMimeType($contentType))) {\n                    $type = $mimeType;\n                }\n\n                if ($this->matchesType($type, $accept) || $accept === strtok($type, '/').'/*') {\n                    return $contentType;\n                }\n            }\n        }\n    }\n\n    /**\n     * Determine if the current request accepts any content type.\n     *\n     * @return bool\n     */\n    public function acceptsAnyContentType()\n    {\n        $acceptable = $this->getAcceptableContentTypes();\n\n        return count($acceptable) === 0 || (\n            isset($acceptable[0]) && ($acceptable[0] === '*/*' || $acceptable[0] === '*')\n        );\n    }\n\n    /**\n     * Determines whether a request accepts JSON.\n     *\n     * @return bool\n     */\n    public function acceptsJson()\n    {\n        return $this->accepts('application/json');\n    }\n\n    /**\n     * Determines whether a request accepts HTML.\n     *\n     * @return bool\n     */\n    public function acceptsHtml()\n    {\n        return $this->accepts('text/html');\n    }\n\n    /**\n     * Get the data format expected in the response.\n     *\n     * @param  string  $default\n     * @return string\n     */\n    public function format($default = 'html')\n    {\n        foreach ($this->getAcceptableContentTypes() as $type) {\n            if ($format = $this->getFormat($type)) {\n                return $format;\n            }\n        }\n\n        return $default;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithFlashData.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Concerns;\n\ntrait InteractsWithFlashData\n{\n    /**\n     * Retrieve an old input item.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array\n     */\n    public function old($key = null, $default = null)\n    {\n        return $this->hasSession() ? $this->session()->getOldInput($key, $default) : $default;\n    }\n\n    /**\n     * Flash the input for the current request to the session.\n     *\n     * @return void\n     */\n    public function flash()\n    {\n        $this->session()->flashInput($this->input());\n    }\n\n    /**\n     * Flash only some of the input to the session.\n     *\n     * @param  array|mixed  $keys\n     * @return void\n     */\n    public function flashOnly($keys)\n    {\n        $this->session()->flashInput(\n            $this->only(is_array($keys) ? $keys : func_get_args())\n        );\n    }\n\n    /**\n     * Flash only some of the input to the session.\n     *\n     * @param  array|mixed  $keys\n     * @return void\n     */\n    public function flashExcept($keys)\n    {\n        $this->session()->flashInput(\n            $this->except(is_array($keys) ? $keys : func_get_args())\n        );\n    }\n\n    /**\n     * Flush all of the old input from the session.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        $this->session()->flashInput([]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Concerns/InteractsWithInput.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Concerns;\n\nuse stdClass;\nuse SplFileInfo;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\UploadedFile;\n\ntrait InteractsWithInput\n{\n    /**\n     * Retrieve a server variable from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function server($key = null, $default = null)\n    {\n        return $this->retrieveItem('server', $key, $default);\n    }\n\n    /**\n     * Determine if a header is set on the request.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasHeader($key)\n    {\n        return ! is_null($this->header($key));\n    }\n\n    /**\n     * Retrieve a header from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function header($key = null, $default = null)\n    {\n        return $this->retrieveItem('headers', $key, $default);\n    }\n\n    /**\n     * Get the bearer token from the request headers.\n     *\n     * @return string|null\n     */\n    public function bearerToken()\n    {\n        $header = $this->header('Authorization', '');\n\n        if (Str::startsWith($header, 'Bearer ')) {\n            return Str::substr($header, 7);\n        }\n    }\n\n    /**\n     * Determine if the request contains a given input item key.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function exists($key)\n    {\n        return $this->has($key);\n    }\n\n    /**\n     * Determine if the request contains a given input item key.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        $keys = is_array($key) ? $key : func_get_args();\n\n        $input = $this->all();\n\n        foreach ($keys as $value) {\n            if (! Arr::has($input, $value)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Determine if the request contains any of the given inputs.\n     *\n     * @param  string|array  $keys\n     * @return bool\n     */\n    public function hasAny($keys)\n    {\n        $keys = is_array($keys) ? $keys : func_get_args();\n\n        $input = $this->all();\n\n        foreach ($keys as $key) {\n            if (Arr::has($input, $key)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the request contains a non-empty value for an input item.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function filled($key)\n    {\n        $keys = is_array($key) ? $key : func_get_args();\n\n        foreach ($keys as $value) {\n            if ($this->isEmptyString($value)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Determine if the request contains a non-empty value for any of the given inputs.\n     *\n     * @param  string|array  $keys\n     * @return bool\n     */\n    public function anyFilled($keys)\n    {\n        $keys = is_array($keys) ? $keys : func_get_args();\n\n        foreach ($keys as $key) {\n            if ($this->filled($key)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the given input key is an empty string for \"has\".\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    protected function isEmptyString($key)\n    {\n        $value = $this->input($key);\n\n        return ! is_bool($value) && ! is_array($value) && trim((string) $value) === '';\n    }\n\n    /**\n     * Get the keys for all of the input and files.\n     *\n     * @return array\n     */\n    public function keys()\n    {\n        return array_merge(array_keys($this->input()), $this->files->keys());\n    }\n\n    /**\n     * Get all of the input and files for the request.\n     *\n     * @param  array|mixed|null  $keys\n     * @return array\n     */\n    public function all($keys = null)\n    {\n        $input = array_replace_recursive($this->input(), $this->allFiles());\n\n        if (! $keys) {\n            return $input;\n        }\n\n        $results = [];\n\n        foreach (is_array($keys) ? $keys : func_get_args() as $key) {\n            Arr::set($results, $key, Arr::get($input, $key));\n        }\n\n        return $results;\n    }\n\n    /**\n     * Retrieve an input item from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function input($key = null, $default = null)\n    {\n        return data_get(\n            $this->getInputSource()->all() + $this->query->all(), $key, $default\n        );\n    }\n\n    /**\n     * Get a subset containing the provided keys with values from the input data.\n     *\n     * @param  array|mixed  $keys\n     * @return array\n     */\n    public function only($keys)\n    {\n        $results = [];\n\n        $input = $this->all();\n\n        $placeholder = new stdClass;\n\n        foreach (is_array($keys) ? $keys : func_get_args() as $key) {\n            $value = data_get($input, $key, $placeholder);\n\n            if ($value !== $placeholder) {\n                Arr::set($results, $key, $value);\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get all of the input except for a specified array of items.\n     *\n     * @param  array|mixed  $keys\n     * @return array\n     */\n    public function except($keys)\n    {\n        $keys = is_array($keys) ? $keys : func_get_args();\n\n        $results = $this->all();\n\n        Arr::forget($results, $keys);\n\n        return $results;\n    }\n\n    /**\n     * Retrieve a query string item from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function query($key = null, $default = null)\n    {\n        return $this->retrieveItem('query', $key, $default);\n    }\n\n    /**\n     * Retrieve a request payload item from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function post($key = null, $default = null)\n    {\n        return $this->retrieveItem('request', $key, $default);\n    }\n\n    /**\n     * Determine if a cookie is set on the request.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasCookie($key)\n    {\n        return ! is_null($this->cookie($key));\n    }\n\n    /**\n     * Retrieve a cookie from the request.\n     *\n     * @param  string|null  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    public function cookie($key = null, $default = null)\n    {\n        return $this->retrieveItem('cookies', $key, $default);\n    }\n\n    /**\n     * Get an array of all of the files on the request.\n     *\n     * @return array\n     */\n    public function allFiles()\n    {\n        $files = $this->files->all();\n\n        return $this->convertedFiles = $this->convertedFiles ?? $this->convertUploadedFiles($files);\n    }\n\n    /**\n     * Convert the given array of Symfony UploadedFiles to custom Laravel UploadedFiles.\n     *\n     * @param  array  $files\n     * @return array\n     */\n    protected function convertUploadedFiles(array $files)\n    {\n        return array_map(function ($file) {\n            if (is_null($file) || (is_array($file) && empty(array_filter($file)))) {\n                return $file;\n            }\n\n            return is_array($file)\n                        ? $this->convertUploadedFiles($file)\n                        : UploadedFile::createFromBase($file);\n        }, $files);\n    }\n\n    /**\n     * Determine if the uploaded data contains a file.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasFile($key)\n    {\n        if (! is_array($files = $this->file($key))) {\n            $files = [$files];\n        }\n\n        foreach ($files as $file) {\n            if ($this->isValidFile($file)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Check that the given file is a valid file instance.\n     *\n     * @param  mixed  $file\n     * @return bool\n     */\n    protected function isValidFile($file)\n    {\n        return $file instanceof SplFileInfo && $file->getPath() !== '';\n    }\n\n    /**\n     * Retrieve a file from the request.\n     *\n     * @param  string|null  $key\n     * @param  mixed  $default\n     * @return \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]|array|null\n     */\n    public function file($key = null, $default = null)\n    {\n        return data_get($this->allFiles(), $key, $default);\n    }\n\n    /**\n     * Retrieve a parameter item from a given source.\n     *\n     * @param  string  $source\n     * @param  string  $key\n     * @param  string|array|null  $default\n     * @return string|array|null\n     */\n    protected function retrieveItem($source, $key, $default)\n    {\n        if (is_null($key)) {\n            return $this->$source->all();\n        }\n\n        return $this->$source->get($key, $default);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Exceptions/HttpResponseException.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Exceptions;\n\nuse RuntimeException;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nclass HttpResponseException extends RuntimeException\n{\n    /**\n     * The underlying response instance.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected $response;\n\n    /**\n     * Create a new HTTP response exception instance.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @return void\n     */\n    public function __construct(Response $response)\n    {\n        $this->response = $response;\n    }\n\n    /**\n     * Get the underlying response instance.\n     *\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function getResponse()\n    {\n        return $this->response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Exceptions/PostTooLargeException.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Exceptions;\n\nuse Exception;\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpException;\n\nclass PostTooLargeException extends HttpException\n{\n    /**\n     * PostTooLargeException constructor.\n     *\n     * @param  string|null  $message\n     * @param  \\Exception|null  $previous\n     * @param  array  $headers\n     * @param  int  $code\n     * @return void\n     */\n    public function __construct($message = null, Exception $previous = null, array $headers = [], $code = 0)\n    {\n        parent::__construct(413, $message, $previous, $headers, $code);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Exceptions/ThrottleRequestsException.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Exceptions;\n\nuse Exception;\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpException;\n\nclass ThrottleRequestsException extends HttpException\n{\n    /**\n     * Create a new exception instance.\n     *\n     * @param  string|null  $message\n     * @param  \\Exception|null  $previous\n     * @param  array  $headers\n     * @param  int  $code\n     * @return void\n     */\n    public function __construct($message = null, Exception $previous = null, array $headers = [], $code = 0)\n    {\n        parent::__construct(429, $message, $previous, $headers, $code);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/File.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Symfony\\Component\\HttpFoundation\\File\\File as SymfonyFile;\n\nclass File extends SymfonyFile\n{\n    use FileHelpers;\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/FileHelpers.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Illuminate\\Support\\Str;\n\ntrait FileHelpers\n{\n    /**\n     * The cache copy of the file's hash name.\n     *\n     * @var string\n     */\n    protected $hashName = null;\n\n    /**\n     * Get the fully qualified path to the file.\n     *\n     * @return string\n     */\n    public function path()\n    {\n        return $this->getRealPath();\n    }\n\n    /**\n     * Get the file's extension.\n     *\n     * @return string\n     */\n    public function extension()\n    {\n        return $this->guessExtension();\n    }\n\n    /**\n     * Get a filename for the file.\n     *\n     * @param  string|null  $path\n     * @return string\n     */\n    public function hashName($path = null)\n    {\n        if ($path) {\n            $path = rtrim($path, '/').'/';\n        }\n\n        $hash = $this->hashName ?: $this->hashName = Str::random(40);\n\n        if ($extension = $this->guessExtension()) {\n            $extension = '.'.$extension;\n        }\n\n        return $path.$hash.$extension;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse JsonSerializable;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Symfony\\Component\\HttpFoundation\\JsonResponse as BaseJsonResponse;\n\nclass JsonResponse extends BaseJsonResponse\n{\n    use ResponseTrait, Macroable {\n        Macroable::__call as macroCall;\n    }\n\n    /**\n     * Constructor.\n     *\n     * @param  mixed  $data\n     * @param  int    $status\n     * @param  array  $headers\n     * @param  int    $options\n     * @return void\n     */\n    public function __construct($data = null, $status = 200, $headers = [], $options = 0)\n    {\n        $this->encodingOptions = $options;\n\n        parent::__construct($data, $status, $headers);\n    }\n\n    /**\n     * Sets the JSONP callback.\n     *\n     * @param  string|null  $callback\n     * @return $this\n     */\n    public function withCallback($callback = null)\n    {\n        return $this->setCallback($callback);\n    }\n\n    /**\n     * Get the json_decoded data from the response.\n     *\n     * @param  bool  $assoc\n     * @param  int  $depth\n     * @return mixed\n     */\n    public function getData($assoc = false, $depth = 512)\n    {\n        return json_decode($this->data, $assoc, $depth);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setData($data = [])\n    {\n        $this->original = $data;\n\n        if ($data instanceof Jsonable) {\n            $this->data = $data->toJson($this->encodingOptions);\n        } elseif ($data instanceof JsonSerializable) {\n            $this->data = json_encode($data->jsonSerialize(), $this->encodingOptions);\n        } elseif ($data instanceof Arrayable) {\n            $this->data = json_encode($data->toArray(), $this->encodingOptions);\n        } else {\n            $this->data = json_encode($data, $this->encodingOptions);\n        }\n\n        if (! $this->hasValidJson(json_last_error())) {\n            throw new InvalidArgumentException(json_last_error_msg());\n        }\n\n        return $this->update();\n    }\n\n    /**\n     * Determine if an error occurred during JSON encoding.\n     *\n     * @param  int  $jsonError\n     * @return bool\n     */\n    protected function hasValidJson($jsonError)\n    {\n        if ($jsonError === JSON_ERROR_NONE) {\n            return true;\n        }\n\n        return $this->hasEncodingOption(JSON_PARTIAL_OUTPUT_ON_ERROR) &&\n                    in_array($jsonError, [\n                        JSON_ERROR_RECURSION,\n                        JSON_ERROR_INF_OR_NAN,\n                        JSON_ERROR_UNSUPPORTED_TYPE,\n                    ]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setEncodingOptions($options)\n    {\n        $this->encodingOptions = (int) $options;\n\n        return $this->setData($this->getData());\n    }\n\n    /**\n     * Determine if a JSON encoding option is set.\n     *\n     * @param  int  $option\n     * @return bool\n     */\n    public function hasEncodingOption($option)\n    {\n        return (bool) ($this->encodingOptions & $option);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Middleware/CheckResponseForModifications.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Middleware;\n\nuse Closure;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nclass CheckResponseForModifications\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        if ($response instanceof Response) {\n            $response->isNotModified($request);\n        }\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Middleware/FrameGuard.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Middleware;\n\nuse Closure;\n\nclass FrameGuard\n{\n    /**\n     * Handle the given request and get the response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        $response->headers->set('X-Frame-Options', 'SAMEORIGIN', false);\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Middleware/SetCacheHeaders.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Middleware;\n\nuse Closure;\n\nclass SetCacheHeaders\n{\n    /**\n     * Add cache related HTTP headers.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  string|array  $options\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function handle($request, Closure $next, $options = [])\n    {\n        $response = $next($request);\n\n        if (! $request->isMethodCacheable() || ! $response->getContent()) {\n            return $response;\n        }\n\n        if (is_string($options)) {\n            $options = $this->parseOptions($options);\n        }\n\n        if (isset($options['etag']) && $options['etag'] === true) {\n            $options['etag'] = md5($response->getContent());\n        }\n\n        $response->setCache($options);\n        $response->isNotModified($request);\n\n        return $response;\n    }\n\n    /**\n     * Parse the given header options.\n     *\n     * @param  string  $options\n     * @return array\n     */\n    protected function parseOptions($options)\n    {\n        return collect(explode(';', $options))->mapWithKeys(function ($option) {\n            $data = explode('=', $option, 2);\n\n            return [$data[0] => $data[1] ?? true];\n        })->all();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/RedirectResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\MessageBag;\nuse Illuminate\\Support\\ViewErrorBag;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Session\\Store as SessionStore;\nuse Illuminate\\Contracts\\Support\\MessageProvider;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile as SymfonyUploadedFile;\nuse Symfony\\Component\\HttpFoundation\\RedirectResponse as BaseRedirectResponse;\n\nclass RedirectResponse extends BaseRedirectResponse\n{\n    use ForwardsCalls, ResponseTrait, Macroable {\n        Macroable::__call as macroCall;\n    }\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $request;\n\n    /**\n     * The session store instance.\n     *\n     * @var \\Illuminate\\Session\\Store\n     */\n    protected $session;\n\n    /**\n     * Flash a piece of data to the session.\n     *\n     * @param  string|array  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function with($key, $value = null)\n    {\n        $key = is_array($key) ? $key : [$key => $value];\n\n        foreach ($key as $k => $v) {\n            $this->session->flash($k, $v);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add multiple cookies to the response.\n     *\n     * @param  array  $cookies\n     * @return $this\n     */\n    public function withCookies(array $cookies)\n    {\n        foreach ($cookies as $cookie) {\n            $this->headers->setCookie($cookie);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Flash an array of input to the session.\n     *\n     * @param  array|null  $input\n     * @return $this\n     */\n    public function withInput(array $input = null)\n    {\n        $this->session->flashInput($this->removeFilesFromInput(\n            ! is_null($input) ? $input : $this->request->input()\n        ));\n\n        return $this;\n    }\n\n    /**\n     * Remove all uploaded files form the given input array.\n     *\n     * @param  array  $input\n     * @return array\n     */\n    protected function removeFilesFromInput(array $input)\n    {\n        foreach ($input as $key => $value) {\n            if (is_array($value)) {\n                $input[$key] = $this->removeFilesFromInput($value);\n            }\n\n            if ($value instanceof SymfonyUploadedFile) {\n                unset($input[$key]);\n            }\n        }\n\n        return $input;\n    }\n\n    /**\n     * Flash an array of input to the session.\n     *\n     * @return $this\n     */\n    public function onlyInput()\n    {\n        return $this->withInput($this->request->only(func_get_args()));\n    }\n\n    /**\n     * Flash an array of input to the session.\n     *\n     * @return $this\n     */\n    public function exceptInput()\n    {\n        return $this->withInput($this->request->except(func_get_args()));\n    }\n\n    /**\n     * Flash a container of errors to the session.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array|string  $provider\n     * @param  string  $key\n     * @return $this\n     */\n    public function withErrors($provider, $key = 'default')\n    {\n        $value = $this->parseErrors($provider);\n\n        $errors = $this->session->get('errors', new ViewErrorBag);\n\n        if (! $errors instanceof ViewErrorBag) {\n            $errors = new ViewErrorBag;\n        }\n\n        $this->session->flash(\n            'errors', $errors->put($key, $value)\n        );\n\n        return $this;\n    }\n\n    /**\n     * Parse the given errors into an appropriate value.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array|string  $provider\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    protected function parseErrors($provider)\n    {\n        if ($provider instanceof MessageProvider) {\n            return $provider->getMessageBag();\n        }\n\n        return new MessageBag((array) $provider);\n    }\n\n    /**\n     * Get the original response content.\n     *\n     * @return null\n     */\n    public function getOriginalContent()\n    {\n        //\n    }\n\n    /**\n     * Get the request instance.\n     *\n     * @return \\Illuminate\\Http\\Request|null\n     */\n    public function getRequest()\n    {\n        return $this->request;\n    }\n\n    /**\n     * Set the request instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n    }\n\n    /**\n     * Get the session store instance.\n     *\n     * @return \\Illuminate\\Session\\Store|null\n     */\n    public function getSession()\n    {\n        return $this->session;\n    }\n\n    /**\n     * Set the session store instance.\n     *\n     * @param  \\Illuminate\\Session\\Store  $session\n     * @return void\n     */\n    public function setSession(SessionStore $session)\n    {\n        $this->session = $session;\n    }\n\n    /**\n     * Dynamically bind flash data in the session.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        if (Str::startsWith($method, 'with')) {\n            return $this->with(Str::snake(substr($method, 4)), $parameters[0]);\n        }\n\n        static::throwBadMethodCallException($method);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Request.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Closure;\nuse ArrayAccess;\nuse RuntimeException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Symfony\\Component\\HttpFoundation\\ParameterBag;\nuse Symfony\\Component\\HttpFoundation\\Request as SymfonyRequest;\n\nclass Request extends SymfonyRequest implements Arrayable, ArrayAccess\n{\n    use Concerns\\InteractsWithContentTypes,\n        Concerns\\InteractsWithFlashData,\n        Concerns\\InteractsWithInput,\n        Macroable;\n\n    /**\n     * The decoded JSON content for the request.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\ParameterBag|null\n     */\n    protected $json;\n\n    /**\n     * All of the converted files for the request.\n     *\n     * @var array\n     */\n    protected $convertedFiles;\n\n    /**\n     * The user resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected $userResolver;\n\n    /**\n     * The route resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected $routeResolver;\n\n    /**\n     * Create a new Illuminate HTTP request from server variables.\n     *\n     * @return static\n     */\n    public static function capture()\n    {\n        static::enableHttpMethodParameterOverride();\n\n        return static::createFromBase(SymfonyRequest::createFromGlobals());\n    }\n\n    /**\n     * Return the Request instance.\n     *\n     * @return $this\n     */\n    public function instance()\n    {\n        return $this;\n    }\n\n    /**\n     * Get the request method.\n     *\n     * @return string\n     */\n    public function method()\n    {\n        return $this->getMethod();\n    }\n\n    /**\n     * Get the root URL for the application.\n     *\n     * @return string\n     */\n    public function root()\n    {\n        return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/');\n    }\n\n    /**\n     * Get the URL (no query string) for the request.\n     *\n     * @return string\n     */\n    public function url()\n    {\n        return rtrim(preg_replace('/\\?.*/', '', $this->getUri()), '/');\n    }\n\n    /**\n     * Get the full URL for the request.\n     *\n     * @return string\n     */\n    public function fullUrl()\n    {\n        $query = $this->getQueryString();\n\n        $question = $this->getBaseUrl().$this->getPathInfo() === '/' ? '/?' : '?';\n\n        return $query ? $this->url().$question.$query : $this->url();\n    }\n\n    /**\n     * Get the full URL for the request with the added query string parameters.\n     *\n     * @param  array  $query\n     * @return string\n     */\n    public function fullUrlWithQuery(array $query)\n    {\n        $question = $this->getBaseUrl().$this->getPathInfo() === '/' ? '/?' : '?';\n\n        return count($this->query()) > 0\n            ? $this->url().$question.Arr::query(array_merge($this->query(), $query))\n            : $this->fullUrl().$question.Arr::query($query);\n    }\n\n    /**\n     * Get the current path info for the request.\n     *\n     * @return string\n     */\n    public function path()\n    {\n        $pattern = trim($this->getPathInfo(), '/');\n\n        return $pattern == '' ? '/' : $pattern;\n    }\n\n    /**\n     * Get the current decoded path info for the request.\n     *\n     * @return string\n     */\n    public function decodedPath()\n    {\n        return rawurldecode($this->path());\n    }\n\n    /**\n     * Get a segment from the URI (1 based index).\n     *\n     * @param  int  $index\n     * @param  string|null  $default\n     * @return string|null\n     */\n    public function segment($index, $default = null)\n    {\n        return Arr::get($this->segments(), $index - 1, $default);\n    }\n\n    /**\n     * Get all of the segments for the request path.\n     *\n     * @return array\n     */\n    public function segments()\n    {\n        $segments = explode('/', $this->decodedPath());\n\n        return array_values(array_filter($segments, function ($value) {\n            return $value !== '';\n        }));\n    }\n\n    /**\n     * Determine if the current request URI matches a pattern.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function is(...$patterns)\n    {\n        $path = $this->decodedPath();\n\n        foreach ($patterns as $pattern) {\n            if (Str::is($pattern, $path)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the route name matches a given pattern.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function routeIs(...$patterns)\n    {\n        return $this->route() && $this->route()->named(...$patterns);\n    }\n\n    /**\n     * Determine if the current request URL and query string matches a pattern.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function fullUrlIs(...$patterns)\n    {\n        $url = $this->fullUrl();\n\n        foreach ($patterns as $pattern) {\n            if (Str::is($pattern, $url)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the request is the result of an AJAX call.\n     *\n     * @return bool\n     */\n    public function ajax()\n    {\n        return $this->isXmlHttpRequest();\n    }\n\n    /**\n     * Determine if the request is the result of an PJAX call.\n     *\n     * @return bool\n     */\n    public function pjax()\n    {\n        return $this->headers->get('X-PJAX') == true;\n    }\n\n    /**\n     * Determine if the request is the result of an prefetch call.\n     *\n     * @return bool\n     */\n    public function prefetch()\n    {\n        return strcasecmp($this->server->get('HTTP_X_MOZ'), 'prefetch') === 0 ||\n               strcasecmp($this->headers->get('Purpose'), 'prefetch') === 0;\n    }\n\n    /**\n     * Determine if the request is over HTTPS.\n     *\n     * @return bool\n     */\n    public function secure()\n    {\n        return $this->isSecure();\n    }\n\n    /**\n     * Get the client IP address.\n     *\n     * @return string|null\n     */\n    public function ip()\n    {\n        return $this->getClientIp();\n    }\n\n    /**\n     * Get the client IP addresses.\n     *\n     * @return array\n     */\n    public function ips()\n    {\n        return $this->getClientIps();\n    }\n\n    /**\n     * Get the client user agent.\n     *\n     * @return string\n     */\n    public function userAgent()\n    {\n        return $this->headers->get('User-Agent');\n    }\n\n    /**\n     * Merge new input into the current request's input array.\n     *\n     * @param  array  $input\n     * @return $this\n     */\n    public function merge(array $input)\n    {\n        $this->getInputSource()->add($input);\n\n        return $this;\n    }\n\n    /**\n     * Replace the input for the current request.\n     *\n     * @param  array  $input\n     * @return $this\n     */\n    public function replace(array $input)\n    {\n        $this->getInputSource()->replace($input);\n\n        return $this;\n    }\n\n    /**\n     * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel.\n     *\n     * Instead, you may use the \"input\" method.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        return parent::get($key, $default);\n    }\n\n    /**\n     * Get the JSON payload for the request.\n     *\n     * @param  string|null  $key\n     * @param  mixed   $default\n     * @return \\Symfony\\Component\\HttpFoundation\\ParameterBag|mixed\n     */\n    public function json($key = null, $default = null)\n    {\n        if (! isset($this->json)) {\n            $this->json = new ParameterBag((array) json_decode($this->getContent(), true));\n        }\n\n        if (is_null($key)) {\n            return $this->json;\n        }\n\n        return data_get($this->json->all(), $key, $default);\n    }\n\n    /**\n     * Get the input source for the request.\n     *\n     * @return \\Symfony\\Component\\HttpFoundation\\ParameterBag\n     */\n    protected function getInputSource()\n    {\n        if ($this->isJson()) {\n            return $this->json();\n        }\n\n        return in_array($this->getRealMethod(), ['GET', 'HEAD']) ? $this->query : $this->request;\n    }\n\n    /**\n     * Create a new request instance from the given Laravel request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $from\n     * @param  \\Illuminate\\Http\\Request|null  $to\n     * @return static\n     */\n    public static function createFrom(self $from, $to = null)\n    {\n        $request = $to ?: new static;\n\n        $files = $from->files->all();\n\n        $files = is_array($files) ? array_filter($files) : $files;\n\n        $request->initialize(\n            $from->query->all(),\n            $from->request->all(),\n            $from->attributes->all(),\n            $from->cookies->all(),\n            $files,\n            $from->server->all(),\n            $from->getContent()\n        );\n\n        $request->headers->replace($from->headers->all());\n\n        $request->setJson($from->json());\n\n        if ($session = $from->getSession()) {\n            $request->setLaravelSession($session);\n        }\n\n        $request->setUserResolver($from->getUserResolver());\n\n        $request->setRouteResolver($from->getRouteResolver());\n\n        return $request;\n    }\n\n    /**\n     * Create an Illuminate request from a Symfony instance.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @return static\n     */\n    public static function createFromBase(SymfonyRequest $request)\n    {\n        if ($request instanceof static) {\n            return $request;\n        }\n\n        $content = $request->content;\n\n        $newRequest = (new static)->duplicate(\n            $request->query->all(), $request->request->all(), $request->attributes->all(),\n            $request->cookies->all(), $request->files->all(), $request->server->all()\n        );\n\n        $newRequest->headers->replace($request->headers->all());\n\n        $newRequest->content = $content;\n\n        $newRequest->request = $newRequest->getInputSource();\n\n        return $newRequest;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)\n    {\n        return parent::duplicate($query, $request, $attributes, $cookies, $this->filterFiles($files), $server);\n    }\n\n    /**\n     * Filter the given array of files, removing any empty values.\n     *\n     * @param  mixed  $files\n     * @return mixed\n     */\n    protected function filterFiles($files)\n    {\n        if (! $files) {\n            return;\n        }\n\n        foreach ($files as $key => $file) {\n            if (is_array($file)) {\n                $files[$key] = $this->filterFiles($files[$key]);\n            }\n\n            if (empty($files[$key])) {\n                unset($files[$key]);\n            }\n        }\n\n        return $files;\n    }\n\n    /**\n     * Get the session associated with the request.\n     *\n     * @return \\Illuminate\\Session\\Store\n     *\n     * @throws \\RuntimeException\n     */\n    public function session()\n    {\n        if (! $this->hasSession()) {\n            throw new RuntimeException('Session store not set on request.');\n        }\n\n        return $this->session;\n    }\n\n    /**\n     * Get the session associated with the request.\n     *\n     * @return \\Illuminate\\Session\\Store|null\n     */\n    public function getSession()\n    {\n        return $this->session;\n    }\n\n    /**\n     * Set the session instance on the request.\n     *\n     * @param  \\Illuminate\\Contracts\\Session\\Session  $session\n     * @return void\n     */\n    public function setLaravelSession($session)\n    {\n        $this->session = $session;\n    }\n\n    /**\n     * Get the user making the request.\n     *\n     * @param  string|null  $guard\n     * @return mixed\n     */\n    public function user($guard = null)\n    {\n        return call_user_func($this->getUserResolver(), $guard);\n    }\n\n    /**\n     * Get the route handling the request.\n     *\n     * @param  string|null  $param\n     * @param  mixed   $default\n     * @return \\Illuminate\\Routing\\Route|object|string\n     */\n    public function route($param = null, $default = null)\n    {\n        $route = call_user_func($this->getRouteResolver());\n\n        if (is_null($route) || is_null($param)) {\n            return $route;\n        }\n\n        return $route->parameter($param, $default);\n    }\n\n    /**\n     * Get a unique fingerprint for the request / route / IP address.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    public function fingerprint()\n    {\n        if (! $route = $this->route()) {\n            throw new RuntimeException('Unable to generate fingerprint. Route unavailable.');\n        }\n\n        return sha1(implode('|', array_merge(\n            $route->methods(),\n            [$route->getDomain(), $route->uri(), $this->ip()]\n        )));\n    }\n\n    /**\n     * Set the JSON payload for the request.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\ParameterBag  $json\n     * @return $this\n     */\n    public function setJson($json)\n    {\n        $this->json = $json;\n\n        return $this;\n    }\n\n    /**\n     * Get the user resolver callback.\n     *\n     * @return \\Closure\n     */\n    public function getUserResolver()\n    {\n        return $this->userResolver ?: function () {\n            //\n        };\n    }\n\n    /**\n     * Set the user resolver callback.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function setUserResolver(Closure $callback)\n    {\n        $this->userResolver = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get the route resolver callback.\n     *\n     * @return \\Closure\n     */\n    public function getRouteResolver()\n    {\n        return $this->routeResolver ?: function () {\n            //\n        };\n    }\n\n    /**\n     * Set the route resolver callback.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function setRouteResolver(Closure $callback)\n    {\n        $this->routeResolver = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get all of the input and files for the request.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return $this->all();\n    }\n\n    /**\n     * Determine if the given offset exists.\n     *\n     * @param  string  $offset\n     * @return bool\n     */\n    public function offsetExists($offset)\n    {\n        return Arr::has(\n            $this->all() + $this->route()->parameters(),\n            $offset\n        );\n    }\n\n    /**\n     * Get the value at the given offset.\n     *\n     * @param  string  $offset\n     * @return mixed\n     */\n    public function offsetGet($offset)\n    {\n        return $this->__get($offset);\n    }\n\n    /**\n     * Set the value at the given offset.\n     *\n     * @param  string  $offset\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->getInputSource()->set($offset, $value);\n    }\n\n    /**\n     * Remove the value at the given offset.\n     *\n     * @param  string  $offset\n     * @return void\n     */\n    public function offsetUnset($offset)\n    {\n        $this->getInputSource()->remove($offset);\n    }\n\n    /**\n     * Check if an input element is set on the request.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return ! is_null($this->__get($key));\n    }\n\n    /**\n     * Get an input element from the request.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return Arr::get($this->all(), $key, function () use ($key) {\n            return $this->route($key);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/CollectsResources.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Pagination\\AbstractPaginator;\n\ntrait CollectsResources\n{\n    /**\n     * Map the given collection resource into its individual resources.\n     *\n     * @param  mixed  $resource\n     * @return mixed\n     */\n    protected function collectResource($resource)\n    {\n        if ($resource instanceof MissingValue) {\n            return $resource;\n        }\n\n        $collects = $this->collects();\n\n        $this->collection = $collects && ! $resource->first() instanceof $collects\n            ? $resource->mapInto($collects)\n            : $resource->toBase();\n\n        return $resource instanceof AbstractPaginator\n                    ? $resource->setCollection($this->collection)\n                    : $this->collection;\n    }\n\n    /**\n     * Get the resource that this resource collects.\n     *\n     * @return string|null\n     */\n    protected function collects()\n    {\n        if ($this->collects) {\n            return $this->collects;\n        }\n\n        if (Str::endsWith(class_basename($this), 'Collection') &&\n            class_exists($class = Str::replaceLast('Collection', '', get_class($this)))) {\n            return $class;\n        }\n    }\n\n    /**\n     * Get an iterator for the resource collection.\n     *\n     * @return \\ArrayIterator\n     */\n    public function getIterator()\n    {\n        return $this->collection->getIterator();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/ConditionallyLoadsAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\nuse Illuminate\\Support\\Arr;\n\ntrait ConditionallyLoadsAttributes\n{\n    /**\n     * Filter the given data, removing any optional values.\n     *\n     * @param  array  $data\n     * @return array\n     */\n    protected function filter($data)\n    {\n        $index = -1;\n\n        foreach ($data as $key => $value) {\n            $index++;\n\n            if (is_array($value)) {\n                $data[$key] = $this->filter($value);\n\n                continue;\n            }\n\n            if (is_numeric($key) && $value instanceof MergeValue) {\n                return $this->mergeData(\n                    $data, $index, $this->filter($value->data),\n                    array_values($value->data) === $value->data\n                );\n            }\n\n            if ($value instanceof self && is_null($value->resource)) {\n                $data[$key] = null;\n            }\n        }\n\n        return $this->removeMissingValues($data);\n    }\n\n    /**\n     * Merge the given data in at the given index.\n     *\n     * @param  array  $data\n     * @param  int  $index\n     * @param  array  $merge\n     * @param  bool  $numericKeys\n     * @return array\n     */\n    protected function mergeData($data, $index, $merge, $numericKeys)\n    {\n        if ($numericKeys) {\n            return $this->removeMissingValues(array_merge(\n                array_merge(array_slice($data, 0, $index, true), $merge),\n                $this->filter(array_values(array_slice($data, $index + 1, null, true)))\n            ));\n        }\n\n        return $this->removeMissingValues(array_slice($data, 0, $index, true) +\n                $merge +\n                $this->filter(array_slice($data, $index + 1, null, true)));\n    }\n\n    /**\n     * Remove the missing values from the filtered data.\n     *\n     * @param  array  $data\n     * @return array\n     */\n    protected function removeMissingValues($data)\n    {\n        $numericKeys = true;\n\n        foreach ($data as $key => $value) {\n            if (($value instanceof PotentiallyMissing && $value->isMissing()) ||\n                ($value instanceof self &&\n                $value->resource instanceof PotentiallyMissing &&\n                $value->isMissing())) {\n                unset($data[$key]);\n            } else {\n                $numericKeys = $numericKeys && is_numeric($key);\n            }\n        }\n\n        if (property_exists($this, 'preserveKeys') && $this->preserveKeys === true) {\n            return $data;\n        }\n\n        return $numericKeys ? array_values($data) : $data;\n    }\n\n    /**\n     * Retrieve a value based on a given condition.\n     *\n     * @param  bool  $condition\n     * @param  mixed  $value\n     * @param  mixed  $default\n     * @return \\Illuminate\\Http\\Resources\\MissingValue|mixed\n     */\n    protected function when($condition, $value, $default = null)\n    {\n        if ($condition) {\n            return value($value);\n        }\n\n        return func_num_args() === 3 ? value($default) : new MissingValue;\n    }\n\n    /**\n     * Merge a value into the array.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Http\\Resources\\MergeValue|mixed\n     */\n    protected function merge($value)\n    {\n        return $this->mergeWhen(true, $value);\n    }\n\n    /**\n     * Merge a value based on a given condition.\n     *\n     * @param  bool  $condition\n     * @param  mixed  $value\n     * @return \\Illuminate\\Http\\Resources\\MergeValue|mixed\n     */\n    protected function mergeWhen($condition, $value)\n    {\n        return $condition ? new MergeValue(value($value)) : new MissingValue;\n    }\n\n    /**\n     * Merge the given attributes.\n     *\n     * @param  array  $attributes\n     * @return \\Illuminate\\Http\\Resources\\MergeValue\n     */\n    protected function attributes($attributes)\n    {\n        return new MergeValue(\n            Arr::only($this->resource->toArray(), $attributes)\n        );\n    }\n\n    /**\n     * Retrieve a relationship if it has been loaded.\n     *\n     * @param  string  $relationship\n     * @param  mixed  $value\n     * @param  mixed  $default\n     * @return \\Illuminate\\Http\\Resources\\MissingValue|mixed\n     */\n    protected function whenLoaded($relationship, $value = null, $default = null)\n    {\n        if (func_num_args() < 3) {\n            $default = new MissingValue;\n        }\n\n        if (! $this->resource->relationLoaded($relationship)) {\n            return value($default);\n        }\n\n        if (func_num_args() === 1) {\n            return $this->resource->{$relationship};\n        }\n\n        if ($this->resource->{$relationship} === null) {\n            return;\n        }\n\n        return value($value);\n    }\n\n    /**\n     * Execute a callback if the given pivot table has been loaded.\n     *\n     * @param  string  $table\n     * @param  mixed  $value\n     * @param  mixed  $default\n     * @return \\Illuminate\\Http\\Resources\\MissingValue|mixed\n     */\n    protected function whenPivotLoaded($table, $value, $default = null)\n    {\n        return $this->whenPivotLoadedAs('pivot', ...func_get_args());\n    }\n\n    /**\n     * Execute a callback if the given pivot table with a custom accessor has been loaded.\n     *\n     * @param  string  $accessor\n     * @param  string  $table\n     * @param  mixed  $value\n     * @param  mixed  $default\n     * @return \\Illuminate\\Http\\Resources\\MissingValue|mixed\n     */\n    protected function whenPivotLoadedAs($accessor, $table, $value, $default = null)\n    {\n        if (func_num_args() === 3) {\n            $default = new MissingValue;\n        }\n\n        return $this->when(\n            $this->resource->$accessor &&\n            ($this->resource->$accessor instanceof $table ||\n            $this->resource->$accessor->getTable() === $table),\n            ...[$value, $default]\n        );\n    }\n\n    /**\n     * Transform the given value if it is present.\n     *\n     * @param  mixed  $value\n     * @param  callable  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    protected function transform($value, callable $callback, $default = null)\n    {\n        return transform(\n            $value, $callback, func_num_args() === 3 ? $default : new MissingValue\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\nuse Exception;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\n\ntrait DelegatesToResource\n{\n    use ForwardsCalls;\n\n    /**\n     * Get the value of the resource's route key.\n     *\n     * @return mixed\n     */\n    public function getRouteKey()\n    {\n        return $this->resource->getRouteKey();\n    }\n\n    /**\n     * Get the route key for the resource.\n     *\n     * @return string\n     */\n    public function getRouteKeyName()\n    {\n        return $this->resource->getRouteKeyName();\n    }\n\n    /**\n     * Retrieve the model for a bound value.\n     *\n     * @param  mixed  $value\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    public function resolveRouteBinding($value)\n    {\n        throw new Exception('Resources may not be implicitly resolved from route bindings.');\n    }\n\n    /**\n     * Determine if the given attribute exists.\n     *\n     * @param  mixed  $offset\n     * @return bool\n     */\n    public function offsetExists($offset)\n    {\n        return array_key_exists($offset, $this->resource);\n    }\n\n    /**\n     * Get the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @return mixed\n     */\n    public function offsetGet($offset)\n    {\n        return $this->resource[$offset];\n    }\n\n    /**\n     * Set the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->resource[$offset] = $value;\n    }\n\n    /**\n     * Unset the value for a given offset.\n     *\n     * @param  mixed  $offset\n     * @return void\n     */\n    public function offsetUnset($offset)\n    {\n        unset($this->resource[$offset]);\n    }\n\n    /**\n     * Determine if an attribute exists on the resource.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return isset($this->resource->{$key});\n    }\n\n    /**\n     * Unset an attribute on the resource.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function __unset($key)\n    {\n        unset($this->resource->{$key});\n    }\n\n    /**\n     * Dynamically get properties from the underlying resource.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->resource->{$key};\n    }\n\n    /**\n     * Dynamically pass method calls to the underlying resource.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->forwardCallTo($this->resource, $method, $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/AnonymousResourceCollection.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nclass AnonymousResourceCollection extends ResourceCollection\n{\n    /**\n     * The name of the resource being collected.\n     *\n     * @var string\n     */\n    public $collects;\n\n    /**\n     * Create a new anonymous resource collection.\n     *\n     * @param  mixed  $resource\n     * @param  string  $collects\n     * @return void\n     */\n    public function __construct($resource, $collects)\n    {\n        $this->collects = $collects;\n\n        parent::__construct($resource);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nuse ArrayAccess;\nuse JsonSerializable;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Routing\\UrlRoutable;\nuse Illuminate\\Contracts\\Support\\Responsable;\nuse Illuminate\\Http\\Resources\\DelegatesToResource;\nuse Illuminate\\Http\\Resources\\ConditionallyLoadsAttributes;\n\nclass JsonResource implements ArrayAccess, JsonSerializable, Responsable, UrlRoutable\n{\n    use ConditionallyLoadsAttributes, DelegatesToResource;\n\n    /**\n     * The resource instance.\n     *\n     * @var mixed\n     */\n    public $resource;\n\n    /**\n     * The additional data that should be added to the top-level resource array.\n     *\n     * @var array\n     */\n    public $with = [];\n\n    /**\n     * The additional meta data that should be added to the resource response.\n     *\n     * Added during response construction by the developer.\n     *\n     * @var array\n     */\n    public $additional = [];\n\n    /**\n     * The \"data\" wrapper that should be applied.\n     *\n     * @var string\n     */\n    public static $wrap = 'data';\n\n    /**\n     * Create a new resource instance.\n     *\n     * @param  mixed  $resource\n     * @return void\n     */\n    public function __construct($resource)\n    {\n        $this->resource = $resource;\n    }\n\n    /**\n     * Create a new resource instance.\n     *\n     * @param  mixed  ...$parameters\n     * @return static\n     */\n    public static function make(...$parameters)\n    {\n        return new static(...$parameters);\n    }\n\n    /**\n     * Create new anonymous resource collection.\n     *\n     * @param  mixed  $resource\n     * @return \\Illuminate\\Http\\Resources\\Json\\AnonymousResourceCollection\n     */\n    public static function collection($resource)\n    {\n        return tap(new AnonymousResourceCollection($resource, static::class), function ($collection) {\n            if (property_exists(static::class, 'preserveKeys')) {\n                $collection->preserveKeys = (new static([]))->preserveKeys === true;\n            }\n        });\n    }\n\n    /**\n     * Resolve the resource to an array.\n     *\n     * @param  \\Illuminate\\Http\\Request|null  $request\n     * @return array\n     */\n    public function resolve($request = null)\n    {\n        $data = $this->toArray(\n            $request = $request ?: Container::getInstance()->make('request')\n        );\n\n        if ($data instanceof Arrayable) {\n            $data = $data->toArray();\n        } elseif ($data instanceof JsonSerializable) {\n            $data = $data->jsonSerialize();\n        }\n\n        return $this->filter((array) $data);\n    }\n\n    /**\n     * Transform the resource into an array.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function toArray($request)\n    {\n        if (is_null($this->resource)) {\n            return [];\n        }\n\n        return is_array($this->resource)\n            ? $this->resource\n            : $this->resource->toArray();\n    }\n\n    /**\n     * Get any additional data that should be returned with the resource array.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function with($request)\n    {\n        return $this->with;\n    }\n\n    /**\n     * Add additional meta data to the resource response.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function additional(array $data)\n    {\n        $this->additional = $data;\n\n        return $this;\n    }\n\n    /**\n     * Customize the response for a request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Http\\JsonResponse  $response\n     * @return void\n     */\n    public function withResponse($request, $response)\n    {\n        //\n    }\n\n    /**\n     * Set the string that should wrap the outer-most resource array.\n     *\n     * @param  string  $value\n     * @return void\n     */\n    public static function wrap($value)\n    {\n        static::$wrap = $value;\n    }\n\n    /**\n     * Disable wrapping of the outer-most resource array.\n     *\n     * @return void\n     */\n    public static function withoutWrapping()\n    {\n        static::$wrap = null;\n    }\n\n    /**\n     * Transform the resource into an HTTP response.\n     *\n     * @param  \\Illuminate\\Http\\Request|null  $request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function response($request = null)\n    {\n        return $this->toResponse(\n            $request ?: Container::getInstance()->make('request')\n        );\n    }\n\n    /**\n     * Create an HTTP response that represents the object.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function toResponse($request)\n    {\n        return (new ResourceResponse($this))->toResponse($request);\n    }\n\n    /**\n     * Prepare the resource for JSON serialization.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->resolve(Container::getInstance()->make('request'));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nuse Illuminate\\Support\\Arr;\n\nclass PaginatedResourceResponse extends ResourceResponse\n{\n    /**\n     * Create an HTTP response that represents the object.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function toResponse($request)\n    {\n        return tap(response()->json(\n            $this->wrap(\n                $this->resource->resolve($request),\n                array_merge_recursive(\n                    $this->paginationInformation($request),\n                    $this->resource->with($request),\n                    $this->resource->additional\n                )\n            ),\n            $this->calculateStatus()\n        ), function ($response) use ($request) {\n            $response->original = $this->resource->resource->pluck('resource');\n\n            $this->resource->withResponse($request, $response);\n        });\n    }\n\n    /**\n     * Add the pagination information to the response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function paginationInformation($request)\n    {\n        $paginated = $this->resource->resource->toArray();\n\n        return [\n            'links' => $this->paginationLinks($paginated),\n            'meta' => $this->meta($paginated),\n        ];\n    }\n\n    /**\n     * Get the pagination links for the response.\n     *\n     * @param  array  $paginated\n     * @return array\n     */\n    protected function paginationLinks($paginated)\n    {\n        return [\n            'first' => $paginated['first_page_url'] ?? null,\n            'last' => $paginated['last_page_url'] ?? null,\n            'prev' => $paginated['prev_page_url'] ?? null,\n            'next' => $paginated['next_page_url'] ?? null,\n        ];\n    }\n\n    /**\n     * Gather the meta data for the response.\n     *\n     * @param  array  $paginated\n     * @return array\n     */\n    protected function meta($paginated)\n    {\n        return Arr::except($paginated, [\n            'data',\n            'first_page_url',\n            'last_page_url',\n            'prev_page_url',\n            'next_page_url',\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/Resource.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nclass Resource extends JsonResource\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nuse Countable;\nuse IteratorAggregate;\nuse Illuminate\\Pagination\\AbstractPaginator;\nuse Illuminate\\Http\\Resources\\CollectsResources;\n\nclass ResourceCollection extends JsonResource implements Countable, IteratorAggregate\n{\n    use CollectsResources;\n\n    /**\n     * The resource that this resource collects.\n     *\n     * @var string\n     */\n    public $collects;\n\n    /**\n     * The mapped collection instance.\n     *\n     * @var \\Illuminate\\Support\\Collection\n     */\n    public $collection;\n\n    /**\n     * Create a new resource instance.\n     *\n     * @param  mixed  $resource\n     * @return void\n     */\n    public function __construct($resource)\n    {\n        parent::__construct($resource);\n\n        $this->resource = $this->collectResource($resource);\n    }\n\n    /**\n     * Return the count of items in the resource collection.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return $this->collection->count();\n    }\n\n    /**\n     * Transform the resource into a JSON array.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function toArray($request)\n    {\n        return $this->collection->map->toArray($request)->all();\n    }\n\n    /**\n     * Create an HTTP response that represents the object.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function toResponse($request)\n    {\n        return $this->resource instanceof AbstractPaginator\n                    ? (new PaginatedResourceResponse($this))->toResponse($request)\n                    : parent::toResponse($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceResponse.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources\\Json;\n\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Contracts\\Support\\Responsable;\n\nclass ResourceResponse implements Responsable\n{\n    /**\n     * The underlying resource.\n     *\n     * @var mixed\n     */\n    public $resource;\n\n    /**\n     * Create a new resource response.\n     *\n     * @param  mixed  $resource\n     * @return void\n     */\n    public function __construct($resource)\n    {\n        $this->resource = $resource;\n    }\n\n    /**\n     * Create an HTTP response that represents the object.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function toResponse($request)\n    {\n        return tap(response()->json(\n            $this->wrap(\n                $this->resource->resolve($request),\n                $this->resource->with($request),\n                $this->resource->additional\n            ),\n            $this->calculateStatus()\n        ), function ($response) use ($request) {\n            $response->original = $this->resource->resource;\n\n            $this->resource->withResponse($request, $response);\n        });\n    }\n\n    /**\n     * Wrap the given data if necessary.\n     *\n     * @param  array  $data\n     * @param  array  $with\n     * @param  array  $additional\n     * @return array\n     */\n    protected function wrap($data, $with = [], $additional = [])\n    {\n        if ($data instanceof Collection) {\n            $data = $data->all();\n        }\n\n        if ($this->haveDefaultWrapperAndDataIsUnwrapped($data)) {\n            $data = [$this->wrapper() => $data];\n        } elseif ($this->haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional)) {\n            $data = [($this->wrapper() ?? 'data') => $data];\n        }\n\n        return array_merge_recursive($data, $with, $additional);\n    }\n\n    /**\n     * Determine if we have a default wrapper and the given data is unwrapped.\n     *\n     * @param  array  $data\n     * @return bool\n     */\n    protected function haveDefaultWrapperAndDataIsUnwrapped($data)\n    {\n        return $this->wrapper() && ! array_key_exists($this->wrapper(), $data);\n    }\n\n    /**\n     * Determine if \"with\" data has been added and our data is unwrapped.\n     *\n     * @param  array  $data\n     * @param  array  $with\n     * @param  array  $additional\n     * @return bool\n     */\n    protected function haveAdditionalInformationAndDataIsUnwrapped($data, $with, $additional)\n    {\n        return (! empty($with) || ! empty($additional)) &&\n               (! $this->wrapper() ||\n                ! array_key_exists($this->wrapper(), $data));\n    }\n\n    /**\n     * Get the default data wrapper for the resource.\n     *\n     * @return string\n     */\n    protected function wrapper()\n    {\n        return get_class($this->resource)::$wrap;\n    }\n\n    /**\n     * Calculate the appropriate status code for the response.\n     *\n     * @return int\n     */\n    protected function calculateStatus()\n    {\n        return $this->resource->resource instanceof Model &&\n               $this->resource->resource->wasRecentlyCreated ? 201 : 200;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/MergeValue.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\nuse JsonSerializable;\nuse Illuminate\\Support\\Collection;\n\nclass MergeValue\n{\n    /**\n     * The data to be merged.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * Create new merge value instance.\n     *\n     * @param  \\Illuminate\\Support\\Collection|\\JsonSerializable|array  $data\n     * @return void\n     */\n    public function __construct($data)\n    {\n        if ($data instanceof Collection) {\n            $this->data = $data->all();\n        } elseif ($data instanceof JsonSerializable) {\n            $this->data = $data->jsonSerialize();\n        } else {\n            $this->data = $data;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/MissingValue.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\nclass MissingValue implements PotentiallyMissing\n{\n    /**\n     * Determine if the object should be considered \"missing\".\n     *\n     * @return bool\n     */\n    public function isMissing()\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Resources/PotentiallyMissing.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Resources;\n\ninterface PotentiallyMissing\n{\n    /**\n     * Determine if the object should be considered \"missing\".\n     *\n     * @return bool\n     */\n    public function isMissing();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Response.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse ArrayObject;\nuse JsonSerializable;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Support\\Renderable;\nuse Symfony\\Component\\HttpFoundation\\Response as BaseResponse;\n\nclass Response extends BaseResponse\n{\n    use ResponseTrait, Macroable {\n        Macroable::__call as macroCall;\n    }\n\n    /**\n     * Set the content on the response.\n     *\n     * @param  mixed  $content\n     * @return $this\n     */\n    public function setContent($content)\n    {\n        $this->original = $content;\n\n        // If the content is \"JSONable\" we will set the appropriate header and convert\n        // the content to JSON. This is useful when returning something like models\n        // from routes that will be automatically transformed to their JSON form.\n        if ($this->shouldBeJson($content)) {\n            $this->header('Content-Type', 'application/json');\n\n            $content = $this->morphToJson($content);\n        }\n\n        // If this content implements the \"Renderable\" interface then we will call the\n        // render method on the object so we will avoid any \"__toString\" exceptions\n        // that might be thrown and have their errors obscured by PHP's handling.\n        elseif ($content instanceof Renderable) {\n            $content = $content->render();\n        }\n\n        parent::setContent($content);\n\n        return $this;\n    }\n\n    /**\n     * Determine if the given content should be turned into JSON.\n     *\n     * @param  mixed  $content\n     * @return bool\n     */\n    protected function shouldBeJson($content)\n    {\n        return $content instanceof Arrayable ||\n               $content instanceof Jsonable ||\n               $content instanceof ArrayObject ||\n               $content instanceof JsonSerializable ||\n               is_array($content);\n    }\n\n    /**\n     * Morph the given content into JSON.\n     *\n     * @param  mixed   $content\n     * @return string\n     */\n    protected function morphToJson($content)\n    {\n        if ($content instanceof Jsonable) {\n            return $content->toJson();\n        } elseif ($content instanceof Arrayable) {\n            return json_encode($content->toArray());\n        }\n\n        return json_encode($content);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Exception;\nuse Symfony\\Component\\HttpFoundation\\HeaderBag;\nuse Illuminate\\Http\\Exceptions\\HttpResponseException;\n\ntrait ResponseTrait\n{\n    /**\n     * The original content of the response.\n     *\n     * @var mixed\n     */\n    public $original;\n\n    /**\n     * The exception that triggered the error response (if applicable).\n     *\n     * @var \\Exception|null\n     */\n    public $exception;\n\n    /**\n     * Get the status code for the response.\n     *\n     * @return int\n     */\n    public function status()\n    {\n        return $this->getStatusCode();\n    }\n\n    /**\n     * Get the content of the response.\n     *\n     * @return string\n     */\n    public function content()\n    {\n        return $this->getContent();\n    }\n\n    /**\n     * Get the original response content.\n     *\n     * @return mixed\n     */\n    public function getOriginalContent()\n    {\n        $original = $this->original;\n\n        return $original instanceof self ? $original->{__FUNCTION__}() : $original;\n    }\n\n    /**\n     * Set a header on the Response.\n     *\n     * @param  string  $key\n     * @param  array|string  $values\n     * @param  bool    $replace\n     * @return $this\n     */\n    public function header($key, $values, $replace = true)\n    {\n        $this->headers->set($key, $values, $replace);\n\n        return $this;\n    }\n\n    /**\n     * Add an array of headers to the response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\HeaderBag|array  $headers\n     * @return $this\n     */\n    public function withHeaders($headers)\n    {\n        if ($headers instanceof HeaderBag) {\n            $headers = $headers->all();\n        }\n\n        foreach ($headers as $key => $value) {\n            $this->headers->set($key, $value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a cookie to the response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Cookie|mixed  $cookie\n     * @return $this\n     */\n    public function cookie($cookie)\n    {\n        return call_user_func_array([$this, 'withCookie'], func_get_args());\n    }\n\n    /**\n     * Add a cookie to the response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Cookie|mixed  $cookie\n     * @return $this\n     */\n    public function withCookie($cookie)\n    {\n        if (is_string($cookie) && function_exists('cookie')) {\n            $cookie = call_user_func_array('cookie', func_get_args());\n        }\n\n        $this->headers->setCookie($cookie);\n\n        return $this;\n    }\n\n    /**\n     * Get the callback of the response.\n     *\n     * @return string|null\n     */\n    public function getCallback()\n    {\n        return $this->callback ?? null;\n    }\n\n    /**\n     * Set the exception to attach to the response.\n     *\n     * @param  \\Exception  $e\n     * @return $this\n     */\n    public function withException(Exception $e)\n    {\n        $this->exception = $e;\n\n        return $this;\n    }\n\n    /**\n     * Throws the response in a HttpResponseException instance.\n     *\n     * @throws \\Illuminate\\Http\\Exceptions\\HttpResponseException\n     */\n    public function throwResponse()\n    {\n        throw new HttpResponseException($this);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Testing/File.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Testing;\n\nuse Illuminate\\Http\\UploadedFile;\n\nclass File extends UploadedFile\n{\n    /**\n     * The name of the file.\n     *\n     * @var string\n     */\n    public $name;\n\n    /**\n     * The temporary file resource.\n     *\n     * @var resource\n     */\n    public $tempFile;\n\n    /**\n     * The \"size\" to report.\n     *\n     * @var int\n     */\n    public $sizeToReport;\n\n    /**\n     * Create a new file instance.\n     *\n     * @param  string  $name\n     * @param  resource  $tempFile\n     * @return void\n     */\n    public function __construct($name, $tempFile)\n    {\n        $this->name = $name;\n        $this->tempFile = $tempFile;\n\n        parent::__construct(\n            $this->tempFilePath(), $name, $this->getMimeType(),\n            null, true\n        );\n    }\n\n    /**\n     * Create a new fake file.\n     *\n     * @param  string  $name\n     * @param  int  $kilobytes\n     * @return \\Illuminate\\Http\\Testing\\File\n     */\n    public static function create($name, $kilobytes = 0)\n    {\n        return (new FileFactory)->create($name, $kilobytes);\n    }\n\n    /**\n     * Create a new fake image.\n     *\n     * @param  string  $name\n     * @param  int  $width\n     * @param  int  $height\n     * @return \\Illuminate\\Http\\Testing\\File\n     */\n    public static function image($name, $width = 10, $height = 10)\n    {\n        return (new FileFactory)->image($name, $width, $height);\n    }\n\n    /**\n     * Set the \"size\" of the file in kilobytes.\n     *\n     * @param  int  $kilobytes\n     * @return $this\n     */\n    public function size($kilobytes)\n    {\n        $this->sizeToReport = $kilobytes * 1024;\n\n        return $this;\n    }\n\n    /**\n     * Get the size of the file.\n     *\n     * @return int\n     */\n    public function getSize()\n    {\n        return $this->sizeToReport ?: parent::getSize();\n    }\n\n    /**\n     * Get the MIME type for the file.\n     *\n     * @return string\n     */\n    public function getMimeType()\n    {\n        return MimeType::from($this->name);\n    }\n\n    /**\n     * Get the path to the temporary file.\n     *\n     * @return string\n     */\n    protected function tempFilePath()\n    {\n        return stream_get_meta_data($this->tempFile)['uri'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Testing/FileFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Testing;\n\nuse Illuminate\\Support\\Str;\n\nclass FileFactory\n{\n    /**\n     * Create a new fake file.\n     *\n     * @param  string  $name\n     * @param  int  $kilobytes\n     * @return \\Illuminate\\Http\\Testing\\File\n     */\n    public function create($name, $kilobytes = 0)\n    {\n        return tap(new File($name, tmpfile()), function ($file) use ($kilobytes) {\n            $file->sizeToReport = $kilobytes * 1024;\n        });\n    }\n\n    /**\n     * Create a new fake image.\n     *\n     * @param  string  $name\n     * @param  int  $width\n     * @param  int  $height\n     * @return \\Illuminate\\Http\\Testing\\File\n     */\n    public function image($name, $width = 10, $height = 10)\n    {\n        return new File($name, $this->generateImage(\n            $width, $height, Str::endsWith(Str::lower($name), ['.jpg', '.jpeg']) ? 'jpeg' : 'png'\n        ));\n    }\n\n    /**\n     * Generate a dummy image of the given width and height.\n     *\n     * @param  int  $width\n     * @param  int  $height\n     * @param  string  $type\n     * @return resource\n     */\n    protected function generateImage($width, $height, $type)\n    {\n        return tap(tmpfile(), function ($temp) use ($width, $height, $type) {\n            ob_start();\n\n            $image = imagecreatetruecolor($width, $height);\n\n            switch ($type) {\n                case 'jpeg':\n                    imagejpeg($image);\n                    break;\n                case 'png':\n                    imagepng($image);\n                    break;\n            }\n\n            fwrite($temp, ob_get_clean());\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/Testing/MimeType.php",
    "content": "<?php\n\nnamespace Illuminate\\Http\\Testing;\n\nclass MimeType\n{\n    /**\n     * An array of extension to MIME types.\n     *\n     * @var array\n     */\n    protected static $mimes = [\n        'ez' => 'application/andrew-inset',\n        'aw' => 'application/applixware',\n        'atom' => 'application/atom+xml',\n        'atomcat' => 'application/atomcat+xml',\n        'atomsvc' => 'application/atomsvc+xml',\n        'ccxml' => 'application/ccxml+xml',\n        'cdmia' => 'application/cdmi-capability',\n        'cdmic' => 'application/cdmi-container',\n        'cdmid' => 'application/cdmi-domain',\n        'cdmio' => 'application/cdmi-object',\n        'cdmiq' => 'application/cdmi-queue',\n        'cu' => 'application/cu-seeme',\n        'davmount' => 'application/davmount+xml',\n        'dbk' => 'application/docbook+xml',\n        'dssc' => 'application/dssc+der',\n        'xdssc' => 'application/dssc+xml',\n        'ecma' => 'application/ecmascript',\n        'emma' => 'application/emma+xml',\n        'epub' => 'application/epub+zip',\n        'exi' => 'application/exi',\n        'pfr' => 'application/font-tdpfr',\n        'gml' => 'application/gml+xml',\n        'gpx' => 'application/gpx+xml',\n        'gxf' => 'application/gxf',\n        'stk' => 'application/hyperstudio',\n        'ink' => 'application/inkml+xml',\n        'ipfix' => 'application/ipfix',\n        'jar' => 'application/java-archive',\n        'ser' => 'application/java-serialized-object',\n        'class' => 'application/java-vm',\n        'js' => 'application/javascript',\n        'json' => 'application/json',\n        'jsonml' => 'application/jsonml+json',\n        'lostxml' => 'application/lost+xml',\n        'hqx' => 'application/mac-binhex40',\n        'cpt' => 'application/mac-compactpro',\n        'mads' => 'application/mads+xml',\n        'mrc' => 'application/marc',\n        'mrcx' => 'application/marcxml+xml',\n        'ma' => 'application/mathematica',\n        'mathml' => 'application/mathml+xml',\n        'mbox' => 'application/mbox',\n        'mscml' => 'application/mediaservercontrol+xml',\n        'metalink' => 'application/metalink+xml',\n        'meta4' => 'application/metalink4+xml',\n        'mets' => 'application/mets+xml',\n        'mods' => 'application/mods+xml',\n        'm21' => 'application/mp21',\n        'mp4s' => 'application/mp4',\n        'doc' => 'application/msword',\n        'mxf' => 'application/mxf',\n        'bin' => 'application/octet-stream',\n        'oda' => 'application/oda',\n        'opf' => 'application/oebps-package+xml',\n        'ogx' => 'application/ogg',\n        'omdoc' => 'application/omdoc+xml',\n        'onetoc' => 'application/onenote',\n        'oxps' => 'application/oxps',\n        'xer' => 'application/patch-ops-error+xml',\n        'pdf' => 'application/pdf',\n        'pgp' => 'application/pgp-encrypted',\n        'asc' => 'application/pgp-signature',\n        'prf' => 'application/pics-rules',\n        'p10' => 'application/pkcs10',\n        'p7m' => 'application/pkcs7-mime',\n        'p7s' => 'application/pkcs7-signature',\n        'p8' => 'application/pkcs8',\n        'ac' => 'application/pkix-attr-cert',\n        'cer' => 'application/pkix-cert',\n        'crl' => 'application/pkix-crl',\n        'pkipath' => 'application/pkix-pkipath',\n        'pki' => 'application/pkixcmp',\n        'pls' => 'application/pls+xml',\n        'ai' => 'application/postscript',\n        'cww' => 'application/prs.cww',\n        'pskcxml' => 'application/pskc+xml',\n        'rdf' => 'application/rdf+xml',\n        'rif' => 'application/reginfo+xml',\n        'rnc' => 'application/relax-ng-compact-syntax',\n        'rl' => 'application/resource-lists+xml',\n        'rld' => 'application/resource-lists-diff+xml',\n        'rs' => 'application/rls-services+xml',\n        'gbr' => 'application/rpki-ghostbusters',\n        'mft' => 'application/rpki-manifest',\n        'roa' => 'application/rpki-roa',\n        'rsd' => 'application/rsd+xml',\n        'rss' => 'application/rss+xml',\n        'sbml' => 'application/sbml+xml',\n        'scq' => 'application/scvp-cv-request',\n        'scs' => 'application/scvp-cv-response',\n        'spq' => 'application/scvp-vp-request',\n        'spp' => 'application/scvp-vp-response',\n        'sdp' => 'application/sdp',\n        'setpay' => 'application/set-payment-initiation',\n        'setreg' => 'application/set-registration-initiation',\n        'shf' => 'application/shf+xml',\n        'smi' => 'application/smil+xml',\n        'rq' => 'application/sparql-query',\n        'srx' => 'application/sparql-results+xml',\n        'gram' => 'application/srgs',\n        'grxml' => 'application/srgs+xml',\n        'sru' => 'application/sru+xml',\n        'ssdl' => 'application/ssdl+xml',\n        'ssml' => 'application/ssml+xml',\n        'tei' => 'application/tei+xml',\n        'tfi' => 'application/thraud+xml',\n        'tsd' => 'application/timestamped-data',\n        'plb' => 'application/vnd.3gpp.pic-bw-large',\n        'psb' => 'application/vnd.3gpp.pic-bw-small',\n        'pvb' => 'application/vnd.3gpp.pic-bw-var',\n        'tcap' => 'application/vnd.3gpp2.tcap',\n        'pwn' => 'application/vnd.3m.post-it-notes',\n        'aso' => 'application/vnd.accpac.simply.aso',\n        'imp' => 'application/vnd.accpac.simply.imp',\n        'acu' => 'application/vnd.acucobol',\n        'atc' => 'application/vnd.acucorp',\n        'air' => 'application/vnd.adobe.air-application-installer-package+zip',\n        'fcdt' => 'application/vnd.adobe.formscentral.fcdt',\n        'fxp' => 'application/vnd.adobe.fxp',\n        'xdp' => 'application/vnd.adobe.xdp+xml',\n        'xfdf' => 'application/vnd.adobe.xfdf',\n        'ahead' => 'application/vnd.ahead.space',\n        'azf' => 'application/vnd.airzip.filesecure.azf',\n        'azs' => 'application/vnd.airzip.filesecure.azs',\n        'azw' => 'application/vnd.amazon.ebook',\n        'acc' => 'application/vnd.americandynamics.acc',\n        'ami' => 'application/vnd.amiga.ami',\n        'apk' => 'application/vnd.android.package-archive',\n        'cii' => 'application/vnd.anser-web-certificate-issue-initiation',\n        'fti' => 'application/vnd.anser-web-funds-transfer-initiation',\n        'atx' => 'application/vnd.antix.game-component',\n        'mpkg' => 'application/vnd.apple.installer+xml',\n        'm3u8' => 'application/vnd.apple.mpegurl',\n        'swi' => 'application/vnd.aristanetworks.swi',\n        'iota' => 'application/vnd.astraea-software.iota',\n        'aep' => 'application/vnd.audiograph',\n        'mpm' => 'application/vnd.blueice.multipass',\n        'bmi' => 'application/vnd.bmi',\n        'rep' => 'application/vnd.businessobjects',\n        'cdxml' => 'application/vnd.chemdraw+xml',\n        'mmd' => 'application/vnd.chipnuts.karaoke-mmd',\n        'cdy' => 'application/vnd.cinderella',\n        'cla' => 'application/vnd.claymore',\n        'rp9' => 'application/vnd.cloanto.rp9',\n        'c4g' => 'application/vnd.clonk.c4group',\n        'c11amc' => 'application/vnd.cluetrust.cartomobile-config',\n        'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg',\n        'csp' => 'application/vnd.commonspace',\n        'cdbcmsg' => 'application/vnd.contact.cmsg',\n        'cmc' => 'application/vnd.cosmocaller',\n        'clkx' => 'application/vnd.crick.clicker',\n        'clkk' => 'application/vnd.crick.clicker.keyboard',\n        'clkp' => 'application/vnd.crick.clicker.palette',\n        'clkt' => 'application/vnd.crick.clicker.template',\n        'clkw' => 'application/vnd.crick.clicker.wordbank',\n        'wbs' => 'application/vnd.criticaltools.wbs+xml',\n        'pml' => 'application/vnd.ctc-posml',\n        'ppd' => 'application/vnd.cups-ppd',\n        'car' => 'application/vnd.curl.car',\n        'pcurl' => 'application/vnd.curl.pcurl',\n        'dart' => 'application/vnd.dart',\n        'rdz' => 'application/vnd.data-vision.rdz',\n        'uvf' => 'application/vnd.dece.data',\n        'uvt' => 'application/vnd.dece.ttml+xml',\n        'uvx' => 'application/vnd.dece.unspecified',\n        'uvz' => 'application/vnd.dece.zip',\n        'fe_launch' => 'application/vnd.denovo.fcselayout-link',\n        'dna' => 'application/vnd.dna',\n        'mlp' => 'application/vnd.dolby.mlp',\n        'dpg' => 'application/vnd.dpgraph',\n        'dfac' => 'application/vnd.dreamfactory',\n        'kpxx' => 'application/vnd.ds-keypoint',\n        'ait' => 'application/vnd.dvb.ait',\n        'svc' => 'application/vnd.dvb.service',\n        'geo' => 'application/vnd.dynageo',\n        'mag' => 'application/vnd.ecowin.chart',\n        'nml' => 'application/vnd.enliven',\n        'esf' => 'application/vnd.epson.esf',\n        'msf' => 'application/vnd.epson.msf',\n        'qam' => 'application/vnd.epson.quickanime',\n        'slt' => 'application/vnd.epson.salt',\n        'ssf' => 'application/vnd.epson.ssf',\n        'es3' => 'application/vnd.eszigno3+xml',\n        'ez2' => 'application/vnd.ezpix-album',\n        'ez3' => 'application/vnd.ezpix-package',\n        'fdf' => 'application/vnd.fdf',\n        'mseed' => 'application/vnd.fdsn.mseed',\n        'seed' => 'application/vnd.fdsn.seed',\n        'gph' => 'application/vnd.flographit',\n        'ftc' => 'application/vnd.fluxtime.clip',\n        'fm' => 'application/vnd.framemaker',\n        'fnc' => 'application/vnd.frogans.fnc',\n        'ltf' => 'application/vnd.frogans.ltf',\n        'fsc' => 'application/vnd.fsc.weblaunch',\n        'oas' => 'application/vnd.fujitsu.oasys',\n        'oa2' => 'application/vnd.fujitsu.oasys2',\n        'oa3' => 'application/vnd.fujitsu.oasys3',\n        'fg5' => 'application/vnd.fujitsu.oasysgp',\n        'bh2' => 'application/vnd.fujitsu.oasysprs',\n        'ddd' => 'application/vnd.fujixerox.ddd',\n        'xdw' => 'application/vnd.fujixerox.docuworks',\n        'xbd' => 'application/vnd.fujixerox.docuworks.binder',\n        'fzs' => 'application/vnd.fuzzysheet',\n        'txd' => 'application/vnd.genomatix.tuxedo',\n        'ggb' => 'application/vnd.geogebra.file',\n        'ggt' => 'application/vnd.geogebra.tool',\n        'gex' => 'application/vnd.geometry-explorer',\n        'gxt' => 'application/vnd.geonext',\n        'g2w' => 'application/vnd.geoplan',\n        'g3w' => 'application/vnd.geospace',\n        'gmx' => 'application/vnd.gmx',\n        'kml' => 'application/vnd.google-earth.kml+xml',\n        'kmz' => 'application/vnd.google-earth.kmz',\n        'gqf' => 'application/vnd.grafeq',\n        'gac' => 'application/vnd.groove-account',\n        'ghf' => 'application/vnd.groove-help',\n        'gim' => 'application/vnd.groove-identity-message',\n        'grv' => 'application/vnd.groove-injector',\n        'gtm' => 'application/vnd.groove-tool-message',\n        'tpl' => 'application/vnd.groove-tool-template',\n        'vcg' => 'application/vnd.groove-vcard',\n        'hal' => 'application/vnd.hal+xml',\n        'zmm' => 'application/vnd.handheld-entertainment+xml',\n        'hbci' => 'application/vnd.hbci',\n        'les' => 'application/vnd.hhe.lesson-player',\n        'hpgl' => 'application/vnd.hp-hpgl',\n        'hpid' => 'application/vnd.hp-hpid',\n        'hps' => 'application/vnd.hp-hps',\n        'jlt' => 'application/vnd.hp-jlyt',\n        'pcl' => 'application/vnd.hp-pcl',\n        'pclxl' => 'application/vnd.hp-pclxl',\n        'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data',\n        'mpy' => 'application/vnd.ibm.minipay',\n        'afp' => 'application/vnd.ibm.modcap',\n        'irm' => 'application/vnd.ibm.rights-management',\n        'sc' => 'application/vnd.ibm.secure-container',\n        'icc' => 'application/vnd.iccprofile',\n        'igl' => 'application/vnd.igloader',\n        'ivp' => 'application/vnd.immervision-ivp',\n        'ivu' => 'application/vnd.immervision-ivu',\n        'igm' => 'application/vnd.insors.igm',\n        'xpw' => 'application/vnd.intercon.formnet',\n        'i2g' => 'application/vnd.intergeo',\n        'qbo' => 'application/vnd.intu.qbo',\n        'qfx' => 'application/vnd.intu.qfx',\n        'rcprofile' => 'application/vnd.ipunplugged.rcprofile',\n        'irp' => 'application/vnd.irepository.package+xml',\n        'xpr' => 'application/vnd.is-xpr',\n        'fcs' => 'application/vnd.isac.fcs',\n        'jam' => 'application/vnd.jam',\n        'rms' => 'application/vnd.jcp.javame.midlet-rms',\n        'jisp' => 'application/vnd.jisp',\n        'joda' => 'application/vnd.joost.joda-archive',\n        'ktz' => 'application/vnd.kahootz',\n        'karbon' => 'application/vnd.kde.karbon',\n        'chrt' => 'application/vnd.kde.kchart',\n        'kfo' => 'application/vnd.kde.kformula',\n        'flw' => 'application/vnd.kde.kivio',\n        'kon' => 'application/vnd.kde.kontour',\n        'kpr' => 'application/vnd.kde.kpresenter',\n        'ksp' => 'application/vnd.kde.kspread',\n        'kwd' => 'application/vnd.kde.kword',\n        'htke' => 'application/vnd.kenameaapp',\n        'kia' => 'application/vnd.kidspiration',\n        'kne' => 'application/vnd.kinar',\n        'skp' => 'application/vnd.koan',\n        'sse' => 'application/vnd.kodak-descriptor',\n        'lasxml' => 'application/vnd.las.las+xml',\n        'lbd' => 'application/vnd.llamagraphics.life-balance.desktop',\n        'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',\n        '123' => 'application/vnd.lotus-1-2-3',\n        'apr' => 'application/vnd.lotus-approach',\n        'pre' => 'application/vnd.lotus-freelance',\n        'nsf' => 'application/vnd.lotus-notes',\n        'org' => 'application/vnd.lotus-organizer',\n        'scm' => 'application/vnd.lotus-screencam',\n        'lwp' => 'application/vnd.lotus-wordpro',\n        'portpkg' => 'application/vnd.macports.portpkg',\n        'mcd' => 'application/vnd.mcd',\n        'mc1' => 'application/vnd.medcalcdata',\n        'cdkey' => 'application/vnd.mediastation.cdkey',\n        'mwf' => 'application/vnd.mfer',\n        'mfm' => 'application/vnd.mfmp',\n        'flo' => 'application/vnd.micrografx.flo',\n        'igx' => 'application/vnd.micrografx.igx',\n        'mif' => 'application/vnd.mif',\n        'daf' => 'application/vnd.mobius.daf',\n        'dis' => 'application/vnd.mobius.dis',\n        'mbk' => 'application/vnd.mobius.mbk',\n        'mqy' => 'application/vnd.mobius.mqy',\n        'msl' => 'application/vnd.mobius.msl',\n        'plc' => 'application/vnd.mobius.plc',\n        'txf' => 'application/vnd.mobius.txf',\n        'mpn' => 'application/vnd.mophun.application',\n        'mpc' => 'application/vnd.mophun.certificate',\n        'xul' => 'application/vnd.mozilla.xul+xml',\n        'cil' => 'application/vnd.ms-artgalry',\n        'cab' => 'application/vnd.ms-cab-compressed',\n        'xls' => 'application/vnd.ms-excel',\n        'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12',\n        'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n        'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12',\n        'xltm' => 'application/vnd.ms-excel.template.macroenabled.12',\n        'eot' => 'application/vnd.ms-fontobject',\n        'chm' => 'application/vnd.ms-htmlhelp',\n        'ims' => 'application/vnd.ms-ims',\n        'lrm' => 'application/vnd.ms-lrm',\n        'thmx' => 'application/vnd.ms-officetheme',\n        'cat' => 'application/vnd.ms-pki.seccat',\n        'stl' => 'application/vnd.ms-pki.stl',\n        'ppt' => 'application/vnd.ms-powerpoint',\n        'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12',\n        'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n        'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12',\n        'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n        'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12',\n        'mpp' => 'application/vnd.ms-project',\n        'docm' => 'application/vnd.ms-word.document.macroenabled.12',\n        'dotm' => 'application/vnd.ms-word.template.macroenabled.12',\n        'wps' => 'application/vnd.ms-works',\n        'wpl' => 'application/vnd.ms-wpl',\n        'xps' => 'application/vnd.ms-xpsdocument',\n        'mseq' => 'application/vnd.mseq',\n        'mus' => 'application/vnd.musician',\n        'msty' => 'application/vnd.muvee.style',\n        'taglet' => 'application/vnd.mynfc',\n        'nlu' => 'application/vnd.neurolanguage.nlu',\n        'ntf' => 'application/vnd.nitf',\n        'nnd' => 'application/vnd.noblenet-directory',\n        'nns' => 'application/vnd.noblenet-sealer',\n        'nnw' => 'application/vnd.noblenet-web',\n        'ngdat' => 'application/vnd.nokia.n-gage.data',\n        'n-gage' => 'application/vnd.nokia.n-gage.symbian.install',\n        'rpst' => 'application/vnd.nokia.radio-preset',\n        'rpss' => 'application/vnd.nokia.radio-presets',\n        'edm' => 'application/vnd.novadigm.edm',\n        'edx' => 'application/vnd.novadigm.edx',\n        'ext' => 'application/vnd.novadigm.ext',\n        'odc' => 'application/vnd.oasis.opendocument.chart',\n        'otc' => 'application/vnd.oasis.opendocument.chart-template',\n        'odb' => 'application/vnd.oasis.opendocument.database',\n        'odf' => 'application/vnd.oasis.opendocument.formula',\n        'odft' => 'application/vnd.oasis.opendocument.formula-template',\n        'odg' => 'application/vnd.oasis.opendocument.graphics',\n        'otg' => 'application/vnd.oasis.opendocument.graphics-template',\n        'odi' => 'application/vnd.oasis.opendocument.image',\n        'oti' => 'application/vnd.oasis.opendocument.image-template',\n        'odp' => 'application/vnd.oasis.opendocument.presentation',\n        'otp' => 'application/vnd.oasis.opendocument.presentation-template',\n        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',\n        'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',\n        'odt' => 'application/vnd.oasis.opendocument.text',\n        'odm' => 'application/vnd.oasis.opendocument.text-master',\n        'ott' => 'application/vnd.oasis.opendocument.text-template',\n        'oth' => 'application/vnd.oasis.opendocument.text-web',\n        'xo' => 'application/vnd.olpc-sugar',\n        'dd2' => 'application/vnd.oma.dd2+xml',\n        'oxt' => 'application/vnd.openofficeorg.extension',\n        'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n        'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',\n        'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n        'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',\n        'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n        'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n        'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n        'mgp' => 'application/vnd.osgeo.mapguide.package',\n        'dp' => 'application/vnd.osgi.dp',\n        'esa' => 'application/vnd.osgi.subsystem',\n        'pdb' => 'application/vnd.palm',\n        'paw' => 'application/vnd.pawaafile',\n        'str' => 'application/vnd.pg.format',\n        'ei6' => 'application/vnd.pg.osasli',\n        'efif' => 'application/vnd.picsel',\n        'wg' => 'application/vnd.pmi.widget',\n        'plf' => 'application/vnd.pocketlearn',\n        'pbd' => 'application/vnd.powerbuilder6',\n        'box' => 'application/vnd.previewsystems.box',\n        'mgz' => 'application/vnd.proteus.magazine',\n        'qps' => 'application/vnd.publishare-delta-tree',\n        'ptid' => 'application/vnd.pvi.ptid1',\n        'qxd' => 'application/vnd.quark.quarkxpress',\n        'bed' => 'application/vnd.realvnc.bed',\n        'mxl' => 'application/vnd.recordare.musicxml',\n        'musicxml' => 'application/vnd.recordare.musicxml+xml',\n        'cryptonote' => 'application/vnd.rig.cryptonote',\n        'cod' => 'application/vnd.rim.cod',\n        'rm' => 'application/vnd.rn-realmedia',\n        'rmvb' => 'application/vnd.rn-realmedia-vbr',\n        'link66' => 'application/vnd.route66.link66+xml',\n        'st' => 'application/vnd.sailingtracker.track',\n        'see' => 'application/vnd.seemail',\n        'sema' => 'application/vnd.sema',\n        'semd' => 'application/vnd.semd',\n        'semf' => 'application/vnd.semf',\n        'ifm' => 'application/vnd.shana.informed.formdata',\n        'itp' => 'application/vnd.shana.informed.formtemplate',\n        'iif' => 'application/vnd.shana.informed.interchange',\n        'ipk' => 'application/vnd.shana.informed.package',\n        'twd' => 'application/vnd.simtech-mindmapper',\n        'mmf' => 'application/vnd.smaf',\n        'teacher' => 'application/vnd.smart.teacher',\n        'sdkm' => 'application/vnd.solent.sdkm+xml',\n        'dxp' => 'application/vnd.spotfire.dxp',\n        'sfs' => 'application/vnd.spotfire.sfs',\n        'sdc' => 'application/vnd.stardivision.calc',\n        'sda' => 'application/vnd.stardivision.draw',\n        'sdd' => 'application/vnd.stardivision.impress',\n        'smf' => 'application/vnd.stardivision.math',\n        'sdw' => 'application/vnd.stardivision.writer',\n        'sgl' => 'application/vnd.stardivision.writer-global',\n        'smzip' => 'application/vnd.stepmania.package',\n        'sm' => 'application/vnd.stepmania.stepchart',\n        'sxc' => 'application/vnd.sun.xml.calc',\n        'stc' => 'application/vnd.sun.xml.calc.template',\n        'sxd' => 'application/vnd.sun.xml.draw',\n        'std' => 'application/vnd.sun.xml.draw.template',\n        'sxi' => 'application/vnd.sun.xml.impress',\n        'sti' => 'application/vnd.sun.xml.impress.template',\n        'sxm' => 'application/vnd.sun.xml.math',\n        'sxw' => 'application/vnd.sun.xml.writer',\n        'sxg' => 'application/vnd.sun.xml.writer.global',\n        'stw' => 'application/vnd.sun.xml.writer.template',\n        'sus' => 'application/vnd.sus-calendar',\n        'svd' => 'application/vnd.svd',\n        'sis' => 'application/vnd.symbian.install',\n        'xsm' => 'application/vnd.syncml+xml',\n        'bdm' => 'application/vnd.syncml.dm+wbxml',\n        'xdm' => 'application/vnd.syncml.dm+xml',\n        'tao' => 'application/vnd.tao.intent-module-archive',\n        'pcap' => 'application/vnd.tcpdump.pcap',\n        'tmo' => 'application/vnd.tmobile-livetv',\n        'tpt' => 'application/vnd.trid.tpt',\n        'mxs' => 'application/vnd.triscape.mxs',\n        'tra' => 'application/vnd.trueapp',\n        'ufd' => 'application/vnd.ufdl',\n        'utz' => 'application/vnd.uiq.theme',\n        'umj' => 'application/vnd.umajin',\n        'unityweb' => 'application/vnd.unity',\n        'uoml' => 'application/vnd.uoml+xml',\n        'vcx' => 'application/vnd.vcx',\n        'vsd' => 'application/vnd.visio',\n        'vis' => 'application/vnd.visionary',\n        'vsf' => 'application/vnd.vsf',\n        'wbxml' => 'application/vnd.wap.wbxml',\n        'wmlc' => 'application/vnd.wap.wmlc',\n        'wmlsc' => 'application/vnd.wap.wmlscriptc',\n        'wtb' => 'application/vnd.webturbo',\n        'nbp' => 'application/vnd.wolfram.player',\n        'wpd' => 'application/vnd.wordperfect',\n        'wqd' => 'application/vnd.wqd',\n        'stf' => 'application/vnd.wt.stf',\n        'xar' => 'application/vnd.xara',\n        'xfdl' => 'application/vnd.xfdl',\n        'hvd' => 'application/vnd.yamaha.hv-dic',\n        'hvs' => 'application/vnd.yamaha.hv-script',\n        'hvp' => 'application/vnd.yamaha.hv-voice',\n        'osf' => 'application/vnd.yamaha.openscoreformat',\n        'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml',\n        'saf' => 'application/vnd.yamaha.smaf-audio',\n        'spf' => 'application/vnd.yamaha.smaf-phrase',\n        'cmp' => 'application/vnd.yellowriver-custom-menu',\n        'zir' => 'application/vnd.zul',\n        'zaz' => 'application/vnd.zzazz.deck+xml',\n        'vxml' => 'application/voicexml+xml',\n        'wgt' => 'application/widget',\n        'hlp' => 'application/winhlp',\n        'wsdl' => 'application/wsdl+xml',\n        'wspolicy' => 'application/wspolicy+xml',\n        '7z' => 'application/x-7z-compressed',\n        'abw' => 'application/x-abiword',\n        'ace' => 'application/x-ace-compressed',\n        'dmg' => 'application/x-apple-diskimage',\n        'aab' => 'application/x-authorware-bin',\n        'aam' => 'application/x-authorware-map',\n        'aas' => 'application/x-authorware-seg',\n        'bcpio' => 'application/x-bcpio',\n        'torrent' => 'application/x-bittorrent',\n        'blb' => 'application/x-blorb',\n        'bz' => 'application/x-bzip',\n        'bz2' => 'application/x-bzip2',\n        'cbr' => 'application/x-cbr',\n        'vcd' => 'application/x-cdlink',\n        'cfs' => 'application/x-cfs-compressed',\n        'chat' => 'application/x-chat',\n        'pgn' => 'application/x-chess-pgn',\n        'nsc' => 'application/x-conference',\n        'cpio' => 'application/x-cpio',\n        'csh' => 'application/x-csh',\n        'deb' => 'application/x-debian-package',\n        'dgc' => 'application/x-dgc-compressed',\n        'dir' => 'application/x-director',\n        'wad' => 'application/x-doom',\n        'ncx' => 'application/x-dtbncx+xml',\n        'dtb' => 'application/x-dtbook+xml',\n        'res' => 'application/x-dtbresource+xml',\n        'dvi' => 'application/x-dvi',\n        'evy' => 'application/x-envoy',\n        'eva' => 'application/x-eva',\n        'bdf' => 'application/x-font-bdf',\n        'gsf' => 'application/x-font-ghostscript',\n        'psf' => 'application/x-font-linux-psf',\n        'otf' => 'application/x-font-otf',\n        'pcf' => 'application/x-font-pcf',\n        'snf' => 'application/x-font-snf',\n        'ttf' => 'application/x-font-ttf',\n        'pfa' => 'application/x-font-type1',\n        'woff' => 'application/x-font-woff',\n        'arc' => 'application/x-freearc',\n        'spl' => 'application/x-futuresplash',\n        'gca' => 'application/x-gca-compressed',\n        'ulx' => 'application/x-glulx',\n        'gnumeric' => 'application/x-gnumeric',\n        'gramps' => 'application/x-gramps-xml',\n        'gtar' => 'application/x-gtar',\n        'hdf' => 'application/x-hdf',\n        'install' => 'application/x-install-instructions',\n        'iso' => 'application/x-iso9660-image',\n        'jnlp' => 'application/x-java-jnlp-file',\n        'latex' => 'application/x-latex',\n        'lzh' => 'application/x-lzh-compressed',\n        'mie' => 'application/x-mie',\n        'prc' => 'application/x-mobipocket-ebook',\n        'application' => 'application/x-ms-application',\n        'lnk' => 'application/x-ms-shortcut',\n        'wmd' => 'application/x-ms-wmd',\n        'wmz' => 'application/x-ms-wmz',\n        'xbap' => 'application/x-ms-xbap',\n        'mdb' => 'application/x-msaccess',\n        'obd' => 'application/x-msbinder',\n        'crd' => 'application/x-mscardfile',\n        'clp' => 'application/x-msclip',\n        'exe' => 'application/x-msdownload',\n        'mvb' => 'application/x-msmediaview',\n        'wmf' => 'application/x-msmetafile',\n        'mny' => 'application/x-msmoney',\n        'pub' => 'application/x-mspublisher',\n        'scd' => 'application/x-msschedule',\n        'trm' => 'application/x-msterminal',\n        'wri' => 'application/x-mswrite',\n        'nc' => 'application/x-netcdf',\n        'nzb' => 'application/x-nzb',\n        'p12' => 'application/x-pkcs12',\n        'p7b' => 'application/x-pkcs7-certificates',\n        'p7r' => 'application/x-pkcs7-certreqresp',\n        'rar' => 'application/x-rar',\n        'ris' => 'application/x-research-info-systems',\n        'sh' => 'application/x-sh',\n        'shar' => 'application/x-shar',\n        'swf' => 'application/x-shockwave-flash',\n        'xap' => 'application/x-silverlight-app',\n        'sql' => 'application/x-sql',\n        'sit' => 'application/x-stuffit',\n        'sitx' => 'application/x-stuffitx',\n        'srt' => 'application/x-subrip',\n        'sv4cpio' => 'application/x-sv4cpio',\n        'sv4crc' => 'application/x-sv4crc',\n        't3' => 'application/x-t3vm-image',\n        'gam' => 'application/x-tads',\n        'tar' => 'application/x-tar',\n        'tcl' => 'application/x-tcl',\n        'tex' => 'application/x-tex',\n        'tfm' => 'application/x-tex-tfm',\n        'texinfo' => 'application/x-texinfo',\n        'obj' => 'application/x-tgif',\n        'ustar' => 'application/x-ustar',\n        'src' => 'application/x-wais-source',\n        'der' => 'application/x-x509-ca-cert',\n        'fig' => 'application/x-xfig',\n        'xlf' => 'application/x-xliff+xml',\n        'xpi' => 'application/x-xpinstall',\n        'xz' => 'application/x-xz',\n        'z1' => 'application/x-zmachine',\n        'xaml' => 'application/xaml+xml',\n        'xdf' => 'application/xcap-diff+xml',\n        'xenc' => 'application/xenc+xml',\n        'xhtml' => 'application/xhtml+xml',\n        'xml' => 'application/xml',\n        'dtd' => 'application/xml-dtd',\n        'xop' => 'application/xop+xml',\n        'xpl' => 'application/xproc+xml',\n        'xslt' => 'application/xslt+xml',\n        'xspf' => 'application/xspf+xml',\n        'mxml' => 'application/xv+xml',\n        'yang' => 'application/yang',\n        'yin' => 'application/yin+xml',\n        'zip' => 'application/zip',\n        'adp' => 'audio/adpcm',\n        'au' => 'audio/basic',\n        'mid' => 'audio/midi',\n        'mp3' => 'audio/mpeg',\n        'mp4a' => 'audio/mp4',\n        'mpga' => 'audio/mpeg',\n        'oga' => 'audio/ogg',\n        's3m' => 'audio/s3m',\n        'sil' => 'audio/silk',\n        'uva' => 'audio/vnd.dece.audio',\n        'eol' => 'audio/vnd.digital-winds',\n        'dra' => 'audio/vnd.dra',\n        'dts' => 'audio/vnd.dts',\n        'dtshd' => 'audio/vnd.dts.hd',\n        'lvp' => 'audio/vnd.lucent.voice',\n        'pya' => 'audio/vnd.ms-playready.media.pya',\n        'ecelp4800' => 'audio/vnd.nuera.ecelp4800',\n        'ecelp7470' => 'audio/vnd.nuera.ecelp7470',\n        'ecelp9600' => 'audio/vnd.nuera.ecelp9600',\n        'rip' => 'audio/vnd.rip',\n        'weba' => 'audio/webm',\n        'aac' => 'audio/x-aac',\n        'aif' => 'audio/x-aiff',\n        'caf' => 'audio/x-caf',\n        'flac' => 'audio/x-flac',\n        'mka' => 'audio/x-matroska',\n        'm3u' => 'audio/x-mpegurl',\n        'wax' => 'audio/x-ms-wax',\n        'wma' => 'audio/x-ms-wma',\n        'ram' => 'audio/x-pn-realaudio',\n        'rmp' => 'audio/x-pn-realaudio-plugin',\n        'wav' => 'audio/x-wav',\n        'xm' => 'audio/xm',\n        'cdx' => 'chemical/x-cdx',\n        'cif' => 'chemical/x-cif',\n        'cmdf' => 'chemical/x-cmdf',\n        'cml' => 'chemical/x-cml',\n        'csml' => 'chemical/x-csml',\n        'xyz' => 'chemical/x-xyz',\n        'bmp' => 'image/bmp',\n        'cgm' => 'image/cgm',\n        'g3' => 'image/g3fax',\n        'gif' => 'image/gif',\n        'ief' => 'image/ief',\n        'jpg' => 'image/jpeg',\n        'jpeg' => 'image/jpeg',\n        'ktx' => 'image/ktx',\n        'png' => 'image/png',\n        'btif' => 'image/prs.btif',\n        'sgi' => 'image/sgi',\n        'svg' => 'image/svg+xml',\n        'tiff' => 'image/tiff',\n        'psd' => 'image/vnd.adobe.photoshop',\n        'uvi' => 'image/vnd.dece.graphic',\n        'djvu' => 'image/vnd.djvu',\n        'dwg' => 'image/vnd.dwg',\n        'dxf' => 'image/vnd.dxf',\n        'fbs' => 'image/vnd.fastbidsheet',\n        'fpx' => 'image/vnd.fpx',\n        'fst' => 'image/vnd.fst',\n        'mmr' => 'image/vnd.fujixerox.edmics-mmr',\n        'rlc' => 'image/vnd.fujixerox.edmics-rlc',\n        'mdi' => 'image/vnd.ms-modi',\n        'wdp' => 'image/vnd.ms-photo',\n        'npx' => 'image/vnd.net-fpx',\n        'wbmp' => 'image/vnd.wap.wbmp',\n        'xif' => 'image/vnd.xiff',\n        'webp' => 'image/webp',\n        '3ds' => 'image/x-3ds',\n        'ras' => 'image/x-cmu-raster',\n        'cmx' => 'image/x-cmx',\n        'fh' => 'image/x-freehand',\n        'ico' => 'image/x-icon',\n        'sid' => 'image/x-mrsid-image',\n        'pcx' => 'image/x-pcx',\n        'pic' => 'image/x-pict',\n        'pnm' => 'image/x-portable-anymap',\n        'pbm' => 'image/x-portable-bitmap',\n        'pgm' => 'image/x-portable-graymap',\n        'ppm' => 'image/x-portable-pixmap',\n        'rgb' => 'image/x-rgb',\n        'tga' => 'image/x-tga',\n        'xbm' => 'image/x-xbitmap',\n        'xpm' => 'image/x-xpixmap',\n        'xwd' => 'image/x-xwindowdump',\n        'eml' => 'message/rfc822',\n        'igs' => 'model/iges',\n        'msh' => 'model/mesh',\n        'dae' => 'model/vnd.collada+xml',\n        'dwf' => 'model/vnd.dwf',\n        'gdl' => 'model/vnd.gdl',\n        'gtw' => 'model/vnd.gtw',\n        'mts' => 'model/vnd.mts',\n        'vtu' => 'model/vnd.vtu',\n        'wrl' => 'model/vrml',\n        'x3db' => 'model/x3d+binary',\n        'x3dv' => 'model/x3d+vrml',\n        'x3d' => 'model/x3d+xml',\n        'appcache' => 'text/cache-manifest',\n        'ics' => 'text/calendar',\n        'css' => 'text/css',\n        'csv' => 'text/csv',\n        'html' => 'text/html',\n        'n3' => 'text/n3',\n        'txt' => 'text/plain',\n        'dsc' => 'text/prs.lines.tag',\n        'rtx' => 'text/richtext',\n        'rtf' => 'text/rtf',\n        'sgml' => 'text/sgml',\n        'tsv' => 'text/tab-separated-values',\n        't' => 'text/troff',\n        'ttl' => 'text/turtle',\n        'uri' => 'text/uri-list',\n        'vcard' => 'text/vcard',\n        'curl' => 'text/vnd.curl',\n        'dcurl' => 'text/vnd.curl.dcurl',\n        'scurl' => 'text/vnd.curl.scurl',\n        'mcurl' => 'text/vnd.curl.mcurl',\n        'sub' => 'text/vnd.dvb.subtitle',\n        'fly' => 'text/vnd.fly',\n        'flx' => 'text/vnd.fmi.flexstor',\n        'gv' => 'text/vnd.graphviz',\n        '3dml' => 'text/vnd.in3d.3dml',\n        'spot' => 'text/vnd.in3d.spot',\n        'jad' => 'text/vnd.sun.j2me.app-descriptor',\n        'wml' => 'text/vnd.wap.wml',\n        'wmls' => 'text/vnd.wap.wmlscript',\n        's' => 'text/x-asm',\n        'c' => 'text/x-c',\n        'f' => 'text/x-fortran',\n        'p' => 'text/x-pascal',\n        'java' => 'text/x-java-source',\n        'opml' => 'text/x-opml',\n        'nfo' => 'text/x-nfo',\n        'etx' => 'text/x-setext',\n        'sfv' => 'text/x-sfv',\n        'uu' => 'text/x-uuencode',\n        'vcs' => 'text/x-vcalendar',\n        'vcf' => 'text/x-vcard',\n        '3gp' => 'video/3gpp',\n        '3g2' => 'video/3gpp2',\n        'h261' => 'video/h261',\n        'h263' => 'video/h263',\n        'h264' => 'video/h264',\n        'jpgv' => 'video/jpeg',\n        'jpm' => 'video/jpm',\n        'mj2' => 'video/mj2',\n        'mp4' => 'video/mp4',\n        'mpeg' => 'video/mpeg',\n        'ogv' => 'video/ogg',\n        'mov' => 'video/quicktime',\n        'qt' => 'video/quicktime',\n        'uvh' => 'video/vnd.dece.hd',\n        'uvm' => 'video/vnd.dece.mobile',\n        'uvp' => 'video/vnd.dece.pd',\n        'uvs' => 'video/vnd.dece.sd',\n        'uvv' => 'video/vnd.dece.video',\n        'dvb' => 'video/vnd.dvb.file',\n        'fvt' => 'video/vnd.fvt',\n        'mxu' => 'video/vnd.mpegurl',\n        'pyv' => 'video/vnd.ms-playready.media.pyv',\n        'uvu' => 'video/vnd.uvvu.mp4',\n        'viv' => 'video/vnd.vivo',\n        'webm' => 'video/webm',\n        'f4v' => 'video/x-f4v',\n        'fli' => 'video/x-fli',\n        'flv' => 'video/x-flv',\n        'm4v' => 'video/x-m4v',\n        'mkv' => 'video/x-matroska',\n        'mng' => 'video/x-mng',\n        'asf' => 'video/x-ms-asf',\n        'vob' => 'video/x-ms-vob',\n        'wm' => 'video/x-ms-wm',\n        'wmv' => 'video/x-ms-wmv',\n        'wmx' => 'video/x-ms-wmx',\n        'wvx' => 'video/x-ms-wvx',\n        'avi' => 'video/x-msvideo',\n        'movie' => 'video/x-sgi-movie',\n        'smv' => 'video/x-smv',\n        'ice' => 'x-conference/x-cooltalk',\n    ];\n\n    /**\n     * Get the MIME type for a file based on the file's extension.\n     *\n     * @param  string  $filename\n     * @return string\n     */\n    public static function from($filename)\n    {\n        $extension = pathinfo($filename, PATHINFO_EXTENSION);\n\n        return self::getMimeTypeFromExtension($extension);\n    }\n\n    /**\n     * Get the MIME type for a given extension or return all mimes.\n     *\n     * @param  string|null  $extension\n     * @return string|array\n     */\n    public static function get($extension = null)\n    {\n        return $extension ? self::getMimeTypeFromExtension($extension) : self::$mimes;\n    }\n\n    /**\n     * Search for the extension of a given MIME type.\n     *\n     * @param  string  $mimeType\n     * @return string|null\n     */\n    public static function search($mimeType)\n    {\n        return array_search($mimeType, self::$mimes) ?: null;\n    }\n\n    /**\n     * Get the MIME type for a given extension.\n     *\n     * @param  string  $extension\n     * @return string\n     */\n    protected static function getMimeTypeFromExtension($extension)\n    {\n        return self::$mimes[$extension] ?? 'application/octet-stream';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php",
    "content": "<?php\n\nnamespace Illuminate\\Http;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Filesystem\\FileNotFoundException;\nuse Illuminate\\Contracts\\Filesystem\\Factory as FilesystemFactory;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile as SymfonyUploadedFile;\n\nclass UploadedFile extends SymfonyUploadedFile\n{\n    use FileHelpers, Macroable;\n\n    /**\n     * Begin creating a new file fake.\n     *\n     * @return \\Illuminate\\Http\\Testing\\FileFactory\n     */\n    public static function fake()\n    {\n        return new Testing\\FileFactory;\n    }\n\n    /**\n     * Store the uploaded file on a filesystem disk.\n     *\n     * @param  string  $path\n     * @param  array|string  $options\n     * @return string|false\n     */\n    public function store($path, $options = [])\n    {\n        return $this->storeAs($path, $this->hashName(), $this->parseOptions($options));\n    }\n\n    /**\n     * Store the uploaded file on a filesystem disk with public visibility.\n     *\n     * @param  string  $path\n     * @param  array|string  $options\n     * @return string|false\n     */\n    public function storePublicly($path, $options = [])\n    {\n        $options = $this->parseOptions($options);\n\n        $options['visibility'] = 'public';\n\n        return $this->storeAs($path, $this->hashName(), $options);\n    }\n\n    /**\n     * Store the uploaded file on a filesystem disk with public visibility.\n     *\n     * @param  string  $path\n     * @param  string  $name\n     * @param  array|string  $options\n     * @return string|false\n     */\n    public function storePubliclyAs($path, $name, $options = [])\n    {\n        $options = $this->parseOptions($options);\n\n        $options['visibility'] = 'public';\n\n        return $this->storeAs($path, $name, $options);\n    }\n\n    /**\n     * Store the uploaded file on a filesystem disk.\n     *\n     * @param  string  $path\n     * @param  string  $name\n     * @param  array|string  $options\n     * @return string|false\n     */\n    public function storeAs($path, $name, $options = [])\n    {\n        $options = $this->parseOptions($options);\n\n        $disk = Arr::pull($options, 'disk');\n\n        return Container::getInstance()->make(FilesystemFactory::class)->disk($disk)->putFileAs(\n            $path, $this, $name, $options\n        );\n    }\n\n    /**\n     * Get the contents of the uploaded file.\n     *\n     * @return bool|string\n     *\n     * @throws \\Illuminate\\Contracts\\Filesystem\\FileNotFoundException\n     */\n    public function get()\n    {\n        if (! $this->isValid()) {\n            throw new FileNotFoundException(\"File does not exist at path {$this->getPathname()}\");\n        }\n\n        return file_get_contents($this->getPathname());\n    }\n\n    /**\n     * Get the file's extension supplied by the client.\n     *\n     * @return string\n     */\n    public function clientExtension()\n    {\n        return $this->guessClientExtension();\n    }\n\n    /**\n     * Create a new file instance from a base instance.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\File\\UploadedFile  $file\n     * @param  bool $test\n     * @return static\n     */\n    public static function createFromBase(SymfonyUploadedFile $file, $test = false)\n    {\n        return $file instanceof static ? $file : new static(\n            $file->getPathname(),\n            $file->getClientOriginalName(),\n            $file->getClientMimeType(),\n            $file->getError(),\n            $test\n        );\n    }\n\n    /**\n     * Parse and format the given options.\n     *\n     * @param  array|string  $options\n     * @return array\n     */\n    protected function parseOptions($options)\n    {\n        if (is_string($options)) {\n            $options = ['disk' => $options];\n        }\n\n        return $options;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Http/composer.json",
    "content": "{\n    \"name\": \"illuminate/http\",\n    \"description\": \"The Illuminate Http package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/session\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/http-foundation\": \"^4.2\",\n        \"symfony/http-kernel\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Http\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/Events/MessageLogged.php",
    "content": "<?php\n\nnamespace Illuminate\\Log\\Events;\n\nclass MessageLogged\n{\n    /**\n     * The log \"level\".\n     *\n     * @var string\n     */\n    public $level;\n\n    /**\n     * The log message.\n     *\n     * @var string\n     */\n    public $message;\n\n    /**\n     * The log context.\n     *\n     * @var array\n     */\n    public $context;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $level\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function __construct($level, $message, array $context = [])\n    {\n        $this->level = $level;\n        $this->message = $message;\n        $this->context = $context;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/LogManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Log;\n\nuse Closure;\nuse Throwable;\nuse Illuminate\\Support\\Str;\nuse Psr\\Log\\LoggerInterface;\nuse InvalidArgumentException;\nuse Monolog\\Logger as Monolog;\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\SyslogHandler;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Handler\\ErrorLogHandler;\nuse Monolog\\Handler\\HandlerInterface;\nuse Monolog\\Handler\\RotatingFileHandler;\nuse Monolog\\Handler\\SlackWebhookHandler;\nuse Monolog\\Handler\\WhatFailureGroupHandler;\n\nclass LogManager implements LoggerInterface\n{\n    use ParsesLogConfiguration;\n\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of resolved channels.\n     *\n     * @var array\n     */\n    protected $channels = [];\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * Create a new Log manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Create a new, on-demand aggregate logger instance.\n     *\n     * @param  array  $channels\n     * @param  string|null  $channel\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    public function stack(array $channels, $channel = null)\n    {\n        return new Logger(\n            $this->createStackDriver(compact('channels', 'channel')),\n            $this->app['events']\n        );\n    }\n\n    /**\n     * Get a log channel instance.\n     *\n     * @param  string|null  $channel\n     * @return mixed\n     */\n    public function channel($channel = null)\n    {\n        return $this->driver($channel);\n    }\n\n    /**\n     * Get a log driver instance.\n     *\n     * @param  string|null  $driver\n     * @return mixed\n     */\n    public function driver($driver = null)\n    {\n        return $this->get($driver ?? $this->getDefaultDriver());\n    }\n\n    /**\n     * Attempt to get the log from the local cache.\n     *\n     * @param  string  $name\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function get($name)\n    {\n        try {\n            return $this->channels[$name] ?? with($this->resolve($name), function ($logger) use ($name) {\n                return $this->channels[$name] = $this->tap($name, new Logger($logger, $this->app['events']));\n            });\n        } catch (Throwable $e) {\n            return tap($this->createEmergencyLogger(), function ($logger) use ($e) {\n                $logger->emergency('Unable to create configured logger. Using emergency logger.', [\n                    'exception' => $e,\n                ]);\n            });\n        }\n    }\n\n    /**\n     * Apply the configured taps for the logger.\n     *\n     * @param  string  $name\n     * @param  \\Illuminate\\Log\\Logger  $logger\n     * @return \\Illuminate\\Log\\Logger\n     */\n    protected function tap($name, Logger $logger)\n    {\n        foreach ($this->configurationFor($name)['tap'] ?? [] as $tap) {\n            [$class, $arguments] = $this->parseTap($tap);\n\n            $this->app->make($class)->__invoke($logger, ...explode(',', $arguments));\n        }\n\n        return $logger;\n    }\n\n    /**\n     * Parse the given tap class string into a class name and arguments string.\n     *\n     * @param  string  $tap\n     * @return array\n     */\n    protected function parseTap($tap)\n    {\n        return Str::contains($tap, ':') ? explode(':', $tap, 2) : [$tap, ''];\n    }\n\n    /**\n     * Create an emergency log handler to avoid white screens of death.\n     *\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createEmergencyLogger()\n    {\n        return new Logger(new Monolog('laravel', $this->prepareHandlers([new StreamHandler(\n                $this->app->storagePath().'/logs/laravel.log', $this->level(['level' => 'debug'])\n        )])), $this->app['events']);\n    }\n\n    /**\n     * Resolve the given log instance by name.\n     *\n     * @param  string  $name\n     * @return \\Psr\\Log\\LoggerInterface\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function resolve($name)\n    {\n        $config = $this->configurationFor($name);\n\n        if (is_null($config)) {\n            throw new InvalidArgumentException(\"Log [{$name}] is not defined.\");\n        }\n\n        if (isset($this->customCreators[$config['driver']])) {\n            return $this->callCustomCreator($config);\n        }\n\n        $driverMethod = 'create'.ucfirst($config['driver']).'Driver';\n\n        if (method_exists($this, $driverMethod)) {\n            return $this->{$driverMethod}($config);\n        }\n\n        throw new InvalidArgumentException(\"Driver [{$config['driver']}] is not supported.\");\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  array  $config\n     * @return mixed\n     */\n    protected function callCustomCreator(array $config)\n    {\n        return $this->customCreators[$config['driver']]($this->app, $config);\n    }\n\n    /**\n     * Create a custom log driver instance.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createCustomDriver(array $config)\n    {\n        $factory = is_callable($via = $config['via']) ? $via : $this->app->make($via);\n\n        return $factory($config);\n    }\n\n    /**\n     * Create an aggregate log driver instance.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createStackDriver(array $config)\n    {\n        $handlers = collect($config['channels'])->flatMap(function ($channel) {\n            return $this->channel($channel)->getHandlers();\n        })->all();\n\n        if ($config['ignore_exceptions'] ?? false) {\n            $handlers = [new WhatFailureGroupHandler($handlers)];\n        }\n\n        return new Monolog($this->parseChannel($config), $handlers);\n    }\n\n    /**\n     * Create an instance of the single file log driver.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createSingleDriver(array $config)\n    {\n        return new Monolog($this->parseChannel($config), [\n            $this->prepareHandler(\n                new StreamHandler(\n                    $config['path'], $this->level($config),\n                    $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false\n                ), $config\n            ),\n        ]);\n    }\n\n    /**\n     * Create an instance of the daily file log driver.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createDailyDriver(array $config)\n    {\n        return new Monolog($this->parseChannel($config), [\n            $this->prepareHandler(new RotatingFileHandler(\n                $config['path'], $config['days'] ?? 7, $this->level($config),\n                $config['bubble'] ?? true, $config['permission'] ?? null, $config['locking'] ?? false\n            ), $config),\n        ]);\n    }\n\n    /**\n     * Create an instance of the Slack log driver.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createSlackDriver(array $config)\n    {\n        return new Monolog($this->parseChannel($config), [\n            $this->prepareHandler(new SlackWebhookHandler(\n                $config['url'],\n                $config['channel'] ?? null,\n                $config['username'] ?? 'Laravel',\n                $config['attachment'] ?? true,\n                $config['emoji'] ?? ':boom:',\n                $config['short'] ?? false,\n                $config['context'] ?? true,\n                $this->level($config),\n                $config['bubble'] ?? true,\n                $config['exclude_fields'] ?? []\n            ), $config),\n        ]);\n    }\n\n    /**\n     * Create an instance of the syslog log driver.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createSyslogDriver(array $config)\n    {\n        return new Monolog($this->parseChannel($config), [\n            $this->prepareHandler(new SyslogHandler(\n                Str::snake($this->app['config']['app.name'], '-'),\n                $config['facility'] ?? LOG_USER, $this->level($config)\n            ), $config),\n        ]);\n    }\n\n    /**\n     * Create an instance of the \"error log\" log driver.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    protected function createErrorlogDriver(array $config)\n    {\n        return new Monolog($this->parseChannel($config), [\n            $this->prepareHandler(new ErrorLogHandler(\n                $config['type'] ?? ErrorLogHandler::OPERATING_SYSTEM, $this->level($config)\n            )),\n        ]);\n    }\n\n    /**\n     * Create an instance of any handler available in Monolog.\n     *\n     * @param  array  $config\n     * @return \\Psr\\Log\\LoggerInterface\n     *\n     * @throws \\InvalidArgumentException\n     * @throws \\Illuminate\\Contracts\\Container\\BindingResolutionException\n     */\n    protected function createMonologDriver(array $config)\n    {\n        if (! is_a($config['handler'], HandlerInterface::class, true)) {\n            throw new InvalidArgumentException(\n                $config['handler'].' must be an instance of '.HandlerInterface::class\n            );\n        }\n\n        $with = array_merge(\n            ['level' => $this->level($config)],\n            $config['with'] ?? [],\n            $config['handler_with'] ?? []\n        );\n\n        return new Monolog($this->parseChannel($config), [$this->prepareHandler(\n            $this->app->make($config['handler'], $with), $config\n        )]);\n    }\n\n    /**\n     * Prepare the handlers for usage by Monolog.\n     *\n     * @param  array  $handlers\n     * @return array\n     */\n    protected function prepareHandlers(array $handlers)\n    {\n        foreach ($handlers as $key => $handler) {\n            $handlers[$key] = $this->prepareHandler($handler);\n        }\n\n        return $handlers;\n    }\n\n    /**\n     * Prepare the handler for usage by Monolog.\n     *\n     * @param  \\Monolog\\Handler\\HandlerInterface  $handler\n     * @param  array  $config\n     * @return \\Monolog\\Handler\\HandlerInterface\n     */\n    protected function prepareHandler(HandlerInterface $handler, array $config = [])\n    {\n        if (! isset($config['formatter'])) {\n            $handler->setFormatter($this->formatter());\n        } elseif ($config['formatter'] !== 'default') {\n            $handler->setFormatter($this->app->make($config['formatter'], $config['formatter_with'] ?? []));\n        }\n\n        return $handler;\n    }\n\n    /**\n     * Get a Monolog formatter instance.\n     *\n     * @return \\Monolog\\Formatter\\FormatterInterface\n     */\n    protected function formatter()\n    {\n        return tap(new LineFormatter(null, null, true, true), function ($formatter) {\n            $formatter->includeStacktraces();\n        });\n    }\n\n    /**\n     * Get fallback log channel name.\n     *\n     * @return string\n     */\n    protected function getFallbackChannelName()\n    {\n        return $this->app->bound('env') ? $this->app->environment() : 'production';\n    }\n\n    /**\n     * Get the log connection configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function configurationFor($name)\n    {\n        return $this->app['config'][\"logging.channels.{$name}\"];\n    }\n\n    /**\n     * Get the default log driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['logging.default'];\n    }\n\n    /**\n     * Set the default log driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['logging.default'] = $name;\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback->bindTo($this, $this);\n\n        return $this;\n    }\n\n    /**\n     * System is unusable.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function emergency($message, array $context = [])\n    {\n        $this->driver()->emergency($message, $context);\n    }\n\n    /**\n     * Action must be taken immediately.\n     *\n     * Example: Entire website down, database unavailable, etc. This should\n     * trigger the SMS alerts and wake you up.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function alert($message, array $context = [])\n    {\n        $this->driver()->alert($message, $context);\n    }\n\n    /**\n     * Critical conditions.\n     *\n     * Example: Application component unavailable, unexpected exception.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function critical($message, array $context = [])\n    {\n        $this->driver()->critical($message, $context);\n    }\n\n    /**\n     * Runtime errors that do not require immediate action but should typically\n     * be logged and monitored.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function error($message, array $context = [])\n    {\n        $this->driver()->error($message, $context);\n    }\n\n    /**\n     * Exceptional occurrences that are not errors.\n     *\n     * Example: Use of deprecated APIs, poor use of an API, undesirable things\n     * that are not necessarily wrong.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function warning($message, array $context = [])\n    {\n        $this->driver()->warning($message, $context);\n    }\n\n    /**\n     * Normal but significant events.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function notice($message, array $context = [])\n    {\n        $this->driver()->notice($message, $context);\n    }\n\n    /**\n     * Interesting events.\n     *\n     * Example: User logs in, SQL logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function info($message, array $context = [])\n    {\n        $this->driver()->info($message, $context);\n    }\n\n    /**\n     * Detailed debug information.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function debug($message, array $context = [])\n    {\n        $this->driver()->debug($message, $context);\n    }\n\n    /**\n     * Logs with an arbitrary level.\n     *\n     * @param  mixed  $level\n     * @param  string  $message\n     * @param  array  $context\n     *\n     * @return void\n     */\n    public function log($level, $message, array $context = [])\n    {\n        $this->driver()->log($level, $message, $context);\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->driver()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Log;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass LogServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('log', function () {\n            return new LogManager($this->app);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/Logger.php",
    "content": "<?php\n\nnamespace Illuminate\\Log;\n\nuse Closure;\nuse RuntimeException;\nuse Psr\\Log\\LoggerInterface;\nuse Illuminate\\Log\\Events\\MessageLogged;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Support\\Arrayable;\n\nclass Logger implements LoggerInterface\n{\n    /**\n     * The underlying logger implementation.\n     *\n     * @var \\Psr\\Log\\LoggerInterface\n     */\n    protected $logger;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher|null\n     */\n    protected $dispatcher;\n\n    /**\n     * Create a new log writer instance.\n     *\n     * @param  \\Psr\\Log\\LoggerInterface  $logger\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher|null  $dispatcher\n     * @return void\n     */\n    public function __construct(LoggerInterface $logger, Dispatcher $dispatcher = null)\n    {\n        $this->logger = $logger;\n        $this->dispatcher = $dispatcher;\n    }\n\n    /**\n     * Log an emergency message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function emergency($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log an alert message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function alert($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log a critical message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function critical($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log an error message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function error($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log a warning message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function warning($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log a notice to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function notice($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log an informational message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function info($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log a debug message to the logs.\n     *\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function debug($message, array $context = [])\n    {\n        $this->writeLog(__FUNCTION__, $message, $context);\n    }\n\n    /**\n     * Log a message to the logs.\n     *\n     * @param  string  $level\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function log($level, $message, array $context = [])\n    {\n        $this->writeLog($level, $message, $context);\n    }\n\n    /**\n     * Dynamically pass log calls into the writer.\n     *\n     * @param  string  $level\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    public function write($level, $message, array $context = [])\n    {\n        $this->writeLog($level, $message, $context);\n    }\n\n    /**\n     * Write a message to the log.\n     *\n     * @param  string  $level\n     * @param  string  $message\n     * @param  array  $context\n     * @return void\n     */\n    protected function writeLog($level, $message, $context)\n    {\n        $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);\n\n        $this->logger->{$level}($message, $context);\n    }\n\n    /**\n     * Register a new callback handler for when a log event is triggered.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     *\n     * @throws \\RuntimeException\n     */\n    public function listen(Closure $callback)\n    {\n        if (! isset($this->dispatcher)) {\n            throw new RuntimeException('Events dispatcher has not been set.');\n        }\n\n        $this->dispatcher->listen(MessageLogged::class, $callback);\n    }\n\n    /**\n     * Fires a log event.\n     *\n     * @param  string  $level\n     * @param  string  $message\n     * @param  array   $context\n     * @return void\n     */\n    protected function fireLogEvent($level, $message, array $context = [])\n    {\n        // If the event dispatcher is set, we will pass along the parameters to the\n        // log listeners. These are useful for building profilers or other tools\n        // that aggregate all of the log messages for a given \"request\" cycle.\n        if (isset($this->dispatcher)) {\n            $this->dispatcher->dispatch(new MessageLogged($level, $message, $context));\n        }\n    }\n\n    /**\n     * Format the parameters for the logger.\n     *\n     * @param  mixed  $message\n     * @return mixed\n     */\n    protected function formatMessage($message)\n    {\n        if (is_array($message)) {\n            return var_export($message, true);\n        } elseif ($message instanceof Jsonable) {\n            return $message->toJson();\n        } elseif ($message instanceof Arrayable) {\n            return var_export($message->toArray(), true);\n        }\n\n        return $message;\n    }\n\n    /**\n     * Get the underlying logger implementation.\n     *\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    public function getLogger()\n    {\n        return $this->logger;\n    }\n\n    /**\n     * Get the event dispatcher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public function getEventDispatcher()\n    {\n        return $this->dispatcher;\n    }\n\n    /**\n     * Set the event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $dispatcher\n     * @return void\n     */\n    public function setEventDispatcher(Dispatcher $dispatcher)\n    {\n        $this->dispatcher = $dispatcher;\n    }\n\n    /**\n     * Dynamically proxy method calls to the underlying logger.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->logger->{$method}(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/ParsesLogConfiguration.php",
    "content": "<?php\n\nnamespace Illuminate\\Log;\n\nuse InvalidArgumentException;\nuse Monolog\\Logger as Monolog;\n\ntrait ParsesLogConfiguration\n{\n    /**\n     * The Log levels.\n     *\n     * @var array\n     */\n    protected $levels = [\n        'debug' => Monolog::DEBUG,\n        'info' => Monolog::INFO,\n        'notice' => Monolog::NOTICE,\n        'warning' => Monolog::WARNING,\n        'error' => Monolog::ERROR,\n        'critical' => Monolog::CRITICAL,\n        'alert' => Monolog::ALERT,\n        'emergency' => Monolog::EMERGENCY,\n    ];\n\n    /**\n     * Get fallback log channel name.\n     *\n     * @return string\n     */\n    abstract protected function getFallbackChannelName();\n\n    /**\n     * Parse the string level into a Monolog constant.\n     *\n     * @param  array  $config\n     * @return int\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function level(array $config)\n    {\n        $level = $config['level'] ?? 'debug';\n\n        if (isset($this->levels[$level])) {\n            return $this->levels[$level];\n        }\n\n        throw new InvalidArgumentException('Invalid log level.');\n    }\n\n    /**\n     * Extract the log channel from the given configuration.\n     *\n     * @param  array  $config\n     * @return string\n     */\n    protected function parseChannel(array $config)\n    {\n        if (! isset($config['name'])) {\n            return $this->getFallbackChannelName();\n        }\n\n        return $config['name'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Log/composer.json",
    "content": "{\n    \"name\": \"illuminate/log\",\n    \"description\": \"The Illuminate Log package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"monolog/monolog\": \"^1.11\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Log\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSending.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Events;\n\nclass MessageSending\n{\n    /**\n     * The Swift message instance.\n     *\n     * @var \\Swift_Message\n     */\n    public $message;\n\n    /**\n     * The message data.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Swift_Message $message\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($message, $data = [])\n    {\n        $this->data = $data;\n        $this->message = $message;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Events/MessageSent.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Events;\n\nclass MessageSent\n{\n    /**\n     * The Swift message instance.\n     *\n     * @var \\Swift_Message\n     */\n    public $message;\n\n    /**\n     * The message data.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Swift_Message  $message\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($message, $data = [])\n    {\n        $this->data = $data;\n        $this->message = $message;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Swift_Mailer;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Swift_DependencyContainer;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass MailServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerSwiftMailer();\n        $this->registerIlluminateMailer();\n        $this->registerMarkdownRenderer();\n    }\n\n    /**\n     * Register the Illuminate mailer instance.\n     *\n     * @return void\n     */\n    protected function registerIlluminateMailer()\n    {\n        $this->app->singleton('mailer', function () {\n            $config = $this->app->make('config')->get('mail');\n\n            // Once we have create the mailer instance, we will set a container instance\n            // on the mailer. This allows us to resolve mailer classes via containers\n            // for maximum testability on said classes instead of passing Closures.\n            $mailer = new Mailer(\n                $this->app['view'],\n                $this->app['swift.mailer'],\n                $this->app['events']\n            );\n\n            if ($this->app->bound('queue')) {\n                $mailer->setQueue($this->app['queue']);\n            }\n\n            // Next we will set all of the global addresses on this mailer, which allows\n            // for easy unification of all \"from\" addresses as well as easy debugging\n            // of sent messages since they get be sent into a single email address.\n            foreach (['from', 'reply_to', 'to'] as $type) {\n                $this->setGlobalAddress($mailer, $config, $type);\n            }\n\n            return $mailer;\n        });\n    }\n\n    /**\n     * Set a global address on the mailer by type.\n     *\n     * @param  \\Illuminate\\Mail\\Mailer  $mailer\n     * @param  array  $config\n     * @param  string  $type\n     * @return void\n     */\n    protected function setGlobalAddress($mailer, array $config, $type)\n    {\n        $address = Arr::get($config, $type);\n\n        if (is_array($address) && isset($address['address'])) {\n            $mailer->{'always'.Str::studly($type)}($address['address'], $address['name']);\n        }\n    }\n\n    /**\n     * Register the Swift Mailer instance.\n     *\n     * @return void\n     */\n    public function registerSwiftMailer()\n    {\n        $this->registerSwiftTransport();\n\n        // Once we have the transporter registered, we will register the actual Swift\n        // mailer instance, passing in the transport instances, which allows us to\n        // override this transporter instances during app start-up if necessary.\n        $this->app->singleton('swift.mailer', function () {\n            if ($domain = $this->app->make('config')->get('mail.domain')) {\n                Swift_DependencyContainer::getInstance()\n                                ->register('mime.idgenerator.idright')\n                                ->asValue($domain);\n            }\n\n            return new Swift_Mailer($this->app['swift.transport']->driver());\n        });\n    }\n\n    /**\n     * Register the Swift Transport instance.\n     *\n     * @return void\n     */\n    protected function registerSwiftTransport()\n    {\n        $this->app->singleton('swift.transport', function () {\n            return new TransportManager($this->app);\n        });\n    }\n\n    /**\n     * Register the Markdown renderer instance.\n     *\n     * @return void\n     */\n    protected function registerMarkdownRenderer()\n    {\n        if ($this->app->runningInConsole()) {\n            $this->publishes([\n                __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/mail'),\n            ], 'laravel-mail');\n        }\n\n        $this->app->singleton(Markdown::class, function () {\n            $config = $this->app->make('config');\n\n            return new Markdown($this->app->make('view'), [\n                'theme' => $config->get('mail.markdown.theme', 'default'),\n                'paths' => $config->get('mail.markdown.paths', []),\n            ]);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            'mailer', 'swift.mailer', 'swift.transport', Markdown::class,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Mailable.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse ReflectionClass;\nuse ReflectionProperty;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\Traits\\Localizable;\nuse Illuminate\\Contracts\\Support\\Renderable;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\nuse Illuminate\\Contracts\\Queue\\Factory as Queue;\nuse Illuminate\\Contracts\\Mail\\Mailer as MailerContract;\nuse Illuminate\\Contracts\\Mail\\Mailable as MailableContract;\nuse Illuminate\\Contracts\\Filesystem\\Factory as FilesystemFactory;\n\nclass Mailable implements MailableContract, Renderable\n{\n    use ForwardsCalls, Localizable;\n\n    /**\n     * The locale of the message.\n     *\n     * @var string\n     */\n    public $locale;\n\n    /**\n     * The person the message is from.\n     *\n     * @var array\n     */\n    public $from = [];\n\n    /**\n     * The \"to\" recipients of the message.\n     *\n     * @var array\n     */\n    public $to = [];\n\n    /**\n     * The \"cc\" recipients of the message.\n     *\n     * @var array\n     */\n    public $cc = [];\n\n    /**\n     * The \"bcc\" recipients of the message.\n     *\n     * @var array\n     */\n    public $bcc = [];\n\n    /**\n     * The \"reply to\" recipients of the message.\n     *\n     * @var array\n     */\n    public $replyTo = [];\n\n    /**\n     * The subject of the message.\n     *\n     * @var string\n     */\n    public $subject;\n\n    /**\n     * The Markdown template for the message (if applicable).\n     *\n     * @var string\n     */\n    protected $markdown;\n\n    /**\n     * The HTML to use for the message.\n     *\n     * @var string\n     */\n    protected $html;\n\n    /**\n     * The view to use for the message.\n     *\n     * @var string\n     */\n    public $view;\n\n    /**\n     * The plain text view to use for the message.\n     *\n     * @var string\n     */\n    public $textView;\n\n    /**\n     * The view data for the message.\n     *\n     * @var array\n     */\n    public $viewData = [];\n\n    /**\n     * The attachments for the message.\n     *\n     * @var array\n     */\n    public $attachments = [];\n\n    /**\n     * The raw attachments for the message.\n     *\n     * @var array\n     */\n    public $rawAttachments = [];\n\n    /**\n     * The attachments from a storage disk.\n     *\n     * @var array\n     */\n    public $diskAttachments = [];\n\n    /**\n     * The callbacks for the message.\n     *\n     * @var array\n     */\n    public $callbacks = [];\n\n    /**\n     * The callback that should be invoked while building the view data.\n     *\n     * @var callable\n     */\n    public static $viewDataCallback;\n\n    /**\n     * Send the message using the given mailer.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @return void\n     */\n    public function send(MailerContract $mailer)\n    {\n        return $this->withLocale($this->locale, function () use ($mailer) {\n            Container::getInstance()->call([$this, 'build']);\n\n            return $mailer->send($this->buildView(), $this->buildViewData(), function ($message) {\n                $this->buildFrom($message)\n                     ->buildRecipients($message)\n                     ->buildSubject($message)\n                     ->runCallbacks($message)\n                     ->buildAttachments($message);\n            });\n        });\n    }\n\n    /**\n     * Queue the message for sending.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Factory  $queue\n     * @return mixed\n     */\n    public function queue(Queue $queue)\n    {\n        if (isset($this->delay)) {\n            return $this->later($this->delay, $queue);\n        }\n\n        $connection = property_exists($this, 'connection') ? $this->connection : null;\n\n        $queueName = property_exists($this, 'queue') ? $this->queue : null;\n\n        return $queue->connection($connection)->pushOn(\n            $queueName ?: null, new SendQueuedMailable($this)\n        );\n    }\n\n    /**\n     * Deliver the queued message after the given delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  \\Illuminate\\Contracts\\Queue\\Factory  $queue\n     * @return mixed\n     */\n    public function later($delay, Queue $queue)\n    {\n        $connection = property_exists($this, 'connection') ? $this->connection : null;\n\n        $queueName = property_exists($this, 'queue') ? $this->queue : null;\n\n        return $queue->connection($connection)->laterOn(\n            $queueName ?: null, $delay, new SendQueuedMailable($this)\n        );\n    }\n\n    /**\n     * Render the mailable into a view.\n     *\n     * @return \\Illuminate\\View\\View\n     *\n     * @throws \\ReflectionException\n     */\n    public function render()\n    {\n        return $this->withLocale($this->locale, function () {\n            Container::getInstance()->call([$this, 'build']);\n\n            return Container::getInstance()->make('mailer')->render(\n                $this->buildView(), $this->buildViewData()\n            );\n        });\n    }\n\n    /**\n     * Build the view for the message.\n     *\n     * @return array|string\n     *\n     * @throws \\ReflectionException\n     */\n    protected function buildView()\n    {\n        if (isset($this->html)) {\n            return array_filter([\n                'html' => new HtmlString($this->html),\n                'text' => $this->textView ?? null,\n            ]);\n        }\n\n        if (isset($this->markdown)) {\n            return $this->buildMarkdownView();\n        }\n\n        if (isset($this->view, $this->textView)) {\n            return [$this->view, $this->textView];\n        } elseif (isset($this->textView)) {\n            return ['text' => $this->textView];\n        }\n\n        return $this->view;\n    }\n\n    /**\n     * Build the Markdown view for the message.\n     *\n     * @return array\n     *\n     * @throws \\ReflectionException\n     */\n    protected function buildMarkdownView()\n    {\n        $markdown = Container::getInstance()->make(Markdown::class);\n\n        if (isset($this->theme)) {\n            $markdown->theme($this->theme);\n        }\n\n        $data = $this->buildViewData();\n\n        return [\n            'html' => $markdown->render($this->markdown, $data),\n            'text' => $this->buildMarkdownText($markdown, $data),\n        ];\n    }\n\n    /**\n     * Build the view data for the message.\n     *\n     * @return array\n     *\n     * @throws \\ReflectionException\n     */\n    public function buildViewData()\n    {\n        $data = $this->viewData;\n\n        if (static::$viewDataCallback) {\n            $data = array_merge($data, call_user_func(static::$viewDataCallback, $this));\n        }\n\n        foreach ((new ReflectionClass($this))->getProperties(ReflectionProperty::IS_PUBLIC) as $property) {\n            if ($property->getDeclaringClass()->getName() !== self::class) {\n                $data[$property->getName()] = $property->getValue($this);\n            }\n        }\n\n        return $data;\n    }\n\n    /**\n     * Build the text view for a Markdown message.\n     *\n     * @param  \\Illuminate\\Mail\\Markdown  $markdown\n     * @param  array  $data\n     * @return string\n     */\n    protected function buildMarkdownText($markdown, $data)\n    {\n        return $this->textView\n                ?? $markdown->renderText($this->markdown, $data);\n    }\n\n    /**\n     * Add the sender to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return $this\n     */\n    protected function buildFrom($message)\n    {\n        if (! empty($this->from)) {\n            $message->from($this->from[0]['address'], $this->from[0]['name']);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add all of the recipients to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return $this\n     */\n    protected function buildRecipients($message)\n    {\n        foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) {\n            foreach ($this->{$type} as $recipient) {\n                $message->{$type}($recipient['address'], $recipient['name']);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the subject for the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return $this\n     */\n    protected function buildSubject($message)\n    {\n        if ($this->subject) {\n            $message->subject($this->subject);\n        } else {\n            $message->subject(Str::title(Str::snake(class_basename($this), ' ')));\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add all of the attachments to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return $this\n     */\n    protected function buildAttachments($message)\n    {\n        foreach ($this->attachments as $attachment) {\n            $message->attach($attachment['file'], $attachment['options']);\n        }\n\n        foreach ($this->rawAttachments as $attachment) {\n            $message->attachData(\n                $attachment['data'], $attachment['name'], $attachment['options']\n            );\n        }\n\n        $this->buildDiskAttachments($message);\n\n        return $this;\n    }\n\n    /**\n     * Add all of the disk attachments to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return void\n     */\n    protected function buildDiskAttachments($message)\n    {\n        foreach ($this->diskAttachments as $attachment) {\n            $storage = Container::getInstance()->make(\n                FilesystemFactory::class\n            )->disk($attachment['disk']);\n\n            $message->attachData(\n                $storage->get($attachment['path']),\n                $attachment['name'] ?? basename($attachment['path']),\n                array_merge(['mime' => $storage->mimeType($attachment['path'])], $attachment['options'])\n            );\n        }\n    }\n\n    /**\n     * Run the callbacks for the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return $this\n     */\n    protected function runCallbacks($message)\n    {\n        foreach ($this->callbacks as $callback) {\n            $callback($message->getSwiftMessage());\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the locale of the message.\n     *\n     * @param  string  $locale\n     * @return $this\n     */\n    public function locale($locale)\n    {\n        $this->locale = $locale;\n\n        return $this;\n    }\n\n    /**\n     * Set the priority of this message.\n     *\n     * The value is an integer where 1 is the highest priority and 5 is the lowest.\n     *\n     * @param  int  $level\n     * @return $this\n     */\n    public function priority($level = 3)\n    {\n        $this->callbacks[] = function ($message) use ($level) {\n            $message->setPriority($level);\n        };\n\n        return $this;\n    }\n\n    /**\n     * Set the sender of the message.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function from($address, $name = null)\n    {\n        return $this->setAddress($address, $name, 'from');\n    }\n\n    /**\n     * Determine if the given recipient is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function hasFrom($address, $name = null)\n    {\n        return $this->hasRecipient($address, $name, 'from');\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function to($address, $name = null)\n    {\n        return $this->setAddress($address, $name, 'to');\n    }\n\n    /**\n     * Determine if the given recipient is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function hasTo($address, $name = null)\n    {\n        return $this->hasRecipient($address, $name, 'to');\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function cc($address, $name = null)\n    {\n        return $this->setAddress($address, $name, 'cc');\n    }\n\n    /**\n     * Determine if the given recipient is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function hasCc($address, $name = null)\n    {\n        return $this->hasRecipient($address, $name, 'cc');\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function bcc($address, $name = null)\n    {\n        return $this->setAddress($address, $name, 'bcc');\n    }\n\n    /**\n     * Determine if the given recipient is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function hasBcc($address, $name = null)\n    {\n        return $this->hasRecipient($address, $name, 'bcc');\n    }\n\n    /**\n     * Set the \"reply to\" address of the message.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function replyTo($address, $name = null)\n    {\n        return $this->setAddress($address, $name, 'replyTo');\n    }\n\n    /**\n     * Determine if the given replyTo is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function hasReplyTo($address, $name = null)\n    {\n        return $this->hasRecipient($address, $name, 'replyTo');\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * All recipients are stored internally as [['name' => ?, 'address' => ?]]\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @param  string  $property\n     * @return $this\n     */\n    protected function setAddress($address, $name = null, $property = 'to')\n    {\n        foreach ($this->addressesToArray($address, $name) as $recipient) {\n            $recipient = $this->normalizeRecipient($recipient);\n\n            $this->{$property}[] = [\n                'name' => $recipient->name ?? null,\n                'address' => $recipient->email,\n            ];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Convert the given recipient arguments to an array.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @return array\n     */\n    protected function addressesToArray($address, $name)\n    {\n        if (! is_array($address) && ! $address instanceof Collection) {\n            $address = is_string($name) ? [['name' => $name, 'email' => $address]] : [$address];\n        }\n\n        return $address;\n    }\n\n    /**\n     * Convert the given recipient into an object.\n     *\n     * @param  mixed  $recipient\n     * @return object\n     */\n    protected function normalizeRecipient($recipient)\n    {\n        if (is_array($recipient)) {\n            return (object) $recipient;\n        } elseif (is_string($recipient)) {\n            return (object) ['email' => $recipient];\n        }\n\n        return $recipient;\n    }\n\n    /**\n     * Determine if the given recipient is set on the mailable.\n     *\n     * @param  object|array|string  $address\n     * @param  string|null  $name\n     * @param  string  $property\n     * @return bool\n     */\n    protected function hasRecipient($address, $name = null, $property = 'to')\n    {\n        $expected = $this->normalizeRecipient(\n            $this->addressesToArray($address, $name)[0]\n        );\n\n        $expected = [\n            'name' => $expected->name ?? null,\n            'address' => $expected->email,\n        ];\n\n        return collect($this->{$property})->contains(function ($actual) use ($expected) {\n            if (! isset($expected['name'])) {\n                return $actual['address'] == $expected['address'];\n            }\n\n            return $actual == $expected;\n        });\n    }\n\n    /**\n     * Set the subject of the message.\n     *\n     * @param  string  $subject\n     * @return $this\n     */\n    public function subject($subject)\n    {\n        $this->subject = $subject;\n\n        return $this;\n    }\n\n    /**\n     * Set the Markdown template for the message.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @return $this\n     */\n    public function markdown($view, array $data = [])\n    {\n        $this->markdown = $view;\n        $this->viewData = array_merge($this->viewData, $data);\n\n        return $this;\n    }\n\n    /**\n     * Set the view and view data for the message.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @return $this\n     */\n    public function view($view, array $data = [])\n    {\n        $this->view = $view;\n        $this->viewData = array_merge($this->viewData, $data);\n\n        return $this;\n    }\n\n    /**\n     * Set the rendered HTML content for the message.\n     *\n     * @param  string  $html\n     * @return $this\n     */\n    public function html($html)\n    {\n        $this->html = $html;\n\n        return $this;\n    }\n\n    /**\n     * Set the plain text view for the message.\n     *\n     * @param  string  $textView\n     * @param  array  $data\n     * @return $this\n     */\n    public function text($textView, array $data = [])\n    {\n        $this->textView = $textView;\n        $this->viewData = array_merge($this->viewData, $data);\n\n        return $this;\n    }\n\n    /**\n     * Set the view data for the message.\n     *\n     * @param  string|array  $key\n     * @param  mixed   $value\n     * @return $this\n     */\n    public function with($key, $value = null)\n    {\n        if (is_array($key)) {\n            $this->viewData = array_merge($this->viewData, $key);\n        } else {\n            $this->viewData[$key] = $value;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Attach a file to the message.\n     *\n     * @param  string  $file\n     * @param  array  $options\n     * @return $this\n     */\n    public function attach($file, array $options = [])\n    {\n        $this->attachments[] = compact('file', 'options');\n\n        return $this;\n    }\n\n    /**\n     * Attach a file to the message from storage.\n     *\n     * @param  string  $path\n     * @param  string|null  $name\n     * @param  array  $options\n     * @return $this\n     */\n    public function attachFromStorage($path, $name = null, array $options = [])\n    {\n        return $this->attachFromStorageDisk(null, $path, $name, $options);\n    }\n\n    /**\n     * Attach a file to the message from storage.\n     *\n     * @param  string  $disk\n     * @param  string  $path\n     * @param  string|null  $name\n     * @param  array  $options\n     * @return $this\n     */\n    public function attachFromStorageDisk($disk, $path, $name = null, array $options = [])\n    {\n        $this->diskAttachments[] = [\n            'disk' => $disk,\n            'path' => $path,\n            'name' => $name ?? basename($path),\n            'options' => $options,\n        ];\n\n        return $this;\n    }\n\n    /**\n     * Attach in-memory data as an attachment.\n     *\n     * @param  string  $data\n     * @param  string  $name\n     * @param  array  $options\n     * @return $this\n     */\n    public function attachData($data, $name, array $options = [])\n    {\n        $this->rawAttachments[] = compact('data', 'name', 'options');\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to be called with the Swift message instance.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function withSwiftMessage($callback)\n    {\n        $this->callbacks[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Register a callback to be called while building the view data.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public static function buildViewDataUsing(callable $callback)\n    {\n        static::$viewDataCallback = $callback;\n    }\n\n    /**\n     * Dynamically bind parameters to the message.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return $this\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (Str::startsWith($method, 'with')) {\n            return $this->with(Str::camel(substr($method, 4)), $parameters[0]);\n        }\n\n        static::throwBadMethodCallException($method);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Mailer.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Swift_Mailer;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Contracts\\View\\Factory;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Htmlable;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Mail\\Mailer as MailerContract;\nuse Illuminate\\Contracts\\Queue\\Factory as QueueContract;\nuse Illuminate\\Contracts\\Mail\\Mailable as MailableContract;\nuse Illuminate\\Contracts\\Mail\\MailQueue as MailQueueContract;\n\nclass Mailer implements MailerContract, MailQueueContract\n{\n    use Macroable;\n\n    /**\n     * The view factory instance.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Factory\n     */\n    protected $views;\n\n    /**\n     * The Swift Mailer instance.\n     *\n     * @var \\Swift_Mailer\n     */\n    protected $swift;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher|null\n     */\n    protected $events;\n\n    /**\n     * The global from address and name.\n     *\n     * @var array\n     */\n    protected $from;\n\n    /**\n     * The global reply-to address and name.\n     *\n     * @var array\n     */\n    protected $replyTo;\n\n    /**\n     * The global to address and name.\n     *\n     * @var array\n     */\n    protected $to;\n\n    /**\n     * The queue factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Factory\n     */\n    protected $queue;\n\n    /**\n     * Array of failed recipients.\n     *\n     * @var array\n     */\n    protected $failedRecipients = [];\n\n    /**\n     * Create a new Mailer instance.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\Factory  $views\n     * @param  \\Swift_Mailer  $swift\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher|null  $events\n     * @return void\n     */\n    public function __construct(Factory $views, Swift_Mailer $swift, Dispatcher $events = null)\n    {\n        $this->views = $views;\n        $this->swift = $swift;\n        $this->events = $events;\n    }\n\n    /**\n     * Set the global from address and name.\n     *\n     * @param  string  $address\n     * @param  string|null  $name\n     * @return void\n     */\n    public function alwaysFrom($address, $name = null)\n    {\n        $this->from = compact('address', 'name');\n    }\n\n    /**\n     * Set the global reply-to address and name.\n     *\n     * @param  string  $address\n     * @param  string|null  $name\n     * @return void\n     */\n    public function alwaysReplyTo($address, $name = null)\n    {\n        $this->replyTo = compact('address', 'name');\n    }\n\n    /**\n     * Set the global to address and name.\n     *\n     * @param  string  $address\n     * @param  string|null  $name\n     * @return void\n     */\n    public function alwaysTo($address, $name = null)\n    {\n        $this->to = compact('address', 'name');\n    }\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function to($users)\n    {\n        return (new PendingMail($this))->to($users);\n    }\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function cc($users)\n    {\n        return (new PendingMail($this))->cc($users);\n    }\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function bcc($users)\n    {\n        return (new PendingMail($this))->bcc($users);\n    }\n\n    /**\n     * Send a new message with only an HTML part.\n     *\n     * @param  string  $html\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function html($html, $callback)\n    {\n        return $this->send(['html' => new HtmlString($html)], [], $callback);\n    }\n\n    /**\n     * Send a new message with only a raw text part.\n     *\n     * @param  string  $text\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function raw($text, $callback)\n    {\n        return $this->send(['raw' => $text], [], $callback);\n    }\n\n    /**\n     * Send a new message with only a plain part.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function plain($view, array $data, $callback)\n    {\n        return $this->send(['text' => $view], $data, $callback);\n    }\n\n    /**\n     * Render the given message as a view.\n     *\n     * @param  string|array  $view\n     * @param  array  $data\n     * @return string\n     */\n    public function render($view, array $data = [])\n    {\n        // First we need to parse the view, which could either be a string or an array\n        // containing both an HTML and plain text versions of the view which should\n        // be used when sending an e-mail. We will extract both of them out here.\n        [$view, $plain, $raw] = $this->parseView($view);\n\n        $data['message'] = $this->createMessage();\n\n        return $this->renderView($view ?: $plain, $data);\n    }\n\n    /**\n     * Send a new message using a view.\n     *\n     * @param  string|array|\\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  array  $data\n     * @param  \\Closure|string|null  $callback\n     * @return void\n     */\n    public function send($view, array $data = [], $callback = null)\n    {\n        if ($view instanceof MailableContract) {\n            return $this->sendMailable($view);\n        }\n\n        // First we need to parse the view, which could either be a string or an array\n        // containing both an HTML and plain text versions of the view which should\n        // be used when sending an e-mail. We will extract both of them out here.\n        [$view, $plain, $raw] = $this->parseView($view);\n\n        $data['message'] = $message = $this->createMessage();\n\n        // Once we have retrieved the view content for the e-mail we will set the body\n        // of this message using the HTML type, which will provide a simple wrapper\n        // to creating view based emails that are able to receive arrays of data.\n        call_user_func($callback, $message);\n\n        $this->addContent($message, $view, $plain, $raw, $data);\n\n        // If a global \"to\" address has been set, we will set that address on the mail\n        // message. This is primarily useful during local development in which each\n        // message should be delivered into a single mail address for inspection.\n        if (isset($this->to['address'])) {\n            $this->setGlobalToAndRemoveCcAndBcc($message);\n        }\n\n        // Next we will determine if the message should be sent. We give the developer\n        // one final chance to stop this message and then we will send it to all of\n        // its recipients. We will then fire the sent event for the sent message.\n        $swiftMessage = $message->getSwiftMessage();\n\n        if ($this->shouldSendMessage($swiftMessage, $data)) {\n            $this->sendSwiftMessage($swiftMessage);\n\n            $this->dispatchSentEvent($message, $data);\n        }\n    }\n\n    /**\n     * Send the given mailable.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $mailable\n     * @return mixed\n     */\n    protected function sendMailable(MailableContract $mailable)\n    {\n        return $mailable instanceof ShouldQueue\n                        ? $mailable->queue($this->queue)\n                        : $mailable->send($this);\n    }\n\n    /**\n     * Parse the given view name or array.\n     *\n     * @param  string|array  $view\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function parseView($view)\n    {\n        if (is_string($view)) {\n            return [$view, null, null];\n        }\n\n        // If the given view is an array with numeric keys, we will just assume that\n        // both a \"pretty\" and \"plain\" view were provided, so we will return this\n        // array as is, since it should contain both views with numerical keys.\n        if (is_array($view) && isset($view[0])) {\n            return [$view[0], $view[1], null];\n        }\n\n        // If this view is an array but doesn't contain numeric keys, we will assume\n        // the views are being explicitly specified and will extract them via the\n        // named keys instead, allowing the developers to use one or the other.\n        if (is_array($view)) {\n            return [\n                $view['html'] ?? null,\n                $view['text'] ?? null,\n                $view['raw'] ?? null,\n            ];\n        }\n\n        throw new InvalidArgumentException('Invalid view.');\n    }\n\n    /**\n     * Add the content to a given message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @param  string  $view\n     * @param  string  $plain\n     * @param  string  $raw\n     * @param  array  $data\n     * @return void\n     */\n    protected function addContent($message, $view, $plain, $raw, $data)\n    {\n        if (isset($view)) {\n            $message->setBody($this->renderView($view, $data), 'text/html');\n        }\n\n        if (isset($plain)) {\n            $method = isset($view) ? 'addPart' : 'setBody';\n\n            $message->$method($this->renderView($plain, $data), 'text/plain');\n        }\n\n        if (isset($raw)) {\n            $method = (isset($view) || isset($plain)) ? 'addPart' : 'setBody';\n\n            $message->$method($raw, 'text/plain');\n        }\n    }\n\n    /**\n     * Render the given view.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @return string\n     */\n    protected function renderView($view, $data)\n    {\n        return $view instanceof Htmlable\n                        ? $view->toHtml()\n                        : $this->views->make($view, $data)->render();\n    }\n\n    /**\n     * Set the global \"to\" address on the given message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @return void\n     */\n    protected function setGlobalToAndRemoveCcAndBcc($message)\n    {\n        $message->to($this->to['address'], $this->to['name'], true);\n        $message->cc(null, null, true);\n        $message->bcc(null, null, true);\n    }\n\n    /**\n     * Queue a new e-mail message for sending.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  string|null  $queue\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function queue($view, $queue = null)\n    {\n        if (! $view instanceof MailableContract) {\n            throw new InvalidArgumentException('Only mailables may be queued.');\n        }\n\n        if (is_string($queue)) {\n            $view->onQueue($queue);\n        }\n\n        return $view->queue($this->queue);\n    }\n\n    /**\n     * Queue a new e-mail message for sending on the given queue.\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @return mixed\n     */\n    public function onQueue($queue, $view)\n    {\n        return $this->queue($view, $queue);\n    }\n\n    /**\n     * Queue a new e-mail message for sending on the given queue.\n     *\n     * This method didn't match rest of framework's \"onQueue\" phrasing. Added \"onQueue\".\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @return mixed\n     */\n    public function queueOn($queue, $view)\n    {\n        return $this->onQueue($queue, $view);\n    }\n\n    /**\n     * Queue a new e-mail message for sending after (n) seconds.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  string|null  $queue\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function later($delay, $view, $queue = null)\n    {\n        if (! $view instanceof MailableContract) {\n            throw new InvalidArgumentException('Only mailables may be queued.');\n        }\n\n        return $view->later($delay, is_null($queue) ? $this->queue : $queue);\n    }\n\n    /**\n     * Queue a new e-mail message for sending after (n) seconds on the given queue.\n     *\n     * @param  string  $queue\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @return mixed\n     */\n    public function laterOn($queue, $delay, $view)\n    {\n        return $this->later($delay, $view, $queue);\n    }\n\n    /**\n     * Create a new message instance.\n     *\n     * @return \\Illuminate\\Mail\\Message\n     */\n    protected function createMessage()\n    {\n        $message = new Message($this->swift->createMessage('message'));\n\n        // If a global from address has been specified we will set it on every message\n        // instance so the developer does not have to repeat themselves every time\n        // they create a new message. We'll just go ahead and push this address.\n        if (! empty($this->from['address'])) {\n            $message->from($this->from['address'], $this->from['name']);\n        }\n\n        // When a global reply address was specified we will set this on every message\n        // instance so the developer does not have to repeat themselves every time\n        // they create a new message. We will just go ahead and push this address.\n        if (! empty($this->replyTo['address'])) {\n            $message->replyTo($this->replyTo['address'], $this->replyTo['name']);\n        }\n\n        return $message;\n    }\n\n    /**\n     * Send a Swift Message instance.\n     *\n     * @param  \\Swift_Message  $message\n     * @return int|null\n     */\n    protected function sendSwiftMessage($message)\n    {\n        try {\n            return $this->swift->send($message, $this->failedRecipients);\n        } finally {\n            $this->forceReconnection();\n        }\n    }\n\n    /**\n     * Determines if the message can be sent.\n     *\n     * @param  \\Swift_Message  $message\n     * @param  array  $data\n     * @return bool\n     */\n    protected function shouldSendMessage($message, $data = [])\n    {\n        if (! $this->events) {\n            return true;\n        }\n\n        return $this->events->until(\n            new Events\\MessageSending($message, $data)\n        ) !== false;\n    }\n\n    /**\n     * Dispatch the message sent event.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $message\n     * @param  array  $data\n     * @return void\n     */\n    protected function dispatchSentEvent($message, $data = [])\n    {\n        if ($this->events) {\n            $this->events->dispatch(\n                new Events\\MessageSent($message->getSwiftMessage(), $data)\n            );\n        }\n    }\n\n    /**\n     * Force the transport to re-connect.\n     *\n     * This will prevent errors in daemon queue situations.\n     *\n     * @return void\n     */\n    protected function forceReconnection()\n    {\n        $this->getSwiftMailer()->getTransport()->stop();\n    }\n\n    /**\n     * Get the array of failed recipients.\n     *\n     * @return array\n     */\n    public function failures()\n    {\n        return $this->failedRecipients;\n    }\n\n    /**\n     * Get the Swift Mailer instance.\n     *\n     * @return \\Swift_Mailer\n     */\n    public function getSwiftMailer()\n    {\n        return $this->swift;\n    }\n\n    /**\n     * Get the view factory instance.\n     *\n     * @return \\Illuminate\\Contracts\\View\\Factory\n     */\n    public function getViewFactory()\n    {\n        return $this->views;\n    }\n\n    /**\n     * Set the Swift Mailer instance.\n     *\n     * @param  \\Swift_Mailer  $swift\n     * @return void\n     */\n    public function setSwiftMailer($swift)\n    {\n        $this->swift = $swift;\n    }\n\n    /**\n     * Set the queue manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Factory  $queue\n     * @return $this\n     */\n    public function setQueue(QueueContract $queue)\n    {\n        $this->queue = $queue;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Markdown.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Parsedown;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Contracts\\View\\Factory as ViewFactory;\nuse TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles;\n\nclass Markdown\n{\n    /**\n     * The view factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Factory\n     */\n    protected $view;\n\n    /**\n     * The current theme being used when generating emails.\n     *\n     * @var string\n     */\n    protected $theme = 'default';\n\n    /**\n     * The registered component paths.\n     *\n     * @var array\n     */\n    protected $componentPaths = [];\n\n    /**\n     * Create a new Markdown renderer instance.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\Factory  $view\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(ViewFactory $view, array $options = [])\n    {\n        $this->view = $view;\n        $this->theme = $options['theme'] ?? 'default';\n        $this->loadComponentsFrom($options['paths'] ?? []);\n    }\n\n    /**\n     * Render the Markdown template into HTML.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @param  \\TijsVerkoyen\\CssToInlineStyles\\CssToInlineStyles|null  $inliner\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    public function render($view, array $data = [], $inliner = null)\n    {\n        $this->view->flushFinderCache();\n\n        $contents = $this->view->replaceNamespace(\n            'mail', $this->htmlComponentPaths()\n        )->make($view, $data)->render();\n\n        return new HtmlString(($inliner ?: new CssToInlineStyles)->convert(\n            $contents, $this->view->make('mail::themes.'.$this->theme)->render()\n        ));\n    }\n\n    /**\n     * Render the Markdown template into text.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    public function renderText($view, array $data = [])\n    {\n        $this->view->flushFinderCache();\n\n        $contents = $this->view->replaceNamespace(\n            'mail', $this->textComponentPaths()\n        )->make($view, $data)->render();\n\n        return new HtmlString(\n            html_entity_decode(preg_replace(\"/[\\r\\n]{2,}/\", \"\\n\\n\", $contents), ENT_QUOTES, 'UTF-8')\n        );\n    }\n\n    /**\n     * Parse the given Markdown text into HTML.\n     *\n     * @param  string  $text\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    public static function parse($text)\n    {\n        $parsedown = new Parsedown;\n\n        return new HtmlString($parsedown->text($text));\n    }\n\n    /**\n     * Get the HTML component paths.\n     *\n     * @return array\n     */\n    public function htmlComponentPaths()\n    {\n        return array_map(function ($path) {\n            return $path.'/html';\n        }, $this->componentPaths());\n    }\n\n    /**\n     * Get the text component paths.\n     *\n     * @return array\n     */\n    public function textComponentPaths()\n    {\n        return array_map(function ($path) {\n            return $path.'/text';\n        }, $this->componentPaths());\n    }\n\n    /**\n     * Get the component paths.\n     *\n     * @return array\n     */\n    protected function componentPaths()\n    {\n        return array_unique(array_merge($this->componentPaths, [\n            __DIR__.'/resources/views',\n        ]));\n    }\n\n    /**\n     * Register new mail component paths.\n     *\n     * @param  array  $paths\n     * @return void\n     */\n    public function loadComponentsFrom(array $paths = [])\n    {\n        $this->componentPaths = $paths;\n    }\n\n    /**\n     * Set the default theme to be used.\n     *\n     * @param  string  $theme\n     * @return $this\n     */\n    public function theme($theme)\n    {\n        $this->theme = $theme;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Message.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Swift_Image;\nuse Swift_Attachment;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\n\n/**\n * @mixin \\Swift_Message\n */\nclass Message\n{\n    use ForwardsCalls;\n\n    /**\n     * The Swift Message instance.\n     *\n     * @var \\Swift_Message\n     */\n    protected $swift;\n\n    /**\n     * CIDs of files embedded in the message.\n     *\n     * @var array\n     */\n    protected $embeddedFiles = [];\n\n    /**\n     * Create a new message instance.\n     *\n     * @param  \\Swift_Message  $swift\n     * @return void\n     */\n    public function __construct($swift)\n    {\n        $this->swift = $swift;\n    }\n\n    /**\n     * Add a \"from\" address to the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function from($address, $name = null)\n    {\n        $this->swift->setFrom($address, $name);\n\n        return $this;\n    }\n\n    /**\n     * Set the \"sender\" of the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function sender($address, $name = null)\n    {\n        $this->swift->setSender($address, $name);\n\n        return $this;\n    }\n\n    /**\n     * Set the \"return path\" of the message.\n     *\n     * @param  string  $address\n     * @return $this\n     */\n    public function returnPath($address)\n    {\n        $this->swift->setReturnPath($address);\n\n        return $this;\n    }\n\n    /**\n     * Add a recipient to the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @param  bool  $override\n     * @return $this\n     */\n    public function to($address, $name = null, $override = false)\n    {\n        if ($override) {\n            $this->swift->setTo($address, $name);\n\n            return $this;\n        }\n\n        return $this->addAddresses($address, $name, 'To');\n    }\n\n    /**\n     * Add a carbon copy to the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @param  bool  $override\n     * @return $this\n     */\n    public function cc($address, $name = null, $override = false)\n    {\n        if ($override) {\n            $this->swift->setCc($address, $name);\n\n            return $this;\n        }\n\n        return $this->addAddresses($address, $name, 'Cc');\n    }\n\n    /**\n     * Add a blind carbon copy to the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @param  bool  $override\n     * @return $this\n     */\n    public function bcc($address, $name = null, $override = false)\n    {\n        if ($override) {\n            $this->swift->setBcc($address, $name);\n\n            return $this;\n        }\n\n        return $this->addAddresses($address, $name, 'Bcc');\n    }\n\n    /**\n     * Add a reply to address to the message.\n     *\n     * @param  string|array  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function replyTo($address, $name = null)\n    {\n        return $this->addAddresses($address, $name, 'ReplyTo');\n    }\n\n    /**\n     * Add a recipient to the message.\n     *\n     * @param  string|array  $address\n     * @param  string  $name\n     * @param  string  $type\n     * @return $this\n     */\n    protected function addAddresses($address, $name, $type)\n    {\n        if (is_array($address)) {\n            $this->swift->{\"set{$type}\"}($address, $name);\n        } else {\n            $this->swift->{\"add{$type}\"}($address, $name);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the subject of the message.\n     *\n     * @param  string  $subject\n     * @return $this\n     */\n    public function subject($subject)\n    {\n        $this->swift->setSubject($subject);\n\n        return $this;\n    }\n\n    /**\n     * Set the message priority level.\n     *\n     * @param  int  $level\n     * @return $this\n     */\n    public function priority($level)\n    {\n        $this->swift->setPriority($level);\n\n        return $this;\n    }\n\n    /**\n     * Attach a file to the message.\n     *\n     * @param  string  $file\n     * @param  array  $options\n     * @return $this\n     */\n    public function attach($file, array $options = [])\n    {\n        $attachment = $this->createAttachmentFromPath($file);\n\n        return $this->prepAttachment($attachment, $options);\n    }\n\n    /**\n     * Create a Swift Attachment instance.\n     *\n     * @param  string  $file\n     * @return \\Swift_Mime_Attachment\n     */\n    protected function createAttachmentFromPath($file)\n    {\n        return Swift_Attachment::fromPath($file);\n    }\n\n    /**\n     * Attach in-memory data as an attachment.\n     *\n     * @param  string  $data\n     * @param  string  $name\n     * @param  array  $options\n     * @return $this\n     */\n    public function attachData($data, $name, array $options = [])\n    {\n        $attachment = $this->createAttachmentFromData($data, $name);\n\n        return $this->prepAttachment($attachment, $options);\n    }\n\n    /**\n     * Create a Swift Attachment instance from data.\n     *\n     * @param  string  $data\n     * @param  string  $name\n     * @return \\Swift_Attachment\n     */\n    protected function createAttachmentFromData($data, $name)\n    {\n        return new Swift_Attachment($data, $name);\n    }\n\n    /**\n     * Embed a file in the message and get the CID.\n     *\n     * @param  string  $file\n     * @return string\n     */\n    public function embed($file)\n    {\n        if (isset($this->embeddedFiles[$file])) {\n            return $this->embeddedFiles[$file];\n        }\n\n        return $this->embeddedFiles[$file] = $this->swift->embed(\n            Swift_Image::fromPath($file)\n        );\n    }\n\n    /**\n     * Embed in-memory data in the message and get the CID.\n     *\n     * @param  string  $data\n     * @param  string  $name\n     * @param  string|null  $contentType\n     * @return string\n     */\n    public function embedData($data, $name, $contentType = null)\n    {\n        $image = new Swift_Image($data, $name, $contentType);\n\n        return $this->swift->embed($image);\n    }\n\n    /**\n     * Prepare and attach the given attachment.\n     *\n     * @param  \\Swift_Attachment  $attachment\n     * @param  array  $options\n     * @return $this\n     */\n    protected function prepAttachment($attachment, $options = [])\n    {\n        // First we will check for a MIME type on the message, which instructs the\n        // mail client on what type of attachment the file is so that it may be\n        // downloaded correctly by the user. The MIME option is not required.\n        if (isset($options['mime'])) {\n            $attachment->setContentType($options['mime']);\n        }\n\n        // If an alternative name was given as an option, we will set that on this\n        // attachment so that it will be downloaded with the desired names from\n        // the developer, otherwise the default file names will get assigned.\n        if (isset($options['as'])) {\n            $attachment->setFilename($options['as']);\n        }\n\n        $this->swift->attach($attachment);\n\n        return $this;\n    }\n\n    /**\n     * Get the underlying Swift Message instance.\n     *\n     * @return \\Swift_Message\n     */\n    public function getSwiftMessage()\n    {\n        return $this->swift;\n    }\n\n    /**\n     * Dynamically pass missing methods to the Swift instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->forwardCallTo($this->swift, $method, $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/PendingMail.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Mail\\Mailer as MailerContract;\nuse Illuminate\\Contracts\\Translation\\HasLocalePreference;\nuse Illuminate\\Contracts\\Mail\\Mailable as MailableContract;\n\nclass PendingMail\n{\n    /**\n     * The mailer instance.\n     *\n     * @var \\Illuminate\\Contracts\\Mail\\Mailer\n     */\n    protected $mailer;\n\n    /**\n     * The locale of the message.\n     *\n     * @var string\n     */\n    protected $locale;\n\n    /**\n     * The \"to\" recipients of the message.\n     *\n     * @var array\n     */\n    protected $to = [];\n\n    /**\n     * The \"cc\" recipients of the message.\n     *\n     * @var array\n     */\n    protected $cc = [];\n\n    /**\n     * The \"bcc\" recipients of the message.\n     *\n     * @var array\n     */\n    protected $bcc = [];\n\n    /**\n     * Create a new mailable mailer instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @return void\n     */\n    public function __construct(MailerContract $mailer)\n    {\n        $this->mailer = $mailer;\n    }\n\n    /**\n     * Set the locale of the message.\n     *\n     * @param  string  $locale\n     * @return $this\n     */\n    public function locale($locale)\n    {\n        $this->locale = $locale;\n\n        return $this;\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  mixed  $users\n     * @return $this\n     */\n    public function to($users)\n    {\n        $this->to = $users;\n\n        if (! $this->locale && $users instanceof HasLocalePreference) {\n            $this->locale($users->preferredLocale());\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  mixed  $users\n     * @return $this\n     */\n    public function cc($users)\n    {\n        $this->cc = $users;\n\n        return $this;\n    }\n\n    /**\n     * Set the recipients of the message.\n     *\n     * @param  mixed  $users\n     * @return $this\n     */\n    public function bcc($users)\n    {\n        $this->bcc = $users;\n\n        return $this;\n    }\n\n    /**\n     * Send a new mailable message instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $mailable\n     *\n     * @return mixed\n     */\n    public function send(MailableContract $mailable)\n    {\n        if ($mailable instanceof ShouldQueue) {\n            return $this->queue($mailable);\n        }\n\n        return $this->mailer->send($this->fill($mailable));\n    }\n\n    /**\n     * Send a mailable message immediately.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function sendNow(MailableContract $mailable)\n    {\n        return $this->mailer->send($this->fill($mailable));\n    }\n\n    /**\n     * Push the given mailable onto the queue.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function queue(MailableContract $mailable)\n    {\n        $mailable = $this->fill($mailable);\n\n        if (isset($mailable->delay)) {\n            return $this->mailer->later($mailable->delay, $mailable);\n        }\n\n        return $this->mailer->queue($mailable);\n    }\n\n    /**\n     * Deliver the queued message after the given delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function later($delay, MailableContract $mailable)\n    {\n        return $this->mailer->later($delay, $this->fill($mailable));\n    }\n\n    /**\n     * Populate the mailable with the addresses.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return \\Illuminate\\Mail\\Mailable\n     */\n    protected function fill(MailableContract $mailable)\n    {\n        return $mailable->to($this->to)\n                        ->cc($this->cc)\n                        ->bcc($this->bcc)\n                        ->locale($this->locale);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Illuminate\\Contracts\\Mail\\Mailer as MailerContract;\nuse Illuminate\\Contracts\\Mail\\Mailable as MailableContract;\n\nclass SendQueuedMailable\n{\n    /**\n     * The mailable message instance.\n     *\n     * @var \\Illuminate\\Contracts\\Mail\\Mailable\n     */\n    public $mailable;\n\n    /**\n     * The number of times the job may be attempted.\n     *\n     * @var int\n     */\n    public $tries;\n\n    /**\n     * The number of seconds the job can run before timing out.\n     *\n     * @var int\n     */\n    public $timeout;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable  $mailable\n     * @return void\n     */\n    public function __construct(MailableContract $mailable)\n    {\n        $this->mailable = $mailable;\n        $this->tries = property_exists($mailable, 'tries') ? $mailable->tries : null;\n        $this->timeout = property_exists($mailable, 'timeout') ? $mailable->timeout : null;\n    }\n\n    /**\n     * Handle the queued job.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @return void\n     */\n    public function handle(MailerContract $mailer)\n    {\n        $this->mailable->send($mailer);\n    }\n\n    /**\n     * Get the display name for the queued job.\n     *\n     * @return string\n     */\n    public function displayName()\n    {\n        return get_class($this->mailable);\n    }\n\n    /**\n     * Call the failed method on the mailable instance.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function failed($e)\n    {\n        if (method_exists($this->mailable, 'failed')) {\n            $this->mailable->failed($e);\n        }\n    }\n\n    /**\n     * Get the retry delay for the mailable object.\n     *\n     * @return mixed\n     */\n    public function retryAfter()\n    {\n        if (! method_exists($this->mailable, 'retryAfter') && ! isset($this->mailable->retryAfter)) {\n            return;\n        }\n\n        return $this->mailable->retryAfter ?? $this->mailable->retryAfter();\n    }\n\n    /**\n     * Prepare the instance for cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->mailable = clone $this->mailable;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/ArrayTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Swift_Mime_SimpleMessage;\nuse Illuminate\\Support\\Collection;\n\nclass ArrayTransport extends Transport\n{\n    /**\n     * The collection of Swift Messages.\n     *\n     * @var \\Illuminate\\Support\\Collection\n     */\n    protected $messages;\n\n    /**\n     * Create a new array transport instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        $this->messages = new Collection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $this->messages[] = $message;\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Retrieve the collection of messages.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function messages()\n    {\n        return $this->messages;\n    }\n\n    /**\n     * Clear all of the messages from the local collection.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function flush()\n    {\n        return $this->messages = new Collection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Psr\\Log\\LoggerInterface;\nuse Swift_Mime_SimpleMessage;\nuse Swift_Mime_SimpleMimeEntity;\n\nclass LogTransport extends Transport\n{\n    /**\n     * The Logger instance.\n     *\n     * @var \\Psr\\Log\\LoggerInterface\n     */\n    protected $logger;\n\n    /**\n     * Create a new log transport instance.\n     *\n     * @param  \\Psr\\Log\\LoggerInterface  $logger\n     * @return void\n     */\n    public function __construct(LoggerInterface $logger)\n    {\n        $this->logger = $logger;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $this->logger->debug($this->getMimeEntityString($message));\n\n        $this->sendPerformed($message);\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Get a loggable string out of a Swiftmailer entity.\n     *\n     * @param  \\Swift_Mime_SimpleMimeEntity $entity\n     * @return string\n     */\n    protected function getMimeEntityString(Swift_Mime_SimpleMimeEntity $entity)\n    {\n        $string = (string) $entity->getHeaders().PHP_EOL.$entity->getBody();\n\n        foreach ($entity->getChildren() as $children) {\n            $string .= PHP_EOL.PHP_EOL.$this->getMimeEntityString($children);\n        }\n\n        return $string;\n    }\n\n    /**\n     * Get the logger for the LogTransport instance.\n     *\n     * @return \\Psr\\Log\\LoggerInterface\n     */\n    public function logger()\n    {\n        return $this->logger;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Swift_Mime_SimpleMessage;\nuse GuzzleHttp\\ClientInterface;\n\nclass MailgunTransport extends Transport\n{\n    /**\n     * Guzzle client instance.\n     *\n     * @var \\GuzzleHttp\\ClientInterface\n     */\n    protected $client;\n\n    /**\n     * The Mailgun API key.\n     *\n     * @var string\n     */\n    protected $key;\n\n    /**\n     * The Mailgun email domain.\n     *\n     * @var string\n     */\n    protected $domain;\n\n    /**\n     * The Mailgun API end-point.\n     *\n     * @var string\n     */\n    protected $endpoint;\n\n    /**\n     * Create a new Mailgun transport instance.\n     *\n     * @param  \\GuzzleHttp\\ClientInterface  $client\n     * @param  string  $key\n     * @param  string  $domain\n     * @param  string|null  $endpoint\n     * @return void\n     */\n    public function __construct(ClientInterface $client, $key, $domain, $endpoint = null)\n    {\n        $this->key = $key;\n        $this->client = $client;\n        $this->endpoint = $endpoint ?? 'api.mailgun.net';\n\n        $this->setDomain($domain);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $to = $this->getTo($message);\n\n        $message->setBcc([]);\n\n        $response = $this->client->request(\n            'POST',\n            \"https://{$this->endpoint}/v3/{$this->domain}/messages.mime\",\n            $this->payload($message, $to)\n        );\n\n        $message->getHeaders()->addTextHeader(\n            'X-Mailgun-Message-ID', $this->getMessageId($response)\n        );\n\n        $this->sendPerformed($message);\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Get the HTTP payload for sending the Mailgun message.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @param  string  $to\n     * @return array\n     */\n    protected function payload(Swift_Mime_SimpleMessage $message, $to)\n    {\n        return [\n            'auth' => [\n                'api',\n                $this->key,\n            ],\n            'multipart' => [\n                [\n                    'name' => 'to',\n                    'contents' => $to,\n                ],\n                [\n                    'name' => 'message',\n                    'contents' => $message->toString(),\n                    'filename' => 'message.mime',\n                ],\n            ],\n        ];\n    }\n\n    /**\n     * Get the \"to\" payload field for the API request.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @return string\n     */\n    protected function getTo(Swift_Mime_SimpleMessage $message)\n    {\n        return collect($this->allContacts($message))->map(function ($display, $address) {\n            return $display ? $display.\" <{$address}>\" : $address;\n        })->values()->implode(',');\n    }\n\n    /**\n     * Get all of the contacts for the message.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @return array\n     */\n    protected function allContacts(Swift_Mime_SimpleMessage $message)\n    {\n        return array_merge(\n            (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc()\n        );\n    }\n\n    /**\n     * Get the message ID from the response.\n     *\n     * @param  \\Psr\\Http\\Message\\ResponseInterface  $response\n     * @return string\n     */\n    protected function getMessageId($response)\n    {\n        return object_get(\n            json_decode($response->getBody()->getContents()), 'id'\n        );\n    }\n\n    /**\n     * Get the API key being used by the transport.\n     *\n     * @return string\n     */\n    public function getKey()\n    {\n        return $this->key;\n    }\n\n    /**\n     * Set the API key being used by the transport.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    public function setKey($key)\n    {\n        return $this->key = $key;\n    }\n\n    /**\n     * Get the domain being used by the transport.\n     *\n     * @return string\n     */\n    public function getDomain()\n    {\n        return $this->domain;\n    }\n\n    /**\n     * Set the domain being used by the transport.\n     *\n     * @param  string  $domain\n     * @return string\n     */\n    public function setDomain($domain)\n    {\n        return $this->domain = $domain;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Swift_Mime_SimpleMessage;\nuse GuzzleHttp\\ClientInterface;\n\nclass MandrillTransport extends Transport\n{\n    /**\n     * Guzzle client instance.\n     *\n     * @var \\GuzzleHttp\\ClientInterface\n     */\n    protected $client;\n\n    /**\n     * The Mandrill API key.\n     *\n     * @var string\n     */\n    protected $key;\n\n    /**\n     * Create a new Mandrill transport instance.\n     *\n     * @param  \\GuzzleHttp\\ClientInterface  $client\n     * @param  string  $key\n     * @return void\n     */\n    public function __construct(ClientInterface $client, $key)\n    {\n        $this->key = $key;\n        $this->client = $client;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $this->client->request('POST', 'https://mandrillapp.com/api/1.0/messages/send-raw.json', [\n            'form_params' => [\n                'key' => $this->key,\n                'to' => $this->getTo($message),\n                'raw_message' => $message->toString(),\n                'async' => true,\n            ],\n        ]);\n\n        $this->sendPerformed($message);\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Get all the addresses this message should be sent to.\n     *\n     * Note that Mandrill still respects CC, BCC headers in raw message itself.\n     *\n     * @param  \\Swift_Mime_SimpleMessage $message\n     * @return array\n     */\n    protected function getTo(Swift_Mime_SimpleMessage $message)\n    {\n        $to = [];\n\n        if ($message->getTo()) {\n            $to = array_merge($to, array_keys($message->getTo()));\n        }\n\n        if ($message->getCc()) {\n            $to = array_merge($to, array_keys($message->getCc()));\n        }\n\n        if ($message->getBcc()) {\n            $to = array_merge($to, array_keys($message->getBcc()));\n        }\n\n        return $to;\n    }\n\n    /**\n     * Get the API key being used by the transport.\n     *\n     * @return string\n     */\n    public function getKey()\n    {\n        return $this->key;\n    }\n\n    /**\n     * Set the API key being used by the transport.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    public function setKey($key)\n    {\n        return $this->key = $key;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/SesTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Aws\\Ses\\SesClient;\nuse Swift_Mime_SimpleMessage;\n\nclass SesTransport extends Transport\n{\n    /**\n     * The Amazon SES instance.\n     *\n     * @var \\Aws\\Ses\\SesClient\n     */\n    protected $ses;\n\n    /**\n     * The Amazon SES transmission options.\n     *\n     * @var array\n     */\n    protected $options = [];\n\n    /**\n     * Create a new SES transport instance.\n     *\n     * @param  \\Aws\\Ses\\SesClient  $ses\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(SesClient $ses, $options = [])\n    {\n        $this->ses = $ses;\n        $this->options = $options;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $result = $this->ses->sendRawEmail(\n            array_merge(\n                $this->options, [\n                    'Source' => key($message->getSender() ?: $message->getFrom()),\n                    'RawMessage' => [\n                        'Data' => $message->toString(),\n                    ],\n                ]\n            )\n        );\n\n        $message->getHeaders()->addTextHeader('X-SES-Message-ID', $result->get('MessageId'));\n\n        $this->sendPerformed($message);\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Get the Amazon SES client for the SesTransport instance.\n     *\n     * @return \\Aws\\Ses\\SesClient\n     */\n    public function ses()\n    {\n        return $this->ses;\n    }\n\n    /**\n     * Get the transmission options being used by the transport.\n     *\n     * @return array\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Set the transmission options being used by the transport.\n     *\n     * @param  array  $options\n     * @return array\n     */\n    public function setOptions(array $options)\n    {\n        return $this->options = $options;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/SparkPostTransport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Swift_Mime_SimpleMessage;\nuse GuzzleHttp\\ClientInterface;\n\nclass SparkPostTransport extends Transport\n{\n    /**\n     * Guzzle client instance.\n     *\n     * @var \\GuzzleHttp\\ClientInterface\n     */\n    protected $client;\n\n    /**\n     * The SparkPost API key.\n     *\n     * @var string\n     */\n    protected $key;\n\n    /**\n     * The SparkPost transmission options.\n     *\n     * @var array\n     */\n    protected $options = [];\n\n    /**\n     * Create a new SparkPost transport instance.\n     *\n     * @param  \\GuzzleHttp\\ClientInterface  $client\n     * @param  string  $key\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(ClientInterface $client, $key, $options = [])\n    {\n        $this->key = $key;\n        $this->client = $client;\n        $this->options = $options;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function send(Swift_Mime_SimpleMessage $message, &$failedRecipients = null)\n    {\n        $this->beforeSendPerformed($message);\n\n        $recipients = $this->getRecipients($message);\n\n        $message->setBcc([]);\n\n        $response = $this->client->request('POST', $this->getEndpoint(), [\n            'headers' => [\n                'Authorization' => $this->key,\n            ],\n            'json' => array_merge([\n                'recipients' => $recipients,\n                'content' => [\n                    'email_rfc822' => $message->toString(),\n                ],\n            ], $this->options),\n        ]);\n\n        $message->getHeaders()->addTextHeader(\n            'X-SparkPost-Transmission-ID', $this->getTransmissionId($response)\n        );\n\n        $this->sendPerformed($message);\n\n        return $this->numberOfRecipients($message);\n    }\n\n    /**\n     * Get all the addresses this message should be sent to.\n     *\n     * Note that SparkPost still respects CC, BCC headers in raw message itself.\n     *\n     * @param  \\Swift_Mime_SimpleMessage $message\n     * @return array\n     */\n    protected function getRecipients(Swift_Mime_SimpleMessage $message)\n    {\n        $recipients = [];\n\n        foreach ((array) $message->getTo() as $email => $name) {\n            $recipients[] = ['address' => compact('name', 'email')];\n        }\n\n        foreach ((array) $message->getCc() as $email => $name) {\n            $recipients[] = ['address' => compact('name', 'email')];\n        }\n\n        foreach ((array) $message->getBcc() as $email => $name) {\n            $recipients[] = ['address' => compact('name', 'email')];\n        }\n\n        return $recipients;\n    }\n\n    /**\n     * Get the transmission ID from the response.\n     *\n     * @param  \\GuzzleHttp\\Psr7\\Response  $response\n     * @return string\n     */\n    protected function getTransmissionId($response)\n    {\n        return object_get(\n            json_decode($response->getBody()->getContents()), 'results.id'\n        );\n    }\n\n    /**\n     * Get the API key being used by the transport.\n     *\n     * @return string\n     */\n    public function getKey()\n    {\n        return $this->key;\n    }\n\n    /**\n     * Set the API key being used by the transport.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    public function setKey($key)\n    {\n        return $this->key = $key;\n    }\n\n    /**\n     * Get the SparkPost API endpoint.\n     *\n     * @return string\n     */\n    public function getEndpoint()\n    {\n        return $this->getOptions()['endpoint'] ?? 'https://api.sparkpost.com/api/v1/transmissions';\n    }\n\n    /**\n     * Get the transmission options being used by the transport.\n     *\n     * @return array\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Set the transmission options being used by the transport.\n     *\n     * @param  array  $options\n     * @return array\n     */\n    public function setOptions(array $options)\n    {\n        return $this->options = $options;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/Transport/Transport.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail\\Transport;\n\nuse Swift_Transport;\nuse Swift_Events_SendEvent;\nuse Swift_Mime_SimpleMessage;\nuse Swift_Events_EventListener;\n\nabstract class Transport implements Swift_Transport\n{\n    /**\n     * The plug-ins registered with the transport.\n     *\n     * @var array\n     */\n    public $plugins = [];\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isStarted()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function start()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function stop()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function ping()\n    {\n        return true;\n    }\n\n    /**\n     * Register a plug-in with the transport.\n     *\n     * @param  \\Swift_Events_EventListener  $plugin\n     * @return void\n     */\n    public function registerPlugin(Swift_Events_EventListener $plugin)\n    {\n        array_push($this->plugins, $plugin);\n    }\n\n    /**\n     * Iterate through registered plugins and execute plugins' methods.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @return void\n     */\n    protected function beforeSendPerformed(Swift_Mime_SimpleMessage $message)\n    {\n        $event = new Swift_Events_SendEvent($this, $message);\n\n        foreach ($this->plugins as $plugin) {\n            if (method_exists($plugin, 'beforeSendPerformed')) {\n                $plugin->beforeSendPerformed($event);\n            }\n        }\n    }\n\n    /**\n     * Iterate through registered plugins and execute plugins' methods.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @return void\n     */\n    protected function sendPerformed(Swift_Mime_SimpleMessage $message)\n    {\n        $event = new Swift_Events_SendEvent($this, $message);\n\n        foreach ($this->plugins as $plugin) {\n            if (method_exists($plugin, 'sendPerformed')) {\n                $plugin->sendPerformed($event);\n            }\n        }\n    }\n\n    /**\n     * Get the number of recipients.\n     *\n     * @param  \\Swift_Mime_SimpleMessage  $message\n     * @return int\n     */\n    protected function numberOfRecipients(Swift_Mime_SimpleMessage $message)\n    {\n        return count(array_merge(\n            (array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc()\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/TransportManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Mail;\n\nuse Aws\\Ses\\SesClient;\nuse Illuminate\\Support\\Arr;\nuse Psr\\Log\\LoggerInterface;\nuse Illuminate\\Log\\LogManager;\nuse Illuminate\\Support\\Manager;\nuse GuzzleHttp\\Client as HttpClient;\nuse Swift_SmtpTransport as SmtpTransport;\nuse Illuminate\\Mail\\Transport\\LogTransport;\nuse Illuminate\\Mail\\Transport\\SesTransport;\nuse Postmark\\Transport as PostmarkTransport;\nuse Illuminate\\Mail\\Transport\\ArrayTransport;\nuse Illuminate\\Mail\\Transport\\MailgunTransport;\nuse Illuminate\\Mail\\Transport\\MandrillTransport;\nuse Illuminate\\Mail\\Transport\\SparkPostTransport;\nuse Swift_SendmailTransport as SendmailTransport;\n\nclass TransportManager extends Manager\n{\n    /**\n     * Create an instance of the SMTP Swift Transport driver.\n     *\n     * @return \\Swift_SmtpTransport\n     */\n    protected function createSmtpDriver()\n    {\n        $config = $this->app->make('config')->get('mail');\n\n        // The Swift SMTP transport instance will allow us to use any SMTP backend\n        // for delivering mail such as Sendgrid, Amazon SES, or a custom server\n        // a developer has available. We will just pass this configured host.\n        $transport = new SmtpTransport($config['host'], $config['port']);\n\n        if (isset($config['encryption'])) {\n            $transport->setEncryption($config['encryption']);\n        }\n\n        // Once we have the transport we will check for the presence of a username\n        // and password. If we have it we will set the credentials on the Swift\n        // transporter instance so that we'll properly authenticate delivery.\n        if (isset($config['username'])) {\n            $transport->setUsername($config['username']);\n\n            $transport->setPassword($config['password']);\n        }\n\n        return $this->configureSmtpDriver($transport, $config);\n    }\n\n    /**\n     * Configure the additional SMTP driver options.\n     *\n     * @param  \\Swift_SmtpTransport  $transport\n     * @param  array  $config\n     * @return \\Swift_SmtpTransport\n     */\n    protected function configureSmtpDriver($transport, $config)\n    {\n        if (isset($config['stream'])) {\n            $transport->setStreamOptions($config['stream']);\n        }\n\n        if (isset($config['source_ip'])) {\n            $transport->setSourceIp($config['source_ip']);\n        }\n\n        if (isset($config['local_domain'])) {\n            $transport->setLocalDomain($config['local_domain']);\n        }\n\n        return $transport;\n    }\n\n    /**\n     * Create an instance of the Sendmail Swift Transport driver.\n     *\n     * @return \\Swift_SendmailTransport\n     */\n    protected function createSendmailDriver()\n    {\n        return new SendmailTransport($this->app['config']['mail']['sendmail']);\n    }\n\n    /**\n     * Create an instance of the Amazon SES Swift Transport driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\SesTransport\n     */\n    protected function createSesDriver()\n    {\n        $config = array_merge($this->app['config']->get('services.ses', []), [\n            'version' => 'latest', 'service' => 'email',\n        ]);\n\n        return new SesTransport(\n            new SesClient($this->addSesCredentials($config)),\n            $config['options'] ?? []\n        );\n    }\n\n    /**\n     * Add the SES credentials to the configuration array.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function addSesCredentials(array $config)\n    {\n        if ($config['key'] && $config['secret']) {\n            $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']);\n        }\n\n        return $config;\n    }\n\n    /**\n     * Create an instance of the Mail Swift Transport driver.\n     *\n     * @return \\Swift_SendmailTransport\n     */\n    protected function createMailDriver()\n    {\n        return new SendmailTransport;\n    }\n\n    /**\n     * Create an instance of the Mailgun Swift Transport driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\MailgunTransport\n     */\n    protected function createMailgunDriver()\n    {\n        $config = $this->app['config']->get('services.mailgun', []);\n\n        return new MailgunTransport(\n            $this->guzzle($config),\n            $config['secret'],\n            $config['domain'],\n            $config['endpoint'] ?? null\n        );\n    }\n\n    /**\n     * Create an instance of the Mandrill Swift Transport driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\MandrillTransport\n     */\n    protected function createMandrillDriver()\n    {\n        $config = $this->app['config']->get('services.mandrill', []);\n\n        return new MandrillTransport(\n            $this->guzzle($config), $config['secret']\n        );\n    }\n\n    /**\n     * Create an instance of the SparkPost Swift Transport driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\SparkPostTransport\n     */\n    protected function createSparkPostDriver()\n    {\n        $config = $this->app['config']->get('services.sparkpost', []);\n\n        return new SparkPostTransport(\n            $this->guzzle($config), $config['secret'], $config['options'] ?? []\n        );\n    }\n\n    /**\n     * Create an instance of the Postmark Swift Transport driver.\n     *\n     * @return \\Swift_Transport\n     */\n    protected function createPostmarkDriver()\n    {\n        return new PostmarkTransport(\n            $this->app['config']->get('services.postmark.token')\n        );\n    }\n\n    /**\n     * Create an instance of the Log Swift Transport driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\LogTransport\n     */\n    protected function createLogDriver()\n    {\n        $logger = $this->app->make(LoggerInterface::class);\n\n        if ($logger instanceof LogManager) {\n            $logger = $logger->channel($this->app['config']['mail.log_channel']);\n        }\n\n        return new LogTransport($logger);\n    }\n\n    /**\n     * Create an instance of the Array Swift Transport Driver.\n     *\n     * @return \\Illuminate\\Mail\\Transport\\ArrayTransport\n     */\n    protected function createArrayDriver()\n    {\n        return new ArrayTransport;\n    }\n\n    /**\n     * Get a fresh Guzzle HTTP client instance.\n     *\n     * @param  array  $config\n     * @return \\GuzzleHttp\\Client\n     */\n    protected function guzzle($config)\n    {\n        return new HttpClient(Arr::add(\n            $config['guzzle'] ?? [], 'connect_timeout', 60\n        ));\n    }\n\n    /**\n     * Get the default mail driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['mail.driver'];\n    }\n\n    /**\n     * Set the default mail driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['mail.driver'] = $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/composer.json",
    "content": "{\n    \"name\": \"illuminate/mail\",\n    \"description\": \"The Illuminate Mail package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"erusev/parsedown\": \"^1.7\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"psr/log\": \"^1.0\",\n        \"swiftmailer/swiftmailer\": \"^6.0\",\n        \"tijsverkoyen/css-to-inline-styles\": \"^2.2.1\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Mail\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"aws/aws-sdk-php\": \"Required to use the SES mail driver (^3.0).\",\n        \"guzzlehttp/guzzle\": \"Required to use the Mailgun and Mandrill mail drivers (^6.0).\",\n        \"wildbit/swiftmailer-postmark\": \"Required to use Postmark mail driver (^3.0).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/button.blade.php",
    "content": "<table class=\"action\" align=\"center\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n    <tr>\n        <td align=\"center\">\n            <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                <tr>\n                    <td align=\"center\">\n                        <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                            <tr>\n                                <td>\n                                    <a href=\"{{ $url }}\" class=\"button button-{{ $color ?? 'primary' }}\" target=\"_blank\">{{ $slot }}</a>\n                                </td>\n                            </tr>\n                        </table>\n                    </td>\n                </tr>\n            </table>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/footer.blade.php",
    "content": "<tr>\n    <td>\n        <table class=\"footer\" align=\"center\" width=\"570\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n            <tr>\n                <td class=\"content-cell\" align=\"center\">\n                    {{ Illuminate\\Mail\\Markdown::parse($slot) }}\n                </td>\n            </tr>\n        </table>\n    </td>\n</tr>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/header.blade.php",
    "content": "<tr>\n    <td class=\"header\">\n        <a href=\"{{ $url }}\">\n            {{ $slot }}\n        </a>\n    </td>\n</tr>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/layout.blade.php",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n</head>\n<body>\n    <style>\n        @media only screen and (max-width: 600px) {\n            .inner-body {\n                width: 100% !important;\n            }\n\n            .footer {\n                width: 100% !important;\n            }\n        }\n\n        @media only screen and (max-width: 500px) {\n            .button {\n                width: 100% !important;\n            }\n        }\n    </style>\n\n    <table class=\"wrapper\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n        <tr>\n            <td align=\"center\">\n                <table class=\"content\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                    {{ $header ?? '' }}\n\n                    <!-- Email Body -->\n                    <tr>\n                        <td class=\"body\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n                            <table class=\"inner-body\" align=\"center\" width=\"570\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                                <!-- Body content -->\n                                <tr>\n                                    <td class=\"content-cell\">\n                                        {{ Illuminate\\Mail\\Markdown::parse($slot) }}\n\n                                        {{ $subcopy ?? '' }}\n                                    </td>\n                                </tr>\n                            </table>\n                        </td>\n                    </tr>\n\n                    {{ $footer ?? '' }}\n                </table>\n            </td>\n        </tr>\n    </table>\n</body>\n</html>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/message.blade.php",
    "content": "@component('mail::layout')\n    {{-- Header --}}\n    @slot('header')\n        @component('mail::header', ['url' => config('app.url')])\n            {{ config('app.name') }}\n        @endcomponent\n    @endslot\n\n    {{-- Body --}}\n    {{ $slot }}\n\n    {{-- Subcopy --}}\n    @isset($subcopy)\n        @slot('subcopy')\n            @component('mail::subcopy')\n                {{ $subcopy }}\n            @endcomponent\n        @endslot\n    @endisset\n\n    {{-- Footer --}}\n    @slot('footer')\n        @component('mail::footer')\n            © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')\n        @endcomponent\n    @endslot\n@endcomponent\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/panel.blade.php",
    "content": "<table class=\"panel\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n    <tr>\n        <td class=\"panel-content\">\n            <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                <tr>\n                    <td class=\"panel-item\">\n                        {{ Illuminate\\Mail\\Markdown::parse($slot) }}\n                    </td>\n                </tr>\n            </table>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion/button.blade.php",
    "content": "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n    <tr>\n        <td align=\"center\">\n            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n                <tr>\n                    <td>\n                        <a href=\"{{ $url }}\" class=\"button button-green\" target=\"_blank\">{{ $slot }}</a>\n                    </td>\n                </tr>\n            </table>\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/promotion.blade.php",
    "content": "<table class=\"promotion\" align=\"center\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n    <tr>\n        <td align=\"center\">\n            {{ Illuminate\\Mail\\Markdown::parse($slot) }}\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/subcopy.blade.php",
    "content": "<table class=\"subcopy\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\">\n    <tr>\n        <td>\n            {{ Illuminate\\Mail\\Markdown::parse($slot) }}\n        </td>\n    </tr>\n</table>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/table.blade.php",
    "content": "<div class=\"table\">\n{{ Illuminate\\Mail\\Markdown::parse($slot) }}\n</div>\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/html/themes/default.css",
    "content": "/* Base */\n\nbody,\nbody *:not(html):not(style):not(br):not(tr):not(code) {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,\n        'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n    box-sizing: border-box;\n}\n\nbody {\n    background-color: #f8fafc;\n    color: #74787e;\n    height: 100%;\n    hyphens: auto;\n    line-height: 1.4;\n    margin: 0;\n    -moz-hyphens: auto;\n    -ms-word-break: break-all;\n    width: 100% !important;\n    -webkit-hyphens: auto;\n    -webkit-text-size-adjust: none;\n    word-break: break-all;\n    word-break: break-word;\n}\n\np,\nul,\nol,\nblockquote {\n    line-height: 1.4;\n    text-align: left;\n}\n\na {\n    color: #3869d4;\n}\n\na img {\n    border: none;\n}\n\n/* Typography */\n\nh1 {\n    color: #3d4852;\n    font-size: 19px;\n    font-weight: bold;\n    margin-top: 0;\n    text-align: left;\n}\n\nh2 {\n    color: #3d4852;\n    font-size: 16px;\n    font-weight: bold;\n    margin-top: 0;\n    text-align: left;\n}\n\nh3 {\n    color: #3d4852;\n    font-size: 14px;\n    font-weight: bold;\n    margin-top: 0;\n    text-align: left;\n}\n\np {\n    color: #3d4852;\n    font-size: 16px;\n    line-height: 1.5em;\n    margin-top: 0;\n    text-align: left;\n}\n\np.sub {\n    font-size: 12px;\n}\n\nimg {\n    max-width: 100%;\n}\n\n/* Layout */\n\n.wrapper {\n    background-color: #f8fafc;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n.content {\n    margin: 0;\n    padding: 0;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n/* Header */\n\n.header {\n    padding: 25px 0;\n    text-align: center;\n}\n\n.header a {\n    color: #bbbfc3;\n    font-size: 19px;\n    font-weight: bold;\n    text-decoration: none;\n    text-shadow: 0 1px 0 white;\n}\n\n/* Body */\n\n.body {\n    background-color: #ffffff;\n    border-bottom: 1px solid #edeff2;\n    border-top: 1px solid #edeff2;\n    margin: 0;\n    padding: 0;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n.inner-body {\n    background-color: #ffffff;\n    margin: 0 auto;\n    padding: 0;\n    width: 570px;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 570px;\n}\n\n/* Subcopy */\n\n.subcopy {\n    border-top: 1px solid #edeff2;\n    margin-top: 25px;\n    padding-top: 25px;\n}\n\n.subcopy p {\n    font-size: 12px;\n}\n\n/* Footer */\n\n.footer {\n    margin: 0 auto;\n    padding: 0;\n    text-align: center;\n    width: 570px;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 570px;\n}\n\n.footer p {\n    color: #aeaeae;\n    font-size: 12px;\n    text-align: center;\n}\n\n/* Tables */\n\n.table table {\n    margin: 30px auto;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n.table th {\n    border-bottom: 1px solid #edeff2;\n    padding-bottom: 8px;\n    margin: 0;\n}\n\n.table td {\n    color: #74787e;\n    font-size: 15px;\n    line-height: 18px;\n    padding: 10px 0;\n    margin: 0;\n}\n\n.content-cell {\n    padding: 35px;\n}\n\n/* Buttons */\n\n.action {\n    margin: 30px auto;\n    padding: 0;\n    text-align: center;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n.button {\n    border-radius: 3px;\n    box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);\n    color: #fff;\n    display: inline-block;\n    text-decoration: none;\n    -webkit-text-size-adjust: none;\n}\n\n.button-blue,\n.button-primary {\n    background-color: #3490dc;\n    border-top: 10px solid #3490dc;\n    border-right: 18px solid #3490dc;\n    border-bottom: 10px solid #3490dc;\n    border-left: 18px solid #3490dc;\n}\n\n.button-green,\n.button-success {\n    background-color: #38c172;\n    border-top: 10px solid #38c172;\n    border-right: 18px solid #38c172;\n    border-bottom: 10px solid #38c172;\n    border-left: 18px solid #38c172;\n}\n\n.button-red,\n.button-error {\n    background-color: #e3342f;\n    border-top: 10px solid #e3342f;\n    border-right: 18px solid #e3342f;\n    border-bottom: 10px solid #e3342f;\n    border-left: 18px solid #e3342f;\n}\n\n/* Panels */\n\n.panel {\n    margin: 0 0 21px;\n}\n\n.panel-content {\n    background-color: #f1f5f8;\n    padding: 16px;\n}\n\n.panel-item {\n    padding: 0;\n}\n\n.panel-item p:last-of-type {\n    margin-bottom: 0;\n    padding-bottom: 0;\n}\n\n/* Promotions */\n\n.promotion {\n    background-color: #ffffff;\n    border: 2px dashed #9ba2ab;\n    margin: 0;\n    margin-bottom: 25px;\n    margin-top: 25px;\n    padding: 24px;\n    width: 100%;\n    -premailer-cellpadding: 0;\n    -premailer-cellspacing: 0;\n    -premailer-width: 100%;\n}\n\n.promotion h1 {\n    text-align: center;\n}\n\n.promotion p {\n    font-size: 15px;\n    text-align: center;\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/button.blade.php",
    "content": "{{ $slot }}: {{ $url }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/footer.blade.php",
    "content": "{{ $slot }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/header.blade.php",
    "content": "[{{ $slot }}]({{ $url }})\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/layout.blade.php",
    "content": "{!! strip_tags($header) !!}\n\n{!! strip_tags($slot) !!}\n@isset($subcopy)\n\n{!! strip_tags($subcopy) !!}\n@endisset\n\n{!! strip_tags($footer) !!}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/message.blade.php",
    "content": "@component('mail::layout')\n    {{-- Header --}}\n    @slot('header')\n        @component('mail::header', ['url' => config('app.url')])\n            {{ config('app.name') }}\n        @endcomponent\n    @endslot\n\n    {{-- Body --}}\n    {{ $slot }}\n\n    {{-- Subcopy --}}\n    @isset($subcopy)\n        @slot('subcopy')\n            @component('mail::subcopy')\n                {{ $subcopy }}\n            @endcomponent\n        @endslot\n    @endisset\n\n    {{-- Footer --}}\n    @slot('footer')\n        @component('mail::footer')\n            © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')\n        @endcomponent\n    @endslot\n@endcomponent\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/panel.blade.php",
    "content": "{{ $slot }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/promotion/button.blade.php",
    "content": "[{{ $slot }}]({{ $url }})\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/promotion.blade.php",
    "content": "{{ $slot }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/subcopy.blade.php",
    "content": "{{ $slot }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Mail/resources/views/text/table.blade.php",
    "content": "{{ $slot }}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Action.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nclass Action\n{\n    /**\n     * The action text.\n     *\n     * @var string\n     */\n    public $text;\n\n    /**\n     * The action URL.\n     *\n     * @var string\n     */\n    public $url;\n\n    /**\n     * Create a new action instance.\n     *\n     * @param  string  $text\n     * @param  string  $url\n     * @return void\n     */\n    public function __construct($text, $url)\n    {\n        $this->url = $url;\n        $this->text = $text;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Contracts\\Notifications\\Dispatcher;\n\nclass AnonymousNotifiable\n{\n    /**\n     * All of the notification routing information.\n     *\n     * @var array\n     */\n    public $routes = [];\n\n    /**\n     * Add routing information to the target.\n     *\n     * @param  string  $channel\n     * @param  mixed  $route\n     * @return $this\n     */\n    public function route($channel, $route)\n    {\n        $this->routes[$channel] = $route;\n\n        return $this;\n    }\n\n    /**\n     * Send the given notification.\n     *\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function notify($notification)\n    {\n        app(Dispatcher::class)->send($this, $notification);\n    }\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function notifyNow($notification)\n    {\n        app(Dispatcher::class)->sendNow($this, $notification);\n    }\n\n    /**\n     * Get the notification routing information for the given driver.\n     *\n     * @param  string  $driver\n     * @return mixed\n     */\n    public function routeNotificationFor($driver)\n    {\n        return $this->routes[$driver] ?? null;\n    }\n\n    /**\n     * Get the value of the notifiable's primary key.\n     *\n     * @return mixed\n     */\n    public function getKey()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Manager;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as Bus;\nuse Illuminate\\Contracts\\Notifications\\Factory as FactoryContract;\nuse Illuminate\\Contracts\\Notifications\\Dispatcher as DispatcherContract;\n\nclass ChannelManager extends Manager implements DispatcherContract, FactoryContract\n{\n    /**\n     * The default channel used to deliver messages.\n     *\n     * @var string\n     */\n    protected $defaultChannel = 'mail';\n\n    /**\n     * The locale used when sending notifications.\n     *\n     * @var string|null\n     */\n    protected $locale;\n\n    /**\n     * Send the given notification to the given notifiable entities.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function send($notifiables, $notification)\n    {\n        return (new NotificationSender(\n            $this, $this->app->make(Bus::class), $this->app->make(Dispatcher::class), $this->locale)\n        )->send($notifiables, $notification);\n    }\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @param  array|null  $channels\n     * @return void\n     */\n    public function sendNow($notifiables, $notification, array $channels = null)\n    {\n        return (new NotificationSender(\n            $this, $this->app->make(Bus::class), $this->app->make(Dispatcher::class), $this->locale)\n        )->sendNow($notifiables, $notification, $channels);\n    }\n\n    /**\n     * Get a channel instance.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function channel($name = null)\n    {\n        return $this->driver($name);\n    }\n\n    /**\n     * Create an instance of the database driver.\n     *\n     * @return \\Illuminate\\Notifications\\Channels\\DatabaseChannel\n     */\n    protected function createDatabaseDriver()\n    {\n        return $this->app->make(Channels\\DatabaseChannel::class);\n    }\n\n    /**\n     * Create an instance of the broadcast driver.\n     *\n     * @return \\Illuminate\\Notifications\\Channels\\BroadcastChannel\n     */\n    protected function createBroadcastDriver()\n    {\n        return $this->app->make(Channels\\BroadcastChannel::class);\n    }\n\n    /**\n     * Create an instance of the mail driver.\n     *\n     * @return \\Illuminate\\Notifications\\Channels\\MailChannel\n     */\n    protected function createMailDriver()\n    {\n        return $this->app->make(Channels\\MailChannel::class);\n    }\n\n    /**\n     * Create a new driver instance.\n     *\n     * @param  string  $driver\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function createDriver($driver)\n    {\n        try {\n            return parent::createDriver($driver);\n        } catch (InvalidArgumentException $e) {\n            if (class_exists($driver)) {\n                return $this->app->make($driver);\n            }\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Get the default channel driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->defaultChannel;\n    }\n\n    /**\n     * Get the default channel driver name.\n     *\n     * @return string\n     */\n    public function deliversVia()\n    {\n        return $this->getDefaultDriver();\n    }\n\n    /**\n     * Set the default channel driver name.\n     *\n     * @param  string  $channel\n     * @return void\n     */\n    public function deliverVia($channel)\n    {\n        $this->defaultChannel = $channel;\n    }\n\n    /**\n     * Set the locale of notifications.\n     *\n     * @param  string  $locale\n     * @return $this\n     */\n    public function locale($locale)\n    {\n        $this->locale = $locale;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Channels/BroadcastChannel.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Channels;\n\nuse RuntimeException;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Notifications\\Messages\\BroadcastMessage;\nuse Illuminate\\Notifications\\Events\\BroadcastNotificationCreated;\n\nclass BroadcastChannel\n{\n    /**\n     * The event dispatcher.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * Create a new database channel.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function __construct(Dispatcher $events)\n    {\n        $this->events = $events;\n    }\n\n    /**\n     * Send the given notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return array|null\n     */\n    public function send($notifiable, Notification $notification)\n    {\n        $message = $this->getData($notifiable, $notification);\n\n        $event = new BroadcastNotificationCreated(\n            $notifiable, $notification, is_array($message) ? $message : $message->data\n        );\n\n        if ($message instanceof BroadcastMessage) {\n            $event->onConnection($message->connection)\n                  ->onQueue($message->queue);\n        }\n\n        return $this->events->dispatch($event);\n    }\n\n    /**\n     * Get the data for the notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return mixed\n     *\n     * @throws \\RuntimeException\n     */\n    protected function getData($notifiable, Notification $notification)\n    {\n        if (method_exists($notification, 'toBroadcast')) {\n            return $notification->toBroadcast($notifiable);\n        }\n\n        if (method_exists($notification, 'toArray')) {\n            return $notification->toArray($notifiable);\n        }\n\n        throw new RuntimeException('Notification is missing toArray method.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Channels/DatabaseChannel.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Channels;\n\nuse RuntimeException;\nuse Illuminate\\Notifications\\Notification;\n\nclass DatabaseChannel\n{\n    /**\n     * Send the given notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function send($notifiable, Notification $notification)\n    {\n        return $notifiable->routeNotificationFor('database', $notification)->create(\n            $this->buildPayload($notifiable, $notification)\n        );\n    }\n\n    /**\n     * Get the data for the notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return array\n     *\n     * @throws \\RuntimeException\n     */\n    protected function getData($notifiable, Notification $notification)\n    {\n        if (method_exists($notification, 'toDatabase')) {\n            return is_array($data = $notification->toDatabase($notifiable))\n                                ? $data : $data->data;\n        }\n\n        if (method_exists($notification, 'toArray')) {\n            return $notification->toArray($notifiable);\n        }\n\n        throw new RuntimeException('Notification is missing toDatabase / toArray method.');\n    }\n\n    /**\n     * Build an array payload for the DatabaseNotification Model.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return array\n     */\n    protected function buildPayload($notifiable, Notification $notification)\n    {\n        return [\n            'id' => $notification->id,\n            'type' => get_class($notification),\n            'data' => $this->getData($notifiable, $notification),\n            'read_at' => null,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Channels/MailChannel.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Channels;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Mail\\Markdown;\nuse Illuminate\\Contracts\\Mail\\Mailer;\nuse Illuminate\\Contracts\\Mail\\Mailable;\nuse Illuminate\\Notifications\\Notification;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass MailChannel\n{\n    /**\n     * The mailer implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Mail\\Mailer\n     */\n    protected $mailer;\n\n    /**\n     * The markdown implementation.\n     *\n     * @var \\Illuminate\\Mail\\Markdown\n     */\n    protected $markdown;\n\n    /**\n     * Create a new mail channel instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailer  $mailer\n     * @param  \\Illuminate\\Mail\\Markdown  $markdown\n     * @return void\n     */\n    public function __construct(Mailer $mailer, Markdown $markdown)\n    {\n        $this->mailer = $mailer;\n        $this->markdown = $markdown;\n    }\n\n    /**\n     * Send the given notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return void\n     */\n    public function send($notifiable, Notification $notification)\n    {\n        $message = $notification->toMail($notifiable);\n\n        if (! $notifiable->routeNotificationFor('mail', $notification) &&\n            ! $message instanceof Mailable) {\n            return;\n        }\n\n        if ($message instanceof Mailable) {\n            return $message->send($this->mailer);\n        }\n\n        $this->mailer->send(\n            $this->buildView($message),\n            array_merge($message->data(), $this->additionalMessageData($notification)),\n            $this->messageBuilder($notifiable, $notification, $message)\n        );\n    }\n\n    /**\n     * Get the mailer Closure for the message.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return \\Closure\n     */\n    protected function messageBuilder($notifiable, $notification, $message)\n    {\n        return function ($mailMessage) use ($notifiable, $notification, $message) {\n            $this->buildMessage($mailMessage, $notifiable, $notification, $message);\n        };\n    }\n\n    /**\n     * Build the notification's view.\n     *\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return string|array\n     */\n    protected function buildView($message)\n    {\n        if ($message->view) {\n            return $message->view;\n        }\n\n        return [\n            'html' => $this->markdown->render($message->markdown, $message->data()),\n            'text' => $this->markdown->renderText($message->markdown, $message->data()),\n        ];\n    }\n\n    /**\n     * Get additional meta-data to pass along with the view data.\n     *\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @return array\n     */\n    protected function additionalMessageData($notification)\n    {\n        return [\n            '__laravel_notification' => get_class($notification),\n            '__laravel_notification_queued' => in_array(\n                ShouldQueue::class, class_implements($notification)\n            ),\n        ];\n    }\n\n    /**\n     * Build the mail message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $mailMessage\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return void\n     */\n    protected function buildMessage($mailMessage, $notifiable, $notification, $message)\n    {\n        $this->addressMessage($mailMessage, $notifiable, $notification, $message);\n\n        $mailMessage->subject($message->subject ?: Str::title(\n            Str::snake(class_basename($notification), ' ')\n        ));\n\n        $this->addAttachments($mailMessage, $message);\n\n        if (! is_null($message->priority)) {\n            $mailMessage->setPriority($message->priority);\n        }\n\n        $this->runCallbacks($mailMessage, $message);\n    }\n\n    /**\n     * Address the mail message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $mailMessage\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return void\n     */\n    protected function addressMessage($mailMessage, $notifiable, $notification, $message)\n    {\n        $this->addSender($mailMessage, $message);\n\n        $mailMessage->to($this->getRecipients($notifiable, $notification, $message));\n\n        if (! empty($message->cc)) {\n            foreach ($message->cc as $cc) {\n                $mailMessage->cc($cc[0], Arr::get($cc, 1));\n            }\n        }\n\n        if (! empty($message->bcc)) {\n            foreach ($message->bcc as $bcc) {\n                $mailMessage->bcc($bcc[0], Arr::get($bcc, 1));\n            }\n        }\n    }\n\n    /**\n     * Add the \"from\" and \"reply to\" addresses to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $mailMessage\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return void\n     */\n    protected function addSender($mailMessage, $message)\n    {\n        if (! empty($message->from)) {\n            $mailMessage->from($message->from[0], Arr::get($message->from, 1));\n        }\n\n        if (! empty($message->replyTo)) {\n            foreach ($message->replyTo as $replyTo) {\n                $mailMessage->replyTo($replyTo[0], Arr::get($replyTo, 1));\n            }\n        }\n    }\n\n    /**\n     * Get the recipients of the given message.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return mixed\n     */\n    protected function getRecipients($notifiable, $notification, $message)\n    {\n        if (is_string($recipients = $notifiable->routeNotificationFor('mail', $notification))) {\n            $recipients = [$recipients];\n        }\n\n        return collect($recipients)->mapWithKeys(function ($recipient, $email) {\n            return is_numeric($email)\n                    ? [$email => (is_string($recipient) ? $recipient : $recipient->email)]\n                    : [$email => $recipient];\n        })->all();\n    }\n\n    /**\n     * Add the attachments to the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $mailMessage\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return void\n     */\n    protected function addAttachments($mailMessage, $message)\n    {\n        foreach ($message->attachments as $attachment) {\n            $mailMessage->attach($attachment['file'], $attachment['options']);\n        }\n\n        foreach ($message->rawAttachments as $attachment) {\n            $mailMessage->attachData($attachment['data'], $attachment['name'], $attachment['options']);\n        }\n    }\n\n    /**\n     * Run the callbacks for the message.\n     *\n     * @param  \\Illuminate\\Mail\\Message  $mailMessage\n     * @param  \\Illuminate\\Notifications\\Messages\\MailMessage  $message\n     * @return $this\n     */\n    protected function runCallbacks($mailMessage, $message)\n    {\n        foreach ($message->callbacks as $callback) {\n            $callback($mailMessage->getSwiftMessage());\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Console/NotificationTableCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass NotificationTableCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'notifications:table';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a migration for the notifications table';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new notifications table command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer    $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $fullPath = $this->createBaseMigration();\n\n        $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/notifications.stub'));\n\n        $this->info('Migration created successfully!');\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Create a base migration file for the notifications.\n     *\n     * @return string\n     */\n    protected function createBaseMigration()\n    {\n        $name = 'create_notifications_table';\n\n        $path = $this->laravel->databasePath().'/migrations';\n\n        return $this->laravel['migration.creator']->create($name, $path);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Console/stubs/notifications.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateNotificationsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('notifications', function (Blueprint $table) {\n            $table->uuid('id')->primary();\n            $table->string('type');\n            $table->morphs('notifiable');\n            $table->text('data');\n            $table->timestamp('read_at')->nullable();\n            $table->timestamps();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('notifications');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotification.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass DatabaseNotification extends Model\n{\n    /**\n     * Indicates if the IDs are auto-incrementing.\n     *\n     * @var bool\n     */\n    public $incrementing = false;\n\n    /**\n     * The table associated with the model.\n     *\n     * @var string\n     */\n    protected $table = 'notifications';\n\n    /**\n     * The guarded attributes on the model.\n     *\n     * @var array\n     */\n    protected $guarded = [];\n\n    /**\n     * The attributes that should be cast to native types.\n     *\n     * @var array\n     */\n    protected $casts = [\n        'data' => 'array',\n        'read_at' => 'datetime',\n    ];\n\n    /**\n     * Get the notifiable entity that the notification belongs to.\n     */\n    public function notifiable()\n    {\n        return $this->morphTo();\n    }\n\n    /**\n     * Mark the notification as read.\n     *\n     * @return void\n     */\n    public function markAsRead()\n    {\n        if (is_null($this->read_at)) {\n            $this->forceFill(['read_at' => $this->freshTimestamp()])->save();\n        }\n    }\n\n    /**\n     * Mark the notification as unread.\n     *\n     * @return void\n     */\n    public function markAsUnread()\n    {\n        if (! is_null($this->read_at)) {\n            $this->forceFill(['read_at' => null])->save();\n        }\n    }\n\n    /**\n     * Determine if a notification has been read.\n     *\n     * @return bool\n     */\n    public function read()\n    {\n        return $this->read_at !== null;\n    }\n\n    /**\n     * Determine if a notification has not been read.\n     *\n     * @return bool\n     */\n    public function unread()\n    {\n        return $this->read_at === null;\n    }\n\n    /**\n     * Create a new database notification collection instance.\n     *\n     * @param  array  $models\n     * @return \\Illuminate\\Notifications\\DatabaseNotificationCollection\n     */\n    public function newCollection(array $models = [])\n    {\n        return new DatabaseNotificationCollection($models);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/DatabaseNotificationCollection.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Database\\Eloquent\\Collection;\n\nclass DatabaseNotificationCollection extends Collection\n{\n    /**\n     * Mark all notifications as read.\n     *\n     * @return void\n     */\n    public function markAsRead()\n    {\n        $this->each(function ($notification) {\n            $notification->markAsRead();\n        });\n    }\n\n    /**\n     * Mark all notifications as unread.\n     *\n     * @return void\n     */\n    public function markAsUnread()\n    {\n        $this->each(function ($notification) {\n            $notification->markAsUnread();\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Events/BroadcastNotificationCreated.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Events;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Broadcasting\\PrivateChannel;\nuse Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast;\n\nclass BroadcastNotificationCreated implements ShouldBroadcast\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * The notifiable entity who received the notification.\n     *\n     * @var mixed\n     */\n    public $notifiable;\n\n    /**\n     * The notification instance.\n     *\n     * @var \\Illuminate\\Notifications\\Notification\n     */\n    public $notification;\n\n    /**\n     * The notification data.\n     *\n     * @var array\n     */\n    public $data = [];\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($notifiable, $notification, $data)\n    {\n        $this->data = $data;\n        $this->notifiable = $notifiable;\n        $this->notification = $notification;\n    }\n\n    /**\n     * Get the channels the event should broadcast on.\n     *\n     * @return array\n     */\n    public function broadcastOn()\n    {\n        $channels = $this->notification->broadcastOn();\n\n        if (! empty($channels)) {\n            return $channels;\n        }\n\n        return [new PrivateChannel($this->channelName())];\n    }\n\n    /**\n     * Get the broadcast channel name for the event.\n     *\n     * @return string\n     */\n    protected function channelName()\n    {\n        if (method_exists($this->notifiable, 'receivesBroadcastNotificationsOn')) {\n            return $this->notifiable->receivesBroadcastNotificationsOn($this->notification);\n        }\n\n        $class = str_replace('\\\\', '.', get_class($this->notifiable));\n\n        return $class.'.'.$this->notifiable->getKey();\n    }\n\n    /**\n     * Get the data that should be sent with the broadcasted event.\n     *\n     * @return array\n     */\n    public function broadcastWith()\n    {\n        return array_merge($this->data, [\n            'id' => $this->notification->id,\n            'type' => $this->broadcastType(),\n        ]);\n    }\n\n    /**\n     * Get the type of the notification being broadcast.\n     *\n     * @return string\n     */\n    public function broadcastType()\n    {\n        return method_exists($this->notification, 'broadcastType')\n                    ? $this->notification->broadcastType()\n                    : get_class($this->notification);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationFailed.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Events;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass NotificationFailed\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * The notifiable entity who received the notification.\n     *\n     * @var mixed\n     */\n    public $notifiable;\n\n    /**\n     * The notification instance.\n     *\n     * @var \\Illuminate\\Notifications\\Notification\n     */\n    public $notification;\n\n    /**\n     * The channel name.\n     *\n     * @var string\n     */\n    public $channel;\n\n    /**\n     * The data needed to process this failure.\n     *\n     * @var array\n     */\n    public $data = [];\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  string  $channel\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct($notifiable, $notification, $channel, $data = [])\n    {\n        $this->data = $data;\n        $this->channel = $channel;\n        $this->notifiable = $notifiable;\n        $this->notification = $notification;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSending.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Events;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass NotificationSending\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * The notifiable entity who received the notification.\n     *\n     * @var mixed\n     */\n    public $notifiable;\n\n    /**\n     * The notification instance.\n     *\n     * @var \\Illuminate\\Notifications\\Notification\n     */\n    public $notification;\n\n    /**\n     * The channel name.\n     *\n     * @var string\n     */\n    public $channel;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  string  $channel\n     * @return void\n     */\n    public function __construct($notifiable, $notification, $channel)\n    {\n        $this->channel = $channel;\n        $this->notifiable = $notifiable;\n        $this->notification = $notification;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Events/NotificationSent.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Events;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\n\nclass NotificationSent\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * The notifiable entity who received the notification.\n     *\n     * @var mixed\n     */\n    public $notifiable;\n\n    /**\n     * The notification instance.\n     *\n     * @var \\Illuminate\\Notifications\\Notification\n     */\n    public $notification;\n\n    /**\n     * The channel name.\n     *\n     * @var string\n     */\n    public $channel;\n\n    /**\n     * The channel's response.\n     *\n     * @var mixed\n     */\n    public $response;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  mixed  $notifiable\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  string  $channel\n     * @param  mixed  $response\n     * @return void\n     */\n    public function __construct($notifiable, $notification, $channel, $response = null)\n    {\n        $this->channel = $channel;\n        $this->response = $response;\n        $this->notifiable = $notifiable;\n        $this->notification = $notification;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/HasDatabaseNotifications.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\ntrait HasDatabaseNotifications\n{\n    /**\n     * Get the entity's notifications.\n     *\n     * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany\n     */\n    public function notifications()\n    {\n        return $this->morphMany(DatabaseNotification::class, 'notifiable')->orderBy('created_at', 'desc');\n    }\n\n    /**\n     * Get the entity's read notifications.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function readNotifications()\n    {\n        return $this->notifications()->whereNotNull('read_at');\n    }\n\n    /**\n     * Get the entity's unread notifications.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function unreadNotifications()\n    {\n        return $this->notifications()->whereNull('read_at');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Messages/BroadcastMessage.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Messages;\n\nuse Illuminate\\Bus\\Queueable;\n\nclass BroadcastMessage\n{\n    use Queueable;\n\n    /**\n     * The data for the notification.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * Create a new message instance.\n     *\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct(array $data)\n    {\n        $this->data = $data;\n    }\n\n    /**\n     * Set the message data.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function data($data)\n    {\n        $this->data = $data;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Messages/DatabaseMessage.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Messages;\n\nclass DatabaseMessage\n{\n    /**\n     * The data that should be stored with the notification.\n     *\n     * @var array\n     */\n    public $data = [];\n\n    /**\n     * Create a new database message.\n     *\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct(array $data = [])\n    {\n        $this->data = $data;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Messages/MailMessage.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Messages;\n\nuse Traversable;\nuse Illuminate\\Mail\\Markdown;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Support\\Renderable;\n\nclass MailMessage extends SimpleMessage implements Renderable\n{\n    /**\n     * The view to be rendered.\n     *\n     * @var array|string\n     */\n    public $view;\n\n    /**\n     * The view data for the message.\n     *\n     * @var array\n     */\n    public $viewData = [];\n\n    /**\n     * The Markdown template to render (if applicable).\n     *\n     * @var string|null\n     */\n    public $markdown = 'notifications::email';\n\n    /**\n     * The \"from\" information for the message.\n     *\n     * @var array\n     */\n    public $from = [];\n\n    /**\n     * The \"reply to\" information for the message.\n     *\n     * @var array\n     */\n    public $replyTo = [];\n\n    /**\n     * The \"cc\" information for the message.\n     *\n     * @var array\n     */\n    public $cc = [];\n\n    /**\n     * The \"bcc\" information for the message.\n     *\n     * @var array\n     */\n    public $bcc = [];\n\n    /**\n     * The attachments for the message.\n     *\n     * @var array\n     */\n    public $attachments = [];\n\n    /**\n     * The raw attachments for the message.\n     *\n     * @var array\n     */\n    public $rawAttachments = [];\n\n    /**\n     * Priority level of the message.\n     *\n     * @var int\n     */\n    public $priority;\n\n    /**\n     * The callbacks for the message.\n     *\n     * @var array\n     */\n    public $callbacks = [];\n\n    /**\n     * Set the view for the mail message.\n     *\n     * @param  array|string  $view\n     * @param  array  $data\n     * @return $this\n     */\n    public function view($view, array $data = [])\n    {\n        $this->view = $view;\n        $this->viewData = $data;\n\n        $this->markdown = null;\n\n        return $this;\n    }\n\n    /**\n     * Set the Markdown template for the notification.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @return $this\n     */\n    public function markdown($view, array $data = [])\n    {\n        $this->markdown = $view;\n        $this->viewData = $data;\n\n        $this->view = null;\n\n        return $this;\n    }\n\n    /**\n     * Set the default markdown template.\n     *\n     * @param  string  $template\n     * @return $this\n     */\n    public function template($template)\n    {\n        $this->markdown = $template;\n\n        return $this;\n    }\n\n    /**\n     * Set the from address for the mail message.\n     *\n     * @param  string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function from($address, $name = null)\n    {\n        $this->from = [$address, $name];\n\n        return $this;\n    }\n\n    /**\n     * Set the \"reply to\" address of the message.\n     *\n     * @param  array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function replyTo($address, $name = null)\n    {\n        if ($this->arrayOfAddresses($address)) {\n            $this->replyTo += $this->parseAddresses($address);\n        } else {\n            $this->replyTo[] = [$address, $name];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the cc address for the mail message.\n     *\n     * @param  array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function cc($address, $name = null)\n    {\n        if ($this->arrayOfAddresses($address)) {\n            $this->cc += $this->parseAddresses($address);\n        } else {\n            $this->cc[] = [$address, $name];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the bcc address for the mail message.\n     *\n     * @param  array|string  $address\n     * @param  string|null  $name\n     * @return $this\n     */\n    public function bcc($address, $name = null)\n    {\n        if ($this->arrayOfAddresses($address)) {\n            $this->bcc += $this->parseAddresses($address);\n        } else {\n            $this->bcc[] = [$address, $name];\n        }\n\n        return $this;\n    }\n\n    /**\n     * Attach a file to the message.\n     *\n     * @param  string  $file\n     * @param  array  $options\n     * @return $this\n     */\n    public function attach($file, array $options = [])\n    {\n        $this->attachments[] = compact('file', 'options');\n\n        return $this;\n    }\n\n    /**\n     * Attach in-memory data as an attachment.\n     *\n     * @param  string  $data\n     * @param  string  $name\n     * @param  array  $options\n     * @return $this\n     */\n    public function attachData($data, $name, array $options = [])\n    {\n        $this->rawAttachments[] = compact('data', 'name', 'options');\n\n        return $this;\n    }\n\n    /**\n     * Set the priority of this message.\n     *\n     * The value is an integer where 1 is the highest priority and 5 is the lowest.\n     *\n     * @param  int  $level\n     * @return $this\n     */\n    public function priority($level)\n    {\n        $this->priority = $level;\n\n        return $this;\n    }\n\n    /**\n     * Get the data array for the mail message.\n     *\n     * @return array\n     */\n    public function data()\n    {\n        return array_merge($this->toArray(), $this->viewData);\n    }\n\n    /**\n     * Parse the multi-address array into the necessary format.\n     *\n     * @param  array  $value\n     * @return array\n     */\n    protected function parseAddresses($value)\n    {\n        return collect($value)->map(function ($address, $name) {\n            return [$address, is_numeric($name) ? null : $name];\n        })->values()->all();\n    }\n\n    /**\n     * Determine if the given \"address\" is actually an array of addresses.\n     *\n     * @param  mixed  $address\n     * @return bool\n     */\n    protected function arrayOfAddresses($address)\n    {\n        return is_array($address) ||\n               $address instanceof Arrayable ||\n               $address instanceof Traversable;\n    }\n\n    /**\n     * Render the mail notification message into an HTML string.\n     *\n     * @return string\n     */\n    public function render()\n    {\n        return Container::getInstance()\n            ->make(Markdown::class)\n            ->render($this->markdown, $this->data());\n    }\n\n    /**\n     * Register a callback to be called with the Swift message instance.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function withSwiftMessage($callback)\n    {\n        $this->callbacks[] = $callback;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Messages/SimpleMessage.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications\\Messages;\n\nuse Illuminate\\Notifications\\Action;\nuse Illuminate\\Contracts\\Support\\Htmlable;\n\nclass SimpleMessage\n{\n    /**\n     * The \"level\" of the notification (info, success, error).\n     *\n     * @var string\n     */\n    public $level = 'info';\n\n    /**\n     * The subject of the notification.\n     *\n     * @var string\n     */\n    public $subject;\n\n    /**\n     * The notification's greeting.\n     *\n     * @var string\n     */\n    public $greeting;\n\n    /**\n     * The notification's salutation.\n     *\n     * @var string\n     */\n    public $salutation;\n\n    /**\n     * The \"intro\" lines of the notification.\n     *\n     * @var array\n     */\n    public $introLines = [];\n\n    /**\n     * The \"outro\" lines of the notification.\n     *\n     * @var array\n     */\n    public $outroLines = [];\n\n    /**\n     * The text / label for the action.\n     *\n     * @var string\n     */\n    public $actionText;\n\n    /**\n     * The action URL.\n     *\n     * @var string\n     */\n    public $actionUrl;\n\n    /**\n     * Indicate that the notification gives information about a successful operation.\n     *\n     * @return $this\n     */\n    public function success()\n    {\n        $this->level = 'success';\n\n        return $this;\n    }\n\n    /**\n     * Indicate that the notification gives information about an error.\n     *\n     * @return $this\n     */\n    public function error()\n    {\n        $this->level = 'error';\n\n        return $this;\n    }\n\n    /**\n     * Set the \"level\" of the notification (success, error, etc.).\n     *\n     * @param  string  $level\n     * @return $this\n     */\n    public function level($level)\n    {\n        $this->level = $level;\n\n        return $this;\n    }\n\n    /**\n     * Set the subject of the notification.\n     *\n     * @param  string  $subject\n     * @return $this\n     */\n    public function subject($subject)\n    {\n        $this->subject = $subject;\n\n        return $this;\n    }\n\n    /**\n     * Set the greeting of the notification.\n     *\n     * @param  string  $greeting\n     * @return $this\n     */\n    public function greeting($greeting)\n    {\n        $this->greeting = $greeting;\n\n        return $this;\n    }\n\n    /**\n     * Set the salutation of the notification.\n     *\n     * @param  string  $salutation\n     * @return $this\n     */\n    public function salutation($salutation)\n    {\n        $this->salutation = $salutation;\n\n        return $this;\n    }\n\n    /**\n     * Add a line of text to the notification.\n     *\n     * @param  mixed  $line\n     * @return $this\n     */\n    public function line($line)\n    {\n        return $this->with($line);\n    }\n\n    /**\n     * Add a line of text to the notification.\n     *\n     * @param  mixed  $line\n     * @return $this\n     */\n    public function with($line)\n    {\n        if ($line instanceof Action) {\n            $this->action($line->text, $line->url);\n        } elseif (! $this->actionText) {\n            $this->introLines[] = $this->formatLine($line);\n        } else {\n            $this->outroLines[] = $this->formatLine($line);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Format the given line of text.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\Htmlable|string|array  $line\n     * @return \\Illuminate\\Contracts\\Support\\Htmlable|string\n     */\n    protected function formatLine($line)\n    {\n        if ($line instanceof Htmlable) {\n            return $line;\n        }\n\n        if (is_array($line)) {\n            return implode(' ', array_map('trim', $line));\n        }\n\n        return trim(implode(' ', array_map('trim', preg_split('/\\\\r\\\\n|\\\\r|\\\\n/', $line))));\n    }\n\n    /**\n     * Configure the \"call to action\" button.\n     *\n     * @param  string  $text\n     * @param  string  $url\n     * @return $this\n     */\n    public function action($text, $url)\n    {\n        $this->actionText = $text;\n        $this->actionUrl = $url;\n\n        return $this;\n    }\n\n    /**\n     * Get an array representation of the message.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return [\n            'level' => $this->level,\n            'subject' => $this->subject,\n            'greeting' => $this->greeting,\n            'salutation' => $this->salutation,\n            'introLines' => $this->introLines,\n            'outroLines' => $this->outroLines,\n            'actionText' => $this->actionText,\n            'actionUrl' => $this->actionUrl,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Notifiable.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\ntrait Notifiable\n{\n    use HasDatabaseNotifications, RoutesNotifications;\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/Notification.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Queue\\SerializesModels;\n\nclass Notification\n{\n    use SerializesModels;\n\n    /**\n     * The unique identifier for the notification.\n     *\n     * @var string\n     */\n    public $id;\n\n    /**\n     * The locale to be used when sending the notification.\n     *\n     * @var string|null\n     */\n    public $locale;\n\n    /**\n     * Get the channels the event should broadcast on.\n     *\n     * @return array\n     */\n    public function broadcastOn()\n    {\n        return [];\n    }\n\n    /**\n     * Set the locale to send this notification in.\n     *\n     * @param  string  $locale\n     * @return $this\n     */\n    public function locale($locale)\n    {\n        $this->locale = $locale;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\Traits\\Localizable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Contracts\\Translation\\HasLocalePreference;\nuse Illuminate\\Database\\Eloquent\\Collection as ModelCollection;\n\nclass NotificationSender\n{\n    use Localizable;\n\n    /**\n     * The notification manager instance.\n     *\n     * @var \\Illuminate\\Notifications\\ChannelManager\n     */\n    protected $manager;\n\n    /**\n     * The Bus dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Bus\\Dispatcher\n     */\n    protected $bus;\n\n    /**\n     * The event dispatcher.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The locale to be used when sending notifications.\n     *\n     * @var string|null\n     */\n    protected $locale;\n\n    /**\n     * Create a new notification sender instance.\n     *\n     * @param  \\Illuminate\\Notifications\\ChannelManager  $manager\n     * @param  \\Illuminate\\Contracts\\Bus\\Dispatcher  $bus\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @param  string|null  $locale\n     * @return void\n     */\n    public function __construct($manager, $bus, $events, $locale = null)\n    {\n        $this->bus = $bus;\n        $this->events = $events;\n        $this->manager = $manager;\n        $this->locale = $locale;\n    }\n\n    /**\n     * Send the given notification to the given notifiable entities.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function send($notifiables, $notification)\n    {\n        $notifiables = $this->formatNotifiables($notifiables);\n\n        if ($notification instanceof ShouldQueue) {\n            return $this->queueNotification($notifiables, $notification);\n        }\n\n        return $this->sendNow($notifiables, $notification);\n    }\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @param  array|null  $channels\n     * @return void\n     */\n    public function sendNow($notifiables, $notification, array $channels = null)\n    {\n        $notifiables = $this->formatNotifiables($notifiables);\n\n        $original = clone $notification;\n\n        foreach ($notifiables as $notifiable) {\n            if (empty($viaChannels = $channels ?: $notification->via($notifiable))) {\n                continue;\n            }\n\n            $this->withLocale($this->preferredLocale($notifiable, $notification), function () use ($viaChannels, $notifiable, $original) {\n                $notificationId = Str::uuid()->toString();\n\n                foreach ((array) $viaChannels as $channel) {\n                    $this->sendToNotifiable($notifiable, $notificationId, clone $original, $channel);\n                }\n            });\n        }\n    }\n\n    /**\n     * Get the notifiable's preferred locale for the notification.\n     *\n     * @param  mixed  $notifiable\n     * @param  mixed  $notification\n     * @return string|null\n     */\n    protected function preferredLocale($notifiable, $notification)\n    {\n        return $notification->locale ?? $this->locale ?? value(function () use ($notifiable) {\n            if ($notifiable instanceof HasLocalePreference) {\n                return $notifiable->preferredLocale();\n            }\n        });\n    }\n\n    /**\n     * Send the given notification to the given notifiable via a channel.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $id\n     * @param  mixed  $notification\n     * @param  string  $channel\n     * @return void\n     */\n    protected function sendToNotifiable($notifiable, $id, $notification, $channel)\n    {\n        if (! $notification->id) {\n            $notification->id = $id;\n        }\n\n        if (! $this->shouldSendNotification($notifiable, $notification, $channel)) {\n            return;\n        }\n\n        $response = $this->manager->driver($channel)->send($notifiable, $notification);\n\n        $this->events->dispatch(\n            new Events\\NotificationSent($notifiable, $notification, $channel, $response)\n        );\n    }\n\n    /**\n     * Determines if the notification can be sent.\n     *\n     * @param  mixed  $notifiable\n     * @param  mixed  $notification\n     * @param  string  $channel\n     * @return bool\n     */\n    protected function shouldSendNotification($notifiable, $notification, $channel)\n    {\n        return $this->events->until(\n            new Events\\NotificationSending($notifiable, $notification, $channel)\n        ) !== false;\n    }\n\n    /**\n     * Queue the given notification instances.\n     *\n     * @param  mixed  $notifiables\n     * @param  array[\\Illuminate\\Notifications\\Channels\\Notification]  $notification\n     * @return void\n     */\n    protected function queueNotification($notifiables, $notification)\n    {\n        $notifiables = $this->formatNotifiables($notifiables);\n\n        $original = clone $notification;\n\n        foreach ($notifiables as $notifiable) {\n            $notificationId = Str::uuid()->toString();\n\n            foreach ((array) $original->via($notifiable) as $channel) {\n                $notification = clone $original;\n\n                $notification->id = $notificationId;\n\n                if (! is_null($this->locale)) {\n                    $notification->locale = $this->locale;\n                }\n\n                $this->bus->dispatch(\n                    (new SendQueuedNotifications($notifiable, $notification, [$channel]))\n                            ->onConnection($notification->connection)\n                            ->onQueue($notification->queue)\n                            ->delay($notification->delay)\n                );\n            }\n        }\n    }\n\n    /**\n     * Format the notifiables into a Collection / array if necessary.\n     *\n     * @param  mixed  $notifiables\n     * @return \\Illuminate\\Database\\Eloquent\\Collection|array\n     */\n    protected function formatNotifiables($notifiables)\n    {\n        if (! $notifiables instanceof Collection && ! is_array($notifiables)) {\n            return $notifiables instanceof Model\n                            ? new ModelCollection([$notifiables]) : [$notifiables];\n        }\n\n        return $notifiables;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/NotificationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Notifications\\Factory as FactoryContract;\nuse Illuminate\\Contracts\\Notifications\\Dispatcher as DispatcherContract;\n\nclass NotificationServiceProvider extends ServiceProvider\n{\n    /**\n     * Boot the application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $this->loadViewsFrom(__DIR__.'/resources/views', 'notifications');\n\n        if ($this->app->runningInConsole()) {\n            $this->publishes([\n                __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/notifications'),\n            ], 'laravel-notifications');\n        }\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton(ChannelManager::class, function ($app) {\n            return new ChannelManager($app);\n        });\n\n        $this->app->alias(\n            ChannelManager::class, DispatcherContract::class\n        );\n\n        $this->app->alias(\n            ChannelManager::class, FactoryContract::class\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Notifications\\Dispatcher;\n\ntrait RoutesNotifications\n{\n    /**\n     * Send the given notification.\n     *\n     * @param  mixed  $instance\n     * @return void\n     */\n    public function notify($instance)\n    {\n        app(Dispatcher::class)->send($this, $instance);\n    }\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  mixed  $instance\n     * @param  array|null  $channels\n     * @return void\n     */\n    public function notifyNow($instance, array $channels = null)\n    {\n        app(Dispatcher::class)->sendNow($this, $instance, $channels);\n    }\n\n    /**\n     * Get the notification routing information for the given driver.\n     *\n     * @param  string  $driver\n     * @param  \\Illuminate\\Notifications\\Notification|null  $notification\n     * @return mixed\n     */\n    public function routeNotificationFor($driver, $notification = null)\n    {\n        if (method_exists($this, $method = 'routeNotificationFor'.Str::studly($driver))) {\n            return $this->{$method}($notification);\n        }\n\n        switch ($driver) {\n            case 'database':\n                return $this->notifications();\n            case 'mail':\n                return $this->email;\n            case 'nexmo':\n                return $this->phone_number;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/SendQueuedNotifications.php",
    "content": "<?php\n\nnamespace Illuminate\\Notifications;\n\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass SendQueuedNotifications implements ShouldQueue\n{\n    use Queueable, SerializesModels;\n\n    /**\n     * The notifiable entities that should receive the notification.\n     *\n     * @var \\Illuminate\\Support\\Collection\n     */\n    public $notifiables;\n\n    /**\n     * The notification to be sent.\n     *\n     * @var \\Illuminate\\Notifications\\Notification\n     */\n    public $notification;\n\n    /**\n     * All of the channels to send the notification to.\n     *\n     * @var array\n     */\n    public $channels;\n\n    /**\n     * The number of times the job may be attempted.\n     *\n     * @var int\n     */\n    public $tries;\n\n    /**\n     * The number of seconds the job can run before timing out.\n     *\n     * @var int\n     */\n    public $timeout;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $notifiables\n     * @param  \\Illuminate\\Notifications\\Notification  $notification\n     * @param  array|null  $channels\n     * @return void\n     */\n    public function __construct($notifiables, $notification, array $channels = null)\n    {\n        $this->channels = $channels;\n        $this->notifiables = $notifiables;\n        $this->notification = $notification;\n        $this->tries = property_exists($notification, 'tries') ? $notification->tries : null;\n        $this->timeout = property_exists($notification, 'timeout') ? $notification->timeout : null;\n    }\n\n    /**\n     * Send the notifications.\n     *\n     * @param  \\Illuminate\\Notifications\\ChannelManager  $manager\n     * @return void\n     */\n    public function handle(ChannelManager $manager)\n    {\n        $manager->sendNow($this->notifiables, $this->notification, $this->channels);\n    }\n\n    /**\n     * Get the display name for the queued job.\n     *\n     * @return string\n     */\n    public function displayName()\n    {\n        return get_class($this->notification);\n    }\n\n    /**\n     * Call the failed method on the notification instance.\n     *\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function failed($e)\n    {\n        if (method_exists($this->notification, 'failed')) {\n            $this->notification->failed($e);\n        }\n    }\n\n    /**\n     * Get the retry delay for the notification.\n     *\n     * @return mixed\n     */\n    public function retryAfter()\n    {\n        if (! method_exists($this->notification, 'retryAfter') && ! isset($this->notification->retryAfter)) {\n            return;\n        }\n\n        return $this->notification->retryAfter ?? $this->notification->retryAfter();\n    }\n\n    /**\n     * Prepare the instance for cloning.\n     *\n     * @return void\n     */\n    public function __clone()\n    {\n        $this->notifiables = clone $this->notifiables;\n        $this->notification = clone $this->notification;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/composer.json",
    "content": "{\n    \"name\": \"illuminate/notifications\",\n    \"description\": \"The Illuminate Notifications package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/broadcasting\": \"5.8.*\",\n        \"illuminate/bus\": \"5.8.*\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/filesystem\": \"5.8.*\",\n        \"illuminate/mail\": \"5.8.*\",\n        \"illuminate/queue\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Notifications\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/database\": \"Required to use the database transport (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php",
    "content": "@component('mail::message')\n{{-- Greeting --}}\n@if (! empty($greeting))\n# {{ $greeting }}\n@else\n@if ($level === 'error')\n# @lang('Whoops!')\n@else\n# @lang('Hello!')\n@endif\n@endif\n\n{{-- Intro Lines --}}\n@foreach ($introLines as $line)\n{{ $line }}\n\n@endforeach\n\n{{-- Action Button --}}\n@isset($actionText)\n<?php\n    switch ($level) {\n        case 'success':\n        case 'error':\n            $color = $level;\n            break;\n        default:\n            $color = 'primary';\n    }\n?>\n@component('mail::button', ['url' => $actionUrl, 'color' => $color])\n{{ $actionText }}\n@endcomponent\n@endisset\n\n{{-- Outro Lines --}}\n@foreach ($outroLines as $line)\n{{ $line }}\n\n@endforeach\n\n{{-- Salutation --}}\n@if (! empty($salutation))\n{{ $salutation }}\n@else\n@lang('Regards'),<br>{{ config('app.name') }}\n@endif\n\n{{-- Subcopy --}}\n@isset($actionText)\n@slot('subcopy')\n@lang(\n    \"If you’re having trouble clicking the \\\":actionText\\\" button, copy and paste the URL below\\n\".\n    'into your web browser: [:actionURL](:actionURL)',\n    [\n        'actionText' => $actionText,\n        'actionURL' => $actionUrl,\n    ]\n)\n@endslot\n@endisset\n@endcomponent\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/AbstractPaginator.php",
    "content": "<?php\n\nnamespace Illuminate\\Pagination;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Contracts\\Support\\Htmlable;\nuse Illuminate\\Support\\Traits\\ForwardsCalls;\n\n/**\n * @mixin \\Illuminate\\Support\\Collection\n */\nabstract class AbstractPaginator implements Htmlable\n{\n    use ForwardsCalls;\n\n    /**\n     * All of the items being paginated.\n     *\n     * @var \\Illuminate\\Support\\Collection\n     */\n    protected $items;\n\n    /**\n     * The number of items to be shown per page.\n     *\n     * @var int\n     */\n    protected $perPage;\n\n    /**\n     * The current page being \"viewed\".\n     *\n     * @var int\n     */\n    protected $currentPage;\n\n    /**\n     * The base path to assign to all URLs.\n     *\n     * @var string\n     */\n    protected $path = '/';\n\n    /**\n     * The query parameters to add to all URLs.\n     *\n     * @var array\n     */\n    protected $query = [];\n\n    /**\n     * The URL fragment to add to all URLs.\n     *\n     * @var string|null\n     */\n    protected $fragment;\n\n    /**\n     * The query string variable used to store the page.\n     *\n     * @var string\n     */\n    protected $pageName = 'page';\n\n    /**\n     * The number of links to display on each side of current page link.\n     *\n     * @var int\n     */\n    public $onEachSide = 3;\n\n    /**\n     * The paginator options.\n     *\n     * @var array\n     */\n    protected $options;\n\n    /**\n     * The current path resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected static $currentPathResolver;\n\n    /**\n     * The current page resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected static $currentPageResolver;\n\n    /**\n     * The view factory resolver callback.\n     *\n     * @var \\Closure\n     */\n    protected static $viewFactoryResolver;\n\n    /**\n     * The default pagination view.\n     *\n     * @var string\n     */\n    public static $defaultView = 'pagination::bootstrap-4';\n\n    /**\n     * The default \"simple\" pagination view.\n     *\n     * @var string\n     */\n    public static $defaultSimpleView = 'pagination::simple-bootstrap-4';\n\n    /**\n     * Determine if the given value is a valid page number.\n     *\n     * @param  int  $page\n     * @return bool\n     */\n    protected function isValidPageNumber($page)\n    {\n        return $page >= 1 && filter_var($page, FILTER_VALIDATE_INT) !== false;\n    }\n\n    /**\n     * Get the URL for the previous page.\n     *\n     * @return string|null\n     */\n    public function previousPageUrl()\n    {\n        if ($this->currentPage() > 1) {\n            return $this->url($this->currentPage() - 1);\n        }\n    }\n\n    /**\n     * Create a range of pagination URLs.\n     *\n     * @param  int  $start\n     * @param  int  $end\n     * @return array\n     */\n    public function getUrlRange($start, $end)\n    {\n        return collect(range($start, $end))->mapWithKeys(function ($page) {\n            return [$page => $this->url($page)];\n        })->all();\n    }\n\n    /**\n     * Get the URL for a given page number.\n     *\n     * @param  int  $page\n     * @return string\n     */\n    public function url($page)\n    {\n        if ($page <= 0) {\n            $page = 1;\n        }\n\n        // If we have any extra query string key / value pairs that need to be added\n        // onto the URL, we will put them in query string form and then attach it\n        // to the URL. This allows for extra information like sortings storage.\n        $parameters = [$this->pageName => $page];\n\n        if (count($this->query) > 0) {\n            $parameters = array_merge($this->query, $parameters);\n        }\n\n        return $this->path\n                        .(Str::contains($this->path, '?') ? '&' : '?')\n                        .Arr::query($parameters)\n                        .$this->buildFragment();\n    }\n\n    /**\n     * Get / set the URL fragment to be appended to URLs.\n     *\n     * @param  string|null  $fragment\n     * @return $this|string|null\n     */\n    public function fragment($fragment = null)\n    {\n        if (is_null($fragment)) {\n            return $this->fragment;\n        }\n\n        $this->fragment = $fragment;\n\n        return $this;\n    }\n\n    /**\n     * Add a set of query string values to the paginator.\n     *\n     * @param  array|string|null  $key\n     * @param  string|null  $value\n     * @return $this\n     */\n    public function appends($key, $value = null)\n    {\n        if (is_null($key)) {\n            return $this;\n        }\n\n        if (is_array($key)) {\n            return $this->appendArray($key);\n        }\n\n        return $this->addQuery($key, $value);\n    }\n\n    /**\n     * Add an array of query string values.\n     *\n     * @param  array  $keys\n     * @return $this\n     */\n    protected function appendArray(array $keys)\n    {\n        foreach ($keys as $key => $value) {\n            $this->addQuery($key, $value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a query string value to the paginator.\n     *\n     * @param  string  $key\n     * @param  string  $value\n     * @return $this\n     */\n    protected function addQuery($key, $value)\n    {\n        if ($key !== $this->pageName) {\n            $this->query[$key] = $value;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Build the full fragment portion of a URL.\n     *\n     * @return string\n     */\n    protected function buildFragment()\n    {\n        return $this->fragment ? '#'.$this->fragment : '';\n    }\n\n    /**\n     * Load a set of relationships onto the mixed relationship collection.\n     *\n     * @param  string $relation\n     * @param  array  $relations\n     * @return $this\n     */\n    public function loadMorph($relation, $relations)\n    {\n        $this->getCollection()->loadMorph($relation, $relations);\n\n        return $this;\n    }\n\n    /**\n     * Get the slice of items being paginated.\n     *\n     * @return array\n     */\n    public function items()\n    {\n        return $this->items->all();\n    }\n\n    /**\n     * Get the number of the first item in the slice.\n     *\n     * @return int\n     */\n    public function firstItem()\n    {\n        return count($this->items) > 0 ? ($this->currentPage - 1) * $this->perPage + 1 : null;\n    }\n\n    /**\n     * Get the number of the last item in the slice.\n     *\n     * @return int\n     */\n    public function lastItem()\n    {\n        return count($this->items) > 0 ? $this->firstItem() + $this->count() - 1 : null;\n    }\n\n    /**\n     * Get the number of items shown per page.\n     *\n     * @return int\n     */\n    public function perPage()\n    {\n        return $this->perPage;\n    }\n\n    /**\n     * Determine if there are enough items to split into multiple pages.\n     *\n     * @return bool\n     */\n    public function hasPages()\n    {\n        return $this->currentPage() != 1 || $this->hasMorePages();\n    }\n\n    /**\n     * Determine if the paginator is on the first page.\n     *\n     * @return bool\n     */\n    public function onFirstPage()\n    {\n        return $this->currentPage() <= 1;\n    }\n\n    /**\n     * Get the current page.\n     *\n     * @return int\n     */\n    public function currentPage()\n    {\n        return $this->currentPage;\n    }\n\n    /**\n     * Get the query string variable used to store the page.\n     *\n     * @return string\n     */\n    public function getPageName()\n    {\n        return $this->pageName;\n    }\n\n    /**\n     * Set the query string variable used to store the page.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function setPageName($name)\n    {\n        $this->pageName = $name;\n\n        return $this;\n    }\n\n    /**\n     * Set the base path to assign to all URLs.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function withPath($path)\n    {\n        return $this->setPath($path);\n    }\n\n    /**\n     * Set the base path to assign to all URLs.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function setPath($path)\n    {\n        $this->path = $path;\n\n        return $this;\n    }\n\n    /**\n     * Set the number of links to display on each side of current page link.\n     *\n     * @param  int  $count\n     * @return $this\n     */\n    public function onEachSide($count)\n    {\n        $this->onEachSide = $count;\n\n        return $this;\n    }\n\n    /**\n     * Resolve the current request path or return the default value.\n     *\n     * @param  string  $default\n     * @return string\n     */\n    public static function resolveCurrentPath($default = '/')\n    {\n        if (isset(static::$currentPathResolver)) {\n            return call_user_func(static::$currentPathResolver);\n        }\n\n        return $default;\n    }\n\n    /**\n     * Set the current request path resolver callback.\n     *\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public static function currentPathResolver(Closure $resolver)\n    {\n        static::$currentPathResolver = $resolver;\n    }\n\n    /**\n     * Resolve the current page or return the default value.\n     *\n     * @param  string  $pageName\n     * @param  int  $default\n     * @return int\n     */\n    public static function resolveCurrentPage($pageName = 'page', $default = 1)\n    {\n        if (isset(static::$currentPageResolver)) {\n            return call_user_func(static::$currentPageResolver, $pageName);\n        }\n\n        return $default;\n    }\n\n    /**\n     * Set the current page resolver callback.\n     *\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public static function currentPageResolver(Closure $resolver)\n    {\n        static::$currentPageResolver = $resolver;\n    }\n\n    /**\n     * Get an instance of the view factory from the resolver.\n     *\n     * @return \\Illuminate\\Contracts\\View\\Factory\n     */\n    public static function viewFactory()\n    {\n        return call_user_func(static::$viewFactoryResolver);\n    }\n\n    /**\n     * Set the view factory resolver callback.\n     *\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public static function viewFactoryResolver(Closure $resolver)\n    {\n        static::$viewFactoryResolver = $resolver;\n    }\n\n    /**\n     * Set the default pagination view.\n     *\n     * @param  string  $view\n     * @return void\n     */\n    public static function defaultView($view)\n    {\n        static::$defaultView = $view;\n    }\n\n    /**\n     * Set the default \"simple\" pagination view.\n     *\n     * @param  string  $view\n     * @return void\n     */\n    public static function defaultSimpleView($view)\n    {\n        static::$defaultSimpleView = $view;\n    }\n\n    /**\n     * Indicate that Bootstrap 3 styling should be used for generated links.\n     *\n     * @return void\n     */\n    public static function useBootstrapThree()\n    {\n        static::defaultView('pagination::default');\n        static::defaultSimpleView('pagination::simple-default');\n    }\n\n    /**\n     * Get an iterator for the items.\n     *\n     * @return \\ArrayIterator\n     */\n    public function getIterator()\n    {\n        return $this->items->getIterator();\n    }\n\n    /**\n     * Determine if the list of items is empty.\n     *\n     * @return bool\n     */\n    public function isEmpty()\n    {\n        return $this->items->isEmpty();\n    }\n\n    /**\n     * Determine if the list of items is not empty.\n     *\n     * @return bool\n     */\n    public function isNotEmpty()\n    {\n        return $this->items->isNotEmpty();\n    }\n\n    /**\n     * Get the number of items for the current page.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return $this->items->count();\n    }\n\n    /**\n     * Get the paginator's underlying collection.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function getCollection()\n    {\n        return $this->items;\n    }\n\n    /**\n     * Set the paginator's underlying collection.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $collection\n     * @return $this\n     */\n    public function setCollection(Collection $collection)\n    {\n        $this->items = $collection;\n\n        return $this;\n    }\n\n    /**\n     * Get the paginator options.\n     *\n     * @return array\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Determine if the given item exists.\n     *\n     * @param  mixed  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return $this->items->has($key);\n    }\n\n    /**\n     * Get the item at the given offset.\n     *\n     * @param  mixed  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->items->get($key);\n    }\n\n    /**\n     * Set the item at the given offset.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        $this->items->put($key, $value);\n    }\n\n    /**\n     * Unset the item at the given key.\n     *\n     * @param  mixed  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        $this->items->forget($key);\n    }\n\n    /**\n     * Render the contents of the paginator to HTML.\n     *\n     * @return string\n     */\n    public function toHtml()\n    {\n        return (string) $this->render();\n    }\n\n    /**\n     * Make dynamic calls into the collection.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->forwardCallTo($this->getCollection(), $method, $parameters);\n    }\n\n    /**\n     * Render the contents of the paginator when casting to string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return (string) $this->render();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/LengthAwarePaginator.php",
    "content": "<?php\n\nnamespace Illuminate\\Pagination;\n\nuse Countable;\nuse ArrayAccess;\nuse JsonSerializable;\nuse IteratorAggregate;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Pagination\\LengthAwarePaginator as LengthAwarePaginatorContract;\n\nclass LengthAwarePaginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Jsonable, LengthAwarePaginatorContract\n{\n    /**\n     * The total number of items before slicing.\n     *\n     * @var int\n     */\n    protected $total;\n\n    /**\n     * The last available page.\n     *\n     * @var int\n     */\n    protected $lastPage;\n\n    /**\n     * Create a new paginator instance.\n     *\n     * @param  mixed  $items\n     * @param  int  $total\n     * @param  int  $perPage\n     * @param  int|null  $currentPage\n     * @param  array  $options (path, query, fragment, pageName)\n     * @return void\n     */\n    public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])\n    {\n        $this->options = $options;\n\n        foreach ($options as $key => $value) {\n            $this->{$key} = $value;\n        }\n\n        $this->total = $total;\n        $this->perPage = $perPage;\n        $this->lastPage = max((int) ceil($total / $perPage), 1);\n        $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;\n        $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName);\n        $this->items = $items instanceof Collection ? $items : Collection::make($items);\n    }\n\n    /**\n     * Get the current page for the request.\n     *\n     * @param  int  $currentPage\n     * @param  string  $pageName\n     * @return int\n     */\n    protected function setCurrentPage($currentPage, $pageName)\n    {\n        $currentPage = $currentPage ?: static::resolveCurrentPage($pageName);\n\n        return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1;\n    }\n\n    /**\n     * Render the paginator using the given view.\n     *\n     * @param  string|null  $view\n     * @param  array  $data\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    public function links($view = null, $data = [])\n    {\n        return $this->render($view, $data);\n    }\n\n    /**\n     * Render the paginator using the given view.\n     *\n     * @param  string|null  $view\n     * @param  array  $data\n     * @return \\Illuminate\\Support\\HtmlString\n     */\n    public function render($view = null, $data = [])\n    {\n        return new HtmlString(static::viewFactory()->make($view ?: static::$defaultView, array_merge($data, [\n            'paginator' => $this,\n            'elements' => $this->elements(),\n        ]))->render());\n    }\n\n    /**\n     * Get the array of elements to pass to the view.\n     *\n     * @return array\n     */\n    protected function elements()\n    {\n        $window = UrlWindow::make($this);\n\n        return array_filter([\n            $window['first'],\n            is_array($window['slider']) ? '...' : null,\n            $window['slider'],\n            is_array($window['last']) ? '...' : null,\n            $window['last'],\n        ]);\n    }\n\n    /**\n     * Get the total number of items being paginated.\n     *\n     * @return int\n     */\n    public function total()\n    {\n        return $this->total;\n    }\n\n    /**\n     * Determine if there are more items in the data source.\n     *\n     * @return bool\n     */\n    public function hasMorePages()\n    {\n        return $this->currentPage() < $this->lastPage();\n    }\n\n    /**\n     * Get the URL for the next page.\n     *\n     * @return string|null\n     */\n    public function nextPageUrl()\n    {\n        if ($this->lastPage() > $this->currentPage()) {\n            return $this->url($this->currentPage() + 1);\n        }\n    }\n\n    /**\n     * Get the last page.\n     *\n     * @return int\n     */\n    public function lastPage()\n    {\n        return $this->lastPage;\n    }\n\n    /**\n     * Get the instance as an array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return [\n            'current_page' => $this->currentPage(),\n            'data' => $this->items->toArray(),\n            'first_page_url' => $this->url(1),\n            'from' => $this->firstItem(),\n            'last_page' => $this->lastPage(),\n            'last_page_url' => $this->url($this->lastPage()),\n            'next_page_url' => $this->nextPageUrl(),\n            'path' => $this->path,\n            'per_page' => $this->perPage(),\n            'prev_page_url' => $this->previousPageUrl(),\n            'to' => $this->lastItem(),\n            'total' => $this->total(),\n        ];\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->toArray();\n    }\n\n    /**\n     * Convert the object to its JSON representation.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0)\n    {\n        return json_encode($this->jsonSerialize(), $options);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Pagination;\n\nuse Illuminate\\Support\\ServiceProvider;\n\nclass PaginationServiceProvider extends ServiceProvider\n{\n    /**\n     * Bootstrap any application services.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $this->loadViewsFrom(__DIR__.'/resources/views', 'pagination');\n\n        if ($this->app->runningInConsole()) {\n            $this->publishes([\n                __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/pagination'),\n            ], 'laravel-pagination');\n        }\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        Paginator::viewFactoryResolver(function () {\n            return $this->app['view'];\n        });\n\n        Paginator::currentPathResolver(function () {\n            return $this->app['request']->url();\n        });\n\n        Paginator::currentPageResolver(function ($pageName = 'page') {\n            $page = $this->app['request']->input($pageName);\n\n            if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) {\n                return (int) $page;\n            }\n\n            return 1;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php",
    "content": "<?php\n\nnamespace Illuminate\\Pagination;\n\nuse Countable;\nuse ArrayAccess;\nuse JsonSerializable;\nuse IteratorAggregate;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\HtmlString;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Pagination\\Paginator as PaginatorContract;\n\nclass Paginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, JsonSerializable, Jsonable, PaginatorContract\n{\n    /**\n     * Determine if there are more items in the data source.\n     *\n     * @return bool\n     */\n    protected $hasMore;\n\n    /**\n     * Create a new paginator instance.\n     *\n     * @param  mixed  $items\n     * @param  int  $perPage\n     * @param  int|null  $currentPage\n     * @param  array  $options (path, query, fragment, pageName)\n     * @return void\n     */\n    public function __construct($items, $perPage, $currentPage = null, array $options = [])\n    {\n        $this->options = $options;\n\n        foreach ($options as $key => $value) {\n            $this->{$key} = $value;\n        }\n\n        $this->perPage = $perPage;\n        $this->currentPage = $this->setCurrentPage($currentPage);\n        $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;\n\n        $this->setItems($items);\n    }\n\n    /**\n     * Get the current page for the request.\n     *\n     * @param  int  $currentPage\n     * @return int\n     */\n    protected function setCurrentPage($currentPage)\n    {\n        $currentPage = $currentPage ?: static::resolveCurrentPage();\n\n        return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1;\n    }\n\n    /**\n     * Set the items for the paginator.\n     *\n     * @param  mixed  $items\n     * @return void\n     */\n    protected function setItems($items)\n    {\n        $this->items = $items instanceof Collection ? $items : Collection::make($items);\n\n        $this->hasMore = $this->items->count() > $this->perPage;\n\n        $this->items = $this->items->slice(0, $this->perPage);\n    }\n\n    /**\n     * Get the URL for the next page.\n     *\n     * @return string|null\n     */\n    public function nextPageUrl()\n    {\n        if ($this->hasMorePages()) {\n            return $this->url($this->currentPage() + 1);\n        }\n    }\n\n    /**\n     * Render the paginator using the given view.\n     *\n     * @param  string|null  $view\n     * @param  array  $data\n     * @return string\n     */\n    public function links($view = null, $data = [])\n    {\n        return $this->render($view, $data);\n    }\n\n    /**\n     * Render the paginator using the given view.\n     *\n     * @param  string|null  $view\n     * @param  array  $data\n     * @return string\n     */\n    public function render($view = null, $data = [])\n    {\n        return new HtmlString(\n            static::viewFactory()->make($view ?: static::$defaultSimpleView, array_merge($data, [\n                'paginator' => $this,\n            ]))->render()\n        );\n    }\n\n    /**\n     * Manually indicate that the paginator does have more pages.\n     *\n     * @param  bool  $hasMore\n     * @return $this\n     */\n    public function hasMorePagesWhen($hasMore = true)\n    {\n        $this->hasMore = $hasMore;\n\n        return $this;\n    }\n\n    /**\n     * Determine if there are more items in the data source.\n     *\n     * @return bool\n     */\n    public function hasMorePages()\n    {\n        return $this->hasMore;\n    }\n\n    /**\n     * Get the instance as an array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return [\n            'current_page' => $this->currentPage(),\n            'data' => $this->items->toArray(),\n            'first_page_url' => $this->url(1),\n            'from' => $this->firstItem(),\n            'next_page_url' => $this->nextPageUrl(),\n            'path' => $this->path,\n            'per_page' => $this->perPage(),\n            'prev_page_url' => $this->previousPageUrl(),\n            'to' => $this->lastItem(),\n        ];\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->toArray();\n    }\n\n    /**\n     * Convert the object to its JSON representation.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0)\n    {\n        return json_encode($this->jsonSerialize(), $options);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/UrlWindow.php",
    "content": "<?php\n\nnamespace Illuminate\\Pagination;\n\nuse Illuminate\\Contracts\\Pagination\\LengthAwarePaginator as PaginatorContract;\n\nclass UrlWindow\n{\n    /**\n     * The paginator implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator\n     */\n    protected $paginator;\n\n    /**\n     * Create a new URL window instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator  $paginator\n     * @return void\n     */\n    public function __construct(PaginatorContract $paginator)\n    {\n        $this->paginator = $paginator;\n    }\n\n    /**\n     * Create a new URL window instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator  $paginator\n     * @return array\n     */\n    public static function make(PaginatorContract $paginator)\n    {\n        return (new static($paginator))->get();\n    }\n\n    /**\n     * Get the window of URLs to be shown.\n     *\n     * @return array\n     */\n    public function get()\n    {\n        $onEachSide = $this->paginator->onEachSide;\n\n        if ($this->paginator->lastPage() < ($onEachSide * 2) + 6) {\n            return $this->getSmallSlider();\n        }\n\n        return $this->getUrlSlider($onEachSide);\n    }\n\n    /**\n     * Get the slider of URLs there are not enough pages to slide.\n     *\n     * @return array\n     */\n    protected function getSmallSlider()\n    {\n        return [\n            'first'  => $this->paginator->getUrlRange(1, $this->lastPage()),\n            'slider' => null,\n            'last'   => null,\n        ];\n    }\n\n    /**\n     * Create a URL slider links.\n     *\n     * @param  int  $onEachSide\n     * @return array\n     */\n    protected function getUrlSlider($onEachSide)\n    {\n        $window = $onEachSide * 2;\n\n        if (! $this->hasPages()) {\n            return ['first' => null, 'slider' => null, 'last' => null];\n        }\n\n        // If the current page is very close to the beginning of the page range, we will\n        // just render the beginning of the page range, followed by the last 2 of the\n        // links in this list, since we will not have room to create a full slider.\n        if ($this->currentPage() <= $window) {\n            return $this->getSliderTooCloseToBeginning($window);\n        }\n\n        // If the current page is close to the ending of the page range we will just get\n        // this first couple pages, followed by a larger window of these ending pages\n        // since we're too close to the end of the list to create a full on slider.\n        elseif ($this->currentPage() > ($this->lastPage() - $window)) {\n            return $this->getSliderTooCloseToEnding($window);\n        }\n\n        // If we have enough room on both sides of the current page to build a slider we\n        // will surround it with both the beginning and ending caps, with this window\n        // of pages in the middle providing a Google style sliding paginator setup.\n        return $this->getFullSlider($onEachSide);\n    }\n\n    /**\n     * Get the slider of URLs when too close to beginning of window.\n     *\n     * @param  int  $window\n     * @return array\n     */\n    protected function getSliderTooCloseToBeginning($window)\n    {\n        return [\n            'first' => $this->paginator->getUrlRange(1, $window + 2),\n            'slider' => null,\n            'last' => $this->getFinish(),\n        ];\n    }\n\n    /**\n     * Get the slider of URLs when too close to ending of window.\n     *\n     * @param  int  $window\n     * @return array\n     */\n    protected function getSliderTooCloseToEnding($window)\n    {\n        $last = $this->paginator->getUrlRange(\n            $this->lastPage() - ($window + 2),\n            $this->lastPage()\n        );\n\n        return [\n            'first' => $this->getStart(),\n            'slider' => null,\n            'last' => $last,\n        ];\n    }\n\n    /**\n     * Get the slider of URLs when a full slider can be made.\n     *\n     * @param  int  $onEachSide\n     * @return array\n     */\n    protected function getFullSlider($onEachSide)\n    {\n        return [\n            'first'  => $this->getStart(),\n            'slider' => $this->getAdjacentUrlRange($onEachSide),\n            'last'   => $this->getFinish(),\n        ];\n    }\n\n    /**\n     * Get the page range for the current page window.\n     *\n     * @param  int  $onEachSide\n     * @return array\n     */\n    public function getAdjacentUrlRange($onEachSide)\n    {\n        return $this->paginator->getUrlRange(\n            $this->currentPage() - $onEachSide,\n            $this->currentPage() + $onEachSide\n        );\n    }\n\n    /**\n     * Get the starting URLs of a pagination slider.\n     *\n     * @return array\n     */\n    public function getStart()\n    {\n        return $this->paginator->getUrlRange(1, 2);\n    }\n\n    /**\n     * Get the ending URLs of a pagination slider.\n     *\n     * @return array\n     */\n    public function getFinish()\n    {\n        return $this->paginator->getUrlRange(\n            $this->lastPage() - 1,\n            $this->lastPage()\n        );\n    }\n\n    /**\n     * Determine if the underlying paginator being presented has pages to show.\n     *\n     * @return bool\n     */\n    public function hasPages()\n    {\n        return $this->paginator->lastPage() > 1;\n    }\n\n    /**\n     * Get the current page from the paginator.\n     *\n     * @return int\n     */\n    protected function currentPage()\n    {\n        return $this->paginator->currentPage();\n    }\n\n    /**\n     * Get the last page from the paginator.\n     *\n     * @return int\n     */\n    protected function lastPage()\n    {\n        return $this->paginator->lastPage();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/composer.json",
    "content": "{\n    \"name\": \"illuminate/pagination\",\n    \"description\": \"The Illuminate Pagination package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Pagination\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/resources/views/bootstrap-4.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"page-item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.previous')\">\n                <span class=\"page-link\" aria-hidden=\"true\">&lsaquo;</span>\n            </li>\n        @else\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\" aria-label=\"@lang('pagination.previous')\">&lsaquo;</a>\n            </li>\n        @endif\n\n        {{-- Pagination Elements --}}\n        @foreach ($elements as $element)\n            {{-- \"Three Dots\" Separator --}}\n            @if (is_string($element))\n                <li class=\"page-item disabled\" aria-disabled=\"true\"><span class=\"page-link\">{{ $element }}</span></li>\n            @endif\n\n            {{-- Array Of Links --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <li class=\"page-item active\" aria-current=\"page\"><span class=\"page-link\">{{ $page }}</span></li>\n                    @else\n                        <li class=\"page-item\"><a class=\"page-link\" href=\"{{ $url }}\">{{ $page }}</a></li>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\" aria-label=\"@lang('pagination.next')\">&rsaquo;</a>\n            </li>\n        @else\n            <li class=\"page-item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.next')\">\n                <span class=\"page-link\" aria-hidden=\"true\">&rsaquo;</span>\n            </li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/resources/views/default.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.previous')\">\n                <span aria-hidden=\"true\">&lsaquo;</span>\n            </li>\n        @else\n            <li>\n                <a href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\" aria-label=\"@lang('pagination.previous')\">&lsaquo;</a>\n            </li>\n        @endif\n\n        {{-- Pagination Elements --}}\n        @foreach ($elements as $element)\n            {{-- \"Three Dots\" Separator --}}\n            @if (is_string($element))\n                <li class=\"disabled\" aria-disabled=\"true\"><span>{{ $element }}</span></li>\n            @endif\n\n            {{-- Array Of Links --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <li class=\"active\" aria-current=\"page\"><span>{{ $page }}</span></li>\n                    @else\n                        <li><a href=\"{{ $url }}\">{{ $page }}</a></li>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li>\n                <a href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\" aria-label=\"@lang('pagination.next')\">&rsaquo;</a>\n            </li>\n        @else\n            <li class=\"disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.next')\">\n                <span aria-hidden=\"true\">&rsaquo;</span>\n            </li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/resources/views/semantic-ui.blade.php",
    "content": "@if ($paginator->hasPages())\n    <div class=\"ui pagination menu\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <a class=\"icon item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.previous')\"> <i class=\"left chevron icon\"></i> </a>\n        @else\n            <a class=\"icon item\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\" aria-label=\"@lang('pagination.previous')\"> <i class=\"left chevron icon\"></i> </a>\n        @endif\n\n        {{-- Pagination Elements --}}\n        @foreach ($elements as $element)\n            {{-- \"Three Dots\" Separator --}}\n            @if (is_string($element))\n                <a class=\"icon item disabled\" aria-disabled=\"true\">{{ $element }}</a>\n            @endif\n\n            {{-- Array Of Links --}}\n            @if (is_array($element))\n                @foreach ($element as $page => $url)\n                    @if ($page == $paginator->currentPage())\n                        <a class=\"item active\" href=\"{{ $url }}\" aria-current=\"page\">{{ $page }}</a>\n                    @else\n                        <a class=\"item\" href=\"{{ $url }}\">{{ $page }}</a>\n                    @endif\n                @endforeach\n            @endif\n        @endforeach\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <a class=\"icon item\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\" aria-label=\"@lang('pagination.next')\"> <i class=\"right chevron icon\"></i> </a>\n        @else\n            <a class=\"icon item disabled\" aria-disabled=\"true\" aria-label=\"@lang('pagination.next')\"> <i class=\"right chevron icon\"></i> </a>\n        @endif\n    </div>\n@endif\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-bootstrap-4.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"page-item disabled\" aria-disabled=\"true\">\n                <span class=\"page-link\">@lang('pagination.previous')</span>\n            </li>\n        @else\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\">@lang('pagination.previous')</a>\n            </li>\n        @endif\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li class=\"page-item\">\n                <a class=\"page-link\" href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\">@lang('pagination.next')</a>\n            </li>\n        @else\n            <li class=\"page-item disabled\" aria-disabled=\"true\">\n                <span class=\"page-link\">@lang('pagination.next')</span>\n            </li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pagination/resources/views/simple-default.blade.php",
    "content": "@if ($paginator->hasPages())\n    <ul class=\"pagination\" role=\"navigation\">\n        {{-- Previous Page Link --}}\n        @if ($paginator->onFirstPage())\n            <li class=\"disabled\" aria-disabled=\"true\"><span>@lang('pagination.previous')</span></li>\n        @else\n            <li><a href=\"{{ $paginator->previousPageUrl() }}\" rel=\"prev\">@lang('pagination.previous')</a></li>\n        @endif\n\n        {{-- Next Page Link --}}\n        @if ($paginator->hasMorePages())\n            <li><a href=\"{{ $paginator->nextPageUrl() }}\" rel=\"next\">@lang('pagination.next')</a></li>\n        @else\n            <li class=\"disabled\" aria-disabled=\"true\"><span>@lang('pagination.next')</span></li>\n        @endif\n    </ul>\n@endif\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pipeline/Hub.php",
    "content": "<?php\n\nnamespace Illuminate\\Pipeline;\n\nuse Closure;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Pipeline\\Hub as HubContract;\n\nclass Hub implements HubContract\n{\n    /**\n     * The container implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container|null\n     */\n    protected $container;\n\n    /**\n     * All of the available pipelines.\n     *\n     * @var array\n     */\n    protected $pipelines = [];\n\n    /**\n     * Create a new Hub instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Container $container = null)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Define the default named pipeline.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function defaults(Closure $callback)\n    {\n        return $this->pipeline('default', $callback);\n    }\n\n    /**\n     * Define a new named pipeline.\n     *\n     * @param  string  $name\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function pipeline($name, Closure $callback)\n    {\n        $this->pipelines[$name] = $callback;\n    }\n\n    /**\n     * Send an object through one of the available pipelines.\n     *\n     * @param  mixed  $object\n     * @param  string|null  $pipeline\n     * @return mixed\n     */\n    public function pipe($object, $pipeline = null)\n    {\n        $pipeline = $pipeline ?: 'default';\n\n        return call_user_func(\n            $this->pipelines[$pipeline], new Pipeline($this->container), $object\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pipeline/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
    "content": "<?php\n\nnamespace Illuminate\\Pipeline;\n\nuse Closure;\nuse RuntimeException;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Support\\Responsable;\nuse Illuminate\\Contracts\\Pipeline\\Pipeline as PipelineContract;\n\nclass Pipeline implements PipelineContract\n{\n    /**\n     * The container implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The object being passed through the pipeline.\n     *\n     * @var mixed\n     */\n    protected $passable;\n\n    /**\n     * The array of class pipes.\n     *\n     * @var array\n     */\n    protected $pipes = [];\n\n    /**\n     * The method to call on each pipe.\n     *\n     * @var string\n     */\n    protected $method = 'handle';\n\n    /**\n     * Create a new class instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Container $container = null)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Set the object being sent through the pipeline.\n     *\n     * @param  mixed  $passable\n     * @return $this\n     */\n    public function send($passable)\n    {\n        $this->passable = $passable;\n\n        return $this;\n    }\n\n    /**\n     * Set the array of pipes.\n     *\n     * @param  array|mixed  $pipes\n     * @return $this\n     */\n    public function through($pipes)\n    {\n        $this->pipes = is_array($pipes) ? $pipes : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Set the method to call on the pipes.\n     *\n     * @param  string  $method\n     * @return $this\n     */\n    public function via($method)\n    {\n        $this->method = $method;\n\n        return $this;\n    }\n\n    /**\n     * Run the pipeline with a final destination callback.\n     *\n     * @param  \\Closure  $destination\n     * @return mixed\n     */\n    public function then(Closure $destination)\n    {\n        $pipeline = array_reduce(\n            array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination)\n        );\n\n        return $pipeline($this->passable);\n    }\n\n    /**\n     * Run the pipeline and return the result.\n     *\n     * @return mixed\n     */\n    public function thenReturn()\n    {\n        return $this->then(function ($passable) {\n            return $passable;\n        });\n    }\n\n    /**\n     * Get the final piece of the Closure onion.\n     *\n     * @param  \\Closure  $destination\n     * @return \\Closure\n     */\n    protected function prepareDestination(Closure $destination)\n    {\n        return function ($passable) use ($destination) {\n            return $destination($passable);\n        };\n    }\n\n    /**\n     * Get a Closure that represents a slice of the application onion.\n     *\n     * @return \\Closure\n     */\n    protected function carry()\n    {\n        return function ($stack, $pipe) {\n            return function ($passable) use ($stack, $pipe) {\n                if (is_callable($pipe)) {\n                    // If the pipe is an instance of a Closure, we will just call it directly but\n                    // otherwise we'll resolve the pipes out of the container and call it with\n                    // the appropriate method and arguments, returning the results back out.\n                    return $pipe($passable, $stack);\n                } elseif (! is_object($pipe)) {\n                    [$name, $parameters] = $this->parsePipeString($pipe);\n\n                    // If the pipe is a string we will parse the string and resolve the class out\n                    // of the dependency injection container. We can then build a callable and\n                    // execute the pipe function giving in the parameters that are required.\n                    $pipe = $this->getContainer()->make($name);\n\n                    $parameters = array_merge([$passable, $stack], $parameters);\n                } else {\n                    // If the pipe is already an object we'll just make a callable and pass it to\n                    // the pipe as-is. There is no need to do any extra parsing and formatting\n                    // since the object we're given was already a fully instantiated object.\n                    $parameters = [$passable, $stack];\n                }\n\n                $response = method_exists($pipe, $this->method)\n                                ? $pipe->{$this->method}(...$parameters)\n                                : $pipe(...$parameters);\n\n                return $response instanceof Responsable\n                            ? $response->toResponse($this->getContainer()->make(Request::class))\n                            : $response;\n            };\n        };\n    }\n\n    /**\n     * Parse full pipe string to get name and parameters.\n     *\n     * @param  string $pipe\n     * @return array\n     */\n    protected function parsePipeString($pipe)\n    {\n        [$name, $parameters] = array_pad(explode(':', $pipe, 2), 2, []);\n\n        if (is_string($parameters)) {\n            $parameters = explode(',', $parameters);\n        }\n\n        return [$name, $parameters];\n    }\n\n    /**\n     * Get the container instance.\n     *\n     * @return \\Illuminate\\Contracts\\Container\\Container\n     *\n     * @throws \\RuntimeException\n     */\n    protected function getContainer()\n    {\n        if (! $this->container) {\n            throw new RuntimeException('A container instance has not been passed to the Pipeline.');\n        }\n\n        return $this->container;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pipeline/PipelineServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Pipeline;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Contracts\\Pipeline\\Hub as PipelineHubContract;\n\nclass PipelineServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton(\n            PipelineHubContract::class, Hub::class\n        );\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            PipelineHubContract::class,\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Pipeline/composer.json",
    "content": "{\n    \"name\": \"illuminate/pipeline\",\n    \"description\": \"The Illuminate Pipeline package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Pipeline\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/BeanstalkdQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Pheanstalk\\Pheanstalk;\nuse Pheanstalk\\Job as PheanstalkJob;\nuse Illuminate\\Queue\\Jobs\\BeanstalkdJob;\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\n\nclass BeanstalkdQueue extends Queue implements QueueContract\n{\n    /**\n     * The Pheanstalk instance.\n     *\n     * @var \\Pheanstalk\\Pheanstalk\n     */\n    protected $pheanstalk;\n\n    /**\n     * The name of the default tube.\n     *\n     * @var string\n     */\n    protected $default;\n\n    /**\n     * The \"time to run\" for all pushed jobs.\n     *\n     * @var int\n     */\n    protected $timeToRun;\n\n    /**\n     * The maximum number of seconds to block for a job.\n     *\n     * @var int\n     */\n    protected $blockFor;\n\n    /**\n     * Create a new Beanstalkd queue instance.\n     *\n     * @param  \\Pheanstalk\\Pheanstalk  $pheanstalk\n     * @param  string  $default\n     * @param  int  $timeToRun\n     * @param  int  $blockFor\n     * @return void\n     */\n    public function __construct(Pheanstalk $pheanstalk, $default, $timeToRun, $blockFor = 0)\n    {\n        $this->default = $default;\n        $this->blockFor = $blockFor;\n        $this->timeToRun = $timeToRun;\n        $this->pheanstalk = $pheanstalk;\n    }\n\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        $queue = $this->getQueue($queue);\n\n        return (int) $this->pheanstalk->statsTube($queue)->current_jobs_ready;\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        return $this->pushRaw($this->createPayload($job, $this->getQueue($queue), $data), $queue);\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        return $this->pheanstalk->useTube($this->getQueue($queue))->put(\n            $payload, Pheanstalk::DEFAULT_PRIORITY, Pheanstalk::DEFAULT_DELAY, $this->timeToRun\n        );\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        $pheanstalk = $this->pheanstalk->useTube($this->getQueue($queue));\n\n        return $pheanstalk->put(\n            $this->createPayload($job, $this->getQueue($queue), $data),\n            Pheanstalk::DEFAULT_PRIORITY,\n            $this->secondsUntil($delay),\n            $this->timeToRun\n        );\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        $queue = $this->getQueue($queue);\n\n        $job = $this->pheanstalk->watchOnly($queue)->reserveWithTimeout($this->blockFor);\n\n        if ($job instanceof PheanstalkJob) {\n            return new BeanstalkdJob(\n                $this->container, $this->pheanstalk, $job, $this->connectionName, $queue\n            );\n        }\n    }\n\n    /**\n     * Delete a message from the Beanstalk queue.\n     *\n     * @param  string  $queue\n     * @param  string  $id\n     * @return void\n     */\n    public function deleteMessage($queue, $id)\n    {\n        $queue = $this->getQueue($queue);\n\n        $this->pheanstalk->useTube($queue)->delete(new PheanstalkJob($id, ''));\n    }\n\n    /**\n     * Get the queue or return the default.\n     *\n     * @param  string|null  $queue\n     * @return string\n     */\n    public function getQueue($queue)\n    {\n        return $queue ?: $this->default;\n    }\n\n    /**\n     * Get the underlying Pheanstalk instance.\n     *\n     * @return \\Pheanstalk\\Pheanstalk\n     */\n    public function getPheanstalk()\n    {\n        return $this->pheanstalk;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/CallQueuedClosure.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse ReflectionFunction;\nuse Illuminate\\Bus\\Queueable;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Illuminate\\Foundation\\Bus\\Dispatchable;\nuse Illuminate\\Contracts\\Container\\Container;\n\nclass CallQueuedClosure implements ShouldQueue\n{\n    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;\n\n    /**\n     * The serializable Closure instance.\n     *\n     * @var \\Illuminate\\Queue\\SerializableClosure\n     */\n    public $closure;\n\n    /**\n     * Indicate if the job should be deleted when models are missing.\n     *\n     * @var bool\n     */\n    public $deleteWhenMissingModels = true;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Queue\\SerializableClosure  $closure\n     * @return void\n     */\n    public function __construct(SerializableClosure $closure)\n    {\n        $this->closure = $closure;\n    }\n\n    /**\n     * Execute the job.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function handle(Container $container)\n    {\n        $container->call($this->closure->getClosure());\n    }\n\n    /**\n     * Get the display name for the queued job.\n     *\n     * @return string\n     */\n    public function displayName()\n    {\n        $reflection = new ReflectionFunction($this->closure->getClosure());\n\n        return 'Closure ('.basename($reflection->getFileName()).':'.$reflection->getStartLine().')';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Exception;\nuse ReflectionClass;\nuse Illuminate\\Contracts\\Queue\\Job;\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\n\nclass CallQueuedHandler\n{\n    /**\n     * The bus dispatcher implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Bus\\Dispatcher\n     */\n    protected $dispatcher;\n\n    /**\n     * Create a new handler instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Bus\\Dispatcher  $dispatcher\n     * @return void\n     */\n    public function __construct(Dispatcher $dispatcher)\n    {\n        $this->dispatcher = $dispatcher;\n    }\n\n    /**\n     * Handle the queued job.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  array  $data\n     * @return void\n     */\n    public function call(Job $job, array $data)\n    {\n        try {\n            $command = $this->setJobInstanceIfNecessary(\n                $job, unserialize($data['command'])\n            );\n        } catch (ModelNotFoundException $e) {\n            return $this->handleModelNotFound($job, $e);\n        }\n\n        $this->dispatcher->dispatchNow(\n            $command, $this->resolveHandler($job, $command)\n        );\n\n        if (! $job->hasFailed() && ! $job->isReleased()) {\n            $this->ensureNextJobInChainIsDispatched($command);\n        }\n\n        if (! $job->isDeletedOrReleased()) {\n            $job->delete();\n        }\n    }\n\n    /**\n     * Resolve the handler for the given command.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  mixed  $command\n     * @return mixed\n     */\n    protected function resolveHandler($job, $command)\n    {\n        $handler = $this->dispatcher->getCommandHandler($command) ?: null;\n\n        if ($handler) {\n            $this->setJobInstanceIfNecessary($job, $handler);\n        }\n\n        return $handler;\n    }\n\n    /**\n     * Set the job instance of the given class if necessary.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  mixed  $instance\n     * @return mixed\n     */\n    protected function setJobInstanceIfNecessary(Job $job, $instance)\n    {\n        if (in_array(InteractsWithQueue::class, class_uses_recursive($instance))) {\n            $instance->setJob($job);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Ensure the next job in the chain is dispatched if applicable.\n     *\n     * @param  mixed  $command\n     * @return void\n     */\n    protected function ensureNextJobInChainIsDispatched($command)\n    {\n        if (method_exists($command, 'dispatchNextJobInChain')) {\n            $command->dispatchNextJobInChain();\n        }\n    }\n\n    /**\n     * Handle a model not found exception.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function handleModelNotFound(Job $job, $e)\n    {\n        $class = $job->resolveName();\n\n        try {\n            $shouldDelete = (new ReflectionClass($class))\n                    ->getDefaultProperties()['deleteWhenMissingModels'] ?? false;\n        } catch (Exception $e) {\n            $shouldDelete = false;\n        }\n\n        if ($shouldDelete) {\n            return $job->delete();\n        }\n\n        return $job->fail($e);\n    }\n\n    /**\n     * Call the failed method on the job instance.\n     *\n     * The exception that caused the failure will be passed.\n     *\n     * @param  array  $data\n     * @param  \\Exception  $e\n     * @return void\n     */\n    public function failed(array $data, $e)\n    {\n        $command = unserialize($data['command']);\n\n        if (method_exists($command, 'failed')) {\n            $command->failed($e);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Capsule/Manager.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Capsule;\n\nuse Illuminate\\Queue\\QueueManager;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Queue\\QueueServiceProvider;\nuse Illuminate\\Support\\Traits\\CapsuleManagerTrait;\n\n/**\n * @mixin \\Illuminate\\Queue\\QueueManager\n * @mixin \\Illuminate\\Contracts\\Queue\\Queue\n */\nclass Manager\n{\n    use CapsuleManagerTrait;\n\n    /**\n     * The queue manager instance.\n     *\n     * @var \\Illuminate\\Queue\\QueueManager\n     */\n    protected $manager;\n\n    /**\n     * Create a new queue capsule manager.\n     *\n     * @param  \\Illuminate\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Container $container = null)\n    {\n        $this->setupContainer($container ?: new Container);\n\n        // Once we have the container setup, we will setup the default configuration\n        // options in the container \"config\" bindings. This just makes this queue\n        // manager behave correctly since all the correct binding are in place.\n        $this->setupDefaultConfiguration();\n\n        $this->setupManager();\n\n        $this->registerConnectors();\n    }\n\n    /**\n     * Setup the default queue configuration options.\n     *\n     * @return void\n     */\n    protected function setupDefaultConfiguration()\n    {\n        $this->container['config']['queue.default'] = 'default';\n    }\n\n    /**\n     * Build the queue manager instance.\n     *\n     * @return void\n     */\n    protected function setupManager()\n    {\n        $this->manager = new QueueManager($this->container);\n    }\n\n    /**\n     * Register the default connectors that the component ships with.\n     *\n     * @return void\n     */\n    protected function registerConnectors()\n    {\n        $provider = new QueueServiceProvider($this->container);\n\n        $provider->registerConnectors($this->manager);\n    }\n\n    /**\n     * Get a connection instance from the global manager.\n     *\n     * @param  string|null  $connection\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public static function connection($connection = null)\n    {\n        return static::$instance->getConnection($connection);\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @param  string|null  $connection\n     * @return mixed\n     */\n    public static function push($job, $data = '', $queue = null, $connection = null)\n    {\n        return static::$instance->connection($connection)->push($job, $data, $queue);\n    }\n\n    /**\n     * Push a new an array of jobs onto the queue.\n     *\n     * @param  array   $jobs\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @param  string|null  $connection\n     * @return mixed\n     */\n    public static function bulk($jobs, $data = '', $queue = null, $connection = null)\n    {\n        return static::$instance->connection($connection)->bulk($jobs, $data, $queue);\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @param  string|null  $connection\n     * @return mixed\n     */\n    public static function later($delay, $job, $data = '', $queue = null, $connection = null)\n    {\n        return static::$instance->connection($connection)->later($delay, $job, $data, $queue);\n    }\n\n    /**\n     * Get a registered connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function getConnection($name = null)\n    {\n        return $this->manager->connection($name);\n    }\n\n    /**\n     * Register a connection with the manager.\n     *\n     * @param  array   $config\n     * @param  string  $name\n     * @return void\n     */\n    public function addConnection(array $config, $name = 'default')\n    {\n        $this->container['config'][\"queue.connections.{$name}\"] = $config;\n    }\n\n    /**\n     * Get the queue manager instance.\n     *\n     * @return \\Illuminate\\Queue\\QueueManager\n     */\n    public function getQueueManager()\n    {\n        return $this->manager;\n    }\n\n    /**\n     * Pass dynamic instance methods to the manager.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->manager->$method(...$parameters);\n    }\n\n    /**\n     * Dynamically pass methods to the default connection.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        return static::connection()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/BeanstalkdConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Pheanstalk\\Connection;\nuse Pheanstalk\\Pheanstalk;\nuse Illuminate\\Queue\\BeanstalkdQueue;\n\nclass BeanstalkdConnector implements ConnectorInterface\n{\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        return new BeanstalkdQueue(\n            $this->pheanstalk($config),\n            $config['queue'],\n            $config['retry_after'] ?? Pheanstalk::DEFAULT_TTR,\n            $config['block_for'] ?? 0\n        );\n    }\n\n    /**\n     * Create a Pheanstalk instance.\n     *\n     * @param  array  $config\n     * @return \\Pheanstalk\\Pheanstalk\n     */\n    protected function pheanstalk(array $config)\n    {\n        return Pheanstalk::create(\n            $config['host'],\n            $config['port'] ?? Pheanstalk::DEFAULT_PORT,\n            $config['timeout'] ?? Connection::DEFAULT_CONNECT_TIMEOUT\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/ConnectorInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\ninterface ConnectorInterface\n{\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/DatabaseConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Illuminate\\Queue\\DatabaseQueue;\nuse Illuminate\\Database\\ConnectionResolverInterface;\n\nclass DatabaseConnector implements ConnectorInterface\n{\n    /**\n     * Database connections.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $connections;\n\n    /**\n     * Create a new connector instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $connections\n     * @return void\n     */\n    public function __construct(ConnectionResolverInterface $connections)\n    {\n        $this->connections = $connections;\n    }\n\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        return new DatabaseQueue(\n            $this->connections->connection($config['connection'] ?? null),\n            $config['table'],\n            $config['queue'],\n            $config['retry_after'] ?? 60\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/NullConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Illuminate\\Queue\\NullQueue;\n\nclass NullConnector implements ConnectorInterface\n{\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        return new NullQueue;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/RedisConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Illuminate\\Queue\\RedisQueue;\nuse Illuminate\\Contracts\\Redis\\Factory as Redis;\n\nclass RedisConnector implements ConnectorInterface\n{\n    /**\n     * The Redis database instance.\n     *\n     * @var \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    protected $redis;\n\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * Create a new Redis queue connector instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Redis\\Factory  $redis\n     * @param  string|null  $connection\n     * @return void\n     */\n    public function __construct(Redis $redis, $connection = null)\n    {\n        $this->redis = $redis;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        return new RedisQueue(\n            $this->redis, $config['queue'],\n            $config['connection'] ?? $this->connection,\n            $config['retry_after'] ?? 60,\n            $config['block_for'] ?? null\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/SqsConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Aws\\Sqs\\SqsClient;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Queue\\SqsQueue;\n\nclass SqsConnector implements ConnectorInterface\n{\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        $config = $this->getDefaultConfiguration($config);\n\n        if ($config['key'] && $config['secret']) {\n            $config['credentials'] = Arr::only($config, ['key', 'secret', 'token']);\n        }\n\n        return new SqsQueue(\n            new SqsClient($config), $config['queue'], $config['prefix'] ?? ''\n        );\n    }\n\n    /**\n     * Get the default configuration for SQS.\n     *\n     * @param  array  $config\n     * @return array\n     */\n    protected function getDefaultConfiguration(array $config)\n    {\n        return array_merge([\n            'version' => 'latest',\n            'http' => [\n                'timeout' => 60,\n                'connect_timeout' => 60,\n            ],\n        ], $config);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Connectors/SyncConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Connectors;\n\nuse Illuminate\\Queue\\SyncQueue;\n\nclass SyncConnector implements ConnectorInterface\n{\n    /**\n     * Establish a queue connection.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connect(array $config)\n    {\n        return new SyncQueue;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/FailedTableCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass FailedTableCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'queue:failed-table';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a migration for the failed queue jobs database table';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new failed queue jobs table command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer    $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $table = $this->laravel['config']['queue.failed.table'];\n\n        $this->replaceMigration(\n            $this->createBaseMigration($table), $table, Str::studly($table)\n        );\n\n        $this->info('Migration created successfully!');\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Create a base migration file for the table.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function createBaseMigration($table = 'failed_jobs')\n    {\n        return $this->laravel['migration.creator']->create(\n            'create_'.$table.'_table', $this->laravel->databasePath().'/migrations'\n        );\n    }\n\n    /**\n     * Replace the generated migration with the failed job table stub.\n     *\n     * @param  string  $path\n     * @param  string  $table\n     * @param  string  $tableClassName\n     * @return void\n     */\n    protected function replaceMigration($path, $table, $tableClassName)\n    {\n        $stub = str_replace(\n            ['{{table}}', '{{tableClassName}}'],\n            [$table, $tableClassName],\n            $this->files->get(__DIR__.'/stubs/failed_jobs.stub')\n        );\n\n        $this->files->put($path, $stub);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/FlushFailedCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass FlushFailedCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'queue:flush';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Flush all of the failed queue jobs';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->laravel['queue.failer']->flush();\n\n        $this->info('All failed jobs deleted successfully!');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/ForgetFailedCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass ForgetFailedCommand extends Command\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'queue:forget {id : The ID of the failed job}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Delete a failed queue job';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if ($this->laravel['queue.failer']->forget($this->argument('id'))) {\n            $this->info('Failed job deleted successfully!');\n        } else {\n            $this->error('No failed job matches the given ID.');\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/ListFailedCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Console\\Command;\n\nclass ListFailedCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'queue:failed';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'List all of the failed queue jobs';\n\n    /**\n     * The table headers for the command.\n     *\n     * @var array\n     */\n    protected $headers = ['ID', 'Connection', 'Queue', 'Class', 'Failed At'];\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if (count($jobs = $this->getFailedJobs()) === 0) {\n            return $this->info('No failed jobs!');\n        }\n\n        $this->displayFailedJobs($jobs);\n    }\n\n    /**\n     * Compile the failed jobs into a displayable format.\n     *\n     * @return array\n     */\n    protected function getFailedJobs()\n    {\n        $failed = $this->laravel['queue.failer']->all();\n\n        return collect($failed)->map(function ($failed) {\n            return $this->parseFailedJob((array) $failed);\n        })->filter()->all();\n    }\n\n    /**\n     * Parse the failed job row.\n     *\n     * @param  array  $failed\n     * @return array\n     */\n    protected function parseFailedJob(array $failed)\n    {\n        $row = array_values(Arr::except($failed, ['payload', 'exception']));\n\n        array_splice($row, 3, 0, $this->extractJobName($failed['payload']));\n\n        return $row;\n    }\n\n    /**\n     * Extract the failed job name from payload.\n     *\n     * @param  string  $payload\n     * @return string|null\n     */\n    private function extractJobName($payload)\n    {\n        $payload = json_decode($payload, true);\n\n        if ($payload && (! isset($payload['data']['command']))) {\n            return $payload['job'] ?? null;\n        } elseif ($payload && isset($payload['data']['command'])) {\n            return $this->matchJobName($payload);\n        }\n    }\n\n    /**\n     * Match the job name from the payload.\n     *\n     * @param  array  $payload\n     * @return string\n     */\n    protected function matchJobName($payload)\n    {\n        preg_match('/\"([^\"]+)\"/', $payload['data']['command'], $matches);\n\n        return $matches[1] ?? $payload['job'] ?? null;\n    }\n\n    /**\n     * Display the failed jobs in the console.\n     *\n     * @param  array  $jobs\n     * @return void\n     */\n    protected function displayFailedJobs(array $jobs)\n    {\n        $this->table($this->headers, $jobs);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/ListenCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Queue\\Listener;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Queue\\ListenerOptions;\n\nclass ListenCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'queue:listen\n                            {connection? : The name of connection}\n                            {--delay=0 : The number of seconds to delay failed jobs}\n                            {--force : Force the worker to run even in maintenance mode}\n                            {--memory=128 : The memory limit in megabytes}\n                            {--queue= : The queue to listen on}\n                            {--sleep=3 : Number of seconds to sleep when no job is available}\n                            {--timeout=60 : The number of seconds a child process can run}\n                            {--tries=0 : Number of times to attempt a job before logging it failed}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Listen to a given queue';\n\n    /**\n     * The queue listener instance.\n     *\n     * @var \\Illuminate\\Queue\\Listener\n     */\n    protected $listener;\n\n    /**\n     * Create a new queue listen command.\n     *\n     * @param  \\Illuminate\\Queue\\Listener  $listener\n     * @return void\n     */\n    public function __construct(Listener $listener)\n    {\n        parent::__construct();\n\n        $this->setOutputHandler($this->listener = $listener);\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        // We need to get the right queue for the connection which is set in the queue\n        // configuration file for the application. We will pull it based on the set\n        // connection being run for the queue operation currently being executed.\n        $queue = $this->getQueue(\n            $connection = $this->input->getArgument('connection')\n        );\n\n        $this->listener->listen(\n            $connection, $queue, $this->gatherOptions()\n        );\n    }\n\n    /**\n     * Get the name of the queue connection to listen on.\n     *\n     * @param  string  $connection\n     * @return string\n     */\n    protected function getQueue($connection)\n    {\n        $connection = $connection ?: $this->laravel['config']['queue.default'];\n\n        return $this->input->getOption('queue') ?: $this->laravel['config']->get(\n            \"queue.connections.{$connection}.queue\", 'default'\n        );\n    }\n\n    /**\n     * Get the listener options for the command.\n     *\n     * @return \\Illuminate\\Queue\\ListenerOptions\n     */\n    protected function gatherOptions()\n    {\n        return new ListenerOptions(\n            $this->option('env'), $this->option('delay'),\n            $this->option('memory'), $this->option('timeout'),\n            $this->option('sleep'), $this->option('tries'),\n            $this->option('force')\n        );\n    }\n\n    /**\n     * Set the options on the queue listener.\n     *\n     * @param  \\Illuminate\\Queue\\Listener  $listener\n     * @return void\n     */\n    protected function setOutputHandler(Listener $listener)\n    {\n        $listener->setOutputHandler(function ($type, $line) {\n            $this->output->write($line);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/RestartCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\InteractsWithTime;\n\nclass RestartCommand extends Command\n{\n    use InteractsWithTime;\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'queue:restart';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Restart queue worker daemons after their current job';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->laravel['cache']->forever('illuminate:queue:restart', $this->currentTime());\n\n        $this->info('Broadcasting queue restart signal.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/RetryCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Console\\Command;\n\nclass RetryCommand extends Command\n{\n    /**\n     * The console command signature.\n     *\n     * @var string\n     */\n    protected $signature = 'queue:retry {id* : The ID of the failed job or \"all\" to retry all jobs}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Retry a failed queue job';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        foreach ($this->getJobIds() as $id) {\n            $job = $this->laravel['queue.failer']->find($id);\n\n            if (is_null($job)) {\n                $this->error(\"Unable to find failed job with ID [{$id}].\");\n            } else {\n                $this->retryJob($job);\n\n                $this->info(\"The failed job [{$id}] has been pushed back onto the queue!\");\n\n                $this->laravel['queue.failer']->forget($id);\n            }\n        }\n    }\n\n    /**\n     * Get the job IDs to be retried.\n     *\n     * @return array\n     */\n    protected function getJobIds()\n    {\n        $ids = (array) $this->argument('id');\n\n        if (count($ids) === 1 && $ids[0] === 'all') {\n            $ids = Arr::pluck($this->laravel['queue.failer']->all(), 'id');\n        }\n\n        return $ids;\n    }\n\n    /**\n     * Retry the queue job.\n     *\n     * @param  \\stdClass  $job\n     * @return void\n     */\n    protected function retryJob($job)\n    {\n        $this->laravel['queue']->connection($job->connection)->pushRaw(\n            $this->resetAttempts($job->payload), $job->queue\n        );\n    }\n\n    /**\n     * Reset the payload attempts.\n     *\n     * Applicable to Redis jobs which store attempts in their payload.\n     *\n     * @param  string  $payload\n     * @return string\n     */\n    protected function resetAttempts($payload)\n    {\n        $payload = json_decode($payload, true);\n\n        if (isset($payload['attempts'])) {\n            $payload['attempts'] = 0;\n        }\n\n        return json_encode($payload);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/TableCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass TableCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'queue:table';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a migration for the queue jobs database table';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new queue job table command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer    $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $table = $this->laravel['config']['queue.connections.database.table'];\n\n        $this->replaceMigration(\n            $this->createBaseMigration($table), $table, Str::studly($table)\n        );\n\n        $this->info('Migration created successfully!');\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Create a base migration file for the table.\n     *\n     * @param  string  $table\n     * @return string\n     */\n    protected function createBaseMigration($table = 'jobs')\n    {\n        return $this->laravel['migration.creator']->create(\n            'create_'.$table.'_table', $this->laravel->databasePath().'/migrations'\n        );\n    }\n\n    /**\n     * Replace the generated migration with the job table stub.\n     *\n     * @param  string  $path\n     * @param  string  $table\n     * @param  string  $tableClassName\n     * @return void\n     */\n    protected function replaceMigration($path, $table, $tableClassName)\n    {\n        $stub = str_replace(\n            ['{{table}}', '{{tableClassName}}'],\n            [$table, $tableClassName],\n            $this->files->get(__DIR__.'/stubs/jobs.stub')\n        );\n\n        $this->files->put($path, $stub);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Console;\n\nuse Illuminate\\Queue\\Worker;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Queue\\Job;\nuse Illuminate\\Queue\\WorkerOptions;\nuse Illuminate\\Queue\\Events\\JobFailed;\nuse Illuminate\\Queue\\Events\\JobProcessed;\nuse Illuminate\\Queue\\Events\\JobProcessing;\n\nclass WorkCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $signature = 'queue:work\n                            {connection? : The name of the queue connection to work}\n                            {--queue= : The names of the queues to work}\n                            {--daemon : Run the worker in daemon mode (Deprecated)}\n                            {--once : Only process the next job on the queue}\n                            {--stop-when-empty : Stop when the queue is empty}\n                            {--delay=0 : The number of seconds to delay failed jobs}\n                            {--force : Force the worker to run even in maintenance mode}\n                            {--memory=128 : The memory limit in megabytes}\n                            {--sleep=3 : Number of seconds to sleep when no job is available}\n                            {--timeout=60 : The number of seconds a child process can run}\n                            {--tries=0 : Number of times to attempt a job before logging it failed}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Start processing jobs on the queue as a daemon';\n\n    /**\n     * The queue worker instance.\n     *\n     * @var \\Illuminate\\Queue\\Worker\n     */\n    protected $worker;\n\n    /**\n     * Create a new queue work command.\n     *\n     * @param  \\Illuminate\\Queue\\Worker  $worker\n     * @return void\n     */\n    public function __construct(Worker $worker)\n    {\n        parent::__construct();\n\n        $this->worker = $worker;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        if ($this->downForMaintenance() && $this->option('once')) {\n            return $this->worker->sleep($this->option('sleep'));\n        }\n\n        // We'll listen to the processed and failed events so we can write information\n        // to the console as jobs are processed, which will let the developer watch\n        // which jobs are coming through a queue and be informed on its progress.\n        $this->listenForEvents();\n\n        $connection = $this->argument('connection')\n                        ?: $this->laravel['config']['queue.default'];\n\n        // We need to get the right queue for the connection which is set in the queue\n        // configuration file for the application. We will pull it based on the set\n        // connection being run for the queue operation currently being executed.\n        $queue = $this->getQueue($connection);\n\n        $this->runWorker(\n            $connection, $queue\n        );\n    }\n\n    /**\n     * Run the worker instance.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @return array\n     */\n    protected function runWorker($connection, $queue)\n    {\n        $this->worker->setCache($this->laravel['cache']->driver());\n\n        return $this->worker->{$this->option('once') ? 'runNextJob' : 'daemon'}(\n            $connection, $queue, $this->gatherWorkerOptions()\n        );\n    }\n\n    /**\n     * Gather all of the queue worker options as a single object.\n     *\n     * @return \\Illuminate\\Queue\\WorkerOptions\n     */\n    protected function gatherWorkerOptions()\n    {\n        return new WorkerOptions(\n            $this->option('delay'), $this->option('memory'),\n            $this->option('timeout'), $this->option('sleep'),\n            $this->option('tries'), $this->option('force'),\n            $this->option('stop-when-empty')\n        );\n    }\n\n    /**\n     * Listen for the queue events in order to update the console output.\n     *\n     * @return void\n     */\n    protected function listenForEvents()\n    {\n        $this->laravel['events']->listen(JobProcessing::class, function ($event) {\n            $this->writeOutput($event->job, 'starting');\n        });\n\n        $this->laravel['events']->listen(JobProcessed::class, function ($event) {\n            $this->writeOutput($event->job, 'success');\n        });\n\n        $this->laravel['events']->listen(JobFailed::class, function ($event) {\n            $this->writeOutput($event->job, 'failed');\n\n            $this->logFailedJob($event);\n        });\n    }\n\n    /**\n     * Write the status output for the queue worker.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  string $status\n     * @return void\n     */\n    protected function writeOutput(Job $job, $status)\n    {\n        switch ($status) {\n            case 'starting':\n                return $this->writeStatus($job, 'Processing', 'comment');\n            case 'success':\n                return $this->writeStatus($job, 'Processed', 'info');\n            case 'failed':\n                return $this->writeStatus($job, 'Failed', 'error');\n        }\n    }\n\n    /**\n     * Format the status output for the queue worker.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  string  $status\n     * @param  string  $type\n     * @return void\n     */\n    protected function writeStatus(Job $job, $status, $type)\n    {\n        $this->output->writeln(sprintf(\n            \"<{$type}>[%s][%s] %s</{$type}> %s\",\n            Carbon::now()->format('Y-m-d H:i:s'),\n            $job->getJobId(),\n            str_pad(\"{$status}:\", 11), $job->resolveName()\n        ));\n    }\n\n    /**\n     * Store a failed job event.\n     *\n     * @param  \\Illuminate\\Queue\\Events\\JobFailed  $event\n     * @return void\n     */\n    protected function logFailedJob(JobFailed $event)\n    {\n        $this->laravel['queue.failer']->log(\n            $event->connectionName, $event->job->getQueue(),\n            $event->job->getRawBody(), $event->exception\n        );\n    }\n\n    /**\n     * Get the queue name for the worker.\n     *\n     * @param  string  $connection\n     * @return string\n     */\n    protected function getQueue($connection)\n    {\n        return $this->option('queue') ?: $this->laravel['config']->get(\n            \"queue.connections.{$connection}.queue\", 'default'\n        );\n    }\n\n    /**\n     * Determine if the worker should run in maintenance mode.\n     *\n     * @return bool\n     */\n    protected function downForMaintenance()\n    {\n        return $this->option('force') ? false : $this->laravel->isDownForMaintenance();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/failed_jobs.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass Create{{tableClassName}}Table extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('{{table}}', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->text('connection');\n            $table->text('queue');\n            $table->longText('payload');\n            $table->longText('exception');\n            $table->timestamp('failed_at')->useCurrent();\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('{{table}}');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Console/stubs/jobs.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass Create{{tableClassName}}Table extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('{{table}}', function (Blueprint $table) {\n            $table->bigIncrements('id');\n            $table->string('queue')->index();\n            $table->longText('payload');\n            $table->unsignedTinyInteger('attempts');\n            $table->unsignedInteger('reserved_at')->nullable();\n            $table->unsignedInteger('available_at');\n            $table->unsignedInteger('created_at');\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('{{table}}');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/DatabaseQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Database\\Connection;\nuse Illuminate\\Queue\\Jobs\\DatabaseJob;\nuse Illuminate\\Queue\\Jobs\\DatabaseJobRecord;\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\n\nclass DatabaseQueue extends Queue implements QueueContract\n{\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\Connection\n     */\n    protected $database;\n\n    /**\n     * The database table that holds the jobs.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The name of the default queue.\n     *\n     * @var string\n     */\n    protected $default;\n\n    /**\n     * The expiration time of a job.\n     *\n     * @var int|null\n     */\n    protected $retryAfter = 60;\n\n    /**\n     * Create a new database queue instance.\n     *\n     * @param  \\Illuminate\\Database\\Connection  $database\n     * @param  string  $table\n     * @param  string  $default\n     * @param  int  $retryAfter\n     * @return void\n     */\n    public function __construct(Connection $database, $table, $default = 'default', $retryAfter = 60)\n    {\n        $this->table = $table;\n        $this->default = $default;\n        $this->database = $database;\n        $this->retryAfter = $retryAfter;\n    }\n\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        return $this->database->table($this->table)\n                    ->where('queue', $this->getQueue($queue))\n                    ->count();\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        return $this->pushToDatabase($queue, $this->createPayload(\n            $job, $this->getQueue($queue), $data\n        ));\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        return $this->pushToDatabase($queue, $payload);\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return void\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        return $this->pushToDatabase($queue, $this->createPayload(\n            $job, $this->getQueue($queue), $data\n        ), $delay);\n    }\n\n    /**\n     * Push an array of jobs onto the queue.\n     *\n     * @param  array   $jobs\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function bulk($jobs, $data = '', $queue = null)\n    {\n        $queue = $this->getQueue($queue);\n\n        $availableAt = $this->availableAt();\n\n        return $this->database->table($this->table)->insert(collect((array) $jobs)->map(\n            function ($job) use ($queue, $data, $availableAt) {\n                return $this->buildDatabaseRecord($queue, $this->createPayload($job, $this->getQueue($queue), $data), $availableAt);\n            }\n        )->all());\n    }\n\n    /**\n     * Release a reserved job back onto the queue.\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\Jobs\\DatabaseJobRecord  $job\n     * @param  int  $delay\n     * @return mixed\n     */\n    public function release($queue, $job, $delay)\n    {\n        return $this->pushToDatabase($queue, $job->payload, $delay, $job->attempts);\n    }\n\n    /**\n     * Push a raw payload to the database with a given delay.\n     *\n     * @param  string|null  $queue\n     * @param  string  $payload\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  int  $attempts\n     * @return mixed\n     */\n    protected function pushToDatabase($queue, $payload, $delay = 0, $attempts = 0)\n    {\n        return $this->database->table($this->table)->insertGetId($this->buildDatabaseRecord(\n            $this->getQueue($queue), $payload, $this->availableAt($delay), $attempts\n        ));\n    }\n\n    /**\n     * Create an array to insert for the given job.\n     *\n     * @param  string|null  $queue\n     * @param  string  $payload\n     * @param  int  $availableAt\n     * @param  int  $attempts\n     * @return array\n     */\n    protected function buildDatabaseRecord($queue, $payload, $availableAt, $attempts = 0)\n    {\n        return [\n            'queue' => $queue,\n            'attempts' => $attempts,\n            'reserved_at' => null,\n            'available_at' => $availableAt,\n            'created_at' => $this->currentTime(),\n            'payload' => $payload,\n        ];\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     *\n     * @throws \\Exception|\\Throwable\n     */\n    public function pop($queue = null)\n    {\n        $queue = $this->getQueue($queue);\n\n        return $this->database->transaction(function () use ($queue) {\n            if ($job = $this->getNextAvailableJob($queue)) {\n                return $this->marshalJob($queue, $job);\n            }\n        });\n    }\n\n    /**\n     * Get the next available job for the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Queue\\Jobs\\DatabaseJobRecord|null\n     */\n    protected function getNextAvailableJob($queue)\n    {\n        $job = $this->database->table($this->table)\n                    ->lockForUpdate()\n                    ->where('queue', $this->getQueue($queue))\n                    ->where(function ($query) {\n                        $this->isAvailable($query);\n                        $this->isReservedButExpired($query);\n                    })\n                    ->orderBy('id', 'asc')\n                    ->first();\n\n        return $job ? new DatabaseJobRecord((object) $job) : null;\n    }\n\n    /**\n     * Modify the query to check for available jobs.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return void\n     */\n    protected function isAvailable($query)\n    {\n        $query->where(function ($query) {\n            $query->whereNull('reserved_at')\n                  ->where('available_at', '<=', $this->currentTime());\n        });\n    }\n\n    /**\n     * Modify the query to check for jobs that are reserved but have expired.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @return void\n     */\n    protected function isReservedButExpired($query)\n    {\n        $expiration = Carbon::now()->subSeconds($this->retryAfter)->getTimestamp();\n\n        $query->orWhere(function ($query) use ($expiration) {\n            $query->where('reserved_at', '<=', $expiration);\n        });\n    }\n\n    /**\n     * Marshal the reserved job into a DatabaseJob instance.\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\Jobs\\DatabaseJobRecord  $job\n     * @return \\Illuminate\\Queue\\Jobs\\DatabaseJob\n     */\n    protected function marshalJob($queue, $job)\n    {\n        $job = $this->markJobAsReserved($job);\n\n        return new DatabaseJob(\n            $this->container, $this, $job, $this->connectionName, $queue\n        );\n    }\n\n    /**\n     * Mark the given job ID as reserved.\n     *\n     * @param  \\Illuminate\\Queue\\Jobs\\DatabaseJobRecord  $job\n     * @return \\Illuminate\\Queue\\Jobs\\DatabaseJobRecord\n     */\n    protected function markJobAsReserved($job)\n    {\n        $this->database->table($this->table)->where('id', $job->id)->update([\n            'reserved_at' => $job->touch(),\n            'attempts' => $job->increment(),\n        ]);\n\n        return $job;\n    }\n\n    /**\n     * Delete a reserved job from the queue.\n     *\n     * @param  string  $queue\n     * @param  string  $id\n     * @return void\n     *\n     * @throws \\Exception|\\Throwable\n     */\n    public function deleteReserved($queue, $id)\n    {\n        $this->database->transaction(function () use ($id) {\n            if ($this->database->table($this->table)->lockForUpdate()->find($id)) {\n                $this->database->table($this->table)->where('id', $id)->delete();\n            }\n        });\n    }\n\n    /**\n     * Get the queue or return the default.\n     *\n     * @param  string|null  $queue\n     * @return string\n     */\n    public function getQueue($queue)\n    {\n        return $queue ?: $this->default;\n    }\n\n    /**\n     * Get the underlying database instance.\n     *\n     * @return \\Illuminate\\Database\\Connection\n     */\n    public function getDatabase()\n    {\n        return $this->database;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/JobExceptionOccurred.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass JobExceptionOccurred\n{\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The job instance.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Job\n     */\n    public $job;\n\n    /**\n     * The exception instance.\n     *\n     * @var \\Exception\n     */\n    public $exception;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $exception\n     * @return void\n     */\n    public function __construct($connectionName, $job, $exception)\n    {\n        $this->job = $job;\n        $this->exception = $exception;\n        $this->connectionName = $connectionName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/JobFailed.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass JobFailed\n{\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The job instance.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Job\n     */\n    public $job;\n\n    /**\n     * The exception that caused the job to fail.\n     *\n     * @var \\Exception\n     */\n    public $exception;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $exception\n     * @return void\n     */\n    public function __construct($connectionName, $job, $exception)\n    {\n        $this->job = $job;\n        $this->exception = $exception;\n        $this->connectionName = $connectionName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessed.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass JobProcessed\n{\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The job instance.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Job\n     */\n    public $job;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    public function __construct($connectionName, $job)\n    {\n        $this->job = $job;\n        $this->connectionName = $connectionName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/JobProcessing.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass JobProcessing\n{\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The job instance.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Job\n     */\n    public $job;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    public function __construct($connectionName, $job)\n    {\n        $this->job = $job;\n        $this->connectionName = $connectionName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/Looping.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass Looping\n{\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * The queue name.\n     *\n     * @var string\n     */\n    public $queue;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct($connectionName, $queue)\n    {\n        $this->queue = $queue;\n        $this->connectionName = $connectionName;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Events/WorkerStopping.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Events;\n\nclass WorkerStopping\n{\n    /**\n     * The exit status.\n     *\n     * @var int\n     */\n    public $status;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  int  $status\n     * @return void\n     */\n    public function __construct($status = 0)\n    {\n        $this->status = $status;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Failed/DatabaseFailedJobProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Failed;\n\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Database\\ConnectionResolverInterface;\n\nclass DatabaseFailedJobProvider implements FailedJobProviderInterface\n{\n    /**\n     * The connection resolver implementation.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $resolver;\n\n    /**\n     * The database connection name.\n     *\n     * @var string\n     */\n    protected $database;\n\n    /**\n     * The database table.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * Create a new database failed job provider.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $resolver\n     * @param  string  $database\n     * @param  string  $table\n     * @return void\n     */\n    public function __construct(ConnectionResolverInterface $resolver, $database, $table)\n    {\n        $this->table = $table;\n        $this->resolver = $resolver;\n        $this->database = $database;\n    }\n\n    /**\n     * Log a failed job into storage.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  string  $payload\n     * @param  \\Exception  $exception\n     * @return int|null\n     */\n    public function log($connection, $queue, $payload, $exception)\n    {\n        $failed_at = Date::now();\n\n        $exception = (string) $exception;\n\n        return $this->getTable()->insertGetId(compact(\n            'connection', 'queue', 'payload', 'exception', 'failed_at'\n        ));\n    }\n\n    /**\n     * Get a list of all of the failed jobs.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        return $this->getTable()->orderBy('id', 'desc')->get()->all();\n    }\n\n    /**\n     * Get a single failed job.\n     *\n     * @param  mixed  $id\n     * @return object|null\n     */\n    public function find($id)\n    {\n        return $this->getTable()->find($id);\n    }\n\n    /**\n     * Delete a single failed job from storage.\n     *\n     * @param  mixed  $id\n     * @return bool\n     */\n    public function forget($id)\n    {\n        return $this->getTable()->where('id', $id)->delete() > 0;\n    }\n\n    /**\n     * Flush all of the failed jobs from storage.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        $this->getTable()->delete();\n    }\n\n    /**\n     * Get a new query builder instance for the table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function getTable()\n    {\n        return $this->resolver->connection($this->database)->table($this->table);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Failed/FailedJobProviderInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Failed;\n\ninterface FailedJobProviderInterface\n{\n    /**\n     * Log a failed job into storage.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  string  $payload\n     * @param  \\Exception  $exception\n     * @return int|null\n     */\n    public function log($connection, $queue, $payload, $exception);\n\n    /**\n     * Get a list of all of the failed jobs.\n     *\n     * @return array\n     */\n    public function all();\n\n    /**\n     * Get a single failed job.\n     *\n     * @param  mixed  $id\n     * @return object|null\n     */\n    public function find($id);\n\n    /**\n     * Delete a single failed job from storage.\n     *\n     * @param  mixed  $id\n     * @return bool\n     */\n    public function forget($id);\n\n    /**\n     * Flush all of the failed jobs from storage.\n     *\n     * @return void\n     */\n    public function flush();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Failed/NullFailedJobProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Failed;\n\nclass NullFailedJobProvider implements FailedJobProviderInterface\n{\n    /**\n     * Log a failed job into storage.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  string  $payload\n     * @param  \\Exception  $exception\n     * @return int|null\n     */\n    public function log($connection, $queue, $payload, $exception)\n    {\n        //\n    }\n\n    /**\n     * Get a list of all of the failed jobs.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        return [];\n    }\n\n    /**\n     * Get a single failed job.\n     *\n     * @param  mixed  $id\n     * @return object|null\n     */\n    public function find($id)\n    {\n        //\n    }\n\n    /**\n     * Delete a single failed job from storage.\n     *\n     * @param  mixed  $id\n     * @return bool\n     */\n    public function forget($id)\n    {\n        return true;\n    }\n\n    /**\n     * Flush all of the failed jobs from storage.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/InteractsWithQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\ntrait InteractsWithQueue\n{\n    /**\n     * The underlying queue job instance.\n     *\n     * @var \\Illuminate\\Contracts\\Queue\\Job\n     */\n    protected $job;\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        return $this->job ? $this->job->attempts() : 1;\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        if ($this->job) {\n            return $this->job->delete();\n        }\n    }\n\n    /**\n     * Fail the job from the queue.\n     *\n     * @param  \\Throwable|null  $exception\n     * @return void\n     */\n    public function fail($exception = null)\n    {\n        if ($this->job) {\n            $this->job->fail($exception);\n        }\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        if ($this->job) {\n            return $this->job->release($delay);\n        }\n    }\n\n    /**\n     * Set the base queue job instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return $this\n     */\n    public function setJob(JobContract $job)\n    {\n        $this->job = $job;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/InvalidPayloadException.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse InvalidArgumentException;\n\nclass InvalidPayloadException extends InvalidArgumentException\n{\n    /**\n     * Create a new exception instance.\n     *\n     * @param  string|null  $message\n     * @return void\n     */\n    public function __construct($message = null)\n    {\n        parent::__construct($message ?: json_last_error());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Pheanstalk\\Pheanstalk;\nuse Illuminate\\Container\\Container;\nuse Pheanstalk\\Job as PheanstalkJob;\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\nclass BeanstalkdJob extends Job implements JobContract\n{\n    /**\n     * The Pheanstalk instance.\n     *\n     * @var \\Pheanstalk\\Pheanstalk\n     */\n    protected $pheanstalk;\n\n    /**\n     * The Pheanstalk job instance.\n     *\n     * @var \\Pheanstalk\\Job\n     */\n    protected $job;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Pheanstalk\\Pheanstalk  $pheanstalk\n     * @param  \\Pheanstalk\\Job  $job\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct(Container $container, Pheanstalk $pheanstalk, PheanstalkJob $job, $connectionName, $queue)\n    {\n        $this->job = $job;\n        $this->queue = $queue;\n        $this->container = $container;\n        $this->pheanstalk = $pheanstalk;\n        $this->connectionName = $connectionName;\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        parent::release($delay);\n\n        $priority = Pheanstalk::DEFAULT_PRIORITY;\n\n        $this->pheanstalk->release($this->job, $priority, $delay);\n    }\n\n    /**\n     * Bury the job in the queue.\n     *\n     * @return void\n     */\n    public function bury()\n    {\n        parent::release();\n\n        $this->pheanstalk->bury($this->job);\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        parent::delete();\n\n        $this->pheanstalk->delete($this->job);\n    }\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        $stats = $this->pheanstalk->statsJob($this->job);\n\n        return (int) $stats->reserves;\n    }\n\n    /**\n     * Get the job identifier.\n     *\n     * @return int\n     */\n    public function getJobId()\n    {\n        return $this->job->getId();\n    }\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody()\n    {\n        return $this->job->getData();\n    }\n\n    /**\n     * Get the underlying Pheanstalk instance.\n     *\n     * @return \\Pheanstalk\\Pheanstalk\n     */\n    public function getPheanstalk()\n    {\n        return $this->pheanstalk;\n    }\n\n    /**\n     * Get the underlying Pheanstalk job.\n     *\n     * @return \\Pheanstalk\\Job\n     */\n    public function getPheanstalkJob()\n    {\n        return $this->job;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJob.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Queue\\DatabaseQueue;\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\nclass DatabaseJob extends Job implements JobContract\n{\n    /**\n     * The database queue instance.\n     *\n     * @var \\Illuminate\\Queue\\DatabaseQueue\n     */\n    protected $database;\n\n    /**\n     * The database job payload.\n     *\n     * @var \\stdClass\n     */\n    protected $job;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Illuminate\\Queue\\DatabaseQueue  $database\n     * @param  \\stdClass  $job\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct(Container $container, DatabaseQueue $database, $job, $connectionName, $queue)\n    {\n        $this->job = $job;\n        $this->queue = $queue;\n        $this->database = $database;\n        $this->container = $container;\n        $this->connectionName = $connectionName;\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int  $delay\n     * @return mixed\n     */\n    public function release($delay = 0)\n    {\n        parent::release($delay);\n\n        $this->delete();\n\n        return $this->database->release($this->queue, $this->job, $delay);\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        parent::delete();\n\n        $this->database->deleteReserved($this->queue, $this->job->id);\n    }\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        return (int) $this->job->attempts;\n    }\n\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    public function getJobId()\n    {\n        return $this->job->id;\n    }\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody()\n    {\n        return $this->job->payload;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/DatabaseJobRecord.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Support\\InteractsWithTime;\n\nclass DatabaseJobRecord\n{\n    use InteractsWithTime;\n\n    /**\n     * The underlying job record.\n     *\n     * @var \\stdClass\n     */\n    protected $record;\n\n    /**\n     * Create a new job record instance.\n     *\n     * @param  \\stdClass  $record\n     * @return void\n     */\n    public function __construct($record)\n    {\n        $this->record = $record;\n    }\n\n    /**\n     * Increment the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function increment()\n    {\n        $this->record->attempts++;\n\n        return $this->record->attempts;\n    }\n\n    /**\n     * Update the \"reserved at\" timestamp of the job.\n     *\n     * @return int\n     */\n    public function touch()\n    {\n        $this->record->reserved_at = $this->currentTime();\n\n        return $this->record->reserved_at;\n    }\n\n    /**\n     * Dynamically access the underlying job information.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->record->{$key};\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Queue\\Events\\JobFailed;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Queue\\ManuallyFailedException;\n\nabstract class Job\n{\n    use InteractsWithTime;\n\n    /**\n     * The job handler instance.\n     *\n     * @var mixed\n     */\n    protected $instance;\n\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Indicates if the job has been deleted.\n     *\n     * @var bool\n     */\n    protected $deleted = false;\n\n    /**\n     * Indicates if the job has been released.\n     *\n     * @var bool\n     */\n    protected $released = false;\n\n    /**\n     * Indicates if the job has failed.\n     *\n     * @var bool\n     */\n    protected $failed = false;\n\n    /**\n     * The name of the connection the job belongs to.\n     *\n     * @var string\n     */\n    protected $connectionName;\n\n    /**\n     * The name of the queue the job belongs to.\n     *\n     * @var string\n     */\n    protected $queue;\n\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    abstract public function getJobId();\n\n    /**\n     * Get the raw body of the job.\n     *\n     * @return string\n     */\n    abstract public function getRawBody();\n\n    /**\n     * Fire the job.\n     *\n     * @return void\n     */\n    public function fire()\n    {\n        $payload = $this->payload();\n\n        [$class, $method] = JobName::parse($payload['job']);\n\n        ($this->instance = $this->resolve($class))->{$method}($this, $payload['data']);\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        $this->deleted = true;\n    }\n\n    /**\n     * Determine if the job has been deleted.\n     *\n     * @return bool\n     */\n    public function isDeleted()\n    {\n        return $this->deleted;\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        $this->released = true;\n    }\n\n    /**\n     * Determine if the job was released back into the queue.\n     *\n     * @return bool\n     */\n    public function isReleased()\n    {\n        return $this->released;\n    }\n\n    /**\n     * Determine if the job has been deleted or released.\n     *\n     * @return bool\n     */\n    public function isDeletedOrReleased()\n    {\n        return $this->isDeleted() || $this->isReleased();\n    }\n\n    /**\n     * Determine if the job has been marked as a failure.\n     *\n     * @return bool\n     */\n    public function hasFailed()\n    {\n        return $this->failed;\n    }\n\n    /**\n     * Mark the job as \"failed\".\n     *\n     * @return void\n     */\n    public function markAsFailed()\n    {\n        $this->failed = true;\n    }\n\n    /**\n     * Delete the job, call the \"failed\" method, and raise the failed job event.\n     *\n     * @param  \\Throwable|null $e\n     * @return void\n     */\n    public function fail($e = null)\n    {\n        $this->markAsFailed();\n\n        if ($this->isDeleted()) {\n            return;\n        }\n\n        try {\n            // If the job has failed, we will delete it, call the \"failed\" method and then call\n            // an event indicating the job has failed so it can be logged if needed. This is\n            // to allow every developer to better keep monitor of their failed queue jobs.\n            $this->delete();\n\n            $this->failed($e);\n        } finally {\n            $this->resolve(Dispatcher::class)->dispatch(new JobFailed(\n                $this->connectionName, $this, $e ?: new ManuallyFailedException\n            ));\n        }\n    }\n\n    /**\n     * Process an exception that caused the job to fail.\n     *\n     * @param  \\Throwable|null $e\n     * @return void\n     */\n    protected function failed($e)\n    {\n        $payload = $this->payload();\n\n        [$class, $method] = JobName::parse($payload['job']);\n\n        if (method_exists($this->instance = $this->resolve($class), 'failed')) {\n            $this->instance->failed($payload['data'], $e);\n        }\n    }\n\n    /**\n     * Resolve the given class.\n     *\n     * @param  string  $class\n     * @return mixed\n     */\n    protected function resolve($class)\n    {\n        return $this->container->make($class);\n    }\n\n    /**\n     * Get the decoded body of the job.\n     *\n     * @return array\n     */\n    public function payload()\n    {\n        return json_decode($this->getRawBody(), true);\n    }\n\n    /**\n     * Get the number of times to attempt a job.\n     *\n     * @return int|null\n     */\n    public function maxTries()\n    {\n        return $this->payload()['maxTries'] ?? null;\n    }\n\n    /**\n     * Get the number of seconds to delay a failed job before retrying it.\n     *\n     * @return int|null\n     */\n    public function delaySeconds()\n    {\n        return $this->payload()['delay'] ?? null;\n    }\n\n    /**\n     * Get the number of seconds the job can run.\n     *\n     * @return int|null\n     */\n    public function timeout()\n    {\n        return $this->payload()['timeout'] ?? null;\n    }\n\n    /**\n     * Get the timestamp indicating when the job should timeout.\n     *\n     * @return int|null\n     */\n    public function timeoutAt()\n    {\n        return $this->payload()['timeoutAt'] ?? null;\n    }\n\n    /**\n     * Get the name of the queued job class.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->payload()['job'];\n    }\n\n    /**\n     * Get the resolved name of the queued job class.\n     *\n     * Resolves the name of \"wrapped\" jobs such as class-based handlers.\n     *\n     * @return string\n     */\n    public function resolveName()\n    {\n        return JobName::resolve($this->getName(), $this->payload());\n    }\n\n    /**\n     * Get the name of the connection the job belongs to.\n     *\n     * @return string\n     */\n    public function getConnectionName()\n    {\n        return $this->connectionName;\n    }\n\n    /**\n     * Get the name of the queue the job belongs to.\n     *\n     * @return string\n     */\n    public function getQueue()\n    {\n        return $this->queue;\n    }\n\n    /**\n     * Get the service container instance.\n     *\n     * @return \\Illuminate\\Container\\Container\n     */\n    public function getContainer()\n    {\n        return $this->container;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/JobName.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Support\\Str;\n\nclass JobName\n{\n    /**\n     * Parse the given job name into a class / method array.\n     *\n     * @param  string  $job\n     * @return array\n     */\n    public static function parse($job)\n    {\n        return Str::parseCallback($job, 'fire');\n    }\n\n    /**\n     * Get the resolved name of the queued job class.\n     *\n     * @param  string  $name\n     * @param  array  $payload\n     * @return string\n     */\n    public static function resolve($name, $payload)\n    {\n        if (! empty($payload['displayName'])) {\n            return $payload['displayName'];\n        }\n\n        return $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/RedisJob.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Queue\\RedisQueue;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\nclass RedisJob extends Job implements JobContract\n{\n    /**\n     * The Redis queue instance.\n     *\n     * @var \\Illuminate\\Queue\\RedisQueue\n     */\n    protected $redis;\n\n    /**\n     * The Redis raw job payload.\n     *\n     * @var string\n     */\n    protected $job;\n\n    /**\n     * The JSON decoded version of \"$job\".\n     *\n     * @var array\n     */\n    protected $decoded;\n\n    /**\n     * The Redis job payload inside the reserved queue.\n     *\n     * @var string\n     */\n    protected $reserved;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Illuminate\\Queue\\RedisQueue  $redis\n     * @param  string  $job\n     * @param  string  $reserved\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct(Container $container, RedisQueue $redis, $job, $reserved, $connectionName, $queue)\n    {\n        // The $job variable is the original job JSON as it existed in the ready queue while\n        // the $reserved variable is the raw JSON in the reserved queue. The exact format\n        // of the reserved job is required in order for us to properly delete its data.\n        $this->job = $job;\n        $this->redis = $redis;\n        $this->queue = $queue;\n        $this->reserved = $reserved;\n        $this->container = $container;\n        $this->connectionName = $connectionName;\n\n        $this->decoded = $this->payload();\n    }\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody()\n    {\n        return $this->job;\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        parent::delete();\n\n        $this->redis->deleteReserved($this->queue, $this);\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        parent::release($delay);\n\n        $this->redis->deleteAndRelease($this->queue, $this, $delay);\n    }\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        return ($this->decoded['attempts'] ?? null) + 1;\n    }\n\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    public function getJobId()\n    {\n        return $this->decoded['id'] ?? null;\n    }\n\n    /**\n     * Get the underlying Redis factory implementation.\n     *\n     * @return \\Illuminate\\Queue\\RedisQueue\n     */\n    public function getRedisQueue()\n    {\n        return $this->redis;\n    }\n\n    /**\n     * Get the underlying reserved Redis job.\n     *\n     * @return string\n     */\n    public function getReservedJob()\n    {\n        return $this->reserved;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/SqsJob.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Aws\\Sqs\\SqsClient;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\nclass SqsJob extends Job implements JobContract\n{\n    /**\n     * The Amazon SQS client instance.\n     *\n     * @var \\Aws\\Sqs\\SqsClient\n     */\n    protected $sqs;\n\n    /**\n     * The Amazon SQS job instance.\n     *\n     * @var array\n     */\n    protected $job;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Aws\\Sqs\\SqsClient  $sqs\n     * @param  array   $job\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct(Container $container, SqsClient $sqs, array $job, $connectionName, $queue)\n    {\n        $this->sqs = $sqs;\n        $this->job = $job;\n        $this->queue = $queue;\n        $this->container = $container;\n        $this->connectionName = $connectionName;\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        parent::release($delay);\n\n        $this->sqs->changeMessageVisibility([\n            'QueueUrl' => $this->queue,\n            'ReceiptHandle' => $this->job['ReceiptHandle'],\n            'VisibilityTimeout' => $delay,\n        ]);\n    }\n\n    /**\n     * Delete the job from the queue.\n     *\n     * @return void\n     */\n    public function delete()\n    {\n        parent::delete();\n\n        $this->sqs->deleteMessage([\n            'QueueUrl' => $this->queue, 'ReceiptHandle' => $this->job['ReceiptHandle'],\n        ]);\n    }\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        return (int) $this->job['Attributes']['ApproximateReceiveCount'];\n    }\n\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    public function getJobId()\n    {\n        return $this->job['MessageId'];\n    }\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody()\n    {\n        return $this->job['Body'];\n    }\n\n    /**\n     * Get the underlying SQS client instance.\n     *\n     * @return \\Aws\\Sqs\\SqsClient\n     */\n    public function getSqs()\n    {\n        return $this->sqs;\n    }\n\n    /**\n     * Get the underlying raw SQS job.\n     *\n     * @return array\n     */\n    public function getSqsJob()\n    {\n        return $this->job;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Jobs/SyncJob.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue\\Jobs;\n\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Contracts\\Queue\\Job as JobContract;\n\nclass SyncJob extends Job implements JobContract\n{\n    /**\n     * The class name of the job.\n     *\n     * @var string\n     */\n    protected $job;\n\n    /**\n     * The queue message data.\n     *\n     * @var string\n     */\n    protected $payload;\n\n    /**\n     * Create a new job instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  string  $payload\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return void\n     */\n    public function __construct(Container $container, $payload, $connectionName, $queue)\n    {\n        $this->queue = $queue;\n        $this->payload = $payload;\n        $this->container = $container;\n        $this->connectionName = $connectionName;\n    }\n\n    /**\n     * Release the job back into the queue.\n     *\n     * @param  int   $delay\n     * @return void\n     */\n    public function release($delay = 0)\n    {\n        parent::release($delay);\n    }\n\n    /**\n     * Get the number of times the job has been attempted.\n     *\n     * @return int\n     */\n    public function attempts()\n    {\n        return 1;\n    }\n\n    /**\n     * Get the job identifier.\n     *\n     * @return string\n     */\n    public function getJobId()\n    {\n        return '';\n    }\n\n    /**\n     * Get the raw body string for the job.\n     *\n     * @return string\n     */\n    public function getRawBody()\n    {\n        return $this->payload;\n    }\n\n    /**\n     * Get the name of the queue the job belongs to.\n     *\n     * @return string\n     */\n    public function getQueue()\n    {\n        return 'sync';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Listener.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Closure;\nuse Symfony\\Component\\Process\\Process;\nuse Symfony\\Component\\Process\\PhpExecutableFinder;\n\nclass Listener\n{\n    /**\n     * The command working path.\n     *\n     * @var string\n     */\n    protected $commandPath;\n\n    /**\n     * The environment the workers should run under.\n     *\n     * @var string\n     */\n    protected $environment;\n\n    /**\n     * The amount of seconds to wait before polling the queue.\n     *\n     * @var int\n     */\n    protected $sleep = 3;\n\n    /**\n     * The amount of times to try a job before logging it failed.\n     *\n     * @var int\n     */\n    protected $maxTries = 0;\n\n    /**\n     * The output handler callback.\n     *\n     * @var \\Closure|null\n     */\n    protected $outputHandler;\n\n    /**\n     * Create a new queue listener.\n     *\n     * @param  string  $commandPath\n     * @return void\n     */\n    public function __construct($commandPath)\n    {\n        $this->commandPath = $commandPath;\n    }\n\n    /**\n     * Get the PHP binary.\n     *\n     * @return string\n     */\n    protected function phpBinary()\n    {\n        return (new PhpExecutableFinder)->find(false);\n    }\n\n    /**\n     * Get the Artisan binary.\n     *\n     * @return string\n     */\n    protected function artisanBinary()\n    {\n        return defined('ARTISAN_BINARY') ? ARTISAN_BINARY : 'artisan';\n    }\n\n    /**\n     * Listen to the given queue connection.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\ListenerOptions  $options\n     * @return void\n     */\n    public function listen($connection, $queue, ListenerOptions $options)\n    {\n        $process = $this->makeProcess($connection, $queue, $options);\n\n        while (true) {\n            $this->runProcess($process, $options->memory);\n        }\n    }\n\n    /**\n     * Create a new Symfony process for the worker.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\ListenerOptions  $options\n     * @return \\Symfony\\Component\\Process\\Process\n     */\n    public function makeProcess($connection, $queue, ListenerOptions $options)\n    {\n        $command = $this->createCommand(\n            $connection,\n            $queue,\n            $options\n        );\n\n        // If the environment is set, we will append it to the command array so the\n        // workers will run under the specified environment. Otherwise, they will\n        // just run under the production environment which is not always right.\n        if (isset($options->environment)) {\n            $command = $this->addEnvironment($command, $options);\n        }\n\n        return new Process(\n            $command,\n            $this->commandPath,\n            null,\n            null,\n            $options->timeout\n        );\n    }\n\n    /**\n     * Add the environment option to the given command.\n     *\n     * @param  array  $command\n     * @param  \\Illuminate\\Queue\\ListenerOptions  $options\n     * @return array\n     */\n    protected function addEnvironment($command, ListenerOptions $options)\n    {\n        return array_merge($command, [\"--env={$options->environment}\"]);\n    }\n\n    /**\n     * Create the command with the listener options.\n     *\n     * @param  string  $connection\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\ListenerOptions  $options\n     * @return array\n     */\n    protected function createCommand($connection, $queue, ListenerOptions $options)\n    {\n        return array_filter([\n            $this->phpBinary(),\n            $this->artisanBinary(),\n            'queue:work',\n            $connection,\n            '--once',\n            \"--queue={$queue}\",\n            \"--delay={$options->delay}\",\n            \"--memory={$options->memory}\",\n            \"--sleep={$options->sleep}\",\n            \"--tries={$options->maxTries}\",\n        ], function ($value) {\n            return ! is_null($value);\n        });\n    }\n\n    /**\n     * Run the given process.\n     *\n     * @param  \\Symfony\\Component\\Process\\Process  $process\n     * @param  int  $memory\n     * @return void\n     */\n    public function runProcess(Process $process, $memory)\n    {\n        $process->run(function ($type, $line) {\n            $this->handleWorkerOutput($type, $line);\n        });\n\n        // Once we have run the job we'll go check if the memory limit has been exceeded\n        // for the script. If it has, we will kill this script so the process manager\n        // will restart this with a clean slate of memory automatically on exiting.\n        if ($this->memoryExceeded($memory)) {\n            $this->stop();\n        }\n    }\n\n    /**\n     * Handle output from the worker process.\n     *\n     * @param  int  $type\n     * @param  string  $line\n     * @return void\n     */\n    protected function handleWorkerOutput($type, $line)\n    {\n        if (isset($this->outputHandler)) {\n            call_user_func($this->outputHandler, $type, $line);\n        }\n    }\n\n    /**\n     * Determine if the memory limit has been exceeded.\n     *\n     * @param  int  $memoryLimit\n     * @return bool\n     */\n    public function memoryExceeded($memoryLimit)\n    {\n        return (memory_get_usage(true) / 1024 / 1024) >= $memoryLimit;\n    }\n\n    /**\n     * Stop listening and bail out of the script.\n     *\n     * @return void\n     */\n    public function stop()\n    {\n        die;\n    }\n\n    /**\n     * Set the output handler callback.\n     *\n     * @param  \\Closure  $outputHandler\n     * @return void\n     */\n    public function setOutputHandler(Closure $outputHandler)\n    {\n        $this->outputHandler = $outputHandler;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/ListenerOptions.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nclass ListenerOptions extends WorkerOptions\n{\n    /**\n     * The environment the worker should run in.\n     *\n     * @var string\n     */\n    public $environment;\n\n    /**\n     * Create a new listener options instance.\n     *\n     * @param  string|null  $environment\n     * @param  int  $delay\n     * @param  int  $memory\n     * @param  int  $timeout\n     * @param  int  $sleep\n     * @param  int  $maxTries\n     * @param  bool  $force\n     * @return void\n     */\n    public function __construct($environment = null, $delay = 0, $memory = 128, $timeout = 60, $sleep = 3, $maxTries = 0, $force = false)\n    {\n        $this->environment = $environment;\n\n        parent::__construct($delay, $memory, $timeout, $sleep, $maxTries, $force);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/LuaScripts.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nclass LuaScripts\n{\n    /**\n     * Get the Lua script for computing the size of queue.\n     *\n     * KEYS[1] - The name of the primary queue\n     * KEYS[2] - The name of the \"delayed\" queue\n     * KEYS[3] - The name of the \"reserved\" queue\n     *\n     * @return string\n     */\n    public static function size()\n    {\n        return <<<'LUA'\nreturn redis.call('llen', KEYS[1]) + redis.call('zcard', KEYS[2]) + redis.call('zcard', KEYS[3])\nLUA;\n    }\n\n    /**\n     * Get the Lua script for pushing jobs onto the queue.\n     *\n     * KEYS[1] - The queue to push the job onto, for example: queues:foo\n     * KEYS[2] - The notification list fot the queue we are pushing jobs onto, for example: queues:foo:notify\n     * ARGV[1] - The job payload\n     *\n     * @return string\n     */\n    public static function push()\n    {\n        return <<<'LUA'\n-- Push the job onto the queue...\nredis.call('rpush', KEYS[1], ARGV[1])\n-- Push a notification onto the \"notify\" queue...\nredis.call('rpush', KEYS[2], 1)\nLUA;\n    }\n\n    /**\n     * Get the Lua script for popping the next job off of the queue.\n     *\n     * KEYS[1] - The queue to pop jobs from, for example: queues:foo\n     * KEYS[2] - The queue to place reserved jobs on, for example: queues:foo:reserved\n     * KEYS[3] - The notify queue\n     * ARGV[1] - The time at which the reserved job will expire\n     *\n     * @return string\n     */\n    public static function pop()\n    {\n        return <<<'LUA'\n-- Pop the first job off of the queue...\nlocal job = redis.call('lpop', KEYS[1])\nlocal reserved = false\n\nif(job ~= false) then\n    -- Increment the attempt count and place job on the reserved queue...\n    reserved = cjson.decode(job)\n    reserved['attempts'] = reserved['attempts'] + 1\n    reserved = cjson.encode(reserved)\n    redis.call('zadd', KEYS[2], ARGV[1], reserved)\n    redis.call('lpop', KEYS[3])\nend\n\nreturn {job, reserved}\nLUA;\n    }\n\n    /**\n     * Get the Lua script for releasing reserved jobs.\n     *\n     * KEYS[1] - The \"delayed\" queue we release jobs onto, for example: queues:foo:delayed\n     * KEYS[2] - The queue the jobs are currently on, for example: queues:foo:reserved\n     * ARGV[1] - The raw payload of the job to add to the \"delayed\" queue\n     * ARGV[2] - The UNIX timestamp at which the job should become available\n     *\n     * @return string\n     */\n    public static function release()\n    {\n        return <<<'LUA'\n-- Remove the job from the current queue...\nredis.call('zrem', KEYS[2], ARGV[1])\n\n-- Add the job onto the \"delayed\" queue...\nredis.call('zadd', KEYS[1], ARGV[2], ARGV[1])\n\nreturn true\nLUA;\n    }\n\n    /**\n     * Get the Lua script to migrate expired jobs back onto the queue.\n     *\n     * KEYS[1] - The queue we are removing jobs from, for example: queues:foo:reserved\n     * KEYS[2] - The queue we are moving jobs to, for example: queues:foo\n     * KEYS[3] - The notification list for the queue we are moving jobs to, for example queues:foo:notify\n     * ARGV[1] - The current UNIX timestamp\n     *\n     * @return string\n     */\n    public static function migrateExpiredJobs()\n    {\n        return <<<'LUA'\n-- Get all of the jobs with an expired \"score\"...\nlocal val = redis.call('zrangebyscore', KEYS[1], '-inf', ARGV[1])\n\n-- If we have values in the array, we will remove them from the first queue\n-- and add them onto the destination queue in chunks of 100, which moves\n-- all of the appropriate jobs onto the destination queue very safely.\nif(next(val) ~= nil) then\n    redis.call('zremrangebyrank', KEYS[1], 0, #val - 1)\n\n    for i = 1, #val, 100 do\n        redis.call('rpush', KEYS[2], unpack(val, i, math.min(i+99, #val)))\n        -- Push a notification for every job that was migrated...\n        for j = i, math.min(i+99, #val) do\n            redis.call('rpush', KEYS[3], 1)\n        end\n    end\nend\n\nreturn val\nLUA;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/ManuallyFailedException.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse RuntimeException;\n\nclass ManuallyFailedException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/MaxAttemptsExceededException.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse RuntimeException;\n\nclass MaxAttemptsExceededException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/NullQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\n\nclass NullQueue extends Queue implements QueueContract\n{\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        return 0;\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        //\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        //\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        //\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Queue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse DateTimeInterface;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\InteractsWithTime;\n\nabstract class Queue\n{\n    use InteractsWithTime;\n\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The connection name for the queue.\n     *\n     * @var string\n     */\n    protected $connectionName;\n\n    /**\n     * The create payload callbacks.\n     *\n     * @var callable[]\n     */\n    protected static $createPayloadCallbacks = [];\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $queue\n     * @param  string  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function pushOn($queue, $job, $data = '')\n    {\n        return $this->push($job, $data, $queue);\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  string  $queue\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function laterOn($queue, $delay, $job, $data = '')\n    {\n        return $this->later($delay, $job, $data, $queue);\n    }\n\n    /**\n     * Push an array of jobs onto the queue.\n     *\n     * @param  array   $jobs\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return void\n     */\n    public function bulk($jobs, $data = '', $queue = null)\n    {\n        foreach ((array) $jobs as $job) {\n            $this->push($job, $data, $queue);\n        }\n    }\n\n    /**\n     * Create a payload string from the given job and data.\n     *\n     * @param  string|object  $job\n     * @param  string  $queue\n     * @param  mixed   $data\n     * @return string\n     *\n     * @throws \\Illuminate\\Queue\\InvalidPayloadException\n     */\n    protected function createPayload($job, $queue, $data = '')\n    {\n        $payload = json_encode($this->createPayloadArray($job, $queue, $data));\n\n        if (JSON_ERROR_NONE !== json_last_error()) {\n            throw new InvalidPayloadException(\n                'Unable to JSON encode payload. Error code: '.json_last_error()\n            );\n        }\n\n        return $payload;\n    }\n\n    /**\n     * Create a payload array from the given job and data.\n     *\n     * @param  string|object  $job\n     * @param  string  $queue\n     * @param  mixed  $data\n     * @return array\n     */\n    protected function createPayloadArray($job, $queue, $data = '')\n    {\n        return is_object($job)\n                    ? $this->createObjectPayload($job, $queue)\n                    : $this->createStringPayload($job, $queue, $data);\n    }\n\n    /**\n     * Create a payload for an object-based queue handler.\n     *\n     * @param  object  $job\n     * @param  string  $queue\n     * @return array\n     */\n    protected function createObjectPayload($job, $queue)\n    {\n        $payload = $this->withCreatePayloadHooks($queue, [\n            'displayName' => $this->getDisplayName($job),\n            'job' => 'Illuminate\\Queue\\CallQueuedHandler@call',\n            'maxTries' => $job->tries ?? null,\n            'delay' => $this->getJobRetryDelay($job),\n            'timeout' => $job->timeout ?? null,\n            'timeoutAt' => $this->getJobExpiration($job),\n            'data' => [\n                'commandName' => $job,\n                'command' => $job,\n            ],\n        ]);\n\n        return array_merge($payload, [\n            'data' => [\n                'commandName' => get_class($job),\n                'command' => serialize(clone $job),\n            ],\n        ]);\n    }\n\n    /**\n     * Get the display name for the given job.\n     *\n     * @param  object  $job\n     * @return string\n     */\n    protected function getDisplayName($job)\n    {\n        return method_exists($job, 'displayName')\n                        ? $job->displayName() : get_class($job);\n    }\n\n    /**\n     * Get the retry delay for an object-based queue handler.\n     *\n     * @param  mixed  $job\n     * @return mixed\n     */\n    public function getJobRetryDelay($job)\n    {\n        if (! method_exists($job, 'retryAfter') && ! isset($job->retryAfter)) {\n            return;\n        }\n\n        $delay = $job->retryAfter ?? $job->retryAfter();\n\n        return $delay instanceof DateTimeInterface\n                        ? $this->secondsUntil($delay) : $delay;\n    }\n\n    /**\n     * Get the expiration timestamp for an object-based queue handler.\n     *\n     * @param  mixed  $job\n     * @return mixed\n     */\n    public function getJobExpiration($job)\n    {\n        if (! method_exists($job, 'retryUntil') && ! isset($job->timeoutAt)) {\n            return;\n        }\n\n        $expiration = $job->timeoutAt ?? $job->retryUntil();\n\n        return $expiration instanceof DateTimeInterface\n                        ? $expiration->getTimestamp() : $expiration;\n    }\n\n    /**\n     * Create a typical, string based queue payload array.\n     *\n     * @param  string  $job\n     * @param  string  $queue\n     * @param  mixed  $data\n     * @return array\n     */\n    protected function createStringPayload($job, $queue, $data)\n    {\n        return $this->withCreatePayloadHooks($queue, [\n            'displayName' => is_string($job) ? explode('@', $job)[0] : null,\n            'job' => $job,\n            'maxTries' => null,\n            'delay' => null,\n            'timeout' => null,\n            'data' => $data,\n        ]);\n    }\n\n    /**\n     * Register a callback to be executed when creating job payloads.\n     *\n     * @param  callable  $callback\n     * @return void\n     */\n    public static function createPayloadUsing($callback)\n    {\n        if (is_null($callback)) {\n            static::$createPayloadCallbacks = [];\n        } else {\n            static::$createPayloadCallbacks[] = $callback;\n        }\n    }\n\n    /**\n     * Create the given payload using any registered payload hooks.\n     *\n     * @param  string  $queue\n     * @param  array  $payload\n     * @return array\n     */\n    protected function withCreatePayloadHooks($queue, array $payload)\n    {\n        if (! empty(static::$createPayloadCallbacks)) {\n            foreach (static::$createPayloadCallbacks as $callback) {\n                $payload = array_merge($payload, call_user_func(\n                    $callback, $this->getConnectionName(), $queue, $payload\n                ));\n            }\n        }\n\n        return $payload;\n    }\n\n    /**\n     * Get the connection name for the queue.\n     *\n     * @return string\n     */\n    public function getConnectionName()\n    {\n        return $this->connectionName;\n    }\n\n    /**\n     * Set the connection name for the queue.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function setConnectionName($name)\n    {\n        $this->connectionName = $name;\n\n        return $this;\n    }\n\n    /**\n     * Set the IoC container instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @return void\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Closure;\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Queue\\Factory as FactoryContract;\nuse Illuminate\\Contracts\\Queue\\Monitor as MonitorContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Queue\\Queue\n */\nclass QueueManager implements FactoryContract, MonitorContract\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The array of resolved queue connections.\n     *\n     * @var array\n     */\n    protected $connections = [];\n\n    /**\n     * The array of resolved queue connectors.\n     *\n     * @var array\n     */\n    protected $connectors = [];\n\n    /**\n     * Create a new queue manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Register an event listener for the before job event.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function before($callback)\n    {\n        $this->app['events']->listen(Events\\JobProcessing::class, $callback);\n    }\n\n    /**\n     * Register an event listener for the after job event.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function after($callback)\n    {\n        $this->app['events']->listen(Events\\JobProcessed::class, $callback);\n    }\n\n    /**\n     * Register an event listener for the exception occurred job event.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function exceptionOccurred($callback)\n    {\n        $this->app['events']->listen(Events\\JobExceptionOccurred::class, $callback);\n    }\n\n    /**\n     * Register an event listener for the daemon queue loop.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function looping($callback)\n    {\n        $this->app['events']->listen(Events\\Looping::class, $callback);\n    }\n\n    /**\n     * Register an event listener for the failed job event.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function failing($callback)\n    {\n        $this->app['events']->listen(Events\\JobFailed::class, $callback);\n    }\n\n    /**\n     * Register an event listener for the daemon queue stopping.\n     *\n     * @param  mixed  $callback\n     * @return void\n     */\n    public function stopping($callback)\n    {\n        $this->app['events']->listen(Events\\WorkerStopping::class, $callback);\n    }\n\n    /**\n     * Determine if the driver is connected.\n     *\n     * @param  string|null  $name\n     * @return bool\n     */\n    public function connected($name = null)\n    {\n        return isset($this->connections[$name ?: $this->getDefaultDriver()]);\n    }\n\n    /**\n     * Resolve a queue connection instance.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connection($name = null)\n    {\n        $name = $name ?: $this->getDefaultDriver();\n\n        // If the connection has not been resolved yet we will resolve it now as all\n        // of the connections are resolved when they are actually needed so we do\n        // not make any unnecessary connection to the various queue end-points.\n        if (! isset($this->connections[$name])) {\n            $this->connections[$name] = $this->resolve($name);\n\n            $this->connections[$name]->setContainer($this->app);\n        }\n\n        return $this->connections[$name];\n    }\n\n    /**\n     * Resolve a queue connection.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    protected function resolve($name)\n    {\n        $config = $this->getConfig($name);\n\n        return $this->getConnector($config['driver'])\n                        ->connect($config)\n                        ->setConnectionName($name);\n    }\n\n    /**\n     * Get the connector for a given driver.\n     *\n     * @param  string  $driver\n     * @return \\Illuminate\\Queue\\Connectors\\ConnectorInterface\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function getConnector($driver)\n    {\n        if (! isset($this->connectors[$driver])) {\n            throw new InvalidArgumentException(\"No connector for [$driver]\");\n        }\n\n        return call_user_func($this->connectors[$driver]);\n    }\n\n    /**\n     * Add a queue connection resolver.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public function extend($driver, Closure $resolver)\n    {\n        return $this->addConnector($driver, $resolver);\n    }\n\n    /**\n     * Add a queue connection resolver.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public function addConnector($driver, Closure $resolver)\n    {\n        $this->connectors[$driver] = $resolver;\n    }\n\n    /**\n     * Get the queue connection configuration.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getConfig($name)\n    {\n        if (! is_null($name) && $name !== 'null') {\n            return $this->app['config'][\"queue.connections.{$name}\"];\n        }\n\n        return ['driver' => 'null'];\n    }\n\n    /**\n     * Get the name of the default queue connection.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['queue.default'];\n    }\n\n    /**\n     * Set the name of the default queue connection.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['queue.default'] = $name;\n    }\n\n    /**\n     * Get the full name for the given connection.\n     *\n     * @param  string|null  $connection\n     * @return string\n     */\n    public function getName($connection = null)\n    {\n        return $connection ?: $this->getDefaultDriver();\n    }\n\n    /**\n     * Determine if the application is in maintenance mode.\n     *\n     * @return bool\n     */\n    public function isDownForMaintenance()\n    {\n        return $this->app->isDownForMaintenance();\n    }\n\n    /**\n     * Dynamically pass calls to the default connection.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->connection()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/QueueServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Support\\Str;\nuse Opis\\Closure\\SerializableClosure;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Queue\\Connectors\\SqsConnector;\nuse Illuminate\\Queue\\Connectors\\NullConnector;\nuse Illuminate\\Queue\\Connectors\\SyncConnector;\nuse Illuminate\\Queue\\Connectors\\RedisConnector;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Queue\\Connectors\\DatabaseConnector;\nuse Illuminate\\Queue\\Failed\\NullFailedJobProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\nuse Illuminate\\Queue\\Connectors\\BeanstalkdConnector;\nuse Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider;\n\nclass QueueServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerManager();\n        $this->registerConnection();\n        $this->registerWorker();\n        $this->registerListener();\n        $this->registerFailedJobServices();\n        $this->registerOpisSecurityKey();\n    }\n\n    /**\n     * Register the queue manager.\n     *\n     * @return void\n     */\n    protected function registerManager()\n    {\n        $this->app->singleton('queue', function ($app) {\n            // Once we have an instance of the queue manager, we will register the various\n            // resolvers for the queue connectors. These connectors are responsible for\n            // creating the classes that accept queue configs and instantiate queues.\n            return tap(new QueueManager($app), function ($manager) {\n                $this->registerConnectors($manager);\n            });\n        });\n    }\n\n    /**\n     * Register the default queue connection binding.\n     *\n     * @return void\n     */\n    protected function registerConnection()\n    {\n        $this->app->singleton('queue.connection', function ($app) {\n            return $app['queue']->connection();\n        });\n    }\n\n    /**\n     * Register the connectors on the queue manager.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    public function registerConnectors($manager)\n    {\n        foreach (['Null', 'Sync', 'Database', 'Redis', 'Beanstalkd', 'Sqs'] as $connector) {\n            $this->{\"register{$connector}Connector\"}($manager);\n        }\n    }\n\n    /**\n     * Register the Null queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerNullConnector($manager)\n    {\n        $manager->addConnector('null', function () {\n            return new NullConnector;\n        });\n    }\n\n    /**\n     * Register the Sync queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerSyncConnector($manager)\n    {\n        $manager->addConnector('sync', function () {\n            return new SyncConnector;\n        });\n    }\n\n    /**\n     * Register the database queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerDatabaseConnector($manager)\n    {\n        $manager->addConnector('database', function () {\n            return new DatabaseConnector($this->app['db']);\n        });\n    }\n\n    /**\n     * Register the Redis queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerRedisConnector($manager)\n    {\n        $manager->addConnector('redis', function () {\n            return new RedisConnector($this->app['redis']);\n        });\n    }\n\n    /**\n     * Register the Beanstalkd queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerBeanstalkdConnector($manager)\n    {\n        $manager->addConnector('beanstalkd', function () {\n            return new BeanstalkdConnector;\n        });\n    }\n\n    /**\n     * Register the Amazon SQS queue connector.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    protected function registerSqsConnector($manager)\n    {\n        $manager->addConnector('sqs', function () {\n            return new SqsConnector;\n        });\n    }\n\n    /**\n     * Register the queue worker.\n     *\n     * @return void\n     */\n    protected function registerWorker()\n    {\n        $this->app->singleton('queue.worker', function () {\n            return new Worker(\n                $this->app['queue'], $this->app['events'], $this->app[ExceptionHandler::class]\n            );\n        });\n    }\n\n    /**\n     * Register the queue listener.\n     *\n     * @return void\n     */\n    protected function registerListener()\n    {\n        $this->app->singleton('queue.listener', function () {\n            return new Listener($this->app->basePath());\n        });\n    }\n\n    /**\n     * Register the failed job services.\n     *\n     * @return void\n     */\n    protected function registerFailedJobServices()\n    {\n        $this->app->singleton('queue.failer', function () {\n            $config = $this->app['config']['queue.failed'];\n\n            return isset($config['table'])\n                        ? $this->databaseFailedJobProvider($config)\n                        : new NullFailedJobProvider;\n        });\n    }\n\n    /**\n     * Create a new database failed job provider.\n     *\n     * @param  array  $config\n     * @return \\Illuminate\\Queue\\Failed\\DatabaseFailedJobProvider\n     */\n    protected function databaseFailedJobProvider($config)\n    {\n        return new DatabaseFailedJobProvider(\n            $this->app['db'], $config['database'], $config['table']\n        );\n    }\n\n    /**\n     * Configure Opis Closure signing for security.\n     *\n     * @return void\n     */\n    protected function registerOpisSecurityKey()\n    {\n        if (Str::startsWith($key = $this->app['config']->get('app.key'), 'base64:')) {\n            $key = base64_decode(substr($key, 7));\n        }\n\n        SerializableClosure::setSecretKey($key);\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            'queue', 'queue.worker', 'queue.listener',\n            'queue.failer', 'queue.connection',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/README.md",
    "content": "## Illuminate Queue\n\nThe Laravel Queue component provides a unified API across a variety of different queue services. Queues allow you to defer the processing of a time consuming task, such as sending an e-mail, until a later time, thus drastically speeding up the web requests to your application.\n\n### Usage Instructions\n\nFirst, create a new Queue `Capsule` manager instance. Similar to the \"Capsule\" provided for the Eloquent ORM, the queue Capsule aims to make configuring the library for usage outside of the Laravel framework as easy as possible.\n\n```PHP\nuse Illuminate\\Queue\\Capsule\\Manager as Queue;\n\n$queue = new Queue;\n\n$queue->addConnection([\n    'driver' => 'beanstalkd',\n    'host' => 'localhost',\n    'queue' => 'default',\n]);\n\n// Make this Capsule instance available globally via static methods... (optional)\n$queue->setAsGlobal();\n```\n\nOnce the Capsule instance has been registered. You may use it like so:\n\n```PHP\n// As an instance...\n$queue->push('SendEmail', ['message' => $message]);\n\n// If setAsGlobal has been called...\nQueue::push('SendEmail', ['message' => $message]);\n```\n\nFor further documentation on using the queue, consult the [Laravel framework documentation](https://laravel.com/docs).\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Queue\\Jobs\\RedisJob;\nuse Illuminate\\Contracts\\Redis\\Factory as Redis;\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\n\nclass RedisQueue extends Queue implements QueueContract\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    protected $redis;\n\n    /**\n     * The connection name.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * The name of the default queue.\n     *\n     * @var string\n     */\n    protected $default;\n\n    /**\n     * The expiration time of a job.\n     *\n     * @var int|null\n     */\n    protected $retryAfter = 60;\n\n    /**\n     * The maximum number of seconds to block for a job.\n     *\n     * @var int|null\n     */\n    protected $blockFor = null;\n\n    /**\n     * Create a new Redis queue instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Redis\\Factory  $redis\n     * @param  string  $default\n     * @param  string|null  $connection\n     * @param  int  $retryAfter\n     * @param  int|null  $blockFor\n     * @return void\n     */\n    public function __construct(Redis $redis, $default = 'default', $connection = null, $retryAfter = 60, $blockFor = null)\n    {\n        $this->redis = $redis;\n        $this->default = $default;\n        $this->blockFor = $blockFor;\n        $this->connection = $connection;\n        $this->retryAfter = $retryAfter;\n    }\n\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        $queue = $this->getQueue($queue);\n\n        return $this->getConnection()->eval(\n            LuaScripts::size(), 3, $queue, $queue.':delayed', $queue.':reserved'\n        );\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  object|string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        return $this->pushRaw($this->createPayload($job, $this->getQueue($queue), $data), $queue);\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        $this->getConnection()->eval(\n            LuaScripts::push(), 2, $this->getQueue($queue),\n            $this->getQueue($queue).':notify', $payload\n        );\n\n        return json_decode($payload, true)['id'] ?? null;\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  object|string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        return $this->laterRaw($delay, $this->createPayload($job, $this->getQueue($queue), $data), $queue);\n    }\n\n    /**\n     * Push a raw job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    protected function laterRaw($delay, $payload, $queue = null)\n    {\n        $this->getConnection()->zadd(\n            $this->getQueue($queue).':delayed', $this->availableAt($delay), $payload\n        );\n\n        return json_decode($payload, true)['id'] ?? null;\n    }\n\n    /**\n     * Create a payload string from the given job and data.\n     *\n     * @param  string  $job\n     * @param  string   $queue\n     * @param  mixed   $data\n     * @return string\n     */\n    protected function createPayloadArray($job, $queue, $data = '')\n    {\n        return array_merge(parent::createPayloadArray($job, $queue, $data), [\n            'id' => $this->getRandomId(),\n            'attempts' => 0,\n        ]);\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        $this->migrate($prefixed = $this->getQueue($queue));\n\n        if (empty($nextJob = $this->retrieveNextJob($prefixed))) {\n            return;\n        }\n\n        [$job, $reserved] = $nextJob;\n\n        if ($reserved) {\n            return new RedisJob(\n                $this->container, $this, $job,\n                $reserved, $this->connectionName, $queue ?: $this->default\n            );\n        }\n    }\n\n    /**\n     * Migrate any delayed or expired jobs onto the primary queue.\n     *\n     * @param  string  $queue\n     * @return void\n     */\n    protected function migrate($queue)\n    {\n        $this->migrateExpiredJobs($queue.':delayed', $queue);\n\n        if (! is_null($this->retryAfter)) {\n            $this->migrateExpiredJobs($queue.':reserved', $queue);\n        }\n    }\n\n    /**\n     * Migrate the delayed jobs that are ready to the regular queue.\n     *\n     * @param  string  $from\n     * @param  string  $to\n     * @return array\n     */\n    public function migrateExpiredJobs($from, $to)\n    {\n        return $this->getConnection()->eval(\n            LuaScripts::migrateExpiredJobs(), 3, $from, $to, $to.':notify', $this->currentTime()\n        );\n    }\n\n    /**\n     * Retrieve the next job from the queue.\n     *\n     * @param  string  $queue\n     * @param  bool  $block\n     * @return array\n     */\n    protected function retrieveNextJob($queue, $block = true)\n    {\n        $nextJob = $this->getConnection()->eval(\n            LuaScripts::pop(), 3, $queue, $queue.':reserved', $queue.':notify',\n            $this->availableAt($this->retryAfter)\n        );\n\n        if (empty($nextJob)) {\n            return [null, null];\n        }\n\n        [$job, $reserved] = $nextJob;\n\n        if (! $job && ! is_null($this->blockFor) && $block &&\n            $this->getConnection()->blpop([$queue.':notify'], $this->blockFor)) {\n            return $this->retrieveNextJob($queue, false);\n        }\n\n        return [$job, $reserved];\n    }\n\n    /**\n     * Delete a reserved job from the queue.\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\Jobs\\RedisJob  $job\n     * @return void\n     */\n    public function deleteReserved($queue, $job)\n    {\n        $this->getConnection()->zrem($this->getQueue($queue).':reserved', $job->getReservedJob());\n    }\n\n    /**\n     * Delete a reserved job from the reserved queue and release it.\n     *\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\Jobs\\RedisJob  $job\n     * @param  int  $delay\n     * @return void\n     */\n    public function deleteAndRelease($queue, $job, $delay)\n    {\n        $queue = $this->getQueue($queue);\n\n        $this->getConnection()->eval(\n            LuaScripts::release(), 2, $queue.':delayed', $queue.':reserved',\n            $job->getReservedJob(), $this->availableAt($delay)\n        );\n    }\n\n    /**\n     * Get a random ID string.\n     *\n     * @return string\n     */\n    protected function getRandomId()\n    {\n        return Str::random(32);\n    }\n\n    /**\n     * Get the queue or return the default.\n     *\n     * @param  string|null  $queue\n     * @return string\n     */\n    public function getQueue($queue)\n    {\n        return 'queues:'.($queue ?: $this->default);\n    }\n\n    /**\n     * Get the connection for the queue.\n     *\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     */\n    protected function getConnection()\n    {\n        return $this->redis->connection($this->connection);\n    }\n\n    /**\n     * Get the underlying Redis instance.\n     *\n     * @return \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    public function getRedis()\n    {\n        return $this->redis;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/SerializableClosure.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Opis\\Closure\\SerializableClosure as OpisSerializableClosure;\n\nclass SerializableClosure extends OpisSerializableClosure\n{\n    use SerializesAndRestoresModelIdentifiers;\n\n    /**\n     * Transform the use variables before serialization.\n     *\n     * @param  array  $data The Closure's use variables\n     * @return array\n     */\n    protected function transformUseVariables($data)\n    {\n        foreach ($data as $key => $value) {\n            $data[$key] = $this->getSerializedPropertyValue($value);\n        }\n\n        return $data;\n    }\n\n    /**\n     * Resolve the use variables after unserialization.\n     *\n     * @param  array  $data The Closure's transformed use variables\n     * @return array\n     */\n    protected function resolveUseVariables($data)\n    {\n        foreach ($data as $key => $value) {\n            $data[$key] = $this->getRestoredPropertyValue($value);\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/SerializesAndRestoresModelIdentifiers.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Illuminate\\Contracts\\Queue\\QueueableEntity;\nuse Illuminate\\Contracts\\Database\\ModelIdentifier;\nuse Illuminate\\Contracts\\Queue\\QueueableCollection;\nuse Illuminate\\Database\\Eloquent\\Collection as EloquentCollection;\n\ntrait SerializesAndRestoresModelIdentifiers\n{\n    /**\n     * Get the property value prepared for serialization.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function getSerializedPropertyValue($value)\n    {\n        if ($value instanceof QueueableCollection) {\n            return new ModelIdentifier(\n                $value->getQueueableClass(),\n                $value->getQueueableIds(),\n                $value->getQueueableRelations(),\n                $value->getQueueableConnection()\n            );\n        }\n\n        if ($value instanceof QueueableEntity) {\n            return new ModelIdentifier(\n                get_class($value),\n                $value->getQueueableId(),\n                $value->getQueueableRelations(),\n                $value->getQueueableConnection()\n            );\n        }\n\n        return $value;\n    }\n\n    /**\n     * Get the restored property value after deserialization.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function getRestoredPropertyValue($value)\n    {\n        if (! $value instanceof ModelIdentifier) {\n            return $value;\n        }\n\n        return is_array($value->id)\n                ? $this->restoreCollection($value)\n                : $this->restoreModel($value);\n    }\n\n    /**\n     * Restore a queueable collection instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Database\\ModelIdentifier  $value\n     * @return \\Illuminate\\Database\\Eloquent\\Collection\n     */\n    protected function restoreCollection($value)\n    {\n        if (! $value->class || count($value->id) === 0) {\n            return new EloquentCollection;\n        }\n\n        return $this->getQueryForModelRestoration(\n            (new $value->class)->setConnection($value->connection), $value->id\n        )->useWritePdo()->get();\n    }\n\n    /**\n     * Restore the model from the model identifier instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Database\\ModelIdentifier  $value\n     * @return \\Illuminate\\Database\\Eloquent\\Model\n     */\n    public function restoreModel($value)\n    {\n        return $this->getQueryForModelRestoration(\n            (new $value->class)->setConnection($value->connection), $value->id\n        )->useWritePdo()->firstOrFail()->load($value->relations ?? []);\n    }\n\n    /**\n     * Get the query for model restoration.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @param  array|int  $ids\n     * @return \\Illuminate\\Database\\Eloquent\\Builder\n     */\n    protected function getQueryForModelRestoration($model, $ids)\n    {\n        return $model->newQueryForRestoration($ids);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/SerializesModels.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse ReflectionClass;\nuse ReflectionProperty;\n\ntrait SerializesModels\n{\n    use SerializesAndRestoresModelIdentifiers;\n\n    /**\n     * Prepare the instance for serialization.\n     *\n     * @return array\n     */\n    public function __sleep()\n    {\n        $properties = (new ReflectionClass($this))->getProperties();\n\n        foreach ($properties as $property) {\n            $property->setValue($this, $this->getSerializedPropertyValue(\n                $this->getPropertyValue($property)\n            ));\n        }\n\n        return array_values(array_filter(array_map(function ($p) {\n            return $p->isStatic() ? null : $p->getName();\n        }, $properties)));\n    }\n\n    /**\n     * Restore the model after serialization.\n     *\n     * @return void\n     */\n    public function __wakeup()\n    {\n        foreach ((new ReflectionClass($this))->getProperties() as $property) {\n            if ($property->isStatic()) {\n                continue;\n            }\n\n            $property->setValue($this, $this->getRestoredPropertyValue(\n                $this->getPropertyValue($property)\n            ));\n        }\n    }\n\n    /**\n     * Get the property value for the given property.\n     *\n     * @param  \\ReflectionProperty  $property\n     * @return mixed\n     */\n    protected function getPropertyValue(ReflectionProperty $property)\n    {\n        $property->setAccessible(true);\n\n        return $property->getValue($this);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/SqsQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Aws\\Sqs\\SqsClient;\nuse Illuminate\\Queue\\Jobs\\SqsJob;\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\n\nclass SqsQueue extends Queue implements QueueContract\n{\n    /**\n     * The Amazon SQS instance.\n     *\n     * @var \\Aws\\Sqs\\SqsClient\n     */\n    protected $sqs;\n\n    /**\n     * The name of the default queue.\n     *\n     * @var string\n     */\n    protected $default;\n\n    /**\n     * The queue URL prefix.\n     *\n     * @var string\n     */\n    protected $prefix;\n\n    /**\n     * Create a new Amazon SQS queue instance.\n     *\n     * @param  \\Aws\\Sqs\\SqsClient  $sqs\n     * @param  string  $default\n     * @param  string  $prefix\n     * @return void\n     */\n    public function __construct(SqsClient $sqs, $default, $prefix = '')\n    {\n        $this->sqs = $sqs;\n        $this->prefix = $prefix;\n        $this->default = $default;\n    }\n\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        $response = $this->sqs->getQueueAttributes([\n            'QueueUrl' => $this->getQueue($queue),\n            'AttributeNames' => ['ApproximateNumberOfMessages'],\n        ]);\n\n        $attributes = $response->get('Attributes');\n\n        return (int) $attributes['ApproximateNumberOfMessages'];\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        return $this->pushRaw($this->createPayload($job, $queue ?: $this->default, $data), $queue);\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        return $this->sqs->sendMessage([\n            'QueueUrl' => $this->getQueue($queue), 'MessageBody' => $payload,\n        ])->get('MessageId');\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        return $this->sqs->sendMessage([\n            'QueueUrl' => $this->getQueue($queue),\n            'MessageBody' => $this->createPayload($job, $queue ?: $this->default, $data),\n            'DelaySeconds' => $this->secondsUntil($delay),\n        ])->get('MessageId');\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        $response = $this->sqs->receiveMessage([\n            'QueueUrl' => $queue = $this->getQueue($queue),\n            'AttributeNames' => ['ApproximateReceiveCount'],\n        ]);\n\n        if (! is_null($response['Messages']) && count($response['Messages']) > 0) {\n            return new SqsJob(\n                $this->container, $this->sqs, $response['Messages'][0],\n                $this->connectionName, $queue\n            );\n        }\n    }\n\n    /**\n     * Get the queue or return the default.\n     *\n     * @param  string|null  $queue\n     * @return string\n     */\n    public function getQueue($queue)\n    {\n        $queue = $queue ?: $this->default;\n\n        return filter_var($queue, FILTER_VALIDATE_URL) === false\n                        ? rtrim($this->prefix, '/').'/'.$queue : $queue;\n    }\n\n    /**\n     * Get the underlying SQS instance.\n     *\n     * @return \\Aws\\Sqs\\SqsClient\n     */\n    public function getSqs()\n    {\n        return $this->sqs;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/SyncQueue.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Exception;\nuse Throwable;\nuse Illuminate\\Queue\\Jobs\\SyncJob;\nuse Illuminate\\Contracts\\Queue\\Job;\nuse Illuminate\\Contracts\\Queue\\Queue as QueueContract;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\nclass SyncQueue extends Queue implements QueueContract\n{\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        return 0;\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     *\n     * @throws \\Exception|\\Throwable\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        $queueJob = $this->resolveJob($this->createPayload($job, $queue, $data), $queue);\n\n        try {\n            $this->raiseBeforeJobEvent($queueJob);\n\n            $queueJob->fire();\n\n            $this->raiseAfterJobEvent($queueJob);\n        } catch (Exception $e) {\n            $this->handleException($queueJob, $e);\n        } catch (Throwable $e) {\n            $this->handleException($queueJob, new FatalThrowableError($e));\n        }\n\n        return 0;\n    }\n\n    /**\n     * Resolve a Sync job instance.\n     *\n     * @param  string  $payload\n     * @param  string  $queue\n     * @return \\Illuminate\\Queue\\Jobs\\SyncJob\n     */\n    protected function resolveJob($payload, $queue)\n    {\n        return new SyncJob($this->container, $payload, $this->connectionName, $queue);\n    }\n\n    /**\n     * Raise the before queue job event.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    protected function raiseBeforeJobEvent(Job $job)\n    {\n        if ($this->container->bound('events')) {\n            $this->container['events']->dispatch(new Events\\JobProcessing($this->connectionName, $job));\n        }\n    }\n\n    /**\n     * Raise the after queue job event.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    protected function raiseAfterJobEvent(Job $job)\n    {\n        if ($this->container->bound('events')) {\n            $this->container['events']->dispatch(new Events\\JobProcessed($this->connectionName, $job));\n        }\n    }\n\n    /**\n     * Raise the exception occurred queue job event.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function raiseExceptionOccurredJobEvent(Job $job, $e)\n    {\n        if ($this->container->bound('events')) {\n            $this->container['events']->dispatch(new Events\\JobExceptionOccurred($this->connectionName, $job, $e));\n        }\n    }\n\n    /**\n     * Handle an exception that occurred while processing a job.\n     *\n     * @param  \\Illuminate\\Queue\\Jobs\\Job  $queueJob\n     * @param  \\Exception  $e\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleException($queueJob, $e)\n    {\n        $this->raiseExceptionOccurredJobEvent($queueJob, $e);\n\n        $queueJob->fail($e);\n\n        throw $e;\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        //\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        return $this->push($job, $data, $queue);\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/Worker.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nuse Exception;\nuse Throwable;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Database\\DetectsLostConnections;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\nuse Illuminate\\Contracts\\Cache\\Repository as CacheContract;\n\nclass Worker\n{\n    use DetectsLostConnections;\n\n    /**\n     * The queue manager instance.\n     *\n     * @var \\Illuminate\\Queue\\QueueManager\n     */\n    protected $manager;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The cache repository implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    protected $cache;\n\n    /**\n     * The exception handler instance.\n     *\n     * @var \\Illuminate\\Contracts\\Debug\\ExceptionHandler\n     */\n    protected $exceptions;\n\n    /**\n     * Indicates if the worker should exit.\n     *\n     * @var bool\n     */\n    public $shouldQuit = false;\n\n    /**\n     * Indicates if the worker is paused.\n     *\n     * @var bool\n     */\n    public $paused = false;\n\n    /**\n     * Create a new queue worker.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @param  \\Illuminate\\Contracts\\Debug\\ExceptionHandler  $exceptions\n     * @return void\n     */\n    public function __construct(QueueManager $manager,\n                                Dispatcher $events,\n                                ExceptionHandler $exceptions)\n    {\n        $this->events = $events;\n        $this->manager = $manager;\n        $this->exceptions = $exceptions;\n    }\n\n    /**\n     * Listen to the given queue in a loop.\n     *\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return void\n     */\n    public function daemon($connectionName, $queue, WorkerOptions $options)\n    {\n        if ($this->supportsAsyncSignals()) {\n            $this->listenForSignals();\n        }\n\n        $lastRestart = $this->getTimestampOfLastQueueRestart();\n\n        while (true) {\n            // Before reserving any jobs, we will make sure this queue is not paused and\n            // if it is we will just pause this worker for a given amount of time and\n            // make sure we do not need to kill this worker process off completely.\n            if (! $this->daemonShouldRun($options, $connectionName, $queue)) {\n                $this->pauseWorker($options, $lastRestart);\n\n                continue;\n            }\n\n            // First, we will attempt to get the next job off of the queue. We will also\n            // register the timeout handler and reset the alarm for this job so it is\n            // not stuck in a frozen state forever. Then, we can fire off this job.\n            $job = $this->getNextJob(\n                $this->manager->connection($connectionName), $queue\n            );\n\n            if ($this->supportsAsyncSignals()) {\n                $this->registerTimeoutHandler($job, $options);\n            }\n\n            // If the daemon should run (not in maintenance mode, etc.), then we can run\n            // fire off this job for processing. Otherwise, we will need to sleep the\n            // worker so no more jobs are processed until they should be processed.\n            if ($job) {\n                $this->runJob($job, $connectionName, $options);\n            } else {\n                $this->sleep($options->sleep);\n            }\n\n            // Finally, we will check to see if we have exceeded our memory limits or if\n            // the queue should restart based on other indications. If so, we'll stop\n            // this worker and let whatever is \"monitoring\" it restart the process.\n            $this->stopIfNecessary($options, $lastRestart, $job);\n        }\n    }\n\n    /**\n     * Register the worker timeout handler.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job|null  $job\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return void\n     */\n    protected function registerTimeoutHandler($job, WorkerOptions $options)\n    {\n        // We will register a signal handler for the alarm signal so that we can kill this\n        // process if it is running too long because it has frozen. This uses the async\n        // signals supported in recent versions of PHP to accomplish it conveniently.\n        pcntl_signal(SIGALRM, function () {\n            $this->kill(1);\n        });\n\n        pcntl_alarm(\n            max($this->timeoutForJob($job, $options), 0)\n        );\n    }\n\n    /**\n     * Get the appropriate timeout for the given job.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job|null  $job\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return int\n     */\n    protected function timeoutForJob($job, WorkerOptions $options)\n    {\n        return $job && ! is_null($job->timeout()) ? $job->timeout() : $options->timeout;\n    }\n\n    /**\n     * Determine if the daemon should process on this iteration.\n     *\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @return bool\n     */\n    protected function daemonShouldRun(WorkerOptions $options, $connectionName, $queue)\n    {\n        return ! (($this->manager->isDownForMaintenance() && ! $options->force) ||\n            $this->paused ||\n            $this->events->until(new Events\\Looping($connectionName, $queue)) === false);\n    }\n\n    /**\n     * Pause the worker for the current loop.\n     *\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @param  int  $lastRestart\n     * @return void\n     */\n    protected function pauseWorker(WorkerOptions $options, $lastRestart)\n    {\n        $this->sleep($options->sleep > 0 ? $options->sleep : 1);\n\n        $this->stopIfNecessary($options, $lastRestart);\n    }\n\n    /**\n     * Stop the process if necessary.\n     *\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @param  int  $lastRestart\n     * @param  mixed  $job\n     */\n    protected function stopIfNecessary(WorkerOptions $options, $lastRestart, $job = null)\n    {\n        if ($this->shouldQuit) {\n            $this->stop();\n        } elseif ($this->memoryExceeded($options->memory)) {\n            $this->stop(12);\n        } elseif ($this->queueShouldRestart($lastRestart)) {\n            $this->stop();\n        } elseif ($options->stopWhenEmpty && is_null($job)) {\n            $this->stop();\n        }\n    }\n\n    /**\n     * Process the next job on the queue.\n     *\n     * @param  string  $connectionName\n     * @param  string  $queue\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return void\n     */\n    public function runNextJob($connectionName, $queue, WorkerOptions $options)\n    {\n        $job = $this->getNextJob(\n            $this->manager->connection($connectionName), $queue\n        );\n\n        // If we're able to pull a job off of the stack, we will process it and then return\n        // from this method. If there is no job on the queue, we will \"sleep\" the worker\n        // for the specified number of seconds, then keep processing jobs after sleep.\n        if ($job) {\n            return $this->runJob($job, $connectionName, $options);\n        }\n\n        $this->sleep($options->sleep);\n    }\n\n    /**\n     * Get the next job from the queue connection.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Queue  $connection\n     * @param  string  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    protected function getNextJob($connection, $queue)\n    {\n        try {\n            foreach (explode(',', $queue) as $queue) {\n                if (! is_null($job = $connection->pop($queue))) {\n                    return $job;\n                }\n            }\n        } catch (Exception $e) {\n            $this->exceptions->report($e);\n\n            $this->stopWorkerIfLostConnection($e);\n\n            $this->sleep(1);\n        } catch (Throwable $e) {\n            $this->exceptions->report($e = new FatalThrowableError($e));\n\n            $this->stopWorkerIfLostConnection($e);\n\n            $this->sleep(1);\n        }\n    }\n\n    /**\n     * Process the given job.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return void\n     */\n    protected function runJob($job, $connectionName, WorkerOptions $options)\n    {\n        try {\n            return $this->process($connectionName, $job, $options);\n        } catch (Exception $e) {\n            $this->exceptions->report($e);\n\n            $this->stopWorkerIfLostConnection($e);\n        } catch (Throwable $e) {\n            $this->exceptions->report($e = new FatalThrowableError($e));\n\n            $this->stopWorkerIfLostConnection($e);\n        }\n    }\n\n    /**\n     * Stop the worker if we have lost connection to a database.\n     *\n     * @param  \\Throwable  $e\n     * @return void\n     */\n    protected function stopWorkerIfLostConnection($e)\n    {\n        if ($this->causedByLostConnection($e)) {\n            $this->shouldQuit = true;\n        }\n    }\n\n    /**\n     * Process the given job from the queue.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @return void\n     *\n     * @throws \\Throwable\n     */\n    public function process($connectionName, $job, WorkerOptions $options)\n    {\n        try {\n            // First we will raise the before job event and determine if the job has already ran\n            // over its maximum attempt limits, which could primarily happen when this job is\n            // continually timing out and not actually throwing any exceptions from itself.\n            $this->raiseBeforeJobEvent($connectionName, $job);\n\n            $this->markJobAsFailedIfAlreadyExceedsMaxAttempts(\n                $connectionName, $job, (int) $options->maxTries\n            );\n\n            // Here we will fire off the job and let it process. We will catch any exceptions so\n            // they can be reported to the developers logs, etc. Once the job is finished the\n            // proper events will be fired to let any listeners know this job has finished.\n            $job->fire();\n\n            $this->raiseAfterJobEvent($connectionName, $job);\n        } catch (Exception $e) {\n            $this->handleJobException($connectionName, $job, $options, $e);\n        } catch (Throwable $e) {\n            $this->handleJobException(\n                $connectionName, $job, $options, new FatalThrowableError($e)\n            );\n        }\n    }\n\n    /**\n     * Handle an exception that occurred while the job was running.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Illuminate\\Queue\\WorkerOptions  $options\n     * @param  \\Exception  $e\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleJobException($connectionName, $job, WorkerOptions $options, $e)\n    {\n        try {\n            // First, we will go ahead and mark the job as failed if it will exceed the maximum\n            // attempts it is allowed to run the next time we process it. If so we will just\n            // go ahead and mark it as failed now so we do not have to release this again.\n            if (! $job->hasFailed()) {\n                $this->markJobAsFailedIfWillExceedMaxAttempts(\n                    $connectionName, $job, (int) $options->maxTries, $e\n                );\n            }\n\n            $this->raiseExceptionOccurredJobEvent(\n                $connectionName, $job, $e\n            );\n        } finally {\n            // If we catch an exception, we will attempt to release the job back onto the queue\n            // so it is not lost entirely. This'll let the job be retried at a later time by\n            // another listener (or this same one). We will re-throw this exception after.\n            if (! $job->isDeleted() && ! $job->isReleased() && ! $job->hasFailed()) {\n                $job->release(\n                    method_exists($job, 'delaySeconds') && ! is_null($job->delaySeconds())\n                                ? $job->delaySeconds()\n                                : $options->delay\n                );\n            }\n        }\n\n        throw $e;\n    }\n\n    /**\n     * Mark the given job as failed if it has exceeded the maximum allowed attempts.\n     *\n     * This will likely be because the job previously exceeded a timeout.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  int  $maxTries\n     * @return void\n     */\n    protected function markJobAsFailedIfAlreadyExceedsMaxAttempts($connectionName, $job, $maxTries)\n    {\n        $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries;\n\n        $timeoutAt = $job->timeoutAt();\n\n        if ($timeoutAt && Carbon::now()->getTimestamp() <= $timeoutAt) {\n            return;\n        }\n\n        if (! $timeoutAt && ($maxTries === 0 || $job->attempts() <= $maxTries)) {\n            return;\n        }\n\n        $this->failJob($job, $e = new MaxAttemptsExceededException(\n            $job->resolveName().' has been attempted too many times or run too long. The job may have previously timed out.'\n        ));\n\n        throw $e;\n    }\n\n    /**\n     * Mark the given job as failed if it has exceeded the maximum allowed attempts.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  int  $maxTries\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function markJobAsFailedIfWillExceedMaxAttempts($connectionName, $job, $maxTries, $e)\n    {\n        $maxTries = ! is_null($job->maxTries()) ? $job->maxTries() : $maxTries;\n\n        if ($job->timeoutAt() && $job->timeoutAt() <= Carbon::now()->getTimestamp()) {\n            $this->failJob($job, $e);\n        }\n\n        if ($maxTries > 0 && $job->attempts() >= $maxTries) {\n            $this->failJob($job, $e);\n        }\n    }\n\n    /**\n     * Mark the given job as failed and raise the relevant event.\n     *\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function failJob($job, $e)\n    {\n        return $job->fail($e);\n    }\n\n    /**\n     * Raise the before queue job event.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    protected function raiseBeforeJobEvent($connectionName, $job)\n    {\n        $this->events->dispatch(new Events\\JobProcessing(\n            $connectionName, $job\n        ));\n    }\n\n    /**\n     * Raise the after queue job event.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @return void\n     */\n    protected function raiseAfterJobEvent($connectionName, $job)\n    {\n        $this->events->dispatch(new Events\\JobProcessed(\n            $connectionName, $job\n        ));\n    }\n\n    /**\n     * Raise the exception occurred queue job event.\n     *\n     * @param  string  $connectionName\n     * @param  \\Illuminate\\Contracts\\Queue\\Job  $job\n     * @param  \\Exception  $e\n     * @return void\n     */\n    protected function raiseExceptionOccurredJobEvent($connectionName, $job, $e)\n    {\n        $this->events->dispatch(new Events\\JobExceptionOccurred(\n            $connectionName, $job, $e\n        ));\n    }\n\n    /**\n     * Determine if the queue worker should restart.\n     *\n     * @param  int|null  $lastRestart\n     * @return bool\n     */\n    protected function queueShouldRestart($lastRestart)\n    {\n        return $this->getTimestampOfLastQueueRestart() != $lastRestart;\n    }\n\n    /**\n     * Get the last queue restart timestamp, or null.\n     *\n     * @return int|null\n     */\n    protected function getTimestampOfLastQueueRestart()\n    {\n        if ($this->cache) {\n            return $this->cache->get('illuminate:queue:restart');\n        }\n    }\n\n    /**\n     * Enable async signals for the process.\n     *\n     * @return void\n     */\n    protected function listenForSignals()\n    {\n        pcntl_async_signals(true);\n\n        pcntl_signal(SIGTERM, function () {\n            $this->shouldQuit = true;\n        });\n\n        pcntl_signal(SIGUSR2, function () {\n            $this->paused = true;\n        });\n\n        pcntl_signal(SIGCONT, function () {\n            $this->paused = false;\n        });\n    }\n\n    /**\n     * Determine if \"async\" signals are supported.\n     *\n     * @return bool\n     */\n    protected function supportsAsyncSignals()\n    {\n        return extension_loaded('pcntl');\n    }\n\n    /**\n     * Determine if the memory limit has been exceeded.\n     *\n     * @param  int   $memoryLimit\n     * @return bool\n     */\n    public function memoryExceeded($memoryLimit)\n    {\n        return (memory_get_usage(true) / 1024 / 1024) >= $memoryLimit;\n    }\n\n    /**\n     * Stop listening and bail out of the script.\n     *\n     * @param  int  $status\n     * @return void\n     */\n    public function stop($status = 0)\n    {\n        $this->events->dispatch(new Events\\WorkerStopping($status));\n\n        exit($status);\n    }\n\n    /**\n     * Kill the process.\n     *\n     * @param  int  $status\n     * @return void\n     */\n    public function kill($status = 0)\n    {\n        $this->events->dispatch(new Events\\WorkerStopping($status));\n\n        if (extension_loaded('posix')) {\n            posix_kill(getmypid(), SIGKILL);\n        }\n\n        exit($status);\n    }\n\n    /**\n     * Sleep the script for a given number of seconds.\n     *\n     * @param  int|float   $seconds\n     * @return void\n     */\n    public function sleep($seconds)\n    {\n        if ($seconds < 1) {\n            usleep($seconds * 1000000);\n        } else {\n            sleep($seconds);\n        }\n    }\n\n    /**\n     * Set the cache repository implementation.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Repository  $cache\n     * @return void\n     */\n    public function setCache(CacheContract $cache)\n    {\n        $this->cache = $cache;\n    }\n\n    /**\n     * Get the queue manager instance.\n     *\n     * @return \\Illuminate\\Queue\\QueueManager\n     */\n    public function getManager()\n    {\n        return $this->manager;\n    }\n\n    /**\n     * Set the queue manager instance.\n     *\n     * @param  \\Illuminate\\Queue\\QueueManager  $manager\n     * @return void\n     */\n    public function setManager(QueueManager $manager)\n    {\n        $this->manager = $manager;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/WorkerOptions.php",
    "content": "<?php\n\nnamespace Illuminate\\Queue;\n\nclass WorkerOptions\n{\n    /**\n     * The number of seconds before a released job will be available.\n     *\n     * @var int\n     */\n    public $delay;\n\n    /**\n     * The maximum amount of RAM the worker may consume.\n     *\n     * @var int\n     */\n    public $memory;\n\n    /**\n     * The maximum number of seconds a child worker may run.\n     *\n     * @var int\n     */\n    public $timeout;\n\n    /**\n     * The number of seconds to wait in between polling the queue.\n     *\n     * @var int\n     */\n    public $sleep;\n\n    /**\n     * The maximum amount of times a job may be attempted.\n     *\n     * @var int\n     */\n    public $maxTries;\n\n    /**\n     * Indicates if the worker should run in maintenance mode.\n     *\n     * @var bool\n     */\n    public $force;\n\n    /**\n     * Indicates if the worker should stop when queue is empty.\n     *\n     * @var bool\n     */\n    public $stopWhenEmpty;\n\n    /**\n     * Create a new worker options instance.\n     *\n     * @param  int  $delay\n     * @param  int  $memory\n     * @param  int  $timeout\n     * @param  int  $sleep\n     * @param  int  $maxTries\n     * @param  bool  $force\n     * @param  bool  $stopWhenEmpty\n     * @return void\n     */\n    public function __construct($delay = 0, $memory = 128, $timeout = 60, $sleep = 3, $maxTries = 0, $force = false, $stopWhenEmpty = false)\n    {\n        $this->delay = $delay;\n        $this->sleep = $sleep;\n        $this->force = $force;\n        $this->memory = $memory;\n        $this->timeout = $timeout;\n        $this->maxTries = $maxTries;\n        $this->stopWhenEmpty = $stopWhenEmpty;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Queue/composer.json",
    "content": "{\n    \"name\": \"illuminate/queue\",\n    \"description\": \"The Illuminate Queue package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/console\": \"5.8.*\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/database\": \"5.8.*\",\n        \"illuminate/filesystem\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"opis/closure\": \"^3.1\",\n        \"symfony/debug\": \"^4.2\",\n        \"symfony/process\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Queue\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"ext-pcntl\": \"Required to use all features of the queue worker.\",\n        \"ext-posix\": \"Required to use all features of the queue worker.\",\n        \"aws/aws-sdk-php\": \"Required to use the SQS queue driver (^3.0).\",\n        \"illuminate/redis\": \"Required to use the Redis queue driver (5.8.*).\",\n        \"pda/pheanstalk\": \"Required to use the Beanstalk queue driver (^4.0).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connections/Connection.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connections;\n\nuse Closure;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Redis\\Events\\CommandExecuted;\nuse Illuminate\\Redis\\Limiters\\DurationLimiterBuilder;\nuse Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder;\n\n/**\n * @mixin \\Predis\\Client\n */\nabstract class Connection\n{\n    /**\n     * The Predis client.\n     *\n     * @var \\Predis\\Client\n     */\n    protected $client;\n\n    /**\n     * The Redis connection name.\n     *\n     * @var string|null\n     */\n    protected $name;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @param  string  $method\n     * @return void\n     */\n    abstract public function createSubscription($channels, Closure $callback, $method = 'subscribe');\n\n    /**\n     * Funnel a callback for a maximum number of simultaneous executions.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Redis\\Limiters\\ConcurrencyLimiterBuilder\n     */\n    public function funnel($name)\n    {\n        return new ConcurrencyLimiterBuilder($this, $name);\n    }\n\n    /**\n     * Throttle a callback for a maximum number of executions over a given duration.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Redis\\Limiters\\DurationLimiterBuilder\n     */\n    public function throttle($name)\n    {\n        return new DurationLimiterBuilder($this, $name);\n    }\n\n    /**\n     * Get the underlying Redis client.\n     *\n     * @return mixed\n     */\n    public function client()\n    {\n        return $this->client;\n    }\n\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function subscribe($channels, Closure $callback)\n    {\n        return $this->createSubscription($channels, $callback, __FUNCTION__);\n    }\n\n    /**\n     * Subscribe to a set of given channels with wildcards.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function psubscribe($channels, Closure $callback)\n    {\n        return $this->createSubscription($channels, $callback, __FUNCTION__);\n    }\n\n    /**\n     * Run a command against the Redis database.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function command($method, array $parameters = [])\n    {\n        $start = microtime(true);\n\n        $result = $this->client->{$method}(...$parameters);\n\n        $time = round((microtime(true) - $start) * 1000, 2);\n\n        if (isset($this->events)) {\n            $this->event(new CommandExecuted($method, $parameters, $time, $this));\n        }\n\n        return $result;\n    }\n\n    /**\n     * Fire the given event if possible.\n     *\n     * @param  mixed  $event\n     * @return void\n     */\n    protected function event($event)\n    {\n        if (isset($this->events)) {\n            $this->events->dispatch($event);\n        }\n    }\n\n    /**\n     * Register a Redis command listener with the connection.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function listen(Closure $callback)\n    {\n        if (isset($this->events)) {\n            $this->events->listen(CommandExecuted::class, $callback);\n        }\n    }\n\n    /**\n     * Get the connection name.\n     *\n     * @return string|null\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    /**\n     * Set the connections name.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function setName($name)\n    {\n        $this->name = $name;\n\n        return $this;\n    }\n\n    /**\n     * Get the event dispatcher used by the connection.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public function getEventDispatcher()\n    {\n        return $this->events;\n    }\n\n    /**\n     * Set the event dispatcher instance on the connection.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function setEventDispatcher(Dispatcher $events)\n    {\n        $this->events = $events;\n    }\n\n    /**\n     * Unset the event dispatcher instance on the connection.\n     *\n     * @return void\n     */\n    public function unsetEventDispatcher()\n    {\n        $this->events = null;\n    }\n\n    /**\n     * Pass other method calls down to the underlying client.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->command($method, $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisClusterConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connections;\n\nclass PhpRedisClusterConnection extends PhpRedisConnection\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connections/PhpRedisConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connections;\n\nuse Redis;\nuse Closure;\nuse RedisCluster;\nuse Illuminate\\Contracts\\Redis\\Connection as ConnectionContract;\n\n/**\n * @mixin \\Redis\n */\nclass PhpRedisConnection extends Connection implements ConnectionContract\n{\n    /**\n     * Create a new PhpRedis connection.\n     *\n     * @param  \\Redis  $client\n     * @return void\n     */\n    public function __construct($client)\n    {\n        $this->client = $client;\n    }\n\n    /**\n     * Returns the value of the given key.\n     *\n     * @param  string  $key\n     * @return string|null\n     */\n    public function get($key)\n    {\n        $result = $this->command('get', [$key]);\n\n        return $result !== false ? $result : null;\n    }\n\n    /**\n     * Get the values of all the given keys.\n     *\n     * @param  array  $keys\n     * @return array\n     */\n    public function mget(array $keys)\n    {\n        return array_map(function ($value) {\n            return $value !== false ? $value : null;\n        }, $this->command('mget', [$keys]));\n    }\n\n    /**\n     * Determine if the given keys exist.\n     *\n     * @param  dynamic  $keys\n     * @return int\n     */\n    public function exists(...$keys)\n    {\n        $keys = collect($keys)->map(function ($key) {\n            return $this->applyPrefix($key);\n        })->all();\n\n        return $this->executeRaw(array_merge(['exists'], $keys));\n    }\n\n    /**\n     * Set the string value in argument as value of the key.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @param  string|null  $expireResolution\n     * @param  int|null  $expireTTL\n     * @param  string|null  $flag\n     * @return bool\n     */\n    public function set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null)\n    {\n        return $this->command('set', [\n            $key,\n            $value,\n            $expireResolution ? [$flag, $expireResolution => $expireTTL] : null,\n        ]);\n    }\n\n    /**\n     * Set the given key if it doesn't exist.\n     *\n     * @param  string  $key\n     * @param  string  $value\n     * @return int\n     */\n    public function setnx($key, $value)\n    {\n        return (int) $this->command('setnx', [$key, $value]);\n    }\n\n    /**\n     * Get the value of the given hash fields.\n     *\n     * @param  string  $key\n     * @param  dynamic  $dictionary\n     * @return int\n     */\n    public function hmget($key, ...$dictionary)\n    {\n        if (count($dictionary) === 1) {\n            $dictionary = $dictionary[0];\n        }\n\n        return array_values($this->command('hmget', [$key, $dictionary]));\n    }\n\n    /**\n     * Set the given hash fields to their respective values.\n     *\n     * @param  string  $key\n     * @param  dynamic  $dictionary\n     * @return int\n     */\n    public function hmset($key, ...$dictionary)\n    {\n        if (count($dictionary) === 1) {\n            $dictionary = $dictionary[0];\n        } else {\n            $input = collect($dictionary);\n\n            $dictionary = $input->nth(2)->combine($input->nth(2, 1))->toArray();\n        }\n\n        return $this->command('hmset', [$key, $dictionary]);\n    }\n\n    /**\n     * Set the given hash field if it doesn't exist.\n     *\n     * @param  string  $hash\n     * @param  string  $key\n     * @param  string  $value\n     * @return int\n     */\n    public function hsetnx($hash, $key, $value)\n    {\n        return (int) $this->command('hsetnx', [$hash, $key, $value]);\n    }\n\n    /**\n     * Removes the first count occurrences of the value element from the list.\n     *\n     * @param  string  $key\n     * @param  int  $count\n     * @param  $value  $value\n     * @return int|false\n     */\n    public function lrem($key, $count, $value)\n    {\n        return $this->command('lrem', [$key, $value, $count]);\n    }\n\n    /**\n     * Removes and returns the first element of the list stored at key.\n     *\n     * @param  dynamic  $arguments\n     * @return array|null\n     */\n    public function blpop(...$arguments)\n    {\n        $result = $this->command('blpop', $arguments);\n\n        return empty($result) ? null : $result;\n    }\n\n    /**\n     * Removes and returns the last element of the list stored at key.\n     *\n     * @param  dynamic  $arguments\n     * @return array|null\n     */\n    public function brpop(...$arguments)\n    {\n        $result = $this->command('brpop', $arguments);\n\n        return empty($result) ? null : $result;\n    }\n\n    /**\n     * Removes and returns a random element from the set value at key.\n     *\n     * @param  string  $key\n     * @param  int|null  $count\n     * @return mixed|false\n     */\n    public function spop($key, $count = null)\n    {\n        return $this->command('spop', [$key]);\n    }\n\n    /**\n     * Add one or more members to a sorted set or update its score if it already exists.\n     *\n     * @param  string  $key\n     * @param  dynamic  $dictionary\n     * @return int\n     */\n    public function zadd($key, ...$dictionary)\n    {\n        if (is_array(end($dictionary))) {\n            foreach (array_pop($dictionary) as $member => $score) {\n                $dictionary[] = $score;\n                $dictionary[] = $member;\n            }\n        }\n\n        $key = $this->applyPrefix($key);\n\n        return $this->executeRaw(array_merge(['zadd', $key], $dictionary));\n    }\n\n    /**\n     * Return elements with score between $min and $max.\n     *\n     * @param  string  $key\n     * @param  mixed  $min\n     * @param  mixed  $max\n     * @param  array  $options\n     * @return int\n     */\n    public function zrangebyscore($key, $min, $max, $options = [])\n    {\n        if (isset($options['limit'])) {\n            $options['limit'] = [\n                $options['limit']['offset'],\n                $options['limit']['count'],\n            ];\n        }\n\n        return $this->command('zRangeByScore', [$key, $min, $max, $options]);\n    }\n\n    /**\n     * Return elements with score between $min and $max.\n     *\n     * @param  string  $key\n     * @param  mixed  $min\n     * @param  mixed  $max\n     * @param  array  $options\n     * @return int\n     */\n    public function zrevrangebyscore($key, $min, $max, $options = [])\n    {\n        if (isset($options['limit'])) {\n            $options['limit'] = [\n                $options['limit']['offset'],\n                $options['limit']['count'],\n            ];\n        }\n\n        return $this->command('zRevRangeByScore', [$key, $min, $max, $options]);\n    }\n\n    /**\n     * Find the intersection between sets and store in a new set.\n     *\n     * @param  string  $output\n     * @param  array  $keys\n     * @param  array  $options\n     * @return int\n     */\n    public function zinterstore($output, $keys, $options = [])\n    {\n        return $this->command('zInter', [$output, $keys,\n            $options['weights'] ?? null,\n            $options['aggregate'] ?? 'sum',\n        ]);\n    }\n\n    /**\n     * Find the union between sets and store in a new set.\n     *\n     * @param  string  $output\n     * @param  array  $keys\n     * @param  array  $options\n     * @return int\n     */\n    public function zunionstore($output, $keys, $options = [])\n    {\n        return $this->command('zUnion', [$output, $keys,\n            $options['weights'] ?? null,\n            $options['aggregate'] ?? 'sum',\n        ]);\n    }\n\n    /**\n     * Execute commands in a pipeline.\n     *\n     * @param  callable|null  $callback\n     * @return \\Redis|array\n     */\n    public function pipeline(callable $callback = null)\n    {\n        $pipeline = $this->client()->pipeline();\n\n        return is_null($callback)\n            ? $pipeline\n            : tap($pipeline, $callback)->exec();\n    }\n\n    /**\n     * Execute commands in a transaction.\n     *\n     * @param  callable|null  $callback\n     * @return \\Redis|array\n     */\n    public function transaction(callable $callback = null)\n    {\n        $transaction = $this->client()->multi();\n\n        return is_null($callback)\n            ? $transaction\n            : tap($transaction, $callback)->exec();\n    }\n\n    /**\n     * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself.\n     *\n     * @param  string  $script\n     * @param  int  $numkeys\n     * @param  mixed  $arguments\n     * @return mixed\n     */\n    public function evalsha($script, $numkeys, ...$arguments)\n    {\n        return $this->command('evalsha', [\n            $this->script('load', $script), $arguments, $numkeys,\n        ]);\n    }\n\n    /**\n     * Evaluate a script and return its result.\n     *\n     * @param  string  $script\n     * @param  int  $numberOfKeys\n     * @param  dynamic  $arguments\n     * @return mixed\n     */\n    public function eval($script, $numberOfKeys, ...$arguments)\n    {\n        return $this->command('eval', [$script, $arguments, $numberOfKeys]);\n    }\n\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function subscribe($channels, Closure $callback)\n    {\n        $this->client->subscribe((array) $channels, function ($redis, $channel, $message) use ($callback) {\n            $callback($message, $channel);\n        });\n    }\n\n    /**\n     * Subscribe to a set of given channels with wildcards.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function psubscribe($channels, Closure $callback)\n    {\n        $this->client->psubscribe((array) $channels, function ($redis, $pattern, $channel, $message) use ($callback) {\n            $callback($message, $channel);\n        });\n    }\n\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @param  string  $method\n     * @return void\n     */\n    public function createSubscription($channels, Closure $callback, $method = 'subscribe')\n    {\n        //\n    }\n\n    /**\n     * Flush the selected Redis database.\n     *\n     * @return void\n     */\n    public function flushdb()\n    {\n        if (! $this->client instanceof RedisCluster) {\n            return $this->command('flushdb');\n        }\n\n        foreach ($this->client->_masters() as [$host, $port]) {\n            tap(new Redis)->connect($host, $port)->flushDb();\n        }\n    }\n\n    /**\n     * Execute a raw command.\n     *\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function executeRaw(array $parameters)\n    {\n        return $this->command('rawCommand', $parameters);\n    }\n\n    /**\n     * Disconnects from the Redis instance.\n     *\n     * @return void\n     */\n    public function disconnect()\n    {\n        $this->client->close();\n    }\n\n    /**\n     * Apply prefix to the given key if necessary.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    private function applyPrefix($key)\n    {\n        $prefix = (string) $this->client->getOption(Redis::OPT_PREFIX);\n\n        return $prefix.$key;\n    }\n\n    /**\n     * Pass other method calls down to the underlying client.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return parent::__call(strtolower($method), $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisClusterConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connections;\n\nclass PredisClusterConnection extends PredisConnection\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connections/PredisConnection.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connections;\n\nuse Closure;\nuse Predis\\Command\\ServerFlushDatabase;\nuse Predis\\Connection\\Aggregate\\ClusterInterface;\nuse Illuminate\\Contracts\\Redis\\Connection as ConnectionContract;\n\n/**\n * @mixin \\Predis\\Client\n */\nclass PredisConnection extends Connection implements ConnectionContract\n{\n    /**\n     * Create a new Predis connection.\n     *\n     * @param  \\Predis\\Client  $client\n     * @return void\n     */\n    public function __construct($client)\n    {\n        $this->client = $client;\n    }\n\n    /**\n     * Subscribe to a set of given channels for messages.\n     *\n     * @param  array|string  $channels\n     * @param  \\Closure  $callback\n     * @param  string  $method\n     * @return void\n     */\n    public function createSubscription($channels, Closure $callback, $method = 'subscribe')\n    {\n        $loop = $this->pubSubLoop();\n\n        call_user_func_array([$loop, $method], (array) $channels);\n\n        foreach ($loop as $message) {\n            if ($message->kind === 'message' || $message->kind === 'pmessage') {\n                call_user_func($callback, $message->payload, $message->channel);\n            }\n        }\n\n        unset($loop);\n    }\n\n    /**\n     * Flush the selected Redis database.\n     *\n     * @return void\n     */\n    public function flushdb()\n    {\n        if (! $this->client->getConnection() instanceof ClusterInterface) {\n            return $this->command('flushdb');\n        }\n\n        foreach ($this->getConnection() as $node) {\n            $node->executeCommand(new ServerFlushDatabase);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connectors;\n\nuse Redis;\nuse RedisCluster;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Redis\\Connections\\PhpRedisConnection;\nuse Illuminate\\Redis\\Connections\\PhpRedisClusterConnection;\n\nclass PhpRedisConnector\n{\n    /**\n     * Create a new clustered PhpRedis connection.\n     *\n     * @param  array  $config\n     * @param  array  $options\n     * @return \\Illuminate\\Redis\\Connections\\PhpRedisConnection\n     */\n    public function connect(array $config, array $options)\n    {\n        return new PhpRedisConnection($this->createClient(array_merge(\n            $config, $options, Arr::pull($config, 'options', [])\n        )));\n    }\n\n    /**\n     * Create a new clustered PhpRedis connection.\n     *\n     * @param  array  $config\n     * @param  array  $clusterOptions\n     * @param  array  $options\n     * @return \\Illuminate\\Redis\\Connections\\PhpRedisClusterConnection\n     */\n    public function connectToCluster(array $config, array $clusterOptions, array $options)\n    {\n        $options = array_merge($options, $clusterOptions, Arr::pull($config, 'options', []));\n\n        return new PhpRedisClusterConnection($this->createRedisClusterInstance(\n            array_map([$this, 'buildClusterConnectionString'], $config), $options\n        ));\n    }\n\n    /**\n     * Build a single cluster seed string from array.\n     *\n     * @param  array  $server\n     * @return string\n     */\n    protected function buildClusterConnectionString(array $server)\n    {\n        return $server['host'].':'.$server['port'].'?'.Arr::query(Arr::only($server, [\n            'database', 'password', 'prefix', 'read_timeout',\n        ]));\n    }\n\n    /**\n     * Create the Redis client instance.\n     *\n     * @param  array  $config\n     * @return \\Redis\n     */\n    protected function createClient(array $config)\n    {\n        return tap(new Redis, function ($client) use ($config) {\n            $this->establishConnection($client, $config);\n\n            if (! empty($config['password'])) {\n                $client->auth($config['password']);\n            }\n\n            if (! empty($config['database'])) {\n                $client->select($config['database']);\n            }\n\n            if (! empty($config['prefix'])) {\n                $client->setOption(Redis::OPT_PREFIX, $config['prefix']);\n            }\n\n            if (! empty($config['read_timeout'])) {\n                $client->setOption(Redis::OPT_READ_TIMEOUT, $config['read_timeout']);\n            }\n        });\n    }\n\n    /**\n     * Establish a connection with the Redis host.\n     *\n     * @param  \\Redis  $client\n     * @param  array  $config\n     * @return void\n     */\n    protected function establishConnection($client, array $config)\n    {\n        $persistent = $config['persistent'] ?? false;\n\n        $parameters = [\n            $config['host'],\n            $config['port'],\n            Arr::get($config, 'timeout', 0.0),\n            $persistent ? Arr::get($config, 'persistent_id', null) : null,\n            Arr::get($config, 'retry_interval', 0),\n        ];\n\n        if (version_compare(phpversion('redis'), '3.1.3', '>=')) {\n            $parameters[] = Arr::get($config, 'read_timeout', 0.0);\n        }\n\n        $client->{($persistent ? 'pconnect' : 'connect')}(...$parameters);\n    }\n\n    /**\n     * Create a new redis cluster instance.\n     *\n     * @param  array  $servers\n     * @param  array  $options\n     * @return \\RedisCluster\n     */\n    protected function createRedisClusterInstance(array $servers, array $options)\n    {\n        if (version_compare(phpversion('redis'), '4.3.0', '>=')) {\n            return new RedisCluster(\n                null,\n                array_values($servers),\n                $options['timeout'] ?? 0,\n                $options['read_timeout'] ?? 0,\n                isset($options['persistent']) && $options['persistent'],\n                $options['password'] ?? null\n            );\n        }\n\n        return new RedisCluster(\n            null,\n            array_values($servers),\n            $options['timeout'] ?? 0,\n            $options['read_timeout'] ?? 0,\n            isset($options['persistent']) && $options['persistent']\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Connectors;\n\nuse Predis\\Client;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Redis\\Connections\\PredisConnection;\nuse Illuminate\\Redis\\Connections\\PredisClusterConnection;\n\nclass PredisConnector\n{\n    /**\n     * Create a new clustered Predis connection.\n     *\n     * @param  array  $config\n     * @param  array  $options\n     * @return \\Illuminate\\Redis\\Connections\\PredisConnection\n     */\n    public function connect(array $config, array $options)\n    {\n        $formattedOptions = array_merge(\n            ['timeout' => 10.0], $options, Arr::pull($config, 'options', [])\n        );\n\n        return new PredisConnection(new Client($config, $formattedOptions));\n    }\n\n    /**\n     * Create a new clustered Predis connection.\n     *\n     * @param  array  $config\n     * @param  array  $clusterOptions\n     * @param  array  $options\n     * @return \\Illuminate\\Redis\\Connections\\PredisClusterConnection\n     */\n    public function connectToCluster(array $config, array $clusterOptions, array $options)\n    {\n        $clusterSpecificOptions = Arr::pull($config, 'options', []);\n\n        return new PredisClusterConnection(new Client(array_values($config), array_merge(\n            $options, $clusterOptions, $clusterSpecificOptions\n        )));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Events/CommandExecuted.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Events;\n\nclass CommandExecuted\n{\n    /**\n     * The Redis command that was executed.\n     *\n     * @var string\n     */\n    public $command;\n\n    /**\n     * The array of command parameters.\n     *\n     * @var array\n     */\n    public $parameters;\n\n    /**\n     * The number of milliseconds it took to execute the command.\n     *\n     * @var float\n     */\n    public $time;\n\n    /**\n     * The Redis connection instance.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    public $connection;\n\n    /**\n     * The Redis connection name.\n     *\n     * @var string\n     */\n    public $connectionName;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  string  $command\n     * @param  array  $parameters\n     * @param  float|null  $time\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $connection\n     * @return void\n     */\n    public function __construct($command, $parameters, $time, $connection)\n    {\n        $this->time = $time;\n        $this->command = $command;\n        $this->parameters = $parameters;\n        $this->connection = $connection;\n        $this->connectionName = $connection->getName();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiter.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Limiters;\n\nuse Exception;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Redis\\LimiterTimeoutException;\n\nclass ConcurrencyLimiter\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    protected $redis;\n\n    /**\n     * The name of the limiter.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The allowed number of concurrent tasks.\n     *\n     * @var int\n     */\n    protected $maxLocks;\n\n    /**\n     * The number of seconds a slot should be maintained.\n     *\n     * @var int\n     */\n    protected $releaseAfter;\n\n    /**\n     * Create a new concurrency limiter instance.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $redis\n     * @param  string  $name\n     * @param  int  $maxLocks\n     * @param  int  $releaseAfter\n     * @return void\n     */\n    public function __construct($redis, $name, $maxLocks, $releaseAfter)\n    {\n        $this->name = $name;\n        $this->redis = $redis;\n        $this->maxLocks = $maxLocks;\n        $this->releaseAfter = $releaseAfter;\n    }\n\n    /**\n     * Attempt to acquire the lock for the given number of seconds.\n     *\n     * @param  int  $timeout\n     * @param  callable|null  $callback\n     * @return bool\n     *\n     * @throws \\Illuminate\\Contracts\\Redis\\LimiterTimeoutException\n     * @throws \\Exception\n     */\n    public function block($timeout, $callback = null)\n    {\n        $starting = time();\n\n        $id = Str::random(20);\n\n        while (! $slot = $this->acquire($id)) {\n            if (time() - $timeout >= $starting) {\n                throw new LimiterTimeoutException;\n            }\n\n            usleep(250 * 1000);\n        }\n\n        if (is_callable($callback)) {\n            try {\n                return tap($callback(), function () use ($slot, $id) {\n                    $this->release($slot, $id);\n                });\n            } catch (Exception $exception) {\n                $this->release($slot, $id);\n\n                throw $exception;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @param string $id A unique identifier for this lock\n     *\n     * @return mixed\n     */\n    protected function acquire($id)\n    {\n        $slots = array_map(function ($i) {\n            return $this->name.$i;\n        }, range(1, $this->maxLocks));\n\n        return $this->redis->eval(...array_merge(\n            [$this->lockScript(), count($slots)],\n            array_merge($slots, [$this->name, $this->releaseAfter, $id])\n        ));\n    }\n\n    /**\n     * Get the Lua script for acquiring a lock.\n     *\n     * KEYS    - The keys that represent available slots\n     * ARGV[1] - The limiter name\n     * ARGV[2] - The number of seconds the slot should be reserved\n     * ARGV[3] - The unique identifier for this lock\n     *\n     * @return string\n     */\n    protected function lockScript()\n    {\n        return <<<'LUA'\nfor index, value in pairs(redis.call('mget', unpack(KEYS))) do\n    if not value then\n        redis.call('set', ARGV[1]..index, ARGV[3], \"EX\", ARGV[2])\n        return ARGV[1]..index\n    end\nend\nLUA;\n    }\n\n    /**\n     * Release the lock.\n     *\n     * @param  string $key\n     * @param  string $id\n     * @return void\n     */\n    protected function release($key, $id)\n    {\n        $this->redis->eval($this->releaseScript(), 1, $key, $id);\n    }\n\n    /**\n     * Get the Lua script to atomically release a lock.\n     *\n     * KEYS[1] - The name of the lock\n     * ARGV[1] - The unique identifier for this lock\n     *\n     * @return string\n     */\n    protected function releaseScript()\n    {\n        return <<<'LUA'\nif redis.call('get', KEYS[1]) == ARGV[1]\nthen\n    return redis.call('del', KEYS[1])\nelse\n    return 0\nend\nLUA;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Limiters/ConcurrencyLimiterBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Limiters;\n\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Redis\\LimiterTimeoutException;\n\nclass ConcurrencyLimiterBuilder\n{\n    use InteractsWithTime;\n\n    /**\n     * The Redis connection.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    public $connection;\n\n    /**\n     * The name of the lock.\n     *\n     * @var string\n     */\n    public $name;\n\n    /**\n     * The maximum number of entities that can hold the lock at the same time.\n     *\n     * @var int\n     */\n    public $maxLocks;\n\n    /**\n     * The number of seconds to maintain the lock until it is automatically released.\n     *\n     * @var int\n     */\n    public $releaseAfter = 60;\n\n    /**\n     * The amount of time to block until a lock is available.\n     *\n     * @var int\n     */\n    public $timeout = 3;\n\n    /**\n     * Create a new builder instance.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $connection\n     * @param  string  $name\n     * @return void\n     */\n    public function __construct($connection, $name)\n    {\n        $this->name = $name;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Set the maximum number of locks that can obtained per time window.\n     *\n     * @param  int  $maxLocks\n     * @return $this\n     */\n    public function limit($maxLocks)\n    {\n        $this->maxLocks = $maxLocks;\n\n        return $this;\n    }\n\n    /**\n     * Set the number of seconds until the lock will be released.\n     *\n     * @param  int  $releaseAfter\n     * @return $this\n     */\n    public function releaseAfter($releaseAfter)\n    {\n        $this->releaseAfter = $this->secondsUntil($releaseAfter);\n\n        return $this;\n    }\n\n    /**\n     * Set the amount of time to block until a lock is available.\n     *\n     * @param  int  $timeout\n     * @return $this\n     */\n    public function block($timeout)\n    {\n        $this->timeout = $timeout;\n\n        return $this;\n    }\n\n    /**\n     * Execute the given callback if a lock is obtained, otherwise call the failure callback.\n     *\n     * @param  callable  $callback\n     * @param  callable|null  $failure\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Redis\\LimiterTimeoutException\n     */\n    public function then(callable $callback, callable $failure = null)\n    {\n        try {\n            return (new ConcurrencyLimiter(\n                $this->connection, $this->name, $this->maxLocks, $this->releaseAfter\n            ))->block($this->timeout, $callback);\n        } catch (LimiterTimeoutException $e) {\n            if ($failure) {\n                return $failure($e);\n            }\n\n            throw $e;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiter.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Limiters;\n\nuse Illuminate\\Contracts\\Redis\\LimiterTimeoutException;\n\nclass DurationLimiter\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    private $redis;\n\n    /**\n     * The unique name of the lock.\n     *\n     * @var string\n     */\n    private $name;\n\n    /**\n     * The allowed number of concurrent tasks.\n     *\n     * @var int\n     */\n    private $maxLocks;\n\n    /**\n     * The number of seconds a slot should be maintained.\n     *\n     * @var int\n     */\n    private $decay;\n\n    /**\n     * The timestamp of the end of the current duration.\n     *\n     * @var int\n     */\n    public $decaysAt;\n\n    /**\n     * The number of remaining slots.\n     *\n     * @var int\n     */\n    public $remaining;\n\n    /**\n     * Create a new duration limiter instance.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection $redis\n     * @param  string $name\n     * @param  int $maxLocks\n     * @param  int $decay\n     * @return void\n     */\n    public function __construct($redis, $name, $maxLocks, $decay)\n    {\n        $this->name = $name;\n        $this->decay = $decay;\n        $this->redis = $redis;\n        $this->maxLocks = $maxLocks;\n    }\n\n    /**\n     * Attempt to acquire the lock for the given number of seconds.\n     *\n     * @param  int $timeout\n     * @param  callable|null $callback\n     * @return bool\n     *\n     * @throws \\Illuminate\\Contracts\\Redis\\LimiterTimeoutException\n     */\n    public function block($timeout, $callback = null)\n    {\n        $starting = time();\n\n        while (! $this->acquire()) {\n            if (time() - $timeout >= $starting) {\n                throw new LimiterTimeoutException;\n            }\n\n            usleep(750 * 1000);\n        }\n\n        if (is_callable($callback)) {\n            $callback();\n        }\n\n        return true;\n    }\n\n    /**\n     * Attempt to acquire the lock.\n     *\n     * @return bool\n     */\n    public function acquire()\n    {\n        $results = $this->redis->eval(\n            $this->luaScript(), 1, $this->name, microtime(true), time(), $this->decay, $this->maxLocks\n        );\n\n        $this->decaysAt = $results[1];\n\n        $this->remaining = max(0, $results[2]);\n\n        return (bool) $results[0];\n    }\n\n    /**\n     * Get the Lua script for acquiring a lock.\n     *\n     * KEYS[1] - The limiter name\n     * ARGV[1] - Current time in microseconds\n     * ARGV[2] - Current time in seconds\n     * ARGV[3] - Duration of the bucket\n     * ARGV[4] - Allowed number of tasks\n     *\n     * @return string\n     */\n    protected function luaScript()\n    {\n        return <<<'LUA'\nlocal function reset()\n    redis.call('HMSET', KEYS[1], 'start', ARGV[2], 'end', ARGV[2] + ARGV[3], 'count', 1)\n    return redis.call('EXPIRE', KEYS[1], ARGV[3] * 2)\nend\n\nif redis.call('EXISTS', KEYS[1]) == 0 then\n    return {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1}\nend\n\nif ARGV[1] >= redis.call('HGET', KEYS[1], 'start') and ARGV[1] <= redis.call('HGET', KEYS[1], 'end') then\n    return {\n        tonumber(redis.call('HINCRBY', KEYS[1], 'count', 1)) <= tonumber(ARGV[4]),\n        redis.call('HGET', KEYS[1], 'end'),\n        ARGV[4] - redis.call('HGET', KEYS[1], 'count')\n    }\nend\n\nreturn {reset(), ARGV[2] + ARGV[3], ARGV[4] - 1}\nLUA;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/Limiters/DurationLimiterBuilder.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis\\Limiters;\n\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Redis\\LimiterTimeoutException;\n\nclass DurationLimiterBuilder\n{\n    use InteractsWithTime;\n\n    /**\n     * The Redis connection.\n     *\n     * @var \\Illuminate\\Redis\\Connections\\Connection\n     */\n    public $connection;\n\n    /**\n     * The name of the lock.\n     *\n     * @var string\n     */\n    public $name;\n\n    /**\n     * The maximum number of locks that can obtained per time window.\n     *\n     * @var int\n     */\n    public $maxLocks;\n\n    /**\n     * The amount of time the lock window is maintained.\n     *\n     * @var int\n     */\n    public $decay;\n\n    /**\n     * The amount of time to block until a lock is available.\n     *\n     * @var int\n     */\n    public $timeout = 3;\n\n    /**\n     * Create a new builder instance.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $connection\n     * @param  string  $name\n     * @return void\n     */\n    public function __construct($connection, $name)\n    {\n        $this->name = $name;\n        $this->connection = $connection;\n    }\n\n    /**\n     * Set the maximum number of locks that can obtained per time window.\n     *\n     * @param  int  $maxLocks\n     * @return $this\n     */\n    public function allow($maxLocks)\n    {\n        $this->maxLocks = $maxLocks;\n\n        return $this;\n    }\n\n    /**\n     * Set the amount of time the lock window is maintained.\n     *\n     * @param  int  $decay\n     * @return $this\n     */\n    public function every($decay)\n    {\n        $this->decay = $this->secondsUntil($decay);\n\n        return $this;\n    }\n\n    /**\n     * Set the amount of time to block until a lock is available.\n     *\n     * @param  int  $timeout\n     * @return $this\n     */\n    public function block($timeout)\n    {\n        $this->timeout = $timeout;\n\n        return $this;\n    }\n\n    /**\n     * Execute the given callback if a lock is obtained, otherwise call the failure callback.\n     *\n     * @param  callable  $callback\n     * @param  callable|null  $failure\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Contracts\\Redis\\LimiterTimeoutException\n     */\n    public function then(callable $callback, callable $failure = null)\n    {\n        try {\n            return (new DurationLimiter(\n                $this->connection, $this->name, $this->maxLocks, $this->decay\n            ))->block($this->timeout, $callback);\n        } catch (LimiterTimeoutException $e) {\n            if ($failure) {\n                return $failure($e);\n            }\n\n            throw $e;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis;\n\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\Redis\\Factory;\nuse Illuminate\\Redis\\Connections\\Connection;\nuse Illuminate\\Support\\ConfigurationUrlParser;\n\n/**\n * @mixin \\Illuminate\\Redis\\Connections\\Connection\n */\nclass RedisManager implements Factory\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The name of the default driver.\n     *\n     * @var string\n     */\n    protected $driver;\n\n    /**\n     * The Redis server configurations.\n     *\n     * @var array\n     */\n    protected $config;\n\n    /**\n     * The Redis connections.\n     *\n     * @var mixed\n     */\n    protected $connections;\n\n    /**\n     * Indicates whether event dispatcher is set on connections.\n     *\n     * @var bool\n     */\n    protected $events = false;\n\n    /**\n     * Create a new Redis manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @param  string  $driver\n     * @param  array  $config\n     * @return void\n     */\n    public function __construct($app, $driver, array $config)\n    {\n        $this->app = $app;\n        $this->driver = $driver;\n        $this->config = $config;\n    }\n\n    /**\n     * Get a Redis connection by name.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     */\n    public function connection($name = null)\n    {\n        $name = $name ?: 'default';\n\n        if (isset($this->connections[$name])) {\n            return $this->connections[$name];\n        }\n\n        return $this->connections[$name] = $this->configure(\n            $this->resolve($name), $name\n        );\n    }\n\n    /**\n     * Resolve the given connection by name.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function resolve($name = null)\n    {\n        $name = $name ?: 'default';\n\n        $options = $this->config['options'] ?? [];\n\n        if (isset($this->config[$name])) {\n            return $this->connector()->connect(\n                $this->parseConnectionConfiguration($this->config[$name]),\n                $options\n            );\n        }\n\n        if (isset($this->config['clusters'][$name])) {\n            return $this->resolveCluster($name);\n        }\n\n        throw new InvalidArgumentException(\"Redis connection [{$name}] not configured.\");\n    }\n\n    /**\n     * Resolve the given cluster connection by name.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     */\n    protected function resolveCluster($name)\n    {\n        return $this->connector()->connectToCluster(\n            array_map(function ($config) {\n                return $this->parseConnectionConfiguration($config);\n            }, $this->config['clusters'][$name]),\n            $this->config['clusters']['options'] ?? [],\n            $this->config['options'] ?? []\n        );\n    }\n\n    /**\n     * Configure the given connection to prepare it for commands.\n     *\n     * @param  \\Illuminate\\Redis\\Connections\\Connection  $connection\n     * @param  string  $name\n     * @return \\Illuminate\\Redis\\Connections\\Connection\n     */\n    protected function configure(Connection $connection, $name)\n    {\n        $connection->setName($name);\n\n        if ($this->events && $this->app->bound('events')) {\n            $connection->setEventDispatcher($this->app->make('events'));\n        }\n\n        return $connection;\n    }\n\n    /**\n     * Get the connector instance for the current driver.\n     *\n     * @return \\Illuminate\\Redis\\Connectors\\PhpRedisConnector|\\Illuminate\\Redis\\Connectors\\PredisConnector\n     */\n    protected function connector()\n    {\n        switch ($this->driver) {\n            case 'predis':\n                return new Connectors\\PredisConnector;\n            case 'phpredis':\n                return new Connectors\\PhpRedisConnector;\n        }\n    }\n\n    /**\n     * Parse the Redis connection configuration.\n     *\n     * @param  mixed  $config\n     * @return array\n     */\n    protected function parseConnectionConfiguration($config)\n    {\n        $parsed = (new ConfigurationUrlParser)->parseConfiguration($config);\n\n        return array_filter($parsed, function ($key) {\n            return ! in_array($key, ['driver', 'username'], true);\n        }, ARRAY_FILTER_USE_KEY);\n    }\n\n    /**\n     * Return all of the created connections.\n     *\n     * @return array\n     */\n    public function connections()\n    {\n        return $this->connections;\n    }\n\n    /**\n     * Enable the firing of Redis command events.\n     *\n     * @return void\n     */\n    public function enableEvents()\n    {\n        $this->events = true;\n    }\n\n    /**\n     * Disable the firing of Redis command events.\n     *\n     * @return void\n     */\n    public function disableEvents()\n    {\n        $this->events = false;\n    }\n\n    /**\n     * Set the default driver.\n     *\n     * @param  string  $driver\n     * @return void\n     */\n    public function setDriver($driver)\n    {\n        $this->driver = $driver;\n    }\n\n    /**\n     * Pass methods onto the default Redis connection.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->connection()->{$method}(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/RedisServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Redis;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass RedisServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('redis', function ($app) {\n            $config = $app->make('config')->get('database.redis', []);\n\n            return new RedisManager($app, Arr::pull($config, 'client', 'predis'), $config);\n        });\n\n        $this->app->bind('redis.connection', function ($app) {\n            return $app['redis']->connection();\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['redis', 'redis.connection'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Redis/composer.json",
    "content": "{\n    \"name\": \"illuminate/redis\",\n    \"description\": \"The Illuminate Redis package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"predis/predis\": \"^1.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Redis\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/ControllerMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Console;\n\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Console\\GeneratorCommand;\nuse Symfony\\Component\\Console\\Input\\InputOption;\n\nclass ControllerMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:controller';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new controller class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Controller';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        $stub = null;\n\n        if ($this->option('parent')) {\n            $stub = '/stubs/controller.nested.stub';\n        } elseif ($this->option('model')) {\n            $stub = '/stubs/controller.model.stub';\n        } elseif ($this->option('invokable')) {\n            $stub = '/stubs/controller.invokable.stub';\n        } elseif ($this->option('resource')) {\n            $stub = '/stubs/controller.stub';\n        }\n\n        if ($this->option('api') && is_null($stub)) {\n            $stub = '/stubs/controller.api.stub';\n        } elseif ($this->option('api') && ! is_null($stub) && ! $this->option('invokable')) {\n            $stub = str_replace('.stub', '.api.stub', $stub);\n        }\n\n        $stub = $stub ?? '/stubs/controller.plain.stub';\n\n        return __DIR__.$stub;\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Http\\Controllers';\n    }\n\n    /**\n     * Build the class with the given name.\n     *\n     * Remove the base controller import if we are already in base namespace.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function buildClass($name)\n    {\n        $controllerNamespace = $this->getNamespace($name);\n\n        $replace = [];\n\n        if ($this->option('parent')) {\n            $replace = $this->buildParentReplacements();\n        }\n\n        if ($this->option('model')) {\n            $replace = $this->buildModelReplacements($replace);\n        }\n\n        $replace[\"use {$controllerNamespace}\\Controller;\\n\"] = '';\n\n        return str_replace(\n            array_keys($replace), array_values($replace), parent::buildClass($name)\n        );\n    }\n\n    /**\n     * Build the replacements for a parent controller.\n     *\n     * @return array\n     */\n    protected function buildParentReplacements()\n    {\n        $parentModelClass = $this->parseModel($this->option('parent'));\n\n        if (! class_exists($parentModelClass)) {\n            if ($this->confirm(\"A {$parentModelClass} model does not exist. Do you want to generate it?\", true)) {\n                $this->call('make:model', ['name' => $parentModelClass]);\n            }\n        }\n\n        return [\n            'ParentDummyFullModelClass' => $parentModelClass,\n            'ParentDummyModelClass' => class_basename($parentModelClass),\n            'ParentDummyModelVariable' => lcfirst(class_basename($parentModelClass)),\n        ];\n    }\n\n    /**\n     * Build the model replacement values.\n     *\n     * @param  array  $replace\n     * @return array\n     */\n    protected function buildModelReplacements(array $replace)\n    {\n        $modelClass = $this->parseModel($this->option('model'));\n\n        if (! class_exists($modelClass)) {\n            if ($this->confirm(\"A {$modelClass} model does not exist. Do you want to generate it?\", true)) {\n                $this->call('make:model', ['name' => $modelClass]);\n            }\n        }\n\n        return array_merge($replace, [\n            'DummyFullModelClass' => $modelClass,\n            'DummyModelClass' => class_basename($modelClass),\n            'DummyModelVariable' => lcfirst(class_basename($modelClass)),\n        ]);\n    }\n\n    /**\n     * Get the fully-qualified model class name.\n     *\n     * @param  string  $model\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function parseModel($model)\n    {\n        if (preg_match('([^A-Za-z0-9_/\\\\\\\\])', $model)) {\n            throw new InvalidArgumentException('Model name contains invalid characters.');\n        }\n\n        $model = trim(str_replace('/', '\\\\', $model), '\\\\');\n\n        if (! Str::startsWith($model, $rootNamespace = $this->laravel->getNamespace())) {\n            $model = $rootNamespace.$model;\n        }\n\n        return $model;\n    }\n\n    /**\n     * Get the console command options.\n     *\n     * @return array\n     */\n    protected function getOptions()\n    {\n        return [\n            ['model', 'm', InputOption::VALUE_OPTIONAL, 'Generate a resource controller for the given model.'],\n            ['resource', 'r', InputOption::VALUE_NONE, 'Generate a resource controller class.'],\n            ['invokable', 'i', InputOption::VALUE_NONE, 'Generate a single method, invokable controller class.'],\n            ['parent', 'p', InputOption::VALUE_OPTIONAL, 'Generate a nested resource controller class.'],\n            ['api', null, InputOption::VALUE_NONE, 'Exclude the create and edit methods from the controller.'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/MiddlewareMakeCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Console;\n\nuse Illuminate\\Console\\GeneratorCommand;\n\nclass MiddlewareMakeCommand extends GeneratorCommand\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'make:middleware';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a new middleware class';\n\n    /**\n     * The type of class being generated.\n     *\n     * @var string\n     */\n    protected $type = 'Middleware';\n\n    /**\n     * Get the stub file for the generator.\n     *\n     * @return string\n     */\n    protected function getStub()\n    {\n        return __DIR__.'/stubs/middleware.stub';\n    }\n\n    /**\n     * Get the default namespace for the class.\n     *\n     * @param  string  $rootNamespace\n     * @return string\n     */\n    protected function getDefaultNamespace($rootNamespace)\n    {\n        return $rootNamespace.'\\Http\\Middleware';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.api.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index()\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show($id)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, $id)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy($id)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.invokable.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Handle the incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function __invoke(Request $request)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.model.api.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullModelClass;\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index()\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show(DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy(DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.model.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullModelClass;\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index()\n    {\n        //\n    }\n\n    /**\n     * Show the form for creating a new resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function create()\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show(DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Show the form for editing the specified resource.\n     *\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function edit(DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy(DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.nested.api.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullModelClass;\nuse ParentDummyFullModelClass;\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index(ParentDummyModelClass $ParentDummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request, ParentDummyModelClass $ParentDummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show(ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy(ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.nested.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse DummyFullModelClass;\nuse ParentDummyFullModelClass;\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index(ParentDummyModelClass $ParentDummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Show the form for creating a new resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function create(ParentDummyModelClass $ParentDummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request, ParentDummyModelClass $ParentDummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show(ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Show the form for editing the specified resource.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function edit(ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  \\ParentDummyFullModelClass  $ParentDummyModelVariable\n     * @param  \\DummyFullModelClass  $DummyModelVariable\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy(ParentDummyModelClass $ParentDummyModelVariable, DummyModelClass $DummyModelVariable)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.plain.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/controller.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Illuminate\\Http\\Request;\nuse DummyRootNamespaceHttp\\Controllers\\Controller;\n\nclass DummyClass extends Controller\n{\n    /**\n     * Display a listing of the resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function index()\n    {\n        //\n    }\n\n    /**\n     * Show the form for creating a new resource.\n     *\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function create()\n    {\n        //\n    }\n\n    /**\n     * Store a newly created resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function store(Request $request)\n    {\n        //\n    }\n\n    /**\n     * Display the specified resource.\n     *\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function show($id)\n    {\n        //\n    }\n\n    /**\n     * Show the form for editing the specified resource.\n     *\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function edit($id)\n    {\n        //\n    }\n\n    /**\n     * Update the specified resource in storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function update(Request $request, $id)\n    {\n        //\n    }\n\n    /**\n     * Remove the specified resource from storage.\n     *\n     * @param  int  $id\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function destroy($id)\n    {\n        //\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Console/stubs/middleware.stub",
    "content": "<?php\n\nnamespace DummyNamespace;\n\nuse Closure;\n\nclass DummyClass\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Contracts/ControllerDispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Contracts;\n\nuse Illuminate\\Routing\\Route;\n\ninterface ControllerDispatcher\n{\n    /**\n     * Dispatch a request to a given controller and method.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  mixed  $controller\n     * @param  string  $method\n     * @return mixed\n     */\n    public function dispatch(Route $route, $controller, $method);\n\n    /**\n     * Get the middleware for the controller instance.\n     *\n     * @param  \\Illuminate\\Routing\\Controller  $controller\n     * @param  string  $method\n     * @return array\n     */\n    public function getMiddleware($controller, $method);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Controller.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse BadMethodCallException;\n\nabstract class Controller\n{\n    /**\n     * The middleware registered on the controller.\n     *\n     * @var array\n     */\n    protected $middleware = [];\n\n    /**\n     * Register middleware on the controller.\n     *\n     * @param  array|string|\\Closure  $middleware\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\ControllerMiddlewareOptions\n     */\n    public function middleware($middleware, array $options = [])\n    {\n        foreach ((array) $middleware as $m) {\n            $this->middleware[] = [\n                'middleware' => $m,\n                'options' => &$options,\n            ];\n        }\n\n        return new ControllerMiddlewareOptions($options);\n    }\n\n    /**\n     * Get the middleware assigned to the controller.\n     *\n     * @return array\n     */\n    public function getMiddleware()\n    {\n        return $this->middleware;\n    }\n\n    /**\n     * Execute an action on the controller.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function callAction($method, $parameters)\n    {\n        return call_user_func_array([$this, $method], $parameters);\n    }\n\n    /**\n     * Handle calls to missing methods on the controller.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        throw new BadMethodCallException(sprintf(\n            'Method %s::%s does not exist.', static::class, $method\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Routing\\Contracts\\ControllerDispatcher as ControllerDispatcherContract;\n\nclass ControllerDispatcher implements ControllerDispatcherContract\n{\n    use RouteDependencyResolverTrait;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Create a new controller dispatcher instance.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @return void\n     */\n    public function __construct(Container $container)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Dispatch a request to a given controller and method.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  mixed  $controller\n     * @param  string  $method\n     * @return mixed\n     */\n    public function dispatch(Route $route, $controller, $method)\n    {\n        $parameters = $this->resolveClassMethodDependencies(\n            $route->parametersWithoutNulls(), $controller, $method\n        );\n\n        if (method_exists($controller, 'callAction')) {\n            return $controller->callAction($method, $parameters);\n        }\n\n        return $controller->{$method}(...array_values($parameters));\n    }\n\n    /**\n     * Get the middleware for the controller instance.\n     *\n     * @param  \\Illuminate\\Routing\\Controller  $controller\n     * @param  string  $method\n     * @return array\n     */\n    public function getMiddleware($controller, $method)\n    {\n        if (! method_exists($controller, 'getMiddleware')) {\n            return [];\n        }\n\n        return collect($controller->getMiddleware())->reject(function ($data) use ($method) {\n            return static::methodExcludedByOptions($method, $data['options']);\n        })->pluck('middleware')->all();\n    }\n\n    /**\n     * Determine if the given options exclude a particular method.\n     *\n     * @param  string  $method\n     * @param  array  $options\n     * @return bool\n     */\n    protected static function methodExcludedByOptions($method, array $options)\n    {\n        return (isset($options['only']) && ! in_array($method, (array) $options['only'])) ||\n            (! empty($options['except']) && in_array($method, (array) $options['except']));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ControllerMiddlewareOptions.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nclass ControllerMiddlewareOptions\n{\n    /**\n     * The middleware options.\n     *\n     * @var array\n     */\n    protected $options;\n\n    /**\n     * Create a new middleware option instance.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(array &$options)\n    {\n        $this->options = &$options;\n    }\n\n    /**\n     * Set the controller methods the middleware should apply to.\n     *\n     * @param  array|string|dynamic  $methods\n     * @return $this\n     */\n    public function only($methods)\n    {\n        $this->options['only'] = is_array($methods) ? $methods : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Set the controller methods the middleware should exclude.\n     *\n     * @param  array|string|dynamic  $methods\n     * @return $this\n     */\n    public function except($methods)\n    {\n        $this->options['except'] = is_array($methods) ? $methods : func_get_args();\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Events/RouteMatched.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Events;\n\nclass RouteMatched\n{\n    /**\n     * The route instance.\n     *\n     * @var \\Illuminate\\Routing\\Route\n     */\n    public $route;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    public $request;\n\n    /**\n     * Create a new event instance.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function __construct($route, $request)\n    {\n        $this->route = $route;\n        $this->request = $request;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Exceptions/InvalidSignatureException.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Exceptions;\n\nuse Symfony\\Component\\HttpKernel\\Exception\\HttpException;\n\nclass InvalidSignatureException extends HttpException\n{\n    /**\n     * Create a new exception instance.\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        parent::__construct(403, 'Invalid signature.');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Exceptions;\n\nuse Exception;\n\nclass UrlGenerationException extends Exception\n{\n    /**\n     * Create a new exception for missing route parameters.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return static\n     */\n    public static function forMissingParameters($route)\n    {\n        return new static(\"Missing required parameters for [Route: {$route->getName()}] [URI: {$route->uri()}].\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Routing\\UrlRoutable;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\n\nclass ImplicitRouteBinding\n{\n    /**\n     * Resolve the implicit route bindings for the given route.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public static function resolveForRoute($container, $route)\n    {\n        $parameters = $route->parameters();\n\n        foreach ($route->signatureParameters(UrlRoutable::class) as $parameter) {\n            if (! $parameterName = static::getParameterName($parameter->name, $parameters)) {\n                continue;\n            }\n\n            $parameterValue = $parameters[$parameterName];\n\n            if ($parameterValue instanceof UrlRoutable) {\n                continue;\n            }\n\n            $instance = $container->make($parameter->getClass()->name);\n\n            if (! $model = $instance->resolveRouteBinding($parameterValue)) {\n                throw (new ModelNotFoundException)->setModel(get_class($instance), [$parameterValue]);\n            }\n\n            $route->setParameter($parameterName, $model);\n        }\n    }\n\n    /**\n     * Return the parameter name if it exists in the given parameters.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return string|null\n     */\n    protected static function getParameterName($name, $parameters)\n    {\n        if (array_key_exists($name, $parameters)) {\n            return $name;\n        }\n\n        if (array_key_exists($snakedName = Str::snake($name), $parameters)) {\n            return $snakedName;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Matching/HostValidator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Matching;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Route;\n\nclass HostValidator implements ValidatorInterface\n{\n    /**\n     * Validate a given rule against a route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    public function matches(Route $route, Request $request)\n    {\n        if (is_null($route->getCompiled()->getHostRegex())) {\n            return true;\n        }\n\n        return preg_match($route->getCompiled()->getHostRegex(), $request->getHost());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Matching/MethodValidator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Matching;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Route;\n\nclass MethodValidator implements ValidatorInterface\n{\n    /**\n     * Validate a given rule against a route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    public function matches(Route $route, Request $request)\n    {\n        return in_array($request->getMethod(), $route->methods());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Matching/SchemeValidator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Matching;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Route;\n\nclass SchemeValidator implements ValidatorInterface\n{\n    /**\n     * Validate a given rule against a route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    public function matches(Route $route, Request $request)\n    {\n        if ($route->httpOnly()) {\n            return ! $request->secure();\n        } elseif ($route->secure()) {\n            return $request->secure();\n        }\n\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Matching/UriValidator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Matching;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Route;\n\nclass UriValidator implements ValidatorInterface\n{\n    /**\n     * Validate a given rule against a route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    public function matches(Route $route, Request $request)\n    {\n        $path = $request->path() === '/' ? '/' : '/'.$request->path();\n\n        return preg_match($route->getCompiled()->getRegex(), rawurldecode($path));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Matching/ValidatorInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Matching;\n\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Routing\\Route;\n\ninterface ValidatorInterface\n{\n    /**\n     * Validate a given rule against a route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return bool\n     */\n    public function matches(Route $route, Request $request);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Middleware;\n\nuse Closure;\nuse Illuminate\\Contracts\\Routing\\Registrar;\n\nclass SubstituteBindings\n{\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Contracts\\Routing\\Registrar\n     */\n    protected $router;\n\n    /**\n     * Create a new bindings substitutor.\n     *\n     * @param  \\Illuminate\\Contracts\\Routing\\Registrar  $router\n     * @return void\n     */\n    public function __construct(Registrar $router)\n    {\n        $this->router = $router;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $this->router->substituteBindings($route = $request->route());\n\n        $this->router->substituteImplicitBindings($route);\n\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Middleware;\n\nuse Closure;\nuse RuntimeException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Cache\\RateLimiter;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Illuminate\\Http\\Exceptions\\ThrottleRequestsException;\n\nclass ThrottleRequests\n{\n    use InteractsWithTime;\n\n    /**\n     * The rate limiter instance.\n     *\n     * @var \\Illuminate\\Cache\\RateLimiter\n     */\n    protected $limiter;\n\n    /**\n     * Create a new request throttler.\n     *\n     * @param  \\Illuminate\\Cache\\RateLimiter  $limiter\n     * @return void\n     */\n    public function __construct(RateLimiter $limiter)\n    {\n        $this->limiter = $limiter;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  int|string  $maxAttempts\n     * @param  float|int  $decayMinutes\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     *\n     * @throws \\Illuminate\\Http\\Exceptions\\ThrottleRequestsException\n     */\n    public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)\n    {\n        $key = $this->resolveRequestSignature($request);\n\n        $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts);\n\n        if ($this->limiter->tooManyAttempts($key, $maxAttempts)) {\n            throw $this->buildException($key, $maxAttempts);\n        }\n\n        $this->limiter->hit($key, $decayMinutes * 60);\n\n        $response = $next($request);\n\n        return $this->addHeaders(\n            $response, $maxAttempts,\n            $this->calculateRemainingAttempts($key, $maxAttempts)\n        );\n    }\n\n    /**\n     * Resolve the number of attempts if the user is authenticated or not.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  int|string  $maxAttempts\n     * @return int\n     */\n    protected function resolveMaxAttempts($request, $maxAttempts)\n    {\n        if (Str::contains($maxAttempts, '|')) {\n            $maxAttempts = explode('|', $maxAttempts, 2)[$request->user() ? 1 : 0];\n        }\n\n        if (! is_numeric($maxAttempts) && $request->user()) {\n            $maxAttempts = $request->user()->{$maxAttempts};\n        }\n\n        return (int) $maxAttempts;\n    }\n\n    /**\n     * Resolve request signature.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected function resolveRequestSignature($request)\n    {\n        if ($user = $request->user()) {\n            return sha1($user->getAuthIdentifier());\n        }\n\n        if ($route = $request->route()) {\n            return sha1($route->getDomain().'|'.$request->ip());\n        }\n\n        throw new RuntimeException('Unable to generate the request signature. Route unavailable.');\n    }\n\n    /**\n     * Create a 'too many attempts' exception.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @return \\Illuminate\\Http\\Exceptions\\ThrottleRequestsException\n     */\n    protected function buildException($key, $maxAttempts)\n    {\n        $retryAfter = $this->getTimeUntilNextRetry($key);\n\n        $headers = $this->getHeaders(\n            $maxAttempts,\n            $this->calculateRemainingAttempts($key, $maxAttempts, $retryAfter),\n            $retryAfter\n        );\n\n        return new ThrottleRequestsException(\n            'Too Many Attempts.', null, $headers\n        );\n    }\n\n    /**\n     * Get the number of seconds until the next retry.\n     *\n     * @param  string  $key\n     * @return int\n     */\n    protected function getTimeUntilNextRetry($key)\n    {\n        return $this->limiter->availableIn($key);\n    }\n\n    /**\n     * Add the limit header information to the given response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @param  int  $maxAttempts\n     * @param  int  $remainingAttempts\n     * @param  int|null  $retryAfter\n     * @return \\Symfony\\Component\\HttpFoundation\\Response\n     */\n    protected function addHeaders(Response $response, $maxAttempts, $remainingAttempts, $retryAfter = null)\n    {\n        $response->headers->add(\n            $this->getHeaders($maxAttempts, $remainingAttempts, $retryAfter)\n        );\n\n        return $response;\n    }\n\n    /**\n     * Get the limit headers information.\n     *\n     * @param  int  $maxAttempts\n     * @param  int  $remainingAttempts\n     * @param  int|null  $retryAfter\n     * @return array\n     */\n    protected function getHeaders($maxAttempts, $remainingAttempts, $retryAfter = null)\n    {\n        $headers = [\n            'X-RateLimit-Limit' => $maxAttempts,\n            'X-RateLimit-Remaining' => $remainingAttempts,\n        ];\n\n        if (! is_null($retryAfter)) {\n            $headers['Retry-After'] = $retryAfter;\n            $headers['X-RateLimit-Reset'] = $this->availableAt($retryAfter);\n        }\n\n        return $headers;\n    }\n\n    /**\n     * Calculate the number of remaining attempts.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @param  int|null  $retryAfter\n     * @return int\n     */\n    protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null)\n    {\n        if (is_null($retryAfter)) {\n            return $this->limiter->retriesLeft($key, $maxAttempts);\n        }\n\n        return 0;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequestsWithRedis.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Middleware;\n\nuse Closure;\nuse Illuminate\\Redis\\Limiters\\DurationLimiter;\nuse Illuminate\\Contracts\\Redis\\Factory as Redis;\n\nclass ThrottleRequestsWithRedis extends ThrottleRequests\n{\n    /**\n     * The Redis factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Redis\\Factory\n     */\n    protected $redis;\n\n    /**\n     * The timestamp of the end of the current duration.\n     *\n     * @var int\n     */\n    public $decaysAt;\n\n    /**\n     * The number of remaining slots.\n     *\n     * @var int\n     */\n    public $remaining;\n\n    /**\n     * Create a new request throttler.\n     *\n     * @param  \\Illuminate\\Contracts\\Redis\\Factory  $redis\n     * @return void\n     */\n    public function __construct(Redis $redis)\n    {\n        $this->redis = $redis;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @param  int|string  $maxAttempts\n     * @param  float|int  $decayMinutes\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\HttpException\n     */\n    public function handle($request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)\n    {\n        $key = $this->resolveRequestSignature($request);\n\n        $maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts);\n\n        if ($this->tooManyAttempts($key, $maxAttempts, $decayMinutes)) {\n            throw $this->buildException($key, $maxAttempts);\n        }\n\n        $response = $next($request);\n\n        return $this->addHeaders(\n            $response, $maxAttempts,\n            $this->calculateRemainingAttempts($key, $maxAttempts)\n        );\n    }\n\n    /**\n     * Determine if the given key has been \"accessed\" too many times.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @param  int  $decayMinutes\n     * @return mixed\n     */\n    protected function tooManyAttempts($key, $maxAttempts, $decayMinutes)\n    {\n        $limiter = new DurationLimiter(\n            $this->redis, $key, $maxAttempts, $decayMinutes * 60\n        );\n\n        return tap(! $limiter->acquire(), function () use ($limiter) {\n            [$this->decaysAt, $this->remaining] = [\n                $limiter->decaysAt, $limiter->remaining,\n            ];\n        });\n    }\n\n    /**\n     * Calculate the number of remaining attempts.\n     *\n     * @param  string  $key\n     * @param  int  $maxAttempts\n     * @param  int|null  $retryAfter\n     * @return int\n     */\n    protected function calculateRemainingAttempts($key, $maxAttempts, $retryAfter = null)\n    {\n        if (is_null($retryAfter)) {\n            return $this->remaining;\n        }\n\n        return 0;\n    }\n\n    /**\n     * Get the number of seconds until the lock is released.\n     *\n     * @param  string  $key\n     * @return int\n     */\n    protected function getTimeUntilNextRetry($key)\n    {\n        return $this->decaysAt - $this->currentTime();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Middleware/ValidateSignature.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing\\Middleware;\n\nuse Closure;\nuse Illuminate\\Routing\\Exceptions\\InvalidSignatureException;\n\nclass ValidateSignature\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return \\Illuminate\\Http\\Response\n     *\n     * @throws \\Illuminate\\Routing\\Exceptions\\InvalidSignatureException\n     */\n    public function handle($request, Closure $next)\n    {\n        if ($request->hasValidSignature()) {\n            return $next($request);\n        }\n\n        throw new InvalidSignatureException;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/MiddlewareNameResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\n\nclass MiddlewareNameResolver\n{\n    /**\n     * Resolve the middleware name to a class name(s) preserving passed parameters.\n     *\n     * @param  \\Closure|string  $name\n     * @param  array  $map\n     * @param  array  $middlewareGroups\n     * @return \\Closure|string|array\n     */\n    public static function resolve($name, $map, $middlewareGroups)\n    {\n        // When the middleware is simply a Closure, we will return this Closure instance\n        // directly so that Closures can be registered as middleware inline, which is\n        // convenient on occasions when the developers are experimenting with them.\n        if ($name instanceof Closure) {\n            return $name;\n        }\n\n        if (isset($map[$name]) && $map[$name] instanceof Closure) {\n            return $map[$name];\n        }\n\n        // If the middleware is the name of a middleware group, we will return the array\n        // of middlewares that belong to the group. This allows developers to group a\n        // set of middleware under single keys that can be conveniently referenced.\n        if (isset($middlewareGroups[$name])) {\n            return static::parseMiddlewareGroup($name, $map, $middlewareGroups);\n        }\n\n        // Finally, when the middleware is simply a string mapped to a class name the\n        // middleware name will get parsed into the full class name and parameters\n        // which may be run using the Pipeline which accepts this string format.\n        [$name, $parameters] = array_pad(explode(':', $name, 2), 2, null);\n\n        return ($map[$name] ?? $name).(! is_null($parameters) ? ':'.$parameters : '');\n    }\n\n    /**\n     * Parse the middleware group and format it for usage.\n     *\n     * @param  string  $name\n     * @param  array  $map\n     * @param  array  $middlewareGroups\n     * @return array\n     */\n    protected static function parseMiddlewareGroup($name, $map, $middlewareGroups)\n    {\n        $results = [];\n\n        foreach ($middlewareGroups[$name] as $middleware) {\n            // If the middleware is another middleware group we will pull in the group and\n            // merge its middleware into the results. This allows groups to conveniently\n            // reference other groups without needing to repeat all their middlewares.\n            if (isset($middlewareGroups[$middleware])) {\n                $results = array_merge($results, static::parseMiddlewareGroup(\n                    $middleware, $map, $middlewareGroups\n                ));\n\n                continue;\n            }\n\n            [$middleware, $parameters] = array_pad(\n                explode(':', $middleware, 2), 2, null\n            );\n\n            // If this middleware is actually a route middleware, we will extract the full\n            // class name out of the middleware list now. Then we'll add the parameters\n            // back onto this class' name so the pipeline will properly extract them.\n            if (isset($map[$middleware])) {\n                $middleware = $map[$middleware];\n            }\n\n            $results[] = $middleware.($parameters ? ':'.$parameters : '');\n        }\n\n        return $results;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/PendingResourceRegistration.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Traits\\Macroable;\n\nclass PendingResourceRegistration\n{\n    use Macroable;\n\n    /**\n     * The resource registrar.\n     *\n     * @var \\Illuminate\\Routing\\ResourceRegistrar\n     */\n    protected $registrar;\n\n    /**\n     * The resource name.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The resource controller.\n     *\n     * @var string\n     */\n    protected $controller;\n\n    /**\n     * The resource options.\n     *\n     * @var array\n     */\n    protected $options = [];\n\n    /**\n     * The resource's registration status.\n     *\n     * @var bool\n     */\n    protected $registered = false;\n\n    /**\n     * Create a new pending resource registration instance.\n     *\n     * @param  \\Illuminate\\Routing\\ResourceRegistrar  $registrar\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array  $options\n     * @return void\n     */\n    public function __construct(ResourceRegistrar $registrar, $name, $controller, array $options)\n    {\n        $this->name = $name;\n        $this->options = $options;\n        $this->registrar = $registrar;\n        $this->controller = $controller;\n    }\n\n    /**\n     * Set the methods the controller should apply to.\n     *\n     * @param  array|string|dynamic  $methods\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function only($methods)\n    {\n        $this->options['only'] = is_array($methods) ? $methods : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Set the methods the controller should exclude.\n     *\n     * @param  array|string|dynamic  $methods\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function except($methods)\n    {\n        $this->options['except'] = is_array($methods) ? $methods : func_get_args();\n\n        return $this;\n    }\n\n    /**\n     * Set the route names for controller actions.\n     *\n     * @param  array|string  $names\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function names($names)\n    {\n        $this->options['names'] = $names;\n\n        return $this;\n    }\n\n    /**\n     * Set the route name for a controller action.\n     *\n     * @param  string  $method\n     * @param  string  $name\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function name($method, $name)\n    {\n        $this->options['names'][$method] = $name;\n\n        return $this;\n    }\n\n    /**\n     * Override the route parameter names.\n     *\n     * @param  array|string  $parameters\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function parameters($parameters)\n    {\n        $this->options['parameters'] = $parameters;\n\n        return $this;\n    }\n\n    /**\n     * Override a route parameter's name.\n     *\n     * @param  string  $previous\n     * @param  string  $new\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function parameter($previous, $new)\n    {\n        $this->options['parameters'][$previous] = $new;\n\n        return $this;\n    }\n\n    /**\n     * Set a middleware to the resource.\n     *\n     * @param  mixed  $middleware\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function middleware($middleware)\n    {\n        $this->options['middleware'] = $middleware;\n\n        return $this;\n    }\n\n    /**\n     * Register the resource route.\n     *\n     * @return \\Illuminate\\Routing\\RouteCollection\n     */\n    public function register()\n    {\n        $this->registered = true;\n\n        return $this->registrar->register(\n            $this->name, $this->controller, $this->options\n        );\n    }\n\n    /**\n     * Handle the object's destruction.\n     *\n     * @return void\n     */\n    public function __destruct()\n    {\n        if (! $this->registered) {\n            $this->register();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse Exception;\nuse Throwable;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler;\nuse Illuminate\\Pipeline\\Pipeline as BasePipeline;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\n/**\n * This extended pipeline catches any exceptions that occur during each slice.\n *\n * The exceptions are converted to HTTP responses for proper middleware handling.\n */\nclass Pipeline extends BasePipeline\n{\n    /**\n     * Get the final piece of the Closure onion.\n     *\n     * @param  \\Closure  $destination\n     * @return \\Closure\n     */\n    protected function prepareDestination(Closure $destination)\n    {\n        return function ($passable) use ($destination) {\n            try {\n                return $destination($passable);\n            } catch (Exception $e) {\n                return $this->handleException($passable, $e);\n            } catch (Throwable $e) {\n                return $this->handleException($passable, new FatalThrowableError($e));\n            }\n        };\n    }\n\n    /**\n     * Get a Closure that represents a slice of the application onion.\n     *\n     * @return \\Closure\n     */\n    protected function carry()\n    {\n        return function ($stack, $pipe) {\n            return function ($passable) use ($stack, $pipe) {\n                try {\n                    $slice = parent::carry();\n\n                    $callable = $slice($stack, $pipe);\n\n                    return $callable($passable);\n                } catch (Exception $e) {\n                    return $this->handleException($passable, $e);\n                } catch (Throwable $e) {\n                    return $this->handleException($passable, new FatalThrowableError($e));\n                }\n            };\n        };\n    }\n\n    /**\n     * Handle the given exception.\n     *\n     * @param  mixed  $passable\n     * @param  \\Exception  $e\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    protected function handleException($passable, Exception $e)\n    {\n        if (! $this->container->bound(ExceptionHandler::class) ||\n            ! $passable instanceof Request) {\n            throw $e;\n        }\n\n        $handler = $this->container->make(ExceptionHandler::class);\n\n        $handler->report($e);\n\n        $response = $handler->render($passable, $e);\n\n        if (method_exists($response, 'withException')) {\n            $response->withException($e);\n        }\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RedirectController.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Http\\RedirectResponse;\n\nclass RedirectController extends Controller\n{\n    /**\n     * Invoke the controller method.\n     *\n     * @param  array  $args\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function __invoke(...$args)\n    {\n        [$destination, $status] = array_slice($args, -2);\n\n        return new RedirectResponse($destination, $status);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Redirector.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Http\\RedirectResponse;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Session\\Store as SessionStore;\n\nclass Redirector\n{\n    use Macroable;\n\n    /**\n     * The URL generator instance.\n     *\n     * @var \\Illuminate\\Routing\\UrlGenerator\n     */\n    protected $generator;\n\n    /**\n     * The session store instance.\n     *\n     * @var \\Illuminate\\Session\\Store\n     */\n    protected $session;\n\n    /**\n     * Create a new Redirector instance.\n     *\n     * @param  \\Illuminate\\Routing\\UrlGenerator  $generator\n     * @return void\n     */\n    public function __construct(UrlGenerator $generator)\n    {\n        $this->generator = $generator;\n    }\n\n    /**\n     * Create a new redirect response to the \"home\" route.\n     *\n     * @param  int  $status\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function home($status = 302)\n    {\n        return $this->to($this->generator->route('home'), $status);\n    }\n\n    /**\n     * Create a new redirect response to the previous location.\n     *\n     * @param  int    $status\n     * @param  array  $headers\n     * @param  mixed  $fallback\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function back($status = 302, $headers = [], $fallback = false)\n    {\n        return $this->createRedirect($this->generator->previous($fallback), $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response to the current URI.\n     *\n     * @param  int    $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function refresh($status = 302, $headers = [])\n    {\n        return $this->to($this->generator->getRequest()->path(), $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response, while putting the current URL in the session.\n     *\n     * @param  string  $path\n     * @param  int     $status\n     * @param  array   $headers\n     * @param  bool|null    $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function guest($path, $status = 302, $headers = [], $secure = null)\n    {\n        $request = $this->generator->getRequest();\n\n        $intended = $request->method() === 'GET' && $request->route() && ! $request->expectsJson()\n                        ? $this->generator->full()\n                        : $this->generator->previous();\n\n        if ($intended) {\n            $this->setIntendedUrl($intended);\n        }\n\n        return $this->to($path, $status, $headers, $secure);\n    }\n\n    /**\n     * Create a new redirect response to the previously intended location.\n     *\n     * @param  string  $default\n     * @param  int     $status\n     * @param  array   $headers\n     * @param  bool|null    $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function intended($default = '/', $status = 302, $headers = [], $secure = null)\n    {\n        $path = $this->session->pull('url.intended', $default);\n\n        return $this->to($path, $status, $headers, $secure);\n    }\n\n    /**\n     * Set the intended url.\n     *\n     * @param  string  $url\n     * @return void\n     */\n    public function setIntendedUrl($url)\n    {\n        $this->session->put('url.intended', $url);\n    }\n\n    /**\n     * Create a new redirect response to the given path.\n     *\n     * @param  string  $path\n     * @param  int     $status\n     * @param  array   $headers\n     * @param  bool|null    $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function to($path, $status = 302, $headers = [], $secure = null)\n    {\n        return $this->createRedirect($this->generator->to($path, [], $secure), $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response to an external URL (no validation).\n     *\n     * @param  string  $path\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function away($path, $status = 302, $headers = [])\n    {\n        return $this->createRedirect($path, $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response to the given HTTPS path.\n     *\n     * @param  string  $path\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function secure($path, $status = 302, $headers = [])\n    {\n        return $this->to($path, $status, $headers, true);\n    }\n\n    /**\n     * Create a new redirect response to a named route.\n     *\n     * @param  string  $route\n     * @param  mixed   $parameters\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function route($route, $parameters = [], $status = 302, $headers = [])\n    {\n        return $this->to($this->generator->route($route, $parameters), $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response to a controller action.\n     *\n     * @param  string|array  $action\n     * @param  mixed   $parameters\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function action($action, $parameters = [], $status = 302, $headers = [])\n    {\n        return $this->to($this->generator->action($action, $parameters), $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response.\n     *\n     * @param  string  $path\n     * @param  int     $status\n     * @param  array   $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    protected function createRedirect($path, $status, $headers)\n    {\n        return tap(new RedirectResponse($path, $status, $headers), function ($redirect) {\n            if (isset($this->session)) {\n                $redirect->setSession($this->session);\n            }\n\n            $redirect->setRequest($this->generator->getRequest());\n        });\n    }\n\n    /**\n     * Get the URL generator instance.\n     *\n     * @return \\Illuminate\\Routing\\UrlGenerator\n     */\n    public function getUrlGenerator()\n    {\n        return $this->generator;\n    }\n\n    /**\n     * Set the active session store.\n     *\n     * @param  \\Illuminate\\Session\\Store  $session\n     * @return void\n     */\n    public function setSession(SessionStore $session)\n    {\n        $this->session = $session;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Str;\n\nclass ResourceRegistrar\n{\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * The default actions for a resourceful controller.\n     *\n     * @var array\n     */\n    protected $resourceDefaults = ['index', 'create', 'store', 'show', 'edit', 'update', 'destroy'];\n\n    /**\n     * The parameters set for this resource instance.\n     *\n     * @var array|string\n     */\n    protected $parameters;\n\n    /**\n     * The global parameter mapping.\n     *\n     * @var array\n     */\n    protected static $parameterMap = [];\n\n    /**\n     * Singular global parameters.\n     *\n     * @var bool\n     */\n    protected static $singularParameters = true;\n\n    /**\n     * The verbs used in the resource URIs.\n     *\n     * @var array\n     */\n    protected static $verbs = [\n        'create' => 'create',\n        'edit' => 'edit',\n    ];\n\n    /**\n     * Create a new resource registrar instance.\n     *\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return void\n     */\n    public function __construct(Router $router)\n    {\n        $this->router = $router;\n    }\n\n    /**\n     * Route a resource to a controller.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\RouteCollection\n     */\n    public function register($name, $controller, array $options = [])\n    {\n        if (isset($options['parameters']) && ! isset($this->parameters)) {\n            $this->parameters = $options['parameters'];\n        }\n\n        // If the resource name contains a slash, we will assume the developer wishes to\n        // register these resource routes with a prefix so we will set that up out of\n        // the box so they don't have to mess with it. Otherwise, we will continue.\n        if (Str::contains($name, '/')) {\n            $this->prefixedResource($name, $controller, $options);\n\n            return;\n        }\n\n        // We need to extract the base resource from the resource name. Nested resources\n        // are supported in the framework, but we need to know what name to use for a\n        // place-holder on the route parameters, which should be the base resources.\n        $base = $this->getResourceWildcard(last(explode('.', $name)));\n\n        $defaults = $this->resourceDefaults;\n\n        $collection = new RouteCollection;\n\n        foreach ($this->getResourceMethods($defaults, $options) as $m) {\n            $collection->add($this->{'addResource'.ucfirst($m)}(\n                $name, $base, $controller, $options\n            ));\n        }\n\n        return $collection;\n    }\n\n    /**\n     * Build a set of prefixed resource routes.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array   $options\n     * @return void\n     */\n    protected function prefixedResource($name, $controller, array $options)\n    {\n        [$name, $prefix] = $this->getResourcePrefix($name);\n\n        // We need to extract the base resource from the resource name. Nested resources\n        // are supported in the framework, but we need to know what name to use for a\n        // place-holder on the route parameters, which should be the base resources.\n        $callback = function ($me) use ($name, $controller, $options) {\n            $me->resource($name, $controller, $options);\n        };\n\n        return $this->router->group(compact('prefix'), $callback);\n    }\n\n    /**\n     * Extract the resource and prefix from a resource name.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getResourcePrefix($name)\n    {\n        $segments = explode('/', $name);\n\n        // To get the prefix, we will take all of the name segments and implode them on\n        // a slash. This will generate a proper URI prefix for us. Then we take this\n        // last segment, which will be considered the final resources name we use.\n        $prefix = implode('/', array_slice($segments, 0, -1));\n\n        return [end($segments), $prefix];\n    }\n\n    /**\n     * Get the applicable resource methods.\n     *\n     * @param  array  $defaults\n     * @param  array  $options\n     * @return array\n     */\n    protected function getResourceMethods($defaults, $options)\n    {\n        $methods = $defaults;\n\n        if (isset($options['only'])) {\n            $methods = array_intersect($methods, (array) $options['only']);\n        }\n\n        if (isset($options['except'])) {\n            $methods = array_diff($methods, (array) $options['except']);\n        }\n\n        return $methods;\n    }\n\n    /**\n     * Add the index method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceIndex($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name);\n\n        $action = $this->getResourceAction($name, $controller, 'index', $options);\n\n        return $this->router->get($uri, $action);\n    }\n\n    /**\n     * Add the create method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceCreate($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name).'/'.static::$verbs['create'];\n\n        $action = $this->getResourceAction($name, $controller, 'create', $options);\n\n        return $this->router->get($uri, $action);\n    }\n\n    /**\n     * Add the store method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceStore($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name);\n\n        $action = $this->getResourceAction($name, $controller, 'store', $options);\n\n        return $this->router->post($uri, $action);\n    }\n\n    /**\n     * Add the show method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceShow($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name).'/{'.$base.'}';\n\n        $action = $this->getResourceAction($name, $controller, 'show', $options);\n\n        return $this->router->get($uri, $action);\n    }\n\n    /**\n     * Add the edit method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceEdit($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name).'/{'.$base.'}/'.static::$verbs['edit'];\n\n        $action = $this->getResourceAction($name, $controller, 'edit', $options);\n\n        return $this->router->get($uri, $action);\n    }\n\n    /**\n     * Add the update method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceUpdate($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name).'/{'.$base.'}';\n\n        $action = $this->getResourceAction($name, $controller, 'update', $options);\n\n        return $this->router->match(['PUT', 'PATCH'], $uri, $action);\n    }\n\n    /**\n     * Add the destroy method for a resourceful route.\n     *\n     * @param  string  $name\n     * @param  string  $base\n     * @param  string  $controller\n     * @param  array   $options\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addResourceDestroy($name, $base, $controller, $options)\n    {\n        $uri = $this->getResourceUri($name).'/{'.$base.'}';\n\n        $action = $this->getResourceAction($name, $controller, 'destroy', $options);\n\n        return $this->router->delete($uri, $action);\n    }\n\n    /**\n     * Get the base resource URI for a given resource.\n     *\n     * @param  string  $resource\n     * @return string\n     */\n    public function getResourceUri($resource)\n    {\n        if (! Str::contains($resource, '.')) {\n            return $resource;\n        }\n\n        // Once we have built the base URI, we'll remove the parameter holder for this\n        // base resource name so that the individual route adders can suffix these\n        // paths however they need to, as some do not have any parameters at all.\n        $segments = explode('.', $resource);\n\n        $uri = $this->getNestedResourceUri($segments);\n\n        return str_replace('/{'.$this->getResourceWildcard(end($segments)).'}', '', $uri);\n    }\n\n    /**\n     * Get the URI for a nested resource segment array.\n     *\n     * @param  array   $segments\n     * @return string\n     */\n    protected function getNestedResourceUri(array $segments)\n    {\n        // We will spin through the segments and create a place-holder for each of the\n        // resource segments, as well as the resource itself. Then we should get an\n        // entire string for the resource URI that contains all nested resources.\n        return implode('/', array_map(function ($s) {\n            return $s.'/{'.$this->getResourceWildcard($s).'}';\n        }, $segments));\n    }\n\n    /**\n     * Format a resource parameter for usage.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public function getResourceWildcard($value)\n    {\n        if (isset($this->parameters[$value])) {\n            $value = $this->parameters[$value];\n        } elseif (isset(static::$parameterMap[$value])) {\n            $value = static::$parameterMap[$value];\n        } elseif ($this->parameters === 'singular' || static::$singularParameters) {\n            $value = Str::singular($value);\n        }\n\n        return str_replace('-', '_', $value);\n    }\n\n    /**\n     * Get the action array for a resource route.\n     *\n     * @param  string  $resource\n     * @param  string  $controller\n     * @param  string  $method\n     * @param  array   $options\n     * @return array\n     */\n    protected function getResourceAction($resource, $controller, $method, $options)\n    {\n        $name = $this->getResourceRouteName($resource, $method, $options);\n\n        $action = ['as' => $name, 'uses' => $controller.'@'.$method];\n\n        if (isset($options['middleware'])) {\n            $action['middleware'] = $options['middleware'];\n        }\n\n        return $action;\n    }\n\n    /**\n     * Get the name for a given resource.\n     *\n     * @param  string  $resource\n     * @param  string  $method\n     * @param  array   $options\n     * @return string\n     */\n    protected function getResourceRouteName($resource, $method, $options)\n    {\n        $name = $resource;\n\n        // If the names array has been provided to us we will check for an entry in the\n        // array first. We will also check for the specific method within this array\n        // so the names may be specified on a more \"granular\" level using methods.\n        if (isset($options['names'])) {\n            if (is_string($options['names'])) {\n                $name = $options['names'];\n            } elseif (isset($options['names'][$method])) {\n                return $options['names'][$method];\n            }\n        }\n\n        // If a global prefix has been assigned to all names for this resource, we will\n        // grab that so we can prepend it onto the name when we create this name for\n        // the resource action. Otherwise we'll just use an empty string for here.\n        $prefix = isset($options['as']) ? $options['as'].'.' : '';\n\n        return trim(sprintf('%s%s.%s', $prefix, $name, $method), '.');\n    }\n\n    /**\n     * Set or unset the unmapped global parameters to singular.\n     *\n     * @param  bool  $singular\n     * @return void\n     */\n    public static function singularParameters($singular = true)\n    {\n        static::$singularParameters = (bool) $singular;\n    }\n\n    /**\n     * Get the global parameter map.\n     *\n     * @return array\n     */\n    public static function getParameters()\n    {\n        return static::$parameterMap;\n    }\n\n    /**\n     * Set the global parameter mapping.\n     *\n     * @param  array $parameters\n     * @return void\n     */\n    public static function setParameters(array $parameters = [])\n    {\n        static::$parameterMap = $parameters;\n    }\n\n    /**\n     * Get or set the action verbs used in the resource URIs.\n     *\n     * @param  array  $verbs\n     * @return array\n     */\n    public static function verbs(array $verbs = [])\n    {\n        if (empty($verbs)) {\n            return static::$verbs;\n        } else {\n            static::$verbs = array_merge(static::$verbs, $verbs);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Response;\nuse Illuminate\\Http\\JsonResponse;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\View\\Factory as ViewFactory;\nuse Symfony\\Component\\HttpFoundation\\StreamedResponse;\nuse Symfony\\Component\\HttpFoundation\\BinaryFileResponse;\nuse Illuminate\\Contracts\\Routing\\ResponseFactory as FactoryContract;\n\nclass ResponseFactory implements FactoryContract\n{\n    use Macroable;\n\n    /**\n     * The view factory instance.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Factory\n     */\n    protected $view;\n\n    /**\n     * The redirector instance.\n     *\n     * @var \\Illuminate\\Routing\\Redirector\n     */\n    protected $redirector;\n\n    /**\n     * Create a new response factory instance.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\Factory  $view\n     * @param  \\Illuminate\\Routing\\Redirector  $redirector\n     * @return void\n     */\n    public function __construct(ViewFactory $view, Redirector $redirector)\n    {\n        $this->view = $view;\n        $this->redirector = $redirector;\n    }\n\n    /**\n     * Create a new response instance.\n     *\n     * @param  string  $content\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function make($content = '', $status = 200, array $headers = [])\n    {\n        return new Response($content, $status, $headers);\n    }\n\n    /**\n     * Create a new \"no content\" response.\n     *\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function noContent($status = 204, array $headers = [])\n    {\n        return $this->make('', $status, $headers);\n    }\n\n    /**\n     * Create a new response for a given view.\n     *\n     * @param  string  $view\n     * @param  array  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\Response\n     */\n    public function view($view, $data = [], $status = 200, array $headers = [])\n    {\n        return $this->make($this->view->make($view, $data), $status, $headers);\n    }\n\n    /**\n     * Create a new JSON response instance.\n     *\n     * @param  mixed  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  int  $options\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function json($data = [], $status = 200, array $headers = [], $options = 0)\n    {\n        return new JsonResponse($data, $status, $headers, $options);\n    }\n\n    /**\n     * Create a new JSONP response instance.\n     *\n     * @param  string  $callback\n     * @param  mixed  $data\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  int  $options\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0)\n    {\n        return $this->json($data, $status, $headers, $options)->setCallback($callback);\n    }\n\n    /**\n     * Create a new streamed response instance.\n     *\n     * @param  \\Closure  $callback\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function stream($callback, $status = 200, array $headers = [])\n    {\n        return new StreamedResponse($callback, $status, $headers);\n    }\n\n    /**\n     * Create a new streamed response instance as a file download.\n     *\n     * @param  \\Closure  $callback\n     * @param  string|null  $name\n     * @param  array  $headers\n     * @param  string|null  $disposition\n     * @return \\Symfony\\Component\\HttpFoundation\\StreamedResponse\n     */\n    public function streamDownload($callback, $name = null, array $headers = [], $disposition = 'attachment')\n    {\n        $response = new StreamedResponse($callback, 200, $headers);\n\n        if (! is_null($name)) {\n            $response->headers->set('Content-Disposition', $response->headers->makeDisposition(\n                $disposition,\n                $name,\n                $this->fallbackName($name)\n            ));\n        }\n\n        return $response;\n    }\n\n    /**\n     * Create a new file download response.\n     *\n     * @param  \\SplFileInfo|string  $file\n     * @param  string|null  $name\n     * @param  array  $headers\n     * @param  string|null  $disposition\n     * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n     */\n    public function download($file, $name = null, array $headers = [], $disposition = 'attachment')\n    {\n        $response = new BinaryFileResponse($file, 200, $headers, true, $disposition);\n\n        if (! is_null($name)) {\n            return $response->setContentDisposition($disposition, $name, $this->fallbackName($name));\n        }\n\n        return $response;\n    }\n\n    /**\n     * Convert the string to ASCII characters that are equivalent to the given name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function fallbackName($name)\n    {\n        return str_replace('%', '', Str::ascii($name));\n    }\n\n    /**\n     * Return the raw contents of a binary file.\n     *\n     * @param  \\SplFileInfo|string  $file\n     * @param  array  $headers\n     * @return \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse\n     */\n    public function file($file, array $headers = [])\n    {\n        return new BinaryFileResponse($file, 200, $headers);\n    }\n\n    /**\n     * Create a new redirect response to the given path.\n     *\n     * @param  string  $path\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectTo($path, $status = 302, $headers = [], $secure = null)\n    {\n        return $this->redirector->to($path, $status, $headers, $secure);\n    }\n\n    /**\n     * Create a new redirect response to a named route.\n     *\n     * @param  string  $route\n     * @param  array  $parameters\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToRoute($route, $parameters = [], $status = 302, $headers = [])\n    {\n        return $this->redirector->route($route, $parameters, $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response to a controller action.\n     *\n     * @param  string  $action\n     * @param  array  $parameters\n     * @param  int  $status\n     * @param  array  $headers\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToAction($action, $parameters = [], $status = 302, $headers = [])\n    {\n        return $this->redirector->action($action, $parameters, $status, $headers);\n    }\n\n    /**\n     * Create a new redirect response, while putting the current URL in the session.\n     *\n     * @param  string  $path\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectGuest($path, $status = 302, $headers = [], $secure = null)\n    {\n        return $this->redirector->guest($path, $status, $headers, $secure);\n    }\n\n    /**\n     * Create a new redirect response to the previously intended location.\n     *\n     * @param  string  $default\n     * @param  int  $status\n     * @param  array  $headers\n     * @param  bool|null  $secure\n     * @return \\Illuminate\\Http\\RedirectResponse\n     */\n    public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null)\n    {\n        return $this->redirector->intended($default, $status, $headers, $secure);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Route.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse LogicException;\nuse ReflectionFunction;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Routing\\Matching\\UriValidator;\nuse Illuminate\\Routing\\Matching\\HostValidator;\nuse Illuminate\\Routing\\Matching\\MethodValidator;\nuse Illuminate\\Routing\\Matching\\SchemeValidator;\nuse Illuminate\\Http\\Exceptions\\HttpResponseException;\nuse Illuminate\\Routing\\Contracts\\ControllerDispatcher as ControllerDispatcherContract;\n\nclass Route\n{\n    use Macroable, RouteDependencyResolverTrait;\n\n    /**\n     * The URI pattern the route responds to.\n     *\n     * @var string\n     */\n    public $uri;\n\n    /**\n     * The HTTP methods the route responds to.\n     *\n     * @var array\n     */\n    public $methods;\n\n    /**\n     * The route action array.\n     *\n     * @var array\n     */\n    public $action;\n\n    /**\n     * Indicates whether the route is a fallback route.\n     *\n     * @var bool\n     */\n    public $isFallback = false;\n\n    /**\n     * The controller instance.\n     *\n     * @var mixed\n     */\n    public $controller;\n\n    /**\n     * The default values for the route.\n     *\n     * @var array\n     */\n    public $defaults = [];\n\n    /**\n     * The regular expression requirements.\n     *\n     * @var array\n     */\n    public $wheres = [];\n\n    /**\n     * The array of matched parameters.\n     *\n     * @var array\n     */\n    public $parameters;\n\n    /**\n     * The parameter names for the route.\n     *\n     * @var array|null\n     */\n    public $parameterNames;\n\n    /**\n     * The array of the matched parameters' original values.\n     *\n     * @var array\n     */\n    protected $originalParameters;\n\n    /**\n     * The computed gathered middleware.\n     *\n     * @var array|null\n     */\n    public $computedMiddleware;\n\n    /**\n     * The compiled version of the route.\n     *\n     * @var \\Symfony\\Component\\Routing\\CompiledRoute\n     */\n    public $compiled;\n\n    /**\n     * The router instance used by the route.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * The container instance used by the route.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The validators used by the routes.\n     *\n     * @var array\n     */\n    public static $validators;\n\n    /**\n     * Create a new Route instance.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  \\Closure|array  $action\n     * @return void\n     */\n    public function __construct($methods, $uri, $action)\n    {\n        $this->uri = $uri;\n        $this->methods = (array) $methods;\n        $this->action = $this->parseAction($action);\n\n        if (in_array('GET', $this->methods) && ! in_array('HEAD', $this->methods)) {\n            $this->methods[] = 'HEAD';\n        }\n\n        if (isset($this->action['prefix'])) {\n            $this->prefix($this->action['prefix']);\n        }\n    }\n\n    /**\n     * Parse the route action into a standard array.\n     *\n     * @param  callable|array|null  $action\n     * @return array\n     *\n     * @throws \\UnexpectedValueException\n     */\n    protected function parseAction($action)\n    {\n        return RouteAction::parse($this->uri, $action);\n    }\n\n    /**\n     * Run the route action and return the response.\n     *\n     * @return mixed\n     */\n    public function run()\n    {\n        $this->container = $this->container ?: new Container;\n\n        try {\n            if ($this->isControllerAction()) {\n                return $this->runController();\n            }\n\n            return $this->runCallable();\n        } catch (HttpResponseException $e) {\n            return $e->getResponse();\n        }\n    }\n\n    /**\n     * Checks whether the route's action is a controller.\n     *\n     * @return bool\n     */\n    protected function isControllerAction()\n    {\n        return is_string($this->action['uses']);\n    }\n\n    /**\n     * Run the route action and return the response.\n     *\n     * @return mixed\n     */\n    protected function runCallable()\n    {\n        $callable = $this->action['uses'];\n\n        return $callable(...array_values($this->resolveMethodDependencies(\n            $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses'])\n        )));\n    }\n\n    /**\n     * Run the route action and return the response.\n     *\n     * @return mixed\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n     */\n    protected function runController()\n    {\n        return $this->controllerDispatcher()->dispatch(\n            $this, $this->getController(), $this->getControllerMethod()\n        );\n    }\n\n    /**\n     * Get the controller instance for the route.\n     *\n     * @return mixed\n     */\n    public function getController()\n    {\n        if (! $this->controller) {\n            $class = $this->parseControllerCallback()[0];\n\n            $this->controller = $this->container->make(ltrim($class, '\\\\'));\n        }\n\n        return $this->controller;\n    }\n\n    /**\n     * Get the controller method used for the route.\n     *\n     * @return string\n     */\n    protected function getControllerMethod()\n    {\n        return $this->parseControllerCallback()[1];\n    }\n\n    /**\n     * Parse the controller.\n     *\n     * @return array\n     */\n    protected function parseControllerCallback()\n    {\n        return Str::parseCallback($this->action['uses']);\n    }\n\n    /**\n     * Determine if the route matches given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  bool  $includingMethod\n     * @return bool\n     */\n    public function matches(Request $request, $includingMethod = true)\n    {\n        $this->compileRoute();\n\n        foreach ($this->getValidators() as $validator) {\n            if (! $includingMethod && $validator instanceof MethodValidator) {\n                continue;\n            }\n\n            if (! $validator->matches($this, $request)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Compile the route into a Symfony CompiledRoute instance.\n     *\n     * @return \\Symfony\\Component\\Routing\\CompiledRoute\n     */\n    protected function compileRoute()\n    {\n        if (! $this->compiled) {\n            $this->compiled = (new RouteCompiler($this))->compile();\n        }\n\n        return $this->compiled;\n    }\n\n    /**\n     * Bind the route to a given request for execution.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return $this\n     */\n    public function bind(Request $request)\n    {\n        $this->compileRoute();\n\n        $this->parameters = (new RouteParameterBinder($this))\n                        ->parameters($request);\n\n        $this->originalParameters = $this->parameters;\n\n        return $this;\n    }\n\n    /**\n     * Determine if the route has parameters.\n     *\n     * @return bool\n     */\n    public function hasParameters()\n    {\n        return isset($this->parameters);\n    }\n\n    /**\n     * Determine a given parameter exists from the route.\n     *\n     * @param  string $name\n     * @return bool\n     */\n    public function hasParameter($name)\n    {\n        if ($this->hasParameters()) {\n            return array_key_exists($name, $this->parameters());\n        }\n\n        return false;\n    }\n\n    /**\n     * Get a given parameter from the route.\n     *\n     * @param  string  $name\n     * @param  mixed   $default\n     * @return string|object\n     */\n    public function parameter($name, $default = null)\n    {\n        return Arr::get($this->parameters(), $name, $default);\n    }\n\n    /**\n     * Get original value of a given parameter from the route.\n     *\n     * @param  string  $name\n     * @param  mixed   $default\n     * @return string\n     */\n    public function originalParameter($name, $default = null)\n    {\n        return Arr::get($this->originalParameters(), $name, $default);\n    }\n\n    /**\n     * Set a parameter to the given value.\n     *\n     * @param  string  $name\n     * @param  mixed   $value\n     * @return void\n     */\n    public function setParameter($name, $value)\n    {\n        $this->parameters();\n\n        $this->parameters[$name] = $value;\n    }\n\n    /**\n     * Unset a parameter on the route if it is set.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function forgetParameter($name)\n    {\n        $this->parameters();\n\n        unset($this->parameters[$name]);\n    }\n\n    /**\n     * Get the key / value list of parameters for the route.\n     *\n     * @return array\n     *\n     * @throws \\LogicException\n     */\n    public function parameters()\n    {\n        if (isset($this->parameters)) {\n            return $this->parameters;\n        }\n\n        throw new LogicException('Route is not bound.');\n    }\n\n    /**\n     * Get the key / value list of original parameters for the route.\n     *\n     * @return array\n     *\n     * @throws \\LogicException\n     */\n    public function originalParameters()\n    {\n        if (isset($this->originalParameters)) {\n            return $this->originalParameters;\n        }\n\n        throw new LogicException('Route is not bound.');\n    }\n\n    /**\n     * Get the key / value list of parameters without null values.\n     *\n     * @return array\n     */\n    public function parametersWithoutNulls()\n    {\n        return array_filter($this->parameters(), function ($p) {\n            return ! is_null($p);\n        });\n    }\n\n    /**\n     * Get all of the parameter names for the route.\n     *\n     * @return array\n     */\n    public function parameterNames()\n    {\n        if (isset($this->parameterNames)) {\n            return $this->parameterNames;\n        }\n\n        return $this->parameterNames = $this->compileParameterNames();\n    }\n\n    /**\n     * Get the parameter names for the route.\n     *\n     * @return array\n     */\n    protected function compileParameterNames()\n    {\n        preg_match_all('/\\{(.*?)\\}/', $this->getDomain().$this->uri, $matches);\n\n        return array_map(function ($m) {\n            return trim($m, '?');\n        }, $matches[1]);\n    }\n\n    /**\n     * Get the parameters that are listed in the route / controller signature.\n     *\n     * @param  string|null  $subClass\n     * @return array\n     */\n    public function signatureParameters($subClass = null)\n    {\n        return RouteSignatureParameters::fromAction($this->action, $subClass);\n    }\n\n    /**\n     * Set a default value for the route.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function defaults($key, $value)\n    {\n        $this->defaults[$key] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set a regular expression requirement on the route.\n     *\n     * @param  array|string  $name\n     * @param  string|null  $expression\n     * @return $this\n     */\n    public function where($name, $expression = null)\n    {\n        foreach ($this->parseWhere($name, $expression) as $name => $expression) {\n            $this->wheres[$name] = $expression;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Parse arguments to the where method into an array.\n     *\n     * @param  array|string  $name\n     * @param  string  $expression\n     * @return array\n     */\n    protected function parseWhere($name, $expression)\n    {\n        return is_array($name) ? $name : [$name => $expression];\n    }\n\n    /**\n     * Set a list of regular expression requirements on the route.\n     *\n     * @param  array  $wheres\n     * @return $this\n     */\n    protected function whereArray(array $wheres)\n    {\n        foreach ($wheres as $name => $expression) {\n            $this->where($name, $expression);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Mark this route as a fallback route.\n     *\n     * @return $this\n     */\n    public function fallback()\n    {\n        $this->isFallback = true;\n\n        return $this;\n    }\n\n    /**\n     * Get the HTTP verbs the route responds to.\n     *\n     * @return array\n     */\n    public function methods()\n    {\n        return $this->methods;\n    }\n\n    /**\n     * Determine if the route only responds to HTTP requests.\n     *\n     * @return bool\n     */\n    public function httpOnly()\n    {\n        return in_array('http', $this->action, true);\n    }\n\n    /**\n     * Determine if the route only responds to HTTPS requests.\n     *\n     * @return bool\n     */\n    public function httpsOnly()\n    {\n        return $this->secure();\n    }\n\n    /**\n     * Determine if the route only responds to HTTPS requests.\n     *\n     * @return bool\n     */\n    public function secure()\n    {\n        return in_array('https', $this->action, true);\n    }\n\n    /**\n     * Get or set the domain for the route.\n     *\n     * @param  string|null  $domain\n     * @return $this|string|null\n     */\n    public function domain($domain = null)\n    {\n        if (is_null($domain)) {\n            return $this->getDomain();\n        }\n\n        $this->action['domain'] = $domain;\n\n        return $this;\n    }\n\n    /**\n     * Get the domain defined for the route.\n     *\n     * @return string|null\n     */\n    public function getDomain()\n    {\n        return isset($this->action['domain'])\n                ? str_replace(['http://', 'https://'], '', $this->action['domain']) : null;\n    }\n\n    /**\n     * Get the prefix of the route instance.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->action['prefix'] ?? null;\n    }\n\n    /**\n     * Add a prefix to the route URI.\n     *\n     * @param  string  $prefix\n     * @return $this\n     */\n    public function prefix($prefix)\n    {\n        $uri = rtrim($prefix, '/').'/'.ltrim($this->uri, '/');\n\n        $this->uri = trim($uri, '/');\n\n        return $this;\n    }\n\n    /**\n     * Get the URI associated with the route.\n     *\n     * @return string\n     */\n    public function uri()\n    {\n        return $this->uri;\n    }\n\n    /**\n     * Set the URI that the route responds to.\n     *\n     * @param  string  $uri\n     * @return $this\n     */\n    public function setUri($uri)\n    {\n        $this->uri = $uri;\n\n        return $this;\n    }\n\n    /**\n     * Get the name of the route instance.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->action['as'] ?? null;\n    }\n\n    /**\n     * Add or change the route name.\n     *\n     * @param  string  $name\n     * @return $this\n     */\n    public function name($name)\n    {\n        $this->action['as'] = isset($this->action['as']) ? $this->action['as'].$name : $name;\n\n        return $this;\n    }\n\n    /**\n     * Determine whether the route's name matches the given patterns.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function named(...$patterns)\n    {\n        if (is_null($routeName = $this->getName())) {\n            return false;\n        }\n\n        foreach ($patterns as $pattern) {\n            if (Str::is($pattern, $routeName)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Set the handler for the route.\n     *\n     * @param  \\Closure|string  $action\n     * @return $this\n     */\n    public function uses($action)\n    {\n        $action = is_string($action) ? $this->addGroupNamespaceToStringUses($action) : $action;\n\n        return $this->setAction(array_merge($this->action, $this->parseAction([\n            'uses' => $action,\n            'controller' => $action,\n        ])));\n    }\n\n    /**\n     * Parse a string based action for the \"uses\" fluent method.\n     *\n     * @param  string  $action\n     * @return string\n     */\n    protected function addGroupNamespaceToStringUses($action)\n    {\n        $groupStack = last($this->router->getGroupStack());\n\n        if (isset($groupStack['namespace']) && strpos($action, '\\\\') !== 0) {\n            return $groupStack['namespace'].'\\\\'.$action;\n        }\n\n        return $action;\n    }\n\n    /**\n     * Get the action name for the route.\n     *\n     * @return string\n     */\n    public function getActionName()\n    {\n        return $this->action['controller'] ?? 'Closure';\n    }\n\n    /**\n     * Get the method name of the route action.\n     *\n     * @return string\n     */\n    public function getActionMethod()\n    {\n        return Arr::last(explode('@', $this->getActionName()));\n    }\n\n    /**\n     * Get the action array or one of its properties for the route.\n     *\n     * @param  string|null  $key\n     * @return mixed\n     */\n    public function getAction($key = null)\n    {\n        return Arr::get($this->action, $key);\n    }\n\n    /**\n     * Set the action array for the route.\n     *\n     * @param  array  $action\n     * @return $this\n     */\n    public function setAction(array $action)\n    {\n        $this->action = $action;\n\n        return $this;\n    }\n\n    /**\n     * Get all middleware, including the ones from the controller.\n     *\n     * @return array\n     */\n    public function gatherMiddleware()\n    {\n        if (! is_null($this->computedMiddleware)) {\n            return $this->computedMiddleware;\n        }\n\n        $this->computedMiddleware = [];\n\n        return $this->computedMiddleware = array_unique(array_merge(\n            $this->middleware(), $this->controllerMiddleware()\n        ), SORT_REGULAR);\n    }\n\n    /**\n     * Get or set the middlewares attached to the route.\n     *\n     * @param  array|string|null $middleware\n     * @return $this|array\n     */\n    public function middleware($middleware = null)\n    {\n        if (is_null($middleware)) {\n            return (array) ($this->action['middleware'] ?? []);\n        }\n\n        if (is_string($middleware)) {\n            $middleware = func_get_args();\n        }\n\n        $this->action['middleware'] = array_merge(\n            (array) ($this->action['middleware'] ?? []), $middleware\n        );\n\n        return $this;\n    }\n\n    /**\n     * Get the middleware for the route's controller.\n     *\n     * @return array\n     */\n    public function controllerMiddleware()\n    {\n        if (! $this->isControllerAction()) {\n            return [];\n        }\n\n        return $this->controllerDispatcher()->getMiddleware(\n            $this->getController(), $this->getControllerMethod()\n        );\n    }\n\n    /**\n     * Get the dispatcher for the route's controller.\n     *\n     * @return \\Illuminate\\Routing\\Contracts\\ControllerDispatcher\n     */\n    public function controllerDispatcher()\n    {\n        if ($this->container->bound(ControllerDispatcherContract::class)) {\n            return $this->container->make(ControllerDispatcherContract::class);\n        }\n\n        return new ControllerDispatcher($this->container);\n    }\n\n    /**\n     * Get the route validators for the instance.\n     *\n     * @return array\n     */\n    public static function getValidators()\n    {\n        if (isset(static::$validators)) {\n            return static::$validators;\n        }\n\n        // To match the route, we will use a chain of responsibility pattern with the\n        // validator implementations. We will spin through each one making sure it\n        // passes and then we will know if the route as a whole matches request.\n        return static::$validators = [\n            new UriValidator, new MethodValidator,\n            new SchemeValidator, new HostValidator,\n        ];\n    }\n\n    /**\n     * Get the compiled version of the route.\n     *\n     * @return \\Symfony\\Component\\Routing\\CompiledRoute\n     */\n    public function getCompiled()\n    {\n        return $this->compiled;\n    }\n\n    /**\n     * Set the router instance on the route.\n     *\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return $this\n     */\n    public function setRouter(Router $router)\n    {\n        $this->router = $router;\n\n        return $this;\n    }\n\n    /**\n     * Set the container instance on the route.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @return $this\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n\n        return $this;\n    }\n\n    /**\n     * Prepare the route instance for serialization.\n     *\n     * @return void\n     *\n     * @throws \\LogicException\n     */\n    public function prepareForSerialization()\n    {\n        if ($this->action['uses'] instanceof Closure) {\n            throw new LogicException(\"Unable to prepare route [{$this->uri}] for serialization. Uses Closure.\");\n        }\n\n        $this->compileRoute();\n\n        unset($this->router, $this->container);\n    }\n\n    /**\n     * Dynamically access route parameters.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->parameter($key);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteAction.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse LogicException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse UnexpectedValueException;\n\nclass RouteAction\n{\n    /**\n     * Parse the given action into an array.\n     *\n     * @param  string  $uri\n     * @param  mixed  $action\n     * @return array\n     */\n    public static function parse($uri, $action)\n    {\n        // If no action is passed in right away, we assume the user will make use of\n        // fluent routing. In that case, we set a default closure, to be executed\n        // if the user never explicitly sets an action to handle the given uri.\n        if (is_null($action)) {\n            return static::missingAction($uri);\n        }\n\n        // If the action is already a Closure instance, we will just set that instance\n        // as the \"uses\" property, because there is nothing else we need to do when\n        // it is available. Otherwise we will need to find it in the action list.\n        if (is_callable($action, true)) {\n            return ! is_array($action) ? ['uses' => $action] : [\n                'uses' => $action[0].'@'.$action[1],\n                'controller' => $action[0].'@'.$action[1],\n            ];\n        }\n\n        // If no \"uses\" property has been set, we will dig through the array to find a\n        // Closure instance within this list. We will set the first Closure we come\n        // across into the \"uses\" property that will get fired off by this route.\n        elseif (! isset($action['uses'])) {\n            $action['uses'] = static::findCallable($action);\n        }\n\n        if (is_string($action['uses']) && ! Str::contains($action['uses'], '@')) {\n            $action['uses'] = static::makeInvokable($action['uses']);\n        }\n\n        return $action;\n    }\n\n    /**\n     * Get an action for a route that has no action.\n     *\n     * @param  string  $uri\n     * @return array\n     */\n    protected static function missingAction($uri)\n    {\n        return ['uses' => function () use ($uri) {\n            throw new LogicException(\"Route for [{$uri}] has no action.\");\n        }];\n    }\n\n    /**\n     * Find the callable in an action array.\n     *\n     * @param  array  $action\n     * @return callable\n     */\n    protected static function findCallable(array $action)\n    {\n        return Arr::first($action, function ($value, $key) {\n            return is_callable($value) && is_numeric($key);\n        });\n    }\n\n    /**\n     * Make an action for an invokable controller.\n     *\n     * @param  string $action\n     * @return string\n     *\n     * @throws \\UnexpectedValueException\n     */\n    protected static function makeInvokable($action)\n    {\n        if (! method_exists($action, '__invoke')) {\n            throw new UnexpectedValueException(\"Invalid route action: [{$action}].\");\n        }\n\n        return $action.'@__invoke';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteBinding.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\Eloquent\\ModelNotFoundException;\n\nclass RouteBinding\n{\n    /**\n     * Create a Route model binding for a given callback.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  \\Closure|string  $binder\n     * @return \\Closure\n     */\n    public static function forCallback($container, $binder)\n    {\n        if (is_string($binder)) {\n            return static::createClassBinding($container, $binder);\n        }\n\n        return $binder;\n    }\n\n    /**\n     * Create a class based binding using the IoC container.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  string  $binding\n     * @return \\Closure\n     */\n    protected static function createClassBinding($container, $binding)\n    {\n        return function ($value, $route) use ($container, $binding) {\n            // If the binding has an @ sign, we will assume it's being used to delimit\n            // the class name from the bind method name. This allows for bindings\n            // to run multiple bind methods in a single class for convenience.\n            [$class, $method] = Str::parseCallback($binding, 'bind');\n\n            $callable = [$container->make($class), $method];\n\n            return call_user_func($callable, $value, $route);\n        };\n    }\n\n    /**\n     * Create a Route model binding for a model.\n     *\n     * @param  \\Illuminate\\Container\\Container  $container\n     * @param  string  $class\n     * @param  \\Closure|null  $callback\n     * @return \\Closure\n     */\n    public static function forModel($container, $class, $callback = null)\n    {\n        return function ($value) use ($container, $class, $callback) {\n            if (is_null($value)) {\n                return;\n            }\n\n            // For model binders, we will attempt to retrieve the models using the first\n            // method on the model instance. If we cannot retrieve the models we'll\n            // throw a not found exception otherwise we will return the instance.\n            $instance = $container->make($class);\n\n            if ($model = $instance->resolveRouteBinding($value)) {\n                return $model;\n            }\n\n            // If a callback was supplied to the method we will call that to determine\n            // what we should do when the model is not found. This just gives these\n            // developer a little greater flexibility to decide what will happen.\n            if ($callback instanceof Closure) {\n                return call_user_func($callback, $value);\n            }\n\n            throw (new ModelNotFoundException)->setModel($class);\n        };\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Countable;\nuse ArrayIterator;\nuse IteratorAggregate;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Http\\Response;\nuse Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException;\nuse Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException;\n\nclass RouteCollection implements Countable, IteratorAggregate\n{\n    /**\n     * An array of the routes keyed by method.\n     *\n     * @var array\n     */\n    protected $routes = [];\n\n    /**\n     * A flattened array of all of the routes.\n     *\n     * @var array\n     */\n    protected $allRoutes = [];\n\n    /**\n     * A look-up table of routes by their names.\n     *\n     * @var array\n     */\n    protected $nameList = [];\n\n    /**\n     * A look-up table of routes by controller action.\n     *\n     * @var array\n     */\n    protected $actionList = [];\n\n    /**\n     * Add a Route instance to the collection.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function add(Route $route)\n    {\n        $this->addToCollections($route);\n\n        $this->addLookups($route);\n\n        return $route;\n    }\n\n    /**\n     * Add the given route to the arrays of routes.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    protected function addToCollections($route)\n    {\n        $domainAndUri = $route->getDomain().$route->uri();\n\n        foreach ($route->methods() as $method) {\n            $this->routes[$method][$domainAndUri] = $route;\n        }\n\n        $this->allRoutes[$method.$domainAndUri] = $route;\n    }\n\n    /**\n     * Add the route to any look-up tables if necessary.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    protected function addLookups($route)\n    {\n        // If the route has a name, we will add it to the name look-up table so that we\n        // will quickly be able to find any route associate with a name and not have\n        // to iterate through every route every time we need to perform a look-up.\n        if ($name = $route->getName()) {\n            $this->nameList[$name] = $route;\n        }\n\n        // When the route is routing to a controller we will also store the action that\n        // is used by the route. This will let us reverse route to controllers while\n        // processing a request and easily generate URLs to the given controllers.\n        $action = $route->getAction();\n\n        if (isset($action['controller'])) {\n            $this->addToActionList($action, $route);\n        }\n    }\n\n    /**\n     * Add a route to the controller action dictionary.\n     *\n     * @param  array  $action\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    protected function addToActionList($action, $route)\n    {\n        $this->actionList[trim($action['controller'], '\\\\')] = $route;\n    }\n\n    /**\n     * Refresh the name look-up table.\n     *\n     * This is done in case any names are fluently defined or if routes are overwritten.\n     *\n     * @return void\n     */\n    public function refreshNameLookups()\n    {\n        $this->nameList = [];\n\n        foreach ($this->allRoutes as $route) {\n            if ($route->getName()) {\n                $this->nameList[$route->getName()] = $route;\n            }\n        }\n    }\n\n    /**\n     * Refresh the action look-up table.\n     *\n     * This is done in case any actions are overwritten with new controllers.\n     *\n     * @return void\n     */\n    public function refreshActionLookups()\n    {\n        $this->actionList = [];\n\n        foreach ($this->allRoutes as $route) {\n            if (isset($route->getAction()['controller'])) {\n                $this->addToActionList($route->getAction(), $route);\n            }\n        }\n    }\n\n    /**\n     * Find the first route matching a given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Routing\\Route\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException\n     */\n    public function match(Request $request)\n    {\n        $routes = $this->get($request->getMethod());\n\n        // First, we will see if we can find a matching route for this current request\n        // method. If we can, great, we can just return it so that it can be called\n        // by the consumer. Otherwise we will check for routes with another verb.\n        $route = $this->matchAgainstRoutes($routes, $request);\n\n        if (! is_null($route)) {\n            return $route->bind($request);\n        }\n\n        // If no route was found we will now check if a matching route is specified by\n        // another HTTP verb. If it is we will need to throw a MethodNotAllowed and\n        // inform the user agent of which HTTP verb it should use for this route.\n        $others = $this->checkForAlternateVerbs($request);\n\n        if (count($others) > 0) {\n            return $this->getRouteForMethods($request, $others);\n        }\n\n        throw new NotFoundHttpException;\n    }\n\n    /**\n     * Determine if a route in the array matches the request.\n     *\n     * @param  array  $routes\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  bool  $includingMethod\n     * @return \\Illuminate\\Routing\\Route|null\n     */\n    protected function matchAgainstRoutes(array $routes, $request, $includingMethod = true)\n    {\n        [$fallbacks, $routes] = collect($routes)->partition(function ($route) {\n            return $route->isFallback;\n        });\n\n        return $routes->merge($fallbacks)->first(function ($value) use ($request, $includingMethod) {\n            return $value->matches($request, $includingMethod);\n        });\n    }\n\n    /**\n     * Determine if any routes match on another HTTP verb.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function checkForAlternateVerbs($request)\n    {\n        $methods = array_diff(Router::$verbs, [$request->getMethod()]);\n\n        // Here we will spin through all verbs except for the current request verb and\n        // check to see if any routes respond to them. If they do, we will return a\n        // proper error response with the correct headers on the response string.\n        $others = [];\n\n        foreach ($methods as $method) {\n            if (! is_null($this->matchAgainstRoutes($this->get($method), $request, false))) {\n                $others[] = $method;\n            }\n        }\n\n        return $others;\n    }\n\n    /**\n     * Get a route (if necessary) that responds when other available methods are present.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array  $methods\n     * @return \\Illuminate\\Routing\\Route\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException\n     */\n    protected function getRouteForMethods($request, array $methods)\n    {\n        if ($request->method() === 'OPTIONS') {\n            return (new Route('OPTIONS', $request->path(), function () use ($methods) {\n                return new Response('', 200, ['Allow' => implode(',', $methods)]);\n            }))->bind($request);\n        }\n\n        $this->methodNotAllowed($methods, $request->method());\n    }\n\n    /**\n     * Throw a method not allowed HTTP exception.\n     *\n     * @param  array  $others\n     * @param  string  $method\n     * @return void\n     *\n     * @throws \\Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException\n     */\n    protected function methodNotAllowed(array $others, $method)\n    {\n        throw new MethodNotAllowedHttpException(\n            $others,\n            sprintf(\n                'The %s method is not supported for this route. Supported methods: %s.',\n                $method,\n                implode(', ', $others)\n            )\n        );\n    }\n\n    /**\n     * Get routes from the collection by method.\n     *\n     * @param  string|null  $method\n     * @return array\n     */\n    public function get($method = null)\n    {\n        return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []);\n    }\n\n    /**\n     * Determine if the route collection contains a given named route.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasNamedRoute($name)\n    {\n        return ! is_null($this->getByName($name));\n    }\n\n    /**\n     * Get a route instance by its name.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Routing\\Route|null\n     */\n    public function getByName($name)\n    {\n        return $this->nameList[$name] ?? null;\n    }\n\n    /**\n     * Get a route instance by its controller action.\n     *\n     * @param  string  $action\n     * @return \\Illuminate\\Routing\\Route|null\n     */\n    public function getByAction($action)\n    {\n        return $this->actionList[$action] ?? null;\n    }\n\n    /**\n     * Get all of the routes in the collection.\n     *\n     * @return array\n     */\n    public function getRoutes()\n    {\n        return array_values($this->allRoutes);\n    }\n\n    /**\n     * Get all of the routes keyed by their HTTP verb / method.\n     *\n     * @return array\n     */\n    public function getRoutesByMethod()\n    {\n        return $this->routes;\n    }\n\n    /**\n     * Get all of the routes keyed by their name.\n     *\n     * @return array\n     */\n    public function getRoutesByName()\n    {\n        return $this->nameList;\n    }\n\n    /**\n     * Get an iterator for the items.\n     *\n     * @return \\ArrayIterator\n     */\n    public function getIterator()\n    {\n        return new ArrayIterator($this->getRoutes());\n    }\n\n    /**\n     * Count the number of items in the collection.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->getRoutes());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteCompiler.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Symfony\\Component\\Routing\\Route as SymfonyRoute;\n\nclass RouteCompiler\n{\n    /**\n     * The route instance.\n     *\n     * @var \\Illuminate\\Routing\\Route\n     */\n    protected $route;\n\n    /**\n     * Create a new Route compiler instance.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    public function __construct($route)\n    {\n        $this->route = $route;\n    }\n\n    /**\n     * Compile the route.\n     *\n     * @return \\Symfony\\Component\\Routing\\CompiledRoute\n     */\n    public function compile()\n    {\n        $optionals = $this->getOptionalParameters();\n\n        $uri = preg_replace('/\\{(\\w+?)\\?\\}/', '{$1}', $this->route->uri());\n\n        return (\n            new SymfonyRoute($uri, $optionals, $this->route->wheres, ['utf8' => true], $this->route->getDomain() ?: '')\n        )->compile();\n    }\n\n    /**\n     * Get the optional parameters for the route.\n     *\n     * @return array\n     */\n    protected function getOptionalParameters()\n    {\n        preg_match_all('/\\{(\\w+?)\\?\\}/', $this->route->uri(), $matches);\n\n        return isset($matches[1]) ? array_fill_keys($matches[1], null) : [];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteDependencyResolverTrait.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse ReflectionMethod;\nuse ReflectionParameter;\nuse Illuminate\\Support\\Arr;\nuse ReflectionFunctionAbstract;\n\ntrait RouteDependencyResolverTrait\n{\n    /**\n     * Resolve the object method's type-hinted dependencies.\n     *\n     * @param  array  $parameters\n     * @param  object  $instance\n     * @param  string  $method\n     * @return array\n     */\n    protected function resolveClassMethodDependencies(array $parameters, $instance, $method)\n    {\n        if (! method_exists($instance, $method)) {\n            return $parameters;\n        }\n\n        return $this->resolveMethodDependencies(\n            $parameters, new ReflectionMethod($instance, $method)\n        );\n    }\n\n    /**\n     * Resolve the given method's type-hinted dependencies.\n     *\n     * @param  array  $parameters\n     * @param  \\ReflectionFunctionAbstract  $reflector\n     * @return array\n     */\n    public function resolveMethodDependencies(array $parameters, ReflectionFunctionAbstract $reflector)\n    {\n        $instanceCount = 0;\n\n        $values = array_values($parameters);\n\n        foreach ($reflector->getParameters() as $key => $parameter) {\n            $instance = $this->transformDependency(\n                $parameter, $parameters\n            );\n\n            if (! is_null($instance)) {\n                $instanceCount++;\n\n                $this->spliceIntoParameters($parameters, $key, $instance);\n            } elseif (! isset($values[$key - $instanceCount]) &&\n                      $parameter->isDefaultValueAvailable()) {\n                $this->spliceIntoParameters($parameters, $key, $parameter->getDefaultValue());\n            }\n        }\n\n        return $parameters;\n    }\n\n    /**\n     * Attempt to transform the given parameter into a class instance.\n     *\n     * @param  \\ReflectionParameter  $parameter\n     * @param  array  $parameters\n     * @return mixed\n     */\n    protected function transformDependency(ReflectionParameter $parameter, $parameters)\n    {\n        $class = $parameter->getClass();\n\n        // If the parameter has a type-hinted class, we will check to see if it is already in\n        // the list of parameters. If it is we will just skip it as it is probably a model\n        // binding and we do not want to mess with those; otherwise, we resolve it here.\n        if ($class && ! $this->alreadyInParameters($class->name, $parameters)) {\n            return $parameter->isDefaultValueAvailable()\n                ? $parameter->getDefaultValue()\n                : $this->container->make($class->name);\n        }\n    }\n\n    /**\n     * Determine if an object of the given class is in a list of parameters.\n     *\n     * @param  string  $class\n     * @param  array  $parameters\n     * @return bool\n     */\n    protected function alreadyInParameters($class, array $parameters)\n    {\n        return ! is_null(Arr::first($parameters, function ($value) use ($class) {\n            return $value instanceof $class;\n        }));\n    }\n\n    /**\n     * Splice the given value into the parameter list.\n     *\n     * @param  array  $parameters\n     * @param  string  $offset\n     * @param  mixed  $value\n     * @return void\n     */\n    protected function spliceIntoParameters(array &$parameters, $offset, $value)\n    {\n        array_splice(\n            $parameters, $offset, 0, [$value]\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteFileRegistrar.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nclass RouteFileRegistrar\n{\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * Create a new route file registrar instance.\n     *\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return void\n     */\n    public function __construct(Router $router)\n    {\n        $this->router = $router;\n    }\n\n    /**\n     * Require the given routes file.\n     *\n     * @param  string  $routes\n     * @return void\n     */\n    public function register($routes)\n    {\n        $router = $this->router;\n\n        require $routes;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteGroup.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Arr;\n\nclass RouteGroup\n{\n    /**\n     * Merge route groups into a new array.\n     *\n     * @param  array  $new\n     * @param  array  $old\n     * @return array\n     */\n    public static function merge($new, $old)\n    {\n        if (isset($new['domain'])) {\n            unset($old['domain']);\n        }\n\n        $new = array_merge(static::formatAs($new, $old), [\n            'namespace' => static::formatNamespace($new, $old),\n            'prefix' => static::formatPrefix($new, $old),\n            'where' => static::formatWhere($new, $old),\n        ]);\n\n        return array_merge_recursive(Arr::except(\n            $old, ['namespace', 'prefix', 'where', 'as']\n        ), $new);\n    }\n\n    /**\n     * Format the namespace for the new group attributes.\n     *\n     * @param  array  $new\n     * @param  array  $old\n     * @return string|null\n     */\n    protected static function formatNamespace($new, $old)\n    {\n        if (isset($new['namespace'])) {\n            return isset($old['namespace']) && strpos($new['namespace'], '\\\\') !== 0\n                    ? trim($old['namespace'], '\\\\').'\\\\'.trim($new['namespace'], '\\\\')\n                    : trim($new['namespace'], '\\\\');\n        }\n\n        return $old['namespace'] ?? null;\n    }\n\n    /**\n     * Format the prefix for the new group attributes.\n     *\n     * @param  array  $new\n     * @param  array  $old\n     * @return string|null\n     */\n    protected static function formatPrefix($new, $old)\n    {\n        $old = $old['prefix'] ?? null;\n\n        return isset($new['prefix']) ? trim($old, '/').'/'.trim($new['prefix'], '/') : $old;\n    }\n\n    /**\n     * Format the \"wheres\" for the new group attributes.\n     *\n     * @param  array  $new\n     * @param  array  $old\n     * @return array\n     */\n    protected static function formatWhere($new, $old)\n    {\n        return array_merge(\n            $old['where'] ?? [],\n            $new['where'] ?? []\n        );\n    }\n\n    /**\n     * Format the \"as\" clause of the new group attributes.\n     *\n     * @param  array  $new\n     * @param  array  $old\n     * @return array\n     */\n    protected static function formatAs($new, $old)\n    {\n        if (isset($old['as'])) {\n            $new['as'] = $old['as'].($new['as'] ?? '');\n        }\n\n        return $new;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteParameterBinder.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Arr;\n\nclass RouteParameterBinder\n{\n    /**\n     * The route instance.\n     *\n     * @var \\Illuminate\\Routing\\Route\n     */\n    protected $route;\n\n    /**\n     * Create a new Route parameter binder instance.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    public function __construct($route)\n    {\n        $this->route = $route;\n    }\n\n    /**\n     * Get the parameters for the route.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    public function parameters($request)\n    {\n        // If the route has a regular expression for the host part of the URI, we will\n        // compile that and get the parameter matches for this domain. We will then\n        // merge them into this parameters array so that this array is completed.\n        $parameters = $this->bindPathParameters($request);\n\n        // If the route has a regular expression for the host part of the URI, we will\n        // compile that and get the parameter matches for this domain. We will then\n        // merge them into this parameters array so that this array is completed.\n        if (! is_null($this->route->compiled->getHostRegex())) {\n            $parameters = $this->bindHostParameters(\n                $request, $parameters\n            );\n        }\n\n        return $this->replaceDefaults($parameters);\n    }\n\n    /**\n     * Get the parameter matches for the path portion of the URI.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return array\n     */\n    protected function bindPathParameters($request)\n    {\n        $path = '/'.ltrim($request->decodedPath(), '/');\n\n        preg_match($this->route->compiled->getRegex(), $path, $matches);\n\n        return $this->matchToKeys(array_slice($matches, 1));\n    }\n\n    /**\n     * Extract the parameter list from the host part of the request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function bindHostParameters($request, $parameters)\n    {\n        preg_match($this->route->compiled->getHostRegex(), $request->getHost(), $matches);\n\n        return array_merge($this->matchToKeys(array_slice($matches, 1)), $parameters);\n    }\n\n    /**\n     * Combine a set of parameter matches with the route's keys.\n     *\n     * @param  array  $matches\n     * @return array\n     */\n    protected function matchToKeys(array $matches)\n    {\n        if (empty($parameterNames = $this->route->parameterNames())) {\n            return [];\n        }\n\n        $parameters = array_intersect_key($matches, array_flip($parameterNames));\n\n        return array_filter($parameters, function ($value) {\n            return is_string($value) && strlen($value) > 0;\n        });\n    }\n\n    /**\n     * Replace null parameters with their defaults.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function replaceDefaults(array $parameters)\n    {\n        foreach ($parameters as $key => $value) {\n            $parameters[$key] = $value ?? Arr::get($this->route->defaults, $key);\n        }\n\n        foreach ($this->route->defaults as $key => $value) {\n            if (! isset($parameters[$key])) {\n                $parameters[$key] = $value;\n            }\n        }\n\n        return $parameters;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteRegistrar.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Arr;\nuse InvalidArgumentException;\n\n/**\n * @method \\Illuminate\\Routing\\Route get(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route post(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route put(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route delete(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route patch(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route options(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\Route any(string $uri, \\Closure|array|string|null $action = null)\n * @method \\Illuminate\\Routing\\RouteRegistrar as(string $value)\n * @method \\Illuminate\\Routing\\RouteRegistrar domain(string $value)\n * @method \\Illuminate\\Routing\\RouteRegistrar middleware(array|string|null $middleware)\n * @method \\Illuminate\\Routing\\RouteRegistrar name(string $value)\n * @method \\Illuminate\\Routing\\RouteRegistrar namespace(string $value)\n * @method \\Illuminate\\Routing\\RouteRegistrar prefix(string  $prefix)\n * @method \\Illuminate\\Routing\\RouteRegistrar where(array  $where)\n */\nclass RouteRegistrar\n{\n    /**\n     * The router instance.\n     *\n     * @var \\Illuminate\\Routing\\Router\n     */\n    protected $router;\n\n    /**\n     * The attributes to pass on to the router.\n     *\n     * @var array\n     */\n    protected $attributes = [];\n\n    /**\n     * The methods to dynamically pass through to the router.\n     *\n     * @var array\n     */\n    protected $passthru = [\n        'get', 'post', 'put', 'patch', 'delete', 'options', 'any',\n    ];\n\n    /**\n     * The attributes that can be set through this class.\n     *\n     * @var array\n     */\n    protected $allowedAttributes = [\n        'as', 'domain', 'middleware', 'name', 'namespace', 'prefix', 'where',\n    ];\n\n    /**\n     * The attributes that are aliased.\n     *\n     * @var array\n     */\n    protected $aliases = [\n        'name' => 'as',\n    ];\n\n    /**\n     * Create a new route registrar instance.\n     *\n     * @param  \\Illuminate\\Routing\\Router  $router\n     * @return void\n     */\n    public function __construct(Router $router)\n    {\n        $this->router = $router;\n    }\n\n    /**\n     * Set the value for a given attribute.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return $this\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function attribute($key, $value)\n    {\n        if (! in_array($key, $this->allowedAttributes)) {\n            throw new InvalidArgumentException(\"Attribute [{$key}] does not exist.\");\n        }\n\n        $this->attributes[Arr::get($this->aliases, $key, $key)] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Route a resource to a controller.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array  $options\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function resource($name, $controller, array $options = [])\n    {\n        return $this->router->resource($name, $controller, $this->attributes + $options);\n    }\n\n    /**\n     * Create a route group with shared attributes.\n     *\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public function group($callback)\n    {\n        $this->router->group($this->attributes, $callback);\n    }\n\n    /**\n     * Register a new route with the given verbs.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  \\Closure|array|string|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function match($methods, $uri, $action = null)\n    {\n        return $this->router->match($methods, $uri, $this->compileAction($action));\n    }\n\n    /**\n     * Register a new route with the router.\n     *\n     * @param  string  $method\n     * @param  string  $uri\n     * @param  \\Closure|array|string|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function registerRoute($method, $uri, $action = null)\n    {\n        if (! is_array($action)) {\n            $action = array_merge($this->attributes, $action ? ['uses' => $action] : []);\n        }\n\n        return $this->router->{$method}($uri, $this->compileAction($action));\n    }\n\n    /**\n     * Compile the action into an array including the attributes.\n     *\n     * @param  \\Closure|array|string|null  $action\n     * @return array\n     */\n    protected function compileAction($action)\n    {\n        if (is_null($action)) {\n            return $this->attributes;\n        }\n\n        if (is_string($action) || $action instanceof Closure) {\n            $action = ['uses' => $action];\n        }\n\n        return array_merge($this->attributes, $action);\n    }\n\n    /**\n     * Dynamically handle calls into the route registrar.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return \\Illuminate\\Routing\\Route|$this\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (in_array($method, $this->passthru)) {\n            return $this->registerRoute($method, ...$parameters);\n        }\n\n        if (in_array($method, $this->allowedAttributes)) {\n            if ($method === 'middleware') {\n                return $this->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters);\n            }\n\n            return $this->attribute($method, $parameters[0]);\n        }\n\n        throw new BadMethodCallException(sprintf(\n            'Method %s::%s does not exist.', static::class, $method\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse ReflectionMethod;\nuse ReflectionFunction;\nuse Illuminate\\Support\\Str;\n\nclass RouteSignatureParameters\n{\n    /**\n     * Extract the route action's signature parameters.\n     *\n     * @param  array  $action\n     * @param  string|null  $subClass\n     * @return array\n     */\n    public static function fromAction(array $action, $subClass = null)\n    {\n        $parameters = is_string($action['uses'])\n                        ? static::fromClassMethodString($action['uses'])\n                        : (new ReflectionFunction($action['uses']))->getParameters();\n\n        return is_null($subClass) ? $parameters : array_filter($parameters, function ($p) use ($subClass) {\n            return $p->getClass() && $p->getClass()->isSubclassOf($subClass);\n        });\n    }\n\n    /**\n     * Get the parameters for the given class / method by string.\n     *\n     * @param  string  $uses\n     * @return array\n     */\n    protected static function fromClassMethodString($uses)\n    {\n        [$class, $method] = Str::parseCallback($uses);\n\n        if (! method_exists($class, $method) && is_callable($class, $method)) {\n            return [];\n        }\n\n        return (new ReflectionMethod($class, $method))->getParameters();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RouteUrlGenerator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Routing\\Exceptions\\UrlGenerationException;\n\nclass RouteUrlGenerator\n{\n    /**\n     * The URL generator instance.\n     *\n     * @var \\Illuminate\\Routing\\UrlGenerator\n     */\n    protected $url;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $request;\n\n    /**\n     * The named parameter defaults.\n     *\n     * @var array\n     */\n    public $defaultParameters = [];\n\n    /**\n     * Characters that should not be URL encoded.\n     *\n     * @var array\n     */\n    public $dontEncode = [\n        '%2F' => '/',\n        '%40' => '@',\n        '%3A' => ':',\n        '%3B' => ';',\n        '%2C' => ',',\n        '%3D' => '=',\n        '%2B' => '+',\n        '%21' => '!',\n        '%2A' => '*',\n        '%7C' => '|',\n        '%3F' => '?',\n        '%26' => '&',\n        '%23' => '#',\n        '%25' => '%',\n    ];\n\n    /**\n     * Create a new Route URL generator.\n     *\n     * @param  \\Illuminate\\Routing\\UrlGenerator  $url\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function __construct($url, $request)\n    {\n        $this->url = $url;\n        $this->request = $request;\n    }\n\n    /**\n     * Generate a URL for the given route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  array  $parameters\n     * @param  bool  $absolute\n     * @return string\n     *\n     * @throws \\Illuminate\\Routing\\Exceptions\\UrlGenerationException\n     */\n    public function to($route, $parameters = [], $absolute = false)\n    {\n        $domain = $this->getRouteDomain($route, $parameters);\n\n        // First we will construct the entire URI including the root and query string. Once it\n        // has been constructed, we'll make sure we don't have any missing parameters or we\n        // will need to throw the exception to let the developers know one was not given.\n        $uri = $this->addQueryString($this->url->format(\n            $root = $this->replaceRootParameters($route, $domain, $parameters),\n            $this->replaceRouteParameters($route->uri(), $parameters),\n            $route\n        ), $parameters);\n\n        if (preg_match('/\\{.*?\\}/', $uri)) {\n            throw UrlGenerationException::forMissingParameters($route);\n        }\n\n        // Once we have ensured that there are no missing parameters in the URI we will encode\n        // the URI and prepare it for returning to the developer. If the URI is supposed to\n        // be absolute, we will return it as-is. Otherwise we will remove the URL's root.\n        $uri = strtr(rawurlencode($uri), $this->dontEncode);\n\n        if (! $absolute) {\n            $uri = preg_replace('#^(//|[^/?])+#', '', $uri);\n\n            if ($base = $this->request->getBaseUrl()) {\n                $uri = preg_replace('#^'.$base.'#i', '', $uri);\n            }\n\n            return '/'.ltrim($uri, '/');\n        }\n\n        return $uri;\n    }\n\n    /**\n     * Get the formatted domain for a given route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function getRouteDomain($route, &$parameters)\n    {\n        return $route->getDomain() ? $this->formatDomain($route, $parameters) : null;\n    }\n\n    /**\n     * Format the domain and port for the route and request.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function formatDomain($route, &$parameters)\n    {\n        return $this->addPortToDomain(\n            $this->getRouteScheme($route).$route->getDomain()\n        );\n    }\n\n    /**\n     * Get the scheme for the given route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return string\n     */\n    protected function getRouteScheme($route)\n    {\n        if ($route->httpOnly()) {\n            return 'http://';\n        } elseif ($route->httpsOnly()) {\n            return 'https://';\n        }\n\n        return $this->url->formatScheme();\n    }\n\n    /**\n     * Add the port to the domain if necessary.\n     *\n     * @param  string  $domain\n     * @return string\n     */\n    protected function addPortToDomain($domain)\n    {\n        $secure = $this->request->isSecure();\n\n        $port = (int) $this->request->getPort();\n\n        return ($secure && $port === 443) || (! $secure && $port === 80)\n                    ? $domain : $domain.':'.$port;\n    }\n\n    /**\n     * Replace the parameters on the root path.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  string  $domain\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function replaceRootParameters($route, $domain, &$parameters)\n    {\n        $scheme = $this->getRouteScheme($route);\n\n        return $this->replaceRouteParameters(\n            $this->url->formatRoot($scheme, $domain), $parameters\n        );\n    }\n\n    /**\n     * Replace all of the wildcard parameters for a route path.\n     *\n     * @param  string  $path\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function replaceRouteParameters($path, array &$parameters)\n    {\n        $path = $this->replaceNamedParameters($path, $parameters);\n\n        $path = preg_replace_callback('/\\{.*?\\}/', function ($match) use (&$parameters) {\n            return (empty($parameters) && ! Str::endsWith($match[0], '?}'))\n                        ? $match[0]\n                        : array_shift($parameters);\n        }, $path);\n\n        return trim(preg_replace('/\\{.*?\\?\\}/', '', $path), '/');\n    }\n\n    /**\n     * Replace all of the named parameters in the path.\n     *\n     * @param  string  $path\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function replaceNamedParameters($path, &$parameters)\n    {\n        return preg_replace_callback('/\\{(.*?)\\??\\}/', function ($m) use (&$parameters) {\n            if (isset($parameters[$m[1]])) {\n                return Arr::pull($parameters, $m[1]);\n            } elseif (isset($this->defaultParameters[$m[1]])) {\n                return $this->defaultParameters[$m[1]];\n            }\n\n            return $m[0];\n        }, $path);\n    }\n\n    /**\n     * Add a query string to the URI.\n     *\n     * @param  string  $uri\n     * @param  array  $parameters\n     * @return mixed|string\n     */\n    protected function addQueryString($uri, array $parameters)\n    {\n        // If the URI has a fragment we will move it to the end of this URI since it will\n        // need to come after any query string that may be added to the URL else it is\n        // not going to be available. We will remove it then append it back on here.\n        if (! is_null($fragment = parse_url($uri, PHP_URL_FRAGMENT))) {\n            $uri = preg_replace('/#.*/', '', $uri);\n        }\n\n        $uri .= $this->getRouteQueryString($parameters);\n\n        return is_null($fragment) ? $uri : $uri.\"#{$fragment}\";\n    }\n\n    /**\n     * Get the query string for a given route.\n     *\n     * @param  array  $parameters\n     * @return string\n     */\n    protected function getRouteQueryString(array $parameters)\n    {\n        // First we will get all of the string parameters that are remaining after we\n        // have replaced the route wildcards. We'll then build a query string from\n        // these string parameters then use it as a starting point for the rest.\n        if (count($parameters) === 0) {\n            return '';\n        }\n\n        $query = Arr::query(\n            $keyed = $this->getStringParameters($parameters)\n        );\n\n        // Lastly, if there are still parameters remaining, we will fetch the numeric\n        // parameters that are in the array and add them to the query string or we\n        // will make the initial query string if it wasn't started with strings.\n        if (count($keyed) < count($parameters)) {\n            $query .= '&'.implode(\n                '&', $this->getNumericParameters($parameters)\n            );\n        }\n\n        return '?'.trim($query, '&');\n    }\n\n    /**\n     * Get the string parameters from a given list.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function getStringParameters(array $parameters)\n    {\n        return array_filter($parameters, 'is_string', ARRAY_FILTER_USE_KEY);\n    }\n\n    /**\n     * Get the numeric parameters from a given list.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function getNumericParameters(array $parameters)\n    {\n        return array_filter($parameters, 'is_numeric', ARRAY_FILTER_USE_KEY);\n    }\n\n    /**\n     * Set the default named parameters used by the URL generator.\n     *\n     * @param  array  $defaults\n     * @return void\n     */\n    public function defaults(array $defaults)\n    {\n        $this->defaultParameters = array_merge(\n            $this->defaultParameters, $defaults\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/Router.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse ArrayObject;\nuse JsonSerializable;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Http\\Response;\nuse Illuminate\\Http\\JsonResponse;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Container\\Container;\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Support\\Responsable;\nuse Illuminate\\Contracts\\Routing\\BindingRegistrar;\nuse Psr\\Http\\Message\\ResponseInterface as PsrResponseInterface;\nuse Illuminate\\Contracts\\Routing\\Registrar as RegistrarContract;\nuse Symfony\\Bridge\\PsrHttpMessage\\Factory\\HttpFoundationFactory;\nuse Symfony\\Component\\HttpFoundation\\Response as SymfonyResponse;\n\n/**\n * @mixin \\Illuminate\\Routing\\RouteRegistrar\n */\nclass Router implements RegistrarContract, BindingRegistrar\n{\n    use Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The route collection instance.\n     *\n     * @var \\Illuminate\\Routing\\RouteCollection\n     */\n    protected $routes;\n\n    /**\n     * The currently dispatched route instance.\n     *\n     * @var \\Illuminate\\Routing\\Route|null\n     */\n    protected $current;\n\n    /**\n     * The request currently being dispatched.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $currentRequest;\n\n    /**\n     * All of the short-hand keys for middlewares.\n     *\n     * @var array\n     */\n    protected $middleware = [];\n\n    /**\n     * All of the middleware groups.\n     *\n     * @var array\n     */\n    protected $middlewareGroups = [];\n\n    /**\n     * The priority-sorted list of middleware.\n     *\n     * Forces the listed middleware to always be in the given order.\n     *\n     * @var array\n     */\n    public $middlewarePriority = [];\n\n    /**\n     * The registered route value binders.\n     *\n     * @var array\n     */\n    protected $binders = [];\n\n    /**\n     * The globally available parameter patterns.\n     *\n     * @var array\n     */\n    protected $patterns = [];\n\n    /**\n     * The route group attribute stack.\n     *\n     * @var array\n     */\n    protected $groupStack = [];\n\n    /**\n     * All of the verbs supported by the router.\n     *\n     * @var array\n     */\n    public static $verbs = ['GET', 'HEAD', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'];\n\n    /**\n     * Create a new Router instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @param  \\Illuminate\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Dispatcher $events, Container $container = null)\n    {\n        $this->events = $events;\n        $this->routes = new RouteCollection;\n        $this->container = $container ?: new Container;\n    }\n\n    /**\n     * Register a new GET route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function get($uri, $action = null)\n    {\n        return $this->addRoute(['GET', 'HEAD'], $uri, $action);\n    }\n\n    /**\n     * Register a new POST route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function post($uri, $action = null)\n    {\n        return $this->addRoute('POST', $uri, $action);\n    }\n\n    /**\n     * Register a new PUT route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function put($uri, $action = null)\n    {\n        return $this->addRoute('PUT', $uri, $action);\n    }\n\n    /**\n     * Register a new PATCH route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function patch($uri, $action = null)\n    {\n        return $this->addRoute('PATCH', $uri, $action);\n    }\n\n    /**\n     * Register a new DELETE route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function delete($uri, $action = null)\n    {\n        return $this->addRoute('DELETE', $uri, $action);\n    }\n\n    /**\n     * Register a new OPTIONS route with the router.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function options($uri, $action = null)\n    {\n        return $this->addRoute('OPTIONS', $uri, $action);\n    }\n\n    /**\n     * Register a new route responding to all verbs.\n     *\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function any($uri, $action = null)\n    {\n        return $this->addRoute(self::$verbs, $uri, $action);\n    }\n\n    /**\n     * Register a new Fallback route with the router.\n     *\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function fallback($action)\n    {\n        $placeholder = 'fallbackPlaceholder';\n\n        return $this->addRoute(\n            'GET', \"{{$placeholder}}\", $action\n        )->where($placeholder, '.*')->fallback();\n    }\n\n    /**\n     * Create a redirect from one URI to another.\n     *\n     * @param  string  $uri\n     * @param  string  $destination\n     * @param  int  $status\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function redirect($uri, $destination, $status = 302)\n    {\n        return $this->any($uri, '\\Illuminate\\Routing\\RedirectController')\n                ->defaults('destination', $destination)\n                ->defaults('status', $status);\n    }\n\n    /**\n     * Create a permanent redirect from one URI to another.\n     *\n     * @param  string  $uri\n     * @param  string  $destination\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function permanentRedirect($uri, $destination)\n    {\n        return $this->redirect($uri, $destination, 301);\n    }\n\n    /**\n     * Register a new route that returns a view.\n     *\n     * @param  string  $uri\n     * @param  string  $view\n     * @param  array  $data\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function view($uri, $view, $data = [])\n    {\n        return $this->match(['GET', 'HEAD'], $uri, '\\Illuminate\\Routing\\ViewController')\n                ->defaults('view', $view)\n                ->defaults('data', $data);\n    }\n\n    /**\n     * Register a new route with the given verbs.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function match($methods, $uri, $action = null)\n    {\n        return $this->addRoute(array_map('strtoupper', (array) $methods), $uri, $action);\n    }\n\n    /**\n     * Register an array of resource controllers.\n     *\n     * @param  array  $resources\n     * @param  array  $options\n     * @return void\n     */\n    public function resources(array $resources, array $options = [])\n    {\n        foreach ($resources as $name => $controller) {\n            $this->resource($name, $controller, $options);\n        }\n    }\n\n    /**\n     * Route a resource to a controller.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array  $options\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function resource($name, $controller, array $options = [])\n    {\n        if ($this->container && $this->container->bound(ResourceRegistrar::class)) {\n            $registrar = $this->container->make(ResourceRegistrar::class);\n        } else {\n            $registrar = new ResourceRegistrar($this);\n        }\n\n        return new PendingResourceRegistration(\n            $registrar, $name, $controller, $options\n        );\n    }\n\n    /**\n     * Register an array of API resource controllers.\n     *\n     * @param  array  $resources\n     * @param  array  $options\n     * @return void\n     */\n    public function apiResources(array $resources, array $options = [])\n    {\n        foreach ($resources as $name => $controller) {\n            $this->apiResource($name, $controller, $options);\n        }\n    }\n\n    /**\n     * Route an API resource to a controller.\n     *\n     * @param  string  $name\n     * @param  string  $controller\n     * @param  array  $options\n     * @return \\Illuminate\\Routing\\PendingResourceRegistration\n     */\n    public function apiResource($name, $controller, array $options = [])\n    {\n        $only = ['index', 'show', 'store', 'update', 'destroy'];\n\n        if (isset($options['except'])) {\n            $only = array_diff($only, (array) $options['except']);\n        }\n\n        return $this->resource($name, $controller, array_merge([\n            'only' => $only,\n        ], $options));\n    }\n\n    /**\n     * Create a route group with shared attributes.\n     *\n     * @param  array  $attributes\n     * @param  \\Closure|string  $routes\n     * @return void\n     */\n    public function group(array $attributes, $routes)\n    {\n        $this->updateGroupStack($attributes);\n\n        // Once we have updated the group stack, we'll load the provided routes and\n        // merge in the group's attributes when the routes are created. After we\n        // have created the routes, we will pop the attributes off the stack.\n        $this->loadRoutes($routes);\n\n        array_pop($this->groupStack);\n    }\n\n    /**\n     * Update the group stack with the given attributes.\n     *\n     * @param  array  $attributes\n     * @return void\n     */\n    protected function updateGroupStack(array $attributes)\n    {\n        if (! empty($this->groupStack)) {\n            $attributes = $this->mergeWithLastGroup($attributes);\n        }\n\n        $this->groupStack[] = $attributes;\n    }\n\n    /**\n     * Merge the given array with the last group stack.\n     *\n     * @param  array  $new\n     * @return array\n     */\n    public function mergeWithLastGroup($new)\n    {\n        return RouteGroup::merge($new, end($this->groupStack));\n    }\n\n    /**\n     * Load the provided routes.\n     *\n     * @param  \\Closure|string  $routes\n     * @return void\n     */\n    protected function loadRoutes($routes)\n    {\n        if ($routes instanceof Closure) {\n            $routes($this);\n        } else {\n            (new RouteFileRegistrar($this))->register($routes);\n        }\n    }\n\n    /**\n     * Get the prefix from the last group on the stack.\n     *\n     * @return string\n     */\n    public function getLastGroupPrefix()\n    {\n        if (! empty($this->groupStack)) {\n            $last = end($this->groupStack);\n\n            return $last['prefix'] ?? '';\n        }\n\n        return '';\n    }\n\n    /**\n     * Add a route to the underlying route collection.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  \\Closure|array|string|callable|null  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function addRoute($methods, $uri, $action)\n    {\n        return $this->routes->add($this->createRoute($methods, $uri, $action));\n    }\n\n    /**\n     * Create a new route instance.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  mixed  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function createRoute($methods, $uri, $action)\n    {\n        // If the route is routing to a controller we will parse the route action into\n        // an acceptable array format before registering it and creating this route\n        // instance itself. We need to build the Closure that will call this out.\n        if ($this->actionReferencesController($action)) {\n            $action = $this->convertToControllerAction($action);\n        }\n\n        $route = $this->newRoute(\n            $methods, $this->prefix($uri), $action\n        );\n\n        // If we have groups that need to be merged, we will merge them now after this\n        // route has already been created and is ready to go. After we're done with\n        // the merge we will be ready to return the route back out to the caller.\n        if ($this->hasGroupStack()) {\n            $this->mergeGroupAttributesIntoRoute($route);\n        }\n\n        $this->addWhereClausesToRoute($route);\n\n        return $route;\n    }\n\n    /**\n     * Determine if the action is routing to a controller.\n     *\n     * @param  array  $action\n     * @return bool\n     */\n    protected function actionReferencesController($action)\n    {\n        if (! $action instanceof Closure) {\n            return is_string($action) || (isset($action['uses']) && is_string($action['uses']));\n        }\n\n        return false;\n    }\n\n    /**\n     * Add a controller based route action to the action array.\n     *\n     * @param  array|string  $action\n     * @return array\n     */\n    protected function convertToControllerAction($action)\n    {\n        if (is_string($action)) {\n            $action = ['uses' => $action];\n        }\n\n        // Here we'll merge any group \"uses\" statement if necessary so that the action\n        // has the proper clause for this property. Then we can simply set the name\n        // of the controller on the action and return the action array for usage.\n        if (! empty($this->groupStack)) {\n            $action['uses'] = $this->prependGroupNamespace($action['uses']);\n        }\n\n        // Here we will set this controller name on the action array just so we always\n        // have a copy of it for reference if we need it. This can be used while we\n        // search for a controller name or do some other type of fetch operation.\n        $action['controller'] = $action['uses'];\n\n        return $action;\n    }\n\n    /**\n     * Prepend the last group namespace onto the use clause.\n     *\n     * @param  string  $class\n     * @return string\n     */\n    protected function prependGroupNamespace($class)\n    {\n        $group = end($this->groupStack);\n\n        return isset($group['namespace']) && strpos($class, '\\\\') !== 0\n                ? $group['namespace'].'\\\\'.$class : $class;\n    }\n\n    /**\n     * Create a new Route object.\n     *\n     * @param  array|string  $methods\n     * @param  string  $uri\n     * @param  mixed  $action\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function newRoute($methods, $uri, $action)\n    {\n        return (new Route($methods, $uri, $action))\n                    ->setRouter($this)\n                    ->setContainer($this->container);\n    }\n\n    /**\n     * Prefix the given URI with the last prefix.\n     *\n     * @param  string  $uri\n     * @return string\n     */\n    protected function prefix($uri)\n    {\n        return trim(trim($this->getLastGroupPrefix(), '/').'/'.trim($uri, '/'), '/') ?: '/';\n    }\n\n    /**\n     * Add the necessary where clauses to the route based on its initial registration.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function addWhereClausesToRoute($route)\n    {\n        $route->where(array_merge(\n            $this->patterns, $route->getAction()['where'] ?? []\n        ));\n\n        return $route;\n    }\n\n    /**\n     * Merge the group stack with the controller action.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     */\n    protected function mergeGroupAttributesIntoRoute($route)\n    {\n        $route->setAction($this->mergeWithLastGroup($route->getAction()));\n    }\n\n    /**\n     * Return the response returned by the given route.\n     *\n     * @param  string  $name\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    public function respondWithRoute($name)\n    {\n        $route = tap($this->routes->getByName($name))->bind($this->currentRequest);\n\n        return $this->runRoute($this->currentRequest, $route);\n    }\n\n    /**\n     * Dispatch the request to the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    public function dispatch(Request $request)\n    {\n        $this->currentRequest = $request;\n\n        return $this->dispatchToRoute($request);\n    }\n\n    /**\n     * Dispatch the request to a route and return the response.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    public function dispatchToRoute(Request $request)\n    {\n        return $this->runRoute($request, $this->findRoute($request));\n    }\n\n    /**\n     * Find the route matching a given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Routing\\Route\n     */\n    protected function findRoute($request)\n    {\n        $this->current = $route = $this->routes->match($request);\n\n        $this->container->instance(Route::class, $route);\n\n        return $route;\n    }\n\n    /**\n     * Return the response for the given route.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    protected function runRoute(Request $request, Route $route)\n    {\n        $request->setRouteResolver(function () use ($route) {\n            return $route;\n        });\n\n        $this->events->dispatch(new Events\\RouteMatched($route, $request));\n\n        return $this->prepareResponse($request,\n            $this->runRouteWithinStack($route, $request)\n        );\n    }\n\n    /**\n     * Run the given route within a Stack \"onion\" instance.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return mixed\n     */\n    protected function runRouteWithinStack(Route $route, Request $request)\n    {\n        $shouldSkipMiddleware = $this->container->bound('middleware.disable') &&\n                                $this->container->make('middleware.disable') === true;\n\n        $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);\n\n        return (new Pipeline($this->container))\n                        ->send($request)\n                        ->through($middleware)\n                        ->then(function ($request) use ($route) {\n                            return $this->prepareResponse(\n                                $request, $route->run()\n                            );\n                        });\n    }\n\n    /**\n     * Gather the middleware for the given route with resolved class names.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return array\n     */\n    public function gatherRouteMiddleware(Route $route)\n    {\n        $middleware = collect($route->gatherMiddleware())->map(function ($name) {\n            return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);\n        })->flatten();\n\n        return $this->sortMiddleware($middleware);\n    }\n\n    /**\n     * Sort the given middleware by priority.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $middlewares\n     * @return array\n     */\n    protected function sortMiddleware(Collection $middlewares)\n    {\n        return (new SortedMiddleware($this->middlewarePriority, $middlewares))->all();\n    }\n\n    /**\n     * Create a response instance from the given value.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @param  mixed  $response\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    public function prepareResponse($request, $response)\n    {\n        return static::toResponse($request, $response);\n    }\n\n    /**\n     * Static version of prepareResponse.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @param  mixed  $response\n     * @return \\Illuminate\\Http\\Response|\\Illuminate\\Http\\JsonResponse\n     */\n    public static function toResponse($request, $response)\n    {\n        if ($response instanceof Responsable) {\n            $response = $response->toResponse($request);\n        }\n\n        if ($response instanceof PsrResponseInterface) {\n            $response = (new HttpFoundationFactory)->createResponse($response);\n        } elseif ($response instanceof Model && $response->wasRecentlyCreated) {\n            $response = new JsonResponse($response, 201);\n        } elseif (! $response instanceof SymfonyResponse &&\n                   ($response instanceof Arrayable ||\n                    $response instanceof Jsonable ||\n                    $response instanceof ArrayObject ||\n                    $response instanceof JsonSerializable ||\n                    is_array($response))) {\n            $response = new JsonResponse($response);\n        } elseif (! $response instanceof SymfonyResponse) {\n            $response = new Response($response);\n        }\n\n        if ($response->getStatusCode() === Response::HTTP_NOT_MODIFIED) {\n            $response->setNotModified();\n        }\n\n        return $response->prepare($request);\n    }\n\n    /**\n     * Substitute the route bindings onto the route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return \\Illuminate\\Routing\\Route\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function substituteBindings($route)\n    {\n        foreach ($route->parameters() as $key => $value) {\n            if (isset($this->binders[$key])) {\n                $route->setParameter($key, $this->performBinding($key, $value, $route));\n            }\n        }\n\n        return $route;\n    }\n\n    /**\n     * Substitute the implicit Eloquent model bindings for the route.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return void\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    public function substituteImplicitBindings($route)\n    {\n        ImplicitRouteBinding::resolveForRoute($this->container, $route);\n    }\n\n    /**\n     * Call the binding callback for the given key.\n     *\n     * @param  string  $key\n     * @param  string  $value\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @return mixed\n     *\n     * @throws \\Illuminate\\Database\\Eloquent\\ModelNotFoundException\n     */\n    protected function performBinding($key, $value, $route)\n    {\n        return call_user_func($this->binders[$key], $value, $route);\n    }\n\n    /**\n     * Register a route matched event listener.\n     *\n     * @param  string|callable  $callback\n     * @return void\n     */\n    public function matched($callback)\n    {\n        $this->events->listen(Events\\RouteMatched::class, $callback);\n    }\n\n    /**\n     * Get all of the defined middleware short-hand names.\n     *\n     * @return array\n     */\n    public function getMiddleware()\n    {\n        return $this->middleware;\n    }\n\n    /**\n     * Register a short-hand name for a middleware.\n     *\n     * @param  string  $name\n     * @param  string  $class\n     * @return $this\n     */\n    public function aliasMiddleware($name, $class)\n    {\n        $this->middleware[$name] = $class;\n\n        return $this;\n    }\n\n    /**\n     * Check if a middlewareGroup with the given name exists.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasMiddlewareGroup($name)\n    {\n        return array_key_exists($name, $this->middlewareGroups);\n    }\n\n    /**\n     * Get all of the defined middleware groups.\n     *\n     * @return array\n     */\n    public function getMiddlewareGroups()\n    {\n        return $this->middlewareGroups;\n    }\n\n    /**\n     * Register a group of middleware.\n     *\n     * @param  string  $name\n     * @param  array  $middleware\n     * @return $this\n     */\n    public function middlewareGroup($name, array $middleware)\n    {\n        $this->middlewareGroups[$name] = $middleware;\n\n        return $this;\n    }\n\n    /**\n     * Add a middleware to the beginning of a middleware group.\n     *\n     * If the middleware is already in the group, it will not be added again.\n     *\n     * @param  string  $group\n     * @param  string  $middleware\n     * @return $this\n     */\n    public function prependMiddlewareToGroup($group, $middleware)\n    {\n        if (isset($this->middlewareGroups[$group]) && ! in_array($middleware, $this->middlewareGroups[$group])) {\n            array_unshift($this->middlewareGroups[$group], $middleware);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a middleware to the end of a middleware group.\n     *\n     * If the middleware is already in the group, it will not be added again.\n     *\n     * @param  string  $group\n     * @param  string  $middleware\n     * @return $this\n     */\n    public function pushMiddlewareToGroup($group, $middleware)\n    {\n        if (! array_key_exists($group, $this->middlewareGroups)) {\n            $this->middlewareGroups[$group] = [];\n        }\n\n        if (! in_array($middleware, $this->middlewareGroups[$group])) {\n            $this->middlewareGroups[$group][] = $middleware;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a new route parameter binder.\n     *\n     * @param  string  $key\n     * @param  string|callable  $binder\n     * @return void\n     */\n    public function bind($key, $binder)\n    {\n        $this->binders[str_replace('-', '_', $key)] = RouteBinding::forCallback(\n            $this->container, $binder\n        );\n    }\n\n    /**\n     * Register a model binder for a wildcard.\n     *\n     * @param  string  $key\n     * @param  string  $class\n     * @param  \\Closure|null  $callback\n     * @return void\n     */\n    public function model($key, $class, Closure $callback = null)\n    {\n        $this->bind($key, RouteBinding::forModel($this->container, $class, $callback));\n    }\n\n    /**\n     * Get the binding callback for a given binding.\n     *\n     * @param  string  $key\n     * @return \\Closure|null\n     */\n    public function getBindingCallback($key)\n    {\n        if (isset($this->binders[$key = str_replace('-', '_', $key)])) {\n            return $this->binders[$key];\n        }\n    }\n\n    /**\n     * Get the global \"where\" patterns.\n     *\n     * @return array\n     */\n    public function getPatterns()\n    {\n        return $this->patterns;\n    }\n\n    /**\n     * Set a global where pattern on all routes.\n     *\n     * @param  string  $key\n     * @param  string  $pattern\n     * @return void\n     */\n    public function pattern($key, $pattern)\n    {\n        $this->patterns[$key] = $pattern;\n    }\n\n    /**\n     * Set a group of global where patterns on all routes.\n     *\n     * @param  array  $patterns\n     * @return void\n     */\n    public function patterns($patterns)\n    {\n        foreach ($patterns as $key => $pattern) {\n            $this->pattern($key, $pattern);\n        }\n    }\n\n    /**\n     * Determine if the router currently has a group stack.\n     *\n     * @return bool\n     */\n    public function hasGroupStack()\n    {\n        return ! empty($this->groupStack);\n    }\n\n    /**\n     * Get the current group stack for the router.\n     *\n     * @return array\n     */\n    public function getGroupStack()\n    {\n        return $this->groupStack;\n    }\n\n    /**\n     * Get a route parameter for the current route.\n     *\n     * @param  string  $key\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function input($key, $default = null)\n    {\n        return $this->current()->parameter($key, $default);\n    }\n\n    /**\n     * Get the request currently being dispatched.\n     *\n     * @return \\Illuminate\\Http\\Request\n     */\n    public function getCurrentRequest()\n    {\n        return $this->currentRequest;\n    }\n\n    /**\n     * Get the currently dispatched route instance.\n     *\n     * @return \\Illuminate\\Routing\\Route\n     */\n    public function getCurrentRoute()\n    {\n        return $this->current();\n    }\n\n    /**\n     * Get the currently dispatched route instance.\n     *\n     * @return \\Illuminate\\Routing\\Route|null\n     */\n    public function current()\n    {\n        return $this->current;\n    }\n\n    /**\n     * Check if a route with the given name exists.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function has($name)\n    {\n        $names = is_array($name) ? $name : func_get_args();\n\n        foreach ($names as $value) {\n            if (! $this->routes->hasNamedRoute($value)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the current route name.\n     *\n     * @return string|null\n     */\n    public function currentRouteName()\n    {\n        return $this->current() ? $this->current()->getName() : null;\n    }\n\n    /**\n     * Alias for the \"currentRouteNamed\" method.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function is(...$patterns)\n    {\n        return $this->currentRouteNamed(...$patterns);\n    }\n\n    /**\n     * Determine if the current route matches a pattern.\n     *\n     * @param  mixed  ...$patterns\n     * @return bool\n     */\n    public function currentRouteNamed(...$patterns)\n    {\n        return $this->current() && $this->current()->named(...$patterns);\n    }\n\n    /**\n     * Get the current route action.\n     *\n     * @return string|null\n     */\n    public function currentRouteAction()\n    {\n        if ($this->current()) {\n            return $this->current()->getAction()['controller'] ?? null;\n        }\n    }\n\n    /**\n     * Alias for the \"currentRouteUses\" method.\n     *\n     * @param  array  ...$patterns\n     * @return bool\n     */\n    public function uses(...$patterns)\n    {\n        foreach ($patterns as $pattern) {\n            if (Str::is($pattern, $this->currentRouteAction())) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if the current route action matches a given action.\n     *\n     * @param  string  $action\n     * @return bool\n     */\n    public function currentRouteUses($action)\n    {\n        return $this->currentRouteAction() == $action;\n    }\n\n    /**\n     * Register the typical authentication routes for an application.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public function auth(array $options = [])\n    {\n        // Authentication Routes...\n        $this->get('login', 'Auth\\LoginController@showLoginForm')->name('login');\n        $this->post('login', 'Auth\\LoginController@login');\n        $this->post('logout', 'Auth\\LoginController@logout')->name('logout');\n\n        // Registration Routes...\n        if ($options['register'] ?? true) {\n            $this->get('register', 'Auth\\RegisterController@showRegistrationForm')->name('register');\n            $this->post('register', 'Auth\\RegisterController@register');\n        }\n\n        // Password Reset Routes...\n        if ($options['reset'] ?? true) {\n            $this->resetPassword();\n        }\n\n        // Email Verification Routes...\n        if ($options['verify'] ?? false) {\n            $this->emailVerification();\n        }\n    }\n\n    /**\n     * Register the typical reset password routes for an application.\n     *\n     * @return void\n     */\n    public function resetPassword()\n    {\n        $this->get('password/reset', 'Auth\\ForgotPasswordController@showLinkRequestForm')->name('password.request');\n        $this->post('password/email', 'Auth\\ForgotPasswordController@sendResetLinkEmail')->name('password.email');\n        $this->get('password/reset/{token}', 'Auth\\ResetPasswordController@showResetForm')->name('password.reset');\n        $this->post('password/reset', 'Auth\\ResetPasswordController@reset')->name('password.update');\n    }\n\n    /**\n     * Register the typical email verification routes for an application.\n     *\n     * @return void\n     */\n    public function emailVerification()\n    {\n        $this->get('email/verify', 'Auth\\VerificationController@show')->name('verification.notice');\n        $this->get('email/verify/{id}', 'Auth\\VerificationController@verify')->name('verification.verify');\n        $this->get('email/resend', 'Auth\\VerificationController@resend')->name('verification.resend');\n    }\n\n    /**\n     * Set the unmapped global resource parameters to singular.\n     *\n     * @param  bool  $singular\n     * @return void\n     */\n    public function singularResourceParameters($singular = true)\n    {\n        ResourceRegistrar::singularParameters($singular);\n    }\n\n    /**\n     * Set the global resource parameter mapping.\n     *\n     * @param  array  $parameters\n     * @return void\n     */\n    public function resourceParameters(array $parameters = [])\n    {\n        ResourceRegistrar::setParameters($parameters);\n    }\n\n    /**\n     * Get or set the verbs used in the resource URIs.\n     *\n     * @param  array  $verbs\n     * @return array|null\n     */\n    public function resourceVerbs(array $verbs = [])\n    {\n        return ResourceRegistrar::verbs($verbs);\n    }\n\n    /**\n     * Get the underlying route collection.\n     *\n     * @return \\Illuminate\\Routing\\RouteCollection\n     */\n    public function getRoutes()\n    {\n        return $this->routes;\n    }\n\n    /**\n     * Set the route collection instance.\n     *\n     * @param  \\Illuminate\\Routing\\RouteCollection  $routes\n     * @return void\n     */\n    public function setRoutes(RouteCollection $routes)\n    {\n        foreach ($routes as $route) {\n            $route->setRouter($this)->setContainer($this->container);\n        }\n\n        $this->routes = $routes;\n\n        $this->container->instance('routes', $this->routes);\n    }\n\n    /**\n     * Dynamically handle calls into the router instance.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        if ($method === 'middleware') {\n            return (new RouteRegistrar($this))->attribute($method, is_array($parameters[0]) ? $parameters[0] : $parameters);\n        }\n\n        return (new RouteRegistrar($this))->attribute($method, $parameters[0]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Psr\\Http\\Message\\ResponseInterface;\nuse Zend\\Diactoros\\Response as PsrResponse;\nuse Psr\\Http\\Message\\ServerRequestInterface;\nuse Symfony\\Bridge\\PsrHttpMessage\\Factory\\DiactorosFactory;\nuse Illuminate\\Contracts\\View\\Factory as ViewFactoryContract;\nuse Illuminate\\Contracts\\Routing\\ResponseFactory as ResponseFactoryContract;\nuse Illuminate\\Routing\\Contracts\\ControllerDispatcher as ControllerDispatcherContract;\n\nclass RoutingServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerRouter();\n        $this->registerUrlGenerator();\n        $this->registerRedirector();\n        $this->registerPsrRequest();\n        $this->registerPsrResponse();\n        $this->registerResponseFactory();\n        $this->registerControllerDispatcher();\n    }\n\n    /**\n     * Register the router instance.\n     *\n     * @return void\n     */\n    protected function registerRouter()\n    {\n        $this->app->singleton('router', function ($app) {\n            return new Router($app['events'], $app);\n        });\n    }\n\n    /**\n     * Register the URL generator service.\n     *\n     * @return void\n     */\n    protected function registerUrlGenerator()\n    {\n        $this->app->singleton('url', function ($app) {\n            $routes = $app['router']->getRoutes();\n\n            // The URL generator needs the route collection that exists on the router.\n            // Keep in mind this is an object, so we're passing by references here\n            // and all the registered routes will be available to the generator.\n            $app->instance('routes', $routes);\n\n            $url = new UrlGenerator(\n                $routes, $app->rebinding(\n                    'request', $this->requestRebinder()\n                ), $app['config']['app.asset_url']\n            );\n\n            // Next we will set a few service resolvers on the URL generator so it can\n            // get the information it needs to function. This just provides some of\n            // the convenience features to this URL generator like \"signed\" URLs.\n            $url->setSessionResolver(function () {\n                return $this->app['session'] ?? null;\n            });\n\n            $url->setKeyResolver(function () {\n                return $this->app->make('config')->get('app.key');\n            });\n\n            // If the route collection is \"rebound\", for example, when the routes stay\n            // cached for the application, we will need to rebind the routes on the\n            // URL generator instance so it has the latest version of the routes.\n            $app->rebinding('routes', function ($app, $routes) {\n                $app['url']->setRoutes($routes);\n            });\n\n            return $url;\n        });\n    }\n\n    /**\n     * Get the URL generator request rebinder.\n     *\n     * @return \\Closure\n     */\n    protected function requestRebinder()\n    {\n        return function ($app, $request) {\n            $app['url']->setRequest($request);\n        };\n    }\n\n    /**\n     * Register the Redirector service.\n     *\n     * @return void\n     */\n    protected function registerRedirector()\n    {\n        $this->app->singleton('redirect', function ($app) {\n            $redirector = new Redirector($app['url']);\n\n            // If the session is set on the application instance, we'll inject it into\n            // the redirector instance. This allows the redirect responses to allow\n            // for the quite convenient \"with\" methods that flash to the session.\n            if (isset($app['session.store'])) {\n                $redirector->setSession($app['session.store']);\n            }\n\n            return $redirector;\n        });\n    }\n\n    /**\n     * Register a binding for the PSR-7 request implementation.\n     *\n     * @return void\n     */\n    protected function registerPsrRequest()\n    {\n        $this->app->bind(ServerRequestInterface::class, function ($app) {\n            return (new DiactorosFactory)->createRequest($app->make('request'));\n        });\n    }\n\n    /**\n     * Register a binding for the PSR-7 response implementation.\n     *\n     * @return void\n     */\n    protected function registerPsrResponse()\n    {\n        $this->app->bind(ResponseInterface::class, function () {\n            return new PsrResponse;\n        });\n    }\n\n    /**\n     * Register the response factory implementation.\n     *\n     * @return void\n     */\n    protected function registerResponseFactory()\n    {\n        $this->app->singleton(ResponseFactoryContract::class, function ($app) {\n            return new ResponseFactory($app[ViewFactoryContract::class], $app['redirect']);\n        });\n    }\n\n    /**\n     * Register the controller dispatcher.\n     *\n     * @return void\n     */\n    protected function registerControllerDispatcher()\n    {\n        $this->app->singleton(ControllerDispatcherContract::class, function ($app) {\n            return new ControllerDispatcher($app);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/SortedMiddleware.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Support\\Collection;\n\nclass SortedMiddleware extends Collection\n{\n    /**\n     * Create a new Sorted Middleware container.\n     *\n     * @param  array  $priorityMap\n     * @param  array|\\Illuminate\\Support\\Collection  $middlewares\n     * @return void\n     */\n    public function __construct(array $priorityMap, $middlewares)\n    {\n        if ($middlewares instanceof Collection) {\n            $middlewares = $middlewares->all();\n        }\n\n        $this->items = $this->sortMiddleware($priorityMap, $middlewares);\n    }\n\n    /**\n     * Sort the middlewares by the given priority map.\n     *\n     * Each call to this method makes one discrete middleware movement if necessary.\n     *\n     * @param  array  $priorityMap\n     * @param  array  $middlewares\n     * @return array\n     */\n    protected function sortMiddleware($priorityMap, $middlewares)\n    {\n        $lastIndex = 0;\n\n        foreach ($middlewares as $index => $middleware) {\n            if (! is_string($middleware)) {\n                continue;\n            }\n\n            $stripped = head(explode(':', $middleware));\n\n            if (in_array($stripped, $priorityMap)) {\n                $priorityIndex = array_search($stripped, $priorityMap);\n\n                // This middleware is in the priority map. If we have encountered another middleware\n                // that was also in the priority map and was at a lower priority than the current\n                // middleware, we will move this middleware to be above the previous encounter.\n                if (isset($lastPriorityIndex) && $priorityIndex < $lastPriorityIndex) {\n                    return $this->sortMiddleware(\n                        $priorityMap, array_values($this->moveMiddleware($middlewares, $index, $lastIndex))\n                    );\n                }\n\n                // This middleware is in the priority map; but, this is the first middleware we have\n                // encountered from the map thus far. We'll save its current index plus its index\n                // from the priority map so we can compare against them on the next iterations.\n                $lastIndex = $index;\n                $lastPriorityIndex = $priorityIndex;\n            }\n        }\n\n        return array_values(array_unique($middlewares, SORT_REGULAR));\n    }\n\n    /**\n     * Splice a middleware into a new position and remove the old entry.\n     *\n     * @param  array  $middlewares\n     * @param  int  $from\n     * @param  int  $to\n     * @return array\n     */\n    protected function moveMiddleware($middlewares, $from, $to)\n    {\n        array_splice($middlewares, $to, 0, $middlewares[$from]);\n\n        unset($middlewares[$from + 1]);\n\n        return $middlewares;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Http\\Request;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Contracts\\Routing\\UrlRoutable;\nuse Illuminate\\Contracts\\Routing\\UrlGenerator as UrlGeneratorContract;\n\nclass UrlGenerator implements UrlGeneratorContract\n{\n    use InteractsWithTime, Macroable;\n\n    /**\n     * The route collection.\n     *\n     * @var \\Illuminate\\Routing\\RouteCollection\n     */\n    protected $routes;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Illuminate\\Http\\Request\n     */\n    protected $request;\n\n    /**\n     * The asset root URL.\n     *\n     * @var string\n     */\n    protected $assetRoot;\n\n    /**\n     * The forced URL root.\n     *\n     * @var string\n     */\n    protected $forcedRoot;\n\n    /**\n     * The forced scheme for URLs.\n     *\n     * @var string\n     */\n    protected $forceScheme;\n\n    /**\n     * A cached copy of the URL root for the current request.\n     *\n     * @var string|null\n     */\n    protected $cachedRoot;\n\n    /**\n     * A cached copy of the URL scheme for the current request.\n     *\n     * @var string|null\n     */\n    protected $cachedScheme;\n\n    /**\n     * The root namespace being applied to controller actions.\n     *\n     * @var string\n     */\n    protected $rootNamespace;\n\n    /**\n     * The session resolver callable.\n     *\n     * @var callable\n     */\n    protected $sessionResolver;\n\n    /**\n     * The encryption key resolver callable.\n     *\n     * @var callable\n     */\n    protected $keyResolver;\n\n    /**\n     * The callback to use to format hosts.\n     *\n     * @var \\Closure\n     */\n    protected $formatHostUsing;\n\n    /**\n     * The callback to use to format paths.\n     *\n     * @var \\Closure\n     */\n    protected $formatPathUsing;\n\n    /**\n     * The route URL generator instance.\n     *\n     * @var \\Illuminate\\Routing\\RouteUrlGenerator|null\n     */\n    protected $routeGenerator;\n\n    /**\n     * Create a new URL Generator instance.\n     *\n     * @param  \\Illuminate\\Routing\\RouteCollection  $routes\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  string|null  $assetRoot\n     * @return void\n     */\n    public function __construct(RouteCollection $routes, Request $request, $assetRoot = null)\n    {\n        $this->routes = $routes;\n        $this->assetRoot = $assetRoot;\n\n        $this->setRequest($request);\n    }\n\n    /**\n     * Get the full URL for the current request.\n     *\n     * @return string\n     */\n    public function full()\n    {\n        return $this->request->fullUrl();\n    }\n\n    /**\n     * Get the current URL for the request.\n     *\n     * @return string\n     */\n    public function current()\n    {\n        return $this->to($this->request->getPathInfo());\n    }\n\n    /**\n     * Get the URL for the previous request.\n     *\n     * @param  mixed  $fallback\n     * @return string\n     */\n    public function previous($fallback = false)\n    {\n        $referrer = $this->request->headers->get('referer');\n\n        $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();\n\n        if ($url) {\n            return $url;\n        } elseif ($fallback) {\n            return $this->to($fallback);\n        }\n\n        return $this->to('/');\n    }\n\n    /**\n     * Get the previous URL from the session if possible.\n     *\n     * @return string|null\n     */\n    protected function getPreviousUrlFromSession()\n    {\n        $session = $this->getSession();\n\n        return $session ? $session->previousUrl() : null;\n    }\n\n    /**\n     * Generate an absolute URL to the given path.\n     *\n     * @param  string  $path\n     * @param  mixed  $extra\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function to($path, $extra = [], $secure = null)\n    {\n        // First we will check if the URL is already a valid URL. If it is we will not\n        // try to generate a new one but will simply return the URL as is, which is\n        // convenient since developers do not always have to check if it's valid.\n        if ($this->isValidUrl($path)) {\n            return $path;\n        }\n\n        $tail = implode('/', array_map(\n            'rawurlencode', (array) $this->formatParameters($extra))\n        );\n\n        // Once we have the scheme we will compile the \"tail\" by collapsing the values\n        // into a single string delimited by slashes. This just makes it convenient\n        // for passing the array of parameters to this URL as a list of segments.\n        $root = $this->formatRoot($this->formatScheme($secure));\n\n        [$path, $query] = $this->extractQueryString($path);\n\n        return $this->format(\n            $root, '/'.trim($path.'/'.$tail, '/')\n        ).$query;\n    }\n\n    /**\n     * Generate a secure, absolute URL to the given path.\n     *\n     * @param  string  $path\n     * @param  array   $parameters\n     * @return string\n     */\n    public function secure($path, $parameters = [])\n    {\n        return $this->to($path, $parameters, true);\n    }\n\n    /**\n     * Generate the URL to an application asset.\n     *\n     * @param  string  $path\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function asset($path, $secure = null)\n    {\n        if ($this->isValidUrl($path)) {\n            return $path;\n        }\n\n        // Once we get the root URL, we will check to see if it contains an index.php\n        // file in the paths. If it does, we will remove it since it is not needed\n        // for asset paths, but only for routes to endpoints in the application.\n        $root = $this->assetRoot\n                    ? $this->assetRoot\n                    : $this->formatRoot($this->formatScheme($secure));\n\n        return $this->removeIndex($root).'/'.trim($path, '/');\n    }\n\n    /**\n     * Generate the URL to a secure asset.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function secureAsset($path)\n    {\n        return $this->asset($path, true);\n    }\n\n    /**\n     * Generate the URL to an asset from a custom root domain such as CDN, etc.\n     *\n     * @param  string  $root\n     * @param  string  $path\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function assetFrom($root, $path, $secure = null)\n    {\n        // Once we get the root URL, we will check to see if it contains an index.php\n        // file in the paths. If it does, we will remove it since it is not needed\n        // for asset paths, but only for routes to endpoints in the application.\n        $root = $this->formatRoot($this->formatScheme($secure), $root);\n\n        return $this->removeIndex($root).'/'.trim($path, '/');\n    }\n\n    /**\n     * Remove the index.php file from a path.\n     *\n     * @param  string  $root\n     * @return string\n     */\n    protected function removeIndex($root)\n    {\n        $i = 'index.php';\n\n        return Str::contains($root, $i) ? str_replace('/'.$i, '', $root) : $root;\n    }\n\n    /**\n     * Get the default scheme for a raw URL.\n     *\n     * @param  bool|null  $secure\n     * @return string\n     */\n    public function formatScheme($secure = null)\n    {\n        if (! is_null($secure)) {\n            return $secure ? 'https://' : 'http://';\n        }\n\n        if (is_null($this->cachedScheme)) {\n            $this->cachedScheme = $this->forceScheme ?: $this->request->getScheme().'://';\n        }\n\n        return $this->cachedScheme;\n    }\n\n    /**\n     * Create a signed route URL for a named route.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @param  \\DateTimeInterface|\\DateInterval|int|null  $expiration\n     * @param  bool  $absolute\n     * @return string\n     */\n    public function signedRoute($name, $parameters = [], $expiration = null, $absolute = true)\n    {\n        $parameters = $this->formatParameters($parameters);\n\n        if ($expiration) {\n            $parameters = $parameters + ['expires' => $this->availableAt($expiration)];\n        }\n\n        ksort($parameters);\n\n        $key = call_user_func($this->keyResolver);\n\n        return $this->route($name, $parameters + [\n            'signature' => hash_hmac('sha256', $this->route($name, $parameters, $absolute), $key),\n        ], $absolute);\n    }\n\n    /**\n     * Create a temporary signed route URL for a named route.\n     *\n     * @param  string  $name\n     * @param  \\DateTimeInterface|\\DateInterval|int  $expiration\n     * @param  array  $parameters\n     * @param  bool  $absolute\n     * @return string\n     */\n    public function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true)\n    {\n        return $this->signedRoute($name, $parameters, $expiration, $absolute);\n    }\n\n    /**\n     * Determine if the given request has a valid signature.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  bool  $absolute\n     * @return bool\n     */\n    public function hasValidSignature(Request $request, $absolute = true)\n    {\n        $url = $absolute ? $request->url() : '/'.$request->path();\n\n        $original = rtrim($url.'?'.Arr::query(\n            Arr::except($request->query(), 'signature')\n        ), '?');\n\n        $expires = $request->query('expires');\n\n        $signature = hash_hmac('sha256', $original, call_user_func($this->keyResolver));\n\n        return hash_equals($signature, (string) $request->query('signature', '')) &&\n               ! ($expires && Carbon::now()->getTimestamp() > $expires);\n    }\n\n    /**\n     * Get the URL to a named route.\n     *\n     * @param  string  $name\n     * @param  mixed   $parameters\n     * @param  bool  $absolute\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function route($name, $parameters = [], $absolute = true)\n    {\n        if (! is_null($route = $this->routes->getByName($name))) {\n            return $this->toRoute($route, $parameters, $absolute);\n        }\n\n        throw new InvalidArgumentException(\"Route [{$name}] not defined.\");\n    }\n\n    /**\n     * Get the URL for a given route instance.\n     *\n     * @param  \\Illuminate\\Routing\\Route  $route\n     * @param  mixed  $parameters\n     * @param  bool   $absolute\n     * @return string\n     *\n     * @throws \\Illuminate\\Routing\\Exceptions\\UrlGenerationException\n     */\n    protected function toRoute($route, $parameters, $absolute)\n    {\n        return $this->routeUrl()->to(\n            $route, $this->formatParameters($parameters), $absolute\n        );\n    }\n\n    /**\n     * Get the URL to a controller action.\n     *\n     * @param  string|array  $action\n     * @param  mixed   $parameters\n     * @param  bool    $absolute\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function action($action, $parameters = [], $absolute = true)\n    {\n        if (is_null($route = $this->routes->getByAction($action = $this->formatAction($action)))) {\n            throw new InvalidArgumentException(\"Action {$action} not defined.\");\n        }\n\n        return $this->toRoute($route, $parameters, $absolute);\n    }\n\n    /**\n     * Format the given controller action.\n     *\n     * @param  string|array  $action\n     * @return string\n     */\n    protected function formatAction($action)\n    {\n        if (is_array($action)) {\n            $action = '\\\\'.implode('@', $action);\n        }\n\n        if ($this->rootNamespace && strpos($action, '\\\\') !== 0) {\n            return $this->rootNamespace.'\\\\'.$action;\n        } else {\n            return trim($action, '\\\\');\n        }\n    }\n\n    /**\n     * Format the array of URL parameters.\n     *\n     * @param  mixed|array  $parameters\n     * @return array\n     */\n    public function formatParameters($parameters)\n    {\n        $parameters = Arr::wrap($parameters);\n\n        foreach ($parameters as $key => $parameter) {\n            if ($parameter instanceof UrlRoutable) {\n                $parameters[$key] = $parameter->getRouteKey();\n            }\n        }\n\n        return $parameters;\n    }\n\n    /**\n     * Extract the query string from the given path.\n     *\n     * @param  string  $path\n     * @return array\n     */\n    protected function extractQueryString($path)\n    {\n        if (($queryPosition = strpos($path, '?')) !== false) {\n            return [\n                substr($path, 0, $queryPosition),\n                substr($path, $queryPosition),\n            ];\n        }\n\n        return [$path, ''];\n    }\n\n    /**\n     * Get the base URL for the request.\n     *\n     * @param  string  $scheme\n     * @param  string|null  $root\n     * @return string\n     */\n    public function formatRoot($scheme, $root = null)\n    {\n        if (is_null($root)) {\n            if (is_null($this->cachedRoot)) {\n                $this->cachedRoot = $this->forcedRoot ?: $this->request->root();\n            }\n\n            $root = $this->cachedRoot;\n        }\n\n        $start = Str::startsWith($root, 'http://') ? 'http://' : 'https://';\n\n        return preg_replace('~'.$start.'~', $scheme, $root, 1);\n    }\n\n    /**\n     * Format the given URL segments into a single URL.\n     *\n     * @param  string  $root\n     * @param  string  $path\n     * @param  \\Illuminate\\Routing\\Route|null  $route\n     * @return string\n     */\n    public function format($root, $path, $route = null)\n    {\n        $path = '/'.trim($path, '/');\n\n        if ($this->formatHostUsing) {\n            $root = call_user_func($this->formatHostUsing, $root, $route);\n        }\n\n        if ($this->formatPathUsing) {\n            $path = call_user_func($this->formatPathUsing, $path, $route);\n        }\n\n        return trim($root.$path, '/');\n    }\n\n    /**\n     * Determine if the given path is a valid URL.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function isValidUrl($path)\n    {\n        if (! preg_match('~^(#|//|https?://|mailto:|tel:)~', $path)) {\n            return filter_var($path, FILTER_VALIDATE_URL) !== false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the Route URL generator instance.\n     *\n     * @return \\Illuminate\\Routing\\RouteUrlGenerator\n     */\n    protected function routeUrl()\n    {\n        if (! $this->routeGenerator) {\n            $this->routeGenerator = new RouteUrlGenerator($this, $this->request);\n        }\n\n        return $this->routeGenerator;\n    }\n\n    /**\n     * Set the default named parameters used by the URL generator.\n     *\n     * @param  array  $defaults\n     * @return void\n     */\n    public function defaults(array $defaults)\n    {\n        $this->routeUrl()->defaults($defaults);\n    }\n\n    /**\n     * Get the default named parameters used by the URL generator.\n     *\n     * @return array\n     */\n    public function getDefaultParameters()\n    {\n        return $this->routeUrl()->defaultParameters;\n    }\n\n    /**\n     * Force the scheme for URLs.\n     *\n     * @param  string  $scheme\n     * @return void\n     */\n    public function forceScheme($scheme)\n    {\n        $this->cachedScheme = null;\n\n        $this->forceScheme = $scheme.'://';\n    }\n\n    /**\n     * Set the forced root URL.\n     *\n     * @param  string  $root\n     * @return void\n     */\n    public function forceRootUrl($root)\n    {\n        $this->forcedRoot = rtrim($root, '/');\n\n        $this->cachedRoot = null;\n    }\n\n    /**\n     * Set a callback to be used to format the host of generated URLs.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function formatHostUsing(Closure $callback)\n    {\n        $this->formatHostUsing = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Set a callback to be used to format the path of generated URLs.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function formatPathUsing(Closure $callback)\n    {\n        $this->formatPathUsing = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get the path formatter being used by the URL generator.\n     *\n     * @return \\Closure\n     */\n    public function pathFormatter()\n    {\n        return $this->formatPathUsing ?: function ($path) {\n            return $path;\n        };\n    }\n\n    /**\n     * Get the request instance.\n     *\n     * @return \\Illuminate\\Http\\Request\n     */\n    public function getRequest()\n    {\n        return $this->request;\n    }\n\n    /**\n     * Set the current request instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n\n        $this->cachedRoot = null;\n        $this->cachedScheme = null;\n        $this->routeGenerator = null;\n    }\n\n    /**\n     * Set the route collection.\n     *\n     * @param  \\Illuminate\\Routing\\RouteCollection  $routes\n     * @return $this\n     */\n    public function setRoutes(RouteCollection $routes)\n    {\n        $this->routes = $routes;\n\n        return $this;\n    }\n\n    /**\n     * Get the session implementation from the resolver.\n     *\n     * @return \\Illuminate\\Session\\Store|null\n     */\n    protected function getSession()\n    {\n        if ($this->sessionResolver) {\n            return call_user_func($this->sessionResolver);\n        }\n    }\n\n    /**\n     * Set the session resolver for the generator.\n     *\n     * @param  callable  $sessionResolver\n     * @return $this\n     */\n    public function setSessionResolver(callable $sessionResolver)\n    {\n        $this->sessionResolver = $sessionResolver;\n\n        return $this;\n    }\n\n    /**\n     * Set the encryption key resolver.\n     *\n     * @param  callable  $keyResolver\n     * @return $this\n     */\n    public function setKeyResolver(callable $keyResolver)\n    {\n        $this->keyResolver = $keyResolver;\n\n        return $this;\n    }\n\n    /**\n     * Set the root controller namespace.\n     *\n     * @param  string  $rootNamespace\n     * @return $this\n     */\n    public function setRootControllerNamespace($rootNamespace)\n    {\n        $this->rootNamespace = $rootNamespace;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/ViewController.php",
    "content": "<?php\n\nnamespace Illuminate\\Routing;\n\nuse Illuminate\\Contracts\\View\\Factory as ViewFactory;\n\nclass ViewController extends Controller\n{\n    /**\n     * The view factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Factory\n     */\n    protected $view;\n\n    /**\n     * Create a new controller instance.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\Factory  $view\n     * @return void\n     */\n    public function __construct(ViewFactory $view)\n    {\n        $this->view = $view;\n    }\n\n    /**\n     * Invoke the controller method.\n     *\n     * @param  array  $args\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    public function __invoke(...$args)\n    {\n        [$view, $data] = array_slice($args, -2);\n\n        return $this->view->make($view, $data);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Routing/composer.json",
    "content": "{\n    \"name\": \"illuminate/routing\",\n    \"description\": \"The Illuminate Routing package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/http\": \"5.8.*\",\n        \"illuminate/pipeline\": \"5.8.*\",\n        \"illuminate/session\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/debug\": \"^4.2\",\n        \"symfony/http-foundation\": \"^4.2\",\n        \"symfony/http-kernel\": \"^4.2\",\n        \"symfony/routing\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Routing\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/console\": \"Required to use the make commands (5.8.*).\",\n        \"symfony/psr-http-message-bridge\": \"Required to psr7 bridging features (^1.1).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/CacheBasedSessionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse SessionHandlerInterface;\nuse Illuminate\\Contracts\\Cache\\Repository as CacheContract;\n\nclass CacheBasedSessionHandler implements SessionHandlerInterface\n{\n    /**\n     * The cache repository instance.\n     *\n     * @var \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    protected $cache;\n\n    /**\n     * The number of minutes to store the data in the cache.\n     *\n     * @var int\n     */\n    protected $minutes;\n\n    /**\n     * Create a new cache driven handler instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cache\\Repository  $cache\n     * @param  int  $minutes\n     * @return void\n     */\n    public function __construct(CacheContract $cache, $minutes)\n    {\n        $this->cache = $cache;\n        $this->minutes = $minutes;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function open($savePath, $sessionName)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($sessionId)\n    {\n        return $this->cache->get($sessionId, '');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($sessionId, $data)\n    {\n        return $this->cache->put($sessionId, $data, $this->minutes * 60);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($sessionId)\n    {\n        return $this->cache->forget($sessionId);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($lifetime)\n    {\n        return true;\n    }\n\n    /**\n     * Get the underlying cache repository.\n     *\n     * @return \\Illuminate\\Contracts\\Cache\\Repository\n     */\n    public function getCache()\n    {\n        return $this->cache;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/Console/SessionTableCommand.php",
    "content": "<?php\n\nnamespace Illuminate\\Session\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Composer;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass SessionTableCommand extends Command\n{\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'session:table';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Create a migration for the session database table';\n\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * @var \\Illuminate\\Support\\Composer\n     */\n    protected $composer;\n\n    /**\n     * Create a new session table command instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  \\Illuminate\\Support\\Composer  $composer\n     * @return void\n     */\n    public function __construct(Filesystem $files, Composer $composer)\n    {\n        parent::__construct();\n\n        $this->files = $files;\n        $this->composer = $composer;\n    }\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $fullPath = $this->createBaseMigration();\n\n        $this->files->put($fullPath, $this->files->get(__DIR__.'/stubs/database.stub'));\n\n        $this->info('Migration created successfully!');\n\n        $this->composer->dumpAutoloads();\n    }\n\n    /**\n     * Create a base migration file for the session.\n     *\n     * @return string\n     */\n    protected function createBaseMigration()\n    {\n        $name = 'create_sessions_table';\n\n        $path = $this->laravel->databasePath().'/migrations';\n\n        return $this->laravel['migration.creator']->create($name, $path);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/Console/stubs/database.stub",
    "content": "<?php\n\nuse Illuminate\\Support\\Facades\\Schema;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Database\\Migrations\\Migration;\n\nclass CreateSessionsTable extends Migration\n{\n    /**\n     * Run the migrations.\n     *\n     * @return void\n     */\n    public function up()\n    {\n        Schema::create('sessions', function (Blueprint $table) {\n            $table->string('id')->unique();\n            $table->unsignedBigInteger('user_id')->nullable();\n            $table->string('ip_address', 45)->nullable();\n            $table->text('user_agent')->nullable();\n            $table->text('payload');\n            $table->integer('last_activity');\n        });\n    }\n\n    /**\n     * Reverse the migrations.\n     *\n     * @return void\n     */\n    public function down()\n    {\n        Schema::dropIfExists('sessions');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse SessionHandlerInterface;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Illuminate\\Contracts\\Cookie\\QueueingFactory as CookieJar;\n\nclass CookieSessionHandler implements SessionHandlerInterface\n{\n    use InteractsWithTime;\n\n    /**\n     * The cookie jar instance.\n     *\n     * @var \\Illuminate\\Contracts\\Cookie\\Factory\n     */\n    protected $cookie;\n\n    /**\n     * The request instance.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\Request\n     */\n    protected $request;\n\n    /**\n     * The number of minutes the session should be valid.\n     *\n     * @var int\n     */\n    protected $minutes;\n\n    /**\n     * Create a new cookie driven handler instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Cookie\\QueueingFactory  $cookie\n     * @param  int  $minutes\n     * @return void\n     */\n    public function __construct(CookieJar $cookie, $minutes)\n    {\n        $this->cookie = $cookie;\n        $this->minutes = $minutes;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function open($savePath, $sessionName)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($sessionId)\n    {\n        $value = $this->request->cookies->get($sessionId) ?: '';\n\n        if (! is_null($decoded = json_decode($value, true)) && is_array($decoded)) {\n            if (isset($decoded['expires']) && $this->currentTime() <= $decoded['expires']) {\n                return $decoded['data'];\n            }\n        }\n\n        return '';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($sessionId, $data)\n    {\n        $this->cookie->queue($sessionId, json_encode([\n            'data' => $data,\n            'expires' => $this->availableAt($this->minutes * 60),\n        ]), $this->minutes);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($sessionId)\n    {\n        $this->cookie->queue($this->cookie->forget($sessionId));\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($lifetime)\n    {\n        return true;\n    }\n\n    /**\n     * Set the request instance.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Request  $request\n     * @return void\n     */\n    public function setRequest(Request $request)\n    {\n        $this->request = $request;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse Illuminate\\Support\\Arr;\nuse SessionHandlerInterface;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Contracts\\Auth\\Guard;\nuse Illuminate\\Database\\QueryException;\nuse Illuminate\\Support\\InteractsWithTime;\nuse Illuminate\\Database\\ConnectionInterface;\nuse Illuminate\\Contracts\\Container\\Container;\n\nclass DatabaseSessionHandler implements SessionHandlerInterface, ExistenceAwareInterface\n{\n    use InteractsWithTime;\n\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionInterface\n     */\n    protected $connection;\n\n    /**\n     * The name of the session table.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The number of minutes the session should be valid.\n     *\n     * @var int\n     */\n    protected $minutes;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The existence state of the session.\n     *\n     * @var bool\n     */\n    protected $exists;\n\n    /**\n     * Create a new database session handler instance.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionInterface  $connection\n     * @param  string  $table\n     * @param  int  $minutes\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(ConnectionInterface $connection, $table, $minutes, Container $container = null)\n    {\n        $this->table = $table;\n        $this->minutes = $minutes;\n        $this->container = $container;\n        $this->connection = $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function open($savePath, $sessionName)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($sessionId)\n    {\n        $session = (object) $this->getQuery()->find($sessionId);\n\n        if ($this->expired($session)) {\n            $this->exists = true;\n\n            return '';\n        }\n\n        if (isset($session->payload)) {\n            $this->exists = true;\n\n            return base64_decode($session->payload);\n        }\n\n        return '';\n    }\n\n    /**\n     * Determine if the session is expired.\n     *\n     * @param  \\stdClass  $session\n     * @return bool\n     */\n    protected function expired($session)\n    {\n        return isset($session->last_activity) &&\n            $session->last_activity < Carbon::now()->subMinutes($this->minutes)->getTimestamp();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($sessionId, $data)\n    {\n        $payload = $this->getDefaultPayload($data);\n\n        if (! $this->exists) {\n            $this->read($sessionId);\n        }\n\n        if ($this->exists) {\n            $this->performUpdate($sessionId, $payload);\n        } else {\n            $this->performInsert($sessionId, $payload);\n        }\n\n        return $this->exists = true;\n    }\n\n    /**\n     * Perform an insert operation on the session ID.\n     *\n     * @param  string  $sessionId\n     * @param  string  $payload\n     * @return bool|null\n     */\n    protected function performInsert($sessionId, $payload)\n    {\n        try {\n            return $this->getQuery()->insert(Arr::set($payload, 'id', $sessionId));\n        } catch (QueryException $e) {\n            $this->performUpdate($sessionId, $payload);\n        }\n    }\n\n    /**\n     * Perform an update operation on the session ID.\n     *\n     * @param  string  $sessionId\n     * @param  string  $payload\n     * @return int\n     */\n    protected function performUpdate($sessionId, $payload)\n    {\n        return $this->getQuery()->where('id', $sessionId)->update($payload);\n    }\n\n    /**\n     * Get the default payload for the session.\n     *\n     * @param  string  $data\n     * @return array\n     */\n    protected function getDefaultPayload($data)\n    {\n        $payload = [\n            'payload' => base64_encode($data),\n            'last_activity' => $this->currentTime(),\n        ];\n\n        if (! $this->container) {\n            return $payload;\n        }\n\n        return tap($payload, function (&$payload) {\n            $this->addUserInformation($payload)\n                 ->addRequestInformation($payload);\n        });\n    }\n\n    /**\n     * Add the user information to the session payload.\n     *\n     * @param  array  $payload\n     * @return $this\n     */\n    protected function addUserInformation(&$payload)\n    {\n        if ($this->container->bound(Guard::class)) {\n            $payload['user_id'] = $this->userId();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the currently authenticated user's ID.\n     *\n     * @return mixed\n     */\n    protected function userId()\n    {\n        return $this->container->make(Guard::class)->id();\n    }\n\n    /**\n     * Add the request information to the session payload.\n     *\n     * @param  array  $payload\n     * @return $this\n     */\n    protected function addRequestInformation(&$payload)\n    {\n        if ($this->container->bound('request')) {\n            $payload = array_merge($payload, [\n                'ip_address' => $this->ipAddress(),\n                'user_agent' => $this->userAgent(),\n            ]);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the IP address for the current request.\n     *\n     * @return string\n     */\n    protected function ipAddress()\n    {\n        return $this->container->make('request')->ip();\n    }\n\n    /**\n     * Get the user agent for the current request.\n     *\n     * @return string\n     */\n    protected function userAgent()\n    {\n        return substr((string) $this->container->make('request')->header('User-Agent'), 0, 500);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($sessionId)\n    {\n        $this->getQuery()->where('id', $sessionId)->delete();\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($lifetime)\n    {\n        $this->getQuery()->where('last_activity', '<=', $this->currentTime() - $lifetime)->delete();\n    }\n\n    /**\n     * Get a fresh query builder instance for the table.\n     *\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function getQuery()\n    {\n        return $this->connection->table($this->table);\n    }\n\n    /**\n     * Set the existence state for the session.\n     *\n     * @param  bool  $value\n     * @return $this\n     */\n    public function setExists($value)\n    {\n        $this->exists = $value;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/EncryptedStore.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse SessionHandlerInterface;\nuse Illuminate\\Contracts\\Encryption\\DecryptException;\nuse Illuminate\\Contracts\\Encryption\\Encrypter as EncrypterContract;\n\nclass EncryptedStore extends Store\n{\n    /**\n     * The encrypter instance.\n     *\n     * @var \\Illuminate\\Contracts\\Encryption\\Encrypter\n     */\n    protected $encrypter;\n\n    /**\n     * Create a new session instance.\n     *\n     * @param  string $name\n     * @param  \\SessionHandlerInterface $handler\n     * @param  \\Illuminate\\Contracts\\Encryption\\Encrypter $encrypter\n     * @param  string|null $id\n     * @return void\n     */\n    public function __construct($name, SessionHandlerInterface $handler, EncrypterContract $encrypter, $id = null)\n    {\n        $this->encrypter = $encrypter;\n\n        parent::__construct($name, $handler, $id);\n    }\n\n    /**\n     * Prepare the raw string data from the session for unserialization.\n     *\n     * @param  string  $data\n     * @return string\n     */\n    protected function prepareForUnserialize($data)\n    {\n        try {\n            return $this->encrypter->decrypt($data);\n        } catch (DecryptException $e) {\n            return serialize([]);\n        }\n    }\n\n    /**\n     * Prepare the serialized session data for storage.\n     *\n     * @param  string  $data\n     * @return string\n     */\n    protected function prepareForStorage($data)\n    {\n        return $this->encrypter->encrypt($data);\n    }\n\n    /**\n     * Get the encrypter instance.\n     *\n     * @return \\Illuminate\\Contracts\\Encryption\\Encrypter\n     */\n    public function getEncrypter()\n    {\n        return $this->encrypter;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/ExistenceAwareInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\ninterface ExistenceAwareInterface\n{\n    /**\n     * Set the existence state for the session.\n     *\n     * @param  bool  $value\n     * @return \\SessionHandlerInterface\n     */\n    public function setExists($value);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse SessionHandlerInterface;\nuse Illuminate\\Support\\Carbon;\nuse Symfony\\Component\\Finder\\Finder;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass FileSessionHandler implements SessionHandlerInterface\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The path where sessions should be stored.\n     *\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * The number of minutes the session should be valid.\n     *\n     * @var int\n     */\n    protected $minutes;\n\n    /**\n     * Create a new file driven handler instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $path\n     * @param  int  $minutes\n     * @return void\n     */\n    public function __construct(Filesystem $files, $path, $minutes)\n    {\n        $this->path = $path;\n        $this->files = $files;\n        $this->minutes = $minutes;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function open($savePath, $sessionName)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($sessionId)\n    {\n        if ($this->files->isFile($path = $this->path.'/'.$sessionId)) {\n            if ($this->files->lastModified($path) >= Carbon::now()->subMinutes($this->minutes)->getTimestamp()) {\n                return $this->files->sharedGet($path);\n            }\n        }\n\n        return '';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($sessionId, $data)\n    {\n        $this->files->put($this->path.'/'.$sessionId, $data, true);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($sessionId)\n    {\n        $this->files->delete($this->path.'/'.$sessionId);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($lifetime)\n    {\n        $files = Finder::create()\n                    ->in($this->path)\n                    ->files()\n                    ->ignoreDotFiles(true)\n                    ->date('<= now - '.$lifetime.' seconds');\n\n        foreach ($files as $file) {\n            $this->files->delete($file->getRealPath());\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php",
    "content": "<?php\n\nnamespace Illuminate\\Session\\Middleware;\n\nuse Closure;\nuse Illuminate\\Auth\\AuthenticationException;\nuse Illuminate\\Contracts\\Auth\\Factory as AuthFactory;\n\nclass AuthenticateSession\n{\n    /**\n     * The authentication factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Auth\\Factory\n     */\n    protected $auth;\n\n    /**\n     * Create a new middleware instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Auth\\Factory  $auth\n     * @return void\n     */\n    public function __construct(AuthFactory $auth)\n    {\n        $this->auth = $auth;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        if (! $request->user() || ! $request->session()) {\n            return $next($request);\n        }\n\n        if ($this->auth->viaRemember()) {\n            $passwordHash = explode('|', $request->cookies->get($this->auth->getRecallerName()))[2];\n\n            if ($passwordHash != $request->user()->getAuthPassword()) {\n                $this->logout($request);\n            }\n        }\n\n        if (! $request->session()->has('password_hash')) {\n            $this->storePasswordHashInSession($request);\n        }\n\n        if ($request->session()->get('password_hash') !== $request->user()->getAuthPassword()) {\n            $this->logout($request);\n        }\n\n        return tap($next($request), function () use ($request) {\n            $this->storePasswordHashInSession($request);\n        });\n    }\n\n    /**\n     * Store the user's current password hash in the session.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function storePasswordHashInSession($request)\n    {\n        if (! $request->user()) {\n            return;\n        }\n\n        $request->session()->put([\n            'password_hash' => $request->user()->getAuthPassword(),\n        ]);\n    }\n\n    /**\n     * Log the user out of the application.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     *\n     * @throws \\Illuminate\\Auth\\AuthenticationException\n     */\n    protected function logout($request)\n    {\n        $this->auth->logout();\n\n        $request->session()->flush();\n\n        throw new AuthenticationException;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
    "content": "<?php\n\nnamespace Illuminate\\Session\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Session\\SessionManager;\nuse Illuminate\\Contracts\\Session\\Session;\nuse Symfony\\Component\\HttpFoundation\\Cookie;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nclass StartSession\n{\n    /**\n     * The session manager.\n     *\n     * @var \\Illuminate\\Session\\SessionManager\n     */\n    protected $manager;\n\n    /**\n     * Create a new session middleware.\n     *\n     * @param  \\Illuminate\\Session\\SessionManager  $manager\n     * @return void\n     */\n    public function __construct(SessionManager $manager)\n    {\n        $this->manager = $manager;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        if (! $this->sessionConfigured()) {\n            return $next($request);\n        }\n\n        // If a session driver has been configured, we will need to start the session here\n        // so that the data is ready for an application. Note that the Laravel sessions\n        // do not make use of PHP \"native\" sessions in any way since they are crappy.\n        $request->setLaravelSession(\n            $session = $this->startSession($request)\n        );\n\n        $this->collectGarbage($session);\n\n        $response = $next($request);\n\n        $this->storeCurrentUrl($request, $session);\n\n        $this->addCookieToResponse($response, $session);\n\n        // Again, if the session has been configured we will need to close out the session\n        // so that the attributes may be persisted to some storage medium. We will also\n        // add the session identifier cookie to the application response headers now.\n        $this->saveSession($request);\n\n        return $response;\n    }\n\n    /**\n     * Start the session for the given request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Contracts\\Session\\Session\n     */\n    protected function startSession(Request $request)\n    {\n        return tap($this->getSession($request), function ($session) use ($request) {\n            $session->setRequestOnHandler($request);\n\n            $session->start();\n        });\n    }\n\n    /**\n     * Get the session implementation from the manager.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return \\Illuminate\\Contracts\\Session\\Session\n     */\n    public function getSession(Request $request)\n    {\n        return tap($this->manager->driver(), function ($session) use ($request) {\n            $session->setId($request->cookies->get($session->getName()));\n        });\n    }\n\n    /**\n     * Remove the garbage from the session if necessary.\n     *\n     * @param  \\Illuminate\\Contracts\\Session\\Session  $session\n     * @return void\n     */\n    protected function collectGarbage(Session $session)\n    {\n        $config = $this->manager->getSessionConfig();\n\n        // Here we will see if this request hits the garbage collection lottery by hitting\n        // the odds needed to perform garbage collection on any given request. If we do\n        // hit it, we'll call this handler to let it delete all the expired sessions.\n        if ($this->configHitsLottery($config)) {\n            $session->getHandler()->gc($this->getSessionLifetimeInSeconds());\n        }\n    }\n\n    /**\n     * Determine if the configuration odds hit the lottery.\n     *\n     * @param  array  $config\n     * @return bool\n     */\n    protected function configHitsLottery(array $config)\n    {\n        return random_int(1, $config['lottery'][1]) <= $config['lottery'][0];\n    }\n\n    /**\n     * Store the current URL for the request if necessary.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Illuminate\\Contracts\\Session\\Session  $session\n     * @return void\n     */\n    protected function storeCurrentUrl(Request $request, $session)\n    {\n        if ($request->method() === 'GET' &&\n            $request->route() &&\n            ! $request->ajax() &&\n            ! $request->prefetch()) {\n            $session->setPreviousUrl($request->fullUrl());\n        }\n    }\n\n    /**\n     * Add the session cookie to the application response.\n     *\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response  $response\n     * @param  \\Illuminate\\Contracts\\Session\\Session  $session\n     * @return void\n     */\n    protected function addCookieToResponse(Response $response, Session $session)\n    {\n        if ($this->sessionIsPersistent($config = $this->manager->getSessionConfig())) {\n            $response->headers->setCookie(new Cookie(\n                $session->getName(), $session->getId(), $this->getCookieExpirationDate(),\n                $config['path'], $config['domain'], $config['secure'] ?? false,\n                $config['http_only'] ?? true, false, $config['same_site'] ?? null\n            ));\n        }\n    }\n\n    /**\n     * Save the session data to storage.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    protected function saveSession($request)\n    {\n        $this->manager->driver()->save();\n    }\n\n    /**\n     * Get the session lifetime in seconds.\n     *\n     * @return int\n     */\n    protected function getSessionLifetimeInSeconds()\n    {\n        return ($this->manager->getSessionConfig()['lifetime'] ?? null) * 60;\n    }\n\n    /**\n     * Get the cookie lifetime in seconds.\n     *\n     * @return \\DateTimeInterface|int\n     */\n    protected function getCookieExpirationDate()\n    {\n        $config = $this->manager->getSessionConfig();\n\n        return $config['expire_on_close'] ? 0 : Date::instance(\n            Carbon::now()->addRealMinutes($config['lifetime'])\n        );\n    }\n\n    /**\n     * Determine if a session driver has been configured.\n     *\n     * @return bool\n     */\n    protected function sessionConfigured()\n    {\n        return ! is_null($this->manager->getSessionConfig()['driver'] ?? null);\n    }\n\n    /**\n     * Determine if the configured session driver is persistent.\n     *\n     * @param  array|null  $config\n     * @return bool\n     */\n    protected function sessionIsPersistent(array $config = null)\n    {\n        $config = $config ?: $this->manager->getSessionConfig();\n\n        return ! in_array($config['driver'], [null, 'array']);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/NullSessionHandler.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse SessionHandlerInterface;\n\nclass NullSessionHandler implements SessionHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function open($savePath, $sessionName)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($sessionId)\n    {\n        return '';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($sessionId, $data)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($sessionId)\n    {\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($lifetime)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/SessionManager.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse Illuminate\\Support\\Manager;\n\nclass SessionManager extends Manager\n{\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  string  $driver\n     * @return mixed\n     */\n    protected function callCustomCreator($driver)\n    {\n        return $this->buildSession(parent::callCustomCreator($driver));\n    }\n\n    /**\n     * Create an instance of the \"array\" session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createArrayDriver()\n    {\n        return $this->buildSession(new NullSessionHandler);\n    }\n\n    /**\n     * Create an instance of the \"cookie\" session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createCookieDriver()\n    {\n        return $this->buildSession(new CookieSessionHandler(\n            $this->app['cookie'], $this->app['config']['session.lifetime']\n        ));\n    }\n\n    /**\n     * Create an instance of the file session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createFileDriver()\n    {\n        return $this->createNativeDriver();\n    }\n\n    /**\n     * Create an instance of the file session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createNativeDriver()\n    {\n        $lifetime = $this->app['config']['session.lifetime'];\n\n        return $this->buildSession(new FileSessionHandler(\n            $this->app['files'], $this->app['config']['session.files'], $lifetime\n        ));\n    }\n\n    /**\n     * Create an instance of the database session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createDatabaseDriver()\n    {\n        $table = $this->app['config']['session.table'];\n\n        $lifetime = $this->app['config']['session.lifetime'];\n\n        return $this->buildSession(new DatabaseSessionHandler(\n            $this->getDatabaseConnection(), $table, $lifetime, $this->app\n        ));\n    }\n\n    /**\n     * Get the database connection for the database driver.\n     *\n     * @return \\Illuminate\\Database\\Connection\n     */\n    protected function getDatabaseConnection()\n    {\n        $connection = $this->app['config']['session.connection'];\n\n        return $this->app['db']->connection($connection);\n    }\n\n    /**\n     * Create an instance of the APC session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createApcDriver()\n    {\n        return $this->createCacheBased('apc');\n    }\n\n    /**\n     * Create an instance of the Memcached session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createMemcachedDriver()\n    {\n        return $this->createCacheBased('memcached');\n    }\n\n    /**\n     * Create an instance of the Redis session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createRedisDriver()\n    {\n        $handler = $this->createCacheHandler('redis');\n\n        $handler->getCache()->getStore()->setConnection(\n            $this->app['config']['session.connection']\n        );\n\n        return $this->buildSession($handler);\n    }\n\n    /**\n     * Create an instance of the DynamoDB session driver.\n     *\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createDynamodbDriver()\n    {\n        return $this->createCacheBased('dynamodb');\n    }\n\n    /**\n     * Create an instance of a cache driven driver.\n     *\n     * @param  string  $driver\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function createCacheBased($driver)\n    {\n        return $this->buildSession($this->createCacheHandler($driver));\n    }\n\n    /**\n     * Create the cache based session handler instance.\n     *\n     * @param  string  $driver\n     * @return \\Illuminate\\Session\\CacheBasedSessionHandler\n     */\n    protected function createCacheHandler($driver)\n    {\n        $store = $this->app['config']->get('session.store') ?: $driver;\n\n        return new CacheBasedSessionHandler(\n            clone $this->app['cache']->store($store),\n            $this->app['config']['session.lifetime']\n        );\n    }\n\n    /**\n     * Build the session instance.\n     *\n     * @param  \\SessionHandlerInterface  $handler\n     * @return \\Illuminate\\Session\\Store\n     */\n    protected function buildSession($handler)\n    {\n        return $this->app['config']['session.encrypt']\n                ? $this->buildEncryptedSession($handler)\n                : new Store($this->app['config']['session.cookie'], $handler);\n    }\n\n    /**\n     * Build the encrypted session instance.\n     *\n     * @param  \\SessionHandlerInterface  $handler\n     * @return \\Illuminate\\Session\\EncryptedStore\n     */\n    protected function buildEncryptedSession($handler)\n    {\n        return new EncryptedStore(\n            $this->app['config']['session.cookie'], $handler, $this->app['encrypter']\n        );\n    }\n\n    /**\n     * Get the session configuration.\n     *\n     * @return array\n     */\n    public function getSessionConfig()\n    {\n        return $this->app['config']['session'];\n    }\n\n    /**\n     * Get the default session driver name.\n     *\n     * @return string\n     */\n    public function getDefaultDriver()\n    {\n        return $this->app['config']['session.driver'];\n    }\n\n    /**\n     * Set the default session driver name.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setDefaultDriver($name)\n    {\n        $this->app['config']['session.driver'] = $name;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/SessionServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Session\\Middleware\\StartSession;\n\nclass SessionServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerSessionManager();\n\n        $this->registerSessionDriver();\n\n        $this->app->singleton(StartSession::class);\n    }\n\n    /**\n     * Register the session manager instance.\n     *\n     * @return void\n     */\n    protected function registerSessionManager()\n    {\n        $this->app->singleton('session', function ($app) {\n            return new SessionManager($app);\n        });\n    }\n\n    /**\n     * Register the session driver instance.\n     *\n     * @return void\n     */\n    protected function registerSessionDriver()\n    {\n        $this->app->singleton('session.store', function ($app) {\n            // First, we will create the session manager which is responsible for the\n            // creation of the various session drivers when they are needed by the\n            // application instance, and will resolve them on a lazy load basis.\n            return $app->make('session')->driver();\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/Store.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse Closure;\nuse stdClass;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse SessionHandlerInterface;\nuse Illuminate\\Contracts\\Session\\Session;\n\nclass Store implements Session\n{\n    /**\n     * The session ID.\n     *\n     * @var string\n     */\n    protected $id;\n\n    /**\n     * The session name.\n     *\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The session attributes.\n     *\n     * @var array\n     */\n    protected $attributes = [];\n\n    /**\n     * The session handler implementation.\n     *\n     * @var \\SessionHandlerInterface\n     */\n    protected $handler;\n\n    /**\n     * Session store started status.\n     *\n     * @var bool\n     */\n    protected $started = false;\n\n    /**\n     * Create a new session instance.\n     *\n     * @param  string $name\n     * @param  \\SessionHandlerInterface $handler\n     * @param  string|null $id\n     * @return void\n     */\n    public function __construct($name, SessionHandlerInterface $handler, $id = null)\n    {\n        $this->setId($id);\n        $this->name = $name;\n        $this->handler = $handler;\n    }\n\n    /**\n     * Start the session, reading the data from a handler.\n     *\n     * @return bool\n     */\n    public function start()\n    {\n        $this->loadSession();\n\n        if (! $this->has('_token')) {\n            $this->regenerateToken();\n        }\n\n        return $this->started = true;\n    }\n\n    /**\n     * Load the session data from the handler.\n     *\n     * @return void\n     */\n    protected function loadSession()\n    {\n        $this->attributes = array_merge($this->attributes, $this->readFromHandler());\n    }\n\n    /**\n     * Read the session data from the handler.\n     *\n     * @return array\n     */\n    protected function readFromHandler()\n    {\n        if ($data = $this->handler->read($this->getId())) {\n            $data = @unserialize($this->prepareForUnserialize($data));\n\n            if ($data !== false && ! is_null($data) && is_array($data)) {\n                return $data;\n            }\n        }\n\n        return [];\n    }\n\n    /**\n     * Prepare the raw string data from the session for unserialization.\n     *\n     * @param  string  $data\n     * @return string\n     */\n    protected function prepareForUnserialize($data)\n    {\n        return $data;\n    }\n\n    /**\n     * Save the session data to storage.\n     *\n     * @return void\n     */\n    public function save()\n    {\n        $this->ageFlashData();\n\n        $this->handler->write($this->getId(), $this->prepareForStorage(\n            serialize($this->attributes)\n        ));\n\n        $this->started = false;\n    }\n\n    /**\n     * Prepare the serialized session data for storage.\n     *\n     * @param  string  $data\n     * @return string\n     */\n    protected function prepareForStorage($data)\n    {\n        return $data;\n    }\n\n    /**\n     * Age the flash data for the session.\n     *\n     * @return void\n     */\n    public function ageFlashData()\n    {\n        $this->forget($this->get('_flash.old', []));\n\n        $this->put('_flash.old', $this->get('_flash.new', []));\n\n        $this->put('_flash.new', []);\n    }\n\n    /**\n     * Get all of the session data.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        return $this->attributes;\n    }\n\n    /**\n     * Checks if a key exists.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function exists($key)\n    {\n        $placeholder = new stdClass;\n\n        return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) use ($placeholder) {\n            return $this->get($key, $placeholder) === $placeholder;\n        });\n    }\n\n    /**\n     * Checks if a key is present and not null.\n     *\n     * @param  string|array  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        return ! collect(is_array($key) ? $key : func_get_args())->contains(function ($key) {\n            return is_null($this->get($key));\n        });\n    }\n\n    /**\n     * Get an item from the session.\n     *\n     * @param  string  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        return Arr::get($this->attributes, $key, $default);\n    }\n\n    /**\n     * Get the value of a given key and then forget it.\n     *\n     * @param  string  $key\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function pull($key, $default = null)\n    {\n        return Arr::pull($this->attributes, $key, $default);\n    }\n\n    /**\n     * Determine if the session contains old input.\n     *\n     * @param  string|null  $key\n     * @return bool\n     */\n    public function hasOldInput($key = null)\n    {\n        $old = $this->getOldInput($key);\n\n        return is_null($key) ? count($old) > 0 : ! is_null($old);\n    }\n\n    /**\n     * Get the requested item from the flashed input array.\n     *\n     * @param  string|null  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public function getOldInput($key = null, $default = null)\n    {\n        return Arr::get($this->get('_old_input', []), $key, $default);\n    }\n\n    /**\n     * Replace the given session attributes entirely.\n     *\n     * @param  array  $attributes\n     * @return void\n     */\n    public function replace(array $attributes)\n    {\n        $this->put($attributes);\n    }\n\n    /**\n     * Put a key / value pair or array of key / value pairs in the session.\n     *\n     * @param  string|array  $key\n     * @param  mixed       $value\n     * @return void\n     */\n    public function put($key, $value = null)\n    {\n        if (! is_array($key)) {\n            $key = [$key => $value];\n        }\n\n        foreach ($key as $arrayKey => $arrayValue) {\n            Arr::set($this->attributes, $arrayKey, $arrayValue);\n        }\n    }\n\n    /**\n     * Get an item from the session, or store the default value.\n     *\n     * @param  string  $key\n     * @param  \\Closure  $callback\n     * @return mixed\n     */\n    public function remember($key, Closure $callback)\n    {\n        if (! is_null($value = $this->get($key))) {\n            return $value;\n        }\n\n        return tap($callback(), function ($value) use ($key) {\n            $this->put($key, $value);\n        });\n    }\n\n    /**\n     * Push a value onto a session array.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function push($key, $value)\n    {\n        $array = $this->get($key, []);\n\n        $array[] = $value;\n\n        $this->put($key, $array);\n    }\n\n    /**\n     * Increment the value of an item in the session.\n     *\n     * @param  string  $key\n     * @param  int  $amount\n     * @return mixed\n     */\n    public function increment($key, $amount = 1)\n    {\n        $this->put($key, $value = $this->get($key, 0) + $amount);\n\n        return $value;\n    }\n\n    /**\n     * Decrement the value of an item in the session.\n     *\n     * @param  string  $key\n     * @param  int  $amount\n     * @return int\n     */\n    public function decrement($key, $amount = 1)\n    {\n        return $this->increment($key, $amount * -1);\n    }\n\n    /**\n     * Flash a key / value pair to the session.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function flash(string $key, $value = true)\n    {\n        $this->put($key, $value);\n\n        $this->push('_flash.new', $key);\n\n        $this->removeFromOldFlashData([$key]);\n    }\n\n    /**\n     * Flash a key / value pair to the session for immediate use.\n     *\n     * @param  string $key\n     * @param  mixed $value\n     * @return void\n     */\n    public function now($key, $value)\n    {\n        $this->put($key, $value);\n\n        $this->push('_flash.old', $key);\n    }\n\n    /**\n     * Reflash all of the session flash data.\n     *\n     * @return void\n     */\n    public function reflash()\n    {\n        $this->mergeNewFlashes($this->get('_flash.old', []));\n\n        $this->put('_flash.old', []);\n    }\n\n    /**\n     * Reflash a subset of the current flash data.\n     *\n     * @param  array|mixed  $keys\n     * @return void\n     */\n    public function keep($keys = null)\n    {\n        $this->mergeNewFlashes($keys = is_array($keys) ? $keys : func_get_args());\n\n        $this->removeFromOldFlashData($keys);\n    }\n\n    /**\n     * Merge new flash keys into the new flash array.\n     *\n     * @param  array  $keys\n     * @return void\n     */\n    protected function mergeNewFlashes(array $keys)\n    {\n        $values = array_unique(array_merge($this->get('_flash.new', []), $keys));\n\n        $this->put('_flash.new', $values);\n    }\n\n    /**\n     * Remove the given keys from the old flash data.\n     *\n     * @param  array  $keys\n     * @return void\n     */\n    protected function removeFromOldFlashData(array $keys)\n    {\n        $this->put('_flash.old', array_diff($this->get('_flash.old', []), $keys));\n    }\n\n    /**\n     * Flash an input array to the session.\n     *\n     * @param  array  $value\n     * @return void\n     */\n    public function flashInput(array $value)\n    {\n        $this->flash('_old_input', $value);\n    }\n\n    /**\n     * Remove an item from the session, returning its value.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function remove($key)\n    {\n        return Arr::pull($this->attributes, $key);\n    }\n\n    /**\n     * Remove one or many items from the session.\n     *\n     * @param  string|array  $keys\n     * @return void\n     */\n    public function forget($keys)\n    {\n        Arr::forget($this->attributes, $keys);\n    }\n\n    /**\n     * Remove all of the items from the session.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        $this->attributes = [];\n    }\n\n    /**\n     * Flush the session data and regenerate the ID.\n     *\n     * @return bool\n     */\n    public function invalidate()\n    {\n        $this->flush();\n\n        return $this->migrate(true);\n    }\n\n    /**\n     * Generate a new session identifier.\n     *\n     * @param  bool  $destroy\n     * @return bool\n     */\n    public function regenerate($destroy = false)\n    {\n        return tap($this->migrate($destroy), function () {\n            $this->regenerateToken();\n        });\n    }\n\n    /**\n     * Generate a new session ID for the session.\n     *\n     * @param  bool  $destroy\n     * @return bool\n     */\n    public function migrate($destroy = false)\n    {\n        if ($destroy) {\n            $this->handler->destroy($this->getId());\n        }\n\n        $this->setExists(false);\n\n        $this->setId($this->generateSessionId());\n\n        return true;\n    }\n\n    /**\n     * Determine if the session has been started.\n     *\n     * @return bool\n     */\n    public function isStarted()\n    {\n        return $this->started;\n    }\n\n    /**\n     * Get the name of the session.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    /**\n     * Set the name of the session.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public function setName($name)\n    {\n        $this->name = $name;\n    }\n\n    /**\n     * Get the current session ID.\n     *\n     * @return string\n     */\n    public function getId()\n    {\n        return $this->id;\n    }\n\n    /**\n     * Set the session ID.\n     *\n     * @param  string  $id\n     * @return void\n     */\n    public function setId($id)\n    {\n        $this->id = $this->isValidId($id) ? $id : $this->generateSessionId();\n    }\n\n    /**\n     * Determine if this is a valid session ID.\n     *\n     * @param  string  $id\n     * @return bool\n     */\n    public function isValidId($id)\n    {\n        return is_string($id) && ctype_alnum($id) && strlen($id) === 40;\n    }\n\n    /**\n     * Get a new, random session ID.\n     *\n     * @return string\n     */\n    protected function generateSessionId()\n    {\n        return Str::random(40);\n    }\n\n    /**\n     * Set the existence of the session on the handler if applicable.\n     *\n     * @param  bool  $value\n     * @return void\n     */\n    public function setExists($value)\n    {\n        if ($this->handler instanceof ExistenceAwareInterface) {\n            $this->handler->setExists($value);\n        }\n    }\n\n    /**\n     * Get the CSRF token value.\n     *\n     * @return string\n     */\n    public function token()\n    {\n        return $this->get('_token');\n    }\n\n    /**\n     * Regenerate the CSRF token value.\n     *\n     * @return void\n     */\n    public function regenerateToken()\n    {\n        $this->put('_token', Str::random(40));\n    }\n\n    /**\n     * Get the previous URL from the session.\n     *\n     * @return string|null\n     */\n    public function previousUrl()\n    {\n        return $this->get('_previous.url');\n    }\n\n    /**\n     * Set the \"previous\" URL in the session.\n     *\n     * @param  string  $url\n     * @return void\n     */\n    public function setPreviousUrl($url)\n    {\n        $this->put('_previous.url', $url);\n    }\n\n    /**\n     * Get the underlying session handler implementation.\n     *\n     * @return \\SessionHandlerInterface\n     */\n    public function getHandler()\n    {\n        return $this->handler;\n    }\n\n    /**\n     * Determine if the session handler needs a request.\n     *\n     * @return bool\n     */\n    public function handlerNeedsRequest()\n    {\n        return $this->handler instanceof CookieSessionHandler;\n    }\n\n    /**\n     * Set the request on the handler instance.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @return void\n     */\n    public function setRequestOnHandler($request)\n    {\n        if ($this->handlerNeedsRequest()) {\n            $this->handler->setRequest($request);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php",
    "content": "<?php\n\nnamespace Illuminate\\Session;\n\nuse Exception;\n\nclass TokenMismatchException extends Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Session/composer.json",
    "content": "{\n    \"name\": \"illuminate/session\",\n    \"description\": \"The Illuminate Session package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/filesystem\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/finder\": \"^4.2\",\n        \"symfony/http-foundation\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Session\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/console\": \"Required to use the session:table command (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nclass AggregateServiceProvider extends ServiceProvider\n{\n    /**\n     * The provider class names.\n     *\n     * @var array\n     */\n    protected $providers = [];\n\n    /**\n     * An array of the service provider instances.\n     *\n     * @var array\n     */\n    protected $instances = [];\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->instances = [];\n\n        foreach ($this->providers as $provider) {\n            $this->instances[] = $this->app->register($provider);\n        }\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        $provides = [];\n\n        foreach ($this->providers as $provider) {\n            $instance = $this->app->resolveProvider($provider);\n\n            $provides = array_merge($provides, $instance->provides());\n        }\n\n        return $provides;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Arr.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse ArrayAccess;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Traits\\Macroable;\n\nclass Arr\n{\n    use Macroable;\n\n    /**\n     * Determine whether the given value is array accessible.\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    public static function accessible($value)\n    {\n        return is_array($value) || $value instanceof ArrayAccess;\n    }\n\n    /**\n     * Add an element to an array using \"dot\" notation if it doesn't exist.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return array\n     */\n    public static function add($array, $key, $value)\n    {\n        if (is_null(static::get($array, $key))) {\n            static::set($array, $key, $value);\n        }\n\n        return $array;\n    }\n\n    /**\n     * Collapse an array of arrays into a single array.\n     *\n     * @param  array  $array\n     * @return array\n     */\n    public static function collapse($array)\n    {\n        $results = [];\n\n        foreach ($array as $values) {\n            if ($values instanceof Collection) {\n                $values = $values->all();\n            } elseif (! is_array($values)) {\n                continue;\n            }\n\n            $results[] = $values;\n        }\n\n        return array_merge([], ...$results);\n    }\n\n    /**\n     * Cross join the given arrays, returning all possible permutations.\n     *\n     * @param  array  ...$arrays\n     * @return array\n     */\n    public static function crossJoin(...$arrays)\n    {\n        $results = [[]];\n\n        foreach ($arrays as $index => $array) {\n            $append = [];\n\n            foreach ($results as $product) {\n                foreach ($array as $item) {\n                    $product[$index] = $item;\n\n                    $append[] = $product;\n                }\n            }\n\n            $results = $append;\n        }\n\n        return $results;\n    }\n\n    /**\n     * Divide an array into two arrays. One with keys and the other with values.\n     *\n     * @param  array  $array\n     * @return array\n     */\n    public static function divide($array)\n    {\n        return [array_keys($array), array_values($array)];\n    }\n\n    /**\n     * Flatten a multi-dimensional associative array with dots.\n     *\n     * @param  array   $array\n     * @param  string  $prepend\n     * @return array\n     */\n    public static function dot($array, $prepend = '')\n    {\n        $results = [];\n\n        foreach ($array as $key => $value) {\n            if (is_array($value) && ! empty($value)) {\n                $results = array_merge($results, static::dot($value, $prepend.$key.'.'));\n            } else {\n                $results[$prepend.$key] = $value;\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get all of the given array except for a specified array of keys.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return array\n     */\n    public static function except($array, $keys)\n    {\n        static::forget($array, $keys);\n\n        return $array;\n    }\n\n    /**\n     * Determine if the given key exists in the provided array.\n     *\n     * @param  \\ArrayAccess|array  $array\n     * @param  string|int  $key\n     * @return bool\n     */\n    public static function exists($array, $key)\n    {\n        if ($array instanceof ArrayAccess) {\n            return $array->offsetExists($key);\n        }\n\n        return array_key_exists($key, $array);\n    }\n\n    /**\n     * Return the first element in an array passing a given truth test.\n     *\n     * @param  array  $array\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public static function first($array, callable $callback = null, $default = null)\n    {\n        if (is_null($callback)) {\n            if (empty($array)) {\n                return value($default);\n            }\n\n            foreach ($array as $item) {\n                return $item;\n            }\n        }\n\n        foreach ($array as $key => $value) {\n            if (call_user_func($callback, $value, $key)) {\n                return $value;\n            }\n        }\n\n        return value($default);\n    }\n\n    /**\n     * Return the last element in an array passing a given truth test.\n     *\n     * @param  array  $array\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public static function last($array, callable $callback = null, $default = null)\n    {\n        if (is_null($callback)) {\n            return empty($array) ? value($default) : end($array);\n        }\n\n        return static::first(array_reverse($array, true), $callback, $default);\n    }\n\n    /**\n     * Flatten a multi-dimensional array into a single level.\n     *\n     * @param  array  $array\n     * @param  int  $depth\n     * @return array\n     */\n    public static function flatten($array, $depth = INF)\n    {\n        $result = [];\n\n        foreach ($array as $item) {\n            $item = $item instanceof Collection ? $item->all() : $item;\n\n            if (! is_array($item)) {\n                $result[] = $item;\n            } else {\n                $values = $depth === 1\n                    ? array_values($item)\n                    : static::flatten($item, $depth - 1);\n\n                foreach ($values as $value) {\n                    $result[] = $value;\n                }\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * Remove one or many array items from a given array using \"dot\" notation.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return void\n     */\n    public static function forget(&$array, $keys)\n    {\n        $original = &$array;\n\n        $keys = (array) $keys;\n\n        if (count($keys) === 0) {\n            return;\n        }\n\n        foreach ($keys as $key) {\n            // if the exact key exists in the top-level, remove it\n            if (static::exists($array, $key)) {\n                unset($array[$key]);\n\n                continue;\n            }\n\n            $parts = explode('.', $key);\n\n            // clean up before each pass\n            $array = &$original;\n\n            while (count($parts) > 1) {\n                $part = array_shift($parts);\n\n                if (isset($array[$part]) && is_array($array[$part])) {\n                    $array = &$array[$part];\n                } else {\n                    continue 2;\n                }\n            }\n\n            unset($array[array_shift($parts)]);\n        }\n    }\n\n    /**\n     * Get an item from an array using \"dot\" notation.\n     *\n     * @param  \\ArrayAccess|array  $array\n     * @param  string|int  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public static function get($array, $key, $default = null)\n    {\n        if (! static::accessible($array)) {\n            return value($default);\n        }\n\n        if (is_null($key)) {\n            return $array;\n        }\n\n        if (static::exists($array, $key)) {\n            return $array[$key];\n        }\n\n        if (strpos($key, '.') === false) {\n            return $array[$key] ?? value($default);\n        }\n\n        foreach (explode('.', $key) as $segment) {\n            if (static::accessible($array) && static::exists($array, $segment)) {\n                $array = $array[$segment];\n            } else {\n                return value($default);\n            }\n        }\n\n        return $array;\n    }\n\n    /**\n     * Check if an item or items exist in an array using \"dot\" notation.\n     *\n     * @param  \\ArrayAccess|array  $array\n     * @param  string|array  $keys\n     * @return bool\n     */\n    public static function has($array, $keys)\n    {\n        $keys = (array) $keys;\n\n        if (! $array || $keys === []) {\n            return false;\n        }\n\n        foreach ($keys as $key) {\n            $subKeyArray = $array;\n\n            if (static::exists($array, $key)) {\n                continue;\n            }\n\n            foreach (explode('.', $key) as $segment) {\n                if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) {\n                    $subKeyArray = $subKeyArray[$segment];\n                } else {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Determines if an array is associative.\n     *\n     * An array is \"associative\" if it doesn't have sequential numerical keys beginning with zero.\n     *\n     * @param  array  $array\n     * @return bool\n     */\n    public static function isAssoc(array $array)\n    {\n        $keys = array_keys($array);\n\n        return array_keys($keys) !== $keys;\n    }\n\n    /**\n     * Get a subset of the items from the given array.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return array\n     */\n    public static function only($array, $keys)\n    {\n        return array_intersect_key($array, array_flip((array) $keys));\n    }\n\n    /**\n     * Pluck an array of values from an array.\n     *\n     * @param  array  $array\n     * @param  string|array  $value\n     * @param  string|array|null  $key\n     * @return array\n     */\n    public static function pluck($array, $value, $key = null)\n    {\n        $results = [];\n\n        [$value, $key] = static::explodePluckParameters($value, $key);\n\n        foreach ($array as $item) {\n            $itemValue = data_get($item, $value);\n\n            // If the key is \"null\", we will just append the value to the array and keep\n            // looping. Otherwise we will key the array using the value of the key we\n            // received from the developer. Then we'll return the final array form.\n            if (is_null($key)) {\n                $results[] = $itemValue;\n            } else {\n                $itemKey = data_get($item, $key);\n\n                if (is_object($itemKey) && method_exists($itemKey, '__toString')) {\n                    $itemKey = (string) $itemKey;\n                }\n\n                $results[$itemKey] = $itemValue;\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Explode the \"value\" and \"key\" arguments passed to \"pluck\".\n     *\n     * @param  string|array  $value\n     * @param  string|array|null  $key\n     * @return array\n     */\n    protected static function explodePluckParameters($value, $key)\n    {\n        $value = is_string($value) ? explode('.', $value) : $value;\n\n        $key = is_null($key) || is_array($key) ? $key : explode('.', $key);\n\n        return [$value, $key];\n    }\n\n    /**\n     * Push an item onto the beginning of an array.\n     *\n     * @param  array  $array\n     * @param  mixed  $value\n     * @param  mixed  $key\n     * @return array\n     */\n    public static function prepend($array, $value, $key = null)\n    {\n        if (is_null($key)) {\n            array_unshift($array, $value);\n        } else {\n            $array = [$key => $value] + $array;\n        }\n\n        return $array;\n    }\n\n    /**\n     * Get a value from the array, and remove it.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public static function pull(&$array, $key, $default = null)\n    {\n        $value = static::get($array, $key, $default);\n\n        static::forget($array, $key);\n\n        return $value;\n    }\n\n    /**\n     * Get one or a specified number of random values from an array.\n     *\n     * @param  array  $array\n     * @param  int|null  $number\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public static function random($array, $number = null)\n    {\n        $requested = is_null($number) ? 1 : $number;\n\n        $count = count($array);\n\n        if ($requested > $count) {\n            throw new InvalidArgumentException(\n                \"You requested {$requested} items, but there are only {$count} items available.\"\n            );\n        }\n\n        if (is_null($number)) {\n            return $array[array_rand($array)];\n        }\n\n        if ((int) $number === 0) {\n            return [];\n        }\n\n        $keys = array_rand($array, $number);\n\n        $results = [];\n\n        foreach ((array) $keys as $key) {\n            $results[] = $array[$key];\n        }\n\n        return $results;\n    }\n\n    /**\n     * Set an array item to a given value using \"dot\" notation.\n     *\n     * If no key is given to the method, the entire array will be replaced.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return array\n     */\n    public static function set(&$array, $key, $value)\n    {\n        if (is_null($key)) {\n            return $array = $value;\n        }\n\n        $keys = explode('.', $key);\n\n        while (count($keys) > 1) {\n            $key = array_shift($keys);\n\n            // If the key doesn't exist at this depth, we will just create an empty array\n            // to hold the next value, allowing us to create the arrays to hold final\n            // values at the correct depth. Then we'll keep digging into the array.\n            if (! isset($array[$key]) || ! is_array($array[$key])) {\n                $array[$key] = [];\n            }\n\n            $array = &$array[$key];\n        }\n\n        $array[array_shift($keys)] = $value;\n\n        return $array;\n    }\n\n    /**\n     * Shuffle the given array and return the result.\n     *\n     * @param  array  $array\n     * @param  int|null  $seed\n     * @return array\n     */\n    public static function shuffle($array, $seed = null)\n    {\n        if (is_null($seed)) {\n            shuffle($array);\n        } else {\n            mt_srand($seed);\n            shuffle($array);\n            mt_srand();\n        }\n\n        return $array;\n    }\n\n    /**\n     * Sort the array using the given callback or \"dot\" notation.\n     *\n     * @param  array  $array\n     * @param  callable|string|null  $callback\n     * @return array\n     */\n    public static function sort($array, $callback = null)\n    {\n        return Collection::make($array)->sortBy($callback)->all();\n    }\n\n    /**\n     * Recursively sort an array by keys and values.\n     *\n     * @param  array  $array\n     * @return array\n     */\n    public static function sortRecursive($array)\n    {\n        foreach ($array as &$value) {\n            if (is_array($value)) {\n                $value = static::sortRecursive($value);\n            }\n        }\n\n        if (static::isAssoc($array)) {\n            ksort($array);\n        } else {\n            sort($array);\n        }\n\n        return $array;\n    }\n\n    /**\n     * Convert the array into a query string.\n     *\n     * @param  array  $array\n     * @return string\n     */\n    public static function query($array)\n    {\n        return http_build_query($array, null, '&', PHP_QUERY_RFC3986);\n    }\n\n    /**\n     * Filter the array using the given callback.\n     *\n     * @param  array  $array\n     * @param  callable  $callback\n     * @return array\n     */\n    public static function where($array, callable $callback)\n    {\n        return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH);\n    }\n\n    /**\n     * If the given value is not an array and not null, wrap it in one.\n     *\n     * @param  mixed  $value\n     * @return array\n     */\n    public static function wrap($value)\n    {\n        if (is_null($value)) {\n            return [];\n        }\n\n        return is_array($value) ? $value : [$value];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Carbon.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Carbon\\Carbon as BaseCarbon;\n\nclass Carbon extends BaseCarbon\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Collection.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse stdClass;\nuse Countable;\nuse Exception;\nuse ArrayAccess;\nuse Traversable;\nuse ArrayIterator;\nuse CachingIterator;\nuse JsonSerializable;\nuse IteratorAggregate;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Symfony\\Component\\VarDumper\\VarDumper;\nuse Illuminate\\Contracts\\Support\\Arrayable;\n\n/**\n * @property-read HigherOrderCollectionProxy $average\n * @property-read HigherOrderCollectionProxy $avg\n * @property-read HigherOrderCollectionProxy $contains\n * @property-read HigherOrderCollectionProxy $each\n * @property-read HigherOrderCollectionProxy $every\n * @property-read HigherOrderCollectionProxy $filter\n * @property-read HigherOrderCollectionProxy $first\n * @property-read HigherOrderCollectionProxy $flatMap\n * @property-read HigherOrderCollectionProxy $groupBy\n * @property-read HigherOrderCollectionProxy $keyBy\n * @property-read HigherOrderCollectionProxy $map\n * @property-read HigherOrderCollectionProxy $max\n * @property-read HigherOrderCollectionProxy $min\n * @property-read HigherOrderCollectionProxy $partition\n * @property-read HigherOrderCollectionProxy $reject\n * @property-read HigherOrderCollectionProxy $sortBy\n * @property-read HigherOrderCollectionProxy $sortByDesc\n * @property-read HigherOrderCollectionProxy $sum\n * @property-read HigherOrderCollectionProxy $unique\n */\nclass Collection implements ArrayAccess, Arrayable, Countable, IteratorAggregate, Jsonable, JsonSerializable\n{\n    use Macroable;\n\n    /**\n     * The items contained in the collection.\n     *\n     * @var array\n     */\n    protected $items = [];\n\n    /**\n     * The methods that can be proxied.\n     *\n     * @var array\n     */\n    protected static $proxies = [\n        'average', 'avg', 'contains', 'each', 'every', 'filter', 'first',\n        'flatMap', 'groupBy', 'keyBy', 'map', 'max', 'min', 'partition',\n        'reject', 'some', 'sortBy', 'sortByDesc', 'sum', 'unique',\n    ];\n\n    /**\n     * Create a new collection.\n     *\n     * @param  mixed  $items\n     * @return void\n     */\n    public function __construct($items = [])\n    {\n        $this->items = $this->getArrayableItems($items);\n    }\n\n    /**\n     * Create a new collection instance if the value isn't one already.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public static function make($items = [])\n    {\n        return new static($items);\n    }\n\n    /**\n     * Wrap the given value in a collection if applicable.\n     *\n     * @param  mixed  $value\n     * @return static\n     */\n    public static function wrap($value)\n    {\n        return $value instanceof self\n            ? new static($value)\n            : new static(Arr::wrap($value));\n    }\n\n    /**\n     * Get the underlying items from the given collection if applicable.\n     *\n     * @param  array|static  $value\n     * @return array\n     */\n    public static function unwrap($value)\n    {\n        return $value instanceof self ? $value->all() : $value;\n    }\n\n    /**\n     * Create a new collection by invoking the callback a given amount of times.\n     *\n     * @param  int  $number\n     * @param  callable  $callback\n     * @return static\n     */\n    public static function times($number, callable $callback = null)\n    {\n        if ($number < 1) {\n            return new static;\n        }\n\n        if (is_null($callback)) {\n            return new static(range(1, $number));\n        }\n\n        return (new static(range(1, $number)))->map($callback);\n    }\n\n    /**\n     * Get all of the items in the collection.\n     *\n     * @return array\n     */\n    public function all()\n    {\n        return $this->items;\n    }\n\n    /**\n     * Get the average value of a given key.\n     *\n     * @param  callable|string|null  $callback\n     * @return mixed\n     */\n    public function avg($callback = null)\n    {\n        $callback = $this->valueRetriever($callback);\n\n        $items = $this->map(function ($value) use ($callback) {\n            return $callback($value);\n        })->filter(function ($value) {\n            return ! is_null($value);\n        });\n\n        if ($count = $items->count()) {\n            return $items->sum() / $count;\n        }\n    }\n\n    /**\n     * Alias for the \"avg\" method.\n     *\n     * @param  callable|string|null  $callback\n     * @return mixed\n     */\n    public function average($callback = null)\n    {\n        return $this->avg($callback);\n    }\n\n    /**\n     * Get the median of a given key.\n     *\n     * @param  string|array|null $key\n     * @return mixed\n     */\n    public function median($key = null)\n    {\n        $values = (isset($key) ? $this->pluck($key) : $this)\n            ->filter(function ($item) {\n                return ! is_null($item);\n            })->sort()->values();\n\n        $count = $values->count();\n\n        if ($count === 0) {\n            return;\n        }\n\n        $middle = (int) ($count / 2);\n\n        if ($count % 2) {\n            return $values->get($middle);\n        }\n\n        return (new static([\n            $values->get($middle - 1), $values->get($middle),\n        ]))->average();\n    }\n\n    /**\n     * Get the mode of a given key.\n     *\n     * @param  string|array|null  $key\n     * @return array|null\n     */\n    public function mode($key = null)\n    {\n        if ($this->count() === 0) {\n            return;\n        }\n\n        $collection = isset($key) ? $this->pluck($key) : $this;\n\n        $counts = new self;\n\n        $collection->each(function ($value) use ($counts) {\n            $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1;\n        });\n\n        $sorted = $counts->sort();\n\n        $highestValue = $sorted->last();\n\n        return $sorted->filter(function ($value) use ($highestValue) {\n            return $value == $highestValue;\n        })->sort()->keys()->all();\n    }\n\n    /**\n     * Collapse the collection of items into a single array.\n     *\n     * @return static\n     */\n    public function collapse()\n    {\n        return new static(Arr::collapse($this->items));\n    }\n\n    /**\n     * Alias for the \"contains\" method.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function some($key, $operator = null, $value = null)\n    {\n        return $this->contains(...func_get_args());\n    }\n\n    /**\n     * Determine if an item exists in the collection.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function contains($key, $operator = null, $value = null)\n    {\n        if (func_num_args() === 1) {\n            if ($this->useAsCallable($key)) {\n                $placeholder = new stdClass;\n\n                return $this->first($key, $placeholder) !== $placeholder;\n            }\n\n            return in_array($key, $this->items);\n        }\n\n        return $this->contains($this->operatorForWhere(...func_get_args()));\n    }\n\n    /**\n     * Determine if an item exists in the collection using strict comparison.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function containsStrict($key, $value = null)\n    {\n        if (func_num_args() === 2) {\n            return $this->contains(function ($item) use ($key, $value) {\n                return data_get($item, $key) === $value;\n            });\n        }\n\n        if ($this->useAsCallable($key)) {\n            return ! is_null($this->first($key));\n        }\n\n        return in_array($key, $this->items, true);\n    }\n\n    /**\n     * Cross join with the given lists, returning all possible permutations.\n     *\n     * @param  mixed  ...$lists\n     * @return static\n     */\n    public function crossJoin(...$lists)\n    {\n        return new static(Arr::crossJoin(\n            $this->items, ...array_map([$this, 'getArrayableItems'], $lists)\n        ));\n    }\n\n    /**\n     * Dump the collection and end the script.\n     *\n     * @param  mixed  ...$args\n     * @return void\n     */\n    public function dd(...$args)\n    {\n        call_user_func_array([$this, 'dump'], $args);\n\n        die(1);\n    }\n\n    /**\n     * Dump the collection.\n     *\n     * @return $this\n     */\n    public function dump()\n    {\n        (new static(func_get_args()))\n            ->push($this)\n            ->each(function ($item) {\n                VarDumper::dump($item);\n            });\n\n        return $this;\n    }\n\n    /**\n     * Get the items in the collection that are not present in the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function diff($items)\n    {\n        return new static(array_diff($this->items, $this->getArrayableItems($items)));\n    }\n\n    /**\n     * Get the items in the collection that are not present in the given items.\n     *\n     * @param  mixed  $items\n     * @param  callable  $callback\n     * @return static\n     */\n    public function diffUsing($items, callable $callback)\n    {\n        return new static(array_udiff($this->items, $this->getArrayableItems($items), $callback));\n    }\n\n    /**\n     * Get the items in the collection whose keys and values are not present in the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function diffAssoc($items)\n    {\n        return new static(array_diff_assoc($this->items, $this->getArrayableItems($items)));\n    }\n\n    /**\n     * Get the items in the collection whose keys and values are not present in the given items.\n     *\n     * @param  mixed  $items\n     * @param  callable  $callback\n     * @return static\n     */\n    public function diffAssocUsing($items, callable $callback)\n    {\n        return new static(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback));\n    }\n\n    /**\n     * Get the items in the collection whose keys are not present in the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function diffKeys($items)\n    {\n        return new static(array_diff_key($this->items, $this->getArrayableItems($items)));\n    }\n\n    /**\n     * Get the items in the collection whose keys are not present in the given items.\n     *\n     * @param  mixed   $items\n     * @param  callable  $callback\n     * @return static\n     */\n    public function diffKeysUsing($items, callable $callback)\n    {\n        return new static(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback));\n    }\n\n    /**\n     * Retrieve duplicate items from the collection.\n     *\n     * @param  callable|null  $callback\n     * @param  bool  $strict\n     * @return static\n     */\n    public function duplicates($callback = null, $strict = false)\n    {\n        $items = $this->map($this->valueRetriever($callback));\n\n        $uniqueItems = $items->unique(null, $strict);\n\n        $compare = $this->duplicateComparator($strict);\n\n        $duplicates = new static;\n\n        foreach ($items as $key => $value) {\n            if ($uniqueItems->isNotEmpty() && $compare($value, $uniqueItems->first())) {\n                $uniqueItems->shift();\n            } else {\n                $duplicates[$key] = $value;\n            }\n        }\n\n        return $duplicates;\n    }\n\n    /**\n     * Retrieve duplicate items from the collection using strict comparison.\n     *\n     * @param  callable|null  $callback\n     * @return static\n     */\n    public function duplicatesStrict($callback = null)\n    {\n        return $this->duplicates($callback, true);\n    }\n\n    /**\n     * Get the comparison function to detect duplicates.\n     *\n     * @param  bool  $strict\n     * @return \\Closure\n     */\n    protected function duplicateComparator($strict)\n    {\n        if ($strict) {\n            return function ($a, $b) {\n                return $a === $b;\n            };\n        }\n\n        return function ($a, $b) {\n            return $a == $b;\n        };\n    }\n\n    /**\n     * Execute a callback over each item.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function each(callable $callback)\n    {\n        foreach ($this->items as $key => $item) {\n            if ($callback($item, $key) === false) {\n                break;\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Execute a callback over each nested chunk of items.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function eachSpread(callable $callback)\n    {\n        return $this->each(function ($chunk, $key) use ($callback) {\n            $chunk[] = $key;\n\n            return $callback(...$chunk);\n        });\n    }\n\n    /**\n     * Determine if all items in the collection pass the given test.\n     *\n     * @param  string|callable  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function every($key, $operator = null, $value = null)\n    {\n        if (func_num_args() === 1) {\n            $callback = $this->valueRetriever($key);\n\n            foreach ($this->items as $k => $v) {\n                if (! $callback($v, $k)) {\n                    return false;\n                }\n            }\n\n            return true;\n        }\n\n        return $this->every($this->operatorForWhere(...func_get_args()));\n    }\n\n    /**\n     * Get all items except for those with the specified keys.\n     *\n     * @param  \\Illuminate\\Support\\Collection|mixed  $keys\n     * @return static\n     */\n    public function except($keys)\n    {\n        if ($keys instanceof self) {\n            $keys = $keys->all();\n        } elseif (! is_array($keys)) {\n            $keys = func_get_args();\n        }\n\n        return new static(Arr::except($this->items, $keys));\n    }\n\n    /**\n     * Run a filter over each of the items.\n     *\n     * @param  callable|null  $callback\n     * @return static\n     */\n    public function filter(callable $callback = null)\n    {\n        if ($callback) {\n            return new static(Arr::where($this->items, $callback));\n        }\n\n        return new static(array_filter($this->items));\n    }\n\n    /**\n     * Apply the callback if the value is truthy.\n     *\n     * @param  bool  $value\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function when($value, callable $callback, callable $default = null)\n    {\n        if ($value) {\n            return $callback($this, $value);\n        } elseif ($default) {\n            return $default($this, $value);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Apply the callback if the collection is empty.\n     *\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function whenEmpty(callable $callback, callable $default = null)\n    {\n        return $this->when($this->isEmpty(), $callback, $default);\n    }\n\n    /**\n     * Apply the callback if the collection is not empty.\n     *\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function whenNotEmpty(callable $callback, callable $default = null)\n    {\n        return $this->when($this->isNotEmpty(), $callback, $default);\n    }\n\n    /**\n     * Apply the callback if the value is falsy.\n     *\n     * @param  bool  $value\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function unless($value, callable $callback, callable $default = null)\n    {\n        return $this->when(! $value, $callback, $default);\n    }\n\n    /**\n     * Apply the callback unless the collection is empty.\n     *\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function unlessEmpty(callable $callback, callable $default = null)\n    {\n        return $this->whenNotEmpty($callback, $default);\n    }\n\n    /**\n     * Apply the callback unless the collection is not empty.\n     *\n     * @param  callable  $callback\n     * @param  callable  $default\n     * @return static|mixed\n     */\n    public function unlessNotEmpty(callable $callback, callable $default = null)\n    {\n        return $this->whenEmpty($callback, $default);\n    }\n\n    /**\n     * Filter items by the given key value pair.\n     *\n     * @param  string  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return static\n     */\n    public function where($key, $operator = null, $value = null)\n    {\n        return $this->filter($this->operatorForWhere(...func_get_args()));\n    }\n\n    /**\n     * Get an operator checker callback.\n     *\n     * @param  string  $key\n     * @param  string  $operator\n     * @param  mixed  $value\n     * @return \\Closure\n     */\n    protected function operatorForWhere($key, $operator = null, $value = null)\n    {\n        if (func_num_args() === 1) {\n            $value = true;\n\n            $operator = '=';\n        }\n\n        if (func_num_args() === 2) {\n            $value = $operator;\n\n            $operator = '=';\n        }\n\n        return function ($item) use ($key, $operator, $value) {\n            $retrieved = data_get($item, $key);\n\n            $strings = array_filter([$retrieved, $value], function ($value) {\n                return is_string($value) || (is_object($value) && method_exists($value, '__toString'));\n            });\n\n            if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) {\n                return in_array($operator, ['!=', '<>', '!==']);\n            }\n\n            switch ($operator) {\n                default:\n                case '=':\n                case '==':  return $retrieved == $value;\n                case '!=':\n                case '<>':  return $retrieved != $value;\n                case '<':   return $retrieved < $value;\n                case '>':   return $retrieved > $value;\n                case '<=':  return $retrieved <= $value;\n                case '>=':  return $retrieved >= $value;\n                case '===': return $retrieved === $value;\n                case '!==': return $retrieved !== $value;\n            }\n        };\n    }\n\n    /**\n     * Filter items by the given key value pair using strict comparison.\n     *\n     * @param  string  $key\n     * @param  mixed  $value\n     * @return static\n     */\n    public function whereStrict($key, $value)\n    {\n        return $this->where($key, '===', $value);\n    }\n\n    /**\n     * Filter items by the given key value pair.\n     *\n     * @param  string  $key\n     * @param  mixed  $values\n     * @param  bool  $strict\n     * @return static\n     */\n    public function whereIn($key, $values, $strict = false)\n    {\n        $values = $this->getArrayableItems($values);\n\n        return $this->filter(function ($item) use ($key, $values, $strict) {\n            return in_array(data_get($item, $key), $values, $strict);\n        });\n    }\n\n    /**\n     * Filter items by the given key value pair using strict comparison.\n     *\n     * @param  string  $key\n     * @param  mixed  $values\n     * @return static\n     */\n    public function whereInStrict($key, $values)\n    {\n        return $this->whereIn($key, $values, true);\n    }\n\n    /**\n     * Filter items such that the value of the given key is between the given values.\n     *\n     * @param  string  $key\n     * @param  array  $values\n     * @return static\n     */\n    public function whereBetween($key, $values)\n    {\n        return $this->where($key, '>=', reset($values))->where($key, '<=', end($values));\n    }\n\n    /**\n     * Filter items such that the value of the given key is not between the given values.\n     *\n     * @param  string  $key\n     * @param  array  $values\n     * @return static\n     */\n    public function whereNotBetween($key, $values)\n    {\n        return $this->filter(function ($item) use ($key, $values) {\n            return data_get($item, $key) < reset($values) || data_get($item, $key) > end($values);\n        });\n    }\n\n    /**\n     * Filter items by the given key value pair.\n     *\n     * @param  string  $key\n     * @param  mixed  $values\n     * @param  bool  $strict\n     * @return static\n     */\n    public function whereNotIn($key, $values, $strict = false)\n    {\n        $values = $this->getArrayableItems($values);\n\n        return $this->reject(function ($item) use ($key, $values, $strict) {\n            return in_array(data_get($item, $key), $values, $strict);\n        });\n    }\n\n    /**\n     * Filter items by the given key value pair using strict comparison.\n     *\n     * @param  string  $key\n     * @param  mixed  $values\n     * @return static\n     */\n    public function whereNotInStrict($key, $values)\n    {\n        return $this->whereNotIn($key, $values, true);\n    }\n\n    /**\n     * Filter the items, removing any items that don't match the given type.\n     *\n     * @param  string  $type\n     * @return static\n     */\n    public function whereInstanceOf($type)\n    {\n        return $this->filter(function ($value) use ($type) {\n            return $value instanceof $type;\n        });\n    }\n\n    /**\n     * Get the first item from the collection passing the given truth test.\n     *\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function first(callable $callback = null, $default = null)\n    {\n        return Arr::first($this->items, $callback, $default);\n    }\n\n    /**\n     * Get the first item by the given key value pair.\n     *\n     * @param  string  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return mixed\n     */\n    public function firstWhere($key, $operator = null, $value = null)\n    {\n        return $this->first($this->operatorForWhere(...func_get_args()));\n    }\n\n    /**\n     * Get a flattened array of the items in the collection.\n     *\n     * @param  int  $depth\n     * @return static\n     */\n    public function flatten($depth = INF)\n    {\n        return new static(Arr::flatten($this->items, $depth));\n    }\n\n    /**\n     * Flip the items in the collection.\n     *\n     * @return static\n     */\n    public function flip()\n    {\n        return new static(array_flip($this->items));\n    }\n\n    /**\n     * Remove an item from the collection by key.\n     *\n     * @param  string|array  $keys\n     * @return $this\n     */\n    public function forget($keys)\n    {\n        foreach ((array) $keys as $key) {\n            $this->offsetUnset($key);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get an item from the collection by key.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        if ($this->offsetExists($key)) {\n            return $this->items[$key];\n        }\n\n        return value($default);\n    }\n\n    /**\n     * Group an associative array by a field or using a callback.\n     *\n     * @param  array|callable|string  $groupBy\n     * @param  bool  $preserveKeys\n     * @return static\n     */\n    public function groupBy($groupBy, $preserveKeys = false)\n    {\n        if (is_array($groupBy)) {\n            $nextGroups = $groupBy;\n\n            $groupBy = array_shift($nextGroups);\n        }\n\n        $groupBy = $this->valueRetriever($groupBy);\n\n        $results = [];\n\n        foreach ($this->items as $key => $value) {\n            $groupKeys = $groupBy($value, $key);\n\n            if (! is_array($groupKeys)) {\n                $groupKeys = [$groupKeys];\n            }\n\n            foreach ($groupKeys as $groupKey) {\n                $groupKey = is_bool($groupKey) ? (int) $groupKey : $groupKey;\n\n                if (! array_key_exists($groupKey, $results)) {\n                    $results[$groupKey] = new static;\n                }\n\n                $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value);\n            }\n        }\n\n        $result = new static($results);\n\n        if (! empty($nextGroups)) {\n            return $result->map->groupBy($nextGroups, $preserveKeys);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Key an associative array by a field or using a callback.\n     *\n     * @param  callable|string  $keyBy\n     * @return static\n     */\n    public function keyBy($keyBy)\n    {\n        $keyBy = $this->valueRetriever($keyBy);\n\n        $results = [];\n\n        foreach ($this->items as $key => $item) {\n            $resolvedKey = $keyBy($item, $key);\n\n            if (is_object($resolvedKey)) {\n                $resolvedKey = (string) $resolvedKey;\n            }\n\n            $results[$resolvedKey] = $item;\n        }\n\n        return new static($results);\n    }\n\n    /**\n     * Determine if an item exists in the collection by key.\n     *\n     * @param  mixed  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        $keys = is_array($key) ? $key : func_get_args();\n\n        foreach ($keys as $value) {\n            if (! $this->offsetExists($value)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Concatenate values of a given key as a string.\n     *\n     * @param  string  $value\n     * @param  string  $glue\n     * @return string\n     */\n    public function implode($value, $glue = null)\n    {\n        $first = $this->first();\n\n        if (is_array($first) || is_object($first)) {\n            return implode($glue, $this->pluck($value)->all());\n        }\n\n        return implode($value, $this->items);\n    }\n\n    /**\n     * Intersect the collection with the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function intersect($items)\n    {\n        return new static(array_intersect($this->items, $this->getArrayableItems($items)));\n    }\n\n    /**\n     * Intersect the collection with the given items by key.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function intersectByKeys($items)\n    {\n        return new static(array_intersect_key(\n            $this->items, $this->getArrayableItems($items)\n        ));\n    }\n\n    /**\n     * Determine if the collection is empty or not.\n     *\n     * @return bool\n     */\n    public function isEmpty()\n    {\n        return empty($this->items);\n    }\n\n    /**\n     * Determine if the collection is not empty.\n     *\n     * @return bool\n     */\n    public function isNotEmpty()\n    {\n        return ! $this->isEmpty();\n    }\n\n    /**\n     * Determine if the given value is callable, but not a string.\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    protected function useAsCallable($value)\n    {\n        return ! is_string($value) && is_callable($value);\n    }\n\n    /**\n     * Join all items from the collection using a string. The final items can use a separate glue string.\n     *\n     * @param  string  $glue\n     * @param  string  $finalGlue\n     * @return string\n     */\n    public function join($glue, $finalGlue = '')\n    {\n        if ($finalGlue === '') {\n            return $this->implode($glue);\n        }\n\n        $count = $this->count();\n\n        if ($count === 0) {\n            return '';\n        }\n\n        if ($count === 1) {\n            return $this->last();\n        }\n\n        $collection = new static($this->items);\n\n        $finalItem = $collection->pop();\n\n        return $collection->implode($glue).$finalGlue.$finalItem;\n    }\n\n    /**\n     * Get the keys of the collection items.\n     *\n     * @return static\n     */\n    public function keys()\n    {\n        return new static(array_keys($this->items));\n    }\n\n    /**\n     * Get the last item from the collection.\n     *\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function last(callable $callback = null, $default = null)\n    {\n        return Arr::last($this->items, $callback, $default);\n    }\n\n    /**\n     * Get the values of a given key.\n     *\n     * @param  string|array  $value\n     * @param  string|null  $key\n     * @return static\n     */\n    public function pluck($value, $key = null)\n    {\n        return new static(Arr::pluck($this->items, $value, $key));\n    }\n\n    /**\n     * Run a map over each of the items.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function map(callable $callback)\n    {\n        $keys = array_keys($this->items);\n\n        $items = array_map($callback, $this->items, $keys);\n\n        return new static(array_combine($keys, $items));\n    }\n\n    /**\n     * Run a map over each nested chunk of items.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function mapSpread(callable $callback)\n    {\n        return $this->map(function ($chunk, $key) use ($callback) {\n            $chunk[] = $key;\n\n            return $callback(...$chunk);\n        });\n    }\n\n    /**\n     * Run a dictionary map over the items.\n     *\n     * The callback should return an associative array with a single key/value pair.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function mapToDictionary(callable $callback)\n    {\n        $dictionary = [];\n\n        foreach ($this->items as $key => $item) {\n            $pair = $callback($item, $key);\n\n            $key = key($pair);\n\n            $value = reset($pair);\n\n            if (! isset($dictionary[$key])) {\n                $dictionary[$key] = [];\n            }\n\n            $dictionary[$key][] = $value;\n        }\n\n        return new static($dictionary);\n    }\n\n    /**\n     * Run a grouping map over the items.\n     *\n     * The callback should return an associative array with a single key/value pair.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function mapToGroups(callable $callback)\n    {\n        $groups = $this->mapToDictionary($callback);\n\n        return $groups->map([$this, 'make']);\n    }\n\n    /**\n     * Run an associative map over each of the items.\n     *\n     * The callback should return an associative array with a single key/value pair.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function mapWithKeys(callable $callback)\n    {\n        $result = [];\n\n        foreach ($this->items as $key => $value) {\n            $assoc = $callback($value, $key);\n\n            foreach ($assoc as $mapKey => $mapValue) {\n                $result[$mapKey] = $mapValue;\n            }\n        }\n\n        return new static($result);\n    }\n\n    /**\n     * Map a collection and flatten the result by a single level.\n     *\n     * @param  callable  $callback\n     * @return static\n     */\n    public function flatMap(callable $callback)\n    {\n        return $this->map($callback)->collapse();\n    }\n\n    /**\n     * Map the values into a new class.\n     *\n     * @param  string  $class\n     * @return static\n     */\n    public function mapInto($class)\n    {\n        return $this->map(function ($value, $key) use ($class) {\n            return new $class($value, $key);\n        });\n    }\n\n    /**\n     * Get the max value of a given key.\n     *\n     * @param  callable|string|null  $callback\n     * @return mixed\n     */\n    public function max($callback = null)\n    {\n        $callback = $this->valueRetriever($callback);\n\n        return $this->filter(function ($value) {\n            return ! is_null($value);\n        })->reduce(function ($result, $item) use ($callback) {\n            $value = $callback($item);\n\n            return is_null($result) || $value > $result ? $value : $result;\n        });\n    }\n\n    /**\n     * Merge the collection with the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function merge($items)\n    {\n        return new static(array_merge($this->items, $this->getArrayableItems($items)));\n    }\n\n    /**\n     * Create a collection by using this collection for keys and another for its values.\n     *\n     * @param  mixed  $values\n     * @return static\n     */\n    public function combine($values)\n    {\n        return new static(array_combine($this->all(), $this->getArrayableItems($values)));\n    }\n\n    /**\n     * Union the collection with the given items.\n     *\n     * @param  mixed  $items\n     * @return static\n     */\n    public function union($items)\n    {\n        return new static($this->items + $this->getArrayableItems($items));\n    }\n\n    /**\n     * Get the min value of a given key.\n     *\n     * @param  callable|string|null  $callback\n     * @return mixed\n     */\n    public function min($callback = null)\n    {\n        $callback = $this->valueRetriever($callback);\n\n        return $this->map(function ($value) use ($callback) {\n            return $callback($value);\n        })->filter(function ($value) {\n            return ! is_null($value);\n        })->reduce(function ($result, $value) {\n            return is_null($result) || $value < $result ? $value : $result;\n        });\n    }\n\n    /**\n     * Create a new collection consisting of every n-th element.\n     *\n     * @param  int  $step\n     * @param  int  $offset\n     * @return static\n     */\n    public function nth($step, $offset = 0)\n    {\n        $new = [];\n\n        $position = 0;\n\n        foreach ($this->items as $item) {\n            if ($position % $step === $offset) {\n                $new[] = $item;\n            }\n\n            $position++;\n        }\n\n        return new static($new);\n    }\n\n    /**\n     * Get the items with the specified keys.\n     *\n     * @param  mixed  $keys\n     * @return static\n     */\n    public function only($keys)\n    {\n        if (is_null($keys)) {\n            return new static($this->items);\n        }\n\n        if ($keys instanceof self) {\n            $keys = $keys->all();\n        }\n\n        $keys = is_array($keys) ? $keys : func_get_args();\n\n        return new static(Arr::only($this->items, $keys));\n    }\n\n    /**\n     * \"Paginate\" the collection by slicing it into a smaller collection.\n     *\n     * @param  int  $page\n     * @param  int  $perPage\n     * @return static\n     */\n    public function forPage($page, $perPage)\n    {\n        $offset = max(0, ($page - 1) * $perPage);\n\n        return $this->slice($offset, $perPage);\n    }\n\n    /**\n     * Partition the collection into two arrays using the given callback or key.\n     *\n     * @param  callable|string  $key\n     * @param  mixed  $operator\n     * @param  mixed  $value\n     * @return static\n     */\n    public function partition($key, $operator = null, $value = null)\n    {\n        $partitions = [new static, new static];\n\n        $callback = func_num_args() === 1\n                ? $this->valueRetriever($key)\n                : $this->operatorForWhere(...func_get_args());\n\n        foreach ($this->items as $key => $item) {\n            $partitions[(int) ! $callback($item, $key)][$key] = $item;\n        }\n\n        return new static($partitions);\n    }\n\n    /**\n     * Pass the collection to the given callback and return the result.\n     *\n     * @param  callable $callback\n     * @return mixed\n     */\n    public function pipe(callable $callback)\n    {\n        return $callback($this);\n    }\n\n    /**\n     * Get and remove the last item from the collection.\n     *\n     * @return mixed\n     */\n    public function pop()\n    {\n        return array_pop($this->items);\n    }\n\n    /**\n     * Push an item onto the beginning of the collection.\n     *\n     * @param  mixed  $value\n     * @param  mixed  $key\n     * @return $this\n     */\n    public function prepend($value, $key = null)\n    {\n        $this->items = Arr::prepend($this->items, $value, $key);\n\n        return $this;\n    }\n\n    /**\n     * Push an item onto the end of the collection.\n     *\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function push($value)\n    {\n        $this->offsetSet(null, $value);\n\n        return $this;\n    }\n\n    /**\n     * Push all of the given items onto the collection.\n     *\n     * @param  iterable  $source\n     * @return static\n     */\n    public function concat($source)\n    {\n        $result = new static($this);\n\n        foreach ($source as $item) {\n            $result->push($item);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Get and remove an item from the collection.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $default\n     * @return mixed\n     */\n    public function pull($key, $default = null)\n    {\n        return Arr::pull($this->items, $key, $default);\n    }\n\n    /**\n     * Put an item in the collection by key.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @return $this\n     */\n    public function put($key, $value)\n    {\n        $this->offsetSet($key, $value);\n\n        return $this;\n    }\n\n    /**\n     * Get one or a specified number of items randomly from the collection.\n     *\n     * @param  int|null  $number\n     * @return static|mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function random($number = null)\n    {\n        if (is_null($number)) {\n            return Arr::random($this->items);\n        }\n\n        return new static(Arr::random($this->items, $number));\n    }\n\n    /**\n     * Reduce the collection to a single value.\n     *\n     * @param  callable  $callback\n     * @param  mixed  $initial\n     * @return mixed\n     */\n    public function reduce(callable $callback, $initial = null)\n    {\n        return array_reduce($this->items, $callback, $initial);\n    }\n\n    /**\n     * Create a collection of all elements that do not pass a given truth test.\n     *\n     * @param  callable|mixed  $callback\n     * @return static\n     */\n    public function reject($callback = true)\n    {\n        $useAsCallable = $this->useAsCallable($callback);\n\n        return $this->filter(function ($value, $key) use ($callback, $useAsCallable) {\n            return $useAsCallable\n                ? ! $callback($value, $key)\n                : $value != $callback;\n        });\n    }\n\n    /**\n     * Reverse items order.\n     *\n     * @return static\n     */\n    public function reverse()\n    {\n        return new static(array_reverse($this->items, true));\n    }\n\n    /**\n     * Search the collection for a given value and return the corresponding key if successful.\n     *\n     * @param  mixed  $value\n     * @param  bool  $strict\n     * @return mixed\n     */\n    public function search($value, $strict = false)\n    {\n        if (! $this->useAsCallable($value)) {\n            return array_search($value, $this->items, $strict);\n        }\n\n        foreach ($this->items as $key => $item) {\n            if (call_user_func($value, $item, $key)) {\n                return $key;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Get and remove the first item from the collection.\n     *\n     * @return mixed\n     */\n    public function shift()\n    {\n        return array_shift($this->items);\n    }\n\n    /**\n     * Shuffle the items in the collection.\n     *\n     * @param  int  $seed\n     * @return static\n     */\n    public function shuffle($seed = null)\n    {\n        return new static(Arr::shuffle($this->items, $seed));\n    }\n\n    /**\n     * Slice the underlying collection array.\n     *\n     * @param  int  $offset\n     * @param  int  $length\n     * @return static\n     */\n    public function slice($offset, $length = null)\n    {\n        return new static(array_slice($this->items, $offset, $length, true));\n    }\n\n    /**\n     * Split a collection into a certain number of groups.\n     *\n     * @param  int  $numberOfGroups\n     * @return static\n     */\n    public function split($numberOfGroups)\n    {\n        if ($this->isEmpty()) {\n            return new static;\n        }\n\n        $groups = new static;\n\n        $groupSize = floor($this->count() / $numberOfGroups);\n\n        $remain = $this->count() % $numberOfGroups;\n\n        $start = 0;\n\n        for ($i = 0; $i < $numberOfGroups; $i++) {\n            $size = $groupSize;\n\n            if ($i < $remain) {\n                $size++;\n            }\n\n            if ($size) {\n                $groups->push(new static(array_slice($this->items, $start, $size)));\n\n                $start += $size;\n            }\n        }\n\n        return $groups;\n    }\n\n    /**\n     * Chunk the underlying collection array.\n     *\n     * @param  int  $size\n     * @return static\n     */\n    public function chunk($size)\n    {\n        if ($size <= 0) {\n            return new static;\n        }\n\n        $chunks = [];\n\n        foreach (array_chunk($this->items, $size, true) as $chunk) {\n            $chunks[] = new static($chunk);\n        }\n\n        return new static($chunks);\n    }\n\n    /**\n     * Sort through each item with a callback.\n     *\n     * @param  callable|null  $callback\n     * @return static\n     */\n    public function sort(callable $callback = null)\n    {\n        $items = $this->items;\n\n        $callback\n            ? uasort($items, $callback)\n            : asort($items);\n\n        return new static($items);\n    }\n\n    /**\n     * Sort the collection using the given callback.\n     *\n     * @param  callable|string  $callback\n     * @param  int  $options\n     * @param  bool  $descending\n     * @return static\n     */\n    public function sortBy($callback, $options = SORT_REGULAR, $descending = false)\n    {\n        $results = [];\n\n        $callback = $this->valueRetriever($callback);\n\n        // First we will loop through the items and get the comparator from a callback\n        // function which we were given. Then, we will sort the returned values and\n        // and grab the corresponding values for the sorted keys from this array.\n        foreach ($this->items as $key => $value) {\n            $results[$key] = $callback($value, $key);\n        }\n\n        $descending ? arsort($results, $options)\n            : asort($results, $options);\n\n        // Once we have sorted all of the keys in the array, we will loop through them\n        // and grab the corresponding model so we can set the underlying items list\n        // to the sorted version. Then we'll just return the collection instance.\n        foreach (array_keys($results) as $key) {\n            $results[$key] = $this->items[$key];\n        }\n\n        return new static($results);\n    }\n\n    /**\n     * Sort the collection in descending order using the given callback.\n     *\n     * @param  callable|string  $callback\n     * @param  int  $options\n     * @return static\n     */\n    public function sortByDesc($callback, $options = SORT_REGULAR)\n    {\n        return $this->sortBy($callback, $options, true);\n    }\n\n    /**\n     * Sort the collection keys.\n     *\n     * @param  int  $options\n     * @param  bool  $descending\n     * @return static\n     */\n    public function sortKeys($options = SORT_REGULAR, $descending = false)\n    {\n        $items = $this->items;\n\n        $descending ? krsort($items, $options) : ksort($items, $options);\n\n        return new static($items);\n    }\n\n    /**\n     * Sort the collection keys in descending order.\n     *\n     * @param  int $options\n     * @return static\n     */\n    public function sortKeysDesc($options = SORT_REGULAR)\n    {\n        return $this->sortKeys($options, true);\n    }\n\n    /**\n     * Splice a portion of the underlying collection array.\n     *\n     * @param  int  $offset\n     * @param  int|null  $length\n     * @param  mixed  $replacement\n     * @return static\n     */\n    public function splice($offset, $length = null, $replacement = [])\n    {\n        if (func_num_args() === 1) {\n            return new static(array_splice($this->items, $offset));\n        }\n\n        return new static(array_splice($this->items, $offset, $length, $replacement));\n    }\n\n    /**\n     * Get the sum of the given values.\n     *\n     * @param  callable|string|null  $callback\n     * @return mixed\n     */\n    public function sum($callback = null)\n    {\n        if (is_null($callback)) {\n            return array_sum($this->items);\n        }\n\n        $callback = $this->valueRetriever($callback);\n\n        return $this->reduce(function ($result, $item) use ($callback) {\n            return $result + $callback($item);\n        }, 0);\n    }\n\n    /**\n     * Take the first or last {$limit} items.\n     *\n     * @param  int  $limit\n     * @return static\n     */\n    public function take($limit)\n    {\n        if ($limit < 0) {\n            return $this->slice($limit, abs($limit));\n        }\n\n        return $this->slice(0, $limit);\n    }\n\n    /**\n     * Pass the collection to the given callback and then return it.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function tap(callable $callback)\n    {\n        $callback(new static($this->items));\n\n        return $this;\n    }\n\n    /**\n     * Transform each item in the collection using a callback.\n     *\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function transform(callable $callback)\n    {\n        $this->items = $this->map($callback)->all();\n\n        return $this;\n    }\n\n    /**\n     * Return only unique items from the collection array.\n     *\n     * @param  string|callable|null  $key\n     * @param  bool  $strict\n     * @return static\n     */\n    public function unique($key = null, $strict = false)\n    {\n        $callback = $this->valueRetriever($key);\n\n        $exists = [];\n\n        return $this->reject(function ($item, $key) use ($callback, $strict, &$exists) {\n            if (in_array($id = $callback($item, $key), $exists, $strict)) {\n                return true;\n            }\n\n            $exists[] = $id;\n        });\n    }\n\n    /**\n     * Return only unique items from the collection array using strict comparison.\n     *\n     * @param  string|callable|null  $key\n     * @return static\n     */\n    public function uniqueStrict($key = null)\n    {\n        return $this->unique($key, true);\n    }\n\n    /**\n     * Reset the keys on the underlying array.\n     *\n     * @return static\n     */\n    public function values()\n    {\n        return new static(array_values($this->items));\n    }\n\n    /**\n     * Get a value retrieving callback.\n     *\n     * @param  callable|string|null  $value\n     * @return callable\n     */\n    protected function valueRetriever($value)\n    {\n        if ($this->useAsCallable($value)) {\n            return $value;\n        }\n\n        return function ($item) use ($value) {\n            return data_get($item, $value);\n        };\n    }\n\n    /**\n     * Zip the collection together with one or more arrays.\n     *\n     * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]);\n     *      => [[1, 4], [2, 5], [3, 6]]\n     *\n     * @param  mixed ...$items\n     * @return static\n     */\n    public function zip($items)\n    {\n        $arrayableItems = array_map(function ($items) {\n            return $this->getArrayableItems($items);\n        }, func_get_args());\n\n        $params = array_merge([function () {\n            return new static(func_get_args());\n        }, $this->items], $arrayableItems);\n\n        return new static(call_user_func_array('array_map', $params));\n    }\n\n    /**\n     * Pad collection to the specified length with a value.\n     *\n     * @param  int  $size\n     * @param  mixed  $value\n     * @return static\n     */\n    public function pad($size, $value)\n    {\n        return new static(array_pad($this->items, $size, $value));\n    }\n\n    /**\n     * Get the collection of items as a plain array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return array_map(function ($value) {\n            return $value instanceof Arrayable ? $value->toArray() : $value;\n        }, $this->items);\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return array_map(function ($value) {\n            if ($value instanceof JsonSerializable) {\n                return $value->jsonSerialize();\n            } elseif ($value instanceof Jsonable) {\n                return json_decode($value->toJson(), true);\n            } elseif ($value instanceof Arrayable) {\n                return $value->toArray();\n            }\n\n            return $value;\n        }, $this->items);\n    }\n\n    /**\n     * Get the collection of items as JSON.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0)\n    {\n        return json_encode($this->jsonSerialize(), $options);\n    }\n\n    /**\n     * Get an iterator for the items.\n     *\n     * @return \\ArrayIterator\n     */\n    public function getIterator()\n    {\n        return new ArrayIterator($this->items);\n    }\n\n    /**\n     * Get a CachingIterator instance.\n     *\n     * @param  int  $flags\n     * @return \\CachingIterator\n     */\n    public function getCachingIterator($flags = CachingIterator::CALL_TOSTRING)\n    {\n        return new CachingIterator($this->getIterator(), $flags);\n    }\n\n    /**\n     * Count the number of items in the collection.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->items);\n    }\n\n    /**\n     * Count the number of items in the collection using a given truth test.\n     *\n     * @param  callable|null  $callback\n     * @return static\n     */\n    public function countBy($callback = null)\n    {\n        if (is_null($callback)) {\n            $callback = function ($value) {\n                return $value;\n            };\n        }\n\n        return new static($this->groupBy($callback)->map(function ($value) {\n            return $value->count();\n        }));\n    }\n\n    /**\n     * Add an item to the collection.\n     *\n     * @param  mixed  $item\n     * @return $this\n     */\n    public function add($item)\n    {\n        $this->items[] = $item;\n\n        return $this;\n    }\n\n    /**\n     * Get a base Support collection instance from this collection.\n     *\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function toBase()\n    {\n        return new self($this);\n    }\n\n    /**\n     * Determine if an item exists at an offset.\n     *\n     * @param  mixed  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return array_key_exists($key, $this->items);\n    }\n\n    /**\n     * Get an item at a given offset.\n     *\n     * @param  mixed  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->items[$key];\n    }\n\n    /**\n     * Set the item at a given offset.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        if (is_null($key)) {\n            $this->items[] = $value;\n        } else {\n            $this->items[$key] = $value;\n        }\n    }\n\n    /**\n     * Unset the item at a given offset.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        unset($this->items[$key]);\n    }\n\n    /**\n     * Convert the collection to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->toJson();\n    }\n\n    /**\n     * Results array of items from Collection or Arrayable.\n     *\n     * @param  mixed  $items\n     * @return array\n     */\n    protected function getArrayableItems($items)\n    {\n        if (is_array($items)) {\n            return $items;\n        } elseif ($items instanceof self) {\n            return $items->all();\n        } elseif ($items instanceof Arrayable) {\n            return $items->toArray();\n        } elseif ($items instanceof Jsonable) {\n            return json_decode($items->toJson(), true);\n        } elseif ($items instanceof JsonSerializable) {\n            return $items->jsonSerialize();\n        } elseif ($items instanceof Traversable) {\n            return iterator_to_array($items);\n        }\n\n        return (array) $items;\n    }\n\n    /**\n     * Add a method to the list of proxied methods.\n     *\n     * @param  string  $method\n     * @return void\n     */\n    public static function proxy($method)\n    {\n        static::$proxies[] = $method;\n    }\n\n    /**\n     * Dynamically access collection proxies.\n     *\n     * @param  string  $key\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    public function __get($key)\n    {\n        if (! in_array($key, static::$proxies)) {\n            throw new Exception(\"Property [{$key}] does not exist on this collection instance.\");\n        }\n\n        return new HigherOrderCollectionProxy($this, $key);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Composer.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Illuminate\\Filesystem\\Filesystem;\nuse Symfony\\Component\\Process\\Process;\nuse Symfony\\Component\\Process\\PhpExecutableFinder;\n\nclass Composer\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The working path to regenerate from.\n     *\n     * @var string|null\n     */\n    protected $workingPath;\n\n    /**\n     * Create a new Composer manager instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string|null  $workingPath\n     * @return void\n     */\n    public function __construct(Filesystem $files, $workingPath = null)\n    {\n        $this->files = $files;\n        $this->workingPath = $workingPath;\n    }\n\n    /**\n     * Regenerate the Composer autoloader files.\n     *\n     * @param  string|array  $extra\n     * @return void\n     */\n    public function dumpAutoloads($extra = '')\n    {\n        $extra = $extra ? (array) $extra : [];\n\n        $command = array_merge($this->findComposer(), ['dump-autoload'], $extra);\n\n        $this->getProcess($command)->run();\n    }\n\n    /**\n     * Regenerate the optimized Composer autoloader files.\n     *\n     * @return void\n     */\n    public function dumpOptimized()\n    {\n        $this->dumpAutoloads('--optimize');\n    }\n\n    /**\n     * Get the composer command for the environment.\n     *\n     * @return array\n     */\n    protected function findComposer()\n    {\n        if ($this->files->exists($this->workingPath.'/composer.phar')) {\n            return [$this->phpBinary(), 'composer.phar'];\n        }\n\n        return ['composer'];\n    }\n\n    /**\n     * Get the PHP binary.\n     *\n     * @return string\n     */\n    protected function phpBinary()\n    {\n        return ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));\n    }\n\n    /**\n     * Get a new Symfony process instance.\n     *\n     * @param  array  $command\n     * @return \\Symfony\\Component\\Process\\Process\n     */\n    protected function getProcess(array $command)\n    {\n        return (new Process($command, $this->workingPath))->setTimeout(null);\n    }\n\n    /**\n     * Set the working path used by the class.\n     *\n     * @param  string  $path\n     * @return $this\n     */\n    public function setWorkingPath($path)\n    {\n        $this->workingPath = realpath($path);\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse InvalidArgumentException;\n\nclass ConfigurationUrlParser\n{\n    /**\n     * The drivers aliases map.\n     *\n     * @var array\n     */\n    protected static $driverAliases = [\n        'mssql' => 'sqlsrv',\n        'mysql2' => 'mysql', // RDS\n        'postgres' => 'pgsql',\n        'postgresql' => 'pgsql',\n        'sqlite3' => 'sqlite',\n    ];\n\n    /**\n     * Parse the database configuration, hydrating options using a database configuration URL if possible.\n     *\n     * @param  array|string  $config\n     * @return array\n     */\n    public function parseConfiguration($config)\n    {\n        if (is_string($config)) {\n            $config = ['url' => $config];\n        }\n\n        $url = $config['url'] ?? null;\n\n        $config = Arr::except($config, 'url');\n\n        if (! $url) {\n            return $config;\n        }\n\n        $parsedUrl = $this->parseUrl($url);\n\n        return array_merge(\n            $config,\n            $this->getPrimaryOptions($parsedUrl),\n            $this->getQueryOptions($parsedUrl)\n        );\n    }\n\n    /**\n     * Get the primary database connection options.\n     *\n     * @param  array  $url\n     * @return array\n     */\n    protected function getPrimaryOptions($url)\n    {\n        return array_filter([\n            'driver' => $this->getDriver($url),\n            'database' => $this->getDatabase($url),\n            'host' => $url['host'] ?? null,\n            'port' => $url['port'] ?? null,\n            'username' => $url['user'] ?? null,\n            'password' => $url['pass'] ?? null,\n        ], function ($value) {\n            return ! is_null($value);\n        });\n    }\n\n    /**\n     * Get the database driver from the URL.\n     *\n     * @param  array  $url\n     * @return string|null\n     */\n    protected function getDriver($url)\n    {\n        $alias = $url['scheme'] ?? null;\n\n        if (! $alias) {\n            return;\n        }\n\n        return static::$driverAliases[$alias] ?? $alias;\n    }\n\n    /**\n     * Get the database name from the URL.\n     *\n     * @param  array  $url\n     * @return string|null\n     */\n    protected function getDatabase($url)\n    {\n        $path = $url['path'] ?? null;\n\n        return $path ? substr($path, 1) : null;\n    }\n\n    /**\n     * Get all of the additional database options from the query string.\n     *\n     * @param  array  $url\n     * @return array\n     */\n    protected function getQueryOptions($url)\n    {\n        $queryString = $url['query'] ?? null;\n\n        if (! $queryString) {\n            return [];\n        }\n\n        $query = [];\n\n        parse_str($queryString, $query);\n\n        return $this->parseStringsToNativeTypes($query);\n    }\n\n    /**\n     * Parse the string URL to an array of components.\n     *\n     * @param  string  $url\n     * @return array\n     */\n    protected function parseUrl($url)\n    {\n        $url = preg_replace('#^(sqlite3?):///#', '$1://null/', $url);\n\n        $parsedUrl = parse_url($url);\n\n        if ($parsedUrl === false) {\n            throw new InvalidArgumentException('The database configuration URL is malformed.');\n        }\n\n        return $this->parseStringsToNativeTypes(\n            array_map('rawurldecode', $parsedUrl)\n        );\n    }\n\n    /**\n     * Convert string casted values to their native types.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    protected function parseStringsToNativeTypes($value)\n    {\n        if (is_array($value)) {\n            return array_map([$this, 'parseStringsToNativeTypes'], $value);\n        }\n\n        if (! is_string($value)) {\n            return $value;\n        }\n\n        $parsedValue = json_decode($value, true);\n\n        if (json_last_error() === JSON_ERROR_NONE) {\n            return $parsedValue;\n        }\n\n        return $value;\n    }\n\n    /**\n     * Get all of the current drivers aliases.\n     *\n     * @return array\n     */\n    public static function getDriverAliases()\n    {\n        return static::$driverAliases;\n    }\n\n    /**\n     * Add the given driver alias to the driver aliases array.\n     *\n     * @param  string  $alias\n     * @param  string  $driver\n     * @return void\n     */\n    public static function addDriverAlias($alias, $driver)\n    {\n        static::$driverAliases[$alias] = $driver;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/DateFactory.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Carbon\\Factory;\nuse InvalidArgumentException;\n\n/**\n * @see https://carbon.nesbot.com/docs/\n * @see https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Factory.php\n *\n * @method static Carbon create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)\n * @method static Carbon createFromDate($year = null, $month = null, $day = null, $tz = null)\n * @method static Carbon|false createFromFormat($format, $time, $tz = null)\n * @method static Carbon createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)\n * @method static Carbon createFromTimeString($time, $tz = null)\n * @method static Carbon createFromTimestamp($timestamp, $tz = null)\n * @method static Carbon createFromTimestampMs($timestamp, $tz = null)\n * @method static Carbon createFromTimestampUTC($timestamp)\n * @method static Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null)\n * @method static Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)\n * @method static Carbon disableHumanDiffOption($humanDiffOption)\n * @method static Carbon enableHumanDiffOption($humanDiffOption)\n * @method static mixed executeWithLocale($locale, $func)\n * @method static Carbon fromSerialized($value)\n * @method static array getAvailableLocales()\n * @method static array getDays()\n * @method static int getHumanDiffOptions()\n * @method static array getIsoUnits()\n * @method static Carbon getLastErrors()\n * @method static string getLocale()\n * @method static int getMidDayAt()\n * @method static Carbon getTestNow()\n * @method static \\Symfony\\Component\\Translation\\TranslatorInterface getTranslator()\n * @method static int getWeekEndsAt()\n * @method static int getWeekStartsAt()\n * @method static array getWeekendDays()\n * @method static bool hasFormat($date, $format)\n * @method static bool hasMacro($name)\n * @method static bool hasRelativeKeywords($time)\n * @method static bool hasTestNow()\n * @method static Carbon instance($date)\n * @method static bool isImmutable()\n * @method static bool isModifiableUnit($unit)\n * @method static Carbon isMutable()\n * @method static bool isStrictModeEnabled()\n * @method static bool localeHasDiffOneDayWords($locale)\n * @method static bool localeHasDiffSyntax($locale)\n * @method static bool localeHasDiffTwoDayWords($locale)\n * @method static bool localeHasPeriodSyntax($locale)\n * @method static bool localeHasShortUnits($locale)\n * @method static void macro($name, $macro)\n * @method static Carbon|null make($var)\n * @method static Carbon maxValue()\n * @method static Carbon minValue()\n * @method static void mixin($mixin)\n * @method static Carbon now($tz = null)\n * @method static Carbon parse($time = null, $tz = null)\n * @method static string pluralUnit(string $unit)\n * @method static void resetMonthsOverflow()\n * @method static void resetToStringFormat()\n * @method static void resetYearsOverflow()\n * @method static void serializeUsing($callback)\n * @method static Carbon setHumanDiffOptions($humanDiffOptions)\n * @method static bool setLocale($locale)\n * @method static void setMidDayAt($hour)\n * @method static Carbon setTestNow($testNow = null)\n * @method static void setToStringFormat($format)\n * @method static void setTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator)\n * @method static Carbon setUtf8($utf8)\n * @method static void setWeekEndsAt($day)\n * @method static void setWeekStartsAt($day)\n * @method static void setWeekendDays($days)\n * @method static bool shouldOverflowMonths()\n * @method static bool shouldOverflowYears()\n * @method static string singularUnit(string $unit)\n * @method static Carbon today($tz = null)\n * @method static Carbon tomorrow($tz = null)\n * @method static void useMonthsOverflow($monthsOverflow = true)\n * @method static Carbon useStrictMode($strictModeEnabled = true)\n * @method static void useYearsOverflow($yearsOverflow = true)\n * @method static Carbon yesterday($tz = null)\n */\nclass DateFactory\n{\n    /**\n     * The default class that will be used for all created dates.\n     *\n     * @var string\n     */\n    const DEFAULT_CLASS_NAME = Carbon::class;\n\n    /**\n     * The type (class) of dates that should be created.\n     *\n     * @var string\n     */\n    protected static $dateClass;\n\n    /**\n     * This callable may be used to intercept date creation.\n     *\n     * @var callable\n     */\n    protected static $callable;\n\n    /**\n     * The Carbon factory that should be used when creating dates.\n     *\n     * @var object\n     */\n    protected static $factory;\n\n    /**\n     * Use the given handler when generating dates (class name, callable, or factory).\n     *\n     * @param  mixed  $handler\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public static function use($handler)\n    {\n        if (is_callable($handler) && is_object($handler)) {\n            return static::useCallable($handler);\n        } elseif (is_string($handler)) {\n            return static::useClass($handler);\n        } elseif ($handler instanceof Factory) {\n            return static::useFactory($handler);\n        }\n\n        throw new InvalidArgumentException('Invalid date creation handler. Please provide a class name, callable, or Carbon factory.');\n    }\n\n    /**\n     * Use the default date class when generating dates.\n     *\n     * @return void\n     */\n    public static function useDefault()\n    {\n        static::$dateClass = null;\n        static::$callable = null;\n        static::$factory = null;\n    }\n\n    /**\n     * Execute the given callable on each date creation.\n     *\n     * @param  callable  $callable\n     * @return void\n     */\n    public static function useCallable(callable $callable)\n    {\n        static::$callable = $callable;\n\n        static::$dateClass = null;\n        static::$factory = null;\n    }\n\n    /**\n     * Use the given date type (class) when generating dates.\n     *\n     * @param  string  $dateClass\n     * @return void\n     */\n    public static function useClass($dateClass)\n    {\n        static::$dateClass = $dateClass;\n\n        static::$factory = null;\n        static::$callable = null;\n    }\n\n    /**\n     * Use the given Carbon factory when generating dates.\n     *\n     * @param  object  $factory\n     * @return void\n     */\n    public static function useFactory($factory)\n    {\n        static::$factory = $factory;\n\n        static::$dateClass = null;\n        static::$callable = null;\n    }\n\n    /**\n     * Handle dynamic calls to generate dates.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\RuntimeException\n     */\n    public function __call($method, $parameters)\n    {\n        $defaultClassName = static::DEFAULT_CLASS_NAME;\n\n        // Using callable to generate dates...\n        if (static::$callable) {\n            return call_user_func(static::$callable, $defaultClassName::$method(...$parameters));\n        }\n\n        // Using Carbon factory to generate dates...\n        if (static::$factory) {\n            return static::$factory->$method(...$parameters);\n        }\n\n        $dateClass = static::$dateClass ?: $defaultClassName;\n\n        // Check if date can be created using public class method...\n        if (method_exists($dateClass, $method) ||\n            method_exists($dateClass, 'hasMacro') && $dateClass::hasMacro($method)) {\n            return $dateClass::$method(...$parameters);\n        }\n\n        // If that fails, create the date with the default class..\n        $date = $defaultClassName::$method(...$parameters);\n\n        // If the configured class has an \"instance\" method, we'll try to pass our date into there...\n        if (method_exists($dateClass, 'instance')) {\n            return $dateClass::instance($date);\n        }\n\n        // Otherwise, assume the configured class has a DateTime compatible constructor...\n        return new $dateClass($date->format('Y-m-d H:i:s.u'), $date->getTimezone());\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/App.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static string version()\n * @method static string basePath()\n * @method static string bootstrapPath(string $path = '')\n * @method static string configPath(string $path = '')\n * @method static string databasePath(string $path = '')\n * @method static string environmentPath()\n * @method static string resourcePath(string $path = '')\n * @method static string storagePath(string $path = '')\n * @method static string|bool environment(string|array ...$environments)\n * @method static bool runningInConsole()\n * @method static bool runningUnitTests()\n * @method static bool isDownForMaintenance()\n * @method static void registerConfiguredProviders()\n * @method static \\Illuminate\\Support\\ServiceProvider register(\\Illuminate\\Support\\ServiceProvider|string $provider, bool $force = false)\n * @method static void registerDeferredProvider(string $provider, string $service = null)\n * @method static \\Illuminate\\Support\\ServiceProvider resolveProvider(string $provider)\n * @method static void boot()\n * @method static void booting(callable $callback)\n * @method static void booted(callable $callback)\n * @method static void bootstrapWith(array $bootstrappers)\n * @method static bool configurationIsCached()\n * @method static string detectEnvironment(callable $callback)\n * @method static string environmentFile()\n * @method static string environmentFilePath()\n * @method static string getCachedConfigPath()\n * @method static string getCachedServicesPath()\n * @method static string getCachedPackagesPath()\n * @method static string getCachedRoutesPath()\n * @method static string getLocale()\n * @method static string getNamespace()\n * @method static array getProviders(\\Illuminate\\Support\\ServiceProvider|string $provider)\n * @method static bool hasBeenBootstrapped()\n * @method static void loadDeferredProviders()\n * @method static \\Illuminate\\Contracts\\Foundation\\Application loadEnvironmentFrom(string $file)\n * @method static bool routesAreCached()\n * @method static void setLocale(string $locale)\n * @method static bool shouldSkipMiddleware()\n * @method static void terminate()\n *\n * @see \\Illuminate\\Contracts\\Foundation\\Application\n */\nclass App extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'app';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Artisan.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Contracts\\Console\\Kernel as ConsoleKernelContract;\n\n/**\n * @method static int handle(\\Symfony\\Component\\Console\\Input\\InputInterface $input, \\Symfony\\Component\\Console\\Output\\OutputInterface|null $output = null)\n * @method static int call(string $command, array $parameters = [], \\Symfony\\Component\\Console\\Output\\OutputInterface|null $outputBuffer = null)\n * @method static \\Illuminate\\Foundation\\Bus\\PendingDispatch queue(string $command, array $parameters = [])\n * @method static array all()\n * @method static string output()\n * @method static void terminate(\\Symfony\\Component\\Console\\Input\\InputInterface $input, int $status)\n *\n * @see \\Illuminate\\Contracts\\Console\\Kernel\n */\nclass Artisan extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return ConsoleKernelContract::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Auth.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static mixed guard(string|null $name = null)\n * @method static void shouldUse(string $name);\n * @method static bool check()\n * @method static bool guest()\n * @method static \\Illuminate\\Contracts\\Auth\\Authenticatable|null user()\n * @method static int|null id()\n * @method static bool validate(array $credentials = [])\n * @method static void setUser(\\Illuminate\\Contracts\\Auth\\Authenticatable $user)\n * @method static bool attempt(array $credentials = [], bool $remember = false)\n * @method static bool once(array $credentials = [])\n * @method static void login(\\Illuminate\\Contracts\\Auth\\Authenticatable $user, bool $remember = false)\n * @method static \\Illuminate\\Contracts\\Auth\\Authenticatable loginUsingId(mixed $id, bool $remember = false)\n * @method static bool onceUsingId(mixed $id)\n * @method static bool viaRemember()\n * @method static void logout()\n * @method static \\Symfony\\Component\\HttpFoundation\\Response|null onceBasic(string $field = 'email',array $extraConditions = [])\n * @method static null|bool logoutOtherDevices(string $password, string $attribute = 'password')\n * @method static \\Illuminate\\Contracts\\Auth\\UserProvider|null createUserProvider(string $provider = null)\n * @method static \\Illuminate\\Auth\\AuthManager extend(string $driver, \\Closure $callback)\n * @method static \\Illuminate\\Auth\\AuthManager provider(string $name, \\Closure $callback)\n *\n * @see \\Illuminate\\Auth\\AuthManager\n * @see \\Illuminate\\Contracts\\Auth\\Factory\n * @see \\Illuminate\\Contracts\\Auth\\Guard\n * @see \\Illuminate\\Contracts\\Auth\\StatefulGuard\n */\nclass Auth extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'auth';\n    }\n\n    /**\n     * Register the typical authentication routes for an application.\n     *\n     * @param  array  $options\n     * @return void\n     */\n    public static function routes(array $options = [])\n    {\n        static::$app->make('router')->auth($options);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Blade.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static void compile(string|null $path = null)\n * @method static string getPath()\n * @method static void setPath(string $path)\n * @method static string compileString(string $value)\n * @method static string stripParentheses(string $expression)\n * @method static void extend(callable $compiler)\n * @method static array getExtensions()\n * @method static void if(string $name, callable $callback)\n * @method static bool check(string $name, array ...$parameters)\n * @method static void component(string $path, string|null $alias = null)\n * @method static void include(string $path, string|null $alias = null)\n * @method static void directive(string $name, callable $handler)\n * @method static array getCustomDirectives()\n * @method static void setEchoFormat(string $format)\n * @method static void withDoubleEncoding()\n * @method static void withoutDoubleEncoding()\n *\n * @see \\Illuminate\\View\\Compilers\\BladeCompiler\n */\nclass Blade extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'blade.compiler';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Broadcast.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Contracts\\Broadcasting\\Factory as BroadcastingFactoryContract;\n\n/**\n * @method static void connection($name = null);\n * @method static \\Illuminate\\Broadcasting\\Broadcasters\\Broadcaster channel(string $channel, callable|string  $callback)\n * @method static mixed auth(\\Illuminate\\Http\\Request $request)\n *\n * @see \\Illuminate\\Contracts\\Broadcasting\\Factory\n */\nclass Broadcast extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return BroadcastingFactoryContract::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Bus.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Support\\Testing\\Fakes\\BusFake;\nuse Illuminate\\Contracts\\Bus\\Dispatcher as BusDispatcherContract;\n\n/**\n * @method static mixed dispatch($command)\n * @method static mixed dispatchNow($command, $handler = null)\n * @method static bool hasCommandHandler($command)\n * @method static bool|mixed getCommandHandler($command)\n * @method static \\Illuminate\\Contracts\\Bus\\Dispatcher pipeThrough(array $pipes)\n * @method static \\Illuminate\\Contracts\\Bus\\Dispatcher map(array $map)\n *\n * @see \\Illuminate\\Contracts\\Bus\\Dispatcher\n */\nclass Bus extends Facade\n{\n    /**\n     * Replace the bound instance with a fake.\n     *\n     * @return \\Illuminate\\Support\\Testing\\Fakes\\BusFake\n     */\n    public static function fake()\n    {\n        static::swap($fake = new BusFake);\n\n        return $fake;\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return BusDispatcherContract::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Cache.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Contracts\\Cache\\Repository  store(string|null $name = null)\n * @method static bool has(string $key)\n * @method static bool missing(string $key)\n * @method static mixed get(string $key, mixed $default = null)\n * @method static mixed pull(string $key, mixed $default = null)\n * @method static bool put(string $key, $value, \\DateTimeInterface|\\DateInterval|int $ttl)\n * @method static bool add(string $key, $value, \\DateTimeInterface|\\DateInterval|int $ttl)\n * @method static int|bool increment(string $key, $value = 1)\n * @method static int|bool decrement(string $key, $value = 1)\n * @method static bool forever(string $key, $value)\n * @method static mixed remember(string $key, \\DateTimeInterface|\\DateInterval|int $ttl, \\Closure $callback)\n * @method static mixed sear(string $key, \\Closure $callback)\n * @method static mixed rememberForever(string $key, \\Closure $callback)\n * @method static bool forget(string $key)\n * @method static \\Illuminate\\Contracts\\Cache\\Store getStore()\n *\n * @see \\Illuminate\\Cache\\CacheManager\n * @see \\Illuminate\\Cache\\Repository\n */\nclass Cache extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'cache';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Config.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static bool has($key)\n * @method static mixed get($key, $default = null)\n * @method static array all()\n * @method static void set($key, $value = null)\n * @method static void prepend($key, $value)\n * @method static void push($key, $value)\n *\n * @see \\Illuminate\\Config\\Repository\n */\nclass Config extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'config';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Cookie.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static void queue(...$parameters)\n * @method static unqueue($name)\n * @method static array getQueuedCookies()\n *\n * @see \\Illuminate\\Cookie\\CookieJar\n */\nclass Cookie extends Facade\n{\n    /**\n     * Determine if a cookie exists on the request.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public static function has($key)\n    {\n        return ! is_null(static::$app['request']->cookie($key, null));\n    }\n\n    /**\n     * Retrieve a cookie from the request.\n     *\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return string|array|null\n     */\n    public static function get($key = null, $default = null)\n    {\n        return static::$app['request']->cookie($key, $default);\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'cookie';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Crypt.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static bool supported(string $key, string $cipher)\n * @method static string generateKey(string $cipher)\n * @method static string encrypt(mixed $value, bool $serialize = true)\n * @method static string encryptString(string $value)\n * @method static mixed decrypt(string $payload, bool $unserialize = true)\n * @method static string decryptString(string $payload)\n * @method static string getKey()\n *\n * @see \\Illuminate\\Encryption\\Encrypter\n */\nclass Crypt extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'encrypter';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/DB.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Database\\ConnectionInterface connection(string $name = null)\n * @method static string getDefaultConnection()\n * @method static void setDefaultConnection(string $name)\n * @method static \\Illuminate\\Database\\Query\\Builder table(string $table)\n * @method static \\Illuminate\\Database\\Query\\Expression raw($value)\n * @method static mixed selectOne(string $query, array $bindings = [])\n * @method static array select(string $query, array $bindings = [])\n * @method static bool insert(string $query, array $bindings = [])\n * @method static int update(string $query, array $bindings = [])\n * @method static int delete(string $query, array $bindings = [])\n * @method static bool statement(string $query, array $bindings = [])\n * @method static int affectingStatement(string $query, array $bindings = [])\n * @method static bool unprepared(string $query)\n * @method static array prepareBindings(array $bindings)\n * @method static mixed transaction(\\Closure $callback, int $attempts = 1)\n * @method static void beginTransaction()\n * @method static void commit()\n * @method static void rollBack()\n * @method static int transactionLevel()\n * @method static array pretend(\\Closure $callback)\n *\n * @see \\Illuminate\\Database\\DatabaseManager\n * @see \\Illuminate\\Database\\Connection\n */\nclass DB extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'db';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Date.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Support\\DateFactory;\n\n/**\n * @see https://carbon.nesbot.com/docs/\n * @see https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Factory.php\n *\n * @method static \\Illuminate\\Support\\Carbon create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromDate($year = null, $month = null, $day = null, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon|false createFromFormat($format, $time, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromTimeString($time, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromTimestamp($timestamp, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromTimestampMs($timestamp, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon createFromTimestampUTC($timestamp)\n * @method static \\Illuminate\\Support\\Carbon createMidnightDate($year = null, $month = null, $day = null, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon|false createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)\n * @method static \\Illuminate\\Support\\Carbon disableHumanDiffOption($humanDiffOption)\n * @method static \\Illuminate\\Support\\Carbon enableHumanDiffOption($humanDiffOption)\n * @method static mixed executeWithLocale($locale, $func)\n * @method static \\Illuminate\\Support\\Carbon fromSerialized($value)\n * @method static array getAvailableLocales()\n * @method static array getDays()\n * @method static int getHumanDiffOptions()\n * @method static array getIsoUnits()\n * @method static \\Illuminate\\Support\\Carbon getLastErrors()\n * @method static string getLocale()\n * @method static int getMidDayAt()\n * @method static \\Illuminate\\Support\\Carbon getTestNow()\n * @method static \\Symfony\\Component\\Translation\\TranslatorInterface getTranslator()\n * @method static int getWeekEndsAt()\n * @method static int getWeekStartsAt()\n * @method static array getWeekendDays()\n * @method static bool hasFormat($date, $format)\n * @method static bool hasMacro($name)\n * @method static bool hasRelativeKeywords($time)\n * @method static bool hasTestNow()\n * @method static \\Illuminate\\Support\\Carbon instance($date)\n * @method static bool isImmutable()\n * @method static bool isModifiableUnit($unit)\n * @method static \\Illuminate\\Support\\Carbon isMutable()\n * @method static bool isStrictModeEnabled()\n * @method static bool localeHasDiffOneDayWords($locale)\n * @method static bool localeHasDiffSyntax($locale)\n * @method static bool localeHasDiffTwoDayWords($locale)\n * @method static bool localeHasPeriodSyntax($locale)\n * @method static bool localeHasShortUnits($locale)\n * @method static void macro($name, $macro)\n * @method static \\Illuminate\\Support\\Carbon|null make($var)\n * @method static \\Illuminate\\Support\\Carbon maxValue()\n * @method static \\Illuminate\\Support\\Carbon minValue()\n * @method static void mixin($mixin)\n * @method static \\Illuminate\\Support\\Carbon now($tz = null)\n * @method static \\Illuminate\\Support\\Carbon parse($time = null, $tz = null)\n * @method static string pluralUnit(string $unit)\n * @method static void resetMonthsOverflow()\n * @method static void resetToStringFormat()\n * @method static void resetYearsOverflow()\n * @method static void serializeUsing($callback)\n * @method static \\Illuminate\\Support\\Carbon setHumanDiffOptions($humanDiffOptions)\n * @method static bool setLocale($locale)\n * @method static void setMidDayAt($hour)\n * @method static \\Illuminate\\Support\\Carbon setTestNow($testNow = null)\n * @method static void setToStringFormat($format)\n * @method static void setTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator)\n * @method static \\Illuminate\\Support\\Carbon setUtf8($utf8)\n * @method static void setWeekEndsAt($day)\n * @method static void setWeekStartsAt($day)\n * @method static void setWeekendDays($days)\n * @method static bool shouldOverflowMonths()\n * @method static bool shouldOverflowYears()\n * @method static string singularUnit(string $unit)\n * @method static \\Illuminate\\Support\\Carbon today($tz = null)\n * @method static \\Illuminate\\Support\\Carbon tomorrow($tz = null)\n * @method static void useMonthsOverflow($monthsOverflow = true)\n * @method static \\Illuminate\\Support\\Carbon useStrictMode($strictModeEnabled = true)\n * @method static void useYearsOverflow($yearsOverflow = true)\n * @method static \\Illuminate\\Support\\Carbon yesterday($tz = null)\n */\nclass Date extends Facade\n{\n    const DEFAULT_FACADE = DateFactory::class;\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'date';\n    }\n\n    /**\n     * Resolve the facade root instance from the container.\n     *\n     * @param  string  $name\n     * @return mixed\n     */\n    protected static function resolveFacadeInstance($name)\n    {\n        if (! isset(static::$resolvedInstance[$name]) && ! isset(static::$app, static::$app[$name])) {\n            $class = static::DEFAULT_FACADE;\n\n            static::swap(new $class);\n        }\n\n        return parent::resolveFacadeInstance($name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Event.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Database\\Eloquent\\Model;\nuse Illuminate\\Support\\Testing\\Fakes\\EventFake;\n\n/**\n * @method static void listen(string|array $events, mixed $listener)\n * @method static bool hasListeners(string $eventName)\n * @method static void push(string $event, array $payload = [])\n * @method static void flush(string $event)\n * @method static void subscribe(object|string $subscriber)\n * @method static array|null until(string|object $event, mixed $payload = [])\n * @method static array|null dispatch(string|object $event, mixed $payload = [], bool $halt = false)\n * @method static array getListeners(string $eventName)\n * @method static \\Closure makeListener(\\Closure|string $listener, bool $wildcard = false)\n * @method static \\Closure createClassListener(string $listener, bool $wildcard = false)\n * @method static void forget(string $event)\n * @method static void forgetPushed()\n * @method static \\Illuminate\\Events\\Dispatcher setQueueResolver(callable $resolver)\n *\n * @see \\Illuminate\\Events\\Dispatcher\n */\nclass Event extends Facade\n{\n    /**\n     * Replace the bound instance with a fake.\n     *\n     * @param  array|string  $eventsToFake\n     * @return \\Illuminate\\Support\\Testing\\Fakes\\EventFake\n     */\n    public static function fake($eventsToFake = [])\n    {\n        static::swap($fake = new EventFake(static::getFacadeRoot(), $eventsToFake));\n\n        Model::setEventDispatcher($fake);\n\n        return $fake;\n    }\n\n    /**\n     * Replace the bound instance with a fake during the given callable's execution.\n     *\n     * @param  callable  $callable\n     * @param  array  $eventsToFake\n     * @return callable\n     */\n    public static function fakeFor(callable $callable, array $eventsToFake = [])\n    {\n        $originalDispatcher = static::getFacadeRoot();\n\n        static::fake($eventsToFake);\n\n        return tap($callable(), function () use ($originalDispatcher) {\n            static::swap($originalDispatcher);\n\n            Model::setEventDispatcher($originalDispatcher);\n        });\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'events';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Closure;\nuse Mockery;\nuse RuntimeException;\nuse Mockery\\MockInterface;\n\nabstract class Facade\n{\n    /**\n     * The application instance being facaded.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected static $app;\n\n    /**\n     * The resolved object instances.\n     *\n     * @var array\n     */\n    protected static $resolvedInstance;\n\n    /**\n     * Run a Closure when the facade has been resolved.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public static function resolved(Closure $callback)\n    {\n        static::$app->afterResolving(static::getFacadeAccessor(), function ($service) use ($callback) {\n            $callback($service);\n        });\n    }\n\n    /**\n     * Convert the facade into a Mockery spy.\n     *\n     * @return \\Mockery\\MockInterface\n     */\n    public static function spy()\n    {\n        if (! static::isMock()) {\n            $class = static::getMockableClass();\n\n            return tap($class ? Mockery::spy($class) : Mockery::spy(), function ($spy) {\n                static::swap($spy);\n            });\n        }\n    }\n\n    /**\n     * Initiate a mock expectation on the facade.\n     *\n     * @return \\Mockery\\Expectation\n     */\n    public static function shouldReceive()\n    {\n        $name = static::getFacadeAccessor();\n\n        $mock = static::isMock()\n                    ? static::$resolvedInstance[$name]\n                    : static::createFreshMockInstance();\n\n        return $mock->shouldReceive(...func_get_args());\n    }\n\n    /**\n     * Create a fresh mock instance for the given class.\n     *\n     * @return \\Mockery\\Expectation\n     */\n    protected static function createFreshMockInstance()\n    {\n        return tap(static::createMock(), function ($mock) {\n            static::swap($mock);\n\n            $mock->shouldAllowMockingProtectedMethods();\n        });\n    }\n\n    /**\n     * Create a fresh mock instance for the given class.\n     *\n     * @return \\Mockery\\MockInterface\n     */\n    protected static function createMock()\n    {\n        $class = static::getMockableClass();\n\n        return $class ? Mockery::mock($class) : Mockery::mock();\n    }\n\n    /**\n     * Determines whether a mock is set as the instance of the facade.\n     *\n     * @return bool\n     */\n    protected static function isMock()\n    {\n        $name = static::getFacadeAccessor();\n\n        return isset(static::$resolvedInstance[$name]) &&\n               static::$resolvedInstance[$name] instanceof MockInterface;\n    }\n\n    /**\n     * Get the mockable class for the bound instance.\n     *\n     * @return string|null\n     */\n    protected static function getMockableClass()\n    {\n        if ($root = static::getFacadeRoot()) {\n            return get_class($root);\n        }\n    }\n\n    /**\n     * Hotswap the underlying instance behind the facade.\n     *\n     * @param  mixed  $instance\n     * @return void\n     */\n    public static function swap($instance)\n    {\n        static::$resolvedInstance[static::getFacadeAccessor()] = $instance;\n\n        if (isset(static::$app)) {\n            static::$app->instance(static::getFacadeAccessor(), $instance);\n        }\n    }\n\n    /**\n     * Get the root object behind the facade.\n     *\n     * @return mixed\n     */\n    public static function getFacadeRoot()\n    {\n        return static::resolveFacadeInstance(static::getFacadeAccessor());\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     *\n     * @throws \\RuntimeException\n     */\n    protected static function getFacadeAccessor()\n    {\n        throw new RuntimeException('Facade does not implement getFacadeAccessor method.');\n    }\n\n    /**\n     * Resolve the facade root instance from the container.\n     *\n     * @param  object|string  $name\n     * @return mixed\n     */\n    protected static function resolveFacadeInstance($name)\n    {\n        if (is_object($name)) {\n            return $name;\n        }\n\n        if (isset(static::$resolvedInstance[$name])) {\n            return static::$resolvedInstance[$name];\n        }\n\n        return static::$resolvedInstance[$name] = static::$app[$name];\n    }\n\n    /**\n     * Clear a resolved facade instance.\n     *\n     * @param  string  $name\n     * @return void\n     */\n    public static function clearResolvedInstance($name)\n    {\n        unset(static::$resolvedInstance[$name]);\n    }\n\n    /**\n     * Clear all of the resolved instances.\n     *\n     * @return void\n     */\n    public static function clearResolvedInstances()\n    {\n        static::$resolvedInstance = [];\n    }\n\n    /**\n     * Get the application instance behind the facade.\n     *\n     * @return \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    public static function getFacadeApplication()\n    {\n        return static::$app;\n    }\n\n    /**\n     * Set the application instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public static function setFacadeApplication($app)\n    {\n        static::$app = $app;\n    }\n\n    /**\n     * Handle dynamic, static calls to the object.\n     *\n     * @param  string  $method\n     * @param  array   $args\n     * @return mixed\n     *\n     * @throws \\RuntimeException\n     */\n    public static function __callStatic($method, $args)\n    {\n        $instance = static::getFacadeRoot();\n\n        if (! $instance) {\n            throw new RuntimeException('A facade root has not been set.');\n        }\n\n        return $instance->$method(...$args);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/File.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static bool exists(string $path)\n * @method static string get(string $path, bool $lock = false)\n * @method static string sharedGet(string $path)\n * @method static mixed getRequire(string $path)\n * @method static mixed requireOnce(string $file)\n * @method static string hash(string $path)\n * @method static int|bool put(string $path, string $contents, bool $lock = false)\n * @method static void replace(string $path, string $content)\n * @method static int prepend(string $path, string $data)\n * @method static int append(string $path, string $data)\n * @method static mixed chmod(string $path, int|null $mode = null)\n * @method static bool delete(string|array $paths)\n * @method static bool move(string $path, string $target)\n * @method static bool copy(string $path, string $target)\n * @method static void link(string $target, string $link)\n * @method static string name(string $path)\n * @method static string basename(string $path)\n * @method static string dirname(string $path)\n * @method static string extension(string $path)\n * @method static string type(string $path)\n * @method static string|false mimeType(string $path)\n * @method static int size(string $path)\n * @method static int lastModified(string $path)\n * @method static bool isDirectory(string $directory)\n * @method static bool isReadable(string $path)\n * @method static bool isWritable(string $path)\n * @method static bool isFile(string $file)\n * @method static array glob(string $pattern, int $flags = 0)\n * @method static \\Symfony\\Component\\Finder\\SplFileInfo[] files(string $directory, bool $hidden = false)\n * @method static \\Symfony\\Component\\Finder\\SplFileInfo[] allFiles(string $directory, bool $hidden = false)\n * @method static array directories(string $directory)\n * @method static bool makeDirectory(string $path, int $mode = 0755, bool $recursive = false, bool $force = false)\n * @method static bool moveDirectory(string $from, string $to, bool $overwrite = false)\n * @method static bool copyDirectory(string $directory, string $destination, int|null $options = null)\n * @method static bool deleteDirectory(string $directory, bool $preserve = false)\n * @method static bool deleteDirectories(string $directory)\n * @method static bool cleanDirectory(string $directory)\n *\n * @see \\Illuminate\\Filesystem\\Filesystem\n */\nclass File extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'files';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Gate.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Contracts\\Auth\\Access\\Gate as GateContract;\n\n/**\n * @method static bool has(string $ability)\n * @method static \\Illuminate\\Contracts\\Auth\\Access\\Gate define(string $ability, callable|string $callback)\n * @method static \\Illuminate\\Contracts\\Auth\\Access\\Gate policy(string $class, string $policy)\n * @method static \\Illuminate\\Contracts\\Auth\\Access\\Gate before(callable $callback)\n * @method static \\Illuminate\\Contracts\\Auth\\Access\\Gate after(callable $callback)\n * @method static bool allows(string $ability, array|mixed $arguments = [])\n * @method static bool denies(string $ability, array|mixed $arguments = [])\n * @method static bool check(iterable|string $abilities, array|mixed $arguments = [])\n * @method static bool any(iterable|string $abilities, array|mixed $arguments = [])\n * @method static \\Illuminate\\Auth\\Access\\Response authorize(string $ability, array|mixed $arguments = [])\n * @method static mixed raw(string $ability, array|mixed $arguments = [])\n * @method static mixed getPolicyFor(object|string $class)\n * @method static \\Illuminate\\Contracts\\Auth\\Access\\Gate forUser(\\Illuminate\\Contracts\\Auth\\Authenticatable|mixed $user)\n * @method static array abilities()\n *\n * @see \\Illuminate\\Contracts\\Auth\\Access\\Gate\n */\nclass Gate extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return GateContract::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Hash.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static array info(string $hashedValue)\n * @method static string make(string $value, array $options = [])\n * @method static bool check(string $value, string $hashedValue, array $options = [])\n * @method static bool needsRehash(string $hashedValue, array $options = [])\n *\n * @see \\Illuminate\\Hashing\\HashManager\n */\nclass Hash extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'hash';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Input.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static bool matchesType(string $actual, string $type)\n * @method static bool isJson()\n * @method static bool expectsJson()\n * @method static bool wantsJson()\n * @method static bool accepts(string|array $contentTypes)\n * @method static bool prefers(string|array $contentTypes)\n * @method static bool acceptsAnyContentType()\n * @method static bool acceptsJson()\n * @method static bool acceptsHtml()\n * @method static string format($default = 'html')\n * @method static string|array old(string|null $key = null, string|array|null $default = null)\n * @method static void flash()\n * @method static void flashOnly(array|mixed $keys)\n * @method static void flashExcept(array|mixed $keys)\n * @method static void flush()\n * @method static string|array|null server(string|null $key = null, string|array|null $default = null)\n * @method static bool hasHeader(string $key)\n * @method static string|array|null header(string|null $key = null, string|array|null $default = null)\n * @method static string|null bearerToken()\n * @method static bool exists(string|array $key)\n * @method static bool has(string|array $key)\n * @method static bool hasAny(string|array $key)\n * @method static bool filled(string|array $key)\n * @method static bool anyFilled(string|array $key)\n * @method static array keys()\n * @method static array all(array|mixed|null $keys = null)\n * @method static string|array|null input(string|null $key = null, string|array|null $default = null)\n * @method static array only(array|mixed $keys)\n * @method static array except(array|mixed $keys)\n * @method static string|array|null query(string|null $key = null, string|array|null $default = null)\n * @method static string|array|null post(string|null $key = null, string|array|null $default = null)\n * @method static bool hasCookie(string $key)\n * @method static string|array|null cookie(string|null $key = null, string|array|null $default = null)\n * @method static array allFiles()\n * @method static bool hasFile(string $key)\n * @method static \\Illuminate\\Http\\UploadedFile|\\Illuminate\\Http\\UploadedFile[]|array|null file(string|null $key = null, mixed $default = null)\n * @method static \\Illuminate\\Http\\Request capture()\n * @method static \\Illuminate\\Http\\Request instance()\n * @method static string method()\n * @method static string root()\n * @method static string url()\n * @method static string fullUrl()\n * @method static string fullUrlWithQuery(array $query)\n * @method static string path()\n * @method static string decodedPath()\n * @method static string|null segment(int $index, string|null $default = null)\n * @method static array segments()\n * @method static bool is(mixed ...$patterns)\n * @method static bool routeIs(mixed ...$patterns)\n * @method static bool fullUrlIs(mixed ...$patterns)\n * @method static bool ajax()\n * @method static bool pjax()\n * @method static bool prefetch()\n * @method static bool secure()\n * @method static string|null ip()\n * @method static array ips()\n * @method static string userAgent()\n * @method static \\Illuminate\\Http\\Request merge(array $input)\n * @method static \\Illuminate\\Http\\Request replace(array $input)\n * @method static \\Symfony\\Component\\HttpFoundation\\ParameterBag|mixed json(string|null $key = null, mixed $default = null)\n * @method static \\Illuminate\\Http\\Request createFrom(\\Illuminate\\Http\\Request $from, \\Illuminate\\Http\\Request|null $to = null)\n * @method static \\Illuminate\\Http\\Request createFromBase(\\Symfony\\Component\\HttpFoundation\\Request $request)\n * @method static \\Illuminate\\Http\\Request duplicate(array|null $query = null, array|null $request = null, array|null $attributes = null, array|null $cookies = null, array|null $files = null, array|null $server = null)\n * @method static mixed filterFiles(mixed $files)\n * @method static \\Illuminate\\Session\\Store session()\n * @method static \\Illuminate\\Session\\Store|null getSession()\n * @method static void setLaravelSession(\\Illuminate\\Contracts\\Session\\Session $session)\n * @method static mixed user(string|null $guard = null)\n * @method static \\Illuminate\\Routing\\Route|object|string route(string|null $param = null, string|null $default = null)\n * @method static string fingerprint()\n * @method static \\Illuminate\\Http\\Request setJson(\\Symfony\\Component\\HttpFoundation\\ParameterBag $json)\n * @method static \\Closure getUserResolver()\n * @method static \\Illuminate\\Http\\Request setUserResolver(\\Closure $callback)\n * @method static \\Closure getRouteResolver()\n * @method static \\Illuminate\\Http\\Request setRouteResolver(\\Closure $callback)\n * @method static array toArray()\n * @method static bool offsetExists(string $offset)\n * @method static mixed offsetGet(string $offset)\n * @method static void offsetSet(string $offset, mixed $value)\n * @method static void offsetUnset(string $offset)\n *\n * @see \\Illuminate\\Http\\Request\n */\nclass Input extends Facade\n{\n    /**\n     * Get an item from the input data.\n     *\n     * This method is used for all request verbs (GET, POST, PUT, and DELETE)\n     *\n     * @param  string|null  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public static function get($key = null, $default = null)\n    {\n        return static::$app['request']->input($key, $default);\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'request';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Lang.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static mixed trans(string $key, array $replace = [], string $locale = null)\n * @method static string transChoice(string $key, int|array|\\Countable $number, array $replace = [], string $locale = null)\n * @method static string getLocale()\n * @method static void setLocale(string $locale)\n * @method static string|array|null get(string $key, array $replace = [], string $locale = null, bool $fallback = true)\n *\n * @see \\Illuminate\\Translation\\Translator\n */\nclass Lang extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'translator';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static void emergency(string $message, array $context = [])\n * @method static void alert(string $message, array $context = [])\n * @method static void critical(string $message, array $context = [])\n * @method static void error(string $message, array $context = [])\n * @method static void warning(string $message, array $context = [])\n * @method static void notice(string $message, array $context = [])\n * @method static void info(string $message, array $context = [])\n * @method static void debug(string $message, array $context = [])\n * @method static void log($level, string $message, array $context = [])\n * @method static mixed channel(string $channel = null)\n * @method static \\Psr\\Log\\LoggerInterface stack(array $channels, string $channel = null)\n *\n * @see \\Illuminate\\Log\\Logger\n */\nclass Log extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'log';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Mail.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Support\\Testing\\Fakes\\MailFake;\n\n/**\n * @method static \\Illuminate\\Mail\\PendingMail to($users)\n * @method static \\Illuminate\\Mail\\PendingMail bcc($users)\n * @method static void raw(string $text, $callback)\n * @method static void send(string|array|\\Illuminate\\Contracts\\Mail\\Mailable $view, array $data = [], \\Closure|string $callback = null)\n * @method static array failures()\n * @method static mixed queue(string|array|\\Illuminate\\Contracts\\Mail\\Mailable $view, string $queue = null)\n * @method static mixed later(\\DateTimeInterface|\\DateInterval|int $delay, string|array|\\Illuminate\\Contracts\\Mail\\Mailable $view, string $queue = null)\n * @method static void assertSent(string $mailable, \\Closure|string $callback = null)\n * @method static void assertNotSent(string $mailable, \\Closure|string $callback = null)\n * @method static void assertNothingSent()\n * @method static void assertQueued(string $mailable, \\Closure|string $callback = null)\n * @method static void assertNotQueued(string $mailable, \\Closure|string $callback = null)\n * @method static void assertNothingQueued()\n * @method static \\Illuminate\\Support\\Collection sent(string $mailable, \\Closure|string $callback = null)\n * @method static bool hasSent(string $mailable)\n * @method static \\Illuminate\\Support\\Collection queued(string $mailable, \\Closure|string $callback = null)\n * @method static bool hasQueued(string $mailable)\n *\n * @see \\Illuminate\\Mail\\Mailer\n * @see \\Illuminate\\Support\\Testing\\Fakes\\MailFake\n */\nclass Mail extends Facade\n{\n    /**\n     * Replace the bound instance with a fake.\n     *\n     * @return \\Illuminate\\Support\\Testing\\Fakes\\MailFake\n     */\n    public static function fake()\n    {\n        static::swap($fake = new MailFake);\n\n        return $fake;\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'mailer';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Notification.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Notifications\\ChannelManager;\nuse Illuminate\\Notifications\\AnonymousNotifiable;\nuse Illuminate\\Support\\Testing\\Fakes\\NotificationFake;\n\n/**\n * @method static void send(\\Illuminate\\Support\\Collection|array|mixed $notifiables, $notification)\n * @method static void sendNow(\\Illuminate\\Support\\Collection|array|mixed $notifiables, $notification)\n * @method static mixed channel(string|null $name = null)\n * @method static \\Illuminate\\Notifications\\ChannelManager locale(string|null $locale)\n *\n * @see \\Illuminate\\Notifications\\ChannelManager\n */\nclass Notification extends Facade\n{\n    /**\n     * Replace the bound instance with a fake.\n     *\n     * @return \\Illuminate\\Support\\Testing\\Fakes\\NotificationFake\n     */\n    public static function fake()\n    {\n        static::swap($fake = new NotificationFake);\n\n        return $fake;\n    }\n\n    /**\n     * Begin sending a notification to an anonymous notifiable.\n     *\n     * @param  string  $channel\n     * @param  mixed  $route\n     * @return \\Illuminate\\Notifications\\AnonymousNotifiable\n     */\n    public static function route($channel, $route)\n    {\n        return (new AnonymousNotifiable)->route($channel, $route);\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return ChannelManager::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Password.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static string sendResetLink(array $credentials)\n * @method static mixed reset(array $credentials, \\Closure $callback)\n * @method static void validator(\\Closure $callback)\n * @method static bool validateNewPassword(array $credentials)\n *\n * @see \\Illuminate\\Auth\\Passwords\\PasswordBroker\n */\nclass Password extends Facade\n{\n    /**\n     * Constant representing a successfully sent reminder.\n     *\n     * @var string\n     */\n    const RESET_LINK_SENT = 'passwords.sent';\n\n    /**\n     * Constant representing a successfully reset password.\n     *\n     * @var string\n     */\n    const PASSWORD_RESET = 'passwords.reset';\n\n    /**\n     * Constant representing the user not found response.\n     *\n     * @var string\n     */\n    const INVALID_USER = 'passwords.user';\n\n    /**\n     * Constant representing an invalid password.\n     *\n     * @var string\n     */\n    const INVALID_PASSWORD = 'passwords.password';\n\n    /**\n     * Constant representing an invalid token.\n     *\n     * @var string\n     */\n    const INVALID_TOKEN = 'passwords.token';\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'auth.password';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Queue.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Support\\Testing\\Fakes\\QueueFake;\n\n/**\n * @method static int size(string $queue = null)\n * @method static mixed push(string|object $job, mixed $data = '', $queue = null)\n * @method static mixed pushOn(string $queue, string|object $job, mixed $data = '')\n * @method static mixed pushRaw(string $payload, string $queue = null, array $options = [])\n * @method static mixed later(\\DateTimeInterface|\\DateInterval|int $delay, string|object $job, mixed $data = '', string $queue = null)\n * @method static mixed laterOn(string $queue, \\DateTimeInterface|\\DateInterval|int $delay, string|object $job, mixed $data = '')\n * @method static mixed bulk(array $jobs, mixed $data = '', string $queue = null)\n * @method static \\Illuminate\\Contracts\\Queue\\Job|null pop(string $queue = null)\n * @method static string getConnectionName()\n * @method static \\Illuminate\\Contracts\\Queue\\Queue setConnectionName(string $name)\n *\n * @see \\Illuminate\\Queue\\QueueManager\n * @see \\Illuminate\\Queue\\Queue\n */\nclass Queue extends Facade\n{\n    /**\n     * Replace the bound instance with a fake.\n     *\n     * @return \\Illuminate\\Support\\Testing\\Fakes\\QueueFake\n     */\n    public static function fake()\n    {\n        static::swap($fake = new QueueFake(static::getFacadeApplication()));\n\n        return $fake;\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'queue';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Redirect.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Http\\RedirectResponse home(int $status = 302)\n * @method static \\Illuminate\\Http\\RedirectResponse back(int $status = 302, array $headers = [], $fallback = false)\n * @method static \\Illuminate\\Http\\RedirectResponse refresh(int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse guest(string $path, int $status = 302, array $headers = [], bool $secure = null)\n * @method static intended(string $default = '/', int $status = 302, array $headers = [], bool $secure = null)\n * @method static \\Illuminate\\Http\\RedirectResponse to(string $path, int $status = 302, array $headers = [], bool $secure = null)\n * @method static \\Illuminate\\Http\\RedirectResponse away(string $path, int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse secure(string $path, int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse route(string $route, array $parameters = [], int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse action(string $action, array $parameters = [], int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Routing\\UrlGenerator getUrlGenerator()\n * @method static void setSession(\\Illuminate\\Session\\Store $session)\n *\n * @see \\Illuminate\\Routing\\Redirector\n */\nclass Redirect extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'redirect';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Redis.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Redis\\Connections\\Connection connection(string $name = null)\n *\n * @see \\Illuminate\\Redis\\RedisManager\n * @see \\Illuminate\\Contracts\\Redis\\Factory\n */\nclass Redis extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'redis';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Request.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Http\\Request instance()\n * @method static string method()\n * @method static string root()\n * @method static string url()\n * @method static string fullUrl()\n * @method static string fullUrlWithQuery(array $query)\n * @method static string path()\n * @method static string decodedPath()\n * @method static string|null segment(int $index, string|null $default = null)\n * @method static array segments()\n * @method static bool is(...$patterns)\n * @method static bool routeIs(...$patterns)\n * @method static bool fullUrlIs(...$patterns)\n * @method static bool ajax()\n * @method static bool pjax()\n * @method static bool secure()\n * @method static string ip()\n * @method static array ips()\n * @method static string userAgent()\n * @method static \\Illuminate\\Http\\Request merge(array $input)\n * @method static \\Illuminate\\Http\\Request replace(array $input)\n * @method static \\Symfony\\Component\\HttpFoundation\\ParameterBag|mixed json(string $key = null, $default = null)\n * @method static \\Illuminate\\Session\\Store session()\n * @method static \\Illuminate\\Session\\Store|null getSession()\n * @method static void setLaravelSession(\\Illuminate\\Contracts\\Session\\Session $session)\n * @method static mixed user(string|null $guard = null)\n * @method static \\Illuminate\\Routing\\Route|object|string route(string|null $param = null)\n * @method static string fingerprint()\n * @method static \\Illuminate\\Http\\Request setJson(\\Symfony\\Component\\HttpFoundation\\ParameterBag $json)\n * @method static \\Closure getUserResolver()\n * @method static \\Illuminate\\Http\\Request setUserResolver(\\Closure $callback)\n * @method static \\Closure getRouteResolver()\n * @method static \\Illuminate\\Http\\Request setRouteResolver(\\Closure $callback)\n * @method static array toArray()\n * @method static bool offsetExists(string $offset)\n * @method static mixed offsetGet(string $offset)\n * @method static void offsetSet(string $offset, $value)\n * @method static void offsetUnset(string $offset)\n *\n * @see \\Illuminate\\Http\\Request\n */\nclass Request extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'request';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Response.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Contracts\\Routing\\ResponseFactory as ResponseFactoryContract;\n\n/**\n * @method static \\Illuminate\\Http\\Response make(string $content = '', int $status = 200, array $headers = [])\n * @method static \\Illuminate\\Http\\Response noContent($status = 204, array $headers = [])\n * @method static \\Illuminate\\Http\\Response view(string $view, array $data = [], int $status = 200, array $headers = [])\n * @method static \\Illuminate\\Http\\JsonResponse json(string|array $data = [], int $status = 200, array $headers = [], int $options = 0)\n * @method static \\Illuminate\\Http\\JsonResponse jsonp(string $callback, string|array $data = [], int $status = 200, array $headers = [], int $options = 0)\n * @method static \\Symfony\\Component\\HttpFoundation\\StreamedResponse stream(\\Closure $callback, int $status = 200, array $headers = [])\n * @method static \\Symfony\\Component\\HttpFoundation\\StreamedResponse streamDownload(\\Closure $callback, string|null $name = null, array $headers = [], string|null $disposition = 'attachment')\n * @method static \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse download(\\SplFileInfo|string $file, string|null $name = null, array $headers = [], string|null $disposition = 'attachment')\n * @method static \\Symfony\\Component\\HttpFoundation\\BinaryFileResponse file($file, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse redirectTo(string $path, int $status = 302, array $headers = [], bool|null $secure = null)\n * @method static \\Illuminate\\Http\\RedirectResponse redirectToRoute(string $route, array $parameters = [], int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse redirectToAction(string $action, array $parameters = [], int $status = 302, array $headers = [])\n * @method static \\Illuminate\\Http\\RedirectResponse redirectGuest(string $path, int $status = 302, array $headers = [], bool|null $secure = null)\n * @method static \\Illuminate\\Http\\RedirectResponse redirectToIntended(string $default = '/', int $status = 302, array $headers = [], bool|null $secure = null)\n *\n * @see \\Illuminate\\Contracts\\Routing\\ResponseFactory\n */\nclass Response extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return ResponseFactoryContract::class;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Routing\\Route get(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route post(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route put(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route delete(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route patch(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route options(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route any(string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\Route match(array|string $methods, string $uri, \\Closure|array|string|callable|null $action = null)\n * @method static \\Illuminate\\Routing\\RouteRegistrar prefix(string  $prefix)\n * @method static \\Illuminate\\Routing\\RouteRegistrar where(array  $where)\n * @method static \\Illuminate\\Routing\\PendingResourceRegistration resource(string $name, string $controller, array $options = [])\n * @method static \\Illuminate\\Routing\\PendingResourceRegistration apiResource(string $name, string $controller, array $options = [])\n * @method static void apiResources(array $resources)\n * @method static \\Illuminate\\Routing\\RouteRegistrar middleware(array|string|null $middleware)\n * @method static \\Illuminate\\Routing\\Route substituteBindings(\\Illuminate\\Support\\Facades\\Route $route)\n * @method static void substituteImplicitBindings(\\Illuminate\\Support\\Facades\\Route $route)\n * @method static \\Illuminate\\Routing\\RouteRegistrar as(string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar domain(string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar name(string $value)\n * @method static \\Illuminate\\Routing\\RouteRegistrar namespace(string $value)\n * @method static \\Illuminate\\Routing\\Router|\\Illuminate\\Routing\\RouteRegistrar group(array|\\Closure|string $attributes, \\Closure|string $routes)\n * @method static \\Illuminate\\Routing\\Route redirect(string $uri, string $destination, int $status = 302)\n * @method static \\Illuminate\\Routing\\Route permanentRedirect(string $uri, string $destination)\n * @method static \\Illuminate\\Routing\\Route view(string $uri, string $view, array $data = [])\n * @method static void bind(string $key, string|callable $binder)\n * @method static void model(string $key, string $class, \\Closure|null $callback = null)\n * @method static \\Illuminate\\Routing\\Route current()\n * @method static string|null currentRouteName()\n * @method static string|null currentRouteAction()\n *\n * @see \\Illuminate\\Routing\\Router\n */\nclass Route extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'router';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Schema.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Database\\Schema\\Builder create(string $table, \\Closure $callback)\n * @method static \\Illuminate\\Database\\Schema\\Builder drop(string $table)\n * @method static \\Illuminate\\Database\\Schema\\Builder dropIfExists(string $table)\n * @method static \\Illuminate\\Database\\Schema\\Builder table(string $table, \\Closure $callback)\n * @method static \\Illuminate\\Database\\Schema\\Builder rename(string $from, string $to)\n * @method static void defaultStringLength(int $length)\n * @method static bool hasTable(string $table)\n * @method static bool hasColumn(string $table, string $column)\n * @method static bool hasColumns(string $table, array $columns)\n * @method static \\Illuminate\\Database\\Schema\\Builder disableForeignKeyConstraints()\n * @method static \\Illuminate\\Database\\Schema\\Builder enableForeignKeyConstraints()\n * @method static void registerCustomDoctrineType(string $class, string $name, string $type)\n *\n * @see \\Illuminate\\Database\\Schema\\Builder\n */\nclass Schema extends Facade\n{\n    /**\n     * Get a schema builder instance for a connection.\n     *\n     * @param  string|null  $name\n     * @return \\Illuminate\\Database\\Schema\\Builder\n     */\n    public static function connection($name)\n    {\n        return static::$app['db']->connection($name)->getSchemaBuilder();\n    }\n\n    /**\n     * Get a schema builder instance for the default connection.\n     *\n     * @return \\Illuminate\\Database\\Schema\\Builder\n     */\n    protected static function getFacadeAccessor()\n    {\n        return static::$app['db']->connection()->getSchemaBuilder();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Session.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static string getName()\n * @method static string getId()\n * @method static void setId(string $id)\n * @method static bool start()\n * @method static bool save()\n * @method static array all()\n * @method static bool exists(string|array $key)\n * @method static bool has(string|array $key)\n * @method static mixed get(string $key, $default = null)\n * @method static mixed pull(string $key, $default = null)\n * @method static void put(string|array $key, $value = null)\n * @method static string token()\n * @method static mixed remove(string $key)\n * @method static void forget(string|array $keys)\n * @method static void flush()\n * @method static bool migrate(bool $destroy = false)\n * @method static bool isStarted()\n * @method static string|null previousUrl()\n * @method static void setPreviousUrl(string $url)\n * @method static \\SessionHandlerInterface getHandler()\n * @method static bool handlerNeedsRequest()\n * @method static void setRequestOnHandler(\\Illuminate\\Http\\Request $request)\n *\n * @see \\Illuminate\\Session\\SessionManager\n * @see \\Illuminate\\Session\\Store\n */\nclass Session extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'session';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Storage.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\nuse Illuminate\\Filesystem\\Filesystem;\n\n/**\n * @method static \\Illuminate\\Contracts\\Filesystem\\Filesystem disk(string $name = null)\n *\n * @see \\Illuminate\\Filesystem\\FilesystemManager\n */\nclass Storage extends Facade\n{\n    /**\n     * Replace the given disk with a local testing disk.\n     *\n     * @param  string|null  $disk\n     *\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public static function fake($disk = null)\n    {\n        $disk = $disk ?: self::$app['config']->get('filesystems.default');\n\n        (new Filesystem)->cleanDirectory(\n            $root = storage_path('framework/testing/disks/'.$disk)\n        );\n\n        static::set($disk, $fake = self::createLocalDriver(['root' => $root]));\n\n        return $fake;\n    }\n\n    /**\n     * Replace the given disk with a persistent local testing disk.\n     *\n     * @param  string|null  $disk\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public static function persistentFake($disk = null)\n    {\n        $disk = $disk ?: self::$app['config']->get('filesystems.default');\n\n        static::set($disk, $fake = self::createLocalDriver([\n            'root' => storage_path('framework/testing/disks/'.$disk),\n        ]));\n\n        return $fake;\n    }\n\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'filesystem';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/URL.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static string current()\n * @method static string full()\n * @method static string previous($fallback = false)\n * @method static string to(string $path, $extra = [], bool $secure = null)\n * @method static string secure(string $path, array $parameters = [])\n * @method static string asset(string $path, bool $secure = null)\n * @method static string route(string $name, $parameters = [], bool $absolute = true)\n * @method static string action(string $action, $parameters = [], bool $absolute = true)\n * @method static \\Illuminate\\Contracts\\Routing\\UrlGenerator setRootControllerNamespace(string $rootNamespace)\n * @method static string signedRoute(string $name, array $parameters = [], \\DateTimeInterface|\\DateInterval|int $expiration = null, bool $absolute = true)\n * @method static string temporarySignedRoute(string $name, \\DateTimeInterface|\\DateInterval|int $expiration, array $parameters = [], bool $absolute = true)\n * @method static string hasValidSignature(\\Illuminate\\Http\\Request $request, bool $absolute = true)\n * @method static void defaults(array $defaults)\n *\n * @see \\Illuminate\\Routing\\UrlGenerator\n */\nclass URL extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'url';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static \\Illuminate\\Contracts\\Validation\\Validator make(array $data, array $rules, array $messages = [], array $customAttributes = [])\n * @method static void extend(string $rule, \\Closure|string $extension, string $message = null)\n * @method static void extendImplicit(string $rule, \\Closure|string $extension, string $message = null)\n * @method static void replacer(string $rule, \\Closure|string $replacer)\n *\n * @see \\Illuminate\\Validation\\Factory\n */\nclass Validator extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'validator';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Facades/View.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Facades;\n\n/**\n * @method static bool exists(string $view)\n * @method static \\Illuminate\\Contracts\\View\\View file(string $path, array $data = [], array $mergeData = [])\n * @method static \\Illuminate\\Contracts\\View\\View make(string $view, array $data = [], array $mergeData = [])\n * @method static mixed share(array|string $key, $value = null)\n * @method static array composer(array|string $views, \\Closure|string $callback)\n * @method static array creator(array|string $views, \\Closure|string $callback)\n * @method static \\Illuminate\\Contracts\\View\\Factory addNamespace(string $namespace, string|array $hints)\n * @method static \\Illuminate\\Contracts\\View\\Factory replaceNamespace(string $namespace, string|array $hints)\n *\n * @see \\Illuminate\\View\\Factory\n */\nclass View extends Facade\n{\n    /**\n     * Get the registered name of the component.\n     *\n     * @return string\n     */\n    protected static function getFacadeAccessor()\n    {\n        return 'view';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Fluent.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse ArrayAccess;\nuse JsonSerializable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\n\nclass Fluent implements ArrayAccess, Arrayable, Jsonable, JsonSerializable\n{\n    /**\n     * All of the attributes set on the fluent instance.\n     *\n     * @var array\n     */\n    protected $attributes = [];\n\n    /**\n     * Create a new fluent instance.\n     *\n     * @param  array|object  $attributes\n     * @return void\n     */\n    public function __construct($attributes = [])\n    {\n        foreach ($attributes as $key => $value) {\n            $this->attributes[$key] = $value;\n        }\n    }\n\n    /**\n     * Get an attribute from the fluent instance.\n     *\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public function get($key, $default = null)\n    {\n        if (array_key_exists($key, $this->attributes)) {\n            return $this->attributes[$key];\n        }\n\n        return value($default);\n    }\n\n    /**\n     * Get the attributes from the fluent instance.\n     *\n     * @return array\n     */\n    public function getAttributes()\n    {\n        return $this->attributes;\n    }\n\n    /**\n     * Convert the fluent instance to an array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return $this->attributes;\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->toArray();\n    }\n\n    /**\n     * Convert the fluent instance to JSON.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0)\n    {\n        return json_encode($this->jsonSerialize(), $options);\n    }\n\n    /**\n     * Determine if the given offset exists.\n     *\n     * @param  string  $offset\n     * @return bool\n     */\n    public function offsetExists($offset)\n    {\n        return isset($this->attributes[$offset]);\n    }\n\n    /**\n     * Get the value for a given offset.\n     *\n     * @param  string  $offset\n     * @return mixed\n     */\n    public function offsetGet($offset)\n    {\n        return $this->get($offset);\n    }\n\n    /**\n     * Set the value at the given offset.\n     *\n     * @param  string  $offset\n     * @param  mixed   $value\n     * @return void\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->attributes[$offset] = $value;\n    }\n\n    /**\n     * Unset the value at the given offset.\n     *\n     * @param  string  $offset\n     * @return void\n     */\n    public function offsetUnset($offset)\n    {\n        unset($this->attributes[$offset]);\n    }\n\n    /**\n     * Handle dynamic calls to the fluent instance to set attributes.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return $this\n     */\n    public function __call($method, $parameters)\n    {\n        $this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true;\n\n        return $this;\n    }\n\n    /**\n     * Dynamically retrieve the value of an attribute.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->get($key);\n    }\n\n    /**\n     * Dynamically set the value of an attribute.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this->offsetSet($key, $value);\n    }\n\n    /**\n     * Dynamically check if an attribute is set.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return $this->offsetExists($key);\n    }\n\n    /**\n     * Dynamically unset an attribute.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function __unset($key)\n    {\n        $this->offsetUnset($key);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\n/**\n * @mixin \\Illuminate\\Support\\Collection\n */\nclass HigherOrderCollectionProxy\n{\n    /**\n     * The collection being operated on.\n     *\n     * @var \\Illuminate\\Support\\Collection\n     */\n    protected $collection;\n\n    /**\n     * The method being proxied.\n     *\n     * @var string\n     */\n    protected $method;\n\n    /**\n     * Create a new proxy instance.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $collection\n     * @param  string  $method\n     * @return void\n     */\n    public function __construct(Collection $collection, $method)\n    {\n        $this->method = $method;\n        $this->collection = $collection;\n    }\n\n    /**\n     * Proxy accessing an attribute onto the collection items.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        return $this->collection->{$this->method}(function ($value) use ($key) {\n            return is_array($value) ? $value[$key] : $value->{$key};\n        });\n    }\n\n    /**\n     * Proxy a method call onto the collection items.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->collection->{$this->method}(function ($value) use ($method, $parameters) {\n            return $value->{$method}(...$parameters);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/HigherOrderTapProxy.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nclass HigherOrderTapProxy\n{\n    /**\n     * The target being tapped.\n     *\n     * @var mixed\n     */\n    public $target;\n\n    /**\n     * Create a new tap proxy instance.\n     *\n     * @param  mixed  $target\n     * @return void\n     */\n    public function __construct($target)\n    {\n        $this->target = $target;\n    }\n\n    /**\n     * Dynamically pass method calls to the target.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        $this->target->{$method}(...$parameters);\n\n        return $this->target;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/HtmlString.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Illuminate\\Contracts\\Support\\Htmlable;\n\nclass HtmlString implements Htmlable\n{\n    /**\n     * The HTML string.\n     *\n     * @var string\n     */\n    protected $html;\n\n    /**\n     * Create a new HTML string instance.\n     *\n     * @param  string  $html\n     * @return void\n     */\n    public function __construct($html)\n    {\n        $this->html = $html;\n    }\n\n    /**\n     * Get the HTML string.\n     *\n     * @return string\n     */\n    public function toHtml()\n    {\n        return $this->html;\n    }\n\n    /**\n     * Get the HTML string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->toHtml();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/InteractsWithTime.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse DateInterval;\nuse DateTimeInterface;\n\ntrait InteractsWithTime\n{\n    /**\n     * Get the number of seconds until the given DateTime.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @return int\n     */\n    protected function secondsUntil($delay)\n    {\n        $delay = $this->parseDateInterval($delay);\n\n        return $delay instanceof DateTimeInterface\n                            ? max(0, $delay->getTimestamp() - $this->currentTime())\n                            : (int) $delay;\n    }\n\n    /**\n     * Get the \"available at\" UNIX timestamp.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @return int\n     */\n    protected function availableAt($delay = 0)\n    {\n        $delay = $this->parseDateInterval($delay);\n\n        return $delay instanceof DateTimeInterface\n                            ? $delay->getTimestamp()\n                            : Carbon::now()->addRealSeconds($delay)->getTimestamp();\n    }\n\n    /**\n     * If the given value is an interval, convert it to a DateTime instance.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @return \\DateTimeInterface|int\n     */\n    protected function parseDateInterval($delay)\n    {\n        if ($delay instanceof DateInterval) {\n            $delay = Carbon::now()->add($delay);\n        }\n\n        return $delay;\n    }\n\n    /**\n     * Get the current system time as a UNIX timestamp.\n     *\n     * @return int\n     */\n    protected function currentTime()\n    {\n        return Carbon::now()->getTimestamp();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Manager.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Closure;\nuse InvalidArgumentException;\n\nabstract class Manager\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * The registered custom driver creators.\n     *\n     * @var array\n     */\n    protected $customCreators = [];\n\n    /**\n     * The array of created \"drivers\".\n     *\n     * @var array\n     */\n    protected $drivers = [];\n\n    /**\n     * Create a new manager instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Get the default driver name.\n     *\n     * @return string\n     */\n    abstract public function getDefaultDriver();\n\n    /**\n     * Get a driver instance.\n     *\n     * @param  string  $driver\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function driver($driver = null)\n    {\n        $driver = $driver ?: $this->getDefaultDriver();\n\n        if (is_null($driver)) {\n            throw new InvalidArgumentException(sprintf(\n                'Unable to resolve NULL driver for [%s].', static::class\n            ));\n        }\n\n        // If the given driver has not been created before, we will create the instances\n        // here and cache it so we can return it next time very quickly. If there is\n        // already a driver created by this name, we'll just return that instance.\n        if (! isset($this->drivers[$driver])) {\n            $this->drivers[$driver] = $this->createDriver($driver);\n        }\n\n        return $this->drivers[$driver];\n    }\n\n    /**\n     * Create a new driver instance.\n     *\n     * @param  string  $driver\n     * @return mixed\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function createDriver($driver)\n    {\n        // First, we will determine if a custom driver creator exists for the given driver and\n        // if it does not we will check for a creator method for the driver. Custom creator\n        // callbacks allow developers to build their own \"drivers\" easily using Closures.\n        if (isset($this->customCreators[$driver])) {\n            return $this->callCustomCreator($driver);\n        } else {\n            $method = 'create'.Str::studly($driver).'Driver';\n\n            if (method_exists($this, $method)) {\n                return $this->$method();\n            }\n        }\n        throw new InvalidArgumentException(\"Driver [$driver] not supported.\");\n    }\n\n    /**\n     * Call a custom driver creator.\n     *\n     * @param  string  $driver\n     * @return mixed\n     */\n    protected function callCustomCreator($driver)\n    {\n        return $this->customCreators[$driver]($this->app);\n    }\n\n    /**\n     * Register a custom driver creator Closure.\n     *\n     * @param  string    $driver\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function extend($driver, Closure $callback)\n    {\n        $this->customCreators[$driver] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get all of the created \"drivers\".\n     *\n     * @return array\n     */\n    public function getDrivers()\n    {\n        return $this->drivers;\n    }\n\n    /**\n     * Dynamically call the default driver instance.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->driver()->$method(...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/MessageBag.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Countable;\nuse JsonSerializable;\nuse Illuminate\\Contracts\\Support\\Jsonable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Support\\MessageProvider;\nuse Illuminate\\Contracts\\Support\\MessageBag as MessageBagContract;\n\nclass MessageBag implements Arrayable, Countable, Jsonable, JsonSerializable, MessageBagContract, MessageProvider\n{\n    /**\n     * All of the registered messages.\n     *\n     * @var array\n     */\n    protected $messages = [];\n\n    /**\n     * Default format for message output.\n     *\n     * @var string\n     */\n    protected $format = ':message';\n\n    /**\n     * Create a new message bag instance.\n     *\n     * @param  array  $messages\n     * @return void\n     */\n    public function __construct(array $messages = [])\n    {\n        foreach ($messages as $key => $value) {\n            $value = $value instanceof Arrayable ? $value->toArray() : (array) $value;\n\n            $this->messages[$key] = array_unique($value);\n        }\n    }\n\n    /**\n     * Get the keys present in the message bag.\n     *\n     * @return array\n     */\n    public function keys()\n    {\n        return array_keys($this->messages);\n    }\n\n    /**\n     * Add a message to the message bag.\n     *\n     * @param  string  $key\n     * @param  string  $message\n     * @return $this\n     */\n    public function add($key, $message)\n    {\n        if ($this->isUnique($key, $message)) {\n            $this->messages[$key][] = $message;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Determine if a key and message combination already exists.\n     *\n     * @param  string  $key\n     * @param  string  $message\n     * @return bool\n     */\n    protected function isUnique($key, $message)\n    {\n        $messages = (array) $this->messages;\n\n        return ! isset($messages[$key]) || ! in_array($message, $messages[$key]);\n    }\n\n    /**\n     * Merge a new array of messages into the message bag.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array  $messages\n     * @return $this\n     */\n    public function merge($messages)\n    {\n        if ($messages instanceof MessageProvider) {\n            $messages = $messages->getMessageBag()->getMessages();\n        }\n\n        $this->messages = array_merge_recursive($this->messages, $messages);\n\n        return $this;\n    }\n\n    /**\n     * Determine if messages exist for all of the given keys.\n     *\n     * @param  array|string  $key\n     * @return bool\n     */\n    public function has($key)\n    {\n        if ($this->isEmpty()) {\n            return false;\n        }\n\n        if (is_null($key)) {\n            return $this->any();\n        }\n\n        $keys = is_array($key) ? $key : func_get_args();\n\n        foreach ($keys as $key) {\n            if ($this->first($key) === '') {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Determine if messages exist for any of the given keys.\n     *\n     * @param  array|string  $keys\n     * @return bool\n     */\n    public function hasAny($keys = [])\n    {\n        if ($this->isEmpty()) {\n            return false;\n        }\n\n        $keys = is_array($keys) ? $keys : func_get_args();\n\n        foreach ($keys as $key) {\n            if ($this->has($key)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Get the first message from the message bag for a given key.\n     *\n     * @param  string  $key\n     * @param  string  $format\n     * @return string\n     */\n    public function first($key = null, $format = null)\n    {\n        $messages = is_null($key) ? $this->all($format) : $this->get($key, $format);\n\n        $firstMessage = Arr::first($messages, null, '');\n\n        return is_array($firstMessage) ? Arr::first($firstMessage) : $firstMessage;\n    }\n\n    /**\n     * Get all of the messages from the message bag for a given key.\n     *\n     * @param  string  $key\n     * @param  string  $format\n     * @return array\n     */\n    public function get($key, $format = null)\n    {\n        // If the message exists in the message bag, we will transform it and return\n        // the message. Otherwise, we will check if the key is implicit & collect\n        // all the messages that match the given key and output it as an array.\n        if (array_key_exists($key, $this->messages)) {\n            return $this->transform(\n                $this->messages[$key], $this->checkFormat($format), $key\n            );\n        }\n\n        if (Str::contains($key, '*')) {\n            return $this->getMessagesForWildcardKey($key, $format);\n        }\n\n        return [];\n    }\n\n    /**\n     * Get the messages for a wildcard key.\n     *\n     * @param  string  $key\n     * @param  string|null  $format\n     * @return array\n     */\n    protected function getMessagesForWildcardKey($key, $format)\n    {\n        return collect($this->messages)\n                ->filter(function ($messages, $messageKey) use ($key) {\n                    return Str::is($key, $messageKey);\n                })\n                ->map(function ($messages, $messageKey) use ($format) {\n                    return $this->transform(\n                        $messages, $this->checkFormat($format), $messageKey\n                    );\n                })->all();\n    }\n\n    /**\n     * Get all of the messages for every key in the message bag.\n     *\n     * @param  string  $format\n     * @return array\n     */\n    public function all($format = null)\n    {\n        $format = $this->checkFormat($format);\n\n        $all = [];\n\n        foreach ($this->messages as $key => $messages) {\n            $all = array_merge($all, $this->transform($messages, $format, $key));\n        }\n\n        return $all;\n    }\n\n    /**\n     * Get all of the unique messages for every key in the message bag.\n     *\n     * @param  string  $format\n     * @return array\n     */\n    public function unique($format = null)\n    {\n        return array_unique($this->all($format));\n    }\n\n    /**\n     * Format an array of messages.\n     *\n     * @param  array   $messages\n     * @param  string  $format\n     * @param  string  $messageKey\n     * @return array\n     */\n    protected function transform($messages, $format, $messageKey)\n    {\n        return collect((array) $messages)\n            ->map(function ($message) use ($format, $messageKey) {\n                // We will simply spin through the given messages and transform each one\n                // replacing the :message place holder with the real message allowing\n                // the messages to be easily formatted to each developer's desires.\n                return str_replace([':message', ':key'], [$message, $messageKey], $format);\n            })->all();\n    }\n\n    /**\n     * Get the appropriate format based on the given format.\n     *\n     * @param  string  $format\n     * @return string\n     */\n    protected function checkFormat($format)\n    {\n        return $format ?: $this->format;\n    }\n\n    /**\n     * Get the raw messages in the message bag.\n     *\n     * @return array\n     */\n    public function messages()\n    {\n        return $this->messages;\n    }\n\n    /**\n     * Get the raw messages in the message bag.\n     *\n     * @return array\n     */\n    public function getMessages()\n    {\n        return $this->messages();\n    }\n\n    /**\n     * Get the messages for the instance.\n     *\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function getMessageBag()\n    {\n        return $this;\n    }\n\n    /**\n     * Get the default message format.\n     *\n     * @return string\n     */\n    public function getFormat()\n    {\n        return $this->format;\n    }\n\n    /**\n     * Set the default message format.\n     *\n     * @param  string  $format\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function setFormat($format = ':message')\n    {\n        $this->format = $format;\n\n        return $this;\n    }\n\n    /**\n     * Determine if the message bag has any messages.\n     *\n     * @return bool\n     */\n    public function isEmpty()\n    {\n        return ! $this->any();\n    }\n\n    /**\n     * Determine if the message bag has any messages.\n     *\n     * @return bool\n     */\n    public function isNotEmpty()\n    {\n        return $this->any();\n    }\n\n    /**\n     * Determine if the message bag has any messages.\n     *\n     * @return bool\n     */\n    public function any()\n    {\n        return $this->count() > 0;\n    }\n\n    /**\n     * Get the number of messages in the message bag.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->messages, COUNT_RECURSIVE) - count($this->messages);\n    }\n\n    /**\n     * Get the instance as an array.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return $this->getMessages();\n    }\n\n    /**\n     * Convert the object into something JSON serializable.\n     *\n     * @return array\n     */\n    public function jsonSerialize()\n    {\n        return $this->toArray();\n    }\n\n    /**\n     * Convert the object to its JSON representation.\n     *\n     * @param  int  $options\n     * @return string\n     */\n    public function toJson($options = 0)\n    {\n        return json_encode($this->jsonSerialize(), $options);\n    }\n\n    /**\n     * Convert the message bag to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->toJson();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nclass NamespacedItemResolver\n{\n    /**\n     * A cache of the parsed items.\n     *\n     * @var array\n     */\n    protected $parsed = [];\n\n    /**\n     * Parse a key into namespace, group, and item.\n     *\n     * @param  string  $key\n     * @return array\n     */\n    public function parseKey($key)\n    {\n        // If we've already parsed the given key, we'll return the cached version we\n        // already have, as this will save us some processing. We cache off every\n        // key we parse so we can quickly return it on all subsequent requests.\n        if (isset($this->parsed[$key])) {\n            return $this->parsed[$key];\n        }\n\n        // If the key does not contain a double colon, it means the key is not in a\n        // namespace, and is just a regular configuration item. Namespaces are a\n        // tool for organizing configuration items for things such as modules.\n        if (strpos($key, '::') === false) {\n            $segments = explode('.', $key);\n\n            $parsed = $this->parseBasicSegments($segments);\n        } else {\n            $parsed = $this->parseNamespacedSegments($key);\n        }\n\n        // Once we have the parsed array of this key's elements, such as its groups\n        // and namespace, we will cache each array inside a simple list that has\n        // the key and the parsed array for quick look-ups for later requests.\n        return $this->parsed[$key] = $parsed;\n    }\n\n    /**\n     * Parse an array of basic segments.\n     *\n     * @param  array  $segments\n     * @return array\n     */\n    protected function parseBasicSegments(array $segments)\n    {\n        // The first segment in a basic array will always be the group, so we can go\n        // ahead and grab that segment. If there is only one total segment we are\n        // just pulling an entire group out of the array and not a single item.\n        $group = $segments[0];\n\n        // If there is more than one segment in this group, it means we are pulling\n        // a specific item out of a group and will need to return this item name\n        // as well as the group so we know which item to pull from the arrays.\n        $item = count($segments) === 1\n                    ? null\n                    : implode('.', array_slice($segments, 1));\n\n        return [null, $group, $item];\n    }\n\n    /**\n     * Parse an array of namespaced segments.\n     *\n     * @param  string  $key\n     * @return array\n     */\n    protected function parseNamespacedSegments($key)\n    {\n        [$namespace, $item] = explode('::', $key);\n\n        // First we'll just explode the first segment to get the namespace and group\n        // since the item should be in the remaining segments. Once we have these\n        // two pieces of data we can proceed with parsing out the item's value.\n        $itemSegments = explode('.', $item);\n\n        $groupAndItem = array_slice(\n            $this->parseBasicSegments($itemSegments), 1\n        );\n\n        return array_merge([$namespace], $groupAndItem);\n    }\n\n    /**\n     * Set the parsed value of a key.\n     *\n     * @param  string  $key\n     * @param  array   $parsed\n     * @return void\n     */\n    public function setParsedKey($key, $parsed)\n    {\n        $this->parsed[$key] = $parsed;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Optional.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse ArrayAccess;\nuse ArrayObject;\n\nclass Optional implements ArrayAccess\n{\n    use Traits\\Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The underlying object.\n     *\n     * @var mixed\n     */\n    protected $value;\n\n    /**\n     * Create a new optional instance.\n     *\n     * @param  mixed  $value\n     * @return void\n     */\n    public function __construct($value)\n    {\n        $this->value = $value;\n    }\n\n    /**\n     * Dynamically access a property on the underlying object.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function __get($key)\n    {\n        if (is_object($this->value)) {\n            return $this->value->{$key} ?? null;\n        }\n    }\n\n    /**\n     * Dynamically check a property exists on the underlying object.\n     *\n     * @param  mixed  $name\n     * @return bool\n     */\n    public function __isset($name)\n    {\n        if (is_object($this->value)) {\n            return isset($this->value->{$name});\n        }\n\n        if (is_array($this->value) || $this->value instanceof ArrayObject) {\n            return isset($this->value[$name]);\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if an item exists at an offset.\n     *\n     * @param  mixed  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return Arr::accessible($this->value) && Arr::exists($this->value, $key);\n    }\n\n    /**\n     * Get an item at a given offset.\n     *\n     * @param  mixed  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return Arr::get($this->value, $key);\n    }\n\n    /**\n     * Set the item at a given offset.\n     *\n     * @param  mixed  $key\n     * @param  mixed  $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        if (Arr::accessible($this->value)) {\n            $this->value[$key] = $value;\n        }\n    }\n\n    /**\n     * Unset the item at a given offset.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        if (Arr::accessible($this->value)) {\n            unset($this->value[$key]);\n        }\n    }\n\n    /**\n     * Dynamically pass a method to the underlying object.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        if (is_object($this->value)) {\n            return $this->value->{$method}(...$parameters);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Doctrine\\Common\\Inflector\\Inflector;\n\nclass Pluralizer\n{\n    /**\n     * Uncountable word forms.\n     *\n     * @var array\n     */\n    public static $uncountable = [\n        'audio',\n        'bison',\n        'cattle',\n        'chassis',\n        'compensation',\n        'coreopsis',\n        'data',\n        'deer',\n        'education',\n        'emoji',\n        'equipment',\n        'evidence',\n        'feedback',\n        'firmware',\n        'fish',\n        'furniture',\n        'gold',\n        'hardware',\n        'information',\n        'jedi',\n        'kin',\n        'knowledge',\n        'love',\n        'metadata',\n        'money',\n        'moose',\n        'news',\n        'nutrition',\n        'offspring',\n        'plankton',\n        'pokemon',\n        'police',\n        'rain',\n        'recommended',\n        'related',\n        'rice',\n        'series',\n        'sheep',\n        'software',\n        'species',\n        'swine',\n        'traffic',\n        'wheat',\n    ];\n\n    /**\n     * Get the plural form of an English word.\n     *\n     * @param  string  $value\n     * @param  int     $count\n     * @return string\n     */\n    public static function plural($value, $count = 2)\n    {\n        if ((int) abs($count) === 1 || static::uncountable($value)) {\n            return $value;\n        }\n\n        $plural = Inflector::pluralize($value);\n\n        return static::matchCase($plural, $value);\n    }\n\n    /**\n     * Get the singular form of an English word.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function singular($value)\n    {\n        $singular = Inflector::singularize($value);\n\n        return static::matchCase($singular, $value);\n    }\n\n    /**\n     * Determine if the given value is uncountable.\n     *\n     * @param  string  $value\n     * @return bool\n     */\n    protected static function uncountable($value)\n    {\n        return in_array(strtolower($value), static::$uncountable);\n    }\n\n    /**\n     * Attempt to match the case on two strings.\n     *\n     * @param  string  $value\n     * @param  string  $comparison\n     * @return string\n     */\n    protected static function matchCase($value, $comparison)\n    {\n        $functions = ['mb_strtolower', 'mb_strtoupper', 'ucfirst', 'ucwords'];\n\n        foreach ($functions as $function) {\n            if (call_user_func($function, $comparison) === $comparison) {\n                return call_user_func($function, $value);\n            }\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/ProcessUtils.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\n/**\n * ProcessUtils is a bunch of utility methods.\n *\n * This class was originally copied from Symfony 3.\n */\nclass ProcessUtils\n{\n    /**\n     * Escapes a string to be used as a shell argument.\n     *\n     * @param  string  $argument\n     * @return string\n     */\n    public static function escapeArgument($argument)\n    {\n        // Fix for PHP bug #43784 escapeshellarg removes % from given string\n        // Fix for PHP bug #49446 escapeshellarg doesn't work on Windows\n        // @see https://bugs.php.net/bug.php?id=43784\n        // @see https://bugs.php.net/bug.php?id=49446\n        if ('\\\\' === DIRECTORY_SEPARATOR) {\n            if ('' === $argument) {\n                return '\"\"';\n            }\n\n            $escapedArgument = '';\n            $quote = false;\n\n            foreach (preg_split('/(\")/', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) {\n                if ('\"' === $part) {\n                    $escapedArgument .= '\\\\\"';\n                } elseif (self::isSurroundedBy($part, '%')) {\n                    // Avoid environment variable expansion\n                    $escapedArgument .= '^%\"'.substr($part, 1, -1).'\"^%';\n                } else {\n                    // escape trailing backslash\n                    if ('\\\\' === substr($part, -1)) {\n                        $part .= '\\\\';\n                    }\n                    $quote = true;\n                    $escapedArgument .= $part;\n                }\n            }\n\n            if ($quote) {\n                $escapedArgument = '\"'.$escapedArgument.'\"';\n            }\n\n            return $escapedArgument;\n        }\n\n        return \"'\".str_replace(\"'\", \"'\\\\''\", $argument).\"'\";\n    }\n\n    /**\n     * Is the given string surrounded by the given character?\n     *\n     * @param  string  $arg\n     * @param  string  $char\n     * @return bool\n     */\n    protected static function isSurroundedBy($arg, $char)\n    {\n        return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Illuminate\\Console\\Application as Artisan;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nabstract class ServiceProvider\n{\n    /**\n     * The application instance.\n     *\n     * @var \\Illuminate\\Contracts\\Foundation\\Application\n     */\n    protected $app;\n\n    /**\n     * Indicates if loading of the provider is deferred.\n     *\n     * @deprecated Implement the \\Illuminate\\Contracts\\Support\\DeferrableProvider interface instead. Will be removed in Laravel 5.9.\n     *\n     * @var bool\n     */\n    protected $defer = false;\n\n    /**\n     * The paths that should be published.\n     *\n     * @var array\n     */\n    public static $publishes = [];\n\n    /**\n     * The paths that should be published by group.\n     *\n     * @var array\n     */\n    public static $publishGroups = [];\n\n    /**\n     * Create a new service provider instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Foundation\\Application  $app\n     * @return void\n     */\n    public function __construct($app)\n    {\n        $this->app = $app;\n    }\n\n    /**\n     * Register any application services.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        //\n    }\n\n    /**\n     * Merge the given configuration with the existing configuration.\n     *\n     * @param  string  $path\n     * @param  string  $key\n     * @return void\n     */\n    protected function mergeConfigFrom($path, $key)\n    {\n        $config = $this->app['config']->get($key, []);\n\n        $this->app['config']->set($key, array_merge(require $path, $config));\n    }\n\n    /**\n     * Load the given routes file if routes are not already cached.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    protected function loadRoutesFrom($path)\n    {\n        if (! $this->app->routesAreCached()) {\n            require $path;\n        }\n    }\n\n    /**\n     * Register a view file namespace.\n     *\n     * @param  string|array  $path\n     * @param  string  $namespace\n     * @return void\n     */\n    protected function loadViewsFrom($path, $namespace)\n    {\n        if (is_array($this->app->config['view']['paths'])) {\n            foreach ($this->app->config['view']['paths'] as $viewPath) {\n                if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) {\n                    $this->app['view']->addNamespace($namespace, $appPath);\n                }\n            }\n        }\n\n        $this->app['view']->addNamespace($namespace, $path);\n    }\n\n    /**\n     * Register a translation file namespace.\n     *\n     * @param  string  $path\n     * @param  string  $namespace\n     * @return void\n     */\n    protected function loadTranslationsFrom($path, $namespace)\n    {\n        $this->app['translator']->addNamespace($namespace, $path);\n    }\n\n    /**\n     * Register a JSON translation file path.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    protected function loadJsonTranslationsFrom($path)\n    {\n        $this->app['translator']->addJsonPath($path);\n    }\n\n    /**\n     * Register a database migration path.\n     *\n     * @param  array|string  $paths\n     * @return void\n     */\n    protected function loadMigrationsFrom($paths)\n    {\n        $this->app->afterResolving('migrator', function ($migrator) use ($paths) {\n            foreach ((array) $paths as $path) {\n                $migrator->path($path);\n            }\n        });\n    }\n\n    /**\n     * Register paths to be published by the publish command.\n     *\n     * @param  array  $paths\n     * @param  mixed  $groups\n     * @return void\n     */\n    protected function publishes(array $paths, $groups = null)\n    {\n        $this->ensurePublishArrayInitialized($class = static::class);\n\n        static::$publishes[$class] = array_merge(static::$publishes[$class], $paths);\n\n        if (! is_null($groups)) {\n            foreach ((array) $groups as $group) {\n                $this->addPublishGroup($group, $paths);\n            }\n        }\n    }\n\n    /**\n     * Ensure the publish array for the service provider is initialized.\n     *\n     * @param  string  $class\n     * @return void\n     */\n    protected function ensurePublishArrayInitialized($class)\n    {\n        if (! array_key_exists($class, static::$publishes)) {\n            static::$publishes[$class] = [];\n        }\n    }\n\n    /**\n     * Add a publish group / tag to the service provider.\n     *\n     * @param  string  $group\n     * @param  array  $paths\n     * @return void\n     */\n    protected function addPublishGroup($group, $paths)\n    {\n        if (! array_key_exists($group, static::$publishGroups)) {\n            static::$publishGroups[$group] = [];\n        }\n\n        static::$publishGroups[$group] = array_merge(\n            static::$publishGroups[$group], $paths\n        );\n    }\n\n    /**\n     * Get the paths to publish.\n     *\n     * @param  string  $provider\n     * @param  string  $group\n     * @return array\n     */\n    public static function pathsToPublish($provider = null, $group = null)\n    {\n        if (! is_null($paths = static::pathsForProviderOrGroup($provider, $group))) {\n            return $paths;\n        }\n\n        return collect(static::$publishes)->reduce(function ($paths, $p) {\n            return array_merge($paths, $p);\n        }, []);\n    }\n\n    /**\n     * Get the paths for the provider or group (or both).\n     *\n     * @param  string|null  $provider\n     * @param  string|null  $group\n     * @return array\n     */\n    protected static function pathsForProviderOrGroup($provider, $group)\n    {\n        if ($provider && $group) {\n            return static::pathsForProviderAndGroup($provider, $group);\n        } elseif ($group && array_key_exists($group, static::$publishGroups)) {\n            return static::$publishGroups[$group];\n        } elseif ($provider && array_key_exists($provider, static::$publishes)) {\n            return static::$publishes[$provider];\n        } elseif ($group || $provider) {\n            return [];\n        }\n    }\n\n    /**\n     * Get the paths for the provider and group.\n     *\n     * @param  string  $provider\n     * @param  string  $group\n     * @return array\n     */\n    protected static function pathsForProviderAndGroup($provider, $group)\n    {\n        if (! empty(static::$publishes[$provider]) && ! empty(static::$publishGroups[$group])) {\n            return array_intersect_key(static::$publishes[$provider], static::$publishGroups[$group]);\n        }\n\n        return [];\n    }\n\n    /**\n     * Get the service providers available for publishing.\n     *\n     * @return array\n     */\n    public static function publishableProviders()\n    {\n        return array_keys(static::$publishes);\n    }\n\n    /**\n     * Get the groups available for publishing.\n     *\n     * @return array\n     */\n    public static function publishableGroups()\n    {\n        return array_keys(static::$publishGroups);\n    }\n\n    /**\n     * Register the package's custom Artisan commands.\n     *\n     * @param  array|mixed  $commands\n     * @return void\n     */\n    public function commands($commands)\n    {\n        $commands = is_array($commands) ? $commands : func_get_args();\n\n        Artisan::starting(function ($artisan) use ($commands) {\n            $artisan->resolveCommands($commands);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [];\n    }\n\n    /**\n     * Get the events that trigger this service provider to register.\n     *\n     * @return array\n     */\n    public function when()\n    {\n        return [];\n    }\n\n    /**\n     * Determine if the provider is deferred.\n     *\n     * @return bool\n     */\n    public function isDeferred()\n    {\n        return $this->defer || $this instanceof DeferrableProvider;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Str.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Ramsey\\Uuid\\Uuid;\nuse Ramsey\\Uuid\\UuidFactory;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Ramsey\\Uuid\\Generator\\CombGenerator;\nuse Ramsey\\Uuid\\Codec\\TimestampFirstCombCodec;\n\nclass Str\n{\n    use Macroable;\n\n    /**\n     * The cache of snake-cased words.\n     *\n     * @var array\n     */\n    protected static $snakeCache = [];\n\n    /**\n     * The cache of camel-cased words.\n     *\n     * @var array\n     */\n    protected static $camelCache = [];\n\n    /**\n     * The cache of studly-cased words.\n     *\n     * @var array\n     */\n    protected static $studlyCache = [];\n\n    /**\n     * Return the remainder of a string after a given value.\n     *\n     * @param  string  $subject\n     * @param  string  $search\n     * @return string\n     */\n    public static function after($subject, $search)\n    {\n        return $search === '' ? $subject : array_reverse(explode($search, $subject, 2))[0];\n    }\n\n    /**\n     * Transliterate a UTF-8 value to ASCII.\n     *\n     * @param  string  $value\n     * @param  string  $language\n     * @return string\n     */\n    public static function ascii($value, $language = 'en')\n    {\n        $languageSpecific = static::languageSpecificCharsArray($language);\n\n        if (! is_null($languageSpecific)) {\n            $value = str_replace($languageSpecific[0], $languageSpecific[1], $value);\n        }\n\n        foreach (static::charsArray() as $key => $val) {\n            $value = str_replace($val, $key, $value);\n        }\n\n        return preg_replace('/[^\\x20-\\x7E]/u', '', $value);\n    }\n\n    /**\n     * Get the portion of a string before a given value.\n     *\n     * @param  string  $subject\n     * @param  string  $search\n     * @return string\n     */\n    public static function before($subject, $search)\n    {\n        return $search === '' ? $subject : explode($search, $subject)[0];\n    }\n\n    /**\n     * Convert a value to camel case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function camel($value)\n    {\n        if (isset(static::$camelCache[$value])) {\n            return static::$camelCache[$value];\n        }\n\n        return static::$camelCache[$value] = lcfirst(static::studly($value));\n    }\n\n    /**\n     * Determine if a given string contains a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     */\n    public static function contains($haystack, $needles)\n    {\n        foreach ((array) $needles as $needle) {\n            if ($needle !== '' && mb_strpos($haystack, $needle) !== false) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if a given string contains all array values.\n     *\n     * @param  string  $haystack\n     * @param  array  $needles\n     * @return bool\n     */\n    public static function containsAll($haystack, array $needles)\n    {\n        foreach ($needles as $needle) {\n            if (! static::contains($haystack, $needle)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Determine if a given string ends with a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     */\n    public static function endsWith($haystack, $needles)\n    {\n        foreach ((array) $needles as $needle) {\n            if (substr($haystack, -strlen($needle)) === (string) $needle) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Cap a string with a single instance of a given value.\n     *\n     * @param  string  $value\n     * @param  string  $cap\n     * @return string\n     */\n    public static function finish($value, $cap)\n    {\n        $quoted = preg_quote($cap, '/');\n\n        return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap;\n    }\n\n    /**\n     * Determine if a given string matches a given pattern.\n     *\n     * @param  string|array  $pattern\n     * @param  string  $value\n     * @return bool\n     */\n    public static function is($pattern, $value)\n    {\n        $patterns = Arr::wrap($pattern);\n\n        if (empty($patterns)) {\n            return false;\n        }\n\n        foreach ($patterns as $pattern) {\n            // If the given value is an exact match we can of course return true right\n            // from the beginning. Otherwise, we will translate asterisks and do an\n            // actual pattern match against the two strings to see if they match.\n            if ($pattern == $value) {\n                return true;\n            }\n\n            $pattern = preg_quote($pattern, '#');\n\n            // Asterisks are translated into zero-or-more regular expression wildcards\n            // to make it convenient to check if the strings starts with the given\n            // pattern such as \"library/*\", making any string check convenient.\n            $pattern = str_replace('\\*', '.*', $pattern);\n\n            if (preg_match('#^'.$pattern.'\\z#u', $value) === 1) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Convert a string to kebab case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function kebab($value)\n    {\n        return static::snake($value, '-');\n    }\n\n    /**\n     * Return the length of the given string.\n     *\n     * @param  string  $value\n     * @param  string  $encoding\n     * @return int\n     */\n    public static function length($value, $encoding = null)\n    {\n        if ($encoding) {\n            return mb_strlen($value, $encoding);\n        }\n\n        return mb_strlen($value);\n    }\n\n    /**\n     * Limit the number of characters in a string.\n     *\n     * @param  string  $value\n     * @param  int     $limit\n     * @param  string  $end\n     * @return string\n     */\n    public static function limit($value, $limit = 100, $end = '...')\n    {\n        if (mb_strwidth($value, 'UTF-8') <= $limit) {\n            return $value;\n        }\n\n        return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end;\n    }\n\n    /**\n     * Convert the given string to lower-case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function lower($value)\n    {\n        return mb_strtolower($value, 'UTF-8');\n    }\n\n    /**\n     * Limit the number of words in a string.\n     *\n     * @param  string  $value\n     * @param  int     $words\n     * @param  string  $end\n     * @return string\n     */\n    public static function words($value, $words = 100, $end = '...')\n    {\n        preg_match('/^\\s*+(?:\\S++\\s*+){1,'.$words.'}/u', $value, $matches);\n\n        if (! isset($matches[0]) || static::length($value) === static::length($matches[0])) {\n            return $value;\n        }\n\n        return rtrim($matches[0]).$end;\n    }\n\n    /**\n     * Parse a Class@method style callback into class and method.\n     *\n     * @param  string  $callback\n     * @param  string|null  $default\n     * @return array\n     */\n    public static function parseCallback($callback, $default = null)\n    {\n        return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default];\n    }\n\n    /**\n     * Get the plural form of an English word.\n     *\n     * @param  string  $value\n     * @param  int     $count\n     * @return string\n     */\n    public static function plural($value, $count = 2)\n    {\n        return Pluralizer::plural($value, $count);\n    }\n\n    /**\n     * Pluralize the last word of an English, studly caps case string.\n     *\n     * @param  string  $value\n     * @param  int     $count\n     * @return string\n     */\n    public static function pluralStudly($value, $count = 2)\n    {\n        $parts = preg_split('/(.)(?=[A-Z])/u', $value, -1, PREG_SPLIT_DELIM_CAPTURE);\n\n        $lastWord = array_pop($parts);\n\n        return implode('', $parts).self::plural($lastWord, $count);\n    }\n\n    /**\n     * Generate a more truly \"random\" alpha-numeric string.\n     *\n     * @param  int  $length\n     * @return string\n     */\n    public static function random($length = 16)\n    {\n        $string = '';\n\n        while (($len = strlen($string)) < $length) {\n            $size = $length - $len;\n\n            $bytes = random_bytes($size);\n\n            $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size);\n        }\n\n        return $string;\n    }\n\n    /**\n     * Replace a given value in the string sequentially with an array.\n     *\n     * @param  string  $search\n     * @param  array   $replace\n     * @param  string  $subject\n     * @return string\n     */\n    public static function replaceArray($search, array $replace, $subject)\n    {\n        $segments = explode($search, $subject);\n\n        $result = array_shift($segments);\n\n        foreach ($segments as $segment) {\n            $result .= (array_shift($replace) ?? $search).$segment;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Replace the first occurrence of a given value in the string.\n     *\n     * @param  string  $search\n     * @param  string  $replace\n     * @param  string  $subject\n     * @return string\n     */\n    public static function replaceFirst($search, $replace, $subject)\n    {\n        if ($search == '') {\n            return $subject;\n        }\n\n        $position = strpos($subject, $search);\n\n        if ($position !== false) {\n            return substr_replace($subject, $replace, $position, strlen($search));\n        }\n\n        return $subject;\n    }\n\n    /**\n     * Replace the last occurrence of a given value in the string.\n     *\n     * @param  string  $search\n     * @param  string  $replace\n     * @param  string  $subject\n     * @return string\n     */\n    public static function replaceLast($search, $replace, $subject)\n    {\n        $position = strrpos($subject, $search);\n\n        if ($position !== false) {\n            return substr_replace($subject, $replace, $position, strlen($search));\n        }\n\n        return $subject;\n    }\n\n    /**\n     * Begin a string with a single instance of a given value.\n     *\n     * @param  string  $value\n     * @param  string  $prefix\n     * @return string\n     */\n    public static function start($value, $prefix)\n    {\n        $quoted = preg_quote($prefix, '/');\n\n        return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value);\n    }\n\n    /**\n     * Convert the given string to upper-case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function upper($value)\n    {\n        return mb_strtoupper($value, 'UTF-8');\n    }\n\n    /**\n     * Convert the given string to title case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function title($value)\n    {\n        return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8');\n    }\n\n    /**\n     * Get the singular form of an English word.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function singular($value)\n    {\n        return Pluralizer::singular($value);\n    }\n\n    /**\n     * Generate a URL friendly \"slug\" from a given string.\n     *\n     * @param  string  $title\n     * @param  string  $separator\n     * @param  string|null  $language\n     * @return string\n     */\n    public static function slug($title, $separator = '-', $language = 'en')\n    {\n        $title = $language ? static::ascii($title, $language) : $title;\n\n        // Convert all dashes/underscores into separator\n        $flip = $separator === '-' ? '_' : '-';\n\n        $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);\n\n        // Replace @ with the word 'at'\n        $title = str_replace('@', $separator.'at'.$separator, $title);\n\n        // Remove all characters that are not the separator, letters, numbers, or whitespace.\n        $title = preg_replace('![^'.preg_quote($separator).'\\pL\\pN\\s]+!u', '', static::lower($title));\n\n        // Replace all separator characters and whitespace by a single separator\n        $title = preg_replace('!['.preg_quote($separator).'\\s]+!u', $separator, $title);\n\n        return trim($title, $separator);\n    }\n\n    /**\n     * Convert a string to snake case.\n     *\n     * @param  string  $value\n     * @param  string  $delimiter\n     * @return string\n     */\n    public static function snake($value, $delimiter = '_')\n    {\n        $key = $value;\n\n        if (isset(static::$snakeCache[$key][$delimiter])) {\n            return static::$snakeCache[$key][$delimiter];\n        }\n\n        if (! ctype_lower($value)) {\n            $value = preg_replace('/\\s+/u', '', ucwords($value));\n\n            $value = static::lower(preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $value));\n        }\n\n        return static::$snakeCache[$key][$delimiter] = $value;\n    }\n\n    /**\n     * Determine if a given string starts with a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     */\n    public static function startsWith($haystack, $needles)\n    {\n        foreach ((array) $needles as $needle) {\n            if ($needle !== '' && substr($haystack, 0, strlen($needle)) === (string) $needle) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Convert a value to studly caps case.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public static function studly($value)\n    {\n        $key = $value;\n\n        if (isset(static::$studlyCache[$key])) {\n            return static::$studlyCache[$key];\n        }\n\n        $value = ucwords(str_replace(['-', '_'], ' ', $value));\n\n        return static::$studlyCache[$key] = str_replace(' ', '', $value);\n    }\n\n    /**\n     * Returns the portion of string specified by the start and length parameters.\n     *\n     * @param  string  $string\n     * @param  int  $start\n     * @param  int|null  $length\n     * @return string\n     */\n    public static function substr($string, $start, $length = null)\n    {\n        return mb_substr($string, $start, $length, 'UTF-8');\n    }\n\n    /**\n     * Make a string's first character uppercase.\n     *\n     * @param  string  $string\n     * @return string\n     */\n    public static function ucfirst($string)\n    {\n        return static::upper(static::substr($string, 0, 1)).static::substr($string, 1);\n    }\n\n    /**\n     * Generate a UUID (version 4).\n     *\n     * @return \\Ramsey\\Uuid\\UuidInterface\n     */\n    public static function uuid()\n    {\n        return Uuid::uuid4();\n    }\n\n    /**\n     * Generate a time-ordered UUID (version 4).\n     *\n     * @return \\Ramsey\\Uuid\\UuidInterface\n     */\n    public static function orderedUuid()\n    {\n        $factory = new UuidFactory;\n\n        $factory->setRandomGenerator(new CombGenerator(\n            $factory->getRandomGenerator(),\n            $factory->getNumberConverter()\n        ));\n\n        $factory->setCodec(new TimestampFirstCombCodec(\n            $factory->getUuidBuilder()\n        ));\n\n        return $factory->uuid4();\n    }\n\n    /**\n     * Returns the replacements for the ascii method.\n     *\n     * Note: Adapted from Stringy\\Stringy.\n     *\n     * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt\n     *\n     * @return array\n     */\n    protected static function charsArray()\n    {\n        static $charsArray;\n\n        if (isset($charsArray)) {\n            return $charsArray;\n        }\n\n        return $charsArray = [\n            '0'    => ['°', '₀', '۰', '０'],\n            '1'    => ['¹', '₁', '۱', '１'],\n            '2'    => ['²', '₂', '۲', '２'],\n            '3'    => ['³', '₃', '۳', '３'],\n            '4'    => ['⁴', '₄', '۴', '٤', '４'],\n            '5'    => ['⁵', '₅', '۵', '٥', '５'],\n            '6'    => ['⁶', '₆', '۶', '٦', '６'],\n            '7'    => ['⁷', '₇', '۷', '７'],\n            '8'    => ['⁸', '₈', '۸', '８'],\n            '9'    => ['⁹', '₉', '۹', '９'],\n            'a'    => ['à', 'á', 'ả', 'ã', 'ạ', 'ă', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'â', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'ā', 'ą', 'å', 'α', 'ά', 'ἀ', 'ἁ', 'ἂ', 'ἃ', 'ἄ', 'ἅ', 'ἆ', 'ἇ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ὰ', 'ά', 'ᾰ', 'ᾱ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'а', 'أ', 'အ', 'ာ', 'ါ', 'ǻ', 'ǎ', 'ª', 'ა', 'अ', 'ا', 'ａ', 'ä'],\n            'b'    => ['б', 'β', 'ب', 'ဗ', 'ბ', 'ｂ'],\n            'c'    => ['ç', 'ć', 'č', 'ĉ', 'ċ', 'ｃ'],\n            'd'    => ['ď', 'ð', 'đ', 'ƌ', 'ȡ', 'ɖ', 'ɗ', 'ᵭ', 'ᶁ', 'ᶑ', 'д', 'δ', 'د', 'ض', 'ဍ', 'ဒ', 'დ', 'ｄ'],\n            'e'    => ['é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ê', 'ế', 'ề', 'ể', 'ễ', 'ệ', 'ë', 'ē', 'ę', 'ě', 'ĕ', 'ė', 'ε', 'έ', 'ἐ', 'ἑ', 'ἒ', 'ἓ', 'ἔ', 'ἕ', 'ὲ', 'έ', 'е', 'ё', 'э', 'є', 'ə', 'ဧ', 'ေ', 'ဲ', 'ე', 'ए', 'إ', 'ئ', 'ｅ'],\n            'f'    => ['ф', 'φ', 'ف', 'ƒ', 'ფ', 'ｆ'],\n            'g'    => ['ĝ', 'ğ', 'ġ', 'ģ', 'г', 'ґ', 'γ', 'ဂ', 'გ', 'گ', 'ｇ'],\n            'h'    => ['ĥ', 'ħ', 'η', 'ή', 'ح', 'ه', 'ဟ', 'ှ', 'ჰ', 'ｈ'],\n            'i'    => ['í', 'ì', 'ỉ', 'ĩ', 'ị', 'î', 'ï', 'ī', 'ĭ', 'į', 'ı', 'ι', 'ί', 'ϊ', 'ΐ', 'ἰ', 'ἱ', 'ἲ', 'ἳ', 'ἴ', 'ἵ', 'ἶ', 'ἷ', 'ὶ', 'ί', 'ῐ', 'ῑ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'і', 'ї', 'и', 'ဣ', 'ိ', 'ီ', 'ည်', 'ǐ', 'ი', 'इ', 'ی', 'ｉ'],\n            'j'    => ['ĵ', 'ј', 'Ј', 'ჯ', 'ج', 'ｊ'],\n            'k'    => ['ķ', 'ĸ', 'к', 'κ', 'Ķ', 'ق', 'ك', 'က', 'კ', 'ქ', 'ک', 'ｋ'],\n            'l'    => ['ł', 'ľ', 'ĺ', 'ļ', 'ŀ', 'л', 'λ', 'ل', 'လ', 'ლ', 'ｌ'],\n            'm'    => ['м', 'μ', 'م', 'မ', 'მ', 'ｍ'],\n            'n'    => ['ñ', 'ń', 'ň', 'ņ', 'ŉ', 'ŋ', 'ν', 'н', 'ن', 'န', 'ნ', 'ｎ'],\n            'o'    => ['ó', 'ò', 'ỏ', 'õ', 'ọ', 'ô', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ơ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ø', 'ō', 'ő', 'ŏ', 'ο', 'ὀ', 'ὁ', 'ὂ', 'ὃ', 'ὄ', 'ὅ', 'ὸ', 'ό', 'о', 'و', 'ို', 'ǒ', 'ǿ', 'º', 'ო', 'ओ', 'ｏ', 'ö'],\n            'p'    => ['п', 'π', 'ပ', 'პ', 'پ', 'ｐ'],\n            'q'    => ['ყ', 'ｑ'],\n            'r'    => ['ŕ', 'ř', 'ŗ', 'р', 'ρ', 'ر', 'რ', 'ｒ'],\n            's'    => ['ś', 'š', 'ş', 'с', 'σ', 'ș', 'ς', 'س', 'ص', 'စ', 'ſ', 'ს', 'ｓ'],\n            't'    => ['ť', 'ţ', 'т', 'τ', 'ț', 'ت', 'ط', 'ဋ', 'တ', 'ŧ', 'თ', 'ტ', 'ｔ'],\n            'u'    => ['ú', 'ù', 'ủ', 'ũ', 'ụ', 'ư', 'ứ', 'ừ', 'ử', 'ữ', 'ự', 'û', 'ū', 'ů', 'ű', 'ŭ', 'ų', 'µ', 'у', 'ဉ', 'ု', 'ူ', 'ǔ', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'უ', 'उ', 'ｕ', 'ў', 'ü'],\n            'v'    => ['в', 'ვ', 'ϐ', 'ｖ'],\n            'w'    => ['ŵ', 'ω', 'ώ', 'ဝ', 'ွ', 'ｗ'],\n            'x'    => ['χ', 'ξ', 'ｘ'],\n            'y'    => ['ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ', 'ÿ', 'ŷ', 'й', 'ы', 'υ', 'ϋ', 'ύ', 'ΰ', 'ي', 'ယ', 'ｙ'],\n            'z'    => ['ź', 'ž', 'ż', 'з', 'ζ', 'ز', 'ဇ', 'ზ', 'ｚ'],\n            'aa'   => ['ع', 'आ', 'آ'],\n            'ae'   => ['æ', 'ǽ'],\n            'ai'   => ['ऐ'],\n            'ch'   => ['ч', 'ჩ', 'ჭ', 'چ'],\n            'dj'   => ['ђ', 'đ'],\n            'dz'   => ['џ', 'ძ'],\n            'ei'   => ['ऍ'],\n            'gh'   => ['غ', 'ღ'],\n            'ii'   => ['ई'],\n            'ij'   => ['ĳ'],\n            'kh'   => ['х', 'خ', 'ხ'],\n            'lj'   => ['љ'],\n            'nj'   => ['њ'],\n            'oe'   => ['ö', 'œ', 'ؤ'],\n            'oi'   => ['ऑ'],\n            'oii'  => ['ऒ'],\n            'ps'   => ['ψ'],\n            'sh'   => ['ш', 'შ', 'ش'],\n            'shch' => ['щ'],\n            'ss'   => ['ß'],\n            'sx'   => ['ŝ'],\n            'th'   => ['þ', 'ϑ', 'θ', 'ث', 'ذ', 'ظ'],\n            'ts'   => ['ц', 'ც', 'წ'],\n            'ue'   => ['ü'],\n            'uu'   => ['ऊ'],\n            'ya'   => ['я'],\n            'yu'   => ['ю'],\n            'zh'   => ['ж', 'ჟ', 'ژ'],\n            '(c)'  => ['©'],\n            'A'    => ['Á', 'À', 'Ả', 'Ã', 'Ạ', 'Ă', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ', 'Â', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Å', 'Ā', 'Ą', 'Α', 'Ά', 'Ἀ', 'Ἁ', 'Ἂ', 'Ἃ', 'Ἄ', 'Ἅ', 'Ἆ', 'Ἇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'Ᾰ', 'Ᾱ', 'Ὰ', 'Ά', 'ᾼ', 'А', 'Ǻ', 'Ǎ', 'Ａ', 'Ä'],\n            'B'    => ['Б', 'Β', 'ब', 'Ｂ'],\n            'C'    => ['Ç', 'Ć', 'Č', 'Ĉ', 'Ċ', 'Ｃ'],\n            'D'    => ['Ď', 'Ð', 'Đ', 'Ɖ', 'Ɗ', 'Ƌ', 'ᴅ', 'ᴆ', 'Д', 'Δ', 'Ｄ'],\n            'E'    => ['É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'Ê', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ë', 'Ē', 'Ę', 'Ě', 'Ĕ', 'Ė', 'Ε', 'Έ', 'Ἐ', 'Ἑ', 'Ἒ', 'Ἓ', 'Ἔ', 'Ἕ', 'Έ', 'Ὲ', 'Е', 'Ё', 'Э', 'Є', 'Ə', 'Ｅ'],\n            'F'    => ['Ф', 'Φ', 'Ｆ'],\n            'G'    => ['Ğ', 'Ġ', 'Ģ', 'Г', 'Ґ', 'Γ', 'Ｇ'],\n            'H'    => ['Η', 'Ή', 'Ħ', 'Ｈ'],\n            'I'    => ['Í', 'Ì', 'Ỉ', 'Ĩ', 'Ị', 'Î', 'Ï', 'Ī', 'Ĭ', 'Į', 'İ', 'Ι', 'Ί', 'Ϊ', 'Ἰ', 'Ἱ', 'Ἳ', 'Ἴ', 'Ἵ', 'Ἶ', 'Ἷ', 'Ῐ', 'Ῑ', 'Ὶ', 'Ί', 'И', 'І', 'Ї', 'Ǐ', 'ϒ', 'Ｉ'],\n            'J'    => ['Ｊ'],\n            'K'    => ['К', 'Κ', 'Ｋ'],\n            'L'    => ['Ĺ', 'Ł', 'Л', 'Λ', 'Ļ', 'Ľ', 'Ŀ', 'ल', 'Ｌ'],\n            'M'    => ['М', 'Μ', 'Ｍ'],\n            'N'    => ['Ń', 'Ñ', 'Ň', 'Ņ', 'Ŋ', 'Н', 'Ν', 'Ｎ'],\n            'O'    => ['Ó', 'Ò', 'Ỏ', 'Õ', 'Ọ', 'Ô', 'Ố', 'Ồ', 'Ổ', 'Ỗ', 'Ộ', 'Ơ', 'Ớ', 'Ờ', 'Ở', 'Ỡ', 'Ợ', 'Ø', 'Ō', 'Ő', 'Ŏ', 'Ο', 'Ό', 'Ὀ', 'Ὁ', 'Ὂ', 'Ὃ', 'Ὄ', 'Ὅ', 'Ὸ', 'Ό', 'О', 'Ө', 'Ǒ', 'Ǿ', 'Ｏ', 'Ö'],\n            'P'    => ['П', 'Π', 'Ｐ'],\n            'Q'    => ['Ｑ'],\n            'R'    => ['Ř', 'Ŕ', 'Р', 'Ρ', 'Ŗ', 'Ｒ'],\n            'S'    => ['Ş', 'Ŝ', 'Ș', 'Š', 'Ś', 'С', 'Σ', 'Ｓ'],\n            'T'    => ['Ť', 'Ţ', 'Ŧ', 'Ț', 'Т', 'Τ', 'Ｔ'],\n            'U'    => ['Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'Ư', 'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Û', 'Ū', 'Ů', 'Ű', 'Ŭ', 'Ų', 'У', 'Ǔ', 'Ǖ', 'Ǘ', 'Ǚ', 'Ǜ', 'Ｕ', 'Ў', 'Ü'],\n            'V'    => ['В', 'Ｖ'],\n            'W'    => ['Ω', 'Ώ', 'Ŵ', 'Ｗ'],\n            'X'    => ['Χ', 'Ξ', 'Ｘ'],\n            'Y'    => ['Ý', 'Ỳ', 'Ỷ', 'Ỹ', 'Ỵ', 'Ÿ', 'Ῠ', 'Ῡ', 'Ὺ', 'Ύ', 'Ы', 'Й', 'Υ', 'Ϋ', 'Ŷ', 'Ｙ'],\n            'Z'    => ['Ź', 'Ž', 'Ż', 'З', 'Ζ', 'Ｚ'],\n            'AE'   => ['Æ', 'Ǽ'],\n            'Ch'   => ['Ч'],\n            'Dj'   => ['Ђ'],\n            'Dz'   => ['Џ'],\n            'Gx'   => ['Ĝ'],\n            'Hx'   => ['Ĥ'],\n            'Ij'   => ['Ĳ'],\n            'Jx'   => ['Ĵ'],\n            'Kh'   => ['Х'],\n            'Lj'   => ['Љ'],\n            'Nj'   => ['Њ'],\n            'Oe'   => ['Œ'],\n            'Ps'   => ['Ψ'],\n            'Sh'   => ['Ш'],\n            'Shch' => ['Щ'],\n            'Ss'   => ['ẞ'],\n            'Th'   => ['Þ', 'Θ'],\n            'Ts'   => ['Ц'],\n            'Ya'   => ['Я'],\n            'Yu'   => ['Ю'],\n            'Zh'   => ['Ж'],\n            ' '    => [\"\\xC2\\xA0\", \"\\xE2\\x80\\x80\", \"\\xE2\\x80\\x81\", \"\\xE2\\x80\\x82\", \"\\xE2\\x80\\x83\", \"\\xE2\\x80\\x84\", \"\\xE2\\x80\\x85\", \"\\xE2\\x80\\x86\", \"\\xE2\\x80\\x87\", \"\\xE2\\x80\\x88\", \"\\xE2\\x80\\x89\", \"\\xE2\\x80\\x8A\", \"\\xE2\\x80\\xAF\", \"\\xE2\\x81\\x9F\", \"\\xE3\\x80\\x80\", \"\\xEF\\xBE\\xA0\"],\n        ];\n    }\n\n    /**\n     * Returns the language specific replacements for the ascii method.\n     *\n     * Note: Adapted from Stringy\\Stringy.\n     *\n     * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt\n     *\n     * @param  string  $language\n     * @return array|null\n     */\n    protected static function languageSpecificCharsArray($language)\n    {\n        static $languageSpecific;\n\n        if (! isset($languageSpecific)) {\n            $languageSpecific = [\n                'bg' => [\n                    ['х', 'Х', 'щ', 'Щ', 'ъ', 'Ъ', 'ь', 'Ь'],\n                    ['h', 'H', 'sht', 'SHT', 'a', 'А', 'y', 'Y'],\n                ],\n                'da' => [\n                    ['æ', 'ø', 'å', 'Æ', 'Ø', 'Å'],\n                    ['ae', 'oe', 'aa', 'Ae', 'Oe', 'Aa'],\n                ],\n                'de' => [\n                    ['ä',  'ö',  'ü',  'Ä',  'Ö',  'Ü'],\n                    ['ae', 'oe', 'ue', 'AE', 'OE', 'UE'],\n                ],\n                'ro' => [\n                    ['ă', 'â', 'î', 'ș', 'ț', 'Ă', 'Â', 'Î', 'Ș', 'Ț'],\n                    ['a', 'a', 'i', 's', 't', 'A', 'A', 'I', 'S', 'T'],\n                ],\n            ];\n        }\n\n        return $languageSpecific[$language] ?? null;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse Illuminate\\Contracts\\Bus\\Dispatcher;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\n\nclass BusFake implements Dispatcher\n{\n    /**\n     * The commands that have been dispatched.\n     *\n     * @var array\n     */\n    protected $commands = [];\n\n    /**\n     * Assert if a job was dispatched based on a truth-test callback.\n     *\n     * @param  string  $command\n     * @param  callable|int|null  $callback\n     * @return void\n     */\n    public function assertDispatched($command, $callback = null)\n    {\n        if (is_numeric($callback)) {\n            return $this->assertDispatchedTimes($command, $callback);\n        }\n\n        PHPUnit::assertTrue(\n            $this->dispatched($command, $callback)->count() > 0,\n            \"The expected [{$command}] job was not dispatched.\"\n        );\n    }\n\n    /**\n     * Assert if a job was pushed a number of times.\n     *\n     * @param  string  $command\n     * @param  int  $times\n     * @return void\n     */\n    protected function assertDispatchedTimes($command, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->dispatched($command)->count()) === $times,\n            \"The expected [{$command}] job was pushed {$count} times instead of {$times} times.\"\n        );\n    }\n\n    /**\n     * Determine if a job was dispatched based on a truth-test callback.\n     *\n     * @param  string  $command\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotDispatched($command, $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->dispatched($command, $callback)->count() === 0,\n            \"The unexpected [{$command}] job was dispatched.\"\n        );\n    }\n\n    /**\n     * Get all of the jobs matching a truth-test callback.\n     *\n     * @param  string  $command\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function dispatched($command, $callback = null)\n    {\n        if (! $this->hasDispatched($command)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        return collect($this->commands[$command])->filter(function ($command) use ($callback) {\n            return $callback($command);\n        });\n    }\n\n    /**\n     * Determine if there are any stored commands for a given class.\n     *\n     * @param  string  $command\n     * @return bool\n     */\n    public function hasDispatched($command)\n    {\n        return isset($this->commands[$command]) && ! empty($this->commands[$command]);\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     */\n    public function dispatch($command)\n    {\n        return $this->dispatchNow($command);\n    }\n\n    /**\n     * Dispatch a command to its appropriate handler in the current process.\n     *\n     * @param  mixed  $command\n     * @param  mixed  $handler\n     * @return mixed\n     */\n    public function dispatchNow($command, $handler = null)\n    {\n        $this->commands[get_class($command)][] = $command;\n    }\n\n    /**\n     * Set the pipes commands should be piped through before dispatching.\n     *\n     * @param  array  $pipes\n     * @return $this\n     */\n    public function pipeThrough(array $pipes)\n    {\n        return $this;\n    }\n\n    /**\n     * Determine if the given command has a handler.\n     *\n     * @param  mixed  $command\n     * @return bool\n     */\n    public function hasCommandHandler($command)\n    {\n        return false;\n    }\n\n    /**\n     * Retrieve the handler for a command.\n     *\n     * @param  mixed  $command\n     * @return mixed\n     */\n    public function getCommandHandler($command)\n    {\n        return false;\n    }\n\n    /**\n     * Map a command to a handler.\n     *\n     * @param  array  $map\n     * @return $this\n     */\n    public function map(array $map)\n    {\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\n\nclass EventFake implements Dispatcher\n{\n    /**\n     * The original event dispatcher.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $dispatcher;\n\n    /**\n     * The event types that should be intercepted instead of dispatched.\n     *\n     * @var array\n     */\n    protected $eventsToFake;\n\n    /**\n     * All of the events that have been intercepted keyed by type.\n     *\n     * @var array\n     */\n    protected $events = [];\n\n    /**\n     * Create a new event fake instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $dispatcher\n     * @param  array|string  $eventsToFake\n     * @return void\n     */\n    public function __construct(Dispatcher $dispatcher, $eventsToFake = [])\n    {\n        $this->dispatcher = $dispatcher;\n\n        $this->eventsToFake = Arr::wrap($eventsToFake);\n    }\n\n    /**\n     * Assert if an event was dispatched based on a truth-test callback.\n     *\n     * @param  string  $event\n     * @param  callable|int|null  $callback\n     * @return void\n     */\n    public function assertDispatched($event, $callback = null)\n    {\n        if (is_int($callback)) {\n            return $this->assertDispatchedTimes($event, $callback);\n        }\n\n        PHPUnit::assertTrue(\n            $this->dispatched($event, $callback)->count() > 0,\n            \"The expected [{$event}] event was not dispatched.\"\n        );\n    }\n\n    /**\n     * Assert if a event was dispatched a number of times.\n     *\n     * @param  string  $event\n     * @param  int  $times\n     * @return void\n     */\n    public function assertDispatchedTimes($event, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->dispatched($event)->count()) === $times,\n            \"The expected [{$event}] event was dispatched {$count} times instead of {$times} times.\"\n        );\n    }\n\n    /**\n     * Determine if an event was dispatched based on a truth-test callback.\n     *\n     * @param  string  $event\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotDispatched($event, $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->dispatched($event, $callback)->count() === 0,\n            \"The unexpected [{$event}] event was dispatched.\"\n        );\n    }\n\n    /**\n     * Get all of the events matching a truth-test callback.\n     *\n     * @param  string  $event\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function dispatched($event, $callback = null)\n    {\n        if (! $this->hasDispatched($event)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        return collect($this->events[$event])->filter(function ($arguments) use ($callback) {\n            return $callback(...$arguments);\n        });\n    }\n\n    /**\n     * Determine if the given event has been dispatched.\n     *\n     * @param  string  $event\n     * @return bool\n     */\n    public function hasDispatched($event)\n    {\n        return isset($this->events[$event]) && ! empty($this->events[$event]);\n    }\n\n    /**\n     * Register an event listener with the dispatcher.\n     *\n     * @param  string|array  $events\n     * @param  mixed  $listener\n     * @return void\n     */\n    public function listen($events, $listener)\n    {\n        $this->dispatcher->listen($events, $listener);\n    }\n\n    /**\n     * Determine if a given event has listeners.\n     *\n     * @param  string  $eventName\n     * @return bool\n     */\n    public function hasListeners($eventName)\n    {\n        return $this->dispatcher->hasListeners($eventName);\n    }\n\n    /**\n     * Register an event and payload to be dispatched later.\n     *\n     * @param  string  $event\n     * @param  array  $payload\n     * @return void\n     */\n    public function push($event, $payload = [])\n    {\n        //\n    }\n\n    /**\n     * Register an event subscriber with the dispatcher.\n     *\n     * @param  object|string  $subscriber\n     * @return void\n     */\n    public function subscribe($subscriber)\n    {\n        $this->dispatcher->subscribe($subscriber);\n    }\n\n    /**\n     * Flush a set of pushed events.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function flush($event)\n    {\n        //\n    }\n\n    /**\n     * Fire an event and call the listeners.\n     *\n     * @param  string|object  $event\n     * @param  mixed  $payload\n     * @param  bool  $halt\n     * @return array|null\n     */\n    public function dispatch($event, $payload = [], $halt = false)\n    {\n        $name = is_object($event) ? get_class($event) : (string) $event;\n\n        if ($this->shouldFakeEvent($name, $payload)) {\n            $this->events[$name][] = func_get_args();\n        } else {\n            return $this->dispatcher->dispatch($event, $payload, $halt);\n        }\n    }\n\n    /**\n     * Determine if an event should be faked or actually dispatched.\n     *\n     * @param  string  $eventName\n     * @param  mixed  $payload\n     * @return bool\n     */\n    protected function shouldFakeEvent($eventName, $payload)\n    {\n        if (empty($this->eventsToFake)) {\n            return true;\n        }\n\n        return collect($this->eventsToFake)\n            ->filter(function ($event) use ($eventName, $payload) {\n                return $event instanceof Closure\n                            ? $event($eventName, $payload)\n                            : $event === $eventName;\n            })\n            ->isNotEmpty();\n    }\n\n    /**\n     * Remove a set of listeners from the dispatcher.\n     *\n     * @param  string  $event\n     * @return void\n     */\n    public function forget($event)\n    {\n        //\n    }\n\n    /**\n     * Forget all of the queued listeners.\n     *\n     * @return void\n     */\n    public function forgetPushed()\n    {\n        //\n    }\n\n    /**\n     * Dispatch an event and call the listeners.\n     *\n     * @param  string|object $event\n     * @param  mixed $payload\n     * @return void\n     */\n    public function until($event, $payload = [])\n    {\n        return $this->dispatch($event, $payload, true);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/MailFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse Illuminate\\Contracts\\Mail\\Mailer;\nuse Illuminate\\Contracts\\Mail\\Mailable;\nuse Illuminate\\Contracts\\Mail\\MailQueue;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\n\nclass MailFake implements Mailer, MailQueue\n{\n    /**\n     * All of the mailables that have been sent.\n     *\n     * @var array\n     */\n    protected $mailables = [];\n\n    /**\n     * All of the mailables that have been queued.\n     *\n     * @var array\n     */\n    protected $queuedMailables = [];\n\n    /**\n     * Assert if a mailable was sent based on a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|int|null  $callback\n     * @return void\n     */\n    public function assertSent($mailable, $callback = null)\n    {\n        if (is_numeric($callback)) {\n            return $this->assertSentTimes($mailable, $callback);\n        }\n\n        $message = \"The expected [{$mailable}] mailable was not sent.\";\n\n        if (count($this->queuedMailables) > 0) {\n            $message .= ' Did you mean to use assertQueued() instead?';\n        }\n\n        PHPUnit::assertTrue(\n            $this->sent($mailable, $callback)->count() > 0,\n            $message\n        );\n    }\n\n    /**\n     * Assert if a mailable was sent a number of times.\n     *\n     * @param  string  $mailable\n     * @param  int  $times\n     * @return void\n     */\n    protected function assertSentTimes($mailable, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->sent($mailable)->count()) === $times,\n            \"The expected [{$mailable}] mailable was sent {$count} times instead of {$times} times.\"\n        );\n    }\n\n    /**\n     * Determine if a mailable was not sent based on a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotSent($mailable, $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->sent($mailable, $callback)->count() === 0,\n            \"The unexpected [{$mailable}] mailable was sent.\"\n        );\n    }\n\n    /**\n     * Assert that no mailables were sent.\n     *\n     * @return void\n     */\n    public function assertNothingSent()\n    {\n        PHPUnit::assertEmpty($this->mailables, 'Mailables were sent unexpectedly.');\n    }\n\n    /**\n     * Assert if a mailable was queued based on a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|int|null  $callback\n     * @return void\n     */\n    public function assertQueued($mailable, $callback = null)\n    {\n        if (is_numeric($callback)) {\n            return $this->assertQueuedTimes($mailable, $callback);\n        }\n\n        PHPUnit::assertTrue(\n            $this->queued($mailable, $callback)->count() > 0,\n            \"The expected [{$mailable}] mailable was not queued.\"\n        );\n    }\n\n    /**\n     * Assert if a mailable was queued a number of times.\n     *\n     * @param  string  $mailable\n     * @param  int  $times\n     * @return void\n     */\n    protected function assertQueuedTimes($mailable, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->queued($mailable)->count()) === $times,\n            \"The expected [{$mailable}] mailable was queued {$count} times instead of {$times} times.\"\n        );\n    }\n\n    /**\n     * Determine if a mailable was not queued based on a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotQueued($mailable, $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->queued($mailable, $callback)->count() === 0,\n            \"The unexpected [{$mailable}] mailable was queued.\"\n        );\n    }\n\n    /**\n     * Assert that no mailables were queued.\n     *\n     * @return void\n     */\n    public function assertNothingQueued()\n    {\n        PHPUnit::assertEmpty($this->queuedMailables, 'Mailables were queued unexpectedly.');\n    }\n\n    /**\n     * Get all of the mailables matching a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function sent($mailable, $callback = null)\n    {\n        if (! $this->hasSent($mailable)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        return $this->mailablesOf($mailable)->filter(function ($mailable) use ($callback) {\n            return $callback($mailable);\n        });\n    }\n\n    /**\n     * Determine if the given mailable has been sent.\n     *\n     * @param  string  $mailable\n     * @return bool\n     */\n    public function hasSent($mailable)\n    {\n        return $this->mailablesOf($mailable)->count() > 0;\n    }\n\n    /**\n     * Get all of the queued mailables matching a truth-test callback.\n     *\n     * @param  string  $mailable\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function queued($mailable, $callback = null)\n    {\n        if (! $this->hasQueued($mailable)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        return $this->queuedMailablesOf($mailable)->filter(function ($mailable) use ($callback) {\n            return $callback($mailable);\n        });\n    }\n\n    /**\n     * Determine if the given mailable has been queued.\n     *\n     * @param  string  $mailable\n     * @return bool\n     */\n    public function hasQueued($mailable)\n    {\n        return $this->queuedMailablesOf($mailable)->count() > 0;\n    }\n\n    /**\n     * Get all of the mailed mailables for a given type.\n     *\n     * @param  string  $type\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function mailablesOf($type)\n    {\n        return collect($this->mailables)->filter(function ($mailable) use ($type) {\n            return $mailable instanceof $type;\n        });\n    }\n\n    /**\n     * Get all of the mailed mailables for a given type.\n     *\n     * @param  string  $type\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function queuedMailablesOf($type)\n    {\n        return collect($this->queuedMailables)->filter(function ($mailable) use ($type) {\n            return $mailable instanceof $type;\n        });\n    }\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function to($users)\n    {\n        return (new PendingMailFake($this))->to($users);\n    }\n\n    /**\n     * Begin the process of mailing a mailable class instance.\n     *\n     * @param  mixed  $users\n     * @return \\Illuminate\\Mail\\PendingMail\n     */\n    public function bcc($users)\n    {\n        return (new PendingMailFake($this))->bcc($users);\n    }\n\n    /**\n     * Send a new message with only a raw text part.\n     *\n     * @param  string  $text\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public function raw($text, $callback)\n    {\n        //\n    }\n\n    /**\n     * Send a new message using a view.\n     *\n     * @param  string|array  $view\n     * @param  array  $data\n     * @param  \\Closure|string  $callback\n     * @return void\n     */\n    public function send($view, array $data = [], $callback = null)\n    {\n        if (! $view instanceof Mailable) {\n            return;\n        }\n\n        if ($view instanceof ShouldQueue) {\n            return $this->queue($view, $data);\n        }\n\n        $this->mailables[] = $view;\n    }\n\n    /**\n     * Queue a new e-mail message for sending.\n     *\n     * @param  string|array  $view\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function queue($view, $queue = null)\n    {\n        if (! $view instanceof Mailable) {\n            return;\n        }\n\n        $this->queuedMailables[] = $view;\n    }\n\n    /**\n     * Queue a new e-mail message for sending after (n) seconds.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string|array|\\Illuminate\\Contracts\\Mail\\Mailable  $view\n     * @param  string  $queue\n     * @return mixed\n     */\n    public function later($delay, $view, $queue = null)\n    {\n        $this->queue($view, $queue);\n    }\n\n    /**\n     * Get the array of failed recipients.\n     *\n     * @return array\n     */\n    public function failures()\n    {\n        return [];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/NotificationFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\nuse Illuminate\\Contracts\\Translation\\HasLocalePreference;\nuse Illuminate\\Contracts\\Notifications\\Factory as NotificationFactory;\nuse Illuminate\\Contracts\\Notifications\\Dispatcher as NotificationDispatcher;\n\nclass NotificationFake implements NotificationFactory, NotificationDispatcher\n{\n    use Macroable;\n\n    /**\n     * All of the notifications that have been sent.\n     *\n     * @var array\n     */\n    protected $notifications = [];\n\n    /**\n     * Locale used when sending notifications.\n     *\n     * @var string|null\n     */\n    public $locale;\n\n    /**\n     * Assert if a notification was sent based on a truth-test callback.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertSentTo($notifiable, $notification, $callback = null)\n    {\n        if (is_array($notifiable) || $notifiable instanceof Collection) {\n            foreach ($notifiable as $singleNotifiable) {\n                $this->assertSentTo($singleNotifiable, $notification, $callback);\n            }\n\n            return;\n        }\n\n        if (is_numeric($callback)) {\n            return $this->assertSentToTimes($notifiable, $notification, $callback);\n        }\n\n        PHPUnit::assertTrue(\n            $this->sent($notifiable, $notification, $callback)->count() > 0,\n            \"The expected [{$notification}] notification was not sent.\"\n        );\n    }\n\n    /**\n     * Assert if a notification was sent a number of times.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @param  int  $times\n     * @return void\n     */\n    public function assertSentToTimes($notifiable, $notification, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->sent($notifiable, $notification)->count()) === $times,\n            \"Expected [{$notification}] to be sent {$times} times, but was sent {$count} times.\"\n        );\n    }\n\n    /**\n     * Determine if a notification was sent based on a truth-test callback.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotSentTo($notifiable, $notification, $callback = null)\n    {\n        if (is_array($notifiable) || $notifiable instanceof Collection) {\n            foreach ($notifiable as $singleNotifiable) {\n                $this->assertNotSentTo($singleNotifiable, $notification, $callback);\n            }\n\n            return;\n        }\n\n        PHPUnit::assertTrue(\n            $this->sent($notifiable, $notification, $callback)->count() === 0,\n            \"The unexpected [{$notification}] notification was sent.\"\n        );\n    }\n\n    /**\n     * Assert that no notifications were sent.\n     *\n     * @return void\n     */\n    public function assertNothingSent()\n    {\n        PHPUnit::assertEmpty($this->notifications, 'Notifications were sent unexpectedly.');\n    }\n\n    /**\n     * Assert the total amount of times a notification was sent.\n     *\n     * @param  int  $expectedCount\n     * @param  string  $notification\n     * @return void\n     */\n    public function assertTimesSent($expectedCount, $notification)\n    {\n        $actualCount = collect($this->notifications)\n            ->flatten(1)\n            ->reduce(function ($count, $sent) use ($notification) {\n                return $count + count($sent[$notification] ?? []);\n            }, 0);\n\n        PHPUnit::assertSame(\n            $expectedCount, $actualCount,\n            \"Expected [{$notification}] to be sent {$expectedCount} times, but was sent {$actualCount} times.\"\n        );\n    }\n\n    /**\n     * Get all of the notifications matching a truth-test callback.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function sent($notifiable, $notification, $callback = null)\n    {\n        if (! $this->hasSent($notifiable, $notification)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        $notifications = collect($this->notificationsFor($notifiable, $notification));\n\n        return $notifications->filter(function ($arguments) use ($callback) {\n            return $callback(...array_values($arguments));\n        })->pluck('notification');\n    }\n\n    /**\n     * Determine if there are more notifications left to inspect.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @return bool\n     */\n    public function hasSent($notifiable, $notification)\n    {\n        return ! empty($this->notificationsFor($notifiable, $notification));\n    }\n\n    /**\n     * Get all of the notifications for a notifiable entity by type.\n     *\n     * @param  mixed  $notifiable\n     * @param  string  $notification\n     * @return array\n     */\n    protected function notificationsFor($notifiable, $notification)\n    {\n        return $this->notifications[get_class($notifiable)][$notifiable->getKey()][$notification] ?? [];\n    }\n\n    /**\n     * Send the given notification to the given notifiable entities.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @return void\n     */\n    public function send($notifiables, $notification)\n    {\n        return $this->sendNow($notifiables, $notification);\n    }\n\n    /**\n     * Send the given notification immediately.\n     *\n     * @param  \\Illuminate\\Support\\Collection|array|mixed  $notifiables\n     * @param  mixed  $notification\n     * @param  array|null  $channels\n     * @return void\n     */\n    public function sendNow($notifiables, $notification, array $channels = null)\n    {\n        if (! $notifiables instanceof Collection && ! is_array($notifiables)) {\n            $notifiables = [$notifiables];\n        }\n\n        foreach ($notifiables as $notifiable) {\n            if (! $notification->id) {\n                $notification->id = Str::uuid()->toString();\n            }\n\n            $this->notifications[get_class($notifiable)][$notifiable->getKey()][get_class($notification)][] = [\n                'notification' => $notification,\n                'channels' => $channels ?: $notification->via($notifiable),\n                'notifiable' => $notifiable,\n                'locale' => $notification->locale ?? $this->locale ?? value(function () use ($notifiable) {\n                    if ($notifiable instanceof HasLocalePreference) {\n                        return $notifiable->preferredLocale();\n                    }\n                }),\n            ];\n        }\n    }\n\n    /**\n     * Get a channel instance by name.\n     *\n     * @param  string|null  $name\n     * @return mixed\n     */\n    public function channel($name = null)\n    {\n        //\n    }\n\n    /**\n     * Set the locale of notifications.\n     *\n     * @param  string  $locale\n     * @return $this\n     */\n    public function locale($locale)\n    {\n        $this->locale = $locale;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/PendingMailFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse Illuminate\\Mail\\PendingMail;\nuse Illuminate\\Contracts\\Mail\\Mailable;\n\nclass PendingMailFake extends PendingMail\n{\n    /**\n     * Create a new instance.\n     *\n     * @param  \\Illuminate\\Support\\Testing\\Fakes\\MailFake  $mailer\n     * @return void\n     */\n    public function __construct($mailer)\n    {\n        $this->mailer = $mailer;\n    }\n\n    /**\n     * Send a new mailable message instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function send(Mailable $mailable)\n    {\n        return $this->sendNow($mailable);\n    }\n\n    /**\n     * Send a mailable message immediately.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function sendNow(Mailable $mailable)\n    {\n        $this->mailer->send($this->fill($mailable));\n    }\n\n    /**\n     * Push the given mailable onto the queue.\n     *\n     * @param  \\Illuminate\\Contracts\\Mail\\Mailable $mailable;\n     * @return mixed\n     */\n    public function queue(Mailable $mailable)\n    {\n        return $this->mailer->queue($this->fill($mailable));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/QueueFake.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Testing\\Fakes;\n\nuse BadMethodCallException;\nuse Illuminate\\Queue\\QueueManager;\nuse Illuminate\\Contracts\\Queue\\Queue;\nuse PHPUnit\\Framework\\Assert as PHPUnit;\n\nclass QueueFake extends QueueManager implements Queue\n{\n    /**\n     * All of the jobs that have been pushed.\n     *\n     * @var array\n     */\n    protected $jobs = [];\n\n    /**\n     * Assert if a job was pushed based on a truth-test callback.\n     *\n     * @param  string  $job\n     * @param  callable|int|null  $callback\n     * @return void\n     */\n    public function assertPushed($job, $callback = null)\n    {\n        if (is_numeric($callback)) {\n            return $this->assertPushedTimes($job, $callback);\n        }\n\n        PHPUnit::assertTrue(\n            $this->pushed($job, $callback)->count() > 0,\n            \"The expected [{$job}] job was not pushed.\"\n        );\n    }\n\n    /**\n     * Assert if a job was pushed a number of times.\n     *\n     * @param  string  $job\n     * @param  int  $times\n     * @return void\n     */\n    protected function assertPushedTimes($job, $times = 1)\n    {\n        PHPUnit::assertTrue(\n            ($count = $this->pushed($job)->count()) === $times,\n            \"The expected [{$job}] job was pushed {$count} times instead of {$times} times.\"\n        );\n    }\n\n    /**\n     * Assert if a job was pushed based on a truth-test callback.\n     *\n     * @param  string  $queue\n     * @param  string  $job\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertPushedOn($queue, $job, $callback = null)\n    {\n        return $this->assertPushed($job, function ($job, $pushedQueue) use ($callback, $queue) {\n            if ($pushedQueue !== $queue) {\n                return false;\n            }\n\n            return $callback ? $callback(...func_get_args()) : true;\n        });\n    }\n\n    /**\n     * Assert if a job was pushed with chained jobs based on a truth-test callback.\n     *\n     * @param  string $job\n     * @param  array $expectedChain\n     * @param  callable|null $callback\n     * @return void\n     */\n    public function assertPushedWithChain($job, $expectedChain = [], $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->pushed($job, $callback)->isNotEmpty(),\n            \"The expected [{$job}] job was not pushed.\"\n        );\n\n        PHPUnit::assertTrue(\n            collect($expectedChain)->isNotEmpty(),\n            'The expected chain can not be empty.'\n        );\n\n        $this->isChainOfObjects($expectedChain)\n                ? $this->assertPushedWithChainOfObjects($job, $expectedChain, $callback)\n                : $this->assertPushedWithChainOfClasses($job, $expectedChain, $callback);\n    }\n\n    /**\n     * Assert if a job was pushed with chained jobs based on a truth-test callback.\n     *\n     * @param  string $job\n     * @param  array $expectedChain\n     * @param  callable|null $callback\n     * @return void\n     */\n    protected function assertPushedWithChainOfObjects($job, $expectedChain, $callback)\n    {\n        $chain = collect($expectedChain)->map(function ($job) {\n            return serialize($job);\n        })->all();\n\n        PHPUnit::assertTrue(\n            $this->pushed($job, $callback)->filter(function ($job) use ($chain) {\n                return $job->chained == $chain;\n            })->isNotEmpty(),\n            'The expected chain was not pushed.'\n        );\n    }\n\n    /**\n     * Assert if a job was pushed with chained jobs based on a truth-test callback.\n     *\n     * @param  string $job\n     * @param  array $expectedChain\n     * @param  callable|null $callback\n     * @return void\n     */\n    protected function assertPushedWithChainOfClasses($job, $expectedChain, $callback)\n    {\n        $matching = $this->pushed($job, $callback)->map->chained->map(function ($chain) {\n            return collect($chain)->map(function ($job) {\n                return get_class(unserialize($job));\n            });\n        })->filter(function ($chain) use ($expectedChain) {\n            return $chain->all() === $expectedChain;\n        });\n\n        PHPUnit::assertTrue(\n            $matching->isNotEmpty(), 'The expected chain was not pushed.'\n        );\n    }\n\n    /**\n     * Determine if the given chain is entirely composed of objects.\n     *\n     * @param  array  $chain\n     * @return bool\n     */\n    protected function isChainOfObjects($chain)\n    {\n        return ! collect($chain)->contains(function ($job) {\n            return ! is_object($job);\n        });\n    }\n\n    /**\n     * Determine if a job was pushed based on a truth-test callback.\n     *\n     * @param  string  $job\n     * @param  callable|null  $callback\n     * @return void\n     */\n    public function assertNotPushed($job, $callback = null)\n    {\n        PHPUnit::assertTrue(\n            $this->pushed($job, $callback)->count() === 0,\n            \"The unexpected [{$job}] job was pushed.\"\n        );\n    }\n\n    /**\n     * Assert that no jobs were pushed.\n     *\n     * @return void\n     */\n    public function assertNothingPushed()\n    {\n        PHPUnit::assertEmpty($this->jobs, 'Jobs were pushed unexpectedly.');\n    }\n\n    /**\n     * Get all of the jobs matching a truth-test callback.\n     *\n     * @param  string  $job\n     * @param  callable|null  $callback\n     * @return \\Illuminate\\Support\\Collection\n     */\n    public function pushed($job, $callback = null)\n    {\n        if (! $this->hasPushed($job)) {\n            return collect();\n        }\n\n        $callback = $callback ?: function () {\n            return true;\n        };\n\n        return collect($this->jobs[$job])->filter(function ($data) use ($callback) {\n            return $callback($data['job'], $data['queue']);\n        })->pluck('job');\n    }\n\n    /**\n     * Determine if there are any stored jobs for a given class.\n     *\n     * @param  string  $job\n     * @return bool\n     */\n    public function hasPushed($job)\n    {\n        return isset($this->jobs[$job]) && ! empty($this->jobs[$job]);\n    }\n\n    /**\n     * Resolve a queue connection instance.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Contracts\\Queue\\Queue\n     */\n    public function connection($value = null)\n    {\n        return $this;\n    }\n\n    /**\n     * Get the size of the queue.\n     *\n     * @param  string|null  $queue\n     * @return int\n     */\n    public function size($queue = null)\n    {\n        return count($this->jobs);\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function push($job, $data = '', $queue = null)\n    {\n        $this->jobs[is_object($job) ? get_class($job) : $job][] = [\n            'job' => $job,\n            'queue' => $queue,\n        ];\n    }\n\n    /**\n     * Push a raw payload onto the queue.\n     *\n     * @param  string  $payload\n     * @param  string|null  $queue\n     * @param  array   $options\n     * @return mixed\n     */\n    public function pushRaw($payload, $queue = null, array $options = [])\n    {\n        //\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @param  string|null  $queue\n     * @return mixed\n     */\n    public function later($delay, $job, $data = '', $queue = null)\n    {\n        return $this->push($job, $data, $queue);\n    }\n\n    /**\n     * Push a new job onto the queue.\n     *\n     * @param  string  $queue\n     * @param  string  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function pushOn($queue, $job, $data = '')\n    {\n        return $this->push($job, $data, $queue);\n    }\n\n    /**\n     * Push a new job onto the queue after a delay.\n     *\n     * @param  string  $queue\n     * @param  \\DateTimeInterface|\\DateInterval|int  $delay\n     * @param  string  $job\n     * @param  mixed   $data\n     * @return mixed\n     */\n    public function laterOn($queue, $delay, $job, $data = '')\n    {\n        return $this->push($job, $data, $queue);\n    }\n\n    /**\n     * Pop the next job off of the queue.\n     *\n     * @param  string|null  $queue\n     * @return \\Illuminate\\Contracts\\Queue\\Job|null\n     */\n    public function pop($queue = null)\n    {\n        //\n    }\n\n    /**\n     * Push an array of jobs onto the queue.\n     *\n     * @param  array $jobs\n     * @param  mixed $data\n     * @param  string|null $queue\n     * @return mixed\n     */\n    public function bulk($jobs, $data = '', $queue = null)\n    {\n        foreach ($jobs as $job) {\n            $this->push($job, $data, $queue);\n        }\n    }\n\n    /**\n     * Get the jobs that have been pushed.\n     *\n     * @return array\n     */\n    public function pushedJobs()\n    {\n        return $this->jobs;\n    }\n\n    /**\n     * Get the connection name for the queue.\n     *\n     * @return string\n     */\n    public function getConnectionName()\n    {\n        //\n    }\n\n    /**\n     * Set the connection name for the queue.\n     *\n     * @param  string $name\n     * @return $this\n     */\n    public function setConnectionName($name)\n    {\n        return $this;\n    }\n\n    /**\n     * Override the QueueManager to prevent circular dependency.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        throw new BadMethodCallException(sprintf(\n            'Call to undefined method %s::%s()', static::class, $method\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Traits;\n\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Contracts\\Container\\Container;\n\ntrait CapsuleManagerTrait\n{\n    /**\n     * The current globally used instance.\n     *\n     * @var object\n     */\n    protected static $instance;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Setup the IoC container instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    protected function setupContainer(Container $container)\n    {\n        $this->container = $container;\n\n        if (! $this->container->bound('config')) {\n            $this->container->instance('config', new Fluent);\n        }\n    }\n\n    /**\n     * Make this capsule instance available globally.\n     *\n     * @return void\n     */\n    public function setAsGlobal()\n    {\n        static::$instance = $this;\n    }\n\n    /**\n     * Get the IoC container instance.\n     *\n     * @return \\Illuminate\\Contracts\\Container\\Container\n     */\n    public function getContainer()\n    {\n        return $this->container;\n    }\n\n    /**\n     * Set the IoC container instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Traits;\n\nuse Error;\nuse BadMethodCallException;\n\ntrait ForwardsCalls\n{\n    /**\n     * Forward a method call to the given object.\n     *\n     * @param  mixed  $object\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    protected function forwardCallTo($object, $method, $parameters)\n    {\n        try {\n            return $object->{$method}(...$parameters);\n        } catch (Error | BadMethodCallException $e) {\n            $pattern = '~^Call to undefined method (?P<class>[^:]+)::(?P<method>[^\\(]+)\\(\\)$~';\n\n            if (! preg_match($pattern, $e->getMessage(), $matches)) {\n                throw $e;\n            }\n\n            if ($matches['class'] != get_class($object) ||\n                $matches['method'] != $method) {\n                throw $e;\n            }\n\n            static::throwBadMethodCallException($method);\n        }\n    }\n\n    /**\n     * Throw a bad method call exception for the given method.\n     *\n     * @param  string  $method\n     * @return void\n     *\n     * @throws \\BadMethodCallException\n     */\n    protected static function throwBadMethodCallException($method)\n    {\n        throw new BadMethodCallException(sprintf(\n            'Call to undefined method %s::%s()', static::class, $method\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Traits;\n\nuse Illuminate\\Container\\Container;\n\ntrait Localizable\n{\n    /**\n     * Run the callback with the given locale.\n     *\n     * @param  string   $locale\n     * @param  \\Closure $callback\n     * @return mixed\n     */\n    public function withLocale($locale, $callback)\n    {\n        if (! $locale) {\n            return $callback();\n        }\n\n        $app = Container::getInstance();\n\n        $original = $app->getLocale();\n\n        try {\n            $app->setLocale($locale);\n\n            return $callback();\n        } finally {\n            $app->setLocale($original);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Traits/Macroable.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Traits;\n\nuse Closure;\nuse ReflectionClass;\nuse ReflectionMethod;\nuse BadMethodCallException;\n\ntrait Macroable\n{\n    /**\n     * The registered string macros.\n     *\n     * @var array\n     */\n    protected static $macros = [];\n\n    /**\n     * Register a custom macro.\n     *\n     * @param  string $name\n     * @param  object|callable  $macro\n     *\n     * @return void\n     */\n    public static function macro($name, $macro)\n    {\n        static::$macros[$name] = $macro;\n    }\n\n    /**\n     * Mix another object into the class.\n     *\n     * @param  object  $mixin\n     * @param  bool  $replace\n     * @return void\n     *\n     * @throws \\ReflectionException\n     */\n    public static function mixin($mixin, $replace = true)\n    {\n        $methods = (new ReflectionClass($mixin))->getMethods(\n            ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED\n        );\n\n        foreach ($methods as $method) {\n            if ($replace || ! static::hasMacro($method->name)) {\n                $method->setAccessible(true);\n                static::macro($method->name, $method->invoke($mixin));\n            }\n        }\n    }\n\n    /**\n     * Checks if macro is registered.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public static function hasMacro($name)\n    {\n        return isset(static::$macros[$name]);\n    }\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        if (! static::hasMacro($method)) {\n            throw new BadMethodCallException(sprintf(\n                'Method %s::%s does not exist.', static::class, $method\n            ));\n        }\n\n        if (static::$macros[$method] instanceof Closure) {\n            return call_user_func_array(Closure::bind(static::$macros[$method], null, static::class), $parameters);\n        }\n\n        return call_user_func_array(static::$macros[$method], $parameters);\n    }\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (! static::hasMacro($method)) {\n            throw new BadMethodCallException(sprintf(\n                'Method %s::%s does not exist.', static::class, $method\n            ));\n        }\n\n        $macro = static::$macros[$method];\n\n        if ($macro instanceof Closure) {\n            return call_user_func_array($macro->bindTo($this, static::class), $parameters);\n        }\n\n        return call_user_func_array($macro, $parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/Traits/Tappable.php",
    "content": "<?php\n\nnamespace Illuminate\\Support\\Traits;\n\ntrait Tappable\n{\n    /**\n     * Call the given Closure with this instance then return the instance.\n     *\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    public function tap($callback = null)\n    {\n        return tap($this, $callback);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php",
    "content": "<?php\n\nnamespace Illuminate\\Support;\n\nuse Countable;\nuse Illuminate\\Contracts\\Support\\MessageBag as MessageBagContract;\n\n/**\n * @mixin \\Illuminate\\Contracts\\Support\\MessageBag\n */\nclass ViewErrorBag implements Countable\n{\n    /**\n     * The array of the view error bags.\n     *\n     * @var array\n     */\n    protected $bags = [];\n\n    /**\n     * Checks if a named MessageBag exists in the bags.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function hasBag($key = 'default')\n    {\n        return isset($this->bags[$key]);\n    }\n\n    /**\n     * Get a MessageBag instance from the bags.\n     *\n     * @param  string  $key\n     * @return \\Illuminate\\Contracts\\Support\\MessageBag\n     */\n    public function getBag($key)\n    {\n        return Arr::get($this->bags, $key) ?: new MessageBag;\n    }\n\n    /**\n     * Get all the bags.\n     *\n     * @return array\n     */\n    public function getBags()\n    {\n        return $this->bags;\n    }\n\n    /**\n     * Add a new MessageBag instance to the bags.\n     *\n     * @param  string  $key\n     * @param  \\Illuminate\\Contracts\\Support\\MessageBag  $bag\n     * @return $this\n     */\n    public function put($key, MessageBagContract $bag)\n    {\n        $this->bags[$key] = $bag;\n\n        return $this;\n    }\n\n    /**\n     * Determine if the default message bag has any messages.\n     *\n     * @return bool\n     */\n    public function any()\n    {\n        return $this->count() > 0;\n    }\n\n    /**\n     * Get the number of messages in the default bag.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return $this->getBag('default')->count();\n    }\n\n    /**\n     * Dynamically call methods on the default bag.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        return $this->getBag('default')->$method(...$parameters);\n    }\n\n    /**\n     * Dynamically access a view error bag.\n     *\n     * @param  string  $key\n     * @return \\Illuminate\\Contracts\\Support\\MessageBag\n     */\n    public function __get($key)\n    {\n        return $this->getBag($key);\n    }\n\n    /**\n     * Dynamically set a view error bag.\n     *\n     * @param  string  $key\n     * @param  \\Illuminate\\Contracts\\Support\\MessageBag  $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this->put($key, $value);\n    }\n\n    /**\n     * Convert the default bag to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return (string) $this->getBag('default');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/composer.json",
    "content": "{\n    \"name\": \"illuminate/support\",\n    \"description\": \"The Illuminate Support package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"ext-mbstring\": \"*\",\n        \"doctrine/inflector\": \"^1.1\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"nesbot/carbon\": \"^1.26.3 || ^2.0\"\n    },\n    \"conflict\": {\n        \"tightenco/collect\": \"<5.5.33\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Support\\\\\": \"\"\n        },\n        \"files\": [\n            \"helpers.php\"\n        ]\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/filesystem\": \"Required to use the composer class (5.8.*).\",\n        \"moontoast/math\": \"Required to use ordered UUIDs (^1.1).\",\n        \"ramsey/uuid\": \"Required to use Str::uuid() (^3.7).\",\n        \"symfony/process\": \"Required to use the composer class (^4.2).\",\n        \"symfony/var-dumper\": \"Required to use the dd function (^4.2).\",\n        \"vlucas/phpdotenv\": \"Required to use the env helper (^3.3).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Support/helpers.php",
    "content": "<?php\n\nuse PhpOption\\Option;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Optional;\nuse Illuminate\\Support\\Collection;\nuse Dotenv\\Environment\\DotenvFactory;\nuse Illuminate\\Contracts\\Support\\Htmlable;\nuse Illuminate\\Support\\HigherOrderTapProxy;\nuse Dotenv\\Environment\\Adapter\\PutenvAdapter;\nuse Dotenv\\Environment\\Adapter\\EnvConstAdapter;\nuse Dotenv\\Environment\\Adapter\\ServerConstAdapter;\n\nif (! function_exists('append_config')) {\n    /**\n     * Assign high numeric IDs to a config item to force appending.\n     *\n     * @param  array  $array\n     * @return array\n     */\n    function append_config(array $array)\n    {\n        $start = 9999;\n\n        foreach ($array as $key => $value) {\n            if (is_numeric($key)) {\n                $start++;\n\n                $array[$start] = Arr::pull($array, $key);\n            }\n        }\n\n        return $array;\n    }\n}\n\nif (! function_exists('array_add')) {\n    /**\n     * Add an element to an array using \"dot\" notation if it doesn't exist.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return array\n     *\n     * @deprecated Arr::add() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_add($array, $key, $value)\n    {\n        return Arr::add($array, $key, $value);\n    }\n}\n\nif (! function_exists('array_collapse')) {\n    /**\n     * Collapse an array of arrays into a single array.\n     *\n     * @param  array  $array\n     * @return array\n     *\n     * @deprecated Arr::collapse() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_collapse($array)\n    {\n        return Arr::collapse($array);\n    }\n}\n\nif (! function_exists('array_divide')) {\n    /**\n     * Divide an array into two arrays. One with keys and the other with values.\n     *\n     * @param  array  $array\n     * @return array\n     *\n     * @deprecated Arr::divide() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_divide($array)\n    {\n        return Arr::divide($array);\n    }\n}\n\nif (! function_exists('array_dot')) {\n    /**\n     * Flatten a multi-dimensional associative array with dots.\n     *\n     * @param  array   $array\n     * @param  string  $prepend\n     * @return array\n     *\n     * @deprecated Arr::dot() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_dot($array, $prepend = '')\n    {\n        return Arr::dot($array, $prepend);\n    }\n}\n\nif (! function_exists('array_except')) {\n    /**\n     * Get all of the given array except for a specified array of keys.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return array\n     *\n     * @deprecated Arr::except() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_except($array, $keys)\n    {\n        return Arr::except($array, $keys);\n    }\n}\n\nif (! function_exists('array_first')) {\n    /**\n     * Return the first element in an array passing a given truth test.\n     *\n     * @param  array  $array\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     *\n     * @deprecated Arr::first() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_first($array, callable $callback = null, $default = null)\n    {\n        return Arr::first($array, $callback, $default);\n    }\n}\n\nif (! function_exists('array_flatten')) {\n    /**\n     * Flatten a multi-dimensional array into a single level.\n     *\n     * @param  array  $array\n     * @param  int  $depth\n     * @return array\n     *\n     * @deprecated Arr::flatten() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_flatten($array, $depth = INF)\n    {\n        return Arr::flatten($array, $depth);\n    }\n}\n\nif (! function_exists('array_forget')) {\n    /**\n     * Remove one or many array items from a given array using \"dot\" notation.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return void\n     *\n     * @deprecated Arr::forget() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_forget(&$array, $keys)\n    {\n        return Arr::forget($array, $keys);\n    }\n}\n\nif (! function_exists('array_get')) {\n    /**\n     * Get an item from an array using \"dot\" notation.\n     *\n     * @param  \\ArrayAccess|array  $array\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     *\n     * @deprecated Arr::get() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_get($array, $key, $default = null)\n    {\n        return Arr::get($array, $key, $default);\n    }\n}\n\nif (! function_exists('array_has')) {\n    /**\n     * Check if an item or items exist in an array using \"dot\" notation.\n     *\n     * @param  \\ArrayAccess|array  $array\n     * @param  string|array  $keys\n     * @return bool\n     *\n     * @deprecated Arr::has() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_has($array, $keys)\n    {\n        return Arr::has($array, $keys);\n    }\n}\n\nif (! function_exists('array_last')) {\n    /**\n     * Return the last element in an array passing a given truth test.\n     *\n     * @param  array  $array\n     * @param  callable|null  $callback\n     * @param  mixed  $default\n     * @return mixed\n     *\n     * @deprecated Arr::last() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_last($array, callable $callback = null, $default = null)\n    {\n        return Arr::last($array, $callback, $default);\n    }\n}\n\nif (! function_exists('array_only')) {\n    /**\n     * Get a subset of the items from the given array.\n     *\n     * @param  array  $array\n     * @param  array|string  $keys\n     * @return array\n     *\n     * @deprecated Arr::only() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_only($array, $keys)\n    {\n        return Arr::only($array, $keys);\n    }\n}\n\nif (! function_exists('array_pluck')) {\n    /**\n     * Pluck an array of values from an array.\n     *\n     * @param  array   $array\n     * @param  string|array  $value\n     * @param  string|array|null  $key\n     * @return array\n     *\n     * @deprecated Arr::pluck() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_pluck($array, $value, $key = null)\n    {\n        return Arr::pluck($array, $value, $key);\n    }\n}\n\nif (! function_exists('array_prepend')) {\n    /**\n     * Push an item onto the beginning of an array.\n     *\n     * @param  array  $array\n     * @param  mixed  $value\n     * @param  mixed  $key\n     * @return array\n     *\n     * @deprecated Arr::prepend() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_prepend($array, $value, $key = null)\n    {\n        return Arr::prepend($array, $value, $key);\n    }\n}\n\nif (! function_exists('array_pull')) {\n    /**\n     * Get a value from the array, and remove it.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     *\n     * @deprecated Arr::pull() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_pull(&$array, $key, $default = null)\n    {\n        return Arr::pull($array, $key, $default);\n    }\n}\n\nif (! function_exists('array_random')) {\n    /**\n     * Get a random value from an array.\n     *\n     * @param  array  $array\n     * @param  int|null  $num\n     * @return mixed\n     *\n     * @deprecated Arr::random() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_random($array, $num = null)\n    {\n        return Arr::random($array, $num);\n    }\n}\n\nif (! function_exists('array_set')) {\n    /**\n     * Set an array item to a given value using \"dot\" notation.\n     *\n     * If no key is given to the method, the entire array will be replaced.\n     *\n     * @param  array   $array\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return array\n     *\n     * @deprecated Arr::set() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_set(&$array, $key, $value)\n    {\n        return Arr::set($array, $key, $value);\n    }\n}\n\nif (! function_exists('array_sort')) {\n    /**\n     * Sort the array by the given callback or attribute name.\n     *\n     * @param  array  $array\n     * @param  callable|string|null  $callback\n     * @return array\n     *\n     * @deprecated Arr::sort() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_sort($array, $callback = null)\n    {\n        return Arr::sort($array, $callback);\n    }\n}\n\nif (! function_exists('array_sort_recursive')) {\n    /**\n     * Recursively sort an array by keys and values.\n     *\n     * @param  array  $array\n     * @return array\n     *\n     * @deprecated Arr::sortRecursive() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_sort_recursive($array)\n    {\n        return Arr::sortRecursive($array);\n    }\n}\n\nif (! function_exists('array_where')) {\n    /**\n     * Filter the array using the given callback.\n     *\n     * @param  array  $array\n     * @param  callable  $callback\n     * @return array\n     *\n     * @deprecated Arr::where() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_where($array, callable $callback)\n    {\n        return Arr::where($array, $callback);\n    }\n}\n\nif (! function_exists('array_wrap')) {\n    /**\n     * If the given value is not an array, wrap it in one.\n     *\n     * @param  mixed  $value\n     * @return array\n     *\n     * @deprecated Arr::wrap() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function array_wrap($value)\n    {\n        return Arr::wrap($value);\n    }\n}\n\nif (! function_exists('blank')) {\n    /**\n     * Determine if the given value is \"blank\".\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    function blank($value)\n    {\n        if (is_null($value)) {\n            return true;\n        }\n\n        if (is_string($value)) {\n            return trim($value) === '';\n        }\n\n        if (is_numeric($value) || is_bool($value)) {\n            return false;\n        }\n\n        if ($value instanceof Countable) {\n            return count($value) === 0;\n        }\n\n        return empty($value);\n    }\n}\n\nif (! function_exists('camel_case')) {\n    /**\n     * Convert a value to camel case.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @deprecated Str::camel() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function camel_case($value)\n    {\n        return Str::camel($value);\n    }\n}\n\nif (! function_exists('class_basename')) {\n    /**\n     * Get the class \"basename\" of the given object / class.\n     *\n     * @param  string|object  $class\n     * @return string\n     */\n    function class_basename($class)\n    {\n        $class = is_object($class) ? get_class($class) : $class;\n\n        return basename(str_replace('\\\\', '/', $class));\n    }\n}\n\nif (! function_exists('class_uses_recursive')) {\n    /**\n     * Returns all traits used by a class, its parent classes and trait of their traits.\n     *\n     * @param  object|string  $class\n     * @return array\n     */\n    function class_uses_recursive($class)\n    {\n        if (is_object($class)) {\n            $class = get_class($class);\n        }\n\n        $results = [];\n\n        foreach (array_reverse(class_parents($class)) + [$class => $class] as $class) {\n            $results += trait_uses_recursive($class);\n        }\n\n        return array_unique($results);\n    }\n}\n\nif (! function_exists('collect')) {\n    /**\n     * Create a collection from the given value.\n     *\n     * @param  mixed  $value\n     * @return \\Illuminate\\Support\\Collection\n     */\n    function collect($value = null)\n    {\n        return new Collection($value);\n    }\n}\n\nif (! function_exists('data_fill')) {\n    /**\n     * Fill in data where it's missing.\n     *\n     * @param  mixed   $target\n     * @param  string|array  $key\n     * @param  mixed  $value\n     * @return mixed\n     */\n    function data_fill(&$target, $key, $value)\n    {\n        return data_set($target, $key, $value, false);\n    }\n}\n\nif (! function_exists('data_get')) {\n    /**\n     * Get an item from an array or object using \"dot\" notation.\n     *\n     * @param  mixed   $target\n     * @param  string|array|int  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    function data_get($target, $key, $default = null)\n    {\n        if (is_null($key)) {\n            return $target;\n        }\n\n        $key = is_array($key) ? $key : explode('.', $key);\n\n        while (! is_null($segment = array_shift($key))) {\n            if ($segment === '*') {\n                if ($target instanceof Collection) {\n                    $target = $target->all();\n                } elseif (! is_array($target)) {\n                    return value($default);\n                }\n\n                $result = [];\n\n                foreach ($target as $item) {\n                    $result[] = data_get($item, $key);\n                }\n\n                return in_array('*', $key) ? Arr::collapse($result) : $result;\n            }\n\n            if (Arr::accessible($target) && Arr::exists($target, $segment)) {\n                $target = $target[$segment];\n            } elseif (is_object($target) && isset($target->{$segment})) {\n                $target = $target->{$segment};\n            } else {\n                return value($default);\n            }\n        }\n\n        return $target;\n    }\n}\n\nif (! function_exists('data_set')) {\n    /**\n     * Set an item on an array or object using dot notation.\n     *\n     * @param  mixed  $target\n     * @param  string|array  $key\n     * @param  mixed  $value\n     * @param  bool  $overwrite\n     * @return mixed\n     */\n    function data_set(&$target, $key, $value, $overwrite = true)\n    {\n        $segments = is_array($key) ? $key : explode('.', $key);\n\n        if (($segment = array_shift($segments)) === '*') {\n            if (! Arr::accessible($target)) {\n                $target = [];\n            }\n\n            if ($segments) {\n                foreach ($target as &$inner) {\n                    data_set($inner, $segments, $value, $overwrite);\n                }\n            } elseif ($overwrite) {\n                foreach ($target as &$inner) {\n                    $inner = $value;\n                }\n            }\n        } elseif (Arr::accessible($target)) {\n            if ($segments) {\n                if (! Arr::exists($target, $segment)) {\n                    $target[$segment] = [];\n                }\n\n                data_set($target[$segment], $segments, $value, $overwrite);\n            } elseif ($overwrite || ! Arr::exists($target, $segment)) {\n                $target[$segment] = $value;\n            }\n        } elseif (is_object($target)) {\n            if ($segments) {\n                if (! isset($target->{$segment})) {\n                    $target->{$segment} = [];\n                }\n\n                data_set($target->{$segment}, $segments, $value, $overwrite);\n            } elseif ($overwrite || ! isset($target->{$segment})) {\n                $target->{$segment} = $value;\n            }\n        } else {\n            $target = [];\n\n            if ($segments) {\n                data_set($target[$segment], $segments, $value, $overwrite);\n            } elseif ($overwrite) {\n                $target[$segment] = $value;\n            }\n        }\n\n        return $target;\n    }\n}\n\nif (! function_exists('e')) {\n    /**\n     * Encode HTML special characters in a string.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\Htmlable|string  $value\n     * @param  bool  $doubleEncode\n     * @return string\n     */\n    function e($value, $doubleEncode = true)\n    {\n        if ($value instanceof Htmlable) {\n            return $value->toHtml();\n        }\n\n        return htmlspecialchars($value, ENT_QUOTES, 'UTF-8', $doubleEncode);\n    }\n}\n\nif (! function_exists('ends_with')) {\n    /**\n     * Determine if a given string ends with a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     *\n     * @deprecated Str::endsWith() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function ends_with($haystack, $needles)\n    {\n        return Str::endsWith($haystack, $needles);\n    }\n}\n\nif (! function_exists('env')) {\n    /**\n     * Gets the value of an environment variable.\n     *\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    function env($key, $default = null)\n    {\n        static $variables;\n\n        if ($variables === null) {\n            $variables = (new DotenvFactory([new EnvConstAdapter, new PutenvAdapter, new ServerConstAdapter]))->createImmutable();\n        }\n\n        return Option::fromValue($variables->get($key))\n            ->map(function ($value) {\n                switch (strtolower($value)) {\n                    case 'true':\n                    case '(true)':\n                        return true;\n                    case 'false':\n                    case '(false)':\n                        return false;\n                    case 'empty':\n                    case '(empty)':\n                        return '';\n                    case 'null':\n                    case '(null)':\n                        return;\n                }\n\n                if (preg_match('/\\A([\\'\"])(.*)\\1\\z/', $value, $matches)) {\n                    return $matches[2];\n                }\n\n                return $value;\n            })\n            ->getOrCall(function () use ($default) {\n                return value($default);\n            });\n    }\n}\n\nif (! function_exists('filled')) {\n    /**\n     * Determine if a value is \"filled\".\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    function filled($value)\n    {\n        return ! blank($value);\n    }\n}\n\nif (! function_exists('head')) {\n    /**\n     * Get the first element of an array. Useful for method chaining.\n     *\n     * @param  array  $array\n     * @return mixed\n     */\n    function head($array)\n    {\n        return reset($array);\n    }\n}\n\nif (! function_exists('kebab_case')) {\n    /**\n     * Convert a string to kebab case.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @deprecated Str::kebab() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function kebab_case($value)\n    {\n        return Str::kebab($value);\n    }\n}\n\nif (! function_exists('last')) {\n    /**\n     * Get the last element from an array.\n     *\n     * @param  array  $array\n     * @return mixed\n     */\n    function last($array)\n    {\n        return end($array);\n    }\n}\n\nif (! function_exists('object_get')) {\n    /**\n     * Get an item from an object using \"dot\" notation.\n     *\n     * @param  object  $object\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    function object_get($object, $key, $default = null)\n    {\n        if (is_null($key) || trim($key) == '') {\n            return $object;\n        }\n\n        foreach (explode('.', $key) as $segment) {\n            if (! is_object($object) || ! isset($object->{$segment})) {\n                return value($default);\n            }\n\n            $object = $object->{$segment};\n        }\n\n        return $object;\n    }\n}\n\nif (! function_exists('optional')) {\n    /**\n     * Provide access to optional objects.\n     *\n     * @param  mixed  $value\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    function optional($value = null, callable $callback = null)\n    {\n        if (is_null($callback)) {\n            return new Optional($value);\n        } elseif (! is_null($value)) {\n            return $callback($value);\n        }\n    }\n}\n\nif (! function_exists('preg_replace_array')) {\n    /**\n     * Replace a given pattern with each value in the array in sequentially.\n     *\n     * @param  string  $pattern\n     * @param  array   $replacements\n     * @param  string  $subject\n     * @return string\n     */\n    function preg_replace_array($pattern, array $replacements, $subject)\n    {\n        return preg_replace_callback($pattern, function () use (&$replacements) {\n            foreach ($replacements as $key => $value) {\n                return array_shift($replacements);\n            }\n        }, $subject);\n    }\n}\n\nif (! function_exists('retry')) {\n    /**\n     * Retry an operation a given number of times.\n     *\n     * @param  int  $times\n     * @param  callable  $callback\n     * @param  int  $sleep\n     * @param  callable  $when\n     * @return mixed\n     *\n     * @throws \\Exception\n     */\n    function retry($times, callable $callback, $sleep = 0, $when = null)\n    {\n        $attempts = 0;\n        $times--;\n\n        beginning:\n        $attempts++;\n\n        try {\n            return $callback($attempts);\n        } catch (Exception $e) {\n            if (! $times || ($when && ! $when($e))) {\n                throw $e;\n            }\n\n            $times--;\n\n            if ($sleep) {\n                usleep($sleep * 1000);\n            }\n\n            goto beginning;\n        }\n    }\n}\n\nif (! function_exists('snake_case')) {\n    /**\n     * Convert a string to snake case.\n     *\n     * @param  string  $value\n     * @param  string  $delimiter\n     * @return string\n     *\n     * @deprecated Str::snake() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function snake_case($value, $delimiter = '_')\n    {\n        return Str::snake($value, $delimiter);\n    }\n}\n\nif (! function_exists('starts_with')) {\n    /**\n     * Determine if a given string starts with a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     *\n     * @deprecated Str::startsWith() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function starts_with($haystack, $needles)\n    {\n        return Str::startsWith($haystack, $needles);\n    }\n}\n\nif (! function_exists('str_after')) {\n    /**\n     * Return the remainder of a string after a given value.\n     *\n     * @param  string  $subject\n     * @param  string  $search\n     * @return string\n     *\n     * @deprecated Str::after() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_after($subject, $search)\n    {\n        return Str::after($subject, $search);\n    }\n}\n\nif (! function_exists('str_before')) {\n    /**\n     * Get the portion of a string before a given value.\n     *\n     * @param  string  $subject\n     * @param  string  $search\n     * @return string\n     *\n     * @deprecated Str::before() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_before($subject, $search)\n    {\n        return Str::before($subject, $search);\n    }\n}\n\nif (! function_exists('str_contains')) {\n    /**\n     * Determine if a given string contains a given substring.\n     *\n     * @param  string  $haystack\n     * @param  string|array  $needles\n     * @return bool\n     *\n     * @deprecated Str::contains() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_contains($haystack, $needles)\n    {\n        return Str::contains($haystack, $needles);\n    }\n}\n\nif (! function_exists('str_finish')) {\n    /**\n     * Cap a string with a single instance of a given value.\n     *\n     * @param  string  $value\n     * @param  string  $cap\n     * @return string\n     *\n     * @deprecated Str::finish() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_finish($value, $cap)\n    {\n        return Str::finish($value, $cap);\n    }\n}\n\nif (! function_exists('str_is')) {\n    /**\n     * Determine if a given string matches a given pattern.\n     *\n     * @param  string|array  $pattern\n     * @param  string  $value\n     * @return bool\n     *\n     * @deprecated Str::is() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_is($pattern, $value)\n    {\n        return Str::is($pattern, $value);\n    }\n}\n\nif (! function_exists('str_limit')) {\n    /**\n     * Limit the number of characters in a string.\n     *\n     * @param  string  $value\n     * @param  int     $limit\n     * @param  string  $end\n     * @return string\n     *\n     * @deprecated Str::limit() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_limit($value, $limit = 100, $end = '...')\n    {\n        return Str::limit($value, $limit, $end);\n    }\n}\n\nif (! function_exists('str_plural')) {\n    /**\n     * Get the plural form of an English word.\n     *\n     * @param  string  $value\n     * @param  int     $count\n     * @return string\n     *\n     * @deprecated Str::plural() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_plural($value, $count = 2)\n    {\n        return Str::plural($value, $count);\n    }\n}\n\nif (! function_exists('str_random')) {\n    /**\n     * Generate a more truly \"random\" alpha-numeric string.\n     *\n     * @param  int  $length\n     * @return string\n     *\n     * @throws \\RuntimeException\n     *\n     * @deprecated Str::random() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_random($length = 16)\n    {\n        return Str::random($length);\n    }\n}\n\nif (! function_exists('str_replace_array')) {\n    /**\n     * Replace a given value in the string sequentially with an array.\n     *\n     * @param  string  $search\n     * @param  array   $replace\n     * @param  string  $subject\n     * @return string\n     *\n     * @deprecated Str::replaceArray() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_replace_array($search, array $replace, $subject)\n    {\n        return Str::replaceArray($search, $replace, $subject);\n    }\n}\n\nif (! function_exists('str_replace_first')) {\n    /**\n     * Replace the first occurrence of a given value in the string.\n     *\n     * @param  string  $search\n     * @param  string  $replace\n     * @param  string  $subject\n     * @return string\n     *\n     * @deprecated Str::replaceFirst() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_replace_first($search, $replace, $subject)\n    {\n        return Str::replaceFirst($search, $replace, $subject);\n    }\n}\n\nif (! function_exists('str_replace_last')) {\n    /**\n     * Replace the last occurrence of a given value in the string.\n     *\n     * @param  string  $search\n     * @param  string  $replace\n     * @param  string  $subject\n     * @return string\n     *\n     * @deprecated Str::replaceLast() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_replace_last($search, $replace, $subject)\n    {\n        return Str::replaceLast($search, $replace, $subject);\n    }\n}\n\nif (! function_exists('str_singular')) {\n    /**\n     * Get the singular form of an English word.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @deprecated Str::singular() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_singular($value)\n    {\n        return Str::singular($value);\n    }\n}\n\nif (! function_exists('str_slug')) {\n    /**\n     * Generate a URL friendly \"slug\" from a given string.\n     *\n     * @param  string  $title\n     * @param  string  $separator\n     * @param  string  $language\n     * @return string\n     *\n     * @deprecated Str::slug() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_slug($title, $separator = '-', $language = 'en')\n    {\n        return Str::slug($title, $separator, $language);\n    }\n}\n\nif (! function_exists('str_start')) {\n    /**\n     * Begin a string with a single instance of a given value.\n     *\n     * @param  string  $value\n     * @param  string  $prefix\n     * @return string\n     *\n     * @deprecated Str::start() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function str_start($value, $prefix)\n    {\n        return Str::start($value, $prefix);\n    }\n}\n\nif (! function_exists('studly_case')) {\n    /**\n     * Convert a value to studly caps case.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @deprecated Str::studly() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function studly_case($value)\n    {\n        return Str::studly($value);\n    }\n}\n\nif (! function_exists('tap')) {\n    /**\n     * Call the given Closure with the given value then return the value.\n     *\n     * @param  mixed  $value\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    function tap($value, $callback = null)\n    {\n        if (is_null($callback)) {\n            return new HigherOrderTapProxy($value);\n        }\n\n        $callback($value);\n\n        return $value;\n    }\n}\n\nif (! function_exists('throw_if')) {\n    /**\n     * Throw the given exception if the given condition is true.\n     *\n     * @param  mixed  $condition\n     * @param  \\Throwable|string  $exception\n     * @param  array  ...$parameters\n     * @return mixed\n     *\n     * @throws \\Throwable\n     */\n    function throw_if($condition, $exception, ...$parameters)\n    {\n        if ($condition) {\n            throw (is_string($exception) ? new $exception(...$parameters) : $exception);\n        }\n\n        return $condition;\n    }\n}\n\nif (! function_exists('throw_unless')) {\n    /**\n     * Throw the given exception unless the given condition is true.\n     *\n     * @param  mixed  $condition\n     * @param  \\Throwable|string  $exception\n     * @param  array  ...$parameters\n     * @return mixed\n     * @throws \\Throwable\n     */\n    function throw_unless($condition, $exception, ...$parameters)\n    {\n        if (! $condition) {\n            throw (is_string($exception) ? new $exception(...$parameters) : $exception);\n        }\n\n        return $condition;\n    }\n}\n\nif (! function_exists('title_case')) {\n    /**\n     * Convert a value to title case.\n     *\n     * @param  string  $value\n     * @return string\n     *\n     * @deprecated Str::title() should be used directly instead. Will be removed in Laravel 5.9.\n     */\n    function title_case($value)\n    {\n        return Str::title($value);\n    }\n}\n\nif (! function_exists('trait_uses_recursive')) {\n    /**\n     * Returns all traits used by a trait and its traits.\n     *\n     * @param  string  $trait\n     * @return array\n     */\n    function trait_uses_recursive($trait)\n    {\n        $traits = class_uses($trait);\n\n        foreach ($traits as $trait) {\n            $traits += trait_uses_recursive($trait);\n        }\n\n        return $traits;\n    }\n}\n\nif (! function_exists('transform')) {\n    /**\n     * Transform the given value if it is present.\n     *\n     * @param  mixed  $value\n     * @param  callable  $callback\n     * @param  mixed  $default\n     * @return mixed|null\n     */\n    function transform($value, callable $callback, $default = null)\n    {\n        if (filled($value)) {\n            return $callback($value);\n        }\n\n        if (is_callable($default)) {\n            return $default($value);\n        }\n\n        return $default;\n    }\n}\n\nif (! function_exists('value')) {\n    /**\n     * Return the default value of the given value.\n     *\n     * @param  mixed  $value\n     * @return mixed\n     */\n    function value($value)\n    {\n        return $value instanceof Closure ? $value() : $value;\n    }\n}\n\nif (! function_exists('windows_os')) {\n    /**\n     * Determine whether the current environment is Windows based.\n     *\n     * @return bool\n     */\n    function windows_os()\n    {\n        return strtolower(substr(PHP_OS, 0, 3)) === 'win';\n    }\n}\n\nif (! function_exists('with')) {\n    /**\n     * Return the given value, optionally passed through the given callback.\n     *\n     * @param  mixed  $value\n     * @param  callable|null  $callback\n     * @return mixed\n     */\n    function with($value, callable $callback = null)\n    {\n        return is_null($callback) ? $value : $callback($value);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/ArrayLoader.php",
    "content": "<?php\n\nnamespace Illuminate\\Translation;\n\nuse Illuminate\\Contracts\\Translation\\Loader;\n\nclass ArrayLoader implements Loader\n{\n    /**\n     * All of the translation messages.\n     *\n     * @var array\n     */\n    protected $messages = [];\n\n    /**\n     * Load the messages for the given locale.\n     *\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  string|null  $namespace\n     * @return array\n     */\n    public function load($locale, $group, $namespace = null)\n    {\n        $namespace = $namespace ?: '*';\n\n        return $this->messages[$namespace][$locale][$group] ?? [];\n    }\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string  $hint\n     * @return void\n     */\n    public function addNamespace($namespace, $hint)\n    {\n        //\n    }\n\n    /**\n     * Add a new JSON path to the loader.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function addJsonPath($path)\n    {\n        //\n    }\n\n    /**\n     * Add messages to the loader.\n     *\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  array  $messages\n     * @param  string|null  $namespace\n     * @return $this\n     */\n    public function addMessages($locale, $group, array $messages, $namespace = null)\n    {\n        $namespace = $namespace ?: '*';\n\n        $this->messages[$namespace][$locale][$group] = $messages;\n\n        return $this;\n    }\n\n    /**\n     * Get an array of all the registered namespaces.\n     *\n     * @return array\n     */\n    public function namespaces()\n    {\n        return [];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php",
    "content": "<?php\n\nnamespace Illuminate\\Translation;\n\nuse RuntimeException;\nuse Illuminate\\Filesystem\\Filesystem;\nuse Illuminate\\Contracts\\Translation\\Loader;\n\nclass FileLoader implements Loader\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The default path for the loader.\n     *\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * All of the registered paths to JSON translation files.\n     *\n     * @var array\n     */\n    protected $jsonPaths = [];\n\n    /**\n     * All of the namespace hints.\n     *\n     * @var array\n     */\n    protected $hints = [];\n\n    /**\n     * Create a new file loader instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $path\n     * @return void\n     */\n    public function __construct(Filesystem $files, $path)\n    {\n        $this->path = $path;\n        $this->files = $files;\n    }\n\n    /**\n     * Load the messages for the given locale.\n     *\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  string|null  $namespace\n     * @return array\n     */\n    public function load($locale, $group, $namespace = null)\n    {\n        if ($group === '*' && $namespace === '*') {\n            return $this->loadJsonPaths($locale);\n        }\n\n        if (is_null($namespace) || $namespace === '*') {\n            return $this->loadPath($this->path, $locale, $group);\n        }\n\n        return $this->loadNamespaced($locale, $group, $namespace);\n    }\n\n    /**\n     * Load a namespaced translation group.\n     *\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  string  $namespace\n     * @return array\n     */\n    protected function loadNamespaced($locale, $group, $namespace)\n    {\n        if (isset($this->hints[$namespace])) {\n            $lines = $this->loadPath($this->hints[$namespace], $locale, $group);\n\n            return $this->loadNamespaceOverrides($lines, $locale, $group, $namespace);\n        }\n\n        return [];\n    }\n\n    /**\n     * Load a local namespaced translation group for overrides.\n     *\n     * @param  array  $lines\n     * @param  string  $locale\n     * @param  string  $group\n     * @param  string  $namespace\n     * @return array\n     */\n    protected function loadNamespaceOverrides(array $lines, $locale, $group, $namespace)\n    {\n        $file = \"{$this->path}/vendor/{$namespace}/{$locale}/{$group}.php\";\n\n        if ($this->files->exists($file)) {\n            return array_replace_recursive($lines, $this->files->getRequire($file));\n        }\n\n        return $lines;\n    }\n\n    /**\n     * Load a locale from a given path.\n     *\n     * @param  string  $path\n     * @param  string  $locale\n     * @param  string  $group\n     * @return array\n     */\n    protected function loadPath($path, $locale, $group)\n    {\n        if ($this->files->exists($full = \"{$path}/{$locale}/{$group}.php\")) {\n            return $this->files->getRequire($full);\n        }\n\n        return [];\n    }\n\n    /**\n     * Load a locale from the given JSON file path.\n     *\n     * @param  string  $locale\n     * @return array\n     *\n     * @throws \\RuntimeException\n     */\n    protected function loadJsonPaths($locale)\n    {\n        return collect(array_merge($this->jsonPaths, [$this->path]))\n            ->reduce(function ($output, $path) use ($locale) {\n                if ($this->files->exists($full = \"{$path}/{$locale}.json\")) {\n                    $decoded = json_decode($this->files->get($full), true);\n\n                    if (is_null($decoded) || json_last_error() !== JSON_ERROR_NONE) {\n                        throw new RuntimeException(\"Translation file [{$full}] contains an invalid JSON structure.\");\n                    }\n\n                    $output = array_merge($output, $decoded);\n                }\n\n                return $output;\n            }, []);\n    }\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string  $hint\n     * @return void\n     */\n    public function addNamespace($namespace, $hint)\n    {\n        $this->hints[$namespace] = $hint;\n    }\n\n    /**\n     * Add a new JSON path to the loader.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function addJsonPath($path)\n    {\n        $this->jsonPaths[] = $path;\n    }\n\n    /**\n     * Get an array of all the registered namespaces.\n     *\n     * @return array\n     */\n    public function namespaces()\n    {\n        return $this->hints;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/MessageSelector.php",
    "content": "<?php\n\nnamespace Illuminate\\Translation;\n\nuse Illuminate\\Support\\Str;\n\nclass MessageSelector\n{\n    /**\n     * Select a proper translation string based on the given number.\n     *\n     * @param  string  $line\n     * @param  int  $number\n     * @param  string  $locale\n     * @return mixed\n     */\n    public function choose($line, $number, $locale)\n    {\n        $segments = explode('|', $line);\n\n        if (($value = $this->extract($segments, $number)) !== null) {\n            return trim($value);\n        }\n\n        $segments = $this->stripConditions($segments);\n\n        $pluralIndex = $this->getPluralIndex($locale, $number);\n\n        if (count($segments) === 1 || ! isset($segments[$pluralIndex])) {\n            return $segments[0];\n        }\n\n        return $segments[$pluralIndex];\n    }\n\n    /**\n     * Extract a translation string using inline conditions.\n     *\n     * @param  array  $segments\n     * @param  int  $number\n     * @return mixed\n     */\n    private function extract($segments, $number)\n    {\n        foreach ($segments as $part) {\n            if (! is_null($line = $this->extractFromString($part, $number))) {\n                return $line;\n            }\n        }\n    }\n\n    /**\n     * Get the translation string if the condition matches.\n     *\n     * @param  string  $part\n     * @param  int  $number\n     * @return mixed\n     */\n    private function extractFromString($part, $number)\n    {\n        preg_match('/^[\\{\\[]([^\\[\\]\\{\\}]*)[\\}\\]](.*)/s', $part, $matches);\n\n        if (count($matches) !== 3) {\n            return;\n        }\n\n        $condition = $matches[1];\n\n        $value = $matches[2];\n\n        if (Str::contains($condition, ',')) {\n            [$from, $to] = explode(',', $condition, 2);\n\n            if ($to === '*' && $number >= $from) {\n                return $value;\n            } elseif ($from === '*' && $number <= $to) {\n                return $value;\n            } elseif ($number >= $from && $number <= $to) {\n                return $value;\n            }\n        }\n\n        return $condition == $number ? $value : null;\n    }\n\n    /**\n     * Strip the inline conditions from each segment, just leaving the text.\n     *\n     * @param  array  $segments\n     * @return array\n     */\n    private function stripConditions($segments)\n    {\n        return collect($segments)->map(function ($part) {\n            return preg_replace('/^[\\{\\[]([^\\[\\]\\{\\}]*)[\\}\\]]/', '', $part);\n        })->all();\n    }\n\n    /**\n     * Get the index to use for pluralization.\n     *\n     * The plural rules are derived from code of the Zend Framework (2010-09-25), which\n     * is subject to the new BSD license (http://framework.zend.com/license/new-bsd)\n     * Copyright (c) 2005-2010 - Zend Technologies USA Inc. (http://www.zend.com)\n     *\n     * @param  string  $locale\n     * @param  int  $number\n     * @return int\n     */\n    public function getPluralIndex($locale, $number)\n    {\n        switch ($locale) {\n            case 'az':\n            case 'az_AZ':\n            case 'bo':\n            case 'bo_CN':\n            case 'bo_IN':\n            case 'dz':\n            case 'dz_BT':\n            case 'id':\n            case 'id_ID':\n            case 'ja':\n            case 'ja_JP':\n            case 'jv':\n            case 'ka':\n            case 'ka_GE':\n            case 'km':\n            case 'km_KH':\n            case 'kn':\n            case 'kn_IN':\n            case 'ko':\n            case 'ko_KR':\n            case 'ms':\n            case 'ms_MY':\n            case 'th':\n            case 'th_TH':\n            case 'tr':\n            case 'tr_CY':\n            case 'tr_TR':\n            case 'vi':\n            case 'vi_VN':\n            case 'zh':\n            case 'zh_CN':\n            case 'zh_HK':\n            case 'zh_SG':\n            case 'zh_TW':\n                return 0;\n            case 'af':\n            case 'af_ZA':\n            case 'bn':\n            case 'bn_BD':\n            case 'bn_IN':\n            case 'bg':\n            case 'bg_BG':\n            case 'ca':\n            case 'ca_AD':\n            case 'ca_ES':\n            case 'ca_FR':\n            case 'ca_IT':\n            case 'da':\n            case 'da_DK':\n            case 'de':\n            case 'de_AT':\n            case 'de_BE':\n            case 'de_CH':\n            case 'de_DE':\n            case 'de_LI':\n            case 'de_LU':\n            case 'el':\n            case 'el_CY':\n            case 'el_GR':\n            case 'en':\n            case 'en_AG':\n            case 'en_AU':\n            case 'en_BW':\n            case 'en_CA':\n            case 'en_DK':\n            case 'en_GB':\n            case 'en_HK':\n            case 'en_IE':\n            case 'en_IN':\n            case 'en_NG':\n            case 'en_NZ':\n            case 'en_PH':\n            case 'en_SG':\n            case 'en_US':\n            case 'en_ZA':\n            case 'en_ZM':\n            case 'en_ZW':\n            case 'eo':\n            case 'eo_US':\n            case 'es':\n            case 'es_AR':\n            case 'es_BO':\n            case 'es_CL':\n            case 'es_CO':\n            case 'es_CR':\n            case 'es_CU':\n            case 'es_DO':\n            case 'es_EC':\n            case 'es_ES':\n            case 'es_GT':\n            case 'es_HN':\n            case 'es_MX':\n            case 'es_NI':\n            case 'es_PA':\n            case 'es_PE':\n            case 'es_PR':\n            case 'es_PY':\n            case 'es_SV':\n            case 'es_US':\n            case 'es_UY':\n            case 'es_VE':\n            case 'et':\n            case 'et_EE':\n            case 'eu':\n            case 'eu_ES':\n            case 'eu_FR':\n            case 'fa':\n            case 'fa_IR':\n            case 'fi':\n            case 'fi_FI':\n            case 'fo':\n            case 'fo_FO':\n            case 'fur':\n            case 'fur_IT':\n            case 'fy':\n            case 'fy_DE':\n            case 'fy_NL':\n            case 'gl':\n            case 'gl_ES':\n            case 'gu':\n            case 'gu_IN':\n            case 'ha':\n            case 'ha_NG':\n            case 'he':\n            case 'he_IL':\n            case 'hu':\n            case 'hu_HU':\n            case 'is':\n            case 'is_IS':\n            case 'it':\n            case 'it_CH':\n            case 'it_IT':\n            case 'ku':\n            case 'ku_TR':\n            case 'lb':\n            case 'lb_LU':\n            case 'ml':\n            case 'ml_IN':\n            case 'mn':\n            case 'mn_MN':\n            case 'mr':\n            case 'mr_IN':\n            case 'nah':\n            case 'nb':\n            case 'nb_NO':\n            case 'ne':\n            case 'ne_NP':\n            case 'nl':\n            case 'nl_AW':\n            case 'nl_BE':\n            case 'nl_NL':\n            case 'nn':\n            case 'nn_NO':\n            case 'no':\n            case 'om':\n            case 'om_ET':\n            case 'om_KE':\n            case 'or':\n            case 'or_IN':\n            case 'pa':\n            case 'pa_IN':\n            case 'pa_PK':\n            case 'pap':\n            case 'pap_AN':\n            case 'pap_AW':\n            case 'pap_CW':\n            case 'ps':\n            case 'ps_AF':\n            case 'pt':\n            case 'pt_BR':\n            case 'pt_PT':\n            case 'so':\n            case 'so_DJ':\n            case 'so_ET':\n            case 'so_KE':\n            case 'so_SO':\n            case 'sq':\n            case 'sq_AL':\n            case 'sq_MK':\n            case 'sv':\n            case 'sv_FI':\n            case 'sv_SE':\n            case 'sw':\n            case 'sw_KE':\n            case 'sw_TZ':\n            case 'ta':\n            case 'ta_IN':\n            case 'ta_LK':\n            case 'te':\n            case 'te_IN':\n            case 'tk':\n            case 'tk_TM':\n            case 'ur':\n            case 'ur_IN':\n            case 'ur_PK':\n            case 'zu':\n            case 'zu_ZA':\n                return ($number == 1) ? 0 : 1;\n            case 'am':\n            case 'am_ET':\n            case 'bh':\n            case 'fil':\n            case 'fil_PH':\n            case 'fr':\n            case 'fr_BE':\n            case 'fr_CA':\n            case 'fr_CH':\n            case 'fr_FR':\n            case 'fr_LU':\n            case 'gun':\n            case 'hi':\n            case 'hi_IN':\n            case 'hy':\n            case 'hy_AM':\n            case 'ln':\n            case 'ln_CD':\n            case 'mg':\n            case 'mg_MG':\n            case 'nso':\n            case 'nso_ZA':\n            case 'ti':\n            case 'ti_ER':\n            case 'ti_ET':\n            case 'wa':\n            case 'wa_BE':\n            case 'xbr':\n                return (($number == 0) || ($number == 1)) ? 0 : 1;\n            case 'be':\n            case 'be_BY':\n            case 'bs':\n            case 'bs_BA':\n            case 'hr':\n            case 'hr_HR':\n            case 'ru':\n            case 'ru_RU':\n            case 'ru_UA':\n            case 'sr':\n            case 'sr_ME':\n            case 'sr_RS':\n            case 'uk':\n            case 'uk_UA':\n                return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n            case 'cs':\n            case 'cs_CZ':\n            case 'sk':\n            case 'sk_SK':\n                return ($number == 1) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);\n            case 'ga':\n            case 'ga_IE':\n                return ($number == 1) ? 0 : (($number == 2) ? 1 : 2);\n            case 'lt':\n            case 'lt_LT':\n                return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n            case 'sl':\n            case 'sl_SI':\n                return ($number % 100 == 1) ? 0 : (($number % 100 == 2) ? 1 : ((($number % 100 == 3) || ($number % 100 == 4)) ? 2 : 3));\n            case 'mk':\n            case 'mk_MK':\n                return ($number % 10 == 1) ? 0 : 1;\n            case 'mt':\n            case 'mt_MT':\n                return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));\n            case 'lv':\n            case 'lv_LV':\n                return ($number == 0) ? 0 : ((($number % 10 == 1) && ($number % 100 != 11)) ? 1 : 2);\n            case 'pl':\n            case 'pl_PL':\n                return ($number == 1) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2);\n            case 'cy':\n            case 'cy_GB':\n                return ($number == 1) ? 0 : (($number == 2) ? 1 : ((($number == 8) || ($number == 11)) ? 2 : 3));\n            case 'ro':\n            case 'ro_RO':\n                return ($number == 1) ? 0 : ((($number == 0) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);\n            case 'ar':\n            case 'ar_AE':\n            case 'ar_BH':\n            case 'ar_DZ':\n            case 'ar_EG':\n            case 'ar_IN':\n            case 'ar_IQ':\n            case 'ar_JO':\n            case 'ar_KW':\n            case 'ar_LB':\n            case 'ar_LY':\n            case 'ar_MA':\n            case 'ar_OM':\n            case 'ar_QA':\n            case 'ar_SA':\n            case 'ar_SD':\n            case 'ar_SS':\n            case 'ar_SY':\n            case 'ar_TN':\n            case 'ar_YE':\n                return ($number == 0) ? 0 : (($number == 1) ? 1 : (($number == 2) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5))));\n            default:\n                return 0;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Translation;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass TranslationServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerLoader();\n\n        $this->app->singleton('translator', function ($app) {\n            $loader = $app['translation.loader'];\n\n            // When registering the translator component, we'll need to set the default\n            // locale as well as the fallback locale. So, we'll grab the application\n            // configuration so we can easily get both of these values from there.\n            $locale = $app['config']['app.locale'];\n\n            $trans = new Translator($loader, $locale);\n\n            $trans->setFallback($app['config']['app.fallback_locale']);\n\n            return $trans;\n        });\n    }\n\n    /**\n     * Register the translation line loader.\n     *\n     * @return void\n     */\n    protected function registerLoader()\n    {\n        $this->app->singleton('translation.loader', function ($app) {\n            return new FileLoader($app['files'], $app['path.lang']);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['translator', 'translation.loader'];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/Translator.php",
    "content": "<?php\n\nnamespace Illuminate\\Translation;\n\nuse Countable;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Collection;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Translation\\Loader;\nuse Illuminate\\Support\\NamespacedItemResolver;\nuse Illuminate\\Contracts\\Translation\\Translator as TranslatorContract;\n\nclass Translator extends NamespacedItemResolver implements TranslatorContract\n{\n    use Macroable;\n\n    /**\n     * The loader implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Translation\\Loader\n     */\n    protected $loader;\n\n    /**\n     * The default locale being used by the translator.\n     *\n     * @var string\n     */\n    protected $locale;\n\n    /**\n     * The fallback locale used by the translator.\n     *\n     * @var string\n     */\n    protected $fallback;\n\n    /**\n     * The array of loaded translation groups.\n     *\n     * @var array\n     */\n    protected $loaded = [];\n\n    /**\n     * The message selector.\n     *\n     * @var \\Illuminate\\Translation\\MessageSelector\n     */\n    protected $selector;\n\n    /**\n     * Create a new translator instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Translation\\Loader  $loader\n     * @param  string  $locale\n     * @return void\n     */\n    public function __construct(Loader $loader, $locale)\n    {\n        $this->loader = $loader;\n        $this->locale = $locale;\n    }\n\n    /**\n     * Determine if a translation exists for a given locale.\n     *\n     * @param  string  $key\n     * @param  string|null  $locale\n     * @return bool\n     */\n    public function hasForLocale($key, $locale = null)\n    {\n        return $this->has($key, $locale, false);\n    }\n\n    /**\n     * Determine if a translation exists.\n     *\n     * @param  string  $key\n     * @param  string|null  $locale\n     * @param  bool  $fallback\n     * @return bool\n     */\n    public function has($key, $locale = null, $fallback = true)\n    {\n        return $this->get($key, [], $locale, $fallback) !== $key;\n    }\n\n    /**\n     * Get the translation for a given key.\n     *\n     * @param  string  $key\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return string|array\n     */\n    public function trans($key, array $replace = [], $locale = null)\n    {\n        return $this->get($key, $replace, $locale);\n    }\n\n    /**\n     * Get the translation for the given key.\n     *\n     * @param  string  $key\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @param  bool  $fallback\n     * @return string|array\n     */\n    public function get($key, array $replace = [], $locale = null, $fallback = true)\n    {\n        [$namespace, $group, $item] = $this->parseKey($key);\n\n        // Here we will get the locale that should be used for the language line. If one\n        // was not passed, we will use the default locales which was given to us when\n        // the translator was instantiated. Then, we can load the lines and return.\n        $locales = $fallback ? $this->localeArray($locale)\n                             : [$locale ?: $this->locale];\n\n        foreach ($locales as $locale) {\n            if (! is_null($line = $this->getLine(\n                $namespace, $group, $locale, $item, $replace\n            ))) {\n                break;\n            }\n        }\n\n        // If the line doesn't exist, we will return back the key which was requested as\n        // that will be quick to spot in the UI if language keys are wrong or missing\n        // from the application's language files. Otherwise we can return the line.\n        return $line ?? $key;\n    }\n\n    /**\n     * Get the translation for a given key from the JSON translation files.\n     *\n     * @param  string  $key\n     * @param  array  $replace\n     * @param  string|null  $locale\n     * @return string|array\n     */\n    public function getFromJson($key, array $replace = [], $locale = null)\n    {\n        $locale = $locale ?: $this->locale;\n\n        // For JSON translations, there is only one file per locale, so we will simply load\n        // that file and then we will be ready to check the array for the key. These are\n        // only one level deep so we do not need to do any fancy searching through it.\n        $this->load('*', '*', $locale);\n\n        $line = $this->loaded['*']['*'][$locale][$key] ?? null;\n\n        // If we can't find a translation for the JSON key, we will attempt to translate it\n        // using the typical translation file. This way developers can always just use a\n        // helper such as __ instead of having to pick between trans or __ with views.\n        if (! isset($line)) {\n            $fallback = $this->get($key, $replace, $locale);\n\n            if ($fallback !== $key) {\n                return $fallback;\n            }\n        }\n\n        return $this->makeReplacements($line ?: $key, $replace);\n    }\n\n    /**\n     * Get a translation according to an integer value.\n     *\n     * @param  string  $key\n     * @param  int|array|\\Countable  $number\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return string\n     */\n    public function transChoice($key, $number, array $replace = [], $locale = null)\n    {\n        return $this->choice($key, $number, $replace, $locale);\n    }\n\n    /**\n     * Get a translation according to an integer value.\n     *\n     * @param  string  $key\n     * @param  int|array|\\Countable  $number\n     * @param  array   $replace\n     * @param  string|null  $locale\n     * @return string\n     */\n    public function choice($key, $number, array $replace = [], $locale = null)\n    {\n        $line = $this->get(\n            $key, $replace, $locale = $this->localeForChoice($locale)\n        );\n\n        // If the given \"number\" is actually an array or countable we will simply count the\n        // number of elements in an instance. This allows developers to pass an array of\n        // items without having to count it on their end first which gives bad syntax.\n        if (is_array($number) || $number instanceof Countable) {\n            $number = count($number);\n        }\n\n        $replace['count'] = $number;\n\n        return $this->makeReplacements(\n            $this->getSelector()->choose($line, $number, $locale), $replace\n        );\n    }\n\n    /**\n     * Get the proper locale for a choice operation.\n     *\n     * @param  string|null  $locale\n     * @return string\n     */\n    protected function localeForChoice($locale)\n    {\n        return $locale ?: $this->locale ?: $this->fallback;\n    }\n\n    /**\n     * Retrieve a language line out the loaded array.\n     *\n     * @param  string  $namespace\n     * @param  string  $group\n     * @param  string  $locale\n     * @param  string  $item\n     * @param  array   $replace\n     * @return string|array|null\n     */\n    protected function getLine($namespace, $group, $locale, $item, array $replace)\n    {\n        $this->load($namespace, $group, $locale);\n\n        $line = Arr::get($this->loaded[$namespace][$group][$locale], $item);\n\n        if (is_string($line)) {\n            return $this->makeReplacements($line, $replace);\n        } elseif (is_array($line) && count($line) > 0) {\n            foreach ($line as $key => $value) {\n                $line[$key] = $this->makeReplacements($value, $replace);\n            }\n\n            return $line;\n        }\n    }\n\n    /**\n     * Make the place-holder replacements on a line.\n     *\n     * @param  string  $line\n     * @param  array   $replace\n     * @return string\n     */\n    protected function makeReplacements($line, array $replace)\n    {\n        if (empty($replace)) {\n            return $line;\n        }\n\n        $replace = $this->sortReplacements($replace);\n\n        foreach ($replace as $key => $value) {\n            $line = str_replace(\n                [':'.$key, ':'.Str::upper($key), ':'.Str::ucfirst($key)],\n                [$value, Str::upper($value), Str::ucfirst($value)],\n                $line\n            );\n        }\n\n        return $line;\n    }\n\n    /**\n     * Sort the replacements array.\n     *\n     * @param  array  $replace\n     * @return array\n     */\n    protected function sortReplacements(array $replace)\n    {\n        return (new Collection($replace))->sortBy(function ($value, $key) {\n            return mb_strlen($key) * -1;\n        })->all();\n    }\n\n    /**\n     * Add translation lines to the given locale.\n     *\n     * @param  array  $lines\n     * @param  string  $locale\n     * @param  string  $namespace\n     * @return void\n     */\n    public function addLines(array $lines, $locale, $namespace = '*')\n    {\n        foreach ($lines as $key => $value) {\n            [$group, $item] = explode('.', $key, 2);\n\n            Arr::set($this->loaded, \"$namespace.$group.$locale.$item\", $value);\n        }\n    }\n\n    /**\n     * Load the specified language group.\n     *\n     * @param  string  $namespace\n     * @param  string  $group\n     * @param  string  $locale\n     * @return void\n     */\n    public function load($namespace, $group, $locale)\n    {\n        if ($this->isLoaded($namespace, $group, $locale)) {\n            return;\n        }\n\n        // The loader is responsible for returning the array of language lines for the\n        // given namespace, group, and locale. We'll set the lines in this array of\n        // lines that have already been loaded so that we can easily access them.\n        $lines = $this->loader->load($locale, $group, $namespace);\n\n        $this->loaded[$namespace][$group][$locale] = $lines;\n    }\n\n    /**\n     * Determine if the given group has been loaded.\n     *\n     * @param  string  $namespace\n     * @param  string  $group\n     * @param  string  $locale\n     * @return bool\n     */\n    protected function isLoaded($namespace, $group, $locale)\n    {\n        return isset($this->loaded[$namespace][$group][$locale]);\n    }\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string  $hint\n     * @return void\n     */\n    public function addNamespace($namespace, $hint)\n    {\n        $this->loader->addNamespace($namespace, $hint);\n    }\n\n    /**\n     * Add a new JSON path to the loader.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function addJsonPath($path)\n    {\n        $this->loader->addJsonPath($path);\n    }\n\n    /**\n     * Parse a key into namespace, group, and item.\n     *\n     * @param  string  $key\n     * @return array\n     */\n    public function parseKey($key)\n    {\n        $segments = parent::parseKey($key);\n\n        if (is_null($segments[0])) {\n            $segments[0] = '*';\n        }\n\n        return $segments;\n    }\n\n    /**\n     * Get the array of locales to be checked.\n     *\n     * @param  string|null  $locale\n     * @return array\n     */\n    protected function localeArray($locale)\n    {\n        return array_filter([$locale ?: $this->locale, $this->fallback]);\n    }\n\n    /**\n     * Get the message selector instance.\n     *\n     * @return \\Illuminate\\Translation\\MessageSelector\n     */\n    public function getSelector()\n    {\n        if (! isset($this->selector)) {\n            $this->selector = new MessageSelector;\n        }\n\n        return $this->selector;\n    }\n\n    /**\n     * Set the message selector instance.\n     *\n     * @param  \\Illuminate\\Translation\\MessageSelector  $selector\n     * @return void\n     */\n    public function setSelector(MessageSelector $selector)\n    {\n        $this->selector = $selector;\n    }\n\n    /**\n     * Get the language line loader implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Translation\\Loader\n     */\n    public function getLoader()\n    {\n        return $this->loader;\n    }\n\n    /**\n     * Get the default locale being used.\n     *\n     * @return string\n     */\n    public function locale()\n    {\n        return $this->getLocale();\n    }\n\n    /**\n     * Get the default locale being used.\n     *\n     * @return string\n     */\n    public function getLocale()\n    {\n        return $this->locale;\n    }\n\n    /**\n     * Set the default locale.\n     *\n     * @param  string  $locale\n     * @return void\n     */\n    public function setLocale($locale)\n    {\n        $this->locale = $locale;\n    }\n\n    /**\n     * Get the fallback locale being used.\n     *\n     * @return string\n     */\n    public function getFallback()\n    {\n        return $this->fallback;\n    }\n\n    /**\n     * Set the fallback locale being used.\n     *\n     * @param  string  $fallback\n     * @return void\n     */\n    public function setFallback($fallback)\n    {\n        $this->fallback = $fallback;\n    }\n\n    /**\n     * Set the loaded translation groups.\n     *\n     * @param  array  $loaded\n     * @return void\n     */\n    public function setLoaded(array $loaded)\n    {\n        $this->loaded = $loaded;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Translation/composer.json",
    "content": "{\n    \"name\": \"illuminate/translation\",\n    \"description\": \"The Illuminate Translation package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/filesystem\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Translation\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ClosureValidationRule.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Illuminate\\Contracts\\Validation\\Rule as RuleContract;\n\nclass ClosureValidationRule implements RuleContract\n{\n    /**\n     * The callback that validates the attribute.\n     *\n     * @var \\Closure\n     */\n    public $callback;\n\n    /**\n     * Indicates if the validation callback failed.\n     *\n     * @var bool\n     */\n    public $failed = false;\n\n    /**\n     * The validation error message.\n     *\n     * @var string|null\n     */\n    public $message;\n\n    /**\n     * Create a new Closure based validation rule.\n     *\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    public function __construct($callback)\n    {\n        $this->callback = $callback;\n    }\n\n    /**\n     * Determine if the validation rule passes.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function passes($attribute, $value)\n    {\n        $this->failed = false;\n\n        $this->callback->__invoke($attribute, $value, function ($message) {\n            $this->failed = true;\n\n            $this->message = $message;\n        });\n\n        return ! $this->failed;\n    }\n\n    /**\n     * Get the validation error message.\n     *\n     * @return string\n     */\n    public function message()\n    {\n        return $this->message;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Concerns/FormatsMessages.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Concerns;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile;\n\ntrait FormatsMessages\n{\n    use ReplacesAttributes;\n\n    /**\n     * Get the validation message for an attribute and rule.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @return string\n     */\n    protected function getMessage($attribute, $rule)\n    {\n        $inlineMessage = $this->getInlineMessage($attribute, $rule);\n\n        // First we will retrieve the custom message for the validation rule if one\n        // exists. If a custom validation message is being used we'll return the\n        // custom message, otherwise we'll keep searching for a valid message.\n        if (! is_null($inlineMessage)) {\n            return $inlineMessage;\n        }\n\n        $lowerRule = Str::snake($rule);\n\n        $customMessage = $this->getCustomMessageFromTranslator(\n            $customKey = \"validation.custom.{$attribute}.{$lowerRule}\"\n        );\n\n        // First we check for a custom defined validation message for the attribute\n        // and rule. This allows the developer to specify specific messages for\n        // only some attributes and rules that need to get specially formed.\n        if ($customMessage !== $customKey) {\n            return $customMessage;\n        }\n\n        // If the rule being validated is a \"size\" rule, we will need to gather the\n        // specific error message for the type of attribute being validated such\n        // as a number, file or string which all have different message types.\n        elseif (in_array($rule, $this->sizeRules)) {\n            return $this->getSizeMessage($attribute, $rule);\n        }\n\n        // Finally, if no developer specified messages have been set, and no other\n        // special messages apply for this rule, we will just pull the default\n        // messages out of the translator service for this validation rule.\n        $key = \"validation.{$lowerRule}\";\n\n        if ($key != ($value = $this->translator->trans($key))) {\n            return $value;\n        }\n\n        return $this->getFromLocalArray(\n            $attribute, $lowerRule, $this->fallbackMessages\n        ) ?: $key;\n    }\n\n    /**\n     * Get the proper inline error message for standard and size rules.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @return string|null\n     */\n    protected function getInlineMessage($attribute, $rule)\n    {\n        $inlineEntry = $this->getFromLocalArray($attribute, Str::snake($rule));\n\n        return is_array($inlineEntry) && in_array($rule, $this->sizeRules)\n                    ? $inlineEntry[$this->getAttributeType($attribute)]\n                    : $inlineEntry;\n    }\n\n    /**\n     * Get the inline message for a rule if it exists.\n     *\n     * @param  string  $attribute\n     * @param  string  $lowerRule\n     * @param  array|null  $source\n     * @return string|null\n     */\n    protected function getFromLocalArray($attribute, $lowerRule, $source = null)\n    {\n        $source = $source ?: $this->customMessages;\n\n        $keys = [\"{$attribute}.{$lowerRule}\", $lowerRule];\n\n        // First we will check for a custom message for an attribute specific rule\n        // message for the fields, then we will check for a general custom line\n        // that is not attribute specific. If we find either we'll return it.\n        foreach ($keys as $key) {\n            foreach (array_keys($source) as $sourceKey) {\n                if (Str::is($sourceKey, $key)) {\n                    return $source[$sourceKey];\n                }\n            }\n        }\n    }\n\n    /**\n     * Get the custom error message from translator.\n     *\n     * @param  string  $key\n     * @return string\n     */\n    protected function getCustomMessageFromTranslator($key)\n    {\n        if (($message = $this->translator->trans($key)) !== $key) {\n            return $message;\n        }\n\n        // If an exact match was not found for the key, we will collapse all of these\n        // messages and loop through them and try to find a wildcard match for the\n        // given key. Otherwise, we will simply return the key's value back out.\n        $shortKey = preg_replace(\n            '/^validation\\.custom\\./', '', $key\n        );\n\n        return $this->getWildcardCustomMessages(Arr::dot(\n            (array) $this->translator->trans('validation.custom')\n        ), $shortKey, $key);\n    }\n\n    /**\n     * Check the given messages for a wildcard key.\n     *\n     * @param  array  $messages\n     * @param  string  $search\n     * @param  string  $default\n     * @return string\n     */\n    protected function getWildcardCustomMessages($messages, $search, $default)\n    {\n        foreach ($messages as $key => $message) {\n            if ($search === $key || (Str::contains($key, ['*']) && Str::is($key, $search))) {\n                return $message;\n            }\n        }\n\n        return $default;\n    }\n\n    /**\n     * Get the proper error message for an attribute and size rule.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @return string\n     */\n    protected function getSizeMessage($attribute, $rule)\n    {\n        $lowerRule = Str::snake($rule);\n\n        // There are three different types of size validations. The attribute may be\n        // either a number, file, or string so we will check a few things to know\n        // which type of value it is and return the correct line for that type.\n        $type = $this->getAttributeType($attribute);\n\n        $key = \"validation.{$lowerRule}.{$type}\";\n\n        return $this->translator->trans($key);\n    }\n\n    /**\n     * Get the data type of the given attribute.\n     *\n     * @param  string  $attribute\n     * @return string\n     */\n    protected function getAttributeType($attribute)\n    {\n        // We assume that the attributes present in the file array are files so that\n        // means that if the attribute does not have a numeric rule and the files\n        // list doesn't have it we'll just consider it a string by elimination.\n        if ($this->hasRule($attribute, $this->numericRules)) {\n            return 'numeric';\n        } elseif ($this->hasRule($attribute, ['Array'])) {\n            return 'array';\n        } elseif ($this->getValue($attribute) instanceof UploadedFile) {\n            return 'file';\n        }\n\n        return 'string';\n    }\n\n    /**\n     * Replace all error message place-holders with actual values.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    public function makeReplacements($message, $attribute, $rule, $parameters)\n    {\n        $message = $this->replaceAttributePlaceholder(\n            $message, $this->getDisplayableAttribute($attribute)\n        );\n\n        $message = $this->replaceInputPlaceholder($message, $attribute);\n\n        if (isset($this->replacers[Str::snake($rule)])) {\n            return $this->callReplacer($message, $attribute, Str::snake($rule), $parameters, $this);\n        } elseif (method_exists($this, $replacer = \"replace{$rule}\")) {\n            return $this->$replacer($message, $attribute, $rule, $parameters);\n        }\n\n        return $message;\n    }\n\n    /**\n     * Get the displayable name of the attribute.\n     *\n     * @param  string  $attribute\n     * @return string\n     */\n    public function getDisplayableAttribute($attribute)\n    {\n        $primaryAttribute = $this->getPrimaryAttribute($attribute);\n\n        $expectedAttributes = $attribute != $primaryAttribute\n                    ? [$attribute, $primaryAttribute] : [$attribute];\n\n        foreach ($expectedAttributes as $name) {\n            // The developer may dynamically specify the array of custom attributes on this\n            // validator instance. If the attribute exists in this array it is used over\n            // the other ways of pulling the attribute name for this given attributes.\n            if (isset($this->customAttributes[$name])) {\n                return $this->customAttributes[$name];\n            }\n\n            // We allow for a developer to specify language lines for any attribute in this\n            // application, which allows flexibility for displaying a unique displayable\n            // version of the attribute name instead of the name used in an HTTP POST.\n            if ($line = $this->getAttributeFromTranslations($name)) {\n                return $line;\n            }\n        }\n\n        // When no language line has been specified for the attribute and it is also\n        // an implicit attribute we will display the raw attribute's name and not\n        // modify it with any of these replacements before we display the name.\n        if (isset($this->implicitAttributes[$primaryAttribute])) {\n            return $attribute;\n        }\n\n        return str_replace('_', ' ', Str::snake($attribute));\n    }\n\n    /**\n     * Get the given attribute from the attribute translations.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function getAttributeFromTranslations($name)\n    {\n        return Arr::get($this->translator->trans('validation.attributes'), $name);\n    }\n\n    /**\n     * Replace the :attribute placeholder in the given message.\n     *\n     * @param  string  $message\n     * @param  string  $value\n     * @return string\n     */\n    protected function replaceAttributePlaceholder($message, $value)\n    {\n        return str_replace(\n            [':attribute', ':ATTRIBUTE', ':Attribute'],\n            [$value, Str::upper($value), Str::ucfirst($value)],\n            $message\n        );\n    }\n\n    /**\n     * Replace the :input placeholder in the given message.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @return string\n     */\n    protected function replaceInputPlaceholder($message, $attribute)\n    {\n        $actualValue = $this->getValue($attribute);\n\n        if (is_scalar($actualValue) || is_null($actualValue)) {\n            $message = str_replace(':input', $actualValue, $message);\n        }\n\n        return $message;\n    }\n\n    /**\n     * Get the displayable name of the value.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return string\n     */\n    public function getDisplayableValue($attribute, $value)\n    {\n        if (isset($this->customValues[$attribute][$value])) {\n            return $this->customValues[$attribute][$value];\n        }\n\n        $key = \"validation.values.{$attribute}.{$value}\";\n\n        if (($line = $this->translator->trans($key)) !== $key) {\n            return $line;\n        }\n\n        return $value;\n    }\n\n    /**\n     * Transform an array of attributes to their displayable form.\n     *\n     * @param  array  $values\n     * @return array\n     */\n    protected function getAttributeList(array $values)\n    {\n        $attributes = [];\n\n        // For each attribute in the list we will simply get its displayable form as\n        // this is convenient when replacing lists of parameters like some of the\n        // replacement functions do when formatting out the validation message.\n        foreach ($values as $key => $value) {\n            $attributes[$key] = $this->getDisplayableAttribute($value);\n        }\n\n        return $attributes;\n    }\n\n    /**\n     * Call a custom validator message replacer.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @param  \\Illuminate\\Validation\\Validator  $validator\n     * @return string|null\n     */\n    protected function callReplacer($message, $attribute, $rule, $parameters, $validator)\n    {\n        $callback = $this->replacers[$rule];\n\n        if ($callback instanceof Closure) {\n            return call_user_func_array($callback, func_get_args());\n        } elseif (is_string($callback)) {\n            return $this->callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator);\n        }\n    }\n\n    /**\n     * Call a class based validator message replacer.\n     *\n     * @param  string  $callback\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @param  \\Illuminate\\Validation\\Validator  $validator\n     * @return string\n     */\n    protected function callClassBasedReplacer($callback, $message, $attribute, $rule, $parameters, $validator)\n    {\n        [$class, $method] = Str::parseCallback($callback, 'replace');\n\n        return call_user_func_array([$this->container->make($class), $method], array_slice(func_get_args(), 1));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Concerns/ReplacesAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Concerns;\n\nuse Illuminate\\Support\\Arr;\n\ntrait ReplacesAttributes\n{\n    /**\n     * Replace all place-holders for the between rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceBetween($message, $attribute, $rule, $parameters)\n    {\n        return str_replace([':min', ':max'], $parameters, $message);\n    }\n\n    /**\n     * Replace all place-holders for the date_format rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDateFormat($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':format', $parameters[0], $message);\n    }\n\n    /**\n     * Replace all place-holders for the different rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDifferent($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceSame($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the digits rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDigits($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':digits', $parameters[0], $message);\n    }\n\n    /**\n     * Replace all place-holders for the digits (between) rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDigitsBetween($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceBetween($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the min rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceMin($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':min', $parameters[0], $message);\n    }\n\n    /**\n     * Replace all place-holders for the max rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceMax($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':max', $parameters[0], $message);\n    }\n\n    /**\n     * Replace all place-holders for the in rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceIn($message, $attribute, $rule, $parameters)\n    {\n        foreach ($parameters as &$parameter) {\n            $parameter = $this->getDisplayableValue($attribute, $parameter);\n        }\n\n        return str_replace(':values', implode(', ', $parameters), $message);\n    }\n\n    /**\n     * Replace all place-holders for the not_in rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceNotIn($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceIn($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the in_array rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceInArray($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message);\n    }\n\n    /**\n     * Replace all place-holders for the mimetypes rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceMimetypes($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':values', implode(', ', $parameters), $message);\n    }\n\n    /**\n     * Replace all place-holders for the mimes rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceMimes($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':values', implode(', ', $parameters), $message);\n    }\n\n    /**\n     * Replace all place-holders for the required_with rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredWith($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':values', implode(' / ', $this->getAttributeList($parameters)), $message);\n    }\n\n    /**\n     * Replace all place-holders for the required_with_all rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredWithAll($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the required_without rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredWithout($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the required_without_all rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredWithoutAll($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceRequiredWith($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the size rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceSize($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':size', $parameters[0], $message);\n    }\n\n    /**\n     * Replace all place-holders for the gt rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceGt($message, $attribute, $rule, $parameters)\n    {\n        if (is_null($value = $this->getValue($parameters[0]))) {\n            return str_replace(':value', $parameters[0], $message);\n        }\n\n        return str_replace(':value', $this->getSize($attribute, $value), $message);\n    }\n\n    /**\n     * Replace all place-holders for the lt rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceLt($message, $attribute, $rule, $parameters)\n    {\n        if (is_null($value = $this->getValue($parameters[0]))) {\n            return str_replace(':value', $parameters[0], $message);\n        }\n\n        return str_replace(':value', $this->getSize($attribute, $value), $message);\n    }\n\n    /**\n     * Replace all place-holders for the gte rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceGte($message, $attribute, $rule, $parameters)\n    {\n        if (is_null($value = $this->getValue($parameters[0]))) {\n            return str_replace(':value', $parameters[0], $message);\n        }\n\n        return str_replace(':value', $this->getSize($attribute, $value), $message);\n    }\n\n    /**\n     * Replace all place-holders for the lte rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceLte($message, $attribute, $rule, $parameters)\n    {\n        if (is_null($value = $this->getValue($parameters[0]))) {\n            return str_replace(':value', $parameters[0], $message);\n        }\n\n        return str_replace(':value', $this->getSize($attribute, $value), $message);\n    }\n\n    /**\n     * Replace all place-holders for the required_if rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredIf($message, $attribute, $rule, $parameters)\n    {\n        $parameters[1] = $this->getDisplayableValue($parameters[0], Arr::get($this->data, $parameters[0]));\n\n        $parameters[0] = $this->getDisplayableAttribute($parameters[0]);\n\n        return str_replace([':other', ':value'], $parameters, $message);\n    }\n\n    /**\n     * Replace all place-holders for the required_unless rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceRequiredUnless($message, $attribute, $rule, $parameters)\n    {\n        $other = $this->getDisplayableAttribute($parameters[0]);\n\n        $values = [];\n\n        foreach (array_slice($parameters, 1) as $value) {\n            $values[] = $this->getDisplayableValue($parameters[0], $value);\n        }\n\n        return str_replace([':other', ':values'], [$other, implode(', ', $values)], $message);\n    }\n\n    /**\n     * Replace all place-holders for the same rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceSame($message, $attribute, $rule, $parameters)\n    {\n        return str_replace(':other', $this->getDisplayableAttribute($parameters[0]), $message);\n    }\n\n    /**\n     * Replace all place-holders for the before rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceBefore($message, $attribute, $rule, $parameters)\n    {\n        if (! strtotime($parameters[0])) {\n            return str_replace(':date', $this->getDisplayableAttribute($parameters[0]), $message);\n        }\n\n        return str_replace(':date', $this->getDisplayableValue($attribute, $parameters[0]), $message);\n    }\n\n    /**\n     * Replace all place-holders for the before_or_equal rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceBeforeOrEqual($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceBefore($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the after rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceAfter($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceBefore($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the after_or_equal rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceAfterOrEqual($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceBefore($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the date_equals rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDateEquals($message, $attribute, $rule, $parameters)\n    {\n        return $this->replaceBefore($message, $attribute, $rule, $parameters);\n    }\n\n    /**\n     * Replace all place-holders for the dimensions rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceDimensions($message, $attribute, $rule, $parameters)\n    {\n        $parameters = $this->parseNamedParameters($parameters);\n\n        if (is_array($parameters)) {\n            foreach ($parameters as $key => $value) {\n                $message = str_replace(':'.$key, $value, $message);\n            }\n        }\n\n        return $message;\n    }\n\n    /**\n     * Replace all place-holders for the ends_with rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceEndsWith($message, $attribute, $rule, $parameters)\n    {\n        foreach ($parameters as &$parameter) {\n            $parameter = $this->getDisplayableValue($attribute, $parameter);\n        }\n\n        return str_replace(':values', implode(', ', $parameters), $message);\n    }\n\n    /**\n     * Replace all place-holders for the starts_with rule.\n     *\n     * @param  string  $message\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array   $parameters\n     * @return string\n     */\n    protected function replaceStartsWith($message, $attribute, $rule, $parameters)\n    {\n        foreach ($parameters as &$parameter) {\n            $parameter = $this->getDisplayableValue($attribute, $parameter);\n        }\n\n        return str_replace(':values', implode(', ', $parameters), $message);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Concerns;\n\nuse DateTime;\nuse Countable;\nuse Exception;\nuse Throwable;\nuse DateTimeZone;\nuse DateTimeInterface;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Carbon;\nuse Illuminate\\Support\\Facades\\Date;\nuse Illuminate\\Validation\\Rules\\Exists;\nuse Illuminate\\Validation\\Rules\\Unique;\nuse Illuminate\\Validation\\ValidationData;\nuse Egulias\\EmailValidator\\EmailValidator;\nuse Symfony\\Component\\HttpFoundation\\File\\File;\nuse Egulias\\EmailValidator\\Validation\\RFCValidation;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile;\n\ntrait ValidatesAttributes\n{\n    /**\n     * Validate that an attribute was \"accepted\".\n     *\n     * This validation rule implies the attribute is \"required\".\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateAccepted($attribute, $value)\n    {\n        $acceptable = ['yes', 'on', '1', 1, true, 'true'];\n\n        return $this->validateRequired($attribute, $value) && in_array($value, $acceptable, true);\n    }\n\n    /**\n     * Validate that an attribute is an active URL.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateActiveUrl($attribute, $value)\n    {\n        if (! is_string($value)) {\n            return false;\n        }\n\n        if ($url = parse_url($value, PHP_URL_HOST)) {\n            try {\n                return count(dns_get_record($url, DNS_A | DNS_AAAA)) > 0;\n            } catch (Exception $e) {\n                return false;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * \"Break\" on first validation fail.\n     *\n     * Always returns true, just lets us put \"bail\" in rules.\n     *\n     * @return bool\n     */\n    public function validateBail()\n    {\n        return true;\n    }\n\n    /**\n     * Validate the date is before a given date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateBefore($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'before');\n\n        return $this->compareDates($attribute, $value, $parameters, '<');\n    }\n\n    /**\n     * Validate the date is before or equal a given date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateBeforeOrEqual($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'before_or_equal');\n\n        return $this->compareDates($attribute, $value, $parameters, '<=');\n    }\n\n    /**\n     * Validate the date is after a given date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateAfter($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'after');\n\n        return $this->compareDates($attribute, $value, $parameters, '>');\n    }\n\n    /**\n     * Validate the date is equal or after a given date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateAfterOrEqual($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'after_or_equal');\n\n        return $this->compareDates($attribute, $value, $parameters, '>=');\n    }\n\n    /**\n     * Compare a given date against another using an operator.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @param  array  $parameters\n     * @param  string  $operator\n     * @return bool\n     */\n    protected function compareDates($attribute, $value, $parameters, $operator)\n    {\n        if (! is_string($value) && ! is_numeric($value) && ! $value instanceof DateTimeInterface) {\n            return false;\n        }\n\n        if ($format = $this->getDateFormat($attribute)) {\n            return $this->checkDateTimeOrder($format, $value, $parameters[0], $operator);\n        }\n\n        if (! $date = $this->getDateTimestamp($parameters[0])) {\n            $date = $this->getDateTimestamp($this->getValue($parameters[0]));\n        }\n\n        return $this->compare($this->getDateTimestamp($value), $date, $operator);\n    }\n\n    /**\n     * Get the date format for an attribute if it has one.\n     *\n     * @param  string  $attribute\n     * @return string|null\n     */\n    protected function getDateFormat($attribute)\n    {\n        if ($result = $this->getRule($attribute, 'DateFormat')) {\n            return $result[1][0];\n        }\n    }\n\n    /**\n     * Get the date timestamp.\n     *\n     * @param  mixed  $value\n     * @return int\n     */\n    protected function getDateTimestamp($value)\n    {\n        if ($value instanceof DateTimeInterface) {\n            return $value->getTimestamp();\n        }\n\n        if ($this->isTestingRelativeDateTime($value)) {\n            $date = $this->getDateTime($value);\n\n            if (! is_null($date)) {\n                return $date->getTimestamp();\n            }\n        }\n\n        return strtotime($value);\n    }\n\n    /**\n     * Given two date/time strings, check that one is after the other.\n     *\n     * @param  string  $format\n     * @param  string  $first\n     * @param  string  $second\n     * @param  string  $operator\n     * @return bool\n     */\n    protected function checkDateTimeOrder($format, $first, $second, $operator)\n    {\n        $firstDate = $this->getDateTimeWithOptionalFormat($format, $first);\n\n        if (! $secondDate = $this->getDateTimeWithOptionalFormat($format, $second)) {\n            $secondDate = $this->getDateTimeWithOptionalFormat($format, $this->getValue($second));\n        }\n\n        return ($firstDate && $secondDate) && ($this->compare($firstDate, $secondDate, $operator));\n    }\n\n    /**\n     * Get a DateTime instance from a string.\n     *\n     * @param  string  $format\n     * @param  string  $value\n     * @return \\DateTime|null\n     */\n    protected function getDateTimeWithOptionalFormat($format, $value)\n    {\n        if ($date = DateTime::createFromFormat('!'.$format, $value)) {\n            return $date;\n        }\n\n        return $this->getDateTime($value);\n    }\n\n    /**\n     * Get a DateTime instance from a string with no format.\n     *\n     * @param  string $value\n     * @return \\DateTime|null\n     */\n    protected function getDateTime($value)\n    {\n        try {\n            if ($this->isTestingRelativeDateTime($value)) {\n                return Date::parse($value);\n            }\n\n            return new DateTime($value);\n        } catch (Exception $e) {\n            //\n        }\n    }\n\n    /**\n     * Check if the given value should be adjusted to Carbon::getTestNow().\n     *\n     * @param  mixed $value\n     * @return bool\n     */\n    protected function isTestingRelativeDateTime($value)\n    {\n        return Carbon::hasTestNow() && is_string($value) && (\n            $value === 'now' || Carbon::hasRelativeKeywords($value)\n        );\n    }\n\n    /**\n     * Validate that an attribute contains only alphabetic characters.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateAlpha($attribute, $value)\n    {\n        return is_string($value) && preg_match('/^[\\pL\\pM]+$/u', $value);\n    }\n\n    /**\n     * Validate that an attribute contains only alpha-numeric characters, dashes, and underscores.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateAlphaDash($attribute, $value)\n    {\n        if (! is_string($value) && ! is_numeric($value)) {\n            return false;\n        }\n\n        return preg_match('/^[\\pL\\pM\\pN_-]+$/u', $value) > 0;\n    }\n\n    /**\n     * Validate that an attribute contains only alpha-numeric characters.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateAlphaNum($attribute, $value)\n    {\n        if (! is_string($value) && ! is_numeric($value)) {\n            return false;\n        }\n\n        return preg_match('/^[\\pL\\pM\\pN]+$/u', $value) > 0;\n    }\n\n    /**\n     * Validate that an attribute is an array.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateArray($attribute, $value)\n    {\n        return is_array($value);\n    }\n\n    /**\n     * Validate the size of an attribute is between a set of values.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateBetween($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(2, $parameters, 'between');\n\n        $size = $this->getSize($attribute, $value);\n\n        return $size >= $parameters[0] && $size <= $parameters[1];\n    }\n\n    /**\n     * Validate that an attribute is a boolean.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateBoolean($attribute, $value)\n    {\n        $acceptable = [true, false, 0, 1, '0', '1'];\n\n        return in_array($value, $acceptable, true);\n    }\n\n    /**\n     * Validate that an attribute has a matching confirmation.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateConfirmed($attribute, $value)\n    {\n        return $this->validateSame($attribute, $value, [$attribute.'_confirmation']);\n    }\n\n    /**\n     * Validate that an attribute is a valid date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateDate($attribute, $value)\n    {\n        if ($value instanceof DateTimeInterface) {\n            return true;\n        }\n\n        if ((! is_string($value) && ! is_numeric($value)) || strtotime($value) === false) {\n            return false;\n        }\n\n        $date = date_parse($value);\n\n        return checkdate($date['month'], $date['day'], $date['year']);\n    }\n\n    /**\n     * Validate that an attribute matches a date format.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDateFormat($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'date_format');\n\n        if (! is_string($value) && ! is_numeric($value)) {\n            return false;\n        }\n\n        $format = $parameters[0];\n\n        $date = DateTime::createFromFormat('!'.$format, $value);\n\n        return $date && $date->format($format) == $value;\n    }\n\n    /**\n     * Validate that an attribute is equal to another date.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDateEquals($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'date_equals');\n\n        return $this->compareDates($attribute, $value, $parameters, '=');\n    }\n\n    /**\n     * Validate that an attribute is different from another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDifferent($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'different');\n\n        foreach ($parameters as $parameter) {\n            if (! Arr::has($this->data, $parameter)) {\n                return false;\n            }\n\n            $other = Arr::get($this->data, $parameter);\n\n            if ($value === $other) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute has a given number of digits.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDigits($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'digits');\n\n        return ! preg_match('/[^0-9]/', $value)\n                    && strlen((string) $value) == $parameters[0];\n    }\n\n    /**\n     * Validate that an attribute is between a given number of digits.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDigitsBetween($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(2, $parameters, 'digits_between');\n\n        $length = strlen((string) $value);\n\n        return ! preg_match('/[^0-9]/', $value)\n                    && $length >= $parameters[0] && $length <= $parameters[1];\n    }\n\n    /**\n     * Validate the dimensions of an image matches the given values.\n     *\n     * @param  string $attribute\n     * @param  mixed $value\n     * @param  array $parameters\n     * @return bool\n     */\n    public function validateDimensions($attribute, $value, $parameters)\n    {\n        if ($this->isValidFileInstance($value) && $value->getClientMimeType() === 'image/svg+xml') {\n            return true;\n        }\n\n        if (! $this->isValidFileInstance($value) || ! $sizeDetails = @getimagesize($value->getRealPath())) {\n            return false;\n        }\n\n        $this->requireParameterCount(1, $parameters, 'dimensions');\n\n        [$width, $height] = $sizeDetails;\n\n        $parameters = $this->parseNamedParameters($parameters);\n\n        if ($this->failsBasicDimensionChecks($parameters, $width, $height) ||\n            $this->failsRatioCheck($parameters, $width, $height)) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Test if the given width and height fail any conditions.\n     *\n     * @param  array  $parameters\n     * @param  int  $width\n     * @param  int  $height\n     * @return bool\n     */\n    protected function failsBasicDimensionChecks($parameters, $width, $height)\n    {\n        return (isset($parameters['width']) && $parameters['width'] != $width) ||\n               (isset($parameters['min_width']) && $parameters['min_width'] > $width) ||\n               (isset($parameters['max_width']) && $parameters['max_width'] < $width) ||\n               (isset($parameters['height']) && $parameters['height'] != $height) ||\n               (isset($parameters['min_height']) && $parameters['min_height'] > $height) ||\n               (isset($parameters['max_height']) && $parameters['max_height'] < $height);\n    }\n\n    /**\n     * Determine if the given parameters fail a dimension ratio check.\n     *\n     * @param  array  $parameters\n     * @param  int  $width\n     * @param  int  $height\n     * @return bool\n     */\n    protected function failsRatioCheck($parameters, $width, $height)\n    {\n        if (! isset($parameters['ratio'])) {\n            return false;\n        }\n\n        [$numerator, $denominator] = array_replace(\n            [1, 1], array_filter(sscanf($parameters['ratio'], '%f/%d'))\n        );\n\n        $precision = 1 / max($width, $height);\n\n        return abs($numerator / $denominator - $width / $height) > $precision;\n    }\n\n    /**\n     * Validate an attribute is unique among other values.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateDistinct($attribute, $value, $parameters)\n    {\n        $data = Arr::except($this->getDistinctValues($attribute), $attribute);\n\n        if (in_array('ignore_case', $parameters)) {\n            return empty(preg_grep('/^'.preg_quote($value, '/').'$/iu', $data));\n        }\n\n        return ! in_array($value, array_values($data));\n    }\n\n    /**\n     * Get the values to distinct between.\n     *\n     * @param  string  $attribute\n     * @return array\n     */\n    protected function getDistinctValues($attribute)\n    {\n        $attributeName = $this->getPrimaryAttribute($attribute);\n\n        if (! property_exists($this, 'distinctValues')) {\n            return $this->extractDistinctValues($attributeName);\n        }\n\n        if (! array_key_exists($attributeName, $this->distinctValues)) {\n            $this->distinctValues[$attributeName] = $this->extractDistinctValues($attributeName);\n        }\n\n        return $this->distinctValues[$attributeName];\n    }\n\n    /**\n     * Extract the distinct values from the data.\n     *\n     * @param  string  $attribute\n     * @return array\n     */\n    protected function extractDistinctValues($attribute)\n    {\n        $attributeData = ValidationData::extractDataFromPath(\n            ValidationData::getLeadingExplicitAttributePath($attribute), $this->data\n        );\n\n        $pattern = str_replace('\\*', '[^.]+', preg_quote($attribute, '#'));\n\n        return Arr::where(Arr::dot($attributeData), function ($value, $key) use ($pattern) {\n            return (bool) preg_match('#^'.$pattern.'\\z#u', $key);\n        });\n    }\n\n    /**\n     * Validate that an attribute is a valid e-mail address.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateEmail($attribute, $value)\n    {\n        if (! is_string($value) && ! (is_object($value) && method_exists($value, '__toString'))) {\n            return false;\n        }\n\n        return (new EmailValidator)->isValid($value, new RFCValidation);\n    }\n\n    /**\n     * Validate the existence of an attribute value in a database table.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateExists($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'exists');\n\n        [$connection, $table] = $this->parseTable($parameters[0]);\n\n        // The second parameter position holds the name of the column that should be\n        // verified as existing. If this parameter is not specified we will guess\n        // that the columns being \"verified\" shares the given attribute's name.\n        $column = $this->getQueryColumn($parameters, $attribute);\n\n        $expected = is_array($value) ? count(array_unique($value)) : 1;\n\n        return $this->getExistCount(\n            $connection, $table, $column, $value, $parameters\n        ) >= $expected;\n    }\n\n    /**\n     * Get the number of records that exist in storage.\n     *\n     * @param  mixed   $connection\n     * @param  string  $table\n     * @param  string  $column\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return int\n     */\n    protected function getExistCount($connection, $table, $column, $value, $parameters)\n    {\n        $verifier = $this->getPresenceVerifierFor($connection);\n\n        $extra = $this->getExtraConditions(\n            array_values(array_slice($parameters, 2))\n        );\n\n        if ($this->currentRule instanceof Exists) {\n            $extra = array_merge($extra, $this->currentRule->queryCallbacks());\n        }\n\n        return is_array($value)\n                ? $verifier->getMultiCount($table, $column, $value, $extra)\n                : $verifier->getCount($table, $column, $value, null, null, $extra);\n    }\n\n    /**\n     * Validate the uniqueness of an attribute value on a given database table.\n     *\n     * If a database column is not specified, the attribute will be used.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateUnique($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'unique');\n\n        [$connection, $table] = $this->parseTable($parameters[0]);\n\n        // The second parameter position holds the name of the column that needs to\n        // be verified as unique. If this parameter isn't specified we will just\n        // assume that this column to be verified shares the attribute's name.\n        $column = $this->getQueryColumn($parameters, $attribute);\n\n        [$idColumn, $id] = [null, null];\n\n        if (isset($parameters[2])) {\n            [$idColumn, $id] = $this->getUniqueIds($parameters);\n\n            if (! is_null($id)) {\n                $id = stripslashes($id);\n            }\n        }\n\n        // The presence verifier is responsible for counting rows within this store\n        // mechanism which might be a relational database or any other permanent\n        // data store like Redis, etc. We will use it to determine uniqueness.\n        $verifier = $this->getPresenceVerifierFor($connection);\n\n        $extra = $this->getUniqueExtra($parameters);\n\n        if ($this->currentRule instanceof Unique) {\n            $extra = array_merge($extra, $this->currentRule->queryCallbacks());\n        }\n\n        return $verifier->getCount(\n            $table, $column, $value, $id, $idColumn, $extra\n        ) == 0;\n    }\n\n    /**\n     * Get the excluded ID column and value for the unique rule.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function getUniqueIds($parameters)\n    {\n        $idColumn = $parameters[3] ?? 'id';\n\n        return [$idColumn, $this->prepareUniqueId($parameters[2])];\n    }\n\n    /**\n     * Prepare the given ID for querying.\n     *\n     * @param  mixed  $id\n     * @return int\n     */\n    protected function prepareUniqueId($id)\n    {\n        if (preg_match('/\\[(.*)\\]/', $id, $matches)) {\n            $id = $this->getValue($matches[1]);\n        }\n\n        if (strtolower($id) === 'null') {\n            $id = null;\n        }\n\n        if (filter_var($id, FILTER_VALIDATE_INT) !== false) {\n            $id = (int) $id;\n        }\n\n        return $id;\n    }\n\n    /**\n     * Get the extra conditions for a unique rule.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function getUniqueExtra($parameters)\n    {\n        if (isset($parameters[4])) {\n            return $this->getExtraConditions(array_slice($parameters, 4));\n        }\n\n        return [];\n    }\n\n    /**\n     * Parse the connection / table for the unique / exists rules.\n     *\n     * @param  string  $table\n     * @return array\n     */\n    public function parseTable($table)\n    {\n        return Str::contains($table, '.') ? explode('.', $table, 2) : [null, $table];\n    }\n\n    /**\n     * Get the column name for an exists / unique query.\n     *\n     * @param  array  $parameters\n     * @param  string  $attribute\n     * @return bool\n     */\n    public function getQueryColumn($parameters, $attribute)\n    {\n        return isset($parameters[1]) && $parameters[1] !== 'NULL'\n                    ? $parameters[1] : $this->guessColumnForQuery($attribute);\n    }\n\n    /**\n     * Guess the database column from the given attribute name.\n     *\n     * @param  string  $attribute\n     * @return string\n     */\n    public function guessColumnForQuery($attribute)\n    {\n        if (in_array($attribute, Arr::collapse($this->implicitAttributes))\n                && ! is_numeric($last = last(explode('.', $attribute)))) {\n            return $last;\n        }\n\n        return $attribute;\n    }\n\n    /**\n     * Get the extra conditions for a unique / exists rule.\n     *\n     * @param  array  $segments\n     * @return array\n     */\n    protected function getExtraConditions(array $segments)\n    {\n        $extra = [];\n\n        $count = count($segments);\n\n        for ($i = 0; $i < $count; $i += 2) {\n            $extra[$segments[$i]] = $segments[$i + 1];\n        }\n\n        return $extra;\n    }\n\n    /**\n     * Validate the given value is a valid file.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateFile($attribute, $value)\n    {\n        return $this->isValidFileInstance($value);\n    }\n\n    /**\n     * Validate the given attribute is filled if it is present.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateFilled($attribute, $value)\n    {\n        if (Arr::has($this->data, $attribute)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute is greater than another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateGt($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'gt');\n\n        $comparedToValue = $this->getValue($parameters[0]);\n\n        $this->shouldBeNumeric($attribute, 'Gt');\n\n        if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) {\n            return $this->getSize($attribute, $value) > $parameters[0];\n        }\n\n        if (! $this->isSameType($value, $comparedToValue)) {\n            return false;\n        }\n\n        return $this->getSize($attribute, $value) > $this->getSize($attribute, $comparedToValue);\n    }\n\n    /**\n     * Validate that an attribute is less than another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateLt($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'lt');\n\n        $comparedToValue = $this->getValue($parameters[0]);\n\n        $this->shouldBeNumeric($attribute, 'Lt');\n\n        if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) {\n            return $this->getSize($attribute, $value) < $parameters[0];\n        }\n\n        if (! $this->isSameType($value, $comparedToValue)) {\n            return false;\n        }\n\n        return $this->getSize($attribute, $value) < $this->getSize($attribute, $comparedToValue);\n    }\n\n    /**\n     * Validate that an attribute is greater than or equal another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateGte($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'gte');\n\n        $comparedToValue = $this->getValue($parameters[0]);\n\n        $this->shouldBeNumeric($attribute, 'Gte');\n\n        if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) {\n            return $this->getSize($attribute, $value) >= $parameters[0];\n        }\n\n        if (! $this->isSameType($value, $comparedToValue)) {\n            return false;\n        }\n\n        return $this->getSize($attribute, $value) >= $this->getSize($attribute, $comparedToValue);\n    }\n\n    /**\n     * Validate that an attribute is less than or equal another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateLte($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'lte');\n\n        $comparedToValue = $this->getValue($parameters[0]);\n\n        $this->shouldBeNumeric($attribute, 'Lte');\n\n        if (is_null($comparedToValue) && (is_numeric($value) && is_numeric($parameters[0]))) {\n            return $this->getSize($attribute, $value) <= $parameters[0];\n        }\n\n        if (! $this->isSameType($value, $comparedToValue)) {\n            return false;\n        }\n\n        return $this->getSize($attribute, $value) <= $this->getSize($attribute, $comparedToValue);\n    }\n\n    /**\n     * Validate the MIME type of a file is an image MIME type.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateImage($attribute, $value)\n    {\n        return $this->validateMimes($attribute, $value, ['jpeg', 'png', 'gif', 'bmp', 'svg']);\n    }\n\n    /**\n     * Validate an attribute is contained within a list of values.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateIn($attribute, $value, $parameters)\n    {\n        if (is_array($value) && $this->hasRule($attribute, 'Array')) {\n            foreach ($value as $element) {\n                if (is_array($element)) {\n                    return false;\n                }\n            }\n\n            return count(array_diff($value, $parameters)) === 0;\n        }\n\n        return ! is_array($value) && in_array((string) $value, $parameters);\n    }\n\n    /**\n     * Validate that the values of an attribute is in another attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateInArray($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'in_array');\n\n        $explicitPath = ValidationData::getLeadingExplicitAttributePath($parameters[0]);\n\n        $attributeData = ValidationData::extractDataFromPath($explicitPath, $this->data);\n\n        $otherValues = Arr::where(Arr::dot($attributeData), function ($value, $key) use ($parameters) {\n            return Str::is($parameters[0], $key);\n        });\n\n        return in_array($value, $otherValues);\n    }\n\n    /**\n     * Validate that an attribute is an integer.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateInteger($attribute, $value)\n    {\n        return filter_var($value, FILTER_VALIDATE_INT) !== false;\n    }\n\n    /**\n     * Validate that an attribute is a valid IP.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateIp($attribute, $value)\n    {\n        return filter_var($value, FILTER_VALIDATE_IP) !== false;\n    }\n\n    /**\n     * Validate that an attribute is a valid IPv4.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateIpv4($attribute, $value)\n    {\n        return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false;\n    }\n\n    /**\n     * Validate that an attribute is a valid IPv6.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateIpv6($attribute, $value)\n    {\n        return filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false;\n    }\n\n    /**\n     * Validate the attribute is a valid JSON string.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateJson($attribute, $value)\n    {\n        if (! is_scalar($value) && ! method_exists($value, '__toString')) {\n            return false;\n        }\n\n        json_decode($value);\n\n        return json_last_error() === JSON_ERROR_NONE;\n    }\n\n    /**\n     * Validate the size of an attribute is less than a maximum value.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateMax($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'max');\n\n        if ($value instanceof UploadedFile && ! $value->isValid()) {\n            return false;\n        }\n\n        return $this->getSize($attribute, $value) <= $parameters[0];\n    }\n\n    /**\n     * Validate the guessed extension of a file upload is in a set of file extensions.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateMimes($attribute, $value, $parameters)\n    {\n        if (! $this->isValidFileInstance($value)) {\n            return false;\n        }\n\n        if ($this->shouldBlockPhpUpload($value, $parameters)) {\n            return false;\n        }\n\n        return $value->getPath() !== '' && in_array($value->guessExtension(), $parameters);\n    }\n\n    /**\n     * Validate the MIME type of a file upload attribute is in a set of MIME types.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @param  array  $parameters\n     * @return bool\n     */\n    public function validateMimetypes($attribute, $value, $parameters)\n    {\n        if (! $this->isValidFileInstance($value)) {\n            return false;\n        }\n\n        if ($this->shouldBlockPhpUpload($value, $parameters)) {\n            return false;\n        }\n\n        return $value->getPath() !== '' &&\n                (in_array($value->getMimeType(), $parameters) ||\n                 in_array(explode('/', $value->getMimeType())[0].'/*', $parameters));\n    }\n\n    /**\n     * Check if PHP uploads are explicitly allowed.\n     *\n     * @param  mixed  $value\n     * @param  array  $parameters\n     * @return bool\n     */\n    protected function shouldBlockPhpUpload($value, $parameters)\n    {\n        if (in_array('php', $parameters)) {\n            return false;\n        }\n\n        $phpExtensions = [\n            'php', 'php3', 'php4', 'php5', 'phtml',\n        ];\n\n        return ($value instanceof UploadedFile)\n           ? in_array(trim(strtolower($value->getClientOriginalExtension())), $phpExtensions)\n           : in_array(trim(strtolower($value->getExtension())), $phpExtensions);\n    }\n\n    /**\n     * Validate the size of an attribute is greater than a minimum value.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateMin($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'min');\n\n        return $this->getSize($attribute, $value) >= $parameters[0];\n    }\n\n    /**\n     * \"Indicate\" validation should pass if value is null.\n     *\n     * Always returns true, just lets us put \"nullable\" in rules.\n     *\n     * @return bool\n     */\n    public function validateNullable()\n    {\n        return true;\n    }\n\n    /**\n     * Validate an attribute is not contained within a list of values.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateNotIn($attribute, $value, $parameters)\n    {\n        return ! $this->validateIn($attribute, $value, $parameters);\n    }\n\n    /**\n     * Validate that an attribute is numeric.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateNumeric($attribute, $value)\n    {\n        return is_numeric($value);\n    }\n\n    /**\n     * Validate that an attribute exists even if not filled.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validatePresent($attribute, $value)\n    {\n        return Arr::has($this->data, $attribute);\n    }\n\n    /**\n     * Validate that an attribute passes a regular expression check.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateRegex($attribute, $value, $parameters)\n    {\n        if (! is_string($value) && ! is_numeric($value)) {\n            return false;\n        }\n\n        $this->requireParameterCount(1, $parameters, 'regex');\n\n        return preg_match($parameters[0], $value) > 0;\n    }\n\n    /**\n     * Validate that an attribute does not pass a regular expression check.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateNotRegex($attribute, $value, $parameters)\n    {\n        if (! is_string($value) && ! is_numeric($value)) {\n            return false;\n        }\n\n        $this->requireParameterCount(1, $parameters, 'not_regex');\n\n        return preg_match($parameters[0], $value) < 1;\n    }\n\n    /**\n     * Validate that a required attribute exists.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateRequired($attribute, $value)\n    {\n        if (is_null($value)) {\n            return false;\n        } elseif (is_string($value) && trim($value) === '') {\n            return false;\n        } elseif ((is_array($value) || $value instanceof Countable) && count($value) < 1) {\n            return false;\n        } elseif ($value instanceof File) {\n            return (string) $value->getPath() !== '';\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute exists when another attribute has a given value.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  mixed   $parameters\n     * @return bool\n     */\n    public function validateRequiredIf($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(2, $parameters, 'required_if');\n\n        $other = Arr::get($this->data, $parameters[0]);\n\n        $values = array_slice($parameters, 1);\n\n        if (is_bool($other)) {\n            $values = $this->convertValuesToBoolean($values);\n        }\n\n        if (in_array($other, $values)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Convert the given values to boolean if they are string \"true\" / \"false\".\n     *\n     * @param  array  $values\n     * @return array\n     */\n    protected function convertValuesToBoolean($values)\n    {\n        return array_map(function ($value) {\n            if ($value === 'true') {\n                return true;\n            } elseif ($value === 'false') {\n                return false;\n            }\n\n            return $value;\n        }, $values);\n    }\n\n    /**\n     * Validate that an attribute exists when another attribute does not have a given value.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @param  mixed  $parameters\n     * @return bool\n     */\n    public function validateRequiredUnless($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(2, $parameters, 'required_unless');\n\n        $data = Arr::get($this->data, $parameters[0]);\n\n        $values = array_slice($parameters, 1);\n\n        if (! in_array($data, $values)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute exists when any other attribute exists.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  mixed   $parameters\n     * @return bool\n     */\n    public function validateRequiredWith($attribute, $value, $parameters)\n    {\n        if (! $this->allFailingRequired($parameters)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute exists when all other attributes exists.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  mixed   $parameters\n     * @return bool\n     */\n    public function validateRequiredWithAll($attribute, $value, $parameters)\n    {\n        if (! $this->anyFailingRequired($parameters)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute exists when another attribute does not.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  mixed   $parameters\n     * @return bool\n     */\n    public function validateRequiredWithout($attribute, $value, $parameters)\n    {\n        if ($this->anyFailingRequired($parameters)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute exists when all other attributes do not.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  mixed   $parameters\n     * @return bool\n     */\n    public function validateRequiredWithoutAll($attribute, $value, $parameters)\n    {\n        if ($this->allFailingRequired($parameters)) {\n            return $this->validateRequired($attribute, $value);\n        }\n\n        return true;\n    }\n\n    /**\n     * Determine if any of the given attributes fail the required test.\n     *\n     * @param  array  $attributes\n     * @return bool\n     */\n    protected function anyFailingRequired(array $attributes)\n    {\n        foreach ($attributes as $key) {\n            if (! $this->validateRequired($key, $this->getValue($key))) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Determine if all of the given attributes fail the required test.\n     *\n     * @param  array  $attributes\n     * @return bool\n     */\n    protected function allFailingRequired(array $attributes)\n    {\n        foreach ($attributes as $key) {\n            if ($this->validateRequired($key, $this->getValue($key))) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that two attributes match.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateSame($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'same');\n\n        $other = Arr::get($this->data, $parameters[0]);\n\n        return $value === $other;\n    }\n\n    /**\n     * Validate the size of an attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateSize($attribute, $value, $parameters)\n    {\n        $this->requireParameterCount(1, $parameters, 'size');\n\n        return $this->getSize($attribute, $value) == $parameters[0];\n    }\n\n    /**\n     * \"Validate\" optional attributes.\n     *\n     * Always returns true, just lets us put sometimes in rules.\n     *\n     * @return bool\n     */\n    public function validateSometimes()\n    {\n        return true;\n    }\n\n    /**\n     * Validate the attribute starts with a given substring.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateStartsWith($attribute, $value, $parameters)\n    {\n        return Str::startsWith($value, $parameters);\n    }\n\n    /**\n     * Validate the attribute ends with a given substring.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @param  array   $parameters\n     * @return bool\n     */\n    public function validateEndsWith($attribute, $value, $parameters)\n    {\n        return Str::endsWith($value, $parameters);\n    }\n\n    /**\n     * Validate that an attribute is a string.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateString($attribute, $value)\n    {\n        return is_string($value);\n    }\n\n    /**\n     * Validate that an attribute is a valid timezone.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateTimezone($attribute, $value)\n    {\n        try {\n            new DateTimeZone($value);\n        } catch (Exception $e) {\n            return false;\n        } catch (Throwable $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Validate that an attribute is a valid URL.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return bool\n     */\n    public function validateUrl($attribute, $value)\n    {\n        if (! is_string($value)) {\n            return false;\n        }\n\n        /*\n         * This pattern is derived from Symfony\\Component\\Validator\\Constraints\\UrlValidator (2.7.4).\n         *\n         * (c) Fabien Potencier <fabien@symfony.com> http://symfony.com\n         */\n        $pattern = '~^\n            ((aaa|aaas|about|acap|acct|acr|adiumxtra|afp|afs|aim|apt|attachment|aw|barion|beshare|bitcoin|blob|bolo|callto|cap|chrome|chrome-extension|cid|coap|coaps|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-playcontainer|dlna-playsingle|dns|dntp|dtn|dvb|ed2k|example|facetime|fax|feed|feedready|file|filesystem|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|ham|hcp|http|https|iax|icap|icon|im|imap|info|iotdisco|ipn|ipp|ipps|irc|irc6|ircs|iris|iris.beep|iris.lwz|iris.xpc|iris.xpcs|itms|jabber|jar|jms|keyparc|lastfm|ldap|ldaps|magnet|mailserver|mailto|maps|market|message|mid|mms|modem|ms-help|ms-settings|ms-settings-airplanemode|ms-settings-bluetooth|ms-settings-camera|ms-settings-cellular|ms-settings-cloudstorage|ms-settings-emailandaccounts|ms-settings-language|ms-settings-location|ms-settings-lock|ms-settings-nfctransactions|ms-settings-notifications|ms-settings-power|ms-settings-privacy|ms-settings-proximity|ms-settings-screenrotation|ms-settings-wifi|ms-settings-workplace|msnim|msrp|msrps|mtqp|mumble|mupdate|mvn|news|nfs|ni|nih|nntp|notes|oid|opaquelocktoken|pack|palm|paparazzi|pkcs11|platform|pop|pres|prospero|proxy|psyc|query|redis|rediss|reload|res|resource|rmi|rsync|rtmfp|rtmp|rtsp|rtsps|rtspu|secondlife|s3|service|session|sftp|sgn|shttp|sieve|sip|sips|skype|smb|sms|smtp|snews|snmp|soap.beep|soap.beeps|soldat|spotify|ssh|steam|stun|stuns|submit|svn|tag|teamspeak|tel|teliaeid|telnet|tftp|things|thismessage|tip|tn3270|turn|turns|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|videotex|view-source|wais|webcal|ws|wss|wtai|wyciwyg|xcon|xcon-userid|xfire|xmlrpc\\.beep|xmlrpc.beeps|xmpp|xri|ymsgr|z39\\.50|z39\\.50r|z39\\.50s))://                                 # protocol\n            (([\\pL\\pN-]+:)?([\\pL\\pN-]+)@)?          # basic auth\n            (\n                ([\\pL\\pN\\pS\\-\\.])+(\\.?([\\pL]|xn\\-\\-[\\pL\\pN-]+)+\\.?) # a domain name\n                    |                                              # or\n                \\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}                 # an IP address\n                    |                                              # or\n                \\[\n                    (?:(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){6})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:::(?:(?:(?:[0-9a-f]{1,4})):){5})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){4})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,1}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){3})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,2}(?:(?:[0-9a-f]{1,4})))?::(?:(?:(?:[0-9a-f]{1,4})):){2})(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,3}(?:(?:[0-9a-f]{1,4})))?::(?:(?:[0-9a-f]{1,4})):)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,4}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:(?:(?:(?:[0-9a-f]{1,4})):(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9]))\\.){3}(?:(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])))))))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,5}(?:(?:[0-9a-f]{1,4})))?::)(?:(?:[0-9a-f]{1,4})))|(?:(?:(?:(?:(?:(?:[0-9a-f]{1,4})):){0,6}(?:(?:[0-9a-f]{1,4})))?::))))\n                \\]  # an IPv6 address\n            )\n            (:[0-9]+)?                              # a port (optional)\n            (/?|/\\S+|\\?\\S*|\\#\\S*)                   # a /, nothing, a / with something, a query or a fragment\n        $~ixu';\n\n        return preg_match($pattern, $value) > 0;\n    }\n\n    /**\n     * Validate that an attribute is a valid UUID.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function validateUuid($attribute, $value)\n    {\n        if (! is_string($value)) {\n            return false;\n        }\n\n        return preg_match('/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iD', $value) > 0;\n    }\n\n    /**\n     * Get the size of an attribute.\n     *\n     * @param  string  $attribute\n     * @param  mixed   $value\n     * @return mixed\n     */\n    protected function getSize($attribute, $value)\n    {\n        $hasNumeric = $this->hasRule($attribute, $this->numericRules);\n\n        // This method will determine if the attribute is a number, string, or file and\n        // return the proper size accordingly. If it is a number, then number itself\n        // is the size. If it is a file, we take kilobytes, and for a string the\n        // entire length of the string will be considered the attribute size.\n        if (is_numeric($value) && $hasNumeric) {\n            return $value;\n        } elseif (is_array($value)) {\n            return count($value);\n        } elseif ($value instanceof File) {\n            return $value->getSize() / 1024;\n        }\n\n        return mb_strlen($value);\n    }\n\n    /**\n     * Check that the given value is a valid file instance.\n     *\n     * @param  mixed  $value\n     * @return bool\n     */\n    public function isValidFileInstance($value)\n    {\n        if ($value instanceof UploadedFile && ! $value->isValid()) {\n            return false;\n        }\n\n        return $value instanceof File;\n    }\n\n    /**\n     * Determine if a comparison passes between the given values.\n     *\n     * @param  mixed  $first\n     * @param  mixed  $second\n     * @param  string  $operator\n     * @return bool\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function compare($first, $second, $operator)\n    {\n        switch ($operator) {\n            case '<':\n                return $first < $second;\n            case '>':\n                return $first > $second;\n            case '<=':\n                return $first <= $second;\n            case '>=':\n                return $first >= $second;\n            case '=':\n                return $first == $second;\n            default:\n                throw new InvalidArgumentException;\n        }\n    }\n\n    /**\n     * Parse named parameters to $key => $value items.\n     *\n     * @param  array  $parameters\n     * @return array\n     */\n    protected function parseNamedParameters($parameters)\n    {\n        return array_reduce($parameters, function ($result, $item) {\n            [$key, $value] = array_pad(explode('=', $item, 2), 2, null);\n\n            $result[$key] = $value;\n\n            return $result;\n        });\n    }\n\n    /**\n     * Require a certain number of parameters to be present.\n     *\n     * @param  int    $count\n     * @param  array  $parameters\n     * @param  string  $rule\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function requireParameterCount($count, $parameters, $rule)\n    {\n        if (count($parameters) < $count) {\n            throw new InvalidArgumentException(\"Validation rule $rule requires at least $count parameters.\");\n        }\n    }\n\n    /**\n     * Check if the parameters are of the same type.\n     *\n     * @param  mixed  $first\n     * @param  mixed  $second\n     * @return bool\n     */\n    protected function isSameType($first, $second)\n    {\n        return gettype($first) == gettype($second);\n    }\n\n    /**\n     * Adds the existing rule to the numericRules array if the attribute's value is numeric.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     *\n     * @return void\n     */\n    protected function shouldBeNumeric($attribute, $rule)\n    {\n        if (is_numeric($this->getValue($attribute))) {\n            $this->numericRules[] = $rule;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Database\\ConnectionResolverInterface;\n\nclass DatabasePresenceVerifier implements PresenceVerifierInterface\n{\n    /**\n     * The database connection instance.\n     *\n     * @var \\Illuminate\\Database\\ConnectionResolverInterface\n     */\n    protected $db;\n\n    /**\n     * The database connection to use.\n     *\n     * @var string\n     */\n    protected $connection;\n\n    /**\n     * Create a new database presence verifier.\n     *\n     * @param  \\Illuminate\\Database\\ConnectionResolverInterface  $db\n     * @return void\n     */\n    public function __construct(ConnectionResolverInterface $db)\n    {\n        $this->db = $db;\n    }\n\n    /**\n     * Count the number of objects in a collection having the given value.\n     *\n     * @param  string  $collection\n     * @param  string  $column\n     * @param  string  $value\n     * @param  int|null  $excludeId\n     * @param  string|null  $idColumn\n     * @param  array  $extra\n     * @return int\n     */\n    public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = [])\n    {\n        $query = $this->table($collection)->where($column, '=', $value);\n\n        if (! is_null($excludeId) && $excludeId !== 'NULL') {\n            $query->where($idColumn ?: 'id', '<>', $excludeId);\n        }\n\n        return $this->addConditions($query, $extra)->count();\n    }\n\n    /**\n     * Count the number of objects in a collection with the given values.\n     *\n     * @param  string  $collection\n     * @param  string  $column\n     * @param  array   $values\n     * @param  array   $extra\n     * @return int\n     */\n    public function getMultiCount($collection, $column, array $values, array $extra = [])\n    {\n        $query = $this->table($collection)->whereIn($column, $values);\n\n        return $this->addConditions($query, $extra)->distinct()->count($column);\n    }\n\n    /**\n     * Add the given conditions to the query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  array  $conditions\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    protected function addConditions($query, $conditions)\n    {\n        foreach ($conditions as $key => $value) {\n            if ($value instanceof Closure) {\n                $query->where(function ($query) use ($value) {\n                    $value($query);\n                });\n            } else {\n                $this->addWhere($query, $key, $value);\n            }\n        }\n\n        return $query;\n    }\n\n    /**\n     * Add a \"where\" clause to the given query.\n     *\n     * @param  \\Illuminate\\Database\\Query\\Builder  $query\n     * @param  string  $key\n     * @param  string  $extraValue\n     * @return void\n     */\n    protected function addWhere($query, $key, $extraValue)\n    {\n        if ($extraValue === 'NULL') {\n            $query->whereNull($key);\n        } elseif ($extraValue === 'NOT_NULL') {\n            $query->whereNotNull($key);\n        } elseif (Str::startsWith($extraValue, '!')) {\n            $query->where($key, '!=', mb_substr($extraValue, 1));\n        } else {\n            $query->where($key, $extraValue);\n        }\n    }\n\n    /**\n     * Get a query builder for the given table.\n     *\n     * @param  string  $table\n     * @return \\Illuminate\\Database\\Query\\Builder\n     */\n    public function table($table)\n    {\n        return $this->db->connection($this->connection)->table($table)->useWritePdo();\n    }\n\n    /**\n     * Set the connection to be used.\n     *\n     * @param  string  $connection\n     * @return void\n     */\n    public function setConnection($connection)\n    {\n        $this->connection = $connection;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Translation\\Translator;\nuse Illuminate\\Contracts\\Validation\\Factory as FactoryContract;\n\nclass Factory implements FactoryContract\n{\n    /**\n     * The Translator implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Translation\\Translator\n     */\n    protected $translator;\n\n    /**\n     * The Presence Verifier implementation.\n     *\n     * @var \\Illuminate\\Validation\\PresenceVerifierInterface\n     */\n    protected $verifier;\n\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * All of the custom validator extensions.\n     *\n     * @var array\n     */\n    protected $extensions = [];\n\n    /**\n     * All of the custom implicit validator extensions.\n     *\n     * @var array\n     */\n    protected $implicitExtensions = [];\n\n    /**\n     * All of the custom dependent validator extensions.\n     *\n     * @var array\n     */\n    protected $dependentExtensions = [];\n\n    /**\n     * All of the custom validator message replacers.\n     *\n     * @var array\n     */\n    protected $replacers = [];\n\n    /**\n     * All of the fallback messages for custom rules.\n     *\n     * @var array\n     */\n    protected $fallbackMessages = [];\n\n    /**\n     * The Validator resolver instance.\n     *\n     * @var \\Closure\n     */\n    protected $resolver;\n\n    /**\n     * Create a new Validator factory instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Translation\\Translator  $translator\n     * @param  \\Illuminate\\Contracts\\Container\\Container|null  $container\n     * @return void\n     */\n    public function __construct(Translator $translator, Container $container = null)\n    {\n        $this->container = $container;\n        $this->translator = $translator;\n    }\n\n    /**\n     * Create a new Validator instance.\n     *\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return \\Illuminate\\Validation\\Validator\n     */\n    public function make(array $data, array $rules, array $messages = [], array $customAttributes = [])\n    {\n        $validator = $this->resolve(\n            $data, $rules, $messages, $customAttributes\n        );\n\n        // The presence verifier is responsible for checking the unique and exists data\n        // for the validator. It is behind an interface so that multiple versions of\n        // it may be written besides database. We'll inject it into the validator.\n        if (! is_null($this->verifier)) {\n            $validator->setPresenceVerifier($this->verifier);\n        }\n\n        // Next we'll set the IoC container instance of the validator, which is used to\n        // resolve out class based validator extensions. If it is not set then these\n        // types of extensions will not be possible on these validation instances.\n        if (! is_null($this->container)) {\n            $validator->setContainer($this->container);\n        }\n\n        $this->addExtensions($validator);\n\n        return $validator;\n    }\n\n    /**\n     * Validate the given data against the provided rules.\n     *\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validate(array $data, array $rules, array $messages = [], array $customAttributes = [])\n    {\n        return $this->make($data, $rules, $messages, $customAttributes)->validate();\n    }\n\n    /**\n     * Resolve a new Validator instance.\n     *\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return \\Illuminate\\Validation\\Validator\n     */\n    protected function resolve(array $data, array $rules, array $messages, array $customAttributes)\n    {\n        if (is_null($this->resolver)) {\n            return new Validator($this->translator, $data, $rules, $messages, $customAttributes);\n        }\n\n        return call_user_func($this->resolver, $this->translator, $data, $rules, $messages, $customAttributes);\n    }\n\n    /**\n     * Add the extensions to a validator instance.\n     *\n     * @param  \\Illuminate\\Validation\\Validator  $validator\n     * @return void\n     */\n    protected function addExtensions(Validator $validator)\n    {\n        $validator->addExtensions($this->extensions);\n\n        // Next, we will add the implicit extensions, which are similar to the required\n        // and accepted rule in that they are run even if the attributes is not in a\n        // array of data that is given to a validator instances via instantiation.\n        $validator->addImplicitExtensions($this->implicitExtensions);\n\n        $validator->addDependentExtensions($this->dependentExtensions);\n\n        $validator->addReplacers($this->replacers);\n\n        $validator->setFallbackMessages($this->fallbackMessages);\n    }\n\n    /**\n     * Register a custom validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @param  string|null  $message\n     * @return void\n     */\n    public function extend($rule, $extension, $message = null)\n    {\n        $this->extensions[$rule] = $extension;\n\n        if ($message) {\n            $this->fallbackMessages[Str::snake($rule)] = $message;\n        }\n    }\n\n    /**\n     * Register a custom implicit validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @param  string|null  $message\n     * @return void\n     */\n    public function extendImplicit($rule, $extension, $message = null)\n    {\n        $this->implicitExtensions[$rule] = $extension;\n\n        if ($message) {\n            $this->fallbackMessages[Str::snake($rule)] = $message;\n        }\n    }\n\n    /**\n     * Register a custom dependent validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @param  string|null  $message\n     * @return void\n     */\n    public function extendDependent($rule, $extension, $message = null)\n    {\n        $this->dependentExtensions[$rule] = $extension;\n\n        if ($message) {\n            $this->fallbackMessages[Str::snake($rule)] = $message;\n        }\n    }\n\n    /**\n     * Register a custom validator message replacer.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $replacer\n     * @return void\n     */\n    public function replacer($rule, $replacer)\n    {\n        $this->replacers[$rule] = $replacer;\n    }\n\n    /**\n     * Set the Validator instance resolver.\n     *\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public function resolver(Closure $resolver)\n    {\n        $this->resolver = $resolver;\n    }\n\n    /**\n     * Get the Translator implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Translation\\Translator\n     */\n    public function getTranslator()\n    {\n        return $this->translator;\n    }\n\n    /**\n     * Get the Presence Verifier implementation.\n     *\n     * @return \\Illuminate\\Validation\\PresenceVerifierInterface\n     */\n    public function getPresenceVerifier()\n    {\n        return $this->verifier;\n    }\n\n    /**\n     * Set the Presence Verifier implementation.\n     *\n     * @param  \\Illuminate\\Validation\\PresenceVerifierInterface  $presenceVerifier\n     * @return void\n     */\n    public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier)\n    {\n        $this->verifier = $presenceVerifier;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/PresenceVerifierInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\ninterface PresenceVerifierInterface\n{\n    /**\n     * Count the number of objects in a collection having the given value.\n     *\n     * @param  string  $collection\n     * @param  string  $column\n     * @param  string  $value\n     * @param  int|null  $excludeId\n     * @param  string|null  $idColumn\n     * @param  array   $extra\n     * @return int\n     */\n    public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = []);\n\n    /**\n     * Count the number of objects in a collection with the given values.\n     *\n     * @param  string  $collection\n     * @param  string  $column\n     * @param  array   $values\n     * @param  array   $extra\n     * @return int\n     */\n    public function getMultiCount($collection, $column, array $values, array $extra = []);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rule.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\n\nclass Rule\n{\n    use Macroable;\n\n    /**\n     * Get a dimensions constraint builder instance.\n     *\n     * @param  array  $constraints\n     * @return \\Illuminate\\Validation\\Rules\\Dimensions\n     */\n    public static function dimensions(array $constraints = [])\n    {\n        return new Rules\\Dimensions($constraints);\n    }\n\n    /**\n     * Get a exists constraint builder instance.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return \\Illuminate\\Validation\\Rules\\Exists\n     */\n    public static function exists($table, $column = 'NULL')\n    {\n        return new Rules\\Exists($table, $column);\n    }\n\n    /**\n     * Get an in constraint builder instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array|string  $values\n     * @return \\Illuminate\\Validation\\Rules\\In\n     */\n    public static function in($values)\n    {\n        if ($values instanceof Arrayable) {\n            $values = $values->toArray();\n        }\n\n        return new Rules\\In(is_array($values) ? $values : func_get_args());\n    }\n\n    /**\n     * Get a not_in constraint builder instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array|string  $values\n     * @return \\Illuminate\\Validation\\Rules\\NotIn\n     */\n    public static function notIn($values)\n    {\n        if ($values instanceof Arrayable) {\n            $values = $values->toArray();\n        }\n\n        return new Rules\\NotIn(is_array($values) ? $values : func_get_args());\n    }\n\n    /**\n     * Get a required_if constraint builder instance.\n     *\n     * @param  callable|bool  $callback\n     * @return \\Illuminate\\Validation\\Rules\\RequiredIf\n     */\n    public static function requiredIf($callback)\n    {\n        return new Rules\\RequiredIf($callback);\n    }\n\n    /**\n     * Get a unique constraint builder instance.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return \\Illuminate\\Validation\\Rules\\Unique\n     */\n    public static function unique($table, $column = 'NULL')\n    {\n        return new Rules\\Unique($table, $column);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/DatabaseRule.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nuse Closure;\n\ntrait DatabaseRule\n{\n    /**\n     * The table to run the query against.\n     *\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * The column to check on.\n     *\n     * @var string\n     */\n    protected $column;\n\n    /**\n     * The extra where clauses for the query.\n     *\n     * @var array\n     */\n    protected $wheres = [];\n\n    /**\n     * The array of custom query callbacks.\n     *\n     * @var array\n     */\n    protected $using = [];\n\n    /**\n     * Create a new rule instance.\n     *\n     * @param  string  $table\n     * @param  string  $column\n     * @return void\n     */\n    public function __construct($table, $column = 'NULL')\n    {\n        $this->table = $table;\n        $this->column = $column;\n    }\n\n    /**\n     * Set a \"where\" constraint on the query.\n     *\n     * @param  string|\\Closure  $column\n     * @param  array|string|null  $value\n     * @return $this\n     */\n    public function where($column, $value = null)\n    {\n        if (is_array($value)) {\n            return $this->whereIn($column, $value);\n        }\n\n        if ($column instanceof Closure) {\n            return $this->using($column);\n        }\n\n        $this->wheres[] = compact('column', 'value');\n\n        return $this;\n    }\n\n    /**\n     * Set a \"where not\" constraint on the query.\n     *\n     * @param  string  $column\n     * @param  array|string  $value\n     * @return $this\n     */\n    public function whereNot($column, $value)\n    {\n        if (is_array($value)) {\n            return $this->whereNotIn($column, $value);\n        }\n\n        return $this->where($column, '!'.$value);\n    }\n\n    /**\n     * Set a \"where null\" constraint on the query.\n     *\n     * @param  string  $column\n     * @return $this\n     */\n    public function whereNull($column)\n    {\n        return $this->where($column, 'NULL');\n    }\n\n    /**\n     * Set a \"where not null\" constraint on the query.\n     *\n     * @param  string  $column\n     * @return $this\n     */\n    public function whereNotNull($column)\n    {\n        return $this->where($column, 'NOT_NULL');\n    }\n\n    /**\n     * Set a \"where in\" constraint on the query.\n     *\n     * @param  string  $column\n     * @param  array  $values\n     * @return $this\n     */\n    public function whereIn($column, array $values)\n    {\n        return $this->where(function ($query) use ($column, $values) {\n            $query->whereIn($column, $values);\n        });\n    }\n\n    /**\n     * Set a \"where not in\" constraint on the query.\n     *\n     * @param  string  $column\n     * @param  array  $values\n     * @return $this\n     */\n    public function whereNotIn($column, array $values)\n    {\n        return $this->where(function ($query) use ($column, $values) {\n            $query->whereNotIn($column, $values);\n        });\n    }\n\n    /**\n     * Register a custom query callback.\n     *\n     * @param  \\Closure  $callback\n     * @return $this\n     */\n    public function using(Closure $callback)\n    {\n        $this->using[] = $callback;\n\n        return $this;\n    }\n\n    /**\n     * Get the custom query callbacks for the rule.\n     *\n     * @return array\n     */\n    public function queryCallbacks()\n    {\n        return $this->using;\n    }\n\n    /**\n     * Format the where clauses.\n     *\n     * @return string\n     */\n    protected function formatWheres()\n    {\n        return collect($this->wheres)->map(function ($where) {\n            return $where['column'].','.'\"'.str_replace('\"', '\"\"', $where['value']).'\"';\n        })->implode(',');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/Dimensions.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nclass Dimensions\n{\n    /**\n     * The constraints for the dimensions rule.\n     *\n     * @var array\n     */\n    protected $constraints = [];\n\n    /**\n     * Create a new dimensions rule instance.\n     *\n     * @param  array  $constraints;\n     * @return void\n     */\n    public function __construct(array $constraints = [])\n    {\n        $this->constraints = $constraints;\n    }\n\n    /**\n     * Set the \"width\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function width($value)\n    {\n        $this->constraints['width'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"height\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function height($value)\n    {\n        $this->constraints['height'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"min width\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function minWidth($value)\n    {\n        $this->constraints['min_width'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"min height\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function minHeight($value)\n    {\n        $this->constraints['min_height'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"max width\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function maxWidth($value)\n    {\n        $this->constraints['max_width'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"max height\" constraint.\n     *\n     * @param  int  $value\n     * @return $this\n     */\n    public function maxHeight($value)\n    {\n        $this->constraints['max_height'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the \"ratio\" constraint.\n     *\n     * @param  float  $value\n     * @return $this\n     */\n    public function ratio($value)\n    {\n        $this->constraints['ratio'] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        $result = '';\n\n        foreach ($this->constraints as $key => $value) {\n            $result .= \"$key=$value,\";\n        }\n\n        return 'dimensions:'.substr($result, 0, -1);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/Exists.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nclass Exists\n{\n    use DatabaseRule;\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return rtrim(sprintf('exists:%s,%s,%s',\n            $this->table,\n            $this->column,\n            $this->formatWheres()\n        ), ',');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/In.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nclass In\n{\n    /**\n     * The name of the rule.\n     */\n    protected $rule = 'in';\n\n    /**\n     * The accepted values.\n     *\n     * @var array\n     */\n    protected $values;\n\n    /**\n     * Create a new in rule instance.\n     *\n     * @param  array  $values\n     * @return void\n     */\n    public function __construct(array $values)\n    {\n        $this->values = $values;\n    }\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     *\n     * @see \\Illuminate\\Validation\\ValidationRuleParser::parseParameters\n     */\n    public function __toString()\n    {\n        $values = array_map(function ($value) {\n            return '\"'.str_replace('\"', '\"\"', $value).'\"';\n        }, $this->values);\n\n        return $this->rule.':'.implode(',', $values);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/NotIn.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nclass NotIn\n{\n    /**\n     * The name of the rule.\n     */\n    protected $rule = 'not_in';\n\n    /**\n     * The accepted values.\n     *\n     * @var array\n     */\n    protected $values;\n\n    /**\n     * Create a new \"not in\" rule instance.\n     *\n     * @param  array  $values\n     * @return void\n     */\n    public function __construct(array $values)\n    {\n        $this->values = $values;\n    }\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        $values = array_map(function ($value) {\n            return '\"'.str_replace('\"', '\"\"', $value).'\"';\n        }, $this->values);\n\n        return $this->rule.':'.implode(',', $values);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/RequiredIf.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nclass RequiredIf\n{\n    /**\n     * The condition that validates the attribute.\n     *\n     * @var callable|bool\n     */\n    public $condition;\n\n    /**\n     * Create a new required validation rule based on a condition.\n     *\n     * @param  callable|bool  $condition\n     * @return void\n     */\n    public function __construct($condition)\n    {\n        $this->condition = $condition;\n    }\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if (is_callable($this->condition)) {\n            return call_user_func($this->condition) ? 'required' : '';\n        }\n\n        return $this->condition ? 'required' : '';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Rules/Unique.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation\\Rules;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass Unique\n{\n    use DatabaseRule;\n\n    /**\n     * The ID that should be ignored.\n     *\n     * @var mixed\n     */\n    protected $ignore;\n\n    /**\n     * The name of the ID column.\n     *\n     * @var string\n     */\n    protected $idColumn = 'id';\n\n    /**\n     * Ignore the given ID during the unique check.\n     *\n     * @param  mixed  $id\n     * @param  string|null  $idColumn\n     * @return $this\n     */\n    public function ignore($id, $idColumn = null)\n    {\n        if ($id instanceof Model) {\n            return $this->ignoreModel($id, $idColumn);\n        }\n\n        $this->ignore = $id;\n        $this->idColumn = $idColumn ?? 'id';\n\n        return $this;\n    }\n\n    /**\n     * Ignore the given model during the unique check.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @param  string|null  $idColumn\n     * @return $this\n     */\n    public function ignoreModel($model, $idColumn = null)\n    {\n        $this->idColumn = $idColumn ?? $model->getKeyName();\n        $this->ignore = $model->{$this->idColumn};\n\n        return $this;\n    }\n\n    /**\n     * Convert the rule to a validation string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return rtrim(sprintf('unique:%s,%s,%s,%s,%s',\n            $this->table,\n            $this->column,\n            $this->ignore ? '\"'.addslashes($this->ignore).'\"' : 'NULL',\n            $this->idColumn,\n            $this->formatWheres()\n        ), ',');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/UnauthorizedException.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse RuntimeException;\n\nclass UnauthorizedException extends RuntimeException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\n/**\n * Provides default implementation of ValidatesWhenResolved contract.\n */\ntrait ValidatesWhenResolvedTrait\n{\n    /**\n     * Validate the class instance.\n     *\n     * @return void\n     */\n    public function validateResolved()\n    {\n        $this->prepareForValidation();\n\n        if (! $this->passesAuthorization()) {\n            $this->failedAuthorization();\n        }\n\n        $instance = $this->getValidatorInstance();\n\n        if ($instance->fails()) {\n            $this->failedValidation($instance);\n        }\n    }\n\n    /**\n     * Prepare the data for validation.\n     *\n     * @return void\n     */\n    protected function prepareForValidation()\n    {\n        // no default action\n    }\n\n    /**\n     * Get the validator instance for the request.\n     *\n     * @return \\Illuminate\\Validation\\Validator\n     */\n    protected function getValidatorInstance()\n    {\n        return $this->validator();\n    }\n\n    /**\n     * Handle a failed validation attempt.\n     *\n     * @param  \\Illuminate\\Validation\\Validator  $validator\n     * @return void\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    protected function failedValidation(Validator $validator)\n    {\n        throw new ValidationException($validator);\n    }\n\n    /**\n     * Determine if the request passes the authorization check.\n     *\n     * @return bool\n     */\n    protected function passesAuthorization()\n    {\n        if (method_exists($this, 'authorize')) {\n            return $this->authorize();\n        }\n\n        return true;\n    }\n\n    /**\n     * Handle a failed authorization attempt.\n     *\n     * @return void\n     *\n     * @throws \\Illuminate\\Validation\\UnauthorizedException\n     */\n    protected function failedAuthorization()\n    {\n        throw new UnauthorizedException;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ValidationData.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\n\nclass ValidationData\n{\n    /**\n     * Initialize and gather data for given attribute.\n     *\n     * @param  string  $attribute\n     * @param  array  $masterData\n     * @return array\n     */\n    public static function initializeAndGatherData($attribute, $masterData)\n    {\n        $data = Arr::dot(static::initializeAttributeOnData($attribute, $masterData));\n\n        return array_merge($data, static::extractValuesForWildcards(\n            $masterData, $data, $attribute\n        ));\n    }\n\n    /**\n     * Gather a copy of the attribute data filled with any missing attributes.\n     *\n     * @param  string  $attribute\n     * @param  array  $masterData\n     * @return array\n     */\n    protected static function initializeAttributeOnData($attribute, $masterData)\n    {\n        $explicitPath = static::getLeadingExplicitAttributePath($attribute);\n\n        $data = static::extractDataFromPath($explicitPath, $masterData);\n\n        if (! Str::contains($attribute, '*') || Str::endsWith($attribute, '*')) {\n            return $data;\n        }\n\n        return data_set($data, $attribute, null, true);\n    }\n\n    /**\n     * Get all of the exact attribute values for a given wildcard attribute.\n     *\n     * @param  array  $masterData\n     * @param  array  $data\n     * @param  string  $attribute\n     * @return array\n     */\n    protected static function extractValuesForWildcards($masterData, $data, $attribute)\n    {\n        $keys = [];\n\n        $pattern = str_replace('\\*', '[^\\.]+', preg_quote($attribute));\n\n        foreach ($data as $key => $value) {\n            if ((bool) preg_match('/^'.$pattern.'/', $key, $matches)) {\n                $keys[] = $matches[0];\n            }\n        }\n\n        $keys = array_unique($keys);\n\n        $data = [];\n\n        foreach ($keys as $key) {\n            $data[$key] = Arr::get($masterData, $key);\n        }\n\n        return $data;\n    }\n\n    /**\n     * Extract data based on the given dot-notated path.\n     *\n     * Used to extract a sub-section of the data for faster iteration.\n     *\n     * @param  string  $attribute\n     * @param  array  $masterData\n     * @return array\n     */\n    public static function extractDataFromPath($attribute, $masterData)\n    {\n        $results = [];\n\n        $value = Arr::get($masterData, $attribute, '__missing__');\n\n        if ($value !== '__missing__') {\n            Arr::set($results, $attribute, $value);\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get the explicit part of the attribute name.\n     *\n     * E.g. 'foo.bar.*.baz' -> 'foo.bar'\n     *\n     * Allows us to not spin through all of the flattened data for some operations.\n     *\n     * @param  string  $attribute\n     * @return string\n     */\n    public static function getLeadingExplicitAttributePath($attribute)\n    {\n        return rtrim(explode('*', $attribute)[0], '.') ?: null;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ValidationException.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Exception;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Facades\\Validator as ValidatorFacade;\n\nclass ValidationException extends Exception\n{\n    /**\n     * The validator instance.\n     *\n     * @var \\Illuminate\\Contracts\\Validation\\Validator\n     */\n    public $validator;\n\n    /**\n     * The recommended response to send to the client.\n     *\n     * @var \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public $response;\n\n    /**\n     * The status code to use for the response.\n     *\n     * @var int\n     */\n    public $status = 422;\n\n    /**\n     * The name of the error bag.\n     *\n     * @var string\n     */\n    public $errorBag;\n\n    /**\n     * The path the client should be redirected to.\n     *\n     * @var string\n     */\n    public $redirectTo;\n\n    /**\n     * Create a new exception instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Validation\\Validator  $validator\n     * @param  \\Symfony\\Component\\HttpFoundation\\Response|null  $response\n     * @param  string  $errorBag\n     * @return void\n     */\n    public function __construct($validator, $response = null, $errorBag = 'default')\n    {\n        parent::__construct('The given data was invalid.');\n\n        $this->response = $response;\n        $this->errorBag = $errorBag;\n        $this->validator = $validator;\n    }\n\n    /**\n     * Create a new validation exception from a plain array of messages.\n     *\n     * @param  array  $messages\n     * @return static\n     */\n    public static function withMessages(array $messages)\n    {\n        return new static(tap(ValidatorFacade::make([], []), function ($validator) use ($messages) {\n            foreach ($messages as $key => $value) {\n                foreach (Arr::wrap($value) as $message) {\n                    $validator->errors()->add($key, $message);\n                }\n            }\n        }));\n    }\n\n    /**\n     * Get all of the validation error messages.\n     *\n     * @return array\n     */\n    public function errors()\n    {\n        return $this->validator->errors()->messages();\n    }\n\n    /**\n     * Set the HTTP status code to be used for the response.\n     *\n     * @param  int  $status\n     * @return $this\n     */\n    public function status($status)\n    {\n        $this->status = $status;\n\n        return $this;\n    }\n\n    /**\n     * Set the error bag on the exception.\n     *\n     * @param  string  $errorBag\n     * @return $this\n     */\n    public function errorBag($errorBag)\n    {\n        $this->errorBag = $errorBag;\n\n        return $this;\n    }\n\n    /**\n     * Set the URL to redirect to on a validation error.\n     *\n     * @param  string  $url\n     * @return $this\n     */\n    public function redirectTo($url)\n    {\n        $this->redirectTo = $url;\n\n        return $this;\n    }\n\n    /**\n     * Get the underlying response instance.\n     *\n     * @return \\Symfony\\Component\\HttpFoundation\\Response|null\n     */\n    public function getResponse()\n    {\n        return $this->response;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ValidationRuleParser.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Closure;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Validation\\Rules\\Exists;\nuse Illuminate\\Validation\\Rules\\Unique;\nuse Illuminate\\Contracts\\Validation\\Rule as RuleContract;\n\nclass ValidationRuleParser\n{\n    /**\n     * The data being validated.\n     *\n     * @var array\n     */\n    public $data;\n\n    /**\n     * The implicit attributes.\n     *\n     * @var array\n     */\n    public $implicitAttributes = [];\n\n    /**\n     * Create a new validation rule parser.\n     *\n     * @param  array  $data\n     * @return void\n     */\n    public function __construct(array $data)\n    {\n        $this->data = $data;\n    }\n\n    /**\n     * Parse the human-friendly rules into a full rules array for the validator.\n     *\n     * @param  array  $rules\n     * @return \\stdClass\n     */\n    public function explode($rules)\n    {\n        $this->implicitAttributes = [];\n\n        $rules = $this->explodeRules($rules);\n\n        return (object) [\n            'rules' => $rules,\n            'implicitAttributes' => $this->implicitAttributes,\n        ];\n    }\n\n    /**\n     * Explode the rules into an array of explicit rules.\n     *\n     * @param  array  $rules\n     * @return array\n     */\n    protected function explodeRules($rules)\n    {\n        foreach ($rules as $key => $rule) {\n            if (Str::contains($key, '*')) {\n                $rules = $this->explodeWildcardRules($rules, $key, [$rule]);\n\n                unset($rules[$key]);\n            } else {\n                $rules[$key] = $this->explodeExplicitRule($rule);\n            }\n        }\n\n        return $rules;\n    }\n\n    /**\n     * Explode the explicit rule into an array if necessary.\n     *\n     * @param  mixed  $rule\n     * @return array\n     */\n    protected function explodeExplicitRule($rule)\n    {\n        if (is_string($rule)) {\n            return explode('|', $rule);\n        } elseif (is_object($rule)) {\n            return [$this->prepareRule($rule)];\n        }\n\n        return array_map([$this, 'prepareRule'], $rule);\n    }\n\n    /**\n     * Prepare the given rule for the Validator.\n     *\n     * @param  mixed  $rule\n     * @return mixed\n     */\n    protected function prepareRule($rule)\n    {\n        if ($rule instanceof Closure) {\n            $rule = new ClosureValidationRule($rule);\n        }\n\n        if (! is_object($rule) ||\n            $rule instanceof RuleContract ||\n            ($rule instanceof Exists && $rule->queryCallbacks()) ||\n            ($rule instanceof Unique && $rule->queryCallbacks())) {\n            return $rule;\n        }\n\n        return (string) $rule;\n    }\n\n    /**\n     * Define a set of rules that apply to each element in an array attribute.\n     *\n     * @param  array  $results\n     * @param  string  $attribute\n     * @param  string|array  $rules\n     * @return array\n     */\n    protected function explodeWildcardRules($results, $attribute, $rules)\n    {\n        $pattern = str_replace('\\*', '[^\\.]*', preg_quote($attribute));\n\n        $data = ValidationData::initializeAndGatherData($attribute, $this->data);\n\n        foreach ($data as $key => $value) {\n            if (Str::startsWith($key, $attribute) || (bool) preg_match('/^'.$pattern.'\\z/', $key)) {\n                foreach ((array) $rules as $rule) {\n                    $this->implicitAttributes[$attribute][] = $key;\n\n                    $results = $this->mergeRules($results, $key, $rule);\n                }\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Merge additional rules into a given attribute(s).\n     *\n     * @param  array  $results\n     * @param  string|array  $attribute\n     * @param  string|array  $rules\n     * @return array\n     */\n    public function mergeRules($results, $attribute, $rules = [])\n    {\n        if (is_array($attribute)) {\n            foreach ((array) $attribute as $innerAttribute => $innerRules) {\n                $results = $this->mergeRulesForAttribute($results, $innerAttribute, $innerRules);\n            }\n\n            return $results;\n        }\n\n        return $this->mergeRulesForAttribute(\n            $results, $attribute, $rules\n        );\n    }\n\n    /**\n     * Merge additional rules into a given attribute.\n     *\n     * @param  array  $results\n     * @param  string  $attribute\n     * @param  string|array  $rules\n     * @return array\n     */\n    protected function mergeRulesForAttribute($results, $attribute, $rules)\n    {\n        $merge = head($this->explodeRules([$rules]));\n\n        $results[$attribute] = array_merge(\n            isset($results[$attribute]) ? $this->explodeExplicitRule($results[$attribute]) : [], $merge\n        );\n\n        return $results;\n    }\n\n    /**\n     * Extract the rule name and parameters from a rule.\n     *\n     * @param  array|string  $rules\n     * @return array\n     */\n    public static function parse($rules)\n    {\n        if ($rules instanceof RuleContract) {\n            return [$rules, []];\n        }\n\n        if (is_array($rules)) {\n            $rules = static::parseArrayRule($rules);\n        } else {\n            $rules = static::parseStringRule($rules);\n        }\n\n        $rules[0] = static::normalizeRule($rules[0]);\n\n        return $rules;\n    }\n\n    /**\n     * Parse an array based rule.\n     *\n     * @param  array  $rules\n     * @return array\n     */\n    protected static function parseArrayRule(array $rules)\n    {\n        return [Str::studly(trim(Arr::get($rules, 0))), array_slice($rules, 1)];\n    }\n\n    /**\n     * Parse a string based rule.\n     *\n     * @param  string  $rules\n     * @return array\n     */\n    protected static function parseStringRule($rules)\n    {\n        $parameters = [];\n\n        // The format for specifying validation rules and parameters follows an\n        // easy {rule}:{parameters} formatting convention. For instance the\n        // rule \"Max:3\" states that the value may only be three letters.\n        if (strpos($rules, ':') !== false) {\n            [$rules, $parameter] = explode(':', $rules, 2);\n\n            $parameters = static::parseParameters($rules, $parameter);\n        }\n\n        return [Str::studly(trim($rules)), $parameters];\n    }\n\n    /**\n     * Parse a parameter list.\n     *\n     * @param  string  $rule\n     * @param  string  $parameter\n     * @return array\n     */\n    protected static function parseParameters($rule, $parameter)\n    {\n        $rule = strtolower($rule);\n\n        if (in_array($rule, ['regex', 'not_regex', 'notregex'], true)) {\n            return [$parameter];\n        }\n\n        return str_getcsv($parameter);\n    }\n\n    /**\n     * Normalizes a rule so that we can accept short types.\n     *\n     * @param  string  $rule\n     * @return string\n     */\n    protected static function normalizeRule($rule)\n    {\n        switch ($rule) {\n            case 'Int':\n                return 'Integer';\n            case 'Bool':\n                return 'Boolean';\n            default:\n                return $rule;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/ValidationServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\Contracts\\Support\\DeferrableProvider;\n\nclass ValidationServiceProvider extends ServiceProvider implements DeferrableProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerPresenceVerifier();\n\n        $this->registerValidationFactory();\n    }\n\n    /**\n     * Register the validation factory.\n     *\n     * @return void\n     */\n    protected function registerValidationFactory()\n    {\n        $this->app->singleton('validator', function ($app) {\n            $validator = new Factory($app['translator'], $app);\n\n            // The validation presence verifier is responsible for determining the existence of\n            // values in a given data collection which is typically a relational database or\n            // other persistent data stores. It is used to check for \"uniqueness\" as well.\n            if (isset($app['db'], $app['validation.presence'])) {\n                $validator->setPresenceVerifier($app['validation.presence']);\n            }\n\n            return $validator;\n        });\n    }\n\n    /**\n     * Register the database presence verifier.\n     *\n     * @return void\n     */\n    protected function registerPresenceVerifier()\n    {\n        $this->app->singleton('validation.presence', function ($app) {\n            return new DatabasePresenceVerifier($app['db']);\n        });\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return [\n            'validator', 'validation.presence',\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/Validator.php",
    "content": "<?php\n\nnamespace Illuminate\\Validation;\n\nuse RuntimeException;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\Fluent;\nuse Illuminate\\Support\\MessageBag;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\Translation\\Translator;\nuse Illuminate\\Contracts\\Validation\\ImplicitRule;\nuse Symfony\\Component\\HttpFoundation\\File\\UploadedFile;\nuse Illuminate\\Contracts\\Validation\\Rule as RuleContract;\nuse Illuminate\\Contracts\\Validation\\Validator as ValidatorContract;\n\nclass Validator implements ValidatorContract\n{\n    use Concerns\\FormatsMessages,\n        Concerns\\ValidatesAttributes;\n\n    /**\n     * The Translator implementation.\n     *\n     * @var \\Illuminate\\Contracts\\Translation\\Translator\n     */\n    protected $translator;\n\n    /**\n     * The container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * The Presence Verifier implementation.\n     *\n     * @var \\Illuminate\\Validation\\PresenceVerifierInterface\n     */\n    protected $presenceVerifier;\n\n    /**\n     * The failed validation rules.\n     *\n     * @var array\n     */\n    protected $failedRules = [];\n\n    /**\n     * The message bag instance.\n     *\n     * @var \\Illuminate\\Support\\MessageBag\n     */\n    protected $messages;\n\n    /**\n     * The data under validation.\n     *\n     * @var array\n     */\n    protected $data;\n\n    /**\n     * The initial rules provided.\n     *\n     * @var array\n     */\n    protected $initialRules;\n\n    /**\n     * The rules to be applied to the data.\n     *\n     * @var array\n     */\n    protected $rules;\n\n    /**\n     * The current rule that is validating.\n     *\n     * @var string\n     */\n    protected $currentRule;\n\n    /**\n     * The array of wildcard attributes with their asterisks expanded.\n     *\n     * @var array\n     */\n    protected $implicitAttributes = [];\n\n    /**\n     * The cached data for the \"distinct\" rule.\n     *\n     * @var array\n     */\n    protected $distinctValues = [];\n\n    /**\n     * All of the registered \"after\" callbacks.\n     *\n     * @var array\n     */\n    protected $after = [];\n\n    /**\n     * The array of custom error messages.\n     *\n     * @var array\n     */\n    public $customMessages = [];\n\n    /**\n     * The array of fallback error messages.\n     *\n     * @var array\n     */\n    public $fallbackMessages = [];\n\n    /**\n     * The array of custom attribute names.\n     *\n     * @var array\n     */\n    public $customAttributes = [];\n\n    /**\n     * The array of custom displayable values.\n     *\n     * @var array\n     */\n    public $customValues = [];\n\n    /**\n     * All of the custom validator extensions.\n     *\n     * @var array\n     */\n    public $extensions = [];\n\n    /**\n     * All of the custom replacer extensions.\n     *\n     * @var array\n     */\n    public $replacers = [];\n\n    /**\n     * The validation rules that may be applied to files.\n     *\n     * @var array\n     */\n    protected $fileRules = [\n        'File', 'Image', 'Mimes', 'Mimetypes', 'Min',\n        'Max', 'Size', 'Between', 'Dimensions',\n    ];\n\n    /**\n     * The validation rules that imply the field is required.\n     *\n     * @var array\n     */\n    protected $implicitRules = [\n        'Required', 'Filled', 'RequiredWith', 'RequiredWithAll', 'RequiredWithout',\n        'RequiredWithoutAll', 'RequiredIf', 'RequiredUnless', 'Accepted', 'Present',\n    ];\n\n    /**\n     * The validation rules which depend on other fields as parameters.\n     *\n     * @var array\n     */\n    protected $dependentRules = [\n        'RequiredWith', 'RequiredWithAll', 'RequiredWithout', 'RequiredWithoutAll',\n        'RequiredIf', 'RequiredUnless', 'Confirmed', 'Same', 'Different', 'Unique',\n        'Before', 'After', 'BeforeOrEqual', 'AfterOrEqual', 'Gt', 'Lt', 'Gte', 'Lte',\n    ];\n\n    /**\n     * The size related validation rules.\n     *\n     * @var array\n     */\n    protected $sizeRules = ['Size', 'Between', 'Min', 'Max', 'Gt', 'Lt', 'Gte', 'Lte'];\n\n    /**\n     * The numeric related validation rules.\n     *\n     * @var array\n     */\n    protected $numericRules = ['Numeric', 'Integer'];\n\n    /**\n     * Create a new Validator instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Translation\\Translator  $translator\n     * @param  array  $data\n     * @param  array  $rules\n     * @param  array  $messages\n     * @param  array  $customAttributes\n     * @return void\n     */\n    public function __construct(Translator $translator, array $data, array $rules,\n                                array $messages = [], array $customAttributes = [])\n    {\n        $this->initialRules = $rules;\n        $this->translator = $translator;\n        $this->customMessages = $messages;\n        $this->data = $this->parseData($data);\n        $this->customAttributes = $customAttributes;\n\n        $this->setRules($rules);\n    }\n\n    /**\n     * Parse the data array, converting dots to ->.\n     *\n     * @param  array  $data\n     * @return array\n     */\n    public function parseData(array $data)\n    {\n        $newData = [];\n\n        foreach ($data as $key => $value) {\n            if (is_array($value)) {\n                $value = $this->parseData($value);\n            }\n\n            // If the data key contains a dot, we will replace it with another character\n            // sequence so it doesn't interfere with dot processing when working with\n            // array based validation rules and array_dot later in the validations.\n            if (Str::contains($key, '.')) {\n                $newData[str_replace('.', '->', $key)] = $value;\n            } else {\n                $newData[$key] = $value;\n            }\n        }\n\n        return $newData;\n    }\n\n    /**\n     * Add an after validation callback.\n     *\n     * @param  callable|string  $callback\n     * @return $this\n     */\n    public function after($callback)\n    {\n        $this->after[] = function () use ($callback) {\n            return call_user_func_array($callback, [$this]);\n        };\n\n        return $this;\n    }\n\n    /**\n     * Determine if the data passes the validation rules.\n     *\n     * @return bool\n     */\n    public function passes()\n    {\n        $this->messages = new MessageBag;\n\n        [$this->distinctValues, $this->failedRules] = [[], []];\n\n        // We'll spin through each rule, validating the attributes attached to that\n        // rule. Any error messages will be added to the containers with each of\n        // the other error messages, returning true if we don't have messages.\n        foreach ($this->rules as $attribute => $rules) {\n            $attribute = str_replace('\\.', '->', $attribute);\n\n            foreach ($rules as $rule) {\n                $this->validateAttribute($attribute, $rule);\n\n                if ($this->shouldStopValidating($attribute)) {\n                    break;\n                }\n            }\n        }\n\n        // Here we will spin through all of the \"after\" hooks on this validator and\n        // fire them off. This gives the callbacks a chance to perform all kinds\n        // of other validation that needs to get wrapped up in this operation.\n        foreach ($this->after as $after) {\n            call_user_func($after);\n        }\n\n        return $this->messages->isEmpty();\n    }\n\n    /**\n     * Determine if the data fails the validation rules.\n     *\n     * @return bool\n     */\n    public function fails()\n    {\n        return ! $this->passes();\n    }\n\n    /**\n     * Run the validator's rules against its data.\n     *\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validate()\n    {\n        if ($this->fails()) {\n            throw new ValidationException($this);\n        }\n\n        return $this->validated();\n    }\n\n    /**\n     * Get the attributes and values that were validated.\n     *\n     * @return array\n     *\n     * @throws \\Illuminate\\Validation\\ValidationException\n     */\n    public function validated()\n    {\n        if ($this->invalid()) {\n            throw new ValidationException($this);\n        }\n\n        $results = [];\n\n        $missingValue = Str::random(10);\n\n        foreach (array_keys($this->getRules()) as $key) {\n            $value = data_get($this->getData(), $key, $missingValue);\n\n            if ($value !== $missingValue) {\n                Arr::set($results, $key, $value);\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Validate a given attribute against a rule.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @return void\n     */\n    protected function validateAttribute($attribute, $rule)\n    {\n        $this->currentRule = $rule;\n\n        [$rule, $parameters] = ValidationRuleParser::parse($rule);\n\n        if ($rule == '') {\n            return;\n        }\n\n        // First we will get the correct keys for the given attribute in case the field is nested in\n        // an array. Then we determine if the given rule accepts other field names as parameters.\n        // If so, we will replace any asterisks found in the parameters with the correct keys.\n        if (($keys = $this->getExplicitKeys($attribute)) &&\n            $this->dependsOnOtherFields($rule)) {\n            $parameters = $this->replaceAsterisksInParameters($parameters, $keys);\n        }\n\n        $value = $this->getValue($attribute);\n\n        // If the attribute is a file, we will verify that the file upload was actually successful\n        // and if it wasn't we will add a failure for the attribute. Files may not successfully\n        // upload if they are too large based on PHP's settings so we will bail in this case.\n        if ($value instanceof UploadedFile && ! $value->isValid() &&\n            $this->hasRule($attribute, array_merge($this->fileRules, $this->implicitRules))\n        ) {\n            return $this->addFailure($attribute, 'uploaded', []);\n        }\n\n        // If we have made it this far we will make sure the attribute is validatable and if it is\n        // we will call the validation method with the attribute. If a method returns false the\n        // attribute is invalid and we will add a failure message for this failing attribute.\n        $validatable = $this->isValidatable($rule, $attribute, $value);\n\n        if ($rule instanceof RuleContract) {\n            return $validatable\n                    ? $this->validateUsingCustomRule($attribute, $value, $rule)\n                    : null;\n        }\n\n        $method = \"validate{$rule}\";\n\n        if ($validatable && ! $this->$method($attribute, $value, $parameters, $this)) {\n            $this->addFailure($attribute, $rule, $parameters);\n        }\n    }\n\n    /**\n     * Determine if the given rule depends on other fields.\n     *\n     * @param  string  $rule\n     * @return bool\n     */\n    protected function dependsOnOtherFields($rule)\n    {\n        return in_array($rule, $this->dependentRules);\n    }\n\n    /**\n     * Get the explicit keys from an attribute flattened with dot notation.\n     *\n     * E.g. 'foo.1.bar.spark.baz' -> [1, 'spark'] for 'foo.*.bar.*.baz'\n     *\n     * @param  string  $attribute\n     * @return array\n     */\n    protected function getExplicitKeys($attribute)\n    {\n        $pattern = str_replace('\\*', '([^\\.]+)', preg_quote($this->getPrimaryAttribute($attribute), '/'));\n\n        if (preg_match('/^'.$pattern.'/', $attribute, $keys)) {\n            array_shift($keys);\n\n            return $keys;\n        }\n\n        return [];\n    }\n\n    /**\n     * Get the primary attribute name.\n     *\n     * For example, if \"name.0\" is given, \"name.*\" will be returned.\n     *\n     * @param  string  $attribute\n     * @return string\n     */\n    protected function getPrimaryAttribute($attribute)\n    {\n        foreach ($this->implicitAttributes as $unparsed => $parsed) {\n            if (in_array($attribute, $parsed)) {\n                return $unparsed;\n            }\n        }\n\n        return $attribute;\n    }\n\n    /**\n     * Replace each field parameter which has asterisks with the given keys.\n     *\n     * @param  array  $parameters\n     * @param  array  $keys\n     * @return array\n     */\n    protected function replaceAsterisksInParameters(array $parameters, array $keys)\n    {\n        return array_map(function ($field) use ($keys) {\n            return vsprintf(str_replace('*', '%s', $field), $keys);\n        }, $parameters);\n    }\n\n    /**\n     * Determine if the attribute is validatable.\n     *\n     * @param  object|string  $rule\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    protected function isValidatable($rule, $attribute, $value)\n    {\n        return $this->presentOrRuleIsImplicit($rule, $attribute, $value) &&\n               $this->passesOptionalCheck($attribute) &&\n               $this->isNotNullIfMarkedAsNullable($rule, $attribute) &&\n               $this->hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute);\n    }\n\n    /**\n     * Determine if the field is present, or the rule implies required.\n     *\n     * @param  object|string  $rule\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @return bool\n     */\n    protected function presentOrRuleIsImplicit($rule, $attribute, $value)\n    {\n        if (is_string($value) && trim($value) === '') {\n            return $this->isImplicit($rule);\n        }\n\n        return $this->validatePresent($attribute, $value) ||\n               $this->isImplicit($rule);\n    }\n\n    /**\n     * Determine if a given rule implies the attribute is required.\n     *\n     * @param  object|string  $rule\n     * @return bool\n     */\n    protected function isImplicit($rule)\n    {\n        return $rule instanceof ImplicitRule ||\n               in_array($rule, $this->implicitRules);\n    }\n\n    /**\n     * Determine if the attribute passes any optional check.\n     *\n     * @param  string  $attribute\n     * @return bool\n     */\n    protected function passesOptionalCheck($attribute)\n    {\n        if (! $this->hasRule($attribute, ['Sometimes'])) {\n            return true;\n        }\n\n        $data = ValidationData::initializeAndGatherData($attribute, $this->data);\n\n        return array_key_exists($attribute, $data)\n            || array_key_exists($attribute, $this->data);\n    }\n\n    /**\n     * Determine if the attribute fails the nullable check.\n     *\n     * @param  string  $rule\n     * @param  string  $attribute\n     * @return bool\n     */\n    protected function isNotNullIfMarkedAsNullable($rule, $attribute)\n    {\n        if ($this->isImplicit($rule) || ! $this->hasRule($attribute, ['Nullable'])) {\n            return true;\n        }\n\n        return ! is_null(Arr::get($this->data, $attribute, 0));\n    }\n\n    /**\n     * Determine if it's a necessary presence validation.\n     *\n     * This is to avoid possible database type comparison errors.\n     *\n     * @param  string  $rule\n     * @param  string  $attribute\n     * @return bool\n     */\n    protected function hasNotFailedPreviousRuleIfPresenceRule($rule, $attribute)\n    {\n        return in_array($rule, ['Unique', 'Exists']) ? ! $this->messages->has($attribute) : true;\n    }\n\n    /**\n     * Validate an attribute using a custom rule object.\n     *\n     * @param  string  $attribute\n     * @param  mixed  $value\n     * @param  \\Illuminate\\Contracts\\Validation\\Rule  $rule\n     * @return void\n     */\n    protected function validateUsingCustomRule($attribute, $value, $rule)\n    {\n        if (! $rule->passes($attribute, $value)) {\n            $this->failedRules[$attribute][get_class($rule)] = [];\n\n            $messages = (array) $rule->message();\n\n            foreach ($messages as $message) {\n                $this->messages->add($attribute, $this->makeReplacements(\n                    $message, $attribute, get_class($rule), []\n                ));\n            }\n        }\n    }\n\n    /**\n     * Check if we should stop further validations on a given attribute.\n     *\n     * @param  string  $attribute\n     * @return bool\n     */\n    protected function shouldStopValidating($attribute)\n    {\n        if ($this->hasRule($attribute, ['Bail'])) {\n            return $this->messages->has($attribute);\n        }\n\n        if (isset($this->failedRules[$attribute]) &&\n            array_key_exists('uploaded', $this->failedRules[$attribute])) {\n            return true;\n        }\n\n        // In case the attribute has any rule that indicates that the field is required\n        // and that rule already failed then we should stop validation at this point\n        // as now there is no point in calling other rules with this field empty.\n        return $this->hasRule($attribute, $this->implicitRules) &&\n               isset($this->failedRules[$attribute]) &&\n               array_intersect(array_keys($this->failedRules[$attribute]), $this->implicitRules);\n    }\n\n    /**\n     * Add a failed rule and error message to the collection.\n     *\n     * @param  string  $attribute\n     * @param  string  $rule\n     * @param  array  $parameters\n     * @return void\n     */\n    public function addFailure($attribute, $rule, $parameters = [])\n    {\n        if (! $this->messages) {\n            $this->passes();\n        }\n\n        $this->messages->add($attribute, $this->makeReplacements(\n            $this->getMessage($attribute, $rule), $attribute, $rule, $parameters\n        ));\n\n        $this->failedRules[$attribute][$rule] = $parameters;\n    }\n\n    /**\n     * Returns the data which was valid.\n     *\n     * @return array\n     */\n    public function valid()\n    {\n        if (! $this->messages) {\n            $this->passes();\n        }\n\n        return array_diff_key(\n            $this->data, $this->attributesThatHaveMessages()\n        );\n    }\n\n    /**\n     * Returns the data which was invalid.\n     *\n     * @return array\n     */\n    public function invalid()\n    {\n        if (! $this->messages) {\n            $this->passes();\n        }\n\n        return array_intersect_key(\n            $this->data, $this->attributesThatHaveMessages()\n        );\n    }\n\n    /**\n     * Generate an array of all attributes that have messages.\n     *\n     * @return array\n     */\n    protected function attributesThatHaveMessages()\n    {\n        return collect($this->messages()->toArray())->map(function ($message, $key) {\n            return explode('.', $key)[0];\n        })->unique()->flip()->all();\n    }\n\n    /**\n     * Get the failed validation rules.\n     *\n     * @return array\n     */\n    public function failed()\n    {\n        return $this->failedRules;\n    }\n\n    /**\n     * Get the message container for the validator.\n     *\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function messages()\n    {\n        if (! $this->messages) {\n            $this->passes();\n        }\n\n        return $this->messages;\n    }\n\n    /**\n     * An alternative more semantic shortcut to the message container.\n     *\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function errors()\n    {\n        return $this->messages();\n    }\n\n    /**\n     * Get the messages for the instance.\n     *\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    public function getMessageBag()\n    {\n        return $this->messages();\n    }\n\n    /**\n     * Determine if the given attribute has a rule in the given set.\n     *\n     * @param  string  $attribute\n     * @param  string|array  $rules\n     * @return bool\n     */\n    public function hasRule($attribute, $rules)\n    {\n        return ! is_null($this->getRule($attribute, $rules));\n    }\n\n    /**\n     * Get a rule and its parameters for a given attribute.\n     *\n     * @param  string  $attribute\n     * @param  string|array  $rules\n     * @return array|null\n     */\n    protected function getRule($attribute, $rules)\n    {\n        if (! array_key_exists($attribute, $this->rules)) {\n            return;\n        }\n\n        $rules = (array) $rules;\n\n        foreach ($this->rules[$attribute] as $rule) {\n            [$rule, $parameters] = ValidationRuleParser::parse($rule);\n\n            if (in_array($rule, $rules)) {\n                return [$rule, $parameters];\n            }\n        }\n    }\n\n    /**\n     * Get the data under validation.\n     *\n     * @return array\n     */\n    public function attributes()\n    {\n        return $this->getData();\n    }\n\n    /**\n     * Get the data under validation.\n     *\n     * @return array\n     */\n    public function getData()\n    {\n        return $this->data;\n    }\n\n    /**\n     * Set the data under validation.\n     *\n     * @param  array  $data\n     * @return $this\n     */\n    public function setData(array $data)\n    {\n        $this->data = $this->parseData($data);\n\n        $this->setRules($this->initialRules);\n\n        return $this;\n    }\n\n    /**\n     * Get the value of a given attribute.\n     *\n     * @param  string  $attribute\n     * @return mixed\n     */\n    protected function getValue($attribute)\n    {\n        return Arr::get($this->data, $attribute);\n    }\n\n    /**\n     * Get the validation rules.\n     *\n     * @return array\n     */\n    public function getRules()\n    {\n        return $this->rules;\n    }\n\n    /**\n     * Set the validation rules.\n     *\n     * @param  array  $rules\n     * @return $this\n     */\n    public function setRules(array $rules)\n    {\n        $this->initialRules = $rules;\n\n        $this->rules = [];\n\n        $this->addRules($rules);\n\n        return $this;\n    }\n\n    /**\n     * Parse the given rules and merge them into current rules.\n     *\n     * @param  array  $rules\n     * @return void\n     */\n    public function addRules($rules)\n    {\n        // The primary purpose of this parser is to expand any \"*\" rules to the all\n        // of the explicit rules needed for the given data. For example the rule\n        // names.* would get expanded to names.0, names.1, etc. for this data.\n        $response = (new ValidationRuleParser($this->data))\n                            ->explode($rules);\n\n        $this->rules = array_merge_recursive(\n            $this->rules, $response->rules\n        );\n\n        $this->implicitAttributes = array_merge(\n            $this->implicitAttributes, $response->implicitAttributes\n        );\n    }\n\n    /**\n     * Add conditions to a given field based on a Closure.\n     *\n     * @param  string|array  $attribute\n     * @param  string|array  $rules\n     * @param  callable  $callback\n     * @return $this\n     */\n    public function sometimes($attribute, $rules, callable $callback)\n    {\n        $payload = new Fluent($this->getData());\n\n        if (call_user_func($callback, $payload)) {\n            foreach ((array) $attribute as $key) {\n                $this->addRules([$key => $rules]);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Register an array of custom validator extensions.\n     *\n     * @param  array  $extensions\n     * @return void\n     */\n    public function addExtensions(array $extensions)\n    {\n        if ($extensions) {\n            $keys = array_map('\\Illuminate\\Support\\Str::snake', array_keys($extensions));\n\n            $extensions = array_combine($keys, array_values($extensions));\n        }\n\n        $this->extensions = array_merge($this->extensions, $extensions);\n    }\n\n    /**\n     * Register an array of custom implicit validator extensions.\n     *\n     * @param  array  $extensions\n     * @return void\n     */\n    public function addImplicitExtensions(array $extensions)\n    {\n        $this->addExtensions($extensions);\n\n        foreach ($extensions as $rule => $extension) {\n            $this->implicitRules[] = Str::studly($rule);\n        }\n    }\n\n    /**\n     * Register an array of custom implicit validator extensions.\n     *\n     * @param  array  $extensions\n     * @return void\n     */\n    public function addDependentExtensions(array $extensions)\n    {\n        $this->addExtensions($extensions);\n\n        foreach ($extensions as $rule => $extension) {\n            $this->dependentRules[] = Str::studly($rule);\n        }\n    }\n\n    /**\n     * Register a custom validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @return void\n     */\n    public function addExtension($rule, $extension)\n    {\n        $this->extensions[Str::snake($rule)] = $extension;\n    }\n\n    /**\n     * Register a custom implicit validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @return void\n     */\n    public function addImplicitExtension($rule, $extension)\n    {\n        $this->addExtension($rule, $extension);\n\n        $this->implicitRules[] = Str::studly($rule);\n    }\n\n    /**\n     * Register a custom dependent validator extension.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $extension\n     * @return void\n     */\n    public function addDependentExtension($rule, $extension)\n    {\n        $this->addExtension($rule, $extension);\n\n        $this->dependentRules[] = Str::studly($rule);\n    }\n\n    /**\n     * Register an array of custom validator message replacers.\n     *\n     * @param  array  $replacers\n     * @return void\n     */\n    public function addReplacers(array $replacers)\n    {\n        if ($replacers) {\n            $keys = array_map('\\Illuminate\\Support\\Str::snake', array_keys($replacers));\n\n            $replacers = array_combine($keys, array_values($replacers));\n        }\n\n        $this->replacers = array_merge($this->replacers, $replacers);\n    }\n\n    /**\n     * Register a custom validator message replacer.\n     *\n     * @param  string  $rule\n     * @param  \\Closure|string  $replacer\n     * @return void\n     */\n    public function addReplacer($rule, $replacer)\n    {\n        $this->replacers[Str::snake($rule)] = $replacer;\n    }\n\n    /**\n     * Set the custom messages for the validator.\n     *\n     * @param  array  $messages\n     * @return $this\n     */\n    public function setCustomMessages(array $messages)\n    {\n        $this->customMessages = array_merge($this->customMessages, $messages);\n\n        return $this;\n    }\n\n    /**\n     * Set the custom attributes on the validator.\n     *\n     * @param  array  $attributes\n     * @return $this\n     */\n    public function setAttributeNames(array $attributes)\n    {\n        $this->customAttributes = $attributes;\n\n        return $this;\n    }\n\n    /**\n     * Add custom attributes to the validator.\n     *\n     * @param  array  $customAttributes\n     * @return $this\n     */\n    public function addCustomAttributes(array $customAttributes)\n    {\n        $this->customAttributes = array_merge($this->customAttributes, $customAttributes);\n\n        return $this;\n    }\n\n    /**\n     * Set the custom values on the validator.\n     *\n     * @param  array  $values\n     * @return $this\n     */\n    public function setValueNames(array $values)\n    {\n        $this->customValues = $values;\n\n        return $this;\n    }\n\n    /**\n     * Add the custom values for the validator.\n     *\n     * @param  array  $customValues\n     * @return $this\n     */\n    public function addCustomValues(array $customValues)\n    {\n        $this->customValues = array_merge($this->customValues, $customValues);\n\n        return $this;\n    }\n\n    /**\n     * Set the fallback messages for the validator.\n     *\n     * @param  array  $messages\n     * @return void\n     */\n    public function setFallbackMessages(array $messages)\n    {\n        $this->fallbackMessages = $messages;\n    }\n\n    /**\n     * Get the Presence Verifier implementation.\n     *\n     * @return \\Illuminate\\Validation\\PresenceVerifierInterface\n     *\n     * @throws \\RuntimeException\n     */\n    public function getPresenceVerifier()\n    {\n        if (! isset($this->presenceVerifier)) {\n            throw new RuntimeException('Presence verifier has not been set.');\n        }\n\n        return $this->presenceVerifier;\n    }\n\n    /**\n     * Get the Presence Verifier implementation.\n     *\n     * @param  string  $connection\n     * @return \\Illuminate\\Validation\\PresenceVerifierInterface\n     *\n     * @throws \\RuntimeException\n     */\n    public function getPresenceVerifierFor($connection)\n    {\n        return tap($this->getPresenceVerifier(), function ($verifier) use ($connection) {\n            $verifier->setConnection($connection);\n        });\n    }\n\n    /**\n     * Set the Presence Verifier implementation.\n     *\n     * @param  \\Illuminate\\Validation\\PresenceVerifierInterface  $presenceVerifier\n     * @return void\n     */\n    public function setPresenceVerifier(PresenceVerifierInterface $presenceVerifier)\n    {\n        $this->presenceVerifier = $presenceVerifier;\n    }\n\n    /**\n     * Get the Translator implementation.\n     *\n     * @return \\Illuminate\\Contracts\\Translation\\Translator\n     */\n    public function getTranslator()\n    {\n        return $this->translator;\n    }\n\n    /**\n     * Set the Translator implementation.\n     *\n     * @param  \\Illuminate\\Contracts\\Translation\\Translator  $translator\n     * @return void\n     */\n    public function setTranslator(Translator $translator)\n    {\n        $this->translator = $translator;\n    }\n\n    /**\n     * Set the IoC container instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Call a custom validator extension.\n     *\n     * @param  string  $rule\n     * @param  array  $parameters\n     * @return bool|null\n     */\n    protected function callExtension($rule, $parameters)\n    {\n        $callback = $this->extensions[$rule];\n\n        if (is_callable($callback)) {\n            return call_user_func_array($callback, $parameters);\n        } elseif (is_string($callback)) {\n            return $this->callClassBasedExtension($callback, $parameters);\n        }\n    }\n\n    /**\n     * Call a class based validator extension.\n     *\n     * @param  string  $callback\n     * @param  array  $parameters\n     * @return bool\n     */\n    protected function callClassBasedExtension($callback, $parameters)\n    {\n        [$class, $method] = Str::parseCallback($callback, 'validate');\n\n        return call_user_func_array([$this->container->make($class), $method], $parameters);\n    }\n\n    /**\n     * Handle dynamic calls to class methods.\n     *\n     * @param  string  $method\n     * @param  array  $parameters\n     * @return mixed\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        $rule = Str::snake(substr($method, 8));\n\n        if (isset($this->extensions[$rule])) {\n            return $this->callExtension($rule, $parameters);\n        }\n\n        throw new BadMethodCallException(sprintf(\n            'Method %s::%s does not exist.', static::class, $method\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/Validation/composer.json",
    "content": "{\n    \"name\": \"illuminate/validation\",\n    \"description\": \"The Illuminate Validation package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"egulias/email-validator\": \"^2.0\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"illuminate/translation\": \"5.8.*\",\n        \"symfony/http-foundation\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\Validation\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"suggest\": {\n        \"illuminate/database\": \"Required to use the database presence verifier (5.8.*).\"\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\n\nclass BladeCompiler extends Compiler implements CompilerInterface\n{\n    use Concerns\\CompilesAuthorizations,\n        Concerns\\CompilesComments,\n        Concerns\\CompilesComponents,\n        Concerns\\CompilesConditionals,\n        Concerns\\CompilesEchos,\n        Concerns\\CompilesErrors,\n        Concerns\\CompilesHelpers,\n        Concerns\\CompilesIncludes,\n        Concerns\\CompilesInjections,\n        Concerns\\CompilesJson,\n        Concerns\\CompilesLayouts,\n        Concerns\\CompilesLoops,\n        Concerns\\CompilesRawPhp,\n        Concerns\\CompilesStacks,\n        Concerns\\CompilesTranslations;\n\n    /**\n     * All of the registered extensions.\n     *\n     * @var array\n     */\n    protected $extensions = [];\n\n    /**\n     * All custom \"directive\" handlers.\n     *\n     * @var array\n     */\n    protected $customDirectives = [];\n\n    /**\n     * All custom \"condition\" handlers.\n     *\n     * @var array\n     */\n    protected $conditions = [];\n\n    /**\n     * The file currently being compiled.\n     *\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * All of the available compiler functions.\n     *\n     * @var array\n     */\n    protected $compilers = [\n        'Comments',\n        'Extensions',\n        'Statements',\n        'Echos',\n    ];\n\n    /**\n     * Array of opening and closing tags for raw echos.\n     *\n     * @var array\n     */\n    protected $rawTags = ['{!!', '!!}'];\n\n    /**\n     * Array of opening and closing tags for regular echos.\n     *\n     * @var array\n     */\n    protected $contentTags = ['{{', '}}'];\n\n    /**\n     * Array of opening and closing tags for escaped echos.\n     *\n     * @var array\n     */\n    protected $escapedTags = ['{{{', '}}}'];\n\n    /**\n     * The \"regular\" / legacy echo string format.\n     *\n     * @var string\n     */\n    protected $echoFormat = 'e(%s)';\n\n    /**\n     * Array of footer lines to be added to template.\n     *\n     * @var array\n     */\n    protected $footer = [];\n\n    /**\n     * Array to temporary store the raw blocks found in the template.\n     *\n     * @var array\n     */\n    protected $rawBlocks = [];\n\n    /**\n     * Compile the view at the given path.\n     *\n     * @param  string|null  $path\n     * @return void\n     */\n    public function compile($path = null)\n    {\n        if ($path) {\n            $this->setPath($path);\n        }\n\n        if (! is_null($this->cachePath)) {\n            $contents = $this->compileString(\n                $this->files->get($this->getPath())\n            );\n\n            if (! empty($this->getPath())) {\n                $tokens = $this->getOpenAndClosingPhpTokens($contents);\n\n                // If the tokens we retrieved from the compiled contents have at least\n                // one opening tag and if that last token isn't the closing tag, we\n                // need to close the statement before adding the path at the end.\n                if ($tokens->isNotEmpty() && $tokens->last() !== T_CLOSE_TAG) {\n                    $contents .= ' ?>';\n                }\n\n                $contents .= \"<?php /**PATH {$this->getPath()} ENDPATH**/ ?>\";\n            }\n\n            $this->files->put(\n                $this->getCompiledPath($this->getPath()), $contents\n            );\n        }\n    }\n\n    /**\n     * Get the open and closing PHP tag tokens from the given string.\n     *\n     * @param  string  $contents\n     * @return \\Illuminate\\Support\\Collection\n     */\n    protected function getOpenAndClosingPhpTokens($contents)\n    {\n        return collect(token_get_all($contents))\n            ->pluck($tokenNumber = 0)\n            ->filter(function ($token) {\n                return in_array($token, [T_OPEN_TAG, T_OPEN_TAG_WITH_ECHO, T_CLOSE_TAG]);\n            });\n    }\n\n    /**\n     * Get the path currently being compiled.\n     *\n     * @return string\n     */\n    public function getPath()\n    {\n        return $this->path;\n    }\n\n    /**\n     * Set the path currently being compiled.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function setPath($path)\n    {\n        $this->path = $path;\n    }\n\n    /**\n     * Compile the given Blade template contents.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    public function compileString($value)\n    {\n        if (strpos($value, '@verbatim') !== false) {\n            $value = $this->storeVerbatimBlocks($value);\n        }\n\n        $this->footer = [];\n\n        if (strpos($value, '@php') !== false) {\n            $value = $this->storePhpBlocks($value);\n        }\n\n        $result = '';\n\n        // Here we will loop through all of the tokens returned by the Zend lexer and\n        // parse each one into the corresponding valid PHP. We will then have this\n        // template as the correctly rendered PHP that can be rendered natively.\n        foreach (token_get_all($value) as $token) {\n            $result .= is_array($token) ? $this->parseToken($token) : $token;\n        }\n\n        if (! empty($this->rawBlocks)) {\n            $result = $this->restoreRawContent($result);\n        }\n\n        // If there are any footer lines that need to get added to a template we will\n        // add them here at the end of the template. This gets used mainly for the\n        // template inheritance via the extends keyword that should be appended.\n        if (count($this->footer) > 0) {\n            $result = $this->addFooters($result);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Store the verbatim blocks and replace them with a temporary placeholder.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function storeVerbatimBlocks($value)\n    {\n        return preg_replace_callback('/(?<!@)@verbatim(.*?)@endverbatim/s', function ($matches) {\n            return $this->storeRawBlock($matches[1]);\n        }, $value);\n    }\n\n    /**\n     * Store the PHP blocks and replace them with a temporary placeholder.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function storePhpBlocks($value)\n    {\n        return preg_replace_callback('/(?<!@)@php(.*?)@endphp/s', function ($matches) {\n            return $this->storeRawBlock(\"<?php{$matches[1]}?>\");\n        }, $value);\n    }\n\n    /**\n     * Store a raw block and return a unique raw placeholder.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function storeRawBlock($value)\n    {\n        return $this->getRawPlaceholder(\n            array_push($this->rawBlocks, $value) - 1\n        );\n    }\n\n    /**\n     * Replace the raw placeholders with the original code stored in the raw blocks.\n     *\n     * @param  string  $result\n     * @return string\n     */\n    protected function restoreRawContent($result)\n    {\n        $result = preg_replace_callback('/'.$this->getRawPlaceholder('(\\d+)').'/', function ($matches) {\n            return $this->rawBlocks[$matches[1]];\n        }, $result);\n\n        $this->rawBlocks = [];\n\n        return $result;\n    }\n\n    /**\n     * Get a placeholder to temporary mark the position of raw blocks.\n     *\n     * @param  int|string  $replace\n     * @return string\n     */\n    protected function getRawPlaceholder($replace)\n    {\n        return str_replace('#', $replace, '@__raw_block_#__@');\n    }\n\n    /**\n     * Add the stored footers onto the given content.\n     *\n     * @param  string  $result\n     * @return string\n     */\n    protected function addFooters($result)\n    {\n        return ltrim($result, PHP_EOL)\n                .PHP_EOL.implode(PHP_EOL, array_reverse($this->footer));\n    }\n\n    /**\n     * Parse the tokens from the template.\n     *\n     * @param  array  $token\n     * @return string\n     */\n    protected function parseToken($token)\n    {\n        [$id, $content] = $token;\n\n        if ($id == T_INLINE_HTML) {\n            foreach ($this->compilers as $type) {\n                $content = $this->{\"compile{$type}\"}($content);\n            }\n        }\n\n        return $content;\n    }\n\n    /**\n     * Execute the user defined extensions.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileExtensions($value)\n    {\n        foreach ($this->extensions as $compiler) {\n            $value = call_user_func($compiler, $value, $this);\n        }\n\n        return $value;\n    }\n\n    /**\n     * Compile Blade statements that start with \"@\".\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileStatements($value)\n    {\n        return preg_replace_callback(\n            '/\\B@(@?\\w+(?:::\\w+)?)([ \\t]*)(\\( ( (?>[^()]+) | (?3) )* \\))?/x', function ($match) {\n                return $this->compileStatement($match);\n            }, $value\n        );\n    }\n\n    /**\n     * Compile a single Blade @ statement.\n     *\n     * @param  array  $match\n     * @return string\n     */\n    protected function compileStatement($match)\n    {\n        if (Str::contains($match[1], '@')) {\n            $match[0] = isset($match[3]) ? $match[1].$match[3] : $match[1];\n        } elseif (isset($this->customDirectives[$match[1]])) {\n            $match[0] = $this->callCustomDirective($match[1], Arr::get($match, 3));\n        } elseif (method_exists($this, $method = 'compile'.ucfirst($match[1]))) {\n            $match[0] = $this->$method(Arr::get($match, 3));\n        }\n\n        return isset($match[3]) ? $match[0] : $match[0].$match[2];\n    }\n\n    /**\n     * Call the given directive with the given value.\n     *\n     * @param  string  $name\n     * @param  string|null  $value\n     * @return string\n     */\n    protected function callCustomDirective($name, $value)\n    {\n        if (Str::startsWith($value, '(') && Str::endsWith($value, ')')) {\n            $value = Str::substr($value, 1, -1);\n        }\n\n        return call_user_func($this->customDirectives[$name], trim($value));\n    }\n\n    /**\n     * Strip the parentheses from the given expression.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    public function stripParentheses($expression)\n    {\n        if (Str::startsWith($expression, '(')) {\n            $expression = substr($expression, 1, -1);\n        }\n\n        return $expression;\n    }\n\n    /**\n     * Register a custom Blade compiler.\n     *\n     * @param  callable  $compiler\n     * @return void\n     */\n    public function extend(callable $compiler)\n    {\n        $this->extensions[] = $compiler;\n    }\n\n    /**\n     * Get the extensions used by the compiler.\n     *\n     * @return array\n     */\n    public function getExtensions()\n    {\n        return $this->extensions;\n    }\n\n    /**\n     * Register an \"if\" statement directive.\n     *\n     * @param  string  $name\n     * @param  callable  $callback\n     * @return void\n     */\n    public function if($name, callable $callback)\n    {\n        $this->conditions[$name] = $callback;\n\n        $this->directive($name, function ($expression) use ($name) {\n            return $expression !== ''\n                    ? \"<?php if (\\Illuminate\\Support\\Facades\\Blade::check('{$name}', {$expression})): ?>\"\n                    : \"<?php if (\\Illuminate\\Support\\Facades\\Blade::check('{$name}')): ?>\";\n        });\n\n        $this->directive('else'.$name, function ($expression) use ($name) {\n            return $expression !== ''\n                ? \"<?php elseif (\\Illuminate\\Support\\Facades\\Blade::check('{$name}', {$expression})): ?>\"\n                : \"<?php elseif (\\Illuminate\\Support\\Facades\\Blade::check('{$name}')): ?>\";\n        });\n\n        $this->directive('end'.$name, function () {\n            return '<?php endif; ?>';\n        });\n    }\n\n    /**\n     * Check the result of a condition.\n     *\n     * @param  string  $name\n     * @param  array  $parameters\n     * @return bool\n     */\n    public function check($name, ...$parameters)\n    {\n        return call_user_func($this->conditions[$name], ...$parameters);\n    }\n\n    /**\n     * Register a component alias directive.\n     *\n     * @param  string  $path\n     * @param  string|null  $alias\n     * @return void\n     */\n    public function component($path, $alias = null)\n    {\n        $alias = $alias ?: Arr::last(explode('.', $path));\n\n        $this->directive($alias, function ($expression) use ($path) {\n            return $expression\n                        ? \"<?php \\$__env->startComponent('{$path}', {$expression}); ?>\"\n                        : \"<?php \\$__env->startComponent('{$path}'); ?>\";\n        });\n\n        $this->directive('end'.$alias, function ($expression) {\n            return '<?php echo $__env->renderComponent(); ?>';\n        });\n    }\n\n    /**\n     * Register an include alias directive.\n     *\n     * @param  string  $path\n     * @param  string|null  $alias\n     * @return void\n     */\n    public function include($path, $alias = null)\n    {\n        $alias = $alias ?: Arr::last(explode('.', $path));\n\n        $this->directive($alias, function ($expression) use ($path) {\n            $expression = $this->stripParentheses($expression) ?: '[]';\n\n            return \"<?php echo \\$__env->make('{$path}', {$expression}, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>\";\n        });\n    }\n\n    /**\n     * Register a handler for custom directives.\n     *\n     * @param  string  $name\n     * @param  callable  $handler\n     * @return void\n     */\n    public function directive($name, callable $handler)\n    {\n        if (! preg_match('/^\\w+(?:::\\w+)?$/x', $name)) {\n            throw new InvalidArgumentException(\"The directive name [{$name}] is not valid. Directive names must only contain alphanumeric characters and underscores.\");\n        }\n\n        $this->customDirectives[$name] = $handler;\n    }\n\n    /**\n     * Get the list of custom directives.\n     *\n     * @return array\n     */\n    public function getCustomDirectives()\n    {\n        return $this->customDirectives;\n    }\n\n    /**\n     * Set the echo format to be used by the compiler.\n     *\n     * @param  string  $format\n     * @return void\n     */\n    public function setEchoFormat($format)\n    {\n        $this->echoFormat = $format;\n    }\n\n    /**\n     * Set the \"echo\" format to double encode entities.\n     *\n     * @return void\n     */\n    public function withDoubleEncoding()\n    {\n        $this->setEchoFormat('e(%s, true)');\n    }\n\n    /**\n     * Set the \"echo\" format to not double encode entities.\n     *\n     * @return void\n     */\n    public function withoutDoubleEncoding()\n    {\n        $this->setEchoFormat('e(%s, false)');\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers;\n\nuse InvalidArgumentException;\nuse Illuminate\\Filesystem\\Filesystem;\n\nabstract class Compiler\n{\n    /**\n     * The Filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * Get the cache path for the compiled views.\n     *\n     * @var string\n     */\n    protected $cachePath;\n\n    /**\n     * Create a new compiler instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  string  $cachePath\n     * @return void\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct(Filesystem $files, $cachePath)\n    {\n        if (! $cachePath) {\n            throw new InvalidArgumentException('Please provide a valid cache path.');\n        }\n\n        $this->files = $files;\n        $this->cachePath = $cachePath;\n    }\n\n    /**\n     * Get the path to the compiled version of a view.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function getCompiledPath($path)\n    {\n        return $this->cachePath.'/'.sha1($path).'.php';\n    }\n\n    /**\n     * Determine if the view at the given path is expired.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function isExpired($path)\n    {\n        $compiled = $this->getCompiledPath($path);\n\n        // If the compiled file doesn't exist we will indicate that the view is expired\n        // so that it can be re-compiled. Else, we will verify the last modification\n        // of the views is less than the modification times of the compiled views.\n        if (! $this->files->exists($compiled)) {\n            return true;\n        }\n\n        return $this->files->lastModified($path) >=\n               $this->files->lastModified($compiled);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/CompilerInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers;\n\ninterface CompilerInterface\n{\n    /**\n     * Get the path to the compiled version of a view.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    public function getCompiledPath($path);\n\n    /**\n     * Determine if the given view is expired.\n     *\n     * @param  string  $path\n     * @return bool\n     */\n    public function isExpired($path);\n\n    /**\n     * Compile the view at the given path.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function compile($path);\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesAuthorizations.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesAuthorizations\n{\n    /**\n     * Compile the can statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileCan($expression)\n    {\n        return \"<?php if (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->check{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the cannot statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileCannot($expression)\n    {\n        return \"<?php if (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->denies{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the canany statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileCanany($expression)\n    {\n        return \"<?php if (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->any{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the else-can statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileElsecan($expression)\n    {\n        return \"<?php elseif (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->check{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the else-cannot statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileElsecannot($expression)\n    {\n        return \"<?php elseif (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->denies{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the else-canany statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileElsecanany($expression)\n    {\n        return \"<?php elseif (app(\\Illuminate\\\\Contracts\\\\Auth\\\\Access\\\\Gate::class)->any{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the end-can statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndcan()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the end-cannot statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndcannot()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the end-canany statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndcanany()\n    {\n        return '<?php endif; ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComments.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesComments\n{\n    /**\n     * Compile Blade comments into an empty string.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileComments($value)\n    {\n        $pattern = sprintf('/%s--(.*?)--%s/s', $this->contentTags[0], $this->contentTags[1]);\n\n        return preg_replace($pattern, '', $value);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesComponents.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesComponents\n{\n    /**\n     * Compile the component statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileComponent($expression)\n    {\n        return \"<?php \\$__env->startComponent{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-component statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndComponent()\n    {\n        return '<?php echo $__env->renderComponent(); ?>';\n    }\n\n    /**\n     * Compile the slot statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileSlot($expression)\n    {\n        return \"<?php \\$__env->slot{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-slot statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndSlot()\n    {\n        return '<?php $__env->endSlot(); ?>';\n    }\n\n    /**\n     * Compile the component-first statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileComponentFirst($expression)\n    {\n        return \"<?php \\$__env->startComponentFirst{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-component-first statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndComponentFirst()\n    {\n        return $this->compileEndComponent();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesConditionals.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesConditionals\n{\n    /**\n     * Identifier for the first case in switch statement.\n     *\n     * @var bool\n     */\n    protected $firstCaseInSwitch = true;\n\n    /**\n     * Compile the if-auth statements into valid PHP.\n     *\n     * @param  string|null  $guard\n     * @return string\n     */\n    protected function compileAuth($guard = null)\n    {\n        $guard = is_null($guard) ? '()' : $guard;\n\n        return \"<?php if(auth()->guard{$guard}->check()): ?>\";\n    }\n\n    /**\n     * Compile the else-auth statements into valid PHP.\n     *\n     * @param  string|null  $guard\n     * @return string\n     */\n    protected function compileElseAuth($guard = null)\n    {\n        $guard = is_null($guard) ? '()' : $guard;\n\n        return \"<?php elseif(auth()->guard{$guard}->check()): ?>\";\n    }\n\n    /**\n     * Compile the end-auth statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndAuth()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the if-guest statements into valid PHP.\n     *\n     * @param  string|null  $guard\n     * @return string\n     */\n    protected function compileGuest($guard = null)\n    {\n        $guard = is_null($guard) ? '()' : $guard;\n\n        return \"<?php if(auth()->guard{$guard}->guest()): ?>\";\n    }\n\n    /**\n     * Compile the else-guest statements into valid PHP.\n     *\n     * @param  string|null  $guard\n     * @return string\n     */\n    protected function compileElseGuest($guard = null)\n    {\n        $guard = is_null($guard) ? '()' : $guard;\n\n        return \"<?php elseif(auth()->guard{$guard}->guest()): ?>\";\n    }\n\n    /**\n     * Compile the end-guest statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndGuest()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the has-section statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileHasSection($expression)\n    {\n        return \"<?php if (! empty(trim(\\$__env->yieldContent{$expression}))): ?>\";\n    }\n\n    /**\n     * Compile the if statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileIf($expression)\n    {\n        return \"<?php if{$expression}: ?>\";\n    }\n\n    /**\n     * Compile the unless statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileUnless($expression)\n    {\n        return \"<?php if (! {$expression}): ?>\";\n    }\n\n    /**\n     * Compile the else-if statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileElseif($expression)\n    {\n        return \"<?php elseif{$expression}: ?>\";\n    }\n\n    /**\n     * Compile the else statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileElse()\n    {\n        return '<?php else: ?>';\n    }\n\n    /**\n     * Compile the end-if statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndif()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the end-unless statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndunless()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the if-isset statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileIsset($expression)\n    {\n        return \"<?php if(isset{$expression}): ?>\";\n    }\n\n    /**\n     * Compile the end-isset statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndIsset()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the switch statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileSwitch($expression)\n    {\n        $this->firstCaseInSwitch = true;\n\n        return \"<?php switch{$expression}:\";\n    }\n\n    /**\n     * Compile the case statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileCase($expression)\n    {\n        if ($this->firstCaseInSwitch) {\n            $this->firstCaseInSwitch = false;\n\n            return \"case {$expression}: ?>\";\n        }\n\n        return \"<?php case {$expression}: ?>\";\n    }\n\n    /**\n     * Compile the default statements in switch case into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileDefault()\n    {\n        return '<?php default: ?>';\n    }\n\n    /**\n     * Compile the end switch statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndSwitch()\n    {\n        return '<?php endswitch; ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesEchos.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesEchos\n{\n    /**\n     * Compile Blade echos into valid PHP.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileEchos($value)\n    {\n        foreach ($this->getEchoMethods() as $method) {\n            $value = $this->$method($value);\n        }\n\n        return $value;\n    }\n\n    /**\n     * Get the echo methods in the proper order for compilation.\n     *\n     * @return array\n     */\n    protected function getEchoMethods()\n    {\n        return [\n            'compileRawEchos',\n            'compileEscapedEchos',\n            'compileRegularEchos',\n        ];\n    }\n\n    /**\n     * Compile the \"raw\" echo statements.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileRawEchos($value)\n    {\n        $pattern = sprintf('/(@)?%s\\s*(.+?)\\s*%s(\\r?\\n)?/s', $this->rawTags[0], $this->rawTags[1]);\n\n        $callback = function ($matches) {\n            $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3];\n\n            return $matches[1] ? substr($matches[0], 1) : \"<?php echo {$matches[2]}; ?>{$whitespace}\";\n        };\n\n        return preg_replace_callback($pattern, $callback, $value);\n    }\n\n    /**\n     * Compile the \"regular\" echo statements.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileRegularEchos($value)\n    {\n        $pattern = sprintf('/(@)?%s\\s*(.+?)\\s*%s(\\r?\\n)?/s', $this->contentTags[0], $this->contentTags[1]);\n\n        $callback = function ($matches) {\n            $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3];\n\n            $wrapped = sprintf($this->echoFormat, $matches[2]);\n\n            return $matches[1] ? substr($matches[0], 1) : \"<?php echo {$wrapped}; ?>{$whitespace}\";\n        };\n\n        return preg_replace_callback($pattern, $callback, $value);\n    }\n\n    /**\n     * Compile the escaped echo statements.\n     *\n     * @param  string  $value\n     * @return string\n     */\n    protected function compileEscapedEchos($value)\n    {\n        $pattern = sprintf('/(@)?%s\\s*(.+?)\\s*%s(\\r?\\n)?/s', $this->escapedTags[0], $this->escapedTags[1]);\n\n        $callback = function ($matches) {\n            $whitespace = empty($matches[3]) ? '' : $matches[3].$matches[3];\n\n            return $matches[1] ? $matches[0] : \"<?php echo e({$matches[2]}); ?>{$whitespace}\";\n        };\n\n        return preg_replace_callback($pattern, $callback, $value);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesErrors.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesErrors\n{\n    /**\n     * Compile the error statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileError($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        return '<?php if ($errors->has('.$expression.')) :\nif (isset($message)) { $messageCache = $message; }\n$message = $errors->first('.$expression.'); ?>';\n    }\n\n    /**\n     * Compile the enderror statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileEnderror($expression)\n    {\n        return '<?php unset($message);\nif (isset($messageCache)) { $message = $messageCache; }\nendif; ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesHelpers.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesHelpers\n{\n    /**\n     * Compile the CSRF statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileCsrf()\n    {\n        return '<?php echo csrf_field(); ?>';\n    }\n\n    /**\n     * Compile the \"dd\" statements into valid PHP.\n     *\n     * @param  string  $arguments\n     * @return string\n     */\n    protected function compileDd($arguments)\n    {\n        return \"<?php dd{$arguments}; ?>\";\n    }\n\n    /**\n     * Compile the \"dump\" statements into valid PHP.\n     *\n     * @param  string  $arguments\n     * @return string\n     */\n    protected function compileDump($arguments)\n    {\n        return \"<?php dump{$arguments}; ?>\";\n    }\n\n    /**\n     * Compile the method statements into valid PHP.\n     *\n     * @param  string  $method\n     * @return string\n     */\n    protected function compileMethod($method)\n    {\n        return \"<?php echo method_field{$method}; ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesIncludes.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesIncludes\n{\n    /**\n     * Compile the each statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileEach($expression)\n    {\n        return \"<?php echo \\$__env->renderEach{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the include statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileInclude($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        return \"<?php echo \\$__env->make({$expression}, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>\";\n    }\n\n    /**\n     * Compile the include-if statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileIncludeIf($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        return \"<?php if (\\$__env->exists({$expression})) echo \\$__env->make({$expression}, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>\";\n    }\n\n    /**\n     * Compile the include-when statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileIncludeWhen($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        return \"<?php echo \\$__env->renderWhen($expression, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path'])); ?>\";\n    }\n\n    /**\n     * Compile the include-first statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileIncludeFirst($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        return \"<?php echo \\$__env->first({$expression}, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesInjections.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesInjections\n{\n    /**\n     * Compile the inject statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileInject($expression)\n    {\n        $segments = explode(',', preg_replace(\"/[\\(\\)\\\\\\\"\\']/\", '', $expression));\n\n        $variable = trim($segments[0]);\n\n        $service = trim($segments[1]);\n\n        return \"<?php \\${$variable} = app('{$service}'); ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesJson.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesJson\n{\n    /**\n     * The default JSON encoding options.\n     *\n     * @var int\n     */\n    private $encodingOptions = JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT;\n\n    /**\n     * Compile the JSON statement into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileJson($expression)\n    {\n        $parts = explode(',', $this->stripParentheses($expression));\n\n        $options = isset($parts[1]) ? trim($parts[1]) : $this->encodingOptions;\n\n        $depth = isset($parts[2]) ? trim($parts[2]) : 512;\n\n        return \"<?php echo json_encode($parts[0], $options, $depth) ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLayouts.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\nuse Illuminate\\View\\Factory as ViewFactory;\n\ntrait CompilesLayouts\n{\n    /**\n     * The name of the last section that was started.\n     *\n     * @var string\n     */\n    protected $lastSection;\n\n    /**\n     * Compile the extends statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileExtends($expression)\n    {\n        $expression = $this->stripParentheses($expression);\n\n        $echo = \"<?php echo \\$__env->make({$expression}, \\Illuminate\\Support\\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>\";\n\n        $this->footer[] = $echo;\n\n        return '';\n    }\n\n    /**\n     * Compile the section statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileSection($expression)\n    {\n        $this->lastSection = trim($expression, \"()'\\\" \");\n\n        return \"<?php \\$__env->startSection{$expression}; ?>\";\n    }\n\n    /**\n     * Replace the @parent directive to a placeholder.\n     *\n     * @return string\n     */\n    protected function compileParent()\n    {\n        return ViewFactory::parentPlaceholder($this->lastSection ?: '');\n    }\n\n    /**\n     * Compile the yield statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileYield($expression)\n    {\n        return \"<?php echo \\$__env->yieldContent{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the show statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileShow()\n    {\n        return '<?php echo $__env->yieldSection(); ?>';\n    }\n\n    /**\n     * Compile the append statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileAppend()\n    {\n        return '<?php $__env->appendSection(); ?>';\n    }\n\n    /**\n     * Compile the overwrite statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileOverwrite()\n    {\n        return '<?php $__env->stopSection(true); ?>';\n    }\n\n    /**\n     * Compile the stop statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileStop()\n    {\n        return '<?php $__env->stopSection(); ?>';\n    }\n\n    /**\n     * Compile the end-section statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndsection()\n    {\n        return '<?php $__env->stopSection(); ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesLoops\n{\n    /**\n     * Counter to keep track of nested forelse statements.\n     *\n     * @var int\n     */\n    protected $forElseCounter = 0;\n\n    /**\n     * Compile the for-else statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileForelse($expression)\n    {\n        $empty = '$__empty_'.++$this->forElseCounter;\n\n        preg_match('/\\( *(.*) +as *(.*)\\)$/is', $expression, $matches);\n\n        $iteratee = trim($matches[1]);\n\n        $iteration = trim($matches[2]);\n\n        $initLoop = \"\\$__currentLoopData = {$iteratee}; \\$__env->addLoop(\\$__currentLoopData);\";\n\n        $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();';\n\n        return \"<?php {$empty} = true; {$initLoop} foreach(\\$__currentLoopData as {$iteration}): {$iterateLoop} {$empty} = false; ?>\";\n    }\n\n    /**\n     * Compile the for-else-empty and empty statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileEmpty($expression)\n    {\n        if ($expression) {\n            return \"<?php if(empty{$expression}): ?>\";\n        }\n\n        $empty = '$__empty_'.$this->forElseCounter--;\n\n        return \"<?php endforeach; \\$__env->popLoop(); \\$loop = \\$__env->getLastLoop(); if ({$empty}): ?>\";\n    }\n\n    /**\n     * Compile the end-for-else statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndforelse()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the end-empty statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndEmpty()\n    {\n        return '<?php endif; ?>';\n    }\n\n    /**\n     * Compile the for statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileFor($expression)\n    {\n        return \"<?php for{$expression}: ?>\";\n    }\n\n    /**\n     * Compile the for-each statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileForeach($expression)\n    {\n        preg_match('/\\( *(.*) +as *(.*)\\)$/is', $expression, $matches);\n\n        $iteratee = trim($matches[1]);\n\n        $iteration = trim($matches[2]);\n\n        $initLoop = \"\\$__currentLoopData = {$iteratee}; \\$__env->addLoop(\\$__currentLoopData);\";\n\n        $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();';\n\n        return \"<?php {$initLoop} foreach(\\$__currentLoopData as {$iteration}): {$iterateLoop} ?>\";\n    }\n\n    /**\n     * Compile the break statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileBreak($expression)\n    {\n        if ($expression) {\n            preg_match('/\\(\\s*(-?\\d+)\\s*\\)$/', $expression, $matches);\n\n            return $matches ? '<?php break '.max(1, $matches[1]).'; ?>' : \"<?php if{$expression} break; ?>\";\n        }\n\n        return '<?php break; ?>';\n    }\n\n    /**\n     * Compile the continue statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileContinue($expression)\n    {\n        if ($expression) {\n            preg_match('/\\(\\s*(-?\\d+)\\s*\\)$/', $expression, $matches);\n\n            return $matches ? '<?php continue '.max(1, $matches[1]).'; ?>' : \"<?php if{$expression} continue; ?>\";\n        }\n\n        return '<?php continue; ?>';\n    }\n\n    /**\n     * Compile the end-for statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndfor()\n    {\n        return '<?php endfor; ?>';\n    }\n\n    /**\n     * Compile the end-for-each statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndforeach()\n    {\n        return '<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>';\n    }\n\n    /**\n     * Compile the while statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileWhile($expression)\n    {\n        return \"<?php while{$expression}: ?>\";\n    }\n\n    /**\n     * Compile the end-while statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndwhile()\n    {\n        return '<?php endwhile; ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesRawPhp.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesRawPhp\n{\n    /**\n     * Compile the raw PHP statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compilePhp($expression)\n    {\n        if ($expression) {\n            return \"<?php {$expression}; ?>\";\n        }\n\n        return '@php';\n    }\n\n    /**\n     * Compile the unset statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileUnset($expression)\n    {\n        return \"<?php unset{$expression}; ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesStacks.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesStacks\n{\n    /**\n     * Compile the stack statements into the content.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileStack($expression)\n    {\n        return \"<?php echo \\$__env->yieldPushContent{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the push statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compilePush($expression)\n    {\n        return \"<?php \\$__env->startPush{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-push statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndpush()\n    {\n        return '<?php $__env->stopPush(); ?>';\n    }\n\n    /**\n     * Compile the prepend statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compilePrepend($expression)\n    {\n        return \"<?php \\$__env->startPrepend{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-prepend statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndprepend()\n    {\n        return '<?php $__env->stopPrepend(); ?>';\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesTranslations.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Compilers\\Concerns;\n\ntrait CompilesTranslations\n{\n    /**\n     * Compile the lang statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileLang($expression)\n    {\n        if (is_null($expression)) {\n            return '<?php $__env->startTranslation(); ?>';\n        } elseif ($expression[1] === '[') {\n            return \"<?php \\$__env->startTranslation{$expression}; ?>\";\n        }\n\n        return \"<?php echo app('translator')->getFromJson{$expression}; ?>\";\n    }\n\n    /**\n     * Compile the end-lang statements into valid PHP.\n     *\n     * @return string\n     */\n    protected function compileEndlang()\n    {\n        return '<?php echo $__env->renderTranslation(); ?>';\n    }\n\n    /**\n     * Compile the choice statements into valid PHP.\n     *\n     * @param  string  $expression\n     * @return string\n     */\n    protected function compileChoice($expression)\n    {\n        return \"<?php echo app('translator')->choice{$expression}; ?>\";\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesComponents.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\HtmlString;\n\ntrait ManagesComponents\n{\n    /**\n     * The components being rendered.\n     *\n     * @var array\n     */\n    protected $componentStack = [];\n\n    /**\n     * The original data passed to the component.\n     *\n     * @var array\n     */\n    protected $componentData = [];\n\n    /**\n     * The slot contents for the component.\n     *\n     * @var array\n     */\n    protected $slots = [];\n\n    /**\n     * The names of the slots being rendered.\n     *\n     * @var array\n     */\n    protected $slotStack = [];\n\n    /**\n     * Start a component rendering process.\n     *\n     * @param  string  $name\n     * @param  array  $data\n     * @return void\n     */\n    public function startComponent($name, array $data = [])\n    {\n        if (ob_start()) {\n            $this->componentStack[] = $name;\n\n            $this->componentData[$this->currentComponent()] = $data;\n\n            $this->slots[$this->currentComponent()] = [];\n        }\n    }\n\n    /**\n     * Get the first view that actually exists from the given list, and start a component.\n     *\n     * @param  array  $names\n     * @param  array  $data\n     * @return void\n     */\n    public function startComponentFirst(array $names, array $data = [])\n    {\n        $name = Arr::first($names, function ($item) {\n            return $this->exists($item);\n        });\n\n        $this->startComponent($name, $data);\n    }\n\n    /**\n     * Render the current component.\n     *\n     * @return string\n     */\n    public function renderComponent()\n    {\n        $name = array_pop($this->componentStack);\n\n        return $this->make($name, $this->componentData($name))->render();\n    }\n\n    /**\n     * Get the data for the given component.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function componentData($name)\n    {\n        return array_merge(\n            $this->componentData[count($this->componentStack)],\n            ['slot' => new HtmlString(trim(ob_get_clean()))],\n            $this->slots[count($this->componentStack)]\n        );\n    }\n\n    /**\n     * Start the slot rendering process.\n     *\n     * @param  string  $name\n     * @param  string|null  $content\n     * @return void\n     */\n    public function slot($name, $content = null)\n    {\n        if (func_num_args() === 2) {\n            $this->slots[$this->currentComponent()][$name] = $content;\n        } else {\n            if (ob_start()) {\n                $this->slots[$this->currentComponent()][$name] = '';\n\n                $this->slotStack[$this->currentComponent()][] = $name;\n            }\n        }\n    }\n\n    /**\n     * Save the slot content for rendering.\n     *\n     * @return void\n     */\n    public function endSlot()\n    {\n        last($this->componentStack);\n\n        $currentSlot = array_pop(\n            $this->slotStack[$this->currentComponent()]\n        );\n\n        $this->slots[$this->currentComponent()]\n                    [$currentSlot] = new HtmlString(trim(ob_get_clean()));\n    }\n\n    /**\n     * Get the index for the current component.\n     *\n     * @return int\n     */\n    protected function currentComponent()\n    {\n        return count($this->componentStack) - 1;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesEvents.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\nuse Closure;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Contracts\\View\\View as ViewContract;\n\ntrait ManagesEvents\n{\n    /**\n     * Register a view creator event.\n     *\n     * @param  array|string     $views\n     * @param  \\Closure|string  $callback\n     * @return array\n     */\n    public function creator($views, $callback)\n    {\n        $creators = [];\n\n        foreach ((array) $views as $view) {\n            $creators[] = $this->addViewEvent($view, $callback, 'creating: ');\n        }\n\n        return $creators;\n    }\n\n    /**\n     * Register multiple view composers via an array.\n     *\n     * @param  array  $composers\n     * @return array\n     */\n    public function composers(array $composers)\n    {\n        $registered = [];\n\n        foreach ($composers as $callback => $views) {\n            $registered = array_merge($registered, $this->composer($views, $callback));\n        }\n\n        return $registered;\n    }\n\n    /**\n     * Register a view composer event.\n     *\n     * @param  array|string  $views\n     * @param  \\Closure|string  $callback\n     * @return array\n     */\n    public function composer($views, $callback)\n    {\n        $composers = [];\n\n        foreach ((array) $views as $view) {\n            $composers[] = $this->addViewEvent($view, $callback, 'composing: ');\n        }\n\n        return $composers;\n    }\n\n    /**\n     * Add an event for a given view.\n     *\n     * @param  string  $view\n     * @param  \\Closure|string  $callback\n     * @param  string  $prefix\n     * @return \\Closure|null\n     */\n    protected function addViewEvent($view, $callback, $prefix = 'composing: ')\n    {\n        $view = $this->normalizeName($view);\n\n        if ($callback instanceof Closure) {\n            $this->addEventListener($prefix.$view, $callback);\n\n            return $callback;\n        } elseif (is_string($callback)) {\n            return $this->addClassEvent($view, $callback, $prefix);\n        }\n    }\n\n    /**\n     * Register a class based view composer.\n     *\n     * @param  string    $view\n     * @param  string    $class\n     * @param  string    $prefix\n     * @return \\Closure\n     */\n    protected function addClassEvent($view, $class, $prefix)\n    {\n        $name = $prefix.$view;\n\n        // When registering a class based view \"composer\", we will simply resolve the\n        // classes from the application IoC container then call the compose method\n        // on the instance. This allows for convenient, testable view composers.\n        $callback = $this->buildClassEventCallback(\n            $class, $prefix\n        );\n\n        $this->addEventListener($name, $callback);\n\n        return $callback;\n    }\n\n    /**\n     * Build a class based container callback Closure.\n     *\n     * @param  string  $class\n     * @param  string  $prefix\n     * @return \\Closure\n     */\n    protected function buildClassEventCallback($class, $prefix)\n    {\n        [$class, $method] = $this->parseClassEvent($class, $prefix);\n\n        // Once we have the class and method name, we can build the Closure to resolve\n        // the instance out of the IoC container and call the method on it with the\n        // given arguments that are passed to the Closure as the composer's data.\n        return function () use ($class, $method) {\n            return call_user_func_array(\n                [$this->container->make($class), $method], func_get_args()\n            );\n        };\n    }\n\n    /**\n     * Parse a class based composer name.\n     *\n     * @param  string  $class\n     * @param  string  $prefix\n     * @return array\n     */\n    protected function parseClassEvent($class, $prefix)\n    {\n        return Str::parseCallback($class, $this->classEventMethodForPrefix($prefix));\n    }\n\n    /**\n     * Determine the class event method based on the given prefix.\n     *\n     * @param  string  $prefix\n     * @return string\n     */\n    protected function classEventMethodForPrefix($prefix)\n    {\n        return Str::contains($prefix, 'composing') ? 'compose' : 'create';\n    }\n\n    /**\n     * Add a listener to the event dispatcher.\n     *\n     * @param  string    $name\n     * @param  \\Closure  $callback\n     * @return void\n     */\n    protected function addEventListener($name, $callback)\n    {\n        if (Str::contains($name, '*')) {\n            $callback = function ($name, array $data) use ($callback) {\n                return $callback($data[0]);\n            };\n        }\n\n        $this->events->listen($name, $callback);\n    }\n\n    /**\n     * Call the composer for a given view.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\View  $view\n     * @return void\n     */\n    public function callComposer(ViewContract $view)\n    {\n        $this->events->dispatch('composing: '.$view->name(), [$view]);\n    }\n\n    /**\n     * Call the creator for a given view.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\View  $view\n     * @return void\n     */\n    public function callCreator(ViewContract $view)\n    {\n        $this->events->dispatch('creating: '.$view->name(), [$view]);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLayouts.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\nuse InvalidArgumentException;\nuse Illuminate\\Contracts\\View\\View;\n\ntrait ManagesLayouts\n{\n    /**\n     * All of the finished, captured sections.\n     *\n     * @var array\n     */\n    protected $sections = [];\n\n    /**\n     * The stack of in-progress sections.\n     *\n     * @var array\n     */\n    protected $sectionStack = [];\n\n    /**\n     * The parent placeholder for the request.\n     *\n     * @var mixed\n     */\n    protected static $parentPlaceholder = [];\n\n    /**\n     * Start injecting content into a section.\n     *\n     * @param  string  $section\n     * @param  string|null  $content\n     * @return void\n     */\n    public function startSection($section, $content = null)\n    {\n        if ($content === null) {\n            if (ob_start()) {\n                $this->sectionStack[] = $section;\n            }\n        } else {\n            $this->extendSection($section, $content instanceof View ? $content : e($content));\n        }\n    }\n\n    /**\n     * Inject inline content into a section.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    public function inject($section, $content)\n    {\n        $this->startSection($section, $content);\n    }\n\n    /**\n     * Stop injecting content into a section and return its contents.\n     *\n     * @return string\n     */\n    public function yieldSection()\n    {\n        if (empty($this->sectionStack)) {\n            return '';\n        }\n\n        return $this->yieldContent($this->stopSection());\n    }\n\n    /**\n     * Stop injecting content into a section.\n     *\n     * @param  bool  $overwrite\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function stopSection($overwrite = false)\n    {\n        if (empty($this->sectionStack)) {\n            throw new InvalidArgumentException('Cannot end a section without first starting one.');\n        }\n\n        $last = array_pop($this->sectionStack);\n\n        if ($overwrite) {\n            $this->sections[$last] = ob_get_clean();\n        } else {\n            $this->extendSection($last, ob_get_clean());\n        }\n\n        return $last;\n    }\n\n    /**\n     * Stop injecting content into a section and append it.\n     *\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function appendSection()\n    {\n        if (empty($this->sectionStack)) {\n            throw new InvalidArgumentException('Cannot end a section without first starting one.');\n        }\n\n        $last = array_pop($this->sectionStack);\n\n        if (isset($this->sections[$last])) {\n            $this->sections[$last] .= ob_get_clean();\n        } else {\n            $this->sections[$last] = ob_get_clean();\n        }\n\n        return $last;\n    }\n\n    /**\n     * Append content to a given section.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    protected function extendSection($section, $content)\n    {\n        if (isset($this->sections[$section])) {\n            $content = str_replace(static::parentPlaceholder($section), $content, $this->sections[$section]);\n        }\n\n        $this->sections[$section] = $content;\n    }\n\n    /**\n     * Get the string contents of a section.\n     *\n     * @param  string  $section\n     * @param  string  $default\n     * @return string\n     */\n    public function yieldContent($section, $default = '')\n    {\n        $sectionContent = $default instanceof View ? $default : e($default);\n\n        if (isset($this->sections[$section])) {\n            $sectionContent = $this->sections[$section];\n        }\n\n        $sectionContent = str_replace('@@parent', '--parent--holder--', $sectionContent);\n\n        return str_replace(\n            '--parent--holder--', '@parent', str_replace(static::parentPlaceholder($section), '', $sectionContent)\n        );\n    }\n\n    /**\n     * Get the parent placeholder for the current request.\n     *\n     * @param  string  $section\n     * @return string\n     */\n    public static function parentPlaceholder($section = '')\n    {\n        if (! isset(static::$parentPlaceholder[$section])) {\n            static::$parentPlaceholder[$section] = '##parent-placeholder-'.sha1($section).'##';\n        }\n\n        return static::$parentPlaceholder[$section];\n    }\n\n    /**\n     * Check if section exists.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasSection($name)\n    {\n        return array_key_exists($name, $this->sections);\n    }\n\n    /**\n     * Get the contents of a section.\n     *\n     * @param  string  $name\n     * @param  string|null  $default\n     * @return mixed\n     */\n    public function getSection($name, $default = null)\n    {\n        return $this->getSections()[$name] ?? $default;\n    }\n\n    /**\n     * Get the entire array of sections.\n     *\n     * @return array\n     */\n    public function getSections()\n    {\n        return $this->sections;\n    }\n\n    /**\n     * Flush all of the sections.\n     *\n     * @return void\n     */\n    public function flushSections()\n    {\n        $this->sections = [];\n        $this->sectionStack = [];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesLoops.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\nuse Countable;\nuse Illuminate\\Support\\Arr;\n\ntrait ManagesLoops\n{\n    /**\n     * The stack of in-progress loops.\n     *\n     * @var array\n     */\n    protected $loopsStack = [];\n\n    /**\n     * Add new loop to the stack.\n     *\n     * @param  \\Countable|array  $data\n     * @return void\n     */\n    public function addLoop($data)\n    {\n        $length = is_array($data) || $data instanceof Countable ? count($data) : null;\n\n        $parent = Arr::last($this->loopsStack);\n\n        $this->loopsStack[] = [\n            'iteration' => 0,\n            'index' => 0,\n            'remaining' => $length ?? null,\n            'count' => $length,\n            'first' => true,\n            'last' => isset($length) ? $length == 1 : null,\n            'odd' => false,\n            'even' => true,\n            'depth' => count($this->loopsStack) + 1,\n            'parent' => $parent ? (object) $parent : null,\n        ];\n    }\n\n    /**\n     * Increment the top loop's indices.\n     *\n     * @return void\n     */\n    public function incrementLoopIndices()\n    {\n        $loop = $this->loopsStack[$index = count($this->loopsStack) - 1];\n\n        $this->loopsStack[$index] = array_merge($this->loopsStack[$index], [\n            'iteration' => $loop['iteration'] + 1,\n            'index' => $loop['iteration'],\n            'first' => $loop['iteration'] == 0,\n            'odd' => ! $loop['odd'],\n            'even' => ! $loop['even'],\n            'remaining' => isset($loop['count']) ? $loop['remaining'] - 1 : null,\n            'last' => isset($loop['count']) ? $loop['iteration'] == $loop['count'] - 1 : null,\n        ]);\n    }\n\n    /**\n     * Pop a loop from the top of the loop stack.\n     *\n     * @return void\n     */\n    public function popLoop()\n    {\n        array_pop($this->loopsStack);\n    }\n\n    /**\n     * Get an instance of the last loop in the stack.\n     *\n     * @return \\stdClass|null\n     */\n    public function getLastLoop()\n    {\n        if ($last = Arr::last($this->loopsStack)) {\n            return (object) $last;\n        }\n    }\n\n    /**\n     * Get the entire loop stack.\n     *\n     * @return array\n     */\n    public function getLoopStack()\n    {\n        return $this->loopsStack;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesStacks.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\nuse InvalidArgumentException;\n\ntrait ManagesStacks\n{\n    /**\n     * All of the finished, captured push sections.\n     *\n     * @var array\n     */\n    protected $pushes = [];\n\n    /**\n     * All of the finished, captured prepend sections.\n     *\n     * @var array\n     */\n    protected $prepends = [];\n\n    /**\n     * The stack of in-progress push sections.\n     *\n     * @var array\n     */\n    protected $pushStack = [];\n\n    /**\n     * Start injecting content into a push section.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    public function startPush($section, $content = '')\n    {\n        if ($content === '') {\n            if (ob_start()) {\n                $this->pushStack[] = $section;\n            }\n        } else {\n            $this->extendPush($section, $content);\n        }\n    }\n\n    /**\n     * Stop injecting content into a push section.\n     *\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function stopPush()\n    {\n        if (empty($this->pushStack)) {\n            throw new InvalidArgumentException('Cannot end a push stack without first starting one.');\n        }\n\n        return tap(array_pop($this->pushStack), function ($last) {\n            $this->extendPush($last, ob_get_clean());\n        });\n    }\n\n    /**\n     * Append content to a given push section.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    protected function extendPush($section, $content)\n    {\n        if (! isset($this->pushes[$section])) {\n            $this->pushes[$section] = [];\n        }\n\n        if (! isset($this->pushes[$section][$this->renderCount])) {\n            $this->pushes[$section][$this->renderCount] = $content;\n        } else {\n            $this->pushes[$section][$this->renderCount] .= $content;\n        }\n    }\n\n    /**\n     * Start prepending content into a push section.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    public function startPrepend($section, $content = '')\n    {\n        if ($content === '') {\n            if (ob_start()) {\n                $this->pushStack[] = $section;\n            }\n        } else {\n            $this->extendPrepend($section, $content);\n        }\n    }\n\n    /**\n     * Stop prepending content into a push section.\n     *\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function stopPrepend()\n    {\n        if (empty($this->pushStack)) {\n            throw new InvalidArgumentException('Cannot end a prepend operation without first starting one.');\n        }\n\n        return tap(array_pop($this->pushStack), function ($last) {\n            $this->extendPrepend($last, ob_get_clean());\n        });\n    }\n\n    /**\n     * Prepend content to a given stack.\n     *\n     * @param  string  $section\n     * @param  string  $content\n     * @return void\n     */\n    protected function extendPrepend($section, $content)\n    {\n        if (! isset($this->prepends[$section])) {\n            $this->prepends[$section] = [];\n        }\n\n        if (! isset($this->prepends[$section][$this->renderCount])) {\n            $this->prepends[$section][$this->renderCount] = $content;\n        } else {\n            $this->prepends[$section][$this->renderCount] = $content.$this->prepends[$section][$this->renderCount];\n        }\n    }\n\n    /**\n     * Get the string contents of a push section.\n     *\n     * @param  string  $section\n     * @param  string  $default\n     * @return string\n     */\n    public function yieldPushContent($section, $default = '')\n    {\n        if (! isset($this->pushes[$section]) && ! isset($this->prepends[$section])) {\n            return $default;\n        }\n\n        $output = '';\n\n        if (isset($this->prepends[$section])) {\n            $output .= implode(array_reverse($this->prepends[$section]));\n        }\n\n        if (isset($this->pushes[$section])) {\n            $output .= implode($this->pushes[$section]);\n        }\n\n        return $output;\n    }\n\n    /**\n     * Flush all of the stacks.\n     *\n     * @return void\n     */\n    public function flushStacks()\n    {\n        $this->pushes = [];\n        $this->prepends = [];\n        $this->pushStack = [];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Concerns/ManagesTranslations.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Concerns;\n\ntrait ManagesTranslations\n{\n    /**\n     * The translation replacements for the translation being rendered.\n     *\n     * @var array\n     */\n    protected $translationReplacements = [];\n\n    /**\n     * Start a translation block.\n     *\n     * @param  array  $replacements\n     * @return void\n     */\n    public function startTranslation($replacements = [])\n    {\n        ob_start();\n\n        $this->translationReplacements = $replacements;\n    }\n\n    /**\n     * Render the current translation.\n     *\n     * @return string\n     */\n    public function renderTranslation()\n    {\n        return $this->container->make('translator')->getFromJson(\n            trim(ob_get_clean()), $this->translationReplacements\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Engines;\n\nuse Exception;\nuse ErrorException;\nuse Illuminate\\View\\Compilers\\CompilerInterface;\n\nclass CompilerEngine extends PhpEngine\n{\n    /**\n     * The Blade compiler instance.\n     *\n     * @var \\Illuminate\\View\\Compilers\\CompilerInterface\n     */\n    protected $compiler;\n\n    /**\n     * A stack of the last compiled templates.\n     *\n     * @var array\n     */\n    protected $lastCompiled = [];\n\n    /**\n     * Create a new Blade view engine instance.\n     *\n     * @param  \\Illuminate\\View\\Compilers\\CompilerInterface  $compiler\n     * @return void\n     */\n    public function __construct(CompilerInterface $compiler)\n    {\n        $this->compiler = $compiler;\n    }\n\n    /**\n     * Get the evaluated contents of the view.\n     *\n     * @param  string  $path\n     * @param  array   $data\n     * @return string\n     */\n    public function get($path, array $data = [])\n    {\n        $this->lastCompiled[] = $path;\n\n        // If this given view has expired, which means it has simply been edited since\n        // it was last compiled, we will re-compile the views so we can evaluate a\n        // fresh copy of the view. We'll pass the compiler the path of the view.\n        if ($this->compiler->isExpired($path)) {\n            $this->compiler->compile($path);\n        }\n\n        $compiled = $this->compiler->getCompiledPath($path);\n\n        // Once we have the path to the compiled file, we will evaluate the paths with\n        // typical PHP just like any other templates. We also keep a stack of views\n        // which have been rendered for right exception messages to be generated.\n        $results = $this->evaluatePath($compiled, $data);\n\n        array_pop($this->lastCompiled);\n\n        return $results;\n    }\n\n    /**\n     * Handle a view exception.\n     *\n     * @param  \\Exception  $e\n     * @param  int  $obLevel\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleViewException(Exception $e, $obLevel)\n    {\n        $e = new ErrorException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);\n\n        parent::handleViewException($e, $obLevel);\n    }\n\n    /**\n     * Get the exception message for an exception.\n     *\n     * @param  \\Exception  $e\n     * @return string\n     */\n    protected function getMessage(Exception $e)\n    {\n        return $e->getMessage().' (View: '.realpath(last($this->lastCompiled)).')';\n    }\n\n    /**\n     * Get the compiler implementation.\n     *\n     * @return \\Illuminate\\View\\Compilers\\CompilerInterface\n     */\n    public function getCompiler()\n    {\n        return $this->compiler;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Engines/Engine.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Engines;\n\nabstract class Engine\n{\n    /**\n     * The view that was last to be rendered.\n     *\n     * @var string\n     */\n    protected $lastRendered;\n\n    /**\n     * Get the last view that was rendered.\n     *\n     * @return string\n     */\n    public function getLastRendered()\n    {\n        return $this->lastRendered;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Engines;\n\nuse Closure;\nuse InvalidArgumentException;\n\nclass EngineResolver\n{\n    /**\n     * The array of engine resolvers.\n     *\n     * @var array\n     */\n    protected $resolvers = [];\n\n    /**\n     * The resolved engine instances.\n     *\n     * @var array\n     */\n    protected $resolved = [];\n\n    /**\n     * Register a new engine resolver.\n     *\n     * The engine string typically corresponds to a file extension.\n     *\n     * @param  string   $engine\n     * @param  \\Closure  $resolver\n     * @return void\n     */\n    public function register($engine, Closure $resolver)\n    {\n        unset($this->resolved[$engine]);\n\n        $this->resolvers[$engine] = $resolver;\n    }\n\n    /**\n     * Resolve an engine instance by name.\n     *\n     * @param  string  $engine\n     * @return \\Illuminate\\Contracts\\View\\Engine\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function resolve($engine)\n    {\n        if (isset($this->resolved[$engine])) {\n            return $this->resolved[$engine];\n        }\n\n        if (isset($this->resolvers[$engine])) {\n            return $this->resolved[$engine] = call_user_func($this->resolvers[$engine]);\n        }\n\n        throw new InvalidArgumentException(\"Engine [{$engine}] not found.\");\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Engines/FileEngine.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Engines;\n\nuse Illuminate\\Contracts\\View\\Engine;\n\nclass FileEngine implements Engine\n{\n    /**\n     * Get the evaluated contents of the view.\n     *\n     * @param  string  $path\n     * @param  array   $data\n     * @return string\n     */\n    public function get($path, array $data = [])\n    {\n        return file_get_contents($path);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Engines;\n\nuse Exception;\nuse Throwable;\nuse Illuminate\\Contracts\\View\\Engine;\nuse Symfony\\Component\\Debug\\Exception\\FatalThrowableError;\n\nclass PhpEngine implements Engine\n{\n    /**\n     * Get the evaluated contents of the view.\n     *\n     * @param  string  $path\n     * @param  array   $data\n     * @return string\n     */\n    public function get($path, array $data = [])\n    {\n        return $this->evaluatePath($path, $data);\n    }\n\n    /**\n     * Get the evaluated contents of the view at the given path.\n     *\n     * @param  string  $__path\n     * @param  array   $__data\n     * @return string\n     */\n    protected function evaluatePath($__path, $__data)\n    {\n        $obLevel = ob_get_level();\n\n        ob_start();\n\n        extract($__data, EXTR_SKIP);\n\n        // We'll evaluate the contents of the view inside a try/catch block so we can\n        // flush out any stray output that might get out before an error occurs or\n        // an exception is thrown. This prevents any partial views from leaking.\n        try {\n            include $__path;\n        } catch (Exception $e) {\n            $this->handleViewException($e, $obLevel);\n        } catch (Throwable $e) {\n            $this->handleViewException(new FatalThrowableError($e), $obLevel);\n        }\n\n        return ltrim(ob_get_clean());\n    }\n\n    /**\n     * Handle a view exception.\n     *\n     * @param  \\Exception  $e\n     * @param  int  $obLevel\n     * @return void\n     *\n     * @throws \\Exception\n     */\n    protected function handleViewException(Exception $e, $obLevel)\n    {\n        while (ob_get_level() > $obLevel) {\n            ob_end_clean();\n        }\n\n        throw $e;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Factory.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\nuse Illuminate\\Support\\Arr;\nuse Illuminate\\Support\\Str;\nuse InvalidArgumentException;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\View\\Engines\\EngineResolver;\nuse Illuminate\\Contracts\\Container\\Container;\nuse Illuminate\\Contracts\\View\\Factory as FactoryContract;\n\nclass Factory implements FactoryContract\n{\n    use Macroable,\n        Concerns\\ManagesComponents,\n        Concerns\\ManagesEvents,\n        Concerns\\ManagesLayouts,\n        Concerns\\ManagesLoops,\n        Concerns\\ManagesStacks,\n        Concerns\\ManagesTranslations;\n\n    /**\n     * The engine implementation.\n     *\n     * @var \\Illuminate\\View\\Engines\\EngineResolver\n     */\n    protected $engines;\n\n    /**\n     * The view finder implementation.\n     *\n     * @var \\Illuminate\\View\\ViewFinderInterface\n     */\n    protected $finder;\n\n    /**\n     * The event dispatcher instance.\n     *\n     * @var \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    protected $events;\n\n    /**\n     * The IoC container instance.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Data that should be available to all templates.\n     *\n     * @var array\n     */\n    protected $shared = [];\n\n    /**\n     * The extension to engine bindings.\n     *\n     * @var array\n     */\n    protected $extensions = [\n        'blade.php' => 'blade',\n        'php' => 'php',\n        'css' => 'file',\n        'html' => 'file',\n    ];\n\n    /**\n     * The view composer events.\n     *\n     * @var array\n     */\n    protected $composers = [];\n\n    /**\n     * The number of active rendering operations.\n     *\n     * @var int\n     */\n    protected $renderCount = 0;\n\n    /**\n     * Create a new view factory instance.\n     *\n     * @param  \\Illuminate\\View\\Engines\\EngineResolver  $engines\n     * @param  \\Illuminate\\View\\ViewFinderInterface  $finder\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function __construct(EngineResolver $engines, ViewFinderInterface $finder, Dispatcher $events)\n    {\n        $this->finder = $finder;\n        $this->events = $events;\n        $this->engines = $engines;\n\n        $this->share('__env', $this);\n    }\n\n    /**\n     * Get the evaluated view contents for the given view.\n     *\n     * @param  string  $path\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array   $data\n     * @param  array   $mergeData\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    public function file($path, $data = [], $mergeData = [])\n    {\n        $data = array_merge($mergeData, $this->parseData($data));\n\n        return tap($this->viewInstance($path, $path, $data), function ($view) {\n            $this->callCreator($view);\n        });\n    }\n\n    /**\n     * Get the evaluated view contents for the given view.\n     *\n     * @param  string  $view\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array   $data\n     * @param  array   $mergeData\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    public function make($view, $data = [], $mergeData = [])\n    {\n        $path = $this->finder->find(\n            $view = $this->normalizeName($view)\n        );\n\n        // Next, we will create the view instance and call the view creator for the view\n        // which can set any data, etc. Then we will return the view instance back to\n        // the caller for rendering or performing other view manipulations on this.\n        $data = array_merge($mergeData, $this->parseData($data));\n\n        return tap($this->viewInstance($view, $path, $data), function ($view) {\n            $this->callCreator($view);\n        });\n    }\n\n    /**\n     * Get the first view that actually exists from the given list.\n     *\n     * @param  array  $views\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array   $data\n     * @param  array   $mergeData\n     * @return \\Illuminate\\Contracts\\View\\View\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function first(array $views, $data = [], $mergeData = [])\n    {\n        $view = Arr::first($views, function ($view) {\n            return $this->exists($view);\n        });\n\n        if (! $view) {\n            throw new InvalidArgumentException('None of the views in the given array exist.');\n        }\n\n        return $this->make($view, $data, $mergeData);\n    }\n\n    /**\n     * Get the rendered content of the view based on a given condition.\n     *\n     * @param  bool  $condition\n     * @param  string  $view\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array   $data\n     * @param  array   $mergeData\n     * @return string\n     */\n    public function renderWhen($condition, $view, $data = [], $mergeData = [])\n    {\n        if (! $condition) {\n            return '';\n        }\n\n        return $this->make($view, $this->parseData($data), $mergeData)->render();\n    }\n\n    /**\n     * Get the rendered contents of a partial from a loop.\n     *\n     * @param  string  $view\n     * @param  array   $data\n     * @param  string  $iterator\n     * @param  string  $empty\n     * @return string\n     */\n    public function renderEach($view, $data, $iterator, $empty = 'raw|')\n    {\n        $result = '';\n\n        // If is actually data in the array, we will loop through the data and append\n        // an instance of the partial view to the final result HTML passing in the\n        // iterated value of this data array, allowing the views to access them.\n        if (count($data) > 0) {\n            foreach ($data as $key => $value) {\n                $result .= $this->make(\n                    $view, ['key' => $key, $iterator => $value]\n                )->render();\n            }\n        }\n\n        // If there is no data in the array, we will render the contents of the empty\n        // view. Alternatively, the \"empty view\" could be a raw string that begins\n        // with \"raw|\" for convenience and to let this know that it is a string.\n        else {\n            $result = Str::startsWith($empty, 'raw|')\n                        ? substr($empty, 4)\n                        : $this->make($empty)->render();\n        }\n\n        return $result;\n    }\n\n    /**\n     * Normalize a view name.\n     *\n     * @param  string $name\n     * @return string\n     */\n    protected function normalizeName($name)\n    {\n        return ViewName::normalize($name);\n    }\n\n    /**\n     * Parse the given data into a raw array.\n     *\n     * @param  mixed  $data\n     * @return array\n     */\n    protected function parseData($data)\n    {\n        return $data instanceof Arrayable ? $data->toArray() : $data;\n    }\n\n    /**\n     * Create a new view instance from the given arguments.\n     *\n     * @param  string  $view\n     * @param  string  $path\n     * @param  \\Illuminate\\Contracts\\Support\\Arrayable|array  $data\n     * @return \\Illuminate\\Contracts\\View\\View\n     */\n    protected function viewInstance($view, $path, $data)\n    {\n        return new View($this, $this->getEngineFromPath($path), $view, $path, $data);\n    }\n\n    /**\n     * Determine if a given view exists.\n     *\n     * @param  string  $view\n     * @return bool\n     */\n    public function exists($view)\n    {\n        try {\n            $this->finder->find($view);\n        } catch (InvalidArgumentException $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Get the appropriate view engine for the given path.\n     *\n     * @param  string  $path\n     * @return \\Illuminate\\Contracts\\View\\Engine\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function getEngineFromPath($path)\n    {\n        if (! $extension = $this->getExtension($path)) {\n            throw new InvalidArgumentException(\"Unrecognized extension in file: {$path}\");\n        }\n\n        $engine = $this->extensions[$extension];\n\n        return $this->engines->resolve($engine);\n    }\n\n    /**\n     * Get the extension used by the view file.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    protected function getExtension($path)\n    {\n        $extensions = array_keys($this->extensions);\n\n        return Arr::first($extensions, function ($value) use ($path) {\n            return Str::endsWith($path, '.'.$value);\n        });\n    }\n\n    /**\n     * Add a piece of shared data to the environment.\n     *\n     * @param  array|string  $key\n     * @param  mixed|null  $value\n     * @return mixed\n     */\n    public function share($key, $value = null)\n    {\n        $keys = is_array($key) ? $key : [$key => $value];\n\n        foreach ($keys as $key => $value) {\n            $this->shared[$key] = $value;\n        }\n\n        return $value;\n    }\n\n    /**\n     * Increment the rendering counter.\n     *\n     * @return void\n     */\n    public function incrementRender()\n    {\n        $this->renderCount++;\n    }\n\n    /**\n     * Decrement the rendering counter.\n     *\n     * @return void\n     */\n    public function decrementRender()\n    {\n        $this->renderCount--;\n    }\n\n    /**\n     * Check if there are no active render operations.\n     *\n     * @return bool\n     */\n    public function doneRendering()\n    {\n        return $this->renderCount == 0;\n    }\n\n    /**\n     * Add a location to the array of view locations.\n     *\n     * @param  string  $location\n     * @return void\n     */\n    public function addLocation($location)\n    {\n        $this->finder->addLocation($location);\n    }\n\n    /**\n     * Add a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return $this\n     */\n    public function addNamespace($namespace, $hints)\n    {\n        $this->finder->addNamespace($namespace, $hints);\n\n        return $this;\n    }\n\n    /**\n     * Prepend a new namespace to the loader.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return $this\n     */\n    public function prependNamespace($namespace, $hints)\n    {\n        $this->finder->prependNamespace($namespace, $hints);\n\n        return $this;\n    }\n\n    /**\n     * Replace the namespace hints for the given namespace.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return $this\n     */\n    public function replaceNamespace($namespace, $hints)\n    {\n        $this->finder->replaceNamespace($namespace, $hints);\n\n        return $this;\n    }\n\n    /**\n     * Register a valid view extension and its engine.\n     *\n     * @param  string    $extension\n     * @param  string    $engine\n     * @param  \\Closure|null  $resolver\n     * @return void\n     */\n    public function addExtension($extension, $engine, $resolver = null)\n    {\n        $this->finder->addExtension($extension);\n\n        if (isset($resolver)) {\n            $this->engines->register($engine, $resolver);\n        }\n\n        unset($this->extensions[$extension]);\n\n        $this->extensions = array_merge([$extension => $engine], $this->extensions);\n    }\n\n    /**\n     * Flush all of the factory state like sections and stacks.\n     *\n     * @return void\n     */\n    public function flushState()\n    {\n        $this->renderCount = 0;\n\n        $this->flushSections();\n        $this->flushStacks();\n    }\n\n    /**\n     * Flush all of the section contents if done rendering.\n     *\n     * @return void\n     */\n    public function flushStateIfDoneRendering()\n    {\n        if ($this->doneRendering()) {\n            $this->flushState();\n        }\n    }\n\n    /**\n     * Get the extension to engine bindings.\n     *\n     * @return array\n     */\n    public function getExtensions()\n    {\n        return $this->extensions;\n    }\n\n    /**\n     * Get the engine resolver instance.\n     *\n     * @return \\Illuminate\\View\\Engines\\EngineResolver\n     */\n    public function getEngineResolver()\n    {\n        return $this->engines;\n    }\n\n    /**\n     * Get the view finder instance.\n     *\n     * @return \\Illuminate\\View\\ViewFinderInterface\n     */\n    public function getFinder()\n    {\n        return $this->finder;\n    }\n\n    /**\n     * Set the view finder instance.\n     *\n     * @param  \\Illuminate\\View\\ViewFinderInterface  $finder\n     * @return void\n     */\n    public function setFinder(ViewFinderInterface $finder)\n    {\n        $this->finder = $finder;\n    }\n\n    /**\n     * Flush the cache of views located by the finder.\n     *\n     * @return void\n     */\n    public function flushFinderCache()\n    {\n        $this->getFinder()->flush();\n    }\n\n    /**\n     * Get the event dispatcher instance.\n     *\n     * @return \\Illuminate\\Contracts\\Events\\Dispatcher\n     */\n    public function getDispatcher()\n    {\n        return $this->events;\n    }\n\n    /**\n     * Set the event dispatcher instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return void\n     */\n    public function setDispatcher(Dispatcher $events)\n    {\n        $this->events = $events;\n    }\n\n    /**\n     * Get the IoC container instance.\n     *\n     * @return \\Illuminate\\Contracts\\Container\\Container\n     */\n    public function getContainer()\n    {\n        return $this->container;\n    }\n\n    /**\n     * Set the IoC container instance.\n     *\n     * @param  \\Illuminate\\Contracts\\Container\\Container  $container\n     * @return void\n     */\n    public function setContainer(Container $container)\n    {\n        $this->container = $container;\n    }\n\n    /**\n     * Get an item from the shared data.\n     *\n     * @param  string  $key\n     * @param  mixed   $default\n     * @return mixed\n     */\n    public function shared($key, $default = null)\n    {\n        return Arr::get($this->shared, $key, $default);\n    }\n\n    /**\n     * Get all of the shared data for the environment.\n     *\n     * @return array\n     */\n    public function getShared()\n    {\n        return $this->shared;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\nuse InvalidArgumentException;\nuse Illuminate\\Filesystem\\Filesystem;\n\nclass FileViewFinder implements ViewFinderInterface\n{\n    /**\n     * The filesystem instance.\n     *\n     * @var \\Illuminate\\Filesystem\\Filesystem\n     */\n    protected $files;\n\n    /**\n     * The array of active view paths.\n     *\n     * @var array\n     */\n    protected $paths;\n\n    /**\n     * The array of views that have been located.\n     *\n     * @var array\n     */\n    protected $views = [];\n\n    /**\n     * The namespace to file path hints.\n     *\n     * @var array\n     */\n    protected $hints = [];\n\n    /**\n     * Register a view extension with the finder.\n     *\n     * @var array\n     */\n    protected $extensions = ['blade.php', 'php', 'css', 'html'];\n\n    /**\n     * Create a new file view loader instance.\n     *\n     * @param  \\Illuminate\\Filesystem\\Filesystem  $files\n     * @param  array  $paths\n     * @param  array|null  $extensions\n     * @return void\n     */\n    public function __construct(Filesystem $files, array $paths, array $extensions = null)\n    {\n        $this->files = $files;\n        $this->paths = array_map([$this, 'resolvePath'], $paths);\n\n        if (isset($extensions)) {\n            $this->extensions = $extensions;\n        }\n    }\n\n    /**\n     * Get the fully qualified location of the view.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public function find($name)\n    {\n        if (isset($this->views[$name])) {\n            return $this->views[$name];\n        }\n\n        if ($this->hasHintInformation($name = trim($name))) {\n            return $this->views[$name] = $this->findNamespacedView($name);\n        }\n\n        return $this->views[$name] = $this->findInPaths($name, $this->paths);\n    }\n\n    /**\n     * Get the path to a template with a named path.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    protected function findNamespacedView($name)\n    {\n        [$namespace, $view] = $this->parseNamespaceSegments($name);\n\n        return $this->findInPaths($view, $this->hints[$namespace]);\n    }\n\n    /**\n     * Get the segments of a template with a named path.\n     *\n     * @param  string  $name\n     * @return array\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function parseNamespaceSegments($name)\n    {\n        $segments = explode(static::HINT_PATH_DELIMITER, $name);\n\n        if (count($segments) !== 2) {\n            throw new InvalidArgumentException(\"View [{$name}] has an invalid name.\");\n        }\n\n        if (! isset($this->hints[$segments[0]])) {\n            throw new InvalidArgumentException(\"No hint path defined for [{$segments[0]}].\");\n        }\n\n        return $segments;\n    }\n\n    /**\n     * Find the given view in the list of paths.\n     *\n     * @param  string  $name\n     * @param  array   $paths\n     * @return string\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function findInPaths($name, $paths)\n    {\n        foreach ((array) $paths as $path) {\n            foreach ($this->getPossibleViewFiles($name) as $file) {\n                if ($this->files->exists($viewPath = $path.'/'.$file)) {\n                    return $viewPath;\n                }\n            }\n        }\n\n        throw new InvalidArgumentException(\"View [{$name}] not found.\");\n    }\n\n    /**\n     * Get an array of possible view files.\n     *\n     * @param  string  $name\n     * @return array\n     */\n    protected function getPossibleViewFiles($name)\n    {\n        return array_map(function ($extension) use ($name) {\n            return str_replace('.', '/', $name).'.'.$extension;\n        }, $this->extensions);\n    }\n\n    /**\n     * Add a location to the finder.\n     *\n     * @param  string  $location\n     * @return void\n     */\n    public function addLocation($location)\n    {\n        $this->paths[] = $this->resolvePath($location);\n    }\n\n    /**\n     * Prepend a location to the finder.\n     *\n     * @param  string  $location\n     * @return void\n     */\n    public function prependLocation($location)\n    {\n        array_unshift($this->paths, $this->resolvePath($location));\n    }\n\n    /**\n     * Resolve the path.\n     *\n     * @param  string  $path\n     * @return string\n     */\n    protected function resolvePath($path)\n    {\n        return realpath($path) ?: $path;\n    }\n\n    /**\n     * Add a namespace hint to the finder.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function addNamespace($namespace, $hints)\n    {\n        $hints = (array) $hints;\n\n        if (isset($this->hints[$namespace])) {\n            $hints = array_merge($this->hints[$namespace], $hints);\n        }\n\n        $this->hints[$namespace] = $hints;\n    }\n\n    /**\n     * Prepend a namespace hint to the finder.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function prependNamespace($namespace, $hints)\n    {\n        $hints = (array) $hints;\n\n        if (isset($this->hints[$namespace])) {\n            $hints = array_merge($hints, $this->hints[$namespace]);\n        }\n\n        $this->hints[$namespace] = $hints;\n    }\n\n    /**\n     * Replace the namespace hints for the given namespace.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function replaceNamespace($namespace, $hints)\n    {\n        $this->hints[$namespace] = (array) $hints;\n    }\n\n    /**\n     * Register an extension with the view finder.\n     *\n     * @param  string  $extension\n     * @return void\n     */\n    public function addExtension($extension)\n    {\n        if (($index = array_search($extension, $this->extensions)) !== false) {\n            unset($this->extensions[$index]);\n        }\n\n        array_unshift($this->extensions, $extension);\n    }\n\n    /**\n     * Returns whether or not the view name has any hint information.\n     *\n     * @param  string  $name\n     * @return bool\n     */\n    public function hasHintInformation($name)\n    {\n        return strpos($name, static::HINT_PATH_DELIMITER) > 0;\n    }\n\n    /**\n     * Flush the cache of located views.\n     *\n     * @return void\n     */\n    public function flush()\n    {\n        $this->views = [];\n    }\n\n    /**\n     * Get the filesystem instance.\n     *\n     * @return \\Illuminate\\Filesystem\\Filesystem\n     */\n    public function getFilesystem()\n    {\n        return $this->files;\n    }\n\n    /**\n     * Set the active view paths.\n     *\n     * @param  array  $paths\n     * @return $this\n     */\n    public function setPaths($paths)\n    {\n        $this->paths = $paths;\n\n        return $this;\n    }\n\n    /**\n     * Get the active view paths.\n     *\n     * @return array\n     */\n    public function getPaths()\n    {\n        return $this->paths;\n    }\n\n    /**\n     * Get the views that have been located.\n     *\n     * @return array\n     */\n    public function getViews()\n    {\n        return $this->views;\n    }\n\n    /**\n     * Get the namespace to file path hints.\n     *\n     * @return array\n     */\n    public function getHints()\n    {\n        return $this->hints;\n    }\n\n    /**\n     * Get registered extensions.\n     *\n     * @return array\n     */\n    public function getExtensions()\n    {\n        return $this->extensions;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Taylor Otwell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php",
    "content": "<?php\n\nnamespace Illuminate\\View\\Middleware;\n\nuse Closure;\nuse Illuminate\\Support\\ViewErrorBag;\nuse Illuminate\\Contracts\\View\\Factory as ViewFactory;\n\nclass ShareErrorsFromSession\n{\n    /**\n     * The view factory implementation.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Factory\n     */\n    protected $view;\n\n    /**\n     * Create a new error binder instance.\n     *\n     * @param  \\Illuminate\\Contracts\\View\\Factory  $view\n     * @return void\n     */\n    public function __construct(ViewFactory $view)\n    {\n        $this->view = $view;\n    }\n\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request  $request\n     * @param  \\Closure  $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        // If the current session has an \"errors\" variable bound to it, we will share\n        // its value with all view instances so the views can easily access errors\n        // without having to bind. An empty bag is set when there aren't errors.\n        $this->view->share(\n            'errors', $request->session()->get('errors') ?: new ViewErrorBag\n        );\n\n        // Putting the errors in the view for every view allows the developer to just\n        // assume that some errors are always available, which is convenient since\n        // they don't have to continually run checks for the presence of errors.\n\n        return $next($request);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/View.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\nuse Exception;\nuse Throwable;\nuse ArrayAccess;\nuse BadMethodCallException;\nuse Illuminate\\Support\\Str;\nuse Illuminate\\Support\\MessageBag;\nuse Illuminate\\Contracts\\View\\Engine;\nuse Illuminate\\Support\\Traits\\Macroable;\nuse Illuminate\\Contracts\\Support\\Arrayable;\nuse Illuminate\\Contracts\\Support\\Renderable;\nuse Illuminate\\Contracts\\Support\\MessageProvider;\nuse Illuminate\\Contracts\\View\\View as ViewContract;\n\nclass View implements ArrayAccess, ViewContract\n{\n    use Macroable {\n        __call as macroCall;\n    }\n\n    /**\n     * The view factory instance.\n     *\n     * @var \\Illuminate\\View\\Factory\n     */\n    protected $factory;\n\n    /**\n     * The engine implementation.\n     *\n     * @var \\Illuminate\\Contracts\\View\\Engine\n     */\n    protected $engine;\n\n    /**\n     * The name of the view.\n     *\n     * @var string\n     */\n    protected $view;\n\n    /**\n     * The array of view data.\n     *\n     * @var array\n     */\n    protected $data;\n\n    /**\n     * The path to the view file.\n     *\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * Create a new view instance.\n     *\n     * @param  \\Illuminate\\View\\Factory  $factory\n     * @param  \\Illuminate\\Contracts\\View\\Engine  $engine\n     * @param  string  $view\n     * @param  string  $path\n     * @param  mixed  $data\n     * @return void\n     */\n    public function __construct(Factory $factory, Engine $engine, $view, $path, $data = [])\n    {\n        $this->view = $view;\n        $this->path = $path;\n        $this->engine = $engine;\n        $this->factory = $factory;\n\n        $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;\n    }\n\n    /**\n     * Get the string contents of the view.\n     *\n     * @param  callable|null  $callback\n     * @return array|string\n     *\n     * @throws \\Throwable\n     */\n    public function render(callable $callback = null)\n    {\n        try {\n            $contents = $this->renderContents();\n\n            $response = isset($callback) ? call_user_func($callback, $this, $contents) : null;\n\n            // Once we have the contents of the view, we will flush the sections if we are\n            // done rendering all views so that there is nothing left hanging over when\n            // another view gets rendered in the future by the application developer.\n            $this->factory->flushStateIfDoneRendering();\n\n            return ! is_null($response) ? $response : $contents;\n        } catch (Exception $e) {\n            $this->factory->flushState();\n\n            throw $e;\n        } catch (Throwable $e) {\n            $this->factory->flushState();\n\n            throw $e;\n        }\n    }\n\n    /**\n     * Get the contents of the view instance.\n     *\n     * @return string\n     */\n    protected function renderContents()\n    {\n        // We will keep track of the amount of views being rendered so we can flush\n        // the section after the complete rendering operation is done. This will\n        // clear out the sections for any separate views that may be rendered.\n        $this->factory->incrementRender();\n\n        $this->factory->callComposer($this);\n\n        $contents = $this->getContents();\n\n        // Once we've finished rendering the view, we'll decrement the render count\n        // so that each sections get flushed out next time a view is created and\n        // no old sections are staying around in the memory of an environment.\n        $this->factory->decrementRender();\n\n        return $contents;\n    }\n\n    /**\n     * Get the evaluated contents of the view.\n     *\n     * @return string\n     */\n    protected function getContents()\n    {\n        return $this->engine->get($this->path, $this->gatherData());\n    }\n\n    /**\n     * Get the data bound to the view instance.\n     *\n     * @return array\n     */\n    public function gatherData()\n    {\n        $data = array_merge($this->factory->getShared(), $this->data);\n\n        foreach ($data as $key => $value) {\n            if ($value instanceof Renderable) {\n                $data[$key] = $value->render();\n            }\n        }\n\n        return $data;\n    }\n\n    /**\n     * Get the sections of the rendered view.\n     *\n     * @return array\n     *\n     * @throws \\Throwable\n     */\n    public function renderSections()\n    {\n        return $this->render(function () {\n            return $this->factory->getSections();\n        });\n    }\n\n    /**\n     * Add a piece of data to the view.\n     *\n     * @param  string|array  $key\n     * @param  mixed   $value\n     * @return $this\n     */\n    public function with($key, $value = null)\n    {\n        if (is_array($key)) {\n            $this->data = array_merge($this->data, $key);\n        } else {\n            $this->data[$key] = $value;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add a view instance to the view data.\n     *\n     * @param  string  $key\n     * @param  string  $view\n     * @param  array   $data\n     * @return $this\n     */\n    public function nest($key, $view, array $data = [])\n    {\n        return $this->with($key, $this->factory->make($view, $data));\n    }\n\n    /**\n     * Add validation errors to the view.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array  $provider\n     * @return $this\n     */\n    public function withErrors($provider)\n    {\n        $this->with('errors', $this->formatErrors($provider));\n\n        return $this;\n    }\n\n    /**\n     * Format the given message provider into a MessageBag.\n     *\n     * @param  \\Illuminate\\Contracts\\Support\\MessageProvider|array  $provider\n     * @return \\Illuminate\\Support\\MessageBag\n     */\n    protected function formatErrors($provider)\n    {\n        return $provider instanceof MessageProvider\n                        ? $provider->getMessageBag() : new MessageBag((array) $provider);\n    }\n\n    /**\n     * Get the name of the view.\n     *\n     * @return string\n     */\n    public function name()\n    {\n        return $this->getName();\n    }\n\n    /**\n     * Get the name of the view.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->view;\n    }\n\n    /**\n     * Get the array of view data.\n     *\n     * @return array\n     */\n    public function getData()\n    {\n        return $this->data;\n    }\n\n    /**\n     * Get the path to the view file.\n     *\n     * @return string\n     */\n    public function getPath()\n    {\n        return $this->path;\n    }\n\n    /**\n     * Set the path to the view.\n     *\n     * @param  string  $path\n     * @return void\n     */\n    public function setPath($path)\n    {\n        $this->path = $path;\n    }\n\n    /**\n     * Get the view factory instance.\n     *\n     * @return \\Illuminate\\View\\Factory\n     */\n    public function getFactory()\n    {\n        return $this->factory;\n    }\n\n    /**\n     * Get the view's rendering engine.\n     *\n     * @return \\Illuminate\\Contracts\\View\\Engine\n     */\n    public function getEngine()\n    {\n        return $this->engine;\n    }\n\n    /**\n     * Determine if a piece of data is bound.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function offsetExists($key)\n    {\n        return array_key_exists($key, $this->data);\n    }\n\n    /**\n     * Get a piece of bound data to the view.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function offsetGet($key)\n    {\n        return $this->data[$key];\n    }\n\n    /**\n     * Set a piece of data on the view.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function offsetSet($key, $value)\n    {\n        $this->with($key, $value);\n    }\n\n    /**\n     * Unset a piece of data from the view.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function offsetUnset($key)\n    {\n        unset($this->data[$key]);\n    }\n\n    /**\n     * Get a piece of data from the view.\n     *\n     * @param  string  $key\n     * @return mixed\n     */\n    public function &__get($key)\n    {\n        return $this->data[$key];\n    }\n\n    /**\n     * Set a piece of data on the view.\n     *\n     * @param  string  $key\n     * @param  mixed   $value\n     * @return void\n     */\n    public function __set($key, $value)\n    {\n        $this->with($key, $value);\n    }\n\n    /**\n     * Check if a piece of data is bound to the view.\n     *\n     * @param  string  $key\n     * @return bool\n     */\n    public function __isset($key)\n    {\n        return isset($this->data[$key]);\n    }\n\n    /**\n     * Remove a piece of bound data from the view.\n     *\n     * @param  string  $key\n     * @return void\n     */\n    public function __unset($key)\n    {\n        unset($this->data[$key]);\n    }\n\n    /**\n     * Dynamically bind parameters to the view.\n     *\n     * @param  string  $method\n     * @param  array   $parameters\n     * @return \\Illuminate\\View\\View\n     *\n     * @throws \\BadMethodCallException\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->macroCall($method, $parameters);\n        }\n\n        if (! Str::startsWith($method, 'with')) {\n            throw new BadMethodCallException(sprintf(\n                'Method %s::%s does not exist.', static::class, $method\n            ));\n        }\n\n        return $this->with(Str::camel(substr($method, 4)), $parameters[0]);\n    }\n\n    /**\n     * Get the string contents of the view.\n     *\n     * @return string\n     *\n     * @throws \\Throwable\n     */\n    public function __toString()\n    {\n        return $this->render();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/ViewFinderInterface.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\ninterface ViewFinderInterface\n{\n    /**\n     * Hint path delimiter value.\n     *\n     * @var string\n     */\n    const HINT_PATH_DELIMITER = '::';\n\n    /**\n     * Get the fully qualified location of the view.\n     *\n     * @param  string  $view\n     * @return string\n     */\n    public function find($view);\n\n    /**\n     * Add a location to the finder.\n     *\n     * @param  string  $location\n     * @return void\n     */\n    public function addLocation($location);\n\n    /**\n     * Add a namespace hint to the finder.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function addNamespace($namespace, $hints);\n\n    /**\n     * Prepend a namespace hint to the finder.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function prependNamespace($namespace, $hints);\n\n    /**\n     * Replace the namespace hints for the given namespace.\n     *\n     * @param  string  $namespace\n     * @param  string|array  $hints\n     * @return void\n     */\n    public function replaceNamespace($namespace, $hints);\n\n    /**\n     * Add a valid view extension to the finder.\n     *\n     * @param  string  $extension\n     * @return void\n     */\n    public function addExtension($extension);\n\n    /**\n     * Flush the cache of located views.\n     *\n     * @return void\n     */\n    public function flush();\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/ViewName.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\nclass ViewName\n{\n    /**\n     * Normalize the given event name.\n     *\n     * @param  string  $name\n     * @return string\n     */\n    public static function normalize($name)\n    {\n        $delimiter = ViewFinderInterface::HINT_PATH_DELIMITER;\n\n        if (strpos($name, $delimiter) === false) {\n            return str_replace('/', '.', $name);\n        }\n\n        [$namespace, $name] = explode($delimiter, $name);\n\n        return $namespace.$delimiter.str_replace('/', '.', $name);\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/ViewServiceProvider.php",
    "content": "<?php\n\nnamespace Illuminate\\View;\n\nuse Illuminate\\View\\Engines\\PhpEngine;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\View\\Engines\\FileEngine;\nuse Illuminate\\View\\Engines\\CompilerEngine;\nuse Illuminate\\View\\Engines\\EngineResolver;\nuse Illuminate\\View\\Compilers\\BladeCompiler;\n\nclass ViewServiceProvider extends ServiceProvider\n{\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->registerFactory();\n\n        $this->registerViewFinder();\n\n        $this->registerEngineResolver();\n    }\n\n    /**\n     * Register the view environment.\n     *\n     * @return void\n     */\n    public function registerFactory()\n    {\n        $this->app->singleton('view', function ($app) {\n            // Next we need to grab the engine resolver instance that will be used by the\n            // environment. The resolver will be used by an environment to get each of\n            // the various engine implementations such as plain PHP or Blade engine.\n            $resolver = $app['view.engine.resolver'];\n\n            $finder = $app['view.finder'];\n\n            $factory = $this->createFactory($resolver, $finder, $app['events']);\n\n            // We will also set the container instance on this view environment since the\n            // view composers may be classes registered in the container, which allows\n            // for great testable, flexible composers for the application developer.\n            $factory->setContainer($app);\n\n            $factory->share('app', $app);\n\n            return $factory;\n        });\n    }\n\n    /**\n     * Create a new Factory Instance.\n     *\n     * @param  \\Illuminate\\View\\Engines\\EngineResolver  $resolver\n     * @param  \\Illuminate\\View\\ViewFinderInterface  $finder\n     * @param  \\Illuminate\\Contracts\\Events\\Dispatcher  $events\n     * @return \\Illuminate\\View\\Factory\n     */\n    protected function createFactory($resolver, $finder, $events)\n    {\n        return new Factory($resolver, $finder, $events);\n    }\n\n    /**\n     * Register the view finder implementation.\n     *\n     * @return void\n     */\n    public function registerViewFinder()\n    {\n        $this->app->bind('view.finder', function ($app) {\n            return new FileViewFinder($app['files'], $app['config']['view.paths']);\n        });\n    }\n\n    /**\n     * Register the engine resolver instance.\n     *\n     * @return void\n     */\n    public function registerEngineResolver()\n    {\n        $this->app->singleton('view.engine.resolver', function () {\n            $resolver = new EngineResolver;\n\n            // Next, we will register the various view engines with the resolver so that the\n            // environment will resolve the engines needed for various views based on the\n            // extension of view file. We call a method for each of the view's engines.\n            foreach (['file', 'php', 'blade'] as $engine) {\n                $this->{'register'.ucfirst($engine).'Engine'}($resolver);\n            }\n\n            return $resolver;\n        });\n    }\n\n    /**\n     * Register the file engine implementation.\n     *\n     * @param  \\Illuminate\\View\\Engines\\EngineResolver  $resolver\n     * @return void\n     */\n    public function registerFileEngine($resolver)\n    {\n        $resolver->register('file', function () {\n            return new FileEngine;\n        });\n    }\n\n    /**\n     * Register the PHP engine implementation.\n     *\n     * @param  \\Illuminate\\View\\Engines\\EngineResolver  $resolver\n     * @return void\n     */\n    public function registerPhpEngine($resolver)\n    {\n        $resolver->register('php', function () {\n            return new PhpEngine;\n        });\n    }\n\n    /**\n     * Register the Blade engine implementation.\n     *\n     * @param  \\Illuminate\\View\\Engines\\EngineResolver  $resolver\n     * @return void\n     */\n    public function registerBladeEngine($resolver)\n    {\n        // The Compiler engine requires an instance of the CompilerInterface, which in\n        // this case will be the Blade compiler, so we'll first create the compiler\n        // instance to pass into the engine so it can compile the views properly.\n        $this->app->singleton('blade.compiler', function () {\n            return new BladeCompiler(\n                $this->app['files'], $this->app['config']['view.compiled']\n            );\n        });\n\n        $resolver->register('blade', function () {\n            return new CompilerEngine($this->app['blade.compiler']);\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/framework/src/Illuminate/View/composer.json",
    "content": "{\n    \"name\": \"illuminate/view\",\n    \"description\": \"The Illuminate View package.\",\n    \"license\": \"MIT\",\n    \"homepage\": \"https://laravel.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/laravel/framework/issues\",\n        \"source\": \"https://github.com/laravel/framework\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"ext-json\": \"*\",\n        \"illuminate/container\": \"5.8.*\",\n        \"illuminate/contracts\": \"5.8.*\",\n        \"illuminate/events\": \"5.8.*\",\n        \"illuminate/filesystem\": \"5.8.*\",\n        \"illuminate/support\": \"5.8.*\",\n        \"symfony/debug\": \"^4.2\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Illuminate\\\\View\\\\\": \"\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"5.8-dev\"\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"minimum-stability\": \"dev\"\n}\n"
  },
  {
    "path": "vendor/laravel/tinker/LICENSE.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) <Taylor Otwell>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/laravel/tinker/README.md",
    "content": "<p align=\"center\"><img src=\"https://laravel.com/assets/img/components/logo-tinker.svg\"></p>\n\n<p align=\"center\">\n<a href=\"https://travis-ci.org/laravel/tinker\"><img src=\"https://travis-ci.org/laravel/tinker.svg\" alt=\"Build Status\"></a>\n<a href=\"https://packagist.org/packages/laravel/tinker\"><img src=\"https://poser.pugx.org/laravel/tinker/d/total.svg\" alt=\"Total Downloads\"></a>\n<a href=\"https://packagist.org/packages/laravel/tinker\"><img src=\"https://poser.pugx.org/laravel/tinker/v/stable.svg\" alt=\"Latest Stable Version\"></a>\n<a href=\"https://packagist.org/packages/laravel/tinker\"><img src=\"https://poser.pugx.org/laravel/tinker/license.svg\" alt=\"License\"></a>\n</p>\n\n## Introduction\n\nLaravel Tinker is a powerful REPL for the Laravel framework.\n\n## Installation\n\nTo get started with Laravel Tinker, simply run:\n\n    composer require laravel/tinker\n\n## Basic Usage\n\nFrom your console, execute the `php artisan tinker` command.\n\n## License\n\nLaravel Tinker is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).\n"
  },
  {
    "path": "vendor/laravel/tinker/composer.json",
    "content": "{\n    \"name\": \"laravel/tinker\",\n    \"description\": \"Powerful REPL for the Laravel framework.\",\n    \"keywords\": [\"tinker\", \"repl\", \"psysh\", \"laravel\"],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Taylor Otwell\",\n            \"email\": \"taylor@laravel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.5.9\",\n        \"illuminate/console\": \"~5.1\",\n        \"illuminate/contracts\": \"~5.1\",\n        \"illuminate/support\": \"~5.1\",\n        \"psy/psysh\": \"0.7.*|0.8.*|0.9.*\",\n        \"symfony/var-dumper\": \"~3.0|~4.0\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"~4.0|~5.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Laravel\\\\Tinker\\\\\": \"src/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Tests\\\\\": \"tests/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.0-dev\"\n        },\n        \"laravel\": {\n            \"providers\": [\n                \"Laravel\\\\Tinker\\\\TinkerServiceProvider\"\n            ]\n        }\n    },\n    \"config\": {\n        \"sort-packages\": true\n    },\n    \"suggest\": {\n        \"illuminate/database\": \"The Illuminate Database package (~5.1).\"\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/tinker/config/tinker.php",
    "content": "<?php\n\nreturn [\n\n    /*\n    |--------------------------------------------------------------------------\n    | Console Commands\n    |--------------------------------------------------------------------------\n    |\n    | This option allows you to add additional Artisan commands that should\n    | be available within the Tinker environment. Once the command is in\n    | this array you may execute the command in Tinker using its name.\n    |\n    */\n\n    'commands' => [\n        // App\\Console\\Commands\\ExampleCommand::class,\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | Alias Blacklist\n    |--------------------------------------------------------------------------\n    |\n    | Typically, Tinker automatically aliases classes as you require them in\n    | Tinker. However, you may wish to never alias certain classes, which\n    | you may accomplish by listing the classes in the following array.\n    |\n    */\n\n    'dont_alias' => [],\n\n];\n"
  },
  {
    "path": "vendor/laravel/tinker/src/ClassAliasAutoloader.php",
    "content": "<?php\n\nnamespace Laravel\\Tinker;\n\nuse Psy\\Shell;\nuse Illuminate\\Support\\Str;\n\nclass ClassAliasAutoloader\n{\n    /**\n     * The shell instance.\n     *\n     * @var \\Psy\\Shell\n     */\n    protected $shell;\n\n    /**\n     * All of the discovered classes.\n     *\n     * @var array\n     */\n    protected $classes = [];\n\n    /**\n     * Register a new alias loader instance.\n     *\n     * @param  \\Psy\\Shell  $shell\n     * @param  string  $classMapPath\n     * @return static\n     */\n    public static function register(Shell $shell, $classMapPath)\n    {\n        return tap(new static($shell, $classMapPath), function ($loader) {\n            spl_autoload_register([$loader, 'aliasClass']);\n        });\n    }\n\n    /**\n     * Create a new alias loader instance.\n     *\n     * @param  \\Psy\\Shell  $shell\n     * @param  string  $classMapPath\n     * @return void\n     */\n    public function __construct(Shell $shell, $classMapPath)\n    {\n        $this->shell = $shell;\n\n        $vendorPath = dirname(dirname($classMapPath));\n\n        $classes = require $classMapPath;\n\n        $excludedAliases = collect(config('tinker.dont_alias', []));\n\n        foreach ($classes as $class => $path) {\n            if (! Str::contains($class, '\\\\') || Str::startsWith($path, $vendorPath)) {\n                continue;\n            }\n\n            if (! $excludedAliases->filter(function ($alias) use ($class) {\n                return Str::startsWith($class, $alias);\n            })->isEmpty()) {\n                continue;\n            }\n\n            $name = class_basename($class);\n\n            if (! isset($this->classes[$name])) {\n                $this->classes[$name] = $class;\n            }\n        }\n    }\n\n    /**\n     * Find the closest class by name.\n     *\n     * @param  string  $class\n     * @return void\n     */\n    public function aliasClass($class)\n    {\n        if (Str::contains($class, '\\\\')) {\n            return;\n        }\n\n        $fullName = isset($this->classes[$class])\n            ? $this->classes[$class]\n            : false;\n\n        if ($fullName) {\n            $this->shell->writeStdout(\"[!] Aliasing '{$class}' to '{$fullName}' for this Tinker session.\\n\");\n\n            class_alias($fullName, $class);\n        }\n    }\n\n    /**\n     * Unregister the alias loader instance.\n     *\n     * @return void\n     */\n    public function unregister()\n    {\n        spl_autoload_unregister([$this, 'aliasClass']);\n    }\n\n    /**\n     * Handle the destruction of the instance.\n     *\n     * @return void\n     */\n    public function __destruct()\n    {\n        $this->unregister();\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/tinker/src/Console/TinkerCommand.php",
    "content": "<?php\n\nnamespace Laravel\\Tinker\\Console;\n\nuse Psy\\Shell;\nuse Psy\\Configuration;\nuse Illuminate\\Console\\Command;\nuse Laravel\\Tinker\\ClassAliasAutoloader;\nuse Symfony\\Component\\Console\\Input\\InputArgument;\n\nclass TinkerCommand extends Command\n{\n    /**\n     * Artisan commands to include in the tinker shell.\n     *\n     * @var array\n     */\n    protected $commandWhitelist = [\n        'clear-compiled', 'down', 'env', 'inspire', 'migrate', 'optimize', 'up',\n    ];\n\n    /**\n     * The console command name.\n     *\n     * @var string\n     */\n    protected $name = 'tinker';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Interact with your application';\n\n    /**\n     * Execute the console command.\n     *\n     * @return void\n     */\n    public function handle()\n    {\n        $this->getApplication()->setCatchExceptions(false);\n\n        $config = new Configuration([\n            'updateCheck' => 'never'\n        ]);\n\n        $config->getPresenter()->addCasters(\n            $this->getCasters()\n        );\n\n        $shell = new Shell($config);\n        $shell->addCommands($this->getCommands());\n        $shell->setIncludes($this->argument('include'));\n\n        $path = $this->getLaravel()->basePath().DIRECTORY_SEPARATOR.'vendor/composer/autoload_classmap.php';\n\n        $loader = ClassAliasAutoloader::register($shell, $path);\n\n        try {\n            $shell->run();\n        } finally {\n            $loader->unregister();\n        }\n    }\n\n    /**\n     * Get artisan commands to pass through to PsySH.\n     *\n     * @return array\n     */\n    protected function getCommands()\n    {\n        $commands = [];\n\n        foreach ($this->getApplication()->all() as $name => $command) {\n            if (in_array($name, $this->commandWhitelist)) {\n                $commands[] = $command;\n            }\n        }\n\n        foreach (config('tinker.commands', []) as $command) {\n            $commands[] = $this->getApplication()->resolve($command);\n        }\n\n        return $commands;\n    }\n\n    /**\n     * Get an array of Laravel tailored casters.\n     *\n     * @return array\n     */\n    protected function getCasters()\n    {\n        $casters = [\n            'Illuminate\\Support\\Collection' => 'Laravel\\Tinker\\TinkerCaster::castCollection',\n        ];\n\n        if (class_exists('Illuminate\\Database\\Eloquent\\Model')) {\n            $casters['Illuminate\\Database\\Eloquent\\Model'] = 'Laravel\\Tinker\\TinkerCaster::castModel';\n        }\n\n        if (class_exists('Illuminate\\Foundation\\Application')) {\n            $casters['Illuminate\\Foundation\\Application'] = 'Laravel\\Tinker\\TinkerCaster::castApplication';\n        }\n\n        return $casters;\n    }\n\n    /**\n     * Get the console command arguments.\n     *\n     * @return array\n     */\n    protected function getArguments()\n    {\n        return [\n            ['include', InputArgument::IS_ARRAY, 'Include file(s) before starting tinker'],\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/tinker/src/TinkerCaster.php",
    "content": "<?php\n\nnamespace Laravel\\Tinker;\n\nuse Exception;\nuse Symfony\\Component\\VarDumper\\Caster\\Caster;\n\nclass TinkerCaster\n{\n    /**\n     * Application methods to include in the presenter.\n     *\n     * @var array\n     */\n    private static $appProperties = [\n        'configurationIsCached',\n        'environment',\n        'environmentFile',\n        'isLocal',\n        'routesAreCached',\n        'runningUnitTests',\n        'version',\n        'path',\n        'basePath',\n        'configPath',\n        'databasePath',\n        'langPath',\n        'publicPath',\n        'storagePath',\n        'bootstrapPath',\n    ];\n\n    /**\n     * Get an array representing the properties of an application.\n     *\n     * @param  \\Illuminate\\Foundation\\Application  $app\n     * @return array\n     */\n    public static function castApplication($app)\n    {\n        $results = [];\n\n        foreach (self::$appProperties as $property) {\n            try {\n                $val = $app->$property();\n\n                if (! is_null($val)) {\n                    $results[Caster::PREFIX_VIRTUAL.$property] = $val;\n                }\n            } catch (Exception $e) {\n                //\n            }\n        }\n\n        return $results;\n    }\n\n    /**\n     * Get an array representing the properties of a collection.\n     *\n     * @param  \\Illuminate\\Support\\Collection  $collection\n     * @return array\n     */\n    public static function castCollection($collection)\n    {\n        return [\n            Caster::PREFIX_VIRTUAL.'all' => $collection->all(),\n        ];\n    }\n\n    /**\n     * Get an array representing the properties of a model.\n     *\n     * @param  \\Illuminate\\Database\\Eloquent\\Model  $model\n     * @return array\n     */\n    public static function castModel($model)\n    {\n        $attributes = array_merge(\n            $model->getAttributes(), $model->getRelations()\n        );\n\n        $visible = array_flip(\n            $model->getVisible() ?: array_diff(array_keys($attributes), $model->getHidden())\n        );\n\n        $results = [];\n\n        foreach (array_intersect_key($attributes, $visible) as $key => $value) {\n            $results[(isset($visible[$key]) ? Caster::PREFIX_VIRTUAL : Caster::PREFIX_PROTECTED).$key] = $value;\n        }\n\n        return $results;\n    }\n}\n"
  },
  {
    "path": "vendor/laravel/tinker/src/TinkerServiceProvider.php",
    "content": "<?php\n\nnamespace Laravel\\Tinker;\n\nuse Illuminate\\Foundation\\Application as LaravelApplication;\nuse Illuminate\\Support\\ServiceProvider;\nuse Laravel\\Lumen\\Application as LumenApplication;\nuse Laravel\\Tinker\\Console\\TinkerCommand;\n\nclass TinkerServiceProvider extends ServiceProvider\n{\n    /**\n     * Indicates if loading of the provider is deferred.\n     *\n     * @var bool\n     */\n    protected $defer = true;\n\n    /**\n     * Boot the service provider.\n     *\n     * @return void\n     */\n    public function boot()\n    {\n        $source = realpath($raw = __DIR__ . '/../config/tinker.php') ?: $raw;\n\n        if ($this->app instanceof LaravelApplication && $this->app->runningInConsole()) {\n            $this->publishes([$source => config_path('tinker.php')]);\n        } elseif ($this->app instanceof LumenApplication) {\n            $this->app->configure('tinker');\n        }\n\n        $this->mergeConfigFrom($source, 'tinker');\n    }\n\n    /**\n     * Register the service provider.\n     *\n     * @return void\n     */\n    public function register()\n    {\n        $this->app->singleton('command.tinker', function () {\n            return new TinkerCommand;\n        });\n\n        $this->commands(['command.tinker']);\n    }\n\n    /**\n     * Get the services provided by the provider.\n     *\n     * @return array\n     */\n    public function provides()\n    {\n        return ['command.tinker'];\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/.php_cs.dist",
    "content": "<?php\n\n$finder = PhpCsFixer\\Finder::create()\n    ->in([__DIR__ . '/spec', __DIR__ . '/src', __DIR__ . '/stub', __DIR__ . '/tests'])\n;\n\nreturn PhpCsFixer\\Config::create()\n    ->setRules([\n        '@PSR2' => true,\n        'array_syntax' => ['syntax' => 'short'],\n        'binary_operator_spaces' => true,\n        'blank_line_before_return' => true,\n        'cast_spaces' => true,\n        'concat_space' => ['spacing' => 'one'],\n        'no_singleline_whitespace_before_semicolons' => true,\n        'not_operator_with_space' => true,\n        'ordered_imports' => true,\n        'phpdoc_align' => true,\n        'phpdoc_indent' => true,\n        'phpdoc_no_access' => true,\n        'phpdoc_no_alias_tag' => true,\n        'phpdoc_no_package' => true,\n        'phpdoc_scalar' => true,\n        'phpdoc_separation' => true,\n        'phpdoc_summary' => true,\n        'phpdoc_to_comment' => true,\n        'phpdoc_trim' => true,\n        'single_blank_line_at_eof' => true,\n        'ternary_operator_spaces' => true,\n    ])\n    ->setFinder($finder)\n    ;\n"
  },
  {
    "path": "vendor/league/flysystem/LICENSE",
    "content": "Copyright (c) 2013-2019 Frank de Jonge\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/league/flysystem/composer.json",
    "content": "{\n    \"name\": \"league/flysystem\",\n    \"description\": \"Filesystem abstraction: Many filesystems, one API.\",\n    \"keywords\": [\n        \"filesystem\", \"filesystems\", \"files\", \"storage\", \"dropbox\", \"aws\",\n        \"abstraction\", \"s3\", \"ftp\", \"sftp\", \"remote\", \"webdav\",\n        \"file systems\", \"cloud\", \"cloud files\", \"rackspace\", \"copy.com\"\n    ],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Frank de Jonge\",\n            \"email\": \"info@frenky.net\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.5.9\",\n        \"ext-fileinfo\": \"*\"\n    },\n    \"require-dev\": {\n        \"phpspec/phpspec\": \"^3.4\",\n        \"phpunit/phpunit\": \"^5.7.10\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"League\\\\Flysystem\\\\\": \"src/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"League\\\\Flysystem\\\\Stub\\\\\": \"stub/\"\n        },\n        \"files\": [\n          \"tests/PHPUnitHacks.php\"\n        ]\n    },\n    \"suggest\": {\n        \"ext-fileinfo\": \"Required for MimeType\",\n        \"league/flysystem-eventable-filesystem\": \"Allows you to use EventableFilesystem\",\n        \"league/flysystem-rackspace\": \"Allows you to use Rackspace Cloud Files\",\n        \"league/flysystem-azure\": \"Allows you to use Windows Azure Blob storage\",\n        \"league/flysystem-webdav\": \"Allows you to use WebDAV storage\",\n        \"league/flysystem-aws-s3-v2\": \"Allows you to use S3 storage with AWS SDK v2\",\n        \"league/flysystem-aws-s3-v3\": \"Allows you to use S3 storage with AWS SDK v3\",\n        \"spatie/flysystem-dropbox\": \"Allows you to use Dropbox storage\",\n        \"srmklive/flysystem-dropbox-v2\": \"Allows you to use Dropbox storage for PHP 5 applications\",\n        \"league/flysystem-cached-adapter\": \"Flysystem adapter decorator for metadata caching\",\n        \"ext-ftp\": \"Allows you to use FTP server storage\",\n        \"ext-openssl\": \"Allows you to use FTPS server storage\",\n        \"league/flysystem-sftp\": \"Allows you to use SFTP server storage via phpseclib\",\n        \"league/flysystem-ziparchive\": \"Allows you to use ZipArchive adapter\"\n    },\n    \"conflict\": {\n        \"league/flysystem-sftp\": \"<1.0.6\"\n    },\n    \"config\": {\n        \"bin-dir\": \"bin\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.1-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/deprecations.md",
    "content": "# Deprecations\n\nThis document lists all the planned deprecations.\n\n## Handlers will be removed in 2.0\n\nThe `Handler` type and associated calls will be removed in version 2.0.\n\n### Upgrade path\n\nYou should create your own implementation for handling OOP usage,\nbut it's recommended to move away from using an OOP-style wrapper entirely.\n\nThe reason for this is that it's too easy for implementation details (for\nyour application this is Flysystem) to leak into the application. The most\nimportant part for Flysystem is that it improves portability and creates a\nsolid boundary between your application core and the infrastructure you use.\nThe OOP-style handling breaks this principle, therefore I want to stop\npromoting it. "
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/AbstractAdapter.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nuse League\\Flysystem\\AdapterInterface;\n\nabstract class AbstractAdapter implements AdapterInterface\n{\n    /**\n     * @var string|null path prefix\n     */\n    protected $pathPrefix;\n\n    /**\n     * @var string\n     */\n    protected $pathSeparator = '/';\n\n    /**\n     * Set the path prefix.\n     *\n     * @param string $prefix\n     *\n     * @return void\n     */\n    public function setPathPrefix($prefix)\n    {\n        $prefix = (string) $prefix;\n\n        if ($prefix === '') {\n            $this->pathPrefix = null;\n\n            return;\n        }\n\n        $this->pathPrefix = rtrim($prefix, '\\\\/') . $this->pathSeparator;\n    }\n\n    /**\n     * Get the path prefix.\n     *\n     * @return string|null path prefix or null if pathPrefix is empty\n     */\n    public function getPathPrefix()\n    {\n        return $this->pathPrefix;\n    }\n\n    /**\n     * Prefix a path.\n     *\n     * @param string $path\n     *\n     * @return string prefixed path\n     */\n    public function applyPathPrefix($path)\n    {\n        return $this->getPathPrefix() . ltrim($path, '\\\\/');\n    }\n\n    /**\n     * Remove a path prefix.\n     *\n     * @param string $path\n     *\n     * @return string path without the prefix\n     */\n    public function removePathPrefix($path)\n    {\n        return substr($path, strlen($this->getPathPrefix()));\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/AbstractFtpAdapter.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nuse DateTime;\nuse League\\Flysystem\\AdapterInterface;\nuse League\\Flysystem\\Config;\nuse League\\Flysystem\\NotSupportedException;\nuse League\\Flysystem\\SafeStorage;\nuse RuntimeException;\n\nabstract class AbstractFtpAdapter extends AbstractAdapter\n{\n    /**\n     * @var mixed\n     */\n    protected $connection;\n\n    /**\n     * @var string\n     */\n    protected $host;\n\n    /**\n     * @var int\n     */\n    protected $port = 21;\n\n    /**\n     * @var bool\n     */\n    protected $ssl = false;\n\n    /**\n     * @var int\n     */\n    protected $timeout = 90;\n\n    /**\n     * @var bool\n     */\n    protected $passive = true;\n\n    /**\n     * @var string\n     */\n    protected $separator = '/';\n\n    /**\n     * @var string|null\n     */\n    protected $root;\n\n    /**\n     * @var int\n     */\n    protected $permPublic = 0744;\n\n    /**\n     * @var int\n     */\n    protected $permPrivate = 0700;\n\n    /**\n     * @var array\n     */\n    protected $configurable = [];\n\n    /**\n     * @var string\n     */\n    protected $systemType;\n\n    /**\n     * @var SafeStorage\n     */\n    protected $safeStorage;\n\n    /**\n     * True to enable timestamps for FTP servers that return unix-style listings.\n     *\n     * @var bool\n     */\n    protected $enableTimestampsOnUnixListings = false;\n\n    /**\n     * Constructor.\n     *\n     * @param array $config\n     */\n    public function __construct(array $config)\n    {\n        $this->safeStorage = new SafeStorage();\n        $this->setConfig($config);\n    }\n\n    /**\n     * Set the config.\n     *\n     * @param array $config\n     *\n     * @return $this\n     */\n    public function setConfig(array $config)\n    {\n        foreach ($this->configurable as $setting) {\n            if ( ! isset($config[$setting])) {\n                continue;\n            }\n\n            $method = 'set' . ucfirst($setting);\n\n            if (method_exists($this, $method)) {\n                $this->$method($config[$setting]);\n            }\n        }\n\n        return $this;\n    }\n\n    /**\n     * Returns the host.\n     *\n     * @return string\n     */\n    public function getHost()\n    {\n        return $this->host;\n    }\n\n    /**\n     * Set the host.\n     *\n     * @param string $host\n     *\n     * @return $this\n     */\n    public function setHost($host)\n    {\n        $this->host = $host;\n\n        return $this;\n    }\n\n    /**\n     * Set the public permission value.\n     *\n     * @param int $permPublic\n     *\n     * @return $this\n     */\n    public function setPermPublic($permPublic)\n    {\n        $this->permPublic = $permPublic;\n\n        return $this;\n    }\n\n    /**\n     * Set the private permission value.\n     *\n     * @param int $permPrivate\n     *\n     * @return $this\n     */\n    public function setPermPrivate($permPrivate)\n    {\n        $this->permPrivate = $permPrivate;\n\n        return $this;\n    }\n\n    /**\n     * Returns the ftp port.\n     *\n     * @return int\n     */\n    public function getPort()\n    {\n        return $this->port;\n    }\n\n    /**\n     * Returns the root folder to work from.\n     *\n     * @return string\n     */\n    public function getRoot()\n    {\n        return $this->root;\n    }\n\n    /**\n     * Set the ftp port.\n     *\n     * @param int|string $port\n     *\n     * @return $this\n     */\n    public function setPort($port)\n    {\n        $this->port = (int) $port;\n\n        return $this;\n    }\n\n    /**\n     * Set the root folder to work from.\n     *\n     * @param string $root\n     *\n     * @return $this\n     */\n    public function setRoot($root)\n    {\n        $this->root = rtrim($root, '\\\\/') . $this->separator;\n\n        return $this;\n    }\n\n    /**\n     * Returns the ftp username.\n     *\n     * @return string username\n     */\n    public function getUsername()\n    {\n        $username = $this->safeStorage->retrieveSafely('username');\n\n        return $username !== null ? $username : 'anonymous';\n    }\n\n    /**\n     * Set ftp username.\n     *\n     * @param string $username\n     *\n     * @return $this\n     */\n    public function setUsername($username)\n    {\n        $this->safeStorage->storeSafely('username', $username);\n\n        return $this;\n    }\n\n    /**\n     * Returns the password.\n     *\n     * @return string password\n     */\n    public function getPassword()\n    {\n        return $this->safeStorage->retrieveSafely('password');\n    }\n\n    /**\n     * Set the ftp password.\n     *\n     * @param string $password\n     *\n     * @return $this\n     */\n    public function setPassword($password)\n    {\n        $this->safeStorage->storeSafely('password', $password);\n\n        return $this;\n    }\n\n    /**\n     * Returns the amount of seconds before the connection will timeout.\n     *\n     * @return int\n     */\n    public function getTimeout()\n    {\n        return $this->timeout;\n    }\n\n    /**\n     * Set the amount of seconds before the connection should timeout.\n     *\n     * @param int $timeout\n     *\n     * @return $this\n     */\n    public function setTimeout($timeout)\n    {\n        $this->timeout = (int) $timeout;\n\n        return $this;\n    }\n\n    /**\n     * Return the FTP system type.\n     *\n     * @return string\n     */\n    public function getSystemType()\n    {\n        return $this->systemType;\n    }\n\n    /**\n     * Set the FTP system type (windows or unix).\n     *\n     * @param string $systemType\n     *\n     * @return $this\n     */\n    public function setSystemType($systemType)\n    {\n        $this->systemType = strtolower($systemType);\n\n        return $this;\n    }\n\n    /**\n     * True to enable timestamps for FTP servers that return unix-style listings.\n     *\n     * @param bool $bool\n     *\n     * @return $this\n     */\n    public function setEnableTimestampsOnUnixListings($bool = false)\n    {\n        $this->enableTimestampsOnUnixListings = $bool;\n\n        return $this;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        return $this->listDirectoryContents($directory, $recursive);\n    }\n\n    abstract protected function listDirectoryContents($directory, $recursive = false);\n\n    /**\n     * Normalize a directory listing.\n     *\n     * @param array  $listing\n     * @param string $prefix\n     *\n     * @return array directory listing\n     */\n    protected function normalizeListing(array $listing, $prefix = '')\n    {\n        $base = $prefix;\n        $result = [];\n        $listing = $this->removeDotDirectories($listing);\n\n        while ($item = array_shift($listing)) {\n            if (preg_match('#^.*:$#', $item)) {\n                $base = preg_replace('~^\\./*|:$~', '', $item);\n                continue;\n            }\n\n            $result[] = $this->normalizeObject($item, $base);\n        }\n\n        return $this->sortListing($result);\n    }\n\n    /**\n     * Sort a directory listing.\n     *\n     * @param array $result\n     *\n     * @return array sorted listing\n     */\n    protected function sortListing(array $result)\n    {\n        $compare = function ($one, $two) {\n            return strnatcmp($one['path'], $two['path']);\n        };\n\n        usort($result, $compare);\n\n        return $result;\n    }\n\n    /**\n     * Normalize a file entry.\n     *\n     * @param string $item\n     * @param string $base\n     *\n     * @return array normalized file array\n     *\n     * @throws NotSupportedException\n     */\n    protected function normalizeObject($item, $base)\n    {\n        $systemType = $this->systemType ?: $this->detectSystemType($item);\n\n        if ($systemType === 'unix') {\n            return $this->normalizeUnixObject($item, $base);\n        } elseif ($systemType === 'windows') {\n            return $this->normalizeWindowsObject($item, $base);\n        }\n\n        throw NotSupportedException::forFtpSystemType($systemType);\n    }\n\n    /**\n     * Normalize a Unix file entry.\n     *\n     * Given $item contains:\n     *    '-rw-r--r--   1 ftp      ftp           409 Aug 19 09:01 file1.txt'\n     *\n     * This function will return:\n     * [\n     *   'type' => 'file',\n     *   'path' => 'file1.txt',\n     *   'visibility' => 'public',\n     *   'size' => 409,\n     *   'timestamp' => 1566205260\n     * ]\n     *\n     * @param string $item\n     * @param string $base\n     *\n     * @return array normalized file array\n     */\n    protected function normalizeUnixObject($item, $base)\n    {\n        $item = preg_replace('#\\s+#', ' ', trim($item), 7);\n\n        if (count(explode(' ', $item, 9)) !== 9) {\n            throw new RuntimeException(\"Metadata can't be parsed from item '$item' , not enough parts.\");\n        }\n\n        list($permissions, /* $number */, /* $owner */, /* $group */, $size, $month, $day, $timeOrYear, $name) = explode(' ', $item, 9);\n        $type = $this->detectType($permissions);\n        $path = $base === '' ? $name : $base . $this->separator . $name;\n\n        if ($type === 'dir') {\n            return compact('type', 'path');\n        }\n\n        $permissions = $this->normalizePermissions($permissions);\n        $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE;\n        $size = (int) $size;\n\n        $result = compact('type', 'path', 'visibility', 'size');\n        if ($this->enableTimestampsOnUnixListings) {\n            $timestamp = $this->normalizeUnixTimestamp($month, $day, $timeOrYear);\n            $result += compact('timestamp');\n        }\n\n        return $result;\n    }\n\n    /**\n     * Only accurate to the minute (current year), or to the day.\n     *\n     * Inadequacies in timestamp accuracy are due to limitations of the FTP 'LIST' command\n     *\n     * Note: The 'MLSD' command is a machine-readable replacement for 'LIST'\n     * but many FTP servers do not support it :(\n     *\n     * @param string $month      e.g. 'Aug'\n     * @param string $day        e.g. '19'\n     * @param string $timeOrYear e.g. '09:01' OR '2015'\n     *\n     * @return int\n     */\n    protected function normalizeUnixTimestamp($month, $day, $timeOrYear)\n    {\n        if (is_numeric($timeOrYear)) {\n            $year = $timeOrYear;\n            $hour = '00';\n            $minute = '00';\n            $seconds = '00';\n        } else {\n            $year = date('Y');\n            list($hour, $minute) = explode(':', $timeOrYear);\n            $seconds = '00';\n        }\n        $dateTime = DateTime::createFromFormat('Y-M-j-G:i:s', \"{$year}-{$month}-{$day}-{$hour}:{$minute}:{$seconds}\");\n\n        return $dateTime->getTimestamp();\n    }\n\n    /**\n     * Normalize a Windows/DOS file entry.\n     *\n     * @param string $item\n     * @param string $base\n     *\n     * @return array normalized file array\n     */\n    protected function normalizeWindowsObject($item, $base)\n    {\n        $item = preg_replace('#\\s+#', ' ', trim($item), 3);\n\n        if (count(explode(' ', $item, 4)) !== 4) {\n            throw new RuntimeException(\"Metadata can't be parsed from item '$item' , not enough parts.\");\n        }\n\n        list($date, $time, $size, $name) = explode(' ', $item, 4);\n        $path = $base === '' ? $name : $base . $this->separator . $name;\n\n        // Check for the correct date/time format\n        $format = strlen($date) === 8 ? 'm-d-yH:iA' : 'Y-m-dH:i';\n        $dt = DateTime::createFromFormat($format, $date . $time);\n        $timestamp = $dt ? $dt->getTimestamp() : (int) strtotime(\"$date $time\");\n\n        if ($size === '<DIR>') {\n            $type = 'dir';\n\n            return compact('type', 'path', 'timestamp');\n        }\n\n        $type = 'file';\n        $visibility = AdapterInterface::VISIBILITY_PUBLIC;\n        $size = (int) $size;\n\n        return compact('type', 'path', 'visibility', 'size', 'timestamp');\n    }\n\n    /**\n     * Get the system type from a listing item.\n     *\n     * @param string $item\n     *\n     * @return string the system type\n     */\n    protected function detectSystemType($item)\n    {\n        return preg_match('/^[0-9]{2,4}-[0-9]{2}-[0-9]{2}/', $item) ? 'windows' : 'unix';\n    }\n\n    /**\n     * Get the file type from the permissions.\n     *\n     * @param string $permissions\n     *\n     * @return string file type\n     */\n    protected function detectType($permissions)\n    {\n        return substr($permissions, 0, 1) === 'd' ? 'dir' : 'file';\n    }\n\n    /**\n     * Normalize a permissions string.\n     *\n     * @param string $permissions\n     *\n     * @return int\n     */\n    protected function normalizePermissions($permissions)\n    {\n        // remove the type identifier\n        $permissions = substr($permissions, 1);\n\n        // map the string rights to the numeric counterparts\n        $map = ['-' => '0', 'r' => '4', 'w' => '2', 'x' => '1'];\n        $permissions = strtr($permissions, $map);\n\n        // split up the permission groups\n        $parts = str_split($permissions, 3);\n\n        // convert the groups\n        $mapper = function ($part) {\n            return array_sum(str_split($part));\n        };\n\n        // converts to decimal number\n        return octdec(implode('', array_map($mapper, $parts)));\n    }\n\n    /**\n     * Filter out dot-directories.\n     *\n     * @param array $list\n     *\n     * @return array\n     */\n    public function removeDotDirectories(array $list)\n    {\n        $filter = function ($line) {\n            return $line !== '' && ! preg_match('#.* \\.(\\.)?$|^total#', $line);\n        };\n\n        return array_filter($list, $filter);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function has($path)\n    {\n        return $this->getMetadata($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getSize($path)\n    {\n        return $this->getMetadata($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getVisibility($path)\n    {\n        return $this->getMetadata($path);\n    }\n\n    /**\n     * Ensure a directory exists.\n     *\n     * @param string $dirname\n     */\n    public function ensureDirectory($dirname)\n    {\n        $dirname = (string) $dirname;\n\n        if ($dirname !== '' && ! $this->has($dirname)) {\n            $this->createDir($dirname, new Config());\n        }\n    }\n\n    /**\n     * @return mixed\n     */\n    public function getConnection()\n    {\n        $tries = 0;\n\n        while ( ! $this->isConnected() && $tries < 3) {\n            $tries++;\n            $this->disconnect();\n            $this->connect();\n        }\n\n        return $this->connection;\n    }\n\n    /**\n     * Get the public permission value.\n     *\n     * @return int\n     */\n    public function getPermPublic()\n    {\n        return $this->permPublic;\n    }\n\n    /**\n     * Get the private permission value.\n     *\n     * @return int\n     */\n    public function getPermPrivate()\n    {\n        return $this->permPrivate;\n    }\n\n    /**\n     * Disconnect on destruction.\n     */\n    public function __destruct()\n    {\n        $this->disconnect();\n    }\n\n    /**\n     * Establish a connection.\n     */\n    abstract public function connect();\n\n    /**\n     * Close the connection.\n     */\n    abstract public function disconnect();\n\n    /**\n     * Check if a connection is active.\n     *\n     * @return bool\n     */\n    abstract public function isConnected();\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/CanOverwriteFiles.php",
    "content": "<?php\n\n\nnamespace League\\Flysystem\\Adapter;\n\n/**\n * Adapters that implement this interface let the Filesystem know that files can be overwritten using the write\n * functions and don't need the update function to be called. This can help improve performance when asserts are disabled.\n */\ninterface CanOverwriteFiles\n{\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Ftp.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nuse ErrorException;\nuse League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait;\nuse League\\Flysystem\\AdapterInterface;\nuse League\\Flysystem\\Config;\nuse League\\Flysystem\\Util;\nuse League\\Flysystem\\Util\\MimeType;\nuse RuntimeException;\n\nclass Ftp extends AbstractFtpAdapter\n{\n    use StreamedCopyTrait;\n\n    /**\n     * @var int\n     */\n    protected $transferMode = FTP_BINARY;\n\n    /**\n     * @var null|bool\n     */\n    protected $ignorePassiveAddress = null;\n\n    /**\n     * @var bool\n     */\n    protected $recurseManually = false;\n\n    /**\n     * @var bool\n     */\n    protected $utf8 = false;\n\n    /**\n     * @var array\n     */\n    protected $configurable = [\n        'host',\n        'port',\n        'username',\n        'password',\n        'ssl',\n        'timeout',\n        'root',\n        'permPrivate',\n        'permPublic',\n        'passive',\n        'transferMode',\n        'systemType',\n        'ignorePassiveAddress',\n        'recurseManually',\n        'utf8',\n        'enableTimestampsOnUnixListings',\n    ];\n\n    /**\n     * @var bool\n     */\n    protected $isPureFtpd;\n\n    /**\n     * Set the transfer mode.\n     *\n     * @param int $mode\n     *\n     * @return $this\n     */\n    public function setTransferMode($mode)\n    {\n        $this->transferMode = $mode;\n\n        return $this;\n    }\n\n    /**\n     * Set if Ssl is enabled.\n     *\n     * @param bool $ssl\n     *\n     * @return $this\n     */\n    public function setSsl($ssl)\n    {\n        $this->ssl = (bool) $ssl;\n\n        return $this;\n    }\n\n    /**\n     * Set if passive mode should be used.\n     *\n     * @param bool $passive\n     */\n    public function setPassive($passive = true)\n    {\n        $this->passive = $passive;\n    }\n\n    /**\n     * @param bool $ignorePassiveAddress\n     */\n    public function setIgnorePassiveAddress($ignorePassiveAddress)\n    {\n        $this->ignorePassiveAddress = $ignorePassiveAddress;\n    }\n\n    /**\n     * @param bool $recurseManually\n     */\n    public function setRecurseManually($recurseManually)\n    {\n        $this->recurseManually = $recurseManually;\n    }\n\n    /**\n     * @param bool $utf8\n     */\n    public function setUtf8($utf8)\n    {\n        $this->utf8 = (bool) $utf8;\n    }\n\n    /**\n     * Connect to the FTP server.\n     */\n    public function connect()\n    {\n        if ($this->ssl) {\n            $this->connection = ftp_ssl_connect($this->getHost(), $this->getPort(), $this->getTimeout());\n        } else {\n            $this->connection = ftp_connect($this->getHost(), $this->getPort(), $this->getTimeout());\n        }\n\n        if ( ! $this->connection) {\n            throw new RuntimeException('Could not connect to host: ' . $this->getHost() . ', port:' . $this->getPort());\n        }\n\n        $this->login();\n        $this->setUtf8Mode();\n        $this->setConnectionPassiveMode();\n        $this->setConnectionRoot();\n        $this->isPureFtpd = $this->isPureFtpdServer();\n    }\n\n    /**\n     * Set the connection to UTF-8 mode.\n     */\n    protected function setUtf8Mode()\n    {\n        if ($this->utf8) {\n            $response = ftp_raw($this->connection, \"OPTS UTF8 ON\");\n            if (substr($response[0], 0, 3) !== '200') {\n                throw new RuntimeException(\n                    'Could not set UTF-8 mode for connection: ' . $this->getHost() . '::' . $this->getPort()\n                );\n            }\n        }\n    }\n\n    /**\n     * Set the connections to passive mode.\n     *\n     * @throws RuntimeException\n     */\n    protected function setConnectionPassiveMode()\n    {\n        if (is_bool($this->ignorePassiveAddress) && defined('FTP_USEPASVADDRESS')) {\n            ftp_set_option($this->connection, FTP_USEPASVADDRESS, ! $this->ignorePassiveAddress);\n        }\n\n        if ( ! ftp_pasv($this->connection, $this->passive)) {\n            throw new RuntimeException(\n                'Could not set passive mode for connection: ' . $this->getHost() . '::' . $this->getPort()\n            );\n        }\n    }\n\n    /**\n     * Set the connection root.\n     */\n    protected function setConnectionRoot()\n    {\n        $root = $this->getRoot();\n        $connection = $this->connection;\n\n        if ($root && ! ftp_chdir($connection, $root)) {\n            throw new RuntimeException('Root is invalid or does not exist: ' . $this->getRoot());\n        }\n\n        // Store absolute path for further reference.\n        // This is needed when creating directories and\n        // initial root was a relative path, else the root\n        // would be relative to the chdir'd path.\n        $this->root = ftp_pwd($connection);\n    }\n\n    /**\n     * Login.\n     *\n     * @throws RuntimeException\n     */\n    protected function login()\n    {\n        set_error_handler(function () {\n        });\n        $isLoggedIn = ftp_login(\n            $this->connection,\n            $this->getUsername(),\n            $this->getPassword()\n        );\n        restore_error_handler();\n\n        if ( ! $isLoggedIn) {\n            $this->disconnect();\n            throw new RuntimeException(\n                'Could not login with connection: ' . $this->getHost() . '::' . $this->getPort(\n                ) . ', username: ' . $this->getUsername()\n            );\n        }\n    }\n\n    /**\n     * Disconnect from the FTP server.\n     */\n    public function disconnect()\n    {\n        if (is_resource($this->connection)) {\n            ftp_close($this->connection);\n        }\n\n        $this->connection = null;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function write($path, $contents, Config $config)\n    {\n        $stream = fopen('php://temp', 'w+b');\n        fwrite($stream, $contents);\n        rewind($stream);\n        $result = $this->writeStream($path, $stream, $config);\n        fclose($stream);\n\n        if ($result === false) {\n            return false;\n        }\n\n        $result['contents'] = $contents;\n        $result['mimetype'] = Util::guessMimeType($path, $contents);\n\n        return $result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function writeStream($path, $resource, Config $config)\n    {\n        $this->ensureDirectory(Util::dirname($path));\n\n        if ( ! ftp_fput($this->getConnection(), $path, $resource, $this->transferMode)) {\n            return false;\n        }\n\n        if ($visibility = $config->get('visibility')) {\n            $this->setVisibility($path, $visibility);\n        }\n\n        $type = 'file';\n\n        return compact('type', 'path', 'visibility');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function update($path, $contents, Config $config)\n    {\n        return $this->write($path, $contents, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function updateStream($path, $resource, Config $config)\n    {\n        return $this->writeStream($path, $resource, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function rename($path, $newpath)\n    {\n        return ftp_rename($this->getConnection(), $path, $newpath);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function delete($path)\n    {\n        return ftp_delete($this->getConnection(), $path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function deleteDir($dirname)\n    {\n        $connection = $this->getConnection();\n        $contents = array_reverse($this->listDirectoryContents($dirname, false));\n\n        foreach ($contents as $object) {\n            if ($object['type'] === 'file') {\n                if ( ! ftp_delete($connection, $object['path'])) {\n                    return false;\n                }\n            } elseif ( ! $this->deleteDir($object['path'])) {\n                return false;\n            }\n        }\n\n        return ftp_rmdir($connection, $dirname);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function createDir($dirname, Config $config)\n    {\n        $connection = $this->getConnection();\n        $directories = explode('/', $dirname);\n\n        foreach ($directories as $directory) {\n            if (false === $this->createActualDirectory($directory, $connection)) {\n                $this->setConnectionRoot();\n\n                return false;\n            }\n\n            ftp_chdir($connection, $directory);\n        }\n\n        $this->setConnectionRoot();\n\n        return ['type' => 'dir', 'path' => $dirname];\n    }\n\n    /**\n     * Create a directory.\n     *\n     * @param string   $directory\n     * @param resource $connection\n     *\n     * @return bool\n     */\n    protected function createActualDirectory($directory, $connection)\n    {\n        // List the current directory\n        $listing = ftp_nlist($connection, '.') ?: [];\n\n        foreach ($listing as $key => $item) {\n            if (preg_match('~^\\./.*~', $item)) {\n                $listing[$key] = substr($item, 2);\n            }\n        }\n\n        if (in_array($directory, $listing, true)) {\n            return true;\n        }\n\n        return (boolean) ftp_mkdir($connection, $directory);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMetadata($path)\n    {\n        if ($path === '') {\n            return ['type' => 'dir', 'path' => ''];\n        }\n\n        if (@ftp_chdir($this->getConnection(), $path) === true) {\n            $this->setConnectionRoot();\n\n            return ['type' => 'dir', 'path' => $path];\n        }\n\n        $listing = $this->ftpRawlist('-A', str_replace('*', '\\\\*', $path));\n\n        if (empty($listing) || in_array('total 0', $listing, true)) {\n            return false;\n        }\n\n        if (preg_match('/.* not found/', $listing[0])) {\n            return false;\n        }\n\n        if (preg_match('/^total [0-9]*$/', $listing[0])) {\n            array_shift($listing);\n        }\n\n        return $this->normalizeObject($listing[0], '');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMimetype($path)\n    {\n        if ( ! $metadata = $this->getMetadata($path)) {\n            return false;\n        }\n\n        $metadata['mimetype'] = MimeType::detectByFilename($path);\n\n        return $metadata;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getTimestamp($path)\n    {\n        $timestamp = ftp_mdtm($this->getConnection(), $path);\n\n        return ($timestamp !== -1) ? ['path' => $path, 'timestamp' => $timestamp] : false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function read($path)\n    {\n        if ( ! $object = $this->readStream($path)) {\n            return false;\n        }\n\n        $object['contents'] = stream_get_contents($object['stream']);\n        fclose($object['stream']);\n        unset($object['stream']);\n\n        return $object;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function readStream($path)\n    {\n        $stream = fopen('php://temp', 'w+b');\n        $result = ftp_fget($this->getConnection(), $stream, $path, $this->transferMode);\n        rewind($stream);\n\n        if ( ! $result) {\n            fclose($stream);\n\n            return false;\n        }\n\n        return ['type' => 'file', 'path' => $path, 'stream' => $stream];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function setVisibility($path, $visibility)\n    {\n        $mode = $visibility === AdapterInterface::VISIBILITY_PUBLIC ? $this->getPermPublic() : $this->getPermPrivate();\n\n        if ( ! ftp_chmod($this->getConnection(), $mode, $path)) {\n            return false;\n        }\n\n        return compact('path', 'visibility');\n    }\n\n    /**\n     * @inheritdoc\n     *\n     * @param string $directory\n     */\n    protected function listDirectoryContents($directory, $recursive = true)\n    {\n        $directory = str_replace('*', '\\\\*', $directory);\n\n        if ($recursive && $this->recurseManually) {\n            return $this->listDirectoryContentsRecursive($directory);\n        }\n\n        $options = $recursive ? '-alnR' : '-aln';\n        $listing = $this->ftpRawlist($options, $directory);\n\n        return $listing ? $this->normalizeListing($listing, $directory) : [];\n    }\n\n    /**\n     * @inheritdoc\n     *\n     * @param string $directory\n     */\n    protected function listDirectoryContentsRecursive($directory)\n    {\n        $listing = $this->normalizeListing($this->ftpRawlist('-aln', $directory) ?: [], $directory);\n        $output = [];\n\n        foreach ($listing as $item) {\n            $output[] = $item;\n            if ($item['type'] !== 'dir') {\n                continue;\n            }\n            $output = array_merge($output, $this->listDirectoryContentsRecursive($item['path']));\n        }\n\n        return $output;\n    }\n\n    /**\n     * Check if the connection is open.\n     *\n     * @return bool\n     *\n     * @throws ErrorException\n     */\n    public function isConnected()\n    {\n        try {\n            return is_resource($this->connection) && ftp_rawlist($this->connection, $this->getRoot()) !== false;\n        } catch (ErrorException $e) {\n            if (strpos($e->getMessage(), 'ftp_rawlist') === false) {\n                throw $e;\n            }\n\n            return false;\n        }\n    }\n\n    /**\n     * @return bool\n     */\n    protected function isPureFtpdServer()\n    {\n        $response = ftp_raw($this->connection, 'HELP');\n\n        return stripos(implode(' ', $response), 'Pure-FTPd') !== false;\n    }\n\n    /**\n     * The ftp_rawlist function with optional escaping.\n     *\n     * @param string $options\n     * @param string $path\n     *\n     * @return array\n     */\n    protected function ftpRawlist($options, $path)\n    {\n        $connection = $this->getConnection();\n\n        if ($this->isPureFtpd) {\n            $path = str_replace(' ', '\\ ', $path);\n        }\n\n        return ftp_rawlist($connection, $options . ' ' . $path);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Ftpd.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nclass Ftpd extends Ftp\n{\n    /**\n     * @inheritdoc\n     */\n    public function getMetadata($path)\n    {\n        if ($path === '') {\n            return ['type' => 'dir', 'path' => ''];\n        }\n\n        if ( ! ($object = ftp_raw($this->getConnection(), 'STAT ' . $path)) || count($object) < 3) {\n            return false;\n        }\n\n        if (substr($object[1], 0, 5) === \"ftpd:\") {\n            return false;\n        }\n\n        return $this->normalizeObject($object[1], '');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    protected function listDirectoryContents($directory, $recursive = true)\n    {\n        $listing = ftp_rawlist($this->getConnection(), $directory, $recursive);\n\n        if ($listing === false || ( ! empty($listing) && substr($listing[0], 0, 5) === \"ftpd:\")) {\n            return [];\n        }\n\n        return $this->normalizeListing($listing, $directory);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Local.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nuse DirectoryIterator;\nuse FilesystemIterator;\nuse finfo as Finfo;\nuse League\\Flysystem\\AdapterInterface;\nuse League\\Flysystem\\Config;\nuse League\\Flysystem\\Exception;\nuse League\\Flysystem\\NotSupportedException;\nuse League\\Flysystem\\UnreadableFileException;\nuse League\\Flysystem\\Util;\nuse LogicException;\nuse RecursiveDirectoryIterator;\nuse RecursiveIteratorIterator;\nuse SplFileInfo;\n\nclass Local extends AbstractAdapter\n{\n    /**\n     * @var int\n     */\n    const SKIP_LINKS = 0001;\n\n    /**\n     * @var int\n     */\n    const DISALLOW_LINKS = 0002;\n\n    /**\n     * @var array\n     */\n    protected static $permissions = [\n        'file' => [\n            'public' => 0644,\n            'private' => 0600,\n        ],\n        'dir' => [\n            'public' => 0755,\n            'private' => 0700,\n        ],\n    ];\n\n    /**\n     * @var string\n     */\n    protected $pathSeparator = DIRECTORY_SEPARATOR;\n\n    /**\n     * @var array\n     */\n    protected $permissionMap;\n\n    /**\n     * @var int\n     */\n    protected $writeFlags;\n\n    /**\n     * @var int\n     */\n    private $linkHandling;\n\n    /**\n     * Constructor.\n     *\n     * @param string $root\n     * @param int    $writeFlags\n     * @param int    $linkHandling\n     * @param array  $permissions\n     *\n     * @throws LogicException\n     */\n    public function __construct($root, $writeFlags = LOCK_EX, $linkHandling = self::DISALLOW_LINKS, array $permissions = [])\n    {\n        $root = is_link($root) ? realpath($root) : $root;\n        $this->permissionMap = array_replace_recursive(static::$permissions, $permissions);\n        $this->ensureDirectory($root);\n\n        if ( ! is_dir($root) || ! is_readable($root)) {\n            throw new LogicException('The root path ' . $root . ' is not readable.');\n        }\n\n        $this->setPathPrefix($root);\n        $this->writeFlags = $writeFlags;\n        $this->linkHandling = $linkHandling;\n    }\n\n    /**\n     * Ensure the root directory exists.\n     *\n     * @param string $root root directory path\n     *\n     * @return void\n     *\n     * @throws Exception in case the root directory can not be created\n     */\n    protected function ensureDirectory($root)\n    {\n        if ( ! is_dir($root)) {\n            $umask = umask(0);\n\n            if ( ! @mkdir($root, $this->permissionMap['dir']['public'], true)) {\n                $mkdirError = error_get_last();\n            }\n\n            umask($umask);\n            clearstatcache(false, $root);\n\n            if ( ! is_dir($root)) {\n                $errorMessage = isset($mkdirError['message']) ? $mkdirError['message'] : '';\n                throw new Exception(sprintf('Impossible to create the root directory \"%s\". %s', $root, $errorMessage));\n            }\n        }\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function has($path)\n    {\n        $location = $this->applyPathPrefix($path);\n\n        return file_exists($location);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function write($path, $contents, Config $config)\n    {\n        $location = $this->applyPathPrefix($path);\n        $this->ensureDirectory(dirname($location));\n\n        if (($size = file_put_contents($location, $contents, $this->writeFlags)) === false) {\n            return false;\n        }\n\n        $type = 'file';\n        $result = compact('contents', 'type', 'size', 'path');\n\n        if ($visibility = $config->get('visibility')) {\n            $result['visibility'] = $visibility;\n            $this->setVisibility($path, $visibility);\n        }\n\n        return $result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function writeStream($path, $resource, Config $config)\n    {\n        $location = $this->applyPathPrefix($path);\n        $this->ensureDirectory(dirname($location));\n        $stream = fopen($location, 'w+b');\n\n        if ( ! $stream || stream_copy_to_stream($resource, $stream) === false || ! fclose($stream)) {\n            return false;\n        }\n\n        $type = 'file';\n        $result = compact('type', 'path');\n\n        if ($visibility = $config->get('visibility')) {\n            $this->setVisibility($path, $visibility);\n            $result['visibility'] = $visibility;\n        }\n\n        return $result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function readStream($path)\n    {\n        $location = $this->applyPathPrefix($path);\n        $stream = fopen($location, 'rb');\n\n        return ['type' => 'file', 'path' => $path, 'stream' => $stream];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function updateStream($path, $resource, Config $config)\n    {\n        return $this->writeStream($path, $resource, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function update($path, $contents, Config $config)\n    {\n        $location = $this->applyPathPrefix($path);\n        $size = file_put_contents($location, $contents, $this->writeFlags);\n\n        if ($size === false) {\n            return false;\n        }\n\n        $type = 'file';\n\n        $result = compact('type', 'path', 'size', 'contents');\n\n        if ($mimetype = Util::guessMimeType($path, $contents)) {\n            $result['mimetype'] = $mimetype;\n        }\n\n        return $result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function read($path)\n    {\n        $location = $this->applyPathPrefix($path);\n        $contents = @file_get_contents($location);\n\n        if ($contents === false) {\n            return false;\n        }\n\n        return ['type' => 'file', 'path' => $path, 'contents' => $contents];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function rename($path, $newpath)\n    {\n        $location = $this->applyPathPrefix($path);\n        $destination = $this->applyPathPrefix($newpath);\n        $parentDirectory = $this->applyPathPrefix(Util::dirname($newpath));\n        $this->ensureDirectory($parentDirectory);\n\n        return rename($location, $destination);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function copy($path, $newpath)\n    {\n        $location = $this->applyPathPrefix($path);\n        $destination = $this->applyPathPrefix($newpath);\n        $this->ensureDirectory(dirname($destination));\n\n        return copy($location, $destination);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function delete($path)\n    {\n        $location = $this->applyPathPrefix($path);\n\n        return @unlink($location);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        $result = [];\n        $location = $this->applyPathPrefix($directory);\n\n        if ( ! is_dir($location)) {\n            return [];\n        }\n\n        $iterator = $recursive ? $this->getRecursiveDirectoryIterator($location) : $this->getDirectoryIterator($location);\n\n        foreach ($iterator as $file) {\n            $path = $this->getFilePath($file);\n\n            if (preg_match('#(^|/|\\\\\\\\)\\.{1,2}$#', $path)) {\n                continue;\n            }\n\n            $result[] = $this->normalizeFileInfo($file);\n        }\n\n        return array_filter($result);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMetadata($path)\n    {\n        $location = $this->applyPathPrefix($path);\n        clearstatcache(false, $location);\n        $info = new SplFileInfo($location);\n\n        return $this->normalizeFileInfo($info);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getSize($path)\n    {\n        return $this->getMetadata($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMimetype($path)\n    {\n        $location = $this->applyPathPrefix($path);\n        $finfo = new Finfo(FILEINFO_MIME_TYPE);\n        $mimetype = $finfo->file($location);\n\n        if (in_array($mimetype, ['application/octet-stream', 'inode/x-empty'])) {\n            $mimetype = Util\\MimeType::detectByFilename($location);\n        }\n\n        return ['path' => $path, 'type' => 'file', 'mimetype' => $mimetype];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getTimestamp($path)\n    {\n        return $this->getMetadata($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getVisibility($path)\n    {\n        $location = $this->applyPathPrefix($path);\n        clearstatcache(false, $location);\n        $permissions = octdec(substr(sprintf('%o', fileperms($location)), -4));\n        $visibility = $permissions & 0044 ? AdapterInterface::VISIBILITY_PUBLIC : AdapterInterface::VISIBILITY_PRIVATE;\n\n        return compact('path', 'visibility');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function setVisibility($path, $visibility)\n    {\n        $location = $this->applyPathPrefix($path);\n        $type = is_dir($location) ? 'dir' : 'file';\n        $success = chmod($location, $this->permissionMap[$type][$visibility]);\n\n        if ($success === false) {\n            return false;\n        }\n\n        return compact('path', 'visibility');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function createDir($dirname, Config $config)\n    {\n        $location = $this->applyPathPrefix($dirname);\n        $umask = umask(0);\n        $visibility = $config->get('visibility', 'public');\n\n        if ( ! is_dir($location) && ! mkdir($location, $this->permissionMap['dir'][$visibility], true)) {\n            $return = false;\n        } else {\n            $return = ['path' => $dirname, 'type' => 'dir'];\n        }\n\n        umask($umask);\n\n        return $return;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function deleteDir($dirname)\n    {\n        $location = $this->applyPathPrefix($dirname);\n\n        if ( ! is_dir($location)) {\n            return false;\n        }\n\n        $contents = $this->getRecursiveDirectoryIterator($location, RecursiveIteratorIterator::CHILD_FIRST);\n\n        /** @var SplFileInfo $file */\n        foreach ($contents as $file) {\n            $this->guardAgainstUnreadableFileInfo($file);\n            $this->deleteFileInfoObject($file);\n        }\n\n        return rmdir($location);\n    }\n\n    /**\n     * @param SplFileInfo $file\n     */\n    protected function deleteFileInfoObject(SplFileInfo $file)\n    {\n        switch ($file->getType()) {\n            case 'dir':\n                rmdir($file->getRealPath());\n                break;\n            case 'link':\n                unlink($file->getPathname());\n                break;\n            default:\n                unlink($file->getRealPath());\n        }\n    }\n\n    /**\n     * Normalize the file info.\n     *\n     * @param SplFileInfo $file\n     *\n     * @return array|void\n     *\n     * @throws NotSupportedException\n     */\n    protected function normalizeFileInfo(SplFileInfo $file)\n    {\n        if ( ! $file->isLink()) {\n            return $this->mapFileInfo($file);\n        }\n\n        if ($this->linkHandling & self::DISALLOW_LINKS) {\n            throw NotSupportedException::forLink($file);\n        }\n    }\n\n    /**\n     * Get the normalized path from a SplFileInfo object.\n     *\n     * @param SplFileInfo $file\n     *\n     * @return string\n     */\n    protected function getFilePath(SplFileInfo $file)\n    {\n        $location = $file->getPathname();\n        $path = $this->removePathPrefix($location);\n\n        return trim(str_replace('\\\\', '/', $path), '/');\n    }\n\n    /**\n     * @param string $path\n     * @param int    $mode\n     *\n     * @return RecursiveIteratorIterator\n     */\n    protected function getRecursiveDirectoryIterator($path, $mode = RecursiveIteratorIterator::SELF_FIRST)\n    {\n        return new RecursiveIteratorIterator(\n            new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS),\n            $mode\n        );\n    }\n\n    /**\n     * @param string $path\n     *\n     * @return DirectoryIterator\n     */\n    protected function getDirectoryIterator($path)\n    {\n        $iterator = new DirectoryIterator($path);\n\n        return $iterator;\n    }\n\n    /**\n     * @param SplFileInfo $file\n     *\n     * @return array\n     */\n    protected function mapFileInfo(SplFileInfo $file)\n    {\n        $normalized = [\n            'type' => $file->getType(),\n            'path' => $this->getFilePath($file),\n        ];\n\n        $normalized['timestamp'] = $file->getMTime();\n\n        if ($normalized['type'] === 'file') {\n            $normalized['size'] = $file->getSize();\n        }\n\n        return $normalized;\n    }\n\n    /**\n     * @param SplFileInfo $file\n     *\n     * @throws UnreadableFileException\n     */\n    protected function guardAgainstUnreadableFileInfo(SplFileInfo $file)\n    {\n        if ( ! $file->isReadable()) {\n            throw UnreadableFileException::forFileInfo($file);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/NullAdapter.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nuse League\\Flysystem\\Adapter\\Polyfill\\StreamedCopyTrait;\nuse League\\Flysystem\\Adapter\\Polyfill\\StreamedTrait;\nuse League\\Flysystem\\Config;\n\nclass NullAdapter extends AbstractAdapter\n{\n    use StreamedTrait;\n    use StreamedCopyTrait;\n\n    /**\n     * Check whether a file is present.\n     *\n     * @param string $path\n     *\n     * @return bool\n     */\n    public function has($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function write($path, $contents, Config $config)\n    {\n        $type = 'file';\n        $result = compact('contents', 'type', 'path');\n\n        if ($visibility = $config->get('visibility')) {\n            $result['visibility'] = $visibility;\n        }\n\n        return $result;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function update($path, $contents, Config $config)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function read($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function rename($path, $newpath)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function delete($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        return [];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMetadata($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getSize($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMimetype($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getTimestamp($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getVisibility($path)\n    {\n        return false;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function setVisibility($path, $visibility)\n    {\n        return compact('visibility');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function createDir($dirname, Config $config)\n    {\n        return ['path' => $dirname, 'type' => 'dir'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function deleteDir($dirname)\n    {\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Polyfill/NotSupportingVisibilityTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter\\Polyfill;\n\nuse LogicException;\n\ntrait NotSupportingVisibilityTrait\n{\n    /**\n     * Get the visibility of a file.\n     *\n     * @param string $path\n     *\n     * @throws LogicException\n     */\n    public function getVisibility($path)\n    {\n        throw new LogicException(get_class($this) . ' does not support visibility. Path: ' . $path);\n    }\n\n    /**\n     * Set the visibility for a file.\n     *\n     * @param string $path\n     * @param string $visibility\n     *\n     * @throws LogicException\n     */\n    public function setVisibility($path, $visibility)\n    {\n        throw new LogicException(get_class($this) . ' does not support visibility. Path: ' . $path . ', visibility: ' . $visibility);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Polyfill/StreamedCopyTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter\\Polyfill;\n\nuse League\\Flysystem\\Config;\n\ntrait StreamedCopyTrait\n{\n    /**\n     * Copy a file.\n     *\n     * @param string $path\n     * @param string $newpath\n     *\n     * @return bool\n     */\n    public function copy($path, $newpath)\n    {\n        $response = $this->readStream($path);\n\n        if ($response === false || ! is_resource($response['stream'])) {\n            return false;\n        }\n\n        $result = $this->writeStream($newpath, $response['stream'], new Config());\n\n        if ($result !== false && is_resource($response['stream'])) {\n            fclose($response['stream']);\n        }\n\n        return $result !== false;\n    }\n\n    // Required abstract method\n\n    /**\n     * @param string $path\n     *\n     * @return resource\n     */\n    abstract public function readStream($path);\n\n    /**\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config\n     *\n     * @return resource\n     */\n    abstract public function writeStream($path, $resource, Config $config);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Polyfill/StreamedReadingTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter\\Polyfill;\n\n/**\n * A helper for adapters that only handle strings to provide read streams.\n */\ntrait StreamedReadingTrait\n{\n    /**\n     * Reads a file as a stream.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     *\n     * @see League\\Flysystem\\ReadInterface::readStream()\n     */\n    public function readStream($path)\n    {\n        if ( ! $data = $this->read($path)) {\n            return false;\n        }\n\n        $stream = fopen('php://temp', 'w+b');\n        fwrite($stream, $data['contents']);\n        rewind($stream);\n        $data['stream'] = $stream;\n        unset($data['contents']);\n\n        return $data;\n    }\n\n    /**\n     * Reads a file.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     *\n     * @see League\\Flysystem\\ReadInterface::read()\n     */\n    abstract public function read($path);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Polyfill/StreamedTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter\\Polyfill;\n\ntrait StreamedTrait\n{\n    use StreamedReadingTrait;\n    use StreamedWritingTrait;\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/Polyfill/StreamedWritingTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter\\Polyfill;\n\nuse League\\Flysystem\\Config;\nuse League\\Flysystem\\Util;\n\ntrait StreamedWritingTrait\n{\n    /**\n     * Stream fallback delegator.\n     *\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config\n     * @param string   $fallback\n     *\n     * @return mixed fallback result\n     */\n    protected function stream($path, $resource, Config $config, $fallback)\n    {\n        Util::rewindStream($resource);\n        $contents = stream_get_contents($resource);\n        $fallbackCall = [$this, $fallback];\n\n        return call_user_func($fallbackCall, $path, $contents, $config);\n    }\n\n    /**\n     * Write using a stream.\n     *\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config\n     *\n     * @return mixed false or file metadata\n     */\n    public function writeStream($path, $resource, Config $config)\n    {\n        return $this->stream($path, $resource, $config, 'write');\n    }\n\n    /**\n     * Update a file using a stream.\n     *\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config   Config object or visibility setting\n     *\n     * @return mixed false of file metadata\n     */\n    public function updateStream($path, $resource, Config $config)\n    {\n        return $this->stream($path, $resource, $config, 'update');\n    }\n\n    // Required abstract methods\n    abstract public function write($pash, $contents, Config $config);\n    abstract public function update($pash, $contents, Config $config);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Adapter/SynologyFtp.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Adapter;\n\nclass SynologyFtp extends Ftpd\n{\n    // This class merely exists because of BC.\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/AdapterInterface.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\ninterface AdapterInterface extends ReadInterface\n{\n    /**\n     * @const  VISIBILITY_PUBLIC  public visibility\n     */\n    const VISIBILITY_PUBLIC = 'public';\n\n    /**\n     * @const  VISIBILITY_PRIVATE  private visibility\n     */\n    const VISIBILITY_PRIVATE = 'private';\n\n    /**\n     * Write a new file.\n     *\n     * @param string $path\n     * @param string $contents\n     * @param Config $config   Config object\n     *\n     * @return array|false false on failure file meta data on success\n     */\n    public function write($path, $contents, Config $config);\n\n    /**\n     * Write a new file using a stream.\n     *\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config   Config object\n     *\n     * @return array|false false on failure file meta data on success\n     */\n    public function writeStream($path, $resource, Config $config);\n\n    /**\n     * Update a file.\n     *\n     * @param string $path\n     * @param string $contents\n     * @param Config $config   Config object\n     *\n     * @return array|false false on failure file meta data on success\n     */\n    public function update($path, $contents, Config $config);\n\n    /**\n     * Update a file using a stream.\n     *\n     * @param string   $path\n     * @param resource $resource\n     * @param Config   $config   Config object\n     *\n     * @return array|false false on failure file meta data on success\n     */\n    public function updateStream($path, $resource, Config $config);\n\n    /**\n     * Rename a file.\n     *\n     * @param string $path\n     * @param string $newpath\n     *\n     * @return bool\n     */\n    public function rename($path, $newpath);\n\n    /**\n     * Copy a file.\n     *\n     * @param string $path\n     * @param string $newpath\n     *\n     * @return bool\n     */\n    public function copy($path, $newpath);\n\n    /**\n     * Delete a file.\n     *\n     * @param string $path\n     *\n     * @return bool\n     */\n    public function delete($path);\n\n    /**\n     * Delete a directory.\n     *\n     * @param string $dirname\n     *\n     * @return bool\n     */\n    public function deleteDir($dirname);\n\n    /**\n     * Create a directory.\n     *\n     * @param string $dirname directory name\n     * @param Config $config\n     *\n     * @return array|false\n     */\n    public function createDir($dirname, Config $config);\n\n    /**\n     * Set the visibility for a file.\n     *\n     * @param string $path\n     * @param string $visibility\n     *\n     * @return array|false file meta data\n     */\n    public function setVisibility($path, $visibility);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Config.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nclass Config\n{\n    /**\n     * @var array\n     */\n    protected $settings = [];\n\n    /**\n     * @var Config\n     */\n    protected $fallback;\n\n    /**\n     * Constructor.\n     *\n     * @param array $settings\n     */\n    public function __construct(array $settings = [])\n    {\n        $this->settings = $settings;\n    }\n\n    /**\n     * Get a setting.\n     *\n     * @param string $key\n     * @param mixed  $default\n     *\n     * @return mixed config setting or default when not found\n     */\n    public function get($key, $default = null)\n    {\n        if ( ! array_key_exists($key, $this->settings)) {\n            return $this->getDefault($key, $default);\n        }\n\n        return $this->settings[$key];\n    }\n\n    /**\n     * Check if an item exists by key.\n     *\n     * @param string $key\n     *\n     * @return bool\n     */\n    public function has($key)\n    {\n        if (array_key_exists($key, $this->settings)) {\n            return true;\n        }\n\n        return $this->fallback instanceof Config\n            ? $this->fallback->has($key)\n            : false;\n    }\n\n    /**\n     * Try to retrieve a default setting from a config fallback.\n     *\n     * @param string $key\n     * @param mixed  $default\n     *\n     * @return mixed config setting or default when not found\n     */\n    protected function getDefault($key, $default)\n    {\n        if ( ! $this->fallback) {\n            return $default;\n        }\n\n        return $this->fallback->get($key, $default);\n    }\n\n    /**\n     * Set a setting.\n     *\n     * @param string $key\n     * @param mixed  $value\n     *\n     * @return $this\n     */\n    public function set($key, $value)\n    {\n        $this->settings[$key] = $value;\n\n        return $this;\n    }\n\n    /**\n     * Set the fallback.\n     *\n     * @param Config $fallback\n     *\n     * @return $this\n     */\n    public function setFallback(Config $fallback)\n    {\n        $this->fallback = $fallback;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/ConfigAwareTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\n/**\n * @internal\n */\ntrait ConfigAwareTrait\n{\n    /**\n     * @var Config\n     */\n    protected $config;\n\n    /**\n     * Set the config.\n     *\n     * @param Config|array|null $config\n     */\n    protected function setConfig($config)\n    {\n        $this->config = $config ? Util::ensureConfig($config) : new Config;\n    }\n\n    /**\n     * Get the Config.\n     *\n     * @return Config config object\n     */\n    public function getConfig()\n    {\n        return $this->config;\n    }\n\n    /**\n     * Convert a config array to a Config object with the correct fallback.\n     *\n     * @param array $config\n     *\n     * @return Config\n     */\n    protected function prepareConfig(array $config)\n    {\n        $config = new Config($config);\n        $config->setFallback($this->getConfig());\n\n        return $config;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Directory.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\n/**\n * @deprecated\n */\nclass Directory extends Handler\n{\n    /**\n     * Delete the directory.\n     *\n     * @return bool\n     */\n    public function delete()\n    {\n        return $this->filesystem->deleteDir($this->path);\n    }\n\n    /**\n     * List the directory contents.\n     *\n     * @param bool $recursive\n     *\n     * @return array|bool directory contents or false\n     */\n    public function getContents($recursive = false)\n    {\n        return $this->filesystem->listContents($this->path, $recursive);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Exception.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nclass Exception extends \\Exception\n{\n    //\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/File.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\n/**\n * @deprecated\n */\nclass File extends Handler\n{\n    /**\n     * Check whether the file exists.\n     *\n     * @return bool\n     */\n    public function exists()\n    {\n        return $this->filesystem->has($this->path);\n    }\n\n    /**\n     * Read the file.\n     *\n     * @return string|false file contents\n     */\n    public function read()\n    {\n        return $this->filesystem->read($this->path);\n    }\n\n    /**\n     * Read the file as a stream.\n     *\n     * @return resource|false file stream\n     */\n    public function readStream()\n    {\n        return $this->filesystem->readStream($this->path);\n    }\n\n    /**\n     * Write the new file.\n     *\n     * @param string $content\n     *\n     * @return bool success boolean\n     */\n    public function write($content)\n    {\n        return $this->filesystem->write($this->path, $content);\n    }\n\n    /**\n     * Write the new file using a stream.\n     *\n     * @param resource $resource\n     *\n     * @return bool success boolean\n     */\n    public function writeStream($resource)\n    {\n        return $this->filesystem->writeStream($this->path, $resource);\n    }\n\n    /**\n     * Update the file contents.\n     *\n     * @param string $content\n     *\n     * @return bool success boolean\n     */\n    public function update($content)\n    {\n        return $this->filesystem->update($this->path, $content);\n    }\n\n    /**\n     * Update the file contents with a stream.\n     *\n     * @param resource $resource\n     *\n     * @return bool success boolean\n     */\n    public function updateStream($resource)\n    {\n        return $this->filesystem->updateStream($this->path, $resource);\n    }\n\n    /**\n     * Create the file or update if exists.\n     *\n     * @param string $content\n     *\n     * @return bool success boolean\n     */\n    public function put($content)\n    {\n        return $this->filesystem->put($this->path, $content);\n    }\n\n    /**\n     * Create the file or update if exists using a stream.\n     *\n     * @param resource $resource\n     *\n     * @return bool success boolean\n     */\n    public function putStream($resource)\n    {\n        return $this->filesystem->putStream($this->path, $resource);\n    }\n\n    /**\n     * Rename the file.\n     *\n     * @param string $newpath\n     *\n     * @return bool success boolean\n     */\n    public function rename($newpath)\n    {\n        if ($this->filesystem->rename($this->path, $newpath)) {\n            $this->path = $newpath;\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Copy the file.\n     *\n     * @param string $newpath\n     *\n     * @return File|false new file or false\n     */\n    public function copy($newpath)\n    {\n        if ($this->filesystem->copy($this->path, $newpath)) {\n            return new File($this->filesystem, $newpath);\n        }\n\n        return false;\n    }\n\n    /**\n     * Get the file's timestamp.\n     *\n     * @return string|false The timestamp or false on failure.\n     */\n    public function getTimestamp()\n    {\n        return $this->filesystem->getTimestamp($this->path);\n    }\n\n    /**\n     * Get the file's mimetype.\n     *\n     * @return string|false The file mime-type or false on failure.\n     */\n    public function getMimetype()\n    {\n        return $this->filesystem->getMimetype($this->path);\n    }\n\n    /**\n     * Get the file's visibility.\n     *\n     * @return string|false The visibility (public|private) or false on failure.\n     */\n    public function getVisibility()\n    {\n        return $this->filesystem->getVisibility($this->path);\n    }\n\n    /**\n     * Get the file's metadata.\n     *\n     * @return array|false The file metadata or false on failure.\n     */\n    public function getMetadata()\n    {\n        return $this->filesystem->getMetadata($this->path);\n    }\n\n    /**\n     * Get the file size.\n     *\n     * @return int|false The file size or false on failure.\n     */\n    public function getSize()\n    {\n        return $this->filesystem->getSize($this->path);\n    }\n\n    /**\n     * Delete the file.\n     *\n     * @return bool success boolean\n     */\n    public function delete()\n    {\n        return $this->filesystem->delete($this->path);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/FileExistsException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse Exception as BaseException;\n\nclass FileExistsException extends Exception\n{\n    /**\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * Constructor.\n     *\n     * @param string        $path\n     * @param int           $code\n     * @param BaseException $previous\n     */\n    public function __construct($path, $code = 0, BaseException $previous = null)\n    {\n        $this->path = $path;\n\n        parent::__construct('File already exists at path: ' . $this->getPath(), $code, $previous);\n    }\n\n    /**\n     * Get the path which was found.\n     *\n     * @return string\n     */\n    public function getPath()\n    {\n        return $this->path;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/FileNotFoundException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse Exception as BaseException;\n\nclass FileNotFoundException extends Exception\n{\n    /**\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * Constructor.\n     *\n     * @param string     $path\n     * @param int        $code\n     * @param \\Exception $previous\n     */\n    public function __construct($path, $code = 0, BaseException $previous = null)\n    {\n        $this->path = $path;\n\n        parent::__construct('File not found at path: ' . $this->getPath(), $code, $previous);\n    }\n\n    /**\n     * Get the path which was not found.\n     *\n     * @return string\n     */\n    public function getPath()\n    {\n        return $this->path;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Filesystem.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse InvalidArgumentException;\nuse League\\Flysystem\\Adapter\\CanOverwriteFiles;\nuse League\\Flysystem\\Plugin\\PluggableTrait;\nuse League\\Flysystem\\Util\\ContentListingFormatter;\n\n/**\n * @method array getWithMetadata(string $path, array $metadata)\n * @method bool  forceCopy(string $path, string $newpath)\n * @method bool  forceRename(string $path, string $newpath)\n * @method array listFiles(string $path = '', boolean $recursive = false)\n * @method array listPaths(string $path = '', boolean $recursive = false)\n * @method array listWith(array $keys = [], $directory = '', $recursive = false)\n */\nclass Filesystem implements FilesystemInterface\n{\n    use PluggableTrait;\n    use ConfigAwareTrait;\n\n    /**\n     * @var AdapterInterface\n     */\n    protected $adapter;\n\n    /**\n     * Constructor.\n     *\n     * @param AdapterInterface $adapter\n     * @param Config|array     $config\n     */\n    public function __construct(AdapterInterface $adapter, $config = null)\n    {\n        $this->adapter = $adapter;\n        $this->setConfig($config);\n    }\n\n    /**\n     * Get the Adapter.\n     *\n     * @return AdapterInterface adapter\n     */\n    public function getAdapter()\n    {\n        return $this->adapter;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function has($path)\n    {\n        $path = Util::normalizePath($path);\n\n        return strlen($path) === 0 ? false : (bool) $this->getAdapter()->has($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function write($path, $contents, array $config = [])\n    {\n        $path = Util::normalizePath($path);\n        $this->assertAbsent($path);\n        $config = $this->prepareConfig($config);\n\n        return (bool) $this->getAdapter()->write($path, $contents, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function writeStream($path, $resource, array $config = [])\n    {\n        if ( ! is_resource($resource)) {\n            throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');\n        }\n\n        $path = Util::normalizePath($path);\n        $this->assertAbsent($path);\n        $config = $this->prepareConfig($config);\n\n        Util::rewindStream($resource);\n\n        return (bool) $this->getAdapter()->writeStream($path, $resource, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function put($path, $contents, array $config = [])\n    {\n        $path = Util::normalizePath($path);\n        $config = $this->prepareConfig($config);\n\n        if ( ! $this->getAdapter() instanceof CanOverwriteFiles && $this->has($path)) {\n            return (bool) $this->getAdapter()->update($path, $contents, $config);\n        }\n\n        return (bool) $this->getAdapter()->write($path, $contents, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function putStream($path, $resource, array $config = [])\n    {\n        if ( ! is_resource($resource)) {\n            throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');\n        }\n\n        $path = Util::normalizePath($path);\n        $config = $this->prepareConfig($config);\n        Util::rewindStream($resource);\n\n        if ( ! $this->getAdapter() instanceof CanOverwriteFiles && $this->has($path)) {\n            return (bool) $this->getAdapter()->updateStream($path, $resource, $config);\n        }\n\n        return (bool) $this->getAdapter()->writeStream($path, $resource, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function readAndDelete($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n        $contents = $this->read($path);\n\n        if ($contents === false) {\n            return false;\n        }\n\n        $this->delete($path);\n\n        return $contents;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function update($path, $contents, array $config = [])\n    {\n        $path = Util::normalizePath($path);\n        $config = $this->prepareConfig($config);\n\n        $this->assertPresent($path);\n\n        return (bool) $this->getAdapter()->update($path, $contents, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function updateStream($path, $resource, array $config = [])\n    {\n        if ( ! is_resource($resource)) {\n            throw new InvalidArgumentException(__METHOD__ . ' expects argument #2 to be a valid resource.');\n        }\n\n        $path = Util::normalizePath($path);\n        $config = $this->prepareConfig($config);\n        $this->assertPresent($path);\n        Util::rewindStream($resource);\n\n        return (bool) $this->getAdapter()->updateStream($path, $resource, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function read($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if ( ! ($object = $this->getAdapter()->read($path))) {\n            return false;\n        }\n\n        return $object['contents'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function readStream($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if ( ! $object = $this->getAdapter()->readStream($path)) {\n            return false;\n        }\n\n        return $object['stream'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function rename($path, $newpath)\n    {\n        $path = Util::normalizePath($path);\n        $newpath = Util::normalizePath($newpath);\n        $this->assertPresent($path);\n        $this->assertAbsent($newpath);\n\n        return (bool) $this->getAdapter()->rename($path, $newpath);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function copy($path, $newpath)\n    {\n        $path = Util::normalizePath($path);\n        $newpath = Util::normalizePath($newpath);\n        $this->assertPresent($path);\n        $this->assertAbsent($newpath);\n\n        return $this->getAdapter()->copy($path, $newpath);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function delete($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        return $this->getAdapter()->delete($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function deleteDir($dirname)\n    {\n        $dirname = Util::normalizePath($dirname);\n\n        if ($dirname === '') {\n            throw new RootViolationException('Root directories can not be deleted.');\n        }\n\n        return (bool) $this->getAdapter()->deleteDir($dirname);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function createDir($dirname, array $config = [])\n    {\n        $dirname = Util::normalizePath($dirname);\n        $config = $this->prepareConfig($config);\n\n        return (bool) $this->getAdapter()->createDir($dirname, $config);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        $directory = Util::normalizePath($directory);\n        $contents = $this->getAdapter()->listContents($directory, $recursive);\n\n        return (new ContentListingFormatter($directory, $recursive, $this->config->get('case_sensitive', true)))\n            ->formatListing($contents);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMimetype($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if (( ! $object = $this->getAdapter()->getMimetype($path)) || ! array_key_exists('mimetype', $object)) {\n            return false;\n        }\n\n        return $object['mimetype'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getTimestamp($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if (( ! $object = $this->getAdapter()->getTimestamp($path)) || ! array_key_exists('timestamp', $object)) {\n            return false;\n        }\n\n        return $object['timestamp'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getVisibility($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if (( ! $object = $this->getAdapter()->getVisibility($path)) || ! array_key_exists('visibility', $object)) {\n            return false;\n        }\n\n        return $object['visibility'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getSize($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        if (( ! $object = $this->getAdapter()->getSize($path)) || ! array_key_exists('size', $object)) {\n            return false;\n        }\n\n        return (int) $object['size'];\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function setVisibility($path, $visibility)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        return (bool) $this->getAdapter()->setVisibility($path, $visibility);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getMetadata($path)\n    {\n        $path = Util::normalizePath($path);\n        $this->assertPresent($path);\n\n        return $this->getAdapter()->getMetadata($path);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function get($path, Handler $handler = null)\n    {\n        $path = Util::normalizePath($path);\n\n        if ( ! $handler) {\n            $metadata = $this->getMetadata($path);\n            $handler = $metadata['type'] === 'file' ? new File($this, $path) : new Directory($this, $path);\n        }\n\n        $handler->setPath($path);\n        $handler->setFilesystem($this);\n\n        return $handler;\n    }\n\n    /**\n     * Assert a file is present.\n     *\n     * @param string $path path to file\n     *\n     * @throws FileNotFoundException\n     *\n     * @return void\n     */\n    public function assertPresent($path)\n    {\n        if ($this->config->get('disable_asserts', false) === false && ! $this->has($path)) {\n            throw new FileNotFoundException($path);\n        }\n    }\n\n    /**\n     * Assert a file is absent.\n     *\n     * @param string $path path to file\n     *\n     * @throws FileExistsException\n     *\n     * @return void\n     */\n    public function assertAbsent($path)\n    {\n        if ($this->config->get('disable_asserts', false) === false && $this->has($path)) {\n            throw new FileExistsException($path);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/FilesystemInterface.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse InvalidArgumentException;\n\ninterface FilesystemInterface\n{\n    /**\n     * Check whether a file exists.\n     *\n     * @param string $path\n     *\n     * @return bool\n     */\n    public function has($path);\n\n    /**\n     * Read a file.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file contents or false on failure.\n     */\n    public function read($path);\n\n    /**\n     * Retrieves a read-stream for a path.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return resource|false The path resource or false on failure.\n     */\n    public function readStream($path);\n\n    /**\n     * List contents of a directory.\n     *\n     * @param string $directory The directory to list.\n     * @param bool   $recursive Whether to list recursively.\n     *\n     * @return array A list of file metadata.\n     */\n    public function listContents($directory = '', $recursive = false);\n\n    /**\n     * Get a file's metadata.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return array|false The file metadata or false on failure.\n     */\n    public function getMetadata($path);\n\n    /**\n     * Get a file's size.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return int|false The file size or false on failure.\n     */\n    public function getSize($path);\n\n    /**\n     * Get a file's mime-type.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file mime-type or false on failure.\n     */\n    public function getMimetype($path);\n\n    /**\n     * Get a file's timestamp.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The timestamp or false on failure.\n     */\n    public function getTimestamp($path);\n\n    /**\n     * Get a file's visibility.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The visibility (public|private) or false on failure.\n     */\n    public function getVisibility($path);\n\n    /**\n     * Write a new file.\n     *\n     * @param string $path     The path of the new file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @throws FileExistsException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function write($path, $contents, array $config = []);\n\n    /**\n     * Write a new file using a stream.\n     *\n     * @param string   $path     The path of the new file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException If $resource is not a file handle.\n     * @throws FileExistsException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function writeStream($path, $resource, array $config = []);\n\n    /**\n     * Update an existing file.\n     *\n     * @param string $path     The path of the existing file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function update($path, $contents, array $config = []);\n\n    /**\n     * Update an existing file using a stream.\n     *\n     * @param string   $path     The path of the existing file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException If $resource is not a file handle.\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function updateStream($path, $resource, array $config = []);\n\n    /**\n     * Rename a file.\n     *\n     * @param string $path    Path to the existing file.\n     * @param string $newpath The new path of the file.\n     *\n     * @throws FileExistsException   Thrown if $newpath exists.\n     * @throws FileNotFoundException Thrown if $path does not exist.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function rename($path, $newpath);\n\n    /**\n     * Copy a file.\n     *\n     * @param string $path    Path to the existing file.\n     * @param string $newpath The new path of the file.\n     *\n     * @throws FileExistsException   Thrown if $newpath exists.\n     * @throws FileNotFoundException Thrown if $path does not exist.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function copy($path, $newpath);\n\n    /**\n     * Delete a file.\n     *\n     * @param string $path\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function delete($path);\n\n    /**\n     * Delete a directory.\n     *\n     * @param string $dirname\n     *\n     * @throws RootViolationException Thrown if $dirname is empty.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function deleteDir($dirname);\n\n    /**\n     * Create a directory.\n     *\n     * @param string $dirname The name of the new directory.\n     * @param array  $config  An optional configuration array.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function createDir($dirname, array $config = []);\n\n    /**\n     * Set the visibility for a file.\n     *\n     * @param string $path       The path to the file.\n     * @param string $visibility One of 'public' or 'private'.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function setVisibility($path, $visibility);\n\n    /**\n     * Create a file or update if exists.\n     *\n     * @param string $path     The path to the file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function put($path, $contents, array $config = []);\n\n    /**\n     * Create a file or update if exists.\n     *\n     * @param string   $path     The path to the file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException Thrown if $resource is not a resource.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function putStream($path, $resource, array $config = []);\n\n    /**\n     * Read and delete a file.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file contents, or false on failure.\n     */\n    public function readAndDelete($path);\n\n    /**\n     * Get a file/directory handler.\n     *\n     * @deprecated\n     *\n     * @param string  $path    The path to the file.\n     * @param Handler $handler An optional existing handler to populate.\n     *\n     * @return Handler Either a file or directory handler.\n     */\n    public function get($path, Handler $handler = null);\n\n    /**\n     * Register a plugin.\n     *\n     * @param PluginInterface $plugin The plugin to register.\n     *\n     * @return $this\n     */\n    public function addPlugin(PluginInterface $plugin);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/FilesystemNotFoundException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse LogicException;\n\n/**\n * Thrown when the MountManager cannot find a filesystem.\n */\nclass FilesystemNotFoundException extends LogicException\n{\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Handler.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse BadMethodCallException;\n\n/**\n * @deprecated\n */\nabstract class Handler\n{\n    /**\n     * @var string\n     */\n    protected $path;\n\n    /**\n     * @var FilesystemInterface\n     */\n    protected $filesystem;\n\n    /**\n     * Constructor.\n     *\n     * @param FilesystemInterface $filesystem\n     * @param string              $path\n     */\n    public function __construct(FilesystemInterface $filesystem = null, $path = null)\n    {\n        $this->path = $path;\n        $this->filesystem = $filesystem;\n    }\n\n    /**\n     * Check whether the entree is a directory.\n     *\n     * @return bool\n     */\n    public function isDir()\n    {\n        return $this->getType() === 'dir';\n    }\n\n    /**\n     * Check whether the entree is a file.\n     *\n     * @return bool\n     */\n    public function isFile()\n    {\n        return $this->getType() === 'file';\n    }\n\n    /**\n     * Retrieve the entree type (file|dir).\n     *\n     * @return string file or dir\n     */\n    public function getType()\n    {\n        $metadata = $this->filesystem->getMetadata($this->path);\n\n        return $metadata['type'];\n    }\n\n    /**\n     * Set the Filesystem object.\n     *\n     * @param FilesystemInterface $filesystem\n     *\n     * @return $this\n     */\n    public function setFilesystem(FilesystemInterface $filesystem)\n    {\n        $this->filesystem = $filesystem;\n\n        return $this;\n    }\n    \n    /**\n     * Retrieve the Filesystem object.\n     *\n     * @return FilesystemInterface\n     */\n    public function getFilesystem()\n    {\n        return $this->filesystem;\n    }\n\n    /**\n     * Set the entree path.\n     *\n     * @param string $path\n     *\n     * @return $this\n     */\n    public function setPath($path)\n    {\n        $this->path = $path;\n\n        return $this;\n    }\n\n    /**\n     * Retrieve the entree path.\n     *\n     * @return string path\n     */\n    public function getPath()\n    {\n        return $this->path;\n    }\n\n    /**\n     * Plugins pass-through.\n     *\n     * @param string $method\n     * @param array  $arguments\n     *\n     * @return mixed\n     */\n    public function __call($method, array $arguments)\n    {\n        array_unshift($arguments, $this->path);\n        $callback = [$this->filesystem, $method];\n\n        try {\n            return call_user_func_array($callback, $arguments);\n        } catch (BadMethodCallException $e) {\n            throw new BadMethodCallException(\n                'Call to undefined method '\n                . get_called_class()\n                . '::' . $method\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/MountManager.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse InvalidArgumentException;\nuse League\\Flysystem\\Plugin\\PluggableTrait;\nuse League\\Flysystem\\Plugin\\PluginNotFoundException;\n\n/**\n * Class MountManager.\n *\n * Proxies methods to Filesystem (@see __call):\n *\n * @method AdapterInterface getAdapter($prefix)\n * @method Config getConfig($prefix)\n * @method array listFiles($directory = '', $recursive = false)\n * @method array listPaths($directory = '', $recursive = false)\n * @method array getWithMetadata($path, array $metadata)\n * @method Filesystem flushCache()\n * @method void assertPresent($path)\n * @method void assertAbsent($path)\n * @method Filesystem addPlugin(PluginInterface $plugin)\n */\nclass MountManager implements FilesystemInterface\n{\n    use PluggableTrait;\n\n    /**\n     * @var FilesystemInterface[]\n     */\n    protected $filesystems = [];\n\n    /**\n     * Constructor.\n     *\n     * @param FilesystemInterface[] $filesystems [:prefix => Filesystem,]\n     *\n     * @throws InvalidArgumentException\n     */\n    public function __construct(array $filesystems = [])\n    {\n        $this->mountFilesystems($filesystems);\n    }\n\n    /**\n     * Mount filesystems.\n     *\n     * @param FilesystemInterface[] $filesystems [:prefix => Filesystem,]\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function mountFilesystems(array $filesystems)\n    {\n        foreach ($filesystems as $prefix => $filesystem) {\n            $this->mountFilesystem($prefix, $filesystem);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Mount filesystems.\n     *\n     * @param string              $prefix\n     * @param FilesystemInterface $filesystem\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function mountFilesystem($prefix, FilesystemInterface $filesystem)\n    {\n        if ( ! is_string($prefix)) {\n            throw new InvalidArgumentException(__METHOD__ . ' expects argument #1 to be a string.');\n        }\n\n        $this->filesystems[$prefix] = $filesystem;\n\n        return $this;\n    }\n\n    /**\n     * Get the filesystem with the corresponding prefix.\n     *\n     * @param string $prefix\n     *\n     * @throws FilesystemNotFoundException\n     *\n     * @return FilesystemInterface\n     */\n    public function getFilesystem($prefix)\n    {\n        if ( ! isset($this->filesystems[$prefix])) {\n            throw new FilesystemNotFoundException('No filesystem mounted with prefix ' . $prefix);\n        }\n\n        return $this->filesystems[$prefix];\n    }\n\n    /**\n     * Retrieve the prefix from an arguments array.\n     *\n     * @param array $arguments\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return array [:prefix, :arguments]\n     */\n    public function filterPrefix(array $arguments)\n    {\n        if (empty($arguments)) {\n            throw new InvalidArgumentException('At least one argument needed');\n        }\n\n        $path = array_shift($arguments);\n\n        if ( ! is_string($path)) {\n            throw new InvalidArgumentException('First argument should be a string');\n        }\n\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n        array_unshift($arguments, $path);\n\n        return [$prefix, $arguments];\n    }\n\n    /**\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @throws InvalidArgumentException\n     * @throws FilesystemNotFoundException\n     *\n     * @return array\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        list($prefix, $directory) = $this->getPrefixAndPath($directory);\n        $filesystem = $this->getFilesystem($prefix);\n        $result = $filesystem->listContents($directory, $recursive);\n\n        foreach ($result as &$file) {\n            $file['filesystem'] = $prefix;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Call forwarder.\n     *\n     * @param string $method\n     * @param array  $arguments\n     *\n     * @throws InvalidArgumentException\n     * @throws FilesystemNotFoundException\n     *\n     * @return mixed\n     */\n    public function __call($method, $arguments)\n    {\n        list($prefix, $arguments) = $this->filterPrefix($arguments);\n\n        return $this->invokePluginOnFilesystem($method, $arguments, $prefix);\n    }\n\n    /**\n     * @param string $from\n     * @param string $to\n     * @param array  $config\n     *\n     * @throws InvalidArgumentException\n     * @throws FilesystemNotFoundException\n     * @throws FileExistsException\n     *\n     * @return bool\n     */\n    public function copy($from, $to, array $config = [])\n    {\n        list($prefixFrom, $from) = $this->getPrefixAndPath($from);\n\n        $buffer = $this->getFilesystem($prefixFrom)->readStream($from);\n\n        if ($buffer === false) {\n            return false;\n        }\n\n        list($prefixTo, $to) = $this->getPrefixAndPath($to);\n\n        $result = $this->getFilesystem($prefixTo)->writeStream($to, $buffer, $config);\n\n        if (is_resource($buffer)) {\n            fclose($buffer);\n        }\n\n        return $result;\n    }\n\n    /**\n     * List with plugin adapter.\n     *\n     * @param array  $keys\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @throws InvalidArgumentException\n     * @throws FilesystemNotFoundException\n     *\n     * @return array\n     */\n    public function listWith(array $keys = [], $directory = '', $recursive = false)\n    {\n        list($prefix, $directory) = $this->getPrefixAndPath($directory);\n        $arguments = [$keys, $directory, $recursive];\n\n        return $this->invokePluginOnFilesystem('listWith', $arguments, $prefix);\n    }\n\n    /**\n     * Move a file.\n     *\n     * @param string $from\n     * @param string $to\n     * @param array  $config\n     *\n     * @throws InvalidArgumentException\n     * @throws FilesystemNotFoundException\n     *\n     * @return bool\n     */\n    public function move($from, $to, array $config = [])\n    {\n        list($prefixFrom, $pathFrom) = $this->getPrefixAndPath($from);\n        list($prefixTo, $pathTo) = $this->getPrefixAndPath($to);\n\n        if ($prefixFrom === $prefixTo) {\n            $filesystem = $this->getFilesystem($prefixFrom);\n            $renamed = $filesystem->rename($pathFrom, $pathTo);\n\n            if ($renamed && isset($config['visibility'])) {\n                return $filesystem->setVisibility($pathTo, $config['visibility']);\n            }\n\n            return $renamed;\n        }\n\n        $copied = $this->copy($from, $to, $config);\n\n        if ($copied) {\n            return $this->delete($from);\n        }\n\n        return false;\n    }\n\n    /**\n     * Invoke a plugin on a filesystem mounted on a given prefix.\n     *\n     * @param string $method\n     * @param array  $arguments\n     * @param string $prefix\n     *\n     * @throws FilesystemNotFoundException\n     *\n     * @return mixed\n     */\n    public function invokePluginOnFilesystem($method, $arguments, $prefix)\n    {\n        $filesystem = $this->getFilesystem($prefix);\n\n        try {\n            return $this->invokePlugin($method, $arguments, $filesystem);\n        } catch (PluginNotFoundException $e) {\n            // Let it pass, it's ok, don't panic.\n        }\n\n        $callback = [$filesystem, $method];\n\n        return call_user_func_array($callback, $arguments);\n    }\n\n    /**\n     * @param string $path\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return string[] [:prefix, :path]\n     */\n    protected function getPrefixAndPath($path)\n    {\n        if (strpos($path, '://') < 1) {\n            throw new InvalidArgumentException('No prefix detected in path: ' . $path);\n        }\n\n        return explode('://', $path, 2);\n    }\n\n    /**\n     * Check whether a file exists.\n     *\n     * @param string $path\n     *\n     * @return bool\n     */\n    public function has($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->has($path);\n    }\n\n    /**\n     * Read a file.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file contents or false on failure.\n     */\n    public function read($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->read($path);\n    }\n\n    /**\n     * Retrieves a read-stream for a path.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return resource|false The path resource or false on failure.\n     */\n    public function readStream($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->readStream($path);\n    }\n\n    /**\n     * Get a file's metadata.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return array|false The file metadata or false on failure.\n     */\n    public function getMetadata($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->getMetadata($path);\n    }\n\n    /**\n     * Get a file's size.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return int|false The file size or false on failure.\n     */\n    public function getSize($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->getSize($path);\n    }\n\n    /**\n     * Get a file's mime-type.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file mime-type or false on failure.\n     */\n    public function getMimetype($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->getMimetype($path);\n    }\n\n    /**\n     * Get a file's timestamp.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The timestamp or false on failure.\n     */\n    public function getTimestamp($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->getTimestamp($path);\n    }\n\n    /**\n     * Get a file's visibility.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The visibility (public|private) or false on failure.\n     */\n    public function getVisibility($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->getVisibility($path);\n    }\n\n    /**\n     * Write a new file.\n     *\n     * @param string $path     The path of the new file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @throws FileExistsException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function write($path, $contents, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->write($path, $contents, $config);\n    }\n\n    /**\n     * Write a new file using a stream.\n     *\n     * @param string   $path     The path of the new file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException If $resource is not a file handle.\n     * @throws FileExistsException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function writeStream($path, $resource, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->writeStream($path, $resource, $config);\n    }\n\n    /**\n     * Update an existing file.\n     *\n     * @param string $path     The path of the existing file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function update($path, $contents, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->update($path, $contents, $config);\n    }\n\n    /**\n     * Update an existing file using a stream.\n     *\n     * @param string   $path     The path of the existing file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException If $resource is not a file handle.\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function updateStream($path, $resource, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->updateStream($path, $resource, $config);\n    }\n\n    /**\n     * Rename a file.\n     *\n     * @param string $path    Path to the existing file.\n     * @param string $newpath The new path of the file.\n     *\n     * @throws FileExistsException   Thrown if $newpath exists.\n     * @throws FileNotFoundException Thrown if $path does not exist.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function rename($path, $newpath)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->rename($path, $newpath);\n    }\n\n    /**\n     * Delete a file.\n     *\n     * @param string $path\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function delete($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->delete($path);\n    }\n\n    /**\n     * Delete a directory.\n     *\n     * @param string $dirname\n     *\n     * @throws RootViolationException Thrown if $dirname is empty.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function deleteDir($dirname)\n    {\n        list($prefix, $dirname) = $this->getPrefixAndPath($dirname);\n\n        return $this->getFilesystem($prefix)->deleteDir($dirname);\n    }\n\n    /**\n     * Create a directory.\n     *\n     * @param string $dirname The name of the new directory.\n     * @param array  $config  An optional configuration array.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function createDir($dirname, array $config = [])\n    {\n        list($prefix, $dirname) = $this->getPrefixAndPath($dirname);\n\n        return $this->getFilesystem($prefix)->createDir($dirname);\n    }\n\n    /**\n     * Set the visibility for a file.\n     *\n     * @param string $path       The path to the file.\n     * @param string $visibility One of 'public' or 'private'.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function setVisibility($path, $visibility)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->setVisibility($path, $visibility);\n    }\n\n    /**\n     * Create a file or update if exists.\n     *\n     * @param string $path     The path to the file.\n     * @param string $contents The file contents.\n     * @param array  $config   An optional configuration array.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function put($path, $contents, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->put($path, $contents, $config);\n    }\n\n    /**\n     * Create a file or update if exists.\n     *\n     * @param string   $path     The path to the file.\n     * @param resource $resource The file handle.\n     * @param array    $config   An optional configuration array.\n     *\n     * @throws InvalidArgumentException Thrown if $resource is not a resource.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function putStream($path, $resource, array $config = [])\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->putStream($path, $resource, $config);\n    }\n\n    /**\n     * Read and delete a file.\n     *\n     * @param string $path The path to the file.\n     *\n     * @throws FileNotFoundException\n     *\n     * @return string|false The file contents, or false on failure.\n     */\n    public function readAndDelete($path)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->readAndDelete($path);\n    }\n\n    /**\n     * Get a file/directory handler.\n     *\n     * @deprecated\n     *\n     * @param string  $path    The path to the file.\n     * @param Handler $handler An optional existing handler to populate.\n     *\n     * @return Handler Either a file or directory handler.\n     */\n    public function get($path, Handler $handler = null)\n    {\n        list($prefix, $path) = $this->getPrefixAndPath($path);\n\n        return $this->getFilesystem($prefix)->get($path);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/NotSupportedException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse RuntimeException;\nuse SplFileInfo;\n\nclass NotSupportedException extends RuntimeException\n{\n    /**\n     * Create a new exception for a link.\n     *\n     * @param SplFileInfo $file\n     *\n     * @return static\n     */\n    public static function forLink(SplFileInfo $file)\n    {\n        $message = 'Links are not supported, encountered link at ';\n\n        return new static($message . $file->getPathname());\n    }\n\n    /**\n     * Create a new exception for a link.\n     *\n     * @param string $systemType\n     *\n     * @return static\n     */\n    public static function forFtpSystemType($systemType)\n    {\n        $message = \"The FTP system type '$systemType' is currently not supported.\";\n\n        return new static($message);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/AbstractPlugin.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse League\\Flysystem\\FilesystemInterface;\nuse League\\Flysystem\\PluginInterface;\n\nabstract class AbstractPlugin implements PluginInterface\n{\n    /**\n     * @var FilesystemInterface\n     */\n    protected $filesystem;\n\n    /**\n     * Set the Filesystem object.\n     *\n     * @param FilesystemInterface $filesystem\n     */\n    public function setFilesystem(FilesystemInterface $filesystem)\n    {\n        $this->filesystem = $filesystem;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/EmptyDir.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nclass EmptyDir extends AbstractPlugin\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod()\n    {\n        return 'emptyDir';\n    }\n\n    /**\n     * Empty a directory's contents.\n     *\n     * @param string $dirname\n     */\n    public function handle($dirname)\n    {\n        $listing = $this->filesystem->listContents($dirname, false);\n\n        foreach ($listing as $item) {\n            if ($item['type'] === 'dir') {\n                $this->filesystem->deleteDir($item['path']);\n            } else {\n                $this->filesystem->delete($item['path']);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/ForcedCopy.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse League\\Flysystem\\FileExistsException;\nuse League\\Flysystem\\FileNotFoundException;\n\nclass ForcedCopy extends AbstractPlugin\n{\n    /**\n     * @inheritdoc\n     */\n    public function getMethod()\n    {\n        return 'forceCopy';\n    }\n\n    /**\n     * Copies a file, overwriting any existing files.\n     *\n     * @param string $path    Path to the existing file.\n     * @param string $newpath The new path of the file.\n     *\n     * @throws FileExistsException\n     * @throws FileNotFoundException Thrown if $path does not exist.\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function handle($path, $newpath)\n    {\n        try {\n            $deleted = $this->filesystem->delete($newpath);\n        } catch (FileNotFoundException $e) {\n            // The destination path does not exist. That's ok.\n            $deleted = true;\n        }\n\n        if ($deleted) {\n            return $this->filesystem->copy($path, $newpath);\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/ForcedRename.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse League\\Flysystem\\FileExistsException;\nuse League\\Flysystem\\FileNotFoundException;\n\nclass ForcedRename extends AbstractPlugin\n{\n    /**\n     * @inheritdoc\n     */\n    public function getMethod()\n    {\n        return 'forceRename';\n    }\n\n    /**\n     * Renames a file, overwriting the destination if it exists.\n     *\n     * @param string $path    Path to the existing file.\n     * @param string $newpath The new path of the file.\n     *\n     * @throws FileNotFoundException Thrown if $path does not exist.\n     * @throws FileExistsException\n     *\n     * @return bool True on success, false on failure.\n     */\n    public function handle($path, $newpath)\n    {\n        try {\n            $deleted = $this->filesystem->delete($newpath);\n        } catch (FileNotFoundException $e) {\n            // The destination path does not exist. That's ok.\n            $deleted = true;\n        }\n\n        if ($deleted) {\n            return $this->filesystem->rename($path, $newpath);\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/GetWithMetadata.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse InvalidArgumentException;\nuse League\\Flysystem\\FileNotFoundException;\n\nclass GetWithMetadata extends AbstractPlugin\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod()\n    {\n        return 'getWithMetadata';\n    }\n\n    /**\n     * Get metadata for an object with required metadata.\n     *\n     * @param string $path     path to file\n     * @param array  $metadata metadata keys\n     *\n     * @throws InvalidArgumentException\n     * @throws FileNotFoundException\n     *\n     * @return array|false metadata\n     */\n    public function handle($path, array $metadata)\n    {\n        $object = $this->filesystem->getMetadata($path);\n\n        if ( ! $object) {\n            return false;\n        }\n\n        $keys = array_diff($metadata, array_keys($object));\n\n        foreach ($keys as $key) {\n            if ( ! method_exists($this->filesystem, $method = 'get' . ucfirst($key))) {\n                throw new InvalidArgumentException('Could not fetch metadata: ' . $key);\n            }\n\n            $object[$key] = $this->filesystem->{$method}($path);\n        }\n\n        return $object;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/ListFiles.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nclass ListFiles extends AbstractPlugin\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod()\n    {\n        return 'listFiles';\n    }\n\n    /**\n     * List all files in the directory.\n     *\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @return array\n     */\n    public function handle($directory = '', $recursive = false)\n    {\n        $contents = $this->filesystem->listContents($directory, $recursive);\n\n        $filter = function ($object) {\n            return $object['type'] === 'file';\n        };\n\n        return array_values(array_filter($contents, $filter));\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/ListPaths.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nclass ListPaths extends AbstractPlugin\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod()\n    {\n        return 'listPaths';\n    }\n\n    /**\n     * List all paths.\n     *\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @return array paths\n     */\n    public function handle($directory = '', $recursive = false)\n    {\n        $result = [];\n        $contents = $this->filesystem->listContents($directory, $recursive);\n\n        foreach ($contents as $object) {\n            $result[] = $object['path'];\n        }\n\n        return $result;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/ListWith.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nclass ListWith extends AbstractPlugin\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod()\n    {\n        return 'listWith';\n    }\n\n    /**\n     * List contents with metadata.\n     *\n     * @param array  $keys\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @return array listing with metadata\n     */\n    public function handle(array $keys = [], $directory = '', $recursive = false)\n    {\n        $contents = $this->filesystem->listContents($directory, $recursive);\n\n        foreach ($contents as $index => $object) {\n            if ($object['type'] === 'file') {\n                $missingKeys = array_diff($keys, array_keys($object));\n                $contents[$index] = array_reduce($missingKeys, [$this, 'getMetadataByName'], $object);\n            }\n        }\n\n        return $contents;\n    }\n\n    /**\n     * Get a meta-data value by key name.\n     *\n     * @param array  $object\n     * @param string $key\n     *\n     * @return array\n     */\n    protected function getMetadataByName(array $object, $key)\n    {\n        $method = 'get' . ucfirst($key);\n\n        if ( ! method_exists($this->filesystem, $method)) {\n            throw new \\InvalidArgumentException('Could not get meta-data for key: ' . $key);\n        }\n\n        $object[$key] = $this->filesystem->{$method}($object['path']);\n\n        return $object;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/PluggableTrait.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse BadMethodCallException;\nuse League\\Flysystem\\FilesystemInterface;\nuse League\\Flysystem\\PluginInterface;\nuse LogicException;\n\ntrait PluggableTrait\n{\n    /**\n     * @var array\n     */\n    protected $plugins = [];\n\n    /**\n     * Register a plugin.\n     *\n     * @param PluginInterface $plugin\n     *\n     * @throws LogicException\n     *\n     * @return $this\n     */\n    public function addPlugin(PluginInterface $plugin)\n    {\n        if ( ! method_exists($plugin, 'handle')) {\n            throw new LogicException(get_class($plugin) . ' does not have a handle method.');\n        }\n\n        $this->plugins[$plugin->getMethod()] = $plugin;\n\n        return $this;\n    }\n\n    /**\n     * Find a specific plugin.\n     *\n     * @param string $method\n     *\n     * @throws PluginNotFoundException\n     *\n     * @return PluginInterface\n     */\n    protected function findPlugin($method)\n    {\n        if ( ! isset($this->plugins[$method])) {\n            throw new PluginNotFoundException('Plugin not found for method: ' . $method);\n        }\n\n        return $this->plugins[$method];\n    }\n\n    /**\n     * Invoke a plugin by method name.\n     *\n     * @param string              $method\n     * @param array               $arguments\n     * @param FilesystemInterface $filesystem\n     *\n     * @throws PluginNotFoundException\n     *\n     * @return mixed\n     */\n    protected function invokePlugin($method, array $arguments, FilesystemInterface $filesystem)\n    {\n        $plugin = $this->findPlugin($method);\n        $plugin->setFilesystem($filesystem);\n        $callback = [$plugin, 'handle'];\n\n        return call_user_func_array($callback, $arguments);\n    }\n\n    /**\n     * Plugins pass-through.\n     *\n     * @param string $method\n     * @param array  $arguments\n     *\n     * @throws BadMethodCallException\n     *\n     * @return mixed\n     */\n    public function __call($method, array $arguments)\n    {\n        try {\n            return $this->invokePlugin($method, $arguments, $this);\n        } catch (PluginNotFoundException $e) {\n            throw new BadMethodCallException(\n                'Call to undefined method '\n                . get_class($this)\n                . '::' . $method\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Plugin/PluginNotFoundException.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Plugin;\n\nuse LogicException;\n\nclass PluginNotFoundException extends LogicException\n{\n    // This exception doesn't require additional information.\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/PluginInterface.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\ninterface PluginInterface\n{\n    /**\n     * Get the method name.\n     *\n     * @return string\n     */\n    public function getMethod();\n\n    /**\n     * Set the Filesystem object.\n     *\n     * @param FilesystemInterface $filesystem\n     */\n    public function setFilesystem(FilesystemInterface $filesystem);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/ReadInterface.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\ninterface ReadInterface\n{\n    /**\n     * Check whether a file exists.\n     *\n     * @param string $path\n     *\n     * @return array|bool|null\n     */\n    public function has($path);\n\n    /**\n     * Read a file.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function read($path);\n\n    /**\n     * Read a file as a stream.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function readStream($path);\n\n    /**\n     * List contents of a directory.\n     *\n     * @param string $directory\n     * @param bool   $recursive\n     *\n     * @return array\n     */\n    public function listContents($directory = '', $recursive = false);\n\n    /**\n     * Get all the meta data of a file or directory.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function getMetadata($path);\n\n    /**\n     * Get the size of a file.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function getSize($path);\n\n    /**\n     * Get the mimetype of a file.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function getMimetype($path);\n\n    /**\n     * Get the last modified time of a file as a timestamp.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function getTimestamp($path);\n\n    /**\n     * Get the visibility of a file.\n     *\n     * @param string $path\n     *\n     * @return array|false\n     */\n    public function getVisibility($path);\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/RootViolationException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse LogicException;\n\nclass RootViolationException extends LogicException\n{\n    //\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/SafeStorage.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nfinal class SafeStorage\n{\n    /**\n     * @var string\n     */\n    private $hash;\n\n    /**\n     * @var array\n     */\n    protected static $safeStorage = [];\n\n    public function __construct()\n    {\n        $this->hash = spl_object_hash($this);\n        static::$safeStorage[$this->hash] = [];\n    }\n\n    public function storeSafely($key, $value)\n    {\n        static::$safeStorage[$this->hash][$key] = $value;\n    }\n\n    public function retrieveSafely($key)\n    {\n        if (array_key_exists($key, static::$safeStorage[$this->hash])) {\n            return static::$safeStorage[$this->hash][$key];\n        }\n    }\n\n    public function __destruct()\n    {\n        unset(static::$safeStorage[$this->hash]);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/UnreadableFileException.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse SplFileInfo;\n\nclass UnreadableFileException extends Exception\n{\n    public static function forFileInfo(SplFileInfo $fileInfo)\n    {\n        return new static(\n            sprintf(\n                'Unreadable file encountered: %s',\n                $fileInfo->getRealPath()\n            )\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Util/ContentListingFormatter.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Util;\n\nuse League\\Flysystem\\Util;\n\n/**\n * @internal\n */\nclass ContentListingFormatter\n{\n    /**\n     * @var string\n     */\n    private $directory;\n\n    /**\n     * @var bool\n     */\n    private $recursive;\n\n    /**\n     * @var bool\n     */\n    private $caseSensitive;\n\n    /**\n     * @param string $directory\n     * @param bool   $recursive\n     */\n    public function __construct($directory, $recursive, $caseSensitive = true)\n    {\n        $this->directory = rtrim($directory, '/');\n        $this->recursive = $recursive;\n        $this->caseSensitive = $caseSensitive;\n    }\n\n    /**\n     * Format contents listing.\n     *\n     * @param array $listing\n     *\n     * @return array\n     */\n    public function formatListing(array $listing)\n    {\n        $listing = array_filter(array_map([$this, 'addPathInfo'], $listing), [$this, 'isEntryOutOfScope']);\n\n        return $this->sortListing(array_values($listing));\n    }\n\n    private function addPathInfo(array $entry)\n    {\n        return $entry + Util::pathinfo($entry['path']);\n    }\n\n    /**\n     * Determine if the entry is out of scope.\n     *\n     * @param array $entry\n     *\n     * @return bool\n     */\n    private function isEntryOutOfScope(array $entry)\n    {\n        if (empty($entry['path']) && $entry['path'] !== '0') {\n            return false;\n        }\n\n        if ($this->recursive) {\n            return $this->residesInDirectory($entry);\n        }\n\n        return $this->isDirectChild($entry);\n    }\n\n    /**\n     * Check if the entry resides within the parent directory.\n     *\n     * @param array $entry\n     *\n     * @return bool\n     */\n    private function residesInDirectory(array $entry)\n    {\n        if ($this->directory === '') {\n            return true;\n        }\n\n        return $this->caseSensitive\n            ? strpos($entry['path'], $this->directory . '/') === 0\n            : stripos($entry['path'], $this->directory . '/') === 0;\n    }\n\n    /**\n     * Check if the entry is a direct child of the directory.\n     *\n     * @param array $entry\n     *\n     * @return bool\n     */\n    private function isDirectChild(array $entry)\n    {\n        return $this->caseSensitive\n            ? $entry['dirname'] === $this->directory\n            : strcasecmp($this->directory, $entry['dirname']) === 0;\n    }\n\n    /**\n     * @param array $listing\n     *\n     * @return array\n     */\n    private function sortListing(array $listing)\n    {\n        usort($listing, function ($a, $b) {\n            return strcasecmp($a['path'], $b['path']);\n        });\n\n        return $listing;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Util/MimeType.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Util;\n\nuse ErrorException;\nuse finfo;\n\n/**\n * @internal\n */\nclass MimeType\n{\n    protected static $extensionToMimeTypeMap = [\n        'hqx' => 'application/mac-binhex40',\n        'cpt' => 'application/mac-compactpro',\n        'csv' => 'text/csv',\n        'bin' => 'application/octet-stream',\n        'dms' => 'application/octet-stream',\n        'lha' => 'application/octet-stream',\n        'lzh' => 'application/octet-stream',\n        'exe' => 'application/octet-stream',\n        'class' => 'application/octet-stream',\n        'psd' => 'application/x-photoshop',\n        'so' => 'application/octet-stream',\n        'sea' => 'application/octet-stream',\n        'dll' => 'application/octet-stream',\n        'oda' => 'application/oda',\n        'pdf' => 'application/pdf',\n        'ai' => 'application/pdf',\n        'eps' => 'application/postscript',\n        'epub' => 'application/epub+zip',\n        'ps' => 'application/postscript',\n        'smi' => 'application/smil',\n        'smil' => 'application/smil',\n        'mif' => 'application/vnd.mif',\n        'xls' => 'application/vnd.ms-excel',\n        'ppt' => 'application/powerpoint',\n        'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n        'wbxml' => 'application/wbxml',\n        'wmlc' => 'application/wmlc',\n        'dcr' => 'application/x-director',\n        'dir' => 'application/x-director',\n        'dxr' => 'application/x-director',\n        'dvi' => 'application/x-dvi',\n        'gtar' => 'application/x-gtar',\n        'gz' => 'application/x-gzip',\n        'gzip' => 'application/x-gzip',\n        'php' => 'application/x-httpd-php',\n        'php4' => 'application/x-httpd-php',\n        'php3' => 'application/x-httpd-php',\n        'phtml' => 'application/x-httpd-php',\n        'phps' => 'application/x-httpd-php-source',\n        'js' => 'application/javascript',\n        'swf' => 'application/x-shockwave-flash',\n        'sit' => 'application/x-stuffit',\n        'tar' => 'application/x-tar',\n        'tgz' => 'application/x-tar',\n        'z' => 'application/x-compress',\n        'xhtml' => 'application/xhtml+xml',\n        'xht' => 'application/xhtml+xml',\n        'rdf' => 'application/rdf+xml',\n        'zip' => 'application/x-zip',\n        'rar' => 'application/x-rar',\n        'mid' => 'audio/midi',\n        'midi' => 'audio/midi',\n        'mpga' => 'audio/mpeg',\n        'mp2' => 'audio/mpeg',\n        'mp3' => 'audio/mpeg',\n        'aif' => 'audio/x-aiff',\n        'aiff' => 'audio/x-aiff',\n        'aifc' => 'audio/x-aiff',\n        'ram' => 'audio/x-pn-realaudio',\n        'rm' => 'audio/x-pn-realaudio',\n        'rpm' => 'audio/x-pn-realaudio-plugin',\n        'ra' => 'audio/x-realaudio',\n        'rv' => 'video/vnd.rn-realvideo',\n        'wav' => 'audio/x-wav',\n        'jpg' => 'image/jpeg',\n        'jpeg' => 'image/jpeg',\n        'jpe' => 'image/jpeg',\n        'png' => 'image/png',\n        'gif' => 'image/gif',\n        'bmp' => 'image/bmp',\n        'tiff' => 'image/tiff',\n        'tif' => 'image/tiff',\n        'svg' => 'image/svg+xml',\n        'css' => 'text/css',\n        'html' => 'text/html',\n        'htm' => 'text/html',\n        'shtml' => 'text/html',\n        'txt' => 'text/plain',\n        'text' => 'text/plain',\n        'log' => 'text/plain',\n        'rtx' => 'text/richtext',\n        'rtf' => 'text/rtf',\n        'xml' => 'application/xml',\n        'xsl' => 'application/xml',\n        'dmn' => 'application/octet-stream',\n        'bpmn' => 'application/octet-stream',\n        'mpeg' => 'video/mpeg',\n        'mpg' => 'video/mpeg',\n        'mpe' => 'video/mpeg',\n        'qt' => 'video/quicktime',\n        'mov' => 'video/quicktime',\n        'avi' => 'video/x-msvideo',\n        'movie' => 'video/x-sgi-movie',\n        'doc' => 'application/msword',\n        'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n        'docm' => 'application/vnd.ms-word.template.macroEnabled.12',\n        'dot' => 'application/msword',\n        'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n        'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        'word' => 'application/msword',\n        'xl' => 'application/excel',\n        'eml' => 'message/rfc822',\n        'json' => 'application/json',\n        'pem' => 'application/x-x509-user-cert',\n        'p10' => 'application/x-pkcs10',\n        'p12' => 'application/x-pkcs12',\n        'p7a' => 'application/x-pkcs7-signature',\n        'p7c' => 'application/pkcs7-mime',\n        'p7m' => 'application/pkcs7-mime',\n        'p7r' => 'application/x-pkcs7-certreqresp',\n        'p7s' => 'application/pkcs7-signature',\n        'crt' => 'application/x-x509-ca-cert',\n        'crl' => 'application/pkix-crl',\n        'der' => 'application/x-x509-ca-cert',\n        'kdb' => 'application/octet-stream',\n        'pgp' => 'application/pgp',\n        'gpg' => 'application/gpg-keys',\n        'sst' => 'application/octet-stream',\n        'csr' => 'application/octet-stream',\n        'rsa' => 'application/x-pkcs7',\n        'cer' => 'application/pkix-cert',\n        '3g2' => 'video/3gpp2',\n        '3gp' => 'video/3gp',\n        'mp4' => 'video/mp4',\n        'm4a' => 'audio/x-m4a',\n        'f4v' => 'video/mp4',\n        'webm' => 'video/webm',\n        'aac' => 'audio/x-acc',\n        'm4u' => 'application/vnd.mpegurl',\n        'm3u' => 'text/plain',\n        'xspf' => 'application/xspf+xml',\n        'vlc' => 'application/videolan',\n        'wmv' => 'video/x-ms-wmv',\n        'au' => 'audio/x-au',\n        'ac3' => 'audio/ac3',\n        'flac' => 'audio/x-flac',\n        'ogg' => 'audio/ogg',\n        'kmz' => 'application/vnd.google-earth.kmz',\n        'kml' => 'application/vnd.google-earth.kml+xml',\n        'ics' => 'text/calendar',\n        'zsh' => 'text/x-scriptzsh',\n        '7zip' => 'application/x-7z-compressed',\n        'cdr' => 'application/cdr',\n        'wma' => 'audio/x-ms-wma',\n        'jar' => 'application/java-archive',\n        'tex' => 'application/x-tex',\n        'latex' => 'application/x-latex',\n        'odt' => 'application/vnd.oasis.opendocument.text',\n        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',\n        'odp' => 'application/vnd.oasis.opendocument.presentation',\n        'odg' => 'application/vnd.oasis.opendocument.graphics',\n        'odc' => 'application/vnd.oasis.opendocument.chart',\n        'odf' => 'application/vnd.oasis.opendocument.formula',\n        'odi' => 'application/vnd.oasis.opendocument.image',\n        'odm' => 'application/vnd.oasis.opendocument.text-master',\n        'odb' => 'application/vnd.oasis.opendocument.database',\n        'ott' => 'application/vnd.oasis.opendocument.text-template',\n    ];\n\n    /**\n     * Detects MIME Type based on given content.\n     *\n     * @param mixed $content\n     *\n     * @return string|null MIME Type or NULL if no mime type detected\n     */\n    public static function detectByContent($content)\n    {\n        if ( ! class_exists('finfo') || ! is_string($content)) {\n            return null;\n        }\n        try {\n            $finfo = new finfo(FILEINFO_MIME_TYPE);\n\n            return $finfo->buffer($content) ?: null;\n            // @codeCoverageIgnoreStart\n        } catch (ErrorException $e) {\n            // This is caused by an array to string conversion error.\n        }\n    } // @codeCoverageIgnoreEnd\n\n    /**\n     * Detects MIME Type based on file extension.\n     *\n     * @param string $extension\n     *\n     * @return string|null MIME Type or NULL if no extension detected\n     */\n    public static function detectByFileExtension($extension)\n    {\n        return isset(static::$extensionToMimeTypeMap[$extension])\n            ? static::$extensionToMimeTypeMap[$extension]\n            : 'text/plain';\n    }\n\n    /**\n     * @param string $filename\n     *\n     * @return string|null MIME Type or NULL if no extension detected\n     */\n    public static function detectByFilename($filename)\n    {\n        $extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));\n\n        return empty($extension) ? 'text/plain' : static::detectByFileExtension($extension);\n    }\n\n    /**\n     * @return array Map of file extension to MIME Type\n     */\n    public static function getExtensionToMimeTypeMap()\n    {\n        return static::$extensionToMimeTypeMap;\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Util/StreamHasher.php",
    "content": "<?php\n\nnamespace League\\Flysystem\\Util;\n\nclass StreamHasher\n{\n    /**\n     * @var string\n     */\n    private $algo;\n\n    /**\n     * StreamHasher constructor.\n     *\n     * @param string $algo\n     */\n    public function __construct($algo)\n    {\n        $this->algo = $algo;\n    }\n\n    /**\n     * @param resource $resource\n     *\n     * @return string\n     */\n    public function hash($resource)\n    {\n        rewind($resource);\n        $context = hash_init($this->algo);\n        hash_update_stream($context, $resource);\n        fclose($resource);\n\n        return hash_final($context);\n    }\n}\n"
  },
  {
    "path": "vendor/league/flysystem/src/Util.php",
    "content": "<?php\n\nnamespace League\\Flysystem;\n\nuse League\\Flysystem\\Util\\MimeType;\nuse LogicException;\n\nclass Util\n{\n    /**\n     * Get normalized pathinfo.\n     *\n     * @param string $path\n     *\n     * @return array pathinfo\n     */\n    public static function pathinfo($path)\n    {\n        $pathinfo = compact('path');\n\n        if ('' !== $dirname = dirname($path)) {\n            $pathinfo['dirname'] = static::normalizeDirname($dirname);\n        }\n\n        $pathinfo['basename'] = static::basename($path);\n\n        $pathinfo += pathinfo($pathinfo['basename']);\n\n        return $pathinfo + ['dirname' => ''];\n    }\n\n    /**\n     * Normalize a dirname return value.\n     *\n     * @param string $dirname\n     *\n     * @return string normalized dirname\n     */\n    public static function normalizeDirname($dirname)\n    {\n        return $dirname === '.' ? '' : $dirname;\n    }\n\n    /**\n     * Get a normalized dirname from a path.\n     *\n     * @param string $path\n     *\n     * @return string dirname\n     */\n    public static function dirname($path)\n    {\n        return static::normalizeDirname(dirname($path));\n    }\n\n    /**\n     * Map result arrays.\n     *\n     * @param array $object\n     * @param array $map\n     *\n     * @return array mapped result\n     */\n    public static function map(array $object, array $map)\n    {\n        $result = [];\n\n        foreach ($map as $from => $to) {\n            if ( ! isset($object[$from])) {\n                continue;\n            }\n\n            $result[$to] = $object[$from];\n        }\n\n        return $result;\n    }\n\n    /**\n     * Normalize path.\n     *\n     * @param string $path\n     *\n     * @throws LogicException\n     *\n     * @return string\n     */\n    public static function normalizePath($path)\n    {\n        return static::normalizeRelativePath($path);\n    }\n\n    /**\n     * Normalize relative directories in a path.\n     *\n     * @param string $path\n     *\n     * @throws LogicException\n     *\n     * @return string\n     */\n    public static function normalizeRelativePath($path)\n    {\n        $path = str_replace('\\\\', '/', $path);\n        $path = static::removeFunkyWhiteSpace($path);\n\n        $parts = [];\n\n        foreach (explode('/', $path) as $part) {\n            switch ($part) {\n                case '':\n                case '.':\n                break;\n\n            case '..':\n                if (empty($parts)) {\n                    throw new LogicException(\n                        'Path is outside of the defined root, path: [' . $path . ']'\n                    );\n                }\n                array_pop($parts);\n                break;\n\n            default:\n                $parts[] = $part;\n                break;\n            }\n        }\n\n        return implode('/', $parts);\n    }\n\n    /**\n     * Removes unprintable characters and invalid unicode characters.\n     *\n     * @param string $path\n     *\n     * @return string $path\n     */\n    protected static function removeFunkyWhiteSpace($path)\n    {\n        // We do this check in a loop, since removing invalid unicode characters\n        // can lead to new characters being created.\n        while (preg_match('#\\p{C}+|^\\./#u', $path)) {\n            $path = preg_replace('#\\p{C}+|^\\./#u', '', $path);\n        }\n\n        return $path;\n    }\n\n    /**\n     * Normalize prefix.\n     *\n     * @param string $prefix\n     * @param string $separator\n     *\n     * @return string normalized path\n     */\n    public static function normalizePrefix($prefix, $separator)\n    {\n        return rtrim($prefix, $separator) . $separator;\n    }\n\n    /**\n     * Get content size.\n     *\n     * @param string $contents\n     *\n     * @return int content size\n     */\n    public static function contentSize($contents)\n    {\n        return defined('MB_OVERLOAD_STRING') ? mb_strlen($contents, '8bit') : strlen($contents);\n    }\n\n    /**\n     * Guess MIME Type based on the path of the file and it's content.\n     *\n     * @param string          $path\n     * @param string|resource $content\n     *\n     * @return string|null MIME Type or NULL if no extension detected\n     */\n    public static function guessMimeType($path, $content)\n    {\n        $mimeType = MimeType::detectByContent($content);\n\n        if ( ! (empty($mimeType) || in_array($mimeType, ['application/x-empty', 'text/plain', 'text/x-asm']))) {\n            return $mimeType;\n        }\n\n        return MimeType::detectByFilename($path);\n    }\n\n    /**\n     * Emulate directories.\n     *\n     * @param array $listing\n     *\n     * @return array listing with emulated directories\n     */\n    public static function emulateDirectories(array $listing)\n    {\n        $directories = [];\n        $listedDirectories = [];\n\n        foreach ($listing as $object) {\n            list($directories, $listedDirectories) = static::emulateObjectDirectories($object, $directories, $listedDirectories);\n        }\n\n        $directories = array_diff(array_unique($directories), array_unique($listedDirectories));\n\n        foreach ($directories as $directory) {\n            $listing[] = static::pathinfo($directory) + ['type' => 'dir'];\n        }\n\n        return $listing;\n    }\n\n    /**\n     * Ensure a Config instance.\n     *\n     * @param null|array|Config $config\n     *\n     * @return Config config instance\n     *\n     * @throw  LogicException\n     */\n    public static function ensureConfig($config)\n    {\n        if ($config === null) {\n            return new Config();\n        }\n\n        if ($config instanceof Config) {\n            return $config;\n        }\n\n        if (is_array($config)) {\n            return new Config($config);\n        }\n\n        throw new LogicException('A config should either be an array or a Flysystem\\Config object.');\n    }\n\n    /**\n     * Rewind a stream.\n     *\n     * @param resource $resource\n     */\n    public static function rewindStream($resource)\n    {\n        if (ftell($resource) !== 0 && static::isSeekableStream($resource)) {\n            rewind($resource);\n        }\n    }\n\n    public static function isSeekableStream($resource)\n    {\n        $metadata = stream_get_meta_data($resource);\n\n        return $metadata['seekable'];\n    }\n\n    /**\n     * Get the size of a stream.\n     *\n     * @param resource $resource\n     *\n     * @return int stream size\n     */\n    public static function getStreamSize($resource)\n    {\n        $stat = fstat($resource);\n\n        return $stat['size'];\n    }\n\n    /**\n     * Emulate the directories of a single object.\n     *\n     * @param array $object\n     * @param array $directories\n     * @param array $listedDirectories\n     *\n     * @return array\n     */\n    protected static function emulateObjectDirectories(array $object, array $directories, array $listedDirectories)\n    {\n        if ($object['type'] === 'dir') {\n            $listedDirectories[] = $object['path'];\n        }\n\n        if (empty($object['dirname'])) {\n            return [$directories, $listedDirectories];\n        }\n\n        $parent = $object['dirname'];\n\n        while ( ! empty($parent) && ! in_array($parent, $directories)) {\n            $directories[] = $parent;\n            $parent = static::dirname($parent);\n        }\n\n        if (isset($object['type']) && $object['type'] === 'dir') {\n            $listedDirectories[] = $object['path'];\n\n            return [$directories, $listedDirectories];\n        }\n\n        return [$directories, $listedDirectories];\n    }\n\n    /**\n     * Returns the trailing name component of the path.\n     *\n     * @param string $path\n     *\n     * @return string\n     */\n    private static function basename($path)\n    {\n        $separators = DIRECTORY_SEPARATOR === '/' ? '/' : '\\/';\n\n        $path = rtrim($path, $separators);\n\n        $basename = preg_replace('#.*?([^' . preg_quote($separators, '#') . ']+$)#', '$1', $path);\n\n        if (DIRECTORY_SEPARATOR === '/') {\n            return $basename;\n        }\n        // @codeCoverageIgnoreStart\n        // Extra Windows path munging. This is tested via AppVeyor, but code\n        // coverage is not reported.\n\n        // Handle relative paths with drive letters. c:file.txt.\n        while (preg_match('#^[a-zA-Z]{1}:[^\\\\\\/]#', $basename)) {\n            $basename = substr($basename, 2);\n        }\n\n        // Remove colon for standalone drive letter names.\n        if (preg_match('#^[a-zA-Z]{1}:$#', $basename)) {\n            $basename = rtrim($basename, ':');\n        }\n\n        return $basename;\n        // @codeCoverageIgnoreEnd\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/.php_cs",
    "content": "<?php\n\n$header = <<<EOF\nThis file is part of the Monolog package.\n\n(c) Jordi Boggiano <j.boggiano@seld.be>\n\nFor the full copyright and license information, please view the LICENSE\nfile that was distributed with this source code.\nEOF;\n\n$finder = Symfony\\CS\\Finder::create()\n    ->files()\n    ->name('*.php')\n    ->exclude('Fixtures')\n    ->in(__DIR__.'/src')\n    ->in(__DIR__.'/tests')\n;\n\nreturn Symfony\\CS\\Config::create()\n    ->setUsingCache(true)\n    //->setUsingLinter(false)\n    ->setRiskyAllowed(true)\n    ->setRules(array(\n        '@PSR2' => true,\n        'binary_operator_spaces' => true,\n        'blank_line_before_return' => true,\n        'header_comment' => array('header' => $header),\n        'include' => true,\n        'long_array_syntax' => true,\n        'method_separation' => true,\n        'no_blank_lines_after_class_opening' => true,\n        'no_blank_lines_after_phpdoc' => true,\n        'no_blank_lines_between_uses' => true,\n        'no_duplicate_semicolons' => true,\n        'no_extra_consecutive_blank_lines' => true,\n        'no_leading_import_slash' => true,\n        'no_leading_namespace_whitespace' => true,\n        'no_trailing_comma_in_singleline_array' => true,\n        'no_unused_imports' => true,\n        'object_operator_without_whitespace' => true,\n        'phpdoc_align' => true,\n        'phpdoc_indent' => true,\n        'phpdoc_no_access' => true,\n        'phpdoc_no_package' => true,\n        'phpdoc_order' => true,\n        'phpdoc_scalar' => true,\n        'phpdoc_trim' => true,\n        'phpdoc_type_to_var' => true,\n        'psr0' => true,\n        'single_blank_line_before_namespace' => true,\n        'spaces_cast' => true,\n        'standardize_not_equals' => true,\n        'ternary_operator_spaces' => true,\n        'trailing_comma_in_multiline_array' => true,\n        'whitespacy_lines' => true,\n    ))\n    ->finder($finder)\n;\n"
  },
  {
    "path": "vendor/monolog/monolog/CHANGELOG.md",
    "content": "### 1.24.0 (2018-11-05)\n\n  * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors\n  * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)\n  * Added a way to log signals being received using Monolog\\SignalHandler\n  * Added ability to customize error handling at the Logger level using Logger::setExceptionHandler\n  * Added InsightOpsHandler to migrate users of the LogEntriesHandler\n  * Added protection to NormalizerHandler against circular and very deep structures, it now stops normalizing at a depth of 9\n  * Added capture of stack traces to ErrorHandler when logging PHP errors\n  * Added RavenHandler support for a `contexts` context or extra key to forward that to Sentry's contexts\n  * Added forwarding of context info to FluentdFormatter\n  * Added SocketHandler::setChunkSize to override the default chunk size in case you must send large log lines to rsyslog for example\n  * Added ability to extend/override BrowserConsoleHandler\n  * Added SlackWebhookHandler::getWebhookUrl and SlackHandler::getToken to enable class extensibility\n  * Added SwiftMailerHandler::getSubjectFormatter to enable class extensibility\n  * Dropped official support for HHVM in test builds\n  * Fixed normalization of exception traces when call_user_func is used to avoid serializing objects and the data they contain\n  * Fixed naming of fields in Slack handler, all field names are now capitalized in all cases\n  * Fixed HipChatHandler bug where slack dropped messages randomly\n  * Fixed normalization of objects in Slack handlers\n  * Fixed support for PHP7's Throwable in NewRelicHandler\n  * Fixed race bug when StreamHandler sometimes incorrectly reported it failed to create a directory\n  * Fixed table row styling issues in HtmlFormatter\n  * Fixed RavenHandler dropping the message when logging exception\n  * Fixed WhatFailureGroupHandler skipping processors when using handleBatch\n    and implement it where possible\n  * Fixed display of anonymous class names\n\n### 1.23.0 (2017-06-19)\n\n  * Improved SyslogUdpHandler's support for RFC5424 and added optional `$ident` argument\n  * Fixed GelfHandler truncation to be per field and not per message\n  * Fixed compatibility issue with PHP <5.3.6\n  * Fixed support for headless Chrome in ChromePHPHandler\n  * Fixed support for latest Aws SDK in DynamoDbHandler\n  * Fixed support for SwiftMailer 6.0+ in SwiftMailerHandler\n\n### 1.22.1 (2017-03-13)\n\n  * Fixed lots of minor issues in the new Slack integrations\n  * Fixed support for allowInlineLineBreaks in LineFormatter when formatting exception backtraces\n\n### 1.22.0 (2016-11-26)\n\n  * Added SlackbotHandler and SlackWebhookHandler to set up Slack integration more easily\n  * Added MercurialProcessor to add mercurial revision and branch names to log records\n  * Added support for AWS SDK v3 in DynamoDbHandler\n  * Fixed fatal errors occuring when normalizing generators that have been fully consumed\n  * Fixed RollbarHandler to include a level (rollbar level), monolog_level (original name), channel and datetime (unix)\n  * Fixed RollbarHandler not flushing records automatically, calling close() explicitly is not necessary anymore\n  * Fixed SyslogUdpHandler to avoid sending empty frames\n  * Fixed a few PHP 7.0 and 7.1 compatibility issues\n\n### 1.21.0 (2016-07-29)\n\n  * Break: Reverted the addition of $context when the ErrorHandler handles regular php errors from 1.20.0 as it was causing issues\n  * Added support for more formats in RotatingFileHandler::setFilenameFormat as long as they have Y, m and d in order\n  * Added ability to format the main line of text the SlackHandler sends by explictly setting a formatter on the handler\n  * Added information about SoapFault instances in NormalizerFormatter\n  * Added $handleOnlyReportedErrors option on ErrorHandler::registerErrorHandler (default true) to allow logging of all errors no matter the error_reporting level\n\n### 1.20.0 (2016-07-02)\n\n  * Added FingersCrossedHandler::activate() to manually trigger the handler regardless of the activation policy\n  * Added StreamHandler::getUrl to retrieve the stream's URL\n  * Added ability to override addRow/addTitle in HtmlFormatter\n  * Added the $context to context information when the ErrorHandler handles a regular php error\n  * Deprecated RotatingFileHandler::setFilenameFormat to only support 3 formats: Y, Y-m and Y-m-d\n  * Fixed WhatFailureGroupHandler to work with PHP7 throwables\n  * Fixed a few minor bugs\n\n### 1.19.0 (2016-04-12)\n\n  * Break: StreamHandler will not close streams automatically that it does not own. If you pass in a stream (not a path/url), then it will not close it for you. You can retrieve those using getStream() if needed\n  * Added DeduplicationHandler to remove duplicate records from notifications across multiple requests, useful for email or other notifications on errors\n  * Added ability to use `%message%` and other LineFormatter replacements in the subject line of emails sent with NativeMailHandler and SwiftMailerHandler\n  * Fixed HipChatHandler handling of long messages\n\n### 1.18.2 (2016-04-02)\n\n  * Fixed ElasticaFormatter to use more precise dates\n  * Fixed GelfMessageFormatter sending too long messages\n\n### 1.18.1 (2016-03-13)\n\n  * Fixed SlackHandler bug where slack dropped messages randomly\n  * Fixed RedisHandler issue when using with the PHPRedis extension\n  * Fixed AmqpHandler content-type being incorrectly set when using with the AMQP extension\n  * Fixed BrowserConsoleHandler regression\n\n### 1.18.0 (2016-03-01)\n\n  * Added optional reduction of timestamp precision via `Logger->useMicrosecondTimestamps(false)`, disabling it gets you a bit of performance boost but reduces the precision to the second instead of microsecond\n  * Added possibility to skip some extra stack frames in IntrospectionProcessor if you have some library wrapping Monolog that is always adding frames\n  * Added `Logger->withName` to clone a logger (keeping all handlers) with a new name\n  * Added FluentdFormatter for the Fluentd unix socket protocol\n  * Added HandlerWrapper base class to ease the creation of handler wrappers, just extend it and override as needed\n  * Added support for replacing context sub-keys using `%context.*%` in LineFormatter\n  * Added support for `payload` context value in RollbarHandler\n  * Added setRelease to RavenHandler to describe the application version, sent with every log\n  * Added support for `fingerprint` context value in RavenHandler\n  * Fixed JSON encoding errors that would gobble up the whole log record, we now handle those more gracefully by dropping chars as needed\n  * Fixed write timeouts in SocketHandler and derivatives, set to 10sec by default, lower it with `setWritingTimeout()`\n  * Fixed PHP7 compatibility with regard to Exception/Throwable handling in a few places\n\n### 1.17.2 (2015-10-14)\n\n  * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers\n  * Fixed SlackHandler handling to use slack functionalities better\n  * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id\n  * Fixed 5.3 compatibility regression\n\n### 1.17.1 (2015-08-31)\n\n  * Fixed RollbarHandler triggering PHP notices\n\n### 1.17.0 (2015-08-30)\n\n  * Added support for `checksum` and `release` context/extra values in RavenHandler\n  * Added better support for exceptions in RollbarHandler\n  * Added UidProcessor::getUid\n  * Added support for showing the resource type in NormalizedFormatter\n  * Fixed IntrospectionProcessor triggering PHP notices\n\n### 1.16.0 (2015-08-09)\n\n  * Added IFTTTHandler to notify ifttt.com triggers\n  * Added Logger::setHandlers() to allow setting/replacing all handlers\n  * Added $capSize in RedisHandler to cap the log size\n  * Fixed StreamHandler creation of directory to only trigger when the first log write happens\n  * Fixed bug in the handling of curl failures\n  * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler\n  * Fixed missing fatal errors records with handlers that need to be closed to flush log records\n  * Fixed TagProcessor::addTags support for associative arrays\n\n### 1.15.0 (2015-07-12)\n\n  * Added addTags and setTags methods to change a TagProcessor\n  * Added automatic creation of directories if they are missing for a StreamHandler to open a log file\n  * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure\n  * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used\n  * Fixed HTML/JS escaping in BrowserConsoleHandler\n  * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only)\n\n### 1.14.0 (2015-06-19)\n\n  * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library\n  * Added support for objects implementing __toString in the NormalizerFormatter\n  * Added support for HipChat's v2 API in HipChatHandler\n  * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app\n  * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true)\n  * Fixed curl errors being silently suppressed\n\n### 1.13.1 (2015-03-09)\n\n  * Fixed regression in HipChat requiring a new token to be created\n\n### 1.13.0 (2015-03-05)\n\n  * Added Registry::hasLogger to check for the presence of a logger instance\n  * Added context.user support to RavenHandler\n  * Added HipChat API v2 support in the HipChatHandler\n  * Added NativeMailerHandler::addParameter to pass params to the mail() process\n  * Added context data to SlackHandler when $includeContextAndExtra is true\n  * Added ability to customize the Swift_Message per-email in SwiftMailerHandler\n  * Fixed SwiftMailerHandler to lazily create message instances if a callback is provided\n  * Fixed serialization of INF and NaN values in Normalizer and LineFormatter\n\n### 1.12.0 (2014-12-29)\n\n  * Break: HandlerInterface::isHandling now receives a partial record containing only a level key. This was always the intent and does not break any Monolog handler but is strictly speaking a BC break and you should check if you relied on any other field in your own handlers.\n  * Added PsrHandler to forward records to another PSR-3 logger\n  * Added SamplingHandler to wrap around a handler and include only every Nth record\n  * Added MongoDBFormatter to support better storage with MongoDBHandler (it must be enabled manually for now)\n  * Added exception codes in the output of most formatters\n  * Added LineFormatter::includeStacktraces to enable exception stack traces in logs (uses more than one line)\n  * Added $useShortAttachment to SlackHandler to minify attachment size and $includeExtra to append extra data\n  * Added $host to HipChatHandler for users of private instances\n  * Added $transactionName to NewRelicHandler and support for a transaction_name context value\n  * Fixed MandrillHandler to avoid outputing API call responses\n  * Fixed some non-standard behaviors in SyslogUdpHandler\n\n### 1.11.0 (2014-09-30)\n\n  * Break: The NewRelicHandler extra and context data are now prefixed with extra_ and context_ to avoid clashes. Watch out if you have scripts reading those from the API and rely on names\n  * Added WhatFailureGroupHandler to suppress any exception coming from the wrapped handlers and avoid chain failures if a logging service fails\n  * Added MandrillHandler to send emails via the Mandrillapp.com API\n  * Added SlackHandler to log records to a Slack.com account\n  * Added FleepHookHandler to log records to a Fleep.io account\n  * Added LogglyHandler::addTag to allow adding tags to an existing handler\n  * Added $ignoreEmptyContextAndExtra to LineFormatter to avoid empty [] at the end\n  * Added $useLocking to StreamHandler and RotatingFileHandler to enable flock() while writing\n  * Added support for PhpAmqpLib in the AmqpHandler\n  * Added FingersCrossedHandler::clear and BufferHandler::clear to reset them between batches in long running jobs\n  * Added support for adding extra fields from $_SERVER in the WebProcessor\n  * Fixed support for non-string values in PrsLogMessageProcessor\n  * Fixed SwiftMailer messages being sent with the wrong date in long running scripts\n  * Fixed minor PHP 5.6 compatibility issues\n  * Fixed BufferHandler::close being called twice\n\n### 1.10.0 (2014-06-04)\n\n  * Added Logger::getHandlers() and Logger::getProcessors() methods\n  * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached\n  * Added support for extra data in NewRelicHandler\n  * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines\n\n### 1.9.1 (2014-04-24)\n\n  * Fixed regression in RotatingFileHandler file permissions\n  * Fixed initialization of the BufferHandler to make sure it gets flushed after receiving records\n  * Fixed ChromePHPHandler and FirePHPHandler's activation strategies to be more conservative\n\n### 1.9.0 (2014-04-20)\n\n  * Added LogEntriesHandler to send logs to a LogEntries account\n  * Added $filePermissions to tweak file mode on StreamHandler and RotatingFileHandler\n  * Added $useFormatting flag to MemoryProcessor to make it send raw data in bytes\n  * Added support for table formatting in FirePHPHandler via the table context key\n  * Added a TagProcessor to add tags to records, and support for tags in RavenHandler\n  * Added $appendNewline flag to the JsonFormatter to enable using it when logging to files\n  * Added sound support to the PushoverHandler\n  * Fixed multi-threading support in StreamHandler\n  * Fixed empty headers issue when ChromePHPHandler received no records\n  * Fixed default format of the ErrorLogHandler\n\n### 1.8.0 (2014-03-23)\n\n  * Break: the LineFormatter now strips newlines by default because this was a bug, set $allowInlineLineBreaks to true if you need them\n  * Added BrowserConsoleHandler to send logs to any browser's console via console.log() injection in the output\n  * Added FilterHandler to filter records and only allow those of a given list of levels through to the wrapped handler\n  * Added FlowdockHandler to send logs to a Flowdock account\n  * Added RollbarHandler to send logs to a Rollbar account\n  * Added HtmlFormatter to send prettier log emails with colors for each log level\n  * Added GitProcessor to add the current branch/commit to extra record data\n  * Added a Monolog\\Registry class to allow easier global access to pre-configured loggers\n  * Added support for the new official graylog2/gelf-php lib for GelfHandler, upgrade if you can by replacing the mlehner/gelf-php requirement\n  * Added support for HHVM\n  * Added support for Loggly batch uploads\n  * Added support for tweaking the content type and encoding in NativeMailerHandler\n  * Added $skipClassesPartials to tweak the ignored classes in the IntrospectionProcessor\n  * Fixed batch request support in GelfHandler\n\n### 1.7.0 (2013-11-14)\n\n  * Added ElasticSearchHandler to send logs to an Elastic Search server\n  * Added DynamoDbHandler and ScalarFormatter to send logs to Amazon's Dynamo DB\n  * Added SyslogUdpHandler to send logs to a remote syslogd server\n  * Added LogglyHandler to send logs to a Loggly account\n  * Added $level to IntrospectionProcessor so it only adds backtraces when needed\n  * Added $version to LogstashFormatter to allow using the new v1 Logstash format\n  * Added $appName to NewRelicHandler\n  * Added configuration of Pushover notification retries/expiry\n  * Added $maxColumnWidth to NativeMailerHandler to change the 70 chars default\n  * Added chainability to most setters for all handlers\n  * Fixed RavenHandler batch processing so it takes the message from the record with highest priority\n  * Fixed HipChatHandler batch processing so it sends all messages at once\n  * Fixed issues with eAccelerator\n  * Fixed and improved many small things\n\n### 1.6.0 (2013-07-29)\n\n  * Added HipChatHandler to send logs to a HipChat chat room\n  * Added ErrorLogHandler to send logs to PHP's error_log function\n  * Added NewRelicHandler to send logs to NewRelic's service\n  * Added Monolog\\ErrorHandler helper class to register a Logger as exception/error/fatal handler\n  * Added ChannelLevelActivationStrategy for the FingersCrossedHandler to customize levels by channel\n  * Added stack traces output when normalizing exceptions (json output & co)\n  * Added Monolog\\Logger::API constant (currently 1)\n  * Added support for ChromePHP's v4.0 extension\n  * Added support for message priorities in PushoverHandler, see $highPriorityLevel and $emergencyLevel\n  * Added support for sending messages to multiple users at once with the PushoverHandler\n  * Fixed RavenHandler's support for batch sending of messages (when behind a Buffer or FingersCrossedHandler)\n  * Fixed normalization of Traversables with very large data sets, only the first 1000 items are shown now\n  * Fixed issue in RotatingFileHandler when an open_basedir restriction is active\n  * Fixed minor issues in RavenHandler and bumped the API to Raven 0.5.0\n  * Fixed SyslogHandler issue when many were used concurrently with different facilities\n\n### 1.5.0 (2013-04-23)\n\n  * Added ProcessIdProcessor to inject the PID in log records\n  * Added UidProcessor to inject a unique identifier to all log records of one request/run\n  * Added support for previous exceptions in the LineFormatter exception serialization\n  * Added Monolog\\Logger::getLevels() to get all available levels\n  * Fixed ChromePHPHandler so it avoids sending headers larger than Chrome can handle\n\n### 1.4.1 (2013-04-01)\n\n  * Fixed exception formatting in the LineFormatter to be more minimalistic\n  * Fixed RavenHandler's handling of context/extra data, requires Raven client >0.1.0\n  * Fixed log rotation in RotatingFileHandler to work with long running scripts spanning multiple days\n  * Fixed WebProcessor array access so it checks for data presence\n  * Fixed Buffer, Group and FingersCrossed handlers to make use of their processors\n\n### 1.4.0 (2013-02-13)\n\n  * Added RedisHandler to log to Redis via the Predis library or the phpredis extension\n  * Added ZendMonitorHandler to log to the Zend Server monitor\n  * Added the possibility to pass arrays of handlers and processors directly in the Logger constructor\n  * Added `$useSSL` option to the PushoverHandler which is enabled by default\n  * Fixed ChromePHPHandler and FirePHPHandler issue when multiple instances are used simultaneously\n  * Fixed header injection capability in the NativeMailHandler\n\n### 1.3.1 (2013-01-11)\n\n  * Fixed LogstashFormatter to be usable with stream handlers\n  * Fixed GelfMessageFormatter levels on Windows\n\n### 1.3.0 (2013-01-08)\n\n  * Added PSR-3 compliance, the `Monolog\\Logger` class is now an instance of `Psr\\Log\\LoggerInterface`\n  * Added PsrLogMessageProcessor that you can selectively enable for full PSR-3 compliance\n  * Added LogstashFormatter (combine with SocketHandler or StreamHandler to send logs to Logstash)\n  * Added PushoverHandler to send mobile notifications\n  * Added CouchDBHandler and DoctrineCouchDBHandler\n  * Added RavenHandler to send data to Sentry servers\n  * Added support for the new MongoClient class in MongoDBHandler\n  * Added microsecond precision to log records' timestamps\n  * Added `$flushOnOverflow` param to BufferHandler to flush by batches instead of losing\n    the oldest entries\n  * Fixed normalization of objects with cyclic references\n\n### 1.2.1 (2012-08-29)\n\n  * Added new $logopts arg to SyslogHandler to provide custom openlog options\n  * Fixed fatal error in SyslogHandler\n\n### 1.2.0 (2012-08-18)\n\n  * Added AmqpHandler (for use with AMQP servers)\n  * Added CubeHandler\n  * Added NativeMailerHandler::addHeader() to send custom headers in mails\n  * Added the possibility to specify more than one recipient in NativeMailerHandler\n  * Added the possibility to specify float timeouts in SocketHandler\n  * Added NOTICE and EMERGENCY levels to conform with RFC 5424\n  * Fixed the log records to use the php default timezone instead of UTC\n  * Fixed BufferHandler not being flushed properly on PHP fatal errors\n  * Fixed normalization of exotic resource types\n  * Fixed the default format of the SyslogHandler to avoid duplicating datetimes in syslog\n\n### 1.1.0 (2012-04-23)\n\n  * Added Monolog\\Logger::isHandling() to check if a handler will\n    handle the given log level\n  * Added ChromePHPHandler\n  * Added MongoDBHandler\n  * Added GelfHandler (for use with Graylog2 servers)\n  * Added SocketHandler (for use with syslog-ng for example)\n  * Added NormalizerFormatter\n  * Added the possibility to change the activation strategy of the FingersCrossedHandler\n  * Added possibility to show microseconds in logs\n  * Added `server` and `referer` to WebProcessor output\n\n### 1.0.2 (2011-10-24)\n\n  * Fixed bug in IE with large response headers and FirePHPHandler\n\n### 1.0.1 (2011-08-25)\n\n  * Added MemoryPeakUsageProcessor and MemoryUsageProcessor\n  * Added Monolog\\Logger::getName() to get a logger's channel name\n\n### 1.0.0 (2011-07-06)\n\n  * Added IntrospectionProcessor to get info from where the logger was called\n  * Fixed WebProcessor in CLI\n\n### 1.0.0-RC1 (2011-07-01)\n\n  * Initial release\n"
  },
  {
    "path": "vendor/monolog/monolog/LICENSE",
    "content": "Copyright (c) 2011-2016 Jordi Boggiano\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/monolog/monolog/README.md",
    "content": "# Monolog - Logging for PHP [![Build Status](https://img.shields.io/travis/Seldaek/monolog.svg)](https://travis-ci.org/Seldaek/monolog)\n\n[![Total Downloads](https://img.shields.io/packagist/dt/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)\n[![Latest Stable Version](https://img.shields.io/packagist/v/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)\n\n\nMonolog sends your logs to files, sockets, inboxes, databases and various\nweb services. See the complete list of handlers below. Special handlers\nallow you to build advanced logging strategies.\n\nThis library implements the [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)\ninterface that you can type-hint against in your own libraries to keep\na maximum of interoperability. You can also use it in your applications to\nmake sure you can always use another compatible logger at a later time.\nAs of 1.11.0 Monolog public APIs will also accept PSR-3 log levels.\nInternally Monolog still uses its own level scheme since it predates PSR-3.\n\n## Installation\n\nInstall the latest version with\n\n```bash\n$ composer require monolog/monolog\n```\n\n## Basic Usage\n\n```php\n<?php\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\StreamHandler;\n\n// create a log channel\n$log = new Logger('name');\n$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));\n\n// add records to the log\n$log->addWarning('Foo');\n$log->addError('Bar');\n```\n\n## Documentation\n\n- [Usage Instructions](doc/01-usage.md)\n- [Handlers, Formatters and Processors](doc/02-handlers-formatters-processors.md)\n- [Utility classes](doc/03-utilities.md)\n- [Extending Monolog](doc/04-extending.md)\n\n## Third Party Packages\n\nThird party handlers, formatters and processors are\n[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You\ncan also add your own there if you publish one.\n\n## About\n\n### Requirements\n\n- Monolog works with PHP 5.3 or above, and is also tested to work with HHVM.\n\n### Submitting bugs and feature requests\n\nBugs and feature request are tracked on [GitHub](https://github.com/Seldaek/monolog/issues)\n\n### Framework Integrations\n\n- Frameworks and libraries using [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)\n  can be used very easily with Monolog since it implements the interface.\n- [Symfony2](http://symfony.com) comes out of the box with Monolog.\n- [Silex](http://silex.sensiolabs.org/) comes out of the box with Monolog.\n- [Laravel 4 & 5](http://laravel.com/) come out of the box with Monolog.\n- [Lumen](http://lumen.laravel.com/) comes out of the box with Monolog.\n- [PPI](http://www.ppi.io/) comes out of the box with Monolog.\n- [CakePHP](http://cakephp.org/) is usable with Monolog via the [cakephp-monolog](https://github.com/jadb/cakephp-monolog) plugin.\n- [Slim](http://www.slimframework.com/) is usable with Monolog via the [Slim-Monolog](https://github.com/Flynsarmy/Slim-Monolog) log writer.\n- [XOOPS 2.6](http://xoops.org/) comes out of the box with Monolog.\n- [Aura.Web_Project](https://github.com/auraphp/Aura.Web_Project) comes out of the box with Monolog.\n- [Nette Framework](http://nette.org/en/) can be used with Monolog via [Kdyby/Monolog](https://github.com/Kdyby/Monolog) extension.\n- [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog.\n\n### Author\n\nJordi Boggiano - <j.boggiano@seld.be> - <http://twitter.com/seldaek><br />\nSee also the list of [contributors](https://github.com/Seldaek/monolog/contributors) which participated in this project.\n\n### License\n\nMonolog is licensed under the MIT License - see the `LICENSE` file for details\n\n### Acknowledgements\n\nThis library is heavily inspired by Python's [Logbook](http://packages.python.org/Logbook/)\nlibrary, although most concepts have been adjusted to fit to the PHP world.\n"
  },
  {
    "path": "vendor/monolog/monolog/composer.json",
    "content": "{\n    \"name\": \"monolog/monolog\",\n    \"description\": \"Sends your logs to files, sockets, inboxes, databases and various web services\",\n    \"keywords\": [\"log\", \"logging\", \"psr-3\"],\n    \"homepage\": \"http://github.com/Seldaek/monolog\",\n    \"type\": \"library\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Jordi Boggiano\",\n            \"email\": \"j.boggiano@seld.be\",\n            \"homepage\": \"http://seld.be\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.0\",\n        \"psr/log\": \"~1.0\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"~4.5\",\n        \"graylog2/gelf-php\": \"~1.0\",\n        \"sentry/sentry\": \"^0.13\",\n        \"ruflin/elastica\": \">=0.90 <3.0\",\n        \"doctrine/couchdb\": \"~1.0@dev\",\n        \"aws/aws-sdk-php\": \"^2.4.9 || ^3.0\",\n        \"php-amqplib/php-amqplib\": \"~2.4\",\n        \"swiftmailer/swiftmailer\": \"^5.3|^6.0\",\n        \"php-console/php-console\": \"^3.1.3\",\n        \"phpunit/phpunit-mock-objects\": \"2.3.0\",\n        \"jakub-onderka/php-parallel-lint\": \"0.9\"\n    },\n    \"_\": \"phpunit/phpunit-mock-objects required in 2.3.0 due to https://github.com/sebastianbergmann/phpunit-mock-objects/issues/223 - needs hhvm 3.8+ on travis\",\n    \"suggest\": {\n        \"graylog2/gelf-php\": \"Allow sending log messages to a GrayLog2 server\",\n        \"sentry/sentry\": \"Allow sending log messages to a Sentry server\",\n        \"doctrine/couchdb\": \"Allow sending log messages to a CouchDB server\",\n        \"ruflin/elastica\": \"Allow sending log messages to an Elastic Search server\",\n        \"php-amqplib/php-amqplib\": \"Allow sending log messages to an AMQP server using php-amqplib\",\n        \"ext-amqp\": \"Allow sending log messages to an AMQP server (1.0+ required)\",\n        \"ext-mongo\": \"Allow sending log messages to a MongoDB server\",\n        \"mongodb/mongodb\": \"Allow sending log messages to a MongoDB server via PHP Driver\",\n        \"aws/aws-sdk-php\": \"Allow sending log messages to AWS services like DynamoDB\",\n        \"rollbar/rollbar\": \"Allow sending log messages to Rollbar\",\n        \"php-console/php-console\": \"Allow sending log messages to Google Chrome\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\"Monolog\\\\\": \"src/Monolog\"}\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\"Monolog\\\\\": \"tests/Monolog\"}\n    },\n    \"provide\": {\n        \"psr/log-implementation\": \"1.0.0\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"2.0.x-dev\"\n        }\n    },\n    \"scripts\": {\n        \"test\": [\n            \"parallel-lint . --exclude vendor\",\n            \"phpunit\"\n        ]\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/doc/01-usage.md",
    "content": "# Using Monolog\n\n- [Installation](#installation)\n- [Core Concepts](#core-concepts)\n- [Log Levels](#log-levels)\n- [Configuring a logger](#configuring-a-logger)\n- [Adding extra data in the records](#adding-extra-data-in-the-records)\n- [Leveraging channels](#leveraging-channels)\n- [Customizing the log format](#customizing-the-log-format)\n\n## Installation\n\nMonolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog))\nand as such installable via [Composer](http://getcomposer.org/).\n\n```bash\ncomposer require monolog/monolog\n```\n\nIf you do not use Composer, you can grab the code from GitHub, and use any\nPSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader))\nto load Monolog classes.\n\n## Core Concepts\n\nEvery `Logger` instance has a channel (name) and a stack of handlers. Whenever\nyou add a record to the logger, it traverses the handler stack. Each handler\ndecides whether it fully handled the record, and if so, the propagation of the\nrecord ends there.\n\nThis allows for flexible logging setups, for example having a `StreamHandler` at\nthe bottom of the stack that will log anything to disk, and on top of that add\na `MailHandler` that will send emails only when an error message is logged.\nHandlers also have a `$bubble` property which defines whether they block the\nrecord or not if they handled it. In this example, setting the `MailHandler`'s\n`$bubble` argument to false means that records handled by the `MailHandler` will\nnot propagate to the `StreamHandler` anymore.\n\nYou can create many `Logger`s, each defining a channel (e.g.: db, request,\nrouter, ..) and each of them combining various handlers, which can be shared\nor not. The channel is reflected in the logs and allows you to easily see or\nfilter records.\n\nEach Handler also has a Formatter, a default one with settings that make sense\nwill be created if you don't set one. The formatters normalize and format\nincoming records so that they can be used by the handlers to output useful\ninformation.\n\nCustom severity levels are not available. Only the eight\n[RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice,\nwarning, error, critical, alert, emergency) are present for basic filtering\npurposes, but for sorting and other use cases that would require\nflexibility, you should add Processors to the Logger that can add extra\ninformation (tags, user ip, ..) to the records before they are handled.\n\n## Log Levels\n\nMonolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424).\n\n- **DEBUG** (100): Detailed debug information.\n\n- **INFO** (200): Interesting events. Examples: User logs in, SQL logs.\n\n- **NOTICE** (250): Normal but significant events.\n\n- **WARNING** (300): Exceptional occurrences that are not errors. Examples:\n  Use of deprecated APIs, poor use of an API, undesirable things that are not\n  necessarily wrong.\n\n- **ERROR** (400): Runtime errors that do not require immediate action but\n  should typically be logged and monitored.\n\n- **CRITICAL** (500): Critical conditions. Example: Application component\n  unavailable, unexpected exception.\n\n- **ALERT** (550): Action must be taken immediately. Example: Entire website\n  down, database unavailable, etc. This should trigger the SMS alerts and wake\n  you up.\n\n- **EMERGENCY** (600): Emergency: system is unusable.\n\n## Configuring a logger\n\nHere is a basic setup to log to a file and to firephp on the DEBUG level:\n\n```php\n<?php\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\FirePHPHandler;\n\n// Create the logger\n$logger = new Logger('my_logger');\n// Now add some handlers\n$logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));\n$logger->pushHandler(new FirePHPHandler());\n\n// You can now use your logger\n$logger->addInfo('My logger is now ready');\n```\n\nLet's explain it. The first step is to create the logger instance which will\nbe used in your code. The argument is a channel name, which is useful when\nyou use several loggers (see below for more details about it).\n\nThe logger itself does not know how to handle a record. It delegates it to\nsome handlers. The code above registers two handlers in the stack to allow\nhandling records in two different ways.\n\nNote that the FirePHPHandler is called first as it is added on top of the\nstack. This allows you to temporarily add a logger with bubbling disabled if\nyou want to override other configured loggers.\n\n> If you use Monolog standalone and are looking for an easy way to\n> configure many handlers, the [theorchard/monolog-cascade](https://github.com/theorchard/monolog-cascade)\n> can help you build complex logging configs via PHP arrays, yaml or json configs.\n\n## Adding extra data in the records\n\nMonolog provides two different ways to add extra informations along the simple\ntextual message.\n\n### Using the logging context\n\nThe first way is the context, allowing to pass an array of data along the\nrecord:\n\n```php\n<?php\n\n$logger->addInfo('Adding a new user', array('username' => 'Seldaek'));\n```\n\nSimple handlers (like the StreamHandler for instance) will simply format\nthe array to a string but richer handlers can take advantage of the context\n(FirePHP is able to display arrays in pretty way for instance).\n\n### Using processors\n\nThe second way is to add extra data for all records by using a processor.\nProcessors can be any callable. They will get the record as parameter and\nmust return it after having eventually changed the `extra` part of it. Let's\nwrite a processor adding some dummy data in the record:\n\n```php\n<?php\n\n$logger->pushProcessor(function ($record) {\n    $record['extra']['dummy'] = 'Hello world!';\n\n    return $record;\n});\n```\n\nMonolog provides some built-in processors that can be used in your project.\nLook at the [dedicated chapter](https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#processors) for the list.\n\n> Tip: processors can also be registered on a specific handler instead of\n  the logger to apply only for this handler.\n\n## Leveraging channels\n\nChannels are a great way to identify to which part of the application a record\nis related. This is useful in big applications (and is leveraged by\nMonologBundle in Symfony2).\n\nPicture two loggers sharing a handler that writes to a single log file.\nChannels would allow you to identify the logger that issued every record.\nYou can easily grep through the log files filtering this or that channel.\n\n```php\n<?php\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\FirePHPHandler;\n\n// Create some handlers\n$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);\n$firephp = new FirePHPHandler();\n\n// Create the main logger of the app\n$logger = new Logger('my_logger');\n$logger->pushHandler($stream);\n$logger->pushHandler($firephp);\n\n// Create a logger for the security-related stuff with a different channel\n$securityLogger = new Logger('security');\n$securityLogger->pushHandler($stream);\n$securityLogger->pushHandler($firephp);\n\n// Or clone the first one to only change the channel\n$securityLogger = $logger->withName('security');\n```\n\n## Customizing the log format\n\nIn Monolog it's easy to customize the format of the logs written into files,\nsockets, mails, databases and other handlers. Most of the handlers use the\n\n```php\n$record['formatted']\n```\n\nvalue to be automatically put into the log device. This value depends on the\nformatter settings. You can choose between predefined formatter classes or\nwrite your own (e.g. a multiline text file for human-readable output).\n\nTo configure a predefined formatter class, just set it as the handler's field:\n\n```php\n// the default date format is \"Y-m-d H:i:s\"\n$dateFormat = \"Y n j, g:i a\";\n// the default output format is \"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\\n\"\n$output = \"%datetime% > %level_name% > %message% %context% %extra%\\n\";\n// finally, create a formatter\n$formatter = new LineFormatter($output, $dateFormat);\n\n// Create a handler\n$stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);\n$stream->setFormatter($formatter);\n// bind it to a logger object\n$securityLogger = new Logger('security');\n$securityLogger->pushHandler($stream);\n```\n\nYou may also reuse the same formatter between multiple handlers and share those\nhandlers between multiple loggers.\n\n[Handlers, Formatters and Processors](02-handlers-formatters-processors.md) &rarr;\n"
  },
  {
    "path": "vendor/monolog/monolog/doc/02-handlers-formatters-processors.md",
    "content": "# Handlers, Formatters and Processors\n\n- [Handlers](#handlers)\n  - [Log to files and syslog](#log-to-files-and-syslog)\n  - [Send alerts and emails](#send-alerts-and-emails)\n  - [Log specific servers and networked logging](#log-specific-servers-and-networked-logging)\n  - [Logging in development](#logging-in-development)\n  - [Log to databases](#log-to-databases)\n  - [Wrappers / Special Handlers](#wrappers--special-handlers)\n- [Formatters](#formatters)\n- [Processors](#processors)\n- [Third Party Packages](#third-party-packages)\n\n## Handlers\n\n### Log to files and syslog\n\n- _StreamHandler_: Logs records into any PHP stream, use this for log files.\n- _RotatingFileHandler_: Logs records to a file and creates one logfile per day.\n  It will also delete files older than `$maxFiles`. You should use\n  [logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile\n  setups though, this is just meant as a quick and dirty solution.\n- _SyslogHandler_: Logs records to the syslog.\n- _ErrorLogHandler_: Logs records to PHP's\n  [`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function.\n\n### Send alerts and emails\n\n- _NativeMailerHandler_: Sends emails using PHP's\n  [`mail()`](http://php.net/manual/en/function.mail.php) function.\n- _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance.\n- _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API.\n- _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API.\n- _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account.\n- _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slack API.\n- _SlackbotHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slackbot incoming hook.\n- _SlackWebhookHandler_: Logs records to a [Slack](https://www.slack.com/) account using Slack Webhooks.\n- _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance.\n- _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks.\n- _IFTTTHandler_: Notifies an [IFTTT](https://ifttt.com/maker) trigger with the log channel, level name and message.\n\n### Log specific servers and networked logging\n\n- _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this\n  for UNIX and TCP sockets. See an [example](sockets.md).\n- _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible\n  server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+).\n- _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server.\n- _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server.\n- _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using\n  [raven](https://packagist.org/packages/raven/raven).\n- _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server.\n- _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application.\n- _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account.\n- _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account.\n- _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server.\n- _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account.\n- _InsightOpsHandler_: Logs records to a [InsightOps](https://www.rapid7.com/products/insightops/) account.\n\n### Logging in development\n\n- _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing\n  inline `console` messages within [FireBug](http://getfirebug.com/).\n- _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing\n  inline `console` messages within Chrome.\n- _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with\n  no browser extension required. Most browsers supporting `console` API are supported.\n- _PHPConsoleHandler_: Handler for [PHP Console](https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef), providing\n  inline `console` and notification popup messages within Chrome.\n\n### Log to databases\n\n- _RedisHandler_: Logs records to a [redis](http://redis.io) server.\n- _MongoDBHandler_: Handler to write records in MongoDB via a\n  [Mongo](http://pecl.php.net/package/mongo) extension connection.\n- _CouchDBHandler_: Logs records to a CouchDB server.\n- _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM.\n- _ElasticSearchHandler_: Logs records to an Elastic Search server.\n- _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php).\n\n### Wrappers / Special Handlers\n\n- _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as\n  parameter and will accumulate log records of all levels until a record\n  exceeds the defined severity level. At which point it delivers all records,\n  including those of lower severity, to the handler it wraps. This means that\n  until an error actually happens you will not see anything in your logs, but\n  when it happens you will have the full information, including debug and info\n  records. This provides you with all the information you need, but only when\n  you need it.\n- _DeduplicationHandler_: Useful if you are sending notifications or emails\n  when critical errors occur. It takes a logger as parameter and will\n  accumulate log records of all levels until the end of the request (or\n  `flush()` is called). At that point it delivers all records to the handler\n  it wraps, but only if the records are unique over a given time period\n  (60seconds by default). If the records are duplicates they are simply\n  discarded. The main use of this is in case of critical failure like if your\n  database is unreachable for example all your requests will fail and that\n  can result in a lot of notifications being sent. Adding this handler reduces\n  the amount of notifications to a manageable level.\n- _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring\n   exceptions raised by each child handler. This allows you to ignore issues\n   where a remote tcp connection may have died but you do not want your entire\n   application to crash and may wish to continue to log to other handlers.\n- _BufferHandler_: This handler will buffer all the log records it receives\n  until `close()` is called at which point it will call `handleBatch()` on the\n  handler it wraps with all the log messages at once. This is very useful to\n  send an email with all records at once for example instead of having one mail\n  for every log record.\n- _GroupHandler_: This handler groups other handlers. Every record received is\n  sent to all the handlers it is configured with.\n- _FilterHandler_: This handler only lets records of the given levels through\n   to the wrapped handler.\n- _SamplingHandler_: Wraps around another handler and lets you sample records\n   if you only want to store some of them.\n- _NullHandler_: Any record it can handle will be thrown away. This can be used\n  to put on top of an existing handler stack to disable it temporarily.\n- _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger\n- _TestHandler_: Used for testing, it records everything that is sent to it and\n  has accessors to read out the information.\n- _HandlerWrapper_: A simple handler wrapper you can inherit from to create\n your own wrappers easily.\n\n## Formatters\n\n- _LineFormatter_: Formats a log record into a one-line string.\n- _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails.\n- _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded.\n- _ScalarFormatter_: Used to format log records into an associative array of scalar values.\n- _JsonFormatter_: Encodes a log record into json.\n- _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler.\n- _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler.\n- _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler.\n- _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest).\n- _ElasticaFormatter_: Used to format log records into an Elastica\\Document object, only useful for the ElasticSearchHandler.\n- _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler.\n- _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler.\n- _MongoDBFormatter_: Converts \\DateTime instances to \\MongoDate and objects recursively to arrays, only useful with the MongoDBHandler.\n\n## Processors\n\n- _PsrLogMessageProcessor_: Processes a log record's message according to PSR-3 rules, replacing `{foo}` with the value from `$context['foo']`.\n- _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated.\n- _WebProcessor_: Adds the current request URI, request method and client IP to a log record.\n- _MemoryUsageProcessor_: Adds the current memory usage to a log record.\n- _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record.\n- _ProcessIdProcessor_: Adds the process id to a log record.\n- _UidProcessor_: Adds a unique identifier to a log record.\n- _GitProcessor_: Adds the current git branch and commit to a log record.\n- _TagProcessor_: Adds an array of predefined tags to a log record.\n\n## Third Party Packages\n\nThird party handlers, formatters and processors are\n[listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You\ncan also add your own there if you publish one.\n\n&larr; [Usage](01-usage.md) |  [Utility classes](03-utilities.md) &rarr;\n"
  },
  {
    "path": "vendor/monolog/monolog/doc/03-utilities.md",
    "content": "# Utilities\n\n- _Registry_: The `Monolog\\Registry` class lets you configure global loggers that you\n  can then statically access from anywhere. It is not really a best practice but can\n  help in some older codebases or for ease of use.\n- _ErrorHandler_: The `Monolog\\ErrorHandler` class allows you to easily register\n  a Logger instance as an exception handler, error handler or fatal error handler.\n- _SignalHandler_: The `Monolog\\SignalHandler` class allows you to easily register\n  a Logger instance as a POSIX signal handler.\n- _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log\n  level is reached.\n- _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain\n  log level is reached, depending on which channel received the log record.\n\n&larr; [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) |  [Extending Monolog](04-extending.md) &rarr;\n"
  },
  {
    "path": "vendor/monolog/monolog/doc/04-extending.md",
    "content": "# Extending Monolog\n\nMonolog is fully extensible, allowing you to adapt your logger to your needs.\n\n## Writing your own handler\n\nMonolog provides many built-in handlers. But if the one you need does not\nexist, you can write it and use it in your logger. The only requirement is\nto implement `Monolog\\Handler\\HandlerInterface`.\n\nLet's write a PDOHandler to log records to a database. We will extend the\nabstract class provided by Monolog to keep things DRY.\n\n```php\n<?php\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\AbstractProcessingHandler;\n\nclass PDOHandler extends AbstractProcessingHandler\n{\n    private $initialized = false;\n    private $pdo;\n    private $statement;\n\n    public function __construct(PDO $pdo, $level = Logger::DEBUG, $bubble = true)\n    {\n        $this->pdo = $pdo;\n        parent::__construct($level, $bubble);\n    }\n\n    protected function write(array $record)\n    {\n        if (!$this->initialized) {\n            $this->initialize();\n        }\n\n        $this->statement->execute(array(\n            'channel' => $record['channel'],\n            'level' => $record['level'],\n            'message' => $record['formatted'],\n            'time' => $record['datetime']->format('U'),\n        ));\n    }\n\n    private function initialize()\n    {\n        $this->pdo->exec(\n            'CREATE TABLE IF NOT EXISTS monolog '\n            .'(channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED)'\n        );\n        $this->statement = $this->pdo->prepare(\n            'INSERT INTO monolog (channel, level, message, time) VALUES (:channel, :level, :message, :time)'\n        );\n\n        $this->initialized = true;\n    }\n}\n```\n\nYou can now use this handler in your logger:\n\n```php\n<?php\n\n$logger->pushHandler(new PDOHandler(new PDO('sqlite:logs.sqlite')));\n\n// You can now use your logger\n$logger->addInfo('My logger is now ready');\n```\n\nThe `Monolog\\Handler\\AbstractProcessingHandler` class provides most of the\nlogic needed for the handler, including the use of processors and the formatting\nof the record (which is why we use ``$record['formatted']`` instead of ``$record['message']``).\n\n&larr; [Utility classes](03-utilities.md)\n"
  },
  {
    "path": "vendor/monolog/monolog/doc/sockets.md",
    "content": "Sockets Handler\n===============\n\nThis handler allows you to write your logs to sockets using [fsockopen](http://php.net/fsockopen)\nor [pfsockopen](http://php.net/pfsockopen).\n\nPersistent sockets are mainly useful in web environments where you gain some performance not closing/opening\nthe connections between requests.\n\nYou can use a `unix://` prefix to access unix sockets and `udp://` to open UDP sockets instead of the default TCP.\n\nBasic Example\n-------------\n\n```php\n<?php\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\SocketHandler;\n\n// Create the logger\n$logger = new Logger('my_logger');\n\n// Create the handler\n$handler = new SocketHandler('unix:///var/log/httpd_app_log.socket');\n$handler->setPersistent(true);\n\n// Now add the handler\n$logger->pushHandler($handler, Logger::DEBUG);\n\n// You can now use your logger\n$logger->addInfo('My logger is now ready');\n\n```\n\nIn this example, using syslog-ng, you should see the log on the log server:\n\n    cweb1 [2012-02-26 00:12:03] my_logger.INFO: My logger is now ready [] []\n\n"
  },
  {
    "path": "vendor/monolog/monolog/phpunit.xml.dist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<phpunit bootstrap=\"vendor/autoload.php\" colors=\"true\">\n    <testsuites>\n        <testsuite name=\"Monolog Test Suite\">\n            <directory>tests/Monolog/</directory>\n        </testsuite>\n    </testsuites>\n\n    <filter>\n        <whitelist>\n            <directory suffix=\".php\">src/Monolog/</directory>\n        </whitelist>\n    </filter>\n\n    <php>\n        <ini name=\"date.timezone\" value=\"UTC\"/>\n    </php>\n</phpunit>\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/ErrorHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Psr\\Log\\LoggerInterface;\nuse Psr\\Log\\LogLevel;\nuse Monolog\\Handler\\AbstractHandler;\nuse Monolog\\Registry;\n\n/**\n * Monolog error handler\n *\n * A facility to enable logging of runtime errors, exceptions and fatal errors.\n *\n * Quick setup: <code>ErrorHandler::register($logger);</code>\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass ErrorHandler\n{\n    private $logger;\n\n    private $previousExceptionHandler;\n    private $uncaughtExceptionLevel;\n\n    private $previousErrorHandler;\n    private $errorLevelMap;\n    private $handleOnlyReportedErrors;\n\n    private $hasFatalErrorHandler;\n    private $fatalLevel;\n    private $reservedMemory;\n    private $lastFatalTrace;\n    private static $fatalErrors = array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR);\n\n    public function __construct(LoggerInterface $logger)\n    {\n        $this->logger = $logger;\n    }\n\n    /**\n     * Registers a new ErrorHandler for a given Logger\n     *\n     * By default it will handle errors, exceptions and fatal errors\n     *\n     * @param  LoggerInterface $logger\n     * @param  array|false     $errorLevelMap  an array of E_* constant to LogLevel::* constant mapping, or false to disable error handling\n     * @param  int|false       $exceptionLevel a LogLevel::* constant, or false to disable exception handling\n     * @param  int|false       $fatalLevel     a LogLevel::* constant, or false to disable fatal error handling\n     * @return ErrorHandler\n     */\n    public static function register(LoggerInterface $logger, $errorLevelMap = array(), $exceptionLevel = null, $fatalLevel = null)\n    {\n        //Forces the autoloader to run for LogLevel. Fixes an autoload issue at compile-time on PHP5.3. See https://github.com/Seldaek/monolog/pull/929\n        class_exists('\\\\Psr\\\\Log\\\\LogLevel', true);\n\n        $handler = new static($logger);\n        if ($errorLevelMap !== false) {\n            $handler->registerErrorHandler($errorLevelMap);\n        }\n        if ($exceptionLevel !== false) {\n            $handler->registerExceptionHandler($exceptionLevel);\n        }\n        if ($fatalLevel !== false) {\n            $handler->registerFatalHandler($fatalLevel);\n        }\n\n        return $handler;\n    }\n\n    public function registerExceptionHandler($level = null, $callPrevious = true)\n    {\n        $prev = set_exception_handler(array($this, 'handleException'));\n        $this->uncaughtExceptionLevel = $level;\n        if ($callPrevious && $prev) {\n            $this->previousExceptionHandler = $prev;\n        }\n    }\n\n    public function registerErrorHandler(array $levelMap = array(), $callPrevious = true, $errorTypes = -1, $handleOnlyReportedErrors = true)\n    {\n        $prev = set_error_handler(array($this, 'handleError'), $errorTypes);\n        $this->errorLevelMap = array_replace($this->defaultErrorLevelMap(), $levelMap);\n        if ($callPrevious) {\n            $this->previousErrorHandler = $prev ?: true;\n        }\n\n        $this->handleOnlyReportedErrors = $handleOnlyReportedErrors;\n    }\n\n    public function registerFatalHandler($level = null, $reservedMemorySize = 20)\n    {\n        register_shutdown_function(array($this, 'handleFatalError'));\n\n        $this->reservedMemory = str_repeat(' ', 1024 * $reservedMemorySize);\n        $this->fatalLevel = $level;\n        $this->hasFatalErrorHandler = true;\n    }\n\n    protected function defaultErrorLevelMap()\n    {\n        return array(\n            E_ERROR             => LogLevel::CRITICAL,\n            E_WARNING           => LogLevel::WARNING,\n            E_PARSE             => LogLevel::ALERT,\n            E_NOTICE            => LogLevel::NOTICE,\n            E_CORE_ERROR        => LogLevel::CRITICAL,\n            E_CORE_WARNING      => LogLevel::WARNING,\n            E_COMPILE_ERROR     => LogLevel::ALERT,\n            E_COMPILE_WARNING   => LogLevel::WARNING,\n            E_USER_ERROR        => LogLevel::ERROR,\n            E_USER_WARNING      => LogLevel::WARNING,\n            E_USER_NOTICE       => LogLevel::NOTICE,\n            E_STRICT            => LogLevel::NOTICE,\n            E_RECOVERABLE_ERROR => LogLevel::ERROR,\n            E_DEPRECATED        => LogLevel::NOTICE,\n            E_USER_DEPRECATED   => LogLevel::NOTICE,\n        );\n    }\n\n    /**\n     * @private\n     */\n    public function handleException($e)\n    {\n        $this->logger->log(\n            $this->uncaughtExceptionLevel === null ? LogLevel::ERROR : $this->uncaughtExceptionLevel,\n            sprintf('Uncaught Exception %s: \"%s\" at %s line %s', Utils::getClass($e), $e->getMessage(), $e->getFile(), $e->getLine()),\n            array('exception' => $e)\n        );\n\n        if ($this->previousExceptionHandler) {\n            call_user_func($this->previousExceptionHandler, $e);\n        }\n\n        exit(255);\n    }\n\n    /**\n     * @private\n     */\n    public function handleError($code, $message, $file = '', $line = 0, $context = array())\n    {\n        if ($this->handleOnlyReportedErrors && !(error_reporting() & $code)) {\n            return;\n        }\n\n        // fatal error codes are ignored if a fatal error handler is present as well to avoid duplicate log entries\n        if (!$this->hasFatalErrorHandler || !in_array($code, self::$fatalErrors, true)) {\n            $level = isset($this->errorLevelMap[$code]) ? $this->errorLevelMap[$code] : LogLevel::CRITICAL;\n            $this->logger->log($level, self::codeToString($code).': '.$message, array('code' => $code, 'message' => $message, 'file' => $file, 'line' => $line));\n        } else {\n            // http://php.net/manual/en/function.debug-backtrace.php\n            // As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added.\n            // Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'.\n            $trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS);\n            array_shift($trace); // Exclude handleError from trace\n            $this->lastFatalTrace = $trace;\n        }\n\n        if ($this->previousErrorHandler === true) {\n            return false;\n        } elseif ($this->previousErrorHandler) {\n            return call_user_func($this->previousErrorHandler, $code, $message, $file, $line, $context);\n        }\n    }\n\n    /**\n     * @private\n     */\n    public function handleFatalError()\n    {\n        $this->reservedMemory = null;\n\n        $lastError = error_get_last();\n        if ($lastError && in_array($lastError['type'], self::$fatalErrors, true)) {\n            $this->logger->log(\n                $this->fatalLevel === null ? LogLevel::ALERT : $this->fatalLevel,\n                'Fatal Error ('.self::codeToString($lastError['type']).'): '.$lastError['message'],\n                array('code' => $lastError['type'], 'message' => $lastError['message'], 'file' => $lastError['file'], 'line' => $lastError['line'], 'trace' => $this->lastFatalTrace)\n            );\n\n            if ($this->logger instanceof Logger) {\n                foreach ($this->logger->getHandlers() as $handler) {\n                    if ($handler instanceof AbstractHandler) {\n                        $handler->close();\n                    }\n                }\n            }\n        }\n    }\n\n    private static function codeToString($code)\n    {\n        switch ($code) {\n            case E_ERROR:\n                return 'E_ERROR';\n            case E_WARNING:\n                return 'E_WARNING';\n            case E_PARSE:\n                return 'E_PARSE';\n            case E_NOTICE:\n                return 'E_NOTICE';\n            case E_CORE_ERROR:\n                return 'E_CORE_ERROR';\n            case E_CORE_WARNING:\n                return 'E_CORE_WARNING';\n            case E_COMPILE_ERROR:\n                return 'E_COMPILE_ERROR';\n            case E_COMPILE_WARNING:\n                return 'E_COMPILE_WARNING';\n            case E_USER_ERROR:\n                return 'E_USER_ERROR';\n            case E_USER_WARNING:\n                return 'E_USER_WARNING';\n            case E_USER_NOTICE:\n                return 'E_USER_NOTICE';\n            case E_STRICT:\n                return 'E_STRICT';\n            case E_RECOVERABLE_ERROR:\n                return 'E_RECOVERABLE_ERROR';\n            case E_DEPRECATED:\n                return 'E_DEPRECATED';\n            case E_USER_DEPRECATED:\n                return 'E_USER_DEPRECATED';\n        }\n\n        return 'Unknown PHP error';\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\n/**\n * Formats a log message according to the ChromePHP array format\n *\n * @author Christophe Coevoet <stof@notk.org>\n */\nclass ChromePHPFormatter implements FormatterInterface\n{\n    /**\n     * Translates Monolog log levels to Wildfire levels.\n     */\n    private $logLevels = array(\n        Logger::DEBUG     => 'log',\n        Logger::INFO      => 'info',\n        Logger::NOTICE    => 'info',\n        Logger::WARNING   => 'warn',\n        Logger::ERROR     => 'error',\n        Logger::CRITICAL  => 'error',\n        Logger::ALERT     => 'error',\n        Logger::EMERGENCY => 'error',\n    );\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        // Retrieve the line and file if set and remove them from the formatted extra\n        $backtrace = 'unknown';\n        if (isset($record['extra']['file'], $record['extra']['line'])) {\n            $backtrace = $record['extra']['file'].' : '.$record['extra']['line'];\n            unset($record['extra']['file'], $record['extra']['line']);\n        }\n\n        $message = array('message' => $record['message']);\n        if ($record['context']) {\n            $message['context'] = $record['context'];\n        }\n        if ($record['extra']) {\n            $message['extra'] = $record['extra'];\n        }\n        if (count($message) === 1) {\n            $message = reset($message);\n        }\n\n        return array(\n            $record['channel'],\n            $message,\n            $backtrace,\n            $this->logLevels[$record['level']],\n        );\n    }\n\n    public function formatBatch(array $records)\n    {\n        $formatted = array();\n\n        foreach ($records as $record) {\n            $formatted[] = $this->format($record);\n        }\n\n        return $formatted;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Elastica\\Document;\n\n/**\n * Format a log message into an Elastica Document\n *\n * @author Jelle Vink <jelle.vink@gmail.com>\n */\nclass ElasticaFormatter extends NormalizerFormatter\n{\n    /**\n     * @var string Elastic search index name\n     */\n    protected $index;\n\n    /**\n     * @var string Elastic search document type\n     */\n    protected $type;\n\n    /**\n     * @param string $index Elastic Search index name\n     * @param string $type  Elastic Search document type\n     */\n    public function __construct($index, $type)\n    {\n        // elasticsearch requires a ISO 8601 format date with optional millisecond precision.\n        parent::__construct('Y-m-d\\TH:i:s.uP');\n\n        $this->index = $index;\n        $this->type = $type;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        $record = parent::format($record);\n\n        return $this->getDocument($record);\n    }\n\n    /**\n     * Getter index\n     * @return string\n     */\n    public function getIndex()\n    {\n        return $this->index;\n    }\n\n    /**\n     * Getter type\n     * @return string\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Convert a log message into an Elastica Document\n     *\n     * @param  array    $record Log message\n     * @return Document\n     */\n    protected function getDocument($record)\n    {\n        $document = new Document();\n        $document->setData($record);\n        $document->setType($this->type);\n        $document->setIndex($this->index);\n\n        return $document;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * formats the record to be used in the FlowdockHandler\n *\n * @author Dominik Liebler <liebler.dominik@gmail.com>\n */\nclass FlowdockFormatter implements FormatterInterface\n{\n    /**\n     * @var string\n     */\n    private $source;\n\n    /**\n     * @var string\n     */\n    private $sourceEmail;\n\n    /**\n     * @param string $source\n     * @param string $sourceEmail\n     */\n    public function __construct($source, $sourceEmail)\n    {\n        $this->source = $source;\n        $this->sourceEmail = $sourceEmail;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        $tags = array(\n            '#logs',\n            '#' . strtolower($record['level_name']),\n            '#' . $record['channel'],\n        );\n\n        foreach ($record['extra'] as $value) {\n            $tags[] = '#' . $value;\n        }\n\n        $subject = sprintf(\n            'in %s: %s - %s',\n            $this->source,\n            $record['level_name'],\n            $this->getShortMessage($record['message'])\n        );\n\n        $record['flowdock'] = array(\n            'source' => $this->source,\n            'from_address' => $this->sourceEmail,\n            'subject' => $subject,\n            'content' => $record['message'],\n            'tags' => $tags,\n            'project' => $this->source,\n        );\n\n        return $record;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function formatBatch(array $records)\n    {\n        $formatted = array();\n\n        foreach ($records as $record) {\n            $formatted[] = $this->format($record);\n        }\n\n        return $formatted;\n    }\n\n    /**\n     * @param string $message\n     *\n     * @return string\n     */\n    public function getShortMessage($message)\n    {\n        static $hasMbString;\n\n        if (null === $hasMbString) {\n            $hasMbString = function_exists('mb_strlen');\n        }\n\n        $maxLength = 45;\n\n        if ($hasMbString) {\n            if (mb_strlen($message, 'UTF-8') > $maxLength) {\n                $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...';\n            }\n        } else {\n            if (strlen($message) > $maxLength) {\n                $message = substr($message, 0, $maxLength - 4) . ' ...';\n            }\n        }\n\n        return $message;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * Class FluentdFormatter\n *\n * Serializes a log message to Fluentd unix socket protocol\n *\n * Fluentd config:\n *\n * <source>\n *  type unix\n *  path /var/run/td-agent/td-agent.sock\n * </source>\n *\n * Monolog setup:\n *\n * $logger = new Monolog\\Logger('fluent.tag');\n * $fluentHandler = new Monolog\\Handler\\SocketHandler('unix:///var/run/td-agent/td-agent.sock');\n * $fluentHandler->setFormatter(new Monolog\\Formatter\\FluentdFormatter());\n * $logger->pushHandler($fluentHandler);\n *\n * @author Andrius Putna <fordnox@gmail.com>\n */\nclass FluentdFormatter implements FormatterInterface\n{\n    /**\n     * @var bool $levelTag should message level be a part of the fluentd tag\n     */\n    protected $levelTag = false;\n\n    public function __construct($levelTag = false)\n    {\n        if (!function_exists('json_encode')) {\n            throw new \\RuntimeException('PHP\\'s json extension is required to use Monolog\\'s FluentdUnixFormatter');\n        }\n\n        $this->levelTag = (bool) $levelTag;\n    }\n\n    public function isUsingLevelsInTag()\n    {\n        return $this->levelTag;\n    }\n\n    public function format(array $record)\n    {\n        $tag = $record['channel'];\n        if ($this->levelTag) {\n            $tag .= '.' . strtolower($record['level_name']);\n        }\n\n        $message = array(\n            'message' => $record['message'],\n            'context' => $record['context'],\n            'extra' => $record['extra'],\n        );\n\n        if (!$this->levelTag) {\n            $message['level'] = $record['level'];\n            $message['level_name'] = $record['level_name'];\n        }\n\n        return json_encode(array($tag, $record['datetime']->getTimestamp(), $message));\n    }\n\n    public function formatBatch(array $records)\n    {\n        $message = '';\n        foreach ($records as $record) {\n            $message .= $this->format($record);\n        }\n\n        return $message;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * Interface for formatters\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\ninterface FormatterInterface\n{\n    /**\n     * Formats a log record.\n     *\n     * @param  array $record A record to format\n     * @return mixed The formatted record\n     */\n    public function format(array $record);\n\n    /**\n     * Formats a set of log records.\n     *\n     * @param  array $records A set of records to format\n     * @return mixed The formatted set of records\n     */\n    public function formatBatch(array $records);\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\nuse Gelf\\Message;\n\n/**\n * Serializes a log message to GELF\n * @see http://www.graylog2.org/about/gelf\n *\n * @author Matt Lehner <mlehner@gmail.com>\n */\nclass GelfMessageFormatter extends NormalizerFormatter\n{\n    const DEFAULT_MAX_LENGTH = 32766;\n\n    /**\n     * @var string the name of the system for the Gelf log message\n     */\n    protected $systemName;\n\n    /**\n     * @var string a prefix for 'extra' fields from the Monolog record (optional)\n     */\n    protected $extraPrefix;\n\n    /**\n     * @var string a prefix for 'context' fields from the Monolog record (optional)\n     */\n    protected $contextPrefix;\n\n    /**\n     * @var int max length per field\n     */\n    protected $maxLength;\n\n    /**\n     * Translates Monolog log levels to Graylog2 log priorities.\n     */\n    private $logLevels = array(\n        Logger::DEBUG     => 7,\n        Logger::INFO      => 6,\n        Logger::NOTICE    => 5,\n        Logger::WARNING   => 4,\n        Logger::ERROR     => 3,\n        Logger::CRITICAL  => 2,\n        Logger::ALERT     => 1,\n        Logger::EMERGENCY => 0,\n    );\n\n    public function __construct($systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $maxLength = null)\n    {\n        parent::__construct('U.u');\n\n        $this->systemName = $systemName ?: gethostname();\n\n        $this->extraPrefix = $extraPrefix;\n        $this->contextPrefix = $contextPrefix;\n        $this->maxLength = is_null($maxLength) ? self::DEFAULT_MAX_LENGTH : $maxLength;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        $record = parent::format($record);\n\n        if (!isset($record['datetime'], $record['message'], $record['level'])) {\n            throw new \\InvalidArgumentException('The record should at least contain datetime, message and level keys, '.var_export($record, true).' given');\n        }\n\n        $message = new Message();\n        $message\n            ->setTimestamp($record['datetime'])\n            ->setShortMessage((string) $record['message'])\n            ->setHost($this->systemName)\n            ->setLevel($this->logLevels[$record['level']]);\n\n        // message length + system name length + 200 for padding / metadata \n        $len = 200 + strlen((string) $record['message']) + strlen($this->systemName);\n\n        if ($len > $this->maxLength) {\n            $message->setShortMessage(substr($record['message'], 0, $this->maxLength));\n        }\n\n        if (isset($record['channel'])) {\n            $message->setFacility($record['channel']);\n        }\n        if (isset($record['extra']['line'])) {\n            $message->setLine($record['extra']['line']);\n            unset($record['extra']['line']);\n        }\n        if (isset($record['extra']['file'])) {\n            $message->setFile($record['extra']['file']);\n            unset($record['extra']['file']);\n        }\n\n        foreach ($record['extra'] as $key => $val) {\n            $val = is_scalar($val) || null === $val ? $val : $this->toJson($val);\n            $len = strlen($this->extraPrefix . $key . $val);\n            if ($len > $this->maxLength) {\n                $message->setAdditional($this->extraPrefix . $key, substr($val, 0, $this->maxLength));\n                break;\n            }\n            $message->setAdditional($this->extraPrefix . $key, $val);\n        }\n\n        foreach ($record['context'] as $key => $val) {\n            $val = is_scalar($val) || null === $val ? $val : $this->toJson($val);\n            $len = strlen($this->contextPrefix . $key . $val);\n            if ($len > $this->maxLength) {\n                $message->setAdditional($this->contextPrefix . $key, substr($val, 0, $this->maxLength));\n                break;\n            }\n            $message->setAdditional($this->contextPrefix . $key, $val);\n        }\n\n        if (null === $message->getFile() && isset($record['context']['exception']['file'])) {\n            if (preg_match(\"/^(.+):([0-9]+)$/\", $record['context']['exception']['file'], $matches)) {\n                $message->setFile($matches[1]);\n                $message->setLine($matches[2]);\n            }\n        }\n\n        return $message;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php",
    "content": "<?php\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\n/**\n * Formats incoming records into an HTML table\n *\n * This is especially useful for html email logging\n *\n * @author Tiago Brito <tlfbrito@gmail.com>\n */\nclass HtmlFormatter extends NormalizerFormatter\n{\n    /**\n     * Translates Monolog log levels to html color priorities.\n     */\n    protected $logLevels = array(\n        Logger::DEBUG     => '#cccccc',\n        Logger::INFO      => '#468847',\n        Logger::NOTICE    => '#3a87ad',\n        Logger::WARNING   => '#c09853',\n        Logger::ERROR     => '#f0ad4e',\n        Logger::CRITICAL  => '#FF7708',\n        Logger::ALERT     => '#C12A19',\n        Logger::EMERGENCY => '#000000',\n    );\n\n    /**\n     * @param string $dateFormat The format of the timestamp: one supported by DateTime::format\n     */\n    public function __construct($dateFormat = null)\n    {\n        parent::__construct($dateFormat);\n    }\n\n    /**\n     * Creates an HTML table row\n     *\n     * @param  string $th       Row header content\n     * @param  string $td       Row standard cell content\n     * @param  bool   $escapeTd false if td content must not be html escaped\n     * @return string\n     */\n    protected function addRow($th, $td = ' ', $escapeTd = true)\n    {\n        $th = htmlspecialchars($th, ENT_NOQUOTES, 'UTF-8');\n        if ($escapeTd) {\n            $td = '<pre>'.htmlspecialchars($td, ENT_NOQUOTES, 'UTF-8').'</pre>';\n        }\n\n        return \"<tr style=\\\"padding: 4px;text-align: left;\\\">\\n<th style=\\\"vertical-align: top;background: #ccc;color: #000\\\" width=\\\"100\\\">$th:</th>\\n<td style=\\\"padding: 4px;text-align: left;vertical-align: top;background: #eee;color: #000\\\">\".$td.\"</td>\\n</tr>\";\n    }\n\n    /**\n     * Create a HTML h1 tag\n     *\n     * @param  string $title Text to be in the h1\n     * @param  int    $level Error level\n     * @return string\n     */\n    protected function addTitle($title, $level)\n    {\n        $title = htmlspecialchars($title, ENT_NOQUOTES, 'UTF-8');\n\n        return '<h1 style=\"background: '.$this->logLevels[$level].';color: #ffffff;padding: 5px;\" class=\"monolog-output\">'.$title.'</h1>';\n    }\n\n    /**\n     * Formats a log record.\n     *\n     * @param  array $record A record to format\n     * @return mixed The formatted record\n     */\n    public function format(array $record)\n    {\n        $output = $this->addTitle($record['level_name'], $record['level']);\n        $output .= '<table cellspacing=\"1\" width=\"100%\" class=\"monolog-output\">';\n\n        $output .= $this->addRow('Message', (string) $record['message']);\n        $output .= $this->addRow('Time', $record['datetime']->format($this->dateFormat));\n        $output .= $this->addRow('Channel', $record['channel']);\n        if ($record['context']) {\n            $embeddedTable = '<table cellspacing=\"1\" width=\"100%\">';\n            foreach ($record['context'] as $key => $value) {\n                $embeddedTable .= $this->addRow($key, $this->convertToString($value));\n            }\n            $embeddedTable .= '</table>';\n            $output .= $this->addRow('Context', $embeddedTable, false);\n        }\n        if ($record['extra']) {\n            $embeddedTable = '<table cellspacing=\"1\" width=\"100%\">';\n            foreach ($record['extra'] as $key => $value) {\n                $embeddedTable .= $this->addRow($key, $this->convertToString($value));\n            }\n            $embeddedTable .= '</table>';\n            $output .= $this->addRow('Extra', $embeddedTable, false);\n        }\n\n        return $output.'</table>';\n    }\n\n    /**\n     * Formats a set of log records.\n     *\n     * @param  array $records A set of records to format\n     * @return mixed The formatted set of records\n     */\n    public function formatBatch(array $records)\n    {\n        $message = '';\n        foreach ($records as $record) {\n            $message .= $this->format($record);\n        }\n\n        return $message;\n    }\n\n    protected function convertToString($data)\n    {\n        if (null === $data || is_scalar($data)) {\n            return (string) $data;\n        }\n\n        $data = $this->normalize($data);\n        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {\n            return json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);\n        }\n\n        return str_replace('\\\\/', '/', json_encode($data));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Exception;\nuse Monolog\\Utils;\nuse Throwable;\n\n/**\n * Encodes whatever record data is passed to it as json\n *\n * This can be useful to log to databases or remote APIs\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass JsonFormatter extends NormalizerFormatter\n{\n    const BATCH_MODE_JSON = 1;\n    const BATCH_MODE_NEWLINES = 2;\n\n    protected $batchMode;\n    protected $appendNewline;\n\n    /**\n     * @var bool\n     */\n    protected $includeStacktraces = false;\n\n    /**\n     * @param int $batchMode\n     * @param bool $appendNewline\n     */\n    public function __construct($batchMode = self::BATCH_MODE_JSON, $appendNewline = true)\n    {\n        $this->batchMode = $batchMode;\n        $this->appendNewline = $appendNewline;\n    }\n\n    /**\n     * The batch mode option configures the formatting style for\n     * multiple records. By default, multiple records will be\n     * formatted as a JSON-encoded array. However, for\n     * compatibility with some API endpoints, alternative styles\n     * are available.\n     *\n     * @return int\n     */\n    public function getBatchMode()\n    {\n        return $this->batchMode;\n    }\n\n    /**\n     * True if newlines are appended to every formatted record\n     *\n     * @return bool\n     */\n    public function isAppendingNewlines()\n    {\n        return $this->appendNewline;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        return $this->toJson($this->normalize($record), true) . ($this->appendNewline ? \"\\n\" : '');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function formatBatch(array $records)\n    {\n        switch ($this->batchMode) {\n            case static::BATCH_MODE_NEWLINES:\n                return $this->formatBatchNewlines($records);\n\n            case static::BATCH_MODE_JSON:\n            default:\n                return $this->formatBatchJson($records);\n        }\n    }\n\n    /**\n     * @param bool $include\n     */\n    public function includeStacktraces($include = true)\n    {\n        $this->includeStacktraces = $include;\n    }\n\n    /**\n     * Return a JSON-encoded array of records.\n     *\n     * @param  array  $records\n     * @return string\n     */\n    protected function formatBatchJson(array $records)\n    {\n        return $this->toJson($this->normalize($records), true);\n    }\n\n    /**\n     * Use new lines to separate records instead of a\n     * JSON-encoded array.\n     *\n     * @param  array  $records\n     * @return string\n     */\n    protected function formatBatchNewlines(array $records)\n    {\n        $instance = $this;\n\n        $oldNewline = $this->appendNewline;\n        $this->appendNewline = false;\n        array_walk($records, function (&$value, $key) use ($instance) {\n            $value = $instance->format($value);\n        });\n        $this->appendNewline = $oldNewline;\n\n        return implode(\"\\n\", $records);\n    }\n\n    /**\n     * Normalizes given $data.\n     *\n     * @param mixed $data\n     *\n     * @return mixed\n     */\n    protected function normalize($data, $depth = 0)\n    {\n        if ($depth > 9) {\n            return 'Over 9 levels deep, aborting normalization';\n        }\n\n        if (is_array($data) || $data instanceof \\Traversable) {\n            $normalized = array();\n\n            $count = 1;\n            foreach ($data as $key => $value) {\n                if ($count++ > 1000) {\n                    $normalized['...'] = 'Over 1000 items ('.count($data).' total), aborting normalization';\n                    break;\n                }\n\n                $normalized[$key] = $this->normalize($value, $depth+1);\n            }\n\n            return $normalized;\n        }\n\n        if ($data instanceof Exception || $data instanceof Throwable) {\n            return $this->normalizeException($data);\n        }\n\n        return $data;\n    }\n\n    /**\n     * Normalizes given exception with or without its own stack trace based on\n     * `includeStacktraces` property.\n     *\n     * @param Exception|Throwable $e\n     *\n     * @return array\n     */\n    protected function normalizeException($e)\n    {\n        // TODO 2.0 only check for Throwable\n        if (!$e instanceof Exception && !$e instanceof Throwable) {\n            throw new \\InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.Utils::getClass($e));\n        }\n\n        $data = array(\n            'class' => Utils::getClass($e),\n            'message' => $e->getMessage(),\n            'code' => $e->getCode(),\n            'file' => $e->getFile().':'.$e->getLine(),\n        );\n\n        if ($this->includeStacktraces) {\n            $trace = $e->getTrace();\n            foreach ($trace as $frame) {\n                if (isset($frame['file'])) {\n                    $data['trace'][] = $frame['file'].':'.$frame['line'];\n                } elseif (isset($frame['function']) && $frame['function'] === '{closure}') {\n                    // We should again normalize the frames, because it might contain invalid items\n                    $data['trace'][] = $frame['function'];\n                } else {\n                    // We should again normalize the frames, because it might contain invalid items\n                    $data['trace'][] = $this->normalize($frame);\n                }\n            }\n        }\n\n        if ($previous = $e->getPrevious()) {\n            $data['previous'] = $this->normalizeException($previous);\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Utils;\n\n/**\n * Formats incoming records into a one-line string\n *\n * This is especially useful for logging to files\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n * @author Christophe Coevoet <stof@notk.org>\n */\nclass LineFormatter extends NormalizerFormatter\n{\n    const SIMPLE_FORMAT = \"[%datetime%] %channel%.%level_name%: %message% %context% %extra%\\n\";\n\n    protected $format;\n    protected $allowInlineLineBreaks;\n    protected $ignoreEmptyContextAndExtra;\n    protected $includeStacktraces;\n\n    /**\n     * @param string $format                     The format of the message\n     * @param string $dateFormat                 The format of the timestamp: one supported by DateTime::format\n     * @param bool   $allowInlineLineBreaks      Whether to allow inline line breaks in log entries\n     * @param bool   $ignoreEmptyContextAndExtra\n     */\n    public function __construct($format = null, $dateFormat = null, $allowInlineLineBreaks = false, $ignoreEmptyContextAndExtra = false)\n    {\n        $this->format = $format ?: static::SIMPLE_FORMAT;\n        $this->allowInlineLineBreaks = $allowInlineLineBreaks;\n        $this->ignoreEmptyContextAndExtra = $ignoreEmptyContextAndExtra;\n        parent::__construct($dateFormat);\n    }\n\n    public function includeStacktraces($include = true)\n    {\n        $this->includeStacktraces = $include;\n        if ($this->includeStacktraces) {\n            $this->allowInlineLineBreaks = true;\n        }\n    }\n\n    public function allowInlineLineBreaks($allow = true)\n    {\n        $this->allowInlineLineBreaks = $allow;\n    }\n\n    public function ignoreEmptyContextAndExtra($ignore = true)\n    {\n        $this->ignoreEmptyContextAndExtra = $ignore;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        $vars = parent::format($record);\n\n        $output = $this->format;\n\n        foreach ($vars['extra'] as $var => $val) {\n            if (false !== strpos($output, '%extra.'.$var.'%')) {\n                $output = str_replace('%extra.'.$var.'%', $this->stringify($val), $output);\n                unset($vars['extra'][$var]);\n            }\n        }\n\n\n        foreach ($vars['context'] as $var => $val) {\n            if (false !== strpos($output, '%context.'.$var.'%')) {\n                $output = str_replace('%context.'.$var.'%', $this->stringify($val), $output);\n                unset($vars['context'][$var]);\n            }\n        }\n\n        if ($this->ignoreEmptyContextAndExtra) {\n            if (empty($vars['context'])) {\n                unset($vars['context']);\n                $output = str_replace('%context%', '', $output);\n            }\n\n            if (empty($vars['extra'])) {\n                unset($vars['extra']);\n                $output = str_replace('%extra%', '', $output);\n            }\n        }\n\n        foreach ($vars as $var => $val) {\n            if (false !== strpos($output, '%'.$var.'%')) {\n                $output = str_replace('%'.$var.'%', $this->stringify($val), $output);\n            }\n        }\n\n        // remove leftover %extra.xxx% and %context.xxx% if any\n        if (false !== strpos($output, '%')) {\n            $output = preg_replace('/%(?:extra|context)\\..+?%/', '', $output);\n        }\n\n        return $output;\n    }\n\n    public function formatBatch(array $records)\n    {\n        $message = '';\n        foreach ($records as $record) {\n            $message .= $this->format($record);\n        }\n\n        return $message;\n    }\n\n    public function stringify($value)\n    {\n        return $this->replaceNewlines($this->convertToString($value));\n    }\n\n    protected function normalizeException($e)\n    {\n        // TODO 2.0 only check for Throwable\n        if (!$e instanceof \\Exception && !$e instanceof \\Throwable) {\n            throw new \\InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.Utils::getClass($e));\n        }\n\n        $previousText = '';\n        if ($previous = $e->getPrevious()) {\n            do {\n                $previousText .= ', '.Utils::getClass($previous).'(code: '.$previous->getCode().'): '.$previous->getMessage().' at '.$previous->getFile().':'.$previous->getLine();\n            } while ($previous = $previous->getPrevious());\n        }\n\n        $str = '[object] ('.Utils::getClass($e).'(code: '.$e->getCode().'): '.$e->getMessage().' at '.$e->getFile().':'.$e->getLine().$previousText.')';\n        if ($this->includeStacktraces) {\n            $str .= \"\\n[stacktrace]\\n\".$e->getTraceAsString().\"\\n\";\n        }\n\n        return $str;\n    }\n\n    protected function convertToString($data)\n    {\n        if (null === $data || is_bool($data)) {\n            return var_export($data, true);\n        }\n\n        if (is_scalar($data)) {\n            return (string) $data;\n        }\n\n        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {\n            return $this->toJson($data, true);\n        }\n\n        return str_replace('\\\\/', '/', @json_encode($data));\n    }\n\n    protected function replaceNewlines($str)\n    {\n        if ($this->allowInlineLineBreaks) {\n            if (0 === strpos($str, '{')) {\n                return str_replace(array('\\r', '\\n'), array(\"\\r\", \"\\n\"), $str);\n            }\n\n            return $str;\n        }\n\n        return str_replace(array(\"\\r\\n\", \"\\r\", \"\\n\"), ' ', $str);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * Encodes message information into JSON in a format compatible with Loggly.\n *\n * @author Adam Pancutt <adam@pancutt.com>\n */\nclass LogglyFormatter extends JsonFormatter\n{\n    /**\n     * Overrides the default batch mode to new lines for compatibility with the\n     * Loggly bulk API.\n     *\n     * @param int $batchMode\n     */\n    public function __construct($batchMode = self::BATCH_MODE_NEWLINES, $appendNewline = false)\n    {\n        parent::__construct($batchMode, $appendNewline);\n    }\n\n    /**\n     * Appends the 'timestamp' parameter for indexing by Loggly.\n     *\n     * @see https://www.loggly.com/docs/automated-parsing/#json\n     * @see \\Monolog\\Formatter\\JsonFormatter::format()\n     */\n    public function format(array $record)\n    {\n        if (isset($record[\"datetime\"]) && ($record[\"datetime\"] instanceof \\DateTime)) {\n            $record[\"timestamp\"] = $record[\"datetime\"]->format(\"Y-m-d\\TH:i:s.uO\");\n            // TODO 2.0 unset the 'datetime' parameter, retained for BC\n        }\n\n        return parent::format($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * Serializes a log message to Logstash Event Format\n *\n * @see http://logstash.net/\n * @see https://github.com/logstash/logstash/blob/master/lib/logstash/event.rb\n *\n * @author Tim Mower <timothy.mower@gmail.com>\n */\nclass LogstashFormatter extends NormalizerFormatter\n{\n    const V0 = 0;\n    const V1 = 1;\n\n    /**\n     * @var string the name of the system for the Logstash log message, used to fill the @source field\n     */\n    protected $systemName;\n\n    /**\n     * @var string an application name for the Logstash log message, used to fill the @type field\n     */\n    protected $applicationName;\n\n    /**\n     * @var string a prefix for 'extra' fields from the Monolog record (optional)\n     */\n    protected $extraPrefix;\n\n    /**\n     * @var string a prefix for 'context' fields from the Monolog record (optional)\n     */\n    protected $contextPrefix;\n\n    /**\n     * @var int logstash format version to use\n     */\n    protected $version;\n\n    /**\n     * @param string $applicationName the application that sends the data, used as the \"type\" field of logstash\n     * @param string $systemName      the system/machine name, used as the \"source\" field of logstash, defaults to the hostname of the machine\n     * @param string $extraPrefix     prefix for extra keys inside logstash \"fields\"\n     * @param string $contextPrefix   prefix for context keys inside logstash \"fields\", defaults to ctxt_\n     * @param int    $version         the logstash format version to use, defaults to 0\n     */\n    public function __construct($applicationName, $systemName = null, $extraPrefix = null, $contextPrefix = 'ctxt_', $version = self::V0)\n    {\n        // logstash requires a ISO 8601 format date with optional millisecond precision.\n        parent::__construct('Y-m-d\\TH:i:s.uP');\n\n        $this->systemName = $systemName ?: gethostname();\n        $this->applicationName = $applicationName;\n        $this->extraPrefix = $extraPrefix;\n        $this->contextPrefix = $contextPrefix;\n        $this->version = $version;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        $record = parent::format($record);\n\n        if ($this->version === self::V1) {\n            $message = $this->formatV1($record);\n        } else {\n            $message = $this->formatV0($record);\n        }\n\n        return $this->toJson($message) . \"\\n\";\n    }\n\n    protected function formatV0(array $record)\n    {\n        if (empty($record['datetime'])) {\n            $record['datetime'] = gmdate('c');\n        }\n        $message = array(\n            '@timestamp' => $record['datetime'],\n            '@source' => $this->systemName,\n            '@fields' => array(),\n        );\n        if (isset($record['message'])) {\n            $message['@message'] = $record['message'];\n        }\n        if (isset($record['channel'])) {\n            $message['@tags'] = array($record['channel']);\n            $message['@fields']['channel'] = $record['channel'];\n        }\n        if (isset($record['level'])) {\n            $message['@fields']['level'] = $record['level'];\n        }\n        if ($this->applicationName) {\n            $message['@type'] = $this->applicationName;\n        }\n        if (isset($record['extra']['server'])) {\n            $message['@source_host'] = $record['extra']['server'];\n        }\n        if (isset($record['extra']['url'])) {\n            $message['@source_path'] = $record['extra']['url'];\n        }\n        if (!empty($record['extra'])) {\n            foreach ($record['extra'] as $key => $val) {\n                $message['@fields'][$this->extraPrefix . $key] = $val;\n            }\n        }\n        if (!empty($record['context'])) {\n            foreach ($record['context'] as $key => $val) {\n                $message['@fields'][$this->contextPrefix . $key] = $val;\n            }\n        }\n\n        return $message;\n    }\n\n    protected function formatV1(array $record)\n    {\n        if (empty($record['datetime'])) {\n            $record['datetime'] = gmdate('c');\n        }\n        $message = array(\n            '@timestamp' => $record['datetime'],\n            '@version' => 1,\n            'host' => $this->systemName,\n        );\n        if (isset($record['message'])) {\n            $message['message'] = $record['message'];\n        }\n        if (isset($record['channel'])) {\n            $message['type'] = $record['channel'];\n            $message['channel'] = $record['channel'];\n        }\n        if (isset($record['level_name'])) {\n            $message['level'] = $record['level_name'];\n        }\n        if ($this->applicationName) {\n            $message['type'] = $this->applicationName;\n        }\n        if (!empty($record['extra'])) {\n            foreach ($record['extra'] as $key => $val) {\n                $message[$this->extraPrefix . $key] = $val;\n            }\n        }\n        if (!empty($record['context'])) {\n            foreach ($record['context'] as $key => $val) {\n                $message[$this->contextPrefix . $key] = $val;\n            }\n        }\n\n        return $message;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Utils;\n\n/**\n * Formats a record for use with the MongoDBHandler.\n *\n * @author Florian Plattner <me@florianplattner.de>\n */\nclass MongoDBFormatter implements FormatterInterface\n{\n    private $exceptionTraceAsString;\n    private $maxNestingLevel;\n\n    /**\n     * @param int  $maxNestingLevel        0 means infinite nesting, the $record itself is level 1, $record['context'] is 2\n     * @param bool $exceptionTraceAsString set to false to log exception traces as a sub documents instead of strings\n     */\n    public function __construct($maxNestingLevel = 3, $exceptionTraceAsString = true)\n    {\n        $this->maxNestingLevel = max($maxNestingLevel, 0);\n        $this->exceptionTraceAsString = (bool) $exceptionTraceAsString;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function format(array $record)\n    {\n        return $this->formatArray($record);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function formatBatch(array $records)\n    {\n        foreach ($records as $key => $record) {\n            $records[$key] = $this->format($record);\n        }\n\n        return $records;\n    }\n\n    protected function formatArray(array $record, $nestingLevel = 0)\n    {\n        if ($this->maxNestingLevel == 0 || $nestingLevel <= $this->maxNestingLevel) {\n            foreach ($record as $name => $value) {\n                if ($value instanceof \\DateTime) {\n                    $record[$name] = $this->formatDate($value, $nestingLevel + 1);\n                } elseif ($value instanceof \\Exception) {\n                    $record[$name] = $this->formatException($value, $nestingLevel + 1);\n                } elseif (is_array($value)) {\n                    $record[$name] = $this->formatArray($value, $nestingLevel + 1);\n                } elseif (is_object($value)) {\n                    $record[$name] = $this->formatObject($value, $nestingLevel + 1);\n                }\n            }\n        } else {\n            $record = '[...]';\n        }\n\n        return $record;\n    }\n\n    protected function formatObject($value, $nestingLevel)\n    {\n        $objectVars = get_object_vars($value);\n        $objectVars['class'] = Utils::getClass($value);\n\n        return $this->formatArray($objectVars, $nestingLevel);\n    }\n\n    protected function formatException(\\Exception $exception, $nestingLevel)\n    {\n        $formattedException = array(\n            'class' => Utils::getClass($exception),\n            'message' => $exception->getMessage(),\n            'code' => $exception->getCode(),\n            'file' => $exception->getFile() . ':' . $exception->getLine(),\n        );\n\n        if ($this->exceptionTraceAsString === true) {\n            $formattedException['trace'] = $exception->getTraceAsString();\n        } else {\n            $formattedException['trace'] = $exception->getTrace();\n        }\n\n        return $this->formatArray($formattedException, $nestingLevel);\n    }\n\n    protected function formatDate(\\DateTime $value, $nestingLevel)\n    {\n        return new \\MongoDate($value->getTimestamp());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Exception;\nuse Monolog\\Utils;\n\n/**\n * Normalizes incoming records to remove objects/resources so it's easier to dump to various targets\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass NormalizerFormatter implements FormatterInterface\n{\n    const SIMPLE_DATE = \"Y-m-d H:i:s\";\n\n    protected $dateFormat;\n\n    /**\n     * @param string $dateFormat The format of the timestamp: one supported by DateTime::format\n     */\n    public function __construct($dateFormat = null)\n    {\n        $this->dateFormat = $dateFormat ?: static::SIMPLE_DATE;\n        if (!function_exists('json_encode')) {\n            throw new \\RuntimeException('PHP\\'s json extension is required to use Monolog\\'s NormalizerFormatter');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        return $this->normalize($record);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function formatBatch(array $records)\n    {\n        foreach ($records as $key => $record) {\n            $records[$key] = $this->format($record);\n        }\n\n        return $records;\n    }\n\n    protected function normalize($data, $depth = 0)\n    {\n        if ($depth > 9) {\n            return 'Over 9 levels deep, aborting normalization';\n        }\n\n        if (null === $data || is_scalar($data)) {\n            if (is_float($data)) {\n                if (is_infinite($data)) {\n                    return ($data > 0 ? '' : '-') . 'INF';\n                }\n                if (is_nan($data)) {\n                    return 'NaN';\n                }\n            }\n\n            return $data;\n        }\n\n        if (is_array($data)) {\n            $normalized = array();\n\n            $count = 1;\n            foreach ($data as $key => $value) {\n                if ($count++ > 1000) {\n                    $normalized['...'] = 'Over 1000 items ('.count($data).' total), aborting normalization';\n                    break;\n                }\n\n                $normalized[$key] = $this->normalize($value, $depth+1);\n            }\n\n            return $normalized;\n        }\n\n        if ($data instanceof \\DateTime) {\n            return $data->format($this->dateFormat);\n        }\n\n        if (is_object($data)) {\n            // TODO 2.0 only check for Throwable\n            if ($data instanceof Exception || (PHP_VERSION_ID > 70000 && $data instanceof \\Throwable)) {\n                return $this->normalizeException($data);\n            }\n\n            // non-serializable objects that implement __toString stringified\n            if (method_exists($data, '__toString') && !$data instanceof \\JsonSerializable) {\n                $value = $data->__toString();\n            } else {\n                // the rest is json-serialized in some way\n                $value = $this->toJson($data, true);\n            }\n\n            return sprintf(\"[object] (%s: %s)\", Utils::getClass($data), $value);\n        }\n\n        if (is_resource($data)) {\n            return sprintf('[resource] (%s)', get_resource_type($data));\n        }\n\n        return '[unknown('.gettype($data).')]';\n    }\n\n    protected function normalizeException($e)\n    {\n        // TODO 2.0 only check for Throwable\n        if (!$e instanceof Exception && !$e instanceof \\Throwable) {\n            throw new \\InvalidArgumentException('Exception/Throwable expected, got '.gettype($e).' / '.Utils::getClass($e));\n        }\n\n        $data = array(\n            'class' => Utils::getClass($e),\n            'message' => $e->getMessage(),\n            'code' => $e->getCode(),\n            'file' => $e->getFile().':'.$e->getLine(),\n        );\n\n        if ($e instanceof \\SoapFault) {\n            if (isset($e->faultcode)) {\n                $data['faultcode'] = $e->faultcode;\n            }\n\n            if (isset($e->faultactor)) {\n                $data['faultactor'] = $e->faultactor;\n            }\n\n            if (isset($e->detail)) {\n                $data['detail'] = $e->detail;\n            }\n        }\n\n        $trace = $e->getTrace();\n        foreach ($trace as $frame) {\n            if (isset($frame['file'])) {\n                $data['trace'][] = $frame['file'].':'.$frame['line'];\n            } elseif (isset($frame['function']) && $frame['function'] === '{closure}') {\n                // Simplify closures handling\n                $data['trace'][] = $frame['function'];\n            } else {\n                if (isset($frame['args'])) {\n                    // Make sure that objects present as arguments are not serialized nicely but rather only\n                    // as a class name to avoid any unexpected leak of sensitive information\n                    $frame['args'] = array_map(function ($arg) {\n                        if (is_object($arg) && !($arg instanceof \\DateTime || $arg instanceof \\DateTimeInterface)) {\n                            return sprintf(\"[object] (%s)\", Utils::getClass($arg));\n                        }\n\n                        return $arg;\n                    }, $frame['args']);\n                }\n                // We should again normalize the frames, because it might contain invalid items\n                $data['trace'][] = $this->toJson($this->normalize($frame), true);\n            }\n        }\n\n        if ($previous = $e->getPrevious()) {\n            $data['previous'] = $this->normalizeException($previous);\n        }\n\n        return $data;\n    }\n\n    /**\n     * Return the JSON representation of a value\n     *\n     * @param  mixed             $data\n     * @param  bool              $ignoreErrors\n     * @throws \\RuntimeException if encoding fails and errors are not ignored\n     * @return string\n     */\n    protected function toJson($data, $ignoreErrors = false)\n    {\n        // suppress json_encode errors since it's twitchy with some inputs\n        if ($ignoreErrors) {\n            return @$this->jsonEncode($data);\n        }\n\n        $json = $this->jsonEncode($data);\n\n        if ($json === false) {\n            $json = $this->handleJsonError(json_last_error(), $data);\n        }\n\n        return $json;\n    }\n\n    /**\n     * @param  mixed  $data\n     * @return string JSON encoded data or null on failure\n     */\n    private function jsonEncode($data)\n    {\n        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {\n            return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);\n        }\n\n        return json_encode($data);\n    }\n\n    /**\n     * Handle a json_encode failure.\n     *\n     * If the failure is due to invalid string encoding, try to clean the\n     * input and encode again. If the second encoding attempt fails, the\n     * inital error is not encoding related or the input can't be cleaned then\n     * raise a descriptive exception.\n     *\n     * @param  int               $code return code of json_last_error function\n     * @param  mixed             $data data that was meant to be encoded\n     * @throws \\RuntimeException if failure can't be corrected\n     * @return string            JSON encoded data after error correction\n     */\n    private function handleJsonError($code, $data)\n    {\n        if ($code !== JSON_ERROR_UTF8) {\n            $this->throwEncodeError($code, $data);\n        }\n\n        if (is_string($data)) {\n            $this->detectAndCleanUtf8($data);\n        } elseif (is_array($data)) {\n            array_walk_recursive($data, array($this, 'detectAndCleanUtf8'));\n        } else {\n            $this->throwEncodeError($code, $data);\n        }\n\n        $json = $this->jsonEncode($data);\n\n        if ($json === false) {\n            $this->throwEncodeError(json_last_error(), $data);\n        }\n\n        return $json;\n    }\n\n    /**\n     * Throws an exception according to a given code with a customized message\n     *\n     * @param  int               $code return code of json_last_error function\n     * @param  mixed             $data data that was meant to be encoded\n     * @throws \\RuntimeException\n     */\n    private function throwEncodeError($code, $data)\n    {\n        switch ($code) {\n            case JSON_ERROR_DEPTH:\n                $msg = 'Maximum stack depth exceeded';\n                break;\n            case JSON_ERROR_STATE_MISMATCH:\n                $msg = 'Underflow or the modes mismatch';\n                break;\n            case JSON_ERROR_CTRL_CHAR:\n                $msg = 'Unexpected control character found';\n                break;\n            case JSON_ERROR_UTF8:\n                $msg = 'Malformed UTF-8 characters, possibly incorrectly encoded';\n                break;\n            default:\n                $msg = 'Unknown error';\n        }\n\n        throw new \\RuntimeException('JSON encoding failed: '.$msg.'. Encoding: '.var_export($data, true));\n    }\n\n    /**\n     * Detect invalid UTF-8 string characters and convert to valid UTF-8.\n     *\n     * Valid UTF-8 input will be left unmodified, but strings containing\n     * invalid UTF-8 codepoints will be reencoded as UTF-8 with an assumed\n     * original encoding of ISO-8859-15. This conversion may result in\n     * incorrect output if the actual encoding was not ISO-8859-15, but it\n     * will be clean UTF-8 output and will not rely on expensive and fragile\n     * detection algorithms.\n     *\n     * Function converts the input in place in the passed variable so that it\n     * can be used as a callback for array_walk_recursive.\n     *\n     * @param mixed &$data Input to check and convert if needed\n     * @private\n     */\n    public function detectAndCleanUtf8(&$data)\n    {\n        if (is_string($data) && !preg_match('//u', $data)) {\n            $data = preg_replace_callback(\n                '/[\\x80-\\xFF]+/',\n                function ($m) { return utf8_encode($m[0]); },\n                $data\n            );\n            $data = str_replace(\n                array('¤', '¦', '¨', '´', '¸', '¼', '½', '¾'),\n                array('€', 'Š', 'š', 'Ž', 'ž', 'Œ', 'œ', 'Ÿ'),\n                $data\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * Formats data into an associative array of scalar values.\n * Objects and arrays will be JSON encoded.\n *\n * @author Andrew Lawson <adlawson@gmail.com>\n */\nclass ScalarFormatter extends NormalizerFormatter\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        foreach ($record as $key => $value) {\n            $record[$key] = $this->normalizeValue($value);\n        }\n\n        return $record;\n    }\n\n    /**\n     * @param  mixed $value\n     * @return mixed\n     */\n    protected function normalizeValue($value)\n    {\n        $normalized = $this->normalize($value);\n\n        if (is_array($normalized) || is_object($normalized)) {\n            return $this->toJson($normalized, true);\n        }\n\n        return $normalized;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\n/**\n * Serializes a log message according to Wildfire's header requirements\n *\n * @author Eric Clemmons (@ericclemmons) <eric@uxdriven.com>\n * @author Christophe Coevoet <stof@notk.org>\n * @author Kirill chEbba Chebunin <iam@chebba.org>\n */\nclass WildfireFormatter extends NormalizerFormatter\n{\n    const TABLE = 'table';\n\n    /**\n     * Translates Monolog log levels to Wildfire levels.\n     */\n    private $logLevels = array(\n        Logger::DEBUG     => 'LOG',\n        Logger::INFO      => 'INFO',\n        Logger::NOTICE    => 'INFO',\n        Logger::WARNING   => 'WARN',\n        Logger::ERROR     => 'ERROR',\n        Logger::CRITICAL  => 'ERROR',\n        Logger::ALERT     => 'ERROR',\n        Logger::EMERGENCY => 'ERROR',\n    );\n\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $record)\n    {\n        // Retrieve the line and file if set and remove them from the formatted extra\n        $file = $line = '';\n        if (isset($record['extra']['file'])) {\n            $file = $record['extra']['file'];\n            unset($record['extra']['file']);\n        }\n        if (isset($record['extra']['line'])) {\n            $line = $record['extra']['line'];\n            unset($record['extra']['line']);\n        }\n\n        $record = $this->normalize($record);\n        $message = array('message' => $record['message']);\n        $handleError = false;\n        if ($record['context']) {\n            $message['context'] = $record['context'];\n            $handleError = true;\n        }\n        if ($record['extra']) {\n            $message['extra'] = $record['extra'];\n            $handleError = true;\n        }\n        if (count($message) === 1) {\n            $message = reset($message);\n        }\n\n        if (isset($record['context'][self::TABLE])) {\n            $type  = 'TABLE';\n            $label = $record['channel'] .': '. $record['message'];\n            $message = $record['context'][self::TABLE];\n        } else {\n            $type  = $this->logLevels[$record['level']];\n            $label = $record['channel'];\n        }\n\n        // Create JSON object describing the appearance of the message in the console\n        $json = $this->toJson(array(\n            array(\n                'Type'  => $type,\n                'File'  => $file,\n                'Line'  => $line,\n                'Label' => $label,\n            ),\n            $message,\n        ), $handleError);\n\n        // The message itself is a serialization of the above JSON object + it's length\n        return sprintf(\n            '%s|%s|',\n            strlen($json),\n            $json\n        );\n    }\n\n    public function formatBatch(array $records)\n    {\n        throw new \\BadMethodCallException('Batch formatting does not make sense for the WildfireFormatter');\n    }\n\n    protected function normalize($data, $depth = 0)\n    {\n        if (is_object($data) && !$data instanceof \\DateTime) {\n            return $data;\n        }\n\n        return parent::normalize($data, $depth);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\nuse Monolog\\ResettableInterface;\n\n/**\n * Base Handler class providing the Handler structure\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nabstract class AbstractHandler implements HandlerInterface, ResettableInterface\n{\n    protected $level = Logger::DEBUG;\n    protected $bubble = true;\n\n    /**\n     * @var FormatterInterface\n     */\n    protected $formatter;\n    protected $processors = array();\n\n    /**\n     * @param int  $level  The minimum logging level at which this handler will be triggered\n     * @param bool $bubble Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($level = Logger::DEBUG, $bubble = true)\n    {\n        $this->setLevel($level);\n        $this->bubble = $bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHandling(array $record)\n    {\n        return $record['level'] >= $this->level;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        foreach ($records as $record) {\n            $this->handle($record);\n        }\n    }\n\n    /**\n     * Closes the handler.\n     *\n     * This will be called automatically when the object is destroyed\n     */\n    public function close()\n    {\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function pushProcessor($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new \\InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given');\n        }\n        array_unshift($this->processors, $callback);\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function popProcessor()\n    {\n        if (!$this->processors) {\n            throw new \\LogicException('You tried to pop from an empty processor stack.');\n        }\n\n        return array_shift($this->processors);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        $this->formatter = $formatter;\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getFormatter()\n    {\n        if (!$this->formatter) {\n            $this->formatter = $this->getDefaultFormatter();\n        }\n\n        return $this->formatter;\n    }\n\n    /**\n     * Sets minimum logging level at which this handler will be triggered.\n     *\n     * @param  int|string $level Level or level name\n     * @return self\n     */\n    public function setLevel($level)\n    {\n        $this->level = Logger::toMonologLevel($level);\n\n        return $this;\n    }\n\n    /**\n     * Gets minimum logging level at which this handler will be triggered.\n     *\n     * @return int\n     */\n    public function getLevel()\n    {\n        return $this->level;\n    }\n\n    /**\n     * Sets the bubbling behavior.\n     *\n     * @param  bool $bubble true means that this handler allows bubbling.\n     *                      false means that bubbling is not permitted.\n     * @return self\n     */\n    public function setBubble($bubble)\n    {\n        $this->bubble = $bubble;\n\n        return $this;\n    }\n\n    /**\n     * Gets the bubbling behavior.\n     *\n     * @return bool true means that this handler allows bubbling.\n     *              false means that bubbling is not permitted.\n     */\n    public function getBubble()\n    {\n        return $this->bubble;\n    }\n\n    public function __destruct()\n    {\n        try {\n            $this->close();\n        } catch (\\Exception $e) {\n            // do nothing\n        } catch (\\Throwable $e) {\n            // do nothing\n        }\n    }\n\n    public function reset()\n    {\n        foreach ($this->processors as $processor) {\n            if ($processor instanceof ResettableInterface) {\n                $processor->reset();\n            }\n        }\n    }\n\n    /**\n     * Gets the default formatter.\n     *\n     * @return FormatterInterface\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\ResettableInterface;\n\n/**\n * Base Handler class providing the Handler structure\n *\n * Classes extending it should (in most cases) only implement write($record)\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n * @author Christophe Coevoet <stof@notk.org>\n */\nabstract class AbstractProcessingHandler extends AbstractHandler\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if (!$this->isHandling($record)) {\n            return false;\n        }\n\n        $record = $this->processRecord($record);\n\n        $record['formatted'] = $this->getFormatter()->format($record);\n\n        $this->write($record);\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * Writes the record down to the log of the implementing handler\n     *\n     * @param  array $record\n     * @return void\n     */\n    abstract protected function write(array $record);\n\n    /**\n     * Processes a record.\n     *\n     * @param  array $record\n     * @return array\n     */\n    protected function processRecord(array $record)\n    {\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\n\n/**\n * Common syslog functionality\n */\nabstract class AbstractSyslogHandler extends AbstractProcessingHandler\n{\n    protected $facility;\n\n    /**\n     * Translates Monolog log levels to syslog log priorities.\n     */\n    protected $logLevels = array(\n        Logger::DEBUG     => LOG_DEBUG,\n        Logger::INFO      => LOG_INFO,\n        Logger::NOTICE    => LOG_NOTICE,\n        Logger::WARNING   => LOG_WARNING,\n        Logger::ERROR     => LOG_ERR,\n        Logger::CRITICAL  => LOG_CRIT,\n        Logger::ALERT     => LOG_ALERT,\n        Logger::EMERGENCY => LOG_EMERG,\n    );\n\n    /**\n     * List of valid log facility names.\n     */\n    protected $facilities = array(\n        'auth'     => LOG_AUTH,\n        'authpriv' => LOG_AUTHPRIV,\n        'cron'     => LOG_CRON,\n        'daemon'   => LOG_DAEMON,\n        'kern'     => LOG_KERN,\n        'lpr'      => LOG_LPR,\n        'mail'     => LOG_MAIL,\n        'news'     => LOG_NEWS,\n        'syslog'   => LOG_SYSLOG,\n        'user'     => LOG_USER,\n        'uucp'     => LOG_UUCP,\n    );\n\n    /**\n     * @param mixed $facility\n     * @param int   $level The minimum logging level at which this handler will be triggered\n     * @param bool  $bubble Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($facility = LOG_USER, $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        if (!defined('PHP_WINDOWS_VERSION_BUILD')) {\n            $this->facilities['local0'] = LOG_LOCAL0;\n            $this->facilities['local1'] = LOG_LOCAL1;\n            $this->facilities['local2'] = LOG_LOCAL2;\n            $this->facilities['local3'] = LOG_LOCAL3;\n            $this->facilities['local4'] = LOG_LOCAL4;\n            $this->facilities['local5'] = LOG_LOCAL5;\n            $this->facilities['local6'] = LOG_LOCAL6;\n            $this->facilities['local7'] = LOG_LOCAL7;\n        } else {\n            $this->facilities['local0'] = 128; // LOG_LOCAL0\n            $this->facilities['local1'] = 136; // LOG_LOCAL1\n            $this->facilities['local2'] = 144; // LOG_LOCAL2\n            $this->facilities['local3'] = 152; // LOG_LOCAL3\n            $this->facilities['local4'] = 160; // LOG_LOCAL4\n            $this->facilities['local5'] = 168; // LOG_LOCAL5\n            $this->facilities['local6'] = 176; // LOG_LOCAL6\n            $this->facilities['local7'] = 184; // LOG_LOCAL7\n        }\n\n        // convert textual description of facility to syslog constant\n        if (array_key_exists(strtolower($facility), $this->facilities)) {\n            $facility = $this->facilities[strtolower($facility)];\n        } elseif (!in_array($facility, array_values($this->facilities), true)) {\n            throw new \\UnexpectedValueException('Unknown facility value \"'.$facility.'\" given');\n        }\n\n        $this->facility = $facility;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter('%channel%.%level_name%: %message% %context% %extra%');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\JsonFormatter;\nuse PhpAmqpLib\\Message\\AMQPMessage;\nuse PhpAmqpLib\\Channel\\AMQPChannel;\nuse AMQPExchange;\n\nclass AmqpHandler extends AbstractProcessingHandler\n{\n    /**\n     * @var AMQPExchange|AMQPChannel $exchange\n     */\n    protected $exchange;\n\n    /**\n     * @var string\n     */\n    protected $exchangeName;\n\n    /**\n     * @param AMQPExchange|AMQPChannel $exchange     AMQPExchange (php AMQP ext) or PHP AMQP lib channel, ready for use\n     * @param string                   $exchangeName\n     * @param int                      $level\n     * @param bool                     $bubble       Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($exchange, $exchangeName = 'log', $level = Logger::DEBUG, $bubble = true)\n    {\n        if ($exchange instanceof AMQPExchange) {\n            $exchange->setName($exchangeName);\n        } elseif ($exchange instanceof AMQPChannel) {\n            $this->exchangeName = $exchangeName;\n        } else {\n            throw new \\InvalidArgumentException('PhpAmqpLib\\Channel\\AMQPChannel or AMQPExchange instance required');\n        }\n        $this->exchange = $exchange;\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        $data = $record[\"formatted\"];\n        $routingKey = $this->getRoutingKey($record);\n\n        if ($this->exchange instanceof AMQPExchange) {\n            $this->exchange->publish(\n                $data,\n                $routingKey,\n                0,\n                array(\n                    'delivery_mode' => 2,\n                    'content_type' => 'application/json',\n                )\n            );\n        } else {\n            $this->exchange->basic_publish(\n                $this->createAmqpMessage($data),\n                $this->exchangeName,\n                $routingKey\n            );\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function handleBatch(array $records)\n    {\n        if ($this->exchange instanceof AMQPExchange) {\n            parent::handleBatch($records);\n\n            return;\n        }\n\n        foreach ($records as $record) {\n            if (!$this->isHandling($record)) {\n                continue;\n            }\n\n            $record = $this->processRecord($record);\n            $data = $this->getFormatter()->format($record);\n\n            $this->exchange->batch_basic_publish(\n                $this->createAmqpMessage($data),\n                $this->exchangeName,\n                $this->getRoutingKey($record)\n            );\n        }\n\n        $this->exchange->publish_batch();\n    }\n\n    /**\n     * Gets the routing key for the AMQP exchange\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function getRoutingKey(array $record)\n    {\n        $routingKey = sprintf(\n            '%s.%s',\n            // TODO 2.0 remove substr call\n            substr($record['level_name'], 0, 4),\n            $record['channel']\n        );\n\n        return strtolower($routingKey);\n    }\n\n    /**\n     * @param  string      $data\n     * @return AMQPMessage\n     */\n    private function createAmqpMessage($data)\n    {\n        return new AMQPMessage(\n            (string) $data,\n            array(\n                'delivery_mode' => 2,\n                'content_type' => 'application/json',\n            )\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\n\n/**\n * Handler sending logs to browser's javascript console with no browser extension required\n *\n * @author Olivier Poitrey <rs@dailymotion.com>\n */\nclass BrowserConsoleHandler extends AbstractProcessingHandler\n{\n    protected static $initialized = false;\n    protected static $records = array();\n\n    /**\n     * {@inheritDoc}\n     *\n     * Formatted output may contain some formatting markers to be transferred to `console.log` using the %c format.\n     *\n     * Example of formatted string:\n     *\n     *     You can do [[blue text]]{color: blue} or [[green background]]{background-color: green; color: white}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter('[[%channel%]]{macro: autolabel} [[%level_name%]]{font-weight: bold} %message%');\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        // Accumulate records\n        static::$records[] = $record;\n\n        // Register shutdown handler if not already done\n        if (!static::$initialized) {\n            static::$initialized = true;\n            $this->registerShutdownFunction();\n        }\n    }\n\n    /**\n     * Convert records to javascript console commands and send it to the browser.\n     * This method is automatically called on PHP shutdown if output is HTML or Javascript.\n     */\n    public static function send()\n    {\n        $format = static::getResponseFormat();\n        if ($format === 'unknown') {\n            return;\n        }\n\n        if (count(static::$records)) {\n            if ($format === 'html') {\n                static::writeOutput('<script>' . static::generateScript() . '</script>');\n            } elseif ($format === 'js') {\n                static::writeOutput(static::generateScript());\n            }\n            static::resetStatic();\n        }\n    }\n\n    public function close()\n    {\n        self::resetStatic();\n    }\n\n    public function reset()\n    {\n        self::resetStatic();\n    }\n\n    /**\n     * Forget all logged records\n     */\n    public static function resetStatic()\n    {\n        static::$records = array();\n    }\n\n    /**\n     * Wrapper for register_shutdown_function to allow overriding\n     */\n    protected function registerShutdownFunction()\n    {\n        if (PHP_SAPI !== 'cli') {\n            register_shutdown_function(array('Monolog\\Handler\\BrowserConsoleHandler', 'send'));\n        }\n    }\n\n    /**\n     * Wrapper for echo to allow overriding\n     *\n     * @param string $str\n     */\n    protected static function writeOutput($str)\n    {\n        echo $str;\n    }\n\n    /**\n     * Checks the format of the response\n     *\n     * If Content-Type is set to application/javascript or text/javascript -> js\n     * If Content-Type is set to text/html, or is unset -> html\n     * If Content-Type is anything else -> unknown\n     *\n     * @return string One of 'js', 'html' or 'unknown'\n     */\n    protected static function getResponseFormat()\n    {\n        // Check content type\n        foreach (headers_list() as $header) {\n            if (stripos($header, 'content-type:') === 0) {\n                // This handler only works with HTML and javascript outputs\n                // text/javascript is obsolete in favour of application/javascript, but still used\n                if (stripos($header, 'application/javascript') !== false || stripos($header, 'text/javascript') !== false) {\n                    return 'js';\n                }\n                if (stripos($header, 'text/html') === false) {\n                    return 'unknown';\n                }\n                break;\n            }\n        }\n\n        return 'html';\n    }\n\n    private static function generateScript()\n    {\n        $script = array();\n        foreach (static::$records as $record) {\n            $context = static::dump('Context', $record['context']);\n            $extra = static::dump('Extra', $record['extra']);\n\n            if (empty($context) && empty($extra)) {\n                $script[] = static::call_array('log', static::handleStyles($record['formatted']));\n            } else {\n                $script = array_merge($script,\n                    array(static::call_array('groupCollapsed', static::handleStyles($record['formatted']))),\n                    $context,\n                    $extra,\n                    array(static::call('groupEnd'))\n                );\n            }\n        }\n\n        return \"(function (c) {if (c && c.groupCollapsed) {\\n\" . implode(\"\\n\", $script) . \"\\n}})(console);\";\n    }\n\n    private static function handleStyles($formatted)\n    {\n        $args = array(static::quote('font-weight: normal'));\n        $format = '%c' . $formatted;\n        preg_match_all('/\\[\\[(.*?)\\]\\]\\{([^}]*)\\}/s', $format, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);\n\n        foreach (array_reverse($matches) as $match) {\n            $args[] = static::quote(static::handleCustomStyles($match[2][0], $match[1][0]));\n            $args[] = '\"font-weight: normal\"';\n\n            $pos = $match[0][1];\n            $format = substr($format, 0, $pos) . '%c' . $match[1][0] . '%c' . substr($format, $pos + strlen($match[0][0]));\n        }\n\n        array_unshift($args, static::quote($format));\n\n        return $args;\n    }\n\n    private static function handleCustomStyles($style, $string)\n    {\n        static $colors = array('blue', 'green', 'red', 'magenta', 'orange', 'black', 'grey');\n        static $labels = array();\n\n        return preg_replace_callback('/macro\\s*:(.*?)(?:;|$)/', function ($m) use ($string, &$colors, &$labels) {\n            if (trim($m[1]) === 'autolabel') {\n                // Format the string as a label with consistent auto assigned background color\n                if (!isset($labels[$string])) {\n                    $labels[$string] = $colors[count($labels) % count($colors)];\n                }\n                $color = $labels[$string];\n\n                return \"background-color: $color; color: white; border-radius: 3px; padding: 0 2px 0 2px\";\n            }\n\n            return $m[1];\n        }, $style);\n    }\n\n    private static function dump($title, array $dict)\n    {\n        $script = array();\n        $dict = array_filter($dict);\n        if (empty($dict)) {\n            return $script;\n        }\n        $script[] = static::call('log', static::quote('%c%s'), static::quote('font-weight: bold'), static::quote($title));\n        foreach ($dict as $key => $value) {\n            $value = json_encode($value);\n            if (empty($value)) {\n                $value = static::quote('');\n            }\n            $script[] = static::call('log', static::quote('%s: %o'), static::quote($key), $value);\n        }\n\n        return $script;\n    }\n\n    private static function quote($arg)\n    {\n        return '\"' . addcslashes($arg, \"\\\"\\n\\\\\") . '\"';\n    }\n\n    private static function call()\n    {\n        $args = func_get_args();\n        $method = array_shift($args);\n\n        return static::call_array($method, $args);\n    }\n\n    private static function call_array($method, array $args)\n    {\n        return 'c.' . $method . '(' . implode(', ', $args) . ');';\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\ResettableInterface;\n\n/**\n * Buffers all records until closing the handler and then pass them as batch.\n *\n * This is useful for a MailHandler to send only one mail per request instead of\n * sending one per log message.\n *\n * @author Christophe Coevoet <stof@notk.org>\n */\nclass BufferHandler extends AbstractHandler\n{\n    protected $handler;\n    protected $bufferSize = 0;\n    protected $bufferLimit;\n    protected $flushOnOverflow;\n    protected $buffer = array();\n    protected $initialized = false;\n\n    /**\n     * @param HandlerInterface $handler         Handler.\n     * @param int              $bufferLimit     How many entries should be buffered at most, beyond that the oldest items are removed from the buffer.\n     * @param int              $level           The minimum logging level at which this handler will be triggered\n     * @param bool             $bubble          Whether the messages that are handled can bubble up the stack or not\n     * @param bool             $flushOnOverflow If true, the buffer is flushed when the max size has been reached, by default oldest entries are discarded\n     */\n    public function __construct(HandlerInterface $handler, $bufferLimit = 0, $level = Logger::DEBUG, $bubble = true, $flushOnOverflow = false)\n    {\n        parent::__construct($level, $bubble);\n        $this->handler = $handler;\n        $this->bufferLimit = (int) $bufferLimit;\n        $this->flushOnOverflow = $flushOnOverflow;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if ($record['level'] < $this->level) {\n            return false;\n        }\n\n        if (!$this->initialized) {\n            // __destructor() doesn't get called on Fatal errors\n            register_shutdown_function(array($this, 'close'));\n            $this->initialized = true;\n        }\n\n        if ($this->bufferLimit > 0 && $this->bufferSize === $this->bufferLimit) {\n            if ($this->flushOnOverflow) {\n                $this->flush();\n            } else {\n                array_shift($this->buffer);\n                $this->bufferSize--;\n            }\n        }\n\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        $this->buffer[] = $record;\n        $this->bufferSize++;\n\n        return false === $this->bubble;\n    }\n\n    public function flush()\n    {\n        if ($this->bufferSize === 0) {\n            return;\n        }\n\n        $this->handler->handleBatch($this->buffer);\n        $this->clear();\n    }\n\n    public function __destruct()\n    {\n        // suppress the parent behavior since we already have register_shutdown_function()\n        // to call close(), and the reference contained there will prevent this from being\n        // GC'd until the end of the request\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        $this->flush();\n    }\n\n    /**\n     * Clears the buffer without flushing any messages down to the wrapped handler.\n     */\n    public function clear()\n    {\n        $this->bufferSize = 0;\n        $this->buffer = array();\n    }\n\n    public function reset()\n    {\n        $this->flush();\n\n        parent::reset();\n\n        if ($this->handler instanceof ResettableInterface) {\n            $this->handler->reset();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\ChromePHPFormatter;\nuse Monolog\\Logger;\n\n/**\n * Handler sending logs to the ChromePHP extension (http://www.chromephp.com/)\n *\n * This also works out of the box with Firefox 43+\n *\n * @author Christophe Coevoet <stof@notk.org>\n */\nclass ChromePHPHandler extends AbstractProcessingHandler\n{\n    /**\n     * Version of the extension\n     */\n    const VERSION = '4.0';\n\n    /**\n     * Header name\n     */\n    const HEADER_NAME = 'X-ChromeLogger-Data';\n\n    /**\n     * Regular expression to detect supported browsers (matches any Chrome, or Firefox 43+)\n     */\n    const USER_AGENT_REGEX = '{\\b(?:Chrome/\\d+(?:\\.\\d+)*|HeadlessChrome|Firefox/(?:4[3-9]|[5-9]\\d|\\d{3,})(?:\\.\\d)*)\\b}';\n\n    protected static $initialized = false;\n\n    /**\n     * Tracks whether we sent too much data\n     *\n     * Chrome limits the headers to 256KB, so when we sent 240KB we stop sending\n     *\n     * @var bool\n     */\n    protected static $overflowed = false;\n\n    protected static $json = array(\n        'version' => self::VERSION,\n        'columns' => array('label', 'log', 'backtrace', 'type'),\n        'rows' => array(),\n    );\n\n    protected static $sendHeaders = true;\n\n    /**\n     * @param int  $level  The minimum logging level at which this handler will be triggered\n     * @param bool $bubble Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n        if (!function_exists('json_encode')) {\n            throw new \\RuntimeException('PHP\\'s json extension is required to use Monolog\\'s ChromePHPHandler');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        $messages = array();\n\n        foreach ($records as $record) {\n            if ($record['level'] < $this->level) {\n                continue;\n            }\n            $messages[] = $this->processRecord($record);\n        }\n\n        if (!empty($messages)) {\n            $messages = $this->getFormatter()->formatBatch($messages);\n            self::$json['rows'] = array_merge(self::$json['rows'], $messages);\n            $this->send();\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new ChromePHPFormatter();\n    }\n\n    /**\n     * Creates & sends header for a record\n     *\n     * @see sendHeader()\n     * @see send()\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        self::$json['rows'][] = $record['formatted'];\n\n        $this->send();\n    }\n\n    /**\n     * Sends the log header\n     *\n     * @see sendHeader()\n     */\n    protected function send()\n    {\n        if (self::$overflowed || !self::$sendHeaders) {\n            return;\n        }\n\n        if (!self::$initialized) {\n            self::$initialized = true;\n\n            self::$sendHeaders = $this->headersAccepted();\n            if (!self::$sendHeaders) {\n                return;\n            }\n\n            self::$json['request_uri'] = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';\n        }\n\n        $json = @json_encode(self::$json);\n        $data = base64_encode(utf8_encode($json));\n        if (strlen($data) > 240 * 1024) {\n            self::$overflowed = true;\n\n            $record = array(\n                'message' => 'Incomplete logs, chrome header size limit reached',\n                'context' => array(),\n                'level' => Logger::WARNING,\n                'level_name' => Logger::getLevelName(Logger::WARNING),\n                'channel' => 'monolog',\n                'datetime' => new \\DateTime(),\n                'extra' => array(),\n            );\n            self::$json['rows'][count(self::$json['rows']) - 1] = $this->getFormatter()->format($record);\n            $json = @json_encode(self::$json);\n            $data = base64_encode(utf8_encode($json));\n        }\n\n        if (trim($data) !== '') {\n            $this->sendHeader(self::HEADER_NAME, $data);\n        }\n    }\n\n    /**\n     * Send header string to the client\n     *\n     * @param string $header\n     * @param string $content\n     */\n    protected function sendHeader($header, $content)\n    {\n        if (!headers_sent() && self::$sendHeaders) {\n            header(sprintf('%s: %s', $header, $content));\n        }\n    }\n\n    /**\n     * Verifies if the headers are accepted by the current user agent\n     *\n     * @return bool\n     */\n    protected function headersAccepted()\n    {\n        if (empty($_SERVER['HTTP_USER_AGENT'])) {\n            return false;\n        }\n\n        return preg_match(self::USER_AGENT_REGEX, $_SERVER['HTTP_USER_AGENT']);\n    }\n\n    /**\n     * BC getter for the sendHeaders property that has been made static\n     */\n    public function __get($property)\n    {\n        if ('sendHeaders' !== $property) {\n            throw new \\InvalidArgumentException('Undefined property '.$property);\n        }\n\n        return static::$sendHeaders;\n    }\n\n    /**\n     * BC setter for the sendHeaders property that has been made static\n     */\n    public function __set($property, $value)\n    {\n        if ('sendHeaders' !== $property) {\n            throw new \\InvalidArgumentException('Undefined property '.$property);\n        }\n\n        static::$sendHeaders = $value;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\JsonFormatter;\nuse Monolog\\Logger;\n\n/**\n * CouchDB handler\n *\n * @author Markus Bachmann <markus.bachmann@bachi.biz>\n */\nclass CouchDBHandler extends AbstractProcessingHandler\n{\n    private $options;\n\n    public function __construct(array $options = array(), $level = Logger::DEBUG, $bubble = true)\n    {\n        $this->options = array_merge(array(\n            'host'     => 'localhost',\n            'port'     => 5984,\n            'dbname'   => 'logger',\n            'username' => null,\n            'password' => null,\n        ), $options);\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        $basicAuth = null;\n        if ($this->options['username']) {\n            $basicAuth = sprintf('%s:%s@', $this->options['username'], $this->options['password']);\n        }\n\n        $url = 'http://'.$basicAuth.$this->options['host'].':'.$this->options['port'].'/'.$this->options['dbname'];\n        $context = stream_context_create(array(\n            'http' => array(\n                'method'        => 'POST',\n                'content'       => $record['formatted'],\n                'ignore_errors' => true,\n                'max_redirects' => 0,\n                'header'        => 'Content-type: application/json',\n            ),\n        ));\n\n        if (false === @file_get_contents($url, null, $context)) {\n            throw new \\RuntimeException(sprintf('Could not connect to %s', $url));\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Logs to Cube.\n *\n * @link http://square.github.com/cube/\n * @author Wan Chen <kami@kamisama.me>\n */\nclass CubeHandler extends AbstractProcessingHandler\n{\n    private $udpConnection;\n    private $httpConnection;\n    private $scheme;\n    private $host;\n    private $port;\n    private $acceptedSchemes = array('http', 'udp');\n\n    /**\n     * Create a Cube handler\n     *\n     * @throws \\UnexpectedValueException when given url is not a valid url.\n     *                                   A valid url must consist of three parts : protocol://host:port\n     *                                   Only valid protocols used by Cube are http and udp\n     */\n    public function __construct($url, $level = Logger::DEBUG, $bubble = true)\n    {\n        $urlInfo = parse_url($url);\n\n        if (!isset($urlInfo['scheme'], $urlInfo['host'], $urlInfo['port'])) {\n            throw new \\UnexpectedValueException('URL \"'.$url.'\" is not valid');\n        }\n\n        if (!in_array($urlInfo['scheme'], $this->acceptedSchemes)) {\n            throw new \\UnexpectedValueException(\n                'Invalid protocol (' . $urlInfo['scheme']  . ').'\n                . ' Valid options are ' . implode(', ', $this->acceptedSchemes));\n        }\n\n        $this->scheme = $urlInfo['scheme'];\n        $this->host = $urlInfo['host'];\n        $this->port = $urlInfo['port'];\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * Establish a connection to an UDP socket\n     *\n     * @throws \\LogicException           when unable to connect to the socket\n     * @throws MissingExtensionException when there is no socket extension\n     */\n    protected function connectUdp()\n    {\n        if (!extension_loaded('sockets')) {\n            throw new MissingExtensionException('The sockets extension is required to use udp URLs with the CubeHandler');\n        }\n\n        $this->udpConnection = socket_create(AF_INET, SOCK_DGRAM, 0);\n        if (!$this->udpConnection) {\n            throw new \\LogicException('Unable to create a socket');\n        }\n\n        if (!socket_connect($this->udpConnection, $this->host, $this->port)) {\n            throw new \\LogicException('Unable to connect to the socket at ' . $this->host . ':' . $this->port);\n        }\n    }\n\n    /**\n     * Establish a connection to a http server\n     * @throws \\LogicException when no curl extension\n     */\n    protected function connectHttp()\n    {\n        if (!extension_loaded('curl')) {\n            throw new \\LogicException('The curl extension is needed to use http URLs with the CubeHandler');\n        }\n\n        $this->httpConnection = curl_init('http://'.$this->host.':'.$this->port.'/1.0/event/put');\n\n        if (!$this->httpConnection) {\n            throw new \\LogicException('Unable to connect to ' . $this->host . ':' . $this->port);\n        }\n\n        curl_setopt($this->httpConnection, CURLOPT_CUSTOMREQUEST, \"POST\");\n        curl_setopt($this->httpConnection, CURLOPT_RETURNTRANSFER, true);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $date = $record['datetime'];\n\n        $data = array('time' => $date->format('Y-m-d\\TH:i:s.uO'));\n        unset($record['datetime']);\n\n        if (isset($record['context']['type'])) {\n            $data['type'] = $record['context']['type'];\n            unset($record['context']['type']);\n        } else {\n            $data['type'] = $record['channel'];\n        }\n\n        $data['data'] = $record['context'];\n        $data['data']['level'] = $record['level'];\n\n        if ($this->scheme === 'http') {\n            $this->writeHttp(json_encode($data));\n        } else {\n            $this->writeUdp(json_encode($data));\n        }\n    }\n\n    private function writeUdp($data)\n    {\n        if (!$this->udpConnection) {\n            $this->connectUdp();\n        }\n\n        socket_send($this->udpConnection, $data, strlen($data), 0);\n    }\n\n    private function writeHttp($data)\n    {\n        if (!$this->httpConnection) {\n            $this->connectHttp();\n        }\n\n        curl_setopt($this->httpConnection, CURLOPT_POSTFIELDS, '['.$data.']');\n        curl_setopt($this->httpConnection, CURLOPT_HTTPHEADER, array(\n            'Content-Type: application/json',\n            'Content-Length: ' . strlen('['.$data.']'),\n        ));\n\n        Curl\\Util::execute($this->httpConnection, 5, false);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\Curl;\n\nclass Util\n{\n    private static $retriableErrorCodes = array(\n        CURLE_COULDNT_RESOLVE_HOST,\n        CURLE_COULDNT_CONNECT,\n        CURLE_HTTP_NOT_FOUND,\n        CURLE_READ_ERROR,\n        CURLE_OPERATION_TIMEOUTED,\n        CURLE_HTTP_POST_ERROR,\n        CURLE_SSL_CONNECT_ERROR,\n    );\n\n    /**\n     * Executes a CURL request with optional retries and exception on failure\n     *\n     * @param  resource          $ch curl handler\n     * @throws \\RuntimeException\n     */\n    public static function execute($ch, $retries = 5, $closeAfterDone = true)\n    {\n        while ($retries--) {\n            if (curl_exec($ch) === false) {\n                $curlErrno = curl_errno($ch);\n\n                if (false === in_array($curlErrno, self::$retriableErrorCodes, true) || !$retries) {\n                    $curlError = curl_error($ch);\n\n                    if ($closeAfterDone) {\n                        curl_close($ch);\n                    }\n\n                    throw new \\RuntimeException(sprintf('Curl error (code %s): %s', $curlErrno, $curlError));\n                }\n\n                continue;\n            }\n\n            if ($closeAfterDone) {\n                curl_close($ch);\n            }\n            break;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Simple handler wrapper that deduplicates log records across multiple requests\n *\n * It also includes the BufferHandler functionality and will buffer\n * all messages until the end of the request or flush() is called.\n *\n * This works by storing all log records' messages above $deduplicationLevel\n * to the file specified by $deduplicationStore. When further logs come in at the end of the\n * request (or when flush() is called), all those above $deduplicationLevel are checked\n * against the existing stored logs. If they match and the timestamps in the stored log is\n * not older than $time seconds, the new log record is discarded. If no log record is new, the\n * whole data set is discarded.\n *\n * This is mainly useful in combination with Mail handlers or things like Slack or HipChat handlers\n * that send messages to people, to avoid spamming with the same message over and over in case of\n * a major component failure like a database server being down which makes all requests fail in the\n * same way.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass DeduplicationHandler extends BufferHandler\n{\n    /**\n     * @var string\n     */\n    protected $deduplicationStore;\n\n    /**\n     * @var int\n     */\n    protected $deduplicationLevel;\n\n    /**\n     * @var int\n     */\n    protected $time;\n\n    /**\n     * @var bool\n     */\n    private $gc = false;\n\n    /**\n     * @param HandlerInterface $handler            Handler.\n     * @param string           $deduplicationStore The file/path where the deduplication log should be kept\n     * @param int              $deduplicationLevel The minimum logging level for log records to be looked at for deduplication purposes\n     * @param int              $time               The period (in seconds) during which duplicate entries should be suppressed after a given log is sent through\n     * @param bool             $bubble             Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(HandlerInterface $handler, $deduplicationStore = null, $deduplicationLevel = Logger::ERROR, $time = 60, $bubble = true)\n    {\n        parent::__construct($handler, 0, Logger::DEBUG, $bubble, false);\n\n        $this->deduplicationStore = $deduplicationStore === null ? sys_get_temp_dir() . '/monolog-dedup-' . substr(md5(__FILE__), 0, 20) .'.log' : $deduplicationStore;\n        $this->deduplicationLevel = Logger::toMonologLevel($deduplicationLevel);\n        $this->time = $time;\n    }\n\n    public function flush()\n    {\n        if ($this->bufferSize === 0) {\n            return;\n        }\n\n        $passthru = null;\n\n        foreach ($this->buffer as $record) {\n            if ($record['level'] >= $this->deduplicationLevel) {\n\n                $passthru = $passthru || !$this->isDuplicate($record);\n                if ($passthru) {\n                    $this->appendRecord($record);\n                }\n            }\n        }\n\n        // default of null is valid as well as if no record matches duplicationLevel we just pass through\n        if ($passthru === true || $passthru === null) {\n            $this->handler->handleBatch($this->buffer);\n        }\n\n        $this->clear();\n\n        if ($this->gc) {\n            $this->collectLogs();\n        }\n    }\n\n    private function isDuplicate(array $record)\n    {\n        if (!file_exists($this->deduplicationStore)) {\n            return false;\n        }\n\n        $store = file($this->deduplicationStore, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);\n        if (!is_array($store)) {\n            return false;\n        }\n\n        $yesterday = time() - 86400;\n        $timestampValidity = $record['datetime']->getTimestamp() - $this->time;\n        $expectedMessage = preg_replace('{[\\r\\n].*}', '', $record['message']);\n\n        for ($i = count($store) - 1; $i >= 0; $i--) {\n            list($timestamp, $level, $message) = explode(':', $store[$i], 3);\n\n            if ($level === $record['level_name'] && $message === $expectedMessage && $timestamp > $timestampValidity) {\n                return true;\n            }\n\n            if ($timestamp < $yesterday) {\n                $this->gc = true;\n            }\n        }\n\n        return false;\n    }\n\n    private function collectLogs()\n    {\n        if (!file_exists($this->deduplicationStore)) {\n            return false;\n        }\n\n        $handle = fopen($this->deduplicationStore, 'rw+');\n        flock($handle, LOCK_EX);\n        $validLogs = array();\n\n        $timestampValidity = time() - $this->time;\n\n        while (!feof($handle)) {\n            $log = fgets($handle);\n            if (substr($log, 0, 10) >= $timestampValidity) {\n                $validLogs[] = $log;\n            }\n        }\n\n        ftruncate($handle, 0);\n        rewind($handle);\n        foreach ($validLogs as $log) {\n            fwrite($handle, $log);\n        }\n\n        flock($handle, LOCK_UN);\n        fclose($handle);\n\n        $this->gc = false;\n    }\n\n    private function appendRecord(array $record)\n    {\n        file_put_contents($this->deduplicationStore, $record['datetime']->getTimestamp() . ':' . $record['level_name'] . ':' . preg_replace('{[\\r\\n].*}', '', $record['message']) . \"\\n\", FILE_APPEND);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\NormalizerFormatter;\nuse Doctrine\\CouchDB\\CouchDBClient;\n\n/**\n * CouchDB handler for Doctrine CouchDB ODM\n *\n * @author Markus Bachmann <markus.bachmann@bachi.biz>\n */\nclass DoctrineCouchDBHandler extends AbstractProcessingHandler\n{\n    private $client;\n\n    public function __construct(CouchDBClient $client, $level = Logger::DEBUG, $bubble = true)\n    {\n        $this->client = $client;\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        $this->client->postDocument($record['formatted']);\n    }\n\n    protected function getDefaultFormatter()\n    {\n        return new NormalizerFormatter;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Aws\\Sdk;\nuse Aws\\DynamoDb\\DynamoDbClient;\nuse Aws\\DynamoDb\\Marshaler;\nuse Monolog\\Formatter\\ScalarFormatter;\nuse Monolog\\Logger;\n\n/**\n * Amazon DynamoDB handler (http://aws.amazon.com/dynamodb/)\n *\n * @link https://github.com/aws/aws-sdk-php/\n * @author Andrew Lawson <adlawson@gmail.com>\n */\nclass DynamoDbHandler extends AbstractProcessingHandler\n{\n    const DATE_FORMAT = 'Y-m-d\\TH:i:s.uO';\n\n    /**\n     * @var DynamoDbClient\n     */\n    protected $client;\n\n    /**\n     * @var string\n     */\n    protected $table;\n\n    /**\n     * @var int\n     */\n    protected $version;\n\n    /**\n     * @var Marshaler\n     */\n    protected $marshaler;\n\n    /**\n     * @param DynamoDbClient $client\n     * @param string         $table\n     * @param int            $level\n     * @param bool           $bubble\n     */\n    public function __construct(DynamoDbClient $client, $table, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (defined('Aws\\Sdk::VERSION') && version_compare(Sdk::VERSION, '3.0', '>=')) {\n            $this->version = 3;\n            $this->marshaler = new Marshaler;\n        } else {\n            $this->version = 2;\n        }\n\n        $this->client = $client;\n        $this->table = $table;\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $filtered = $this->filterEmptyFields($record['formatted']);\n        if ($this->version === 3) {\n            $formatted = $this->marshaler->marshalItem($filtered);\n        } else {\n            $formatted = $this->client->formatAttributes($filtered);\n        }\n\n        $this->client->putItem(array(\n            'TableName' => $this->table,\n            'Item' => $formatted,\n        ));\n    }\n\n    /**\n     * @param  array $record\n     * @return array\n     */\n    protected function filterEmptyFields(array $record)\n    {\n        return array_filter($record, function ($value) {\n            return !empty($value) || false === $value || 0 === $value;\n        });\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new ScalarFormatter(self::DATE_FORMAT);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Formatter\\ElasticaFormatter;\nuse Monolog\\Logger;\nuse Elastica\\Client;\nuse Elastica\\Exception\\ExceptionInterface;\n\n/**\n * Elastic Search handler\n *\n * Usage example:\n *\n *    $client = new \\Elastica\\Client();\n *    $options = array(\n *        'index' => 'elastic_index_name',\n *        'type' => 'elastic_doc_type',\n *    );\n *    $handler = new ElasticSearchHandler($client, $options);\n *    $log = new Logger('application');\n *    $log->pushHandler($handler);\n *\n * @author Jelle Vink <jelle.vink@gmail.com>\n */\nclass ElasticSearchHandler extends AbstractProcessingHandler\n{\n    /**\n     * @var Client\n     */\n    protected $client;\n\n    /**\n     * @var array Handler config options\n     */\n    protected $options = array();\n\n    /**\n     * @param Client $client  Elastica Client object\n     * @param array  $options Handler configuration\n     * @param int    $level   The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble  Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(Client $client, array $options = array(), $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n        $this->client = $client;\n        $this->options = array_merge(\n            array(\n                'index'          => 'monolog',      // Elastic index name\n                'type'           => 'record',       // Elastic document type\n                'ignore_error'   => false,          // Suppress Elastica exceptions\n            ),\n            $options\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        $this->bulkSend(array($record['formatted']));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        if ($formatter instanceof ElasticaFormatter) {\n            return parent::setFormatter($formatter);\n        }\n        throw new \\InvalidArgumentException('ElasticSearchHandler is only compatible with ElasticaFormatter');\n    }\n\n    /**\n     * Getter options\n     * @return array\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new ElasticaFormatter($this->options['index'], $this->options['type']);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        $documents = $this->getFormatter()->formatBatch($records);\n        $this->bulkSend($documents);\n    }\n\n    /**\n     * Use Elasticsearch bulk API to send list of documents\n     * @param  array             $documents\n     * @throws \\RuntimeException\n     */\n    protected function bulkSend(array $documents)\n    {\n        try {\n            $this->client->addDocuments($documents);\n        } catch (ExceptionInterface $e) {\n            if (!$this->options['ignore_error']) {\n                throw new \\RuntimeException(\"Error sending messages to Elasticsearch\", 0, $e);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\n\n/**\n * Stores to PHP error_log() handler.\n *\n * @author Elan Ruusamäe <glen@delfi.ee>\n */\nclass ErrorLogHandler extends AbstractProcessingHandler\n{\n    const OPERATING_SYSTEM = 0;\n    const SAPI = 4;\n\n    protected $messageType;\n    protected $expandNewlines;\n\n    /**\n     * @param int  $messageType    Says where the error should go.\n     * @param int  $level          The minimum logging level at which this handler will be triggered\n     * @param bool $bubble         Whether the messages that are handled can bubble up the stack or not\n     * @param bool $expandNewlines If set to true, newlines in the message will be expanded to be take multiple log entries\n     */\n    public function __construct($messageType = self::OPERATING_SYSTEM, $level = Logger::DEBUG, $bubble = true, $expandNewlines = false)\n    {\n        parent::__construct($level, $bubble);\n\n        if (false === in_array($messageType, self::getAvailableTypes())) {\n            $message = sprintf('The given message type \"%s\" is not supported', print_r($messageType, true));\n            throw new \\InvalidArgumentException($message);\n        }\n\n        $this->messageType = $messageType;\n        $this->expandNewlines = $expandNewlines;\n    }\n\n    /**\n     * @return array With all available types\n     */\n    public static function getAvailableTypes()\n    {\n        return array(\n            self::OPERATING_SYSTEM,\n            self::SAPI,\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter('[%datetime%] %channel%.%level_name%: %message% %context% %extra%');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        if ($this->expandNewlines) {\n            $lines = preg_split('{[\\r\\n]+}', (string) $record['formatted']);\n            foreach ($lines as $line) {\n                error_log($line, $this->messageType);\n            }\n        } else {\n            error_log((string) $record['formatted'], $this->messageType);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Simple handler wrapper that filters records based on a list of levels\n *\n * It can be configured with an exact list of levels to allow, or a min/max level.\n *\n * @author Hennadiy Verkh\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass FilterHandler extends AbstractHandler\n{\n    /**\n     * Handler or factory callable($record, $this)\n     *\n     * @var callable|\\Monolog\\Handler\\HandlerInterface\n     */\n    protected $handler;\n\n    /**\n     * Minimum level for logs that are passed to handler\n     *\n     * @var int[]\n     */\n    protected $acceptedLevels;\n\n    /**\n     * Whether the messages that are handled can bubble up the stack or not\n     *\n     * @var bool\n     */\n    protected $bubble;\n\n    /**\n     * @param callable|HandlerInterface $handler        Handler or factory callable($record, $this).\n     * @param int|array                 $minLevelOrList A list of levels to accept or a minimum level if maxLevel is provided\n     * @param int                       $maxLevel       Maximum level to accept, only used if $minLevelOrList is not an array\n     * @param bool                      $bubble         Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($handler, $minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY, $bubble = true)\n    {\n        $this->handler  = $handler;\n        $this->bubble   = $bubble;\n        $this->setAcceptedLevels($minLevelOrList, $maxLevel);\n\n        if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) {\n            throw new \\RuntimeException(\"The given handler (\".json_encode($this->handler).\") is not a callable nor a Monolog\\Handler\\HandlerInterface object\");\n        }\n    }\n\n    /**\n     * @return array\n     */\n    public function getAcceptedLevels()\n    {\n        return array_flip($this->acceptedLevels);\n    }\n\n    /**\n     * @param int|string|array $minLevelOrList A list of levels to accept or a minimum level or level name if maxLevel is provided\n     * @param int|string       $maxLevel       Maximum level or level name to accept, only used if $minLevelOrList is not an array\n     */\n    public function setAcceptedLevels($minLevelOrList = Logger::DEBUG, $maxLevel = Logger::EMERGENCY)\n    {\n        if (is_array($minLevelOrList)) {\n            $acceptedLevels = array_map('Monolog\\Logger::toMonologLevel', $minLevelOrList);\n        } else {\n            $minLevelOrList = Logger::toMonologLevel($minLevelOrList);\n            $maxLevel = Logger::toMonologLevel($maxLevel);\n            $acceptedLevels = array_values(array_filter(Logger::getLevels(), function ($level) use ($minLevelOrList, $maxLevel) {\n                return $level >= $minLevelOrList && $level <= $maxLevel;\n            }));\n        }\n        $this->acceptedLevels = array_flip($acceptedLevels);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHandling(array $record)\n    {\n        return isset($this->acceptedLevels[$record['level']]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if (!$this->isHandling($record)) {\n            return false;\n        }\n\n        // The same logic as in FingersCrossedHandler\n        if (!$this->handler instanceof HandlerInterface) {\n            $this->handler = call_user_func($this->handler, $record, $this);\n            if (!$this->handler instanceof HandlerInterface) {\n                throw new \\RuntimeException(\"The factory callable should return a HandlerInterface\");\n            }\n        }\n\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        $this->handler->handle($record);\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        $filtered = array();\n        foreach ($records as $record) {\n            if ($this->isHandling($record)) {\n                $filtered[] = $record;\n            }\n        }\n\n        $this->handler->handleBatch($filtered);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\FingersCrossed;\n\n/**\n * Interface for activation strategies for the FingersCrossedHandler.\n *\n * @author Johannes M. Schmitt <schmittjoh@gmail.com>\n */\ninterface ActivationStrategyInterface\n{\n    /**\n     * Returns whether the given record activates the handler.\n     *\n     * @param  array   $record\n     * @return bool\n     */\n    public function isHandlerActivated(array $record);\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\FingersCrossed;\n\nuse Monolog\\Logger;\n\n/**\n * Channel and Error level based monolog activation strategy. Allows to trigger activation\n * based on level per channel. e.g. trigger activation on level 'ERROR' by default, except\n * for records of the 'sql' channel; those should trigger activation on level 'WARN'.\n *\n * Example:\n *\n * <code>\n *   $activationStrategy = new ChannelLevelActivationStrategy(\n *       Logger::CRITICAL,\n *       array(\n *           'request' => Logger::ALERT,\n *           'sensitive' => Logger::ERROR,\n *       )\n *   );\n *   $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy);\n * </code>\n *\n * @author Mike Meessen <netmikey@gmail.com>\n */\nclass ChannelLevelActivationStrategy implements ActivationStrategyInterface\n{\n    private $defaultActionLevel;\n    private $channelToActionLevel;\n\n    /**\n     * @param int   $defaultActionLevel   The default action level to be used if the record's category doesn't match any\n     * @param array $channelToActionLevel An array that maps channel names to action levels.\n     */\n    public function __construct($defaultActionLevel, $channelToActionLevel = array())\n    {\n        $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel);\n        $this->channelToActionLevel = array_map('Monolog\\Logger::toMonologLevel', $channelToActionLevel);\n    }\n\n    public function isHandlerActivated(array $record)\n    {\n        if (isset($this->channelToActionLevel[$record['channel']])) {\n            return $record['level'] >= $this->channelToActionLevel[$record['channel']];\n        }\n\n        return $record['level'] >= $this->defaultActionLevel;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\FingersCrossed;\n\nuse Monolog\\Logger;\n\n/**\n * Error level based activation strategy.\n *\n * @author Johannes M. Schmitt <schmittjoh@gmail.com>\n */\nclass ErrorLevelActivationStrategy implements ActivationStrategyInterface\n{\n    private $actionLevel;\n\n    public function __construct($actionLevel)\n    {\n        $this->actionLevel = Logger::toMonologLevel($actionLevel);\n    }\n\n    public function isHandlerActivated(array $record)\n    {\n        return $record['level'] >= $this->actionLevel;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy;\nuse Monolog\\Handler\\FingersCrossed\\ActivationStrategyInterface;\nuse Monolog\\Logger;\nuse Monolog\\ResettableInterface;\n\n/**\n * Buffers all records until a certain level is reached\n *\n * The advantage of this approach is that you don't get any clutter in your log files.\n * Only requests which actually trigger an error (or whatever your actionLevel is) will be\n * in the logs, but they will contain all records, not only those above the level threshold.\n *\n * You can find the various activation strategies in the\n * Monolog\\Handler\\FingersCrossed\\ namespace.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass FingersCrossedHandler extends AbstractHandler\n{\n    protected $handler;\n    protected $activationStrategy;\n    protected $buffering = true;\n    protected $bufferSize;\n    protected $buffer = array();\n    protected $stopBuffering;\n    protected $passthruLevel;\n\n    /**\n     * @param callable|HandlerInterface       $handler            Handler or factory callable($record, $fingersCrossedHandler).\n     * @param int|ActivationStrategyInterface $activationStrategy Strategy which determines when this handler takes action\n     * @param int                             $bufferSize         How many entries should be buffered at most, beyond that the oldest items are removed from the buffer.\n     * @param bool                            $bubble             Whether the messages that are handled can bubble up the stack or not\n     * @param bool                            $stopBuffering      Whether the handler should stop buffering after being triggered (default true)\n     * @param int                             $passthruLevel      Minimum level to always flush to handler on close, even if strategy not triggered\n     */\n    public function __construct($handler, $activationStrategy = null, $bufferSize = 0, $bubble = true, $stopBuffering = true, $passthruLevel = null)\n    {\n        if (null === $activationStrategy) {\n            $activationStrategy = new ErrorLevelActivationStrategy(Logger::WARNING);\n        }\n\n        // convert simple int activationStrategy to an object\n        if (!$activationStrategy instanceof ActivationStrategyInterface) {\n            $activationStrategy = new ErrorLevelActivationStrategy($activationStrategy);\n        }\n\n        $this->handler = $handler;\n        $this->activationStrategy = $activationStrategy;\n        $this->bufferSize = $bufferSize;\n        $this->bubble = $bubble;\n        $this->stopBuffering = $stopBuffering;\n\n        if ($passthruLevel !== null) {\n            $this->passthruLevel = Logger::toMonologLevel($passthruLevel);\n        }\n\n        if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) {\n            throw new \\RuntimeException(\"The given handler (\".json_encode($this->handler).\") is not a callable nor a Monolog\\Handler\\HandlerInterface object\");\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHandling(array $record)\n    {\n        return true;\n    }\n\n    /**\n     * Manually activate this logger regardless of the activation strategy\n     */\n    public function activate()\n    {\n        if ($this->stopBuffering) {\n            $this->buffering = false;\n        }\n        if (!$this->handler instanceof HandlerInterface) {\n            $record = end($this->buffer) ?: null;\n\n            $this->handler = call_user_func($this->handler, $record, $this);\n            if (!$this->handler instanceof HandlerInterface) {\n                throw new \\RuntimeException(\"The factory callable should return a HandlerInterface\");\n            }\n        }\n        $this->handler->handleBatch($this->buffer);\n        $this->buffer = array();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        if ($this->buffering) {\n            $this->buffer[] = $record;\n            if ($this->bufferSize > 0 && count($this->buffer) > $this->bufferSize) {\n                array_shift($this->buffer);\n            }\n            if ($this->activationStrategy->isHandlerActivated($record)) {\n                $this->activate();\n            }\n        } else {\n            $this->handler->handle($record);\n        }\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        $this->flushBuffer();\n    }\n\n    public function reset()\n    {\n        $this->flushBuffer();\n\n        parent::reset();\n\n        if ($this->handler instanceof ResettableInterface) {\n            $this->handler->reset();\n        }\n    }\n\n    /**\n     * Clears the buffer without flushing any messages down to the wrapped handler.\n     *\n     * It also resets the handler to its initial buffering state.\n     */\n    public function clear()\n    {\n        $this->buffer = array();\n        $this->reset();\n    }\n\n    /**\n     * Resets the state of the handler. Stops forwarding records to the wrapped handler.\n     */\n    private function flushBuffer()\n    {\n        if (null !== $this->passthruLevel) {\n            $level = $this->passthruLevel;\n            $this->buffer = array_filter($this->buffer, function ($record) use ($level) {\n                return $record['level'] >= $level;\n            });\n            if (count($this->buffer) > 0) {\n                $this->handler->handleBatch($this->buffer);\n            }\n        }\n\n        $this->buffer = array();\n        $this->buffering = true;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\WildfireFormatter;\n\n/**\n * Simple FirePHP Handler (http://www.firephp.org/), which uses the Wildfire protocol.\n *\n * @author Eric Clemmons (@ericclemmons) <eric@uxdriven.com>\n */\nclass FirePHPHandler extends AbstractProcessingHandler\n{\n    /**\n     * WildFire JSON header message format\n     */\n    const PROTOCOL_URI = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2';\n\n    /**\n     * FirePHP structure for parsing messages & their presentation\n     */\n    const STRUCTURE_URI = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1';\n\n    /**\n     * Must reference a \"known\" plugin, otherwise headers won't display in FirePHP\n     */\n    const PLUGIN_URI = 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3';\n\n    /**\n     * Header prefix for Wildfire to recognize & parse headers\n     */\n    const HEADER_PREFIX = 'X-Wf';\n\n    /**\n     * Whether or not Wildfire vendor-specific headers have been generated & sent yet\n     */\n    protected static $initialized = false;\n\n    /**\n     * Shared static message index between potentially multiple handlers\n     * @var int\n     */\n    protected static $messageIndex = 1;\n\n    protected static $sendHeaders = true;\n\n    /**\n     * Base header creation function used by init headers & record headers\n     *\n     * @param  array  $meta    Wildfire Plugin, Protocol & Structure Indexes\n     * @param  string $message Log message\n     * @return array  Complete header string ready for the client as key and message as value\n     */\n    protected function createHeader(array $meta, $message)\n    {\n        $header = sprintf('%s-%s', self::HEADER_PREFIX, join('-', $meta));\n\n        return array($header => $message);\n    }\n\n    /**\n     * Creates message header from record\n     *\n     * @see createHeader()\n     * @param  array  $record\n     * @return string\n     */\n    protected function createRecordHeader(array $record)\n    {\n        // Wildfire is extensible to support multiple protocols & plugins in a single request,\n        // but we're not taking advantage of that (yet), so we're using \"1\" for simplicity's sake.\n        return $this->createHeader(\n            array(1, 1, 1, self::$messageIndex++),\n            $record['formatted']\n        );\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new WildfireFormatter();\n    }\n\n    /**\n     * Wildfire initialization headers to enable message parsing\n     *\n     * @see createHeader()\n     * @see sendHeader()\n     * @return array\n     */\n    protected function getInitHeaders()\n    {\n        // Initial payload consists of required headers for Wildfire\n        return array_merge(\n            $this->createHeader(array('Protocol', 1), self::PROTOCOL_URI),\n            $this->createHeader(array(1, 'Structure', 1), self::STRUCTURE_URI),\n            $this->createHeader(array(1, 'Plugin', 1), self::PLUGIN_URI)\n        );\n    }\n\n    /**\n     * Send header string to the client\n     *\n     * @param string $header\n     * @param string $content\n     */\n    protected function sendHeader($header, $content)\n    {\n        if (!headers_sent() && self::$sendHeaders) {\n            header(sprintf('%s: %s', $header, $content));\n        }\n    }\n\n    /**\n     * Creates & sends header for a record, ensuring init headers have been sent prior\n     *\n     * @see sendHeader()\n     * @see sendInitHeaders()\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        if (!self::$sendHeaders) {\n            return;\n        }\n\n        // WildFire-specific headers must be sent prior to any messages\n        if (!self::$initialized) {\n            self::$initialized = true;\n\n            self::$sendHeaders = $this->headersAccepted();\n            if (!self::$sendHeaders) {\n                return;\n            }\n\n            foreach ($this->getInitHeaders() as $header => $content) {\n                $this->sendHeader($header, $content);\n            }\n        }\n\n        $header = $this->createRecordHeader($record);\n        if (trim(current($header)) !== '') {\n            $this->sendHeader(key($header), current($header));\n        }\n    }\n\n    /**\n     * Verifies if the headers are accepted by the current user agent\n     *\n     * @return bool\n     */\n    protected function headersAccepted()\n    {\n        if (!empty($_SERVER['HTTP_USER_AGENT']) && preg_match('{\\bFirePHP/\\d+\\.\\d+\\b}', $_SERVER['HTTP_USER_AGENT'])) {\n            return true;\n        }\n\n        return isset($_SERVER['HTTP_X_FIREPHP_VERSION']);\n    }\n\n    /**\n     * BC getter for the sendHeaders property that has been made static\n     */\n    public function __get($property)\n    {\n        if ('sendHeaders' !== $property) {\n            throw new \\InvalidArgumentException('Undefined property '.$property);\n        }\n\n        return static::$sendHeaders;\n    }\n\n    /**\n     * BC setter for the sendHeaders property that has been made static\n     */\n    public function __set($property, $value)\n    {\n        if ('sendHeaders' !== $property) {\n            throw new \\InvalidArgumentException('Undefined property '.$property);\n        }\n\n        static::$sendHeaders = $value;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\n\n/**\n * Sends logs to Fleep.io using Webhook integrations\n *\n * You'll need a Fleep.io account to use this handler.\n *\n * @see https://fleep.io/integrations/webhooks/ Fleep Webhooks Documentation\n * @author Ando Roots <ando@sqroot.eu>\n */\nclass FleepHookHandler extends SocketHandler\n{\n    const FLEEP_HOST = 'fleep.io';\n\n    const FLEEP_HOOK_URI = '/hook/';\n\n    /**\n     * @var string Webhook token (specifies the conversation where logs are sent)\n     */\n    protected $token;\n\n    /**\n     * Construct a new Fleep.io Handler.\n     *\n     * For instructions on how to create a new web hook in your conversations\n     * see https://fleep.io/integrations/webhooks/\n     *\n     * @param  string                    $token  Webhook token\n     * @param  bool|int                  $level  The minimum logging level at which this handler will be triggered\n     * @param  bool                      $bubble Whether the messages that are handled can bubble up the stack or not\n     * @throws MissingExtensionException\n     */\n    public function __construct($token, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (!extension_loaded('openssl')) {\n            throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FleepHookHandler');\n        }\n\n        $this->token = $token;\n\n        $connectionString = 'ssl://' . self::FLEEP_HOST . ':443';\n        parent::__construct($connectionString, $level, $bubble);\n    }\n\n    /**\n     * Returns the default formatter to use with this handler\n     *\n     * Overloaded to remove empty context and extra arrays from the end of the log message.\n     *\n     * @return LineFormatter\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter(null, null, true, true);\n    }\n\n    /**\n     * Handles a log record\n     *\n     * @param array $record\n     */\n    public function write(array $record)\n    {\n        parent::write($record);\n        $this->closeSocket();\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        $content = $this->buildContent($record);\n\n        return $this->buildHeader($content) . $content;\n    }\n\n    /**\n     * Builds the header of the API Call\n     *\n     * @param  string $content\n     * @return string\n     */\n    private function buildHeader($content)\n    {\n        $header = \"POST \" . self::FLEEP_HOOK_URI . $this->token . \" HTTP/1.1\\r\\n\";\n        $header .= \"Host: \" . self::FLEEP_HOST . \"\\r\\n\";\n        $header .= \"Content-Type: application/x-www-form-urlencoded\\r\\n\";\n        $header .= \"Content-Length: \" . strlen($content) . \"\\r\\n\";\n        $header .= \"\\r\\n\";\n\n        return $header;\n    }\n\n    /**\n     * Builds the body of API call\n     *\n     * @param  array  $record\n     * @return string\n     */\n    private function buildContent($record)\n    {\n        $dataArray = array(\n            'message' => $record['formatted'],\n        );\n\n        return http_build_query($dataArray);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\FlowdockFormatter;\nuse Monolog\\Formatter\\FormatterInterface;\n\n/**\n * Sends notifications through the Flowdock push API\n *\n * This must be configured with a FlowdockFormatter instance via setFormatter()\n *\n * Notes:\n * API token - Flowdock API token\n *\n * @author Dominik Liebler <liebler.dominik@gmail.com>\n * @see https://www.flowdock.com/api/push\n */\nclass FlowdockHandler extends SocketHandler\n{\n    /**\n     * @var string\n     */\n    protected $apiToken;\n\n    /**\n     * @param string   $apiToken\n     * @param bool|int $level    The minimum logging level at which this handler will be triggered\n     * @param bool     $bubble   Whether the messages that are handled can bubble up the stack or not\n     *\n     * @throws MissingExtensionException if OpenSSL is missing\n     */\n    public function __construct($apiToken, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (!extension_loaded('openssl')) {\n            throw new MissingExtensionException('The OpenSSL PHP extension is required to use the FlowdockHandler');\n        }\n\n        parent::__construct('ssl://api.flowdock.com:443', $level, $bubble);\n        $this->apiToken = $apiToken;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        if (!$formatter instanceof FlowdockFormatter) {\n            throw new \\InvalidArgumentException('The FlowdockHandler requires an instance of Monolog\\Formatter\\FlowdockFormatter to function correctly');\n        }\n\n        return parent::setFormatter($formatter);\n    }\n\n    /**\n     * Gets the default formatter.\n     *\n     * @return FormatterInterface\n     */\n    protected function getDefaultFormatter()\n    {\n        throw new \\InvalidArgumentException('The FlowdockHandler must be configured (via setFormatter) with an instance of Monolog\\Formatter\\FlowdockFormatter to function correctly');\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        parent::write($record);\n\n        $this->closeSocket();\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        $content = $this->buildContent($record);\n\n        return $this->buildHeader($content) . $content;\n    }\n\n    /**\n     * Builds the body of API call\n     *\n     * @param  array  $record\n     * @return string\n     */\n    private function buildContent($record)\n    {\n        return json_encode($record['formatted']['flowdock']);\n    }\n\n    /**\n     * Builds the header of the API Call\n     *\n     * @param  string $content\n     * @return string\n     */\n    private function buildHeader($content)\n    {\n        $header = \"POST /v1/messages/team_inbox/\" . $this->apiToken . \" HTTP/1.1\\r\\n\";\n        $header .= \"Host: api.flowdock.com\\r\\n\";\n        $header .= \"Content-Type: application/json\\r\\n\";\n        $header .= \"Content-Length: \" . strlen($content) . \"\\r\\n\";\n        $header .= \"\\r\\n\";\n\n        return $header;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Gelf\\IMessagePublisher;\nuse Gelf\\PublisherInterface;\nuse Gelf\\Publisher;\nuse InvalidArgumentException;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\GelfMessageFormatter;\n\n/**\n * Handler to send messages to a Graylog2 (http://www.graylog2.org) server\n *\n * @author Matt Lehner <mlehner@gmail.com>\n * @author Benjamin Zikarsky <benjamin@zikarsky.de>\n */\nclass GelfHandler extends AbstractProcessingHandler\n{\n    /**\n     * @var Publisher the publisher object that sends the message to the server\n     */\n    protected $publisher;\n\n    /**\n     * @param PublisherInterface|IMessagePublisher|Publisher $publisher a publisher object\n     * @param int                                            $level     The minimum logging level at which this handler will be triggered\n     * @param bool                                           $bubble    Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($publisher, $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        if (!$publisher instanceof Publisher && !$publisher instanceof IMessagePublisher && !$publisher instanceof PublisherInterface) {\n            throw new InvalidArgumentException('Invalid publisher, expected a Gelf\\Publisher, Gelf\\IMessagePublisher or Gelf\\PublisherInterface instance');\n        }\n\n        $this->publisher = $publisher;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $this->publisher->publish($record['formatted']);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new GelfMessageFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\ResettableInterface;\n\n/**\n * Forwards records to multiple handlers\n *\n * @author Lenar Lõhmus <lenar@city.ee>\n */\nclass GroupHandler extends AbstractHandler\n{\n    protected $handlers;\n\n    /**\n     * @param array $handlers Array of Handlers.\n     * @param bool  $bubble   Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(array $handlers, $bubble = true)\n    {\n        foreach ($handlers as $handler) {\n            if (!$handler instanceof HandlerInterface) {\n                throw new \\InvalidArgumentException('The first argument of the GroupHandler must be an array of HandlerInterface instances.');\n            }\n        }\n\n        $this->handlers = $handlers;\n        $this->bubble = $bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHandling(array $record)\n    {\n        foreach ($this->handlers as $handler) {\n            if ($handler->isHandling($record)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        foreach ($this->handlers as $handler) {\n            $handler->handle($record);\n        }\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        if ($this->processors) {\n            $processed = array();\n            foreach ($records as $record) {\n                foreach ($this->processors as $processor) {\n                    $processed[] = call_user_func($processor, $record);\n                }\n            }\n            $records = $processed;\n        }\n\n        foreach ($this->handlers as $handler) {\n            $handler->handleBatch($records);\n        }\n    }\n\n    public function reset()\n    {\n        parent::reset();\n\n        foreach ($this->handlers as $handler) {\n            if ($handler instanceof ResettableInterface) {\n                $handler->reset();\n            }\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        foreach ($this->handlers as $handler) {\n            $handler->setFormatter($formatter);\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\n\n/**\n * Interface that all Monolog Handlers must implement\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\ninterface HandlerInterface\n{\n    /**\n     * Checks whether the given record will be handled by this handler.\n     *\n     * This is mostly done for performance reasons, to avoid calling processors for nothing.\n     *\n     * Handlers should still check the record levels within handle(), returning false in isHandling()\n     * is no guarantee that handle() will not be called, and isHandling() might not be called\n     * for a given record.\n     *\n     * @param array $record Partial log record containing only a level key\n     *\n     * @return bool\n     */\n    public function isHandling(array $record);\n\n    /**\n     * Handles a record.\n     *\n     * All records may be passed to this method, and the handler should discard\n     * those that it does not want to handle.\n     *\n     * The return value of this function controls the bubbling process of the handler stack.\n     * Unless the bubbling is interrupted (by returning true), the Logger class will keep on\n     * calling further handlers in the stack with a given log record.\n     *\n     * @param  array   $record The record to handle\n     * @return bool true means that this handler handled the record, and that bubbling is not permitted.\n     *                        false means the record was either not processed or that this handler allows bubbling.\n     */\n    public function handle(array $record);\n\n    /**\n     * Handles a set of records at once.\n     *\n     * @param array $records The records to handle (an array of record arrays)\n     */\n    public function handleBatch(array $records);\n\n    /**\n     * Adds a processor in the stack.\n     *\n     * @param  callable $callback\n     * @return self\n     */\n    public function pushProcessor($callback);\n\n    /**\n     * Removes the processor on top of the stack and returns it.\n     *\n     * @return callable\n     */\n    public function popProcessor();\n\n    /**\n     * Sets the formatter.\n     *\n     * @param  FormatterInterface $formatter\n     * @return self\n     */\n    public function setFormatter(FormatterInterface $formatter);\n\n    /**\n     * Gets the formatter.\n     *\n     * @return FormatterInterface\n     */\n    public function getFormatter();\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\ResettableInterface;\nuse Monolog\\Formatter\\FormatterInterface;\n\n/**\n * This simple wrapper class can be used to extend handlers functionality.\n *\n * Example: A custom filtering that can be applied to any handler.\n *\n * Inherit from this class and override handle() like this:\n *\n *   public function handle(array $record)\n *   {\n *        if ($record meets certain conditions) {\n *            return false;\n *        }\n *        return $this->handler->handle($record);\n *   }\n *\n * @author Alexey Karapetov <alexey@karapetov.com>\n */\nclass HandlerWrapper implements HandlerInterface, ResettableInterface\n{\n    /**\n     * @var HandlerInterface\n     */\n    protected $handler;\n\n    /**\n     * HandlerWrapper constructor.\n     * @param HandlerInterface $handler\n     */\n    public function __construct(HandlerInterface $handler)\n    {\n        $this->handler = $handler;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isHandling(array $record)\n    {\n        return $this->handler->isHandling($record);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        return $this->handler->handle($record);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        return $this->handler->handleBatch($records);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function pushProcessor($callback)\n    {\n        $this->handler->pushProcessor($callback);\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function popProcessor()\n    {\n        return $this->handler->popProcessor();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        $this->handler->setFormatter($formatter);\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getFormatter()\n    {\n        return $this->handler->getFormatter();\n    }\n\n    public function reset()\n    {\n        if ($this->handler instanceof ResettableInterface) {\n            return $this->handler->reset();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Sends notifications through the hipchat api to a hipchat room\n *\n * Notes:\n * API token - HipChat API token\n * Room      - HipChat Room Id or name, where messages are sent\n * Name      - Name used to send the message (from)\n * notify    - Should the message trigger a notification in the clients\n * version   - The API version to use (HipChatHandler::API_V1 | HipChatHandler::API_V2)\n *\n * @author Rafael Dohms <rafael@doh.ms>\n * @see    https://www.hipchat.com/docs/api\n */\nclass HipChatHandler extends SocketHandler\n{\n    /**\n     * Use API version 1\n     */\n    const API_V1 = 'v1';\n\n    /**\n     * Use API version v2\n     */\n    const API_V2 = 'v2';\n\n    /**\n     * The maximum allowed length for the name used in the \"from\" field.\n     */\n    const MAXIMUM_NAME_LENGTH = 15;\n\n    /**\n     * The maximum allowed length for the message.\n     */\n    const MAXIMUM_MESSAGE_LENGTH = 9500;\n\n    /**\n     * @var string\n     */\n    private $token;\n\n    /**\n     * @var string\n     */\n    private $room;\n\n    /**\n     * @var string\n     */\n    private $name;\n\n    /**\n     * @var bool\n     */\n    private $notify;\n\n    /**\n     * @var string\n     */\n    private $format;\n\n    /**\n     * @var string\n     */\n    private $host;\n\n    /**\n     * @var string\n     */\n    private $version;\n\n    /**\n     * @param string $token   HipChat API Token\n     * @param string $room    The room that should be alerted of the message (Id or Name)\n     * @param string $name    Name used in the \"from\" field.\n     * @param bool   $notify  Trigger a notification in clients or not\n     * @param int    $level   The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble  Whether the messages that are handled can bubble up the stack or not\n     * @param bool   $useSSL  Whether to connect via SSL.\n     * @param string $format  The format of the messages (default to text, can be set to html if you have html in the messages)\n     * @param string $host    The HipChat server hostname.\n     * @param string $version The HipChat API version (default HipChatHandler::API_V1)\n     */\n    public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1)\n    {\n        if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) {\n            throw new \\InvalidArgumentException('The supplied name is too long. HipChat\\'s v1 API supports names up to 15 UTF-8 characters.');\n        }\n\n        $connectionString = $useSSL ? 'ssl://'.$host.':443' : $host.':80';\n        parent::__construct($connectionString, $level, $bubble);\n\n        $this->token = $token;\n        $this->name = $name;\n        $this->notify = $notify;\n        $this->room = $room;\n        $this->format = $format;\n        $this->host = $host;\n        $this->version = $version;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        $content = $this->buildContent($record);\n\n        return $this->buildHeader($content) . $content;\n    }\n\n    /**\n     * Builds the body of API call\n     *\n     * @param  array  $record\n     * @return string\n     */\n    private function buildContent($record)\n    {\n        $dataArray = array(\n            'notify' => $this->version == self::API_V1 ?\n                ($this->notify ? 1 : 0) :\n                ($this->notify ? 'true' : 'false'),\n            'message' => $record['formatted'],\n            'message_format' => $this->format,\n            'color' => $this->getAlertColor($record['level']),\n        );\n\n        if (!$this->validateStringLength($dataArray['message'], static::MAXIMUM_MESSAGE_LENGTH)) {\n            if (function_exists('mb_substr')) {\n                $dataArray['message'] = mb_substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]';\n            } else {\n                $dataArray['message'] = substr($dataArray['message'], 0, static::MAXIMUM_MESSAGE_LENGTH).' [truncated]';\n            }\n        }\n\n        // if we are using the legacy API then we need to send some additional information\n        if ($this->version == self::API_V1) {\n            $dataArray['room_id'] = $this->room;\n        }\n\n        // append the sender name if it is set\n        // always append it if we use the v1 api (it is required in v1)\n        if ($this->version == self::API_V1 || $this->name !== null) {\n            $dataArray['from'] = (string) $this->name;\n        }\n\n        return http_build_query($dataArray);\n    }\n\n    /**\n     * Builds the header of the API Call\n     *\n     * @param  string $content\n     * @return string\n     */\n    private function buildHeader($content)\n    {\n        if ($this->version == self::API_V1) {\n            $header = \"POST /v1/rooms/message?format=json&auth_token={$this->token} HTTP/1.1\\r\\n\";\n        } else {\n            // needed for rooms with special (spaces, etc) characters in the name\n            $room = rawurlencode($this->room);\n            $header = \"POST /v2/room/{$room}/notification?auth_token={$this->token} HTTP/1.1\\r\\n\";\n        }\n\n        $header .= \"Host: {$this->host}\\r\\n\";\n        $header .= \"Content-Type: application/x-www-form-urlencoded\\r\\n\";\n        $header .= \"Content-Length: \" . strlen($content) . \"\\r\\n\";\n        $header .= \"\\r\\n\";\n\n        return $header;\n    }\n\n    /**\n     * Assigns a color to each level of log records.\n     *\n     * @param  int    $level\n     * @return string\n     */\n    protected function getAlertColor($level)\n    {\n        switch (true) {\n            case $level >= Logger::ERROR:\n                return 'red';\n            case $level >= Logger::WARNING:\n                return 'yellow';\n            case $level >= Logger::INFO:\n                return 'green';\n            case $level == Logger::DEBUG:\n                return 'gray';\n            default:\n                return 'yellow';\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        parent::write($record);\n        $this->finalizeWrite();\n    }\n\n    /**\n     * Finalizes the request by reading some bytes and then closing the socket\n     *\n     * If we do not read some but close the socket too early, hipchat sometimes\n     * drops the request entirely.\n     */\n    protected function finalizeWrite()\n    {\n        $res = $this->getResource();\n        if (is_resource($res)) {\n            @fread($res, 2048);\n        }\n        $this->closeSocket();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        if (count($records) == 0) {\n            return true;\n        }\n\n        $batchRecords = $this->combineRecords($records);\n\n        $handled = false;\n        foreach ($batchRecords as $batchRecord) {\n            if ($this->isHandling($batchRecord)) {\n                $this->write($batchRecord);\n                $handled = true;\n            }\n        }\n\n        if (!$handled) {\n            return false;\n        }\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * Combines multiple records into one. Error level of the combined record\n     * will be the highest level from the given records. Datetime will be taken\n     * from the first record.\n     *\n     * @param $records\n     * @return array\n     */\n    private function combineRecords($records)\n    {\n        $batchRecord = null;\n        $batchRecords = array();\n        $messages = array();\n        $formattedMessages = array();\n        $level = 0;\n        $levelName = null;\n        $datetime = null;\n\n        foreach ($records as $record) {\n            $record = $this->processRecord($record);\n\n            if ($record['level'] > $level) {\n                $level = $record['level'];\n                $levelName = $record['level_name'];\n            }\n\n            if (null === $datetime) {\n                $datetime = $record['datetime'];\n            }\n\n            $messages[] = $record['message'];\n            $messageStr = implode(PHP_EOL, $messages);\n            $formattedMessages[] = $this->getFormatter()->format($record);\n            $formattedMessageStr = implode('', $formattedMessages);\n\n            $batchRecord = array(\n                'message'   => $messageStr,\n                'formatted' => $formattedMessageStr,\n                'context'   => array(),\n                'extra'     => array(),\n            );\n\n            if (!$this->validateStringLength($batchRecord['formatted'], static::MAXIMUM_MESSAGE_LENGTH)) {\n                // Pop the last message and implode the remaining messages\n                $lastMessage = array_pop($messages);\n                $lastFormattedMessage = array_pop($formattedMessages);\n                $batchRecord['message'] = implode(PHP_EOL, $messages);\n                $batchRecord['formatted'] = implode('', $formattedMessages);\n\n                $batchRecords[] = $batchRecord;\n                $messages = array($lastMessage);\n                $formattedMessages = array($lastFormattedMessage);\n\n                $batchRecord = null;\n            }\n        }\n\n        if (null !== $batchRecord) {\n            $batchRecords[] = $batchRecord;\n        }\n\n        // Set the max level and datetime for all records\n        foreach ($batchRecords as &$batchRecord) {\n            $batchRecord = array_merge(\n                $batchRecord,\n                array(\n                    'level'      => $level,\n                    'level_name' => $levelName,\n                    'datetime'   => $datetime,\n                )\n            );\n        }\n\n        return $batchRecords;\n    }\n\n    /**\n     * Validates the length of a string.\n     *\n     * If the `mb_strlen()` function is available, it will use that, as HipChat\n     * allows UTF-8 characters. Otherwise, it will fall back to `strlen()`.\n     *\n     * Note that this might cause false failures in the specific case of using\n     * a valid name with less than 16 characters, but 16 or more bytes, on a\n     * system where `mb_strlen()` is unavailable.\n     *\n     * @param string $str\n     * @param int    $length\n     *\n     * @return bool\n     */\n    private function validateStringLength($str, $length)\n    {\n        if (function_exists('mb_strlen')) {\n            return (mb_strlen($str) <= $length);\n        }\n\n        return (strlen($str) <= $length);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * IFTTTHandler uses cURL to trigger IFTTT Maker actions\n *\n * Register a secret key and trigger/event name at https://ifttt.com/maker\n *\n * value1 will be the channel from monolog's Logger constructor,\n * value2 will be the level name (ERROR, WARNING, ..)\n * value3 will be the log record's message\n *\n * @author Nehal Patel <nehal@nehalpatel.me>\n */\nclass IFTTTHandler extends AbstractProcessingHandler\n{\n    private $eventName;\n    private $secretKey;\n\n    /**\n     * @param string $eventName The name of the IFTTT Maker event that should be triggered\n     * @param string $secretKey A valid IFTTT secret key\n     * @param int    $level     The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble    Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($eventName, $secretKey, $level = Logger::ERROR, $bubble = true)\n    {\n        $this->eventName = $eventName;\n        $this->secretKey = $secretKey;\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write(array $record)\n    {\n        $postData = array(\n            \"value1\" => $record[\"channel\"],\n            \"value2\" => $record[\"level_name\"],\n            \"value3\" => $record[\"message\"],\n        );\n        $postString = json_encode($postData);\n\n        $ch = curl_init();\n        curl_setopt($ch, CURLOPT_URL, \"https://maker.ifttt.com/trigger/\" . $this->eventName . \"/with/key/\" . $this->secretKey);\n        curl_setopt($ch, CURLOPT_POST, true);\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n        curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);\n        curl_setopt($ch, CURLOPT_HTTPHEADER, array(\n            \"Content-Type: application/json\",\n        ));\n\n        Curl\\Util::execute($ch);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n namespace Monolog\\Handler;\n \n use Monolog\\Logger;\n\n/**\n * Inspired on LogEntriesHandler.\n *\n * @author Robert Kaufmann III <rok3@rok3.me>\n * @author Gabriel Machado <gabriel.ms1@hotmail.com>\n */\nclass InsightOpsHandler extends SocketHandler\n{\n    /**\n     * @var string\n     */\n    protected $logToken;\n\n    /**\n     * @param string $token  Log token supplied by InsightOps\n     * @param string $region Region where InsightOps account is hosted. Could be 'us' or 'eu'.\n     * @param bool   $useSSL Whether or not SSL encryption should be used\n     * @param int    $level  The minimum logging level to trigger this handler\n     * @param bool   $bubble Whether or not messages that are handled should bubble up the stack.\n     *\n     * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing\n     */\n    public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)\n    {\n        if ($useSSL && !extension_loaded('openssl')) {\n            throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler');\n        }\n\n        $endpoint = $useSSL\n            ? 'ssl://' . $region . '.data.logs.insight.rapid7.com:443'\n            : $region . '.data.logs.insight.rapid7.com:80';\n\n        parent::__construct($endpoint, $level, $bubble);\n        $this->logToken = $token;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        return $this->logToken . ' ' . $record['formatted'];\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * @author Robert Kaufmann III <rok3@rok3.me>\n */\nclass LogEntriesHandler extends SocketHandler\n{\n    /**\n     * @var string\n     */\n    protected $logToken;\n\n    /**\n     * @param string $token  Log token supplied by LogEntries\n     * @param bool   $useSSL Whether or not SSL encryption should be used.\n     * @param int    $level  The minimum logging level to trigger this handler\n     * @param bool   $bubble Whether or not messages that are handled should bubble up the stack.\n     *\n     * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing\n     */\n    public function __construct($token, $useSSL = true, $level = Logger::DEBUG, $bubble = true, $host = 'data.logentries.com')\n    {\n        if ($useSSL && !extension_loaded('openssl')) {\n            throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler');\n        }\n\n        $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80';\n        parent::__construct($endpoint, $level, $bubble);\n        $this->logToken = $token;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        return $this->logToken . ' ' . $record['formatted'];\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LogglyFormatter;\n\n/**\n * Sends errors to Loggly.\n *\n * @author Przemek Sobstel <przemek@sobstel.org>\n * @author Adam Pancutt <adam@pancutt.com>\n * @author Gregory Barchard <gregory@barchard.net>\n */\nclass LogglyHandler extends AbstractProcessingHandler\n{\n    const HOST = 'logs-01.loggly.com';\n    const ENDPOINT_SINGLE = 'inputs';\n    const ENDPOINT_BATCH = 'bulk';\n\n    protected $token;\n\n    protected $tag = array();\n\n    public function __construct($token, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (!extension_loaded('curl')) {\n            throw new \\LogicException('The curl extension is needed to use the LogglyHandler');\n        }\n\n        $this->token = $token;\n\n        parent::__construct($level, $bubble);\n    }\n\n    public function setTag($tag)\n    {\n        $tag = !empty($tag) ? $tag : array();\n        $this->tag = is_array($tag) ? $tag : array($tag);\n    }\n\n    public function addTag($tag)\n    {\n        if (!empty($tag)) {\n            $tag = is_array($tag) ? $tag : array($tag);\n            $this->tag = array_unique(array_merge($this->tag, $tag));\n        }\n    }\n\n    protected function write(array $record)\n    {\n        $this->send($record[\"formatted\"], self::ENDPOINT_SINGLE);\n    }\n\n    public function handleBatch(array $records)\n    {\n        $level = $this->level;\n\n        $records = array_filter($records, function ($record) use ($level) {\n            return ($record['level'] >= $level);\n        });\n\n        if ($records) {\n            $this->send($this->getFormatter()->formatBatch($records), self::ENDPOINT_BATCH);\n        }\n    }\n\n    protected function send($data, $endpoint)\n    {\n        $url = sprintf(\"https://%s/%s/%s/\", self::HOST, $endpoint, $this->token);\n\n        $headers = array('Content-Type: application/json');\n\n        if (!empty($this->tag)) {\n            $headers[] = 'X-LOGGLY-TAG: '.implode(',', $this->tag);\n        }\n\n        $ch = curl_init();\n\n        curl_setopt($ch, CURLOPT_URL, $url);\n        curl_setopt($ch, CURLOPT_POST, true);\n        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);\n        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n        Curl\\Util::execute($ch);\n    }\n\n    protected function getDefaultFormatter()\n    {\n        return new LogglyFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\n/**\n * Base class for all mail handlers\n *\n * @author Gyula Sallai\n */\nabstract class MailHandler extends AbstractProcessingHandler\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        $messages = array();\n\n        foreach ($records as $record) {\n            if ($record['level'] < $this->level) {\n                continue;\n            }\n            $messages[] = $this->processRecord($record);\n        }\n\n        if (!empty($messages)) {\n            $this->send((string) $this->getFormatter()->formatBatch($messages), $messages);\n        }\n    }\n\n    /**\n     * Send a mail with the given content\n     *\n     * @param string $content formatted email body to be sent\n     * @param array  $records the array of log records that formed this content\n     */\n    abstract protected function send($content, array $records);\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $this->send((string) $record['formatted'], array($record));\n    }\n\n    protected function getHighestRecord(array $records)\n    {\n        $highestRecord = null;\n        foreach ($records as $record) {\n            if ($highestRecord === null || $highestRecord['level'] < $record['level']) {\n                $highestRecord = $record;\n            }\n        }\n\n        return $highestRecord;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * MandrillHandler uses cURL to send the emails to the Mandrill API\n *\n * @author Adam Nicholson <adamnicholson10@gmail.com>\n */\nclass MandrillHandler extends MailHandler\n{\n    protected $message;\n    protected $apiKey;\n\n    /**\n     * @param string                  $apiKey  A valid Mandrill API key\n     * @param callable|\\Swift_Message $message An example message for real messages, only the body will be replaced\n     * @param int                     $level   The minimum logging level at which this handler will be triggered\n     * @param bool                    $bubble  Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($apiKey, $message, $level = Logger::ERROR, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        if (!$message instanceof \\Swift_Message && is_callable($message)) {\n            $message = call_user_func($message);\n        }\n        if (!$message instanceof \\Swift_Message) {\n            throw new \\InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it');\n        }\n        $this->message = $message;\n        $this->apiKey = $apiKey;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function send($content, array $records)\n    {\n        $message = clone $this->message;\n        $message->setBody($content);\n        $message->setDate(time());\n\n        $ch = curl_init();\n\n        curl_setopt($ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-raw.json');\n        curl_setopt($ch, CURLOPT_POST, 1);\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(\n            'key' => $this->apiKey,\n            'raw_message' => (string) $message,\n            'async' => false,\n        )));\n\n        Curl\\Util::execute($ch);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\n/**\n * Exception can be thrown if an extension for an handler is missing\n *\n * @author  Christian Bergau <cbergau86@gmail.com>\n */\nclass MissingExtensionException extends \\Exception\n{\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\NormalizerFormatter;\n\n/**\n * Logs to a MongoDB database.\n *\n * usage example:\n *\n *   $log = new Logger('application');\n *   $mongodb = new MongoDBHandler(new \\Mongo(\"mongodb://localhost:27017\"), \"logs\", \"prod\");\n *   $log->pushHandler($mongodb);\n *\n * @author Thomas Tourlourat <thomas@tourlourat.com>\n */\nclass MongoDBHandler extends AbstractProcessingHandler\n{\n    protected $mongoCollection;\n\n    public function __construct($mongo, $database, $collection, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (!($mongo instanceof \\MongoClient || $mongo instanceof \\Mongo || $mongo instanceof \\MongoDB\\Client)) {\n            throw new \\InvalidArgumentException('MongoClient, Mongo or MongoDB\\Client instance required');\n        }\n\n        $this->mongoCollection = $mongo->selectCollection($database, $collection);\n\n        parent::__construct($level, $bubble);\n    }\n\n    protected function write(array $record)\n    {\n        if ($this->mongoCollection instanceof \\MongoDB\\Collection) {\n            $this->mongoCollection->insertOne($record[\"formatted\"]);\n        } else {\n            $this->mongoCollection->save($record[\"formatted\"]);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new NormalizerFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\n\n/**\n * NativeMailerHandler uses the mail() function to send the emails\n *\n * @author Christophe Coevoet <stof@notk.org>\n * @author Mark Garrett <mark@moderndeveloperllc.com>\n */\nclass NativeMailerHandler extends MailHandler\n{\n    /**\n     * The email addresses to which the message will be sent\n     * @var array\n     */\n    protected $to;\n\n    /**\n     * The subject of the email\n     * @var string\n     */\n    protected $subject;\n\n    /**\n     * Optional headers for the message\n     * @var array\n     */\n    protected $headers = array();\n\n    /**\n     * Optional parameters for the message\n     * @var array\n     */\n    protected $parameters = array();\n\n    /**\n     * The wordwrap length for the message\n     * @var int\n     */\n    protected $maxColumnWidth;\n\n    /**\n     * The Content-type for the message\n     * @var string\n     */\n    protected $contentType = 'text/plain';\n\n    /**\n     * The encoding for the message\n     * @var string\n     */\n    protected $encoding = 'utf-8';\n\n    /**\n     * @param string|array $to             The receiver of the mail\n     * @param string       $subject        The subject of the mail\n     * @param string       $from           The sender of the mail\n     * @param int          $level          The minimum logging level at which this handler will be triggered\n     * @param bool         $bubble         Whether the messages that are handled can bubble up the stack or not\n     * @param int          $maxColumnWidth The maximum column width that the message lines will have\n     */\n    public function __construct($to, $subject, $from, $level = Logger::ERROR, $bubble = true, $maxColumnWidth = 70)\n    {\n        parent::__construct($level, $bubble);\n        $this->to = is_array($to) ? $to : array($to);\n        $this->subject = $subject;\n        $this->addHeader(sprintf('From: %s', $from));\n        $this->maxColumnWidth = $maxColumnWidth;\n    }\n\n    /**\n     * Add headers to the message\n     *\n     * @param  string|array $headers Custom added headers\n     * @return self\n     */\n    public function addHeader($headers)\n    {\n        foreach ((array) $headers as $header) {\n            if (strpos($header, \"\\n\") !== false || strpos($header, \"\\r\") !== false) {\n                throw new \\InvalidArgumentException('Headers can not contain newline characters for security reasons');\n            }\n            $this->headers[] = $header;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add parameters to the message\n     *\n     * @param  string|array $parameters Custom added parameters\n     * @return self\n     */\n    public function addParameter($parameters)\n    {\n        $this->parameters = array_merge($this->parameters, (array) $parameters);\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function send($content, array $records)\n    {\n        $content = wordwrap($content, $this->maxColumnWidth);\n        $headers = ltrim(implode(\"\\r\\n\", $this->headers) . \"\\r\\n\", \"\\r\\n\");\n        $headers .= 'Content-type: ' . $this->getContentType() . '; charset=' . $this->getEncoding() . \"\\r\\n\";\n        if ($this->getContentType() == 'text/html' && false === strpos($headers, 'MIME-Version:')) {\n            $headers .= 'MIME-Version: 1.0' . \"\\r\\n\";\n        }\n\n        $subject = $this->subject;\n        if ($records) {\n            $subjectFormatter = new LineFormatter($this->subject);\n            $subject = $subjectFormatter->format($this->getHighestRecord($records));\n        }\n\n        $parameters = implode(' ', $this->parameters);\n        foreach ($this->to as $to) {\n            mail($to, $subject, $content, $headers, $parameters);\n        }\n    }\n\n    /**\n     * @return string $contentType\n     */\n    public function getContentType()\n    {\n        return $this->contentType;\n    }\n\n    /**\n     * @return string $encoding\n     */\n    public function getEncoding()\n    {\n        return $this->encoding;\n    }\n\n    /**\n     * @param  string $contentType The content type of the email - Defaults to text/plain. Use text/html for HTML\n     *                             messages.\n     * @return self\n     */\n    public function setContentType($contentType)\n    {\n        if (strpos($contentType, \"\\n\") !== false || strpos($contentType, \"\\r\") !== false) {\n            throw new \\InvalidArgumentException('The content type can not contain newline characters to prevent email header injection');\n        }\n\n        $this->contentType = $contentType;\n\n        return $this;\n    }\n\n    /**\n     * @param  string $encoding\n     * @return self\n     */\n    public function setEncoding($encoding)\n    {\n        if (strpos($encoding, \"\\n\") !== false || strpos($encoding, \"\\r\") !== false) {\n            throw new \\InvalidArgumentException('The encoding can not contain newline characters to prevent email header injection');\n        }\n\n        $this->encoding = $encoding;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\NormalizerFormatter;\n\n/**\n * Class to record a log on a NewRelic application.\n * Enabling New Relic High Security mode may prevent capture of useful information.\n *\n * This handler requires a NormalizerFormatter to function and expects an array in $record['formatted']\n *\n * @see https://docs.newrelic.com/docs/agents/php-agent\n * @see https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/high-security\n */\nclass NewRelicHandler extends AbstractProcessingHandler\n{\n    /**\n     * Name of the New Relic application that will receive logs from this handler.\n     *\n     * @var string\n     */\n    protected $appName;\n\n    /**\n     * Name of the current transaction\n     *\n     * @var string\n     */\n    protected $transactionName;\n\n    /**\n     * Some context and extra data is passed into the handler as arrays of values. Do we send them as is\n     * (useful if we are using the API), or explode them for display on the NewRelic RPM website?\n     *\n     * @var bool\n     */\n    protected $explodeArrays;\n\n    /**\n     * {@inheritDoc}\n     *\n     * @param string $appName\n     * @param bool   $explodeArrays\n     * @param string $transactionName\n     */\n    public function __construct(\n        $level = Logger::ERROR,\n        $bubble = true,\n        $appName = null,\n        $explodeArrays = false,\n        $transactionName = null\n    ) {\n        parent::__construct($level, $bubble);\n\n        $this->appName       = $appName;\n        $this->explodeArrays = $explodeArrays;\n        $this->transactionName = $transactionName;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        if (!$this->isNewRelicEnabled()) {\n            throw new MissingExtensionException('The newrelic PHP extension is required to use the NewRelicHandler');\n        }\n\n        if ($appName = $this->getAppName($record['context'])) {\n            $this->setNewRelicAppName($appName);\n        }\n\n        if ($transactionName = $this->getTransactionName($record['context'])) {\n            $this->setNewRelicTransactionName($transactionName);\n            unset($record['formatted']['context']['transaction_name']);\n        }\n\n        if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \\Exception || (PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \\Throwable))) {\n            newrelic_notice_error($record['message'], $record['context']['exception']);\n            unset($record['formatted']['context']['exception']);\n        } else {\n            newrelic_notice_error($record['message']);\n        }\n\n        if (isset($record['formatted']['context']) && is_array($record['formatted']['context'])) {\n            foreach ($record['formatted']['context'] as $key => $parameter) {\n                if (is_array($parameter) && $this->explodeArrays) {\n                    foreach ($parameter as $paramKey => $paramValue) {\n                        $this->setNewRelicParameter('context_' . $key . '_' . $paramKey, $paramValue);\n                    }\n                } else {\n                    $this->setNewRelicParameter('context_' . $key, $parameter);\n                }\n            }\n        }\n\n        if (isset($record['formatted']['extra']) && is_array($record['formatted']['extra'])) {\n            foreach ($record['formatted']['extra'] as $key => $parameter) {\n                if (is_array($parameter) && $this->explodeArrays) {\n                    foreach ($parameter as $paramKey => $paramValue) {\n                        $this->setNewRelicParameter('extra_' . $key . '_' . $paramKey, $paramValue);\n                    }\n                } else {\n                    $this->setNewRelicParameter('extra_' . $key, $parameter);\n                }\n            }\n        }\n    }\n\n    /**\n     * Checks whether the NewRelic extension is enabled in the system.\n     *\n     * @return bool\n     */\n    protected function isNewRelicEnabled()\n    {\n        return extension_loaded('newrelic');\n    }\n\n    /**\n     * Returns the appname where this log should be sent. Each log can override the default appname, set in this\n     * handler's constructor, by providing the appname in it's context.\n     *\n     * @param  array       $context\n     * @return null|string\n     */\n    protected function getAppName(array $context)\n    {\n        if (isset($context['appname'])) {\n            return $context['appname'];\n        }\n\n        return $this->appName;\n    }\n\n    /**\n     * Returns the name of the current transaction. Each log can override the default transaction name, set in this\n     * handler's constructor, by providing the transaction_name in it's context\n     *\n     * @param array $context\n     *\n     * @return null|string\n     */\n    protected function getTransactionName(array $context)\n    {\n        if (isset($context['transaction_name'])) {\n            return $context['transaction_name'];\n        }\n\n        return $this->transactionName;\n    }\n\n    /**\n     * Sets the NewRelic application that should receive this log.\n     *\n     * @param string $appName\n     */\n    protected function setNewRelicAppName($appName)\n    {\n        newrelic_set_appname($appName);\n    }\n\n    /**\n     * Overwrites the name of the current transaction\n     *\n     * @param string $transactionName\n     */\n    protected function setNewRelicTransactionName($transactionName)\n    {\n        newrelic_name_transaction($transactionName);\n    }\n\n    /**\n     * @param string $key\n     * @param mixed  $value\n     */\n    protected function setNewRelicParameter($key, $value)\n    {\n        if (null === $value || is_scalar($value)) {\n            newrelic_add_custom_parameter($key, $value);\n        } else {\n            newrelic_add_custom_parameter($key, @json_encode($value));\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new NormalizerFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Blackhole\n *\n * Any record it can handle will be thrown away. This can be used\n * to put on top of an existing stack to override it temporarily.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass NullHandler extends AbstractHandler\n{\n    /**\n     * @param int $level The minimum logging level at which this handler will be triggered\n     */\n    public function __construct($level = Logger::DEBUG)\n    {\n        parent::__construct($level, false);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if ($record['level'] < $this->level) {\n            return false;\n        }\n\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Exception;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\nuse PhpConsole\\Connector;\nuse PhpConsole\\Handler;\nuse PhpConsole\\Helper;\n\n/**\n * Monolog handler for Google Chrome extension \"PHP Console\"\n *\n * Display PHP error/debug log messages in Google Chrome console and notification popups, executes PHP code remotely\n *\n * Usage:\n * 1. Install Google Chrome extension https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef\n * 2. See overview https://github.com/barbushin/php-console#overview\n * 3. Install PHP Console library https://github.com/barbushin/php-console#installation\n * 4. Example (result will looks like http://i.hizliresim.com/vg3Pz4.png)\n *\n *      $logger = new \\Monolog\\Logger('all', array(new \\Monolog\\Handler\\PHPConsoleHandler()));\n *      \\Monolog\\ErrorHandler::register($logger);\n *      echo $undefinedVar;\n *      $logger->addDebug('SELECT * FROM users', array('db', 'time' => 0.012));\n *      PC::debug($_SERVER); // PHP Console debugger for any type of vars\n *\n * @author Sergey Barbushin https://www.linkedin.com/in/barbushin\n */\nclass PHPConsoleHandler extends AbstractProcessingHandler\n{\n    private $options = array(\n        'enabled' => true, // bool Is PHP Console server enabled\n        'classesPartialsTraceIgnore' => array('Monolog\\\\'), // array Hide calls of classes started with...\n        'debugTagsKeysInContext' => array(0, 'tag'), // bool Is PHP Console server enabled\n        'useOwnErrorsHandler' => false, // bool Enable errors handling\n        'useOwnExceptionsHandler' => false, // bool Enable exceptions handling\n        'sourcesBasePath' => null, // string Base path of all project sources to strip in errors source paths\n        'registerHelper' => true, // bool Register PhpConsole\\Helper that allows short debug calls like PC::debug($var, 'ta.g.s')\n        'serverEncoding' => null, // string|null Server internal encoding\n        'headersLimit' => null, // int|null Set headers size limit for your web-server\n        'password' => null, // string|null Protect PHP Console connection by password\n        'enableSslOnlyMode' => false, // bool Force connection by SSL for clients with PHP Console installed\n        'ipMasks' => array(), // array Set IP masks of clients that will be allowed to connect to PHP Console: array('192.168.*.*', '127.0.0.1')\n        'enableEvalListener' => false, // bool Enable eval request to be handled by eval dispatcher(if enabled, 'password' option is also required)\n        'dumperDetectCallbacks' => false, // bool Convert callback items in dumper vars to (callback SomeClass::someMethod) strings\n        'dumperLevelLimit' => 5, // int Maximum dumped vars array or object nested dump level\n        'dumperItemsCountLimit' => 100, // int Maximum dumped var same level array items or object properties number\n        'dumperItemSizeLimit' => 5000, // int Maximum length of any string or dumped array item\n        'dumperDumpSizeLimit' => 500000, // int Maximum approximate size of dumped vars result formatted in JSON\n        'detectDumpTraceAndSource' => false, // bool Autodetect and append trace data to debug\n        'dataStorage' => null, // PhpConsole\\Storage|null Fixes problem with custom $_SESSION handler(see http://goo.gl/Ne8juJ)\n    );\n\n    /** @var Connector */\n    private $connector;\n\n    /**\n     * @param  array          $options   See \\Monolog\\Handler\\PHPConsoleHandler::$options for more details\n     * @param  Connector|null $connector Instance of \\PhpConsole\\Connector class (optional)\n     * @param  int            $level\n     * @param  bool           $bubble\n     * @throws Exception\n     */\n    public function __construct(array $options = array(), Connector $connector = null, $level = Logger::DEBUG, $bubble = true)\n    {\n        if (!class_exists('PhpConsole\\Connector')) {\n            throw new Exception('PHP Console library not found. See https://github.com/barbushin/php-console#installation');\n        }\n        parent::__construct($level, $bubble);\n        $this->options = $this->initOptions($options);\n        $this->connector = $this->initConnector($connector);\n    }\n\n    private function initOptions(array $options)\n    {\n        $wrongOptions = array_diff(array_keys($options), array_keys($this->options));\n        if ($wrongOptions) {\n            throw new Exception('Unknown options: ' . implode(', ', $wrongOptions));\n        }\n\n        return array_replace($this->options, $options);\n    }\n\n    private function initConnector(Connector $connector = null)\n    {\n        if (!$connector) {\n            if ($this->options['dataStorage']) {\n                Connector::setPostponeStorage($this->options['dataStorage']);\n            }\n            $connector = Connector::getInstance();\n        }\n\n        if ($this->options['registerHelper'] && !Helper::isRegistered()) {\n            Helper::register();\n        }\n\n        if ($this->options['enabled'] && $connector->isActiveClient()) {\n            if ($this->options['useOwnErrorsHandler'] || $this->options['useOwnExceptionsHandler']) {\n                $handler = Handler::getInstance();\n                $handler->setHandleErrors($this->options['useOwnErrorsHandler']);\n                $handler->setHandleExceptions($this->options['useOwnExceptionsHandler']);\n                $handler->start();\n            }\n            if ($this->options['sourcesBasePath']) {\n                $connector->setSourcesBasePath($this->options['sourcesBasePath']);\n            }\n            if ($this->options['serverEncoding']) {\n                $connector->setServerEncoding($this->options['serverEncoding']);\n            }\n            if ($this->options['password']) {\n                $connector->setPassword($this->options['password']);\n            }\n            if ($this->options['enableSslOnlyMode']) {\n                $connector->enableSslOnlyMode();\n            }\n            if ($this->options['ipMasks']) {\n                $connector->setAllowedIpMasks($this->options['ipMasks']);\n            }\n            if ($this->options['headersLimit']) {\n                $connector->setHeadersLimit($this->options['headersLimit']);\n            }\n            if ($this->options['detectDumpTraceAndSource']) {\n                $connector->getDebugDispatcher()->detectTraceAndSource = true;\n            }\n            $dumper = $connector->getDumper();\n            $dumper->levelLimit = $this->options['dumperLevelLimit'];\n            $dumper->itemsCountLimit = $this->options['dumperItemsCountLimit'];\n            $dumper->itemSizeLimit = $this->options['dumperItemSizeLimit'];\n            $dumper->dumpSizeLimit = $this->options['dumperDumpSizeLimit'];\n            $dumper->detectCallbacks = $this->options['dumperDetectCallbacks'];\n            if ($this->options['enableEvalListener']) {\n                $connector->startEvalRequestsListener();\n            }\n        }\n\n        return $connector;\n    }\n\n    public function getConnector()\n    {\n        return $this->connector;\n    }\n\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    public function handle(array $record)\n    {\n        if ($this->options['enabled'] && $this->connector->isActiveClient()) {\n            return parent::handle($record);\n        }\n\n        return !$this->bubble;\n    }\n\n    /**\n     * Writes the record down to the log of the implementing handler\n     *\n     * @param  array $record\n     * @return void\n     */\n    protected function write(array $record)\n    {\n        if ($record['level'] < Logger::NOTICE) {\n            $this->handleDebugRecord($record);\n        } elseif (isset($record['context']['exception']) && $record['context']['exception'] instanceof Exception) {\n            $this->handleExceptionRecord($record);\n        } else {\n            $this->handleErrorRecord($record);\n        }\n    }\n\n    private function handleDebugRecord(array $record)\n    {\n        $tags = $this->getRecordTags($record);\n        $message = $record['message'];\n        if ($record['context']) {\n            $message .= ' ' . json_encode($this->connector->getDumper()->dump(array_filter($record['context'])));\n        }\n        $this->connector->getDebugDispatcher()->dispatchDebug($message, $tags, $this->options['classesPartialsTraceIgnore']);\n    }\n\n    private function handleExceptionRecord(array $record)\n    {\n        $this->connector->getErrorsDispatcher()->dispatchException($record['context']['exception']);\n    }\n\n    private function handleErrorRecord(array $record)\n    {\n        $context = $record['context'];\n\n        $this->connector->getErrorsDispatcher()->dispatchError(\n            isset($context['code']) ? $context['code'] : null,\n            isset($context['message']) ? $context['message'] : $record['message'],\n            isset($context['file']) ? $context['file'] : null,\n            isset($context['line']) ? $context['line'] : null,\n            $this->options['classesPartialsTraceIgnore']\n        );\n    }\n\n    private function getRecordTags(array &$record)\n    {\n        $tags = null;\n        if (!empty($record['context'])) {\n            $context = & $record['context'];\n            foreach ($this->options['debugTagsKeysInContext'] as $key) {\n                if (!empty($context[$key])) {\n                    $tags = $context[$key];\n                    if ($key === 0) {\n                        array_shift($context);\n                    } else {\n                        unset($context[$key]);\n                    }\n                    break;\n                }\n            }\n        }\n\n        return $tags ?: strtolower($record['level_name']);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter('%message%');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Psr\\Log\\LoggerInterface;\n\n/**\n * Proxies log messages to an existing PSR-3 compliant logger.\n *\n * @author Michael Moussa <michael.moussa@gmail.com>\n */\nclass PsrHandler extends AbstractHandler\n{\n    /**\n     * PSR-3 compliant logger\n     *\n     * @var LoggerInterface\n     */\n    protected $logger;\n\n    /**\n     * @param LoggerInterface $logger The underlying PSR-3 compliant logger to which messages will be proxied\n     * @param int             $level  The minimum logging level at which this handler will be triggered\n     * @param bool            $bubble Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(LoggerInterface $logger, $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        $this->logger = $logger;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function handle(array $record)\n    {\n        if (!$this->isHandling($record)) {\n            return false;\n        }\n\n        $this->logger->log(strtolower($record['level_name']), $record['message'], $record['context']);\n\n        return false === $this->bubble;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Sends notifications through the pushover api to mobile phones\n *\n * @author Sebastian Göttschkes <sebastian.goettschkes@googlemail.com>\n * @see    https://www.pushover.net/api\n */\nclass PushoverHandler extends SocketHandler\n{\n    private $token;\n    private $users;\n    private $title;\n    private $user;\n    private $retry;\n    private $expire;\n\n    private $highPriorityLevel;\n    private $emergencyLevel;\n    private $useFormattedMessage = false;\n\n    /**\n     * All parameters that can be sent to Pushover\n     * @see https://pushover.net/api\n     * @var array\n     */\n    private $parameterNames = array(\n        'token' => true,\n        'user' => true,\n        'message' => true,\n        'device' => true,\n        'title' => true,\n        'url' => true,\n        'url_title' => true,\n        'priority' => true,\n        'timestamp' => true,\n        'sound' => true,\n        'retry' => true,\n        'expire' => true,\n        'callback' => true,\n    );\n\n    /**\n     * Sounds the api supports by default\n     * @see https://pushover.net/api#sounds\n     * @var array\n     */\n    private $sounds = array(\n        'pushover', 'bike', 'bugle', 'cashregister', 'classical', 'cosmic', 'falling', 'gamelan', 'incoming',\n        'intermission', 'magic', 'mechanical', 'pianobar', 'siren', 'spacealarm', 'tugboat', 'alien', 'climb',\n        'persistent', 'echo', 'updown', 'none',\n    );\n\n    /**\n     * @param string       $token             Pushover api token\n     * @param string|array $users             Pushover user id or array of ids the message will be sent to\n     * @param string       $title             Title sent to the Pushover API\n     * @param int          $level             The minimum logging level at which this handler will be triggered\n     * @param bool         $bubble            Whether the messages that are handled can bubble up the stack or not\n     * @param bool         $useSSL            Whether to connect via SSL. Required when pushing messages to users that are not\n     *                                        the pushover.net app owner. OpenSSL is required for this option.\n     * @param int          $highPriorityLevel The minimum logging level at which this handler will start\n     *                                        sending \"high priority\" requests to the Pushover API\n     * @param int          $emergencyLevel    The minimum logging level at which this handler will start\n     *                                        sending \"emergency\" requests to the Pushover API\n     * @param int          $retry             The retry parameter specifies how often (in seconds) the Pushover servers will send the same notification to the user.\n     * @param int          $expire            The expire parameter specifies how many seconds your notification will continue to be retried for (every retry seconds).\n     */\n    public function __construct($token, $users, $title = null, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $highPriorityLevel = Logger::CRITICAL, $emergencyLevel = Logger::EMERGENCY, $retry = 30, $expire = 25200)\n    {\n        $connectionString = $useSSL ? 'ssl://api.pushover.net:443' : 'api.pushover.net:80';\n        parent::__construct($connectionString, $level, $bubble);\n\n        $this->token = $token;\n        $this->users = (array) $users;\n        $this->title = $title ?: gethostname();\n        $this->highPriorityLevel = Logger::toMonologLevel($highPriorityLevel);\n        $this->emergencyLevel = Logger::toMonologLevel($emergencyLevel);\n        $this->retry = $retry;\n        $this->expire = $expire;\n    }\n\n    protected function generateDataStream($record)\n    {\n        $content = $this->buildContent($record);\n\n        return $this->buildHeader($content) . $content;\n    }\n\n    private function buildContent($record)\n    {\n        // Pushover has a limit of 512 characters on title and message combined.\n        $maxMessageLength = 512 - strlen($this->title);\n\n        $message = ($this->useFormattedMessage) ? $record['formatted'] : $record['message'];\n        $message = substr($message, 0, $maxMessageLength);\n\n        $timestamp = $record['datetime']->getTimestamp();\n\n        $dataArray = array(\n            'token' => $this->token,\n            'user' => $this->user,\n            'message' => $message,\n            'title' => $this->title,\n            'timestamp' => $timestamp,\n        );\n\n        if (isset($record['level']) && $record['level'] >= $this->emergencyLevel) {\n            $dataArray['priority'] = 2;\n            $dataArray['retry'] = $this->retry;\n            $dataArray['expire'] = $this->expire;\n        } elseif (isset($record['level']) && $record['level'] >= $this->highPriorityLevel) {\n            $dataArray['priority'] = 1;\n        }\n\n        // First determine the available parameters\n        $context = array_intersect_key($record['context'], $this->parameterNames);\n        $extra = array_intersect_key($record['extra'], $this->parameterNames);\n\n        // Least important info should be merged with subsequent info\n        $dataArray = array_merge($extra, $context, $dataArray);\n\n        // Only pass sounds that are supported by the API\n        if (isset($dataArray['sound']) && !in_array($dataArray['sound'], $this->sounds)) {\n            unset($dataArray['sound']);\n        }\n\n        return http_build_query($dataArray);\n    }\n\n    private function buildHeader($content)\n    {\n        $header = \"POST /1/messages.json HTTP/1.1\\r\\n\";\n        $header .= \"Host: api.pushover.net\\r\\n\";\n        $header .= \"Content-Type: application/x-www-form-urlencoded\\r\\n\";\n        $header .= \"Content-Length: \" . strlen($content) . \"\\r\\n\";\n        $header .= \"\\r\\n\";\n\n        return $header;\n    }\n\n    protected function write(array $record)\n    {\n        foreach ($this->users as $user) {\n            $this->user = $user;\n\n            parent::write($record);\n            $this->closeSocket();\n        }\n\n        $this->user = null;\n    }\n\n    public function setHighPriorityLevel($value)\n    {\n        $this->highPriorityLevel = $value;\n    }\n\n    public function setEmergencyLevel($value)\n    {\n        $this->emergencyLevel = $value;\n    }\n\n    /**\n     * Use the formatted message?\n     * @param bool $value\n     */\n    public function useFormattedMessage($value)\n    {\n        $this->useFormattedMessage = (bool) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Logger;\nuse Raven_Client;\n\n/**\n * Handler to send messages to a Sentry (https://github.com/getsentry/sentry) server\n * using sentry-php (https://github.com/getsentry/sentry-php)\n *\n * @author Marc Abramowitz <marc@marc-abramowitz.com>\n */\nclass RavenHandler extends AbstractProcessingHandler\n{\n    /**\n     * Translates Monolog log levels to Raven log levels.\n     */\n    protected $logLevels = array(\n        Logger::DEBUG     => Raven_Client::DEBUG,\n        Logger::INFO      => Raven_Client::INFO,\n        Logger::NOTICE    => Raven_Client::INFO,\n        Logger::WARNING   => Raven_Client::WARNING,\n        Logger::ERROR     => Raven_Client::ERROR,\n        Logger::CRITICAL  => Raven_Client::FATAL,\n        Logger::ALERT     => Raven_Client::FATAL,\n        Logger::EMERGENCY => Raven_Client::FATAL,\n    );\n\n    /**\n     * @var string should represent the current version of the calling\n     *             software. Can be any string (git commit, version number)\n     */\n    protected $release;\n\n    /**\n     * @var Raven_Client the client object that sends the message to the server\n     */\n    protected $ravenClient;\n\n    /**\n     * @var LineFormatter The formatter to use for the logs generated via handleBatch()\n     */\n    protected $batchFormatter;\n\n    /**\n     * @param Raven_Client $ravenClient\n     * @param int          $level       The minimum logging level at which this handler will be triggered\n     * @param bool         $bubble      Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        $this->ravenClient = $ravenClient;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        $level = $this->level;\n\n        // filter records based on their level\n        $records = array_filter($records, function ($record) use ($level) {\n            return $record['level'] >= $level;\n        });\n\n        if (!$records) {\n            return;\n        }\n\n        // the record with the highest severity is the \"main\" one\n        $record = array_reduce($records, function ($highest, $record) {\n            if ($record['level'] > $highest['level']) {\n                return $record;\n            }\n\n            return $highest;\n        });\n\n        // the other ones are added as a context item\n        $logs = array();\n        foreach ($records as $r) {\n            $logs[] = $this->processRecord($r);\n        }\n\n        if ($logs) {\n            $record['context']['logs'] = (string) $this->getBatchFormatter()->formatBatch($logs);\n        }\n\n        $this->handle($record);\n    }\n\n    /**\n     * Sets the formatter for the logs generated by handleBatch().\n     *\n     * @param FormatterInterface $formatter\n     */\n    public function setBatchFormatter(FormatterInterface $formatter)\n    {\n        $this->batchFormatter = $formatter;\n    }\n\n    /**\n     * Gets the formatter for the logs generated by handleBatch().\n     *\n     * @return FormatterInterface\n     */\n    public function getBatchFormatter()\n    {\n        if (!$this->batchFormatter) {\n            $this->batchFormatter = $this->getDefaultBatchFormatter();\n        }\n\n        return $this->batchFormatter;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $previousUserContext = false;\n        $options = array();\n        $options['level'] = $this->logLevels[$record['level']];\n        $options['tags'] = array();\n        if (!empty($record['extra']['tags'])) {\n            $options['tags'] = array_merge($options['tags'], $record['extra']['tags']);\n            unset($record['extra']['tags']);\n        }\n        if (!empty($record['context']['tags'])) {\n            $options['tags'] = array_merge($options['tags'], $record['context']['tags']);\n            unset($record['context']['tags']);\n        }\n        if (!empty($record['context']['fingerprint'])) {\n            $options['fingerprint'] = $record['context']['fingerprint'];\n            unset($record['context']['fingerprint']);\n        }\n        if (!empty($record['context']['logger'])) {\n            $options['logger'] = $record['context']['logger'];\n            unset($record['context']['logger']);\n        } else {\n            $options['logger'] = $record['channel'];\n        }\n        foreach ($this->getExtraParameters() as $key) {\n            foreach (array('extra', 'context') as $source) {\n                if (!empty($record[$source][$key])) {\n                    $options[$key] = $record[$source][$key];\n                    unset($record[$source][$key]);\n                }\n            }\n        }\n        if (!empty($record['context'])) {\n            $options['extra']['context'] = $record['context'];\n            if (!empty($record['context']['user'])) {\n                $previousUserContext = $this->ravenClient->context->user;\n                $this->ravenClient->user_context($record['context']['user']);\n                unset($options['extra']['context']['user']);\n            }\n        }\n        if (!empty($record['extra'])) {\n            $options['extra']['extra'] = $record['extra'];\n        }\n\n        if (!empty($this->release) && !isset($options['release'])) {\n            $options['release'] = $this->release;\n        }\n\n        if (isset($record['context']['exception']) && ($record['context']['exception'] instanceof \\Exception || (PHP_VERSION_ID >= 70000 && $record['context']['exception'] instanceof \\Throwable))) {\n            $options['message'] = $record['formatted'];\n            $this->ravenClient->captureException($record['context']['exception'], $options);\n        } else {\n            $this->ravenClient->captureMessage($record['formatted'], array(), $options);\n        }\n\n        if ($previousUserContext !== false) {\n            $this->ravenClient->user_context($previousUserContext);\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter('[%channel%] %message%');\n    }\n\n    /**\n     * Gets the default formatter for the logs generated by handleBatch().\n     *\n     * @return FormatterInterface\n     */\n    protected function getDefaultBatchFormatter()\n    {\n        return new LineFormatter();\n    }\n\n    /**\n     * Gets extra parameters supported by Raven that can be found in \"extra\" and \"context\"\n     *\n     * @return array\n     */\n    protected function getExtraParameters()\n    {\n        return array('contexts', 'checksum', 'release', 'event_id');\n    }\n\n    /**\n     * @param string $value\n     * @return self\n     */\n    public function setRelease($value)\n    {\n        $this->release = $value;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\n\n/**\n * Logs to a Redis key using rpush\n *\n * usage example:\n *\n *   $log = new Logger('application');\n *   $redis = new RedisHandler(new Predis\\Client(\"tcp://localhost:6379\"), \"logs\", \"prod\");\n *   $log->pushHandler($redis);\n *\n * @author Thomas Tourlourat <thomas@tourlourat.com>\n */\nclass RedisHandler extends AbstractProcessingHandler\n{\n    private $redisClient;\n    private $redisKey;\n    protected $capSize;\n\n    /**\n     * @param \\Predis\\Client|\\Redis $redis   The redis instance\n     * @param string                $key     The key name to push records to\n     * @param int                   $level   The minimum logging level at which this handler will be triggered\n     * @param bool                  $bubble  Whether the messages that are handled can bubble up the stack or not\n     * @param int                   $capSize Number of entries to limit list size to\n     */\n    public function __construct($redis, $key, $level = Logger::DEBUG, $bubble = true, $capSize = false)\n    {\n        if (!(($redis instanceof \\Predis\\Client) || ($redis instanceof \\Redis))) {\n            throw new \\InvalidArgumentException('Predis\\Client or Redis instance required');\n        }\n\n        $this->redisClient = $redis;\n        $this->redisKey = $key;\n        $this->capSize = $capSize;\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function write(array $record)\n    {\n        if ($this->capSize) {\n            $this->writeCapped($record);\n        } else {\n            $this->redisClient->rpush($this->redisKey, $record[\"formatted\"]);\n        }\n    }\n\n    /**\n     * Write and cap the collection\n     * Writes the record to the redis list and caps its\n     *\n     * @param  array $record associative record array\n     * @return void\n     */\n    protected function writeCapped(array $record)\n    {\n        if ($this->redisClient instanceof \\Redis) {\n            $this->redisClient->multi()\n                ->rpush($this->redisKey, $record[\"formatted\"])\n                ->ltrim($this->redisKey, -$this->capSize, -1)\n                ->exec();\n        } else {\n            $redisKey = $this->redisKey;\n            $capSize = $this->capSize;\n            $this->redisClient->transaction(function ($tx) use ($record, $redisKey, $capSize) {\n                $tx->rpush($redisKey, $record[\"formatted\"]);\n                $tx->ltrim($redisKey, -$capSize, -1);\n            });\n        }\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    protected function getDefaultFormatter()\n    {\n        return new LineFormatter();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse RollbarNotifier;\nuse Exception;\nuse Monolog\\Logger;\n\n/**\n * Sends errors to Rollbar\n *\n * If the context data contains a `payload` key, that is used as an array\n * of payload options to RollbarNotifier's report_message/report_exception methods.\n *\n * Rollbar's context info will contain the context + extra keys from the log record\n * merged, and then on top of that a few keys:\n *\n *  - level (rollbar level name)\n *  - monolog_level (monolog level name, raw level, as rollbar only has 5 but monolog 8)\n *  - channel\n *  - datetime (unix timestamp)\n *\n * @author Paul Statezny <paulstatezny@gmail.com>\n */\nclass RollbarHandler extends AbstractProcessingHandler\n{\n    /**\n     * Rollbar notifier\n     *\n     * @var RollbarNotifier\n     */\n    protected $rollbarNotifier;\n\n    protected $levelMap = array(\n        Logger::DEBUG     => 'debug',\n        Logger::INFO      => 'info',\n        Logger::NOTICE    => 'info',\n        Logger::WARNING   => 'warning',\n        Logger::ERROR     => 'error',\n        Logger::CRITICAL  => 'critical',\n        Logger::ALERT     => 'critical',\n        Logger::EMERGENCY => 'critical',\n    );\n\n    /**\n     * Records whether any log records have been added since the last flush of the rollbar notifier\n     *\n     * @var bool\n     */\n    private $hasRecords = false;\n\n    protected $initialized = false;\n\n    /**\n     * @param RollbarNotifier $rollbarNotifier RollbarNotifier object constructed with valid token\n     * @param int             $level           The minimum logging level at which this handler will be triggered\n     * @param bool            $bubble          Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(RollbarNotifier $rollbarNotifier, $level = Logger::ERROR, $bubble = true)\n    {\n        $this->rollbarNotifier = $rollbarNotifier;\n\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        if (!$this->initialized) {\n            // __destructor() doesn't get called on Fatal errors\n            register_shutdown_function(array($this, 'close'));\n            $this->initialized = true;\n        }\n\n        $context = $record['context'];\n        $payload = array();\n        if (isset($context['payload'])) {\n            $payload = $context['payload'];\n            unset($context['payload']);\n        }\n        $context = array_merge($context, $record['extra'], array(\n            'level' => $this->levelMap[$record['level']],\n            'monolog_level' => $record['level_name'],\n            'channel' => $record['channel'],\n            'datetime' => $record['datetime']->format('U'),\n        ));\n\n        if (isset($context['exception']) && $context['exception'] instanceof Exception) {\n            $payload['level'] = $context['level'];\n            $exception = $context['exception'];\n            unset($context['exception']);\n\n            $this->rollbarNotifier->report_exception($exception, $context, $payload);\n        } else {\n            $this->rollbarNotifier->report_message(\n                $record['message'],\n                $context['level'],\n                $context,\n                $payload\n            );\n        }\n\n        $this->hasRecords = true;\n    }\n\n    public function flush()\n    {\n        if ($this->hasRecords) {\n            $this->rollbarNotifier->flush();\n            $this->hasRecords = false;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        $this->flush();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function reset()\n    {\n        $this->flush();\n\n        parent::reset();\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Stores logs to files that are rotated every day and a limited number of files are kept.\n *\n * This rotation is only intended to be used as a workaround. Using logrotate to\n * handle the rotation is strongly encouraged when you can use it.\n *\n * @author Christophe Coevoet <stof@notk.org>\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass RotatingFileHandler extends StreamHandler\n{\n    const FILE_PER_DAY = 'Y-m-d';\n    const FILE_PER_MONTH = 'Y-m';\n    const FILE_PER_YEAR = 'Y';\n\n    protected $filename;\n    protected $maxFiles;\n    protected $mustRotate;\n    protected $nextRotation;\n    protected $filenameFormat;\n    protected $dateFormat;\n\n    /**\n     * @param string   $filename\n     * @param int      $maxFiles       The maximal amount of files to keep (0 means unlimited)\n     * @param int      $level          The minimum logging level at which this handler will be triggered\n     * @param bool     $bubble         Whether the messages that are handled can bubble up the stack or not\n     * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)\n     * @param bool     $useLocking     Try to lock log file before doing any writes\n     */\n    public function __construct($filename, $maxFiles = 0, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false)\n    {\n        $this->filename = $filename;\n        $this->maxFiles = (int) $maxFiles;\n        $this->nextRotation = new \\DateTime('tomorrow');\n        $this->filenameFormat = '{filename}-{date}';\n        $this->dateFormat = 'Y-m-d';\n\n        parent::__construct($this->getTimedFilename(), $level, $bubble, $filePermission, $useLocking);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        parent::close();\n\n        if (true === $this->mustRotate) {\n            $this->rotate();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function reset()\n    {\n        parent::reset();\n\n        if (true === $this->mustRotate) {\n            $this->rotate();\n        }\n    }\n\n    public function setFilenameFormat($filenameFormat, $dateFormat)\n    {\n        if (!preg_match('{^Y(([/_.-]?m)([/_.-]?d)?)?$}', $dateFormat)) {\n            trigger_error(\n                'Invalid date format - format must be one of '.\n                'RotatingFileHandler::FILE_PER_DAY (\"Y-m-d\"), RotatingFileHandler::FILE_PER_MONTH (\"Y-m\") '.\n                'or RotatingFileHandler::FILE_PER_YEAR (\"Y\"), or you can set one of the '.\n                'date formats using slashes, underscores and/or dots instead of dashes.',\n                E_USER_DEPRECATED\n            );\n        }\n        if (substr_count($filenameFormat, '{date}') === 0) {\n            trigger_error(\n                'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.',\n                E_USER_DEPRECATED\n            );\n        }\n        $this->filenameFormat = $filenameFormat;\n        $this->dateFormat = $dateFormat;\n        $this->url = $this->getTimedFilename();\n        $this->close();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        // on the first record written, if the log is new, we should rotate (once per day)\n        if (null === $this->mustRotate) {\n            $this->mustRotate = !file_exists($this->url);\n        }\n\n        if ($this->nextRotation < $record['datetime']) {\n            $this->mustRotate = true;\n            $this->close();\n        }\n\n        parent::write($record);\n    }\n\n    /**\n     * Rotates the files.\n     */\n    protected function rotate()\n    {\n        // update filename\n        $this->url = $this->getTimedFilename();\n        $this->nextRotation = new \\DateTime('tomorrow');\n\n        // skip GC of old logs if files are unlimited\n        if (0 === $this->maxFiles) {\n            return;\n        }\n\n        $logFiles = glob($this->getGlobPattern());\n        if ($this->maxFiles >= count($logFiles)) {\n            // no files to remove\n            return;\n        }\n\n        // Sorting the files by name to remove the older ones\n        usort($logFiles, function ($a, $b) {\n            return strcmp($b, $a);\n        });\n\n        foreach (array_slice($logFiles, $this->maxFiles) as $file) {\n            if (is_writable($file)) {\n                // suppress errors here as unlink() might fail if two processes\n                // are cleaning up/rotating at the same time\n                set_error_handler(function ($errno, $errstr, $errfile, $errline) {});\n                unlink($file);\n                restore_error_handler();\n            }\n        }\n\n        $this->mustRotate = false;\n    }\n\n    protected function getTimedFilename()\n    {\n        $fileInfo = pathinfo($this->filename);\n        $timedFilename = str_replace(\n            array('{filename}', '{date}'),\n            array($fileInfo['filename'], date($this->dateFormat)),\n            $fileInfo['dirname'] . '/' . $this->filenameFormat\n        );\n\n        if (!empty($fileInfo['extension'])) {\n            $timedFilename .= '.'.$fileInfo['extension'];\n        }\n\n        return $timedFilename;\n    }\n\n    protected function getGlobPattern()\n    {\n        $fileInfo = pathinfo($this->filename);\n        $glob = str_replace(\n            array('{filename}', '{date}'),\n            array($fileInfo['filename'], '[0-9][0-9][0-9][0-9]*'),\n            $fileInfo['dirname'] . '/' . $this->filenameFormat\n        );\n        if (!empty($fileInfo['extension'])) {\n            $glob .= '.'.$fileInfo['extension'];\n        }\n\n        return $glob;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\n/**\n * Sampling handler\n *\n * A sampled event stream can be useful for logging high frequency events in\n * a production environment where you only need an idea of what is happening\n * and are not concerned with capturing every occurrence. Since the decision to\n * handle or not handle a particular event is determined randomly, the\n * resulting sampled log is not guaranteed to contain 1/N of the events that\n * occurred in the application, but based on the Law of large numbers, it will\n * tend to be close to this ratio with a large number of attempts.\n *\n * @author Bryan Davis <bd808@wikimedia.org>\n * @author Kunal Mehta <legoktm@gmail.com>\n */\nclass SamplingHandler extends AbstractHandler\n{\n    /**\n     * @var callable|HandlerInterface $handler\n     */\n    protected $handler;\n\n    /**\n     * @var int $factor\n     */\n    protected $factor;\n\n    /**\n     * @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler).\n     * @param int                       $factor  Sample factor\n     */\n    public function __construct($handler, $factor)\n    {\n        parent::__construct();\n        $this->handler = $handler;\n        $this->factor = $factor;\n\n        if (!$this->handler instanceof HandlerInterface && !is_callable($this->handler)) {\n            throw new \\RuntimeException(\"The given handler (\".json_encode($this->handler).\") is not a callable nor a Monolog\\Handler\\HandlerInterface object\");\n        }\n    }\n\n    public function isHandling(array $record)\n    {\n        return $this->handler->isHandling($record);\n    }\n\n    public function handle(array $record)\n    {\n        if ($this->isHandling($record) && mt_rand(1, $this->factor) === 1) {\n            // The same logic as in FingersCrossedHandler\n            if (!$this->handler instanceof HandlerInterface) {\n                $this->handler = call_user_func($this->handler, $record, $this);\n                if (!$this->handler instanceof HandlerInterface) {\n                    throw new \\RuntimeException(\"The factory callable should return a HandlerInterface\");\n                }\n            }\n\n            if ($this->processors) {\n                foreach ($this->processors as $processor) {\n                    $record = call_user_func($processor, $record);\n                }\n            }\n\n            $this->handler->handle($record);\n        }\n\n        return false === $this->bubble;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\Slack;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\NormalizerFormatter;\nuse Monolog\\Formatter\\FormatterInterface;\n\n/**\n * Slack record utility helping to log to Slack webhooks or API.\n *\n * @author Greg Kedzierski <greg@gregkedzierski.com>\n * @author Haralan Dobrev <hkdobrev@gmail.com>\n * @see    https://api.slack.com/incoming-webhooks\n * @see    https://api.slack.com/docs/message-attachments\n */\nclass SlackRecord\n{\n    const COLOR_DANGER = 'danger';\n\n    const COLOR_WARNING = 'warning';\n\n    const COLOR_GOOD = 'good';\n\n    const COLOR_DEFAULT = '#e3e4e6';\n\n    /**\n     * Slack channel (encoded ID or name)\n     * @var string|null\n     */\n    private $channel;\n\n    /**\n     * Name of a bot\n     * @var string|null\n     */\n    private $username;\n\n    /**\n     * User icon e.g. 'ghost', 'http://example.com/user.png'\n     * @var string\n     */\n    private $userIcon;\n\n    /**\n     * Whether the message should be added to Slack as attachment (plain text otherwise)\n     * @var bool\n     */\n    private $useAttachment;\n\n    /**\n     * Whether the the context/extra messages added to Slack as attachments are in a short style\n     * @var bool\n     */\n    private $useShortAttachment;\n\n    /**\n     * Whether the attachment should include context and extra data\n     * @var bool\n     */\n    private $includeContextAndExtra;\n\n    /**\n     * Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2']\n     * @var array\n     */\n    private $excludeFields;\n\n    /**\n     * @var FormatterInterface\n     */\n    private $formatter;\n\n    /**\n     * @var NormalizerFormatter\n     */\n    private $normalizerFormatter;\n\n    public function __construct($channel = null, $username = null, $useAttachment = true, $userIcon = null, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array(), FormatterInterface $formatter = null)\n    {\n        $this->channel = $channel;\n        $this->username = $username;\n        $this->userIcon = trim($userIcon, ':');\n        $this->useAttachment = $useAttachment;\n        $this->useShortAttachment = $useShortAttachment;\n        $this->includeContextAndExtra = $includeContextAndExtra;\n        $this->excludeFields = $excludeFields;\n        $this->formatter = $formatter;\n\n        if ($this->includeContextAndExtra) {\n            $this->normalizerFormatter = new NormalizerFormatter();\n        }\n    }\n\n    public function getSlackData(array $record)\n    {\n        $dataArray = array();\n        $record = $this->excludeFields($record);\n\n        if ($this->username) {\n            $dataArray['username'] = $this->username;\n        }\n\n        if ($this->channel) {\n            $dataArray['channel'] = $this->channel;\n        }\n\n        if ($this->formatter && !$this->useAttachment) {\n            $message = $this->formatter->format($record);\n        } else {\n            $message = $record['message'];\n        }\n\n        if ($this->useAttachment) {\n            $attachment = array(\n                'fallback'  => $message,\n                'text'      => $message,\n                'color'     => $this->getAttachmentColor($record['level']),\n                'fields'    => array(),\n                'mrkdwn_in' => array('fields'),\n                'ts'        => $record['datetime']->getTimestamp()\n            );\n\n            if ($this->useShortAttachment) {\n                $attachment['title'] = $record['level_name'];\n            } else {\n                $attachment['title'] = 'Message';\n                $attachment['fields'][] = $this->generateAttachmentField('Level', $record['level_name']);\n            }\n\n\n            if ($this->includeContextAndExtra) {\n                foreach (array('extra', 'context') as $key) {\n                    if (empty($record[$key])) {\n                        continue;\n                    }\n\n                    if ($this->useShortAttachment) {\n                        $attachment['fields'][] = $this->generateAttachmentField(\n                            $key,\n                            $record[$key]\n                        );\n                    } else {\n                        // Add all extra fields as individual fields in attachment\n                        $attachment['fields'] = array_merge(\n                            $attachment['fields'],\n                            $this->generateAttachmentFields($record[$key])\n                        );\n                    }\n                }\n            }\n\n            $dataArray['attachments'] = array($attachment);\n        } else {\n            $dataArray['text'] = $message;\n        }\n\n        if ($this->userIcon) {\n            if (filter_var($this->userIcon, FILTER_VALIDATE_URL)) {\n                $dataArray['icon_url'] = $this->userIcon;\n            } else {\n                $dataArray['icon_emoji'] = \":{$this->userIcon}:\";\n            }\n        }\n\n        return $dataArray;\n    }\n\n    /**\n     * Returned a Slack message attachment color associated with\n     * provided level.\n     *\n     * @param  int    $level\n     * @return string\n     */\n    public function getAttachmentColor($level)\n    {\n        switch (true) {\n            case $level >= Logger::ERROR:\n                return self::COLOR_DANGER;\n            case $level >= Logger::WARNING:\n                return self::COLOR_WARNING;\n            case $level >= Logger::INFO:\n                return self::COLOR_GOOD;\n            default:\n                return self::COLOR_DEFAULT;\n        }\n    }\n\n    /**\n     * Stringifies an array of key/value pairs to be used in attachment fields\n     *\n     * @param array $fields\n     *\n     * @return string\n     */\n    public function stringify($fields)\n    {\n        $normalized = $this->normalizerFormatter->format($fields);\n        $prettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128;\n\n        $hasSecondDimension = count(array_filter($normalized, 'is_array'));\n        $hasNonNumericKeys = !count(array_filter(array_keys($normalized), 'is_numeric'));\n\n        return $hasSecondDimension || $hasNonNumericKeys\n            ? json_encode($normalized, $prettyPrintFlag)\n            : json_encode($normalized);\n    }\n\n    /**\n     * Sets the formatter\n     *\n     * @param FormatterInterface $formatter\n     */\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        $this->formatter = $formatter;\n    }\n\n    /**\n     * Generates attachment field\n     *\n     * @param string       $title\n     * @param string|array $value\n     *\n     * @return array\n     */\n    private function generateAttachmentField($title, $value)\n    {\n        $value = is_array($value)\n            ? sprintf('```%s```', $this->stringify($value))\n            : $value;\n\n        return array(\n            'title' => ucfirst($title),\n            'value' => $value,\n            'short' => false\n        );\n    }\n\n    /**\n     * Generates a collection of attachment fields from array\n     *\n     * @param array $data\n     *\n     * @return array\n     */\n    private function generateAttachmentFields(array $data)\n    {\n        $fields = array();\n        foreach ($this->normalizerFormatter->format($data) as $key => $value) {\n            $fields[] = $this->generateAttachmentField($key, $value);\n        }\n\n        return $fields;\n    }\n\n    /**\n     * Get a copy of record with fields excluded according to $this->excludeFields\n     *\n     * @param array $record\n     *\n     * @return array\n     */\n    private function excludeFields(array $record)\n    {\n        foreach ($this->excludeFields as $field) {\n            $keys = explode('.', $field);\n            $node = &$record;\n            $lastKey = end($keys);\n            foreach ($keys as $key) {\n                if (!isset($node[$key])) {\n                    break;\n                }\n                if ($lastKey === $key) {\n                    unset($node[$key]);\n                    break;\n                }\n                $node = &$node[$key];\n            }\n        }\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Logger;\nuse Monolog\\Handler\\Slack\\SlackRecord;\n\n/**\n * Sends notifications through Slack API\n *\n * @author Greg Kedzierski <greg@gregkedzierski.com>\n * @see    https://api.slack.com/\n */\nclass SlackHandler extends SocketHandler\n{\n    /**\n     * Slack API token\n     * @var string\n     */\n    private $token;\n\n    /**\n     * Instance of the SlackRecord util class preparing data for Slack API.\n     * @var SlackRecord\n     */\n    private $slackRecord;\n\n    /**\n     * @param  string                    $token                  Slack API token\n     * @param  string                    $channel                Slack channel (encoded ID or name)\n     * @param  string|null               $username               Name of a bot\n     * @param  bool                      $useAttachment          Whether the message should be added to Slack as attachment (plain text otherwise)\n     * @param  string|null               $iconEmoji              The emoji name to use (or null)\n     * @param  int                       $level                  The minimum logging level at which this handler will be triggered\n     * @param  bool                      $bubble                 Whether the messages that are handled can bubble up the stack or not\n     * @param  bool                      $useShortAttachment     Whether the the context/extra messages added to Slack as attachments are in a short style\n     * @param  bool                      $includeContextAndExtra Whether the attachment should include context and extra data\n     * @param  array                     $excludeFields          Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2']\n     * @throws MissingExtensionException If no OpenSSL PHP extension configured\n     */\n    public function __construct($token, $channel, $username = null, $useAttachment = true, $iconEmoji = null, $level = Logger::CRITICAL, $bubble = true, $useShortAttachment = false, $includeContextAndExtra = false, array $excludeFields = array())\n    {\n        if (!extension_loaded('openssl')) {\n            throw new MissingExtensionException('The OpenSSL PHP extension is required to use the SlackHandler');\n        }\n\n        parent::__construct('ssl://slack.com:443', $level, $bubble);\n\n        $this->slackRecord = new SlackRecord(\n            $channel,\n            $username,\n            $useAttachment,\n            $iconEmoji,\n            $useShortAttachment,\n            $includeContextAndExtra,\n            $excludeFields,\n            $this->formatter\n        );\n\n        $this->token = $token;\n    }\n\n    public function getSlackRecord()\n    {\n        return $this->slackRecord;\n    }\n\n    public function getToken()\n    {\n        return $this->token;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param  array  $record\n     * @return string\n     */\n    protected function generateDataStream($record)\n    {\n        $content = $this->buildContent($record);\n\n        return $this->buildHeader($content) . $content;\n    }\n\n    /**\n     * Builds the body of API call\n     *\n     * @param  array  $record\n     * @return string\n     */\n    private function buildContent($record)\n    {\n        $dataArray = $this->prepareContentData($record);\n\n        return http_build_query($dataArray);\n    }\n\n    /**\n     * Prepares content data\n     *\n     * @param  array $record\n     * @return array\n     */\n    protected function prepareContentData($record)\n    {\n        $dataArray = $this->slackRecord->getSlackData($record);\n        $dataArray['token'] = $this->token;\n\n        if (!empty($dataArray['attachments'])) {\n            $dataArray['attachments'] = json_encode($dataArray['attachments']);\n        }\n\n        return $dataArray;\n    }\n\n    /**\n     * Builds the header of the API Call\n     *\n     * @param  string $content\n     * @return string\n     */\n    private function buildHeader($content)\n    {\n        $header = \"POST /api/chat.postMessage HTTP/1.1\\r\\n\";\n        $header .= \"Host: slack.com\\r\\n\";\n        $header .= \"Content-Type: application/x-www-form-urlencoded\\r\\n\";\n        $header .= \"Content-Length: \" . strlen($content) . \"\\r\\n\";\n        $header .= \"\\r\\n\";\n\n        return $header;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        parent::write($record);\n        $this->finalizeWrite();\n    }\n\n    /**\n     * Finalizes the request by reading some bytes and then closing the socket\n     *\n     * If we do not read some but close the socket too early, slack sometimes\n     * drops the request entirely.\n     */\n    protected function finalizeWrite()\n    {\n        $res = $this->getResource();\n        if (is_resource($res)) {\n            @fread($res, 2048);\n        }\n        $this->closeSocket();\n    }\n\n    /**\n     * Returned a Slack message attachment color associated with\n     * provided level.\n     *\n     * @param  int    $level\n     * @return string\n     * @deprecated Use underlying SlackRecord instead\n     */\n    protected function getAttachmentColor($level)\n    {\n        trigger_error(\n            'SlackHandler::getAttachmentColor() is deprecated. Use underlying SlackRecord instead.',\n            E_USER_DEPRECATED\n        );\n\n        return $this->slackRecord->getAttachmentColor($level);\n    }\n\n    /**\n     * Stringifies an array of key/value pairs to be used in attachment fields\n     *\n     * @param  array  $fields\n     * @return string\n     * @deprecated Use underlying SlackRecord instead\n     */\n    protected function stringify($fields)\n    {\n        trigger_error(\n            'SlackHandler::stringify() is deprecated. Use underlying SlackRecord instead.',\n            E_USER_DEPRECATED\n        );\n\n        return $this->slackRecord->stringify($fields);\n    }\n\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        parent::setFormatter($formatter);\n        $this->slackRecord->setFormatter($formatter);\n\n        return $this;\n    }\n\n    public function getFormatter()\n    {\n        $formatter = parent::getFormatter();\n        $this->slackRecord->setFormatter($formatter);\n\n        return $formatter;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Logger;\nuse Monolog\\Handler\\Slack\\SlackRecord;\n\n/**\n * Sends notifications through Slack Webhooks\n *\n * @author Haralan Dobrev <hkdobrev@gmail.com>\n * @see    https://api.slack.com/incoming-webhooks\n */\nclass SlackWebhookHandler extends AbstractProcessingHandler\n{\n    /**\n     * Slack Webhook token\n     * @var string\n     */\n    private $webhookUrl;\n\n    /**\n     * Instance of the SlackRecord util class preparing data for Slack API.\n     * @var SlackRecord\n     */\n    private $slackRecord;\n\n    /**\n     * @param  string      $webhookUrl             Slack Webhook URL\n     * @param  string|null $channel                Slack channel (encoded ID or name)\n     * @param  string|null $username               Name of a bot\n     * @param  bool        $useAttachment          Whether the message should be added to Slack as attachment (plain text otherwise)\n     * @param  string|null $iconEmoji              The emoji name to use (or null)\n     * @param  bool        $useShortAttachment     Whether the the context/extra messages added to Slack as attachments are in a short style\n     * @param  bool        $includeContextAndExtra Whether the attachment should include context and extra data\n     * @param  int         $level                  The minimum logging level at which this handler will be triggered\n     * @param  bool        $bubble                 Whether the messages that are handled can bubble up the stack or not\n     * @param  array       $excludeFields          Dot separated list of fields to exclude from slack message. E.g. ['context.field1', 'extra.field2']\n     */\n    public function __construct($webhookUrl, $channel = null, $username = null, $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeContextAndExtra = false, $level = Logger::CRITICAL, $bubble = true, array $excludeFields = array())\n    {\n        parent::__construct($level, $bubble);\n\n        $this->webhookUrl = $webhookUrl;\n\n        $this->slackRecord = new SlackRecord(\n            $channel,\n            $username,\n            $useAttachment,\n            $iconEmoji,\n            $useShortAttachment,\n            $includeContextAndExtra,\n            $excludeFields,\n            $this->formatter\n        );\n    }\n\n    public function getSlackRecord()\n    {\n        return $this->slackRecord;\n    }\n\n    public function getWebhookUrl()\n    {\n        return $this->webhookUrl;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        $postData = $this->slackRecord->getSlackData($record);\n        $postString = json_encode($postData);\n\n        $ch = curl_init();\n        $options = array(\n            CURLOPT_URL => $this->webhookUrl,\n            CURLOPT_POST => true,\n            CURLOPT_RETURNTRANSFER => true,\n            CURLOPT_HTTPHEADER => array('Content-type: application/json'),\n            CURLOPT_POSTFIELDS => $postString\n        );\n        if (defined('CURLOPT_SAFE_UPLOAD')) {\n            $options[CURLOPT_SAFE_UPLOAD] = true;\n        }\n\n        curl_setopt_array($ch, $options);\n\n        Curl\\Util::execute($ch);\n    }\n\n    public function setFormatter(FormatterInterface $formatter)\n    {\n        parent::setFormatter($formatter);\n        $this->slackRecord->setFormatter($formatter);\n\n        return $this;\n    }\n\n    public function getFormatter()\n    {\n        $formatter = parent::getFormatter();\n        $this->slackRecord->setFormatter($formatter);\n\n        return $formatter;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Sends notifications through Slack's Slackbot\n *\n * @author Haralan Dobrev <hkdobrev@gmail.com>\n * @see    https://slack.com/apps/A0F81R8ET-slackbot\n */\nclass SlackbotHandler extends AbstractProcessingHandler\n{\n    /**\n     * The slug of the Slack team\n     * @var string\n     */\n    private $slackTeam;\n\n    /**\n     * Slackbot token\n     * @var string\n     */\n    private $token;\n\n    /**\n     * Slack channel name\n     * @var string\n     */\n    private $channel;\n\n    /**\n     * @param  string $slackTeam Slack team slug\n     * @param  string $token     Slackbot token\n     * @param  string $channel   Slack channel (encoded ID or name)\n     * @param  int    $level     The minimum logging level at which this handler will be triggered\n     * @param  bool   $bubble    Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        $this->slackTeam = $slackTeam;\n        $this->token = $token;\n        $this->channel = $channel;\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param array $record\n     */\n    protected function write(array $record)\n    {\n        $slackbotUrl = sprintf(\n            'https://%s.slack.com/services/hooks/slackbot?token=%s&channel=%s',\n            $this->slackTeam,\n            $this->token,\n            $this->channel\n        );\n\n        $ch = curl_init();\n        curl_setopt($ch, CURLOPT_URL, $slackbotUrl);\n        curl_setopt($ch, CURLOPT_POST, true);\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n        curl_setopt($ch, CURLOPT_POSTFIELDS, $record['message']);\n\n        Curl\\Util::execute($ch);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Stores to any socket - uses fsockopen() or pfsockopen().\n *\n * @author Pablo de Leon Belloc <pablolb@gmail.com>\n * @see    http://php.net/manual/en/function.fsockopen.php\n */\nclass SocketHandler extends AbstractProcessingHandler\n{\n    private $connectionString;\n    private $connectionTimeout;\n    private $resource;\n    private $timeout = 0;\n    private $writingTimeout = 10;\n    private $lastSentBytes = null;\n    private $chunkSize = null;\n    private $persistent = false;\n    private $errno;\n    private $errstr;\n    private $lastWritingAt;\n\n    /**\n     * @param string $connectionString Socket connection string\n     * @param int    $level            The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble           Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct($connectionString, $level = Logger::DEBUG, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n        $this->connectionString = $connectionString;\n        $this->connectionTimeout = (float) ini_get('default_socket_timeout');\n    }\n\n    /**\n     * Connect (if necessary) and write to the socket\n     *\n     * @param array $record\n     *\n     * @throws \\UnexpectedValueException\n     * @throws \\RuntimeException\n     */\n    protected function write(array $record)\n    {\n        $this->connectIfNotConnected();\n        $data = $this->generateDataStream($record);\n        $this->writeToSocket($data);\n    }\n\n    /**\n     * We will not close a PersistentSocket instance so it can be reused in other requests.\n     */\n    public function close()\n    {\n        if (!$this->isPersistent()) {\n            $this->closeSocket();\n        }\n    }\n\n    /**\n     * Close socket, if open\n     */\n    public function closeSocket()\n    {\n        if (is_resource($this->resource)) {\n            fclose($this->resource);\n            $this->resource = null;\n        }\n    }\n\n    /**\n     * Set socket connection to nbe persistent. It only has effect before the connection is initiated.\n     *\n     * @param bool $persistent\n     */\n    public function setPersistent($persistent)\n    {\n        $this->persistent = (bool) $persistent;\n    }\n\n    /**\n     * Set connection timeout.  Only has effect before we connect.\n     *\n     * @param float $seconds\n     *\n     * @see http://php.net/manual/en/function.fsockopen.php\n     */\n    public function setConnectionTimeout($seconds)\n    {\n        $this->validateTimeout($seconds);\n        $this->connectionTimeout = (float) $seconds;\n    }\n\n    /**\n     * Set write timeout. Only has effect before we connect.\n     *\n     * @param float $seconds\n     *\n     * @see http://php.net/manual/en/function.stream-set-timeout.php\n     */\n    public function setTimeout($seconds)\n    {\n        $this->validateTimeout($seconds);\n        $this->timeout = (float) $seconds;\n    }\n\n    /**\n     * Set writing timeout. Only has effect during connection in the writing cycle.\n     *\n     * @param float $seconds 0 for no timeout\n     */\n    public function setWritingTimeout($seconds)\n    {\n        $this->validateTimeout($seconds);\n        $this->writingTimeout = (float) $seconds;\n    }\n\n    /**\n     * Set chunk size. Only has effect during connection in the writing cycle.\n     *\n     * @param float $bytes\n     */\n    public function setChunkSize($bytes)\n    {\n        $this->chunkSize = $bytes;\n    }\n\n    /**\n     * Get current connection string\n     *\n     * @return string\n     */\n    public function getConnectionString()\n    {\n        return $this->connectionString;\n    }\n\n    /**\n     * Get persistent setting\n     *\n     * @return bool\n     */\n    public function isPersistent()\n    {\n        return $this->persistent;\n    }\n\n    /**\n     * Get current connection timeout setting\n     *\n     * @return float\n     */\n    public function getConnectionTimeout()\n    {\n        return $this->connectionTimeout;\n    }\n\n    /**\n     * Get current in-transfer timeout\n     *\n     * @return float\n     */\n    public function getTimeout()\n    {\n        return $this->timeout;\n    }\n\n    /**\n     * Get current local writing timeout\n     *\n     * @return float\n     */\n    public function getWritingTimeout()\n    {\n        return $this->writingTimeout;\n    }\n\n    /**\n     * Get current chunk size\n     *\n     * @return float\n     */\n    public function getChunkSize()\n    {\n        return $this->chunkSize;\n    }\n\n    /**\n     * Check to see if the socket is currently available.\n     *\n     * UDP might appear to be connected but might fail when writing.  See http://php.net/fsockopen for details.\n     *\n     * @return bool\n     */\n    public function isConnected()\n    {\n        return is_resource($this->resource)\n            && !feof($this->resource);  // on TCP - other party can close connection.\n    }\n\n    /**\n     * Wrapper to allow mocking\n     */\n    protected function pfsockopen()\n    {\n        return @pfsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout);\n    }\n\n    /**\n     * Wrapper to allow mocking\n     */\n    protected function fsockopen()\n    {\n        return @fsockopen($this->connectionString, -1, $this->errno, $this->errstr, $this->connectionTimeout);\n    }\n\n    /**\n     * Wrapper to allow mocking\n     *\n     * @see http://php.net/manual/en/function.stream-set-timeout.php\n     */\n    protected function streamSetTimeout()\n    {\n        $seconds = floor($this->timeout);\n        $microseconds = round(($this->timeout - $seconds) * 1e6);\n\n        return stream_set_timeout($this->resource, $seconds, $microseconds);\n    }\n\n    /**\n     * Wrapper to allow mocking\n     *\n     * @see http://php.net/manual/en/function.stream-set-chunk-size.php\n     */\n    protected function streamSetChunkSize()\n    {\n        return stream_set_chunk_size($this->resource, $this->chunkSize);\n    }\n\n    /**\n     * Wrapper to allow mocking\n     */\n    protected function fwrite($data)\n    {\n        return @fwrite($this->resource, $data);\n    }\n\n    /**\n     * Wrapper to allow mocking\n     */\n    protected function streamGetMetadata()\n    {\n        return stream_get_meta_data($this->resource);\n    }\n\n    private function validateTimeout($value)\n    {\n        $ok = filter_var($value, FILTER_VALIDATE_FLOAT);\n        if ($ok === false || $value < 0) {\n            throw new \\InvalidArgumentException(\"Timeout must be 0 or a positive float (got $value)\");\n        }\n    }\n\n    private function connectIfNotConnected()\n    {\n        if ($this->isConnected()) {\n            return;\n        }\n        $this->connect();\n    }\n\n    protected function generateDataStream($record)\n    {\n        return (string) $record['formatted'];\n    }\n\n    /**\n     * @return resource|null\n     */\n    protected function getResource()\n    {\n        return $this->resource;\n    }\n\n    private function connect()\n    {\n        $this->createSocketResource();\n        $this->setSocketTimeout();\n        $this->setStreamChunkSize();\n    }\n\n    private function createSocketResource()\n    {\n        if ($this->isPersistent()) {\n            $resource = $this->pfsockopen();\n        } else {\n            $resource = $this->fsockopen();\n        }\n        if (!$resource) {\n            throw new \\UnexpectedValueException(\"Failed connecting to $this->connectionString ($this->errno: $this->errstr)\");\n        }\n        $this->resource = $resource;\n    }\n\n    private function setSocketTimeout()\n    {\n        if (!$this->streamSetTimeout()) {\n            throw new \\UnexpectedValueException(\"Failed setting timeout with stream_set_timeout()\");\n        }\n    }\n\n    private function setStreamChunkSize()\n    {\n        if ($this->chunkSize && !$this->streamSetChunkSize()) {\n            throw new \\UnexpectedValueException(\"Failed setting chunk size with stream_set_chunk_size()\");\n        }\n    }\n\n    private function writeToSocket($data)\n    {\n        $length = strlen($data);\n        $sent = 0;\n        $this->lastSentBytes = $sent;\n        while ($this->isConnected() && $sent < $length) {\n            if (0 == $sent) {\n                $chunk = $this->fwrite($data);\n            } else {\n                $chunk = $this->fwrite(substr($data, $sent));\n            }\n            if ($chunk === false) {\n                throw new \\RuntimeException(\"Could not write to socket\");\n            }\n            $sent += $chunk;\n            $socketInfo = $this->streamGetMetadata();\n            if ($socketInfo['timed_out']) {\n                throw new \\RuntimeException(\"Write timed-out\");\n            }\n\n            if ($this->writingIsTimedOut($sent)) {\n                throw new \\RuntimeException(\"Write timed-out, no data sent for `{$this->writingTimeout}` seconds, probably we got disconnected (sent $sent of $length)\");\n            }\n        }\n        if (!$this->isConnected() && $sent < $length) {\n            throw new \\RuntimeException(\"End-of-file reached, probably we got disconnected (sent $sent of $length)\");\n        }\n    }\n\n    private function writingIsTimedOut($sent)\n    {\n        $writingTimeout = (int) floor($this->writingTimeout);\n        if (0 === $writingTimeout) {\n            return false;\n        }\n\n        if ($sent !== $this->lastSentBytes) {\n            $this->lastWritingAt = time();\n            $this->lastSentBytes = $sent;\n\n            return false;\n        } else {\n            usleep(100);\n        }\n\n        if ((time() - $this->lastWritingAt) >= $writingTimeout) {\n            $this->closeSocket();\n\n            return true;\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Stores to any stream resource\n *\n * Can be used to store into php://stderr, remote and local files, etc.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass StreamHandler extends AbstractProcessingHandler\n{\n    protected $stream;\n    protected $url;\n    private $errorMessage;\n    protected $filePermission;\n    protected $useLocking;\n    private $dirCreated;\n\n    /**\n     * @param resource|string $stream\n     * @param int             $level          The minimum logging level at which this handler will be triggered\n     * @param bool            $bubble         Whether the messages that are handled can bubble up the stack or not\n     * @param int|null        $filePermission Optional file permissions (default (0644) are only for owner read/write)\n     * @param bool            $useLocking     Try to lock log file before doing any writes\n     *\n     * @throws \\Exception                If a missing directory is not buildable\n     * @throws \\InvalidArgumentException If stream is not a resource or string\n     */\n    public function __construct($stream, $level = Logger::DEBUG, $bubble = true, $filePermission = null, $useLocking = false)\n    {\n        parent::__construct($level, $bubble);\n        if (is_resource($stream)) {\n            $this->stream = $stream;\n        } elseif (is_string($stream)) {\n            $this->url = $stream;\n        } else {\n            throw new \\InvalidArgumentException('A stream must either be a resource or a string.');\n        }\n\n        $this->filePermission = $filePermission;\n        $this->useLocking = $useLocking;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        if ($this->url && is_resource($this->stream)) {\n            fclose($this->stream);\n        }\n        $this->stream = null;\n    }\n\n    /**\n     * Return the currently active stream if it is open\n     *\n     * @return resource|null\n     */\n    public function getStream()\n    {\n        return $this->stream;\n    }\n\n    /**\n     * Return the stream URL if it was configured with a URL and not an active resource\n     *\n     * @return string|null\n     */\n    public function getUrl()\n    {\n        return $this->url;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        if (!is_resource($this->stream)) {\n            if (null === $this->url || '' === $this->url) {\n                throw new \\LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().');\n            }\n            $this->createDir();\n            $this->errorMessage = null;\n            set_error_handler(array($this, 'customErrorHandler'));\n            $this->stream = fopen($this->url, 'a');\n            if ($this->filePermission !== null) {\n                @chmod($this->url, $this->filePermission);\n            }\n            restore_error_handler();\n            if (!is_resource($this->stream)) {\n                $this->stream = null;\n                throw new \\UnexpectedValueException(sprintf('The stream or file \"%s\" could not be opened: '.$this->errorMessage, $this->url));\n            }\n        }\n\n        if ($this->useLocking) {\n            // ignoring errors here, there's not much we can do about them\n            flock($this->stream, LOCK_EX);\n        }\n\n        $this->streamWrite($this->stream, $record);\n\n        if ($this->useLocking) {\n            flock($this->stream, LOCK_UN);\n        }\n    }\n\n    /**\n     * Write to stream\n     * @param resource $stream\n     * @param array $record\n     */\n    protected function streamWrite($stream, array $record)\n    {\n        fwrite($stream, (string) $record['formatted']);\n    }\n\n    private function customErrorHandler($code, $msg)\n    {\n        $this->errorMessage = preg_replace('{^(fopen|mkdir)\\(.*?\\): }', '', $msg);\n    }\n\n    /**\n     * @param string $stream\n     *\n     * @return null|string\n     */\n    private function getDirFromStream($stream)\n    {\n        $pos = strpos($stream, '://');\n        if ($pos === false) {\n            return dirname($stream);\n        }\n\n        if ('file://' === substr($stream, 0, 7)) {\n            return dirname(substr($stream, 7));\n        }\n\n        return;\n    }\n\n    private function createDir()\n    {\n        // Do not try to create dir if it has already been tried.\n        if ($this->dirCreated) {\n            return;\n        }\n\n        $dir = $this->getDirFromStream($this->url);\n        if (null !== $dir && !is_dir($dir)) {\n            $this->errorMessage = null;\n            set_error_handler(array($this, 'customErrorHandler'));\n            $status = mkdir($dir, 0777, true);\n            restore_error_handler();\n            if (false === $status && !is_dir($dir)) {\n                throw new \\UnexpectedValueException(sprintf('There is no existing directory at \"%s\" and its not buildable: '.$this->errorMessage, $dir));\n            }\n        }\n        $this->dirCreated = true;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\FormatterInterface;\nuse Monolog\\Formatter\\LineFormatter;\nuse Swift;\n\n/**\n * SwiftMailerHandler uses Swift_Mailer to send the emails\n *\n * @author Gyula Sallai\n */\nclass SwiftMailerHandler extends MailHandler\n{\n    protected $mailer;\n    private $messageTemplate;\n\n    /**\n     * @param \\Swift_Mailer           $mailer  The mailer to use\n     * @param callable|\\Swift_Message $message An example message for real messages, only the body will be replaced\n     * @param int                     $level   The minimum logging level at which this handler will be triggered\n     * @param bool                    $bubble  Whether the messages that are handled can bubble up the stack or not\n     */\n    public function __construct(\\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true)\n    {\n        parent::__construct($level, $bubble);\n\n        $this->mailer = $mailer;\n        $this->messageTemplate = $message;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function send($content, array $records)\n    {\n        $this->mailer->send($this->buildMessage($content, $records));\n    }\n\n    /**\n     * Gets the formatter for the Swift_Message subject.\n     *\n     * @param  string             $format The format of the subject\n     * @return FormatterInterface\n     */\n    protected function getSubjectFormatter($format)\n    {\n        return new LineFormatter($format);\n    }\n\n    /**\n     * Creates instance of Swift_Message to be sent\n     *\n     * @param  string         $content formatted email body to be sent\n     * @param  array          $records Log records that formed the content\n     * @return \\Swift_Message\n     */\n    protected function buildMessage($content, array $records)\n    {\n        $message = null;\n        if ($this->messageTemplate instanceof \\Swift_Message) {\n            $message = clone $this->messageTemplate;\n            $message->generateId();\n        } elseif (is_callable($this->messageTemplate)) {\n            $message = call_user_func($this->messageTemplate, $content, $records);\n        }\n\n        if (!$message instanceof \\Swift_Message) {\n            throw new \\InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it');\n        }\n\n        if ($records) {\n            $subjectFormatter = $this->getSubjectFormatter($message->getSubject());\n            $message->setSubject($subjectFormatter->format($this->getHighestRecord($records)));\n        }\n\n        $message->setBody($content);\n        if (version_compare(Swift::VERSION, '6.0.0', '>=')) {\n            $message->setDate(new \\DateTimeImmutable());\n        } else {\n            $message->setDate(time());\n        }\n\n        return $message;\n    }\n\n    /**\n     * BC getter, to be removed in 2.0\n     */\n    public function __get($name)\n    {\n        if ($name === 'message') {\n            trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', E_USER_DEPRECATED);\n\n            return $this->buildMessage(null, array());\n        }\n\n        throw new \\InvalidArgumentException('Invalid property '.$name);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\n/**\n * Logs to syslog service.\n *\n * usage example:\n *\n *   $log = new Logger('application');\n *   $syslog = new SyslogHandler('myfacility', 'local6');\n *   $formatter = new LineFormatter(\"%channel%.%level_name%: %message% %extra%\");\n *   $syslog->setFormatter($formatter);\n *   $log->pushHandler($syslog);\n *\n * @author Sven Paulus <sven@karlsruhe.org>\n */\nclass SyslogHandler extends AbstractSyslogHandler\n{\n    protected $ident;\n    protected $logopts;\n\n    /**\n     * @param string $ident\n     * @param mixed  $facility\n     * @param int    $level    The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble   Whether the messages that are handled can bubble up the stack or not\n     * @param int    $logopts  Option flags for the openlog() call, defaults to LOG_PID\n     */\n    public function __construct($ident, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $logopts = LOG_PID)\n    {\n        parent::__construct($facility, $level, $bubble);\n\n        $this->ident = $ident;\n        $this->logopts = $logopts;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        closelog();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        if (!openlog($this->ident, $this->logopts, $this->facility)) {\n            throw new \\LogicException('Can\\'t open syslog for ident \"'.$this->ident.'\" and facility \"'.$this->facility.'\"');\n        }\n        syslog($this->logLevels[$record['level']], (string) $record['formatted']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\SyslogUdp;\n\nclass UdpSocket\n{\n    const DATAGRAM_MAX_LENGTH = 65023;\n\n    protected $ip;\n    protected $port;\n    protected $socket;\n\n    public function __construct($ip, $port = 514)\n    {\n        $this->ip = $ip;\n        $this->port = $port;\n        $this->socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);\n    }\n\n    public function write($line, $header = \"\")\n    {\n        $this->send($this->assembleMessage($line, $header));\n    }\n\n    public function close()\n    {\n        if (is_resource($this->socket)) {\n            socket_close($this->socket);\n            $this->socket = null;\n        }\n    }\n\n    protected function send($chunk)\n    {\n        if (!is_resource($this->socket)) {\n            throw new \\LogicException('The UdpSocket to '.$this->ip.':'.$this->port.' has been closed and can not be written to anymore');\n        }\n        socket_sendto($this->socket, $chunk, strlen($chunk), $flags = 0, $this->ip, $this->port);\n    }\n\n    protected function assembleMessage($line, $header)\n    {\n        $chunkSize = self::DATAGRAM_MAX_LENGTH - strlen($header);\n\n        return $header . substr($line, 0, $chunkSize);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\Handler\\SyslogUdp\\UdpSocket;\n\n/**\n * A Handler for logging to a remote syslogd server.\n *\n * @author Jesper Skovgaard Nielsen <nulpunkt@gmail.com>\n */\nclass SyslogUdpHandler extends AbstractSyslogHandler\n{\n    protected $socket;\n    protected $ident;\n\n    /**\n     * @param string $host\n     * @param int    $port\n     * @param mixed  $facility\n     * @param int    $level    The minimum logging level at which this handler will be triggered\n     * @param bool   $bubble   Whether the messages that are handled can bubble up the stack or not\n     * @param string $ident    Program name or tag for each log message.\n     */\n    public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php')\n    {\n        parent::__construct($facility, $level, $bubble);\n\n        $this->ident = $ident;\n\n        $this->socket = new UdpSocket($host, $port ?: 514);\n    }\n\n    protected function write(array $record)\n    {\n        $lines = $this->splitMessageIntoLines($record['formatted']);\n\n        $header = $this->makeCommonSyslogHeader($this->logLevels[$record['level']]);\n\n        foreach ($lines as $line) {\n            $this->socket->write($line, $header);\n        }\n    }\n\n    public function close()\n    {\n        $this->socket->close();\n    }\n\n    private function splitMessageIntoLines($message)\n    {\n        if (is_array($message)) {\n            $message = implode(\"\\n\", $message);\n        }\n\n        return preg_split('/$\\R?^/m', $message, -1, PREG_SPLIT_NO_EMPTY);\n    }\n\n    /**\n     * Make common syslog header (see rfc5424)\n     */\n    protected function makeCommonSyslogHeader($severity)\n    {\n        $priority = $severity + $this->facility;\n\n        if (!$pid = getmypid()) {\n            $pid = '-';\n        }\n\n        if (!$hostname = gethostname()) {\n            $hostname = '-';\n        }\n\n        return \"<$priority>1 \" .\n            $this->getDateTime() . \" \" .\n            $hostname . \" \" .\n            $this->ident . \" \" .\n            $pid . \" - - \";\n    }\n\n    protected function getDateTime()\n    {\n        return date(\\DateTime::RFC3339);\n    }\n\n    /**\n     * Inject your own socket, mainly used for testing\n     */\n    public function setSocket($socket)\n    {\n        $this->socket = $socket;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\n/**\n * Used for testing purposes.\n *\n * It records all records and gives you access to them for verification.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n *\n * @method bool hasEmergency($record)\n * @method bool hasAlert($record)\n * @method bool hasCritical($record)\n * @method bool hasError($record)\n * @method bool hasWarning($record)\n * @method bool hasNotice($record)\n * @method bool hasInfo($record)\n * @method bool hasDebug($record)\n *\n * @method bool hasEmergencyRecords()\n * @method bool hasAlertRecords()\n * @method bool hasCriticalRecords()\n * @method bool hasErrorRecords()\n * @method bool hasWarningRecords()\n * @method bool hasNoticeRecords()\n * @method bool hasInfoRecords()\n * @method bool hasDebugRecords()\n *\n * @method bool hasEmergencyThatContains($message)\n * @method bool hasAlertThatContains($message)\n * @method bool hasCriticalThatContains($message)\n * @method bool hasErrorThatContains($message)\n * @method bool hasWarningThatContains($message)\n * @method bool hasNoticeThatContains($message)\n * @method bool hasInfoThatContains($message)\n * @method bool hasDebugThatContains($message)\n *\n * @method bool hasEmergencyThatMatches($message)\n * @method bool hasAlertThatMatches($message)\n * @method bool hasCriticalThatMatches($message)\n * @method bool hasErrorThatMatches($message)\n * @method bool hasWarningThatMatches($message)\n * @method bool hasNoticeThatMatches($message)\n * @method bool hasInfoThatMatches($message)\n * @method bool hasDebugThatMatches($message)\n *\n * @method bool hasEmergencyThatPasses($message)\n * @method bool hasAlertThatPasses($message)\n * @method bool hasCriticalThatPasses($message)\n * @method bool hasErrorThatPasses($message)\n * @method bool hasWarningThatPasses($message)\n * @method bool hasNoticeThatPasses($message)\n * @method bool hasInfoThatPasses($message)\n * @method bool hasDebugThatPasses($message)\n */\nclass TestHandler extends AbstractProcessingHandler\n{\n    protected $records = array();\n    protected $recordsByLevel = array();\n\n    public function getRecords()\n    {\n        return $this->records;\n    }\n\n    public function clear()\n    {\n        $this->records = array();\n        $this->recordsByLevel = array();\n    }\n\n    public function hasRecords($level)\n    {\n        return isset($this->recordsByLevel[$level]);\n    }\n\n    /**\n     * @param string|array $record Either a message string or an array containing message and optionally context keys that will be checked against all records\n     * @param int          $level  Logger::LEVEL constant value\n     */\n    public function hasRecord($record, $level)\n    {\n        if (is_string($record)) {\n            $record = array('message' => $record);\n        }\n\n        return $this->hasRecordThatPasses(function ($rec) use ($record) {\n            if ($rec['message'] !== $record['message']) {\n                return false;\n            }\n            if (isset($record['context']) && $rec['context'] !== $record['context']) {\n                return false;\n            }\n            return true;\n        }, $level);\n    }\n\n    public function hasRecordThatContains($message, $level)\n    {\n        return $this->hasRecordThatPasses(function ($rec) use ($message) {\n            return strpos($rec['message'], $message) !== false;\n        }, $level);\n    }\n\n    public function hasRecordThatMatches($regex, $level)\n    {\n        return $this->hasRecordThatPasses(function ($rec) use ($regex) {\n            return preg_match($regex, $rec['message']) > 0;\n        }, $level);\n    }\n\n    public function hasRecordThatPasses($predicate, $level)\n    {\n        if (!is_callable($predicate)) {\n            throw new \\InvalidArgumentException(\"Expected a callable for hasRecordThatSucceeds\");\n        }\n\n        if (!isset($this->recordsByLevel[$level])) {\n            return false;\n        }\n\n        foreach ($this->recordsByLevel[$level] as $i => $rec) {\n            if (call_user_func($predicate, $rec, $i)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $this->recordsByLevel[$record['level']][] = $record;\n        $this->records[] = $record;\n    }\n\n    public function __call($method, $args)\n    {\n        if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {\n            $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];\n            $level = constant('Monolog\\Logger::' . strtoupper($matches[2]));\n            if (method_exists($this, $genericMethod)) {\n                $args[] = $level;\n\n                return call_user_func_array(array($this, $genericMethod), $args);\n            }\n        }\n\n        throw new \\BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\n/**\n * Forwards records to multiple handlers suppressing failures of each handler\n * and continuing through to give every handler a chance to succeed.\n *\n * @author Craig D'Amelio <craig@damelio.ca>\n */\nclass WhatFailureGroupHandler extends GroupHandler\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        if ($this->processors) {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n        }\n\n        foreach ($this->handlers as $handler) {\n            try {\n                $handler->handle($record);\n            } catch (\\Exception $e) {\n                // What failure?\n            } catch (\\Throwable $e) {\n                // What failure?\n            }\n        }\n\n        return false === $this->bubble;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handleBatch(array $records)\n    {\n        if ($this->processors) {\n            $processed = array();\n            foreach ($records as $record) {\n                foreach ($this->processors as $processor) {\n                    $processed[] = call_user_func($processor, $record);\n                }\n            }\n            $records = $processed;\n        }\n\n        foreach ($this->handlers as $handler) {\n            try {\n                $handler->handleBatch($records);\n            } catch (\\Exception $e) {\n                // What failure?\n            } catch (\\Throwable $e) {\n                // What failure?\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php",
    "content": "<?php\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\NormalizerFormatter;\nuse Monolog\\Logger;\n\n/**\n * Handler sending logs to Zend Monitor\n *\n * @author  Christian Bergau <cbergau86@gmail.com>\n */\nclass ZendMonitorHandler extends AbstractProcessingHandler\n{\n    /**\n     * Monolog level / ZendMonitor Custom Event priority map\n     *\n     * @var array\n     */\n    protected $levelMap = array(\n        Logger::DEBUG     => 1,\n        Logger::INFO      => 2,\n        Logger::NOTICE    => 3,\n        Logger::WARNING   => 4,\n        Logger::ERROR     => 5,\n        Logger::CRITICAL  => 6,\n        Logger::ALERT     => 7,\n        Logger::EMERGENCY => 0,\n    );\n\n    /**\n     * Construct\n     *\n     * @param  int                       $level\n     * @param  bool                      $bubble\n     * @throws MissingExtensionException\n     */\n    public function __construct($level = Logger::DEBUG, $bubble = true)\n    {\n        if (!function_exists('zend_monitor_custom_event')) {\n            throw new MissingExtensionException('You must have Zend Server installed in order to use this handler');\n        }\n        parent::__construct($level, $bubble);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write(array $record)\n    {\n        $this->writeZendMonitorCustomEvent(\n            $this->levelMap[$record['level']],\n            $record['message'],\n            $record['formatted']\n        );\n    }\n\n    /**\n     * Write a record to Zend Monitor\n     *\n     * @param int    $level\n     * @param string $message\n     * @param array  $formatted\n     */\n    protected function writeZendMonitorCustomEvent($level, $message, $formatted)\n    {\n        zend_monitor_custom_event($level, $message, $formatted);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefaultFormatter()\n    {\n        return new NormalizerFormatter();\n    }\n\n    /**\n     * Get the level map\n     *\n     * @return array\n     */\n    public function getLevelMap()\n    {\n        return $this->levelMap;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Logger.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Monolog\\Handler\\HandlerInterface;\nuse Monolog\\Handler\\StreamHandler;\nuse Psr\\Log\\LoggerInterface;\nuse Psr\\Log\\InvalidArgumentException;\nuse Exception;\n\n/**\n * Monolog log channel\n *\n * It contains a stack of Handlers and a stack of Processors,\n * and uses them to store records that are added to it.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass Logger implements LoggerInterface, ResettableInterface\n{\n    /**\n     * Detailed debug information\n     */\n    const DEBUG = 100;\n\n    /**\n     * Interesting events\n     *\n     * Examples: User logs in, SQL logs.\n     */\n    const INFO = 200;\n\n    /**\n     * Uncommon events\n     */\n    const NOTICE = 250;\n\n    /**\n     * Exceptional occurrences that are not errors\n     *\n     * Examples: Use of deprecated APIs, poor use of an API,\n     * undesirable things that are not necessarily wrong.\n     */\n    const WARNING = 300;\n\n    /**\n     * Runtime errors\n     */\n    const ERROR = 400;\n\n    /**\n     * Critical conditions\n     *\n     * Example: Application component unavailable, unexpected exception.\n     */\n    const CRITICAL = 500;\n\n    /**\n     * Action must be taken immediately\n     *\n     * Example: Entire website down, database unavailable, etc.\n     * This should trigger the SMS alerts and wake you up.\n     */\n    const ALERT = 550;\n\n    /**\n     * Urgent alert.\n     */\n    const EMERGENCY = 600;\n\n    /**\n     * Monolog API version\n     *\n     * This is only bumped when API breaks are done and should\n     * follow the major version of the library\n     *\n     * @var int\n     */\n    const API = 1;\n\n    /**\n     * Logging levels from syslog protocol defined in RFC 5424\n     *\n     * @var array $levels Logging levels\n     */\n    protected static $levels = array(\n        self::DEBUG     => 'DEBUG',\n        self::INFO      => 'INFO',\n        self::NOTICE    => 'NOTICE',\n        self::WARNING   => 'WARNING',\n        self::ERROR     => 'ERROR',\n        self::CRITICAL  => 'CRITICAL',\n        self::ALERT     => 'ALERT',\n        self::EMERGENCY => 'EMERGENCY',\n    );\n\n    /**\n     * @var \\DateTimeZone\n     */\n    protected static $timezone;\n\n    /**\n     * @var string\n     */\n    protected $name;\n\n    /**\n     * The handler stack\n     *\n     * @var HandlerInterface[]\n     */\n    protected $handlers;\n\n    /**\n     * Processors that will process all log records\n     *\n     * To process records of a single handler instead, add the processor on that specific handler\n     *\n     * @var callable[]\n     */\n    protected $processors;\n\n    /**\n     * @var bool\n     */\n    protected $microsecondTimestamps = true;\n\n    /**\n     * @var callable\n     */\n    protected $exceptionHandler;\n\n    /**\n     * @param string             $name       The logging channel\n     * @param HandlerInterface[] $handlers   Optional stack of handlers, the first one in the array is called first, etc.\n     * @param callable[]         $processors Optional array of processors\n     */\n    public function __construct($name, array $handlers = array(), array $processors = array())\n    {\n        $this->name = $name;\n        $this->setHandlers($handlers);\n        $this->processors = $processors;\n    }\n\n    /**\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    /**\n     * Return a new cloned instance with the name changed\n     *\n     * @return static\n     */\n    public function withName($name)\n    {\n        $new = clone $this;\n        $new->name = $name;\n\n        return $new;\n    }\n\n    /**\n     * Pushes a handler on to the stack.\n     *\n     * @param  HandlerInterface $handler\n     * @return $this\n     */\n    public function pushHandler(HandlerInterface $handler)\n    {\n        array_unshift($this->handlers, $handler);\n\n        return $this;\n    }\n\n    /**\n     * Pops a handler from the stack\n     *\n     * @return HandlerInterface\n     */\n    public function popHandler()\n    {\n        if (!$this->handlers) {\n            throw new \\LogicException('You tried to pop from an empty handler stack.');\n        }\n\n        return array_shift($this->handlers);\n    }\n\n    /**\n     * Set handlers, replacing all existing ones.\n     *\n     * If a map is passed, keys will be ignored.\n     *\n     * @param  HandlerInterface[] $handlers\n     * @return $this\n     */\n    public function setHandlers(array $handlers)\n    {\n        $this->handlers = array();\n        foreach (array_reverse($handlers) as $handler) {\n            $this->pushHandler($handler);\n        }\n\n        return $this;\n    }\n\n    /**\n     * @return HandlerInterface[]\n     */\n    public function getHandlers()\n    {\n        return $this->handlers;\n    }\n\n    /**\n     * Adds a processor on to the stack.\n     *\n     * @param  callable $callback\n     * @return $this\n     */\n    public function pushProcessor($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new \\InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given');\n        }\n        array_unshift($this->processors, $callback);\n\n        return $this;\n    }\n\n    /**\n     * Removes the processor on top of the stack and returns it.\n     *\n     * @return callable\n     */\n    public function popProcessor()\n    {\n        if (!$this->processors) {\n            throw new \\LogicException('You tried to pop from an empty processor stack.');\n        }\n\n        return array_shift($this->processors);\n    }\n\n    /**\n     * @return callable[]\n     */\n    public function getProcessors()\n    {\n        return $this->processors;\n    }\n\n    /**\n     * Control the use of microsecond resolution timestamps in the 'datetime'\n     * member of new records.\n     *\n     * Generating microsecond resolution timestamps by calling\n     * microtime(true), formatting the result via sprintf() and then parsing\n     * the resulting string via \\DateTime::createFromFormat() can incur\n     * a measurable runtime overhead vs simple usage of DateTime to capture\n     * a second resolution timestamp in systems which generate a large number\n     * of log events.\n     *\n     * @param bool $micro True to use microtime() to create timestamps\n     */\n    public function useMicrosecondTimestamps($micro)\n    {\n        $this->microsecondTimestamps = (bool) $micro;\n    }\n\n    /**\n     * Adds a log record.\n     *\n     * @param  int     $level   The logging level\n     * @param  string  $message The log message\n     * @param  array   $context The log context\n     * @return bool Whether the record has been processed\n     */\n    public function addRecord($level, $message, array $context = array())\n    {\n        if (!$this->handlers) {\n            $this->pushHandler(new StreamHandler('php://stderr', static::DEBUG));\n        }\n\n        $levelName = static::getLevelName($level);\n\n        // check if any handler will handle this message so we can return early and save cycles\n        $handlerKey = null;\n        reset($this->handlers);\n        while ($handler = current($this->handlers)) {\n            if ($handler->isHandling(array('level' => $level))) {\n                $handlerKey = key($this->handlers);\n                break;\n            }\n\n            next($this->handlers);\n        }\n\n        if (null === $handlerKey) {\n            return false;\n        }\n\n        if (!static::$timezone) {\n            static::$timezone = new \\DateTimeZone(date_default_timezone_get() ?: 'UTC');\n        }\n\n        // php7.1+ always has microseconds enabled, so we do not need this hack\n        if ($this->microsecondTimestamps && PHP_VERSION_ID < 70100) {\n            $ts = \\DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), static::$timezone);\n        } else {\n            $ts = new \\DateTime(null, static::$timezone);\n        }\n        $ts->setTimezone(static::$timezone);\n\n        $record = array(\n            'message' => (string) $message,\n            'context' => $context,\n            'level' => $level,\n            'level_name' => $levelName,\n            'channel' => $this->name,\n            'datetime' => $ts,\n            'extra' => array(),\n        );\n\n        try {\n            foreach ($this->processors as $processor) {\n                $record = call_user_func($processor, $record);\n            }\n\n            while ($handler = current($this->handlers)) {\n                if (true === $handler->handle($record)) {\n                    break;\n                }\n\n                next($this->handlers);\n            }\n        } catch (Exception $e) {\n            $this->handleException($e, $record);\n        }\n\n        return true;\n    }\n\n    /**\n     * Ends a log cycle and frees all resources used by handlers.\n     *\n     * Closing a Handler means flushing all buffers and freeing any open resources/handles.\n     * Handlers that have been closed should be able to accept log records again and re-open\n     * themselves on demand, but this may not always be possible depending on implementation.\n     *\n     * This is useful at the end of a request and will be called automatically on every handler\n     * when they get destructed.\n     */\n    public function close()\n    {\n        foreach ($this->handlers as $handler) {\n            if (method_exists($handler, 'close')) {\n                $handler->close();\n            }\n        }\n    }\n\n    /**\n     * Ends a log cycle and resets all handlers and processors to their initial state.\n     *\n     * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal\n     * state, and getting it back to a state in which it can receive log records again.\n     *\n     * This is useful in case you want to avoid logs leaking between two requests or jobs when you\n     * have a long running process like a worker or an application server serving multiple requests\n     * in one process.\n     */\n    public function reset()\n    {\n        foreach ($this->handlers as $handler) {\n            if ($handler instanceof ResettableInterface) {\n                $handler->reset();\n            }\n        }\n\n        foreach ($this->processors as $processor) {\n            if ($processor instanceof ResettableInterface) {\n                $processor->reset();\n            }\n        }\n    }\n\n    /**\n     * Adds a log record at the DEBUG level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addDebug($message, array $context = array())\n    {\n        return $this->addRecord(static::DEBUG, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the INFO level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addInfo($message, array $context = array())\n    {\n        return $this->addRecord(static::INFO, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the NOTICE level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addNotice($message, array $context = array())\n    {\n        return $this->addRecord(static::NOTICE, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the WARNING level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addWarning($message, array $context = array())\n    {\n        return $this->addRecord(static::WARNING, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the ERROR level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addError($message, array $context = array())\n    {\n        return $this->addRecord(static::ERROR, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the CRITICAL level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addCritical($message, array $context = array())\n    {\n        return $this->addRecord(static::CRITICAL, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the ALERT level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addAlert($message, array $context = array())\n    {\n        return $this->addRecord(static::ALERT, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the EMERGENCY level.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function addEmergency($message, array $context = array())\n    {\n        return $this->addRecord(static::EMERGENCY, $message, $context);\n    }\n\n    /**\n     * Gets all supported logging levels.\n     *\n     * @return array Assoc array with human-readable level names => level codes.\n     */\n    public static function getLevels()\n    {\n        return array_flip(static::$levels);\n    }\n\n    /**\n     * Gets the name of the logging level.\n     *\n     * @param  int    $level\n     * @return string\n     */\n    public static function getLevelName($level)\n    {\n        if (!isset(static::$levels[$level])) {\n            throw new InvalidArgumentException('Level \"'.$level.'\" is not defined, use one of: '.implode(', ', array_keys(static::$levels)));\n        }\n\n        return static::$levels[$level];\n    }\n\n    /**\n     * Converts PSR-3 levels to Monolog ones if necessary\n     *\n     * @param string|int Level number (monolog) or name (PSR-3)\n     * @return int\n     */\n    public static function toMonologLevel($level)\n    {\n        if (is_string($level) && defined(__CLASS__.'::'.strtoupper($level))) {\n            return constant(__CLASS__.'::'.strtoupper($level));\n        }\n\n        return $level;\n    }\n\n    /**\n     * Checks whether the Logger has a handler that listens on the given level\n     *\n     * @param  int     $level\n     * @return bool\n     */\n    public function isHandling($level)\n    {\n        $record = array(\n            'level' => $level,\n        );\n\n        foreach ($this->handlers as $handler) {\n            if ($handler->isHandling($record)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Set a custom exception handler\n     *\n     * @param  callable $callback\n     * @return $this\n     */\n    public function setExceptionHandler($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new \\InvalidArgumentException('Exception handler must be valid callable (callback or object with an __invoke method), '.var_export($callback, true).' given');\n        }\n        $this->exceptionHandler = $callback;\n\n        return $this;\n    }\n\n    /**\n     * @return callable\n     */\n    public function getExceptionHandler()\n    {\n        return $this->exceptionHandler;\n    }\n\n    /**\n     * Delegates exception management to the custom exception handler,\n     * or throws the exception if no custom handler is set.\n     */\n    protected function handleException(Exception $e, array $record)\n    {\n        if (!$this->exceptionHandler) {\n            throw $e;\n        }\n\n        call_user_func($this->exceptionHandler, $e, $record);\n    }\n\n    /**\n     * Adds a log record at an arbitrary level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  mixed   $level   The log level\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function log($level, $message, array $context = array())\n    {\n        $level = static::toMonologLevel($level);\n\n        return $this->addRecord($level, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the DEBUG level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function debug($message, array $context = array())\n    {\n        return $this->addRecord(static::DEBUG, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the INFO level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function info($message, array $context = array())\n    {\n        return $this->addRecord(static::INFO, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the NOTICE level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function notice($message, array $context = array())\n    {\n        return $this->addRecord(static::NOTICE, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the WARNING level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function warn($message, array $context = array())\n    {\n        return $this->addRecord(static::WARNING, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the WARNING level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function warning($message, array $context = array())\n    {\n        return $this->addRecord(static::WARNING, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the ERROR level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function err($message, array $context = array())\n    {\n        return $this->addRecord(static::ERROR, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the ERROR level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function error($message, array $context = array())\n    {\n        return $this->addRecord(static::ERROR, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the CRITICAL level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function crit($message, array $context = array())\n    {\n        return $this->addRecord(static::CRITICAL, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the CRITICAL level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function critical($message, array $context = array())\n    {\n        return $this->addRecord(static::CRITICAL, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the ALERT level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function alert($message, array $context = array())\n    {\n        return $this->addRecord(static::ALERT, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the EMERGENCY level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function emerg($message, array $context = array())\n    {\n        return $this->addRecord(static::EMERGENCY, $message, $context);\n    }\n\n    /**\n     * Adds a log record at the EMERGENCY level.\n     *\n     * This method allows for compatibility with common interfaces.\n     *\n     * @param  string $message The log message\n     * @param  array  $context The log context\n     * @return bool   Whether the record has been processed\n     */\n    public function emergency($message, array $context = array())\n    {\n        return $this->addRecord(static::EMERGENCY, $message, $context);\n    }\n\n    /**\n     * Set the timezone to be used for the timestamp of log records.\n     *\n     * This is stored globally for all Logger instances\n     *\n     * @param \\DateTimeZone $tz Timezone object\n     */\n    public static function setTimezone(\\DateTimeZone $tz)\n    {\n        self::$timezone = $tz;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\Logger;\n\n/**\n * Injects Git branch and Git commit SHA in all records\n *\n * @author Nick Otter\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass GitProcessor implements ProcessorInterface\n{\n    private $level;\n    private static $cache;\n\n    public function __construct($level = Logger::DEBUG)\n    {\n        $this->level = Logger::toMonologLevel($level);\n    }\n\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        // return if the level is not high enough\n        if ($record['level'] < $this->level) {\n            return $record;\n        }\n\n        $record['extra']['git'] = self::getGitInfo();\n\n        return $record;\n    }\n\n    private static function getGitInfo()\n    {\n        if (self::$cache) {\n            return self::$cache;\n        }\n\n        $branches = `git branch -v --no-abbrev`;\n        if (preg_match('{^\\* (.+?)\\s+([a-f0-9]{40})(?:\\s|$)}m', $branches, $matches)) {\n            return self::$cache = array(\n                'branch' => $matches[1],\n                'commit' => $matches[2],\n            );\n        }\n\n        return self::$cache = array();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\Logger;\n\n/**\n * Injects line/file:class/function where the log message came from\n *\n * Warning: This only works if the handler processes the logs directly.\n * If you put the processor on a handler that is behind a FingersCrossedHandler\n * for example, the processor will only be called once the trigger level is reached,\n * and all the log records will have the same file/line/.. data from the call that\n * triggered the FingersCrossedHandler.\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass IntrospectionProcessor implements ProcessorInterface\n{\n    private $level;\n\n    private $skipClassesPartials;\n\n    private $skipStackFramesCount;\n\n    private $skipFunctions = array(\n        'call_user_func',\n        'call_user_func_array',\n    );\n\n    public function __construct($level = Logger::DEBUG, array $skipClassesPartials = array(), $skipStackFramesCount = 0)\n    {\n        $this->level = Logger::toMonologLevel($level);\n        $this->skipClassesPartials = array_merge(array('Monolog\\\\'), $skipClassesPartials);\n        $this->skipStackFramesCount = $skipStackFramesCount;\n    }\n\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        // return if the level is not high enough\n        if ($record['level'] < $this->level) {\n            return $record;\n        }\n\n        /*\n        * http://php.net/manual/en/function.debug-backtrace.php\n        * As of 5.3.6, DEBUG_BACKTRACE_IGNORE_ARGS option was added.\n        * Any version less than 5.3.6 must use the DEBUG_BACKTRACE_IGNORE_ARGS constant value '2'.\n        */\n        $trace = debug_backtrace((PHP_VERSION_ID < 50306) ? 2 : DEBUG_BACKTRACE_IGNORE_ARGS);\n\n        // skip first since it's always the current method\n        array_shift($trace);\n        // the call_user_func call is also skipped\n        array_shift($trace);\n\n        $i = 0;\n\n        while ($this->isTraceClassOrSkippedFunction($trace, $i)) {\n            if (isset($trace[$i]['class'])) {\n                foreach ($this->skipClassesPartials as $part) {\n                    if (strpos($trace[$i]['class'], $part) !== false) {\n                        $i++;\n                        continue 2;\n                    }\n                }\n            } elseif (in_array($trace[$i]['function'], $this->skipFunctions)) {\n                $i++;\n                continue;\n            }\n\n            break;\n        }\n\n        $i += $this->skipStackFramesCount;\n\n        // we should have the call source now\n        $record['extra'] = array_merge(\n            $record['extra'],\n            array(\n                'file'      => isset($trace[$i - 1]['file']) ? $trace[$i - 1]['file'] : null,\n                'line'      => isset($trace[$i - 1]['line']) ? $trace[$i - 1]['line'] : null,\n                'class'     => isset($trace[$i]['class']) ? $trace[$i]['class'] : null,\n                'function'  => isset($trace[$i]['function']) ? $trace[$i]['function'] : null,\n            )\n        );\n\n        return $record;\n    }\n\n    private function isTraceClassOrSkippedFunction(array $trace, $index)\n    {\n        if (!isset($trace[$index])) {\n            return false;\n        }\n\n        return isset($trace[$index]['class']) || in_array($trace[$index]['function'], $this->skipFunctions);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Injects memory_get_peak_usage in all records\n *\n * @see Monolog\\Processor\\MemoryProcessor::__construct() for options\n * @author Rob Jensen\n */\nclass MemoryPeakUsageProcessor extends MemoryProcessor\n{\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        $bytes = memory_get_peak_usage($this->realUsage);\n        $formatted = $this->formatBytes($bytes);\n\n        $record['extra']['memory_peak_usage'] = $formatted;\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Some methods that are common for all memory processors\n *\n * @author Rob Jensen\n */\nabstract class MemoryProcessor implements ProcessorInterface\n{\n    /**\n     * @var bool If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported.\n     */\n    protected $realUsage;\n\n    /**\n     * @var bool If true, then format memory size to human readable string (MB, KB, B depending on size)\n     */\n    protected $useFormatting;\n\n    /**\n     * @param bool $realUsage     Set this to true to get the real size of memory allocated from system.\n     * @param bool $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size)\n     */\n    public function __construct($realUsage = true, $useFormatting = true)\n    {\n        $this->realUsage = (bool) $realUsage;\n        $this->useFormatting = (bool) $useFormatting;\n    }\n\n    /**\n     * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is\n     *\n     * @param  int        $bytes\n     * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as is\n     */\n    protected function formatBytes($bytes)\n    {\n        $bytes = (int) $bytes;\n\n        if (!$this->useFormatting) {\n            return $bytes;\n        }\n\n        if ($bytes > 1024 * 1024) {\n            return round($bytes / 1024 / 1024, 2).' MB';\n        } elseif ($bytes > 1024) {\n            return round($bytes / 1024, 2).' KB';\n        }\n\n        return $bytes . ' B';\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Injects memory_get_usage in all records\n *\n * @see Monolog\\Processor\\MemoryProcessor::__construct() for options\n * @author Rob Jensen\n */\nclass MemoryUsageProcessor extends MemoryProcessor\n{\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        $bytes = memory_get_usage($this->realUsage);\n        $formatted = $this->formatBytes($bytes);\n\n        $record['extra']['memory_usage'] = $formatted;\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jonathan A. Schweder <jonathanschweder@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\Logger;\n\n/**\n * Injects Hg branch and Hg revision number in all records\n *\n * @author Jonathan A. Schweder <jonathanschweder@gmail.com>\n */\nclass MercurialProcessor implements ProcessorInterface\n{\n    private $level;\n    private static $cache;\n\n    public function __construct($level = Logger::DEBUG)\n    {\n        $this->level = Logger::toMonologLevel($level);\n    }\n\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        // return if the level is not high enough\n        if ($record['level'] < $this->level) {\n            return $record;\n        }\n\n        $record['extra']['hg'] = self::getMercurialInfo();\n\n        return $record;\n    }\n\n    private static function getMercurialInfo()\n    {\n        if (self::$cache) {\n            return self::$cache;\n        }\n\n        $result = explode(' ', trim(`hg id -nb`));\n        if (count($result) >= 3) {\n            return self::$cache = array(\n                'branch' => $result[1],\n                'revision' => $result[2],\n            );\n        }\n\n        return self::$cache = array();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Adds value of getmypid into records\n *\n * @author Andreas Hörnicke\n */\nclass ProcessIdProcessor implements ProcessorInterface\n{\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        $record['extra']['process_id'] = getmypid();\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * An optional interface to allow labelling Monolog processors.\n *\n * @author Nicolas Grekas <p@tchwork.com>\n */\ninterface ProcessorInterface\n{\n    /**\n     * @return array The processed records\n     */\n    public function __invoke(array $records);\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\Utils;\n\n/**\n * Processes a record's message according to PSR-3 rules\n *\n * It replaces {foo} with the value from $context['foo']\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass PsrLogMessageProcessor implements ProcessorInterface\n{\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        if (false === strpos($record['message'], '{')) {\n            return $record;\n        }\n\n        $replacements = array();\n        foreach ($record['context'] as $key => $val) {\n            if (is_null($val) || is_scalar($val) || (is_object($val) && method_exists($val, \"__toString\"))) {\n                $replacements['{'.$key.'}'] = $val;\n            } elseif (is_object($val)) {\n                $replacements['{'.$key.'}'] = '[object '.Utils::getClass($val).']';\n            } else {\n                $replacements['{'.$key.'}'] = '['.gettype($val).']';\n            }\n        }\n\n        $record['message'] = strtr($record['message'], $replacements);\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Adds a tags array into record\n *\n * @author Martijn Riemers\n */\nclass TagProcessor implements ProcessorInterface\n{\n    private $tags;\n\n    public function __construct(array $tags = array())\n    {\n        $this->setTags($tags);\n    }\n\n    public function addTags(array $tags = array())\n    {\n        $this->tags = array_merge($this->tags, $tags);\n    }\n\n    public function setTags(array $tags = array())\n    {\n        $this->tags = $tags;\n    }\n\n    public function __invoke(array $record)\n    {\n        $record['extra']['tags'] = $this->tags;\n\n        return $record;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\ResettableInterface;\n\n/**\n * Adds a unique identifier into records\n *\n * @author Simon Mönch <sm@webfactory.de>\n */\nclass UidProcessor implements ProcessorInterface, ResettableInterface\n{\n    private $uid;\n\n    public function __construct($length = 7)\n    {\n        if (!is_int($length) || $length > 32 || $length < 1) {\n            throw new \\InvalidArgumentException('The uid length must be an integer between 1 and 32');\n        }\n\n\n        $this->uid = $this->generateUid($length);\n    }\n\n    public function __invoke(array $record)\n    {\n        $record['extra']['uid'] = $this->uid;\n\n        return $record;\n    }\n\n    /**\n     * @return string\n     */\n    public function getUid()\n    {\n        return $this->uid;\n    }\n\n    public function reset()\n    {\n        $this->uid = $this->generateUid(strlen($this->uid));\n    }\n\n    private function generateUid($length)\n    {\n        return substr(hash('md5', uniqid('', true)), 0, $length);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\n/**\n * Injects url/method and remote IP of the current web request in all records\n *\n * @author Jordi Boggiano <j.boggiano@seld.be>\n */\nclass WebProcessor implements ProcessorInterface\n{\n    /**\n     * @var array|\\ArrayAccess\n     */\n    protected $serverData;\n\n    /**\n     * Default fields\n     *\n     * Array is structured as [key in record.extra => key in $serverData]\n     *\n     * @var array\n     */\n    protected $extraFields = array(\n        'url'         => 'REQUEST_URI',\n        'ip'          => 'REMOTE_ADDR',\n        'http_method' => 'REQUEST_METHOD',\n        'server'      => 'SERVER_NAME',\n        'referrer'    => 'HTTP_REFERER',\n    );\n\n    /**\n     * @param array|\\ArrayAccess $serverData  Array or object w/ ArrayAccess that provides access to the $_SERVER data\n     * @param array|null         $extraFields Field names and the related key inside $serverData to be added. If not provided it defaults to: url, ip, http_method, server, referrer\n     */\n    public function __construct($serverData = null, array $extraFields = null)\n    {\n        if (null === $serverData) {\n            $this->serverData = &$_SERVER;\n        } elseif (is_array($serverData) || $serverData instanceof \\ArrayAccess) {\n            $this->serverData = $serverData;\n        } else {\n            throw new \\UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.');\n        }\n\n        if (null !== $extraFields) {\n            if (isset($extraFields[0])) {\n                foreach (array_keys($this->extraFields) as $fieldName) {\n                    if (!in_array($fieldName, $extraFields)) {\n                        unset($this->extraFields[$fieldName]);\n                    }\n                }\n            } else {\n                $this->extraFields = $extraFields;\n            }\n        }\n    }\n\n    /**\n     * @param  array $record\n     * @return array\n     */\n    public function __invoke(array $record)\n    {\n        // skip processing if for some reason request data\n        // is not present (CLI or wonky SAPIs)\n        if (!isset($this->serverData['REQUEST_URI'])) {\n            return $record;\n        }\n\n        $record['extra'] = $this->appendExtraFields($record['extra']);\n\n        return $record;\n    }\n\n    /**\n     * @param  string $extraName\n     * @param  string $serverName\n     * @return $this\n     */\n    public function addExtraField($extraName, $serverName)\n    {\n        $this->extraFields[$extraName] = $serverName;\n\n        return $this;\n    }\n\n    /**\n     * @param  array $extra\n     * @return array\n     */\n    private function appendExtraFields(array $extra)\n    {\n        foreach ($this->extraFields as $extraName => $serverName) {\n            $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null;\n        }\n\n        if (isset($this->serverData['UNIQUE_ID'])) {\n            $extra['unique_id'] = $this->serverData['UNIQUE_ID'];\n        }\n\n        return $extra;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Registry.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse InvalidArgumentException;\n\n/**\n * Monolog log registry\n *\n * Allows to get `Logger` instances in the global scope\n * via static method calls on this class.\n *\n * <code>\n * $application = new Monolog\\Logger('application');\n * $api = new Monolog\\Logger('api');\n *\n * Monolog\\Registry::addLogger($application);\n * Monolog\\Registry::addLogger($api);\n *\n * function testLogger()\n * {\n *     Monolog\\Registry::api()->addError('Sent to $api Logger instance');\n *     Monolog\\Registry::application()->addError('Sent to $application Logger instance');\n * }\n * </code>\n *\n * @author Tomas Tatarko <tomas@tatarko.sk>\n */\nclass Registry\n{\n    /**\n     * List of all loggers in the registry (by named indexes)\n     *\n     * @var Logger[]\n     */\n    private static $loggers = array();\n\n    /**\n     * Adds new logging channel to the registry\n     *\n     * @param  Logger                    $logger    Instance of the logging channel\n     * @param  string|null               $name      Name of the logging channel ($logger->getName() by default)\n     * @param  bool                      $overwrite Overwrite instance in the registry if the given name already exists?\n     * @throws \\InvalidArgumentException If $overwrite set to false and named Logger instance already exists\n     */\n    public static function addLogger(Logger $logger, $name = null, $overwrite = false)\n    {\n        $name = $name ?: $logger->getName();\n\n        if (isset(self::$loggers[$name]) && !$overwrite) {\n            throw new InvalidArgumentException('Logger with the given name already exists');\n        }\n\n        self::$loggers[$name] = $logger;\n    }\n\n    /**\n     * Checks if such logging channel exists by name or instance\n     *\n     * @param string|Logger $logger Name or logger instance\n     */\n    public static function hasLogger($logger)\n    {\n        if ($logger instanceof Logger) {\n            $index = array_search($logger, self::$loggers, true);\n\n            return false !== $index;\n        } else {\n            return isset(self::$loggers[$logger]);\n        }\n    }\n\n    /**\n     * Removes instance from registry by name or instance\n     *\n     * @param string|Logger $logger Name or logger instance\n     */\n    public static function removeLogger($logger)\n    {\n        if ($logger instanceof Logger) {\n            if (false !== ($idx = array_search($logger, self::$loggers, true))) {\n                unset(self::$loggers[$idx]);\n            }\n        } else {\n            unset(self::$loggers[$logger]);\n        }\n    }\n\n    /**\n     * Clears the registry\n     */\n    public static function clear()\n    {\n        self::$loggers = array();\n    }\n\n    /**\n     * Gets Logger instance from the registry\n     *\n     * @param  string                    $name Name of the requested Logger instance\n     * @throws \\InvalidArgumentException If named Logger instance is not in the registry\n     * @return Logger                    Requested instance of Logger\n     */\n    public static function getInstance($name)\n    {\n        if (!isset(self::$loggers[$name])) {\n            throw new InvalidArgumentException(sprintf('Requested \"%s\" logger instance is not in the registry', $name));\n        }\n\n        return self::$loggers[$name];\n    }\n\n    /**\n     * Gets Logger instance from the registry via static method call\n     *\n     * @param  string                    $name      Name of the requested Logger instance\n     * @param  array                     $arguments Arguments passed to static method call\n     * @throws \\InvalidArgumentException If named Logger instance is not in the registry\n     * @return Logger                    Requested instance of Logger\n     */\n    public static function __callStatic($name, $arguments)\n    {\n        return self::getInstance($name);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/ResettableInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\n/**\n * Handler or Processor implementing this interface will be reset when Logger::reset() is called.\n *\n * Resetting ends a log cycle gets them back to their initial state.\n *\n * Resetting a Handler or a Processor means flushing/cleaning all buffers, resetting internal\n * state, and getting it back to a state in which it can receive log records again.\n *\n * This is useful in case you want to avoid logs leaking between two requests or jobs when you\n * have a long running process like a worker or an application server serving multiple requests\n * in one process.\n *\n * @author Grégoire Pineau <lyrixx@lyrixx.info>\n */\ninterface ResettableInterface\n{\n    public function reset();\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/SignalHandler.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Psr\\Log\\LoggerInterface;\nuse Psr\\Log\\LogLevel;\nuse ReflectionExtension;\n\n/**\n * Monolog POSIX signal handler\n *\n * @author Robert Gust-Bardon <robert@gust-bardon.org>\n */\nclass SignalHandler\n{\n    private $logger;\n\n    private $previousSignalHandler = array();\n    private $signalLevelMap = array();\n    private $signalRestartSyscalls = array();\n\n    public function __construct(LoggerInterface $logger)\n    {\n        $this->logger = $logger;\n    }\n\n    public function registerSignalHandler($signo, $level = LogLevel::CRITICAL, $callPrevious = true, $restartSyscalls = true, $async = true)\n    {\n        if (!extension_loaded('pcntl') || !function_exists('pcntl_signal')) {\n            return $this;\n        }\n\n        if ($callPrevious) {\n            if (function_exists('pcntl_signal_get_handler')) {\n                $handler = pcntl_signal_get_handler($signo);\n                if ($handler === false) {\n                    return $this;\n                }\n                $this->previousSignalHandler[$signo] = $handler;\n            } else {\n                $this->previousSignalHandler[$signo] = true;\n            }\n        } else {\n            unset($this->previousSignalHandler[$signo]);\n        }\n        $this->signalLevelMap[$signo] = $level;\n        $this->signalRestartSyscalls[$signo] = $restartSyscalls;\n\n        if (function_exists('pcntl_async_signals') && $async !== null) {\n            pcntl_async_signals($async);\n        }\n\n        pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls);\n\n        return $this;\n    }\n\n    public function handleSignal($signo, array $siginfo = null)\n    {\n        static $signals = array();\n\n        if (!$signals && extension_loaded('pcntl')) {\n            $pcntl = new ReflectionExtension('pcntl');\n            $constants = $pcntl->getConstants();\n            if (!$constants) {\n                // HHVM 3.24.2 returns an empty array.\n                $constants = get_defined_constants(true);\n                $constants = $constants['Core'];\n            }\n            foreach ($constants as $name => $value) {\n                if (substr($name, 0, 3) === 'SIG' && $name[3] !== '_' && is_int($value)) {\n                    $signals[$value] = $name;\n                }\n            }\n            unset($constants);\n        }\n\n        $level = isset($this->signalLevelMap[$signo]) ? $this->signalLevelMap[$signo] : LogLevel::CRITICAL;\n        $signal = isset($signals[$signo]) ? $signals[$signo] : $signo;\n        $context = isset($siginfo) ? $siginfo : array();\n        $this->logger->log($level, sprintf('Program received signal %s', $signal), $context);\n\n        if (!isset($this->previousSignalHandler[$signo])) {\n            return;\n        }\n\n        if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) {\n            if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch')\n                && extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) {\n                    $restartSyscalls = isset($this->restartSyscalls[$signo]) ? $this->restartSyscalls[$signo] : true;\n                    pcntl_signal($signo, SIG_DFL, $restartSyscalls);\n                    pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset);\n                    posix_kill(posix_getpid(), $signo);\n                    pcntl_signal_dispatch();\n                    pcntl_sigprocmask(SIG_SETMASK, $oldset);\n                    pcntl_signal($signo, array($this, 'handleSignal'), $restartSyscalls);\n                }\n        } elseif (is_callable($this->previousSignalHandler[$signo])) {\n            if (PHP_VERSION_ID >= 70100) {\n                $this->previousSignalHandler[$signo]($signo, $siginfo);\n            } else {\n                $this->previousSignalHandler[$signo]($signo);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/src/Monolog/Utils.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nclass Utils\n{\n    /**\n     * @internal\n     */\n    public static function getClass($object)\n    {\n        $class = \\get_class($object);\n\n        return 'c' === $class[0] && 0 === strpos($class, \"class@anonymous\\0\") ? get_parent_class($class).'@anonymous' : $class;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/ErrorHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Monolog\\Handler\\TestHandler;\n\nclass ErrorHandlerTest extends \\PHPUnit_Framework_TestCase\n{\n    public function testHandleError()\n    {\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new ErrorHandler($logger);\n\n        $errHandler->registerErrorHandler(array(E_USER_NOTICE => Logger::EMERGENCY), false);\n        trigger_error('Foo', E_USER_ERROR);\n        $this->assertCount(1, $handler->getRecords());\n        $this->assertTrue($handler->hasErrorRecords());\n        trigger_error('Foo', E_USER_NOTICE);\n        $this->assertCount(2, $handler->getRecords());\n        $this->assertTrue($handler->hasEmergencyRecords());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/ChromePHPFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\nclass ChromePHPFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\ChromePHPFormatter::format\n     */\n    public function testDefaultFormat()\n    {\n        $formatter = new ChromePHPFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('ip' => '127.0.0.1'),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'meh',\n                array(\n                    'message' => 'log',\n                    'context' => array('from' => 'logger'),\n                    'extra' => array('ip' => '127.0.0.1'),\n                ),\n                'unknown',\n                'error',\n            ),\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\ChromePHPFormatter::format\n     */\n    public function testFormatWithFileAndLine()\n    {\n        $formatter = new ChromePHPFormatter();\n        $record = array(\n            'level' => Logger::CRITICAL,\n            'level_name' => 'CRITICAL',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'meh',\n                array(\n                    'message' => 'log',\n                    'context' => array('from' => 'logger'),\n                    'extra' => array('ip' => '127.0.0.1'),\n                ),\n                'test : 14',\n                'error',\n            ),\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\ChromePHPFormatter::format\n     */\n    public function testFormatWithoutContext()\n    {\n        $formatter = new ChromePHPFormatter();\n        $record = array(\n            'level' => Logger::DEBUG,\n            'level_name' => 'DEBUG',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'meh',\n                'log',\n                'unknown',\n                'log',\n            ),\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\ChromePHPFormatter::formatBatch\n     */\n    public function testBatchFormatThrowException()\n    {\n        $formatter = new ChromePHPFormatter();\n        $records = array(\n            array(\n                'level' => Logger::INFO,\n                'level_name' => 'INFO',\n                'channel' => 'meh',\n                'context' => array(),\n                'datetime' => new \\DateTime(\"@0\"),\n                'extra' => array(),\n                'message' => 'log',\n            ),\n            array(\n                'level' => Logger::WARNING,\n                'level_name' => 'WARNING',\n                'channel' => 'foo',\n                'context' => array(),\n                'datetime' => new \\DateTime(\"@0\"),\n                'extra' => array(),\n                'message' => 'log2',\n            ),\n        );\n\n        $this->assertEquals(\n            array(\n                array(\n                    'meh',\n                    'log',\n                    'unknown',\n                    'info',\n                ),\n                array(\n                    'foo',\n                    'log2',\n                    'unknown',\n                    'warn',\n                ),\n            ),\n            $formatter->formatBatch($records)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/ElasticaFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\nclass ElasticaFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists(\"Elastica\\Document\")) {\n            $this->markTestSkipped(\"ruflin/elastica not installed\");\n        }\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\ElasticaFormatter::__construct\n     * @covers Monolog\\Formatter\\ElasticaFormatter::format\n     * @covers Monolog\\Formatter\\ElasticaFormatter::getDocument\n     */\n    public function testFormat()\n    {\n        // test log message\n        $msg = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('foo' => 7, 'bar', 'class' => new \\stdClass),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        // expected values\n        $expected = $msg;\n        $expected['datetime'] = '1970-01-01T00:00:00.000000+00:00';\n        $expected['context'] = array(\n            'class' => '[object] (stdClass: {})',\n            'foo' => 7,\n            0 => 'bar',\n        );\n\n        // format log message\n        $formatter = new ElasticaFormatter('my_index', 'doc_type');\n        $doc = $formatter->format($msg);\n        $this->assertInstanceOf('Elastica\\Document', $doc);\n\n        // Document parameters\n        $params = $doc->getParams();\n        $this->assertEquals('my_index', $params['_index']);\n        $this->assertEquals('doc_type', $params['_type']);\n\n        // Document data values\n        $data = $doc->getData();\n        foreach (array_keys($expected) as $key) {\n            $this->assertEquals($expected[$key], $data[$key]);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\ElasticaFormatter::getIndex\n     * @covers Monolog\\Formatter\\ElasticaFormatter::getType\n     */\n    public function testGetters()\n    {\n        $formatter = new ElasticaFormatter('my_index', 'doc_type');\n        $this->assertEquals('my_index', $formatter->getIndex());\n        $this->assertEquals('doc_type', $formatter->getType());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/FlowdockFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass FlowdockFormatterTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\FlowdockFormatter::format\n     */\n    public function testFormat()\n    {\n        $formatter = new FlowdockFormatter('test_source', 'source@test.com');\n        $record = $this->getRecord();\n\n        $expected = array(\n            'source' => 'test_source',\n            'from_address' => 'source@test.com',\n            'subject' => 'in test_source: WARNING - test',\n            'content' => 'test',\n            'tags' => array('#logs', '#warning', '#test'),\n            'project' => 'test_source',\n        );\n        $formatted = $formatter->format($record);\n\n        $this->assertEquals($expected, $formatted['flowdock']);\n    }\n\n    /**\n     * @ covers Monolog\\Formatter\\FlowdockFormatter::formatBatch\n     */\n    public function testFormatBatch()\n    {\n        $formatter = new FlowdockFormatter('test_source', 'source@test.com');\n        $records = array(\n            $this->getRecord(Logger::WARNING),\n            $this->getRecord(Logger::DEBUG),\n        );\n        $formatted = $formatter->formatBatch($records);\n\n        $this->assertArrayHasKey('flowdock', $formatted[0]);\n        $this->assertArrayHasKey('flowdock', $formatted[1]);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/FluentdFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass FluentdFormatterTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\FluentdFormatter::__construct\n     * @covers Monolog\\Formatter\\FluentdFormatter::isUsingLevelsInTag\n     */\n    public function testConstruct()\n    {\n        $formatter = new FluentdFormatter();\n        $this->assertEquals(false, $formatter->isUsingLevelsInTag());\n        $formatter = new FluentdFormatter(false);\n        $this->assertEquals(false, $formatter->isUsingLevelsInTag());\n        $formatter = new FluentdFormatter(true);\n        $this->assertEquals(true, $formatter->isUsingLevelsInTag());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\FluentdFormatter::format\n     */\n    public function testFormat()\n    {\n        $record = $this->getRecord(Logger::WARNING);\n        $record['datetime'] = new \\DateTime(\"@0\");\n\n        $formatter = new FluentdFormatter();\n        $this->assertEquals(\n            '[\"test\",0,{\"message\":\"test\",\"context\":[],\"extra\":[],\"level\":300,\"level_name\":\"WARNING\"}]',\n            $formatter->format($record)\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\FluentdFormatter::format\n     */\n    public function testFormatWithTag()\n    {\n        $record = $this->getRecord(Logger::ERROR);\n        $record['datetime'] = new \\DateTime(\"@0\");\n\n        $formatter = new FluentdFormatter(true);\n        $this->assertEquals(\n            '[\"test.error\",0,{\"message\":\"test\",\"context\":[],\"extra\":[]}]',\n            $formatter->format($record)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/GelfMessageFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\nclass GelfMessageFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists('\\Gelf\\Message')) {\n            $this->markTestSkipped(\"graylog2/gelf-php or mlehner/gelf-php is not installed\");\n        }\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     */\n    public function testDefaultFormatter()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n        $this->assertEquals(0, $message->getTimestamp());\n        $this->assertEquals('log', $message->getShortMessage());\n        $this->assertEquals('meh', $message->getFacility());\n        $this->assertEquals(null, $message->getLine());\n        $this->assertEquals(null, $message->getFile());\n        $this->assertEquals($this->isLegacy() ? 3 : 'error', $message->getLevel());\n        $this->assertNotEmpty($message->getHost());\n\n        $formatter = new GelfMessageFormatter('mysystem');\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n        $this->assertEquals('mysystem', $message->getHost());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     */\n    public function testFormatWithFileAndLine()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('file' => 'test', 'line' => 14),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n        $this->assertEquals('test', $message->getFile());\n        $this->assertEquals(14, $message->getLine());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     * @expectedException InvalidArgumentException\n     */\n    public function testFormatInvalidFails()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n        );\n\n        $formatter->format($record);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     */\n    public function testFormatWithContext()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n\n        $message_array = $message->toArray();\n\n        $this->assertArrayHasKey('_ctxt_from', $message_array);\n        $this->assertEquals('logger', $message_array['_ctxt_from']);\n\n        // Test with extraPrefix\n        $formatter = new GelfMessageFormatter(null, null, 'CTX');\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n\n        $message_array = $message->toArray();\n\n        $this->assertArrayHasKey('_CTXfrom', $message_array);\n        $this->assertEquals('logger', $message_array['_CTXfrom']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     */\n    public function testFormatWithContextContainingException()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger', 'exception' => array(\n                'class' => '\\Exception',\n                'file'  => '/some/file/in/dir.php:56',\n                'trace' => array('/some/file/1.php:23', '/some/file/2.php:3'),\n            )),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n\n        $this->assertEquals(\"/some/file/in/dir.php\", $message->getFile());\n        $this->assertEquals(\"56\", $message->getLine());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\GelfMessageFormatter::format\n     */\n    public function testFormatWithExtra()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n\n        $message_array = $message->toArray();\n\n        $this->assertArrayHasKey('_key', $message_array);\n        $this->assertEquals('pair', $message_array['_key']);\n\n        // Test with extraPrefix\n        $formatter = new GelfMessageFormatter(null, 'EXT');\n        $message = $formatter->format($record);\n\n        $this->assertInstanceOf('Gelf\\Message', $message);\n\n        $message_array = $message->toArray();\n\n        $this->assertArrayHasKey('_EXTkey', $message_array);\n        $this->assertEquals('pair', $message_array['_EXTkey']);\n    }\n\n    public function testFormatWithLargeData()\n    {\n        $formatter = new GelfMessageFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('exception' => str_repeat(' ', 32767)),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => str_repeat(' ', 32767)),\n            'message' => 'log'\n        );\n        $message = $formatter->format($record);\n        $messageArray = $message->toArray();\n\n        // 200 for padding + metadata\n        $length = 200;\n\n        foreach ($messageArray as $key => $value) {\n            if (!in_array($key, array('level', 'timestamp'))) {\n                $length += strlen($value);\n            }\n        }\n\n        $this->assertLessThanOrEqual(65792, $length, 'The message length is no longer than the maximum allowed length');\n    }\n\n    public function testFormatWithUnlimitedLength()\n    {\n        $formatter = new GelfMessageFormatter('LONG_SYSTEM_NAME', null, 'ctxt_', PHP_INT_MAX);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('exception' => str_repeat(' ', 32767 * 2)),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => str_repeat(' ', 32767 * 2)),\n            'message' => 'log'\n        );\n        $message = $formatter->format($record);\n        $messageArray = $message->toArray();\n\n        // 200 for padding + metadata\n        $length = 200;\n\n        foreach ($messageArray as $key => $value) {\n            if (!in_array($key, array('level', 'timestamp'))) {\n                $length += strlen($value);\n            }\n        }\n\n        $this->assertGreaterThanOrEqual(131289, $length, 'The message should not be truncated');\n    }\n\n    private function isLegacy()\n    {\n        return interface_exists('\\Gelf\\IMessagePublisher');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/JsonFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass JsonFormatterTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\JsonFormatter::__construct\n     * @covers Monolog\\Formatter\\JsonFormatter::getBatchMode\n     * @covers Monolog\\Formatter\\JsonFormatter::isAppendingNewlines\n     */\n    public function testConstruct()\n    {\n        $formatter = new JsonFormatter();\n        $this->assertEquals(JsonFormatter::BATCH_MODE_JSON, $formatter->getBatchMode());\n        $this->assertEquals(true, $formatter->isAppendingNewlines());\n        $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES, false);\n        $this->assertEquals(JsonFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode());\n        $this->assertEquals(false, $formatter->isAppendingNewlines());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\JsonFormatter::format\n     */\n    public function testFormat()\n    {\n        $formatter = new JsonFormatter();\n        $record = $this->getRecord();\n        $this->assertEquals(json_encode($record).\"\\n\", $formatter->format($record));\n\n        $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_JSON, false);\n        $record = $this->getRecord();\n        $this->assertEquals(json_encode($record), $formatter->format($record));\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\JsonFormatter::formatBatch\n     * @covers Monolog\\Formatter\\JsonFormatter::formatBatchJson\n     */\n    public function testFormatBatch()\n    {\n        $formatter = new JsonFormatter();\n        $records = array(\n            $this->getRecord(Logger::WARNING),\n            $this->getRecord(Logger::DEBUG),\n        );\n        $this->assertEquals(json_encode($records), $formatter->formatBatch($records));\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\JsonFormatter::formatBatch\n     * @covers Monolog\\Formatter\\JsonFormatter::formatBatchNewlines\n     */\n    public function testFormatBatchNewlines()\n    {\n        $formatter = new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES);\n        $records = $expected = array(\n            $this->getRecord(Logger::WARNING),\n            $this->getRecord(Logger::DEBUG),\n        );\n        array_walk($expected, function (&$value, $key) {\n            $value = json_encode($value);\n        });\n        $this->assertEquals(implode(\"\\n\", $expected), $formatter->formatBatch($records));\n    }\n\n    public function testDefFormatWithException()\n    {\n        $formatter = new JsonFormatter();\n        $exception = new \\RuntimeException('Foo');\n        $formattedException = $this->formatException($exception);\n\n        $message = $this->formatRecordWithExceptionInContext($formatter, $exception);\n\n        $this->assertContextContainsFormattedException($formattedException, $message);\n    }\n\n    public function testDefFormatWithPreviousException()\n    {\n        $formatter = new JsonFormatter();\n        $exception = new \\RuntimeException('Foo', 0, new \\LogicException('Wut?'));\n        $formattedPrevException = $this->formatException($exception->getPrevious());\n        $formattedException = $this->formatException($exception, $formattedPrevException);\n\n        $message = $this->formatRecordWithExceptionInContext($formatter, $exception);\n\n        $this->assertContextContainsFormattedException($formattedException, $message);\n    }\n\n    public function testDefFormatWithThrowable()\n    {\n        if (!class_exists('Error') || !is_subclass_of('Error', 'Throwable')) {\n            $this->markTestSkipped('Requires PHP >=7');\n        }\n\n        $formatter = new JsonFormatter();\n        $throwable = new \\Error('Foo');\n        $formattedThrowable = $this->formatException($throwable);\n\n        $message = $this->formatRecordWithExceptionInContext($formatter, $throwable);\n\n        $this->assertContextContainsFormattedException($formattedThrowable, $message);\n    }\n\n    /**\n     * @param string $expected\n     * @param string $actual\n     *\n     * @internal param string $exception\n     */\n    private function assertContextContainsFormattedException($expected, $actual)\n    {\n        $this->assertEquals(\n            '{\"level_name\":\"CRITICAL\",\"channel\":\"core\",\"context\":{\"exception\":'.$expected.'},\"datetime\":null,\"extra\":[],\"message\":\"foobar\"}'.\"\\n\",\n            $actual\n        );\n    }\n\n    /**\n     * @param JsonFormatter $formatter\n     * @param \\Exception|\\Throwable $exception\n     *\n     * @return string\n     */\n    private function formatRecordWithExceptionInContext(JsonFormatter $formatter, $exception)\n    {\n        $message = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'core',\n            'context' => array('exception' => $exception),\n            'datetime' => null,\n            'extra' => array(),\n            'message' => 'foobar',\n        ));\n        return $message;\n    }\n\n    /**\n     * @param \\Exception|\\Throwable $exception\n     *\n     * @return string\n     */\n    private function formatExceptionFilePathWithLine($exception)\n    {\n        $options = 0;\n        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {\n            $options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;\n        }\n        $path = substr(json_encode($exception->getFile(), $options), 1, -1);\n        return $path . ':' . $exception->getLine();\n    }\n\n    /**\n     * @param \\Exception|\\Throwable $exception\n     *\n     * @param null|string $previous\n     *\n     * @return string\n     */\n    private function formatException($exception, $previous = null)\n    {\n        $formattedException =\n            '{\"class\":\"' . get_class($exception) .\n            '\",\"message\":\"' . $exception->getMessage() .\n            '\",\"code\":' . $exception->getCode() .\n            ',\"file\":\"' . $this->formatExceptionFilePathWithLine($exception) .\n            ($previous ? '\",\"previous\":' . $previous : '\"') .\n            '}';\n        return $formattedException;\n    }\n\n    public function testNormalizeHandleLargeArraysWithExactly1000Items()\n    {\n        $formatter = new NormalizerFormatter();\n        $largeArray = range(1, 1000);\n\n        $res = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'test',\n            'message' => 'bar',\n            'context' => array($largeArray),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n        ));\n\n        $this->assertCount(1000, $res['context'][0]);\n        $this->assertArrayNotHasKey('...', $res['context'][0]);\n    }\n\n    public function testNormalizeHandleLargeArrays()\n    {\n        $formatter = new NormalizerFormatter();\n        $largeArray = range(1, 2000);\n\n        $res = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'test',\n            'message' => 'bar',\n            'context' => array($largeArray),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n        ));\n\n        $this->assertCount(1001, $res['context'][0]);\n        $this->assertEquals('Over 1000 items (2000 total), aborting normalization', $res['context'][0]['...']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/LineFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * @covers Monolog\\Formatter\\LineFormatter\n */\nclass LineFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function testDefFormatWithString()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'WARNING',\n            'channel' => 'log',\n            'context' => array(),\n            'message' => 'foo',\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] log.WARNING: foo [] []'.\"\\n\", $message);\n    }\n\n    public function testDefFormatWithArrayContext()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'message' => 'foo',\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n            'context' => array(\n                'foo' => 'bar',\n                'baz' => 'qux',\n                'bool' => false,\n                'null' => null,\n            ),\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foo {\"foo\":\"bar\",\"baz\":\"qux\",\"bool\":false,\"null\":null} []'.\"\\n\", $message);\n    }\n\n    public function testDefFormatExtras()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime,\n            'extra' => array('ip' => '127.0.0.1'),\n            'message' => 'log',\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] {\"ip\":\"127.0.0.1\"}'.\"\\n\", $message);\n    }\n\n    public function testFormatExtras()\n    {\n        $formatter = new LineFormatter(\"[%datetime%] %channel%.%level_name%: %message% %context% %extra.file% %extra%\\n\", 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime,\n            'extra' => array('ip' => '127.0.0.1', 'file' => 'test'),\n            'message' => 'log',\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log [] test {\"ip\":\"127.0.0.1\"}'.\"\\n\", $message);\n    }\n\n    public function testContextAndExtraOptionallyNotShownIfEmpty()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d', false, true);\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n            'message' => 'log',\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: log  '.\"\\n\", $message);\n    }\n\n    public function testContextAndExtraReplacement()\n    {\n        $formatter = new LineFormatter('%context.foo% => %extra.foo%');\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('foo' => 'bar'),\n            'datetime' => new \\DateTime,\n            'extra' => array('foo' => 'xbar'),\n            'message' => 'log',\n        ));\n        $this->assertEquals('bar => xbar', $message);\n    }\n\n    public function testDefFormatWithObject()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime,\n            'extra' => array('foo' => new TestFoo, 'bar' => new TestBar, 'baz' => array(), 'res' => fopen('php://memory', 'rb')),\n            'message' => 'foobar',\n        ));\n\n        $this->assertEquals('['.date('Y-m-d').'] meh.ERROR: foobar [] {\"foo\":\"[object] (Monolog\\\\\\\\Formatter\\\\\\\\TestFoo: {\\\\\"foo\\\\\":\\\\\"foo\\\\\"})\",\"bar\":\"[object] (Monolog\\\\\\\\Formatter\\\\\\\\TestBar: bar)\",\"baz\":[],\"res\":\"[resource] (stream)\"}'.\"\\n\", $message);\n    }\n\n    public function testDefFormatWithException()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'core',\n            'context' => array('exception' => new \\RuntimeException('Foo')),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n            'message' => 'foobar',\n        ));\n\n        $path = str_replace('\\\\/', '/', json_encode(__FILE__));\n\n        $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {\"exception\":\"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).')\"} []'.\"\\n\", $message);\n    }\n\n    public function testDefFormatWithPreviousException()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $previous = new \\LogicException('Wut?');\n        $message = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'core',\n            'context' => array('exception' => new \\RuntimeException('Foo', 0, $previous)),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n            'message' => 'foobar',\n        ));\n\n        $path = str_replace('\\\\/', '/', json_encode(__FILE__));\n\n        $this->assertEquals('['.date('Y-m-d').'] core.CRITICAL: foobar {\"exception\":\"[object] (RuntimeException(code: 0): Foo at '.substr($path, 1, -1).':'.(__LINE__ - 8).', LogicException(code: 0): Wut? at '.substr($path, 1, -1).':'.(__LINE__ - 12).')\"} []'.\"\\n\", $message);\n    }\n\n    public function testBatchFormat()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->formatBatch(array(\n            array(\n                'level_name' => 'CRITICAL',\n                'channel' => 'test',\n                'message' => 'bar',\n                'context' => array(),\n                'datetime' => new \\DateTime,\n                'extra' => array(),\n            ),\n            array(\n                'level_name' => 'WARNING',\n                'channel' => 'log',\n                'message' => 'foo',\n                'context' => array(),\n                'datetime' => new \\DateTime,\n                'extra' => array(),\n            ),\n        ));\n        $this->assertEquals('['.date('Y-m-d').'] test.CRITICAL: bar [] []'.\"\\n\".'['.date('Y-m-d').'] log.WARNING: foo [] []'.\"\\n\", $message);\n    }\n\n    public function testFormatShouldStripInlineLineBreaks()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d');\n        $message = $formatter->format(\n            array(\n                'message' => \"foo\\nbar\",\n                'context' => array(),\n                'extra' => array(),\n            )\n        );\n\n        $this->assertRegExp('/foo bar/', $message);\n    }\n\n    public function testFormatShouldNotStripInlineLineBreaksWhenFlagIsSet()\n    {\n        $formatter = new LineFormatter(null, 'Y-m-d', true);\n        $message = $formatter->format(\n            array(\n                'message' => \"foo\\nbar\",\n                'context' => array(),\n                'extra' => array(),\n            )\n        );\n\n        $this->assertRegExp('/foo\\nbar/', $message);\n    }\n}\n\nclass TestFoo\n{\n    public $foo = 'foo';\n}\n\nclass TestBar\n{\n    public function __toString()\n    {\n        return 'bar';\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/LogglyFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\TestCase;\n\nclass LogglyFormatterTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\LogglyFormatter::__construct\n     */\n    public function testConstruct()\n    {\n        $formatter = new LogglyFormatter();\n        $this->assertEquals(LogglyFormatter::BATCH_MODE_NEWLINES, $formatter->getBatchMode());\n        $formatter = new LogglyFormatter(LogglyFormatter::BATCH_MODE_JSON);\n        $this->assertEquals(LogglyFormatter::BATCH_MODE_JSON, $formatter->getBatchMode());\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogglyFormatter::format\n     */\n    public function testFormat()\n    {\n        $formatter = new LogglyFormatter();\n        $record = $this->getRecord();\n        $formatted_decoded = json_decode($formatter->format($record), true);\n        $this->assertArrayHasKey(\"timestamp\", $formatted_decoded);\n        $this->assertEquals(new \\DateTime($formatted_decoded[\"timestamp\"]), $record[\"datetime\"]);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/LogstashFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\nclass LogstashFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function tearDown()\n    {\n        \\PHPUnit_Framework_Error_Warning::$enabled = true;\n\n        return parent::tearDown();\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testDefaultFormatter()\n    {\n        $formatter = new LogstashFormatter('test', 'hostname');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals(\"1970-01-01T00:00:00.000000+00:00\", $message['@timestamp']);\n        $this->assertEquals('log', $message['@message']);\n        $this->assertEquals('meh', $message['@fields']['channel']);\n        $this->assertContains('meh', $message['@tags']);\n        $this->assertEquals(Logger::ERROR, $message['@fields']['level']);\n        $this->assertEquals('test', $message['@type']);\n        $this->assertEquals('hostname', $message['@source']);\n\n        $formatter = new LogstashFormatter('mysystem');\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals('mysystem', $message['@type']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithFileAndLine()\n    {\n        $formatter = new LogstashFormatter('test');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('file' => 'test', 'line' => 14),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals('test', $message['@fields']['file']);\n        $this->assertEquals(14, $message['@fields']['line']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithContext()\n    {\n        $formatter = new LogstashFormatter('test');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $message_array = $message['@fields'];\n\n        $this->assertArrayHasKey('ctxt_from', $message_array);\n        $this->assertEquals('logger', $message_array['ctxt_from']);\n\n        // Test with extraPrefix\n        $formatter = new LogstashFormatter('test', null, null, 'CTX');\n        $message = json_decode($formatter->format($record), true);\n\n        $message_array = $message['@fields'];\n\n        $this->assertArrayHasKey('CTXfrom', $message_array);\n        $this->assertEquals('logger', $message_array['CTXfrom']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithExtra()\n    {\n        $formatter = new LogstashFormatter('test');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $message_array = $message['@fields'];\n\n        $this->assertArrayHasKey('key', $message_array);\n        $this->assertEquals('pair', $message_array['key']);\n\n        // Test with extraPrefix\n        $formatter = new LogstashFormatter('test', null, 'EXT');\n        $message = json_decode($formatter->format($record), true);\n\n        $message_array = $message['@fields'];\n\n        $this->assertArrayHasKey('EXTkey', $message_array);\n        $this->assertEquals('pair', $message_array['EXTkey']);\n    }\n\n    public function testFormatWithApplicationName()\n    {\n        $formatter = new LogstashFormatter('app', 'test');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('@type', $message);\n        $this->assertEquals('app', $message['@type']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testDefaultFormatterV1()\n    {\n        $formatter = new LogstashFormatter('test', 'hostname', null, 'ctxt_', LogstashFormatter::V1);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals(\"1970-01-01T00:00:00.000000+00:00\", $message['@timestamp']);\n        $this->assertEquals(\"1\", $message['@version']);\n        $this->assertEquals('log', $message['message']);\n        $this->assertEquals('meh', $message['channel']);\n        $this->assertEquals('ERROR', $message['level']);\n        $this->assertEquals('test', $message['type']);\n        $this->assertEquals('hostname', $message['host']);\n\n        $formatter = new LogstashFormatter('mysystem', null, null, 'ctxt_', LogstashFormatter::V1);\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals('mysystem', $message['type']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithFileAndLineV1()\n    {\n        $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('file' => 'test', 'line' => 14),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals('test', $message['file']);\n        $this->assertEquals(14, $message['line']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithContextV1()\n    {\n        $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('ctxt_from', $message);\n        $this->assertEquals('logger', $message['ctxt_from']);\n\n        // Test with extraPrefix\n        $formatter = new LogstashFormatter('test', null, null, 'CTX', LogstashFormatter::V1);\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('CTXfrom', $message);\n        $this->assertEquals('logger', $message['CTXfrom']);\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\LogstashFormatter::format\n     */\n    public function testFormatWithExtraV1()\n    {\n        $formatter = new LogstashFormatter('test', null, null, 'ctxt_', LogstashFormatter::V1);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('key', $message);\n        $this->assertEquals('pair', $message['key']);\n\n        // Test with extraPrefix\n        $formatter = new LogstashFormatter('test', null, 'EXT', 'ctxt_', LogstashFormatter::V1);\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('EXTkey', $message);\n        $this->assertEquals('pair', $message['EXTkey']);\n    }\n\n    public function testFormatWithApplicationNameV1()\n    {\n        $formatter = new LogstashFormatter('app', 'test', null, 'ctxt_', LogstashFormatter::V1);\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('key' => 'pair'),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertArrayHasKey('type', $message);\n        $this->assertEquals('app', $message['type']);\n    }\n\n    public function testFormatWithLatin9Data()\n    {\n        if (version_compare(PHP_VERSION, '5.5.0', '<')) {\n            // Ignore the warning that will be emitted by PHP <5.5.0\n            \\PHPUnit_Framework_Error_Warning::$enabled = false;\n        }\n        $formatter = new LogstashFormatter('test', 'hostname');\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => '¯\\_(ツ)_/¯',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(\n                'user_agent' => \"\\xD6WN; FBCR/OrangeEspa\\xF1a; Vers\\xE3o/4.0; F\\xE4rist\",\n            ),\n            'message' => 'log',\n        );\n\n        $message = json_decode($formatter->format($record), true);\n\n        $this->assertEquals(\"1970-01-01T00:00:00.000000+00:00\", $message['@timestamp']);\n        $this->assertEquals('log', $message['@message']);\n        $this->assertEquals('¯\\_(ツ)_/¯', $message['@fields']['channel']);\n        $this->assertContains('¯\\_(ツ)_/¯', $message['@tags']);\n        $this->assertEquals(Logger::ERROR, $message['@fields']['level']);\n        $this->assertEquals('test', $message['@type']);\n        $this->assertEquals('hostname', $message['@source']);\n        if (version_compare(PHP_VERSION, '5.5.0', '>=')) {\n            $this->assertEquals('ÖWN; FBCR/OrangeEspaña; Versão/4.0; Färist', $message['@fields']['user_agent']);\n        } else {\n            // PHP <5.5 does not return false for an element encoding failure,\n            // instead it emits a warning (possibly) and nulls the value.\n            $this->assertEquals(null, $message['@fields']['user_agent']);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/MongoDBFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\n/**\n * @author Florian Plattner <me@florianplattner.de>\n */\nclass MongoDBFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists('MongoDate')) {\n            $this->markTestSkipped('mongo extension not installed');\n        }\n    }\n\n    public function constructArgumentProvider()\n    {\n        return array(\n            array(1, true, 1, true),\n            array(0, false, 0, false),\n        );\n    }\n\n    /**\n     * @param $traceDepth\n     * @param $traceAsString\n     * @param $expectedTraceDepth\n     * @param $expectedTraceAsString\n     *\n     * @dataProvider constructArgumentProvider\n     */\n    public function testConstruct($traceDepth, $traceAsString, $expectedTraceDepth, $expectedTraceAsString)\n    {\n        $formatter = new MongoDBFormatter($traceDepth, $traceAsString);\n\n        $reflTrace = new \\ReflectionProperty($formatter, 'exceptionTraceAsString');\n        $reflTrace->setAccessible(true);\n        $this->assertEquals($expectedTraceAsString, $reflTrace->getValue($formatter));\n\n        $reflDepth = new\\ReflectionProperty($formatter, 'maxNestingLevel');\n        $reflDepth->setAccessible(true);\n        $this->assertEquals($expectedTraceDepth, $reflDepth->getValue($formatter));\n    }\n\n    public function testSimpleFormat()\n    {\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter();\n        $formattedRecord = $formatter->format($record);\n\n        $this->assertCount(7, $formattedRecord);\n        $this->assertEquals('some log message', $formattedRecord['message']);\n        $this->assertEquals(array(), $formattedRecord['context']);\n        $this->assertEquals(Logger::WARNING, $formattedRecord['level']);\n        $this->assertEquals(Logger::getLevelName(Logger::WARNING), $formattedRecord['level_name']);\n        $this->assertEquals('test', $formattedRecord['channel']);\n        $this->assertInstanceOf('\\MongoDate', $formattedRecord['datetime']);\n        $this->assertEquals('0.00000000 1391212800', $formattedRecord['datetime']->__toString());\n        $this->assertEquals(array(), $formattedRecord['extra']);\n    }\n\n    public function testRecursiveFormat()\n    {\n        $someObject = new \\stdClass();\n        $someObject->foo = 'something';\n        $someObject->bar = 'stuff';\n\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(\n                'stuff' => new \\DateTime('2014-02-01 02:31:33'),\n                'some_object' => $someObject,\n                'context_string' => 'some string',\n                'context_int' => 123456,\n                'except' => new \\Exception('exception message', 987),\n            ),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter();\n        $formattedRecord = $formatter->format($record);\n\n        $this->assertCount(5, $formattedRecord['context']);\n        $this->assertInstanceOf('\\MongoDate', $formattedRecord['context']['stuff']);\n        $this->assertEquals('0.00000000 1391221893', $formattedRecord['context']['stuff']->__toString());\n        $this->assertEquals(\n            array(\n                'foo' => 'something',\n                'bar' => 'stuff',\n                'class' => 'stdClass',\n            ),\n            $formattedRecord['context']['some_object']\n        );\n        $this->assertEquals('some string', $formattedRecord['context']['context_string']);\n        $this->assertEquals(123456, $formattedRecord['context']['context_int']);\n\n        $this->assertCount(5, $formattedRecord['context']['except']);\n        $this->assertEquals('exception message', $formattedRecord['context']['except']['message']);\n        $this->assertEquals(987, $formattedRecord['context']['except']['code']);\n        $this->assertInternalType('string', $formattedRecord['context']['except']['file']);\n        $this->assertInternalType('integer', $formattedRecord['context']['except']['code']);\n        $this->assertInternalType('string', $formattedRecord['context']['except']['trace']);\n        $this->assertEquals('Exception', $formattedRecord['context']['except']['class']);\n    }\n\n    public function testFormatDepthArray()\n    {\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(\n                'nest2' => array(\n                    'property' => 'anything',\n                    'nest3' => array(\n                        'nest4' => 'value',\n                        'property' => 'nothing',\n                    ),\n                ),\n            ),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter(2);\n        $formattedResult = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'nest2' => array(\n                    'property' => 'anything',\n                    'nest3' => '[...]',\n                ),\n            ),\n            $formattedResult['context']\n        );\n    }\n\n    public function testFormatDepthArrayInfiniteNesting()\n    {\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(\n                'nest2' => array(\n                    'property' => 'something',\n                    'nest3' => array(\n                        'property' => 'anything',\n                        'nest4' => array(\n                            'property' => 'nothing',\n                        ),\n                    ),\n                ),\n            ),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter(0);\n        $formattedResult = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'nest2' => array(\n                    'property' => 'something',\n                    'nest3' => array(\n                        'property' => 'anything',\n                        'nest4' => array(\n                            'property' => 'nothing',\n                        ),\n                    ),\n                ),\n            ),\n            $formattedResult['context']\n        );\n    }\n\n    public function testFormatDepthObjects()\n    {\n        $someObject = new \\stdClass();\n        $someObject->property = 'anything';\n        $someObject->nest3 = new \\stdClass();\n        $someObject->nest3->property = 'nothing';\n        $someObject->nest3->nest4 = 'invisible';\n\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(\n                'nest2' => $someObject,\n            ),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter(2, true);\n        $formattedResult = $formatter->format($record);\n\n        $this->assertEquals(\n            array(\n                'nest2' => array(\n                    'property' => 'anything',\n                    'nest3' => '[...]',\n                    'class' => 'stdClass',\n                ),\n            ),\n            $formattedResult['context']\n        );\n    }\n\n    public function testFormatDepthException()\n    {\n        $record = array(\n            'message' => 'some log message',\n            'context' => array(\n                'nest2' => new \\Exception('exception message', 987),\n            ),\n            'level' => Logger::WARNING,\n            'level_name' => Logger::getLevelName(Logger::WARNING),\n            'channel' => 'test',\n            'datetime' => new \\DateTime('2014-02-01 00:00:00'),\n            'extra' => array(),\n        );\n\n        $formatter = new MongoDBFormatter(2, false);\n        $formattedRecord = $formatter->format($record);\n\n        $this->assertEquals('exception message', $formattedRecord['context']['nest2']['message']);\n        $this->assertEquals(987, $formattedRecord['context']['nest2']['code']);\n        $this->assertEquals('[...]', $formattedRecord['context']['nest2']['trace']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/NormalizerFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\n/**\n * @covers Monolog\\Formatter\\NormalizerFormatter\n */\nclass NormalizerFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    public function tearDown()\n    {\n        \\PHPUnit_Framework_Error_Warning::$enabled = true;\n\n        return parent::tearDown();\n    }\n\n    public function testFormat()\n    {\n        $formatter = new NormalizerFormatter('Y-m-d');\n        $formatted = $formatter->format(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'message' => 'foo',\n            'datetime' => new \\DateTime,\n            'extra' => array('foo' => new TestFooNorm, 'bar' => new TestBarNorm, 'baz' => array(), 'res' => fopen('php://memory', 'rb')),\n            'context' => array(\n                'foo' => 'bar',\n                'baz' => 'qux',\n                'inf' => INF,\n                '-inf' => -INF,\n                'nan' => acos(4),\n            ),\n        ));\n\n        $this->assertEquals(array(\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'message' => 'foo',\n            'datetime' => date('Y-m-d'),\n            'extra' => array(\n                'foo' => '[object] (Monolog\\\\Formatter\\\\TestFooNorm: {\"foo\":\"foo\"})',\n                'bar' => '[object] (Monolog\\\\Formatter\\\\TestBarNorm: bar)',\n                'baz' => array(),\n                'res' => '[resource] (stream)',\n            ),\n            'context' => array(\n                'foo' => 'bar',\n                'baz' => 'qux',\n                'inf' => 'INF',\n                '-inf' => '-INF',\n                'nan' => 'NaN',\n            ),\n        ), $formatted);\n    }\n\n    public function testFormatExceptions()\n    {\n        $formatter = new NormalizerFormatter('Y-m-d');\n        $e = new \\LogicException('bar');\n        $e2 = new \\RuntimeException('foo', 0, $e);\n        $formatted = $formatter->format(array(\n            'exception' => $e2,\n        ));\n\n        $this->assertGreaterThan(5, count($formatted['exception']['trace']));\n        $this->assertTrue(isset($formatted['exception']['previous']));\n        unset($formatted['exception']['trace'], $formatted['exception']['previous']);\n\n        $this->assertEquals(array(\n            'exception' => array(\n                'class'   => get_class($e2),\n                'message' => $e2->getMessage(),\n                'code'    => $e2->getCode(),\n                'file'    => $e2->getFile().':'.$e2->getLine(),\n            ),\n        ), $formatted);\n    }\n\n    public function testFormatSoapFaultException()\n    {\n        if (!class_exists('SoapFault')) {\n            $this->markTestSkipped('Requires the soap extension');\n        }\n\n        $formatter = new NormalizerFormatter('Y-m-d');\n        $e = new \\SoapFault('foo', 'bar', 'hello', 'world');\n        $formatted = $formatter->format(array(\n            'exception' => $e,\n        ));\n\n        unset($formatted['exception']['trace']);\n\n        $this->assertEquals(array(\n            'exception' => array(\n                'class' => 'SoapFault',\n                'message' => 'bar',\n                'code' => 0,\n                'file' => $e->getFile().':'.$e->getLine(),\n                'faultcode' => 'foo',\n                'faultactor' => 'hello',\n                'detail' => 'world',\n            ),\n        ), $formatted);\n    }\n\n    public function testFormatToStringExceptionHandle()\n    {\n        $formatter = new NormalizerFormatter('Y-m-d');\n        $this->setExpectedException('RuntimeException', 'Could not convert to string');\n        $formatter->format(array(\n            'myObject' => new TestToStringError(),\n        ));\n    }\n\n    public function testBatchFormat()\n    {\n        $formatter = new NormalizerFormatter('Y-m-d');\n        $formatted = $formatter->formatBatch(array(\n            array(\n                'level_name' => 'CRITICAL',\n                'channel' => 'test',\n                'message' => 'bar',\n                'context' => array(),\n                'datetime' => new \\DateTime,\n                'extra' => array(),\n            ),\n            array(\n                'level_name' => 'WARNING',\n                'channel' => 'log',\n                'message' => 'foo',\n                'context' => array(),\n                'datetime' => new \\DateTime,\n                'extra' => array(),\n            ),\n        ));\n        $this->assertEquals(array(\n            array(\n                'level_name' => 'CRITICAL',\n                'channel' => 'test',\n                'message' => 'bar',\n                'context' => array(),\n                'datetime' => date('Y-m-d'),\n                'extra' => array(),\n            ),\n            array(\n                'level_name' => 'WARNING',\n                'channel' => 'log',\n                'message' => 'foo',\n                'context' => array(),\n                'datetime' => date('Y-m-d'),\n                'extra' => array(),\n            ),\n        ), $formatted);\n    }\n\n    /**\n     * Test issue #137\n     */\n    public function testIgnoresRecursiveObjectReferences()\n    {\n        // set up the recursion\n        $foo = new \\stdClass();\n        $bar = new \\stdClass();\n\n        $foo->bar = $bar;\n        $bar->foo = $foo;\n\n        // set an error handler to assert that the error is not raised anymore\n        $that = $this;\n        set_error_handler(function ($level, $message, $file, $line, $context) use ($that) {\n            if (error_reporting() & $level) {\n                restore_error_handler();\n                $that->fail(\"$message should not be raised\");\n            }\n        });\n\n        $formatter = new NormalizerFormatter();\n        $reflMethod = new \\ReflectionMethod($formatter, 'toJson');\n        $reflMethod->setAccessible(true);\n        $res = $reflMethod->invoke($formatter, array($foo, $bar), true);\n\n        restore_error_handler();\n\n        $this->assertEquals(@json_encode(array($foo, $bar)), $res);\n    }\n\n    public function testCanNormalizeReferences()\n    {\n        $formatter = new NormalizerFormatter();\n        $x = array('foo' => 'bar');\n        $y = array('x' => &$x);\n        $x['y'] = &$y;\n        $formatter->format($y);\n    }\n\n    public function testIgnoresInvalidTypes()\n    {\n        // set up the recursion\n        $resource = fopen(__FILE__, 'r');\n\n        // set an error handler to assert that the error is not raised anymore\n        $that = $this;\n        set_error_handler(function ($level, $message, $file, $line, $context) use ($that) {\n            if (error_reporting() & $level) {\n                restore_error_handler();\n                $that->fail(\"$message should not be raised\");\n            }\n        });\n\n        $formatter = new NormalizerFormatter();\n        $reflMethod = new \\ReflectionMethod($formatter, 'toJson');\n        $reflMethod->setAccessible(true);\n        $res = $reflMethod->invoke($formatter, array($resource), true);\n\n        restore_error_handler();\n\n        $this->assertEquals(@json_encode(array($resource)), $res);\n    }\n\n    public function testNormalizeHandleLargeArraysWithExactly1000Items()\n    {\n        $formatter = new NormalizerFormatter();\n        $largeArray = range(1, 1000);\n\n        $res = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'test',\n            'message' => 'bar',\n            'context' => array($largeArray),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n        ));\n\n        $this->assertCount(1000, $res['context'][0]);\n        $this->assertArrayNotHasKey('...', $res['context'][0]);\n    }\n\n    public function testNormalizeHandleLargeArrays()\n    {\n        $formatter = new NormalizerFormatter();\n        $largeArray = range(1, 2000);\n\n        $res = $formatter->format(array(\n            'level_name' => 'CRITICAL',\n            'channel' => 'test',\n            'message' => 'bar',\n            'context' => array($largeArray),\n            'datetime' => new \\DateTime,\n            'extra' => array(),\n        ));\n\n        $this->assertCount(1001, $res['context'][0]);\n        $this->assertEquals('Over 1000 items (2000 total), aborting normalization', $res['context'][0]['...']);\n    }\n\n    /**\n     * @expectedException RuntimeException\n     */\n    public function testThrowsOnInvalidEncoding()\n    {\n        if (version_compare(PHP_VERSION, '5.5.0', '<')) {\n            // Ignore the warning that will be emitted by PHP <5.5.0\n            \\PHPUnit_Framework_Error_Warning::$enabled = false;\n        }\n        $formatter = new NormalizerFormatter();\n        $reflMethod = new \\ReflectionMethod($formatter, 'toJson');\n        $reflMethod->setAccessible(true);\n\n        // send an invalid unicode sequence as a object that can't be cleaned\n        $record = new \\stdClass;\n        $record->message = \"\\xB1\\x31\";\n        $res = $reflMethod->invoke($formatter, $record);\n        if (PHP_VERSION_ID < 50500 && $res === '{\"message\":null}') {\n            throw new \\RuntimeException('PHP 5.3/5.4 throw a warning and null the value instead of returning false entirely');\n        }\n    }\n\n    public function testConvertsInvalidEncodingAsLatin9()\n    {\n        if (version_compare(PHP_VERSION, '5.5.0', '<')) {\n            // Ignore the warning that will be emitted by PHP <5.5.0\n            \\PHPUnit_Framework_Error_Warning::$enabled = false;\n        }\n        $formatter = new NormalizerFormatter();\n        $reflMethod = new \\ReflectionMethod($formatter, 'toJson');\n        $reflMethod->setAccessible(true);\n\n        $res = $reflMethod->invoke($formatter, array('message' => \"\\xA4\\xA6\\xA8\\xB4\\xB8\\xBC\\xBD\\xBE\"));\n\n        if (version_compare(PHP_VERSION, '5.5.0', '>=')) {\n            $this->assertSame('{\"message\":\"€ŠšŽžŒœŸ\"}', $res);\n        } else {\n            // PHP <5.5 does not return false for an element encoding failure,\n            // instead it emits a warning (possibly) and nulls the value.\n            $this->assertSame('{\"message\":null}', $res);\n        }\n    }\n\n    /**\n     * @param mixed $in     Input\n     * @param mixed $expect Expected output\n     * @covers Monolog\\Formatter\\NormalizerFormatter::detectAndCleanUtf8\n     * @dataProvider providesDetectAndCleanUtf8\n     */\n    public function testDetectAndCleanUtf8($in, $expect)\n    {\n        $formatter = new NormalizerFormatter();\n        $formatter->detectAndCleanUtf8($in);\n        $this->assertSame($expect, $in);\n    }\n\n    public function providesDetectAndCleanUtf8()\n    {\n        $obj = new \\stdClass;\n\n        return array(\n            'null' => array(null, null),\n            'int' => array(123, 123),\n            'float' => array(123.45, 123.45),\n            'bool false' => array(false, false),\n            'bool true' => array(true, true),\n            'ascii string' => array('abcdef', 'abcdef'),\n            'latin9 string' => array(\"\\xB1\\x31\\xA4\\xA6\\xA8\\xB4\\xB8\\xBC\\xBD\\xBE\\xFF\", '±1€ŠšŽžŒœŸÿ'),\n            'unicode string' => array('¤¦¨´¸¼½¾€ŠšŽžŒœŸ', '¤¦¨´¸¼½¾€ŠšŽžŒœŸ'),\n            'empty array' => array(array(), array()),\n            'array' => array(array('abcdef'), array('abcdef')),\n            'object' => array($obj, $obj),\n        );\n    }\n\n    /**\n     * @param int    $code\n     * @param string $msg\n     * @dataProvider providesHandleJsonErrorFailure\n     */\n    public function testHandleJsonErrorFailure($code, $msg)\n    {\n        $formatter = new NormalizerFormatter();\n        $reflMethod = new \\ReflectionMethod($formatter, 'handleJsonError');\n        $reflMethod->setAccessible(true);\n\n        $this->setExpectedException('RuntimeException', $msg);\n        $reflMethod->invoke($formatter, $code, 'faked');\n    }\n\n    public function providesHandleJsonErrorFailure()\n    {\n        return array(\n            'depth' => array(JSON_ERROR_DEPTH, 'Maximum stack depth exceeded'),\n            'state' => array(JSON_ERROR_STATE_MISMATCH, 'Underflow or the modes mismatch'),\n            'ctrl' => array(JSON_ERROR_CTRL_CHAR, 'Unexpected control character found'),\n            'default' => array(-1, 'Unknown error'),\n        );\n    }\n\n    public function testExceptionTraceWithArgs()\n    {\n        if (defined('HHVM_VERSION')) {\n            $this->markTestSkipped('Not supported in HHVM since it detects errors differently');\n        }\n\n        // This happens i.e. in React promises or Guzzle streams where stream wrappers are registered\n        // and no file or line are included in the trace because it's treated as internal function\n        set_error_handler(function ($errno, $errstr, $errfile, $errline) {\n            throw new \\ErrorException($errstr, 0, $errno, $errfile, $errline);\n        });\n\n        try {\n            // This will contain $resource and $wrappedResource as arguments in the trace item\n            $resource = fopen('php://memory', 'rw+');\n            fwrite($resource, 'test_resource');\n            $wrappedResource = new TestFooNorm;\n            $wrappedResource->foo = $resource;\n            // Just do something stupid with a resource/wrapped resource as argument\n            array_keys($wrappedResource);\n        } catch (\\Exception $e) {\n            restore_error_handler();\n        }\n\n        $formatter = new NormalizerFormatter();\n        $record = array('context' => array('exception' => $e));\n        $result = $formatter->format($record);\n\n        $this->assertRegExp(\n            '%\"resource\":\"\\[resource\\] \\(stream\\)\"%',\n            $result['context']['exception']['trace'][0]\n        );\n\n        if (version_compare(PHP_VERSION, '5.5.0', '>=')) {\n            $pattern = '%\"wrappedResource\":\"\\[object\\] \\(Monolog\\\\\\\\\\\\\\\\Formatter\\\\\\\\\\\\\\\\TestFooNorm: \\)\"%';\n        } else {\n            $pattern = '%\\\\\\\\\"foo\\\\\\\\\":null%';\n        }\n\n        // Tests that the wrapped resource is ignored while encoding, only works for PHP <= 5.4\n        $this->assertRegExp(\n            $pattern,\n            $result['context']['exception']['trace'][0]\n        );\n    }\n\n    public function testExceptionTraceDoesNotLeakCallUserFuncArgs()\n    {\n        try {\n            $arg = new TestInfoLeak;\n            call_user_func(array($this, 'throwHelper'), $arg, $dt = new \\DateTime());\n        } catch (\\Exception $e) {\n        }\n\n        $formatter = new NormalizerFormatter();\n        $record = array('context' => array('exception' => $e));\n        $result = $formatter->format($record);\n\n        $this->assertSame(\n            '{\"function\":\"throwHelper\",\"class\":\"Monolog\\\\\\\\Formatter\\\\\\\\NormalizerFormatterTest\",\"type\":\"->\",\"args\":[\"[object] (Monolog\\\\\\\\Formatter\\\\\\\\TestInfoLeak)\",\"'.$dt->format('Y-m-d H:i:s').'\"]}',\n            $result['context']['exception']['trace'][0]\n        );\n    }\n\n    private function throwHelper($arg)\n    {\n        throw new \\RuntimeException('Thrown');\n    }\n}\n\nclass TestFooNorm\n{\n    public $foo = 'foo';\n}\n\nclass TestBarNorm\n{\n    public function __toString()\n    {\n        return 'bar';\n    }\n}\n\nclass TestStreamFoo\n{\n    public $foo;\n    public $resource;\n\n    public function __construct($resource)\n    {\n        $this->resource = $resource;\n        $this->foo = 'BAR';\n    }\n\n    public function __toString()\n    {\n        fseek($this->resource, 0);\n\n        return $this->foo . ' - ' . (string) stream_get_contents($this->resource);\n    }\n}\n\nclass TestToStringError\n{\n    public function __toString()\n    {\n        throw new \\RuntimeException('Could not convert to string');\n    }\n}\n\nclass TestInfoLeak\n{\n    public function __toString()\n    {\n        return 'Sensitive information';\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/ScalarFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nclass ScalarFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    private $formatter;\n\n    public function setUp()\n    {\n        $this->formatter = new ScalarFormatter();\n    }\n\n    public function buildTrace(\\Exception $e)\n    {\n        $data = array();\n        $trace = $e->getTrace();\n        foreach ($trace as $frame) {\n            if (isset($frame['file'])) {\n                $data[] = $frame['file'].':'.$frame['line'];\n            } else {\n                $data[] = json_encode($frame);\n            }\n        }\n\n        return $data;\n    }\n\n    public function encodeJson($data)\n    {\n        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {\n            return json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);\n        }\n\n        return json_encode($data);\n    }\n\n    public function testFormat()\n    {\n        $exception = new \\Exception('foo');\n        $formatted = $this->formatter->format(array(\n            'foo' => 'string',\n            'bar' => 1,\n            'baz' => false,\n            'bam' => array(1, 2, 3),\n            'bat' => array('foo' => 'bar'),\n            'bap' => \\DateTime::createFromFormat(\\DateTime::ISO8601, '1970-01-01T00:00:00+0000'),\n            'ban' => $exception,\n        ));\n\n        $this->assertSame(array(\n            'foo' => 'string',\n            'bar' => 1,\n            'baz' => false,\n            'bam' => $this->encodeJson(array(1, 2, 3)),\n            'bat' => $this->encodeJson(array('foo' => 'bar')),\n            'bap' => '1970-01-01 00:00:00',\n            'ban' => $this->encodeJson(array(\n                'class'   => get_class($exception),\n                'message' => $exception->getMessage(),\n                'code'    => $exception->getCode(),\n                'file'    => $exception->getFile() . ':' . $exception->getLine(),\n                'trace'   => $this->buildTrace($exception),\n            )),\n        ), $formatted);\n    }\n\n    public function testFormatWithErrorContext()\n    {\n        $context = array('file' => 'foo', 'line' => 1);\n        $formatted = $this->formatter->format(array(\n            'context' => $context,\n        ));\n\n        $this->assertSame(array(\n            'context' => $this->encodeJson($context),\n        ), $formatted);\n    }\n\n    public function testFormatWithExceptionContext()\n    {\n        $exception = new \\Exception('foo');\n        $formatted = $this->formatter->format(array(\n            'context' => array(\n                'exception' => $exception,\n            ),\n        ));\n\n        $this->assertSame(array(\n            'context' => $this->encodeJson(array(\n                'exception' => array(\n                    'class'   => get_class($exception),\n                    'message' => $exception->getMessage(),\n                    'code'    => $exception->getCode(),\n                    'file'    => $exception->getFile() . ':' . $exception->getLine(),\n                    'trace'   => $this->buildTrace($exception),\n                ),\n            )),\n        ), $formatted);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Formatter/WildfireFormatterTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Formatter;\n\nuse Monolog\\Logger;\n\nclass WildfireFormatterTest extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @covers Monolog\\Formatter\\WildfireFormatter::format\n     */\n    public function testDefaultFormat()\n    {\n        $wildfire = new WildfireFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('ip' => '127.0.0.1'),\n            'message' => 'log',\n        );\n\n        $message = $wildfire->format($record);\n\n        $this->assertEquals(\n            '125|[{\"Type\":\"ERROR\",\"File\":\"\",\"Line\":\"\",\"Label\":\"meh\"},'\n                .'{\"message\":\"log\",\"context\":{\"from\":\"logger\"},\"extra\":{\"ip\":\"127.0.0.1\"}}]|',\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\WildfireFormatter::format\n     */\n    public function testFormatWithFileAndLine()\n    {\n        $wildfire = new WildfireFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('from' => 'logger'),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array('ip' => '127.0.0.1', 'file' => 'test', 'line' => 14),\n            'message' => 'log',\n        );\n\n        $message = $wildfire->format($record);\n\n        $this->assertEquals(\n            '129|[{\"Type\":\"ERROR\",\"File\":\"test\",\"Line\":14,\"Label\":\"meh\"},'\n                .'{\"message\":\"log\",\"context\":{\"from\":\"logger\"},\"extra\":{\"ip\":\"127.0.0.1\"}}]|',\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\WildfireFormatter::format\n     */\n    public function testFormatWithoutContext()\n    {\n        $wildfire = new WildfireFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $message = $wildfire->format($record);\n\n        $this->assertEquals(\n            '58|[{\"Type\":\"ERROR\",\"File\":\"\",\"Line\":\"\",\"Label\":\"meh\"},\"log\"]|',\n            $message\n        );\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\WildfireFormatter::formatBatch\n     * @expectedException BadMethodCallException\n     */\n    public function testBatchFormatThrowException()\n    {\n        $wildfire = new WildfireFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array(),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $wildfire->formatBatch(array($record));\n    }\n\n    /**\n     * @covers Monolog\\Formatter\\WildfireFormatter::format\n     */\n    public function testTableFormat()\n    {\n        $wildfire = new WildfireFormatter();\n        $record = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'table-channel',\n            'context' => array(\n            WildfireFormatter::TABLE => array(\n                    array('col1', 'col2', 'col3'),\n                    array('val1', 'val2', 'val3'),\n                    array('foo1', 'foo2', 'foo3'),\n                    array('bar1', 'bar2', 'bar3'),\n                ),\n            ),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'table-message',\n        );\n\n        $message = $wildfire->format($record);\n\n        $this->assertEquals(\n            '171|[{\"Type\":\"TABLE\",\"File\":\"\",\"Line\":\"\",\"Label\":\"table-channel: table-message\"},[[\"col1\",\"col2\",\"col3\"],[\"val1\",\"val2\",\"val3\"],[\"foo1\",\"foo2\",\"foo3\"],[\"bar1\",\"bar2\",\"bar3\"]]]|',\n            $message\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/AbstractHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Processor\\WebProcessor;\n\nclass AbstractHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::__construct\n     * @covers Monolog\\Handler\\AbstractHandler::getLevel\n     * @covers Monolog\\Handler\\AbstractHandler::setLevel\n     * @covers Monolog\\Handler\\AbstractHandler::getBubble\n     * @covers Monolog\\Handler\\AbstractHandler::setBubble\n     * @covers Monolog\\Handler\\AbstractHandler::getFormatter\n     * @covers Monolog\\Handler\\AbstractHandler::setFormatter\n     */\n    public function testConstructAndGetSet()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler', array(Logger::WARNING, false));\n        $this->assertEquals(Logger::WARNING, $handler->getLevel());\n        $this->assertEquals(false, $handler->getBubble());\n\n        $handler->setLevel(Logger::ERROR);\n        $handler->setBubble(true);\n        $handler->setFormatter($formatter = new LineFormatter);\n        $this->assertEquals(Logger::ERROR, $handler->getLevel());\n        $this->assertEquals(true, $handler->getBubble());\n        $this->assertSame($formatter, $handler->getFormatter());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::handleBatch\n     */\n    public function testHandleBatch()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler');\n        $handler->expects($this->exactly(2))\n            ->method('handle');\n        $handler->handleBatch(array($this->getRecord(), $this->getRecord()));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::isHandling\n     */\n    public function testIsHandling()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler', array(Logger::WARNING, false));\n        $this->assertTrue($handler->isHandling($this->getRecord()));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::__construct\n     */\n    public function testHandlesPsrStyleLevels()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler', array('warning', false));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));\n        $handler->setLevel('debug');\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::getFormatter\n     * @covers Monolog\\Handler\\AbstractHandler::getDefaultFormatter\n     */\n    public function testGetFormatterInitializesDefault()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler');\n        $this->assertInstanceOf('Monolog\\Formatter\\LineFormatter', $handler->getFormatter());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::pushProcessor\n     * @covers Monolog\\Handler\\AbstractHandler::popProcessor\n     * @expectedException LogicException\n     */\n    public function testPushPopProcessor()\n    {\n        $logger = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler');\n        $processor1 = new WebProcessor;\n        $processor2 = new WebProcessor;\n\n        $logger->pushProcessor($processor1);\n        $logger->pushProcessor($processor2);\n\n        $this->assertEquals($processor2, $logger->popProcessor());\n        $this->assertEquals($processor1, $logger->popProcessor());\n        $logger->popProcessor();\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractHandler::pushProcessor\n     * @expectedException InvalidArgumentException\n     */\n    public function testPushProcessorWithNonCallable()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractHandler');\n\n        $handler->pushProcessor(new \\stdClass());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/AbstractProcessingHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Processor\\WebProcessor;\n\nclass AbstractProcessingHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\AbstractProcessingHandler::handle\n     */\n    public function testHandleLowerLevelMessage()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractProcessingHandler', array(Logger::WARNING, true));\n        $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractProcessingHandler::handle\n     */\n    public function testHandleBubbling()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractProcessingHandler', array(Logger::DEBUG, true));\n        $this->assertFalse($handler->handle($this->getRecord()));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractProcessingHandler::handle\n     */\n    public function testHandleNotBubbling()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractProcessingHandler', array(Logger::DEBUG, false));\n        $this->assertTrue($handler->handle($this->getRecord()));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractProcessingHandler::handle\n     */\n    public function testHandleIsFalseWhenNotHandled()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractProcessingHandler', array(Logger::WARNING, false));\n        $this->assertTrue($handler->handle($this->getRecord()));\n        $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\AbstractProcessingHandler::processRecord\n     */\n    public function testProcessRecord()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\Handler\\AbstractProcessingHandler');\n        $handler->pushProcessor(new WebProcessor(array(\n            'REQUEST_URI' => '',\n            'REQUEST_METHOD' => '',\n            'REMOTE_ADDR' => '',\n            'SERVER_NAME' => '',\n            'UNIQUE_ID' => '',\n        )));\n        $handledRecord = null;\n        $handler->expects($this->once())\n            ->method('write')\n            ->will($this->returnCallback(function ($record) use (&$handledRecord) {\n                $handledRecord = $record;\n            }))\n        ;\n        $handler->handle($this->getRecord());\n        $this->assertEquals(6, count($handledRecord['extra']));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/AmqpHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse PhpAmqpLib\\Message\\AMQPMessage;\nuse PhpAmqpLib\\Connection\\AMQPConnection;\n\n/**\n * @covers Monolog\\Handler\\RotatingFileHandler\n */\nclass AmqpHandlerTest extends TestCase\n{\n    public function testHandleAmqpExt()\n    {\n        if (!class_exists('AMQPConnection') || !class_exists('AMQPExchange')) {\n            $this->markTestSkipped(\"amqp-php not installed\");\n        }\n\n        if (!class_exists('AMQPChannel')) {\n            $this->markTestSkipped(\"Please update AMQP to version >= 1.0\");\n        }\n\n        $messages = array();\n\n        $exchange = $this->getMock('AMQPExchange', array('publish', 'setName'), array(), '', false);\n        $exchange->expects($this->once())\n            ->method('setName')\n            ->with('log')\n        ;\n        $exchange->expects($this->any())\n            ->method('publish')\n            ->will($this->returnCallback(function ($message, $routing_key, $flags = 0, $attributes = array()) use (&$messages) {\n                $messages[] = array($message, $routing_key, $flags, $attributes);\n            }))\n        ;\n\n        $handler = new AmqpHandler($exchange, 'log');\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $expected = array(\n            array(\n                'message' => 'test',\n                'context' => array(\n                    'data' => array(),\n                    'foo' => 34,\n                ),\n                'level' => 300,\n                'level_name' => 'WARNING',\n                'channel' => 'test',\n                'extra' => array(),\n            ),\n            'warn.test',\n            0,\n            array(\n                'delivery_mode' => 2,\n                'content_type' => 'application/json',\n            ),\n        );\n\n        $handler->handle($record);\n\n        $this->assertCount(1, $messages);\n        $messages[0][0] = json_decode($messages[0][0], true);\n        unset($messages[0][0]['datetime']);\n        $this->assertEquals($expected, $messages[0]);\n    }\n\n    public function testHandlePhpAmqpLib()\n    {\n        if (!class_exists('PhpAmqpLib\\Connection\\AMQPConnection')) {\n            $this->markTestSkipped(\"php-amqplib not installed\");\n        }\n\n        $messages = array();\n\n        $exchange = $this->getMock('PhpAmqpLib\\Channel\\AMQPChannel', array('basic_publish', '__destruct'), array(), '', false);\n\n        $exchange->expects($this->any())\n            ->method('basic_publish')\n            ->will($this->returnCallback(function (AMQPMessage $msg, $exchange = \"\", $routing_key = \"\", $mandatory = false, $immediate = false, $ticket = null) use (&$messages) {\n                $messages[] = array($msg, $exchange, $routing_key, $mandatory, $immediate, $ticket);\n            }))\n        ;\n\n        $handler = new AmqpHandler($exchange, 'log');\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $expected = array(\n            array(\n                'message' => 'test',\n                'context' => array(\n                    'data' => array(),\n                    'foo' => 34,\n                ),\n                'level' => 300,\n                'level_name' => 'WARNING',\n                'channel' => 'test',\n                'extra' => array(),\n            ),\n            'log',\n            'warn.test',\n            false,\n            false,\n            null,\n            array(\n                'delivery_mode' => 2,\n                'content_type' => 'application/json',\n            ),\n        );\n\n        $handler->handle($record);\n\n        $this->assertCount(1, $messages);\n\n        /* @var $msg AMQPMessage */\n        $msg = $messages[0][0];\n        $messages[0][0] = json_decode($msg->body, true);\n        $messages[0][] = $msg->get_properties();\n        unset($messages[0][0]['datetime']);\n\n        $this->assertEquals($expected, $messages[0]);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/BrowserConsoleHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\BrowserConsoleHandlerTest\n */\nclass BrowserConsoleHandlerTest extends TestCase\n{\n    protected function setUp()\n    {\n        BrowserConsoleHandler::resetStatic();\n    }\n\n    protected function generateScript()\n    {\n        $reflMethod = new \\ReflectionMethod('Monolog\\Handler\\BrowserConsoleHandler', 'generateScript');\n        $reflMethod->setAccessible(true);\n\n        return $reflMethod->invoke(null);\n    }\n\n    public function testStyling()\n    {\n        $handler = new BrowserConsoleHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n\n        $handler->handle($this->getRecord(Logger::DEBUG, 'foo[[bar]]{color: red}'));\n\n        $expected = <<<EOF\n(function (c) {if (c && c.groupCollapsed) {\nc.log(\"%cfoo%cbar%c\", \"font-weight: normal\", \"color: red\", \"font-weight: normal\");\n}})(console);\nEOF;\n\n        $this->assertEquals($expected, $this->generateScript());\n    }\n\n    public function testEscaping()\n    {\n        $handler = new BrowserConsoleHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n\n        $handler->handle($this->getRecord(Logger::DEBUG, \"[foo] [[\\\"bar\\n[baz]\\\"]]{color: red}\"));\n\n        $expected = <<<EOF\n(function (c) {if (c && c.groupCollapsed) {\nc.log(\"%c[foo] %c\\\"bar\\\\n[baz]\\\"%c\", \"font-weight: normal\", \"color: red\", \"font-weight: normal\");\n}})(console);\nEOF;\n\n        $this->assertEquals($expected, $this->generateScript());\n    }\n\n    public function testAutolabel()\n    {\n        $handler = new BrowserConsoleHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n\n        $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}'));\n        $handler->handle($this->getRecord(Logger::DEBUG, '[[bar]]{macro: autolabel}'));\n        $handler->handle($this->getRecord(Logger::DEBUG, '[[foo]]{macro: autolabel}'));\n\n        $expected = <<<EOF\n(function (c) {if (c && c.groupCollapsed) {\nc.log(\"%c%cfoo%c\", \"font-weight: normal\", \"background-color: blue; color: white; border-radius: 3px; padding: 0 2px 0 2px\", \"font-weight: normal\");\nc.log(\"%c%cbar%c\", \"font-weight: normal\", \"background-color: green; color: white; border-radius: 3px; padding: 0 2px 0 2px\", \"font-weight: normal\");\nc.log(\"%c%cfoo%c\", \"font-weight: normal\", \"background-color: blue; color: white; border-radius: 3px; padding: 0 2px 0 2px\", \"font-weight: normal\");\n}})(console);\nEOF;\n\n        $this->assertEquals($expected, $this->generateScript());\n    }\n\n    public function testContext()\n    {\n        $handler = new BrowserConsoleHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n\n        $handler->handle($this->getRecord(Logger::DEBUG, 'test', array('foo' => 'bar')));\n\n        $expected = <<<EOF\n(function (c) {if (c && c.groupCollapsed) {\nc.groupCollapsed(\"%ctest\", \"font-weight: normal\");\nc.log(\"%c%s\", \"font-weight: bold\", \"Context\");\nc.log(\"%s: %o\", \"foo\", \"bar\");\nc.groupEnd();\n}})(console);\nEOF;\n\n        $this->assertEquals($expected, $this->generateScript());\n    }\n\n    public function testConcurrentHandlers()\n    {\n        $handler1 = new BrowserConsoleHandler();\n        $handler1->setFormatter($this->getIdentityFormatter());\n\n        $handler2 = new BrowserConsoleHandler();\n        $handler2->setFormatter($this->getIdentityFormatter());\n\n        $handler1->handle($this->getRecord(Logger::DEBUG, 'test1'));\n        $handler2->handle($this->getRecord(Logger::DEBUG, 'test2'));\n        $handler1->handle($this->getRecord(Logger::DEBUG, 'test3'));\n        $handler2->handle($this->getRecord(Logger::DEBUG, 'test4'));\n\n        $expected = <<<EOF\n(function (c) {if (c && c.groupCollapsed) {\nc.log(\"%ctest1\", \"font-weight: normal\");\nc.log(\"%ctest2\", \"font-weight: normal\");\nc.log(\"%ctest3\", \"font-weight: normal\");\nc.log(\"%ctest4\", \"font-weight: normal\");\n}})(console);\nEOF;\n\n        $this->assertEquals($expected, $this->generateScript());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/BufferHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass BufferHandlerTest extends TestCase\n{\n    private $shutdownCheckHandler;\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::__construct\n     * @covers Monolog\\Handler\\BufferHandler::handle\n     * @covers Monolog\\Handler\\BufferHandler::close\n     */\n    public function testHandleBuffers()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertFalse($test->hasInfoRecords());\n        $handler->close();\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertTrue(count($test->getRecords()) === 2);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::close\n     * @covers Monolog\\Handler\\BufferHandler::flush\n     */\n    public function testPropagatesRecordsAtEndOfRequest()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test);\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->shutdownCheckHandler = $test;\n        register_shutdown_function(array($this, 'checkPropagation'));\n    }\n\n    public function checkPropagation()\n    {\n        if (!$this->shutdownCheckHandler->hasWarningRecords() || !$this->shutdownCheckHandler->hasDebugRecords()) {\n            echo '!!! BufferHandlerTest::testPropagatesRecordsAtEndOfRequest failed to verify that the messages have been propagated' . PHP_EOL;\n            exit(1);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::handle\n     */\n    public function testHandleBufferLimit()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test, 2);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->close();\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertFalse($test->hasDebugRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::handle\n     */\n    public function testHandleBufferLimitWithFlushOnOverflow()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test, 3, Logger::DEBUG, true, true);\n\n        // send two records\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertCount(0, $test->getRecords());\n\n        // overflow\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertCount(3, $test->getRecords());\n\n        // should buffer again\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertCount(3, $test->getRecords());\n\n        $handler->close();\n        $this->assertCount(5, $test->getRecords());\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::handle\n     */\n    public function testHandleLevel()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test, 0, Logger::INFO);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->close();\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertFalse($test->hasDebugRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::flush\n     */\n    public function testFlush()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test, 0);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->flush();\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\BufferHandler::handle\n     */\n    public function testHandleUsesProcessors()\n    {\n        $test = new TestHandler();\n        $handler = new BufferHandler($test);\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->flush();\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/ChromePHPHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\ChromePHPHandler\n */\nclass ChromePHPHandlerTest extends TestCase\n{\n    protected function setUp()\n    {\n        TestChromePHPHandler::resetStatic();\n        $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; Chrome/1.0';\n    }\n\n    /**\n     * @dataProvider agentsProvider\n     */\n    public function testHeaders($agent)\n    {\n        $_SERVER['HTTP_USER_AGENT'] = $agent;\n\n        $handler = new TestChromePHPHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING));\n\n        $expected = array(\n            'X-ChromeLogger-Data'   => base64_encode(utf8_encode(json_encode(array(\n                'version' => ChromePHPHandler::VERSION,\n                'columns' => array('label', 'log', 'backtrace', 'type'),\n                'rows' => array(\n                    'test',\n                    'test',\n                ),\n                'request_uri' => '',\n            )))),\n        );\n\n        $this->assertEquals($expected, $handler->getHeaders());\n    }\n\n    public static function agentsProvider()\n    {\n        return array(\n            array('Monolog Test; Chrome/1.0'),\n            array('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'),\n            array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/56.0.2924.76 Chrome/56.0.2924.76 Safari/537.36'),\n            array('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36'),\n        );\n    }\n\n    public function testHeadersOverflow()\n    {\n        $handler = new TestChromePHPHandler();\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 150 * 1024)));\n\n        // overflow chrome headers limit\n        $handler->handle($this->getRecord(Logger::WARNING, str_repeat('a', 100 * 1024)));\n\n        $expected = array(\n            'X-ChromeLogger-Data'   => base64_encode(utf8_encode(json_encode(array(\n                'version' => ChromePHPHandler::VERSION,\n                'columns' => array('label', 'log', 'backtrace', 'type'),\n                'rows' => array(\n                    array(\n                        'test',\n                        'test',\n                        'unknown',\n                        'log',\n                    ),\n                    array(\n                        'test',\n                        str_repeat('a', 150 * 1024),\n                        'unknown',\n                        'warn',\n                    ),\n                    array(\n                        'monolog',\n                        'Incomplete logs, chrome header size limit reached',\n                        'unknown',\n                        'warn',\n                    ),\n                ),\n                'request_uri' => '',\n            )))),\n        );\n\n        $this->assertEquals($expected, $handler->getHeaders());\n    }\n\n    public function testConcurrentHandlers()\n    {\n        $handler = new TestChromePHPHandler();\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING));\n\n        $handler2 = new TestChromePHPHandler();\n        $handler2->setFormatter($this->getIdentityFormatter());\n        $handler2->handle($this->getRecord(Logger::DEBUG));\n        $handler2->handle($this->getRecord(Logger::WARNING));\n\n        $expected = array(\n            'X-ChromeLogger-Data'   => base64_encode(utf8_encode(json_encode(array(\n                'version' => ChromePHPHandler::VERSION,\n                'columns' => array('label', 'log', 'backtrace', 'type'),\n                'rows' => array(\n                    'test',\n                    'test',\n                    'test',\n                    'test',\n                ),\n                'request_uri' => '',\n            )))),\n        );\n\n        $this->assertEquals($expected, $handler2->getHeaders());\n    }\n}\n\nclass TestChromePHPHandler extends ChromePHPHandler\n{\n    protected $headers = array();\n\n    public static function resetStatic()\n    {\n        self::$initialized = false;\n        self::$overflowed = false;\n        self::$sendHeaders = true;\n        self::$json['rows'] = array();\n    }\n\n    protected function sendHeader($header, $content)\n    {\n        $this->headers[$header] = $content;\n    }\n\n    public function getHeaders()\n    {\n        return $this->headers;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/CouchDBHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass CouchDBHandlerTest extends TestCase\n{\n    public function testHandle()\n    {\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $handler = new CouchDBHandler();\n\n        try {\n            $handler->handle($record);\n        } catch (\\RuntimeException $e) {\n            $this->markTestSkipped('Could not connect to couchdb server on http://localhost:5984');\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/DeduplicationHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass DeduplicationHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\DeduplicationHandler::flush\n     */\n    public function testFlushPassthruIfAllRecordsUnderTrigger()\n    {\n        $test = new TestHandler();\n        @unlink(sys_get_temp_dir().'/monolog_dedup.log');\n        $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0);\n\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n\n        $handler->flush();\n\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\DeduplicationHandler::flush\n     * @covers Monolog\\Handler\\DeduplicationHandler::appendRecord\n     */\n    public function testFlushPassthruIfEmptyLog()\n    {\n        $test = new TestHandler();\n        @unlink(sys_get_temp_dir().'/monolog_dedup.log');\n        $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0);\n\n        $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar'));\n        $handler->handle($this->getRecord(Logger::CRITICAL, \"Foo\\nbar\"));\n\n        $handler->flush();\n\n        $this->assertTrue($test->hasErrorRecords());\n        $this->assertTrue($test->hasCriticalRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\DeduplicationHandler::flush\n     * @covers Monolog\\Handler\\DeduplicationHandler::appendRecord\n     * @covers Monolog\\Handler\\DeduplicationHandler::isDuplicate\n     * @depends testFlushPassthruIfEmptyLog\n     */\n    public function testFlushSkipsIfLogExists()\n    {\n        $test = new TestHandler();\n        $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0);\n\n        $handler->handle($this->getRecord(Logger::ERROR, 'Foo:bar'));\n        $handler->handle($this->getRecord(Logger::CRITICAL, \"Foo\\nbar\"));\n\n        $handler->flush();\n\n        $this->assertFalse($test->hasErrorRecords());\n        $this->assertFalse($test->hasCriticalRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\DeduplicationHandler::flush\n     * @covers Monolog\\Handler\\DeduplicationHandler::appendRecord\n     * @covers Monolog\\Handler\\DeduplicationHandler::isDuplicate\n     * @depends testFlushPassthruIfEmptyLog\n     */\n    public function testFlushPassthruIfLogTooOld()\n    {\n        $test = new TestHandler();\n        $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0);\n\n        $record = $this->getRecord(Logger::ERROR);\n        $record['datetime']->modify('+62seconds');\n        $handler->handle($record);\n        $record = $this->getRecord(Logger::CRITICAL);\n        $record['datetime']->modify('+62seconds');\n        $handler->handle($record);\n\n        $handler->flush();\n\n        $this->assertTrue($test->hasErrorRecords());\n        $this->assertTrue($test->hasCriticalRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\DeduplicationHandler::flush\n     * @covers Monolog\\Handler\\DeduplicationHandler::appendRecord\n     * @covers Monolog\\Handler\\DeduplicationHandler::isDuplicate\n     * @covers Monolog\\Handler\\DeduplicationHandler::collectLogs\n     */\n    public function testGcOldLogs()\n    {\n        $test = new TestHandler();\n        @unlink(sys_get_temp_dir().'/monolog_dedup.log');\n        $handler = new DeduplicationHandler($test, sys_get_temp_dir().'/monolog_dedup.log', 0);\n\n        // handle two records from yesterday, and one recent\n        $record = $this->getRecord(Logger::ERROR);\n        $record['datetime']->modify('-1day -10seconds');\n        $handler->handle($record);\n        $record2 = $this->getRecord(Logger::CRITICAL);\n        $record2['datetime']->modify('-1day -10seconds');\n        $handler->handle($record2);\n        $record3 = $this->getRecord(Logger::CRITICAL);\n        $record3['datetime']->modify('-30seconds');\n        $handler->handle($record3);\n\n        // log is written as none of them are duplicate\n        $handler->flush();\n        $this->assertSame(\n            $record['datetime']->getTimestamp() . \":ERROR:test\\n\" .\n            $record2['datetime']->getTimestamp() . \":CRITICAL:test\\n\" .\n            $record3['datetime']->getTimestamp() . \":CRITICAL:test\\n\",\n            file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log')\n        );\n        $this->assertTrue($test->hasErrorRecords());\n        $this->assertTrue($test->hasCriticalRecords());\n        $this->assertFalse($test->hasWarningRecords());\n\n        // clear test handler\n        $test->clear();\n        $this->assertFalse($test->hasErrorRecords());\n        $this->assertFalse($test->hasCriticalRecords());\n\n        // log new records, duplicate log gets GC'd at the end of this flush call\n        $handler->handle($record = $this->getRecord(Logger::ERROR));\n        $handler->handle($record2 = $this->getRecord(Logger::CRITICAL));\n        $handler->flush();\n\n        // log should now contain the new errors and the previous one that was recent enough\n        $this->assertSame(\n            $record3['datetime']->getTimestamp() . \":CRITICAL:test\\n\" .\n            $record['datetime']->getTimestamp() . \":ERROR:test\\n\" .\n            $record2['datetime']->getTimestamp() . \":CRITICAL:test\\n\",\n            file_get_contents(sys_get_temp_dir() . '/monolog_dedup.log')\n        );\n        $this->assertTrue($test->hasErrorRecords());\n        $this->assertTrue($test->hasCriticalRecords());\n        $this->assertFalse($test->hasWarningRecords());\n    }\n\n    public static function tearDownAfterClass()\n    {\n        @unlink(sys_get_temp_dir().'/monolog_dedup.log');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/DoctrineCouchDBHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass DoctrineCouchDBHandlerTest extends TestCase\n{\n    protected function setup()\n    {\n        if (!class_exists('Doctrine\\CouchDB\\CouchDBClient')) {\n            $this->markTestSkipped('The \"doctrine/couchdb\" package is not installed');\n        }\n    }\n\n    public function testHandle()\n    {\n        $client = $this->getMockBuilder('Doctrine\\\\CouchDB\\\\CouchDBClient')\n            ->setMethods(array('postDocument'))\n            ->disableOriginalConstructor()\n            ->getMock();\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $expected = array(\n            'message' => 'test',\n            'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34),\n            'level' => Logger::WARNING,\n            'level_name' => 'WARNING',\n            'channel' => 'test',\n            'datetime' => $record['datetime']->format('Y-m-d H:i:s'),\n            'extra' => array(),\n        );\n\n        $client->expects($this->once())\n            ->method('postDocument')\n            ->with($expected);\n\n        $handler = new DoctrineCouchDBHandler($client);\n        $handler->handle($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/DynamoDbHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\n\nclass DynamoDbHandlerTest extends TestCase\n{\n    private $client;\n\n    public function setUp()\n    {\n        if (!class_exists('Aws\\DynamoDb\\DynamoDbClient')) {\n            $this->markTestSkipped('aws/aws-sdk-php not installed');\n        }\n\n        $this->client = $this->getMockBuilder('Aws\\DynamoDb\\DynamoDbClient')\n            ->setMethods(array('formatAttributes', '__call'))\n            ->disableOriginalConstructor()->getMock();\n    }\n\n    public function testConstruct()\n    {\n        $this->assertInstanceOf('Monolog\\Handler\\DynamoDbHandler', new DynamoDbHandler($this->client, 'foo'));\n    }\n\n    public function testInterface()\n    {\n        $this->assertInstanceOf('Monolog\\Handler\\HandlerInterface', new DynamoDbHandler($this->client, 'foo'));\n    }\n\n    public function testGetFormatter()\n    {\n        $handler = new DynamoDbHandler($this->client, 'foo');\n        $this->assertInstanceOf('Monolog\\Formatter\\ScalarFormatter', $handler->getFormatter());\n    }\n\n    public function testHandle()\n    {\n        $record = $this->getRecord();\n        $formatter = $this->getMock('Monolog\\Formatter\\FormatterInterface');\n        $formatted = array('foo' => 1, 'bar' => 2);\n        $handler = new DynamoDbHandler($this->client, 'foo');\n        $handler->setFormatter($formatter);\n\n        $isV3 = defined('Aws\\Sdk::VERSION') && version_compare(\\Aws\\Sdk::VERSION, '3.0', '>=');\n        if ($isV3) {\n            $expFormatted = array('foo' => array('N' => 1), 'bar' => array('N' => 2));\n        } else {\n            $expFormatted = $formatted;\n        }\n\n        $formatter\n             ->expects($this->once())\n             ->method('format')\n             ->with($record)\n             ->will($this->returnValue($formatted));\n        $this->client\n             ->expects($isV3 ? $this->never() : $this->once())\n             ->method('formatAttributes')\n             ->with($this->isType('array'))\n             ->will($this->returnValue($formatted));\n        $this->client\n             ->expects($this->once())\n             ->method('__call')\n             ->with('putItem', array(array(\n                 'TableName' => 'foo',\n                 'Item' => $expFormatted,\n             )));\n\n        $handler->handle($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/ElasticSearchHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\ElasticaFormatter;\nuse Monolog\\Formatter\\NormalizerFormatter;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Elastica\\Client;\nuse Elastica\\Request;\nuse Elastica\\Response;\n\nclass ElasticSearchHandlerTest extends TestCase\n{\n    /**\n     * @var Client mock\n     */\n    protected $client;\n\n    /**\n     * @var array Default handler options\n     */\n    protected $options = array(\n        'index' => 'my_index',\n        'type'  => 'doc_type',\n    );\n\n    public function setUp()\n    {\n        // Elastica lib required\n        if (!class_exists(\"Elastica\\Client\")) {\n            $this->markTestSkipped(\"ruflin/elastica not installed\");\n        }\n\n        // base mock Elastica Client object\n        $this->client = $this->getMockBuilder('Elastica\\Client')\n            ->setMethods(array('addDocuments'))\n            ->disableOriginalConstructor()\n            ->getMock();\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ElasticSearchHandler::write\n     * @covers Monolog\\Handler\\ElasticSearchHandler::handleBatch\n     * @covers Monolog\\Handler\\ElasticSearchHandler::bulkSend\n     * @covers Monolog\\Handler\\ElasticSearchHandler::getDefaultFormatter\n     */\n    public function testHandle()\n    {\n        // log message\n        $msg = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('foo' => 7, 'bar', 'class' => new \\stdClass),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        // format expected result\n        $formatter = new ElasticaFormatter($this->options['index'], $this->options['type']);\n        $expected = array($formatter->format($msg));\n\n        // setup ES client mock\n        $this->client->expects($this->any())\n            ->method('addDocuments')\n            ->with($expected);\n\n        // perform tests\n        $handler = new ElasticSearchHandler($this->client, $this->options);\n        $handler->handle($msg);\n        $handler->handleBatch(array($msg));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ElasticSearchHandler::setFormatter\n     */\n    public function testSetFormatter()\n    {\n        $handler = new ElasticSearchHandler($this->client);\n        $formatter = new ElasticaFormatter('index_new', 'type_new');\n        $handler->setFormatter($formatter);\n        $this->assertInstanceOf('Monolog\\Formatter\\ElasticaFormatter', $handler->getFormatter());\n        $this->assertEquals('index_new', $handler->getFormatter()->getIndex());\n        $this->assertEquals('type_new', $handler->getFormatter()->getType());\n    }\n\n    /**\n     * @covers                   Monolog\\Handler\\ElasticSearchHandler::setFormatter\n     * @expectedException        InvalidArgumentException\n     * @expectedExceptionMessage ElasticSearchHandler is only compatible with ElasticaFormatter\n     */\n    public function testSetFormatterInvalid()\n    {\n        $handler = new ElasticSearchHandler($this->client);\n        $formatter = new NormalizerFormatter();\n        $handler->setFormatter($formatter);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ElasticSearchHandler::__construct\n     * @covers Monolog\\Handler\\ElasticSearchHandler::getOptions\n     */\n    public function testOptions()\n    {\n        $expected = array(\n            'index' => $this->options['index'],\n            'type' => $this->options['type'],\n            'ignore_error' => false,\n        );\n        $handler = new ElasticSearchHandler($this->client, $this->options);\n        $this->assertEquals($expected, $handler->getOptions());\n    }\n\n    /**\n     * @covers       Monolog\\Handler\\ElasticSearchHandler::bulkSend\n     * @dataProvider providerTestConnectionErrors\n     */\n    public function testConnectionErrors($ignore, $expectedError)\n    {\n        $clientOpts = array('host' => '127.0.0.1', 'port' => 1);\n        $client = new Client($clientOpts);\n        $handlerOpts = array('ignore_error' => $ignore);\n        $handler = new ElasticSearchHandler($client, $handlerOpts);\n\n        if ($expectedError) {\n            $this->setExpectedException($expectedError[0], $expectedError[1]);\n            $handler->handle($this->getRecord());\n        } else {\n            $this->assertFalse($handler->handle($this->getRecord()));\n        }\n    }\n\n    /**\n     * @return array\n     */\n    public function providerTestConnectionErrors()\n    {\n        return array(\n            array(false, array('RuntimeException', 'Error sending messages to Elasticsearch')),\n            array(true, false),\n        );\n    }\n\n    /**\n     * Integration test using localhost Elastic Search server\n     *\n     * @covers Monolog\\Handler\\ElasticSearchHandler::__construct\n     * @covers Monolog\\Handler\\ElasticSearchHandler::handleBatch\n     * @covers Monolog\\Handler\\ElasticSearchHandler::bulkSend\n     * @covers Monolog\\Handler\\ElasticSearchHandler::getDefaultFormatter\n     */\n    public function testHandleIntegration()\n    {\n        $msg = array(\n            'level' => Logger::ERROR,\n            'level_name' => 'ERROR',\n            'channel' => 'meh',\n            'context' => array('foo' => 7, 'bar', 'class' => new \\stdClass),\n            'datetime' => new \\DateTime(\"@0\"),\n            'extra' => array(),\n            'message' => 'log',\n        );\n\n        $expected = $msg;\n        $expected['datetime'] = $msg['datetime']->format(\\DateTime::ISO8601);\n        $expected['context'] = array(\n            'class' => '[object] (stdClass: {})',\n            'foo' => 7,\n            0 => 'bar',\n        );\n\n        $client = new Client();\n        $handler = new ElasticSearchHandler($client, $this->options);\n        try {\n            $handler->handleBatch(array($msg));\n        } catch (\\RuntimeException $e) {\n            $this->markTestSkipped(\"Cannot connect to Elastic Search server on localhost\");\n        }\n\n        // check document id from ES server response\n        $documentId = $this->getCreatedDocId($client->getLastResponse());\n        $this->assertNotEmpty($documentId, 'No elastic document id received');\n\n        // retrieve document source from ES and validate\n        $document = $this->getDocSourceFromElastic(\n            $client,\n            $this->options['index'],\n            $this->options['type'],\n            $documentId\n        );\n        $this->assertEquals($expected, $document);\n\n        // remove test index from ES\n        $client->request(\"/{$this->options['index']}\", Request::DELETE);\n    }\n\n    /**\n     * Return last created document id from ES response\n     * @param  Response    $response Elastica Response object\n     * @return string|null\n     */\n    protected function getCreatedDocId(Response $response)\n    {\n        $data = $response->getData();\n        if (!empty($data['items'][0]['create']['_id'])) {\n            return $data['items'][0]['create']['_id'];\n        }\n    }\n\n    /**\n     * Retrieve document by id from Elasticsearch\n     * @param  Client $client     Elastica client\n     * @param  string $index\n     * @param  string $type\n     * @param  string $documentId\n     * @return array\n     */\n    protected function getDocSourceFromElastic(Client $client, $index, $type, $documentId)\n    {\n        $resp = $client->request(\"/{$index}/{$type}/{$documentId}\", Request::GET);\n        $data = $resp->getData();\n        if (!empty($data['_source'])) {\n            return $data['_source'];\n        }\n\n        return array();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/ErrorLogHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\n\nfunction error_log()\n{\n    $GLOBALS['error_log'][] = func_get_args();\n}\n\nclass ErrorLogHandlerTest extends TestCase\n{\n    protected function setUp()\n    {\n        $GLOBALS['error_log'] = array();\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ErrorLogHandler::__construct\n     * @expectedException InvalidArgumentException\n     * @expectedExceptionMessage The given message type \"42\" is not supported\n     */\n    public function testShouldNotAcceptAnInvalidTypeOnContructor()\n    {\n        new ErrorLogHandler(42);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ErrorLogHandler::write\n     */\n    public function testShouldLogMessagesUsingErrorLogFuncion()\n    {\n        $type = ErrorLogHandler::OPERATING_SYSTEM;\n        $handler = new ErrorLogHandler($type);\n        $handler->setFormatter(new LineFormatter('%channel%.%level_name%: %message% %context% %extra%', null, true));\n        $handler->handle($this->getRecord(Logger::ERROR, \"Foo\\nBar\\r\\n\\r\\nBaz\"));\n\n        $this->assertSame(\"test.ERROR: Foo\\nBar\\r\\n\\r\\nBaz [] []\", $GLOBALS['error_log'][0][0]);\n        $this->assertSame($GLOBALS['error_log'][0][1], $type);\n\n        $handler = new ErrorLogHandler($type, Logger::DEBUG, true, true);\n        $handler->setFormatter(new LineFormatter(null, null, true));\n        $handler->handle($this->getRecord(Logger::ERROR, \"Foo\\nBar\\r\\n\\r\\nBaz\"));\n\n        $this->assertStringMatchesFormat('[%s] test.ERROR: Foo', $GLOBALS['error_log'][1][0]);\n        $this->assertSame($GLOBALS['error_log'][1][1], $type);\n\n        $this->assertStringMatchesFormat('Bar', $GLOBALS['error_log'][2][0]);\n        $this->assertSame($GLOBALS['error_log'][2][1], $type);\n\n        $this->assertStringMatchesFormat('Baz [] []', $GLOBALS['error_log'][3][0]);\n        $this->assertSame($GLOBALS['error_log'][3][1], $type);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/FilterHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass FilterHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::isHandling\n     */\n    public function testIsHandling()\n    {\n        $test    = new TestHandler();\n        $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE);\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::INFO)));\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::NOTICE)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::WARNING)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::ERROR)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::CRITICAL)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::ALERT)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::EMERGENCY)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::handle\n     * @covers Monolog\\Handler\\FilterHandler::setAcceptedLevels\n     * @covers Monolog\\Handler\\FilterHandler::isHandling\n     */\n    public function testHandleProcessOnlyNeededLevels()\n    {\n        $test    = new TestHandler();\n        $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE);\n\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertTrue($test->hasInfoRecords());\n        $handler->handle($this->getRecord(Logger::NOTICE));\n        $this->assertTrue($test->hasNoticeRecords());\n\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertFalse($test->hasWarningRecords());\n        $handler->handle($this->getRecord(Logger::ERROR));\n        $this->assertFalse($test->hasErrorRecords());\n        $handler->handle($this->getRecord(Logger::CRITICAL));\n        $this->assertFalse($test->hasCriticalRecords());\n        $handler->handle($this->getRecord(Logger::ALERT));\n        $this->assertFalse($test->hasAlertRecords());\n        $handler->handle($this->getRecord(Logger::EMERGENCY));\n        $this->assertFalse($test->hasEmergencyRecords());\n\n        $test    = new TestHandler();\n        $handler = new FilterHandler($test, array(Logger::INFO, Logger::ERROR));\n\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertTrue($test->hasInfoRecords());\n        $handler->handle($this->getRecord(Logger::NOTICE));\n        $this->assertFalse($test->hasNoticeRecords());\n        $handler->handle($this->getRecord(Logger::ERROR));\n        $this->assertTrue($test->hasErrorRecords());\n        $handler->handle($this->getRecord(Logger::CRITICAL));\n        $this->assertFalse($test->hasCriticalRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::setAcceptedLevels\n     * @covers Monolog\\Handler\\FilterHandler::getAcceptedLevels\n     */\n    public function testAcceptedLevelApi()\n    {\n        $test    = new TestHandler();\n        $handler = new FilterHandler($test);\n\n        $levels = array(Logger::INFO, Logger::ERROR);\n        $handler->setAcceptedLevels($levels);\n        $this->assertSame($levels, $handler->getAcceptedLevels());\n\n        $handler->setAcceptedLevels(array('info', 'error'));\n        $this->assertSame($levels, $handler->getAcceptedLevels());\n\n        $levels = array(Logger::CRITICAL, Logger::ALERT, Logger::EMERGENCY);\n        $handler->setAcceptedLevels(Logger::CRITICAL, Logger::EMERGENCY);\n        $this->assertSame($levels, $handler->getAcceptedLevels());\n\n        $handler->setAcceptedLevels('critical', 'emergency');\n        $this->assertSame($levels, $handler->getAcceptedLevels());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::handle\n     */\n    public function testHandleUsesProcessors()\n    {\n        $test    = new TestHandler();\n        $handler = new FilterHandler($test, Logger::DEBUG, Logger::EMERGENCY);\n        $handler->pushProcessor(\n            function ($record) {\n                $record['extra']['foo'] = true;\n\n                return $record;\n            }\n        );\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::handle\n     */\n    public function testHandleRespectsBubble()\n    {\n        $test = new TestHandler();\n\n        $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, false);\n        $this->assertTrue($handler->handle($this->getRecord(Logger::INFO)));\n        $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING)));\n\n        $handler = new FilterHandler($test, Logger::INFO, Logger::NOTICE, true);\n        $this->assertFalse($handler->handle($this->getRecord(Logger::INFO)));\n        $this->assertFalse($handler->handle($this->getRecord(Logger::WARNING)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::handle\n     */\n    public function testHandleWithCallback()\n    {\n        $test    = new TestHandler();\n        $handler = new FilterHandler(\n            function ($record, $handler) use ($test) {\n                return $test;\n            }, Logger::INFO, Logger::NOTICE, false\n        );\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertTrue($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FilterHandler::handle\n     * @expectedException \\RuntimeException\n     */\n    public function testHandleWithBadCallbackThrowsException()\n    {\n        $handler = new FilterHandler(\n            function ($record, $handler) {\n                return 'foo';\n            }\n        );\n        $handler->handle($this->getRecord(Logger::WARNING));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/FingersCrossedHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy;\nuse Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy;\nuse Psr\\Log\\LogLevel;\n\nclass FingersCrossedHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::__construct\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleBuffers()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertFalse($test->hasInfoRecords());\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->close();\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertTrue(count($test->getRecords()) === 3);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleStopsBufferingAfterTrigger()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test);\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->close();\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasDebugRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     * @covers Monolog\\Handler\\FingersCrossedHandler::reset\n     */\n    public function testHandleResetBufferingAfterReset()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test);\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->reset();\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->close();\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertFalse($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleResetBufferingAfterBeingTriggeredWhenStopBufferingIsDisabled()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, Logger::WARNING, 0, false, false);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->close();\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertFalse($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleBufferLimit()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, Logger::WARNING, 2);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertFalse($test->hasDebugRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleWithCallback()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler(function ($record, $handler) use ($test) {\n                    return $test;\n                });\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertFalse($test->hasInfoRecords());\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasInfoRecords());\n        $this->assertTrue(count($test->getRecords()) === 3);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     * @expectedException RuntimeException\n     */\n    public function testHandleWithBadCallbackThrowsException()\n    {\n        $handler = new FingersCrossedHandler(function ($record, $handler) {\n                    return 'foo';\n                });\n        $handler->handle($this->getRecord(Logger::WARNING));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::isHandling\n     */\n    public function testIsHandlingAlways()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, Logger::ERROR);\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy::isHandlerActivated\n     */\n    public function testErrorLevelActivationStrategy()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertTrue($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ErrorLevelActivationStrategy::isHandlerActivated\n     */\n    public function testErrorLevelActivationStrategyWithPsrLevel()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning'));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertTrue($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::__construct\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testOverrideActivationStrategy()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy('warning'));\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $this->assertFalse($test->hasDebugRecords());\n        $handler->activate();\n        $this->assertTrue($test->hasDebugRecords());\n        $handler->handle($this->getRecord(Logger::INFO));\n        $this->assertTrue($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy::isHandlerActivated\n     */\n    public function testChannelLevelActivationStrategy()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy(Logger::ERROR, array('othertest' => Logger::DEBUG)));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertFalse($test->hasWarningRecords());\n        $record = $this->getRecord(Logger::DEBUG);\n        $record['channel'] = 'othertest';\n        $handler->handle($record);\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertTrue($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy::__construct\n     * @covers Monolog\\Handler\\FingersCrossed\\ChannelLevelActivationStrategy::isHandlerActivated\n     */\n    public function testChannelLevelActivationStrategyWithPsrLevels()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ChannelLevelActivationStrategy('error', array('othertest' => 'debug')));\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertFalse($test->hasWarningRecords());\n        $record = $this->getRecord(Logger::DEBUG);\n        $record['channel'] = 'othertest';\n        $handler->handle($record);\n        $this->assertTrue($test->hasDebugRecords());\n        $this->assertTrue($test->hasWarningRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::handle\n     * @covers Monolog\\Handler\\FingersCrossedHandler::activate\n     */\n    public function testHandleUsesProcessors()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, Logger::INFO);\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::close\n     */\n    public function testPassthruOnClose()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, Logger::INFO);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->close();\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertTrue($test->hasInfoRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\FingersCrossedHandler::close\n     */\n    public function testPsrLevelPassthruOnClose()\n    {\n        $test = new TestHandler();\n        $handler = new FingersCrossedHandler($test, new ErrorLevelActivationStrategy(Logger::WARNING), 0, true, true, LogLevel::INFO);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        $handler->close();\n        $this->assertFalse($test->hasDebugRecords());\n        $this->assertTrue($test->hasInfoRecords());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/FirePHPHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\FirePHPHandler\n */\nclass FirePHPHandlerTest extends TestCase\n{\n    public function setUp()\n    {\n        TestFirePHPHandler::resetStatic();\n        $_SERVER['HTTP_USER_AGENT'] = 'Monolog Test; FirePHP/1.0';\n    }\n\n    public function testHeaders()\n    {\n        $handler = new TestFirePHPHandler;\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING));\n\n        $expected = array(\n            'X-Wf-Protocol-1'    => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2',\n            'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1',\n            'X-Wf-1-Plugin-1'    => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3',\n            'X-Wf-1-1-1-1'       => 'test',\n            'X-Wf-1-1-1-2'       => 'test',\n        );\n\n        $this->assertEquals($expected, $handler->getHeaders());\n    }\n\n    public function testConcurrentHandlers()\n    {\n        $handler = new TestFirePHPHandler;\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::WARNING));\n\n        $handler2 = new TestFirePHPHandler;\n        $handler2->setFormatter($this->getIdentityFormatter());\n        $handler2->handle($this->getRecord(Logger::DEBUG));\n        $handler2->handle($this->getRecord(Logger::WARNING));\n\n        $expected = array(\n            'X-Wf-Protocol-1'    => 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2',\n            'X-Wf-1-Structure-1' => 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1',\n            'X-Wf-1-Plugin-1'    => 'http://meta.firephp.org/Wildfire/Plugin/FirePHP/Library-FirePHPCore/0.3',\n            'X-Wf-1-1-1-1'       => 'test',\n            'X-Wf-1-1-1-2'       => 'test',\n        );\n\n        $expected2 = array(\n            'X-Wf-1-1-1-3'       => 'test',\n            'X-Wf-1-1-1-4'       => 'test',\n        );\n\n        $this->assertEquals($expected, $handler->getHeaders());\n        $this->assertEquals($expected2, $handler2->getHeaders());\n    }\n}\n\nclass TestFirePHPHandler extends FirePHPHandler\n{\n    protected $headers = array();\n\n    public static function resetStatic()\n    {\n        self::$initialized = false;\n        self::$sendHeaders = true;\n        self::$messageIndex = 1;\n    }\n\n    protected function sendHeader($header, $content)\n    {\n        $this->headers[$header] = $content;\n    }\n\n    public function getHeaders()\n    {\n        return $this->headers;\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/Fixtures/.gitkeep",
    "content": ""
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/FleepHookHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\n/**\n * @coversDefaultClass \\Monolog\\Handler\\FleepHookHandler\n */\nclass FleepHookHandlerTest extends TestCase\n{\n    /**\n     * Default token to use in tests\n     */\n    const TOKEN = '123abc';\n\n    /**\n     * @var FleepHookHandler\n     */\n    private $handler;\n\n    public function setUp()\n    {\n        parent::setUp();\n\n        if (!extension_loaded('openssl')) {\n            $this->markTestSkipped('This test requires openssl extension to run');\n        }\n\n        // Create instances of the handler and logger for convenience\n        $this->handler = new FleepHookHandler(self::TOKEN);\n    }\n\n    /**\n     * @covers ::__construct\n     */\n    public function testConstructorSetsExpectedDefaults()\n    {\n        $this->assertEquals(Logger::DEBUG, $this->handler->getLevel());\n        $this->assertEquals(true, $this->handler->getBubble());\n    }\n\n    /**\n     * @covers ::getDefaultFormatter\n     */\n    public function testHandlerUsesLineFormatterWhichIgnoresEmptyArrays()\n    {\n        $record = array(\n            'message' => 'msg',\n            'context' => array(),\n            'level' => Logger::DEBUG,\n            'level_name' => Logger::getLevelName(Logger::DEBUG),\n            'channel' => 'channel',\n            'datetime' => new \\DateTime(),\n            'extra' => array(),\n        );\n\n        $expectedFormatter = new LineFormatter(null, null, true, true);\n        $expected = $expectedFormatter->format($record);\n\n        $handlerFormatter = $this->handler->getFormatter();\n        $actual = $handlerFormatter->format($record);\n\n        $this->assertEquals($expected, $actual, 'Empty context and extra arrays should not be rendered');\n    }\n\n    /**\n     * @covers ::__construct\n     */\n    public function testConnectionStringisConstructedCorrectly()\n    {\n        $this->assertEquals('ssl://' . FleepHookHandler::FLEEP_HOST . ':443', $this->handler->getConnectionString());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/FlowdockHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\FlowdockFormatter;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @author Dominik Liebler <liebler.dominik@gmail.com>\n * @see    https://www.hipchat.com/docs/api\n */\nclass FlowdockHandlerTest extends TestCase\n{\n    /**\n     * @var resource\n     */\n    private $res;\n\n    /**\n     * @var FlowdockHandler\n     */\n    private $handler;\n\n    public function setUp()\n    {\n        if (!extension_loaded('openssl')) {\n            $this->markTestSkipped('This test requires openssl to run');\n        }\n    }\n\n    public function testWriteHeader()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v1\\/messages\\/team_inbox\\/.* HTTP\\/1.1\\\\r\\\\nHost: api.flowdock.com\\\\r\\\\nContent-Type: application\\/json\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    /**\n     * @depends testWriteHeader\n     */\n    public function testWriteContent($content)\n    {\n        $this->assertRegexp('/\"source\":\"test_source\"/', $content);\n        $this->assertRegexp('/\"from_address\":\"source@test\\.com\"/', $content);\n    }\n\n    private function createHandler($token = 'myToken')\n    {\n        $constructorArgs = array($token, Logger::DEBUG);\n        $this->res = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\FlowdockHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $constructorArgs\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->res));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n\n        $this->handler->setFormatter(new FlowdockFormatter('test_source', 'source@test.com'));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerLegacyTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Gelf\\Message;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\GelfMessageFormatter;\n\nclass GelfHandlerLegacyTest extends TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists('Gelf\\MessagePublisher') || !class_exists('Gelf\\Message')) {\n            $this->markTestSkipped(\"mlehner/gelf-php not installed\");\n        }\n\n        require_once __DIR__ . '/GelfMockMessagePublisher.php';\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GelfHandler::__construct\n     */\n    public function testConstruct()\n    {\n        $handler = new GelfHandler($this->getMessagePublisher());\n        $this->assertInstanceOf('Monolog\\Handler\\GelfHandler', $handler);\n    }\n\n    protected function getHandler($messagePublisher)\n    {\n        $handler = new GelfHandler($messagePublisher);\n\n        return $handler;\n    }\n\n    protected function getMessagePublisher()\n    {\n        return new GelfMockMessagePublisher('localhost');\n    }\n\n    public function testDebug()\n    {\n        $messagePublisher = $this->getMessagePublisher();\n        $handler = $this->getHandler($messagePublisher);\n\n        $record = $this->getRecord(Logger::DEBUG, \"A test debug message\");\n        $handler->handle($record);\n\n        $this->assertEquals(7, $messagePublisher->lastMessage->getLevel());\n        $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());\n        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());\n        $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());\n    }\n\n    public function testWarning()\n    {\n        $messagePublisher = $this->getMessagePublisher();\n        $handler = $this->getHandler($messagePublisher);\n\n        $record = $this->getRecord(Logger::WARNING, \"A test warning message\");\n        $handler->handle($record);\n\n        $this->assertEquals(4, $messagePublisher->lastMessage->getLevel());\n        $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());\n        $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());\n        $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());\n    }\n\n    public function testInjectedGelfMessageFormatter()\n    {\n        $messagePublisher = $this->getMessagePublisher();\n        $handler = $this->getHandler($messagePublisher);\n\n        $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX'));\n\n        $record = $this->getRecord(Logger::WARNING, \"A test warning message\");\n        $record['extra']['blarg'] = 'yep';\n        $record['context']['from'] = 'logger';\n        $handler->handle($record);\n\n        $this->assertEquals('mysystem', $messagePublisher->lastMessage->getHost());\n        $this->assertArrayHasKey('_EXTblarg', $messagePublisher->lastMessage->toArray());\n        $this->assertArrayHasKey('_CTXfrom', $messagePublisher->lastMessage->toArray());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/GelfHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Gelf\\Message;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\GelfMessageFormatter;\n\nclass GelfHandlerTest extends TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists('Gelf\\Publisher') || !class_exists('Gelf\\Message')) {\n            $this->markTestSkipped(\"graylog2/gelf-php not installed\");\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GelfHandler::__construct\n     */\n    public function testConstruct()\n    {\n        $handler = new GelfHandler($this->getMessagePublisher());\n        $this->assertInstanceOf('Monolog\\Handler\\GelfHandler', $handler);\n    }\n\n    protected function getHandler($messagePublisher)\n    {\n        $handler = new GelfHandler($messagePublisher);\n\n        return $handler;\n    }\n\n    protected function getMessagePublisher()\n    {\n        return $this->getMock('Gelf\\Publisher', array('publish'), array(), '', false);\n    }\n\n    public function testDebug()\n    {\n        $record = $this->getRecord(Logger::DEBUG, \"A test debug message\");\n        $expectedMessage = new Message();\n        $expectedMessage\n            ->setLevel(7)\n            ->setFacility(\"test\")\n            ->setShortMessage($record['message'])\n            ->setTimestamp($record['datetime'])\n        ;\n\n        $messagePublisher = $this->getMessagePublisher();\n        $messagePublisher->expects($this->once())\n            ->method('publish')\n            ->with($expectedMessage);\n\n        $handler = $this->getHandler($messagePublisher);\n\n        $handler->handle($record);\n    }\n\n    public function testWarning()\n    {\n        $record = $this->getRecord(Logger::WARNING, \"A test warning message\");\n        $expectedMessage = new Message();\n        $expectedMessage\n            ->setLevel(4)\n            ->setFacility(\"test\")\n            ->setShortMessage($record['message'])\n            ->setTimestamp($record['datetime'])\n        ;\n\n        $messagePublisher = $this->getMessagePublisher();\n        $messagePublisher->expects($this->once())\n            ->method('publish')\n            ->with($expectedMessage);\n\n        $handler = $this->getHandler($messagePublisher);\n\n        $handler->handle($record);\n    }\n\n    public function testInjectedGelfMessageFormatter()\n    {\n        $record = $this->getRecord(Logger::WARNING, \"A test warning message\");\n        $record['extra']['blarg'] = 'yep';\n        $record['context']['from'] = 'logger';\n\n        $expectedMessage = new Message();\n        $expectedMessage\n            ->setLevel(4)\n            ->setFacility(\"test\")\n            ->setHost(\"mysystem\")\n            ->setShortMessage($record['message'])\n            ->setTimestamp($record['datetime'])\n            ->setAdditional(\"EXTblarg\", 'yep')\n            ->setAdditional(\"CTXfrom\", 'logger')\n        ;\n\n        $messagePublisher = $this->getMessagePublisher();\n        $messagePublisher->expects($this->once())\n            ->method('publish')\n            ->with($expectedMessage);\n\n        $handler = $this->getHandler($messagePublisher);\n        $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX'));\n        $handler->handle($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/GelfMockMessagePublisher.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Gelf\\MessagePublisher;\nuse Gelf\\Message;\n\nclass GelfMockMessagePublisher extends MessagePublisher\n{\n    public function publish(Message $message)\n    {\n        $this->lastMessage = $message;\n    }\n\n    public $lastMessage = null;\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/GroupHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass GroupHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::__construct\n     * @expectedException InvalidArgumentException\n     */\n    public function testConstructorOnlyTakesHandler()\n    {\n        new GroupHandler(array(new TestHandler(), \"foo\"));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::__construct\n     * @covers Monolog\\Handler\\GroupHandler::handle\n     */\n    public function testHandle()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new GroupHandler($testHandlers);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::handleBatch\n     */\n    public function testHandleBatch()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new GroupHandler($testHandlers);\n        $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::isHandling\n     */\n    public function testIsHandling()\n    {\n        $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING));\n        $handler = new GroupHandler($testHandlers);\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR)));\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::handle\n     */\n    public function testHandleUsesProcessors()\n    {\n        $test = new TestHandler();\n        $handler = new GroupHandler(array($test));\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\GroupHandler::handle\n     */\n    public function testHandleBatchUsesProcessors()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new GroupHandler($testHandlers);\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n            $records = $test->getRecords();\n            $this->assertTrue($records[0]['extra']['foo']);\n            $this->assertTrue($records[1]['extra']['foo']);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/HandlerWrapperTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\n\n/**\n * @author Alexey Karapetov <alexey@karapetov.com>\n */\nclass HandlerWrapperTest extends TestCase\n{\n    /**\n     * @var HandlerWrapper\n     */\n    private $wrapper;\n\n    private $handler;\n\n    public function setUp()\n    {\n        parent::setUp();\n        $this->handler = $this->getMock('Monolog\\\\Handler\\\\HandlerInterface');\n        $this->wrapper = new HandlerWrapper($this->handler);\n    }\n\n    /**\n     * @return array\n     */\n    public function trueFalseDataProvider()\n    {\n        return array(\n            array(true),\n            array(false),\n        );\n    }\n\n    /**\n     * @param $result\n     * @dataProvider trueFalseDataProvider\n     */\n    public function testIsHandling($result)\n    {\n        $record = $this->getRecord();\n        $this->handler->expects($this->once())\n            ->method('isHandling')\n            ->with($record)\n            ->willReturn($result);\n\n        $this->assertEquals($result, $this->wrapper->isHandling($record));\n    }\n\n    /**\n     * @param $result\n     * @dataProvider trueFalseDataProvider\n     */\n    public function testHandle($result)\n    {\n        $record = $this->getRecord();\n        $this->handler->expects($this->once())\n            ->method('handle')\n            ->with($record)\n            ->willReturn($result);\n\n        $this->assertEquals($result, $this->wrapper->handle($record));\n    }\n\n    /**\n     * @param $result\n     * @dataProvider trueFalseDataProvider\n     */\n    public function testHandleBatch($result)\n    {\n        $records = $this->getMultipleRecords();\n        $this->handler->expects($this->once())\n            ->method('handleBatch')\n            ->with($records)\n            ->willReturn($result);\n\n        $this->assertEquals($result, $this->wrapper->handleBatch($records));\n    }\n\n    public function testPushProcessor()\n    {\n        $processor = function () {};\n        $this->handler->expects($this->once())\n            ->method('pushProcessor')\n            ->with($processor);\n\n        $this->assertEquals($this->wrapper, $this->wrapper->pushProcessor($processor));\n    }\n\n    public function testPopProcessor()\n    {\n        $processor = function () {};\n        $this->handler->expects($this->once())\n            ->method('popProcessor')\n            ->willReturn($processor);\n\n        $this->assertEquals($processor, $this->wrapper->popProcessor());\n    }\n\n    public function testSetFormatter()\n    {\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $this->handler->expects($this->once())\n            ->method('setFormatter')\n            ->with($formatter);\n\n        $this->assertEquals($this->wrapper, $this->wrapper->setFormatter($formatter));\n    }\n\n    public function testGetFormatter()\n    {\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $this->handler->expects($this->once())\n            ->method('getFormatter')\n            ->willReturn($formatter);\n\n        $this->assertEquals($formatter, $this->wrapper->getFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/HipChatHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @author Rafael Dohms <rafael@doh.ms>\n * @see    https://www.hipchat.com/docs/api\n */\nclass HipChatHandlerTest extends TestCase\n{\n    private $res;\n    /** @var  HipChatHandler */\n    private $handler;\n\n    public function testWriteHeader()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v1\\/rooms\\/message\\?format=json&auth_token=.* HTTP\\/1.1\\\\r\\\\nHost: api.hipchat.com\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    public function testWriteCustomHostHeader()\n    {\n        $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v1\\/rooms\\/message\\?format=json&auth_token=.* HTTP\\/1.1\\\\r\\\\nHost: hipchat.foo.bar\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    public function testWriteV2()\n    {\n        $this->createHandler('myToken', 'room1', 'Monolog', false, 'hipchat.foo.bar', 'v2');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v2\\/room\\/room1\\/notification\\?auth_token=.* HTTP\\/1.1\\\\r\\\\nHost: hipchat.foo.bar\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    public function testWriteV2Notify()\n    {\n        $this->createHandler('myToken', 'room1', 'Monolog', true, 'hipchat.foo.bar', 'v2');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v2\\/room\\/room1\\/notification\\?auth_token=.* HTTP\\/1.1\\\\r\\\\nHost: hipchat.foo.bar\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    public function testRoomSpaces()\n    {\n        $this->createHandler('myToken', 'room name', 'Monolog', false, 'hipchat.foo.bar', 'v2');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/v2\\/room\\/room%20name\\/notification\\?auth_token=.* HTTP\\/1.1\\\\r\\\\nHost: hipchat.foo.bar\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    /**\n     * @depends testWriteHeader\n     */\n    public function testWriteContent($content)\n    {\n        $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content);\n    }\n\n    public function testWriteContentV1WithoutName()\n    {\n        $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v1');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/notify=0&message=test1&message_format=text&color=red&room_id=room1&from=$/', $content);\n\n        return $content;\n    }\n\n    /**\n     * @depends testWriteCustomHostHeader\n     */\n    public function testWriteContentNotify($content)\n    {\n        $this->assertRegexp('/notify=1&message=test1&message_format=text&color=red&room_id=room1&from=Monolog$/', $content);\n    }\n\n    /**\n     * @depends testWriteV2\n     */\n    public function testWriteContentV2($content)\n    {\n        $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red&from=Monolog$/', $content);\n    }\n\n    /**\n     * @depends testWriteV2Notify\n     */\n    public function testWriteContentV2Notify($content)\n    {\n        $this->assertRegexp('/notify=true&message=test1&message_format=text&color=red&from=Monolog$/', $content);\n    }\n\n    public function testWriteContentV2WithoutName()\n    {\n        $this->createHandler('myToken', 'room1', null, false, 'hipchat.foo.bar', 'v2');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/notify=false&message=test1&message_format=text&color=red$/', $content);\n\n        return $content;\n    }\n\n    public function testWriteWithComplexMessage()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database \"example\" finished in 16 minutes.'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/message=Backup\\+of\\+database\\+%22example%22\\+finished\\+in\\+16\\+minutes\\./', $content);\n    }\n\n    public function testWriteTruncatesLongMessage()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, str_repeat('abcde', 2000)));\n        fseek($this->res, 0);\n        $content = fread($this->res, 12000);\n\n        $this->assertRegexp('/message='.str_repeat('abcde', 1900).'\\+%5Btruncated%5D/', $content);\n    }\n\n    /**\n     * @dataProvider provideLevelColors\n     */\n    public function testWriteWithErrorLevelsAndColors($level, $expectedColor)\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord($level, 'Backup of database \"example\" finished in 16 minutes.'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/color='.$expectedColor.'/', $content);\n    }\n\n    public function provideLevelColors()\n    {\n        return array(\n            array(Logger::DEBUG,    'gray'),\n            array(Logger::INFO,     'green'),\n            array(Logger::WARNING,  'yellow'),\n            array(Logger::ERROR,    'red'),\n            array(Logger::CRITICAL, 'red'),\n            array(Logger::ALERT,    'red'),\n            array(Logger::EMERGENCY,'red'),\n            array(Logger::NOTICE,   'green'),\n        );\n    }\n\n    /**\n     * @dataProvider provideBatchRecords\n     */\n    public function testHandleBatch($records, $expectedColor)\n    {\n        $this->createHandler();\n\n        $this->handler->handleBatch($records);\n\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/color='.$expectedColor.'/', $content);\n    }\n\n    public function provideBatchRecords()\n    {\n        return array(\n            array(\n                array(\n                    array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \\DateTime()),\n                    array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \\DateTime()),\n                    array('level' => Logger::CRITICAL, 'message' => 'Everything is broken!', 'level_name' => 'critical', 'datetime' => new \\DateTime()),\n                ),\n                'red',\n            ),\n            array(\n                array(\n                    array('level' => Logger::WARNING, 'message' => 'Oh bugger!', 'level_name' => 'warning', 'datetime' => new \\DateTime()),\n                    array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \\DateTime()),\n                ),\n                'yellow',\n            ),\n            array(\n                array(\n                    array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \\DateTime()),\n                    array('level' => Logger::NOTICE, 'message' => 'Something noticeable happened.', 'level_name' => 'notice', 'datetime' => new \\DateTime()),\n                ),\n                'green',\n            ),\n            array(\n                array(\n                    array('level' => Logger::DEBUG, 'message' => 'Just debugging.', 'level_name' => 'debug', 'datetime' => new \\DateTime()),\n                ),\n                'gray',\n            ),\n        );\n    }\n\n    private function createHandler($token = 'myToken', $room = 'room1', $name = 'Monolog', $notify = false, $host = 'api.hipchat.com', $version = 'v1')\n    {\n        $constructorArgs = array($token, $room, $name, $notify, Logger::DEBUG, true, true, 'text', $host, $version);\n        $this->res = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\HipChatHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $constructorArgs\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->res));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n\n        $this->handler->setFormatter($this->getIdentityFormatter());\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testCreateWithTooLongName()\n    {\n        $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere');\n    }\n\n    public function testCreateWithTooLongNameV2()\n    {\n        // creating a handler with too long of a name but using the v2 api doesn't matter.\n        $hipChatHandler = new HipChatHandler('token', 'room', 'SixteenCharsHere', false, Logger::CRITICAL, true, true, 'test', 'api.hipchat.com', 'v2');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/InsightOpsHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n namespace Monolog\\Handler;\n \n use Monolog\\TestCase;\n use Monolog\\Logger;\n\n/**\n * @author Robert Kaufmann III <rok3@rok3.me>\n * @author Gabriel Machado <gabriel.ms1@hotmail.com>\n */\nclass InsightOpsHandlerTest extends TestCase\n{\n    /**\n     * @var resource\n     */\n    private $resource;\n\n    /**\n     * @var LogEntriesHandler\n     */\n    private $handler;\n\n    public function testWriteContent()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test'));\n\n        fseek($this->resource, 0);\n        $content = fread($this->resource, 1024);\n\n        $this->assertRegexp('/testToken \\[\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\] test.CRITICAL: Critical write test/', $content);\n    }\n\n    public function testWriteBatchContent()\n    {\n        $this->createHandler();\n        $this->handler->handleBatch($this->getMultipleRecords());\n\n        fseek($this->resource, 0);\n        $content = fread($this->resource, 1024);\n\n        $this->assertRegexp('/(testToken \\[\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\] .* \\[\\] \\[\\]\\n){3}/', $content);\n    }\n\n    private function createHandler()\n    {\n        $useSSL = extension_loaded('openssl');\n        $args = array('testToken', 'us', $useSSL, Logger::DEBUG, true);\n        $this->resource = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\InsightOpsHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $args\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->resource));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/LogEntriesHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @author Robert Kaufmann III <rok3@rok3.me>\n */\nclass LogEntriesHandlerTest extends TestCase\n{\n    /**\n     * @var resource\n     */\n    private $res;\n\n    /**\n     * @var LogEntriesHandler\n     */\n    private $handler;\n\n    public function testWriteContent()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Critical write test'));\n\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/testToken \\[\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\] test.CRITICAL: Critical write test/', $content);\n    }\n\n    public function testWriteBatchContent()\n    {\n        $records = array(\n            $this->getRecord(),\n            $this->getRecord(),\n            $this->getRecord(),\n        );\n        $this->createHandler();\n        $this->handler->handleBatch($records);\n\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/(testToken \\[\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\] .* \\[\\] \\[\\]\\n){3}/', $content);\n    }\n\n    private function createHandler()\n    {\n        $useSSL = extension_loaded('openssl');\n        $args = array('testToken', $useSSL, Logger::DEBUG, true);\n        $this->res = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\LogEntriesHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $args\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->res));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/MailHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass MailHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\MailHandler::handleBatch\n     */\n    public function testHandleBatch()\n    {\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter->expects($this->once())\n            ->method('formatBatch'); // Each record is formatted\n\n        $handler = $this->getMockForAbstractClass('Monolog\\\\Handler\\\\MailHandler');\n        $handler->expects($this->once())\n            ->method('send');\n        $handler->expects($this->never())\n            ->method('write'); // write is for individual records\n\n        $handler->setFormatter($formatter);\n\n        $handler->handleBatch($this->getMultipleRecords());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\MailHandler::handleBatch\n     */\n    public function testHandleBatchNotSendsMailIfMessagesAreBelowLevel()\n    {\n        $records = array(\n            $this->getRecord(Logger::DEBUG, 'debug message 1'),\n            $this->getRecord(Logger::DEBUG, 'debug message 2'),\n            $this->getRecord(Logger::INFO, 'information'),\n        );\n\n        $handler = $this->getMockForAbstractClass('Monolog\\\\Handler\\\\MailHandler');\n        $handler->expects($this->never())\n            ->method('send');\n        $handler->setLevel(Logger::ERROR);\n\n        $handler->handleBatch($records);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\MailHandler::write\n     */\n    public function testHandle()\n    {\n        $handler = $this->getMockForAbstractClass('Monolog\\\\Handler\\\\MailHandler');\n\n        $record = $this->getRecord();\n        $records = array($record);\n        $records[0]['formatted'] = '['.$record['datetime']->format('Y-m-d H:i:s').'] test.WARNING: test [] []'.\"\\n\";\n\n        $handler->expects($this->once())\n            ->method('send')\n            ->with($records[0]['formatted'], $records);\n\n        $handler->handle($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/MockRavenClient.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Raven_Client;\n\nclass MockRavenClient extends Raven_Client\n{\n    public function capture($data, $stack, $vars = null)\n    {\n        $data = array_merge($this->get_user_data(), $data);\n        $this->lastData = $data;\n        $this->lastStack = $stack;\n    }\n\n    public $lastData;\n    public $lastStack;\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/MongoDBHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass MongoDBHandlerTest extends TestCase\n{\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testConstructorShouldThrowExceptionForInvalidMongo()\n    {\n        new MongoDBHandler(new \\stdClass(), 'DB', 'Collection');\n    }\n\n    public function testHandle()\n    {\n        $mongo = $this->getMock('Mongo', array('selectCollection'), array(), '', false);\n        $collection = $this->getMock('stdClass', array('save'));\n\n        $mongo->expects($this->once())\n            ->method('selectCollection')\n            ->with('DB', 'Collection')\n            ->will($this->returnValue($collection));\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $expected = array(\n            'message' => 'test',\n            'context' => array('data' => '[object] (stdClass: {})', 'foo' => 34),\n            'level' => Logger::WARNING,\n            'level_name' => 'WARNING',\n            'channel' => 'test',\n            'datetime' => $record['datetime']->format('Y-m-d H:i:s'),\n            'extra' => array(),\n        );\n\n        $collection->expects($this->once())\n            ->method('save')\n            ->with($expected);\n\n        $handler = new MongoDBHandler($mongo, 'DB', 'Collection');\n        $handler->handle($record);\n    }\n}\n\nif (!class_exists('Mongo')) {\n    class Mongo\n    {\n        public function selectCollection()\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/NativeMailerHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse InvalidArgumentException;\n\nfunction mail($to, $subject, $message, $additional_headers = null, $additional_parameters = null)\n{\n    $GLOBALS['mail'][] = func_get_args();\n}\n\nclass NativeMailerHandlerTest extends TestCase\n{\n    protected function setUp()\n    {\n        $GLOBALS['mail'] = array();\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testConstructorHeaderInjection()\n    {\n        $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', \"receiver@example.org\\r\\nFrom: faked@attacker.org\");\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testSetterHeaderInjection()\n    {\n        $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org');\n        $mailer->addHeader(\"Content-Type: text/html\\r\\nFrom: faked@attacker.org\");\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testSetterArrayHeaderInjection()\n    {\n        $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org');\n        $mailer->addHeader(array(\"Content-Type: text/html\\r\\nFrom: faked@attacker.org\"));\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testSetterContentTypeInjection()\n    {\n        $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org');\n        $mailer->setContentType(\"text/html\\r\\nFrom: faked@attacker.org\");\n    }\n\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testSetterEncodingInjection()\n    {\n        $mailer = new NativeMailerHandler('spammer@example.org', 'dear victim', 'receiver@example.org');\n        $mailer->setEncoding(\"utf-8\\r\\nFrom: faked@attacker.org\");\n    }\n\n    public function testSend()\n    {\n        $to = 'spammer@example.org';\n        $subject = 'dear victim';\n        $from = 'receiver@example.org';\n\n        $mailer = new NativeMailerHandler($to, $subject, $from);\n        $mailer->handleBatch(array());\n\n        // batch is empty, nothing sent\n        $this->assertEmpty($GLOBALS['mail']);\n\n        // non-empty batch\n        $mailer->handle($this->getRecord(Logger::ERROR, \"Foo\\nBar\\r\\n\\r\\nBaz\"));\n        $this->assertNotEmpty($GLOBALS['mail']);\n        $this->assertInternalType('array', $GLOBALS['mail']);\n        $this->assertArrayHasKey('0', $GLOBALS['mail']);\n        $params = $GLOBALS['mail'][0];\n        $this->assertCount(5, $params);\n        $this->assertSame($to, $params[0]);\n        $this->assertSame($subject, $params[1]);\n        $this->assertStringEndsWith(\" test.ERROR: Foo Bar  Baz [] []\\n\", $params[2]);\n        $this->assertSame(\"From: $from\\r\\nContent-type: text/plain; charset=utf-8\\r\\n\", $params[3]);\n        $this->assertSame('', $params[4]);\n    }\n\n    public function testMessageSubjectFormatting()\n    {\n        $mailer = new NativeMailerHandler('to@example.org', 'Alert: %level_name% %message%', 'from@example.org');\n        $mailer->handle($this->getRecord(Logger::ERROR, \"Foo\\nBar\\r\\n\\r\\nBaz\"));\n        $this->assertNotEmpty($GLOBALS['mail']);\n        $this->assertInternalType('array', $GLOBALS['mail']);\n        $this->assertArrayHasKey('0', $GLOBALS['mail']);\n        $params = $GLOBALS['mail'][0];\n        $this->assertCount(5, $params);\n        $this->assertSame('Alert: ERROR Foo Bar  Baz', $params[1]);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/NewRelicHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass NewRelicHandlerTest extends TestCase\n{\n    public static $appname;\n    public static $customParameters;\n    public static $transactionName;\n\n    public function setUp()\n    {\n        self::$appname = null;\n        self::$customParameters = array();\n        self::$transactionName = null;\n    }\n\n    /**\n     * @expectedException Monolog\\Handler\\MissingExtensionException\n     */\n    public function testThehandlerThrowsAnExceptionIfTheNRExtensionIsNotLoaded()\n    {\n        $handler = new StubNewRelicHandlerWithoutExtension();\n        $handler->handle($this->getRecord(Logger::ERROR));\n    }\n\n    public function testThehandlerCanHandleTheRecord()\n    {\n        $handler = new StubNewRelicHandler();\n        $handler->handle($this->getRecord(Logger::ERROR));\n    }\n\n    public function testThehandlerCanAddContextParamsToTheNewRelicTrace()\n    {\n        $handler = new StubNewRelicHandler();\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('a' => 'b')));\n        $this->assertEquals(array('context_a' => 'b'), self::$customParameters);\n    }\n\n    public function testThehandlerCanAddExplodedContextParamsToTheNewRelicTrace()\n    {\n        $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true);\n        $handler->handle($this->getRecord(\n            Logger::ERROR,\n            'log message',\n            array('a' => array('key1' => 'value1', 'key2' => 'value2'))\n        ));\n        $this->assertEquals(\n            array('context_a_key1' => 'value1', 'context_a_key2' => 'value2'),\n            self::$customParameters\n        );\n    }\n\n    public function testThehandlerCanAddExtraParamsToTheNewRelicTrace()\n    {\n        $record = $this->getRecord(Logger::ERROR, 'log message');\n        $record['extra'] = array('c' => 'd');\n\n        $handler = new StubNewRelicHandler();\n        $handler->handle($record);\n\n        $this->assertEquals(array('extra_c' => 'd'), self::$customParameters);\n    }\n\n    public function testThehandlerCanAddExplodedExtraParamsToTheNewRelicTrace()\n    {\n        $record = $this->getRecord(Logger::ERROR, 'log message');\n        $record['extra'] = array('c' => array('key1' => 'value1', 'key2' => 'value2'));\n\n        $handler = new StubNewRelicHandler(Logger::ERROR, true, self::$appname, true);\n        $handler->handle($record);\n\n        $this->assertEquals(\n            array('extra_c_key1' => 'value1', 'extra_c_key2' => 'value2'),\n            self::$customParameters\n        );\n    }\n\n    public function testThehandlerCanAddExtraContextAndParamsToTheNewRelicTrace()\n    {\n        $record = $this->getRecord(Logger::ERROR, 'log message', array('a' => 'b'));\n        $record['extra'] = array('c' => 'd');\n\n        $handler = new StubNewRelicHandler();\n        $handler->handle($record);\n\n        $expected = array(\n            'context_a' => 'b',\n            'extra_c' => 'd',\n        );\n\n        $this->assertEquals($expected, self::$customParameters);\n    }\n\n    public function testThehandlerCanHandleTheRecordsFormattedUsingTheLineFormatter()\n    {\n        $handler = new StubNewRelicHandler();\n        $handler->setFormatter(new LineFormatter());\n        $handler->handle($this->getRecord(Logger::ERROR));\n    }\n\n    public function testTheAppNameIsNullByDefault()\n    {\n        $handler = new StubNewRelicHandler();\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message'));\n\n        $this->assertEquals(null, self::$appname);\n    }\n\n    public function testTheAppNameCanBeInjectedFromtheConstructor()\n    {\n        $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName');\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message'));\n\n        $this->assertEquals('myAppName', self::$appname);\n    }\n\n    public function testTheAppNameCanBeOverriddenFromEachLog()\n    {\n        $handler = new StubNewRelicHandler(Logger::DEBUG, false, 'myAppName');\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('appname' => 'logAppName')));\n\n        $this->assertEquals('logAppName', self::$appname);\n    }\n\n    public function testTheTransactionNameIsNullByDefault()\n    {\n        $handler = new StubNewRelicHandler();\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message'));\n\n        $this->assertEquals(null, self::$transactionName);\n    }\n\n    public function testTheTransactionNameCanBeInjectedFromTheConstructor()\n    {\n        $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction');\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message'));\n\n        $this->assertEquals('myTransaction', self::$transactionName);\n    }\n\n    public function testTheTransactionNameCanBeOverriddenFromEachLog()\n    {\n        $handler = new StubNewRelicHandler(Logger::DEBUG, false, null, false, 'myTransaction');\n        $handler->handle($this->getRecord(Logger::ERROR, 'log message', array('transaction_name' => 'logTransactName')));\n\n        $this->assertEquals('logTransactName', self::$transactionName);\n    }\n}\n\nclass StubNewRelicHandlerWithoutExtension extends NewRelicHandler\n{\n    protected function isNewRelicEnabled()\n    {\n        return false;\n    }\n}\n\nclass StubNewRelicHandler extends NewRelicHandler\n{\n    protected function isNewRelicEnabled()\n    {\n        return true;\n    }\n}\n\nfunction newrelic_notice_error()\n{\n    return true;\n}\n\nfunction newrelic_set_appname($appname)\n{\n    return NewRelicHandlerTest::$appname = $appname;\n}\n\nfunction newrelic_name_transaction($transactionName)\n{\n    return NewRelicHandlerTest::$transactionName = $transactionName;\n}\n\nfunction newrelic_add_custom_parameter($key, $value)\n{\n    NewRelicHandlerTest::$customParameters[$key] = $value;\n\n    return true;\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/NullHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\NullHandler::handle\n */\nclass NullHandlerTest extends TestCase\n{\n    public function testHandle()\n    {\n        $handler = new NullHandler();\n        $this->assertTrue($handler->handle($this->getRecord()));\n    }\n\n    public function testHandleLowerLevelRecord()\n    {\n        $handler = new NullHandler(Logger::WARNING);\n        $this->assertFalse($handler->handle($this->getRecord(Logger::DEBUG)));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/PHPConsoleHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Exception;\nuse Monolog\\ErrorHandler;\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\nuse PhpConsole\\Connector;\nuse PhpConsole\\Dispatcher\\Debug as DebugDispatcher;\nuse PhpConsole\\Dispatcher\\Errors as ErrorDispatcher;\nuse PhpConsole\\Handler;\nuse PHPUnit_Framework_MockObject_MockObject;\n\n/**\n * @covers Monolog\\Handler\\PHPConsoleHandler\n * @author Sergey Barbushin https://www.linkedin.com/in/barbushin\n */\nclass PHPConsoleHandlerTest extends TestCase\n{\n    /** @var  Connector|PHPUnit_Framework_MockObject_MockObject */\n    protected $connector;\n    /** @var  DebugDispatcher|PHPUnit_Framework_MockObject_MockObject */\n    protected $debugDispatcher;\n    /** @var  ErrorDispatcher|PHPUnit_Framework_MockObject_MockObject */\n    protected $errorDispatcher;\n\n    protected function setUp()\n    {\n        if (!class_exists('PhpConsole\\Connector')) {\n            $this->markTestSkipped('PHP Console library not found. See https://github.com/barbushin/php-console#installation');\n        }\n        $this->connector = $this->initConnectorMock();\n\n        $this->debugDispatcher = $this->initDebugDispatcherMock($this->connector);\n        $this->connector->setDebugDispatcher($this->debugDispatcher);\n\n        $this->errorDispatcher = $this->initErrorDispatcherMock($this->connector);\n        $this->connector->setErrorsDispatcher($this->errorDispatcher);\n    }\n\n    protected function initDebugDispatcherMock(Connector $connector)\n    {\n        return $this->getMockBuilder('PhpConsole\\Dispatcher\\Debug')\n            ->disableOriginalConstructor()\n            ->setMethods(array('dispatchDebug'))\n            ->setConstructorArgs(array($connector, $connector->getDumper()))\n            ->getMock();\n    }\n\n    protected function initErrorDispatcherMock(Connector $connector)\n    {\n        return $this->getMockBuilder('PhpConsole\\Dispatcher\\Errors')\n            ->disableOriginalConstructor()\n            ->setMethods(array('dispatchError', 'dispatchException'))\n            ->setConstructorArgs(array($connector, $connector->getDumper()))\n            ->getMock();\n    }\n\n    protected function initConnectorMock()\n    {\n        $connector = $this->getMockBuilder('PhpConsole\\Connector')\n            ->disableOriginalConstructor()\n            ->setMethods(array(\n                'sendMessage',\n                'onShutDown',\n                'isActiveClient',\n                'setSourcesBasePath',\n                'setServerEncoding',\n                'setPassword',\n                'enableSslOnlyMode',\n                'setAllowedIpMasks',\n                'setHeadersLimit',\n                'startEvalRequestsListener',\n            ))\n            ->getMock();\n\n        $connector->expects($this->any())\n            ->method('isActiveClient')\n            ->will($this->returnValue(true));\n\n        return $connector;\n    }\n\n    protected function getHandlerDefaultOption($name)\n    {\n        $handler = new PHPConsoleHandler(array(), $this->connector);\n        $options = $handler->getOptions();\n\n        return $options[$name];\n    }\n\n    protected function initLogger($handlerOptions = array(), $level = Logger::DEBUG)\n    {\n        return new Logger('test', array(\n            new PHPConsoleHandler($handlerOptions, $this->connector, $level),\n        ));\n    }\n\n    public function testInitWithDefaultConnector()\n    {\n        $handler = new PHPConsoleHandler();\n        $this->assertEquals(spl_object_hash(Connector::getInstance()), spl_object_hash($handler->getConnector()));\n    }\n\n    public function testInitWithCustomConnector()\n    {\n        $handler = new PHPConsoleHandler(array(), $this->connector);\n        $this->assertEquals(spl_object_hash($this->connector), spl_object_hash($handler->getConnector()));\n    }\n\n    public function testDebug()\n    {\n        $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with($this->equalTo('test'));\n        $this->initLogger()->addDebug('test');\n    }\n\n    public function testDebugContextInMessage()\n    {\n        $message = 'test';\n        $tag = 'tag';\n        $context = array($tag, 'custom' => mt_rand());\n        $expectedMessage = $message . ' ' . json_encode(array_slice($context, 1));\n        $this->debugDispatcher->expects($this->once())->method('dispatchDebug')->with(\n            $this->equalTo($expectedMessage),\n            $this->equalTo($tag)\n        );\n        $this->initLogger()->addDebug($message, $context);\n    }\n\n    public function testDebugTags($tagsContextKeys = null)\n    {\n        $expectedTags = mt_rand();\n        $logger = $this->initLogger($tagsContextKeys ? array('debugTagsKeysInContext' => $tagsContextKeys) : array());\n        if (!$tagsContextKeys) {\n            $tagsContextKeys = $this->getHandlerDefaultOption('debugTagsKeysInContext');\n        }\n        foreach ($tagsContextKeys as $key) {\n            $debugDispatcher = $this->initDebugDispatcherMock($this->connector);\n            $debugDispatcher->expects($this->once())->method('dispatchDebug')->with(\n                $this->anything(),\n                $this->equalTo($expectedTags)\n            );\n            $this->connector->setDebugDispatcher($debugDispatcher);\n            $logger->addDebug('test', array($key => $expectedTags));\n        }\n    }\n\n    public function testError($classesPartialsTraceIgnore = null)\n    {\n        $code = E_USER_NOTICE;\n        $message = 'message';\n        $file = __FILE__;\n        $line = __LINE__;\n        $this->errorDispatcher->expects($this->once())->method('dispatchError')->with(\n            $this->equalTo($code),\n            $this->equalTo($message),\n            $this->equalTo($file),\n            $this->equalTo($line),\n            $classesPartialsTraceIgnore ?: $this->equalTo($this->getHandlerDefaultOption('classesPartialsTraceIgnore'))\n        );\n        $errorHandler = ErrorHandler::register($this->initLogger($classesPartialsTraceIgnore ? array('classesPartialsTraceIgnore' => $classesPartialsTraceIgnore) : array()), false);\n        $errorHandler->registerErrorHandler(array(), false, E_USER_WARNING);\n        $errorHandler->handleError($code, $message, $file, $line);\n    }\n\n    public function testException()\n    {\n        $e = new Exception();\n        $this->errorDispatcher->expects($this->once())->method('dispatchException')->with(\n            $this->equalTo($e)\n        );\n        $handler = $this->initLogger();\n        $handler->log(\n            \\Psr\\Log\\LogLevel::ERROR,\n            sprintf('Uncaught Exception %s: \"%s\" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine()),\n            array('exception' => $e)\n        );\n    }\n\n    /**\n     * @expectedException Exception\n     */\n    public function testWrongOptionsThrowsException()\n    {\n        new PHPConsoleHandler(array('xxx' => 1));\n    }\n\n    public function testOptionEnabled()\n    {\n        $this->debugDispatcher->expects($this->never())->method('dispatchDebug');\n        $this->initLogger(array('enabled' => false))->addDebug('test');\n    }\n\n    public function testOptionClassesPartialsTraceIgnore()\n    {\n        $this->testError(array('Class', 'Namespace\\\\'));\n    }\n\n    public function testOptionDebugTagsKeysInContext()\n    {\n        $this->testDebugTags(array('key1', 'key2'));\n    }\n\n    public function testOptionUseOwnErrorsAndExceptionsHandler()\n    {\n        $this->initLogger(array('useOwnErrorsHandler' => true, 'useOwnExceptionsHandler' => true));\n        $this->assertEquals(array(Handler::getInstance(), 'handleError'), set_error_handler(function () {\n        }));\n        $this->assertEquals(array(Handler::getInstance(), 'handleException'), set_exception_handler(function () {\n        }));\n    }\n\n    public static function provideConnectorMethodsOptionsSets()\n    {\n        return array(\n            array('sourcesBasePath', 'setSourcesBasePath', __DIR__),\n            array('serverEncoding', 'setServerEncoding', 'cp1251'),\n            array('password', 'setPassword', '******'),\n            array('enableSslOnlyMode', 'enableSslOnlyMode', true, false),\n            array('ipMasks', 'setAllowedIpMasks', array('127.0.0.*')),\n            array('headersLimit', 'setHeadersLimit', 2500),\n            array('enableEvalListener', 'startEvalRequestsListener', true, false),\n        );\n    }\n\n    /**\n     * @dataProvider provideConnectorMethodsOptionsSets\n     */\n    public function testOptionCallsConnectorMethod($option, $method, $value, $isArgument = true)\n    {\n        $expectCall = $this->connector->expects($this->once())->method($method);\n        if ($isArgument) {\n            $expectCall->with($value);\n        }\n        new PHPConsoleHandler(array($option => $value), $this->connector);\n    }\n\n    public function testOptionDetectDumpTraceAndSource()\n    {\n        new PHPConsoleHandler(array('detectDumpTraceAndSource' => true), $this->connector);\n        $this->assertTrue($this->connector->getDebugDispatcher()->detectTraceAndSource);\n    }\n\n    public static function provideDumperOptionsValues()\n    {\n        return array(\n            array('dumperLevelLimit', 'levelLimit', 1001),\n            array('dumperItemsCountLimit', 'itemsCountLimit', 1002),\n            array('dumperItemSizeLimit', 'itemSizeLimit', 1003),\n            array('dumperDumpSizeLimit', 'dumpSizeLimit', 1004),\n            array('dumperDetectCallbacks', 'detectCallbacks', true),\n        );\n    }\n\n    /**\n     * @dataProvider provideDumperOptionsValues\n     */\n    public function testDumperOptions($option, $dumperProperty, $value)\n    {\n        new PHPConsoleHandler(array($option => $value), $this->connector);\n        $this->assertEquals($value, $this->connector->getDumper()->$dumperProperty);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/PsrHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\PsrHandler::handle\n */\nclass PsrHandlerTest extends TestCase\n{\n    public function logLevelProvider()\n    {\n        $levels = array();\n        $monologLogger = new Logger('');\n\n        foreach ($monologLogger->getLevels() as $levelName => $level) {\n            $levels[] = array($levelName, $level);\n        }\n\n        return $levels;\n    }\n\n    /**\n     * @dataProvider logLevelProvider\n     */\n    public function testHandlesAllLevels($levelName, $level)\n    {\n        $message = 'Hello, world! ' . $level;\n        $context = array('foo' => 'bar', 'level' => $level);\n\n        $psrLogger = $this->getMock('Psr\\Log\\NullLogger');\n        $psrLogger->expects($this->once())\n            ->method('log')\n            ->with(strtolower($levelName), $message, $context);\n\n        $handler = new PsrHandler($psrLogger);\n        $handler->handle(array('level' => $level, 'level_name' => $levelName, 'message' => $message, 'context' => $context));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/PushoverHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * Almost all examples (expected header, titles, messages) taken from\n * https://www.pushover.net/api\n * @author Sebastian Göttschkes <sebastian.goettschkes@googlemail.com>\n * @see https://www.pushover.net/api\n */\nclass PushoverHandlerTest extends TestCase\n{\n    private $res;\n    private $handler;\n\n    public function testWriteHeader()\n    {\n        $this->createHandler();\n        $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/1\\/messages.json HTTP\\/1.1\\\\r\\\\nHost: api.pushover.net\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n\n        return $content;\n    }\n\n    /**\n     * @depends testWriteHeader\n     */\n    public function testWriteContent($content)\n    {\n        $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog&timestamp=\\d{10}$/', $content);\n    }\n\n    public function testWriteWithComplexTitle()\n    {\n        $this->createHandler('myToken', 'myUser', 'Backup finished - SQL1');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/title=Backup\\+finished\\+-\\+SQL1/', $content);\n    }\n\n    public function testWriteWithComplexMessage()\n    {\n        $this->createHandler();\n        $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'Backup of database \"example\" finished in 16 minutes.'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/message=Backup\\+of\\+database\\+%22example%22\\+finished\\+in\\+16\\+minutes\\./', $content);\n    }\n\n    public function testWriteWithTooLongMessage()\n    {\n        $message = str_pad('test', 520, 'a');\n        $this->createHandler();\n        $this->handler->setHighPriorityLevel(Logger::EMERGENCY); // skip priority notifications\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, $message));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $expectedMessage = substr($message, 0, 505);\n\n        $this->assertRegexp('/message=' . $expectedMessage . '&title/', $content);\n    }\n\n    public function testWriteWithHighPriority()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog&timestamp=\\d{10}&priority=1$/', $content);\n    }\n\n    public function testWriteWithEmergencyPriority()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog&timestamp=\\d{10}&priority=2&retry=30&expire=25200$/', $content);\n    }\n\n    public function testWriteToMultipleUsers()\n    {\n        $this->createHandler('myToken', array('userA', 'userB'));\n        $this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/token=myToken&user=userA&message=test1&title=Monolog&timestamp=\\d{10}&priority=2&retry=30&expire=25200POST/', $content);\n        $this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog&timestamp=\\d{10}&priority=2&retry=30&expire=25200$/', $content);\n    }\n\n    private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog')\n    {\n        $constructorArgs = array($token, $user, $title);\n        $this->res = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\PushoverHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $constructorArgs\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->res));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n\n        $this->handler->setFormatter($this->getIdentityFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/RavenHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\n\nclass RavenHandlerTest extends TestCase\n{\n    public function setUp()\n    {\n        if (!class_exists('Raven_Client')) {\n            $this->markTestSkipped('raven/raven not installed');\n        }\n\n        require_once __DIR__ . '/MockRavenClient.php';\n    }\n\n    /**\n     * @covers Monolog\\Handler\\RavenHandler::__construct\n     */\n    public function testConstruct()\n    {\n        $handler = new RavenHandler($this->getRavenClient());\n        $this->assertInstanceOf('Monolog\\Handler\\RavenHandler', $handler);\n    }\n\n    protected function getHandler($ravenClient)\n    {\n        $handler = new RavenHandler($ravenClient);\n\n        return $handler;\n    }\n\n    protected function getRavenClient()\n    {\n        $dsn = 'http://43f6017361224d098402974103bfc53d:a6a0538fc2934ba2bed32e08741b2cd3@marca.python.live.cheggnet.com:9000/1';\n\n        return new MockRavenClient($dsn);\n    }\n\n    public function testDebug()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $record = $this->getRecord(Logger::DEBUG, 'A test debug message');\n        $handler->handle($record);\n\n        $this->assertEquals($ravenClient::DEBUG, $ravenClient->lastData['level']);\n        $this->assertContains($record['message'], $ravenClient->lastData['message']);\n    }\n\n    public function testWarning()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $record = $this->getRecord(Logger::WARNING, 'A test warning message');\n        $handler->handle($record);\n\n        $this->assertEquals($ravenClient::WARNING, $ravenClient->lastData['level']);\n        $this->assertContains($record['message'], $ravenClient->lastData['message']);\n    }\n\n    public function testTag()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $tags = array(1, 2, 'foo');\n        $record = $this->getRecord(Logger::INFO, 'test', array('tags' => $tags));\n        $handler->handle($record);\n\n        $this->assertEquals($tags, $ravenClient->lastData['tags']);\n    }\n\n    public function testExtraParameters()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $checksum = '098f6bcd4621d373cade4e832627b4f6';\n        $release = '05a671c66aefea124cc08b76ea6d30bb';\n        $eventId = '31423';\n        $record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release, 'event_id' => $eventId));\n        $handler->handle($record);\n\n        $this->assertEquals($checksum, $ravenClient->lastData['checksum']);\n        $this->assertEquals($release, $ravenClient->lastData['release']);\n        $this->assertEquals($eventId, $ravenClient->lastData['event_id']);\n    }\n\n    public function testFingerprint()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $fingerprint = array('{{ default }}', 'other value');\n        $record = $this->getRecord(Logger::INFO, 'test', array('fingerprint' => $fingerprint));\n        $handler->handle($record);\n\n        $this->assertEquals($fingerprint, $ravenClient->lastData['fingerprint']);\n    }\n\n    public function testUserContext()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $recordWithNoContext = $this->getRecord(Logger::INFO, 'test with default user context');\n        // set user context 'externally'\n\n        $user = array(\n            'id' => '123',\n            'email' => 'test@test.com',\n        );\n\n        $recordWithContext = $this->getRecord(Logger::INFO, 'test', array('user' => $user));\n\n        $ravenClient->user_context(array('id' => 'test_user_id'));\n        // handle context\n        $handler->handle($recordWithContext);\n        $this->assertEquals($user, $ravenClient->lastData['user']);\n\n        // check to see if its reset\n        $handler->handle($recordWithNoContext);\n        $this->assertInternalType('array', $ravenClient->context->user);\n        $this->assertSame('test_user_id', $ravenClient->context->user['id']);\n\n        // handle with null context\n        $ravenClient->user_context(null);\n        $handler->handle($recordWithContext);\n        $this->assertEquals($user, $ravenClient->lastData['user']);\n\n        // check to see if its reset\n        $handler->handle($recordWithNoContext);\n        $this->assertNull($ravenClient->context->user);\n    }\n\n    public function testException()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        try {\n            $this->methodThatThrowsAnException();\n        } catch (\\Exception $e) {\n            $record = $this->getRecord(Logger::ERROR, $e->getMessage(), array('exception' => $e));\n            $handler->handle($record);\n        }\n\n        $this->assertEquals($record['message'], $ravenClient->lastData['message']);\n    }\n\n    public function testHandleBatch()\n    {\n        $records = $this->getMultipleRecords();\n        $records[] = $this->getRecord(Logger::WARNING, 'warning');\n        $records[] = $this->getRecord(Logger::WARNING, 'warning');\n\n        $logFormatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $logFormatter->expects($this->once())->method('formatBatch');\n\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) {\n            return $record['level'] == 400;\n        }));\n\n        $handler = $this->getHandler($this->getRavenClient());\n        $handler->setBatchFormatter($logFormatter);\n        $handler->setFormatter($formatter);\n        $handler->handleBatch($records);\n    }\n\n    public function testHandleBatchDoNothingIfRecordsAreBelowLevel()\n    {\n        $records = array(\n            $this->getRecord(Logger::DEBUG, 'debug message 1'),\n            $this->getRecord(Logger::DEBUG, 'debug message 2'),\n            $this->getRecord(Logger::INFO, 'information'),\n        );\n\n        $handler = $this->getMock('Monolog\\Handler\\RavenHandler', null, array($this->getRavenClient()));\n        $handler->expects($this->never())->method('handle');\n        $handler->setLevel(Logger::ERROR);\n        $handler->handleBatch($records);\n    }\n\n    public function testHandleBatchPicksProperMessage()\n    {\n        $records = array(\n            $this->getRecord(Logger::DEBUG, 'debug message 1'),\n            $this->getRecord(Logger::DEBUG, 'debug message 2'),\n            $this->getRecord(Logger::INFO, 'information 1'),\n            $this->getRecord(Logger::ERROR, 'error 1'),\n            $this->getRecord(Logger::WARNING, 'warning'),\n            $this->getRecord(Logger::ERROR, 'error 2'),\n            $this->getRecord(Logger::INFO, 'information 2'),\n        );\n\n        $logFormatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $logFormatter->expects($this->once())->method('formatBatch');\n\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter->expects($this->once())->method('format')->with($this->callback(function ($record) use ($records) {\n            return $record['message'] == 'error 1';\n        }));\n\n        $handler = $this->getHandler($this->getRavenClient());\n        $handler->setBatchFormatter($logFormatter);\n        $handler->setFormatter($formatter);\n        $handler->handleBatch($records);\n    }\n\n    public function testGetSetBatchFormatter()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n\n        $handler->setBatchFormatter($formatter = new LineFormatter());\n        $this->assertSame($formatter, $handler->getBatchFormatter());\n    }\n\n    public function testRelease()\n    {\n        $ravenClient = $this->getRavenClient();\n        $handler = $this->getHandler($ravenClient);\n        $release = 'v42.42.42';\n        $handler->setRelease($release);\n        $record = $this->getRecord(Logger::INFO, 'test');\n        $handler->handle($record);\n        $this->assertEquals($release, $ravenClient->lastData['release']);\n\n        $localRelease = 'v41.41.41';\n        $record = $this->getRecord(Logger::INFO, 'test', array('release' => $localRelease));\n        $handler->handle($record);\n        $this->assertEquals($localRelease, $ravenClient->lastData['release']);\n    }\n\n    private function methodThatThrowsAnException()\n    {\n        throw new \\Exception('This is an exception');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\n\nclass RedisHandlerTest extends TestCase\n{\n    /**\n     * @expectedException InvalidArgumentException\n     */\n    public function testConstructorShouldThrowExceptionForInvalidRedis()\n    {\n        new RedisHandler(new \\stdClass(), 'key');\n    }\n\n    public function testConstructorShouldWorkWithPredis()\n    {\n        $redis = $this->getMock('Predis\\Client');\n        $this->assertInstanceof('Monolog\\Handler\\RedisHandler', new RedisHandler($redis, 'key'));\n    }\n\n    public function testConstructorShouldWorkWithRedis()\n    {\n        $redis = $this->getMock('Redis');\n        $this->assertInstanceof('Monolog\\Handler\\RedisHandler', new RedisHandler($redis, 'key'));\n    }\n\n    public function testPredisHandle()\n    {\n        $redis = $this->getMock('Predis\\Client', array('rpush'));\n\n        // Predis\\Client uses rpush\n        $redis->expects($this->once())\n            ->method('rpush')\n            ->with('key', 'test');\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $handler = new RedisHandler($redis, 'key');\n        $handler->setFormatter(new LineFormatter(\"%message%\"));\n        $handler->handle($record);\n    }\n\n    public function testRedisHandle()\n    {\n        $redis = $this->getMock('Redis', array('rpush'));\n\n        // Redis uses rPush\n        $redis->expects($this->once())\n            ->method('rPush')\n            ->with('key', 'test');\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $handler = new RedisHandler($redis, 'key');\n        $handler->setFormatter(new LineFormatter(\"%message%\"));\n        $handler->handle($record);\n    }\n\n    public function testRedisHandleCapped()\n    {\n        $redis = $this->getMock('Redis', array('multi', 'rpush', 'ltrim', 'exec'));\n\n        // Redis uses multi\n        $redis->expects($this->once())\n            ->method('multi')\n            ->will($this->returnSelf());\n\n        $redis->expects($this->once())\n            ->method('rpush')\n            ->will($this->returnSelf());\n\n        $redis->expects($this->once())\n            ->method('ltrim')\n            ->will($this->returnSelf());\n\n        $redis->expects($this->once())\n            ->method('exec')\n            ->will($this->returnSelf());\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10);\n        $handler->setFormatter(new LineFormatter(\"%message%\"));\n        $handler->handle($record);\n    }\n\n    public function testPredisHandleCapped()\n    {\n        $redis = $this->getMock('Predis\\Client', array('transaction'));\n\n        $redisTransaction = $this->getMock('Predis\\Client', array('rpush', 'ltrim'));\n\n        $redisTransaction->expects($this->once())\n            ->method('rpush')\n            ->will($this->returnSelf());\n\n        $redisTransaction->expects($this->once())\n            ->method('ltrim')\n            ->will($this->returnSelf());\n\n        // Redis uses multi\n        $redis->expects($this->once())\n            ->method('transaction')\n            ->will($this->returnCallback(function ($cb) use ($redisTransaction) {\n                $cb($redisTransaction);\n            }));\n\n        $record = $this->getRecord(Logger::WARNING, 'test', array('data' => new \\stdClass, 'foo' => 34));\n\n        $handler = new RedisHandler($redis, 'key', Logger::DEBUG, true, 10);\n        $handler->setFormatter(new LineFormatter(\"%message%\"));\n        $handler->handle($record);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/RollbarHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Exception;\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse PHPUnit_Framework_MockObject_MockObject as MockObject;\n\n/**\n * @author Erik Johansson <erik.pm.johansson@gmail.com>\n * @see    https://rollbar.com/docs/notifier/rollbar-php/\n *\n * @coversDefaultClass Monolog\\Handler\\RollbarHandler\n */\nclass RollbarHandlerTest extends TestCase\n{\n    /**\n     * @var MockObject\n     */\n    private $rollbarNotifier;\n\n    /**\n     * @var array\n     */\n    public $reportedExceptionArguments = null;\n\n    protected function setUp()\n    {\n        parent::setUp();\n\n        $this->setupRollbarNotifierMock();\n    }\n\n    /**\n     * When reporting exceptions to Rollbar the\n     * level has to be set in the payload data\n     */\n    public function testExceptionLogLevel()\n    {\n        $handler = $this->createHandler();\n\n        $handler->handle($this->createExceptionRecord(Logger::DEBUG));\n\n        $this->assertEquals('debug', $this->reportedExceptionArguments['payload']['level']);\n    }\n\n    private function setupRollbarNotifierMock()\n    {\n        $this->rollbarNotifier = $this->getMockBuilder('RollbarNotifier')\n            ->setMethods(array('report_message', 'report_exception', 'flush'))\n            ->getMock();\n\n        $that = $this;\n\n        $this->rollbarNotifier\n            ->expects($this->any())\n            ->method('report_exception')\n            ->willReturnCallback(function ($exception, $context, $payload) use ($that) {\n                $that->reportedExceptionArguments = compact('exception', 'context', 'payload');\n            });\n    }\n\n    private function createHandler()\n    {\n        return new RollbarHandler($this->rollbarNotifier, Logger::DEBUG);\n    }\n\n    private function createExceptionRecord($level = Logger::DEBUG, $message = 'test', $exception = null)\n    {\n        return $this->getRecord($level, $message, array(\n            'exception' => $exception ?: new Exception()\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/RotatingFileHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse PHPUnit_Framework_Error_Deprecated;\n\n/**\n * @covers Monolog\\Handler\\RotatingFileHandler\n */\nclass RotatingFileHandlerTest extends TestCase\n{\n    /**\n     * This var should be private but then the anonymous function\n     * in the `setUp` method won't be able to set it. `$this` cant't\n     * be used in the anonymous function in `setUp` because PHP 5.3\n     * does not support it.\n     */\n    public $lastError;\n\n    public function setUp()\n    {\n        $dir = __DIR__.'/Fixtures';\n        chmod($dir, 0777);\n        if (!is_writable($dir)) {\n            $this->markTestSkipped($dir.' must be writable to test the RotatingFileHandler.');\n        }\n        $this->lastError = null;\n        $self = $this;\n        // workaround with &$self used for PHP 5.3\n        set_error_handler(function($code, $message) use (&$self) {\n            $self->lastError = array(\n                'code' => $code,\n                'message' => $message,\n            );\n        });\n    }\n\n    private function assertErrorWasTriggered($code, $message)\n    {\n        if (empty($this->lastError)) {\n            $this->fail(\n                sprintf(\n                    'Failed asserting that error with code `%d` and message `%s` was triggered',\n                    $code,\n                    $message\n                )\n            );\n        }\n        $this->assertEquals($code, $this->lastError['code'], sprintf('Expected an error with code %d to be triggered, got `%s` instead', $code, $this->lastError['code']));\n        $this->assertEquals($message, $this->lastError['message'], sprintf('Expected an error with message `%d` to be triggered, got `%s` instead', $message, $this->lastError['message']));\n    }\n\n    public function testRotationCreatesNewFile()\n    {\n        touch(__DIR__.'/Fixtures/foo-'.date('Y-m-d', time() - 86400).'.rot');\n\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot');\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord());\n\n        $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot';\n        $this->assertTrue(file_exists($log));\n        $this->assertEquals('test', file_get_contents($log));\n    }\n\n    /**\n     * @dataProvider rotationTests\n     */\n    public function testRotation($createFile, $dateFormat, $timeCallback)\n    {\n        touch($old1 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-1)).'.rot');\n        touch($old2 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-2)).'.rot');\n        touch($old3 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-3)).'.rot');\n        touch($old4 = __DIR__.'/Fixtures/foo-'.date($dateFormat, $timeCallback(-4)).'.rot');\n\n        $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot';\n\n        if ($createFile) {\n            touch($log);\n        }\n\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->setFilenameFormat('{filename}-{date}', $dateFormat);\n        $handler->handle($this->getRecord());\n\n        $handler->close();\n\n        $this->assertTrue(file_exists($log));\n        $this->assertTrue(file_exists($old1));\n        $this->assertEquals($createFile, file_exists($old2));\n        $this->assertEquals($createFile, file_exists($old3));\n        $this->assertEquals($createFile, file_exists($old4));\n        $this->assertEquals('test', file_get_contents($log));\n    }\n\n    public function rotationTests()\n    {\n        $now = time();\n        $dayCallback = function($ago) use ($now) {\n            return $now + 86400 * $ago;\n        };\n        $monthCallback = function($ago) {\n            return gmmktime(0, 0, 0, date('n') + $ago, 1, date('Y'));\n        };\n        $yearCallback = function($ago) {\n            return gmmktime(0, 0, 0, 1, 1, date('Y') + $ago);\n        };\n\n        return array(\n            'Rotation is triggered when the file of the current day is not present'\n                => array(true, RotatingFileHandler::FILE_PER_DAY, $dayCallback),\n            'Rotation is not triggered when the file of the current day is already present'\n                => array(false, RotatingFileHandler::FILE_PER_DAY, $dayCallback),\n\n            'Rotation is triggered when the file of the current month is not present'\n                => array(true, RotatingFileHandler::FILE_PER_MONTH, $monthCallback),\n            'Rotation is not triggered when the file of the current month is already present'\n                => array(false, RotatingFileHandler::FILE_PER_MONTH, $monthCallback),\n\n            'Rotation is triggered when the file of the current year is not present'\n                => array(true, RotatingFileHandler::FILE_PER_YEAR, $yearCallback),\n            'Rotation is not triggered when the file of the current year is already present'\n                => array(false, RotatingFileHandler::FILE_PER_YEAR, $yearCallback),\n        );\n    }\n\n    /**\n     * @dataProvider dateFormatProvider\n     */\n    public function testAllowOnlyFixedDefinedDateFormats($dateFormat, $valid)\n    {\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);\n        $handler->setFilenameFormat('{filename}-{date}', $dateFormat);\n        if (!$valid) {\n            $this->assertErrorWasTriggered(\n                E_USER_DEPRECATED,\n                'Invalid date format - format must be one of RotatingFileHandler::FILE_PER_DAY (\"Y-m-d\"), '.\n                'RotatingFileHandler::FILE_PER_MONTH (\"Y-m\") or RotatingFileHandler::FILE_PER_YEAR (\"Y\"), '.\n                'or you can set one of the date formats using slashes, underscores and/or dots instead of dashes.'\n            );\n        }\n    }\n\n    public function dateFormatProvider()\n    {\n        return array(\n            array(RotatingFileHandler::FILE_PER_DAY, true),\n            array(RotatingFileHandler::FILE_PER_MONTH, true),\n            array(RotatingFileHandler::FILE_PER_YEAR, true),\n            array('m-d-Y', false),\n            array('Y-m-d-h-i', false)\n        );\n    }\n\n    /**\n     * @dataProvider filenameFormatProvider\n     */\n    public function testDisallowFilenameFormatsWithoutDate($filenameFormat, $valid)\n    {\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);\n        $handler->setFilenameFormat($filenameFormat, RotatingFileHandler::FILE_PER_DAY);\n        if (!$valid) {\n            $this->assertErrorWasTriggered(\n                E_USER_DEPRECATED,\n                'Invalid filename format - format should contain at least `{date}`, because otherwise rotating is impossible.'\n            );\n        }\n    }\n\n    public function filenameFormatProvider()\n    {\n        return array(\n            array('{filename}', false),\n            array('{filename}-{date}', true),\n            array('{date}', true),\n            array('foobar-{date}', true),\n            array('foo-{date}-bar', true),\n            array('{date}-foobar', true),\n            array('foobar', false),\n        );\n    }\n\n    /**\n     * @dataProvider rotationWhenSimilarFilesExistTests\n     */\n    public function testRotationWhenSimilarFileNamesExist($dateFormat)\n    {\n        touch($old1 = __DIR__.'/Fixtures/foo-foo-'.date($dateFormat).'.rot');\n        touch($old2 = __DIR__.'/Fixtures/foo-bar-'.date($dateFormat).'.rot');\n\n        $log = __DIR__.'/Fixtures/foo-'.date($dateFormat).'.rot';\n\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot', 2);\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->setFilenameFormat('{filename}-{date}', $dateFormat);\n        $handler->handle($this->getRecord());\n        $handler->close();\n\n        $this->assertTrue(file_exists($log));\n    }\n\n    public function rotationWhenSimilarFilesExistTests()\n    {\n\n        return array(\n            'Rotation is triggered when the file of the current day is not present but similar exists'\n                => array(RotatingFileHandler::FILE_PER_DAY),\n\n            'Rotation is triggered when the file of the current month is not present but similar exists'\n                => array(RotatingFileHandler::FILE_PER_MONTH),\n\n            'Rotation is triggered when the file of the current year is not present but similar exists'\n                => array(RotatingFileHandler::FILE_PER_YEAR),\n        );\n    }\n\n    public function testReuseCurrentFile()\n    {\n        $log = __DIR__.'/Fixtures/foo-'.date('Y-m-d').'.rot';\n        file_put_contents($log, \"foo\");\n        $handler = new RotatingFileHandler(__DIR__.'/Fixtures/foo.rot');\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord());\n        $this->assertEquals('footest', file_get_contents($log));\n    }\n\n    public function tearDown()\n    {\n        foreach (glob(__DIR__.'/Fixtures/*.rot') as $file) {\n            unlink($file);\n        }\n        restore_error_handler();\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SamplingHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\n\n/**\n * @covers Monolog\\Handler\\SamplingHandler::handle\n */\nclass SamplingHandlerTest extends TestCase\n{\n    public function testHandle()\n    {\n        $testHandler = new TestHandler();\n        $handler = new SamplingHandler($testHandler, 2);\n        for ($i = 0; $i < 10000; $i++) {\n            $handler->handle($this->getRecord());\n        }\n        $count = count($testHandler->getRecords());\n        // $count should be half of 10k, so between 4k and 6k\n        $this->assertLessThan(6000, $count);\n        $this->assertGreaterThan(4000, $count);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/Slack/SlackRecordTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler\\Slack;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\n/**\n * @coversDefaultClass Monolog\\Handler\\Slack\\SlackRecord\n */\nclass SlackRecordTest extends TestCase\n{\n    private $jsonPrettyPrintFlag;\n\n    protected function setUp()\n    {\n        $this->jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128;\n    }\n\n    public function dataGetAttachmentColor()\n    {\n        return array(\n            array(Logger::DEBUG, SlackRecord::COLOR_DEFAULT),\n            array(Logger::INFO, SlackRecord::COLOR_GOOD),\n            array(Logger::NOTICE, SlackRecord::COLOR_GOOD),\n            array(Logger::WARNING, SlackRecord::COLOR_WARNING),\n            array(Logger::ERROR, SlackRecord::COLOR_DANGER),\n            array(Logger::CRITICAL, SlackRecord::COLOR_DANGER),\n            array(Logger::ALERT, SlackRecord::COLOR_DANGER),\n            array(Logger::EMERGENCY, SlackRecord::COLOR_DANGER),\n        );\n    }\n\n    /**\n     * @dataProvider dataGetAttachmentColor\n     * @param  int $logLevel\n     * @param  string $expectedColour RGB hex color or name of Slack color\n     * @covers ::getAttachmentColor\n     */\n    public function testGetAttachmentColor($logLevel, $expectedColour)\n    {\n        $slackRecord = new SlackRecord();\n        $this->assertSame(\n            $expectedColour,\n            $slackRecord->getAttachmentColor($logLevel)\n        );\n    }\n\n    public function testAddsChannel()\n    {\n        $channel = '#test';\n        $record = new SlackRecord($channel);\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayHasKey('channel', $data);\n        $this->assertSame($channel, $data['channel']);\n    }\n\n    public function testNoUsernameByDefault()\n    {\n        $record = new SlackRecord();\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayNotHasKey('username', $data);\n    }\n\n    /**\n     * @return array\n     */\n    public function dataStringify()\n    {\n        $jsonPrettyPrintFlag = defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 128;\n\n        $multipleDimensions = array(array(1, 2));\n        $numericKeys = array('library' => 'monolog');\n        $singleDimension = array(1, 'Hello', 'Jordi');\n\n        return array(\n            array(array(), '[]'),\n            array($multipleDimensions, json_encode($multipleDimensions, $jsonPrettyPrintFlag)),\n            array($numericKeys, json_encode($numericKeys, $jsonPrettyPrintFlag)),\n            array($singleDimension, json_encode($singleDimension))\n        );\n    }\n\n    /**\n     * @dataProvider dataStringify\n     */\n    public function testStringify($fields, $expectedResult)\n    {\n        $slackRecord = new SlackRecord(\n            '#test',\n            'test',\n            true,\n            null,\n            true,\n            true\n        );\n\n        $this->assertSame($expectedResult, $slackRecord->stringify($fields));\n    }\n\n    public function testAddsCustomUsername()\n    {\n        $username = 'Monolog bot';\n        $record = new SlackRecord(null, $username);\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayHasKey('username', $data);\n        $this->assertSame($username, $data['username']);\n    }\n\n    public function testNoIcon()\n    {\n        $record = new SlackRecord();\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayNotHasKey('icon_emoji', $data);\n    }\n\n    public function testAddsIcon()\n    {\n        $record = $this->getRecord();\n        $slackRecord = new SlackRecord(null, null, false, 'ghost');\n        $data = $slackRecord->getSlackData($record);\n\n        $slackRecord2 = new SlackRecord(null, null, false, 'http://github.com/Seldaek/monolog');\n        $data2 = $slackRecord2->getSlackData($record);\n\n        $this->assertArrayHasKey('icon_emoji', $data);\n        $this->assertSame(':ghost:', $data['icon_emoji']);\n        $this->assertArrayHasKey('icon_url', $data2);\n        $this->assertSame('http://github.com/Seldaek/monolog', $data2['icon_url']);\n    }\n\n    public function testAttachmentsNotPresentIfNoAttachment()\n    {\n        $record = new SlackRecord(null, null, false);\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayNotHasKey('attachments', $data);\n    }\n\n    public function testAddsOneAttachment()\n    {\n        $record = new SlackRecord();\n        $data = $record->getSlackData($this->getRecord());\n\n        $this->assertArrayHasKey('attachments', $data);\n        $this->assertArrayHasKey(0, $data['attachments']);\n        $this->assertInternalType('array', $data['attachments'][0]);\n    }\n\n    public function testTextEqualsMessageIfNoAttachment()\n    {\n        $message = 'Test message';\n        $record = new SlackRecord(null, null, false);\n        $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message));\n\n        $this->assertArrayHasKey('text', $data);\n        $this->assertSame($message, $data['text']);\n    }\n\n    public function testTextEqualsFormatterOutput()\n    {\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter\n            ->expects($this->any())\n            ->method('format')\n            ->will($this->returnCallback(function ($record) { return $record['message'] . 'test'; }));\n\n        $formatter2 = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter2\n            ->expects($this->any())\n            ->method('format')\n            ->will($this->returnCallback(function ($record) { return $record['message'] . 'test1'; }));\n\n        $message = 'Test message';\n        $record = new SlackRecord(null, null, false, null, false, false, array(), $formatter);\n        $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message));\n\n        $this->assertArrayHasKey('text', $data);\n        $this->assertSame($message . 'test', $data['text']);\n\n        $record->setFormatter($formatter2);\n        $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message));\n\n        $this->assertArrayHasKey('text', $data);\n        $this->assertSame($message . 'test1', $data['text']);\n    }\n\n    public function testAddsFallbackAndTextToAttachment()\n    {\n        $message = 'Test message';\n        $record = new SlackRecord(null);\n        $data = $record->getSlackData($this->getRecord(Logger::WARNING, $message));\n\n        $this->assertSame($message, $data['attachments'][0]['text']);\n        $this->assertSame($message, $data['attachments'][0]['fallback']);\n    }\n\n    public function testMapsLevelToColorAttachmentColor()\n    {\n        $record = new SlackRecord(null);\n        $errorLoggerRecord = $this->getRecord(Logger::ERROR);\n        $emergencyLoggerRecord = $this->getRecord(Logger::EMERGENCY);\n        $warningLoggerRecord = $this->getRecord(Logger::WARNING);\n        $infoLoggerRecord = $this->getRecord(Logger::INFO);\n        $debugLoggerRecord = $this->getRecord(Logger::DEBUG);\n\n        $data = $record->getSlackData($errorLoggerRecord);\n        $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']);\n\n        $data = $record->getSlackData($emergencyLoggerRecord);\n        $this->assertSame(SlackRecord::COLOR_DANGER, $data['attachments'][0]['color']);\n\n        $data = $record->getSlackData($warningLoggerRecord);\n        $this->assertSame(SlackRecord::COLOR_WARNING, $data['attachments'][0]['color']);\n\n        $data = $record->getSlackData($infoLoggerRecord);\n        $this->assertSame(SlackRecord::COLOR_GOOD, $data['attachments'][0]['color']);\n\n        $data = $record->getSlackData($debugLoggerRecord);\n        $this->assertSame(SlackRecord::COLOR_DEFAULT, $data['attachments'][0]['color']);\n    }\n\n    public function testAddsShortAttachmentWithoutContextAndExtra()\n    {\n        $level = Logger::ERROR;\n        $levelName = Logger::getLevelName($level);\n        $record = new SlackRecord(null, null, true, null, true);\n        $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1)));\n\n        $attachment = $data['attachments'][0];\n        $this->assertArrayHasKey('title', $attachment);\n        $this->assertArrayHasKey('fields', $attachment);\n        $this->assertSame($levelName, $attachment['title']);\n        $this->assertSame(array(), $attachment['fields']);\n    }\n\n    public function testAddsShortAttachmentWithContextAndExtra()\n    {\n        $level = Logger::ERROR;\n        $levelName = Logger::getLevelName($level);\n        $context = array('test' => 1);\n        $extra = array('tags' => array('web'));\n        $record = new SlackRecord(null, null, true, null, true, true);\n        $loggerRecord = $this->getRecord($level, 'test', $context);\n        $loggerRecord['extra'] = $extra;\n        $data = $record->getSlackData($loggerRecord);\n\n        $attachment = $data['attachments'][0];\n        $this->assertArrayHasKey('title', $attachment);\n        $this->assertArrayHasKey('fields', $attachment);\n        $this->assertCount(2, $attachment['fields']);\n        $this->assertSame($levelName, $attachment['title']);\n        $this->assertSame(\n            array(\n                array(\n                    'title' => 'Extra',\n                    'value' => sprintf('```%s```', json_encode($extra, $this->jsonPrettyPrintFlag)),\n                    'short' => false\n                ),\n                array(\n                    'title' => 'Context',\n                    'value' => sprintf('```%s```', json_encode($context, $this->jsonPrettyPrintFlag)),\n                    'short' => false\n                )\n            ),\n            $attachment['fields']\n        );\n    }\n\n    public function testAddsLongAttachmentWithoutContextAndExtra()\n    {\n        $level = Logger::ERROR;\n        $levelName = Logger::getLevelName($level);\n        $record = new SlackRecord(null, null, true, null);\n        $data = $record->getSlackData($this->getRecord($level, 'test', array('test' => 1)));\n\n        $attachment = $data['attachments'][0];\n        $this->assertArrayHasKey('title', $attachment);\n        $this->assertArrayHasKey('fields', $attachment);\n        $this->assertCount(1, $attachment['fields']);\n        $this->assertSame('Message', $attachment['title']);\n        $this->assertSame(\n            array(array(\n                'title' => 'Level',\n                'value' => $levelName,\n                'short' => false\n            )),\n            $attachment['fields']\n        );\n    }\n\n    public function testAddsLongAttachmentWithContextAndExtra()\n    {\n        $level = Logger::ERROR;\n        $levelName = Logger::getLevelName($level);\n        $context = array('test' => 1);\n        $extra = array('tags' => array('web'));\n        $record = new SlackRecord(null, null, true, null, false, true);\n        $loggerRecord = $this->getRecord($level, 'test', $context);\n        $loggerRecord['extra'] = $extra;\n        $data = $record->getSlackData($loggerRecord);\n\n        $expectedFields = array(\n            array(\n                'title' => 'Level',\n                'value' => $levelName,\n                'short' => false,\n            ),\n            array(\n                'title' => 'Tags',\n                'value' => sprintf('```%s```', json_encode($extra['tags'])),\n                'short' => false\n            ),\n            array(\n                'title' => 'Test',\n                'value' => $context['test'],\n                'short' => false\n            )\n        );\n\n        $attachment = $data['attachments'][0];\n        $this->assertArrayHasKey('title', $attachment);\n        $this->assertArrayHasKey('fields', $attachment);\n        $this->assertCount(3, $attachment['fields']);\n        $this->assertSame('Message', $attachment['title']);\n        $this->assertSame(\n            $expectedFields,\n            $attachment['fields']\n        );\n    }\n\n    public function testAddsTimestampToAttachment()\n    {\n        $record = $this->getRecord();\n        $slackRecord = new SlackRecord();\n        $data = $slackRecord->getSlackData($this->getRecord());\n\n        $attachment = $data['attachments'][0];\n        $this->assertArrayHasKey('ts', $attachment);\n        $this->assertSame($record['datetime']->getTimestamp(), $attachment['ts']);\n    }\n\n    public function testContextHasException()\n    {\n        $record = $this->getRecord(Logger::CRITICAL, 'This is a critical message.', array('exception' => new \\Exception()));\n        $slackRecord = new SlackRecord(null, null, true, null, false, true);\n        $data = $slackRecord->getSlackData($record);\n        $this->assertInternalType('string', $data['attachments'][0]['fields'][1]['value']);\n    }\n\n    public function testExcludeExtraAndContextFields()\n    {\n        $record = $this->getRecord(\n            Logger::WARNING,\n            'test',\n            array('info' => array('library' => 'monolog', 'author' => 'Jordi'))\n        );\n        $record['extra'] = array('tags' => array('web', 'cli'));\n\n        $slackRecord = new SlackRecord(null, null, true, null, false, true, array('context.info.library', 'extra.tags.1'));\n        $data = $slackRecord->getSlackData($record);\n        $attachment = $data['attachments'][0];\n\n        $expected = array(\n            array(\n                'title' => 'Info',\n                'value' => sprintf('```%s```', json_encode(array('author' => 'Jordi'), $this->jsonPrettyPrintFlag)),\n                'short' => false\n            ),\n            array(\n                'title' => 'Tags',\n                'value' => sprintf('```%s```', json_encode(array('web'))),\n                'short' => false\n            ),\n        );\n\n        foreach ($expected as $field) {\n            $this->assertNotFalse(array_search($field, $attachment['fields']));\n            break;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SlackHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Handler\\Slack\\SlackRecord;\n\n/**\n * @author Greg Kedzierski <greg@gregkedzierski.com>\n * @see    https://api.slack.com/\n */\nclass SlackHandlerTest extends TestCase\n{\n    /**\n     * @var resource\n     */\n    private $res;\n\n    /**\n     * @var SlackHandler\n     */\n    private $handler;\n\n    public function setUp()\n    {\n        if (!extension_loaded('openssl')) {\n            $this->markTestSkipped('This test requires openssl to run');\n        }\n    }\n\n    public function testWriteHeader()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/POST \\/api\\/chat.postMessage HTTP\\/1.1\\\\r\\\\nHost: slack.com\\\\r\\\\nContent-Type: application\\/x-www-form-urlencoded\\\\r\\\\nContent-Length: \\d{2,4}\\\\r\\\\n\\\\r\\\\n/', $content);\n    }\n\n    public function testWriteContent()\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegExp('/username=Monolog/', $content);\n        $this->assertRegExp('/channel=channel1/', $content);\n        $this->assertRegExp('/token=myToken/', $content);\n        $this->assertRegExp('/attachments/', $content);\n    }\n\n    public function testWriteContentUsesFormatterIfProvided()\n    {\n        $this->createHandler('myToken', 'channel1', 'Monolog', false);\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->createHandler('myToken', 'channel1', 'Monolog', false);\n        $this->handler->setFormatter(new LineFormatter('foo--%message%'));\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test2'));\n        fseek($this->res, 0);\n        $content2 = fread($this->res, 1024);\n\n        $this->assertRegexp('/text=test1/', $content);\n        $this->assertRegexp('/text=foo--test2/', $content2);\n    }\n\n    public function testWriteContentWithEmoji()\n    {\n        $this->createHandler('myToken', 'channel1', 'Monolog', true, 'alien');\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/icon_emoji=%3Aalien%3A/', $content);\n    }\n\n    /**\n     * @dataProvider provideLevelColors\n     */\n    public function testWriteContentWithColors($level, $expectedColor)\n    {\n        $this->createHandler();\n        $this->handler->handle($this->getRecord($level, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/%22color%22%3A%22'.$expectedColor.'/', $content);\n    }\n\n    public function testWriteContentWithPlainTextMessage()\n    {\n        $this->createHandler('myToken', 'channel1', 'Monolog', false);\n        $this->handler->handle($this->getRecord(Logger::CRITICAL, 'test1'));\n        fseek($this->res, 0);\n        $content = fread($this->res, 1024);\n\n        $this->assertRegexp('/text=test1/', $content);\n    }\n\n    public function provideLevelColors()\n    {\n        return array(\n            array(Logger::DEBUG,    urlencode(SlackRecord::COLOR_DEFAULT)),\n            array(Logger::INFO,     SlackRecord::COLOR_GOOD),\n            array(Logger::NOTICE,   SlackRecord::COLOR_GOOD),\n            array(Logger::WARNING,  SlackRecord::COLOR_WARNING),\n            array(Logger::ERROR,    SlackRecord::COLOR_DANGER),\n            array(Logger::CRITICAL, SlackRecord::COLOR_DANGER),\n            array(Logger::ALERT,    SlackRecord::COLOR_DANGER),\n            array(Logger::EMERGENCY,SlackRecord::COLOR_DANGER),\n        );\n    }\n\n    private function createHandler($token = 'myToken', $channel = 'channel1', $username = 'Monolog', $useAttachment = true, $iconEmoji = null, $useShortAttachment = false, $includeExtra = false)\n    {\n        $constructorArgs = array($token, $channel, $username, $useAttachment, $iconEmoji, Logger::DEBUG, true, $useShortAttachment, $includeExtra);\n        $this->res = fopen('php://memory', 'a');\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\SlackHandler',\n            array('fsockopen', 'streamSetTimeout', 'closeSocket'),\n            $constructorArgs\n        );\n\n        $reflectionProperty = new \\ReflectionProperty('\\Monolog\\Handler\\SocketHandler', 'connectionString');\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($this->handler, 'localhost:1234');\n\n        $this->handler->expects($this->any())\n            ->method('fsockopen')\n            ->will($this->returnValue($this->res));\n        $this->handler->expects($this->any())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(true));\n        $this->handler->expects($this->any())\n            ->method('closeSocket')\n            ->will($this->returnValue(true));\n\n        $this->handler->setFormatter($this->getIdentityFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SlackWebhookHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Handler\\Slack\\SlackRecord;\n\n/**\n * @author Haralan Dobrev <hkdobrev@gmail.com>\n * @see    https://api.slack.com/incoming-webhooks\n * @coversDefaultClass Monolog\\Handler\\SlackWebhookHandler\n */\nclass SlackWebhookHandlerTest extends TestCase\n{\n    const WEBHOOK_URL = 'https://hooks.slack.com/services/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E';\n\n    /**\n     * @covers ::__construct\n     * @covers ::getSlackRecord\n     */\n    public function testConstructorMinimal()\n    {\n        $handler = new SlackWebhookHandler(self::WEBHOOK_URL);\n        $record = $this->getRecord();\n        $slackRecord = $handler->getSlackRecord();\n        $this->assertInstanceOf('Monolog\\Handler\\Slack\\SlackRecord', $slackRecord);\n        $this->assertEquals(array(\n            'attachments' => array(\n                array(\n                    'fallback' => 'test',\n                    'text' => 'test',\n                    'color' => SlackRecord::COLOR_WARNING,\n                    'fields' => array(\n                        array(\n                            'title' => 'Level',\n                            'value' => 'WARNING',\n                            'short' => false,\n                        ),\n                    ),\n                    'title' => 'Message',\n                    'mrkdwn_in' => array('fields'),\n                    'ts' => $record['datetime']->getTimestamp(),\n                ),\n            ),\n        ), $slackRecord->getSlackData($record));\n    }\n\n    /**\n     * @covers ::__construct\n     * @covers ::getSlackRecord\n     */\n    public function testConstructorFull()\n    {\n        $handler = new SlackWebhookHandler(\n            self::WEBHOOK_URL,\n            'test-channel',\n            'test-username',\n            false,\n            ':ghost:',\n            false,\n            false,\n            Logger::DEBUG,\n            false\n        );\n\n        $slackRecord = $handler->getSlackRecord();\n        $this->assertInstanceOf('Monolog\\Handler\\Slack\\SlackRecord', $slackRecord);\n        $this->assertEquals(array(\n            'username' => 'test-username',\n            'text' => 'test',\n            'channel' => 'test-channel',\n            'icon_emoji' => ':ghost:',\n        ), $slackRecord->getSlackData($this->getRecord()));\n    }\n\n    /**\n     * @covers ::getFormatter\n     */\n    public function testGetFormatter()\n    {\n        $handler = new SlackWebhookHandler(self::WEBHOOK_URL);\n        $formatter = $handler->getFormatter();\n        $this->assertInstanceOf('Monolog\\Formatter\\FormatterInterface', $formatter);\n    }\n\n    /**\n     * @covers ::setFormatter\n     */\n    public function testSetFormatter()\n    {\n        $handler = new SlackWebhookHandler(self::WEBHOOK_URL);\n        $formatter = new LineFormatter();\n        $handler->setFormatter($formatter);\n        $this->assertSame($formatter, $handler->getFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SlackbotHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @author Haralan Dobrev <hkdobrev@gmail.com>\n * @see    https://slack.com/apps/A0F81R8ET-slackbot\n * @coversDefaultClass Monolog\\Handler\\SlackbotHandler\n */\nclass SlackbotHandlerTest extends TestCase\n{\n    /**\n     * @covers ::__construct\n     */\n    public function testConstructorMinimal()\n    {\n        $handler = new SlackbotHandler('test-team', 'test-token', 'test-channel');\n        $this->assertInstanceOf('Monolog\\Handler\\AbstractProcessingHandler', $handler);\n    }\n\n    /**\n     * @covers ::__construct\n     */\n    public function testConstructorFull()\n    {\n        $handler = new SlackbotHandler(\n            'test-team',\n            'test-token',\n            'test-channel',\n            Logger::DEBUG,\n            false\n        );\n        $this->assertInstanceOf('Monolog\\Handler\\AbstractProcessingHandler', $handler);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SocketHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @author Pablo de Leon Belloc <pablolb@gmail.com>\n */\nclass SocketHandlerTest extends TestCase\n{\n    /**\n     * @var Monolog\\Handler\\SocketHandler\n     */\n    private $handler;\n\n    /**\n     * @var resource\n     */\n    private $res;\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testInvalidHostname()\n    {\n        $this->createHandler('garbage://here');\n        $this->writeRecord('data');\n    }\n\n    /**\n     * @expectedException \\InvalidArgumentException\n     */\n    public function testBadConnectionTimeout()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setConnectionTimeout(-1);\n    }\n\n    public function testSetConnectionTimeout()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setConnectionTimeout(10.1);\n        $this->assertEquals(10.1, $this->handler->getConnectionTimeout());\n    }\n\n    /**\n     * @expectedException \\InvalidArgumentException\n     */\n    public function testBadTimeout()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setTimeout(-1);\n    }\n\n    public function testSetTimeout()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setTimeout(10.25);\n        $this->assertEquals(10.25, $this->handler->getTimeout());\n    }\n\n    public function testSetWritingTimeout()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setWritingTimeout(10.25);\n        $this->assertEquals(10.25, $this->handler->getWritingTimeout());\n    }\n\n    public function testSetChunkSize()\n    {\n        $this->createHandler('localhost:1234');\n        $this->handler->setChunkSize(1025);\n        $this->assertEquals(1025, $this->handler->getChunkSize());\n    }\n\n    public function testSetConnectionString()\n    {\n        $this->createHandler('tcp://localhost:9090');\n        $this->assertEquals('tcp://localhost:9090', $this->handler->getConnectionString());\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testExceptionIsThrownOnFsockopenError()\n    {\n        $this->setMockHandler(array('fsockopen'));\n        $this->handler->expects($this->once())\n            ->method('fsockopen')\n            ->will($this->returnValue(false));\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testExceptionIsThrownOnPfsockopenError()\n    {\n        $this->setMockHandler(array('pfsockopen'));\n        $this->handler->expects($this->once())\n            ->method('pfsockopen')\n            ->will($this->returnValue(false));\n        $this->handler->setPersistent(true);\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testExceptionIsThrownIfCannotSetTimeout()\n    {\n        $this->setMockHandler(array('streamSetTimeout'));\n        $this->handler->expects($this->once())\n            ->method('streamSetTimeout')\n            ->will($this->returnValue(false));\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testExceptionIsThrownIfCannotSetChunkSize()\n    {\n        $this->setMockHandler(array('streamSetChunkSize'));\n        $this->handler->setChunkSize(8192);\n        $this->handler->expects($this->once())\n            ->method('streamSetChunkSize')\n            ->will($this->returnValue(false));\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException RuntimeException\n     */\n    public function testWriteFailsOnIfFwriteReturnsFalse()\n    {\n        $this->setMockHandler(array('fwrite'));\n\n        $callback = function ($arg) {\n            $map = array(\n                'Hello world' => 6,\n                'world' => false,\n            );\n\n            return $map[$arg];\n        };\n\n        $this->handler->expects($this->exactly(2))\n            ->method('fwrite')\n            ->will($this->returnCallback($callback));\n\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException RuntimeException\n     */\n    public function testWriteFailsIfStreamTimesOut()\n    {\n        $this->setMockHandler(array('fwrite', 'streamGetMetadata'));\n\n        $callback = function ($arg) {\n            $map = array(\n                'Hello world' => 6,\n                'world' => 5,\n            );\n\n            return $map[$arg];\n        };\n\n        $this->handler->expects($this->exactly(1))\n            ->method('fwrite')\n            ->will($this->returnCallback($callback));\n        $this->handler->expects($this->exactly(1))\n            ->method('streamGetMetadata')\n            ->will($this->returnValue(array('timed_out' => true)));\n\n        $this->writeRecord('Hello world');\n    }\n\n    /**\n     * @expectedException RuntimeException\n     */\n    public function testWriteFailsOnIncompleteWrite()\n    {\n        $this->setMockHandler(array('fwrite', 'streamGetMetadata'));\n\n        $res = $this->res;\n        $callback = function ($string) use ($res) {\n            fclose($res);\n\n            return strlen('Hello');\n        };\n\n        $this->handler->expects($this->exactly(1))\n            ->method('fwrite')\n            ->will($this->returnCallback($callback));\n        $this->handler->expects($this->exactly(1))\n            ->method('streamGetMetadata')\n            ->will($this->returnValue(array('timed_out' => false)));\n\n        $this->writeRecord('Hello world');\n    }\n\n    public function testWriteWithMemoryFile()\n    {\n        $this->setMockHandler();\n        $this->writeRecord('test1');\n        $this->writeRecord('test2');\n        $this->writeRecord('test3');\n        fseek($this->res, 0);\n        $this->assertEquals('test1test2test3', fread($this->res, 1024));\n    }\n\n    public function testWriteWithMock()\n    {\n        $this->setMockHandler(array('fwrite'));\n\n        $callback = function ($arg) {\n            $map = array(\n                'Hello world' => 6,\n                'world' => 5,\n            );\n\n            return $map[$arg];\n        };\n\n        $this->handler->expects($this->exactly(2))\n            ->method('fwrite')\n            ->will($this->returnCallback($callback));\n\n        $this->writeRecord('Hello world');\n    }\n\n    public function testClose()\n    {\n        $this->setMockHandler();\n        $this->writeRecord('Hello world');\n        $this->assertInternalType('resource', $this->res);\n        $this->handler->close();\n        $this->assertFalse(is_resource($this->res), \"Expected resource to be closed after closing handler\");\n    }\n\n    public function testCloseDoesNotClosePersistentSocket()\n    {\n        $this->setMockHandler();\n        $this->handler->setPersistent(true);\n        $this->writeRecord('Hello world');\n        $this->assertTrue(is_resource($this->res));\n        $this->handler->close();\n        $this->assertTrue(is_resource($this->res));\n    }\n\n    /**\n     * @expectedException \\RuntimeException\n     */\n    public function testAvoidInfiniteLoopWhenNoDataIsWrittenForAWritingTimeoutSeconds()\n    {\n        $this->setMockHandler(array('fwrite', 'streamGetMetadata'));\n\n        $this->handler->expects($this->any())\n            ->method('fwrite')\n            ->will($this->returnValue(0));\n\n        $this->handler->expects($this->any())\n            ->method('streamGetMetadata')\n            ->will($this->returnValue(array('timed_out' => false)));\n\n        $this->handler->setWritingTimeout(1);\n\n        $this->writeRecord('Hello world');\n    }\n\n    private function createHandler($connectionString)\n    {\n        $this->handler = new SocketHandler($connectionString);\n        $this->handler->setFormatter($this->getIdentityFormatter());\n    }\n\n    private function writeRecord($string)\n    {\n        $this->handler->handle($this->getRecord(Logger::WARNING, $string));\n    }\n\n    private function setMockHandler(array $methods = array())\n    {\n        $this->res = fopen('php://memory', 'a');\n\n        $defaultMethods = array('fsockopen', 'pfsockopen', 'streamSetTimeout');\n        $newMethods = array_diff($methods, $defaultMethods);\n\n        $finalMethods = array_merge($defaultMethods, $newMethods);\n\n        $this->handler = $this->getMock(\n            '\\Monolog\\Handler\\SocketHandler', $finalMethods, array('localhost:1234')\n        );\n\n        if (!in_array('fsockopen', $methods)) {\n            $this->handler->expects($this->any())\n                ->method('fsockopen')\n                ->will($this->returnValue($this->res));\n        }\n\n        if (!in_array('pfsockopen', $methods)) {\n            $this->handler->expects($this->any())\n                ->method('pfsockopen')\n                ->will($this->returnValue($this->res));\n        }\n\n        if (!in_array('streamSetTimeout', $methods)) {\n            $this->handler->expects($this->any())\n                ->method('streamSetTimeout')\n                ->will($this->returnValue(true));\n        }\n\n        if (!in_array('streamSetChunkSize', $methods)) {\n            $this->handler->expects($this->any())\n                ->method('streamSetChunkSize')\n                ->will($this->returnValue(8192));\n        }\n\n        $this->handler->setFormatter($this->getIdentityFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/StreamHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass StreamHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWrite()\n    {\n        $handle = fopen('php://memory', 'a+');\n        $handler = new StreamHandler($handle);\n        $handler->setFormatter($this->getIdentityFormatter());\n        $handler->handle($this->getRecord(Logger::WARNING, 'test'));\n        $handler->handle($this->getRecord(Logger::WARNING, 'test2'));\n        $handler->handle($this->getRecord(Logger::WARNING, 'test3'));\n        fseek($handle, 0);\n        $this->assertEquals('testtest2test3', fread($handle, 100));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::close\n     */\n    public function testCloseKeepsExternalHandlersOpen()\n    {\n        $handle = fopen('php://memory', 'a+');\n        $handler = new StreamHandler($handle);\n        $this->assertTrue(is_resource($handle));\n        $handler->close();\n        $this->assertTrue(is_resource($handle));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::close\n     */\n    public function testClose()\n    {\n        $handler = new StreamHandler('php://memory');\n        $handler->handle($this->getRecord(Logger::WARNING, 'test'));\n        $streamProp = new \\ReflectionProperty('Monolog\\Handler\\StreamHandler', 'stream');\n        $streamProp->setAccessible(true);\n        $handle = $streamProp->getValue($handler);\n\n        $this->assertTrue(is_resource($handle));\n        $handler->close();\n        $this->assertFalse(is_resource($handle));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteCreatesTheStreamResource()\n    {\n        $handler = new StreamHandler('php://memory');\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteLocking()\n    {\n        $temp = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'monolog_locked_log';\n        $handler = new StreamHandler($temp, Logger::DEBUG, true, null, true);\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @expectedException LogicException\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteMissingResource()\n    {\n        $handler = new StreamHandler(null);\n        $handler->handle($this->getRecord());\n    }\n\n    public function invalidArgumentProvider()\n    {\n        return array(\n            array(1),\n            array(array()),\n            array(array('bogus://url')),\n        );\n    }\n\n    /**\n     * @dataProvider invalidArgumentProvider\n     * @expectedException InvalidArgumentException\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     */\n    public function testWriteInvalidArgument($invalidArgument)\n    {\n        $handler = new StreamHandler($invalidArgument);\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteInvalidResource()\n    {\n        $handler = new StreamHandler('bogus://url');\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteNonExistingResource()\n    {\n        $handler = new StreamHandler('ftp://foo/bar/baz/'.rand(0, 10000));\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteNonExistingPath()\n    {\n        $handler = new StreamHandler(sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000));\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteNonExistingFileResource()\n    {\n        $handler = new StreamHandler('file://'.sys_get_temp_dir().'/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000));\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @expectedException Exception\n     * @expectedExceptionMessageRegExp /There is no existing directory at/\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteNonExistingAndNotCreatablePath()\n    {\n        if (defined('PHP_WINDOWS_VERSION_BUILD')) {\n            $this->markTestSkipped('Permissions checks can not run on windows');\n        }\n        $handler = new StreamHandler('/foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000));\n        $handler->handle($this->getRecord());\n    }\n\n    /**\n     * @expectedException Exception\n     * @expectedExceptionMessageRegExp /There is no existing directory at/\n     * @covers Monolog\\Handler\\StreamHandler::__construct\n     * @covers Monolog\\Handler\\StreamHandler::write\n     */\n    public function testWriteNonExistingAndNotCreatableFileResource()\n    {\n        if (defined('PHP_WINDOWS_VERSION_BUILD')) {\n            $this->markTestSkipped('Permissions checks can not run on windows');\n        }\n        $handler = new StreamHandler('file:///foo/bar/'.rand(0, 10000).DIRECTORY_SEPARATOR.rand(0, 10000));\n        $handler->handle($this->getRecord());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SwiftMailerHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\n\nclass SwiftMailerHandlerTest extends TestCase\n{\n    /** @var \\Swift_Mailer|\\PHPUnit_Framework_MockObject_MockObject */\n    private $mailer;\n\n    public function setUp()\n    {\n        $this->mailer = $this\n            ->getMockBuilder('Swift_Mailer')\n            ->disableOriginalConstructor()\n            ->getMock();\n    }\n\n    public function testMessageCreationIsLazyWhenUsingCallback()\n    {\n        $this->mailer->expects($this->never())\n            ->method('send');\n\n        $callback = function () {\n            throw new \\RuntimeException('Swift_Message creation callback should not have been called in this test');\n        };\n        $handler = new SwiftMailerHandler($this->mailer, $callback);\n\n        $records = array(\n            $this->getRecord(Logger::DEBUG),\n            $this->getRecord(Logger::INFO),\n        );\n        $handler->handleBatch($records);\n    }\n\n    public function testMessageCanBeCustomizedGivenLoggedData()\n    {\n        // Wire Mailer to expect a specific Swift_Message with a customized Subject\n        $expectedMessage = new \\Swift_Message();\n        $this->mailer->expects($this->once())\n            ->method('send')\n            ->with($this->callback(function ($value) use ($expectedMessage) {\n                return $value instanceof \\Swift_Message\n                    && $value->getSubject() === 'Emergency'\n                    && $value === $expectedMessage;\n            }));\n\n        // Callback dynamically changes subject based on number of logged records\n        $callback = function ($content, array $records) use ($expectedMessage) {\n            $subject = count($records) > 0 ? 'Emergency' : 'Normal';\n            $expectedMessage->setSubject($subject);\n\n            return $expectedMessage;\n        };\n        $handler = new SwiftMailerHandler($this->mailer, $callback);\n\n        // Logging 1 record makes this an Emergency\n        $records = array(\n            $this->getRecord(Logger::EMERGENCY),\n        );\n        $handler->handleBatch($records);\n    }\n\n    public function testMessageSubjectFormatting()\n    {\n        // Wire Mailer to expect a specific Swift_Message with a customized Subject\n        $messageTemplate = new \\Swift_Message();\n        $messageTemplate->setSubject('Alert: %level_name% %message%');\n        $receivedMessage = null;\n\n        $this->mailer->expects($this->once())\n            ->method('send')\n            ->with($this->callback(function ($value) use (&$receivedMessage) {\n                $receivedMessage = $value;\n                return true;\n            }));\n\n        $handler = new SwiftMailerHandler($this->mailer, $messageTemplate);\n\n        $records = array(\n            $this->getRecord(Logger::EMERGENCY),\n        );\n        $handler->handleBatch($records);\n\n        $this->assertEquals('Alert: EMERGENCY test', $receivedMessage->getSubject());\n    }\n\n    public function testMessageHaveUniqueId()\n    {\n        $messageTemplate = new \\Swift_Message();\n        $handler = new SwiftMailerHandler($this->mailer, $messageTemplate);\n\n        $method = new \\ReflectionMethod('Monolog\\Handler\\SwiftMailerHandler', 'buildMessage');\n        $method->setAccessible(true);\n        $method->invokeArgs($handler, array($messageTemplate, array()));\n\n        $builtMessage1 = $method->invoke($handler, $messageTemplate, array());\n        $builtMessage2 = $method->invoke($handler, $messageTemplate, array());\n\n        $this->assertFalse($builtMessage1->getId() === $builtMessage2->getId(), 'Two different messages have the same id');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SyslogHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\Logger;\n\nclass SyslogHandlerTest extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\SyslogHandler::__construct\n     */\n    public function testConstruct()\n    {\n        $handler = new SyslogHandler('test');\n        $this->assertInstanceOf('Monolog\\Handler\\SyslogHandler', $handler);\n\n        $handler = new SyslogHandler('test', LOG_USER);\n        $this->assertInstanceOf('Monolog\\Handler\\SyslogHandler', $handler);\n\n        $handler = new SyslogHandler('test', 'user');\n        $this->assertInstanceOf('Monolog\\Handler\\SyslogHandler', $handler);\n\n        $handler = new SyslogHandler('test', LOG_USER, Logger::DEBUG, true, LOG_PERROR);\n        $this->assertInstanceOf('Monolog\\Handler\\SyslogHandler', $handler);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\SyslogHandler::__construct\n     */\n    public function testConstructInvalidFacility()\n    {\n        $this->setExpectedException('UnexpectedValueException');\n        $handler = new SyslogHandler('test', 'unknown');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/SyslogUdpHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\n\n/**\n * @requires extension sockets\n */\nclass SyslogUdpHandlerTest extends TestCase\n{\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testWeValidateFacilities()\n    {\n        $handler = new SyslogUdpHandler(\"ip\", null, \"invalidFacility\");\n    }\n\n    public function testWeSplitIntoLines()\n    {\n        $time = '2014-01-07T12:34';\n        $pid = getmypid();\n        $host = gethostname();\n\n        $handler = $this->getMockBuilder('\\Monolog\\Handler\\SyslogUdpHandler')\n            ->setConstructorArgs(array(\"127.0.0.1\", 514, \"authpriv\"))\n            ->setMethods(array('getDateTime'))\n            ->getMock();\n\n        $handler->method('getDateTime')\n            ->willReturn($time);\n\n        $handler->setFormatter(new \\Monolog\\Formatter\\ChromePHPFormatter());\n\n        $socket = $this->getMock('\\Monolog\\Handler\\SyslogUdp\\UdpSocket', array('write'), array('lol', 'lol'));\n        $socket->expects($this->at(0))\n            ->method('write')\n            ->with(\"lol\", \"<\".(LOG_AUTHPRIV + LOG_WARNING).\">1 $time $host php $pid - - \");\n        $socket->expects($this->at(1))\n            ->method('write')\n            ->with(\"hej\", \"<\".(LOG_AUTHPRIV + LOG_WARNING).\">1 $time $host php $pid - - \");\n\n        $handler->setSocket($socket);\n\n        $handler->handle($this->getRecordWithMessage(\"hej\\nlol\"));\n    }\n\n    public function testSplitWorksOnEmptyMsg()\n    {\n        $handler = new SyslogUdpHandler(\"127.0.0.1\", 514, \"authpriv\");\n        $handler->setFormatter($this->getIdentityFormatter());\n\n        $socket = $this->getMock('\\Monolog\\Handler\\SyslogUdp\\UdpSocket', array('write'), array('lol', 'lol'));\n        $socket->expects($this->never())\n            ->method('write');\n\n        $handler->setSocket($socket);\n\n        $handler->handle($this->getRecordWithMessage(null));\n    }\n\n    protected function getRecordWithMessage($msg)\n    {\n        return array('message' => $msg, 'level' => \\Monolog\\Logger::WARNING, 'context' => null, 'extra' => array(), 'channel' => 'lol');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/TestHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\n/**\n * @covers Monolog\\Handler\\TestHandler\n */\nclass TestHandlerTest extends TestCase\n{\n    /**\n     * @dataProvider methodProvider\n     */\n    public function testHandler($method, $level)\n    {\n        $handler = new TestHandler;\n        $record = $this->getRecord($level, 'test'.$method);\n        $this->assertFalse($handler->hasRecords($level));\n        $this->assertFalse($handler->hasRecord($record, $level));\n        $this->assertFalse($handler->{'has'.$method}($record), 'has'.$method);\n        $this->assertFalse($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains');\n        $this->assertFalse($handler->{'has'.$method.'ThatPasses'}(function ($rec) {\n            return true;\n        }), 'has'.$method.'ThatPasses');\n        $this->assertFalse($handler->{'has'.$method.'ThatMatches'}('/test\\w+/'));\n        $this->assertFalse($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records');\n        $handler->handle($record);\n\n        $this->assertFalse($handler->{'has'.$method}('bar'), 'has'.$method);\n        $this->assertTrue($handler->hasRecords($level));\n        $this->assertTrue($handler->hasRecord($record, $level));\n        $this->assertTrue($handler->{'has'.$method}($record), 'has'.$method);\n        $this->assertTrue($handler->{'has'.$method}('test'.$method), 'has'.$method);\n        $this->assertTrue($handler->{'has'.$method.'ThatContains'}('test'), 'has'.$method.'ThatContains');\n        $this->assertTrue($handler->{'has'.$method.'ThatPasses'}(function ($rec) {\n            return true;\n        }), 'has'.$method.'ThatPasses');\n        $this->assertTrue($handler->{'has'.$method.'ThatMatches'}('/test\\w+/'));\n        $this->assertTrue($handler->{'has'.$method.'Records'}(), 'has'.$method.'Records');\n\n        $records = $handler->getRecords();\n        unset($records[0]['formatted']);\n        $this->assertEquals(array($record), $records);\n    }\n\n    public function testHandlerAssertEmptyContext() {\n        $handler = new TestHandler;\n        $record  = $this->getRecord(Logger::WARNING, 'test', array());\n        $this->assertFalse($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(),\n        )));\n\n        $handler->handle($record);\n\n        $this->assertTrue($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(),\n        )));\n        $this->assertFalse($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(\n                'foo' => 'bar'\n            ),\n        )));\n    }\n\n    public function testHandlerAssertNonEmptyContext() {\n        $handler = new TestHandler;\n        $record  = $this->getRecord(Logger::WARNING, 'test', array('foo' => 'bar'));\n        $this->assertFalse($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(\n                'foo' => 'bar'\n            ),\n        )));\n\n        $handler->handle($record);\n\n        $this->assertTrue($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(\n                'foo' => 'bar'\n            ),\n        )));\n        $this->assertFalse($handler->hasWarning(array(\n            'message' => 'test',\n            'context' => array(),\n        )));\n    }\n\n    public function methodProvider()\n    {\n        return array(\n            array('Emergency', Logger::EMERGENCY),\n            array('Alert'    , Logger::ALERT),\n            array('Critical' , Logger::CRITICAL),\n            array('Error'    , Logger::ERROR),\n            array('Warning'  , Logger::WARNING),\n            array('Info'     , Logger::INFO),\n            array('Notice'   , Logger::NOTICE),\n            array('Debug'    , Logger::DEBUG),\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/UdpSocketTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Handler\\SyslogUdp\\UdpSocket;\n\n/**\n * @requires extension sockets\n */\nclass UdpSocketTest extends TestCase\n{\n    public function testWeDoNotTruncateShortMessages()\n    {\n        $socket = $this->getMock('\\Monolog\\Handler\\SyslogUdp\\UdpSocket', array('send'), array('lol', 'lol'));\n\n        $socket->expects($this->at(0))\n            ->method('send')\n            ->with(\"HEADER: The quick brown fox jumps over the lazy dog\");\n\n        $socket->write(\"The quick brown fox jumps over the lazy dog\", \"HEADER: \");\n    }\n\n    public function testLongMessagesAreTruncated()\n    {\n        $socket = $this->getMock('\\Monolog\\Handler\\SyslogUdp\\UdpSocket', array('send'), array('lol', 'lol'));\n\n        $truncatedString = str_repeat(\"derp\", 16254).'d';\n\n        $socket->expects($this->exactly(1))\n            ->method('send')\n            ->with(\"HEADER\" . $truncatedString);\n\n        $longString = str_repeat(\"derp\", 20000);\n\n        $socket->write($longString, \"HEADER\");\n    }\n\n    public function testDoubleCloseDoesNotError()\n    {\n        $socket = new UdpSocket('127.0.0.1', 514);\n        $socket->close();\n        $socket->close();\n    }\n\n    /**\n     * @expectedException LogicException\n     */\n    public function testWriteAfterCloseErrors()\n    {\n        $socket = new UdpSocket('127.0.0.1', 514);\n        $socket->close();\n        $socket->write('foo', \"HEADER\");\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/WhatFailureGroupHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\nuse Monolog\\Logger;\n\nclass WhatFailureGroupHandlerTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::__construct\n     * @expectedException InvalidArgumentException\n     */\n    public function testConstructorOnlyTakesHandler()\n    {\n        new WhatFailureGroupHandler(array(new TestHandler(), \"foo\"));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::__construct\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::handle\n     */\n    public function testHandle()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new WhatFailureGroupHandler($testHandlers);\n        $handler->handle($this->getRecord(Logger::DEBUG));\n        $handler->handle($this->getRecord(Logger::INFO));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::handleBatch\n     */\n    public function testHandleBatch()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new WhatFailureGroupHandler($testHandlers);\n        $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::isHandling\n     */\n    public function testIsHandling()\n    {\n        $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING));\n        $handler = new WhatFailureGroupHandler($testHandlers);\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR)));\n        $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING)));\n        $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::handle\n     */\n    public function testHandleUsesProcessors()\n    {\n        $test = new TestHandler();\n        $handler = new WhatFailureGroupHandler(array($test));\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::handleBatch\n     */\n    public function testHandleBatchUsesProcessors()\n    {\n        $testHandlers = array(new TestHandler(), new TestHandler());\n        $handler = new WhatFailureGroupHandler($testHandlers);\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)));\n        foreach ($testHandlers as $test) {\n            $this->assertTrue($test->hasDebugRecords());\n            $this->assertTrue($test->hasInfoRecords());\n            $this->assertTrue(count($test->getRecords()) === 2);\n            $records = $test->getRecords();\n            $this->assertTrue($records[0]['extra']['foo']);\n            $this->assertTrue($records[1]['extra']['foo']);\n        }\n    }\n\n    /**\n     * @covers Monolog\\Handler\\WhatFailureGroupHandler::handle\n     */\n    public function testHandleException()\n    {\n        $test = new TestHandler();\n        $exception = new ExceptionTestHandler();\n        $handler = new WhatFailureGroupHandler(array($exception, $test, $exception));\n        $handler->pushProcessor(function ($record) {\n            $record['extra']['foo'] = true;\n\n            return $record;\n        });\n        $handler->handle($this->getRecord(Logger::WARNING));\n        $this->assertTrue($test->hasWarningRecords());\n        $records = $test->getRecords();\n        $this->assertTrue($records[0]['extra']['foo']);\n    }\n}\n\nclass ExceptionTestHandler extends TestHandler\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(array $record)\n    {\n        parent::handle($record);\n\n        throw new \\Exception(\"ExceptionTestHandler::handle\");\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Handler/ZendMonitorHandlerTest.php",
    "content": "<?php\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Handler;\n\nuse Monolog\\TestCase;\n\nclass ZendMonitorHandlerTest extends TestCase\n{\n    protected $zendMonitorHandler;\n\n    public function setUp()\n    {\n        if (!function_exists('zend_monitor_custom_event')) {\n            $this->markTestSkipped('ZendServer is not installed');\n        }\n    }\n\n    /**\n     * @covers  Monolog\\Handler\\ZendMonitorHandler::write\n     */\n    public function testWrite()\n    {\n        $record = $this->getRecord();\n        $formatterResult = array(\n            'message' => $record['message'],\n        );\n\n        $zendMonitor = $this->getMockBuilder('Monolog\\Handler\\ZendMonitorHandler')\n            ->setMethods(array('writeZendMonitorCustomEvent', 'getDefaultFormatter'))\n            ->getMock();\n\n        $formatterMock = $this->getMockBuilder('Monolog\\Formatter\\NormalizerFormatter')\n            ->disableOriginalConstructor()\n            ->getMock();\n\n        $formatterMock->expects($this->once())\n            ->method('format')\n            ->will($this->returnValue($formatterResult));\n\n        $zendMonitor->expects($this->once())\n            ->method('getDefaultFormatter')\n            ->will($this->returnValue($formatterMock));\n\n        $levelMap = $zendMonitor->getLevelMap();\n\n        $zendMonitor->expects($this->once())\n            ->method('writeZendMonitorCustomEvent')\n            ->with($levelMap[$record['level']], $record['message'], $formatterResult);\n\n        $zendMonitor->handle($record);\n    }\n\n    /**\n     * @covers Monolog\\Handler\\ZendMonitorHandler::getDefaultFormatter\n     */\n    public function testGetDefaultFormatterReturnsNormalizerFormatter()\n    {\n        $zendMonitor = new ZendMonitorHandler();\n        $this->assertInstanceOf('Monolog\\Formatter\\NormalizerFormatter', $zendMonitor->getDefaultFormatter());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/LoggerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Monolog\\Processor\\WebProcessor;\nuse Monolog\\Handler\\TestHandler;\n\nclass LoggerTest extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @covers Monolog\\Logger::getName\n     */\n    public function testGetName()\n    {\n        $logger = new Logger('foo');\n        $this->assertEquals('foo', $logger->getName());\n    }\n\n    /**\n     * @covers Monolog\\Logger::getLevelName\n     */\n    public function testGetLevelName()\n    {\n        $this->assertEquals('ERROR', Logger::getLevelName(Logger::ERROR));\n    }\n\n    /**\n     * @covers Monolog\\Logger::withName\n     */\n    public function testWithName()\n    {\n        $first = new Logger('first', array($handler = new TestHandler()));\n        $second = $first->withName('second');\n\n        $this->assertSame('first', $first->getName());\n        $this->assertSame('second', $second->getName());\n        $this->assertSame($handler, $second->popHandler());\n    }\n\n    /**\n     * @covers Monolog\\Logger::toMonologLevel\n     */\n    public function testConvertPSR3ToMonologLevel()\n    {\n        $this->assertEquals(Logger::toMonologLevel('debug'), 100);\n        $this->assertEquals(Logger::toMonologLevel('info'), 200);\n        $this->assertEquals(Logger::toMonologLevel('notice'), 250);\n        $this->assertEquals(Logger::toMonologLevel('warning'), 300);\n        $this->assertEquals(Logger::toMonologLevel('error'), 400);\n        $this->assertEquals(Logger::toMonologLevel('critical'), 500);\n        $this->assertEquals(Logger::toMonologLevel('alert'), 550);\n        $this->assertEquals(Logger::toMonologLevel('emergency'), 600);\n    }\n\n    /**\n     * @covers Monolog\\Logger::getLevelName\n     * @expectedException InvalidArgumentException\n     */\n    public function testGetLevelNameThrows()\n    {\n        Logger::getLevelName(5);\n    }\n\n    /**\n     * @covers Monolog\\Logger::__construct\n     */\n    public function testChannel()\n    {\n        $logger = new Logger('foo');\n        $handler = new TestHandler;\n        $logger->pushHandler($handler);\n        $logger->addWarning('test');\n        list($record) = $handler->getRecords();\n        $this->assertEquals('foo', $record['channel']);\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testLog()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler = $this->getMock('Monolog\\Handler\\NullHandler', array('handle'));\n        $handler->expects($this->once())\n            ->method('handle');\n        $logger->pushHandler($handler);\n\n        $this->assertTrue($logger->addWarning('test'));\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testLogNotHandled()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler = $this->getMock('Monolog\\Handler\\NullHandler', array('handle'), array(Logger::ERROR));\n        $handler->expects($this->never())\n            ->method('handle');\n        $logger->pushHandler($handler);\n\n        $this->assertFalse($logger->addWarning('test'));\n    }\n\n    public function testHandlersInCtor()\n    {\n        $handler1 = new TestHandler;\n        $handler2 = new TestHandler;\n        $logger = new Logger(__METHOD__, array($handler1, $handler2));\n\n        $this->assertEquals($handler1, $logger->popHandler());\n        $this->assertEquals($handler2, $logger->popHandler());\n    }\n\n    public function testProcessorsInCtor()\n    {\n        $processor1 = new WebProcessor;\n        $processor2 = new WebProcessor;\n        $logger = new Logger(__METHOD__, array(), array($processor1, $processor2));\n\n        $this->assertEquals($processor1, $logger->popProcessor());\n        $this->assertEquals($processor2, $logger->popProcessor());\n    }\n\n    /**\n     * @covers Monolog\\Logger::pushHandler\n     * @covers Monolog\\Logger::popHandler\n     * @expectedException LogicException\n     */\n    public function testPushPopHandler()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler1 = new TestHandler;\n        $handler2 = new TestHandler;\n\n        $logger->pushHandler($handler1);\n        $logger->pushHandler($handler2);\n\n        $this->assertEquals($handler2, $logger->popHandler());\n        $this->assertEquals($handler1, $logger->popHandler());\n        $logger->popHandler();\n    }\n\n    /**\n     * @covers Monolog\\Logger::setHandlers\n     */\n    public function testSetHandlers()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler1 = new TestHandler;\n        $handler2 = new TestHandler;\n\n        $logger->pushHandler($handler1);\n        $logger->setHandlers(array($handler2));\n\n        // handler1 has been removed\n        $this->assertEquals(array($handler2), $logger->getHandlers());\n\n        $logger->setHandlers(array(\n            \"AMapKey\" => $handler1,\n            \"Woop\" => $handler2,\n        ));\n\n        // Keys have been scrubbed\n        $this->assertEquals(array($handler1, $handler2), $logger->getHandlers());\n    }\n\n    /**\n     * @covers Monolog\\Logger::pushProcessor\n     * @covers Monolog\\Logger::popProcessor\n     * @expectedException LogicException\n     */\n    public function testPushPopProcessor()\n    {\n        $logger = new Logger(__METHOD__);\n        $processor1 = new WebProcessor;\n        $processor2 = new WebProcessor;\n\n        $logger->pushProcessor($processor1);\n        $logger->pushProcessor($processor2);\n\n        $this->assertEquals($processor2, $logger->popProcessor());\n        $this->assertEquals($processor1, $logger->popProcessor());\n        $logger->popProcessor();\n    }\n\n    /**\n     * @covers Monolog\\Logger::pushProcessor\n     * @expectedException InvalidArgumentException\n     */\n    public function testPushProcessorWithNonCallable()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $logger->pushProcessor(new \\stdClass());\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testProcessorsAreExecuted()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler = new TestHandler;\n        $logger->pushHandler($handler);\n        $logger->pushProcessor(function ($record) {\n            $record['extra']['win'] = true;\n\n            return $record;\n        });\n        $logger->addError('test');\n        list($record) = $handler->getRecords();\n        $this->assertTrue($record['extra']['win']);\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testProcessorsAreCalledOnlyOnce()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler->expects($this->any())\n            ->method('handle')\n            ->will($this->returnValue(true))\n        ;\n        $logger->pushHandler($handler);\n\n        $processor = $this->getMockBuilder('Monolog\\Processor\\WebProcessor')\n            ->disableOriginalConstructor()\n            ->setMethods(array('__invoke'))\n            ->getMock()\n        ;\n        $processor->expects($this->once())\n            ->method('__invoke')\n            ->will($this->returnArgument(0))\n        ;\n        $logger->pushProcessor($processor);\n\n        $logger->addError('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testProcessorsNotCalledWhenNotHandled()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler->expects($this->once())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n        $logger->pushHandler($handler);\n        $that = $this;\n        $logger->pushProcessor(function ($record) use ($that) {\n            $that->fail('The processor should not be called');\n        });\n        $logger->addAlert('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testHandlersNotCalledBeforeFirstHandling()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler1 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler1->expects($this->never())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n        $handler1->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n        $logger->pushHandler($handler1);\n\n        $handler2 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler2->expects($this->once())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler2->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n        $logger->pushHandler($handler2);\n\n        $handler3 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler3->expects($this->once())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n        $handler3->expects($this->never())\n            ->method('handle')\n        ;\n        $logger->pushHandler($handler3);\n\n        $logger->debug('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testHandlersNotCalledBeforeFirstHandlingWithAssocArray()\n    {\n        $handler1 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler1->expects($this->never())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n        $handler1->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n\n        $handler2 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler2->expects($this->once())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler2->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n\n        $handler3 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler3->expects($this->once())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n        $handler3->expects($this->never())\n            ->method('handle')\n        ;\n\n        $logger = new Logger(__METHOD__, array('last' => $handler3, 'second' => $handler2, 'first' => $handler1));\n\n        $logger->debug('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testBubblingWhenTheHandlerReturnsFalse()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler1 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler1->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler1->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n        $logger->pushHandler($handler1);\n\n        $handler2 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler2->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler2->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(false))\n        ;\n        $logger->pushHandler($handler2);\n\n        $logger->debug('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testNotBubblingWhenTheHandlerReturnsTrue()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler1 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler1->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler1->expects($this->never())\n            ->method('handle')\n        ;\n        $logger->pushHandler($handler1);\n\n        $handler2 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler2->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler2->expects($this->once())\n            ->method('handle')\n            ->will($this->returnValue(true))\n        ;\n        $logger->pushHandler($handler2);\n\n        $logger->debug('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::isHandling\n     */\n    public function testIsHandling()\n    {\n        $logger = new Logger(__METHOD__);\n\n        $handler1 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler1->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(false))\n        ;\n\n        $logger->pushHandler($handler1);\n        $this->assertFalse($logger->isHandling(Logger::DEBUG));\n\n        $handler2 = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler2->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n\n        $logger->pushHandler($handler2);\n        $this->assertTrue($logger->isHandling(Logger::DEBUG));\n    }\n\n    /**\n     * @dataProvider logMethodProvider\n     * @covers Monolog\\Logger::addDebug\n     * @covers Monolog\\Logger::addInfo\n     * @covers Monolog\\Logger::addNotice\n     * @covers Monolog\\Logger::addWarning\n     * @covers Monolog\\Logger::addError\n     * @covers Monolog\\Logger::addCritical\n     * @covers Monolog\\Logger::addAlert\n     * @covers Monolog\\Logger::addEmergency\n     * @covers Monolog\\Logger::debug\n     * @covers Monolog\\Logger::info\n     * @covers Monolog\\Logger::notice\n     * @covers Monolog\\Logger::warn\n     * @covers Monolog\\Logger::err\n     * @covers Monolog\\Logger::crit\n     * @covers Monolog\\Logger::alert\n     * @covers Monolog\\Logger::emerg\n     */\n    public function testLogMethods($method, $expectedLevel)\n    {\n        $logger = new Logger('foo');\n        $handler = new TestHandler;\n        $logger->pushHandler($handler);\n        $logger->{$method}('test');\n        list($record) = $handler->getRecords();\n        $this->assertEquals($expectedLevel, $record['level']);\n    }\n\n    public function logMethodProvider()\n    {\n        return array(\n            // monolog methods\n            array('addDebug',     Logger::DEBUG),\n            array('addInfo',      Logger::INFO),\n            array('addNotice',    Logger::NOTICE),\n            array('addWarning',   Logger::WARNING),\n            array('addError',     Logger::ERROR),\n            array('addCritical',  Logger::CRITICAL),\n            array('addAlert',     Logger::ALERT),\n            array('addEmergency', Logger::EMERGENCY),\n\n            // ZF/Sf2 compat methods\n            array('debug',  Logger::DEBUG),\n            array('info',   Logger::INFO),\n            array('notice', Logger::NOTICE),\n            array('warn',   Logger::WARNING),\n            array('err',    Logger::ERROR),\n            array('crit',   Logger::CRITICAL),\n            array('alert',  Logger::ALERT),\n            array('emerg',  Logger::EMERGENCY),\n        );\n    }\n\n    /**\n     * @dataProvider setTimezoneProvider\n     * @covers Monolog\\Logger::setTimezone\n     */\n    public function testSetTimezone($tz)\n    {\n        Logger::setTimezone($tz);\n        $logger = new Logger('foo');\n        $handler = new TestHandler;\n        $logger->pushHandler($handler);\n        $logger->info('test');\n        list($record) = $handler->getRecords();\n        $this->assertEquals($tz, $record['datetime']->getTimezone());\n    }\n\n    public function setTimezoneProvider()\n    {\n        return array_map(\n            function ($tz) { return array(new \\DateTimeZone($tz)); },\n            \\DateTimeZone::listIdentifiers()\n        );\n    }\n\n    /**\n     * @dataProvider useMicrosecondTimestampsProvider\n     * @covers Monolog\\Logger::useMicrosecondTimestamps\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testUseMicrosecondTimestamps($micro, $assert)\n    {\n        $logger = new Logger('foo');\n        $logger->useMicrosecondTimestamps($micro);\n        $handler = new TestHandler;\n        $logger->pushHandler($handler);\n        $logger->info('test');\n        list($record) = $handler->getRecords();\n        $this->{$assert}('000000', $record['datetime']->format('u'));\n    }\n\n    public function useMicrosecondTimestampsProvider()\n    {\n        return array(\n            // this has a very small chance of a false negative (1/10^6)\n            'with microseconds' => array(true, 'assertNotSame'),\n            'without microseconds' => array(false, PHP_VERSION_ID >= 70100 ? 'assertNotSame' : 'assertSame'),\n        );\n    }\n\n    /**\n     * @covers Monolog\\Logger::setExceptionHandler\n     */\n    public function testSetExceptionHandler()\n    {\n        $logger = new Logger(__METHOD__);\n        $this->assertNull($logger->getExceptionHandler());\n        $callback = function ($ex) {\n        };\n        $logger->setExceptionHandler($callback);\n        $this->assertEquals($callback, $logger->getExceptionHandler());\n    }\n\n    /**\n     * @covers Monolog\\Logger::setExceptionHandler\n     * @expectedException InvalidArgumentException\n     */\n    public function testBadExceptionHandlerType()\n    {\n        $logger = new Logger(__METHOD__);\n        $logger->setExceptionHandler(false);\n    }\n\n    /**\n     * @covers Monolog\\Logger::handleException\n     * @expectedException Exception\n     */\n    public function testDefaultHandleException()\n    {\n        $logger = new Logger(__METHOD__);\n        $handler = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler->expects($this->any())\n            ->method('handle')\n            ->will($this->throwException(new \\Exception('Some handler exception')))\n        ;\n        $logger->pushHandler($handler);\n        $logger->info('test');\n    }\n\n    /**\n     * @covers Monolog\\Logger::handleException\n     * @covers Monolog\\Logger::addRecord\n     */\n    public function testCustomHandleException()\n    {\n        $logger = new Logger(__METHOD__);\n        $that = $this;\n        $logger->setExceptionHandler(function ($e, $record) use ($that) {\n            $that->assertEquals($e->getMessage(), 'Some handler exception');\n            $that->assertTrue(is_array($record));\n            $that->assertEquals($record['message'], 'test');\n        });\n        $handler = $this->getMock('Monolog\\Handler\\HandlerInterface');\n        $handler->expects($this->any())\n            ->method('isHandling')\n            ->will($this->returnValue(true))\n        ;\n        $handler->expects($this->any())\n            ->method('handle')\n            ->will($this->throwException(new \\Exception('Some handler exception')))\n        ;\n        $logger->pushHandler($handler);\n        $logger->info('test');\n    }\n\n    public function testReset()\n    {\n        $logger = new Logger('app');\n\n        $testHandler = new Handler\\TestHandler();\n        $bufferHandler = new Handler\\BufferHandler($testHandler);\n        $groupHandler = new Handler\\GroupHandler(array($bufferHandler));\n        $fingersCrossedHandler = new Handler\\FingersCrossedHandler($groupHandler);\n\n        $logger->pushHandler($fingersCrossedHandler);\n\n        $processorUid1 = new Processor\\UidProcessor(10);\n        $uid1 = $processorUid1->getUid();\n        $groupHandler->pushProcessor($processorUid1);\n\n        $processorUid2 = new Processor\\UidProcessor(5);\n        $uid2 = $processorUid2->getUid();\n        $logger->pushProcessor($processorUid2);\n\n        $getProperty = function ($object, $property) {\n            $reflectionProperty = new \\ReflectionProperty(get_class($object), $property);\n            $reflectionProperty->setAccessible(true);\n\n            return $reflectionProperty->getValue($object);\n        };\n        $that = $this;\n        $assertBufferOfBufferHandlerEmpty = function () use ($getProperty, $bufferHandler, $that) {\n            $that->assertEmpty($getProperty($bufferHandler, 'buffer'));\n        };\n        $assertBuffersEmpty = function() use ($assertBufferOfBufferHandlerEmpty, $getProperty, $fingersCrossedHandler, $that) {\n            $assertBufferOfBufferHandlerEmpty();\n            $that->assertEmpty($getProperty($fingersCrossedHandler, 'buffer'));\n        };\n\n        $logger->debug('debug');\n        $logger->reset();\n        $assertBuffersEmpty();\n        $this->assertFalse($testHandler->hasDebugRecords());\n        $this->assertFalse($testHandler->hasErrorRecords());\n        $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());\n        $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());\n\n        $logger->debug('debug');\n        $logger->error('error');\n        $logger->reset();\n        $assertBuffersEmpty();\n        $this->assertTrue($testHandler->hasDebugRecords());\n        $this->assertTrue($testHandler->hasErrorRecords());\n        $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());\n        $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());\n\n        $logger->info('info');\n        $this->assertNotEmpty($getProperty($fingersCrossedHandler, 'buffer'));\n        $assertBufferOfBufferHandlerEmpty();\n        $this->assertFalse($testHandler->hasInfoRecords());\n\n        $logger->reset();\n        $assertBuffersEmpty();\n        $this->assertFalse($testHandler->hasInfoRecords());\n        $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());\n        $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());\n\n        $logger->notice('notice');\n        $logger->emergency('emergency');\n        $logger->reset();\n        $assertBuffersEmpty();\n        $this->assertFalse($testHandler->hasInfoRecords());\n        $this->assertTrue($testHandler->hasNoticeRecords());\n        $this->assertTrue($testHandler->hasEmergencyRecords());\n        $this->assertNotSame($uid1, $processorUid1->getUid());\n        $this->assertNotSame($uid2, $processorUid2->getUid());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/GitProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass GitProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\GitProcessor::__invoke\n     */\n    public function testProcessor()\n    {\n        $processor = new GitProcessor();\n        $record = $processor($this->getRecord());\n\n        $this->assertArrayHasKey('git', $record['extra']);\n        $this->assertTrue(!is_array($record['extra']['git']['branch']));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/IntrospectionProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Acme;\n\nclass Tester\n{\n    public function test($handler, $record)\n    {\n        $handler->handle($record);\n    }\n}\n\nfunction tester($handler, $record)\n{\n    $handler->handle($record);\n}\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\Logger;\nuse Monolog\\TestCase;\nuse Monolog\\Handler\\TestHandler;\n\nclass IntrospectionProcessorTest extends TestCase\n{\n    public function getHandler()\n    {\n        $processor = new IntrospectionProcessor();\n        $handler = new TestHandler();\n        $handler->pushProcessor($processor);\n\n        return $handler;\n    }\n\n    public function testProcessorFromClass()\n    {\n        $handler = $this->getHandler();\n        $tester = new \\Acme\\Tester;\n        $tester->test($handler, $this->getRecord());\n        list($record) = $handler->getRecords();\n        $this->assertEquals(__FILE__, $record['extra']['file']);\n        $this->assertEquals(18, $record['extra']['line']);\n        $this->assertEquals('Acme\\Tester', $record['extra']['class']);\n        $this->assertEquals('test', $record['extra']['function']);\n    }\n\n    public function testProcessorFromFunc()\n    {\n        $handler = $this->getHandler();\n        \\Acme\\tester($handler, $this->getRecord());\n        list($record) = $handler->getRecords();\n        $this->assertEquals(__FILE__, $record['extra']['file']);\n        $this->assertEquals(24, $record['extra']['line']);\n        $this->assertEquals(null, $record['extra']['class']);\n        $this->assertEquals('Acme\\tester', $record['extra']['function']);\n    }\n\n    public function testLevelTooLow()\n    {\n        $input = array(\n            'level' => Logger::DEBUG,\n            'extra' => array(),\n        );\n\n        $expected = $input;\n\n        $processor = new IntrospectionProcessor(Logger::CRITICAL);\n        $actual = $processor($input);\n\n        $this->assertEquals($expected, $actual);\n    }\n\n    public function testLevelEqual()\n    {\n        $input = array(\n            'level' => Logger::CRITICAL,\n            'extra' => array(),\n        );\n\n        $expected = $input;\n        $expected['extra'] = array(\n            'file' => null,\n            'line' => null,\n            'class' => 'ReflectionMethod',\n            'function' => 'invokeArgs',\n        );\n\n        $processor = new IntrospectionProcessor(Logger::CRITICAL);\n        $actual = $processor($input);\n\n        $this->assertEquals($expected, $actual);\n    }\n\n    public function testLevelHigher()\n    {\n        $input = array(\n            'level' => Logger::EMERGENCY,\n            'extra' => array(),\n        );\n\n        $expected = $input;\n        $expected['extra'] = array(\n            'file' => null,\n            'line' => null,\n            'class' => 'ReflectionMethod',\n            'function' => 'invokeArgs',\n        );\n\n        $processor = new IntrospectionProcessor(Logger::CRITICAL);\n        $actual = $processor($input);\n\n        $this->assertEquals($expected, $actual);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/MemoryPeakUsageProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass MemoryPeakUsageProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\MemoryPeakUsageProcessor::__invoke\n     * @covers Monolog\\Processor\\MemoryProcessor::formatBytes\n     */\n    public function testProcessor()\n    {\n        $processor = new MemoryPeakUsageProcessor();\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('memory_peak_usage', $record['extra']);\n        $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_peak_usage']);\n    }\n\n    /**\n     * @covers Monolog\\Processor\\MemoryPeakUsageProcessor::__invoke\n     * @covers Monolog\\Processor\\MemoryProcessor::formatBytes\n     */\n    public function testProcessorWithoutFormatting()\n    {\n        $processor = new MemoryPeakUsageProcessor(true, false);\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('memory_peak_usage', $record['extra']);\n        $this->assertInternalType('int', $record['extra']['memory_peak_usage']);\n        $this->assertGreaterThan(0, $record['extra']['memory_peak_usage']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/MemoryUsageProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass MemoryUsageProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\MemoryUsageProcessor::__invoke\n     * @covers Monolog\\Processor\\MemoryProcessor::formatBytes\n     */\n    public function testProcessor()\n    {\n        $processor = new MemoryUsageProcessor();\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('memory_usage', $record['extra']);\n        $this->assertRegExp('#[0-9.]+ (M|K)?B$#', $record['extra']['memory_usage']);\n    }\n\n    /**\n     * @covers Monolog\\Processor\\MemoryUsageProcessor::__invoke\n     * @covers Monolog\\Processor\\MemoryProcessor::formatBytes\n     */\n    public function testProcessorWithoutFormatting()\n    {\n        $processor = new MemoryUsageProcessor(true, false);\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('memory_usage', $record['extra']);\n        $this->assertInternalType('int', $record['extra']['memory_usage']);\n        $this->assertGreaterThan(0, $record['extra']['memory_usage']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/MercurialProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jonathan A. Schweder <jonathanschweder@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass MercurialProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\MercurialProcessor::__invoke\n     */\n    public function testProcessor()\n    {\n        if (defined('PHP_WINDOWS_VERSION_BUILD')) {\n            exec(\"where hg 2>NUL\", $output, $result);\n        } else {\n            exec(\"which hg 2>/dev/null >/dev/null\", $output, $result);\n        }\n        if ($result != 0) {\n            $this->markTestSkipped('hg is missing');\n            return;\n        }\n\n        `hg init`;\n        $processor = new MercurialProcessor();\n        $record = $processor($this->getRecord());\n\n        $this->assertArrayHasKey('hg', $record['extra']);\n        $this->assertTrue(!is_array($record['extra']['hg']['branch']));\n        $this->assertTrue(!is_array($record['extra']['hg']['revision']));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/ProcessIdProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass ProcessIdProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\ProcessIdProcessor::__invoke\n     */\n    public function testProcessor()\n    {\n        $processor = new ProcessIdProcessor();\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('process_id', $record['extra']);\n        $this->assertInternalType('int', $record['extra']['process_id']);\n        $this->assertGreaterThan(0, $record['extra']['process_id']);\n        $this->assertEquals(getmypid(), $record['extra']['process_id']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/PsrLogMessageProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nclass PsrLogMessageProcessorTest extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @dataProvider getPairs\n     */\n    public function testReplacement($val, $expected)\n    {\n        $proc = new PsrLogMessageProcessor;\n\n        $message = $proc(array(\n            'message' => '{foo}',\n            'context' => array('foo' => $val),\n        ));\n        $this->assertEquals($expected, $message['message']);\n    }\n\n    public function getPairs()\n    {\n        return array(\n            array('foo',    'foo'),\n            array('3',      '3'),\n            array(3,        '3'),\n            array(null,     ''),\n            array(true,     '1'),\n            array(false,    ''),\n            array(new \\stdClass, '[object stdClass]'),\n            array(array(), '[array]'),\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/TagProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass TagProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\TagProcessor::__invoke\n     */\n    public function testProcessor()\n    {\n        $tags = array(1, 2, 3);\n        $processor = new TagProcessor($tags);\n        $record = $processor($this->getRecord());\n\n        $this->assertEquals($tags, $record['extra']['tags']);\n    }\n\n    /**\n     * @covers Monolog\\Processor\\TagProcessor::__invoke\n     */\n    public function testProcessorTagModification()\n    {\n        $tags = array(1, 2, 3);\n        $processor = new TagProcessor($tags);\n\n        $record = $processor($this->getRecord());\n        $this->assertEquals($tags, $record['extra']['tags']);\n\n        $processor->setTags(array('a', 'b'));\n        $record = $processor($this->getRecord());\n        $this->assertEquals(array('a', 'b'), $record['extra']['tags']);\n\n        $processor->addTags(array('a', 'c', 'foo' => 'bar'));\n        $record = $processor($this->getRecord());\n        $this->assertEquals(array('a', 'b', 'a', 'c', 'foo' => 'bar'), $record['extra']['tags']);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/UidProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass UidProcessorTest extends TestCase\n{\n    /**\n     * @covers Monolog\\Processor\\UidProcessor::__invoke\n     */\n    public function testProcessor()\n    {\n        $processor = new UidProcessor();\n        $record = $processor($this->getRecord());\n        $this->assertArrayHasKey('uid', $record['extra']);\n    }\n\n    public function testGetUid()\n    {\n        $processor = new UidProcessor(10);\n        $this->assertEquals(10, strlen($processor->getUid()));\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/Processor/WebProcessorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog\\Processor;\n\nuse Monolog\\TestCase;\n\nclass WebProcessorTest extends TestCase\n{\n    public function testProcessor()\n    {\n        $server = array(\n            'REQUEST_URI'    => 'A',\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n            'HTTP_REFERER'   => 'D',\n            'SERVER_NAME'    => 'F',\n            'UNIQUE_ID'      => 'G',\n        );\n\n        $processor = new WebProcessor($server);\n        $record = $processor($this->getRecord());\n        $this->assertEquals($server['REQUEST_URI'], $record['extra']['url']);\n        $this->assertEquals($server['REMOTE_ADDR'], $record['extra']['ip']);\n        $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']);\n        $this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']);\n        $this->assertEquals($server['SERVER_NAME'], $record['extra']['server']);\n        $this->assertEquals($server['UNIQUE_ID'], $record['extra']['unique_id']);\n    }\n\n    public function testProcessorDoNothingIfNoRequestUri()\n    {\n        $server = array(\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n        );\n        $processor = new WebProcessor($server);\n        $record = $processor($this->getRecord());\n        $this->assertEmpty($record['extra']);\n    }\n\n    public function testProcessorReturnNullIfNoHttpReferer()\n    {\n        $server = array(\n            'REQUEST_URI'    => 'A',\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n            'SERVER_NAME'    => 'F',\n        );\n        $processor = new WebProcessor($server);\n        $record = $processor($this->getRecord());\n        $this->assertNull($record['extra']['referrer']);\n    }\n\n    public function testProcessorDoesNotAddUniqueIdIfNotPresent()\n    {\n        $server = array(\n            'REQUEST_URI'    => 'A',\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n            'SERVER_NAME'    => 'F',\n        );\n        $processor = new WebProcessor($server);\n        $record = $processor($this->getRecord());\n        $this->assertFalse(isset($record['extra']['unique_id']));\n    }\n\n    public function testProcessorAddsOnlyRequestedExtraFields()\n    {\n        $server = array(\n            'REQUEST_URI'    => 'A',\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n            'SERVER_NAME'    => 'F',\n        );\n\n        $processor = new WebProcessor($server, array('url', 'http_method'));\n        $record = $processor($this->getRecord());\n\n        $this->assertSame(array('url' => 'A', 'http_method' => 'C'), $record['extra']);\n    }\n\n    public function testProcessorConfiguringOfExtraFields()\n    {\n        $server = array(\n            'REQUEST_URI'    => 'A',\n            'REMOTE_ADDR'    => 'B',\n            'REQUEST_METHOD' => 'C',\n            'SERVER_NAME'    => 'F',\n        );\n\n        $processor = new WebProcessor($server, array('url' => 'REMOTE_ADDR'));\n        $record = $processor($this->getRecord());\n\n        $this->assertSame(array('url' => 'B'), $record['extra']);\n    }\n\n    /**\n     * @expectedException UnexpectedValueException\n     */\n    public function testInvalidData()\n    {\n        new WebProcessor(new \\stdClass);\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/PsrLogCompatTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Monolog\\Handler\\TestHandler;\nuse Monolog\\Formatter\\LineFormatter;\nuse Monolog\\Processor\\PsrLogMessageProcessor;\nuse Psr\\Log\\Test\\LoggerInterfaceTest;\n\nclass PsrLogCompatTest extends LoggerInterfaceTest\n{\n    private $handler;\n\n    public function getLogger()\n    {\n        $logger = new Logger('foo');\n        $logger->pushHandler($handler = new TestHandler);\n        $logger->pushProcessor(new PsrLogMessageProcessor);\n        $handler->setFormatter(new LineFormatter('%level_name% %message%'));\n\n        $this->handler = $handler;\n\n        return $logger;\n    }\n\n    public function getLogs()\n    {\n        $convert = function ($record) {\n            $lower = function ($match) {\n                return strtolower($match[0]);\n            };\n\n            return preg_replace_callback('{^[A-Z]+}', $lower, $record['formatted']);\n        };\n\n        return array_map($convert, $this->handler->getRecords());\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/RegistryTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nclass RegistryTest extends \\PHPUnit_Framework_TestCase\n{\n    protected function setUp()\n    {\n        Registry::clear();\n    }\n\n    /**\n     * @dataProvider hasLoggerProvider\n     * @covers Monolog\\Registry::hasLogger\n     */\n    public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult)\n    {\n        foreach ($loggersToAdd as $loggerToAdd) {\n            Registry::addLogger($loggerToAdd);\n        }\n        foreach ($loggersToCheck as $index => $loggerToCheck) {\n            $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck));\n        }\n    }\n\n    public function hasLoggerProvider()\n    {\n        $logger1 = new Logger('test1');\n        $logger2 = new Logger('test2');\n        $logger3 = new Logger('test3');\n\n        return array(\n            // only instances\n            array(\n                array($logger1),\n                array($logger1, $logger2),\n                array(true, false),\n            ),\n            // only names\n            array(\n                array($logger1),\n                array('test1', 'test2'),\n                array(true, false),\n            ),\n            // mixed case\n            array(\n                array($logger1, $logger2),\n                array('test1', $logger2, 'test3', $logger3),\n                array(true, true, false, false),\n            ),\n        );\n    }\n\n    /**\n     * @covers Monolog\\Registry::clear\n     */\n    public function testClearClears()\n    {\n        Registry::addLogger(new Logger('test1'), 'log');\n        Registry::clear();\n\n        $this->setExpectedException('\\InvalidArgumentException');\n        Registry::getInstance('log');\n    }\n\n    /**\n     * @dataProvider removedLoggerProvider\n     * @covers Monolog\\Registry::addLogger\n     * @covers Monolog\\Registry::removeLogger\n     */\n    public function testRemovesLogger($loggerToAdd, $remove)\n    {\n        Registry::addLogger($loggerToAdd);\n        Registry::removeLogger($remove);\n\n        $this->setExpectedException('\\InvalidArgumentException');\n        Registry::getInstance($loggerToAdd->getName());\n    }\n\n    public function removedLoggerProvider()\n    {\n        $logger1 = new Logger('test1');\n\n        return array(\n            array($logger1, $logger1),\n            array($logger1, 'test1'),\n        );\n    }\n\n    /**\n     * @covers Monolog\\Registry::addLogger\n     * @covers Monolog\\Registry::getInstance\n     * @covers Monolog\\Registry::__callStatic\n     */\n    public function testGetsSameLogger()\n    {\n        $logger1 = new Logger('test1');\n        $logger2 = new Logger('test2');\n\n        Registry::addLogger($logger1, 'test1');\n        Registry::addLogger($logger2);\n\n        $this->assertSame($logger1, Registry::getInstance('test1'));\n        $this->assertSame($logger2, Registry::test2());\n    }\n\n    /**\n     * @expectedException \\InvalidArgumentException\n     * @covers Monolog\\Registry::getInstance\n     */\n    public function testFailsOnNonExistantLogger()\n    {\n        Registry::getInstance('test1');\n    }\n\n    /**\n     * @covers Monolog\\Registry::addLogger\n     */\n    public function testReplacesLogger()\n    {\n        $log1 = new Logger('test1');\n        $log2 = new Logger('test2');\n\n        Registry::addLogger($log1, 'log');\n\n        Registry::addLogger($log2, 'log', true);\n\n        $this->assertSame($log2, Registry::getInstance('log'));\n    }\n\n    /**\n     * @expectedException \\InvalidArgumentException\n     * @covers Monolog\\Registry::addLogger\n     */\n    public function testFailsOnUnspecifiedReplacement()\n    {\n        $log1 = new Logger('test1');\n        $log2 = new Logger('test2');\n\n        Registry::addLogger($log1, 'log');\n\n        Registry::addLogger($log2, 'log');\n    }\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/SignalHandlerTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nuse Monolog\\Handler\\StreamHandler;\nuse Monolog\\Handler\\TestHandler;\nuse Psr\\Log\\LogLevel;\n\n/**\n * @author Robert Gust-Bardon <robert@gust-bardon.org>\n * @covers Monolog\\SignalHandler\n */\nclass SignalHandlerTest extends TestCase\n{\n\n    private $asyncSignalHandling;\n    private $blockedSignals;\n    private $signalHandlers;\n\n    protected function setUp()\n    {\n        $this->signalHandlers = array();\n        if (extension_loaded('pcntl')) {\n            if (function_exists('pcntl_async_signals')) {\n                $this->asyncSignalHandling = pcntl_async_signals();\n            }\n            if (function_exists('pcntl_sigprocmask')) {\n                pcntl_sigprocmask(SIG_BLOCK, array(), $this->blockedSignals);\n            }\n        }\n    }\n\n    protected function tearDown()\n    {\n        if ($this->asyncSignalHandling !== null) {\n            pcntl_async_signals($this->asyncSignalHandling);\n        }\n        if ($this->blockedSignals !== null) {\n            pcntl_sigprocmask(SIG_SETMASK, $this->blockedSignals);\n        }\n        if ($this->signalHandlers) {\n            pcntl_signal_dispatch();\n            foreach ($this->signalHandlers as $signo => $handler) {\n                pcntl_signal($signo, $handler);\n            }\n        }\n    }\n\n    private function setSignalHandler($signo, $handler = SIG_DFL) {\n        if (function_exists('pcntl_signal_get_handler')) {\n            $this->signalHandlers[$signo] = pcntl_signal_get_handler($signo);\n        } else {\n            $this->signalHandlers[$signo] = SIG_DFL;\n        }\n        $this->assertTrue(pcntl_signal($signo, $handler));\n    }\n\n    public function testHandleSignal()\n    {\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new SignalHandler($logger);\n        $signo = 2;  // SIGINT.\n        $siginfo = array('signo' => $signo, 'errno' => 0, 'code' => 0);\n        $errHandler->handleSignal($signo, $siginfo);\n        $this->assertCount(1, $handler->getRecords());\n        $this->assertTrue($handler->hasCriticalRecords());\n        $records = $handler->getRecords();\n        $this->assertSame($siginfo, $records[0]['context']);\n    }\n\n    /**\n     * @depends testHandleSignal\n     * @requires extension pcntl\n     * @requires extension posix\n     * @requires function pcntl_signal\n     * @requires function pcntl_signal_dispatch\n     * @requires function posix_getpid\n     * @requires function posix_kill\n     */\n    public function testRegisterSignalHandler()\n    {\n        // SIGCONT and SIGURG should be ignored by default.\n        if (!defined('SIGCONT') || !defined('SIGURG')) {\n            $this->markTestSkipped('This test requires the SIGCONT and SIGURG pcntl constants.');\n        }\n\n        $this->setSignalHandler(SIGCONT, SIG_IGN);\n        $this->setSignalHandler(SIGURG, SIG_IGN);\n\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new SignalHandler($logger);\n        $pid = posix_getpid();\n\n        $this->assertTrue(posix_kill($pid, SIGURG));\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount(0, $handler->getRecords());\n\n        $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, false, false);\n\n        $this->assertTrue(posix_kill($pid, SIGCONT));\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount(0, $handler->getRecords());\n\n        $this->assertTrue(posix_kill($pid, SIGURG));\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount(1, $handler->getRecords());\n        $this->assertTrue($handler->hasInfoThatContains('SIGURG'));\n    }\n\n    /**\n     * @dataProvider defaultPreviousProvider\n     * @depends testRegisterSignalHandler\n     * @requires function pcntl_fork\n     * @requires function pcntl_sigprocmask\n     * @requires function pcntl_waitpid\n     */\n    public function testRegisterDefaultPreviousSignalHandler($signo, $callPrevious, $expected)\n    {\n        $this->setSignalHandler($signo, SIG_DFL);\n\n        $path = tempnam(sys_get_temp_dir(), 'monolog-');\n        $this->assertNotFalse($path);\n\n        $pid = pcntl_fork();\n        if ($pid === 0) {  // Child.\n            $streamHandler = new StreamHandler($path);\n            $streamHandler->setFormatter($this->getIdentityFormatter());\n            $logger = new Logger('test', array($streamHandler));\n            $errHandler = new SignalHandler($logger);\n            $errHandler->registerSignalHandler($signo, LogLevel::INFO, $callPrevious, false, false);\n            pcntl_sigprocmask(SIG_SETMASK, array(SIGCONT));\n            posix_kill(posix_getpid(), $signo);\n            pcntl_signal_dispatch();\n            // If $callPrevious is true, SIGINT should terminate by this line.\n            pcntl_sigprocmask(SIG_BLOCK, array(), $oldset);\n            file_put_contents($path, implode(' ', $oldset), FILE_APPEND);\n            posix_kill(posix_getpid(), $signo);\n            pcntl_signal_dispatch();\n            exit();\n        }\n\n        $this->assertNotSame(-1, $pid);\n        $this->assertNotSame(-1, pcntl_waitpid($pid, $status));\n        $this->assertNotSame(-1, $status);\n        $this->assertSame($expected, file_get_contents($path));\n    }\n\n    public function defaultPreviousProvider()\n    {\n        if (!defined('SIGCONT') || !defined('SIGINT') || !defined('SIGURG')) {\n            return array();\n        }\n\n        return array(\n            array(SIGINT, false, 'Program received signal SIGINT'.SIGCONT.'Program received signal SIGINT'),\n            array(SIGINT, true, 'Program received signal SIGINT'),\n            array(SIGURG, false, 'Program received signal SIGURG'.SIGCONT.'Program received signal SIGURG'),\n            array(SIGURG, true, 'Program received signal SIGURG'.SIGCONT.'Program received signal SIGURG'),\n        );\n    }\n\n    /**\n     * @dataProvider callablePreviousProvider\n     * @depends testRegisterSignalHandler\n     * @requires function pcntl_signal_get_handler\n     */\n    public function testRegisterCallablePreviousSignalHandler($callPrevious)\n    {\n        $this->setSignalHandler(SIGURG, SIG_IGN);\n\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new SignalHandler($logger);\n        $previousCalled = 0;\n        pcntl_signal(SIGURG, function ($signo, array $siginfo = null) use (&$previousCalled) {\n            ++$previousCalled;\n        });\n        $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, $callPrevious, false, false);\n        $this->assertTrue(posix_kill(posix_getpid(), SIGURG));\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount(1, $handler->getRecords());\n        $this->assertTrue($handler->hasInfoThatContains('SIGURG'));\n        $this->assertSame($callPrevious ? 1 : 0, $previousCalled);\n    }\n\n    public function callablePreviousProvider()\n    {\n        return array(\n            array(false),\n            array(true),\n        );\n    }\n\n    /**\n     * @dataProvider restartSyscallsProvider\n     * @depends testRegisterDefaultPreviousSignalHandler\n     * @requires function pcntl_fork\n     * @requires function pcntl_waitpid\n     */\n    public function testRegisterSyscallRestartingSignalHandler($restartSyscalls)\n    {\n        $this->setSignalHandler(SIGURG, SIG_IGN);\n\n        $parentPid = posix_getpid();\n        $microtime = microtime(true);\n\n        $pid = pcntl_fork();\n        if ($pid === 0) {  // Child.\n            usleep(100000);\n            posix_kill($parentPid, SIGURG);\n            usleep(100000);\n            exit();\n        }\n\n        $this->assertNotSame(-1, $pid);\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new SignalHandler($logger);\n        $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, $restartSyscalls, false);\n        if ($restartSyscalls) {\n            // pcntl_wait is expected to be restarted after the signal handler.\n            $this->assertNotSame(-1, pcntl_waitpid($pid, $status));\n        } else {\n            // pcntl_wait is expected to be interrupted when the signal handler is invoked.\n            $this->assertSame(-1, pcntl_waitpid($pid, $status));\n        }\n        $this->assertSame($restartSyscalls, microtime(true) - $microtime > 0.15);\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount(1, $handler->getRecords());\n        if ($restartSyscalls) {\n            // The child has already exited.\n            $this->assertSame(-1, pcntl_waitpid($pid, $status));\n        } else {\n            // The child has not exited yet.\n            $this->assertNotSame(-1, pcntl_waitpid($pid, $status));\n        }\n    }\n\n    public function restartSyscallsProvider()\n    {\n        return array(\n            array(false),\n            array(true),\n            array(false),\n            array(true),\n        );\n    }\n\n    /**\n     * @dataProvider asyncProvider\n     * @depends testRegisterDefaultPreviousSignalHandler\n     * @requires function pcntl_async_signals\n     */\n    public function testRegisterAsyncSignalHandler($initialAsync, $desiredAsync, $expectedBefore, $expectedAfter)\n    {\n        $this->setSignalHandler(SIGURG, SIG_IGN);\n        pcntl_async_signals($initialAsync);\n\n        $logger = new Logger('test', array($handler = new TestHandler));\n        $errHandler = new SignalHandler($logger);\n        $errHandler->registerSignalHandler(SIGURG, LogLevel::INFO, false, false, $desiredAsync);\n        $this->assertTrue(posix_kill(posix_getpid(), SIGURG));\n        $this->assertCount($expectedBefore, $handler->getRecords());\n        $this->assertTrue(pcntl_signal_dispatch());\n        $this->assertCount($expectedAfter, $handler->getRecords());\n    }\n\n    public function asyncProvider()\n    {\n        return array(\n            array(false, false, 0, 1),\n            array(false, null, 0, 1),\n            array(false, true, 1, 1),\n            array(true, false, 0, 1),\n            array(true, null, 1, 1),\n            array(true, true, 1, 1),\n        );\n    }\n\n}\n"
  },
  {
    "path": "vendor/monolog/monolog/tests/Monolog/TestCase.php",
    "content": "<?php\n\n/*\n * This file is part of the Monolog package.\n *\n * (c) Jordi Boggiano <j.boggiano@seld.be>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Monolog;\n\nclass TestCase extends \\PHPUnit_Framework_TestCase\n{\n    /**\n     * @return array Record\n     */\n    protected function getRecord($level = Logger::WARNING, $message = 'test', $context = array())\n    {\n        return array(\n            'message' => $message,\n            'context' => $context,\n            'level' => $level,\n            'level_name' => Logger::getLevelName($level),\n            'channel' => 'test',\n            'datetime' => \\DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true))),\n            'extra' => array(),\n        );\n    }\n\n    /**\n     * @return array\n     */\n    protected function getMultipleRecords()\n    {\n        return array(\n            $this->getRecord(Logger::DEBUG, 'debug message 1'),\n            $this->getRecord(Logger::DEBUG, 'debug message 2'),\n            $this->getRecord(Logger::INFO, 'information'),\n            $this->getRecord(Logger::WARNING, 'warning'),\n            $this->getRecord(Logger::ERROR, 'error'),\n        );\n    }\n\n    /**\n     * @return Monolog\\Formatter\\FormatterInterface\n     */\n    protected function getIdentityFormatter()\n    {\n        $formatter = $this->getMock('Monolog\\\\Formatter\\\\FormatterInterface');\n        $formatter->expects($this->any())\n            ->method('format')\n            ->will($this->returnCallback(function ($record) { return $record['message']; }));\n\n        return $formatter;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/.gitattributes",
    "content": "# Auto detect text files and perform LF normalization\n* text=auto\n\n*.png    binary\n\ntests/ export-ignore\nphpunit.xml.dist export-ignore\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/.gitignore",
    "content": "/composer.phar\n/composer.lock\n/vendor/*\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/.scrutinizer.yml",
    "content": "build:\n    environment:\n        variables:\n            COMPOSER_ROOT_VERSION: '1.8.0'\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/.travis.yml",
    "content": "language: php\n\nsudo: false\n\nenv:\n  global:\n    - COMPOSER_ROOT_VERSION=1.8.0\n\nphp:\n  - '7.1'\n  - '7.2'\n  - nightly\n\nmatrix:\n  fast_finish: true\n  include:\n    - php: '7.1'\n      env: COMPOSER_FLAGS=\"--prefer-lowest\"\n  allow_failures:\n    - php: nightly\n\ncache:\n  directories:\n    - $HOME/.composer/cache/files\n\ninstall:\n  - composer update --no-interaction --no-progress --no-suggest --prefer-dist $COMPOSER_FLAGS\n  - wget https://github.com/satooshi/php-coveralls/releases/download/v1.0.0/coveralls.phar\n\nbefore_script:\n  - mkdir -p build/logs\n\nscript:\n  - vendor/bin/phpunit --coverage-clover build/logs/clover.xml\n\nafter_script:\n  - php coveralls.phar -v\n\nnotifications:\n    email: false\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2013 My C-Sense\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/README.md",
    "content": "# DeepCopy\n\nDeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph.\n\n[![Build Status](https://travis-ci.org/myclabs/DeepCopy.png?branch=1.x)](https://travis-ci.org/myclabs/DeepCopy)\n[![Coverage Status](https://coveralls.io/repos/myclabs/DeepCopy/badge.png?branch=1.x)](https://coveralls.io/r/myclabs/DeepCopy?branch=1.x)\n[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/myclabs/DeepCopy/badges/quality-score.png?s=2747100c19b275f93a777e3297c6c12d1b68b934)](https://scrutinizer-ci.com/g/myclabs/DeepCopy/)\n[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy)\n\n\n**You are browsing the 1.x version, this version is in maintenance mode only. Please check the new\n[2.x](https://github.com/myclabs/DeepCopy/tree/2.x) version.**\n\n\n## Table of Contents\n\n1. [How](#how)\n1. [Why](#why)\n    1. [Using simply `clone`](#using-simply-clone)\n    1. [Overridding `__clone()`](#overridding-__clone)\n    1. [With `DeepCopy`](#with-deepcopy)\n1. [How it works](#how-it-works)\n1. [Going further](#going-further)\n    1. [Matchers](#matchers)\n        1. [Property name](#property-name)\n        1. [Specific property](#specific-property)\n        1. [Type](#type)\n    1. [Filters](#filters)\n        1. [`SetNullFilter`](#setnullfilter-filter)\n        1. [`KeepFilter`](#keepfilter-filter)\n        1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter)\n        1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter)\n        1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter)\n        1. [`ReplaceFilter`](#replacefilter-type-filter)\n        1. [`ShallowCopyFilter`](#shallowcopyfilter-type-filter)\n1. [Edge cases](#edge-cases)\n1. [Contributing](#contributing)\n    1. [Tests](#tests)\n\n\n## How?\n\nInstall with Composer:\n\n```json\ncomposer require myclabs/deep-copy\n```\n\nUse simply:\n\n```php\nuse DeepCopy\\DeepCopy;\n\n$copier = new DeepCopy();\n$myCopy = $copier->copy($myObject);\n```\n\n\n## Why?\n\n- How do you create copies of your objects?\n\n```php\n$myCopy = clone $myObject;\n```\n\n- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)?\n\nYou use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior\nyourself.\n\n- But how do you handle **cycles** in the association graph?\n\nNow you're in for a big mess :(\n\n![association graph](doc/graph.png)\n\n\n### Using simply `clone`\n\n![Using clone](doc/clone.png)\n\n\n### Overridding `__clone()`\n\n![Overridding __clone](doc/deep-clone.png)\n\n\n### With `DeepCopy`\n\n![With DeepCopy](doc/deep-copy.png)\n\n\n## How it works\n\nDeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it\nkeeps a hash map of all instances and thus preserves the object graph.\n\nTo use it:\n\n```php\nuse function DeepCopy\\deep_copy;\n\n$copy = deep_copy($var);\n```\n\nAlternatively, you can create your own `DeepCopy` instance to configure it differently for example:\n\n```php\nuse DeepCopy\\DeepCopy;\n\n$copier = new DeepCopy(true);\n\n$copy = $copier->copy($var);\n```\n\nYou may want to roll your own deep copy function:\n\n```php\nnamespace Acme;\n\nuse DeepCopy\\DeepCopy;\n\nfunction deep_copy($var)\n{\n    static $copier = null;\n    \n    if (null === $copier) {\n        $copier = new DeepCopy(true);\n    }\n    \n    return $copier->copy($var);\n}\n```\n\n\n## Going further\n\nYou can add filters to customize the copy process.\n\nThe method to add a filter is `DeepCopy\\DeepCopy::addFilter($filter, $matcher)`,\nwith `$filter` implementing `DeepCopy\\Filter\\Filter`\nand `$matcher` implementing `DeepCopy\\Matcher\\Matcher`.\n\nWe provide some generic filters and matchers.\n\n\n### Matchers\n\n  - `DeepCopy\\Matcher` applies on a object attribute.\n  - `DeepCopy\\TypeMatcher` applies on any element found in graph, including array elements.\n\n\n#### Property name\n\nThe `PropertyNameMatcher` will match a property by its name:\n\n```php\nuse DeepCopy\\Matcher\\PropertyNameMatcher;\n\n// Will apply a filter to any property of any objects named \"id\"\n$matcher = new PropertyNameMatcher('id');\n```\n\n\n#### Specific property\n\nThe `PropertyMatcher` will match a specific property of a specific class:\n\n```php\nuse DeepCopy\\Matcher\\PropertyMatcher;\n\n// Will apply a filter to the property \"id\" of any objects of the class \"MyClass\"\n$matcher = new PropertyMatcher('MyClass', 'id');\n```\n\n\n#### Type\n\nThe `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of\n[gettype()](http://php.net/manual/en/function.gettype.php) function):\n\n```php\nuse DeepCopy\\TypeMatcher\\TypeMatcher;\n\n// Will apply a filter to any object that is an instance of Doctrine\\Common\\Collections\\Collection\n$matcher = new TypeMatcher('Doctrine\\Common\\Collections\\Collection');\n```\n\n\n### Filters\n\n- `DeepCopy\\Filter` applies a transformation to the object attribute matched by `DeepCopy\\Matcher`\n- `DeepCopy\\TypeFilter` applies a transformation to any element matched by `DeepCopy\\TypeMatcher`\n\n\n#### `SetNullFilter` (filter)\n\nLet's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have\nany ID:\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\SetNullFilter;\nuse DeepCopy\\Matcher\\PropertyNameMatcher;\n\n$object = MyClass::load(123);\necho $object->id; // 123\n\n$copier = new DeepCopy();\n$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id'));\n\n$copy = $copier->copy($object);\n\necho $copy->id; // null\n```\n\n\n#### `KeepFilter` (filter)\n\nIf you want a property to remain untouched (for example, an association to an object):\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\KeepFilter;\nuse DeepCopy\\Matcher\\PropertyMatcher;\n\n$copier = new DeepCopy();\n$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category'));\n\n$copy = $copier->copy($object);\n// $copy->category has not been touched\n```\n\n\n#### `DoctrineCollectionFilter` (filter)\n\nIf you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`:\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\Doctrine\\DoctrineCollectionFilter;\nuse DeepCopy\\Matcher\\PropertyTypeMatcher;\n\n$copier = new DeepCopy();\n$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\\Common\\Collections\\Collection'));\n\n$copy = $copier->copy($object);\n```\n\n\n#### `DoctrineEmptyCollectionFilter` (filter)\n\nIf you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the\n`DoctrineEmptyCollectionFilter`\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\Doctrine\\DoctrineEmptyCollectionFilter;\nuse DeepCopy\\Matcher\\PropertyMatcher;\n\n$copier = new DeepCopy();\n$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty'));\n\n$copy = $copier->copy($object);\n\n// $copy->myProperty will return an empty collection\n```\n\n\n#### `DoctrineProxyFilter` (filter)\n\nIf you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a\nDoctrine proxy class (...\\\\\\_\\_CG\\_\\_\\Proxy).\nYou can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class.\n**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded\nbefore other filters are applied!**\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\Doctrine\\DoctrineProxyFilter;\nuse DeepCopy\\Matcher\\Doctrine\\DoctrineProxyMatcher;\n\n$copier = new DeepCopy();\n$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher());\n\n$copy = $copier->copy($object);\n\n// $copy should now contain a clone of all entities, including those that were not yet fully loaded.\n```\n\n\n#### `ReplaceFilter` (type filter)\n\n1. If you want to replace the value of a property:\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\Filter\\ReplaceFilter;\nuse DeepCopy\\Matcher\\PropertyMatcher;\n\n$copier = new DeepCopy();\n$callback = function ($currentValue) {\n  return $currentValue . ' (copy)'\n};\n$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title'));\n\n$copy = $copier->copy($object);\n\n// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)'\n```\n\n2. If you want to replace whole element:\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\TypeFilter\\ReplaceFilter;\nuse DeepCopy\\TypeMatcher\\TypeMatcher;\n\n$copier = new DeepCopy();\n$callback = function (MyClass $myClass) {\n  return get_class($myClass);\n};\n$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass'));\n\n$copy = $copier->copy([new MyClass, 'some string', new MyClass]);\n\n// $copy will contain ['MyClass', 'some string', 'MyClass']\n```\n\n\nThe `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable.\n\n\n#### `ShallowCopyFilter` (type filter)\n\nStop *DeepCopy* from recursively copying element, using standard `clone` instead:\n\n```php\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\TypeFilter\\ShallowCopyFilter;\nuse DeepCopy\\TypeMatcher\\TypeMatcher;\nuse Mockery as m;\n\n$this->deepCopy = new DeepCopy();\n$this->deepCopy->addTypeFilter(\n\tnew ShallowCopyFilter,\n\tnew TypeMatcher(m\\MockInterface::class)\n);\n\n$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class));\n// All mocks will be just cloned, not deep copied\n```\n\n\n## Edge cases\n\nThe following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are\nnot applied. There is two ways for you to handle them:\n\n- Implement your own `__clone()` method\n- Use a filter with a type matcher\n\n\n## Contributing\n\nDeepCopy is distributed under the MIT license.\n\n\n### Tests\n\nRunning the tests is simple:\n\n```php\nvendor/bin/phpunit\n```\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/composer.json",
    "content": "{\n    \"name\": \"myclabs/deep-copy\",\n    \"type\": \"library\",\n    \"description\": \"Create deep copies (clones) of your objects\",\n    \"keywords\": [\"clone\", \"copy\", \"duplicate\", \"object\", \"object graph\"],\n    \"license\": \"MIT\",\n\n    \"autoload\": {\n        \"psr-4\": {\n            \"DeepCopy\\\\\": \"src/DeepCopy/\"\n        },\n        \"files\": [\n            \"src/DeepCopy/deep_copy.php\"\n        ]\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"DeepCopy\\\\\": \"fixtures/\",\n            \"DeepCopyTest\\\\\": \"tests/DeepCopyTest/\"\n        }\n    },\n\n    \"require\": {\n        \"php\": \"^7.1\"\n    },\n    \"require-dev\": {\n        \"doctrine/collections\": \"^1.0\",\n        \"doctrine/common\": \"^2.6\",\n        \"phpunit/phpunit\": \"^7.1\"\n    },\n    \"replace\": {\n        \"myclabs/deep-copy\": \"self.version\"\n    },\n\n    \"config\": {\n        \"sort-packages\": true\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f001/A.php",
    "content": "<?php\n\nnamespace DeepCopy\\f001;\n\nclass A\n{\n    private $aProp;\n\n    public function getAProp()\n    {\n        return $this->aProp;\n    }\n\n    public function setAProp($prop)\n    {\n        $this->aProp = $prop;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f001/B.php",
    "content": "<?php\n\nnamespace DeepCopy\\f001;\n\nclass B extends A\n{\n    private $bProp;\n\n    public function getBProp()\n    {\n        return $this->bProp;\n    }\n\n    public function setBProp($prop)\n    {\n        $this->bProp = $prop;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f002/A.php",
    "content": "<?php\n\nnamespace DeepCopy\\f002;\n\nclass A\n{\n    private $prop1;\n    private $prop2;\n\n    public function getProp1()\n    {\n        return $this->prop1;\n    }\n\n    public function setProp1($prop)\n    {\n        $this->prop1 = $prop;\n\n        return $this;\n    }\n\n    public function getProp2()\n    {\n        return $this->prop2;\n    }\n\n    public function setProp2($prop)\n    {\n        $this->prop2 = $prop;\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f003/Foo.php",
    "content": "<?php\n\nnamespace DeepCopy\\f003;\n\nclass Foo\n{\n    private $name;\n    private $prop;\n\n    public function __construct($name)\n    {\n        $this->name = $name;\n    }\n\n    public function getProp()\n    {\n        return $this->prop;\n    }\n\n    public function setProp($prop)\n    {\n        $this->prop = $prop;\n\n        return $this;\n    }\n}"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php",
    "content": "<?php\n\nnamespace DeepCopy\\f004;\n\nuse BadMethodCallException;\n\nclass UnclonableItem\n{\n    private function __clone()\n    {\n        throw new BadMethodCallException('Unsupported call.');\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f005/Foo.php",
    "content": "<?php\n\nnamespace DeepCopy\\f005;\n\nclass Foo\n{\n    public $cloned = false;\n\n    public function __clone()\n    {\n        $this->cloned = true;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f006/A.php",
    "content": "<?php\n\nnamespace DeepCopy\\f006;\n\nclass A\n{\n    public $cloned = false;\n    private $aProp;\n\n    public function getAProp()\n    {\n        return $this->aProp;\n    }\n\n    public function setAProp($prop)\n    {\n        $this->aProp = $prop;\n\n        return $this;\n    }\n\n    public function __clone()\n    {\n        $this->cloned = true;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f006/B.php",
    "content": "<?php\n\nnamespace DeepCopy\\f006;\n\nclass B\n{\n    public $cloned = false;\n    private $bProp;\n\n    public function getBProp()\n    {\n        return $this->bProp;\n    }\n\n    public function setBProp($prop)\n    {\n        $this->bProp = $prop;\n\n        return $this;\n    }\n\n    public function __clone()\n    {\n        $this->cloned = true;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php",
    "content": "<?php\n\nnamespace DeepCopy\\f007;\n\nuse DateInterval;\n\nclass FooDateInterval extends DateInterval\n{\n    public $cloned = false;\n\n    public function __clone()\n    {\n        $this->cloned = true;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php",
    "content": "<?php\n\nnamespace DeepCopy\\f007;\n\nuse DateTimeZone;\n\nclass FooDateTimeZone extends DateTimeZone\n{\n    public $cloned = false;\n\n    public function __clone()\n    {\n        $this->cloned = true;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f008/A.php",
    "content": "<?php\n\nnamespace DeepCopy\\f008;\n\nclass A\n{\n    private $foo;\n\n    public function __construct($foo)\n    {\n        $this->foo = $foo;\n    }\n\n    public function getFoo()\n    {\n        return $this->foo;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/fixtures/f008/B.php",
    "content": "<?php\n\nnamespace DeepCopy\\f008;\n\nclass B extends A\n{\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php",
    "content": "<?php\n\nnamespace DeepCopy;\n\nuse DateInterval;\nuse DateTimeInterface;\nuse DateTimeZone;\nuse DeepCopy\\Exception\\CloneException;\nuse DeepCopy\\Filter\\Filter;\nuse DeepCopy\\Matcher\\Matcher;\nuse DeepCopy\\TypeFilter\\Date\\DateIntervalFilter;\nuse DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter;\nuse DeepCopy\\TypeFilter\\TypeFilter;\nuse DeepCopy\\TypeMatcher\\TypeMatcher;\nuse ReflectionObject;\nuse ReflectionProperty;\nuse DeepCopy\\Reflection\\ReflectionHelper;\nuse SplDoublyLinkedList;\n\n/**\n * @final\n */\nclass DeepCopy\n{\n    /**\n     * @var object[] List of objects copied.\n     */\n    private $hashMap = [];\n\n    /**\n     * Filters to apply.\n     *\n     * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.\n     */\n    private $filters = [];\n\n    /**\n     * Type Filters to apply.\n     *\n     * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.\n     */\n    private $typeFilters = [];\n\n    /**\n     * @var bool\n     */\n    private $skipUncloneable = false;\n\n    /**\n     * @var bool\n     */\n    private $useCloneMethod;\n\n    /**\n     * @param bool $useCloneMethod   If set to true, when an object implements the __clone() function, it will be used\n     *                               instead of the regular deep cloning.\n     */\n    public function __construct($useCloneMethod = false)\n    {\n        $this->useCloneMethod = $useCloneMethod;\n\n        $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class));\n        $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class));\n    }\n\n    /**\n     * If enabled, will not throw an exception when coming across an uncloneable property.\n     *\n     * @param $skipUncloneable\n     *\n     * @return $this\n     */\n    public function skipUncloneable($skipUncloneable = true)\n    {\n        $this->skipUncloneable = $skipUncloneable;\n\n        return $this;\n    }\n\n    /**\n     * Deep copies the given object.\n     *\n     * @param mixed $object\n     *\n     * @return mixed\n     */\n    public function copy($object)\n    {\n        $this->hashMap = [];\n\n        return $this->recursiveCopy($object);\n    }\n\n    public function addFilter(Filter $filter, Matcher $matcher)\n    {\n        $this->filters[] = [\n            'matcher' => $matcher,\n            'filter'  => $filter,\n        ];\n    }\n\n    public function prependFilter(Filter $filter, Matcher $matcher)\n    {\n        array_unshift($this->filters, [\n            'matcher' => $matcher,\n            'filter'  => $filter,\n        ]);\n    }\n\n    public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher)\n    {\n        $this->typeFilters[] = [\n            'matcher' => $matcher,\n            'filter'  => $filter,\n        ];\n    }\n\n    private function recursiveCopy($var)\n    {\n        // Matches Type Filter\n        if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) {\n            return $filter->apply($var);\n        }\n\n        // Resource\n        if (is_resource($var)) {\n            return $var;\n        }\n\n        // Array\n        if (is_array($var)) {\n            return $this->copyArray($var);\n        }\n\n        // Scalar\n        if (! is_object($var)) {\n            return $var;\n        }\n\n        // Object\n        return $this->copyObject($var);\n    }\n\n    /**\n     * Copy an array\n     * @param array $array\n     * @return array\n     */\n    private function copyArray(array $array)\n    {\n        foreach ($array as $key => $value) {\n            $array[$key] = $this->recursiveCopy($value);\n        }\n\n        return $array;\n    }\n\n    /**\n     * Copies an object.\n     *\n     * @param object $object\n     *\n     * @throws CloneException\n     *\n     * @return object\n     */\n    private function copyObject($object)\n    {\n        $objectHash = spl_object_hash($object);\n\n        if (isset($this->hashMap[$objectHash])) {\n            return $this->hashMap[$objectHash];\n        }\n\n        $reflectedObject = new ReflectionObject($object);\n        $isCloneable = $reflectedObject->isCloneable();\n\n        if (false === $isCloneable) {\n            if ($this->skipUncloneable) {\n                $this->hashMap[$objectHash] = $object;\n\n                return $object;\n            }\n\n            throw new CloneException(\n                sprintf(\n                    'The class \"%s\" is not cloneable.',\n                    $reflectedObject->getName()\n                )\n            );\n        }\n\n        $newObject = clone $object;\n        $this->hashMap[$objectHash] = $newObject;\n\n        if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) {\n            return $newObject;\n        }\n\n        if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) {\n            return $newObject;\n        }\n\n        foreach (ReflectionHelper::getProperties($reflectedObject) as $property) {\n            $this->copyObjectProperty($newObject, $property);\n        }\n\n        return $newObject;\n    }\n\n    private function copyObjectProperty($object, ReflectionProperty $property)\n    {\n        // Ignore static properties\n        if ($property->isStatic()) {\n            return;\n        }\n\n        // Apply the filters\n        foreach ($this->filters as $item) {\n            /** @var Matcher $matcher */\n            $matcher = $item['matcher'];\n            /** @var Filter $filter */\n            $filter = $item['filter'];\n\n            if ($matcher->matches($object, $property->getName())) {\n                $filter->apply(\n                    $object,\n                    $property->getName(),\n                    function ($object) {\n                        return $this->recursiveCopy($object);\n                    }\n                );\n\n                // If a filter matches, we stop processing this property\n                return;\n            }\n        }\n\n        $property->setAccessible(true);\n        $propertyValue = $property->getValue($object);\n\n        // Copy the property\n        $property->setValue($object, $this->recursiveCopy($propertyValue));\n    }\n\n    /**\n     * Returns first filter that matches variable, `null` if no such filter found.\n     *\n     * @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and\n     *                             'matcher' with value of type {@see TypeMatcher}\n     * @param mixed $var\n     *\n     * @return TypeFilter|null\n     */\n    private function getFirstMatchedTypeFilter(array $filterRecords, $var)\n    {\n        $matched = $this->first(\n            $filterRecords,\n            function (array $record) use ($var) {\n                /* @var TypeMatcher $matcher */\n                $matcher = $record['matcher'];\n\n                return $matcher->matches($var);\n            }\n        );\n\n        return isset($matched) ? $matched['filter'] : null;\n    }\n\n    /**\n     * Returns first element that matches predicate, `null` if no such element found.\n     *\n     * @param array    $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs.\n     * @param callable $predicate Predicate arguments are: element.\n     *\n     * @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher'\n     *                    with value of type {@see TypeMatcher} or `null`.\n     */\n    private function first(array $elements, callable $predicate)\n    {\n        foreach ($elements as $element) {\n            if (call_user_func($predicate, $element)) {\n                return $element;\n            }\n        }\n\n        return null;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php",
    "content": "<?php\n\nnamespace DeepCopy\\Exception;\n\nuse UnexpectedValueException;\n\nclass CloneException extends UnexpectedValueException\n{\n} "
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php",
    "content": "<?php\n\nnamespace DeepCopy\\Exception;\n\nuse ReflectionException;\n\nclass PropertyException extends ReflectionException\n{\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter\\Doctrine;\n\nuse DeepCopy\\Filter\\Filter;\nuse DeepCopy\\Reflection\\ReflectionHelper;\n\n/**\n * @final\n */\nclass DoctrineCollectionFilter implements Filter\n{\n    /**\n     * Copies the object property doctrine collection.\n     *\n     * {@inheritdoc}\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        $reflectionProperty = ReflectionHelper::getProperty($object, $property);\n\n        $reflectionProperty->setAccessible(true);\n        $oldCollection = $reflectionProperty->getValue($object);\n\n        $newCollection = $oldCollection->map(\n            function ($item) use ($objectCopier) {\n                return $objectCopier($item);\n            }\n        );\n\n        $reflectionProperty->setValue($object, $newCollection);\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter\\Doctrine;\n\nuse DeepCopy\\Filter\\Filter;\nuse DeepCopy\\Reflection\\ReflectionHelper;\nuse Doctrine\\Common\\Collections\\ArrayCollection;\n\n/**\n * @final\n */\nclass DoctrineEmptyCollectionFilter implements Filter\n{\n    /**\n     * Sets the object property to an empty doctrine collection.\n     *\n     * @param object   $object\n     * @param string   $property\n     * @param callable $objectCopier\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        $reflectionProperty = ReflectionHelper::getProperty($object, $property);\n        $reflectionProperty->setAccessible(true);\n\n        $reflectionProperty->setValue($object, new ArrayCollection());\n    }\n} "
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter\\Doctrine;\n\nuse DeepCopy\\Filter\\Filter;\n\n/**\n * @final\n */\nclass DoctrineProxyFilter implements Filter\n{\n    /**\n     * Triggers the magic method __load() on a Doctrine Proxy class to load the\n     * actual entity from the database.\n     *\n     * {@inheritdoc}\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        $object->__load();\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter;\n\n/**\n * Filter to apply to a property while copying an object\n */\ninterface Filter\n{\n    /**\n     * Applies the filter to the object.\n     *\n     * @param object   $object\n     * @param string   $property\n     * @param callable $objectCopier\n     */\n    public function apply($object, $property, $objectCopier);\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter;\n\nclass KeepFilter implements Filter\n{\n    /**\n     * Keeps the value of the object property.\n     *\n     * {@inheritdoc}\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        // Nothing to do\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter;\n\nuse DeepCopy\\Reflection\\ReflectionHelper;\n\n/**\n * @final\n */\nclass ReplaceFilter implements Filter\n{\n    /**\n     * @var callable\n     */\n    protected $callback;\n\n    /**\n     * @param callable $callable Will be called to get the new value for each property to replace\n     */\n    public function __construct(callable $callable)\n    {\n        $this->callback = $callable;\n    }\n\n    /**\n     * Replaces the object property by the result of the callback called with the object property.\n     *\n     * {@inheritdoc}\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        $reflectionProperty = ReflectionHelper::getProperty($object, $property);\n        $reflectionProperty->setAccessible(true);\n\n        $value = call_user_func($this->callback, $reflectionProperty->getValue($object));\n\n        $reflectionProperty->setValue($object, $value);\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\Filter;\n\nuse DeepCopy\\Reflection\\ReflectionHelper;\n\n/**\n * @final\n */\nclass SetNullFilter implements Filter\n{\n    /**\n     * Sets the object property to null.\n     *\n     * {@inheritdoc}\n     */\n    public function apply($object, $property, $objectCopier)\n    {\n        $reflectionProperty = ReflectionHelper::getProperty($object, $property);\n\n        $reflectionProperty->setAccessible(true);\n        $reflectionProperty->setValue($object, null);\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\Matcher\\Doctrine;\n\nuse DeepCopy\\Matcher\\Matcher;\nuse Doctrine\\Common\\Persistence\\Proxy;\n\n/**\n * @final\n */\nclass DoctrineProxyMatcher implements Matcher\n{\n    /**\n     * Matches a Doctrine Proxy class.\n     *\n     * {@inheritdoc}\n     */\n    public function matches($object, $property)\n    {\n        return $object instanceof Proxy;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\Matcher;\n\ninterface Matcher\n{\n    /**\n     * @param object $object\n     * @param string $property\n     *\n     * @return boolean\n     */\n    public function matches($object, $property);\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\Matcher;\n\n/**\n * @final\n */\nclass PropertyMatcher implements Matcher\n{\n    /**\n     * @var string\n     */\n    private $class;\n\n    /**\n     * @var string\n     */\n    private $property;\n\n    /**\n     * @param string $class    Class name\n     * @param string $property Property name\n     */\n    public function __construct($class, $property)\n    {\n        $this->class = $class;\n        $this->property = $property;\n    }\n\n    /**\n     * Matches a specific property of a specific class.\n     *\n     * {@inheritdoc}\n     */\n    public function matches($object, $property)\n    {\n        return ($object instanceof $this->class) && $property == $this->property;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\Matcher;\n\n/**\n * @final\n */\nclass PropertyNameMatcher implements Matcher\n{\n    /**\n     * @var string\n     */\n    private $property;\n\n    /**\n     * @param string $property Property name\n     */\n    public function __construct($property)\n    {\n        $this->property = $property;\n    }\n\n    /**\n     * Matches a property by its name.\n     *\n     * {@inheritdoc}\n     */\n    public function matches($object, $property)\n    {\n        return $property == $this->property;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\Matcher;\n\nuse DeepCopy\\Reflection\\ReflectionHelper;\nuse ReflectionException;\n\n/**\n * Matches a property by its type.\n *\n * It is recommended to use {@see DeepCopy\\TypeFilter\\TypeFilter} instead, as it applies on all occurrences\n * of given type in copied context (eg. array elements), not just on object properties.\n *\n * @final\n */\nclass PropertyTypeMatcher implements Matcher\n{\n    /**\n     * @var string\n     */\n    private $propertyType;\n\n    /**\n     * @param string $propertyType Property type\n     */\n    public function __construct($propertyType)\n    {\n        $this->propertyType = $propertyType;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function matches($object, $property)\n    {\n        try {\n            $reflectionProperty = ReflectionHelper::getProperty($object, $property);\n        } catch (ReflectionException $exception) {\n            return false;\n        }\n\n        $reflectionProperty->setAccessible(true);\n\n        return $reflectionProperty->getValue($object) instanceof $this->propertyType;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php",
    "content": "<?php\n\nnamespace DeepCopy\\Reflection;\n\nuse DeepCopy\\Exception\\PropertyException;\nuse ReflectionClass;\nuse ReflectionException;\nuse ReflectionObject;\nuse ReflectionProperty;\n\nclass ReflectionHelper\n{\n    /**\n     * Retrieves all properties (including private ones), from object and all its ancestors.\n     *\n     * Standard \\ReflectionClass->getProperties() does not return private properties from ancestor classes.\n     *\n     * @author muratyaman@gmail.com\n     * @see http://php.net/manual/en/reflectionclass.getproperties.php\n     *\n     * @param ReflectionClass $ref\n     *\n     * @return ReflectionProperty[]\n     */\n    public static function getProperties(ReflectionClass $ref)\n    {\n        $props = $ref->getProperties();\n        $propsArr = array();\n\n        foreach ($props as $prop) {\n            $propertyName = $prop->getName();\n            $propsArr[$propertyName] = $prop;\n        }\n\n        if ($parentClass = $ref->getParentClass()) {\n            $parentPropsArr = self::getProperties($parentClass);\n            foreach ($propsArr as $key => $property) {\n                $parentPropsArr[$key] = $property;\n            }\n\n            return $parentPropsArr;\n        }\n\n        return $propsArr;\n    }\n\n    /**\n     * Retrieves property by name from object and all its ancestors.\n     *\n     * @param object|string $object\n     * @param string $name\n     *\n     * @throws PropertyException\n     * @throws ReflectionException\n     *\n     * @return ReflectionProperty\n     */\n    public static function getProperty($object, $name)\n    {\n        $reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object);\n\n        if ($reflection->hasProperty($name)) {\n            return $reflection->getProperty($name);\n        }\n\n        if ($parentClass = $reflection->getParentClass()) {\n            return self::getProperty($parentClass->getName(), $name);\n        }\n\n        throw new PropertyException(\n            sprintf(\n                'The class \"%s\" doesn\\'t have a property with the given name: \"%s\".',\n                is_object($object) ? get_class($object) : $object,\n                $name\n            )\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter\\Date;\n\nuse DateInterval;\nuse DeepCopy\\TypeFilter\\TypeFilter;\n\n/**\n * @final\n *\n * @deprecated Will be removed in 2.0. This filter will no longer be necessary in PHP 7.1+.\n */\nclass DateIntervalFilter implements TypeFilter\n{\n\n    /**\n     * {@inheritdoc}\n     *\n     * @param DateInterval $element\n     *\n     * @see http://news.php.net/php.bugs/205076\n     */\n    public function apply($element)\n    {\n        $copy = new DateInterval('P0D');\n\n        foreach ($element as $propertyName => $propertyValue) {\n            $copy->{$propertyName} = $propertyValue;\n        }\n\n        return $copy;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter;\n\n/**\n * @final\n */\nclass ReplaceFilter implements TypeFilter\n{\n    /**\n     * @var callable\n     */\n    protected $callback;\n\n    /**\n     * @param callable $callable Will be called to get the new value for each element to replace\n     */\n    public function __construct(callable $callable)\n    {\n        $this->callback = $callable;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function apply($element)\n    {\n        return call_user_func($this->callback, $element);\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter;\n\n/**\n * @final\n */\nclass ShallowCopyFilter implements TypeFilter\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function apply($element)\n    {\n        return clone $element;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter\\Spl;\n\n/**\n * @deprecated Use {@see SplDoublyLinkedListFilter} instead.\n */\nclass SplDoublyLinkedList extends SplDoublyLinkedListFilter\n{\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter\\Spl;\n\nuse Closure;\nuse DeepCopy\\DeepCopy;\nuse DeepCopy\\TypeFilter\\TypeFilter;\nuse SplDoublyLinkedList;\n\n/**\n * @final\n */\nclass SplDoublyLinkedListFilter implements TypeFilter\n{\n    private $copier;\n\n    public function __construct(DeepCopy $copier)\n    {\n        $this->copier = $copier;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function apply($element)\n    {\n        $newElement = clone $element;\n\n        $copy = $this->createCopyClosure();\n\n        return $copy($newElement);\n    }\n\n    private function createCopyClosure()\n    {\n        $copier = $this->copier;\n\n        $copy = function (SplDoublyLinkedList $list) use ($copier) {\n            // Replace each element in the list with a deep copy of itself\n            for ($i = 1; $i <= $list->count(); $i++) {\n                $copy = $copier->recursiveCopy($list->shift());\n\n                $list->push($copy);\n            }\n\n            return $list;\n        };\n\n        return Closure::bind($copy, null, DeepCopy::class);\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeFilter;\n\ninterface TypeFilter\n{\n    /**\n     * Applies the filter to the object.\n     *\n     * @param mixed $element\n     */\n    public function apply($element);\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php",
    "content": "<?php\n\nnamespace DeepCopy\\TypeMatcher;\n\nclass TypeMatcher\n{\n    /**\n     * @var string\n     */\n    private $type;\n\n    /**\n     * @param string $type\n     */\n    public function __construct($type)\n    {\n        $this->type = $type;\n    }\n\n    /**\n     * @param mixed $element\n     *\n     * @return boolean\n     */\n    public function matches($element)\n    {\n        return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type;\n    }\n}\n"
  },
  {
    "path": "vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php",
    "content": "<?php\n\nnamespace DeepCopy;\n\nuse function function_exists;\n\nif (false === function_exists('DeepCopy\\deep_copy')) {\n    /**\n     * Deep copies the given value.\n     *\n     * @param mixed $value\n     * @param bool  $useCloneMethod\n     *\n     * @return mixed\n     */\n    function deep_copy($value, $useCloneMethod = false)\n    {\n        return (new DeepCopy($useCloneMethod))->copy($value);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/.github/FUNDING.yml",
    "content": "#github: kylekatarnls, briannesbitt\nopen_collective: Carbon\ntidelift: packagist/nesbot/carbon\n"
  },
  {
    "path": "vendor/nesbot/carbon/.github/ISSUE_TEMPLATE.md",
    "content": "<!--\n    🛑 DON'T REMOVE ME.\n    This issue template apply to all\n      - bug reports,\n      - feature proposals,\n      - and documentation requests\n\n    Having all those informations will allow us to know exactly\n    what you expect and answer you faster and precisely (answer\n    that matches your Carbon version, PHP version and usage).\n    \n    Note: Comments between <!- - and - -> won't appear in the final\n    issue (See [Preview] tab).\n-->\nHello,\n\nI encountered an issue with the following code:\n```php\necho Carbon::parse('2018-06-01')->subDay()->month;\n```\n\nCarbon version: **PUT HERE YOUR CARBON VERSION (exact version, not the range)**\n\nPHP version: **PUT HERE YOUR PHP VERSION**\n\n<!--\n    Run the command `composer show nesbot/carbon`\n    to get \"versions\"\n    Use `echo phpversion();`\n    to get PHP version.\n\n    Some issues can depends on your context, settings,\n    macros, timezone, language. So to be sure the code\n    you give is enough to reproduce your bug, try it\n    first in:\n    https://try-carbon.herokuapp.com/?theme=xcode&export&embed\n\n    You can use the [Options] button to change the version\n    then when you get the bug with this editor, you can use\n    the [Export] button, copy the link of the opened tab,\n    then paste it in the issue. Then we can immediatly get\n    your issue.\n-->\n\n\nI expected to get:\n\n```\n6\n```\n<!--\n    Always give your expectations. Each use has their owns.\n    You may want daylight saving time to be taken into account,\n    someone else want it to be ignored. You may want timezone\n    to be used in comparisons, someone else may not, etc.\n-->\n\nBut I actually get:\n\n```\n5\n```\n<!--\n    If you did not succeed to get the same result in\n    https://try-carbon.herokuapp.com/ then precise the\n    result you get.\n-->\n\nThanks!\n"
  },
  {
    "path": "vendor/nesbot/carbon/.multi-tester.yml",
    "content": "laravel/framework:\n  source:\n    type: git\n    url: https://github.com/laravel/framework.git\n    reference: master\n  install: composer update --prefer-dist --no-interaction --prefer-stable --no-suggest\n"
  },
  {
    "path": "vendor/nesbot/carbon/LICENSE",
    "content": "Copyright (C) Brian Nesbitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/nesbot/carbon/composer.json",
    "content": "{\n    \"name\": \"nesbot/carbon\",\n    \"type\": \"library\",\n    \"description\": \"A simple API extension for DateTime.\",\n    \"keywords\": [\n        \"date\",\n        \"time\",\n        \"DateTime\"\n    ],\n    \"homepage\": \"http://carbon.nesbot.com\",\n    \"support\": {\n        \"issues\": \"https://github.com/briannesbitt/Carbon/issues\",\n        \"source\": \"https://github.com/briannesbitt/Carbon\"\n    },\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Brian Nesbitt\",\n            \"email\": \"brian@nesbot.com\",\n            \"homepage\": \"http://nesbot.com\"\n        }\n    ],\n    \"minimum-stability\": \"dev\",\n    \"require\": {\n        \"php\": \"^7.1.8 || ^8.0\",\n        \"ext-json\": \"*\",\n        \"symfony/translation\": \"^3.4 || ^4.0\"\n    },\n    \"require-dev\": {\n        \"friendsofphp/php-cs-fixer\": \"^2.14 || ^3.0\",\n        \"kylekatarnls/multi-tester\": \"^1.1\",\n        \"phpmd/phpmd\": \"^2.6\",\n        \"phpstan/phpstan\": \"^0.11\",\n        \"phpunit/phpunit\": \"^7.5 || ^8.0\",\n        \"squizlabs/php_codesniffer\": \"^3.4\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Carbon\\\\\": \"src/Carbon/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Tests\\\\\": \"tests/\"\n        }\n    },\n    \"config\": {\n        \"process-timeout\": 0,\n        \"sort-packages\": true\n    },\n    \"scripts\": {\n        \"test\": [\n            \"@phpunit\",\n            \"@phpcs\"\n        ],\n        \"phpunit\": \"phpunit --verbose\",\n        \"phpcs\": \"php-cs-fixer fix -v --diff --dry-run\",\n        \"phpstan\": \"phpstan analyse --configuration phpstan.neon --level 3 src tests\",\n        \"phpmd\": \"phpmd src text /phpmd.xml\",\n        \"phpdoc\": \"php phpdoc.php\"\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"providers\": [\n                \"Carbon\\\\Laravel\\\\ServiceProvider\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/contributing.md",
    "content": "# Contributing to Carbon\n\n## Issue Contributions\n\nPlease report any security issue using [Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure.\nPlease don't disclose security bugs publicly until they have been handled by us.\n\nFor any other bug or issue, please click this link and follow the template:\n[Create new issue](https://github.com/briannesbitt/Carbon/issues/new)\n\nYou may think this template does not apply to your case but please think again. A long description will never be as\nclear as a code chunk with the output you expect from it (for either bug report or new features).\n\n## Code Contributions\n\n### Where to begin\n\nWe use the label **good first issue** to tag issues that could be a good fit for new contributors, see if there are such issues now following this link:\n\nhttps://github.com/briannesbitt/Carbon/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22\n\nElse, check the roadmap to see what we plan to do in next releases:\n\nhttps://github.com/briannesbitt/Carbon/issues/1681\n\n### Develop locally, then submit changes\n\nFork the [GitHub project](https://github.com/briannesbitt/Carbon) and download it locally:\n\n```shell\ngit clone https://github.com/<username>/Carbon.git\ncd Carbon\ngit remote add upstream https://github.com/briannesbitt/Carbon.git\n```\nReplace `<username>` with your GitHub username.\n\nThen, you can work on the master or create a specific branch for your development:\n\n```shell\ngit checkout -b my-feature-branch -t origin/master\n```\n\nYou can now edit the \"Carbon\" directory contents.\n\nBefore committing, please set your name and your e-mail (use the same e-mail address as in your GitHub account):\n\n```shell\ngit config --global user.name \"Your Name\"\ngit config --global user.email \"your.email.address@example.com\"\n```\n\nThe ```--global``` argument will apply this setting for all your git repositories, remove it to set only your Carbon\nfork with those settings.\n\nNow you can commit your modifications as you usually do with git:\n\n```shell\ngit add --all\ngit commit -m \"The commit message log\"\n```\n\nIf your patch fixes an open issue, please insert ```#``` immediately followed by the issue number:\n\n```shell\ngit commit -m \"#21 Fix this or that\"\n```\n\nUse git rebase (not git merge) to sync your work from time to time:\n\n```shell\ngit fetch origin\ngit rebase origin/master\n```\n\nPlease add some tests for bug fixes and features (so it will ensure next developments will not break your code),\nthen check all is right with phpunit:\n\nInstall PHP if you haven't yet, then install composer:\nhttps://getcomposer.org/download/\n\nUpdate dependencies:\n```\n./composer.phar update\n```\n\nOr if you installed composer globally:\n```\ncomposer update\n```\n\nThen call phpunit:\n```\n./vendor/bin/phpunit\n```\n\nMake sure all tests succeed before submitting your pull-request, else we will not be able to merge it.\n\nPush your work on your remote GitHub fork with:\n```\ngit push origin my-feature-branch\n```\n\nGo to https://github.com/yourusername/Carbon and select your feature branch. Click the 'Pull Request' button and fill\nout the form.\n\nWe will review it within a few days. And we thank you in advance for your help.\n\n## Versioning\n\n### Note about Semantic Versioning and breaking changes\n\nAs a developer, you must understand every change is a breaking change. What is a bug for someone\nis expected in someone else's workflow. The consequence of a change strongly depends on the usage.\n[Semantic Versioning](https://semver.org/) relies to public API. In PHP, the public API of a class is its public\nmethods. However, if you extend a class, you can access protected methods, then if you use reflexion, you can\naccess private methods. So anything can become a public API if you force it to be. That doesn't mean we should handle\nany possible usage, else we would have to publish a major release for each change and it would no longer make sense.\n\nSo before any complain about a breaking change, be warned, we do not guarantee a strict Semantic Versioning as you\nmay expect, we're following a pragmatic interpretation of Semantic Versioning that allows the software to evolve in a\nreliable way with reasonable maintenance effort.\n\nConcretely, we consider a change as breaking if it makes fail one of our unit test. We will do our best to avoid\nincompatibilities with libraries that extends Carbon classes (such as Laravel that is continuously tested thanks to\nTravis CI, [see the compatibility matrix](https://github.com/kylekatarnls/carbon-laravel/tree/master#carbon-1-dev-version-1next)).\n\nIf you're the owner of a library that strongly depends on Carbon, we recommend you to run unit tests daily requiring\n`\"nesbot/carbon\": \"dev-master\"` (for `^2`) or `\"nesbot/carbon\": \"dev-version-1.next\"` (for `^1`), this way you can\ndetect incompatibilities earlier and report it to us before we tag a release. We'll pay attention and try to fix it to\nmake update to next minor releases as soft as possible.\n\nWe reserve the right to publish emergency patches within 24 hours after a release if a tag that does not respect\nthis pattern would have been released despite our vigilance. In this very rare and particular case, we would mark the\ntag as broken on GitHub and backward compatibility would be based on previous stable tag.\n\nLast, you must understand that Carbon extends PHP natives classes, that means Carbon can be impacted by any change\nthat occurs in the date/time API of PHP. We watch new PHP versions and handle those changes as quickly as possible\nwhen detected, but as PHP does not follow the semantic versioning pattern, it basically means any releases (including\npatches) can have unexpected consequences on Carbon methods results.\n\n### Long term support\n\nTo benefit the better support, require Carbon using major version range (`^1` or `^2`). By requiring `1.26.*`,\n`~1.26.0` or limited range such as `>=1.20 <1.33`, you fall to low priority support (only security and critical issues\nwill be fixed), our prior support goes to next minor releases of each major version. It applies to bug fixes and\nlow-cost features. Other new features will only be added in the last stable release. At the opposite, we recommend you\nto restrain to a major number, as there is no compatibility guarantee from a major version to the next. It means\nrequiring `>=2`, as it allows any newer version, will probably leads to errors on releasing our next major version.\n\nOpen milestones can be patched if a minor bug is detected while if you're on a closed milestone, we'll more likely\nask you to update first to an open one. See currently open milestones: \n\nhttps://github.com/briannesbitt/Carbon/milestones\n"
  },
  {
    "path": "vendor/nesbot/carbon/phpmd.xml",
    "content": "<?xml version=\"1.0\"?>\n<ruleset name=\"Mess detection rules for Carbon\"\n         xmlns=\"http://pmd.sf.net/ruleset/1.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://pmd.sf.net/ruleset/1.0.0\n                     http://pmd.sf.net/ruleset_xml_schema.xsd\"\n         xsi:noNamespaceSchemaLocation=\"\n                     http://pmd.sf.net/ruleset_xml_schema.xsd\">\n    <description>\n        Mess detection rules for Carbon\n    </description>\n    <rule ref=\"rulesets/codesize.xml\" />\n    <rule ref=\"rulesets/cleancode.xml\" />\n    <rule ref=\"rulesets/controversial.xml\" />\n    <rule ref=\"rulesets/design.xml\" />\n    <rule ref=\"rulesets/naming.xml/ShortVariable\">\n        <properties>\n            <property name=\"exceptions\" value=\"id,tz\" />\n        </properties>\n    </rule>\n    <rule ref=\"rulesets/unusedcode.xml\" />\n</ruleset>\n"
  },
  {
    "path": "vendor/nesbot/carbon/readme.md",
    "content": "# Carbon\n\n[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)\n[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)\n[![Build Status](https://img.shields.io/travis/briannesbitt/Carbon/master.svg?style=flat-square)](https://travis-ci.org/briannesbitt/Carbon)\n[![StyleCI](https://styleci.io/repos/5724990/shield?style=flat-square)](https://styleci.io/repos/5724990)\n[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master)\n[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-44CC11.svg?longCache=true&style=flat-square)](https://github.com/phpstan/phpstan)\n[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)\n\nAn international PHP extension for DateTime. [http://carbon.nesbot.com](http://carbon.nesbot.com)\n\n```php\nuse Carbon\\Carbon;\n\nprintf(\"Right now is %s\", Carbon::now()->toDateTimeString());\nprintf(\"Right now in Vancouver is %s\", Carbon::now('America/Vancouver'));  //implicit __toString()\n$tomorrow = Carbon::now()->addDay();\n$lastWeek = Carbon::now()->subWeek();\n$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4);\n\n$officialDate = Carbon::now()->toRfc2822String();\n\n$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;\n\n$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');\n\n$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');\n\n// Don't really want this to happen so mock now\nCarbon::setTestNow(Carbon::createFromDate(2000, 1, 1));\n\n// comparisons are always done in UTC\nif (Carbon::now()->gte($internetWillBlowUpOn)) {\n    die();\n}\n\n// Phew! Return to normal behaviour\nCarbon::setTestNow();\n\nif (Carbon::now()->isWeekend()) {\n    echo 'Party!';\n}\n// Over 200 languages (and over 500 regional variants) supported:\necho Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'\necho Carbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans(); // '2分钟前'\necho Carbon::parse('2019-07-23 14:51')->isoFormat('LLLL'); // 'Tuesday, July 23, 2019 2:51 PM'\necho Carbon::parse('2019-07-23 14:51')->locale('fr_FR')->isoFormat('LLLL'); // 'mardi 23 juillet 2019 14:51'\n\n// ... but also does 'from now', 'after' and 'before'\n// rolling up to seconds, minutes, hours, days, months, years\n\n$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays();\n```\n\n[Get supported nesbot/carbon with the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)\n\n## Installation\n\n### With Composer\n\n```\n$ composer require nesbot/carbon\n```\n\n```json\n{\n    \"require\": {\n        \"nesbot/carbon\": \"^2.16\"\n    }\n}\n```\n\n```php\n<?php\nrequire 'vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\nprintf(\"Now: %s\", Carbon::now());\n```\n\n<a name=\"install-nocomposer\"/>\n\n### Without Composer\n\nWhy are you not using [composer](http://getcomposer.org/)? Download the Carbon [latest release](https://github.com/briannesbitt/Carbon/releases) and put the contents of the ZIP archive into a directory in your project. Then require the file `autoload.php` to get all classes and dependencies loaded on need.\n\n```php\n<?php\nrequire 'path-to-Carbon-directory/autoload.php';\n\nuse Carbon\\Carbon;\n\nprintf(\"Now: %s\", Carbon::now());\n```\n\n## Docs\n\n[http://carbon.nesbot.com/docs](http://carbon.nesbot.com/docs)\n\n## Security contact information\n\nTo report a security vulnerability, please use the\n[Tidelift security contact](https://tidelift.com/security).\nTidelift will coordinate the fix and disclosure.\n\n## Credits\n\n### Contributors\n\nThis project exists thanks to all the people who contribute. \n\n<a href=\"https://github.com/briannesbitt/Carbon/graphs/contributors\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/contributors.svg?width=890&button=false\" /></a>\n\n### Translators\n\n[Thanks to people helping us to translate Carbon in so many languages](https://carbon.nesbot.com/contribute/translators/)\n\n### Backers\n\nThank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/Carbon#backer)]\n\n<a href=\"https://opencollective.com/Carbon#backers\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/backers.svg?width=890\"></a>\n\n### Sponsors\n\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/Carbon#sponsor)]\n<a href=\"https://opencollective.com/Carbon/sponsor/0/website\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/sponsor/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/Carbon/sponsor/1/website\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/sponsor/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/Carbon/sponsor/2/website\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/sponsor/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/Carbon/sponsor/3/website\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/sponsor/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/Carbon/sponsor/4/website\" target=\"_blank\"><img src=\"https://opencollective.com/Carbon/sponsor/4/avatar.svg\"></a>\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Carbon.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse Carbon\\Traits\\Date;\nuse DateTime;\n\n/**\n * A simple API extension for DateTime.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @property      int            $year\n * @property      int            $yearIso\n * @property      int            $month\n * @property      int            $day\n * @property      int            $hour\n * @property      int            $minute\n * @property      int            $second\n * @property      int            $micro\n * @property      int            $microsecond\n * @property      int            $timestamp                                                                          seconds since the Unix Epoch\n * @property      string         $englishDayOfWeek                                                                   the day of week in English\n * @property      string         $shortEnglishDayOfWeek                                                              the abbreviated day of week in English\n * @property      string         $englishMonth                                                                       the month in English\n * @property      string         $shortEnglishMonth                                                                  the abbreviated month in English\n * @property      string         $localeDayOfWeek                                                                    the day of week in current locale LC_TIME\n * @property      string         $shortLocaleDayOfWeek                                                               the abbreviated day of week in current locale LC_TIME\n * @property      string         $localeMonth                                                                        the month in current locale LC_TIME\n * @property      string         $shortLocaleMonth                                                                   the abbreviated month in current locale LC_TIME\n * @property      int            $milliseconds\n * @property      int            $millisecond\n * @property      int            $milli\n * @property      int            $week                                                                               1 through 53\n * @property      int            $isoWeek                                                                            1 through 53\n * @property      int            $weekYear                                                                           year according to week format\n * @property      int            $isoWeekYear                                                                        year according to ISO week format\n * @property      int            $dayOfYear                                                                          1 through 366\n * @property      int            $age                                                                                does a diffInYears() with default parameters\n * @property      int            $offset                                                                             the timezone offset in seconds from UTC\n * @property      int            $offsetMinutes                                                                      the timezone offset in minutes from UTC\n * @property      int            $offsetHours                                                                        the timezone offset in hours from UTC\n * @property      CarbonTimeZone $timezone                                                                           the current timezone\n * @property      CarbonTimeZone $tz                                                                                 alias of $timezone\n * @property-read int            $dayOfWeek                                                                          0 (for Sunday) through 6 (for Saturday)\n * @property-read int            $dayOfWeekIso                                                                       1 (for Monday) through 7 (for Sunday)\n * @property-read int            $weekOfYear                                                                         ISO-8601 week number of year, weeks starting on Monday\n * @property-read int            $daysInMonth                                                                        number of days in the given month\n * @property-read string         $latinMeridiem                                                                      \"am\"/\"pm\" (Ante meridiem or Post meridiem latin lowercase mark)\n * @property-read string         $latinUpperMeridiem                                                                 \"AM\"/\"PM\" (Ante meridiem or Post meridiem latin uppercase mark)\n * @property-read string         $dayName                                                                            long name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortDayName                                                                       short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $minDayName                                                                         very short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $monthName                                                                          long name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortMonthName                                                                     short name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $meridiem                                                                           lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read string         $upperMeridiem                                                                      uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read int            $noZeroHour                                                                         current hour from 1 to 24\n * @property-read int            $weeksInYear                                                                        51 through 53\n * @property-read int            $isoWeeksInYear                                                                     51 through 53\n * @property-read int            $weekOfMonth                                                                        1 through 5\n * @property-read int            $weekNumberInMonth                                                                  1 through 5\n * @property-read int            $firstWeekDay                                                                       0 through 6\n * @property-read int            $lastWeekDay                                                                        0 through 6\n * @property-read int            $daysInYear                                                                         365 or 366\n * @property-read int            $quarter                                                                            the quarter of this instance, 1 - 4\n * @property-read int            $decade                                                                             the decade of this instance\n * @property-read int            $century                                                                            the century of this instance\n * @property-read int            $millennium                                                                         the millennium of this instance\n * @property-read bool           $dst                                                                                daylight savings time indicator, true if DST, false otherwise\n * @property-read bool           $local                                                                              checks if the timezone is local, true if local, false otherwise\n * @property-read bool           $utc                                                                                checks if the timezone is UTC, true if UTC, false otherwise\n * @property-read string         $timezoneName                                                                       the current timezone name\n * @property-read string         $tzName                                                                             alias of $timezoneName\n * @property-read string         $timezoneAbbreviatedName                                                            the current timezone abbreviated name\n * @property-read string         $tzAbbrName                                                                         alias of $timezoneAbbreviatedName\n * @property-read string         $locale                                                                             locale of the current instance\n *\n * @method        bool           isUtc()                                                                             Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)\n * @method        bool           isLocal()                                                                           Check if the current instance has non-UTC timezone.\n * @method        bool           isValid()                                                                           Check if the current instance is a valid date.\n * @method        bool           isDST()                                                                             Check if the current instance is in a daylight saving time.\n * @method        bool           isSunday()                                                                          Checks if the instance day is sunday.\n * @method        bool           isMonday()                                                                          Checks if the instance day is monday.\n * @method        bool           isTuesday()                                                                         Checks if the instance day is tuesday.\n * @method        bool           isWednesday()                                                                       Checks if the instance day is wednesday.\n * @method        bool           isThursday()                                                                        Checks if the instance day is thursday.\n * @method        bool           isFriday()                                                                          Checks if the instance day is friday.\n * @method        bool           isSaturday()                                                                        Checks if the instance day is saturday.\n * @method        bool           isSameYear(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentYear()                                                                     Checks if the instance is in the same year as the current moment.\n * @method        bool           isNextYear()                                                                        Checks if the instance is in the same year as the current moment next year.\n * @method        bool           isLastYear()                                                                        Checks if the instance is in the same year as the current moment last year.\n * @method        bool           isSameWeek(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentWeek()                                                                     Checks if the instance is in the same week as the current moment.\n * @method        bool           isNextWeek()                                                                        Checks if the instance is in the same week as the current moment next week.\n * @method        bool           isLastWeek()                                                                        Checks if the instance is in the same week as the current moment last week.\n * @method        bool           isSameDay(\\DateTimeInterface $date = null)                                          Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDay()                                                                      Checks if the instance is in the same day as the current moment.\n * @method        bool           isNextDay()                                                                         Checks if the instance is in the same day as the current moment next day.\n * @method        bool           isLastDay()                                                                         Checks if the instance is in the same day as the current moment last day.\n * @method        bool           isSameHour(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentHour()                                                                     Checks if the instance is in the same hour as the current moment.\n * @method        bool           isNextHour()                                                                        Checks if the instance is in the same hour as the current moment next hour.\n * @method        bool           isLastHour()                                                                        Checks if the instance is in the same hour as the current moment last hour.\n * @method        bool           isSameMinute(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMinute()                                                                   Checks if the instance is in the same minute as the current moment.\n * @method        bool           isNextMinute()                                                                      Checks if the instance is in the same minute as the current moment next minute.\n * @method        bool           isLastMinute()                                                                      Checks if the instance is in the same minute as the current moment last minute.\n * @method        bool           isSameSecond(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentSecond()                                                                   Checks if the instance is in the same second as the current moment.\n * @method        bool           isNextSecond()                                                                      Checks if the instance is in the same second as the current moment next second.\n * @method        bool           isLastSecond()                                                                      Checks if the instance is in the same second as the current moment last second.\n * @method        bool           isSameMicro(\\DateTimeInterface $date = null)                                        Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicro()                                                                    Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicro()                                                                       Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicro()                                                                       Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isSameMicrosecond(\\DateTimeInterface $date = null)                                  Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicrosecond()                                                              Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isCurrentMonth()                                                                    Checks if the instance is in the same month as the current moment.\n * @method        bool           isNextMonth()                                                                       Checks if the instance is in the same month as the current moment next month.\n * @method        bool           isLastMonth()                                                                       Checks if the instance is in the same month as the current moment last month.\n * @method        bool           isCurrentQuarter()                                                                  Checks if the instance is in the same quarter as the current moment.\n * @method        bool           isNextQuarter()                                                                     Checks if the instance is in the same quarter as the current moment next quarter.\n * @method        bool           isLastQuarter()                                                                     Checks if the instance is in the same quarter as the current moment last quarter.\n * @method        bool           isSameDecade(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDecade()                                                                   Checks if the instance is in the same decade as the current moment.\n * @method        bool           isNextDecade()                                                                      Checks if the instance is in the same decade as the current moment next decade.\n * @method        bool           isLastDecade()                                                                      Checks if the instance is in the same decade as the current moment last decade.\n * @method        bool           isSameCentury(\\DateTimeInterface $date = null)                                      Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentCentury()                                                                  Checks if the instance is in the same century as the current moment.\n * @method        bool           isNextCentury()                                                                     Checks if the instance is in the same century as the current moment next century.\n * @method        bool           isLastCentury()                                                                     Checks if the instance is in the same century as the current moment last century.\n * @method        bool           isSameMillennium(\\DateTimeInterface $date = null)                                   Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMillennium()                                                               Checks if the instance is in the same millennium as the current moment.\n * @method        bool           isNextMillennium()                                                                  Checks if the instance is in the same millennium as the current moment next millennium.\n * @method        bool           isLastMillennium()                                                                  Checks if the instance is in the same millennium as the current moment last millennium.\n * @method        $this          years(int $value)                                                                   Set current instance year to the given value.\n * @method        $this          year(int $value)                                                                    Set current instance year to the given value.\n * @method        $this          setYears(int $value)                                                                Set current instance year to the given value.\n * @method        $this          setYear(int $value)                                                                 Set current instance year to the given value.\n * @method        $this          months(int $value)                                                                  Set current instance month to the given value.\n * @method        $this          month(int $value)                                                                   Set current instance month to the given value.\n * @method        $this          setMonths(int $value)                                                               Set current instance month to the given value.\n * @method        $this          setMonth(int $value)                                                                Set current instance month to the given value.\n * @method        $this          days(int $value)                                                                    Set current instance day to the given value.\n * @method        $this          day(int $value)                                                                     Set current instance day to the given value.\n * @method        $this          setDays(int $value)                                                                 Set current instance day to the given value.\n * @method        $this          setDay(int $value)                                                                  Set current instance day to the given value.\n * @method        $this          hours(int $value)                                                                   Set current instance hour to the given value.\n * @method        $this          hour(int $value)                                                                    Set current instance hour to the given value.\n * @method        $this          setHours(int $value)                                                                Set current instance hour to the given value.\n * @method        $this          setHour(int $value)                                                                 Set current instance hour to the given value.\n * @method        $this          minutes(int $value)                                                                 Set current instance minute to the given value.\n * @method        $this          minute(int $value)                                                                  Set current instance minute to the given value.\n * @method        $this          setMinutes(int $value)                                                              Set current instance minute to the given value.\n * @method        $this          setMinute(int $value)                                                               Set current instance minute to the given value.\n * @method        $this          seconds(int $value)                                                                 Set current instance second to the given value.\n * @method        $this          second(int $value)                                                                  Set current instance second to the given value.\n * @method        $this          setSeconds(int $value)                                                              Set current instance second to the given value.\n * @method        $this          setSecond(int $value)                                                               Set current instance second to the given value.\n * @method        $this          millis(int $value)                                                                  Set current instance millisecond to the given value.\n * @method        $this          milli(int $value)                                                                   Set current instance millisecond to the given value.\n * @method        $this          setMillis(int $value)                                                               Set current instance millisecond to the given value.\n * @method        $this          setMilli(int $value)                                                                Set current instance millisecond to the given value.\n * @method        $this          milliseconds(int $value)                                                            Set current instance millisecond to the given value.\n * @method        $this          millisecond(int $value)                                                             Set current instance millisecond to the given value.\n * @method        $this          setMilliseconds(int $value)                                                         Set current instance millisecond to the given value.\n * @method        $this          setMillisecond(int $value)                                                          Set current instance millisecond to the given value.\n * @method        $this          micros(int $value)                                                                  Set current instance microsecond to the given value.\n * @method        $this          micro(int $value)                                                                   Set current instance microsecond to the given value.\n * @method        $this          setMicros(int $value)                                                               Set current instance microsecond to the given value.\n * @method        $this          setMicro(int $value)                                                                Set current instance microsecond to the given value.\n * @method        $this          microseconds(int $value)                                                            Set current instance microsecond to the given value.\n * @method        $this          microsecond(int $value)                                                             Set current instance microsecond to the given value.\n * @method        $this          setMicroseconds(int $value)                                                         Set current instance microsecond to the given value.\n * @method        $this          setMicrosecond(int $value)                                                          Set current instance microsecond to the given value.\n * @method        $this          addYears(int $value = 1)                                                            Add years (the $value count passed in) to the instance (using date interval).\n * @method        $this          addYear()                                                                           Add one year to the instance (using date interval).\n * @method        $this          subYears(int $value = 1)                                                            Sub years (the $value count passed in) to the instance (using date interval).\n * @method        $this          subYear()                                                                           Sub one year to the instance (using date interval).\n * @method        $this          addYearsWithOverflow(int $value = 1)                                                Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearWithOverflow()                                                               Add one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearsWithOverflow(int $value = 1)                                                Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearWithOverflow()                                                               Sub one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearsWithoutOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithoutOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithoutOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithoutOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsWithNoOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithNoOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithNoOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithNoOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsNoOverflow(int $value = 1)                                                  Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearNoOverflow()                                                                 Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsNoOverflow(int $value = 1)                                                  Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearNoOverflow()                                                                 Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonths(int $value = 1)                                                           Add months (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMonth()                                                                          Add one month to the instance (using date interval).\n * @method        $this          subMonths(int $value = 1)                                                           Sub months (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMonth()                                                                          Sub one month to the instance (using date interval).\n * @method        $this          addMonthsWithOverflow(int $value = 1)                                               Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthWithOverflow()                                                              Add one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthsWithOverflow(int $value = 1)                                               Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthWithOverflow()                                                              Sub one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthsWithoutOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithoutOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithoutOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithoutOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsWithNoOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithNoOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithNoOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithNoOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsNoOverflow(int $value = 1)                                                 Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthNoOverflow()                                                                Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsNoOverflow(int $value = 1)                                                 Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthNoOverflow()                                                                Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDays(int $value = 1)                                                             Add days (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDay()                                                                            Add one day to the instance (using date interval).\n * @method        $this          subDays(int $value = 1)                                                             Sub days (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDay()                                                                            Sub one day to the instance (using date interval).\n * @method        $this          addHours(int $value = 1)                                                            Add hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          addHour()                                                                           Add one hour to the instance (using date interval).\n * @method        $this          subHours(int $value = 1)                                                            Sub hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          subHour()                                                                           Sub one hour to the instance (using date interval).\n * @method        $this          addMinutes(int $value = 1)                                                          Add minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMinute()                                                                         Add one minute to the instance (using date interval).\n * @method        $this          subMinutes(int $value = 1)                                                          Sub minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMinute()                                                                         Sub one minute to the instance (using date interval).\n * @method        $this          addSeconds(int $value = 1)                                                          Add seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addSecond()                                                                         Add one second to the instance (using date interval).\n * @method        $this          subSeconds(int $value = 1)                                                          Sub seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subSecond()                                                                         Sub one second to the instance (using date interval).\n * @method        $this          addMillis(int $value = 1)                                                           Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMilli()                                                                          Add one millisecond to the instance (using date interval).\n * @method        $this          subMillis(int $value = 1)                                                           Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMilli()                                                                          Sub one millisecond to the instance (using date interval).\n * @method        $this          addMilliseconds(int $value = 1)                                                     Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillisecond()                                                                    Add one millisecond to the instance (using date interval).\n * @method        $this          subMilliseconds(int $value = 1)                                                     Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillisecond()                                                                    Sub one millisecond to the instance (using date interval).\n * @method        $this          addMicros(int $value = 1)                                                           Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicro()                                                                          Add one microsecond to the instance (using date interval).\n * @method        $this          subMicros(int $value = 1)                                                           Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicro()                                                                          Sub one microsecond to the instance (using date interval).\n * @method        $this          addMicroseconds(int $value = 1)                                                     Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicrosecond()                                                                    Add one microsecond to the instance (using date interval).\n * @method        $this          subMicroseconds(int $value = 1)                                                     Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicrosecond()                                                                    Sub one microsecond to the instance (using date interval).\n * @method        $this          addMillennia(int $value = 1)                                                        Add millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillennium()                                                                     Add one millennium to the instance (using date interval).\n * @method        $this          subMillennia(int $value = 1)                                                        Sub millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillennium()                                                                     Sub one millennium to the instance (using date interval).\n * @method        $this          addMillenniaWithOverflow(int $value = 1)                                            Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniumWithOverflow()                                                         Add one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniaWithOverflow(int $value = 1)                                            Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniumWithOverflow()                                                         Sub one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniaWithoutOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithoutOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithoutOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithoutOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaWithNoOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithNoOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithNoOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithNoOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaNoOverflow(int $value = 1)                                              Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumNoOverflow()                                                           Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaNoOverflow(int $value = 1)                                              Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumNoOverflow()                                                           Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturies(int $value = 1)                                                        Add centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          addCentury()                                                                        Add one century to the instance (using date interval).\n * @method        $this          subCenturies(int $value = 1)                                                        Sub centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          subCentury()                                                                        Sub one century to the instance (using date interval).\n * @method        $this          addCenturiesWithOverflow(int $value = 1)                                            Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturyWithOverflow()                                                            Add one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturiesWithOverflow(int $value = 1)                                            Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturyWithOverflow()                                                            Sub one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturiesWithoutOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithoutOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithoutOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithoutOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesWithNoOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithNoOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithNoOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithNoOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesNoOverflow(int $value = 1)                                              Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyNoOverflow()                                                              Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesNoOverflow(int $value = 1)                                              Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyNoOverflow()                                                              Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecades(int $value = 1)                                                          Add decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDecade()                                                                         Add one decade to the instance (using date interval).\n * @method        $this          subDecades(int $value = 1)                                                          Sub decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDecade()                                                                         Sub one decade to the instance (using date interval).\n * @method        $this          addDecadesWithOverflow(int $value = 1)                                              Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadeWithOverflow()                                                             Add one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadesWithOverflow(int $value = 1)                                              Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadeWithOverflow()                                                             Sub one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadesWithoutOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithoutOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithoutOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithoutOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesWithNoOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithNoOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithNoOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithNoOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesNoOverflow(int $value = 1)                                                Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeNoOverflow()                                                               Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesNoOverflow(int $value = 1)                                                Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeNoOverflow()                                                               Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarters(int $value = 1)                                                         Add quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          addQuarter()                                                                        Add one quarter to the instance (using date interval).\n * @method        $this          subQuarters(int $value = 1)                                                         Sub quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          subQuarter()                                                                        Sub one quarter to the instance (using date interval).\n * @method        $this          addQuartersWithOverflow(int $value = 1)                                             Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuarterWithOverflow()                                                            Add one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuartersWithOverflow(int $value = 1)                                             Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuarterWithOverflow()                                                            Sub one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuartersWithoutOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithoutOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithoutOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithoutOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersWithNoOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithNoOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithNoOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithNoOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersNoOverflow(int $value = 1)                                               Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterNoOverflow()                                                              Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersNoOverflow(int $value = 1)                                               Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterNoOverflow()                                                              Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addWeeks(int $value = 1)                                                            Add weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeek()                                                                           Add one week to the instance (using date interval).\n * @method        $this          subWeeks(int $value = 1)                                                            Sub weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeek()                                                                           Sub one week to the instance (using date interval).\n * @method        $this          addWeekdays(int $value = 1)                                                         Add weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeekday()                                                                        Add one weekday to the instance (using date interval).\n * @method        $this          subWeekdays(int $value = 1)                                                         Sub weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeekday()                                                                        Sub one weekday to the instance (using date interval).\n * @method        $this          addRealMicros(int $value = 1)                                                       Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicro()                                                                      Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicros(int $value = 1)                                                       Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicro()                                                                      Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMicroseconds(int $value = 1)                                                 Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicrosecond()                                                                Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicroseconds(int $value = 1)                                                 Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicrosecond()                                                                Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMillis(int $value = 1)                                                       Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMilli()                                                                      Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMillis(int $value = 1)                                                       Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMilli()                                                                      Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealMilliseconds(int $value = 1)                                                 Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillisecond()                                                                Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMilliseconds(int $value = 1)                                                 Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillisecond()                                                                Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealSeconds(int $value = 1)                                                      Add seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealSecond()                                                                     Add one second to the instance (using timestamp).\n * @method        $this          subRealSeconds(int $value = 1)                                                      Sub seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealSecond()                                                                     Sub one second to the instance (using timestamp).\n * @method        CarbonPeriod   secondsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.\n * @method        $this          addRealMinutes(int $value = 1)                                                      Add minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMinute()                                                                     Add one minute to the instance (using timestamp).\n * @method        $this          subRealMinutes(int $value = 1)                                                      Sub minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMinute()                                                                     Sub one minute to the instance (using timestamp).\n * @method        CarbonPeriod   minutesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.\n * @method        $this          addRealHours(int $value = 1)                                                        Add hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealHour()                                                                       Add one hour to the instance (using timestamp).\n * @method        $this          subRealHours(int $value = 1)                                                        Sub hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealHour()                                                                       Sub one hour to the instance (using timestamp).\n * @method        CarbonPeriod   hoursUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.\n * @method        $this          addRealDays(int $value = 1)                                                         Add days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDay()                                                                        Add one day to the instance (using timestamp).\n * @method        $this          subRealDays(int $value = 1)                                                         Sub days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDay()                                                                        Sub one day to the instance (using timestamp).\n * @method        CarbonPeriod   daysUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.\n * @method        $this          addRealWeeks(int $value = 1)                                                        Add weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealWeek()                                                                       Add one week to the instance (using timestamp).\n * @method        $this          subRealWeeks(int $value = 1)                                                        Sub weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealWeek()                                                                       Sub one week to the instance (using timestamp).\n * @method        CarbonPeriod   weeksUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.\n * @method        $this          addRealMonths(int $value = 1)                                                       Add months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMonth()                                                                      Add one month to the instance (using timestamp).\n * @method        $this          subRealMonths(int $value = 1)                                                       Sub months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMonth()                                                                      Sub one month to the instance (using timestamp).\n * @method        CarbonPeriod   monthsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.\n * @method        $this          addRealQuarters(int $value = 1)                                                     Add quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealQuarter()                                                                    Add one quarter to the instance (using timestamp).\n * @method        $this          subRealQuarters(int $value = 1)                                                     Sub quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealQuarter()                                                                    Sub one quarter to the instance (using timestamp).\n * @method        CarbonPeriod   quartersUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.\n * @method        $this          addRealYears(int $value = 1)                                                        Add years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealYear()                                                                       Add one year to the instance (using timestamp).\n * @method        $this          subRealYears(int $value = 1)                                                        Sub years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealYear()                                                                       Sub one year to the instance (using timestamp).\n * @method        CarbonPeriod   yearsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.\n * @method        $this          addRealDecades(int $value = 1)                                                      Add decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDecade()                                                                     Add one decade to the instance (using timestamp).\n * @method        $this          subRealDecades(int $value = 1)                                                      Sub decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDecade()                                                                     Sub one decade to the instance (using timestamp).\n * @method        CarbonPeriod   decadesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.\n * @method        $this          addRealCenturies(int $value = 1)                                                    Add centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealCentury()                                                                    Add one century to the instance (using timestamp).\n * @method        $this          subRealCenturies(int $value = 1)                                                    Sub centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealCentury()                                                                    Sub one century to the instance (using timestamp).\n * @method        CarbonPeriod   centuriesUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.\n * @method        $this          addRealMillennia(int $value = 1)                                                    Add millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillennium()                                                                 Add one millennium to the instance (using timestamp).\n * @method        $this          subRealMillennia(int $value = 1)                                                    Sub millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillennium()                                                                 Sub one millennium to the instance (using timestamp).\n * @method        CarbonPeriod   millenniaUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.\n * @method        $this          roundYear(float $precision = 1, string $function = \"round\")                         Round the current instance year with given precision using the given function.\n * @method        $this          roundYears(float $precision = 1, string $function = \"round\")                        Round the current instance year with given precision using the given function.\n * @method        $this          floorYear(float $precision = 1)                                                     Truncate the current instance year with given precision.\n * @method        $this          floorYears(float $precision = 1)                                                    Truncate the current instance year with given precision.\n * @method        $this          ceilYear(float $precision = 1)                                                      Ceil the current instance year with given precision.\n * @method        $this          ceilYears(float $precision = 1)                                                     Ceil the current instance year with given precision.\n * @method        $this          roundMonth(float $precision = 1, string $function = \"round\")                        Round the current instance month with given precision using the given function.\n * @method        $this          roundMonths(float $precision = 1, string $function = \"round\")                       Round the current instance month with given precision using the given function.\n * @method        $this          floorMonth(float $precision = 1)                                                    Truncate the current instance month with given precision.\n * @method        $this          floorMonths(float $precision = 1)                                                   Truncate the current instance month with given precision.\n * @method        $this          ceilMonth(float $precision = 1)                                                     Ceil the current instance month with given precision.\n * @method        $this          ceilMonths(float $precision = 1)                                                    Ceil the current instance month with given precision.\n * @method        $this          roundDay(float $precision = 1, string $function = \"round\")                          Round the current instance day with given precision using the given function.\n * @method        $this          roundDays(float $precision = 1, string $function = \"round\")                         Round the current instance day with given precision using the given function.\n * @method        $this          floorDay(float $precision = 1)                                                      Truncate the current instance day with given precision.\n * @method        $this          floorDays(float $precision = 1)                                                     Truncate the current instance day with given precision.\n * @method        $this          ceilDay(float $precision = 1)                                                       Ceil the current instance day with given precision.\n * @method        $this          ceilDays(float $precision = 1)                                                      Ceil the current instance day with given precision.\n * @method        $this          roundHour(float $precision = 1, string $function = \"round\")                         Round the current instance hour with given precision using the given function.\n * @method        $this          roundHours(float $precision = 1, string $function = \"round\")                        Round the current instance hour with given precision using the given function.\n * @method        $this          floorHour(float $precision = 1)                                                     Truncate the current instance hour with given precision.\n * @method        $this          floorHours(float $precision = 1)                                                    Truncate the current instance hour with given precision.\n * @method        $this          ceilHour(float $precision = 1)                                                      Ceil the current instance hour with given precision.\n * @method        $this          ceilHours(float $precision = 1)                                                     Ceil the current instance hour with given precision.\n * @method        $this          roundMinute(float $precision = 1, string $function = \"round\")                       Round the current instance minute with given precision using the given function.\n * @method        $this          roundMinutes(float $precision = 1, string $function = \"round\")                      Round the current instance minute with given precision using the given function.\n * @method        $this          floorMinute(float $precision = 1)                                                   Truncate the current instance minute with given precision.\n * @method        $this          floorMinutes(float $precision = 1)                                                  Truncate the current instance minute with given precision.\n * @method        $this          ceilMinute(float $precision = 1)                                                    Ceil the current instance minute with given precision.\n * @method        $this          ceilMinutes(float $precision = 1)                                                   Ceil the current instance minute with given precision.\n * @method        $this          roundSecond(float $precision = 1, string $function = \"round\")                       Round the current instance second with given precision using the given function.\n * @method        $this          roundSeconds(float $precision = 1, string $function = \"round\")                      Round the current instance second with given precision using the given function.\n * @method        $this          floorSecond(float $precision = 1)                                                   Truncate the current instance second with given precision.\n * @method        $this          floorSeconds(float $precision = 1)                                                  Truncate the current instance second with given precision.\n * @method        $this          ceilSecond(float $precision = 1)                                                    Ceil the current instance second with given precision.\n * @method        $this          ceilSeconds(float $precision = 1)                                                   Ceil the current instance second with given precision.\n * @method        $this          roundMillennium(float $precision = 1, string $function = \"round\")                   Round the current instance millennium with given precision using the given function.\n * @method        $this          roundMillennia(float $precision = 1, string $function = \"round\")                    Round the current instance millennium with given precision using the given function.\n * @method        $this          floorMillennium(float $precision = 1)                                               Truncate the current instance millennium with given precision.\n * @method        $this          floorMillennia(float $precision = 1)                                                Truncate the current instance millennium with given precision.\n * @method        $this          ceilMillennium(float $precision = 1)                                                Ceil the current instance millennium with given precision.\n * @method        $this          ceilMillennia(float $precision = 1)                                                 Ceil the current instance millennium with given precision.\n * @method        $this          roundCentury(float $precision = 1, string $function = \"round\")                      Round the current instance century with given precision using the given function.\n * @method        $this          roundCenturies(float $precision = 1, string $function = \"round\")                    Round the current instance century with given precision using the given function.\n * @method        $this          floorCentury(float $precision = 1)                                                  Truncate the current instance century with given precision.\n * @method        $this          floorCenturies(float $precision = 1)                                                Truncate the current instance century with given precision.\n * @method        $this          ceilCentury(float $precision = 1)                                                   Ceil the current instance century with given precision.\n * @method        $this          ceilCenturies(float $precision = 1)                                                 Ceil the current instance century with given precision.\n * @method        $this          roundDecade(float $precision = 1, string $function = \"round\")                       Round the current instance decade with given precision using the given function.\n * @method        $this          roundDecades(float $precision = 1, string $function = \"round\")                      Round the current instance decade with given precision using the given function.\n * @method        $this          floorDecade(float $precision = 1)                                                   Truncate the current instance decade with given precision.\n * @method        $this          floorDecades(float $precision = 1)                                                  Truncate the current instance decade with given precision.\n * @method        $this          ceilDecade(float $precision = 1)                                                    Ceil the current instance decade with given precision.\n * @method        $this          ceilDecades(float $precision = 1)                                                   Ceil the current instance decade with given precision.\n * @method        $this          roundQuarter(float $precision = 1, string $function = \"round\")                      Round the current instance quarter with given precision using the given function.\n * @method        $this          roundQuarters(float $precision = 1, string $function = \"round\")                     Round the current instance quarter with given precision using the given function.\n * @method        $this          floorQuarter(float $precision = 1)                                                  Truncate the current instance quarter with given precision.\n * @method        $this          floorQuarters(float $precision = 1)                                                 Truncate the current instance quarter with given precision.\n * @method        $this          ceilQuarter(float $precision = 1)                                                   Ceil the current instance quarter with given precision.\n * @method        $this          ceilQuarters(float $precision = 1)                                                  Ceil the current instance quarter with given precision.\n * @method        $this          roundMillisecond(float $precision = 1, string $function = \"round\")                  Round the current instance millisecond with given precision using the given function.\n * @method        $this          roundMilliseconds(float $precision = 1, string $function = \"round\")                 Round the current instance millisecond with given precision using the given function.\n * @method        $this          floorMillisecond(float $precision = 1)                                              Truncate the current instance millisecond with given precision.\n * @method        $this          floorMilliseconds(float $precision = 1)                                             Truncate the current instance millisecond with given precision.\n * @method        $this          ceilMillisecond(float $precision = 1)                                               Ceil the current instance millisecond with given precision.\n * @method        $this          ceilMilliseconds(float $precision = 1)                                              Ceil the current instance millisecond with given precision.\n * @method        $this          roundMicrosecond(float $precision = 1, string $function = \"round\")                  Round the current instance microsecond with given precision using the given function.\n * @method        $this          roundMicroseconds(float $precision = 1, string $function = \"round\")                 Round the current instance microsecond with given precision using the given function.\n * @method        $this          floorMicrosecond(float $precision = 1)                                              Truncate the current instance microsecond with given precision.\n * @method        $this          floorMicroseconds(float $precision = 1)                                             Truncate the current instance microsecond with given precision.\n * @method        $this          ceilMicrosecond(float $precision = 1)                                               Ceil the current instance microsecond with given precision.\n * @method        $this          ceilMicroseconds(float $precision = 1)                                              Ceil the current instance microsecond with given precision.\n * @method        string         shortAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n *\n * </autodoc>\n */\nclass Carbon extends DateTime implements CarbonInterface\n{\n    use Date;\n\n    public static function isMutable()\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse Carbon\\Traits\\Date;\nuse DateTimeImmutable;\n\n/**\n * A simple API extension for DateTimeImmutable.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @property      int            $year\n * @property      int            $yearIso\n * @property      int            $month\n * @property      int            $day\n * @property      int            $hour\n * @property      int            $minute\n * @property      int            $second\n * @property      int            $micro\n * @property      int            $microsecond\n * @property      int            $timestamp                                                                          seconds since the Unix Epoch\n * @property      string         $englishDayOfWeek                                                                   the day of week in English\n * @property      string         $shortEnglishDayOfWeek                                                              the abbreviated day of week in English\n * @property      string         $englishMonth                                                                       the month in English\n * @property      string         $shortEnglishMonth                                                                  the abbreviated month in English\n * @property      string         $localeDayOfWeek                                                                    the day of week in current locale LC_TIME\n * @property      string         $shortLocaleDayOfWeek                                                               the abbreviated day of week in current locale LC_TIME\n * @property      string         $localeMonth                                                                        the month in current locale LC_TIME\n * @property      string         $shortLocaleMonth                                                                   the abbreviated month in current locale LC_TIME\n * @property      int            $milliseconds\n * @property      int            $millisecond\n * @property      int            $milli\n * @property      int            $week                                                                               1 through 53\n * @property      int            $isoWeek                                                                            1 through 53\n * @property      int            $weekYear                                                                           year according to week format\n * @property      int            $isoWeekYear                                                                        year according to ISO week format\n * @property      int            $dayOfYear                                                                          1 through 366\n * @property      int            $age                                                                                does a diffInYears() with default parameters\n * @property      int            $offset                                                                             the timezone offset in seconds from UTC\n * @property      int            $offsetMinutes                                                                      the timezone offset in minutes from UTC\n * @property      int            $offsetHours                                                                        the timezone offset in hours from UTC\n * @property      CarbonTimeZone $timezone                                                                           the current timezone\n * @property      CarbonTimeZone $tz                                                                                 alias of $timezone\n * @property-read int            $dayOfWeek                                                                          0 (for Sunday) through 6 (for Saturday)\n * @property-read int            $dayOfWeekIso                                                                       1 (for Monday) through 7 (for Sunday)\n * @property-read int            $weekOfYear                                                                         ISO-8601 week number of year, weeks starting on Monday\n * @property-read int            $daysInMonth                                                                        number of days in the given month\n * @property-read string         $latinMeridiem                                                                      \"am\"/\"pm\" (Ante meridiem or Post meridiem latin lowercase mark)\n * @property-read string         $latinUpperMeridiem                                                                 \"AM\"/\"PM\" (Ante meridiem or Post meridiem latin uppercase mark)\n * @property-read string         $dayName                                                                            long name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortDayName                                                                       short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $minDayName                                                                         very short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $monthName                                                                          long name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortMonthName                                                                     short name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $meridiem                                                                           lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read string         $upperMeridiem                                                                      uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read int            $noZeroHour                                                                         current hour from 1 to 24\n * @property-read int            $weeksInYear                                                                        51 through 53\n * @property-read int            $isoWeeksInYear                                                                     51 through 53\n * @property-read int            $weekOfMonth                                                                        1 through 5\n * @property-read int            $weekNumberInMonth                                                                  1 through 5\n * @property-read int            $firstWeekDay                                                                       0 through 6\n * @property-read int            $lastWeekDay                                                                        0 through 6\n * @property-read int            $daysInYear                                                                         365 or 366\n * @property-read int            $quarter                                                                            the quarter of this instance, 1 - 4\n * @property-read int            $decade                                                                             the decade of this instance\n * @property-read int            $century                                                                            the century of this instance\n * @property-read int            $millennium                                                                         the millennium of this instance\n * @property-read bool           $dst                                                                                daylight savings time indicator, true if DST, false otherwise\n * @property-read bool           $local                                                                              checks if the timezone is local, true if local, false otherwise\n * @property-read bool           $utc                                                                                checks if the timezone is UTC, true if UTC, false otherwise\n * @property-read string         $timezoneName                                                                       the current timezone name\n * @property-read string         $tzName                                                                             alias of $timezoneName\n * @property-read string         $timezoneAbbreviatedName                                                            the current timezone abbreviated name\n * @property-read string         $tzAbbrName                                                                         alias of $timezoneAbbreviatedName\n * @property-read string         $locale                                                                             locale of the current instance\n *\n * @method        bool           isUtc()                                                                             Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)\n * @method        bool           isLocal()                                                                           Check if the current instance has non-UTC timezone.\n * @method        bool           isValid()                                                                           Check if the current instance is a valid date.\n * @method        bool           isDST()                                                                             Check if the current instance is in a daylight saving time.\n * @method        bool           isSunday()                                                                          Checks if the instance day is sunday.\n * @method        bool           isMonday()                                                                          Checks if the instance day is monday.\n * @method        bool           isTuesday()                                                                         Checks if the instance day is tuesday.\n * @method        bool           isWednesday()                                                                       Checks if the instance day is wednesday.\n * @method        bool           isThursday()                                                                        Checks if the instance day is thursday.\n * @method        bool           isFriday()                                                                          Checks if the instance day is friday.\n * @method        bool           isSaturday()                                                                        Checks if the instance day is saturday.\n * @method        bool           isSameYear(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentYear()                                                                     Checks if the instance is in the same year as the current moment.\n * @method        bool           isNextYear()                                                                        Checks if the instance is in the same year as the current moment next year.\n * @method        bool           isLastYear()                                                                        Checks if the instance is in the same year as the current moment last year.\n * @method        bool           isSameWeek(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentWeek()                                                                     Checks if the instance is in the same week as the current moment.\n * @method        bool           isNextWeek()                                                                        Checks if the instance is in the same week as the current moment next week.\n * @method        bool           isLastWeek()                                                                        Checks if the instance is in the same week as the current moment last week.\n * @method        bool           isSameDay(\\DateTimeInterface $date = null)                                          Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDay()                                                                      Checks if the instance is in the same day as the current moment.\n * @method        bool           isNextDay()                                                                         Checks if the instance is in the same day as the current moment next day.\n * @method        bool           isLastDay()                                                                         Checks if the instance is in the same day as the current moment last day.\n * @method        bool           isSameHour(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentHour()                                                                     Checks if the instance is in the same hour as the current moment.\n * @method        bool           isNextHour()                                                                        Checks if the instance is in the same hour as the current moment next hour.\n * @method        bool           isLastHour()                                                                        Checks if the instance is in the same hour as the current moment last hour.\n * @method        bool           isSameMinute(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMinute()                                                                   Checks if the instance is in the same minute as the current moment.\n * @method        bool           isNextMinute()                                                                      Checks if the instance is in the same minute as the current moment next minute.\n * @method        bool           isLastMinute()                                                                      Checks if the instance is in the same minute as the current moment last minute.\n * @method        bool           isSameSecond(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentSecond()                                                                   Checks if the instance is in the same second as the current moment.\n * @method        bool           isNextSecond()                                                                      Checks if the instance is in the same second as the current moment next second.\n * @method        bool           isLastSecond()                                                                      Checks if the instance is in the same second as the current moment last second.\n * @method        bool           isSameMicro(\\DateTimeInterface $date = null)                                        Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicro()                                                                    Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicro()                                                                       Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicro()                                                                       Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isSameMicrosecond(\\DateTimeInterface $date = null)                                  Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicrosecond()                                                              Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isCurrentMonth()                                                                    Checks if the instance is in the same month as the current moment.\n * @method        bool           isNextMonth()                                                                       Checks if the instance is in the same month as the current moment next month.\n * @method        bool           isLastMonth()                                                                       Checks if the instance is in the same month as the current moment last month.\n * @method        bool           isCurrentQuarter()                                                                  Checks if the instance is in the same quarter as the current moment.\n * @method        bool           isNextQuarter()                                                                     Checks if the instance is in the same quarter as the current moment next quarter.\n * @method        bool           isLastQuarter()                                                                     Checks if the instance is in the same quarter as the current moment last quarter.\n * @method        bool           isSameDecade(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDecade()                                                                   Checks if the instance is in the same decade as the current moment.\n * @method        bool           isNextDecade()                                                                      Checks if the instance is in the same decade as the current moment next decade.\n * @method        bool           isLastDecade()                                                                      Checks if the instance is in the same decade as the current moment last decade.\n * @method        bool           isSameCentury(\\DateTimeInterface $date = null)                                      Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentCentury()                                                                  Checks if the instance is in the same century as the current moment.\n * @method        bool           isNextCentury()                                                                     Checks if the instance is in the same century as the current moment next century.\n * @method        bool           isLastCentury()                                                                     Checks if the instance is in the same century as the current moment last century.\n * @method        bool           isSameMillennium(\\DateTimeInterface $date = null)                                   Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMillennium()                                                               Checks if the instance is in the same millennium as the current moment.\n * @method        bool           isNextMillennium()                                                                  Checks if the instance is in the same millennium as the current moment next millennium.\n * @method        bool           isLastMillennium()                                                                  Checks if the instance is in the same millennium as the current moment last millennium.\n * @method        $this          years(int $value)                                                                   Set current instance year to the given value.\n * @method        $this          year(int $value)                                                                    Set current instance year to the given value.\n * @method        $this          setYears(int $value)                                                                Set current instance year to the given value.\n * @method        $this          setYear(int $value)                                                                 Set current instance year to the given value.\n * @method        $this          months(int $value)                                                                  Set current instance month to the given value.\n * @method        $this          month(int $value)                                                                   Set current instance month to the given value.\n * @method        $this          setMonths(int $value)                                                               Set current instance month to the given value.\n * @method        $this          setMonth(int $value)                                                                Set current instance month to the given value.\n * @method        $this          days(int $value)                                                                    Set current instance day to the given value.\n * @method        $this          day(int $value)                                                                     Set current instance day to the given value.\n * @method        $this          setDays(int $value)                                                                 Set current instance day to the given value.\n * @method        $this          setDay(int $value)                                                                  Set current instance day to the given value.\n * @method        $this          hours(int $value)                                                                   Set current instance hour to the given value.\n * @method        $this          hour(int $value)                                                                    Set current instance hour to the given value.\n * @method        $this          setHours(int $value)                                                                Set current instance hour to the given value.\n * @method        $this          setHour(int $value)                                                                 Set current instance hour to the given value.\n * @method        $this          minutes(int $value)                                                                 Set current instance minute to the given value.\n * @method        $this          minute(int $value)                                                                  Set current instance minute to the given value.\n * @method        $this          setMinutes(int $value)                                                              Set current instance minute to the given value.\n * @method        $this          setMinute(int $value)                                                               Set current instance minute to the given value.\n * @method        $this          seconds(int $value)                                                                 Set current instance second to the given value.\n * @method        $this          second(int $value)                                                                  Set current instance second to the given value.\n * @method        $this          setSeconds(int $value)                                                              Set current instance second to the given value.\n * @method        $this          setSecond(int $value)                                                               Set current instance second to the given value.\n * @method        $this          millis(int $value)                                                                  Set current instance millisecond to the given value.\n * @method        $this          milli(int $value)                                                                   Set current instance millisecond to the given value.\n * @method        $this          setMillis(int $value)                                                               Set current instance millisecond to the given value.\n * @method        $this          setMilli(int $value)                                                                Set current instance millisecond to the given value.\n * @method        $this          milliseconds(int $value)                                                            Set current instance millisecond to the given value.\n * @method        $this          millisecond(int $value)                                                             Set current instance millisecond to the given value.\n * @method        $this          setMilliseconds(int $value)                                                         Set current instance millisecond to the given value.\n * @method        $this          setMillisecond(int $value)                                                          Set current instance millisecond to the given value.\n * @method        $this          micros(int $value)                                                                  Set current instance microsecond to the given value.\n * @method        $this          micro(int $value)                                                                   Set current instance microsecond to the given value.\n * @method        $this          setMicros(int $value)                                                               Set current instance microsecond to the given value.\n * @method        $this          setMicro(int $value)                                                                Set current instance microsecond to the given value.\n * @method        $this          microseconds(int $value)                                                            Set current instance microsecond to the given value.\n * @method        $this          microsecond(int $value)                                                             Set current instance microsecond to the given value.\n * @method        $this          setMicroseconds(int $value)                                                         Set current instance microsecond to the given value.\n * @method        $this          setMicrosecond(int $value)                                                          Set current instance microsecond to the given value.\n * @method        $this          addYears(int $value = 1)                                                            Add years (the $value count passed in) to the instance (using date interval).\n * @method        $this          addYear()                                                                           Add one year to the instance (using date interval).\n * @method        $this          subYears(int $value = 1)                                                            Sub years (the $value count passed in) to the instance (using date interval).\n * @method        $this          subYear()                                                                           Sub one year to the instance (using date interval).\n * @method        $this          addYearsWithOverflow(int $value = 1)                                                Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearWithOverflow()                                                               Add one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearsWithOverflow(int $value = 1)                                                Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearWithOverflow()                                                               Sub one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearsWithoutOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithoutOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithoutOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithoutOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsWithNoOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithNoOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithNoOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithNoOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsNoOverflow(int $value = 1)                                                  Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearNoOverflow()                                                                 Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsNoOverflow(int $value = 1)                                                  Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearNoOverflow()                                                                 Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonths(int $value = 1)                                                           Add months (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMonth()                                                                          Add one month to the instance (using date interval).\n * @method        $this          subMonths(int $value = 1)                                                           Sub months (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMonth()                                                                          Sub one month to the instance (using date interval).\n * @method        $this          addMonthsWithOverflow(int $value = 1)                                               Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthWithOverflow()                                                              Add one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthsWithOverflow(int $value = 1)                                               Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthWithOverflow()                                                              Sub one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthsWithoutOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithoutOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithoutOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithoutOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsWithNoOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithNoOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithNoOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithNoOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsNoOverflow(int $value = 1)                                                 Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthNoOverflow()                                                                Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsNoOverflow(int $value = 1)                                                 Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthNoOverflow()                                                                Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDays(int $value = 1)                                                             Add days (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDay()                                                                            Add one day to the instance (using date interval).\n * @method        $this          subDays(int $value = 1)                                                             Sub days (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDay()                                                                            Sub one day to the instance (using date interval).\n * @method        $this          addHours(int $value = 1)                                                            Add hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          addHour()                                                                           Add one hour to the instance (using date interval).\n * @method        $this          subHours(int $value = 1)                                                            Sub hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          subHour()                                                                           Sub one hour to the instance (using date interval).\n * @method        $this          addMinutes(int $value = 1)                                                          Add minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMinute()                                                                         Add one minute to the instance (using date interval).\n * @method        $this          subMinutes(int $value = 1)                                                          Sub minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMinute()                                                                         Sub one minute to the instance (using date interval).\n * @method        $this          addSeconds(int $value = 1)                                                          Add seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addSecond()                                                                         Add one second to the instance (using date interval).\n * @method        $this          subSeconds(int $value = 1)                                                          Sub seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subSecond()                                                                         Sub one second to the instance (using date interval).\n * @method        $this          addMillis(int $value = 1)                                                           Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMilli()                                                                          Add one millisecond to the instance (using date interval).\n * @method        $this          subMillis(int $value = 1)                                                           Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMilli()                                                                          Sub one millisecond to the instance (using date interval).\n * @method        $this          addMilliseconds(int $value = 1)                                                     Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillisecond()                                                                    Add one millisecond to the instance (using date interval).\n * @method        $this          subMilliseconds(int $value = 1)                                                     Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillisecond()                                                                    Sub one millisecond to the instance (using date interval).\n * @method        $this          addMicros(int $value = 1)                                                           Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicro()                                                                          Add one microsecond to the instance (using date interval).\n * @method        $this          subMicros(int $value = 1)                                                           Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicro()                                                                          Sub one microsecond to the instance (using date interval).\n * @method        $this          addMicroseconds(int $value = 1)                                                     Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicrosecond()                                                                    Add one microsecond to the instance (using date interval).\n * @method        $this          subMicroseconds(int $value = 1)                                                     Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicrosecond()                                                                    Sub one microsecond to the instance (using date interval).\n * @method        $this          addMillennia(int $value = 1)                                                        Add millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillennium()                                                                     Add one millennium to the instance (using date interval).\n * @method        $this          subMillennia(int $value = 1)                                                        Sub millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillennium()                                                                     Sub one millennium to the instance (using date interval).\n * @method        $this          addMillenniaWithOverflow(int $value = 1)                                            Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniumWithOverflow()                                                         Add one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniaWithOverflow(int $value = 1)                                            Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniumWithOverflow()                                                         Sub one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniaWithoutOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithoutOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithoutOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithoutOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaWithNoOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithNoOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithNoOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithNoOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaNoOverflow(int $value = 1)                                              Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumNoOverflow()                                                           Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaNoOverflow(int $value = 1)                                              Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumNoOverflow()                                                           Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturies(int $value = 1)                                                        Add centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          addCentury()                                                                        Add one century to the instance (using date interval).\n * @method        $this          subCenturies(int $value = 1)                                                        Sub centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          subCentury()                                                                        Sub one century to the instance (using date interval).\n * @method        $this          addCenturiesWithOverflow(int $value = 1)                                            Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturyWithOverflow()                                                            Add one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturiesWithOverflow(int $value = 1)                                            Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturyWithOverflow()                                                            Sub one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturiesWithoutOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithoutOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithoutOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithoutOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesWithNoOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithNoOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithNoOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithNoOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesNoOverflow(int $value = 1)                                              Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyNoOverflow()                                                              Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesNoOverflow(int $value = 1)                                              Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyNoOverflow()                                                              Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecades(int $value = 1)                                                          Add decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDecade()                                                                         Add one decade to the instance (using date interval).\n * @method        $this          subDecades(int $value = 1)                                                          Sub decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDecade()                                                                         Sub one decade to the instance (using date interval).\n * @method        $this          addDecadesWithOverflow(int $value = 1)                                              Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadeWithOverflow()                                                             Add one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadesWithOverflow(int $value = 1)                                              Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadeWithOverflow()                                                             Sub one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadesWithoutOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithoutOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithoutOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithoutOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesWithNoOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithNoOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithNoOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithNoOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesNoOverflow(int $value = 1)                                                Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeNoOverflow()                                                               Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesNoOverflow(int $value = 1)                                                Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeNoOverflow()                                                               Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarters(int $value = 1)                                                         Add quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          addQuarter()                                                                        Add one quarter to the instance (using date interval).\n * @method        $this          subQuarters(int $value = 1)                                                         Sub quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          subQuarter()                                                                        Sub one quarter to the instance (using date interval).\n * @method        $this          addQuartersWithOverflow(int $value = 1)                                             Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuarterWithOverflow()                                                            Add one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuartersWithOverflow(int $value = 1)                                             Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuarterWithOverflow()                                                            Sub one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuartersWithoutOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithoutOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithoutOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithoutOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersWithNoOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithNoOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithNoOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithNoOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersNoOverflow(int $value = 1)                                               Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterNoOverflow()                                                              Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersNoOverflow(int $value = 1)                                               Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterNoOverflow()                                                              Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addWeeks(int $value = 1)                                                            Add weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeek()                                                                           Add one week to the instance (using date interval).\n * @method        $this          subWeeks(int $value = 1)                                                            Sub weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeek()                                                                           Sub one week to the instance (using date interval).\n * @method        $this          addWeekdays(int $value = 1)                                                         Add weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeekday()                                                                        Add one weekday to the instance (using date interval).\n * @method        $this          subWeekdays(int $value = 1)                                                         Sub weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeekday()                                                                        Sub one weekday to the instance (using date interval).\n * @method        $this          addRealMicros(int $value = 1)                                                       Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicro()                                                                      Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicros(int $value = 1)                                                       Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicro()                                                                      Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMicroseconds(int $value = 1)                                                 Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicrosecond()                                                                Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicroseconds(int $value = 1)                                                 Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicrosecond()                                                                Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMillis(int $value = 1)                                                       Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMilli()                                                                      Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMillis(int $value = 1)                                                       Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMilli()                                                                      Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealMilliseconds(int $value = 1)                                                 Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillisecond()                                                                Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMilliseconds(int $value = 1)                                                 Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillisecond()                                                                Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealSeconds(int $value = 1)                                                      Add seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealSecond()                                                                     Add one second to the instance (using timestamp).\n * @method        $this          subRealSeconds(int $value = 1)                                                      Sub seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealSecond()                                                                     Sub one second to the instance (using timestamp).\n * @method        CarbonPeriod   secondsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.\n * @method        $this          addRealMinutes(int $value = 1)                                                      Add minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMinute()                                                                     Add one minute to the instance (using timestamp).\n * @method        $this          subRealMinutes(int $value = 1)                                                      Sub minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMinute()                                                                     Sub one minute to the instance (using timestamp).\n * @method        CarbonPeriod   minutesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.\n * @method        $this          addRealHours(int $value = 1)                                                        Add hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealHour()                                                                       Add one hour to the instance (using timestamp).\n * @method        $this          subRealHours(int $value = 1)                                                        Sub hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealHour()                                                                       Sub one hour to the instance (using timestamp).\n * @method        CarbonPeriod   hoursUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.\n * @method        $this          addRealDays(int $value = 1)                                                         Add days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDay()                                                                        Add one day to the instance (using timestamp).\n * @method        $this          subRealDays(int $value = 1)                                                         Sub days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDay()                                                                        Sub one day to the instance (using timestamp).\n * @method        CarbonPeriod   daysUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.\n * @method        $this          addRealWeeks(int $value = 1)                                                        Add weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealWeek()                                                                       Add one week to the instance (using timestamp).\n * @method        $this          subRealWeeks(int $value = 1)                                                        Sub weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealWeek()                                                                       Sub one week to the instance (using timestamp).\n * @method        CarbonPeriod   weeksUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.\n * @method        $this          addRealMonths(int $value = 1)                                                       Add months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMonth()                                                                      Add one month to the instance (using timestamp).\n * @method        $this          subRealMonths(int $value = 1)                                                       Sub months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMonth()                                                                      Sub one month to the instance (using timestamp).\n * @method        CarbonPeriod   monthsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.\n * @method        $this          addRealQuarters(int $value = 1)                                                     Add quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealQuarter()                                                                    Add one quarter to the instance (using timestamp).\n * @method        $this          subRealQuarters(int $value = 1)                                                     Sub quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealQuarter()                                                                    Sub one quarter to the instance (using timestamp).\n * @method        CarbonPeriod   quartersUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.\n * @method        $this          addRealYears(int $value = 1)                                                        Add years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealYear()                                                                       Add one year to the instance (using timestamp).\n * @method        $this          subRealYears(int $value = 1)                                                        Sub years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealYear()                                                                       Sub one year to the instance (using timestamp).\n * @method        CarbonPeriod   yearsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.\n * @method        $this          addRealDecades(int $value = 1)                                                      Add decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDecade()                                                                     Add one decade to the instance (using timestamp).\n * @method        $this          subRealDecades(int $value = 1)                                                      Sub decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDecade()                                                                     Sub one decade to the instance (using timestamp).\n * @method        CarbonPeriod   decadesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.\n * @method        $this          addRealCenturies(int $value = 1)                                                    Add centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealCentury()                                                                    Add one century to the instance (using timestamp).\n * @method        $this          subRealCenturies(int $value = 1)                                                    Sub centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealCentury()                                                                    Sub one century to the instance (using timestamp).\n * @method        CarbonPeriod   centuriesUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.\n * @method        $this          addRealMillennia(int $value = 1)                                                    Add millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillennium()                                                                 Add one millennium to the instance (using timestamp).\n * @method        $this          subRealMillennia(int $value = 1)                                                    Sub millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillennium()                                                                 Sub one millennium to the instance (using timestamp).\n * @method        CarbonPeriod   millenniaUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.\n * @method        $this          roundYear(float $precision = 1, string $function = \"round\")                         Round the current instance year with given precision using the given function.\n * @method        $this          roundYears(float $precision = 1, string $function = \"round\")                        Round the current instance year with given precision using the given function.\n * @method        $this          floorYear(float $precision = 1)                                                     Truncate the current instance year with given precision.\n * @method        $this          floorYears(float $precision = 1)                                                    Truncate the current instance year with given precision.\n * @method        $this          ceilYear(float $precision = 1)                                                      Ceil the current instance year with given precision.\n * @method        $this          ceilYears(float $precision = 1)                                                     Ceil the current instance year with given precision.\n * @method        $this          roundMonth(float $precision = 1, string $function = \"round\")                        Round the current instance month with given precision using the given function.\n * @method        $this          roundMonths(float $precision = 1, string $function = \"round\")                       Round the current instance month with given precision using the given function.\n * @method        $this          floorMonth(float $precision = 1)                                                    Truncate the current instance month with given precision.\n * @method        $this          floorMonths(float $precision = 1)                                                   Truncate the current instance month with given precision.\n * @method        $this          ceilMonth(float $precision = 1)                                                     Ceil the current instance month with given precision.\n * @method        $this          ceilMonths(float $precision = 1)                                                    Ceil the current instance month with given precision.\n * @method        $this          roundDay(float $precision = 1, string $function = \"round\")                          Round the current instance day with given precision using the given function.\n * @method        $this          roundDays(float $precision = 1, string $function = \"round\")                         Round the current instance day with given precision using the given function.\n * @method        $this          floorDay(float $precision = 1)                                                      Truncate the current instance day with given precision.\n * @method        $this          floorDays(float $precision = 1)                                                     Truncate the current instance day with given precision.\n * @method        $this          ceilDay(float $precision = 1)                                                       Ceil the current instance day with given precision.\n * @method        $this          ceilDays(float $precision = 1)                                                      Ceil the current instance day with given precision.\n * @method        $this          roundHour(float $precision = 1, string $function = \"round\")                         Round the current instance hour with given precision using the given function.\n * @method        $this          roundHours(float $precision = 1, string $function = \"round\")                        Round the current instance hour with given precision using the given function.\n * @method        $this          floorHour(float $precision = 1)                                                     Truncate the current instance hour with given precision.\n * @method        $this          floorHours(float $precision = 1)                                                    Truncate the current instance hour with given precision.\n * @method        $this          ceilHour(float $precision = 1)                                                      Ceil the current instance hour with given precision.\n * @method        $this          ceilHours(float $precision = 1)                                                     Ceil the current instance hour with given precision.\n * @method        $this          roundMinute(float $precision = 1, string $function = \"round\")                       Round the current instance minute with given precision using the given function.\n * @method        $this          roundMinutes(float $precision = 1, string $function = \"round\")                      Round the current instance minute with given precision using the given function.\n * @method        $this          floorMinute(float $precision = 1)                                                   Truncate the current instance minute with given precision.\n * @method        $this          floorMinutes(float $precision = 1)                                                  Truncate the current instance minute with given precision.\n * @method        $this          ceilMinute(float $precision = 1)                                                    Ceil the current instance minute with given precision.\n * @method        $this          ceilMinutes(float $precision = 1)                                                   Ceil the current instance minute with given precision.\n * @method        $this          roundSecond(float $precision = 1, string $function = \"round\")                       Round the current instance second with given precision using the given function.\n * @method        $this          roundSeconds(float $precision = 1, string $function = \"round\")                      Round the current instance second with given precision using the given function.\n * @method        $this          floorSecond(float $precision = 1)                                                   Truncate the current instance second with given precision.\n * @method        $this          floorSeconds(float $precision = 1)                                                  Truncate the current instance second with given precision.\n * @method        $this          ceilSecond(float $precision = 1)                                                    Ceil the current instance second with given precision.\n * @method        $this          ceilSeconds(float $precision = 1)                                                   Ceil the current instance second with given precision.\n * @method        $this          roundMillennium(float $precision = 1, string $function = \"round\")                   Round the current instance millennium with given precision using the given function.\n * @method        $this          roundMillennia(float $precision = 1, string $function = \"round\")                    Round the current instance millennium with given precision using the given function.\n * @method        $this          floorMillennium(float $precision = 1)                                               Truncate the current instance millennium with given precision.\n * @method        $this          floorMillennia(float $precision = 1)                                                Truncate the current instance millennium with given precision.\n * @method        $this          ceilMillennium(float $precision = 1)                                                Ceil the current instance millennium with given precision.\n * @method        $this          ceilMillennia(float $precision = 1)                                                 Ceil the current instance millennium with given precision.\n * @method        $this          roundCentury(float $precision = 1, string $function = \"round\")                      Round the current instance century with given precision using the given function.\n * @method        $this          roundCenturies(float $precision = 1, string $function = \"round\")                    Round the current instance century with given precision using the given function.\n * @method        $this          floorCentury(float $precision = 1)                                                  Truncate the current instance century with given precision.\n * @method        $this          floorCenturies(float $precision = 1)                                                Truncate the current instance century with given precision.\n * @method        $this          ceilCentury(float $precision = 1)                                                   Ceil the current instance century with given precision.\n * @method        $this          ceilCenturies(float $precision = 1)                                                 Ceil the current instance century with given precision.\n * @method        $this          roundDecade(float $precision = 1, string $function = \"round\")                       Round the current instance decade with given precision using the given function.\n * @method        $this          roundDecades(float $precision = 1, string $function = \"round\")                      Round the current instance decade with given precision using the given function.\n * @method        $this          floorDecade(float $precision = 1)                                                   Truncate the current instance decade with given precision.\n * @method        $this          floorDecades(float $precision = 1)                                                  Truncate the current instance decade with given precision.\n * @method        $this          ceilDecade(float $precision = 1)                                                    Ceil the current instance decade with given precision.\n * @method        $this          ceilDecades(float $precision = 1)                                                   Ceil the current instance decade with given precision.\n * @method        $this          roundQuarter(float $precision = 1, string $function = \"round\")                      Round the current instance quarter with given precision using the given function.\n * @method        $this          roundQuarters(float $precision = 1, string $function = \"round\")                     Round the current instance quarter with given precision using the given function.\n * @method        $this          floorQuarter(float $precision = 1)                                                  Truncate the current instance quarter with given precision.\n * @method        $this          floorQuarters(float $precision = 1)                                                 Truncate the current instance quarter with given precision.\n * @method        $this          ceilQuarter(float $precision = 1)                                                   Ceil the current instance quarter with given precision.\n * @method        $this          ceilQuarters(float $precision = 1)                                                  Ceil the current instance quarter with given precision.\n * @method        $this          roundMillisecond(float $precision = 1, string $function = \"round\")                  Round the current instance millisecond with given precision using the given function.\n * @method        $this          roundMilliseconds(float $precision = 1, string $function = \"round\")                 Round the current instance millisecond with given precision using the given function.\n * @method        $this          floorMillisecond(float $precision = 1)                                              Truncate the current instance millisecond with given precision.\n * @method        $this          floorMilliseconds(float $precision = 1)                                             Truncate the current instance millisecond with given precision.\n * @method        $this          ceilMillisecond(float $precision = 1)                                               Ceil the current instance millisecond with given precision.\n * @method        $this          ceilMilliseconds(float $precision = 1)                                              Ceil the current instance millisecond with given precision.\n * @method        $this          roundMicrosecond(float $precision = 1, string $function = \"round\")                  Round the current instance microsecond with given precision using the given function.\n * @method        $this          roundMicroseconds(float $precision = 1, string $function = \"round\")                 Round the current instance microsecond with given precision using the given function.\n * @method        $this          floorMicrosecond(float $precision = 1)                                              Truncate the current instance microsecond with given precision.\n * @method        $this          floorMicroseconds(float $precision = 1)                                             Truncate the current instance microsecond with given precision.\n * @method        $this          ceilMicrosecond(float $precision = 1)                                               Ceil the current instance microsecond with given precision.\n * @method        $this          ceilMicroseconds(float $precision = 1)                                              Ceil the current instance microsecond with given precision.\n * @method        string         shortAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n *\n * </autodoc>\n */\nclass CarbonImmutable extends DateTimeImmutable implements CarbonInterface\n{\n    use Date;\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/CarbonInterface.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse Closure;\nuse DateInterval;\nuse DateTime;\nuse DateTimeInterface;\nuse InvalidArgumentException;\nuse JsonSerializable;\nuse ReflectionException;\n\n/**\n * Common interface for Carbon and CarbonImmutable.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @property      int            $year\n * @property      int            $yearIso\n * @property      int            $month\n * @property      int            $day\n * @property      int            $hour\n * @property      int            $minute\n * @property      int            $second\n * @property      int            $micro\n * @property      int            $microsecond\n * @property      int            $timestamp                                                                          seconds since the Unix Epoch\n * @property      string         $englishDayOfWeek                                                                   the day of week in English\n * @property      string         $shortEnglishDayOfWeek                                                              the abbreviated day of week in English\n * @property      string         $englishMonth                                                                       the month in English\n * @property      string         $shortEnglishMonth                                                                  the abbreviated month in English\n * @property      string         $localeDayOfWeek                                                                    the day of week in current locale LC_TIME\n * @property      string         $shortLocaleDayOfWeek                                                               the abbreviated day of week in current locale LC_TIME\n * @property      string         $localeMonth                                                                        the month in current locale LC_TIME\n * @property      string         $shortLocaleMonth                                                                   the abbreviated month in current locale LC_TIME\n * @property      int            $milliseconds\n * @property      int            $millisecond\n * @property      int            $milli\n * @property      int            $week                                                                               1 through 53\n * @property      int            $isoWeek                                                                            1 through 53\n * @property      int            $weekYear                                                                           year according to week format\n * @property      int            $isoWeekYear                                                                        year according to ISO week format\n * @property      int            $dayOfYear                                                                          1 through 366\n * @property      int            $age                                                                                does a diffInYears() with default parameters\n * @property      int            $offset                                                                             the timezone offset in seconds from UTC\n * @property      int            $offsetMinutes                                                                      the timezone offset in minutes from UTC\n * @property      int            $offsetHours                                                                        the timezone offset in hours from UTC\n * @property      CarbonTimeZone $timezone                                                                           the current timezone\n * @property      CarbonTimeZone $tz                                                                                 alias of $timezone\n * @property-read int            $dayOfWeek                                                                          0 (for Sunday) through 6 (for Saturday)\n * @property-read int            $dayOfWeekIso                                                                       1 (for Monday) through 7 (for Sunday)\n * @property-read int            $weekOfYear                                                                         ISO-8601 week number of year, weeks starting on Monday\n * @property-read int            $daysInMonth                                                                        number of days in the given month\n * @property-read string         $latinMeridiem                                                                      \"am\"/\"pm\" (Ante meridiem or Post meridiem latin lowercase mark)\n * @property-read string         $latinUpperMeridiem                                                                 \"AM\"/\"PM\" (Ante meridiem or Post meridiem latin uppercase mark)\n * @property-read string         $dayName                                                                            long name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortDayName                                                                       short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $minDayName                                                                         very short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $monthName                                                                          long name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortMonthName                                                                     short name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $meridiem                                                                           lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read string         $upperMeridiem                                                                      uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read int            $noZeroHour                                                                         current hour from 1 to 24\n * @property-read int            $weeksInYear                                                                        51 through 53\n * @property-read int            $isoWeeksInYear                                                                     51 through 53\n * @property-read int            $weekOfMonth                                                                        1 through 5\n * @property-read int            $weekNumberInMonth                                                                  1 through 5\n * @property-read int            $firstWeekDay                                                                       0 through 6\n * @property-read int            $lastWeekDay                                                                        0 through 6\n * @property-read int            $daysInYear                                                                         365 or 366\n * @property-read int            $quarter                                                                            the quarter of this instance, 1 - 4\n * @property-read int            $decade                                                                             the decade of this instance\n * @property-read int            $century                                                                            the century of this instance\n * @property-read int            $millennium                                                                         the millennium of this instance\n * @property-read bool           $dst                                                                                daylight savings time indicator, true if DST, false otherwise\n * @property-read bool           $local                                                                              checks if the timezone is local, true if local, false otherwise\n * @property-read bool           $utc                                                                                checks if the timezone is UTC, true if UTC, false otherwise\n * @property-read string         $timezoneName                                                                       the current timezone name\n * @property-read string         $tzName                                                                             alias of $timezoneName\n * @property-read string         $timezoneAbbreviatedName                                                            the current timezone abbreviated name\n * @property-read string         $tzAbbrName                                                                         alias of $timezoneAbbreviatedName\n * @property-read string         $locale                                                                             locale of the current instance\n *\n * @method        bool           isUtc()                                                                             Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)\n * @method        bool           isLocal()                                                                           Check if the current instance has non-UTC timezone.\n * @method        bool           isValid()                                                                           Check if the current instance is a valid date.\n * @method        bool           isDST()                                                                             Check if the current instance is in a daylight saving time.\n * @method        bool           isSunday()                                                                          Checks if the instance day is sunday.\n * @method        bool           isMonday()                                                                          Checks if the instance day is monday.\n * @method        bool           isTuesday()                                                                         Checks if the instance day is tuesday.\n * @method        bool           isWednesday()                                                                       Checks if the instance day is wednesday.\n * @method        bool           isThursday()                                                                        Checks if the instance day is thursday.\n * @method        bool           isFriday()                                                                          Checks if the instance day is friday.\n * @method        bool           isSaturday()                                                                        Checks if the instance day is saturday.\n * @method        bool           isSameYear(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentYear()                                                                     Checks if the instance is in the same year as the current moment.\n * @method        bool           isNextYear()                                                                        Checks if the instance is in the same year as the current moment next year.\n * @method        bool           isLastYear()                                                                        Checks if the instance is in the same year as the current moment last year.\n * @method        bool           isSameWeek(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentWeek()                                                                     Checks if the instance is in the same week as the current moment.\n * @method        bool           isNextWeek()                                                                        Checks if the instance is in the same week as the current moment next week.\n * @method        bool           isLastWeek()                                                                        Checks if the instance is in the same week as the current moment last week.\n * @method        bool           isSameDay(\\DateTimeInterface $date = null)                                          Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDay()                                                                      Checks if the instance is in the same day as the current moment.\n * @method        bool           isNextDay()                                                                         Checks if the instance is in the same day as the current moment next day.\n * @method        bool           isLastDay()                                                                         Checks if the instance is in the same day as the current moment last day.\n * @method        bool           isSameHour(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentHour()                                                                     Checks if the instance is in the same hour as the current moment.\n * @method        bool           isNextHour()                                                                        Checks if the instance is in the same hour as the current moment next hour.\n * @method        bool           isLastHour()                                                                        Checks if the instance is in the same hour as the current moment last hour.\n * @method        bool           isSameMinute(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMinute()                                                                   Checks if the instance is in the same minute as the current moment.\n * @method        bool           isNextMinute()                                                                      Checks if the instance is in the same minute as the current moment next minute.\n * @method        bool           isLastMinute()                                                                      Checks if the instance is in the same minute as the current moment last minute.\n * @method        bool           isSameSecond(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentSecond()                                                                   Checks if the instance is in the same second as the current moment.\n * @method        bool           isNextSecond()                                                                      Checks if the instance is in the same second as the current moment next second.\n * @method        bool           isLastSecond()                                                                      Checks if the instance is in the same second as the current moment last second.\n * @method        bool           isSameMicro(\\DateTimeInterface $date = null)                                        Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicro()                                                                    Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicro()                                                                       Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicro()                                                                       Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isSameMicrosecond(\\DateTimeInterface $date = null)                                  Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicrosecond()                                                              Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isCurrentMonth()                                                                    Checks if the instance is in the same month as the current moment.\n * @method        bool           isNextMonth()                                                                       Checks if the instance is in the same month as the current moment next month.\n * @method        bool           isLastMonth()                                                                       Checks if the instance is in the same month as the current moment last month.\n * @method        bool           isCurrentQuarter()                                                                  Checks if the instance is in the same quarter as the current moment.\n * @method        bool           isNextQuarter()                                                                     Checks if the instance is in the same quarter as the current moment next quarter.\n * @method        bool           isLastQuarter()                                                                     Checks if the instance is in the same quarter as the current moment last quarter.\n * @method        bool           isSameDecade(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDecade()                                                                   Checks if the instance is in the same decade as the current moment.\n * @method        bool           isNextDecade()                                                                      Checks if the instance is in the same decade as the current moment next decade.\n * @method        bool           isLastDecade()                                                                      Checks if the instance is in the same decade as the current moment last decade.\n * @method        bool           isSameCentury(\\DateTimeInterface $date = null)                                      Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentCentury()                                                                  Checks if the instance is in the same century as the current moment.\n * @method        bool           isNextCentury()                                                                     Checks if the instance is in the same century as the current moment next century.\n * @method        bool           isLastCentury()                                                                     Checks if the instance is in the same century as the current moment last century.\n * @method        bool           isSameMillennium(\\DateTimeInterface $date = null)                                   Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMillennium()                                                               Checks if the instance is in the same millennium as the current moment.\n * @method        bool           isNextMillennium()                                                                  Checks if the instance is in the same millennium as the current moment next millennium.\n * @method        bool           isLastMillennium()                                                                  Checks if the instance is in the same millennium as the current moment last millennium.\n * @method        $this          years(int $value)                                                                   Set current instance year to the given value.\n * @method        $this          year(int $value)                                                                    Set current instance year to the given value.\n * @method        $this          setYears(int $value)                                                                Set current instance year to the given value.\n * @method        $this          setYear(int $value)                                                                 Set current instance year to the given value.\n * @method        $this          months(int $value)                                                                  Set current instance month to the given value.\n * @method        $this          month(int $value)                                                                   Set current instance month to the given value.\n * @method        $this          setMonths(int $value)                                                               Set current instance month to the given value.\n * @method        $this          setMonth(int $value)                                                                Set current instance month to the given value.\n * @method        $this          days(int $value)                                                                    Set current instance day to the given value.\n * @method        $this          day(int $value)                                                                     Set current instance day to the given value.\n * @method        $this          setDays(int $value)                                                                 Set current instance day to the given value.\n * @method        $this          setDay(int $value)                                                                  Set current instance day to the given value.\n * @method        $this          hours(int $value)                                                                   Set current instance hour to the given value.\n * @method        $this          hour(int $value)                                                                    Set current instance hour to the given value.\n * @method        $this          setHours(int $value)                                                                Set current instance hour to the given value.\n * @method        $this          setHour(int $value)                                                                 Set current instance hour to the given value.\n * @method        $this          minutes(int $value)                                                                 Set current instance minute to the given value.\n * @method        $this          minute(int $value)                                                                  Set current instance minute to the given value.\n * @method        $this          setMinutes(int $value)                                                              Set current instance minute to the given value.\n * @method        $this          setMinute(int $value)                                                               Set current instance minute to the given value.\n * @method        $this          seconds(int $value)                                                                 Set current instance second to the given value.\n * @method        $this          second(int $value)                                                                  Set current instance second to the given value.\n * @method        $this          setSeconds(int $value)                                                              Set current instance second to the given value.\n * @method        $this          setSecond(int $value)                                                               Set current instance second to the given value.\n * @method        $this          millis(int $value)                                                                  Set current instance millisecond to the given value.\n * @method        $this          milli(int $value)                                                                   Set current instance millisecond to the given value.\n * @method        $this          setMillis(int $value)                                                               Set current instance millisecond to the given value.\n * @method        $this          setMilli(int $value)                                                                Set current instance millisecond to the given value.\n * @method        $this          milliseconds(int $value)                                                            Set current instance millisecond to the given value.\n * @method        $this          millisecond(int $value)                                                             Set current instance millisecond to the given value.\n * @method        $this          setMilliseconds(int $value)                                                         Set current instance millisecond to the given value.\n * @method        $this          setMillisecond(int $value)                                                          Set current instance millisecond to the given value.\n * @method        $this          micros(int $value)                                                                  Set current instance microsecond to the given value.\n * @method        $this          micro(int $value)                                                                   Set current instance microsecond to the given value.\n * @method        $this          setMicros(int $value)                                                               Set current instance microsecond to the given value.\n * @method        $this          setMicro(int $value)                                                                Set current instance microsecond to the given value.\n * @method        $this          microseconds(int $value)                                                            Set current instance microsecond to the given value.\n * @method        $this          microsecond(int $value)                                                             Set current instance microsecond to the given value.\n * @method        $this          setMicroseconds(int $value)                                                         Set current instance microsecond to the given value.\n * @method        $this          setMicrosecond(int $value)                                                          Set current instance microsecond to the given value.\n * @method        $this          addYears(int $value = 1)                                                            Add years (the $value count passed in) to the instance (using date interval).\n * @method        $this          addYear()                                                                           Add one year to the instance (using date interval).\n * @method        $this          subYears(int $value = 1)                                                            Sub years (the $value count passed in) to the instance (using date interval).\n * @method        $this          subYear()                                                                           Sub one year to the instance (using date interval).\n * @method        $this          addYearsWithOverflow(int $value = 1)                                                Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearWithOverflow()                                                               Add one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearsWithOverflow(int $value = 1)                                                Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearWithOverflow()                                                               Sub one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearsWithoutOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithoutOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithoutOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithoutOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsWithNoOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithNoOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithNoOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithNoOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsNoOverflow(int $value = 1)                                                  Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearNoOverflow()                                                                 Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsNoOverflow(int $value = 1)                                                  Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearNoOverflow()                                                                 Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonths(int $value = 1)                                                           Add months (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMonth()                                                                          Add one month to the instance (using date interval).\n * @method        $this          subMonths(int $value = 1)                                                           Sub months (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMonth()                                                                          Sub one month to the instance (using date interval).\n * @method        $this          addMonthsWithOverflow(int $value = 1)                                               Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthWithOverflow()                                                              Add one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthsWithOverflow(int $value = 1)                                               Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthWithOverflow()                                                              Sub one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthsWithoutOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithoutOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithoutOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithoutOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsWithNoOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithNoOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithNoOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithNoOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsNoOverflow(int $value = 1)                                                 Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthNoOverflow()                                                                Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsNoOverflow(int $value = 1)                                                 Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthNoOverflow()                                                                Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDays(int $value = 1)                                                             Add days (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDay()                                                                            Add one day to the instance (using date interval).\n * @method        $this          subDays(int $value = 1)                                                             Sub days (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDay()                                                                            Sub one day to the instance (using date interval).\n * @method        $this          addHours(int $value = 1)                                                            Add hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          addHour()                                                                           Add one hour to the instance (using date interval).\n * @method        $this          subHours(int $value = 1)                                                            Sub hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          subHour()                                                                           Sub one hour to the instance (using date interval).\n * @method        $this          addMinutes(int $value = 1)                                                          Add minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMinute()                                                                         Add one minute to the instance (using date interval).\n * @method        $this          subMinutes(int $value = 1)                                                          Sub minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMinute()                                                                         Sub one minute to the instance (using date interval).\n * @method        $this          addSeconds(int $value = 1)                                                          Add seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addSecond()                                                                         Add one second to the instance (using date interval).\n * @method        $this          subSeconds(int $value = 1)                                                          Sub seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subSecond()                                                                         Sub one second to the instance (using date interval).\n * @method        $this          addMillis(int $value = 1)                                                           Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMilli()                                                                          Add one millisecond to the instance (using date interval).\n * @method        $this          subMillis(int $value = 1)                                                           Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMilli()                                                                          Sub one millisecond to the instance (using date interval).\n * @method        $this          addMilliseconds(int $value = 1)                                                     Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillisecond()                                                                    Add one millisecond to the instance (using date interval).\n * @method        $this          subMilliseconds(int $value = 1)                                                     Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillisecond()                                                                    Sub one millisecond to the instance (using date interval).\n * @method        $this          addMicros(int $value = 1)                                                           Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicro()                                                                          Add one microsecond to the instance (using date interval).\n * @method        $this          subMicros(int $value = 1)                                                           Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicro()                                                                          Sub one microsecond to the instance (using date interval).\n * @method        $this          addMicroseconds(int $value = 1)                                                     Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicrosecond()                                                                    Add one microsecond to the instance (using date interval).\n * @method        $this          subMicroseconds(int $value = 1)                                                     Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicrosecond()                                                                    Sub one microsecond to the instance (using date interval).\n * @method        $this          addMillennia(int $value = 1)                                                        Add millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillennium()                                                                     Add one millennium to the instance (using date interval).\n * @method        $this          subMillennia(int $value = 1)                                                        Sub millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillennium()                                                                     Sub one millennium to the instance (using date interval).\n * @method        $this          addMillenniaWithOverflow(int $value = 1)                                            Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniumWithOverflow()                                                         Add one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniaWithOverflow(int $value = 1)                                            Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniumWithOverflow()                                                         Sub one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniaWithoutOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithoutOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithoutOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithoutOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaWithNoOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithNoOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithNoOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithNoOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaNoOverflow(int $value = 1)                                              Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumNoOverflow()                                                           Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaNoOverflow(int $value = 1)                                              Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumNoOverflow()                                                           Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturies(int $value = 1)                                                        Add centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          addCentury()                                                                        Add one century to the instance (using date interval).\n * @method        $this          subCenturies(int $value = 1)                                                        Sub centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          subCentury()                                                                        Sub one century to the instance (using date interval).\n * @method        $this          addCenturiesWithOverflow(int $value = 1)                                            Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturyWithOverflow()                                                            Add one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturiesWithOverflow(int $value = 1)                                            Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturyWithOverflow()                                                            Sub one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturiesWithoutOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithoutOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithoutOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithoutOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesWithNoOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithNoOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithNoOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithNoOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesNoOverflow(int $value = 1)                                              Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyNoOverflow()                                                              Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesNoOverflow(int $value = 1)                                              Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyNoOverflow()                                                              Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecades(int $value = 1)                                                          Add decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDecade()                                                                         Add one decade to the instance (using date interval).\n * @method        $this          subDecades(int $value = 1)                                                          Sub decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDecade()                                                                         Sub one decade to the instance (using date interval).\n * @method        $this          addDecadesWithOverflow(int $value = 1)                                              Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadeWithOverflow()                                                             Add one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadesWithOverflow(int $value = 1)                                              Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadeWithOverflow()                                                             Sub one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadesWithoutOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithoutOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithoutOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithoutOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesWithNoOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithNoOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithNoOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithNoOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesNoOverflow(int $value = 1)                                                Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeNoOverflow()                                                               Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesNoOverflow(int $value = 1)                                                Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeNoOverflow()                                                               Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarters(int $value = 1)                                                         Add quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          addQuarter()                                                                        Add one quarter to the instance (using date interval).\n * @method        $this          subQuarters(int $value = 1)                                                         Sub quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          subQuarter()                                                                        Sub one quarter to the instance (using date interval).\n * @method        $this          addQuartersWithOverflow(int $value = 1)                                             Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuarterWithOverflow()                                                            Add one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuartersWithOverflow(int $value = 1)                                             Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuarterWithOverflow()                                                            Sub one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuartersWithoutOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithoutOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithoutOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithoutOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersWithNoOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithNoOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithNoOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithNoOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersNoOverflow(int $value = 1)                                               Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterNoOverflow()                                                              Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersNoOverflow(int $value = 1)                                               Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterNoOverflow()                                                              Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addWeeks(int $value = 1)                                                            Add weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeek()                                                                           Add one week to the instance (using date interval).\n * @method        $this          subWeeks(int $value = 1)                                                            Sub weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeek()                                                                           Sub one week to the instance (using date interval).\n * @method        $this          addWeekdays(int $value = 1)                                                         Add weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeekday()                                                                        Add one weekday to the instance (using date interval).\n * @method        $this          subWeekdays(int $value = 1)                                                         Sub weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeekday()                                                                        Sub one weekday to the instance (using date interval).\n * @method        $this          addRealMicros(int $value = 1)                                                       Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicro()                                                                      Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicros(int $value = 1)                                                       Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicro()                                                                      Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMicroseconds(int $value = 1)                                                 Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicrosecond()                                                                Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicroseconds(int $value = 1)                                                 Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicrosecond()                                                                Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMillis(int $value = 1)                                                       Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMilli()                                                                      Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMillis(int $value = 1)                                                       Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMilli()                                                                      Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealMilliseconds(int $value = 1)                                                 Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillisecond()                                                                Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMilliseconds(int $value = 1)                                                 Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillisecond()                                                                Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealSeconds(int $value = 1)                                                      Add seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealSecond()                                                                     Add one second to the instance (using timestamp).\n * @method        $this          subRealSeconds(int $value = 1)                                                      Sub seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealSecond()                                                                     Sub one second to the instance (using timestamp).\n * @method        CarbonPeriod   secondsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.\n * @method        $this          addRealMinutes(int $value = 1)                                                      Add minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMinute()                                                                     Add one minute to the instance (using timestamp).\n * @method        $this          subRealMinutes(int $value = 1)                                                      Sub minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMinute()                                                                     Sub one minute to the instance (using timestamp).\n * @method        CarbonPeriod   minutesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.\n * @method        $this          addRealHours(int $value = 1)                                                        Add hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealHour()                                                                       Add one hour to the instance (using timestamp).\n * @method        $this          subRealHours(int $value = 1)                                                        Sub hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealHour()                                                                       Sub one hour to the instance (using timestamp).\n * @method        CarbonPeriod   hoursUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.\n * @method        $this          addRealDays(int $value = 1)                                                         Add days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDay()                                                                        Add one day to the instance (using timestamp).\n * @method        $this          subRealDays(int $value = 1)                                                         Sub days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDay()                                                                        Sub one day to the instance (using timestamp).\n * @method        CarbonPeriod   daysUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.\n * @method        $this          addRealWeeks(int $value = 1)                                                        Add weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealWeek()                                                                       Add one week to the instance (using timestamp).\n * @method        $this          subRealWeeks(int $value = 1)                                                        Sub weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealWeek()                                                                       Sub one week to the instance (using timestamp).\n * @method        CarbonPeriod   weeksUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.\n * @method        $this          addRealMonths(int $value = 1)                                                       Add months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMonth()                                                                      Add one month to the instance (using timestamp).\n * @method        $this          subRealMonths(int $value = 1)                                                       Sub months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMonth()                                                                      Sub one month to the instance (using timestamp).\n * @method        CarbonPeriod   monthsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.\n * @method        $this          addRealQuarters(int $value = 1)                                                     Add quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealQuarter()                                                                    Add one quarter to the instance (using timestamp).\n * @method        $this          subRealQuarters(int $value = 1)                                                     Sub quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealQuarter()                                                                    Sub one quarter to the instance (using timestamp).\n * @method        CarbonPeriod   quartersUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.\n * @method        $this          addRealYears(int $value = 1)                                                        Add years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealYear()                                                                       Add one year to the instance (using timestamp).\n * @method        $this          subRealYears(int $value = 1)                                                        Sub years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealYear()                                                                       Sub one year to the instance (using timestamp).\n * @method        CarbonPeriod   yearsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.\n * @method        $this          addRealDecades(int $value = 1)                                                      Add decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDecade()                                                                     Add one decade to the instance (using timestamp).\n * @method        $this          subRealDecades(int $value = 1)                                                      Sub decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDecade()                                                                     Sub one decade to the instance (using timestamp).\n * @method        CarbonPeriod   decadesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.\n * @method        $this          addRealCenturies(int $value = 1)                                                    Add centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealCentury()                                                                    Add one century to the instance (using timestamp).\n * @method        $this          subRealCenturies(int $value = 1)                                                    Sub centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealCentury()                                                                    Sub one century to the instance (using timestamp).\n * @method        CarbonPeriod   centuriesUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.\n * @method        $this          addRealMillennia(int $value = 1)                                                    Add millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillennium()                                                                 Add one millennium to the instance (using timestamp).\n * @method        $this          subRealMillennia(int $value = 1)                                                    Sub millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillennium()                                                                 Sub one millennium to the instance (using timestamp).\n * @method        CarbonPeriod   millenniaUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.\n * @method        $this          roundYear(float $precision = 1, string $function = \"round\")                         Round the current instance year with given precision using the given function.\n * @method        $this          roundYears(float $precision = 1, string $function = \"round\")                        Round the current instance year with given precision using the given function.\n * @method        $this          floorYear(float $precision = 1)                                                     Truncate the current instance year with given precision.\n * @method        $this          floorYears(float $precision = 1)                                                    Truncate the current instance year with given precision.\n * @method        $this          ceilYear(float $precision = 1)                                                      Ceil the current instance year with given precision.\n * @method        $this          ceilYears(float $precision = 1)                                                     Ceil the current instance year with given precision.\n * @method        $this          roundMonth(float $precision = 1, string $function = \"round\")                        Round the current instance month with given precision using the given function.\n * @method        $this          roundMonths(float $precision = 1, string $function = \"round\")                       Round the current instance month with given precision using the given function.\n * @method        $this          floorMonth(float $precision = 1)                                                    Truncate the current instance month with given precision.\n * @method        $this          floorMonths(float $precision = 1)                                                   Truncate the current instance month with given precision.\n * @method        $this          ceilMonth(float $precision = 1)                                                     Ceil the current instance month with given precision.\n * @method        $this          ceilMonths(float $precision = 1)                                                    Ceil the current instance month with given precision.\n * @method        $this          roundDay(float $precision = 1, string $function = \"round\")                          Round the current instance day with given precision using the given function.\n * @method        $this          roundDays(float $precision = 1, string $function = \"round\")                         Round the current instance day with given precision using the given function.\n * @method        $this          floorDay(float $precision = 1)                                                      Truncate the current instance day with given precision.\n * @method        $this          floorDays(float $precision = 1)                                                     Truncate the current instance day with given precision.\n * @method        $this          ceilDay(float $precision = 1)                                                       Ceil the current instance day with given precision.\n * @method        $this          ceilDays(float $precision = 1)                                                      Ceil the current instance day with given precision.\n * @method        $this          roundHour(float $precision = 1, string $function = \"round\")                         Round the current instance hour with given precision using the given function.\n * @method        $this          roundHours(float $precision = 1, string $function = \"round\")                        Round the current instance hour with given precision using the given function.\n * @method        $this          floorHour(float $precision = 1)                                                     Truncate the current instance hour with given precision.\n * @method        $this          floorHours(float $precision = 1)                                                    Truncate the current instance hour with given precision.\n * @method        $this          ceilHour(float $precision = 1)                                                      Ceil the current instance hour with given precision.\n * @method        $this          ceilHours(float $precision = 1)                                                     Ceil the current instance hour with given precision.\n * @method        $this          roundMinute(float $precision = 1, string $function = \"round\")                       Round the current instance minute with given precision using the given function.\n * @method        $this          roundMinutes(float $precision = 1, string $function = \"round\")                      Round the current instance minute with given precision using the given function.\n * @method        $this          floorMinute(float $precision = 1)                                                   Truncate the current instance minute with given precision.\n * @method        $this          floorMinutes(float $precision = 1)                                                  Truncate the current instance minute with given precision.\n * @method        $this          ceilMinute(float $precision = 1)                                                    Ceil the current instance minute with given precision.\n * @method        $this          ceilMinutes(float $precision = 1)                                                   Ceil the current instance minute with given precision.\n * @method        $this          roundSecond(float $precision = 1, string $function = \"round\")                       Round the current instance second with given precision using the given function.\n * @method        $this          roundSeconds(float $precision = 1, string $function = \"round\")                      Round the current instance second with given precision using the given function.\n * @method        $this          floorSecond(float $precision = 1)                                                   Truncate the current instance second with given precision.\n * @method        $this          floorSeconds(float $precision = 1)                                                  Truncate the current instance second with given precision.\n * @method        $this          ceilSecond(float $precision = 1)                                                    Ceil the current instance second with given precision.\n * @method        $this          ceilSeconds(float $precision = 1)                                                   Ceil the current instance second with given precision.\n * @method        $this          roundMillennium(float $precision = 1, string $function = \"round\")                   Round the current instance millennium with given precision using the given function.\n * @method        $this          roundMillennia(float $precision = 1, string $function = \"round\")                    Round the current instance millennium with given precision using the given function.\n * @method        $this          floorMillennium(float $precision = 1)                                               Truncate the current instance millennium with given precision.\n * @method        $this          floorMillennia(float $precision = 1)                                                Truncate the current instance millennium with given precision.\n * @method        $this          ceilMillennium(float $precision = 1)                                                Ceil the current instance millennium with given precision.\n * @method        $this          ceilMillennia(float $precision = 1)                                                 Ceil the current instance millennium with given precision.\n * @method        $this          roundCentury(float $precision = 1, string $function = \"round\")                      Round the current instance century with given precision using the given function.\n * @method        $this          roundCenturies(float $precision = 1, string $function = \"round\")                    Round the current instance century with given precision using the given function.\n * @method        $this          floorCentury(float $precision = 1)                                                  Truncate the current instance century with given precision.\n * @method        $this          floorCenturies(float $precision = 1)                                                Truncate the current instance century with given precision.\n * @method        $this          ceilCentury(float $precision = 1)                                                   Ceil the current instance century with given precision.\n * @method        $this          ceilCenturies(float $precision = 1)                                                 Ceil the current instance century with given precision.\n * @method        $this          roundDecade(float $precision = 1, string $function = \"round\")                       Round the current instance decade with given precision using the given function.\n * @method        $this          roundDecades(float $precision = 1, string $function = \"round\")                      Round the current instance decade with given precision using the given function.\n * @method        $this          floorDecade(float $precision = 1)                                                   Truncate the current instance decade with given precision.\n * @method        $this          floorDecades(float $precision = 1)                                                  Truncate the current instance decade with given precision.\n * @method        $this          ceilDecade(float $precision = 1)                                                    Ceil the current instance decade with given precision.\n * @method        $this          ceilDecades(float $precision = 1)                                                   Ceil the current instance decade with given precision.\n * @method        $this          roundQuarter(float $precision = 1, string $function = \"round\")                      Round the current instance quarter with given precision using the given function.\n * @method        $this          roundQuarters(float $precision = 1, string $function = \"round\")                     Round the current instance quarter with given precision using the given function.\n * @method        $this          floorQuarter(float $precision = 1)                                                  Truncate the current instance quarter with given precision.\n * @method        $this          floorQuarters(float $precision = 1)                                                 Truncate the current instance quarter with given precision.\n * @method        $this          ceilQuarter(float $precision = 1)                                                   Ceil the current instance quarter with given precision.\n * @method        $this          ceilQuarters(float $precision = 1)                                                  Ceil the current instance quarter with given precision.\n * @method        $this          roundMillisecond(float $precision = 1, string $function = \"round\")                  Round the current instance millisecond with given precision using the given function.\n * @method        $this          roundMilliseconds(float $precision = 1, string $function = \"round\")                 Round the current instance millisecond with given precision using the given function.\n * @method        $this          floorMillisecond(float $precision = 1)                                              Truncate the current instance millisecond with given precision.\n * @method        $this          floorMilliseconds(float $precision = 1)                                             Truncate the current instance millisecond with given precision.\n * @method        $this          ceilMillisecond(float $precision = 1)                                               Ceil the current instance millisecond with given precision.\n * @method        $this          ceilMilliseconds(float $precision = 1)                                              Ceil the current instance millisecond with given precision.\n * @method        $this          roundMicrosecond(float $precision = 1, string $function = \"round\")                  Round the current instance microsecond with given precision using the given function.\n * @method        $this          roundMicroseconds(float $precision = 1, string $function = \"round\")                 Round the current instance microsecond with given precision using the given function.\n * @method        $this          floorMicrosecond(float $precision = 1)                                              Truncate the current instance microsecond with given precision.\n * @method        $this          floorMicroseconds(float $precision = 1)                                             Truncate the current instance microsecond with given precision.\n * @method        $this          ceilMicrosecond(float $precision = 1)                                               Ceil the current instance microsecond with given precision.\n * @method        $this          ceilMicroseconds(float $precision = 1)                                              Ceil the current instance microsecond with given precision.\n * @method        string         shortAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n *\n * </autodoc>\n */\ninterface CarbonInterface extends DateTimeInterface, JsonSerializable\n{\n    /**\n     * Diff wording options(expressed in octal).\n     */\n    public const NO_ZERO_DIFF = 01;\n    public const JUST_NOW = 02;\n    public const ONE_DAY_WORDS = 04;\n    public const TWO_DAY_WORDS = 010;\n    public const SEQUENTIAL_PARTS_ONLY = 020;\n\n    /**\n     * Diff syntax options.\n     */\n    public const DIFF_ABSOLUTE = 1; // backward compatibility with true\n    public const DIFF_RELATIVE_AUTO = 0; // backward compatibility with false\n    public const DIFF_RELATIVE_TO_NOW = 2;\n    public const DIFF_RELATIVE_TO_OTHER = 3;\n\n    /**\n     * Translate string options.\n     */\n    public const TRANSLATE_MONTHS = 1;\n    public const TRANSLATE_DAYS = 2;\n    public const TRANSLATE_UNITS = 4;\n    public const TRANSLATE_MERIDIEM = 8;\n    public const TRANSLATE_ALL = self::TRANSLATE_MONTHS | self::TRANSLATE_DAYS | self::TRANSLATE_UNITS | self::TRANSLATE_MERIDIEM;\n\n    /**\n     * The day constants.\n     */\n    public const SUNDAY = 0;\n    public const MONDAY = 1;\n    public const TUESDAY = 2;\n    public const WEDNESDAY = 3;\n    public const THURSDAY = 4;\n    public const FRIDAY = 5;\n    public const SATURDAY = 6;\n\n    /**\n     * Number of X in Y.\n     */\n    public const YEARS_PER_MILLENNIUM = 1000;\n    public const YEARS_PER_CENTURY = 100;\n    public const YEARS_PER_DECADE = 10;\n    public const MONTHS_PER_YEAR = 12;\n    public const MONTHS_PER_QUARTER = 3;\n    public const WEEKS_PER_YEAR = 52;\n    public const WEEKS_PER_MONTH = 4;\n    public const DAYS_PER_WEEK = 7;\n    public const HOURS_PER_DAY = 24;\n    public const MINUTES_PER_HOUR = 60;\n    public const SECONDS_PER_MINUTE = 60;\n    public const MILLISECONDS_PER_SECOND = 1000;\n    public const MICROSECONDS_PER_MILLISECOND = 1000;\n    public const MICROSECONDS_PER_SECOND = 1000000;\n\n    /**\n     * RFC7231 DateTime format.\n     *\n     * @var string\n     */\n    public const RFC7231_FORMAT = 'D, d M Y H:i:s \\G\\M\\T';\n\n    /**\n     * Default format to use for __toString method when type juggling occurs.\n     *\n     * @var string\n     */\n    public const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s';\n\n    /**\n     * Format for converting mocked time, includes microseconds.\n     *\n     * @var string\n     */\n    public const MOCK_DATETIME_FORMAT = 'Y-m-d H:i:s.u';\n\n    /**\n     * Pattern detection for ->isoFormat and ::createFromIsoFormat.\n     *\n     * @var string\n     */\n    public const ISO_FORMAT_REGEXP = '(O[YMDHhms]|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY?|g{1,5}|G{1,5}|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?)';\n\n    // <methods>\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @throws \\BadMethodCallException|\\ReflectionException\n     *\n     * @return mixed\n     */\n    public function __call($method, $parameters);\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @throws \\BadMethodCallException\n     *\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters);\n\n    /**\n     * Create a new Carbon instance.\n     *\n     * Please see the testing aids section (specifically static::setTestNow())\n     * for more on the possibility of this constructor returning a test instance.\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     */\n    public function __construct($time = null, $tz = null);\n\n    /**\n     * Show truthy properties on var_dump().\n     *\n     * @return array\n     */\n    public function __debugInfo();\n\n    /**\n     * Get a part of the Carbon object\n     *\n     * @param string $name\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return string|int|bool|\\DateTimeZone|null\n     */\n    public function __get($name);\n\n    /**\n     * Check if an attribute exists on the object\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function __isset($name);\n\n    /**\n     * Set a part of the Carbon object\n     *\n     * @param string                   $name\n     * @param string|int|\\DateTimeZone $value\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return void\n     */\n    public function __set($name, $value);\n\n    /**\n     * The __set_state handler.\n     *\n     * @param string|array $dump\n     *\n     * @return static\n     */\n    public static function __set_state($dump);\n\n    /**\n     * Returns the list of properties to dump on serialize() called on.\n     *\n     * @return array\n     */\n    public function __sleep();\n\n    /**\n     * Format the instance as a string using the set format\n     *\n     * @example\n     * ```\n     * echo Carbon::now(); // Carbon instances can be casted to string\n     * ```\n     *\n     * @return string\n     */\n    public function __toString();\n\n    /**\n     * Add given units or interval to the current instance.\n     *\n     * @example $date->add('hour', 3)\n     * @example $date->add(15, 'days')\n     * @example $date->add(CarbonInterval::days(4))\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function add($unit, $value = 1, $overflow = null);\n\n    /**\n     * Add seconds to the instance using timestamp. Positive $value travels\n     * forward while negative $value travels into the past.\n     *\n     * @param string $unit\n     * @param int    $value\n     *\n     * @return static\n     */\n    public function addRealUnit($unit, $value = 1);\n\n    /**\n     * Add given units to the current instance.\n     *\n     * @param string    $unit\n     * @param int       $value\n     * @param bool|null $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function addUnit($unit, $value = 1, $overflow = null);\n\n    /**\n     * Add any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        amount to add to the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function addUnitNoOverflow($valueUnit, $value, $overflowUnit);\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given to now\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single part)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function ago($syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Modify the current instance to the average of a given instance (default now) and the current instance\n     * (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date\n     *\n     * @return static\n     */\n    public function average($date = null);\n\n    /**\n     * Determines if the instance is between two others\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     * @param bool                                    $equal Indicates if an equal to comparison should be done\n     *\n     * @return bool\n     */\n    public function between($date1, $date2, $equal = true): bool;\n\n    /**\n     * Returns either the close date \"Friday 15h30\", or a calendar date \"10/09/2017\" is farthest than 7 days from now.\n     *\n     * @param Carbon|\\DateTimeInterface|string|null $referenceTime\n     * @param array                                 $formats\n     *\n     * @return string\n     */\n    public function calendar($referenceTime = null, array $formats = []);\n\n    /**\n     * Cast the current instance into the given class.\n     *\n     * @param string $className The $className::instance() method will be called to cast the current object.\n     *\n     * @return object\n     */\n    public function cast(string $className);\n\n    /**\n     * Ceil the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function ceil($precision = 1);\n\n    /**\n     * Ceil the current instance at the given unit with given precision if specified.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function ceilUnit($unit, $precision = 1);\n\n    /**\n     * Ceil the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function ceilWeek($weekStartsAt = null);\n\n    /**\n     * Similar to native modify() method of DateTime but can handle more grammars.\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->change('next 2pm');\n     * ```\n     *\n     * @link https://php.net/manual/en/datetime.modify.php\n     *\n     * @param string $modifier\n     *\n     * @return static\n     */\n    public function change($modifier);\n\n    /**\n     * @alias copy\n     *\n     * Get a copy of the instance.\n     *\n     * @return static\n     */\n    public function clone();\n\n    /**\n     * Get the closest date from the instance (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     *\n     * @return static\n     */\n    public function closest($date1, $date2);\n\n    /**\n     * Get a copy of the instance.\n     *\n     * @return static\n     */\n    public function copy();\n\n    /**\n     * Create a new Carbon instance from a specific date and time.\n     *\n     * If any of $year, $month or $day are set to null their now() values will\n     * be used.\n     *\n     * If $hour is null it will be set to its now() value and the default\n     * values for $minute and $second will be their now() values.\n     *\n     * If $hour is not null then the default values for $minute and $second\n     * will be 0.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null);\n\n    /**\n     * Create a Carbon instance from just a date. The time portion is set to now.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromDate($year = null, $month = null, $day = null, $tz = null);\n\n    /**\n     * Create a Carbon instance from a specific format.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromFormat($format, $time, $tz = null);\n\n    /**\n     * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).\n     *\n     * @param string                                             $format     Datetime format\n     * @param string                                             $time\n     * @param \\DateTimeZone|string|false|null                    $tz         optional timezone\n     * @param string|null                                        $locale     locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use)\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator optional custom translator to use for macro-formats\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null);\n\n    /**\n     * Create a Carbon instance from a specific format and a string in a given language.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $locale\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromLocaleFormat($format, $locale, $time, $tz = null);\n\n    /**\n     * Create a Carbon instance from a specific ISO format and a string in a given language.\n     *\n     * @param string                          $format Datetime ISO format\n     * @param string                          $locale\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null);\n\n    /**\n     * Create a Carbon instance from just a time. The date portion is set to today.\n     *\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null);\n\n    /**\n     * Create a Carbon instance from a time string. The date portion is set to today.\n     *\n     * @param string                    $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromTimeString($time, $tz = null);\n\n    /**\n     * Create a Carbon instance from a timestamp.\n     *\n     * @param int                       $timestamp\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createFromTimestamp($timestamp, $tz = null);\n\n    /**\n     * Create a Carbon instance from a timestamp in milliseconds.\n     *\n     * @param int                       $timestamp\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createFromTimestampMs($timestamp, $tz = null);\n\n    /**\n     * Create a Carbon instance from an UTC timestamp.\n     *\n     * @param int $timestamp\n     *\n     * @return static\n     */\n    public static function createFromTimestampUTC($timestamp);\n\n    /**\n     * Create a Carbon instance from just a date. The time portion is set to midnight.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null);\n\n    /**\n     * Create a new safe Carbon instance from a specific date and time.\n     *\n     * If any of $year, $month or $day are set to null their now() values will\n     * be used.\n     *\n     * If $hour is null it will be set to its now() value and the default\n     * values for $minute and $second will be their now() values.\n     *\n     * If $hour is not null then the default values for $minute and $second\n     * will be 0.\n     *\n     * If one of the set values is not valid, an \\InvalidArgumentException\n     * will be thrown.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\Carbon\\Exceptions\\InvalidDateException|\\InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null);\n\n    /**\n     * Get/set the day of year.\n     *\n     * @param int|null $value new value for day of year if using as setter.\n     *\n     * @return static|int\n     */\n    public function dayOfYear($value = null);\n\n    /**\n     * Get the difference as a CarbonInterval instance\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return CarbonInterval\n     */\n    public function diffAsCarbonInterval($date = null, $absolute = true);\n\n    /**\n     * Get the difference by the given interval using a filter closure\n     *\n     * @param CarbonInterval                                         $ci       An interval to traverse by\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffFiltered(CarbonInterval $ci, \\Closure $callback, $date = null, $absolute = true);\n\n    /**\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @example\n     * ```\n     * echo Carbon::tomorrow()->diffForHumans() . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . \"\\n\";\n     * ```\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Get the difference in days\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInDays($date = null, $absolute = true);\n\n    /**\n     * Get the difference in days using a filter closure\n     *\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInDaysFiltered(\\Closure $callback, $date = null, $absolute = true);\n\n    /**\n     * Get the difference in hours.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInHours($date = null, $absolute = true);\n\n    /**\n     * Get the difference in hours using a filter closure\n     *\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInHoursFiltered(\\Closure $callback, $date = null, $absolute = true);\n\n    /**\n     * Get the difference in microseconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMicroseconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in milliseconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMilliseconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in minutes.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMinutes($date = null, $absolute = true);\n\n    /**\n     * Get the difference in months\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMonths($date = null, $absolute = true);\n\n    /**\n     * Get the difference in hours using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealHours($date = null, $absolute = true);\n\n    /**\n     * Get the difference in microseconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMicroseconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in milliseconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMilliseconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in minutes using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMinutes($date = null, $absolute = true);\n\n    /**\n     * Get the difference in seconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealSeconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in seconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInSeconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in weekdays\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeekdays($date = null, $absolute = true);\n\n    /**\n     * Get the difference in weekend days using a filter\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeekendDays($date = null, $absolute = true);\n\n    /**\n     * Get the difference in weeks\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeeks($date = null, $absolute = true);\n\n    /**\n     * Get the difference in years\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInYears($date = null, $absolute = true);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOption\n     */\n    public static function disableHumanDiffOption($humanDiffOption);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOption\n     */\n    public static function enableHumanDiffOption($humanDiffOption);\n\n    /**\n     * Modify to end of current given unit.\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOf('month')\n     *   ->endOf('week', Carbon::FRIDAY);\n     * ```\n     *\n     * @param string            $unit\n     * @param array<int, mixed> $params\n     *\n     * @return static\n     */\n    public function endOf($unit, ...$params);\n\n    /**\n     * Resets the date to end of the century and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfCentury();\n\n    /**\n     * Resets the time to 23:59:59.999999 end of day\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfDay();\n\n    /**\n     * Resets the date to end of the decade and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfDecade();\n\n    /**\n     * Modify to end of current hour, minutes and seconds become 59\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfHour();\n\n    /**\n     * Resets the date to end of the century and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMillennium();\n\n    /**\n     * Modify to end of current minute, seconds become 59\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMinute();\n\n    /**\n     * Resets the date to end of the month and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMonth();\n\n    /**\n     * Resets the date to end of the quarter and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfQuarter();\n\n    /**\n     * Modify to end of current second, microseconds become 999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->endOfSecond()\n     *   ->format('H:i:s.u');\n     * ```\n     *\n     * @return static\n     */\n    public function endOfSecond();\n\n    /**\n     * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . \"\\n\";\n     * ```\n     *\n     * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week\n     *\n     * @return static\n     */\n    public function endOfWeek($weekEndsAt = null);\n\n    /**\n     * Resets the date to end of the year and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfYear();\n\n    /**\n     * Determines if the instance is equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see equalTo()\n     *\n     * @return bool\n     */\n    public function eq($date): bool;\n\n    /**\n     * Determines if the instance is equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function equalTo($date): bool;\n\n    /**\n     * Set the current locale to the given, execute the passed function, reset the locale to previous one,\n     * then return the result of the closure (or null if the closure was void).\n     *\n     * @param string   $locale locale ex. en\n     * @param callable $func\n     *\n     * @return mixed\n     */\n    public static function executeWithLocale($locale, $func);\n\n    /**\n     * Get the farthest date from the instance (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     *\n     * @return static\n     */\n    public function farthest($date1, $date2);\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current month. If no dayOfWeek is provided, modify to the\n     * first day of the current month.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek\n     *\n     * @return static\n     */\n    public function firstOfMonth($dayOfWeek = null);\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current quarter. If no dayOfWeek is provided, modify to the\n     * first day of the current quarter.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function firstOfQuarter($dayOfWeek = null);\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current year. If no dayOfWeek is provided, modify to the\n     * first day of the current year.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function firstOfYear($dayOfWeek = null);\n\n    /**\n     * Get the difference in days as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInDays($date = null, $absolute = true);\n\n    /**\n     * Get the difference in hours as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInHours($date = null, $absolute = true);\n\n    /**\n     * Get the difference in minutes as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInMinutes($date = null, $absolute = true);\n\n    /**\n     * Get the difference in months as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInMonths($date = null, $absolute = true);\n\n    /**\n     * Get the difference in days as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealDays($date = null, $absolute = true);\n\n    /**\n     * Get the difference in hours as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealHours($date = null, $absolute = true);\n\n    /**\n     * Get the difference in minutes as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealMinutes($date = null, $absolute = true);\n\n    /**\n     * Get the difference in months as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealMonths($date = null, $absolute = true);\n\n    /**\n     * Get the difference in seconds as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealSeconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in year as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealYears($date = null, $absolute = true);\n\n    /**\n     * Get the difference in seconds as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInSeconds($date = null, $absolute = true);\n\n    /**\n     * Get the difference in year as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInYears($date = null, $absolute = true);\n\n    /**\n     * Round the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function floor($precision = 1);\n\n    /**\n     * Truncate the current instance at the given unit with given precision if specified.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function floorUnit($unit, $precision = 1);\n\n    /**\n     * Truncate the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function floorWeek($weekStartsAt = null);\n\n    /**\n     * Format the instance with the current locale.  You can set the current\n     * locale using setlocale() http://php.net/setlocale.\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function formatLocalized($format);\n\n    /**\n     * @alias diffForHumans\n     *\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Get the difference in a human readable format in the current locale from current\n     * instance to now.\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function fromNow($syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Create an instance from a serialized string.\n     *\n     * @param string $value\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function fromSerialized($value);\n\n    /**\n     * Register a custom macro.\n     *\n     * @param object|callable $macro\n     * @param int             $priority marco with higher priority is tried first\n     *\n     * @return void\n     */\n    public static function genericMacro($macro, $priority = 0);\n\n    /**\n     * Get a part of the Carbon object\n     *\n     * @param string $name\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return string|int|bool|\\DateTimeZone|null\n     */\n    public function get($name);\n\n    /**\n     * Returns the alternative number if available in the current locale.\n     *\n     * @param string $key date property\n     *\n     * @return string\n     */\n    public function getAltNumber(string $key): string;\n\n    /**\n     * Returns the list of internally available locales and already loaded custom locales.\n     * (It will ignore custom translator dynamic loading.)\n     *\n     * @return array\n     */\n    public static function getAvailableLocales();\n\n    /**\n     * Returns list of Language object for each available locale. This object allow you to get the ISO name, native\n     * name, region and variant of the locale.\n     *\n     * @return Language[]\n     */\n    public static function getAvailableLocalesInfo();\n\n    /**\n     * Returns list of calendar formats for ISO formatting.\n     *\n     * @param string|null $locale current locale used if null\n     *\n     * @return array\n     */\n    public function getCalendarFormats($locale = null);\n\n    /**\n     * Get the days of the week\n     *\n     * @return array\n     */\n    public static function getDays();\n\n    /**\n     * Get the fallback locale.\n     *\n     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales\n     *\n     * @return string|null\n     */\n    public static function getFallbackLocale();\n\n    /**\n     * List of replacements from date() format to isoFormat().\n     *\n     * @return array\n     */\n    public static function getFormatsToIsoReplacements();\n\n    /**\n     * Return default humanDiff() options (merged flags as integer).\n     *\n     * @return int\n     */\n    public static function getHumanDiffOptions();\n\n    /**\n     * Returns list of locale formats for ISO formatting.\n     *\n     * @param string|null $locale current locale used if null\n     *\n     * @return array\n     */\n    public function getIsoFormats($locale = null);\n\n    /**\n     * Returns list of locale units for ISO formatting.\n     *\n     * @return array\n     */\n    public static function getIsoUnits();\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function getLastErrors();\n\n    /**\n     * Get the translator of the current instance or the default if none set.\n     *\n     * @return \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    public function getLocalTranslator();\n\n    /**\n     * Get the current translator locale.\n     *\n     * @return string\n     */\n    public static function getLocale();\n\n    /**\n     * get midday/noon hour\n     *\n     * @return int\n     */\n    public static function getMidDayAt();\n\n    /**\n     * Returns the offset hour and minute formatted with +/- and a given separator (\":\" by default).\n     * For example, if the time zone is 9 hours 30 minutes, you'll get \"+09:30\", with \"@@\" as first\n     * argument, \"+09@@30\", with \"\" as first argument, \"+0930\". Negative offset will return something\n     * like \"-12:00\".\n     *\n     * @param string $separator string to place between hours and minutes (\":\" by default)\n     *\n     * @return string\n     */\n    public function getOffsetString($separator = ':');\n\n    /**\n     * Returns a unit of the instance padded with 0 by default or any other string if specified.\n     *\n     * @param string $unit      Carbon unit name\n     * @param int    $length    Length of the output (2 by default)\n     * @param string $padString String to use for padding (\"0\" by default)\n     * @param int    $padType   Side(s) to pad (STR_PAD_LEFT by default)\n     *\n     * @return string\n     */\n    public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = 0);\n\n    /**\n     * Returns a timestamp rounded with the given precision (6 by default).\n     *\n     * @example getPreciseTimestamp()   1532087464437474 (microsecond maximum precision)\n     * @example getPreciseTimestamp(6)  1532087464437474\n     * @example getPreciseTimestamp(5)  153208746443747  (1/100000 second precision)\n     * @example getPreciseTimestamp(4)  15320874644375   (1/10000 second precision)\n     * @example getPreciseTimestamp(3)  1532087464437    (millisecond precision)\n     * @example getPreciseTimestamp(2)  153208746444     (1/100 second precision)\n     * @example getPreciseTimestamp(1)  15320874644      (1/10 second precision)\n     * @example getPreciseTimestamp(0)  1532087464       (second precision)\n     * @example getPreciseTimestamp(-1) 153208746        (10 second precision)\n     * @example getPreciseTimestamp(-2) 15320875         (100 second precision)\n     *\n     * @param int $precision\n     *\n     * @return float\n     */\n    public function getPreciseTimestamp($precision = 6);\n\n    /**\n     * Returns current local settings.\n     *\n     * @return array\n     */\n    public function getSettings();\n\n    /**\n     * Get the Carbon instance (real or mock) to be returned when a \"now\"\n     * instance is created.\n     *\n     * @return static the current instance used for testing\n     */\n    public static function getTestNow();\n\n    /**\n     * Get the translation of the current week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context      whole format string\n     * @param string      $keySuffix    \"\", \"_short\" or \"_min\"\n     * @param string|null $defaultValue default value if translation missing\n     *\n     * @return string\n     */\n    public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null);\n\n    /**\n     * Get the translation of the current abbreviated week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedMinDayName($context = null);\n\n    /**\n     * Get the translation of the current month day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context      whole format string\n     * @param string      $keySuffix    \"\" or \"_short\"\n     * @param string|null $defaultValue default value if translation missing\n     *\n     * @return string\n     */\n    public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null);\n\n    /**\n     * Get the translation of the current short week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedShortDayName($context = null);\n\n    /**\n     * Get the translation of the current short month day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedShortMonthName($context = null);\n\n    /**\n     * Returns raw translation message for a given key.\n     *\n     * @param string                                             $key        key to find\n     * @param string|null                                        $locale     current locale used if null\n     * @param string|null                                        $default    default value if translation returns the key\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator an optional translator to use\n     *\n     * @return string\n     */\n    public function getTranslationMessage(string $key, string $locale = null, string $default = null, $translator = null);\n\n    /**\n     * Returns raw translation message for a given key.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator the translator to use\n     * @param string                                             $key        key to find\n     * @param string|null                                        $locale     current locale used if null\n     * @param string|null                                        $default    default value if translation returns the key\n     *\n     * @return string\n     */\n    public static function getTranslationMessageWith($translator, string $key, string $locale = null, string $default = null);\n\n    /**\n     * Get the default translator instance in use.\n     *\n     * @return \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    public static function getTranslator();\n\n    /**\n     * Get the last day of week\n     *\n     * @return int\n     */\n    public static function getWeekEndsAt();\n\n    /**\n     * Get the first day of week\n     *\n     * @return int\n     */\n    public static function getWeekStartsAt();\n\n    /**\n     * Get weekend days\n     *\n     * @return array\n     */\n    public static function getWeekendDays();\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function greaterThan($date): bool;\n\n    /**\n     * Determines if the instance is greater (after) than or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function greaterThanOrEqualTo($date): bool;\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThan()\n     *\n     * @return bool\n     */\n    public function gt($date): bool;\n\n    /**\n     * Determines if the instance is greater (after) than or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThanOrEqualTo()\n     *\n     * @return bool\n     */\n    public function gte($date): bool;\n\n    /**\n     * Checks if the (date)time string is in a given format.\n     *\n     * @param string $date\n     * @param string $format\n     *\n     * @return bool\n     */\n    public static function hasFormat($date, $format);\n\n    /**\n     * Checks if macro is registered.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public static function hasMacro($name);\n\n    /**\n     * Determine if a time string will produce a relative date.\n     *\n     * @param string $time\n     *\n     * @return bool true if time match a relative date, false if absolute or invalid time string\n     */\n    public static function hasRelativeKeywords($time);\n\n    /**\n     * Determine if there is a valid test instance set. A valid test instance\n     * is anything that is not null.\n     *\n     * @return bool true if there is a test instance, otherwise false\n     */\n    public static function hasTestNow();\n\n    /**\n     * Create a Carbon instance from a DateTime one.\n     *\n     * @param \\DateTimeInterface $date\n     *\n     * @return static\n     */\n    public static function instance($date);\n\n    /**\n     * Returns true if the current date matches the given string.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true\n     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true\n     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false\n     * ```\n     *\n     * @param string $tester day name, month name, hour, date, etc. as string\n     *\n     * @return bool\n     */\n    public function is(string $tester);\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThan()\n     *\n     * @return bool\n     */\n    public function isAfter($date): bool;\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThan()\n     *\n     * @return bool\n     */\n    public function isBefore($date): bool;\n\n    /**\n     * Determines if the instance is between two others\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     * @param bool                                    $equal Indicates if an equal to comparison should be done\n     *\n     * @return bool\n     */\n    public function isBetween($date1, $date2, $equal = true): bool;\n\n    /**\n     * Check if its the birthday. Compares the date/month values of the two dates.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date The instance to compare with or null to use current day.\n     *\n     * @return bool\n     */\n    public function isBirthday($date = null);\n\n    /**\n     * Determines if the instance is in the current unit given.\n     *\n     * @param string $unit The unit to test.\n     *\n     * @throws \\BadMethodCallException\n     *\n     * @return bool\n     */\n    public function isCurrentUnit($unit);\n\n    /**\n     * Checks if this day is a specific day of the week.\n     *\n     * @param int $dayOfWeek\n     *\n     * @return bool\n     */\n    public function isDayOfWeek($dayOfWeek);\n\n    /**\n     * Check if the instance is end of day.\n     *\n     * @param bool $checkMicroseconds check time at microseconds precision\n     *\n     * @return bool\n     */\n    public function isEndOfDay($checkMicroseconds = false);\n\n    /**\n     * Determines if the instance is in the future, ie. greater (after) than now.\n     *\n     * @return bool\n     */\n    public function isFuture();\n\n    /**\n     * Returns true if the current class/instance is immutable.\n     *\n     * @return bool\n     */\n    public static function isImmutable();\n\n    /**\n     * Check if today is the last day of the Month\n     *\n     * @return bool\n     */\n    public function isLastOfMonth();\n\n    /**\n     * Determines if the instance is a leap year.\n     *\n     * @return bool\n     */\n    public function isLeapYear();\n\n    /**\n     * Determines if the instance is a long year\n     *\n     * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates\n     *\n     * @return bool\n     */\n    public function isLongYear();\n\n    /**\n     * Check if the instance is midday.\n     *\n     * @return bool\n     */\n    public function isMidday();\n\n    /**\n     * Check if the instance is start of day / midnight.\n     *\n     * @return bool\n     */\n    public function isMidnight();\n\n    /**\n     * Returns true if a property can be changed via setter.\n     *\n     * @param string $unit\n     *\n     * @return bool\n     */\n    public static function isModifiableUnit($unit);\n\n    public static function isMutable();\n\n    /**\n     * Determines if the instance is in the past, ie. less (before) than now.\n     *\n     * @return bool\n     */\n    public function isPast();\n\n    /**\n     * Compares the formatted values of the two dates.\n     *\n     * @param string                                 $format date formats to compare.\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date   instance to compare with or null to use current day.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return bool\n     */\n    public function isSameAs($format, $date = null);\n\n    /**\n     * Checks if the passed in date is in the same month as the instance´s month.\n     *\n     * Note that this defaults to only comparing the month while ignoring the year.\n     * To test if it is the same exact month of the same year, pass in true as the second parameter.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date       The instance to compare with or null to use the current date.\n     * @param bool                                   $ofSameYear Check if it is the same month in the same year.\n     *\n     * @return bool\n     */\n    public function isSameMonth($date = null, $ofSameYear = true);\n\n    /**\n     * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date       The instance to compare with or null to use current day.\n     * @param bool                                   $ofSameYear Check if it is the same month in the same year.\n     *\n     * @return bool\n     */\n    public function isSameQuarter($date = null, $ofSameYear = true);\n\n    /**\n     * Determines if the instance is in the current unit given.\n     *\n     * @param string                                 $unit singular unit string\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date instance to compare with or null to use current day.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return bool\n     */\n    public function isSameUnit($unit, $date = null);\n\n    /**\n     * Check if the instance is start of day / midnight.\n     *\n     * @param bool $checkMicroseconds check time at microseconds precision\n     *\n     * @return bool\n     */\n    public function isStartOfDay($checkMicroseconds = false);\n\n    /**\n     * Returns true if the strict mode is globally in use, false else.\n     * (It can be overridden in specific instances.)\n     *\n     * @return bool\n     */\n    public static function isStrictModeEnabled();\n\n    /**\n     * Determines if the instance is today.\n     *\n     * @return bool\n     */\n    public function isToday();\n\n    /**\n     * Determines if the instance is tomorrow.\n     *\n     * @return bool\n     */\n    public function isTomorrow();\n\n    /**\n     * Determines if the instance is a weekday.\n     *\n     * @return bool\n     */\n    public function isWeekday();\n\n    /**\n     * Determines if the instance is a weekend day.\n     *\n     * @return bool\n     */\n    public function isWeekend();\n\n    /**\n     * Determines if the instance is yesterday.\n     *\n     * @return bool\n     */\n    public function isYesterday();\n\n    /**\n     * Format in the current language using ISO replacement patterns.\n     *\n     * @param string      $format\n     * @param string|null $originalFormat provide context if a chunk has been passed alone\n     *\n     * @return string\n     */\n    public function isoFormat(string $format, string $originalFormat = null): string;\n\n    /**\n     * Get/set the week number using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $week\n     * @param int|null $dayOfWeek\n     * @param int|null $dayOfYear\n     *\n     * @return int|static\n     */\n    public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Set/get the week number of year using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int|static\n     */\n    public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday).\n     *\n     * @param int|null $value new value for weekday if using as setter.\n     *\n     * @return static|int\n     */\n    public function isoWeekday($value = null);\n\n    /**\n     * Get the number of weeks of the current week-year using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int\n     */\n    public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Prepare the object for JSON serialization.\n     *\n     * @return array|string\n     */\n    public function jsonSerialize();\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current month. If no dayOfWeek is provided, modify to the\n     * last day of the current month.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek\n     *\n     * @return static\n     */\n    public function lastOfMonth($dayOfWeek = null);\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current quarter. If no dayOfWeek is provided, modify to the\n     * last day of the current quarter.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function lastOfQuarter($dayOfWeek = null);\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current year. If no dayOfWeek is provided, modify to the\n     * last day of the current year.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function lastOfYear($dayOfWeek = null);\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function lessThan($date): bool;\n\n    /**\n     * Determines if the instance is less (before) or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function lessThanOrEqualTo($date): bool;\n\n    /**\n     * Get/set the locale for the current instance.\n     *\n     * @param string|null $locale\n     * @param string[]    ...$fallbackLocales\n     *\n     * @return $this|string\n     */\n    public function locale(string $locale = null, ...$fallbackLocales);\n\n    /**\n     * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).\n     * Support is considered enabled if the 3 words are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffOneDayWords($locale);\n\n    /**\n     * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).\n     * Support is considered enabled if the 4 sentences are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffSyntax($locale);\n\n    /**\n     * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).\n     * Support is considered enabled if the 2 words are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffTwoDayWords($locale);\n\n    /**\n     * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).\n     * Support is considered enabled if the 4 sentences are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasPeriodSyntax($locale);\n\n    /**\n     * Returns true if the given locale is internally supported and has short-units support.\n     * Support is considered enabled if either year, day or hour has a short variant translated.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasShortUnits($locale);\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThan()\n     *\n     * @return bool\n     */\n    public function lt($date): bool;\n\n    /**\n     * Determines if the instance is less (before) or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThanOrEqualTo()\n     *\n     * @return bool\n     */\n    public function lte($date): bool;\n\n    /**\n     * Register a custom macro.\n     *\n     * @example\n     * ```\n     * $userSettings = [\n     *   'locale' => 'pt',\n     *   'timezone' => 'America/Sao_Paulo',\n     * ];\n     * Carbon::macro('userFormat', function () use ($userSettings) {\n     *   return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar();\n     * });\n     * echo Carbon::yesterday()->hours(11)->userFormat();\n     * ```\n     *\n     * @param string          $name\n     * @param object|callable $macro\n     *\n     * @return void\n     */\n    public static function macro($name, $macro);\n\n    /**\n     * Make a Carbon instance from given variable if possible.\n     *\n     * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals\n     * and recurrences). Throw an exception for invalid format, but otherwise return null.\n     *\n     * @param mixed $var\n     *\n     * @return static|null\n     */\n    public static function make($var);\n\n    /**\n     * Get the maximum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return static\n     */\n    public function max($date = null);\n\n    /**\n     * Create a Carbon instance for the greatest supported date.\n     *\n     * @return static\n     */\n    public static function maxValue();\n\n    /**\n     * Get the maximum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see max()\n     *\n     * @return static\n     */\n    public function maximum($date = null);\n\n    /**\n     * Return the meridiem of the current time in the current locale.\n     *\n     * @param bool $isLower if true, returns lowercase variant if available in the current locale.\n     *\n     * @return string\n     */\n    public function meridiem(bool $isLower = false): string;\n\n    /**\n     * Modify to midday, default to self::$midDayAt\n     *\n     * @return static\n     */\n    public function midDay();\n\n    /**\n     * Get the minimum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return static\n     */\n    public function min($date = null);\n\n    /**\n     * Create a Carbon instance for the lowest supported date.\n     *\n     * @return static\n     */\n    public static function minValue();\n\n    /**\n     * Get the minimum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see min()\n     *\n     * @return static\n     */\n    public function minimum($date = null);\n\n    /**\n     * Mix another object into the class.\n     *\n     * @example\n     * ```\n     * Carbon::mixin(new class {\n     *   public function addMoon() {\n     *     return function () {\n     *       return $this->addDays(30);\n     *     };\n     *   }\n     *   public function subMoon() {\n     *     return function () {\n     *       return $this->subDays(30);\n     *     };\n     *   }\n     * });\n     * $fullMoon = Carbon::create('2018-12-22');\n     * $nextFullMoon = $fullMoon->addMoon();\n     * $blackMoon = Carbon::create('2019-01-06');\n     * $previousBlackMoon = $blackMoon->subMoon();\n     * echo \"$nextFullMoon\\n\";\n     * echo \"$previousBlackMoon\\n\";\n     * ```\n     *\n     * @param object $mixin\n     *\n     * @throws \\ReflectionException\n     *\n     * @return void\n     */\n    public static function mixin($mixin);\n\n    /**\n     * call \\DateTime::modify if mutable or \\DateTimeImmutable::modify else.\n     *\n     * @see https://php.net/manual/en/datetime.modify.php\n     */\n    public function modify($modify);\n\n    /**\n     * Determines if the instance is not equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see notEqualTo()\n     *\n     * @return bool\n     */\n    public function ne($date): bool;\n\n    /**\n     * Modify to the next occurrence of a given modifier such as a day of\n     * the week. If no modifier is provided, modify to the next occurrence\n     * of the current day of the week. Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param string|int|null $modifier\n     *\n     * @return static\n     */\n    public function next($modifier = null);\n\n    /**\n     * Go forward to the next weekday.\n     *\n     * @return static\n     */\n    public function nextWeekday();\n\n    /**\n     * Go forward to the next weekend day.\n     *\n     * @return static\n     */\n    public function nextWeekendDay();\n\n    /**\n     * Determines if the instance is not equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function notEqualTo($date): bool;\n\n    /**\n     * Get a Carbon instance for the current date and time.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function now($tz = null);\n\n    /**\n     * Returns a present instance in the same timezone.\n     *\n     * @return static\n     */\n    public function nowWithSameTz();\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current month. If the calculated occurrence is outside the scope\n     * of the current month, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfMonth($nth, $dayOfWeek);\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current quarter. If the calculated occurrence is outside the scope\n     * of the current quarter, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfQuarter($nth, $dayOfWeek);\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current year. If the calculated occurrence is outside the scope\n     * of the current year, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfYear($nth, $dayOfWeek);\n\n    /**\n     * Return a property with its ordinal.\n     *\n     * @param string      $key\n     * @param string|null $period\n     *\n     * @return string\n     */\n    public function ordinal(string $key, string $period = null): string;\n\n    /**\n     * Create a carbon instance from a string.\n     *\n     * This is an alias for the constructor that allows better fluent syntax\n     * as it allows you to do Carbon::parse('Monday next week')->fn() rather\n     * than (new Carbon('Monday next week'))->fn().\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function parse($time = null, $tz = null);\n\n    /**\n     * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).\n     *\n     * @param string                    $time\n     * @param string                    $locale\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function parseFromLocale($time, $locale, $tz = null);\n\n    /**\n     * Returns standardized plural of a given singular/plural unit name (in English).\n     *\n     * @param string $unit\n     *\n     * @return string\n     */\n    public static function pluralUnit(string $unit): string;\n\n    /**\n     * Modify to the previous occurrence of a given modifier such as a day of\n     * the week. If no dayOfWeek is provided, modify to the previous occurrence\n     * of the current day of the week. Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param string|int|null $modifier\n     *\n     * @return static\n     */\n    public function previous($modifier = null);\n\n    /**\n     * Go backward to the previous weekday.\n     *\n     * @return static\n     */\n    public function previousWeekday();\n\n    /**\n     * Go backward to the previous weekend day.\n     *\n     * @return static\n     */\n    public function previousWeekendDay();\n\n    /**\n     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).\n     *\n     * @param \\DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date\n     * @param int|\\DateInterval|string|null                  $interval period default interval or number of the given $unit\n     * @param string|null                                    $unit     if specified, $interval must be an integer\n     *\n     * @return CarbonPeriod\n     */\n    public function range($end = null, $interval = null, $unit = null);\n\n    /**\n     * Create a Carbon instance from a specific format.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function rawCreateFromFormat($format, $time, $tz = null);\n\n    /**\n     * @see https://php.net/manual/en/datetime.format.php\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function rawFormat($format);\n\n    /**\n     * Create a carbon instance from a string.\n     *\n     * This is an alias for the constructor that allows better fluent syntax\n     * as it allows you to do Carbon::parse('Monday next week')->fn() rather\n     * than (new Carbon('Monday next week'))->fn().\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function rawParse($time = null, $tz = null);\n\n    /**\n     * Remove all macros and generic macros.\n     */\n    public static function resetMacros();\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Reset the month overflow behavior.\n     *\n     * @return void\n     */\n    public static function resetMonthsOverflow();\n\n    /**\n     * Reset the format used to the default when type juggling a Carbon instance to a string\n     *\n     * @return void\n     */\n    public static function resetToStringFormat();\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Reset the month overflow behavior.\n     *\n     * @return void\n     */\n    public static function resetYearsOverflow();\n\n    /**\n     * Round the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     * @param string    $function\n     *\n     * @return CarbonInterface\n     */\n    public function round($precision = 1, $function = 'round');\n\n    /**\n     * Round the current instance at the given unit with given precision if specified and the given function.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     * @param string    $function\n     *\n     * @return CarbonInterface\n     */\n    public function roundUnit($unit, $precision = 1, $function = 'round');\n\n    /**\n     * Round the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function roundWeek($weekStartsAt = null);\n\n    /**\n     * The number of seconds since midnight.\n     *\n     * @return int\n     */\n    public function secondsSinceMidnight();\n\n    /**\n     * The number of seconds until 23:59:59.\n     *\n     * @return int\n     */\n    public function secondsUntilEndOfDay();\n\n    /**\n     * Return a serialized string of the instance.\n     *\n     * @return string\n     */\n    public function serialize();\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather transform Carbon object before the serialization.\n     *\n     * JSON serialize all Carbon instances using the given callback.\n     *\n     * @param callable $callback\n     *\n     * @return void\n     */\n    public static function serializeUsing($callback);\n\n    /**\n     * Set a part of the Carbon object\n     *\n     * @param string|array             $name\n     * @param string|int|\\DateTimeZone $value\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return $this\n     */\n    public function set($name, $value = null);\n\n    public function setDate($year, $month, $day);\n\n    /**\n     * Set the year, month, and date for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date now if null\n     *\n     * @return static\n     */\n    public function setDateFrom($date = null);\n\n    /**\n     * Set the date and time all together.\n     *\n     * @param int $year\n     * @param int $month\n     * @param int $day\n     * @param int $hour\n     * @param int $minute\n     * @param int $second\n     * @param int $microseconds\n     *\n     * @return static\n     */\n    public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0);\n\n    /**\n     * Set the date and time for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date\n     *\n     * @return static\n     */\n    public function setDateTimeFrom($date = null);\n\n    /**\n     * Set the fallback locale.\n     *\n     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales\n     *\n     * @param string $locale\n     */\n    public static function setFallbackLocale($locale);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOptions\n     */\n    public static function setHumanDiffOptions($humanDiffOptions);\n\n    /**\n     * call \\DateTime::setISODate if mutable or \\DateTimeImmutable::setISODate else.\n     *\n     * @see https://php.net/manual/en/datetime.setisodate.php\n     */\n    public function setISODate($year, $week, $day = 1);\n\n    /**\n     * Set the translator for the current instance.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return $this\n     */\n    public function setLocalTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator);\n\n    /**\n     * Set the current translator locale and indicate if the source locale file exists.\n     * Pass 'auto' as locale to use closest language from the current LC_TIME locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function setLocale($locale);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather consider mid-day is always 12pm, then if you need to test if it's an other\n     *             hour, test it explicitly:\n     *                 $date->format('G') == 13\n     *             or to set explicitly to a given hour:\n     *                 $date->setTime(13, 0, 0, 0)\n     *\n     * Set midday/noon hour\n     *\n     * @param int $hour midday hour\n     *\n     * @return void\n     */\n    public static function setMidDayAt($hour);\n\n    /**\n     * Set a Carbon instance (real or mock) to be returned when a \"now\"\n     * instance is created.  The provided instance will be returned\n     * specifically under the following conditions:\n     *   - A call to the static now() method, ex. Carbon::now()\n     *   - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)\n     *   - When the string \"now\" is passed to the constructor or parse(), ex. new Carbon('now')\n     *   - When a string containing the desired time is passed to Carbon::parse().\n     *\n     * Note the timezone parameter was left out of the examples above and\n     * has no affect as the mock value will be returned regardless of its value.\n     *\n     * To clear the test instance call this method using the default\n     * parameter of null.\n     *\n     * /!\\ Use this method for unit tests only.\n     *\n     * @param static|string|null $testNow real or mock Carbon instance\n     */\n    public static function setTestNow($testNow = null);\n\n    /**\n     * call \\DateTime::setTime if mutable or \\DateTimeImmutable::setTime else.\n     *\n     * @see https://php.net/manual/en/datetime.settime.php\n     */\n    public function setTime($hour, $minute, $second = 0, $microseconds = 0);\n\n    /**\n     * Set the hour, minute, second and microseconds for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date now if null\n     *\n     * @return static\n     */\n    public function setTimeFrom($date = null);\n\n    /**\n     * Set the time by time string.\n     *\n     * @param string $time\n     *\n     * @return static\n     */\n    public function setTimeFromTimeString($time);\n\n    /**\n     * call \\DateTime::setTimestamp if mutable or \\DateTimeImmutable::setTimestamp else.\n     *\n     * @see https://php.net/manual/en/datetime.settimestamp.php\n     */\n    public function setTimestamp($unixtimestamp);\n\n    /**\n     * Set the instance's timezone from a string or object.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function setTimezone($value);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and\n     *             use other method or custom format passed to format() method if you need to dump an other string\n     *             format.\n     *\n     * Set the default format used when type juggling a Carbon instance to a string\n     *\n     * @param string|Closure|null $format\n     *\n     * @return void\n     */\n    public static function setToStringFormat($format);\n\n    /**\n     * Set the default translator instance to use.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return void\n     */\n    public static function setTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator);\n\n    /**\n     * Set specified unit to new given value.\n     *\n     * @param string $unit  year, month, day, hour, minute, second or microsecond\n     * @param int    $value new value for given unit\n     *\n     * @return static\n     */\n    public function setUnit($unit, $value = null);\n\n    /**\n     * Set any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        new value for the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function setUnitNoOverflow($valueUnit, $value, $overflowUnit);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use UTF-8 language packages on every machine.\n     *\n     * Set if UTF8 will be used for localized date/time.\n     *\n     * @param bool $utf8\n     */\n    public static function setUtf8($utf8);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek\n     *             or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the\n     *             start of week according to current locale selected and implicitly the end of week.\n     *\n     * Set the last day of week\n     *\n     * @param int $day\n     *\n     * @return void\n     */\n    public static function setWeekEndsAt($day);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the\n     *             'first_day_of_week' locale setting to change the start of week according to current locale\n     *             selected and implicitly the end of week.\n     *\n     * Set the first day of week\n     *\n     * @param int $day week start day\n     *\n     * @return void\n     */\n    public static function setWeekStartsAt($day);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather consider week-end is always saturday and sunday, and if you have some custom\n     *             week-end days to handle, give to those days an other name and create a macro for them:\n     *\n     *             ```\n     *             Carbon::macro('isDayOff', function ($date) {\n     *                 return $date->isSunday() || $date->isMonday();\n     *             });\n     *             Carbon::macro('isNotDayOff', function ($date) {\n     *                 return !$date->isDayOff();\n     *             });\n     *             if ($someDate->isDayOff()) ...\n     *             if ($someDate->isNotDayOff()) ...\n     *             // Add 5 not-off days\n     *             $count = 5;\n     *             while ($someDate->isDayOff() || ($count-- > 0)) {\n     *                 $someDate->addDay();\n     *             }\n     *             ```\n     *\n     * Set weekend days\n     *\n     * @param array $days\n     *\n     * @return void\n     */\n    public static function setWeekendDays($days);\n\n    /**\n     * Set specific options.\n     *  - strictMode: true|false|null\n     *  - monthOverflow: true|false|null\n     *  - yearOverflow: true|false|null\n     *  - humanDiffOptions: int|null\n     *  - toStringFormat: string|Closure|null\n     *  - toJsonFormat: string|Closure|null\n     *  - locale: string|null\n     *  - timezone: \\DateTimeZone|string|int|null\n     *  - macros: array|null\n     *  - genericMacros: array|null\n     *\n     * @param array $settings\n     *\n     * @return $this\n     */\n    public function settings(array $settings);\n\n    /**\n     * Set the instance's timezone from a string or object and add/subtract the offset difference.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function shiftTimezone($value);\n\n    /**\n     * Get the month overflow global behavior (can be overridden in specific instances).\n     *\n     * @return bool\n     */\n    public static function shouldOverflowMonths();\n\n    /**\n     * Get the month overflow global behavior (can be overridden in specific instances).\n     *\n     * @return bool\n     */\n    public static function shouldOverflowYears();\n\n    /**\n     * @alias diffForHumans\n     *\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     */\n    public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Returns standardized singular of a given singular/plural unit name (in English).\n     *\n     * @param string $unit\n     *\n     * @return string\n     */\n    public static function singularUnit(string $unit): string;\n\n    /**\n     * Modify to start of current given unit.\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOf('month')\n     *   ->endOf('week', Carbon::FRIDAY);\n     * ```\n     *\n     * @param string            $unit\n     * @param array<int, mixed> $params\n     *\n     * @return static\n     */\n    public function startOf($unit, ...$params);\n\n    /**\n     * Resets the date to the first day of the century and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfCentury();\n\n    /**\n     * Resets the time to 00:00:00 start of day\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfDay();\n\n    /**\n     * Resets the date to the first day of the decade and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfDecade();\n\n    /**\n     * Modify to start of current hour, minutes and seconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfHour();\n\n    /**\n     * Resets the date to the first day of the century and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMillennium();\n\n    /**\n     * Modify to start of current minute, seconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMinute();\n\n    /**\n     * Resets the date to the first day of the month and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMonth();\n\n    /**\n     * Resets the date to the first day of the quarter and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfQuarter();\n\n    /**\n     * Modify to start of current second, microseconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOfSecond()\n     *   ->format('H:i:s.u');\n     * ```\n     *\n     * @return static\n     */\n    public function startOfSecond();\n\n    /**\n     * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . \"\\n\";\n     * ```\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return static\n     */\n    public function startOfWeek($weekStartsAt = null);\n\n    /**\n     * Resets the date to the first day of the year and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfYear();\n\n    /**\n     * Subtract given units or interval to the current instance.\n     *\n     * @example $date->sub('hour', 3)\n     * @example $date->sub(15, 'days')\n     * @example $date->sub(CarbonInterval::days(4))\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function sub($unit, $value = 1, $overflow = null);\n\n    public function subRealUnit($unit, $value = 1);\n\n    /**\n     * Subtract given units to the current instance.\n     *\n     * @param string    $unit\n     * @param int       $value\n     * @param bool|null $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function subUnit($unit, $value = 1, $overflow = null);\n\n    /**\n     * Subtract any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        amount to subtract to the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function subUnitNoOverflow($valueUnit, $value, $overflowUnit);\n\n    /**\n     * Subtract given units or interval to the current instance.\n     *\n     * @see sub()\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function subtract($unit, $value = 1, $overflow = null);\n\n    /**\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @return string\n     */\n    public function timespan($other = null, $timezone = null);\n\n    /**\n     * Set the instance's timestamp.\n     *\n     * @param int $value\n     *\n     * @return static\n     */\n    public function timestamp($value);\n\n    /**\n     * @alias setTimezone\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function timezone($value);\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given (or now if null given) to current instance.\n     *\n     * When comparing a value in the past to default now:\n     * 1 hour from now\n     * 5 months from now\n     *\n     * When comparing a value in the future to default now:\n     * 1 hour ago\n     * 5 months ago\n     *\n     * When comparing a value in the past to another value:\n     * 1 hour after\n     * 5 months after\n     *\n     * When comparing a value in the future to another value:\n     * 1 hour before\n     * 5 months before\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Get default array representation.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toArray());\n     * ```\n     *\n     * @return array\n     */\n    public function toArray();\n\n    /**\n     * Format the instance as ATOM\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toAtomString();\n     * ```\n     *\n     * @return string\n     */\n    public function toAtomString();\n\n    /**\n     * Format the instance as COOKIE\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toCookieString();\n     * ```\n     *\n     * @return string\n     */\n    public function toCookieString();\n\n    /**\n     * @alias toDateTime\n     *\n     * Return native DateTime PHP object matching the current instance.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toDate());\n     * ```\n     *\n     * @return DateTime\n     */\n    public function toDate();\n\n    /**\n     * Format the instance as date\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateString();\n\n    /**\n     * Return native DateTime PHP object matching the current instance.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toDateTime());\n     * ```\n     *\n     * @return DateTime\n     */\n    public function toDateTime();\n\n    /**\n     * Format the instance as date and time T-separated with no timezone\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateTimeLocalString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateTimeLocalString();\n\n    /**\n     * Format the instance as date and time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateTimeString();\n\n    /**\n     * Format the instance with day, date and time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDayDateTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDayDateTimeString();\n\n    /**\n     * Format the instance as a readable date\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toFormattedDateString();\n     * ```\n     *\n     * @return string\n     */\n    public function toFormattedDateString();\n\n    /**\n     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept:\n     * 1977-04-22T01:00:00-05:00).\n     *\n     * @example\n     * ```\n     * echo Carbon::now('America/Toronto')->toISOString() . \"\\n\";\n     * echo Carbon::now('America/Toronto')->toISOString(true) . \"\\n\";\n     * ```\n     *\n     * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC.\n     *\n     * @return null|string\n     */\n    public function toISOString($keepOffset = false);\n\n    /**\n     * Return a immutable copy of the instance.\n     *\n     * @return CarbonImmutable\n     */\n    public function toImmutable();\n\n    /**\n     * Format the instance as ISO8601\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toIso8601String();\n     * ```\n     *\n     * @return string\n     */\n    public function toIso8601String();\n\n    /**\n     * Convert the instance to UTC and return as Zulu ISO8601\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toIso8601ZuluString();\n     * ```\n     *\n     * @return string\n     */\n    public function toIso8601ZuluString();\n\n    /**\n     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone.\n     *\n     * @example\n     * ```\n     * echo Carbon::now('America/Toronto')->toJSON();\n     * ```\n     *\n     * @return null|string\n     */\n    public function toJSON();\n\n    /**\n     * Return a mutable copy of the instance.\n     *\n     * @return Carbon\n     */\n    public function toMutable();\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given to now\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single part)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function toNow($syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * Get default object representation.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toObject());\n     * ```\n     *\n     * @return object\n     */\n    public function toObject();\n\n    /**\n     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).\n     *\n     * @param \\DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date\n     * @param int|\\DateInterval|string|null                  $interval period default interval or number of the given $unit\n     * @param string|null                                    $unit     if specified, $interval must be an integer\n     *\n     * @return CarbonPeriod\n     */\n    public function toPeriod($end = null, $interval = null, $unit = null);\n\n    /**\n     * Format the instance as RFC1036\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc1036String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc1036String();\n\n    /**\n     * Format the instance as RFC1123\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc1123String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc1123String();\n\n    /**\n     * Format the instance as RFC2822\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc2822String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc2822String();\n\n    /**\n     * Format the instance as RFC3339\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc3339String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc3339String();\n\n    /**\n     * Format the instance as RFC7231\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc7231String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc7231String();\n\n    /**\n     * Format the instance as RFC822\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc822String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc822String();\n\n    /**\n     * Format the instance as RFC850\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc850String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc850String();\n\n    /**\n     * Format the instance as RSS\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRssString();\n     * ```\n     *\n     * @return string\n     */\n    public function toRssString();\n\n    /**\n     * Returns english human readable complete date string.\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toString();\n     * ```\n     *\n     * @return string\n     */\n    public function toString();\n\n    /**\n     * Format the instance as time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toTimeString();\n\n    /**\n     * Format the instance as W3C\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toW3cString();\n     * ```\n     *\n     * @return string\n     */\n    public function toW3cString();\n\n    /**\n     * Create a Carbon instance for today.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function today($tz = null);\n\n    /**\n     * Create a Carbon instance for tomorrow.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function tomorrow($tz = null);\n\n    /**\n     * Translate using translation string or callback available.\n     *\n     * @param string                                             $key\n     * @param array                                              $parameters\n     * @param null                                               $number\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return string\n     */\n    public function translate(string $key, array $parameters = [], $number = null, \\Symfony\\Component\\Translation\\TranslatorInterface $translator = null): string;\n\n    /**\n     * Translate a time string from a locale to an other.\n     *\n     * @param string      $timeString time string to translate\n     * @param string|null $from       input locale of the $timeString parameter (`Carbon::getLocale()` by default)\n     * @param string|null $to         output locale of the result returned (`\"en\"` by default)\n     * @param int         $mode       specify what to translate with options:\n     *                                - CarbonInterface::TRANSLATE_ALL (default)\n     *                                - CarbonInterface::TRANSLATE_MONTHS\n     *                                - CarbonInterface::TRANSLATE_DAYS\n     *                                - CarbonInterface::TRANSLATE_UNITS\n     *                                - CarbonInterface::TRANSLATE_MERIDIEM\n     *                                You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS\n     *\n     * @return string\n     */\n    public static function translateTimeString($timeString, $from = null, $to = null, $mode = 15);\n\n    /**\n     * Translate a time string from the current locale (`$date->locale()`) to an other.\n     *\n     * @param string      $timeString time string to translate\n     * @param string|null $to         output locale of the result returned (\"en\" by default)\n     *\n     * @return string\n     */\n    public function translateTimeStringTo($timeString, $to = null);\n\n    /**\n     * Translate using translation string or callback available.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     * @param string                                             $key\n     * @param array                                              $parameters\n     * @param null                                               $number\n     *\n     * @return string\n     */\n    public static function translateWith(\\Symfony\\Component\\Translation\\TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string;\n\n    /**\n     * Format as ->format() do (using date replacements patterns from http://php.net/manual/fr/function.date.php)\n     * but translate words whenever possible (months, day names, etc.) using the current locale.\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function translatedFormat(string $format): string;\n\n    /**\n     * Set the timezone or returns the timezone name if no arguments passed.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static|string\n     */\n    public function tz($value = null);\n\n    /**\n     * @alias getTimestamp\n     *\n     * Returns the UNIX timestamp for the current date.\n     *\n     * @return int\n     */\n    public function unix();\n\n    /**\n     * @alias to\n     *\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given (or now if null given) to current instance.\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Indicates if months should be calculated with overflow.\n     *\n     * @param bool $monthsOverflow\n     *\n     * @return void\n     */\n    public static function useMonthsOverflow($monthsOverflow = true);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * Enable the strict mode (or disable with passing false).\n     *\n     * @param bool $strictModeEnabled\n     */\n    public static function useStrictMode($strictModeEnabled = true);\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Indicates if years should be calculated with overflow.\n     *\n     * @param bool $yearsOverflow\n     *\n     * @return void\n     */\n    public static function useYearsOverflow($yearsOverflow = true);\n\n    /**\n     * Set the instance's timezone to UTC.\n     *\n     * @return static\n     */\n    public function utc();\n\n    /**\n     * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed.\n     *\n     * @param int|null $offset\n     *\n     * @return int|static\n     */\n    public function utcOffset(int $offset = null);\n\n    /**\n     * Returns the milliseconds timestamps used amongst other by Date javascript objects.\n     *\n     * @return float\n     */\n    public function valueOf();\n\n    /**\n     * Get/set the week number using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $week\n     * @param int|null $dayOfWeek\n     * @param int|null $dayOfYear\n     *\n     * @return int|static\n     */\n    public function week($week = null, $dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Set/get the week number of year using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int|static\n     */\n    public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Get/set the weekday from 0 (Sunday) to 6 (Saturday).\n     *\n     * @param int|null $value new value for weekday if using as setter.\n     *\n     * @return static|int\n     */\n    public function weekday($value = null);\n\n    /**\n     * Get the number of weeks of the current week-year using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int\n     */\n    public function weeksInYear($dayOfWeek = null, $dayOfYear = null);\n\n    /**\n     * Create a Carbon instance for yesterday.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function yesterday($tz = null);\n\n    // </methods>\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/CarbonInterval.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse BadMethodCallException;\nuse Carbon\\Traits\\Options;\nuse Closure;\nuse DateInterval;\nuse InvalidArgumentException;\nuse ReflectionClass;\nuse ReflectionMethod;\n\n/**\n * A simple API extension for DateInterval.\n * The implementation provides helpers to handle weeks but only days are saved.\n * Weeks are calculated based on the total days of the current instance.\n *\n * @property int $years Total years of the current interval.\n * @property int $months Total months of the current interval.\n * @property int $weeks Total weeks of the current interval calculated from the days.\n * @property int $dayz Total days of the current interval (weeks * 7 + days).\n * @property int $hours Total hours of the current interval.\n * @property int $minutes Total minutes of the current interval.\n * @property int $seconds Total seconds of the current interval.\n * @property int $microseconds Total microseconds of the current interval.\n * @property int $milliseconds Total microseconds of the current interval.\n * @property-read int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7).\n * @property-read int $daysExcludeWeeks alias of dayzExcludeWeeks\n * @property-read float $totalYears Number of years equivalent to the interval.\n * @property-read float $totalMonths Number of months equivalent to the interval.\n * @property-read float $totalWeeks Number of weeks equivalent to the interval.\n * @property-read float $totalDays Number of days equivalent to the interval.\n * @property-read float $totalDayz Alias for totalDays.\n * @property-read float $totalHours Number of hours equivalent to the interval.\n * @property-read float $totalMinutes Number of minutes equivalent to the interval.\n * @property-read float $totalSeconds Number of seconds equivalent to the interval.\n * @property-read float $totalMilliseconds Number of milliseconds equivalent to the interval.\n * @property-read float $totalMicroseconds Number of microseconds equivalent to the interval.\n * @property-read string $locale locale of the current instance\n *\n * @method static CarbonInterval years($years = 1) Create instance specifying a number of years.\n * @method static CarbonInterval year($years = 1) Alias for years()\n * @method static CarbonInterval months($months = 1) Create instance specifying a number of months.\n * @method static CarbonInterval month($months = 1) Alias for months()\n * @method static CarbonInterval weeks($weeks = 1) Create instance specifying a number of weeks.\n * @method static CarbonInterval week($weeks = 1) Alias for weeks()\n * @method static CarbonInterval days($days = 1) Create instance specifying a number of days.\n * @method static CarbonInterval dayz($days = 1) Alias for days()\n * @method static CarbonInterval day($days = 1) Alias for days()\n * @method static CarbonInterval hours($hours = 1) Create instance specifying a number of hours.\n * @method static CarbonInterval hour($hours = 1) Alias for hours()\n * @method static CarbonInterval minutes($minutes = 1) Create instance specifying a number of minutes.\n * @method static CarbonInterval minute($minutes = 1) Alias for minutes()\n * @method static CarbonInterval seconds($seconds = 1) Create instance specifying a number of seconds.\n * @method static CarbonInterval second($seconds = 1) Alias for seconds()\n * @method static CarbonInterval milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds.\n * @method static CarbonInterval millisecond($milliseconds = 1) Alias for milliseconds()\n * @method static CarbonInterval microseconds($microseconds = 1) Create instance specifying a number of microseconds.\n * @method static CarbonInterval microsecond($microseconds = 1) Alias for microseconds()\n * @method CarbonInterval years($years = 1) Set the years portion of the current interval.\n * @method CarbonInterval year($years = 1) Alias for years().\n * @method CarbonInterval months($months = 1) Set the months portion of the current interval.\n * @method CarbonInterval month($months = 1) Alias for months().\n * @method CarbonInterval weeks($weeks = 1) Set the weeks portion of the current interval.  Will overwrite dayz value.\n * @method CarbonInterval week($weeks = 1) Alias for weeks().\n * @method CarbonInterval days($days = 1) Set the days portion of the current interval.\n * @method CarbonInterval dayz($days = 1) Alias for days().\n * @method CarbonInterval day($days = 1) Alias for days().\n * @method CarbonInterval hours($hours = 1) Set the hours portion of the current interval.\n * @method CarbonInterval hour($hours = 1) Alias for hours().\n * @method CarbonInterval minutes($minutes = 1) Set the minutes portion of the current interval.\n * @method CarbonInterval minute($minutes = 1) Alias for minutes().\n * @method CarbonInterval seconds($seconds = 1) Set the seconds portion of the current interval.\n * @method CarbonInterval second($seconds = 1) Alias for seconds().\n * @method CarbonInterval milliseconds($seconds = 1) Set the seconds portion of the current interval.\n * @method CarbonInterval millisecond($seconds = 1) Alias for seconds().\n * @method CarbonInterval microseconds($seconds = 1) Set the seconds portion of the current interval.\n * @method CarbonInterval microsecond($seconds = 1) Alias for seconds().\n */\nclass CarbonInterval extends DateInterval\n{\n    use Options;\n\n    /**\n     * Interval spec period designators\n     */\n    const PERIOD_PREFIX = 'P';\n    const PERIOD_YEARS = 'Y';\n    const PERIOD_MONTHS = 'M';\n    const PERIOD_DAYS = 'D';\n    const PERIOD_TIME_PREFIX = 'T';\n    const PERIOD_HOURS = 'H';\n    const PERIOD_MINUTES = 'M';\n    const PERIOD_SECONDS = 'S';\n\n    /**\n     * A translator to ... er ... translate stuff\n     *\n     * @var \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    protected static $translator;\n\n    /**\n     * @var array|null\n     */\n    protected static $cascadeFactors;\n\n    /**\n     * @var array|null\n     */\n    private static $flipCascadeFactors;\n\n    /**\n     * The registered macros.\n     *\n     * @var array\n     */\n    protected static $macros = [];\n\n    /**\n     * Timezone handler for settings() method.\n     *\n     * @var mixed\n     */\n    protected $tzName;\n\n    /**\n     * Set the instance's timezone from a string or object and add/subtract the offset difference.\n     *\n     * @param \\DateTimeZone|string $tzName\n     *\n     * @return static\n     */\n    public function shiftTimezone($tzName)\n    {\n        $this->tzName = $tzName;\n\n        return $this;\n    }\n\n    /**\n     * Mapping of units and factors for cascading.\n     *\n     * Should only be modified by changing the factors or referenced constants.\n     *\n     * @return array\n     */\n    public static function getCascadeFactors()\n    {\n        return static::$cascadeFactors ?: [\n            'milliseconds' => [Carbon::MICROSECONDS_PER_MILLISECOND, 'microseconds'],\n            'seconds' => [Carbon::MILLISECONDS_PER_SECOND, 'milliseconds'],\n            'minutes' => [Carbon::SECONDS_PER_MINUTE, 'seconds'],\n            'hours' => [Carbon::MINUTES_PER_HOUR, 'minutes'],\n            'dayz' => [Carbon::HOURS_PER_DAY, 'hours'],\n            'months' => [Carbon::DAYS_PER_WEEK * Carbon::WEEKS_PER_MONTH, 'dayz'],\n            'years' => [Carbon::MONTHS_PER_YEAR, 'months'],\n        ];\n    }\n\n    private static function standardizeUnit($unit)\n    {\n        $unit = rtrim($unit, 'sz').'s';\n\n        return $unit === 'days' ? 'dayz' : $unit;\n    }\n\n    private static function getFlipCascadeFactors()\n    {\n        if (!self::$flipCascadeFactors) {\n            self::$flipCascadeFactors = [];\n            foreach (static::getCascadeFactors() as $to => [$factor, $from]) {\n                self::$flipCascadeFactors[self::standardizeUnit($from)] = [self::standardizeUnit($to), $factor];\n            }\n        }\n\n        return self::$flipCascadeFactors;\n    }\n\n    /**\n     * Set default cascading factors for ->cascade() method.\n     *\n     * @param array $cascadeFactors\n     */\n    public static function setCascadeFactors(array $cascadeFactors)\n    {\n        self::$flipCascadeFactors = null;\n        static::$cascadeFactors = $cascadeFactors;\n    }\n\n    ///////////////////////////////////////////////////////////////////\n    //////////////////////////// CONSTRUCTORS /////////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * Create a new CarbonInterval instance.\n     *\n     * @param int $years\n     * @param int $months\n     * @param int $weeks\n     * @param int $days\n     * @param int $hours\n     * @param int $minutes\n     * @param int $seconds\n     * @param int $microseconds\n     *\n     * @throws \\Exception\n     */\n    public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null)\n    {\n        $spec = $years;\n\n        if (!is_string($spec) || floatval($years) || preg_match('/^[0-9.]/', $years)) {\n            $spec = static::PERIOD_PREFIX;\n\n            $spec .= $years > 0 ? $years.static::PERIOD_YEARS : '';\n            $spec .= $months > 0 ? $months.static::PERIOD_MONTHS : '';\n\n            $specDays = 0;\n            $specDays += $weeks > 0 ? $weeks * static::getDaysPerWeek() : 0;\n            $specDays += $days > 0 ? $days : 0;\n\n            $spec .= $specDays > 0 ? $specDays.static::PERIOD_DAYS : '';\n\n            if ($hours > 0 || $minutes > 0 || $seconds > 0) {\n                $spec .= static::PERIOD_TIME_PREFIX;\n                $spec .= $hours > 0 ? $hours.static::PERIOD_HOURS : '';\n                $spec .= $minutes > 0 ? $minutes.static::PERIOD_MINUTES : '';\n                $spec .= $seconds > 0 ? $seconds.static::PERIOD_SECONDS : '';\n            }\n\n            if ($spec === static::PERIOD_PREFIX) {\n                // Allow the zero interval.\n                $spec .= '0'.static::PERIOD_YEARS;\n            }\n        }\n\n        parent::__construct($spec);\n\n        if (!is_null($microseconds)) {\n            $this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND;\n        }\n    }\n\n    /**\n     * Returns the factor for a given source-to-target couple.\n     *\n     * @param string $source\n     * @param string $target\n     *\n     * @return int|null\n     */\n    public static function getFactor($source, $target)\n    {\n        $source = self::standardizeUnit($source);\n        $target = self::standardizeUnit($target);\n        $factors = static::getFlipCascadeFactors();\n        if (isset($factors[$source])) {\n            [$to, $factor] = $factors[$source];\n            if ($to === $target) {\n                return $factor;\n            }\n        }\n\n        return null;\n    }\n\n    /**\n     * Returns current config for days per week.\n     *\n     * @return int\n     */\n    public static function getDaysPerWeek()\n    {\n        return static::getFactor('dayz', 'weeks') ?: Carbon::DAYS_PER_WEEK;\n    }\n\n    /**\n     * Returns current config for hours per day.\n     *\n     * @return int\n     */\n    public static function getHoursPerDay()\n    {\n        return static::getFactor('hours', 'dayz') ?: Carbon::HOURS_PER_DAY;\n    }\n\n    /**\n     * Returns current config for minutes per hour.\n     *\n     * @return int\n     */\n    public static function getMinutesPerHour()\n    {\n        return static::getFactor('minutes', 'hours') ?: Carbon::MINUTES_PER_HOUR;\n    }\n\n    /**\n     * Returns current config for seconds per minute.\n     *\n     * @return int\n     */\n    public static function getSecondsPerMinute()\n    {\n        return static::getFactor('seconds', 'minutes') ?: Carbon::SECONDS_PER_MINUTE;\n    }\n\n    /**\n     * Returns current config for microseconds per second.\n     *\n     * @return int\n     */\n    public static function getMillisecondsPerSecond()\n    {\n        return static::getFactor('milliseconds', 'seconds') ?: Carbon::MILLISECONDS_PER_SECOND;\n    }\n\n    /**\n     * Returns current config for microseconds per second.\n     *\n     * @return int\n     */\n    public static function getMicrosecondsPerMillisecond()\n    {\n        return static::getFactor('microseconds', 'milliseconds') ?: Carbon::MICROSECONDS_PER_MILLISECOND;\n    }\n\n    /**\n     * Create a new CarbonInterval instance from specific values.\n     * This is an alias for the constructor that allows better fluent\n     * syntax as it allows you to do CarbonInterval::create(1)->fn() rather than\n     * (new CarbonInterval(1))->fn().\n     *\n     * @param int $years\n     * @param int $months\n     * @param int $weeks\n     * @param int $days\n     * @param int $hours\n     * @param int $minutes\n     * @param int $seconds\n     * @param int $microseconds\n     *\n     * @return static\n     */\n    public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null)\n    {\n        return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $microseconds);\n    }\n\n    /**\n     * Get a copy of the instance.\n     *\n     * @return static\n     */\n    public function copy()\n    {\n        $date = new static($this->spec());\n        $date->invert = $this->invert;\n        $date->f = $this->f;\n\n        return $date;\n    }\n\n    /**\n     * Provide static helpers to create instances.  Allows CarbonInterval::years(3).\n     *\n     * Note: This is done using the magic method to allow static and instance methods to\n     *       have the same names.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @return static|null\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        $arg = count($parameters) === 0 ? 1 : $parameters[0];\n\n        switch (Carbon::singularUnit(rtrim($method, 'z'))) {\n            case 'year':\n                return new static($arg);\n\n            case 'month':\n                return new static(null, $arg);\n\n            case 'week':\n                return new static(null, null, $arg);\n\n            case 'day':\n                return new static(null, null, null, $arg);\n\n            case 'hour':\n                return new static(null, null, null, null, $arg);\n\n            case 'minute':\n                return new static(null, null, null, null, null, $arg);\n\n            case 'second':\n                return new static(null, null, null, null, null, null, $arg);\n\n            case 'millisecond':\n            case 'milli':\n                return new static(null, null, null, null, null, null, null, $arg * Carbon::MICROSECONDS_PER_MILLISECOND);\n\n            case 'microsecond':\n            case 'micro':\n                return new static(null, null, null, null, null, null, null, $arg);\n        }\n\n        if (static::hasMacro($method)) {\n            return (new static(0))->$method(...$parameters);\n        }\n\n        if (Carbon::isStrictModeEnabled()) {\n            throw new BadMethodCallException(sprintf(\"Unknown fluent constructor '%s'.\", $method));\n        }\n\n        return null;\n    }\n\n    /**\n     * Creates a CarbonInterval from string.\n     *\n     * Format:\n     *\n     * Suffix | Unit    | Example | DateInterval expression\n     * -------|---------|---------|------------------------\n     * y      | years   |   1y    | P1Y\n     * mo     | months  |   3mo   | P3M\n     * w      | weeks   |   2w    | P2W\n     * d      | days    |  28d    | P28D\n     * h      | hours   |   4h    | PT4H\n     * m      | minutes |  12m    | PT12M\n     * s      | seconds |  59s    | PT59S\n     *\n     * e. g. `1w 3d 4h 32m 23s` is converted to 10 days 4 hours 32 minutes and 23 seconds.\n     *\n     * Special cases:\n     *  - An empty string will return a zero interval\n     *  - Fractions are allowed for weeks, days, hours and minutes and will be converted\n     *    and rounded to the next smaller value (caution: 0.5w = 4d)\n     *\n     * @param string $intervalDefinition\n     *\n     * @return static\n     */\n    public static function fromString($intervalDefinition)\n    {\n        if (empty($intervalDefinition)) {\n            return new static(0);\n        }\n\n        $years = 0;\n        $months = 0;\n        $weeks = 0;\n        $days = 0;\n        $hours = 0;\n        $minutes = 0;\n        $seconds = 0;\n        $milliseconds = 0;\n        $microseconds = 0;\n\n        $pattern = '/(\\d+(?:\\.\\d+)?)\\h*([^\\d\\h]*)/i';\n        preg_match_all($pattern, $intervalDefinition, $parts, PREG_SET_ORDER);\n        while ([$part, $value, $unit] = array_shift($parts)) {\n            $intValue = intval($value);\n            $fraction = floatval($value) - $intValue;\n            // Fix calculation precision\n            switch (round($fraction, 6)) {\n                case 1:\n                    $fraction = 0;\n                    $intValue++;\n                    break;\n                case 0:\n                    $fraction = 0;\n                    break;\n            }\n            switch ($unit === 'µs' ? 'µs' : strtolower($unit)) {\n                case 'millennia':\n                case 'millennium':\n                    $years += $intValue * CarbonInterface::YEARS_PER_MILLENNIUM;\n                    break;\n\n                case 'century':\n                case 'centuries':\n                    $years += $intValue * CarbonInterface::YEARS_PER_CENTURY;\n                    break;\n\n                case 'decade':\n                case 'decades':\n                    $years += $intValue * CarbonInterface::YEARS_PER_DECADE;\n                    break;\n\n                case 'year':\n                case 'years':\n                case 'y':\n                    $years += $intValue;\n                    break;\n\n                case 'quarter':\n                case 'quarters':\n                    $months += $intValue * CarbonInterface::MONTHS_PER_QUARTER;\n                    break;\n\n                case 'month':\n                case 'months':\n                case 'mo':\n                    $months += $intValue;\n                    break;\n\n                case 'week':\n                case 'weeks':\n                case 'w':\n                    $weeks += $intValue;\n                    if ($fraction) {\n                        $parts[] = [null, $fraction * static::getDaysPerWeek(), 'd'];\n                    }\n                    break;\n\n                case 'day':\n                case 'days':\n                case 'd':\n                    $days += $intValue;\n                    if ($fraction) {\n                        $parts[] = [null, $fraction * static::getHoursPerDay(), 'h'];\n                    }\n                    break;\n\n                case 'hour':\n                case 'hours':\n                case 'h':\n                    $hours += $intValue;\n                    if ($fraction) {\n                        $parts[] = [null, $fraction * static::getMinutesPerHour(), 'm'];\n                    }\n                    break;\n\n                case 'minute':\n                case 'minutes':\n                case 'm':\n                    $minutes += $intValue;\n                    if ($fraction) {\n                        $parts[] = [null, $fraction * static::getSecondsPerMinute(), 's'];\n                    }\n                    break;\n\n                case 'second':\n                case 'seconds':\n                case 's':\n                    $seconds += $intValue;\n                    if ($fraction) {\n                        $parts[] = [null, $fraction * static::getMillisecondsPerSecond(), 'ms'];\n                    }\n                    break;\n\n                case 'millisecond':\n                case 'milliseconds':\n                case 'milli':\n                case 'ms':\n                    $milliseconds += $intValue;\n                    if ($fraction) {\n                        $microseconds += round($fraction * static::getMicrosecondsPerMillisecond());\n                    }\n                    break;\n\n                case 'microsecond':\n                case 'microseconds':\n                case 'micro':\n                case 'µs':\n                    $microseconds += $intValue;\n                    break;\n\n                default:\n                    throw new InvalidArgumentException(\n                        sprintf('Invalid part %s in definition %s', $part, $intervalDefinition)\n                    );\n            }\n        }\n\n        return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $milliseconds * Carbon::MICROSECONDS_PER_MILLISECOND + $microseconds);\n    }\n\n    /**\n     * Create a CarbonInterval instance from a DateInterval one.  Can not instance\n     * DateInterval objects created from DateTime::diff() as you can't externally\n     * set the $days field.\n     *\n     * @param DateInterval $di\n     *\n     * @return static\n     */\n    public static function instance(DateInterval $di)\n    {\n        $microseconds = $di->f;\n        $instance = new static(static::getDateIntervalSpec($di));\n        if ($microseconds) {\n            $instance->f = $microseconds;\n        }\n        $instance->invert = $di->invert;\n        foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) {\n            if ($di->$unit < 0) {\n                $instance->$unit *= -1;\n            }\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Make a CarbonInterval instance from given variable if possible.\n     *\n     * Always return a new instance. Parse only strings and only these likely to be intervals (skip dates\n     * and recurrences). Throw an exception for invalid format, but otherwise return null.\n     *\n     * @param mixed $var\n     *\n     * @return static|null\n     */\n    public static function make($var)\n    {\n        if ($var instanceof DateInterval) {\n            return static::instance($var);\n        }\n\n        if (!is_string($var)) {\n            return null;\n        }\n\n        $var = trim($var);\n\n        if (preg_match('/^P[T0-9]/', $var)) {\n            return new static($var);\n        }\n\n        if (preg_match('/^(?:\\h*\\d+(?:\\.\\d+)?\\h*[a-z]+)+$/i', $var)) {\n            return static::fromString($var);\n        }\n\n        /** @var static $interval */\n        $interval = static::createFromDateString($var);\n\n        return !$interval || $interval->isEmpty() ? null : $interval;\n    }\n\n    /**\n     * Sets up a DateInterval from the relative parts of the string.\n     *\n     * @param string $time\n     *\n     * @return static\n     *\n     * @link http://php.net/manual/en/dateinterval.createfromdatestring.php\n     */\n    public static function createFromDateString($time)\n    {\n        $interval = @parent::createFromDateString(strtr($time, [\n            ',' => ' ',\n            ' and ' => ' ',\n        ]));\n\n        if ($interval instanceof DateInterval) {\n            $interval = static::instance($interval);\n        }\n\n        return $interval;\n    }\n\n    ///////////////////////////////////////////////////////////////////\n    ///////////////////////// GETTERS AND SETTERS /////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * Get a part of the CarbonInterval object.\n     *\n     * @param string $name\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return int|float|string\n     */\n    public function __get($name)\n    {\n        if (substr($name, 0, 5) === 'total') {\n            return $this->total(substr($name, 5));\n        }\n\n        switch ($name) {\n            case 'years':\n                return $this->y;\n\n            case 'months':\n                return $this->m;\n\n            case 'dayz':\n                return $this->d;\n\n            case 'hours':\n                return $this->h;\n\n            case 'minutes':\n                return $this->i;\n\n            case 'seconds':\n                return $this->s;\n\n            case 'milli':\n            case 'milliseconds':\n                return (int) floor(round($this->f * Carbon::MICROSECONDS_PER_SECOND) / Carbon::MICROSECONDS_PER_MILLISECOND);\n\n            case 'micro':\n            case 'microseconds':\n                return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND);\n\n            case 'weeks':\n                return (int) floor($this->d / static::getDaysPerWeek());\n\n            case 'daysExcludeWeeks':\n            case 'dayzExcludeWeeks':\n                return $this->d % static::getDaysPerWeek();\n\n            case 'locale':\n                return $this->getLocalTranslator()->getLocale();\n\n            default:\n                throw new InvalidArgumentException(sprintf(\"Unknown getter '%s'\", $name));\n        }\n    }\n\n    /**\n     * Set a part of the CarbonInterval object.\n     *\n     * @param string $name\n     * @param int    $value\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __set($name, $value)\n    {\n        switch (Carbon::singularUnit(rtrim($name, 'z'))) {\n            case 'year':\n                $this->y = $value;\n                break;\n\n            case 'month':\n                $this->m = $value;\n                break;\n\n            case 'week':\n                $this->d = $value * static::getDaysPerWeek();\n                break;\n\n            case 'day':\n                $this->d = $value;\n                break;\n\n            case 'hour':\n                $this->h = $value;\n                break;\n\n            case 'minute':\n                $this->i = $value;\n                break;\n\n            case 'second':\n                $this->s = $value;\n                break;\n\n            case 'milli':\n            case 'millisecond':\n                $this->microseconds = $value * Carbon::MICROSECONDS_PER_MILLISECOND + $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND;\n                break;\n\n            case 'micro':\n            case 'microsecond':\n                $this->f = $value / Carbon::MICROSECONDS_PER_SECOND;\n                break;\n\n            default:\n                if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {\n                    throw new InvalidArgumentException(sprintf(\"Unknown setter '%s'\", $name));\n                }\n\n                $this->$name = $value;\n        }\n    }\n\n    /**\n     * Allow setting of weeks and days to be cumulative.\n     *\n     * @param int $weeks Number of weeks to set\n     * @param int $days  Number of days to set\n     *\n     * @return static\n     */\n    public function weeksAndDays($weeks, $days)\n    {\n        $this->dayz = ($weeks * static::getDaysPerWeek()) + $days;\n\n        return $this;\n    }\n\n    /**\n     * Returns true if the interval is empty for each unit.\n     *\n     * @return bool\n     */\n    public function isEmpty()\n    {\n        return $this->years === 0 &&\n            $this->months === 0 &&\n            $this->dayz === 0 &&\n            !$this->days &&\n            $this->hours === 0 &&\n            $this->minutes === 0 &&\n            $this->seconds === 0 &&\n            $this->microseconds === 0;\n    }\n\n    /**\n     * Register a custom macro.\n     *\n     * @example\n     * ```\n     * CarbonInterval::macro('twice', function () {\n     *   return $this->times(2);\n     * });\n     * echo CarbonInterval::hours(2)->twice();\n     * ```\n     *\n     * @param string          $name\n     * @param object|callable $macro\n     *\n     * @return void\n     */\n    public static function macro($name, $macro)\n    {\n        static::$macros[$name] = $macro;\n    }\n\n    /**\n     * Register macros from a mixin object.\n     *\n     * @example\n     * ```\n     * CarbonInterval::mixin(new class {\n     *   public function daysToHours() {\n     *     return function () {\n     *       $this->hours += $this->days;\n     *       $this->days = 0;\n     *\n     *       return $this;\n     *     };\n     *   }\n     *   public function hoursToDays() {\n     *     return function () {\n     *       $this->days += $this->hours;\n     *       $this->hours = 0;\n     *\n     *       return $this;\n     *     };\n     *   }\n     * });\n     * echo CarbonInterval::hours(5)->hoursToDays() . \"\\n\";\n     * echo CarbonInterval::days(5)->daysToHours() . \"\\n\";\n     * ```\n     *\n     * @param object $mixin\n     *\n     * @throws \\ReflectionException\n     *\n     * @return void\n     */\n    public static function mixin($mixin)\n    {\n        $reflection = new ReflectionClass($mixin);\n\n        $methods = $reflection->getMethods(\n            ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED\n        );\n\n        foreach ($methods as $method) {\n            $method->setAccessible(true);\n\n            static::macro($method->name, $method->invoke($mixin));\n        }\n    }\n\n    /**\n     * Check if macro is registered.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public static function hasMacro($name)\n    {\n        return isset(static::$macros[$name]);\n    }\n\n    /**\n     * Call given macro.\n     *\n     * @param string $name\n     * @param array  $parameters\n     *\n     * @return mixed\n     */\n    protected function callMacro($name, $parameters)\n    {\n        $macro = static::$macros[$name];\n\n        if ($macro instanceof Closure) {\n            return call_user_func_array($macro->bindTo($this, static::class), $parameters);\n        }\n\n        return call_user_func_array($macro, $parameters);\n    }\n\n    /**\n     * Allow fluent calls on the setters... CarbonInterval::years(3)->months(5)->day().\n     *\n     * Note: This is done using the magic method to allow static and instance methods to\n     *       have the same names.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @return static\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->callMacro($method, $parameters);\n        }\n\n        $arg = count($parameters) === 0 ? 1 : $parameters[0];\n\n        switch (Carbon::singularUnit(rtrim($method, 'z'))) {\n            case 'year':\n                $this->years = $arg;\n                break;\n\n            case 'month':\n                $this->months = $arg;\n                break;\n\n            case 'week':\n                $this->dayz = $arg * static::getDaysPerWeek();\n                break;\n\n            case 'day':\n                $this->dayz = $arg;\n                break;\n\n            case 'hour':\n                $this->hours = $arg;\n                break;\n\n            case 'minute':\n                $this->minutes = $arg;\n                break;\n\n            case 'second':\n                $this->seconds = $arg;\n                break;\n\n            case 'milli':\n            case 'millisecond':\n                $this->milliseconds = $arg;\n                break;\n\n            case 'micro':\n            case 'microsecond':\n                $this->microseconds = $arg;\n                break;\n\n            default:\n                if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {\n                    throw new BadMethodCallException(sprintf(\"Unknown fluent setter '%s'\", $method));\n                }\n        }\n\n        return $this;\n    }\n\n    protected function getForHumansParameters($syntax = null, $short = false, $parts = -1, $options = null)\n    {\n        $join = ' ';\n        $aUnit = false;\n        if (is_array($syntax)) {\n            extract($syntax);\n        } else {\n            if (is_int($short)) {\n                $parts = $short;\n                $short = false;\n            }\n            if (is_bool($syntax)) {\n                $short = $syntax;\n                $syntax = CarbonInterface::DIFF_ABSOLUTE;\n            }\n        }\n        if (is_null($syntax)) {\n            $syntax = CarbonInterface::DIFF_ABSOLUTE;\n        }\n        if ($parts === -1) {\n            $parts = INF;\n        }\n        if (is_null($options)) {\n            $options = static::getHumanDiffOptions();\n        }\n        if ($join === true) {\n            $default = $this->getTranslationMessage('list.0') ?? $this->getTranslationMessage('list') ?? ' ';\n            $join = [\n                $default,\n                $this->getTranslationMessage('list.1') ?? $default,\n            ];\n        }\n        if (is_array($join)) {\n            [$default, $last] = $join;\n\n            $join = function ($list) use ($default, $last) {\n                if (count($list) < 2) {\n                    return implode('', $list);\n                }\n\n                $end = array_pop($list);\n\n                return implode($default, $list).$last.$end;\n            };\n        }\n        if (is_string($join)) {\n            $glue = $join;\n            $join = function ($list) use ($glue) {\n                return implode($glue, $list);\n            };\n        }\n\n        return [$syntax, $short, $parts, $options, $join, $aUnit];\n    }\n\n    /**\n     * Get the current interval in a human readable format in the current locale.\n     *\n     * @example\n     * ```\n     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans() . \"\\n\";\n     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 2]) . \"\\n\";\n     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 3, 'join' => true]) . \"\\n\";\n     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['short' => true]) . \"\\n\";\n     * echo CarbonInterval::fromString('1d 24h')->forHumans(['join' => ' or ']) . \"\\n\";\n     * ```\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'aUnit' entry, prefer \"an hour\" over \"1 hour\" if true\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: -1: no limits)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function forHumans($syntax = null, $short = false, $parts = -1, $options = null)\n    {\n        [$syntax, $short, $parts, $options, $join, $aUnit] = $this->getForHumansParameters($syntax, $short, $parts, $options);\n\n        $interval = [];\n        $syntax = (int) ($syntax === null ? CarbonInterface::DIFF_ABSOLUTE : $syntax);\n        $absolute = $syntax === CarbonInterface::DIFF_ABSOLUTE;\n        $relativeToNow = $syntax === CarbonInterface::DIFF_RELATIVE_TO_NOW;\n        $count = 1;\n        $unit = $short ? 's' : 'second';\n\n        /** @var \\Symfony\\Component\\Translation\\Translator $translator */\n        $translator = $this->getLocalTranslator();\n\n        $diffIntervalArray = [\n            ['value' => $this->years,            'unit' => 'year',   'unitShort' => 'y'],\n            ['value' => $this->months,           'unit' => 'month',  'unitShort' => 'm'],\n            ['value' => $this->weeks,            'unit' => 'week',   'unitShort' => 'w'],\n            ['value' => $this->daysExcludeWeeks, 'unit' => 'day',    'unitShort' => 'd'],\n            ['value' => $this->hours,            'unit' => 'hour',   'unitShort' => 'h'],\n            ['value' => $this->minutes,          'unit' => 'minute', 'unitShort' => 'min'],\n            ['value' => $this->seconds,          'unit' => 'second', 'unitShort' => 's'],\n        ];\n\n        $transChoice = function ($short, $unitData) use ($translator, $aUnit) {\n            $count = $unitData['value'];\n\n            if ($short) {\n                $result = $this->translate($unitData['unitShort'], [], $count, $translator);\n\n                if ($result !== $unitData['unitShort']) {\n                    return $result;\n                }\n            } elseif ($aUnit) {\n                $key = 'a_'.$unitData['unit'];\n                $result = $this->translate($key, [], $count, $translator);\n\n                if ($result !== $key) {\n                    return $result;\n                }\n            }\n\n            return $this->translate($unitData['unit'], [], $count, $translator);\n        };\n\n        foreach ($diffIntervalArray as $diffIntervalData) {\n            if ($diffIntervalData['value'] > 0) {\n                $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit'];\n                $count = $diffIntervalData['value'];\n                $interval[] = $transChoice($short, $diffIntervalData);\n            } elseif ($options & CarbonInterface::SEQUENTIAL_PARTS_ONLY && count($interval) > 0) {\n                break;\n            }\n\n            // break the loop after we get the required number of parts in array\n            if (count($interval) >= $parts) {\n                break;\n            }\n        }\n\n        if (count($interval) === 0) {\n            if ($relativeToNow && $options & CarbonInterface::JUST_NOW) {\n                $key = 'diff_now';\n                $translation = $this->translate($key, [], null, $translator);\n                if ($translation !== $key) {\n                    return $translation;\n                }\n            }\n            $count = $options & CarbonInterface::NO_ZERO_DIFF ? 1 : 0;\n            $unit = $short ? 's' : 'second';\n            $interval[] = $this->translate($unit, [], $count, $translator);\n        }\n\n        // join the interval parts by a space\n        $time = $join($interval);\n\n        unset($diffIntervalArray, $interval);\n\n        if ($absolute) {\n            return $time;\n        }\n\n        $isFuture = $this->invert === 1;\n\n        $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before');\n\n        if ($parts === 1) {\n            if ($relativeToNow && $unit === 'day') {\n                if ($count === 1 && $options & CarbonInterface::ONE_DAY_WORDS) {\n                    $key = $isFuture ? 'diff_tomorrow' : 'diff_yesterday';\n                    $translation = $this->translate($key, [], null, $translator);\n                    if ($translation !== $key) {\n                        return $translation;\n                    }\n                }\n                if ($count === 2 && $options & CarbonInterface::TWO_DAY_WORDS) {\n                    $key = $isFuture ? 'diff_after_tomorrow' : 'diff_before_yesterday';\n                    $translation = $this->translate($key, [], null, $translator);\n                    if ($translation !== $key) {\n                        return $translation;\n                    }\n                }\n            }\n            // Some languages have special pluralization for past and future tense.\n            $key = $unit.'_'.$transId;\n            if ($key !== $this->translate($key, [], null, $translator)) {\n                $time = $this->translate($key, [], $count, $translator);\n            }\n        }\n\n        return $this->translate($transId, [':time' => $time], null, $translator);\n    }\n\n    /**\n     * Format the instance as a string using the forHumans() function.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->forHumans();\n    }\n\n    /**\n     * Convert the interval to a CarbonPeriod.\n     *\n     * @return CarbonPeriod\n     */\n    public function toPeriod(...$params)\n    {\n        return CarbonPeriod::create($this, ...$params);\n    }\n\n    /**\n     * Invert the interval.\n     *\n     * @return $this\n     */\n    public function invert()\n    {\n        $this->invert = $this->invert ? 0 : 1;\n\n        return $this;\n    }\n\n    protected function solveNegativeInterval()\n    {\n        if (!$this->isEmpty() && $this->years <= 0 && $this->months <= 0 && $this->dayz <= 0 && $this->hours <= 0 && $this->minutes <= 0 && $this->seconds <= 0 && $this->microseconds <= 0) {\n            $this->years *= -1;\n            $this->months *= -1;\n            $this->dayz *= -1;\n            $this->hours *= -1;\n            $this->minutes *= -1;\n            $this->seconds *= -1;\n            $this->microseconds *= -1;\n            $this->invert();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Add the passed interval to the current instance.\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     *\n     * @return static\n     */\n    public function add($unit, $value = 1)\n    {\n        if (is_numeric($unit)) {\n            $_unit = $value;\n            $value = $unit;\n            $unit = $_unit;\n            unset($_unit);\n        }\n\n        if (is_string($unit) && !preg_match('/^\\s*\\d/', $unit)) {\n            $unit = \"$value $unit\";\n            $value = 1;\n        }\n\n        $interval = static::make($unit);\n\n        if (!$interval) {\n            throw new InvalidArgumentException('This type of data cannot be added/subtracted.');\n        }\n\n        if ($value !== 1) {\n            $interval->times($value);\n        }\n        $sign = ($this->invert === 1) !== ($interval->invert === 1) ? -1 : 1;\n        $this->years += $interval->y * $sign;\n        $this->months += $interval->m * $sign;\n        $this->dayz += ($interval->days === false ? $interval->d : $interval->days) * $sign;\n        $this->hours += $interval->h * $sign;\n        $this->minutes += $interval->i * $sign;\n        $this->seconds += $interval->s * $sign;\n        $this->microseconds += $interval->microseconds * $sign;\n\n        $this->solveNegativeInterval();\n\n        return $this;\n    }\n\n    /**\n     * Subtract the passed interval to the current instance.\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     *\n     * @return static\n     */\n    public function sub($unit, $value = 1)\n    {\n        if (is_numeric($unit)) {\n            $_unit = $value;\n            $value = $unit;\n            $unit = $_unit;\n            unset($_unit);\n        }\n\n        return $this->add($unit, -floatval($value));\n    }\n\n    /**\n     * Subtract the passed interval to the current instance.\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     *\n     * @return static\n     */\n    public function subtract($unit, $value = 1)\n    {\n        return $this->sub($unit, $value);\n    }\n\n    /**\n     * Multiply current instance given number of times. times() is naive, it multiplies each unit\n     * (so day can be greater than 31, hour can be greater than 23, etc.) and the result is rounded\n     * separately for each unit.\n     *\n     * Use times() when you want a fast and approximated calculation that does not cascade units.\n     *\n     * For a precise and cascaded calculation,\n     *\n     * @see multiply()\n     *\n     * @param float|int $factor\n     *\n     * @return $this\n     */\n    public function times($factor)\n    {\n        if ($factor < 0) {\n            $this->invert = $this->invert ? 0 : 1;\n            $factor = -$factor;\n        }\n\n        $this->years = (int) round($this->years * $factor);\n        $this->months = (int) round($this->months * $factor);\n        $this->dayz = (int) round($this->dayz * $factor);\n        $this->hours = (int) round($this->hours * $factor);\n        $this->minutes = (int) round($this->minutes * $factor);\n        $this->seconds = (int) round($this->seconds * $factor);\n        $this->microseconds = (int) round($this->microseconds * $factor);\n\n        return $this;\n    }\n\n    /**\n     * Divide current instance by a given divider. shares() is naive, it divides each unit separately\n     * and the result is rounded for each unit. So 5 hours and 20 minutes shared by 3 becomes 2 hours\n     * and 7 minutes.\n     *\n     * Use shares() when you want a fast and approximated calculation that does not cascade units.\n     *\n     * For a precise and cascaded calculation,\n     *\n     * @see divide()\n     *\n     * @param float|int $divider\n     *\n     * @return $this\n     */\n    public function shares($divider)\n    {\n        return $this->times(1 / $divider);\n    }\n\n    /**\n     * Multiply and cascade current instance by a given factor.\n     *\n     * @param float|int $factor\n     *\n     * @return $this\n     */\n    public function multiply($factor)\n    {\n        if ($factor < 0) {\n            $this->invert = $this->invert ? 0 : 1;\n            $factor = -$factor;\n        }\n\n        $yearPart = (int) floor($this->years * $factor); // Split calculation to prevent imprecision\n\n        if ($yearPart) {\n            $this->years -= $yearPart / $factor;\n        }\n\n        $newInterval = static::__callStatic('years', [$yearPart])->microseconds($this->totalMicroseconds * $factor)->cascade();\n\n        $this->years = $newInterval->years;\n        $this->months = $newInterval->months;\n        $this->dayz = $newInterval->dayz;\n        $this->hours = $newInterval->hours;\n        $this->minutes = $newInterval->minutes;\n        $this->seconds = $newInterval->seconds;\n        $this->microseconds = $newInterval->microseconds;\n\n        return $this;\n    }\n\n    /**\n     * Divide and cascade current instance by a given divider.\n     *\n     * @param float|int $divider\n     *\n     * @return $this\n     */\n    public function divide($divider)\n    {\n        return $this->multiply(1 / $divider);\n    }\n\n    /**\n     * Get the interval_spec string of a date interval.\n     *\n     * @param DateInterval $interval\n     *\n     * @return string\n     */\n    public static function getDateIntervalSpec(DateInterval $interval)\n    {\n        $date = array_filter([\n            static::PERIOD_YEARS => abs($interval->y),\n            static::PERIOD_MONTHS => abs($interval->m),\n            static::PERIOD_DAYS => abs($interval->d),\n        ]);\n\n        $time = array_filter([\n            static::PERIOD_HOURS => abs($interval->h),\n            static::PERIOD_MINUTES => abs($interval->i),\n            static::PERIOD_SECONDS => abs($interval->s),\n        ]);\n\n        $specString = static::PERIOD_PREFIX;\n\n        foreach ($date as $key => $value) {\n            $specString .= $value.$key;\n        }\n\n        if (count($time) > 0) {\n            $specString .= static::PERIOD_TIME_PREFIX;\n            foreach ($time as $key => $value) {\n                $specString .= $value.$key;\n            }\n        }\n\n        return $specString === static::PERIOD_PREFIX ? 'PT0S' : $specString;\n    }\n\n    /**\n     * Get the interval_spec string.\n     *\n     * @return string\n     */\n    public function spec()\n    {\n        return static::getDateIntervalSpec($this);\n    }\n\n    /**\n     * Comparing 2 date intervals.\n     *\n     * @param DateInterval $a\n     * @param DateInterval $b\n     *\n     * @return int\n     */\n    public static function compareDateIntervals(DateInterval $a, DateInterval $b)\n    {\n        $current = Carbon::now();\n        $passed = $current->copy()->add($b);\n        $current->add($a);\n\n        if ($current < $passed) {\n            return -1;\n        }\n        if ($current > $passed) {\n            return 1;\n        }\n\n        return 0;\n    }\n\n    /**\n     * Comparing with passed interval.\n     *\n     * @param DateInterval $interval\n     *\n     * @return int\n     */\n    public function compare(DateInterval $interval)\n    {\n        return static::compareDateIntervals($this, $interval);\n    }\n\n    /**\n     * Convert overflowed values into bigger units.\n     *\n     * @return $this\n     */\n    public function cascade()\n    {\n        foreach (static::getFlipCascadeFactors() as $source => [$target, $factor]) {\n            if ($source === 'dayz' && $target === 'weeks') {\n                continue;\n            }\n\n            $value = $this->$source;\n            $this->$source = $modulo = ($factor + ($value % $factor)) % $factor;\n            $this->$target += ($value - $modulo) / $factor;\n            if ($this->$source > 0 && $this->$target < 0) {\n                $this->$source -= $factor;\n                $this->$target++;\n            }\n        }\n\n        return $this->solveNegativeInterval();\n    }\n\n    /**\n     * Get amount of given unit equivalent to the interval.\n     *\n     * @param string $unit\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return float\n     */\n    public function total($unit)\n    {\n        $realUnit = $unit = strtolower($unit);\n\n        if (in_array($unit, ['days', 'weeks'])) {\n            $realUnit = 'dayz';\n        } elseif (!in_array($unit, ['microseconds', 'milliseconds', 'seconds', 'minutes', 'hours', 'dayz', 'months', 'years'])) {\n            throw new InvalidArgumentException(\"Unknown unit '$unit'.\");\n        }\n\n        $result = 0;\n        $cumulativeFactor = 0;\n        $unitFound = false;\n        $factors = static::getFlipCascadeFactors();\n\n        foreach ($factors as $source => [$target, $factor]) {\n            if ($source === $realUnit) {\n                $unitFound = true;\n                $value = $this->$source;\n                if ($source === 'microseconds' && isset($factors['milliseconds'])) {\n                    $value %= Carbon::MICROSECONDS_PER_MILLISECOND;\n                }\n                $result += $value;\n                $cumulativeFactor = 1;\n            }\n\n            if ($factor === false) {\n                if ($unitFound) {\n                    break;\n                }\n\n                $result = 0;\n                $cumulativeFactor = 0;\n\n                continue;\n            }\n\n            if ($target === $realUnit) {\n                $unitFound = true;\n            }\n\n            if ($cumulativeFactor) {\n                $cumulativeFactor *= $factor;\n                $result += $this->$target * $cumulativeFactor;\n\n                continue;\n            }\n\n            $value = $this->$source;\n\n            if ($source === 'microseconds' && isset($factors['milliseconds'])) {\n                $value %= Carbon::MICROSECONDS_PER_MILLISECOND;\n            }\n\n            $result = ($result + $value) / $factor;\n        }\n\n        if (isset($target) && !$cumulativeFactor) {\n            $result += $this->$target;\n        }\n\n        if (!$unitFound) {\n            throw new \\InvalidArgumentException(\"Unit $unit have no configuration to get total from other units.\");\n        }\n\n        if ($unit === 'weeks') {\n            return $result / static::getDaysPerWeek();\n        }\n\n        return $result;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse BadMethodCallException;\nuse Carbon\\Traits\\Options;\nuse Closure;\nuse Countable;\nuse DateInterval;\nuse DateTime;\nuse DateTimeInterface;\nuse InvalidArgumentException;\nuse Iterator;\nuse ReflectionClass;\nuse ReflectionMethod;\nuse RuntimeException;\n\n/**\n * Substitution of DatePeriod with some modifications and many more features.\n *\n * @method static CarbonPeriod start($date, $inclusive = null) Create instance specifying start date.\n * @method static CarbonPeriod since($date, $inclusive = null) Alias for start().\n * @method static CarbonPeriod sinceNow($inclusive = null) Create instance with start date set to now.\n * @method static CarbonPeriod end($date = null, $inclusive = null) Create instance specifying end date.\n * @method static CarbonPeriod until($date = null, $inclusive = null) Alias for end().\n * @method static CarbonPeriod untilNow($inclusive = null) Create instance with end date set to now.\n * @method static CarbonPeriod dates($start, $end = null) Create instance with start and end date.\n * @method static CarbonPeriod between($start, $end = null) Create instance with start and end date.\n * @method static CarbonPeriod recurrences($recurrences = null) Create instance with maximum number of recurrences.\n * @method static CarbonPeriod times($recurrences = null) Alias for recurrences().\n * @method static CarbonPeriod options($options = null) Create instance with options.\n * @method static CarbonPeriod toggle($options, $state = null) Create instance with options toggled on or off.\n * @method static CarbonPeriod filter($callback, $name = null) Create instance with filter added to the stack.\n * @method static CarbonPeriod push($callback, $name = null) Alias for filter().\n * @method static CarbonPeriod prepend($callback, $name = null) Create instance with filter prepened to the stack.\n * @method static CarbonPeriod filters(array $filters) Create instance with filters stack.\n * @method static CarbonPeriod interval($interval) Create instance with given date interval.\n * @method static CarbonPeriod each($interval) Create instance with given date interval.\n * @method static CarbonPeriod every($interval) Create instance with given date interval.\n * @method static CarbonPeriod step($interval) Create instance with given date interval.\n * @method static CarbonPeriod stepBy($interval) Create instance with given date interval.\n * @method static CarbonPeriod invert() Create instance with inverted date interval.\n * @method static CarbonPeriod years($years = 1) Create instance specifying a number of years for date interval.\n * @method static CarbonPeriod year($years = 1) Alias for years().\n * @method static CarbonPeriod months($months = 1) Create instance specifying a number of months for date interval.\n * @method static CarbonPeriod month($months = 1) Alias for months().\n * @method static CarbonPeriod weeks($weeks = 1) Create instance specifying a number of weeks for date interval.\n * @method static CarbonPeriod week($weeks = 1) Alias for weeks().\n * @method static CarbonPeriod days($days = 1) Create instance specifying a number of days for date interval.\n * @method static CarbonPeriod dayz($days = 1) Alias for days().\n * @method static CarbonPeriod day($days = 1) Alias for days().\n * @method static CarbonPeriod hours($hours = 1) Create instance specifying a number of hours for date interval.\n * @method static CarbonPeriod hour($hours = 1) Alias for hours().\n * @method static CarbonPeriod minutes($minutes = 1) Create instance specifying a number of minutes for date interval.\n * @method static CarbonPeriod minute($minutes = 1) Alias for minutes().\n * @method static CarbonPeriod seconds($seconds = 1) Create instance specifying a number of seconds for date interval.\n * @method static CarbonPeriod second($seconds = 1) Alias for seconds().\n * @method CarbonPeriod start($date, $inclusive = null) Change the period start date.\n * @method CarbonPeriod since($date, $inclusive = null) Alias for start().\n * @method CarbonPeriod sinceNow($inclusive = null) Change the period start date to now.\n * @method CarbonPeriod end($date = null, $inclusive = null) Change the period end date.\n * @method CarbonPeriod until($date = null, $inclusive = null) Alias for end().\n * @method CarbonPeriod untilNow($inclusive = null) Change the period end date to now.\n * @method CarbonPeriod dates($start, $end = null) Change the period start and end date.\n * @method CarbonPeriod recurrences($recurrences = null) Change the maximum number of recurrences.\n * @method CarbonPeriod times($recurrences = null) Alias for recurrences().\n * @method CarbonPeriod options($options = null) Change the period options.\n * @method CarbonPeriod toggle($options, $state = null) Toggle given options on or off.\n * @method CarbonPeriod filter($callback, $name = null) Add a filter to the stack.\n * @method CarbonPeriod push($callback, $name = null) Alias for filter().\n * @method CarbonPeriod prepend($callback, $name = null) Prepend a filter to the stack.\n * @method CarbonPeriod filters(array $filters = []) Set filters stack.\n * @method CarbonPeriod interval($interval) Change the period date interval.\n * @method CarbonPeriod invert() Invert the period date interval.\n * @method CarbonPeriod years($years = 1) Set the years portion of the date interval.\n * @method CarbonPeriod year($years = 1) Alias for years().\n * @method CarbonPeriod months($months = 1) Set the months portion of the date interval.\n * @method CarbonPeriod month($months = 1) Alias for months().\n * @method CarbonPeriod weeks($weeks = 1) Set the weeks portion of the date interval.\n * @method CarbonPeriod week($weeks = 1) Alias for weeks().\n * @method CarbonPeriod days($days = 1) Set the days portion of the date interval.\n * @method CarbonPeriod dayz($days = 1) Alias for days().\n * @method CarbonPeriod day($days = 1) Alias for days().\n * @method CarbonPeriod hours($hours = 1) Set the hours portion of the date interval.\n * @method CarbonPeriod hour($hours = 1) Alias for hours().\n * @method CarbonPeriod minutes($minutes = 1) Set the minutes portion of the date interval.\n * @method CarbonPeriod minute($minutes = 1) Alias for minutes().\n * @method CarbonPeriod seconds($seconds = 1) Set the seconds portion of the date interval.\n * @method CarbonPeriod second($seconds = 1) Alias for seconds().\n */\nclass CarbonPeriod implements Iterator, Countable\n{\n    use Options;\n\n    /**\n     * Built-in filters.\n     *\n     * @var string\n     */\n    const RECURRENCES_FILTER = 'Carbon\\CarbonPeriod::filterRecurrences';\n    const END_DATE_FILTER = 'Carbon\\CarbonPeriod::filterEndDate';\n\n    /**\n     * Special value which can be returned by filters to end iteration. Also a filter.\n     *\n     * @var string\n     */\n    const END_ITERATION = 'Carbon\\CarbonPeriod::endIteration';\n\n    /**\n     * Available options.\n     *\n     * @var int\n     */\n    const EXCLUDE_START_DATE = 1;\n    const EXCLUDE_END_DATE = 2;\n    const IMMUTABLE = 4;\n\n    /**\n     * Number of maximum attempts before giving up on finding next valid date.\n     *\n     * @var int\n     */\n    const NEXT_MAX_ATTEMPTS = 1000;\n\n    /**\n     * The registered macros.\n     *\n     * @var array\n     */\n    protected static $macros = [];\n\n    /**\n     * Date class of iteration items.\n     *\n     * @var string\n     */\n    protected $dateClass = Carbon::class;\n\n    /**\n     * Underlying date interval instance. Always present, one day by default.\n     *\n     * @var CarbonInterval\n     */\n    protected $dateInterval;\n\n    /**\n     * Whether current date interval was set by default.\n     *\n     * @var bool\n     */\n    protected $isDefaultInterval;\n\n    /**\n     * The filters stack.\n     *\n     * @var array\n     */\n    protected $filters = [];\n\n    /**\n     * Period start date. Applied on rewind. Always present, now by default.\n     *\n     * @var CarbonInterface\n     */\n    protected $startDate;\n\n    /**\n     * Period end date. For inverted interval should be before the start date. Applied via a filter.\n     *\n     * @var CarbonInterface|null\n     */\n    protected $endDate;\n\n    /**\n     * Limit for number of recurrences. Applied via a filter.\n     *\n     * @var int|null\n     */\n    protected $recurrences;\n\n    /**\n     * Iteration options.\n     *\n     * @var int\n     */\n    protected $options;\n\n    /**\n     * Index of current date. Always sequential, even if some dates are skipped by filters.\n     * Equal to null only before the first iteration.\n     *\n     * @var int\n     */\n    protected $key;\n\n    /**\n     * Current date. May temporarily hold unaccepted value when looking for a next valid date.\n     * Equal to null only before the first iteration.\n     *\n     * @var CarbonInterface\n     */\n    protected $current;\n\n    /**\n     * Timezone of current date. Taken from the start date.\n     *\n     * @var \\DateTimeZone|null\n     */\n    protected $timezone;\n\n    /**\n     * The cached validation result for current date.\n     *\n     * @var bool|string|null\n     */\n    protected $validationResult;\n\n    /**\n     * Timezone handler for settings() method.\n     *\n     * @var mixed\n     */\n    protected $tzName;\n\n    /**\n     * Create a new instance.\n     *\n     * @return static\n     */\n    public static function create(...$params)\n    {\n        return static::createFromArray($params);\n    }\n\n    /**\n     * Create a new instance from an array of parameters.\n     *\n     * @param array $params\n     *\n     * @return static\n     */\n    public static function createFromArray(array $params)\n    {\n        return new static(...$params);\n    }\n\n    /**\n     * Create CarbonPeriod from ISO 8601 string.\n     *\n     * @param string   $iso\n     * @param int|null $options\n     *\n     * @return static\n     */\n    public static function createFromIso($iso, $options = null)\n    {\n        $params = static::parseIso8601($iso);\n\n        $instance = static::createFromArray($params);\n\n        if ($options !== null) {\n            $instance->setOptions($options);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Return whether given interval contains non zero value of any time unit.\n     *\n     * @param \\DateInterval $interval\n     *\n     * @return bool\n     */\n    protected static function intervalHasTime(DateInterval $interval)\n    {\n        return $interval->h || $interval->i || $interval->s || $interval->f;\n    }\n\n    /**\n     * Return whether given variable is an ISO 8601 specification.\n     *\n     * Note: Check is very basic, as actual validation will be done later when parsing.\n     * We just want to ensure that variable is not any other type of a valid parameter.\n     *\n     * @param mixed $var\n     *\n     * @return bool\n     */\n    protected static function isIso8601($var)\n    {\n        if (!is_string($var)) {\n            return false;\n        }\n\n        // Match slash but not within a timezone name.\n        $part = '[a-z]+(?:[_-][a-z]+)*';\n\n        preg_match(\"#\\b$part/$part\\b|(/)#i\", $var, $match);\n\n        return isset($match[1]);\n    }\n\n    /**\n     * Parse given ISO 8601 string into an array of arguments.\n     *\n     * @param string $iso\n     *\n     * @return array\n     */\n    protected static function parseIso8601($iso)\n    {\n        $result = [];\n\n        $interval = null;\n        $start = null;\n        $end = null;\n\n        foreach (explode('/', $iso) as $key => $part) {\n            if ($key === 0 && preg_match('/^R([0-9]*)$/', $part, $match)) {\n                $parsed = strlen($match[1]) ? (int) $match[1] : null;\n            } elseif ($interval === null && $parsed = CarbonInterval::make($part)) {\n                $interval = $part;\n            } elseif ($start === null && $parsed = Carbon::make($part)) {\n                $start = $part;\n            } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start, $part))) {\n                $end = $part;\n            } else {\n                throw new InvalidArgumentException(\"Invalid ISO 8601 specification: $iso.\");\n            }\n\n            $result[] = $parsed;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Add missing parts of the target date from the soure date.\n     *\n     * @param string $source\n     * @param string $target\n     *\n     * @return string\n     */\n    protected static function addMissingParts($source, $target)\n    {\n        $pattern = '/'.preg_replace('/[0-9]+/', '[0-9]+', preg_quote($target, '/')).'$/';\n\n        $result = preg_replace($pattern, $target, $source, 1, $count);\n\n        return $count ? $result : $target;\n    }\n\n    /**\n     * Register a custom macro.\n     *\n     * @example\n     * ```\n     * CarbonPeriod::macro('middle', function () {\n     *   return $this->getStartDate()->average($this->getEndDate());\n     * });\n     * echo CarbonPeriod::since('2011-05-12')->until('2011-06-03')->middle();\n     * ```\n     *\n     * @param string          $name\n     * @param object|callable $macro\n     *\n     * @return void\n     */\n    public static function macro($name, $macro)\n    {\n        static::$macros[$name] = $macro;\n    }\n\n    /**\n     * Register macros from a mixin object.\n     *\n     * @example\n     * ```\n     * CarbonPeriod::mixin(new class {\n     *   public function addDays() {\n     *     return function ($count = 1) {\n     *       return $this->setStartDate(\n     *         $this->getStartDate()->addDays($count)\n     *       )->setEndDate(\n     *         $this->getEndDate()->addDays($count)\n     *       );\n     *     };\n     *   }\n     *   public function subDays() {\n     *     return function ($count = 1) {\n     *       return $this->setStartDate(\n     *         $this->getStartDate()->subDays($count)\n     *       )->setEndDate(\n     *         $this->getEndDate()->subDays($count)\n     *       );\n     *     };\n     *   }\n     * });\n     * echo CarbonPeriod::create('2000-01-01', '2000-02-01')->addDays(5)->subDays(3);\n     * ```\n     *\n     * @param object $mixin\n     *\n     * @throws \\ReflectionException\n     *\n     * @return void\n     */\n    public static function mixin($mixin)\n    {\n        $reflection = new ReflectionClass($mixin);\n\n        $methods = $reflection->getMethods(\n            ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED\n        );\n\n        foreach ($methods as $method) {\n            $method->setAccessible(true);\n\n            static::macro($method->name, $method->invoke($mixin));\n        }\n    }\n\n    /**\n     * Check if macro is registered.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public static function hasMacro($name)\n    {\n        return isset(static::$macros[$name]);\n    }\n\n    /**\n     * Provide static proxy for instance aliases.\n     *\n     * @param string $method\n     * @param array  $parameters\n     *\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        return (new static)->$method(...$parameters);\n    }\n\n    /**\n     * CarbonPeriod constructor.\n     *\n     * @throws InvalidArgumentException\n     */\n    public function __construct(...$arguments)\n    {\n        // Parse and assign arguments one by one. First argument may be an ISO 8601 spec,\n        // which will be first parsed into parts and then processed the same way.\n\n        if (count($arguments) && static::isIso8601($iso = $arguments[0])) {\n            array_splice($arguments, 0, 1, static::parseIso8601($iso));\n        }\n\n        foreach ($arguments as $argument) {\n            if ($this->dateInterval === null &&\n                (\n                    is_string($argument) && preg_match('/^(\\d.*|P[T0-9].*|(?:\\h*\\d+(?:\\.\\d+)?\\h*[a-z]+)+)$/i', $argument) ||\n                    $argument instanceof DateInterval\n                ) &&\n                $parsed = @CarbonInterval::make($argument)\n            ) {\n                $this->setDateInterval($parsed);\n            } elseif ($this->startDate === null && $parsed = Carbon::make($argument)) {\n                $this->setStartDate($parsed);\n            } elseif ($this->endDate === null && $parsed = Carbon::make($argument)) {\n                $this->setEndDate($parsed);\n            } elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) {\n                $this->setRecurrences($argument);\n            } elseif ($this->options === null && (is_int($argument) || $argument === null)) {\n                $this->setOptions($argument);\n            } else {\n                throw new InvalidArgumentException('Invalid constructor parameters.');\n            }\n        }\n\n        if ($this->startDate === null) {\n            $this->setStartDate(Carbon::now());\n        }\n\n        if ($this->dateInterval === null) {\n            $this->setDateInterval(CarbonInterval::day());\n\n            $this->isDefaultInterval = true;\n        }\n\n        if ($this->options === null) {\n            $this->setOptions(0);\n        }\n    }\n\n    /**\n     * Return whether given callable is a string pointing to one of Carbon's is* methods\n     * and should be automatically converted to a filter callback.\n     *\n     * @param callable $callable\n     *\n     * @return bool\n     */\n    protected function isCarbonPredicateMethod($callable)\n    {\n        return is_string($callable) && substr($callable, 0, 2) === 'is' && (method_exists($this->dateClass, $callable) || call_user_func([$this->dateClass, 'hasMacro'], $callable));\n    }\n\n    /**\n     * Set the iteration item class.\n     *\n     * @param string $dateClass\n     *\n     * @return $this\n     */\n    public function setDateClass(string $dateClass)\n    {\n        if (!is_a($dateClass, CarbonInterface::class, true)) {\n            throw new InvalidArgumentException(sprintf(\n                'Given class does not implement %s: %s', CarbonInterface::class, $dateClass\n            ));\n        }\n\n        $this->dateClass = $dateClass;\n\n        if (is_a($dateClass, Carbon::class, true)) {\n            $this->toggleOptions(static::IMMUTABLE, false);\n        } elseif (is_a($dateClass, CarbonImmutable::class, true)) {\n            $this->toggleOptions(static::IMMUTABLE, true);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Returns iteration item date class.\n     *\n     * @return string\n     */\n    public function getDateClass(): string\n    {\n        return $this->dateClass;\n    }\n\n    /**\n     * Change the period date interval.\n     *\n     * @param DateInterval|string $interval\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function setDateInterval($interval)\n    {\n        if (!$interval = CarbonInterval::make($interval)) {\n            throw new InvalidArgumentException('Invalid interval.');\n        }\n\n        if ($interval->spec() === 'PT0S' && !$interval->f) {\n            throw new InvalidArgumentException('Empty interval is not accepted.');\n        }\n\n        $this->dateInterval = $interval;\n\n        $this->isDefaultInterval = false;\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Invert the period date interval.\n     *\n     * @return $this\n     */\n    public function invertDateInterval()\n    {\n        $interval = $this->dateInterval->invert();\n\n        return $this->setDateInterval($interval);\n    }\n\n    /**\n     * Set start and end date.\n     *\n     * @param DateTime|DateTimeInterface|string      $start\n     * @param DateTime|DateTimeInterface|string|null $end\n     *\n     * @return $this\n     */\n    public function setDates($start, $end)\n    {\n        $this->setStartDate($start);\n        $this->setEndDate($end);\n\n        return $this;\n    }\n\n    /**\n     * Change the period options.\n     *\n     * @param int|null $options\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function setOptions($options)\n    {\n        if (!is_int($options) && !is_null($options)) {\n            throw new InvalidArgumentException('Invalid options.');\n        }\n\n        $this->options = $options ?: 0;\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Get the period options.\n     *\n     * @return int\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Toggle given options on or off.\n     *\n     * @param int       $options\n     * @param bool|null $state\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function toggleOptions($options, $state = null)\n    {\n        if ($state === null) {\n            $state = ($this->options & $options) !== $options;\n        }\n\n        return $this->setOptions(\n            $state ?\n            $this->options | $options :\n            $this->options & ~$options\n        );\n    }\n\n    /**\n     * Toggle EXCLUDE_START_DATE option.\n     *\n     * @param bool $state\n     *\n     * @return $this\n     */\n    public function excludeStartDate($state = true)\n    {\n        return $this->toggleOptions(static::EXCLUDE_START_DATE, $state);\n    }\n\n    /**\n     * Toggle EXCLUDE_END_DATE option.\n     *\n     * @param bool $state\n     *\n     * @return $this\n     */\n    public function excludeEndDate($state = true)\n    {\n        return $this->toggleOptions(static::EXCLUDE_END_DATE, $state);\n    }\n\n    /**\n     * Get the underlying date interval.\n     *\n     * @return CarbonInterval\n     */\n    public function getDateInterval()\n    {\n        return $this->dateInterval->copy();\n    }\n\n    /**\n     * Get start date of the period.\n     *\n     * @return CarbonInterface\n     */\n    public function getStartDate()\n    {\n        return $this->startDate->copy();\n    }\n\n    /**\n     * Get end date of the period.\n     *\n     * @return CarbonInterface|null\n     */\n    public function getEndDate()\n    {\n        return $this->endDate ? $this->endDate->copy() : null;\n    }\n\n    /**\n     * Get number of recurrences.\n     *\n     * @return int|null\n     */\n    public function getRecurrences()\n    {\n        return $this->recurrences;\n    }\n\n    /**\n     * Returns true if the start date should be excluded.\n     *\n     * @return bool\n     */\n    public function isStartExcluded()\n    {\n        return ($this->options & static::EXCLUDE_START_DATE) !== 0;\n    }\n\n    /**\n     * Returns true if the end date should be excluded.\n     *\n     * @return bool\n     */\n    public function isEndExcluded()\n    {\n        return ($this->options & static::EXCLUDE_END_DATE) !== 0;\n    }\n\n    /**\n     * Add a filter to the stack.\n     *\n     * @param callable $callback\n     * @param string   $name\n     *\n     * @return $this\n     */\n    public function addFilter($callback, $name = null)\n    {\n        $tuple = $this->createFilterTuple(func_get_args());\n\n        $this->filters[] = $tuple;\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Prepend a filter to the stack.\n     *\n     * @param callable $callback\n     * @param string   $name\n     *\n     * @return $this\n     */\n    public function prependFilter($callback, $name = null)\n    {\n        $tuple = $this->createFilterTuple(func_get_args());\n\n        array_unshift($this->filters, $tuple);\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Create a filter tuple from raw parameters.\n     *\n     * Will create an automatic filter callback for one of Carbon's is* methods.\n     *\n     * @param array $parameters\n     *\n     * @return array\n     */\n    protected function createFilterTuple(array $parameters)\n    {\n        $method = array_shift($parameters);\n\n        if (!$this->isCarbonPredicateMethod($method)) {\n            return [$method, array_shift($parameters)];\n        }\n\n        return [function ($date) use ($method, $parameters) {\n            return call_user_func_array([$date, $method], $parameters);\n        }, $method];\n    }\n\n    /**\n     * Remove a filter by instance or name.\n     *\n     * @param callable|string $filter\n     *\n     * @return $this\n     */\n    public function removeFilter($filter)\n    {\n        $key = is_callable($filter) ? 0 : 1;\n\n        $this->filters = array_values(array_filter(\n            $this->filters,\n            function ($tuple) use ($key, $filter) {\n                return $tuple[$key] !== $filter;\n            }\n        ));\n\n        $this->updateInternalState();\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Return whether given instance or name is in the filter stack.\n     *\n     * @param callable|string $filter\n     *\n     * @return bool\n     */\n    public function hasFilter($filter)\n    {\n        $key = is_callable($filter) ? 0 : 1;\n\n        foreach ($this->filters as $tuple) {\n            if ($tuple[$key] === $filter) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Get filters stack.\n     *\n     * @return array\n     */\n    public function getFilters()\n    {\n        return $this->filters;\n    }\n\n    /**\n     * Set filters stack.\n     *\n     * @param array $filters\n     *\n     * @return $this\n     */\n    public function setFilters(array $filters)\n    {\n        $this->filters = $filters;\n\n        $this->updateInternalState();\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Reset filters stack.\n     *\n     * @return $this\n     */\n    public function resetFilters()\n    {\n        $this->filters = [];\n\n        if ($this->endDate !== null) {\n            $this->filters[] = [static::END_DATE_FILTER, null];\n        }\n\n        if ($this->recurrences !== null) {\n            $this->filters[] = [static::RECURRENCES_FILTER, null];\n        }\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Update properties after removing built-in filters.\n     *\n     * @return void\n     */\n    protected function updateInternalState()\n    {\n        if (!$this->hasFilter(static::END_DATE_FILTER)) {\n            $this->endDate = null;\n        }\n\n        if (!$this->hasFilter(static::RECURRENCES_FILTER)) {\n            $this->recurrences = null;\n        }\n    }\n\n    /**\n     * Add a recurrences filter (set maximum number of recurrences).\n     *\n     * @param int|null $recurrences\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function setRecurrences($recurrences)\n    {\n        if (!is_numeric($recurrences) && !is_null($recurrences) || $recurrences < 0) {\n            throw new InvalidArgumentException('Invalid number of recurrences.');\n        }\n\n        if ($recurrences === null) {\n            return $this->removeFilter(static::RECURRENCES_FILTER);\n        }\n\n        $this->recurrences = (int) $recurrences;\n\n        if (!$this->hasFilter(static::RECURRENCES_FILTER)) {\n            return $this->addFilter(static::RECURRENCES_FILTER);\n        }\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * Recurrences filter callback (limits number of recurrences).\n     *\n     * @param \\Carbon\\Carbon $current\n     * @param int            $key\n     *\n     * @return bool|string\n     */\n    protected function filterRecurrences($current, $key)\n    {\n        if ($key < $this->recurrences) {\n            return true;\n        }\n\n        return static::END_ITERATION;\n    }\n\n    /**\n     * Change the period start date.\n     *\n     * @param DateTime|DateTimeInterface|string $date\n     * @param bool|null                         $inclusive\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function setStartDate($date, $inclusive = null)\n    {\n        if (!$date = call_user_func([$this->dateClass, 'make'], $date)) {\n            throw new InvalidArgumentException('Invalid start date.');\n        }\n\n        $this->startDate = $date;\n\n        if ($inclusive !== null) {\n            $this->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Change the period end date.\n     *\n     * @param DateTime|DateTimeInterface|string|null $date\n     * @param bool|null                              $inclusive\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return $this\n     */\n    public function setEndDate($date, $inclusive = null)\n    {\n        if (!is_null($date) && !$date = call_user_func([$this->dateClass, 'make'], $date)) {\n            throw new InvalidArgumentException('Invalid end date.');\n        }\n\n        if (!$date) {\n            return $this->removeFilter(static::END_DATE_FILTER);\n        }\n\n        $this->endDate = $date;\n\n        if ($inclusive !== null) {\n            $this->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive);\n        }\n\n        if (!$this->hasFilter(static::END_DATE_FILTER)) {\n            return $this->addFilter(static::END_DATE_FILTER);\n        }\n\n        $this->handleChangedParameters();\n\n        return $this;\n    }\n\n    /**\n     * End date filter callback.\n     *\n     * @param \\Carbon\\Carbon $current\n     *\n     * @return bool|string\n     */\n    protected function filterEndDate($current)\n    {\n        if (!$this->isEndExcluded() && $current == $this->endDate) {\n            return true;\n        }\n\n        if ($this->dateInterval->invert ? $current > $this->endDate : $current < $this->endDate) {\n            return true;\n        }\n\n        return static::END_ITERATION;\n    }\n\n    /**\n     * End iteration filter callback.\n     *\n     * @return string\n     */\n    protected function endIteration()\n    {\n        return static::END_ITERATION;\n    }\n\n    /**\n     * Handle change of the parameters.\n     */\n    protected function handleChangedParameters()\n    {\n        if (($this->getOptions() & static::IMMUTABLE) && $this->dateClass === Carbon::class) {\n            $this->setDateClass(CarbonImmutable::class);\n        } elseif (!($this->getOptions() & static::IMMUTABLE) && $this->dateClass === CarbonImmutable::class) {\n            $this->setDateClass(Carbon::class);\n        }\n\n        $this->validationResult = null;\n    }\n\n    /**\n     * Validate current date and stop iteration when necessary.\n     *\n     * Returns true when current date is valid, false if it is not, or static::END_ITERATION\n     * when iteration should be stopped.\n     *\n     * @return bool|string\n     */\n    protected function validateCurrentDate()\n    {\n        if ($this->current === null) {\n            $this->rewind();\n        }\n\n        // Check after the first rewind to avoid repeating the initial validation.\n        if ($this->validationResult !== null) {\n            return $this->validationResult;\n        }\n\n        return $this->validationResult = $this->checkFilters();\n    }\n\n    /**\n     * Check whether current value and key pass all the filters.\n     *\n     * @return bool|string\n     */\n    protected function checkFilters()\n    {\n        $current = $this->prepareForReturn($this->current);\n\n        foreach ($this->filters as $tuple) {\n            $result = call_user_func(\n                $tuple[0],\n                $current->copy(),\n                $this->key,\n                $this\n            );\n\n            if ($result === static::END_ITERATION) {\n                return static::END_ITERATION;\n            }\n\n            if (!$result) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Prepare given date to be returned to the external logic.\n     *\n     * @param CarbonInterface $date\n     *\n     * @return CarbonInterface\n     */\n    protected function prepareForReturn(CarbonInterface $date)\n    {\n        $date = call_user_func([$this->dateClass, 'make'], $date);\n\n        if ($this->timezone) {\n            $date = $date->setTimezone($this->timezone);\n        }\n\n        return $date;\n    }\n\n    /**\n     * Check if the current position is valid.\n     *\n     * @return bool\n     */\n    public function valid()\n    {\n        return $this->validateCurrentDate() === true;\n    }\n\n    /**\n     * Return the current key.\n     *\n     * @return int|null\n     */\n    public function key()\n    {\n        if ($this->valid()) {\n            return $this->key;\n        }\n    }\n\n    /**\n     * Return the current date.\n     *\n     * @return CarbonInterface|null\n     */\n    public function current()\n    {\n        if ($this->valid()) {\n            return $this->prepareForReturn($this->current);\n        }\n    }\n\n    /**\n     * Move forward to the next date.\n     *\n     * @throws \\RuntimeException\n     *\n     * @return void\n     */\n    public function next()\n    {\n        if ($this->current === null) {\n            $this->rewind();\n        }\n\n        if ($this->validationResult !== static::END_ITERATION) {\n            $this->key++;\n\n            $this->incrementCurrentDateUntilValid();\n        }\n    }\n\n    /**\n     * Rewind to the start date.\n     *\n     * Iterating over a date in the UTC timezone avoids bug during backward DST change.\n     *\n     * @see https://bugs.php.net/bug.php?id=72255\n     * @see https://bugs.php.net/bug.php?id=74274\n     * @see https://wiki.php.net/rfc/datetime_and_daylight_saving_time\n     *\n     * @throws \\RuntimeException\n     *\n     * @return void\n     */\n    public function rewind()\n    {\n        $this->key = 0;\n        $this->current = call_user_func([$this->dateClass, 'make'], $this->startDate);\n        $settings = $this->getSettings();\n        $locale = $this->getLocalTranslator()->getLocale();\n        if ($locale) {\n            $settings['locale'] = $locale;\n        }\n        $this->current->settings($settings);\n        $this->timezone = static::intervalHasTime($this->dateInterval) ? $this->current->getTimezone() : null;\n\n        if ($this->timezone) {\n            $this->current = $this->current->utc();\n        }\n\n        $this->validationResult = null;\n\n        if ($this->isStartExcluded() || $this->validateCurrentDate() === false) {\n            $this->incrementCurrentDateUntilValid();\n        }\n    }\n\n    /**\n     * Skip iterations and returns iteration state (false if ended, true if still valid).\n     *\n     * @param int $count steps number to skip (1 by default)\n     *\n     * @return bool\n     */\n    public function skip($count = 1)\n    {\n        for ($i = $count; $this->valid() && $i > 0; $i--) {\n            $this->next();\n        }\n\n        return $this->valid();\n    }\n\n    /**\n     * Keep incrementing the current date until a valid date is found or the iteration is ended.\n     *\n     * @throws \\RuntimeException\n     *\n     * @return void\n     */\n    protected function incrementCurrentDateUntilValid()\n    {\n        $attempts = 0;\n\n        do {\n            $this->current = $this->current->add($this->dateInterval);\n\n            $this->validationResult = null;\n\n            if (++$attempts > static::NEXT_MAX_ATTEMPTS) {\n                throw new RuntimeException('Could not find next valid date.');\n            }\n        } while ($this->validateCurrentDate() === false);\n    }\n\n    /**\n     * Format the date period as ISO 8601.\n     *\n     * @return string\n     */\n    public function toIso8601String()\n    {\n        $parts = [];\n\n        if ($this->recurrences !== null) {\n            $parts[] = 'R'.$this->recurrences;\n        }\n\n        $parts[] = $this->startDate->toIso8601String();\n\n        $parts[] = $this->dateInterval->spec();\n\n        if ($this->endDate !== null) {\n            $parts[] = $this->endDate->toIso8601String();\n        }\n\n        return implode('/', $parts);\n    }\n\n    /**\n     * Convert the date period into a string.\n     *\n     * @return string\n     */\n    public function toString()\n    {\n        $translator = call_user_func([$this->dateClass, 'getTranslator']);\n\n        $parts = [];\n\n        $format = !$this->startDate->isStartOfDay() || $this->endDate && !$this->endDate->isStartOfDay()\n            ? 'Y-m-d H:i:s'\n            : 'Y-m-d';\n\n        if ($this->recurrences !== null) {\n            $parts[] = $this->translate('period_recurrences', [], $this->recurrences, $translator);\n        }\n\n        $parts[] = $this->translate('period_interval', [':interval' => $this->dateInterval->forHumans([\n            'join' => true,\n        ])], null, $translator);\n\n        $parts[] = $this->translate('period_start_date', [':date' => $this->startDate->rawFormat($format)], null, $translator);\n\n        if ($this->endDate !== null) {\n            $parts[] = $this->translate('period_end_date', [':date' => $this->endDate->rawFormat($format)], null, $translator);\n        }\n\n        $result = implode(' ', $parts);\n\n        return mb_strtoupper(mb_substr($result, 0, 1)).mb_substr($result, 1);\n    }\n\n    /**\n     * Format the date period as ISO 8601.\n     *\n     * @return string\n     */\n    public function spec()\n    {\n        return $this->toIso8601String();\n    }\n\n    /**\n     * Convert the date period into an array without changing current iteration state.\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        $state = [\n            $this->key,\n            $this->current ? $this->current->copy() : null,\n            $this->validationResult,\n        ];\n\n        $result = iterator_to_array($this);\n\n        [\n            $this->key,\n            $this->current,\n            $this->validationResult\n        ] = $state;\n\n        return $result;\n    }\n\n    /**\n     * Count dates in the date period.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->toArray());\n    }\n\n    /**\n     * Return the first date in the date period.\n     *\n     * @return CarbonInterface|null\n     */\n    public function first()\n    {\n        if ($array = $this->toArray()) {\n            return $array[0];\n        }\n    }\n\n    /**\n     * Return the last date in the date period.\n     *\n     * @return CarbonInterface|null\n     */\n    public function last()\n    {\n        if ($array = $this->toArray()) {\n            return $array[count($array) - 1];\n        }\n    }\n\n    /**\n     * Call given macro.\n     *\n     * @param string $name\n     * @param array  $parameters\n     *\n     * @return mixed\n     */\n    protected function callMacro($name, $parameters)\n    {\n        $macro = static::$macros[$name];\n\n        if ($macro instanceof Closure) {\n            return call_user_func_array($macro->bindTo($this, static::class), $parameters);\n        }\n\n        return call_user_func_array($macro, $parameters);\n    }\n\n    /**\n     * Convert the date period into a string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->toString();\n    }\n\n    /**\n     * Add aliases for setters.\n     *\n     * CarbonPeriod::days(3)->hours(5)->invert()\n     *     ->sinceNow()->until('2010-01-10')\n     *     ->filter(...)\n     *     ->count()\n     *\n     * Note: We use magic method to let static and instance aliases with the same names.\n     *\n     * @param string $method\n     * @param array  $parameters\n     *\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        if (static::hasMacro($method)) {\n            return $this->callMacro($method, $parameters);\n        }\n\n        $first = count($parameters) >= 1 ? $parameters[0] : null;\n        $second = count($parameters) >= 2 ? $parameters[1] : null;\n\n        switch ($method) {\n            case 'start':\n            case 'since':\n                return $this->setStartDate($first, $second);\n\n            case 'sinceNow':\n                return $this->setStartDate(new Carbon, $first);\n\n            case 'end':\n            case 'until':\n                return $this->setEndDate($first, $second);\n\n            case 'untilNow':\n                return $this->setEndDate(new Carbon, $first);\n\n            case 'dates':\n            case 'between':\n                return $this->setDates($first, $second);\n\n            case 'recurrences':\n            case 'times':\n                return $this->setRecurrences($first);\n\n            case 'options':\n                return $this->setOptions($first);\n\n            case 'toggle':\n                return $this->toggleOptions($first, $second);\n\n            case 'filter':\n            case 'push':\n                return $this->addFilter($first, $second);\n\n            case 'prepend':\n                return $this->prependFilter($first, $second);\n\n            case 'filters':\n                return $this->setFilters($first ?: []);\n\n            case 'interval':\n            case 'each':\n            case 'every':\n            case 'step':\n            case 'stepBy':\n                return $this->setDateInterval($first);\n\n            case 'invert':\n                return $this->invertDateInterval();\n\n            case 'years':\n            case 'year':\n            case 'months':\n            case 'month':\n            case 'weeks':\n            case 'week':\n            case 'days':\n            case 'dayz':\n            case 'day':\n            case 'hours':\n            case 'hour':\n            case 'minutes':\n            case 'minute':\n            case 'seconds':\n            case 'second':\n                return $this->setDateInterval(call_user_func(\n                    // Override default P1D when instantiating via fluent setters.\n                    [$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method],\n                    count($parameters) === 0 ? 1 : $first\n                ));\n        }\n\n        if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {\n            throw new BadMethodCallException(\"Method $method does not exist.\");\n        }\n\n        return $this;\n    }\n\n    /**\n     * Set the instance's timezone from a string or object and add/subtract the offset difference.\n     *\n     * @param \\DateTimeZone|string $timezone\n     *\n     * @return static\n     */\n    public function shiftTimezone($timezone)\n    {\n        $this->tzName = $timezone;\n        $this->timezone = $timezone;\n\n        return $this;\n    }\n\n    /**\n     * Returns the end is set, else calculated from start an recurrences.\n     *\n     * @return CarbonInterface\n     */\n    public function calculateEnd()\n    {\n        if ($end = $this->getEndDate()) {\n            return $end;\n        }\n\n        $dates = iterator_to_array($this);\n\n        return end($dates);\n    }\n\n    /**\n     * Returns true if the current period overlaps the given one (if 1 parameter passed)\n     * or the period between 2 dates (if 2 parameters passed).\n     *\n     * @param CarbonPeriod|\\DateTimeInterface|Carbon|CarbonImmutable|string $rangeOrRangeStart\n     * @param \\DateTimeInterface|Carbon|CarbonImmutable|string|null         $rangeEnd\n     *\n     * @return bool\n     */\n    public function overlaps($rangeOrRangeStart, $rangeEnd = null)\n    {\n        $range = $rangeEnd ? static::create($rangeOrRangeStart, $rangeEnd) : $rangeOrRangeStart;\n\n        if (!($range instanceof self)) {\n            $range = static::create($range);\n        }\n\n        return $this->calculateEnd() > $range->getStartDate() && $range->calculateEnd() > $this->getStartDate();\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse DateTimeInterface;\nuse DateTimeZone;\nuse InvalidArgumentException;\n\nclass CarbonTimeZone extends DateTimeZone\n{\n    public function __construct($timezone = null)\n    {\n        parent::__construct(static::getDateTimeZoneNameFromMixed($timezone));\n    }\n\n    protected static function getDateTimeZoneNameFromMixed($timezone)\n    {\n        if (is_null($timezone)) {\n            $timezone = date_default_timezone_get();\n        } elseif (is_numeric($timezone)) {\n            if ($timezone <= -100 || $timezone >= 100) {\n                throw new InvalidArgumentException('Absolute timezone offset cannot be greater than 100.');\n            }\n\n            $timezone = ($timezone >= 0 ? '+' : '').$timezone.':00';\n        }\n\n        return $timezone;\n    }\n\n    protected static function getDateTimeZoneFromName(&$name)\n    {\n        return @timezone_open($name = (string) static::getDateTimeZoneNameFromMixed($name));\n    }\n\n    /**\n     * Create a CarbonTimeZone from mixed input.\n     *\n     * @param DateTimeZone|string|int|null $object     original value to get CarbonTimeZone from it.\n     * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages.\n     *\n     * @return false|static\n     */\n    public static function instance($object = null, $objectDump = null)\n    {\n        $tz = $object;\n\n        if ($tz instanceof static) {\n            return $tz;\n        }\n\n        if ($tz === null) {\n            return new static();\n        }\n\n        if (!$tz instanceof DateTimeZone) {\n            $tz = static::getDateTimeZoneFromName($object);\n        }\n\n        if ($tz === false) {\n            if (Carbon::isStrictModeEnabled()) {\n                throw new InvalidArgumentException('Unknown or bad timezone ('.($objectDump ?: $object).')');\n            }\n\n            return false;\n        }\n\n        return new static($tz->getName());\n    }\n\n    /**\n     * Returns abbreviated name of the current timezone according to DST setting.\n     *\n     * @param bool $dst\n     *\n     * @return string\n     */\n    public function getAbbreviatedName($dst = false)\n    {\n        $name = $this->getName();\n\n        foreach ($this->listAbbreviations() as $abbreviation => $zones) {\n            foreach ($zones as $zone) {\n                if ($zone['timezone_id'] === $name && $zone['dst'] == $dst) {\n                    return $abbreviation;\n                }\n            }\n        }\n\n        return 'unknown';\n    }\n\n    /**\n     * @alias getAbbreviatedName\n     *\n     * Returns abbreviated name of the current timezone according to DST setting.\n     *\n     * @param bool $dst\n     *\n     * @return string\n     */\n    public function getAbbr($dst = false)\n    {\n        return $this->getAbbreviatedName($dst);\n    }\n\n    /**\n     * Get the offset as string \"sHH:MM\" (such as \"+00:00\" or \"-12:30\").\n     *\n     * @param DateTimeInterface|null $date\n     *\n     * @return string\n     */\n    public function toOffsetName(DateTimeInterface $date = null)\n    {\n        $minutes = floor($this->getOffset($date ?: Carbon::now($this)) / 60);\n\n        $hours = floor($minutes / 60);\n\n        $minutes = str_pad((string) (abs($minutes) % 60), 2, '0', STR_PAD_LEFT);\n\n        return ($hours < 0 ? '-' : '+').str_pad((string) abs($hours), 2, '0', STR_PAD_LEFT).\":$minutes\";\n    }\n\n    /**\n     * Returns a new CarbonTimeZone object using the offset string instead of region string.\n     *\n     * @param DateTimeInterface|null $date\n     *\n     * @return CarbonTimeZone\n     */\n    public function toOffsetTimeZone(DateTimeInterface $date = null)\n    {\n        return new static($this->toOffsetName($date));\n    }\n\n    /**\n     * Returns the first region string (such as \"America/Toronto\") that matches the current timezone.\n     *\n     * @see timezone_name_from_abbr native PHP function.\n     *\n     * @param DateTimeInterface|null $date\n     * @param int                    $isDst\n     *\n     * @return string\n     */\n    public function toRegionName(DateTimeInterface $date = null, $isDst = 1)\n    {\n        $name = $this->getName();\n        $firstChar = substr($name, 0, 1);\n\n        if ($firstChar !== '+' && $firstChar !== '-') {\n            return $name;\n        }\n\n        return @timezone_name_from_abbr('', @$this->getOffset($date ?: Carbon::now($this)) ?: 0, $isDst);\n    }\n\n    /**\n     * Returns a new CarbonTimeZone object using the region string instead of offset string.\n     *\n     * @param DateTimeInterface|null $date\n     *\n     * @return CarbonTimeZone|false\n     */\n    public function toRegionTimeZone(DateTimeInterface $date = null)\n    {\n        $tz = $this->toRegionName($date);\n\n        if ($tz === false) {\n            if (Carbon::isStrictModeEnabled()) {\n                throw new InvalidArgumentException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.');\n            }\n\n            return false;\n        }\n\n        return new static($tz);\n    }\n\n    /**\n     * Cast to string (get timezone name).\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->getName();\n    }\n\n    /**\n     * Create a CarbonTimeZone from mixed input.\n     *\n     * @param DateTimeZone|string|int|null $object\n     *\n     * @return false|static\n     */\n    public static function create($object = null)\n    {\n        return static::instance($object);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Exceptions;\n\nuse Exception;\nuse InvalidArgumentException;\n\nclass InvalidDateException extends InvalidArgumentException\n{\n    /**\n     * The invalid field.\n     *\n     * @var string\n     */\n    private $field;\n\n    /**\n     * The invalid value.\n     *\n     * @var mixed\n     */\n    private $value;\n\n    /**\n     * Constructor.\n     *\n     * @param string          $field\n     * @param mixed           $value\n     * @param int             $code\n     * @param \\Exception|null $previous\n     */\n    public function __construct($field, $value, $code = 0, Exception $previous = null)\n    {\n        $this->field = $field;\n        $this->value = $value;\n        parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous);\n    }\n\n    /**\n     * Get the invalid field.\n     *\n     * @return string\n     */\n    public function getField()\n    {\n        return $this->field;\n    }\n\n    /**\n     * Get the invalid value.\n     *\n     * @return mixed\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Factory.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\n/**\n * A factory to generate Carbon instances with common settings.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @method Carbon                                             create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)                                           Create a new Carbon instance from a specific date and time.\n *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will\n *                                                                                                                                                                                               be used.\n *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default\n *                                                                                                                                                                                               values for $minute and $second will be their now() values.\n *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second\n *                                                                                                                                                                                               will be 0.\n * @method Carbon                                             createFromDate($year = null, $month = null, $day = null, $tz = null)                                                               Create a Carbon instance from just a date. The time portion is set to now.\n * @method Carbon|false                                       createFromFormat($format, $time, $tz = null)                                                                                       Create a Carbon instance from a specific format.\n * @method Carbon|false                                       createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)                                                Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).\n * @method Carbon|false                                       createFromLocaleFormat($format, $locale, $time, $tz = null)                                                                        Create a Carbon instance from a specific format and a string in a given language.\n * @method Carbon|false                                       createFromLocaleIsoFormat($format, $locale, $time, $tz = null)                                                                     Create a Carbon instance from a specific ISO format and a string in a given language.\n * @method Carbon                                             createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)                                                                    Create a Carbon instance from just a time. The date portion is set to today.\n * @method Carbon                                             createFromTimeString($time, $tz = null)                                                                                            Create a Carbon instance from a time string. The date portion is set to today.\n * @method Carbon                                             createFromTimestamp($timestamp, $tz = null)                                                                                        Create a Carbon instance from a timestamp.\n * @method Carbon                                             createFromTimestampMs($timestamp, $tz = null)                                                                                      Create a Carbon instance from a timestamp in milliseconds.\n * @method Carbon                                             createFromTimestampUTC($timestamp)                                                                                                 Create a Carbon instance from an UTC timestamp.\n * @method Carbon                                             createMidnightDate($year = null, $month = null, $day = null, $tz = null)                                                           Create a Carbon instance from just a date. The time portion is set to midnight.\n * @method Carbon|false                                       createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)                     Create a new safe Carbon instance from a specific date and time.\n *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will\n *                                                                                                                                                                                               be used.\n *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default\n *                                                                                                                                                                                               values for $minute and $second will be their now() values.\n *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second\n *                                                                                                                                                                                               will be 0.\n *                                                                                                                                                                                               If one of the set values is not valid, an \\InvalidArgumentException\n *                                                                                                                                                                                               will be thrown.\n * @method Carbon                                             disableHumanDiffOption($humanDiffOption)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method Carbon                                             enableHumanDiffOption($humanDiffOption)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method mixed                                              executeWithLocale($locale, $func)                                                                                                  Set the current locale to the given, execute the passed function, reset the locale to previous one,\n *                                                                                                                                                                                               then return the result of the closure (or null if the closure was void).\n * @method Carbon                                             fromSerialized($value)                                                                                                             Create an instance from a serialized string.\n * @method void                                               genericMacro($macro, $priority = 0)                                                                                                Register a custom macro.\n * @method array                                              getAvailableLocales()                                                                                                              Returns the list of internally available locales and already loaded custom locales.\n *                                                                                                                                                                                               (It will ignore custom translator dynamic loading.)\n * @method Language[]                                         getAvailableLocalesInfo()                                                                                                          Returns list of Language object for each available locale. This object allow you to get the ISO name, native\n *                                                                                                                                                                                               name, region and variant of the locale.\n * @method array                                              getDays()                                                                                                                          Get the days of the week\n * @method string|null                                        getFallbackLocale()                                                                                                                Get the fallback locale.\n * @method array                                              getFormatsToIsoReplacements()                                                                                                      List of replacements from date() format to isoFormat().\n * @method int                                                getHumanDiffOptions()                                                                                                              Return default humanDiff() options (merged flags as integer).\n * @method array                                              getIsoUnits()                                                                                                                      Returns list of locale units for ISO formatting.\n * @method Carbon                                             getLastErrors()                                                                                                                    {@inheritdoc}\n * @method string                                             getLocale()                                                                                                                        Get the current translator locale.\n * @method int                                                getMidDayAt()                                                                                                                      get midday/noon hour\n * @method Carbon                                             getTestNow()                                                                                                                       Get the Carbon instance (real or mock) to be returned when a \"now\"\n *                                                                                                                                                                                               instance is created.\n * @method string                                             getTranslationMessageWith($translator, string $key, string $locale = null, string $default = null)                                 Returns raw translation message for a given key.\n * @method \\Symfony\\Component\\Translation\\TranslatorInterface getTranslator()                                                                                                                    Get the default translator instance in use.\n * @method int                                                getWeekEndsAt()                                                                                                                    Get the last day of week\n * @method int                                                getWeekStartsAt()                                                                                                                  Get the first day of week\n * @method array                                              getWeekendDays()                                                                                                                   Get weekend days\n * @method bool                                               hasFormat($date, $format)                                                                                                          Checks if the (date)time string is in a given format.\n * @method bool                                               hasMacro($name)                                                                                                                    Checks if macro is registered.\n * @method bool                                               hasRelativeKeywords($time)                                                                                                         Determine if a time string will produce a relative date.\n * @method bool                                               hasTestNow()                                                                                                                       Determine if there is a valid test instance set. A valid test instance\n *                                                                                                                                                                                               is anything that is not null.\n * @method Carbon                                             instance($date)                                                                                                                    Create a Carbon instance from a DateTime one.\n * @method bool                                               isImmutable()                                                                                                                      Returns true if the current class/instance is immutable.\n * @method bool                                               isModifiableUnit($unit)                                                                                                            Returns true if a property can be changed via setter.\n * @method Carbon                                             isMutable()\n * @method bool                                               isStrictModeEnabled()                                                                                                              Returns true if the strict mode is globally in use, false else.\n *                                                                                                                                                                                               (It can be overridden in specific instances.)\n * @method bool                                               localeHasDiffOneDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).\n *                                                                                                                                                                                               Support is considered enabled if the 3 words are translated in the given locale.\n * @method bool                                               localeHasDiffSyntax($locale)                                                                                                       Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).\n *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.\n * @method bool                                               localeHasDiffTwoDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).\n *                                                                                                                                                                                               Support is considered enabled if the 2 words are translated in the given locale.\n * @method bool                                               localeHasPeriodSyntax($locale)                                                                                                     Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).\n *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.\n * @method bool                                               localeHasShortUnits($locale)                                                                                                       Returns true if the given locale is internally supported and has short-units support.\n *                                                                                                                                                                                               Support is considered enabled if either year, day or hour has a short variant translated.\n * @method void                                               macro($name, $macro)                                                                                                               Register a custom macro.\n * @method Carbon|null                                        make($var)                                                                                                                         Make a Carbon instance from given variable if possible.\n *                                                                                                                                                                                               Always return a new instance. Parse only strings and only these likely to be dates (skip intervals\n *                                                                                                                                                                                               and recurrences). Throw an exception for invalid format, but otherwise return null.\n * @method Carbon                                             maxValue()                                                                                                                         Create a Carbon instance for the greatest supported date.\n * @method Carbon                                             minValue()                                                                                                                         Create a Carbon instance for the lowest supported date.\n * @method void                                               mixin($mixin)                                                                                                                      Mix another object into the class.\n * @method Carbon                                             now($tz = null)                                                                                                                    Get a Carbon instance for the current date and time.\n * @method Carbon                                             parse($time = null, $tz = null)                                                                                                    Create a carbon instance from a string.\n *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax\n *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather\n *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().\n * @method Carbon                                             parseFromLocale($time, $locale, $tz = null)                                                                                        Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).\n * @method string                                             pluralUnit(string $unit)                                                                                                           Returns standardized plural of a given singular/plural unit name (in English).\n * @method Carbon|false                                       rawCreateFromFormat($format, $time, $tz = null)                                                                                    Create a Carbon instance from a specific format.\n * @method Carbon                                             rawParse($time = null, $tz = null)                                                                                                 Create a carbon instance from a string.\n *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax\n *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather\n *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().\n * @method Carbon                                             resetMacros()                                                                                                                      Remove all macros and generic macros.\n * @method void                                               resetMonthsOverflow()                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method void                                               resetToStringFormat()                                                                                                              Reset the format used to the default when type juggling a Carbon instance to a string\n * @method void                                               resetYearsOverflow()                                                                                                               @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method void                                               serializeUsing($callback)                                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather transform Carbon object before the serialization.\n *                                                                                                                                                                                               JSON serialize all Carbon instances using the given callback.\n * @method Carbon                                             setFallbackLocale($locale)                                                                                                         Set the fallback locale.\n * @method Carbon                                             setHumanDiffOptions($humanDiffOptions)                                                                                             @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method bool                                               setLocale($locale)                                                                                                                 Set the current translator locale and indicate if the source locale file exists.\n *                                                                                                                                                                                               Pass 'auto' as locale to use closest language from the current LC_TIME locale.\n * @method void                                               setMidDayAt($hour)                                                                                                                 @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather consider mid-day is always 12pm, then if you need to test if it's an other\n *                                                                                                                                                                                                           hour, test it explicitly:\n *                                                                                                                                                                                                               $date->format('G') == 13\n *                                                                                                                                                                                                           or to set explicitly to a given hour:\n *                                                                                                                                                                                                               $date->setTime(13, 0, 0, 0)\n *                                                                                                                                                                                               Set midday/noon hour\n * @method Carbon                                             setTestNow($testNow = null)                                                                                                        Set a Carbon instance (real or mock) to be returned when a \"now\"\n *                                                                                                                                                                                               instance is created.  The provided instance will be returned\n *                                                                                                                                                                                               specifically under the following conditions:\n *                                                                                                                                                                                                 - A call to the static now() method, ex. Carbon::now()\n *                                                                                                                                                                                                 - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)\n *                                                                                                                                                                                                 - When the string \"now\" is passed to the constructor or parse(), ex. new Carbon('now')\n *                                                                                                                                                                                                 - When a string containing the desired time is passed to Carbon::parse().\n *                                                                                                                                                                                               Note the timezone parameter was left out of the examples above and\n *                                                                                                                                                                                               has no affect as the mock value will be returned regardless of its value.\n *                                                                                                                                                                                               To clear the test instance call this method using the default\n *                                                                                                                                                                                               parameter of null.\n *                                                                                                                                                                                               /!\\ Use this method for unit tests only.\n * @method void                                               setToStringFormat($format)                                                                                                         @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and\n *                                                                                                                                                                                                           use other method or custom format passed to format() method if you need to dump an other string\n *                                                                                                                                                                                                           format.\n *                                                                                                                                                                                               Set the default format used when type juggling a Carbon instance to a string\n * @method void                                               setTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator)                                                      Set the default translator instance to use.\n * @method Carbon                                             setUtf8($utf8)                                                                                                                     @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use UTF-8 language packages on every machine.\n *                                                                                                                                                                                               Set if UTF8 will be used for localized date/time.\n * @method void                                               setWeekEndsAt($day)                                                                                                                @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek\n *                                                                                                                                                                                                           or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the\n *                                                                                                                                                                                                           start of week according to current locale selected and implicitly the end of week.\n *                                                                                                                                                                                               Set the last day of week\n * @method void                                               setWeekStartsAt($day)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the\n *                                                                                                                                                                                                           'first_day_of_week' locale setting to change the start of week according to current locale\n *                                                                                                                                                                                                           selected and implicitly the end of week.\n *                                                                                                                                                                                               Set the first day of week\n * @method void                                               setWeekendDays($days)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather consider week-end is always saturday and sunday, and if you have some custom\n *                                                                                                                                                                                                           week-end days to handle, give to those days an other name and create a macro for them:\n *                                                                                                                                                                                                           ```\n *                                                                                                                                                                                                           Carbon::macro('isDayOff', function ($date) {\n *                                                                                                                                                                                                               return $date->isSunday() || $date->isMonday();\n *                                                                                                                                                                                                           });\n *                                                                                                                                                                                                           Carbon::macro('isNotDayOff', function ($date) {\n *                                                                                                                                                                                                               return !$date->isDayOff();\n *                                                                                                                                                                                                           });\n *                                                                                                                                                                                                           if ($someDate->isDayOff()) ...\n *                                                                                                                                                                                                           if ($someDate->isNotDayOff()) ...\n *                                                                                                                                                                                                           // Add 5 not-off days\n *                                                                                                                                                                                                           $count = 5;\n *                                                                                                                                                                                                           while ($someDate->isDayOff() || ($count-- > 0)) {\n *                                                                                                                                                                                                               $someDate->addDay();\n *                                                                                                                                                                                                           }\n *                                                                                                                                                                                                           ```\n *                                                                                                                                                                                               Set weekend days\n * @method bool                                               shouldOverflowMonths()                                                                                                             Get the month overflow global behavior (can be overridden in specific instances).\n * @method bool                                               shouldOverflowYears()                                                                                                              Get the month overflow global behavior (can be overridden in specific instances).\n * @method string                                             singularUnit(string $unit)                                                                                                         Returns standardized singular of a given singular/plural unit name (in English).\n * @method Carbon                                             today($tz = null)                                                                                                                  Create a Carbon instance for today.\n * @method Carbon                                             tomorrow($tz = null)                                                                                                               Create a Carbon instance for tomorrow.\n * @method string                                             translateTimeString($timeString, $from = null, $to = null, $mode = 15)                                                             Translate a time string from a locale to an other.\n * @method string                                             translateWith(\\Symfony\\Component\\Translation\\TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available.\n * @method void                                               useMonthsOverflow($monthsOverflow = true)                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method Carbon                                             useStrictMode($strictModeEnabled = true)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method void                                               useYearsOverflow($yearsOverflow = true)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method Carbon                                             yesterday($tz = null)                                                                                                              Create a Carbon instance for yesterday.\n *\n * </autodoc>\n */\nclass Factory\n{\n    protected $className = Carbon::class;\n\n    protected $settings = [];\n\n    public function __construct(array $settings = [], string $className = null)\n    {\n        if ($className) {\n            $this->className = $className;\n        }\n        $this->settings = $settings;\n    }\n\n    public function getClassName()\n    {\n        return $this->className;\n    }\n\n    public function setClassName(string $className)\n    {\n        $this->className = $className;\n\n        return $this;\n    }\n\n    public function className(string $className = null)\n    {\n        return $className === null ? $this->getClassName() : $this->setClassName($className);\n    }\n\n    public function getSettings()\n    {\n        return $this->settings;\n    }\n\n    public function setSettings(array $settings)\n    {\n        $this->settings = $settings;\n\n        return $this;\n    }\n\n    public function settings(array $settings = null)\n    {\n        return $settings === null ? $this->getSettings() : $this->setSettings($settings);\n    }\n\n    public function mergeSettings(array $settings)\n    {\n        $this->settings = array_merge($this->settings, $settings);\n\n        return $this;\n    }\n\n    public function __call($name, $arguments)\n    {\n        $result = $this->className::$name(...$arguments);\n\n        return $result instanceof CarbonInterface ? $result->settings($this->settings) : $result;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\n/**\n * A factory to generate CarbonImmutable instances with common settings.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @method CarbonImmutable                                    create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)                                           Create a new Carbon instance from a specific date and time.\n *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will\n *                                                                                                                                                                                               be used.\n *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default\n *                                                                                                                                                                                               values for $minute and $second will be their now() values.\n *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second\n *                                                                                                                                                                                               will be 0.\n * @method CarbonImmutable                                    createFromDate($year = null, $month = null, $day = null, $tz = null)                                                               Create a Carbon instance from just a date. The time portion is set to now.\n * @method CarbonImmutable|false                              createFromFormat($format, $time, $tz = null)                                                                                       Create a Carbon instance from a specific format.\n * @method CarbonImmutable|false                              createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)                                                Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).\n * @method CarbonImmutable|false                              createFromLocaleFormat($format, $locale, $time, $tz = null)                                                                        Create a Carbon instance from a specific format and a string in a given language.\n * @method CarbonImmutable|false                              createFromLocaleIsoFormat($format, $locale, $time, $tz = null)                                                                     Create a Carbon instance from a specific ISO format and a string in a given language.\n * @method CarbonImmutable                                    createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)                                                                    Create a Carbon instance from just a time. The date portion is set to today.\n * @method CarbonImmutable                                    createFromTimeString($time, $tz = null)                                                                                            Create a Carbon instance from a time string. The date portion is set to today.\n * @method CarbonImmutable                                    createFromTimestamp($timestamp, $tz = null)                                                                                        Create a Carbon instance from a timestamp.\n * @method CarbonImmutable                                    createFromTimestampMs($timestamp, $tz = null)                                                                                      Create a Carbon instance from a timestamp in milliseconds.\n * @method CarbonImmutable                                    createFromTimestampUTC($timestamp)                                                                                                 Create a Carbon instance from an UTC timestamp.\n * @method CarbonImmutable                                    createMidnightDate($year = null, $month = null, $day = null, $tz = null)                                                           Create a Carbon instance from just a date. The time portion is set to midnight.\n * @method CarbonImmutable|false                              createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)                     Create a new safe Carbon instance from a specific date and time.\n *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will\n *                                                                                                                                                                                               be used.\n *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default\n *                                                                                                                                                                                               values for $minute and $second will be their now() values.\n *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second\n *                                                                                                                                                                                               will be 0.\n *                                                                                                                                                                                               If one of the set values is not valid, an \\InvalidArgumentException\n *                                                                                                                                                                                               will be thrown.\n * @method CarbonImmutable                                    disableHumanDiffOption($humanDiffOption)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method CarbonImmutable                                    enableHumanDiffOption($humanDiffOption)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method mixed                                              executeWithLocale($locale, $func)                                                                                                  Set the current locale to the given, execute the passed function, reset the locale to previous one,\n *                                                                                                                                                                                               then return the result of the closure (or null if the closure was void).\n * @method CarbonImmutable                                    fromSerialized($value)                                                                                                             Create an instance from a serialized string.\n * @method void                                               genericMacro($macro, $priority = 0)                                                                                                Register a custom macro.\n * @method array                                              getAvailableLocales()                                                                                                              Returns the list of internally available locales and already loaded custom locales.\n *                                                                                                                                                                                               (It will ignore custom translator dynamic loading.)\n * @method Language[]                                         getAvailableLocalesInfo()                                                                                                          Returns list of Language object for each available locale. This object allow you to get the ISO name, native\n *                                                                                                                                                                                               name, region and variant of the locale.\n * @method array                                              getDays()                                                                                                                          Get the days of the week\n * @method string|null                                        getFallbackLocale()                                                                                                                Get the fallback locale.\n * @method array                                              getFormatsToIsoReplacements()                                                                                                      List of replacements from date() format to isoFormat().\n * @method int                                                getHumanDiffOptions()                                                                                                              Return default humanDiff() options (merged flags as integer).\n * @method array                                              getIsoUnits()                                                                                                                      Returns list of locale units for ISO formatting.\n * @method CarbonImmutable                                    getLastErrors()                                                                                                                    {@inheritdoc}\n * @method string                                             getLocale()                                                                                                                        Get the current translator locale.\n * @method int                                                getMidDayAt()                                                                                                                      get midday/noon hour\n * @method CarbonImmutable                                    getTestNow()                                                                                                                       Get the Carbon instance (real or mock) to be returned when a \"now\"\n *                                                                                                                                                                                               instance is created.\n * @method string                                             getTranslationMessageWith($translator, string $key, string $locale = null, string $default = null)                                 Returns raw translation message for a given key.\n * @method \\Symfony\\Component\\Translation\\TranslatorInterface getTranslator()                                                                                                                    Get the default translator instance in use.\n * @method int                                                getWeekEndsAt()                                                                                                                    Get the last day of week\n * @method int                                                getWeekStartsAt()                                                                                                                  Get the first day of week\n * @method array                                              getWeekendDays()                                                                                                                   Get weekend days\n * @method bool                                               hasFormat($date, $format)                                                                                                          Checks if the (date)time string is in a given format.\n * @method bool                                               hasMacro($name)                                                                                                                    Checks if macro is registered.\n * @method bool                                               hasRelativeKeywords($time)                                                                                                         Determine if a time string will produce a relative date.\n * @method bool                                               hasTestNow()                                                                                                                       Determine if there is a valid test instance set. A valid test instance\n *                                                                                                                                                                                               is anything that is not null.\n * @method CarbonImmutable                                    instance($date)                                                                                                                    Create a Carbon instance from a DateTime one.\n * @method bool                                               isImmutable()                                                                                                                      Returns true if the current class/instance is immutable.\n * @method bool                                               isModifiableUnit($unit)                                                                                                            Returns true if a property can be changed via setter.\n * @method CarbonImmutable                                    isMutable()\n * @method bool                                               isStrictModeEnabled()                                                                                                              Returns true if the strict mode is globally in use, false else.\n *                                                                                                                                                                                               (It can be overridden in specific instances.)\n * @method bool                                               localeHasDiffOneDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).\n *                                                                                                                                                                                               Support is considered enabled if the 3 words are translated in the given locale.\n * @method bool                                               localeHasDiffSyntax($locale)                                                                                                       Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).\n *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.\n * @method bool                                               localeHasDiffTwoDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).\n *                                                                                                                                                                                               Support is considered enabled if the 2 words are translated in the given locale.\n * @method bool                                               localeHasPeriodSyntax($locale)                                                                                                     Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).\n *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.\n * @method bool                                               localeHasShortUnits($locale)                                                                                                       Returns true if the given locale is internally supported and has short-units support.\n *                                                                                                                                                                                               Support is considered enabled if either year, day or hour has a short variant translated.\n * @method void                                               macro($name, $macro)                                                                                                               Register a custom macro.\n * @method CarbonImmutable|null                               make($var)                                                                                                                         Make a Carbon instance from given variable if possible.\n *                                                                                                                                                                                               Always return a new instance. Parse only strings and only these likely to be dates (skip intervals\n *                                                                                                                                                                                               and recurrences). Throw an exception for invalid format, but otherwise return null.\n * @method CarbonImmutable                                    maxValue()                                                                                                                         Create a Carbon instance for the greatest supported date.\n * @method CarbonImmutable                                    minValue()                                                                                                                         Create a Carbon instance for the lowest supported date.\n * @method void                                               mixin($mixin)                                                                                                                      Mix another object into the class.\n * @method CarbonImmutable                                    now($tz = null)                                                                                                                    Get a Carbon instance for the current date and time.\n * @method CarbonImmutable                                    parse($time = null, $tz = null)                                                                                                    Create a carbon instance from a string.\n *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax\n *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather\n *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().\n * @method CarbonImmutable                                    parseFromLocale($time, $locale, $tz = null)                                                                                        Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).\n * @method string                                             pluralUnit(string $unit)                                                                                                           Returns standardized plural of a given singular/plural unit name (in English).\n * @method CarbonImmutable|false                              rawCreateFromFormat($format, $time, $tz = null)                                                                                    Create a Carbon instance from a specific format.\n * @method CarbonImmutable                                    rawParse($time = null, $tz = null)                                                                                                 Create a carbon instance from a string.\n *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax\n *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather\n *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().\n * @method CarbonImmutable                                    resetMacros()                                                                                                                      Remove all macros and generic macros.\n * @method void                                               resetMonthsOverflow()                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method void                                               resetToStringFormat()                                                                                                              Reset the format used to the default when type juggling a Carbon instance to a string\n * @method void                                               resetYearsOverflow()                                                                                                               @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method void                                               serializeUsing($callback)                                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather transform Carbon object before the serialization.\n *                                                                                                                                                                                               JSON serialize all Carbon instances using the given callback.\n * @method CarbonImmutable                                    setFallbackLocale($locale)                                                                                                         Set the fallback locale.\n * @method CarbonImmutable                                    setHumanDiffOptions($humanDiffOptions)                                                                                             @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method bool                                               setLocale($locale)                                                                                                                 Set the current translator locale and indicate if the source locale file exists.\n *                                                                                                                                                                                               Pass 'auto' as locale to use closest language from the current LC_TIME locale.\n * @method void                                               setMidDayAt($hour)                                                                                                                 @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather consider mid-day is always 12pm, then if you need to test if it's an other\n *                                                                                                                                                                                                           hour, test it explicitly:\n *                                                                                                                                                                                                               $date->format('G') == 13\n *                                                                                                                                                                                                           or to set explicitly to a given hour:\n *                                                                                                                                                                                                               $date->setTime(13, 0, 0, 0)\n *                                                                                                                                                                                               Set midday/noon hour\n * @method CarbonImmutable                                    setTestNow($testNow = null)                                                                                                        Set a Carbon instance (real or mock) to be returned when a \"now\"\n *                                                                                                                                                                                               instance is created.  The provided instance will be returned\n *                                                                                                                                                                                               specifically under the following conditions:\n *                                                                                                                                                                                                 - A call to the static now() method, ex. Carbon::now()\n *                                                                                                                                                                                                 - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)\n *                                                                                                                                                                                                 - When the string \"now\" is passed to the constructor or parse(), ex. new Carbon('now')\n *                                                                                                                                                                                                 - When a string containing the desired time is passed to Carbon::parse().\n *                                                                                                                                                                                               Note the timezone parameter was left out of the examples above and\n *                                                                                                                                                                                               has no affect as the mock value will be returned regardless of its value.\n *                                                                                                                                                                                               To clear the test instance call this method using the default\n *                                                                                                                                                                                               parameter of null.\n *                                                                                                                                                                                               /!\\ Use this method for unit tests only.\n * @method void                                               setToStringFormat($format)                                                                                                         @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and\n *                                                                                                                                                                                                           use other method or custom format passed to format() method if you need to dump an other string\n *                                                                                                                                                                                                           format.\n *                                                                                                                                                                                               Set the default format used when type juggling a Carbon instance to a string\n * @method void                                               setTranslator(\\Symfony\\Component\\Translation\\TranslatorInterface $translator)                                                      Set the default translator instance to use.\n * @method CarbonImmutable                                    setUtf8($utf8)                                                                                                                     @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use UTF-8 language packages on every machine.\n *                                                                                                                                                                                               Set if UTF8 will be used for localized date/time.\n * @method void                                               setWeekEndsAt($day)                                                                                                                @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek\n *                                                                                                                                                                                                           or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the\n *                                                                                                                                                                                                           start of week according to current locale selected and implicitly the end of week.\n *                                                                                                                                                                                               Set the last day of week\n * @method void                                               setWeekStartsAt($day)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the\n *                                                                                                                                                                                                           'first_day_of_week' locale setting to change the start of week according to current locale\n *                                                                                                                                                                                                           selected and implicitly the end of week.\n *                                                                                                                                                                                               Set the first day of week\n * @method void                                               setWeekendDays($days)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather consider week-end is always saturday and sunday, and if you have some custom\n *                                                                                                                                                                                                           week-end days to handle, give to those days an other name and create a macro for them:\n *                                                                                                                                                                                                           ```\n *                                                                                                                                                                                                           Carbon::macro('isDayOff', function ($date) {\n *                                                                                                                                                                                                               return $date->isSunday() || $date->isMonday();\n *                                                                                                                                                                                                           });\n *                                                                                                                                                                                                           Carbon::macro('isNotDayOff', function ($date) {\n *                                                                                                                                                                                                               return !$date->isDayOff();\n *                                                                                                                                                                                                           });\n *                                                                                                                                                                                                           if ($someDate->isDayOff()) ...\n *                                                                                                                                                                                                           if ($someDate->isNotDayOff()) ...\n *                                                                                                                                                                                                           // Add 5 not-off days\n *                                                                                                                                                                                                           $count = 5;\n *                                                                                                                                                                                                           while ($someDate->isDayOff() || ($count-- > 0)) {\n *                                                                                                                                                                                                               $someDate->addDay();\n *                                                                                                                                                                                                           }\n *                                                                                                                                                                                                           ```\n *                                                                                                                                                                                               Set weekend days\n * @method bool                                               shouldOverflowMonths()                                                                                                             Get the month overflow global behavior (can be overridden in specific instances).\n * @method bool                                               shouldOverflowYears()                                                                                                              Get the month overflow global behavior (can be overridden in specific instances).\n * @method string                                             singularUnit(string $unit)                                                                                                         Returns standardized singular of a given singular/plural unit name (in English).\n * @method CarbonImmutable                                    today($tz = null)                                                                                                                  Create a Carbon instance for today.\n * @method CarbonImmutable                                    tomorrow($tz = null)                                                                                                               Create a Carbon instance for tomorrow.\n * @method string                                             translateTimeString($timeString, $from = null, $to = null, $mode = 15)                                                             Translate a time string from a locale to an other.\n * @method string                                             translateWith(\\Symfony\\Component\\Translation\\TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available.\n * @method void                                               useMonthsOverflow($monthsOverflow = true)                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method CarbonImmutable                                    useStrictMode($strictModeEnabled = true)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n * @method void                                               useYearsOverflow($yearsOverflow = true)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n *                                                                                                                                                                                                           You should rather use the ->settings() method.\n *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n * @method CarbonImmutable                                    yesterday($tz = null)                                                                                                              Create a Carbon instance for yesterday.\n *\n * </autodoc>\n */\nclass FactoryImmutable extends Factory\n{\n    protected $className = CarbonImmutable::class;\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/aa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/aa_DJ.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],\n    'months_short' => ['qun', 'nah', 'cig', 'agd', 'cax', 'qas', 'qad', 'leq', 'way', 'dit', 'xim', 'kax'],\n    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],\n    'weekdays_short' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'],\n    'weekdays_min' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['saaku', 'carra'],\n\n    'year' => ':count gaqambo', // less reliable\n    'y' => ':count gaqambo', // less reliable\n    'a_year' => ':count gaqambo', // less reliable\n\n    'month' => ':count àlsa',\n    'm' => ':count àlsa',\n    'a_month' => ':count àlsa',\n\n    'day' => ':count saaku', // less reliable\n    'd' => ':count saaku', // less reliable\n    'a_day' => ':count saaku', // less reliable\n\n    'hour' => ':count ayti', // less reliable\n    'h' => ':count ayti', // less reliable\n    'a_hour' => ':count ayti', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],\n    'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],\n    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],\n    'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],\n    'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['saaku', 'carra'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],\n    'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],\n    'weekdays' => ['Naba Sambat', 'Sani', 'Salus', 'Rabuq', 'Camus', 'Jumqata', 'Qunxa Sambat'],\n    'weekdays_short' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'],\n    'weekdays_min' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['saaku', 'carra'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],\n    'months_short' => ['Qun', 'Kud', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],\n    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],\n    'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],\n    'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['saaku', 'carra'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/af.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - JD Isaacks\n * - Pierre du Plessis\n */\nreturn [\n    'year' => ':count jaar|:count jare',\n    'a_year' => '\\'n jaar|:count jare',\n    'y' => ':count j.',\n    'month' => ':count maand|:count maande',\n    'a_month' => '\\'n maand|:count maande',\n    'm' => ':count maa.',\n    'week' => ':count week|:count weke',\n    'a_week' => '\\'n week|:count weke',\n    'w' => ':count w.',\n    'day' => ':count dag|:count dae',\n    'a_day' => '\\'n dag|:count dae',\n    'd' => ':count d.',\n    'hour' => ':count uur|:count ure',\n    'a_hour' => '\\'n uur|:count ure',\n    'h' => ':count u.',\n    'minute' => ':count minuut|:count minute',\n    'a_minute' => '\\'n minuut|:count minute',\n    'min' => ':count min.',\n    'second' => ':count sekond|:count sekondes',\n    'a_second' => '\\'n paar sekondes|:count sekondes',\n    's' => ':count s.',\n    'ago' => ':time gelede',\n    'from_now' => 'oor :time',\n    'after' => ':time na',\n    'before' => ':time voor',\n    'diff_yesterday' => 'Gister',\n    'diff_tomorrow' => 'Môre',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Vandag om] LT',\n        'nextDay' => '[Môre om] LT',\n        'nextWeek' => 'dddd [om] LT',\n        'lastDay' => '[Gister om] LT',\n        'lastWeek' => '[Laas] dddd [om] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');\n    },\n    'meridiem' => ['VM', 'NM'],\n    'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'],\n    'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],\n    'weekdays_short' => ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],\n    'weekdays_min' => ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' en '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/af.php', [\n    'meridiem' => ['v', 'n'],\n    'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],\n    'weekdays_short' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],\n    'weekdays_min' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],\n    'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'],\n    'months_short' => ['Jan.', 'Feb.', 'Mrt.', 'Apr.', 'Mei', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Des.'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'DD MMM YYYY',\n        'LLL' => 'DD MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, DD MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/af.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/agq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['a.g', 'a.k'],\n    'weekdays' => ['tsuʔntsɨ', 'tsuʔukpà', 'tsuʔughɔe', 'tsuʔutɔ̀mlò', 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'],\n    'weekdays_short' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'],\n    'weekdays_min' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'],\n    'months' => ['ndzɔ̀ŋɔ̀nùm', 'ndzɔ̀ŋɔ̀kƗ̀zùʔ', 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', 'ndzɔ̀ŋèfwòo'],\n    'months_short' => ['nùm', 'kɨz', 'tɨd', 'taa', 'see', 'nzu', 'dum', 'fɔe', 'dzu', 'lɔm', 'kaa', 'fwo'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/agr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/agr_PE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - somosazucar.org    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Petsatin', 'Kupitin', 'Uyaitin', 'Tayutin', 'Kegketin', 'Tegmatin', 'Kuntutin', 'Yagkujutin', 'Daiktatin', 'Ipamtatin', 'Shinutin', 'Sakamtin'],\n    'months_short' => ['Pet', 'Kup', 'Uya', 'Tay', 'Keg', 'Teg', 'Kun', 'Yag', 'Dait', 'Ipam', 'Shin', 'Sak'],\n    'weekdays' => ['Tuntuamtin', 'Achutin', 'Kugkuktin', 'Saketin', 'Shimpitin', 'Imaptin', 'Bataetin'],\n    'weekdays_short' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'],\n    'weekdays_min' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 7,\n    'meridiem' => ['VM', 'NM'],\n\n    'year' => ':count yaya', // less reliable\n    'y' => ':count yaya', // less reliable\n    'a_year' => ':count yaya', // less reliable\n\n    'month' => ':count nantu', // less reliable\n    'm' => ':count nantu', // less reliable\n    'a_month' => ':count nantu', // less reliable\n\n    'day' => ':count nayaim', // less reliable\n    'd' => ':count nayaim', // less reliable\n    'a_day' => ':count nayaim', // less reliable\n\n    'hour' => ':count kuwiš', // less reliable\n    'h' => ':count kuwiš', // less reliable\n    'a_hour' => ':count kuwiš', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ak.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ak_GH.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY/MM/DD',\n    ],\n    'months' => ['Sanda-Ɔpɛpɔn', 'Kwakwar-Ɔgyefuo', 'Ebɔw-Ɔbenem', 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', 'Obirade-Ayɛwohomumu', 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', 'Ɔberɛfɛw-Obubuo', 'Mumu-Ɔpɛnimba'],\n    'months_short' => ['S-Ɔ', 'K-Ɔ', 'E-Ɔ', 'E-O', 'E-K', 'O-A', 'A-K', 'D-Ɔ', 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'],\n    'weekdays' => ['Kwesida', 'Dwowda', 'Benada', 'Wukuda', 'Yawda', 'Fida', 'Memeneda'],\n    'weekdays_short' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'],\n    'weekdays_min' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['AN', 'EW'],\n\n    'year' => ':count afe',\n    'y' => ':count afe',\n    'a_year' => ':count afe',\n\n    'month' => ':count bosume',\n    'm' => ':count bosume',\n    'a_month' => ':count bosume',\n\n    'day' => ':count ɛda',\n    'd' => ':count ɛda',\n    'a_day' => ':count ɛda',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/am.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/am_ET.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕሪል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክቶበር', 'ኖቬምበር', 'ዲሴምበር'],\n    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],\n    'weekdays' => ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],\n    'weekdays_short' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],\n    'weekdays_min' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ጡዋት', 'ከሰዓት'],\n\n    'year' => ':count አመት',\n    'y' => ':count አመት',\n    'a_year' => ':count አመት',\n\n    'month' => ':count ወር',\n    'm' => ':count ወር',\n    'a_month' => ':count ወር',\n\n    'week' => ':count ሳምንት',\n    'w' => ':count ሳምንት',\n    'a_week' => ':count ሳምንት',\n\n    'day' => ':count ቀን',\n    'd' => ':count ቀን',\n    'a_day' => ':count ቀን',\n\n    'hour' => ':count ሰዓት',\n    'h' => ':count ሰዓት',\n    'a_hour' => ':count ሰዓት',\n\n    'minute' => ':count ደቂቃ',\n    'min' => ':count ደቂቃ',\n    'a_minute' => ':count ደቂቃ',\n\n    'second' => ':count ሴኮንድ',\n    's' => ':count ሴኮንድ',\n    'a_second' => ':count ሴኮንድ',\n\n    'ago' => 'ከ:time በፊት',\n    'from_now' => 'በ:time ውስጥ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/an.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/an_ES.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Softaragones Jordi Mallach Pérez, Juan Pablo Martínez bug-glibc-locales@gnu.org, softaragones@softaragones.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['chinero', 'febrero', 'marzo', 'abril', 'mayo', 'chunyo', 'chuliol', 'agosto', 'setiembre', 'octubre', 'noviembre', 'aviento'],\n    'months_short' => ['chi', 'feb', 'mar', 'abr', 'may', 'chn', 'chl', 'ago', 'set', 'oct', 'nov', 'avi'],\n    'weekdays' => ['domingo', 'luns', 'martes', 'mierques', 'chueves', 'viernes', 'sabado'],\n    'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'],\n    'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count año',\n    'y' => ':count año',\n    'a_year' => ':count año',\n\n    'month' => ':count mes',\n    'm' => ':count mes',\n    'a_month' => ':count mes',\n\n    'week' => ':count semana',\n    'w' => ':count semana',\n    'a_week' => ':count semana',\n\n    'day' => ':count día',\n    'd' => ':count día',\n    'a_day' => ':count día',\n\n    'hour' => ':count reloch', // less reliable\n    'h' => ':count reloch', // less reliable\n    'a_hour' => ':count reloch', // less reliable\n\n    'minute' => ':count minuto',\n    'min' => ':count minuto',\n    'a_minute' => ':count minuto',\n\n    'second' => ':count segundo',\n    's' => ':count segundo',\n    'a_second' => ':count segundo',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/anp.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/anp_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bhashaghar@googlegroups.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर\"'],\n    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'],\n    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Atef Ben Ali (atefBB)\n * - Ibrahim AshShohail\n * - MLTDev\n * - Yazan Alnugnugh (yazan-alnugnugh)\n */\n$months = [\n    'يناير',\n    'فبراير',\n    'مارس',\n    'أبريل',\n    'مايو',\n    'يونيو',\n    'يوليو',\n    'أغسطس',\n    'سبتمبر',\n    'أكتوبر',\n    'نوفمبر',\n    'ديسمبر',\n];\n\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'a_second' => implode('|', ['{1}'.'بضع ثواني', 'ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => ':time من الآن',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم عند الساعة] LT',\n        'nextDay' => '[غدًا عند الساعة] LT',\n        'nextWeek' => 'dddd [عند الساعة] LT',\n        'lastDay' => '[أمس عند الساعة] LT',\n        'lastWeek' => 'dddd [عند الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'],\n    'months' => $months,\n    'months_short' => $months,\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت '],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Noureddine LOUAHEDJ\n * - JD Isaacks\n * - Atef Ben Ali (atefBB)\n */\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => 'في :time',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم على الساعة] LT',\n        'nextDay' => '[غدا على الساعة] LT',\n        'nextWeek' => 'dddd [على الساعة] LT',\n        'lastDay' => '[أمس على الساعة] LT',\n        'lastWeek' => 'dddd [على الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'months' => ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['احد', 'اثنين', 'ثلاثاء', 'اربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['أح', 'إث', 'ثلا', 'أر', 'خم', 'جم', 'سب'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 4,\n    'list' => ['، ', ' و '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Nusret Parlak\n * - JD Isaacks\n * - Atef Ben Ali (atefBB)\n */\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => 'في :time',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم على الساعة] LT',\n        'nextDay' => '[غدا على الساعة] LT',\n        'nextWeek' => 'dddd [على الساعة] LT',\n        'lastDay' => '[أمس على الساعة] LT',\n        'lastWeek' => 'dddd [على الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'ماي', 'يونيو', 'يوليوز', 'غشت', 'شتنبر', 'أكتوبر', 'نونبر', 'دجنبر'],\n    'months_short' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'ماي', 'يونيو', 'يوليوز', 'غشت', 'شتنبر', 'أكتوبر', 'نونبر', 'دجنبر'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['احد', 'اثنين', 'ثلاثاء', 'اربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Atef Ben Ali (atefBB)\n * - Ibrahim AshShohail\n * - MLTDev\n */\n$months = [\n    'يناير',\n    'فبراير',\n    'مارس',\n    'أبريل',\n    'مايو',\n    'يونيو',\n    'يوليو',\n    'أغسطس',\n    'سبتمبر',\n    'أكتوبر',\n    'نوفمبر',\n    'ديسمبر',\n];\n\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => ':time من الآن',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم عند الساعة] LT',\n        'nextDay' => '[غدًا عند الساعة] LT',\n        'nextWeek' => 'dddd [عند الساعة] LT',\n        'lastDay' => '[أمس عند الساعة] LT',\n        'lastWeek' => 'dddd [عند الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'months' => $months,\n    'months_short' => $months,\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n * - Atef Ben Ali (atefBB)\n */\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => 'في :time',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم على الساعة] LT',\n        'nextDay' => '[غدا على الساعة] LT',\n        'nextWeek' => 'dddd [على الساعة] LT',\n        'lastDay' => '[أمس على الساعة] LT',\n        'lastWeek' => 'dddd [على الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'ماي', 'يونيو', 'يوليوز', 'غشت', 'شتنبر', 'أكتوبر', 'نونبر', 'دجنبر'],\n    'months_short' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'ماي', 'يونيو', 'يوليوز', 'غشت', 'شتنبر', 'أكتوبر', 'نونبر', 'دجنبر'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['احد', 'اثنين', 'ثلاثاء', 'اربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n * - Atef Ben Ali (atefBB)\n */\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => 'في :time',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم على الساعة] LT',\n        'nextDay' => '[غدا على الساعة] LT',\n        'nextWeek' => 'dddd [على الساعة] LT',\n        'lastDay' => '[أمس على الساعة] LT',\n        'lastWeek' => 'dddd [على الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'list' => ['، ', ' و '],\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Abdellah Chadidi\n * - Atef Ben Ali (atefBB)\n */\n// Same for long and short\n$months = [\n    // @TODO add shakl to months\n    'يناير',\n    'فبراير',\n    'مارس',\n    'أبريل',\n    'مايو',\n    'يونيو',\n    'يوليو',\n    'أغسطس',\n    'سبتمبر',\n    'أكتوبر',\n    'نوفمبر',\n    'ديسمبر',\n];\n\nreturn [\n    'year' => implode('|', ['سَنَة', 'سَنَة', 'سَنَتَيْن', 'سَنَوَات'.' :count', 'سَنَة'.' :count']),\n    'month' => implode('|', ['شَهْرَ', 'شَهْرَ', 'شَهْرَيْن', 'أَشْهُر'.' :count', 'شَهْرَ'.' :count']),\n    'week' => implode('|', ['أُسْبُوع', 'أُسْبُوع', 'أُسْبُوعَيْن', 'أَسَابِيع'.' :count', 'أُسْبُوع'.' :count']),\n    'day' => implode('|', ['يَوْم', 'يَوْم', 'يَوْمَيْن', 'أَيَّام'.' :count', 'يَوْم'.' :count']),\n    'hour' => implode('|', ['سَاعَة', 'سَاعَة', 'سَاعَتَيْن', 'سَاعَات'.' :count', 'سَاعَة'.' :count']),\n    'minute' => implode('|', ['دَقِيقَة', 'دَقِيقَة', 'دَقِيقَتَيْن', 'دَقَائِق'.' :count', 'دَقِيقَة'.' :count']),\n    'second' => implode('|', ['ثَانِيَة', 'ثَانِيَة', 'ثَانِيَتَيْن', 'ثَوَان'.' :count', 'ثَانِيَة'.' :count']),\n    'ago' => 'مُنْذُ :time',\n    'from_now' => 'مِنَ الْآن :time',\n    'after' => 'بَعْدَ :time',\n    'before' => 'قَبْلَ :time',\n\n    // @TODO add shakl to translations below\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم عند الساعة] LT',\n        'nextDay' => '[غدًا عند الساعة] LT',\n        'nextWeek' => 'dddd [عند الساعة] LT',\n        'lastDay' => '[أمس عند الساعة] LT',\n        'lastWeek' => 'dddd [عند الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'months' => $months,\n    'months_short' => $months,\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - JD Isaacks\n * - Atef Ben Ali (atefBB)\n */\nreturn [\n    'year' => implode('|', ['سنة', 'سنة', 'سنتين', 'سنوات'.' :count', 'سنة'.' :count']),\n    'month' => implode('|', ['شهر', 'شهر', 'شهرين', 'أشهر'.' :count', 'شهر'.' :count']),\n    'week' => implode('|', ['أسبوع', 'أسبوع', 'أسبوعين', 'أسابيع'.' :count', 'أسبوع'.' :count']),\n    'day' => implode('|', ['يوم', 'يوم', 'يومين', 'أيام'.' :count', 'يوم'.' :count']),\n    'hour' => implode('|', ['ساعة', 'ساعة', 'ساعتين', 'ساعات'.' :count', 'ساعة'.' :count']),\n    'minute' => implode('|', ['دقيقة', 'دقيقة', 'دقيقتين', 'دقائق'.' :count', 'دقيقة'.' :count']),\n    'second' => implode('|', ['ثانية', 'ثانية', 'ثانيتين', 'ثوان'.' :count', 'ثانية'.' :count']),\n    'ago' => 'منذ :time',\n    'from_now' => 'في :time',\n    'after' => 'بعد :time',\n    'before' => 'قبل :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اليوم على الساعة] LT',\n        'nextDay' => '[غدا على الساعة] LT',\n        'nextWeek' => 'dddd [على الساعة] LT',\n        'lastDay' => '[أمس على الساعة] LT',\n        'lastWeek' => 'dddd [على الساعة] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ص', 'م'],\n    'months' => ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => ['، ', ' و '],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ar.php', [\n    'formats' => [\n        'L' => 'DD MMM, YYYY',\n    ],\n    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],\n    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],\n    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],\n    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/as.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/as_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Amitakhya Phukan, Red Hat    bug-glibc@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D-MM-YYYY',\n    ],\n    'months' => ['জানুৱাৰী', 'ফেব্ৰুৱাৰী', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'ছেপ্তেম্বৰ', 'অক্টোবৰ', 'নৱেম্বৰ', 'ডিচেম্বৰ'],\n    'months_short' => ['জানু', 'ফেব্ৰু', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],\n    'weekdays' => ['দেওবাৰ', 'সোমবাৰ', 'মঙ্গলবাৰ', 'বুধবাৰ', 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', 'শনিবাৰ'],\n    'weekdays_short' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'],\n    'weekdays_min' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['পূৰ্ব্বাহ্ন', 'অপৰাহ্ন'],\n\n    'year' => ':count বছৰ',\n    'y' => ':count বছৰ',\n    'a_year' => ':count বছৰ',\n\n    'month' => ':count মাহ',\n    'm' => ':count মাহ',\n    'a_month' => ':count মাহ',\n\n    'week' => ':count সপ্তাহ',\n    'w' => ':count সপ্তাহ',\n    'a_week' => ':count সপ্তাহ',\n\n    'day' => ':count বাৰ',\n    'd' => ':count বাৰ',\n    'a_day' => ':count বাৰ',\n\n    'hour' => ':count ঘণ্টা',\n    'h' => ':count ঘণ্টা',\n    'a_hour' => ':count ঘণ্টা',\n\n    'minute' => ':count মিনিট',\n    'min' => ':count মিনিট',\n    'a_minute' => ':count মিনিট',\n\n    'second' => ':count দ্বিতীয়',\n    's' => ':count দ্বিতীয়',\n    'a_second' => ':count দ্বিতীয়',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/asa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['icheheavo', 'ichamthi'],\n    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Dec'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ast.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ast_ES.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Jordi Mallach jordi@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['de xineru', 'de febreru', 'de marzu', 'd’abril', 'de mayu', 'de xunu', 'de xunetu', 'd’agostu', 'de setiembre', 'd’ochobre', 'de payares', 'd’avientu'],\n    'months_short' => ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', 'och', 'pay', 'avi'],\n    'weekdays' => ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', 'sábadu'],\n    'weekdays_short' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],\n    'weekdays_min' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count añu',\n    'y' => ':count añu',\n    'a_year' => ':count añu',\n\n    'month' => ':count mes',\n    'm' => ':count mes',\n    'a_month' => ':count mes',\n\n    'week' => ':count selmana',\n    'w' => ':count selmana',\n    'a_week' => ':count selmana',\n\n    'day' => ':count día',\n    'd' => ':count día',\n    'a_day' => ':count día',\n\n    'hour' => ':count hora',\n    'h' => ':count hora',\n    'a_hour' => ':count hora',\n\n    'minute' => ':count minutu',\n    'min' => ':count minutu',\n    'a_minute' => ':count minutu',\n\n    'second' => ':count segundu',\n    's' => ':count segundu',\n    'a_second' => ':count segundu',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ayc.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ayc_PE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - runasimipi.org    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['inïru', 'phiwriru', 'marsu', 'awrila', 'mayu', 'junyu', 'julyu', 'awustu', 'sitimri', 'uktuwri', 'nuwimri', 'risimri'],\n    'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'jun', 'jul', 'awu', 'sit', 'ukt', 'nuw', 'ris'],\n    'weekdays' => ['tuminku', 'lunisa', 'martisa', 'mirkulisa', 'juywisa', 'wirnisa', 'sawäru'],\n    'weekdays_short' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'],\n    'weekdays_min' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['VM', 'NM'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/az.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Josh Soref\n * - Kunal Marwaha\n * - François B\n * - JD Isaacks\n * - Orxan\n * - Şəhriyar İmanov\n * - Baran Şengül\n */\nreturn [\n    'year' => ':count il',\n    'a_year' => '{1}bir il|]1,Inf[:count il',\n    'y' => ':count il',\n    'month' => ':count ay',\n    'a_month' => '{1}bir ay|]1,Inf[:count ay',\n    'm' => ':count ay',\n    'week' => ':count həftə',\n    'a_week' => '{1}bir həftə|]1,Inf[:count həftə',\n    'w' => ':count h.',\n    'day' => ':count gün',\n    'a_day' => '{1}bir gün|]1,Inf[:count gün',\n    'd' => ':count g.',\n    'hour' => ':count saat',\n    'a_hour' => '{1}bir saat|]1,Inf[:count saat',\n    'h' => ':count saat',\n    'minute' => ':count d.',\n    'a_minute' => '{1}bir dəqiqə|]1,Inf[:count dəqiqə',\n    'min' => ':count dəqiqə',\n    'second' => ':count san.',\n    'a_second' => '{1}birneçə saniyə|]1,Inf[:count saniyə',\n    's' => ':count saniyə',\n    'ago' => ':time əvvəl',\n    'from_now' => ':time sonra',\n    'after' => ':time sonra',\n    'before' => ':time əvvəl',\n    'diff_now' => 'indi',\n    'diff_yesterday' => 'dünən',\n    'diff_tomorrow' => 'sabah',\n    'diff_before_yesterday' => 'srağagün',\n    'diff_after_tomorrow' => 'birisi gün',\n    'period_recurrences' => ':count dəfədən bir',\n    'period_interval' => 'hər :interval',\n    'period_start_date' => ':date tarixindən başlayaraq',\n    'period_end_date' => ':date tarixinədək',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[bugün saat] LT',\n        'nextDay' => '[sabah saat] LT',\n        'nextWeek' => '[gələn həftə] dddd [saat] LT',\n        'lastDay' => '[dünən] LT',\n        'lastWeek' => '[keçən həftə] dddd [saat] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        if ($number === 0) { // special case for zero\n            return \"$number-ıncı\";\n        }\n\n        static $suffixes = [\n            1 => '-inci',\n            5 => '-inci',\n            8 => '-inci',\n            70 => '-inci',\n            80 => '-inci',\n            2 => '-nci',\n            7 => '-nci',\n            20 => '-nci',\n            50 => '-nci',\n            3 => '-üncü',\n            4 => '-üncü',\n            100 => '-üncü',\n            6 => '-ncı',\n            9 => '-uncu',\n            10 => '-uncu',\n            30 => '-uncu',\n            60 => '-ıncı',\n            90 => '-ıncı',\n        ];\n\n        $lastDigit = $number % 10;\n\n        return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'gecə';\n        }\n        if ($hour < 12) {\n            return 'səhər';\n        }\n        if ($hour < 17) {\n            return 'gündüz';\n        }\n\n        return 'axşam';\n    },\n    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],\n    'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'],\n    'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'],\n    'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],\n    'weekdays_short' => ['baz', 'bze', 'çax', 'çər', 'cax', 'cüm', 'şən'],\n    'weekdays_min' => ['bz', 'be', 'ça', 'çə', 'ca', 'cü', 'şə'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' və '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/az.php', [\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['bazar günü', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],\n    'weekdays_short' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'],\n    'weekdays_min' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/az.php', [\n    'weekdays' => ['базар', 'базар ертәси', 'чәршәнбә ахшамы', 'чәршәнбә', 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'],\n    'weekdays_short' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'],\n    'weekdays_min' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'],\n    'months' => ['јанвар', 'феврал', 'март', 'апрел', 'май', 'ијун', 'ијул', 'август', 'сентјабр', 'октјабр', 'нојабр', 'декабр'],\n    'months_short' => ['јан', 'фев', 'мар', 'апр', 'май', 'ијн', 'ијл', 'авг', 'сен', 'окт', 'ној', 'дек'],\n    'months_standalone' => ['Јанвар', 'Феврал', 'Март', 'Апрел', 'Май', 'Ијун', 'Ијул', 'Август', 'Сентјабр', 'Октјабр', 'Нојабр', 'Декабр'],\n    'meridiem' => ['а', 'п'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Mousa Moradi mousamk@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'OY/OM/OD',\n    ],\n    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'],\n    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'],\n    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],\n    'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],\n    'weekdays_min' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],\n    'first_day_of_week' => 6,\n    'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/az.php', [\n    'meridiem' => ['a', 'p'],\n    'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],\n    'weekdays_short' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'],\n    'weekdays_min' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'],\n    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],\n    'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'],\n    'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'D MMMM YYYY, dddd HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bas.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['I bikɛ̂glà', 'I ɓugajɔp'],\n    'weekdays' => ['ŋgwà nɔ̂y', 'ŋgwà njaŋgumba', 'ŋgwà ûm', 'ŋgwà ŋgê', 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'],\n    'weekdays_short' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'],\n    'weekdays_min' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'],\n    'months' => ['Kɔndɔŋ', 'Màcɛ̂l', 'Màtùmb', 'Màtop', 'M̀puyɛ', 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', 'Màyɛsèp', 'Lìbuy li ńyèe'],\n    'months_short' => ['kɔn', 'mac', 'mat', 'mto', 'mpu', 'hil', 'nje', 'hik', 'dip', 'bio', 'may', 'liɓ'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'second' => ':count móndî', // less reliable\n    's' => ':count móndî', // less reliable\n    'a_second' => ':count móndî', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/be.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n}, 'be');\n\n/*\n * Authors:\n * - Josh Soref\n * - SobakaSlava\n * - François B\n * - Serhan Apaydın\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count год|:count гады|:count гадоў',\n    'y' => ':count год|:count гады|:count гадоў',\n    'month' => ':count месяц|:count месяцы|:count месяцаў',\n    'm' => ':count месяц|:count месяцы|:count месяцаў',\n    'week' => ':count тыдзень|:count тыдні|:count тыдняў',\n    'w' => ':count тыдзень|:count тыдні|:count тыдняў',\n    'day' => ':count дзень|:count ні|:count дзён',\n    'd' => ':count дзень|:count ні|:count дзён',\n    'hour' => ':count гадзіну|:count гадзіны|:count гадзін',\n    'h' => ':count гадзіну|:count гадзіны|:count гадзін',\n    'minute' => ':count хвіліну|:count хвіліны|:count хвілін',\n    'min' => ':count хвіліну|:count хвіліны|:count хвілін',\n    'second' => ':count секунду|:count секунды|:count секунд',\n    's' => ':count секунду|:count секунды|:count секунд',\n    'ago' => ':time таму',\n    'from_now' => 'праз :time',\n    'after' => ':time пасля',\n    'before' => ':time да',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY г.',\n        'LLL' => 'D MMMM YYYY г., HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY г., HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Сёння ў] LT',\n        'nextDay' => '[Заўтра ў] LT',\n        'nextWeek' => '[У] dddd [ў] LT',\n        'lastDay' => '[Учора ў] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            switch ($current->dayOfWeek) {\n                case 1:\n                case 2:\n                case 4:\n                    return '[У мінулы] dddd [ў] LT';\n                default:\n                    return '[У мінулую] dddd [ў] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'M':\n            case 'd':\n            case 'DDD':\n            case 'w':\n            case 'W':\n                return ($number % 10 === 2 || $number % 10 === 3) && ($number % 100 !== 12 && $number % 100 !== 13) ? $number.'-і' : $number.'-ы';\n            case 'D':\n                return $number.'-га';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'ночы';\n        }\n        if ($hour < 12) {\n            return 'раніцы';\n        }\n        if ($hour < 17) {\n            return 'дня';\n        }\n\n        return 'вечара';\n    },\n    'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'траўня', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'],\n    'months_standalone' => ['студзень', 'люты', 'сакавік', 'красавік', 'травень', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань'],\n    'months_short' => ['студ', 'лют', 'сак', 'крас', 'трав', 'чэрв', 'ліп', 'жнів', 'вер', 'каст', 'ліст', 'снеж'],\n    'months_regexp' => '/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['нядзелю', 'панядзелак', 'аўторак', 'сераду', 'чацвер', 'пятніцу', 'суботу'],\n    'weekdays_standalone' => ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота'],\n    'weekdays_short' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'],\n    'weekdays_min' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'],\n    'weekdays_regexp' => '/\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' і '],\n    'months_short_standalone' => ['сту', 'лют', 'сак', 'кра', 'май', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/be.php', [\n    'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'мая', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'],\n    'months_short' => ['сту', 'лют', 'сак', 'кра', 'мая', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'],\n    'weekdays' => ['Нядзеля', 'Панядзелак', 'Аўторак', 'Серада', 'Чацвер', 'Пятніца', 'Субота'],\n    'weekdays_short' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'],\n    'weekdays_min' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['studzienia', 'lutaha', 'sakavika', 'krasavika', 'maja', 'červienia', 'lipienia', 'žniŭnia', 'vieraśnia', 'kastryčnika', 'listapada', 'śniežnia'],\n    'months_short' => ['Stu', 'Lut', 'Sak', 'Kra', 'Maj', 'Čer', 'Lip', 'Žni', 'Vie', 'Kas', 'Lis', 'Śni'],\n    'weekdays' => ['Niadziela', 'Paniadziełak', 'Aŭtorak', 'Sierada', 'Čaćvier', 'Piatnica', 'Subota'],\n    'weekdays_short' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'],\n    'weekdays_min' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bem.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/bem_ZM.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - ANLoc Martin Benjamin locales@africanlocalization.net\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'MM/DD/YYYY',\n    ],\n    'months' => ['Januari', 'Februari', 'Machi', 'Epreo', 'Mei', 'Juni', 'Julai', 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Epr', 'Mei', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Dis'],\n    'weekdays' => ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', 'Palichine', 'Palichisano', 'Pachibelushi'],\n    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['uluchelo', 'akasuba'],\n\n    'year' => 'myaka :count',\n    'y' => 'myaka :count',\n    'a_year' => 'myaka :count',\n\n    'month' => 'myeshi :count',\n    'm' => 'myeshi :count',\n    'a_month' => 'myeshi :count',\n\n    'week' => 'umulungu :count',\n    'w' => 'umulungu :count',\n    'a_week' => 'umulungu :count',\n\n    'day' => 'inshiku :count',\n    'd' => 'inshiku :count',\n    'a_day' => 'inshiku :count',\n\n    'hour' => 'awala :count',\n    'h' => 'awala :count',\n    'a_hour' => 'awala :count',\n\n    'minute' => 'miniti :count',\n    'min' => 'miniti :count',\n    'a_minute' => 'miniti :count',\n\n    'second' => 'sekondi :count',\n    's' => 'sekondi :count',\n    'a_second' => 'sekondi :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ber.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ber_DZ.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'],\n    'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],\n    'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'],\n    'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],\n    'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bez.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['pamilau', 'pamunyi'],\n    'weekdays' => ['pa mulungu', 'pa shahuviluha', 'pa hivili', 'pa hidatu', 'pa hitayi', 'pa hihanu', 'pa shahulembela'],\n    'weekdays_short' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'],\n    'weekdays_min' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'],\n    'months' => ['pa mwedzi gwa hutala', 'pa mwedzi gwa wuvili', 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', 'pa mwedzi gwa kumi na mbili'],\n    'months_short' => ['Hut', 'Vil', 'Dat', 'Tai', 'Han', 'Sit', 'Sab', 'Nan', 'Tis', 'Kum', 'Kmj', 'Kmb'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - Serhan Apaydın\n * - JD Isaacks\n * - Glavić\n */\nreturn [\n    'year' => ':count година|:count години',\n    'a_year' => 'година|:count години',\n    'y' => ':count година|:count години',\n    'month' => ':count месец|:count месеца',\n    'a_month' => 'месец|:count месеца',\n    'm' => ':count месец|:count месеца',\n    'week' => ':count седмица|:count седмици',\n    'a_week' => 'седмица|:count седмици',\n    'w' => ':count седмица|:count седмици',\n    'day' => ':count ден|:count дни',\n    'a_day' => 'ден|:count дни',\n    'd' => ':count ден|:count дни',\n    'hour' => ':count час|:count часа',\n    'a_hour' => 'час|:count часа',\n    'h' => ':count час|:count часа',\n    'minute' => ':count минута|:count минути',\n    'a_minute' => 'минута|:count минути',\n    'min' => ':count минута|:count минути',\n    'second' => ':count секунда|:count секунди',\n    'a_second' => 'няколко секунди|:count секунди',\n    's' => ':count секунда|:count секунди',\n    'ago' => 'преди :time',\n    'from_now' => 'след :time',\n    'after' => 'след :time',\n    'before' => 'преди :time',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'D.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Днес в] LT',\n        'nextDay' => '[Утре в] LT',\n        'nextWeek' => 'dddd [в] LT',\n        'lastDay' => '[Вчера в] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            switch ($current->dayOfWeek) {\n                case 0:\n                case 3:\n                case 6:\n                    return '[В изминалата] dddd [в] LT';\n                default:\n                    return '[В изминалия] dddd [в] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        $lastDigit = $number % 10;\n        $last2Digits = $number % 100;\n        if ($number === 0) {\n            return \"$number-ев\";\n        }\n        if ($last2Digits === 0) {\n            return \"$number-ен\";\n        }\n        if ($last2Digits > 10 && $last2Digits < 20) {\n            return \"$number-ти\";\n        }\n        if ($lastDigit === 1) {\n            return \"$number-ви\";\n        }\n        if ($lastDigit === 2) {\n            return \"$number-ри\";\n        }\n        if ($lastDigit === 7 || $lastDigit === 8) {\n            return \"$number-ми\";\n        }\n\n        return \"$number-ти\";\n    },\n    'months' => ['януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември'],\n    'months_short' => ['яну', 'фев', 'мар', 'апр', 'май', 'юни', 'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'],\n    'weekdays' => ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота'],\n    'weekdays_short' => ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'],\n    'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' и '],\n    'meridiem' => ['преди обяд', 'следобед'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/bg.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bhb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/bhb_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    alexey.merzlyakov@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bho.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/bho_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bhashaghar@googlegroups.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर\"'],\n    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर\"'],\n    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n\n    'hour' => ':count मौसम',\n    'h' => ':count मौसम',\n    'a_hour' => ':count मौसम',\n\n    'minute' => ':count कला',\n    'min' => ':count कला',\n    'a_minute' => ':count कला',\n\n    'second' => ':count सोमार',\n    's' => ':count सोमार',\n    'a_second' => ':count सोमार',\n\n    'year' => ':count साल',\n    'y' => ':count साल',\n    'a_year' => ':count साल',\n\n    'month' => ':count महिना',\n    'm' => ':count महिना',\n    'a_month' => ':count महिना',\n\n    'week' => ':count सप्ताह',\n    'w' => ':count सप्ताह',\n    'a_week' => ':count सप्ताह',\n\n    'day' => ':count दिन',\n    'd' => ':count दिन',\n    'a_day' => ':count दिन',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/bi_VU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com & maninder1.s@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'dddd DD MMM YYYY',\n    ],\n    'months' => ['jenuware', 'febwari', 'maj', 'epril', 'mei', 'jun', 'julae', 'ogis', 'septemba', 'oktoba', 'novemba', 'disemba'],\n    'months_short' => ['jen', 'feb', 'maj', 'epr', 'mei', 'jun', 'jul', 'ogi', 'sep', 'okt', 'nov', 'dis'],\n    'weekdays' => ['sande', 'mande', 'maj', 'wota', 'fraede', 'sarede'],\n    'weekdays_short' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'],\n    'weekdays_min' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'],\n\n    'year' => ':count seven', // less reliable\n    'y' => ':count seven', // less reliable\n    'a_year' => ':count seven', // less reliable\n\n    'month' => ':count mi', // less reliable\n    'm' => ':count mi', // less reliable\n    'a_month' => ':count mi', // less reliable\n\n    'week' => ':count sarede', // less reliable\n    'w' => ':count sarede', // less reliable\n    'a_week' => ':count sarede', // less reliable\n\n    'day' => ':count betde', // less reliable\n    'd' => ':count betde', // less reliable\n    'a_day' => ':count betde', // less reliable\n\n    'hour' => ':count klok', // less reliable\n    'h' => ':count klok', // less reliable\n    'a_hour' => ':count klok', // less reliable\n\n    'minute' => ':count smol', // less reliable\n    'min' => ':count smol', // less reliable\n    'a_minute' => ':count smol', // less reliable\n\n    'second' => ':count tu', // less reliable\n    's' => ':count tu', // less reliable\n    'a_second' => ':count tu', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bm.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'bm');\n\n/*\n * Authors:\n * - Estelle Comment\n */\nreturn [\n    'year' => 'san :count',\n    'a_year' => 'san kelen|san :count',\n    'y' => 'san :count',\n    'month' => 'kalo :count',\n    'a_month' => 'kalo kelen|kalo :count',\n    'm' => 'k. :count',\n    'week' => 'dɔgɔkun :count',\n    'a_week' => 'dɔgɔkun kelen',\n    'w' => 'd. :count',\n    'day' => 'tile :count',\n    'd' => 't. :count',\n    'a_day' => 'tile kelen|tile :count',\n    'hour' => 'lɛrɛ :count',\n    'a_hour' => 'lɛrɛ kelen|lɛrɛ :count',\n    'h' => 'l. :count',\n    'minute' => 'miniti :count',\n    'a_minute' => 'miniti kelen|miniti :count',\n    'min' => 'm. :count',\n    'second' => 'sekondi :count',\n    'a_second' => 'sanga dama dama|sekondi :count',\n    's' => 'sek. :count',\n    'ago' => 'a bɛ :time bɔ',\n    'from_now' => ':time kɔnɔ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'MMMM [tile] D [san] YYYY',\n        'LLL' => 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n        'LLLL' => 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Bi lɛrɛ] LT',\n        'nextDay' => '[Sini lɛrɛ] LT',\n        'nextWeek' => 'dddd [don lɛrɛ] LT',\n        'lastDay' => '[Kunu lɛrɛ] LT',\n        'lastWeek' => 'dddd [tɛmɛnen lɛrɛ] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['Zanwuyekalo', 'Fewuruyekalo', 'Marisikalo', 'Awirilikalo', 'Mɛkalo', 'Zuwɛnkalo', 'Zuluyekalo', 'Utikalo', 'Sɛtanburukalo', 'ɔkutɔburukalo', 'Nowanburukalo', 'Desanburukalo'],\n    'months_short' => ['Zan', 'Few', 'Mar', 'Awi', 'Mɛ', 'Zuw', 'Zul', 'Uti', 'Sɛt', 'ɔku', 'Now', 'Des'],\n    'weekdays' => ['Kari', 'Ntɛnɛn', 'Tarata', 'Araba', 'Alamisa', 'Juma', 'Sibiri'],\n    'weekdays_short' => ['Kar', 'Ntɛ', 'Tar', 'Ara', 'Ala', 'Jum', 'Sib'],\n    'weekdays_min' => ['Ka', 'Nt', 'Ta', 'Ar', 'Al', 'Ju', 'Si'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' ni '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Shakib Hossain\n * - Raju\n * - Aniruddha Adhikary\n * - JD Isaacks\n * - Saiful Islam\n * - Faisal Islam\n */\nreturn [\n    'year' => ':count বছর',\n    'a_year' => 'এক বছর|:count বছর',\n    'y' => '১ বছর|:count বছর',\n    'month' => ':count মাস',\n    'a_month' => 'এক মাস|:count মাস',\n    'm' => '১ মাস|:count মাস',\n    'week' => ':count সপ্তাহ',\n    'a_week' => '১ সপ্তাহ|:count সপ্তাহ',\n    'w' => '১ সপ্তাহ|:count সপ্তাহ',\n    'day' => ':count দিন',\n    'a_day' => 'এক দিন|:count দিন',\n    'd' => '১ দিন|:count দিন',\n    'hour' => ':count ঘন্টা',\n    'a_hour' => 'এক ঘন্টা|:count ঘন্টা',\n    'h' => '১ ঘন্টা|:count ঘন্টা',\n    'minute' => ':count মিনিট',\n    'a_minute' => 'এক মিনিট|:count মিনিট',\n    'min' => '১ মিনিট|:count মিনিট',\n    'second' => ':count সেকেন্ড',\n    'a_second' => 'কয়েক সেকেন্ড|:count সেকেন্ড',\n    's' => '১ সেকেন্ড|:count সেকেন্ড',\n    'ago' => ':time আগে',\n    'from_now' => ':time পরে',\n    'after' => ':time পরে',\n    'before' => ':time আগে',\n    'diff_now' => 'এখন',\n    'diff_yesterday' => 'গতকাল',\n    'diff_tomorrow' => 'আগামীকাল',\n    'period_recurrences' => ':count বার|:count বার',\n    'period_interval' => 'প্রতি :interval',\n    'period_start_date' => ':date থেকে',\n    'period_end_date' => ':date পর্যন্ত',\n    'formats' => [\n        'LT' => 'A Oh:Om সময়',\n        'LTS' => 'A Oh:Om:Os সময়',\n        'L' => 'OD/OM/OY',\n        'LL' => 'OD MMMM OY',\n        'LLL' => 'OD MMMM OY, A Oh:Om সময়',\n        'LLLL' => 'dddd, OD MMMM OY, A Oh:Om সময়',\n    ],\n    'calendar' => [\n        'sameDay' => '[আজ] LT',\n        'nextDay' => '[আগামীকাল] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[গতকাল] LT',\n        'lastWeek' => '[গত] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'রাত';\n        }\n        if ($hour < 10) {\n            return 'সকাল';\n        }\n        if ($hour < 17) {\n            return 'দুপুর';\n        }\n        if ($hour < 20) {\n            return 'বিকাল';\n        }\n\n        return 'রাত';\n    },\n    'months' => ['জানুয়ারী', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্র', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],\n    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],\n    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],\n    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গ', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],\n    'list' => [', ', ' এবং '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekdays_standalone' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহষ্পতিবার', 'শুক্রবার', 'শনিবার'],\n    'weekdays_min_standalone' => ['রঃ', 'সোঃ', 'মঃ', 'বুঃ', 'বৃঃ', 'শুঃ', 'শনি'],\n    'months_short_standalone' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'alt_numbers' => ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ankur Group, http://www.ankurbangla.org, http://www.bengalinux.org Taneem Ahmed, Jamil Ahmed taneem@bengalinux.org, jamil@bengalinux.org\n */\nreturn array_replace_recursive(require __DIR__.'/bn.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],\n    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],\n    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],\n    'first_day_of_week' => 5,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/bn.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],\n    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],\n    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],\n    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n */\nreturn [\n    'year' => '{1}ལོ་གཅིག|]1,Inf[:count ལོ',\n    'month' => '{1}ཟླ་བ་གཅིག|]1,Inf[:count ཟླ་བ',\n    'week' => ':count བདུན་ཕྲག',\n    'day' => '{1}ཉིན་གཅིག|]1,Inf[:count ཉིན་',\n    'hour' => '{1}ཆུ་ཚོད་གཅིག|]1,Inf[:count ཆུ་ཚོད',\n    'minute' => '{1}སྐར་མ་གཅིག|]1,Inf[:count སྐར་མ',\n    'second' => '{1}ལམ་སང|]1,Inf[:count སྐར་ཆ།',\n    'ago' => ':time སྔན་ལ',\n    'from_now' => ':time ལ་',\n    'diff_yesterday' => 'ཁ་སང',\n    'diff_tomorrow' => 'སང་ཉིན',\n    'formats' => [\n        'LT' => 'A h:mm',\n        'LTS' => 'A h:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[དི་རིང] LT',\n        'nextDay' => '[སང་ཉིན] LT',\n        'nextWeek' => '[བདུན་ཕྲག་རྗེས་མ], LT',\n        'lastDay' => '[ཁ་སང] LT',\n        'lastWeek' => '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'མཚན་མོ';\n        }\n        if ($hour < 10) {\n            return 'ཞོགས་ཀས';\n        }\n        if ($hour < 17) {\n            return 'ཉིན་གུང';\n        }\n        if ($hour < 20) {\n            return 'དགོང་དག';\n        }\n\n        return 'མཚན་མོ';\n    },\n    'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],\n    'months_short' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],\n    'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'],\n    'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'],\n    'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'],\n    'list' => [', ', ' ཨནད་ '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/bo.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/bo.php', [\n    'meridiem' => ['སྔ་དྲོ་', 'ཕྱི་དྲོ་'],\n    'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'],\n    'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'],\n    'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'],\n    'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],\n    'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'],\n    'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],\n    'weekend' => [0, 0],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'YYYY ལོའི་MMMཚེས་D',\n        'LLL' => 'སྤྱི་ལོ་YYYY MMMMའི་ཚེས་D h:mm a',\n        'LLLL' => 'YYYY MMMMའི་ཚེས་D, dddd h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/br.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'br');\n\n/*\n * Authors:\n * - François B\n * - Serhan Apaydın\n * - JD Isaacks\n */\nreturn [\n    'year' => '{1}:count bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz',\n    'a_year' => '{1}ur bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz',\n    'month' => '{1}:count miz|{2}:count viz|[0,Inf[:count miz',\n    'a_month' => '{1}ur miz|{2}:count viz|[0,Inf[:count miz',\n    'week' => ':count sizhun',\n    'a_week' => 'ur sizhun|:count sizhun',\n    'day' => '{1}:count devezh|{2}:count zevezh|[0,Inf[:count devezh',\n    'a_day' => '{1}un devezh|{2}:count zevezh|[0,Inf[:count devezh',\n    'hour' => ':count eur',\n    'a_hour' => 'un eur|:count eur',\n    'minute' => '{1}:count vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn',\n    'a_minute' => '{1}ur vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn',\n    'second' => ':count eilenn',\n    'a_second' => '{1}un nebeud segondennoù|[0,Inf[:count eilenn',\n    'ago' => ':time \\'zo',\n    'from_now' => 'a-benn :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D [a viz] MMMM YYYY',\n        'LLL' => 'D [a viz] MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D [a viz] MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hiziv da] LT',\n        'nextDay' => '[Warc\\'hoazh da] LT',\n        'nextWeek' => 'dddd [da] LT',\n        'lastDay' => '[Dec\\'h da] LT',\n        'lastWeek' => 'dddd [paset da] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.($number === 1 ? 'añ' : 'vet');\n    },\n    'months' => ['Genver', 'C\\'hwevrer', 'Meurzh', 'Ebrel', 'Mae', 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'],\n    'months_short' => ['Gen', 'C\\'hwe', 'Meu', 'Ebr', 'Mae', 'Eve', 'Gou', 'Eos', 'Gwe', 'Her', 'Du', 'Ker'],\n    'weekdays' => ['Sul', 'Lun', 'Meurzh', 'Merc\\'her', 'Yaou', 'Gwener', 'Sadorn'],\n    'weekdays_short' => ['Sul', 'Lun', 'Meu', 'Mer', 'Yao', 'Gwe', 'Sad'],\n    'weekdays_min' => ['Su', 'Lu', 'Me', 'Mer', 'Ya', 'Gw', 'Sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' hag '],\n    'meridiem' => ['A.M.', 'G.M.'],\n\n    'y' => ':count bl.',\n    'd' => ':count d',\n    'h' => ':count e',\n    'min' => ':count min',\n    's' => ':count s',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/br.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/brx.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/brx_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'M/D/YY',\n    ],\n    'months' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एफ्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'],\n    'months_short' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एप्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'],\n    'weekdays' => ['रबिबार', 'सोबार', 'मंगलबार', 'बुदबार', 'बिसथिबार', 'सुखुरबार', 'सुनिबार'],\n    'weekdays_short' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'],\n    'weekdays_min' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['फुं.', 'बेलासे.'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bs.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bokideckonja\n * - Josh Soref\n * - François B\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count godina|:count godine|:count godina',\n    'y' => ':count godina|:count godine|:count godina',\n    'month' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'm' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'week' => ':count nedjelja|:count nedjelje|:count nedjelja',\n    'w' => ':count nedjelja|:count nedjelje|:count nedjelja',\n    'day' => ':count dan|:count dana|:count dana',\n    'd' => ':count dan|:count dana|:count dana',\n    'hour' => ':count sat|:count sata|:count sati',\n    'h' => ':count sat|:count sata|:count sati',\n    'minute' => ':count minut|:count minuta|:count minuta',\n    'min' => ':count minut|:count minuta|:count minuta',\n    'second' => ':count sekund|:count sekunda|:count sekundi',\n    's' => ':count sekund|:count sekunda|:count sekundi',\n    'ago' => 'prije :time',\n    'from_now' => 'za :time',\n    'after' => 'nakon :time',\n    'before' => ':time ranije',\n    'diff_yesterday' => 'jučer',\n    'diff_tomorrow' => 'sutra',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[danas u] LT',\n        'nextDay' => '[sutra u] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current) {\n            switch ($current->dayOfWeek) {\n                case 0:\n                    return '[u] [nedjelju] [u] LT';\n                case 3:\n                    return '[u] [srijedu] [u] LT';\n                case 6:\n                    return '[u] [subotu] [u] LT';\n                default:\n                    return '[u] dddd [u] LT';\n            }\n        },\n        'lastDay' => '[jučer u] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            switch ($current->dayOfWeek) {\n                case 0:\n                case 3:\n                    return '[prošlu] dddd [u] LT';\n                case 6:\n                    return '[prošle] [subote] [u] LT';\n                default:\n                    return '[prošli] dddd [u] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'juni', 'juli', 'august', 'septembar', 'oktobar', 'novembar', 'decembar'],\n    'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],\n    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],\n    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' i '],\n    'meridiem' => ['prijepodne', 'popodne'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/bs.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/bs.php', [\n    'meridiem' => ['пре подне', 'поподне'],\n    'weekdays' => ['недјеља', 'понедјељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'],\n    'weekdays_short' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'],\n    'weekdays_min' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'],\n    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јуни', 'јули', 'аугуст', 'септембар', 'октобар', 'новембар', 'децембар'],\n    'months_short' => ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'ауг', 'сеп', 'окт', 'нов', 'дец'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D.M.YYYY.',\n        'LL' => 'DD.MM.YYYY.',\n        'LLL' => 'DD. MMMM YYYY. HH:mm',\n        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/bs.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/byn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/byn_ER.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ልደትሪ', 'ካብኽብቲ', 'ክብላ', 'ፋጅኺሪ', 'ክቢቅሪ', 'ምኪኤል ትጓ̅ኒሪ', 'ኰርኩ', 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'],\n    'months_short' => ['ልደት', 'ካብኽ', 'ክብላ', 'ፋጅኺ', 'ክቢቅ', 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', 'ም/ም', 'ተሕሳ'],\n    'weekdays' => ['ሰንበር ቅዳዅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', 'ሰንበር ሽጓዅ'],\n    'weekdays_short' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'],\n    'weekdays_min' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ፋዱስ ጃብ', 'ፋዱስ ደምቢ'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - mestremuten\n * - François B\n * - Marc Ordinas i Llopis\n * - Pere Orga\n * - JD Isaacks\n * - Quentí\n * - Víctor Díaz\n * - Xavi\n * - qcardona\n */\nreturn [\n    'year' => ':count any|:count anys',\n    'a_year' => 'un any|:count anys',\n    'y' => ':count any|:count anys',\n    'month' => ':count mes|:count mesos',\n    'a_month' => 'un mes|:count mesos',\n    'm' => ':count mes|:count mesos',\n    'week' => ':count setmana|:count setmanes',\n    'a_week' => 'una setmana|:count setmanes',\n    'w' => ':count setmana|:count setmanes',\n    'day' => ':count dia|:count dies',\n    'a_day' => 'un dia|:count dies',\n    'd' => ':count d',\n    'hour' => ':count hora|:count hores',\n    'a_hour' => 'una hora|:count hores',\n    'h' => ':count h',\n    'minute' => ':count minut|:count minuts',\n    'a_minute' => 'un minut|:count minuts',\n    'min' => ':count min',\n    'second' => ':count segon|:count segons',\n    'a_second' => 'uns segons|:count segons',\n    's' => ':count s',\n    'ago' => 'fa :time',\n    'from_now' => 'd\\'aquí :time',\n    'after' => ':time després',\n    'before' => ':time abans',\n    'diff_now' => 'ara mateix',\n    'diff_yesterday' => 'ahir',\n    'diff_tomorrow' => 'demà',\n    'diff_before_yesterday' => 'abans d\\'ahir',\n    'diff_after_tomorrow' => 'demà passat',\n    'period_recurrences' => ':count cop|:count cops',\n    'period_interval' => 'cada :interval',\n    'period_start_date' => 'de :date',\n    'period_end_date' => 'fins a :date',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM [de] YYYY',\n        'LLL' => 'D MMMM [de] YYYY [a les] H:mm',\n        'LLLL' => 'dddd D MMMM [de] YYYY [a les] H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[avui a '.($current->hour !== 1 ? 'les' : 'la').'] LT';\n        },\n        'nextDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[demà a '.($current->hour !== 1 ? 'les' : 'la').'] LT';\n        },\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return 'dddd [a '.($current->hour !== 1 ? 'les' : 'la').'] LT';\n        },\n        'lastDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[ahir a '.($current->hour !== 1 ? 'les' : 'la').'] LT';\n        },\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return '[el] dddd [passat a '.($current->hour !== 1 ? 'les' : 'la').'] LT';\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        return $number.(\n            ($period === 'w' || $period === 'W') ? 'a' : (\n                ($number === 1) ? 'r' : (\n                    ($number === 2) ? 'n' : (\n                        ($number === 3) ? 'r' : (\n                            ($number === 4) ? 't' : 'è'\n                        )\n                    )\n                )\n            )\n        );\n    },\n    'months' => ['de gener', 'de febrer', 'de març', 'd\\'abril', 'de maig', 'de juny', 'de juliol', 'd\\'agost', 'de setembre', 'd\\'octubre', 'de novembre', 'de desembre'],\n    'months_standalone' => ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'],\n    'months_short' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'],\n    'months_regexp' => '/D[oD]?[\\s,]+MMMM?/',\n    'weekdays' => ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', 'divendres', 'dissabte'],\n    'weekdays_short' => ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'],\n    'weekdays_min' => ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' i '],\n    'meridiem' => ['a. m.', 'p. m.'],\n    'months_short_standalone' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ca.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ca.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ca.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ca.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ca.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ccp.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['𑄢𑄧𑄝𑄨𑄝𑄢𑄴', '𑄥𑄧𑄟𑄴𑄝𑄢𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴𑄝𑄢𑄴', '𑄝𑄪𑄖𑄴𑄝𑄢𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴𑄝𑄢𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴𑄝𑄢𑄴', '𑄥𑄧𑄚𑄨𑄝𑄢𑄴'],\n    'weekdays_short' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'],\n    'weekdays_min' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'],\n    'months' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄬𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'],\n    'months_short' => ['𑄎𑄚𑄪', '𑄜𑄬𑄛𑄴', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄢𑄴'],\n    'months_short_standalone' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM, YYYY h:mm a',\n        'LLLL' => 'dddd, D MMMM, YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ccp.php', [\n    'weekend' => [0, 0],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ce.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ce_RU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - ANCHR\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY.DD.MM',\n    ],\n    'months' => ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],\n    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'weekdays' => ['КӀиранан де', 'Оршотан де', 'Шинарин де', 'Кхаарин де', 'Еарин де', 'ПӀераскан де', 'Шот де'],\n    'weekdays_short' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'],\n    'weekdays_min' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count шо',\n    'y' => ':count шо',\n    'a_year' => ':count шо',\n\n    'month' => ':count бутт',\n    'm' => ':count бутт',\n    'a_month' => ':count бутт',\n\n    'week' => ':count кӏира',\n    'w' => ':count кӏира',\n    'a_week' => ':count кӏира',\n\n    'day' => ':count де',\n    'd' => ':count де',\n    'a_day' => ':count де',\n\n    'hour' => ':count сахьт',\n    'h' => ':count сахьт',\n    'a_hour' => ':count сахьт',\n\n    'minute' => ':count минот',\n    'min' => ':count минот',\n    'a_minute' => ':count минот',\n\n    'second' => ':count секунд',\n    's' => ':count секунд',\n    'a_second' => ':count секунд',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cgg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'],\n    'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],\n    'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],\n    'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'],\n    'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'day' => ':count ruhanga', // less reliable\n    'd' => ':count ruhanga', // less reliable\n    'a_day' => ':count ruhanga', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/chr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/chr_US.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Cherokee Nation Joseph Erb josepherb7@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'MM/DD/YYYY',\n    ],\n    'months' => ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎥᏍᎩᏱ'],\n    'months_short' => ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎥᏍ'],\n    'weekdays' => ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'],\n    'weekdays_short' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'],\n    'weekdays_min' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ᏌᎾᎴ', 'ᏒᎯᏱᎢᏗᏢ', 'ꮜꮎꮄ', 'ꮢꭿᏹꭲꮧꮲ'],\n\n    'second' => ':count ᏐᎢ', // less reliable\n    's' => ':count ᏐᎢ', // less reliable\n    'a_second' => ':count ᏐᎢ', // less reliable\n\n    'year' => ':count ᏑᏕᏘᏴᏓ',\n    'y' => ':count ᏑᏕᏘᏴᏓ',\n    'a_year' => ':count ᏑᏕᏘᏴᏓ',\n\n    'month' => ':count ᏏᏅᏙ',\n    'm' => ':count ᏏᏅᏙ',\n    'a_month' => ':count ᏏᏅᏙ',\n\n    'week' => ':count ᏑᎾᏙᏓᏆᏍᏗ',\n    'w' => ':count ᏑᎾᏙᏓᏆᏍᏗ',\n    'a_week' => ':count ᏑᎾᏙᏓᏆᏍᏗ',\n\n    'day' => ':count ᎢᎦ',\n    'd' => ':count ᎢᎦ',\n    'a_day' => ':count ᎢᎦ',\n\n    'hour' => ':count ᏑᏟᎶᏛ',\n    'h' => ':count ᏑᏟᎶᏛ',\n    'a_hour' => ':count ᏑᏟᎶᏛ',\n\n    'minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ',\n    'min' => ':count ᎢᏯᏔᏬᏍᏔᏅ',\n    'a_minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ',\n\n    'ago' => ':time ᏥᎨᏒ',\n    'from_now' => 'ᎾᎿ :time',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cmn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/cmn_TW.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY年MM月DD號',\n    ],\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'meridiem' => ['上午', '下午'],\n\n    'year' => ':count 年',\n    'y' => ':count 年',\n    'a_year' => ':count 年',\n\n    'month' => ':count 月',\n    'm' => ':count 月',\n    'a_month' => ':count 月',\n\n    'week' => ':count 周',\n    'w' => ':count 周',\n    'a_week' => ':count 周',\n\n    'day' => ':count 白天',\n    'd' => ':count 白天',\n    'a_day' => ':count 白天',\n\n    'hour' => ':count 小时',\n    'h' => ':count 小时',\n    'a_hour' => ':count 小时',\n\n    'minute' => ':count 分钟',\n    'min' => ':count 分钟',\n    'a_minute' => ':count 分钟',\n\n    'second' => ':count 秒',\n    's' => ':count 秒',\n    'a_second' => ':count 秒',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/crh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/crh_UA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Reşat SABIQ tilde.birlik@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'Mayıs', 'İyun', 'İyul', 'Avgust', 'Sentâbr', 'Oktâbr', 'Noyabr', 'Dekabr'],\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['Bazar', 'Bazarertesi', 'Salı', 'Çarşembe', 'Cumaaqşamı', 'Cuma', 'Cumaertesi'],\n    'weekdays_short' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'],\n    'weekdays_min' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ÜE', 'ÜS'],\n\n    'year' => ':count yıl',\n    'y' => ':count yıl',\n    'a_year' => ':count yıl',\n\n    'month' => ':count ay',\n    'm' => ':count ay',\n    'a_month' => ':count ay',\n\n    'week' => ':count afta',\n    'w' => ':count afta',\n    'a_week' => ':count afta',\n\n    'day' => ':count kün',\n    'd' => ':count kün',\n    'a_day' => ':count kün',\n\n    'hour' => ':count saat',\n    'h' => ':count saat',\n    'a_hour' => ':count saat',\n\n    'minute' => ':count daqqa',\n    'min' => ':count daqqa',\n    'a_minute' => ':count daqqa',\n\n    'second' => ':count ekinci',\n    's' => ':count ekinci',\n    'a_second' => ':count ekinci',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cs.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Jakub Tesinsky\n * - Martin Suja\n * - Nikos Timiopulos\n * - Bohuslav Blín\n * - Tsutomu Kuroda\n * - tjku\n * - Lukas Svoboda\n * - Max Melentiev\n * - Juanito Fatas\n * - Akira Matsuda\n * - Christopher Dell\n * - Václav Pávek\n * - CodeSkills\n * - Tlapi\n * - newman101\n * - Petr Kadlec\n * - tommaskraus\n * - Karel Sommer (calvera)\n */\n$za = function ($time) {\n    return 'za '.strtr($time, [\n        'hodina' => 'hodinu',\n        'minuta' => 'minutu',\n        'sekunda' => 'sekundu',\n    ]);\n};\n\n$pred = function ($time) {\n    $time = strtr($time, [\n        'hodina' => 'hodinou',\n        'minuta' => 'minutou',\n        'sekunda' => 'sekundou',\n    ]);\n    $time = preg_replace('/hodiny?(?!\\w)/', 'hodinami', $time);\n    $time = preg_replace('/minuty?(?!\\w)/', 'minutami', $time);\n    $time = preg_replace('/sekundy?(?!\\w)/', 'sekundami', $time);\n\n    return \"před $time\";\n};\n\nreturn [\n    'year' => ':count rok|:count roky|:count let',\n    'y' => ':count rok|:count roky|:count let',\n    'a_year' => 'rok|:count roky|:count let',\n    'month' => ':count měsíc|:count měsíce|:count měsíců',\n    'm' => ':count měs.',\n    'a_month' => 'měsíc|:count měsíce|:count měsíců',\n    'week' => ':count týden|:count týdny|:count týdnů',\n    'w' => ':count týd.',\n    'a_week' => 'týden|:count týdny|:count týdnů',\n    'day' => ':count den|:count dny|:count dní',\n    'd' => ':count den|:count dny|:count dní',\n    'a_day' => 'den|:count dny|:count dní',\n    'hour' => ':count hodina|:count hodiny|:count hodin',\n    'h' => ':count hod.',\n    'a_hour' => 'hodina|:count hodiny|:count hodin',\n    'minute' => ':count minuta|:count minuty|:count minut',\n    'min' => ':count min.',\n    'a_minute' => 'minuta|:count minuty|:count minut',\n    'second' => ':count sekunda|:count sekundy|:count sekund',\n    's' => ':count sek.',\n    'a_second' => 'pár sekund|:count sekundy|:count sekund',\n    'ago' => $pred,\n    'from_now' => $za,\n    'before' => $pred,\n    'after' => $za,\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'months' => ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'],\n    'months_short' => ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],\n    'weekdays' => ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],\n    'weekdays_short' => ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'],\n    'weekdays_min' => ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],\n    'list' => [', ', ' a '],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD. MM. YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D. MMMM YYYY HH:mm',\n    ],\n    'meridiem' => ['dopoledne', 'odpoledne'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/cs.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/csb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/csb_PL.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - csb_PL locale Michal Ostrowski bug-glibc-locales@gnu.org\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'MMMM DD, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'months' => ['stëcznika', 'gromicznika', 'strëmiannika', 'łżëkwiata', 'maja', 'czerwińca', 'lëpińca', 'zélnika', 'séwnika', 'rujana', 'lëstopadnika', 'gòdnika'],\n    'months_short' => ['stë', 'gro', 'str', 'łżë', 'maj', 'cze', 'lëp', 'zél', 'séw', 'ruj', 'lës', 'gòd'],\n    'weekdays' => ['niedzela', 'pòniedzôłk', 'wtórk', 'strzoda', 'czwiôrtk', 'piątk', 'sobòta'],\n    'weekdays_short' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'],\n    'weekdays_min' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' a téż '],\n    'two_words_connector' => ' a téż ',\n    'year' => ':count rok',\n    'month' => ':count miesiąc',\n    'week' => ':count tidzéń',\n    'day' => ':count dzéń',\n    'hour' => ':count gòdzëna',\n    'minute' => ':count minuta',\n    'second' => ':count sekunda',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n\n    'year' => ':count лѣто',\n    'y' => ':count лѣто',\n    'a_year' => ':count лѣто',\n\n    'month' => ':count мѣсѧць',\n    'm' => ':count мѣсѧць',\n    'a_month' => ':count мѣсѧць',\n\n    'week' => ':count сєдмица',\n    'w' => ':count сєдмица',\n    'a_week' => ':count сєдмица',\n\n    'day' => ':count дьнь',\n    'd' => ':count дьнь',\n    'a_day' => ':count дьнь',\n\n    'hour' => ':count година',\n    'h' => ':count година',\n    'a_hour' => ':count година',\n\n    'minute' => ':count малъ', // less reliable\n    'min' => ':count малъ', // less reliable\n    'a_minute' => ':count малъ', // less reliable\n\n    'second' => ':count въторъ',\n    's' => ':count въторъ',\n    'a_second' => ':count въторъ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'cv');\n\n/*\n * Authors:\n * - Josh Soref\n * - François B\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count ҫул',\n    'a_year' => 'пӗр ҫул|:count ҫул',\n    'month' => ':count уйӑх',\n    'a_month' => 'пӗр уйӑх|:count уйӑх',\n    'week' => ':count эрне',\n    'a_week' => 'пӗр эрне|:count эрне',\n    'day' => ':count кун',\n    'a_day' => 'пӗр кун|:count кун',\n    'hour' => ':count сехет',\n    'a_hour' => 'пӗр сехет|:count сехет',\n    'minute' => ':count минут',\n    'a_minute' => 'пӗр минут|:count минут',\n    'second' => ':count ҫеккунт',\n    'a_second' => 'пӗр-ик ҫеккунт|:count ҫеккунт',\n    'ago' => ':time каялла',\n    'from_now' => function ($time) {\n        return $time.(preg_match('/сехет$/', $time) ? 'рен' : (preg_match('/ҫул/', $time) ? 'тан' : 'ран'));\n    },\n    'diff_yesterday' => 'Ӗнер',\n    'diff_tomorrow' => 'Ыран',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n        'LLL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n        'LLLL' => 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Паян] LT [сехетре]',\n        'nextDay' => '[Ыран] LT [сехетре]',\n        'nextWeek' => '[Ҫитес] dddd LT [сехетре]',\n        'lastDay' => '[Ӗнер] LT [сехетре]',\n        'lastWeek' => '[Иртнӗ] dddd LT [сехетре]',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number-мӗш',\n    'months' => ['кӑрлач', 'нарӑс', 'пуш', 'ака', 'май', 'ҫӗртме', 'утӑ', 'ҫурла', 'авӑн', 'юпа', 'чӳк', 'раштав'],\n    'months_short' => ['кӑр', 'нар', 'пуш', 'ака', 'май', 'ҫӗр', 'утӑ', 'ҫур', 'авн', 'юпа', 'чӳк', 'раш'],\n    'weekdays' => ['вырсарникун', 'тунтикун', 'ытларикун', 'юнкун', 'кӗҫнерникун', 'эрнекун', 'шӑматкун'],\n    'weekdays_short' => ['выр', 'тун', 'ытл', 'юн', 'кӗҫ', 'эрн', 'шӑм'],\n    'weekdays_min' => ['вр', 'тн', 'ыт', 'юн', 'кҫ', 'эр', 'шм'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' тата '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/cv.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cy.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - JD Isaacks\n * - Daniel Monaghan\n */\nreturn [\n    'year' => '{1}blwyddyn|]1,Inf[:count flynedd',\n    'y' => ':countbl',\n    'month' => '{1}mis|]1,Inf[:count mis',\n    'm' => ':countmi',\n    'week' => ':count wythnos',\n    'w' => ':countw',\n    'day' => '{1}diwrnod|]1,Inf[:count diwrnod',\n    'd' => ':countd',\n    'hour' => '{1}awr|]1,Inf[:count awr',\n    'h' => ':counth',\n    'minute' => '{1}munud|]1,Inf[:count munud',\n    'min' => ':countm',\n    'second' => '{1}ychydig eiliadau|]1,Inf[:count eiliad',\n    's' => ':counts',\n    'ago' => ':time yn ôl',\n    'from_now' => 'mewn :time',\n    'after' => ':time ar ôl',\n    'before' => ':time o\\'r blaen',\n    'diff_yesterday' => 'Ddoe',\n    'diff_tomorrow' => 'Yfory',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Heddiw am] LT',\n        'nextDay' => '[Yfory am] LT',\n        'nextWeek' => 'dddd [am] LT',\n        'lastDay' => '[Ddoe am] LT',\n        'lastWeek' => 'dddd [diwethaf am] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.($number > 20\n            ? (in_array($number, [40, 50, 60, 80, 100]) ? 'fed' : 'ain')\n            : ([\n                '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n                'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed', // 11eg to 20fed\n            ])[$number] ?? ''\n        );\n    },\n    'months' => ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'],\n    'months_short' => ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tach', 'Rhag'],\n    'weekdays' => ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],\n    'weekdays_short' => ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],\n    'weekdays_min' => ['Su', 'Ll', 'Ma', 'Me', 'Ia', 'Gw', 'Sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' a '],\n    'meridiem' => ['yb', 'yh'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/cy.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/da.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Rune Mønnike\n * - François B\n * - codenhagen\n * - JD Isaacks\n * - Jens Herlevsen\n * - Ulrik McArdle (mcardle)\n * - Frederik Sauer (FrittenKeeZ)\n */\nreturn [\n    'year' => ':count år|:count år',\n    'a_year' => 'et år|:count år',\n    'y' => ':count år|:count år',\n    'month' => ':count måned|:count måneder',\n    'a_month' => 'en måned|:count måneder',\n    'm' => ':count mdr.',\n    'week' => ':count uge|:count uger',\n    'a_week' => 'en uge|:count uger',\n    'w' => ':count u.',\n    'day' => ':count dag|:count dage',\n    'a_day' => ':count dag|:count dage',\n    'd' => ':count d.',\n    'hour' => ':count time|:count timer',\n    'a_hour' => 'en time|:count timer',\n    'h' => ':count t.',\n    'minute' => ':count minut|:count minutter',\n    'a_minute' => 'et minut|:count minutter',\n    'min' => ':count min.',\n    'second' => ':count sekund|:count sekunder',\n    'a_second' => 'få sekunder|:count sekunder',\n    's' => ':count s.',\n    'ago' => ':time siden',\n    'from_now' => 'om :time',\n    'after' => ':time efter',\n    'before' => ':time før',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[i dag kl.] LT',\n        'nextDay' => '[i morgen kl.] LT',\n        'nextWeek' => 'på dddd [kl.] LT',\n        'lastDay' => '[i går kl.] LT',\n        'lastWeek' => '[i] dddd[s kl.] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],\n    'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n    'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' og '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/da.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/da.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D. MMM YYYY',\n        'LLL' => 'D. MMMM YYYY HH.mm',\n        'LLLL' => 'dddd [den] D. MMMM YYYY HH.mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dav.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Luma lwa K', 'luma lwa p'],\n    'weekdays' => ['Ituku ja jumwa', 'Kuramuka jimweri', 'Kuramuka kawi', 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'],\n    'weekdays_short' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'],\n    'weekdays_min' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'],\n    'months' => ['Mori ghwa imbiri', 'Mori ghwa kawi', 'Mori ghwa kadadu', 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'],\n    'months_short' => ['Imb', 'Kaw', 'Kad', 'Kan', 'Kas', 'Kar', 'Mfu', 'Wun', 'Ike', 'Iku', 'Imw', 'Iwi'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Michael Hohl\n * - sheriffmarley\n * - dennisoderwald\n * - Timo\n * - Karag2006\n */\nreturn [\n    'year' => ':count Jahr|:count Jahre',\n    'a_year' => 'ein Jahr|:count Jahre',\n    'y' => ':count J.',\n    'month' => ':count Monat|:count Monate',\n    'a_month' => 'ein Monat|:count Monate',\n    'm' => ':count Mon.',\n    'week' => ':count Woche|:count Wochen',\n    'a_week' => 'eine Woche|:count Wochen',\n    'w' => ':count Wo.',\n    'day' => ':count Tag|:count Tage',\n    'a_day' => 'ein Tag|:count Tage',\n    'd' => ':count Tg.',\n    'hour' => ':count Stunde|:count Stunden',\n    'a_hour' => 'eine Stunde|:count Stunden',\n    'h' => ':count Std.',\n    'minute' => ':count Minute|:count Minuten',\n    'a_minute' => 'eine Minute|:count Minuten',\n    'min' => ':count Min.',\n    'second' => ':count Sekunde|:count Sekunden',\n    'a_second' => 'ein paar Sekunden|:count Sekunden',\n    's' => ':count Sek.',\n    'ago' => 'vor :time',\n    'from_now' => 'in :time',\n    'after' => ':time später',\n    'before' => ':time zuvor',\n\n    'year_from_now' => ':count Jahr|:count Jahren',\n    'month_from_now' => ':count Monat|:count Monaten',\n    'week_from_now' => ':count Woche|:count Wochen',\n    'day_from_now' => ':count Tag|:count Tagen',\n    'year_ago' => ':count Jahr|:count Jahren',\n    'month_ago' => ':count Monat|:count Monaten',\n    'week_ago' => ':count Woche|:count Wochen',\n    'day_ago' => ':count Tag|:count Tagen',\n\n    'diff_now' => 'Gerade eben',\n    'diff_yesterday' => 'Gestern',\n    'diff_tomorrow' => 'Heute',\n    'diff_before_yesterday' => 'Vorgestern',\n    'diff_after_tomorrow' => 'Übermorgen',\n\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY HH:mm',\n    ],\n\n    'calendar' => [\n        'sameDay' => '[heute um] LT [Uhr]',\n        'nextDay' => '[morgen um] LT [Uhr]',\n        'nextWeek' => 'dddd [um] LT [Uhr]',\n        'lastDay' => '[gestern um] LT [Uhr]',\n        'lastWeek' => '[letzten] dddd [um] LT [Uhr]',\n        'sameElse' => 'L',\n    ],\n\n    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],\n    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n    'weekdays' => ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],\n    'weekdays_short' => ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n    'weekdays_min' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n    'ordinal' => ':number.',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' und '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - sheriffmarley\n * - Timo\n * - Michael Hohl\n * - Namoshek\n */\nreturn require __DIR__.'/de.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/de.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - sheriffmarley\n * - Timo\n * - Michael Hohl\n */\nreturn array_replace_recursive(require __DIR__.'/de.php', [\n    'weekdays_short' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn require __DIR__.'/de.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Matthias Dieter Wallno:fer libc-locales@sourceware.org\n */\nreturn require __DIR__.'/de.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/de.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/de.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dje.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Subbaahi', 'Zaarikay b'],\n    'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamisi', 'Alzuma', 'Asibti'],\n    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],\n    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],\n    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],\n    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count hari', // less reliable\n    'y' => ':count hari', // less reliable\n    'a_year' => ':count hari', // less reliable\n\n    'week' => ':count alzuma', // less reliable\n    'w' => ':count alzuma', // less reliable\n    'a_week' => ':count alzuma', // less reliable\n\n    'second' => ':count atinni', // less reliable\n    's' => ':count atinni', // less reliable\n    'a_second' => ':count atinni', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/doi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/doi_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat Pune    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'],\n    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'],\n    'weekdays' => ['ऐतबार', 'सोमबार', 'मंगलबर', 'बुधबार', 'बीरबार', 'शुक्करबार', 'श्नीचरबार'],\n    'weekdays_short' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'],\n    'weekdays_min' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['सञं', 'सबेर'],\n\n    'second' => ':count सङार', // less reliable\n    's' => ':count सङार', // less reliable\n    'a_second' => ':count सङार', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dsb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/dsb_DE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Information from Michael Wolf    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'DD. MMMM YYYY',\n        'LLL' => 'DD. MMMM, HH:mm [góź.]',\n        'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [góź.]',\n    ],\n    'months' => ['januara', 'februara', 'měrca', 'apryla', 'maja', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'],\n    'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Maj', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'],\n    'weekdays' => ['Njeźela', 'Pónjeźele', 'Wałtora', 'Srjoda', 'Stwórtk', 'Pětk', 'Sobota'],\n    'weekdays_short' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'],\n    'weekdays_min' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count lěto',\n    'y' => ':count lěto',\n    'a_year' => ':count lěto',\n\n    'month' => ':count mjasec',\n    'm' => ':count mjasec',\n    'a_month' => ':count mjasec',\n\n    'week' => ':count tyźeń',\n    'w' => ':count tyźeń',\n    'a_week' => ':count tyźeń',\n\n    'day' => ':count źeń',\n    'd' => ':count źeń',\n    'a_day' => ':count źeń',\n\n    'hour' => ':count góźina',\n    'h' => ':count góźina',\n    'a_hour' => ':count góźina',\n\n    'minute' => ':count minuta',\n    'min' => ':count minuta',\n    'a_minute' => ':count minuta',\n\n    'second' => ':count drugi',\n    's' => ':count drugi',\n    'a_second' => ':count drugi',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dua.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['idiɓa', 'ebyámu'],\n    'weekdays' => ['éti', 'mɔ́sú', 'kwasú', 'mukɔ́sú', 'ŋgisú', 'ɗónɛsú', 'esaɓasú'],\n    'weekdays_short' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'],\n    'weekdays_min' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'],\n    'months' => ['dimɔ́di', 'ŋgɔndɛ', 'sɔŋɛ', 'diɓáɓá', 'emiasele', 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', 'nyɛtɛki', 'mayésɛ́', 'tiníní', 'eláŋgɛ́'],\n    'months_short' => ['di', 'ŋgɔn', 'sɔŋ', 'diɓ', 'emi', 'esɔ', 'mad', 'diŋ', 'nyɛt', 'may', 'tin', 'elá'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count ma mbu', // less reliable\n    'y' => ':count ma mbu', // less reliable\n    'a_year' => ':count ma mbu', // less reliable\n\n    'month' => ':count myo̱di', // less reliable\n    'm' => ':count myo̱di', // less reliable\n    'a_month' => ':count myo̱di', // less reliable\n\n    'week' => ':count woki', // less reliable\n    'w' => ':count woki', // less reliable\n    'a_week' => ':count woki', // less reliable\n\n    'day' => ':count buńa', // less reliable\n    'd' => ':count buńa', // less reliable\n    'a_day' => ':count buńa', // less reliable\n\n    'hour' => ':count ma awa', // less reliable\n    'h' => ':count ma awa', // less reliable\n    'a_hour' => ':count ma awa', // less reliable\n\n    'minute' => ':count minuti', // less reliable\n    'min' => ':count minuti', // less reliable\n    'a_minute' => ':count minuti', // less reliable\n\n    'second' => ':count maba', // less reliable\n    's' => ':count maba', // less reliable\n    'a_second' => ':count maba', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'dv');\n\n$months = [\n    'ޖެނުއަރީ',\n    'ފެބްރުއަރީ',\n    'މާރިޗު',\n    'އޭޕްރީލު',\n    'މޭ',\n    'ޖޫން',\n    'ޖުލައި',\n    'އޯގަސްޓު',\n    'ސެޕްޓެމްބަރު',\n    'އޮކްޓޯބަރު',\n    'ނޮވެމްބަރު',\n    'ޑިސެމްބަރު',\n];\n\n$weekdays = [\n    'އާދިއްތަ',\n    'ހޯމަ',\n    'އަންގާރަ',\n    'ބުދަ',\n    'ބުރާސްފަތި',\n    'ހުކުރު',\n    'ހޮނިހިރު',\n];\n\n/*\n * Authors:\n * - Josh Soref\n * - Jawish Hameed\n */\nreturn [\n    'year' => ':count '.'އަހަރު',\n    'a_year' => 'އަހަރެއް'.'|:count '.'އަހަރު',\n    'month' => ':count '.'މަސް',\n    'a_month' => 'މަހެއް'.'|:count '.'މަސް',\n    'week' => ':count '.'ހަފްތާ',\n    'a_week' => 'ސިކުންތުކޮޅެއް'.'|:count '.'ހަފްތާ',\n    'day' => ':count '.'ދުވަސް',\n    'a_day' => 'ދުވަހެއް'.'|:count '.'ދުވަސް',\n    'hour' => ':count '.'ގަޑިއިރު',\n    'a_hour' => 'ގަޑިއިރެއް'.'|:count '.'ގަޑިއިރު',\n    'minute' => ':count '.'މިނިޓު',\n    'a_minute' => 'މިނިޓެއް'.'|:count '.'މިނިޓު',\n    'second' => ':count '.'ސިކުންތު',\n    'a_second' => 'ސިކުންތުކޮޅެއް'.'|:count '.'ސިކުންތު',\n    'ago' => 'ކުރިން :time',\n    'from_now' => 'ތެރޭގައި :time',\n    'after' => ':time ފަހުން',\n    'before' => ':time ކުރި',\n    'diff_yesterday' => 'އިއްޔެ',\n    'diff_tomorrow' => 'މާދަމާ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[މިއަދު] LT',\n        'nextDay' => '[މާދަމާ] LT',\n        'nextWeek' => 'dddd LT',\n        'lastDay' => '[އިއްޔެ] LT',\n        'lastWeek' => '[ފާއިތުވި] dddd LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['މކ', 'މފ'],\n    'months' => $months,\n    'months_short' => $months,\n    'weekdays' => $weekdays,\n    'weekdays_short' => $weekdays,\n    'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'],\n    'list' => [', ', ' އަދި '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Ahmed Ali <ajaaibu@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Ahmed Ali\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'dv');\n\n$months = [\n    'ޖެނުއަރީ',\n    'ފެބްރުއަރީ',\n    'މާރިޗު',\n    'އޭޕްރީލު',\n    'މޭ',\n    'ޖޫން',\n    'ޖުލައި',\n    'އޯގަސްޓު',\n    'ސެޕްޓެމްބަރު',\n    'އޮކްޓޯބަރު',\n    'ނޮވެމްބަރު',\n    'ޑިސެމްބަރު',\n];\n\n$weekdays = [\n    'އާދިއްތަ',\n    'ހޯމަ',\n    'އަންގާރަ',\n    'ބުދަ',\n    'ބުރާސްފަތި',\n    'ހުކުރު',\n    'ހޮނިހިރު',\n];\n\nreturn [\n    'year' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',\n    'y' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',\n    'month' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',\n    'm' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',\n    'week' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',\n    'w' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',\n    'day' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',\n    'd' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',\n    'hour' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',\n    'h' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',\n    'minute' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',\n    'min' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',\n    'second' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',\n    's' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',\n    'ago' => ':time ކުރިން',\n    'from_now' => ':time ފަހުން',\n    'after' => ':time ފަހުން',\n    'before' => ':time ކުރި',\n    'diff_yesterday' => 'އިއްޔެ',\n    'diff_tomorrow' => 'މާދަމާ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[މިއަދު] LT',\n        'nextDay' => '[މާދަމާ] LT',\n        'nextWeek' => 'dddd LT',\n        'lastDay' => '[އިއްޔެ] LT',\n        'lastWeek' => '[ފާއިތުވި] dddd LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['މކ', 'މފ'],\n    'months' => $months,\n    'months_short' => $months,\n    'weekdays' => $weekdays,\n    'weekdays_short' => $weekdays,\n    'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'],\n    'list' => [', ', ' އަދި '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dyo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Dimas', 'Teneŋ', 'Talata', 'Alarbay', 'Aramisay', 'Arjuma', 'Sibiti'],\n    'weekdays_short' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'],\n    'weekdays_min' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'],\n    'months' => ['Sanvie', 'Fébirie', 'Mars', 'Aburil', 'Mee', 'Sueŋ', 'Súuyee', 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'],\n    'months_short' => ['Sa', 'Fe', 'Ma', 'Ab', 'Me', 'Su', 'Sú', 'Ut', 'Se', 'Ok', 'No', 'De'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dz.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/dz_BT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sherubtse College    bug-glibc@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'པསྱི་ལོYYཟལMMཚེསDD',\n    ],\n    'months' => ['ཟླ་བ་དང་པ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་ཕ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུནཔ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],\n    'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'],\n    'weekdays' => ['གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་ཕ་', 'གཟའ་པུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་ཕ་', 'གཟའ་ཉི་མ་'],\n    'weekdays_short' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'],\n    'weekdays_min' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ངས་ཆ', 'ཕྱི་ཆ'],\n\n    'year' => ':count ཆརཔ', // less reliable\n    'y' => ':count ཆརཔ', // less reliable\n    'a_year' => ':count ཆརཔ', // less reliable\n\n    'month' => ':count ཟླ་བ', // less reliable\n    'm' => ':count ཟླ་བ', // less reliable\n    'a_month' => ':count ཟླ་བ', // less reliable\n\n    'day' => ':count ཉི', // less reliable\n    'd' => ':count ཉི', // less reliable\n    'a_day' => ':count ཉི', // less reliable\n\n    'second' => ':count ཆ', // less reliable\n    's' => ':count ཆ', // less reliable\n    'a_second' => ':count ཆ', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ebu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['KI', 'UT'],\n    'weekdays' => ['Kiumia', 'Njumatatu', 'Njumaine', 'Njumatano', 'Aramithi', 'Njumaa', 'NJumamothii'],\n    'weekdays_short' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'],\n    'weekdays_min' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'],\n    'months' => ['Mweri wa mbere', 'Mweri wa kaĩri', 'Mweri wa kathatũ', 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', 'Mweri wa ikũmi na Kaĩrĩ'],\n    'months_short' => ['Mbe', 'Kai', 'Kat', 'Kan', 'Gat', 'Gan', 'Mug', 'Knn', 'Ken', 'Iku', 'Imw', 'Igi'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ee.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ŋ', 'ɣ'],\n    'weekdays' => ['kɔsiɖa', 'dzoɖa', 'blaɖa', 'kuɖa', 'yawoɖa', 'fiɖa', 'memleɖa'],\n    'weekdays_short' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'],\n    'weekdays_min' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'],\n    'months' => ['dzove', 'dzodze', 'tedoxe', 'afɔfĩe', 'dama', 'masa', 'siamlɔm', 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'],\n    'months_short' => ['dzv', 'dzd', 'ted', 'afɔ', 'dam', 'mas', 'sia', 'dea', 'any', 'kel', 'ade', 'dzm'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'a [ga] h:mm',\n        'LTS' => 'a [ga] h:mm:ss',\n        'L' => 'M/D/YYYY',\n        'LL' => 'MMM D [lia], YYYY',\n        'LLL' => 'a [ga] h:mm MMMM D [lia] YYYY',\n        'LLLL' => 'a [ga] h:mm dddd, MMMM D [lia] YYYY',\n    ],\n\n    'year' => 'ƒe :count',\n    'y' => 'ƒe :count',\n    'a_year' => 'ƒe :count',\n\n    'month' => 'ɣleti :count',\n    'm' => 'ɣleti :count',\n    'a_month' => 'ɣleti :count',\n\n    'week' => 'kwasiɖa :count',\n    'w' => 'kwasiɖa :count',\n    'a_week' => 'kwasiɖa :count',\n\n    'day' => 'ŋkeke :count',\n    'd' => 'ŋkeke :count',\n    'a_day' => 'ŋkeke :count',\n\n    'hour' => 'gaƒoƒo :count',\n    'h' => 'gaƒoƒo :count',\n    'a_hour' => 'gaƒoƒo :count',\n\n    'minute' => 'miniti :count', // less reliable\n    'min' => 'miniti :count', // less reliable\n    'a_minute' => 'miniti :count', // less reliable\n\n    'second' => 'sɛkɛnd :count', // less reliable\n    's' => 'sɛkɛnd :count', // less reliable\n    'a_second' => 'sɛkɛnd :count', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ee.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'LLL' => 'HH:mm MMMM D [lia] YYYY',\n        'LLLL' => 'HH:mm dddd, MMMM D [lia] YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/el.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Alessandro Di Felice\n * - François B\n * - Tim Fish\n * - Gabriel Monteagudo\n * - JD Isaacks\n * - yiannisdesp\n * - Ilias Kasmeridis (iliaskasm)\n */\nreturn [\n    'year' => ':count χρόνος|:count χρόνια',\n    'a_year' => 'ένας χρόνος|:count χρόνια',\n    'y' => ':count χρ.',\n    'month' => ':count μήνας|:count μήνες',\n    'a_month' => 'ένας μήνας|:count μήνες',\n    'm' => ':count μήν.',\n    'week' => ':count εβδομάδα|:count εβδομάδες',\n    'a_week' => 'μια εβδομάδα|:count εβδομάδες',\n    'w' => ':count εβδ.',\n    'day' => ':count μέρα|:count μέρες',\n    'a_day' => 'μία μέρα|:count μέρες',\n    'd' => ':count μέρ.',\n    'hour' => ':count ώρα|:count ώρες',\n    'a_hour' => 'μία ώρα|:count ώρες',\n    'h' => ':count ώρα|:count ώρες',\n    'minute' => ':count λεπτό|:count λεπτά',\n    'a_minute' => 'ένα λεπτό|:count λεπτά',\n    'min' => ':count λεπ.',\n    'second' => ':count δευτερόλεπτο|:count δευτερόλεπτα',\n    'a_second' => 'λίγα δευτερόλεπτα|:count δευτερόλεπτα',\n    's' => ':count δευ.',\n    'ago' => ':time πριν',\n    'from_now' => 'σε :time',\n    'after' => ':time μετά',\n    'before' => ':time πριν',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm A',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm A',\n    ],\n    'calendar' => [\n        'sameDay' => '[Σήμερα {}] LT',\n        'nextDay' => '[Αύριο {}] LT',\n        'nextWeek' => 'dddd [{}] LT',\n        'lastDay' => '[Χθες {}] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            switch ($current->dayOfWeek) {\n                case 6:\n                    return '[το προηγούμενο] dddd [{}] LT';\n                default:\n                    return '[την προηγούμενη] dddd [{}] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberη',\n    'meridiem' => ['ΠΜ', 'ΜΜ', 'πμ', 'μμ'],\n    'months' => ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', 'Νοεμβρίου', 'Δεκεμβρίου'],\n    'months_standalone' => ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],\n    'months_regexp' => '/D[oD]?[\\s,]+MMMM/',\n    'months_short' => ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'],\n    'weekdays' => ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'],\n    'weekdays_short' => ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'],\n    'weekdays_min' => ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σα'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' και '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Greek Debian Translation Team    bug-glibc@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/el.php', [\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/el.php', [\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Milos Sakovic\n * - Paul\n */\nreturn [\n    'year' => '{1}:count year|{0}:count years|]1,Inf[:count years',\n    'a_year' => '{1}a year|{0}:count years|]1,Inf[:count years',\n    'y' => '{1}:countyr|{0}:countyrs|]1,Inf[:countyrs',\n    'month' => '{1}:count month|{0}:count months|]1,Inf[:count months',\n    'a_month' => '{1}a month|{0}:count months|]1,Inf[:count months',\n    'm' => '{1}:countmo|{0}:countmos|]1,Inf[:countmos',\n    'week' => '{1}:count week|{0}:count weeks|]1,Inf[:count weeks',\n    'a_week' => '{1}a week|{0}:count weeks|]1,Inf[:count weeks',\n    'w' => ':countw',\n    'day' => '{1}:count day|{0}:count days|]1,Inf[:count days',\n    'a_day' => '{1}a day|{0}:count days|]1,Inf[:count days',\n    'd' => ':countd',\n    'hour' => '{1}:count hour|{0}:count hours|]1,Inf[:count hours',\n    'a_hour' => '{1}an hour|{0}:count hours|]1,Inf[:count hours',\n    'h' => ':counth',\n    'minute' => '{1}:count minute|{0}:count minutes|]1,Inf[:count minutes',\n    'a_minute' => '{1}a minute|{0}:count minutes|]1,Inf[:count minutes',\n    'min' => ':countm',\n    'second' => '{1}:count second|{0}:count seconds|]1,Inf[:count seconds',\n    'a_second' => '{1}a few seconds|{0}:count seconds|]1,Inf[:count seconds',\n    's' => ':counts',\n    'ago' => ':time ago',\n    'from_now' => ':time from now',\n    'after' => ':time after',\n    'before' => ':time before',\n    'diff_now' => 'just now',\n    'diff_yesterday' => 'yesterday',\n    'diff_tomorrow' => 'tomorrow',\n    'diff_before_yesterday' => 'before yesterday',\n    'diff_after_tomorrow' => 'after tomorrow',\n    'period_recurrences' => '{1}once|{0}:count times|]1,Inf[:count times',\n    'period_interval' => 'every :interval',\n    'period_start_date' => 'from :date',\n    'period_end_date' => 'to :date',\n    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    'weekdays_min' => ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n    'ordinal' => function ($number) {\n        $lastDigit = $number % 10;\n\n        return $number.(\n            (~~($number % 100 / 10) === 1) ? 'th' : (\n                ($lastDigit === 1) ? 'st' : (\n                    ($lastDigit === 2) ? 'nd' : (\n                        ($lastDigit === 3) ? 'rd' : 'th'\n                    )\n                )\n            )\n        );\n    },\n    'list' => [', ', ' and '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_001.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_150.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.  bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - François B\n * - Mayank Badola\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm A',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm A',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Zhan Tong Zhang\n * - Mayank Badola\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'MMMM D, YYYY',\n        'LLL' => 'MMMM D, YYYY h:mm A',\n        'LLLL' => 'dddd, MMMM D, YYYY h:mm A',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - NehaGautam\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Danish Standards Association  bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Mayank Badola\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Martin McWhorter\n * - François B\n * - Chris Cartlidge\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Yoav Amit\n * - François B\n * - Mayank Badola\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YY',\n        'LL' => 'MMMM DD, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'dddd, YYYY MMMM DD HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Mayank Badola\n * - Luke McGregor\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm A',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm A',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'from_now' => 'in :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_US.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YY',\n        'LL' => 'MMMM DD, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - ANLoc Martin Benjamin locales@africanlocalization.net\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/en.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/eo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - Mia Nordentoft\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count jaro|:count jaroj',\n    'a_year' => 'jaro|:count jaroj',\n    'y' => ':count j.',\n    'month' => ':count monato|:count monatoj',\n    'a_month' => 'monato|:count monatoj',\n    'm' => ':count mo.',\n    'week' => ':count semajno|:count semajnoj',\n    'a_week' => 'semajno|:count semajnoj',\n    'w' => ':count sem.',\n    'day' => ':count tago|:count tagoj',\n    'a_day' => 'tago|:count tagoj',\n    'd' => ':count t.',\n    'hour' => ':count horo|:count horoj',\n    'a_hour' => 'horo|:count horoj',\n    'h' => ':count h.',\n    'minute' => ':count minuto|:count minutoj',\n    'a_minute' => 'minuto|:count minutoj',\n    'min' => ':count min.',\n    'second' => ':count sekundo|:count sekundoj',\n    'a_second' => 'sekundoj|:count sekundoj',\n    's' => ':count sek.',\n    'ago' => 'antaŭ :time',\n    'from_now' => 'post :time',\n    'after' => ':time poste',\n    'before' => ':time antaŭe',\n    'diff_yesterday' => 'Hieraŭ',\n    'diff_tomorrow' => 'Morgaŭ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'D[-a de] MMMM, YYYY',\n        'LLL' => 'D[-a de] MMMM, YYYY HH:mm',\n        'LLLL' => 'dddd, [la] D[-a de] MMMM, YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hodiaŭ je] LT',\n        'nextDay' => '[Morgaŭ je] LT',\n        'nextWeek' => 'dddd [je] LT',\n        'lastDay' => '[Hieraŭ je] LT',\n        'lastWeek' => '[pasinta] dddd [je] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numbera',\n    'meridiem' => ['a.t.m.', 'p.t.m.'],\n    'months' => ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aŭg', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', 'vendredo', 'sabato'],\n    'weekdays_short' => ['dim', 'lun', 'mard', 'merk', 'ĵaŭ', 'ven', 'sab'],\n    'weekdays_min' => ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' kaj '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - kostas\n * - François B\n * - Tim Fish\n * - Claire Coloma\n * - Steven Heinrich\n * - JD Isaacks\n * - Raphael Amorim\n * - Jorge Y. Castillo\n * - Víctor Díaz\n * - Diego\n * - Sebastian Thierer\n * - quinterocesar\n * - Daniel Commesse Liévanos (danielcommesse)\n */\nreturn [\n    'year' => ':count año|:count años',\n    'a_year' => 'un año|:count años',\n    'y' => ':count año|:count años',\n    'month' => ':count mes|:count meses',\n    'a_month' => 'un mes|:count meses',\n    'm' => ':count mes|:count meses',\n    'week' => ':count semana|:count semanas',\n    'a_week' => 'una semana|:count semanas',\n    'w' => ':countsem',\n    'day' => ':count día|:count días',\n    'a_day' => 'un día|:count días',\n    'd' => ':countd',\n    'hour' => ':count hora|:count horas',\n    'a_hour' => 'una hora|:count horas',\n    'h' => ':counth',\n    'minute' => ':count minuto|:count minutos',\n    'a_minute' => 'un minuto|:count minutos',\n    'min' => ':countm',\n    'second' => ':count segundo|:count segundos',\n    'a_second' => 'unos segundos|:count segundos',\n    's' => ':counts',\n    'ago' => 'hace :time',\n    'from_now' => 'en :time',\n    'after' => ':time después',\n    'before' => ':time antes',\n    'diff_now' => 'ahora mismo',\n    'diff_yesterday' => 'ayer',\n    'diff_tomorrow' => 'mañana',\n    'diff_before_yesterday' => 'antier',\n    'diff_after_tomorrow' => 'pasado mañana',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D [de] MMMM [de] YYYY',\n        'LLL' => 'D [de] MMMM [de] YYYY H:mm',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[hoy a la'.($current->hour !== 1 ? 's' : '').'] LT';\n        },\n        'nextDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[mañana a la'.($current->hour !== 1 ? 's' : '').'] LT';\n        },\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return 'dddd [a la'.($current->hour !== 1 ? 's' : '').'] LT';\n        },\n        'lastDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[ayer a la'.($current->hour !== 1 ? 's' : '').'] LT';\n        },\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return '[el] dddd [pasado a la'.($current->hour !== 1 ? 's' : '').'] LT';\n        },\n        'sameElse' => 'L',\n    ],\n    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],\n    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n    'mmm_suffix' => '.',\n    'ordinal' => ':numberº',\n    'weekdays' => ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],\n    'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mié.', 'jue.', 'vie.', 'sáb.'],\n    'weekdays_min' => ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' y '],\n    'meridiem' => ['a. m.', 'p. m.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_419.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - kostas\n * - François B\n * - Tim Fish\n * - Chiel Robben\n * - Claire Coloma\n * - Steven Heinrich\n * - JD Isaacks\n * - Raphael Amorim\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'diff_before_yesterday' => 'anteayer',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'LLL' => 'D [de] MMMM [de] YYYY h:mm A',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm A',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn require __DIR__.'/es.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/M/yy',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D [de] MMMM [de] YYYY h:mm a',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],\n    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_US.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - Josh Soref\n * - Jørn Ølmheim\n * - Craig Patik\n * - bustta\n * - François B\n * - Tim Fish\n * - Claire Coloma\n * - Steven Heinrich\n * - JD Isaacks\n * - Raphael Amorim\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'diff_before_yesterday' => 'anteayer',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'MM/DD/YYYY',\n        'LL' => 'MMMM [de] D [de] YYYY',\n        'LLL' => 'MMMM [de] D [de] YYYY h:mm A',\n        'LLLL' => 'dddd, MMMM [de] D [de] YYYY h:mm A',\n    ],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'setiembre', 'octubre', 'noviembre', 'diciembre'],\n    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'set', 'oct', 'nov', 'dic'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/es.php', [\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/et.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Andres Ivanov\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Juanito Fatas\n * - RM87\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Esko Lehtme\n * - Mart Karu\n * - Nicolás Hock Isaza\n * - Kevin Valdek\n * - Zahhar Kirillov\n * - João Magalhães\n * - Ingmar\n */\nreturn [\n    'year' => ':count aasta|:count aastat',\n    'y' => ':count aasta|:count aastat',\n    'month' => ':count kuu|:count kuud',\n    'm' => ':count kuu|:count kuud',\n    'week' => ':count nädal|:count nädalat',\n    'w' => ':count nädal|:count nädalat',\n    'day' => ':count päev|:count päeva',\n    'd' => ':count päev|:count päeva',\n    'hour' => ':count tund|:count tundi',\n    'h' => ':count tund|:count tundi',\n    'minute' => ':count minut|:count minutit',\n    'min' => ':count minut|:count minutit',\n    'second' => ':count sekund|:count sekundit',\n    's' => ':count sekund|:count sekundit',\n    'ago' => ':time tagasi',\n    'from_now' => ':time pärast',\n    'after' => ':time pärast',\n    'before' => ':time enne',\n    'year_from_now' => ':count aasta',\n    'month_from_now' => ':count kuu',\n    'week_from_now' => ':count nädala',\n    'day_from_now' => ':count päeva',\n    'hour_from_now' => ':count tunni',\n    'minute_from_now' => ':count minuti',\n    'second_from_now' => ':count sekundi',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'diff_now' => 'nüüd',\n    'diff_yesterday' => 'eile',\n    'diff_tomorrow' => 'homme',\n    'diff_before_yesterday' => 'üleeile',\n    'diff_after_tomorrow' => 'ülehomme',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'DD. MMMM YYYY',\n        'LLL' => 'DD. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, DD. MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[täna] LT',\n        'nextDay' => '[homme] LT',\n        'lastDay' => '[eile] LT',\n        'nextWeek' => 'dddd LT',\n        'lastWeek' => '[eelmine] dddd LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'],\n    'months_short' => ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'],\n    'weekdays' => ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev'],\n    'weekdays_short' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'],\n    'weekdays_min' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'],\n    'list' => [', ', ' ja '],\n    'meridiem' => ['enne lõunat', 'pärast lõunat'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/et.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/eu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - JD Isaacks\n */\nreturn [\n    'year' => 'urte bat|:count urte',\n    'y' => 'Urte 1|:count urte',\n    'month' => 'hilabete bat|:count hilabete',\n    'm' => 'Hile 1|:count hile',\n    'week' => 'Aste 1|:count aste',\n    'w' => 'Aste 1|:count aste',\n    'day' => 'egun bat|:count egun',\n    'd' => 'Egun 1|:count egun',\n    'hour' => 'ordu bat|:count ordu',\n    'h' => 'Ordu 1|:count ordu',\n    'minute' => 'minutu bat|:count minutu',\n    'min' => 'Minutu 1|:count minutu',\n    'second' => 'segundo batzuk|:count segundo',\n    's' => 'Segundu 1|:count segundu',\n    'ago' => 'duela :time',\n    'from_now' => ':time barru',\n    'after' => ':time geroago',\n    'before' => ':time lehenago',\n    'diff_yesterday' => 'atzo',\n    'diff_tomorrow' => 'bihar',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'YYYY[ko] MMMM[ren] D[a]',\n        'LLL' => 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n        'LLLL' => 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[gaur] LT[etan]',\n        'nextDay' => '[bihar] LT[etan]',\n        'nextWeek' => 'dddd LT[etan]',\n        'lastDay' => '[atzo] LT[etan]',\n        'lastWeek' => '[aurreko] dddd LT[etan]',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'],\n    'months_short' => ['urt.', 'ots.', 'mar.', 'api.', 'mai.', 'eka.', 'uzt.', 'abu.', 'ira.', 'urr.', 'aza.', 'abe.'],\n    'weekdays' => ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', 'ostirala', 'larunbata'],\n    'weekdays_short' => ['ig.', 'al.', 'ar.', 'az.', 'og.', 'ol.', 'lr.'],\n    'weekdays_min' => ['ig', 'al', 'ar', 'az', 'og', 'ol', 'lr'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' eta '],\n    'meridiem' => ['g', 'a'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/eu.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ewo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['kíkíríg', 'ngəgógəle'],\n    'weekdays' => ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ məlú mə́bɛ̌', 'sɔ́ndɔ məlú mə́lɛ́', 'sɔ́ndɔ məlú mə́nyi', 'fúladé', 'séradé'],\n    'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'],\n    'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'],\n    'months' => ['ngɔn osú', 'ngɔn bɛ̌', 'ngɔn lála', 'ngɔn nyina', 'ngɔn tána', 'ngɔn saməna', 'ngɔn zamgbála', 'ngɔn mwom', 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', 'ngɔn awóm ai bɛ̌'],\n    'months_short' => ['ngo', 'ngb', 'ngl', 'ngn', 'ngt', 'ngs', 'ngz', 'ngm', 'nge', 'nga', 'ngad', 'ngab'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    // Too unreliable\n    /*\n    'year' => ':count mbu', // less reliable\n    'y' => ':count mbu', // less reliable\n    'a_year' => ':count mbu', // less reliable\n\n    'month' => ':count ngòn', // less reliable\n    'm' => ':count ngòn', // less reliable\n    'a_month' => ':count ngòn', // less reliable\n\n    'week' => ':count mësë', // less reliable\n    'w' => ':count mësë', // less reliable\n    'a_week' => ':count mësë', // less reliable\n\n    'day' => ':count mësë', // less reliable\n    'd' => ':count mësë', // less reliable\n    'a_day' => ':count mësë', // less reliable\n\n    'hour' => ':count awola', // less reliable\n    'h' => ':count awola', // less reliable\n    'a_hour' => ':count awola', // less reliable\n\n    'minute' => ':count awola', // less reliable\n    'min' => ':count awola', // less reliable\n    'a_minute' => ':count awola', // less reliable\n    */\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Josh Soref\n * - François B\n * - Nasser Ghiasi\n * - JD Isaacks\n * - Hossein Jabbari\n * - nimamo\n * - hafezdivandari\n */\nreturn [\n    'year' => ':count سال',\n    'a_year' => 'یک سال'.'|:count '.'سال',\n    'y' => ':count سال',\n    'month' => ':count ماه',\n    'a_month' => 'یک ماه'.'|:count '.'ماه',\n    'm' => ':count ماه',\n    'week' => ':count هفته',\n    'a_week' => 'یک هفته'.'|:count '.'هفته',\n    'w' => ':count هفته',\n    'day' => ':count روز',\n    'a_day' => 'یک روز'.'|:count '.'روز',\n    'd' => ':count روز',\n    'hour' => ':count ساعت',\n    'a_hour' => 'یک دقیقهیک ساعت'.'|:count '.'ساعت',\n    'h' => ':count ساعت',\n    'minute' => ':count دقیقه',\n    'a_minute' => 'یک دقیقه'.'|:count '.'دقیقه',\n    'min' => ':count دقیقه',\n    'second' => ':count ثانیه|چند ثانیه',\n    's' => ':count ثانیه',\n    'ago' => ':time پیش',\n    'from_now' => 'در :time',\n    'after' => ':time پس از',\n    'before' => ':time پیش از',\n    'formats' => [\n        'LT' => 'OH:Om',\n        'LTS' => 'OH:Om:Os',\n        'L' => 'OD/OM/OY',\n        'LL' => 'OD MMMM OY',\n        'LLL' => 'OD MMMM OY OH:Om',\n        'LLLL' => 'dddd, OD MMMM OY OH:Om',\n    ],\n    'calendar' => [\n        'sameDay' => '[امروز ساعت] LT',\n        'nextDay' => '[فردا ساعت] LT',\n        'nextWeek' => 'dddd [ساعت] LT',\n        'lastDay' => '[دیروز ساعت] LT',\n        'lastWeek' => 'dddd [پیش] [ساعت] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':timeم',\n    'meridiem' => ['قبل از ظهر', 'بعد از ظهر'],\n    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],\n    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],\n    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n    'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n    'weekdays_min' => ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'list' => ['، ', ' و '],\n    'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'],\n    'months_short_standalone' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],\n    'weekend' => [5, 5],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fa.php', [\n    'meridiem' => ['ق', 'ب'],\n    'weekend' => [4, 5],\n    'formats' => [\n        'L' => 'OY/OM/OD',\n        'LL' => 'OD MMM OY',\n        'LLL' => 'OD MMMM OY،‏ H:mm',\n        'LLLL' => 'dddd OD MMMM OY،‏ H:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fa.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ff.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'months' => ['siilo', 'colte', 'mbooy', 'seeɗto', 'duujal', 'korse', 'morso', 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'],\n    'months_short' => ['sii', 'col', 'mbo', 'see', 'duu', 'kor', 'mor', 'juk', 'slt', 'yar', 'jol', 'bow'],\n    'weekdays' => ['dewo', 'aaɓnde', 'mawbaare', 'njeslaare', 'naasaande', 'mawnde', 'hoore-biir'],\n    'weekdays_short' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'],\n    'weekdays_min' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['subaka', 'kikiiɗe'],\n\n    'year' => ':count baret', // less reliable\n    'y' => ':count baret', // less reliable\n    'a_year' => ':count baret', // less reliable\n\n    'month' => ':count lewru', // less reliable\n    'm' => ':count lewru', // less reliable\n    'a_month' => ':count lewru', // less reliable\n\n    'week' => ':count naange', // less reliable\n    'w' => ':count naange', // less reliable\n    'a_week' => ':count naange', // less reliable\n\n    'day' => ':count dian', // less reliable\n    'd' => ':count dian', // less reliable\n    'a_day' => ':count dian', // less reliable\n\n    'hour' => ':count montor', // less reliable\n    'h' => ':count montor', // less reliable\n    'a_hour' => ':count montor', // less reliable\n\n    'minute' => ':count tokossuoum', // less reliable\n    'min' => ':count tokossuoum', // less reliable\n    'a_minute' => ':count tokossuoum', // less reliable\n\n    'second' => ':count tenen', // less reliable\n    's' => ':count tenen', // less reliable\n    'a_second' => ':count tenen', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ff.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ff.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ff.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pular-Fulfulde.org Ibrahima Sarr admin@pulaar-fulfulde.org\n */\nreturn require __DIR__.'/ff.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Janne Warén\n * - digitalfrost\n * - Tsutomu Kuroda\n * - Roope Salmi\n * - tjku\n * - Max Melentiev\n * - Sami Haahtinen\n * - Teemu Leisti\n * - Artem Ignatyev\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Robert Bjarnason\n * - Aaron Patterson\n * - Nicolás Hock Isaza\n * - Tom Hughes\n * - Sven Fuchs\n * - Petri Kivikangas\n * - Nizar Jouini\n * - Marko Seppae\n * - Tomi Mynttinen (Pikseli)\n */\nreturn [\n    'year' => ':count vuosi|:count vuotta',\n    'y' => ':count v',\n    'month' => ':count kuukausi|:count kuukautta',\n    'm' => ':count kk',\n    'week' => ':count viikko|:count viikkoa',\n    'w' => ':count vk',\n    'day' => ':count päivä|:count päivää',\n    'd' => ':count pv',\n    'hour' => ':count tunti|:count tuntia',\n    'h' => ':count t',\n    'minute' => ':count minuutti|:count minuuttia',\n    'min' => ':count min',\n    'second' => ':count sekunti|:count sekuntia',\n    's' => ':count s',\n    'ago' => ':time sitten',\n    'from_now' => ':time tästä hetkestä',\n    'after' => ':time sen jälkeen',\n    'before' => ':time ennen',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' ja '],\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm:ss',\n        'L' => 'D.M.YYYY',\n        'LL' => 'dddd D. MMMM[ta] YYYY',\n        'LLL' => 'D.MM. HH.mm',\n        'LLLL' => 'D. MMMM[ta] YYYY HH.mm',\n    ],\n    'weekdays' => ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'],\n    'weekdays_short' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],\n    'weekdays_min' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],\n    'months' => ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'],\n    'months_short' => ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],\n    'meridiem' => ['aamupäivä', 'iltapäivä'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fi.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fil.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/fil_PH.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Rene Torres Rene Torres, Pablo Saratxaga rgtorre@rocketmail.com, pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'MM/DD/YY',\n    ],\n    'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'],\n    'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'],\n    'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkoles', 'Huwebes', 'Biyernes', 'Sabado'],\n    'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],\n    'weekdays_min' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['N.U.', 'N.H.'],\n\n    'year' => ':count gulang',\n    'y' => ':count gulang',\n    'a_year' => ':count gulang',\n\n    'month' => ':count buwan',\n    'm' => ':count buwan',\n    'a_month' => ':count buwan',\n\n    'week' => ':count linggo',\n    'w' => ':count linggo',\n    'a_week' => ':count linggo',\n\n    'day' => ':count araw',\n    'd' => ':count araw',\n    'a_day' => ':count araw',\n\n    'hour' => ':count oras',\n    'h' => ':count oras',\n    'a_hour' => ':count oras',\n\n    'minute' => ':count minuto',\n    'min' => ':count minuto',\n    'a_minute' => ':count minuto',\n\n    'second' => ':count ulit',\n    's' => ':count ulit',\n    'a_second' => ':count ulit',\n\n    'ago' => ':time ang nakalipas',\n    'from_now' => 'sa :time',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kristian Sakarisson\n * - François B\n * - JD Isaacks\n * - Sverri Mohr Olsen\n */\nreturn [\n    'year' => 'eitt ár|:count ár',\n    'y' => ':count ár|:count ár',\n    'month' => 'ein mánaði|:count mánaðir',\n    'm' => ':count mánaður|:count mánaðir',\n    'week' => ':count vika|:count vikur',\n    'w' => ':count vika|:count vikur',\n    'day' => 'ein dagur|:count dagar',\n    'd' => ':count dag|:count dagar',\n    'hour' => 'ein tími|:count tímar',\n    'h' => ':count tími|:count tímar',\n    'minute' => 'ein minutt|:count minuttir',\n    'min' => ':count minutt|:count minuttir',\n    'second' => 'fá sekund|:count sekundir',\n    's' => ':count sekund|:count sekundir',\n    'ago' => ':time síðani',\n    'from_now' => 'um :time',\n    'after' => ':time aftaná',\n    'before' => ':time áðrenn',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D. MMMM, YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Í dag kl.] LT',\n        'nextDay' => '[Í morgin kl.] LT',\n        'nextWeek' => 'dddd [kl.] LT',\n        'lastDay' => '[Í gjár kl.] LT',\n        'lastWeek' => '[síðstu] dddd [kl] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'mars', 'apríl', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['sunnudagur', 'mánadagur', 'týsdagur', 'mikudagur', 'hósdagur', 'fríggjadagur', 'leygardagur'],\n    'weekdays_short' => ['sun', 'mán', 'týs', 'mik', 'hós', 'frí', 'ley'],\n    'weekdays_min' => ['su', 'má', 'tý', 'mi', 'hó', 'fr', 'le'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' og '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fo.php', [\n    'formats' => [\n        'L' => 'DD.MM.yy',\n        'LL' => 'DD.MM.YYYY',\n        'LLL' => 'D. MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY, HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fo.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Dieter Sting\n * - François B\n * - Maxime VALY\n * - JD Isaacks\n * - Dieter Sting\n * - François B\n * - JD Isaacks\n * - Sebastian Thierer\n * - Fastfuel\n */\nreturn [\n    'year' => ':count an|:count ans',\n    'a_year' => 'un an|:count ans',\n    'y' => ':count an|:count ans',\n    'month' => ':count mois|:count mois',\n    'a_month' => 'un mois|:count mois',\n    'm' => ':count mois',\n    'week' => ':count semaine|:count semaines',\n    'a_week' => 'une semaine|:count semaines',\n    'w' => ':count sem.',\n    'day' => ':count jour|:count jours',\n    'a_day' => 'un jour|:count jours',\n    'd' => ':count j',\n    'hour' => ':count heure|:count heures',\n    'a_hour' => 'une heure|:count heures',\n    'h' => ':count h',\n    'minute' => ':count minute|:count minutes',\n    'a_minute' => 'une minute|:count minutes',\n    'min' => ':count min',\n    'second' => ':count seconde|:count secondes',\n    'a_second' => 'quelques secondes|:count secondes',\n    's' => ':count s',\n    'ago' => 'il y a :time',\n    'from_now' => 'dans :time',\n    'after' => ':time après',\n    'before' => ':time avant',\n    'diff_now' => 'à l\\'instant',\n    'diff_yesterday' => 'hier',\n    'diff_tomorrow' => 'demain',\n    'diff_before_yesterday' => 'avant-hier',\n    'diff_after_tomorrow' => 'après-demain',\n    'period_recurrences' => ':count fois',\n    'period_interval' => 'tous les :interval',\n    'period_start_date' => 'de :date',\n    'period_end_date' => 'à :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Aujourd’hui à] LT',\n        'nextDay' => '[Demain à] LT',\n        'nextWeek' => 'dddd [à] LT',\n        'lastDay' => '[Hier à] LT',\n        'lastWeek' => 'dddd [dernier à] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],\n    'months_short' => ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n    'weekdays' => ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],\n    'weekdays_short' => ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n    'weekdays_min' => ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            // In french, only the first has be ordinal, other number remains cardinal\n            // @link https://fr.wikihow.com/%C3%A9crire-la-date-en-fran%C3%A7ais\n            case 'D':\n                return $number.($number === 1 ? 'er' : '');\n\n            default:\n            case 'M':\n            case 'Q':\n            case 'DDD':\n            case 'd':\n                return $number.($number === 1 ? 'er' : 'e');\n\n            // Words with feminine grammatical gender: semaine\n            case 'w':\n            case 'W':\n                return $number.($number === 1 ? 're' : 'e');\n        }\n    },\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' et '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Dieter Sting\n * - François B\n * - Maxime VALY\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Dieter Sting\n * - François B\n * - Gaspard Bucher\n * - Maxime VALY\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'meridiem' => ['mat.', 'soir'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'first_day_of_week' => 6,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'weekend' => [5, 6],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fr.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/fr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fur.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/fur_IT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD. MM. YY',\n        'LL' => 'DD di MMMM dal YYYY',\n        'LLL' => 'DD di MMM HH:mm',\n        'LLLL' => 'DD di MMMM dal YYYY HH:mm',\n    ],\n    'months' => ['zenâr', 'fevrâr', 'març', 'avrîl', 'mai', 'jugn', 'lui', 'avost', 'setembar', 'otubar', 'novembar', 'dicembar'],\n    'months_short' => ['zen', 'fev', 'mar', 'avr', 'mai', 'jug', 'lui', 'avo', 'set', 'otu', 'nov', 'dic'],\n    'weekdays' => ['domenie', 'lunis', 'martars', 'miercus', 'joibe', 'vinars', 'sabide'],\n    'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'],\n    'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'year' => ':count an',\n    'month' => ':count mês',\n    'week' => ':count setemane',\n    'day' => ':count zornade',\n    'hour' => ':count ore',\n    'minute' => ':count minût',\n    'second' => ':count secont',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fy.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Tim Fish\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count jier|:count jierren',\n    'a_year' => 'ien jier|:count jierren',\n    'y' => ':count j',\n    'month' => ':count moanne|:count moannen',\n    'a_month' => 'ien moanne|:count moannen',\n    'm' => ':count moa.',\n    'week' => ':count wike|:count wiken',\n    'a_week' => 'in wike|:count wiken',\n    'a' => ':count w.',\n    'day' => ':count dei|:count dagen',\n    'a_day' => 'ien dei|:count dagen',\n    'd' => ':count d.',\n    'hour' => ':count oere|:count oeren',\n    'a_hour' => 'ien oere|:count oeren',\n    'h' => ':count o.',\n    'minute' => ':count minút|:count minuten',\n    'a_minute' => 'ien minút|:count minuten',\n    'min' => ':count min.',\n    'second' => ':count sekonde|:count sekonden',\n    'a_second' => 'in pear sekonden|:count sekonden',\n    's' => ':count s.',\n    'ago' => ':time lyn',\n    'from_now' => 'oer :time',\n    'diff_yesterday' => 'juster',\n    'diff_tomorrow' => 'moarn',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[hjoed om] LT',\n        'nextDay' => '[moarn om] LT',\n        'nextWeek' => 'dddd [om] LT',\n        'lastDay' => '[juster om] LT',\n        'lastWeek' => '[ôfrûne] dddd [om] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');\n    },\n    'months' => ['jannewaris', 'febrewaris', 'maart', 'april', 'maaie', 'juny', 'july', 'augustus', 'septimber', 'oktober', 'novimber', 'desimber'],\n    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n    'mmm_suffix' => '.',\n    'weekdays' => ['snein', 'moandei', 'tiisdei', 'woansdei', 'tongersdei', 'freed', 'sneon'],\n    'weekdays_short' => ['si.', 'mo.', 'ti.', 'wo.', 'to.', 'fr.', 'so.'],\n    'weekdays_min' => ['Si', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'So'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' en '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'],\n    'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'],\n    'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'],\n    'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],\n    'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/fy.php', [\n    'formats' => [\n        'L' => 'DD-MM-YY',\n    ],\n    'months' => ['Jannewaris', 'Febrewaris', 'Maart', 'April', 'Maaie', 'Juny', 'July', 'Augustus', 'Septimber', 'Oktober', 'Novimber', 'Desimber'],\n    'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Snein', 'Moandei', 'Tiisdei', 'Woansdei', 'Tongersdei', 'Freed', 'Sneon'],\n    'weekdays_short' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'],\n    'weekdays_min' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ga.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Thanks to André Silva : https://github.com/askpt\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'ga');\n\nreturn [\n    'year' => ':count bliain',\n    'a_year' => 'bliain|:count bliain',\n    'y' => ':countb',\n    'month' => ':count mí',\n    'a_month' => 'mí|:count mí',\n    'm' => ':countm',\n    'week' => ':count sheachtain',\n    'a_week' => 'sheachtain|:count sheachtain',\n    'w' => ':countsh',\n    'day' => ':count lá',\n    'a_day' => 'lá|:count lá',\n    'd' => ':countl',\n    'hour' => ':count uair an chloig',\n    'a_hour' => 'uair an chloig|:count uair an chloig',\n    'h' => ':countu',\n    'minute' => ':count nóiméad',\n    'a_minute' => 'nóiméad|:count nóiméad',\n    'min' => ':countn',\n    'second' => ':count soicind',\n    'a_second' => 'cúpla soicind|:count soicind',\n    's' => ':countso',\n    'ago' => ':time ó shin',\n    'from_now' => 'i :time',\n    'after' => ':time tar éis',\n    'before' => ':time roimh',\n    'diff_yesterday' => 'inné',\n    'diff_tomorrow' => 'amárach',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Inniu ag] LT',\n        'nextDay' => '[Amárach ag] LT',\n        'nextWeek' => 'dddd [ag] LT',\n        'lastDay' => '[Inné aig] LT',\n        'lastWeek' => 'dddd [seo caite] [ag] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'],\n    'months_short' => ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'],\n    'weekdays' => ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'],\n    'weekdays_short' => ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'],\n    'weekdays_min' => ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'],\n    'ordinal' => function ($number) {\n        return $number.($number === 1 ? 'd' : $number % 10 === 2 ? 'na' : 'mh');\n    },\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' agus '],\n    'meridiem' => ['r.n.', 'i.n.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ga.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gd.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'gd');\n\n/*\n * Authors:\n * - François B\n * - Jon Ashdown\n */\nreturn [\n    'year' => ':count bliadhna',\n    'a_year' => 'bliadhna|:count bliadhna',\n    'y' => ':count b.',\n    'month' => ':count mìosan',\n    'a_month' => 'mìos|:count mìosan',\n    'm' => ':count ms.',\n    'week' => ':count seachdainean',\n    'a_week' => 'seachdain|:count seachdainean',\n    'w' => ':count s.',\n    'day' => ':count latha',\n    'a_day' => 'latha|:count latha',\n    'd' => ':count l.',\n    'hour' => ':count uairean',\n    'a_hour' => 'uair|:count uairean',\n    'h' => ':count u.',\n    'minute' => ':count mionaidean',\n    'a_minute' => 'mionaid|:count mionaidean',\n    'min' => ':count md.',\n    'second' => ':count diogan',\n    'a_second' => 'beagan diogan|:count diogan',\n    's' => ':count d.',\n    'ago' => 'bho chionn :time',\n    'from_now' => 'ann an :time',\n    'diff_yesterday' => 'An-dè',\n    'diff_tomorrow' => 'A-màireach',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[An-diugh aig] LT',\n        'nextDay' => '[A-màireach aig] LT',\n        'nextWeek' => 'dddd [aig] LT',\n        'lastDay' => '[An-dè aig] LT',\n        'lastWeek' => 'dddd [seo chaidh] [aig] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.($number === 1 ? 'd' : ($number % 10 === 2 ? 'na' : 'mh'));\n    },\n    'months' => ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],\n    'months_short' => ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n    'weekdays' => ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n    'weekdays_short' => ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n    'weekdays_min' => ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' agus '],\n    'meridiem' => ['m', 'f'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/gd.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gez.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/gez_ER.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባት', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'],\n    'months_short' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባ', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'],\n    'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'],\n    'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],\n    'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ጽባሕ', 'ምሴት'],\n\n    'month' => ':count ወርሕ', // less reliable\n    'm' => ':count ወርሕ', // less reliable\n    'a_month' => ':count ወርሕ', // less reliable\n\n    'week' => ':count ሰብዑ', // less reliable\n    'w' => ':count ሰብዑ', // less reliable\n    'a_week' => ':count ሰብዑ', // less reliable\n\n    'hour' => ':count አንትሙ', // less reliable\n    'h' => ':count አንትሙ', // less reliable\n    'a_hour' => ':count አንትሙ', // less reliable\n\n    'minute' => ':count ንኡስ', // less reliable\n    'min' => ':count ንኡስ', // less reliable\n    'a_minute' => ':count ንኡስ', // less reliable\n\n    'year' => ':count ዓመት',\n    'y' => ':count ዓመት',\n    'a_year' => ':count ዓመት',\n\n    'day' => ':count ዕለት',\n    'd' => ':count ዕለት',\n    'a_day' => ':count ዕለት',\n\n    'second' => ':count ካልእ',\n    's' => ':count ካልእ',\n    'a_second' => ':count ካልእ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],\n    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],\n    'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'],\n    'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],\n    'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ጽባሕ', 'ምሴት'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - François B\n * - Fidel Pita\n * - JD Isaacks\n * - Diego Vilariño\n * - Sebastian Thierer\n */\nreturn [\n    'year' => ':count ano|:count anos',\n    'a_year' => 'un ano|:count anos',\n    'y' => ':count a.',\n    'month' => ':count mes|:count meses',\n    'a_month' => 'un mes|:count meses',\n    'm' => ':count mes.',\n    'week' => ':count semana|:count semanas',\n    'a_week' => 'unha semana|:count semanas',\n    'w' => ':count sem.',\n    'day' => ':count día|:count días',\n    'a_day' => 'un día|:count días',\n    'd' => ':count d.',\n    'hour' => ':count hora|:count horas',\n    'a_hour' => 'unha hora|:count horas',\n    'h' => ':count h.',\n    'minute' => ':count minuto|:count minutos',\n    'a_minute' => 'un minuto|:count minutos',\n    'min' => ':count min.',\n    'second' => ':count segundo|:count segundos',\n    'a_second' => 'uns segundos|:count segundos',\n    's' => ':count seg.',\n    'ago' => 'hai :time',\n    'from_now' => function ($time) {\n        if (substr($time, 0, 2) === 'un') {\n            return \"n$time\";\n        }\n\n        return \"en $time\";\n    },\n    'after' => ':time despois',\n    'before' => ':time antes',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D [de] MMMM [de] YYYY',\n        'LLL' => 'D [de] MMMM [de] YYYY H:mm',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[hoxe '.($current->hour !== 1 ? 'ás' : 'á').'] LT';\n        },\n        'nextDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[mañá '.($current->hour !== 1 ? 'ás' : 'á').'] LT';\n        },\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return 'dddd ['.($current->hour !== 1 ? 'ás' : 'á').'] LT';\n        },\n        'lastDay' => function (\\Carbon\\CarbonInterface $current) {\n            return '[onte '.($current->hour !== 1 ? 'á' : 'a').'] LT';\n        },\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current) {\n            return '[o] dddd [pasado '.($current->hour !== 1 ? 'ás' : 'á').'] LT';\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['xaneiro', 'febreiro', 'marzo', 'abril', 'maio', 'xuño', 'xullo', 'agosto', 'setembro', 'outubro', 'novembro', 'decembro'],\n    'months_short' => ['xan.', 'feb.', 'mar.', 'abr.', 'mai.', 'xuñ.', 'xul.', 'ago.', 'set.', 'out.', 'nov.', 'dec.'],\n    'weekdays' => ['domingo', 'luns', 'martes', 'mércores', 'xoves', 'venres', 'sábado'],\n    'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mér.', 'xov.', 'ven.', 'sáb.'],\n    'weekdays_min' => ['do', 'lu', 'ma', 'mé', 'xo', 've', 'sá'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' e '],\n    'meridiem' => ['a.m.', 'p.m.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/gl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gom.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/gom_Latn.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn [\n    'year' => ':count voros|:count vorsam',\n    'y' => ':countv',\n    'month' => ':count mhoino|:count mhoine',\n    'm' => ':countmh',\n    'week' => ':count satolleacho|:count satolleache',\n    'w' => ':countsa|:countsa',\n    'day' => ':count dis',\n    'd' => ':countd',\n    'hour' => ':count hor|:count horam',\n    'h' => ':counth',\n    'minute' => ':count minute|:count mintam',\n    'min' => ':countm',\n    'second' => ':count second',\n    's' => ':counts',\n\n    'formats' => [\n        'LT' => 'A h:mm [vazta]',\n        'LTS' => 'A h:mm:ss [vazta]',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY A h:mm [vazta]',\n        'LLLL' => 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n        'llll' => 'ddd, D MMM YYYY, A h:mm [vazta]',\n    ],\n\n    'calendar' => [\n        'sameDay' => '[Aiz] LT',\n        'nextDay' => '[Faleam] LT',\n        'nextWeek' => '[Ieta to] dddd[,] LT',\n        'lastDay' => '[Kal] LT',\n        'lastWeek' => '[Fatlo] dddd[,] LT',\n        'sameElse' => 'L',\n    ],\n\n    'months' => ['Janer', 'Febrer', 'Mars', 'Abril', 'Mai', 'Jun', 'Julai', 'Agost', 'Setembr', 'Otubr', 'Novembr', 'Dezembr'],\n    'months_short' => ['Jan.', 'Feb.', 'Mars', 'Abr.', 'Mai', 'Jun', 'Jul.', 'Ago.', 'Set.', 'Otu.', 'Nov.', 'Dez.'],\n    'weekdays' => ['Aitar', 'Somar', 'Mongllar', 'Budvar', 'Brestar', 'Sukrar', 'Son\\'var'],\n    'weekdays_short' => ['Ait.', 'Som.', 'Mon.', 'Bud.', 'Bre.', 'Suk.', 'Son.'],\n    'weekdays_min' => ['Ai', 'Sm', 'Mo', 'Bu', 'Br', 'Su', 'Sn'],\n\n    'ordinal' => function ($number, $period) {\n        return $number.($period === 'D' ? 'er' : '');\n    },\n\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'rati';\n        }\n        if ($hour < 12) {\n            return 'sokalli';\n        }\n        if ($hour < 16) {\n            return 'donparam';\n        }\n        if ($hour < 20) {\n            return 'sanje';\n        }\n\n        return 'rati';\n    },\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' ani '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gsw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Christopher Dell\n * - Akira Matsuda\n * - Enrique Vidal\n * - Simone Carletti\n * - Henning Kiel\n * - Aaron Patterson\n * - Florian Hanke\n */\nreturn [\n    'year' => ':count Johr',\n    'month' => ':count Monet',\n    'week' => ':count Woche',\n    'day' => ':count Tag',\n    'hour' => ':count Schtund',\n    'minute' => ':count Minute',\n    'second' => ':count Sekunde',\n    'weekdays' => ['Sunntig', 'Mäntig', 'Ziischtig', 'Mittwuch', 'Dunschtig', 'Friitig', 'Samschtig'],\n    'weekdays_short' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'],\n    'weekdays_min' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'],\n    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'September', 'Oktober', 'November', 'Dezember'],\n    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n    'meridiem' => ['am Vormittag', 'am Namittag'],\n    'ordinal' => ':number.',\n    'list' => [', ', ' und '],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'Do MMMM YYYY',\n        'LLL' => 'Do MMMM, HH:mm [Uhr]',\n        'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]',\n    ],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/gsw.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/gsw.php', [\n    'meridiem' => ['vorm.', 'nam.'],\n    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LLL' => 'Do MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, Do MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/gsw.php', [\n    'meridiem' => ['vorm.', 'nam.'],\n    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LLL' => 'Do MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, Do MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Kaushik Thanki\n * - Josh Soref\n */\nreturn [\n    'year' => 'એક વર્ષ|:count વર્ષ',\n    'y' => ':countવર્ષ|:countવર્ષો',\n    'month' => 'એક મહિનો|:count મહિનો',\n    'm' => ':countમહિનો|:countમહિના',\n    'week' => ':count અઠવાડિયું|:count અઠવાડિયા',\n    'w' => ':countઅઠ.|:countઅઠ.',\n    'day' => 'એક દિવસ|:count દિવસ',\n    'd' => ':countદિ.|:countદિ.',\n    'hour' => 'એક કલાક|:count કલાક',\n    'h' => ':countક.|:countક.',\n    'minute' => 'એક મિનિટ|:count મિનિટ',\n    'min' => ':countમિ.|:countમિ.',\n    'second' => 'અમુક પળો|:count સેકંડ',\n    's' => ':countસે.|:countસે.',\n    'ago' => ':time પેહલા',\n    'from_now' => ':time મા',\n    'after' => ':time પછી',\n    'before' => ':time પહેલા',\n    'diff_yesterday' => 'ગઇકાલે',\n    'diff_tomorrow' => 'કાલે',\n    'formats' => [\n        'LT' => 'A h:mm વાગ્યે',\n        'LTS' => 'A h:mm:ss વાગ્યે',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm વાગ્યે',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n    ],\n    'calendar' => [\n        'sameDay' => '[આજ] LT',\n        'nextDay' => '[કાલે] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[ગઇકાલે] LT',\n        'lastWeek' => '[પાછલા] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'રાત';\n        }\n        if ($hour < 10) {\n            return 'સવાર';\n        }\n        if ($hour < 17) {\n            return 'બપોર';\n        }\n        if ($hour < 20) {\n            return 'સાંજ';\n        }\n\n        return 'રાત';\n    },\n    'months' => ['જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', 'ઑક્ટ્બર', 'નવેમ્બર', 'ડિસેમ્બર'],\n    'months_short' => ['જાન્યુ.', 'ફેબ્રુ.', 'માર્ચ', 'એપ્રિ.', 'મે', 'જૂન', 'જુલા.', 'ઑગ.', 'સપ્ટે.', 'ઑક્ટ્.', 'નવે.', 'ડિસે.'],\n    'weekdays' => ['રવિવાર', 'સોમવાર', 'મંગળવાર', 'બુધ્વાર', 'ગુરુવાર', 'શુક્રવાર', 'શનિવાર'],\n    'weekdays_short' => ['રવિ', 'સોમ', 'મંગળ', 'બુધ્', 'ગુરુ', 'શુક્ર', 'શનિ'],\n    'weekdays_min' => ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', 'શ'],\n    'list' => [', ', ' અને '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/gu.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/guz.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Ma', 'Mo'],\n    'weekdays' => ['Chumapiri', 'Chumatato', 'Chumaine', 'Chumatano', 'Aramisi', 'Ichuma', 'Esabato'],\n    'weekdays_short' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'],\n    'weekdays_min' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'],\n    'months' => ['Chanuari', 'Feburari', 'Machi', 'Apiriri', 'Mei', 'Juni', 'Chulai', 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'],\n    'months_short' => ['Can', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Cul', 'Agt', 'Sep', 'Okt', 'Nob', 'Dis'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'month' => ':count omotunyi', // less reliable\n    'm' => ':count omotunyi', // less reliable\n    'a_month' => ':count omotunyi', // less reliable\n\n    'week' => ':count isano naibere', // less reliable\n    'w' => ':count isano naibere', // less reliable\n    'a_week' => ':count isano naibere', // less reliable\n\n    'second' => ':count ibere', // less reliable\n    's' => ':count ibere', // less reliable\n    'a_second' => ':count ibere', // less reliable\n\n    'year' => ':count omwaka',\n    'y' => ':count omwaka',\n    'a_year' => ':count omwaka',\n\n    'day' => ':count rituko',\n    'd' => ':count rituko',\n    'a_day' => ':count rituko',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/gv_GB.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Alastair McKinstry    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Jerrey-geuree', 'Toshiaght-arree', 'Mayrnt', 'Averil', 'Boaldyn', 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'],\n    'months_short' => ['J-guer', 'T-arree', 'Mayrnt', 'Avrril', 'Boaldyn', 'M-souree', 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', 'M.Nollick'],\n    'weekdays' => ['Jedoonee', 'Jelhein', 'Jemayrt', 'Jercean', 'Jerdein', 'Jeheiney', 'Jesarn'],\n    'weekdays_short' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'],\n    'weekdays_min' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count blein',\n    'y' => ':count blein',\n    'a_year' => ':count blein',\n\n    'month' => ':count mee',\n    'm' => ':count mee',\n    'a_month' => ':count mee',\n\n    'week' => ':count shiaghtin',\n    'w' => ':count shiaghtin',\n    'a_week' => ':count shiaghtin',\n\n    'day' => ':count laa',\n    'd' => ':count laa',\n    'a_day' => ':count laa',\n\n    'hour' => ':count oor',\n    'h' => ':count oor',\n    'a_hour' => ':count oor',\n\n    'minute' => ':count feer veg',\n    'min' => ':count feer veg',\n    'a_minute' => ':count feer veg',\n\n    'second' => ':count derrey',\n    's' => ':count derrey',\n    'a_second' => ':count derrey',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ha.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM, YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM, YYYY HH:mm',\n    ],\n    'months' => ['Janairu', 'Faburairu', 'Maris', 'Afirilu', 'Mayu', 'Yuni', 'Yuli', 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'],\n    'months_short' => ['Jan', 'Fab', 'Mar', 'Afi', 'May', 'Yun', 'Yul', 'Agu', 'Sat', 'Okt', 'Nuw', 'Dis'],\n    'weekdays' => ['Lahadi', 'Litini', 'Talata', 'Laraba', 'Alhamis', 'Jumaʼa', 'Asabar'],\n    'weekdays_short' => ['Lah', 'Lit', 'Tal', 'Lar', 'Alh', 'Jum', 'Asa'],\n    'weekdays_min' => ['Lh', 'Li', 'Ta', 'Lr', 'Al', 'Ju', 'As'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'shekara :count',\n    'y' => 'shekara :count',\n    'a_year' => 'shekara :count',\n\n    'month' => ':count wátàa',\n    'm' => ':count wátàa',\n    'a_month' => ':count wátàa',\n\n    'week' => ':count mako',\n    'w' => ':count mako',\n    'a_week' => ':count mako',\n\n    'day' => ':count rana',\n    'd' => ':count rana',\n    'a_day' => ':count rana',\n\n    'hour' => ':count áwàa',\n    'h' => ':count áwàa',\n    'a_hour' => ':count áwàa',\n\n    'minute' => 'minti :count',\n    'min' => 'minti :count',\n    'a_minute' => 'minti :count',\n\n    'second' => ':count ná bíyú',\n    's' => ':count ná bíyú',\n    'a_second' => ':count ná bíyú',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ha.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ha.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ha.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hak.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/hak_TW.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY年MM月DD日',\n    ],\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],\n    'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['上晝', '下晝'],\n\n    'year' => ':count ngien11',\n    'y' => ':count ngien11',\n    'a_year' => ':count ngien11',\n\n    'month' => ':count ngie̍t',\n    'm' => ':count ngie̍t',\n    'a_month' => ':count ngie̍t',\n\n    'week' => ':count lî-pai',\n    'w' => ':count lî-pai',\n    'a_week' => ':count lî-pai',\n\n    'day' => ':count ngit',\n    'd' => ':count ngit',\n    'a_day' => ':count ngit',\n\n    'hour' => ':count sṳ̀',\n    'h' => ':count sṳ̀',\n    'a_hour' => ':count sṳ̀',\n\n    'minute' => ':count fûn',\n    'min' => ':count fûn',\n    'a_minute' => ':count fûn',\n\n    'second' => ':count miéu',\n    's' => ':count miéu',\n    'a_second' => ':count miéu',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/haw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'],\n    'months_short' => ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'],\n    'weekdays' => ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', 'Poʻahā', 'Poʻalima', 'Poʻaono'],\n    'weekdays_short' => ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'],\n    'weekdays_min' => ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm a',\n    ],\n\n    'year' => ':count makahiki',\n    'y' => ':count makahiki',\n    'a_year' => ':count makahiki',\n\n    'month' => ':count mahina',\n    'm' => ':count mahina',\n    'a_month' => ':count mahina',\n\n    'week' => ':count pule',\n    'w' => ':count pule',\n    'a_week' => ':count pule',\n\n    'day' => ':count lā',\n    'd' => ':count lā',\n    'a_day' => ':count lā',\n\n    'hour' => ':count hola',\n    'h' => ':count hola',\n    'a_hour' => ':count hola',\n\n    'minute' => ':count minuke',\n    'min' => ':count minuke',\n    'a_minute' => ':count minuke',\n\n    'second' => ':count lua',\n    's' => ':count lua',\n    'a_second' => ':count lua',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/he.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Daniel Cohen Gindi\n * - JD Isaacks\n * - Itai Nathaniel\n * - GabMic\n */\nreturn [\n    'year' => 'שנה|{2}שנתיים|:count שנים',\n    'y' => 'שנה|{2}שנתיים|:count שנים',\n    'month' => 'חודש|{2}חודשיים|:count חודשים',\n    'm' => 'חודש|{2}חודשיים|:count חודשים',\n    'week' => 'שבוע|{2}שבועיים|:count שבועות',\n    'w' => 'שבוע|{2}שבועיים|:count שבועות',\n    'day' => 'יום|{2}יומיים|:count ימים',\n    'd' => 'יום|{2}יומיים|:count ימים',\n    'hour' => 'שעה|{2}שעתיים|:count שעות',\n    'h' => 'שעה|{2}שעתיים|:count שעות',\n    'minute' => 'דקה|{2}שתי דקות|:count דקות',\n    'min' => 'דקה|{2}שתי דקות|:count דקות',\n    'second' => 'שנייה|:count שניות',\n    'a_second' => 'כמה שניות|:count שניות',\n    's' => 'שניה|:count שניות',\n    'ago' => 'לפני :time',\n    'from_now' => 'בעוד :time מעכשיו',\n    'after' => 'אחרי :time',\n    'before' => 'לפני :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D [ב]MMMM YYYY',\n        'LLL' => 'D [ב]MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D [ב]MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[היום ב־]LT',\n        'nextDay' => '[מחר ב־]LT',\n        'nextWeek' => 'dddd [בשעה] LT',\n        'lastDay' => '[אתמול ב־]LT',\n        'lastWeek' => '[ביום] dddd [האחרון בשעה] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour, $minute, $isLower) {\n        if ($hour < 5) {\n            return 'לפנות בוקר';\n        }\n        if ($hour < 10) {\n            return 'בבוקר';\n        }\n        if ($hour < 12) {\n            return $isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n        }\n        if ($hour < 18) {\n            return $isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n        }\n\n        return 'בערב';\n    },\n    'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],\n    'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'],\n    'weekdays' => ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],\n    'weekdays_short' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],\n    'weekdays_min' => ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'],\n    'list' => [', ', ' ו -'],\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/he.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - abhimanyu003\n * - Josh Soref\n * - JD Isaacks\n */\nreturn [\n    'year' => 'एक वर्ष|:count वर्ष',\n    'y' => '1 वर्ष|:count वर्षों',\n    'month' => 'एक महीने|:count महीने',\n    'm' => '1 माह|:count महीने',\n    'week' => '1 सप्ताह|:count सप्ताह',\n    'w' => '1 सप्ताह|:count सप्ताह',\n    'day' => 'एक दिन|:count दिन',\n    'd' => '1 दिन|:count दिनों',\n    'hour' => 'एक घंटा|:count घंटे',\n    'h' => '1 घंटा|:count घंटे',\n    'minute' => 'एक मिनट|:count मिनट',\n    'min' => '1 मिनट|:count मिनटों',\n    'second' => 'कुछ ही क्षण|:count सेकंड',\n    's' => '1 सेकंड|:count सेकंड',\n    'ago' => ':time पहले',\n    'from_now' => ':time में',\n    'after' => ':time के बाद',\n    'before' => ':time के पहले',\n    'diff_yesterday' => 'कल',\n    'diff_tomorrow' => 'कल',\n    'formats' => [\n        'LT' => 'A h:mm बजे',\n        'LTS' => 'A h:mm:ss बजे',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm बजे',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm बजे',\n    ],\n    'calendar' => [\n        'sameDay' => '[आज] LT',\n        'nextDay' => '[कल] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[कल] LT',\n        'lastWeek' => '[पिछले] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'रात';\n        }\n        if ($hour < 10) {\n            return 'सुबह';\n        }\n        if ($hour < 17) {\n            return 'दोपहर';\n        }\n        if ($hour < 20) {\n            return 'शाम';\n        }\n\n        return 'रात';\n    },\n    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जन.', 'फ़र.', 'मार्च', 'अप्रै.', 'मई', 'जून', 'जुल.', 'अग.', 'सित.', 'अक्टू.', 'नव.', 'दिस.'],\n    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरू', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],\n    'list' => [', ', ' और '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/hi.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hif.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/hif_FJ.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'dddd DD MMM YYYY',\n    ],\n    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    'weekdays' => ['Ravivar', 'Somvar', 'Mangalvar', 'Budhvar', 'Guruvar', 'Shukravar', 'Shanivar'],\n    'weekdays_short' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'],\n    'weekdays_min' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'],\n    'meridiem' => ['Purvahan', 'Aparaahna'],\n\n    'hour' => ':count minit', // less reliable\n    'h' => ':count minit', // less reliable\n    'a_hour' => ':count minit', // less reliable\n\n    'year' => ':count saal',\n    'y' => ':count saal',\n    'a_year' => ':count saal',\n\n    'month' => ':count Mahina',\n    'm' => ':count Mahina',\n    'a_month' => ':count Mahina',\n\n    'week' => ':count Hafta',\n    'w' => ':count Hafta',\n    'a_week' => ':count Hafta',\n\n    'day' => ':count Din',\n    'd' => ':count Din',\n    'a_day' => ':count Din',\n\n    'minute' => ':count Minit',\n    'min' => ':count Minit',\n    'a_minute' => ':count Minit',\n\n    'second' => ':count Second',\n    's' => ':count Second',\n    'a_second' => ':count Second',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hne.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/hne_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अपरेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितमबर', 'अकटूबर', 'नवमबर', 'दिसमबर'],\n    'months_short' => ['जन', 'फर', 'मार्च', 'अप', 'मई', 'जून', 'जुला', 'अग', 'सित', 'अकटू', 'नव', 'दिस'],\n    'weekdays' => ['इतवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बिरसपत', 'सुकरवार', 'सनिवार'],\n    'weekdays_short' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'],\n    'weekdays_min' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['बिहिनियाँ', 'मंझनियाँ'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - Tim Fish\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n * - tomhorvat\n * - Josh Soref\n * - François B\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n * - tomhorvat\n * - Stjepan\n */\nreturn [\n    'year' => ':count godinu|:count godine|:count godina',\n    'y' => ':count god.|:count god.|:count god.',\n    'month' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'm' => ':count mj.|:count mj.|:count mj.',\n    'week' => ':count tjedan|:count tjedna|:count tjedana',\n    'w' => ':count tj.|:count tj.|:count tj.',\n    'day' => ':count dan|:count dana|:count dana',\n    'd' => ':count d.|:count d.|:count d.',\n    'hour' => ':count sat|:count sata|:count sati',\n    'h' => ':count sat|:count sata|:count sati',\n    'minute' => ':count minutu|:count minute|:count minuta',\n    'min' => ':count min.|:count min.|:count min.',\n    'second' => ':count sekundu|:count sekunde|:count sekundi',\n    's' => ':count sek.|:count sek.|:count sek.',\n    'ago' => 'prije :time',\n    'from_now' => 'za :time',\n    'after' => 'za :time',\n    'before' => 'prije :time',\n    'diff_yesterday' => 'jučer',\n    'diff_tomorrow' => 'sutra',\n    'diff_before_yesterday' => 'prekjučer',\n    'diff_after_tomorrow' => 'prekosutra',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[danas u] LT',\n        'nextDay' => '[sutra u] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[u] [nedjelju] [u] LT';\n                case 3:\n                    return '[u] [srijedu] [u] LT';\n                case 6:\n                    return '[u] [subotu] [u] LT';\n                default:\n                    return '[u] dddd [u] LT';\n            }\n        },\n        'lastDay' => '[jučer u] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                case 3:\n                    return '[prošlu] dddd [u] LT';\n                case 6:\n                    return '[prošle] [subote] [u] LT';\n                default:\n                    return '[prošli] dddd [u] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'],\n    'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'],\n    'months_short' => ['sij.', 'velj.', 'ožu.', 'tra.', 'svi.', 'lip.', 'srp.', 'kol.', 'ruj.', 'lis.', 'stu.', 'pro.'],\n    'months_regexp' => '/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['nedjelju', 'ponedjeljak', 'utorak', 'srijedu', 'četvrtak', 'petak', 'subotu'],\n    'weekdays_standalone' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],\n    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' i '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],\n    'weekdays_min' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],\n    'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'],\n    'months_short' => ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', 'lis', 'stu', 'pro'],\n    'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D. M. yy.',\n        'LL' => 'D. MMM YYYY.',\n        'LLL' => 'D. MMMM YYYY. HH:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY. HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/hr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hsb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/hsb_DE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Information from Michael Wolf Andrzej Krzysztofowicz ankry@mif.pg.gda.pl\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'DD. MMMM YYYY',\n        'LLL' => 'DD. MMMM, HH:mm [hodź.]',\n        'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [hodź.]',\n    ],\n    'months' => ['januara', 'februara', 'měrca', 'apryla', 'meje', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'],\n    'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Mej', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'],\n    'weekdays' => ['Njedźela', 'Póndźela', 'Wutora', 'Srjeda', 'Štvórtk', 'Pjatk', 'Sobota'],\n    'weekdays_short' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'],\n    'weekdays_min' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count lěto',\n    'y' => ':count lěto',\n    'a_year' => ':count lěto',\n\n    'month' => ':count měsac',\n    'm' => ':count měsac',\n    'a_month' => ':count měsac',\n\n    'week' => ':count tydźeń',\n    'w' => ':count tydźeń',\n    'a_week' => ':count tydźeń',\n\n    'day' => ':count dźeń',\n    'd' => ':count dźeń',\n    'a_day' => ':count dźeń',\n\n    'hour' => ':count hodźina',\n    'h' => ':count hodźina',\n    'a_hour' => ':count hodźina',\n\n    'minute' => ':count chwila',\n    'min' => ':count chwila',\n    'a_minute' => ':count chwila',\n\n    'second' => ':count druhi',\n    's' => ':count druhi',\n    'a_second' => ':count druhi',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ht.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ht_HT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['janvye', 'fevriye', 'mas', 'avril', 'me', 'jen', 'jiyè', 'out', 'septanm', 'oktòb', 'novanm', 'desanm'],\n    'months_short' => ['jan', 'fev', 'mas', 'avr', 'me', 'jen', 'jiy', 'out', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['dimanch', 'lendi', 'madi', 'mèkredi', 'jedi', 'vandredi', 'samdi'],\n    'weekdays_short' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'],\n    'weekdays_min' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count lane',\n    'y' => ':count lane',\n    'a_year' => ':count lane',\n\n    'month' => 'mwa :count',\n    'm' => 'mwa :count',\n    'a_month' => 'mwa :count',\n\n    'week' => 'semèn :count',\n    'w' => 'semèn :count',\n    'a_week' => 'semèn :count',\n\n    'day' => ':count jou',\n    'd' => ':count jou',\n    'a_day' => ':count jou',\n\n    'hour' => ':count lè',\n    'h' => ':count lè',\n    'a_hour' => ':count lè',\n\n    'minute' => ':count minit',\n    'min' => ':count minit',\n    'a_minute' => ':count minit',\n\n    'second' => ':count segonn',\n    's' => ':count segonn',\n    'a_second' => ':count segonn',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Adam Brunner\n * - Brett Johnson\n * - balping\n */\n$huWeekEndings = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton'];\n\nreturn [\n    'year' => ':count év',\n    'y' => ':count év',\n    'month' => ':count hónap',\n    'm' => ':count hónap',\n    'week' => ':count hét',\n    'w' => ':count hét',\n    'day' => ':count nap',\n    'd' => ':count nap',\n    'hour' => ':count óra',\n    'h' => ':count óra',\n    'minute' => ':count perc',\n    'min' => ':count perc',\n    'second' => ':count másodperc',\n    's' => ':count másodperc',\n    'ago' => ':time',\n    'from_now' => ':time múlva',\n    'after' => ':time később',\n    'before' => ':time korábban',\n    'year_ago' => ':count éve',\n    'month_ago' => ':count hónapja',\n    'week_ago' => ':count hete',\n    'day_ago' => ':count napja',\n    'hour_ago' => ':count órája',\n    'minute_ago' => ':count perce',\n    'second_ago' => ':count másodperce',\n    'year_after' => ':count évvel',\n    'month_after' => ':count hónappal',\n    'week_after' => ':count héttel',\n    'day_after' => ':count nappal',\n    'hour_after' => ':count órával',\n    'minute_after' => ':count perccel',\n    'second_after' => ':count másodperccel',\n    'year_before' => ':count évvel',\n    'month_before' => ':count hónappal',\n    'week_before' => ':count héttel',\n    'day_before' => ':count nappal',\n    'hour_before' => ':count órával',\n    'minute_before' => ':count perccel',\n    'second_before' => ':count másodperccel',\n    'months' => ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'],\n    'months_short' => ['jan.', 'feb.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],\n    'weekdays' => ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat'],\n    'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'],\n    'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'],\n    'ordinal' => ':number.',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'YYYY.MM.DD.',\n        'LL' => 'YYYY. MMMM D.',\n        'LLL' => 'YYYY. MMMM D. H:mm',\n        'LLLL' => 'YYYY. MMMM D., dddd H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ma] LT[-kor]',\n        'nextDay' => '[holnap] LT[-kor]',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) use ($huWeekEndings) {\n            return '['.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]';\n        },\n        'lastDay' => '[tegnap] LT[-kor]',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) use ($huWeekEndings) {\n            return '[múlt '.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]';\n        },\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['DE', 'DU'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' és '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/hu.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hy.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - mhamlet\n */\nreturn [\n    'year' => ':count տարի',\n    'a_year' => 'տարի|:count տարի',\n    'y' => ':countտ',\n    'month' => ':count ամիս',\n    'a_month' => 'ամիս|:count ամիս',\n    'm' => ':countամ',\n    'week' => ':count շաբաթ',\n    'a_week' => 'շաբաթ|:count շաբաթ',\n    'w' => ':countշ',\n    'day' => ':count օր',\n    'a_day' => 'օր|:count օր',\n    'd' => ':countօր',\n    'hour' => ':count ժամ',\n    'a_hour' => 'ժամ|:count ժամ',\n    'h' => ':countժ',\n    'minute' => ':count րոպե',\n    'a_minute' => 'րոպե|:count րոպե',\n    'min' => ':countր',\n    'second' => ':count վայրկյան',\n    'a_second' => 'մի քանի վայրկյան|:count վայրկյան',\n    's' => ':countվրկ',\n    'ago' => ':time առաջ',\n    'from_now' => ':time ներկա պահից',\n    'after' => ':time հետո',\n    'before' => ':time առաջ',\n    'diff_yesterday' => 'երեկ',\n    'diff_tomorrow' => 'վաղը',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY թ.',\n        'LLL' => 'D MMMM YYYY թ., HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY թ., HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[այսօր] LT',\n        'nextDay' => '[վաղը] LT',\n        'nextWeek' => 'dddd [օրը ժամը] LT',\n        'lastDay' => '[երեկ] LT',\n        'lastWeek' => '[անցած] dddd [օրը ժամը] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'DDD':\n            case 'w':\n            case 'W':\n            case 'DDDo':\n                return $number.($number === 1 ? '-ին' : '-րդ');\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'գիշերվա';\n        }\n        if ($hour < 12) {\n            return 'առավոտվա';\n        }\n        if ($hour < 17) {\n            return 'ցերեկվա';\n        }\n\n        return 'երեկոյան';\n    },\n    'months' => ['հունվարի', 'փետրվարի', 'մարտի', 'ապրիլի', 'մայիսի', 'հունիսի', 'հուլիսի', 'օգոստոսի', 'սեպտեմբերի', 'հոկտեմբերի', 'նոյեմբերի', 'դեկտեմբերի'],\n    'months_standalone' => ['հունվար', 'փետրվար', 'մարտ', 'ապրիլ', 'մայիս', 'հունիս', 'հուլիս', 'օգոստոս', 'սեպտեմբեր', 'հոկտեմբեր', 'նոյեմբեր', 'դեկտեմբեր'],\n    'months_short' => ['հնվ', 'փտր', 'մրտ', 'ապր', 'մյս', 'հնս', 'հլս', 'օգս', 'սպտ', 'հկտ', 'նմբ', 'դկտ'],\n    'months_regexp' => '/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'],\n    'weekdays_short' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],\n    'weekdays_min' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],\n    'list' => [', ', ' եւ '],\n    'first_day_of_week' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - Tim Fish\n * - Serhan Apaydın\n * - JD Isaacks\n */\nreturn array_replace_recursive(require __DIR__.'/hy.php', [\n    'from_now' => ':time հետո',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/i18n.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n    'months' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n    'months_short' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],\n    'weekdays' => ['1', '2', '3', '4', '5', '6', '7'],\n    'weekdays_short' => ['1', '2', '3', '4', '5', '6', '7'],\n    'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ia.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ia_FR.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Fedora Project Nik Kalach nikka@fedoraproject.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['januario', 'februario', 'martio', 'april', 'maio', 'junio', 'julio', 'augusto', 'septembre', 'octobre', 'novembre', 'decembre'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],\n    'weekdays' => ['dominica', 'lunedi', 'martedi', 'mercuridi', 'jovedi', 'venerdi', 'sabbato'],\n    'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'],\n    'weekdays_min' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => 'anno :count',\n    'y' => 'anno :count',\n    'a_year' => 'anno :count',\n\n    'month' => ':count mense',\n    'm' => ':count mense',\n    'a_month' => ':count mense',\n\n    'week' => ':count septimana',\n    'w' => ':count septimana',\n    'a_week' => ':count septimana',\n\n    'day' => ':count die',\n    'd' => ':count die',\n    'a_day' => ':count die',\n\n    'hour' => ':count hora',\n    'h' => ':count hora',\n    'a_hour' => ':count hora',\n\n    'minute' => ':count minuscule',\n    'min' => ':count minuscule',\n    'a_minute' => ':count minuscule',\n\n    'second' => ':count secunda',\n    's' => ':count secunda',\n    'a_second' => ':count secunda',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/id.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - du\n * - JD Isaacks\n * - Nafies Luthfi\n * - Raymundus Jati Primanda (mundusjp)\n */\nreturn [\n    'year' => ':count tahun',\n    'a_year' => '{1}setahun|]1,Inf[:count tahun',\n    'y' => ':countthn',\n    'month' => ':count bulan',\n    'a_month' => '{1}sebulan|]1,Inf[:count bulan',\n    'm' => ':countbln',\n    'week' => ':count minggu',\n    'a_week' => '{1}seminggu|]1,Inf[:count minggu',\n    'w' => ':countmgg',\n    'day' => ':count hari',\n    'a_day' => '{1}sehari|]1,Inf[:count hari',\n    'd' => ':counthr',\n    'hour' => ':count jam',\n    'a_hour' => '{1}sejam|]1,Inf[:count jam',\n    'h' => ':countj',\n    'minute' => ':count menit',\n    'a_minute' => '{1}semenit|]1,Inf[:count menit',\n    'min' => ':countmnt',\n    'second' => ':count detik',\n    'a_second' => '{1}beberapa detik|]1,Inf[:count detik',\n    's' => ':countdt',\n    'ago' => ':time yang lalu',\n    'from_now' => 'dalam :time',\n    'after' => ':time setelahnya',\n    'before' => ':time sebelumnya',\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm.ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY [pukul] HH.mm',\n        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hari ini pukul] LT',\n        'nextDay' => '[Besok pukul] LT',\n        'nextWeek' => 'dddd [pukul] LT',\n        'lastDay' => '[Kemarin pukul] LT',\n        'lastWeek' => 'dddd [lalu pukul] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 11) {\n            return 'pagi';\n        }\n        if ($hour < 15) {\n            return 'siang';\n        }\n        if ($hour < 19) {\n            return 'sore';\n        }\n\n        return 'malam';\n    },\n    'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'],\n    'weekdays_short' => ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],\n    'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' dan '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/id.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ig.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ig_NG.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Jenụwarị', 'Febrụwarị', 'Maachị', 'Eprel', 'Mee', 'Juun', 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', 'Disemba'],\n    'months_short' => ['Jen', 'Feb', 'Maa', 'Epr', 'Mee', 'Juu', 'Jul', 'Ọgọ', 'Sep', 'Ọkt', 'Nov', 'Dis'],\n    'weekdays' => ['sọnde', 'mọnde', 'tuzde', 'wenzde', 'tọsde', 'fraịde', 'satọde'],\n    'weekdays_short' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'],\n    'weekdays_min' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'afo :count',\n    'y' => 'afo :count',\n    'a_year' => 'afo :count',\n\n    'month' => 'önwa :count',\n    'm' => 'önwa :count',\n    'a_month' => 'önwa :count',\n\n    'week' => 'izu :count',\n    'w' => 'izu :count',\n    'a_week' => 'izu :count',\n\n    'day' => 'ụbọchị :count',\n    'd' => 'ụbọchị :count',\n    'a_day' => 'ụbọchị :count',\n\n    'hour' => 'awa :count',\n    'h' => 'awa :count',\n    'a_hour' => 'awa :count',\n\n    'minute' => 'minit :count',\n    'min' => 'minit :count',\n    'a_minute' => 'minit :count',\n\n    'second' => 'sekọnd :count',\n    's' => 'sekọnd :count',\n    'a_second' => 'sekọnd :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ii.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ꎸꄑ', 'ꁯꋒ'],\n    'weekdays' => ['ꑭꆏꑍ', 'ꆏꊂꋍ', 'ꆏꊂꑍ', 'ꆏꊂꌕ', 'ꆏꊂꇖ', 'ꆏꊂꉬ', 'ꆏꊂꃘ'],\n    'weekdays_short' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'],\n    'weekdays_min' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'],\n    'months' => null,\n    'months_short' => ['ꋍꆪ', 'ꑍꆪ', 'ꌕꆪ', 'ꇖꆪ', 'ꉬꆪ', 'ꃘꆪ', 'ꏃꆪ', 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D h:mm a',\n        'LLLL' => 'YYYY MMMM D, dddd h:mm a',\n    ],\n\n    'year' => ':count ꒉ', // less reliable\n    'y' => ':count ꒉ', // less reliable\n    'a_year' => ':count ꒉ', // less reliable\n\n    'month' => ':count ꆪ',\n    'm' => ':count ꆪ',\n    'a_month' => ':count ꆪ',\n\n    'week' => ':count ꏃ', // less reliable\n    'w' => ':count ꏃ', // less reliable\n    'a_week' => ':count ꏃ', // less reliable\n\n    'day' => ':count ꏜ', // less reliable\n    'd' => ':count ꏜ', // less reliable\n    'a_day' => ':count ꏜ', // less reliable\n\n    'hour' => ':count ꄮꈉ',\n    'h' => ':count ꄮꈉ',\n    'a_hour' => ':count ꄮꈉ',\n\n    'minute' => ':count ꀄꊭ', // less reliable\n    'min' => ':count ꀄꊭ', // less reliable\n    'a_minute' => ':count ꀄꊭ', // less reliable\n\n    'second' => ':count ꇅ', // less reliable\n    's' => ':count ꇅ', // less reliable\n    'a_second' => ':count ꇅ', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ik.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ik_CA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Siqiññaatchiaq', 'Siqiññaasrugruk', 'Paniqsiqsiivik', 'Qilġich Tatqiat', 'Suppivik', 'Iġñivik', 'Itchavik', 'Tiññivik', 'Amiġaiqsivik', 'Sikkuvik', 'Nippivik', 'Siqiñġiḷaq'],\n    'months_short' => ['Sñt', 'Sñs', 'Pan', 'Qil', 'Sup', 'Iġñ', 'Itc', 'Tiñ', 'Ami', 'Sik', 'Nip', 'Siq'],\n    'weekdays' => ['Minġuiqsioiq', 'Savałłiq', 'Ilaqtchiioiq', 'Qitchiioiq', 'Sisamiioiq', 'Tallimmiioiq', 'Maqinġuoiq'],\n    'weekdays_short' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'],\n    'weekdays_min' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ukiuq',\n    'y' => ':count ukiuq',\n    'a_year' => ':count ukiuq',\n\n    'month' => ':count Tatqiat',\n    'm' => ':count Tatqiat',\n    'a_month' => ':count Tatqiat',\n\n    'week' => ':count tatqiat', // less reliable\n    'w' => ':count tatqiat', // less reliable\n    'a_week' => ':count tatqiat', // less reliable\n\n    'day' => ':count siqiñiq', // less reliable\n    'd' => ':count siqiñiq', // less reliable\n    'a_day' => ':count siqiñiq', // less reliable\n\n    'hour' => ':count Siḷa', // less reliable\n    'h' => ':count Siḷa', // less reliable\n    'a_hour' => ':count Siḷa', // less reliable\n\n    'second' => ':count iġñiq', // less reliable\n    's' => ':count iġñiq', // less reliable\n    'a_second' => ':count iġñiq', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/in.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'],\n    'weekdays_short' => ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],\n    'weekdays_min' => ['M', 'S', 'S', 'R', 'K', 'J', 'S'],\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm.ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH.mm',\n        'LLLL' => 'dddd, DD MMMM YYYY HH.mm',\n    ],\n\n    'year' => 'tahun :count',\n    'y' => 'tahun :count',\n    'a_year' => 'tahun :count',\n\n    'month' => ':count bulan',\n    'm' => ':count bulan',\n    'a_month' => ':count bulan',\n\n    'week' => ':count minggu',\n    'w' => ':count minggu',\n    'a_week' => ':count minggu',\n\n    'day' => ':count hari',\n    'd' => ':count hari',\n    'a_day' => ':count hari',\n\n    'hour' => ':count jam',\n    'h' => ':count jam',\n    'a_hour' => ':count jam',\n\n    'minute' => ':count menit',\n    'min' => ':count menit',\n    'a_minute' => ':count menit',\n\n    'second' => ':count detik',\n    's' => ':count detik',\n    'a_second' => ':count detik',\n\n    'ago' => ':time yang lalu',\n    'from_now' => 'dalam :time',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/is.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kristján Ingi Geirsson\n */\nreturn [\n    'year' => '1 ár|:count ár',\n    'y' => '1 ár|:count ár',\n    'month' => '1 mánuður|:count mánuðir',\n    'm' => '1 mánuður|:count mánuðir',\n    'week' => '1 vika|:count vikur',\n    'w' => '1 vika|:count vikur',\n    'day' => '1 dagur|:count dagar',\n    'd' => '1 dagur|:count dagar',\n    'hour' => '1 klukkutími|:count klukkutímar',\n    'h' => '1 klukkutími|:count klukkutímar',\n    'minute' => '1 mínúta|:count mínútur',\n    'min' => '1 mínúta|:count mínútur',\n    'second' => '1 sekúnda|:count sekúndur',\n    's' => '1 sekúnda|:count sekúndur',\n    'ago' => ':time síðan',\n    'from_now' => ':time síðan',\n    'after' => ':time eftir',\n    'before' => ':time fyrir',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' og '],\n    'meridiem' => ['fh', 'eh'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM [kl.] HH:mm',\n        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',\n    ],\n    'weekdays' => ['sunnudaginn', 'mánudaginn', 'þriðjudaginn', 'miðvikudaginn', 'fimmtudaginn', 'föstudaginn', 'laugardaginn'],\n    'weekdays_short' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'],\n    'weekdays_min' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'],\n    'months' => ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', 'sep', 'okt', 'nóv', 'des'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/is.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/it.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ash\n * - François B\n * - Marco Perrando\n * - Massimiliano Caniparoli\n * - JD Isaacks\n * - Andrea Martini\n * - Francesco Marasco\n * - Tizianoz93\n * - Davide Casiraghi (davide-casiraghi)\n */\nreturn [\n    'year' => ':count anno|:count anni',\n    'a_year' => 'un anno|:count anni',\n    'y' => ':count anno|:count anni',\n    'month' => ':count mese|:count mesi',\n    'a_month' => 'un mese|:count mesi',\n    'm' => ':count mese|:count mesi',\n    'week' => ':count settimana|:count settimane',\n    'a_week' => 'una settimana|:count settimane',\n    'w' => ':count set.',\n    'day' => ':count giorno|:count giorni',\n    'a_day' => 'un giorno|:count giorni',\n    'd' => ':count g|:count gg',\n    'hour' => ':count ora|:count ore',\n    'a_hour' => 'un\\'ora|:count ore',\n    'h' => ':count h',\n    'minute' => ':count minuto|:count minuti',\n    'a_minute' => 'un minuto|:count minuti',\n    'min' => ':count min.',\n    'second' => ':count secondo|:count secondi',\n    'a_second' => 'alcuni secondi|:count secondi',\n    's' => ':count sec.',\n    'ago' => ':time fa',\n    'from_now' => function ($time) {\n        return (preg_match('/^[0-9].+$/', $time) ? 'tra' : 'in').\" $time\";\n    },\n    'after' => ':time dopo',\n    'before' => ':time prima',\n    'diff_now' => 'proprio ora',\n    'diff_yesterday' => 'ieri',\n    'diff_tomorrow' => 'domani',\n    'diff_before_yesterday' => 'l\\'altro ieri',\n    'diff_after_tomorrow' => 'dopodomani',\n    'period_interval' => 'ogni :interval',\n    'period_start_date' => 'dal :date',\n    'period_end_date' => 'al :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Oggi alle] LT',\n        'nextDay' => '[Domani alle] LT',\n        'nextWeek' => 'dddd [alle] LT',\n        'lastDay' => '[Ieri alle] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[la scorsa] dddd [alle] LT';\n                default:\n                    return '[lo scorso] dddd [alle] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'],\n    'months_short' => ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],\n    'weekdays' => ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'],\n    'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],\n    'weekdays_min' => ['do', 'lu', 'ma', 'me', 'gi', 've', 'sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' e '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Propaganistas\n */\nreturn array_replace_recursive(require __DIR__.'/it.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn require __DIR__.'/it.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/it.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/it.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/iu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/iu_CA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Pablo Saratxaga pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'MM/DD/YY',\n    ],\n    'months' => ['ᔮᓄᐊᓕ', 'ᕕᕗᐊᓕ', 'ᒪᔅᓯ', 'ᐃᐳᓗ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚᐃ', 'ᐊᒋᓯ', 'ᓯᑎᕙ', 'ᐊᑦᑐᕙ', 'ᓄᕕᕙ', 'ᑎᓯᕝᕙ'],\n    'months_short' => ['ᔮᓄ', 'ᕕᕗ', 'ᒪᔅ', 'ᐃᐳ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚ', 'ᐊᒋ', 'ᓯᑎ', 'ᐊᑦ', 'ᓄᕕ', 'ᑎᓯ'],\n    'weekdays' => ['ᓈᑦᑎᖑᔭᕐᕕᒃ', 'ᓇᒡᒐᔾᔭᐅ', 'ᓇᒡᒐᔾᔭᐅᓕᖅᑭᑦ', 'ᐱᖓᓲᓕᖅᓯᐅᑦ', 'ᕿᑎᖅᑰᑦ', 'ᐅᓪᓗᕈᓘᑐᐃᓇᖅ', 'ᓯᕙᑖᕕᒃ'],\n    'weekdays_short' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'],\n    'weekdays_min' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ᐅᑭᐅᖅ',\n    'y' => ':count ᐅᑭᐅᖅ',\n    'a_year' => ':count ᐅᑭᐅᖅ',\n\n    'month' => ':count qaammat',\n    'm' => ':count qaammat',\n    'a_month' => ':count qaammat',\n\n    'week' => ':count sapaatip akunnera',\n    'w' => ':count sapaatip akunnera',\n    'a_week' => ':count sapaatip akunnera',\n\n    'day' => ':count ulloq',\n    'd' => ':count ulloq',\n    'a_day' => ':count ulloq',\n\n    'hour' => ':count ikarraq',\n    'h' => ':count ikarraq',\n    'a_hour' => ':count ikarraq',\n\n    'minute' => ':count titiqqaralaaq', // less reliable\n    'min' => ':count titiqqaralaaq', // less reliable\n    'a_minute' => ':count titiqqaralaaq', // less reliable\n\n    'second' => ':count marluk', // less reliable\n    's' => ':count marluk', // less reliable\n    'a_second' => ':count marluk', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/iw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],\n    'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'],\n    'weekdays' => ['יום ראשון', 'יום שני', 'יום שלישי', 'יום רביעי', 'יום חמישי', 'יום שישי', 'יום שבת'],\n    'weekdays_short' => ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'],\n    'weekdays_min' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],\n    'meridiem' => ['לפנה״צ', 'אחה״צ'],\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'D.M.YYYY',\n        'LL' => 'D בMMM YYYY',\n        'LLL' => 'D בMMMM YYYY H:mm',\n        'LLLL' => 'dddd, D בMMMM YYYY H:mm',\n    ],\n\n    'year' => ':count שנה',\n    'y' => ':count שנה',\n    'a_year' => ':count שנה',\n\n    'month' => ':count חודש',\n    'm' => ':count חודש',\n    'a_month' => ':count חודש',\n\n    'week' => ':count שבוע',\n    'w' => ':count שבוע',\n    'a_week' => ':count שבוע',\n\n    'day' => ':count יום',\n    'd' => ':count יום',\n    'a_day' => ':count יום',\n\n    'hour' => ':count שעה',\n    'h' => ':count שעה',\n    'a_hour' => ':count שעה',\n\n    'minute' => ':count דקה',\n    'min' => ':count דקה',\n    'a_minute' => ':count דקה',\n\n    'second' => ':count שניה',\n    's' => ':count שניה',\n    'a_second' => ':count שניה',\n\n    'ago' => 'לפני :time',\n    'from_now' => 'בעוד :time',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ja.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Takuya Sawada\n * - Atsushi Tanaka\n * - François B\n * - Jason Katz-Brown\n * - Serhan Apaydın\n * - XueWei\n * - JD Isaacks\n * - toyama satoshi\n * - atakigawa\n */\nreturn [\n    'year' => ':count年',\n    'y' => ':count年',\n    'month' => ':countヶ月',\n    'm' => ':countヶ月',\n    'week' => ':count週間',\n    'w' => ':count週間',\n    'day' => ':count日',\n    'd' => ':count日',\n    'hour' => ':count時間',\n    'h' => ':count時間',\n    'minute' => ':count分',\n    'min' => ':count分',\n    'second' => ':count秒',\n    'a_second' => '{1}数秒|]1,Inf[:count秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => ':time後',\n    'after' => ':time後',\n    'before' => ':time前',\n    'diff_yesterday' => '昨日',\n    'diff_tomorrow' => '明日',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日 HH:mm',\n        'LLLL' => 'YYYY年M月D日 dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[今日] LT',\n        'nextDay' => '[明日] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current, \\Carbon\\CarbonInterface $other) {\n            if ($other->week !== $current->week) {\n                return '[来週]dddd LT';\n            }\n\n            return 'dddd LT';\n        },\n        'lastDay' => '[昨日] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current, \\Carbon\\CarbonInterface $other) {\n            if ($other->week !== $current->week) {\n                return '[先週]dddd LT';\n            }\n\n            return 'dddd LT';\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => ['午前', '午後'],\n    'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'],\n    'weekdays_short' => ['日', '月', '火', '水', '木', '金', '土'],\n    'weekdays_min' => ['日', '月', '火', '水', '木', '金', '土'],\n    'list' => '、',\n    'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '二十一', '二十二', '二十三', '二十四', '二十五', '二十六', '二十七', '二十八', '二十九', '三十', '三十一', '三十二', '三十三', '三十四', '三十五', '三十六', '三十七', '三十八', '三十九', '四十', '四十一', '四十二', '四十三', '四十四', '四十五', '四十六', '四十七', '四十八', '四十九', '五十', '五十一', '五十二', '五十三', '五十四', '五十五', '五十六', '五十七', '五十八', '五十九', '六十', '六十一', '六十二', '六十三', '六十四', '六十五', '六十六', '六十七', '六十八', '六十九', '七十', '七十一', '七十二', '七十三', '七十四', '七十五', '七十六', '七十七', '七十八', '七十九', '八十', '八十一', '八十二', '八十三', '八十四', '八十五', '八十六', '八十七', '八十八', '八十九', '九十', '九十一', '九十二', '九十三', '九十四', '九十五', '九十六', '九十七', '九十八', '九十九'],\n    'alt_numbers_pow' => [\n        10000 => '万',\n        1000 => '千',\n        100 => '百',\n    ],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ja.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/jgo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/jmc.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['utuko', 'kyiukonyi'],\n    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/jv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - tgfjt\n * - JD Isaacks\n */\nreturn [\n    'year' => '{1}setaun|]1,Inf[:count taun',\n    'month' => '{1}sewulan|]1,Inf[:count wulan',\n    'week' => '{1}sakminggu|]1,Inf[:count minggu',\n    'day' => '{1}sedinten|]1,Inf[:count dinten',\n    'hour' => '{1}setunggal jam|]1,Inf[:count jam',\n    'minute' => '{1}setunggal menit|]1,Inf[:count menit',\n    'second' => '{1}sawetawis detik|]1,Inf[:count detik',\n    'ago' => ':time ingkang kepengker',\n    'from_now' => 'wonten ing :time',\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm.ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY [pukul] HH.mm',\n        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Dinten puniko pukul] LT',\n        'nextDay' => '[Mbenjang pukul] LT',\n        'nextWeek' => 'dddd [pukul] LT',\n        'lastDay' => '[Kala wingi pukul] LT',\n        'lastWeek' => 'dddd [kepengker pukul] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 11) {\n            return 'enjing';\n        }\n        if ($hour < 15) {\n            return 'siyang';\n        }\n        if ($hour < 19) {\n            return 'sonten';\n        }\n\n        return 'ndalu';\n    },\n    'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'Nopember', 'Desember'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ags', 'Sep', 'Okt', 'Nop', 'Des'],\n    'weekdays' => ['Minggu', 'Senen', 'Seloso', 'Rebu', 'Kemis', 'Jemuwah', 'Septu'],\n    'weekdays_short' => ['Min', 'Sen', 'Sel', 'Reb', 'Kem', 'Jem', 'Sep'],\n    'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sp'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' lan '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ka.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Tornike Razmadze\n * - François B\n * - Lasha Dolidze\n * - Tim Fish\n * - JD Isaacks\n * - Tornike Razmadze\n * - François B\n * - Lasha Dolidze\n * - JD Isaacks\n * - LONGMAN\n * - Avtandil Kikabidze (akalongman)\n */\nreturn [\n    'year' => ':count წელი',\n    'y' => ':count წელი',\n    'a_year' => '{1}წელი|]1,Inf[:count წელი',\n    'month' => ':count თვე',\n    'm' => ':count თვე',\n    'a_month' => '{1}თვე|]1,Inf[:count თვე',\n    'week' => ':count კვირა',\n    'w' => ':count კვირა',\n    'a_week' => '{1}კვირა|]1,Inf[:count კვირა',\n    'day' => ':count დღე',\n    'd' => ':count დღე',\n    'a_day' => '{1}დღე|]1,Inf[:count დღე',\n    'hour' => ':count საათი',\n    'h' => ':count საათი',\n    'a_hour' => '{1}საათი|]1,Inf[:count საათი',\n    'minute' => ':count წუთი',\n    'min' => ':count წუთი',\n    'a_minute' => '{1}წუთი|]1,Inf[:count წუთი',\n    'second' => ':count წამი',\n    's' => ':count წამი',\n    'a_second' => '{1}რამდენიმე წამი|]1,Inf[:count წამი',\n    'ago' => function ($time) {\n        $replacements = [\n            // year\n            'წელი' => 'წლის',\n            // month\n            'თვე' => 'თვის',\n            // week\n            'კვირა' => 'კვირის',\n            // day\n            'დღე' => 'დღის',\n            // hour\n            'საათი' => 'საათის',\n            // minute\n            'წუთი' => 'წუთის',\n            // second\n            'წამი' => 'წამის',\n        ];\n        $time = strtr($time, array_flip($replacements));\n        $time = strtr($time, $replacements);\n\n        return \"$time წინ\";\n    },\n    'from_now' => function ($time) {\n        $replacements = [\n            // year\n            'წელი' => 'წელიწადში',\n            // week\n            'კვირა' => 'კვირაში',\n            // day\n            'დღე' => 'დღეში',\n            // month\n            'თვე' => 'თვეში',\n            // hour\n            'საათი' => 'საათში',\n            // minute\n            'წუთი' => 'წუთში',\n            // second\n            'წამი' => 'წამში',\n        ];\n        $time = strtr($time, array_flip($replacements));\n        $time = strtr($time, $replacements);\n\n        return $time;\n    },\n    'after' => function ($time) {\n        $replacements = [\n            // year\n            'წელი' => 'წლის',\n            // month\n            'თვე' => 'თვის',\n            // week\n            'კვირა' => 'კვირის',\n            // day\n            'დღე' => 'დღის',\n            // hour\n            'საათი' => 'საათის',\n            // minute\n            'წუთი' => 'წუთის',\n            // second\n            'წამი' => 'წამის',\n        ];\n        $time = strtr($time, array_flip($replacements));\n        $time = strtr($time, $replacements);\n\n        return \"$time შემდეგ\";\n    },\n    'before' => function ($time) {\n        $replacements = [\n            // year\n            'წელი' => 'წლის',\n            // month\n            'თვე' => 'თვის',\n            // week\n            'კვირი' => 'კვირის',\n            // day\n            'დღე' => 'დღის',\n            // hour\n            'საათი' => 'საათის',\n            // minute\n            'წუთი' => 'წუთის',\n            // second\n            'წამი' => 'წამის',\n        ];\n        $time = strtr($time, array_flip($replacements));\n        $time = strtr($time, $replacements);\n\n        return \"$time უკან\";\n    },\n    'diff_yesterday' => 'გუშინ',\n    'diff_tomorrow' => 'ხვალ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[დღეს], LT[-ზე]',\n        'nextDay' => '[ხვალ], LT[-ზე]',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current, \\Carbon\\CarbonInterface $other) {\n            return ($current->isSameWeek($other) ? '' : '[შემდეგ] ').'dddd, LT[-ზე]';\n        },\n        'lastDay' => '[გუშინ], LT[-ზე]',\n        'lastWeek' => '[წინა] dddd, LT-ზე',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        if ($number === 0) {\n            return $number;\n        }\n        if ($number === 1) {\n            return $number.'-ლი';\n        }\n        if (($number < 20) || ($number <= 100 && ($number % 20 === 0)) || ($number % 100 === 0)) {\n            return 'მე-'.$number;\n        }\n\n        return $number.'-ე';\n    },\n    'months' => ['იანვარს', 'თებერვალს', 'მარტს', 'აპრილის', 'მაისს', 'ივნისს', 'ივლისს', 'აგვისტს', 'სექტემბერს', 'ოქტომბერს', 'ნოემბერს', 'დეკემბერს'],\n    'months_standalone' => ['იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'],\n    'months_short' => ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'],\n    'months_regexp' => '/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['კვირას', 'ორშაბათს', 'სამშაბათს', 'ოთხშაბათს', 'ხუთშაბათს', 'პარასკევს', 'შაბათს'],\n    'weekdays_standalone' => ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'],\n    'weekdays_short' => ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'],\n    'weekdays_min' => ['კვ', 'ორ', 'სა', 'ოთ', 'ხუ', 'პა', 'შა'],\n    'weekdays_regexp' => '/^([^d].*|.*[^d])$/',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' და '],\n    'meridiem' => function ($hour) {\n        if ($hour >= 4) {\n            if ($hour < 11) {\n                return 'დილის';\n            }\n\n            if ($hour < 16) {\n                return 'შუადღის';\n            }\n\n            if ($hour < 22) {\n                return 'საღამოს';\n            }\n        }\n\n        return 'ღამის';\n    },\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ka.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kab.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/kab_DZ.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - belkacem77@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Yennayer', 'Fuṛar', 'Meɣres', 'Yebrir', 'Mayyu', 'Yunyu', 'Yulyu', 'ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Wambeṛ', 'Dujembeṛ'],\n    'months_short' => ['Yen', 'Fur', 'Meɣ', 'Yeb', 'May', 'Yun', 'Yul', 'ɣuc', 'Cte', 'Tub', 'Wam', 'Duj'],\n    'weekdays' => ['Acer', 'Arim', 'Aram', 'Ahad', 'Amhad', 'Sem', 'Sed'],\n    'weekdays_short' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'],\n    'weekdays_min' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['FT', 'MD'],\n\n    'year' => ':count n yiseggasen',\n    'y' => ':count n yiseggasen',\n    'a_year' => ':count n yiseggasen',\n\n    'month' => ':count n wayyuren',\n    'm' => ':count n wayyuren',\n    'a_month' => ':count n wayyuren',\n\n    'week' => ':count n ledwaṛ', // less reliable\n    'w' => ':count n ledwaṛ', // less reliable\n    'a_week' => ':count n ledwaṛ', // less reliable\n\n    'day' => ':count n wussan',\n    'd' => ':count n wussan',\n    'a_day' => ':count n wussan',\n\n    'hour' => ':count n tsaɛtin',\n    'h' => ':count n tsaɛtin',\n    'a_hour' => ':count n tsaɛtin',\n\n    'minute' => ':count n tedqiqin',\n    'min' => ':count n tedqiqin',\n    'a_minute' => ':count n tedqiqin',\n\n    'second' => ':count tasdidt', // less reliable\n    's' => ':count tasdidt', // less reliable\n    'a_second' => ':count tasdidt', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kam.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Ĩyakwakya', 'Ĩyawĩoo'],\n    'weekdays' => ['Wa kyumwa', 'Wa kwambĩlĩlya', 'Wa kelĩ', 'Wa katatũ', 'Wa kana', 'Wa katano', 'Wa thanthatũ'],\n    'weekdays_short' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'],\n    'weekdays_min' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'],\n    'months' => ['Mwai wa mbee', 'Mwai wa kelĩ', 'Mwai wa katatũ', 'Mwai wa kana', 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'],\n    'months_short' => ['Mbe', 'Kel', 'Ktũ', 'Kan', 'Ktn', 'Tha', 'Moo', 'Nya', 'Knd', 'Ĩku', 'Ĩkm', 'Ĩkl'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    // Too unreliable\n    /*\n    'year' => ':count mbua', // less reliable\n    'y' => ':count mbua', // less reliable\n    'a_year' => ':count mbua', // less reliable\n\n    'month' => ':count ndakitali', // less reliable\n    'm' => ':count ndakitali', // less reliable\n    'a_month' => ':count ndakitali', // less reliable\n\n    'day' => ':count wia', // less reliable\n    'd' => ':count wia', // less reliable\n    'a_day' => ':count wia', // less reliable\n\n    'hour' => ':count orasan', // less reliable\n    'h' => ':count orasan', // less reliable\n    'a_hour' => ':count orasan', // less reliable\n\n    'minute' => ':count orasan', // less reliable\n    'min' => ':count orasan', // less reliable\n    'a_minute' => ':count orasan', // less reliable\n    */\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kde.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Muhi', 'Chilo'],\n    'weekdays' => ['Liduva lyapili', 'Liduva lyatatu', 'Liduva lyanchechi', 'Liduva lyannyano', 'Liduva lyannyano na linji', 'Liduva lyannyano na mavili', 'Liduva litandi'],\n    'weekdays_short' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'],\n    'weekdays_min' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'],\n    'months' => ['Mwedi Ntandi', 'Mwedi wa Pili', 'Mwedi wa Tatu', 'Mwedi wa Nchechi', 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', 'Mwedi wa Nnyano na Mivili', 'Mwedi wa Nnyano na Mitatu', 'Mwedi wa Nnyano na Nchechi', 'Mwedi wa Nnyano na Nnyano', 'Mwedi wa Nnyano na Nnyano na U', 'Mwedi wa Nnyano na Nnyano na M'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kea.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['a', 'p'],\n    'weekdays' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sabadu'],\n    'weekdays_short' => ['dum', 'sig', 'ter', 'kua', 'kin', 'ses', 'sab'],\n    'weekdays_min' => ['du', 'si', 'te', 'ku', 'ki', 'se', 'sa'],\n    'weekdays_standalone' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sábadu'],\n    'months' => ['Janeru', 'Febreru', 'Marsu', 'Abril', 'Maiu', 'Junhu', 'Julhu', 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Otu', 'Nuv', 'Diz'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D [di] MMMM [di] YYYY HH:mm',\n        'LLLL' => 'dddd, D [di] MMMM [di] YYYY HH:mm',\n    ],\n\n    'year' => ':count otunu', // less reliable\n    'y' => ':count otunu', // less reliable\n    'a_year' => ':count otunu', // less reliable\n\n    'week' => ':count día dumingu', // less reliable\n    'w' => ':count día dumingu', // less reliable\n    'a_week' => ':count día dumingu', // less reliable\n\n    'day' => ':count diâ', // less reliable\n    'd' => ':count diâ', // less reliable\n    'a_day' => ':count diâ', // less reliable\n\n    'minute' => ':count sugundu', // less reliable\n    'min' => ':count sugundu', // less reliable\n    'a_minute' => ':count sugundu', // less reliable\n\n    'second' => ':count dós', // less reliable\n    's' => ':count dós', // less reliable\n    'a_second' => ':count dós', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/khq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Adduha', 'Aluula'],\n    'weekdays' => ['Alhadi', 'Atini', 'Atalata', 'Alarba', 'Alhamiisa', 'Aljuma', 'Assabdu'],\n    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'],\n    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'],\n    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],\n    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ki.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Kiroko', 'Hwaĩ-inĩ'],\n    'weekdays' => ['Kiumia', 'Njumatatũ', 'Njumaine', 'Njumatana', 'Aramithi', 'Njumaa', 'Njumamothi'],\n    'weekdays_short' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'],\n    'weekdays_min' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'],\n    'months' => ['Njenuarĩ', 'Mwere wa kerĩ', 'Mwere wa gatatũ', 'Mwere wa kana', 'Mwere wa gatano', 'Mwere wa gatandatũ', 'Mwere wa mũgwanja', 'Mwere wa kanana', 'Mwere wa kenda', 'Mwere wa ikũmi', 'Mwere wa ikũmi na ũmwe', 'Ndithemba'],\n    'months_short' => ['JEN', 'WKR', 'WGT', 'WKN', 'WTN', 'WTD', 'WMJ', 'WNN', 'WKD', 'WIK', 'WMW', 'DIT'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count mĩaka', // less reliable\n    'y' => ':count mĩaka', // less reliable\n    'a_year' => ':count mĩaka', // less reliable\n\n    'month' => ':count mweri', // less reliable\n    'm' => ':count mweri', // less reliable\n    'a_month' => ':count mweri', // less reliable\n\n    'week' => ':count kiumia', // less reliable\n    'w' => ':count kiumia', // less reliable\n    'a_week' => ':count kiumia', // less reliable\n\n    'day' => ':count mũthenya', // less reliable\n    'd' => ':count mũthenya', // less reliable\n    'a_day' => ':count mũthenya', // less reliable\n\n    'hour' => ':count thaa', // less reliable\n    'h' => ':count thaa', // less reliable\n    'a_hour' => ':count thaa', // less reliable\n\n    'minute' => ':count mundu', // less reliable\n    'min' => ':count mundu', // less reliable\n    'a_minute' => ':count mundu', // less reliable\n\n    'second' => ':count igego', // less reliable\n    's' => ':count igego', // less reliable\n    'a_second' => ':count igego', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'kk');\n\n/*\n * Authors:\n * - Josh Soref\n * - François B\n * - Talat Uspanov\n * - Нурлан Рахимжанов\n * - Toleugazy Kali\n */\nreturn [\n    'year' => ':count жыл',\n    'a_year' => 'бір жыл|:count жыл',\n    'y' => ':count ж.',\n    'month' => ':count ай',\n    'a_month' => 'бір ай|:count ай',\n    'm' => ':count ай',\n    'week' => ':count апта',\n    'a_week' => 'бір апта',\n    'w' => ':count ап.',\n    'day' => ':count күн',\n    'a_day' => 'бір күн|:count күн',\n    'd' => ':count к.',\n    'hour' => ':count сағат',\n    'a_hour' => 'бір сағат|:count сағат',\n    'h' => ':count са.',\n    'minute' => ':count минут',\n    'a_minute' => 'бір минут|:count минут',\n    'min' => ':count м.',\n    'second' => ':count секунд',\n    'a_second' => 'бірнеше секунд|:count секунд',\n    's' => ':count се.',\n    'ago' => ':time бұрын',\n    'from_now' => ':time ішінде',\n    'after' => ':time кейін',\n    'before' => ':time бұрын',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Бүгін сағат] LT',\n        'nextDay' => '[Ертең сағат] LT',\n        'nextWeek' => 'dddd [сағат] LT',\n        'lastDay' => '[Кеше сағат] LT',\n        'lastWeek' => '[Өткен аптаның] dddd [сағат] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        static $suffixes = [\n            0 => '-ші',\n            1 => '-ші',\n            2 => '-ші',\n            3 => '-ші',\n            4 => '-ші',\n            5 => '-ші',\n            6 => '-шы',\n            7 => '-ші',\n            8 => '-ші',\n            9 => '-шы',\n            10 => '-шы',\n            20 => '-шы',\n            30 => '-шы',\n            40 => '-шы',\n            50 => '-ші',\n            60 => '-шы',\n            70 => '-ші',\n            80 => '-ші',\n            90 => '-шы',\n            100 => '-ші',\n        ];\n\n        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');\n    },\n    'months' => ['қаңтар', 'ақпан', 'наурыз', 'сәуір', 'мамыр', 'маусым', 'шілде', 'тамыз', 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'],\n    'months_short' => ['қаң', 'ақп', 'нау', 'сәу', 'мам', 'мау', 'шіл', 'там', 'қыр', 'қаз', 'қар', 'жел'],\n    'weekdays' => ['жексенбі', 'дүйсенбі', 'сейсенбі', 'сәрсенбі', 'бейсенбі', 'жұма', 'сенбі'],\n    'weekdays_short' => ['жек', 'дүй', 'сей', 'сәр', 'бей', 'жұм', 'сен'],\n    'weekdays_min' => ['жк', 'дй', 'сй', 'ср', 'бй', 'жм', 'сн'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' және '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/kk.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kkj.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/kl_GL.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Danish Standards Association    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'MMM DD YYYY',\n    ],\n    'months' => ['januaarip', 'februaarip', 'marsip', 'apriilip', 'maajip', 'juunip', 'juulip', 'aggustip', 'septembarip', 'oktobarip', 'novembarip', 'decembarip'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['sapaat', 'ataasinngorneq', 'marlunngorneq', 'pingasunngorneq', 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'],\n    'weekdays_short' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'],\n    'weekdays_min' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ukioq', // less reliable\n    'y' => ':count ukioq', // less reliable\n    'a_year' => ':count ukioq', // less reliable\n\n    'month' => ':count Ukiup qaammatai',\n    'm' => ':count Ukiup qaammatai',\n    'a_month' => ':count Ukiup qaammatai',\n\n    'week' => ':count sapaat', // less reliable\n    'w' => ':count sapaat', // less reliable\n    'a_week' => ':count sapaat', // less reliable\n\n    'day' => ':count ulloq',\n    'd' => ':count ulloq',\n    'a_day' => ':count ulloq',\n\n    'hour' => ':count akunneq',\n    'h' => ':count akunneq',\n    'a_hour' => ':count akunneq',\n\n    'minute' => ':count eqqumiitsuliorneq', // less reliable\n    'min' => ':count eqqumiitsuliorneq', // less reliable\n    'a_minute' => ':count eqqumiitsuliorneq', // less reliable\n\n    'second' => ':count marluk', // less reliable\n    's' => ':count marluk', // less reliable\n    'a_second' => ':count marluk', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kln.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['krn', 'koosk'],\n    'weekdays' => ['Kotisap', 'Kotaai', 'Koaeng’', 'Kosomok', 'Koang’wan', 'Komuut', 'Kolo'],\n    'weekdays_short' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'],\n    'weekdays_min' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'],\n    'months' => ['Mulgul', 'Ng’atyaato', 'Kiptaamo', 'Iwootkuut', 'Mamuut', 'Paagi', 'Ng’eiyeet', 'Rooptui', 'Bureet', 'Epeeso', 'Kipsuunde ne taai', 'Kipsuunde nebo aeng’'],\n    'months_short' => ['Mul', 'Ngat', 'Taa', 'Iwo', 'Mam', 'Paa', 'Nge', 'Roo', 'Bur', 'Epe', 'Kpt', 'Kpa'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count maghatiat', // less reliable\n    'y' => ':count maghatiat', // less reliable\n    'a_year' => ':count maghatiat', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/km.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kruy Vanna\n * - Sereysethy Touch\n * - JD Isaacks\n * - Sovichet Tep\n */\nreturn [\n    'year' => '{1}មួយឆ្នាំ|]1,Inf[:count ឆ្នាំ',\n    'y' => ':count ឆ្នាំ',\n    'month' => '{1}មួយខែ|]1,Inf[:count ខែ',\n    'm' => ':count ខែ',\n    'week' => ':count សប្ដាហ៍',\n    'w' => ':count សប្ដាហ៍',\n    'day' => '{1}មួយថ្ងៃ|]1,Inf[:count ថ្ងៃ',\n    'd' => ':count ថ្ងៃ',\n    'hour' => '{1}មួយម៉ោង|]1,Inf[:count ម៉ោង',\n    'h' => ':count ម៉ោង',\n    'minute' => '{1}មួយនាទី|]1,Inf[:count នាទី',\n    'min' => ':count នាទី',\n    'second' => '{1}ប៉ុន្មានវិនាទី|]1,Inf[:count វិនាទី',\n    's' => ':count វិនាទី',\n    'ago' => ':timeមុន',\n    'from_now' => ':timeទៀត',\n    'after' => 'នៅ​ក្រោយ :time',\n    'before' => 'នៅ​មុន :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ថ្ងៃនេះ ម៉ោង] LT',\n        'nextDay' => '[ស្អែក ម៉ោង] LT',\n        'nextWeek' => 'dddd [ម៉ោង] LT',\n        'lastDay' => '[ម្សិលមិញ ម៉ោង] LT',\n        'lastWeek' => 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => 'ទី:number',\n    'meridiem' => ['ព្រឹក', 'ល្ងាច'],\n    'months' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'],\n    'months_short' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'],\n    'weekdays' => ['អាទិត្យ', 'ច័ន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'],\n    'weekdays_short' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'],\n    'weekdays_min' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', 'និង '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/km.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - MOHAN M U\n * - François B\n * - rajeevnaikte\n */\nreturn [\n    'year' => '{1}ಒಂದು ವರ್ಷ|]1,Inf[:count ವರ್ಷ',\n    'month' => '{1}ಒಂದು ತಿಂಗಳು|]1,Inf[:count ತಿಂಗಳು',\n    'week' => '{1}ಒಂದು ವಾರ|]1,Inf[:count ವಾರಗಳು',\n    'day' => '{1}ಒಂದು ದಿನ|]1,Inf[:count ದಿನ',\n    'hour' => '{1}ಒಂದು ಗಂಟೆ|]1,Inf[:count ಗಂಟೆ',\n    'minute' => '{1}ಒಂದು ನಿಮಿಷ|]1,Inf[:count ನಿಮಿಷ',\n    'second' => '{1}ಕೆಲವು ಕ್ಷಣಗಳು|]1,Inf[:count ಸೆಕೆಂಡುಗಳು',\n    'ago' => ':time ಹಿಂದೆ',\n    'from_now' => ':time ನಂತರ',\n    'diff_yesterday' => 'ನಿನ್ನೆ',\n    'diff_tomorrow' => 'ನಾಳೆ',\n    'formats' => [\n        'LT' => 'A h:mm',\n        'LTS' => 'A h:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ಇಂದು] LT',\n        'nextDay' => '[ನಾಳೆ] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[ನಿನ್ನೆ] LT',\n        'lastWeek' => '[ಕೊನೆಯ] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberನೇ',\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'ರಾತ್ರಿ';\n        }\n        if ($hour < 10) {\n            return 'ಬೆಳಿಗ್ಗೆ';\n        }\n        if ($hour < 17) {\n            return 'ಮಧ್ಯಾಹ್ನ';\n        }\n        if ($hour < 20) {\n            return 'ಸಂಜೆ';\n        }\n\n        return 'ರಾತ್ರಿ';\n    },\n    'months' => ['ಜನವರಿ', 'ಫೆಬ್ರವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'],\n    'months_short' => ['ಜನ', 'ಫೆಬ್ರ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂ', 'ಅಕ್ಟೋ', 'ನವೆಂ', 'ಡಿಸೆಂ'],\n    'weekdays' => ['ಭಾನುವಾರ', 'ಸೋಮವಾರ', 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'],\n    'weekdays_short' => ['ಭಾನು', 'ಸೋಮ', 'ಮಂಗಳ', 'ಬುಧ', 'ಗುರು', 'ಶುಕ್ರ', 'ಶನಿ'],\n    'weekdays_min' => ['ಭಾ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],\n    'list' => ', ',\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/kn.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ko.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - FourwingsY\n * - François B\n * - Jason Katz-Brown\n * - Seokjun Kim\n * - Junho Kim\n * - JD Isaacks\n * - Juwon Kim\n */\nreturn [\n    'year' => '{1}일 년|]1,Inf[:count년',\n    'y' => ':count 년',\n    'month' => '{1}한 달|]1,Inf[:count달',\n    'm' => ':count 개월',\n    'week' => ':count 주일',\n    'w' => ':count 주일',\n    'day' => '{1}하루|]1,Inf[:count일',\n    'd' => ':count 일',\n    'hour' => '{1}한 시간|]1,Inf[:count시간',\n    'h' => ':count 시간',\n    'minute' => '{1}1분|]1,Inf[:count분',\n    'min' => ':count 분',\n    'second' => '{1}몇 초|]1,Inf[:count초',\n    's' => ':count 초',\n    'ago' => ':time 전',\n    'from_now' => ':time 후',\n    'after' => ':time 이후',\n    'before' => ':time 이전',\n    'formats' => [\n        'LT' => 'A h:mm',\n        'LTS' => 'A h:mm:ss',\n        'L' => 'YYYY.MM.DD.',\n        'LL' => 'YYYY년 MMMM D일',\n        'LLL' => 'YYYY년 MMMM D일 A h:mm',\n        'LLLL' => 'YYYY년 MMMM D일 dddd A h:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '오늘 LT',\n        'nextDay' => '내일 LT',\n        'nextWeek' => 'dddd LT',\n        'lastDay' => '어제 LT',\n        'lastWeek' => '지난주 dddd LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'일';\n            case 'M':\n                return $number.'월';\n            case 'w':\n            case 'W':\n                return $number.'주';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => ['오전', '오후'],\n    'months' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],\n    'months_short' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],\n    'weekdays' => ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],\n    'weekdays_short' => ['일', '월', '화', '수', '목', '금', '토'],\n    'weekdays_min' => ['일', '월', '화', '수', '목', '금', '토'],\n    'list' => ' ',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ko.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ko.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kok.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/kok_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D-M-YY',\n    ],\n    'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],\n    'months_short' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],\n    'weekdays' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],\n    'weekdays_short' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],\n    'weekdays_min' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['म.पू.', 'म.नं.'],\n\n    'year' => ':count वैशाकु', // less reliable\n    'y' => ':count वैशाकु', // less reliable\n    'a_year' => ':count वैशाकु', // less reliable\n\n    'week' => ':count आदित्यवार', // less reliable\n    'w' => ':count आदित्यवार', // less reliable\n    'a_week' => ':count आदित्यवार', // less reliable\n\n    'minute' => ':count नोंद', // less reliable\n    'min' => ':count नोंद', // less reliable\n    'a_minute' => ':count नोंद', // less reliable\n\n    'second' => ':count तेंको', // less reliable\n    's' => ':count तेंको', // less reliable\n    'a_second' => ':count तेंको', // less reliable\n\n    'month' => ':count मैनो',\n    'm' => ':count मैनो',\n    'a_month' => ':count मैनो',\n\n    'day' => ':count दिवसु',\n    'd' => ':count दिवसु',\n    'a_day' => ':count दिवसु',\n\n    'hour' => ':count घंते',\n    'h' => ':count घंते',\n    'a_hour' => ':count घंते',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ks.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ks_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'M/D/YY',\n    ],\n    'months' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'],\n    'weekdays' => ['آتهوار', 'ژءندروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],\n    'weekdays_short' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],\n    'weekdays_min' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['دوپھربرونھ', 'دوپھرپتھ'],\n\n    'year' => ':count آب', // less reliable\n    'y' => ':count آب', // less reliable\n    'a_year' => ':count آب', // less reliable\n\n    'month' => ':count रान्', // less reliable\n    'm' => ':count रान्', // less reliable\n    'a_month' => ':count रान्', // less reliable\n\n    'week' => ':count آتھٕوار', // less reliable\n    'w' => ':count آتھٕوار', // less reliable\n    'a_week' => ':count آتھٕوار', // less reliable\n\n    'hour' => ':count سۄن', // less reliable\n    'h' => ':count سۄن', // less reliable\n    'a_hour' => ':count سۄن', // less reliable\n\n    'minute' => ':count فَن', // less reliable\n    'min' => ':count فَن', // less reliable\n    'a_minute' => ':count فَن', // less reliable\n\n    'second' => ':count दोʼयुम', // less reliable\n    's' => ':count दोʼयुम', // less reliable\n    'a_second' => ':count दोʼयुम', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - ks-gnome-trans-commits@lists.code.indlinux.net\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'M/D/YY',\n    ],\n    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'weekdays' => ['आथवार', 'चॅ़दुरवार', 'बोमवार', 'ब्वदवार', 'ब्रसवार', 'शोकुरवार', 'बटुवार'],\n    'weekdays_short' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'],\n    'weekdays_min' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ksb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['makeo', 'nyiaghuo'],\n    'weekdays' => ['Jumaapii', 'Jumaatatu', 'Jumaane', 'Jumaatano', 'Alhamisi', 'Ijumaa', 'Jumaamosi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Januali', 'Febluali', 'Machi', 'Aplili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ksf.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['sárúwá', 'cɛɛ́nko'],\n    'weekdays' => ['sɔ́ndǝ', 'lǝndí', 'maadí', 'mɛkrɛdí', 'jǝǝdí', 'júmbá', 'samdí'],\n    'weekdays_short' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'],\n    'weekdays_min' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'],\n    'months' => ['ŋwíí a ntɔ́ntɔ', 'ŋwíí akǝ bɛ́ɛ', 'ŋwíí akǝ ráá', 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', 'ŋwíí akǝ táafɔk', 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', 'ŋwíí akǝ táanin', 'ŋwíí akǝ ntɛk', 'ŋwíí akǝ ntɛk di bɔ́k', 'ŋwíí akǝ ntɛk di bɛ́ɛ'],\n    'months_short' => ['ŋ1', 'ŋ2', 'ŋ3', 'ŋ4', 'ŋ5', 'ŋ6', 'ŋ7', 'ŋ8', 'ŋ9', 'ŋ10', 'ŋ11', 'ŋ12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ksh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['v.M.', 'n.M.'],\n    'weekdays' => ['Sunndaach', 'Mohndaach', 'Dinnsdaach', 'Metwoch', 'Dunnersdaach', 'Friidaach', 'Samsdaach'],\n    'weekdays_short' => ['Su.', 'Mo.', 'Di.', 'Me.', 'Du.', 'Fr.', 'Sa.'],\n    'weekdays_min' => ['Su', 'Mo', 'Di', 'Me', 'Du', 'Fr', 'Sa'],\n    'months' => ['Jannewa', 'Fäbrowa', 'Määz', 'Aprell', 'Mai', 'Juuni', 'Juuli', 'Oujoß', 'Septämber', 'Oktohber', 'Novämber', 'Dezämber'],\n    'months_short' => ['Jan', 'Fäb', 'Mäz', 'Apr', 'Mai', 'Jun', 'Jul', 'Ouj', 'Säp', 'Okt', 'Nov', 'Dez'],\n    'months_short_standalone' => ['Jan.', 'Fäb.', 'Mäz.', 'Apr.', 'Mai', 'Jun.', 'Jul.', 'Ouj.', 'Säp.', 'Okt.', 'Nov.', 'Dez.'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D. M. YYYY',\n        'LL' => 'D. MMM. YYYY',\n        'LLL' => 'D. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, [dä] D. MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count Johr',\n    'y' => ':count Johr',\n    'a_year' => ':count Johr',\n\n    'month' => ':count Moohnd',\n    'm' => ':count Moohnd',\n    'a_month' => ':count Moohnd',\n\n    'week' => ':count woch',\n    'w' => ':count woch',\n    'a_week' => ':count woch',\n\n    'day' => ':count Daach',\n    'd' => ':count Daach',\n    'a_day' => ':count Daach',\n\n    'hour' => ':count Uhr',\n    'h' => ':count Uhr',\n    'a_hour' => ':count Uhr',\n\n    'minute' => ':count Menutt',\n    'min' => ':count Menutt',\n    'a_minute' => ':count Menutt',\n\n    'second' => ':count Sekůndt',\n    's' => ':count Sekůndt',\n    'a_second' => ':count Sekůndt',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ku.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Halwest Manguri\n */\n$months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', '‌حوزەیران', 'تەمموز', 'ئاب', 'ئەیلول', 'تشرینی یەکەم', 'تشرینی دووەم', 'کانونی یەکەم'];\n\n$weekdays = ['دوو شەممە', 'سێ شەممە', 'چوار شەممە', 'پێنج شەممە', 'هەینی', 'شەممە', 'یەک شەممە'];\n\nreturn [\n    'ago' => 'لەمەوبەر :time',\n    'from_now' => ':time لە ئێستاوە',\n    'after' => 'دوای :time',\n    'before' => 'پێش :time',\n    'year' => '{0}ساڵ|{1}ساڵ|{2}ساڵ|[3,10]:count ساڵ|[11,Inf]:count ساڵ',\n    'month' => '{0}مانگ|{1}مانگ|{2}مانگ|[3,10]:count مانگ|[11,Inf]:count مانگ',\n    'week' => '{0}هەفتە|{1}هەفتە|{2}هەفتە|[3,10]:count هەفتە|[11,Inf]:count هەفتە',\n    'day' => '{0}ڕۆژ|{1}ڕۆژ|{2}ڕۆژ|[3,10]:count ڕۆژ|[11,Inf]:count ڕۆژ',\n    'hour' => '{0}کاژێر|{1}کاژێر|{2}کاژێر|[3,10]:count کاژێر|[11,Inf]:count کاژێر',\n    'minute' => '{0}خولەک|{1}خولەک|{2}خولەک|[3,10]:count خولەک|[11,Inf]:count خولەک',\n    'second' => '{0}چرکە|{1}چرکە|{2}چرکە|[3,10]:count چرکە|[11,Inf]:count چرکە',\n    'months' => $months,\n    'months_standalone' => $months,\n    'months_short' => $months,\n    'weekdays' => $weekdays,\n    'weekdays_short' => $weekdays,\n    'weekdays_min' => $weekdays,\n    'list' => [', ', ' û '],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ku.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/kw_GB.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Alastair McKinstry    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['mis Genver', 'mis Hwevrer', 'mis Meurth', 'mis Ebrel', 'mis Me', 'mis Metheven', 'mis Gortheren', 'mis Est', 'mis Gwynngala', 'mis Hedra', 'mis Du', 'mis Kevardhu'],\n    'months_short' => ['Gen', 'Hwe', 'Meu', 'Ebr', 'Me', 'Met', 'Gor', 'Est', 'Gwn', 'Hed', 'Du', 'Kev'],\n    'weekdays' => ['De Sul', 'De Lun', 'De Merth', 'De Merher', 'De Yow', 'De Gwener', 'De Sadorn'],\n    'weekdays_short' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'],\n    'weekdays_min' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count bledhen',\n    'y' => ':count bledhen',\n    'a_year' => ':count bledhen',\n\n    'month' => ':count mis',\n    'm' => ':count mis',\n    'a_month' => ':count mis',\n\n    'week' => ':count seythen',\n    'w' => ':count seythen',\n    'a_week' => ':count seythen',\n\n    'day' => ':count dydh',\n    'd' => ':count dydh',\n    'a_day' => ':count dydh',\n\n    'hour' => ':count eur',\n    'h' => ':count eur',\n    'a_hour' => ':count eur',\n\n    'minute' => ':count mynysen',\n    'min' => ':count mynysen',\n    'a_minute' => ':count mynysen',\n\n    'second' => ':count pryjwyth',\n    's' => ':count pryjwyth',\n    'a_second' => ':count pryjwyth',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ky.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'ky');\n\n/*\n * Authors:\n * - acutexyz\n * - Josh Soref\n * - François B\n * - Chyngyz Arystan uulu\n * - Chyngyz\n * - acutexyz\n * - Josh Soref\n * - François B\n * - Chyngyz Arystan uulu\n */\nreturn [\n    'year' => ':count жыл',\n    'a_year' => 'бир жыл|:count жыл',\n    'y' => ':count жыл',\n    'month' => ':count ай',\n    'a_month' => 'бир ай|:count ай',\n    'm' => ':count ай',\n    'week' => ':count апта',\n    'a_week' => 'бир апта|:count апта',\n    'w' => ':count апт.',\n    'day' => ':count күн',\n    'a_day' => 'бир күн|:count күн',\n    'd' => ':count күн',\n    'hour' => ':count саат',\n    'a_hour' => 'бир саат|:count саат',\n    'h' => ':count саат.',\n    'minute' => ':count мүнөт',\n    'a_minute' => 'бир мүнөт|:count мүнөт',\n    'min' => ':count мүн.',\n    'second' => ':count секунд',\n    'a_second' => 'бирнече секунд|:count секунд',\n    's' => ':count сек.',\n    'ago' => ':time мурун',\n    'from_now' => ':time ичинде',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Бүгүн саат] LT',\n        'nextDay' => '[Эртең саат] LT',\n        'nextWeek' => 'dddd [саат] LT',\n        'lastDay' => '[Кече саат] LT',\n        'lastWeek' => '[Өткен аптанын] dddd [күнү] [саат] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        static $suffixes = [\n            0 => '-чү',\n            1 => '-чи',\n            2 => '-чи',\n            3 => '-чү',\n            4 => '-чү',\n            5 => '-чи',\n            6 => '-чы',\n            7 => '-чи',\n            8 => '-чи',\n            9 => '-чу',\n            10 => '-чу',\n            20 => '-чы',\n            30 => '-чу',\n            40 => '-чы',\n            50 => '-чү',\n            60 => '-чы',\n            70 => '-чи',\n            80 => '-чи',\n            90 => '-чу',\n            100 => '-чү',\n        ];\n\n        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');\n    },\n    'months' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'],\n    'months_short' => ['янв', 'фев', 'март', 'апр', 'май', 'июнь', 'июль', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'weekdays' => ['Жекшемби', 'Дүйшөмбү', 'Шейшемби', 'Шаршемби', 'Бейшемби', 'Жума', 'Ишемби'],\n    'weekdays_short' => ['Жек', 'Дүй', 'Шей', 'Шар', 'Бей', 'Жум', 'Ише'],\n    'weekdays_min' => ['Жк', 'Дй', 'Шй', 'Шр', 'Бй', 'Жм', 'Иш'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => ' ',\n    'meridiem' => ['таңкы', 'түштөн кийинки'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ky.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lag.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['TOO', 'MUU'],\n    'weekdays' => ['Jumapíiri', 'Jumatátu', 'Jumaíne', 'Jumatáano', 'Alamíisi', 'Ijumáa', 'Jumamóosi'],\n    'weekdays_short' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'],\n    'weekdays_min' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'],\n    'months' => ['Kʉfúngatɨ', 'Kʉnaanɨ', 'Kʉkeenda', 'Kwiikumi', 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', 'Kʉsaatʉ', 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'],\n    'months_short' => ['Fúngatɨ', 'Naanɨ', 'Keenda', 'Ikúmi', 'Inyambala', 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', 'Sasatʉ'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - dan-nl\n */\nreturn [\n    'year' => ':count Joer',\n    'y' => ':countJ',\n    'month' => ':count Mount|:count Méint',\n    'm' => ':countMo',\n    'week' => ':count Woch|:count Wochen',\n    'w' => ':countWo|:countWo',\n    'day' => ':count Dag|:count Deeg',\n    'd' => ':countD',\n    'hour' => ':count Stonn|:count Stonnen',\n    'h' => ':countSto',\n    'minute' => ':count Minutt|:count Minutten',\n    'min' => ':countM',\n    'second' => ':count Sekonnen',\n    's' => ':countSek',\n\n    'formats' => [\n        'LT' => 'H:mm [Auer]',\n        'LTS' => 'H:mm:ss [Auer]',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm [Auer]',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm [Auer]',\n    ],\n\n    'calendar' => [\n        'sameDay' => '[Haut um] LT',\n        'nextDay' => '[Muer um] LT',\n        'nextWeek' => 'dddd [um] LT',\n        'lastDay' => '[Gëschter um] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n            switch ($date->dayOfWeek) {\n                case 2:\n                case 4:\n                    return '[Leschten] dddd [um] LT';\n                default:\n                    return '[Leschte] dddd [um] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n\n    'months' => ['Januar', 'Februar', 'Mäerz', 'Abrëll', 'Mee', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],\n    'months_short' => ['Jan.', 'Febr.', 'Mrz.', 'Abr.', 'Mee', 'Jun.', 'Jul.', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.'],\n    'weekdays' => ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'],\n    'weekdays_short' => ['So.', 'Mé.', 'Dë.', 'Më.', 'Do.', 'Fr.', 'Sa.'],\n    'weekdays_min' => ['So', 'Mé', 'Dë', 'Më', 'Do', 'Fr', 'Sa'],\n    'ordinal' => ':number.',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' an '],\n    'meridiem' => ['moies', 'mëttes'],\n    'weekdays_short_standalone' => ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'],\n    'months_short_standalone' => ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/lb.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/lg_UG.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Akademe ya Luganda Kizito Birabwa kompyuta@kizito.uklinux.net\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'],\n    'weekdays' => ['Sabiiti', 'Balaza', 'Lwakubiri', 'Lwakusatu', 'Lwakuna', 'Lwakutaano', 'Lwamukaaga'],\n    'weekdays_short' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'],\n    'weekdays_min' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'month' => ':count njuba', // less reliable\n    'm' => ':count njuba', // less reliable\n    'a_month' => ':count njuba', // less reliable\n\n    'year' => ':count mwaaka',\n    'y' => ':count mwaaka',\n    'a_year' => ':count mwaaka',\n\n    'week' => ':count sabbiiti',\n    'w' => ':count sabbiiti',\n    'a_week' => ':count sabbiiti',\n\n    'day' => ':count lunaku',\n    'd' => ':count lunaku',\n    'a_day' => ':count lunaku',\n\n    'hour' => 'saawa :count',\n    'h' => 'saawa :count',\n    'a_hour' => 'saawa :count',\n\n    'minute' => 'ddakiika :count',\n    'min' => 'ddakiika :count',\n    'a_minute' => 'ddakiika :count',\n\n    'second' => ':count kyʼokubiri',\n    's' => ':count kyʼokubiri',\n    'a_second' => ':count kyʼokubiri',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/li.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/li_NL.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['jannewarie', 'fibberwarie', 'miert', 'eprèl', 'meij', 'junie', 'julie', 'augustus', 'september', 'oktober', 'november', 'desember'],\n    'months_short' => ['jan', 'fib', 'mie', 'epr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['zóndig', 'maondig', 'daensdig', 'goonsdig', 'dónderdig', 'vriedig', 'zaoterdig'],\n    'weekdays_short' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'],\n    'weekdays_min' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'minute' => ':count momênt', // less reliable\n    'min' => ':count momênt', // less reliable\n    'a_minute' => ':count momênt', // less reliable\n\n    'year' => ':count jaor',\n    'y' => ':count jaor',\n    'a_year' => ':count jaor',\n\n    'month' => ':count maond',\n    'm' => ':count maond',\n    'a_month' => ':count maond',\n\n    'week' => ':count waek',\n    'w' => ':count waek',\n    'a_week' => ':count waek',\n\n    'day' => ':count daag',\n    'd' => ':count daag',\n    'a_day' => ':count daag',\n\n    'hour' => ':count oer',\n    'h' => ':count oer',\n    'a_hour' => ':count oer',\n\n    'second' => ':count Secónd',\n    's' => ':count Secónd',\n    'a_second' => ':count Secónd',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lij.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/lij_IT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Gastaldi    alessio.gastaldi@libero.it\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['zenâ', 'fevrâ', 'marzo', 'avrî', 'mazzo', 'zûgno', 'lûggio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dixembre'],\n    'months_short' => ['zen', 'fev', 'mar', 'arv', 'maz', 'zûg', 'lûg', 'ago', 'set', 'ött', 'nov', 'dix'],\n    'weekdays' => ['domenega', 'lûnedì', 'martedì', 'mercUrdì', 'zêggia', 'venardì', 'sabbo'],\n    'weekdays_short' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'],\n    'weekdays_min' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count etæ', // less reliable\n    'y' => ':count etæ', // less reliable\n    'a_year' => ':count etæ', // less reliable\n\n    'month' => ':count meize',\n    'm' => ':count meize',\n    'a_month' => ':count meize',\n\n    'week' => ':count settemannha',\n    'w' => ':count settemannha',\n    'a_week' => ':count settemannha',\n\n    'day' => ':count giorno',\n    'd' => ':count giorno',\n    'a_day' => ':count giorno',\n\n    'hour' => ':count reléuio', // less reliable\n    'h' => ':count reléuio', // less reliable\n    'a_hour' => ':count reléuio', // less reliable\n\n    'minute' => ':count menûo',\n    'min' => ':count menûo',\n    'a_minute' => ':count menûo',\n\n    'second' => ':count segondo',\n    's' => ':count segondo',\n    'a_second' => ':count segondo',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lkt.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n\n    'month' => ':count haŋwí', // less reliable\n    'm' => ':count haŋwí', // less reliable\n    'a_month' => ':count haŋwí', // less reliable\n\n    'week' => ':count šakówiŋ', // less reliable\n    'w' => ':count šakówiŋ', // less reliable\n    'a_week' => ':count šakówiŋ', // less reliable\n\n    'hour' => ':count maza škaŋškaŋ', // less reliable\n    'h' => ':count maza škaŋškaŋ', // less reliable\n    'a_hour' => ':count maza škaŋškaŋ', // less reliable\n\n    'minute' => ':count číkʼala', // less reliable\n    'min' => ':count číkʼala', // less reliable\n    'a_minute' => ':count číkʼala', // less reliable\n\n    'year' => ':count waníyetu',\n    'y' => ':count waníyetu',\n    'a_year' => ':count waníyetu',\n\n    'day' => ':count aŋpétu',\n    'd' => ':count aŋpétu',\n    'a_day' => ':count aŋpétu',\n\n    'second' => ':count icinuŋpa',\n    's' => ':count icinuŋpa',\n    'a_second' => ':count icinuŋpa',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ln.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'months' => ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', 'sánzá ya zómi na míbalé'],\n    'months_short' => ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'],\n    'weekdays' => ['Lomíngo', 'Mosálá mɔ̌kɔ́', 'Misálá míbalé', 'Misálá mísáto', 'Misálá mínei', 'Misálá mítáno', 'Mpɔ́sɔ'],\n    'weekdays_short' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'],\n    'weekdays_min' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'mbula :count',\n    'y' => 'mbula :count',\n    'a_year' => 'mbula :count',\n\n    'month' => 'sánzá :count',\n    'm' => 'sánzá :count',\n    'a_month' => 'sánzá :count',\n\n    'week' => 'mpɔ́sɔ :count',\n    'w' => 'mpɔ́sɔ :count',\n    'a_week' => 'mpɔ́sɔ :count',\n\n    'day' => 'mokɔlɔ :count',\n    'd' => 'mokɔlɔ :count',\n    'a_day' => 'mokɔlɔ :count',\n\n    'hour' => 'ngonga :count',\n    'h' => 'ngonga :count',\n    'a_hour' => 'ngonga :count',\n\n    'minute' => 'miniti :count',\n    'min' => 'miniti :count',\n    'a_minute' => 'miniti :count',\n\n    'second' => 'segɔnde :count',\n    's' => 'segɔnde :count',\n    'a_second' => 'segɔnde :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ln.php', [\n    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],\n    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com\n */\nreturn require __DIR__.'/ln.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ln.php', [\n    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],\n    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ln.php', [\n    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],\n    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],\n    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'lo');\n\n/*\n * Authors:\n * - François B\n * - ryanhart2\n */\nreturn [\n    'year' => ':count ປີ',\n    'y' => ':count ປີ',\n    'month' => ':count ເດືອນ',\n    'm' => ':count ດ. ',\n    'week' => ':count ອາທິດ',\n    'w' => ':count ອທ. ',\n    'day' => ':count ມື້',\n    'd' => ':count ມື້',\n    'hour' => ':count ຊົ່ວໂມງ',\n    'h' => ':count ຊມ. ',\n    'minute' => ':count ນາທີ',\n    'min' => ':count ນທ. ',\n    'second' => 'ບໍ່ເທົ່າໃດວິນາທີ|:count ວິນາທີ',\n    's' => ':count ວິ. ',\n    'ago' => ':timeຜ່ານມາ',\n    'from_now' => 'ອີກ :time',\n    'diff_yesterday' => 'ມື້ວານນີ້ເວລາ',\n    'diff_tomorrow' => 'ມື້ອື່ນເວລາ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'ວັນdddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ມື້ນີ້ເວລາ] LT',\n        'nextDay' => '[ມື້ອື່ນເວລາ] LT',\n        'nextWeek' => '[ວັນ]dddd[ໜ້າເວລາ] LT',\n        'lastDay' => '[ມື້ວານນີ້ເວລາ] LT',\n        'lastWeek' => '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => 'ທີ່:number',\n    'meridiem' => ['ຕອນເຊົ້າ', 'ຕອນແລງ'],\n    'months' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'],\n    'months_short' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'],\n    'weekdays' => ['ອາທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'],\n    'weekdays_short' => ['ທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'],\n    'weekdays_min' => ['ທ', 'ຈ', 'ອຄ', 'ພ', 'ພຫ', 'ສກ', 'ສ'],\n    'list' => [', ', 'ແລະ '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/lo.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lrc.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n\n    'minute' => ':count هنر', // less reliable\n    'min' => ':count هنر', // less reliable\n    'a_minute' => ':count هنر', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/lrc.php', [\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lt.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - tjku\n * - valdas406\n * - Justas Palumickas\n * - Max Melentiev\n * - Andrius Janauskas\n * - Juanito Fatas\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Nicolás Hock Isaza\n * - Laurynas Butkus\n * - Sven Fuchs\n * - Dominykas Tijūnaitis\n * - Justinas Bolys\n * - Ričardas\n * - Kirill Chalkin\n * - Rolandas\n */\nreturn [\n    'year' => ':count metus|:count metus|:count metų',\n    'y' => ':count metus|:count metus|:count metų',\n    'month' => ':count mėnesį|:count mėnesius|:count mėnesių',\n    'm' => ':count mėnesį|:count mėnesius|:count mėnesių',\n    'week' => ':count savaitę|:count savaites|:count savaičių',\n    'w' => ':count savaitę|:count savaites|:count savaičių',\n    'day' => ':count dieną|:count dienas|:count dienų',\n    'd' => ':count dieną|:count dienas|:count dienų',\n    'hour' => ':count valandą|:count valandas|:count valandų',\n    'h' => ':count valandą|:count valandas|:count valandų',\n    'minute' => ':count minutę|:count minutes|:count minučių',\n    'min' => ':count minutę|:count minutes|:count minučių',\n    'second' => ':count sekundę|:count sekundes|:count sekundžių',\n    's' => ':count sekundę|:count sekundes|:count sekundžių',\n    'second_from_now' => ':count sekundės|:count sekundžių|:count sekundžių',\n    'minute_from_now' => ':count minutės|:count minučių|:count minučių',\n    'hour_from_now' => ':count valandos|:count valandų|:count valandų',\n    'day_from_now' => ':count dienos|:count dienų|:count dienų',\n    'week_from_now' => ':count savaitės|:count savaičių|:count savaičių',\n    'month_from_now' => ':count mėnesio|:count mėnesių|:count mėnesių',\n    'year_from_now' => ':count metų',\n    'ago' => 'prieš :time',\n    'from_now' => 'už :time',\n    'after' => 'po :time',\n    'before' => ':time nuo dabar',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'diff_now' => 'ką tik',\n    'diff_yesterday' => 'vakar',\n    'diff_tomorrow' => 'rytoj',\n    'diff_before_yesterday' => 'užvakar',\n    'diff_after_tomorrow' => 'poryt',\n    'period_recurrences' => 'kartą|:count kartų',\n    'period_interval' => 'kiekvieną :interval',\n    'period_start_date' => 'nuo :date',\n    'period_end_date' => 'iki :date',\n    'months' => ['Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegužė', 'Birželis', 'Liepa', 'Rugpjūtis', 'Rugsėjis', 'Spalis', 'Lapkritis', 'Gruodis'],\n    'months_short' => ['Sau', 'Vas', 'Kov', 'Bal', 'Geg', 'Bir', 'Lie', 'Rgp', 'Rgs', 'Spa', 'Lap', 'Gru'],\n    'weekdays' => ['Sekmadienis', 'Pirmadienis', 'Antradienis', 'Trečiadienis', 'Ketvirtadienis', 'Penktadienis', 'Šeštadienis'],\n    'weekdays_short' => ['Sek', 'Pir', 'Ant', 'Tre', 'Ket', 'Pen', 'Šeš'],\n    'weekdays_min' => ['Se', 'Pi', 'An', 'Tr', 'Ke', 'Pe', 'Še'],\n    'list' => [', ', ' ir '],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'MMMM DD, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'meridiem' => ['priešpiet', 'popiet'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/lt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Dinda', 'Dilolo'],\n    'weekdays' => ['Lumingu', 'Nkodya', 'Ndàayà', 'Ndangù', 'Njòwa', 'Ngòvya', 'Lubingu'],\n    'weekdays_short' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'],\n    'weekdays_min' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'],\n    'months' => ['Ciongo', 'Lùishi', 'Lusòlo', 'Mùuyà', 'Lumùngùlù', 'Lufuimi', 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', 'Kaswèkèsè', 'Ciswà'],\n    'months_short' => ['Cio', 'Lui', 'Lus', 'Muu', 'Lum', 'Luf', 'Kab', 'Lush', 'Lut', 'Lun', 'Kas', 'Cis'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/luo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['OD', 'OT'],\n    'weekdays' => ['Jumapil', 'Wuok Tich', 'Tich Ariyo', 'Tich Adek', 'Tich Ang’wen', 'Tich Abich', 'Ngeso'],\n    'weekdays_short' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'],\n    'weekdays_min' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'],\n    'months' => ['Dwe mar Achiel', 'Dwe mar Ariyo', 'Dwe mar Adek', 'Dwe mar Ang’wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', 'Dwe mar Apar gi ariyo'],\n    'months_short' => ['DAC', 'DAR', 'DAD', 'DAN', 'DAH', 'DAU', 'DAO', 'DAB', 'DOC', 'DAP', 'DGI', 'DAG'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => 'higni :count',\n    'y' => 'higni :count',\n    'a_year' => ':higni :count',\n\n    'month' => 'dweche :count',\n    'm' => 'dweche :count',\n    'a_month' => 'dweche :count',\n\n    'week' => 'jumbe :count',\n    'w' => 'jumbe :count',\n    'a_week' => 'jumbe :count',\n\n    'day' => 'ndalo :count',\n    'd' => 'ndalo :count',\n    'a_day' => 'ndalo :count',\n\n    'hour' => 'seche :count',\n    'h' => 'seche :count',\n    'a_hour' => 'seche :count',\n\n    'minute' => 'dakika :count',\n    'min' => 'dakika :count',\n    'a_minute' => 'dakika :count',\n\n    'second' => 'nus dakika :count',\n    's' => 'nus dakika :count',\n    'a_second' => 'nus dakika :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/luy.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Jumapiri', 'Jumatatu', 'Jumanne', 'Jumatano', 'Murwa wa Kanne', 'Murwa wa Katano', 'Jumamosi'],\n    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],\n    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    // Too unreliable\n    /*\n    'year' => ':count liliino', // less reliable\n    'y' => ':count liliino', // less reliable\n    'a_year' => ':count liliino', // less reliable\n\n    'month' => ':count kumwesi', // less reliable\n    'm' => ':count kumwesi', // less reliable\n    'a_month' => ':count kumwesi', // less reliable\n\n    'week' => ':count olutambi', // less reliable\n    'w' => ':count olutambi', // less reliable\n    'a_week' => ':count olutambi', // less reliable\n\n    'day' => ':count luno', // less reliable\n    'd' => ':count luno', // less reliable\n    'a_day' => ':count luno', // less reliable\n\n    'hour' => ':count ekengele', // less reliable\n    'h' => ':count ekengele', // less reliable\n    'a_hour' => ':count ekengele', // less reliable\n\n    'minute' => ':count omundu', // less reliable\n    'min' => ':count omundu', // less reliable\n    'a_minute' => ':count omundu', // less reliable\n\n    'second' => ':count liliino', // less reliable\n    's' => ':count liliino', // less reliable\n    'a_second' => ':count liliino', // less reliable\n    */\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - pirminis\n * - Tsutomu Kuroda\n * - tjku\n * - Andris Zāģeris\n * - Max Melentiev\n * - Edgars Beigarts\n * - Juanito Fatas\n * - Vitauts Stočka\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Kaspars Bankovskis\n * - Nicolás Hock Isaza\n * - Kavacky\n */\nreturn [\n    'year' => '0 gadiem|:count gada|:count gadiem',\n    'y' => '0 gadiem|:count gada|:count gadiem',\n    'month' => '0 mēnešiem|:count mēneša|:count mēnešiem',\n    'm' => '0 mēnešiem|:count mēneša|:count mēnešiem',\n    'week' => '0 nedēļām|:count nedēļas|:count nedēļām',\n    'w' => '0 nedēļām|:count nedēļas|:count nedēļām',\n    'day' => '0 dienām|:count dienas|:count dienām',\n    'd' => '0 dienām|:count dienas|:count dienām',\n    'hour' => '0 stundām|:count stundas|:count stundām',\n    'h' => '0 stundām|:count stundas|:count stundām',\n    'minute' => '0 minūtēm|:count minūtes|:count minūtēm',\n    'min' => '0 minūtēm|:count minūtes|:count minūtēm',\n    'second' => '0 sekundēm|:count sekundes|:count sekundēm',\n    's' => '0 sekundēm|:count sekundes|:count sekundēm',\n    'ago' => 'pirms :time',\n    'from_now' => 'pēc :time',\n    'after' => ':time vēlāk',\n    'before' => ':time pirms',\n\n    'year_after' => '0 gadus|:count gadu|:count gadus',\n    'month_after' => '0 mēnešus|:count mēnesi|:count mēnešus',\n    'week_after' => '0 nedēļas|:count nedēļu|:count nedēļas',\n    'day_after' => '0 dienas|:count dienu|:count dienas',\n    'hour_after' => '0 stundas|:count stundu|:count stundas',\n    'minute_after' => '0 minūtes|:count minūti|:count minūtes',\n    'second_after' => '0 sekundes|:count sekundi|:count sekundes',\n\n    'year_before' => '0 gadus|:count gadu|:count gadus',\n    'month_before' => '0 mēnešus|:count mēnesi|:count mēnešus',\n    'week_before' => '0 nedēļas|:count nedēļu|:count nedēļas',\n    'day_before' => '0 dienas|:count dienu|:count dienas',\n    'hour_before' => '0 stundas|:count stundu|:count stundas',\n    'minute_before' => '0 minūtes|:count minūti|:count minūtes',\n    'second_before' => '0 sekundes|:count sekundi|:count sekundes',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' un '],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY.',\n        'LL' => 'YYYY. [gada] D. MMMM',\n        'LLL' => 'DD.MM.YYYY., HH:mm',\n        'LLLL' => 'YYYY. [gada] D. MMMM, HH:mm',\n    ],\n    'weekdays' => ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena'],\n    'weekdays_short' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'],\n    'weekdays_min' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'],\n    'months' => ['janvārī', 'ferbruārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'],\n    'months_short' => ['Janv', 'Febr', 'Marts', 'Apr', 'Maijs', 'Jūn', 'Jūl', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec'],\n    'meridiem' => ['priekšpusdiena', 'pēcpusdiena'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/lv.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lzh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/lzh_TW.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'OY[年]MMMMOD[日]',\n    ],\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => [' 一 ', ' 二 ', ' 三 ', ' 四 ', ' 五 ', ' 六 ', ' 七 ', ' 八 ', ' 九 ', ' 十 ', '十一', '十二'],\n    'weekdays' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'day_of_first_week_of_year' => 1,\n    'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '廿', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '卅', '卅一'],\n    'meridiem' => ['朝', '暮'],\n\n    'year' => ':count 夏', // less reliable\n    'y' => ':count 夏', // less reliable\n    'a_year' => ':count 夏', // less reliable\n\n    'month' => ':count 月', // less reliable\n    'm' => ':count 月', // less reliable\n    'a_month' => ':count 月', // less reliable\n\n    'hour' => ':count 氧', // less reliable\n    'h' => ':count 氧', // less reliable\n    'a_hour' => ':count 氧', // less reliable\n\n    'minute' => ':count 點', // less reliable\n    'min' => ':count 點', // less reliable\n    'a_minute' => ':count 點', // less reliable\n\n    'second' => ':count 楚', // less reliable\n    's' => ':count 楚', // less reliable\n    'a_second' => ':count 楚', // less reliable\n\n    'week' => ':count 星期',\n    'w' => ':count 星期',\n    'a_week' => ':count 星期',\n\n    'day' => ':count 日(曆法)',\n    'd' => ':count 日(曆法)',\n    'a_day' => ':count 日(曆法)',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mag.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mag_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bhashaghar@googlegroups.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'weekdays' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],\n    'weekdays_short' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],\n    'weekdays_min' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mai.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mai_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Maithili Computing Research Center, Pune, India    rajeshkajha@yahoo.com,akhilesh.k@samusng.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'],\n    'months_short' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'],\n    'weekdays' => ['रविदिन', 'सोमदिन', 'मंगलदिन', 'बुधदिन', 'बृहस्पतीदिन', 'शुक्रदिन', 'शनीदिन'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'],\n    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n\n    'year' => ':count ऋतु', // less reliable\n    'y' => ':count ऋतु', // less reliable\n    'a_year' => ':count ऋतु', // less reliable\n\n    'month' => ':count महिना',\n    'm' => ':count महिना',\n    'a_month' => ':count महिना',\n\n    'week' => ':count श्रेणी:क्यालेन्डर', // less reliable\n    'w' => ':count श्रेणी:क्यालेन्डर', // less reliable\n    'a_week' => ':count श्रेणी:क्यालेन्डर', // less reliable\n\n    'day' => ':count दिन',\n    'd' => ':count दिन',\n    'a_day' => ':count दिन',\n\n    'hour' => ':count घण्टा',\n    'h' => ':count घण्टा',\n    'a_hour' => ':count घण्टा',\n\n    'minute' => ':count समय', // less reliable\n    'min' => ':count समय', // less reliable\n    'a_minute' => ':count समय', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mas.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Ɛnkakɛnyá', 'Ɛndámâ'],\n    'weekdays' => ['Jumapílí', 'Jumatátu', 'Jumane', 'Jumatánɔ', 'Alaámisi', 'Jumáa', 'Jumamósi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Oladalʉ́', 'Arát', 'Ɔɛnɨ́ɔɨŋɔk', 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', 'Kújúɔrɔk', 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', 'Olgísan', 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'],\n    'months_short' => ['Dal', 'Ará', 'Ɔɛn', 'Doy', 'Lép', 'Rok', 'Sás', 'Bɔ́r', 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count olameyu', // less reliable\n    'y' => ':count olameyu', // less reliable\n    'a_year' => ':count olameyu', // less reliable\n\n    'week' => ':count engolongeare orwiki', // less reliable\n    'w' => ':count engolongeare orwiki', // less reliable\n    'a_week' => ':count engolongeare orwiki', // less reliable\n\n    'hour' => ':count esahabu', // less reliable\n    'h' => ':count esahabu', // less reliable\n    'a_hour' => ':count esahabu', // less reliable\n\n    'second' => ':count are', // less reliable\n    's' => ':count are', // less reliable\n    'a_second' => ':count are', // less reliable\n\n    'month' => ':count olapa',\n    'm' => ':count olapa',\n    'a_month' => ':count olapa',\n\n    'day' => ':count enkolongʼ',\n    'd' => ':count enkolongʼ',\n    'a_day' => ':count enkolongʼ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/mas.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/me.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return \\Symfony\\Component\\Translation\\PluralizationRules::get($number, 'sr');\n}, 'me');\n\n/*\n * Authors:\n * - Josh Soref\n * - François B\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n * - Milos Sakovic\n */\nreturn [\n    'year' => ':count godina|:count godine|:count godina',\n    'y' => ':count godina|:count godine|:count godina',\n    'month' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'm' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'week' => ':count nedjelja|:count nedjelje|:count nedjelja',\n    'w' => ':count nedjelja|:count nedjelje|:count nedjelja',\n    'day' => ':count dan|:count dana|:count dana',\n    'd' => ':count dan|:count dana|:count dana',\n    'hour' => ':count sat|:count sata|:count sati',\n    'h' => ':count sat|:count sata|:count sati',\n    'minute' => ':count minut|:count minuta|:count minuta',\n    'min' => ':count minut|:count minuta|:count minuta',\n    'second' => ':count sekund|:count sekunda|:count sekundi',\n    's' => ':count sekund|:count sekunda|:count sekundi',\n    'ago' => 'prije :time',\n    'from_now' => 'za :time',\n    'diff_yesterday' => 'juče',\n    'diff_tomorrow' => 'sjutra',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[danas u] LT',\n        'nextDay' => '[sjutra u] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[u nedjelju u] LT';\n                case 3:\n                    return '[u srijedu u] LT';\n                case 6:\n                    return '[u subotu u] LT';\n                default:\n                    return '[u] dddd [u] LT';\n            }\n        },\n        'lastDay' => '[juče u] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[prošle nedjelje u] LT';\n                case 1:\n                    return '[prošle nedjelje u] LT';\n                case 2:\n                    return '[prošlog utorka u] LT';\n                case 3:\n                    return '[prošle srijede u] LT';\n                case 4:\n                    return '[prošlog četvrtka u] LT';\n                case 5:\n                    return '[prošlog petka u] LT';\n                default:\n                    return '[prošle subote u] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],\n    'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],\n    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],\n    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' i '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mer.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['RŨ', 'ŨG'],\n    'weekdays' => ['Kiumia', 'Muramuko', 'Wairi', 'Wethatu', 'Wena', 'Wetano', 'Jumamosi'],\n    'weekdays_short' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'],\n    'weekdays_min' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'],\n    'months' => ['Januarĩ', 'Feburuarĩ', 'Machi', 'Ĩpurũ', 'Mĩĩ', 'Njuni', 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'],\n    'months_short' => ['JAN', 'FEB', 'MAC', 'ĨPU', 'MĨĨ', 'NJU', 'NJR', 'AGA', 'SPT', 'OKT', 'NOV', 'DEC'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count murume', // less reliable\n    'y' => ':count murume', // less reliable\n    'a_year' => ':count murume', // less reliable\n\n    'month' => ':count muchaara', // less reliable\n    'm' => ':count muchaara', // less reliable\n    'a_month' => ':count muchaara', // less reliable\n\n    'minute' => ':count monto', // less reliable\n    'min' => ':count monto', // less reliable\n    'a_minute' => ':count monto', // less reliable\n\n    'second' => ':count gikeno', // less reliable\n    's' => ':count gikeno', // less reliable\n    'a_second' => ':count gikeno', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mfe.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mfe_MU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['zanvie', 'fevriye', 'mars', 'avril', 'me', 'zin', 'zilye', 'out', 'septam', 'oktob', 'novam', 'desam'],\n    'months_short' => ['zan', 'fev', 'mar', 'avr', 'me', 'zin', 'zil', 'out', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['dimans', 'lindi', 'mardi', 'merkredi', 'zedi', 'vandredi', 'samdi'],\n    'weekdays_short' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'],\n    'weekdays_min' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'],\n\n    'year' => ':count banané',\n    'y' => ':count banané',\n    'a_year' => ':count banané',\n\n    'month' => ':count mwa',\n    'm' => ':count mwa',\n    'a_month' => ':count mwa',\n\n    'week' => ':count sémenn',\n    'w' => ':count sémenn',\n    'a_week' => ':count sémenn',\n\n    'day' => ':count zour',\n    'd' => ':count zour',\n    'a_day' => ':count zour',\n\n    'hour' => ':count -er-tan',\n    'h' => ':count -er-tan',\n    'a_hour' => ':count -er-tan',\n\n    'minute' => ':count minitt',\n    'min' => ':count minitt',\n    'a_minute' => ':count minitt',\n\n    'second' => ':count déziém',\n    's' => ':count déziém',\n    'a_second' => ':count déziém',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mg_MG.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - The Debian Project modified by GNU//Linux Malagasy Rado Ramarotafika,Do-Risika RAFIEFERANTSIARONJY rado@linuxmg.org,dourix@free.fr\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Janoary', 'Febroary', 'Martsa', 'Aprily', 'Mey', 'Jona', 'Jolay', 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mey', 'Jon', 'Jol', 'Aog', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['alahady', 'alatsinainy', 'talata', 'alarobia', 'alakamisy', 'zoma', 'sabotsy'],\n    'weekdays_short' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'],\n    'weekdays_min' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'minute' => ':count minitra', // less reliable\n    'min' => ':count minitra', // less reliable\n    'a_minute' => ':count minitra', // less reliable\n\n    'year' => ':count taona',\n    'y' => ':count taona',\n    'a_year' => ':count taona',\n\n    'month' => ':count volana',\n    'm' => ':count volana',\n    'a_month' => ':count volana',\n\n    'week' => ':count herinandro',\n    'w' => ':count herinandro',\n    'a_week' => ':count herinandro',\n\n    'day' => ':count andro',\n    'd' => ':count andro',\n    'a_day' => ':count andro',\n\n    'hour' => ':count ora',\n    'h' => ':count ora',\n    'a_hour' => ':count ora',\n\n    'second' => ':count segondra',\n    's' => ':count segondra',\n    'a_second' => ':count segondra',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mgh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['wichishu', 'mchochil’l'],\n    'weekdays' => ['Sabato', 'Jumatatu', 'Jumanne', 'Jumatano', 'Arahamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'],\n    'months' => ['Mweri wo kwanza', 'Mweri wo unayeli', 'Mweri wo uneraru', 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', 'Mweri wo kumi na moja', 'Mweri wo kumi na yel’li'],\n    'months_short' => ['Kwa', 'Una', 'Rar', 'Che', 'Tha', 'Moc', 'Sab', 'Nan', 'Tis', 'Kum', 'Moj', 'Yel'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mgo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'],\n    'weekdays_short' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'],\n    'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'],\n    'months' => ['iməg mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'],\n    'months_short' => ['mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'dddd, YYYY MMMM DD HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mhr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mhr_RU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - PeshSajSoft Ltd. Vyacheslav Kileev slavakileev@yandex.ru\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY.MM.DD',\n    ],\n    'months' => ['Шорыкйол', 'Пургыж', 'Ӱярня', 'Вӱдшор', 'Ага', 'Пеледыш', 'Сӱрем', 'Сорла', 'Идым', 'Шыжа', 'Кылме', 'Теле'],\n    'months_short' => ['Шрк', 'Пгж', 'Ӱрн', 'Вшр', 'Ага', 'Пдш', 'Срм', 'Срл', 'Идм', 'Шыж', 'Клм', 'Тел'],\n    'weekdays' => ['Рушарня', 'Шочмо', 'Кушкыжмо', 'Вӱргече', 'Изарня', 'Кугарня', 'Шуматкече'],\n    'weekdays_short' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'],\n    'weekdays_min' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count идалык',\n    'y' => ':count идалык',\n    'a_year' => ':count идалык',\n\n    'month' => ':count Тылзе',\n    'm' => ':count Тылзе',\n    'a_month' => ':count Тылзе',\n\n    'week' => ':count арня',\n    'w' => ':count арня',\n    'a_week' => ':count арня',\n\n    'day' => ':count кече',\n    'd' => ':count кече',\n    'a_day' => ':count кече',\n\n    'hour' => ':count час',\n    'h' => ':count час',\n    'a_hour' => ':count час',\n\n    'minute' => ':count минут',\n    'min' => ':count минут',\n    'a_minute' => ':count минут',\n\n    'second' => ':count кокымшан',\n    's' => ':count кокымшан',\n    'a_second' => ':count кокымшан',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'mi');\n\n/*\n * Authors:\n * - François B\n * - John Corrigan\n * - François B\n */\nreturn [\n    'year' => ':count tau',\n    'a_year' => 'he tau|:count tau',\n    'month' => ':count marama',\n    'a_month' => 'he marama|:count marama',\n    'week' => ':count wiki',\n    'a_week' => 'he wiki|:count wiki',\n    'day' => ':count ra',\n    'a_day' => 'he ra|:count ra',\n    'hour' => ':count haora',\n    'a_hour' => 'te haora|:count haora',\n    'minute' => ':count meneti',\n    'a_minute' => 'he meneti|:count meneti',\n    'second' => ':count hēkona',\n    'a_second' => 'te hēkona ruarua|:count hēkona',\n    'ago' => ':time i mua',\n    'from_now' => 'i roto i :time',\n    'diff_yesterday' => 'inanahi',\n    'diff_tomorrow' => 'apopo',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY [i] HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY [i] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[i teie mahana, i] LT',\n        'nextDay' => '[apopo i] LT',\n        'nextWeek' => 'dddd [i] LT',\n        'lastDay' => '[inanahi i] LT',\n        'lastWeek' => 'dddd [whakamutunga i] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['Kohi-tāte', 'Hui-tanguru', 'Poutū-te-rangi', 'Paenga-whāwhā', 'Haratua', 'Pipiri', 'Hōngoingoi', 'Here-turi-kōkā', 'Mahuru', 'Whiringa-ā-nuku', 'Whiringa-ā-rangi', 'Hakihea'],\n    'months_short' => ['Kohi', 'Hui', 'Pou', 'Pae', 'Hara', 'Pipi', 'Hōngoi', 'Here', 'Mahu', 'Whi-nu', 'Whi-ra', 'Haki'],\n    'weekdays' => ['Rātapu', 'Mane', 'Tūrei', 'Wenerei', 'Tāite', 'Paraire', 'Hātarei'],\n    'weekdays_short' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'],\n    'weekdays_min' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' me te '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/mi.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/miq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/miq_NI.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'],\n    'months_short' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'],\n    'weekdays' => ['sandi', 'mundi', 'tiusdi', 'wensde', 'tausde', 'praidi', 'satadi'],\n    'weekdays_short' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'],\n    'weekdays_min' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 7,\n    'meridiem' => ['VM', 'NM'],\n\n    'month' => ':count kati', // less reliable\n    'm' => ':count kati', // less reliable\n    'a_month' => ':count kati', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mjw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mjw_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Jor Teron    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['Arkoi', 'Thangthang', 'There', 'Jangmi', 'Aru', 'Vosik', 'Jakhong', 'Paipai', 'Chiti', 'Phere', 'Phaikuni', 'Matijong'],\n    'months_short' => ['Ark', 'Thang', 'The', 'Jang', 'Aru', 'Vos', 'Jak', 'Pai', 'Chi', 'Phe', 'Phai', 'Mati'],\n    'weekdays' => ['Bhomkuru', 'Urmi', 'Durmi', 'Thelang', 'Theman', 'Bhomta', 'Bhomti'],\n    'weekdays_short' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'],\n    'weekdays_min' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sashko Todorov\n * - Josh Soref\n * - François B\n * - Serhan Apaydın\n * - Borislav Mickov\n * - JD Isaacks\n * - Tomi Atanasoski\n */\nreturn [\n    'year' => ':count година|:count години',\n    'a_year' => 'година|:count години',\n    'y' => ':count год.',\n    'month' => ':count месец|:count месеци',\n    'a_month' => 'месец|:count месеци',\n    'm' => ':count месец|:count месеци',\n    'week' => ':count седмица|:count седмици',\n    'a_week' => 'седмица|:count седмици',\n    'w' => ':count седмица|:count седмици',\n    'day' => ':count ден|:count дена',\n    'a_day' => 'ден|:count дена',\n    'd' => ':count ден|:count дена',\n    'hour' => ':count час|:count часа',\n    'a_hour' => 'час|:count часа',\n    'h' => ':count час|:count часа',\n    'minute' => ':count минута|:count минути',\n    'a_minute' => 'минута|:count минути',\n    'min' => ':count мин.',\n    'second' => ':count секунда|:count секунди',\n    'a_second' => 'неколку секунди|:count секунди',\n    's' => ':count сек.',\n    'ago' => 'пред :time',\n    'from_now' => 'после :time',\n    'after' => 'по :time',\n    'before' => 'пред :time',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'D.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Денес во] LT',\n        'nextDay' => '[Утре во] LT',\n        'nextWeek' => '[Во] dddd [во] LT',\n        'lastDay' => '[Вчера во] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                case 3:\n                case 6:\n                    return '[Изминатата] dddd [во] LT';\n                default:\n                    return '[Изминатиот] dddd [во] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        $lastDigit = $number % 10;\n        $last2Digits = $number % 100;\n        if ($number === 0) {\n            return $number.'-ев';\n        }\n        if ($last2Digits === 0) {\n            return $number.'-ен';\n        }\n        if ($last2Digits > 10 && $last2Digits < 20) {\n            return $number.'-ти';\n        }\n        if ($lastDigit === 1) {\n            return $number.'-ви';\n        }\n        if ($lastDigit === 2) {\n            return $number.'-ри';\n        }\n        if ($lastDigit === 7 || $lastDigit === 8) {\n            return $number.'-ми';\n        }\n\n        return $number.'-ти';\n    },\n    'months' => ['јануари', 'февруари', 'март', 'април', 'мај', 'јуни', 'јули', 'август', 'септември', 'октомври', 'ноември', 'декември'],\n    'months_short' => ['јан', 'фев', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'ное', 'дек'],\n    'weekdays' => ['недела', 'понеделник', 'вторник', 'среда', 'четврток', 'петок', 'сабота'],\n    'weekdays_short' => ['нед', 'пон', 'вто', 'сре', 'чет', 'пет', 'саб'],\n    'weekdays_min' => ['нe', 'пo', 'вт', 'ср', 'че', 'пе', 'сa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' и '],\n    'meridiem' => ['АМ', 'ПМ'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/mk.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ml.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count വർഷം',\n    'a_year' => 'ഒരു വർഷം|:count വർഷം',\n    'month' => ':count മാസം',\n    'a_month' => 'ഒരു മാസം|:count മാസം',\n    'week' => ':count ആഴ്ച',\n    'a_week' => 'ഒരാഴ്ച|:count ആഴ്ച',\n    'day' => ':count ദിവസം',\n    'a_day' => 'ഒരു ദിവസം|:count ദിവസം',\n    'hour' => ':count മണിക്കൂർ',\n    'a_hour' => 'ഒരു മണിക്കൂർ|:count മണിക്കൂർ',\n    'minute' => ':count മിനിറ്റ്',\n    'a_minute' => 'ഒരു മിനിറ്റ്|:count മിനിറ്റ്',\n    'second' => ':count സെക്കൻഡ്',\n    'a_second' => 'അൽപ നിമിഷങ്ങൾ|:count സെക്കൻഡ്',\n    'ago' => ':time മുൻപ്',\n    'from_now' => ':time കഴിഞ്ഞ്',\n    'diff_yesterday' => 'ഇന്നലെ',\n    'diff_tomorrow' => 'നാളെ',\n    'formats' => [\n        'LT' => 'A h:mm -നു',\n        'LTS' => 'A h:mm:ss -നു',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm -നു',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm -നു',\n    ],\n    'calendar' => [\n        'sameDay' => '[ഇന്ന്] LT',\n        'nextDay' => '[നാളെ] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[ഇന്നലെ] LT',\n        'lastWeek' => '[കഴിഞ്ഞ] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'രാത്രി';\n        }\n        if ($hour < 12) {\n            return 'രാവിലെ';\n        }\n        if ($hour < 17) {\n            return 'ഉച്ച കഴിഞ്ഞ്';\n        }\n        if ($hour < 20) {\n            return 'വൈകുന്നേരം';\n        }\n\n        return 'രാത്രി';\n    },\n    'months' => ['ജനുവരി', 'ഫെബ്രുവരി', 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗസ്റ്റ്', 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', 'നവംബർ', 'ഡിസംബർ'],\n    'months_short' => ['ജനു.', 'ഫെബ്രു.', 'മാർ.', 'ഏപ്രി.', 'മേയ്', 'ജൂൺ', 'ജൂലൈ.', 'ഓഗ.', 'സെപ്റ്റ.', 'ഒക്ടോ.', 'നവം.', 'ഡിസം.'],\n    'weekdays' => ['ഞായറാഴ്ച', 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'],\n    'weekdays_short' => ['ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', 'ബുധൻ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],\n    'weekdays_min' => ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', 'വെ', 'ശ'],\n    'list' => ', ',\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ml.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @translator Batmandakh Erdenebileg <batmandakh.e@icloud.com>\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Zolzaya Erdenebaatar\n * - Tom Hughes\n * - Akira Matsuda\n * - Christopher Dell\n * - Michael Kessler\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Nicolás Hock Isaza\n * - Ochirkhuyag\n * - Batmandakh\n */\nreturn [\n    'year' => ':count жил',\n    'y' => ':count жил',\n    'month' => ':count сар',\n    'm' => ':count сар',\n    'week' => ':count долоо хоног',\n    'w' => ':count долоо хоног',\n    'day' => ':count өдөр',\n    'd' => ':count өдөр',\n    'hour' => ':count цаг',\n    'h' => ':countц',\n    'minute' => ':count минут',\n    'min' => ':countм',\n    'second' => ':count секунд',\n    's' => ':countс',\n\n    'ago' => ':timeн өмнө',\n    'year_ago' => ':count жилий',\n    'month_ago' => ':count сары',\n    'day_ago' => ':count хоногий',\n    'hour_ago' => ':count цагий',\n    'minute_ago' => ':count минуты',\n    'second_ago' => ':count секунды',\n\n    'from_now' => 'одоогоос :time',\n    'year_from_now' => ':count жилийн дараа',\n    'month_from_now' => ':count сарын дараа',\n    'day_from_now' => ':count хоногийн дараа',\n    'hour_from_now' => ':count цагийн дараа',\n    'minute_from_now' => ':count минутын дараа',\n    'second_from_now' => ':count секундын дараа',\n\n    // Does it required to make translation for before, after as follows? hmm, I think we've made it with ago and from now keywords already. Anyway, I've included it just in case of undesired action...\n    'after' => ':timeн дараа',\n    'year_after' => ':count жилий',\n    'month_after' => ':count сары',\n    'day_after' => ':count хоногий',\n    'hour_after' => ':count цагий',\n    'minute_after' => ':count минуты',\n    'second_after' => ':count секунды',\n    'before' => ':timeн өмнө',\n    'year_before' => ':count жилий',\n    'month_before' => ':count сары',\n    'day_before' => ':count хоногий',\n    'hour_before' => ':count цагий',\n    'minute_before' => ':count минуты',\n    'second_before' => ':count секунды',\n    'list' => ', ',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'YYYY MMMM DD',\n        'LLL' => 'YY-MM-DD, HH:mm',\n        'LLLL' => 'YYYY MMMM DD, HH:mm',\n    ],\n    'weekdays' => ['Ням', 'Даваа', 'Мягмар', 'Лхагва', 'Пүрэв', 'Баасан', 'Бямба'],\n    'weekdays_short' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'],\n    'weekdays_min' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'],\n    'months' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'],\n    'months_short' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'],\n    'meridiem' => ['өглөө', 'орой'],\n    'first_day_of_week' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/mn.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mni.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/mni_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat Pune    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['জানুৱারি', 'ফেব্রুৱারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'সেপ্তেম্বর', 'ওক্তোবর', 'নবেম্বর', 'ডিসেম্বর'],\n    'months_short' => ['জান', 'ফেব', 'মার', 'এপ্রি', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ', 'ওক্ত', 'নবে', 'ডিস'],\n    'weekdays' => ['নোংমাইজিং', 'নিংথৌকাবা', 'লৈবাকপোকপা', 'য়ুমশকৈশা', 'শগোলশেন', 'ইরাই', 'থাংজ'],\n    'weekdays_short' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'],\n    'weekdays_min' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['এ.ম.', 'প.ম.'],\n\n    'year' => ':count ইসিং', // less reliable\n    'y' => ':count ইসিং', // less reliable\n    'a_year' => ':count ইসিং', // less reliable\n\n    'second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable\n    's' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable\n    'a_second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ro.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn [\n    'year' => ':count वर्ष',\n    'y' => ':count वर्ष',\n    'month' => ':count महिना|:count महिने',\n    'm' => ':count महिना|:count महिने',\n    'week' => ':count आठवडा|:count आठवडे',\n    'w' => ':count आठवडा|:count आठवडे',\n    'day' => ':count दिवस',\n    'd' => ':count दिवस',\n    'hour' => ':count तास',\n    'h' => ':count तास',\n    'minute' => ':count मिनिटे',\n    'min' => ':count मिनिटे',\n    'second' => ':count सेकंद',\n    's' => ':count सेकंद',\n\n    'ago' => ':timeपूर्वी',\n    'from_now' => ':timeमध्ये',\n\n    'diff_yesterday' => 'काल',\n    'diff_tomorrow' => 'उद्या',\n\n    'formats' => [\n        'LT' => 'A h:mm वाजता',\n        'LTS' => 'A h:mm:ss वाजता',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm वाजता',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm वाजता',\n    ],\n\n    'calendar' => [\n        'sameDay' => '[आज] LT',\n        'nextDay' => '[उद्या] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[काल] LT',\n        'lastWeek' => '[मागील] dddd, LT',\n        'sameElse' => 'L',\n    ],\n\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'रात्री';\n        }\n        if ($hour < 10) {\n            return 'सकाळी';\n        }\n        if ($hour < 17) {\n            return 'दुपारी';\n        }\n        if ($hour < 20) {\n            return 'सायंकाळी';\n        }\n\n        return 'रात्री';\n    },\n\n    'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ऑगस्ट', 'सप्टेंबर', 'ऑक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],\n    'months_short' => ['जाने.', 'फेब्रु.', 'मार्च.', 'एप्रि.', 'मे.', 'जून.', 'जुलै.', 'ऑग.', 'सप्टें.', 'ऑक्टो.', 'नोव्हें.', 'डिसें.'],\n    'weekdays' => ['रविवार', 'सोमवार', 'मंगळवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगळ', 'बुध', 'गुरू', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],\n    'list' => [', ', ' आणि '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/mr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ms.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Azri Jamil\n * - JD Isaacks\n * - Josh Soref\n * - Azri Jamil\n * - Hariadi Hinta\n */\nreturn [\n    'year' => '{1}setahun|]1,Inf[:count tahun',\n    'y' => ':count tahun',\n    'month' => '{1}sebulan|]1,Inf[:count bulan',\n    'm' => ':count bulan',\n    'week' => '{1}seminggu|]1,Inf[:count minggu',\n    'w' => ':count minggu',\n    'day' => '{1}sehari|]1,Inf[:count hari',\n    'd' => ':count hari',\n    'hour' => '{1}sejam|]1,Inf[:count jam',\n    'h' => ':count jam',\n    'minute' => '{1}seminit|]1,Inf[:count minit',\n    'min' => ':count minit',\n    'second' => '{1}beberapa saat|]1,Inf[:count saat',\n    's' => ':count saat',\n    'ago' => ':time yang lepas',\n    'from_now' => 'dalam :time',\n    'after' => ':time selepas',\n    'before' => ':time sebelum',\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm.ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY [pukul] HH.mm',\n        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hari ini pukul] LT',\n        'nextDay' => '[Esok pukul] LT',\n        'nextWeek' => 'dddd [pukul] LT',\n        'lastDay' => '[Kelmarin pukul] LT',\n        'lastWeek' => 'dddd [lepas pukul] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 11) {\n            return 'pagi';\n        }\n        if ($hour < 15) {\n            return 'tengahari';\n        }\n        if ($hour < 19) {\n            return 'petang';\n        }\n\n        return 'malam';\n    },\n    'months' => ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogs', 'Sep', 'Okt', 'Nov', 'Dis'],\n    'weekdays' => ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'],\n    'weekdays_short' => ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'],\n    'weekdays_min' => ['Ah', 'Is', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' dan '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ms.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/MM/yy',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, h:mm a',\n        'LLLL' => 'dd MMMM YYYY, h:mm a',\n    ],\n    'meridiem' => ['a', 'p'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Azri Jamil\n * - JD Isaacks\n */\nreturn require __DIR__.'/ms.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ms.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/MM/yy',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY, h:mm a',\n    ],\n    'meridiem' => ['a', 'p'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mt.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Alessandro Maruccia\n */\nreturn [\n    'year' => 'sena|:count sni|:count sni|:count sni',\n    'y' => 'sa sena|:count snin|:count snin|:count snin',\n    'month' => 'xahar|:count xhur|:count xhur|:count xhur',\n    'm' => ':count xahar|:count xhur|:count xhur|:count xhur',\n    'week' => 'gimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat',\n    'w' => 'ġimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat',\n    'day' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet',\n    'd' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet',\n    'hour' => 'siegħa|:count siegħat|:count siegħat|:count siegħat',\n    'h' => 'siegħa|:count sigħat|:count sigħat|:count sigħat',\n    'minute' => 'minuta|:count minuti|:count minuti|:count minuti',\n    'min' => 'min.|:count min.|:count min.|:count min.',\n    'second' => 'ftit sekondi|:count sekondi|:count sekondi|:count sekondi',\n    's' => 'sek.|:count sek.|:count sek.|:count sek.',\n    'ago' => ':time ilu',\n    'from_now' => 'f’ :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Illum fil-]LT',\n        'nextDay' => '[Għada fil-]LT',\n        'nextWeek' => 'dddd [fil-]LT',\n        'lastDay' => '[Il-bieraħ fil-]LT',\n        'lastWeek' => 'dddd [li għadda] [fil-]LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'],\n    'months_short' => ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'],\n    'weekdays' => ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'],\n    'weekdays_short' => ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'],\n    'weekdays_min' => ['Ħa', 'Tn', 'Tl', 'Er', 'Ħa', 'Ġi', 'Si'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' u '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/mt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mua.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['comme', 'lilli'],\n    'weekdays' => ['Com’yakke', 'Comlaaɗii', 'Comzyiiɗii', 'Comkolle', 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'],\n    'weekdays_short' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'],\n    'weekdays_min' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'],\n    'months' => ['Fĩi Loo', 'Cokcwaklaŋne', 'Cokcwaklii', 'Fĩi Marfoo', 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', 'Madǝmbii', 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', 'Fĩi Yuru'],\n    'months_short' => ['FLO', 'CLA', 'CKI', 'FMF', 'MAD', 'MBI', 'MLI', 'MAM', 'FDE', 'FMU', 'FGW', 'FYU'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/my.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'my');\n\n/*\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n * - Nay Lin Aung\n */\nreturn [\n    'year' => 'တစ်နှစ်|:count နှစ်',\n    'y' => ':count နှစ်',\n    'month' => 'တစ်လ|:count လ',\n    'm' => ':count လ',\n    'week' => ':count ပတ်',\n    'w' => ':count ပတ်',\n    'day' => 'တစ်ရက်|:count ရက်',\n    'd' => ':count ရက်',\n    'hour' => 'တစ်နာရီ|:count နာရီ',\n    'h' => ':count နာရီ',\n    'minute' => 'တစ်မိနစ်|:count မိနစ်',\n    'min' => ':count မိနစ်',\n    'second' => 'စက္ကန်.အနည်းငယ်|:count စက္ကန့်',\n    's' => ':count စက္ကန့်',\n    'ago' => 'လွန်ခဲ့သော :time က',\n    'from_now' => 'လာမည့် :time မှာ',\n    'after' => ':time ကြာပြီးနောက်',\n    'before' => ':time မတိုင်ခင်',\n    'diff_now' => 'အခုလေးတင်',\n    'diff_yesterday' => 'မနေ့က',\n    'diff_tomorrow' => 'မနက်ဖြန်',\n    'diff_before_yesterday' => 'တမြန်နေ့က',\n    'diff_after_tomorrow' => 'တဘက်ခါ',\n    'period_recurrences' => ':count ကြိမ်',\n    'formats' => [\n        'LT' => 'Oh:Om A',\n        'LTS' => 'Oh:Om:Os A',\n        'L' => 'OD/OM/OY',\n        'LL' => 'OD MMMM OY',\n        'LLL' => 'OD MMMM OY Oh:Om A',\n        'LLLL' => 'dddd OD MMMM OY Oh:Om A',\n    ],\n    'calendar' => [\n        'sameDay' => '[ယနေ.] LT [မှာ]',\n        'nextDay' => '[မနက်ဖြန်] LT [မှာ]',\n        'nextWeek' => 'dddd LT [မှာ]',\n        'lastDay' => '[မနေ.က] LT [မှာ]',\n        'lastWeek' => '[ပြီးခဲ့သော] dddd LT [မှာ]',\n        'sameElse' => 'L',\n    ],\n    'months' => ['ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', 'မတ်', 'ဧပြီ', 'မေ', 'ဇွန်', 'ဇူလိုင်', 'သြဂုတ်', 'စက်တင်ဘာ', 'အောက်တိုဘာ', 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ'],\n    'months_short' => ['ဇန်', 'ဖေ', 'မတ်', 'ပြီ', 'မေ', 'ဇွန်', 'လိုင်', 'သြ', 'စက်', 'အောက်', 'နို', 'ဒီ'],\n    'weekdays' => ['တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', 'ကြာသပတေး', 'သောကြာ', 'စနေ'],\n    'weekdays_short' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'],\n    'weekdays_min' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'alt_numbers' => ['၀၀', '၀၁', '၀၂', '၀၃', '၀၄', '၀၅', '၀၆', '၀၇', '၀၈', '၀၉', '၁၀', '၁၁', '၁၂', '၁၃', '၁၄', '၁၅', '၁၆', '၁၇', '၁၈', '၁၉', '၂၀', '၂၁', '၂၂', '၂၃', '၂၄', '၂၅', '၂၆', '၂၇', '၂၈', '၂၉', '၃၀', '၃၁', '၃၂', '၃၃', '၃၄', '၃၅', '၃၆', '၃၇', '၃၈', '၃၉', '၄၀', '၄၁', '၄၂', '၄၃', '၄၄', '၄၅', '၄၆', '၄၇', '၄၈', '၄၉', '၅၀', '၅၁', '၅၂', '၅၃', '၅၄', '၅၅', '၅၆', '၅၇', '၅၈', '၅၉', '၆၀', '၆၁', '၆၂', '၆၃', '၆၄', '၆၅', '၆၆', '၆၇', '၆၈', '၆၉', '၇၀', '၇၁', '၇၂', '၇၃', '၇၄', '၇၅', '၇၆', '၇၇', '၇၈', '၇၉', '၈၀', '၈၁', '၈၂', '၈၃', '၈၄', '၈၅', '၈၆', '၈၇', '၈၈', '၈၉', '၉၀', '၉၁', '၉၂', '၉၃', '၉၄', '၉၅', '၉၆', '၉၇', '၉၈', '၉၉'],\n    'meridiem' => ['နံနက်', 'ညနေ'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/my.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/mzn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fa.php', [\n    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],\n    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],\n    'first_day_of_week' => 6,\n    'weekend' => [5, 5],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nan.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/nan_TW.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY年MM月DD日',\n    ],\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],\n    'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['頂晡', '下晡'],\n\n    'year' => ':count 年',\n    'y' => ':count 年',\n    'a_year' => ':count 年',\n\n    'month' => ':count goe̍h',\n    'm' => ':count goe̍h',\n    'a_month' => ':count goe̍h',\n\n    'week' => ':count lé-pài',\n    'w' => ':count lé-pài',\n    'a_week' => ':count lé-pài',\n\n    'day' => ':count 日',\n    'd' => ':count 日',\n    'a_day' => ':count 日',\n\n    'hour' => ':count tiám-cheng',\n    'h' => ':count tiám-cheng',\n    'a_hour' => ':count tiám-cheng',\n\n    'minute' => ':count Hun-cheng',\n    'min' => ':count Hun-cheng',\n    'a_minute' => ':count Hun-cheng',\n\n    'second' => ':count Bió',\n    's' => ':count Bió',\n    'a_second' => ':count Bió',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Arne Goetje arne@canonical.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n    'months' => ['1goe̍h', '2goe̍h', '3goe̍h', '4goe̍h', '5goe̍h', '6goe̍h', '7goe̍h', '8goe̍h', '9goe̍h', '10goe̍h', '11goe̍h', '12goe̍h'],\n    'months_short' => ['1g', '2g', '3g', '4g', '5g', '6g', '7g', '8g', '9g', '10g', '11g', '12g'],\n    'weekdays' => ['lé-pài-ji̍t', 'pài-it', 'pài-jī', 'pài-saⁿ', 'pài-sì', 'pài-gō͘', 'pài-la̍k'],\n    'weekdays_short' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'],\n    'weekdays_min' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['téng-po͘', 'ē-po͘'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/naq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ǁgoagas', 'ǃuias'],\n    'weekdays' => ['Sontaxtsees', 'Mantaxtsees', 'Denstaxtsees', 'Wunstaxtsees', 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'],\n    'weekdays_short' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'],\n    'weekdays_min' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'],\n    'months' => ['ǃKhanni', 'ǃKhanǀgôab', 'ǀKhuuǁkhâb', 'ǃHôaǂkhaib', 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', 'Aoǁkhuumûǁkhâb', 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', 'ǀHooǂgaeb', 'Hôasoreǁkhâb'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm a',\n    ],\n\n    'year' => ':count kurigu',\n    'y' => ':count kurigu',\n    'a_year' => ':count kurigu',\n\n    'month' => ':count ǁaub', // less reliable\n    'm' => ':count ǁaub', // less reliable\n    'a_month' => ':count ǁaub', // less reliable\n\n    'week' => ':count hû', // less reliable\n    'w' => ':count hû', // less reliable\n    'a_week' => ':count hû', // less reliable\n\n    'day' => ':count ǀhobas', // less reliable\n    'd' => ':count ǀhobas', // less reliable\n    'a_day' => ':count ǀhobas', // less reliable\n\n    'hour' => ':count ǂgaes', // less reliable\n    'h' => ':count ǂgaes', // less reliable\n    'a_hour' => ':count ǂgaes', // less reliable\n\n    'minute' => ':count minutga', // less reliable\n    'min' => ':count minutga', // less reliable\n    'a_minute' => ':count minutga', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nb.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Alexander Tømmerås\n * - Sigurd Gartmann\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count år|:count år',\n    'a_year' => 'ett år|:count år',\n    'y' => ':count år|:count år',\n    'month' => ':count måned|:count måneder',\n    'a_month' => 'en måned|:count måneder',\n    'm' => ':count md.',\n    'week' => ':count uke|:count uker',\n    'a_week' => 'en uke|:count uker',\n    'w' => ':count u.',\n    'day' => ':count dag|:count dager',\n    'a_day' => 'en dag|:count dager',\n    'd' => ':count d.',\n    'hour' => ':count time|:count timer',\n    'a_hour' => 'en time|:count timer',\n    'h' => ':count t',\n    'minute' => ':count minutt|:count minutter',\n    'a_minute' => 'ett minutt|:count minutter',\n    'min' => ':count min',\n    'second' => ':count sekund|:count sekunder',\n    'a_second' => 'noen sekunder|:count sekunder',\n    's' => ':count sek',\n    'ago' => ':time siden',\n    'from_now' => 'om :time',\n    'after' => ':time etter',\n    'before' => ':time før',\n    'diff_now' => 'akkurat nå',\n    'diff_yesterday' => 'i går',\n    'diff_tomorrow' => 'i morgen',\n    'diff_before_yesterday' => 'i forgårs',\n    'diff_after_tomorrow' => 'i overmorgen',\n    'period_recurrences' => 'en gang|:count ganger',\n    'period_interval' => 'hver :interval',\n    'period_start_date' => 'fra :date',\n    'period_end_date' => 'til :date',\n    'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],\n    'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],\n    'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],\n    'ordinal' => ':number.',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY [kl.] HH:mm',\n        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[i dag kl.] LT',\n        'nextDay' => '[i morgen kl.] LT',\n        'nextWeek' => 'dddd [kl.] LT',\n        'lastDay' => '[i går kl.] LT',\n        'lastWeek' => '[forrige] dddd [kl.] LT',\n        'sameElse' => 'L',\n    ],\n    'list' => [', ', ' og '],\n    'meridiem' => ['a.m.', 'p.m.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nb.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/nb.php', [\n    'formats' => [\n        'LL' => 'D. MMM YYYY',\n        'LLL' => 'D. MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd D. MMMM YYYY, HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nd.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Sonto', 'Mvulo', 'Sibili', 'Sithathu', 'Sine', 'Sihlanu', 'Mgqibelo'],\n    'weekdays_short' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'],\n    'weekdays_min' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'],\n    'months' => ['Zibandlela', 'Nhlolanja', 'Mbimbitho', 'Mabasa', 'Nkwenkwezi', 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', 'Lwezi', 'Mpalakazi'],\n    'months_short' => ['Zib', 'Nhlo', 'Mbi', 'Mab', 'Nkw', 'Nhla', 'Ntu', 'Ncw', 'Mpan', 'Mfu', 'Lwe', 'Mpal'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n\n    'year' => 'okweminyaka engu-:count', // less reliable\n    'y' => 'okweminyaka engu-:count', // less reliable\n    'a_year' => 'okweminyaka engu-:count', // less reliable\n\n    'month' => 'inyanga ezingu-:count',\n    'm' => 'inyanga ezingu-:count',\n    'a_month' => 'inyanga ezingu-:count',\n\n    'week' => 'amaviki angu-:count',\n    'w' => 'amaviki angu-:count',\n    'a_week' => 'amaviki angu-:count',\n\n    'day' => 'kwamalanga angu-:count',\n    'd' => 'kwamalanga angu-:count',\n    'a_day' => 'kwamalanga angu-:count',\n\n    'hour' => 'amahola angu-:count',\n    'h' => 'amahola angu-:count',\n    'a_hour' => 'amahola angu-:count',\n\n    'minute' => 'imizuzu engu-:count',\n    'min' => 'imizuzu engu-:count',\n    'a_minute' => 'imizuzu engu-:count',\n\n    'second' => 'imizuzwana engu-:count',\n    's' => 'imizuzwana engu-:count',\n    'a_second' => 'imizuzwana engu-:count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nds.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/nds_DE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Jannuaar', 'Feberwaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],\n    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n    'weekdays' => ['Sünndag', 'Maandag', 'Dingsdag', 'Middeweek', 'Dunnersdag', 'Freedag', 'Sünnavend'],\n    'weekdays_short' => ['Sdag', 'Maan', 'Ding', 'Migg', 'Dunn', 'Free', 'Svd.'],\n    'weekdays_min' => ['Sdag', 'Maan', 'Ding', 'Migg', 'Dunn', 'Free', 'Svd.'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count Johr',\n    'y' => ':count Johr',\n    'a_year' => ':count Johr',\n\n    'month' => ':count Maand',\n    'm' => ':count Maand',\n    'a_month' => ':count Maand',\n\n    'week' => ':count Week',\n    'w' => ':count Week',\n    'a_week' => ':count Week',\n\n    'day' => ':count Dag',\n    'd' => ':count Dag',\n    'a_day' => ':count Dag',\n\n    'hour' => ':count Stünn',\n    'h' => ':count Stünn',\n    'a_hour' => ':count Stünn',\n\n    'minute' => ':count Minuut',\n    'min' => ':count Minuut',\n    'a_minute' => ':count Minuut',\n\n    'second' => ':count sekunn',\n    's' => ':count sekunn',\n    'a_second' => ':count sekunn',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'],\n    'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'],\n    'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'],\n    'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],\n    'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ne.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - nootanghimire\n * - Josh Soref\n * - Nj Subedi\n * - JD Isaacks\n */\nreturn [\n    'year' => 'एक बर्ष|:count बर्ष',\n    'y' => ':count वर्ष',\n    'month' => 'एक महिना|:count महिना',\n    'm' => ':count महिना',\n    'week' => ':count हप्ता',\n    'w' => ':count हप्ता',\n    'day' => 'एक दिन|:count दिन',\n    'd' => ':count दिन',\n    'hour' => 'एक घण्टा|:count घण्टा',\n    'h' => ':count घण्टा',\n    'minute' => 'एक मिनेट|:count मिनेट',\n    'min' => ':count मिनेट',\n    'second' => 'केही क्षण|:count सेकेण्ड',\n    's' => ':count सेकेण्ड',\n    'ago' => ':time अगाडि',\n    'from_now' => ':timeमा',\n    'after' => ':time पछि',\n    'before' => ':time अघि',\n    'diff_yesterday' => 'हिजो',\n    'diff_tomorrow' => 'भोलि',\n    'formats' => [\n        'LT' => 'Aको h:mm बजे',\n        'LTS' => 'Aको h:mm:ss बजे',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, Aको h:mm बजे',\n        'LLLL' => 'dddd, D MMMM YYYY, Aको h:mm बजे',\n    ],\n    'calendar' => [\n        'sameDay' => '[आज] LT',\n        'nextDay' => '[भोलि] LT',\n        'nextWeek' => '[आउँदो] dddd[,] LT',\n        'lastDay' => '[हिजो] LT',\n        'lastWeek' => '[गएको] dddd[,] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 3) {\n            return 'राति';\n        }\n        if ($hour < 12) {\n            return 'बिहान';\n        }\n        if ($hour < 16) {\n            return 'दिउँसो';\n        }\n        if ($hour < 20) {\n            return 'साँझ';\n        }\n\n        return 'राति';\n    },\n    'months' => ['जनवरी', 'फेब्रुवरी', 'मार्च', 'अप्रिल', 'मई', 'जुन', 'जुलाई', 'अगष्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],\n    'months_short' => ['जन.', 'फेब्रु.', 'मार्च', 'अप्रि.', 'मई', 'जुन', 'जुलाई.', 'अग.', 'सेप्ट.', 'अक्टो.', 'नोभे.', 'डिसे.'],\n    'weekdays' => ['आइतबार', 'सोमबार', 'मङ्गलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n    'weekdays_short' => ['आइत.', 'सोम.', 'मङ्गल.', 'बुध.', 'बिहि.', 'शुक्र.', 'शनि.'],\n    'weekdays_min' => ['आ.', 'सो.', 'मं.', 'बु.', 'बि.', 'शु.', 'श.'],\n    'list' => [', ', ' र '],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ne.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'yy/M/d',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D, h:mm a',\n        'LLLL' => 'YYYY MMMM D, dddd, h:mm a',\n    ],\n    'months' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],\n    'months_short' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],\n    'weekend' => [0, 0],\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ne.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nhn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/nhn_MX.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],\n    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n    'weekdays' => ['teoilhuitl', 'ceilhuitl', 'omeilhuitl', 'yeilhuitl', 'nahuilhuitl', 'macuililhuitl', 'chicuaceilhuitl'],\n    'weekdays_short' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'],\n    'weekdays_min' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'],\n    'day_of_first_week_of_year' => 1,\n\n    'month' => ':count metztli', // less reliable\n    'm' => ':count metztli', // less reliable\n    'a_month' => ':count metztli', // less reliable\n\n    'week' => ':count tonalli', // less reliable\n    'w' => ':count tonalli', // less reliable\n    'a_week' => ':count tonalli', // less reliable\n\n    'day' => ':count tonatih', // less reliable\n    'd' => ':count tonatih', // less reliable\n    'a_day' => ':count tonatih', // less reliable\n\n    'minute' => ':count toltecayotl', // less reliable\n    'min' => ':count toltecayotl', // less reliable\n    'a_minute' => ':count toltecayotl', // less reliable\n\n    'second' => ':count ome', // less reliable\n    's' => ':count ome', // less reliable\n    'a_second' => ':count ome', // less reliable\n\n    'year' => ':count xihuitl',\n    'y' => ':count xihuitl',\n    'a_year' => ':count xihuitl',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/niu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/niu_NU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RockET Systems Emani Fakaotimanava-Lui emani@niue.nu\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Ianuali', 'Fepuali', 'Masi', 'Apelila', 'Me', 'Iuni', 'Iulai', 'Aokuso', 'Sepetema', 'Oketopa', 'Novema', 'Tesemo'],\n    'months_short' => ['Ian', 'Fep', 'Mas', 'Ape', 'Me', 'Iun', 'Iul', 'Aok', 'Sep', 'Oke', 'Nov', 'Tes'],\n    'weekdays' => ['Aho Tapu', 'Aho Gofua', 'Aho Ua', 'Aho Lotu', 'Aho Tuloto', 'Aho Falaile', 'Aho Faiumu'],\n    'weekdays_short' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'],\n    'weekdays_min' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count tau',\n    'y' => ':count tau',\n    'a_year' => ':count tau',\n\n    'month' => ':count mahina',\n    'm' => ':count mahina',\n    'a_month' => ':count mahina',\n\n    'week' => ':count faahi tapu',\n    'w' => ':count faahi tapu',\n    'a_week' => ':count faahi tapu',\n\n    'day' => ':count aho',\n    'd' => ':count aho',\n    'a_day' => ':count aho',\n\n    'hour' => ':count e tulā',\n    'h' => ':count e tulā',\n    'a_hour' => ':count e tulā',\n\n    'minute' => ':count minuti',\n    'min' => ':count minuti',\n    'a_minute' => ':count minuti',\n\n    'second' => ':count sekone',\n    's' => ':count sekone',\n    'a_second' => ':count sekone',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Roy\n * - Stephan\n * - François B\n * - Tim Fish\n * - Kevin Huang\n * - Jacob Middag\n * - JD Isaacks\n * - Roy\n * - Stephan\n * - François B\n * - Tim Fish\n * - Jacob Middag\n * - JD Isaacks\n * - Propaganistas\n * - MegaXLR\n * - adriaanzon\n * - MonkeyPhysics\n * - JeroenG\n * - RikSomers\n * - proclame\n * - Rik de Groot (hwdegroot)\n */\nreturn [\n    'year' => ':count jaar|:count jaar',\n    'a_year' => 'een jaar|:count jaar',\n    'y' => ':countj',\n    'month' => ':count maand|:count maanden',\n    'a_month' => 'een maand|:count maanden',\n    'm' => ':countmnd',\n    'week' => ':count week|:count weken',\n    'a_week' => 'een week|:count weken',\n    'w' => ':countw',\n    'day' => ':count dag|:count dagen',\n    'a_day' => 'een dag|:count dagen',\n    'd' => ':countd',\n    'hour' => ':count uur|:count uur',\n    'a_hour' => 'een uur|:count uur',\n    'h' => ':countu',\n    'minute' => ':count minuut|:count minuten',\n    'a_minute' => 'een minuut|:count minuten',\n    'min' => ':countmin',\n    'second' => ':count seconde|:count seconden',\n    'a_second' => 'een paar seconden|:count seconden',\n    's' => ':counts',\n    'ago' => ':time geleden',\n    'from_now' => 'over :time',\n    'after' => ':time later',\n    'before' => ':time eerder',\n    'diff_now' => 'nu',\n    'diff_yesterday' => 'gisteren',\n    'diff_tomorrow' => 'morgen',\n    'diff_after_tomorrow' => 'overmorgen',\n    'diff_before_yesterday' => 'eergisteren',\n    'period_recurrences' => ':count keer',\n    'period_interval' => function ($interval) {\n        /** @var string $output */\n        $output = preg_replace('/^(een|één|1)\\s+/', '', $interval);\n\n        if (preg_match('/^(een|één|1)( jaar|j| uur|u)/', $interval)) {\n            return \"elk $output\";\n        }\n\n        return \"elke $output\";\n    },\n    'period_start_date' => 'van :date',\n    'period_end_date' => 'tot :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD-MM-YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[vandaag om] LT',\n        'nextDay' => '[morgen om] LT',\n        'nextWeek' => 'dddd [om] LT',\n        'lastDay' => '[gisteren om] LT',\n        'lastWeek' => '[afgelopen] dddd [om] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');\n    },\n    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'mmm_suffix' => '.',\n    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],\n    'weekdays_short' => ['zo.', 'ma.', 'di.', 'wo.', 'do.', 'vr.', 'za.'],\n    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' en '],\n    'meridiem' => ['\\'s ochtends', '\\'s middags'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/nl.php', [\n    'formats' => [\n        'L' => 'DD-MM-YY',\n    ],\n    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],\n    'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Roy\n * - Stephan\n * - François B\n * - Tim Fish\n * - Kevin Huang\n * - Jacob Middag\n * - JD Isaacks\n * - Propaganistas\n */\nreturn array_replace_recursive(require __DIR__.'/nl.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/nl.php', [\n    'formats' => [\n        'L' => 'DD-MM-YY',\n    ],\n    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],\n    'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nmg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['maná', 'kugú'],\n    'weekdays' => ['sɔ́ndɔ', 'mɔ́ndɔ', 'sɔ́ndɔ mafú mába', 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', 'sásadi'],\n    'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'],\n    'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'],\n    'months' => ['ngwɛn matáhra', 'ngwɛn ńmba', 'ngwɛn ńlal', 'ngwɛn ńna', 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', 'ngwɛn lɔmbi', 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navǔr', 'krísimin'],\n    'months_short' => ['ng1', 'ng2', 'ng3', 'ng4', 'ng5', 'ng6', 'ng7', 'ng8', 'ng9', 'ng10', 'ng11', 'kris'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Alexander Tømmerås\n * - Øystein\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count år|:count år',\n    'a_year' => 'eit år|:count år',\n    'month' => ':count månad|:count månader',\n    'a_month' => 'ein månad|:count månader',\n    'week' => ':count uke|:count uker',\n    'a_week' => 'eit uke|:count uker',\n    'day' => ':count dag|:count dagar',\n    'a_day' => 'ein dag|:count dagar',\n    'hour' => ':count time|:count timar',\n    'a_hour' => 'ein time|:count timar',\n    'minute' => ':count minutt',\n    'a_minute' => 'eit minutt|:count minutt',\n    'second' => ':count sekund',\n    'a_second' => 'nokre sekund|:count sekund',\n    'ago' => ':time sidan',\n    'from_now' => 'om :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY [kl.] H:mm',\n        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[I dag klokka] LT',\n        'nextDay' => '[I morgon klokka] LT',\n        'nextWeek' => 'dddd [klokka] LT',\n        'lastDay' => '[I går klokka] LT',\n        'lastWeek' => '[Føregåande] dddd [klokka] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],\n    'weekdays' => ['sundag', 'måndag', 'tysdag', 'onsdag', 'torsdag', 'fredag', 'laurdag'],\n    'weekdays_short' => ['sun', 'mån', 'tys', 'ons', 'tor', 'fre', 'lau'],\n    'weekdays_min' => ['su', 'må', 'ty', 'on', 'to', 'fr', 'la'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' og '],\n    'meridiem' => ['f.m.', 'e.m.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/nn.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nnh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['mbaʼámbaʼ', 'ncwònzém'],\n    'weekdays' => null,\n    'weekdays_short' => ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', 'màga lyɛ̌ʼ'],\n    'weekdays_min' => null,\n    'months' => null,\n    'months_short' => ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', 'saŋ tyɛ̀b tyɛ̀b mbʉ̀ŋ', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/yy',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => '[lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm',\n        'LLLL' => 'dddd , [lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/no.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Daniel S. Billing\n * - Paul\n * - Jimmie Johansson\n * - Jens Herlevsen\n */\nreturn array_replace_recursive(require __DIR__.'/nb.php', [\n    'formats' => [\n        'LLL' => 'D. MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY [kl.] HH:mm',\n    ],\n    'calendar' => [\n        'nextWeek' => 'på dddd [kl.] LT',\n        'lastWeek' => '[i] dddd[s kl.] LT',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/nr_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Janabari', 'uFeberbari', 'uMatjhi', 'u-Apreli', 'Meyi', 'Juni', 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', 'Disemba'],\n    'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mey', 'Jun', 'Jul', 'Arh', 'Sep', 'Okt', 'Usi', 'Dis'],\n    'weekdays' => ['uSonto', 'uMvulo', 'uLesibili', 'lesithathu', 'uLesine', 'ngoLesihlanu', 'umGqibelo'],\n    'weekdays_short' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'],\n    'weekdays_min' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nso.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/nso_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Janaware', 'Febereware', 'Matšhe', 'Aprele', 'Mei', 'June', 'Julae', 'Agostose', 'Setemere', 'Oktobere', 'Nofemere', 'Disemere'],\n    'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Set', 'Okt', 'Nof', 'Dis'],\n    'weekdays' => ['LaMorena', 'Mošupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Mokibelo'],\n    'weekdays_short' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'],\n    'weekdays_min' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ngwaga',\n    'y' => ':count ngwaga',\n    'a_year' => ':count ngwaga',\n\n    'month' => ':count Kgwedi',\n    'm' => ':count Kgwedi',\n    'a_month' => ':count Kgwedi',\n\n    'week' => ':count Beke',\n    'w' => ':count Beke',\n    'a_week' => ':count Beke',\n\n    'day' => ':count Letšatši',\n    'd' => ':count Letšatši',\n    'a_day' => ':count Letšatši',\n\n    'hour' => ':count Iri',\n    'h' => ':count Iri',\n    'a_hour' => ':count Iri',\n\n    'minute' => ':count Motsotso',\n    'min' => ':count Motsotso',\n    'a_minute' => ':count Motsotso',\n\n    'second' => ':count motsotswana',\n    's' => ':count motsotswana',\n    'a_second' => ':count motsotswana',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nus.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['RW', 'TŊ'],\n    'weekdays' => ['Cäŋ kuɔth', 'Jiec la̱t', 'Rɛw lätni', 'Diɔ̱k lätni', 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'],\n    'weekdays_short' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'],\n    'weekdays_min' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'],\n    'months' => ['Tiop thar pɛt', 'Pɛt', 'Duɔ̱ɔ̱ŋ', 'Guak', 'Duät', 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', 'Tio̱p in di̱i̱t'],\n    'months_short' => ['Tiop', 'Pɛt', 'Duɔ̱ɔ̱', 'Guak', 'Duä', 'Kor', 'Pay', 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd D MMMM YYYY h:mm a',\n    ],\n\n    'year' => ':count jiök', // less reliable\n    'y' => ':count jiök', // less reliable\n    'a_year' => ':count jiök', // less reliable\n\n    'month' => ':count pay', // less reliable\n    'm' => ':count pay', // less reliable\n    'a_month' => ':count pay', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/nyn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'],\n    'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],\n    'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],\n    'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'],\n    'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/oc.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Quentí\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number == 1 ? 0 : 1;\n}, 'oc');\n\nreturn [\n    'year' => ':count an|:count ans',\n    'a_year' => 'un an|:count ans',\n    'y' => ':count an|:count ans',\n    'month' => ':count mes|:count meses',\n    'a_month' => 'un mes|:count meses',\n    'm' => ':count mes|:count meses',\n    'week' => ':count setmana|:count setmanas',\n    'a_week' => 'una setmana|:count setmanas',\n    'w' => ':count setmana|:count setmanas',\n    'day' => ':count jorn|:count jorns',\n    'a_day' => 'un jorn|:count jorns',\n    'd' => ':count jorn|:count jorns',\n    'hour' => ':count ora|:count oras',\n    'a_hour' => 'una ora|:count oras',\n    'h' => ':count ora|:count oras',\n    'minute' => ':count minuta|:count minutas',\n    'a_minute' => 'una minuta|:count minutas',\n    'min' => ':count minuta|:count minutas',\n    'second' => ':count segonda|:count segondas',\n    'a_second' => 'una segonda|:count segondas',\n    's' => ':count segonda|:count segondas',\n    'ago' => 'fa :time',\n    'from_now' => 'd\\'aquí :time',\n    'after' => ':time aprèp',\n    'before' => ':time abans',\n    'diff_now' => 'ara meteis',\n    'diff_yesterday' => 'ièr',\n    'diff_tomorrow' => 'deman',\n    'diff_before_yesterday' => 'ièr delà',\n    'diff_after_tomorrow' => 'deman passat',\n    'period_recurrences' => ':count còp|:count còps',\n    'period_interval' => 'cada :interval',\n    'period_start_date' => 'de :date',\n    'period_end_date' => 'fins a :date',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM [de] YYYY',\n        'LLL' => 'D MMMM [de] YYYY [a] H:mm',\n        'LLLL' => 'dddd D MMMM [de] YYYY [a] H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Uèi a] LT',\n        'nextDay' => '[Deman a] LT',\n        'nextWeek' => 'dddd [a] LT',\n        'lastDay' => '[Ièr a] LT',\n        'lastWeek' => 'dddd [passat a] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['de genièr', 'de febrièr', 'de març', 'd\\'abrial', 'de mai', 'de junh', 'de julhet', 'd\\'agost', 'de setembre', 'd’octòbre', 'de novembre', 'de decembre'],\n    'months_standalone' => ['genièr', 'febrièr', 'març', 'abrial', 'mai', 'junh', 'julh', 'agost', 'setembre', 'octòbre', 'novembre', 'decembre'],\n    'months_short' => ['gen.', 'feb.', 'març', 'abr.', 'mai', 'junh', 'julh', 'ago.', 'sep.', 'oct.', 'nov.', 'dec.'],\n    'weekdays' => ['dimenge', 'diluns', 'dimars', 'dimècres', 'dijòus', 'divendres', 'dissabte'],\n    'weekdays_short' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'],\n    'weekdays_min' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'],\n    'ordinal' => function ($number, $period) {\n        return $number.(\n            ($period === 'w' || $period === 'W') ? 'a' : (\n                ($number === 1) ? 'r' : (\n                    ($number === 2) ? 'n' : (\n                        ($number === 3) ? 'r' : (\n                            ($number === 4) ? 't' : 'è'\n                        )\n                    )\n                )\n            )\n        );\n    },\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' e '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/oc.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/om.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation & Sagalee Oromoo Publishing Co. Inc.    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'dd-MMM-YYYY',\n        'LLL' => 'dd MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, MMMM D, YYYY HH:mm',\n    ],\n    'months' => ['Amajjii', 'Guraandhala', 'Bitooteessa', 'Elba', 'Caamsa', 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', 'Sadaasa', 'Muddee'],\n    'months_short' => ['Ama', 'Gur', 'Bit', 'Elb', 'Cam', 'Wax', 'Ado', 'Hag', 'Ful', 'Onk', 'Sad', 'Mud'],\n    'weekdays' => ['Dilbata', 'Wiixata', 'Qibxata', 'Roobii', 'Kamiisa', 'Jimaata', 'Sanbata'],\n    'weekdays_short' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'],\n    'weekdays_min' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['WD', 'WB'],\n\n    'year' => 'wggoota :count',\n    'y' => 'wggoota :count',\n    'a_year' => 'wggoota :count',\n\n    'month' => 'ji’a :count',\n    'm' => 'ji’a :count',\n    'a_month' => 'ji’a :count',\n\n    'week' => 'torban :count',\n    'w' => 'torban :count',\n    'a_week' => 'torban :count',\n\n    'day' => 'guyyaa :count',\n    'd' => 'guyyaa :count',\n    'a_day' => 'guyyaa :count',\n\n    'hour' => 'saʼaatii :count',\n    'h' => 'saʼaatii :count',\n    'a_hour' => 'saʼaatii :count',\n\n    'minute' => 'daqiiqaa :count',\n    'min' => 'daqiiqaa :count',\n    'a_minute' => 'daqiiqaa :count',\n\n    'second' => 'sekoondii :count',\n    's' => 'sekoondii :count',\n    'a_second' => 'sekoondii :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/om.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/om.php', [\n    'day_of_first_week_of_year' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/or.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/or_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM AP Linux Technology Center, Yamato Software Laboratory    bug-glibc@gnu.org\n */\nreturn [\n    'formats' => [\n        'LT' => 'Oh:Om A',\n        'LTS' => 'Oh:Om:Os A',\n        'L' => 'OD-OM-OY',\n        'LL' => 'OD MMMM OY',\n        'LLL' => 'OD MMMM OY Oh:Om A',\n        'LLLL' => 'dddd OD MMMM OY Oh:Om A',\n    ],\n    'months' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'],\n    'months_short' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'],\n    'weekdays' => ['ରବିବାର', 'ସୋମବାର', 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', 'ଶୁକ୍ରବାର', 'ଶନିବାର'],\n    'weekdays_short' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'],\n    'weekdays_min' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'],\n    'day_of_first_week_of_year' => 1,\n    'alt_numbers' => ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯', '୧୦', '୧୧', '୧୨', '୧୩', '୧୪', '୧୫', '୧୬', '୧୭', '୧୮', '୧୯', '୨୦', '୨୧', '୨୨', '୨୩', '୨୪', '୨୫', '୨୬', '୨୭', '୨୮', '୨୯', '୩୦', '୩୧', '୩୨', '୩୩', '୩୪', '୩୫', '୩୬', '୩୭', '୩୮', '୩୯', '୪୦', '୪୧', '୪୨', '୪୩', '୪୪', '୪୫', '୪୬', '୪୭', '୪୮', '୪୯', '୫୦', '୫୧', '୫୨', '୫୩', '୫୪', '୫୫', '୫୬', '୫୭', '୫୮', '୫୯', '୬୦', '୬୧', '୬୨', '୬୩', '୬୪', '୬୫', '୬୬', '୬୭', '୬୮', '୬୯', '୭୦', '୭୧', '୭୨', '୭୩', '୭୪', '୭୫', '୭୬', '୭୭', '୭୮', '୭୯', '୮୦', '୮୧', '୮୨', '୮୩', '୮୪', '୮୫', '୮୬', '୮୭', '୮୮', '୮୯', '୯୦', '୯୧', '୯୨', '୯୩', '୯୪', '୯୫', '୯୬', '୯୭', '୯୮', '୯୯'],\n    'year' => ':count ବର୍ଷ',\n    'y' => ':count ବ.',\n    'month' => ':count ମାସ',\n    'm' => ':count ମା.',\n    'week' => ':count ସପ୍ତାହ',\n    'w' => ':count ସପ୍ତା.',\n    'day' => ':count ଦିନ',\n    'd' => ':count ଦିନ',\n    'hour' => ':count ଘଣ୍ତ',\n    'h' => ':count ଘ.',\n    'minute' => ':count ମିନଟ',\n    'min' => ':count ମି.',\n    'second' => ':count ସେକଣ୍ଢ',\n    's' => ':count ସେ.',\n    'ago' => ':time ପୂର୍ବେ',\n    'from_now' => ':timeରେ',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/os.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/os_RU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['январы', 'февралы', 'мартъийы', 'апрелы', 'майы', 'июны', 'июлы', 'августы', 'сентябры', 'октябры', 'ноябры', 'декабры'],\n    'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n    'weekdays' => ['Хуыцаубон', 'Къуырисæр', 'Дыццæг', 'Æртыццæг', 'Цыппæрæм', 'Майрæмбон', 'Сабат'],\n    'weekdays_short' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'],\n    'weekdays_min' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'minute' => ':count гыццыл', // less reliable\n    'min' => ':count гыццыл', // less reliable\n    'a_minute' => ':count гыццыл', // less reliable\n\n    'second' => ':count æндæр', // less reliable\n    's' => ':count æндæр', // less reliable\n    'a_second' => ':count æндæр', // less reliable\n\n    'year' => ':count аз',\n    'y' => ':count аз',\n    'a_year' => ':count аз',\n\n    'month' => ':count мӕй',\n    'm' => ':count мӕй',\n    'a_month' => ':count мӕй',\n\n    'week' => ':count къуыри',\n    'w' => ':count къуыри',\n    'a_week' => ':count къуыри',\n\n    'day' => ':count бон',\n    'd' => ':count бон',\n    'a_day' => ':count бон',\n\n    'hour' => ':count сахат',\n    'h' => ':count сахат',\n    'a_hour' => ':count сахат',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - Punjab\n */\nreturn [\n    'year' => 'ਇੱਕ ਸਾਲ|:count ਸਾਲ',\n    'month' => 'ਇੱਕ ਮਹੀਨਾ|:count ਮਹੀਨੇ',\n    'week' => 'ਹਫਤਾ|:count ਹਫ਼ਤੇ',\n    'day' => 'ਇੱਕ ਦਿਨ|:count ਦਿਨ',\n    'hour' => 'ਇੱਕ ਘੰਟਾ|:count ਘੰਟੇ',\n    'minute' => 'ਇਕ ਮਿੰਟ|:count ਮਿੰਟ',\n    'second' => 'ਕੁਝ ਸਕਿੰਟ|:count ਸਕਿੰਟ',\n    'ago' => ':time ਪਿਛਲੇ',\n    'from_now' => ':time ਵਿੱਚ',\n    'diff_yesterday' => 'ਕਲ',\n    'diff_tomorrow' => 'ਕਲ',\n    'formats' => [\n        'LT' => 'A h:mm ਵਜੇ',\n        'LTS' => 'A h:mm:ss ਵਜੇ',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm ਵਜੇ',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n    ],\n    'calendar' => [\n        'sameDay' => '[ਅਜ] LT',\n        'nextDay' => '[ਕਲ] LT',\n        'nextWeek' => '[ਅਗਲਾ] dddd, LT',\n        'lastDay' => '[ਕਲ] LT',\n        'lastWeek' => '[ਪਿਛਲੇ] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'ਰਾਤ';\n        }\n        if ($hour < 10) {\n            return 'ਸਵੇਰ';\n        }\n        if ($hour < 17) {\n            return 'ਦੁਪਹਿਰ';\n        }\n        if ($hour < 20) {\n            return 'ਸ਼ਾਮ';\n        }\n\n        return 'ਰਾਤ';\n    },\n    'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],\n    'months_short' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],\n    'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'],\n    'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'],\n    'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' ਅਤੇ '],\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ur.php', [\n    'weekdays' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],\n    'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],\n    'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],\n    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd, DD MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/pa.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D/M/yy',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY, h:mm a',\n    ],\n    'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],\n    'months_short' => ['ਜਨ', 'ਫ਼ਰ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾ', 'ਅਗ', 'ਸਤੰ', 'ਅਕਤੂ', 'ਨਵੰ', 'ਦਸੰ'],\n    'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'],\n    'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'],\n    'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕ', 'ਸ਼ਨਿੱ'],\n    'weekend' => [0, 0],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Guo Xiang Tan\n * - Josh Soref\n * - Ash\n * - harpreetkhalsagtbit\n */\nreturn require __DIR__.'/pa.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'],\n    'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ص', 'ش'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pap.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm:ss',\n        'L' => 'DD-MM-YY',\n        'LL' => 'MMMM [di] DD, YYYY',\n        'LLL' => 'DD MMM HH.mm',\n        'LLLL' => 'MMMM DD, YYYY HH.mm',\n    ],\n    'months' => ['yanüari', 'febrüari', 'mart', 'aprel', 'mei', 'yüni', 'yüli', 'ougùstùs', 'sèptèmber', 'oktober', 'novèmber', 'desèmber'],\n    'months_short' => ['yan', 'feb', 'mar', 'apr', 'mei', 'yün', 'yül', 'oug', 'sèp', 'okt', 'nov', 'des'],\n    'weekdays' => ['djadomingo', 'djaluna', 'djamars', 'djawebs', 'djarason', 'djabierne', 'djasabra'],\n    'weekdays_short' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'],\n    'weekdays_min' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'year' => ':count aña',\n    'month' => ':count luna',\n    'week' => ':count siman',\n    'day' => ':count dia',\n    'hour' => ':count ora',\n    'minute' => ':count minüt',\n    'second' => ':count sekònde',\n    'list' => [', ', ' i '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn require __DIR__.'/pap.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn require __DIR__.'/pap.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Wacław Jacek\n * - François B\n * - Tim Fish\n * - Serhan Apaydın\n * - Massimiliano Caniparoli\n * - JD Isaacks\n * - Jakub Szwacz\n * - Jan\n * - Paul\n * - damlys\n * - Marek (marast78)\n * - Peter (UnrulyNatives)\n */\nreturn [\n    'year' => ':count rok|:count lata|:count lat',\n    'y' => ':countr|:countl',\n    'month' => ':count miesiąc|:count miesiące|:count miesięcy',\n    'm' => ':countmies',\n    'week' => ':count tydzień|:count tygodnie|:count tygodni',\n    'w' => ':counttyg',\n    'day' => ':count dzień|:count dni|:count dni',\n    'd' => ':countd',\n    'hour' => ':count godzina|:count godziny|:count godzin',\n    'h' => ':countg',\n    'minute' => ':count minuta|:count minuty|:count minut',\n    'min' => ':countm',\n    'second' => ':count sekunda|:count sekundy|:count sekund',\n    'a_second' => '{1}kilka sekund|:count sekunda|:count sekundy|:count sekund',\n    's' => ':counts',\n    'ago' => ':time temu',\n    'from_now' => 'za :time',\n    'after' => ':time po',\n    'before' => ':time przed',\n    'diff_now' => 'przed chwilą',\n    'diff_yesterday' => 'wczoraj',\n    'diff_tomorrow' => 'jutro',\n    'diff_before_yesterday' => 'przedwczoraj',\n    'diff_after_tomorrow' => 'pojutrze',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Dziś o] LT',\n        'nextDay' => '[Jutro o] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[W niedzielę o] LT';\n                case 2:\n                    return '[We wtorek o] LT';\n                case 3:\n                    return '[W środę o] LT';\n                case 6:\n                    return '[W sobotę o] LT';\n                default:\n                    return '[W] dddd [o] LT';\n            }\n        },\n        'lastDay' => '[Wczoraj o] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[W zeszłą niedzielę o] LT';\n                case 3:\n                    return '[W zeszłą środę o] LT';\n                case 6:\n                    return '[W zeszłą sobotę o] LT';\n                default:\n                    return '[W zeszły] dddd [o] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'],\n    'months_standalone' => ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'],\n    'months_short' => ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],\n    'months_regexp' => '/DD?o?\\.?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'],\n    'weekdays_short' => ['ndz', 'pon', 'wt', 'śr', 'czw', 'pt', 'sob'],\n    'weekdays_min' => ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' i '],\n    'meridiem' => ['przed południem', 'po południu'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/prg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n\n    'year' => ':count meta',\n    'y' => ':count meta',\n    'a_year' => ':count meta',\n\n    'month' => ':count mēniks', // less reliable\n    'm' => ':count mēniks', // less reliable\n    'a_month' => ':count mēniks', // less reliable\n\n    'week' => ':count sawaītin', // less reliable\n    'w' => ':count sawaītin', // less reliable\n    'a_week' => ':count sawaītin', // less reliable\n\n    'day' => ':count di',\n    'd' => ':count di',\n    'a_day' => ':count di',\n\n    'hour' => ':count bruktēt', // less reliable\n    'h' => ':count bruktēt', // less reliable\n    'a_hour' => ':count bruktēt', // less reliable\n\n    'minute' => ':count līkuts', // less reliable\n    'min' => ':count līkuts', // less reliable\n    'a_minute' => ':count līkuts', // less reliable\n\n    'second' => ':count kitan', // less reliable\n    's' => ':count kitan', // less reliable\n    'a_second' => ':count kitan', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ps.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Muhammad Nasir Rahimi\n */\nreturn [\n    'year' => ':count کال|:count کاله',\n    'y' => ':countکال|:countکاله',\n    'month' => ':count مياشت|:count مياشتي',\n    'm' => ':countمياشت|:countمياشتي',\n    'week' => ':count اونۍ|:count اونۍ',\n    'w' => ':countاونۍ|:countاونۍ',\n    'day' => ':count ورځ|:count ورځي',\n    'd' => ':countورځ|:countورځي',\n    'hour' => ':count ساعت|:count ساعته',\n    'h' => ':countساعت|:countساعته',\n    'minute' => ':count دقيقه|:count دقيقې',\n    'min' => ':countدقيقه|:countدقيقې',\n    'second' => ':count ثانيه|:count ثانيې',\n    's' => ':countثانيه|:countثانيې',\n    'ago' => ':time دمخه',\n    'from_now' => ':time له اوس څخه',\n    'after' => ':time وروسته',\n    'before' => ':time دمخه',\n    'list' => ['، ', ' او '],\n    'meridiem' => ['غ.م.', 'غ.و.'],\n    'weekdays' => ['يونۍ', 'دونۍ', 'درېنۍ', 'څلرنۍ', 'پينځنۍ', 'جمعه', 'اونۍ'],\n    'weekdays_short' => ['يونۍ', 'دونۍ', 'درېنۍ', 'څلرنۍ', 'پينځنۍ', 'جمعه', 'اونۍ'],\n    'weekdays_min' => ['يونۍ', 'دونۍ', 'درېنۍ', 'څلرنۍ', 'پينځنۍ', 'جمعه', 'اونۍ'],\n    'months' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_standalone' => ['جنوري', 'فېبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short_standalone' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'first_day_of_week' => 6,\n    'weekend' => [4, 5],\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'YYYY/M/d',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'د YYYY د MMMM D H:mm',\n        'LLLL' => 'dddd د YYYY د MMMM D H:mm',\n    ],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ps.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Cassiano Montanari\n * - Matt Pope\n * - François B\n * - Prodis\n * - JD Isaacks\n * - Raphael Amorim\n * - João Magalhães\n * - victortobias\n * - Paulo Freitas\n * - Sebastian Thierer\n * - Claudson Martins (claudsonm)\n */\nreturn [\n    'year' => ':count ano|:count anos',\n    'a_year' => 'um ano|:count anos',\n    'y' => ':counta',\n    'month' => ':count mês|:count meses',\n    'a_month' => 'um mês|:count meses',\n    'm' => ':countm',\n    'week' => ':count semana|:count semanas',\n    'a_week' => 'uma semana|:count semanas',\n    'w' => ':countsem',\n    'day' => ':count dia|:count dias',\n    'a_day' => 'um dia|:count dias',\n    'd' => ':countd',\n    'hour' => ':count hora|:count horas',\n    'a_hour' => 'uma hora|:count horas',\n    'h' => ':counth',\n    'minute' => ':count minuto|:count minutos',\n    'a_minute' => 'um minuto|:count minutos',\n    'min' => ':countmin',\n    'second' => ':count segundo|:count segundos',\n    'a_second' => 'alguns segundos|:count segundos',\n    's' => ':counts',\n    'ago' => 'há :time',\n    'from_now' => 'em :time',\n    'after' => ':time depois',\n    'before' => ':time antes',\n    'diff_now' => 'agora',\n    'diff_yesterday' => 'ontem',\n    'diff_tomorrow' => 'amanhã',\n    'diff_before_yesterday' => 'anteontem',\n    'diff_after_tomorrow' => 'depois de amanhã',\n    'period_recurrences' => 'uma vez|:count vezes',\n    'period_interval' => 'cada :interval',\n    'period_start_date' => 'de :date',\n    'period_end_date' => 'até :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D [de] MMMM [de] YYYY',\n        'LLL' => 'D [de] MMMM [de] YYYY HH:mm',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hoje às] LT',\n        'nextDay' => '[Amanhã às] LT',\n        'nextWeek' => 'dddd [às] LT',\n        'lastDay' => '[Ontem às] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                case 6:\n                    return '[Último] dddd [às] LT';\n                default:\n                    return '[Última] dddd [às] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],\n    'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n    'weekdays' => ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'],\n    'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n    'weekdays_min' => ['Do', '2ª', '3ª', '4ª', '5ª', '6ª', 'Sá'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' e '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Cassiano Montanari\n * - Eduardo Dalla Vecchia\n * - David Rodrigues\n * - Matt Pope\n * - François B\n * - Prodis\n * - Marlon Maxwel\n * - JD Isaacks\n * - Raphael Amorim\n * - Rafael Raupp\n * - felipeleite1\n * - swalker\n * - Lucas Macedo\n * - Paulo Freitas\n * - Sebastian Thierer\n */\nreturn array_replace_recursive(require __DIR__.'/pt.php', [\n    'period_recurrences' => 'uma|:count vez',\n    'period_interval' => 'toda :interval',\n    'formats' => [\n        'LLL' => 'D [de] MMMM [de] YYYY [às] HH:mm',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n    ],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/pt.php', [\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'LLL' => 'D [de] MMMM [de] YYYY, h:mm a',\n        'LLLL' => 'dddd, D [de] MMMM [de] YYYY, h:mm a',\n    ],\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/pt.php', [\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RAP    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/pt.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],\n    'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],\n    'weekdays' => ['domingo', 'segunda', 'terça', 'quarta', 'quinta', 'sexta', 'sábado'],\n    'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n    'weekdays_min' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/pt.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/qu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/es_UY.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM, YYYY HH:mm',\n    ],\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/qu.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/qu.php', [\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/quz.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/quz_PE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['iniru', 'phiwriru', 'marsu', 'awril', 'mayu', 'huniyu', 'huliyu', 'agustu', 'siptiyimri', 'uktuwri', 'nuwiyimri', 'tisiyimri'],\n    'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'hun', 'hul', 'agu', 'sip', 'ukt', 'nuw', 'tis'],\n    'weekdays' => ['tuminku', 'lunis', 'martis', 'miyirkulis', 'juywis', 'wiyirnis', 'sawatu'],\n    'weekdays_short' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'],\n    'weekdays_min' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'],\n    'day_of_first_week_of_year' => 1,\n\n    'minute' => ':count uchuy', // less reliable\n    'min' => ':count uchuy', // less reliable\n    'a_minute' => ':count uchuy', // less reliable\n\n    'year' => ':count wata',\n    'y' => ':count wata',\n    'a_year' => ':count wata',\n\n    'month' => ':count killa',\n    'm' => ':count killa',\n    'a_month' => ':count killa',\n\n    'week' => ':count simana',\n    'w' => ':count simana',\n    'a_week' => ':count simana',\n\n    'day' => ':count pʼunchaw',\n    'd' => ':count pʼunchaw',\n    'a_day' => ':count pʼunchaw',\n\n    'hour' => ':count ura',\n    'h' => ':count ura',\n    'a_hour' => ':count ura',\n\n    'second' => ':count iskay ñiqin',\n    's' => ':count iskay ñiqin',\n    'a_second' => ':count iskay ñiqin',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/raj.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/raj_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - meghrajsuthar03@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'],\n    'months_short' => ['जन', 'फर', 'मार्च', 'अप्रै', 'मई', 'जून', 'जुल', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'],\n    'weekdays' => ['रविवार', 'सोमवार', 'मंगल्लवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'],\n    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n\n    'year' => ':count आंहू', // less reliable\n    'y' => ':count आंहू', // less reliable\n    'a_year' => ':count आंहू', // less reliable\n\n    'month' => ':count सूरज', // less reliable\n    'm' => ':count सूरज', // less reliable\n    'a_month' => ':count सूरज', // less reliable\n\n    'week' => ':count निवाज', // less reliable\n    'w' => ':count निवाज', // less reliable\n    'a_week' => ':count निवाज', // less reliable\n\n    'day' => ':count अेक', // less reliable\n    'd' => ':count अेक', // less reliable\n    'a_day' => ':count अेक', // less reliable\n\n    'hour' => ':count दुनियांण', // less reliable\n    'h' => ':count दुनियांण', // less reliable\n    'a_hour' => ':count दुनियांण', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rm.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - tjku\n * - Max Melentiev\n * - Juanito Fatas\n * - Tsutomu Kuroda\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Nicolás Hock Isaza\n * - sebastian de castelberg\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'Do MMMM YYYY',\n        'LLL' => 'Do MMMM, HH:mm [Uhr]',\n        'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]',\n    ],\n    'year' => ':count onn|:count onns',\n    'month' => ':count mais',\n    'week' => ':count emna|:count emnas',\n    'day' => ':count di|:count dis',\n    'hour' => ':count oura|:count ouras',\n    'minute' => ':count minuta|:count minutas',\n    'second' => ':count secunda|:count secundas',\n    'weekdays' => ['dumengia', 'glindesdi', 'mardi', 'mesemna', 'gievgia', 'venderdi', 'sonda'],\n    'weekdays_short' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'],\n    'weekdays_min' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'],\n    'months' => ['schaner', 'favrer', 'mars', 'avrigl', 'matg', 'zercladur', 'fanadur', 'avust', 'settember', 'october', 'november', 'december'],\n    'months_short' => ['schan', 'favr', 'mars', 'avr', 'matg', 'zercl', 'fan', 'avust', 'sett', 'oct', 'nov', 'dec'],\n    'meridiem' => ['avantmezdi', 'suentermezdi'],\n    'list' => [', ', ' e '],\n    'first_day_of_week' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Z.MU.', 'Z.MW.'],\n    'weekdays' => ['Ku w’indwi', 'Ku wa mbere', 'Ku wa kabiri', 'Ku wa gatatu', 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'],\n    'weekdays_short' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'],\n    'weekdays_min' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'],\n    'months' => ['Nzero', 'Ruhuhuma', 'Ntwarante', 'Ndamukiza', 'Rusama', 'Ruheshi', 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', 'Kigarama'],\n    'months_short' => ['Mut.', 'Gas.', 'Wer.', 'Mat.', 'Gic.', 'Kam.', 'Nya.', 'Kan.', 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'year' => 'imyaka :count',\n    'y' => 'imyaka :count',\n    'a_year' => 'imyaka :count',\n\n    'month' => 'amezi :count',\n    'm' => 'amezi :count',\n    'a_month' => 'amezi :count',\n\n    'week' => 'indwi :count',\n    'w' => 'indwi :count',\n    'a_week' => 'indwi :count',\n\n    'day' => 'imisi :count',\n    'd' => 'imisi :count',\n    'a_day' => 'imisi :count',\n\n    'hour' => 'amasaha :count',\n    'h' => 'amasaha :count',\n    'a_hour' => 'amasaha :count',\n\n    'minute' => 'iminuta :count',\n    'min' => 'iminuta :count',\n    'a_minute' => 'iminuta :count',\n\n    'second' => 'inguvu :count', // less reliable\n    's' => 'inguvu :count', // less reliable\n    'a_second' => 'inguvu :count', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ro.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n * - Cătălin Georgescu\n * - Valentin Ivaşcu (oriceon)\n */\nreturn [\n    'year' => ':count an|:count ani|:count ani',\n    'a_year' => 'un an|:count ani|:count ani',\n    'y' => ':count a.',\n    'month' => ':count lună|:count luni|:count luni',\n    'a_month' => 'o lună|:count luni|:count luni',\n    'm' => ':count l.',\n    'week' => ':count săptămână|:count săptămâni|:count săptămâni',\n    'a_week' => 'o săptămână|:count săptămâni|:count săptămâni',\n    'w' => ':count săp.',\n    'day' => ':count zi|:count zile|:count zile',\n    'a_day' => 'o zi|:count zile|:count zile',\n    'd' => ':count z.',\n    'hour' => ':count oră|:count ore|:count ore',\n    'a_hour' => 'o oră|:count ore|:count ore',\n    'h' => ':count o.',\n    'minute' => ':count minut|:count minute|:count minute',\n    'a_minute' => 'un minut|:count minute|:count minute',\n    'min' => ':count m.',\n    'second' => ':count secundă|:count secunde|:count secunde',\n    'a_second' => 'câteva secunde|:count secunde|:count secunde',\n    's' => ':count sec.',\n    'ago' => ':time în urmă',\n    'from_now' => 'peste :time',\n    'after' => 'peste :time',\n    'before' => 'acum :time',\n    'diff_yesterday' => 'ieri',\n    'diff_tomorrow' => 'mâine',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[azi la] LT',\n        'nextDay' => '[mâine la] LT',\n        'nextWeek' => 'dddd [la] LT',\n        'lastDay' => '[ieri la] LT',\n        'lastWeek' => '[fosta] dddd [la] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'],\n    'months_short' => ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'],\n    'weekdays' => ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', 'sâmbătă'],\n    'weekdays_short' => ['dum', 'lun', 'mar', 'mie', 'joi', 'vin', 'sâm'],\n    'weekdays_min' => ['du', 'lu', 'ma', 'mi', 'jo', 'vi', 'sâ'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' și '],\n    'meridiem' => ['a.m.', 'p.m.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ro.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ro.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rof.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['kang’ama', 'kingoto'],\n    'weekdays' => ['Ijumapili', 'Ijumatatu', 'Ijumanne', 'Ijumatano', 'Alhamisi', 'Ijumaa', 'Ijumamosi'],\n    'weekdays_short' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'],\n    'weekdays_min' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'],\n    'months' => ['Mweri wa kwanza', 'Mweri wa kaili', 'Mweri wa katatu', 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'],\n    'months_short' => ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10', 'M11', 'M12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Bari Badamshin\n * - Jørn Ølmheim\n * - François B\n * - Tim Fish\n * - Коренберг Марк (imac)\n * - Serhan Apaydın\n * - RomeroMsk\n * - vsn4ik\n * - JD Isaacks\n * - Bari Badamshin\n * - Jørn Ølmheim\n * - François B\n * - Коренберг Марк (imac)\n * - Serhan Apaydın\n * - RomeroMsk\n * - vsn4ik\n * - JD Isaacks\n * - Fellzo\n * - andrey-helldar\n * - Pavel Skripkin (psxx)\n * - AlexWalkerson\n * - Vladislav UnsealedOne\n */\n$transformDiff = function ($input) {\n    return strtr($input, [\n        'неделя' => 'неделю',\n        'секунда' => 'секунду',\n        'минута' => 'минуту',\n    ]);\n};\n\nreturn [\n    'year' => ':count год|:count года|:count лет',\n    'y' => ':count г.|:count г.|:count л.',\n    'a_year' => '{1}год|:count год|:count года|:count лет',\n    'month' => ':count месяц|:count месяца|:count месяцев',\n    'm' => ':count мес.',\n    'a_month' => '{1}месяц|:count месяц|:count месяца|:count месяцев',\n    'week' => ':count неделя|:count недели|:count недель',\n    'w' => ':count нед.',\n    'a_week' => '{1}неделя|:count неделю|:count недели|:count недель',\n    'day' => ':count день|:count дня|:count дней',\n    'd' => ':count д.',\n    'a_day' => '{1}день|:count день|:count дня|:count дней',\n    'hour' => ':count час|:count часа|:count часов',\n    'h' => ':count ч.',\n    'a_hour' => '{1}час|:count час|:count часа|:count часов',\n    'minute' => ':count минута|:count минуты|:count минут',\n    'min' => ':count мин.',\n    'a_minute' => '{1}минута|:count минута|:count минуты|:count минут',\n    'second' => ':count секунда|:count секунды|:count секунд',\n    's' => ':count сек.',\n    'a_second' => '{1}несколько секунд|:count секунду|:count секунды|:count секунд',\n    'ago' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' назад';\n    },\n    'from_now' => function ($time) use ($transformDiff) {\n        return 'через '.$transformDiff($time);\n    },\n    'after' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' после';\n    },\n    'before' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' до';\n    },\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY г.',\n        'LLL' => 'D MMMM YYYY г., H:mm',\n        'LLLL' => 'dddd, D MMMM YYYY г., H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Сегодня, в] LT',\n        'nextDay' => '[Завтра, в] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $current, \\Carbon\\CarbonInterface $other) {\n            if ($current->week !== $other->week) {\n                switch ($current->dayOfWeek) {\n                    case 0:\n                        return '[В следующее] dddd, [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[В следующий] dddd, [в] LT';\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[В следующую] dddd, [в] LT';\n                }\n            }\n\n            if ($current->dayOfWeek === 2) {\n                return '[Во] dddd, [в] LT';\n            }\n\n            return '[В] dddd, [в] LT';\n        },\n        'lastDay' => '[Вчера, в] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $current, \\Carbon\\CarbonInterface $other) {\n            if ($current->week !== $other->week) {\n                switch ($current->dayOfWeek) {\n                    case 0:\n                        return '[В прошлое] dddd, [в] LT';\n                    case 1:\n                    case 2:\n                    case 4:\n                        return '[В прошлый] dddd, [в] LT';\n                    case 3:\n                    case 5:\n                    case 6:\n                        return '[В прошлую] dddd, [в] LT';\n                }\n            }\n\n            if ($current->dayOfWeek === 2) {\n                return '[Во] dddd, [в] LT';\n            }\n\n            return '[В] dddd, [в] LT';\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'M':\n            case 'd':\n            case 'DDD':\n                return $number.'-й';\n            case 'D':\n                return $number.'-го';\n            case 'w':\n            case 'W':\n                return $number.'-я';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'ночи';\n        }\n        if ($hour < 12) {\n            return 'утра';\n        }\n        if ($hour < 17) {\n            return 'дня';\n        }\n\n        return 'вечера';\n    },\n    'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],\n    'months_standalone' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'],\n    'months_short' => ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'months_short_standalone' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'months_regexp' => '/DD?o?\\.?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среду', 'четверг', 'пятницу', 'субботу'],\n    'weekdays_standalone' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],\n    'weekdays_short' => ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],\n    'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    'weekdays_regexp' => '/\\[\\s*(В|в)\\s*((?:прошлую|следующую|эту)\\s*)?\\]\\s*dddd/',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' и '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ru.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ru.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ru.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ru.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ru.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - RFC 2319    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ru.php', [\n    'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],\n    'weekdays_short' => ['вск', 'пнд', 'вто', 'срд', 'чтв', 'птн', 'суб'],\n    'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'су'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/rw_RW.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Rwanda Steve Murphy murf@e-tools.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Mutarama', 'Gashyantare', 'Werurwe', 'Mata', 'Gicuransi', 'Kamena', 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', 'Ukuboza'],\n    'months_short' => ['Mut', 'Gas', 'Wer', 'Mat', 'Gic', 'Kam', 'Nya', 'Kan', 'Nze', 'Ukw', 'Ugu', 'Uku'],\n    'weekdays' => ['Ku cyumweru', 'Kuwa mbere', 'Kuwa kabiri', 'Kuwa gatatu', 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'],\n    'weekdays_short' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'],\n    'weekdays_min' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'second' => ':count vuna', // less reliable\n    's' => ':count vuna', // less reliable\n    'a_second' => ':count vuna', // less reliable\n\n    'year' => 'aka :count',\n    'y' => 'aka :count',\n    'a_year' => 'aka :count',\n\n    'month' => 'ezi :count',\n    'm' => 'ezi :count',\n    'a_month' => 'ezi :count',\n\n    'week' => ':count icyumweru',\n    'w' => ':count icyumweru',\n    'a_week' => ':count icyumweru',\n\n    'day' => ':count nsi',\n    'd' => ':count nsi',\n    'a_day' => ':count nsi',\n\n    'hour' => 'saha :count',\n    'h' => 'saha :count',\n    'a_hour' => 'saha :count',\n\n    'minute' => ':count -nzinya',\n    'min' => ':count -nzinya',\n    'a_minute' => ':count -nzinya',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/rwk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['utuko', 'kyiukonyi'],\n    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sa_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - The Debian project Christian Perrier bubulle@debian.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D-MM-YY',\n    ],\n    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'weekdays' => ['रविवासर:', 'सोमवासर:', 'मंगलवासर:', 'बुधवासर:', 'बृहस्पतिवासरः', 'शुक्रवासर', 'शनिवासर:'],\n    'weekdays_short' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'],\n    'weekdays_min' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n\n    'minute' => ':count होरा', // less reliable\n    'min' => ':count होरा', // less reliable\n    'a_minute' => ':count होरा', // less reliable\n\n    'year' => ':count वर्ष',\n    'y' => ':count वर्ष',\n    'a_year' => ':count वर्ष',\n\n    'month' => ':count मास',\n    'm' => ':count मास',\n    'a_month' => ':count मास',\n\n    'week' => ':count सप्ताहः saptahaĥ',\n    'w' => ':count सप्ताहः saptahaĥ',\n    'a_week' => ':count सप्ताहः saptahaĥ',\n\n    'day' => ':count दिन',\n    'd' => ':count दिन',\n    'a_day' => ':count दिन',\n\n    'hour' => ':count घण्टा',\n    'h' => ':count घण्टा',\n    'a_hour' => ':count घण्टा',\n\n    'second' => ':count द्वितीयः',\n    's' => ':count द्वितीयः',\n    'a_second' => ':count द्वितीयः',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sah.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sah_RU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Valery Timiriliyev Valery Timiriliyev timiriliyev@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/ru.php', [\n    'formats' => [\n        'L' => 'YYYY.MM.DD',\n    ],\n    'months' => ['тохсунньу', 'олунньу', 'кулун тутар', 'муус устар', 'ыам ыйын', 'бэс ыйын', 'от ыйын', 'атырдьах ыйын', 'балаҕан ыйын', 'алтынньы', 'сэтинньи', 'ахсынньы'],\n    'months_short' => ['тохс', 'олун', 'кул', 'муус', 'ыам', 'бэс', 'от', 'атыр', 'бал', 'алт', 'сэт', 'ахс'],\n    'weekdays' => ['баскыһыанньа', 'бэнидиэнньик', 'оптуорунньук', 'сэрэдэ', 'чэппиэр', 'бээтинсэ', 'субуота'],\n    'weekdays_short' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'],\n    'weekdays_min' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/saq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Tesiran', 'Teipa'],\n    'weekdays' => ['Mderot ee are', 'Mderot ee kuni', 'Mderot ee ong’wan', 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'],\n    'weekdays_short' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'],\n    'weekdays_min' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'],\n    'months' => ['Lapa le obo', 'Lapa le waare', 'Lapa le okuni', 'Lapa le ong’wan', 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', 'Lapa le isiet', 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', 'Lapa le tomon waare'],\n    'months_short' => ['Obo', 'Waa', 'Oku', 'Ong', 'Ime', 'Ile', 'Sap', 'Isi', 'Saa', 'Tom', 'Tob', 'Tow'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sat.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sat_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat Pune    libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'],\n    'weekdays' => ['सिंगेमाँहाँ', 'ओतेमाँहाँ', 'बालेमाँहाँ', 'सागुनमाँहाँ', 'सारदीमाँहाँ', 'जारुममाँहाँ', 'ञुहुममाँहाँ'],\n    'weekdays_short' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'],\n    'weekdays_min' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'],\n    'day_of_first_week_of_year' => 1,\n\n    'month' => ':count ńindạ cando', // less reliable\n    'm' => ':count ńindạ cando', // less reliable\n    'a_month' => ':count ńindạ cando', // less reliable\n\n    'week' => ':count mãhã', // less reliable\n    'w' => ':count mãhã', // less reliable\n    'a_week' => ':count mãhã', // less reliable\n\n    'hour' => ':count ᱥᱳᱱᱚ', // less reliable\n    'h' => ':count ᱥᱳᱱᱚ', // less reliable\n    'a_hour' => ':count ᱥᱳᱱᱚ', // less reliable\n\n    'minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable\n    'min' => ':count ᱯᱤᱞᱪᱩ', // less reliable\n    'a_minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable\n\n    'second' => ':count ar', // less reliable\n    's' => ':count ar', // less reliable\n    'a_second' => ':count ar', // less reliable\n\n    'year' => ':count ne̲s',\n    'y' => ':count ne̲s',\n    'a_year' => ':count ne̲s',\n\n    'day' => ':count ᱫᱤᱱ',\n    'd' => ':count ᱫᱤᱱ',\n    'a_day' => ':count ᱫᱤᱱ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sbp.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Lwamilawu', 'Pashamihe'],\n    'weekdays' => ['Mulungu', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alahamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Mupalangulwa', 'Mwitope', 'Mushende', 'Munyi', 'Mushende Magali', 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', 'Musongandembwe', 'Muhaano'],\n    'months_short' => ['Mup', 'Mwi', 'Msh', 'Mun', 'Mag', 'Muj', 'Msp', 'Mpg', 'Mye', 'Mok', 'Mus', 'Muh'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sc.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sc_IT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Sardinian Translators Team Massimeddu Cireddu massimeddu@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD. MM. YY',\n    ],\n    'months' => ['Ghennàrgiu', 'Freàrgiu', 'Martzu', 'Abrile', 'Maju', 'Làmpadas', 'Argiolas//Trìulas', 'Austu', 'Cabudanni', 'Santugaine//Ladàmine', 'Onniasantu//Santandria', 'Nadale//Idas'],\n    'months_short' => ['Ghe', 'Fre', 'Mar', 'Abr', 'Maj', 'Làm', 'Arg', 'Aus', 'Cab', 'Lad', 'Onn', 'Nad'],\n    'weekdays' => ['Domìnigu', 'Lunis', 'Martis', 'Mèrcuris', 'Giòbia', 'Chenàbura', 'Sàbadu'],\n    'weekdays_short' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'],\n    'weekdays_min' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'minute' => ':count mementu', // less reliable\n    'min' => ':count mementu', // less reliable\n    'a_minute' => ':count mementu', // less reliable\n\n    'year' => ':count annu',\n    'y' => ':count annu',\n    'a_year' => ':count annu',\n\n    'month' => ':count mese',\n    'm' => ':count mese',\n    'a_month' => ':count mese',\n\n    'week' => ':count chida',\n    'w' => ':count chida',\n    'a_week' => ':count chida',\n\n    'day' => ':count dí',\n    'd' => ':count dí',\n    'a_day' => ':count dí',\n\n    'hour' => ':count ora',\n    'h' => ':count ora',\n    'a_hour' => ':count ora',\n\n    'second' => ':count secundu',\n    's' => ':count secundu',\n    'a_second' => ':count secundu',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/scr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n}, 'scr');\n\nreturn require __DIR__.'/sh.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sd.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n$months = [\n    'جنوري',\n    'فيبروري',\n    'مارچ',\n    'اپريل',\n    'مئي',\n    'جون',\n    'جولاءِ',\n    'آگسٽ',\n    'سيپٽمبر',\n    'آڪٽوبر',\n    'نومبر',\n    'ڊسمبر',\n];\n\n$weekdays = [\n    'آچر',\n    'سومر',\n    'اڱارو',\n    'اربع',\n    'خميس',\n    'جمع',\n    'ڇنڇر',\n];\n\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'sd');\n\n/*\n * Authors:\n * - Narain Sagar\n * - Sawood Alam\n * - Narain Sagar\n */\nreturn [\n    'year' => 'هڪ سال|:count سال',\n    'month' => 'هڪ مهينو|:count مهينا',\n    'week' => 'ھڪ ھفتو|:count هفتا',\n    'day' => 'هڪ ڏينهن|:count ڏينهن',\n    'hour' => 'هڪ ڪلاڪ|:count ڪلاڪ',\n    'minute' => 'هڪ منٽ|:count منٽ',\n    'second' => 'چند سيڪنڊ|:count سيڪنڊ',\n    'ago' => ':time اڳ',\n    'from_now' => ':time پوء',\n    'diff_yesterday' => 'ڪالهه',\n    'diff_tomorrow' => 'سڀاڻي',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd، D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[اڄ] LT',\n        'nextDay' => '[سڀاڻي] LT',\n        'nextWeek' => 'dddd [اڳين هفتي تي] LT',\n        'lastDay' => '[ڪالهه] LT',\n        'lastWeek' => '[گزريل هفتي] dddd [تي] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['صبح', 'شام'],\n    'months' => $months,\n    'months_short' => $months,\n    'weekdays' => $weekdays,\n    'weekdays_short' => $weekdays,\n    'weekdays_min' => $weekdays,\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => ['، ', ' ۽ '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/sd.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n    'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n    'weekdays' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],\n    'weekdays_short' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],\n    'weekdays_min' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/sd.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'],\n    'months_short' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'],\n    'weekdays' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],\n    'weekdays_short' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],\n    'weekdays_min' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['म.पू.', 'म.नं.'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/se.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'se');\n\n/*\n * Authors:\n * - François B\n * - Karamell\n */\nreturn [\n    'year' => ':count jahki|:count jagit',\n    'a_year' => 'okta jahki|:count jagit',\n    'y' => ':count j.',\n    'month' => ':count mánnu|:count mánut',\n    'a_month' => 'okta mánnu|:count mánut',\n    'm' => ':count mán.',\n    'week' => ':count vahkku|:count vahkku',\n    'a_week' => 'okta vahkku|:count vahkku',\n    'w' => ':count v.',\n    'day' => ':count beaivi|:count beaivvit',\n    'a_day' => 'okta beaivi|:count beaivvit',\n    'd' => ':count b.',\n    'hour' => ':count diimmu|:count diimmut',\n    'a_hour' => 'okta diimmu|:count diimmut',\n    'h' => ':count d.',\n    'minute' => ':count minuhta|:count minuhtat',\n    'a_minute' => 'okta minuhta|:count minuhtat',\n    'min' => ':count min.',\n    'second' => ':count sekunddat|:count sekunddat',\n    'a_second' => 'moadde sekunddat|:count sekunddat',\n    's' => ':count s.',\n    'ago' => 'maŋit :time',\n    'from_now' => ':time geažes',\n    'diff_yesterday' => 'ikte',\n    'diff_tomorrow' => 'ihttin',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'MMMM D. [b.] YYYY',\n        'LLL' => 'MMMM D. [b.] YYYY [ti.] HH:mm',\n        'LLLL' => 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[otne ti] LT',\n        'nextDay' => '[ihttin ti] LT',\n        'nextWeek' => 'dddd [ti] LT',\n        'lastDay' => '[ikte ti] LT',\n        'lastWeek' => '[ovddit] dddd [ti] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'],\n    'months_short' => ['ođđj', 'guov', 'njuk', 'cuo', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'],\n    'weekdays' => ['sotnabeaivi', 'vuossárga', 'maŋŋebárga', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvardat'],\n    'weekdays_short' => ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', 'láv'],\n    'weekdays_min' => ['s', 'v', 'm', 'g', 'd', 'b', 'L'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' ja '],\n    'meridiem' => ['i.b.', 'e.b.'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/se.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'],\n    'months_short' => ['ođđj', 'guov', 'njuk', 'cuoŋ', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'],\n    'weekdays' => ['sotnabeaivi', 'mánnodat', 'disdat', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvordat'],\n    'weekdays_short' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'],\n    'weekdays_min' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'],\n    'meridiem' => ['i', 'e'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/se.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/se.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/seh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['Dimingu', 'Chiposi', 'Chipiri', 'Chitatu', 'Chinai', 'Chishanu', 'Sabudu'],\n    'weekdays_short' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'],\n    'weekdays_min' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'],\n    'months' => ['Janeiro', 'Fevreiro', 'Marco', 'Abril', 'Maio', 'Junho', 'Julho', 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'],\n    'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', 'Otu', 'Nov', 'Dec'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'd [de] MMM [de] YYYY',\n        'LLL' => 'd [de] MMMM [de] YYYY HH:mm',\n        'LLLL' => 'dddd, d [de] MMMM [de] YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ses.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Adduha', 'Aluula'],\n    'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', 'Alzuma', 'Asibti'],\n    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],\n    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],\n    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],\n    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'month' => ':count alaada', // less reliable\n    'm' => ':count alaada', // less reliable\n    'a_month' => ':count alaada', // less reliable\n\n    'hour' => ':count ɲaajin', // less reliable\n    'h' => ':count ɲaajin', // less reliable\n    'a_hour' => ':count ɲaajin', // less reliable\n\n    'minute' => ':count zarbu', // less reliable\n    'min' => ':count zarbu', // less reliable\n    'a_minute' => ':count zarbu', // less reliable\n\n    'year' => ':count jiiri',\n    'y' => ':count jiiri',\n    'a_year' => ':count jiiri',\n\n    'week' => ':count jirbiiyye',\n    'w' => ':count jirbiiyye',\n    'a_week' => ':count jirbiiyye',\n\n    'day' => ':count zaari',\n    'd' => ':count zaari',\n    'a_day' => ':count zaari',\n\n    'second' => ':count ihinkante',\n    's' => ':count ihinkante',\n    'a_second' => ':count ihinkante',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ND', 'LK'],\n    'weekdays' => ['Bikua-ôko', 'Bïkua-ûse', 'Bïkua-ptâ', 'Bïkua-usïö', 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'],\n    'weekdays_short' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'],\n    'weekdays_min' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'],\n    'months' => ['Nyenye', 'Fulundïgi', 'Mbängü', 'Ngubùe', 'Bêläwü', 'Föndo', 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', 'Kakauka'],\n    'months_short' => ['Nye', 'Ful', 'Mbä', 'Ngu', 'Bêl', 'Fön', 'Len', 'Kük', 'Mvu', 'Ngb', 'Nab', 'Kak'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count dā', // less reliable\n    'y' => ':count dā', // less reliable\n    'a_year' => ':count dā', // less reliable\n\n    'week' => ':count bïkua-okü', // less reliable\n    'w' => ':count bïkua-okü', // less reliable\n    'a_week' => ':count bïkua-okü', // less reliable\n\n    'day' => ':count ziggawâ', // less reliable\n    'd' => ':count ziggawâ', // less reliable\n    'a_day' => ':count ziggawâ', // less reliable\n\n    'hour' => ':count yângâködörö', // less reliable\n    'h' => ':count yângâködörö', // less reliable\n    'a_hour' => ':count yângâködörö', // less reliable\n\n    'second' => ':count bïkua-ôko', // less reliable\n    's' => ':count bïkua-ôko', // less reliable\n    'a_second' => ':count bïkua-ôko', // less reliable\n\n    'month' => ':count Nze tî ngu',\n    'm' => ':count Nze tî ngu',\n    'a_month' => ':count Nze tî ngu',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sgs.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sgs_LT.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Arnas Udovičius bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY.MM.DD',\n    ],\n    'months' => ['sausė', 'vasarė', 'kuova', 'balondė', 'gegožės', 'bėrželė', 'lëpas', 'rogpjūtė', 'siejės', 'spalė', 'lapkrėstė', 'grůdė'],\n    'months_short' => ['Sau', 'Vas', 'Kuo', 'Bal', 'Geg', 'Bėr', 'Lëp', 'Rgp', 'Sie', 'Spa', 'Lap', 'Grd'],\n    'weekdays' => ['nedielės dëna', 'panedielis', 'oterninks', 'sereda', 'četvergs', 'petnīčė', 'sobata'],\n    'weekdays_short' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'],\n    'weekdays_min' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'minute' => ':count mažos', // less reliable\n    'min' => ':count mažos', // less reliable\n    'a_minute' => ':count mažos', // less reliable\n\n    'year' => ':count metā',\n    'y' => ':count metā',\n    'a_year' => ':count metā',\n\n    'month' => ':count mienou',\n    'm' => ':count mienou',\n    'a_month' => ':count mienou',\n\n    'week' => ':count nedielė',\n    'w' => ':count nedielė',\n    'a_week' => ':count nedielė',\n\n    'day' => ':count dīna',\n    'd' => ':count dīna',\n    'a_day' => ':count dīna',\n\n    'hour' => ':count adīna',\n    'h' => ':count adīna',\n    'a_hour' => ':count adīna',\n\n    'second' => ':count Sekondė',\n    's' => ':count Sekondė',\n    'a_second' => ':count Sekondė',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n}, 'sh');\n\n/*\n * Authors:\n * - Томица Кораћ\n * - Enrique Vidal\n * - Christopher Dell\n * - dmilisic\n * - danijel\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'MMMM D, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'year' => ':count godina|:count godine|:count godina',\n    'y' => ':count godina|:count godine|:count godina',\n    'month' => ':count mesec|:count meseca|:count meseci',\n    'm' => ':count mesec|:count meseca|:count meseci',\n    'week' => ':count nedelja|:count nedelje|:count nedelja',\n    'w' => ':count nedelja|:count nedelje|:count nedelja',\n    'day' => ':count dan|:count dana|:count dana',\n    'd' => ':count dan|:count dana|:count dana',\n    'hour' => ':count čas|:count časa|:count časova',\n    'h' => ':count čas|:count časa|:count časova',\n    'minute' => ':count minut|:count minuta|:count minuta',\n    'min' => ':count minut|:count minuta|:count minuta',\n    'second' => ':count sekund|:count sekunda|:count sekundi',\n    's' => ':count sekund|:count sekunda|:count sekundi',\n    'ago' => 'pre :time',\n    'from_now' => 'za :time',\n    'after' => 'nakon :time',\n    'before' => ':time raniјe',\n    'weekdays' => ['Nedelja', 'Ponedeljak', 'Utorak', 'Sreda', 'Četvrtak', 'Petak', 'Subota'],\n    'weekdays_short' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'],\n    'weekdays_min' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'],\n    'months' => ['Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun', 'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'],\n    'list' => [', ', ' i '],\n    'meridiem' => ['pre podne', 'po podne'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'],\n    'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],\n    'weekdays_short' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'],\n    'weekdays_min' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'],\n    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'],\n    'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵜⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'],\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'year' => ':count aseggwas',\n    'y' => ':count aseggwas',\n    'a_year' => ':count aseggwas',\n\n    'month' => ':count ayyur',\n    'm' => ':count ayyur',\n    'a_month' => ':count ayyur',\n\n    'week' => ':count imalass',\n    'w' => ':count imalass',\n    'a_week' => ':count imalass',\n\n    'day' => ':count ass',\n    'd' => ':count ass',\n    'a_day' => ':count ass',\n\n    'hour' => ':count urɣ', // less reliable\n    'h' => ':count urɣ', // less reliable\n    'a_hour' => ':count urɣ', // less reliable\n\n    'minute' => ':count ⴰⵎⵥⵉ', // less reliable\n    'min' => ':count ⴰⵎⵥⵉ', // less reliable\n    'a_minute' => ':count ⴰⵎⵥⵉ', // less reliable\n\n    'second' => ':count sin', // less reliable\n    's' => ':count sin', // less reliable\n    'a_second' => ':count sin', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/shi.php', [\n    'meridiem' => ['tifawt', 'tadggʷat'],\n    'weekdays' => ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', 'asimwas', 'asiḍyas'],\n    'weekdays_short' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'],\n    'weekdays_min' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'],\n    'months' => ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', 'yunyu', 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'],\n    'months_short' => ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', 'ɣuc', 'cut', 'ktu', 'nuw', 'duj'],\n    'first_day_of_week' => 6,\n    'weekend' => [5, 6],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n\n    'minute' => ':count agur', // less reliable\n    'min' => ':count agur', // less reliable\n    'a_minute' => ':count agur', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/shi.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/shn_MM.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - ubuntu Myanmar LoCo Team http://www.ubuntu-mm.net Bone Pyae Sone bone.burma@mail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'OY MMM OD dddd',\n    ],\n    'months' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'],\n    'months_short' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'],\n    'weekdays' => ['ဝၼ်းဢႃးတိတ်ႉ', 'ဝၼ်းၸၼ်', 'ဝၼ်း​ဢၢင်း​ၵၢၼ်း', 'ဝၼ်းပူတ်ႉ', 'ဝၼ်းၽတ်း', 'ဝၼ်းသုၵ်း', 'ဝၼ်းသဝ်'],\n    'weekdays_short' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'],\n    'weekdays_min' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'],\n    'alt_numbers' => ['႐႐', '႐႑', '႐႒', '႐႓', '႐႔', '႐႕', '႐႖', '႐႗', '႐႘', '႐႙', '႑႐', '႑႑', '႑႒', '႑႓', '႑႔', '႑႕', '႑႖', '႑႗', '႑႘', '႑႙', '႒႐', '႒႑', '႒႒', '႒႓', '႒႔', '႒႕', '႒႖', '႒႗', '႒႘', '႒႙', '႓႐', '႓႑', '႓႒', '႓႓', '႓႔', '႓႕', '႓႖', '႓႗', '႓႘', '႓႙', '႔႐', '႔႑', '႔႒', '႔႓', '႔႔', '႔႕', '႔႖', '႔႗', '႔႘', '႔႙', '႕႐', '႕႑', '႕႒', '႕႓', '႕႔', '႕႕', '႕႖', '႕႗', '႕႘', '႕႙', '႖႐', '႖႑', '႖႒', '႖႓', '႖႔', '႖႕', '႖႖', '႖႗', '႖႘', '႖႙', '႗႐', '႗႑', '႗႒', '႗႓', '႗႔', '႗႕', '႗႖', '႗႗', '႗႘', '႗႙', '႘႐', '႘႑', '႘႒', '႘႓', '႘႔', '႘႕', '႘႖', '႘႗', '႘႘', '႘႙', '႙႐', '႙႑', '႙႒', '႙႓', '႙႔', '႙႕', '႙႖', '႙႗', '႙႘', '႙႙'],\n    'meridiem' => ['ၵၢင်ၼႂ်', 'တၢမ်းၶမ်ႈ'],\n\n    'month' => ':count လိူၼ်', // less reliable\n    'm' => ':count လိူၼ်', // less reliable\n    'a_month' => ':count လိူၼ်', // less reliable\n\n    'week' => ':count ဝၼ်း', // less reliable\n    'w' => ':count ဝၼ်း', // less reliable\n    'a_week' => ':count ဝၼ်း', // less reliable\n\n    'hour' => ':count ຕີ', // less reliable\n    'h' => ':count ຕີ', // less reliable\n    'a_hour' => ':count ຕີ', // less reliable\n\n    'minute' => ':count ເດັກ', // less reliable\n    'min' => ':count ເດັກ', // less reliable\n    'a_minute' => ':count ເດັກ', // less reliable\n\n    'second' => ':count ဢိုၼ်ႇ', // less reliable\n    's' => ':count ဢိုၼ်ႇ', // less reliable\n    'a_second' => ':count ဢိုၼ်ႇ', // less reliable\n\n    'year' => ':count ပီ',\n    'y' => ':count ပီ',\n    'a_year' => ':count ပီ',\n\n    'day' => ':count ກາງວັນ',\n    'd' => ':count ກາງວັນ',\n    'a_day' => ':count ກາງວັນ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shs.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/shs_CA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Neskie Manuel    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Pellkwet̓min', 'Pelctsipwen̓ten', 'Pellsqépts', 'Peslléwten', 'Pell7ell7é7llqten', 'Pelltspéntsk', 'Pelltqwelq̓wél̓t', 'Pellct̓éxel̓cten', 'Pesqelqlélten', 'Pesllwélsten', 'Pellc7ell7é7llcwten̓', 'Pelltetétq̓em'],\n    'months_short' => ['Kwe', 'Tsi', 'Sqe', 'Éwt', 'Ell', 'Tsp', 'Tqw', 'Ct̓é', 'Qel', 'Wél', 'U7l', 'Tet'],\n    'weekdays' => ['Sxetspesq̓t', 'Spetkesq̓t', 'Selesq̓t', 'Skellesq̓t', 'Smesesq̓t', 'Stselkstesq̓t', 'Stqmekstesq̓t'],\n    'weekdays_short' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'],\n    'weekdays_min' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count sqlélten', // less reliable\n    'y' => ':count sqlélten', // less reliable\n    'a_year' => ':count sqlélten', // less reliable\n\n    'month' => ':count swewll', // less reliable\n    'm' => ':count swewll', // less reliable\n    'a_month' => ':count swewll', // less reliable\n\n    'hour' => ':count seqwlút', // less reliable\n    'h' => ':count seqwlút', // less reliable\n    'a_hour' => ':count seqwlút', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/si.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'si');\n\n/*\n * Authors:\n * - François B\n * - Serhan Apaydın\n * - JD Isaacks\n */\nreturn [\n    'year' => 'වසර|වසර :count',\n    'month' => 'මාසය|මාස :count',\n    'week' => 'සතියක්|සති :count යි',\n    'day' => 'දිනය|දින :count',\n    'hour' => 'පැය|පැය :count',\n    'minute' => 'මිනිත්තුව|මිනිත්තු :count',\n    'second' => 'තත්පර කිහිපය|තත්පර :count',\n    'ago' => ':timeකට පෙර',\n    'from_now' => ':timeකින්',\n    'diff_yesterday' => 'ඊයේ',\n    'diff_tomorrow' => 'හෙට',\n    'formats' => [\n        'LT' => 'a h:mm',\n        'LTS' => 'a h:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY MMMM D',\n        'LLL' => 'YYYY MMMM D, a h:mm',\n        'LLLL' => 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n    ],\n    'calendar' => [\n        'sameDay' => '[අද] LT[ට]',\n        'nextDay' => '[හෙට] LT[ට]',\n        'nextWeek' => 'dddd LT[ට]',\n        'lastDay' => '[ඊයේ] LT[ට]',\n        'lastWeek' => '[පසුගිය] dddd LT[ට]',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number වැනි',\n    'meridiem' => ['පෙර වරු', 'පස් වරු', 'පෙ.ව.', 'ප.ව.'],\n    'months' => ['ජනවාරි', 'පෙබරවාරි', 'මාර්තු', 'අප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝස්තු', 'සැප්තැම්බර්', 'ඔක්තෝබර්', 'නොවැම්බර්', 'දෙසැම්බර්'],\n    'months_short' => ['ජන', 'පෙබ', 'මාර්', 'අප්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', 'දෙසැ'],\n    'weekdays' => ['ඉරිදා', 'සඳුදා', 'අඟහරුවාදා', 'බදාදා', 'බ්‍රහස්පතින්දා', 'සිකුරාදා', 'සෙනසුරාදා'],\n    'weekdays_short' => ['ඉරි', 'සඳු', 'අඟ', 'බදා', 'බ්‍රහ', 'සිකු', 'සෙන'],\n    'weekdays_min' => ['ඉ', 'ස', 'අ', 'බ', 'බ්‍ර', 'සි', 'සෙ'],\n    'first_day_of_week' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/si.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sid.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sid_ET.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    'weekdays' => ['Sambata', 'Sanyo', 'Maakisanyo', 'Roowe', 'Hamuse', 'Arbe', 'Qidaame'],\n    'weekdays_short' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'],\n    'weekdays_min' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['soodo', 'hawwaro'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Martin Suja\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Juanito Fatas\n * - Ivan Stana\n * - Akira Matsuda\n * - Christopher Dell\n * - James McKinney\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Jozef Fulop\n * - Nicolás Hock Isaza\n * - Tom Hughes\n * - Simon Hürlimann (CyT)\n * - jofi\n * - Jakub ADAMEC\n * - Marek Adamický\n */\nreturn [\n    'year' => 'rok|:count roky|:count rokov',\n    'y' => ':count r',\n    'month' => 'mesiac|:count mesiace|:count mesiacov',\n    'm' => ':count m',\n    'week' => 'týždeň|:count týždne|:count týždňov',\n    'w' => ':count t',\n    'day' => 'deň|:count dni|:count dní',\n    'd' => ':count d',\n    'hour' => 'hodinu|:count hodiny|:count hodín',\n    'h' => ':count h',\n    'minute' => 'minútu|:count minúty|:count minút',\n    'min' => ':count min',\n    'second' => 'sekundu|:count sekundy|:count sekúnd',\n    's' => ':count s',\n    'ago' => 'pred :time',\n    'from_now' => 'za :time',\n    'after' => 'o :time neskôr',\n    'before' => ':time predtým',\n    'year_ago' => 'rokom|:count rokmi|:count rokmi',\n    'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi',\n    'week_ago' => 'týždňom|:count týždňami|:count týždňami',\n    'day_ago' => 'dňom|:count dňami|:count dňami',\n    'hour_ago' => 'hodinou|:count hodinami|:count hodinami',\n    'minute_ago' => 'minútou|:count minútami|:count minútami',\n    'second_ago' => 'sekundou|:count sekundami|:count sekundami',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' a '],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'DD. MMMM YYYY',\n        'LLL' => 'D. M. HH:mm',\n        'LLLL' => 'dddd D. MMMM YYYY HH:mm',\n    ],\n    'weekdays' => ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'],\n    'weekdays_short' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n    'weekdays_min' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n    'months' => ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'meridiem' => ['dopoludnia', 'popoludní'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sk.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Juanito Fatas\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Nicolás Hock Isaza\n * - Miha Rebernik\n * - Gal Jakič\n * - Glavić\n * - Anže Časar\n */\nreturn [\n    'year' => ':count leto|:count leti|:count leta|:count let',\n    'y' => ':count leto|:count leti|:count leta|:count let',\n    'month' => ':count mesec|:count meseca|:count mesece|:count mesecev',\n    'm' => ':count mesec|:count meseca|:count mesece|:count mesecev',\n    'week' => ':count teden|:count tedna|:count tedne|:count tednov',\n    'w' => ':count teden|:count tedna|:count tedne|:count tednov',\n    'day' => ':count dan|:count dni|:count dni|:count dni',\n    'd' => ':count dan|:count dni|:count dni|:count dni',\n    'hour' => ':count uro|:count uri|:count ure|:count ur',\n    'h' => ':count uro|:count uri|:count ure|:count ur',\n    'minute' => ':count minuto|:count minuti|:count minute|:count minut',\n    'min' => ':count minuto|:count minuti|:count minute|:count minut',\n    'second' => ':count sekundo|:count sekundi|:count sekunde|:count sekund',\n    's' => ':count sekundo|:count sekundi|:count sekunde|:count sekund',\n    'year_ago' => ':count letom|:count leti|:count leti|:count leti',\n    'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci',\n    'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni',\n    'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',\n    'hour_ago' => ':count uro|:count urama|:count urami|:count urami',\n    'minute_ago' => ':count minuto|:count minutama|:count minutami|:count minutami',\n    'second_ago' => ':count sekundo|:count sekundama|:count sekundami|:count sekundami',\n    'ago' => 'pred :time',\n    'from_now' => 'čez :time',\n    'after' => 'čez :time',\n    'before' => 'pred :time',\n    'diff_now' => 'ravnokar',\n    'diff_yesterday' => 'včeraj',\n    'diff_tomorrow' => 'jutri',\n    'diff_before_yesterday' => 'predvčerajšnjim',\n    'diff_after_tomorrow' => 'pojutrišnjem',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'period_start_date' => 'od :date',\n    'period_end_date' => 'do :date',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[danes ob] LT',\n        'nextDay' => '[jutri ob] LT',\n        'nextWeek' => 'dddd [ob] LT',\n        'lastDay' => '[včeraj ob] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[preteklo] [nedeljo] [ob] LT';\n                case 1:\n                    return '[pretekli] [ponedeljek] [ob] LT';\n                case 2:\n                    return '[pretekli] [torek] [ob] LT';\n                case 3:\n                    return '[preteklo] [sredo] [ob] LT';\n                case 4:\n                    return '[pretekli] [četrtek] [ob] LT';\n                case 5:\n                    return '[pretekli] [petek] [ob] LT';\n                case 6:\n                    return '[preteklo] [soboto] [ob] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'months' => ['Januar', 'Februar', 'Marec', 'April', 'Maj', 'Junij', 'Julij', 'Avgust', 'September', 'Oktober', 'November', 'December'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'],\n    'weekdays' => ['Nedelja', 'Ponedeljek', 'Torek', 'Sreda', 'Četrtek', 'Petek', 'Sobota'],\n    'weekdays_short' => ['Ned', 'Pon', 'Tor', 'Sre', 'Čet', 'Pet', 'Sob'],\n    'weekdays_min' => ['Ne', 'Po', 'To', 'Sr', 'Če', 'Pe', 'So'],\n    'list' => [', ', ' in '],\n    'meridiem' => ['dopoldan', 'popoldan'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sm.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/sm_WS.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Ianuari', 'Fepuari', 'Mati', 'Aperila', 'Me', 'Iuni', 'Iulai', 'Auguso', 'Setema', 'Oketopa', 'Novema', 'Tesema'],\n    'months_short' => ['Ian', 'Fep', 'Mat', 'Ape', 'Me', 'Iun', 'Iul', 'Aug', 'Set', 'Oke', 'Nov', 'Tes'],\n    'weekdays' => ['Aso Sa', 'Aso Gafua', 'Aso Lua', 'Aso Lulu', 'Aso Tofi', 'Aso Farail', 'Aso To\\'ana\\'i'],\n    'weekdays_short' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\\''],\n    'weekdays_min' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\\''],\n\n    'hour' => ':count uati', // less reliable\n    'h' => ':count uati', // less reliable\n    'a_hour' => ':count uati', // less reliable\n\n    'minute' => ':count itiiti', // less reliable\n    'min' => ':count itiiti', // less reliable\n    'a_minute' => ':count itiiti', // less reliable\n\n    'second' => ':count lua', // less reliable\n    's' => ':count lua', // less reliable\n    'a_second' => ':count lua', // less reliable\n\n    'year' => ':count tausaga',\n    'y' => ':count tausaga',\n    'a_year' => ':count tausaga',\n\n    'month' => ':count māsina',\n    'm' => ':count māsina',\n    'a_month' => ':count māsina',\n\n    'week' => ':count vaiaso',\n    'w' => ':count vaiaso',\n    'a_week' => ':count vaiaso',\n\n    'day' => ':count aso',\n    'd' => ':count aso',\n    'a_day' => ':count aso',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/smn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['ip.', 'ep.'],\n    'weekdays' => ['pasepeeivi', 'vuossaargâ', 'majebaargâ', 'koskoho', 'tuorâstuv', 'vástuppeeivi', 'lávurduv'],\n    'weekdays_short' => ['pas', 'vuo', 'maj', 'kos', 'tuo', 'vás', 'láv'],\n    'weekdays_min' => ['pa', 'vu', 'ma', 'ko', 'tu', 'vá', 'lá'],\n    'weekdays_standalone' => ['pasepeivi', 'vuossargâ', 'majebargâ', 'koskokko', 'tuorâstâh', 'vástuppeivi', 'lávurdâh'],\n    'months' => ['uđđâivemáánu', 'kuovâmáánu', 'njuhčâmáánu', 'cuáŋuimáánu', 'vyesimáánu', 'kesimáánu', 'syeinimáánu', 'porgemáánu', 'čohčâmáánu', 'roovvâdmáánu', 'skammâmáánu', 'juovlâmáánu'],\n    'months_short' => ['uđiv', 'kuovâ', 'njuhčâ', 'cuáŋui', 'vyesi', 'kesi', 'syeini', 'porge', 'čohčâ', 'roovvâd', 'skammâ', 'juovlâ'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'H.mm',\n        'LTS' => 'H.mm.ss',\n        'L' => 'D.M.YYYY',\n        'LL' => 'MMM D. YYYY',\n        'LLL' => 'MMMM D. YYYY H.mm',\n        'LLLL' => 'dddd, MMMM D. YYYY H.mm',\n    ],\n\n    'hour' => ':count äigi', // less reliable\n    'h' => ':count äigi', // less reliable\n    'a_hour' => ':count äigi', // less reliable\n\n    'year' => ':count ihe',\n    'y' => ':count ihe',\n    'a_year' => ':count ihe',\n\n    'month' => ':count mánuppaje',\n    'm' => ':count mánuppaje',\n    'a_month' => ':count mánuppaje',\n\n    'week' => ':count okko',\n    'w' => ':count okko',\n    'a_week' => ':count okko',\n\n    'day' => ':count peivi',\n    'd' => ':count peivi',\n    'a_day' => ':count peivi',\n\n    'minute' => ':count miinut',\n    'min' => ':count miinut',\n    'a_minute' => ':count miinut',\n\n    'second' => ':count nubbe',\n    's' => ':count nubbe',\n    'a_second' => ':count nubbe',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['a', 'p'],\n    'weekdays' => ['Svondo', 'Muvhuro', 'Chipiri', 'Chitatu', 'China', 'Chishanu', 'Mugovera'],\n    'weekdays_short' => ['Svo', 'Muv', 'Chp', 'Cht', 'Chn', 'Chs', 'Mug'],\n    'weekdays_min' => ['Sv', 'Mu', 'Cp', 'Ct', 'Cn', 'Cs', 'Mg'],\n    'months' => ['Ndira', 'Kukadzi', 'Kurume', 'Kubvumbi', 'Chivabvu', 'Chikumi', 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', 'Zvita'],\n    'months_short' => ['Ndi', 'Kuk', 'Kur', 'Kub', 'Chv', 'Chk', 'Chg', 'Nya', 'Gun', 'Gum', 'Mbu', 'Zvi'],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n\n    'year' => 'makore :count',\n    'y' => 'makore :count',\n    'a_year' => 'makore :count',\n\n    'month' => 'mwedzi :count',\n    'm' => 'mwedzi :count',\n    'a_month' => 'mwedzi :count',\n\n    'week' => 'vhiki :count',\n    'w' => 'vhiki :count',\n    'a_week' => 'vhiki :count',\n\n    'day' => 'mazuva :count',\n    'd' => 'mazuva :count',\n    'a_day' => 'mazuva :count',\n\n    'hour' => 'maawa :count',\n    'h' => 'maawa :count',\n    'a_hour' => 'maawa :count',\n\n    'minute' => 'minitsi :count',\n    'min' => 'minitsi :count',\n    'a_minute' => 'minitsi :count',\n\n    'second' => 'sekonzi :count',\n    's' => 'sekonzi :count',\n    'a_second' => 'sekonzi :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/so.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/so_DJ.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'],\n    'months_short' => ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'],\n    'weekdays' => ['Axad', 'Isniin', 'Salaaso', 'Arbaco', 'Khamiis', 'Jimco', 'Sabti'],\n    'weekdays_short' => ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'weekdays_min' => ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['subaxnimo', 'galabnimo'],\n\n    'year' => ':count sanad',\n    'y' => ':count sanad',\n    'a_year' => ':count sanad',\n\n    'month' => ':count Bilaha',\n    'm' => ':count Bilaha',\n    'a_month' => ':count Bilaha',\n\n    'week' => ':count todobaad',\n    'w' => ':count todobaad',\n    'a_week' => ':count todobaad',\n\n    'day' => ':count maalin',\n    'd' => ':count maalin',\n    'a_day' => ':count maalin',\n\n    'hour' => ':count saacad',\n    'h' => ':count saacad',\n    'a_hour' => ':count saacad',\n\n    'minute' => ':count daqiiqad',\n    'min' => ':count daqiiqad',\n    'a_minute' => ':count daqiiqad',\n\n    'second' => ':count ilbiriqsi',\n    's' => ':count ilbiriqsi',\n    'a_second' => ':count ilbiriqsi',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'],\n    'months_short' => ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'],\n    'weekdays' => ['Axad', 'Isniin', 'Salaaso', 'Arbaco', 'Khamiis', 'Jimco', 'Sabti'],\n    'weekdays_short' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'weekdays_min' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['subaxnimo', 'galabnimo'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'],\n    'months_short' => ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'],\n    'weekdays' => ['Axad', 'Isniin', 'Salaaso', 'Arbaco', 'Khamiis', 'Jimco', 'Sabti'],\n    'weekdays_short' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'weekdays_min' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['subaxnimo', 'galabnimo'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Bisha Koobaad', 'Bisha Labaad', 'Bisha Saddexaad', 'Bisha Afraad', 'Bisha Shanaad', 'Bisha Lixaad', 'Bisha Todobaad', 'Bisha Sideedaad', 'Bisha Sagaalaad', 'Bisha Tobnaad', 'Bisha Kow iyo Tobnaad', 'Bisha Laba iyo Tobnaad'],\n    'months_short' => ['Kob', 'Lab', 'Sad', 'Afr', 'Sha', 'Lix', 'Tod', 'Sid', 'Sag', 'Tob', 'KIT', 'LIT'],\n    'weekdays' => ['Axad', 'Isniin', 'Salaaso', 'Arbaco', 'Khamiis', 'Jimco', 'Sabti'],\n    'weekdays_short' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'weekdays_min' => ['Axd', 'Isn', 'Sal', 'Arb', 'Kha', 'Jim', 'Sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['subaxnimo', 'galabnimo'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - JD Isaacks\n * - Fadion Dashi\n */\nreturn [\n    'year' => ':count vit|:count vjet',\n    'a_year' => 'një vit|:count vite',\n    'y' => ':count v.',\n    'month' => ':count muaj',\n    'a_month' => 'një muaj|:count muaj',\n    'm' => ':count muaj',\n    'week' => ':count javë',\n    'a_week' => ':count javë|:count javë',\n    'w' => ':count j.',\n    'day' => ':count ditë',\n    'a_day' => 'një ditë|:count ditë',\n    'd' => ':count d.',\n    'hour' => ':count orë',\n    'a_hour' => 'një orë|:count orë',\n    'h' => ':count o.',\n    'minute' => ':count minutë|:count minuta',\n    'a_minute' => 'një minutë|:count minuta',\n    'min' => ':count min.',\n    'second' => ':count sekondë|:count sekonda',\n    'a_second' => 'disa sekonda|:count sekonda',\n    's' => ':count s.',\n    'ago' => ':time më parë',\n    'from_now' => 'në :time',\n    'after' => ':time pas',\n    'before' => ':time para',\n    'diff_now' => 'tani',\n    'diff_yesterday' => 'dje',\n    'diff_tomorrow' => 'nesër',\n    'diff_before_yesterday' => 'pardje',\n    'diff_after_tomorrow' => 'pasnesër',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Sot në] LT',\n        'nextDay' => '[Nesër në] LT',\n        'nextWeek' => 'dddd [në] LT',\n        'lastDay' => '[Dje në] LT',\n        'lastWeek' => 'dddd [e kaluar në] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'meridiem' => ['PD', 'MD'],\n    'months' => ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'],\n    'months_short' => ['jan', 'shk', 'mar', 'pri', 'maj', 'qer', 'kor', 'gus', 'sht', 'tet', 'nën', 'dhj'],\n    'weekdays' => ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', 'e premte', 'e shtunë'],\n    'weekdays_short' => ['die', 'hën', 'mar', 'mër', 'enj', 'pre', 'sht'],\n    'weekdays_min' => ['d', 'h', 'ma', 'më', 'e', 'p', 'sh'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' dhe '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sq.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sq.php', [\n    'formats' => [\n        'L' => 'D.M.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sq.php', [\n    'formats' => [\n        'L' => 'D.M.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n * - Glavić\n * - Milos Sakovic\n */\nreturn [\n    'year' => ':count godina|:count godine|:count godina',\n    'y' => ':count g.',\n    'month' => ':count mesec|:count meseca|:count meseci',\n    'm' => ':count mj.',\n    'week' => ':count nedelja|:count nedelje|:count nedelja',\n    'w' => ':count ned.',\n    'day' => ':count dan|:count dana|:count dana',\n    'd' => ':count d.',\n    'hour' => ':count sat|:count sata|:count sati',\n    'h' => ':count č.',\n    'minute' => ':count minut|:count minuta |:count minuta',\n    'min' => ':count min.',\n    'second' => ':count sekund|:count sekunde|:count sekunde',\n    's' => ':count sek.',\n    'ago' => 'pre :time',\n    'from_now' => 'za :time',\n    'after' => 'nakon :time',\n    'before' => 'pre :time',\n\n    'year_from_now' => ':count godinu|:count godine|:count godina',\n    'year_ago' => ':count godinu|:count godine|:count godina',\n    'week_from_now' => ':count nedelju|:count nedelje|:count nedelja',\n    'week_ago' => ':count nedelju|:count nedelje|:count nedelja',\n\n    'diff_now' => 'upravo sada',\n    'diff_yesterday' => 'juče',\n    'diff_tomorrow' => 'sutra',\n    'diff_before_yesterday' => 'prekjuče',\n    'diff_after_tomorrow' => 'preksutra',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[danas u] LT',\n        'nextDay' => '[sutra u] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[у недељу у] LT';\n                case 3:\n                    return '[у среду у] LT';\n                case 6:\n                    return '[у суботу у] LT';\n                default:\n                    return '[у] dddd [у] LT';\n            }\n        },\n        'lastDay' => '[juče u] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[прошле недеље у] LT';\n                case 1:\n                    return '[прошлог понедељка у] LT';\n                case 2:\n                    return '[прошлог уторка у] LT';\n                case 3:\n                    return '[прошле среде у] LT';\n                case 4:\n                    return '[прошлог четвртка у] LT';\n                case 5:\n                    return '[прошлог петка у] LT';\n                default:\n                    return '[прошле суботе у] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],\n    'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],\n    'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],\n    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' i '],\n    'meridiem' => ['пре подне', 'по подне'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Josh Soref\n * - François B\n * - shaishavgandhi05\n * - Serhan Apaydın\n * - JD Isaacks\n * - Glavić\n * - Nikola Zeravcic\n * - Milos Sakovic\n */\nreturn [\n    'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n    'y' => ':count г.',\n    'month' => '{1}:count месец|{2,3,4}:count месеца|[0,Inf[:count месеци',\n    'm' => ':count м.',\n    'week' => '{1}:count недеља|{2,3,4}:count недеље|[0,Inf[:count недеља',\n    'w' => ':count нед.',\n    'day' => '{1,21,31}:count дан|[0,Inf[:count дана',\n    'd' => ':count д.',\n    'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати',\n    'h' => ':count ч.',\n    'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута',\n    'min' => ':count мин.',\n    'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди',\n    's' => ':count сек.',\n    'ago' => 'пре :time',\n    'from_now' => 'за :time',\n    'after' => ':time након',\n    'before' => ':time пре',\n    'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n    'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n    'week_from_now' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља',\n    'week_ago' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља',\n    'diff_now' => 'управо сада',\n    'diff_yesterday' => 'јуче',\n    'diff_tomorrow' => 'сутра',\n    'diff_before_yesterday' => 'прекјуче',\n    'diff_after_tomorrow' => 'прекосутра',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[данас у] LT',\n        'nextDay' => '[сутра у] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[у недељу у] LT';\n                case 3:\n                    return '[у среду у] LT';\n                case 6:\n                    return '[у суботу у] LT';\n                default:\n                    return '[у] dddd [у] LT';\n            }\n        },\n        'lastDay' => '[јуче у] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[прошле недеље у] LT';\n                case 1:\n                    return '[прошлог понедељка у] LT';\n                case 2:\n                    return '[прошлог уторка у] LT';\n                case 3:\n                    return '[прошле среде у] LT';\n                case 4:\n                    return '[прошлог четвртка у] LT';\n                case 5:\n                    return '[прошлог петка у] LT';\n                default:\n                    return '[прошле суботе у] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],\n    'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],\n    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],\n    'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],\n    'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' и '],\n    'meridiem' => ['АМ', 'ПМ'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sr_Cyrl.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D.M.yy.',\n        'LL' => 'DD.MM.YYYY.',\n        'LLL' => 'DD. MMMM YYYY. HH:mm',\n        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',\n    ],\n    'weekdays' => ['недјеља', 'понедељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'],\n    'weekdays_short' => ['нед.', 'пон.', 'ут.', 'ср.', 'чет.', 'пет.', 'суб.'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Glavić\n * - Milos Sakovic\n */\nreturn [\n    'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n    'y' => ':count г.',\n    'month' => '{1}:count мјесец|{2,3,4}:count мјесеца|[0,Inf[:count мјесеци',\n    'm' => ':count мј.',\n    'week' => '{1}:count недјеља|{2,3,4}:count недјеље|[0,Inf[:count недјеља',\n    'w' => ':count нед.',\n    'day' => '{1,21,31}:count дан|[0,Inf[:count дана',\n    'd' => ':count д.',\n    'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати',\n    'h' => ':count ч.',\n    'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута',\n    'min' => ':count мин.',\n    'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди',\n    's' => ':count сек.',\n    'ago' => 'прије :time',\n    'from_now' => 'за :time',\n    'after' => ':time након',\n    'before' => ':time прије',\n\n    'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n    'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',\n\n    'week_from_now' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља',\n    'week_ago' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља',\n\n    'diff_now' => 'управо сада',\n    'diff_yesterday' => 'јуче',\n    'diff_tomorrow' => 'сутра',\n    'diff_before_yesterday' => 'прекјуче',\n    'diff_after_tomorrow' => 'прекосјутра',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM YYYY',\n        'LLL' => 'D. MMMM YYYY H:mm',\n        'LLLL' => 'dddd, D. MMMM YYYY H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[данас у] LT',\n        'nextDay' => '[сутра у] LT',\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[у недељу у] LT';\n                case 3:\n                    return '[у среду у] LT';\n                case 6:\n                    return '[у суботу у] LT';\n                default:\n                    return '[у] dddd [у] LT';\n            }\n        },\n        'lastDay' => '[јуче у] LT',\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                    return '[прошле недеље у] LT';\n                case 1:\n                    return '[прошлог понедељка у] LT';\n                case 2:\n                    return '[прошлог уторка у] LT';\n                case 3:\n                    return '[прошле среде у] LT';\n                case 4:\n                    return '[прошлог четвртка у] LT';\n                case 5:\n                    return '[прошлог петка у] LT';\n                default:\n                    return '[прошле суботе у] LT';\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],\n    'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],\n    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],\n    'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],\n    'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' и '],\n    'meridiem' => ['АМ', 'ПМ'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sr_Cyrl_BA.php', [\n    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sr_Latn.php', [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D.M.yy.',\n        'LL' => 'DD.MM.YYYY.',\n        'LLL' => 'DD. MMMM YYYY. HH:mm',\n        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',\n    ],\n    'weekdays' => ['nedjelja', 'ponedeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],\n    'weekdays_short' => ['ned.', 'pon.', 'ut.', 'sr.', 'čet.', 'pet.', 'sub.'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - Glavić\n * - Milos Sakovic\n */\nreturn array_replace_recursive(require __DIR__.'/sr.php', [\n    'month' => ':count mjesec|:count mjeseca|:count mjeseci',\n    'week' => ':count nedjelja|:count nedjelje|:count nedjelja',\n    'second' => ':count sekund|:count sekunde|:count sekundi',\n    'ago' => 'prije :time',\n    'from_now' => 'za :time',\n    'after' => ':time nakon',\n    'before' => ':time prije',\n    'week_from_now' => ':count nedjelju|:count nedjelje|:count nedjelja',\n    'week_ago' => ':count nedjelju|:count nedjelje|:count nedjelja',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sr_Latn_BA.php', [\n    'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sr_Latn_ME.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - sr_YU, sr_CS locale Danilo Segan bug-glibc-locales@gnu.org\n */\nreturn require __DIR__.'/sr_Cyrl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ss.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'ss');\n\n/*\n * Authors:\n * - François B\n * - Nicolai Davies\n */\nreturn [\n    'year' => 'umnyaka|:count iminyaka',\n    'month' => 'inyanga|:count tinyanga',\n    'week' => ':count liviki|:count emaviki',\n    'day' => 'lilanga|:count emalanga',\n    'hour' => 'lihora|:count emahora',\n    'minute' => 'umzuzu|:count emizuzu',\n    'second' => 'emizuzwana lomcane|:count mzuzwana',\n    'ago' => 'wenteka nga :time',\n    'from_now' => 'nga :time',\n    'diff_yesterday' => 'Itolo',\n    'diff_tomorrow' => 'Kusasa',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm A',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm A',\n    ],\n    'calendar' => [\n        'sameDay' => '[Namuhla nga] LT',\n        'nextDay' => '[Kusasa nga] LT',\n        'nextWeek' => 'dddd [nga] LT',\n        'lastDay' => '[Itolo nga] LT',\n        'lastWeek' => 'dddd [leliphelile] [nga] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        $lastDigit = $number % 10;\n\n        return $number.(\n            (~~($number % 100 / 10) === 1) ? 'e' : (\n                ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e'\n            )\n        );\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 11) {\n            return 'ekuseni';\n        }\n        if ($hour < 15) {\n            return 'emini';\n        }\n        if ($hour < 19) {\n            return 'entsambama';\n        }\n\n        return 'ebusuku';\n    },\n    'months' => ['Bhimbidvwane', 'Indlovana', 'Indlov\\'lenkhulu', 'Mabasa', 'Inkhwekhweti', 'Inhlaba', 'Kholwane', 'Ingci', 'Inyoni', 'Imphala', 'Lweti', 'Ingongoni'],\n    'months_short' => ['Bhi', 'Ina', 'Inu', 'Mab', 'Ink', 'Inh', 'Kho', 'Igc', 'Iny', 'Imp', 'Lwe', 'Igo'],\n    'weekdays' => ['Lisontfo', 'Umsombuluko', 'Lesibili', 'Lesitsatfu', 'Lesine', 'Lesihlanu', 'Umgcibelo'],\n    'weekdays_short' => ['Lis', 'Umb', 'Lsb', 'Les', 'Lsi', 'Lsh', 'Umg'],\n    'weekdays_min' => ['Li', 'Us', 'Lb', 'Lt', 'Ls', 'Lh', 'Ug'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/ss.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/st.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/st_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Pherekgong', 'Hlakola', 'Tlhakubele', 'Mmese', 'Motsheanong', 'Phupjane', 'Phupu', 'Phato', 'Leotse', 'Mphalane', 'Pudungwana', 'Tshitwe'],\n    'months_short' => ['Phe', 'Hla', 'TlH', 'Mme', 'Mot', 'Jan', 'Upu', 'Pha', 'Leo', 'Mph', 'Pud', 'Tsh'],\n    'weekdays' => ['Sontaha', 'Mantaha', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Moqebelo'],\n    'weekdays_short' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'],\n    'weekdays_min' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'],\n    'day_of_first_week_of_year' => 1,\n\n    'week' => ':count Sontaha', // less reliable\n    'w' => ':count Sontaha', // less reliable\n    'a_week' => ':count Sontaha', // less reliable\n\n    'day' => ':count letsatsi', // less reliable\n    'd' => ':count letsatsi', // less reliable\n    'a_day' => ':count letsatsi', // less reliable\n\n    'hour' => ':count sešupanako', // less reliable\n    'h' => ':count sešupanako', // less reliable\n    'a_hour' => ':count sešupanako', // less reliable\n\n    'minute' => ':count menyane', // less reliable\n    'min' => ':count menyane', // less reliable\n    'a_minute' => ':count menyane', // less reliable\n\n    'second' => ':count thusa', // less reliable\n    's' => ':count thusa', // less reliable\n    'a_second' => ':count thusa', // less reliable\n\n    'year' => ':count selemo',\n    'y' => ':count selemo',\n    'a_year' => ':count selemo',\n\n    'month' => ':count kgwedi',\n    'm' => ':count kgwedi',\n    'a_month' => ':count kgwedi',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sv.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - François B\n * - Kristoffer Snabb\n * - JD Isaacks\n * - Jens Herlevsen\n * - Nightpine\n */\nreturn [\n    'year' => ':count år',\n    'a_year' => 'ett år|:count år',\n    'y' => ':count år',\n    'month' => ':count månad|:count månader',\n    'a_month' => 'en månad|:count månader',\n    'm' => ':count mån.',\n    'week' => ':count vecka|:count veckor',\n    'a_week' => 'en vecka|:count veckor',\n    'w' => ':count v.',\n    'day' => ':count dag|:count dagar',\n    'a_day' => 'en dag|:count dagar',\n    'd' => ':count d.',\n    'hour' => ':count timme|:count timmar',\n    'a_hour' => 'en timme|:count timmar',\n    'h' => ':count t.',\n    'minute' => ':count minut|:count minuter',\n    'a_minute' => 'en minut|:count minuter',\n    'min' => ':count min.',\n    'second' => ':count sekund|:count sekunder',\n    'a_second' => 'några sekunder|:count sekunder',\n    's' => ':count s.',\n    'ago' => 'för :time sedan',\n    'from_now' => 'om :time',\n    'after' => ':time efter',\n    'before' => ':time före',\n    'diff_yesterday' => 'Igår',\n    'diff_tomorrow' => 'Imorgon',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY [kl.] HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY [kl.] HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Idag] LT',\n        'nextDay' => '[Imorgon] LT',\n        'nextWeek' => '[På] dddd LT',\n        'lastDay' => '[Igår] LT',\n        'lastWeek' => '[I] dddd[s] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        $lastDigit = $number % 10;\n\n        return $number.(\n            (~~($number % 100 / 10) === 1) ? 'e' : (\n                ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e'\n            )\n        );\n    },\n    'months' => ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december'],\n    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],\n    'weekdays' => ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'],\n    'weekdays_short' => ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],\n    'weekdays_min' => ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' och '],\n    'meridiem' => ['fm', 'em'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sv.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sv.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/sv.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - leyluj\n * - Josh Soref\n * - ryanhart2\n */\nreturn [\n    'year' => 'mwaka :count|miaka :count',\n    'a_year' => 'mwaka mmoja|miaka :count',\n    'y' => 'mwaka :count|miaka :count',\n    'month' => 'mwezi :count|miezi :count',\n    'a_month' => 'mwezi mmoja|miezi :count',\n    'm' => 'mwezi :count|miezi :count',\n    'week' => 'wiki :count',\n    'a_week' => 'wiki mmoja|wiki :count',\n    'w' => 'w. :count',\n    'day' => 'siku :count',\n    'a_day' => 'siku moja|masiku :count',\n    'd' => 'si. :count',\n    'hour' => 'saa :count|masaa :count',\n    'a_hour' => 'saa limoja|masaa :count',\n    'h' => 'saa :count|masaa :count',\n    'minute' => 'dakika :count',\n    'a_minute' => 'dakika moja|dakika :count',\n    'min' => 'd. :count',\n    'second' => 'sekunde :count',\n    'a_second' => 'hivi punde|sekunde :count',\n    's' => 'se. :count',\n    'ago' => 'tokea :time',\n    'from_now' => ':time baadaye',\n    'after' => ':time baada',\n    'before' => ':time kabla',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[leo saa] LT',\n        'nextDay' => '[kesho saa] LT',\n        'nextWeek' => '[wiki ijayo] dddd [saat] LT',\n        'lastDay' => '[jana] LT',\n        'lastWeek' => '[wiki iliyopita] dddd [saat] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Jpl', 'Jtat', 'Jnne', 'Jtan', 'Alh', 'Ijm', 'Jmos'],\n    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' na '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sw.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kamusi Project Martin Benjamin locales@kamusi.org\n */\nreturn array_replace_recursive(require __DIR__.'/sw.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],\n    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['asubuhi', 'alasiri'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kamusi Project Martin Benjamin locales@kamusi.org\n */\nreturn array_replace_recursive(require __DIR__.'/sw.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],\n    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['asubuhi', 'alasiri'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/sw.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/szl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/szl_PL.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - szl_PL locale Przemyslaw Buczkowski libc-alpha@sourceware.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['styczyń', 'luty', 'merc', 'kwjeciyń', 'moj', 'czyrwjyń', 'lipjyń', 'siyrpjyń', 'wrzesiyń', 'październik', 'listopad', 'grudziyń'],\n    'months_short' => ['sty', 'lut', 'mer', 'kwj', 'moj', 'czy', 'lip', 'siy', 'wrz', 'paź', 'lis', 'gru'],\n    'weekdays' => ['niydziela', 'pyńdziŏek', 'wtŏrek', 'strzŏda', 'sztwortek', 'pjōntek', 'sobŏta'],\n    'weekdays_short' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'],\n    'weekdays_min' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count rok',\n    'y' => ':count rok',\n    'a_year' => ':count rok',\n\n    'month' => ':count mjeśůnc',\n    'm' => ':count mjeśůnc',\n    'a_month' => ':count mjeśůnc',\n\n    'week' => ':count Tydźyń',\n    'w' => ':count Tydźyń',\n    'a_week' => ':count Tydźyń',\n\n    'day' => ':count dźyń',\n    'd' => ':count dźyń',\n    'a_day' => ':count dźyń',\n\n    'hour' => ':count godzina',\n    'h' => ':count godzina',\n    'a_hour' => ':count godzina',\n\n    'minute' => ':count Minuta',\n    'min' => ':count Minuta',\n    'a_minute' => ':count Minuta',\n\n    'second' => ':count Sekůnda',\n    's' => ':count Sekůnda',\n    'a_second' => ':count Sekůnda',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ta.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - François B\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count வருடம்|:count ஆண்டுகள்',\n    'a_year' => 'ஒரு வருடம்|:count ஆண்டுகள்',\n    'y' => ':count வருட.|:count ஆண்.',\n    'month' => ':count மாதம்|:count மாதங்கள்',\n    'a_month' => 'ஒரு மாதம்|:count மாதங்கள்',\n    'm' => ':count மாத.',\n    'week' => ':count வாரம்|:count வாரங்கள்',\n    'a_week' => 'ஒரு வாரம்|:count வாரங்கள்',\n    'w' => ':count வார.',\n    'day' => ':count நாள்|:count நாட்கள்',\n    'a_day' => 'ஒரு நாள்|:count நாட்கள்',\n    'd' => ':count நாள்|:count நாட்.',\n    'hour' => ':count மணி நேரம்|:count மணி நேரம்',\n    'a_hour' => 'ஒரு மணி நேரம்|:count மணி நேரம்',\n    'h' => ':count மணி.',\n    'minute' => ':count நிமிடம்|:count நிமிடங்கள்',\n    'a_minute' => 'ஒரு நிமிடம்|:count நிமிடங்கள்',\n    'min' => ':count நிமி.',\n    'second' => ':count சில விநாடிகள்|:count விநாடிகள்',\n    'a_second' => 'ஒரு சில விநாடிகள்|:count விநாடிகள்',\n    's' => ':count விநா.',\n    'ago' => ':time முன்',\n    'from_now' => ':time இல்',\n    'diff_yesterday' => 'நேற்று',\n    'diff_tomorrow' => 'நாளை',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[இன்று] LT',\n        'nextDay' => '[நாளை] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[நேற்று] LT',\n        'lastWeek' => '[கடந்த வாரம்] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberவது',\n    'meridiem' => function ($hour) {\n        if ($hour < 2) {\n            return ' யாமம்';\n        }\n        if ($hour < 6) {\n            return ' வைகறை';\n        }\n        if ($hour < 10) {\n            return ' காலை';\n        }\n        if ($hour < 14) {\n            return ' நண்பகல்';\n        }\n        if ($hour < 18) {\n            return ' எற்பாடு';\n        }\n        if ($hour < 22) {\n            return ' மாலை';\n        }\n\n        return ' யாமம்';\n    },\n    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'months_short' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'weekdays' => ['ஞாயிற்றுக்கிழமை', 'திங்கட்கிழமை', 'செவ்வாய்கிழமை', 'புதன்கிழமை', 'வியாழக்கிழமை', 'வெள்ளிக்கிழமை', 'சனிக்கிழமை'],\n    'weekdays_short' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' மற்றும் '],\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ta.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],\n    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n    'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['காலை', 'மாலை'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - J.Yogaraj 94-777-315206 yogaraj.ubuntu@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/ta.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'months_short' => ['ஜன', 'பிப்', 'மார்', 'ஏப்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக', 'செப்', 'அக்', 'நவ', 'டிச'],\n    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n    'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['காலை', 'மாலை'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ta.php', [\n    'formats' => [\n        'LT' => 'a h:mm',\n        'LTS' => 'a h:mm:ss',\n        'L' => 'D/M/yy',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM, YYYY, a h:mm',\n        'LLLL' => 'dddd, D MMMM, YYYY, a h:mm',\n    ],\n    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],\n    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n    'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'],\n    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'first_day_of_week' => 1,\n    'meridiem' => ['மு.ப', 'பி.ப'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ta.php', [\n    'formats' => [\n        'LT' => 'a h:mm',\n        'LTS' => 'a h:mm:ss',\n        'L' => 'D/M/yy',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM, YYYY, a h:mm',\n        'LLLL' => 'dddd, D MMMM, YYYY, a h:mm',\n    ],\n    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],\n    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],\n    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],\n    'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'],\n    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],\n    'meridiem' => ['மு.ப', 'பி.ப'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tcy.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tcy_IN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IndLinux.org, Samsung Electronics Co., Ltd.    alexey.merzlyakov@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'],\n    'months_short' => ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'],\n    'weekdays' => ['ಐಥಾರ', 'ಸೋಮಾರ', 'ಅಂಗರೆ', 'ಬುಧಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರರ', 'ಶನಿವಾರ'],\n    'weekdays_short' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],\n    'weekdays_min' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ಕಾಂಡೆ', 'ಬಯ್ಯ'],\n\n    'year' => ':count ನೀರ್', // less reliable\n    'y' => ':count ನೀರ್', // less reliable\n    'a_year' => ':count ನೀರ್', // less reliable\n\n    'month' => ':count ಮೀನ್', // less reliable\n    'm' => ':count ಮೀನ್', // less reliable\n    'a_month' => ':count ಮೀನ್', // less reliable\n\n    'day' => ':count ಸುಗ್ಗಿ', // less reliable\n    'd' => ':count ಸುಗ್ಗಿ', // less reliable\n    'a_day' => ':count ಸುಗ್ಗಿ', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/te.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - Josh Soref\n * - François B\n * - kc\n */\nreturn [\n    'year' => ':count సంవత్సరం|:count సంవత్సరాలు',\n    'a_year' => 'ఒక సంవత్సరం|:count సంవత్సరాలు',\n    'y' => ':count సం.',\n    'month' => ':count నెల|:count నెలలు',\n    'a_month' => 'ఒక నెల|:count నెలలు',\n    'm' => ':count నెల|:count నెల.',\n    'week' => ':count వారం|:count వారాలు',\n    'a_week' => 'ఒక వారం|:count వారాలు',\n    'w' => ':count వార.|:count వారా.',\n    'day' => ':count రోజు|:count రోజులు',\n    'a_day' => 'ఒక రోజు|:count రోజులు',\n    'd' => ':count రోజు|:count రోజు.',\n    'hour' => ':count గంట|:count గంటలు',\n    'a_hour' => 'ఒక గంట|:count గంటలు',\n    'h' => ':count గం.',\n    'minute' => ':count నిమిషం|:count నిమిషాలు',\n    'a_minute' => 'ఒక నిమిషం|:count నిమిషాలు',\n    'min' => ':count నిమి.',\n    'second' => ':count సెకను|:count సెకన్లు',\n    'a_second' => 'కొన్ని క్షణాలు|:count సెకన్లు',\n    's' => ':count సెక.',\n    'ago' => ':time క్రితం',\n    'from_now' => ':time లో',\n    'diff_yesterday' => 'నిన్న',\n    'diff_tomorrow' => 'రేపు',\n    'formats' => [\n        'LT' => 'A h:mm',\n        'LTS' => 'A h:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, A h:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[నేడు] LT',\n        'nextDay' => '[రేపు] LT',\n        'nextWeek' => 'dddd, LT',\n        'lastDay' => '[నిన్న] LT',\n        'lastWeek' => '[గత] dddd, LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberవ',\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'రాత్రి';\n        }\n        if ($hour < 10) {\n            return 'ఉదయం';\n        }\n        if ($hour < 17) {\n            return 'మధ్యాహ్నం';\n        }\n        if ($hour < 20) {\n            return 'సాయంత్రం';\n        }\n\n        return ' రాత్రి';\n    },\n    'months' => ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', 'ఏప్రిల్', 'మే', 'జూన్', 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', 'అక్టోబర్', 'నవంబర్', 'డిసెంబర్'],\n    'months_short' => ['జన.', 'ఫిబ్ర.', 'మార్చి', 'ఏప్రి.', 'మే', 'జూన్', 'జూలై', 'ఆగ.', 'సెప్.', 'అక్టో.', 'నవ.', 'డిసె.'],\n    'weekdays' => ['ఆదివారం', 'సోమవారం', 'మంగళవారం', 'బుధవారం', 'గురువారం', 'శుక్రవారం', 'శనివారం'],\n    'weekdays_short' => ['ఆది', 'సోమ', 'మంగళ', 'బుధ', 'గురు', 'శుక్ర', 'శని'],\n    'weekdays_min' => ['ఆ', 'సో', 'మం', 'బు', 'గు', 'శు', 'శ'],\n    'list' => ', ',\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [0, 0],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/te.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/teo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ta.php', [\n    'meridiem' => ['Taparachu', 'Ebongi'],\n    'weekdays' => ['Nakaejuma', 'Nakaebarasa', 'Nakaare', 'Nakauni', 'Nakaung’on', 'Nakakany', 'Nakasabiti'],\n    'weekdays_short' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'],\n    'weekdays_min' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'],\n    'months' => ['Orara', 'Omuk', 'Okwamg’', 'Odung’el', 'Omaruk', 'Omodok’king’ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', 'Opoo'],\n    'months_short' => ['Rar', 'Muk', 'Kwa', 'Dun', 'Mar', 'Mod', 'Jol', 'Ped', 'Sok', 'Tib', 'Lab', 'Poo'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/teo.php', [\n    'first_day_of_week' => 0,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tet.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tet');\n\n/*\n * Authors:\n * - Joshua Brooks\n * - François B\n */\nreturn [\n    'year' => 'tinan :count',\n    'a_year' => 'tinan ida|tinan :count',\n    'month' => 'fulan :count',\n    'a_month' => 'fulan ida|fulan :count',\n    'week' => 'semana :count',\n    'a_week' => 'semana ida|semana :count',\n    'day' => 'loron :count',\n    'a_day' => 'loron ida|loron :count',\n    'hour' => 'oras :count',\n    'a_hour' => 'oras ida|oras :count',\n    'minute' => 'minutu :count',\n    'a_minute' => 'minutu ida|minutu :count',\n    'second' => 'segundu :count',\n    'a_second' => 'segundu balun|segundu :count',\n    'ago' => ':time liuba',\n    'from_now' => 'iha :time',\n    'diff_yesterday' => 'Horiseik',\n    'diff_tomorrow' => 'Aban',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Ohin iha] LT',\n        'nextDay' => '[Aban iha] LT',\n        'nextWeek' => 'dddd [iha] LT',\n        'lastDay' => '[Horiseik iha] LT',\n        'lastWeek' => 'dddd [semana kotuk] [iha] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':numberº',\n    'months' => ['Janeiru', 'Fevereiru', 'Marsu', 'Abril', 'Maiu', 'Juñu', 'Jullu', 'Agustu', 'Setembru', 'Outubru', 'Novembru', 'Dezembru'],\n    'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],\n    'weekdays' => ['Domingu', 'Segunda', 'Tersa', 'Kuarta', 'Kinta', 'Sesta', 'Sabadu'],\n    'weekdays_short' => ['Dom', 'Seg', 'Ters', 'Kua', 'Kint', 'Sest', 'Sab'],\n    'weekdays_min' => ['Do', 'Seg', 'Te', 'Ku', 'Ki', 'Ses', 'Sa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tg.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tg');\n\n/*\n * Authors:\n * - Orif N. Jr\n */\nreturn [\n    'year' => 'як сол|:count сол',\n    'month' => 'як моҳ|:count моҳ',\n    'week' => 'як ҳафта|:count ҳафта',\n    'day' => 'як рӯз|:count рӯз',\n    'hour' => 'як соат|:count соат',\n    'minute' => 'як дақиқа|:count дақиқа',\n    'second' => 'якчанд сония|:count сония',\n    'ago' => ':time пеш',\n    'from_now' => 'баъди :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Имрӯз соати] LT',\n        'nextDay' => '[Пагоҳ соати] LT',\n        'nextWeek' => 'dddd[и] [ҳафтаи оянда соати] LT',\n        'lastDay' => '[Дирӯз соати] LT',\n        'lastWeek' => 'dddd[и] [ҳафтаи гузашта соати] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number) {\n        if ($number === 0) { // special case for zero\n            return \"$number-ıncı\";\n        }\n\n        static $suffixes = [\n            0 => '-ум',\n            1 => '-ум',\n            2 => '-юм',\n            3 => '-юм',\n            4 => '-ум',\n            5 => '-ум',\n            6 => '-ум',\n            7 => '-ум',\n            8 => '-ум',\n            9 => '-ум',\n            10 => '-ум',\n            12 => '-ум',\n            13 => '-ум',\n            20 => '-ум',\n            30 => '-юм',\n            40 => '-ум',\n            50 => '-ум',\n            60 => '-ум',\n            70 => '-ум',\n            80 => '-ум',\n            90 => '-ум',\n            100 => '-ум',\n        ];\n\n        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'шаб';\n        }\n        if ($hour < 11) {\n            return 'субҳ';\n        }\n        if ($hour < 16) {\n            return 'рӯз';\n        }\n        if ($hour < 19) {\n            return 'бегоҳ';\n        }\n\n        return 'шаб';\n    },\n    'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'],\n    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'weekdays' => ['якшанбе', 'душанбе', 'сешанбе', 'чоршанбе', 'панҷшанбе', 'ҷумъа', 'шанбе'],\n    'weekdays_short' => ['яшб', 'дшб', 'сшб', 'чшб', 'пшб', 'ҷум', 'шнб'],\n    'weekdays_min' => ['яш', 'дш', 'сш', 'чш', 'пш', 'ҷм', 'шб'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' ва '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/tg.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/th.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Nate Whittaker\n * - John MacAslan\n * - Chanintorn Asavavichairoj\n * - JD Isaacks\n * - ROKAISAKKON\n * - RO'KAISAKKON\n * - Andreas Möller\n */\nreturn [\n    'year' => ':count ปี',\n    'y' => ':count ปี',\n    'month' => ':count เดือน',\n    'm' => ':count เดือน',\n    'week' => ':count สัปดาห์',\n    'w' => ':count สัปดาห์',\n    'day' => ':count วัน',\n    'd' => ':count วัน',\n    'hour' => ':count ชั่วโมง',\n    'h' => ':count ชั่วโมง',\n    'minute' => ':count นาที',\n    'min' => ':count นาที',\n    'second' => '{1}ไม่กี่วินาที|]1,Inf[:count วินาที',\n    's' => ':count วินาที',\n    'ago' => ':timeที่แล้ว',\n    'from_now' => 'อีก :time',\n    'after' => ':timeหลังจากนี้',\n    'before' => ':timeก่อน',\n    'formats' => [\n        'LT' => 'H:mm',\n        'LTS' => 'H:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY เวลา H:mm',\n        'LLLL' => 'วันddddที่ D MMMM YYYY เวลา H:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[วันนี้ เวลา] LT',\n        'nextDay' => '[พรุ่งนี้ เวลา] LT',\n        'nextWeek' => 'dddd[หน้า เวลา] LT',\n        'lastDay' => '[เมื่อวานนี้ เวลา] LT',\n        'lastWeek' => '[วัน]dddd[ที่แล้ว เวลา] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ก่อนเที่ยง', 'หลังเที่ยง'],\n    'months' => ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'],\n    'months_short' => ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],\n    'weekdays' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'],\n    'weekdays_short' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัส', 'ศุกร์', 'เสาร์'],\n    'weekdays_min' => ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],\n    'list' => [', ', ' และ '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/th.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/the.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/the_NP.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Chitwanix OS Development    info@chitwanix.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'dddd DD MMM YYYY',\n    ],\n    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],\n    'weekdays' => ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],\n    'weekdays_short' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n    'weekdays_min' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ti.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ti_ER.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'],\n    'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'],\n    'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'],\n\n    'year' => ':count ዓመት',\n    'y' => ':count ዓመት',\n    'a_year' => ':count ዓመት',\n\n    'month' => 'ወርሒ :count',\n    'm' => 'ወርሒ :count',\n    'a_month' => 'ወርሒ :count',\n\n    'week' => ':count ሰሙን',\n    'w' => ':count ሰሙን',\n    'a_week' => ':count ሰሙን',\n\n    'day' => ':count መዓልቲ',\n    'd' => ':count መዓልቲ',\n    'a_day' => ':count መዓልቲ',\n\n    'hour' => ':count ሰዓት',\n    'h' => ':count ሰዓት',\n    'a_hour' => ':count ሰዓት',\n\n    'minute' => ':count ደቒቕ',\n    'min' => ':count ደቒቕ',\n    'a_minute' => ':count ደቒቕ',\n\n    'second' => ':count ሰከንድ',\n    's' => ':count ሰከንድ',\n    'a_second' => ':count ሰከንድ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],\n    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],\n    'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tig.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tig_ER.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'],\n    'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'],\n    'weekdays' => ['ሰንበት ዓባይ', 'ሰኖ', 'ታላሸኖ', 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'],\n    'weekdays_short' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'],\n    'weekdays_min' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ቀደም ሰር ምዕል', 'ሓቆ ሰር ምዕል'],\n\n    'year' => ':count ማይ', // less reliable\n    'y' => ':count ማይ', // less reliable\n    'a_year' => ':count ማይ', // less reliable\n\n    'month' => ':count ሸምሽ', // less reliable\n    'm' => ':count ሸምሽ', // less reliable\n    'a_month' => ':count ሸምሽ', // less reliable\n\n    'week' => ':count ሰቡዕ', // less reliable\n    'w' => ':count ሰቡዕ', // less reliable\n    'a_week' => ':count ሰቡዕ', // less reliable\n\n    'day' => ':count ዎሮ', // less reliable\n    'd' => ':count ዎሮ', // less reliable\n    'a_day' => ':count ዎሮ', // less reliable\n\n    'hour' => ':count ሰዓት', // less reliable\n    'h' => ':count ሰዓት', // less reliable\n    'a_hour' => ':count ሰዓት', // less reliable\n\n    'minute' => ':count ካልኣይት', // less reliable\n    'min' => ':count ካልኣይት', // less reliable\n    'a_minute' => ':count ካልኣይት', // less reliable\n\n    'second' => ':count ካልኣይ',\n    's' => ':count ካልኣይ',\n    'a_second' => ':count ካልኣይ',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tk_TM.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ghorban M. Tavakoly Pablo Saratxaga & Ghorban M. Tavakoly pablo@walon.org & gmt314@yahoo.com\n * - SuperManPHP\n */\n$transformDiff = function ($input) {\n    return strtr($input, [\n        'sekunt' => 'sekunt',\n        'hepde' => 'hepde',\n    ]);\n};\n\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Ýanwar', 'Fewral', 'Mart', 'Aprel', 'Maý', 'Iýun', 'Iýul', 'Awgust', 'Sentýabr', 'Oktýabr', 'Noýabr', 'Dekabr'],\n    'months_short' => ['Ýan', 'Few', 'Mar', 'Apr', 'Maý', 'Iýn', 'Iýl', 'Awg', 'Sen', 'Okt', 'Noý', 'Dek'],\n    'weekdays' => ['Duşenbe', 'Sişenbe', 'Çarşenbe', 'Penşenbe', 'Anna', 'Şenbe', 'Ýekşenbe'],\n    'weekdays_short' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'],\n    'weekdays_min' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ýyl',\n    'y' => ':count ýyl',\n    'a_year' => ':count ýyl',\n\n    'month' => 'aý :count',\n    'm' => 'aý :count',\n    'a_month' => 'aý :count',\n\n    'week' => ':count hepde',\n    'w' => ':count hepde',\n    'a_week' => ':count hepde',\n\n    'day' => ':count gün',\n    'd' => ':count gün',\n    'a_day' => ':count gün',\n\n    'hour' => ':count sagat',\n    'h' => ':count sagat',\n    'a_hour' => ':count sagat',\n\n    'minute' => ':count minut',\n    'min' => ':count minut',\n    'a_minute' => ':count minut',\n\n    'second' => ':count sekunt',\n    's' => ':count sekunt',\n    'a_second' => ':count sekunt',\n\n    'ago' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' ozal';\n    },\n    'from_now' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' soňra';\n    },\n    'after' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' soň';\n    },\n    'before' => function ($time) use ($transformDiff) {\n        return $transformDiff($time).' öň';\n    },\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tl');\n\nreturn [\n    'year' => ':count taon',\n    'a_year' => 'isang taon|:count taon',\n    'month' => ':count buwan',\n    'a_month' => 'isang buwan|:count buwan',\n    'week' => ':count linggo',\n    'a_week' => 'isang linggo|:count linggo',\n    'day' => ':count araw',\n    'a_day' => 'isang araw|:count araw',\n    'hour' => ':count oras',\n    'a_hour' => 'isang oras|:count oras',\n    'minute' => ':count minuto',\n    'a_minute' => 'isang minuto|:count minuto',\n    'min' => ':count min.',\n    'second' => ':count segundo',\n    'a_second' => 'ilang segundo|:count segundo',\n    's' => ':count seg.',\n    'ago' => ':time ang nakalipas',\n    'from_now' => 'sa loob ng :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'MM/D/YYYY',\n        'LL' => 'MMMM D, YYYY',\n        'LLL' => 'MMMM D, YYYY HH:mm',\n        'LLLL' => 'dddd, MMMM DD, YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => 'LT [ngayong araw]',\n        'nextDay' => '[Bukas ng] LT',\n        'nextWeek' => 'LT [sa susunod na] dddd',\n        'lastDay' => 'LT [kahapon]',\n        'lastWeek' => 'LT [noong nakaraang] dddd',\n        'sameElse' => 'L',\n    ],\n    'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'],\n    'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'],\n    'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', 'Sabado'],\n    'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],\n    'weekdays_min' => ['Li', 'Lu', 'Ma', 'Mi', 'Hu', 'Bi', 'Sab'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' at '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Ian De La Cruz\n * - JD Isaacks\n */\nreturn require __DIR__.'/tl.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tlh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tlh');\n\n/*\n * Authors:\n * - François B\n * - Serhan Apaydın\n * - Dominika\n */\nreturn [\n    'year' => 'wa’ DIS|:count DIS',\n    'month' => 'wa’ jar|:count jar',\n    'week' => 'wa’ hogh|:count hogh',\n    'day' => 'wa’ jaj|:count jaj',\n    'hour' => 'wa’ rep|:count rep',\n    'minute' => 'wa’ tup|:count tup',\n    'second' => 'puS lup|:count lup',\n    'ago' => function ($time) {\n        $output = strtr($time, [\n            'jaj' => 'Hu’',\n            'jar' => 'wen',\n            'DIS' => 'ben',\n        ]);\n\n        return $output === $time ? \"$time ret\" : $output;\n    },\n    'from_now' => function ($time) {\n        $output = strtr($time, [\n            'jaj' => 'leS',\n            'jar' => 'waQ',\n            'DIS' => 'nem',\n        ]);\n\n        return $output === $time ? \"$time pIq\" : $output;\n    },\n    'diff_yesterday' => 'wa’Hu’',\n    'diff_tomorrow' => 'wa’leS',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[DaHjaj] LT',\n        'nextDay' => '[wa’leS] LT',\n        'nextWeek' => 'LLL',\n        'lastDay' => '[wa’Hu’] LT',\n        'lastWeek' => 'LLL',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => ':number.',\n    'months' => ['tera’ jar wa’', 'tera’ jar cha’', 'tera’ jar wej', 'tera’ jar loS', 'tera’ jar vagh', 'tera’ jar jav', 'tera’ jar Soch', 'tera’ jar chorgh', 'tera’ jar Hut', 'tera’ jar wa’maH', 'tera’ jar wa’maH wa’', 'tera’ jar wa’maH cha’'],\n    'months_short' => ['jar wa’', 'jar cha’', 'jar wej', 'jar loS', 'jar vagh', 'jar jav', 'jar Soch', 'jar chorgh', 'jar Hut', 'jar wa’maH', 'jar wa’maH wa’', 'jar wa’maH cha’'],\n    'weekdays' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],\n    'weekdays_short' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],\n    'weekdays_min' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' ’ej '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tn_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Ferikgong', 'Tlhakole', 'Mopitlwe', 'Moranang', 'Motsheganong', 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', 'Ngwanatsele', 'Sedimonthole'],\n    'months_short' => ['Fer', 'Tlh', 'Mop', 'Mor', 'Mot', 'See', 'Phu', 'Pha', 'Lwe', 'Dip', 'Ngw', 'Sed'],\n    'weekdays' => ['laTshipi', 'Mosupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labotlhano', 'Lamatlhatso'],\n    'weekdays_short' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'],\n    'weekdays_min' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'dingwaga di le :count',\n    'y' => 'dingwaga di le :count',\n    'a_year' => 'dingwaga di le :count',\n\n    'month' => 'dikgwedi di le :count',\n    'm' => 'dikgwedi di le :count',\n    'a_month' => 'dikgwedi di le :count',\n\n    'week' => 'dibeke di le :count',\n    'w' => 'dibeke di le :count',\n    'a_week' => 'dibeke di le :count',\n\n    'day' => 'malatsi :count',\n    'd' => 'malatsi :count',\n    'a_day' => 'malatsi :count',\n\n    'hour' => 'diura di le :count',\n    'h' => 'diura di le :count',\n    'a_hour' => 'diura di le :count',\n\n    'minute' => 'metsotso e le :count',\n    'min' => 'metsotso e le :count',\n    'a_minute' => 'metsotso e le :count',\n\n    'second' => 'metsotswana e le :count',\n    's' => 'metsotswana e le :count',\n    'a_second' => 'metsotswana e le :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/to.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/to_TO.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - International Components for Unicode    akhilesh.k@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'dddd DD MMM YYYY',\n    ],\n    'months' => ['Sānuali', 'Fēpueli', 'Maʻasi', 'ʻEpeleli', 'Mē', 'Sune', 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', 'Tīsema'],\n    'months_short' => ['Sān', 'Fēp', 'Maʻa', 'ʻEpe', 'Mē', 'Sun', 'Siu', 'ʻAok', 'Sep', 'ʻOka', 'Nōv', 'Tīs'],\n    'weekdays' => ['Sāpate', 'Mōnite', 'Tūsite', 'Pulelulu', 'Tuʻapulelulu', 'Falaite', 'Tokonaki'],\n    'weekdays_short' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'],\n    'weekdays_min' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'],\n    'meridiem' => ['hengihengi', 'efiafi'],\n\n    'year' => ':count fitu', // less reliable\n    'y' => ':count fitu', // less reliable\n    'a_year' => ':count fitu', // less reliable\n\n    'month' => ':count mahina', // less reliable\n    'm' => ':count mahina', // less reliable\n    'a_month' => ':count mahina', // less reliable\n\n    'week' => ':count Sapate', // less reliable\n    'w' => ':count Sapate', // less reliable\n    'a_week' => ':count Sapate', // less reliable\n\n    'day' => ':count ʻaho', // less reliable\n    'd' => ':count ʻaho', // less reliable\n    'a_day' => ':count ʻaho', // less reliable\n\n    'hour' => ':count houa',\n    'h' => ':count houa',\n    'a_hour' => ':count houa',\n\n    'minute' => ':count miniti',\n    'min' => ':count miniti',\n    'a_minute' => ':count miniti',\n\n    'second' => ':count sekoni',\n    's' => ':count sekoni',\n    'a_second' => ':count sekoni',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tpi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tpi_PG.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Janueri', 'Februeri', 'Mas', 'Epril', 'Me', 'Jun', 'Julai', 'Ogas', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mas', 'Epr', 'Me', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Des'],\n    'weekdays' => ['Sande', 'Mande', 'Tunde', 'Trinde', 'Fonde', 'Fraide', 'Sarere'],\n    'weekdays_short' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'],\n    'weekdays_min' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['biknait', 'apinun'],\n\n    'year' => 'yia :count',\n    'y' => 'yia :count',\n    'a_year' => 'yia :count',\n\n    'month' => ':count mun',\n    'm' => ':count mun',\n    'a_month' => ':count mun',\n\n    'week' => ':count wik',\n    'w' => ':count wik',\n    'a_week' => ':count wik',\n\n    'day' => ':count de',\n    'd' => ':count de',\n    'a_day' => ':count de',\n\n    'hour' => ':count aua',\n    'h' => ':count aua',\n    'a_hour' => ':count aua',\n\n    'minute' => ':count minit',\n    'min' => ':count minit',\n    'a_minute' => ':count minit',\n\n    'second' => ':count namba tu',\n    's' => ':count namba tu',\n    'a_second' => ':count namba tu',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tr.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Josh Soref\n * - Alan Agius\n * - Erhan Gundogan\n * - François B\n * - JD Isaacks\n * - Murat Yüksel\n * - Baran Şengül\n * - Selami (selamialtin)\n */\nreturn [\n    'year' => ':count yıl',\n    'a_year' => '{1}bir yıl|]1,Inf[:count yıl',\n    'y' => ':countyıl',\n    'month' => ':count ay',\n    'a_month' => '{1}bir ay|]1,Inf[:count ay',\n    'm' => ':countay',\n    'week' => ':count hafta',\n    'a_week' => '{1}bir hafta|]1,Inf[:count hafta',\n    'w' => ':counth',\n    'day' => ':count gün',\n    'a_day' => '{1}bir gün|]1,Inf[:count gün',\n    'd' => ':countg',\n    'hour' => ':count saat',\n    'a_hour' => '{1}bir saat|]1,Inf[:count saat',\n    'h' => ':countsa',\n    'minute' => ':count dakika',\n    'a_minute' => '{1}bir dakika|]1,Inf[:count dakika',\n    'min' => ':countdk',\n    'second' => ':count saniye',\n    'a_second' => '{1}birkaç saniye|]1,Inf[:count saniye',\n    's' => ':countsn',\n    'ago' => ':time önce',\n    'from_now' => ':time sonra',\n    'after' => ':time sonra',\n    'before' => ':time önce',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[bugün saat] LT',\n        'nextDay' => '[yarın saat] LT',\n        'nextWeek' => '[gelecek] dddd [saat] LT',\n        'lastDay' => '[dün] LT',\n        'lastWeek' => '[geçen] dddd [saat] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'Do':\n            case 'DD':\n                return $number;\n            default:\n                if ($number === 0) {  // special case for zero\n                    return \"$number'ıncı\";\n                }\n\n                static $suffixes = [\n                    1 => '\\'inci',\n                    5 => '\\'inci',\n                    8 => '\\'inci',\n                    70 => '\\'inci',\n                    80 => '\\'inci',\n                    2 => '\\'nci',\n                    7 => '\\'nci',\n                    20 => '\\'nci',\n                    50 => '\\'nci',\n                    3 => '\\'üncü',\n                    4 => '\\'üncü',\n                    100 => '\\'üncü',\n                    6 => '\\'ncı',\n                    9 => '\\'uncu',\n                    10 => '\\'uncu',\n                    30 => '\\'uncu',\n                    60 => '\\'ıncı',\n                    90 => '\\'ıncı',\n                ];\n\n                $lastDigit = $number % 10;\n\n                return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');\n        }\n    },\n    'meridiem' => ['ÖÖ', 'ÖS', 'öö', 'ös'],\n    'months' => ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'],\n    'months_short' => ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'],\n    'weekdays' => ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'],\n    'weekdays_short' => ['Paz', 'Pts', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'],\n    'weekdays_min' => ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' ve '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/tr.php', [\n    'weekdays_short' => ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'],\n    'weekdays_min' => ['Pa', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'D.MM.YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'D MMMM YYYY dddd h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/tr.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ts.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ts_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Sunguti', 'Nyenyenyani', 'Nyenyankulu', 'Dzivamisoko', 'Mudyaxihi', 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', 'Hukuri', 'N\\'wendzamhala'],\n    'months_short' => ['Sun', 'Yan', 'Kul', 'Dzi', 'Mud', 'Kho', 'Maw', 'Mha', 'Ndz', 'Nhl', 'Huk', 'N\\'w'],\n    'weekdays' => ['Sonto', 'Musumbhunuku', 'Ravumbirhi', 'Ravunharhu', 'Ravumune', 'Ravuntlhanu', 'Mugqivela'],\n    'weekdays_short' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'],\n    'weekdays_min' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'malembe ya :count',\n    'y' => 'malembe ya :count',\n    'a_year' => 'malembe ya :count',\n\n    'month' => 'tin’hweti ta :count',\n    'm' => 'tin’hweti ta :count',\n    'a_month' => 'tin’hweti ta :count',\n\n    'week' => 'mavhiki ya :count',\n    'w' => 'mavhiki ya :count',\n    'a_week' => 'mavhiki ya :count',\n\n    'day' => 'masiku :count',\n    'd' => 'masiku :count',\n    'a_day' => 'masiku :count',\n\n    'hour' => 'tiawara ta :count',\n    'h' => 'tiawara ta :count',\n    'a_hour' => 'tiawara ta :count',\n\n    'minute' => 'timinete ta :count',\n    'min' => 'timinete ta :count',\n    'a_minute' => 'timinete ta :count',\n\n    'second' => 'tisekoni ta :count',\n    's' => 'tisekoni ta :count',\n    'a_second' => 'tisekoni ta :count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tt.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/tt_RU.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Rinat Norkin Pablo Saratxaga, Rinat Norkin pablo@mandrakesoft.com, rinat@taif.ru\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'DD MMM, HH:mm',\n        'LLLL' => 'DD MMMM YYYY, HH:mm',\n    ],\n    'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],\n    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'weekdays' => ['якшәмбе', 'дышәмбе', 'сишәмбе', 'чәршәәмбе', 'пәнҗешмбе', 'җомга', 'шимбә'],\n    'weekdays_short' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'],\n    'weekdays_min' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'year' => ':count ел',\n    'month' => ':count ай',\n    'week' => ':count атна',\n    'day' => ':count көн',\n    'hour' => ':count сәгать',\n    'minute' => ':count минут',\n    'second' => ':count секунд',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Reshat Sabiq tatar.iqtelif.i18n@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD.MM.YYYY',\n    ],\n    'months' => ['Ğınwar', 'Fiwral\\'', 'Mart', 'April', 'May', 'Yün', 'Yül', 'Awgust', 'Sintebír', 'Üktebír', 'Noyebír', 'Dikebír'],\n    'months_short' => ['Ğın', 'Fiw', 'Mar', 'Apr', 'May', 'Yün', 'Yül', 'Awg', 'Sin', 'Ükt', 'Noy', 'Dik'],\n    'weekdays' => ['Yekşembí', 'Düşembí', 'Sişembí', 'Çerşembí', 'Pencíşembí', 'Comğa', 'Şimbe'],\n    'weekdays_short' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'],\n    'weekdays_min' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ÖA', 'ÖS'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/twq.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/ses.php', [\n    'meridiem' => ['Subbaahi', 'Zaarikay b'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tzl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number > 1 ? 1 : 0;\n}, 'tzl');\n\nreturn [\n    'year' => ':count ar|:count ars',\n    'y' => ':count ar|:count ars',\n    'month' => ':count mes|:count mesen',\n    'm' => ':count mes|:count mesen',\n    'week' => ':count seifetziua|:count seifetziuas',\n    'w' => ':count seifetziua|:count seifetziuas',\n    'day' => ':count ziua|:count ziuas',\n    'd' => ':count ziua|:count ziuas',\n    'hour' => ':count þora|:count þoras',\n    'h' => ':count þora|:count þoras',\n    'minute' => ':count míut|:count míuts',\n    'min' => ':count míut|:count míuts',\n    'second' => ':count secunds',\n    's' => ':count secunds',\n\n    'ago' => 'ja :time',\n    'from_now' => 'osprei :time',\n\n    'diff_yesterday' => 'ieiri',\n    'diff_tomorrow' => 'demà',\n\n    'formats' => [\n        'LT' => 'HH.mm',\n        'LTS' => 'HH.mm.ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D. MMMM [dallas] YYYY',\n        'LLL' => 'D. MMMM [dallas] YYYY HH.mm',\n        'LLLL' => 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n    ],\n\n    'calendar' => [\n        'sameDay' => '[oxhi à] LT',\n        'nextDay' => '[demà à] LT',\n        'nextWeek' => 'dddd [à] LT',\n        'lastDay' => '[ieiri à] LT',\n        'lastWeek' => '[sür el] dddd [lasteu à] LT',\n        'sameElse' => 'L',\n    ],\n\n    'meridiem' => [\"D'A\", \"D'O\"],\n    'months' => ['Januar', 'Fevraglh', 'Març', 'Avrïu', 'Mai', 'Gün', 'Julia', 'Guscht', 'Setemvar', 'Listopäts', 'Noemvar', 'Zecemvar'],\n    'months_short' => ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Gün', 'Jul', 'Gus', 'Set', 'Lis', 'Noe', 'Zec'],\n    'weekdays' => ['Súladi', 'Lúneçi', 'Maitzi', 'Márcuri', 'Xhúadi', 'Viénerçi', 'Sáturi'],\n    'weekdays_short' => ['Súl', 'Lún', 'Mai', 'Már', 'Xhú', 'Vié', 'Sát'],\n    'weekdays_min' => ['Sú', 'Lú', 'Ma', 'Má', 'Xh', 'Vi', 'Sá'],\n    'ordinal' => ':number.',\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tzm.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tzm');\n\n/*\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n */\nreturn [\n    'year' => 'ⴰⵙⴳⴰⵙ|:count ⵉⵙⴳⴰⵙⵏ',\n    'month' => 'ⴰⵢoⵓⵔ|:count ⵉⵢⵢⵉⵔⵏ',\n    'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ',\n    'day' => 'ⴰⵙⵙ|:count oⵙⵙⴰⵏ',\n    'hour' => 'ⵙⴰⵄⴰ|:count ⵜⴰⵙⵙⴰⵄⵉⵏ',\n    'minute' => 'ⵎⵉⵏⵓⴺ|:count ⵎⵉⵏⵓⴺ',\n    'second' => 'ⵉⵎⵉⴽ|:count ⵉⵎⵉⴽ',\n    'ago' => 'ⵢⴰⵏ :time',\n    'from_now' => 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ :time',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ⴰⵙⴷⵅ ⴴ] LT',\n        'nextDay' => '[ⴰⵙⴽⴰ ⴴ] LT',\n        'nextWeek' => 'dddd [ⴴ] LT',\n        'lastDay' => '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n        'lastWeek' => 'dddd [ⴴ] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'],\n    'months_short' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'],\n    'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],\n    'weekdays_short' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],\n    'weekdays_min' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n    'weekend' => [5, 6],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'tzm');\n\n/*\n * Authors:\n * - Josh Soref\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count asgas|:count isgasn',\n    'a_year' => 'asgas|:count isgasn',\n    'month' => ':count ayowr|:count iyyirn',\n    'a_month' => 'ayowr|:count iyyirn',\n    'week' => ':count imalass',\n    'a_week' => ':imalass',\n    'day' => ':count ass|:count ossan',\n    'a_day' => 'ass|:count ossan',\n    'hour' => ':count saɛa|:count tassaɛin',\n    'a_hour' => 'saɛa|:count tassaɛin',\n    'minute' => ':count minuḍ',\n    'a_minute' => 'minuḍ|:count minuḍ',\n    'second' => ':count imik',\n    'a_second' => 'imik|:count imik',\n    'ago' => 'yan :time',\n    'from_now' => 'dadkh s yan :time',\n    'diff_yesterday' => 'assant',\n    'diff_tomorrow' => 'aska',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[asdkh g] LT',\n        'nextDay' => '[aska g] LT',\n        'nextWeek' => 'dddd [g] LT',\n        'lastDay' => '[assant g] LT',\n        'lastWeek' => 'dddd [g] LT',\n        'sameElse' => 'L',\n    ],\n    'months' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'],\n    'months_short' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'],\n    'weekdays' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],\n    'weekdays_short' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],\n    'weekdays_min' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],\n    'meridiem' => ['Zdat azal', 'Ḍeffir aza'],\n    'first_day_of_week' => 6,\n    'day_of_first_week_of_year' => 1,\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ug.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'ug');\n\n/*\n * Authors:\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - yasinn\n */\nreturn [\n    'year' => 'بىر يىل|:count يىل',\n    'month' => 'بىر ئاي|:count ئاي',\n    'week' => 'بىر ھەپتە|:count ھەپتە',\n    'day' => 'بىر كۈن|:count كۈن',\n    'hour' => 'بىر سائەت|:count سائەت',\n    'minute' => 'بىر مىنۇت|:count مىنۇت',\n    'second' => 'نەچچە سېكونت|:count سېكونت',\n    'ago' => ':time بۇرۇن',\n    'from_now' => ':time كېيىن',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-DD',\n        'LL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n        'LLL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n        'LLLL' => 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[بۈگۈن سائەت] LT',\n        'nextDay' => '[ئەتە سائەت] LT',\n        'nextWeek' => '[كېلەركى] dddd [سائەت] LT',\n        'lastDay' => '[تۆنۈگۈن] LT',\n        'lastWeek' => '[ئالدىنقى] dddd [سائەت] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'-كۈنى';\n            case 'w':\n            case 'W':\n                return $number.'-ھەپتە';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return 'يېرىم كېچە';\n        }\n        if ($time < 900) {\n            return 'سەھەر';\n        }\n        if ($time < 1130) {\n            return 'چۈشتىن بۇرۇن';\n        }\n        if ($time < 1230) {\n            return 'چۈش';\n        }\n        if ($time < 1800) {\n            return 'چۈشتىن كېيىن';\n        }\n\n        return 'كەچ';\n    },\n    'months' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'],\n    'months_short' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'],\n    'weekdays' => ['يەكشەنبە', 'دۈشەنبە', 'سەيشەنبە', 'چارشەنبە', 'پەيشەنبە', 'جۈمە', 'شەنبە'],\n    'weekdays_short' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'],\n    'weekdays_min' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' ۋە '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Kunal Marwaha\n * - Alim Boyaq\n */\nreturn require __DIR__.'/ug.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uk.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n$processHoursFunction = function (\\Carbon\\CarbonInterface $date, string $format) {\n    return $format.'о'.($date->hour === 11 ? 'б' : '').'] LT';\n};\n\n/*\n * Authors:\n * - Kunal Marwaha\n * - Josh Soref\n * - François B\n * - Tim Fish\n * - Serhan Apaydın\n * - Max Mykhailenko\n * - JD Isaacks\n * - Max Kovpak\n * - AucT\n * - Philippe Vaucher\n * - Ilya Shaplyko\n * - Vadym Ievsieiev\n * - Denys Kurets\n * - Igor Kasyanchuk\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Oleh\n * - epaminond\n * - Juanito Fatas\n * - Vitalii Khustochka\n * - Akira Matsuda\n * - Christopher Dell\n * - Enrique Vidal\n * - Simone Carletti\n * - Aaron Patterson\n * - Andriy Tyurnikov\n * - Nicolás Hock Isaza\n * - Iwakura Taro\n * - Andrii Ponomarov\n * - alecrabbit\n * - vystepanenko\n * - AlexWalkerson\n * - Andre Havryliuk (Andrend)\n */\nreturn [\n    'year' => ':count рік|:count роки|:count років',\n    'y' => ':countр',\n    'a_year' => '{1}рік|:count рік|:count роки|:count років',\n    'month' => ':count місяць|:count місяці|:count місяців',\n    'm' => ':countм',\n    'a_month' => '{1}місяць|:count місяць|:count місяці|:count місяців',\n    'week' => ':count тиждень|:count тижні|:count тижнів',\n    'w' => ':countт',\n    'a_week' => '{1}тиждень|:count тиждень|:count тижні|:count тижнів',\n    'day' => ':count день|:count дні|:count днів',\n    'd' => ':countд',\n    'a_day' => '{1}день|:count день|:count дні|:count днів',\n    'hour' => ':count година|:count години|:count годин',\n    'h' => ':countг',\n    'a_hour' => '{1}годину|:count година|:count години|:count годин',\n    'minute' => ':count хвилина|:count хвилини|:count хвилин',\n    'min' => ':countхв',\n    'a_minute' => '{1}хвилина|:count хвилину|:count хвилини|:count хвилин',\n    'second' => ':count секунда|:count секунди|:count секунд',\n    's' => ':countсек',\n    'a_second' => '{1}кілька секунд|:count секунду|:count секунди|:count секунд',\n    'ago' => ':time тому',\n    'from_now' => 'за :time',\n    'after' => ':time після',\n    'before' => ':time до',\n    'diff_now' => 'щойно',\n    'diff_yesterday' => 'вчора',\n    'diff_tomorrow' => 'завтра',\n    'diff_before_yesterday' => 'позавчора',\n    'diff_after_tomorrow' => 'післязавтра',\n    'period_recurrences' => 'один раз|:count рази|:count разів',\n    'period_interval' => 'кожні :interval',\n    'period_start_date' => 'з :date',\n    'period_end_date' => 'до :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY, HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => function (\\Carbon\\CarbonInterface $date) use ($processHoursFunction) {\n            return $processHoursFunction($date, '[Сьогодні ');\n        },\n        'nextDay' => function (\\Carbon\\CarbonInterface $date) use ($processHoursFunction) {\n            return $processHoursFunction($date, '[Завтра ');\n        },\n        'nextWeek' => function (\\Carbon\\CarbonInterface $date) use ($processHoursFunction) {\n            return $processHoursFunction($date, '[У] dddd [');\n        },\n        'lastDay' => function (\\Carbon\\CarbonInterface $date) use ($processHoursFunction) {\n            return $processHoursFunction($date, '[Вчора ');\n        },\n        'lastWeek' => function (\\Carbon\\CarbonInterface $date) use ($processHoursFunction) {\n            switch ($date->dayOfWeek) {\n                case 0:\n                case 3:\n                case 5:\n                case 6:\n                    return $processHoursFunction($date, '[Минулої] dddd [');\n                default:\n                    return $processHoursFunction($date, '[Минулого] dddd [');\n            }\n        },\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'M':\n            case 'd':\n            case 'DDD':\n            case 'w':\n            case 'W':\n                return $number.'-й';\n            case 'D':\n                return $number.'-го';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour) {\n        if ($hour < 4) {\n            return 'ночі';\n        }\n        if ($hour < 12) {\n            return 'ранку';\n        }\n        if ($hour < 17) {\n            return 'дня';\n        }\n\n        return 'вечора';\n    },\n    'months' => ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня'],\n    'months_standalone' => ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень'],\n    'months_short' => ['січ', 'лют', 'бер', 'кві', 'тра', 'чер', 'лип', 'сер', 'вер', 'жов', 'лис', 'гру'],\n    'months_regexp' => '/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/',\n    'weekdays' => function (\\Carbon\\CarbonInterface $date, $format, $index) {\n        static $words = [\n            'nominative' => ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота'],\n            'accusative' => ['неділю', 'понеділок', 'вівторок', 'середу', 'четвер', 'п’ятницю', 'суботу'],\n            'genitive' => ['неділі', 'понеділка', 'вівторка', 'середи', 'четверга', 'п’ятниці', 'суботи'],\n        ];\n\n        $nounCase = preg_match('/(\\[(В|в|У|у)\\])\\s+dddd/', $format) ?\n            'accusative' :\n            (preg_match('/\\[?(?:минулої|наступної)?\\s*\\]\\s+dddd/', $format) ?\n                'genitive' :\n                'nominative'\n            );\n\n        return $words[$nounCase][$index] ?? null;\n    },\n    'weekdays_short' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' i '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/uk.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/unm.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/unm_US.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['enikwsi', 'chkwali', 'xamokhwite', 'kwetayoxe', 'tainipen', 'kichinipen', 'lainipen', 'winaminke', 'kichitahkok', 'puksit', 'wini', 'muxkotae'],\n    'months_short' => ['eni', 'chk', 'xam', 'kwe', 'tai', 'nip', 'lai', 'win', 'tah', 'puk', 'kun', 'mux'],\n    'weekdays' => ['kentuwei', 'manteke', 'tusteke', 'lelai', 'tasteke', 'pelaiteke', 'sateteke'],\n    'weekdays_short' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'],\n    'weekdays_min' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'],\n    'day_of_first_week_of_year' => 1,\n\n    // Too unreliable\n    /*\n    'year' => ':count kaxtëne',\n    'y' => ':count kaxtëne',\n    'a_year' => ':count kaxtëne',\n\n    'month' => ':count piskewëni kishux', // less reliable\n    'm' => ':count piskewëni kishux', // less reliable\n    'a_month' => ':count piskewëni kishux', // less reliable\n\n    'week' => ':count kishku', // less reliable\n    'w' => ':count kishku', // less reliable\n    'a_week' => ':count kishku', // less reliable\n\n    'day' => ':count kishku',\n    'd' => ':count kishku',\n    'a_day' => ':count kishku',\n\n    'hour' => ':count xkuk', // less reliable\n    'h' => ':count xkuk', // less reliable\n    'a_hour' => ':count xkuk', // less reliable\n\n    'minute' => ':count txituwàk', // less reliable\n    'min' => ':count txituwàk', // less reliable\n    'a_minute' => ':count txituwàk', // less reliable\n\n    'second' => ':count nisha', // less reliable\n    's' => ':count nisha', // less reliable\n    'a_second' => ':count nisha', // less reliable\n    */\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ur.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n$months = [\n    'جنوری',\n    'فروری',\n    'مارچ',\n    'اپریل',\n    'مئی',\n    'جون',\n    'جولائی',\n    'اگست',\n    'ستمبر',\n    'اکتوبر',\n    'نومبر',\n    'دسمبر',\n];\n\n$weekdays = [\n    'اتوار',\n    'پیر',\n    'منگل',\n    'بدھ',\n    'جمعرات',\n    'جمعہ',\n    'ہفتہ',\n];\n\n/*\n * Authors:\n * - Sawood Alam\n * - Mehshan\n * - Philippe Vaucher\n * - Tsutomu Kuroda\n * - tjku\n * - Zaid Akram\n * - Max Melentiev\n * - hafezdivandari\n * - Hossein Jabbari\n * - nimamo\n */\nreturn [\n    'year' => 'ایک سال|:count سال',\n    'month' => 'ایک ماہ|:count ماہ',\n    'week' => ':count ہفتے',\n    'day' => 'ایک دن|:count دن',\n    'hour' => 'ایک گھنٹہ|:count گھنٹے',\n    'minute' => 'ایک منٹ|:count منٹ',\n    'second' => 'چند سیکنڈ|:count سیکنڈ',\n    'ago' => ':time قبل',\n    'from_now' => ':time بعد',\n    'after' => ':time بعد',\n    'before' => ':time پہلے',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd، D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[آج بوقت] LT',\n        'nextDay' => '[کل بوقت] LT',\n        'nextWeek' => 'dddd [بوقت] LT',\n        'lastDay' => '[گذشتہ روز بوقت] LT',\n        'lastWeek' => '[گذشتہ] dddd [بوقت] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['صبح', 'شام'],\n    'months' => $months,\n    'months_short' => $months,\n    'weekdays' => $weekdays,\n    'weekdays_short' => $weekdays,\n    'weekdays_min' => $weekdays,\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => ['، ', ' اور '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Red Hat, Pune    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ur.php', [\n    'formats' => [\n        'L' => 'D/M/YY',\n    ],\n    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'weekdays' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],\n    'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],\n    'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/ur.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ص', 'ش'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'uz');\n\n/*\n * Authors:\n * - Dmitriy Shabanov\n * - JD Isaacks\n * - Inoyatulloh\n * - Jamshid\n * - aarkhipov\n * - Philippe Vaucher\n * - felixthemagnificent\n * - Tsutomu Kuroda\n * - tjku\n * - Max Melentiev\n * - Juanito Fatas\n * - Alisher Ulugbekov\n */\nreturn [\n    'year' => ':count йил',\n    'a_year' => 'бир йил|:count йил',\n    'y' => ':count й',\n    'month' => ':count ой',\n    'a_month' => 'бир ой|:count ой',\n    'm' => ':count о',\n    'week' => ':count ҳафта',\n    'a_week' => 'бир ҳафта|:count ҳафта',\n    'w' => ':count ҳ',\n    'day' => ':count кун',\n    'a_day' => 'бир кун|:count кун',\n    'd' => ':count к',\n    'hour' => ':count соат',\n    'a_hour' => 'бир соат|:count соат',\n    'h' => ':count с',\n    'minute' => ':count дакика',\n    'a_minute' => 'бир дакика|:count дакика',\n    'min' => ':count д',\n    'second' => ':count фурсат',\n    'a_second' => 'фурсат|:count фурсат',\n    's' => ':count ф',\n    'ago' => 'Бир неча :time олдин',\n    'from_now' => 'Якин :time ичида',\n    'after' => ':time пас аз он',\n    'before' => ':time пеш аз он',\n    'diff_yesterday' => 'Кеча',\n    'diff_tomorrow' => 'Эртага',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'D MMMM YYYY, dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Бугун соат] LT [да]',\n        'nextDay' => '[Эртага] LT [да]',\n        'nextWeek' => 'dddd [куни соат] LT [да]',\n        'lastDay' => '[Кеча соат] LT [да]',\n        'lastWeek' => '[Утган] dddd [куни соат] LT [да]',\n        'sameElse' => 'L',\n    ],\n    'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'],\n    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],\n    'weekdays' => ['якшанба', 'душанба', 'сешанба', 'чоршанба', 'пайшанба', 'жума', 'шанба'],\n    'weekdays_short' => ['якш', 'душ', 'сеш', 'чор', 'пай', 'жум', 'шан'],\n    'weekdays_min' => ['як', 'ду', 'се', 'чо', 'па', 'жу', 'ша'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ertalab', 'kechasi'],\n    'list' => [', ', ' va '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/fa.php', [\n    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],\n    'weekdays_short' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'],\n    'weekdays_min' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'],\n    'months' => ['جنوری', 'فبروری', 'مارچ', 'اپریل', 'می', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    'months_short' => ['جنو', 'فبر', 'مار', 'اپر', 'می', 'جون', 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'],\n    'first_day_of_week' => 6,\n    'weekend' => [4, 5],\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/uz.php', [\n    'formats' => [\n        'L' => 'DD/MM/yy',\n        'LL' => 'D MMM, YYYY',\n        'LLL' => 'D MMMM, YYYY HH:mm',\n        'LLLL' => 'dddd, DD MMMM, YYYY HH:mm',\n    ],\n    'meridiem' => ['ТО', 'ТК'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'uz');\n\n/*\n * Authors:\n * - Josh Soref\n * - Rasulbek\n */\nreturn [\n    'year' => ':count yil',\n    'a_year' => 'bir yil|:count yil',\n    'y' => ':count y',\n    'month' => ':count oy',\n    'a_month' => 'bir oy|:count oy',\n    'm' => ':count o',\n    'week' => ':count hafta',\n    'a_week' => 'bir hafta|:count hafta',\n    'w' => ':count h',\n    'day' => ':count kun',\n    'a_day' => 'bir kun|:count kun',\n    'd' => ':count k',\n    'hour' => ':count soat',\n    'a_hour' => 'bir soat|:count soat',\n    'h' => ':count soat',\n    'minute' => ':count daqiqa',\n    'a_minute' => 'bir daqiqa|:count daqiqa',\n    'min' => ':count d',\n    'second' => ':count soniya',\n    'a_second' => 'soniya|:count soniya',\n    's' => ':count son.',\n    'ago' => 'Bir necha :time oldin',\n    'from_now' => 'Yaqin :time ichida',\n    'diff_yesterday' => 'Kecha',\n    'diff_tomorrow' => 'Ertaga',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'D MMMM YYYY, dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Bugun soat] LT [da]',\n        'nextDay' => '[Ertaga] LT [da]',\n        'nextWeek' => 'dddd [kuni soat] LT [da]',\n        'lastDay' => '[Kecha soat] LT [da]',\n        'lastWeek' => '[O\\'tgan] dddd [kuni soat] LT [da]',\n        'sameElse' => 'L',\n    ],\n    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'],\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'],\n    'weekdays_short' => ['Yak', 'Dush', 'Sesh', 'Chor', 'Pay', 'Jum', 'Shan'],\n    'weekdays_min' => ['Ya', 'Du', 'Se', 'Cho', 'Pa', 'Ju', 'Sha'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' va '],\n    'meridiem' => ['TO', 'TK'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Bobir Ismailov Bobir Ismailov, Pablo Saratxaga, Mashrab Kuvatov bobir_is@yahoo.com, pablo@mandrakesoft.com, kmashrab@uni-bremen.de\n */\nreturn array_replace_recursive(require __DIR__.'/uz_Latn.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'],\n    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyn', 'Iyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],\n    'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'],\n    'weekdays_short' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'],\n    'weekdays_min' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Mashrab Kuvatov Mashrab Kuvatov, Pablo Saratxaga kmashrab@uni-bremen.de, pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/uz.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', 'Ноябр', 'Декабр'],\n    'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],\n    'weekdays' => ['Якшанба', 'Душанба', 'Сешанба', 'Чоршанба', 'Пайшанба', 'Жума', 'Шанба'],\n    'weekdays_short' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'],\n    'weekdays_min' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vai.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],\n    'weekdays_short' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],\n    'weekdays_min' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],\n    'months' => ['ꖨꖕ ꕪꕴ ꔞꔀꕮꕊ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞꔤ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꖕ ꕪꕴ ꗏꖺꕮꕊ'],\n    'months_short' => ['ꖨꖕꔞ', 'ꕒꕡ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋ', 'ꖨꖕꗏ'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm a',\n    ],\n\n    'year' => ':count ꕀ', // less reliable\n    'y' => ':count ꕀ', // less reliable\n    'a_year' => ':count ꕀ', // less reliable\n\n    'second' => ':count ꗱꕞꕯꕊ', // less reliable\n    's' => ':count ꗱꕞꕯꕊ', // less reliable\n    'a_second' => ':count ꗱꕞꕯꕊ', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'weekdays' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],\n    'weekdays_short' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],\n    'weekdays_min' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],\n    'months' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'],\n    'months_short' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'h:mm a',\n        'LTS' => 'h:mm:ss a',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm a',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm a',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/vai.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ve.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/ve_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Phando', 'Luhuhi', 'Ṱhafamuhwe', 'Lambamai', 'Shundunthule', 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', 'Tshimedzi', 'Ḽara', 'Nyendavhusiku'],\n    'months_short' => ['Pha', 'Luh', 'Fam', 'Lam', 'Shu', 'Lwi', 'Lwa', 'Ngu', 'Khu', 'Tsh', 'Ḽar', 'Nye'],\n    'weekdays' => ['Swondaha', 'Musumbuluwo', 'Ḽavhuvhili', 'Ḽavhuraru', 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'],\n    'weekdays_short' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'],\n    'weekdays_min' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'],\n    'day_of_first_week_of_year' => 1,\n\n    // Too unreliable\n    /*\n    'day' => ':count vhege', // less reliable\n    'd' => ':count vhege', // less reliable\n    'a_day' => ':count vhege', // less reliable\n\n    'hour' => ':count watshi', // less reliable\n    'h' => ':count watshi', // less reliable\n    'a_hour' => ':count watshi', // less reliable\n\n    'minute' => ':count watshi', // less reliable\n    'min' => ':count watshi', // less reliable\n    'a_minute' => ':count watshi', // less reliable\n\n    'second' => ':count Mu', // less reliable\n    's' => ':count Mu', // less reliable\n    'a_second' => ':count Mu', // less reliable\n\n    'week' => ':count vhege',\n    'w' => ':count vhege',\n    'a_week' => ':count vhege',\n    */\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - François B\n * - Andre Polykanine A.K.A. Menelion Elensúlë\n * - JD Isaacks\n */\nreturn [\n    'year' => ':count năm',\n    'a_year' => '{1}một năm|]1, Inf[:count năm',\n    'y' => ':count năm',\n    'month' => ':count tháng',\n    'a_month' => '{1}một tháng|]1, Inf[:count tháng',\n    'm' => ':count tháng',\n    'week' => ':count tuần',\n    'a_week' => '{1}một tuần|]1, Inf[:count tuần',\n    'w' => ':count tuần',\n    'day' => ':count ngày',\n    'a_day' => '{1}một ngày|]1, Inf[:count ngày',\n    'd' => ':count ngày',\n    'hour' => ':count giờ',\n    'a_hour' => '{1}một giờ|]1, Inf[:count giờ',\n    'h' => ':count giờ',\n    'minute' => ':count phút',\n    'a_minute' => '{1}một phút|]1, Inf[:count phút',\n    'min' => ':count phút',\n    'second' => ':count giây',\n    'a_second' => '{1}vài giây|]1, Inf[:count giây',\n    's' => ':count giây',\n    'ago' => ':time trước',\n    'from_now' => ':time tới',\n    'after' => ':time sau',\n    'before' => ':time trước',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM [năm] YYYY',\n        'LLL' => 'D MMMM [năm] YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM [năm] YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[Hôm nay lúc] LT',\n        'nextDay' => '[Ngày mai lúc] LT',\n        'nextWeek' => 'dddd [tuần tới lúc] LT',\n        'lastDay' => '[Hôm qua lúc] LT',\n        'lastWeek' => 'dddd [tuần trước lúc] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['SA', 'CH'],\n    'months' => ['tháng 1', 'tháng 2', 'tháng 3', 'tháng 4', 'tháng 5', 'tháng 6', 'tháng 7', 'tháng 8', 'tháng 9', 'tháng 10', 'tháng 11', 'tháng 12'],\n    'months_short' => ['Th01', 'Th02', 'Th03', 'Th04', 'Th05', 'Th06', 'Th07', 'Th08', 'Th09', 'Th10', 'Th11', 'Th12'],\n    'weekdays' => ['chủ nhật', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu', 'thứ bảy'],\n    'weekdays_short' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n    'weekdays_min' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => [', ', ' và '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/vi.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY-MM-dd',\n        'LL' => 'YYYY MMM D',\n        'LLL' => 'YYYY MMMM D HH:mm',\n        'LLLL' => 'YYYY MMMM D, dddd HH:mm',\n    ],\n\n    'year' => ':count yel',\n    'y' => ':count yel',\n    'a_year' => ':count yel',\n\n    'month' => ':count mul',\n    'm' => ':count mul',\n    'a_month' => ':count mul',\n\n    'week' => ':count vig',\n    'w' => ':count vig',\n    'a_week' => ':count vig',\n\n    'day' => ':count del',\n    'd' => ':count del',\n    'a_day' => ':count del',\n\n    'hour' => ':count düp',\n    'h' => ':count düp',\n    'a_hour' => ':count düp',\n\n    'minute' => ':count minut',\n    'min' => ':count minut',\n    'a_minute' => ':count minut',\n\n    'second' => ':count sekun',\n    's' => ':count sekun',\n    'a_second' => ':count sekun',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/vun.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['utuko', 'kyiukonyi'],\n    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],\n    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],\n    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wa.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/wa_BE.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Djan SACRE Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['di djanvî', 'di fevrî', 'di måss', 'd’ avri', 'di may', 'di djun', 'di djulete', 'd’ awousse', 'di setimbe', 'd’ octôbe', 'di nôvimbe', 'di decimbe'],\n    'months_short' => ['dja', 'fev', 'mås', 'avr', 'may', 'djn', 'djl', 'awo', 'set', 'oct', 'nôv', 'dec'],\n    'weekdays' => ['dimegne', 'londi', 'mårdi', 'mierkidi', 'djudi', 'vénrdi', 'semdi'],\n    'weekdays_short' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'],\n    'weekdays_min' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'year' => ':count anêye',\n    'y' => ':count anêye',\n    'a_year' => ':count anêye',\n\n    'month' => ':count meûs',\n    'm' => ':count meûs',\n    'a_month' => ':count meûs',\n\n    'week' => ':count samwinne',\n    'w' => ':count samwinne',\n    'a_week' => ':count samwinne',\n\n    'day' => ':count djoû',\n    'd' => ':count djoû',\n    'a_day' => ':count djoû',\n\n    'hour' => ':count eure',\n    'h' => ':count eure',\n    'a_hour' => ':count eure',\n\n    'minute' => ':count munute',\n    'min' => ':count munute',\n    'a_minute' => ':count munute',\n\n    'second' => ':count Sigonde',\n    's' => ':count Sigonde',\n    'a_second' => ':count Sigonde',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wae.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/wae_CH.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Walser Translation Team ml@translate-wae.ch\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n    'months' => ['Jenner', 'Hornig', 'Märze', 'Abrille', 'Meije', 'Bráčet', 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', 'Wintermánet', 'Chrištmánet'],\n    'months_short' => ['Jen', 'Hor', 'Mär', 'Abr', 'Mei', 'Brá', 'Hei', 'Öig', 'Her', 'Wím', 'Win', 'Chr'],\n    'weekdays' => ['Suntag', 'Mäntag', 'Zischtag', 'Mittwuch', 'Frontag', 'Fritag', 'Samschtag'],\n    'weekdays_short' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'],\n    'weekdays_min' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n\n    'month' => ':count Maano', // less reliable\n    'm' => ':count Maano', // less reliable\n    'a_month' => ':count Maano', // less reliable\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wal.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/wal_ET.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Ge'ez Frontier Foundation    locales@geez.org\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],\n    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],\n    'weekdays' => ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ'],\n    'weekdays_short' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '],\n    'weekdays_min' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '],\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['ማለዶ', 'ቃማ'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/wo_SN.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - The Debian Project Christian Perrier bubulle@debian.org\n */\nreturn [\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD.MM.YYYY',\n        'LL' => 'MMMM DD, YYYY',\n        'LLL' => 'DD MMM HH:mm',\n        'LLLL' => 'MMMM DD, YYYY HH:mm',\n    ],\n    'months' => ['sanwiy\\'e', 'feebriy\\'e', 'mars', 'awril', 'me', 'suwen', 'sulet', 'uut', 'septaambar', 'oktoobar', 'nowaambar', 'desaambar'],\n    'months_short' => ['san', 'fee', 'mar', 'awr', 'me ', 'suw', 'sul', 'uut', 'sep', 'okt', 'now', 'des'],\n    'weekdays' => ['dib\\'eer', 'altine', 'talaata', 'allarba', 'alxames', 'ajjuma', 'gaawu'],\n    'weekdays_short' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'],\n    'weekdays_min' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'year' => ':count at',\n    'month' => ':count wèr',\n    'week' => ':count ayubés',\n    'day' => ':count bés',\n    'hour' => ':count waxtu',\n    'minute' => ':count simili',\n    'second' => ':count saa',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/xh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/xh_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['eyoMqungu', 'eyoMdumba', 'eyoKwindla', 'uTshazimpuzi', 'uCanzibe', 'eyeSilimela', 'eyeKhala', 'eyeThupa', 'eyoMsintsi', 'eyeDwarha', 'eyeNkanga', 'eyoMnga'],\n    'months_short' => ['Mqu', 'Mdu', 'Kwi', 'Tsh', 'Can', 'Sil', 'Kha', 'Thu', 'Msi', 'Dwa', 'Nka', 'Mng'],\n    'weekdays' => ['iCawa', 'uMvulo', 'lwesiBini', 'lwesiThathu', 'ulweSine', 'lwesiHlanu', 'uMgqibelo'],\n    'weekdays_short' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'],\n    'weekdays_min' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count ihlobo', // less reliable\n    'y' => ':count ihlobo', // less reliable\n    'a_year' => ':count ihlobo', // less reliable\n\n    'hour' => ':count iwotshi', // less reliable\n    'h' => ':count iwotshi', // less reliable\n    'a_hour' => ':count iwotshi', // less reliable\n\n    'minute' => ':count ingqalelo', // less reliable\n    'min' => ':count ingqalelo', // less reliable\n    'a_minute' => ':count ingqalelo', // less reliable\n\n    'second' => ':count nceda', // less reliable\n    's' => ':count nceda', // less reliable\n    'a_second' => ':count nceda', // less reliable\n\n    'month' => ':count inyanga',\n    'm' => ':count inyanga',\n    'a_month' => ':count inyanga',\n\n    'week' => ':count veki',\n    'w' => ':count veki',\n    'a_week' => ':count veki',\n\n    'day' => ':count imini',\n    'd' => ':count imini',\n    'a_day' => ':count imini',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/xog.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['Munkyo', 'Eigulo'],\n    'weekdays' => ['Sabiiti', 'Balaza', 'Owokubili', 'Owokusatu', 'Olokuna', 'Olokutaanu', 'Olomukaaga'],\n    'weekdays_short' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'],\n    'weekdays_min' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'],\n    'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'],\n    'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yav.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'meridiem' => ['kiɛmɛ́ɛm', 'kisɛ́ndɛ'],\n    'weekdays' => ['sɔ́ndiɛ', 'móndie', 'muányáŋmóndie', 'metúkpíápɛ', 'kúpélimetúkpiapɛ', 'feléte', 'séselé'],\n    'weekdays_short' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'],\n    'weekdays_min' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'],\n    'months' => ['pikítíkítie, oólí ú kutúan', 'siɛyɛ́, oóli ú kándíɛ', 'ɔnsúmbɔl, oóli ú kátátúɛ', 'mesiŋ, oóli ú kénie', 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', 'pisuyú', 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', 'makandikɛ', 'pilɔndɔ́'],\n    'months_short' => ['o.1', 'o.2', 'o.3', 'o.4', 'o.5', 'o.6', 'o.7', 'o.8', 'o.9', 'o.10', 'o.11', 'o.12'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'D/M/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yi.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/yi_US.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - http://www.uyip.org/ Pablo Saratxaga pablo@mandrakesoft.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['יאַנואַר', 'פֿעברואַר', 'מערץ', 'אַפּריל', 'מיי', 'יוני', 'יולי', 'אויגוסט', 'סעפּטעמבער', 'אקטאבער', 'נאוועמבער', 'דעצעמבער'],\n    'months_short' => ['יאַנ', 'פֿעב', 'מאַר', 'אַפּר', 'מײַ ', 'יונ', 'יול', 'אױג', 'סעפּ', 'אָקט', 'נאָװ', 'דעצ'],\n    'weekdays' => ['זונטיק', 'מאָנטיק', 'דינסטיק', 'מיטװאָך', 'דאָנערשטיק', 'פֿרײַטיק', 'שבת'],\n    'weekdays_short' => ['זונ\\'', 'מאָנ\\'', 'דינ\\'', 'מיט\\'', 'דאָנ\\'', 'פֿרײַ\\'', 'שבת'],\n    'weekdays_min' => ['זונ\\'', 'מאָנ\\'', 'דינ\\'', 'מיט\\'', 'דאָנ\\'', 'פֿרײַ\\'', 'שבת'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => ':count יאר',\n    'y' => ':count יאר',\n    'a_year' => ':count יאר',\n\n    'month' => ':count חודש',\n    'm' => ':count חודש',\n    'a_month' => ':count חודש',\n\n    'week' => ':count וואָך',\n    'w' => ':count וואָך',\n    'a_week' => ':count וואָך',\n\n    'day' => ':count טאָג',\n    'd' => ':count טאָג',\n    'a_day' => ':count טאָג',\n\n    'hour' => ':count שעה',\n    'h' => ':count שעה',\n    'a_hour' => ':count שעה',\n\n    'minute' => ':count מינוט',\n    'min' => ':count מינוט',\n    'a_minute' => ':count מינוט',\n\n    'second' => ':count סעקונדע',\n    's' => ':count סעקונדע',\n    'a_second' => ':count סעקונדע',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yo.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\\Symfony\\Component\\Translation\\PluralizationRules::set(function ($number) {\n    return $number === 1 ? 0 : 1;\n}, 'yo');\n\n/*\n * Authors:\n * - François B\n * - Atolagbe Abisoye\n */\nreturn [\n    'year' => 'ọdún :count',\n    'a_year' => 'ọdún kan|ọdún :count',\n    'month' => 'osù :count',\n    'a_month' => 'osù kan|osù :count',\n    'week' => 'ọsẹ :count',\n    'a_week' => 'ọsẹ kan|ọsẹ :count',\n    'day' => 'ọjọ́ :count',\n    'a_day' => 'ọjọ́ kan|ọjọ́ :count',\n    'hour' => 'wákati :count',\n    'a_hour' => 'wákati kan|wákati :count',\n    'minute' => 'ìsẹjú :count',\n    'a_minute' => 'ìsẹjú kan|ìsẹjú :count',\n    'second' => 'iaayá :count',\n    'a_second' => 'ìsẹjú aayá die|aayá :count',\n    'ago' => ':time kọjá',\n    'from_now' => 'ní :time',\n    'diff_yesterday' => 'Àna',\n    'diff_tomorrow' => 'Ọ̀la',\n    'formats' => [\n        'LT' => 'h:mm A',\n        'LTS' => 'h:mm:ss A',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY h:mm A',\n        'LLLL' => 'dddd, D MMMM YYYY h:mm A',\n    ],\n    'calendar' => [\n        'sameDay' => '[Ònì ni] LT',\n        'nextDay' => '[Ọ̀la ni] LT',\n        'nextWeek' => 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n        'lastDay' => '[Àna ni] LT',\n        'lastWeek' => 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => 'ọjọ́ :number',\n    'months' => ['Sẹ́rẹ́', 'Èrèlè', 'Ẹrẹ̀nà', 'Ìgbé', 'Èbibi', 'Òkùdu', 'Agẹmo', 'Ògún', 'Owewe', 'Ọ̀wàrà', 'Bélú', 'Ọ̀pẹ̀̀'],\n    'months_short' => ['Sẹ́r', 'Èrl', 'Ẹrn', 'Ìgb', 'Èbi', 'Òkù', 'Agẹ', 'Ògú', 'Owe', 'Ọ̀wà', 'Bél', 'Ọ̀pẹ̀̀'],\n    'weekdays' => ['Àìkú', 'Ajé', 'Ìsẹ́gun', 'Ọjọ́rú', 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'],\n    'weekdays_short' => ['Àìk', 'Ajé', 'Ìsẹ́', 'Ọjr', 'Ọjb', 'Ẹtì', 'Àbá'],\n    'weekdays_min' => ['Àì', 'Aj', 'Ìs', 'Ọr', 'Ọb', 'Ẹt', 'Àb'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'meridiem' => ['Àárọ̀', 'Ọ̀sán'],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/yo.php', [\n    'meridiem' => ['Àárɔ̀', 'Ɔ̀sán'],\n    'weekdays' => ['Ɔjɔ́ Àìkú', 'Ɔjɔ́ Ajé', 'Ɔjɔ́ Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɔjɔ́ Ɛtì', 'Ɔjɔ́ Àbámɛ́ta'],\n    'weekdays_short' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'],\n    'weekdays_min' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'],\n    'months' => ['Oshù Shɛ́rɛ́', 'Oshù Èrèlè', 'Oshù Ɛrɛ̀nà', 'Oshù Ìgbé', 'Oshù Ɛ̀bibi', 'Oshù Òkúdu', 'Oshù Agɛmɔ', 'Oshù Ògún', 'Oshù Owewe', 'Oshù Ɔ̀wàrà', 'Oshù Bélú', 'Oshù Ɔ̀pɛ̀'],\n    'months_short' => ['Shɛ́rɛ́', 'Èrèlè', 'Ɛrɛ̀nà', 'Ìgbé', 'Ɛ̀bibi', 'Òkúdu', 'Agɛmɔ', 'Ògún', 'Owewe', 'Ɔ̀wàrà', 'Bélú', 'Ɔ̀pɛ̀'],\n    'first_day_of_week' => 1,\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd, D MMMM YYYY HH:mm',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/yo.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yue.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/yue_HK.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/zh_HK.php', [\n    'formats' => [\n        'L' => 'YYYY年MM月DD日 dddd',\n    ],\n    'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 0,\n    'day_of_first_week_of_year' => 1,\n    'meridiem' => ['上午', '下午'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hans.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hant.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yuw.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/yuw_PG.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Information from native speakers Hannah Sarvasy nungon.localization@gmail.com\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YY',\n    ],\n    'months' => ['jenuari', 'febuari', 'mas', 'epril', 'mei', 'jun', 'julai', 'ögus', 'septemba', 'öktoba', 'nöwemba', 'diksemba'],\n    'months_short' => ['jen', 'feb', 'mas', 'epr', 'mei', 'jun', 'jul', 'ögu', 'sep', 'ökt', 'nöw', 'dis'],\n    'weekdays' => ['sönda', 'mönda', 'sinda', 'mitiwö', 'sogipbono', 'nenggo', 'söndanggie'],\n    'weekdays_short' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'],\n    'weekdays_min' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zgh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - BAKTETE Miloud\n */\nreturn [\n    'year' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',\n    'a_year' => 'ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',\n    'y' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',\n    'month' => ':count ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ',\n    'a_month' => 'ⵉⴷⵊ ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ',\n    'm' => ':count ⴰⵢⵢⵓⵔⵏ',\n    'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ',\n    'a_week' => 'ⵉⵛⵜ ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ',\n    'w' => ':count ⵉⵎⴰⵍⴰⵙⵙ.',\n    'day' => ':count ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ',\n    'a_day' => 'ⵉⴷⵊ ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ',\n    'd' => ':count ⵓ',\n    'hour' => ':count ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ',\n    'a_hour' => 'ⵉⵛⵜ ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ',\n    'h' => ':count ⵜ',\n    'minute' => ':count ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ',\n    'a_minute' => 'ⵉⵛⵜ ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ',\n    'min' => ':count ⵜⵓⵙ',\n    'second' => ':count ⵜⵙⵉⵏⵜ|:count ⵜⵉⵙⵉⵏⴰ',\n    'a_second' => 'ⴽⵔⴰ ⵜⵉⵙⵉⵏⴰ|:count ⵜⵉⵙⵉⵏⴰ',\n    's' => ':count ⵜ',\n    'ago' => 'ⵣⴳ :time',\n    'from_now' => 'ⴷⴳ :time',\n    'after' => ':time ⴰⵡⴰⵔ',\n    'before' => ':time ⴷⴰⵜ',\n    'diff_now' => 'ⴰⴷⵡⴰⵍⵉ',\n    'diff_yesterday' => 'ⴰⵙⵙⵏⵏⴰⵟ',\n    'diff_tomorrow' => 'ⴰⵙⴽⴽⴰ',\n    'diff_before_yesterday' => 'ⴼⵔ ⵉⴹⵏⵏⴰⵟ',\n    'diff_after_tomorrow' => 'ⵏⴰⴼ ⵓⵙⴽⴽⴰ',\n    'period_recurrences' => ':count ⵜⵉⴽⴽⴰⵍ',\n    'period_interval' => 'ⴽⵓ :interval',\n    'period_start_date' => 'ⴳ :date',\n    'period_end_date' => 'ⵉ :date',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'DD/MM/YYYY',\n        'LL' => 'D MMMM YYYY',\n        'LLL' => 'D MMMM YYYY HH:mm',\n        'LLLL' => 'dddd D MMMM YYYY HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[ⴰⵙⵙ ⴰ/ⴰⴷ ⴳ] LT',\n        'nextDay' => '[ⴰⵙⴽⴽⴰ ⴳ] LT',\n        'nextWeek' => 'dddd [ⴳ] LT',\n        'lastDay' => '[ⴰⵙⵙⵏⵏⴰⵟ ⴳ] LT',\n        'lastWeek' => 'dddd [ⴰⵎⴳⴳⴰⵔⵓ ⴳ] LT',\n        'sameElse' => 'L',\n    ],\n    'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'],\n    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'],\n    'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵟⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'],\n    'weekdays' => ['ⵓⵙⴰⵎⴰⵙ', 'ⵡⴰⵢⵏⴰⵙ', 'ⵓⵙⵉⵏⴰⵙ', 'ⵡⴰⴽⵕⴰⵙ', 'ⵓⴽⵡⴰⵙ', 'ⵓⵙⵉⵎⵡⴰⵙ', 'ⵓⵙⵉⴹⵢⴰⵙ'],\n    'weekdays_short' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'],\n    'weekdays_min' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 1,\n    'list' => [', ', ' ⴷ '],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - xuri\n * - sycuato\n * - bokideckonja\n * - Luo Ning\n */\nreturn [\n    'year' => ':count年',\n    'y' => ':count年',\n    'month' => ':count个月',\n    'm' => ':count个月',\n    'week' => ':count周',\n    'w' => ':count周',\n    'day' => ':count天',\n    'd' => ':count天',\n    'hour' => ':count小时',\n    'h' => ':count小时',\n    'minute' => ':count分钟',\n    'min' => ':count分钟',\n    'second' => ':count秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => '距现在:time',\n    'after' => ':time后',\n    'before' => ':time前',\n    'diff_yesterday' => '昨天',\n    'diff_tomorrow' => '明天',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日 A h点mm分',\n        'LLLL' => 'YYYY年M月D日dddd A h点mm分',\n    ],\n    'calendar' => [\n        'sameDay' => '[今天]LT',\n        'nextDay' => '[明天]LT',\n        'nextWeek' => '[下]ddddLT',\n        'lastDay' => '[昨天]LT',\n        'lastWeek' => '[上]ddddLT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            case 'M':\n                return $number.'月';\n            case 'w':\n            case 'W':\n                return $number.'周';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return '凌晨';\n        }\n        if ($time < 900) {\n            return '早上';\n        }\n        if ($time < 1130) {\n            return '上午';\n        }\n        if ($time < 1230) {\n            return '中午';\n        }\n        if ($time < 1800) {\n            return '下午';\n        }\n\n        return '晚上';\n    },\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => '',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - monkeycon\n * - François B\n * - Jason Katz-Brown\n * - Serhan Apaydın\n * - Matt Johnson\n * - JD Isaacks\n * - Zeno Zeng\n * - Chris Hemp\n * - shankesgk2\n */\nreturn [\n    'year' => ':count年',\n    'y' => ':count年',\n    'month' => ':count个月',\n    'm' => ':count个月',\n    'week' => ':count周',\n    'w' => ':count周',\n    'day' => ':count天',\n    'd' => ':count天',\n    'hour' => ':count小时',\n    'h' => ':count小时',\n    'minute' => ':count分钟',\n    'min' => ':count分钟',\n    'second' => ':count秒',\n    'a_second' => '{1}几秒|]1,Inf[:count秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => ':time内',\n    'after' => ':time后',\n    'before' => ':time前',\n    'diff_yesterday' => '昨天',\n    'diff_tomorrow' => '明天',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日Ah点mm分',\n        'LLLL' => 'YYYY年M月D日ddddAh点mm分',\n    ],\n    'calendar' => [\n        'sameDay' => '[今天]LT',\n        'nextDay' => '[明天]LT',\n        'nextWeek' => '[下]ddddLT',\n        'lastDay' => '[昨天]LT',\n        'lastWeek' => '[上]ddddLT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            case 'M':\n                return $number.'月';\n            case 'w':\n            case 'W':\n                return $number.'周';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return '凌晨';\n        }\n        if ($time < 900) {\n            return '早上';\n        }\n        if ($time < 1130) {\n            return '上午';\n        }\n        if ($time < 1230) {\n            return '中午';\n        }\n        if ($time < 1800) {\n            return '下午';\n        }\n\n        return '晚上';\n    },\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => '',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - monkeycon\n * - François B\n * - Jason Katz-Brown\n * - Konstantin Konev\n * - Chris Lam\n * - Serhan Apaydın\n * - Gary Lo\n * - JD Isaacks\n * - Chris Hemp\n * - shankesgk2\n */\nreturn [\n    'year' => ':count年',\n    'y' => ':count年',\n    'month' => ':count個月',\n    'm' => ':count月',\n    'week' => ':count週',\n    'w' => ':count週',\n    'day' => ':count天',\n    'd' => ':count天',\n    'hour' => ':count小時',\n    'h' => ':count小時',\n    'minute' => ':count分鐘',\n    'min' => ':count分鐘',\n    'second' => ':count秒',\n    'a_second' => '{1}幾秒|]1,Inf[:count秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => ':time內',\n    'after' => ':time后',\n    'before' => ':time前',\n    'diff_yesterday' => '昨天',\n    'diff_tomorrow' => '明天',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日 HH:mm',\n        'LLLL' => 'YYYY年M月D日dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[今天]LT',\n        'nextDay' => '[明天]LT',\n        'nextWeek' => '[下]ddddLT',\n        'lastDay' => '[昨天]LT',\n        'lastWeek' => '[上]ddddLT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            case 'M':\n                return $number.'月';\n            case 'w':\n            case 'W':\n                return $number.'周';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return '凌晨';\n        }\n        if ($time < 900) {\n            return '早上';\n        }\n        if ($time < 1130) {\n            return '上午';\n        }\n        if ($time < 1230) {\n            return '中午';\n        }\n        if ($time < 1800) {\n            return '下午';\n        }\n\n        return '晚上';\n    },\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => '',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/zh_HK.php', [\n    'meridiem' => ['上午', '下午'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hans.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hans.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hans.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn array_replace_recursive(require __DIR__.'/zh_TW.php', [\n    'meridiem' => ['上午', '下午'],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hant.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nreturn require __DIR__.'/zh_Hant.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/*\n * Authors:\n * - tarunvelli\n * - Eddie\n * - KID\n * - shankesgk2\n */\nreturn [\n    'year' => ':count 年',\n    'y' => ':count年',\n    'month' => ':count 個月',\n    'm' => ':count個月',\n    'week' => ':count 周',\n    'w' => ':count周',\n    'day' => ':count 天',\n    'd' => ':count天',\n    'hour' => ':count 小時',\n    'h' => ':count小時',\n    'minute' => ':count 分鐘',\n    'min' => ':count分鐘',\n    'second' => ':count 秒',\n    'a_second' => '{1}幾秒|]1,Inf[:count 秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => ':time內',\n    'after' => ':time后',\n    'before' => ':time前',\n    'diff_yesterday' => '昨天',\n    'diff_tomorrow' => '明天',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日 HH:mm',\n        'LLLL' => 'YYYY年M月D日dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[今天] LT',\n        'nextDay' => '[明天] LT',\n        'nextWeek' => '[下]dddd LT',\n        'lastDay' => '[昨天] LT',\n        'lastWeek' => '[上]dddd LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            case 'M':\n                return $number.'月';\n            case 'w':\n            case 'W':\n                return $number.'周';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return '凌晨';\n        }\n        if ($time < 900) {\n            return '早上';\n        }\n        if ($time < 1130) {\n            return '上午';\n        }\n        if ($time < 1230) {\n            return '中午';\n        }\n        if ($time < 1800) {\n            return '下午';\n        }\n\n        return '晚上';\n    },\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => '',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/zh.php', [\n    'formats' => [\n        'L' => 'YYYY年MM月DD日',\n    ],\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'day_of_first_week_of_year' => 1,\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Adam\n * - monkeycon\n * - François B\n * - Jason Katz-Brown\n * - Chris Lam\n * - Serhan Apaydın\n * - Gary Lo\n * - JD Isaacks\n * - Chris Hemp\n * - Eddie\n * - KID\n * - shankesgk2\n */\nreturn [\n    'year' => ':count年',\n    'y' => ':count年',\n    'month' => ':count個月',\n    'm' => ':count月',\n    'week' => ':count週',\n    'w' => ':count週',\n    'day' => ':count天',\n    'd' => ':count天',\n    'hour' => ':count小時',\n    'h' => ':count小時',\n    'minute' => ':count分鐘',\n    'min' => ':count分鐘',\n    'second' => ':count秒',\n    'a_second' => '{1}幾秒|]1,Inf[:count秒',\n    's' => ':count秒',\n    'ago' => ':time前',\n    'from_now' => ':time內',\n    'after' => ':time後',\n    'before' => ':time前',\n    'diff_yesterday' => '昨天',\n    'diff_tomorrow' => '明天',\n    'formats' => [\n        'LT' => 'HH:mm',\n        'LTS' => 'HH:mm:ss',\n        'L' => 'YYYY/MM/DD',\n        'LL' => 'YYYY年M月D日',\n        'LLL' => 'YYYY年M月D日 HH:mm',\n        'LLLL' => 'YYYY年M月D日dddd HH:mm',\n    ],\n    'calendar' => [\n        'sameDay' => '[今天] LT',\n        'nextDay' => '[明天] LT',\n        'nextWeek' => '[下]dddd LT',\n        'lastDay' => '[昨天] LT',\n        'lastWeek' => '[上]dddd LT',\n        'sameElse' => 'L',\n    ],\n    'ordinal' => function ($number, $period) {\n        switch ($period) {\n            case 'd':\n            case 'D':\n            case 'DDD':\n                return $number.'日';\n            case 'M':\n                return $number.'月';\n            case 'w':\n            case 'W':\n                return $number.'周';\n            default:\n                return $number;\n        }\n    },\n    'meridiem' => function ($hour, $minute) {\n        $time = $hour * 100 + $minute;\n        if ($time < 600) {\n            return '凌晨';\n        }\n        if ($time < 900) {\n            return '早上';\n        }\n        if ($time < 1130) {\n            return '上午';\n        }\n        if ($time < 1230) {\n            return '中午';\n        }\n        if ($time < 1800) {\n            return '下午';\n        }\n\n        return '晚上';\n    },\n    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    'weekdays_short' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],\n    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],\n    'first_day_of_week' => 1,\n    'day_of_first_week_of_year' => 4,\n    'list' => '',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org\n */\nreturn array_replace_recursive(require __DIR__.'/zh.php', [\n    'formats' => [\n        'L' => 'YYYY-MM-DD',\n    ],\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zu.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Unknown default region, use the first alphabetically.\n */\nreturn require __DIR__.'/zu_ZA.php';\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Authors:\n * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za\n */\nreturn array_replace_recursive(require __DIR__.'/en.php', [\n    'formats' => [\n        'L' => 'DD/MM/YYYY',\n    ],\n    'months' => ['Januwari', 'Februwari', 'Mashi', 'Ephreli', 'Meyi', 'Juni', 'Julayi', 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'],\n    'months_short' => ['Jan', 'Feb', 'Mas', 'Eph', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'],\n    'weekdays' => ['iSonto', 'uMsombuluko', 'uLwesibili', 'uLwesithathu', 'uLwesine', 'uLwesihlanu', 'uMgqibelo'],\n    'weekdays_short' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'],\n    'weekdays_min' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'],\n    'day_of_first_week_of_year' => 1,\n\n    'year' => 'kweminyaka engu-:count',\n    'y' => 'kweminyaka engu-:count',\n    'a_year' => 'kweminyaka engu-:count',\n\n    'month' => 'izinyanga ezingu-:count',\n    'm' => 'izinyanga ezingu-:count',\n    'a_month' => 'izinyanga ezingu-:count',\n\n    'week' => 'lwamasonto angu-:count',\n    'w' => 'lwamasonto angu-:count',\n    'a_week' => 'lwamasonto angu-:count',\n\n    'day' => 'ezingaba ngu-:count',\n    'd' => 'ezingaba ngu-:count',\n    'a_day' => 'ezingaba ngu-:count',\n\n    'hour' => 'amahora angu-:count',\n    'h' => 'amahora angu-:count',\n    'a_hour' => 'amahora angu-:count',\n\n    'minute' => 'ngemizuzu engu-:count',\n    'min' => 'ngemizuzu engu-:count',\n    'a_minute' => 'ngemizuzu engu-:count',\n\n    'second' => 'imizuzwana engu-:count',\n    's' => 'imizuzwana engu-:count',\n    'a_second' => 'imizuzwana engu-:count',\n]);\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Language.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse JsonSerializable;\n\nclass Language implements JsonSerializable\n{\n    /**\n     * @var array\n     */\n    protected static $languagesNames;\n\n    /**\n     * @var array\n     */\n    protected static $regionsNames;\n\n    /**\n     * @var string\n     */\n    protected $id;\n\n    /**\n     * @var string\n     */\n    protected $code;\n\n    /**\n     * @var string|null\n     */\n    protected $variant;\n\n    /**\n     * @var string|null\n     */\n    protected $region;\n\n    /**\n     * @var array\n     */\n    protected $names;\n\n    /**\n     * @var string\n     */\n    protected $isoName;\n\n    /**\n     * @var string\n     */\n    protected $nativeName;\n\n    public function __construct(string $id)\n    {\n        $this->id = str_replace('-', '_', $id);\n        $parts = explode('_', $this->id);\n        $this->code = $parts[0];\n\n        if (isset($parts[1])) {\n            if (!preg_match('/^[A-Z]+$/', $parts[1])) {\n                $this->variant = $parts[1];\n                $parts[1] = $parts[2] ?? null;\n            }\n            if ($parts[1]) {\n                $this->region = $parts[1];\n            }\n        }\n    }\n\n    /**\n     * Get the list of the known languages.\n     *\n     * @return array\n     */\n    public static function all()\n    {\n        if (!static::$languagesNames) {\n            static::$languagesNames = include __DIR__.'/List/languages.php';\n        }\n\n        return static::$languagesNames;\n    }\n\n    /**\n     * Get the list of the known regions.\n     *\n     * @return array\n     */\n    public static function regions()\n    {\n        if (!static::$regionsNames) {\n            static::$regionsNames = include __DIR__.'/List/regions.php';\n        }\n\n        return static::$regionsNames;\n    }\n\n    /**\n     * Get both isoName and nativeName as an array.\n     *\n     * @return array\n     */\n    public function getNames(): array\n    {\n        if (!$this->names) {\n            $this->names = static::all()[$this->code] ?? [\n                'isoName' => $this->code,\n                'nativeName' => $this->code,\n            ];\n        }\n\n        return $this->names;\n    }\n\n    /**\n     * Returns the original locale ID.\n     *\n     * @return string\n     */\n    public function getId(): string\n    {\n        return $this->id;\n    }\n\n    /**\n     * Returns the code of the locale \"en\"/\"fr\".\n     *\n     * @return string\n     */\n    public function getCode(): string\n    {\n        return $this->code;\n    }\n\n    /**\n     * Returns the variant code such as cyrl/latn.\n     *\n     * @return string|null\n     */\n    public function getVariant(): ?string\n    {\n        return $this->variant;\n    }\n\n    /**\n     * Returns the variant such as Cyrillic/Latin.\n     *\n     * @return string|null\n     */\n    public function getVariantName(): ?string\n    {\n        if ($this->variant === 'Latn') {\n            return 'Latin';\n        }\n\n        if ($this->variant === 'Cyrl') {\n            return 'Cyrillic';\n        }\n\n        return $this->variant;\n    }\n\n    /**\n     * Returns the region part of the locale.\n     *\n     * @return string|null\n     */\n    public function getRegion(): ?string\n    {\n        return $this->region;\n    }\n\n    /**\n     * Returns the region name for the current language.\n     *\n     * @return string|null\n     */\n    public function getRegionName(): ?string\n    {\n        return $this->region ? (static::regions()[$this->region] ?? $this->region) : null;\n    }\n\n    /**\n     * Returns the long ISO language name.\n     *\n     * @return string\n     */\n    public function getFullIsoName(): string\n    {\n        if (!$this->isoName) {\n            $this->isoName = $this->getNames()['isoName'];\n        }\n\n        return $this->isoName;\n    }\n\n    /**\n     * Set the ISO language name.\n     *\n     * @param string $isoName\n     */\n    public function setIsoName(string $isoName): self\n    {\n        $this->isoName = $isoName;\n\n        return $this;\n    }\n\n    /**\n     * Return the full name of the language in this language.\n     *\n     * @return string\n     */\n    public function getFullNativeName(): string\n    {\n        if (!$this->nativeName) {\n            $this->nativeName = $this->getNames()['nativeName'];\n        }\n\n        return $this->nativeName;\n    }\n\n    /**\n     * Set the name of the language in this language.\n     *\n     * @param string $nativeName\n     */\n    public function setNativeName(string $nativeName): self\n    {\n        $this->nativeName = $nativeName;\n\n        return $this;\n    }\n\n    /**\n     * Returns the short ISO language name.\n     *\n     * @return string\n     */\n    public function getIsoName(): string\n    {\n        $name = $this->getFullIsoName();\n\n        return trim(strstr($name, ',', true) ?: $name);\n    }\n\n    /**\n     * Get the short name of the language in this language.\n     *\n     * @return string\n     */\n    public function getNativeName(): string\n    {\n        $name = $this->getFullNativeName();\n\n        return trim(strstr($name, ',', true) ?: $name);\n    }\n\n    /**\n     * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable.\n     *\n     * @return string\n     */\n    public function getIsoDescription()\n    {\n        $region = $this->getRegionName();\n        $variant = $this->getVariantName();\n\n        return $this->getIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');\n    }\n\n    /**\n     * Get a string with short native name, region in parentheses if applicable, variant in parentheses if applicable.\n     *\n     * @return string\n     */\n    public function getNativeDescription()\n    {\n        $region = $this->getRegionName();\n        $variant = $this->getVariantName();\n\n        return $this->getNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');\n    }\n\n    /**\n     * Get a string with long ISO name, region in parentheses if applicable, variant in parentheses if applicable.\n     *\n     * @return string\n     */\n    public function getFullIsoDescription()\n    {\n        $region = $this->getRegionName();\n        $variant = $this->getVariantName();\n\n        return $this->getFullIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');\n    }\n\n    /**\n     * Get a string with long native name, region in parentheses if applicable, variant in parentheses if applicable.\n     *\n     * @return string\n     */\n    public function getFullNativeDescription()\n    {\n        $region = $this->getRegionName();\n        $variant = $this->getVariantName();\n\n        return $this->getFullNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');\n    }\n\n    /**\n     * Returns the original locale ID.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->getId();\n    }\n\n    /**\n     * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable.\n     *\n     * @return string\n     */\n    public function jsonSerialize()\n    {\n        return $this->getIsoDescription();\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php",
    "content": "<?php\n\nnamespace Carbon\\Laravel;\n\nuse Carbon\\Carbon;\nuse Illuminate\\Contracts\\Events\\Dispatcher as DispatcherContract;\nuse Illuminate\\Events\\Dispatcher;\nuse Illuminate\\Events\\EventDispatcher;\nuse Illuminate\\Translation\\Translator as IlluminateTranslator;\nuse Symfony\\Component\\Translation\\Translator;\n\nclass ServiceProvider extends \\Illuminate\\Support\\ServiceProvider\n{\n    public function boot()\n    {\n        if (!$this->app->bound('events') || !$this->app->bound('translator')) {\n            return;\n        }\n\n        $service = $this;\n        $events = $this->app['events'];\n\n        if ($this->isEventDispatcher($events)) {\n            $events->listen(class_exists('Illuminate\\Foundation\\Events\\LocaleUpdated') ? 'Illuminate\\Foundation\\Events\\LocaleUpdated' : 'locale.changed', function () use ($service) {\n                $service->updateLocale();\n            });\n            $service->updateLocale();\n        }\n    }\n\n    public function updateLocale()\n    {\n        $translator = $this->app['translator'];\n\n        if ($translator instanceof Translator || $translator instanceof IlluminateTranslator) {\n            Carbon::setLocale($translator->getLocale());\n        }\n    }\n\n    public function register()\n    {\n        // Needed for Laravel < 5.3 compatibility\n    }\n\n    protected function isEventDispatcher($instance)\n    {\n        return $instance instanceof EventDispatcher\n            || $instance instanceof Dispatcher\n            || $instance instanceof DispatcherContract;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/List/languages.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nreturn [\n    /*\n     * ISO 639-2\n     */\n    'ab' => [\n        'isoName' => 'Abkhazian',\n        'nativeName' => 'аҧсуа бызшәа, аҧсшәа',\n    ],\n    'aa' => [\n        'isoName' => 'Afar',\n        'nativeName' => 'Afaraf',\n    ],\n    'af' => [\n        'isoName' => 'Afrikaans',\n        'nativeName' => 'Afrikaans',\n    ],\n    'ak' => [\n        'isoName' => 'Akan',\n        'nativeName' => 'Akan',\n    ],\n    'sq' => [\n        'isoName' => 'Albanian',\n        'nativeName' => 'Shqip',\n    ],\n    'am' => [\n        'isoName' => 'Amharic',\n        'nativeName' => 'አማርኛ',\n    ],\n    'ar' => [\n        'isoName' => 'Arabic',\n        'nativeName' => 'العربية',\n    ],\n    'an' => [\n        'isoName' => 'Aragonese',\n        'nativeName' => 'aragonés',\n    ],\n    'hy' => [\n        'isoName' => 'Armenian',\n        'nativeName' => 'Հայերեն',\n    ],\n    'as' => [\n        'isoName' => 'Assamese',\n        'nativeName' => 'অসমীয়া',\n    ],\n    'av' => [\n        'isoName' => 'Avaric',\n        'nativeName' => 'авар мацӀ, магӀарул мацӀ',\n    ],\n    'ae' => [\n        'isoName' => 'Avestan',\n        'nativeName' => 'avesta',\n    ],\n    'ay' => [\n        'isoName' => 'Aymara',\n        'nativeName' => 'aymar aru',\n    ],\n    'az' => [\n        'isoName' => 'Azerbaijani',\n        'nativeName' => 'azərbaycan dili',\n    ],\n    'bm' => [\n        'isoName' => 'Bambara',\n        'nativeName' => 'bamanankan',\n    ],\n    'ba' => [\n        'isoName' => 'Bashkir',\n        'nativeName' => 'башҡорт теле',\n    ],\n    'eu' => [\n        'isoName' => 'Basque',\n        'nativeName' => 'euskara, euskera',\n    ],\n    'be' => [\n        'isoName' => 'Belarusian',\n        'nativeName' => 'беларуская мова',\n    ],\n    'bn' => [\n        'isoName' => 'Bengali',\n        'nativeName' => 'বাংলা',\n    ],\n    'bh' => [\n        'isoName' => 'Bihari languages',\n        'nativeName' => 'भोजपुरी',\n    ],\n    'bi' => [\n        'isoName' => 'Bislama',\n        'nativeName' => 'Bislama',\n    ],\n    'bs' => [\n        'isoName' => 'Bosnian',\n        'nativeName' => 'bosanski jezik',\n    ],\n    'br' => [\n        'isoName' => 'Breton',\n        'nativeName' => 'brezhoneg',\n    ],\n    'bg' => [\n        'isoName' => 'Bulgarian',\n        'nativeName' => 'български език',\n    ],\n    'my' => [\n        'isoName' => 'Burmese',\n        'nativeName' => 'ဗမာစာ',\n    ],\n    'ca' => [\n        'isoName' => 'Catalan, Valencian',\n        'nativeName' => 'català, valencià',\n    ],\n    'ch' => [\n        'isoName' => 'Chamorro',\n        'nativeName' => 'Chamoru',\n    ],\n    'ce' => [\n        'isoName' => 'Chechen',\n        'nativeName' => 'нохчийн мотт',\n    ],\n    'ny' => [\n        'isoName' => 'Chichewa, Chewa, Nyanja',\n        'nativeName' => 'chiCheŵa, chinyanja',\n    ],\n    'zh' => [\n        'isoName' => 'Chinese',\n        'nativeName' => '中文 (Zhōngwén), 汉语, 漢語',\n    ],\n    'cv' => [\n        'isoName' => 'Chuvash',\n        'nativeName' => 'чӑваш чӗлхи',\n    ],\n    'kw' => [\n        'isoName' => 'Cornish',\n        'nativeName' => 'Kernewek',\n    ],\n    'co' => [\n        'isoName' => 'Corsican',\n        'nativeName' => 'corsu, lingua corsa',\n    ],\n    'cr' => [\n        'isoName' => 'Cree',\n        'nativeName' => 'ᓀᐦᐃᔭᐍᐏᐣ',\n    ],\n    'hr' => [\n        'isoName' => 'Croatian',\n        'nativeName' => 'hrvatski jezik',\n    ],\n    'cs' => [\n        'isoName' => 'Czech',\n        'nativeName' => 'čeština, český jazyk',\n    ],\n    'da' => [\n        'isoName' => 'Danish',\n        'nativeName' => 'dansk',\n    ],\n    'dv' => [\n        'isoName' => 'Divehi, Dhivehi, Maldivian',\n        'nativeName' => 'ދިވެހި',\n    ],\n    'nl' => [\n        'isoName' => 'Dutch, Flemish',\n        'nativeName' => 'Nederlands, Vlaams',\n    ],\n    'dz' => [\n        'isoName' => 'Dzongkha',\n        'nativeName' => 'རྫོང་ཁ',\n    ],\n    'en' => [\n        'isoName' => 'English',\n        'nativeName' => 'English',\n    ],\n    'eo' => [\n        'isoName' => 'Esperanto',\n        'nativeName' => 'Esperanto',\n    ],\n    'et' => [\n        'isoName' => 'Estonian',\n        'nativeName' => 'eesti, eesti keel',\n    ],\n    'ee' => [\n        'isoName' => 'Ewe',\n        'nativeName' => 'Eʋegbe',\n    ],\n    'fo' => [\n        'isoName' => 'Faroese',\n        'nativeName' => 'føroyskt',\n    ],\n    'fj' => [\n        'isoName' => 'Fijian',\n        'nativeName' => 'vosa Vakaviti',\n    ],\n    'fi' => [\n        'isoName' => 'Finnish',\n        'nativeName' => 'suomi, suomen kieli',\n    ],\n    'fr' => [\n        'isoName' => 'French',\n        'nativeName' => 'français',\n    ],\n    'ff' => [\n        'isoName' => 'Fulah',\n        'nativeName' => 'Fulfulde, Pulaar, Pular',\n    ],\n    'gl' => [\n        'isoName' => 'Galician',\n        'nativeName' => 'Galego',\n    ],\n    'ka' => [\n        'isoName' => 'Georgian',\n        'nativeName' => 'ქართული',\n    ],\n    'de' => [\n        'isoName' => 'German',\n        'nativeName' => 'Deutsch',\n    ],\n    'el' => [\n        'isoName' => 'Greek (modern)',\n        'nativeName' => 'ελληνικά',\n    ],\n    'gn' => [\n        'isoName' => 'Guaraní',\n        'nativeName' => 'Avañe\\'ẽ',\n    ],\n    'gu' => [\n        'isoName' => 'Gujarati',\n        'nativeName' => 'ગુજરાતી',\n    ],\n    'ht' => [\n        'isoName' => 'Haitian, Haitian Creole',\n        'nativeName' => 'Kreyòl ayisyen',\n    ],\n    'ha' => [\n        'isoName' => 'Hausa',\n        'nativeName' => '(Hausa) هَوُسَ',\n    ],\n    'he' => [\n        'isoName' => 'Hebrew (modern)',\n        'nativeName' => 'עברית',\n    ],\n    'hz' => [\n        'isoName' => 'Herero',\n        'nativeName' => 'Otjiherero',\n    ],\n    'hi' => [\n        'isoName' => 'Hindi',\n        'nativeName' => 'हिन्दी, हिंदी',\n    ],\n    'ho' => [\n        'isoName' => 'Hiri Motu',\n        'nativeName' => 'Hiri Motu',\n    ],\n    'hu' => [\n        'isoName' => 'Hungarian',\n        'nativeName' => 'magyar',\n    ],\n    'ia' => [\n        'isoName' => 'Interlingua',\n        'nativeName' => 'Interlingua',\n    ],\n    'id' => [\n        'isoName' => 'Indonesian',\n        'nativeName' => 'Bahasa Indonesia',\n    ],\n    'ie' => [\n        'isoName' => 'Interlingue',\n        'nativeName' => 'Originally called Occidental; then Interlingue after WWII',\n    ],\n    'ga' => [\n        'isoName' => 'Irish',\n        'nativeName' => 'Gaeilge',\n    ],\n    'ig' => [\n        'isoName' => 'Igbo',\n        'nativeName' => 'Asụsụ Igbo',\n    ],\n    'ik' => [\n        'isoName' => 'Inupiaq',\n        'nativeName' => 'Iñupiaq, Iñupiatun',\n    ],\n    'io' => [\n        'isoName' => 'Ido',\n        'nativeName' => 'Ido',\n    ],\n    'is' => [\n        'isoName' => 'Icelandic',\n        'nativeName' => 'Íslenska',\n    ],\n    'it' => [\n        'isoName' => 'Italian',\n        'nativeName' => 'Italiano',\n    ],\n    'iu' => [\n        'isoName' => 'Inuktitut',\n        'nativeName' => 'ᐃᓄᒃᑎᑐᑦ',\n    ],\n    'ja' => [\n        'isoName' => 'Japanese',\n        'nativeName' => '日本語 (にほんご)',\n    ],\n    'jv' => [\n        'isoName' => 'Javanese',\n        'nativeName' => 'ꦧꦱꦗꦮ, Basa Jawa',\n    ],\n    'kl' => [\n        'isoName' => 'Kalaallisut, Greenlandic',\n        'nativeName' => 'kalaallisut, kalaallit oqaasii',\n    ],\n    'kn' => [\n        'isoName' => 'Kannada',\n        'nativeName' => 'ಕನ್ನಡ',\n    ],\n    'kr' => [\n        'isoName' => 'Kanuri',\n        'nativeName' => 'Kanuri',\n    ],\n    'ks' => [\n        'isoName' => 'Kashmiri',\n        'nativeName' => 'कश्मीरी, كشميري‎',\n    ],\n    'kk' => [\n        'isoName' => 'Kazakh',\n        'nativeName' => 'қазақ тілі',\n    ],\n    'km' => [\n        'isoName' => 'Central Khmer',\n        'nativeName' => 'ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ',\n    ],\n    'ki' => [\n        'isoName' => 'Kikuyu, Gikuyu',\n        'nativeName' => 'Gĩkũyũ',\n    ],\n    'rw' => [\n        'isoName' => 'Kinyarwanda',\n        'nativeName' => 'Ikinyarwanda',\n    ],\n    'ky' => [\n        'isoName' => 'Kirghiz, Kyrgyz',\n        'nativeName' => 'Кыргызча, Кыргыз тили',\n    ],\n    'kv' => [\n        'isoName' => 'Komi',\n        'nativeName' => 'коми кыв',\n    ],\n    'kg' => [\n        'isoName' => 'Kongo',\n        'nativeName' => 'Kikongo',\n    ],\n    'ko' => [\n        'isoName' => 'Korean',\n        'nativeName' => '한국어',\n    ],\n    'ku' => [\n        'isoName' => 'Kurdish',\n        'nativeName' => 'Kurdî, کوردی‎',\n    ],\n    'kj' => [\n        'isoName' => 'Kuanyama, Kwanyama',\n        'nativeName' => 'Kuanyama',\n    ],\n    'la' => [\n        'isoName' => 'Latin',\n        'nativeName' => 'latine, lingua latina',\n    ],\n    'lb' => [\n        'isoName' => 'Luxembourgish, Letzeburgesch',\n        'nativeName' => 'Lëtzebuergesch',\n    ],\n    'lg' => [\n        'isoName' => 'Ganda',\n        'nativeName' => 'Luganda',\n    ],\n    'li' => [\n        'isoName' => 'Limburgan, Limburger, Limburgish',\n        'nativeName' => 'Limburgs',\n    ],\n    'ln' => [\n        'isoName' => 'Lingala',\n        'nativeName' => 'Lingála',\n    ],\n    'lo' => [\n        'isoName' => 'Lao',\n        'nativeName' => 'ພາສາລາວ',\n    ],\n    'lt' => [\n        'isoName' => 'Lithuanian',\n        'nativeName' => 'lietuvių kalba',\n    ],\n    'lu' => [\n        'isoName' => 'Luba-Katanga',\n        'nativeName' => 'Kiluba',\n    ],\n    'lv' => [\n        'isoName' => 'Latvian',\n        'nativeName' => 'latviešu valoda',\n    ],\n    'gv' => [\n        'isoName' => 'Manx',\n        'nativeName' => 'Gaelg, Gailck',\n    ],\n    'mk' => [\n        'isoName' => 'Macedonian',\n        'nativeName' => 'македонски јазик',\n    ],\n    'mg' => [\n        'isoName' => 'Malagasy',\n        'nativeName' => 'fiteny malagasy',\n    ],\n    'ms' => [\n        'isoName' => 'Malay',\n        'nativeName' => 'Bahasa Melayu, بهاس ملايو‎',\n    ],\n    'ml' => [\n        'isoName' => 'Malayalam',\n        'nativeName' => 'മലയാളം',\n    ],\n    'mt' => [\n        'isoName' => 'Maltese',\n        'nativeName' => 'Malti',\n    ],\n    'mi' => [\n        'isoName' => 'Maori',\n        'nativeName' => 'te reo Māori',\n    ],\n    'mr' => [\n        'isoName' => 'Marathi',\n        'nativeName' => 'मराठी',\n    ],\n    'mh' => [\n        'isoName' => 'Marshallese',\n        'nativeName' => 'Kajin M̧ajeļ',\n    ],\n    'mn' => [\n        'isoName' => 'Mongolian',\n        'nativeName' => 'Монгол хэл',\n    ],\n    'na' => [\n        'isoName' => 'Nauru',\n        'nativeName' => 'Dorerin Naoero',\n    ],\n    'nv' => [\n        'isoName' => 'Navajo, Navaho',\n        'nativeName' => 'Diné bizaad',\n    ],\n    'nd' => [\n        'isoName' => 'North Ndebele',\n        'nativeName' => 'isiNdebele',\n    ],\n    'ne' => [\n        'isoName' => 'Nepali',\n        'nativeName' => 'नेपाली',\n    ],\n    'ng' => [\n        'isoName' => 'Ndonga',\n        'nativeName' => 'Owambo',\n    ],\n    'nb' => [\n        'isoName' => 'Norwegian Bokmål',\n        'nativeName' => 'Norsk Bokmål',\n    ],\n    'nn' => [\n        'isoName' => 'Norwegian Nynorsk',\n        'nativeName' => 'Norsk Nynorsk',\n    ],\n    'no' => [\n        'isoName' => 'Norwegian',\n        'nativeName' => 'Norsk',\n    ],\n    'ii' => [\n        'isoName' => 'Sichuan Yi, Nuosu',\n        'nativeName' => 'ꆈꌠ꒿ Nuosuhxop',\n    ],\n    'nr' => [\n        'isoName' => 'South Ndebele',\n        'nativeName' => 'isiNdebele',\n    ],\n    'oc' => [\n        'isoName' => 'Occitan',\n        'nativeName' => 'occitan, lenga d\\'òc',\n    ],\n    'oj' => [\n        'isoName' => 'Ojibwa',\n        'nativeName' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ',\n    ],\n    'cu' => [\n        'isoName' => 'Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian',\n        'nativeName' => 'ѩзыкъ словѣньскъ',\n    ],\n    'om' => [\n        'isoName' => 'Oromo',\n        'nativeName' => 'Afaan Oromoo',\n    ],\n    'or' => [\n        'isoName' => 'Oriya',\n        'nativeName' => 'ଓଡ଼ିଆ',\n    ],\n    'os' => [\n        'isoName' => 'Ossetian, Ossetic',\n        'nativeName' => 'ирон æвзаг',\n    ],\n    'pa' => [\n        'isoName' => 'Panjabi, Punjabi',\n        'nativeName' => 'ਪੰਜਾਬੀ',\n    ],\n    'pi' => [\n        'isoName' => 'Pali',\n        'nativeName' => 'पाऴि',\n    ],\n    'fa' => [\n        'isoName' => 'Persian',\n        'nativeName' => 'فارسی',\n    ],\n    'pl' => [\n        'isoName' => 'Polish',\n        'nativeName' => 'język polski, polszczyzna',\n    ],\n    'ps' => [\n        'isoName' => 'Pashto, Pushto',\n        'nativeName' => 'پښتو',\n    ],\n    'pt' => [\n        'isoName' => 'Portuguese',\n        'nativeName' => 'Português',\n    ],\n    'qu' => [\n        'isoName' => 'Quechua',\n        'nativeName' => 'Runa Simi, Kichwa',\n    ],\n    'rm' => [\n        'isoName' => 'Romansh',\n        'nativeName' => 'Rumantsch Grischun',\n    ],\n    'rn' => [\n        'isoName' => 'Rundi',\n        'nativeName' => 'Ikirundi',\n    ],\n    'ro' => [\n        'isoName' => 'Romanian, Moldavian, Moldovan',\n        'nativeName' => 'Română',\n    ],\n    'ru' => [\n        'isoName' => 'Russian',\n        'nativeName' => 'русский',\n    ],\n    'sa' => [\n        'isoName' => 'Sanskrit',\n        'nativeName' => 'संस्कृतम्',\n    ],\n    'sc' => [\n        'isoName' => 'Sardinian',\n        'nativeName' => 'sardu',\n    ],\n    'sd' => [\n        'isoName' => 'Sindhi',\n        'nativeName' => 'सिन्धी, سنڌي، سندھی‎',\n    ],\n    'se' => [\n        'isoName' => 'Northern Sami',\n        'nativeName' => 'Davvisámegiella',\n    ],\n    'sm' => [\n        'isoName' => 'Samoan',\n        'nativeName' => 'gagana fa\\'a Samoa',\n    ],\n    'sg' => [\n        'isoName' => 'Sango',\n        'nativeName' => 'yângâ tî sängö',\n    ],\n    'sr' => [\n        'isoName' => 'Serbian',\n        'nativeName' => 'српски језик',\n    ],\n    'gd' => [\n        'isoName' => 'Gaelic, Scottish Gaelic',\n        'nativeName' => 'Gàidhlig',\n    ],\n    'sn' => [\n        'isoName' => 'Shona',\n        'nativeName' => 'chiShona',\n    ],\n    'si' => [\n        'isoName' => 'Sinhala, Sinhalese',\n        'nativeName' => 'සිංහල',\n    ],\n    'sk' => [\n        'isoName' => 'Slovak',\n        'nativeName' => 'Slovenčina, Slovenský Jazyk',\n    ],\n    'sl' => [\n        'isoName' => 'Slovene',\n        'nativeName' => 'Slovenski Jezik, Slovenščina',\n    ],\n    'so' => [\n        'isoName' => 'Somali',\n        'nativeName' => 'Soomaaliga, af Soomaali',\n    ],\n    'st' => [\n        'isoName' => 'Southern Sotho',\n        'nativeName' => 'Sesotho',\n    ],\n    'es' => [\n        'isoName' => 'Spanish, Castilian',\n        'nativeName' => 'Español',\n    ],\n    'su' => [\n        'isoName' => 'Sundanese',\n        'nativeName' => 'Basa Sunda',\n    ],\n    'sw' => [\n        'isoName' => 'Swahili',\n        'nativeName' => 'Kiswahili',\n    ],\n    'ss' => [\n        'isoName' => 'Swati',\n        'nativeName' => 'SiSwati',\n    ],\n    'sv' => [\n        'isoName' => 'Swedish',\n        'nativeName' => 'Svenska',\n    ],\n    'ta' => [\n        'isoName' => 'Tamil',\n        'nativeName' => 'தமிழ்',\n    ],\n    'te' => [\n        'isoName' => 'Telugu',\n        'nativeName' => 'తెలుగు',\n    ],\n    'tg' => [\n        'isoName' => 'Tajik',\n        'nativeName' => 'тоҷикӣ, toçikī, تاجیکی‎',\n    ],\n    'th' => [\n        'isoName' => 'Thai',\n        'nativeName' => 'ไทย',\n    ],\n    'ti' => [\n        'isoName' => 'Tigrinya',\n        'nativeName' => 'ትግርኛ',\n    ],\n    'bo' => [\n        'isoName' => 'Tibetan',\n        'nativeName' => 'བོད་ཡིག',\n    ],\n    'tk' => [\n        'isoName' => 'Turkmen',\n        'nativeName' => 'Türkmen, Түркмен',\n    ],\n    'tl' => [\n        'isoName' => 'Tagalog',\n        'nativeName' => 'Wikang Tagalog',\n    ],\n    'tn' => [\n        'isoName' => 'Tswana',\n        'nativeName' => 'Setswana',\n    ],\n    'to' => [\n        'isoName' => 'Tongan (Tonga Islands)',\n        'nativeName' => 'Faka Tonga',\n    ],\n    'tr' => [\n        'isoName' => 'Turkish',\n        'nativeName' => 'Türkçe',\n    ],\n    'ts' => [\n        'isoName' => 'Tsonga',\n        'nativeName' => 'Xitsonga',\n    ],\n    'tt' => [\n        'isoName' => 'Tatar',\n        'nativeName' => 'татар теле, tatar tele',\n    ],\n    'tw' => [\n        'isoName' => 'Twi',\n        'nativeName' => 'Twi',\n    ],\n    'ty' => [\n        'isoName' => 'Tahitian',\n        'nativeName' => 'Reo Tahiti',\n    ],\n    'ug' => [\n        'isoName' => 'Uighur, Uyghur',\n        'nativeName' => 'Uyƣurqə, ‫ئۇيغۇرچ',\n    ],\n    'uk' => [\n        'isoName' => 'Ukrainian',\n        'nativeName' => 'Українська',\n    ],\n    'ur' => [\n        'isoName' => 'Urdu',\n        'nativeName' => 'اردو',\n    ],\n    'uz' => [\n        'isoName' => 'Uzbek',\n        'nativeName' => 'Oʻzbek, Ўзбек, أۇزبېك‎',\n    ],\n    've' => [\n        'isoName' => 'Venda',\n        'nativeName' => 'Tshivenḓa',\n    ],\n    'vi' => [\n        'isoName' => 'Vietnamese',\n        'nativeName' => 'Tiếng Việt',\n    ],\n    'vo' => [\n        'isoName' => 'Volapük',\n        'nativeName' => 'Volapük',\n    ],\n    'wa' => [\n        'isoName' => 'Walloon',\n        'nativeName' => 'Walon',\n    ],\n    'cy' => [\n        'isoName' => 'Welsh',\n        'nativeName' => 'Cymraeg',\n    ],\n    'wo' => [\n        'isoName' => 'Wolof',\n        'nativeName' => 'Wollof',\n    ],\n    'fy' => [\n        'isoName' => 'Western Frisian',\n        'nativeName' => 'Frysk',\n    ],\n    'xh' => [\n        'isoName' => 'Xhosa',\n        'nativeName' => 'isiXhosa',\n    ],\n    'yi' => [\n        'isoName' => 'Yiddish',\n        'nativeName' => 'ייִדיש',\n    ],\n    'yo' => [\n        'isoName' => 'Yoruba',\n        'nativeName' => 'Yorùbá',\n    ],\n    'za' => [\n        'isoName' => 'Zhuang, Chuang',\n        'nativeName' => 'Saɯ cueŋƅ, Saw cuengh',\n    ],\n    'zu' => [\n        'isoName' => 'Zulu',\n        'nativeName' => 'isiZulu',\n    ],\n    /*\n     * Add ISO 639-3 languages available in Carbon\n     */\n    'agq' => [\n        'isoName' => 'Aghem',\n        'nativeName' => 'Aghem',\n    ],\n    'agr' => [\n        'isoName' => 'Aguaruna',\n        'nativeName' => 'Aguaruna',\n    ],\n    'anp' => [\n        'isoName' => 'Angika',\n        'nativeName' => 'Angika',\n    ],\n    'asa' => [\n        'isoName' => 'Asu',\n        'nativeName' => 'Asu',\n    ],\n    'ast' => [\n        'isoName' => 'Asturian',\n        'nativeName' => 'Asturian',\n    ],\n    'ayc' => [\n        'isoName' => 'Southern Aymara',\n        'nativeName' => 'Southern Aymara',\n    ],\n    'bas' => [\n        'isoName' => 'Basaa',\n        'nativeName' => 'Basaa',\n    ],\n    'bem' => [\n        'isoName' => 'Bemba',\n        'nativeName' => 'Bemba',\n    ],\n    'bez' => [\n        'isoName' => 'Bena',\n        'nativeName' => 'Bena',\n    ],\n    'bhb' => [\n        'isoName' => 'Bhili',\n        'nativeName' => 'Bhili',\n    ],\n    'bho' => [\n        'isoName' => 'Bhojpuri',\n        'nativeName' => 'Bhojpuri',\n    ],\n    'brx' => [\n        'isoName' => 'Bodo',\n        'nativeName' => 'Bodo',\n    ],\n    'byn' => [\n        'isoName' => 'Bilin',\n        'nativeName' => 'Bilin',\n    ],\n    'ccp' => [\n        'isoName' => 'Chakma',\n        'nativeName' => 'Chakma',\n    ],\n    'cgg' => [\n        'isoName' => 'Chiga',\n        'nativeName' => 'Chiga',\n    ],\n    'chr' => [\n        'isoName' => 'Cherokee',\n        'nativeName' => 'Cherokee',\n    ],\n    'cmn' => [\n        'isoName' => 'Chinese',\n        'nativeName' => 'Chinese',\n    ],\n    'crh' => [\n        'isoName' => 'Crimean Turkish',\n        'nativeName' => 'Crimean Turkish',\n    ],\n    'csb' => [\n        'isoName' => 'Kashubian',\n        'nativeName' => 'Kashubian',\n    ],\n    'dav' => [\n        'isoName' => 'Taita',\n        'nativeName' => 'Taita',\n    ],\n    'dje' => [\n        'isoName' => 'Zarma',\n        'nativeName' => 'Zarma',\n    ],\n    'doi' => [\n        'isoName' => 'Dogri (macrolanguage)',\n        'nativeName' => 'Dogri (macrolanguage)',\n    ],\n    'dsb' => [\n        'isoName' => 'Lower Sorbian',\n        'nativeName' => 'Lower Sorbian',\n    ],\n    'dua' => [\n        'isoName' => 'Duala',\n        'nativeName' => 'Duala',\n    ],\n    'dyo' => [\n        'isoName' => 'Jola-Fonyi',\n        'nativeName' => 'Jola-Fonyi',\n    ],\n    'ebu' => [\n        'isoName' => 'Embu',\n        'nativeName' => 'Embu',\n    ],\n    'ewo' => [\n        'isoName' => 'Ewondo',\n        'nativeName' => 'Ewondo',\n    ],\n    'fil' => [\n        'isoName' => 'Filipino',\n        'nativeName' => 'Filipino',\n    ],\n    'fur' => [\n        'isoName' => 'Friulian',\n        'nativeName' => 'Friulian',\n    ],\n    'gez' => [\n        'isoName' => 'Geez',\n        'nativeName' => 'Geez',\n    ],\n    'gom' => [\n        'isoName' => 'Konkani, Goan',\n        'nativeName' => 'ಕೊಂಕಣಿ',\n    ],\n    'gsw' => [\n        'isoName' => 'Swiss German',\n        'nativeName' => 'Swiss German',\n    ],\n    'guz' => [\n        'isoName' => 'Gusii',\n        'nativeName' => 'Gusii',\n    ],\n    'hak' => [\n        'isoName' => 'Hakka Chinese',\n        'nativeName' => 'Hakka Chinese',\n    ],\n    'haw' => [\n        'isoName' => 'Hawaiian',\n        'nativeName' => 'Hawaiian',\n    ],\n    'hif' => [\n        'isoName' => 'Fiji Hindi',\n        'nativeName' => 'Fiji Hindi',\n    ],\n    'hne' => [\n        'isoName' => 'Chhattisgarhi',\n        'nativeName' => 'Chhattisgarhi',\n    ],\n    'hsb' => [\n        'isoName' => 'Upper Sorbian',\n        'nativeName' => 'Upper Sorbian',\n    ],\n    'jgo' => [\n        'isoName' => 'Ngomba',\n        'nativeName' => 'Ngomba',\n    ],\n    'jmc' => [\n        'isoName' => 'Machame',\n        'nativeName' => 'Machame',\n    ],\n    'kab' => [\n        'isoName' => 'Kabyle',\n        'nativeName' => 'Kabyle',\n    ],\n    'kam' => [\n        'isoName' => 'Kamba',\n        'nativeName' => 'Kamba',\n    ],\n    'kde' => [\n        'isoName' => 'Makonde',\n        'nativeName' => 'Makonde',\n    ],\n    'kea' => [\n        'isoName' => 'Kabuverdianu',\n        'nativeName' => 'Kabuverdianu',\n    ],\n    'khq' => [\n        'isoName' => 'Koyra Chiini',\n        'nativeName' => 'Koyra Chiini',\n    ],\n    'kkj' => [\n        'isoName' => 'Kako',\n        'nativeName' => 'Kako',\n    ],\n    'kln' => [\n        'isoName' => 'Kalenjin',\n        'nativeName' => 'Kalenjin',\n    ],\n    'kok' => [\n        'isoName' => 'Konkani',\n        'nativeName' => 'Konkani',\n    ],\n    'ksb' => [\n        'isoName' => 'Shambala',\n        'nativeName' => 'Shambala',\n    ],\n    'ksf' => [\n        'isoName' => 'Bafia',\n        'nativeName' => 'Bafia',\n    ],\n    'ksh' => [\n        'isoName' => 'Colognian',\n        'nativeName' => 'Colognian',\n    ],\n    'lag' => [\n        'isoName' => 'Langi',\n        'nativeName' => 'Langi',\n    ],\n    'lij' => [\n        'isoName' => 'Ligurian',\n        'nativeName' => 'Ligurian',\n    ],\n    'lkt' => [\n        'isoName' => 'Lakota',\n        'nativeName' => 'Lakota',\n    ],\n    'lrc' => [\n        'isoName' => 'Northern Luri',\n        'nativeName' => 'Northern Luri',\n    ],\n    'luo' => [\n        'isoName' => 'Luo',\n        'nativeName' => 'Luo',\n    ],\n    'luy' => [\n        'isoName' => 'Luyia',\n        'nativeName' => 'Luyia',\n    ],\n    'lzh' => [\n        'isoName' => 'Literary Chinese',\n        'nativeName' => 'Literary Chinese',\n    ],\n    'mag' => [\n        'isoName' => 'Magahi',\n        'nativeName' => 'Magahi',\n    ],\n    'mai' => [\n        'isoName' => 'Maithili',\n        'nativeName' => 'Maithili',\n    ],\n    'mas' => [\n        'isoName' => 'Masai',\n        'nativeName' => 'Masai',\n    ],\n    'mer' => [\n        'isoName' => 'Meru',\n        'nativeName' => 'Meru',\n    ],\n    'mfe' => [\n        'isoName' => 'Morisyen',\n        'nativeName' => 'Morisyen',\n    ],\n    'mgh' => [\n        'isoName' => 'Makhuwa-Meetto',\n        'nativeName' => 'Makhuwa-Meetto',\n    ],\n    'mgo' => [\n        'isoName' => 'Metaʼ',\n        'nativeName' => 'Metaʼ',\n    ],\n    'mhr' => [\n        'isoName' => 'Eastern Mari',\n        'nativeName' => 'Eastern Mari',\n    ],\n    'miq' => [\n        'isoName' => 'Mískito',\n        'nativeName' => 'Mískito',\n    ],\n    'mjw' => [\n        'isoName' => 'Karbi',\n        'nativeName' => 'Karbi',\n    ],\n    'mni' => [\n        'isoName' => 'Manipuri',\n        'nativeName' => 'Manipuri',\n    ],\n    'mua' => [\n        'isoName' => 'Mundang',\n        'nativeName' => 'Mundang',\n    ],\n    'mzn' => [\n        'isoName' => 'Mazanderani',\n        'nativeName' => 'Mazanderani',\n    ],\n    'nan' => [\n        'isoName' => 'Min Nan Chinese',\n        'nativeName' => 'Min Nan Chinese',\n    ],\n    'naq' => [\n        'isoName' => 'Nama',\n        'nativeName' => 'Nama',\n    ],\n    'nds' => [\n        'isoName' => 'Low German',\n        'nativeName' => 'Low German',\n    ],\n    'nhn' => [\n        'isoName' => 'Central Nahuatl',\n        'nativeName' => 'Central Nahuatl',\n    ],\n    'niu' => [\n        'isoName' => 'Niuean',\n        'nativeName' => 'Niuean',\n    ],\n    'nmg' => [\n        'isoName' => 'Kwasio',\n        'nativeName' => 'Kwasio',\n    ],\n    'nnh' => [\n        'isoName' => 'Ngiemboon',\n        'nativeName' => 'Ngiemboon',\n    ],\n    'nso' => [\n        'isoName' => 'Northern Sotho',\n        'nativeName' => 'Northern Sotho',\n    ],\n    'nus' => [\n        'isoName' => 'Nuer',\n        'nativeName' => 'Nuer',\n    ],\n    'nyn' => [\n        'isoName' => 'Nyankole',\n        'nativeName' => 'Nyankole',\n    ],\n    'pap' => [\n        'isoName' => 'Papiamento',\n        'nativeName' => 'Papiamento',\n    ],\n    'prg' => [\n        'isoName' => 'Prussian',\n        'nativeName' => 'Prussian',\n    ],\n    'quz' => [\n        'isoName' => 'Cusco Quechua',\n        'nativeName' => 'Cusco Quechua',\n    ],\n    'raj' => [\n        'isoName' => 'Rajasthani',\n        'nativeName' => 'Rajasthani',\n    ],\n    'rof' => [\n        'isoName' => 'Rombo',\n        'nativeName' => 'Rombo',\n    ],\n    'rwk' => [\n        'isoName' => 'Rwa',\n        'nativeName' => 'Rwa',\n    ],\n    'sah' => [\n        'isoName' => 'Sakha',\n        'nativeName' => 'Sakha',\n    ],\n    'saq' => [\n        'isoName' => 'Samburu',\n        'nativeName' => 'Samburu',\n    ],\n    'sat' => [\n        'isoName' => 'Santali',\n        'nativeName' => 'Santali',\n    ],\n    'sbp' => [\n        'isoName' => 'Sangu',\n        'nativeName' => 'Sangu',\n    ],\n    'scr' => [\n        'isoName' => 'Serbo Croatian',\n        'nativeName' => 'Serbo Croatian',\n    ],\n    'seh' => [\n        'isoName' => 'Sena',\n        'nativeName' => 'Sena',\n    ],\n    'ses' => [\n        'isoName' => 'Koyraboro Senni',\n        'nativeName' => 'Koyraboro Senni',\n    ],\n    'sgs' => [\n        'isoName' => 'Samogitian',\n        'nativeName' => 'Samogitian',\n    ],\n    'shi' => [\n        'isoName' => 'Tachelhit',\n        'nativeName' => 'Tachelhit',\n    ],\n    'shn' => [\n        'isoName' => 'Shan',\n        'nativeName' => 'Shan',\n    ],\n    'shs' => [\n        'isoName' => 'Shuswap',\n        'nativeName' => 'Shuswap',\n    ],\n    'sid' => [\n        'isoName' => 'Sidamo',\n        'nativeName' => 'Sidamo',\n    ],\n    'smn' => [\n        'isoName' => 'Inari Sami',\n        'nativeName' => 'Inari Sami',\n    ],\n    'szl' => [\n        'isoName' => 'Silesian',\n        'nativeName' => 'Silesian',\n    ],\n    'tcy' => [\n        'isoName' => 'Tulu',\n        'nativeName' => 'Tulu',\n    ],\n    'teo' => [\n        'isoName' => 'Teso',\n        'nativeName' => 'Teso',\n    ],\n    'tet' => [\n        'isoName' => 'Tetum',\n        'nativeName' => 'Tetum',\n    ],\n    'the' => [\n        'isoName' => 'Chitwania Tharu',\n        'nativeName' => 'Chitwania Tharu',\n    ],\n    'tig' => [\n        'isoName' => 'Tigre',\n        'nativeName' => 'Tigre',\n    ],\n    'tlh' => [\n        'isoName' => 'Klingon',\n        'nativeName' => 'tlhIngan Hol',\n    ],\n    'tpi' => [\n        'isoName' => 'Tok Pisin',\n        'nativeName' => 'Tok Pisin',\n    ],\n    'twq' => [\n        'isoName' => 'Tasawaq',\n        'nativeName' => 'Tasawaq',\n    ],\n    'tzl' => [\n        'isoName' => 'Talossan',\n        'nativeName' => 'Talossan',\n    ],\n    'tzm' => [\n        'isoName' => 'Tamazight, Central Atlas',\n        'nativeName' => 'ⵜⵎⴰⵣⵉⵖⵜ',\n    ],\n    'unm' => [\n        'isoName' => 'Unami',\n        'nativeName' => 'Unami',\n    ],\n    'vai' => [\n        'isoName' => 'Vai',\n        'nativeName' => 'Vai',\n    ],\n    'vun' => [\n        'isoName' => 'Vunjo',\n        'nativeName' => 'Vunjo',\n    ],\n    'wae' => [\n        'isoName' => 'Walser',\n        'nativeName' => 'Walser',\n    ],\n    'wal' => [\n        'isoName' => 'Wolaytta',\n        'nativeName' => 'Wolaytta',\n    ],\n    'xog' => [\n        'isoName' => 'Soga',\n        'nativeName' => 'Soga',\n    ],\n    'yav' => [\n        'isoName' => 'Yangben',\n        'nativeName' => 'Yangben',\n    ],\n    'yue' => [\n        'isoName' => 'Cantonese',\n        'nativeName' => 'Cantonese',\n    ],\n    'yuw' => [\n        'isoName' => 'Yau (Morobe Province)',\n        'nativeName' => 'Yau (Morobe Province)',\n    ],\n    'zgh' => [\n        'isoName' => 'Standard Moroccan Tamazight',\n        'nativeName' => 'Standard Moroccan Tamazight',\n    ],\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/List/regions.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * ISO 3166-2\n */\nreturn [\n    'AD' => 'Andorra',\n    'AE' => 'United Arab Emirates',\n    'AF' => 'Afghanistan',\n    'AG' => 'Antigua and Barbuda',\n    'AI' => 'Anguilla',\n    'AL' => 'Albania',\n    'AM' => 'Armenia',\n    'AO' => 'Angola',\n    'AQ' => 'Antarctica',\n    'AR' => 'Argentina',\n    'AS' => 'American Samoa',\n    'AT' => 'Austria',\n    'AU' => 'Australia',\n    'AW' => 'Aruba',\n    'AX' => 'Åland Islands',\n    'AZ' => 'Azerbaijan',\n    'BA' => 'Bosnia and Herzegovina',\n    'BB' => 'Barbados',\n    'BD' => 'Bangladesh',\n    'BE' => 'Belgium',\n    'BF' => 'Burkina Faso',\n    'BG' => 'Bulgaria',\n    'BH' => 'Bahrain',\n    'BI' => 'Burundi',\n    'BJ' => 'Benin',\n    'BL' => 'Saint Barthélemy',\n    'BM' => 'Bermuda',\n    'BN' => 'Brunei Darussalam',\n    'BO' => 'Bolivia (Plurinational State of)',\n    'BQ' => 'Bonaire, Sint Eustatius and Saba',\n    'BR' => 'Brazil',\n    'BS' => 'Bahamas',\n    'BT' => 'Bhutan',\n    'BV' => 'Bouvet Island',\n    'BW' => 'Botswana',\n    'BY' => 'Belarus',\n    'BZ' => 'Belize',\n    'CA' => 'Canada',\n    'CC' => 'Cocos (Keeling) Islands',\n    'CD' => 'Congo, Democratic Republic of the',\n    'CF' => 'Central African Republic',\n    'CG' => 'Congo',\n    'CH' => 'Switzerland',\n    'CI' => 'Côte d\\'Ivoire',\n    'CK' => 'Cook Islands',\n    'CL' => 'Chile',\n    'CM' => 'Cameroon',\n    'CN' => 'China',\n    'CO' => 'Colombia',\n    'CR' => 'Costa Rica',\n    'CU' => 'Cuba',\n    'CV' => 'Cabo Verde',\n    'CW' => 'Curaçao',\n    'CX' => 'Christmas Island',\n    'CY' => 'Cyprus',\n    'CZ' => 'Czechia',\n    'DE' => 'Germany',\n    'DJ' => 'Djibouti',\n    'DK' => 'Denmark',\n    'DM' => 'Dominica',\n    'DO' => 'Dominican Republic',\n    'DZ' => 'Algeria',\n    'EC' => 'Ecuador',\n    'EE' => 'Estonia',\n    'EG' => 'Egypt',\n    'EH' => 'Western Sahara',\n    'ER' => 'Eritrea',\n    'ES' => 'Spain',\n    'ET' => 'Ethiopia',\n    'FI' => 'Finland',\n    'FJ' => 'Fiji',\n    'FK' => 'Falkland Islands (Malvinas)',\n    'FM' => 'Micronesia (Federated States of)',\n    'FO' => 'Faroe Islands',\n    'FR' => 'France',\n    'GA' => 'Gabon',\n    'GB' => 'United Kingdom of Great Britain and Northern Ireland',\n    'GD' => 'Grenada',\n    'GE' => 'Georgia',\n    'GF' => 'French Guiana',\n    'GG' => 'Guernsey',\n    'GH' => 'Ghana',\n    'GI' => 'Gibraltar',\n    'GL' => 'Greenland',\n    'GM' => 'Gambia',\n    'GN' => 'Guinea',\n    'GP' => 'Guadeloupe',\n    'GQ' => 'Equatorial Guinea',\n    'GR' => 'Greece',\n    'GS' => 'South Georgia and the South Sandwich Islands',\n    'GT' => 'Guatemala',\n    'GU' => 'Guam',\n    'GW' => 'Guinea-Bissau',\n    'GY' => 'Guyana',\n    'HK' => 'Hong Kong',\n    'HM' => 'Heard Island and McDonald Islands',\n    'HN' => 'Honduras',\n    'HR' => 'Croatia',\n    'HT' => 'Haiti',\n    'HU' => 'Hungary',\n    'ID' => 'Indonesia',\n    'IE' => 'Ireland',\n    'IL' => 'Israel',\n    'IM' => 'Isle of Man',\n    'IN' => 'India',\n    'IO' => 'British Indian Ocean Territory',\n    'IQ' => 'Iraq',\n    'IR' => 'Iran (Islamic Republic of)',\n    'IS' => 'Iceland',\n    'IT' => 'Italy',\n    'JE' => 'Jersey',\n    'JM' => 'Jamaica',\n    'JO' => 'Jordan',\n    'JP' => 'Japan',\n    'KE' => 'Kenya',\n    'KG' => 'Kyrgyzstan',\n    'KH' => 'Cambodia',\n    'KI' => 'Kiribati',\n    'KM' => 'Comoros',\n    'KN' => 'Saint Kitts and Nevis',\n    'KP' => 'Korea (Democratic People\\'s Republic of)',\n    'KR' => 'Korea, Republic of',\n    'KW' => 'Kuwait',\n    'KY' => 'Cayman Islands',\n    'KZ' => 'Kazakhstan',\n    'LA' => 'Lao People\\'s Democratic Republic',\n    'LB' => 'Lebanon',\n    'LC' => 'Saint Lucia',\n    'LI' => 'Liechtenstein',\n    'LK' => 'Sri Lanka',\n    'LR' => 'Liberia',\n    'LS' => 'Lesotho',\n    'LT' => 'Lithuania',\n    'LU' => 'Luxembourg',\n    'LV' => 'Latvia',\n    'LY' => 'Libya',\n    'MA' => 'Morocco',\n    'MC' => 'Monaco',\n    'MD' => 'Moldova, Republic of',\n    'ME' => 'Montenegro',\n    'MF' => 'Saint Martin (French part)',\n    'MG' => 'Madagascar',\n    'MH' => 'Marshall Islands',\n    'MK' => 'Macedonia, the former Yugoslav Republic of',\n    'ML' => 'Mali',\n    'MM' => 'Myanmar',\n    'MN' => 'Mongolia',\n    'MO' => 'Macao',\n    'MP' => 'Northern Mariana Islands',\n    'MQ' => 'Martinique',\n    'MR' => 'Mauritania',\n    'MS' => 'Montserrat',\n    'MT' => 'Malta',\n    'MU' => 'Mauritius',\n    'MV' => 'Maldives',\n    'MW' => 'Malawi',\n    'MX' => 'Mexico',\n    'MY' => 'Malaysia',\n    'MZ' => 'Mozambique',\n    'NA' => 'Namibia',\n    'NC' => 'New Caledonia',\n    'NE' => 'Niger',\n    'NF' => 'Norfolk Island',\n    'NG' => 'Nigeria',\n    'NI' => 'Nicaragua',\n    'NL' => 'Netherlands',\n    'NO' => 'Norway',\n    'NP' => 'Nepal',\n    'NR' => 'Nauru',\n    'NU' => 'Niue',\n    'NZ' => 'New Zealand',\n    'OM' => 'Oman',\n    'PA' => 'Panama',\n    'PE' => 'Peru',\n    'PF' => 'French Polynesia',\n    'PG' => 'Papua New Guinea',\n    'PH' => 'Philippines',\n    'PK' => 'Pakistan',\n    'PL' => 'Poland',\n    'PM' => 'Saint Pierre and Miquelon',\n    'PN' => 'Pitcairn',\n    'PR' => 'Puerto Rico',\n    'PS' => 'Palestine, State of',\n    'PT' => 'Portugal',\n    'PW' => 'Palau',\n    'PY' => 'Paraguay',\n    'QA' => 'Qatar',\n    'RE' => 'Réunion',\n    'RO' => 'Romania',\n    'RS' => 'Serbia',\n    'RU' => 'Russian Federation',\n    'RW' => 'Rwanda',\n    'SA' => 'Saudi Arabia',\n    'SB' => 'Solomon Islands',\n    'SC' => 'Seychelles',\n    'SD' => 'Sudan',\n    'SE' => 'Sweden',\n    'SG' => 'Singapore',\n    'SH' => 'Saint Helena, Ascension and Tristan da Cunha',\n    'SI' => 'Slovenia',\n    'SJ' => 'Svalbard and Jan Mayen',\n    'SK' => 'Slovakia',\n    'SL' => 'Sierra Leone',\n    'SM' => 'San Marino',\n    'SN' => 'Senegal',\n    'SO' => 'Somalia',\n    'SR' => 'Suriname',\n    'SS' => 'South Sudan',\n    'ST' => 'Sao Tome and Principe',\n    'SV' => 'El Salvador',\n    'SX' => 'Sint Maarten (Dutch part)',\n    'SY' => 'Syrian Arab Republic',\n    'SZ' => 'Eswatini',\n    'TC' => 'Turks and Caicos Islands',\n    'TD' => 'Chad',\n    'TF' => 'French Southern Territories',\n    'TG' => 'Togo',\n    'TH' => 'Thailand',\n    'TJ' => 'Tajikistan',\n    'TK' => 'Tokelau',\n    'TL' => 'Timor-Leste',\n    'TM' => 'Turkmenistan',\n    'TN' => 'Tunisia',\n    'TO' => 'Tonga',\n    'TR' => 'Turkey',\n    'TT' => 'Trinidad and Tobago',\n    'TV' => 'Tuvalu',\n    'TW' => 'Taiwan, Province of China',\n    'TZ' => 'Tanzania, United Republic of',\n    'UA' => 'Ukraine',\n    'UG' => 'Uganda',\n    'UM' => 'United States Minor Outlying Islands',\n    'US' => 'United States of America',\n    'UY' => 'Uruguay',\n    'UZ' => 'Uzbekistan',\n    'VA' => 'Holy See',\n    'VC' => 'Saint Vincent and the Grenadines',\n    'VE' => 'Venezuela (Bolivarian Republic of)',\n    'VG' => 'Virgin Islands (British)',\n    'VI' => 'Virgin Islands (U.S.)',\n    'VN' => 'Viet Nam',\n    'VU' => 'Vanuatu',\n    'WF' => 'Wallis and Futuna',\n    'WS' => 'Samoa',\n    'YE' => 'Yemen',\n    'YT' => 'Mayotte',\n    'ZA' => 'South Africa',\n    'ZM' => 'Zambia',\n    'ZW' => 'Zimbabwe',\n];\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse InvalidArgumentException;\n\n/**\n * Trait Boundaries.\n *\n * startOf, endOf and derived method for each unit.\n *\n * Depends on the following properties:\n *\n * @property int $year\n * @property int $month\n * @property int $daysInMonth\n * @property int $quarter\n *\n * Depends on the following methods:\n *\n * @method $this setTime(int $hour, int $minute, int $second = 0, int $microseconds = 0)\n * @method $this setDate(int $year, int $month, int $day)\n * @method $this addMonths(int $value = 1)\n */\ntrait Boundaries\n{\n    /**\n     * Resets the time to 00:00:00 start of day\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfDay()\n    {\n        return $this->setTime(0, 0, 0, 0);\n    }\n\n    /**\n     * Resets the time to 23:59:59.999999 end of day\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfDay()\n    {\n        return $this->setTime(static::HOURS_PER_DAY - 1, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);\n    }\n\n    /**\n     * Resets the date to the first day of the month and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMonth()\n    {\n        return $this->setDate($this->year, $this->month, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the month and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMonth()\n    {\n        return $this->setDate($this->year, $this->month, $this->daysInMonth)->endOfDay();\n    }\n\n    /**\n     * Resets the date to the first day of the quarter and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfQuarter()\n    {\n        $month = ($this->quarter - 1) * static::MONTHS_PER_QUARTER + 1;\n\n        return $this->setDate($this->year, $month, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the quarter and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfQuarter()\n    {\n        return $this->startOfQuarter()->addMonths(static::MONTHS_PER_QUARTER - 1)->endOfMonth();\n    }\n\n    /**\n     * Resets the date to the first day of the year and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfYear()\n    {\n        return $this->setDate($this->year, 1, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the year and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfYear()\n    {\n        return $this->setDate($this->year, 12, 31)->endOfDay();\n    }\n\n    /**\n     * Resets the date to the first day of the decade and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfDecade()\n    {\n        $year = $this->year - $this->year % static::YEARS_PER_DECADE;\n\n        return $this->setDate($year, 1, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the decade and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfDecade()\n    {\n        $year = $this->year - $this->year % static::YEARS_PER_DECADE + static::YEARS_PER_DECADE - 1;\n\n        return $this->setDate($year, 12, 31)->endOfDay();\n    }\n\n    /**\n     * Resets the date to the first day of the century and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfCentury()\n    {\n        $year = $this->year - ($this->year - 1) % static::YEARS_PER_CENTURY;\n\n        return $this->setDate($year, 1, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the century and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfCentury()\n    {\n        $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_CENTURY + static::YEARS_PER_CENTURY;\n\n        return $this->setDate($year, 12, 31)->endOfDay();\n    }\n\n    /**\n     * Resets the date to the first day of the century and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMillennium()\n    {\n        $year = $this->year - ($this->year - 1) % static::YEARS_PER_MILLENNIUM;\n\n        return $this->setDate($year, 1, 1)->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of the century and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMillennium()\n    {\n        $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_MILLENNIUM + static::YEARS_PER_MILLENNIUM;\n\n        return $this->setDate($year, 12, 31)->endOfDay();\n    }\n\n    /**\n     * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . \"\\n\";\n     * ```\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return static\n     */\n    public function startOfWeek($weekStartsAt = null)\n    {\n        $date = $this;\n        while ($date->dayOfWeek !== ($weekStartsAt ?? $this->firstWeekDay)) {\n            $date = $date->subDay();\n        }\n\n        return $date->startOfDay();\n    }\n\n    /**\n     * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . \"\\n\";\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . \"\\n\";\n     * ```\n     *\n     * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week\n     *\n     * @return static\n     */\n    public function endOfWeek($weekEndsAt = null)\n    {\n        $date = $this;\n        while ($date->dayOfWeek !== ($weekEndsAt ?? $this->lastWeekDay)) {\n            $date = $date->addDay();\n        }\n\n        return $date->endOfDay();\n    }\n\n    /**\n     * Modify to start of current hour, minutes and seconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfHour()\n    {\n        return $this->setTime($this->hour, 0, 0, 0);\n    }\n\n    /**\n     * Modify to end of current hour, minutes and seconds become 59\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfHour()\n    {\n        return $this->setTime($this->hour, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);\n    }\n\n    /**\n     * Modify to start of current minute, seconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute();\n     * ```\n     *\n     * @return static\n     */\n    public function startOfMinute()\n    {\n        return $this->setTime($this->hour, $this->minute, 0, 0);\n    }\n\n    /**\n     * Modify to end of current minute, seconds become 59\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute();\n     * ```\n     *\n     * @return static\n     */\n    public function endOfMinute()\n    {\n        return $this->setTime($this->hour, $this->minute, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);\n    }\n\n    /**\n     * Modify to start of current second, microseconds become 0\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOfSecond()\n     *   ->format('H:i:s.u');\n     * ```\n     *\n     * @return static\n     */\n    public function startOfSecond()\n    {\n        return $this->setTime($this->hour, $this->minute, $this->second, 0);\n    }\n\n    /**\n     * Modify to end of current second, microseconds become 999999\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->endOfSecond()\n     *   ->format('H:i:s.u');\n     * ```\n     *\n     * @return static\n     */\n    public function endOfSecond()\n    {\n        return $this->setTime($this->hour, $this->minute, $this->second, static::MICROSECONDS_PER_SECOND - 1);\n    }\n\n    /**\n     * Modify to start of current given unit.\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOf('month')\n     *   ->endOf('week', Carbon::FRIDAY);\n     * ```\n     *\n     * @param string            $unit\n     * @param array<int, mixed> $params\n     *\n     * @return static\n     */\n    public function startOf($unit, ...$params)\n    {\n        $ucfUnit = ucfirst(static::singularUnit($unit));\n        $method = \"startOf$ucfUnit\";\n        if (!method_exists($this, $method)) {\n            throw new InvalidArgumentException(\"Unknown unit '$unit'\");\n        }\n\n        return $this->$method(...$params);\n    }\n\n    /**\n     * Modify to end of current given unit.\n     *\n     * @example\n     * ```\n     * echo Carbon::parse('2018-07-25 12:45:16.334455')\n     *   ->startOf('month')\n     *   ->endOf('week', Carbon::FRIDAY);\n     * ```\n     *\n     * @param string            $unit\n     * @param array<int, mixed> $params\n     *\n     * @return static\n     */\n    public function endOf($unit, ...$params)\n    {\n        $ucfUnit = ucfirst(static::singularUnit($unit));\n        $method = \"endOf$ucfUnit\";\n        if (!method_exists($this, $method)) {\n            throw new InvalidArgumentException(\"Unknown unit '$unit'\");\n        }\n\n        return $this->$method(...$params);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\nuse DateTimeInterface;\nuse InvalidArgumentException;\n\n/**\n * Trait Comparison.\n *\n * Comparison utils and testers. All the following methods return booleans.\n * nowWithSameTz\n *\n * Depends on the following methods:\n *\n * @method CarbonInterface        copy()\n * @method CarbonInterface        nowWithSameTz()\n * @method static CarbonInterface yesterday($timezone = null)\n * @method static CarbonInterface tomorrow($timezone = null)\n */\ntrait Comparison\n{\n    /**\n     * Determines if the instance is equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see equalTo()\n     *\n     * @return bool\n     */\n    public function eq($date): bool\n    {\n        return $this->equalTo($date);\n    }\n\n    /**\n     * Determines if the instance is equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function equalTo($date): bool\n    {\n        return $this == $date;\n    }\n\n    /**\n     * Determines if the instance is not equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see notEqualTo()\n     *\n     * @return bool\n     */\n    public function ne($date): bool\n    {\n        return $this->notEqualTo($date);\n    }\n\n    /**\n     * Determines if the instance is not equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function notEqualTo($date): bool\n    {\n        return !$this->equalTo($date);\n    }\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThan()\n     *\n     * @return bool\n     */\n    public function gt($date): bool\n    {\n        return $this->greaterThan($date);\n    }\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function greaterThan($date): bool\n    {\n        return $this > $date;\n    }\n\n    /**\n     * Determines if the instance is greater (after) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThan()\n     *\n     * @return bool\n     */\n    public function isAfter($date): bool\n    {\n        return $this->greaterThan($date);\n    }\n\n    /**\n     * Determines if the instance is greater (after) than or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see greaterThanOrEqualTo()\n     *\n     * @return bool\n     */\n    public function gte($date): bool\n    {\n        return $this->greaterThanOrEqualTo($date);\n    }\n\n    /**\n     * Determines if the instance is greater (after) than or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function greaterThanOrEqualTo($date): bool\n    {\n        return $this >= $date;\n    }\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThan()\n     *\n     * @return bool\n     */\n    public function lt($date): bool\n    {\n        return $this->lessThan($date);\n    }\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function lessThan($date): bool\n    {\n        return $this < $date;\n    }\n\n    /**\n     * Determines if the instance is less (before) than another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThan()\n     *\n     * @return bool\n     */\n    public function isBefore($date): bool\n    {\n        return $this->lessThan($date);\n    }\n\n    /**\n     * Determines if the instance is less (before) or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see lessThanOrEqualTo()\n     *\n     * @return bool\n     */\n    public function lte($date): bool\n    {\n        return $this->lessThanOrEqualTo($date);\n    }\n\n    /**\n     * Determines if the instance is less (before) or equal to another\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return bool\n     */\n    public function lessThanOrEqualTo($date): bool\n    {\n        return $this <= $date;\n    }\n\n    /**\n     * Determines if the instance is between two others\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     * @param bool                                    $equal Indicates if an equal to comparison should be done\n     *\n     * @return bool\n     */\n    public function between($date1, $date2, $equal = true): bool\n    {\n        if ($date1->greaterThan($date2)) {\n            $temp = $date1;\n            $date1 = $date2;\n            $date2 = $temp;\n        }\n\n        if ($equal) {\n            return $this->greaterThanOrEqualTo($date1) && $this->lessThanOrEqualTo($date2);\n        }\n\n        return $this->greaterThan($date1) && $this->lessThan($date2);\n    }\n\n    /**\n     * Determines if the instance is between two others\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     * @param bool                                    $equal Indicates if an equal to comparison should be done\n     *\n     * @return bool\n     */\n    public function isBetween($date1, $date2, $equal = true): bool\n    {\n        return $this->between($date1, $date2, $equal);\n    }\n\n    /**\n     * Determines if the instance is a weekday.\n     *\n     * @return bool\n     */\n    public function isWeekday()\n    {\n        return !$this->isWeekend();\n    }\n\n    /**\n     * Determines if the instance is a weekend day.\n     *\n     * @return bool\n     */\n    public function isWeekend()\n    {\n        return in_array($this->dayOfWeek, static::$weekendDays);\n    }\n\n    /**\n     * Determines if the instance is yesterday.\n     *\n     * @return bool\n     */\n    public function isYesterday()\n    {\n        return $this->toDateString() === static::yesterday($this->getTimezone())->toDateString();\n    }\n\n    /**\n     * Determines if the instance is today.\n     *\n     * @return bool\n     */\n    public function isToday()\n    {\n        return $this->toDateString() === $this->nowWithSameTz()->toDateString();\n    }\n\n    /**\n     * Determines if the instance is tomorrow.\n     *\n     * @return bool\n     */\n    public function isTomorrow()\n    {\n        return $this->toDateString() === static::tomorrow($this->getTimezone())->toDateString();\n    }\n\n    /**\n     * Determines if the instance is in the future, ie. greater (after) than now.\n     *\n     * @return bool\n     */\n    public function isFuture()\n    {\n        return $this->greaterThan($this->nowWithSameTz());\n    }\n\n    /**\n     * Determines if the instance is in the past, ie. less (before) than now.\n     *\n     * @return bool\n     */\n    public function isPast()\n    {\n        return $this->lessThan($this->nowWithSameTz());\n    }\n\n    /**\n     * Determines if the instance is a leap year.\n     *\n     * @return bool\n     */\n    public function isLeapYear()\n    {\n        return $this->rawFormat('L') === '1';\n    }\n\n    /**\n     * Determines if the instance is a long year\n     *\n     * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates\n     *\n     * @return bool\n     */\n    public function isLongYear()\n    {\n        return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53;\n    }\n\n    /**\n     * Compares the formatted values of the two dates.\n     *\n     * @param string                                 $format date formats to compare.\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date   instance to compare with or null to use current day.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return bool\n     */\n    public function isSameAs($format, $date = null)\n    {\n        /** @var DateTimeInterface $date */\n        $date = $date ?: static::now($this->tz);\n\n        static::expectDateTime($date, 'null');\n\n        /* @var CarbonInterface $this */\n        return $this->rawFormat($format) === ($date instanceof self ? $date->rawFormat($format) : $date->format($format));\n    }\n\n    /**\n     * Determines if the instance is in the current unit given.\n     *\n     * @param string                                 $unit singular unit string\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date instance to compare with or null to use current day.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return bool\n     */\n    public function isSameUnit($unit, $date = null)\n    {\n        $units = [\n            // @call isSameUnit\n            'year' => 'Y',\n            // @call isSameUnit\n            'week' => 'o-W',\n            // @call isSameUnit\n            'day' => 'Y-m-d',\n            // @call isSameUnit\n            'hour' => 'Y-m-d H',\n            // @call isSameUnit\n            'minute' => 'Y-m-d H:i',\n            // @call isSameUnit\n            'second' => 'Y-m-d H:i:s',\n            // @call isSameUnit\n            'micro' => 'Y-m-d H:i:s.u',\n            // @call isSameUnit\n            'microsecond' => 'Y-m-d H:i:s.u',\n        ];\n\n        if (!isset($units[$unit])) {\n            if (isset($this->$unit)) {\n                $date = $date ? static::instance($date) : static::now($this->tz);\n\n                static::expectDateTime($date);\n\n                return $this->$unit === $date->$unit;\n            }\n\n            if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {\n                throw new InvalidArgumentException(\"Bad comparison unit: '$unit'\");\n            }\n\n            return false;\n        }\n\n        return $this->isSameAs($units[$unit], $date);\n    }\n\n    /**\n     * Determines if the instance is in the current unit given.\n     *\n     * @param string $unit The unit to test.\n     *\n     * @throws \\BadMethodCallException\n     *\n     * @return bool\n     */\n    public function isCurrentUnit($unit)\n    {\n        return $this->{'isSame'.ucfirst($unit)}();\n    }\n\n    /**\n     * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date       The instance to compare with or null to use current day.\n     * @param bool                                   $ofSameYear Check if it is the same month in the same year.\n     *\n     * @return bool\n     */\n    public function isSameQuarter($date = null, $ofSameYear = true)\n    {\n        $date = $date ? static::instance($date) : static::now($this->tz);\n\n        static::expectDateTime($date, 'null');\n\n        return $this->quarter === $date->quarter && (!$ofSameYear || $this->isSameYear($date));\n    }\n\n    /**\n     * Checks if the passed in date is in the same month as the instance´s month.\n     *\n     * Note that this defaults to only comparing the month while ignoring the year.\n     * To test if it is the same exact month of the same year, pass in true as the second parameter.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date       The instance to compare with or null to use the current date.\n     * @param bool                                   $ofSameYear Check if it is the same month in the same year.\n     *\n     * @return bool\n     */\n    public function isSameMonth($date = null, $ofSameYear = true)\n    {\n        return $this->isSameAs($ofSameYear ? 'Y-m' : 'm', $date);\n    }\n\n    /**\n     * Checks if this day is a specific day of the week.\n     *\n     * @param int $dayOfWeek\n     *\n     * @return bool\n     */\n    public function isDayOfWeek($dayOfWeek)\n    {\n        if (is_string($dayOfWeek) && defined($constant = static::class.'::'.strtoupper($dayOfWeek))) {\n            $dayOfWeek = constant($constant);\n        }\n\n        return $this->dayOfWeek === $dayOfWeek;\n    }\n\n    /**\n     * Check if its the birthday. Compares the date/month values of the two dates.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date The instance to compare with or null to use current day.\n     *\n     * @return bool\n     */\n    public function isBirthday($date = null)\n    {\n        return $this->isSameAs('md', $date);\n    }\n\n    /**\n     * Check if today is the last day of the Month\n     *\n     * @return bool\n     */\n    public function isLastOfMonth()\n    {\n        return $this->day === $this->daysInMonth;\n    }\n\n    /**\n     * Check if the instance is start of day / midnight.\n     *\n     * @param bool $checkMicroseconds check time at microseconds precision\n     *\n     * @return bool\n     */\n    public function isStartOfDay($checkMicroseconds = false)\n    {\n        /* @var CarbonInterface $this */\n        return $checkMicroseconds\n            ? $this->rawFormat('H:i:s.u') === '00:00:00.000000'\n            : $this->rawFormat('H:i:s') === '00:00:00';\n    }\n\n    /**\n     * Check if the instance is end of day.\n     *\n     * @param bool $checkMicroseconds check time at microseconds precision\n     *\n     * @return bool\n     */\n    public function isEndOfDay($checkMicroseconds = false)\n    {\n        /* @var CarbonInterface $this */\n        return $checkMicroseconds\n            ? $this->rawFormat('H:i:s.u') === '23:59:59.999999'\n            : $this->rawFormat('H:i:s') === '23:59:59';\n    }\n\n    /**\n     * Check if the instance is start of day / midnight.\n     *\n     * @return bool\n     */\n    public function isMidnight()\n    {\n        return $this->isStartOfDay();\n    }\n\n    /**\n     * Check if the instance is midday.\n     *\n     * @return bool\n     */\n    public function isMidday()\n    {\n        /* @var CarbonInterface $this */\n        return $this->rawFormat('G:i:s') === static::$midDayAt.':00:00';\n    }\n\n    /**\n     * Checks if the (date)time string is in a given format.\n     *\n     * @param string $date\n     * @param string $format\n     *\n     * @return bool\n     */\n    public static function hasFormat($date, $format)\n    {\n        try {\n            // Try to create a DateTime object. Throws an InvalidArgumentException if the provided time string\n            // doesn't match the format in any way.\n            static::rawCreateFromFormat($format, $date);\n\n            // createFromFormat() is known to handle edge cases silently.\n            // E.g. \"1975-5-1\" (Y-n-j) will still be parsed correctly when \"Y-m-d\" is supplied as the format.\n            // To ensure we're really testing against our desired format, perform an additional regex validation.\n\n            // Preg quote, but remove escaped backslashes since we'll deal with escaped characters in the format string.\n            $quotedFormat = str_replace('\\\\\\\\', '\\\\',\n                preg_quote($format, '/'));\n\n            // Build the regex string\n            $regex = '';\n            for ($i = 0; $i < strlen($quotedFormat); ++$i) {\n                // Backslash – the next character does not represent a date token so add it on as-is and continue.\n                // We're doing an extra ++$i here to increment the loop by 2.\n                if ($quotedFormat[$i] === '\\\\') {\n                    $regex .= '\\\\'.$quotedFormat[++$i];\n                    continue;\n                }\n\n                $regex .= strtr($quotedFormat[$i], static::$regexFormats);\n            }\n\n            return (bool) preg_match('/^'.$regex.'$/', $date);\n        } catch (InvalidArgumentException $e) {\n        }\n\n        return false;\n    }\n\n    /**\n     * Returns true if the current date matches the given string.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false\n     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true\n     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true\n     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false\n     * ```\n     *\n     * @param string $tester day name, month name, hour, date, etc. as string\n     *\n     * @return bool\n     */\n    public function is(string $tester)\n    {\n        $tester = trim($tester);\n\n        if (preg_match('/^\\d+$/', $tester)) {\n            return $this->year === intval($tester);\n        }\n\n        if (preg_match('/^\\d{3,}-\\d{1,2}$/', $tester)) {\n            return $this->isSameMonth(static::parse($tester));\n        }\n\n        if (preg_match('/^\\d{1,2}-\\d{1,2}$/', $tester)) {\n            return $this->isSameDay(static::parse($this->year.'-'.$tester));\n        }\n\n        $modifier = preg_replace('/(\\d)h$/i', '$1:00', $tester);\n\n        /* @var CarbonInterface $max */\n        $median = static::parse('5555-06-15 12:30:30.555555')->modify($modifier);\n        $current = $this->copy();\n        /* @var CarbonInterface $other */\n        $other = $this->copy()->modify($modifier);\n\n        if ($current->eq($other)) {\n            return true;\n        }\n\n        if (preg_match('/\\d:\\d{1,2}:\\d{1,2}$/', $tester)) {\n            $current = $current->startOfSecond();\n        } elseif (preg_match('/\\d:\\d{1,2}$/', $tester)) {\n            $current = $current->startOfMinute();\n        } elseif (preg_match('/\\d(h|am|pm)$/', $tester)) {\n            $current = $current->startOfHour();\n        } elseif (preg_match(\n            '/^(january|february|march|april|may|june|july|august|september|october|november|december)\\s+\\d+$/i',\n            $tester\n        )) {\n            $current = $current->startOfMonth();\n            $other = $other->startOfMonth();\n        } else {\n            $units = [\n                'month' => [1, 'year'],\n                'day' => [1, 'month'],\n                'hour' => [0, 'day'],\n                'minute' => [0, 'hour'],\n                'second' => [0, 'minute'],\n                'microsecond' => [0, 'second'],\n            ];\n\n            foreach ($units as $unit => [$minimum, $startUnit]) {\n                if ($median->$unit === $minimum) {\n                    $current = $current->startOf($startUnit);\n\n                    break;\n                }\n            }\n        }\n\n        return $current->eq($other);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Converter.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\Carbon;\nuse Carbon\\CarbonImmutable;\nuse Carbon\\CarbonInterface;\nuse Carbon\\CarbonInterval;\nuse Carbon\\CarbonPeriod;\nuse Closure;\nuse DateTime;\n\n/**\n * Trait Converter.\n *\n * Change date into different string formats and types and\n * handle the string cast.\n *\n * Depends on the following methods:\n *\n * @method Carbon|CarbonImmutable copy()\n */\ntrait Converter\n{\n    /**\n     * Format to use for __toString method when type juggling occurs.\n     *\n     * @var string|Closure|null\n     */\n    protected static $toStringFormat = null;\n\n    /**\n     * Reset the format used to the default when type juggling a Carbon instance to a string\n     *\n     * @return void\n     */\n    public static function resetToStringFormat()\n    {\n        static::setToStringFormat(null);\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and\n     *             use other method or custom format passed to format() method if you need to dump an other string\n     *             format.\n     *\n     * Set the default format used when type juggling a Carbon instance to a string\n     *\n     * @param string|Closure|null $format\n     *\n     * @return void\n     */\n    public static function setToStringFormat($format)\n    {\n        static::$toStringFormat = $format;\n    }\n\n    /**\n     * @see https://php.net/manual/en/datetime.format.php\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function format($format)\n    {\n        $function = $this->localFormatFunction ?: static::$formatFunction;\n\n        if (!$function) {\n            return $this->rawFormat($format);\n        }\n\n        if (is_string($function) && method_exists($this, $function)) {\n            $function = [$this, $function];\n        }\n\n        return $function(...func_get_args());\n    }\n\n    /**\n     * @see https://php.net/manual/en/datetime.format.php\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function rawFormat($format)\n    {\n        return parent::format($format);\n    }\n\n    /**\n     * Format the instance as a string using the set format\n     *\n     * @example\n     * ```\n     * echo Carbon::now(); // Carbon instances can be casted to string\n     * ```\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        $format = $this->localToStringFormat ?? static::$toStringFormat;\n\n        return $format instanceof Closure\n            ? $format($this)\n            : $this->rawFormat($format ?: (\n                defined('static::DEFAULT_TO_STRING_FORMAT')\n                    ? static::DEFAULT_TO_STRING_FORMAT\n                    : CarbonInterface::DEFAULT_TO_STRING_FORMAT\n            ));\n    }\n\n    /**\n     * Format the instance as date\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateString()\n    {\n        return $this->rawFormat('Y-m-d');\n    }\n\n    /**\n     * Format the instance as a readable date\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toFormattedDateString();\n     * ```\n     *\n     * @return string\n     */\n    public function toFormattedDateString()\n    {\n        return $this->rawFormat('M j, Y');\n    }\n\n    /**\n     * Format the instance as time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toTimeString()\n    {\n        return $this->rawFormat('H:i:s');\n    }\n\n    /**\n     * Format the instance as date and time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateTimeString()\n    {\n        return $this->rawFormat('Y-m-d H:i:s');\n    }\n\n    /**\n     * Format the instance as date and time T-separated with no timezone\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDateTimeLocalString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDateTimeLocalString()\n    {\n        return $this->rawFormat('Y-m-d\\TH:i:s');\n    }\n\n    /**\n     * Format the instance with day, date and time\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toDayDateTimeString();\n     * ```\n     *\n     * @return string\n     */\n    public function toDayDateTimeString()\n    {\n        return $this->rawFormat('D, M j, Y g:i A');\n    }\n\n    /**\n     * Format the instance as ATOM\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toAtomString();\n     * ```\n     *\n     * @return string\n     */\n    public function toAtomString()\n    {\n        return $this->rawFormat(DateTime::ATOM);\n    }\n\n    /**\n     * Format the instance as COOKIE\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toCookieString();\n     * ```\n     *\n     * @return string\n     */\n    public function toCookieString()\n    {\n        return $this->rawFormat(DateTime::COOKIE);\n    }\n\n    /**\n     * Format the instance as ISO8601\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toIso8601String();\n     * ```\n     *\n     * @return string\n     */\n    public function toIso8601String()\n    {\n        return $this->toAtomString();\n    }\n\n    /**\n     * Format the instance as RFC822\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc822String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc822String()\n    {\n        return $this->rawFormat(DateTime::RFC822);\n    }\n\n    /**\n     * Convert the instance to UTC and return as Zulu ISO8601\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toIso8601ZuluString();\n     * ```\n     *\n     * @return string\n     */\n    public function toIso8601ZuluString()\n    {\n        return $this->copy()->utc()->rawFormat('Y-m-d\\TH:i:s\\Z');\n    }\n\n    /**\n     * Format the instance as RFC850\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc850String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc850String()\n    {\n        return $this->rawFormat(DateTime::RFC850);\n    }\n\n    /**\n     * Format the instance as RFC1036\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc1036String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc1036String()\n    {\n        return $this->rawFormat(DateTime::RFC1036);\n    }\n\n    /**\n     * Format the instance as RFC1123\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc1123String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc1123String()\n    {\n        return $this->rawFormat(DateTime::RFC1123);\n    }\n\n    /**\n     * Format the instance as RFC2822\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc2822String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc2822String()\n    {\n        return $this->rawFormat(DateTime::RFC2822);\n    }\n\n    /**\n     * Format the instance as RFC3339\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc3339String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc3339String()\n    {\n        return $this->rawFormat(DateTime::RFC3339);\n    }\n\n    /**\n     * Format the instance as RSS\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRssString();\n     * ```\n     *\n     * @return string\n     */\n    public function toRssString()\n    {\n        return $this->rawFormat(DateTime::RSS);\n    }\n\n    /**\n     * Format the instance as W3C\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toW3cString();\n     * ```\n     *\n     * @return string\n     */\n    public function toW3cString()\n    {\n        return $this->rawFormat(DateTime::W3C);\n    }\n\n    /**\n     * Format the instance as RFC7231\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toRfc7231String();\n     * ```\n     *\n     * @return string\n     */\n    public function toRfc7231String()\n    {\n        return $this->copy()\n            ->setTimezone('GMT')\n            ->rawFormat(defined('static::RFC7231_FORMAT') ? static::RFC7231_FORMAT : CarbonInterface::RFC7231_FORMAT);\n    }\n\n    /**\n     * Get default array representation.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toArray());\n     * ```\n     *\n     * @return array\n     */\n    public function toArray()\n    {\n        return [\n            'year' => $this->year,\n            'month' => $this->month,\n            'day' => $this->day,\n            'dayOfWeek' => $this->dayOfWeek,\n            'dayOfYear' => $this->dayOfYear,\n            'hour' => $this->hour,\n            'minute' => $this->minute,\n            'second' => $this->second,\n            'micro' => $this->micro,\n            'timestamp' => $this->timestamp,\n            'formatted' => $this->rawFormat(defined('static::DEFAULT_TO_STRING_FORMAT') ? static::DEFAULT_TO_STRING_FORMAT : CarbonInterface::DEFAULT_TO_STRING_FORMAT),\n            'timezone' => $this->timezone,\n        ];\n    }\n\n    /**\n     * Get default object representation.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toObject());\n     * ```\n     *\n     * @return object\n     */\n    public function toObject()\n    {\n        return (object) $this->toArray();\n    }\n\n    /**\n     * Returns english human readable complete date string.\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->toString();\n     * ```\n     *\n     * @return string\n     */\n    public function toString()\n    {\n        return $this->copy()->locale('en')->isoFormat('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n    }\n\n    /**\n     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept:\n     * 1977-04-22T01:00:00-05:00).\n     *\n     * @example\n     * ```\n     * echo Carbon::now('America/Toronto')->toISOString() . \"\\n\";\n     * echo Carbon::now('America/Toronto')->toISOString(true) . \"\\n\";\n     * ```\n     *\n     * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC.\n     *\n     * @return null|string\n     */\n    public function toISOString($keepOffset = false)\n    {\n        if (!$this->isValid()) {\n            return null;\n        }\n\n        $yearFormat = $this->year < 0 || $this->year > 9999 ? 'YYYYYY' : 'YYYY';\n        $tzFormat = $keepOffset ? 'Z' : '[Z]';\n        $date = $keepOffset ? $this : $this->copy()->utc();\n\n        return $date->isoFormat(\"$yearFormat-MM-DD[T]HH:mm:ss.SSSSSS$tzFormat\");\n    }\n\n    /**\n     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone.\n     *\n     * @example\n     * ```\n     * echo Carbon::now('America/Toronto')->toJSON();\n     * ```\n     *\n     * @return null|string\n     */\n    public function toJSON()\n    {\n        return $this->toISOString();\n    }\n\n    /**\n     * Return native DateTime PHP object matching the current instance.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toDateTime());\n     * ```\n     *\n     * @return DateTime\n     */\n    public function toDateTime()\n    {\n        return new DateTime($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone());\n    }\n\n    /**\n     * @alias toDateTime\n     *\n     * Return native DateTime PHP object matching the current instance.\n     *\n     * @example\n     * ```\n     * var_dump(Carbon::now()->toDate());\n     * ```\n     *\n     * @return DateTime\n     */\n    public function toDate()\n    {\n        return $this->toDateTime();\n    }\n\n    /**\n     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).\n     *\n     * @param \\DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date\n     * @param int|\\DateInterval|string|null                  $interval period default interval or number of the given $unit\n     * @param string|null                                    $unit     if specified, $interval must be an integer\n     *\n     * @return CarbonPeriod\n     */\n    public function toPeriod($end = null, $interval = null, $unit = null)\n    {\n        if ($unit) {\n            $interval = CarbonInterval::make(\"$interval \".static::pluralUnit($unit));\n        }\n\n        $period = (new CarbonPeriod())->setDateClass(static::class)->setStartDate($this);\n\n        if ($interval) {\n            $period->setDateInterval($interval);\n        }\n\n        if ($end) {\n            $period->setEndDate($end);\n        }\n\n        return $period;\n    }\n\n    /**\n     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).\n     *\n     * @param \\DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date\n     * @param int|\\DateInterval|string|null                  $interval period default interval or number of the given $unit\n     * @param string|null                                    $unit     if specified, $interval must be an integer\n     *\n     * @return CarbonPeriod\n     */\n    public function range($end = null, $interval = null, $unit = null)\n    {\n        return $this->toPeriod($end, $interval, $unit);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Creator.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\Carbon;\nuse Carbon\\CarbonImmutable;\nuse Carbon\\CarbonInterface;\nuse Carbon\\CarbonTimeZone;\nuse Carbon\\Exceptions\\InvalidDateException;\nuse Carbon\\Translator;\nuse DateTimeInterface;\nuse Exception;\nuse InvalidArgumentException;\n\n/**\n * Trait Creator.\n *\n * Static creators.\n *\n * Depends on the following methods:\n *\n * @method static Carbon|CarbonImmutable getTestNow()\n */\ntrait Creator\n{\n    /**\n     * The errors that can occur.\n     *\n     * @var array\n     */\n    protected static $lastErrors;\n\n    /**\n     * Create a new Carbon instance.\n     *\n     * Please see the testing aids section (specifically static::setTestNow())\n     * for more on the possibility of this constructor returning a test instance.\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     */\n    public function __construct($time = null, $tz = null)\n    {\n        if (is_int($time)) {\n            $time = \"@$time\";\n        }\n\n        $originalTz = $tz;\n\n        // If the class has a test now set and we are trying to create a now()\n        // instance then override as required\n        $isNow = empty($time) || $time === 'now';\n\n        if (method_exists(static::class, 'hasTestNow') &&\n            method_exists(static::class, 'getTestNow') &&\n            static::hasTestNow() &&\n            ($isNow || static::hasRelativeKeywords($time))\n        ) {\n            static::mockConstructorParameters($time, $tz);\n        }\n\n        /** @var CarbonTimeZone $timezone */\n        $timezone = $this->autoDetectTimeZone($tz, $originalTz);\n\n        // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127\n        if (strpos((string) .1, '.') === false) {\n            $locale = setlocale(LC_NUMERIC, '0');\n            setlocale(LC_NUMERIC, 'C');\n        }\n\n        parent::__construct($time ?: 'now', $timezone);\n\n        if (isset($locale)) {\n            setlocale(LC_NUMERIC, $locale);\n        }\n\n        static::setLastErrors(parent::getLastErrors());\n    }\n\n    /**\n     * Create a Carbon instance from a DateTime one.\n     *\n     * @param \\DateTimeInterface $date\n     *\n     * @return static\n     */\n    public static function instance($date)\n    {\n        if ($date instanceof static) {\n            return clone $date;\n        }\n\n        static::expectDateTime($date);\n\n        $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone());\n\n        if ($date instanceof CarbonInterface || $date instanceof Options) {\n            $instance->settings($date->getSettings());\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create a carbon instance from a string.\n     *\n     * This is an alias for the constructor that allows better fluent syntax\n     * as it allows you to do Carbon::parse('Monday next week')->fn() rather\n     * than (new Carbon('Monday next week'))->fn().\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function rawParse($time = null, $tz = null)\n    {\n        if ($time instanceof DateTimeInterface) {\n            return static::instance($time);\n        }\n\n        try {\n            return new static($time, $tz);\n        } catch (Exception $exception) {\n            try {\n                return static::now($tz)->change($time);\n            } catch (Exception $ignored) {\n                throw $exception;\n            }\n        }\n    }\n\n    /**\n     * Create a carbon instance from a string.\n     *\n     * This is an alias for the constructor that allows better fluent syntax\n     * as it allows you to do Carbon::parse('Monday next week')->fn() rather\n     * than (new Carbon('Monday next week'))->fn().\n     *\n     * @param string|null               $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function parse($time = null, $tz = null)\n    {\n        $function = static::$parseFunction;\n\n        if (!$function) {\n            return static::rawParse($time, $tz);\n        }\n\n        if (is_string($function) && method_exists(static::class, $function)) {\n            $function = [static::class, $function];\n        }\n\n        return $function(...func_get_args());\n    }\n\n    /**\n     * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).\n     *\n     * @param string                    $time\n     * @param string                    $locale\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function parseFromLocale($time, $locale, $tz = null)\n    {\n        return static::rawParse(static::translateTimeString($time, $locale, 'en'), $tz);\n    }\n\n    /**\n     * Get a Carbon instance for the current date and time.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function now($tz = null)\n    {\n        return new static(null, $tz);\n    }\n\n    /**\n     * Create a Carbon instance for today.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function today($tz = null)\n    {\n        return static::rawParse('today', $tz);\n    }\n\n    /**\n     * Create a Carbon instance for tomorrow.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function tomorrow($tz = null)\n    {\n        return static::rawParse('tomorrow', $tz);\n    }\n\n    /**\n     * Create a Carbon instance for yesterday.\n     *\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function yesterday($tz = null)\n    {\n        return static::rawParse('yesterday', $tz);\n    }\n\n    /**\n     * Create a Carbon instance for the greatest supported date.\n     *\n     * @return static\n     */\n    public static function maxValue()\n    {\n        if (self::$PHPIntSize === 4) {\n            // 32 bit\n            return static::createFromTimestamp(PHP_INT_MAX); // @codeCoverageIgnore\n        }\n\n        // 64 bit\n        return static::create(9999, 12, 31, 23, 59, 59);\n    }\n\n    /**\n     * Create a Carbon instance for the lowest supported date.\n     *\n     * @return static\n     */\n    public static function minValue()\n    {\n        if (self::$PHPIntSize === 4) {\n            // 32 bit\n            return static::createFromTimestamp(~PHP_INT_MAX); // @codeCoverageIgnore\n        }\n\n        // 64 bit\n        return static::create(1, 1, 1, 0, 0, 0);\n    }\n\n    private static function assertBetween($unit, $value, $min, $max)\n    {\n        if (static::isStrictModeEnabled() && ($value < $min || $value > $max)) {\n            throw new InvalidArgumentException(\"$unit must be between $min and $max, $value given\");\n        }\n    }\n\n    /**\n     * Create a new Carbon instance from a specific date and time.\n     *\n     * If any of $year, $month or $day are set to null their now() values will\n     * be used.\n     *\n     * If $hour is null it will be set to its now() value and the default\n     * values for $minute and $second will be their now() values.\n     *\n     * If $hour is not null then the default values for $minute and $second\n     * will be 0.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)\n    {\n        if (is_string($year) && !is_numeric($year)) {\n            return static::parse($year, $tz);\n        }\n\n        $defaults = null;\n        $getDefault = function ($unit) use ($tz, &$defaults) {\n            if ($defaults === null) {\n                $now = static::hasTestNow() ? static::getTestNow() : static::now($tz);\n\n                $defaults = array_combine([\n                    'year',\n                    'month',\n                    'day',\n                    'hour',\n                    'minute',\n                    'second',\n                ], explode('-', $now->rawFormat('Y-n-j-G-i-s.u')));\n            }\n\n            return $defaults[$unit];\n        };\n\n        $year = $year === null ? $getDefault('year') : $year;\n        $month = $month === null ? $getDefault('month') : $month;\n        $day = $day === null ? $getDefault('day') : $day;\n        $hour = $hour === null ? $getDefault('hour') : $hour;\n        $minute = $minute === null ? $getDefault('minute') : $minute;\n        $second = (float) ($second === null ? $getDefault('second') : $second);\n\n        self::assertBetween('month', $month, 0, 99);\n        self::assertBetween('day', $day, 0, 99);\n        self::assertBetween('hour', $hour, 0, 99);\n        self::assertBetween('minute', $minute, 0, 99);\n        self::assertBetween('second', $second, 0, 99);\n\n        $fixYear = null;\n\n        if ($year < 0) {\n            $fixYear = $year;\n            $year = 0;\n        } elseif ($year > 9999) {\n            $fixYear = $year - 9999;\n            $year = 9999;\n        }\n\n        $second = ($second < 10 ? '0' : '').number_format($second, 6);\n        /** @var CarbonImmutable|Carbon $instance */\n        $instance = static::rawCreateFromFormat('!Y-n-j G:i:s.u', sprintf('%s-%s-%s %s:%02s:%02s', $year, $month, $day, $hour, $minute, $second), $tz);\n\n        if ($fixYear !== null) {\n            $instance = $instance->addYears($fixYear);\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create a new safe Carbon instance from a specific date and time.\n     *\n     * If any of $year, $month or $day are set to null their now() values will\n     * be used.\n     *\n     * If $hour is null it will be set to its now() value and the default\n     * values for $minute and $second will be their now() values.\n     *\n     * If $hour is not null then the default values for $minute and $second\n     * will be 0.\n     *\n     * If one of the set values is not valid, an \\InvalidArgumentException\n     * will be thrown.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\Carbon\\Exceptions\\InvalidDateException|\\InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)\n    {\n        $fields = static::getRangesByUnit();\n\n        foreach ($fields as $field => $range) {\n            if ($$field !== null && (!is_int($$field) || $$field < $range[0] || $$field > $range[1])) {\n                if (static::isStrictModeEnabled()) {\n                    throw new InvalidDateException($field, $$field);\n                }\n\n                return false;\n            }\n        }\n\n        $instance = static::create($year, $month, $day, $hour, $minute, $second, $tz);\n\n        foreach (array_reverse($fields) as $field => $range) {\n            if ($$field !== null && (!is_int($$field) || $$field !== $instance->$field)) {\n                if (static::isStrictModeEnabled()) {\n                    throw new InvalidDateException($field, $$field);\n                }\n\n                return false;\n            }\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Create a Carbon instance from just a date. The time portion is set to now.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromDate($year = null, $month = null, $day = null, $tz = null)\n    {\n        return static::create($year, $month, $day, null, null, null, $tz);\n    }\n\n    /**\n     * Create a Carbon instance from just a date. The time portion is set to midnight.\n     *\n     * @param int|null                  $year\n     * @param int|null                  $month\n     * @param int|null                  $day\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null)\n    {\n        return static::create($year, $month, $day, 0, 0, 0, $tz);\n    }\n\n    /**\n     * Create a Carbon instance from just a time. The date portion is set to today.\n     *\n     * @param int|null                  $hour\n     * @param int|null                  $minute\n     * @param int|null                  $second\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)\n    {\n        return static::create(null, null, null, $hour, $minute, $second, $tz);\n    }\n\n    /**\n     * Create a Carbon instance from a time string. The date portion is set to today.\n     *\n     * @param string                    $time\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function createFromTimeString($time, $tz = null)\n    {\n        return static::today($tz)->setTimeFromTimeString($time);\n    }\n\n    /**\n     * @param string                          $format     Datetime format\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $originalTz\n     *\n     * @return \\DateTimeInterface|false\n     */\n    private static function createFromFormatAndTimezone($format, $time, $originalTz)\n    {\n        // Work-around for https://bugs.php.net/bug.php?id=75577\n        // @codeCoverageIgnoreStart\n        if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) {\n            $format = str_replace('.v', '.u', $format);\n        }\n        // @codeCoverageIgnoreEnd\n\n        if ($originalTz === null) {\n            return parent::createFromFormat($format, \"$time\");\n        }\n\n        $tz = is_int($originalTz)\n            ? @timezone_name_from_abbr('', (int) ($originalTz * 3600), 1)\n            : $originalTz;\n\n        $tz = static::safeCreateDateTimeZone($tz, $originalTz);\n\n        if ($tz === false) {\n            return false;\n        }\n\n        return parent::createFromFormat($format, \"$time\", $tz);\n    }\n\n    /**\n     * Create a Carbon instance from a specific format.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function rawCreateFromFormat($format, $time, $tz = null)\n    {\n        if (preg_match('/(?<!\\\\\\\\)(?:\\\\\\\\{2})*(a|A)/', $format, $aMatches, PREG_OFFSET_CAPTURE) &&\n            preg_match('/(?<!\\\\\\\\)(?:\\\\\\\\{2})*(h|g|H|G)/', $format, $hMatches, PREG_OFFSET_CAPTURE) &&\n            $aMatches[1][1] < $hMatches[1][1] &&\n            preg_match('/(am|pm|AM|PM)/', $time)\n        ) {\n            $format = preg_replace('/^(.*)(?<!\\\\\\\\)((?:\\\\\\\\{2})*)(a|A)(.*)$/U', '$1$2$4 $3', $format);\n            $time = preg_replace('/^(.*)(am|pm|AM|PM)(.*)$/U', '$1$3 $2', $time);\n        }\n\n        // First attempt to create an instance, so that error messages are based on the unmodified format.\n        $date = self::createFromFormatAndTimezone($format, $time, $tz);\n        $lastErrors = parent::getLastErrors();\n\n        if (($mock = static::getTestNow()) && $date instanceof DateTimeInterface) {\n            // Set timezone from mock if custom timezone was neither given directly nor as a part of format.\n            // First let's skip the part that will be ignored by the parser.\n            $nonEscaped = '(?<!\\\\\\\\)(\\\\\\\\{2})*';\n\n            $nonIgnored = preg_replace(\"/^.*{$nonEscaped}!/s\", '', $format);\n\n            if ($tz === null && !preg_match(\"/{$nonEscaped}[eOPT]/\", $nonIgnored)) {\n                $tz = $mock->getTimezone();\n            }\n\n            // Set microseconds to zero to match behavior of DateTime::createFromFormat()\n            // See https://bugs.php.net/bug.php?id=74332\n            $mock = $mock->copy()->microsecond(0);\n\n            // Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag.\n            if (!preg_match(\"/{$nonEscaped}[!|]/\", $format)) {\n                $format = static::MOCK_DATETIME_FORMAT.' '.$format;\n                $time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time;\n            }\n\n            // Regenerate date from the modified format to base result on the mocked instance instead of now.\n            $date = self::createFromFormatAndTimezone($format, $time, $tz);\n        }\n\n        if ($date instanceof DateTimeInterface) {\n            $instance = static::instance($date);\n            $instance::setLastErrors($lastErrors);\n\n            return $instance;\n        }\n\n        if (static::isStrictModeEnabled()) {\n            throw new InvalidArgumentException(implode(PHP_EOL, $lastErrors['errors']));\n        }\n\n        return false;\n    }\n\n    /**\n     * Create a Carbon instance from a specific format.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromFormat($format, $time, $tz = null)\n    {\n        $function = static::$createFromFormatFunction;\n\n        if (!$function) {\n            return static::rawCreateFromFormat($format, $time, $tz);\n        }\n\n        if (is_string($function) && method_exists(static::class, $function)) {\n            $function = [static::class, $function];\n        }\n\n        return $function(...func_get_args());\n    }\n\n    /**\n     * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).\n     *\n     * @param string                                             $format     Datetime format\n     * @param string                                             $time\n     * @param \\DateTimeZone|string|false|null                    $tz         optional timezone\n     * @param string|null                                        $locale     locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use)\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator optional custom translator to use for macro-formats\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)\n    {\n        $format = preg_replace_callback('/(?<!\\\\\\\\)(\\\\\\\\{2})*(LTS|LT|[Ll]{1,4})/', function ($match) use ($locale, $translator) {\n            [$code] = $match;\n\n            static $formats = null;\n\n            if ($formats === null) {\n                $translator = $translator ?: Translator::get($locale);\n\n                $formats = [\n                    'LT' => static::getTranslationMessageWith($translator, 'formats.LT', $locale, 'h:mm A'),\n                    'LTS' => static::getTranslationMessageWith($translator, 'formats.LTS', $locale, 'h:mm:ss A'),\n                    'L' => static::getTranslationMessageWith($translator, 'formats.L', $locale, 'MM/DD/YYYY'),\n                    'LL' => static::getTranslationMessageWith($translator, 'formats.LL', $locale, 'MMMM D, YYYY'),\n                    'LLL' => static::getTranslationMessageWith($translator, 'formats.LLL', $locale, 'MMMM D, YYYY h:mm A'),\n                    'LLLL' => static::getTranslationMessageWith($translator, 'formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'),\n                ];\n            }\n\n            return $formats[$code] ?? preg_replace_callback(\n                '/MMMM|MM|DD|dddd/',\n                function ($code) {\n                    return mb_substr($code[0], 1);\n                },\n                $formats[strtoupper($code)] ?? ''\n            );\n        }, $format);\n\n        $format = preg_replace_callback('/(?<!\\\\\\\\)(\\\\\\\\{2})*('.CarbonInterface::ISO_FORMAT_REGEXP.'|[A-Za-z])/', function ($match) {\n            [$code] = $match;\n\n            static $replacements = null;\n\n            if ($replacements === null) {\n                $replacements = [\n                    'OD' => 'd',\n                    'OM' => 'M',\n                    'OY' => 'Y',\n                    'OH' => 'G',\n                    'Oh' => 'g',\n                    'Om' => 'i',\n                    'Os' => 's',\n                    'D' => 'd',\n                    'DD' => 'd',\n                    'Do' => 'd',\n                    'd' => '!',\n                    'dd' => '!',\n                    'ddd' => 'D',\n                    'dddd' => 'D',\n                    'DDD' => 'z',\n                    'DDDD' => 'z',\n                    'DDDo' => 'z',\n                    'e' => '!',\n                    'E' => '!',\n                    'H' => 'G',\n                    'HH' => 'H',\n                    'h' => 'g',\n                    'hh' => 'h',\n                    'k' => 'G',\n                    'kk' => 'G',\n                    'hmm' => 'gi',\n                    'hmmss' => 'gis',\n                    'Hmm' => 'Gi',\n                    'Hmmss' => 'Gis',\n                    'm' => 'i',\n                    'mm' => 'i',\n                    'a' => 'a',\n                    'A' => 'a',\n                    's' => 's',\n                    'ss' => 's',\n                    'S' => '*',\n                    'SS' => '*',\n                    'SSS' => '*',\n                    'SSSS' => '*',\n                    'SSSSS' => '*',\n                    'SSSSSS' => 'u',\n                    'SSSSSSS' => 'u*',\n                    'SSSSSSSS' => 'u*',\n                    'SSSSSSSSS' => 'u*',\n                    'M' => 'm',\n                    'MM' => 'm',\n                    'MMM' => 'M',\n                    'MMMM' => 'M',\n                    'Mo' => 'm',\n                    'Q' => '!',\n                    'Qo' => '!',\n                    'G' => '!',\n                    'GG' => '!',\n                    'GGG' => '!',\n                    'GGGG' => '!',\n                    'GGGGG' => '!',\n                    'g' => '!',\n                    'gg' => '!',\n                    'ggg' => '!',\n                    'gggg' => '!',\n                    'ggggg' => '!',\n                    'W' => '!',\n                    'WW' => '!',\n                    'Wo' => '!',\n                    'w' => '!',\n                    'ww' => '!',\n                    'wo' => '!',\n                    'x' => 'U???',\n                    'X' => 'U',\n                    'Y' => 'Y',\n                    'YY' => 'y',\n                    'YYYY' => 'Y',\n                    'YYYYY' => 'Y',\n                    'YYYYYY' => 'Y',\n                    'z' => 'e',\n                    'zz' => 'e',\n                    'Z' => 'e',\n                    'ZZ' => 'e',\n                ];\n            }\n\n            $format = $replacements[$code] ?? '?';\n\n            if ($format === '!') {\n                throw new InvalidArgumentException(\"Format $code not supported for creation.\");\n            }\n\n            return $format;\n        }, $format);\n\n        return static::rawCreateFromFormat($format, $time, $tz);\n    }\n\n    /**\n     * Create a Carbon instance from a specific format and a string in a given language.\n     *\n     * @param string                          $format Datetime format\n     * @param string                          $locale\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromLocaleFormat($format, $locale, $time, $tz = null)\n    {\n        return static::rawCreateFromFormat($format, static::translateTimeString($time, $locale, 'en'), $tz);\n    }\n\n    /**\n     * Create a Carbon instance from a specific ISO format and a string in a given language.\n     *\n     * @param string                          $format Datetime ISO format\n     * @param string                          $locale\n     * @param string                          $time\n     * @param \\DateTimeZone|string|false|null $tz\n     *\n     * @throws InvalidArgumentException\n     *\n     * @return static|false\n     */\n    public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null)\n    {\n        $time = static::translateTimeString($time, $locale, 'en', CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS | CarbonInterface::TRANSLATE_MERIDIEM);\n\n        return static::createFromIsoFormat($format, $time, $tz, $locale);\n    }\n\n    /**\n     * Make a Carbon instance from given variable if possible.\n     *\n     * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals\n     * and recurrences). Throw an exception for invalid format, but otherwise return null.\n     *\n     * @param mixed $var\n     *\n     * @return static|null\n     */\n    public static function make($var)\n    {\n        if ($var instanceof DateTimeInterface) {\n            return static::instance($var);\n        }\n\n        $date = null;\n\n        if (is_string($var)) {\n            $var = trim($var);\n            $first = substr($var, 0, 1);\n\n            if (is_string($var) && $first !== 'P' && $first !== 'R' && preg_match('/[a-z0-9]/i', $var)) {\n                $date = static::parse($var);\n            }\n        }\n\n        return $date;\n    }\n\n    /**\n     * Set last errors.\n     *\n     * @param array $lastErrors\n     *\n     * @return void\n     */\n    private static function setLastErrors(array $lastErrors)\n    {\n        static::$lastErrors = $lastErrors;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function getLastErrors()\n    {\n        return static::$lastErrors;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Date.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse BadMethodCallException;\nuse Carbon\\CarbonInterface;\nuse Carbon\\CarbonPeriod;\nuse Carbon\\CarbonTimeZone;\nuse Closure;\nuse DateTime;\nuse DateTimeInterface;\nuse InvalidArgumentException;\nuse ReflectionException;\n\n/**\n * A simple API extension for DateTime.\n *\n * <autodoc generated by `composer phpdoc`>\n *\n * @property      int            $year\n * @property      int            $yearIso\n * @property      int            $month\n * @property      int            $day\n * @property      int            $hour\n * @property      int            $minute\n * @property      int            $second\n * @property      int            $micro\n * @property      int            $microsecond\n * @property      int            $timestamp                                                                          seconds since the Unix Epoch\n * @property      string         $englishDayOfWeek                                                                   the day of week in English\n * @property      string         $shortEnglishDayOfWeek                                                              the abbreviated day of week in English\n * @property      string         $englishMonth                                                                       the month in English\n * @property      string         $shortEnglishMonth                                                                  the abbreviated month in English\n * @property      string         $localeDayOfWeek                                                                    the day of week in current locale LC_TIME\n * @property      string         $shortLocaleDayOfWeek                                                               the abbreviated day of week in current locale LC_TIME\n * @property      string         $localeMonth                                                                        the month in current locale LC_TIME\n * @property      string         $shortLocaleMonth                                                                   the abbreviated month in current locale LC_TIME\n * @property      int            $milliseconds\n * @property      int            $millisecond\n * @property      int            $milli\n * @property      int            $week                                                                               1 through 53\n * @property      int            $isoWeek                                                                            1 through 53\n * @property      int            $weekYear                                                                           year according to week format\n * @property      int            $isoWeekYear                                                                        year according to ISO week format\n * @property      int            $dayOfYear                                                                          1 through 366\n * @property      int            $age                                                                                does a diffInYears() with default parameters\n * @property      int            $offset                                                                             the timezone offset in seconds from UTC\n * @property      int            $offsetMinutes                                                                      the timezone offset in minutes from UTC\n * @property      int            $offsetHours                                                                        the timezone offset in hours from UTC\n * @property      CarbonTimeZone $timezone                                                                           the current timezone\n * @property      CarbonTimeZone $tz                                                                                 alias of $timezone\n * @property-read int            $dayOfWeek                                                                          0 (for Sunday) through 6 (for Saturday)\n * @property-read int            $dayOfWeekIso                                                                       1 (for Monday) through 7 (for Sunday)\n * @property-read int            $weekOfYear                                                                         ISO-8601 week number of year, weeks starting on Monday\n * @property-read int            $daysInMonth                                                                        number of days in the given month\n * @property-read string         $latinMeridiem                                                                      \"am\"/\"pm\" (Ante meridiem or Post meridiem latin lowercase mark)\n * @property-read string         $latinUpperMeridiem                                                                 \"AM\"/\"PM\" (Ante meridiem or Post meridiem latin uppercase mark)\n * @property-read string         $dayName                                                                            long name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortDayName                                                                       short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $minDayName                                                                         very short name of weekday translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $monthName                                                                          long name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $shortMonthName                                                                     short name of month translated according to Carbon locale, in english if no translation available for current language\n * @property-read string         $meridiem                                                                           lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read string         $upperMeridiem                                                                      uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n * @property-read int            $noZeroHour                                                                         current hour from 1 to 24\n * @property-read int            $weeksInYear                                                                        51 through 53\n * @property-read int            $isoWeeksInYear                                                                     51 through 53\n * @property-read int            $weekOfMonth                                                                        1 through 5\n * @property-read int            $weekNumberInMonth                                                                  1 through 5\n * @property-read int            $firstWeekDay                                                                       0 through 6\n * @property-read int            $lastWeekDay                                                                        0 through 6\n * @property-read int            $daysInYear                                                                         365 or 366\n * @property-read int            $quarter                                                                            the quarter of this instance, 1 - 4\n * @property-read int            $decade                                                                             the decade of this instance\n * @property-read int            $century                                                                            the century of this instance\n * @property-read int            $millennium                                                                         the millennium of this instance\n * @property-read bool           $dst                                                                                daylight savings time indicator, true if DST, false otherwise\n * @property-read bool           $local                                                                              checks if the timezone is local, true if local, false otherwise\n * @property-read bool           $utc                                                                                checks if the timezone is UTC, true if UTC, false otherwise\n * @property-read string         $timezoneName                                                                       the current timezone name\n * @property-read string         $tzName                                                                             alias of $timezoneName\n * @property-read string         $timezoneAbbreviatedName                                                            the current timezone abbreviated name\n * @property-read string         $tzAbbrName                                                                         alias of $timezoneAbbreviatedName\n * @property-read string         $locale                                                                             locale of the current instance\n *\n * @method        bool           isUtc()                                                                             Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)\n * @method        bool           isLocal()                                                                           Check if the current instance has non-UTC timezone.\n * @method        bool           isValid()                                                                           Check if the current instance is a valid date.\n * @method        bool           isDST()                                                                             Check if the current instance is in a daylight saving time.\n * @method        bool           isSunday()                                                                          Checks if the instance day is sunday.\n * @method        bool           isMonday()                                                                          Checks if the instance day is monday.\n * @method        bool           isTuesday()                                                                         Checks if the instance day is tuesday.\n * @method        bool           isWednesday()                                                                       Checks if the instance day is wednesday.\n * @method        bool           isThursday()                                                                        Checks if the instance day is thursday.\n * @method        bool           isFriday()                                                                          Checks if the instance day is friday.\n * @method        bool           isSaturday()                                                                        Checks if the instance day is saturday.\n * @method        bool           isSameYear(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentYear()                                                                     Checks if the instance is in the same year as the current moment.\n * @method        bool           isNextYear()                                                                        Checks if the instance is in the same year as the current moment next year.\n * @method        bool           isLastYear()                                                                        Checks if the instance is in the same year as the current moment last year.\n * @method        bool           isSameWeek(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentWeek()                                                                     Checks if the instance is in the same week as the current moment.\n * @method        bool           isNextWeek()                                                                        Checks if the instance is in the same week as the current moment next week.\n * @method        bool           isLastWeek()                                                                        Checks if the instance is in the same week as the current moment last week.\n * @method        bool           isSameDay(\\DateTimeInterface $date = null)                                          Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDay()                                                                      Checks if the instance is in the same day as the current moment.\n * @method        bool           isNextDay()                                                                         Checks if the instance is in the same day as the current moment next day.\n * @method        bool           isLastDay()                                                                         Checks if the instance is in the same day as the current moment last day.\n * @method        bool           isSameHour(\\DateTimeInterface $date = null)                                         Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentHour()                                                                     Checks if the instance is in the same hour as the current moment.\n * @method        bool           isNextHour()                                                                        Checks if the instance is in the same hour as the current moment next hour.\n * @method        bool           isLastHour()                                                                        Checks if the instance is in the same hour as the current moment last hour.\n * @method        bool           isSameMinute(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMinute()                                                                   Checks if the instance is in the same minute as the current moment.\n * @method        bool           isNextMinute()                                                                      Checks if the instance is in the same minute as the current moment next minute.\n * @method        bool           isLastMinute()                                                                      Checks if the instance is in the same minute as the current moment last minute.\n * @method        bool           isSameSecond(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentSecond()                                                                   Checks if the instance is in the same second as the current moment.\n * @method        bool           isNextSecond()                                                                      Checks if the instance is in the same second as the current moment next second.\n * @method        bool           isLastSecond()                                                                      Checks if the instance is in the same second as the current moment last second.\n * @method        bool           isSameMicro(\\DateTimeInterface $date = null)                                        Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicro()                                                                    Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicro()                                                                       Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicro()                                                                       Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isSameMicrosecond(\\DateTimeInterface $date = null)                                  Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMicrosecond()                                                              Checks if the instance is in the same microsecond as the current moment.\n * @method        bool           isNextMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment next microsecond.\n * @method        bool           isLastMicrosecond()                                                                 Checks if the instance is in the same microsecond as the current moment last microsecond.\n * @method        bool           isCurrentMonth()                                                                    Checks if the instance is in the same month as the current moment.\n * @method        bool           isNextMonth()                                                                       Checks if the instance is in the same month as the current moment next month.\n * @method        bool           isLastMonth()                                                                       Checks if the instance is in the same month as the current moment last month.\n * @method        bool           isCurrentQuarter()                                                                  Checks if the instance is in the same quarter as the current moment.\n * @method        bool           isNextQuarter()                                                                     Checks if the instance is in the same quarter as the current moment next quarter.\n * @method        bool           isLastQuarter()                                                                     Checks if the instance is in the same quarter as the current moment last quarter.\n * @method        bool           isSameDecade(\\DateTimeInterface $date = null)                                       Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentDecade()                                                                   Checks if the instance is in the same decade as the current moment.\n * @method        bool           isNextDecade()                                                                      Checks if the instance is in the same decade as the current moment next decade.\n * @method        bool           isLastDecade()                                                                      Checks if the instance is in the same decade as the current moment last decade.\n * @method        bool           isSameCentury(\\DateTimeInterface $date = null)                                      Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentCentury()                                                                  Checks if the instance is in the same century as the current moment.\n * @method        bool           isNextCentury()                                                                     Checks if the instance is in the same century as the current moment next century.\n * @method        bool           isLastCentury()                                                                     Checks if the instance is in the same century as the current moment last century.\n * @method        bool           isSameMillennium(\\DateTimeInterface $date = null)                                   Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).\n * @method        bool           isCurrentMillennium()                                                               Checks if the instance is in the same millennium as the current moment.\n * @method        bool           isNextMillennium()                                                                  Checks if the instance is in the same millennium as the current moment next millennium.\n * @method        bool           isLastMillennium()                                                                  Checks if the instance is in the same millennium as the current moment last millennium.\n * @method        $this          years(int $value)                                                                   Set current instance year to the given value.\n * @method        $this          year(int $value)                                                                    Set current instance year to the given value.\n * @method        $this          setYears(int $value)                                                                Set current instance year to the given value.\n * @method        $this          setYear(int $value)                                                                 Set current instance year to the given value.\n * @method        $this          months(int $value)                                                                  Set current instance month to the given value.\n * @method        $this          month(int $value)                                                                   Set current instance month to the given value.\n * @method        $this          setMonths(int $value)                                                               Set current instance month to the given value.\n * @method        $this          setMonth(int $value)                                                                Set current instance month to the given value.\n * @method        $this          days(int $value)                                                                    Set current instance day to the given value.\n * @method        $this          day(int $value)                                                                     Set current instance day to the given value.\n * @method        $this          setDays(int $value)                                                                 Set current instance day to the given value.\n * @method        $this          setDay(int $value)                                                                  Set current instance day to the given value.\n * @method        $this          hours(int $value)                                                                   Set current instance hour to the given value.\n * @method        $this          hour(int $value)                                                                    Set current instance hour to the given value.\n * @method        $this          setHours(int $value)                                                                Set current instance hour to the given value.\n * @method        $this          setHour(int $value)                                                                 Set current instance hour to the given value.\n * @method        $this          minutes(int $value)                                                                 Set current instance minute to the given value.\n * @method        $this          minute(int $value)                                                                  Set current instance minute to the given value.\n * @method        $this          setMinutes(int $value)                                                              Set current instance minute to the given value.\n * @method        $this          setMinute(int $value)                                                               Set current instance minute to the given value.\n * @method        $this          seconds(int $value)                                                                 Set current instance second to the given value.\n * @method        $this          second(int $value)                                                                  Set current instance second to the given value.\n * @method        $this          setSeconds(int $value)                                                              Set current instance second to the given value.\n * @method        $this          setSecond(int $value)                                                               Set current instance second to the given value.\n * @method        $this          millis(int $value)                                                                  Set current instance millisecond to the given value.\n * @method        $this          milli(int $value)                                                                   Set current instance millisecond to the given value.\n * @method        $this          setMillis(int $value)                                                               Set current instance millisecond to the given value.\n * @method        $this          setMilli(int $value)                                                                Set current instance millisecond to the given value.\n * @method        $this          milliseconds(int $value)                                                            Set current instance millisecond to the given value.\n * @method        $this          millisecond(int $value)                                                             Set current instance millisecond to the given value.\n * @method        $this          setMilliseconds(int $value)                                                         Set current instance millisecond to the given value.\n * @method        $this          setMillisecond(int $value)                                                          Set current instance millisecond to the given value.\n * @method        $this          micros(int $value)                                                                  Set current instance microsecond to the given value.\n * @method        $this          micro(int $value)                                                                   Set current instance microsecond to the given value.\n * @method        $this          setMicros(int $value)                                                               Set current instance microsecond to the given value.\n * @method        $this          setMicro(int $value)                                                                Set current instance microsecond to the given value.\n * @method        $this          microseconds(int $value)                                                            Set current instance microsecond to the given value.\n * @method        $this          microsecond(int $value)                                                             Set current instance microsecond to the given value.\n * @method        $this          setMicroseconds(int $value)                                                         Set current instance microsecond to the given value.\n * @method        $this          setMicrosecond(int $value)                                                          Set current instance microsecond to the given value.\n * @method        $this          addYears(int $value = 1)                                                            Add years (the $value count passed in) to the instance (using date interval).\n * @method        $this          addYear()                                                                           Add one year to the instance (using date interval).\n * @method        $this          subYears(int $value = 1)                                                            Sub years (the $value count passed in) to the instance (using date interval).\n * @method        $this          subYear()                                                                           Sub one year to the instance (using date interval).\n * @method        $this          addYearsWithOverflow(int $value = 1)                                                Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearWithOverflow()                                                               Add one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearsWithOverflow(int $value = 1)                                                Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subYearWithOverflow()                                                               Sub one year to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addYearsWithoutOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithoutOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithoutOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithoutOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsWithNoOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearWithNoOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsWithNoOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearWithNoOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearsNoOverflow(int $value = 1)                                                  Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addYearNoOverflow()                                                                 Add one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearsNoOverflow(int $value = 1)                                                  Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subYearNoOverflow()                                                                 Sub one year to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonths(int $value = 1)                                                           Add months (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMonth()                                                                          Add one month to the instance (using date interval).\n * @method        $this          subMonths(int $value = 1)                                                           Sub months (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMonth()                                                                          Sub one month to the instance (using date interval).\n * @method        $this          addMonthsWithOverflow(int $value = 1)                                               Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthWithOverflow()                                                              Add one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthsWithOverflow(int $value = 1)                                               Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMonthWithOverflow()                                                              Sub one month to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMonthsWithoutOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithoutOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithoutOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithoutOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsWithNoOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthWithNoOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsWithNoOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthWithNoOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthsNoOverflow(int $value = 1)                                                 Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMonthNoOverflow()                                                                Add one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthsNoOverflow(int $value = 1)                                                 Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMonthNoOverflow()                                                                Sub one month to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDays(int $value = 1)                                                             Add days (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDay()                                                                            Add one day to the instance (using date interval).\n * @method        $this          subDays(int $value = 1)                                                             Sub days (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDay()                                                                            Sub one day to the instance (using date interval).\n * @method        $this          addHours(int $value = 1)                                                            Add hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          addHour()                                                                           Add one hour to the instance (using date interval).\n * @method        $this          subHours(int $value = 1)                                                            Sub hours (the $value count passed in) to the instance (using date interval).\n * @method        $this          subHour()                                                                           Sub one hour to the instance (using date interval).\n * @method        $this          addMinutes(int $value = 1)                                                          Add minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMinute()                                                                         Add one minute to the instance (using date interval).\n * @method        $this          subMinutes(int $value = 1)                                                          Sub minutes (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMinute()                                                                         Sub one minute to the instance (using date interval).\n * @method        $this          addSeconds(int $value = 1)                                                          Add seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addSecond()                                                                         Add one second to the instance (using date interval).\n * @method        $this          subSeconds(int $value = 1)                                                          Sub seconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subSecond()                                                                         Sub one second to the instance (using date interval).\n * @method        $this          addMillis(int $value = 1)                                                           Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMilli()                                                                          Add one millisecond to the instance (using date interval).\n * @method        $this          subMillis(int $value = 1)                                                           Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMilli()                                                                          Sub one millisecond to the instance (using date interval).\n * @method        $this          addMilliseconds(int $value = 1)                                                     Add milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillisecond()                                                                    Add one millisecond to the instance (using date interval).\n * @method        $this          subMilliseconds(int $value = 1)                                                     Sub milliseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillisecond()                                                                    Sub one millisecond to the instance (using date interval).\n * @method        $this          addMicros(int $value = 1)                                                           Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicro()                                                                          Add one microsecond to the instance (using date interval).\n * @method        $this          subMicros(int $value = 1)                                                           Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicro()                                                                          Sub one microsecond to the instance (using date interval).\n * @method        $this          addMicroseconds(int $value = 1)                                                     Add microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMicrosecond()                                                                    Add one microsecond to the instance (using date interval).\n * @method        $this          subMicroseconds(int $value = 1)                                                     Sub microseconds (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMicrosecond()                                                                    Sub one microsecond to the instance (using date interval).\n * @method        $this          addMillennia(int $value = 1)                                                        Add millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          addMillennium()                                                                     Add one millennium to the instance (using date interval).\n * @method        $this          subMillennia(int $value = 1)                                                        Sub millennia (the $value count passed in) to the instance (using date interval).\n * @method        $this          subMillennium()                                                                     Sub one millennium to the instance (using date interval).\n * @method        $this          addMillenniaWithOverflow(int $value = 1)                                            Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniumWithOverflow()                                                         Add one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniaWithOverflow(int $value = 1)                                            Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subMillenniumWithOverflow()                                                         Sub one millennium to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addMillenniaWithoutOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithoutOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithoutOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithoutOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaWithNoOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumWithNoOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaWithNoOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumWithNoOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniaNoOverflow(int $value = 1)                                              Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addMillenniumNoOverflow()                                                           Add one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniaNoOverflow(int $value = 1)                                              Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subMillenniumNoOverflow()                                                           Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturies(int $value = 1)                                                        Add centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          addCentury()                                                                        Add one century to the instance (using date interval).\n * @method        $this          subCenturies(int $value = 1)                                                        Sub centuries (the $value count passed in) to the instance (using date interval).\n * @method        $this          subCentury()                                                                        Sub one century to the instance (using date interval).\n * @method        $this          addCenturiesWithOverflow(int $value = 1)                                            Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturyWithOverflow()                                                            Add one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturiesWithOverflow(int $value = 1)                                            Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subCenturyWithOverflow()                                                            Sub one century to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addCenturiesWithoutOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithoutOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithoutOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithoutOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesWithNoOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyWithNoOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesWithNoOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyWithNoOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturiesNoOverflow(int $value = 1)                                              Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addCenturyNoOverflow()                                                              Add one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturiesNoOverflow(int $value = 1)                                              Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subCenturyNoOverflow()                                                              Sub one century to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecades(int $value = 1)                                                          Add decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          addDecade()                                                                         Add one decade to the instance (using date interval).\n * @method        $this          subDecades(int $value = 1)                                                          Sub decades (the $value count passed in) to the instance (using date interval).\n * @method        $this          subDecade()                                                                         Sub one decade to the instance (using date interval).\n * @method        $this          addDecadesWithOverflow(int $value = 1)                                              Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadeWithOverflow()                                                             Add one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadesWithOverflow(int $value = 1)                                              Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subDecadeWithOverflow()                                                             Sub one decade to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addDecadesWithoutOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithoutOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithoutOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithoutOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesWithNoOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeWithNoOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesWithNoOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeWithNoOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadesNoOverflow(int $value = 1)                                                Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addDecadeNoOverflow()                                                               Add one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadesNoOverflow(int $value = 1)                                                Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subDecadeNoOverflow()                                                               Sub one decade to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarters(int $value = 1)                                                         Add quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          addQuarter()                                                                        Add one quarter to the instance (using date interval).\n * @method        $this          subQuarters(int $value = 1)                                                         Sub quarters (the $value count passed in) to the instance (using date interval).\n * @method        $this          subQuarter()                                                                        Sub one quarter to the instance (using date interval).\n * @method        $this          addQuartersWithOverflow(int $value = 1)                                             Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuarterWithOverflow()                                                            Add one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuartersWithOverflow(int $value = 1)                                             Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          subQuarterWithOverflow()                                                            Sub one quarter to the instance (using date interval) with overflow explicitly allowed.\n * @method        $this          addQuartersWithoutOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithoutOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithoutOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithoutOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersWithNoOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterWithNoOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersWithNoOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterWithNoOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuartersNoOverflow(int $value = 1)                                               Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addQuarterNoOverflow()                                                              Add one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuartersNoOverflow(int $value = 1)                                               Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          subQuarterNoOverflow()                                                              Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.\n * @method        $this          addWeeks(int $value = 1)                                                            Add weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeek()                                                                           Add one week to the instance (using date interval).\n * @method        $this          subWeeks(int $value = 1)                                                            Sub weeks (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeek()                                                                           Sub one week to the instance (using date interval).\n * @method        $this          addWeekdays(int $value = 1)                                                         Add weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          addWeekday()                                                                        Add one weekday to the instance (using date interval).\n * @method        $this          subWeekdays(int $value = 1)                                                         Sub weekdays (the $value count passed in) to the instance (using date interval).\n * @method        $this          subWeekday()                                                                        Sub one weekday to the instance (using date interval).\n * @method        $this          addRealMicros(int $value = 1)                                                       Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicro()                                                                      Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicros(int $value = 1)                                                       Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicro()                                                                      Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMicroseconds(int $value = 1)                                                 Add microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMicrosecond()                                                                Add one microsecond to the instance (using timestamp).\n * @method        $this          subRealMicroseconds(int $value = 1)                                                 Sub microseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMicrosecond()                                                                Sub one microsecond to the instance (using timestamp).\n * @method        CarbonPeriod   microsecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.\n * @method        $this          addRealMillis(int $value = 1)                                                       Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMilli()                                                                      Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMillis(int $value = 1)                                                       Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMilli()                                                                      Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealMilliseconds(int $value = 1)                                                 Add milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillisecond()                                                                Add one millisecond to the instance (using timestamp).\n * @method        $this          subRealMilliseconds(int $value = 1)                                                 Sub milliseconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillisecond()                                                                Sub one millisecond to the instance (using timestamp).\n * @method        CarbonPeriod   millisecondsUntil($endDate = null, int $factor = 1)                                 Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.\n * @method        $this          addRealSeconds(int $value = 1)                                                      Add seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealSecond()                                                                     Add one second to the instance (using timestamp).\n * @method        $this          subRealSeconds(int $value = 1)                                                      Sub seconds (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealSecond()                                                                     Sub one second to the instance (using timestamp).\n * @method        CarbonPeriod   secondsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.\n * @method        $this          addRealMinutes(int $value = 1)                                                      Add minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMinute()                                                                     Add one minute to the instance (using timestamp).\n * @method        $this          subRealMinutes(int $value = 1)                                                      Sub minutes (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMinute()                                                                     Sub one minute to the instance (using timestamp).\n * @method        CarbonPeriod   minutesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.\n * @method        $this          addRealHours(int $value = 1)                                                        Add hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealHour()                                                                       Add one hour to the instance (using timestamp).\n * @method        $this          subRealHours(int $value = 1)                                                        Sub hours (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealHour()                                                                       Sub one hour to the instance (using timestamp).\n * @method        CarbonPeriod   hoursUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.\n * @method        $this          addRealDays(int $value = 1)                                                         Add days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDay()                                                                        Add one day to the instance (using timestamp).\n * @method        $this          subRealDays(int $value = 1)                                                         Sub days (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDay()                                                                        Sub one day to the instance (using timestamp).\n * @method        CarbonPeriod   daysUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.\n * @method        $this          addRealWeeks(int $value = 1)                                                        Add weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealWeek()                                                                       Add one week to the instance (using timestamp).\n * @method        $this          subRealWeeks(int $value = 1)                                                        Sub weeks (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealWeek()                                                                       Sub one week to the instance (using timestamp).\n * @method        CarbonPeriod   weeksUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.\n * @method        $this          addRealMonths(int $value = 1)                                                       Add months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMonth()                                                                      Add one month to the instance (using timestamp).\n * @method        $this          subRealMonths(int $value = 1)                                                       Sub months (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMonth()                                                                      Sub one month to the instance (using timestamp).\n * @method        CarbonPeriod   monthsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.\n * @method        $this          addRealQuarters(int $value = 1)                                                     Add quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealQuarter()                                                                    Add one quarter to the instance (using timestamp).\n * @method        $this          subRealQuarters(int $value = 1)                                                     Sub quarters (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealQuarter()                                                                    Sub one quarter to the instance (using timestamp).\n * @method        CarbonPeriod   quartersUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.\n * @method        $this          addRealYears(int $value = 1)                                                        Add years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealYear()                                                                       Add one year to the instance (using timestamp).\n * @method        $this          subRealYears(int $value = 1)                                                        Sub years (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealYear()                                                                       Sub one year to the instance (using timestamp).\n * @method        CarbonPeriod   yearsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.\n * @method        $this          addRealDecades(int $value = 1)                                                      Add decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealDecade()                                                                     Add one decade to the instance (using timestamp).\n * @method        $this          subRealDecades(int $value = 1)                                                      Sub decades (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealDecade()                                                                     Sub one decade to the instance (using timestamp).\n * @method        CarbonPeriod   decadesUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.\n * @method        $this          addRealCenturies(int $value = 1)                                                    Add centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealCentury()                                                                    Add one century to the instance (using timestamp).\n * @method        $this          subRealCenturies(int $value = 1)                                                    Sub centuries (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealCentury()                                                                    Sub one century to the instance (using timestamp).\n * @method        CarbonPeriod   centuriesUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.\n * @method        $this          addRealMillennia(int $value = 1)                                                    Add millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          addRealMillennium()                                                                 Add one millennium to the instance (using timestamp).\n * @method        $this          subRealMillennia(int $value = 1)                                                    Sub millennia (the $value count passed in) to the instance (using timestamp).\n * @method        $this          subRealMillennium()                                                                 Sub one millennium to the instance (using timestamp).\n * @method        CarbonPeriod   millenniaUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.\n * @method        $this          roundYear(float $precision = 1, string $function = \"round\")                         Round the current instance year with given precision using the given function.\n * @method        $this          roundYears(float $precision = 1, string $function = \"round\")                        Round the current instance year with given precision using the given function.\n * @method        $this          floorYear(float $precision = 1)                                                     Truncate the current instance year with given precision.\n * @method        $this          floorYears(float $precision = 1)                                                    Truncate the current instance year with given precision.\n * @method        $this          ceilYear(float $precision = 1)                                                      Ceil the current instance year with given precision.\n * @method        $this          ceilYears(float $precision = 1)                                                     Ceil the current instance year with given precision.\n * @method        $this          roundMonth(float $precision = 1, string $function = \"round\")                        Round the current instance month with given precision using the given function.\n * @method        $this          roundMonths(float $precision = 1, string $function = \"round\")                       Round the current instance month with given precision using the given function.\n * @method        $this          floorMonth(float $precision = 1)                                                    Truncate the current instance month with given precision.\n * @method        $this          floorMonths(float $precision = 1)                                                   Truncate the current instance month with given precision.\n * @method        $this          ceilMonth(float $precision = 1)                                                     Ceil the current instance month with given precision.\n * @method        $this          ceilMonths(float $precision = 1)                                                    Ceil the current instance month with given precision.\n * @method        $this          roundDay(float $precision = 1, string $function = \"round\")                          Round the current instance day with given precision using the given function.\n * @method        $this          roundDays(float $precision = 1, string $function = \"round\")                         Round the current instance day with given precision using the given function.\n * @method        $this          floorDay(float $precision = 1)                                                      Truncate the current instance day with given precision.\n * @method        $this          floorDays(float $precision = 1)                                                     Truncate the current instance day with given precision.\n * @method        $this          ceilDay(float $precision = 1)                                                       Ceil the current instance day with given precision.\n * @method        $this          ceilDays(float $precision = 1)                                                      Ceil the current instance day with given precision.\n * @method        $this          roundHour(float $precision = 1, string $function = \"round\")                         Round the current instance hour with given precision using the given function.\n * @method        $this          roundHours(float $precision = 1, string $function = \"round\")                        Round the current instance hour with given precision using the given function.\n * @method        $this          floorHour(float $precision = 1)                                                     Truncate the current instance hour with given precision.\n * @method        $this          floorHours(float $precision = 1)                                                    Truncate the current instance hour with given precision.\n * @method        $this          ceilHour(float $precision = 1)                                                      Ceil the current instance hour with given precision.\n * @method        $this          ceilHours(float $precision = 1)                                                     Ceil the current instance hour with given precision.\n * @method        $this          roundMinute(float $precision = 1, string $function = \"round\")                       Round the current instance minute with given precision using the given function.\n * @method        $this          roundMinutes(float $precision = 1, string $function = \"round\")                      Round the current instance minute with given precision using the given function.\n * @method        $this          floorMinute(float $precision = 1)                                                   Truncate the current instance minute with given precision.\n * @method        $this          floorMinutes(float $precision = 1)                                                  Truncate the current instance minute with given precision.\n * @method        $this          ceilMinute(float $precision = 1)                                                    Ceil the current instance minute with given precision.\n * @method        $this          ceilMinutes(float $precision = 1)                                                   Ceil the current instance minute with given precision.\n * @method        $this          roundSecond(float $precision = 1, string $function = \"round\")                       Round the current instance second with given precision using the given function.\n * @method        $this          roundSeconds(float $precision = 1, string $function = \"round\")                      Round the current instance second with given precision using the given function.\n * @method        $this          floorSecond(float $precision = 1)                                                   Truncate the current instance second with given precision.\n * @method        $this          floorSeconds(float $precision = 1)                                                  Truncate the current instance second with given precision.\n * @method        $this          ceilSecond(float $precision = 1)                                                    Ceil the current instance second with given precision.\n * @method        $this          ceilSeconds(float $precision = 1)                                                   Ceil the current instance second with given precision.\n * @method        $this          roundMillennium(float $precision = 1, string $function = \"round\")                   Round the current instance millennium with given precision using the given function.\n * @method        $this          roundMillennia(float $precision = 1, string $function = \"round\")                    Round the current instance millennium with given precision using the given function.\n * @method        $this          floorMillennium(float $precision = 1)                                               Truncate the current instance millennium with given precision.\n * @method        $this          floorMillennia(float $precision = 1)                                                Truncate the current instance millennium with given precision.\n * @method        $this          ceilMillennium(float $precision = 1)                                                Ceil the current instance millennium with given precision.\n * @method        $this          ceilMillennia(float $precision = 1)                                                 Ceil the current instance millennium with given precision.\n * @method        $this          roundCentury(float $precision = 1, string $function = \"round\")                      Round the current instance century with given precision using the given function.\n * @method        $this          roundCenturies(float $precision = 1, string $function = \"round\")                    Round the current instance century with given precision using the given function.\n * @method        $this          floorCentury(float $precision = 1)                                                  Truncate the current instance century with given precision.\n * @method        $this          floorCenturies(float $precision = 1)                                                Truncate the current instance century with given precision.\n * @method        $this          ceilCentury(float $precision = 1)                                                   Ceil the current instance century with given precision.\n * @method        $this          ceilCenturies(float $precision = 1)                                                 Ceil the current instance century with given precision.\n * @method        $this          roundDecade(float $precision = 1, string $function = \"round\")                       Round the current instance decade with given precision using the given function.\n * @method        $this          roundDecades(float $precision = 1, string $function = \"round\")                      Round the current instance decade with given precision using the given function.\n * @method        $this          floorDecade(float $precision = 1)                                                   Truncate the current instance decade with given precision.\n * @method        $this          floorDecades(float $precision = 1)                                                  Truncate the current instance decade with given precision.\n * @method        $this          ceilDecade(float $precision = 1)                                                    Ceil the current instance decade with given precision.\n * @method        $this          ceilDecades(float $precision = 1)                                                   Ceil the current instance decade with given precision.\n * @method        $this          roundQuarter(float $precision = 1, string $function = \"round\")                      Round the current instance quarter with given precision using the given function.\n * @method        $this          roundQuarters(float $precision = 1, string $function = \"round\")                     Round the current instance quarter with given precision using the given function.\n * @method        $this          floorQuarter(float $precision = 1)                                                  Truncate the current instance quarter with given precision.\n * @method        $this          floorQuarters(float $precision = 1)                                                 Truncate the current instance quarter with given precision.\n * @method        $this          ceilQuarter(float $precision = 1)                                                   Ceil the current instance quarter with given precision.\n * @method        $this          ceilQuarters(float $precision = 1)                                                  Ceil the current instance quarter with given precision.\n * @method        $this          roundMillisecond(float $precision = 1, string $function = \"round\")                  Round the current instance millisecond with given precision using the given function.\n * @method        $this          roundMilliseconds(float $precision = 1, string $function = \"round\")                 Round the current instance millisecond with given precision using the given function.\n * @method        $this          floorMillisecond(float $precision = 1)                                              Truncate the current instance millisecond with given precision.\n * @method        $this          floorMilliseconds(float $precision = 1)                                             Truncate the current instance millisecond with given precision.\n * @method        $this          ceilMillisecond(float $precision = 1)                                               Ceil the current instance millisecond with given precision.\n * @method        $this          ceilMilliseconds(float $precision = 1)                                              Ceil the current instance millisecond with given precision.\n * @method        $this          roundMicrosecond(float $precision = 1, string $function = \"round\")                  Round the current instance microsecond with given precision using the given function.\n * @method        $this          roundMicroseconds(float $precision = 1, string $function = \"round\")                 Round the current instance microsecond with given precision using the given function.\n * @method        $this          floorMicrosecond(float $precision = 1)                                              Truncate the current instance microsecond with given precision.\n * @method        $this          floorMicroseconds(float $precision = 1)                                             Truncate the current instance microsecond with given precision.\n * @method        $this          ceilMicrosecond(float $precision = 1)                                               Ceil the current instance microsecond with given precision.\n * @method        $this          ceilMicroseconds(float $precision = 1)                                              Ceil the current instance microsecond with given precision.\n * @method        string         shortAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longAbsoluteDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToNowDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         shortRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n * @method        string         longRelativeToOtherDiffForHumans(\\DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)\n *\n * </autodoc>\n */\ntrait Date\n{\n    use Boundaries;\n    use Comparison;\n    use Converter;\n    use Creator;\n    use Difference;\n    use Macro;\n    use Modifiers;\n    use Mutability;\n    use Options;\n    use Rounding;\n    use Serialization;\n    use Test;\n    use Timestamp;\n    use Units;\n    use Week;\n\n    /**\n     * Names of days of the week.\n     *\n     * @var array\n     */\n    protected static $days = [\n        // @call isDayOfWeek\n        self::SUNDAY => 'Sunday',\n        // @call isDayOfWeek\n        self::MONDAY => 'Monday',\n        // @call isDayOfWeek\n        self::TUESDAY => 'Tuesday',\n        // @call isDayOfWeek\n        self::WEDNESDAY => 'Wednesday',\n        // @call isDayOfWeek\n        self::THURSDAY => 'Thursday',\n        // @call isDayOfWeek\n        self::FRIDAY => 'Friday',\n        // @call isDayOfWeek\n        self::SATURDAY => 'Saturday',\n    ];\n\n    /**\n     * Will UTF8 encoding be used to print localized date/time ?\n     *\n     * @var bool\n     */\n    protected static $utf8 = false;\n\n    /**\n     * List of unit and magic methods associated as doc-comments.\n     *\n     * @var array\n     */\n    protected static $units = [\n        // @call setUnit\n        // @call addUnit\n        'year',\n        // @call setUnit\n        // @call addUnit\n        'month',\n        // @call setUnit\n        // @call addUnit\n        'day',\n        // @call setUnit\n        // @call addUnit\n        'hour',\n        // @call setUnit\n        // @call addUnit\n        'minute',\n        // @call setUnit\n        // @call addUnit\n        'second',\n        // @call setUnit\n        // @call addUnit\n        'milli',\n        // @call setUnit\n        // @call addUnit\n        'millisecond',\n        // @call setUnit\n        // @call addUnit\n        'micro',\n        // @call setUnit\n        // @call addUnit\n        'microsecond',\n    ];\n\n    /**\n     * Creates a DateTimeZone from a string, DateTimeZone or integer offset.\n     *\n     * @param \\DateTimeZone|string|int|null $object     original value to get CarbonTimeZone from it.\n     * @param \\DateTimeZone|string|int|null $objectDump dump of the object for error messages.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return CarbonTimeZone|false\n     */\n    protected static function safeCreateDateTimeZone($object, $objectDump = null)\n    {\n        return CarbonTimeZone::instance($object, $objectDump);\n    }\n\n    /**\n     * Creates a DateTimeZone from a string, DateTimeZone or integer offset then convert it as region timezone\n     * if integer.\n     *\n     * @param \\DateTimeZone|string|int|null $object\n     * @param \\DateTimeZone|string|int|null $originalObject if different\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return CarbonTimeZone|false\n     */\n    protected function autoDetectTimeZone($object, $originalObject = null)\n    {\n        /** @var CarbonTimeZone $timezone */\n        $timezone = CarbonTimeZone::instance($object);\n        if ($timezone && is_int($originalObject ?: $object)) {\n            $timezone = $timezone->toRegionTimeZone($this);\n        }\n\n        return $timezone;\n    }\n\n    /**\n     * Get the TimeZone associated with the Carbon instance (as CarbonTimeZone).\n     *\n     * @return CarbonTimeZone\n     *\n     * @link http://php.net/manual/en/datetime.gettimezone.php\n     */\n    public function getTimezone()\n    {\n        return CarbonTimeZone::instance(parent::getTimezone());\n    }\n\n    /**\n     * List of minimum and maximums for each unit.\n     *\n     * @return array\n     */\n    protected static function getRangesByUnit()\n    {\n        return [\n            // @call roundUnit\n            'year' => [1, 9999],\n            // @call roundUnit\n            'month' => [1, static::MONTHS_PER_YEAR],\n            // @call roundUnit\n            'day' => [1, 31],\n            // @call roundUnit\n            'hour' => [0, static::HOURS_PER_DAY - 1],\n            // @call roundUnit\n            'minute' => [0, static::MINUTES_PER_HOUR - 1],\n            // @call roundUnit\n            'second' => [0, static::SECONDS_PER_MINUTE - 1],\n        ];\n    }\n\n    /**\n     * Get a copy of the instance.\n     *\n     * @return static\n     */\n    public function copy()\n    {\n        return clone $this;\n    }\n\n    /**\n     * @alias copy\n     *\n     * Get a copy of the instance.\n     *\n     * @return static\n     */\n    public function clone()\n    {\n        return clone $this;\n    }\n\n    /**\n     * Returns a present instance in the same timezone.\n     *\n     * @return static\n     */\n    public function nowWithSameTz()\n    {\n        return static::now($this->getTimezone());\n    }\n\n    /**\n     * Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface.\n     *\n     * @param mixed        $date\n     * @param string|array $other\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected static function expectDateTime($date, $other = [])\n    {\n        $message = 'Expected ';\n        foreach ((array) $other as $expect) {\n            $message .= \"$expect, \";\n        }\n\n        if (!$date instanceof DateTime && !$date instanceof DateTimeInterface) {\n            throw new InvalidArgumentException(\n                $message.'DateTime or DateTimeInterface, '.\n                (is_object($date) ? get_class($date) : gettype($date)).' given'\n            );\n        }\n    }\n\n    /**\n     * Return the Carbon instance passed through, a now instance in the same timezone\n     * if null given or parse the input if string given.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|string|null $date\n     *\n     * @return static\n     */\n    protected function resolveCarbon($date = null)\n    {\n        if (!$date) {\n            return $this->nowWithSameTz();\n        }\n\n        if (is_string($date)) {\n            return static::parse($date, $this->getTimezone());\n        }\n\n        static::expectDateTime($date, ['null', 'string']);\n\n        return $date instanceof self ? $date : static::instance($date);\n    }\n\n    ///////////////////////////////////////////////////////////////////\n    ///////////////////////// GETTERS AND SETTERS /////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * Get a part of the Carbon object\n     *\n     * @param string $name\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return string|int|bool|\\DateTimeZone|null\n     */\n    public function __get($name)\n    {\n        return $this->get($name);\n    }\n\n    /**\n     * Get a part of the Carbon object\n     *\n     * @param string $name\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return string|int|bool|\\DateTimeZone|null\n     */\n    public function get($name)\n    {\n        static $formats = [\n            // @property int\n            'year' => 'Y',\n            // @property int\n            'yearIso' => 'o',\n            // @property int\n            // @call isSameUnit\n            'month' => 'n',\n            // @property int\n            'day' => 'j',\n            // @property int\n            'hour' => 'G',\n            // @property int\n            'minute' => 'i',\n            // @property int\n            'second' => 's',\n            // @property int\n            'micro' => 'u',\n            // @property int\n            'microsecond' => 'u',\n            // @property-read int 0 (for Sunday) through 6 (for Saturday)\n            'dayOfWeek' => 'w',\n            // @property-read int 1 (for Monday) through 7 (for Sunday)\n            'dayOfWeekIso' => 'N',\n            // @property-read int ISO-8601 week number of year, weeks starting on Monday\n            'weekOfYear' => 'W',\n            // @property-read int number of days in the given month\n            'daysInMonth' => 't',\n            // @property int seconds since the Unix Epoch\n            'timestamp' => 'U',\n            // @property-read string \"am\"/\"pm\" (Ante meridiem or Post meridiem latin lowercase mark)\n            'latinMeridiem' => 'a',\n            // @property-read string \"AM\"/\"PM\" (Ante meridiem or Post meridiem latin uppercase mark)\n            'latinUpperMeridiem' => 'A',\n            // @property string the day of week in English\n            'englishDayOfWeek' => 'l',\n            // @property string the abbreviated day of week in English\n            'shortEnglishDayOfWeek' => 'D',\n            // @property string the month in English\n            'englishMonth' => 'F',\n            // @property string the abbreviated month in English\n            'shortEnglishMonth' => 'M',\n            // @property string the day of week in current locale LC_TIME\n            'localeDayOfWeek' => '%A',\n            // @property string the abbreviated day of week in current locale LC_TIME\n            'shortLocaleDayOfWeek' => '%a',\n            // @property string the month in current locale LC_TIME\n            'localeMonth' => '%B',\n            // @property string the abbreviated month in current locale LC_TIME\n            'shortLocaleMonth' => '%b',\n        ];\n\n        switch (true) {\n            case isset($formats[$name]):\n                $format = $formats[$name];\n                $method = substr($format, 0, 1) === '%' ? 'formatLocalized' : 'rawFormat';\n                $value = $this->$method($format);\n\n                return is_numeric($value) ? (int) $value : $value;\n\n            // @property-read string long name of weekday translated according to Carbon locale, in english if no translation available for current language\n            case $name === 'dayName':\n                return $this->getTranslatedDayName();\n            // @property-read string short name of weekday translated according to Carbon locale, in english if no translation available for current language\n            case $name === 'shortDayName':\n                return $this->getTranslatedShortDayName();\n            // @property-read string very short name of weekday translated according to Carbon locale, in english if no translation available for current language\n            case $name === 'minDayName':\n                return $this->getTranslatedMinDayName();\n            // @property-read string long name of month translated according to Carbon locale, in english if no translation available for current language\n            case $name === 'monthName':\n                return $this->getTranslatedMonthName();\n            // @property-read string short name of month translated according to Carbon locale, in english if no translation available for current language\n            case $name === 'shortMonthName':\n                return $this->getTranslatedShortMonthName();\n            // @property-read string lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n            case $name === 'meridiem':\n                return $this->meridiem(true);\n            // @property-read string uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language\n            case $name === 'upperMeridiem':\n                return $this->meridiem();\n            // @property-read int current hour from 1 to 24\n            case $name === 'noZeroHour':\n                return $this->hour ?: 24;\n            // @property int\n            case $name === 'milliseconds':\n                // @property int\n            case $name === 'millisecond':\n            // @property int\n            case $name === 'milli':\n                return (int) floor($this->rawFormat('u') / 1000);\n\n            // @property int 1 through 53\n            case $name === 'week':\n                return (int) $this->week();\n\n            // @property int 1 through 53\n            case $name === 'isoWeek':\n                return (int) $this->isoWeek();\n\n            // @property int year according to week format\n            case $name === 'weekYear':\n                return (int) $this->weekYear();\n\n            // @property int year according to ISO week format\n            case $name === 'isoWeekYear':\n                return (int) $this->isoWeekYear();\n\n            // @property-read int 51 through 53\n            case $name === 'weeksInYear':\n                return (int) $this->weeksInYear();\n\n            // @property-read int 51 through 53\n            case $name === 'isoWeeksInYear':\n                return (int) $this->isoWeeksInYear();\n\n            // @property-read int 1 through 5\n            case $name === 'weekOfMonth':\n                return (int) ceil($this->day / static::DAYS_PER_WEEK);\n\n            // @property-read int 1 through 5\n            case $name === 'weekNumberInMonth':\n                return (int) ceil(($this->day + $this->copy()->startOfMonth()->dayOfWeekIso - 1) / static::DAYS_PER_WEEK);\n\n            // @property-read int 0 through 6\n            case $name === 'firstWeekDay':\n                return $this->localTranslator ? ($this->getTranslationMessage('first_day_of_week') ?? 0) : static::getWeekStartsAt();\n\n            // @property-read int 0 through 6\n            case $name === 'lastWeekDay':\n                return $this->localTranslator ? (($this->getTranslationMessage('first_day_of_week') ?? 0) + static::DAYS_PER_WEEK - 1) % static::DAYS_PER_WEEK : static::getWeekEndsAt();\n\n            // @property int 1 through 366\n            case $name === 'dayOfYear':\n                return 1 + intval($this->rawFormat('z'));\n\n            // @property-read int 365 or 366\n            case $name === 'daysInYear':\n                return $this->isLeapYear() ? 366 : 365;\n\n            // @property int does a diffInYears() with default parameters\n            case $name === 'age':\n                return $this->diffInYears();\n\n            // @property-read int the quarter of this instance, 1 - 4\n            // @call isSameUnit\n            case $name === 'quarter':\n                return (int) ceil($this->month / static::MONTHS_PER_QUARTER);\n\n            // @property-read int the decade of this instance\n            // @call isSameUnit\n            case $name === 'decade':\n                return (int) ceil($this->year / static::YEARS_PER_DECADE);\n\n            // @property-read int the century of this instance\n            // @call isSameUnit\n            case $name === 'century':\n                $factor = 1;\n                $year = $this->year;\n                if ($year < 0) {\n                    $year = -$year;\n                    $factor = -1;\n                }\n\n                return (int) ($factor * ceil($year / static::YEARS_PER_CENTURY));\n\n            // @property-read int the millennium of this instance\n            // @call isSameUnit\n            case $name === 'millennium':\n                $factor = 1;\n                $year = $this->year;\n                if ($year < 0) {\n                    $year = -$year;\n                    $factor = -1;\n                }\n\n                return (int) ($factor * ceil($year / static::YEARS_PER_MILLENNIUM));\n\n            // @property int the timezone offset in seconds from UTC\n            case $name === 'offset':\n                return $this->getOffset();\n\n            // @property int the timezone offset in minutes from UTC\n            case $name === 'offsetMinutes':\n                return $this->getOffset() / static::SECONDS_PER_MINUTE;\n\n            // @property int the timezone offset in hours from UTC\n            case $name === 'offsetHours':\n                return $this->getOffset() / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR;\n\n            // @property-read bool daylight savings time indicator, true if DST, false otherwise\n            case $name === 'dst':\n                return $this->rawFormat('I') === '1';\n\n            // @property-read bool checks if the timezone is local, true if local, false otherwise\n            case $name === 'local':\n                return $this->getOffset() === $this->copy()->setTimezone(date_default_timezone_get())->getOffset();\n\n            // @property-read bool checks if the timezone is UTC, true if UTC, false otherwise\n            case $name === 'utc':\n                return $this->getOffset() === 0;\n\n            // @property CarbonTimeZone $timezone the current timezone\n            // @property CarbonTimeZone $tz alias of $timezone\n            case $name === 'timezone' || $name === 'tz':\n                return CarbonTimeZone::instance($this->getTimezone());\n\n            // @property-read string $timezoneName the current timezone name\n            // @property-read string $tzName alias of $timezoneName\n            case $name === 'timezoneName' || $name === 'tzName':\n                return $this->getTimezone()->getName();\n\n            // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name\n            // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName\n            case $name === 'timezoneAbbreviatedName' || $name === 'tzAbbrName':\n                return CarbonTimeZone::instance($this->getTimezone())->getAbbr($this->dst);\n\n            // @property-read string locale of the current instance\n            case $name === 'locale':\n                return $this->getLocalTranslator()->getLocale();\n\n            default:\n                if (static::hasMacro($macro = 'get'.ucfirst($name))) {\n                    return $this->$macro();\n                }\n\n                throw new InvalidArgumentException(sprintf(\"Unknown getter '%s'\", $name));\n        }\n    }\n\n    /**\n     * Check if an attribute exists on the object\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function __isset($name)\n    {\n        try {\n            $this->__get($name);\n        } catch (InvalidArgumentException | ReflectionException $e) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Set a part of the Carbon object\n     *\n     * @param string                   $name\n     * @param string|int|\\DateTimeZone $value\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return void\n     */\n    public function __set($name, $value)\n    {\n        $this->set($name, $value);\n    }\n\n    /**\n     * Set a part of the Carbon object\n     *\n     * @param string|array             $name\n     * @param string|int|\\DateTimeZone $value\n     *\n     * @throws InvalidArgumentException|ReflectionException\n     *\n     * @return $this\n     */\n    public function set($name, $value = null)\n    {\n        if ($this->isImmutable()) {\n            throw new \\RuntimeException(sprintf(\n                '%s class is immutable.', static::class\n            ));\n        }\n\n        if (is_array($name)) {\n            foreach ($name as $_name => $value) {\n                $this->set($_name, $value);\n            }\n\n            return $this;\n        }\n\n        switch ($name) {\n            case 'milliseconds':\n            case 'millisecond':\n            case 'milli':\n            case 'microseconds':\n            case 'microsecond':\n            case 'micro':\n                if (substr($name, 0, 5) === 'milli') {\n                    $value *= 1000;\n                }\n                while ($value < 0) {\n                    $this->subSecond();\n                    $value += static::MICROSECONDS_PER_SECOND;\n                }\n                while ($value >= static::MICROSECONDS_PER_SECOND) {\n                    $this->addSecond();\n                    $value -= static::MICROSECONDS_PER_SECOND;\n                }\n                $this->modify($this->rawFormat('H:i:s.').str_pad((string) round($value), 6, '0', STR_PAD_LEFT));\n                break;\n\n            case 'year':\n            case 'month':\n            case 'day':\n            case 'hour':\n            case 'minute':\n            case 'second':\n                [$year, $month, $day, $hour, $minute, $second] = explode('-', $this->rawFormat('Y-n-j-G-i-s'));\n                $$name = $value;\n                $this->setDateTime($year, $month, $day, $hour, $minute, $second);\n                break;\n\n            case 'week':\n                return $this->week($value);\n\n            case 'isoWeek':\n                return $this->isoWeek($value);\n\n            case 'weekYear':\n                return $this->weekYear($value);\n\n            case 'isoWeekYear':\n                return $this->isoWeekYear($value);\n\n            case 'dayOfYear':\n                return $this->addDays($value - $this->dayOfYear);\n\n            case 'timestamp':\n                parent::setTimestamp((int) $value);\n                break;\n\n            case 'offset':\n                $this->setTimezone(static::safeCreateDateTimeZone($value / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR));\n                break;\n\n            case 'offsetMinutes':\n                $this->setTimezone(static::safeCreateDateTimeZone($value / static::MINUTES_PER_HOUR));\n                break;\n\n            case 'offsetHours':\n                $this->setTimezone(static::safeCreateDateTimeZone($value));\n                break;\n\n            case 'timezone':\n            case 'tz':\n                $this->setTimezone($value);\n                break;\n\n            default:\n                if (static::hasMacro($macro = 'set'.ucfirst($name))) {\n                    $this->$macro($value);\n\n                    break;\n                }\n\n                if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {\n                    throw new InvalidArgumentException(sprintf(\"Unknown setter '%s'\", $name));\n                }\n\n                $this->$name = $value;\n        }\n\n        return $this;\n    }\n\n    protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $subKey, $defaultValue)\n    {\n        $key = $baseKey.$keySuffix;\n        $standaloneKey = \"${key}_standalone\";\n        $baseTranslation = $this->getTranslationMessage($key);\n\n        if ($baseTranslation instanceof Closure) {\n            return $baseTranslation($this, $context, $subKey) ?: $defaultValue;\n        }\n\n        if (\n            $this->getTranslationMessage(\"$standaloneKey.$subKey\") &&\n            (!$context || ($regExp = $this->getTranslationMessage(\"${baseKey}_regexp\")) && !preg_match($regExp, $context))\n        ) {\n            $key = $standaloneKey;\n        }\n\n        return $this->getTranslationMessage(\"$key.$subKey\", null, $defaultValue);\n    }\n\n    /**\n     * Get the translation of the current week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context      whole format string\n     * @param string      $keySuffix    \"\", \"_short\" or \"_min\"\n     * @param string|null $defaultValue default value if translation missing\n     *\n     * @return string\n     */\n    public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null)\n    {\n        return $this->getTranslatedFormByRegExp('weekdays', $keySuffix, $context, $this->dayOfWeek, $defaultValue ?: $this->englishDayOfWeek);\n    }\n\n    /**\n     * Get the translation of the current short week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedShortDayName($context = null)\n    {\n        return $this->getTranslatedDayName($context, '_short', $this->shortEnglishDayOfWeek);\n    }\n\n    /**\n     * Get the translation of the current abbreviated week day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedMinDayName($context = null)\n    {\n        return $this->getTranslatedDayName($context, '_min', $this->shortEnglishDayOfWeek);\n    }\n\n    /**\n     * Get the translation of the current month day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context      whole format string\n     * @param string      $keySuffix    \"\" or \"_short\"\n     * @param string|null $defaultValue default value if translation missing\n     *\n     * @return string\n     */\n    public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null)\n    {\n        return $this->getTranslatedFormByRegExp('months', $keySuffix, $context, $this->month - 1, $defaultValue ?: $this->englishMonth);\n    }\n\n    /**\n     * Get the translation of the current short month day name (with context for languages with multiple forms).\n     *\n     * @param string|null $context whole format string\n     *\n     * @return string\n     */\n    public function getTranslatedShortMonthName($context = null)\n    {\n        return $this->getTranslatedMonthName($context, '_short', $this->shortEnglishMonth);\n    }\n\n    /**\n     * Get/set the day of year.\n     *\n     * @param int|null $value new value for day of year if using as setter.\n     *\n     * @return static|int\n     */\n    public function dayOfYear($value = null)\n    {\n        $dayOfYear = $this->dayOfYear;\n\n        return is_null($value) ? $dayOfYear : $this->addDays($value - $dayOfYear);\n    }\n\n    /**\n     * Get/set the weekday from 0 (Sunday) to 6 (Saturday).\n     *\n     * @param int|null $value new value for weekday if using as setter.\n     *\n     * @return static|int\n     */\n    public function weekday($value = null)\n    {\n        $dayOfWeek = ($this->dayOfWeek + 7 - intval($this->getTranslationMessage('first_day_of_week') ?? 0)) % 7;\n\n        return is_null($value) ? $dayOfWeek : $this->addDays($value - $dayOfWeek);\n    }\n\n    /**\n     * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday).\n     *\n     * @param int|null $value new value for weekday if using as setter.\n     *\n     * @return static|int\n     */\n    public function isoWeekday($value = null)\n    {\n        $dayOfWeekIso = $this->dayOfWeekIso;\n\n        return is_null($value) ? $dayOfWeekIso : $this->addDays($value - $dayOfWeekIso);\n    }\n\n    /**\n     * Set any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        new value for the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function setUnitNoOverflow($valueUnit, $value, $overflowUnit)\n    {\n        try {\n            $original = $this->copy();\n            /** @var static $date */\n            $date = $this->$valueUnit($value);\n            $end = $original->copy()->endOf($overflowUnit);\n            $start = $original->copy()->startOf($overflowUnit);\n            if ($date < $start) {\n                $date = $date->setDateTimeFrom($start);\n            } elseif ($date > $end) {\n                $date = $date->setDateTimeFrom($end);\n            }\n\n            return $date;\n        } catch (BadMethodCallException | ReflectionException $exception) {\n            throw new InvalidArgumentException(\"Unknown unit '$valueUnit'\", 0, $exception);\n        }\n    }\n\n    /**\n     * Add any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        amount to add to the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function addUnitNoOverflow($valueUnit, $value, $overflowUnit)\n    {\n        return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit + $value, $overflowUnit);\n    }\n\n    /**\n     * Subtract any unit to a new value without overflowing current other unit given.\n     *\n     * @param string $valueUnit    unit name to modify\n     * @param int    $value        amount to subtract to the input unit\n     * @param string $overflowUnit unit name to not overflow\n     *\n     * @return static\n     */\n    public function subUnitNoOverflow($valueUnit, $value, $overflowUnit)\n    {\n        return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit - $value, $overflowUnit);\n    }\n\n    /**\n     * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed.\n     *\n     * @param int|null $offset\n     *\n     * @return int|static\n     */\n    public function utcOffset(int $offset = null)\n    {\n        if (func_num_args() < 1) {\n            return $this->offsetMinutes;\n        }\n\n        return $this->setTimezone(static::safeCreateDateTimeZone($offset / static::MINUTES_PER_HOUR));\n    }\n\n    /**\n     * Set the date and time all together.\n     *\n     * @param int $year\n     * @param int $month\n     * @param int $day\n     * @param int $hour\n     * @param int $minute\n     * @param int $second\n     * @param int $microseconds\n     *\n     * @return static\n     */\n    public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0)\n    {\n        return $this->setDate((int) $year, (int) $month, (int) $day)->setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds);\n    }\n\n    /**\n     * Set the time by time string.\n     *\n     * @param string $time\n     *\n     * @return static\n     */\n    public function setTimeFromTimeString($time)\n    {\n        if (strpos($time, ':') === false) {\n            $time .= ':0';\n        }\n\n        return $this->modify($time);\n    }\n\n    /**\n     * @alias setTimezone\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function timezone($value)\n    {\n        return $this->setTimezone($value);\n    }\n\n    /**\n     * Set the timezone or returns the timezone name if no arguments passed.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static|string\n     */\n    public function tz($value = null)\n    {\n        if (func_num_args() < 1) {\n            return $this->tzName;\n        }\n\n        return $this->setTimezone($value);\n    }\n\n    /**\n     * Set the instance's timezone from a string or object.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function setTimezone($value)\n    {\n        /** @var static $date */\n        $date = parent::setTimezone(static::safeCreateDateTimeZone($value));\n        // https://bugs.php.net/bug.php?id=72338\n        // just workaround on this bug\n        $date->getTimestamp();\n\n        return $date;\n    }\n\n    /**\n     * Set the instance's timezone from a string or object and add/subtract the offset difference.\n     *\n     * @param \\DateTimeZone|string $value\n     *\n     * @return static\n     */\n    public function shiftTimezone($value)\n    {\n        $offset = $this->offset;\n        $date = $this->setTimezone($value);\n\n        return $date->addRealMicroseconds(($offset - $date->offset) * static::MICROSECONDS_PER_SECOND);\n    }\n\n    /**\n     * Set the instance's timezone to UTC.\n     *\n     * @return static\n     */\n    public function utc()\n    {\n        return $this->setTimezone('UTC');\n    }\n\n    /**\n     * Set the year, month, and date for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date now if null\n     *\n     * @return static\n     */\n    public function setDateFrom($date = null)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->setDate($date->year, $date->month, $date->day);\n    }\n\n    /**\n     * Set the hour, minute, second and microseconds for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date now if null\n     *\n     * @return static\n     */\n    public function setTimeFrom($date = null)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->setTime($date->hour, $date->minute, $date->second, $date->microsecond);\n    }\n\n    /**\n     * Set the date and time for this instance to that of the passed instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface $date\n     *\n     * @return static\n     */\n    public function setDateTimeFrom($date = null)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->modify($date->rawFormat('Y-m-d H:i:s.u'));\n    }\n\n    /**\n     * Get the days of the week\n     *\n     * @return array\n     */\n    public static function getDays()\n    {\n        return static::$days;\n    }\n\n    ///////////////////////////////////////////////////////////////////\n    /////////////////////// WEEK SPECIAL DAYS /////////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * Get the first day of week\n     *\n     * @return int\n     */\n    public static function getWeekStartsAt()\n    {\n        return static::$weekStartsAt;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the\n     *             'first_day_of_week' locale setting to change the start of week according to current locale\n     *             selected and implicitly the end of week.\n     *\n     * Set the first day of week\n     *\n     * @param int $day week start day\n     *\n     * @return void\n     */\n    public static function setWeekStartsAt($day)\n    {\n        static::$weekStartsAt = max(0, (7 + $day) % 7);\n    }\n\n    /**\n     * Get the last day of week\n     *\n     * @return int\n     */\n    public static function getWeekEndsAt()\n    {\n        return static::$weekEndsAt;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek\n     *             or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the\n     *             start of week according to current locale selected and implicitly the end of week.\n     *\n     * Set the last day of week\n     *\n     * @param int $day\n     *\n     * @return void\n     */\n    public static function setWeekEndsAt($day)\n    {\n        static::$weekEndsAt = max(0, (7 + $day) % 7);\n    }\n\n    /**\n     * Get weekend days\n     *\n     * @return array\n     */\n    public static function getWeekendDays()\n    {\n        return static::$weekendDays;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather consider week-end is always saturday and sunday, and if you have some custom\n     *             week-end days to handle, give to those days an other name and create a macro for them:\n     *\n     *             ```\n     *             Carbon::macro('isDayOff', function ($date) {\n     *                 return $date->isSunday() || $date->isMonday();\n     *             });\n     *             Carbon::macro('isNotDayOff', function ($date) {\n     *                 return !$date->isDayOff();\n     *             });\n     *             if ($someDate->isDayOff()) ...\n     *             if ($someDate->isNotDayOff()) ...\n     *             // Add 5 not-off days\n     *             $count = 5;\n     *             while ($someDate->isDayOff() || ($count-- > 0)) {\n     *                 $someDate->addDay();\n     *             }\n     *             ```\n     *\n     * Set weekend days\n     *\n     * @param array $days\n     *\n     * @return void\n     */\n    public static function setWeekendDays($days)\n    {\n        static::$weekendDays = $days;\n    }\n\n    /**\n     * Determine if a time string will produce a relative date.\n     *\n     * @param string $time\n     *\n     * @return bool true if time match a relative date, false if absolute or invalid time string\n     */\n    public static function hasRelativeKeywords($time)\n    {\n        if (!$time || strtotime($time) === false) {\n            return false;\n        }\n\n        $date1 = new DateTime('2000-01-01T00:00:00Z');\n        $date1->modify($time);\n        $date2 = new DateTime('2001-12-25T00:00:00Z');\n        $date2->modify($time);\n\n        return $date1 != $date2;\n    }\n\n    ///////////////////////////////////////////////////////////////////\n    /////////////////////// STRING FORMATTING /////////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use UTF-8 language packages on every machine.\n     *\n     * Set if UTF8 will be used for localized date/time.\n     *\n     * @param bool $utf8\n     */\n    public static function setUtf8($utf8)\n    {\n        static::$utf8 = $utf8;\n    }\n\n    /**\n     * Format the instance with the current locale.  You can set the current\n     * locale using setlocale() http://php.net/setlocale.\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function formatLocalized($format)\n    {\n        // Check for Windows to find and replace the %e modifier correctly.\n        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {\n            $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\\1%#d', $format); // @codeCoverageIgnore\n        }\n\n        $formatted = strftime($format, strtotime($this->toDateTimeString()));\n\n        return static::$utf8 ? utf8_encode($formatted) : $formatted;\n    }\n\n    /**\n     * Returns list of locale formats for ISO formatting.\n     *\n     * @param string|null $locale current locale used if null\n     *\n     * @return array\n     */\n    public function getIsoFormats($locale = null)\n    {\n        return [\n            'LT' => $this->getTranslationMessage('formats.LT', $locale, 'h:mm A'),\n            'LTS' => $this->getTranslationMessage('formats.LTS', $locale, 'h:mm:ss A'),\n            'L' => $this->getTranslationMessage('formats.L', $locale, 'MM/DD/YYYY'),\n            'LL' => $this->getTranslationMessage('formats.LL', $locale, 'MMMM D, YYYY'),\n            'LLL' => $this->getTranslationMessage('formats.LLL', $locale, 'MMMM D, YYYY h:mm A'),\n            'LLLL' => $this->getTranslationMessage('formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'),\n        ];\n    }\n\n    /**\n     * Returns list of calendar formats for ISO formatting.\n     *\n     * @param string|null $locale current locale used if null\n     *\n     * @return array\n     */\n    public function getCalendarFormats($locale = null)\n    {\n        return [\n            'sameDay' => $this->getTranslationMessage('calendar.sameDay', $locale, '[Today at] LT'),\n            'nextDay' => $this->getTranslationMessage('calendar.nextDay', $locale, '[Tomorrow at] LT'),\n            'nextWeek' => $this->getTranslationMessage('calendar.nextWeek', $locale, 'dddd [at] LT'),\n            'lastDay' => $this->getTranslationMessage('calendar.lastDay', $locale, '[Yesterday at] LT'),\n            'lastWeek' => $this->getTranslationMessage('calendar.lastWeek', $locale, '[Last] dddd [at] LT'),\n            'sameElse' => $this->getTranslationMessage('calendar.sameElse', $locale, 'L'),\n        ];\n    }\n\n    /**\n     * Returns list of locale units for ISO formatting.\n     *\n     * @return array\n     */\n    public static function getIsoUnits()\n    {\n        static $units = null;\n\n        if ($units === null) {\n            $units = [\n                'OD' => ['getAltNumber', ['day']],\n                'OM' => ['getAltNumber', ['month']],\n                'OY' => ['getAltNumber', ['year']],\n                'OH' => ['getAltNumber', ['hour']],\n                'Oh' => ['getAltNumber', ['h']],\n                'Om' => ['getAltNumber', ['minute']],\n                'Os' => ['getAltNumber', ['second']],\n                'D' => 'day',\n                'DD' => ['rawFormat', ['d']],\n                'Do' => ['ordinal', ['day', 'D']],\n                'd' => 'dayOfWeek',\n                'dd' => function (CarbonInterface $date, $originalFormat = null) {\n                    return $date->getTranslatedMinDayName($originalFormat);\n                },\n                'ddd' => function (CarbonInterface $date, $originalFormat = null) {\n                    return $date->getTranslatedShortDayName($originalFormat);\n                },\n                'dddd' => function (CarbonInterface $date, $originalFormat = null) {\n                    return $date->getTranslatedDayName($originalFormat);\n                },\n                'DDD' => 'dayOfYear',\n                'DDDD' => ['getPaddedUnit', ['dayOfYear', 3]],\n                'DDDo' => ['ordinal', ['dayOfYear', 'DDD']],\n                'e' => ['weekday', []],\n                'E' => 'dayOfWeekIso',\n                'H' => ['rawFormat', ['G']],\n                'HH' => ['rawFormat', ['H']],\n                'h' => ['rawFormat', ['g']],\n                'hh' => ['rawFormat', ['h']],\n                'k' => 'noZeroHour',\n                'kk' => ['getPaddedUnit', ['noZeroHour']],\n                'hmm' => ['rawFormat', ['gi']],\n                'hmmss' => ['rawFormat', ['gis']],\n                'Hmm' => ['rawFormat', ['Gi']],\n                'Hmmss' => ['rawFormat', ['Gis']],\n                'm' => 'minute',\n                'mm' => ['rawFormat', ['i']],\n                'a' => 'meridiem',\n                'A' => 'upperMeridiem',\n                's' => 'second',\n                'ss' => ['getPaddedUnit', ['second']],\n                'S' => function (CarbonInterface $date) {\n                    return strval((string) floor($date->micro / 100000));\n                },\n                'SS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro / 10000), 2, '0', STR_PAD_LEFT);\n                },\n                'SSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro / 1000), 3, '0', STR_PAD_LEFT);\n                },\n                'SSSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro / 100), 4, '0', STR_PAD_LEFT);\n                },\n                'SSSSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro / 10), 5, '0', STR_PAD_LEFT);\n                },\n                'SSSSSS' => ['getPaddedUnit', ['micro', 6]],\n                'SSSSSSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro * 10), 7, '0', STR_PAD_LEFT);\n                },\n                'SSSSSSSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro * 100), 8, '0', STR_PAD_LEFT);\n                },\n                'SSSSSSSSS' => function (CarbonInterface $date) {\n                    return str_pad((string) floor($date->micro * 1000), 9, '0', STR_PAD_LEFT);\n                },\n                'M' => 'month',\n                'MM' => ['rawFormat', ['m']],\n                'MMM' => function (CarbonInterface $date, $originalFormat = null) {\n                    $month = $date->getTranslatedShortMonthName($originalFormat);\n                    $suffix = $date->getTranslationMessage('mmm_suffix');\n                    if ($suffix && $month !== $date->monthName) {\n                        $month .= $suffix;\n                    }\n\n                    return $month;\n                },\n                'MMMM' => function (CarbonInterface $date, $originalFormat = null) {\n                    return $date->getTranslatedMonthName($originalFormat);\n                },\n                'Mo' => ['ordinal', ['month', 'M']],\n                'Q' => 'quarter',\n                'Qo' => ['ordinal', ['quarter', 'M']],\n                'G' => 'isoWeekYear',\n                'GG' => ['getPaddedUnit', ['isoWeekYear']],\n                'GGG' => ['getPaddedUnit', ['isoWeekYear', 3]],\n                'GGGG' => ['getPaddedUnit', ['isoWeekYear', 4]],\n                'GGGGG' => ['getPaddedUnit', ['isoWeekYear', 5]],\n                'g' => 'weekYear',\n                'gg' => ['getPaddedUnit', ['weekYear']],\n                'ggg' => ['getPaddedUnit', ['weekYear', 3]],\n                'gggg' => ['getPaddedUnit', ['weekYear', 4]],\n                'ggggg' => ['getPaddedUnit', ['weekYear', 5]],\n                'W' => 'isoWeek',\n                'WW' => ['getPaddedUnit', ['isoWeek']],\n                'Wo' => ['ordinal', ['isoWeek', 'W']],\n                'w' => 'week',\n                'ww' => ['getPaddedUnit', ['week']],\n                'wo' => ['ordinal', ['week', 'w']],\n                'x' => ['valueOf', []],\n                'X' => 'timestamp',\n                'Y' => 'year',\n                'YY' => ['rawFormat', ['y']],\n                'YYYY' => ['getPaddedUnit', ['year', 4]],\n                'YYYYY' => ['getPaddedUnit', ['year', 5]],\n                'YYYYYY' => function (CarbonInterface $date) {\n                    return ($date->year < 0 ? '' : '+').$date->getPaddedUnit('year', 6);\n                },\n                'z' => 'tzAbbrName',\n                'zz' => 'tzName',\n                'Z' => ['getOffsetString', []],\n                'ZZ' => ['getOffsetString', ['']],\n            ];\n        }\n\n        return $units;\n    }\n\n    /**\n     * Returns a unit of the instance padded with 0 by default or any other string if specified.\n     *\n     * @param string $unit      Carbon unit name\n     * @param int    $length    Length of the output (2 by default)\n     * @param string $padString String to use for padding (\"0\" by default)\n     * @param int    $padType   Side(s) to pad (STR_PAD_LEFT by default)\n     *\n     * @return string\n     */\n    public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = STR_PAD_LEFT)\n    {\n        return ($this->$unit < 0 ? '-' : '').str_pad((string) abs($this->$unit), $length, $padString, $padType);\n    }\n\n    /**\n     * Return a property with its ordinal.\n     *\n     * @param string      $key\n     * @param string|null $period\n     *\n     * @return string\n     */\n    public function ordinal(string $key, string $period = null): string\n    {\n        $number = $this->$key;\n        $result = $this->translate('ordinal', [\n            ':number' => $number,\n            ':period' => $period,\n        ]);\n\n        return strval($result === 'ordinal' ? $number : $result);\n    }\n\n    /**\n     * Return the meridiem of the current time in the current locale.\n     *\n     * @param bool $isLower if true, returns lowercase variant if available in the current locale.\n     *\n     * @return string\n     */\n    public function meridiem(bool $isLower = false): string\n    {\n        $hour = $this->hour;\n        $index = $hour < 12 ? 0 : 1;\n\n        if ($isLower) {\n            $key = 'meridiem.'.($index + 2);\n            $result = $this->translate($key);\n\n            if ($result !== $key) {\n                return $result;\n            }\n        }\n\n        $key = \"meridiem.$index\";\n        $result = $this->translate($key);\n        if ($result === $key) {\n            $result = $this->translate('meridiem', [\n                ':hour' => $this->hour,\n                ':minute' => $this->minute,\n                ':isLower' => $isLower,\n            ]);\n\n            if ($result === 'meridiem') {\n                return $isLower ? $this->latinMeridiem : $this->latinUpperMeridiem;\n            }\n        } elseif ($isLower) {\n            $result = mb_strtolower($result);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Returns the alternative number if available in the current locale.\n     *\n     * @param string $key date property\n     *\n     * @return string\n     */\n    public function getAltNumber(string $key): string\n    {\n        $number = strlen($key) > 1 ? $this->$key : $this->rawFormat('h');\n        $translateKey = \"alt_numbers.$number\";\n        $symbol = $this->translate($translateKey);\n\n        if ($symbol !== $translateKey) {\n            return $symbol;\n        }\n\n        if ($number > 99 && $this->translate('alt_numbers.99') !== 'alt_numbers.99') {\n            $start = '';\n            foreach ([10000, 1000, 100] as $exp) {\n                $key = \"alt_numbers_pow.$exp\";\n                if ($number >= $exp && $number < $exp * 10 && ($pow = $this->translate($key)) !== $key) {\n                    $unit = floor($number / $exp);\n                    $number -= $unit * $exp;\n                    $start .= ($unit > 1 ? $this->translate(\"alt_numbers.$unit\") : '').$pow;\n                }\n            }\n            $result = '';\n            while ($number) {\n                $chunk = $number % 100;\n                $result = $this->translate(\"alt_numbers.$chunk\").$result;\n                $number = floor($number / 100);\n            }\n\n            return \"$start$result\";\n        }\n\n        if ($number > 9 && $this->translate('alt_numbers.9') !== 'alt_numbers.9') {\n            $result = '';\n            while ($number) {\n                $chunk = $number % 10;\n                $result = $this->translate(\"alt_numbers.$chunk\").$result;\n                $number = floor($number / 10);\n            }\n\n            return $result;\n        }\n\n        return $number;\n    }\n\n    /**\n     * Format in the current language using ISO replacement patterns.\n     *\n     * @param string      $format\n     * @param string|null $originalFormat provide context if a chunk has been passed alone\n     *\n     * @return string\n     */\n    public function isoFormat(string $format, string $originalFormat = null): string\n    {\n        $result = '';\n        $length = mb_strlen($format);\n        $originalFormat = $originalFormat ?: $format;\n        $inEscaped = false;\n        $formats = null;\n        $units = null;\n\n        for ($i = 0; $i < $length; $i++) {\n            $char = mb_substr($format, $i, 1);\n\n            if ($char === '\\\\') {\n                $result .= mb_substr($format, ++$i, 1);\n\n                continue;\n            }\n\n            if ($char === '[' && !$inEscaped) {\n                $inEscaped = true;\n\n                continue;\n            }\n\n            if ($char === ']' && $inEscaped) {\n                $inEscaped = false;\n\n                continue;\n            }\n\n            if ($inEscaped) {\n                $result .= $char;\n\n                continue;\n            }\n\n            $input = mb_substr($format, $i);\n\n            if (preg_match('/^(LTS|LT|[Ll]{1,4})/', $input, $match)) {\n                if ($formats === null) {\n                    $formats = $this->getIsoFormats();\n                }\n\n                $code = $match[0];\n                $sequence = $formats[$code] ?? preg_replace_callback(\n                    '/MMMM|MM|DD|dddd/',\n                    function ($code) {\n                        return mb_substr($code[0], 1);\n                    },\n                    $formats[strtoupper($code)] ?? ''\n                );\n                $rest = mb_substr($format, $i + mb_strlen($code));\n                $format = mb_substr($format, 0, $i).$sequence.$rest;\n                $length = mb_strlen($format);\n                $input = $sequence.$rest;\n            }\n\n            if (preg_match('/^'.CarbonInterface::ISO_FORMAT_REGEXP.'/', $input, $match)) {\n                $code = $match[0];\n\n                if ($units === null) {\n                    $units = static::getIsoUnits();\n                }\n\n                $sequence = $units[$code] ?? '';\n\n                if ($sequence instanceof Closure) {\n                    $sequence = $sequence($this, $originalFormat);\n                } elseif (is_array($sequence)) {\n                    try {\n                        $sequence = $this->{$sequence[0]}(...$sequence[1]);\n                    } catch (ReflectionException | InvalidArgumentException | BadMethodCallException $e) {\n                        $sequence = '';\n                    }\n                } elseif (is_string($sequence)) {\n                    $sequence = $this->$sequence ?? $code;\n                }\n\n                $format = mb_substr($format, 0, $i).$sequence.mb_substr($format, $i + mb_strlen($code));\n                $i += mb_strlen(\"$sequence\") - 1;\n                $length = mb_strlen($format);\n                $char = $sequence;\n            }\n\n            $result .= $char;\n        }\n\n        return $result;\n    }\n\n    /**\n     * List of replacements from date() format to isoFormat().\n     *\n     * @return array\n     */\n    public static function getFormatsToIsoReplacements()\n    {\n        static $replacements = null;\n\n        if ($replacements === null) {\n            $replacements = [\n                'd' => true,\n                'D' => 'ddd',\n                'j' => true,\n                'l' => 'dddd',\n                'N' => true,\n                'S' => function ($date) {\n                    $day = $date->rawFormat('j');\n\n                    return str_replace(\"$day\", '', $date->isoFormat('Do'));\n                },\n                'w' => true,\n                'z' => true,\n                'W' => true,\n                'F' => 'MMMM',\n                'm' => true,\n                'M' => 'MMM',\n                'n' => true,\n                't' => true,\n                'L' => true,\n                'o' => true,\n                'Y' => true,\n                'y' => true,\n                'a' => 'a',\n                'A' => 'A',\n                'B' => true,\n                'g' => true,\n                'G' => true,\n                'h' => true,\n                'H' => true,\n                'i' => true,\n                's' => true,\n                'u' => true,\n                'v' => true,\n                'E' => true,\n                'I' => true,\n                'O' => true,\n                'P' => true,\n                'Z' => true,\n                'c' => true,\n                'r' => true,\n                'U' => true,\n            ];\n        }\n\n        return $replacements;\n    }\n\n    /**\n     * Format as ->format() do (using date replacements patterns from http://php.net/manual/fr/function.date.php)\n     * but translate words whenever possible (months, day names, etc.) using the current locale.\n     *\n     * @param string $format\n     *\n     * @return string\n     */\n    public function translatedFormat(string $format): string\n    {\n        $replacements = static::getFormatsToIsoReplacements();\n        $context = '';\n        $isoFormat = '';\n        $length = mb_strlen($format);\n\n        for ($i = 0; $i < $length; $i++) {\n            $char = mb_substr($format, $i, 1);\n\n            if ($char === '\\\\') {\n                $replacement = mb_substr($format, $i, 2);\n                $isoFormat .= $replacement;\n                $i++;\n\n                continue;\n            }\n\n            if (!isset($replacements[$char])) {\n                $replacement = preg_match('/^[A-Za-z]$/', $char) ? \"\\\\$char\" : $char;\n                $isoFormat .= $replacement;\n                $context .= $replacement;\n\n                continue;\n            }\n\n            $replacement = $replacements[$char];\n\n            if ($replacement === true) {\n                static $contextReplacements = null;\n\n                if ($contextReplacements === null) {\n                    $contextReplacements = [\n                        'm' => 'MM',\n                        'd' => 'DD',\n                        't' => 'D',\n                        'j' => 'D',\n                        'N' => 'e',\n                        'w' => 'e',\n                        'n' => 'M',\n                        'o' => 'YYYY',\n                        'Y' => 'YYYY',\n                        'y' => 'YY',\n                        'g' => 'h',\n                        'G' => 'H',\n                        'h' => 'hh',\n                        'H' => 'HH',\n                        'i' => 'mm',\n                        's' => 'ss',\n                    ];\n                }\n\n                $isoFormat .= '['.$this->rawFormat($char).']';\n                $context .= $contextReplacements[$char] ?? ' ';\n\n                continue;\n            }\n\n            if ($replacement instanceof Closure) {\n                $replacement = '['.$replacement($this).']';\n                $isoFormat .= $replacement;\n                $context .= $replacement;\n\n                continue;\n            }\n\n            $isoFormat .= $replacement;\n            $context .= $replacement;\n        }\n\n        return $this->isoFormat($isoFormat, $context);\n    }\n\n    /**\n     * Returns the offset hour and minute formatted with +/- and a given separator (\":\" by default).\n     * For example, if the time zone is 9 hours 30 minutes, you'll get \"+09:30\", with \"@@\" as first\n     * argument, \"+09@@30\", with \"\" as first argument, \"+0930\". Negative offset will return something\n     * like \"-12:00\".\n     *\n     * @param string $separator string to place between hours and minutes (\":\" by default)\n     *\n     * @return string\n     */\n    public function getOffsetString($separator = ':')\n    {\n        $second = $this->getOffset();\n        $symbol = $second < 0 ? '-' : '+';\n        $minute = abs($second) / static::SECONDS_PER_MINUTE;\n        $hour = str_pad((string) floor($minute / static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT);\n        $minute = str_pad((string) ($minute % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT);\n\n        return \"$symbol$hour$separator$minute\";\n    }\n\n    protected static function executeStaticCallable($macro, ...$parameters)\n    {\n        if ($macro instanceof Closure) {\n            return call_user_func_array(Closure::bind($macro, null, get_called_class()), $parameters);\n        }\n\n        return call_user_func_array($macro, $parameters);\n    }\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @throws \\BadMethodCallException\n     *\n     * @return mixed\n     */\n    public static function __callStatic($method, $parameters)\n    {\n        if (!static::hasMacro($method)) {\n            foreach (static::getGenericMacros() as $callback) {\n                try {\n                    return static::executeStaticCallable($callback, $method, ...$parameters);\n                } catch (BadMethodCallException $exception) {\n                    continue;\n                }\n            }\n            if (static::isStrictModeEnabled()) {\n                throw new BadMethodCallException(sprintf(\n                    'Method %s::%s does not exist.', static::class, $method\n                ));\n            }\n\n            return null;\n        }\n\n        return static::executeStaticCallable(static::$globalMacros[$method], ...$parameters);\n    }\n\n    /**\n     * Set specified unit to new given value.\n     *\n     * @param string $unit  year, month, day, hour, minute, second or microsecond\n     * @param int    $value new value for given unit\n     *\n     * @return static\n     */\n    public function setUnit($unit, $value = null)\n    {\n        $unit = static::singularUnit($unit);\n        $dateUnits = ['year', 'month', 'day'];\n        if (in_array($unit, $dateUnits)) {\n            return $this->setDate(...array_map(function ($name) use ($unit, $value) {\n                return (int) ($name === $unit ? $value : $this->$name);\n            }, $dateUnits));\n        }\n\n        $units = ['hour', 'minute', 'second', 'micro'];\n        if ($unit === 'millisecond' || $unit === 'milli') {\n            $value *= 1000;\n            $unit = 'micro';\n        } elseif ($unit === 'microsecond') {\n            $unit = 'micro';\n        }\n\n        return $this->setTime(...array_map(function ($name) use ($unit, $value) {\n            return (int) ($name === $unit ? $value : $this->$name);\n        }, $units));\n    }\n\n    /**\n     * Returns standardized singular of a given singular/plural unit name (in English).\n     *\n     * @param string $unit\n     *\n     * @return string\n     */\n    public static function singularUnit(string $unit): string\n    {\n        $unit = rtrim(strtolower($unit), 's');\n\n        if ($unit === 'centurie') {\n            return 'century';\n        }\n\n        if ($unit === 'millennia') {\n            return 'millennium';\n        }\n\n        return $unit;\n    }\n\n    /**\n     * Returns standardized plural of a given singular/plural unit name (in English).\n     *\n     * @param string $unit\n     *\n     * @return string\n     */\n    public static function pluralUnit(string $unit): string\n    {\n        $unit = rtrim(strtolower($unit), 's');\n\n        if ($unit === 'century') {\n            return 'centuries';\n        }\n\n        if ($unit === 'millennium' || $unit === 'millennia') {\n            return 'millennia';\n        }\n\n        return \"${unit}s\";\n    }\n\n    protected function executeCallable($macro, ...$parameters)\n    {\n        if ($macro instanceof Closure) {\n            return call_user_func_array($macro->bindTo($this, static::class), $parameters);\n        }\n\n        return call_user_func_array($macro, $parameters);\n    }\n\n    protected static function getGenericMacros()\n    {\n        foreach (static::$globalGenericMacros as $list) {\n            foreach ($list as $macro) {\n                yield $macro;\n            }\n        }\n    }\n\n    /**\n     * Dynamically handle calls to the class.\n     *\n     * @param string $method     magic method name called\n     * @param array  $parameters parameters list\n     *\n     * @throws \\BadMethodCallException|\\ReflectionException\n     *\n     * @return mixed\n     */\n    public function __call($method, $parameters)\n    {\n        $diffSizes = [\n            // @mode diffForHumans\n            'short' => true,\n            // @mode diffForHumans\n            'long' => false,\n        ];\n        $diffSyntaxModes = [\n            // @call diffForHumans\n            'Absolute' => CarbonInterface::DIFF_ABSOLUTE,\n            // @call diffForHumans\n            'Relative' => CarbonInterface::DIFF_RELATIVE_AUTO,\n            // @call diffForHumans\n            'RelativeToNow' => CarbonInterface::DIFF_RELATIVE_TO_NOW,\n            // @call diffForHumans\n            'RelativeToOther' => CarbonInterface::DIFF_RELATIVE_TO_OTHER,\n        ];\n        $sizePattern = implode('|', array_keys($diffSizes));\n        $syntaxPattern = implode('|', array_keys($diffSyntaxModes));\n\n        if (preg_match(\"/^(?<size>$sizePattern)(?<syntax>$syntaxPattern)DiffForHumans$/\", $method, $match)) {\n            $dates = array_filter($parameters, function ($parameter) {\n                return $parameter instanceof DateTimeInterface;\n            });\n            $other = null;\n\n            if (count($dates)) {\n                $key = key($dates);\n                $other = current($dates);\n                array_splice($parameters, $key, 1);\n            }\n\n            return $this->diffForHumans($other, $diffSyntaxModes[$match['syntax']], $diffSizes[$match['size']], ...$parameters);\n        }\n\n        $action = substr($method, 0, 4);\n\n        if ($action !== 'ceil') {\n            $action = substr($method, 0, 5);\n        }\n\n        if (in_array($action, ['round', 'floor', 'ceil'])) {\n            return $this->{$action.'Unit'}(substr($method, strlen($action)), ...$parameters);\n        }\n\n        $unit = rtrim($method, 's');\n\n        if (substr($unit, 0, 2) === 'is') {\n            $word = substr($unit, 2);\n\n            if (in_array($word, static::$days)) {\n                return $this->isDayOfWeek($word);\n            }\n\n            switch ($word) {\n                // @call is Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)\n                case 'Utc':\n                case 'UTC':\n                    return $this->utc;\n                // @call is Check if the current instance has non-UTC timezone.\n                case 'Local':\n                    return $this->local;\n                // @call is Check if the current instance is a valid date.\n                case 'Valid':\n                    return $this->year !== 0;\n                // @call is Check if the current instance is in a daylight saving time.\n                case 'DST':\n                    return $this->dst;\n            }\n        }\n\n        $action = substr($unit, 0, 3);\n        $overflow = null;\n\n        if ($action === 'set') {\n            $unit = strtolower(substr($unit, 3));\n        }\n\n        if (in_array($unit, static::$units)) {\n            return $this->setUnit($unit, ...$parameters);\n        }\n\n        if ($action === 'add' || $action === 'sub') {\n            $unit = substr($unit, 3);\n\n            if (substr($unit, 0, 4) === 'Real') {\n                $unit = static::singularUnit(substr($unit, 4));\n\n                return $this->{\"${action}RealUnit\"}($unit, ...$parameters);\n            }\n\n            if (preg_match('/^(Month|Quarter|Year|Decade|Century|Centurie|Millennium|Millennia)s?(No|With|Without|WithNo)Overflow$/', $unit, $match)) {\n                $unit = $match[1];\n                $overflow = $match[2] === 'With';\n            }\n\n            $unit = static::singularUnit($unit);\n        }\n\n        if (static::isModifiableUnit($unit)) {\n            return $this->{\"${action}Unit\"}($unit, $parameters[0] ?? 1, $overflow);\n        }\n\n        $sixFirstLetters = substr($unit, 0, 6);\n        $factor = -1;\n\n        if ($sixFirstLetters === 'isLast') {\n            $sixFirstLetters = 'isNext';\n            $factor = 1;\n        }\n\n        if ($sixFirstLetters === 'isNext') {\n            $lowerUnit = strtolower(substr($unit, 6));\n\n            if (static::isModifiableUnit($lowerUnit)) {\n                return $this->copy()->addUnit($lowerUnit, $factor, false)->isSameUnit($lowerUnit, ...$parameters);\n            }\n        }\n\n        if ($sixFirstLetters === 'isSame') {\n            try {\n                return $this->isSameUnit(strtolower(substr($unit, 6)), ...$parameters);\n            } catch (InvalidArgumentException $exception) {\n                // Try next\n            }\n        }\n\n        if (substr($unit, 0, 9) === 'isCurrent') {\n            try {\n                return $this->isCurrentUnit(strtolower(substr($unit, 9)));\n            } catch (InvalidArgumentException | BadMethodCallException $exception) {\n                // Try macros\n            }\n        }\n\n        if (substr($method, -5) === 'Until') {\n            try {\n                $unit = static::singularUnit(substr($method, 0, -5));\n\n                return $this->range($parameters[0] ?? $this, $parameters[1] ?? 1, $unit);\n            } catch (InvalidArgumentException $exception) {\n                // Try next\n            }\n        }\n\n        if (!static::hasMacro($method)) {\n            foreach ([$this->localGenericMacros ?: [], static::getGenericMacros()] as $list) {\n                foreach ($list as $callback) {\n                    try {\n                        return $this->executeCallable($callback, $method, ...$parameters);\n                    } catch (BadMethodCallException $exception) {\n                        continue;\n                    }\n                }\n            }\n            if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {\n                throw new BadMethodCallException(\"Method $method does not exist.\");\n            }\n\n            return null;\n        }\n\n        return $this->executeCallable(($this->localMacros ?? [])[$method] ?? static::$globalMacros[$method], ...$parameters);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Difference.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\Carbon;\nuse Carbon\\CarbonImmutable;\nuse Carbon\\CarbonInterface;\nuse Carbon\\CarbonInterval;\nuse Carbon\\CarbonPeriod;\nuse Carbon\\Translator;\nuse Closure;\nuse DateInterval;\nuse DateTimeInterface;\n\n/**\n * Trait Difference.\n *\n * Depends on the following methods:\n *\n * @method bool lessThan($date)\n * @method DateInterval diff(\\DateTimeInterface $date, bool $absolute = false)\n * @method static copy()\n * @method static resolveCarbon($date = null)\n * @method static Translator translator()\n */\ntrait Difference\n{\n    /**\n     * @param DateInterval $diff\n     * @param bool         $absolute\n     *\n     * @return CarbonInterval\n     */\n    protected static function fixDiffInterval(DateInterval $diff, $absolute)\n    {\n        $diff = CarbonInterval::instance($diff);\n        // Work-around for https://bugs.php.net/bug.php?id=77145\n        // @codeCoverageIgnoreStart\n        if ($diff->f > 0 && $diff->y === -1 && $diff->m === 11 && $diff->d >= 27 && $diff->h === 23 && $diff->i === 59 && $diff->s === 59) {\n            $diff->y = 0;\n            $diff->m = 0;\n            $diff->d = 0;\n            $diff->h = 0;\n            $diff->i = 0;\n            $diff->s = 0;\n            $diff->f = (1000000 - round($diff->f * 1000000)) / 1000000;\n            $diff->invert();\n        } elseif ($diff->f < 0) {\n            if ($diff->s !== 0 || $diff->i !== 0 || $diff->h !== 0 || $diff->d !== 0 || $diff->m !== 0 || $diff->y !== 0) {\n                $diff->f = (round($diff->f * 1000000) + 1000000) / 1000000;\n                $diff->s--;\n\n                if ($diff->s < 0) {\n                    $diff->s += 60;\n                    $diff->i--;\n\n                    if ($diff->i < 0) {\n                        $diff->i += 60;\n                        $diff->h--;\n\n                        if ($diff->h < 0) {\n                            $diff->h += 24;\n                            $diff->d--;\n\n                            if ($diff->d < 0) {\n                                $diff->d += 30;\n                                $diff->m--;\n\n                                if ($diff->m < 0) {\n                                    $diff->m += 12;\n                                    $diff->y--;\n                                }\n                            }\n                        }\n                    }\n                }\n            } else {\n                $diff->f *= -1;\n                $diff->invert();\n            }\n        }\n        // @codeCoverageIgnoreEnd\n\n        if ($absolute && $diff->invert) {\n            $diff->invert();\n        }\n\n        return $diff;\n    }\n\n    /**\n     * Get the difference as a CarbonInterval instance\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return CarbonInterval\n     */\n    public function diffAsCarbonInterval($date = null, $absolute = true)\n    {\n        return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute);\n    }\n\n    /**\n     * Get the difference in years\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInYears($date = null, $absolute = true)\n    {\n        return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%y');\n    }\n\n    /**\n     * Get the difference in months\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMonths($date = null, $absolute = true)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->diffInYears($date, $absolute) * static::MONTHS_PER_YEAR + (int) $this->diff($date, $absolute)->format('%r%m');\n    }\n\n    /**\n     * Get the difference in weeks\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeeks($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInDays($date, $absolute) / static::DAYS_PER_WEEK);\n    }\n\n    /**\n     * Get the difference in days\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInDays($date = null, $absolute = true)\n    {\n        return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%a');\n    }\n\n    /**\n     * Get the difference in days using a filter closure\n     *\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true)\n    {\n        return $this->diffFiltered(CarbonInterval::day(), $callback, $date, $absolute);\n    }\n\n    /**\n     * Get the difference in hours using a filter closure\n     *\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true)\n    {\n        return $this->diffFiltered(CarbonInterval::hour(), $callback, $date, $absolute);\n    }\n\n    /**\n     * Get the difference by the given interval using a filter closure\n     *\n     * @param CarbonInterval                                         $ci       An interval to traverse by\n     * @param Closure                                                $callback\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true)\n    {\n        $start = $this;\n        $end = $this->resolveCarbon($date);\n        $inverse = false;\n\n        if ($end < $start) {\n            $start = $end;\n            $end = $this;\n            $inverse = true;\n        }\n\n        $options = CarbonPeriod::EXCLUDE_END_DATE | ($this->isMutable() ? 0 : CarbonPeriod::IMMUTABLE);\n        $diff = $ci->toPeriod($start, $end, $options)->filter($callback)->count();\n\n        return $inverse && !$absolute ? -$diff : $diff;\n    }\n\n    /**\n     * Get the difference in weekdays\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeekdays($date = null, $absolute = true)\n    {\n        return $this->diffInDaysFiltered(function (CarbonInterface $date) {\n            return $date->isWeekday();\n        }, $date, $absolute);\n    }\n\n    /**\n     * Get the difference in weekend days using a filter\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInWeekendDays($date = null, $absolute = true)\n    {\n        return $this->diffInDaysFiltered(function (CarbonInterface $date) {\n            return $date->isWeekend();\n        }, $date, $absolute);\n    }\n\n    /**\n     * Get the difference in hours.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInHours($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR);\n    }\n\n    /**\n     * Get the difference in hours using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealHours($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR);\n    }\n\n    /**\n     * Get the difference in minutes.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMinutes($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE);\n    }\n\n    /**\n     * Get the difference in minutes using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMinutes($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE);\n    }\n\n    /**\n     * Get the difference in seconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInSeconds($date = null, $absolute = true)\n    {\n        $diff = $this->diff($this->resolveCarbon($date));\n        if ($diff->days === 0) {\n            $diff = static::fixDiffInterval($diff, $absolute);\n        }\n        $value = ((($diff->days * static::HOURS_PER_DAY) +\n            $diff->h) * static::MINUTES_PER_HOUR +\n            $diff->i) * static::SECONDS_PER_MINUTE +\n            $diff->s;\n\n        return $absolute || !$diff->invert ? $value : -$value;\n    }\n\n    /**\n     * Get the difference in microseconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMicroseconds($date = null, $absolute = true)\n    {\n        $diff = $this->diff($this->resolveCarbon($date));\n        $value = (int) round((((($diff->days * static::HOURS_PER_DAY) +\n            $diff->h) * static::MINUTES_PER_HOUR +\n            $diff->i) * static::SECONDS_PER_MINUTE +\n            ($diff->f + $diff->s)) * static::MICROSECONDS_PER_SECOND);\n\n        return $absolute || !$diff->invert ? $value : -$value;\n    }\n\n    /**\n     * Get the difference in milliseconds.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInMilliseconds($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND);\n    }\n\n    /**\n     * Get the difference in seconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealSeconds($date = null, $absolute = true)\n    {\n        /** @var CarbonInterface $date */\n        $date = $this->resolveCarbon($date);\n        $value = $date->getTimestamp() - $this->getTimestamp();\n\n        return $absolute ? abs($value) : $value;\n    }\n\n    /**\n     * Get the difference in microseconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMicroseconds($date = null, $absolute = true)\n    {\n        /** @var CarbonInterface $date */\n        $date = $this->resolveCarbon($date);\n        $value = ($date->timestamp - $this->timestamp) * static::MICROSECONDS_PER_SECOND +\n            $date->micro - $this->micro;\n\n        return $absolute ? abs($value) : $value;\n    }\n\n    /**\n     * Get the difference in milliseconds using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return int\n     */\n    public function diffInRealMilliseconds($date = null, $absolute = true)\n    {\n        return (int) ($this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND);\n    }\n\n    /**\n     * Get the difference in seconds as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInSeconds($date = null, $absolute = true)\n    {\n        return $this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND;\n    }\n\n    /**\n     * Get the difference in minutes as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInMinutes($date = null, $absolute = true)\n    {\n        return $this->floatDiffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE;\n    }\n\n    /**\n     * Get the difference in hours as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInHours($date = null, $absolute = true)\n    {\n        return $this->floatDiffInMinutes($date, $absolute) / static::MINUTES_PER_HOUR;\n    }\n\n    /**\n     * Get the difference in days as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInDays($date = null, $absolute = true)\n    {\n        $hoursDiff = $this->floatDiffInHours($date, $absolute);\n\n        return ($hoursDiff < 0 ? -1 : 1) * $this->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;\n    }\n\n    /**\n     * Get the difference in months as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInMonths($date = null, $absolute = true)\n    {\n        $start = $this;\n        $end = $this->resolveCarbon($date);\n        $ascending = ($start <= $end);\n        $sign = $absolute || $ascending ? 1 : -1;\n        if (!$ascending) {\n            $_end = $start;\n            $start = $end;\n            $end = $_end;\n            unset($_end);\n        }\n        $monthsDiff = $start->diffInMonths($end);\n        /** @var Carbon|CarbonImmutable $floorEnd */\n        $floorEnd = $start->copy()->addMonths($monthsDiff);\n\n        if ($floorEnd >= $end) {\n            return $sign * $monthsDiff;\n        }\n\n        /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */\n        $startOfMonthAfterFloorEnd = $floorEnd->copy()->addMonth()->startOfMonth();\n\n        if ($startOfMonthAfterFloorEnd > $end) {\n            return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInMonth);\n        }\n\n        return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInDays($end) / $end->daysInMonth);\n    }\n\n    /**\n     * Get the difference in year as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInYears($date = null, $absolute = true)\n    {\n        $start = $this;\n        $end = $this->resolveCarbon($date);\n        $ascending = ($start <= $end);\n        $sign = $absolute || $ascending ? 1 : -1;\n        if (!$ascending) {\n            $_end = $start;\n            $start = $end;\n            $end = $_end;\n            unset($_end);\n        }\n        $yearsDiff = $start->diffInYears($end);\n        /** @var Carbon|CarbonImmutable $floorEnd */\n        $floorEnd = $start->copy()->addYears($yearsDiff);\n\n        if ($floorEnd >= $end) {\n            return $sign * $yearsDiff;\n        }\n\n        /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */\n        $startOfYearAfterFloorEnd = $floorEnd->copy()->addYear()->startOfYear();\n\n        if ($startOfYearAfterFloorEnd > $end) {\n            return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInYear);\n        }\n\n        return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInDays($end) / $end->daysInYear);\n    }\n\n    /**\n     * Get the difference in seconds as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealSeconds($date = null, $absolute = true)\n    {\n        return $this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND;\n    }\n\n    /**\n     * Get the difference in minutes as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealMinutes($date = null, $absolute = true)\n    {\n        return $this->floatDiffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE;\n    }\n\n    /**\n     * Get the difference in hours as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealHours($date = null, $absolute = true)\n    {\n        return $this->floatDiffInRealMinutes($date, $absolute) / static::MINUTES_PER_HOUR;\n    }\n\n    /**\n     * Get the difference in days as float (microsecond-precision).\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealDays($date = null, $absolute = true)\n    {\n        $hoursDiff = $this->floatDiffInRealHours($date, $absolute);\n\n        return ($hoursDiff < 0 ? -1 : 1) * $this->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;\n    }\n\n    /**\n     * Get the difference in months as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealMonths($date = null, $absolute = true)\n    {\n        $start = $this;\n        $end = $this->resolveCarbon($date);\n        $ascending = ($start <= $end);\n        $sign = $absolute || $ascending ? 1 : -1;\n        if (!$ascending) {\n            $_end = $start;\n            $start = $end;\n            $end = $_end;\n            unset($_end);\n        }\n        $monthsDiff = $start->diffInMonths($end);\n        /** @var Carbon|CarbonImmutable $floorEnd */\n        $floorEnd = $start->copy()->addMonths($monthsDiff);\n\n        if ($floorEnd >= $end) {\n            return $sign * $monthsDiff;\n        }\n\n        /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */\n        $startOfMonthAfterFloorEnd = $floorEnd->copy()->addMonth()->startOfMonth();\n\n        if ($startOfMonthAfterFloorEnd > $end) {\n            return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInMonth);\n        }\n\n        return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInMonth);\n    }\n\n    /**\n     * Get the difference in year as float (microsecond-precision) using timestamps.\n     *\n     * @param \\Carbon\\CarbonInterface|\\DateTimeInterface|string|null $date\n     * @param bool                                                   $absolute Get the absolute of the difference\n     *\n     * @return float\n     */\n    public function floatDiffInRealYears($date = null, $absolute = true)\n    {\n        $start = $this;\n        $end = $this->resolveCarbon($date);\n        $ascending = ($start <= $end);\n        $sign = $absolute || $ascending ? 1 : -1;\n        if (!$ascending) {\n            $_end = $start;\n            $start = $end;\n            $end = $_end;\n            unset($_end);\n        }\n        $yearsDiff = $start->diffInYears($end);\n        /** @var Carbon|CarbonImmutable $floorEnd */\n        $floorEnd = $start->copy()->addYears($yearsDiff);\n\n        if ($floorEnd >= $end) {\n            return $sign * $yearsDiff;\n        }\n\n        /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */\n        $startOfYearAfterFloorEnd = $floorEnd->copy()->addYear()->startOfYear();\n\n        if ($startOfYearAfterFloorEnd > $end) {\n            return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInYear);\n        }\n\n        return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInYear);\n    }\n\n    /**\n     * The number of seconds since midnight.\n     *\n     * @return int\n     */\n    public function secondsSinceMidnight()\n    {\n        return $this->diffInSeconds($this->copy()->startOfDay());\n    }\n\n    /**\n     * The number of seconds until 23:59:59.\n     *\n     * @return int\n     */\n    public function secondsUntilEndOfDay()\n    {\n        return $this->diffInSeconds($this->copy()->endOfDay());\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @example\n     * ```\n     * echo Carbon::tomorrow()->diffForHumans() . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . \"\\n\";\n     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . \"\\n\";\n     * ```\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        /* @var CarbonInterface $this */\n        if (is_array($other)) {\n            $other['syntax'] = array_key_exists('syntax', $other) ? $other['syntax'] : $syntax;\n            $syntax = $other;\n            $other = $syntax['other'] ?? null;\n        }\n\n        $intSyntax = &$syntax;\n        if (is_array($syntax)) {\n            $syntax['syntax'] = $syntax['syntax'] ?? null;\n            $intSyntax = &$syntax['syntax'];\n        }\n        $intSyntax = (int) ($intSyntax === null ? static::DIFF_RELATIVE_AUTO : $intSyntax);\n        $intSyntax = $intSyntax === static::DIFF_RELATIVE_AUTO && $other === null ? static::DIFF_RELATIVE_TO_NOW : $intSyntax;\n\n        $parts = min(7, max(1, (int) $parts));\n\n        return $this->diffAsCarbonInterval($other, false)\n            ->setLocalTranslator($this->getLocalTranslator())\n            ->forHumans($syntax, (bool) $short, $parts, $options ?? $this->localHumanDiffOptions ?? static::getHumanDiffOptions());\n    }\n\n    /**\n     * @alias diffForHumans\n     *\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        return $this->diffForHumans($other, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * @alias diffForHumans\n     *\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     */\n    public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        return $this->diffForHumans($other, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given (or now if null given) to current instance.\n     *\n     * When comparing a value in the past to default now:\n     * 1 hour from now\n     * 5 months from now\n     *\n     * When comparing a value in the future to default now:\n     * 1 hour ago\n     * 5 months ago\n     *\n     * When comparing a value in the past to another value:\n     * 1 hour after\n     * 5 months after\n     *\n     * When comparing a value in the future to another value:\n     * 1 hour before\n     * 5 months before\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        if (!$syntax && !$other) {\n            $syntax = CarbonInterface::DIFF_RELATIVE_TO_NOW;\n        }\n\n        return $this->resolveCarbon($other)->diffForHumans($this, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * @alias to\n     *\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given (or now if null given) to current instance.\n     *\n     * @param Carbon|\\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;\n     *                                                             if null passed, now will be used as comparison reference;\n     *                                                             if any other type, it will be converted to date and used as reference.\n     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                                                             - 'syntax' entry (see below)\n     *                                                             - 'short' entry (see below)\n     *                                                             - 'parts' entry (see below)\n     *                                                             - 'options' entry (see below)\n     *                                                             - 'join' entry determines how to join multiple parts of the string\n     *                                                             `  - if $join is a string, it's used as a joiner glue\n     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item\n     *                                                             `    will be used instead of the glue for the last item\n     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                                                             `  - if $join is missing, a space will be used as glue\n     *                                                             - 'other' entry (see above)\n     *                                                             if int passed, it add modifiers:\n     *                                                             Possible values:\n     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool                                        $short   displays short format of time units\n     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int                                         $options human diff options\n     *\n     * @return string\n     */\n    public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        return $this->to($other, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from current\n     * instance to now.\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single unit)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function fromNow($syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        $other = null;\n\n        if ($syntax instanceof DateTimeInterface) {\n            [$other, $syntax, $short, $parts, $options] = array_pad(func_get_args(), 5, null);\n        }\n\n        return $this->from($other, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given to now\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single part)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function toNow($syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        return $this->to(null, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from an other\n     * instance given to now\n     *\n     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:\n     *                           - 'syntax' entry (see below)\n     *                           - 'short' entry (see below)\n     *                           - 'parts' entry (see below)\n     *                           - 'options' entry (see below)\n     *                           - 'join' entry determines how to join multiple parts of the string\n     *                           `  - if $join is a string, it's used as a joiner glue\n     *                           `  - if $join is a callable/closure, it get the list of string and should return a string\n     *                           `  - if $join is an array, the first item will be the default glue, and the second item\n     *                           `    will be used instead of the glue for the last item\n     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)\n     *                           `  - if $join is missing, a space will be used as glue\n     *                           if int passed, it add modifiers:\n     *                           Possible values:\n     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier\n     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier\n     *                           Default value: CarbonInterface::DIFF_ABSOLUTE\n     * @param bool      $short   displays short format of time units\n     * @param int       $parts   maximum number of parts to display (default value: 1: single part)\n     * @param int       $options human diff options\n     *\n     * @return string\n     */\n    public function ago($syntax = null, $short = false, $parts = 1, $options = null)\n    {\n        $other = null;\n\n        if ($syntax instanceof DateTimeInterface) {\n            [$other, $syntax, $short, $parts, $options] = array_pad(func_get_args(), 5, null);\n        }\n\n        return $this->from($other, $syntax, $short, $parts, $options);\n    }\n\n    /**\n     * Get the difference in a human readable format in the current locale from current instance to an other\n     * instance given (or now if null given).\n     *\n     * @return string\n     */\n    public function timespan($other = null, $timezone = null)\n    {\n        if (!$other instanceof DateTimeInterface) {\n            $other = static::parse($other, $timezone);\n        }\n\n        return $this->diffForHumans($other, [\n            'join' => ', ',\n            'syntax' => CarbonInterface::DIFF_ABSOLUTE,\n            'options' => CarbonInterface::NO_ZERO_DIFF,\n            'parts' => -1,\n        ]);\n    }\n\n    /**\n     * Returns either the close date \"Friday 15h30\", or a calendar date \"10/09/2017\" is farthest than 7 days from now.\n     *\n     * @param Carbon|\\DateTimeInterface|string|null $referenceTime\n     * @param array                                 $formats\n     *\n     * @return string\n     */\n    public function calendar($referenceTime = null, array $formats = [])\n    {\n        /** @var CarbonInterface $current */\n        $current = $this->copy()->startOfDay();\n        /** @var CarbonInterface $other */\n        $other = $this->resolveCarbon($referenceTime)->copy()->setTimezone($this->getTimezone())->startOfDay();\n        $diff = $other->diffInDays($current, false);\n        $format = $diff < -6 ? 'sameElse' : (\n            $diff < -1 ? 'lastWeek' : (\n                $diff < 0 ? 'lastDay' : (\n                    $diff < 1 ? 'sameDay' : (\n                        $diff < 2 ? 'nextDay' : (\n                            $diff < 7 ? 'nextWeek' : 'sameElse'\n                        )\n                    )\n                )\n            )\n        );\n        $format = array_merge($this->getCalendarFormats(), $formats)[$format];\n        if ($format instanceof Closure) {\n            $format = $format($current, $other) ?? '';\n        }\n\n        return $this->isoFormat(strval($format));\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Localization.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\nuse Carbon\\Language;\nuse Carbon\\Translator;\nuse Closure;\nuse InvalidArgumentException;\nuse Symfony\\Component\\Translation\\TranslatorBagInterface;\nuse Symfony\\Component\\Translation\\TranslatorInterface;\n\n/**\n * Trait Localization.\n *\n * Embed default and locale translators and translation base methods.\n */\ntrait Localization\n{\n    /**\n     * Default translator.\n     *\n     * @var \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    protected static $translator;\n\n    /**\n     * Specific translator of the current instance.\n     *\n     * @var \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    protected $localTranslator;\n\n    /**\n     * Options for diffForHumans().\n     *\n     * @var int\n     */\n    protected static $humanDiffOptions = CarbonInterface::NO_ZERO_DIFF;\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOptions\n     */\n    public static function setHumanDiffOptions($humanDiffOptions)\n    {\n        static::$humanDiffOptions = $humanDiffOptions;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOption\n     */\n    public static function enableHumanDiffOption($humanDiffOption)\n    {\n        static::$humanDiffOptions = static::getHumanDiffOptions() | $humanDiffOption;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * @param int $humanDiffOption\n     */\n    public static function disableHumanDiffOption($humanDiffOption)\n    {\n        static::$humanDiffOptions = static::getHumanDiffOptions() & ~$humanDiffOption;\n    }\n\n    /**\n     * Return default humanDiff() options (merged flags as integer).\n     *\n     * @return int\n     */\n    public static function getHumanDiffOptions()\n    {\n        return static::$humanDiffOptions;\n    }\n\n    /**\n     * Initialize the default translator instance if necessary.\n     *\n     * @return \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    protected static function translator()\n    {\n        if (static::$translator === null) {\n            static::$translator = Translator::get();\n        }\n\n        return static::$translator;\n    }\n\n    /**\n     * Get the default translator instance in use.\n     *\n     * @return \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    public static function getTranslator()\n    {\n        return static::translator();\n    }\n\n    /**\n     * Set the default translator instance to use.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return void\n     */\n    public static function setTranslator(TranslatorInterface $translator)\n    {\n        static::$translator = $translator;\n    }\n\n    /**\n     * Get the translator of the current instance or the default if none set.\n     *\n     * @return \\Symfony\\Component\\Translation\\TranslatorInterface\n     */\n    public function getLocalTranslator()\n    {\n        return $this->localTranslator ?: static::translator();\n    }\n\n    /**\n     * Set the translator for the current instance.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return $this\n     */\n    public function setLocalTranslator(TranslatorInterface $translator)\n    {\n        $this->localTranslator = $translator;\n\n        return $this;\n    }\n\n    /**\n     * Returns raw translation message for a given key.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator the translator to use\n     * @param string                                             $key        key to find\n     * @param string|null                                        $locale     current locale used if null\n     * @param string|null                                        $default    default value if translation returns the key\n     *\n     * @return string\n     */\n    public static function getTranslationMessageWith($translator, string $key, string $locale = null, string $default = null)\n    {\n        if (!($translator instanceof TranslatorBagInterface && $translator instanceof TranslatorInterface)) {\n            throw new InvalidArgumentException(\n                'Translator does not implement '.TranslatorInterface::class.' and '.TranslatorBagInterface::class.'.'\n            );\n        }\n\n        $result = $translator->getCatalogue($locale ?? $translator->getLocale())->get($key);\n\n        return $result === $key ? $default : $result;\n    }\n\n    /**\n     * Returns raw translation message for a given key.\n     *\n     * @param string                                             $key        key to find\n     * @param string|null                                        $locale     current locale used if null\n     * @param string|null                                        $default    default value if translation returns the key\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator an optional translator to use\n     *\n     * @return string\n     */\n    public function getTranslationMessage(string $key, string $locale = null, string $default = null, $translator = null)\n    {\n        return static::getTranslationMessageWith($translator ?: $this->getLocalTranslator(), $key, $locale, $default);\n    }\n\n    /**\n     * Translate using translation string or callback available.\n     *\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     * @param string                                             $key\n     * @param array                                              $parameters\n     * @param null                                               $number\n     *\n     * @return string\n     */\n    public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string\n    {\n        $message = static::getTranslationMessageWith($translator, $key, null, $key);\n        if ($message instanceof Closure) {\n            return (string) $message(...array_values($parameters));\n        }\n\n        if ($number !== null) {\n            $parameters['%count%'] = $number;\n        }\n        if (isset($parameters['%count%'])) {\n            $parameters[':count'] = $parameters['%count%'];\n        }\n\n        return (string) $translator->transChoice($key, $number, $parameters);\n    }\n\n    /**\n     * Translate using translation string or callback available.\n     *\n     * @param string                                             $key\n     * @param array                                              $parameters\n     * @param null                                               $number\n     * @param \\Symfony\\Component\\Translation\\TranslatorInterface $translator\n     *\n     * @return string\n     */\n    public function translate(string $key, array $parameters = [], $number = null, TranslatorInterface $translator = null): string\n    {\n        return static::translateWith($translator ?: $this->getLocalTranslator(), $key, $parameters, $number);\n    }\n\n    /**\n     * Translate a time string from a locale to an other.\n     *\n     * @param string      $timeString time string to translate\n     * @param string|null $from       input locale of the $timeString parameter (`Carbon::getLocale()` by default)\n     * @param string|null $to         output locale of the result returned (`\"en\"` by default)\n     * @param int         $mode       specify what to translate with options:\n     *                                - CarbonInterface::TRANSLATE_ALL (default)\n     *                                - CarbonInterface::TRANSLATE_MONTHS\n     *                                - CarbonInterface::TRANSLATE_DAYS\n     *                                - CarbonInterface::TRANSLATE_UNITS\n     *                                - CarbonInterface::TRANSLATE_MERIDIEM\n     *                                You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS\n     *\n     * @return string\n     */\n    public static function translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL)\n    {\n        $from = $from ?: static::getLocale();\n        $to = $to ?: 'en';\n\n        if ($from === $to) {\n            return $timeString;\n        }\n\n        $cleanWord = function ($word) {\n            $word = str_replace([':count', '%count', ':time'], '', $word);\n            $word = preg_replace('/({\\d+(,(\\d+|Inf))?}|[\\[\\]]\\d+(,(\\d+|Inf))?[\\[\\]])/', '', $word);\n\n            return trim($word);\n        };\n\n        $fromTranslations = [];\n        $toTranslations = [];\n\n        foreach (['from', 'to'] as $key) {\n            $language = $$key;\n            $translator = Translator::get($language);\n            $translations = $translator->getMessages();\n\n            if (!isset($translations[$language])) {\n                return $timeString;\n            }\n\n            $translationKey = $key.'Translations';\n            $messages = $translations[$language];\n            $months = $messages['months'];\n            $weekdays = $messages['weekdays'];\n            $meridiem = $messages['meridiem'] ?? ['AM', 'PM'];\n\n            if ($key === 'from') {\n                foreach (['months', 'weekdays'] as $variable) {\n                    $list = $messages[$variable.'_standalone'] ?? null;\n\n                    if ($list) {\n                        foreach ($$variable as $index => &$name) {\n                            $name .= '|'.$messages[$variable.'_standalone'][$index];\n                        }\n                    }\n                }\n            }\n\n            $$translationKey = array_merge(\n                $mode & CarbonInterface::TRANSLATE_MONTHS ? array_pad($months, 12, '>>DO NOT REPLACE<<') : [],\n                $mode & CarbonInterface::TRANSLATE_MONTHS ? array_pad($messages['months_short'], 12, '>>DO NOT REPLACE<<') : [],\n                $mode & CarbonInterface::TRANSLATE_DAYS ? array_pad($weekdays, 7, '>>DO NOT REPLACE<<') : [],\n                $mode & CarbonInterface::TRANSLATE_DAYS ? array_pad($messages['weekdays_short'], 7, '>>DO NOT REPLACE<<') : [],\n                $mode & CarbonInterface::TRANSLATE_UNITS ? array_map(function ($unit) use ($messages, $key, $cleanWord) {\n                    $parts = explode('|', $messages[$unit]);\n\n                    return $key === 'to'\n                        ? $cleanWord(end($parts))\n                        : '(?:'.implode('|', array_map($cleanWord, $parts)).')';\n                }, [\n                    'year',\n                    'month',\n                    'week',\n                    'day',\n                    'hour',\n                    'minute',\n                    'second',\n                ]) : [],\n                $mode & CarbonInterface::TRANSLATE_MERIDIEM ? array_map(function ($hour) use ($meridiem) {\n                    if (is_array($meridiem)) {\n                        return $meridiem[$hour < 12 ? 0 : 1];\n                    }\n\n                    return $meridiem($hour, 0, false);\n                }, range(0, 23)) : []\n            );\n        }\n\n        return substr(preg_replace_callback('/(?<=[\\d\\s+.\\/,_-])('.implode('|', $fromTranslations).')(?=[\\d\\s+.\\/,_-])/i', function ($match) use ($fromTranslations, $toTranslations) {\n            [$chunk] = $match;\n\n            foreach ($fromTranslations as $index => $word) {\n                if (preg_match(\"/^$word\\$/i\", $chunk)) {\n                    return $toTranslations[$index] ?? '';\n                }\n            }\n\n            return $chunk; // @codeCoverageIgnore\n        }, \" $timeString \"), 1, -1);\n    }\n\n    /**\n     * Translate a time string from the current locale (`$date->locale()`) to an other.\n     *\n     * @param string      $timeString time string to translate\n     * @param string|null $to         output locale of the result returned (\"en\" by default)\n     *\n     * @return string\n     */\n    public function translateTimeStringTo($timeString, $to = null)\n    {\n        return static::translateTimeString($timeString, $this->getLocalTranslator()->getLocale(), $to);\n    }\n\n    /**\n     * Get/set the locale for the current instance.\n     *\n     * @param string|null $locale\n     * @param string[]    ...$fallbackLocales\n     *\n     * @return $this|string\n     */\n    public function locale(string $locale = null, ...$fallbackLocales)\n    {\n        if ($locale === null) {\n            return $this->getLocalTranslator()->getLocale();\n        }\n\n        if (!$this->localTranslator || $this->localTranslator->getLocale() !== $locale) {\n            $translator = Translator::get($locale);\n\n            if (!empty($fallbackLocales)) {\n                $translator->setFallbackLocales($fallbackLocales);\n\n                foreach ($fallbackLocales as $fallbackLocale) {\n                    $messages = Translator::get($fallbackLocale)->getMessages();\n\n                    if (isset($messages[$fallbackLocale])) {\n                        $translator->setMessages($fallbackLocale, $messages[$fallbackLocale]);\n                    }\n                }\n            }\n\n            $this->setLocalTranslator($translator);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Get the current translator locale.\n     *\n     * @return string\n     */\n    public static function getLocale()\n    {\n        return static::translator()->getLocale();\n    }\n\n    /**\n     * Set the current translator locale and indicate if the source locale file exists.\n     * Pass 'auto' as locale to use closest language from the current LC_TIME locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function setLocale($locale)\n    {\n        return static::translator()->setLocale($locale) !== false;\n    }\n\n    /**\n     * Set the fallback locale.\n     *\n     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales\n     *\n     * @param string $locale\n     */\n    public static function setFallbackLocale($locale)\n    {\n        $translator = static::getTranslator();\n\n        if (method_exists($translator, 'setFallbackLocales')) {\n            $translator->setFallbackLocales([$locale]);\n\n            if ($translator instanceof Translator) {\n                $preferredLocale = $translator->getLocale();\n                $translator->setMessages($preferredLocale, array_replace_recursive(\n                    $translator->getMessages()[$locale] ?? [],\n                    Translator::get($locale)->getMessages()[$locale] ?? [],\n                    $translator->getMessages($preferredLocale)\n                ));\n            }\n        }\n    }\n\n    /**\n     * Get the fallback locale.\n     *\n     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales\n     *\n     * @return string|null\n     */\n    public static function getFallbackLocale()\n    {\n        $translator = static::getTranslator();\n\n        if (method_exists($translator, 'getFallbackLocales')) {\n            return $translator->getFallbackLocales()[0] ?? null;\n        }\n\n        return null;\n    }\n\n    /**\n     * Set the current locale to the given, execute the passed function, reset the locale to previous one,\n     * then return the result of the closure (or null if the closure was void).\n     *\n     * @param string   $locale locale ex. en\n     * @param callable $func\n     *\n     * @return mixed\n     */\n    public static function executeWithLocale($locale, $func)\n    {\n        $currentLocale = static::getLocale();\n        $result = call_user_func($func, static::setLocale($locale) ? static::getLocale() : false, static::translator());\n        static::setLocale($currentLocale);\n\n        return $result;\n    }\n\n    /**\n     * Returns true if the given locale is internally supported and has short-units support.\n     * Support is considered enabled if either year, day or hour has a short variant translated.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasShortUnits($locale)\n    {\n        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {\n            return $newLocale &&\n                (\n                    ($y = static::translateWith($translator, 'y')) !== 'y' &&\n                    $y !== static::translateWith($translator, 'year')\n                ) || (\n                    ($y = static::translateWith($translator, 'd')) !== 'd' &&\n                    $y !== static::translateWith($translator, 'day')\n                ) || (\n                    ($y = static::translateWith($translator, 'h')) !== 'h' &&\n                    $y !== static::translateWith($translator, 'hour')\n                );\n        });\n    }\n\n    /**\n     * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).\n     * Support is considered enabled if the 4 sentences are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffSyntax($locale)\n    {\n        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {\n            if (!$newLocale) {\n                return false;\n            }\n\n            foreach (['ago', 'from_now', 'before', 'after'] as $key) {\n                if ($translator instanceof TranslatorBagInterface && $translator->getCatalogue($newLocale)->get($key) instanceof Closure) {\n                    continue;\n                }\n\n                if ($translator->trans($key) === $key) {\n                    return false;\n                }\n            }\n\n            return true;\n        });\n    }\n\n    /**\n     * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).\n     * Support is considered enabled if the 3 words are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffOneDayWords($locale)\n    {\n        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {\n            return $newLocale &&\n                $translator->trans('diff_now') !== 'diff_now' &&\n                $translator->trans('diff_yesterday') !== 'diff_yesterday' &&\n                $translator->trans('diff_tomorrow') !== 'diff_tomorrow';\n        });\n    }\n\n    /**\n     * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).\n     * Support is considered enabled if the 2 words are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasDiffTwoDayWords($locale)\n    {\n        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {\n            return $newLocale &&\n                $translator->trans('diff_before_yesterday') !== 'diff_before_yesterday' &&\n                $translator->trans('diff_after_tomorrow') !== 'diff_after_tomorrow';\n        });\n    }\n\n    /**\n     * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).\n     * Support is considered enabled if the 4 sentences are translated in the given locale.\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public static function localeHasPeriodSyntax($locale)\n    {\n        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {\n            return $newLocale &&\n                $translator->trans('period_recurrences') !== 'period_recurrences' &&\n                $translator->trans('period_interval') !== 'period_interval' &&\n                $translator->trans('period_start_date') !== 'period_start_date' &&\n                $translator->trans('period_end_date') !== 'period_end_date';\n        });\n    }\n\n    /**\n     * Returns the list of internally available locales and already loaded custom locales.\n     * (It will ignore custom translator dynamic loading.)\n     *\n     * @return array\n     */\n    public static function getAvailableLocales()\n    {\n        $translator = static::translator();\n\n        return $translator instanceof Translator\n            ? $translator->getAvailableLocales()\n            : [$translator->getLocale()];\n    }\n\n    /**\n     * Returns list of Language object for each available locale. This object allow you to get the ISO name, native\n     * name, region and variant of the locale.\n     *\n     * @return Language[]\n     */\n    public static function getAvailableLocalesInfo()\n    {\n        $languages = [];\n        foreach (static::getAvailableLocales() as $id) {\n            $languages[$id] = new Language($id);\n        }\n\n        return $languages;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Macro.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\n/**\n * Trait Boundaries.\n *\n * startOf, endOf and derived method for each unit.\n *\n * Depends on the following properties:\n *\n * @property int $year\n * @property int $month\n * @property int $daysInMonth\n * @property int $quarter\n *\n * Depends on the following methods:\n *\n * @method $this setTime(int $hour, int $minute, int $second = 0, int $microseconds = 0)\n * @method $this setDate(int $year, int $month, int $day)\n * @method $this addMonths(int $value = 1)\n */\ntrait Macro\n{\n    /**\n     * The registered macros.\n     *\n     * @var array\n     */\n    protected static $globalMacros = [];\n\n    /**\n     * The registered generic macros.\n     *\n     * @var array\n     */\n    protected static $globalGenericMacros = [];\n\n    /**\n     * Register a custom macro.\n     *\n     * @example\n     * ```\n     * $userSettings = [\n     *   'locale' => 'pt',\n     *   'timezone' => 'America/Sao_Paulo',\n     * ];\n     * Carbon::macro('userFormat', function () use ($userSettings) {\n     *   return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar();\n     * });\n     * echo Carbon::yesterday()->hours(11)->userFormat();\n     * ```\n     *\n     * @param string          $name\n     * @param object|callable $macro\n     *\n     * @return void\n     */\n    public static function macro($name, $macro)\n    {\n        static::$globalMacros[$name] = $macro;\n    }\n\n    /**\n     * Remove all macros and generic macros.\n     */\n    public static function resetMacros()\n    {\n        static::$globalMacros = [];\n        static::$globalGenericMacros = [];\n    }\n\n    /**\n     * Register a custom macro.\n     *\n     * @param object|callable $macro\n     * @param int             $priority marco with higher priority is tried first\n     *\n     * @return void\n     */\n    public static function genericMacro($macro, $priority = 0)\n    {\n        if (!isset(static::$globalGenericMacros[$priority])) {\n            static::$globalGenericMacros[$priority] = [];\n            krsort(static::$globalGenericMacros, SORT_NUMERIC);\n        }\n\n        static::$globalGenericMacros[$priority][] = $macro;\n    }\n\n    /**\n     * Mix another object into the class.\n     *\n     * @example\n     * ```\n     * Carbon::mixin(new class {\n     *   public function addMoon() {\n     *     return function () {\n     *       return $this->addDays(30);\n     *     };\n     *   }\n     *   public function subMoon() {\n     *     return function () {\n     *       return $this->subDays(30);\n     *     };\n     *   }\n     * });\n     * $fullMoon = Carbon::create('2018-12-22');\n     * $nextFullMoon = $fullMoon->addMoon();\n     * $blackMoon = Carbon::create('2019-01-06');\n     * $previousBlackMoon = $blackMoon->subMoon();\n     * echo \"$nextFullMoon\\n\";\n     * echo \"$previousBlackMoon\\n\";\n     * ```\n     *\n     * @param object $mixin\n     *\n     * @throws \\ReflectionException\n     *\n     * @return void\n     */\n    public static function mixin($mixin)\n    {\n        $methods = (new \\ReflectionClass($mixin))->getMethods(\n            \\ReflectionMethod::IS_PUBLIC | \\ReflectionMethod::IS_PROTECTED\n        );\n\n        foreach ($methods as $method) {\n            if ($method->isConstructor() || $method->isDestructor()) {\n                continue;\n            }\n            $method->setAccessible(true);\n\n            static::macro($method->name, $method->invoke($mixin));\n        }\n    }\n\n    /**\n     * Checks if macro is registered.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public static function hasMacro($name)\n    {\n        return isset(static::$globalMacros[$name]);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\n\n/**\n * Trait Modifiers.\n *\n * Returns dates relative to current date using modifier short-hand.\n */\ntrait Modifiers\n{\n    /**\n     * Midday/noon hour.\n     *\n     * @var int\n     */\n    protected static $midDayAt = 12;\n\n    /**\n     * get midday/noon hour\n     *\n     * @return int\n     */\n    public static function getMidDayAt()\n    {\n        return static::$midDayAt;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather consider mid-day is always 12pm, then if you need to test if it's an other\n     *             hour, test it explicitly:\n     *                 $date->format('G') == 13\n     *             or to set explicitly to a given hour:\n     *                 $date->setTime(13, 0, 0, 0)\n     *\n     * Set midday/noon hour\n     *\n     * @param int $hour midday hour\n     *\n     * @return void\n     */\n    public static function setMidDayAt($hour)\n    {\n        static::$midDayAt = $hour;\n    }\n\n    /**\n     * Modify to midday, default to self::$midDayAt\n     *\n     * @return static\n     */\n    public function midDay()\n    {\n        return $this->setTime(static::$midDayAt, 0, 0, 0);\n    }\n\n    /**\n     * Modify to the next occurrence of a given modifier such as a day of\n     * the week. If no modifier is provided, modify to the next occurrence\n     * of the current day of the week. Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param string|int|null $modifier\n     *\n     * @return static\n     */\n    public function next($modifier = null)\n    {\n        if ($modifier === null) {\n            $modifier = $this->dayOfWeek;\n        }\n\n        return $this->change(\n            'next '.(is_string($modifier) ? $modifier : static::$days[$modifier])\n        );\n    }\n\n    /**\n     * Go forward or backward to the next week- or weekend-day.\n     *\n     * @param bool $weekday\n     * @param bool $forward\n     *\n     * @return static\n     */\n    private function nextOrPreviousDay($weekday = true, $forward = true)\n    {\n        /** @var CarbonInterface $step */\n        $date = $this;\n        $step = $forward ? 1 : -1;\n\n        do {\n            $date = $date->addDays($step);\n        } while ($weekday ? $date->isWeekend() : $date->isWeekday());\n\n        return $date;\n    }\n\n    /**\n     * Go forward to the next weekday.\n     *\n     * @return static\n     */\n    public function nextWeekday()\n    {\n        return $this->nextOrPreviousDay();\n    }\n\n    /**\n     * Go backward to the previous weekday.\n     *\n     * @return static\n     */\n    public function previousWeekday()\n    {\n        return $this->nextOrPreviousDay(true, false);\n    }\n\n    /**\n     * Go forward to the next weekend day.\n     *\n     * @return static\n     */\n    public function nextWeekendDay()\n    {\n        return $this->nextOrPreviousDay(false);\n    }\n\n    /**\n     * Go backward to the previous weekend day.\n     *\n     * @return static\n     */\n    public function previousWeekendDay()\n    {\n        return $this->nextOrPreviousDay(false, false);\n    }\n\n    /**\n     * Modify to the previous occurrence of a given modifier such as a day of\n     * the week. If no dayOfWeek is provided, modify to the previous occurrence\n     * of the current day of the week. Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param string|int|null $modifier\n     *\n     * @return static\n     */\n    public function previous($modifier = null)\n    {\n        if ($modifier === null) {\n            $modifier = $this->dayOfWeek;\n        }\n\n        return $this->change(\n            'last '.(is_string($modifier) ? $modifier : static::$days[$modifier])\n        );\n    }\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current month. If no dayOfWeek is provided, modify to the\n     * first day of the current month.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek\n     *\n     * @return static\n     */\n    public function firstOfMonth($dayOfWeek = null)\n    {\n        $date = $this->startOfDay();\n\n        if ($dayOfWeek === null) {\n            return $date->day(1);\n        }\n\n        return $date->modify('first '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year);\n    }\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current month. If no dayOfWeek is provided, modify to the\n     * last day of the current month.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek\n     *\n     * @return static\n     */\n    public function lastOfMonth($dayOfWeek = null)\n    {\n        $date = $this->startOfDay();\n\n        if ($dayOfWeek === null) {\n            return $date->day($date->daysInMonth);\n        }\n\n        return $date->modify('last '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year);\n    }\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current month. If the calculated occurrence is outside the scope\n     * of the current month, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfMonth($nth, $dayOfWeek)\n    {\n        $date = $this->copy()->firstOfMonth();\n        $check = $date->rawFormat('Y-m');\n        $date = $date->modify('+'.$nth.' '.static::$days[$dayOfWeek]);\n\n        return $date->rawFormat('Y-m') === $check ? $this->modify(\"$date\") : false;\n    }\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current quarter. If no dayOfWeek is provided, modify to the\n     * first day of the current quarter.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function firstOfQuarter($dayOfWeek = null)\n    {\n        return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER - 2, 1)->firstOfMonth($dayOfWeek);\n    }\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current quarter. If no dayOfWeek is provided, modify to the\n     * last day of the current quarter.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function lastOfQuarter($dayOfWeek = null)\n    {\n        return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER, 1)->lastOfMonth($dayOfWeek);\n    }\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current quarter. If the calculated occurrence is outside the scope\n     * of the current quarter, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfQuarter($nth, $dayOfWeek)\n    {\n        $date = $this->copy()->day(1)->month($this->quarter * static::MONTHS_PER_QUARTER);\n        $lastMonth = $date->month;\n        $year = $date->year;\n        $date = $date->firstOfQuarter()->modify('+'.$nth.' '.static::$days[$dayOfWeek]);\n\n        return ($lastMonth < $date->month || $year !== $date->year) ? false : $this->modify(\"$date\");\n    }\n\n    /**\n     * Modify to the first occurrence of a given day of the week\n     * in the current year. If no dayOfWeek is provided, modify to the\n     * first day of the current year.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function firstOfYear($dayOfWeek = null)\n    {\n        return $this->month(1)->firstOfMonth($dayOfWeek);\n    }\n\n    /**\n     * Modify to the last occurrence of a given day of the week\n     * in the current year. If no dayOfWeek is provided, modify to the\n     * last day of the current year.  Use the supplied constants\n     * to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int|null $dayOfWeek day of the week default null\n     *\n     * @return static\n     */\n    public function lastOfYear($dayOfWeek = null)\n    {\n        return $this->month(static::MONTHS_PER_YEAR)->lastOfMonth($dayOfWeek);\n    }\n\n    /**\n     * Modify to the given occurrence of a given day of the week\n     * in the current year. If the calculated occurrence is outside the scope\n     * of the current year, then return false and no modifications are made.\n     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.\n     *\n     * @param int $nth\n     * @param int $dayOfWeek\n     *\n     * @return mixed\n     */\n    public function nthOfYear($nth, $dayOfWeek)\n    {\n        $date = $this->copy()->firstOfYear()->modify('+'.$nth.' '.static::$days[$dayOfWeek]);\n\n        return $this->year === $date->year ? $this->modify(\"$date\") : false;\n    }\n\n    /**\n     * Modify the current instance to the average of a given instance (default now) and the current instance\n     * (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|null $date\n     *\n     * @return static\n     */\n    public function average($date = null)\n    {\n        return $this->addRealMicroseconds((int) ($this->diffInRealMicroseconds($this->resolveCarbon($date), false) / 2));\n    }\n\n    /**\n     * Get the closest date from the instance (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     *\n     * @return static\n     */\n    public function closest($date1, $date2)\n    {\n        return $this->diffInRealMicroseconds($date1) < $this->diffInRealMicroseconds($date2) ? $date1 : $date2;\n    }\n\n    /**\n     * Get the farthest date from the instance (second-precision).\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date1\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date2\n     *\n     * @return static\n     */\n    public function farthest($date1, $date2)\n    {\n        return $this->diffInRealMicroseconds($date1) > $this->diffInRealMicroseconds($date2) ? $date1 : $date2;\n    }\n\n    /**\n     * Get the minimum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return static\n     */\n    public function min($date = null)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->lt($date) ? $this : $date;\n    }\n\n    /**\n     * Get the minimum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see min()\n     *\n     * @return static\n     */\n    public function minimum($date = null)\n    {\n        return $this->min($date);\n    }\n\n    /**\n     * Get the maximum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @return static\n     */\n    public function max($date = null)\n    {\n        $date = $this->resolveCarbon($date);\n\n        return $this->gt($date) ? $this : $date;\n    }\n\n    /**\n     * Get the maximum instance between a given instance (default now) and the current instance.\n     *\n     * @param \\Carbon\\Carbon|\\DateTimeInterface|mixed $date\n     *\n     * @see max()\n     *\n     * @return static\n     */\n    public function maximum($date = null)\n    {\n        return $this->max($date);\n    }\n\n    /**\n     * Similar to native modify() method of DateTime but can handle more grammars.\n     *\n     * @example\n     * ```\n     * echo Carbon::now()->change('next 2pm');\n     * ```\n     *\n     * @link https://php.net/manual/en/datetime.modify.php\n     *\n     * @param string $modifier\n     *\n     * @return static\n     */\n    public function change($modifier)\n    {\n        return $this->modify(preg_replace_callback('/^(next|previous|last)\\s+(\\d{1,2}(h|am|pm|:\\d{1,2}(:\\d{1,2})?))$/i', function ($match) {\n            $match[2] = str_replace('h', ':00', $match[2]);\n            $test = $this->copy()->modify($match[2]);\n            $method = $match[1] === 'next' ? 'lt' : 'gt';\n            $match[1] = $test->$method($this) ? $match[1].' day' : 'today';\n\n            return $match[1].' '.$match[2];\n        }, trim($modifier)));\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\Carbon;\nuse Carbon\\CarbonImmutable;\n\n/**\n * Trait Mutability.\n *\n * Utils to know if the current object is mutable or immutable and convert it.\n */\ntrait Mutability\n{\n    /**\n     * Returns true if the current class/instance is mutable.\n     *\n     * @return bool\n     */\n    public static function isMutable()\n    {\n        return false;\n    }\n\n    /**\n     * Returns true if the current class/instance is immutable.\n     *\n     * @return bool\n     */\n    public static function isImmutable()\n    {\n        return !static::isMutable();\n    }\n\n    /**\n     * Cast the current instance into the given class.\n     *\n     * @param string $className The $className::instance() method will be called to cast the current object.\n     *\n     * @return object\n     */\n    public function cast(string $className)\n    {\n        if (!method_exists($className, 'instance')) {\n            throw new \\InvalidArgumentException(\"$className has not the instance() method needed to cast the date.\");\n        }\n\n        return $className::instance($this);\n    }\n\n    /**\n     * Return a mutable copy of the instance.\n     *\n     * @return Carbon\n     */\n    public function toMutable()\n    {\n        /** @var Carbon $date */\n        $date = $this->cast(Carbon::class);\n\n        return $date;\n    }\n\n    /**\n     * Return a immutable copy of the instance.\n     *\n     * @return CarbonImmutable\n     */\n    public function toImmutable()\n    {\n        /** @var CarbonImmutable $date */\n        $date = $this->cast(CarbonImmutable::class);\n\n        return $date;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Options.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\n\n/**\n * Trait Options.\n *\n * Embed base methods to change settings of Carbon classes.\n *\n * Depends on the following methods:\n *\n * @method \\Carbon\\Carbon|\\Carbon\\CarbonImmutable shiftTimezone($timezone) Set the timezone\n */\ntrait Options\n{\n    use Localization;\n\n    /**\n     * Customizable PHP_INT_SIZE override.\n     *\n     * @var int\n     */\n    public static $PHPIntSize = PHP_INT_SIZE;\n\n    /**\n     * First day of week.\n     *\n     * @var int\n     */\n    protected static $weekStartsAt = CarbonInterface::MONDAY;\n\n    /**\n     * Last day of week.\n     *\n     * @var int\n     */\n    protected static $weekEndsAt = CarbonInterface::SUNDAY;\n\n    /**\n     * Days of weekend.\n     *\n     * @var array\n     */\n    protected static $weekendDays = [\n        CarbonInterface::SATURDAY,\n        CarbonInterface::SUNDAY,\n    ];\n\n    /**\n     * Format regex patterns.\n     *\n     * @var array\n     */\n    protected static $regexFormats = [\n        'd' => '(3[01]|[12][0-9]|0[1-9])',\n        'D' => '([a-zA-Z]{3})',\n        'j' => '([123][0-9]|[1-9])',\n        'l' => '([a-zA-Z]{2,})',\n        'N' => '([1-7])',\n        'S' => '([a-zA-Z]{2})',\n        'w' => '([0-6])',\n        'z' => '(36[0-5]|3[0-5][0-9]|[12][0-9]{2}|[1-9]?[0-9])',\n        'W' => '(5[012]|[1-4][0-9]|[1-9])',\n        'F' => '([a-zA-Z]{2,})',\n        'm' => '(1[012]|0[1-9])',\n        'M' => '([a-zA-Z]{3})',\n        'n' => '(1[012]|[1-9])',\n        't' => '(2[89]|3[01])',\n        'L' => '(0|1)',\n        'o' => '([1-9][0-9]{0,4})',\n        'Y' => '([1-9]?[0-9]{4})',\n        'y' => '([0-9]{2})',\n        'a' => '(am|pm)',\n        'A' => '(AM|PM)',\n        'B' => '([0-9]{3})',\n        'g' => '(1[012]|[1-9])',\n        'G' => '(2[0-3]|1?[0-9])',\n        'h' => '(1[012]|0[1-9])',\n        'H' => '(2[0-3]|[01][0-9])',\n        'i' => '([0-5][0-9])',\n        's' => '([0-5][0-9])',\n        'u' => '([0-9]{1,6})',\n        'v' => '([0-9]{1,3})',\n        'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)',\n        'I' => '(0|1)',\n        'O' => '([\\+\\-](1[012]|0[0-9])[0134][05])',\n        'P' => '([\\+\\-](1[012]|0[0-9]):[0134][05])',\n        'T' => '([a-zA-Z]{1,5})',\n        'Z' => '(-?[1-5]?[0-9]{1,4})',\n        'U' => '([0-9]*)',\n\n        // The formats below are combinations of the above formats.\n        'c' => '(([1-9]?[0-9]{4})\\-(1[012]|0[1-9])\\-(3[01]|[12][0-9]|0[1-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])[\\+\\-](1[012]|0[0-9]):([0134][05]))', // Y-m-dTH:i:sP\n        'r' => '(([a-zA-Z]{3}), ([123][0-9]|[1-9]) ([a-zA-Z]{3}) ([1-9]?[0-9]{4}) (2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]) [\\+\\-](1[012]|0[0-9])([0134][05]))', // D, j M Y H:i:s O\n    ];\n\n    /**\n     * Indicates if months should be calculated with overflow.\n     * Global setting.\n     *\n     * @var bool\n     */\n    protected static $monthsOverflow = true;\n\n    /**\n     * Indicates if years should be calculated with overflow.\n     * Global setting.\n     *\n     * @var bool\n     */\n    protected static $yearsOverflow = true;\n\n    /**\n     * Indicates if the strict mode is in use.\n     * Global setting.\n     *\n     * @var bool\n     */\n    protected static $strictModeEnabled = true;\n\n    /**\n     * Function to call instead of format.\n     *\n     * @var string|callable|null\n     */\n    protected static $formatFunction = null;\n\n    /**\n     * Function to call instead of createFromFormat.\n     *\n     * @var string|callable|null\n     */\n    protected static $createFromFormatFunction = null;\n\n    /**\n     * Function to call instead of parse.\n     *\n     * @var string|callable|null\n     */\n    protected static $parseFunction = null;\n\n    /**\n     * Indicates if months should be calculated with overflow.\n     * Specific setting.\n     *\n     * @var bool|null\n     */\n    protected $localMonthsOverflow = null;\n\n    /**\n     * Indicates if years should be calculated with overflow.\n     * Specific setting.\n     *\n     * @var bool|null\n     */\n    protected $localYearsOverflow = null;\n\n    /**\n     * Indicates if the strict mode is in use.\n     * Specific setting.\n     *\n     * @var bool|null\n     */\n    protected $localStrictModeEnabled = null;\n\n    /**\n     * Options for diffForHumans and forHumans methods.\n     *\n     * @var bool|null\n     */\n    protected $localHumanDiffOptions = null;\n\n    /**\n     * Format to use on string cast.\n     *\n     * @var string|null\n     */\n    protected $localToStringFormat = null;\n\n    /**\n     * Format to use on JSON serialization.\n     *\n     * @var string|null\n     */\n    protected $localSerializer = null;\n\n    /**\n     * Instance-specific macros.\n     *\n     * @var array|null\n     */\n    protected $localMacros = null;\n\n    /**\n     * Instance-specific generic macros.\n     *\n     * @var array|null\n     */\n    protected $localGenericMacros = null;\n\n    /**\n     * Function to call instead of format.\n     *\n     * @var string|callable|null\n     */\n    protected $localFormatFunction = null;\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     * @see settings\n     *\n     * Enable the strict mode (or disable with passing false).\n     *\n     * @param bool $strictModeEnabled\n     */\n    public static function useStrictMode($strictModeEnabled = true)\n    {\n        static::$strictModeEnabled = $strictModeEnabled;\n    }\n\n    /**\n     * Returns true if the strict mode is globally in use, false else.\n     * (It can be overridden in specific instances.)\n     *\n     * @return bool\n     */\n    public static function isStrictModeEnabled()\n    {\n        return static::$strictModeEnabled;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Indicates if months should be calculated with overflow.\n     *\n     * @param bool $monthsOverflow\n     *\n     * @return void\n     */\n    public static function useMonthsOverflow($monthsOverflow = true)\n    {\n        static::$monthsOverflow = $monthsOverflow;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Reset the month overflow behavior.\n     *\n     * @return void\n     */\n    public static function resetMonthsOverflow()\n    {\n        static::$monthsOverflow = true;\n    }\n\n    /**\n     * Get the month overflow global behavior (can be overridden in specific instances).\n     *\n     * @return bool\n     */\n    public static function shouldOverflowMonths()\n    {\n        return static::$monthsOverflow;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Indicates if years should be calculated with overflow.\n     *\n     * @param bool $yearsOverflow\n     *\n     * @return void\n     */\n    public static function useYearsOverflow($yearsOverflow = true)\n    {\n        static::$yearsOverflow = $yearsOverflow;\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather use the ->settings() method.\n     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants\n     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).\n     * @see settings\n     *\n     * Reset the month overflow behavior.\n     *\n     * @return void\n     */\n    public static function resetYearsOverflow()\n    {\n        static::$yearsOverflow = true;\n    }\n\n    /**\n     * Get the month overflow global behavior (can be overridden in specific instances).\n     *\n     * @return bool\n     */\n    public static function shouldOverflowYears()\n    {\n        return static::$yearsOverflow;\n    }\n\n    /**\n     * Set specific options.\n     *  - strictMode: true|false|null\n     *  - monthOverflow: true|false|null\n     *  - yearOverflow: true|false|null\n     *  - humanDiffOptions: int|null\n     *  - toStringFormat: string|Closure|null\n     *  - toJsonFormat: string|Closure|null\n     *  - locale: string|null\n     *  - timezone: \\DateTimeZone|string|int|null\n     *  - macros: array|null\n     *  - genericMacros: array|null\n     *\n     * @param array $settings\n     *\n     * @return $this\n     */\n    public function settings(array $settings)\n    {\n        $this->localStrictModeEnabled = $settings['strictMode'] ?? null;\n        $this->localMonthsOverflow = $settings['monthOverflow'] ?? null;\n        $this->localYearsOverflow = $settings['yearOverflow'] ?? null;\n        $this->localHumanDiffOptions = $settings['humanDiffOptions'] ?? null;\n        $this->localToStringFormat = $settings['toStringFormat'] ?? null;\n        $this->localSerializer = $settings['toJsonFormat'] ?? null;\n        $this->localMacros = $settings['macros'] ?? null;\n        $this->localGenericMacros = $settings['genericMacros'] ?? null;\n        $this->localFormatFunction = $settings['formatFunction'] ?? null;\n        $date = $this;\n        if (isset($settings['locale'])) {\n            $locales = $settings['locale'];\n\n            if (!is_array($locales)) {\n                $locales = [$locales];\n            }\n\n            $date = $date->locale(...$locales);\n        }\n        if (isset($settings['timezone'])) {\n            $date = $date->shiftTimezone($settings['timezone']);\n        }\n\n        return $date;\n    }\n\n    /**\n     * Returns current local settings.\n     *\n     * @return array\n     */\n    public function getSettings()\n    {\n        $settings = [];\n        $map = [\n            'localStrictModeEnabled' => 'strictMode',\n            'localMonthsOverflow' => 'monthOverflow',\n            'localYearsOverflow' => 'yearOverflow',\n            'localHumanDiffOptions' => 'humanDiffOptions',\n            'localToStringFormat' => 'toStringFormat',\n            'localSerializer' => 'toJsonFormat',\n            'localMacros' => 'macros',\n            'localGenericMacros' => 'genericMacros',\n            'locale' => 'locale',\n            'tzName' => 'timezone',\n            'localFormatFunction' => 'formatFunction',\n        ];\n        foreach ($map as $property => $key) {\n            $value = $this->$property ?? null;\n            if ($value !== null) {\n                $settings[$key] = $value;\n            }\n        }\n\n        return $settings;\n    }\n\n    /**\n     * Show truthy properties on var_dump().\n     *\n     * @return array\n     */\n    public function __debugInfo()\n    {\n        return array_filter(get_object_vars($this), function ($var) {\n            return $var;\n        });\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\nuse InvalidArgumentException;\n\n/**\n * Trait Rounding.\n *\n * Round, ceil, floor units.\n *\n * Depends on the following methods:\n *\n * @method CarbonInterface copy()\n * @method CarbonInterface startOfWeek()\n */\ntrait Rounding\n{\n    /**\n     * Round the current instance at the given unit with given precision if specified and the given function.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     * @param string    $function\n     *\n     * @return CarbonInterface\n     */\n    public function roundUnit($unit, $precision = 1, $function = 'round')\n    {\n        $metaUnits = [\n            // @call roundUnit\n            'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'],\n            // @call roundUnit\n            'century' => [static::YEARS_PER_CENTURY, 'year'],\n            // @call roundUnit\n            'decade' => [static::YEARS_PER_DECADE, 'year'],\n            // @call roundUnit\n            'quarter' => [static::MONTHS_PER_QUARTER, 'month'],\n            // @call roundUnit\n            'millisecond' => [1000, 'microsecond'],\n        ];\n        $normalizedUnit = static::singularUnit($unit);\n        $ranges = array_merge(static::getRangesByUnit(), [\n            // @call roundUnit\n            'microsecond' => [0, 999999],\n        ]);\n        $factor = 1;\n        if (isset($metaUnits[$normalizedUnit])) {\n            [$factor, $normalizedUnit] = $metaUnits[$normalizedUnit];\n        }\n        $precision *= $factor;\n\n        if (!isset($ranges[$normalizedUnit])) {\n            throw new InvalidArgumentException(\"Unknown unit '$unit' to floor\");\n        }\n\n        $found = false;\n        $fraction = 0;\n        $arguments = null;\n        $factor = $this->year < 0 ? -1 : 1;\n        $changes = [];\n\n        foreach ($ranges as $unit => [$minimum, $maximum]) {\n            if ($normalizedUnit === $unit) {\n                $arguments = [$this->$unit, $minimum];\n                $fraction = $precision - floor($precision);\n                $found = true;\n\n                continue;\n            }\n\n            if ($found) {\n                $delta = $maximum + 1 - $minimum;\n                $factor /= $delta;\n                $fraction *= $delta;\n                $arguments[0] += $this->$unit * $factor;\n                $changes[$unit] = round($minimum + ($fraction ? $fraction * call_user_func($function, ($this->$unit - $minimum) / $fraction) : 0));\n                // Cannot use modulo as it lose double precision\n                while ($changes[$unit] >= $delta) {\n                    $changes[$unit] -= $delta;\n                }\n                $fraction -= floor($fraction);\n            }\n        }\n\n        [$value, $minimum] = $arguments;\n        /** @var CarbonInterface $result */\n        $result = $this->$normalizedUnit(floor(call_user_func($function, ($value - $minimum) / $precision) * $precision + $minimum));\n        foreach ($changes as $unit => $value) {\n            $result = $result->$unit($value);\n        }\n\n        return $result;\n    }\n\n    /**\n     * Truncate the current instance at the given unit with given precision if specified.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function floorUnit($unit, $precision = 1)\n    {\n        return $this->roundUnit($unit, $precision, 'floor');\n    }\n\n    /**\n     * Ceil the current instance at the given unit with given precision if specified.\n     *\n     * @param string    $unit\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function ceilUnit($unit, $precision = 1)\n    {\n        return $this->roundUnit($unit, $precision, 'ceil');\n    }\n\n    /**\n     * Round the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     * @param string    $function\n     *\n     * @return CarbonInterface\n     */\n    public function round($precision = 1, $function = 'round')\n    {\n        return $this->roundUnit('second', $precision, $function);\n    }\n\n    /**\n     * Round the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function floor($precision = 1)\n    {\n        return $this->roundUnit('second', $precision, 'floor');\n    }\n\n    /**\n     * Ceil the current instance second with given precision if specified.\n     *\n     * @param float|int $precision\n     *\n     * @return CarbonInterface\n     */\n    public function ceil($precision = 1)\n    {\n        return $this->roundUnit('second', $precision, 'ceil');\n    }\n\n    /**\n     * Round the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function roundWeek($weekStartsAt = null)\n    {\n        return $this->closest($this->copy()->floorWeek($weekStartsAt), $this->copy()->ceilWeek($weekStartsAt));\n    }\n\n    /**\n     * Truncate the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function floorWeek($weekStartsAt = null)\n    {\n        return $this->startOfWeek($weekStartsAt);\n    }\n\n    /**\n     * Ceil the current instance week.\n     *\n     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week\n     *\n     * @return CarbonInterface\n     */\n    public function ceilWeek($weekStartsAt = null)\n    {\n        if ($this->isMutable()) {\n            $startOfWeek = $this->copy()->startOfWeek($weekStartsAt);\n\n            return $startOfWeek != $this ?\n                $this->startOfWeek($weekStartsAt)->addWeek() :\n                $this;\n        }\n\n        $startOfWeek = $this->startOfWeek($weekStartsAt);\n\n        return $startOfWeek != $this ?\n            $startOfWeek->addWeek() :\n            $this->copy();\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse InvalidArgumentException;\n\n/**\n * Trait Serialization.\n *\n * Serialization and JSON stuff.\n *\n * Depends on the following properties:\n *\n * @property int $year\n * @property int $month\n * @property int $daysInMonth\n * @property int $quarter\n *\n * Depends on the following methods:\n *\n * @method string|static locale(string $locale = null)\n * @method string        toJSON()\n */\ntrait Serialization\n{\n    /**\n     * The custom Carbon JSON serializer.\n     *\n     * @var callable|null\n     */\n    protected static $serializer;\n\n    /**\n     * Locale to dump comes here before serialization.\n     *\n     * @var string|null\n     */\n    protected $dumpLocale = null;\n\n    /**\n     * Return a serialized string of the instance.\n     *\n     * @return string\n     */\n    public function serialize()\n    {\n        return serialize($this);\n    }\n\n    /**\n     * Create an instance from a serialized string.\n     *\n     * @param string $value\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return static\n     */\n    public static function fromSerialized($value)\n    {\n        $instance = @unserialize(\"$value\");\n\n        if (!$instance instanceof static) {\n            throw new InvalidArgumentException('Invalid serialized value.');\n        }\n\n        return $instance;\n    }\n\n    /**\n     * The __set_state handler.\n     *\n     * @param string|array $dump\n     *\n     * @return static\n     */\n    public static function __set_state($dump)\n    {\n        if (is_string($dump)) {\n            return static::parse($dump);\n        }\n\n        /** @var \\DateTimeInterface $date */\n        $date = get_parent_class(static::class) && method_exists(parent::class, '__set_state')\n            ? parent::__set_state($dump)\n            : (object) $dump;\n\n        return static::instance($date);\n    }\n\n    /**\n     * Returns the list of properties to dump on serialize() called on.\n     *\n     * @return array\n     */\n    public function __sleep()\n    {\n        $properties = ['date', 'timezone_type', 'timezone'];\n        if ($this->localTranslator ?? null) {\n            $properties[] = 'dumpLocale';\n            $this->dumpLocale = $this->locale ?? null;\n        }\n\n        return $properties;\n    }\n\n    /**\n     * Set locale if specified on unserialize() called.\n     */\n    public function __wakeup()\n    {\n        if (get_parent_class() && method_exists(parent::class, '__wakeup')) {\n            parent::__wakeup();\n        }\n        if (isset($this->dumpLocale)) {\n            $this->locale($this->dumpLocale);\n            $this->dumpLocale = null;\n        }\n    }\n\n    /**\n     * Prepare the object for JSON serialization.\n     *\n     * @return array|string\n     */\n    public function jsonSerialize()\n    {\n        $serializer = $this->localSerializer ?? static::$serializer;\n        if ($serializer) {\n            return is_string($serializer)\n                ? $this->rawFormat($serializer)\n                : call_user_func($serializer, $this);\n        }\n\n        return $this->toJSON();\n    }\n\n    /**\n     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.\n     *             You should rather transform Carbon object before the serialization.\n     *\n     * JSON serialize all Carbon instances using the given callback.\n     *\n     * @param callable $callback\n     *\n     * @return void\n     */\n    public static function serializeUsing($callback)\n    {\n        static::$serializer = $callback;\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Test.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\ntrait Test\n{\n    ///////////////////////////////////////////////////////////////////\n    ///////////////////////// TESTING AIDS ////////////////////////////\n    ///////////////////////////////////////////////////////////////////\n\n    /**\n     * A test Carbon instance to be returned when now instances are created.\n     *\n     * @var static\n     */\n    protected static $testNow;\n\n    /**\n     * Set a Carbon instance (real or mock) to be returned when a \"now\"\n     * instance is created.  The provided instance will be returned\n     * specifically under the following conditions:\n     *   - A call to the static now() method, ex. Carbon::now()\n     *   - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)\n     *   - When the string \"now\" is passed to the constructor or parse(), ex. new Carbon('now')\n     *   - When a string containing the desired time is passed to Carbon::parse().\n     *\n     * Note the timezone parameter was left out of the examples above and\n     * has no affect as the mock value will be returned regardless of its value.\n     *\n     * To clear the test instance call this method using the default\n     * parameter of null.\n     *\n     * /!\\ Use this method for unit tests only.\n     *\n     * @param static|string|null $testNow real or mock Carbon instance\n     */\n    public static function setTestNow($testNow = null)\n    {\n        static::$testNow = is_string($testNow) ? static::parse($testNow) : $testNow;\n    }\n\n    /**\n     * Get the Carbon instance (real or mock) to be returned when a \"now\"\n     * instance is created.\n     *\n     * @return static the current instance used for testing\n     */\n    public static function getTestNow()\n    {\n        return static::$testNow;\n    }\n\n    /**\n     * Determine if there is a valid test instance set. A valid test instance\n     * is anything that is not null.\n     *\n     * @return bool true if there is a test instance, otherwise false\n     */\n    public static function hasTestNow()\n    {\n        return static::getTestNow() !== null;\n    }\n\n    protected static function mockConstructorParameters(&$time, &$tz)\n    {\n        /** @var \\Carbon\\CarbonImmutable|\\Carbon\\Carbon $testInstance */\n        $testInstance = clone static::getTestNow();\n\n        //shift the time according to the given time zone\n        if ($tz !== null && $tz !== static::getTestNow()->getTimezone()) {\n            $testInstance = $testInstance->setTimezone($tz);\n        } else {\n            $tz = $testInstance->getTimezone();\n        }\n\n        if (static::hasRelativeKeywords($time)) {\n            $testInstance = $testInstance->modify($time);\n        }\n\n        $time = $testInstance instanceof self ? $testInstance->rawFormat(static::MOCK_DATETIME_FORMAT) : $testInstance->format(static::MOCK_DATETIME_FORMAT);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\n/**\n * Trait Timestamp.\n */\ntrait Timestamp\n{\n    /**\n     * Create a Carbon instance from a timestamp.\n     *\n     * @param int                       $timestamp\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createFromTimestamp($timestamp, $tz = null)\n    {\n        return static::today($tz)->setTimestamp((int) $timestamp);\n    }\n\n    /**\n     * Create a Carbon instance from a timestamp in milliseconds.\n     *\n     * @param int                       $timestamp\n     * @param \\DateTimeZone|string|null $tz\n     *\n     * @return static\n     */\n    public static function createFromTimestampMs($timestamp, $tz = null)\n    {\n        return static::rawCreateFromFormat('U.u', sprintf('%F', $timestamp / 1000))\n            ->setTimezone($tz);\n    }\n\n    /**\n     * Create a Carbon instance from an UTC timestamp.\n     *\n     * @param int $timestamp\n     *\n     * @return static\n     */\n    public static function createFromTimestampUTC($timestamp)\n    {\n        return new static('@'.$timestamp);\n    }\n\n    /**\n     * Set the instance's timestamp.\n     *\n     * @param int $value\n     *\n     * @return static\n     */\n    public function timestamp($value)\n    {\n        return $this->setTimestamp((int) $value);\n    }\n\n    /**\n     * Returns a timestamp rounded with the given precision (6 by default).\n     *\n     * @example getPreciseTimestamp()   1532087464437474 (microsecond maximum precision)\n     * @example getPreciseTimestamp(6)  1532087464437474\n     * @example getPreciseTimestamp(5)  153208746443747  (1/100000 second precision)\n     * @example getPreciseTimestamp(4)  15320874644375   (1/10000 second precision)\n     * @example getPreciseTimestamp(3)  1532087464437    (millisecond precision)\n     * @example getPreciseTimestamp(2)  153208746444     (1/100 second precision)\n     * @example getPreciseTimestamp(1)  15320874644      (1/10 second precision)\n     * @example getPreciseTimestamp(0)  1532087464       (second precision)\n     * @example getPreciseTimestamp(-1) 153208746        (10 second precision)\n     * @example getPreciseTimestamp(-2) 15320875         (100 second precision)\n     *\n     * @param int $precision\n     *\n     * @return float\n     */\n    public function getPreciseTimestamp($precision = 6)\n    {\n        return round($this->rawFormat('Uu') / pow(10, 6 - $precision));\n    }\n\n    /**\n     * Returns the milliseconds timestamps used amongst other by Date javascript objects.\n     *\n     * @return float\n     */\n    public function valueOf()\n    {\n        return $this->getPreciseTimestamp(3);\n    }\n\n    /**\n     * @alias getTimestamp\n     *\n     * Returns the UNIX timestamp for the current date.\n     *\n     * @return int\n     */\n    public function unix()\n    {\n        return $this->getTimestamp();\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Units.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\nuse Carbon\\CarbonInterface;\nuse Carbon\\CarbonInterval;\nuse DateInterval;\nuse InvalidArgumentException;\n\n/**\n * Trait Units.\n *\n * Add, subtract and set units.\n */\ntrait Units\n{\n    /**\n     * Add seconds to the instance using timestamp. Positive $value travels\n     * forward while negative $value travels into the past.\n     *\n     * @param string $unit\n     * @param int    $value\n     *\n     * @return static\n     */\n    public function addRealUnit($unit, $value = 1)\n    {\n        switch ($unit) {\n            // @call addRealUnit\n            case 'micro':\n            // @call addRealUnit\n            case 'microsecond':\n                /* @var CarbonInterface $this */\n                $diff = $this->microsecond + $value;\n                $time = $this->getTimestamp();\n                $seconds = (int) floor($diff / static::MICROSECONDS_PER_SECOND);\n                $time += $seconds;\n                $diff -= $seconds * static::MICROSECONDS_PER_SECOND;\n                $microtime = str_pad(\"$diff\", 6, '0', STR_PAD_LEFT);\n                $tz = $this->tz;\n\n                return $this->tz('UTC')->modify(\"@$time.$microtime\")->tz($tz);\n            // @call addRealUnit\n            case 'milli':\n            // @call addRealUnit\n            case 'millisecond':\n                return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND);\n                break;\n            // @call addRealUnit\n            case 'second':\n                break;\n            // @call addRealUnit\n            case 'minute':\n                $value *= static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'hour':\n                $value *= static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'day':\n                $value *= static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'week':\n                $value *= static::DAYS_PER_WEEK * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'month':\n                $value *= 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'quarter':\n                $value *= static::MONTHS_PER_QUARTER * 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'year':\n                $value *= 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'decade':\n                $value *= static::YEARS_PER_DECADE * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'century':\n                $value *= static::YEARS_PER_CENTURY * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            // @call addRealUnit\n            case 'millennium':\n                $value *= static::YEARS_PER_MILLENNIUM * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;\n                break;\n            default:\n                if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {\n                    throw new InvalidArgumentException(\"Invalid unit for real timestamp add/sub: '$unit'\");\n                }\n\n                return $this;\n        }\n\n        /* @var CarbonInterface $this */\n        return $this->setTimestamp((int) ($this->getTimestamp() + $value));\n    }\n\n    public function subRealUnit($unit, $value = 1)\n    {\n        return $this->addRealUnit($unit, -$value);\n    }\n\n    /**\n     * Returns true if a property can be changed via setter.\n     *\n     * @param string $unit\n     *\n     * @return bool\n     */\n    public static function isModifiableUnit($unit)\n    {\n        static $modifiableUnits = [\n            // @call addUnit\n            'millennium',\n            // @call addUnit\n            'century',\n            // @call addUnit\n            'decade',\n            // @call addUnit\n            'quarter',\n            // @call addUnit\n            'week',\n            // @call addUnit\n            'weekday',\n        ];\n\n        return in_array($unit, $modifiableUnits) || in_array($unit, static::$units);\n    }\n\n    /**\n     * Add given units or interval to the current instance.\n     *\n     * @example $date->add('hour', 3)\n     * @example $date->add(15, 'days')\n     * @example $date->add(CarbonInterval::days(4))\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function add($unit, $value = 1, $overflow = null)\n    {\n        if (is_string($unit) && func_num_args() === 1) {\n            $unit = CarbonInterval::make($unit);\n        }\n\n        if ($unit instanceof DateInterval) {\n            return parent::add($unit);\n        }\n\n        if (is_numeric($unit)) {\n            $tempUnit = $value;\n            $value = $unit;\n            $unit = $tempUnit;\n        }\n\n        return $this->addUnit($unit, $value, $overflow);\n    }\n\n    /**\n     * Add given units to the current instance.\n     *\n     * @param string    $unit\n     * @param int       $value\n     * @param bool|null $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function addUnit($unit, $value = 1, $overflow = null)\n    {\n        /** @var CarbonInterface $date */\n        $date = $this;\n\n        if (!is_numeric($value) || !floatval($value)) {\n            return $date->isMutable() ? $date : $date->copy();\n        }\n\n        $metaUnits = [\n            'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'],\n            'century' => [static::YEARS_PER_CENTURY, 'year'],\n            'decade' => [static::YEARS_PER_DECADE, 'year'],\n            'quarter' => [static::MONTHS_PER_QUARTER, 'month'],\n        ];\n        if (isset($metaUnits[$unit])) {\n            [$factor, $unit] = $metaUnits[$unit];\n            $value *= $factor;\n        }\n\n        if ($unit === 'weekday') {\n            $weekendDays = static::getWeekendDays();\n            if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) {\n                $absoluteValue = abs($value);\n                $sign = $value / max(1, $absoluteValue);\n                $weekDaysCount = 7 - min(6, count(array_unique($weekendDays)));\n                $weeks = floor($absoluteValue / $weekDaysCount);\n                for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) {\n                    $date = $date->addDays($sign);\n                    while (in_array($date->dayOfWeek, $weekendDays)) {\n                        $date = $date->addDays($sign);\n                    }\n                }\n\n                $value = $weeks * $sign;\n                $unit = 'week';\n            }\n\n            $timeString = $date->toTimeString();\n        } elseif ($canOverflow = in_array($unit, [\n                'month',\n                'year',\n            ]) && ($overflow === false || (\n                $overflow === null &&\n                ($ucUnit = ucfirst($unit).'s') &&\n                !($this->{'local'.$ucUnit.'Overflow'} ?? static::{'shouldOverflow'.$ucUnit}())\n            ))) {\n            $day = $date->day;\n        }\n\n        $value = (int) $value;\n\n        if ($unit === 'milli' || $unit === 'millisecond') {\n            $unit = 'microsecond';\n            $value *= static::MICROSECONDS_PER_MILLISECOND;\n        }\n\n        // Work-around for bug https://bugs.php.net/bug.php?id=75642\n        if ($unit === 'micro' || $unit === 'microsecond') {\n            $microseconds = $this->micro + $value;\n            $second = (int) floor($microseconds / static::MICROSECONDS_PER_SECOND);\n            $microseconds %= static::MICROSECONDS_PER_SECOND;\n            if ($microseconds < 0) {\n                $microseconds += static::MICROSECONDS_PER_SECOND;\n            }\n            $date = $date->microseconds($microseconds);\n            $unit = 'second';\n            $value = $second;\n        }\n        $date = $date->modify(\"$value $unit\");\n\n        if (isset($timeString)) {\n            return $date->setTimeFromTimeString($timeString);\n        }\n\n        if (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) {\n            $date = $date->modify('last day of previous month');\n        }\n\n        return $date;\n    }\n\n    /**\n     * Subtract given units to the current instance.\n     *\n     * @param string    $unit\n     * @param int       $value\n     * @param bool|null $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function subUnit($unit, $value = 1, $overflow = null)\n    {\n        return $this->addUnit($unit, -$value, $overflow);\n    }\n\n    /**\n     * Subtract given units or interval to the current instance.\n     *\n     * @example $date->sub('hour', 3)\n     * @example $date->sub(15, 'days')\n     * @example $date->sub(CarbonInterval::days(4))\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function sub($unit, $value = 1, $overflow = null)\n    {\n        if (is_string($unit) && func_num_args() === 1) {\n            $unit = CarbonInterval::make($unit);\n        }\n\n        if ($unit instanceof DateInterval) {\n            return parent::sub($unit);\n        }\n\n        if (is_numeric($unit)) {\n            $_unit = $value;\n            $value = $unit;\n            $unit = $_unit;\n            unset($_unit);\n        }\n\n        return $this->addUnit($unit, -floatval($value), $overflow);\n    }\n\n    /**\n     * Subtract given units or interval to the current instance.\n     *\n     * @see sub()\n     *\n     * @param string|DateInterval $unit\n     * @param int                 $value\n     * @param bool|null           $overflow\n     *\n     * @return CarbonInterface\n     */\n    public function subtract($unit, $value = 1, $overflow = null)\n    {\n        if (is_string($unit) && func_num_args() === 1) {\n            $unit = CarbonInterval::make($unit);\n        }\n\n        return $this->sub($unit, $value, $overflow);\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Traits/Week.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon\\Traits;\n\n/**\n * Trait Week.\n *\n * week and ISO week number, year and count in year.\n *\n * Depends on the following properties:\n *\n * @property int $daysInYear\n * @property int $dayOfWeek\n * @property int $dayOfYear\n * @property int $year\n *\n * Depends on the following methods:\n *\n * @method static addWeeks(int $weeks = 1)\n * @method static copy()\n * @method static dayOfYear(int $dayOfYear)\n * @method string getTranslationMessage(string $key, string $locale = null, string $default = null, $translator = null)\n * @method static next(int $day)\n * @method static startOfWeek(int $day = 1)\n * @method static subWeeks(int $weeks = 1)\n * @method static year(int $year = null)\n */\ntrait Week\n{\n    /**\n     * Set/get the week number of year using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int|static\n     */\n    public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null)\n    {\n        return $this->weekYear(\n            $year,\n            $dayOfWeek ?? 1,\n            $dayOfYear ?? 4\n        );\n    }\n\n    /**\n     * Set/get the week number of year using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int|static\n     */\n    public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null)\n    {\n        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;\n        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;\n\n        if ($year !== null) {\n            $year = (int) round($year);\n\n            if ($this->weekYear(null, $dayOfWeek, $dayOfYear) === $year) {\n                return $this->copy();\n            }\n\n            $week = $this->week(null, $dayOfWeek, $dayOfYear);\n            $day = $this->dayOfWeek;\n            $date = $this->year($year);\n            switch ($date->weekYear(null, $dayOfWeek, $dayOfYear) - $year) {\n                case 1:\n                    $date = $date->subWeeks(26);\n                    break;\n                case -1:\n                    $date = $date->addWeeks(26);\n                    break;\n            }\n\n            $date = $date->addWeeks($week - $date->week(null, $dayOfWeek, $dayOfYear))->startOfWeek($dayOfWeek);\n\n            if ($date->dayOfWeek === $day) {\n                return $date;\n            }\n\n            return $date->next($day);\n        }\n\n        $year = $this->year;\n        $day = $this->dayOfYear;\n        $date = $this->copy()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n\n        if ($date->year === $year && $day < $date->dayOfYear) {\n            return $year - 1;\n        }\n\n        $date = $this->copy()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n\n        if ($date->year === $year && $day >= $date->dayOfYear) {\n            return $year + 1;\n        }\n\n        return $year;\n    }\n\n    /**\n     * Get the number of weeks of the current week-year using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int\n     */\n    public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null)\n    {\n        return $this->weeksInYear(\n            $dayOfWeek ?? 1,\n            $dayOfYear ?? 4\n        );\n    }\n\n    /**\n     * Get the number of weeks of the current week-year using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)\n     * @param int|null $dayOfYear first day of year included in the week #1\n     *\n     * @return int\n     */\n    public function weeksInYear($dayOfWeek = null, $dayOfYear = null)\n    {\n        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;\n        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;\n        $year = $this->year;\n        $start = $this->copy()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n        $startDay = $start->dayOfYear;\n        if ($start->year !== $year) {\n            $startDay -= $start->daysInYear;\n        }\n        $end = $this->copy()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n        $endDay = $end->dayOfYear;\n        if ($end->year !== $year) {\n            $endDay += $this->daysInYear;\n        }\n\n        return (int) round(($endDay - $startDay) / 7);\n    }\n\n    /**\n     * Get/set the week number using given first day of week and first\n     * day of year included in the first week. Or use US format if no settings\n     * given (Sunday / Jan 6).\n     *\n     * @param int|null $week\n     * @param int|null $dayOfWeek\n     * @param int|null $dayOfYear\n     *\n     * @return int|static\n     */\n    public function week($week = null, $dayOfWeek = null, $dayOfYear = null)\n    {\n        $date = $this;\n        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;\n        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;\n\n        if ($week !== null) {\n            return $date->addWeeks(round($week) - $this->week(null, $dayOfWeek, $dayOfYear));\n        }\n\n        $start = $date->copy()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n        $end = $date->copy()->startOfWeek($dayOfWeek);\n        if ($start > $end) {\n            $start = $start->subWeeks(26)->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);\n        }\n        $week = (int) ($start->diffInDays($end) / 7 + 1);\n\n        return $week > $end->weeksInYear($dayOfWeek, $dayOfYear) ? 1 : $week;\n    }\n\n    /**\n     * Get/set the week number using given first day of week and first\n     * day of year included in the first week. Or use ISO format if no settings\n     * given.\n     *\n     * @param int|null $week\n     * @param int|null $dayOfWeek\n     * @param int|null $dayOfYear\n     *\n     * @return int|static\n     */\n    public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null)\n    {\n        return $this->week(\n            $week,\n            $dayOfWeek ?? 1,\n            $dayOfYear ?? 4\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/nesbot/carbon/src/Carbon/Translator.php",
    "content": "<?php\n\n/**\n * This file is part of the Carbon package.\n *\n * (c) Brian Nesbitt <brian@nesbot.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nnamespace Carbon;\n\nuse Closure;\nuse ReflectionException;\nuse ReflectionFunction;\nuse Symfony\\Component\\Translation;\n\nclass Translator extends Translation\\Translator\n{\n    /**\n     * Translator singletons for each language.\n     *\n     * @var array\n     */\n    protected static $singletons = [];\n\n    /**\n     * List of custom localized messages.\n     *\n     * @var array\n     */\n    protected $messages = [];\n\n    /**\n     * List of custom directories that contain translation files.\n     *\n     * @var array\n     */\n    protected $directories = [];\n\n    /**\n     * Set to true while constructing.\n     *\n     * @var bool\n     */\n    protected $initializing = false;\n\n    /**\n     * Return a singleton instance of Translator.\n     *\n     * @param string|null $locale optional initial locale (\"en\" - english by default)\n     *\n     * @return static\n     */\n    public static function get($locale = null)\n    {\n        $locale = $locale ?: 'en';\n\n        if (!isset(static::$singletons[$locale])) {\n            static::$singletons[$locale] = new static($locale ?: 'en');\n        }\n\n        return static::$singletons[$locale];\n    }\n\n    public function __construct($locale, Translation\\Formatter\\MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false)\n    {\n        $this->initializing = true;\n        $this->directories = [__DIR__.'/Lang'];\n        $this->addLoader('array', new Translation\\Loader\\ArrayLoader());\n        parent::__construct($locale, $formatter, $cacheDir, $debug);\n        $this->initializing = false;\n    }\n\n    /**\n     * Returns the list of directories translation files are searched in.\n     *\n     * @return array\n     */\n    public function getDirectories(): array\n    {\n        return $this->directories;\n    }\n\n    /**\n     * Set list of directories translation files are searched in.\n     *\n     * @param array $directories new directories list\n     *\n     * @return $this\n     */\n    public function setDirectories(array $directories)\n    {\n        $this->directories = $directories;\n\n        return $this;\n    }\n\n    /**\n     * Add a directory to the list translation files are searched in.\n     *\n     * @param string $directory new directory\n     *\n     * @return $this\n     */\n    public function addDirectory(string $directory)\n    {\n        $this->directories[] = $directory;\n\n        return $this;\n    }\n\n    /**\n     * Remove a directory from the list translation files are searched in.\n     *\n     * @param string $directory directory path\n     *\n     * @return $this\n     */\n    public function removeDirectory(string $directory)\n    {\n        $search = rtrim(strtr($directory, '\\\\', '/'), '/');\n\n        return $this->setDirectories(array_filter($this->getDirectories(), function ($item) use ($search) {\n            return rtrim(strtr($item, '\\\\', '/'), '/') !== $search;\n        }));\n    }\n\n    /**\n     * Returns the translation.\n     *\n     * @param string $id\n     * @param array  $parameters\n     * @param string $domain\n     * @param string $locale\n     *\n     * @return string\n     */\n    public function trans($id, array $parameters = [], $domain = null, $locale = null)\n    {\n        if (null === $domain) {\n            $domain = 'messages';\n        }\n\n        $format = $this->getCatalogue($locale)->get((string) $id, $domain);\n\n        if ($format instanceof Closure) {\n            // @codeCoverageIgnoreStart\n            try {\n                $count = (new ReflectionFunction($format))->getNumberOfRequiredParameters();\n            } catch (ReflectionException $exception) {\n                $count = 0;\n            }\n            // @codeCoverageIgnoreEnd\n\n            return $format(\n                ...array_values($parameters),\n                ...array_fill(0, max(0, $count - count($parameters)), null)\n            );\n        }\n\n        return parent::trans($id, $parameters, $domain, $locale);\n    }\n\n    /**\n     * Reset messages of a locale (all locale if no locale passed).\n     * Remove custom messages and reload initial messages from matching\n     * file in Lang directory.\n     *\n     * @param string|null $locale\n     *\n     * @return bool\n     */\n    public function resetMessages($locale = null)\n    {\n        if ($locale === null) {\n            $this->messages = [];\n\n            return true;\n        }\n\n        foreach ($this->getDirectories() as $directory) {\n            $directory = rtrim($directory, '\\\\/');\n            if (file_exists($filename = \"$directory/$locale.php\")) {\n                $this->messages[$locale] = require $filename;\n                $this->addResource('array', $this->messages[$locale], $locale);\n\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Returns the list of files matching a given locale prefix (or all if empty).\n     *\n     * @param string $prefix prefix required to filter result\n     *\n     * @return array\n     */\n    public function getLocalesFiles($prefix = '')\n    {\n        $files = [];\n        foreach ($this->getDirectories() as $directory) {\n            $directory = rtrim($directory, '\\\\/');\n            foreach (glob(\"$directory/$prefix*.php\") as $file) {\n                $files[] = $file;\n            }\n        }\n\n        return array_unique($files);\n    }\n\n    /**\n     * Returns the list of internally available locales and already loaded custom locales.\n     * (It will ignore custom translator dynamic loading.)\n     *\n     * @param string $prefix prefix required to filter result\n     *\n     * @return array\n     */\n    public function getAvailableLocales($prefix = '')\n    {\n        $locales = [];\n        foreach ($this->getLocalesFiles($prefix) as $file) {\n            $locales[] = substr($file, strrpos($file, '/') + 1, -4);\n        }\n\n        return array_unique(array_merge($locales, array_keys($this->messages)));\n    }\n\n    /**\n     * Init messages language from matching file in Lang directory.\n     *\n     * @param string $locale\n     *\n     * @return bool\n     */\n    protected function loadMessagesFromFile($locale)\n    {\n        if (isset($this->messages[$locale])) {\n            return true;\n        }\n\n        return $this->resetMessages($locale);\n    }\n\n    /**\n     * Set messages of a locale and take file first if present.\n     *\n     * @param string $locale\n     * @param array  $messages\n     *\n     * @return $this\n     */\n    public function setMessages($locale, $messages)\n    {\n        $this->loadMessagesFromFile($locale);\n        $this->addResource('array', $messages, $locale);\n        $this->messages[$locale] = array_merge(\n            isset($this->messages[$locale]) ? $this->messages[$locale] : [],\n            $messages\n        );\n\n        return $this;\n    }\n\n    /**\n     * Set messages of the current locale and take file first if present.\n     *\n     * @param array $messages\n     *\n     * @return $this\n     */\n    public function setTranslations($messages)\n    {\n        return $this->setMessages($this->getLocale(), $messages);\n    }\n\n    /**\n     * Get messages of a locale, if none given, return all the\n     * languages.\n     *\n     * @param string|null $locale\n     *\n     * @return array\n     */\n    public function getMessages($locale = null)\n    {\n        return $locale === null ? $this->messages : $this->messages[$locale];\n    }\n\n    /**\n     * Set the current translator locale and indicate if the source locale file exists\n     *\n     * @param string $locale locale ex. en\n     *\n     * @return bool\n     */\n    public function setLocale($locale)\n    {\n        $locale = preg_replace_callback('/[-_]([a-z]{2,})/', function ($matches) {\n            // _2-letters or YUE is a region, _3+-letters is a variant\n            $upper = strtoupper($matches[1]);\n\n            if ($upper === 'YUE' || $upper === 'ISO' || strlen($upper) < 3) {\n                return \"_$upper\";\n            }\n\n            return '_'.ucfirst($matches[1]);\n        }, strtolower($locale));\n\n        if ($this->getLocale() === $locale) {\n            return true;\n        }\n\n        if ($locale === 'auto') {\n            $completeLocale = setlocale(LC_TIME, 0);\n            $locale = preg_replace('/^([^_.-]+).*$/', '$1', $completeLocale);\n            $locales = $this->getAvailableLocales($locale);\n\n            $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale);\n            $getScore = function ($language) use ($completeLocaleChunks) {\n                $chunks = preg_split('/[_.-]+/', $language);\n                $score = 0;\n                foreach ($completeLocaleChunks as $index => $chunk) {\n                    if (!isset($chunks[$index])) {\n                        $score++;\n\n                        continue;\n                    }\n                    if (strtolower($chunks[$index]) === strtolower($chunk)) {\n                        $score += 10;\n                    }\n                }\n\n                return $score;\n            };\n            usort($locales, function ($a, $b) use ($getScore) {\n                $a = $getScore($a);\n                $b = $getScore($b);\n\n                if ($a === $b) {\n                    return 0;\n                }\n\n                return $a < $b ? 1 : -1;\n            });\n            $locale = $locales[0];\n        }\n\n        // If subtag (ex: en_CA) first load the macro (ex: en) to have a fallback\n        if (strpos($locale, '_') !== false &&\n            $this->loadMessagesFromFile($macroLocale = preg_replace('/^([^_]+).*$/', '$1', $locale))\n        ) {\n            parent::setLocale($macroLocale);\n        }\n\n        if ($this->loadMessagesFromFile($locale) || $this->initializing) {\n            parent::setLocale($locale);\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Show locale on var_dump().\n     *\n     * @return array\n     */\n    public function __debugInfo()\n    {\n        return [\n            'locale' => $this->getLocale(),\n        ];\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Nuno Maduro <enunomaduro@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/nunomaduro/collision/README.md",
    "content": "<p align=\"center\">\n    <img src=\"https://raw.githubusercontent.com/nunomaduro/collision/stable/docs/logo.png\" alt=\"Collision logo\" width=\"480\">\n    <br>\n    <img src=\"https://raw.githubusercontent.com/nunomaduro/collision/stable/docs/example.png\" alt=\"Collision code example\" height=\"300\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://travis-ci.org/nunomaduro/collision\"><img src=\"https://img.shields.io/travis/nunomaduro/collision/stable.svg\" alt=\"Build Status\"></img></a>\n  <a href=\"https://scrutinizer-ci.com/g/nunomaduro/collision\"><img src=\"https://img.shields.io/scrutinizer/g/nunomaduro/collision.svg\" alt=\"Quality Score\"></img></a>\n  <a href=\"https://scrutinizer-ci.com/g/nunomaduro/collision\"><img src=\"https://img.shields.io/scrutinizer/coverage/g/nunomaduro/collision.svg\" alt=\"Coverage\"></img></a>\n  <a href=\"https://packagist.org/packages/nunomaduro/collision\"><img src=\"https://poser.pugx.org/nunomaduro/collision/d/total.svg\" alt=\"Total Downloads\"></a>\n  <a href=\"https://packagist.org/packages/nunomaduro/collision\"><img src=\"https://poser.pugx.org/nunomaduro/collision/v/stable.svg\" alt=\"Latest Stable Version\"></a>\n  <a href=\"https://packagist.org/packages/nunomaduro/collision\"><img src=\"https://poser.pugx.org/nunomaduro/collision/license.svg\" alt=\"License\"></a>\n</p>\n\n## About Collision\n\nCollision was created by, and is maintained by [Nuno Maduro](https://github.com/nunomaduro), and is an error handler framework for console/command-line PHP applications.\n\n- Build on top of [Whoops](https://github.com/filp/whoops).\n- Supports [Laravel](https://github.com/laravel/laravel) Artisan & [PHPUnit](https://github.com/sebastianbergmann/phpunit).\n- Built with [PHP 7](https://php.net) using modern coding standards.\n\n## Installation & Usage\n\n> **Requires [PHP 7.1+](https://php.net/releases/)**\n\nRequire Collision using [Composer](https://getcomposer.org):\n\n```bash\ncomposer require nunomaduro/collision --dev\n```\n\nIf you are not using Laravel, you need to register the handler in your code:\n\n```php\n(new \\NunoMaduro\\Collision\\Provider)->register();\n```\n\n## Lumen adapter\n\nConfigure the Collision service provider:\n```php\n// bootstrap/app.php:\n$app->register(\\NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider::class);\n```\n\n## Phpunit adapter\n\nPhpunit must be 7.0 or higher.\n\nAdd the following configuration to your `phpunit.xml`:\n\n```xml\n    <listeners>\n        <listener class=\"NunoMaduro\\Collision\\Adapters\\Phpunit\\Listener\" />\n    </listeners>\n```\n\n## Contributing\n\nThank you for considering to contribute to Collision. All the contribution guidelines are mentioned [here](CONTRIBUTING.md).\n\nYou can have a look at the [CHANGELOG](CHANGELOG.md) for constant updates & detailed information about the changes. You can also follow the twitter account for latest announcements or just come say hi!: [@enunomaduro](https://twitter.com/enunomaduro)\n\n## Support the development\n**Do you like this project? Support it by donating**\n\n- PayPal: [Donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L)\n- Patreon: [Donate](https://www.patreon.com/nunomaduro)\n\n## License\n\nCollision is an open-sourced software licensed under the [MIT license](LICENSE.md).\n\nLogo by [Caneco](https://twitter.com/caneco).\n"
  },
  {
    "path": "vendor/nunomaduro/collision/composer.json",
    "content": "{\n    \"name\": \"nunomaduro/collision\",\n    \"description\": \"Cli error handling for console/command-line PHP applications.\",\n    \"keywords\": [\"console\", \"command-line\", \"php\", \"cli\", \"error\", \"handling\", \"laravel-zero\", \"laravel\", \"artisan\", \"symfony\"],\n    \"license\": \"MIT\",\n    \"support\": {\n        \"issues\": \"https://github.com/nunomaduro/collision/issues\",\n        \"source\": \"https://github.com/nunomaduro/collision\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Nuno Maduro\",\n            \"email\": \"enunomaduro@gmail.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1\",\n        \"filp/whoops\": \"^2.1.4\",\n        \"symfony/console\": \"~2.8|~3.3|~4.0\",\n        \"jakub-onderka/php-console-highlighter\": \"0.3.*|0.4.*\"\n    },\n    \"require-dev\": {\n        \"laravel/framework\": \"5.8.*\",\n        \"nunomaduro/larastan\": \"^0.3.0\",\n        \"phpstan/phpstan\": \"^0.11\",\n        \"phpunit/phpunit\": \"~8.0\"\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Tests\\\\\": \"tests/\"\n        }\n    },\n    \"minimum-stability\": \"dev\",\n    \"prefer-stable\": true,\n    \"autoload\": {\n        \"psr-4\": {\n            \"NunoMaduro\\\\Collision\\\\\": \"src/\"\n        }\n    },\n    \"config\": {\n        \"preferred-install\": \"dist\",\n        \"sort-packages\": true\n    },\n    \"extra\": {\n        \"laravel\": {\n            \"providers\": [\n                \"NunoMaduro\\\\Collision\\\\Adapters\\\\Laravel\\\\CollisionServiceProvider\"\n            ]\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/phpstan.neon.dist",
    "content": "includes:\n    - ./vendor/nunomaduro/larastan/extension.neon\nparameters:\n    level: max\n    paths:\n        - src\n    reportUnmatchedIgnoredErrors: false\n    ignoreErrors:\n        - '#Parameter \\#1 \\$input of function str_pad expects string, int given.#'\n        - '#Cannot call method addTheme\\(\\) on array|JakubOnderka\\\\PhpConsoleColor\\\\ConsoleColor#'\n"
  },
  {
    "path": "vendor/nunomaduro/collision/phpunit.xml.dist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit backupGlobals=\"false\"\n         backupStaticAttributes=\"false\"\n         beStrictAboutTestsThatDoNotTestAnything=\"true\"\n         beStrictAboutOutputDuringTests=\"true\"\n         bootstrap=\"vendor/autoload.php\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n         failOnRisky=\"true\"\n         failOnWarning=\"true\"\n         processIsolation=\"false\"\n         stopOnError=\"false\"\n         stopOnFailure=\"false\"\n         verbose=\"true\"\n>\n    <testsuites>\n        <testsuite name=\"Collision Test Suite\">\n            <directory suffix=\"Test.php\">./tests</directory>\n        </testsuite>\n    </testsuites>\n    <filter>\n        <whitelist processUncoveredFilesFromWhitelist=\"true\">\n            <directory suffix=\".php\">./src</directory>\n        </whitelist>\n    </filter>\n</phpunit>\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Adapters/Laravel/CollisionServiceProvider.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Adapters\\Laravel;\n\nuse NunoMaduro\\Collision\\Provider;\nuse Illuminate\\Support\\ServiceProvider;\nuse NunoMaduro\\Collision\\Adapters\\Phpunit\\Listener;\nuse NunoMaduro\\Collision\\Contracts\\Provider as ProviderContract;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler as ExceptionHandlerContract;\nuse NunoMaduro\\Collision\\Contracts\\Adapters\\Phpunit\\Listener as ListenerContract;\n\n/**\n * This is an Collision Laravel Adapter Service Provider implementation.\n *\n * Registers the Error Handler on Laravel.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass CollisionServiceProvider extends ServiceProvider\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected $defer = true;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function register()\n    {\n        if ($this->app->runningInConsole() && ! $this->app->runningUnitTests()) {\n            $this->app->singleton(ListenerContract::class, Listener::class);\n            $this->app->bind(ProviderContract::class, Provider::class);\n\n            $appExceptionHandler = $this->app->make(ExceptionHandlerContract::class);\n\n            $this->app->singleton(\n                ExceptionHandlerContract::class,\n                function ($app) use ($appExceptionHandler) {\n                    return new ExceptionHandler($app, $appExceptionHandler);\n                }\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function provides()\n    {\n        return [ProviderContract::class];\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Adapters/Laravel/ExceptionHandler.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Adapters\\Laravel;\n\nuse Exception;\nuse Illuminate\\Contracts\\Container\\Container;\nuse NunoMaduro\\Collision\\Contracts\\Provider as ProviderContract;\nuse Illuminate\\Contracts\\Debug\\ExceptionHandler as ExceptionHandlerContract;\nuse Symfony\\Component\\Console\\Exception\\ExceptionInterface as SymfonyConsoleExceptionInterface;\n\n/**\n * This is an Collision Laravel Adapter ExceptionHandler implementation.\n *\n * Registers the Error Handler on Laravel.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass ExceptionHandler implements ExceptionHandlerContract\n{\n    /**\n     * Holds an instance of the application exception handler.\n     *\n     * @var \\Illuminate\\Contracts\\Debug\\ExceptionHandler\n     */\n    protected $appExceptionHandler;\n\n    /**\n     * Holds an instance of the container.\n     *\n     * @var \\Illuminate\\Contracts\\Container\\Container\n     */\n    protected $container;\n\n    /**\n     * Creates a new instance of the ExceptionHandler.\n     *\n     * @param \\Illuminate\\Contracts\\Container\\Container $container\n     * @param \\Illuminate\\Contracts\\Debug\\ExceptionHandler $appExceptionHandler\n     */\n    public function __construct(Container $container, ExceptionHandlerContract $appExceptionHandler)\n    {\n        $this->container = $container;\n        $this->appExceptionHandler = $appExceptionHandler;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function report(Exception $e)\n    {\n        $this->appExceptionHandler->report($e);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function render($request, Exception $e)\n    {\n        return $this->appExceptionHandler->render($request, $e);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function renderForConsole($output, Exception $e)\n    {\n        if ($e instanceof SymfonyConsoleExceptionInterface) {\n            $this->appExceptionHandler->renderForConsole($output, $e);\n        } else {\n            $handler = $this->container->make(ProviderContract::class)\n                ->register()\n                ->getHandler()\n                ->setOutput($output);\n\n            $handler->setInspector((new Inspector($e)));\n\n            $handler->handle();\n        }\n    }\n\n    /**\n     * Determine if the exception should be reported.\n     *\n     * @param  \\Exception  $e\n     * @return bool\n     */\n    public function shouldReport(Exception $e)\n    {\n        return $this->appExceptionHandler->shouldReport($e);\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Adapters/Laravel/Inspector.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Adapters\\Laravel;\n\nuse Whoops\\Exception\\Inspector as BaseInspector;\n\n/**\n * This is an Collision Laravel Adapter Inspector implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass Inspector extends BaseInspector\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getTrace($e)\n    {\n        return $e->getTrace();\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Adapters/Phpunit/Listener.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Adapters\\Phpunit;\n\nuse ReflectionObject;\nuse PHPUnit\\Framework\\Test;\nuse PHPUnit\\Framework\\Warning;\nuse Whoops\\Exception\\Inspector;\nuse NunoMaduro\\Collision\\Writer;\nuse PHPUnit\\Framework\\TestSuite;\nuse Symfony\\Component\\Console\\Application;\nuse PHPUnit\\Framework\\AssertionFailedError;\nuse Symfony\\Component\\Console\\Input\\ArgvInput;\nuse Symfony\\Component\\Console\\Output\\ConsoleOutput;\nuse NunoMaduro\\Collision\\Contracts\\Writer as WriterContract;\nuse NunoMaduro\\Collision\\Contracts\\Adapters\\Phpunit\\Listener as ListenerContract;\n\nif (class_exists(\\PHPUnit\\Runner\\Version::class) && intval(substr(\\PHPUnit\\Runner\\Version::id(), 0, 1)) >= 7) {\n\n    /**\n     * This is an Collision Phpunit Adapter implementation.\n     *\n     * @author Nuno Maduro <enunomaduro@gmail.com>\n     */\n    class Listener implements ListenerContract\n    {\n        /**\n         * Holds an instance of the writer.\n         *\n         * @var \\NunoMaduro\\Collision\\Contracts\\Writer\n         */\n        protected $writer;\n\n        /**\n         * Holds the exception found, if any.\n         *\n         * @var \\Throwable|null\n         */\n        protected $exceptionFound;\n\n        /**\n         * Creates a new instance of the class.\n         *\n         * @param \\NunoMaduro\\Collision\\Contracts\\Writer|null $writer\n         */\n        public function __construct(WriterContract $writer = null)\n        {\n            $this->writer = $writer ?: $this->buildWriter();\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function render(\\Throwable $t)\n        {\n            $inspector = new Inspector($t);\n\n            $this->writer->write($inspector);\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addError(Test $test, \\Throwable $t, float $time): void\n        {\n            if ($this->exceptionFound === null) {\n                $this->exceptionFound = $t;\n            }\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addWarning(Test $test, Warning $t, float $time): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addFailure(Test $test, AssertionFailedError $t, float $time): void\n        {\n            $this->writer->ignoreFilesIn(['/vendor/'])\n            ->showTrace(false);\n\n            if ($this->exceptionFound === null) {\n                $this->exceptionFound = $t;\n            }\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addIncompleteTest(Test $test, \\Throwable $t, float $time): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addRiskyTest(Test $test, \\Throwable $t, float $time): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function addSkippedTest(Test $test, \\Throwable $t, float $time): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function startTestSuite(TestSuite $suite): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function endTestSuite(TestSuite $suite): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function startTest(Test $test): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function endTest(Test $test, float $time): void\n        {\n        }\n\n        /**\n         * {@inheritdoc}\n         */\n        public function __destruct()\n        {\n            if ($this->exceptionFound !== null) {\n                $this->render($this->exceptionFound);\n            }\n        }\n\n        /**\n         * Builds an Writer.\n         *\n         * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n         */\n        protected function buildWriter(): WriterContract\n        {\n            $writer = new Writer;\n\n            $application = new Application();\n            $reflector = new ReflectionObject($application);\n            $method = $reflector->getMethod('configureIO');\n            $method->setAccessible(true);\n            $method->invoke($application, new ArgvInput, $output = new ConsoleOutput);\n\n            return $writer->setOutput($output);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/ArgumentFormatter.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision;\n\nuse NunoMaduro\\Collision\\Contracts\\ArgumentFormatter as ArgumentFormatterContract;\n\n/**\n * This is an Collision Argument Formatter implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass ArgumentFormatter implements ArgumentFormatterContract\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function format(array $arguments, bool $recursive = true): string\n    {\n        $result = [];\n\n        foreach ($arguments as $argument) {\n            switch (true) {\n                case is_string($argument):\n                    $result[] = '\"'.$argument.'\"';\n                    break;\n                case is_array($argument):\n                    $associative = array_keys($argument) !== range(0, count($argument) - 1);\n                    if ($recursive && $associative && count($argument) <= 5) {\n                        $result[] = '['.$this->format($argument, false).']';\n                    }\n                    break;\n                case is_object($argument):\n                    $class = get_class($argument);\n                    $result[] = \"Object($class)\";\n                    break;\n            }\n        }\n\n        return implode(', ', $result);\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/Adapters/Phpunit/Listener.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts\\Adapters\\Phpunit;\n\nuse PHPUnit\\Framework\\TestListener;\n\n/**\n * This is an Collision Phpunit Adapter contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface Listener extends TestListener\n{\n    /**\n     * Renders the provided error\n     * on the console.\n     *\n     * @param  \\Throwable $t\n     *\n     * @return void\n     */\n    public function render(\\Throwable $t);\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/ArgumentFormatter.php",
    "content": "<?php\n\n/*\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts;\n\n/**\n * This is an Collision Argument Formatter contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface ArgumentFormatter\n{\n    /**\n     * Formats the provided array of arguments into\n     * an understandable description.\n     *\n     * @param  array $arguments\n     * @param  bool $recursive\n     *\n     * @return string\n     */\n    public function format(array $arguments, bool $recursive = true): string;\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/Handler.php",
    "content": "<?php\n\n/*\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts;\n\nuse Whoops\\Handler\\HandlerInterface;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\n/**\n * This is an Collision Handler contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface Handler extends HandlerInterface\n{\n    /**\n     * Sets the output.\n     *\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface $output\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Handler\n     */\n    public function setOutput(OutputInterface $output): Handler;\n\n    /**\n     * Returns the writer.\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    public function getWriter(): Writer;\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/Highlighter.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts;\n\n/**\n * This is the Collision Highlighter contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface Highlighter\n{\n    /**\n     * Highlights the provided content.\n     *\n     * @param  string $content\n     * @param  int $line\n     *\n     * @return string\n     */\n    public function highlight(string $content, int $line): string;\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/Provider.php",
    "content": "<?php\n\n/*\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts;\n\n/**\n * This is an Collision Provider contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface Provider\n{\n    /**\n     * Registers the current Handler as Error Handler.\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Provider\n     */\n    public function register(): Provider;\n\n    /**\n     * Returns the handler.\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Handler\n     */\n    public function getHandler(): Handler;\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Contracts/Writer.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision\\Contracts;\n\nuse Whoops\\Exception\\Inspector;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\n\n/**\n * This is the Collision Writer contract.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\ninterface Writer\n{\n    /**\n     * Ignores traces where the file string matches one\n     * of the provided regex expressions.\n     *\n     * @param  string[] $ignore The regex expressions.\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    public function ignoreFilesIn(array $ignore): Writer;\n\n    /**\n     * Declares whether or not the Writer should show the trace.\n     *\n     * @param  bool $show\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    public function showTrace(bool $show): Writer;\n\n    /**\n     * Declares whether or not the Writer should show the editor.\n     *\n     * @param  bool $show\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    public function showEditor(bool $show): Writer;\n\n    /**\n     * Writes the details of the exception on the console.\n     *\n     * @param \\Whoops\\Exception\\Inspector $inspector\n     */\n    public function write(Inspector $inspector): void;\n\n    /**\n     * Sets the output.\n     *\n     * @param  \\Symfony\\Component\\Console\\Output\\OutputInterface $output\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    public function setOutput(OutputInterface $output): Writer;\n\n    /**\n     * Gets the output.\n     *\n     * @return \\Symfony\\Component\\Console\\Output\\OutputInterface\n     */\n    public function getOutput(): OutputInterface;\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Handler.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision;\n\nuse Whoops\\Handler\\Handler as AbstractHandler;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse NunoMaduro\\Collision\\Contracts\\Writer as WriterContract;\nuse NunoMaduro\\Collision\\Contracts\\Handler as HandlerContract;\n\n/**\n * This is an Collision Handler implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass Handler extends AbstractHandler implements HandlerContract\n{\n    /**\n     * Holds an instance of the writer.\n     *\n     * @var \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    protected $writer;\n\n    /**\n     * Creates an instance of the Handler.\n     *\n     * @param \\NunoMaduro\\Collision\\Contracts\\Writer|null $writer\n     */\n    public function __construct(WriterContract $writer = null)\n    {\n        $this->writer = $writer ?: new Writer;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function handle()\n    {\n        $this->writer->write($this->getInspector());\n\n        return static::QUIT;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setOutput(OutputInterface $output): HandlerContract\n    {\n        $this->writer->setOutput($output);\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getWriter(): WriterContract\n    {\n        return $this->writer;\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Highlighter.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision;\n\nuse JakubOnderka\\PhpConsoleColor\\ConsoleColor;\nuse JakubOnderka\\PhpConsoleHighlighter\\Highlighter as BaseHighlighter;\nuse NunoMaduro\\Collision\\Contracts\\Highlighter as HighlighterContract;\n\n/**\n * This is an Collision Highlighter implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass Highlighter extends BaseHighlighter implements HighlighterContract\n{\n    /**\n     * Holds the theme.\n     *\n     * @var array\n     */\n    protected $theme = [\n        BaseHighlighter::TOKEN_STRING => ['light_gray'],\n        BaseHighlighter::TOKEN_COMMENT => ['dark_gray', 'italic'],\n        BaseHighlighter::TOKEN_KEYWORD => ['yellow'],\n        BaseHighlighter::TOKEN_DEFAULT => ['default', 'bold'],\n        BaseHighlighter::TOKEN_HTML => ['blue', 'bold'],\n        BaseHighlighter::ACTUAL_LINE_MARK => ['bg_red', 'bold'],\n        BaseHighlighter::LINE_NUMBER => ['dark_gray', 'italic'],\n    ];\n\n    /**\n     * Creates an instance of the Highlighter.\n     *\n     * @param \\JakubOnderka\\PhpConsoleColor\\ConsoleColor|null $color\n     */\n    public function __construct(ConsoleColor $color = null)\n    {\n        parent::__construct($color = $color ?: new ConsoleColor);\n\n        foreach ($this->theme as $name => $styles) {\n            $color->addTheme((string) $name, $styles);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function highlight(string $content, int $line): string\n    {\n        return rtrim($this->getCodeSnippet($content, $line, 4, 4));\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Provider.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision;\n\nuse Whoops\\Run;\nuse Whoops\\RunInterface;\nuse NunoMaduro\\Collision\\Contracts\\Handler as HandlerContract;\nuse NunoMaduro\\Collision\\Contracts\\Provider as ProviderContract;\n\n/**\n * This is an Collision Provider implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass Provider implements ProviderContract\n{\n    /**\n     * Holds an instance of the Run.\n     *\n     * @var \\Whoops\\RunInterface\n     */\n    protected $run;\n\n    /**\n     * Holds an instance of the handler.\n     *\n     * @var \\NunoMaduro\\Collision\\Contracts\\Handler\n     */\n    protected $handler;\n\n    /**\n     * Creates a new instance of the Provider.\n     *\n     * @param \\Whoops\\RunInterface|null $run\n     * @param \\NunoMaduro\\Collision\\Contracts\\Handler|null $handler\n     */\n    public function __construct(RunInterface $run = null, HandlerContract $handler = null)\n    {\n        $this->run = $run ?: new Run;\n        $this->handler = $handler ?: new Handler;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function register(): ProviderContract\n    {\n        $this->run->pushHandler($this->handler)\n            ->register();\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getHandler(): HandlerContract\n    {\n        return $this->handler;\n    }\n}\n"
  },
  {
    "path": "vendor/nunomaduro/collision/src/Writer.php",
    "content": "<?php\n\n/**\n * This file is part of Collision.\n *\n * (c) Nuno Maduro <enunomaduro@gmail.com>\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n */\n\nnamespace NunoMaduro\\Collision;\n\nuse Whoops\\Exception\\Frame;\nuse Whoops\\Exception\\Inspector;\nuse Symfony\\Component\\Console\\Output\\ConsoleOutput;\nuse Symfony\\Component\\Console\\Output\\OutputInterface;\nuse NunoMaduro\\Collision\\Contracts\\Writer as WriterContract;\nuse NunoMaduro\\Collision\\Contracts\\Highlighter as HighlighterContract;\nuse NunoMaduro\\Collision\\Contracts\\ArgumentFormatter as ArgumentFormatterContract;\n\n/**\n * This is an Collision Writer implementation.\n *\n * @author Nuno Maduro <enunomaduro@gmail.com>\n */\nclass Writer implements WriterContract\n{\n    /**\n     * The number of frames if no verbosity is specified.\n     */\n    const VERBOSITY_NORMAL_FRAMES = 1;\n\n    /**\n     * Holds an instance of the Output.\n     *\n     * @var \\Symfony\\Component\\Console\\Output\\OutputInterface\n     */\n    protected $output;\n\n    /**\n     * Holds an instance of the Argument Formatter.\n     *\n     * @var \\NunoMaduro\\Collision\\Contracts\\ArgumentFormatter\n     */\n    protected $argumentFormatter;\n\n    /**\n     * Holds an instance of the Highlighter.\n     *\n     * @var \\NunoMaduro\\Collision\\Contracts\\Highlighter\n     */\n    protected $highlighter;\n\n    /**\n     * Ignores traces where the file string matches one\n     * of the provided regex expressions.\n     *\n     * @var string[]\n     */\n    protected $ignore = [];\n\n    /**\n     * Declares whether or not the trace should appear.\n     *\n     * @var bool\n     */\n    protected $showTrace = true;\n\n    /**\n     * Declares whether or not the editor should appear.\n     *\n     * @var bool\n     */\n    protected $showEditor = true;\n\n    /**\n     * Creates an instance of the writer.\n     *\n     * @param \\Symfony\\Component\\Console\\Output\\OutputInterface|null $output\n     * @param \\NunoMaduro\\Collision\\Contracts\\ArgumentFormatter|null $argumentFormatter\n     * @param \\NunoMaduro\\Collision\\Contracts\\Highlighter|null $highlighter\n     */\n    public function __construct(\n        OutputInterface $output = null,\n        ArgumentFormatterContract $argumentFormatter = null,\n        HighlighterContract $highlighter = null\n    ) {\n        $this->output = $output ?: new ConsoleOutput;\n        $this->argumentFormatter = $argumentFormatter ?: new ArgumentFormatter;\n        $this->highlighter = $highlighter ?: new Highlighter;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write(Inspector $inspector): void\n    {\n        $this->renderTitle($inspector);\n\n        $frames = $this->getFrames($inspector);\n\n        $editorFrame = array_shift($frames);\n        if ($this->showEditor && $editorFrame !== null) {\n            $this->renderEditor($editorFrame);\n        }\n\n        if ($this->showTrace && ! empty($frames)) {\n            $this->renderTrace($frames);\n        } else {\n            $this->output->writeln('');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function ignoreFilesIn(array $ignore): WriterContract\n    {\n        $this->ignore = $ignore;\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function showTrace(bool $show): WriterContract\n    {\n        $this->showTrace = $show;\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function showEditor(bool $show): WriterContract\n    {\n        $this->showEditor = $show;\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setOutput(OutputInterface $output): WriterContract\n    {\n        $this->output = $output;\n\n        return $this;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getOutput(): OutputInterface\n    {\n        return $this->output;\n    }\n\n    /**\n     * Returns pertinent frames.\n     *\n     * @param  \\Whoops\\Exception\\Inspector $inspector\n     *\n     * @return array\n     */\n    protected function getFrames(Inspector $inspector): array\n    {\n        return $inspector->getFrames()\n            ->filter(\n                function ($frame) {\n                    foreach ($this->ignore as $ignore) {\n                        if (preg_match($ignore, $frame->getFile())) {\n                            return false;\n                        }\n                    }\n\n                    return true;\n                }\n            )\n            ->getArray();\n    }\n\n    /**\n     * Renders the title of the exception.\n     *\n     * @param \\Whoops\\Exception\\Inspector $inspector\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    protected function renderTitle(Inspector $inspector): WriterContract\n    {\n        $exception = $inspector->getException();\n        $message = $exception->getMessage();\n        $class = $inspector->getExceptionName();\n\n        $this->render(\"<bg=red;options=bold> $class </> : <comment>$message</>\");\n\n        return $this;\n    }\n\n    /**\n     * Renders the editor containing the code that was the\n     * origin of the exception.\n     *\n     * @param \\Whoops\\Exception\\Frame $frame\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    protected function renderEditor(Frame $frame): WriterContract\n    {\n        $this->render('at <fg=green>'.$frame->getFile().'</>'.':<fg=green>'.$frame->getLine().'</>');\n\n        $content = $this->highlighter->highlight((string) $frame->getFileContents(), (int) $frame->getLine());\n\n        $this->output->writeln($content);\n\n        return $this;\n    }\n\n    /**\n     * Renders the trace of the exception.\n     *\n     * @param  array $frames\n     *\n     * @return \\NunoMaduro\\Collision\\Contracts\\Writer\n     */\n    protected function renderTrace(array $frames): WriterContract\n    {\n        $this->render('<comment>Exception trace:</comment>');\n        foreach ($frames as $i => $frame) {\n            if ($i > static::VERBOSITY_NORMAL_FRAMES && $this->output->getVerbosity(\n                ) < OutputInterface::VERBOSITY_VERBOSE) {\n                $this->render('<info>Please use the argument <fg=red>-v</> to see more details.</info>');\n                break;\n            }\n\n            $file = $frame->getFile();\n            $line = $frame->getLine();\n            $class = empty($frame->getClass()) ? '' : $frame->getClass().'::';\n            $function = $frame->getFunction();\n            $args = $this->argumentFormatter->format($frame->getArgs());\n            $pos = str_pad((int) $i + 1, 4, ' ');\n\n            $this->render(\"<comment><fg=cyan>$pos</>$class$function($args)</comment>\");\n            $this->render(\"    <fg=green>$file</>:<fg=green>$line</>\", false);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Renders an message into the console.\n     *\n     * @param  string $message\n     * @param  bool $break\n     *\n     * @return $this\n     */\n    protected function render(string $message, bool $break = true): WriterContract\n    {\n        if ($break) {\n            $this->output->writeln('');\n        }\n\n        $this->output->writeln(\"  $message\");\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/opis/closure/CHANGELOG.md",
    "content": "CHANGELOG\n---------\n\n### v3.3.0, 2019.05.31\n\n- Fixed a bug that prevented signed closures to properly work when the serialized string\ncontains invalid UTF-8 chars. Starting with this version `json_encode` is no longer used\nwhen signing a closure. Backward compatibility is maintained and all closures that were \npreviously signed using the old method will continue to work.\n\n### v3.2.0, 2019.05.05\n\n- Since an unsigned closure can be unserialized when no security provider is set, \nthere is no reason to treat differently a signed closure in the same situation.\nTherefore, the `Opis\\Closure\\SecurityException` exception  is no longer thrown when \nunserializing a signed closure, if no security provider is set.\n\n### v3.1.6, 2019.02.22\n\n- Fixed a bug that occurred when trying to set properties of classes that were not defined in user-land.\nThose properties are now ignored.\n\n### v3.1.5, 2019.01.14\n\n- Improved parser\n\n### v3.1.4, 2019.01.14\n\n- Added support for static methods that are named using PHP keywords or magic constants.\nEx: `A::new()`, `A::use()`, `A::if()`, `A::function()`, `A::__DIR__()`, etc.\n- Used `@internal` to mark classes & methods that are for internal use only and\nbackward compatibility might be broken at some point.\n\n### v3.1.3, 2019.01.07\n\n- Fixed a bug that prevented traits to be correctly resolved when used by an\nanonymous class\n- Fixed a bug that occurred when `$this` keyword was used inside an anonymous class\n\n### v3.1.2, 2018.12.16\n\n* Fixed a bug regarding comma trail in group-use statements. See [issue 23](https://github.com/opis/closure/issues/23)\n\n### v3.1.1, 2018.10.02\n\n* Fixed a bug where `parent` keyword was treated like a class-name and scope was not added to the\nserialized closure\n* Fixed a bug where return type was not properly handled for nested closures\n* Support for anonymous classes was improved\n\n### v3.1.0, 2018.09.20\n\n* Added `transformUseVariables` and `resolveUseVariables` to\n`Opis\\Closure\\SerializableClosure` class.\n* Added `removeSecurityProvider` static method to \n`Opis\\Closure\\SerializableClosure` class. \n* Fixed some security related issues where a user was able to unserialize an unsigned\nclosure, even when a security provider was in use.\n\n### v3.0.12, 2018.02.23\n\n* Bugfix. See [issue 20](https://github.com/opis/closure/issues/20)\n\n### v3.0.11, 2018.01.22\n\n* Bugfix. See [issue 18](https://github.com/opis/closure/issues/18)\n\n### v3.0.10, 2018.01.04\n\n* Improved support for PHP 7.1 & 7.2\n\n### v3.0.9, 2018.01.04\n\n* Fixed a bug where the return type was not properly resolved. \nSee [issue 17](https://github.com/opis/closure/issues/17)\n* Added more tests\n\n### v3.0.8, 2017.12.18\n\n* Fixed a bug. See [issue 16](https://github.com/opis/closure/issues/16)\n\n### v3.0.7, 2017.10.31\n\n* Bugfix: static properties are ignored now, since they are not serializable\n\n### v3.0.6, 2017.10.06\n\n* Fixed a bug introduced by accident in 3.0.5\n\n### v3.0.5, 2017.09.18\n\n* Fixed a bug related to nested references\n\n### v3.0.4, 2017.09.18\n\n* \\[*internal*\\] Refactored `SerializableClosure::mapPointers` method\n* \\[*internal*\\] Added a new optional argument to `SerializableClosure::unwrapClosures`\n* \\[*internal*\\] Removed `SerializableClosure::getClosurePointer` method\n* Fixed various bugs\n\n### v3.0.3, 2017.09.06\n\n* Fixed a bug related to nested object references \n* \\[*internal*\\] `Opis\\Closure\\ClosureScope` now extends `SplObjectStorage`\n* \\[*internal*\\] The `storage` property was removed from `Opis\\Closure\\ClosureScope`\n* \\[*internal*\\] The `instances` and `objects` properties were removed from `Opis\\Closure\\ClosureContext`\n\n### v3.0.2, 2017.08.28\n\n* Fixed a bug where `$this` object was not handled properly inside the \n`SerializableClosre::serialize` method. \n\n### v3.0.1, 2017.04.13\n\n* Fixed a bug in 'ignore_next' state\n\n### v3.0.0, 2017.04.07\n\n* Dropped PHP 5.3 support\n* Moved source files from `lib` to `src` folder\n* Removed second parameter from `Opis\\Closure\\SerializableClosure::from` method and from constructor\n* Removed `Opis\\Closure\\{SecurityProviderInterface, DefaultSecurityProvider, SecureClosure}` classes\n* Refactored how signed closures were handled\n* Added `wrapClosures` and `unwrapClosures` static methods to `Opis\\Closure\\SerializableClosure` class\n* Added `Opis\\Colosure\\serialize` and `Opis\\Closure\\unserialize` functions\n* Improved serialization. You can now serialize arbitrary objects and the library will automatically wrap all closures\n\n### v2.4.0, 2016.12.16\n\n* The parser was refactored and improved\n* Refactored `Opis\\Closure\\SerializableClosure::__invoke` method\n* `Opis\\Closure\\{ISecurityProvider, SecurityProvider}` were added\n* `Opis\\Closure\\{SecurityProviderInterface, DefaultSecurityProvider, SecureClosure}` were deprecated\nand they will be removed in the next major version\n* `setSecretKey` and `addSecurityProvider` static methods were added to `Opis\\Closure\\SerializableClosure`\n\n### v2.3.2, 2016.12.15\n\n* Fixed a bug that prevented namespace resolution to be done properly\n\n### v2.3.1, 2016.12.13\n\n* Hotfix. See [PR](https://github.com/opis/closure/pull/7)\n\n### v2.3.0, 2016.11.17\n\n* Added `isBindingRequired` and `isScopeRequired` to the `Opis\\Closure\\ReflectionClosure` class\n* Automatically detects when the scope and/or the bound object of a closure needs to be serialized.\n\n### v2.2.1, 2016.08.20\n\n* Fixed a bug in `Opis\\Closure\\ReflectionClosure::fetchItems`\n\n### v2.2.0, 2016.07.26\n\n* Fixed CS\n* `Opis\\Closure\\ClosureContext`, `Opis\\Closure\\ClosureScope`, `Opis\\Closure\\SelfReference`\n and `Opis\\Closure\\SecurityException` classes were moved into separate files\n* Added support for PHP7 syntax\n* Fixed some bugs in `Opis\\Closure\\ReflectionClosure` class\n* Improved closure parser\n* Added an analyzer for SuperClosure library\n\n### v2.1.0, 2015.09.30\n\n* Added support for the missing `__METHOD__`, `__FUNCTION__` and `__TRAIT__` magic constants\n* Added some security related classes and interfaces: `Opis\\Closure\\SecurityProviderInterface`,\n`Opis\\Closure\\DefaultSecurityProvider`, `Opis\\Closure\\SecureClosure`, `Opis\\Closure\\SecurityException`.\n* Fiexed a bug in `Opis\\Closure\\ReflectionClosure::getClasses` method\n* Other minor bugfixes\n* Added support for static closures\n* Added public `isStatic` method to `Opis\\Closure\\ReflectionClosure` class\n\n\n### v2.0.1, 2015.09.23\n\n* Removed `branch-alias` property from `composer.json`\n* Bugfix. See [issue #6](https://github.com/opis/closure/issues/6)\n\n### v2.0.0, 2015.07.31\n\n* The closure parser was improved\n* Class names are now automatically resolved\n* Added support for the `#trackme` directive which allows tracking closure's residing source\n\n### v1.3.0, 2014.10.18\n\n* Added autoload file\n* Changed README file\n\n### Opis Closure 1.2.2\n\n* Started changelog\n"
  },
  {
    "path": "vendor/opis/closure/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018-2019 Zindex Software\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/opis/closure/NOTICE",
    "content": "Opis Closure\nCopyright 2018-2019 Zindex Software\n\nThis product includes software developed at\nZindex Software (http://zindex.software).\n\nThis software was originally developed by Marius Sarca and Sorin Sarca\n(Copyright 2014-2018). The copyright info was changed with the permission\nof the original authors."
  },
  {
    "path": "vendor/opis/closure/README.md",
    "content": "Opis Closure\n====================\n[![Build Status](https://travis-ci.org/opis/closure.png)](https://travis-ci.org/opis/closure)\n[![Latest Stable Version](https://poser.pugx.org/opis/closure/v/stable.png)](https://packagist.org/packages/opis/closure)\n[![Latest Unstable Version](https://poser.pugx.org/opis/closure/v/unstable.png)](https://packagist.org/packages/opis/closure)\n[![License](https://poser.pugx.org/opis/closure/license.png)](https://packagist.org/packages/opis/closure)\n\nSerializable closures\n---------------------\n**Opis Closure** is a library that aims to overcome PHP's limitations regarding closure\nserialization by providing a wrapper that will make all closures serializable. \n\n**The library's key features:**\n\n- Serialize any closure\n- Serialize arbitrary objects\n- Doesn't use `eval` for closure serialization or unserialization\n- Works with any PHP version that has support for closures\n- Supports PHP 7 syntax\n- Handles all variables referenced/imported in `use()` and automatically wraps all referenced/imported closures for\nproper serialization\n- Handles recursive closures\n- Handles magic constants like `__FILE__`, `__DIR__`, `__LINE__`, `__NAMESPACE__`, `__CLASS__`,\n`__TRAIT__`, `__METHOD__` and `__FUNCTION__`.\n- Automatically resolves all class names, function names and constant names used inside the closure\n- Track closure's residing source by using the `#trackme` directive\n- Simple and very fast parser\n- Any error or exception, that might occur when executing an unserialized closure, can be caught and treated properly\n- You can serialize/unserialize any closure unlimited times, even those previously unserialized\n(this is possible because `eval()` is not used for unserialization)\n- Handles static closures\n- Supports cryptographically signed closures\n- Provides a reflector that can give you information about the serialized closure\n- Provides an analyzer for *SuperClosure* library\n- Automatically detects when the scope and/or the bound object of a closure needs to be serialized\nin order for the closure to work after deserialization\n\n### Documentation\n\nThe full documentation for this library can be found [here][documentation].\n\n### License\n\n**Opis Closure** is licensed under the [MIT License (MIT)][license].\n\n### Requirements\n\n* PHP ^5.4 || ^7.0\n\n## Installation\n\n**Opis Closure** is available on [Packagist] and it can be installed from a \ncommand line interface by using [Composer]. \n\n```bash\ncomposer require opis/closure\n```\n\nOr you could directly reference it into your `composer.json` file as a dependency\n\n```json\n{\n    \"require\": {\n        \"opis/closure\": \"^3.3\"\n    }\n}\n```\n\n### Migrating from 2.x\n\nIf your project needs to support PHP 5.3 you can continue using the `2.x` version\nof **Opis Closure**. Otherwise, assuming you are not using one of the removed/refactored classes or features(see \n[CHANGELOG]), migrating to version `3.x` is simply a matter of updating your `composer.json` file. \n\n### Semantic versioning\n\n**Opis Closure** follows [semantic versioning][SemVer] specifications.\n\n### Arbitrary object serialization\n\nThis feature was primarily introduced in order to support serializing an object bound \nto a closure and available via `$this`. The implementation is far from being perfect \nand it's really hard to make it work flawless. I will try to improve this, but I can \nnot guarantee anything. So my advice regarding the `Opis\\Closure\\serialize|unserialize` \nfunctions is to use them with caution.\n\n### SuperClosure support\n\n**Opis Closure** is shipped with an analyzer(`Opis\\Closure\\Analyzer`) which \naims to provide *Opis Closure*'s parsing precision and speed to [SuperClosure].\n\n[documentation]: https://www.opis.io/closure \"Opis Closure\"\n[license]: http://opensource.org/licenses/MIT \"MIT License\"\n[Packagist]: https://packagist.org/packages/opis/closure \"Packagist\"\n[Composer]: https://getcomposer.org \"Composer\"\n[SuperClosure]: https://github.com/jeremeamia/super_closure \"SuperClosure\"\n[SemVer]: http://semver.org/ \"Semantic versioning\"\n[CHANGELOG]: https://github.com/opis/closure/blob/master/CHANGELOG.md \"Changelog\""
  },
  {
    "path": "vendor/opis/closure/autoload.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nrequire_once 'functions.php';\n\nspl_autoload_register(function($class){\n   \n    $class = ltrim($class, '\\\\');\n    $dir = __DIR__ . '/src';\n    $namespace = 'Opis\\Closure';\n    \n    if(strpos($class, $namespace) === 0)\n    {\n        $class = substr($class, strlen($namespace));\n        $path = '';\n        if(($pos = strripos($class, '\\\\')) !== FALSE)\n        {\n            $path = str_replace('\\\\', '/', substr($class, 0, $pos)) . '/';\n            $class = substr($class, $pos + 1);\n        }\n        $path .= str_replace('_', '/', $class) . '.php';\n        $dir .= '/' . $path;\n        \n        if(file_exists($dir))\n        {\n            include $dir;\n            return true;\n        }\n        \n        return false;\n    }\n    \n    return false;\n\n});\n"
  },
  {
    "path": "vendor/opis/closure/composer.json",
    "content": "{\n    \"name\": \"opis/closure\",\n    \"description\": \"A library that can be used to serialize closures (anonymous functions) and arbitrary objects.\",\n    \"keywords\": [\"closure\", \"serialization\", \"function\", \"serializable\", \"serialize\", \"anonymous functions\"],\n    \"homepage\": \"https://opis.io/closure\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Marius Sarca\",\n            \"email\": \"marius.sarca@gmail.com\"\n        },\n        {\n            \"name\": \"Sorin Sarca\",\n            \"email\": \"sarca_sorin@hotmail.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^5.4 || ^7.0\"\n    },\n    \"require-dev\": {\n        \"jeremeamia/superclosure\": \"^2.0\",\n        \"phpunit/phpunit\": \"^4.0 || ^5.0 || ^6.0 || ^7.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Opis\\\\Closure\\\\\": \"src/\"\n        },\n        \"files\": [\"functions.php\"]\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Opis\\\\Closure\\\\Test\\\\\": \"tests/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"3.3.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/opis/closure/functions.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\n/**\n * Serialize\n *\n * @param $data\n * @return string\n */\nfunction serialize($data)\n{\n    SerializableClosure::enterContext();\n    SerializableClosure::wrapClosures($data);\n    $data = \\serialize($data);\n    SerializableClosure::exitContext();\n    return $data;\n}\n\n/**\n * Unserialize\n *\n * @param $data\n * @return mixed\n */\nfunction unserialize($data)\n{\n    SerializableClosure::enterContext();\n    $data = \\unserialize($data);\n    SerializableClosure::unwrapClosures($data);\n    SerializableClosure::exitContext();\n    return $data;\n}\n"
  },
  {
    "path": "vendor/opis/closure/src/Analyzer.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\nuse Closure;\nuse SuperClosure\\Analyzer\\ClosureAnalyzer;\n\nclass Analyzer extends ClosureAnalyzer\n{\n    /**\n     * Analyzer a given closure.\n     *\n     * @param Closure $closure\n     *\n     * @return array\n     */\n    public function analyze(Closure $closure)\n    {\n        $reflection = new ReflectionClosure($closure);\n        $scope = $reflection->getClosureScopeClass();\n\n        $data = [\n            'reflection' => $reflection,\n            'code'       => $reflection->getCode(),\n            'hasThis'    => $reflection->isBindingRequired(),\n            'context'    => $reflection->getUseVariables(),\n            'hasRefs'    => false,\n            'binding'    => $reflection->getClosureThis(),\n            'scope'      => $scope ? $scope->getName() : null,\n            'isStatic'   => $reflection->isStatic(),\n        ];\n\n        return $data;\n    }\n\n    /**\n     * @param array $data\n     * @return mixed\n     */\n    protected function determineCode(array &$data)\n    {\n        return null;\n    }\n\n    /**\n     * @param array $data\n     * @return mixed\n     */\n    protected function determineContext(array &$data)\n    {\n        return null;\n    }\n\n}\n"
  },
  {
    "path": "vendor/opis/closure/src/ClosureContext.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\n/**\n * Closure context class\n * @internal\n */\nclass ClosureContext\n{\n    /**\n     * @var ClosureScope Closures scope\n     */\n    public $scope;\n\n    /**\n     * @var integer\n     */\n    public $locks;\n\n    /**\n     * Constructor\n     */\n    public function __construct()\n    {\n        $this->scope = new ClosureScope();\n        $this->locks = 0;\n    }\n}"
  },
  {
    "path": "vendor/opis/closure/src/ClosureScope.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\n/**\n * Closure scope class\n * @internal\n */\nclass ClosureScope extends \\SplObjectStorage\n{\n    /**\n     * @var integer Number of serializations in current scope\n     */\n    public $serializations = 0;\n\n    /**\n     * @var integer Number of closures that have to be serialized\n     */\n    public $toserialize = 0;\n}"
  },
  {
    "path": "vendor/opis/closure/src/ClosureStream.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\n/**\n * @internal\n */\nclass ClosureStream\n{\n    const STREAM_PROTO = 'closure';\n\n    protected static $isRegistered = false;\n\n    protected $content;\n\n    protected $length;\n\n    protected $pointer = 0;\n\n    function stream_open($path, $mode, $options, &$opened_path)\n    {\n        $this->content = \"<?php\\nreturn \" . substr($path, strlen(static::STREAM_PROTO . '://')) . \";\";\n        $this->length = strlen($this->content);\n        return true;\n    }\n\n    public function stream_read($count)\n    {\n        $value = substr($this->content, $this->pointer, $count);\n        $this->pointer += $count;\n        return $value;\n    }\n\n    public function stream_eof()\n    {\n        return $this->pointer >= $this->length;\n    }\n\n    public function stream_stat()\n    {\n        $stat = stat(__FILE__);\n        $stat[7] = $stat['size'] = $this->length;\n        return $stat;\n    }\n\n    public function url_stat($path, $flags)\n    {\n        $stat = stat(__FILE__);\n        $stat[7] = $stat['size'] = $this->length;\n        return $stat;\n    }\n\n    public function stream_seek($offset, $whence = SEEK_SET)\n    {\n        $crt = $this->pointer;\n\n        switch ($whence) {\n            case SEEK_SET:\n                $this->pointer = $offset;\n                break;\n            case SEEK_CUR:\n                $this->pointer += $offset;\n                break;\n            case SEEK_END:\n                $this->pointer = $this->length + $offset;\n                break;\n        }\n\n        if ($this->pointer < 0 || $this->pointer >= $this->length) {\n            $this->pointer = $crt;\n            return false;\n        }\n\n        return true;\n    }\n\n    public function stream_tell()\n    {\n        return $this->pointer;\n    }\n\n    public static function register()\n    {\n        if (!static::$isRegistered) {\n            static::$isRegistered = stream_wrapper_register(static::STREAM_PROTO, __CLASS__);\n        }\n    }\n\n}\n"
  },
  {
    "path": "vendor/opis/closure/src/ISecurityProvider.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\ninterface ISecurityProvider\n{\n    /**\n     * Sign serialized closure\n     * @param string $closure\n     * @return array\n     */\n    public function sign($closure);\n\n    /**\n     * Verify signature\n     * @param array $data\n     * @return bool\n     */\n    public function verify(array $data);\n}"
  },
  {
    "path": "vendor/opis/closure/src/ReflectionClosure.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\nuse Closure;\nuse ReflectionFunction;\n\nclass ReflectionClosure extends ReflectionFunction\n{\n    protected $code;\n    protected $tokens;\n    protected $hashedName;\n    protected $useVariables;\n    protected $isStaticClosure;\n    protected $isScopeRequired;\n    protected $isBindingRequired;\n\n    protected static $files = array();\n    protected static $classes = array();\n    protected static $functions = array();\n    protected static $constants = array();\n    protected static $structures = array();\n\n\n    /**\n     * ReflectionClosure constructor.\n     * @param Closure $closure\n     * @param string|null $code\n     * @throws \\ReflectionException\n     */\n    public function __construct(Closure $closure, $code = null)\n    {\n        $this->code = $code;\n        parent::__construct($closure);\n    }\n\n    /**\n     * @return bool\n     */\n    public function isStatic()\n    {\n        if ($this->isStaticClosure === null) {\n            $this->isStaticClosure = strtolower(substr($this->getCode(), 0, 6)) === 'static';\n        }\n\n        return $this->isStaticClosure;\n    }\n\n    /**\n     * @return string\n     */\n    public function getCode()\n    {\n        if($this->code !== null){\n            return $this->code;\n        }\n\n        $fileName = $this->getFileName();\n        $line = $this->getStartLine() - 1;\n\n        $match = ClosureStream::STREAM_PROTO . '://';\n\n        if ($line === 1 && substr($fileName, 0, strlen($match)) === $match) {\n            return $this->code = substr($fileName, strlen($match));\n        }\n\n        $className = null;\n\n\n        if (null !== $className = $this->getClosureScopeClass()) {\n            $className = '\\\\' . trim($className->getName(), '\\\\');\n        }\n\n\n        if($php7 = PHP_MAJOR_VERSION === 7){\n            switch (PHP_MINOR_VERSION){\n                case 0:\n                    $php7_types = array('string', 'int', 'bool', 'float');\n                    break;\n                case 1:\n                    $php7_types = array('string', 'int', 'bool', 'float', 'void');\n                    break;\n                case 2:\n                default:\n                    $php7_types = array('string', 'int', 'bool', 'float', 'void', 'object');\n            }\n        }\n\n        $ns = $this->getNamespaceName();\n        $nsf = $ns == '' ? '' : ($ns[0] == '\\\\' ? $ns : '\\\\' . $ns);\n\n        $_file = var_export($fileName, true);\n        $_dir = var_export(dirname($fileName), true);\n        $_namespace = var_export($ns, true);\n        $_class = var_export(trim($className, '\\\\'), true);\n        $_function = $ns . ($ns == '' ? '' : '\\\\') . '{closure}';\n        $_method = ($className == '' ? '' : trim($className, '\\\\') . '::') . $_function;\n        $_function = var_export($_function, true);\n        $_method = var_export($_method, true);\n        $_trait = null;\n\n        $tokens = $this->getTokens();\n        $state = $lastState = 'start';\n        $inside_anonymous = false;\n        $anonymous_mark = 0;\n        $open = 0;\n        $code = '';\n        $id_start = $id_start_ci = $id_name = $context = '';\n        $classes = $functions = $constants = null;\n        $use = array();\n        $lineAdd = 0;\n        $isUsingScope = false;\n        $isUsingThisObject = false;\n\n        for($i = 0, $l = count($tokens); $i < $l; $i++) {\n            $token = $tokens[$i];\n            switch ($state) {\n                case 'start':\n                    if ($token[0] === T_FUNCTION || $token[0] === T_STATIC) {\n                        $code .= $token[1];\n                        $state = $token[0] === T_FUNCTION ? 'function' : 'static';\n                    }\n                    break;\n                case 'static':\n                    if ($token[0] === T_WHITESPACE || $token[0] === T_COMMENT || $token[0] === T_FUNCTION) {\n                        $code .= $token[1];\n                        if ($token[0] === T_FUNCTION) {\n                            $state = 'function';\n                        }\n                    } else {\n                        $code = '';\n                        $state = 'start';\n                    }\n                    break;\n                case 'function':\n                    switch ($token[0]){\n                        case T_STRING:\n                            $code = '';\n                            $state = 'named_function';\n                            break;\n                        case '(':\n                            $code .= '(';\n                            $state = 'closure_args';\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                    }\n                    break;\n                case 'named_function':\n                    if($token[0] === T_FUNCTION || $token[0] === T_STATIC){\n                        $code = $token[1];\n                        $state = $token[0] === T_FUNCTION ? 'function' : 'static';\n                    }\n                    break;\n                case 'closure_args':\n                    switch ($token[0]){\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                            $id_start = $token[1];\n                            $id_start_ci = strtolower($id_start);\n                            $id_name = '';\n                            $context = 'args';\n                            $state = 'id_name';\n                            $lastState = 'closure_args';\n                            break;\n                        case T_USE:\n                            $code .= $token[1];\n                            $state = 'use';\n                            break;\n                        case '=':\n                            $code .= $token;\n                            $lastState = 'closure_args';\n                            $state = 'ignore_next';\n                            break;\n                        case ':':\n                            $code .= ':';\n                            $state = 'return';\n                            break;\n                        case '{':\n                            $code .= '{';\n                            $state = 'closure';\n                            $open++;\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                    }\n                    break;\n                case 'use':\n                    switch ($token[0]){\n                        case T_VARIABLE:\n                            $use[] = substr($token[1], 1);\n                            $code .= $token[1];\n                            break;\n                        case '{':\n                            $code .= '{';\n                            $state = 'closure';\n                            $open++;\n                            break;\n                        case ':':\n                            $code .= ':';\n                            $state = 'return';\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                            break;\n                    }\n                    break;\n                case 'return':\n                    switch ($token[0]){\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            $code .= $token[1];\n                            break;\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                            $id_start = $token[1];\n                            $id_start_ci = strtolower($id_start);\n                            $id_name = '';\n                            $context = 'return_type';\n                            $state = 'id_name';\n                            $lastState = 'return';\n                            break 2;\n                        case '{':\n                            $code .= '{';\n                            $state = 'closure';\n                            $open++;\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                            break;\n                    }\n                    break;\n                case 'closure':\n                    switch ($token[0]){\n                        case T_CURLY_OPEN:\n                        case T_DOLLAR_OPEN_CURLY_BRACES:\n                        case T_STRING_VARNAME:\n                        case '{':\n                            $code .= '{';\n                            $open++;\n                            break;\n                        case '}':\n                            $code .= '}';\n                            if(--$open === 0){\n                                break 3;\n                            } elseif ($inside_anonymous) {\n                                $inside_anonymous = !($open === $anonymous_mark);\n                            }\n                            break;\n                        case T_LINE:\n                            $code .= $token[2] - $line + $lineAdd;\n                            break;\n                        case T_FILE:\n                            $code .= $_file;\n                            break;\n                        case T_DIR:\n                            $code .= $_dir;\n                            break;\n                        case T_NS_C:\n                            $code .= $_namespace;\n                            break;\n                        case T_CLASS_C:\n                            $code .= $_class;\n                            break;\n                        case T_FUNC_C:\n                            $code .= $_function;\n                            break;\n                        case T_METHOD_C:\n                            $code .= $_method;\n                            break;\n                        case T_COMMENT:\n                            if (substr($token[1], 0, 8) === '#trackme') {\n                                $timestamp = time();\n                                $code .= '/**' . PHP_EOL;\n                                $code .= '* Date      : ' . date(DATE_W3C, $timestamp) . PHP_EOL;\n                                $code .= '* Timestamp : ' . $timestamp . PHP_EOL;\n                                $code .= '* Line      : ' . ($line + 1) . PHP_EOL;\n                                $code .= '* File      : ' . $_file . PHP_EOL . '*/' . PHP_EOL;\n                                $lineAdd += 5;\n                            } else {\n                                $code .= $token[1];\n                            }\n                            break;\n                        case T_VARIABLE:\n                            if($token[1] == '$this' && !$inside_anonymous){\n                                $isUsingThisObject = true;\n                            }\n                            $code .= $token[1];\n                            break;\n                        case T_STATIC:\n                            $isUsingScope = true;\n                            $code .= $token[1];\n                            break;\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                            $id_start = $token[1];\n                            $id_start_ci = strtolower($id_start);\n                            $id_name = '';\n                            $context = 'root';\n                            $state = 'id_name';\n                            $lastState = 'closure';\n                            break 2;\n                        case T_NEW:\n                            $code .= $token[1];\n                            $context = 'new';\n                            $state = 'id_start';\n                            $lastState = 'closure';\n                            break 2;\n                        case T_USE:\n                            $code .= $token[1];\n                            $context = 'use';\n                            $state = 'id_start';\n                            $lastState = 'closure';\n                            break;\n                        case T_INSTANCEOF:\n                            $code .= $token[1];\n                            $context = 'instanceof';\n                            $state = 'id_start';\n                            $lastState = 'closure';\n                            break;\n                        case T_OBJECT_OPERATOR:\n                        case T_DOUBLE_COLON:\n                            $code .= $token[1];\n                            $lastState = 'closure';\n                            $state = 'ignore_next';\n                            break;\n                        case T_FUNCTION:\n                            $code .= $token[1];\n                            $state = 'closure_args';\n                            break;\n                        case T_TRAIT_C:\n                            if ($_trait === null) {\n                                $startLine = $this->getStartLine();\n                                $endLine = $this->getEndLine();\n                                $structures = $this->getStructures();\n\n                                $_trait = '';\n\n                                foreach ($structures as &$struct) {\n                                    if ($struct['type'] === 'trait' &&\n                                        $struct['start'] <= $startLine &&\n                                        $struct['end'] >= $endLine\n                                    ) {\n                                        $_trait = ($ns == '' ? '' : $ns . '\\\\') . $struct['name'];\n                                        break;\n                                    }\n                                }\n\n                                $_trait = var_export($_trait, true);\n                            }\n\n                            $code .= $_trait;\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                    }\n                    break;\n                case 'ignore_next':\n                    switch ($token[0]){\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            $code .= $token[1];\n                            break;\n                        case T_CLASS:\n                        case T_NEW:\n                        case T_STATIC:\n                        case T_VARIABLE:\n                        case T_STRING:\n                        case T_CLASS_C:\n                        case T_FILE:\n                        case T_DIR:\n                        case T_METHOD_C:\n                        case T_FUNC_C:\n                        case T_FUNCTION:\n                        case T_INSTANCEOF:\n                        case T_LINE:\n                        case T_NS_C:\n                        case T_TRAIT_C:\n                        case T_USE:\n                            $code .= $token[1];\n                            $state = $lastState;\n                            break;\n                        default:\n                            $state = $lastState;\n                            $i--;\n                    }\n                    break;\n                case 'id_start':\n                    switch ($token[0]){\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            $code .= $token[1];\n                            break;\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                        case T_STATIC:\n                            $id_start = $token[1];\n                            $id_start_ci = strtolower($id_start);\n                            $id_name = '';\n                            $state = 'id_name';\n                            break 2;\n                        case T_VARIABLE:\n                            $code .= $token[1];\n                            $state = $lastState;\n                            break;\n                        case T_CLASS:\n                            $code .= $token[1];\n                            $state = 'anonymous';\n                            break;\n                        default:\n                            $i--;//reprocess last\n                            $state = 'id_name';\n                    }\n                    break;\n                case 'id_name':\n                    switch ($token[0]){\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                            $id_name .= $token[1];\n                            break;\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            $id_name .= $token[1];\n                            break;\n                        case '(':\n                            if($context === 'new' || false !== strpos($id_name, '\\\\')){\n                                if($id_start !== '\\\\'){\n                                    if ($classes === null) {\n                                        $classes = $this->getClasses();\n                                    }\n                                    if (isset($classes[$id_start_ci])) {\n                                        $id_start = $classes[$id_start_ci];\n                                    }\n                                    if($id_start[0] !== '\\\\'){\n                                        $id_start = $nsf . '\\\\' . $id_start;\n                                    }\n                                }\n                            } else {\n                                if($id_start !== '\\\\'){\n                                    if($functions === null){\n                                        $functions = $this->getFunctions();\n                                    }\n                                    if(isset($functions[$id_start_ci])){\n                                        $id_start = $functions[$id_start_ci];\n                                    }\n                                }\n                            }\n                            $code .= $id_start . $id_name . '(';\n                            $state = $lastState;\n                            break;\n                        case T_VARIABLE:\n                        case T_DOUBLE_COLON:\n                            if($id_start !== '\\\\') {\n                                if($id_start_ci === 'self' || $id_start_ci === 'static' || $id_start_ci === 'parent'){\n                                    $isUsingScope = true;\n                                } elseif (!($php7 && in_array($id_start_ci, $php7_types))){\n                                    if ($classes === null) {\n                                        $classes = $this->getClasses();\n                                    }\n                                    if (isset($classes[$id_start_ci])) {\n                                        $id_start = $classes[$id_start_ci];\n                                    }\n                                    if($id_start[0] !== '\\\\'){\n                                        $id_start = $nsf . '\\\\' . $id_start;\n                                    }\n                                }\n                            }\n                            $code .= $id_start . $id_name . $token[1];\n                            $state = $token[0] === T_DOUBLE_COLON ? 'ignore_next' : $lastState;\n                            break;\n                        default:\n                            if($id_start !== '\\\\'){\n                                if($context === 'use' ||\n                                    $context === 'instanceof' ||\n                                    $context === 'args' ||\n                                    $context === 'return_type' ||\n                                    $context === 'extends'\n                                ){\n                                    if($id_start_ci === 'self' || $id_start_ci === 'static' || $id_start_ci === 'parent'){\n                                        $isUsingScope = true;\n                                    } elseif (!($php7 && in_array($id_start_ci, $php7_types))){\n                                        if($classes === null){\n                                            $classes = $this->getClasses();\n                                        }\n                                        if(isset($classes[$id_start_ci])){\n                                            $id_start = $classes[$id_start_ci];\n                                        }\n                                        if($id_start[0] !== '\\\\'){\n                                            $id_start = $nsf . '\\\\' . $id_start;\n                                        }\n                                    }\n                                } else {\n                                    if($constants === null){\n                                        $constants = $this->getConstants();\n                                    }\n                                    if(isset($constants[$id_start])){\n                                        $id_start = $constants[$id_start];\n                                    }\n                                }\n                            }\n                            $code .= $id_start . $id_name;\n                            $state = $lastState;\n                            $i--;//reprocess last token\n                    }\n                    break;\n                case 'anonymous':\n                    switch ($token[0]) {\n                        case T_NS_SEPARATOR:\n                        case T_STRING:\n                            $id_start = $token[1];\n                            $id_start_ci = strtolower($id_start);\n                            $id_name = '';\n                            $state = 'id_name';\n                            $context = 'extends';\n                            $lastState = 'anonymous';\n                        break;\n                        case '{':\n                            $state = 'closure';\n                            if (!$inside_anonymous) {\n                                $inside_anonymous = true;\n                                $anonymous_mark = $open;\n                            }\n                            $i--;\n                            break;\n                        default:\n                            $code .= is_array($token) ? $token[1] : $token;\n                    }\n                    break;\n            }\n        }\n\n        $this->isBindingRequired = $isUsingThisObject;\n        $this->isScopeRequired = $isUsingScope;\n        $this->code = $code;\n        $this->useVariables = empty($use) ? $use : array_intersect_key($this->getStaticVariables(), array_flip($use));\n\n        return $this->code;\n    }\n\n    /**\n     * @return array\n     */\n    public function getUseVariables()\n    {\n        if($this->useVariables !== null){\n            return $this->useVariables;\n        }\n\n        $tokens = $this->getTokens();\n        $use = array();\n        $state = 'start';\n\n        foreach ($tokens as &$token) {\n            $is_array = is_array($token);\n\n            switch ($state) {\n                case 'start':\n                    if ($is_array && $token[0] === T_USE) {\n                        $state = 'use';\n                    }\n                    break;\n                case 'use':\n                    if ($is_array) {\n                        if ($token[0] === T_VARIABLE) {\n                            $use[] = substr($token[1], 1);\n                        }\n                    } elseif ($token == ')') {\n                        break 2;\n                    }\n                    break;\n            }\n        }\n\n        $this->useVariables = empty($use) ? $use : array_intersect_key($this->getStaticVariables(), array_flip($use));\n\n        return $this->useVariables;\n    }\n\n    /**\n     * return bool\n     */\n    public function isBindingRequired()\n    {\n        if($this->isBindingRequired === null){\n            $this->getCode();\n        }\n\n        return $this->isBindingRequired;\n    }\n\n    /**\n     * return bool\n     */\n    public function isScopeRequired()\n    {\n        if($this->isScopeRequired === null){\n            $this->getCode();\n        }\n\n        return $this->isScopeRequired;\n    }\n\n    /**\n     * @return string\n     */\n    protected function getHashedFileName()\n    {\n        if ($this->hashedName === null) {\n            $this->hashedName = md5($this->getFileName());\n        }\n\n        return $this->hashedName;\n    }\n\n    /**\n     * @return array\n     */\n    protected function getFileTokens()\n    {\n        $key = $this->getHashedFileName();\n\n        if (!isset(static::$files[$key])) {\n            static::$files[$key] = token_get_all(file_get_contents($this->getFileName()));\n        }\n\n        return static::$files[$key];\n    }\n\n    /**\n     * @return array\n     */\n    protected function getTokens()\n    {\n        if ($this->tokens === null) {\n            $tokens = $this->getFileTokens();\n            $startLine = $this->getStartLine();\n            $endLine = $this->getEndLine();\n            $results = array();\n            $start = false;\n\n            foreach ($tokens as &$token) {\n                if (!is_array($token)) {\n                    if ($start) {\n                        $results[] = $token;\n                    }\n\n                    continue;\n                }\n\n                $line = $token[2];\n\n                if ($line <= $endLine) {\n                    if ($line >= $startLine) {\n                        $start = true;\n                        $results[] = $token;\n                    }\n\n                    continue;\n                }\n\n                break;\n            }\n\n            $this->tokens = $results;\n        }\n\n        return $this->tokens;\n    }\n\n    /**\n     * @return array\n     */\n    protected function getClasses()\n    {\n        $key = $this->getHashedFileName();\n\n        if (!isset(static::$classes[$key])) {\n            $this->fetchItems();\n        }\n\n        return static::$classes[$key];\n    }\n\n    /**\n     * @return array\n     */\n    protected function getFunctions()\n    {\n        $key = $this->getHashedFileName();\n\n        if (!isset(static::$functions[$key])) {\n            $this->fetchItems();\n        }\n\n        return static::$functions[$key];\n    }\n\n    /**\n     * @return array\n     */\n    protected function getConstants()\n    {\n        $key = $this->getHashedFileName();\n\n        if (!isset(static::$constants[$key])) {\n            $this->fetchItems();\n        }\n\n        return static::$constants[$key];\n    }\n\n    /**\n     * @return array\n     */\n    protected function getStructures()\n    {\n        $key = $this->getHashedFileName();\n\n        if (!isset(static::$structures[$key])) {\n            $this->fetchItems();\n        }\n\n        return static::$structures[$key];\n    }\n\n    protected function fetchItems()\n    {\n        $key = $this->getHashedFileName();\n\n        $classes = array();\n        $functions = array();\n        $constants = array();\n        $structures = array();\n        $tokens = $this->getFileTokens();\n\n        $open = 0;\n        $state = 'start';\n        $lastState = '';\n        $prefix = '';\n        $name = '';\n        $alias = '';\n        $isFunc = $isConst = false;\n\n        $startLine = $endLine = 0;\n        $structType = $structName = '';\n        $structIgnore = false;\n\n        foreach ($tokens as $token) {\n\n            switch ($state) {\n                case 'start':\n                    switch ($token[0]) {\n                        case T_CLASS:\n                        case T_INTERFACE:\n                        case T_TRAIT:\n                            $state = 'before_structure';\n                            $startLine = $token[2];\n                            $structType = $token[0] == T_CLASS\n                                                    ? 'class'\n                                                    : ($token[0] == T_INTERFACE ? 'interface' : 'trait');\n                            break;\n                        case T_USE:\n                            $state = 'use';\n                            $prefix = $name = $alias = '';\n                            $isFunc = $isConst = false;\n                            break;\n                        case T_FUNCTION:\n                            $state = 'structure';\n                            $structIgnore = true;\n                            break;\n                        case T_NEW:\n                            $state = 'new';\n                            break;\n                        case T_OBJECT_OPERATOR:\n                        case T_DOUBLE_COLON:\n                            $state = 'invoke';\n                            break;\n                    }\n                    break;\n                case 'use':\n                    switch ($token[0]) {\n                        case T_FUNCTION:\n                            $isFunc = true;\n                            break;\n                        case T_CONST:\n                            $isConst = true;\n                            break;\n                        case T_NS_SEPARATOR:\n                            $name .= $token[1];\n                            break;\n                        case T_STRING:\n                            $name .= $token[1];\n                            $alias = $token[1];\n                            break;\n                        case T_AS:\n                            $lastState = 'use';\n                            $state = 'alias';\n                            break;\n                        case '{':\n                            $prefix = $name;\n                            $name = $alias = '';\n                            $state = 'use-group';\n                            break;\n                        case ',':\n                        case ';':\n                            if ($name === '' || $name[0] !== '\\\\') {\n                                $name = '\\\\' . $name;\n                            }\n\n                            if ($alias !== '') {\n                                if ($isFunc) {\n                                    $functions[strtolower($alias)] = $name;\n                                } elseif ($isConst) {\n                                    $constants[$alias] = $name;\n                                } else {\n                                    $classes[strtolower($alias)] = $name;\n                                }\n                            }\n                            $name = $alias = '';\n                            $state = $token === ';' ? 'start' : 'use';\n                            break;\n                    }\n                    break;\n                case 'use-group':\n                    switch ($token[0]) {\n                        case T_NS_SEPARATOR:\n                            $name .= $token[1];\n                            break;\n                        case T_STRING:\n                            $name .= $token[1];\n                            $alias = $token[1];\n                            break;\n                        case T_AS:\n                            $lastState = 'use-group';\n                            $state = 'alias';\n                            break;\n                        case ',':\n                        case '}':\n\n                            if ($prefix === '' || $prefix[0] !== '\\\\') {\n                                $prefix = '\\\\' . $prefix;\n                            }\n\n                            if ($alias !== '') {\n                                if ($isFunc) {\n                                    $functions[strtolower($alias)] = $prefix . $name;\n                                } elseif ($isConst) {\n                                    $constants[$alias] = $prefix . $name;\n                                } else {\n                                    $classes[strtolower($alias)] = $prefix . $name;\n                                }\n                            }\n                            $name = $alias = '';\n                            $state = $token === '}' ? 'use' : 'use-group';\n                            break;\n                    }\n                    break;\n                case 'alias':\n                    if ($token[0] === T_STRING) {\n                        $alias = $token[1];\n                        $state = $lastState;\n                    }\n                    break;\n                case 'new':\n                    switch ($token[0]) {\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            break 2;\n                        case T_CLASS:\n                            $state = 'structure';\n                            $structIgnore = true;\n                            break;\n                        default:\n                            $state = 'start';\n                    }\n                    break;\n                case 'invoke':\n                    switch ($token[0]) {\n                        case T_WHITESPACE:\n                        case T_COMMENT:\n                        case T_DOC_COMMENT:\n                            break 2;\n                        default:\n                            $state = 'start';\n                    }\n                    break;\n                case 'before_structure':\n                    if ($token[0] == T_STRING) {\n                        $structName = $token[1];\n                        $state = 'structure';\n                    }\n                    break;\n                case 'structure':\n                    switch ($token[0]) {\n                        case '{':\n                        case T_CURLY_OPEN:\n                        case T_DOLLAR_OPEN_CURLY_BRACES:\n                        case T_STRING_VARNAME:\n                            $open++;\n                            break;\n                        case '}':\n                            if (--$open == 0) {\n                                if(!$structIgnore){\n                                    $structures[] = array(\n                                        'type' => $structType,\n                                        'name' => $structName,\n                                        'start' => $startLine,\n                                        'end' => $endLine,\n                                    );\n                                }\n                                $structIgnore = false;\n                                $state = 'start';\n                            }\n                            break;\n                        default:\n                            if (is_array($token)) {\n                                $endLine = $token[2];\n                            }\n                    }\n                    break;\n            }\n        }\n\n        static::$classes[$key] = $classes;\n        static::$functions[$key] = $functions;\n        static::$constants[$key] = $constants;\n        static::$structures[$key] = $structures;\n    }\n}\n"
  },
  {
    "path": "vendor/opis/closure/src/SecurityException.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\nuse Exception;\n\n/**\n * Security exception class\n */\nclass SecurityException extends Exception\n{\n\n}"
  },
  {
    "path": "vendor/opis/closure/src/SecurityProvider.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\nclass SecurityProvider implements ISecurityProvider\n{\n    /** @var  string */\n    protected $secret;\n\n    /**\n     * SecurityProvider constructor.\n     * @param string $secret\n     */\n    public function __construct($secret)\n    {\n        $this->secret = $secret;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function sign($closure)\n    {\n        return array(\n            'closure' => $closure,\n            'hash' => base64_encode(hash_hmac('sha256', $closure, $this->secret, true)),\n        );\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function verify(array $data)\n    {\n        return base64_encode(hash_hmac('sha256', $data['closure'], $this->secret, true)) === $data['hash'];\n    }\n}"
  },
  {
    "path": "vendor/opis/closure/src/SelfReference.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\n\n/**\n * Helper class used to indicate a reference to an object\n * @internal\n */\nclass SelfReference\n{\n    /**\n     * @var string An unique hash representing the object\n     */\n    public $hash;\n\n    /**\n     * Constructor\n     *\n     * @param string $hash\n     */\n    public function __construct($hash)\n    {\n        $this->hash = $hash;\n    }\n}"
  },
  {
    "path": "vendor/opis/closure/src/SerializableClosure.php",
    "content": "<?php\n/* ===========================================================================\n * Copyright (c) 2018-2019 Zindex Software\n *\n * Licensed under the MIT License\n * =========================================================================== */\n\nnamespace Opis\\Closure;\n\nuse Closure;\nuse Serializable;\nuse SplObjectStorage;\nuse ReflectionObject;\n\n/**\n * Provides a wrapper for serialization of closures\n */\nclass SerializableClosure implements Serializable\n{\n    /**\n     * @var Closure Wrapped closure\n     *\n     * @see \\Opis\\Closure\\SerializableClosure::getClosure()\n     */\n    protected $closure;\n\n    /**\n     * @var ReflectionClosure A reflection instance for closure\n     *\n     * @see \\Opis\\Closure\\SerializableClosure::getReflector()\n     */\n    protected $reflector;\n\n    /**\n     * @var mixed Used at deserialization to hold variables\n     *\n     * @see \\Opis\\Closure\\SerializableClosure::unserialize()\n     * @see \\Opis\\Closure\\SerializableClosure::getReflector()\n     */\n    protected $code;\n\n    /**\n     * @var string Closure's ID\n     */\n    protected $reference;\n\n    /**\n     * @var string Closure scope\n     */\n    protected $scope;\n\n    /**\n     * @var ClosureContext Context of closure, used in serialization\n     */\n    protected static $context;\n\n    /**\n     * @var ISecurityProvider|null\n     */\n    protected static $securityProvider;\n\n    /** Array recursive constant*/\n    const ARRAY_RECURSIVE_KEY = '¯\\_(ツ)_/¯';\n\n    /**\n     * Constructor\n     *\n     * @param   Closure $closure Closure you want to serialize\n     */\n    public function __construct(Closure $closure)\n    {\n        $this->closure = $closure;\n        if (static::$context !== null) {\n            $this->scope = static::$context->scope;\n            $this->scope->toserialize++;\n        }\n    }\n\n    /**\n     * Get the Closure object\n     *\n     * @return  Closure The wrapped closure\n     */\n    public function getClosure()\n    {\n        return $this->closure;\n    }\n\n    /**\n     * Get the reflector for closure\n     *\n     * @return  ReflectionClosure\n     */\n    public function getReflector()\n    {\n        if ($this->reflector === null) {\n            $this->reflector = new ReflectionClosure($this->closure, $this->code);\n            $this->code = null;\n        }\n\n        return $this->reflector;\n    }\n\n    /**\n     * Implementation of magic method __invoke()\n     */\n    public function __invoke()\n    {\n        return call_user_func_array($this->closure, func_get_args());\n    }\n\n    /**\n     * Implementation of Serializable::serialize()\n     *\n     * @return  string  The serialized closure\n     */\n    public function serialize()\n    {\n        if ($this->scope === null) {\n            $this->scope = new ClosureScope();\n            $this->scope->toserialize++;\n        }\n\n        $this->scope->serializations++;\n\n        $scope = $object = null;\n        $reflector = $this->getReflector();\n\n        if($reflector->isBindingRequired()){\n            $object = $reflector->getClosureThis();\n            static::wrapClosures($object, $this->scope);\n            if($scope = $reflector->getClosureScopeClass()){\n                $scope = $scope->name;\n            }\n        } elseif($reflector->isScopeRequired()) {\n            if($scope = $reflector->getClosureScopeClass()){\n                $scope = $scope->name;\n            }\n        }\n\n        $this->reference = spl_object_hash($this->closure);\n\n        $this->scope[$this->closure] = $this;\n\n        $use = $this->transformUseVariables($reflector->getUseVariables());\n        $code = $reflector->getCode();\n\n        $this->mapByReference($use);\n\n        $ret = \\serialize(array(\n            'use' => $use,\n            'function' => $code,\n            'scope' => $scope,\n            'this' => $object,\n            'self' => $this->reference,\n        ));\n\n        if (static::$securityProvider !== null) {\n            $data = static::$securityProvider->sign($ret);\n            $ret =  '@' . $data['hash'] . '.' . $data['closure'];\n        }\n\n        if (!--$this->scope->serializations && !--$this->scope->toserialize) {\n            $this->scope = null;\n        }\n\n        return $ret;\n    }\n\n    /**\n     * Transform the use variables before serialization.\n     *\n     * @param  array  $data The Closure's use variables\n     * @return array\n     */\n    protected function transformUseVariables($data)\n    {\n        return $data;\n    }\n\n    /**\n     * Implementation of Serializable::unserialize()\n     *\n     * @param   string $data Serialized data\n     * @throws SecurityException\n     */\n    public function unserialize($data)\n    {\n        ClosureStream::register();\n\n        if (static::$securityProvider !== null) {\n            if ($data[0] !== '@') {\n                throw new SecurityException(\"The serialized closure is not signed. \".\n                    \"Make sure you use a security provider for both serialization and unserialization.\");\n            }\n\n            if ($data[1] !== '{') {\n                $separator = strpos($data, '.');\n                if ($separator === false) {\n                    throw new SecurityException('Invalid signed closure');\n                }\n                $hash = substr($data, 1, $separator - 1);\n                $closure = substr($data, $separator + 1);\n\n                $data = ['hash' => $hash, 'closure' => $closure];\n\n                unset($hash, $closure);\n            } else {\n                $data = json_decode(substr($data, 1), true);\n            }\n\n            if (!is_array($data) || !static::$securityProvider->verify($data)) {\n                throw new SecurityException(\"Your serialized closure might have been modified and it's unsafe to be unserialized. \" .\n                    \"Make sure you use the same security provider, with the same settings, \" .\n                    \"both for serialization and unserialization.\");\n            }\n\n            $data = $data['closure'];\n        } elseif ($data[0] === '@') {\n            if ($data[1] !== '{') {\n                $separator = strpos($data, '.');\n                if ($separator === false) {\n                    throw new SecurityException('Invalid signed closure');\n                }\n                $hash = substr($data, 1, $separator - 1);\n                $closure = substr($data, $separator + 1);\n\n                $data = ['hash' => $hash, 'closure' => $closure];\n\n                unset($hash, $closure);\n            } else {\n                $data = json_decode(substr($data, 1), true);\n            }\n\n            if (!is_array($data) || !isset($data['closure']) || !isset($data['hash'])) {\n                throw new SecurityException('Invalid signed closure');\n            }\n\n            $data = $data['closure'];\n        }\n\n        $this->code = \\unserialize($data);\n\n        // unset data\n        unset($data);\n\n        $this->code['objects'] = array();\n\n        if ($this->code['use']) {\n            $this->scope = new ClosureScope();\n            $this->code['use'] = $this->resolveUseVariables($this->code['use']);\n            $this->mapPointers($this->code['use']);\n            extract($this->code['use'], EXTR_OVERWRITE | EXTR_REFS);\n            $this->scope = null;\n        }\n\n        $this->closure = include(ClosureStream::STREAM_PROTO . '://' . $this->code['function']);\n\n        if($this->code['this'] === $this){\n            $this->code['this'] = null;\n        }\n\n        if ($this->code['scope'] !== null || $this->code['this'] !== null) {\n            $this->closure = $this->closure->bindTo($this->code['this'], $this->code['scope']);\n        }\n\n        if(!empty($this->code['objects'])){\n            foreach ($this->code['objects'] as $item){\n                $item['property']->setValue($item['instance'], $item['object']->getClosure());\n            }\n        }\n\n        $this->code = $this->code['function'];\n    }\n\n    /**\n     * Resolve the use variables after unserialization.\n     *\n     * @param  array  $data The Closure's transformed use variables\n     * @return array\n     */\n    protected function resolveUseVariables($data)\n    {\n        return $data;\n    }\n\n    /**\n     * Wraps a closure and sets the serialization context (if any)\n     *\n     * @param   Closure $closure Closure to be wrapped\n     *\n     * @return  self    The wrapped closure\n     */\n    public static function from(Closure $closure)\n    {\n        if (static::$context === null) {\n            $instance = new static($closure);\n        } elseif (isset(static::$context->scope[$closure])) {\n            $instance = static::$context->scope[$closure];\n        } else {\n            $instance = new static($closure);\n            static::$context->scope[$closure] = $instance;\n        }\n\n        return $instance;\n    }\n\n    /**\n     * Increments the context lock counter or creates a new context if none exist\n     */\n    public static function enterContext()\n    {\n        if (static::$context === null) {\n            static::$context = new ClosureContext();\n        }\n\n        static::$context->locks++;\n    }\n\n    /**\n     * Decrements the context lock counter and destroy the context when it reaches to 0\n     */\n    public static function exitContext()\n    {\n        if (static::$context !== null && !--static::$context->locks) {\n            static::$context = null;\n        }\n    }\n\n    /**\n     * @param string $secret\n     */\n    public static function setSecretKey($secret)\n    {\n        if(static::$securityProvider === null){\n            static::$securityProvider = new SecurityProvider($secret);\n        }\n    }\n\n    /**\n     * @param ISecurityProvider $securityProvider\n     */\n    public static function addSecurityProvider(ISecurityProvider $securityProvider)\n    {\n        static::$securityProvider = $securityProvider;\n    }\n\n    /**\n     * Remove security provider\n     */\n    public static function removeSecurityProvider()\n    {\n        static::$securityProvider = null;\n    }\n\n    /**\n     * @return null|ISecurityProvider\n     */\n    public static function getSecurityProvider()\n    {\n        return static::$securityProvider;\n    }\n\n    /**\n     * Wrap closures\n     *\n     * @internal\n     * @param $data\n     * @param ClosureScope|SplObjectStorage|null $storage\n     */\n    public static function wrapClosures(&$data, SplObjectStorage $storage = null)\n    {\n        static::enterContext();\n\n        if($storage === null){\n            $storage = static::$context->scope;\n        }\n\n        if($data instanceof Closure){\n            $data = static::from($data);\n        } elseif (is_array($data)){\n            if(isset($data[self::ARRAY_RECURSIVE_KEY])){\n                return;\n            }\n            $data[self::ARRAY_RECURSIVE_KEY] = true;\n            foreach ($data as $key => &$value){\n                if($key === self::ARRAY_RECURSIVE_KEY){\n                    continue;\n                }\n                static::wrapClosures($value, $storage);\n            }\n            unset($value);\n            unset($data[self::ARRAY_RECURSIVE_KEY]);\n        } elseif($data instanceof \\stdClass){\n            if(isset($storage[$data])){\n                $data = $storage[$data];\n                return;\n            }\n            $data = $storage[$data] = clone($data);\n            foreach ($data as &$value){\n                static::wrapClosures($value, $storage);\n            }\n            unset($value);\n        } elseif (is_object($data) && ! $data instanceof static){\n            if(isset($storage[$data])){\n                $data = $storage[$data];\n                return;\n            }\n            $instance = $data;\n            $reflection = new ReflectionObject($instance);\n            if(!$reflection->isUserDefined()){\n                $storage[$instance] = $data;\n                return;\n            }\n            $storage[$instance] = $data = $reflection->newInstanceWithoutConstructor();\n\n            do{\n                if(!$reflection->isUserDefined()){\n                    break;\n                }\n                foreach ($reflection->getProperties() as $property){\n                    if($property->isStatic() || !$property->getDeclaringClass()->isUserDefined()){\n                        continue;\n                    }\n                    $property->setAccessible(true);\n                    $value = $property->getValue($instance);\n                    if(is_array($value) || is_object($value)){\n                        static::wrapClosures($value, $storage);\n                    }\n                    $property->setValue($data, $value);\n                };\n            } while($reflection = $reflection->getParentClass());\n        }\n\n        static::exitContext();\n    }\n\n    /**\n     * Unwrap closures\n     *\n     * @internal\n     * @param $data\n     * @param SplObjectStorage|null $storage\n     */\n    public static function unwrapClosures(&$data, SplObjectStorage $storage = null)\n    {\n        if($storage === null){\n            $storage = static::$context->scope;\n        }\n\n        if($data instanceof static){\n            $data = $data->getClosure();\n        } elseif (is_array($data)){\n            if(isset($data[self::ARRAY_RECURSIVE_KEY])){\n                return;\n            }\n            $data[self::ARRAY_RECURSIVE_KEY] = true;\n            foreach ($data as $key => &$value){\n                if($key === self::ARRAY_RECURSIVE_KEY){\n                    continue;\n                }\n                static::unwrapClosures($value, $storage);\n            }\n            unset($data[self::ARRAY_RECURSIVE_KEY]);\n        }elseif ($data instanceof \\stdClass){\n            if(isset($storage[$data])){\n                return;\n            }\n            $storage[$data] = true;\n            foreach ($data as &$property){\n                static::unwrapClosures($property, $storage);\n            }\n        } elseif (is_object($data) && !($data instanceof Closure)){\n            if(isset($storage[$data])){\n                return;\n            }\n            $storage[$data] = true;\n            $reflection = new ReflectionObject($data);\n\n            do{\n                if(!$reflection->isUserDefined()){\n                    break;\n                }\n                foreach ($reflection->getProperties() as $property){\n                    if($property->isStatic() || !$property->getDeclaringClass()->isUserDefined()){\n                        continue;\n                    }\n                    $property->setAccessible(true);\n                    $value = $property->getValue($data);\n                    if(is_array($value) || is_object($value)){\n                        static::unwrapClosures($value, $storage);\n                        $property->setValue($data, $value);\n                    }\n                };\n            } while($reflection = $reflection->getParentClass());\n        }\n    }\n\n    /**\n     * Internal method used to map closure pointers\n     * @internal\n     * @param $data\n     */\n    protected function mapPointers(&$data)\n    {\n        $scope = $this->scope;\n\n        if ($data instanceof static) {\n            $data = &$data->closure;\n        } elseif (is_array($data)) {\n            if(isset($data[self::ARRAY_RECURSIVE_KEY])){\n                return;\n            }\n            $data[self::ARRAY_RECURSIVE_KEY] = true;\n            foreach ($data as $key => &$value){\n                if($key === self::ARRAY_RECURSIVE_KEY){\n                    continue;\n                } elseif ($value instanceof static) {\n                    $data[$key] = &$value->closure;\n                } elseif ($value instanceof SelfReference && $value->hash === $this->code['self']){\n                    $data[$key] = &$this->closure;\n                } else {\n                    $this->mapPointers($value);\n                }\n            }\n            unset($value);\n            unset($data[self::ARRAY_RECURSIVE_KEY]);\n        } elseif ($data instanceof \\stdClass) {\n            if(isset($scope[$data])){\n                return;\n            }\n            $scope[$data] = true;\n            foreach ($data as $key => &$value){\n                if ($value instanceof SelfReference && $value->hash === $this->code['self']){\n                    $data->{$key} = &$this->closure;\n                } elseif(is_array($value) || is_object($value)) {\n                    $this->mapPointers($value);\n                }\n            }\n            unset($value);\n        } elseif (is_object($data) && !($data instanceof Closure)){\n            if(isset($scope[$data])){\n                return;\n            }\n            $scope[$data] = true;\n            $reflection = new ReflectionObject($data);\n            do{\n                if(!$reflection->isUserDefined()){\n                    break;\n                }\n                foreach ($reflection->getProperties() as $property){\n                    if($property->isStatic() || !$property->getDeclaringClass()->isUserDefined()){\n                        continue;\n                    }\n                    $property->setAccessible(true);\n                    $item = $property->getValue($data);\n                    if ($item instanceof SerializableClosure || ($item instanceof SelfReference && $item->hash === $this->code['self'])) {\n                        $this->code['objects'][] = array(\n                            'instance' => $data,\n                            'property' => $property,\n                            'object' => $item instanceof SelfReference ? $this : $item,\n                        );\n                    } elseif (is_array($item) || is_object($item)) {\n                        $this->mapPointers($item);\n                        $property->setValue($data, $item);\n                    }\n                }\n            } while($reflection = $reflection->getParentClass());\n        }\n    }\n\n    /**\n     * Internal method used to map closures by reference\n     *\n     * @internal\n     * @param   mixed &$data\n     */\n    protected function mapByReference(&$data)\n    {\n        if ($data instanceof Closure) {\n            if($data === $this->closure){\n                $data = new SelfReference($this->reference);\n                return;\n            }\n\n            if (isset($this->scope[$data])) {\n                $data = $this->scope[$data];\n                return;\n            }\n\n            $instance = new static($data);\n\n            if (static::$context !== null) {\n                static::$context->scope->toserialize--;\n            } else {\n                $instance->scope = $this->scope;\n            }\n\n            $data = $this->scope[$data] = $instance;\n        } elseif (is_array($data)) {\n            if(isset($data[self::ARRAY_RECURSIVE_KEY])){\n                return;\n            }\n            $data[self::ARRAY_RECURSIVE_KEY] = true;\n            foreach ($data as $key => &$value){\n                if($key === self::ARRAY_RECURSIVE_KEY){\n                    continue;\n                }\n                $this->mapByReference($value);\n            }\n            unset($value);\n            unset($data[self::ARRAY_RECURSIVE_KEY]);\n        } elseif ($data instanceof \\stdClass) {\n            if(isset($this->scope[$data])){\n                $data = $this->scope[$data];\n                return;\n            }\n            $instance = $data;\n            $this->scope[$instance] = $data = clone($data);\n\n            foreach ($data as &$value){\n                $this->mapByReference($value);\n            }\n            unset($value);\n        } elseif (is_object($data) && !$data instanceof SerializableClosure){\n            if(isset($this->scope[$data])){\n                $data = $this->scope[$data];\n                return;\n            }\n\n            $instance = $data;\n            $reflection = new ReflectionObject($data);\n            if(!$reflection->isUserDefined()){\n                $this->scope[$instance] = $data;\n                return;\n            }\n            $this->scope[$instance] = $data = $reflection->newInstanceWithoutConstructor();\n\n            do{\n                if(!$reflection->isUserDefined()){\n                    break;\n                }\n                foreach ($reflection->getProperties() as $property){\n                    if($property->isStatic() || !$property->getDeclaringClass()->isUserDefined()){\n                        continue;\n                    }\n                    $property->setAccessible(true);\n                    $value = $property->getValue($instance);\n                    if(is_array($value) || is_object($value)){\n                        $this->mapByReference($value);\n                    }\n                    $property->setValue($data, $value);\n                }\n            } while($reflection = $reflection->getParentClass());\n        }\n    }\n\n}\n"
  },
  {
    "path": "vendor/paragonie/random_compat/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 Paragon Initiative Enterprises\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/paragonie/random_compat/build-phar.sh",
    "content": "#!/usr/bin/env bash\n\nbasedir=$( dirname $( readlink -f ${BASH_SOURCE[0]} ) )\n\nphp -dphar.readonly=0 \"$basedir/other/build_phar.php\" $*"
  },
  {
    "path": "vendor/paragonie/random_compat/composer.json",
    "content": "{\n  \"name\":         \"paragonie/random_compat\",\n  \"description\":  \"PHP 5.x polyfill for random_bytes() and random_int() from PHP 7\",\n  \"keywords\": [\n    \"csprng\",\n    \"random\",\n    \"polyfill\",\n    \"pseudorandom\"\n  ],\n  \"license\":      \"MIT\",\n  \"type\":         \"library\",\n  \"authors\": [\n    {\n      \"name\":     \"Paragon Initiative Enterprises\",\n      \"email\":    \"security@paragonie.com\",\n      \"homepage\": \"https://paragonie.com\"\n    }\n  ],\n  \"support\": {\n    \"issues\":     \"https://github.com/paragonie/random_compat/issues\",\n    \"email\":      \"info@paragonie.com\",\n    \"source\":     \"https://github.com/paragonie/random_compat\"\n  },\n  \"require\": {\n    \"php\": \"^7\"\n  },\n  \"require-dev\": {\n    \"vimeo/psalm\": \"^1\",\n    \"phpunit/phpunit\": \"4.*|5.*\"\n  },\n  \"suggest\": {\n    \"ext-libsodium\": \"Provides a modern crypto API that can be used to generate random bytes.\"\n  }\n}\n"
  },
  {
    "path": "vendor/paragonie/random_compat/dist/random_compat.phar.pubkey",
    "content": "-----BEGIN PUBLIC KEY-----\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEEd+wCqJDrx5B4OldM0dQE0ZMX+lx1ZWm\npui0SUqD4G29L3NGsz9UhJ/0HjBdbnkhIK5xviT0X5vtjacF6ajgcCArbTB+ds+p\n+h7Q084NuSuIpNb6YPfoUFgC/CL9kAoc\n-----END PUBLIC KEY-----\n"
  },
  {
    "path": "vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc",
    "content": "-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v2.0.22 (MingW32)\n\niQEcBAABAgAGBQJWtW1hAAoJEGuXocKCZATaJf0H+wbZGgskK1dcRTsuVJl9IWip\nQwGw/qIKI280SD6/ckoUMxKDCJiFuPR14zmqnS36k7N5UNPnpdTJTS8T11jttSpg\n1LCmgpbEIpgaTah+cELDqFCav99fS+bEiAL5lWDAHBTE/XPjGVCqeehyPYref4IW\nNDBIEsvnHPHPLsn6X5jq4+Yj5oUixgxaMPiR+bcO4Sh+RzOVB6i2D0upWfRXBFXA\nNNnsg9/zjvoC7ZW73y9uSH+dPJTt/Vgfeiv52/v41XliyzbUyLalf02GNPY+9goV\nJHG1ulEEBJOCiUD9cE1PUIJwHA/HqyhHIvV350YoEFiHl8iSwm7SiZu5kPjaq74=\n=B6+8\n-----END PGP SIGNATURE-----\n"
  },
  {
    "path": "vendor/paragonie/random_compat/lib/random.php",
    "content": "<?php\n/**\n * Random_* Compatibility Library\n * for using the new PHP 7 random_* API in PHP 5 projects\n *\n * @version 2.99.99\n * @released 2018-06-06\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 - 2018 Paragon Initiative Enterprises\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n// NOP\n"
  },
  {
    "path": "vendor/paragonie/random_compat/other/build_phar.php",
    "content": "<?php\n$dist = dirname(__DIR__).'/dist';\nif (!is_dir($dist)) {\n    mkdir($dist, 0755);\n}\nif (file_exists($dist.'/random_compat.phar')) {\n    unlink($dist.'/random_compat.phar');\n}\n$phar = new Phar(\n    $dist.'/random_compat.phar',\n    FilesystemIterator::CURRENT_AS_FILEINFO | \\FilesystemIterator::KEY_AS_FILENAME,\n    'random_compat.phar'\n);\nrename(\n    dirname(__DIR__).'/lib/random.php', \n    dirname(__DIR__).'/lib/index.php'\n);\n$phar->buildFromDirectory(dirname(__DIR__).'/lib');\nrename(\n    dirname(__DIR__).'/lib/index.php', \n    dirname(__DIR__).'/lib/random.php'\n);\n\n/**\n * If we pass an (optional) path to a private key as a second argument, we will\n * sign the Phar with OpenSSL.\n * \n * If you leave this out, it will produce an unsigned .phar!\n */\nif ($argc > 1) {\n    if (!@is_readable($argv[1])) {\n        echo 'Could not read the private key file:', $argv[1], \"\\n\";\n        exit(255);\n    }\n    $pkeyFile = file_get_contents($argv[1]);\n    \n    $private = openssl_get_privatekey($pkeyFile);\n    if ($private !== false) {\n        $pkey = '';\n        openssl_pkey_export($private, $pkey);\n        $phar->setSignatureAlgorithm(Phar::OPENSSL, $pkey);\n        \n        /**\n         * Save the corresponding public key to the file\n         */\n        if (!@is_readable($dist.'/random_compat.phar.pubkey')) {\n            $details = openssl_pkey_get_details($private);\n            file_put_contents(\n                $dist.'/random_compat.phar.pubkey',\n                $details['key']\n            );\n        }\n    } else {\n        echo 'An error occurred reading the private key from OpenSSL.', \"\\n\";\n        exit(255);\n    }\n}\n"
  },
  {
    "path": "vendor/paragonie/random_compat/psalm-autoload.php",
    "content": "<?php\n\nrequire_once 'lib/byte_safe_strings.php';\nrequire_once 'lib/cast_to_int.php';\nrequire_once 'lib/error_polyfill.php';\nrequire_once 'other/ide_stubs/libsodium.php';\nrequire_once 'lib/random.php';\n\n$int = random_int(0, 65536);\n"
  },
  {
    "path": "vendor/paragonie/random_compat/psalm.xml",
    "content": "<?xml version=\"1.0\"?>\n<psalm\n    autoloader=\"psalm-autoload.php\"\n    stopOnFirstError=\"false\"\n    useDocblockTypes=\"true\"\n>\n    <projectFiles>\n        <directory name=\"lib\" />\n    </projectFiles>\n    <issueHandlers>\n        <RedundantConditionGivenDocblockType errorLevel=\"info\" />\n        <UnresolvableInclude errorLevel=\"info\" />\n        <DuplicateClass errorLevel=\"info\" />\n        <InvalidOperand errorLevel=\"info\" />\n        <UndefinedConstant errorLevel=\"info\" />\n        <MissingReturnType errorLevel=\"info\" />\n        <InvalidReturnType errorLevel=\"info\" />\n    </issueHandlers>\n</psalm>\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/.gitignore",
    "content": ".DS_Store\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/.travis.yml",
    "content": "language: php\nphp:\n  - 5.6\n  - 7.2\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/CHANGELOG.md",
    "content": "**2019-07-16 v2.0.7**  \n添加宽松模式支持    \n优化代码\n\n**2019-06-03 v2.0.6**  \n添加额外Mime-Type自定义配置    \n添加解析和生成资源保存地址方法  \n添加文件完整性校验  \n更换可能被弃用的ajax同步方式    \n优化请求参数验证方式   \n\n**2019-04-10 v2.0.5**  \n添加自定义路由支持  \n添加反996许可证  \n自定义资源储存路径填充位置  \n修正spark-md5文件未引入时报错问题  \n修正php5.6兼容问题[#48](https://github.com/peinhu/AetherUpload-Laravel/issues/48)\n\n**2019-03-28 v2.0.4**  \n加强错误处理  \n改善redis操作返回值 \n\n**2019-03-27 v2.0.3**  \n添加删除资源文件的辅助方法  \n添加删除秒传记录的辅助方法 \n\n**2019-03-26 v2.0.2**  \nhotfix修正[#45](https://github.com/peinhu/AetherUpload-Laravel/issues/45)  \n\n**2019-03-23 v2.0.1**  \n修正[#33](https://github.com/peinhu/AetherUpload-Laravel/issues/33)  \n修正上传分块中间件命名问题\n\n**2019-03-22 v2.0.0**  \n添加分布式部署支持  \n添加Mime-Type检查      \n添加头文件redis储存驱动  \n添加跨域中间件  \n添加秒传开关配置项  \n添加自定义黑名单配置项  \n代码重构优化\n\n**2017-12-14 v1.0.7**  \n支持Laravel 5.5 包自动发现特性  \n添加多语言支持（中、英），根据客户端语言自动判断  \n\n**2017-09-11 v1.0.6**  \n添加多控件调用支持  \n简化命名空间\n\n**2017-08-03 v1.0.5**  \n添加上传完成前事件  \n添加上传完成后事件\n\n**2017-07-31 v1.0.4**  \n添加自动创建分组目录的artisan命令  \n修正当predis不存在时会报错的情况  \n\n**2017-07-18 v1.0.3**  \n添加文件秒传支持  \n添加方便的artisan命令  \n\n**2017-05-08 v1.0.2**  \n添加分组配置支持  \n添加子目录支持  \n\n**2017-04-27 v1.0.1**  \n修正[局部刷新导致的上传无响应问题](https://github.com/peinhu/AetherUpload-Laravel/issues/6)  \n后端代码结构大幅优化  \n后端代码格式统一规范化  \n前端代码改进  \n一些其它改进  \n\n**2016-07-13 v1.0.0正式版**  \n添加完整说明，修正一些小问题。  \n\n**2016-06-24 v1.0.0测试版**  \n初次提交\n\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n                            NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    {description}\n    Copyright (C) {year}  {fullname}\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  {signature of Ty Coon}, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/LICENSE_996",
    "content": "Copyright (c) 2019-present peinhu\n\nAnti 996 License Version 1.0 (Draft)\n\nPermission is hereby granted to any individual or legal entity\nobtaining a copy of this licensed work (including the source code,\ndocumentation and/or related items, hereinafter collectively referred\nto as the \"licensed work\"), free of charge, to deal with the licensed\nwork for any purpose, including without limitation, the rights to use,\nreproduce, modify, prepare derivative works of, distribute, publish\nand sublicense the licensed work, subject to the following conditions:\n\n1. The individual or the legal entity must conspicuously display,\nwithout modification, this License and the notice on each redistributed\nor derivative copy of the Licensed Work.\n\n2. The individual or the legal entity must strictly comply with all\napplicable laws, regulations, rules and standards of the jurisdiction\nrelating to labor and employment where the individual is physically\nlocated or where the individual was born or naturalized; or where the\nlegal entity is registered or is operating (whichever is stricter). In\ncase that the jurisdiction has no such laws, regulations, rules and\nstandards or its laws, regulations, rules and standards are\nunenforceable, the individual or the legal entity are required to\ncomply with Core International Labor Standards.\n\n3. The individual or the legal entity shall not induce or force its\nemployee(s), whether full-time or part-time, or its independent\ncontractor(s), in any methods, to agree in oral or written form, to\ndirectly or indirectly restrict, weaken or relinquish his or her\nrights or remedies under such laws, regulations, rules and standards\nrelating to labor and employment as mentioned above, no matter whether\nsuch written or oral agreement are enforceable under the laws of the\nsaid jurisdiction, nor shall such individual or the legal entity\nlimit, in any methods, the rights of its employee(s) or independent\ncontractor(s) from reporting or complaining to the copyright holder or\nrelevant authorities monitoring the compliance of the license about\nits violation(s) of the said license.\n\nTHE LICENSED WORK IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM,\nDAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN ANY WAY CONNECTION WITH THE\nLICENSED WORK OR THE USE OR OTHER DEALINGS IN THE LICENSED WORK."
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/README.md",
    "content": "# AetherUpload-Laravel  \n[![996.icu](https://img.shields.io/badge/link-996.icu-red.svg)](https://996.icu)\n[![Build Status](https://travis-ci.org/peinhu/AetherUpload-Laravel.svg?branch=master)](https://travis-ci.org/peinhu/AetherUpload-Laravel)\n[![Latest Stable Version](https://poser.pugx.org/peinhu/aetherupload-laravel/v/stable)](https://packagist.org/packages/peinhu/aetherupload-laravel)\n[![Total Downloads](https://poser.pugx.org/peinhu/aetherupload-laravel/downloads)](https://packagist.org/packages/peinhu/aetherupload-laravel)\n[![Latest Unstable Version](https://poser.pugx.org/peinhu/aetherupload-laravel/v/unstable)](https://packagist.org/packages/peinhu/aetherupload-laravel)\n[![License](https://poser.pugx.org/peinhu/aetherupload-laravel/license)](https://github.com/peinhu/AetherUpload-Laravel/blob/master/LICENSE)\n[![LICENSE](https://img.shields.io/badge/license-Anti%20996-blue.svg)](https://github.com/peinhu/AetherUpload-Laravel/blob/master/LICENSE_996)\n    \n提供**超大文件**上传的Laravel扩展包，支持**分组配置**、**断线续传**、**秒传**、**分布式部署**等功能，简单易用，满足多数人的主流需求。**无感知化**的设计理念，可实现由扩展自动接管上传和访问请求，开发者专注于业务，**无需关心**上传流程，**无需编写**适配代码，几乎**开箱即用**，节省大量开发时间。基于Laravel 5开发，支持5.1+版本。永久免费不接受赞助！欢迎提出问题和建议！\n\n我们知道，在以前，文件上传采用的是直接传整个文件的方式，这种方式对付一些小文件是没有问题的。而当需要上传大文件时，此种方式不仅操作繁琐，需要修改web服务器和后端语言的配置，而且会大量占用服务器的内存，导致服务器内存吃紧，严重的甚至传输超时或文件过大无法上传。很显然，普通的文件上传方式已无法满足现在越来越高的要求。  \n  \n随着技术的发展，如今我们可以利用HTML5的分块上传技术来轻松解决这个困扰，通过将大文件分割成小块逐个上传再拼合，来降低服务器内存的占用，突破服务器及后端语言配置中的上传大小限制，可上传任意大小的文件，同时也简化了操作，提供了直观的进度显示。 \n\n![示例页面](http://wx2.sinaimg.cn/mw690/69e23056gy1fho6ymepjlg20go0aknar.gif) \n\n# 功能特性\n- [x] 百分比进度条  \n- [x] 文件类型限制  \n- [x] 文件大小限制  \n- [x] 多语言  \n- [x] 分组配置  \n- [x] 自定义中间件   \n- [x] 自定义路由   \n- [x] 上传完成事件   \n- [x] 同步上传 *①*  \n- [x] 断线续传 *②*  \n- [x] 文件秒传 *③* \n- [x] 分布式部署 *④*  \n\n*①：同步上传相比异步上传，在上传带宽足够大的情况下速度稍慢，但同步可在上传同时进行文件的拼合，而异步因文件块上传完成的先后顺序不确定，需要在所有文件块都完成时才能拼合，将会导致异步上传在接近完成时需等待较长时间。同步上传每次只有一个文件块在上传，在单位时间内占用服务器的内存较少，相比异步方式可支持更多人同时上传。*  \n\n*②：断线续传和断点续传不同，断线续传是指遇到断网或无线网络不稳定时，在不关闭页面的情况下，上传组件会定时自动重试，一旦网络恢复，文件会从未上传成功的那个文件块开始继续上传。断线续传在刷新页面或关闭后重开是无法续传的，之前上传的部分已成为无效文件。*  \n\n*③：文件秒传需服务端Redis和客户端浏览器支持(FileReader、File.slice())，两者缺一则秒传功能无法生效。默认关闭，需在配置文件中开启。* \n\n*④：分布式部署需要在应用服务器与储存服务器进行跨域配置，通过填写相关配置项可实现自动跨域，并共享cookie和session。*  \n\n# 用法\n**安装**  \n\n0 在终端内切换到你的laravel项目根目录，执行`composer require peinhu/aetherupload-laravel ~2.0`  \n\n1 （Laravel 5.5+请跳过）在`config/app.php`的`providers`数组中添加一行`AetherUpload\\AetherUploadServiceProvider::class,`  \n  \n2 执行`php artisan aetherupload:publish`来发布一些文件和目录    \n  \n3 在浏览器访问`http://域名/aetherupload`可到达示例页面  \n\n*提示：更改相关配置选项请编辑`config/aetherupload.php`。*  \n\n**基本用法**  \n  \n文件上传：参考示例文件注释的部分，在需要上传大文件的页面引入相应文件和代码。可使用自定义中间件来对文件上传进行额外过滤，还可使用上传完成事件对上传的文件进一步处理。  \n\n分组配置：在配置文件的groups下新增分组，运行`php artisan aetherupload:groups`自动创建对应目录。  \n\n自定义中间件：参考laravel文档中间件部分，创建你的中间件并在`Kernel.php`中注册，将你注册的中间件名称填入配置文件对应部分，如`['middleware1','middleware2']`。  \n\n上传完成事件：分为上传完成前和上传完成后事件，参考laravel文档事件系统部分，在`EventServiceProvider`中注册你的事件和监听器，运行`php artisan event:generate`生成事件和监听器，将你注册的事件完整类名填入配置文件对应部分，如'App\\Events\\OrderShipped'。\n\n**添加秒传功能（需Redis及浏览器支持）**\n\n安装Redis并启动服务端。安装predis包`composer require predis/predis`。确保上传页面引入了spark-md5.min.js文件。\n\n*提示：在Redis中维护了一份与实际资源文件对应的秒传清单，实际资源文件的增删造成的变化均需要同步到秒传清单中，否则会产生脏数据，扩展包已包含新增部分，当删除资源文件时，使用者需手动调用对应方法删除秒传清单中的记录。* \n```php\n\\AetherUpload\\Util::deleteResource($savedPath); //删除对应的资源文件\n\\AetherUpload\\Util::deleteRedisSavedPath($savedPath); //删除对应的redis秒传记录\n```\n\n**分布式部署（需Redis及域名跨域支持）**\n\n分布式部署通过将应用服务器与储存服务器分离，可减少应用服务器负载，增加应用并发连接数，降低耦合，减少单点故障风险，提高访问效率，启用分布式部署后应用服务器将不处理任何上传和访问请求。  \n\n安装Redis并启动服务端。安装predis包`composer require predis/predis`。确保上传页面表单中包含`{{ storage_host_field() }}`。\n\n应用服务器配置：  \n在`config/aetherupload.php`中配置`distributed_deployment`项，将`enable`设置为`true`，`role`设置为`web`，`storage_host`设置为储存服务器的域名`http://storage.your-domain.com`。  \n在`.env`中将`APP_NAME`和`APP_KEY`配置项改为对应特定值，与储存服务器配置一致。新增配置`SESSION_DOMAIN=.your-domain.com`，用以共享cookie。修改配置`SESSION_DRIVER=redis`，用以共享session。  \n\n储存服务器配置：  \n在`config/aetherupload.php`中配置`distributed_deployment`项，将`enable`设置为`true`，`role`设置为`storage`，`middleware_cors`设置为跨域中间件AetherUploadCORS类在Kernel.php中注册的名称，`allow_origin`设置为应用服务器的域名`http://www.your-domain.com`。  \n在`.env`中将`APP_NAME`和`APP_KEY`配置项改为对应特定值，与应用服务器配置一致。新增配置`SESSION_DOMAIN=.your-domain.com`，用以共享cookie。修改配置`SESSION_DRIVER=redis`，用以共享session。  \n  \n**使用方便的artisan命令**  \n\n`php artisan aetherupload:groups` 列出所有分组并自动创建对应目录  \n`php artisan aetherupload:build` 在Redis中重建资源文件的秒传清单  \n`php artisan aetherupload:clean 2` 清除2天前的无效临时文件  \n`php artisan aetherupload:publish` vendor:publish的简化命令，覆盖发布一些目录和文件\n\n# 优化建议\n* （推荐）设置每天自动清除无效的临时文件。  \n由于上传流程存在意外终止的情况，如在传输过程中强行关闭页面或浏览器，将会导致已产生的文件部分成为无效文件，占据大量的存储空间，我们可以使用Laravel的任务调度功能来定期清除它们。  \n在Linux中运行`crontab -e`命令，确保文件中包含这行代码：  \n```php\n* * * * * php /项目根目录的绝对路径/artisan schedule:run 1>> /dev/null 2>&1  \n```  \n在`app/Console/Kernel.php`中的`schedule`方法中添加以下代码：\n```php\n  $schedule->command('aetherupload:clean 2')->daily();\n```  \n* （推荐）提高头文件读写效率。  \n通过将头文件的文件系统由本地硬盘改为Redis，提高头文件读写效率。  \n在`config/aetherupload.php`中将`header_storage_disk`项对应值改为`redis`。  \n在`config/filesystems.php`的`disks`项中添加`redis`配置：\n```php\n    'disks' => [\n        ...\n        'redis' => [\n           'driver' => 'redis',\n           'disable_asserts'=>true,\n        ],\n        ...\n    ]\n```  \n* 设置每天自动重建Redis中的秒传清单。  \n不恰当的处理和某些极端情况可能使秒传清单中出现脏数据，从而影响到秒传功能的准确性，重建秒传清单可消除脏数据，恢复与实际资源文件的同步。  \n在Linux中运行`crontab -e`命令，确保文件中包含这行代码：  \n```php\n* * * * * php /项目根目录的绝对路径/artisan schedule:run 1>> /dev/null 2>&1  \n```  \n在`app/Console/Kernel.php`中的`schedule`方法中添加以下代码：\n```php\n  $schedule->command('aetherupload:build')->daily();\n```  \n* 提高分块临时文件读写速度（仅对PHP生效）。  \n利用Linux的tmpfs文件系统，来达到将上传的分块临时文件放到内存中快速读写的目的，通过以空间换时间，提升读写效率，将会**额外占用**部分内存（约1个分块大小）。  \n将php.ini中上传临时目录`upload_tmp_dir`项的值设置为`\"/dev/shm\"`，重启fpm或apache服务。  \n\n* 提高分块临时文件读写速度（对系统临时目录生效）。  \n利用Linux的tmpfs文件系统，来达到将上传的分块临时文件放到内存中快速读写的目的，通过以空间换时间，提升读写效率，将会**额外占用**部分内存（约1个分块大小）。  \n执行以下命令：    \n`mkdir /dev/shm/tmp`  \n`chmod 1777 /dev/shm/tmp`  \n`mount --bind /dev/shm/tmp /tmp`  \n\n# 兼容性\n<table>\n  <th></th>\n  <th>IE</th>\n  <th>Edge</th>\n  <th>Firefox</th>\n  <th>Chrome</th>\n  <th>Safari</th>\n  <tr>\n  <td>上传</td>\n  <td>10+</td>\n  <td>12+</td>\n  <td>3.6+</td>\n  <td>6+</td>\n  <td>5.1+</td>\n  </tr>\n  <tr>\n  <td>秒传</td>\n  <td>10+</td>\n  <td>12+</td>\n  <td>3.6+</td>\n  <td>6+</td>\n  <td>6+</td>\n  </tr>\n</table>\n\n# 安全性\nAetherUpload在上传前使用白名单+黑名单的形式进行文件后缀名过滤，上传后再检查文件的Mime-Type类型。白名单直接限制了保存文件扩展名，黑名单默认屏蔽了常见的可执行文件扩展名，来阻止上传恶意文件，安全起见白名单一栏不应留空。  \n\n虽然做了诸多安全工作，但恶意文件上传是防不胜防的，建议正确设置上传目录权限，确保相关程序对资源文件没有执行权限。\n\n# 更新日志  \n**2019-07-16 v2.0.7**  \n添加宽松模式支持    \n优化代码 \n\n详见[CHANGELOG.md](https://github.com/peinhu/AetherUpload-Laravel/blob/master/CHANGELOG.md)  \n\n# 衍生项目  \n[laravel-admin](https://github.com/z-song/laravel-admin)表单扩展：[large-file-upload](https://github.com/laravel-admin-extensions/large-file-upload)\n\n# 许可证\n使用GPLv2许可证及Anti 996许可证, 查看[LICENCE](https://github.com/peinhu/AetherUpload-Laravel/blob/master/LICENSE)文件及[LICENSE_996](https://github.com/peinhu/AetherUpload-Laravel/blob/master/LICENSE_996)文件以获得更多信息。  \n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/assets/aetherupload.js",
    "content": "var AetherUpload = {\n\n    upload: function () {\n\n        $.ajaxSetup({\n            headers: {\n                'X-CSRF-TOKEN': $('meta[name=\"csrf-token\"]').attr('content')\n            }\n        });\n\n        this.resourceDom = this.wrapperDom.find('#aetherupload-resource'),\n\n            this.outputDom = this.wrapperDom.find('#aetherupload-output'),\n\n            this.progressBarDom = this.wrapperDom.find('#aetherupload-progressbar'),\n\n            this.resource = this.resourceDom[0].files[0],\n\n            this.resourceName = this.resource.name,\n\n            this.resourceSize = this.resource.size,\n\n            this.resourceTempBaseName = '',\n\n            this.resourceExt = '',\n\n            this.chunkSize = 0,\n\n            this.chunkCount = 0,\n\n            this.groupSubDir = '',\n\n            this.savedPath = '',\n\n            this.resourceHash = '',\n\n            this.blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice,\n\n            this.i = 0,\n\n            this.locale,\n\n            this.messages = this.getLocalizedMessages(),\n\n            this.storageHost = $('#aetherupload-storage-host').length ? $('#aetherupload-storage-host').val() : '';\n\n        if (!this.blobSlice) {\n\n            this.outputDom.text(this.messages.error_unsupported_browser);\n\n            return;\n\n        }\n\n        if (this.resourceSize === 0) {\n\n            this.outputDom.text(this.messages.error_invalid_resource_size);\n\n            return;\n\n        }\n\n        if (this.resourceName.substring(this.resourceName.lastIndexOf('.') + 1, this.resourceName.length) === '') {\n\n            this.outputDom.text(this.messages.error_invalid_resource_type);\n\n            return;\n\n        }\n\n        this.outputDom.text(this.messages.status_upload_begin);\n\n        if (!('FileReader' in window) || !('File' in window) || typeof SparkMD5 === 'undefined') {\n\n            this.preprocess(); //浏览器不支持读取本地文件，跳过计算hash\n\n        } else if (this.laxMode === true) {\n\n            this.preprocess(); //宽松模式，跳过计算hash\n\n        } else {\n\n            this.calculateHash();\n\n        }\n\n    },\n\n    calculateHash: function () { //计算hash\n\n        var _this = this,\n\n            clientChunkSize = 4000000,\n\n            chunks = Math.ceil(_this.resource.size / clientChunkSize),\n\n            currentChunk = 0,\n\n            spark = new SparkMD5.ArrayBuffer(),\n\n            fileReader = new FileReader();\n\n        fileReader.onload = function (e) {\n\n            spark.append(e.target.result);\n\n            ++currentChunk;\n\n            _this.outputDom.text(_this.messages.status_hashing + ' ' + parseInt(currentChunk / chunks * 100) + '%');\n\n            if (currentChunk < chunks) {\n\n                loadNext();\n\n            } else {\n\n                _this.resourceHash = spark.end();\n\n                _this.preprocess();\n\n            }\n        };\n\n        fileReader.onerror = function () {\n\n            _this.preprocess();\n\n        };\n\n        function loadNext() {\n\n            var start = currentChunk * clientChunkSize,\n\n                end = start + clientChunkSize >= _this.resource.size ? _this.resource.size : start + clientChunkSize;\n\n            fileReader.readAsArrayBuffer(_this.blobSlice.call(_this.resource, start, end));\n\n        }\n\n        loadNext();\n\n    },\n\n    preprocess: function () { //预处理\n\n        var _this = this;\n\n        $.ajax({\n\n            url: _this.storageHost + _this.preprocessRoute,\n\n            type: 'POST',\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            crossDomain: true,\n\n            data: {\n\n                resource_name: _this.resourceName,\n\n                resource_size: _this.resourceSize,\n\n                resource_hash: _this.resourceHash,\n\n                locale: _this.locale,\n\n                group: _this.group\n\n            },\n\n            success: function (rst) {\n\n                if (rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n                }\n\n                _this.resourceTempBaseName = rst.resourceTempBaseName;\n\n                _this.resourceExt = rst.resourceExt;\n\n                _this.chunkSize = rst.chunkSize;\n\n                _this.chunkCount = Math.ceil(_this.resourceSize / _this.chunkSize);\n\n                _this.groupSubDir = rst.groupSubDir;\n\n                if (rst.savedPath.length === 0) {\n\n                    _this.uploadChunk();\n\n\n                } else {\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_instant_completion_success);\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                }\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                _this.outputDom.text(_this.messages.error_upload_fail);\n\n            }\n\n        });\n\n    },\n\n    uploadChunk: function () {\n\n        var _this = this,\n\n            start = this.i * this.chunkSize,\n\n            end = Math.min(this.resourceSize, start + this.chunkSize),\n\n            form = new FormData();\n\n        form.append('resource_chunk', this.resource.slice(start, end));\n\n        form.append('resource_ext', this.resourceExt);\n\n        form.append('chunk_total', this.chunkCount);\n\n        form.append('chunk_index', this.i + 1);\n\n        form.append('resource_temp_basename', this.resourceTempBaseName);\n\n        form.append('group', this.group);\n\n        form.append('group_subdir', this.groupSubDir);\n\n        form.append('locale', this.locale);\n\n        form.append('resource_hash', this.resourceHash);\n\n        $.ajax({\n\n            url: _this.storageHost + _this.uploadingRoute,\n\n            type: 'POST',\n\n            data: form,\n\n            dataType: 'json',\n\n            xhrFields: {\n                withCredentials: true\n            },\n\n            cache: false,\n\n            crossDomain: true,\n\n            processData: false,\n\n            contentType: false,\n\n            success: function (rst) {\n\n                if ((rst instanceof Object) !== true) {\n\n                    _this.outputDom.text(_this.messages.error_invalid_server_return);\n\n                    return;\n                }\n\n                if (rst.error === 'undefined' || rst.error) {\n\n                    _this.outputDom.text(rst.error);\n\n                    return;\n\n                }\n\n                var percent = parseInt((_this.i + 1) / _this.chunkCount * 100);\n\n                _this.progressBarDom.css('width', percent + '%');\n\n                _this.outputDom.text(_this.messages.status_uploading + ' ' + percent + '%');\n\n                if (rst.savedPath !== 'undefined' && rst.savedPath !== '') {\n\n                    _this.savedPath = rst.savedPath;\n\n                    _this.savedPathDom.val(_this.savedPath);\n\n                    _this.resourceDom.attr('disabled', 'disabled');\n\n                    _this.outputDom.text(_this.messages.status_upload_succeed);\n\n                    _this.progressBarDom.css('width', '100%');\n\n                    typeof(_this.callback) !== 'undefined' ? _this.callback() : null;\n\n                } else {\n\n                    ++_this.i;\n\n                    _this.uploadChunk();\n\n                }\n\n\n            },\n            error: function (XMLHttpRequest, textStatus, errorThrown) {\n\n                if (XMLHttpRequest.status === 0) {\n\n                    _this.outputDom.text(_this.messages.status_retrying);\n\n                    _this.sleep(5000);\n\n                    _this.uploadChunk();\n\n                } else {\n\n                    _this.outputDom.text(_this.messages.error_upload_fail);\n\n                }\n            }\n\n        });\n\n    },\n\n    sleep: function (milliSecond) {\n\n        var wakeUpTime = new Date().getTime() + milliSecond;\n\n        while (true) {\n\n            if (new Date().getTime() > wakeUpTime) {\n\n                return;\n            }\n        }\n    },\n\n    success: function (callback) {\n\n        this.callback = callback;\n\n        return this;\n    },\n\n    setPreprocessRoute: function (route) {\n\n        this.preprocessRoute = route;\n\n        return this;\n    },\n\n    setUploadingRoute: function (route) {\n\n        this.uploadingRoute = route;\n\n        return this;\n    },\n\n    setGroup: function (group) {\n\n        this.group = group;\n\n        return this;\n    },\n\n    setSavedPathField: function (selector) {\n\n        this.savedPathDom = $(selector);\n\n        return this;\n    },\n\n    setLaxMode: function (isLax) {\n\n        this.laxMode = isLax;\n\n        return this;\n    },\n\n    getLocalizedMessages: function () {\n\n        var lang = navigator.language ? navigator.language : navigator.browserLanguage;\n\n        var locales = Object.getOwnPropertyNames(this.text);\n\n        for (var k in locales) {\n\n            if (lang.indexOf(locales[k]) > -1) {\n\n                this.locale = locales[k];\n\n                return this.text[this.locale];\n\n            }\n\n        }\n\n        this.locale = 'en';\n\n        return this.text[this.locale];\n\n    },\n\n    text: {\n        en: {\n            status_upload_begin: 'upload begin',\n            error_unsupported_browser: 'Error: unsupported browser',\n            status_hashing: 'hashing',\n            status_instant_completion_success: 'upload succeed (instant completion) ',\n            status_uploading: 'uploading',\n            status_upload_succeed: 'upload succeed',\n            status_retrying: 'network problem, retrying...',\n            error_upload_fail: 'Error: upload fail',\n            error_invalid_server_return: 'Error: invalid server return value',\n            error_invalid_resource_size: 'Error: invalid resource size',\n            error_invalid_resource_type: 'Error: invalid resource type'\n        },\n        zh: {\n            status_upload_begin: '开始上传',\n            error_unsupported_browser: '错误：上传组件不被此浏览器支持',\n            status_hashing: '正在哈希',\n            status_instant_completion_success: '上传成功（秒传）',\n            status_uploading: '正在上传',\n            status_upload_succeed: '上传成功',\n            status_retrying: '网络故障，正在重试……',\n            error_upload_fail: '错误：上传失败',\n            error_invalid_server_return: '错误：无效的服务器返回值',\n            error_invalid_resource_size: '错误：无效的文件大小',\n            error_invalid_resource_type: '错误：无效的文件类型'\n        }\n    }\n\n\n};\n\n/*\n * 创建AetherUpload对象的全局方法\n * resource 文件对象\n * group 分组名\n */\nfunction aetherupload(resource) {\n\n    var newInstance = Object.create(AetherUpload);\n\n    newInstance.wrapperDom = $(resource).parents('#aetherupload-wrapper');\n\n    newInstance.group = 'file'; //分组的默认值\n\n    newInstance.savedPathDom = newInstance.wrapperDom.find('#aetherupload-savedpath'); //资源储存地址所在节点的默认值\n\n    newInstance.preprocessRoute = '/aetherupload/preprocess'; //预处理路由的默认值\n\n    newInstance.uploadingRoute = '/aetherupload/uploading'; //上传路由的默认值\n\n    newInstance.laxMode = false; //宽松模式\n\n    return newInstance;\n}\n\n\n\n\n\n\n\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/composer.json",
    "content": "{\n  \"name\": \"peinhu/aetherupload-laravel\",\n  \"description\": \"Upload large files for Laravel 上传 大文件 laravel包\",\n  \"keywords\": [\n    \"大文件\",\n    \"large\",\n    \"upload\",\n    \"laravel\"\n  ],\n  \"license\": \"GPL-2.0\",\n  \"authors\": [\n    {\n      \"name\": \"Payne Hu\",\n      \"email\": \"huyang110yahoo@gmail.com\",\n      \"homepage\": \"http://www.2ndrenais.com\",\n      \"role\": \"Manager\"\n    }\n  ],\n  \"require\": {\n    \"php\": \">=5.5.9\"\n  },\n  \"require-dev\": {\n    \"phpunit/phpunit\": \"^7.5\"\n  },\n  \"suggest\": {\n    \"predis/predis\": \"Needed to support instant completion\"\n  },\n  \"autoload\": {\n    \"psr-4\": {\n      \"AetherUpload\\\\\": \"src/\"\n    },\n    \"files\": [ \"src/helpers.php\" ]\n  },\n  \"extra\": {\n    \"laravel\": {\n      \"providers\": [\n        \"AetherUpload\\\\AetherUploadServiceProvider\"\n      ]\n    }\n  },\n  \"minimum-stability\": \"dev\",\n  \"prefer-stable\": true\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/config/aetherupload.php",
    "content": "<?php\n\nreturn [\n\n    # 【分布式设置】：如启用分布式部署，此类配置项必须在应用服务器与储存服务器都进行配置。 #\n    # 【一般设置】：只需在储存服务器配置。 #\n\n    /*\n    |--------------------------------------------------------------------------\n    | 分布式部署\n    |--------------------------------------------------------------------------\n    |\n    | 【分布式设置】使应用服务与储存服务分离，启用后资源上传请求将会由储存服务器处理。\n    |\n    */\n\n    'distributed_deployment' => [\n\n        'enable' => false, # 是否启用\n\n        'role' => 'web', # 服务器角色，支持选项: 'web', 'storage'\n\n        'web' => [ # 角色为应用服务器\n            'storage_host' => '', # 储存服务器的host，如'http://storage.example.com'\n        ],\n\n        'storage' => [ # 角色为储存服务器\n            'middleware_cors' => '', # 跨域中间件AetherUploadCORS类在Kernel.php中注册的名称\n            'allow_origin'    => [], # 跨域中间件允许的应用服务器来源host，如['http://www.example.com']\n        ],\n\n    ],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 启用秒传功能\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】需要安装redis服务和predis扩展包。\n    |\n    */\n\n    'instant_completion' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 上传根目录名\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】位于 storage/app/ 下，修改默认值后需执行artisan命令aetherupload:groups生成对应目录。\n    |\n    */\n\n    'root_dir' => 'aetherupload',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 上传分块大小（B）\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】建议1MB～4MB之间，较小值占用内存少、效率低，较大值占用内存多、效率高，需要小于web服务器和php.ini中的上传限值。\n    |\n    */\n\n    'chunk_size' => 1000000,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 子目录生成规则\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】分为按年份、按月份、按日期、常量subdir。\n    |\n    | 支持选项: 'year', 'month', 'date', 'const'\n    |\n    */\n\n    'resource_subdir_rule' => 'month',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 头文件储存方式\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】头文件储存disk的配置名称，如果为\"redis\"，需在config/filesystems.php中添加以下配置。\n    | 'disks' => [\n    |     ...\n    |     'redis' => [\n    |        'driver' => 'redis',\n    |        'disable_asserts'=>true,\n    |     ],\n    |     ...\n    | ]\n    |\n    | 支持选项: 'local', 'redis'\n    |\n    */\n\n    'header_storage_disk' => 'local',\n\n    /*\n    |--------------------------------------------------------------------------\n    | 资源文件后缀名黑名单\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】被禁止资源文件的后缀名集合，凡是匹配成功的资源文件均会被阻止上传，可在一定程度上防范恶意文件上传。\n    |\n    */\n\n    'forbidden_extensions' => ['php', 'part', 'html', 'shtml', 'htm', 'shtm', 'xhtml', 'xml', 'js', 'jsp', 'asp', 'java', 'py', 'sh', 'bat', 'exe', 'dll', 'cgi', 'htaccess', 'reg', 'aspx', 'vbs'],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 额外Mime-Type\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】如上传文件类型在MimeType.php中不存在，可在此额外添加Mime-Type，格式参照'jpg' => 'image/jpeg'。\n    |\n    */\n\n    'extra_mime_types' => [],\n\n    /*\n    |--------------------------------------------------------------------------\n    | 中间件\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】上传预处理、上传分块、文件展示、文件下载时的路由中间件。\n    |\n    */\n\n    'middleware_preprocess' => [], # 上传预处理时的路由中间件\n    'middleware_uploading'  => [], # 上传文件分块时的路由中间件\n    'middleware_display'    => [], # 文件展示时的路由中间件\n    'middleware_download'   => [], # 文件下载时的路由中间件\n\n    /*\n    |--------------------------------------------------------------------------\n    | 路由\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】上传预处理、上传分块、文件展示、文件下载的路由。\n    |\n    */\n\n    'route_preprocess' => '/aetherupload/preprocess', # 上传预处理的路由\n    'route_uploading'  => '/aetherupload/uploading', # 上传文件分块的路由\n    'route_display'    => '/aetherupload/display', # 文件展示的路由\n    'route_download'   => '/aetherupload/download', # 文件下载的路由\n\n    /*\n    |--------------------------------------------------------------------------\n    | 宽松模式\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】在某些特殊场景，通过上传前跳过计算hash，可缩短总耗时。此选项开启后，无法进行秒传和完整性校验。默认不启用。\n    |\n    |   注意：开启后需在前端同时调用setLaxMode(true)方法。\n    |\n    */\n\n    'lax_mode' => false,\n\n    /*\n    |--------------------------------------------------------------------------\n    | 资源分组\n    |--------------------------------------------------------------------------\n    |\n    | 【一般设置】可设置多个不同分组，各自拥有独立配置。新增分组并配置后，需执行artisan命令aetherupload:groups创建对应目录。\n    |\n    */\n\n    'groups' => [\n\n        'file' => [ # 分组名\n            'group_dir'                    => 'file', # 分组目录名\n            'resource_maxsize'             => 0, # 被允许的资源文件最大值(B)，0为不限制，32位系统最大值为2147483647\n            'resource_extensions'          => [], # 被允许的资源文件扩展名(白名单)，空为不限制\n            'event_before_upload_complete' => '', # 上传完成前触发的事件(完整临时文件)，PartialResource类的实例被注入\n            'event_upload_complete'        => '', # 上传完成后触发的事件(完整资源文件)，Resource类的实例被注入\n        ],\n\n    ],\n];"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/middleware/AetherUploadCORS.php",
    "content": "<?php\n\nnamespace App\\Http\\Middleware;\n\nuse Closure;\nuse AetherUpload\\ConfigMapper;\n\nclass AetherUploadCORS\n{\n    /**\n     * Handle an incoming request.\n     *\n     * @param  \\Illuminate\\Http\\Request $request\n     * @param  \\Closure $next\n     * @return mixed\n     */\n    public function handle($request, Closure $next)\n    {\n        $response = $next($request);\n\n        $origin = $request->server('HTTP_ORIGIN') ?: '';\n\n        if ( in_array($origin, ConfigMapper::get('distributed_deployment_allow_origin')) ) {\n            $response->header('Access-Control-Allow-Origin', $origin); # 允许的来源域名\n            $response->header('Access-Control-Allow-Headers', 'X-CSRF-TOKEN'); # 允许的请求头部字段\n            $response->header('Access-Control-Allow-Methods', 'POST, OPTIONS'); # 允许的请求方法\n            $response->header('Access-Control-Allow-Credentials', 'true'); # 是否允许携带cookie\n            $response->header('Access-Control-Max-Age', '3600'); # 预检请求缓存时间\n            # 添加其它自定义内容\n        }\n\n\n        return $response;\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/routes/routes.php",
    "content": "<?php\n\nRoute::group(['middleware' => 'web'], function () {\n\n    if ( Config::get('app.env') !== 'production' ) {\n\n        Route::get('/aetherupload', function () {\n\n            return view('aetherupload::example');\n        });\n\n        Route::post('/aetherupload', function () {\n\n            echo '表单提交的数据（已上传资源的保存路径）：';\n            echo '<pre>';\n            print_r(request()->all());\n\n            echo PHP_EOL;\n            echo '获得已上传资源的<b>访问链接</b>' . PHP_EOL;\n            echo 'a.(手动)通过请求路由\"域名(分布式启用时应当为储存服务器的域名)/aetherupload/display/\"+file1 ';\n            echo '<a href=\"' . (\\AetherUpload\\ConfigMapper::get('distributed_deployment_enable') ? \\AetherUpload\\ConfigMapper::get('distributed_deployment_storage_host') : '') . \\AetherUpload\\ConfigMapper::get('route_display') . '/' . request()->input('file1') . '\" target=\"_blank\">访问file1</a> ' . PHP_EOL;\n            echo 'b.(自动)通过全局帮助方法{{ aetherupload_display_link(file1)  }} ';\n            echo '<a href=\"' . aetherupload_display_link(request()->input('file1')) . '\" target=\"_blank\">访问file1</a>' . PHP_EOL;\n            echo 'c.(自动)通过工具类方法{{ \\AetherUpload\\Util::getDisplayLink(file1)  }} ';\n            echo '<a href=\"' . \\AetherUpload\\Util::getDisplayLink(request()->input('file1')) . '\" target=\"_blank\">访问file1</a>' . PHP_EOL;\n\n            echo PHP_EOL;\n            echo '获得已上传资源的<b>下载链接</b>' . PHP_EOL;\n            echo 'a.(手动)通过请求路由\"域名(分布式启用时应当为储存服务器的域名)/aetherupload/download/\"+file1+\"/newname\" ';\n            echo '<a href=\"' . (\\AetherUpload\\ConfigMapper::get('distributed_deployment_enable') ? \\AetherUpload\\ConfigMapper::get('distributed_deployment_storage_host') : '') . \\AetherUpload\\ConfigMapper::get('route_download') . '/' . request()->input('file1') . '/newname\" target=\"_blank\">下载file1</a> ' . PHP_EOL;\n            echo 'b.(自动)通过全局帮助方法{{ aetherupload_download_link(file1,newname)  }} ';\n            echo '<a href=\"' . aetherupload_download_link(request()->input('file1'), 'newname') . '\" target=\"_blank\">下载file1</a>' . PHP_EOL;\n            echo 'c.(自动)通过工具类方法{{ \\AetherUpload\\Util::getDownloadLink(file1,newname)  }} ';\n            echo '<a href=\"' . \\AetherUpload\\Util::getDownloadLink(request()->input('file1'), 'newname') . '\" target=\"_blank\">下载file1</a>' . PHP_EOL;\n        });\n\n        Route::get('/aetherupload/example_source', function () {\n\n            return '<html><body style=\"background:#222;color:#ddd;font-size:16px;\"><pre>' . htmlspecialchars(File::get(__DIR__ . '/../views/example.blade.php')) . '</pre></body></html>';\n        });\n    }\n\n    if ( \\AetherUpload\\Util::isStorageHost() ) {\n\n        Route::post(\\AetherUpload\\ConfigMapper::get('route_preprocess'), '\\AetherUpload\\UploadController@preprocess')->middleware(\\AetherUpload\\ConfigMapper::get('middleware_preprocess'));\n\n        Route::options(\\AetherUpload\\ConfigMapper::get('route_preprocess'), '\\AetherUpload\\UploadController@options');\n\n        Route::post(\\AetherUpload\\ConfigMapper::get('route_uploading'), '\\AetherUpload\\UploadController@saveChunk')->middleware(\\AetherUpload\\ConfigMapper::get('middleware_uploading'));\n\n        Route::options(\\AetherUpload\\ConfigMapper::get('route_uploading'), '\\AetherUpload\\UploadController@options');\n\n        Route::get(\\AetherUpload\\ConfigMapper::get('route_display').'/{uri}', '\\AetherUpload\\ResourceController@display')->middleware(\\AetherUpload\\ConfigMapper::get('middleware_display'));\n\n        Route::get(\\AetherUpload\\ConfigMapper::get('route_download').'/{uri}/{newName}', '\\AetherUpload\\ResourceController@download')->middleware(\\AetherUpload\\ConfigMapper::get('middleware_download'));\n    }\n\n});"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/AetherUploadServiceProvider.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Storage;\nuse Illuminate\\Support\\ServiceProvider;\nuse AetherUpload\\Console\\BuildRedisHashesCommand;\nuse AetherUpload\\Console\\CleanUpDirectoryCommand;\nuse AetherUpload\\Console\\ListGroupDirectoryCommand;\nuse AetherUpload\\Console\\PublishCommand;\nuse League\\Flysystem\\Filesystem;\n\nclass AetherUploadServiceProvider extends ServiceProvider\n{\n\n    protected $defer = false;\n\n    public function boot()\n    {\n\n        $this->loadViewsFrom(__DIR__ . '/../views', 'aetherupload');\n\n        $this->loadTranslationsFrom(__DIR__ . '/../translations', 'aetherupload');\n\n        $this->publishes([\n            __DIR__ . '/../config/aetherupload.php'         => config_path('aetherupload.php'),\n            __DIR__ . '/../assets/aetherupload.js'          => public_path('vendor/aetherupload/js/aetherupload.js'),\n            __DIR__ . '/../assets/spark-md5.min.js'         => public_path('vendor/aetherupload/js/spark-md5.min.js'),\n            __DIR__ . '/../uploads/aetherupload_file'       => storage_path('app/aetherupload/file'),\n            __DIR__ . '/../uploads/aetherupload_header'     => storage_path('app/aetherupload/_header'),\n            __DIR__ . '/../translations/zh/messages.php'    => base_path('resources/lang/vendor/aetherupload/zh/messages.php'),\n            __DIR__ . '/../translations/en/messages.php'    => base_path('resources/lang/vendor/aetherupload/en/messages.php'),\n            __DIR__ . '/../middleware/AetherUploadCORS.php' => app_path('Http/Middleware/AetherUploadCORS.php'),\n        ], 'aetherupload');\n\n        if ( ! $this->app->routesAreCached() ) {\n            require __DIR__ . '/../routes/routes.php';\n        }\n\n        Storage::extend('redis', function ($app, $config) {\n            return new Filesystem(new RedisAdapter(new RedisClient()), $config);\n        });\n\n        if ( $this->app->runningInConsole() ) {\n            $commands = [PublishCommand::class];\n            if ( Util::isStorageHost() ) {\n                array_push($commands, BuildRedisHashesCommand::class, CleanUpDirectoryCommand::class, ListGroupDirectoryCommand::class);\n            }\n            $this->commands($commands);\n        }\n    }\n\n    public function register()\n    {\n        //\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/ConfigMapper.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nclass ConfigMapper\n{\n    private static $_instance = null;\n    private $root_dir;\n    private $resource_subdir_rule;\n    private $chunk_size;\n    private $resource_maxsize;\n    private $resource_extensions;\n    private $group;\n    private $group_dir;\n    private $middleware_preprocess;\n    private $middleware_uploading;\n    private $middleware_display;\n    private $middleware_download;\n    private $event_before_upload_complete;\n    private $event_upload_complete;\n    private $header_storage_disk;\n    private $distributed_deployment_enable;\n    private $distributed_deployment_role;\n    private $distributed_deployment_middleware_cors;\n    private $distributed_deployment_storage_host;\n    private $distributed_deployment_allow_origin;\n    private $forbidden_extensions;\n    private $instant_completion;\n    private $route_preprocess;\n    private $route_uploading;\n    private $route_display;\n    private $route_download;\n    private $lax_mode;\n\n    private function __construct()\n    {\n        //disallow new instance\n    }\n\n    public static function instance()\n    {\n        if ( self::$_instance === null ) {\n            self::$_instance = (new self())->applyCommonConfig();\n        }\n\n        return self::$_instance;\n    }\n\n    private function applyCommonConfig()\n    {\n        $config = app('config');\n        $this->root_dir = $config->get('aetherupload.root_dir');\n        $this->chunk_size = $config->get('aetherupload.chunk_size');\n        $this->resource_subdir_rule = $config->get('aetherupload.resource_subdir_rule');\n        $this->header_storage_disk = $config->get('aetherupload.header_storage_disk');\n        $this->distributed_deployment_enable = $config->get('aetherupload.distributed_deployment.enable');\n        $this->distributed_deployment_role = $config->get('aetherupload.distributed_deployment.role');\n        $this->distributed_deployment_storage_host = $config->get('aetherupload.distributed_deployment.web.storage_host');\n        $this->distributed_deployment_middleware_cors = $config->get('aetherupload.distributed_deployment.storage.middleware_cors');\n        $this->distributed_deployment_allow_origin = $config->get('aetherupload.distributed_deployment.storage.allow_origin');\n        $this->forbidden_extensions = $config->get('aetherupload.forbidden_extensions');\n        $this->middleware_preprocess = $config->get('aetherupload.middleware_preprocess');\n        $this->middleware_uploading = $config->get('aetherupload.middleware_uploading');\n        $this->middleware_display = $config->get('aetherupload.middleware_display');\n        $this->middleware_download = $config->get('aetherupload.middleware_download');\n        $this->instant_completion = $config->get('aetherupload.instant_completion');\n        $this->route_preprocess = $config->get('aetherupload.route_preprocess');\n        $this->route_uploading = $config->get('aetherupload.route_uploading');\n        $this->route_display = $config->get('aetherupload.route_display');\n        $this->route_download = $config->get('aetherupload.route_download');\n        $this->lax_mode = $config->get('aetherupload.lax_mode');\n\n        return $this;\n    }\n\n    public function applyGroupConfig($group)\n    {\n        $config = app('config');\n\n        if ( ! in_array($group, array_keys($config->get('aetherupload.groups'))) ) {\n            throw new \\Exception(trans('aetherupload::messages.invalid_operation'));\n        }\n\n        $this->group = $group;\n        $this->group_dir = $config->get('aetherupload.groups.' . $group . '.group_dir');\n        $this->resource_maxsize = $config->get('aetherupload.groups.' . $group . '.resource_maxsize');\n        $this->resource_extensions = $config->get('aetherupload.groups.' . $group . '.resource_extensions');\n        $this->event_before_upload_complete = $config->get('aetherupload.groups.' . $group . '.event_before_upload_complete');\n        $this->event_upload_complete = $config->get('aetherupload.groups.' . $group . '.event_upload_complete');\n\n        return $this;\n    }\n\n    public static function get($property)\n    {\n        return self::instance()->{$property};\n    }\n\n    public static function set($property, $value)\n    {\n        self::instance()->{$property} = $value;\n    }\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Console/BuildRedisHashesCommand.php",
    "content": "<?php\n\nnamespace AetherUpload\\Console;\n\nuse AetherUpload\\ConfigMapper;\nuse AetherUpload\\SavedPathResolver;\nuse AetherUpload\\Util;\nuse Illuminate\\Console\\Command;\nuse AetherUpload\\RedisSavedPath;\nuse Illuminate\\Support\\Facades\\Config;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass BuildRedisHashesCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'aetherupload:build';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Build the correspondences between hashes and file storage paths in redis';\n\n    /**\n     * Create a new command instance.\n     */\n    public function __construct()\n    {\n        parent::__construct();\n    }\n\n    public function handle()\n    {\n        $savedPathArr = [];\n\n        try {\n\n            RedisSavedPath::deleteAll();\n\n            foreach ( Config::get('aetherupload.groups') as $groupName => $group ) {\n                $subDirNames = Storage::directories(ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . $group['group_dir']);\n\n                foreach ( $subDirNames as $subDirName ) {\n                    $fileNames = Storage::files($subDirName);\n\n                    foreach ( $fileNames as $fileName ) {\n                        if ( pathinfo($fileName, PATHINFO_EXTENSION) === 'part' ) {\n                            continue;\n                        }\n\n                        $savedPathArr[RedisSavedPath::getKey($groupName, pathinfo($fileName, PATHINFO_FILENAME))] = SavedPathResolver::encode($group['group_dir'], basename($subDirName), basename($fileName));\n\n                    }\n                }\n            }\n\n            RedisSavedPath::setMulti($savedPathArr);\n\n            $this->info(count($savedPathArr) . ' items have been set in Redis.');\n            $this->info('Done.');\n\n        } catch ( \\Exception $e ) {\n\n            $this->error($e->getMessage());\n        }\n\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Console/CleanUpDirectoryCommand.php",
    "content": "<?php\n\nnamespace AetherUpload\\Console;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Support\\Facades\\Config;\nuse Illuminate\\Support\\Facades\\Storage;\nuse AetherUpload\\ConfigMapper;\n\nclass CleanUpDirectoryCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'aetherupload:clean {days=2 : The number of days from today}';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'Remove partial files which are created a few days ago';\n\n    /**\n     * Create a new command instance.\n     */\n    public function __construct()\n    {\n        parent::__construct();\n    }\n\n    public function handle()\n    {\n        $invalidHeaders = [];\n        $invalidFiles = [];\n        $dueTime = strtotime('-' . $this->argument('days') . ' day');\n        $rootDir = ConfigMapper::get('root_dir');\n\n        try {\n            $headers = Storage::disk(ConfigMapper::get('header_storage_disk'))->files($rootDir . DIRECTORY_SEPARATOR . '_header');\n\n            foreach ( $headers as $header ) {\n\n                if ( pathinfo($header, PATHINFO_EXTENSION) !== '' ) {\n                    continue;\n                }\n\n                $createTime = substr(basename($header), 0, 10);\n\n                if ( $createTime < $dueTime ) {\n                    $invalidHeaders[] = $header;\n                }\n            }\n\n            Storage::disk(ConfigMapper::get('header_storage_disk'))->delete($invalidHeaders);\n\n            $this->info(count($invalidHeaders) . ' invalid headers have been deleted.');\n\n            $groupDirs = array_map(function ($v) {\n                return $v['group_dir'];\n            }, Config::get('aetherupload.groups'));\n\n            foreach ( $groupDirs as $groupDir ) {\n                $subDirNames = Storage::directories($rootDir . DIRECTORY_SEPARATOR . $groupDir);\n\n                foreach ( $subDirNames as $subDirName ) {\n                    $files = Storage::files($subDirName);\n\n                    foreach ( $files as $file ) {\n\n                        if ( pathinfo($file, PATHINFO_EXTENSION) !== 'part' ) {\n                            continue;\n                        }\n\n                        $createTime = substr($fileName = basename($file, '.part'), 0, 10);\n\n                        if ( $createTime < $dueTime ) {\n                            $invalidFiles[] = $file;\n                        }\n                    }\n                }\n            }\n\n            Storage::delete($invalidFiles);\n\n            $this->info(count($invalidFiles) . ' invalid files have been deleted.');\n            $this->info('Done.');\n\n        } catch ( \\Exception $e ) {\n\n            $this->error($e->getMessage());\n        }\n\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Console/ListGroupDirectoryCommand.php",
    "content": "<?php\n\nnamespace AetherUpload\\Console;\n\nuse Illuminate\\Support\\Facades\\Storage;\nuse Illuminate\\Support\\Facades\\Config;\nuse Illuminate\\Console\\Command;\n\nclass ListGroupDirectoryCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'aetherupload:groups';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'List and create the directories for the groups';\n\n\n    /**\n     * Create a new command instance.\n     */\n    public function __construct()\n    {\n        parent::__construct();\n    }\n\n\n    public function handle()\n    {\n        $rootDir = Config::get('aetherupload.root_dir');\n\n        try {\n\n            if ( ! Storage::exists($rootDir) ) {\n                Storage::makeDirectory($rootDir . DIRECTORY_SEPARATOR . '_header');\n                $this->info('Root directory \"' . $rootDir . '\" has been created.');\n            }\n\n            $directories = array_map(function ($directory) {\n                return basename($directory);\n            }, Storage::directories($rootDir));\n\n            $groupDirs = array_map(function ($v) {\n                return $v['group_dir'];\n            }, Config::get('aetherupload.groups'));\n\n            foreach ( $groupDirs as $groupDir ) {\n                if ( in_array($groupDir, $directories) ) {\n                    continue;\n                } else {\n                    if ( Storage::makeDirectory($rootDir . DIRECTORY_SEPARATOR . $groupDir) ) {\n                        $this->info('Directory \"' . $rootDir . DIRECTORY_SEPARATOR . $groupDir . '\" has been created.');\n                    } else {\n                        $this->error('Fail to create directory \"' . $rootDir . DIRECTORY_SEPARATOR . $groupDir . '\".');\n                    }\n                }\n            }\n\n            $this->info('Group-Directory List:');\n\n            foreach ( Config::get('aetherupload.groups') as $groupName => $groupArr ) {\n                if ( Storage::exists($rootDir . DIRECTORY_SEPARATOR . $groupArr['group_dir']) ) {\n                    $this->info($groupName . '-' . $groupArr['group_dir']);\n                }\n            }\n\n        } catch ( \\Exception $e ) {\n\n            $this->error($e->getMessage());\n        }\n\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Console/PublishCommand.php",
    "content": "<?php\n\nnamespace AetherUpload\\Console;\n\nuse Illuminate\\Console\\Command;\n\nclass PublishCommand extends Command\n{\n    /**\n     * The name and signature of the console command.\n     *\n     * @var string\n     */\n    protected $signature = 'aetherupload:publish';\n\n    /**\n     * The console command description.\n     *\n     * @var string\n     */\n    protected $description = 'An easy way for vendor:publish';\n\n    /**\n     * Create a new command instance.\n     *\n     */\n    public function __construct()\n    {\n        parent::__construct();\n    }\n\n\n    public function handle()\n    {\n        $this->call('vendor:publish', [\n            '--provider' => 'AetherUpload\\AetherUploadServiceProvider', '--force' => true,\n        ]);\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Header.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass Header\n{\n    public $disk;\n    public $path;\n    public $name;\n\n    public function __construct($tempBaseName)\n    {\n        $this->disk = Storage::disk(ConfigMapper::get('header_storage_disk'));\n        $this->name = $tempBaseName;\n        $this->path = $this->getRelativePath();\n    }\n\n    public function create()\n    {\n        if ( $this->disk->put($this->path, 0) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.create_header_fail'));\n        }\n    }\n\n    public function write($content)\n    {\n        if ( $this->disk->put($this->path, $content) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.write_header_fail'));\n        }\n    }\n\n    public function read()\n    {\n        if ( ($content = $this->disk->read($this->path)) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.read_header_fail'));\n        }\n\n        return $content;\n    }\n\n    public function delete()\n    {\n        if ( $this->disk->delete($this->path) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.delete_header_fail'));\n        }\n    }\n\n    private function getRelativePath()\n    {\n        return ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . '_header' . DIRECTORY_SEPARATOR . $this->name;\n    }\n\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/MimeType.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nclass MimeType\n{\n    /**\n     * An array of extension to MIME types.\n     *\n     * @var array\n     */\n    protected static $mimes = [\n        'ez' => 'application/andrew-inset',\n        'aw' => 'application/applixware',\n        'atom' => 'application/atom+xml',\n        'atomcat' => 'application/atomcat+xml',\n        'atomsvc' => 'application/atomsvc+xml',\n        'ccxml' => 'application/ccxml+xml',\n        'cdmia' => 'application/cdmi-capability',\n        'cdmic' => 'application/cdmi-container',\n        'cdmid' => 'application/cdmi-domain',\n        'cdmio' => 'application/cdmi-object',\n        'cdmiq' => 'application/cdmi-queue',\n        'cu' => 'application/cu-seeme',\n        'davmount' => 'application/davmount+xml',\n        'dbk' => 'application/docbook+xml',\n        'dssc' => 'application/dssc+der',\n        'xdssc' => 'application/dssc+xml',\n        'ecma' => 'application/ecmascript',\n        'emma' => 'application/emma+xml',\n        'epub' => 'application/epub+zip',\n        'exi' => 'application/exi',\n        'pfr' => 'application/font-tdpfr',\n        'gml' => 'application/gml+xml',\n        'gpx' => 'application/gpx+xml',\n        'gxf' => 'application/gxf',\n        'stk' => 'application/hyperstudio',\n        'ink' => 'application/inkml+xml',\n        'ipfix' => 'application/ipfix',\n        'jar' => 'application/java-archive',\n        'ser' => 'application/java-serialized-object',\n        'class' => 'application/java-vm',\n        'js' => 'application/javascript',\n        'json' => 'application/json',\n        'jsonml' => 'application/jsonml+json',\n        'lostxml' => 'application/lost+xml',\n        'hqx' => 'application/mac-binhex40',\n        'cpt' => 'application/mac-compactpro',\n        'mads' => 'application/mads+xml',\n        'mrc' => 'application/marc',\n        'mrcx' => 'application/marcxml+xml',\n        'ma' => 'application/mathematica',\n        'mathml' => 'application/mathml+xml',\n        'mbox' => 'application/mbox',\n        'mscml' => 'application/mediaservercontrol+xml',\n        'metalink' => 'application/metalink+xml',\n        'meta4' => 'application/metalink4+xml',\n        'mets' => 'application/mets+xml',\n        'mods' => 'application/mods+xml',\n        'm21' => 'application/mp21',\n        'mp4s' => 'application/mp4',\n        'doc' => 'application/msword',\n        'mxf' => 'application/mxf',\n        'bin' => 'application/octet-stream',\n        'oda' => 'application/oda',\n        'opf' => 'application/oebps-package+xml',\n        'ogx' => 'application/ogg',\n        'omdoc' => 'application/omdoc+xml',\n        'onetoc' => 'application/onenote',\n        'oxps' => 'application/oxps',\n        'xer' => 'application/patch-ops-error+xml',\n        'pdf' => 'application/pdf',\n        'pgp' => 'application/pgp-encrypted',\n        'asc' => 'application/pgp-signature',\n        'prf' => 'application/pics-rules',\n        'p10' => 'application/pkcs10',\n        'p7m' => 'application/pkcs7-mime',\n        'p7s' => 'application/pkcs7-signature',\n        'p8' => 'application/pkcs8',\n        'ac' => 'application/pkix-attr-cert',\n        'cer' => 'application/pkix-cert',\n        'crl' => 'application/pkix-crl',\n        'pkipath' => 'application/pkix-pkipath',\n        'pki' => 'application/pkixcmp',\n        'pls' => 'application/pls+xml',\n        'ai' => 'application/postscript',\n        'cww' => 'application/prs.cww',\n        'pskcxml' => 'application/pskc+xml',\n        'rdf' => 'application/rdf+xml',\n        'rif' => 'application/reginfo+xml',\n        'rnc' => 'application/relax-ng-compact-syntax',\n        'rl' => 'application/resource-lists+xml',\n        'rld' => 'application/resource-lists-diff+xml',\n        'rs' => 'application/rls-services+xml',\n        'gbr' => 'application/rpki-ghostbusters',\n        'mft' => 'application/rpki-manifest',\n        'roa' => 'application/rpki-roa',\n        'rsd' => 'application/rsd+xml',\n        'rss' => 'application/rss+xml',\n        'sbml' => 'application/sbml+xml',\n        'scq' => 'application/scvp-cv-request',\n        'scs' => 'application/scvp-cv-response',\n        'spq' => 'application/scvp-vp-request',\n        'spp' => 'application/scvp-vp-response',\n        'sdp' => 'application/sdp',\n        'setpay' => 'application/set-payment-initiation',\n        'setreg' => 'application/set-registration-initiation',\n        'shf' => 'application/shf+xml',\n        'smi' => 'application/smil+xml',\n        'rq' => 'application/sparql-query',\n        'srx' => 'application/sparql-results+xml',\n        'gram' => 'application/srgs',\n        'grxml' => 'application/srgs+xml',\n        'sru' => 'application/sru+xml',\n        'ssdl' => 'application/ssdl+xml',\n        'ssml' => 'application/ssml+xml',\n        'tei' => 'application/tei+xml',\n        'tfi' => 'application/thraud+xml',\n        'tsd' => 'application/timestamped-data',\n        'plb' => 'application/vnd.3gpp.pic-bw-large',\n        'psb' => 'application/vnd.3gpp.pic-bw-small',\n        'pvb' => 'application/vnd.3gpp.pic-bw-var',\n        'tcap' => 'application/vnd.3gpp2.tcap',\n        'pwn' => 'application/vnd.3m.post-it-notes',\n        'aso' => 'application/vnd.accpac.simply.aso',\n        'imp' => 'application/vnd.accpac.simply.imp',\n        'acu' => 'application/vnd.acucobol',\n        'atc' => 'application/vnd.acucorp',\n        'air' => 'application/vnd.adobe.air-application-installer-package+zip',\n        'fcdt' => 'application/vnd.adobe.formscentral.fcdt',\n        'fxp' => 'application/vnd.adobe.fxp',\n        'xdp' => 'application/vnd.adobe.xdp+xml',\n        'xfdf' => 'application/vnd.adobe.xfdf',\n        'ahead' => 'application/vnd.ahead.space',\n        'azf' => 'application/vnd.airzip.filesecure.azf',\n        'azs' => 'application/vnd.airzip.filesecure.azs',\n        'azw' => 'application/vnd.amazon.ebook',\n        'acc' => 'application/vnd.americandynamics.acc',\n        'ami' => 'application/vnd.amiga.ami',\n        'apk' => 'application/vnd.android.package-archive',\n        'cii' => 'application/vnd.anser-web-certificate-issue-initiation',\n        'fti' => 'application/vnd.anser-web-funds-transfer-initiation',\n        'atx' => 'application/vnd.antix.game-component',\n        'mpkg' => 'application/vnd.apple.installer+xml',\n        'm3u8' => 'application/vnd.apple.mpegurl',\n        'swi' => 'application/vnd.aristanetworks.swi',\n        'iota' => 'application/vnd.astraea-software.iota',\n        'aep' => 'application/vnd.audiograph',\n        'mpm' => 'application/vnd.blueice.multipass',\n        'bmi' => 'application/vnd.bmi',\n        'rep' => 'application/vnd.businessobjects',\n        'cdxml' => 'application/vnd.chemdraw+xml',\n        'mmd' => 'application/vnd.chipnuts.karaoke-mmd',\n        'cdy' => 'application/vnd.cinderella',\n        'cla' => 'application/vnd.claymore',\n        'rp9' => 'application/vnd.cloanto.rp9',\n        'c4g' => 'application/vnd.clonk.c4group',\n        'c11amc' => 'application/vnd.cluetrust.cartomobile-config',\n        'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg',\n        'csp' => 'application/vnd.commonspace',\n        'cdbcmsg' => 'application/vnd.contact.cmsg',\n        'cmc' => 'application/vnd.cosmocaller',\n        'clkx' => 'application/vnd.crick.clicker',\n        'clkk' => 'application/vnd.crick.clicker.keyboard',\n        'clkp' => 'application/vnd.crick.clicker.palette',\n        'clkt' => 'application/vnd.crick.clicker.template',\n        'clkw' => 'application/vnd.crick.clicker.wordbank',\n        'wbs' => 'application/vnd.criticaltools.wbs+xml',\n        'pml' => 'application/vnd.ctc-posml',\n        'ppd' => 'application/vnd.cups-ppd',\n        'car' => 'application/vnd.curl.car',\n        'pcurl' => 'application/vnd.curl.pcurl',\n        'dart' => 'application/vnd.dart',\n        'rdz' => 'application/vnd.data-vision.rdz',\n        'uvf' => 'application/vnd.dece.data',\n        'uvt' => 'application/vnd.dece.ttml+xml',\n        'uvx' => 'application/vnd.dece.unspecified',\n        'uvz' => 'application/vnd.dece.zip',\n        'fe_launch' => 'application/vnd.denovo.fcselayout-link',\n        'dna' => 'application/vnd.dna',\n        'mlp' => 'application/vnd.dolby.mlp',\n        'dpg' => 'application/vnd.dpgraph',\n        'dfac' => 'application/vnd.dreamfactory',\n        'kpxx' => 'application/vnd.ds-keypoint',\n        'ait' => 'application/vnd.dvb.ait',\n        'svc' => 'application/vnd.dvb.service',\n        'geo' => 'application/vnd.dynageo',\n        'mag' => 'application/vnd.ecowin.chart',\n        'nml' => 'application/vnd.enliven',\n        'esf' => 'application/vnd.epson.esf',\n        'msf' => 'application/vnd.epson.msf',\n        'qam' => 'application/vnd.epson.quickanime',\n        'slt' => 'application/vnd.epson.salt',\n        'ssf' => 'application/vnd.epson.ssf',\n        'es3' => 'application/vnd.eszigno3+xml',\n        'ez2' => 'application/vnd.ezpix-album',\n        'ez3' => 'application/vnd.ezpix-package',\n        'fdf' => 'application/vnd.fdf',\n        'mseed' => 'application/vnd.fdsn.mseed',\n        'seed' => 'application/vnd.fdsn.seed',\n        'gph' => 'application/vnd.flographit',\n        'ftc' => 'application/vnd.fluxtime.clip',\n        'fm' => 'application/vnd.framemaker',\n        'fnc' => 'application/vnd.frogans.fnc',\n        'ltf' => 'application/vnd.frogans.ltf',\n        'fsc' => 'application/vnd.fsc.weblaunch',\n        'oas' => 'application/vnd.fujitsu.oasys',\n        'oa2' => 'application/vnd.fujitsu.oasys2',\n        'oa3' => 'application/vnd.fujitsu.oasys3',\n        'fg5' => 'application/vnd.fujitsu.oasysgp',\n        'bh2' => 'application/vnd.fujitsu.oasysprs',\n        'ddd' => 'application/vnd.fujixerox.ddd',\n        'xdw' => 'application/vnd.fujixerox.docuworks',\n        'xbd' => 'application/vnd.fujixerox.docuworks.binder',\n        'fzs' => 'application/vnd.fuzzysheet',\n        'txd' => 'application/vnd.genomatix.tuxedo',\n        'ggb' => 'application/vnd.geogebra.file',\n        'ggt' => 'application/vnd.geogebra.tool',\n        'gex' => 'application/vnd.geometry-explorer',\n        'gxt' => 'application/vnd.geonext',\n        'g2w' => 'application/vnd.geoplan',\n        'g3w' => 'application/vnd.geospace',\n        'gmx' => 'application/vnd.gmx',\n        'kml' => 'application/vnd.google-earth.kml+xml',\n        'kmz' => 'application/vnd.google-earth.kmz',\n        'gqf' => 'application/vnd.grafeq',\n        'gac' => 'application/vnd.groove-account',\n        'ghf' => 'application/vnd.groove-help',\n        'gim' => 'application/vnd.groove-identity-message',\n        'grv' => 'application/vnd.groove-injector',\n        'gtm' => 'application/vnd.groove-tool-message',\n        'tpl' => 'application/vnd.groove-tool-template',\n        'vcg' => 'application/vnd.groove-vcard',\n        'hal' => 'application/vnd.hal+xml',\n        'zmm' => 'application/vnd.handheld-entertainment+xml',\n        'hbci' => 'application/vnd.hbci',\n        'les' => 'application/vnd.hhe.lesson-player',\n        'hpgl' => 'application/vnd.hp-hpgl',\n        'hpid' => 'application/vnd.hp-hpid',\n        'hps' => 'application/vnd.hp-hps',\n        'jlt' => 'application/vnd.hp-jlyt',\n        'pcl' => 'application/vnd.hp-pcl',\n        'pclxl' => 'application/vnd.hp-pclxl',\n        'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data',\n        'mpy' => 'application/vnd.ibm.minipay',\n        'afp' => 'application/vnd.ibm.modcap',\n        'irm' => 'application/vnd.ibm.rights-management',\n        'sc' => 'application/vnd.ibm.secure-container',\n        'icc' => 'application/vnd.iccprofile',\n        'igl' => 'application/vnd.igloader',\n        'ivp' => 'application/vnd.immervision-ivp',\n        'ivu' => 'application/vnd.immervision-ivu',\n        'igm' => 'application/vnd.insors.igm',\n        'xpw' => 'application/vnd.intercon.formnet',\n        'i2g' => 'application/vnd.intergeo',\n        'qbo' => 'application/vnd.intu.qbo',\n        'qfx' => 'application/vnd.intu.qfx',\n        'rcprofile' => 'application/vnd.ipunplugged.rcprofile',\n        'irp' => 'application/vnd.irepository.package+xml',\n        'xpr' => 'application/vnd.is-xpr',\n        'fcs' => 'application/vnd.isac.fcs',\n        'jam' => 'application/vnd.jam',\n        'rms' => 'application/vnd.jcp.javame.midlet-rms',\n        'jisp' => 'application/vnd.jisp',\n        'joda' => 'application/vnd.joost.joda-archive',\n        'ktz' => 'application/vnd.kahootz',\n        'karbon' => 'application/vnd.kde.karbon',\n        'chrt' => 'application/vnd.kde.kchart',\n        'kfo' => 'application/vnd.kde.kformula',\n        'flw' => 'application/vnd.kde.kivio',\n        'kon' => 'application/vnd.kde.kontour',\n        'kpr' => 'application/vnd.kde.kpresenter',\n        'ksp' => 'application/vnd.kde.kspread',\n        'kwd' => 'application/vnd.kde.kword',\n        'htke' => 'application/vnd.kenameaapp',\n        'kia' => 'application/vnd.kidspiration',\n        'kne' => 'application/vnd.kinar',\n        'skp' => 'application/vnd.koan',\n        'sse' => 'application/vnd.kodak-descriptor',\n        'lasxml' => 'application/vnd.las.las+xml',\n        'lbd' => 'application/vnd.llamagraphics.life-balance.desktop',\n        'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',\n        '123' => 'application/vnd.lotus-1-2-3',\n        'apr' => 'application/vnd.lotus-approach',\n        'pre' => 'application/vnd.lotus-freelance',\n        'nsf' => 'application/vnd.lotus-notes',\n        'org' => 'application/vnd.lotus-organizer',\n        'scm' => 'application/vnd.lotus-screencam',\n        'lwp' => 'application/vnd.lotus-wordpro',\n        'portpkg' => 'application/vnd.macports.portpkg',\n        'mcd' => 'application/vnd.mcd',\n        'mc1' => 'application/vnd.medcalcdata',\n        'cdkey' => 'application/vnd.mediastation.cdkey',\n        'mwf' => 'application/vnd.mfer',\n        'mfm' => 'application/vnd.mfmp',\n        'flo' => 'application/vnd.micrografx.flo',\n        'igx' => 'application/vnd.micrografx.igx',\n        'mif' => 'application/vnd.mif',\n        'daf' => 'application/vnd.mobius.daf',\n        'dis' => 'application/vnd.mobius.dis',\n        'mbk' => 'application/vnd.mobius.mbk',\n        'mqy' => 'application/vnd.mobius.mqy',\n        'msl' => 'application/vnd.mobius.msl',\n        'plc' => 'application/vnd.mobius.plc',\n        'txf' => 'application/vnd.mobius.txf',\n        'mpn' => 'application/vnd.mophun.application',\n        'mpc' => 'application/vnd.mophun.certificate',\n        'xul' => 'application/vnd.mozilla.xul+xml',\n        'cil' => 'application/vnd.ms-artgalry',\n        'cab' => 'application/vnd.ms-cab-compressed',\n        'xls' => 'application/vnd.ms-excel',\n        'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12',\n        'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n        'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12',\n        'xltm' => 'application/vnd.ms-excel.template.macroenabled.12',\n        'eot' => 'application/vnd.ms-fontobject',\n        'chm' => 'application/vnd.ms-htmlhelp',\n        'ims' => 'application/vnd.ms-ims',\n        'lrm' => 'application/vnd.ms-lrm',\n        'thmx' => 'application/vnd.ms-officetheme',\n        'cat' => 'application/vnd.ms-pki.seccat',\n        'stl' => 'application/vnd.ms-pki.stl',\n        'ppt' => 'application/vnd.ms-powerpoint',\n        'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12',\n        'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12',\n        'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12',\n        'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',\n        'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12',\n        'mpp' => 'application/vnd.ms-project',\n        'docm' => 'application/vnd.ms-word.document.macroenabled.12',\n        'dotm' => 'application/vnd.ms-word.template.macroenabled.12',\n        'wps' => 'application/vnd.ms-works',\n        'wpl' => 'application/vnd.ms-wpl',\n        'xps' => 'application/vnd.ms-xpsdocument',\n        'mseq' => 'application/vnd.mseq',\n        'mus' => 'application/vnd.musician',\n        'msty' => 'application/vnd.muvee.style',\n        'taglet' => 'application/vnd.mynfc',\n        'nlu' => 'application/vnd.neurolanguage.nlu',\n        'ntf' => 'application/vnd.nitf',\n        'nnd' => 'application/vnd.noblenet-directory',\n        'nns' => 'application/vnd.noblenet-sealer',\n        'nnw' => 'application/vnd.noblenet-web',\n        'ngdat' => 'application/vnd.nokia.n-gage.data',\n        'n-gage' => 'application/vnd.nokia.n-gage.symbian.install',\n        'rpst' => 'application/vnd.nokia.radio-preset',\n        'rpss' => 'application/vnd.nokia.radio-presets',\n        'edm' => 'application/vnd.novadigm.edm',\n        'edx' => 'application/vnd.novadigm.edx',\n        'ext' => 'application/vnd.novadigm.ext',\n        'odc' => 'application/vnd.oasis.opendocument.chart',\n        'otc' => 'application/vnd.oasis.opendocument.chart-template',\n        'odb' => 'application/vnd.oasis.opendocument.database',\n        'odf' => 'application/vnd.oasis.opendocument.formula',\n        'odft' => 'application/vnd.oasis.opendocument.formula-template',\n        'odg' => 'application/vnd.oasis.opendocument.graphics',\n        'otg' => 'application/vnd.oasis.opendocument.graphics-template',\n        'odi' => 'application/vnd.oasis.opendocument.image',\n        'oti' => 'application/vnd.oasis.opendocument.image-template',\n        'odp' => 'application/vnd.oasis.opendocument.presentation',\n        'otp' => 'application/vnd.oasis.opendocument.presentation-template',\n        'ods' => 'application/vnd.oasis.opendocument.spreadsheet',\n        'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template',\n        'odt' => 'application/vnd.oasis.opendocument.text',\n        'odm' => 'application/vnd.oasis.opendocument.text-master',\n        'ott' => 'application/vnd.oasis.opendocument.text-template',\n        'oth' => 'application/vnd.oasis.opendocument.text-web',\n        'xo' => 'application/vnd.olpc-sugar',\n        'dd2' => 'application/vnd.oma.dd2+xml',\n        'oxt' => 'application/vnd.openofficeorg.extension',\n        'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n        'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',\n        'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n        'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',\n        'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n        'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n        'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n        'mgp' => 'application/vnd.osgeo.mapguide.package',\n        'dp' => 'application/vnd.osgi.dp',\n        'esa' => 'application/vnd.osgi.subsystem',\n        'pdb' => 'application/vnd.palm',\n        'paw' => 'application/vnd.pawaafile',\n        'str' => 'application/vnd.pg.format',\n        'ei6' => 'application/vnd.pg.osasli',\n        'efif' => 'application/vnd.picsel',\n        'wg' => 'application/vnd.pmi.widget',\n        'plf' => 'application/vnd.pocketlearn',\n        'pbd' => 'application/vnd.powerbuilder6',\n        'box' => 'application/vnd.previewsystems.box',\n        'mgz' => 'application/vnd.proteus.magazine',\n        'qps' => 'application/vnd.publishare-delta-tree',\n        'ptid' => 'application/vnd.pvi.ptid1',\n        'qxd' => 'application/vnd.quark.quarkxpress',\n        'bed' => 'application/vnd.realvnc.bed',\n        'mxl' => 'application/vnd.recordare.musicxml',\n        'musicxml' => 'application/vnd.recordare.musicxml+xml',\n        'cryptonote' => 'application/vnd.rig.cryptonote',\n        'cod' => 'application/vnd.rim.cod',\n        'rm' => 'application/vnd.rn-realmedia',\n        'rmvb' => 'application/vnd.rn-realmedia-vbr',\n        'link66' => 'application/vnd.route66.link66+xml',\n        'st' => 'application/vnd.sailingtracker.track',\n        'see' => 'application/vnd.seemail',\n        'sema' => 'application/vnd.sema',\n        'semd' => 'application/vnd.semd',\n        'semf' => 'application/vnd.semf',\n        'ifm' => 'application/vnd.shana.informed.formdata',\n        'itp' => 'application/vnd.shana.informed.formtemplate',\n        'iif' => 'application/vnd.shana.informed.interchange',\n        'ipk' => 'application/vnd.shana.informed.package',\n        'twd' => 'application/vnd.simtech-mindmapper',\n        'mmf' => 'application/vnd.smaf',\n        'teacher' => 'application/vnd.smart.teacher',\n        'sdkm' => 'application/vnd.solent.sdkm+xml',\n        'dxp' => 'application/vnd.spotfire.dxp',\n        'sfs' => 'application/vnd.spotfire.sfs',\n        'sdc' => 'application/vnd.stardivision.calc',\n        'sda' => 'application/vnd.stardivision.draw',\n        'sdd' => 'application/vnd.stardivision.impress',\n        'smf' => 'application/vnd.stardivision.math',\n        'sdw' => 'application/vnd.stardivision.writer',\n        'sgl' => 'application/vnd.stardivision.writer-global',\n        'smzip' => 'application/vnd.stepmania.package',\n        'sm' => 'application/vnd.stepmania.stepchart',\n        'sxc' => 'application/vnd.sun.xml.calc',\n        'stc' => 'application/vnd.sun.xml.calc.template',\n        'sxd' => 'application/vnd.sun.xml.draw',\n        'std' => 'application/vnd.sun.xml.draw.template',\n        'sxi' => 'application/vnd.sun.xml.impress',\n        'sti' => 'application/vnd.sun.xml.impress.template',\n        'sxm' => 'application/vnd.sun.xml.math',\n        'sxw' => 'application/vnd.sun.xml.writer',\n        'sxg' => 'application/vnd.sun.xml.writer.global',\n        'stw' => 'application/vnd.sun.xml.writer.template',\n        'sus' => 'application/vnd.sus-calendar',\n        'svd' => 'application/vnd.svd',\n        'sis' => 'application/vnd.symbian.install',\n        'xsm' => 'application/vnd.syncml+xml',\n        'bdm' => 'application/vnd.syncml.dm+wbxml',\n        'xdm' => 'application/vnd.syncml.dm+xml',\n        'tao' => 'application/vnd.tao.intent-module-archive',\n        'pcap' => 'application/vnd.tcpdump.pcap',\n        'tmo' => 'application/vnd.tmobile-livetv',\n        'tpt' => 'application/vnd.trid.tpt',\n        'mxs' => 'application/vnd.triscape.mxs',\n        'tra' => 'application/vnd.trueapp',\n        'ufd' => 'application/vnd.ufdl',\n        'utz' => 'application/vnd.uiq.theme',\n        'umj' => 'application/vnd.umajin',\n        'unityweb' => 'application/vnd.unity',\n        'uoml' => 'application/vnd.uoml+xml',\n        'vcx' => 'application/vnd.vcx',\n        'vsd' => 'application/vnd.visio',\n        'vis' => 'application/vnd.visionary',\n        'vsf' => 'application/vnd.vsf',\n        'wbxml' => 'application/vnd.wap.wbxml',\n        'wmlc' => 'application/vnd.wap.wmlc',\n        'wmlsc' => 'application/vnd.wap.wmlscriptc',\n        'wtb' => 'application/vnd.webturbo',\n        'nbp' => 'application/vnd.wolfram.player',\n        'wpd' => 'application/vnd.wordperfect',\n        'wqd' => 'application/vnd.wqd',\n        'stf' => 'application/vnd.wt.stf',\n        'xar' => 'application/vnd.xara',\n        'xfdl' => 'application/vnd.xfdl',\n        'hvd' => 'application/vnd.yamaha.hv-dic',\n        'hvs' => 'application/vnd.yamaha.hv-script',\n        'hvp' => 'application/vnd.yamaha.hv-voice',\n        'osf' => 'application/vnd.yamaha.openscoreformat',\n        'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml',\n        'saf' => 'application/vnd.yamaha.smaf-audio',\n        'spf' => 'application/vnd.yamaha.smaf-phrase',\n        'cmp' => 'application/vnd.yellowriver-custom-menu',\n        'zir' => 'application/vnd.zul',\n        'zaz' => 'application/vnd.zzazz.deck+xml',\n        'vxml' => 'application/voicexml+xml',\n        'wgt' => 'application/widget',\n        'hlp' => 'application/winhlp',\n        'wsdl' => 'application/wsdl+xml',\n        'wspolicy' => 'application/wspolicy+xml',\n        '7z' => 'application/x-7z-compressed',\n        'abw' => 'application/x-abiword',\n        'ace' => 'application/x-ace-compressed',\n        'dmg' => 'application/x-apple-diskimage',\n        'aab' => 'application/x-authorware-bin',\n        'aam' => 'application/x-authorware-map',\n        'aas' => 'application/x-authorware-seg',\n        'bcpio' => 'application/x-bcpio',\n        'torrent' => 'application/x-bittorrent',\n        'blb' => 'application/x-blorb',\n        'bz' => 'application/x-bzip',\n        'bz2' => 'application/x-bzip2',\n        'cbr' => 'application/x-cbr',\n        'vcd' => 'application/x-cdlink',\n        'cfs' => 'application/x-cfs-compressed',\n        'chat' => 'application/x-chat',\n        'pgn' => 'application/x-chess-pgn',\n        'nsc' => 'application/x-conference',\n        'cpio' => 'application/x-cpio',\n        'csh' => 'application/x-csh',\n        'deb' => 'application/x-debian-package',\n        'dgc' => 'application/x-dgc-compressed',\n        'dir' => 'application/x-director',\n        'wad' => 'application/x-doom',\n        'ncx' => 'application/x-dtbncx+xml',\n        'dtb' => 'application/x-dtbook+xml',\n        'res' => 'application/x-dtbresource+xml',\n        'dvi' => 'application/x-dvi',\n        'evy' => 'application/x-envoy',\n        'eva' => 'application/x-eva',\n        'bdf' => 'application/x-font-bdf',\n        'gsf' => 'application/x-font-ghostscript',\n        'psf' => 'application/x-font-linux-psf',\n        'otf' => 'application/x-font-otf',\n        'pcf' => 'application/x-font-pcf',\n        'snf' => 'application/x-font-snf',\n        'ttf' => 'application/x-font-ttf',\n        'pfa' => 'application/x-font-type1',\n        'woff' => 'application/x-font-woff',\n        'arc' => 'application/x-freearc',\n        'spl' => 'application/x-futuresplash',\n        'gca' => 'application/x-gca-compressed',\n        'ulx' => 'application/x-glulx',\n        'gnumeric' => 'application/x-gnumeric',\n        'gramps' => 'application/x-gramps-xml',\n        'gtar' => 'application/x-gtar',\n        'hdf' => 'application/x-hdf',\n        'install' => 'application/x-install-instructions',\n        'iso' => 'application/x-iso9660-image',\n        'jnlp' => 'application/x-java-jnlp-file',\n        'latex' => 'application/x-latex',\n        'lzh' => 'application/x-lzh-compressed',\n        'mie' => 'application/x-mie',\n        'prc' => 'application/x-mobipocket-ebook',\n        'application' => 'application/x-ms-application',\n        'lnk' => 'application/x-ms-shortcut',\n        'wmd' => 'application/x-ms-wmd',\n        'wmz' => 'application/x-ms-wmz',\n        'xbap' => 'application/x-ms-xbap',\n        'mdb' => 'application/x-msaccess',\n        'obd' => 'application/x-msbinder',\n        'crd' => 'application/x-mscardfile',\n        'clp' => 'application/x-msclip',\n        'exe' => 'application/x-msdownload',\n        'mvb' => 'application/x-msmediaview',\n        'wmf' => 'application/x-msmetafile',\n        'mny' => 'application/x-msmoney',\n        'pub' => 'application/x-mspublisher',\n        'scd' => 'application/x-msschedule',\n        'trm' => 'application/x-msterminal',\n        'wri' => 'application/x-mswrite',\n        'nc' => 'application/x-netcdf',\n        'nzb' => 'application/x-nzb',\n        'p12' => 'application/x-pkcs12',\n        'p7b' => 'application/x-pkcs7-certificates',\n        'p7r' => 'application/x-pkcs7-certreqresp',\n        'rar' => 'application/x-rar',\n        'ris' => 'application/x-research-info-systems',\n        'sh' => 'application/x-sh',\n        'shar' => 'application/x-shar',\n        'swf' => 'application/x-shockwave-flash',\n        'xap' => 'application/x-silverlight-app',\n        'sql' => 'application/x-sql',\n        'sit' => 'application/x-stuffit',\n        'sitx' => 'application/x-stuffitx',\n        'srt' => 'application/x-subrip',\n        'sv4cpio' => 'application/x-sv4cpio',\n        'sv4crc' => 'application/x-sv4crc',\n        't3' => 'application/x-t3vm-image',\n        'gam' => 'application/x-tads',\n        'tar' => 'application/x-tar',\n        'tcl' => 'application/x-tcl',\n        'tex' => 'application/x-tex',\n        'tfm' => 'application/x-tex-tfm',\n        'texinfo' => 'application/x-texinfo',\n        'obj' => 'application/x-tgif',\n        'ustar' => 'application/x-ustar',\n        'src' => 'application/x-wais-source',\n        'der' => 'application/x-x509-ca-cert',\n        'fig' => 'application/x-xfig',\n        'xlf' => 'application/x-xliff+xml',\n        'xpi' => 'application/x-xpinstall',\n        'xz' => 'application/x-xz',\n        'z1' => 'application/x-zmachine',\n        'xaml' => 'application/xaml+xml',\n        'xdf' => 'application/xcap-diff+xml',\n        'xenc' => 'application/xenc+xml',\n        'xhtml' => 'application/xhtml+xml',\n        'xml' => 'application/xml',\n        'dtd' => 'application/xml-dtd',\n        'xop' => 'application/xop+xml',\n        'xpl' => 'application/xproc+xml',\n        'xslt' => 'application/xslt+xml',\n        'xspf' => 'application/xspf+xml',\n        'mxml' => 'application/xv+xml',\n        'yang' => 'application/yang',\n        'yin' => 'application/yin+xml',\n        'zip' => 'application/zip',\n        'adp' => 'audio/adpcm',\n        'au' => 'audio/basic',\n        'mid' => 'audio/midi',\n        'mp3' => 'audio/mpeg',\n        'mp4a' => 'audio/mp4',\n        'mpga' => 'audio/mpeg',\n        'oga' => 'audio/ogg',\n        's3m' => 'audio/s3m',\n        'sil' => 'audio/silk',\n        'uva' => 'audio/vnd.dece.audio',\n        'eol' => 'audio/vnd.digital-winds',\n        'dra' => 'audio/vnd.dra',\n        'dts' => 'audio/vnd.dts',\n        'dtshd' => 'audio/vnd.dts.hd',\n        'lvp' => 'audio/vnd.lucent.voice',\n        'pya' => 'audio/vnd.ms-playready.media.pya',\n        'ecelp4800' => 'audio/vnd.nuera.ecelp4800',\n        'ecelp7470' => 'audio/vnd.nuera.ecelp7470',\n        'ecelp9600' => 'audio/vnd.nuera.ecelp9600',\n        'rip' => 'audio/vnd.rip',\n        'weba' => 'audio/webm',\n        'aac' => 'audio/x-aac',\n        'aif' => 'audio/x-aiff',\n        'caf' => 'audio/x-caf',\n        'flac' => 'audio/x-flac',\n        'mka' => 'audio/x-matroska',\n        'm3u' => 'audio/x-mpegurl',\n        'wax' => 'audio/x-ms-wax',\n        'wma' => 'audio/x-ms-wma',\n        'ram' => 'audio/x-pn-realaudio',\n        'rmp' => 'audio/x-pn-realaudio-plugin',\n        'wav' => 'audio/x-wav',\n        'xm' => 'audio/xm',\n        'cdx' => 'chemical/x-cdx',\n        'cif' => 'chemical/x-cif',\n        'cmdf' => 'chemical/x-cmdf',\n        'cml' => 'chemical/x-cml',\n        'csml' => 'chemical/x-csml',\n        'xyz' => 'chemical/x-xyz',\n        'bmp' => 'image/bmp',\n        'cgm' => 'image/cgm',\n        'g3' => 'image/g3fax',\n        'gif' => 'image/gif',\n        'ief' => 'image/ief',\n        'jpg' => 'image/jpeg',\n        'jpeg' => 'image/jpeg',\n        'ktx' => 'image/ktx',\n        'png' => 'image/png',\n        'btif' => 'image/prs.btif',\n        'sgi' => 'image/sgi',\n        'svg' => 'image/svg+xml',\n        'tiff' => 'image/tiff',\n        'psd' => 'image/vnd.adobe.photoshop',\n        'uvi' => 'image/vnd.dece.graphic',\n        'djvu' => 'image/vnd.djvu',\n        'dwg' => 'image/vnd.dwg',\n        'dxf' => 'image/vnd.dxf',\n        'fbs' => 'image/vnd.fastbidsheet',\n        'fpx' => 'image/vnd.fpx',\n        'fst' => 'image/vnd.fst',\n        'mmr' => 'image/vnd.fujixerox.edmics-mmr',\n        'rlc' => 'image/vnd.fujixerox.edmics-rlc',\n        'mdi' => 'image/vnd.ms-modi',\n        'wdp' => 'image/vnd.ms-photo',\n        'npx' => 'image/vnd.net-fpx',\n        'wbmp' => 'image/vnd.wap.wbmp',\n        'xif' => 'image/vnd.xiff',\n        'webp' => 'image/webp',\n        '3ds' => 'image/x-3ds',\n        'ras' => 'image/x-cmu-raster',\n        'cmx' => 'image/x-cmx',\n        'fh' => 'image/x-freehand',\n        'ico' => 'image/x-icon',\n        'sid' => 'image/x-mrsid-image',\n        'pcx' => 'image/x-pcx',\n        'pic' => 'image/x-pict',\n        'pnm' => 'image/x-portable-anymap',\n        'pbm' => 'image/x-portable-bitmap',\n        'pgm' => 'image/x-portable-graymap',\n        'ppm' => 'image/x-portable-pixmap',\n        'rgb' => 'image/x-rgb',\n        'tga' => 'image/x-tga',\n        'xbm' => 'image/x-xbitmap',\n        'xpm' => 'image/x-xpixmap',\n        'xwd' => 'image/x-xwindowdump',\n        'eml' => 'message/rfc822',\n        'igs' => 'model/iges',\n        'msh' => 'model/mesh',\n        'dae' => 'model/vnd.collada+xml',\n        'dwf' => 'model/vnd.dwf',\n        'gdl' => 'model/vnd.gdl',\n        'gtw' => 'model/vnd.gtw',\n        'mts' => 'model/vnd.mts',\n        'vtu' => 'model/vnd.vtu',\n        'wrl' => 'model/vrml',\n        'x3db' => 'model/x3d+binary',\n        'x3dv' => 'model/x3d+vrml',\n        'x3d' => 'model/x3d+xml',\n        'appcache' => 'text/cache-manifest',\n        'ics' => 'text/calendar',\n        'css' => 'text/css',\n        'csv' => 'text/csv',\n        'html' => 'text/html',\n        'n3' => 'text/n3',\n        'txt' => 'text/plain',\n        'dsc' => 'text/prs.lines.tag',\n        'rtx' => 'text/richtext',\n        'rtf' => 'text/rtf',\n        'sgml' => 'text/sgml',\n        'tsv' => 'text/tab-separated-values',\n        't' => 'text/troff',\n        'ttl' => 'text/turtle',\n        'uri' => 'text/uri-list',\n        'vcard' => 'text/vcard',\n        'curl' => 'text/vnd.curl',\n        'dcurl' => 'text/vnd.curl.dcurl',\n        'scurl' => 'text/vnd.curl.scurl',\n        'mcurl' => 'text/vnd.curl.mcurl',\n        'sub' => 'text/vnd.dvb.subtitle',\n        'fly' => 'text/vnd.fly',\n        'flx' => 'text/vnd.fmi.flexstor',\n        'gv' => 'text/vnd.graphviz',\n        '3dml' => 'text/vnd.in3d.3dml',\n        'spot' => 'text/vnd.in3d.spot',\n        'jad' => 'text/vnd.sun.j2me.app-descriptor',\n        'wml' => 'text/vnd.wap.wml',\n        'wmls' => 'text/vnd.wap.wmlscript',\n        's' => 'text/x-asm',\n        'c' => 'text/x-c',\n        'f' => 'text/x-fortran',\n        'p' => 'text/x-pascal',\n        'java' => 'text/x-java-source',\n        'opml' => 'text/x-opml',\n        'nfo' => 'text/x-nfo',\n        'etx' => 'text/x-setext',\n        'sfv' => 'text/x-sfv',\n        'uu' => 'text/x-uuencode',\n        'vcs' => 'text/x-vcalendar',\n        'vcf' => 'text/x-vcard',\n        '3gp' => 'video/3gpp',\n        '3g2' => 'video/3gpp2',\n        'h261' => 'video/h261',\n        'h263' => 'video/h263',\n        'h264' => 'video/h264',\n        'jpgv' => 'video/jpeg',\n        'jpm' => 'video/jpm',\n        'mj2' => 'video/mj2',\n        'mp4' => 'video/mp4',\n        'mpeg' => 'video/mpeg',\n        'ogv' => 'video/ogg',\n        'mov' => 'video/quicktime',\n        'qt' => 'video/quicktime',\n        'uvh' => 'video/vnd.dece.hd',\n        'uvm' => 'video/vnd.dece.mobile',\n        'uvp' => 'video/vnd.dece.pd',\n        'uvs' => 'video/vnd.dece.sd',\n        'uvv' => 'video/vnd.dece.video',\n        'dvb' => 'video/vnd.dvb.file',\n        'fvt' => 'video/vnd.fvt',\n        'mxu' => 'video/vnd.mpegurl',\n        'pyv' => 'video/vnd.ms-playready.media.pyv',\n        'uvu' => 'video/vnd.uvvu.mp4',\n        'viv' => 'video/vnd.vivo',\n        'webm' => 'video/webm',\n        'f4v' => 'video/x-f4v',\n        'fli' => 'video/x-fli',\n        'flv' => 'video/x-flv',\n        'm4v' => 'video/x-m4v',\n        'mkv' => 'video/x-matroska',\n        'mng' => 'video/x-mng',\n        'asf' => 'video/x-ms-asf',\n        'vob' => 'video/x-ms-vob',\n        'wm' => 'video/x-ms-wm',\n        'wmv' => 'video/x-ms-wmv',\n        'wmx' => 'video/x-ms-wmx',\n        'wvx' => 'video/x-ms-wvx',\n        'avi' => 'video/x-msvideo',\n        'movie' => 'video/x-sgi-movie',\n        'smv' => 'video/x-smv',\n        'ice' => 'x-conference/x-cooltalk',\n    ];\n\n    /**\n     * Get the MIME type for a file based on the file's extension.\n     *\n     * @param  string  $filename\n     * @return string\n     */\n    public static function from($filename)\n    {\n        $extension = pathinfo($filename, PATHINFO_EXTENSION);\n\n        return self::getMimeTypeFromExtension($extension);\n    }\n\n    /**\n     * Get the MIME type for a given extension or return all mimes.\n     *\n     * @param  string  $extension\n     * @return string|array\n     */\n    public static function get($extension = null)\n    {\n        return $extension ? self::getMimeTypeFromExtension($extension) : self::$mimes;\n    }\n\n    /**\n     * Search for the extension of a given MIME type.\n     *\n     * @param  string  $mimeType\n     * @return string|null\n     */\n    public static function search($mimeType)\n    {\n        return array_search($mimeType, array_merge(self::$mimes,config('aetherupload.extra_mime_types'))) ?: null;\n    }\n\n    /**\n     * Get the MIME type for a given extension.\n     *\n     * @param  string  $extension\n     * @return string\n     */\n    protected static function getMimeTypeFromExtension($extension)\n    {\n        return isset(self::$mimes[$extension]) ? self::$mimes[$extension] : 'application/octet-stream';\n    }\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/PartialResource.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\File;\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass PartialResource\n{\n    public $disk;\n    public $tempName;\n    public $group;\n    public $groupDir;\n    public $groupSubDir;\n    public $header;\n    public $path;\n    public $realPath;\n    private $chunkIndex = null;\n\n    public function __construct($tempBaseName, $extension, $groupSubDir)\n    {\n        $this->disk = Storage::disk('local');\n        $this->tempName = Util::getFileName($tempBaseName, $extension);\n        $this->group = ConfigMapper::get('group');\n        $this->groupDir = ConfigMapper::get('group_dir');\n        $this->groupSubDir = $groupSubDir;\n        $this->path = $this->getPath();\n        $this->realPath = $this->getRealPath();\n        $this->header = new Header($tempBaseName);\n    }\n\n    public function create()\n    {\n        if ( $this->createGroupSubDir() === false ) {\n            throw new \\Exception(trans('aetherupload::messages.create_subfolder_fail'));\n        }\n\n        if ( $this->disk->put($this->path, '') === false ) {\n            throw new \\Exception(trans('aetherupload::messages.create_resource_fail'));\n        }\n\n    }\n\n    public function append($chunkRealPath)\n    {\n        $handle = @fopen($chunkRealPath, 'rb');\n\n        if ( File::append($this->realPath, $handle) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.write_resource_fail'));\n        }\n\n        fclose($handle);\n\n    }\n\n    public function delete()\n    {\n        if ( $this->disk->delete($this->path) === false ) {\n            throw new \\Exception(trans('aetherupload::messages.delete_resource_fail'));\n        }\n\n    }\n\n    public function rename($completeName)\n    {\n        $completePath = $this->getCompletePath($completeName);\n\n        if ( $this->disk->exists($completePath) === false ) {\n\n            if ( $this->disk->move($this->path, $completePath) === false ) {\n                throw new \\Exception(trans('aetherupload::messages.rename_resource_fail'));\n            }\n        }\n    }\n\n    public function filterBySize($resourceSize)\n    {\n        $maxSize = (int)ConfigMapper::get('resource_maxsize');\n\n        if ( (int)$resourceSize === 0 || ((int)$resourceSize > $maxSize && $maxSize !== 0) ) {\n            throw new \\Exception(trans('aetherupload::messages.invalid_resource_size'));\n        }\n\n    }\n\n    public function filterByExtension($resourceExt)\n    {\n        $extensions = ConfigMapper::get('resource_extensions');\n\n        if ( empty($resourceExt) || (empty($extensions) === false && in_array($resourceExt, $extensions) === false) || in_array($resourceExt, ConfigMapper::get('forbidden_extensions')) === true ) {\n            throw new \\Exception(trans('aetherupload::messages.invalid_resource_type'));\n        }\n    }\n\n    public function checkSize()\n    {\n        $this->filterBySize(filesize($this->realPath));\n    }\n\n    public function checkMimeType()\n    {\n        $extension = MimeType::search(mime_content_type($this->realPath));\n\n        $this->filterByExtension($extension);\n    }\n\n    public function exists()\n    {\n        return $this->disk->exists($this->path);\n    }\n\n    public function createGroupSubDir()\n    {\n        $groupDir = dirname($groupSubDir = $this->getGroupSubDirPath());\n\n        if ( $this->disk->exists($groupDir) === false ) {\n            return false;\n        }\n\n        if ( $this->disk->exists($groupSubDir) === false ) {\n            if ( $this->disk->makeDirectory($groupSubDir) === false ) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    public function calculateHash()\n    {\n        return md5_file($this->realPath);\n    }\n\n    public function getPath()\n    {\n        return ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . $this->groupDir . DIRECTORY_SEPARATOR . $this->groupSubDir . DIRECTORY_SEPARATOR . $this->tempName . '.part';\n    }\n\n    public function getRealPath()\n    {\n        return storage_path('app/') . $this->path;\n    }\n\n    public function getCompletePath($name)\n    {\n        return ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . $this->groupDir . DIRECTORY_SEPARATOR . $this->groupSubDir . DIRECTORY_SEPARATOR . $name;\n    }\n\n    public function getGroupSubDirPath()\n    {\n        return ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . $this->groupDir . DIRECTORY_SEPARATOR . $this->groupSubDir;\n    }\n\n    public function __set($property, $value)\n    {\n        if ( $property === 'chunkIndex' ) {\n            $this->header->write($value);\n        }\n    }\n\n    public function __get($property)\n    {\n        if ( $property === 'chunkIndex' ) {\n            return $this->header->read();\n        }\n\n        return null;\n    }\n\n    public function __unset($property)\n    {\n        if ( $property === 'chunkIndex' ) {\n            $this->header->delete();\n        }\n    }\n\n    public function __call($name, $arguments)\n    {\n        if ( method_exists($this->disk, $name) ) {\n            return call_user_func_array([$this->disk, $name], $arguments);\n        }\n\n        return null;\n    }\n\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/RedisAdapter.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse League\\Flysystem\\Config;\nuse League\\Flysystem\\Adapter\\AbstractAdapter;\nuse League\\Flysystem\\Adapter\\Polyfill\\NotSupportingVisibilityTrait;\n\nclass RedisAdapter extends AbstractAdapter\n{\n    use NotSupportingVisibilityTrait;\n\n    protected $client;\n\n    public function __construct(RedisClient $client)\n    {\n        $this->client = $client;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write($path, $contents, Config $config)\n    {\n        try {\n            $this->client->write(basename($path), $contents);\n        } catch ( \\Exception $e ) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeStream($path, $resource, Config $config)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function update($path, $contents, Config $config)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function updateStream($path, $resource, Config $config)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rename($path, $newPath)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function copy($path, $newpath)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function delete($path)\n    {\n        try {\n            $this->client->delete(basename($path));\n        } catch ( \\Exception $e ) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function deleteDir($dirname)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createDir($dirname, Config $config)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function has($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($path)\n    {\n\n        try {\n            $content = $this->client->read(basename($path));\n        } catch ( \\Exception $e ) {\n            return false;\n        }\n\n        $result['contents'] = $content;\n\n        return $result;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readStream($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function listContents($directory = '', $recursive = false)\n    {\n        try {\n            $result = $this->client->listContents($directory);\n        } catch ( \\Exception $e ) {\n            return [];\n        }\n\n        return array_filter($result);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMetadata($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSize($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMimetype($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getTimestamp($path)\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function applyPathPrefix($path)\n    {\n        return false;\n    }\n\n    public function exists($path)\n    {\n        try {\n            $result = $this->client->exists(basename($path));\n        } catch ( \\Exception $e ) {\n            return false;\n        }\n\n        if ( $result !== 1 ) {\n            return false;\n        }\n\n        return true;\n    }\n\n    public function getClient()\n    {\n        return $this->client;\n    }\n\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/RedisClient.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Redis;\n\nclass RedisClient\n{\n\n    public function write($field, $content)\n    {\n        $result = Redis::hset('aetherupload_header', $field, $content);\n\n        if ( $result !== 0 && $result !== 1 ) {\n            throw new \\Exception('write error');\n        }\n\n    }\n\n\n    public function read($field)\n    {\n        $result = Redis::hget('aetherupload_header', $field);\n\n        if ( $result === null ) {\n            throw new \\Exception('read error');\n        }\n\n        return $result;\n    }\n\n\n    public function delete($field)\n    {\n        $result = Redis::hdel('aetherupload_header', $field);\n\n        if ( $result === 0 ) {\n            throw new \\Exception('delete error');\n        }\n    }\n\n    public function exists($field)\n    {\n        $result = Redis::hexists('aetherupload_header', $field);\n\n        if ( $result === 1 ) {\n            return true;\n        } elseif ( $result === 0 ) {\n            return false;\n        } else {\n            throw new \\Exception('exists error');\n        }\n    }\n\n    public function listContents($directory)\n    {\n        $result = [];\n        $contents = Redis::hkeys('aetherupload_header');\n\n        if ( $contents === 0 ) {\n            throw new \\Exception('list error');\n        }\n\n        foreach ( $contents as $content ) {\n            $arr['path'] = $directory . DIRECTORY_SEPARATOR . $content;\n            $arr['type'] = 'file';\n            $result[] = $arr;\n        }\n\n        return $result;\n    }\n\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/RedisSavedPath.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Redis;\n\nclass RedisSavedPath\n{\n\n    public static function exists($key)\n    {\n        $result = Redis::hexists('aetherupload_resource', $key);\n\n        if ( $result === 1 ) {\n            return true;\n        } elseif ( $result === 0 ) {\n            return false;\n        } else {\n            throw new \\Exception('exists error');\n        }\n    }\n\n    public static function get($key)\n    {\n        $result = Redis::hget('aetherupload_resource', $key);\n\n        if ( $result === null ) {\n            throw new \\Exception('read error');\n        }\n\n        return $result;\n    }\n\n    public static function set($key, $savedPath)\n    {\n        $result = Redis::hset('aetherupload_resource', $key, $savedPath);\n\n        if ( $result !== 0 && $result !== 1 ) {\n            throw new \\Exception('write error');\n        }\n\n        return true;\n    }\n\n    public static function setMulti($keyArr)\n    {\n        Redis::hmset('aetherupload_resource', $keyArr);\n\n        return true;\n    }\n\n    public static function delete($key)\n    {\n        $result = Redis::hdel('aetherupload_resource', $key);\n\n        if ( $result === 0 ) {\n            throw new \\Exception('delete error');\n        }\n\n        return true;\n    }\n\n    public static function deleteAll()\n    {\n        Redis::del('aetherupload_resource');\n\n        return true;\n    }\n\n    public static function getKey($group, $hash)\n    {\n        return $group . '_' . $hash;\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Resource.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Storage;\n\nclass Resource\n{\n    public $disk;\n    public $name;\n    public $group;\n    public $groupDir;\n    public $groupSubDir;\n    public $path;\n    public $realPath;\n\n    public function __construct($group, $groupDir, $groupSubDir, $name)\n    {\n        $this->disk = Storage::disk('local');\n        $this->name = $name;\n        $this->group = $group;\n        $this->groupDir = $groupDir;\n        $this->groupSubDir = $groupSubDir;\n        $this->path = $this->getPath();\n        $this->realPath = $this->getRealPath();\n    }\n\n    public function getPath()\n    {\n        return ConfigMapper::get('root_dir') . DIRECTORY_SEPARATOR . $this->groupDir . DIRECTORY_SEPARATOR . $this->groupSubDir . DIRECTORY_SEPARATOR . $this->name;\n    }\n\n    public function getRealPath()\n    {\n        return storage_path('app/') . $this->path;\n    }\n\n    public function __call($name, $arguments)\n    {\n        if ( method_exists($this->disk, $name) ) {\n            return call_user_func_array([$this->disk, $name], $arguments);\n        }\n\n        return null;\n    }\n\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/ResourceController.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Request;\n\nclass ResourceController extends \\Illuminate\\Routing\\Controller\n{\n\n    public function display($uri)\n    {\n        $resource = null;\n\n        try {\n\n            $params = SavedPathResolver::decode(Request::route('uri'));\n\n            ConfigMapper::instance()->applyGroupConfig($params->group);\n\n            $resource = new Resource($params->group, ConfigMapper::get('group_dir'), $params->groupSubDir, $params->resourceName);\n\n            if ( $resource->exists($resource->path) === false ) {\n                throw new \\Exception;\n            }\n\n        } catch ( \\Exception $e ) {\n\n            abort(404);\n        }\n\n        return response()->download($resource->getRealPath(), '', [], 'inline');\n    }\n\n    public function download($uri, $newName = null)\n    {\n        $resource = $newResource = null;\n\n        try {\n\n            $params = SavedPathResolver::decode(Request::route('uri'));\n\n            ConfigMapper::instance()->applyGroupConfig($params->group);\n\n            $resource = new Resource($params->group, ConfigMapper::get('group_dir'), $params->groupSubDir, $params->resourceName);\n\n            if ( $resource->exists($resource->path) === false ) {\n                throw new \\Exception;\n            }\n\n            $newResource = Util::getFileName($newName, pathinfo($resource->name, PATHINFO_EXTENSION));\n\n        } catch ( \\Exception $e ) {\n\n            abort(404);\n        }\n\n        return response()->download($resource->getRealPath(), $newResource, [], 'attachment');\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Responser.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nclass Responser\n{\n\n    public static function returnResult($result)\n    {\n        return response()->json($result);\n    }\n\n    public static function reportError($result, $message)\n    {\n        $result['error'] = $message;\n\n        return response()->json($result);\n    }\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/SavedPathResolver.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nclass SavedPathResolver\n{\n\n    public static function encode($group, $groupSubDir, $name)\n    {\n        return $group . '_' . $groupSubDir . '_' . $name;\n    }\n\n    public static function decode($savedPath)\n    {\n        list($group, $groupSubDir, $name) = explode('_', $savedPath);\n\n        return (object)[\n            'group'        => $group,\n            'groupSubDir'  => $groupSubDir,\n            'resourceName' => $name,\n        ];\n    }\n\n}"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/UploadController.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nuse Illuminate\\Support\\Facades\\Request;\n\nclass UploadController extends \\App\\Http\\Controllers\\Controller\n{\n\n    public function __construct()\n    {\n        \\App::setLocale(Request::input('locale', 'en'));\n\n        // add AetherUploadCORS middleware to the storage server when distributed deployment is enabled\n        if ( Util::isDistributedStorageHost() ) {\n            $this->middleware(ConfigMapper::get('distributed_deployment_middleware_cors'));\n        }\n    }\n\n    /**\n     * Preprocess the upload request\n     * @return \\Illuminate\\Http\\JsonResponse\n     */\n    public function preprocess()\n    {\n        $this->validate(request(), [\n            'resource_name' => 'required',\n            'resource_size' => 'required',\n            'group'         => 'required',\n            'resource_hash' => 'present',\n        ]);\n\n        $resourceName = Request::input('resource_name');\n        $resourceSize = Request::input('resource_size');\n        $resourceHash = Request::input('resource_hash');\n        $group = Request::input('group');\n\n        $result = [\n            'error'                => 0,\n            'chunkSize'            => 0,\n            'groupSubDir'          => '',\n            'resourceTempBaseName' => '',\n            'resourceExt'          => '',\n            'savedPath'            => '',\n        ];\n\n        try {\n\n            // prevents uploading files to the application server when distributed deployment is enabled\n            if ( Util::isDistributedWebHost() ) {\n                throw new \\Exception(trans('aetherupload::messages.upload_error'));\n            }\n\n            ConfigMapper::instance()->applyGroupConfig($group);\n\n            $result['resourceTempBaseName'] = $resourceTempBaseName = Util::generateTempName();\n            $result['resourceExt'] = $resourceExt = strtolower(pathinfo($resourceName, PATHINFO_EXTENSION));\n            $result['groupSubDir'] = $groupSubDir = Util::generateSubDirName();\n            $result['chunkSize'] = ConfigMapper::get('chunk_size');\n\n            $partialResource = new PartialResource($resourceTempBaseName, $resourceExt, $groupSubDir);\n\n            $partialResource->filterBySize($resourceSize);\n\n            $partialResource->filterByExtension($resourceExt);\n\n            // determine if this upload meets the condition of instant completion\n            if ( ConfigMapper::get('instant_completion') === true && !empty($resourceHash) && RedisSavedPath::exists($savedPathKey = RedisSavedPath::getKey($group, $resourceHash)) === true ) {\n                $result['savedPath'] = RedisSavedPath::get($savedPathKey);\n\n                return Responser::returnResult($result);\n            }\n\n            $partialResource->create();\n\n            $partialResource->chunkIndex = 0;\n\n        } catch ( \\Exception $e ) {\n\n            return Responser::reportError($result, $e->getMessage());\n        }\n\n        return Responser::returnResult($result);\n    }\n\n    /**\n     * Handle and save the uploaded chunks\n     * @return \\Illuminate\\Http\\JsonResponse\n     * @throws \\Exception\n     */\n    public function saveChunk()\n    {\n        $this->validate(request(), [\n            'chunk_total'            => 'required',\n            'chunk_index'            => 'required',\n            'resource_temp_basename' => 'required',\n            'resource_ext'           => 'required',\n            'resource_chunk'         => 'required',\n            'group_subdir'           => 'required',\n            'group'                  => 'required',\n            'resource_hash'          => 'present',\n        ]);\n\n        $chunkTotalCount = Request::input('chunk_total');\n        $chunkIndex = Request::input('chunk_index');\n        $resourceTempBaseName = Request::input('resource_temp_basename');\n        $resourceExt = Request::input('resource_ext');\n        $chunk = Request::file('resource_chunk');\n        $groupSubDir = Request::input('group_subdir');\n        $resourceHash = Request::input('resource_hash');\n        $group = Request::input('group');\n        $savedPathKey = RedisSavedPath::getKey($group, $resourceHash);\n        $partialResource = null;\n\n        $result = [\n            'error'     => 0,\n            'savedPath' => '',\n        ];\n\n        try {\n\n            ConfigMapper::instance()->applyGroupConfig($group);\n\n            $partialResource = new PartialResource($resourceTempBaseName, $resourceExt, $groupSubDir);\n\n            // do a check to prevent security intrusions\n            if ( $partialResource->exists() === false ) {\n                throw new \\Exception(trans('aetherupload::messages.invalid_operation'));\n            }\n\n            // determine if this upload meets the condition of instant completion\n            if ( ConfigMapper::get('instant_completion') === true && !empty($resourceHash) && RedisSavedPath::exists($savedPathKey) === true ) {\n                $partialResource->delete();\n                unset($partialResource->chunkIndex);\n                $result['savedPath'] = RedisSavedPath::get($savedPathKey);\n\n                return Responser::returnResult($result);\n            }\n\n            if ( $chunk->getError() > 0 ) {\n                throw new \\Exception(trans('aetherupload::messages.upload_error'));\n            }\n\n            if ( $chunk->isValid() === false ) {\n                throw new \\Exception(trans('aetherupload::messages.http_post_only'));\n            }\n\n            // validate the data in header file to avoid the errors when network issue occurs\n            if ( (int)($partialResource->chunkIndex) !== (int)$chunkIndex - 1 ) {\n                return Responser::returnResult($result);\n            }\n\n            $partialResource->append($chunk->getRealPath());\n\n            $partialResource->chunkIndex = $chunkIndex;\n\n            // determine if the resource file is completed\n            if ( $chunkIndex === $chunkTotalCount ) {\n\n                $partialResource->checkSize();\n\n                $partialResource->checkMimeType();\n\n                // trigger the event before an upload completes\n                if ( !empty($beforeUploadCompleteEvent = ConfigMapper::get('event_before_upload_complete'))) {\n                    event(new $beforeUploadCompleteEvent($partialResource));\n                }\n\n                $resourceRealHash = $partialResource->calculateHash();\n\n                if ( ConfigMapper::get('lax_mode') === false && $resourceHash !== $resourceRealHash ) {\n                    throw new \\Exception(trans('aetherupload::messages.upload_error'));\n                }\n\n                $partialResource->rename($completeName = Util::getFileName($resourceRealHash, $resourceExt));\n\n                $savedPath = SavedPathResolver::encode($group, $groupSubDir, $completeName);\n\n                if ( ConfigMapper::get('instant_completion') === true ) {\n                    RedisSavedPath::set($savedPathKey, $savedPath);\n                }\n\n                unset($partialResource->chunkIndex);\n\n                // trigger the event when an upload completes\n                if ( !empty($uploadCompleteEvent = ConfigMapper::get('event_upload_complete'))) {\n                    event(new $uploadCompleteEvent(new Resource($group, ConfigMapper::get('group_dir'), $groupSubDir, $completeName)));\n                }\n\n                $result['savedPath'] = $savedPath;\n\n            }\n\n        } catch ( \\Exception $e ) {\n\n            $partialResource->delete();\n            unset($partialResource->chunkIndex);\n\n            return Responser::reportError($result, $e->getMessage());\n        }\n\n        return Responser::returnResult($result);\n\n    }\n\n    /**\n     * Handle the request of option method in CORS\n     * @return \\Illuminate\\Contracts\\Routing\\ResponseFactory|\\Symfony\\Component\\HttpFoundation\\Response\n     */\n    public function options()\n    {\n        return response('');\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/Util.php",
    "content": "<?php\n\nnamespace AetherUpload;\n\nclass Util\n{\n    /**\n     * The rule of naming a temporary file\n     * @return string\n     */\n    public static function generateTempName()\n    {\n        return time() . mt_rand(100000, 999999);\n    }\n\n    public static function getFileName($baseName, $ext)\n    {\n        return $baseName . '.' . $ext;\n    }\n\n    public static function generateSubDirName()\n    {\n        switch ( ConfigMapper::get('resource_subdir_rule') ) {\n            case \"year\":\n                $name = @date(\"Y\", time());\n                break;\n            case \"month\":\n                $name = @date(\"Ym\", time());\n                break;\n            case \"date\":\n                $name = @date(\"Ymd\", time());\n                break;\n            case \"const\":\n                $name = \"subdir\";\n                break;\n            default :\n                $name = @date(\"Ym\", time());\n                break;\n        }\n\n        return $name;\n    }\n\n    public static function getDisplayLink($savedPath)\n    {\n        $storageHost = self::isDistributedWebHost() ? ConfigMapper::get('distributed_deployment_storage_host') : '';\n\n        return $storageHost . ConfigMapper::get('route_display') . '/' . $savedPath;\n    }\n\n    public static function getDownloadLink($savedPath, $newName)\n    {\n        $storageHost = self::isDistributedWebHost() ? ConfigMapper::get('distributed_deployment_storage_host') : '';\n\n        return $storageHost . ConfigMapper::get('route_download') . '/' . $savedPath . '/' . $newName;\n    }\n\n    public static function getStorageHostField()\n    {\n        return new \\Illuminate\\Support\\HtmlString('<input type=\"hidden\" id=\"aetherupload-storage-host\" value=\"' . (self::isDistributedWebHost() ? ConfigMapper::get('distributed_deployment_storage_host') : '') . '\" />');\n    }\n\n    public static function isStorageHost()\n    {\n        return ! ConfigMapper::get('distributed_deployment_enable') || ConfigMapper::get('distributed_deployment_role') === 'storage';\n    }\n\n    public static function isDistributedStorageHost()\n    {\n        return ConfigMapper::get('distributed_deployment_enable') === true && ConfigMapper::get('distributed_deployment_role') === 'storage';\n    }\n\n    public static function isDistributedWebHost()\n    {\n        return ConfigMapper::get('distributed_deployment_enable') === true && ConfigMapper::get('distributed_deployment_role') === 'web';\n    }\n\n    public static function deleteResource($savedPath)\n    {\n        $params = SavedPathResolver::decode($savedPath);\n\n        try {\n\n            ConfigMapper::instance()->applyGroupConfig($params->group);\n\n            $resource = new Resource($params->group, ConfigMapper::get('group_dir'), $params->groupSubDir, $params->resourceName);\n\n            return $resource->delete($resource->path);\n\n        } catch ( \\Exception $e ) {\n\n            return false;\n        }\n    }\n\n    public static function deleteRedisSavedPath($savedPath)\n    {\n        $params = SavedPathResolver::decode($savedPath);\n\n        try {\n\n            $savedPathKey = RedisSavedPath::getKey($params->group, pathinfo($params->resourceName, PATHINFO_FILENAME));\n\n            return RedisSavedPath::delete($savedPathKey);\n\n        } catch ( \\Exception $e ) {\n\n            return false;\n\n        }\n    }\n\n\n}\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/src/helpers.php",
    "content": "<?php\n\nfunction aetherupload_display_link($savedPath)\n{\n    return \\AetherUpload\\Util::getDisplayLink($savedPath);\n}\n\nfunction aetherupload_download_link($savedPath, $newName)\n{\n    return \\AetherUpload\\Util::getDownloadLink($savedPath, $newName);\n}\n\nif ( ! function_exists('storage_host_field') ) {\n    function storage_host_field()\n    {\n        return \\AetherUpload\\Util::getStorageHostField();\n    }\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/translations/en/messages.php",
    "content": "<?php\n\nreturn [\n    'upload_error'            => 'Error: error occurs during upload',\n    'invalid_resource_params' => 'Error: invalid resource parameters',\n    'invalid_resource_size'   => 'Error: invalid resource size',\n    'invalid_resource_type'   => 'Error: invalid resource type',\n    'create_subfolder_fail'   => 'Error: fail to create subfolder',\n    'invalid_chunk_params'    => 'Error: chunk parameters are invalid',\n    'invalid_operation'       => 'Error: operation is forbidden',\n    'http_post_only'          => 'Error: upload must through HTTP POST',\n    'create_resource_fail'    => 'Error: fail to create resource',\n    'write_resource_fail'     => 'Error: fail to write resource',\n    'delete_resource_fail'    => 'Error: fail to delete resource',\n    'rename_resource_fail'    => 'Error: fail to rename resource',\n    'create_header_fail'      => 'Error: fail to create header',\n    'write_header_fail'       => 'Error: fail to write head resource',\n    'read_header_fail'        => 'Error: fail to read head resource',\n    'delete_header_fail'      => 'Error: fail to delete head resource',\n];"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/translations/zh/messages.php",
    "content": "<?php\n\nreturn [\n    'upload_error'            => '错误: 上传发生错误',\n    'invalid_resource_params' => '错误：缺少必要的文件参数',\n    'invalid_resource_size'   => '错误：无效的文件大小',\n    'invalid_resource_type'   => '错误：无效的文件类型',\n    'create_subfolder_fail'   => '错误：创建子文件夹失败',\n    'invalid_chunk_params'    => '错误：缺少必要的文件块参数',\n    'invalid_operation'       => '错误：非法操作',\n    'http_post_only'          => '错误：文件必须通过HTTP POST上传',\n    'create_resource_fail'    => '错误：创建文件失败',\n    'write_resource_fail'     => '错误：写文件失败',\n    'delete_resource_fail'    => '错误：删除文件失败',\n    'rename_resource_fail'    => '错误：重命名文件失败',\n    'create_header_fail'      => '错误：创建头文件失败',\n    'write_header_fail'       => '错误：写头文件失败',\n    'read_header_fail'        => '错误：读头文件失败',\n    'delete_header_fail'      => '错误：删除头文件失败',\n];"
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/uploads/aetherupload_file/.keep",
    "content": ""
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/uploads/aetherupload_header/.keep",
    "content": ""
  },
  {
    "path": "vendor/peinhu/aetherupload-laravel/views/example.blade.php",
    "content": "<!DOCTYPE html>\n<html lang=\"en-us\">\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n    <title></title>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n    <meta name=\"csrf-token\" content=\"{{ csrf_token() }}\"><!--需要csrf token-->\n    <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\"\n          integrity=\"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u\" crossorigin=\"anonymous\">\n</head>\n<body>\n\n<div class=\"container\">\n    <div class=\"page-header\">\n        <h1>This is an example page.</h1>\n        <i>view the source code in <a href=\"/aetherupload/example_source\" target=\"_blank\">vendor/peinhu/aetherupload-laravel/views/example.blade.php</a></i>\n    </div>\n\n    <div class=\"row\">\n        <form method=\"post\" action=\"/aetherupload\">\n            <div class=\"form-group \" id=\"aetherupload-wrapper\"><!--组件最外部需要一个名为aetherupload-wrapper的id，用以包装组件-->\n                <label>文件1(自定义)：</label>\n                <div class=\"controls\">\n                    <input type=\"file\" id=\"aetherupload-resource\" onchange=\"aetherupload(this).setGroup('file').setSavedPathField('#aetherupload-savedpath').setPreprocessRoute('/aetherupload/preprocess').setUploadingRoute('/aetherupload/uploading').setLaxMode(false).success(someCallback).upload()\"/>\n                    <!--需要一个名为aetherupload-resource的id，用以标识上传的文件，setGroup(...)设置分组名，setSavedPathField(...)设置资源存储路径的保存节点，setPreprocessRoute(...)设置预处理路由，setUploadingRoute(...)设置上传分块路由，setLaxMode(...)设置宽松模式，success(...)可用于声名上传成功后的回调方法名。默认为选择文件后触发上传，也可根据需求手动更改为特定事件触发，如点击提交表单时-->\n                    <div class=\"progress \" style=\"height: 6px;margin-bottom: 2px;margin-top: 10px;width: 200px;\">\n                        <div id=\"aetherupload-progressbar\" style=\"background:blue;height:6px;width:0;\"></div><!--需要一个名为aetherupload-progressbar的id，用以标识进度条-->\n                    </div>\n                    <span style=\"font-size:12px;color:#aaa;\" id=\"aetherupload-output\"></span><!--需要一个名为aetherupload-output的id，用以标识提示信息-->\n                    <input type=\"hidden\" name=\"file1\" id=\"aetherupload-savedpath\"><!--需要一个自定义名称的id，以及一个自定义名称的name值, 用以标识资源储存路径自动填充位置，默认id为aetherupload-savedpath，可根据setSavedPathField(...)设置为其它任意值-->\n                </div>\n            </div>\n\n            <div class=\"form-group \" id=\"aetherupload-wrapper\">\n                <label>文件2(简略)：</label>\n                <div class=\"controls\">\n                    <input type=\"file\" id=\"aetherupload-resource\" onchange=\"aetherupload(this).upload()\"/>\n                    <div class=\"progress \" style=\"height: 6px;margin-bottom: 2px;margin-top: 10px;width: 200px;\">\n                        <div id=\"aetherupload-progressbar\" style=\"background:blue;height:6px;width:0;\"></div>\n                    </div>\n                    <span style=\"font-size:12px;color:#aaa;\" id=\"aetherupload-output\"></span>\n                    <input type=\"hidden\" name=\"file2\" id=\"aetherupload-savedpath\">\n                </div>\n            </div>\n            {{ storage_host_field() }} <!--（可选）需要标识资源服务器host地址的field，用以支持分布式部署-->\n            {{ csrf_field() }} <!--需要标识csrf token的field-->\n            <button type=\"submit\" class=\"btn btn-primary\">点击提交</button>\n        </form>\n\n        <hr/>\n\n        <div id=\"result\"></div>\n\n    </div>\n</div>\n<script src=\"{{ URL::asset('vendor/aetherupload/js/spark-md5.min.js') }}\"></script><!--（可选）需要引入spark-md5.min.js，用以支持秒传功能-->\n<script src=\"https://code.jquery.com/jquery-3.3.1.min.js\" integrity=\"sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=\" crossorigin=\"anonymous\"></script><!--需要引入jquery-->\n<script src=\"{{ URL::asset('vendor/aetherupload/js/aetherupload.js') }}\"></script><!--需要引入aetherupload.js-->\n<script>\n    // success(someCallback)中声名的回调方法需在此定义，参数someCallback可为任意名称，此方法将会在上传完成后被调用\n    // 可使用this对象获得resourceName,resourceSize,resourceTempBaseName,resourceExt,groupSubdir,group,savedPath等属性的值\n    someCallback = function () {\n        // Example\n        $('#result').append(\n            '<p>执行回调 - 文件已上传，原名：<span >' + this.resourceName + '</span> | 大小：<span >' + parseFloat(this.resourceSize / (1000 * 1000)).toFixed(2) + 'MB' + '</span> | 储存名：<span >' + this.savedPath.substr(this.savedPath.lastIndexOf('_') + 1) + '</span></p>'\n        );\n    }\n\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/.travis.yml",
    "content": "language: php\nphp:\n  - 5.5\n  - 5.6\n  - 7.0\n  - 7.1\n  - hhvm\n  - nightly\n\nmatrix:\n  allow_failures:\n    - php:\n      - hhvm\n      - nightly\n\ncache:\n  directories:\n    - $HOME/.composer/cache\n\nscript:\n  - vendor/bin/phpunit --coverage-clover=coverage.clover -v\n  - composer update --no-interaction --prefer-source\n  - vendor/bin/phpunit -v\n\nbefore_script:\n - composer install --no-interaction\n\nafter_script:\n  - if [ $TRAVIS_PHP_VERSION = '5.6' ]; then wget https://scrutinizer-ci.com/ocular.phar; php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi\n\nnotifications:\n  irc: \"irc.freenode.org#phpdocumentor\"\n  email:\n    - me@mikevanriel.com\n    - ashnazg@php.net\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2015 phpDocumentor\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/README.md",
    "content": "# ReflectionCommon\n[![Build Status](https://travis-ci.org/phpDocumentor/ReflectionCommon.svg?branch=master)](https://travis-ci.org/phpDocumentor/ReflectionCommon)\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/composer.json",
    "content": "{\n    \"name\": \"phpdocumentor/reflection-common\",\n    \"keywords\": [\"phpdoc\", \"phpDocumentor\", \"reflection\", \"static analysis\", \"FQSEN\"],\n    \"homepage\": \"http://www.phpdoc.org\",\n    \"description\": \"Common reflection classes used by phpdocumentor to reflect the code structure\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Jaap van Otterdijk\",\n            \"email\": \"opensource@ijaap.nl\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.5\"\n    },\n    \"autoload\" : {\n      \"psr-4\" : {\n        \"phpDocumentor\\\\Reflection\\\\\": [\"src\"]\n      }\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^4.6\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n          \"dev-master\": \"1.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/Element.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.5\n *\n * @copyright 2010-2015 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\n/**\n * Interface for Api Elements\n */\ninterface Element\n{\n    /**\n     * Returns the Fqsen of the element.\n     *\n     * @return Fqsen\n     */\n    public function getFqsen();\n\n    /**\n     * Returns the name of the element.\n     *\n     * @return string\n     */\n    public function getName();\n}"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/File.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\n/**\n * Interface for files processed by the ProjectFactory\n */\ninterface File\n{\n    /**\n     * Returns the content of the file as a string.\n     *\n     * @return string\n     */\n    public function getContents();\n\n    /**\n     * Returns md5 hash of the file.\n     *\n     * @return string\n     */\n    public function md5();\n\n    /**\n     * Returns an relative path to the file.\n     *\n     * @return string\n     */\n    public function path();\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/Fqsen.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.5\n *\n * @copyright 2010-2015 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\n/**\n * Value Object for Fqsen.\n *\n * @link https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc-meta.md\n */\nfinal class Fqsen\n{\n    /**\n     * @var string full quallified class name\n     */\n    private $fqsen;\n\n    /**\n     * @var string name of the element without path.\n     */\n    private $name;\n\n    /**\n     * Initializes the object.\n     *\n     * @param string $fqsen\n     *\n     * @throws \\InvalidArgumentException when $fqsen is not matching the format.\n     */\n    public function __construct($fqsen)\n    {\n        $matches = array();\n        $result = preg_match(\n            '/^\\\\\\\\([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff\\\\\\\\]*)?(?:[:]{2}\\\\$?([a-zA-Z_\\\\x7f-\\\\xff][a-zA-Z0-9_\\\\x7f-\\\\xff]*))?(?:\\\\(\\\\))?$/',\n                $fqsen,\n                $matches\n        );\n\n        if ($result === 0) {\n            throw new \\InvalidArgumentException(\n                sprintf('\"%s\" is not a valid Fqsen.', $fqsen)\n            );\n        }\n\n        $this->fqsen = $fqsen;\n\n        if (isset($matches[2])) {\n            $this->name = $matches[2];\n        } else {\n            $matches = explode('\\\\', $fqsen);\n            $this->name = trim(end($matches), '()');\n        }\n    }\n\n    /**\n     * converts this class to string.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->fqsen;\n    }\n\n    /**\n     * Returns the name of the element without path.\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/Location.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\n/**\n * The location where an element occurs within a file.\n */\nfinal class Location\n{\n    /** @var int  */\n    private $lineNumber = 0;\n\n    /** @var int */\n    private $columnNumber = 0;\n\n    /**\n     * Initializes the location for an element using its line number in the file and optionally the column number.\n     *\n     * @param int $lineNumber\n     * @param int $columnNumber\n     */\n    public function __construct($lineNumber, $columnNumber = 0)\n    {\n        $this->lineNumber   = $lineNumber;\n        $this->columnNumber = $columnNumber;\n    }\n\n    /**\n     * Returns the line number that is covered by this location.\n     *\n     * @return integer\n     */\n    public function getLineNumber()\n    {\n        return $this->lineNumber;\n    }\n\n    /**\n     * Returns the column number (character position on a line) for this location object.\n     *\n     * @return integer\n     */\n    public function getColumnNumber()\n    {\n        return $this->columnNumber;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/Project.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.5\n *\n * @copyright 2010-2015 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\n/**\n * Interface for project. Since the definition of a project can be different per factory this interface will be small.\n */\ninterface Project\n{\n    /**\n     * Returns the name of the project.\n     *\n     * @return string\n     */\n    public function getName();\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-common/src/ProjectFactory.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.5\n *\n * @copyright 2010-2015 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\nnamespace phpDocumentor\\Reflection;\n\n/**\n * Interface for project factories. A project factory shall convert a set of files\n * into an object implementing the Project interface.\n */\ninterface ProjectFactory\n{\n    /**\n     * Creates a project from the set of files.\n     *\n     * @param string $name\n     * @param File[] $files\n     * @return Project\n     */\n    public function create($name, array $files);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/.coveralls.yml",
    "content": "service_name: travis-ci\ncoverage_clover: coverage.xml\njson_path: coverage.json\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2010 Mike van Riel\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/README.md",
    "content": "The ReflectionDocBlock Component [![Build Status](https://secure.travis-ci.org/phpDocumentor/ReflectionDocBlock.png)](https://travis-ci.org/phpDocumentor/ReflectionDocBlock)\n================================\n\nIntroduction\n------------\n\nThe ReflectionDocBlock component of phpDocumentor provides a DocBlock parser\nthat is 100% compatible with the [PHPDoc standard](http://phpdoc.org/docs/latest).\n\nWith this component, a library can provide support for annotations via DocBlocks\nor otherwise retrieve information that is embedded in a DocBlock.\n\nInstallation\n------------\n\n```bash\ncomposer require phpdocumentor/reflection-docblock\n```\n\nUsage\n-----\n\nIn order to parse the DocBlock one needs a DocBlockFactory that can be\ninstantiated using its `createInstance` factory method like this:\n\n```php\n$factory  = \\phpDocumentor\\Reflection\\DocBlockFactory::createInstance();\n```\n\nThen we can use the `create` method of the factory to interpret the DocBlock. \nPlease note that it is also possible to provide a class that has the \n`getDocComment()` method, such as an object of type `ReflectionClass`, the\ncreate method will read that if it exists.\n\n```php\n$docComment = <<<DOCCOMMENT\n/**\n * This is an example of a summary.\n *\n * This is a Description. A Summary and Description are separated by either\n * two subsequent newlines (thus a whiteline in between as can be seen in this\n * example), or when the Summary ends with a dot (`.`) and some form of\n * whitespace.\n */\nDOCCOMMENT;\n\n$docblock = $factory->create($docComment);\n```\n\nThe `create` method will yield an object of type `\\phpDocumentor\\Reflection\\DocBlock`\nwhose methods can be queried:\n\n```php\n// Contains the summary for this DocBlock\n$summary = $docblock->getSummary();\n\n// Contains \\phpDocumentor\\Reflection\\DocBlock\\Description object\n$description = $docblock->getDescription();\n\n// You can either cast it to string\n$description = (string) $docblock->getDescription();\n\n// Or use the render method to get a string representation of the Description.\n$description = $docblock->getDescription()->render();\n```\n\n> For more examples it would be best to review the scripts in the [`/examples` folder](/examples).\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/composer.json",
    "content": "{\n    \"name\":    \"phpdocumentor/reflection-docblock\",\n    \"description\": \"With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.\",\n    \"type\":    \"library\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Mike van Riel\",\n            \"email\": \"me@mikevanriel.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.0\",\n        \"phpdocumentor/reflection-common\": \"^1.0.0\",\n        \"phpdocumentor/type-resolver\": \"^0.4.0\",\n        \"webmozart/assert\": \"^1.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\"phpDocumentor\\\\Reflection\\\\\": [\"src/\"]}\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\"phpDocumentor\\\\Reflection\\\\\": [\"tests/unit\"]}\n    },\n    \"require-dev\": {\n        \"mockery/mockery\": \"^1.0\",\n        \"phpunit/phpunit\": \"^6.4\",\n        \"doctrine/instantiator\": \"~1.0.5\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"4.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/easy-coding-standard.neon",
    "content": "includes:\n    - temp/ecs/config/clean-code.neon\n    - temp/ecs/config/psr2-checkers.neon\n    - temp/ecs/config/spaces.neon\n    - temp/ecs/config/common.neon\n\ncheckers:\n    PhpCsFixer\\Fixer\\Operator\\ConcatSpaceFixer:\n        spacing: one\n\nparameters:\n    exclude_checkers:\n        # from temp/ecs/config/common.neon\n        - PhpCsFixer\\Fixer\\ClassNotation\\OrderedClassElementsFixer\n        - PhpCsFixer\\Fixer\\PhpUnit\\PhpUnitStrictFixer\n        - PhpCsFixer\\Fixer\\ControlStructure\\YodaStyleFixer\n        # from temp/ecs/config/spaces.neon\n        - PhpCsFixer\\Fixer\\Operator\\NotOperatorWithSuccessorSpaceFixer\n\n    skip:\n        SlevomatCodingStandard\\Sniffs\\Classes\\UnusedPrivateElementsSniff:\n            # WIP code\n            - src/DocBlock/StandardTagFactory.php\n        PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\CodeAnalysis\\EmptyStatementSniff:\n            # WIP code\n            - src/DocBlock/StandardTagFactory.php\n        PHP_CodeSniffer\\Standards\\Squiz\\Sniffs\\Classes\\ValidClassNameSniff:\n            - src/DocBlock/Tags/Return_.php\n            - src/DocBlock/Tags/Var_.php\n        PHP_CodeSniffer\\Standards\\Generic\\Sniffs\\NamingConventions\\CamelCapsFunctionNameSniff:\n            - */tests/**\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter\\PassthroughFormatter;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Object representing to description for a DocBlock.\n *\n * A Description object can consist of plain text but can also include tags. A Description Formatter can then combine\n * a body template with sprintf-style placeholders together with formatted tags in order to reconstitute a complete\n * description text using the format that you would prefer.\n *\n * Because parsing a Description text can be a verbose process this is handled by the {@see DescriptionFactory}. It is\n * thus recommended to use that to create a Description object, like this:\n *\n *     $description = $descriptionFactory->create('This is a {@see Description}', $context);\n *\n * The description factory will interpret the given body and create a body template and list of tags from them, and pass\n * that onto the constructor if this class.\n *\n * > The $context variable is a class of type {@see \\phpDocumentor\\Reflection\\Types\\Context} and contains the namespace\n * > and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial\n * > type names and FQSENs.\n *\n * If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this:\n *\n *     $description = new Description(\n *         'This is a %1$s',\n *         [ new See(new Fqsen('\\phpDocumentor\\Reflection\\DocBlock\\Description')) ]\n *     );\n *\n * It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object\n * is mainly responsible for rendering.\n *\n * @see DescriptionFactory to create a new Description.\n * @see Description\\Formatter for the formatting of the body and tags.\n */\nclass Description\n{\n    /** @var string */\n    private $bodyTemplate;\n\n    /** @var Tag[] */\n    private $tags;\n\n    /**\n     * Initializes a Description with its body (template) and a listing of the tags used in the body template.\n     *\n     * @param string $bodyTemplate\n     * @param Tag[] $tags\n     */\n    public function __construct($bodyTemplate, array $tags = [])\n    {\n        Assert::string($bodyTemplate);\n\n        $this->bodyTemplate = $bodyTemplate;\n        $this->tags = $tags;\n    }\n\n    /**\n     * Returns the tags for this DocBlock.\n     *\n     * @return Tag[]\n     */\n    public function getTags()\n    {\n        return $this->tags;\n    }\n\n    /**\n     * Renders this description as a string where the provided formatter will format the tags in the expected string\n     * format.\n     *\n     * @param Formatter|null $formatter\n     *\n     * @return string\n     */\n    public function render(Formatter $formatter = null)\n    {\n        if ($formatter === null) {\n            $formatter = new PassthroughFormatter();\n        }\n\n        $tags = [];\n        foreach ($this->tags as $tag) {\n            $tags[] = '{' . $formatter->format($tag) . '}';\n        }\n\n        return vsprintf($this->bodyTemplate, $tags);\n    }\n\n    /**\n     * Returns a plain string representation of this description.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->render();\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\n\n/**\n * Creates a new Description object given a body of text.\n *\n * Descriptions in phpDocumentor are somewhat complex entities as they can contain one or more tags inside their\n * body that can be replaced with a readable output. The replacing is done by passing a Formatter object to the\n * Description object's `render` method.\n *\n * In addition to the above does a Description support two types of escape sequences:\n *\n * 1. `{@}` to escape the `@` character to prevent it from being interpreted as part of a tag, i.e. `{{@}link}`\n * 2. `{}` to escape the `}` character, this can be used if you want to use the `}` character in the description\n *    of an inline tag.\n *\n * If a body consists of multiple lines then this factory will also remove any superfluous whitespace at the beginning\n * of each line while maintaining any indentation that is used. This will prevent formatting parsers from tripping\n * over unexpected spaces as can be observed with tag descriptions.\n */\nclass DescriptionFactory\n{\n    /** @var TagFactory */\n    private $tagFactory;\n\n    /**\n     * Initializes this factory with the means to construct (inline) tags.\n     *\n     * @param TagFactory $tagFactory\n     */\n    public function __construct(TagFactory $tagFactory)\n    {\n        $this->tagFactory = $tagFactory;\n    }\n\n    /**\n     * Returns the parsed text of this description.\n     *\n     * @param string $contents\n     * @param TypeContext $context\n     *\n     * @return Description\n     */\n    public function create($contents, TypeContext $context = null)\n    {\n        list($text, $tags) = $this->parse($this->lex($contents), $context);\n\n        return new Description($text, $tags);\n    }\n\n    /**\n     * Strips the contents from superfluous whitespace and splits the description into a series of tokens.\n     *\n     * @param string $contents\n     *\n     * @return string[] A series of tokens of which the description text is composed.\n     */\n    private function lex($contents)\n    {\n        $contents = $this->removeSuperfluousStartingWhitespace($contents);\n\n        // performance optimalization; if there is no inline tag, don't bother splitting it up.\n        if (strpos($contents, '{@') === false) {\n            return [$contents];\n        }\n\n        return preg_split(\n            '/\\{\n                # \"{@}\" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally.\n                (?!@\\})\n                # We want to capture the whole tag line, but without the inline tag delimiters.\n                (\\@\n                    # Match everything up to the next delimiter.\n                    [^{}]*\n                    # Nested inline tag content should not be captured, or it will appear in the result separately.\n                    (?:\n                        # Match nested inline tags.\n                        (?:\n                            # Because we did not catch the tag delimiters earlier, we must be explicit with them here.\n                            # Notice that this also matches \"{}\", as a way to later introduce it as an escape sequence.\n                            \\{(?1)?\\}\n                            |\n                            # Make sure we match hanging \"{\".\n                            \\{\n                        )\n                        # Match content after the nested inline tag.\n                        [^{}]*\n                    )* # If there are more inline tags, match them as well. We use \"*\" since there may not be any\n                       # nested inline tags.\n                )\n            \\}/Sux',\n            $contents,\n            null,\n            PREG_SPLIT_DELIM_CAPTURE\n        );\n    }\n\n    /**\n     * Parses the stream of tokens in to a new set of tokens containing Tags.\n     *\n     * @param string[] $tokens\n     * @param TypeContext $context\n     *\n     * @return string[]|Tag[]\n     */\n    private function parse($tokens, TypeContext $context)\n    {\n        $count = count($tokens);\n        $tagCount = 0;\n        $tags  = [];\n\n        for ($i = 1; $i < $count; $i += 2) {\n            $tags[] = $this->tagFactory->create($tokens[$i], $context);\n            $tokens[$i] = '%' . ++$tagCount . '$s';\n        }\n\n        //In order to allow \"literal\" inline tags, the otherwise invalid\n        //sequence \"{@}\" is changed to \"@\", and \"{}\" is changed to \"}\".\n        //\"%\" is escaped to \"%%\" because of vsprintf.\n        //See unit tests for examples.\n        for ($i = 0; $i < $count; $i += 2) {\n            $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]);\n        }\n\n        return [implode('', $tokens), $tags];\n    }\n\n    /**\n     * Removes the superfluous from a multi-line description.\n     *\n     * When a description has more than one line then it can happen that the second and subsequent lines have an\n     * additional indentation. This is commonly in use with tags like this:\n     *\n     *     {@}since 1.1.0 This is an example\n     *         description where we have an\n     *         indentation in the second and\n     *         subsequent lines.\n     *\n     * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent\n     * lines and this may cause rendering issues when, for example, using a Markdown converter.\n     *\n     * @param string $contents\n     *\n     * @return string\n     */\n    private function removeSuperfluousStartingWhitespace($contents)\n    {\n        $lines = explode(\"\\n\", $contents);\n\n        // if there is only one line then we don't have lines with superfluous whitespace and\n        // can use the contents as-is\n        if (count($lines) <= 1) {\n            return $contents;\n        }\n\n        // determine how many whitespace characters need to be stripped\n        $startingSpaceCount = 9999999;\n        for ($i = 1; $i < count($lines); $i++) {\n            // lines with a no length do not count as they are not indented at all\n            if (strlen(trim($lines[$i])) === 0) {\n                continue;\n            }\n\n            // determine the number of prefixing spaces by checking the difference in line length before and after\n            // an ltrim\n            $startingSpaceCount = min($startingSpaceCount, strlen($lines[$i]) - strlen(ltrim($lines[$i])));\n        }\n\n        // strip the number of spaces from each line\n        if ($startingSpaceCount > 0) {\n            for ($i = 1; $i < count($lines); $i++) {\n                $lines[$i] = substr($lines[$i], $startingSpaceCount);\n            }\n        }\n\n        return implode(\"\\n\", $lines);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Example;\n\n/**\n * Class used to find an example file's location based on a given ExampleDescriptor.\n */\nclass ExampleFinder\n{\n    /** @var string */\n    private $sourceDirectory = '';\n\n    /** @var string[] */\n    private $exampleDirectories = [];\n\n    /**\n     * Attempts to find the example contents for the given descriptor.\n     *\n     * @param Example $example\n     *\n     * @return string\n     */\n    public function find(Example $example)\n    {\n        $filename = $example->getFilePath();\n\n        $file = $this->getExampleFileContents($filename);\n        if (!$file) {\n            return \"** File not found : {$filename} **\";\n        }\n\n        return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount()));\n    }\n\n    /**\n     * Registers the project's root directory where an 'examples' folder can be expected.\n     *\n     * @param string $directory\n     *\n     * @return void\n     */\n    public function setSourceDirectory($directory = '')\n    {\n        $this->sourceDirectory = $directory;\n    }\n\n    /**\n     * Returns the project's root directory where an 'examples' folder can be expected.\n     *\n     * @return string\n     */\n    public function getSourceDirectory()\n    {\n        return $this->sourceDirectory;\n    }\n\n    /**\n     * Registers a series of directories that may contain examples.\n     *\n     * @param string[] $directories\n     */\n    public function setExampleDirectories(array $directories)\n    {\n        $this->exampleDirectories = $directories;\n    }\n\n    /**\n     * Returns a series of directories that may contain examples.\n     *\n     * @return string[]\n     */\n    public function getExampleDirectories()\n    {\n        return $this->exampleDirectories;\n    }\n\n    /**\n     * Attempts to find the requested example file and returns its contents or null if no file was found.\n     *\n     * This method will try several methods in search of the given example file, the first one it encounters is\n     * returned:\n     *\n     * 1. Iterates through all examples folders for the given filename\n     * 2. Checks the source folder for the given filename\n     * 3. Checks the 'examples' folder in the current working directory for examples\n     * 4. Checks the path relative to the current working directory for the given filename\n     *\n     * @param string $filename\n     *\n     * @return string|null\n     */\n    private function getExampleFileContents($filename)\n    {\n        $normalizedPath = null;\n\n        foreach ($this->exampleDirectories as $directory) {\n            $exampleFileFromConfig = $this->constructExamplePath($directory, $filename);\n            if (is_readable($exampleFileFromConfig)) {\n                $normalizedPath = $exampleFileFromConfig;\n                break;\n            }\n        }\n\n        if (!$normalizedPath) {\n            if (is_readable($this->getExamplePathFromSource($filename))) {\n                $normalizedPath = $this->getExamplePathFromSource($filename);\n            } elseif (is_readable($this->getExamplePathFromExampleDirectory($filename))) {\n                $normalizedPath = $this->getExamplePathFromExampleDirectory($filename);\n            } elseif (is_readable($filename)) {\n                $normalizedPath = $filename;\n            }\n        }\n\n        return $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : null;\n    }\n\n    /**\n     * Get example filepath based on the example directory inside your project.\n     *\n     * @param string $file\n     *\n     * @return string\n     */\n    private function getExamplePathFromExampleDirectory($file)\n    {\n        return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file;\n    }\n\n    /**\n     * Returns a path to the example file in the given directory..\n     *\n     * @param string $directory\n     * @param string $file\n     *\n     * @return string\n     */\n    private function constructExamplePath($directory, $file)\n    {\n        return rtrim($directory, '\\\\/') . DIRECTORY_SEPARATOR . $file;\n    }\n\n    /**\n     * Get example filepath based on sourcecode.\n     *\n     * @param string $file\n     *\n     * @return string\n     */\n    private function getExamplePathFromSource($file)\n    {\n        return sprintf(\n            '%s%s%s',\n            trim($this->getSourceDirectory(), '\\\\/'),\n            DIRECTORY_SEPARATOR,\n            trim($file, '\"')\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\DocBlock;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Converts a DocBlock back from an object to a complete DocComment including Asterisks.\n */\nclass Serializer\n{\n    /** @var string The string to indent the comment with. */\n    protected $indentString = ' ';\n\n    /** @var int The number of times the indent string is repeated. */\n    protected $indent = 0;\n\n    /** @var bool Whether to indent the first line with the given indent amount and string. */\n    protected $isFirstLineIndented = true;\n\n    /** @var int|null The max length of a line. */\n    protected $lineLength = null;\n\n    /** @var DocBlock\\Tags\\Formatter A custom tag formatter. */\n    protected $tagFormatter = null;\n\n    /**\n     * Create a Serializer instance.\n     *\n     * @param int $indent The number of times the indent string is repeated.\n     * @param string   $indentString    The string to indent the comment with.\n     * @param bool     $indentFirstLine Whether to indent the first line.\n     * @param int|null $lineLength The max length of a line or NULL to disable line wrapping.\n     * @param DocBlock\\Tags\\Formatter $tagFormatter A custom tag formatter, defaults to PassthroughFormatter.\n     */\n    public function __construct($indent = 0, $indentString = ' ', $indentFirstLine = true, $lineLength = null, $tagFormatter = null)\n    {\n        Assert::integer($indent);\n        Assert::string($indentString);\n        Assert::boolean($indentFirstLine);\n        Assert::nullOrInteger($lineLength);\n        Assert::nullOrIsInstanceOf($tagFormatter, 'phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter');\n\n        $this->indent = $indent;\n        $this->indentString = $indentString;\n        $this->isFirstLineIndented = $indentFirstLine;\n        $this->lineLength = $lineLength;\n        $this->tagFormatter = $tagFormatter ?: new DocBlock\\Tags\\Formatter\\PassthroughFormatter();\n    }\n\n    /**\n     * Generate a DocBlock comment.\n     *\n     * @param DocBlock $docblock The DocBlock to serialize.\n     *\n     * @return string The serialized doc block.\n     */\n    public function getDocComment(DocBlock $docblock)\n    {\n        $indent = str_repeat($this->indentString, $this->indent);\n        $firstIndent = $this->isFirstLineIndented ? $indent : '';\n        // 3 === strlen(' * ')\n        $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null;\n\n        $text = $this->removeTrailingSpaces(\n            $indent,\n            $this->addAsterisksForEachLine(\n                $indent,\n                $this->getSummaryAndDescriptionTextBlock($docblock, $wrapLength)\n            )\n        );\n\n        $comment = \"{$firstIndent}/**\\n\";\n        if ($text) {\n            $comment .= \"{$indent} * {$text}\\n\";\n            $comment .= \"{$indent} *\\n\";\n        }\n\n        $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment);\n        $comment .= $indent . ' */';\n\n        return $comment;\n    }\n\n    /**\n     * @param $indent\n     * @param $text\n     * @return mixed\n     */\n    private function removeTrailingSpaces($indent, $text)\n    {\n        return str_replace(\"\\n{$indent} * \\n\", \"\\n{$indent} *\\n\", $text);\n    }\n\n    /**\n     * @param $indent\n     * @param $text\n     * @return mixed\n     */\n    private function addAsterisksForEachLine($indent, $text)\n    {\n        return str_replace(\"\\n\", \"\\n{$indent} * \", $text);\n    }\n\n    /**\n     * @param DocBlock $docblock\n     * @param $wrapLength\n     * @return string\n     */\n    private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, $wrapLength)\n    {\n        $text = $docblock->getSummary() . ((string)$docblock->getDescription() ? \"\\n\\n\" . $docblock->getDescription()\n                : '');\n        if ($wrapLength !== null) {\n            $text = wordwrap($text, $wrapLength);\n            return $text;\n        }\n\n        return $text;\n    }\n\n    /**\n     * @param DocBlock $docblock\n     * @param $wrapLength\n     * @param $indent\n     * @param $comment\n     * @return string\n     */\n    private function addTagBlock(DocBlock $docblock, $wrapLength, $indent, $comment)\n    {\n        foreach ($docblock->getTags() as $tag) {\n            $tagText = $this->tagFormatter->format($tag);\n            if ($wrapLength !== null) {\n                $tagText = wordwrap($tagText, $wrapLength);\n            }\n\n            $tagText = str_replace(\"\\n\", \"\\n{$indent} * \", $tagText);\n\n            $comment .= \"{$indent} * {$tagText}\\n\";\n        }\n\n        return $comment;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory\\StaticMethod;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Generic;\nuse phpDocumentor\\Reflection\\FqsenResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Creates a Tag object given the contents of a tag.\n *\n * This Factory is capable of determining the appropriate class for a tag and instantiate it using its `create`\n * factory method. The `create` factory method of a Tag can have a variable number of arguments; this way you can\n * pass the dependencies that you need to construct a tag object.\n *\n * > Important: each parameter in addition to the body variable for the `create` method must default to null, otherwise\n * > it violates the constraint with the interface; it is recommended to use the {@see Assert::notNull()} method to\n * > verify that a dependency is actually passed.\n *\n * This Factory also features a Service Locator component that is used to pass the right dependencies to the\n * `create` method of a tag; each dependency should be registered as a service or as a parameter.\n *\n * When you want to use a Tag of your own with custom handling you need to call the `registerTagHandler` method, pass\n * the name of the tag and a Fully Qualified Class Name pointing to a class that implements the Tag interface.\n */\nfinal class StandardTagFactory implements TagFactory\n{\n    /** PCRE regular expression matching a tag name. */\n    const REGEX_TAGNAME = '[\\w\\-\\_\\\\\\\\]+';\n\n    /**\n     * @var string[] An array with a tag as a key, and an FQCN to a class that handles it as an array value.\n     */\n    private $tagHandlerMappings = [\n        'author'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Author',\n        'covers'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Covers',\n        'deprecated'     => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Deprecated',\n        // 'example'        => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Example',\n        'link'           => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Link',\n        'method'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Method',\n        'param'          => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Param',\n        'property-read'  => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyRead',\n        'property'       => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Property',\n        'property-write' => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\PropertyWrite',\n        'return'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Return_',\n        'see'            => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\See',\n        'since'          => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Since',\n        'source'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Source',\n        'throw'          => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws',\n        'throws'         => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Throws',\n        'uses'           => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Uses',\n        'var'            => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Var_',\n        'version'        => '\\phpDocumentor\\Reflection\\DocBlock\\Tags\\Version'\n    ];\n\n    /**\n     * @var \\ReflectionParameter[][] a lazy-loading cache containing parameters for each tagHandler that has been used.\n     */\n    private $tagHandlerParameterCache = [];\n\n    /**\n     * @var FqsenResolver\n     */\n    private $fqsenResolver;\n\n    /**\n     * @var mixed[] an array representing a simple Service Locator where we can store parameters and\n     *     services that can be inserted into the Factory Methods of Tag Handlers.\n     */\n    private $serviceLocator = [];\n\n    /**\n     * Initialize this tag factory with the means to resolve an FQSEN and optionally a list of tag handlers.\n     *\n     * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property\n     * is used.\n     *\n     * @param FqsenResolver $fqsenResolver\n     * @param string[]      $tagHandlers\n     *\n     * @see self::registerTagHandler() to add a new tag handler to the existing default list.\n     */\n    public function __construct(FqsenResolver $fqsenResolver, array $tagHandlers = null)\n    {\n        $this->fqsenResolver = $fqsenResolver;\n        if ($tagHandlers !== null) {\n            $this->tagHandlerMappings = $tagHandlers;\n        }\n\n        $this->addService($fqsenResolver, FqsenResolver::class);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function create($tagLine, TypeContext $context = null)\n    {\n        if (! $context) {\n            $context = new TypeContext('');\n        }\n\n        list($tagName, $tagBody) = $this->extractTagParts($tagLine);\n\n        if ($tagBody !== '' && $tagBody[0] === '[') {\n            throw new \\InvalidArgumentException(\n                'The tag \"' . $tagLine . '\" does not seem to be wellformed, please check it for errors'\n            );\n        }\n\n        return $this->createTag($tagBody, $tagName, $context);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function addParameter($name, $value)\n    {\n        $this->serviceLocator[$name] = $value;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function addService($service, $alias = null)\n    {\n        $this->serviceLocator[$alias ?: get_class($service)] = $service;\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public function registerTagHandler($tagName, $handler)\n    {\n        Assert::stringNotEmpty($tagName);\n        Assert::stringNotEmpty($handler);\n        Assert::classExists($handler);\n        Assert::implementsInterface($handler, StaticMethod::class);\n\n        if (strpos($tagName, '\\\\') && $tagName[0] !== '\\\\') {\n            throw new \\InvalidArgumentException(\n                'A namespaced tag must have a leading backslash as it must be fully qualified'\n            );\n        }\n\n        $this->tagHandlerMappings[$tagName] = $handler;\n    }\n\n    /**\n     * Extracts all components for a tag.\n     *\n     * @param string $tagLine\n     *\n     * @return string[]\n     */\n    private function extractTagParts($tagLine)\n    {\n        $matches = [];\n        if (! preg_match('/^@(' . self::REGEX_TAGNAME . ')(?:\\s*([^\\s].*)|$)/us', $tagLine, $matches)) {\n            throw new \\InvalidArgumentException(\n                'The tag \"' . $tagLine . '\" does not seem to be wellformed, please check it for errors'\n            );\n        }\n\n        if (count($matches) < 3) {\n            $matches[] = '';\n        }\n\n        return array_slice($matches, 1);\n    }\n\n    /**\n     * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the\n     * body was invalid.\n     *\n     * @param string  $body\n     * @param string  $name\n     * @param TypeContext $context\n     *\n     * @return Tag|null\n     */\n    private function createTag($body, $name, TypeContext $context)\n    {\n        $handlerClassName = $this->findHandlerClassName($name, $context);\n        $arguments        = $this->getArgumentsForParametersFromWiring(\n            $this->fetchParametersForHandlerFactoryMethod($handlerClassName),\n            $this->getServiceLocatorWithDynamicParameters($context, $name, $body)\n        );\n\n        return call_user_func_array([$handlerClassName, 'create'], $arguments);\n    }\n\n    /**\n     * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`).\n     *\n     * @param string  $tagName\n     * @param TypeContext $context\n     *\n     * @return string\n     */\n    private function findHandlerClassName($tagName, TypeContext $context)\n    {\n        $handlerClassName = Generic::class;\n        if (isset($this->tagHandlerMappings[$tagName])) {\n            $handlerClassName = $this->tagHandlerMappings[$tagName];\n        } elseif ($this->isAnnotation($tagName)) {\n            // TODO: Annotation support is planned for a later stage and as such is disabled for now\n            // $tagName = (string)$this->fqsenResolver->resolve($tagName, $context);\n            // if (isset($this->annotationMappings[$tagName])) {\n            //     $handlerClassName = $this->annotationMappings[$tagName];\n            // }\n        }\n\n        return $handlerClassName;\n    }\n\n    /**\n     * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters.\n     *\n     * @param \\ReflectionParameter[] $parameters\n     * @param mixed[]                $locator\n     *\n     * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters\n     *     is provided with this method.\n     */\n    private function getArgumentsForParametersFromWiring($parameters, $locator)\n    {\n        $arguments = [];\n        foreach ($parameters as $index => $parameter) {\n            $typeHint = $parameter->getClass() ? $parameter->getClass()->getName() : null;\n            if (isset($locator[$typeHint])) {\n                $arguments[] = $locator[$typeHint];\n                continue;\n            }\n\n            $parameterName = $parameter->getName();\n            if (isset($locator[$parameterName])) {\n                $arguments[] = $locator[$parameterName];\n                continue;\n            }\n\n            $arguments[] = null;\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given\n     * tag handler class name.\n     *\n     * @param string $handlerClassName\n     *\n     * @return \\ReflectionParameter[]\n     */\n    private function fetchParametersForHandlerFactoryMethod($handlerClassName)\n    {\n        if (! isset($this->tagHandlerParameterCache[$handlerClassName])) {\n            $methodReflection                                  = new \\ReflectionMethod($handlerClassName, 'create');\n            $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters();\n        }\n\n        return $this->tagHandlerParameterCache[$handlerClassName];\n    }\n\n    /**\n     * Returns a copy of this class' Service Locator with added dynamic parameters, such as the tag's name, body and\n     * Context.\n     *\n     * @param TypeContext $context The Context (namespace and aliasses) that may be passed and is used to resolve FQSENs.\n     * @param string      $tagName The name of the tag that may be passed onto the factory method of the Tag class.\n     * @param string      $tagBody The body of the tag that may be passed onto the factory method of the Tag class.\n     *\n     * @return mixed[]\n     */\n    private function getServiceLocatorWithDynamicParameters(TypeContext $context, $tagName, $tagBody)\n    {\n        $locator = array_merge(\n            $this->serviceLocator,\n            [\n                'name'             => $tagName,\n                'body'             => $tagBody,\n                TypeContext::class => $context\n            ]\n        );\n\n        return $locator;\n    }\n\n    /**\n     * Returns whether the given tag belongs to an annotation.\n     *\n     * @param string $tagContent\n     *\n     * @todo this method should be populated once we implement Annotation notation support.\n     *\n     * @return bool\n     */\n    private function isAnnotation($tagContent)\n    {\n        // 1. Contains a namespace separator\n        // 2. Contains parenthesis\n        // 3. Is present in a list of known annotations (make the algorithm smart by first checking is the last part\n        //    of the annotation class name matches the found tag name\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\n\ninterface Tag\n{\n    public function getName();\n\n    public static function create($body);\n\n    public function render(Formatter $formatter = null);\n\n    public function __toString();\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock;\n\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\n\ninterface TagFactory\n{\n    /**\n     * Adds a parameter to the service locator that can be injected in a tag's factory method.\n     *\n     * When calling a tag's \"create\" method we always check the signature for dependencies to inject. One way is to\n     * typehint a parameter in the signature so that we can use that interface or class name to inject a dependency\n     * (see {@see addService()} for more information on that).\n     *\n     * Another way is to check the name of the argument against the names in the Service Locator. With this method\n     * you can add a variable that will be inserted when a tag's create method is not typehinted and has a matching\n     * name.\n     *\n     * Be aware that there are two reserved names:\n     *\n     * - name, representing the name of the tag.\n     * - body, representing the complete body of the tag.\n     *\n     * These parameters are injected at the last moment and will override any existing parameter with those names.\n     *\n     * @param string $name\n     * @param mixed  $value\n     *\n     * @return void\n     */\n    public function addParameter($name, $value);\n\n    /**\n     * Registers a service with the Service Locator using the FQCN of the class or the alias, if provided.\n     *\n     * When calling a tag's \"create\" method we always check the signature for dependencies to inject. If a parameter\n     * has a typehint then the ServiceLocator is queried to see if a Service is registered for that typehint.\n     *\n     * Because interfaces are regularly used as type-hints this method provides an alias parameter; if the FQCN of the\n     * interface is passed as alias then every time that interface is requested the provided service will be returned.\n     *\n     * @param object $service\n     * @param string $alias\n     *\n     * @return void\n     */\n    public function addService($service);\n\n    /**\n     * Factory method responsible for instantiating the correct sub type.\n     *\n     * @param string $tagLine The text for this tag, including description.\n     * @param TypeContext $context\n     *\n     * @throws \\InvalidArgumentException if an invalid tag line was presented.\n     *\n     * @return Tag A new tag object.\n     */\n    public function create($tagLine, TypeContext $context = null);\n\n    /**\n     * Registers a handler for tags.\n     *\n     * If you want to use your own tags then you can use this method to instruct the TagFactory to register the name\n     * of a tag with the FQCN of a 'Tag Handler'. The Tag handler should implement the {@see Tag} interface (and thus\n     * the create method).\n     *\n     * @param string $tagName Name of tag to register a handler for. When registering a namespaced tag, the full\n     *                        name, along with a prefixing slash MUST be provided.\n     * @param string $handler FQCN of handler.\n     *\n     * @throws \\InvalidArgumentException if the tag name is not a string\n     * @throws \\InvalidArgumentException if the tag name is namespaced (contains backslashes) but does not start with\n     *     a backslash\n     * @throws \\InvalidArgumentException if the handler is not a string\n     * @throws \\InvalidArgumentException if the handler is not an existing class\n     * @throws \\InvalidArgumentException if the handler does not implement the {@see Tag} interface\n     *\n     * @return void\n     */\n    public function registerTagHandler($tagName, $handler);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for an {@}author tag in a Docblock.\n */\nfinal class Author extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string register that this is the author tag. */\n    protected $name = 'author';\n\n    /** @var string The name of the author */\n    private $authorName = '';\n\n    /** @var string The email of the author */\n    private $authorEmail = '';\n\n    /**\n     * Initializes this tag with the author name and e-mail.\n     *\n     * @param string $authorName\n     * @param string $authorEmail\n     */\n    public function __construct($authorName, $authorEmail)\n    {\n        Assert::string($authorName);\n        Assert::string($authorEmail);\n        if ($authorEmail && !filter_var($authorEmail, FILTER_VALIDATE_EMAIL)) {\n            throw new \\InvalidArgumentException('The author tag does not have a valid e-mail address');\n        }\n\n        $this->authorName  = $authorName;\n        $this->authorEmail = $authorEmail;\n    }\n\n    /**\n     * Gets the author's name.\n     *\n     * @return string The author's name.\n     */\n    public function getAuthorName()\n    {\n        return $this->authorName;\n    }\n\n    /**\n     * Returns the author's email.\n     *\n     * @return string The author's email.\n     */\n    public function getEmail()\n    {\n        return $this->authorEmail;\n    }\n\n    /**\n     * Returns this tag in string form.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->authorName . (strlen($this->authorEmail) ? ' <' . $this->authorEmail . '>' : '');\n    }\n\n    /**\n     * Attempts to create a new Author object based on †he tag body.\n     *\n     * @param string $body\n     *\n     * @return static\n     */\n    public static function create($body)\n    {\n        Assert::string($body);\n\n        $splitTagContent = preg_match('/^([^\\<]*)(?:\\<([^\\>]*)\\>)?$/u', $body, $matches);\n        if (!$splitTagContent) {\n            return null;\n        }\n\n        $authorName = trim($matches[1]);\n        $email = isset($matches[2]) ? trim($matches[2]) : '';\n\n        return new static($authorName, $email);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock;\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\n\n/**\n * Parses a tag definition for a DocBlock.\n */\nabstract class BaseTag implements DocBlock\\Tag\n{\n    /** @var string Name of the tag */\n    protected $name = '';\n\n    /** @var Description|null Description of the tag. */\n    protected $description;\n\n    /**\n     * Gets the name of this tag.\n     *\n     * @return string The name of this tag.\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    public function getDescription()\n    {\n        return $this->description;\n    }\n\n    public function render(Formatter $formatter = null)\n    {\n        if ($formatter === null) {\n            $formatter = new Formatter\\PassthroughFormatter();\n        }\n\n        return $formatter->format($this);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Fqsen;\nuse phpDocumentor\\Reflection\\FqsenResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a @covers tag in a Docblock.\n */\nfinal class Covers extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'covers';\n\n    /** @var Fqsen */\n    private $refers = null;\n\n    /**\n     * Initializes this tag.\n     *\n     * @param Fqsen $refers\n     * @param Description $description\n     */\n    public function __construct(Fqsen $refers, Description $description = null)\n    {\n        $this->refers = $refers;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        DescriptionFactory $descriptionFactory = null,\n        FqsenResolver $resolver = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::notEmpty($body);\n\n        $parts = preg_split('/\\s+/Su', $body, 2);\n\n        return new static(\n            $resolver->resolve($parts[0], $context),\n            $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context)\n        );\n    }\n\n    /**\n     * Returns the structural element this tag refers to.\n     *\n     * @return Fqsen\n     */\n    public function getReference()\n    {\n        return $this->refers;\n    }\n\n    /**\n     * Returns a string representation of this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->refers . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}deprecated tag in a Docblock.\n */\nfinal class Deprecated extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'deprecated';\n\n    /**\n     * PCRE regular expression matching a version vector.\n     * Assumes the \"x\" modifier.\n     */\n    const REGEX_VECTOR = '(?:\n        # Normal release vectors.\n        \\d\\S*\n        |\n        # VCS version vectors. Per PHPCS, they are expected to\n        # follow the form of the VCS name, followed by \":\", followed\n        # by the version vector itself.\n        # By convention, popular VCSes like CVS, SVN and GIT use \"$\"\n        # around the actual version vector.\n        [^\\s\\:]+\\:\\s*\\$[^\\$]+\\$\n    )';\n\n    /** @var string The version vector. */\n    private $version = '';\n\n    public function __construct($version = null, Description $description = null)\n    {\n        Assert::nullOrStringNotEmpty($version);\n\n        $this->version = $version;\n        $this->description = $description;\n    }\n\n    /**\n     * @return static\n     */\n    public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null)\n    {\n        Assert::nullOrString($body);\n        if (empty($body)) {\n            return new static();\n        }\n\n        $matches = [];\n        if (!preg_match('/^(' . self::REGEX_VECTOR . ')\\s*(.+)?$/sux', $body, $matches)) {\n            return new static(\n                null,\n                null !== $descriptionFactory ? $descriptionFactory->create($body, $context) : null\n            );\n        }\n\n        return new static(\n            $matches[1],\n            $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context)\n        );\n    }\n\n    /**\n     * Gets the version section of the tag.\n     *\n     * @return string\n     */\n    public function getVersion()\n    {\n        return $this->version;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->version . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}example tag in a Docblock.\n */\nfinal class Example extends BaseTag\n{\n    /**\n     * @var string Path to a file to use as an example. May also be an absolute URI.\n     */\n    private $filePath;\n\n    /**\n     * @var bool Whether the file path component represents an URI. This determines how the file portion\n     *     appears at {@link getContent()}.\n     */\n    private $isURI = false;\n\n    /**\n     * @var int\n     */\n    private $startingLine;\n\n    /**\n     * @var int\n     */\n    private $lineCount;\n\n    public function __construct($filePath, $isURI, $startingLine, $lineCount, $description)\n    {\n        Assert::notEmpty($filePath);\n        Assert::integer($startingLine);\n        Assert::greaterThanEq($startingLine, 0);\n\n        $this->filePath = $filePath;\n        $this->startingLine = $startingLine;\n        $this->lineCount = $lineCount;\n        $this->name = 'example';\n        if ($description !== null) {\n            $this->description = trim($description);\n        }\n\n        $this->isURI = $isURI;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getContent()\n    {\n        if (null === $this->description) {\n            $filePath = '\"' . $this->filePath . '\"';\n            if ($this->isURI) {\n                $filePath = $this->isUriRelative($this->filePath)\n                    ? str_replace('%2F', '/', rawurlencode($this->filePath))\n                    :$this->filePath;\n            }\n\n            return trim($filePath . ' ' . parent::getDescription());\n        }\n\n        return $this->description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create($body)\n    {\n        // File component: File path in quotes or File URI / Source information\n        if (! preg_match('/^(?:\\\"([^\\\"]+)\\\"|(\\S+))(?:\\s+(.*))?$/sux', $body, $matches)) {\n            return null;\n        }\n\n        $filePath = null;\n        $fileUri  = null;\n        if ('' !== $matches[1]) {\n            $filePath = $matches[1];\n        } else {\n            $fileUri = $matches[2];\n        }\n\n        $startingLine = 1;\n        $lineCount    = null;\n        $description  = null;\n\n        if (array_key_exists(3, $matches)) {\n            $description = $matches[3];\n\n            // Starting line / Number of lines / Description\n            if (preg_match('/^([1-9]\\d*)(?:\\s+((?1))\\s*)?(.*)$/sux', $matches[3], $contentMatches)) {\n                $startingLine = (int)$contentMatches[1];\n                if (isset($contentMatches[2]) && $contentMatches[2] !== '') {\n                    $lineCount = (int)$contentMatches[2];\n                }\n\n                if (array_key_exists(3, $contentMatches)) {\n                    $description = $contentMatches[3];\n                }\n            }\n        }\n\n        return new static(\n            $filePath !== null?$filePath:$fileUri,\n            $fileUri !== null,\n            $startingLine,\n            $lineCount,\n            $description\n        );\n    }\n\n    /**\n     * Returns the file path.\n     *\n     * @return string Path to a file to use as an example.\n     *     May also be an absolute URI.\n     */\n    public function getFilePath()\n    {\n        return $this->filePath;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->filePath . ($this->description ? ' ' . $this->description : '');\n    }\n\n    /**\n     * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute).\n     *\n     * @param string $uri\n     *\n     * @return bool\n     */\n    private function isUriRelative($uri)\n    {\n        return false === strpos($uri, ':');\n    }\n\n    /**\n     * @return int\n     */\n    public function getStartingLine()\n    {\n        return $this->startingLine;\n    }\n\n    /**\n     * @return int\n     */\n    public function getLineCount()\n    {\n        return $this->lineCount;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory;\n\ninterface StaticMethod\n{\n    public static function create($body);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Strategy.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Factory;\n\ninterface Strategy\n{\n    public function create($body);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @author    Jan Schneider <jan@horde.org>\n * @copyright 2017 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\n\nclass AlignFormatter implements Formatter\n{\n    /** @var int The maximum tag name length. */\n    protected $maxLen = 0;\n\n    /**\n     * Constructor.\n     *\n     * @param Tag[] $tags All tags that should later be aligned with the formatter.\n     */\n    public function __construct(array $tags)\n    {\n        foreach ($tags as $tag) {\n            $this->maxLen = max($this->maxLen, strlen($tag->getName()));\n        }\n    }\n\n    /**\n     * Formats the given tag to return a simple plain text version.\n     *\n     * @param Tag $tag\n     *\n     * @return string\n     */\n    public function format(Tag $tag)\n    {\n        return '@' . $tag->getName() . str_repeat(' ', $this->maxLen - strlen($tag->getName()) + 1) . (string)$tag;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Formatter;\n\nclass PassthroughFormatter implements Formatter\n{\n    /**\n     * Formats the given tag to return a simple plain text version.\n     *\n     * @param Tag $tag\n     *\n     * @return string\n     */\n    public function format(Tag $tag)\n    {\n        return trim('@' . $tag->getName() . ' ' . (string)$tag);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\n\ninterface Formatter\n{\n    /**\n     * Formats a tag into a string representation according to a specific format, such as Markdown.\n     *\n     * @param Tag $tag\n     *\n     * @return string\n     */\n    public function format(Tag $tag);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Parses a tag definition for a DocBlock.\n */\nclass Generic extends BaseTag implements Factory\\StaticMethod\n{\n    /**\n     * Parses a tag and populates the member variables.\n     *\n     * @param string $name Name of the tag.\n     * @param Description $description The contents of the given tag.\n     */\n    public function __construct($name, Description $description = null)\n    {\n        $this->validateTagName($name);\n\n        $this->name = $name;\n        $this->description = $description;\n    }\n\n    /**\n     * Creates a new tag that represents any unknown tag type.\n     *\n     * @param string             $body\n     * @param string             $name\n     * @param DescriptionFactory $descriptionFactory\n     * @param TypeContext        $context\n     *\n     * @return static\n     */\n    public static function create(\n        $body,\n        $name = '',\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::stringNotEmpty($name);\n        Assert::notNull($descriptionFactory);\n\n        $description = $descriptionFactory && $body !== \"\" ? $descriptionFactory->create($body, $context) : null;\n\n        return new static($name, $description);\n    }\n\n    /**\n     * Returns the tag as a serialized string\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->description ? $this->description->render() : '');\n    }\n\n    /**\n     * Validates if the tag name matches the expected format, otherwise throws an exception.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    private function validateTagName($name)\n    {\n        if (! preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) {\n            throw new \\InvalidArgumentException(\n                'The tag name \"' . $name . '\" is not wellformed. Tags may only consist of letters, underscores, '\n                . 'hyphens and backslashes.'\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.3\n *\n * @author    Ben Selby <benmatselby@gmail.com>\n * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a @link tag in a Docblock.\n */\nfinal class Link extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'link';\n\n    /** @var string */\n    private $link = '';\n\n    /**\n     * Initializes a link to a URL.\n     *\n     * @param string      $link\n     * @param Description $description\n     */\n    public function __construct($link, Description $description = null)\n    {\n        Assert::string($link);\n\n        $this->link = $link;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null)\n    {\n        Assert::string($body);\n        Assert::notNull($descriptionFactory);\n\n        $parts = preg_split('/\\s+/Su', $body, 2);\n        $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;\n\n        return new static($parts[0], $description);\n    }\n\n    /**\n    * Gets the link\n    *\n    * @return string\n    */\n    public function getLink()\n    {\n        return $this->link;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->link . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse phpDocumentor\\Reflection\\Types\\Void_;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for an {@}method in a Docblock.\n */\nfinal class Method extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'method';\n\n    /** @var string */\n    private $methodName = '';\n\n    /** @var string[] */\n    private $arguments = [];\n\n    /** @var bool */\n    private $isStatic = false;\n\n    /** @var Type */\n    private $returnType;\n\n    public function __construct(\n        $methodName,\n        array $arguments = [],\n        Type $returnType = null,\n        $static = false,\n        Description $description = null\n    ) {\n        Assert::stringNotEmpty($methodName);\n        Assert::boolean($static);\n\n        if ($returnType === null) {\n            $returnType = new Void_();\n        }\n\n        $this->methodName  = $methodName;\n        $this->arguments   = $this->filterArguments($arguments);\n        $this->returnType  = $returnType;\n        $this->isStatic    = $static;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([ $typeResolver, $descriptionFactory ]);\n\n        // 1. none or more whitespace\n        // 2. optionally the keyword \"static\" followed by whitespace\n        // 3. optionally a word with underscores followed by whitespace : as\n        //    type for the return value\n        // 4. then optionally a word with underscores followed by () and\n        //    whitespace : as method name as used by phpDocumentor\n        // 5. then a word with underscores, followed by ( and any character\n        //    until a ) and whitespace : as method name with signature\n        // 6. any remaining text : as description\n        if (!preg_match(\n            '/^\n                # Static keyword\n                # Declares a static method ONLY if type is also present\n                (?:\n                    (static)\n                    \\s+\n                )?\n                # Return type\n                (?:\n                    (   \n                        (?:[\\w\\|_\\\\\\\\]*\\$this[\\w\\|_\\\\\\\\]*)\n                        |\n                        (?:\n                            (?:[\\w\\|_\\\\\\\\]+)\n                            # array notation           \n                            (?:\\[\\])*\n                        )*\n                    )\n                    \\s+\n                )?\n                # Legacy method name (not captured)\n                (?:\n                    [\\w_]+\\(\\)\\s+\n                )?\n                # Method name\n                ([\\w\\|_\\\\\\\\]+)\n                # Arguments\n                (?:\n                    \\(([^\\)]*)\\)\n                )?\n                \\s*\n                # Description\n                (.*)\n            $/sux',\n            $body,\n            $matches\n        )) {\n            return null;\n        }\n\n        list(, $static, $returnType, $methodName, $arguments, $description) = $matches;\n\n        $static      = $static === 'static';\n\n        if ($returnType === '') {\n            $returnType = 'void';\n        }\n\n        $returnType  = $typeResolver->resolve($returnType, $context);\n        $description = $descriptionFactory->create($description, $context);\n\n        if (is_string($arguments) && strlen($arguments) > 0) {\n            $arguments = explode(',', $arguments);\n            foreach ($arguments as &$argument) {\n                $argument = explode(' ', self::stripRestArg(trim($argument)), 2);\n                if ($argument[0][0] === '$') {\n                    $argumentName = substr($argument[0], 1);\n                    $argumentType = new Void_();\n                } else {\n                    $argumentType = $typeResolver->resolve($argument[0], $context);\n                    $argumentName = '';\n                    if (isset($argument[1])) {\n                        $argument[1] = self::stripRestArg($argument[1]);\n                        $argumentName = substr($argument[1], 1);\n                    }\n                }\n\n                $argument = [ 'name' => $argumentName, 'type' => $argumentType];\n            }\n        } else {\n            $arguments = [];\n        }\n\n        return new static($methodName, $arguments, $returnType, $static, $description);\n    }\n\n    /**\n     * Retrieves the method name.\n     *\n     * @return string\n     */\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n\n    /**\n     * Checks whether the method tag describes a static method or not.\n     *\n     * @return bool TRUE if the method declaration is for a static method, FALSE otherwise.\n     */\n    public function isStatic()\n    {\n        return $this->isStatic;\n    }\n\n    /**\n     * @return Type\n     */\n    public function getReturnType()\n    {\n        return $this->returnType;\n    }\n\n    public function __toString()\n    {\n        $arguments = [];\n        foreach ($this->arguments as $argument) {\n            $arguments[] = $argument['type'] . ' $' . $argument['name'];\n        }\n\n        return trim(($this->isStatic() ? 'static ' : '')\n            . (string)$this->returnType . ' '\n            . $this->methodName\n            . '(' . implode(', ', $arguments) . ')'\n            . ($this->description ? ' ' . $this->description->render() : ''));\n    }\n\n    private function filterArguments($arguments)\n    {\n        foreach ($arguments as &$argument) {\n            if (is_string($argument)) {\n                $argument = [ 'name' => $argument ];\n            }\n\n            if (! isset($argument['type'])) {\n                $argument['type'] = new Void_();\n            }\n\n            $keys = array_keys($argument);\n            sort($keys);\n            if ($keys !== [ 'name', 'type' ]) {\n                throw new \\InvalidArgumentException(\n                    'Arguments can only have the \"name\" and \"type\" fields, found: ' . var_export($keys, true)\n                );\n            }\n        }\n\n        return $arguments;\n    }\n\n    private static function stripRestArg($argument)\n    {\n        if (strpos($argument, '...') === 0) {\n            $argument = trim(substr($argument, 3));\n        }\n\n        return $argument;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for the {@}param tag in a Docblock.\n */\nfinal class Param extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'param';\n\n    /** @var Type */\n    private $type;\n\n    /** @var string */\n    private $variableName = '';\n\n    /** @var bool determines whether this is a variadic argument */\n    private $isVariadic = false;\n\n    /**\n     * @param string $variableName\n     * @param Type $type\n     * @param bool $isVariadic\n     * @param Description $description\n     */\n    public function __construct($variableName, Type $type = null, $isVariadic = false, Description $description = null)\n    {\n        Assert::string($variableName);\n        Assert::boolean($isVariadic);\n\n        $this->variableName = $variableName;\n        $this->type = $type;\n        $this->isVariadic = $isVariadic;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/(\\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);\n        $type = null;\n        $variableName = '';\n        $isVariadic = false;\n\n        // if the first item that is encountered is not a variable; it is a type\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {\n            $type = $typeResolver->resolve(array_shift($parts), $context);\n            array_shift($parts);\n        }\n\n        // if the next item starts with a $ or ...$ it must be the variable name\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$' || substr($parts[0], 0, 4) === '...$')) {\n            $variableName = array_shift($parts);\n            array_shift($parts);\n\n            if (substr($variableName, 0, 3) === '...') {\n                $isVariadic = true;\n                $variableName = substr($variableName, 3);\n            }\n\n            if (substr($variableName, 0, 1) === '$') {\n                $variableName = substr($variableName, 1);\n            }\n        }\n\n        $description = $descriptionFactory->create(implode('', $parts), $context);\n\n        return new static($variableName, $type, $isVariadic, $description);\n    }\n\n    /**\n     * Returns the variable's name.\n     *\n     * @return string\n     */\n    public function getVariableName()\n    {\n        return $this->variableName;\n    }\n\n    /**\n     * Returns the variable's type or null if unknown.\n     *\n     * @return Type|null\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Returns whether this tag is variadic.\n     *\n     * @return boolean\n     */\n    public function isVariadic()\n    {\n        return $this->isVariadic;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->type ? $this->type . ' ' : '')\n        . ($this->isVariadic() ? '...' : '')\n        . '$' . $this->variableName\n        . ($this->description ? ' ' . $this->description : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}property tag in a Docblock.\n */\nclass Property extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'property';\n\n    /** @var Type */\n    private $type;\n\n    /** @var string */\n    protected $variableName = '';\n\n    /**\n     * @param string      $variableName\n     * @param Type        $type\n     * @param Description $description\n     */\n    public function __construct($variableName, Type $type = null, Description $description = null)\n    {\n        Assert::string($variableName);\n\n        $this->variableName = $variableName;\n        $this->type = $type;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/(\\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);\n        $type = null;\n        $variableName = '';\n\n        // if the first item that is encountered is not a variable; it is a type\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {\n            $type = $typeResolver->resolve(array_shift($parts), $context);\n            array_shift($parts);\n        }\n\n        // if the next item starts with a $ or ...$ it must be the variable name\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) {\n            $variableName = array_shift($parts);\n            array_shift($parts);\n\n            if (substr($variableName, 0, 1) === '$') {\n                $variableName = substr($variableName, 1);\n            }\n        }\n\n        $description = $descriptionFactory->create(implode('', $parts), $context);\n\n        return new static($variableName, $type, $description);\n    }\n\n    /**\n     * Returns the variable's name.\n     *\n     * @return string\n     */\n    public function getVariableName()\n    {\n        return $this->variableName;\n    }\n\n    /**\n     * Returns the variable's type or null if unknown.\n     *\n     * @return Type|null\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->type ? $this->type . ' ' : '')\n        . '$' . $this->variableName\n        . ($this->description ? ' ' . $this->description : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}property-read tag in a Docblock.\n */\nclass PropertyRead extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'property-read';\n\n    /** @var Type */\n    private $type;\n\n    /** @var string */\n    protected $variableName = '';\n\n    /**\n     * @param string      $variableName\n     * @param Type        $type\n     * @param Description $description\n     */\n    public function __construct($variableName, Type $type = null, Description $description = null)\n    {\n        Assert::string($variableName);\n\n        $this->variableName = $variableName;\n        $this->type = $type;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/(\\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);\n        $type = null;\n        $variableName = '';\n\n        // if the first item that is encountered is not a variable; it is a type\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {\n            $type = $typeResolver->resolve(array_shift($parts), $context);\n            array_shift($parts);\n        }\n\n        // if the next item starts with a $ or ...$ it must be the variable name\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) {\n            $variableName = array_shift($parts);\n            array_shift($parts);\n\n            if (substr($variableName, 0, 1) === '$') {\n                $variableName = substr($variableName, 1);\n            }\n        }\n\n        $description = $descriptionFactory->create(implode('', $parts), $context);\n\n        return new static($variableName, $type, $description);\n    }\n\n    /**\n     * Returns the variable's name.\n     *\n     * @return string\n     */\n    public function getVariableName()\n    {\n        return $this->variableName;\n    }\n\n    /**\n     * Returns the variable's type or null if unknown.\n     *\n     * @return Type|null\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->type ? $this->type . ' ' : '')\n        . '$' . $this->variableName\n        . ($this->description ? ' ' . $this->description : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}property-write tag in a Docblock.\n */\nclass PropertyWrite extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'property-write';\n\n    /** @var Type */\n    private $type;\n\n    /** @var string */\n    protected $variableName = '';\n\n    /**\n     * @param string      $variableName\n     * @param Type        $type\n     * @param Description $description\n     */\n    public function __construct($variableName, Type $type = null, Description $description = null)\n    {\n        Assert::string($variableName);\n\n        $this->variableName = $variableName;\n        $this->type = $type;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/(\\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);\n        $type = null;\n        $variableName = '';\n\n        // if the first item that is encountered is not a variable; it is a type\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {\n            $type = $typeResolver->resolve(array_shift($parts), $context);\n            array_shift($parts);\n        }\n\n        // if the next item starts with a $ or ...$ it must be the variable name\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) {\n            $variableName = array_shift($parts);\n            array_shift($parts);\n\n            if (substr($variableName, 0, 1) === '$') {\n                $variableName = substr($variableName, 1);\n            }\n        }\n\n        $description = $descriptionFactory->create(implode('', $parts), $context);\n\n        return new static($variableName, $type, $description);\n    }\n\n    /**\n     * Returns the variable's name.\n     *\n     * @return string\n     */\n    public function getVariableName()\n    {\n        return $this->variableName;\n    }\n\n    /**\n     * Returns the variable's type or null if unknown.\n     *\n     * @return Type|null\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->type ? $this->type . ' ' : '')\n        . '$' . $this->variableName\n        . ($this->description ? ' ' . $this->description : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n *\n *  @copyright 2010-2017 Mike van Riel<mike@phpdoc.org>\n *  @license   http://www.opensource.org/licenses/mit-license.php MIT\n *  @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference;\n\nuse phpDocumentor\\Reflection\\Fqsen as RealFqsen;\n\n/**\n * Fqsen reference used by {@see phpDocumentor\\Reflection\\DocBlock\\Tags\\See}\n */\nfinal class Fqsen implements Reference\n{\n    /**\n     * @var RealFqsen\n     */\n    private $fqsen;\n\n    /**\n     * Fqsen constructor.\n     */\n    public function __construct(RealFqsen $fqsen)\n    {\n        $this->fqsen = $fqsen;\n    }\n\n    /**\n     * @return string string representation of the referenced fqsen\n     */\n    public function __toString()\n    {\n        return (string)$this->fqsen;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n *\n *  @copyright 2010-2017 Mike van Riel<mike@phpdoc.org>\n *  @license   http://www.opensource.org/licenses/mit-license.php MIT\n *  @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference;\n\n/**\n * Interface for references in {@see phpDocumentor\\Reflection\\DocBlock\\Tags\\See}\n */\ninterface Reference\n{\n    public function __toString();\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n *  For the full copyright and license information, please view the LICENSE\n *  file that was distributed with this source code.\n *\n *  @copyright 2010-2017 Mike van Riel<mike@phpdoc.org>\n *  @license   http://www.opensource.org/licenses/mit-license.php MIT\n *  @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference;\n\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Url reference used by {@see phpDocumentor\\Reflection\\DocBlock\\Tags\\See}\n */\nfinal class Url implements Reference\n{\n    /**\n     * @var string\n     */\n    private $uri;\n\n    /**\n     * Url constructor.\n     */\n    public function __construct($uri)\n    {\n        Assert::stringNotEmpty($uri);\n        $this->uri = $uri;\n    }\n\n    public function __toString()\n    {\n        return $this->uri;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}return tag in a Docblock.\n */\nfinal class Return_ extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'return';\n\n    /** @var Type */\n    private $type;\n\n    public function __construct(Type $type, Description $description = null)\n    {\n        $this->type = $type;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/\\s+/Su', $body, 2);\n\n        $type = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context);\n        $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context);\n\n        return new static($type, $description);\n    }\n\n    /**\n     * Returns the type section of the variable.\n     *\n     * @return Type\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    public function __toString()\n    {\n        return $this->type . ' ' . $this->description;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Fqsen as FqsenRef;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Reference;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Reference\\Url;\nuse phpDocumentor\\Reflection\\FqsenResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for an {@}see tag in a Docblock.\n */\nclass See extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'see';\n\n    /** @var Reference */\n    protected $refers = null;\n\n    /**\n     * Initializes this tag.\n     *\n     * @param Reference $refers\n     * @param Description $description\n     */\n    public function __construct(Reference $refers, Description $description = null)\n    {\n        $this->refers = $refers;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        FqsenResolver $resolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::allNotNull([$resolver, $descriptionFactory]);\n\n        $parts       = preg_split('/\\s+/Su', $body, 2);\n        $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;\n\n        // https://tools.ietf.org/html/rfc2396#section-3\n        if (preg_match('/\\w:\\/\\/\\w/i', $parts[0])) {\n            return new static(new Url($parts[0]), $description);\n        }\n\n        return new static(new FqsenRef($resolver->resolve($parts[0], $context)), $description);\n    }\n\n    /**\n     * Returns the ref of this tag.\n     *\n     * @return Reference\n     */\n    public function getReference()\n    {\n        return $this->refers;\n    }\n\n    /**\n     * Returns a string representation of this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->refers . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}since tag in a Docblock.\n */\nfinal class Since extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'since';\n\n    /**\n     * PCRE regular expression matching a version vector.\n     * Assumes the \"x\" modifier.\n     */\n    const REGEX_VECTOR = '(?:\n        # Normal release vectors.\n        \\d\\S*\n        |\n        # VCS version vectors. Per PHPCS, they are expected to\n        # follow the form of the VCS name, followed by \":\", followed\n        # by the version vector itself.\n        # By convention, popular VCSes like CVS, SVN and GIT use \"$\"\n        # around the actual version vector.\n        [^\\s\\:]+\\:\\s*\\$[^\\$]+\\$\n    )';\n\n    /** @var string The version vector. */\n    private $version = '';\n\n    public function __construct($version = null, Description $description = null)\n    {\n        Assert::nullOrStringNotEmpty($version);\n\n        $this->version     = $version;\n        $this->description = $description;\n    }\n\n    /**\n     * @return static\n     */\n    public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null)\n    {\n        Assert::nullOrString($body);\n        if (empty($body)) {\n            return new static();\n        }\n\n        $matches = [];\n        if (! preg_match('/^(' . self::REGEX_VECTOR . ')\\s*(.+)?$/sux', $body, $matches)) {\n            return null;\n        }\n\n        return new static(\n            $matches[1],\n            $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context)\n        );\n    }\n\n    /**\n     * Gets the version section of the tag.\n     *\n     * @return string\n     */\n    public function getVersion()\n    {\n        return $this->version;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->version . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}source tag in a Docblock.\n */\nfinal class Source extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'source';\n\n    /** @var int The starting line, relative to the structural element's location. */\n    private $startingLine = 1;\n\n    /** @var int|null The number of lines, relative to the starting line. NULL means \"to the end\". */\n    private $lineCount = null;\n\n    public function __construct($startingLine, $lineCount = null, Description $description = null)\n    {\n        Assert::integerish($startingLine);\n        Assert::nullOrIntegerish($lineCount);\n\n        $this->startingLine = (int)$startingLine;\n        $this->lineCount    = $lineCount !== null ? (int)$lineCount : null;\n        $this->description  = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null)\n    {\n        Assert::stringNotEmpty($body);\n        Assert::notNull($descriptionFactory);\n\n        $startingLine = 1;\n        $lineCount    = null;\n        $description  = null;\n\n        // Starting line / Number of lines / Description\n        if (preg_match('/^([1-9]\\d*)\\s*(?:((?1))\\s+)?(.*)$/sux', $body, $matches)) {\n            $startingLine = (int)$matches[1];\n            if (isset($matches[2]) && $matches[2] !== '') {\n                $lineCount = (int)$matches[2];\n            }\n\n            $description = $matches[3];\n        }\n\n        return new static($startingLine, $lineCount, $descriptionFactory->create($description, $context));\n    }\n\n    /**\n     * Gets the starting line.\n     *\n     * @return int The starting line, relative to the structural element's\n     *     location.\n     */\n    public function getStartingLine()\n    {\n        return $this->startingLine;\n    }\n\n    /**\n     * Returns the number of lines.\n     *\n     * @return int|null The number of lines, relative to the starting line. NULL\n     *     means \"to the end\".\n     */\n    public function getLineCount()\n    {\n        return $this->lineCount;\n    }\n\n    public function __toString()\n    {\n        return $this->startingLine\n        . ($this->lineCount !== null ? ' ' . $this->lineCount : '')\n        . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}throws tag in a Docblock.\n */\nfinal class Throws extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'throws';\n\n    /** @var Type */\n    private $type;\n\n    public function __construct(Type $type, Description $description = null)\n    {\n        $this->type        = $type;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts = preg_split('/\\s+/Su', $body, 2);\n\n        $type        = $typeResolver->resolve(isset($parts[0]) ? $parts[0] : '', $context);\n        $description = $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context);\n\n        return new static($type, $description);\n    }\n\n    /**\n     * Returns the type section of the variable.\n     *\n     * @return Type\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    public function __toString()\n    {\n        return $this->type . ' ' . $this->description;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Fqsen;\nuse phpDocumentor\\Reflection\\FqsenResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}uses tag in a Docblock.\n */\nfinal class Uses extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'uses';\n\n    /** @var Fqsen */\n    protected $refers = null;\n\n    /**\n     * Initializes this tag.\n     *\n     * @param Fqsen       $refers\n     * @param Description $description\n     */\n    public function __construct(Fqsen $refers, Description $description = null)\n    {\n        $this->refers      = $refers;\n        $this->description = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        FqsenResolver $resolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::string($body);\n        Assert::allNotNull([$resolver, $descriptionFactory]);\n\n        $parts = preg_split('/\\s+/Su', $body, 2);\n\n        return new static(\n            $resolver->resolve($parts[0], $context),\n            $descriptionFactory->create(isset($parts[1]) ? $parts[1] : '', $context)\n        );\n    }\n\n    /**\n     * Returns the structural element this tag refers to.\n     *\n     * @return Fqsen\n     */\n    public function getReference()\n    {\n        return $this->refers;\n    }\n\n    /**\n     * Returns a string representation of this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->refers . ' ' . $this->description->render();\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Type;\nuse phpDocumentor\\Reflection\\TypeResolver;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}var tag in a Docblock.\n */\nclass Var_ extends BaseTag implements Factory\\StaticMethod\n{\n    /** @var string */\n    protected $name = 'var';\n\n    /** @var Type */\n    private $type;\n\n    /** @var string */\n    protected $variableName = '';\n\n    /**\n     * @param string      $variableName\n     * @param Type        $type\n     * @param Description $description\n     */\n    public function __construct($variableName, Type $type = null, Description $description = null)\n    {\n        Assert::string($variableName);\n\n        $this->variableName = $variableName;\n        $this->type         = $type;\n        $this->description  = $description;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public static function create(\n        $body,\n        TypeResolver $typeResolver = null,\n        DescriptionFactory $descriptionFactory = null,\n        TypeContext $context = null\n    ) {\n        Assert::stringNotEmpty($body);\n        Assert::allNotNull([$typeResolver, $descriptionFactory]);\n\n        $parts        = preg_split('/(\\s+)/Su', $body, 3, PREG_SPLIT_DELIM_CAPTURE);\n        $type         = null;\n        $variableName = '';\n\n        // if the first item that is encountered is not a variable; it is a type\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] !== '$')) {\n            $type = $typeResolver->resolve(array_shift($parts), $context);\n            array_shift($parts);\n        }\n\n        // if the next item starts with a $ or ...$ it must be the variable name\n        if (isset($parts[0]) && (strlen($parts[0]) > 0) && ($parts[0][0] === '$')) {\n            $variableName = array_shift($parts);\n            array_shift($parts);\n\n            if (substr($variableName, 0, 1) === '$') {\n                $variableName = substr($variableName, 1);\n            }\n        }\n\n        $description = $descriptionFactory->create(implode('', $parts), $context);\n\n        return new static($variableName, $type, $description);\n    }\n\n    /**\n     * Returns the variable's name.\n     *\n     * @return string\n     */\n    public function getVariableName()\n    {\n        return $this->variableName;\n    }\n\n    /**\n     * Returns the variable's type or null if unknown.\n     *\n     * @return Type|null\n     */\n    public function getType()\n    {\n        return $this->type;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return ($this->type ? $this->type . ' ' : '')\n            . (empty($this->variableName) ? null : ('$' . $this->variableName))\n            . ($this->description ? ' ' . $this->description : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php",
    "content": "<?php\n/**\n * phpDocumentor\n *\n * PHP Version 5.3\n *\n * @author    Vasil Rangelov <boen.robot@gmail.com>\n * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\DocBlock\\Tags;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Description;\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\Types\\Context as TypeContext;\nuse Webmozart\\Assert\\Assert;\n\n/**\n * Reflection class for a {@}version tag in a Docblock.\n */\nfinal class Version extends BaseTag implements Factory\\StaticMethod\n{\n    protected $name = 'version';\n\n    /**\n     * PCRE regular expression matching a version vector.\n     * Assumes the \"x\" modifier.\n     */\n    const REGEX_VECTOR = '(?:\n        # Normal release vectors.\n        \\d\\S*\n        |\n        # VCS version vectors. Per PHPCS, they are expected to\n        # follow the form of the VCS name, followed by \":\", followed\n        # by the version vector itself.\n        # By convention, popular VCSes like CVS, SVN and GIT use \"$\"\n        # around the actual version vector.\n        [^\\s\\:]+\\:\\s*\\$[^\\$]+\\$\n    )';\n\n    /** @var string The version vector. */\n    private $version = '';\n\n    public function __construct($version = null, Description $description = null)\n    {\n        Assert::nullOrStringNotEmpty($version);\n\n        $this->version = $version;\n        $this->description = $description;\n    }\n\n    /**\n     * @return static\n     */\n    public static function create($body, DescriptionFactory $descriptionFactory = null, TypeContext $context = null)\n    {\n        Assert::nullOrString($body);\n        if (empty($body)) {\n            return new static();\n        }\n\n        $matches = [];\n        if (!preg_match('/^(' . self::REGEX_VECTOR . ')\\s*(.+)?$/sux', $body, $matches)) {\n            return null;\n        }\n\n        return new static(\n            $matches[1],\n            $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context)\n        );\n    }\n\n    /**\n     * Gets the version section of the tag.\n     *\n     * @return string\n     */\n    public function getVersion()\n    {\n        return $this->version;\n    }\n\n    /**\n     * Returns a string representation for this tag.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->version . ($this->description ? ' ' . $this->description->render() : '');\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlock.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\nuse Webmozart\\Assert\\Assert;\n\nfinal class DocBlock\n{\n    /** @var string The opening line for this docblock. */\n    private $summary = '';\n\n    /** @var DocBlock\\Description The actual description for this docblock. */\n    private $description = null;\n\n    /** @var Tag[] An array containing all the tags in this docblock; except inline. */\n    private $tags = [];\n\n    /** @var Types\\Context Information about the context of this DocBlock. */\n    private $context = null;\n\n    /** @var Location Information about the location of this DocBlock. */\n    private $location = null;\n\n    /** @var bool Is this DocBlock (the start of) a template? */\n    private $isTemplateStart = false;\n\n    /** @var bool Does this DocBlock signify the end of a DocBlock template? */\n    private $isTemplateEnd = false;\n\n    /**\n     * @param string $summary\n     * @param DocBlock\\Description $description\n     * @param DocBlock\\Tag[] $tags\n     * @param Types\\Context $context The context in which the DocBlock occurs.\n     * @param Location $location The location within the file that this DocBlock occurs in.\n     * @param bool $isTemplateStart\n     * @param bool $isTemplateEnd\n     */\n    public function __construct(\n        $summary = '',\n        DocBlock\\Description $description = null,\n        array $tags = [],\n        Types\\Context $context = null,\n        Location $location = null,\n        $isTemplateStart = false,\n        $isTemplateEnd = false\n    ) {\n        Assert::string($summary);\n        Assert::boolean($isTemplateStart);\n        Assert::boolean($isTemplateEnd);\n        Assert::allIsInstanceOf($tags, Tag::class);\n\n        $this->summary = $summary;\n        $this->description = $description ?: new DocBlock\\Description('');\n        foreach ($tags as $tag) {\n            $this->addTag($tag);\n        }\n\n        $this->context = $context;\n        $this->location = $location;\n\n        $this->isTemplateEnd = $isTemplateEnd;\n        $this->isTemplateStart = $isTemplateStart;\n    }\n\n    /**\n     * @return string\n     */\n    public function getSummary()\n    {\n        return $this->summary;\n    }\n\n    /**\n     * @return DocBlock\\Description\n     */\n    public function getDescription()\n    {\n        return $this->description;\n    }\n\n    /**\n     * Returns the current context.\n     *\n     * @return Types\\Context\n     */\n    public function getContext()\n    {\n        return $this->context;\n    }\n\n    /**\n     * Returns the current location.\n     *\n     * @return Location\n     */\n    public function getLocation()\n    {\n        return $this->location;\n    }\n\n    /**\n     * Returns whether this DocBlock is the start of a Template section.\n     *\n     * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker\n     * (`#@+`) that is appended directly after the opening `/**` of a DocBlock.\n     *\n     * An example of such an opening is:\n     *\n     * ```\n     * /**#@+\n     *  * My DocBlock\n     *  * /\n     * ```\n     *\n     * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all\n     * elements that follow until another DocBlock is found that contains the closing marker (`#@-`).\n     *\n     * @see self::isTemplateEnd() for the check whether a closing marker was provided.\n     *\n     * @return boolean\n     */\n    public function isTemplateStart()\n    {\n        return $this->isTemplateStart;\n    }\n\n    /**\n     * Returns whether this DocBlock is the end of a Template section.\n     *\n     * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.\n     *\n     * @return boolean\n     */\n    public function isTemplateEnd()\n    {\n        return $this->isTemplateEnd;\n    }\n\n    /**\n     * Returns the tags for this DocBlock.\n     *\n     * @return Tag[]\n     */\n    public function getTags()\n    {\n        return $this->tags;\n    }\n\n    /**\n     * Returns an array of tags matching the given name. If no tags are found\n     * an empty array is returned.\n     *\n     * @param string $name String to search by.\n     *\n     * @return Tag[]\n     */\n    public function getTagsByName($name)\n    {\n        Assert::string($name);\n\n        $result = [];\n\n        /** @var Tag $tag */\n        foreach ($this->getTags() as $tag) {\n            if ($tag->getName() !== $name) {\n                continue;\n            }\n\n            $result[] = $tag;\n        }\n\n        return $result;\n    }\n\n    /**\n     * Checks if a tag of a certain type is present in this DocBlock.\n     *\n     * @param string $name Tag name to check for.\n     *\n     * @return bool\n     */\n    public function hasTag($name)\n    {\n        Assert::string($name);\n\n        /** @var Tag $tag */\n        foreach ($this->getTags() as $tag) {\n            if ($tag->getName() === $name) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Remove a tag from this DocBlock.\n     *\n     * @param Tag $tag The tag to remove.\n     *\n     * @return void\n     */\n    public function removeTag(Tag $tagToRemove)\n    {\n        foreach ($this->tags as $key => $tag) {\n            if ($tag === $tagToRemove) {\n                unset($this->tags[$key]);\n                break;\n            }\n        }\n    }\n\n    /**\n     * Adds a tag to this DocBlock.\n     *\n     * @param Tag $tag The tag to add.\n     *\n     * @return void\n     */\n    private function addTag(Tag $tag)\n    {\n        $this->tags[] = $tag;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\nuse phpDocumentor\\Reflection\\DocBlock\\DescriptionFactory;\nuse phpDocumentor\\Reflection\\DocBlock\\StandardTagFactory;\nuse phpDocumentor\\Reflection\\DocBlock\\Tag;\nuse phpDocumentor\\Reflection\\DocBlock\\TagFactory;\nuse Webmozart\\Assert\\Assert;\n\nfinal class DocBlockFactory implements DocBlockFactoryInterface\n{\n    /** @var DocBlock\\DescriptionFactory */\n    private $descriptionFactory;\n\n    /** @var DocBlock\\TagFactory */\n    private $tagFactory;\n\n    /**\n     * Initializes this factory with the required subcontractors.\n     *\n     * @param DescriptionFactory $descriptionFactory\n     * @param TagFactory         $tagFactory\n     */\n    public function __construct(DescriptionFactory $descriptionFactory, TagFactory $tagFactory)\n    {\n        $this->descriptionFactory = $descriptionFactory;\n        $this->tagFactory = $tagFactory;\n    }\n\n    /**\n     * Factory method for easy instantiation.\n     *\n     * @param string[] $additionalTags\n     *\n     * @return DocBlockFactory\n     */\n    public static function createInstance(array $additionalTags = [])\n    {\n        $fqsenResolver = new FqsenResolver();\n        $tagFactory = new StandardTagFactory($fqsenResolver);\n        $descriptionFactory = new DescriptionFactory($tagFactory);\n\n        $tagFactory->addService($descriptionFactory);\n        $tagFactory->addService(new TypeResolver($fqsenResolver));\n\n        $docBlockFactory = new self($descriptionFactory, $tagFactory);\n        foreach ($additionalTags as $tagName => $tagHandler) {\n            $docBlockFactory->registerTagHandler($tagName, $tagHandler);\n        }\n\n        return $docBlockFactory;\n    }\n\n    /**\n     * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the\n     *                                getDocComment method (such as a ReflectionClass object).\n     * @param Types\\Context $context\n     * @param Location      $location\n     *\n     * @return DocBlock\n     */\n    public function create($docblock, Types\\Context $context = null, Location $location = null)\n    {\n        if (is_object($docblock)) {\n            if (!method_exists($docblock, 'getDocComment')) {\n                $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method';\n                throw new \\InvalidArgumentException($exceptionMessage);\n            }\n\n            $docblock = $docblock->getDocComment();\n        }\n\n        Assert::stringNotEmpty($docblock);\n\n        if ($context === null) {\n            $context = new Types\\Context('');\n        }\n\n        $parts = $this->splitDocBlock($this->stripDocComment($docblock));\n        list($templateMarker, $summary, $description, $tags) = $parts;\n\n        return new DocBlock(\n            $summary,\n            $description ? $this->descriptionFactory->create($description, $context) : null,\n            array_filter($this->parseTagBlock($tags, $context), function ($tag) {\n                return $tag instanceof Tag;\n            }),\n            $context,\n            $location,\n            $templateMarker === '#@+',\n            $templateMarker === '#@-'\n        );\n    }\n\n    public function registerTagHandler($tagName, $handler)\n    {\n        $this->tagFactory->registerTagHandler($tagName, $handler);\n    }\n\n    /**\n     * Strips the asterisks from the DocBlock comment.\n     *\n     * @param string $comment String containing the comment text.\n     *\n     * @return string\n     */\n    private function stripDocComment($comment)\n    {\n        $comment = trim(preg_replace('#[ \\t]*(?:\\/\\*\\*|\\*\\/|\\*)?[ \\t]{0,1}(.*)?#u', '$1', $comment));\n\n        // reg ex above is not able to remove */ from a single line docblock\n        if (substr($comment, -2) === '*/') {\n            $comment = trim(substr($comment, 0, -2));\n        }\n\n        return str_replace([\"\\r\\n\", \"\\r\"], \"\\n\", $comment);\n    }\n\n    /**\n     * Splits the DocBlock into a template marker, summary, description and block of tags.\n     *\n     * @param string $comment Comment to split into the sub-parts.\n     *\n     * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split.\n     * @author Mike van Riel <me@mikevanriel.com> for extending the regex with template marker support.\n     *\n     * @return string[] containing the template marker (if any), summary, description and a string containing the tags.\n     */\n    private function splitDocBlock($comment)\n    {\n        // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This\n        // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the\n        // performance impact of running a regular expression\n        if (strpos($comment, '@') === 0) {\n            return ['', '', '', $comment];\n        }\n\n        // clears all extra horizontal whitespace from the line endings to prevent parsing issues\n        $comment = preg_replace('/\\h*$/Sum', '', $comment);\n\n        /*\n         * Splits the docblock into a template marker, summary, description and tags section.\n         *\n         * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may\n         *   occur after it and will be stripped).\n         * - The short description is started from the first character until a dot is encountered followed by a\n         *   newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing\n         *   errors). This is optional.\n         * - The long description, any character until a new line is encountered followed by an @ and word\n         *   characters (a tag). This is optional.\n         * - Tags; the remaining characters\n         *\n         * Big thanks to RichardJ for contributing this Regular Expression\n         */\n        preg_match(\n            '/\n            \\A\n            # 1. Extract the template marker\n            (?:(\\#\\@\\+|\\#\\@\\-)\\n?)?\n\n            # 2. Extract the summary\n            (?:\n              (?! @\\pL ) # The summary may not start with an @\n              (\n                [^\\n.]+\n                (?:\n                  (?! \\. \\n | \\n{2} )     # End summary upon a dot followed by newline or two newlines\n                  [\\n.] (?! [ \\t]* @\\pL ) # End summary when an @ is found as first character on a new line\n                  [^\\n.]+                 # Include anything else\n                )*\n                \\.?\n              )?\n            )\n\n            # 3. Extract the description\n            (?:\n              \\s*        # Some form of whitespace _must_ precede a description because a summary must be there\n              (?! @\\pL ) # The description may not start with an @\n              (\n                [^\\n]+\n                (?: \\n+\n                  (?! [ \\t]* @\\pL ) # End description when an @ is found as first character on a new line\n                  [^\\n]+            # Include anything else\n                )*\n              )\n            )?\n\n            # 4. Extract the tags (anything that follows)\n            (\\s+ [\\s\\S]*)? # everything that follows\n            /ux',\n            $comment,\n            $matches\n        );\n        array_shift($matches);\n\n        while (count($matches) < 4) {\n            $matches[] = '';\n        }\n\n        return $matches;\n    }\n\n    /**\n     * Creates the tag objects.\n     *\n     * @param string $tags Tag block to parse.\n     * @param Types\\Context $context Context of the parsed Tag\n     *\n     * @return DocBlock\\Tag[]\n     */\n    private function parseTagBlock($tags, Types\\Context $context)\n    {\n        $tags = $this->filterTagBlock($tags);\n        if (!$tags) {\n            return [];\n        }\n\n        $result = $this->splitTagBlockIntoTagLines($tags);\n        foreach ($result as $key => $tagLine) {\n            $result[$key] = $this->tagFactory->create(trim($tagLine), $context);\n        }\n\n        return $result;\n    }\n\n    /**\n     * @param string $tags\n     *\n     * @return string[]\n     */\n    private function splitTagBlockIntoTagLines($tags)\n    {\n        $result = [];\n        foreach (explode(\"\\n\", $tags) as $tag_line) {\n            if (isset($tag_line[0]) && ($tag_line[0] === '@')) {\n                $result[] = $tag_line;\n            } else {\n                $result[count($result) - 1] .= \"\\n\" . $tag_line;\n            }\n        }\n\n        return $result;\n    }\n\n    /**\n     * @param $tags\n     * @return string\n     */\n    private function filterTagBlock($tags)\n    {\n        $tags = trim($tags);\n        if (!$tags) {\n            return null;\n        }\n\n        if ('@' !== $tags[0]) {\n            // @codeCoverageIgnoreStart\n            // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that\n            // we didn't foresee.\n            throw new \\LogicException('A tag block started with text instead of an at-sign(@): ' . $tags);\n            // @codeCoverageIgnoreEnd\n        }\n\n        return $tags;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php",
    "content": "<?php\nnamespace phpDocumentor\\Reflection;\n\ninterface DocBlockFactoryInterface\n{\n    /**\n     * Factory method for easy instantiation.\n     *\n     * @param string[] $additionalTags\n     *\n     * @return DocBlockFactory\n     */\n    public static function createInstance(array $additionalTags = []);\n\n    /**\n     * @param string $docblock\n     * @param Types\\Context $context\n     * @param Location $location\n     *\n     * @return DocBlock\n     */\n    public function create($docblock, Types\\Context $context = null, Location $location = null);\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2010 Mike van Riel\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/README.md",
    "content": "TypeResolver and FqsenResolver\n==============================\n\nThe specification on types in DocBlocks (PSR-5) describes various keywords and special constructs\nbut also how to statically resolve the partial name of a Class into a Fully Qualified Class Name (FQCN).\n\nPSR-5 also introduces an additional way to describe deeper elements than Classes, Interfaces and Traits \ncalled the Fully Qualified Structural Element Name (FQSEN). Using this it is possible to refer to methods,\nproperties and class constants but also functions and global constants.\n\nThis package provides two Resolvers that are capable of \n\n1. Returning a series of Value Object for given expression while resolving any partial class names, and \n2. Returning an FQSEN object after resolving any partial Structural Element Names into Fully Qualified Structural \n   Element names.\n\n## Installing\n\nThe easiest way to install this library is with [Composer](https://getcomposer.org) using the following command:\n\n    $ composer require phpdocumentor/type-resolver\n\n## Examples\n\nReady to dive in and don't want to read through all that text below? Just consult the [examples](examples) folder and\ncheck which type of action that your want to accomplish.\n\n## On Types and Element Names\n\nThis component can be used in one of two ways\n \n1. To resolve a Type or\n2. To resolve a Fully Qualified Structural Element Name\n \nThe big difference between these two is in the number of things it can resolve. \n\nThe TypeResolver can resolve:\n\n- a php primitive or pseudo-primitive such as a string or void (`@var string` or `@return void`).\n- a composite such as an array of string (`@var string[]`).\n- a compound such as a string or integer (`@var string|integer`).\n- an object or interface such as the TypeResolver class (`@var TypeResolver` \n  or `@var \\phpDocumentor\\Reflection\\TypeResolver`)\n\n  > please note that if you want to pass partial class names that additional steps are necessary, see the \n  > chapter `Resolving partial classes and FQSENs` for more information.\n\nWhere the FqsenResolver can resolve:\n\n- Constant expressions (i.e. `@see \\MyNamespace\\MY_CONSTANT`)\n- Function expressions (i.e. `@see \\MyNamespace\\myFunction()`)\n- Class expressions (i.e. `@see \\MyNamespace\\MyClass`)\n- Interface expressions (i.e. `@see \\MyNamespace\\MyInterface`)\n- Trait expressions (i.e. `@see \\MyNamespace\\MyTrait`)\n- Class constant expressions (i.e. `@see \\MyNamespace\\MyClass::MY_CONSTANT`)\n- Property expressions (i.e. `@see \\MyNamespace\\MyClass::$myProperty`)\n- Method expressions (i.e. `@see \\MyNamespace\\MyClass::myMethod()`)\n\n## Resolving a type\n\nIn order to resolve a type you will have to instantiate the class `\\phpDocumentor\\Reflection\\TypeResolver`\nand call its `resolve` method like this:\n\n```php\n$typeResolver = new \\phpDocumentor\\Reflection\\TypeResolver();\n$type = $typeResolver->resolve('string|integer');\n```\n\nIn this example you will receive a Value Object of class `\\phpDocumentor\\Reflection\\Types\\Compound` that has two \nelements, one of type `\\phpDocumentor\\Reflection\\Types\\String_` and one of type \n`\\phpDocumentor\\Reflection\\Types\\Integer`.\n\nThe real power of this resolver is in its capability to expand partial class names into fully qualified class names; but\nin order to do that we need an additional `\\phpDocumentor\\Reflection\\Types\\Context` class that will inform the resolver \nin which namespace the given expression occurs and which namespace aliases (or imports) apply.\n\n## Resolving an FQSEN\n\nA Fully Qualified Structural Element Name is a reference to another element in your code bases and can be resolved using\nthe `\\phpDocumentor\\Reflection\\FqsenResolver` class' `resolve` method, like this:\n\n```php\n$fqsenResolver = new \\phpDocumentor\\Reflection\\FqsenResolver();\n$fqsen = $fqsenResolver->resolve('\\phpDocumentor\\Reflection\\FqsenResolver::resolve()');\n```\n\nIn this example we resolve a Fully Qualified Structural Element Name (meaning that it includes the full namespace, class\nname and element name) and receive a Value Object of type `\\phpDocumentor\\Reflection\\Fqsen`.\n\nThe real power of this resolver is in its capability to expand partial element names into Fully Qualified Structural \nElement Names; but in order to do that we need an additional `\\phpDocumentor\\Reflection\\Types\\Context` class that will \ninform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply.\n\n## Resolving partial Classes and Structural Element Names\n\nPerhaps the best feature of this library is that it knows how to resolve partial class names into fully qualified class \nnames.\n\nFor example, you have this file:\n\n```php\nnamespace My\\Example;\n\nuse phpDocumentor\\Reflection\\Types;\n\nclass Classy\n{\n    /**\n     * @var Types\\Context\n     * @see Classy::otherFunction()\n     */\n    public function __construct($context) {}\n    \n    public function otherFunction(){}\n}\n```\n\nSuppose that you would want to resolve (and expand) the type in the `@var` tag and the element name in the `@see` tag.\nFor the resolvers to know how to expand partial names you have to provide a bit of _Context_ for them by instantiating\na new class named `\\phpDocumentor\\Reflection\\Types\\Context` with the name of the namespace and the aliases that are in \nplay.\n\n### Creating a Context\n\nYou can do this by manually creating a Context like this:\n\n```php\n$context = new \\phpDocumentor\\Reflection\\Types\\Context(\n    '\\My\\Example', \n    [ 'Types' => '\\phpDocumentor\\Reflection\\Types']\n);\n```\n\nOr by using the `\\phpDocumentor\\Reflection\\Types\\ContextFactory` to instantiate a new context based on a Reflector \nobject or by providing the namespace that you'd like to extract and the source code of the file in which the given\ntype expression occurs.\n\n```php\n$contextFactory = new \\phpDocumentor\\Reflection\\Types\\ContextFactory();\n$context = $contextFactory->createFromReflector(new ReflectionMethod('\\My\\Example\\Classy', '__construct'));\n```\n\nor\n\n```php\n$contextFactory = new \\phpDocumentor\\Reflection\\Types\\ContextFactory();\n$context = $contextFactory->createForNamespace('\\My\\Example', file_get_contents('My/Example/Classy.php'));\n```\n\n### Using the Context\n\nAfter you have obtained a Context it is just a matter of passing it along with the `resolve` method of either Resolver \nclass as second argument and the Resolvers will take this into account when resolving partial names.\n\nTo obtain the resolved class name for the `@var` tag in the example above you can do:\n\n```php\n$typeResolver = new \\phpDocumentor\\Reflection\\TypeResolver();\n$type = $typeResolver->resolve('Types\\Context', $context);\n```\n\nWhen you do this you will receive an object of class `\\phpDocumentor\\Reflection\\Types\\Object_` for which you can call \nthe `getFqsen` method to receive a Value Object that represents the complete FQSEN. So that would be \n`phpDocumentor\\Reflection\\Types\\Context`.\n\n> Why is the FQSEN wrapped in another object `Object_`?\n> \n> The resolve method of the TypeResolver only returns object with the interface `Type` and the FQSEN is a common\n> type that does not represent a Type. Also: in some cases a type can represent an \"Untyped Object\", meaning that it\n> is an object (signified by the `object` keyword) but does not refer to a specific element using an FQSEN.\n\nAnother example is on how to resolve the FQSEN of a method as can be seen with the `@see` tag in the example above. To\nresolve that you can do the following:\n\n```php\n$fqsenResolver = new \\phpDocumentor\\Reflection\\FqsenResolver();\n$type = $fqsenResolver->resolve('Classy::otherFunction()', $context);\n```\n\nBecause Classy is a Class in the current namespace its FQSEN will have the `My\\Example` namespace and by calling the \n`resolve` method of the FQSEN Resolver you will receive an `Fqsen` object that refers to \n`\\My\\Example\\Classy::otherFunction()`.\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/composer.json",
    "content": "{\n    \"name\":    \"phpdocumentor/type-resolver\",\n    \"type\":    \"library\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\"name\": \"Mike van Riel\", \"email\": \"me@mikevanriel.com\"}\n    ],\n    \"require\": {\n        \"php\": \"^5.5 || ^7.0\",\n        \"phpdocumentor/reflection-common\": \"^1.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\"phpDocumentor\\\\Reflection\\\\\": [\"src/\"]}\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\"phpDocumentor\\\\Reflection\\\\\": [\"tests/unit\"]}\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^5.2||^4.8.24\",\n        \"mockery/mockery\": \"^0.9.4\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/FqsenResolver.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\nuse phpDocumentor\\Reflection\\Types\\Context;\n\nclass FqsenResolver\n{\n    /** @var string Definition of the NAMESPACE operator in PHP */\n    const OPERATOR_NAMESPACE = '\\\\';\n\n    public function resolve($fqsen, Context $context = null)\n    {\n        if ($context === null) {\n            $context = new Context('');\n        }\n\n        if ($this->isFqsen($fqsen)) {\n            return new Fqsen($fqsen);\n        }\n\n        return $this->resolvePartialStructuralElementName($fqsen, $context);\n    }\n\n    /**\n     * Tests whether the given type is a Fully Qualified Structural Element Name.\n     *\n     * @param string $type\n     *\n     * @return bool\n     */\n    private function isFqsen($type)\n    {\n        return strpos($type, self::OPERATOR_NAMESPACE) === 0;\n    }\n\n    /**\n     * Resolves a partial Structural Element Name (i.e. `Reflection\\DocBlock`) to its FQSEN representation\n     * (i.e. `\\phpDocumentor\\Reflection\\DocBlock`) based on the Namespace and aliases mentioned in the Context.\n     *\n     * @param string $type\n     * @param Context $context\n     *\n     * @return Fqsen\n     * @throws \\InvalidArgumentException when type is not a valid FQSEN.\n     */\n    private function resolvePartialStructuralElementName($type, Context $context)\n    {\n        $typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2);\n\n        $namespaceAliases = $context->getNamespaceAliases();\n\n        // if the first segment is not an alias; prepend namespace name and return\n        if (!isset($namespaceAliases[$typeParts[0]])) {\n            $namespace = $context->getNamespace();\n            if ('' !== $namespace) {\n                $namespace .= self::OPERATOR_NAMESPACE;\n            }\n\n            return new Fqsen(self::OPERATOR_NAMESPACE . $namespace . $type);\n        }\n\n        $typeParts[0] = $namespaceAliases[$typeParts[0]];\n\n        return new Fqsen(self::OPERATOR_NAMESPACE . implode(self::OPERATOR_NAMESPACE, $typeParts));\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Type.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\ninterface Type\n{\n    public function __toString();\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/TypeResolver.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection;\n\nuse phpDocumentor\\Reflection\\Types\\Array_;\nuse phpDocumentor\\Reflection\\Types\\Compound;\nuse phpDocumentor\\Reflection\\Types\\Context;\nuse phpDocumentor\\Reflection\\Types\\Iterable_;\nuse phpDocumentor\\Reflection\\Types\\Nullable;\nuse phpDocumentor\\Reflection\\Types\\Object_;\n\nfinal class TypeResolver\n{\n    /** @var string Definition of the ARRAY operator for types */\n    const OPERATOR_ARRAY = '[]';\n\n    /** @var string Definition of the NAMESPACE operator in PHP */\n    const OPERATOR_NAMESPACE = '\\\\';\n\n    /** @var string[] List of recognized keywords and unto which Value Object they map */\n    private $keywords = array(\n        'string' => Types\\String_::class,\n        'int' => Types\\Integer::class,\n        'integer' => Types\\Integer::class,\n        'bool' => Types\\Boolean::class,\n        'boolean' => Types\\Boolean::class,\n        'float' => Types\\Float_::class,\n        'double' => Types\\Float_::class,\n        'object' => Object_::class,\n        'mixed' => Types\\Mixed_::class,\n        'array' => Array_::class,\n        'resource' => Types\\Resource_::class,\n        'void' => Types\\Void_::class,\n        'null' => Types\\Null_::class,\n        'scalar' => Types\\Scalar::class,\n        'callback' => Types\\Callable_::class,\n        'callable' => Types\\Callable_::class,\n        'false' => Types\\Boolean::class,\n        'true' => Types\\Boolean::class,\n        'self' => Types\\Self_::class,\n        '$this' => Types\\This::class,\n        'static' => Types\\Static_::class,\n        'parent' => Types\\Parent_::class,\n        'iterable' => Iterable_::class,\n    );\n\n    /** @var FqsenResolver */\n    private $fqsenResolver;\n\n    /**\n     * Initializes this TypeResolver with the means to create and resolve Fqsen objects.\n     *\n     * @param FqsenResolver $fqsenResolver\n     */\n    public function __construct(FqsenResolver $fqsenResolver = null)\n    {\n        $this->fqsenResolver = $fqsenResolver ?: new FqsenResolver();\n    }\n\n    /**\n     * Analyzes the given type and returns the FQCN variant.\n     *\n     * When a type is provided this method checks whether it is not a keyword or\n     * Fully Qualified Class Name. If so it will use the given namespace and\n     * aliases to expand the type to a FQCN representation.\n     *\n     * This method only works as expected if the namespace and aliases are set;\n     * no dynamic reflection is being performed here.\n     *\n     * @param string $type     The relative or absolute type.\n     * @param Context $context\n     *\n     * @uses Context::getNamespace()        to determine with what to prefix the type name.\n     * @uses Context::getNamespaceAliases() to check whether the first part of the relative type name should not be\n     *     replaced with another namespace.\n     *\n     * @return Type|null\n     */\n    public function resolve($type, Context $context = null)\n    {\n        if (!is_string($type)) {\n            throw new \\InvalidArgumentException(\n                'Attempted to resolve type but it appeared not to be a string, received: ' . var_export($type, true)\n            );\n        }\n\n        $type = trim($type);\n        if (!$type) {\n            throw new \\InvalidArgumentException('Attempted to resolve \"' . $type . '\" but it appears to be empty');\n        }\n\n        if ($context === null) {\n            $context = new Context('');\n        }\n\n        switch (true) {\n            case $this->isNullableType($type):\n                return $this->resolveNullableType($type, $context);\n            case $this->isKeyword($type):\n                return $this->resolveKeyword($type);\n            case ($this->isCompoundType($type)):\n                return $this->resolveCompoundType($type, $context);\n            case $this->isTypedArray($type):\n                return $this->resolveTypedArray($type, $context);\n            case $this->isFqsen($type):\n                return $this->resolveTypedObject($type);\n            case $this->isPartialStructuralElementName($type):\n                return $this->resolveTypedObject($type, $context);\n            // @codeCoverageIgnoreStart\n            default:\n                // I haven't got the foggiest how the logic would come here but added this as a defense.\n                throw new \\RuntimeException(\n                    'Unable to resolve type \"' . $type . '\", there is no known method to resolve it'\n                );\n        }\n        // @codeCoverageIgnoreEnd\n    }\n\n    /**\n     * Adds a keyword to the list of Keywords and associates it with a specific Value Object.\n     *\n     * @param string $keyword\n     * @param string $typeClassName\n     *\n     * @return void\n     */\n    public function addKeyword($keyword, $typeClassName)\n    {\n        if (!class_exists($typeClassName)) {\n            throw new \\InvalidArgumentException(\n                'The Value Object that needs to be created with a keyword \"' . $keyword . '\" must be an existing class'\n                . ' but we could not find the class ' . $typeClassName\n            );\n        }\n\n        if (!in_array(Type::class, class_implements($typeClassName))) {\n            throw new \\InvalidArgumentException(\n                'The class \"' . $typeClassName . '\" must implement the interface \"phpDocumentor\\Reflection\\Type\"'\n            );\n        }\n\n        $this->keywords[$keyword] = $typeClassName;\n    }\n\n    /**\n     * Detects whether the given type represents an array.\n     *\n     * @param string $type A relative or absolute type as defined in the phpDocumentor documentation.\n     *\n     * @return bool\n     */\n    private function isTypedArray($type)\n    {\n        return substr($type, -2) === self::OPERATOR_ARRAY;\n    }\n\n    /**\n     * Detects whether the given type represents a PHPDoc keyword.\n     *\n     * @param string $type A relative or absolute type as defined in the phpDocumentor documentation.\n     *\n     * @return bool\n     */\n    private function isKeyword($type)\n    {\n        return in_array(strtolower($type), array_keys($this->keywords), true);\n    }\n\n    /**\n     * Detects whether the given type represents a relative structural element name.\n     *\n     * @param string $type A relative or absolute type as defined in the phpDocumentor documentation.\n     *\n     * @return bool\n     */\n    private function isPartialStructuralElementName($type)\n    {\n        return ($type[0] !== self::OPERATOR_NAMESPACE) && !$this->isKeyword($type);\n    }\n\n    /**\n     * Tests whether the given type is a Fully Qualified Structural Element Name.\n     *\n     * @param string $type\n     *\n     * @return bool\n     */\n    private function isFqsen($type)\n    {\n        return strpos($type, self::OPERATOR_NAMESPACE) === 0;\n    }\n\n    /**\n     * Tests whether the given type is a compound type (i.e. `string|int`).\n     *\n     * @param string $type\n     *\n     * @return bool\n     */\n    private function isCompoundType($type)\n    {\n        return strpos($type, '|') !== false;\n    }\n\n    /**\n     * Test whether the given type is a nullable type (i.e. `?string`)\n     *\n     * @param string $type\n     *\n     * @return bool\n     */\n    private function isNullableType($type)\n    {\n        return $type[0] === '?';\n    }\n\n    /**\n     * Resolves the given typed array string (i.e. `string[]`) into an Array object with the right types set.\n     *\n     * @param string $type\n     * @param Context $context\n     *\n     * @return Array_\n     */\n    private function resolveTypedArray($type, Context $context)\n    {\n        return new Array_($this->resolve(substr($type, 0, -2), $context));\n    }\n\n    /**\n     * Resolves the given keyword (such as `string`) into a Type object representing that keyword.\n     *\n     * @param string $type\n     *\n     * @return Type\n     */\n    private function resolveKeyword($type)\n    {\n        $className = $this->keywords[strtolower($type)];\n\n        return new $className();\n    }\n\n    /**\n     * Resolves the given FQSEN string into an FQSEN object.\n     *\n     * @param string $type\n     * @param Context|null $context\n     *\n     * @return Object_\n     */\n    private function resolveTypedObject($type, Context $context = null)\n    {\n        return new Object_($this->fqsenResolver->resolve($type, $context));\n    }\n\n    /**\n     * Resolves a compound type (i.e. `string|int`) into the appropriate Type objects or FQSEN.\n     *\n     * @param string $type\n     * @param Context $context\n     *\n     * @return Compound\n     */\n    private function resolveCompoundType($type, Context $context)\n    {\n        $types = [];\n\n        foreach (explode('|', $type) as $part) {\n            $types[] = $this->resolve($part, $context);\n        }\n\n        return new Compound($types);\n    }\n\n    /**\n     * Resolve nullable types (i.e. `?string`) into a Nullable type wrapper\n     *\n     * @param string $type\n     * @param Context $context\n     *\n     * @return Nullable\n     */\n    private function resolveNullableType($type, Context $context)\n    {\n        return new Nullable($this->resolve(ltrim($type, '?'), $context));\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Array_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Represents an array type as described in the PSR-5, the PHPDoc Standard.\n *\n * An array can be represented in two forms:\n *\n * 1. Untyped (`array`), where the key and value type is unknown and hence classified as 'Mixed_'.\n * 2. Types (`string[]`), where the value type is provided by preceding an opening and closing square bracket with a\n *    type name.\n */\nfinal class Array_ implements Type\n{\n    /** @var Type */\n    private $valueType;\n\n    /** @var Type */\n    private $keyType;\n\n    /**\n     * Initializes this representation of an array with the given Type or Fqsen.\n     *\n     * @param Type $valueType\n     * @param Type $keyType\n     */\n    public function __construct(Type $valueType = null, Type $keyType = null)\n    {\n        if ($keyType === null) {\n            $keyType = new Compound([ new String_(), new Integer() ]);\n        }\n        if ($valueType === null) {\n            $valueType = new Mixed_();\n        }\n\n        $this->valueType = $valueType;\n        $this->keyType = $keyType;\n    }\n\n    /**\n     * Returns the type for the keys of this array.\n     *\n     * @return Type\n     */\n    public function getKeyType()\n    {\n        return $this->keyType;\n    }\n\n    /**\n     * Returns the value for the keys of this array.\n     *\n     * @return Type\n     */\n    public function getValueType()\n    {\n        return $this->valueType;\n    }\n\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if ($this->valueType instanceof Mixed_) {\n            return 'array';\n        }\n\n        return $this->valueType . '[]';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Boolean.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a Boolean type.\n */\nfinal class Boolean implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'bool';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Callable_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a Callable type.\n */\nfinal class Callable_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'callable';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Compound.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse ArrayIterator;\nuse IteratorAggregate;\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a Compound Type.\n *\n * A Compound Type is not so much a special keyword or object reference but is a series of Types that are separated\n * using an OR operator (`|`). This combination of types signifies that whatever is associated with this compound type\n * may contain a value with any of the given types.\n */\nfinal class Compound implements Type, IteratorAggregate\n{\n    /** @var Type[] */\n    private $types;\n\n    /**\n     * Initializes a compound type (i.e. `string|int`) and tests if the provided types all implement the Type interface.\n     *\n     * @param Type[] $types\n     * @throws \\InvalidArgumentException when types are not all instance of Type\n     */\n    public function __construct(array $types)\n    {\n        foreach ($types as $type) {\n            if (!$type instanceof Type) {\n                throw new \\InvalidArgumentException('A compound type can only have other types as elements');\n            }\n        }\n\n        $this->types = $types;\n    }\n\n    /**\n     * Returns the type at the given index.\n     *\n     * @param integer $index\n     *\n     * @return Type|null\n     */\n    public function get($index)\n    {\n        if (!$this->has($index)) {\n            return null;\n        }\n\n        return $this->types[$index];\n    }\n\n    /**\n     * Tests if this compound type has a type with the given index.\n     *\n     * @param integer $index\n     *\n     * @return bool\n     */\n    public function has($index)\n    {\n        return isset($this->types[$index]);\n    }\n\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return implode('|', $this->types);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new ArrayIterator($this->types);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Context.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\n/**\n * Provides information about the Context in which the DocBlock occurs that receives this context.\n *\n * A DocBlock does not know of its own accord in which namespace it occurs and which namespace aliases are applicable\n * for the block of code in which it is in. This information is however necessary to resolve Class names in tags since\n * you can provide a short form or make use of namespace aliases.\n *\n * The phpDocumentor Reflection component knows how to create this class but if you use the DocBlock parser from your\n * own application it is possible to generate a Context class using the ContextFactory; this will analyze the file in\n * which an associated class resides for its namespace and imports.\n *\n * @see ContextFactory::createFromClassReflector()\n * @see ContextFactory::createForNamespace()\n */\nfinal class Context\n{\n    /** @var string The current namespace. */\n    private $namespace;\n\n    /** @var array List of namespace aliases => Fully Qualified Namespace. */\n    private $namespaceAliases;\n\n    /**\n     * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN)\n     * format (without a preceding `\\`).\n     *\n     * @param string $namespace The namespace where this DocBlock resides in.\n     * @param array $namespaceAliases List of namespace aliases => Fully Qualified Namespace.\n     */\n    public function __construct($namespace, array $namespaceAliases = [])\n    {\n        $this->namespace = ('global' !== $namespace && 'default' !== $namespace)\n            ? trim((string)$namespace, '\\\\')\n            : '';\n\n        foreach ($namespaceAliases as $alias => $fqnn) {\n            if ($fqnn[0] === '\\\\') {\n                $fqnn = substr($fqnn, 1);\n            }\n            if ($fqnn[strlen($fqnn) - 1] === '\\\\') {\n                $fqnn = substr($fqnn, 0, -1);\n            }\n\n            $namespaceAliases[$alias] = $fqnn;\n        }\n\n        $this->namespaceAliases = $namespaceAliases;\n    }\n\n    /**\n     * Returns the Qualified Namespace Name (thus without `\\` in front) where the associated element is in.\n     *\n     * @return string\n     */\n    public function getNamespace()\n    {\n        return $this->namespace;\n    }\n\n    /**\n     * Returns a list of Qualified Namespace Names (thus without `\\` in front) that are imported, the keys represent\n     * the alias for the imported Namespace.\n     *\n     * @return string[]\n     */\n    public function getNamespaceAliases()\n    {\n        return $this->namespaceAliases;\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\n/**\n * Convenience class to create a Context for DocBlocks when not using the Reflection Component of phpDocumentor.\n *\n * For a DocBlock to be able to resolve types that use partial namespace names or rely on namespace imports we need to\n * provide a bit of context so that the DocBlock can read that and based on it decide how to resolve the types to\n * Fully Qualified names.\n *\n * @see Context for more information.\n */\nfinal class ContextFactory\n{\n    /** The literal used at the end of a use statement. */\n    const T_LITERAL_END_OF_USE = ';';\n\n    /** The literal used between sets of use statements */\n    const T_LITERAL_USE_SEPARATOR = ',';\n\n    /**\n     * Build a Context given a Class Reflection.\n     *\n     * @param \\Reflector $reflector\n     *\n     * @see Context for more information on Contexts.\n     *\n     * @return Context\n     */\n    public function createFromReflector(\\Reflector $reflector)\n    {\n        if (method_exists($reflector, 'getDeclaringClass')) {\n            $reflector = $reflector->getDeclaringClass();\n        }\n\n        $fileName = $reflector->getFileName();\n        $namespace = $reflector->getNamespaceName();\n\n        if (file_exists($fileName)) {\n            return $this->createForNamespace($namespace, file_get_contents($fileName));\n        }\n\n        return new Context($namespace, []);\n    }\n\n    /**\n     * Build a Context for a namespace in the provided file contents.\n     *\n     * @param string $namespace It does not matter if a `\\` precedes the namespace name, this method first normalizes.\n     * @param string $fileContents the file's contents to retrieve the aliases from with the given namespace.\n     *\n     * @see Context for more information on Contexts.\n     *\n     * @return Context\n     */\n    public function createForNamespace($namespace, $fileContents)\n    {\n        $namespace = trim($namespace, '\\\\');\n        $useStatements = [];\n        $currentNamespace = '';\n        $tokens = new \\ArrayIterator(token_get_all($fileContents));\n\n        while ($tokens->valid()) {\n            switch ($tokens->current()[0]) {\n                case T_NAMESPACE:\n                    $currentNamespace = $this->parseNamespace($tokens);\n                    break;\n                case T_CLASS:\n                    // Fast-forward the iterator through the class so that any\n                    // T_USE tokens found within are skipped - these are not\n                    // valid namespace use statements so should be ignored.\n                    $braceLevel = 0;\n                    $firstBraceFound = false;\n                    while ($tokens->valid() && ($braceLevel > 0 || !$firstBraceFound)) {\n                        if ($tokens->current() === '{'\n                            || $tokens->current()[0] === T_CURLY_OPEN\n                            || $tokens->current()[0] === T_DOLLAR_OPEN_CURLY_BRACES) {\n                            if (!$firstBraceFound) {\n                                $firstBraceFound = true;\n                            }\n                            $braceLevel++;\n                        }\n\n                        if ($tokens->current() === '}') {\n                            $braceLevel--;\n                        }\n                        $tokens->next();\n                    }\n                    break;\n                case T_USE:\n                    if ($currentNamespace === $namespace) {\n                        $useStatements = array_merge($useStatements, $this->parseUseStatement($tokens));\n                    }\n                    break;\n            }\n            $tokens->next();\n        }\n\n        return new Context($namespace, $useStatements);\n    }\n\n    /**\n     * Deduce the name from tokens when we are at the T_NAMESPACE token.\n     *\n     * @param \\ArrayIterator $tokens\n     *\n     * @return string\n     */\n    private function parseNamespace(\\ArrayIterator $tokens)\n    {\n        // skip to the first string or namespace separator\n        $this->skipToNextStringOrNamespaceSeparator($tokens);\n\n        $name = '';\n        while ($tokens->valid() && ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR)\n        ) {\n            $name .= $tokens->current()[1];\n            $tokens->next();\n        }\n\n        return $name;\n    }\n\n    /**\n     * Deduce the names of all imports when we are at the T_USE token.\n     *\n     * @param \\ArrayIterator $tokens\n     *\n     * @return string[]\n     */\n    private function parseUseStatement(\\ArrayIterator $tokens)\n    {\n        $uses = [];\n        $continue = true;\n\n        while ($continue) {\n            $this->skipToNextStringOrNamespaceSeparator($tokens);\n\n            list($alias, $fqnn) = $this->extractUseStatement($tokens);\n            $uses[$alias] = $fqnn;\n            if ($tokens->current()[0] === self::T_LITERAL_END_OF_USE) {\n                $continue = false;\n            }\n        }\n\n        return $uses;\n    }\n\n    /**\n     * Fast-forwards the iterator as longs as we don't encounter a T_STRING or T_NS_SEPARATOR token.\n     *\n     * @param \\ArrayIterator $tokens\n     *\n     * @return void\n     */\n    private function skipToNextStringOrNamespaceSeparator(\\ArrayIterator $tokens)\n    {\n        while ($tokens->valid() && ($tokens->current()[0] !== T_STRING) && ($tokens->current()[0] !== T_NS_SEPARATOR)) {\n            $tokens->next();\n        }\n    }\n\n    /**\n     * Deduce the namespace name and alias of an import when we are at the T_USE token or have not reached the end of\n     * a USE statement yet.\n     *\n     * @param \\ArrayIterator $tokens\n     *\n     * @return string\n     */\n    private function extractUseStatement(\\ArrayIterator $tokens)\n    {\n        $result = [''];\n        while ($tokens->valid()\n            && ($tokens->current()[0] !== self::T_LITERAL_USE_SEPARATOR)\n            && ($tokens->current()[0] !== self::T_LITERAL_END_OF_USE)\n        ) {\n            if ($tokens->current()[0] === T_AS) {\n                $result[] = '';\n            }\n            if ($tokens->current()[0] === T_STRING || $tokens->current()[0] === T_NS_SEPARATOR) {\n                $result[count($result) - 1] .= $tokens->current()[1];\n            }\n            $tokens->next();\n        }\n\n        if (count($result) == 1) {\n            $backslashPos = strrpos($result[0], '\\\\');\n\n            if (false !== $backslashPos) {\n                $result[] = substr($result[0], $backslashPos + 1);\n            } else {\n                $result[] = $result[0];\n            }\n        }\n\n        return array_reverse($result);\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Float_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a Float.\n */\nfinal class Float_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'float';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Integer.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\nfinal class Integer implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'int';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2017 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing iterable type\n */\nfinal class Iterable_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'iterable';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing an unknown, or mixed, type.\n */\nfinal class Mixed_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'mixed';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Null_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a null value or type.\n */\nfinal class Null_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'null';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Nullable.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2017 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing a nullable type. The real type is wrapped.\n */\nfinal class Nullable implements Type\n{\n    /**\n     * @var Type\n     */\n    private $realType;\n\n    /**\n     * Initialises this nullable type using the real type embedded\n     *\n     * @param Type $realType\n     */\n    public function __construct(Type $realType)\n    {\n        $this->realType = $realType;\n    }\n\n    /**\n     * Provide access to the actual type directly, if needed.\n     *\n     * @return Type\n     */\n    public function getActualType()\n    {\n        return $this->realType;\n    }\n\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return '?' . $this->realType->__toString();\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Object_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Fqsen;\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing an object.\n *\n * An object can be either typed or untyped. When an object is typed it means that it has an identifier, the FQSEN,\n * pointing to an element in PHP. Object types that are untyped do not refer to a specific class but represent objects\n * in general.\n */\nfinal class Object_ implements Type\n{\n    /** @var Fqsen|null */\n    private $fqsen;\n\n    /**\n     * Initializes this object with an optional FQSEN, if not provided this object is considered 'untyped'.\n     *\n     * @param Fqsen $fqsen\n     * @throws \\InvalidArgumentException when provided $fqsen is not a valid type.\n     */\n    public function __construct(Fqsen $fqsen = null)\n    {\n        if (strpos((string)$fqsen, '::') !== false || strpos((string)$fqsen, '()') !== false) {\n            throw new \\InvalidArgumentException(\n                'Object types can only refer to a class, interface or trait but a method, function, constant or '\n                . 'property was received: ' . (string)$fqsen\n            );\n        }\n\n        $this->fqsen = $fqsen;\n    }\n\n    /**\n     * Returns the FQSEN associated with this object.\n     *\n     * @return Fqsen|null\n     */\n    public function getFqsen()\n    {\n        return $this->fqsen;\n    }\n\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if ($this->fqsen) {\n            return (string)$this->fqsen;\n        }\n\n        return 'object';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Parent_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the 'parent' type.\n *\n * Parent, as a Type, represents the parent class of class in which the associated element was defined.\n */\nfinal class Parent_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'parent';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Resource_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the 'resource' Type.\n */\nfinal class Resource_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'resource';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Scalar.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the 'scalar' pseudo-type, which is either a string, integer, float or boolean.\n */\nfinal class Scalar implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'scalar';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Self_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the 'self' type.\n *\n * Self, as a Type, represents the class in which the associated element was defined.\n */\nfinal class Self_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'self';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Static_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the 'static' type.\n *\n * Self, as a Type, represents the class in which the associated element was called. This differs from self as self does\n * not take inheritance into account but static means that the return type is always that of the class of the called\n * element.\n *\n * See the documentation on late static binding in the PHP Documentation for more information on the difference between\n * static and self.\n */\nfinal class Static_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'static';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/String_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the type 'string'.\n */\nfinal class String_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'string';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/This.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the '$this' pseudo-type.\n *\n * $this, as a Type, represents the instance of the class associated with the element as it was called. $this is\n * commonly used when documenting fluent interfaces since it represents that the same object is returned.\n */\nfinal class This implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return '$this';\n    }\n}\n"
  },
  {
    "path": "vendor/phpdocumentor/type-resolver/src/Types/Void_.php",
    "content": "<?php\n/**\n * This file is part of phpDocumentor.\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright 2010-2015 Mike van Riel<mike@phpdoc.org>\n * @license   http://www.opensource.org/licenses/mit-license.php MIT\n * @link      http://phpdoc.org\n */\n\nnamespace phpDocumentor\\Reflection\\Types;\n\nuse phpDocumentor\\Reflection\\Type;\n\n/**\n * Value Object representing the pseudo-type 'void'.\n *\n * Void is generally only used when working with return types as it signifies that the method intentionally does not\n * return any value.\n */\nfinal class Void_ implements Type\n{\n    /**\n     * Returns a rendered output of the Type as it would be used in a DocBlock.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'void';\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/CHANGES.md",
    "content": "1.8.1 / 2019/06/13\n==================\n\n* [fixed] Don't try to patch final constructors (@NiR)\n\n1.8.0 / 2018/08/05\n==================\n\n* Support for void return types without explicit will (@crellbar)\n* Clearer error message for unexpected method calls (@meridius)\n* Clearer error message for aggregate exceptions (@meridius)\n* More verbose `shouldBeCalledOnce` expectation (@olvlvl)\n* Ability to double Throwable, or methods that extend it (@ciaranmcnulty)\n* [fixed] Doubling methods where class has additional arguments to interface (@webimpress)\n* [fixed] Doubling methods where arguments are nullable but default is not null (@webimpress)\n* [fixed] Doubling magic methods on parent class (@dsnopek)\n* [fixed] Check method predictions only once (@dontub)\n* [fixed] Argument::containingString throwing error when called with non-string (@dcabrejas)\n\n1.7.6 / 2018/04/18\n==================\n\n* Allow sebastian/comparator ^3.0 (@sebastianbergmann)\n\n1.7.5 / 2018/02/11\n==================\n\n* Support for object return type hints (thanks @greg0ire)\n\n1.7.4 / 2018/02/11\n==================\n\n* Fix issues with PHP 7.2 (thanks @greg0ire)\n* Support object type hints in PHP 7.2 (thanks @@jansvoboda11)\n\n1.7.3 / 2017/11/24\n==================\n\n* Fix SplInfo ClassPatch to work with Symfony 4 (Thanks @gnugat)\n\n1.7.2 / 2017-10-04\n==================\n\n* Reverted \"check method predictions only once\" due to it breaking Spies\n\n1.7.1 / 2017-10-03\n==================\n\n* Allow PHP5 keywords methods generation on PHP7 (thanks @bycosta)\n* Allow reflection-docblock v4 (thanks @GrahamCampbell)\n* Check method predictions only once (thanks @dontub)\n* Escape file path sent to \\SplFileObjectConstructor when running on Windows (thanks @danmartin-epiphany)\n\n1.7.0 / 2017-03-02\n==================\n\n* Add full PHP 7.1 Support (thanks @prolic)\n* Allow `sebastian/comparator ^2.0` (thanks @sebastianbergmann)\n* Allow `sebastian/recursion-context ^3.0` (thanks @sebastianbergmann)\n* Allow `\\Error` instances in `ThrowPromise` (thanks @jameshalsall)\n* Support `phpspec/phpspect ^3.2` (thanks @Sam-Burns)\n* Fix failing builds (thanks @Sam-Burns)\n\n1.6.2 / 2016-11-21\n==================\n\n* Added support for detecting @method on interfaces that the class itself implements, or when the stubbed class is an interface itself (thanks @Seldaek)\n* Added support for sebastian/recursion-context 2 (thanks @sebastianbergmann)\n* Added testing on PHP 7.1 on Travis (thanks @danizord)\n* Fixed the usage of the phpunit comparator (thanks @Anyqax)\n\n1.6.1 / 2016-06-07\n==================\n\n  * Ignored empty method names in invalid `@method` phpdoc\n  * Fixed the mocking of SplFileObject\n  * Added compatibility with phpdocumentor/reflection-docblock 3\n\n1.6.0 / 2016-02-15\n==================\n\n  * Add Variadics support (thanks @pamil)\n  * Add ProphecyComparator for comparing objects that need revealing (thanks @jon-acker)\n  * Add ApproximateValueToken (thanks @dantleech)\n  * Add support for 'self' and 'parent' return type (thanks @bendavies)\n  * Add __invoke to allowed reflectable methods list (thanks @ftrrtf)\n  * Updated ExportUtil to reflect the latest changes by Sebastian (thanks @jakari)\n  * Specify the required php version for composer (thanks @jakzal)\n  * Exclude 'args' in the generated backtrace (thanks @oradwell)\n  * Fix code generation for scalar parameters (thanks @trowski)\n  * Fix missing sprintf in InvalidArgumentException __construct call (thanks @emmanuelballery)\n  * Fix phpdoc for magic methods (thanks @Tobion)\n  * Fix PhpDoc for interfaces usage (thanks @ImmRanneft)\n  * Prevent final methods from being manually extended (thanks @kamioftea)\n  * Enhance exception for invalid argument to ThrowPromise (thanks @Tobion)\n\n1.5.0 / 2015-04-27\n==================\n\n  * Add support for PHP7 scalar type hints (thanks @trowski)\n  * Add support for PHP7 return types (thanks @trowski)\n  * Update internal test suite to support PHP7\n\n1.4.1 / 2015-04-27\n==================\n\n  * Fixed bug in closure-based argument tokens (#181)\n\n1.4.0 / 2015-03-27\n==================\n\n  * Fixed errors in return type phpdocs (thanks @sobit)\n  * Fixed stringifying of hash containing one value (thanks @avant1)\n  * Improved clarity of method call expectation exception (thanks @dantleech)\n  * Add ability to specify which argument is returned in willReturnArgument (thanks @coderbyheart)\n  * Add more information to MethodNotFound exceptions (thanks @ciaranmcnulty)\n  * Support for mocking classes with methods that return references (thanks @edsonmedina)\n  * Improved object comparison (thanks @whatthejeff)\n  * Adopted '^' in composer dependencies (thanks @GrahamCampbell)\n  * Fixed non-typehinted arguments being treated as optional (thanks @whatthejeff)\n  * Magic methods are now filtered for keywords (thanks @seagoj)\n  * More readable errors for failure when expecting single calls (thanks @dantleech)\n\n1.3.1 / 2014-11-17\n==================\n\n  * Fix the edge case when failed predictions weren't recorded for `getCheckedPredictions()`\n\n1.3.0 / 2014-11-14\n==================\n\n  * Add a way to get checked predictions with `MethodProphecy::getCheckedPredictions()`\n  * Fix HHVM compatibility\n  * Remove dead code (thanks @stof)\n  * Add support for DirectoryIterators (thanks @shanethehat)\n\n1.2.0 / 2014-07-18\n==================\n\n  * Added support for doubling magic methods documented in the class phpdoc (thanks @armetiz)\n  * Fixed a segfault appearing in some cases (thanks @dmoreaulf)\n  * Fixed the doubling of methods with typehints on non-existent classes (thanks @gquemener)\n  * Added support for internal classes using keywords as method names (thanks @milan)\n  * Added IdenticalValueToken and Argument::is (thanks @florianv)\n  * Removed the usage of scalar typehints in HHVM as HHVM 3 does not support them anymore in PHP code (thanks @whatthejeff)\n\n1.1.2 / 2014-01-24\n==================\n\n  * Spy automatically promotes spied method call to an expected one\n\n1.1.1 / 2014-01-15\n==================\n\n  * Added support for HHVM\n\n1.1.0 / 2014-01-01\n==================\n\n  * Changed the generated class names to use a static counter instead of a random number\n  * Added a clss patch for ReflectionClass::newInstance to make its argument optional consistently (thanks @docteurklein)\n  * Fixed mirroring of classes with typehints on non-existent classes (thanks @docteurklein)\n  * Fixed the support of array callables in CallbackPromise and CallbackPrediction (thanks @ciaranmcnulty)\n  * Added support for properties in ObjectStateToken (thanks @adrienbrault)\n  * Added support for mocking classes with a final constructor (thanks @ciaranmcnulty)\n  * Added ArrayEveryEntryToken and Argument::withEveryEntry() (thanks @adrienbrault)\n  * Added an exception when trying to prophesize on a final method instead of ignoring silently (thanks @docteurklein)\n  * Added StringContainToken and Argument::containingString() (thanks @peterjmit)\n  * Added ``shouldNotHaveBeenCalled`` on the MethodProphecy (thanks @ciaranmcnulty)\n  * Fixed the comparison of objects in ExactValuetoken (thanks @sstok)\n  * Deprecated ``shouldNotBeenCalled`` in favor of ``shouldNotHaveBeenCalled``\n\n1.0.4 / 2013-08-10\n==================\n\n  * Better randomness for generated class names (thanks @sstok)\n  * Add support for interfaces into TypeToken and Argument::type() (thanks @sstok)\n  * Add support for old-style (method name === class name) constructors (thanks @l310 for report)\n\n1.0.3 / 2013-07-04\n==================\n\n  * Support callable typehints (thanks @stof)\n  * Do not attempt to autoload arrays when generating code (thanks @MarcoDeBortoli)\n  * New ArrayEntryToken (thanks @kagux)\n\n1.0.2 / 2013-05-19\n==================\n\n  * Logical `AND` token added (thanks @kagux)\n  * Logical `NOT` token added (thanks @kagux)\n  * Add support for setting custom constructor arguments\n  * Properly stringify hashes\n  * Record calls that throw exceptions\n  * Migrate spec suite to PhpSpec 2.0\n\n1.0.1 / 2013-04-30\n==================\n\n  * Fix broken UnexpectedCallException message\n  * Trim AggregateException message\n\n1.0.0 / 2013-04-29\n==================\n\n  * Improve exception messages\n\n1.0.0-BETA2 / 2013-04-03\n========================\n\n  * Add more debug information to CallTimes and Call prediction exception messages\n  * Fix MethodNotFoundException wrong namespace (thanks @gunnarlium)\n  * Fix some typos in the exception messages (thanks @pborreli)\n\n1.0.0-BETA1 / 2013-03-25\n========================\n\n  * Initial release\n"
  },
  {
    "path": "vendor/phpspec/prophecy/LICENSE",
    "content": "Copyright (c) 2013 Konstantin Kudryashov <ever.zet@gmail.com>\n                   Marcello Duarte <marcello.duarte@gmail.com>\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/phpspec/prophecy/README.md",
    "content": "# Prophecy\n\n[![Stable release](https://poser.pugx.org/phpspec/prophecy/version.svg)](https://packagist.org/packages/phpspec/prophecy)\n[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy)\n\nProphecy is a highly opinionated yet very powerful and flexible PHP object mocking\nframework. Though initially it was created to fulfil phpspec2 needs, it is flexible\nenough to be used inside any testing framework out there with minimal effort.\n\n## A simple example\n\n```php\n<?php\n\nclass UserTest extends PHPUnit_Framework_TestCase\n{\n    private $prophet;\n\n    public function testPasswordHashing()\n    {\n        $hasher = $this->prophet->prophesize('App\\Security\\Hasher');\n        $user   = new App\\Entity\\User($hasher->reveal());\n\n        $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass');\n\n        $user->setPassword('qwerty');\n\n        $this->assertEquals('hashed_pass', $user->getPassword());\n    }\n\n    protected function setup()\n    {\n        $this->prophet = new \\Prophecy\\Prophet;\n    }\n\n    protected function tearDown()\n    {\n        $this->prophet->checkPredictions();\n    }\n}\n```\n\n## Installation\n\n### Prerequisites\n\nProphecy requires PHP 5.3.3 or greater.\n\n### Setup through composer\n\nFirst, add Prophecy to the list of dependencies inside your `composer.json`:\n\n```json\n{\n    \"require-dev\": {\n        \"phpspec/prophecy\": \"~1.0\"\n    }\n}\n```\n\nThen simply install it with composer:\n\n```bash\n$> composer install --prefer-dist\n```\n\nYou can read more about Composer on its [official webpage](http://getcomposer.org).\n\n## How to use it\n\nFirst of all, in Prophecy every word has a logical meaning, even the name of the library\nitself (Prophecy). When you start feeling that, you'll become very fluid with this\ntool.\n\nFor example, Prophecy has been named that way because it concentrates on describing the future\nbehavior of objects with very limited knowledge about them. But as with any other prophecy,\nthose object prophecies can't create themselves - there should be a Prophet:\n\n```php\n$prophet = new Prophecy\\Prophet;\n```\n\nThe Prophet creates prophecies by *prophesizing* them:\n\n```php\n$prophecy = $prophet->prophesize();\n```\n\nThe result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes,\nthat's your specific object prophecy, which describes how your object would behave\nin the near future. But first, you need to specify which object you're talking about,\nright?\n\n```php\n$prophecy->willExtend('stdClass');\n$prophecy->willImplement('SessionHandlerInterface');\n```\n\nThere are 2 interesting calls - `willExtend` and `willImplement`. The first one tells\nobject prophecy that our object should extend specific class, the second one says that\nit should implement some interface. Obviously, objects in PHP can implement multiple\ninterfaces, but extend only one parent class.\n\n### Dummies\n\nOk, now we have our object prophecy. What can we do with it? First of all, we can get\nour object *dummy* by revealing its prophecy:\n\n```php\n$dummy = $prophecy->reveal();\n```\n\nThe `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend\nand/or implement preset classes/interfaces by overriding all their public methods. The key\npoint about dummies is that they do not hold any logic - they just do nothing. Any method\nof the dummy will always return `null` and the dummy will never throw any exceptions.\nDummy is your friend if you don't care about the actual behavior of this double and just need\na token object to satisfy a method typehint.\n\nYou need to understand one thing - a dummy is not a prophecy. Your object prophecy is still\nassigned to `$prophecy` variable and in order to manipulate with your expectations, you\nshould work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your\nprophecy.\n\n### Stubs\n\nOk, now we know how to create basic prophecies and reveal dummies from them. That's\nawesome if we don't care about our _doubles_ (objects that reflect originals)\ninteractions. If we do, we need to use *stubs* or *mocks*.\n\nA stub is an object double, which doesn't have any expectations about the object behavior,\nbut when put in specific environment, behaves in specific way. Ok, I know, it's cryptic,\nbut bear with me for a minute. Simply put, a stub is a dummy, which depending on the called\nmethod signature does different things (has logic). To create stubs in Prophecy:\n\n```php\n$prophecy->read('123')->willReturn('value');\n```\n\nOh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this\ncall returned us a new object instance of class `MethodProphecy`. Yep, that's a specific\nmethod with arguments prophecy. Method prophecies give you the ability to create method\npromises or predictions. We'll talk about method predictions later in the _Mocks_ section.\n\n#### Promises\n\nPromises are logical blocks, that represent your fictional methods in prophecy terms\nand they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method.\nAs a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple\nshortcut to:\n\n```php\n$prophecy->read('123')->will(new Prophecy\\Promise\\ReturnPromise(array('value')));\n```\n\nThis promise will cause any call to our double's `read()` method with exactly one\nargument - `'123'` to always return `'value'`. But that's only for this\npromise, there's plenty others you can use:\n\n- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call\n- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call\n- `ThrowPromise` or `->willThrow($exception)` - causes the method to throw specific exception\n- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic\n\nKeep in mind, that you can always add even more promises by implementing\n`Prophecy\\Promise\\PromiseInterface`.\n\n#### Method prophecies idempotency\n\nProphecy enforces same method prophecies and, as a consequence, same promises and\npredictions for the same method calls with the same arguments. This means:\n\n```php\n$methodProphecy1 = $prophecy->read('123');\n$methodProphecy2 = $prophecy->read('123');\n$methodProphecy3 = $prophecy->read('321');\n\n$methodProphecy1 === $methodProphecy2;\n$methodProphecy1 !== $methodProphecy3;\n```\n\nThat's interesting, right? Now you might ask me how would you define more complex\nbehaviors where some method call changes behavior of others. In PHPUnit or Mockery\nyou do that by predicting how many times your method will be called. In Prophecy,\nyou'll use promises for that:\n\n```php\n$user->getName()->willReturn(null);\n\n// For PHP 5.4\n$user->setName('everzet')->will(function () {\n    $this->getName()->willReturn('everzet');\n});\n\n// For PHP 5.3\n$user->setName('everzet')->will(function ($args, $user) {\n    $user->getName()->willReturn('everzet');\n});\n\n// Or\n$user->setName('everzet')->will(function ($args) use ($user) {\n    $user->getName()->willReturn('everzet');\n});\n```\n\nAnd now it doesn't matter how many times or in which order your methods are called.\nWhat matters is their behaviors and how well you faked it.\n\n#### Arguments wildcarding\n\nThe previous example is awesome (at least I hope it is for you), but that's not\noptimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better\nway? In fact there is, but it involves understanding what this `'everzet'`\nactually is.\n\nYou see, even if method arguments used during method prophecy creation look\nlike simple method arguments, in reality they are not. They are argument token\nwildcards.  As a matter of fact, `->setName('everzet')` looks like a simple call just\nbecause Prophecy automatically transforms it under the hood into:\n\n```php\n$user->setName(new Prophecy\\Argument\\Token\\ExactValueToken('everzet'));\n```\n\nThose argument tokens are simple PHP classes, that implement\n`Prophecy\\Argument\\Token\\TokenInterface` and tell Prophecy how to compare real arguments\nwith your expectations. And yes, those classnames are damn big. That's why there's a\nshortcut class `Prophecy\\Argument`, which you can use to create tokens like that:\n\n```php\nuse Prophecy\\Argument;\n\n$user->setName(Argument::exact('everzet'));\n```\n\n`ExactValueToken` is not very useful in our case as it forced us to hardcode the username.\nThat's why Prophecy comes bundled with a bunch of other tokens:\n\n- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value\n- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value\n- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or\n  classname\n- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns\n  a specific value\n- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback\n- `AnyValueToken` or `Argument::any()` - matches any argument\n- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature\n- `StringContainsToken` or `Argument::containingString($value)` - checks that the argument contains a specific string value\n\nAnd you can add even more by implementing `TokenInterface` with your own custom classes.\n\nSo, let's refactor our initial `{set,get}Name()` logic with argument tokens:\n\n```php\nuse Prophecy\\Argument;\n\n$user->getName()->willReturn(null);\n\n// For PHP 5.4\n$user->setName(Argument::type('string'))->will(function ($args) {\n    $this->getName()->willReturn($args[0]);\n});\n\n// For PHP 5.3\n$user->setName(Argument::type('string'))->will(function ($args, $user) {\n    $user->getName()->willReturn($args[0]);\n});\n\n// Or\n$user->setName(Argument::type('string'))->will(function ($args) use ($user) {\n    $user->getName()->willReturn($args[0]);\n});\n```\n\nThat's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it.\nWe've just described how our stub object should behave, even though the original object could have\nno behavior whatsoever.\n\nOne last bit about arguments now. You might ask, what happens in case of:\n\n```php\nuse Prophecy\\Argument;\n\n$user->getName()->willReturn(null);\n\n// For PHP 5.4\n$user->setName(Argument::type('string'))->will(function ($args) {\n    $this->getName()->willReturn($args[0]);\n});\n\n// For PHP 5.3\n$user->setName(Argument::type('string'))->will(function ($args, $user) {\n    $user->getName()->willReturn($args[0]);\n});\n\n// Or\n$user->setName(Argument::type('string'))->will(function ($args) use ($user) {\n    $user->getName()->willReturn($args[0]);\n});\n\n$user->setName(Argument::any())->will(function () {\n});\n```\n\nNothing. Your stub will continue behaving the way it did before. That's because of how\narguments wildcarding works. Every argument token type has a different score level, which\nwildcard then uses to calculate the final arguments match score and use the method prophecy\npromise that has the highest score. In this case, `Argument::type()` in case of success\nscores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first\n`setName()` method prophecy and its promise. The simple rule of thumb - more precise token\nalways wins.\n\n#### Getting stub objects\n\nOk, now we know how to define our prophecy method promises, let's get our stub from\nit:\n\n```php\n$stub = $prophecy->reveal();\n```\n\nAs you might see, the only difference between how we get dummies and stubs is that with\nstubs we describe every object conversation instead of just agreeing with `null` returns\n(object being *dummy*). As a matter of fact, after you define your first promise\n(method call), Prophecy will force you to define all the communications - it throws\nthe `UnexpectedCallException` for any call you didn't describe with object prophecy before\ncalling it on a stub.\n\n### Mocks\n\nNow we know how to define doubles without behavior (dummies) and doubles with behavior, but\nno expectations (stubs). What's left is doubles for which we have some expectations. These\nare called mocks and in Prophecy they look almost exactly the same as stubs, except that\nthey define *predictions* instead of *promises* on method prophecies:\n\n```php\n$entityManager->flush()->shouldBeCalled();\n```\n\n#### Predictions\n\nThe `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy.\nPredictions are a delayed behavior check for your prophecies. You see, during the entire lifetime\nof your doubles, Prophecy records every single call you're making against it inside your\ncode. After that, Prophecy can use this collected information to check if it matches defined\npredictions. You can assign predictions to method prophecies using the\n`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact,\nthe `shouldBeCalled()` method we used earlier is just a shortcut to:\n\n```php\n$entityManager->flush()->should(new Prophecy\\Prediction\\CallPrediction());\n```\n\nIt checks if your method of interest (that matches both the method name and the arguments wildcard)\nwas called 1 or more times. If the prediction failed then it throws an exception. When does this\ncheck happen? Whenever you call `checkPredictions()` on the main Prophet object:\n\n```php\n$prophet->checkPredictions();\n```\n\nIn PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions\nare defined, it would do nothing. So it won't harm to call it after every test.\n\nThere are plenty more predictions you can play with:\n\n- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times\n- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called\n- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called\n  `$count` times\n- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback\n\nOf course, you can always create your own custom prediction any time by implementing\n`PredictionInterface`.\n\n### Spies\n\nThe last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous\nsection, Prophecy records every call made during the double's entire lifetime. This means\nyou don't need to record predictions in order to check them. You can also do it\nmanually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method:\n\n```php\n$em = $prophet->prophesize('Doctrine\\ORM\\EntityManager');\n\n$controller->createUser($em->reveal());\n\n$em->flush()->shouldHaveBeenCalled();\n```\n\nSuch manipulation with doubles is called spying. And with Prophecy it just works.\n"
  },
  {
    "path": "vendor/phpspec/prophecy/composer.json",
    "content": "{\n    \"name\":         \"phpspec/prophecy\",\n    \"description\":  \"Highly opinionated mocking framework for PHP 5.3+\",\n    \"keywords\":     [\"Mock\", \"Stub\", \"Dummy\", \"Double\", \"Fake\", \"Spy\"],\n    \"homepage\":     \"https://github.com/phpspec/prophecy\",\n    \"type\":         \"library\",\n    \"license\":      \"MIT\",\n    \"authors\":      [\n        {\n            \"name\":      \"Konstantin Kudryashov\",\n            \"email\":     \"ever.zet@gmail.com\",\n            \"homepage\":  \"http://everzet.com\"\n        },\n        {\n            \"name\":      \"Marcello Duarte\",\n            \"email\":     \"marcello.duarte@gmail.com\"\n        }\n    ],\n\n    \"require\": {\n        \"php\":                               \"^5.3|^7.0\",\n        \"phpdocumentor/reflection-docblock\": \"^2.0|^3.0.2|^4.0\",\n        \"sebastian/comparator\":              \"^1.1|^2.0|^3.0\",\n        \"doctrine/instantiator\":             \"^1.0.2\",\n        \"sebastian/recursion-context\":       \"^1.0|^2.0|^3.0\"\n    },\n\n    \"require-dev\": {\n        \"phpspec/phpspec\": \"^2.5|^3.2\",\n        \"phpunit/phpunit\": \"^4.8.35 || ^5.7 || ^6.5 || ^7.1\"\n    },\n\n    \"autoload\": {\n        \"psr-4\": {\n            \"Prophecy\\\\\": \"src/Prophecy\"\n        }\n    },\n\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Fixtures\\\\Prophecy\\\\\": \"fixtures\"\n        }\n    },\n\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.8.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument;\n\n/**\n * Arguments wildcarding.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ArgumentsWildcard\n{\n    /**\n     * @var Token\\TokenInterface[]\n     */\n    private $tokens = array();\n    private $string;\n\n    /**\n     * Initializes wildcard.\n     *\n     * @param array $arguments Array of argument tokens or values\n     */\n    public function __construct(array $arguments)\n    {\n        foreach ($arguments as $argument) {\n            if (!$argument instanceof Token\\TokenInterface) {\n                $argument = new Token\\ExactValueToken($argument);\n            }\n\n            $this->tokens[] = $argument;\n        }\n    }\n\n    /**\n     * Calculates wildcard match score for provided arguments.\n     *\n     * @param array $arguments\n     *\n     * @return false|int False OR integer score (higher - better)\n     */\n    public function scoreArguments(array $arguments)\n    {\n        if (0 == count($arguments) && 0 == count($this->tokens)) {\n            return 1;\n        }\n\n        $arguments  = array_values($arguments);\n        $totalScore = 0;\n        foreach ($this->tokens as $i => $token) {\n            $argument = isset($arguments[$i]) ? $arguments[$i] : null;\n            if (1 >= $score = $token->scoreArgument($argument)) {\n                return false;\n            }\n\n            $totalScore += $score;\n\n            if (true === $token->isLast()) {\n                return $totalScore;\n            }\n        }\n\n        if (count($arguments) > count($this->tokens)) {\n            return false;\n        }\n\n        return $totalScore;\n    }\n\n    /**\n     * Returns string representation for wildcard.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if (null === $this->string) {\n            $this->string = implode(', ', array_map(function ($token) {\n                return (string) $token;\n            }, $this->tokens));\n        }\n\n        return $this->string;\n    }\n\n    /**\n     * @return array\n     */\n    public function getTokens()\n    {\n        return $this->tokens;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Any single value token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass AnyValueToken implements TokenInterface\n{\n    /**\n     * Always scores 3 for any argument.\n     *\n     * @param $argument\n     *\n     * @return int\n     */\n    public function scoreArgument($argument)\n    {\n        return 3;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return '*';\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Any values token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass AnyValuesToken implements TokenInterface\n{\n    /**\n     * Always scores 2 for any argument.\n     *\n     * @param $argument\n     *\n     * @return int\n     */\n    public function scoreArgument($argument)\n    {\n        return 2;\n    }\n\n    /**\n     * Returns true to stop wildcard from processing other tokens.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return true;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return '* [, ...]';\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Approximate value token\n *\n * @author Daniel Leech <daniel@dantleech.com>\n */\nclass ApproximateValueToken implements TokenInterface\n{\n    private $value;\n    private $precision;\n\n    public function __construct($value, $precision = 0)\n    {\n        $this->value = $value;\n        $this->precision = $precision;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function scoreArgument($argument)\n    {\n        return round($argument, $this->precision) === round($this->value, $this->precision) ? 10 : false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('≅%s', round($this->value, $this->precision));\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Array elements count token.\n *\n * @author Boris Mikhaylov <kaguxmail@gmail.com>\n */\n\nclass ArrayCountToken implements TokenInterface\n{\n    private $count;\n\n    /**\n     * @param integer $value\n     */\n    public function __construct($value)\n    {\n        $this->count = $value;\n    }\n\n    /**\n     * Scores 6 when argument has preset number of elements.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return boolean\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('count(%s)', $this->count);\n    }\n\n    /**\n     * Returns true if object is either array or instance of \\Countable\n     *\n     * @param $argument\n     * @return bool\n     */\n    private function isCountable($argument)\n    {\n        return (is_array($argument) || $argument instanceof \\Countable);\n    }\n\n    /**\n     * Returns true if $argument has expected number of elements\n     *\n     * @param array|\\Countable $argument\n     *\n     * @return bool\n     */\n    private function hasProperCount($argument)\n    {\n        return $this->count === count($argument);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse Prophecy\\Exception\\InvalidArgumentException;\n\n/**\n * Array entry token.\n *\n * @author Boris Mikhaylov <kaguxmail@gmail.com>\n */\nclass ArrayEntryToken implements TokenInterface\n{\n    /** @var \\Prophecy\\Argument\\Token\\TokenInterface */\n    private $key;\n    /** @var \\Prophecy\\Argument\\Token\\TokenInterface */\n    private $value;\n\n    /**\n     * @param mixed $key   exact value or token\n     * @param mixed $value exact value or token\n     */\n    public function __construct($key, $value)\n    {\n        $this->key = $this->wrapIntoExactValueToken($key);\n        $this->value = $this->wrapIntoExactValueToken($value);\n    }\n\n    /**\n     * Scores half of combined scores from key and value tokens for same entry. Capped at 8.\n     * If argument implements \\ArrayAccess without \\Traversable, then key token is restricted to ExactValueToken.\n     *\n     * @param array|\\ArrayAccess|\\Traversable $argument\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        if ($argument instanceof \\Traversable) {\n            $argument = iterator_to_array($argument);\n        }\n\n        if ($argument instanceof \\ArrayAccess) {\n            $argument = $this->convertArrayAccessToEntry($argument);\n        }\n\n        if (!is_array($argument) || empty($argument)) {\n            return false;\n        }\n\n        $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument));\n        $valueScores = array_map(array($this->value,'scoreArgument'), $argument);\n        $scoreEntry = function ($value, $key) {\n            return $value && $key ? min(8, ($key + $value) / 2) : false;\n        };\n\n        return max(array_map($scoreEntry, $valueScores, $keyScores));\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return boolean\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('[..., %s => %s, ...]', $this->key, $this->value);\n    }\n\n    /**\n     * Returns key\n     *\n     * @return TokenInterface\n     */\n    public function getKey()\n    {\n        return $this->key;\n    }\n\n    /**\n     * Returns value\n     *\n     * @return TokenInterface\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n\n    /**\n     * Wraps non token $value into ExactValueToken\n     *\n     * @param $value\n     * @return TokenInterface\n     */\n    private function wrapIntoExactValueToken($value)\n    {\n        return $value instanceof TokenInterface ? $value : new ExactValueToken($value);\n    }\n\n    /**\n     * Converts instance of \\ArrayAccess to key => value array entry\n     *\n     * @param \\ArrayAccess $object\n     *\n     * @return array|null\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    private function convertArrayAccessToEntry(\\ArrayAccess $object)\n    {\n        if (!$this->key instanceof ExactValueToken) {\n            throw new InvalidArgumentException(sprintf(\n                'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL.\n                'But you used `%s`.',\n                $this->key\n            ));\n        }\n\n        $key = $this->key->getValue();\n\n        return $object->offsetExists($key) ? array($key => $object[$key]) : array();\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Array every entry token.\n *\n * @author Adrien Brault <adrien.brault@gmail.com>\n */\nclass ArrayEveryEntryToken implements TokenInterface\n{\n    /**\n     * @var TokenInterface\n     */\n    private $value;\n\n    /**\n     * @param mixed $value exact value or token\n     */\n    public function __construct($value)\n    {\n        if (!$value instanceof TokenInterface) {\n            $value = new ExactValueToken($value);\n        }\n\n        $this->value = $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function scoreArgument($argument)\n    {\n        if (!$argument instanceof \\Traversable && !is_array($argument)) {\n            return false;\n        }\n\n        $scores = array();\n        foreach ($argument as $key => $argumentEntry) {\n            $scores[] = $this->value->scoreArgument($argumentEntry);\n        }\n\n        if (empty($scores) || in_array(false, $scores, true)) {\n            return false;\n        }\n\n        return array_sum($scores) / count($scores);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __toString()\n    {\n        return sprintf('[%s, ..., %s]', $this->value, $this->value);\n    }\n\n    /**\n     * @return TokenInterface\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse Prophecy\\Exception\\InvalidArgumentException;\n\n/**\n * Callback-verified token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallbackToken implements TokenInterface\n{\n    private $callback;\n\n    /**\n     * Initializes token.\n     *\n     * @param callable $callback\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function __construct($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new InvalidArgumentException(sprintf(\n                'Callable expected as an argument to CallbackToken, but got %s.',\n                gettype($callback)\n            ));\n        }\n\n        $this->callback = $callback;\n    }\n\n    /**\n     * Scores 7 if callback returns true, false otherwise.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        return call_user_func($this->callback, $argument) ? 7 : false;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return 'callback()';\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse SebastianBergmann\\Comparator\\ComparisonFailure;\nuse Prophecy\\Comparator\\Factory as ComparatorFactory;\nuse Prophecy\\Util\\StringUtil;\n\n/**\n * Exact value token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ExactValueToken implements TokenInterface\n{\n    private $value;\n    private $string;\n    private $util;\n    private $comparatorFactory;\n\n    /**\n     * Initializes token.\n     *\n     * @param mixed             $value\n     * @param StringUtil        $util\n     * @param ComparatorFactory $comparatorFactory\n     */\n    public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null)\n    {\n        $this->value = $value;\n        $this->util  = $util ?: new StringUtil();\n\n        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();\n    }\n\n    /**\n     * Scores 10 if argument matches preset value.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        if (is_object($argument) && is_object($this->value)) {\n            $comparator = $this->comparatorFactory->getComparatorFor(\n                $argument, $this->value\n            );\n\n            try {\n                $comparator->assertEquals($argument, $this->value);\n                return 10;\n            } catch (ComparisonFailure $failure) {}\n        }\n\n        // If either one is an object it should be castable to a string\n        if (is_object($argument) xor is_object($this->value)) {\n            if (is_object($argument) && !method_exists($argument, '__toString')) {\n                return false;\n            }\n\n            if (is_object($this->value) && !method_exists($this->value, '__toString')) {\n                return false;\n            }\n        } elseif (is_numeric($argument) && is_numeric($this->value)) {\n            // noop\n        } elseif (gettype($argument) !== gettype($this->value)) {\n            return false;\n        }\n\n        return $argument == $this->value ? 10 : false;\n    }\n\n    /**\n     * Returns preset value against which token checks arguments.\n     *\n     * @return mixed\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if (null === $this->string) {\n            $this->string = sprintf('exact(%s)', $this->util->stringify($this->value));\n        }\n\n        return $this->string;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse Prophecy\\Util\\StringUtil;\n\n/**\n * Identical value token.\n *\n * @author Florian Voutzinos <florian@voutzinos.com>\n */\nclass IdenticalValueToken implements TokenInterface\n{\n    private $value;\n    private $string;\n    private $util;\n\n    /**\n     * Initializes token.\n     *\n     * @param mixed      $value\n     * @param StringUtil $util\n     */\n    public function __construct($value, StringUtil $util = null)\n    {\n        $this->value = $value;\n        $this->util  = $util ?: new StringUtil();\n    }\n\n    /**\n     * Scores 11 if argument matches preset value.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        return $argument === $this->value ? 11 : false;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        if (null === $this->string) {\n            $this->string = sprintf('identical(%s)', $this->util->stringify($this->value));\n        }\n\n        return $this->string;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Logical AND token.\n *\n * @author Boris Mikhaylov <kaguxmail@gmail.com>\n */\nclass LogicalAndToken implements TokenInterface\n{\n    private $tokens = array();\n\n    /**\n     * @param array $arguments exact values or tokens\n     */\n    public function __construct(array $arguments)\n    {\n        foreach ($arguments as $argument) {\n            if (!$argument instanceof TokenInterface) {\n                $argument = new ExactValueToken($argument);\n            }\n            $this->tokens[] = $argument;\n        }\n    }\n\n    /**\n     * Scores maximum score from scores returned by tokens for this argument if all of them score.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        if (0 === count($this->tokens)) {\n            return false;\n        }\n\n        $maxScore = 0;\n        foreach ($this->tokens as $token) {\n            $score = $token->scoreArgument($argument);\n            if (false === $score) {\n                return false;\n            }\n            $maxScore = max($score, $maxScore);\n        }\n\n        return $maxScore;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return boolean\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('bool(%s)', implode(' AND ', $this->tokens));\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Logical NOT token.\n *\n * @author Boris Mikhaylov <kaguxmail@gmail.com>\n */\nclass LogicalNotToken implements TokenInterface\n{\n    /** @var \\Prophecy\\Argument\\Token\\TokenInterface  */\n    private $token;\n\n    /**\n     * @param mixed $value exact value or token\n     */\n    public function __construct($value)\n    {\n        $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value);\n    }\n\n    /**\n     * Scores 4 when preset token does not match the argument.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        return false === $this->token->scoreArgument($argument) ? 4 : false;\n    }\n\n    /**\n     * Returns true if preset token is last.\n     *\n     * @return bool|int\n     */\n    public function isLast()\n    {\n        return $this->token->isLast();\n    }\n\n    /**\n     * Returns originating token.\n     *\n     * @return TokenInterface\n     */\n    public function getOriginatingToken()\n    {\n        return $this->token;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('not(%s)', $this->token);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse SebastianBergmann\\Comparator\\ComparisonFailure;\nuse Prophecy\\Comparator\\Factory as ComparatorFactory;\nuse Prophecy\\Util\\StringUtil;\n\n/**\n * Object state-checker token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ObjectStateToken implements TokenInterface\n{\n    private $name;\n    private $value;\n    private $util;\n    private $comparatorFactory;\n\n    /**\n     * Initializes token.\n     *\n     * @param string            $methodName\n     * @param mixed             $value             Expected return value\n     * @param null|StringUtil   $util\n     * @param ComparatorFactory $comparatorFactory\n     */\n    public function __construct(\n        $methodName,\n        $value,\n        StringUtil $util = null,\n        ComparatorFactory $comparatorFactory = null\n    ) {\n        $this->name  = $methodName;\n        $this->value = $value;\n        $this->util  = $util ?: new StringUtil;\n\n        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();\n    }\n\n    /**\n     * Scores 8 if argument is an object, which method returns expected value.\n     *\n     * @param mixed $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        if (is_object($argument) && method_exists($argument, $this->name)) {\n            $actual = call_user_func(array($argument, $this->name));\n\n            $comparator = $this->comparatorFactory->getComparatorFor(\n                $this->value, $actual\n            );\n\n            try {\n                $comparator->assertEquals($this->value, $actual);\n                return 8;\n            } catch (ComparisonFailure $failure) {\n                return false;\n            }\n        }\n\n        if (is_object($argument) && property_exists($argument, $this->name)) {\n            return $argument->{$this->name} === $this->value ? 8 : false;\n        }\n\n        return false;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('state(%s(), %s)',\n            $this->name,\n            $this->util->stringify($this->value)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * String contains token.\n *\n * @author Peter Mitchell <pete@peterjmit.com>\n */\nclass StringContainsToken implements TokenInterface\n{\n    private $value;\n\n    /**\n     * Initializes token.\n     *\n     * @param string $value\n     */\n    public function __construct($value)\n    {\n        $this->value = $value;\n    }\n\n    public function scoreArgument($argument)\n    {\n        return is_string($argument) && strpos($argument, $this->value) !== false ? 6 : false;\n    }\n\n    /**\n     * Returns preset value against which token checks arguments.\n     *\n     * @return mixed\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('contains(\"%s\")', $this->value);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\n/**\n * Argument token interface.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface TokenInterface\n{\n    /**\n     * Calculates token match score for provided argument.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument);\n\n    /**\n     * Returns true if this token prevents check of other tokens (is last one).\n     *\n     * @return bool|int\n     */\n    public function isLast();\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString();\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Argument\\Token;\n\nuse Prophecy\\Exception\\InvalidArgumentException;\n\n/**\n * Value type token.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass TypeToken implements TokenInterface\n{\n    private $type;\n\n    /**\n     * @param string $type\n     */\n    public function __construct($type)\n    {\n        $checker = \"is_{$type}\";\n        if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) {\n            throw new InvalidArgumentException(sprintf(\n                'Type or class name expected as an argument to TypeToken, but got %s.', $type\n            ));\n        }\n\n        $this->type = $type;\n    }\n\n    /**\n     * Scores 5 if argument has the same type this token was constructed with.\n     *\n     * @param $argument\n     *\n     * @return bool|int\n     */\n    public function scoreArgument($argument)\n    {\n        $checker = \"is_{$this->type}\";\n        if (function_exists($checker)) {\n            return call_user_func($checker, $argument) ? 5 : false;\n        }\n\n        return $argument instanceof $this->type ? 5 : false;\n    }\n\n    /**\n     * Returns false.\n     *\n     * @return bool\n     */\n    public function isLast()\n    {\n        return false;\n    }\n\n    /**\n     * Returns string representation for token.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return sprintf('type(%s)', $this->type);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Argument.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy;\n\nuse Prophecy\\Argument\\Token;\n\n/**\n * Argument tokens shortcuts.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass Argument\n{\n    /**\n     * Checks that argument is exact value or object.\n     *\n     * @param mixed $value\n     *\n     * @return Token\\ExactValueToken\n     */\n    public static function exact($value)\n    {\n        return new Token\\ExactValueToken($value);\n    }\n\n    /**\n     * Checks that argument is of specific type or instance of specific class.\n     *\n     * @param string $type Type name (`integer`, `string`) or full class name\n     *\n     * @return Token\\TypeToken\n     */\n    public static function type($type)\n    {\n        return new Token\\TypeToken($type);\n    }\n\n    /**\n     * Checks that argument object has specific state.\n     *\n     * @param string $methodName\n     * @param mixed  $value\n     *\n     * @return Token\\ObjectStateToken\n     */\n    public static function which($methodName, $value)\n    {\n        return new Token\\ObjectStateToken($methodName, $value);\n    }\n\n    /**\n     * Checks that argument matches provided callback.\n     *\n     * @param callable $callback\n     *\n     * @return Token\\CallbackToken\n     */\n    public static function that($callback)\n    {\n        return new Token\\CallbackToken($callback);\n    }\n\n    /**\n     * Matches any single value.\n     *\n     * @return Token\\AnyValueToken\n     */\n    public static function any()\n    {\n        return new Token\\AnyValueToken;\n    }\n\n    /**\n     * Matches all values to the rest of the signature.\n     *\n     * @return Token\\AnyValuesToken\n     */\n    public static function cetera()\n    {\n        return new Token\\AnyValuesToken;\n    }\n\n    /**\n     * Checks that argument matches all tokens\n     *\n     * @param mixed ... a list of tokens\n     *\n     * @return Token\\LogicalAndToken\n     */\n    public static function allOf()\n    {\n        return new Token\\LogicalAndToken(func_get_args());\n    }\n\n    /**\n     * Checks that argument array or countable object has exact number of elements.\n     *\n     * @param integer $value array elements count\n     *\n     * @return Token\\ArrayCountToken\n     */\n    public static function size($value)\n    {\n        return new Token\\ArrayCountToken($value);\n    }\n\n    /**\n     * Checks that argument array contains (key, value) pair\n     *\n     * @param mixed $key   exact value or token\n     * @param mixed $value exact value or token\n     *\n     * @return Token\\ArrayEntryToken\n     */\n    public static function withEntry($key, $value)\n    {\n        return new Token\\ArrayEntryToken($key, $value);\n    }\n\n    /**\n     * Checks that arguments array entries all match value\n     *\n     * @param mixed $value\n     *\n     * @return Token\\ArrayEveryEntryToken\n     */\n    public static function withEveryEntry($value)\n    {\n        return new Token\\ArrayEveryEntryToken($value);\n    }\n\n    /**\n     * Checks that argument array contains value\n     *\n     * @param mixed $value\n     *\n     * @return Token\\ArrayEntryToken\n     */\n    public static function containing($value)\n    {\n        return new Token\\ArrayEntryToken(self::any(), $value);\n    }\n\n    /**\n     * Checks that argument array has key\n     *\n     * @param mixed $key exact value or token\n     *\n     * @return Token\\ArrayEntryToken\n     */\n    public static function withKey($key)\n    {\n        return new Token\\ArrayEntryToken($key, self::any());\n    }\n\n    /**\n     * Checks that argument does not match the value|token.\n     *\n     * @param mixed $value either exact value or argument token\n     *\n     * @return Token\\LogicalNotToken\n     */\n    public static function not($value)\n    {\n        return new Token\\LogicalNotToken($value);\n    }\n\n    /**\n     * @param string $value\n     *\n     * @return Token\\StringContainsToken\n     */\n    public static function containingString($value)\n    {\n        return new Token\\StringContainsToken($value);\n    }\n\n    /**\n     * Checks that argument is identical value.\n     *\n     * @param mixed $value\n     *\n     * @return Token\\IdenticalValueToken\n     */\n    public static function is($value)\n    {\n        return new Token\\IdenticalValueToken($value);\n    }\n\n    /**\n     * Check that argument is same value when rounding to the\n     * given precision.\n     *\n     * @param float $value\n     * @param float $precision\n     *\n     * @return Token\\ApproximateValueToken\n     */\n    public static function approximate($value, $precision = 0)\n    {\n        return new Token\\ApproximateValueToken($value, $precision);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Call/Call.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Call;\n\nuse Exception;\nuse Prophecy\\Argument\\ArgumentsWildcard;\n\n/**\n * Call object.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass Call\n{\n    private $methodName;\n    private $arguments;\n    private $returnValue;\n    private $exception;\n    private $file;\n    private $line;\n    private $scores;\n\n    /**\n     * Initializes call.\n     *\n     * @param string      $methodName\n     * @param array       $arguments\n     * @param mixed       $returnValue\n     * @param Exception   $exception\n     * @param null|string $file\n     * @param null|int    $line\n     */\n    public function __construct($methodName, array $arguments, $returnValue,\n                                Exception $exception = null, $file, $line)\n    {\n        $this->methodName  = $methodName;\n        $this->arguments   = $arguments;\n        $this->returnValue = $returnValue;\n        $this->exception   = $exception;\n        $this->scores      = new \\SplObjectStorage();\n\n        if ($file) {\n            $this->file = $file;\n            $this->line = intval($line);\n        }\n    }\n\n    /**\n     * Returns called method name.\n     *\n     * @return string\n     */\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n\n    /**\n     * Returns called method arguments.\n     *\n     * @return array\n     */\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n\n    /**\n     * Returns called method return value.\n     *\n     * @return null|mixed\n     */\n    public function getReturnValue()\n    {\n        return $this->returnValue;\n    }\n\n    /**\n     * Returns exception that call thrown.\n     *\n     * @return null|Exception\n     */\n    public function getException()\n    {\n        return $this->exception;\n    }\n\n    /**\n     * Returns callee filename.\n     *\n     * @return string\n     */\n    public function getFile()\n    {\n        return $this->file;\n    }\n\n    /**\n     * Returns callee line number.\n     *\n     * @return int\n     */\n    public function getLine()\n    {\n        return $this->line;\n    }\n\n    /**\n     * Returns short notation for callee place.\n     *\n     * @return string\n     */\n    public function getCallPlace()\n    {\n        if (null === $this->file) {\n            return 'unknown';\n        }\n\n        return sprintf('%s:%d', $this->file, $this->line);\n    }\n\n    /**\n     * Adds the wildcard match score for the provided wildcard.\n     *\n     * @param ArgumentsWildcard $wildcard\n     * @param false|int $score\n     *\n     * @return $this\n     */\n    public function addScore(ArgumentsWildcard $wildcard, $score)\n    {\n        $this->scores[$wildcard] = $score;\n\n        return $this;\n    }\n\n    /**\n     * Returns wildcard match score for the provided wildcard. The score is\n     * calculated if not already done.\n     *\n     * @param ArgumentsWildcard $wildcard\n     *\n     * @return false|int False OR integer score (higher - better)\n     */\n    public function getScore(ArgumentsWildcard $wildcard)\n    {\n        if (isset($this->scores[$wildcard])) {\n            return $this->scores[$wildcard];\n        }\n\n        return $this->scores[$wildcard] = $wildcard->scoreArguments($this->getArguments());\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Call;\n\nuse Prophecy\\Exception\\Prophecy\\MethodProphecyException;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Argument\\ArgumentsWildcard;\nuse Prophecy\\Util\\StringUtil;\nuse Prophecy\\Exception\\Call\\UnexpectedCallException;\n\n/**\n * Calls receiver & manager.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallCenter\n{\n    private $util;\n\n    /**\n     * @var Call[]\n     */\n    private $recordedCalls = array();\n\n    /**\n     * Initializes call center.\n     *\n     * @param StringUtil $util\n     */\n    public function __construct(StringUtil $util = null)\n    {\n        $this->util = $util ?: new StringUtil;\n    }\n\n    /**\n     * Makes and records specific method call for object prophecy.\n     *\n     * @param ObjectProphecy $prophecy\n     * @param string         $methodName\n     * @param array          $arguments\n     *\n     * @return mixed Returns null if no promise for prophecy found or promise return value.\n     *\n     * @throws \\Prophecy\\Exception\\Call\\UnexpectedCallException If no appropriate method prophecy found\n     */\n    public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments)\n    {\n        // For efficiency exclude 'args' from the generated backtrace\n        if (PHP_VERSION_ID >= 50400) {\n            // Limit backtrace to last 3 calls as we don't use the rest\n            // Limit argument was introduced in PHP 5.4.0\n            $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);\n        } elseif (defined('DEBUG_BACKTRACE_IGNORE_ARGS')) {\n            // DEBUG_BACKTRACE_IGNORE_ARGS was introduced in PHP 5.3.6\n            $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);\n        } else {\n            $backtrace = debug_backtrace();\n        }\n\n        $file = $line = null;\n        if (isset($backtrace[2]) && isset($backtrace[2]['file'])) {\n            $file = $backtrace[2]['file'];\n            $line = $backtrace[2]['line'];\n        }\n\n        // If no method prophecies defined, then it's a dummy, so we'll just return null\n        if ('__destruct' === $methodName || 0 == count($prophecy->getMethodProphecies())) {\n            $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line);\n\n            return null;\n        }\n\n        // There are method prophecies, so it's a fake/stub. Searching prophecy for this call\n        $matches = array();\n        foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) {\n            if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) {\n                $matches[] = array($score, $methodProphecy);\n            }\n        }\n\n        // If fake/stub doesn't have method prophecy for this call - throw exception\n        if (!count($matches)) {\n            throw $this->createUnexpectedCallException($prophecy, $methodName, $arguments);\n        }\n\n        // Sort matches by their score value\n        @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; });\n\n        $score = $matches[0][0];\n        // If Highest rated method prophecy has a promise - execute it or return null instead\n        $methodProphecy = $matches[0][1];\n        $returnValue = null;\n        $exception   = null;\n        if ($promise = $methodProphecy->getPromise()) {\n            try {\n                $returnValue = $promise->execute($arguments, $prophecy, $methodProphecy);\n            } catch (\\Exception $e) {\n                $exception = $e;\n            }\n        }\n\n        if ($methodProphecy->hasReturnVoid() && $returnValue !== null) {\n            throw new MethodProphecyException(\n                \"The method \\\"$methodName\\\" has a void return type, but the promise returned a value\",\n                $methodProphecy\n            );\n        }\n\n        $this->recordedCalls[] = $call = new Call(\n            $methodName, $arguments, $returnValue, $exception, $file, $line\n        );\n        $call->addScore($methodProphecy->getArgumentsWildcard(), $score);\n\n        if (null !== $exception) {\n            throw $exception;\n        }\n\n        return $returnValue;\n    }\n\n    /**\n     * Searches for calls by method name & arguments wildcard.\n     *\n     * @param string            $methodName\n     * @param ArgumentsWildcard $wildcard\n     *\n     * @return Call[]\n     */\n    public function findCalls($methodName, ArgumentsWildcard $wildcard)\n    {\n        return array_values(\n            array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) {\n                return $methodName === $call->getMethodName()\n                    && 0 < $call->getScore($wildcard)\n                ;\n            })\n        );\n    }\n\n    private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName,\n                                                   array $arguments)\n    {\n        $classname = get_class($prophecy->reveal());\n        $indentationLength = 8; // looks good\n        $argstring = implode(\n            \",\\n\",\n            $this->indentArguments(\n                array_map(array($this->util, 'stringify'), $arguments),\n                $indentationLength\n            )\n        );\n\n        $expected = array();\n\n        foreach (call_user_func_array('array_merge', $prophecy->getMethodProphecies()) as $methodProphecy) {\n            $expected[] = sprintf(\n                \"  - %s(\\n\" .\n                \"%s\\n\" .\n                \"    )\",\n                $methodProphecy->getMethodName(),\n                implode(\n                    \",\\n\",\n                    $this->indentArguments(\n                        array_map('strval', $methodProphecy->getArgumentsWildcard()->getTokens()),\n                        $indentationLength\n                    )\n                )\n            );\n        }\n\n        return new UnexpectedCallException(\n            sprintf(\n                \"Unexpected method call on %s:\\n\".\n                \"  - %s(\\n\".\n                \"%s\\n\".\n                \"    )\\n\".\n                \"expected calls were:\\n\".\n                \"%s\",\n\n                $classname, $methodName, $argstring, implode(\"\\n\", $expected)\n            ),\n            $prophecy, $methodName, $arguments\n\n        );\n    }\n\n    private function formatExceptionMessage(MethodProphecy $methodProphecy)\n    {\n        return sprintf(\n            \"  - %s(\\n\".\n            \"%s\\n\".\n            \"    )\",\n            $methodProphecy->getMethodName(),\n            implode(\n                \",\\n\",\n                $this->indentArguments(\n                    array_map(\n                        function ($token) {\n                            return (string) $token;\n                        },\n                        $methodProphecy->getArgumentsWildcard()->getTokens()\n                    ),\n                    $indentationLength\n                )\n            )\n        );\n    }\n\n    private function indentArguments(array $arguments, $indentationLength)\n    {\n        return preg_replace_callback(\n            '/^/m',\n            function () use ($indentationLength) {\n                return str_repeat(' ', $indentationLength);\n            },\n            $arguments\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Comparator;\n\nuse SebastianBergmann\\Comparator\\Comparator;\nuse SebastianBergmann\\Comparator\\ComparisonFailure;\n\n/**\n * Closure comparator.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nfinal class ClosureComparator extends Comparator\n{\n    public function accepts($expected, $actual)\n    {\n        return is_object($expected) && $expected instanceof \\Closure\n            && is_object($actual) && $actual instanceof \\Closure;\n    }\n\n    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)\n    {\n        throw new ComparisonFailure(\n            $expected,\n            $actual,\n            // we don't need a diff\n            '',\n            '',\n            false,\n            'all closures are born different'\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Comparator;\n\nuse SebastianBergmann\\Comparator\\Factory as BaseFactory;\n\n/**\n * Prophecy comparator factory.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nfinal class Factory extends BaseFactory\n{\n    /**\n     * @var Factory\n     */\n    private static $instance;\n\n    public function __construct()\n    {\n        parent::__construct();\n\n        $this->register(new ClosureComparator());\n        $this->register(new ProphecyComparator());\n    }\n\n    /**\n     * @return Factory\n     */\n    public static function getInstance()\n    {\n        if (self::$instance === null) {\n            self::$instance = new Factory;\n        }\n\n        return self::$instance;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Comparator;\n\nuse Prophecy\\Prophecy\\ProphecyInterface;\nuse SebastianBergmann\\Comparator\\ObjectComparator;\n\nclass ProphecyComparator extends ObjectComparator\n{\n    public function accepts($expected, $actual)\n    {\n        return is_object($expected) && is_object($actual) && $actual instanceof ProphecyInterface;\n    }\n\n    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array())\n    {\n        parent::assertEquals($expected, $actual->reveal(), $delta, $canonicalize, $ignoreCase, $processed);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler;\n\nuse ReflectionClass;\n\n/**\n * Cached class doubler.\n * Prevents mirroring/creation of the same structure twice.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CachedDoubler extends Doubler\n{\n    private $classes = array();\n\n    /**\n     * {@inheritdoc}\n     */\n    public function registerClassPatch(ClassPatch\\ClassPatchInterface $patch)\n    {\n        $this->classes[] = array();\n\n        parent::registerClassPatch($patch);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)\n    {\n        $classId = $this->generateClassId($class, $interfaces);\n        if (isset($this->classes[$classId])) {\n            return $this->classes[$classId];\n        }\n\n        return $this->classes[$classId] = parent::createDoubleClass($class, $interfaces);\n    }\n\n    /**\n     * @param ReflectionClass   $class\n     * @param ReflectionClass[] $interfaces\n     *\n     * @return string\n     */\n    private function generateClassId(ReflectionClass $class = null, array $interfaces)\n    {\n        $parts = array();\n        if (null !== $class) {\n            $parts[] = $class->getName();\n        }\n        foreach ($interfaces as $interface) {\n            $parts[] = $interface->getName();\n        }\n        sort($parts);\n\n        return md5(implode('', $parts));\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\n\n/**\n * Class patch interface.\n * Class patches extend doubles functionality or help\n * Prophecy to avoid some internal PHP bugs.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface ClassPatchInterface\n{\n    /**\n     * Checks if patch supports specific class node.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node);\n\n    /**\n     * Applies patch to the specific class node.\n     *\n     * @param ClassNode $node\n     * @return void\n     */\n    public function apply(ClassNode $node);\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority();\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Doubler\\Generator\\Node\\MethodNode;\n\n/**\n * Disable constructor.\n * Makes all constructor arguments optional.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass DisableConstructorPatch implements ClassPatchInterface\n{\n    /**\n     * Checks if class has `__construct` method.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        return true;\n    }\n\n    /**\n     * Makes all class constructor arguments optional.\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        if (!$node->isExtendable('__construct')) {\n            return;\n        }\n\n        if (!$node->hasMethod('__construct')) {\n            $node->addMethod(new MethodNode('__construct', ''));\n\n            return;\n        }\n\n        $constructor = $node->getMethod('__construct');\n        foreach ($constructor->getArguments() as $argument) {\n            $argument->setDefault(null);\n        }\n\n        $constructor->setCode(<<<PHP\nif (0 < func_num_args()) {\n    call_user_func_array(array('parent', '__construct'), func_get_args());\n}\nPHP\n        );\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 100;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/HhvmExceptionPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\n\n/**\n * Exception patch for HHVM to remove the stubs from special methods\n *\n * @author Christophe Coevoet <stof@notk.org>\n */\nclass HhvmExceptionPatch implements ClassPatchInterface\n{\n    /**\n     * Supports exceptions on HHVM.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        if (!defined('HHVM_VERSION')) {\n            return false;\n        }\n\n        return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception');\n    }\n\n    /**\n     * Removes special exception static methods from the doubled methods.\n     *\n     * @param ClassNode $node\n     *\n     * @return void\n     */\n    public function apply(ClassNode $node)\n    {\n        if ($node->hasMethod('setTraceOptions')) {\n            $node->getMethod('setTraceOptions')->useParentCode();\n        }\n        if ($node->hasMethod('getTraceOptions')) {\n            $node->getMethod('getTraceOptions')->useParentCode();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getPriority()\n    {\n        return -50;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\n\n/**\n * Remove method functionality from the double which will clash with php keywords.\n *\n * @author Milan Magudia <milan@magudia.com>\n */\nclass KeywordPatch implements ClassPatchInterface\n{\n    /**\n     * Support any class\n     *\n     * @param ClassNode $node\n     *\n     * @return boolean\n     */\n    public function supports(ClassNode $node)\n    {\n        return true;\n    }\n\n    /**\n     * Remove methods that clash with php keywords\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        $methodNames = array_keys($node->getMethods());\n        $methodsToRemove = array_intersect($methodNames, $this->getKeywords());\n        foreach ($methodsToRemove as $methodName) {\n            $node->removeMethod($methodName);\n        }\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 49;\n    }\n\n    /**\n     * Returns array of php keywords.\n     *\n     * @return array\n     */\n    private function getKeywords()\n    {\n        if (\\PHP_VERSION_ID >= 70000) {\n            return array('__halt_compiler');\n        }\n\n        return array(\n            '__halt_compiler',\n            'abstract',\n            'and',\n            'array',\n            'as',\n            'break',\n            'callable',\n            'case',\n            'catch',\n            'class',\n            'clone',\n            'const',\n            'continue',\n            'declare',\n            'default',\n            'die',\n            'do',\n            'echo',\n            'else',\n            'elseif',\n            'empty',\n            'enddeclare',\n            'endfor',\n            'endforeach',\n            'endif',\n            'endswitch',\n            'endwhile',\n            'eval',\n            'exit',\n            'extends',\n            'final',\n            'finally',\n            'for',\n            'foreach',\n            'function',\n            'global',\n            'goto',\n            'if',\n            'implements',\n            'include',\n            'include_once',\n            'instanceof',\n            'insteadof',\n            'interface',\n            'isset',\n            'list',\n            'namespace',\n            'new',\n            'or',\n            'print',\n            'private',\n            'protected',\n            'public',\n            'require',\n            'require_once',\n            'return',\n            'static',\n            'switch',\n            'throw',\n            'trait',\n            'try',\n            'unset',\n            'use',\n            'var',\n            'while',\n            'xor',\n            'yield',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Doubler\\Generator\\Node\\MethodNode;\nuse Prophecy\\PhpDocumentor\\ClassAndInterfaceTagRetriever;\nuse Prophecy\\PhpDocumentor\\MethodTagRetrieverInterface;\n\n/**\n * Discover Magical API using \"@method\" PHPDoc format.\n *\n * @author Thomas Tourlourat <thomas@tourlourat.com>\n * @author Kévin Dunglas <dunglas@gmail.com>\n * @author Théo FIDRY <theo.fidry@gmail.com>\n */\nclass MagicCallPatch implements ClassPatchInterface\n{\n    private $tagRetriever;\n\n    public function __construct(MethodTagRetrieverInterface $tagRetriever = null)\n    {\n        $this->tagRetriever = null === $tagRetriever ? new ClassAndInterfaceTagRetriever() : $tagRetriever;\n    }\n\n    /**\n     * Support any class\n     *\n     * @param ClassNode $node\n     *\n     * @return boolean\n     */\n    public function supports(ClassNode $node)\n    {\n        return true;\n    }\n\n    /**\n     * Discover Magical API\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        $types = array_filter($node->getInterfaces(), function ($interface) {\n            return 0 !== strpos($interface, 'Prophecy\\\\');\n        });\n        $types[] = $node->getParentClass();\n\n        foreach ($types as $type) {\n            $reflectionClass = new \\ReflectionClass($type);\n\n            while ($reflectionClass) {\n                $tagList = $this->tagRetriever->getTagList($reflectionClass);\n\n                foreach ($tagList as $tag) {\n                    $methodName = $tag->getMethodName();\n\n                    if (empty($methodName)) {\n                        continue;\n                    }\n\n                    if (!$reflectionClass->hasMethod($methodName)) {\n                        $methodNode = new MethodNode($methodName);\n                        $methodNode->setStatic($tag->isStatic());\n                        $node->addMethod($methodNode);\n                    }\n                }\n\n                $reflectionClass = $reflectionClass->getParentClass();\n            }\n        }\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return integer Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 50;\n    }\n}\n\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Doubler\\Generator\\Node\\MethodNode;\nuse Prophecy\\Doubler\\Generator\\Node\\ArgumentNode;\n\n/**\n * Add Prophecy functionality to the double.\n * This is a core class patch for Prophecy.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ProphecySubjectPatch implements ClassPatchInterface\n{\n    /**\n     * Always returns true.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        return true;\n    }\n\n    /**\n     * Apply Prophecy functionality to class node.\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        $node->addInterface('Prophecy\\Prophecy\\ProphecySubjectInterface');\n        $node->addProperty('objectProphecy', 'private');\n\n        foreach ($node->getMethods() as $name => $method) {\n            if ('__construct' === strtolower($name)) {\n                continue;\n            }\n\n            if ($method->getReturnType() === 'void') {\n                $method->setCode(\n                    '$this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());'\n                );\n            } else {\n                $method->setCode(\n                    'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());'\n                );\n            }\n        }\n\n        $prophecySetter = new MethodNode('setProphecy');\n        $prophecyArgument = new ArgumentNode('prophecy');\n        $prophecyArgument->setTypeHint('Prophecy\\Prophecy\\ProphecyInterface');\n        $prophecySetter->addArgument($prophecyArgument);\n        $prophecySetter->setCode('$this->objectProphecy = $prophecy;');\n\n        $prophecyGetter = new MethodNode('getProphecy');\n        $prophecyGetter->setCode('return $this->objectProphecy;');\n\n        if ($node->hasMethod('__call')) {\n            $__call = $node->getMethod('__call');\n        } else {\n            $__call = new MethodNode('__call');\n            $__call->addArgument(new ArgumentNode('name'));\n            $__call->addArgument(new ArgumentNode('arguments'));\n\n            $node->addMethod($__call, true);\n        }\n\n        $__call->setCode(<<<PHP\nthrow new \\Prophecy\\Exception\\Doubler\\MethodNotFoundException(\n    sprintf('Method `%s::%s()` not found.', get_class(\\$this), func_get_arg(0)),\n    \\$this->getProphecy(), func_get_arg(0)\n);\nPHP\n        );\n\n        $node->addMethod($prophecySetter, true);\n        $node->addMethod($prophecyGetter, true);\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 0;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\n\n/**\n * ReflectionClass::newInstance patch.\n * Makes first argument of newInstance optional, since it works but signature is misleading\n *\n * @author Florian Klein <florian.klein@free.fr>\n */\nclass ReflectionClassNewInstancePatch implements ClassPatchInterface\n{\n    /**\n     * Supports ReflectionClass\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        return 'ReflectionClass' === $node->getParentClass();\n    }\n\n    /**\n     * Updates newInstance's first argument to make it optional\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        foreach ($node->getMethod('newInstance')->getArguments() as $argument) {\n            $argument->setDefault(null);\n        }\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher = earlier)\n     */\n    public function getPriority()\n    {\n        return 50;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Doubler\\Generator\\Node\\MethodNode;\n\n/**\n * SplFileInfo patch.\n * Makes SplFileInfo and derivative classes usable with Prophecy.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass SplFileInfoPatch implements ClassPatchInterface\n{\n    /**\n     * Supports everything that extends SplFileInfo.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        if (null === $node->getParentClass()) {\n            return false;\n        }\n        return 'SplFileInfo' === $node->getParentClass()\n            || is_subclass_of($node->getParentClass(), 'SplFileInfo')\n        ;\n    }\n\n    /**\n     * Updated constructor code to call parent one with dummy file argument.\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        if ($node->hasMethod('__construct')) {\n            $constructor = $node->getMethod('__construct');\n        } else {\n            $constructor = new MethodNode('__construct');\n            $node->addMethod($constructor);\n        }\n\n        if ($this->nodeIsDirectoryIterator($node)) {\n            $constructor->setCode('return parent::__construct(\"' . __DIR__ . '\");');\n\n            return;\n        }\n\n        if ($this->nodeIsSplFileObject($node)) {\n            $filePath = str_replace('\\\\','\\\\\\\\',__FILE__);\n            $constructor->setCode('return parent::__construct(\"' . $filePath .'\");');\n\n            return;\n        }\n\n        if ($this->nodeIsSymfonySplFileInfo($node)) {\n            $filePath = str_replace('\\\\','\\\\\\\\',__FILE__);\n            $constructor->setCode('return parent::__construct(\"' . $filePath .'\", \"\", \"\");');\n\n            return;\n        }\n\n        $constructor->useParentCode();\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 50;\n    }\n\n    /**\n     * @param ClassNode $node\n     * @return boolean\n     */\n    private function nodeIsDirectoryIterator(ClassNode $node)\n    {\n        $parent = $node->getParentClass();\n\n        return 'DirectoryIterator' === $parent\n            || is_subclass_of($parent, 'DirectoryIterator');\n    }\n\n    /**\n     * @param ClassNode $node\n     * @return boolean\n     */\n    private function nodeIsSplFileObject(ClassNode $node)\n    {\n        $parent = $node->getParentClass();\n\n        return 'SplFileObject' === $parent\n            || is_subclass_of($parent, 'SplFileObject');\n    }\n\n    /**\n     * @param ClassNode $node\n     * @return boolean\n     */\n    private function nodeIsSymfonySplFileInfo(ClassNode $node)\n    {\n        $parent = $node->getParentClass();\n\n        return 'Symfony\\\\Component\\\\Finder\\\\SplFileInfo' === $parent;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php",
    "content": "<?php\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Exception\\Doubler\\ClassCreatorException;\n\nclass ThrowablePatch implements ClassPatchInterface\n{\n    /**\n     * Checks if patch supports specific class node.\n     *\n     * @param ClassNode $node\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        return $this->implementsAThrowableInterface($node) && $this->doesNotExtendAThrowableClass($node);\n    }\n\n    /**\n     * @param ClassNode $node\n     * @return bool\n     */\n    private function implementsAThrowableInterface(ClassNode $node)\n    {\n        foreach ($node->getInterfaces() as $type) {\n            if (is_a($type, 'Throwable', true)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * @param ClassNode $node\n     * @return bool\n     */\n    private function doesNotExtendAThrowableClass(ClassNode $node)\n    {\n        return !is_a($node->getParentClass(), 'Throwable', true);\n    }\n\n    /**\n     * Applies patch to the specific class node.\n     *\n     * @param ClassNode $node\n     *\n     * @return void\n     */\n    public function apply(ClassNode $node)\n    {\n        $this->checkItCanBeDoubled($node);\n        $this->setParentClassToException($node);\n    }\n\n    private function checkItCanBeDoubled(ClassNode $node)\n    {\n        $className = $node->getParentClass();\n        if ($className !== 'stdClass') {\n            throw new ClassCreatorException(\n                sprintf(\n                    'Cannot double concrete class %s as well as implement Traversable',\n                    $className\n                ),\n                $node\n            );\n        }\n    }\n\n    private function setParentClassToException(ClassNode $node)\n    {\n        $node->setParentClass('Exception');\n\n        $node->removeMethod('getMessage');\n        $node->removeMethod('getCode');\n        $node->removeMethod('getFile');\n        $node->removeMethod('getLine');\n        $node->removeMethod('getTrace');\n        $node->removeMethod('getPrevious');\n        $node->removeMethod('getNext');\n        $node->removeMethod('getTraceAsString');\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 100;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\ClassPatch;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\nuse Prophecy\\Doubler\\Generator\\Node\\MethodNode;\n\n/**\n * Traversable interface patch.\n * Forces classes that implement interfaces, that extend Traversable to also implement Iterator.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass TraversablePatch implements ClassPatchInterface\n{\n    /**\n     * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate.\n     *\n     * @param ClassNode $node\n     *\n     * @return bool\n     */\n    public function supports(ClassNode $node)\n    {\n        if (in_array('Iterator', $node->getInterfaces())) {\n            return false;\n        }\n        if (in_array('IteratorAggregate', $node->getInterfaces())) {\n            return false;\n        }\n\n        foreach ($node->getInterfaces() as $interface) {\n            if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) {\n                continue;\n            }\n            if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) {\n                continue;\n            }\n            if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) {\n                continue;\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Forces class to implement Iterator interface.\n     *\n     * @param ClassNode $node\n     */\n    public function apply(ClassNode $node)\n    {\n        $node->addInterface('Iterator');\n\n        $node->addMethod(new MethodNode('current'));\n        $node->addMethod(new MethodNode('key'));\n        $node->addMethod(new MethodNode('next'));\n        $node->addMethod(new MethodNode('rewind'));\n        $node->addMethod(new MethodNode('valid'));\n    }\n\n    /**\n     * Returns patch priority, which determines when patch will be applied.\n     *\n     * @return int Priority number (higher - earlier)\n     */\n    public function getPriority()\n    {\n        return 100;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler;\n\n/**\n * Core double interface.\n * All doubled classes will implement this one.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface DoubleInterface\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler;\n\nuse Doctrine\\Instantiator\\Instantiator;\nuse Prophecy\\Doubler\\ClassPatch\\ClassPatchInterface;\nuse Prophecy\\Doubler\\Generator\\ClassMirror;\nuse Prophecy\\Doubler\\Generator\\ClassCreator;\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse ReflectionClass;\n\n/**\n * Cached class doubler.\n * Prevents mirroring/creation of the same structure twice.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass Doubler\n{\n    private $mirror;\n    private $creator;\n    private $namer;\n\n    /**\n     * @var ClassPatchInterface[]\n     */\n    private $patches = array();\n\n    /**\n     * @var \\Doctrine\\Instantiator\\Instantiator\n     */\n    private $instantiator;\n\n    /**\n     * Initializes doubler.\n     *\n     * @param ClassMirror   $mirror\n     * @param ClassCreator  $creator\n     * @param NameGenerator $namer\n     */\n    public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null,\n                                NameGenerator $namer = null)\n    {\n        $this->mirror  = $mirror  ?: new ClassMirror;\n        $this->creator = $creator ?: new ClassCreator;\n        $this->namer   = $namer   ?: new NameGenerator;\n    }\n\n    /**\n     * Returns list of registered class patches.\n     *\n     * @return ClassPatchInterface[]\n     */\n    public function getClassPatches()\n    {\n        return $this->patches;\n    }\n\n    /**\n     * Registers new class patch.\n     *\n     * @param ClassPatchInterface $patch\n     */\n    public function registerClassPatch(ClassPatchInterface $patch)\n    {\n        $this->patches[] = $patch;\n\n        @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) {\n            return $patch2->getPriority() - $patch1->getPriority();\n        });\n    }\n\n    /**\n     * Creates double from specific class or/and list of interfaces.\n     *\n     * @param ReflectionClass   $class\n     * @param ReflectionClass[] $interfaces Array of ReflectionClass instances\n     * @param array             $args       Constructor arguments\n     *\n     * @return DoubleInterface\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function double(ReflectionClass $class = null, array $interfaces, array $args = null)\n    {\n        foreach ($interfaces as $interface) {\n            if (!$interface instanceof ReflectionClass) {\n                throw new InvalidArgumentException(sprintf(\n                    \"[ReflectionClass \\$interface1 [, ReflectionClass \\$interface2]] array expected as\\n\".\n                    \"a second argument to `Doubler::double(...)`, but got %s.\",\n                    is_object($interface) ? get_class($interface).' class' : gettype($interface)\n                ));\n            }\n        }\n\n        $classname  = $this->createDoubleClass($class, $interfaces);\n        $reflection = new ReflectionClass($classname);\n\n        if (null !== $args) {\n            return $reflection->newInstanceArgs($args);\n        }\n        if ((null === $constructor = $reflection->getConstructor())\n            || ($constructor->isPublic() && !$constructor->isFinal())) {\n            return $reflection->newInstance();\n        }\n\n        if (!$this->instantiator) {\n            $this->instantiator = new Instantiator();\n        }\n\n        return $this->instantiator->instantiate($classname);\n    }\n\n    /**\n     * Creates double class and returns its FQN.\n     *\n     * @param ReflectionClass   $class\n     * @param ReflectionClass[] $interfaces\n     *\n     * @return string\n     */\n    protected function createDoubleClass(ReflectionClass $class = null, array $interfaces)\n    {\n        $name = $this->namer->name($class, $interfaces);\n        $node = $this->mirror->reflect($class, $interfaces);\n\n        foreach ($this->patches as $patch) {\n            if ($patch->supports($node)) {\n                $patch->apply($node);\n            }\n        }\n\n        $this->creator->create($name, $node);\n\n        return $name;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator;\n\n/**\n * Class code creator.\n * Generates PHP code for specific class node tree.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ClassCodeGenerator\n{\n    /**\n     * @var TypeHintReference\n     */\n    private $typeHintReference;\n\n    public function __construct(TypeHintReference $typeHintReference = null)\n    {\n        $this->typeHintReference = $typeHintReference ?: new TypeHintReference();\n    }\n\n    /**\n     * Generates PHP code for class node.\n     *\n     * @param string         $classname\n     * @param Node\\ClassNode $class\n     *\n     * @return string\n     */\n    public function generate($classname, Node\\ClassNode $class)\n    {\n        $parts     = explode('\\\\', $classname);\n        $classname = array_pop($parts);\n        $namespace = implode('\\\\', $parts);\n\n        $code = sprintf(\"class %s extends \\%s implements %s {\\n\",\n            $classname, $class->getParentClass(), implode(', ',\n                array_map(function ($interface) {return '\\\\'.$interface;}, $class->getInterfaces())\n            )\n        );\n\n        foreach ($class->getProperties() as $name => $visibility) {\n            $code .= sprintf(\"%s \\$%s;\\n\", $visibility, $name);\n        }\n        $code .= \"\\n\";\n\n        foreach ($class->getMethods() as $method) {\n            $code .= $this->generateMethod($method).\"\\n\";\n        }\n        $code .= \"\\n}\";\n\n        return sprintf(\"namespace %s {\\n%s\\n}\", $namespace, $code);\n    }\n\n    private function generateMethod(Node\\MethodNode $method)\n    {\n        $php = sprintf(\"%s %s function %s%s(%s)%s {\\n\",\n            $method->getVisibility(),\n            $method->isStatic() ? 'static' : '',\n            $method->returnsReference() ? '&':'',\n            $method->getName(),\n            implode(', ', $this->generateArguments($method->getArguments())),\n            $this->getReturnType($method)\n        );\n        $php .= $method->getCode().\"\\n\";\n\n        return $php.'}';\n    }\n\n    /**\n     * @return string\n     */\n    private function getReturnType(Node\\MethodNode $method)\n    {\n        if (version_compare(PHP_VERSION, '7.1', '>=')) {\n            if ($method->hasReturnType()) {\n                return $method->hasNullableReturnType()\n                    ? sprintf(': ?%s', $method->getReturnType())\n                    : sprintf(': %s', $method->getReturnType());\n            }\n        }\n\n        if (version_compare(PHP_VERSION, '7.0', '>=')) {\n            return $method->hasReturnType() && $method->getReturnType() !== 'void'\n                ? sprintf(': %s', $method->getReturnType())\n                : '';\n        }\n\n        return '';\n    }\n\n    private function generateArguments(array $arguments)\n    {\n        $typeHintReference = $this->typeHintReference;\n        return array_map(function (Node\\ArgumentNode $argument) use ($typeHintReference) {\n            $php = '';\n\n            if (version_compare(PHP_VERSION, '7.1', '>=')) {\n                $php .= $argument->isNullable() ? '?' : '';\n            }\n\n            if ($hint = $argument->getTypeHint()) {\n                $php .= $typeHintReference->isBuiltInParamTypeHint($hint) ? $hint : '\\\\'.$hint;\n            }\n\n            $php .= ' '.($argument->isPassedByReference() ? '&' : '');\n\n            $php .= $argument->isVariadic() ? '...' : '';\n\n            $php .= '$'.$argument->getName();\n\n            if ($argument->isOptional() && !$argument->isVariadic()) {\n                $php .= ' = '.var_export($argument->getDefault(), true);\n            }\n\n            return $php;\n        }, $arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator;\n\nuse Prophecy\\Exception\\Doubler\\ClassCreatorException;\n\n/**\n * Class creator.\n * Creates specific class in current environment.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ClassCreator\n{\n    private $generator;\n\n    /**\n     * Initializes creator.\n     *\n     * @param ClassCodeGenerator $generator\n     */\n    public function __construct(ClassCodeGenerator $generator = null)\n    {\n        $this->generator = $generator ?: new ClassCodeGenerator;\n    }\n\n    /**\n     * Creates class.\n     *\n     * @param string         $classname\n     * @param Node\\ClassNode $class\n     *\n     * @return mixed\n     *\n     * @throws \\Prophecy\\Exception\\Doubler\\ClassCreatorException\n     */\n    public function create($classname, Node\\ClassNode $class)\n    {\n        $code = $this->generator->generate($classname, $class);\n        $return = eval($code);\n\n        if (!class_exists($classname, false)) {\n            if (count($class->getInterfaces())) {\n                throw new ClassCreatorException(sprintf(\n                    'Could not double `%s` and implement interfaces: [%s].',\n                    $class->getParentClass(), implode(', ', $class->getInterfaces())\n                ), $class);\n            }\n\n            throw new ClassCreatorException(\n                sprintf('Could not double `%s`.', $class->getParentClass()),\n                $class\n            );\n        }\n\n        return $return;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator;\n\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse Prophecy\\Exception\\Doubler\\ClassMirrorException;\nuse ReflectionClass;\nuse ReflectionMethod;\nuse ReflectionParameter;\n\n/**\n * Class mirror.\n * Core doubler class. Mirrors specific class and/or interfaces into class node tree.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ClassMirror\n{\n    private static $reflectableMethods = array(\n        '__construct',\n        '__destruct',\n        '__sleep',\n        '__wakeup',\n        '__toString',\n        '__call',\n        '__invoke'\n    );\n\n    /**\n     * Reflects provided arguments into class node.\n     *\n     * @param ReflectionClass   $class\n     * @param ReflectionClass[] $interfaces\n     *\n     * @return Node\\ClassNode\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function reflect(ReflectionClass $class = null, array $interfaces)\n    {\n        $node = new Node\\ClassNode;\n\n        if (null !== $class) {\n            if (true === $class->isInterface()) {\n                throw new InvalidArgumentException(sprintf(\n                    \"Could not reflect %s as a class, because it\\n\".\n                    \"is interface - use the second argument instead.\",\n                    $class->getName()\n                ));\n            }\n\n            $this->reflectClassToNode($class, $node);\n        }\n\n        foreach ($interfaces as $interface) {\n            if (!$interface instanceof ReflectionClass) {\n                throw new InvalidArgumentException(sprintf(\n                    \"[ReflectionClass \\$interface1 [, ReflectionClass \\$interface2]] array expected as\\n\".\n                    \"a second argument to `ClassMirror::reflect(...)`, but got %s.\",\n                    is_object($interface) ? get_class($interface).' class' : gettype($interface)\n                ));\n            }\n            if (false === $interface->isInterface()) {\n                throw new InvalidArgumentException(sprintf(\n                    \"Could not reflect %s as an interface, because it\\n\".\n                    \"is class - use the first argument instead.\",\n                    $interface->getName()\n                ));\n            }\n\n            $this->reflectInterfaceToNode($interface, $node);\n        }\n\n        $node->addInterface('Prophecy\\Doubler\\Generator\\ReflectionInterface');\n\n        return $node;\n    }\n\n    private function reflectClassToNode(ReflectionClass $class, Node\\ClassNode $node)\n    {\n        if (true === $class->isFinal()) {\n            throw new ClassMirrorException(sprintf(\n                'Could not reflect class %s as it is marked final.', $class->getName()\n            ), $class);\n        }\n\n        $node->setParentClass($class->getName());\n\n        foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) {\n            if (false === $method->isProtected()) {\n                continue;\n            }\n\n            $this->reflectMethodToNode($method, $node);\n        }\n\n        foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {\n            if (0 === strpos($method->getName(), '_')\n                && !in_array($method->getName(), self::$reflectableMethods)) {\n                continue;\n            }\n\n            if (true === $method->isFinal()) {\n                $node->addUnextendableMethod($method->getName());\n                continue;\n            }\n\n            $this->reflectMethodToNode($method, $node);\n        }\n    }\n\n    private function reflectInterfaceToNode(ReflectionClass $interface, Node\\ClassNode $node)\n    {\n        $node->addInterface($interface->getName());\n\n        foreach ($interface->getMethods() as $method) {\n            $this->reflectMethodToNode($method, $node);\n        }\n    }\n\n    private function reflectMethodToNode(ReflectionMethod $method, Node\\ClassNode $classNode)\n    {\n        $node = new Node\\MethodNode($method->getName());\n\n        if (true === $method->isProtected()) {\n            $node->setVisibility('protected');\n        }\n\n        if (true === $method->isStatic()) {\n            $node->setStatic();\n        }\n\n        if (true === $method->returnsReference()) {\n            $node->setReturnsReference();\n        }\n\n        if (version_compare(PHP_VERSION, '7.0', '>=') && $method->hasReturnType()) {\n            $returnType = (string) $method->getReturnType();\n            $returnTypeLower = strtolower($returnType);\n\n            if ('self' === $returnTypeLower) {\n                $returnType = $method->getDeclaringClass()->getName();\n            }\n            if ('parent' === $returnTypeLower) {\n                $returnType = $method->getDeclaringClass()->getParentClass()->getName();\n            }\n\n            $node->setReturnType($returnType);\n\n            if (version_compare(PHP_VERSION, '7.1', '>=') && $method->getReturnType()->allowsNull()) {\n                $node->setNullableReturnType(true);\n            }\n        }\n\n        if (is_array($params = $method->getParameters()) && count($params)) {\n            foreach ($params as $param) {\n                $this->reflectArgumentToNode($param, $node);\n            }\n        }\n\n        $classNode->addMethod($node);\n    }\n\n    private function reflectArgumentToNode(ReflectionParameter $parameter, Node\\MethodNode $methodNode)\n    {\n        $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName();\n        $node = new Node\\ArgumentNode($name);\n\n        $node->setTypeHint($this->getTypeHint($parameter));\n\n        if ($this->isVariadic($parameter)) {\n            $node->setAsVariadic();\n        }\n\n        if ($this->hasDefaultValue($parameter)) {\n            $node->setDefault($this->getDefaultValue($parameter));\n        }\n\n        if ($parameter->isPassedByReference()) {\n            $node->setAsPassedByReference();\n        }\n\n        $node->setAsNullable($this->isNullable($parameter));\n\n        $methodNode->addArgument($node);\n    }\n\n    private function hasDefaultValue(ReflectionParameter $parameter)\n    {\n        if ($this->isVariadic($parameter)) {\n            return false;\n        }\n\n        if ($parameter->isDefaultValueAvailable()) {\n            return true;\n        }\n\n        return $parameter->isOptional() || $this->isNullable($parameter);\n    }\n\n    private function getDefaultValue(ReflectionParameter $parameter)\n    {\n        if (!$parameter->isDefaultValueAvailable()) {\n            return null;\n        }\n\n        return $parameter->getDefaultValue();\n    }\n\n    private function getTypeHint(ReflectionParameter $parameter)\n    {\n        if (null !== $className = $this->getParameterClassName($parameter)) {\n            return $className;\n        }\n\n        if (true === $parameter->isArray()) {\n            return 'array';\n        }\n\n        if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) {\n            return 'callable';\n        }\n\n        if (version_compare(PHP_VERSION, '7.0', '>=') && true === $parameter->hasType()) {\n            return (string) $parameter->getType();\n        }\n\n        return null;\n    }\n\n    private function isVariadic(ReflectionParameter $parameter)\n    {\n        return PHP_VERSION_ID >= 50600 && $parameter->isVariadic();\n    }\n\n    private function isNullable(ReflectionParameter $parameter)\n    {\n        return $parameter->allowsNull() && null !== $this->getTypeHint($parameter);\n    }\n\n    private function getParameterClassName(ReflectionParameter $parameter)\n    {\n        try {\n            return $parameter->getClass() ? $parameter->getClass()->getName() : null;\n        } catch (\\ReflectionException $e) {\n            preg_match('/\\[\\s\\<\\w+?>\\s([\\w,\\\\\\]+)/s', $parameter, $matches);\n\n            return isset($matches[1]) ? $matches[1] : null;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator\\Node;\n\n/**\n * Argument node.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ArgumentNode\n{\n    private $name;\n    private $typeHint;\n    private $default;\n    private $optional    = false;\n    private $byReference = false;\n    private $isVariadic  = false;\n    private $isNullable  = false;\n\n    /**\n     * @param string $name\n     */\n    public function __construct($name)\n    {\n        $this->name = $name;\n    }\n\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    public function getTypeHint()\n    {\n        return $this->typeHint;\n    }\n\n    public function setTypeHint($typeHint = null)\n    {\n        $this->typeHint = $typeHint;\n    }\n\n    public function hasDefault()\n    {\n        return $this->isOptional() && !$this->isVariadic();\n    }\n\n    public function getDefault()\n    {\n        return $this->default;\n    }\n\n    public function setDefault($default = null)\n    {\n        $this->optional = true;\n        $this->default  = $default;\n    }\n\n    public function isOptional()\n    {\n        return $this->optional;\n    }\n\n    public function setAsPassedByReference($byReference = true)\n    {\n        $this->byReference = $byReference;\n    }\n\n    public function isPassedByReference()\n    {\n        return $this->byReference;\n    }\n\n    public function setAsVariadic($isVariadic = true)\n    {\n        $this->isVariadic = $isVariadic;\n    }\n\n    public function isVariadic()\n    {\n        return $this->isVariadic;\n    }\n\n    public function isNullable()\n    {\n        return $this->isNullable;\n    }\n\n    public function setAsNullable($isNullable = true)\n    {\n        $this->isNullable = $isNullable;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator\\Node;\n\nuse Prophecy\\Exception\\Doubler\\MethodNotExtendableException;\nuse Prophecy\\Exception\\InvalidArgumentException;\n\n/**\n * Class node.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ClassNode\n{\n    private $parentClass = 'stdClass';\n    private $interfaces  = array();\n    private $properties  = array();\n    private $unextendableMethods = array();\n\n    /**\n     * @var MethodNode[]\n     */\n    private $methods     = array();\n\n    public function getParentClass()\n    {\n        return $this->parentClass;\n    }\n\n    /**\n     * @param string $class\n     */\n    public function setParentClass($class)\n    {\n        $this->parentClass = $class ?: 'stdClass';\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getInterfaces()\n    {\n        return $this->interfaces;\n    }\n\n    /**\n     * @param string $interface\n     */\n    public function addInterface($interface)\n    {\n        if ($this->hasInterface($interface)) {\n            return;\n        }\n\n        array_unshift($this->interfaces, $interface);\n    }\n\n    /**\n     * @param string $interface\n     *\n     * @return bool\n     */\n    public function hasInterface($interface)\n    {\n        return in_array($interface, $this->interfaces);\n    }\n\n    public function getProperties()\n    {\n        return $this->properties;\n    }\n\n    public function addProperty($name, $visibility = 'public')\n    {\n        $visibility = strtolower($visibility);\n\n        if (!in_array($visibility, array('public', 'private', 'protected'))) {\n            throw new InvalidArgumentException(sprintf(\n                '`%s` property visibility is not supported.', $visibility\n            ));\n        }\n\n        $this->properties[$name] = $visibility;\n    }\n\n    /**\n     * @return MethodNode[]\n     */\n    public function getMethods()\n    {\n        return $this->methods;\n    }\n\n    public function addMethod(MethodNode $method, $force = false)\n    {\n        if (!$this->isExtendable($method->getName())){\n            $message = sprintf(\n                'Method `%s` is not extendable, so can not be added.', $method->getName()\n            );\n            throw new MethodNotExtendableException($message, $this->getParentClass(), $method->getName());\n        }\n\n        if ($force || !isset($this->methods[$method->getName()])) {\n            $this->methods[$method->getName()] = $method;\n        }\n    }\n\n    public function removeMethod($name)\n    {\n        unset($this->methods[$name]);\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return MethodNode|null\n     */\n    public function getMethod($name)\n    {\n        return $this->hasMethod($name) ? $this->methods[$name] : null;\n    }\n\n    /**\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function hasMethod($name)\n    {\n        return isset($this->methods[$name]);\n    }\n\n    /**\n     * @return string[]\n     */\n    public function getUnextendableMethods()\n    {\n        return $this->unextendableMethods;\n    }\n\n    /**\n     * @param string $unextendableMethod\n     */\n    public function addUnextendableMethod($unextendableMethod)\n    {\n        if (!$this->isExtendable($unextendableMethod)){\n            return;\n        }\n        $this->unextendableMethods[] = $unextendableMethod;\n    }\n\n    /**\n     * @param string $method\n     * @return bool\n     */\n    public function isExtendable($method)\n    {\n        return !in_array($method, $this->unextendableMethods);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator\\Node;\n\nuse Prophecy\\Doubler\\Generator\\TypeHintReference;\nuse Prophecy\\Exception\\InvalidArgumentException;\n\n/**\n * Method node.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass MethodNode\n{\n    private $name;\n    private $code;\n    private $visibility = 'public';\n    private $static = false;\n    private $returnsReference = false;\n    private $returnType;\n    private $nullableReturnType = false;\n\n    /**\n     * @var ArgumentNode[]\n     */\n    private $arguments = array();\n\n    /**\n     * @var TypeHintReference\n     */\n    private $typeHintReference;\n\n    /**\n     * @param string $name\n     * @param string $code\n     */\n    public function __construct($name, $code = null, TypeHintReference $typeHintReference = null)\n    {\n        $this->name = $name;\n        $this->code = $code;\n        $this->typeHintReference = $typeHintReference ?: new TypeHintReference();\n    }\n\n    public function getVisibility()\n    {\n        return $this->visibility;\n    }\n\n    /**\n     * @param string $visibility\n     */\n    public function setVisibility($visibility)\n    {\n        $visibility = strtolower($visibility);\n\n        if (!in_array($visibility, array('public', 'private', 'protected'))) {\n            throw new InvalidArgumentException(sprintf(\n                '`%s` method visibility is not supported.', $visibility\n            ));\n        }\n\n        $this->visibility = $visibility;\n    }\n\n    public function isStatic()\n    {\n        return $this->static;\n    }\n\n    public function setStatic($static = true)\n    {\n        $this->static = (bool) $static;\n    }\n\n    public function returnsReference()\n    {\n        return $this->returnsReference;\n    }\n\n    public function setReturnsReference()\n    {\n        $this->returnsReference = true;\n    }\n\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    public function addArgument(ArgumentNode $argument)\n    {\n        $this->arguments[] = $argument;\n    }\n\n    /**\n     * @return ArgumentNode[]\n     */\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n\n    public function hasReturnType()\n    {\n        return null !== $this->returnType;\n    }\n\n    /**\n     * @param string $type\n     */\n    public function setReturnType($type = null)\n    {\n        if ($type === '' || $type === null) {\n            $this->returnType = null;\n            return;\n        }\n        $typeMap = array(\n            'double' => 'float',\n            'real' => 'float',\n            'boolean' => 'bool',\n            'integer' => 'int',\n        );\n        if (isset($typeMap[$type])) {\n            $type = $typeMap[$type];\n        }\n        $this->returnType = $this->typeHintReference->isBuiltInReturnTypeHint($type) ?\n            $type :\n            '\\\\' . ltrim($type, '\\\\');\n    }\n\n    public function getReturnType()\n    {\n        return $this->returnType;\n    }\n\n    /**\n     * @param bool $bool\n     */\n    public function setNullableReturnType($bool = true)\n    {\n        $this->nullableReturnType = (bool) $bool;\n    }\n\n    /**\n     * @return bool\n     */\n    public function hasNullableReturnType()\n    {\n        return $this->nullableReturnType;\n    }\n\n    /**\n     * @param string $code\n     */\n    public function setCode($code)\n    {\n        $this->code = $code;\n    }\n\n    public function getCode()\n    {\n        if ($this->returnsReference)\n        {\n            return \"throw new \\Prophecy\\Exception\\Doubler\\ReturnByReferenceException('Returning by reference not supported', get_class(\\$this), '{$this->name}');\";\n        }\n\n        return (string) $this->code;\n    }\n\n    public function useParentCode()\n    {\n        $this->code = sprintf(\n            'return parent::%s(%s);', $this->getName(), implode(', ',\n                array_map(array($this, 'generateArgument'), $this->arguments)\n            )\n        );\n    }\n\n    private function generateArgument(ArgumentNode $arg)\n    {\n        $argument = '$'.$arg->getName();\n\n        if ($arg->isVariadic()) {\n            $argument = '...'.$argument;\n        }\n\n        return $argument;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler\\Generator;\n\n/**\n * Reflection interface.\n * All reflected classes implement this interface.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface ReflectionInterface\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php",
    "content": "<?php\n\nnamespace Prophecy\\Doubler\\Generator;\n\n/**\n * Tells whether a keyword refers to a class or to a built-in type for the\n * current version of php\n */\nfinal class TypeHintReference\n{\n    public function isBuiltInParamTypeHint($type)\n    {\n        switch ($type) {\n            case 'self':\n            case 'array':\n                return true;\n\n            case 'callable':\n                return PHP_VERSION_ID >= 50400;\n\n            case 'bool':\n            case 'float':\n            case 'int':\n            case 'string':\n                return PHP_VERSION_ID >= 70000;\n\n            case 'iterable':\n                return PHP_VERSION_ID >= 70100;\n\n            case 'object':\n                return PHP_VERSION_ID >= 70200;\n\n            default:\n                return false;\n        }\n    }\n\n    public function isBuiltInReturnTypeHint($type)\n    {\n        if ($type === 'void') {\n            return PHP_VERSION_ID >= 70100;\n        }\n\n        return $this->isBuiltInParamTypeHint($type);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler;\n\nuse Prophecy\\Exception\\Doubler\\DoubleException;\nuse Prophecy\\Exception\\Doubler\\ClassNotFoundException;\nuse Prophecy\\Exception\\Doubler\\InterfaceNotFoundException;\nuse ReflectionClass;\n\n/**\n * Lazy double.\n * Gives simple interface to describe double before creating it.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass LazyDouble\n{\n    private $doubler;\n    private $class;\n    private $interfaces = array();\n    private $arguments  = null;\n    private $double;\n\n    /**\n     * Initializes lazy double.\n     *\n     * @param Doubler $doubler\n     */\n    public function __construct(Doubler $doubler)\n    {\n        $this->doubler = $doubler;\n    }\n\n    /**\n     * Tells doubler to use specific class as parent one for double.\n     *\n     * @param string|ReflectionClass $class\n     *\n     * @throws \\Prophecy\\Exception\\Doubler\\ClassNotFoundException\n     * @throws \\Prophecy\\Exception\\Doubler\\DoubleException\n     */\n    public function setParentClass($class)\n    {\n        if (null !== $this->double) {\n            throw new DoubleException('Can not extend class with already instantiated double.');\n        }\n\n        if (!$class instanceof ReflectionClass) {\n            if (!class_exists($class)) {\n                throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class);\n            }\n\n            $class = new ReflectionClass($class);\n        }\n\n        $this->class = $class;\n    }\n\n    /**\n     * Tells doubler to implement specific interface with double.\n     *\n     * @param string|ReflectionClass $interface\n     *\n     * @throws \\Prophecy\\Exception\\Doubler\\InterfaceNotFoundException\n     * @throws \\Prophecy\\Exception\\Doubler\\DoubleException\n     */\n    public function addInterface($interface)\n    {\n        if (null !== $this->double) {\n            throw new DoubleException(\n                'Can not implement interface with already instantiated double.'\n            );\n        }\n\n        if (!$interface instanceof ReflectionClass) {\n            if (!interface_exists($interface)) {\n                throw new InterfaceNotFoundException(\n                    sprintf('Interface %s not found.', $interface),\n                    $interface\n                );\n            }\n\n            $interface = new ReflectionClass($interface);\n        }\n\n        $this->interfaces[] = $interface;\n    }\n\n    /**\n     * Sets constructor arguments.\n     *\n     * @param array $arguments\n     */\n    public function setArguments(array $arguments = null)\n    {\n        $this->arguments = $arguments;\n    }\n\n    /**\n     * Creates double instance or returns already created one.\n     *\n     * @return DoubleInterface\n     */\n    public function getInstance()\n    {\n        if (null === $this->double) {\n            if (null !== $this->arguments) {\n                return $this->double = $this->doubler->double(\n                    $this->class, $this->interfaces, $this->arguments\n                );\n            }\n\n            $this->double = $this->doubler->double($this->class, $this->interfaces);\n        }\n\n        return $this->double;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Doubler;\n\nuse ReflectionClass;\n\n/**\n * Name generator.\n * Generates classname for double.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass NameGenerator\n{\n    private static $counter = 1;\n\n    /**\n     * Generates name.\n     *\n     * @param ReflectionClass   $class\n     * @param ReflectionClass[] $interfaces\n     *\n     * @return string\n     */\n    public function name(ReflectionClass $class = null, array $interfaces)\n    {\n        $parts = array();\n\n        if (null !== $class) {\n            $parts[] = $class->getName();\n        } else {\n            foreach ($interfaces as $interface) {\n                $parts[] = $interface->getShortName();\n            }\n        }\n\n        if (!count($parts)) {\n            $parts[] = 'stdClass';\n        }\n\n        return sprintf('Double\\%s\\P%d', implode('\\\\', $parts), self::$counter++);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Call;\n\nuse Prophecy\\Exception\\Prophecy\\ObjectProphecyException;\nuse Prophecy\\Prophecy\\ObjectProphecy;\n\nclass UnexpectedCallException extends ObjectProphecyException\n{\n    private $methodName;\n    private $arguments;\n\n    public function __construct($message, ObjectProphecy $objectProphecy,\n                                $methodName, array $arguments)\n    {\n        parent::__construct($message, $objectProphecy);\n\n        $this->methodName = $methodName;\n        $this->arguments = $arguments;\n    }\n\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nuse Prophecy\\Doubler\\Generator\\Node\\ClassNode;\n\nclass ClassCreatorException extends \\RuntimeException implements DoublerException\n{\n    private $node;\n\n    public function __construct($message, ClassNode $node)\n    {\n        parent::__construct($message);\n\n        $this->node = $node;\n    }\n\n    public function getClassNode()\n    {\n        return $this->node;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nuse ReflectionClass;\n\nclass ClassMirrorException extends \\RuntimeException implements DoublerException\n{\n    private $class;\n\n    public function __construct($message, ReflectionClass $class)\n    {\n        parent::__construct($message);\n\n        $this->class = $class;\n    }\n\n    public function getReflectedClass()\n    {\n        return $this->class;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nclass ClassNotFoundException extends DoubleException\n{\n    private $classname;\n\n    /**\n     * @param string $message\n     * @param string $classname\n     */\n    public function __construct($message, $classname)\n    {\n        parent::__construct($message);\n\n        $this->classname = $classname;\n    }\n\n    public function getClassname()\n    {\n        return $this->classname;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nuse RuntimeException;\n\nclass DoubleException extends RuntimeException implements DoublerException\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nuse Prophecy\\Exception\\Exception;\n\ninterface DoublerException extends Exception\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nclass InterfaceNotFoundException extends ClassNotFoundException\n{\n    public function getInterfaceName()\n    {\n        return $this->getClassname();\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php",
    "content": "<?php\n\n    namespace Prophecy\\Exception\\Doubler;\n\n    class MethodNotExtendableException extends DoubleException\n    {\n        private $methodName;\n\n        private $className;\n\n        /**\n         * @param string $message\n         * @param string $className\n         * @param string $methodName\n         */\n        public function __construct($message, $className, $methodName)\n        {\n            parent::__construct($message);\n\n            $this->methodName = $methodName;\n            $this->className = $className;\n        }\n\n\n        /**\n         * @return string\n         */\n        public function getMethodName()\n        {\n            return $this->methodName;\n        }\n\n        /**\n         * @return string\n         */\n        public function getClassName()\n        {\n            return $this->className;\n        }\n\n    }\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nclass MethodNotFoundException extends DoubleException\n{\n    /**\n     * @var string|object\n     */\n    private $classname;\n\n    /**\n     * @var string\n     */\n    private $methodName;\n\n    /**\n     * @var array\n     */\n    private $arguments;\n\n    /**\n     * @param string $message\n     * @param string|object $classname\n     * @param string $methodName\n     * @param null|Argument\\ArgumentsWildcard|array $arguments\n     */\n    public function __construct($message, $classname, $methodName, $arguments = null)\n    {\n        parent::__construct($message);\n\n        $this->classname  = $classname;\n        $this->methodName = $methodName;\n        $this->arguments = $arguments;\n    }\n\n    public function getClassname()\n    {\n        return $this->classname;\n    }\n\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Doubler;\n\nclass ReturnByReferenceException extends DoubleException\n{\n    private $classname;\n    private $methodName;\n\n    /**\n     * @param string $message\n     * @param string $classname\n     * @param string $methodName\n     */\n    public function __construct($message, $classname, $methodName)\n    {\n        parent::__construct($message);\n\n        $this->classname  = $classname;\n        $this->methodName = $methodName;\n    }\n\n    public function getClassname()\n    {\n        return $this->classname;\n    }\n\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception;\n\n/**\n * Core Prophecy exception interface.\n * All Prophecy exceptions implement it.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface Exception\n{\n    /**\n     * @return string\n     */\n    public function getMessage();\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception;\n\nclass InvalidArgumentException extends \\InvalidArgumentException implements Exception\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse Prophecy\\Prophecy\\ObjectProphecy;\n\nclass AggregateException extends \\RuntimeException implements PredictionException\n{\n    private $exceptions = array();\n    private $objectProphecy;\n\n    public function append(PredictionException $exception)\n    {\n        $message = $exception->getMessage();\n        $message = strtr($message, array(\"\\n\" => \"\\n  \")).\"\\n\";\n        $message = empty($this->exceptions) ? $message : \"\\n\" . $message;\n\n        $this->message      = rtrim($this->message.$message);\n        $this->exceptions[] = $exception;\n    }\n\n    /**\n     * @return PredictionException[]\n     */\n    public function getExceptions()\n    {\n        return $this->exceptions;\n    }\n\n    public function setObjectProphecy(ObjectProphecy $objectProphecy)\n    {\n        $this->objectProphecy = $objectProphecy;\n    }\n\n    /**\n     * @return ObjectProphecy\n     */\n    public function getObjectProphecy()\n    {\n        return $this->objectProphecy;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse RuntimeException;\n\n/**\n * Basic failed prediction exception.\n * Use it for custom prediction failures.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass FailedPredictionException extends RuntimeException implements PredictionException\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse Prophecy\\Exception\\Prophecy\\MethodProphecyException;\n\nclass NoCallsException extends MethodProphecyException implements PredictionException\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse Prophecy\\Exception\\Exception;\n\ninterface PredictionException extends Exception\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse Prophecy\\Prophecy\\MethodProphecy;\n\nclass UnexpectedCallsCountException extends UnexpectedCallsException\n{\n    private $expectedCount;\n\n    public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls)\n    {\n        parent::__construct($message, $methodProphecy, $calls);\n\n        $this->expectedCount = intval($count);\n    }\n\n    public function getExpectedCount()\n    {\n        return $this->expectedCount;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prediction;\n\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Exception\\Prophecy\\MethodProphecyException;\n\nclass UnexpectedCallsException extends MethodProphecyException implements PredictionException\n{\n    private $calls = array();\n\n    public function __construct($message, MethodProphecy $methodProphecy, array $calls)\n    {\n        parent::__construct($message, $methodProphecy);\n\n        $this->calls = $calls;\n    }\n\n    public function getCalls()\n    {\n        return $this->calls;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prophecy;\n\nuse Prophecy\\Prophecy\\MethodProphecy;\n\nclass MethodProphecyException extends ObjectProphecyException\n{\n    private $methodProphecy;\n\n    public function __construct($message, MethodProphecy $methodProphecy)\n    {\n        parent::__construct($message, $methodProphecy->getObjectProphecy());\n\n        $this->methodProphecy = $methodProphecy;\n    }\n\n    /**\n     * @return MethodProphecy\n     */\n    public function getMethodProphecy()\n    {\n        return $this->methodProphecy;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prophecy;\n\nuse Prophecy\\Prophecy\\ObjectProphecy;\n\nclass ObjectProphecyException extends \\RuntimeException implements ProphecyException\n{\n    private $objectProphecy;\n\n    public function __construct($message, ObjectProphecy $objectProphecy)\n    {\n        parent::__construct($message);\n\n        $this->objectProphecy = $objectProphecy;\n    }\n\n    /**\n     * @return ObjectProphecy\n     */\n    public function getObjectProphecy()\n    {\n        return $this->objectProphecy;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Exception\\Prophecy;\n\nuse Prophecy\\Exception\\Exception;\n\ninterface ProphecyException extends Exception\n{\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\PhpDocumentor;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag\\MethodTag as LegacyMethodTag;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Method;\n\n/**\n * @author Théo FIDRY <theo.fidry@gmail.com>\n *\n * @internal\n */\nfinal class ClassAndInterfaceTagRetriever implements MethodTagRetrieverInterface\n{\n    private $classRetriever;\n\n    public function __construct(MethodTagRetrieverInterface $classRetriever = null)\n    {\n        if (null !== $classRetriever) {\n            $this->classRetriever = $classRetriever;\n\n            return;\n        }\n\n        $this->classRetriever = class_exists('phpDocumentor\\Reflection\\DocBlockFactory') && class_exists('phpDocumentor\\Reflection\\Types\\ContextFactory')\n            ? new ClassTagRetriever()\n            : new LegacyClassTagRetriever()\n        ;\n    }\n\n    /**\n     * @param \\ReflectionClass $reflectionClass\n     *\n     * @return LegacyMethodTag[]|Method[]\n     */\n    public function getTagList(\\ReflectionClass $reflectionClass)\n    {\n        return array_merge(\n            $this->classRetriever->getTagList($reflectionClass),\n            $this->getInterfacesTagList($reflectionClass)\n        );\n    }\n\n    /**\n     * @param \\ReflectionClass $reflectionClass\n     *\n     * @return LegacyMethodTag[]|Method[]\n     */\n    private function getInterfacesTagList(\\ReflectionClass $reflectionClass)\n    {\n        $interfaces = $reflectionClass->getInterfaces();\n        $tagList = array();\n\n        foreach($interfaces as $interface) {\n            $tagList = array_merge($tagList, $this->classRetriever->getTagList($interface));\n        }\n\n        return $tagList;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\PhpDocumentor;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Method;\nuse phpDocumentor\\Reflection\\DocBlockFactory;\nuse phpDocumentor\\Reflection\\Types\\ContextFactory;\n\n/**\n * @author Théo FIDRY <theo.fidry@gmail.com>\n *\n * @internal\n */\nfinal class ClassTagRetriever implements MethodTagRetrieverInterface\n{\n    private $docBlockFactory;\n    private $contextFactory;\n\n    public function __construct()\n    {\n        $this->docBlockFactory = DocBlockFactory::createInstance();\n        $this->contextFactory = new ContextFactory();\n    }\n\n    /**\n     * @param \\ReflectionClass $reflectionClass\n     *\n     * @return Method[]\n     */\n    public function getTagList(\\ReflectionClass $reflectionClass)\n    {\n        try {\n            $phpdoc = $this->docBlockFactory->create(\n                $reflectionClass,\n                $this->contextFactory->createFromReflector($reflectionClass)\n            );\n\n            return $phpdoc->getTagsByName('method');\n        } catch (\\InvalidArgumentException $e) {\n            return array();\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\PhpDocumentor;\n\nuse phpDocumentor\\Reflection\\DocBlock;\nuse phpDocumentor\\Reflection\\DocBlock\\Tag\\MethodTag as LegacyMethodTag;\n\n/**\n * @author Théo FIDRY <theo.fidry@gmail.com>\n *\n * @internal\n */\nfinal class LegacyClassTagRetriever implements MethodTagRetrieverInterface\n{\n    /**\n     * @param \\ReflectionClass $reflectionClass\n     *\n     * @return LegacyMethodTag[]\n     */\n    public function getTagList(\\ReflectionClass $reflectionClass)\n    {\n        $phpdoc = new DocBlock($reflectionClass->getDocComment());\n\n        return $phpdoc->getTagsByName('method');\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\PhpDocumentor;\n\nuse phpDocumentor\\Reflection\\DocBlock\\Tag\\MethodTag as LegacyMethodTag;\nuse phpDocumentor\\Reflection\\DocBlock\\Tags\\Method;\n\n/**\n * @author Théo FIDRY <theo.fidry@gmail.com>\n *\n * @internal\n */\ninterface MethodTagRetrieverInterface\n{\n    /**\n     * @param \\ReflectionClass $reflectionClass\n     *\n     * @return LegacyMethodTag[]|Method[]\n     */\n    public function getTagList(\\ReflectionClass $reflectionClass);\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prediction;\n\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Argument\\ArgumentsWildcard;\nuse Prophecy\\Argument\\Token\\AnyValuesToken;\nuse Prophecy\\Util\\StringUtil;\nuse Prophecy\\Exception\\Prediction\\NoCallsException;\n\n/**\n * Call prediction.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallPrediction implements PredictionInterface\n{\n    private $util;\n\n    /**\n     * Initializes prediction.\n     *\n     * @param StringUtil $util\n     */\n    public function __construct(StringUtil $util = null)\n    {\n        $this->util = $util ?: new StringUtil;\n    }\n\n    /**\n     * Tests that there was at least one call.\n     *\n     * @param Call[]         $calls\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @throws \\Prophecy\\Exception\\Prediction\\NoCallsException\n     */\n    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)\n    {\n        if (count($calls)) {\n            return;\n        }\n\n        $methodCalls = $object->findProphecyMethodCalls(\n            $method->getMethodName(),\n            new ArgumentsWildcard(array(new AnyValuesToken))\n        );\n\n        if (count($methodCalls)) {\n            throw new NoCallsException(sprintf(\n                \"No calls have been made that match:\\n\".\n                \"  %s->%s(%s)\\n\".\n                \"but expected at least one.\\n\".\n                \"Recorded `%s(...)` calls:\\n%s\",\n\n                get_class($object->reveal()),\n                $method->getMethodName(),\n                $method->getArgumentsWildcard(),\n                $method->getMethodName(),\n                $this->util->stringifyCalls($methodCalls)\n            ), $method);\n        }\n\n        throw new NoCallsException(sprintf(\n            \"No calls have been made that match:\\n\".\n            \"  %s->%s(%s)\\n\".\n            \"but expected at least one.\",\n\n            get_class($object->reveal()),\n            $method->getMethodName(),\n            $method->getArgumentsWildcard()\n        ), $method);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prediction;\n\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Argument\\ArgumentsWildcard;\nuse Prophecy\\Argument\\Token\\AnyValuesToken;\nuse Prophecy\\Util\\StringUtil;\nuse Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException;\n\n/**\n * Prediction interface.\n * Predictions are logical test blocks, tied to `should...` keyword.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallTimesPrediction implements PredictionInterface\n{\n    private $times;\n    private $util;\n\n    /**\n     * Initializes prediction.\n     *\n     * @param int        $times\n     * @param StringUtil $util\n     */\n    public function __construct($times, StringUtil $util = null)\n    {\n        $this->times = intval($times);\n        $this->util  = $util ?: new StringUtil;\n    }\n\n    /**\n     * Tests that there was exact amount of calls made.\n     *\n     * @param Call[]         $calls\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @throws \\Prophecy\\Exception\\Prediction\\UnexpectedCallsCountException\n     */\n    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)\n    {\n        if ($this->times == count($calls)) {\n            return;\n        }\n\n        $methodCalls = $object->findProphecyMethodCalls(\n            $method->getMethodName(),\n            new ArgumentsWildcard(array(new AnyValuesToken))\n        );\n\n        if (count($calls)) {\n            $message = sprintf(\n                \"Expected exactly %d calls that match:\\n\".\n                \"  %s->%s(%s)\\n\".\n                \"but %d were made:\\n%s\",\n\n                $this->times,\n                get_class($object->reveal()),\n                $method->getMethodName(),\n                $method->getArgumentsWildcard(),\n                count($calls),\n                $this->util->stringifyCalls($calls)\n            );\n        } elseif (count($methodCalls)) {\n            $message = sprintf(\n                \"Expected exactly %d calls that match:\\n\".\n                \"  %s->%s(%s)\\n\".\n                \"but none were made.\\n\".\n                \"Recorded `%s(...)` calls:\\n%s\",\n\n                $this->times,\n                get_class($object->reveal()),\n                $method->getMethodName(),\n                $method->getArgumentsWildcard(),\n                $method->getMethodName(),\n                $this->util->stringifyCalls($methodCalls)\n            );\n        } else {\n            $message = sprintf(\n                \"Expected exactly %d calls that match:\\n\".\n                \"  %s->%s(%s)\\n\".\n                \"but none were made.\",\n\n                $this->times,\n                get_class($object->reveal()),\n                $method->getMethodName(),\n                $method->getArgumentsWildcard()\n            );\n        }\n\n        throw new UnexpectedCallsCountException($message, $method, $this->times, $calls);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prediction;\n\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse Closure;\n\n/**\n * Callback prediction.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallbackPrediction implements PredictionInterface\n{\n    private $callback;\n\n    /**\n     * Initializes callback prediction.\n     *\n     * @param callable $callback Custom callback\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function __construct($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new InvalidArgumentException(sprintf(\n                'Callable expected as an argument to CallbackPrediction, but got %s.',\n                gettype($callback)\n            ));\n        }\n\n        $this->callback = $callback;\n    }\n\n    /**\n     * Executes preset callback.\n     *\n     * @param Call[]         $calls\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     */\n    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)\n    {\n        $callback = $this->callback;\n\n        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {\n            $callback = Closure::bind($callback, $object);\n        }\n\n        call_user_func($callback, $calls, $object, $method);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prediction;\n\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Util\\StringUtil;\nuse Prophecy\\Exception\\Prediction\\UnexpectedCallsException;\n\n/**\n * No calls prediction.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass NoCallsPrediction implements PredictionInterface\n{\n    private $util;\n\n    /**\n     * Initializes prediction.\n     *\n     * @param null|StringUtil $util\n     */\n    public function __construct(StringUtil $util = null)\n    {\n        $this->util = $util ?: new StringUtil;\n    }\n\n    /**\n     * Tests that there were no calls made.\n     *\n     * @param Call[]         $calls\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @throws \\Prophecy\\Exception\\Prediction\\UnexpectedCallsException\n     */\n    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method)\n    {\n        if (!count($calls)) {\n            return;\n        }\n\n        $verb = count($calls) === 1 ? 'was' : 'were';\n\n        throw new UnexpectedCallsException(sprintf(\n            \"No calls expected that match:\\n\".\n            \"  %s->%s(%s)\\n\".\n            \"but %d %s made:\\n%s\",\n            get_class($object->reveal()),\n            $method->getMethodName(),\n            $method->getArgumentsWildcard(),\n            count($calls),\n            $verb,\n            $this->util->stringifyCalls($calls)\n        ), $method, $calls);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prediction;\n\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\n\n/**\n * Prediction interface.\n * Predictions are logical test blocks, tied to `should...` keyword.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface PredictionInterface\n{\n    /**\n     * Tests that double fulfilled prediction.\n     *\n     * @param Call[]        $calls\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @throws object\n     * @return void\n     */\n    public function check(array $calls, ObjectProphecy $object, MethodProphecy $method);\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Promise;\n\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse Closure;\n\n/**\n * Callback promise.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass CallbackPromise implements PromiseInterface\n{\n    private $callback;\n\n    /**\n     * Initializes callback promise.\n     *\n     * @param callable $callback Custom callback\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function __construct($callback)\n    {\n        if (!is_callable($callback)) {\n            throw new InvalidArgumentException(sprintf(\n                'Callable expected as an argument to CallbackPromise, but got %s.',\n                gettype($callback)\n            ));\n        }\n\n        $this->callback = $callback;\n    }\n\n    /**\n     * Evaluates promise callback.\n     *\n     * @param array          $args\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @return mixed\n     */\n    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)\n    {\n        $callback = $this->callback;\n\n        if ($callback instanceof Closure && method_exists('Closure', 'bind')) {\n            $callback = Closure::bind($callback, $object);\n        }\n\n        return call_user_func($callback, $args, $object, $method);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Promise;\n\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\n\n/**\n * Promise interface.\n * Promises are logical blocks, tied to `will...` keyword.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface PromiseInterface\n{\n    /**\n     * Evaluates promise.\n     *\n     * @param array          $args\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @return mixed\n     */\n    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method);\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Promise;\n\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\n\n/**\n * Return argument promise.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ReturnArgumentPromise implements PromiseInterface\n{\n    /**\n     * @var int\n     */\n    private $index;\n\n    /**\n     * Initializes callback promise.\n     *\n     * @param int $index The zero-indexed number of the argument to return\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function __construct($index = 0)\n    {\n        if (!is_int($index) || $index < 0) {\n            throw new InvalidArgumentException(sprintf(\n                'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.',\n                $index\n            ));\n        }\n        $this->index = $index;\n    }\n\n    /**\n     * Returns nth argument if has one, null otherwise.\n     *\n     * @param array          $args\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @return null|mixed\n     */\n    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)\n    {\n        return count($args) > $this->index ? $args[$this->index] : null;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Promise;\n\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\n\n/**\n * Return promise.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ReturnPromise implements PromiseInterface\n{\n    private $returnValues = array();\n\n    /**\n     * Initializes promise.\n     *\n     * @param array $returnValues Array of values\n     */\n    public function __construct(array $returnValues)\n    {\n        $this->returnValues = $returnValues;\n    }\n\n    /**\n     * Returns saved values one by one until last one, then continuously returns last value.\n     *\n     * @param array          $args\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @return mixed\n     */\n    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)\n    {\n        $value = array_shift($this->returnValues);\n\n        if (!count($this->returnValues)) {\n            $this->returnValues[] = $value;\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Promise;\n\nuse Doctrine\\Instantiator\\Instantiator;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\MethodProphecy;\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse ReflectionClass;\n\n/**\n * Throw promise.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ThrowPromise implements PromiseInterface\n{\n    private $exception;\n\n    /**\n     * @var \\Doctrine\\Instantiator\\Instantiator\n     */\n    private $instantiator;\n\n    /**\n     * Initializes promise.\n     *\n     * @param string|\\Exception|\\Throwable $exception Exception class name or instance\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function __construct($exception)\n    {\n        if (is_string($exception)) {\n            if (!class_exists($exception) || !$this->isAValidThrowable($exception)) {\n                throw new InvalidArgumentException(sprintf(\n                    'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.',\n                    $exception\n                ));\n            }\n        } elseif (!$exception instanceof \\Exception && !$exception instanceof \\Throwable) {\n            throw new InvalidArgumentException(sprintf(\n                'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.',\n                is_object($exception) ? get_class($exception) : gettype($exception)\n            ));\n        }\n\n        $this->exception = $exception;\n    }\n\n    /**\n     * Throws predefined exception.\n     *\n     * @param array          $args\n     * @param ObjectProphecy $object\n     * @param MethodProphecy $method\n     *\n     * @throws object\n     */\n    public function execute(array $args, ObjectProphecy $object, MethodProphecy $method)\n    {\n        if (is_string($this->exception)) {\n            $classname   = $this->exception;\n            $reflection  = new ReflectionClass($classname);\n            $constructor = $reflection->getConstructor();\n\n            if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) {\n                throw $reflection->newInstance();\n            }\n\n            if (!$this->instantiator) {\n                $this->instantiator = new Instantiator();\n            }\n\n            throw $this->instantiator->instantiate($classname);\n        }\n\n        throw $this->exception;\n    }\n\n    /**\n     * @param string $exception\n     *\n     * @return bool\n     */\n    private function isAValidThrowable($exception)\n    {\n        return is_a($exception, 'Exception', true) || is_subclass_of($exception, 'Throwable', true);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\nuse Prophecy\\Argument;\nuse Prophecy\\Prophet;\nuse Prophecy\\Promise;\nuse Prophecy\\Prediction;\nuse Prophecy\\Exception\\Doubler\\MethodNotFoundException;\nuse Prophecy\\Exception\\InvalidArgumentException;\nuse Prophecy\\Exception\\Prophecy\\MethodProphecyException;\n\n/**\n * Method prophecy.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass MethodProphecy\n{\n    private $objectProphecy;\n    private $methodName;\n    private $argumentsWildcard;\n    private $promise;\n    private $prediction;\n    private $checkedPredictions = array();\n    private $bound = false;\n    private $voidReturnType = false;\n\n    /**\n     * Initializes method prophecy.\n     *\n     * @param ObjectProphecy                        $objectProphecy\n     * @param string                                $methodName\n     * @param null|Argument\\ArgumentsWildcard|array $arguments\n     *\n     * @throws \\Prophecy\\Exception\\Doubler\\MethodNotFoundException If method not found\n     */\n    public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null)\n    {\n        $double = $objectProphecy->reveal();\n        if (!method_exists($double, $methodName)) {\n            throw new MethodNotFoundException(sprintf(\n                'Method `%s::%s()` is not defined.', get_class($double), $methodName\n            ), get_class($double), $methodName, $arguments);\n        }\n\n        $this->objectProphecy = $objectProphecy;\n        $this->methodName     = $methodName;\n\n        $reflectedMethod = new \\ReflectionMethod($double, $methodName);\n        if ($reflectedMethod->isFinal()) {\n            throw new MethodProphecyException(sprintf(\n                \"Can not add prophecy for a method `%s::%s()`\\n\".\n                \"as it is a final method.\",\n                get_class($double),\n                $methodName\n            ), $this);\n        }\n\n        if (null !== $arguments) {\n            $this->withArguments($arguments);\n        }\n\n        if (version_compare(PHP_VERSION, '7.0', '>=') && true === $reflectedMethod->hasReturnType()) {\n            $type = (string) $reflectedMethod->getReturnType();\n\n            if ('void' === $type) {\n                $this->voidReturnType = true;\n            }\n\n            $this->will(function () use ($type) {\n                switch ($type) {\n                    case 'void': return;\n                    case 'string': return '';\n                    case 'float':  return 0.0;\n                    case 'int':    return 0;\n                    case 'bool':   return false;\n                    case 'array':  return array();\n\n                    case 'callable':\n                    case 'Closure':\n                        return function () {};\n\n                    case 'Traversable':\n                    case 'Generator':\n                        // Remove eval() when minimum version >=5.5\n                        /** @var callable $generator */\n                        $generator = eval('return function () { yield; };');\n                        return $generator();\n\n                    default:\n                        $prophet = new Prophet;\n                        return $prophet->prophesize($type)->reveal();\n                }\n            });\n        }\n    }\n\n    /**\n     * Sets argument wildcard.\n     *\n     * @param array|Argument\\ArgumentsWildcard $arguments\n     *\n     * @return $this\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function withArguments($arguments)\n    {\n        if (is_array($arguments)) {\n            $arguments = new Argument\\ArgumentsWildcard($arguments);\n        }\n\n        if (!$arguments instanceof Argument\\ArgumentsWildcard) {\n            throw new InvalidArgumentException(sprintf(\n                \"Either an array or an instance of ArgumentsWildcard expected as\\n\".\n                'a `MethodProphecy::withArguments()` argument, but got %s.',\n                gettype($arguments)\n            ));\n        }\n\n        $this->argumentsWildcard = $arguments;\n\n        return $this;\n    }\n\n    /**\n     * Sets custom promise to the prophecy.\n     *\n     * @param callable|Promise\\PromiseInterface $promise\n     *\n     * @return $this\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function will($promise)\n    {\n        if (is_callable($promise)) {\n            $promise = new Promise\\CallbackPromise($promise);\n        }\n\n        if (!$promise instanceof Promise\\PromiseInterface) {\n            throw new InvalidArgumentException(sprintf(\n                'Expected callable or instance of PromiseInterface, but got %s.',\n                gettype($promise)\n            ));\n        }\n\n        $this->bindToObjectProphecy();\n        $this->promise = $promise;\n\n        return $this;\n    }\n\n    /**\n     * Sets return promise to the prophecy.\n     *\n     * @see \\Prophecy\\Promise\\ReturnPromise\n     *\n     * @return $this\n     */\n    public function willReturn()\n    {\n        if ($this->voidReturnType) {\n            throw new MethodProphecyException(\n                \"The method \\\"$this->methodName\\\" has a void return type, and so cannot return anything\",\n                $this\n            );\n        }\n\n        return $this->will(new Promise\\ReturnPromise(func_get_args()));\n    }\n\n    /**\n     * Sets return argument promise to the prophecy.\n     *\n     * @param int $index The zero-indexed number of the argument to return\n     *\n     * @see \\Prophecy\\Promise\\ReturnArgumentPromise\n     *\n     * @return $this\n     */\n    public function willReturnArgument($index = 0)\n    {\n        if ($this->voidReturnType) {\n            throw new MethodProphecyException(\"The method \\\"$this->methodName\\\" has a void return type\", $this);\n        }\n\n        return $this->will(new Promise\\ReturnArgumentPromise($index));\n    }\n\n    /**\n     * Sets throw promise to the prophecy.\n     *\n     * @see \\Prophecy\\Promise\\ThrowPromise\n     *\n     * @param string|\\Exception $exception Exception class or instance\n     *\n     * @return $this\n     */\n    public function willThrow($exception)\n    {\n        return $this->will(new Promise\\ThrowPromise($exception));\n    }\n\n    /**\n     * Sets custom prediction to the prophecy.\n     *\n     * @param callable|Prediction\\PredictionInterface $prediction\n     *\n     * @return $this\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function should($prediction)\n    {\n        if (is_callable($prediction)) {\n            $prediction = new Prediction\\CallbackPrediction($prediction);\n        }\n\n        if (!$prediction instanceof Prediction\\PredictionInterface) {\n            throw new InvalidArgumentException(sprintf(\n                'Expected callable or instance of PredictionInterface, but got %s.',\n                gettype($prediction)\n            ));\n        }\n\n        $this->bindToObjectProphecy();\n        $this->prediction = $prediction;\n\n        return $this;\n    }\n\n    /**\n     * Sets call prediction to the prophecy.\n     *\n     * @see \\Prophecy\\Prediction\\CallPrediction\n     *\n     * @return $this\n     */\n    public function shouldBeCalled()\n    {\n        return $this->should(new Prediction\\CallPrediction);\n    }\n\n    /**\n     * Sets no calls prediction to the prophecy.\n     *\n     * @see \\Prophecy\\Prediction\\NoCallsPrediction\n     *\n     * @return $this\n     */\n    public function shouldNotBeCalled()\n    {\n        return $this->should(new Prediction\\NoCallsPrediction);\n    }\n\n    /**\n     * Sets call times prediction to the prophecy.\n     *\n     * @see \\Prophecy\\Prediction\\CallTimesPrediction\n     *\n     * @param $count\n     *\n     * @return $this\n     */\n    public function shouldBeCalledTimes($count)\n    {\n        return $this->should(new Prediction\\CallTimesPrediction($count));\n    }\n\n    /**\n     * Sets call times prediction to the prophecy.\n     *\n     * @see \\Prophecy\\Prediction\\CallTimesPrediction\n     *\n     * @return $this\n     */\n    public function shouldBeCalledOnce()\n    {\n        return $this->shouldBeCalledTimes(1);\n    }\n\n    /**\n     * Checks provided prediction immediately.\n     *\n     * @param callable|Prediction\\PredictionInterface $prediction\n     *\n     * @return $this\n     *\n     * @throws \\Prophecy\\Exception\\InvalidArgumentException\n     */\n    public function shouldHave($prediction)\n    {\n        if (is_callable($prediction)) {\n            $prediction = new Prediction\\CallbackPrediction($prediction);\n        }\n\n        if (!$prediction instanceof Prediction\\PredictionInterface) {\n            throw new InvalidArgumentException(sprintf(\n                'Expected callable or instance of PredictionInterface, but got %s.',\n                gettype($prediction)\n            ));\n        }\n\n        if (null === $this->promise && !$this->voidReturnType) {\n            $this->willReturn();\n        }\n\n        $calls = $this->getObjectProphecy()->findProphecyMethodCalls(\n            $this->getMethodName(),\n            $this->getArgumentsWildcard()\n        );\n\n        try {\n            $prediction->check($calls, $this->getObjectProphecy(), $this);\n            $this->checkedPredictions[] = $prediction;\n        } catch (\\Exception $e) {\n            $this->checkedPredictions[] = $prediction;\n\n            throw $e;\n        }\n\n        return $this;\n    }\n\n    /**\n     * Checks call prediction.\n     *\n     * @see \\Prophecy\\Prediction\\CallPrediction\n     *\n     * @return $this\n     */\n    public function shouldHaveBeenCalled()\n    {\n        return $this->shouldHave(new Prediction\\CallPrediction);\n    }\n\n    /**\n     * Checks no calls prediction.\n     *\n     * @see \\Prophecy\\Prediction\\NoCallsPrediction\n     *\n     * @return $this\n     */\n    public function shouldNotHaveBeenCalled()\n    {\n        return $this->shouldHave(new Prediction\\NoCallsPrediction);\n    }\n\n    /**\n     * Checks no calls prediction.\n     *\n     * @see \\Prophecy\\Prediction\\NoCallsPrediction\n     * @deprecated\n     *\n     * @return $this\n     */\n    public function shouldNotBeenCalled()\n    {\n        return $this->shouldNotHaveBeenCalled();\n    }\n\n    /**\n     * Checks call times prediction.\n     *\n     * @see \\Prophecy\\Prediction\\CallTimesPrediction\n     *\n     * @param int $count\n     *\n     * @return $this\n     */\n    public function shouldHaveBeenCalledTimes($count)\n    {\n        return $this->shouldHave(new Prediction\\CallTimesPrediction($count));\n    }\n\n    /**\n     * Checks call times prediction.\n     *\n     * @see \\Prophecy\\Prediction\\CallTimesPrediction\n     *\n     * @return $this\n     */\n    public function shouldHaveBeenCalledOnce()\n    {\n        return $this->shouldHaveBeenCalledTimes(1);\n    }\n\n    /**\n     * Checks currently registered [with should(...)] prediction.\n     */\n    public function checkPrediction()\n    {\n        if (null === $this->prediction) {\n            return;\n        }\n\n        $this->shouldHave($this->prediction);\n    }\n\n    /**\n     * Returns currently registered promise.\n     *\n     * @return null|Promise\\PromiseInterface\n     */\n    public function getPromise()\n    {\n        return $this->promise;\n    }\n\n    /**\n     * Returns currently registered prediction.\n     *\n     * @return null|Prediction\\PredictionInterface\n     */\n    public function getPrediction()\n    {\n        return $this->prediction;\n    }\n\n    /**\n     * Returns predictions that were checked on this object.\n     *\n     * @return Prediction\\PredictionInterface[]\n     */\n    public function getCheckedPredictions()\n    {\n        return $this->checkedPredictions;\n    }\n\n    /**\n     * Returns object prophecy this method prophecy is tied to.\n     *\n     * @return ObjectProphecy\n     */\n    public function getObjectProphecy()\n    {\n        return $this->objectProphecy;\n    }\n\n    /**\n     * Returns method name.\n     *\n     * @return string\n     */\n    public function getMethodName()\n    {\n        return $this->methodName;\n    }\n\n    /**\n     * Returns arguments wildcard.\n     *\n     * @return Argument\\ArgumentsWildcard\n     */\n    public function getArgumentsWildcard()\n    {\n        return $this->argumentsWildcard;\n    }\n\n    /**\n     * @return bool\n     */\n    public function hasReturnVoid()\n    {\n        return $this->voidReturnType;\n    }\n\n    private function bindToObjectProphecy()\n    {\n        if ($this->bound) {\n            return;\n        }\n\n        $this->getObjectProphecy()->addMethodProphecy($this);\n        $this->bound = true;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\nuse SebastianBergmann\\Comparator\\ComparisonFailure;\nuse Prophecy\\Comparator\\Factory as ComparatorFactory;\nuse Prophecy\\Call\\Call;\nuse Prophecy\\Doubler\\LazyDouble;\nuse Prophecy\\Argument\\ArgumentsWildcard;\nuse Prophecy\\Call\\CallCenter;\nuse Prophecy\\Exception\\Prophecy\\ObjectProphecyException;\nuse Prophecy\\Exception\\Prophecy\\MethodProphecyException;\nuse Prophecy\\Exception\\Prediction\\AggregateException;\nuse Prophecy\\Exception\\Prediction\\PredictionException;\n\n/**\n * Object prophecy.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass ObjectProphecy implements ProphecyInterface\n{\n    private $lazyDouble;\n    private $callCenter;\n    private $revealer;\n    private $comparatorFactory;\n\n    /**\n     * @var MethodProphecy[][]\n     */\n    private $methodProphecies = array();\n\n    /**\n     * Initializes object prophecy.\n     *\n     * @param LazyDouble        $lazyDouble\n     * @param CallCenter        $callCenter\n     * @param RevealerInterface $revealer\n     * @param ComparatorFactory $comparatorFactory\n     */\n    public function __construct(\n        LazyDouble $lazyDouble,\n        CallCenter $callCenter = null,\n        RevealerInterface $revealer = null,\n        ComparatorFactory $comparatorFactory = null\n    ) {\n        $this->lazyDouble = $lazyDouble;\n        $this->callCenter = $callCenter ?: new CallCenter;\n        $this->revealer   = $revealer ?: new Revealer;\n\n        $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance();\n    }\n\n    /**\n     * Forces double to extend specific class.\n     *\n     * @param string $class\n     *\n     * @return $this\n     */\n    public function willExtend($class)\n    {\n        $this->lazyDouble->setParentClass($class);\n\n        return $this;\n    }\n\n    /**\n     * Forces double to implement specific interface.\n     *\n     * @param string $interface\n     *\n     * @return $this\n     */\n    public function willImplement($interface)\n    {\n        $this->lazyDouble->addInterface($interface);\n\n        return $this;\n    }\n\n    /**\n     * Sets constructor arguments.\n     *\n     * @param array $arguments\n     *\n     * @return $this\n     */\n    public function willBeConstructedWith(array $arguments = null)\n    {\n        $this->lazyDouble->setArguments($arguments);\n\n        return $this;\n    }\n\n    /**\n     * Reveals double.\n     *\n     * @return object\n     *\n     * @throws \\Prophecy\\Exception\\Prophecy\\ObjectProphecyException If double doesn't implement needed interface\n     */\n    public function reveal()\n    {\n        $double = $this->lazyDouble->getInstance();\n\n        if (null === $double || !$double instanceof ProphecySubjectInterface) {\n            throw new ObjectProphecyException(\n                \"Generated double must implement ProphecySubjectInterface, but it does not.\\n\".\n                'It seems you have wrongly configured doubler without required ClassPatch.',\n                $this\n            );\n        }\n\n        $double->setProphecy($this);\n\n        return $double;\n    }\n\n    /**\n     * Adds method prophecy to object prophecy.\n     *\n     * @param MethodProphecy $methodProphecy\n     *\n     * @throws \\Prophecy\\Exception\\Prophecy\\MethodProphecyException If method prophecy doesn't\n     *                                                              have arguments wildcard\n     */\n    public function addMethodProphecy(MethodProphecy $methodProphecy)\n    {\n        $argumentsWildcard = $methodProphecy->getArgumentsWildcard();\n        if (null === $argumentsWildcard) {\n            throw new MethodProphecyException(sprintf(\n                \"Can not add prophecy for a method `%s::%s()`\\n\".\n                \"as you did not specify arguments wildcard for it.\",\n                get_class($this->reveal()),\n                $methodProphecy->getMethodName()\n            ), $methodProphecy);\n        }\n\n        $methodName = $methodProphecy->getMethodName();\n\n        if (!isset($this->methodProphecies[$methodName])) {\n            $this->methodProphecies[$methodName] = array();\n        }\n\n        $this->methodProphecies[$methodName][] = $methodProphecy;\n    }\n\n    /**\n     * Returns either all or related to single method prophecies.\n     *\n     * @param null|string $methodName\n     *\n     * @return MethodProphecy[]\n     */\n    public function getMethodProphecies($methodName = null)\n    {\n        if (null === $methodName) {\n            return $this->methodProphecies;\n        }\n\n        if (!isset($this->methodProphecies[$methodName])) {\n            return array();\n        }\n\n        return $this->methodProphecies[$methodName];\n    }\n\n    /**\n     * Makes specific method call.\n     *\n     * @param string $methodName\n     * @param array  $arguments\n     *\n     * @return mixed\n     */\n    public function makeProphecyMethodCall($methodName, array $arguments)\n    {\n        $arguments = $this->revealer->reveal($arguments);\n        $return    = $this->callCenter->makeCall($this, $methodName, $arguments);\n\n        return $this->revealer->reveal($return);\n    }\n\n    /**\n     * Finds calls by method name & arguments wildcard.\n     *\n     * @param string            $methodName\n     * @param ArgumentsWildcard $wildcard\n     *\n     * @return Call[]\n     */\n    public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard)\n    {\n        return $this->callCenter->findCalls($methodName, $wildcard);\n    }\n\n    /**\n     * Checks that registered method predictions do not fail.\n     *\n     * @throws \\Prophecy\\Exception\\Prediction\\AggregateException If any of registered predictions fail\n     */\n    public function checkProphecyMethodsPredictions()\n    {\n        $exception = new AggregateException(sprintf(\"%s:\\n\", get_class($this->reveal())));\n        $exception->setObjectProphecy($this);\n\n        foreach ($this->methodProphecies as $prophecies) {\n            foreach ($prophecies as $prophecy) {\n                try {\n                    $prophecy->checkPrediction();\n                } catch (PredictionException $e) {\n                    $exception->append($e);\n                }\n            }\n        }\n\n        if (count($exception->getExceptions())) {\n            throw $exception;\n        }\n    }\n\n    /**\n     * Creates new method prophecy using specified method name and arguments.\n     *\n     * @param string $methodName\n     * @param array  $arguments\n     *\n     * @return MethodProphecy\n     */\n    public function __call($methodName, array $arguments)\n    {\n        $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments));\n\n        foreach ($this->getMethodProphecies($methodName) as $prophecy) {\n            $argumentsWildcard = $prophecy->getArgumentsWildcard();\n            $comparator = $this->comparatorFactory->getComparatorFor(\n                $argumentsWildcard, $arguments\n            );\n\n            try {\n                $comparator->assertEquals($argumentsWildcard, $arguments);\n                return $prophecy;\n            } catch (ComparisonFailure $failure) {}\n        }\n\n        return new MethodProphecy($this, $methodName, $arguments);\n    }\n\n    /**\n     * Tries to get property value from double.\n     *\n     * @param string $name\n     *\n     * @return mixed\n     */\n    public function __get($name)\n    {\n        return $this->reveal()->$name;\n    }\n\n    /**\n     * Tries to set property value to double.\n     *\n     * @param string $name\n     * @param mixed  $value\n     */\n    public function __set($name, $value)\n    {\n        $this->reveal()->$name = $this->revealer->reveal($value);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\n/**\n * Core Prophecy interface.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface ProphecyInterface\n{\n    /**\n     * Reveals prophecy object (double) .\n     *\n     * @return object\n     */\n    public function reveal();\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\n/**\n * Controllable doubles interface.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface ProphecySubjectInterface\n{\n    /**\n     * Sets subject prophecy.\n     *\n     * @param ProphecyInterface $prophecy\n     */\n    public function setProphecy(ProphecyInterface $prophecy);\n\n    /**\n     * Returns subject prophecy.\n     *\n     * @return ProphecyInterface\n     */\n    public function getProphecy();\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\n/**\n * Basic prophecies revealer.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass Revealer implements RevealerInterface\n{\n    /**\n     * Unwraps value(s).\n     *\n     * @param mixed $value\n     *\n     * @return mixed\n     */\n    public function reveal($value)\n    {\n        if (is_array($value)) {\n            return array_map(array($this, __FUNCTION__), $value);\n        }\n\n        if (!is_object($value)) {\n            return $value;\n        }\n\n        if ($value instanceof ProphecyInterface) {\n            $value = $value->reveal();\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Prophecy;\n\n/**\n * Prophecies revealer interface.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\ninterface RevealerInterface\n{\n    /**\n     * Unwraps value(s).\n     *\n     * @param mixed $value\n     *\n     * @return mixed\n     */\n    public function reveal($value);\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Prophet.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy;\n\nuse Prophecy\\Doubler\\Doubler;\nuse Prophecy\\Doubler\\LazyDouble;\nuse Prophecy\\Doubler\\ClassPatch;\nuse Prophecy\\Prophecy\\ObjectProphecy;\nuse Prophecy\\Prophecy\\RevealerInterface;\nuse Prophecy\\Prophecy\\Revealer;\nuse Prophecy\\Call\\CallCenter;\nuse Prophecy\\Util\\StringUtil;\nuse Prophecy\\Exception\\Prediction\\PredictionException;\nuse Prophecy\\Exception\\Prediction\\AggregateException;\n\n/**\n * Prophet creates prophecies.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass Prophet\n{\n    private $doubler;\n    private $revealer;\n    private $util;\n\n    /**\n     * @var ObjectProphecy[]\n     */\n    private $prophecies = array();\n\n    /**\n     * Initializes Prophet.\n     *\n     * @param null|Doubler           $doubler\n     * @param null|RevealerInterface $revealer\n     * @param null|StringUtil        $util\n     */\n    public function __construct(Doubler $doubler = null, RevealerInterface $revealer = null,\n                                StringUtil $util = null)\n    {\n        if (null === $doubler) {\n            $doubler = new Doubler;\n            $doubler->registerClassPatch(new ClassPatch\\SplFileInfoPatch);\n            $doubler->registerClassPatch(new ClassPatch\\TraversablePatch);\n            $doubler->registerClassPatch(new ClassPatch\\ThrowablePatch);\n            $doubler->registerClassPatch(new ClassPatch\\DisableConstructorPatch);\n            $doubler->registerClassPatch(new ClassPatch\\ProphecySubjectPatch);\n            $doubler->registerClassPatch(new ClassPatch\\ReflectionClassNewInstancePatch);\n            $doubler->registerClassPatch(new ClassPatch\\HhvmExceptionPatch());\n            $doubler->registerClassPatch(new ClassPatch\\MagicCallPatch);\n            $doubler->registerClassPatch(new ClassPatch\\KeywordPatch);\n        }\n\n        $this->doubler  = $doubler;\n        $this->revealer = $revealer ?: new Revealer;\n        $this->util     = $util ?: new StringUtil;\n    }\n\n    /**\n     * Creates new object prophecy.\n     *\n     * @param null|string $classOrInterface Class or interface name\n     *\n     * @return ObjectProphecy\n     */\n    public function prophesize($classOrInterface = null)\n    {\n        $this->prophecies[] = $prophecy = new ObjectProphecy(\n            new LazyDouble($this->doubler),\n            new CallCenter($this->util),\n            $this->revealer\n        );\n\n        if ($classOrInterface && class_exists($classOrInterface)) {\n            return $prophecy->willExtend($classOrInterface);\n        }\n\n        if ($classOrInterface && interface_exists($classOrInterface)) {\n            return $prophecy->willImplement($classOrInterface);\n        }\n\n        return $prophecy;\n    }\n\n    /**\n     * Returns all created object prophecies.\n     *\n     * @return ObjectProphecy[]\n     */\n    public function getProphecies()\n    {\n        return $this->prophecies;\n    }\n\n    /**\n     * Returns Doubler instance assigned to this Prophet.\n     *\n     * @return Doubler\n     */\n    public function getDoubler()\n    {\n        return $this->doubler;\n    }\n\n    /**\n     * Checks all predictions defined by prophecies of this Prophet.\n     *\n     * @throws Exception\\Prediction\\AggregateException If any prediction fails\n     */\n    public function checkPredictions()\n    {\n        $exception = new AggregateException(\"Some predictions failed:\\n\");\n        foreach ($this->prophecies as $prophecy) {\n            try {\n                $prophecy->checkProphecyMethodsPredictions();\n            } catch (PredictionException $e) {\n                $exception->append($e);\n            }\n        }\n\n        if (count($exception->getExceptions())) {\n            throw $exception;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php",
    "content": "<?php\n\nnamespace Prophecy\\Util;\n\nuse Prophecy\\Prophecy\\ProphecyInterface;\nuse SebastianBergmann\\RecursionContext\\Context;\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * This class is a modification from sebastianbergmann/exporter\n * @see https://github.com/sebastianbergmann/exporter\n */\nclass ExportUtil\n{\n    /**\n     * Exports a value as a string\n     *\n     * The output of this method is similar to the output of print_r(), but\n     * improved in various aspects:\n     *\n     *  - NULL is rendered as \"null\" (instead of \"\")\n     *  - TRUE is rendered as \"true\" (instead of \"1\")\n     *  - FALSE is rendered as \"false\" (instead of \"\")\n     *  - Strings are always quoted with single quotes\n     *  - Carriage returns and newlines are normalized to \\n\n     *  - Recursion and repeated rendering is treated properly\n     *\n     * @param  mixed  $value\n     * @param  int    $indentation The indentation level of the 2nd+ line\n     * @return string\n     */\n    public static function export($value, $indentation = 0)\n    {\n        return self::recursiveExport($value, $indentation);\n    }\n\n    /**\n     * Converts an object to an array containing all of its private, protected\n     * and public properties.\n     *\n     * @param  mixed $value\n     * @return array\n     */\n    public static function toArray($value)\n    {\n        if (!is_object($value)) {\n            return (array) $value;\n        }\n\n        $array = array();\n\n        foreach ((array) $value as $key => $val) {\n            // properties are transformed to keys in the following way:\n            // private   $property => \"\\0Classname\\0property\"\n            // protected $property => \"\\0*\\0property\"\n            // public    $property => \"property\"\n            if (preg_match('/^\\0.+\\0(.+)$/', $key, $matches)) {\n                $key = $matches[1];\n            }\n\n            // See https://github.com/php/php-src/commit/5721132\n            if ($key === \"\\0gcdata\") {\n                continue;\n            }\n\n            $array[$key] = $val;\n        }\n\n        // Some internal classes like SplObjectStorage don't work with the\n        // above (fast) mechanism nor with reflection in Zend.\n        // Format the output similarly to print_r() in this case\n        if ($value instanceof \\SplObjectStorage) {\n            // However, the fast method does work in HHVM, and exposes the\n            // internal implementation. Hide it again.\n            if (property_exists('\\SplObjectStorage', '__storage')) {\n                unset($array['__storage']);\n            } elseif (property_exists('\\SplObjectStorage', 'storage')) {\n                unset($array['storage']);\n            }\n\n            if (property_exists('\\SplObjectStorage', '__key')) {\n                unset($array['__key']);\n            }\n\n            foreach ($value as $key => $val) {\n                $array[spl_object_hash($val)] = array(\n                    'obj' => $val,\n                    'inf' => $value->getInfo(),\n                );\n            }\n        }\n\n        return $array;\n    }\n\n    /**\n     * Recursive implementation of export\n     *\n     * @param  mixed                                       $value       The value to export\n     * @param  int                                         $indentation The indentation level of the 2nd+ line\n     * @param  \\SebastianBergmann\\RecursionContext\\Context $processed   Previously processed objects\n     * @return string\n     * @see    SebastianBergmann\\Exporter\\Exporter::export\n     */\n    protected static function recursiveExport(&$value, $indentation, $processed = null)\n    {\n        if ($value === null) {\n            return 'null';\n        }\n\n        if ($value === true) {\n            return 'true';\n        }\n\n        if ($value === false) {\n            return 'false';\n        }\n\n        if (is_float($value) && floatval(intval($value)) === $value) {\n            return \"$value.0\";\n        }\n\n        if (is_resource($value)) {\n            return sprintf(\n                'resource(%d) of type (%s)',\n                $value,\n                get_resource_type($value)\n            );\n        }\n\n        if (is_string($value)) {\n            // Match for most non printable chars somewhat taking multibyte chars into account\n            if (preg_match('/[^\\x09-\\x0d\\x20-\\xff]/', $value)) {\n                return 'Binary String: 0x' . bin2hex($value);\n            }\n\n            return \"'\" .\n            str_replace(array(\"\\r\\n\", \"\\n\\r\", \"\\r\"), array(\"\\n\", \"\\n\", \"\\n\"), $value) .\n            \"'\";\n        }\n\n        $whitespace = str_repeat(' ', 4 * $indentation);\n\n        if (!$processed) {\n            $processed = new Context;\n        }\n\n        if (is_array($value)) {\n            if (($key = $processed->contains($value)) !== false) {\n                return 'Array &' . $key;\n            }\n\n            $array  = $value;\n            $key    = $processed->add($value);\n            $values = '';\n\n            if (count($array) > 0) {\n                foreach ($array as $k => $v) {\n                    $values .= sprintf(\n                        '%s    %s => %s' . \"\\n\",\n                        $whitespace,\n                        self::recursiveExport($k, $indentation),\n                        self::recursiveExport($value[$k], $indentation + 1, $processed)\n                    );\n                }\n\n                $values = \"\\n\" . $values . $whitespace;\n            }\n\n            return sprintf('Array &%s (%s)', $key, $values);\n        }\n\n        if (is_object($value)) {\n            $class = get_class($value);\n\n            if ($value instanceof ProphecyInterface) {\n                return sprintf('%s Object (*Prophecy*)', $class);\n            } elseif ($hash = $processed->contains($value)) {\n                return sprintf('%s:%s Object', $class, $hash);\n            }\n\n            $hash   = $processed->add($value);\n            $values = '';\n            $array  = self::toArray($value);\n\n            if (count($array) > 0) {\n                foreach ($array as $k => $v) {\n                    $values .= sprintf(\n                        '%s    %s => %s' . \"\\n\",\n                        $whitespace,\n                        self::recursiveExport($k, $indentation),\n                        self::recursiveExport($v, $indentation + 1, $processed)\n                    );\n                }\n\n                $values = \"\\n\" . $values . $whitespace;\n            }\n\n            return sprintf('%s:%s Object (%s)', $class, $hash, $values);\n        }\n\n        return var_export($value, true);\n    }\n}\n"
  },
  {
    "path": "vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php",
    "content": "<?php\n\n/*\n * This file is part of the Prophecy.\n * (c) Konstantin Kudryashov <ever.zet@gmail.com>\n *     Marcello Duarte <marcello.duarte@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Prophecy\\Util;\n\nuse Prophecy\\Call\\Call;\n\n/**\n * String utility.\n *\n * @author Konstantin Kudryashov <ever.zet@gmail.com>\n */\nclass StringUtil\n{\n    private $verbose;\n\n    /**\n     * @param bool $verbose\n     */\n    public function __construct($verbose = true)\n    {\n        $this->verbose = $verbose;\n    }\n\n    /**\n     * Stringifies any provided value.\n     *\n     * @param mixed   $value\n     * @param boolean $exportObject\n     *\n     * @return string\n     */\n    public function stringify($value, $exportObject = true)\n    {\n        if (is_array($value)) {\n            if (range(0, count($value) - 1) === array_keys($value)) {\n                return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']';\n            }\n\n            $stringify = array($this, __FUNCTION__);\n\n            return '['.implode(', ', array_map(function ($item, $key) use ($stringify) {\n                return (is_integer($key) ? $key : '\"'.$key.'\"').\n                    ' => '.call_user_func($stringify, $item);\n            }, $value, array_keys($value))).']';\n        }\n        if (is_resource($value)) {\n            return get_resource_type($value).':'.$value;\n        }\n        if (is_object($value)) {\n            return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value));\n        }\n        if (true === $value || false === $value) {\n            return $value ? 'true' : 'false';\n        }\n        if (is_string($value)) {\n            $str = sprintf('\"%s\"', str_replace(\"\\n\", '\\\\n', $value));\n\n            if (!$this->verbose && 50 <= strlen($str)) {\n                return substr($str, 0, 50).'\"...';\n            }\n\n            return $str;\n        }\n        if (null === $value) {\n            return 'null';\n        }\n\n        return (string) $value;\n    }\n\n    /**\n     * Stringifies provided array of calls.\n     *\n     * @param Call[] $calls Array of Call instances\n     *\n     * @return string\n     */\n    public function stringifyCalls(array $calls)\n    {\n        $self = $this;\n\n        return implode(PHP_EOL, array_map(function (Call $call) use ($self) {\n            return sprintf('  - %s(%s) @ %s',\n                $call->getMethodName(),\n                implode(', ', array_map(array($self, 'stringify'), $call->getArguments())),\n                str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace())\n            );\n        }, $calls));\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/CHANGELOG.md",
    "content": "v1.1.1 (2016-06-16)\n================================================================================\n\n- __FIX__: `password` and `database` from the global `parameters` client option\n  were still being applied to sentinels connections making them fail (sentinels\n  do not understand the `AUTH` and `SELECT` commands) (PR #346).\n\n- __FIX__: when a sentinel instance reports no sentinel for a service, invoking\n  `connect()` on the redis-sentinel connection backend should fall back to the\n  master connection instead of failing (ISSUE #342).\n\n- __FIX__: the two connection backends based on ext-phpiredis has some kind of\n  issues with the GC and the internal use of closures as reader callbacks that\n  prevented connections going out of scope from being properly collected and the\n  underlying stream or socket resources from being closed and freed. This should\n  not have had any actual effect in real-world scenarios due to the lifecycle of\n  PHP scripts, but we fixed it anyway (ISSUE #345).\n\n\nv1.1.0 (2016-06-02)\n================================================================================\n\n- The default server profile for the client now targets Redis 3.2.\n\n- Responses to the following commands are not casted into booleans anymore, the\n  original integer value is returned: `SETNX`, `MSETNX`, `SMOVE`, `SISMEMBER`,\n  `HSET`, `HSETNX`, `HEXISTS`, `PFADD`, `EXISTS`, `MOVE`, `PERSIST`, `EXPIRE`,\n  `EXPIREAT`, `RENAMENX`. This change does not have a significant impact unless\n  when using strict comparisons (=== and !==) the returned value.\n\n- Non-boolean string values passed to the `persistent` connection parameter can\n  be used to create different persistent connections. Note that this feature was\n  already present in Predis but required both `persistent` and `path` to be set\n  as illustrated by [#139](https://github.com/nrk/predis/pull/139). This change\n  is needed to prevent confusion with how `path` is used to select a database\n  when using the `redis` scheme.\n\n- The client throws exceptions when Redis returns any kind of error response to\n  initialization commands (the ones being automatically sent when a connection\n  is established, such as `SELECT` and `AUTH` when database and password are set\n  in connection parameters) regardless of the value of the exception option.\n\n- Using `unix:///path/to/socket` in URI strings to specify a UNIX domain socket\n  file is now deprecated in favor of the format `unix:/path/to/socket` (note the\n  lack of the double slash after the scheme) and will not be supported starting\n  with the next major release.\n\n- Implemented full support for redis-sentinel.\n\n- Implemented the ability to specify default connection parameters for aggregate\n  connections with the new `parameters` client option. These parameters augment\n  the usual user-supplied connection parameters (but do not take the precedence\n  over them) when creating new connections and they are mostly useful when the\n  client is using aggregate connections such as redis-cluster and redis-sentinel\n  as these backends can create new connections on the fly based on responses and\n  redirections from Redis.\n\n- Redis servers protected by SSL-encrypted connections can be accessed by using\n  the `tls` or `rediss` scheme in connection parameters along with SSL-specific\n  options in the `ssl` parameter (see http://php.net/manual/context.ssl.php).\n\n- `Predis\\Client` implements `IteratorAggregate` making it possible to iterate\n  over traversable aggregate connections and get a new client instance for each\n  Redis node.\n\n- Iterating over an instance of `Predis\\Connection\\Aggregate\\RedisCluster` will\n  return all the connections mapped in the slots map instead of just the ones in\n  the pool. This change makes it possible, when the slots map is retrieved from\n  Redis, to iterate over all of the master nodes in the cluster. When the use of\n  `CLUSTER SLOTS` is disabled via the `useClusterSlots()` method, the iteration\n  returns only the connections with slots ranges associated in their parameters\n  or the ones initialized by `-MOVED` responses in order to make the behaviour\n  of the iteration consistent between the two modes of operation.\n\n- Various improvements to `Predis\\Connection\\Aggregate\\MasterSlaveReplication`\n  (the \"basic\" replication backend, not the new one based on redis-sentinel):\n\n  - When the client is not able to send a read-only command to a slave because\n    the current connection fails or the slave is resyncing (`-LOADING` response\n    returned by Redis), the backend discards the failed connection and performs\n    a new attempt on the next slave. When no other slave is available the master\n    server is used for read-only commands as last resort.\n\n  - It is possible to discover the current replication configuration on the fly\n    by invoking the `discover()` method which internally relies on the output of\n    the command `INFO REPLICATION` executed against the master server or one of\n    the slaves. The backend can also be configured to do this automatically when\n    it fails to reach one of the servers.\n\n  - Implemented the `switchToMaster()` and `switchToSlave()` methods to make it\n    easier to force a switch to the master server or a random slave when needed.\n\n\nv1.0.4 (2016-05-30)\n================================================================================\n\n- Added new profile for Redis 3.2 with its new commands: `HSTRLEN`, `BITFIELD`,\n  `GEOADD`, `GEOHASH`, `GEOPOS`, `GEODIST`, `GEORADIUS`, `GEORADIUSBYMEMBER`.\n  The default server profile for Predis is still the one for Redis 3.0 you must\n  set the `profile` client option to `3.2` when initializing the client in order\n  to be able to use them when connecting to Redis 3.2.\n\n- Various improvements in the handling of redis-cluster:\n\n    - If the connection to a specific node fails when executing a command, the\n      client tries to connect to another node in order to refresh the slots map\n      and perform a new attempt to execute the command.\n\n    - Connections to nodes can be preassigned to non-contiguous slot ranges via\n      the `slots` parameter using a comma separator. This is how it looks like\n      in practice: `tcp://127.0.0.1:6379?slots=0-5460,5500-5600,11000`.\n\n- __FIX__: broken values returned by `Predis\\Collection\\Iterator\\HashKey` when\n  iterating hash keys containing integer fields (PR #330, ISSUE #331).\n\n- __FIX__: prevent failures when `Predis\\Connection\\StreamConnection` serializes\n  commands with holes in their arguments (e.g. `[0 => 'key:0', 2 => 'key:2']`).\n  The same fix has been applied to `Predis\\Protocol\\Text\\RequestSerializer`.\n  (ISSUE #316).\n\n\nv1.0.3 (2015-07-30)\n================================================================================\n\n- __FIX__: the previous release introduced a severe regression on HHVM that made\n  the library unable to connect to Redis when using IPv4 addresses. Code running\n  on the standard PHP interpreter is not affected.\n\n\nv1.0.2 (2015-07-30)\n================================================================================\n\n- IPv6 is now fully supported.\n\n- Added `redis` as an accepted scheme for connection parameters. When using this\n  scheme, the rules used to parse URI strings match the provisional registration\n  [published by IANA](http://www.iana.org/assignments/uri-schemes/prov/redis).\n\n- Added new or missing commands: `HSTRLEN` (>= 3.2), `ZREVRANGEBYLEX` (>= 2.8)\n  and `MIGRATE` (>= 2.6).\n\n- Implemented support for the `ZADD` modifiers `NX|XX`, `CH`, `INCR` (Redis >=\n  3.0.2) using the simplified signature where scores and members are passed as\n  a named array.\n\n- __FIX__: `Predis\\Configuration\\Options` must not trigger the autoloader when\n  option values are strings (ISSUE #257).\n\n- __FIX__: `BITPOS` was not defined in the key-prefix processor (ISSUE #265) and\n  in the replication strategy.\n\n\nv1.0.1 (2015-01-02)\n================================================================================\n\n- Added `BITPOS` to the server profile for Redis 2.8.\n\n- Connection timeout for read/write operations can now be set for UNIX sockets\n  where the underlying connection uses PHP's stream.\n\n- __FIX__: broken values returned by `Predis\\Collection\\Iterator\\SortedSetKey`\n  when iterating sorted set containing integer members (ISSUE #216).\n\n- __FIX__: applied a minor workaround for a bug in old versions of PHP < 5.3.9\n  affecting inheritance.\n\n- __FIX__: prevent E_NOTICE warnings when using INFO [section] returns an empty\n  response due to an unsupported specific set of information requested to Redis.\n\n\nv1.0.0 (2014-08-01)\n================================================================================\n\n- Switched to PSR-4 for autoloading.\n\n- The default server profile for Redis is `3.0`.\n\n- Removed server profile for Redis 1.2.\n\n- Added `SENTINEL` to the profile for Redis 2.6 and `PUBSUB` to the profile for\n  Redis 2.8.\n\n- `Predis\\Client` can now send raw commands using `Predis\\Client::executeRaw()`.\n\n- Status responses are returned as instances of `Predis\\Response\\Status`, for\n  example +OK is not returned as boolean TRUE anymore which is a breaking change\n  for those using strict comparisons. Status responses can be casted to string\n  values carrying the original payload, so one can do `$response == 'OK'` which\n  is also more akin to how Redis replies to clients.\n\n- Commands `ZRANGE`, `ZRANGEBYSCORE`, `ZREVRANGE` and `ZREVRANGEBYSCORE` using\n  `WITHSCORE` return a named array of member => score instead of using an array\n  of [member, score] elements. Insertion order is preserved anyway due to how\n  PHP works internally.\n\n- The command `ZSCAN` returns a named array of member => score instead of using\n  an array of [member, score] elements. Insertion order is preserved anyway due\n  to how PHP works internally.\n\n- The rules for redis-cluster are now leveraged for empty key tags when using\n  client-side sharding, which means that when one or the first occurrence of {}\n  is found in a key it will most likely produce a different hash than previous\n  versions of Predis thus leading to a different partitioning in these cases.\n\n- Invoking `Predis\\Client::connect()` when the underlying connection has been\n  already established does not throw any exception anymore, now the connection\n  simply does not attempt to perform any operation.\n\n- Added the `aggregate` client option, useful to fully customize how the client\n  should aggregate multiple connections when an array of connection parameters\n  is passed to `Predis\\Client::__construct()`.\n\n- Dropped support for streamable multibulk responses. Actually we still ship the\n  iterator response classes just in case anyone would want to build custom stuff\n  at a level lower than the client abstraction (our standard and composable text\n  protocol processors still handle them and can be used as an example).\n\n- Simplified the implementation of connection parameters by removing method used\n  to cast to int / bool / float certain parameters supplied by users. Casting\n  values, if deemed necessary, should be done by the consumer or you can just\n  subclass `Predis\\Connection\\Parameters` and override the `filter()` method.\n\n- Changed a couple of options for our transaction abstraction:\n\n    - `exceptions`: overrides the value of the client option with the same name.\n      Please note that it does not affect all the transaction control commands\n      such as `MULTI`, `EXEC`, `DISCARD`, `WATCH` and `UNWATCH`.\n    - `on_retry`: this option has been removed.\n\n- Removed pipeline executors, now command pipelines can be easily customized by\n  extending the standard `Predis\\Pipeline\\Pipeline` class. Accepted options when\n  creating a pipeline using `Predis\\Client::pipeline()` are:\n\n    - `atomic`: returns a pipeline wrapped in a MULTI / EXEC transaction\n      (class: `Predis\\Pipeline\\Atomic`).\n    - `fire-and-forget`: returns a pipeline that does not read back responses\n      (class: `Predis\\Pipeline\\FireAndForget`).\n\n- Renamed the two base abstract command classes:\n\n    - `Predis\\Command\\AbstractCommand` is now `Predis\\Command\\Command`\n    - `Predis\\Command\\ScriptedCommand` is now `Predis\\Command\\ScriptCommand`\n\n- Dropped `Predis\\Command\\Command::__toString()` (see issue #151).\n\n- The key prefixing logic has been moved from command classes to the key prefix\n  processor. Developers can define or override handlers used to prefix keys, but\n  they can also define the needed logic in their command classes by implementing\n  `Predis\\Command\\PrefixableCommandInterface` just like before.\n\n- `Predis\\PubSub\\DispatcherLoop` now takes a `Predis\\PubSub\\Consumer` instance\n  as the sole argument of its constructor instead of `Predis\\ClientInterface`.\n\n- All of the interfaces and classes related to translated Redis response types\n  have been moved in the new `Predis\\Response` namespace and most of them have\n  been renamed to make their fully-qualified name less redundant. Now the base\n  response interface is `Predis\\Response\\ResponseInterface`.\n\n- Renamed interface `Predis\\Command\\Processor\\CommandProcessorInterface` to a\n  shorter `Predis\\Command\\Processor\\ProcessorInterface`. Also removed interface\n  for chain processors since it is basically useless.\n\n- Renamed `Predis\\ExecutableContextInterface` to `Predis\\ClientContextInterface`\n  and augmented it with a couple of required methods since this interface is no\n  more comparable to a basic client as it could be misleading.\n\n- The `Predis\\Option` namespace is now known as `Predis\\Configuration` and have\n  a fully-reworked `Options` class with the ability to lazily initialize values\n  using objects that responds to `__invoke()` (not all the kinds of callables)\n  even for custom options defined by the user.\n\n- Renamed `Predis\\Connection\\ConnectionInterface::writeCommand()` into\n  `writeRequest()` for consistency with its counterpart, `readResponse()`.\n\n- Renamed `Predis\\Connection\\SingleConnectionInterface::pushInitCommand()` into\n  `addConnectCommand()` which is more obvious.\n\n- Renamed the connection class based on both ext-phpiredis and ext-socket into\n  `Predis\\Connection\\PhpiredisSocketConnection`. The one based on PHP's streams\n  is still named `Predis\\Connection\\PhpiredisStreamConnection`.\n\n- Renamed the connection factory class to `Predis\\Connection\\Factory`. Now its\n  constructor does not require anymore a profile instance to create `AUTH` and\n  `SELECT` commands when parameters contain both `password` and `database`. Raw\n  commands will be used instead.\n\n- Renamed the connection parameters class to `Predis\\Connection\\Parameters`. Now\n  its constructor accepts only named arrays, but instances can still be created\n  using both URIs or arrays using the static method `Parameters::create()`.\n\n- The profile factory code has been extracted from the abstract Redis profile\n  class and now lives in `Predis\\Profile\\Factory`.\n\n- The `Predis\\Connection` namespace has been completely reorganized by renaming\n  a few classes and interfaces and adding some sub-namespaces.\n\n- Most classes and interfaces in the `Predis\\Protocol` namespace have been moved\n  or renamed while rationalizing the whole API for external protocol processors.\n\n\nv0.8.7 (2014-08-01)\n================================================================================\n\n- Added `3.0` in the server profiles aliases list for Redis 3.0. `2.8` is still\n  the default server profile and `dev` still targets Redis 3.0.\n\n- Added `COMMAND` to the server profile for Redis 2.8.\n\n- Switched internally to the `CLUSTER SLOTS` command instead of `CLUSTER NODES`\n  to fetch the updated slots map from redis-cluster. This change requires users\n  to upgrade Redis nodes to >= 3.0.0b7.\n\n- The updated slots map is now fetched automatically from redis-cluster upon the\n  first `-MOVED` response by default. This change makes it possible to feed the\n  client constructor with only a few nodes of the actual cluster composition,\n  without needing a more complex configuration.\n\n- Implemented support for `PING` in PUB/SUB loop for Redis >= 3.0.0b8.\n\n- The default client-side sharding strategy and the one for redis-cluster now\n  share the same implementations as they follow the same rules. One difference,\n  aside from the different hashing function used to calculate distribution, is\n  in how empty hash tags like {} are treated by redis-cluster.\n\n- __FIX__: the patch applied to fix #180 introduced a regression affecting read/\n  write timeouts in `Predis\\Connection\\PhpiredisStreamConnection`. Unfortunately\n  the only possible solution requires PHP 5.4+. On PHP 5.3, read/write timeouts\n  will be ignored from now on.\n\n\nv0.8.6 (2014-07-15)\n================================================================================\n\n- Redis 2.8 is now the default server profile as there are no changes that would\n  break compatibility with previous releases.\n\n- Added `PFADD`, `PFCOUNT`, `PFMERGE` to the server profile for Redis 2.8 for\n  handling the HyperLogLog data structure introduced in Redis 2.8.9.\n\n- Added `ZLEXCOUNT`, `ZRANGEBYLEX`, `ZREMRANGEBYLEX` to the server profile for\n  Redis 2.8 for handling lexicographic operations on members of sorted sets.\n\n- Added support for key hash tags when using redis-cluster (Redis 3.0.0b1).\n\n- __FIX__: minor tweaks to make Predis compatible with HHVM >= 2.4.0.\n\n- __FIX__: responses to `INFO` are now properly parsed and will not break when\n  redis sentinel is being used (ISSUE #154).\n\n- __FIX__: added missing support for `INCRBYFLOAT` in cluster and replication\n  configurations (ISSUE #159).\n\n- __FIX__: fix parsing of the output of `CLUSTER NODES` to fetch the slots map\n  from a node when redis-cluster has slaves in its configuration (ISSUE #165).\n\n- __FIX__: prevent a stack overflow when iterating over large Redis collections\n  using our abstraction for cursor-based iterators (ISSUE #182).\n\n- __FIX__: properly discards transactions when the server immediately returns an\n  error response (e.g. -OOM or -ERR on invalid arguments for a command) instead\n  of a +QUEUED response (ISSUE #187).\n\n- Upgraded to PHPUnit 4.* for the test suite.\n\n\nv0.8.5 (2014-01-16)\n================================================================================\n\n- Added `2.8` in the server profiles aliases list for Redis 2.8. `2.6` is still\n  the default server profile and `dev` now targets Redis 3.0.\n\n- Added `SCAN`, `SSCAN`, `ZSCAN`, `HSCAN` to the server profile for Redis 2.8.\n\n- Implemented PHP iterators for incremental iterations over Redis collections:\n\n    - keyspace (cursor-based iterator using `SCAN`)\n    - sets (cursor-based iterator using `SSCAN`)\n    - sorted sets (cursor-based iterator using `ZSCAN`)\n    - hashes (cursor-based iterator using `HSCAN`)\n    - lists (plain iterator using `LRANGE`)\n\n- It is now possible to execute \"raw commands\" using `Predis\\Command\\RawCommand`\n  and a variable list of command arguments. Input arguments are not filtered and\n  responses are not parsed, which means arguments must follow the signature of\n  the command as defined by Redis and complex responses are left untouched.\n\n- URI parsing for connection parameters has been improved and has slightly less\n  overhead when the number of fields in the querystring grows. New features are:\n\n    - Parsing does not break when value of a field contains one or more \"=\".\n    - Repeated fieldnames using [] produce an array of values.\n    - Empty or incomplete \"key=value\" pairs result in an empty string for \"key\".\n\n- Various improvements and fixes to the redis-cluster connection backend:\n\n    - __FIX__: the `ASKING` command is sent upon -ASK redirections.\n    - An updated slots-map can be fetched from nodes using the `CLUSTER NODES`\n      command. By default this is a manual operation but can be enabled to get\n      automatically done upon -MOVED redirections.\n    - It is possible to specify a common set of connection parameters that are\n      applied to connections created on the fly upon redirections to nodes not\n      part of the initial pool.\n\n- List of deprecated methods:\n\n    - `Predis\\Client::multiExec()`: superseded by `Predis\\Client::transaction()`\n      and to be removed in the next major release.\n    - `Predis\\Client::pubSub()`: superseded by `Predis\\Client::pubSubLoop()` and\n      to be removed in the next major release. This change was needed due to the\n      recently introduced `PUBSUB` command in Redis 2.8.\n\n\nv0.8.4 (2013-07-27)\n================================================================================\n\n- Added `DUMP` and `RESTORE` to the server profile for Redis 2.6.\n\n- Connection exceptions now report basic host details in their messages.\n\n- Allow `Predis\\Connection\\PhpiredisConnection` to use a random IP when a host\n  actually has several IPs (ISSUE #116).\n\n- __FIX__: allow `HMSET` when using a cluster of Redis nodes with client-side\n  sharding or redis-cluster (ISSUE #106).\n\n- __FIX__: set `WITHSCORES` modifer for `ZRANGE`, `ZREVRANGE`, `ZRANGEBYSCORE`\n  and `ZREVRANGEBYSCORE` only when the options array passed to these commands\n  has `WITHSCORES` set to `true` (ISSUE #107).\n\n- __FIX__: scripted commands falling back from `EVALSHA` to `EVAL` resulted in\n  PHP errors when using a prefixed client (ISSUE #109).\n\n- __FIX__: `Predis\\PubSub\\DispatcherLoop` now works properly when using key\n  prefixing (ISSUE #114).\n\n\nv0.8.3 (2013-02-18)\n================================================================================\n\n- Added `CLIENT SETNAME` and `CLIENT GETNAME` (ISSUE #102).\n\n- Implemented the `Predis\\Connection\\PhpiredisStreamConnection` class using the\n  `phpiredis` extension like `Predis\\Connection\\PhpiredisStreamConnection`, but\n  without requiring the `socket` extension since it relies on PHP's streams.\n\n- Added support for the TCP_NODELAY flag via the `tcp_nodelay` parameter for\n  stream-based connections, namely `Predis\\Connection\\StreamConnection` and\n  `Predis\\Connection\\PhpiredisStreamConnection` (requires PHP >= 5.4.0).\n\n- Updated the aggregated connection class for redis-cluster to work with 16384\n  hash slots instead of 4096 to reflect the recent change from redis unstable\n  ([see this commit](https://github.com/antirez/redis/commit/ebd666d)).\n\n- The constructor of `Predis\\Client` now accepts a callable as first argument\n  returning `Predis\\Connection\\ConnectionInterface`. Users can create their\n  own self-contained strategies to create and set up the underlying connection.\n\n- Users should return `0` from `Predis\\Command\\ScriptedCommand::getKeysCount()`\n  instead of `FALSE` to indicate that all of the arguments of a Lua script must\n  be used to populate `ARGV[]`. This does not represent a breaking change.\n\n- The `Predis\\Helpers` class has been deprecated and it will be removed in\n  future releases.\n\n\nv0.8.2 (2013-02-03)\n================================================================================\n\n- Added `Predis\\Session\\SessionHandler` to make it easy to store PHP sessions\n  on Redis using Predis. Please note that this class needs either PHP >= 5.4.0\n  or a polyfill for PHP's `SessionHandlerInterface`.\n\n- Added the ability to get the default value of a client option directly from\n  `Predis\\Option\\ClientOption` using the `getDefault()` method by passing the\n  option name or its instance.\n\n- __FIX__: the standard pipeline executor was not using the response parser\n  methods associated to commands to process raw responses (ISSUE #101).\n\n\nv0.8.1 (2013-01-19)\n================================================================================\n\n- The `connections` client option can now accept a callable object returning\n  an instance of `Predis\\Connection\\ConnectionFactoryInterface`.\n\n- Client options accepting callable objects as factories now pass their actual\n  instance to the callable as the second argument.\n\n- `Predis\\Command\\Processor\\KeyPrefixProcessor` can now be directly casted to\n  string to obtain the current prefix, useful with string interpolation.\n\n- Added an optional callable argument to `Predis\\Cluster\\Distribution\\HashRing`\n  and `Predis\\Cluster\\Distribution\\KetamaPureRing` constructor that can be used\n  to customize how the distributor should extract the connection hash when\n  initializing the nodes distribution (ISSUE #36).\n\n- Correctly handle `TTL` and `PTTL` returning -2 on non existing keys starting\n  with Redis 2.8.\n\n- __FIX__: a missing use directive in `Predis\\Transaction\\MultiExecContext`\n  caused PHP errors when Redis did not return `+QUEUED` replies to commands\n  when inside a MULTI / EXEC context.\n\n- __FIX__: the `parseResponse()` method implemented for a scripted command was\n  ignored when retrying to execute a Lua script by falling back to `EVAL` after\n  a `-NOSCRIPT` error (ISSUE #94).\n\n- __FIX__: when subclassing `Predis\\Client` the `getClientFor()` method returns\n  a new instance of the subclass instead of a new instance of `Predis\\Client`.\n\n\nv0.8.0 (2012-10-23)\n================================================================================\n\n- The default server profile for Redis is now `2.6`.\n\n- Certain connection parameters have been renamed:\n\n  - `connection_async` is now `async_connect`\n  - `connection_timeout` is now `timeout`\n  - `connection_persistent` is now `persistent`\n\n- The `throw_errors` connection parameter has been removed and replaced by the\n  new `exceptions` client option since exceptions on `-ERR` replies returned by\n  Redis are not generated by connection classes anymore but instead are thrown\n  by the client class and other abstractions such as pipeline contexts.\n\n- Added smart support for redis-cluster (Redis v3.0) in addition to the usual\n  cluster implementation that uses client-side sharding.\n\n- Various namespaces and classes have been renamed to follow rules inspired by\n  the Symfony2 naming conventions.\n\n- The second argument of the constructor of `Predis\\Client` does not accept\n  strings or instances of `Predis\\Profile\\ServerProfileInterface` anymore.\n  To specify a server profile you must explicitly set `profile` in the array\n  of client options.\n\n- `Predis\\Command\\ScriptedCommand` internally relies on `EVALSHA` instead of\n  `EVAL` thus avoiding to send Lua scripts bodies on each request. The client\n  automatically resends the command falling back to `EVAL` when Redis returns a\n  `-NOSCRIPT` error. Automatic fallback to `EVAL` does not work with pipelines,\n  inside a `MULTI / EXEC` context or with plain `EVALSHA` commands.\n\n- Complex responses are no more parsed by connection classes as they must be\n  processed by consumer classes using the handler associated to the issued\n  command. This means that executing commands directly on connections only\n  returns simple Redis types, but nothing changes when using `Predis\\Client`\n  or the provided abstractions for pipelines and transactions.\n\n- Iterators for multi-bulk replies now skip the response parsing method of the\n  command that generated the response and are passed directly to user code.\n  Pipeline and transaction objects still consume automatically iterators.\n\n- Cluster and replication connections now extend a new common interface,\n  `Predis\\Connection\\AggregatedConnectionInterface`.\n\n- `Predis\\Connection\\MasterSlaveReplication` now uses an external strategy\n  class to handle the logic for checking readable / writable commands and Lua\n  scripts.\n\n- Command pipelines have been optimized for both speed and code cleanness, but\n  at the cost of bringing a breaking change in the signature of the interface\n  for pipeline executors.\n\n- Added a new pipeline executor that sends commands wrapped in a MULTI / EXEC\n  context to make the execution atomic: if a pipeline fails at a certain point\n  then the whole pipeline is discarded.\n\n- The key-hashing mechanism for commands is now handled externally and is no\n  more a competence of each command class. This change is neeeded to support\n  both client-side sharding and Redis cluster.\n\n- `Predis\\Options\\Option` is now abstract, see `Predis\\Option\\AbstractOption`.\n\n\nv0.7.3 (2012-06-01)\n================================================================================\n\n- New commands available in the Redis v2.6 profile (dev): `BITOP`, `BITCOUNT`.\n\n- When the number of keys `Predis\\Commands\\ScriptedCommand` is negative, Predis\n  will count from the end of the arguments list to calculate the actual number\n  of keys that will be interpreted as elements for `KEYS` by the underlying\n  `EVAL` command.\n\n- __FIX__: `examples\\CustomDistributionStrategy.php` had a mistyped constructor\n  call and produced a bad distribution due to an error as pointed in ISSUE #63.\n  This bug is limited to the above mentioned example and does not affect the\n  classes implemented in the `Predis\\Distribution` namespace.\n\n- __FIX__: `Predis\\Commands\\ServerEvalSHA::getScriptHash()` was calculating the\n  hash while it just needs to return the first argument of the command.\n\n- __FIX__: `Predis\\Autoloader` has been modified to allow cascading autoloaders\n  for the `Predis` namespace.\n\n\nv0.7.2 (2012-04-01)\n================================================================================\n\n- Added `2.6` in the server profiles aliases list for the upcoming Redis 2.6.\n  `2.4` is still the default server profile. `dev` now targets Redis 2.8.\n\n- Connection instances can be serialized and unserialized using `serialize()`\n  and `unserialize()`. This is handy in certain scenarios such as client-side\n  clustering or replication to lower the overhead of initializing a connection\n  object with many sub-connections since unserializing them can be up to 5x\n  times faster.\n\n- Reworked the default autoloader to make it faster. It is also possible to\n  prepend it in PHP's autoload stack.\n\n- __FIX__: fixed parsing of the payload returned by `MONITOR` with Redis 2.6.\n\n\nv0.7.1 (2011-12-27)\n================================================================================\n\n- The PEAR channel on PearHub has been deprecated in favour of `pear.nrk.io`.\n\n- Miscellaneous minor fixes.\n\n- Added transparent support for master / slave replication configurations where\n  write operations are performed on the master server and read operations are\n  routed to one of the slaves. Please refer to ISSUE #21 for a bit of history\n  and more details about replication support in Predis.\n\n- The `profile` client option now accepts a callable object used to initialize\n  a new instance of `Predis\\Profiles\\IServerProfile`.\n\n- Exposed a method for MULTI / EXEC contexts that adds the ability to execute\n  instances of Redis commands against transaction objects.\n\n\nv0.7.0 (2011-12-11)\n================================================================================\n\n- Predis now adheres to the PSR-0 standard which means that there is no more a\n  single file holding all the classes of the library, but multiple files (one\n  for each class). You can use any PSR-0 compatible autoloader to load Predis\n  or just leverage the default one shipped with the library by requiring the\n  `Predis/Autoloader.php` and call `Predis\\Autoloader::register()`.\n\n- The default server profile for Redis is now 2.4. The `dev` profile supports\n  all the features of Redis 2.6 (currently unstable) such as Lua scripting.\n\n- Support for long aliases (method names) for Redis commands has been dropped.\n\n- Redis 1.0 is no more supported. From now on Predis will use only the unified\n  protocol to serialize commands.\n\n- It is possible to prefix keys transparently on a client-level basis with the\n  new `prefix` client option.\n\n- An external connection factory is used to initialize new connection instances\n  and developers can now register their own connection classes using the new\n  `connections` client option.\n\n- It is possible to connect locally to Redis using UNIX domain sockets. Just\n  use `unix:///path/to/redis.sock` or a named array just like in the following\n  example: `array('scheme' => 'unix', 'path' => '/path/to/redis.sock');`.\n\n- If the `phpiredis` extension is loaded by PHP, it is now possible to use an\n  alternative connection class that leverages it to make Predis faster on many\n  cases, especially when dealing with big multibulk replies, with the the only\n  downside that persistent connections are not supported. Please refer to the\n  documentation to see how to activate this class using the new `connections`\n  client option.\n\n- Predis is capable to talk with Webdis, albeit with some limitations such as\n  the lack of pipelining and transactions, just by using the `http` scheme in\n  in the connection parameters. All is needed is PHP with the `curl` and the\n  `phpiredis` extensions loaded.\n\n- Way too many changes in the public API to make a list here, we just tried to\n  make all the Redis commands compatible with previous releases of v0.6 so that\n  you do not have to worry if you are simply using Predis as a client. Probably\n  the only breaking changes that should be mentioned here are:\n\n  - `throw_on_error` has been renamed to `throw_errors` and it is a connection\n    parameter instead of a client option, along with `iterable_multibulk`.\n\n  - `key_distribution` has been removed from the client options. To customize\n    the distribution strategy you must provide a callable object to the new\n    `cluster` client option to configure and then return a new instance of\n    `Predis\\Network\\IConnectionCluster`.\n\n  - `Predis\\Client::create()` has been removed. Just use the constructor to set\n    up a new instance of `Predis\\Client`.\n\n  - `Predis\\Client::pipelineSafe()` was deprecated in Predis v0.6.1 and now has\n    finally removed. Use `Predis\\Client::pipeline(array('safe' => true))`.\n\n  - `Predis\\Client::rawCommand()` has been removed due to inconsistencies with\n    the underlying connection abstractions. You can still get the raw resource\n    out of a connection with `Predis\\Network\\IConnectionSingle::getResource()`\n    so that you can talk directly with Redis.\n\n- The `Predis\\MultiBulkCommand` class has been merged into `Predis\\Command` and\n  thus removed. Serialization of commands is now a competence of connections.\n\n- The `Predis\\IConnection` interface has been splitted into two new interfaces:\n  `Predis\\Network\\IConnectionSingle` and `Predis\\Network\\IConnectionCluster`.\n\n- The constructor of `Predis\\Client` now accepts more type of arguments such as\n  instances of `Predis\\IConnectionParameters` and `Predis\\Network\\IConnection`.\n\n\nv0.6.6 (2011-04-01)\n================================================================================\n\n- Switched to Redis 2.2 as the default server profile (there are no changes\n  that would break compatibility with previous releases). Long command names\n  are no more supported by default but if you need them you can still require\n  `Predis_Compatibility.php` to avoid breaking compatibility.\n\n- Added a `VERSION` constant to `Predis\\Client`.\n\n- Some performance improvements for multibulk replies (parsing them is about\n  16% faster than the previous version). A few core classes have been heavily\n  optimized to reduce overhead when creating new instances.\n\n- Predis now uses by default a new protocol reader, more lightweight and\n  faster than the default handler-based one. Users can revert to the old\n  protocol reader with the `reader` client option set to `composable`.\n  This client option can also accept custom reader classes implementing the\n  new `Predis\\IResponseReader` interface.\n\n- Added support for connecting to Redis using UNIX domain sockets (ISSUE #25).\n\n- The `read_write_timeout` connection parameter can now be set to 0 or false\n  to disable read and write timeouts on connections. The old behaviour of -1\n  is still intact.\n\n- `ZUNIONSTORE` and `ZINTERSTORE` can accept an array to specify a list of the\n  source keys to be used to populate the destination key.\n\n- `MGET`, `SINTER`, `SUNION` and `SDIFF` can accept an array to specify a list\n  of keys. `SINTERSTORE`, `SUNIONSTORE` and `SDIFFSTORE` can also accept an\n  array to specify the list of source keys.\n\n- `SUBSCRIBE` and `PSUBSCRIBE` can accept a list of channels for subscription.\n\n- __FIX__: some client-side clean-ups for `MULTI/EXEC` were handled incorrectly\n  in a couple of corner cases (ISSUE #27).\n\n\nv0.6.5 (2011-02-12)\n================================================================================\n\n- __FIX__: due to an untested internal change introduced in v0.6.4, a wrong\n  handling of bulk reads of zero-length values was producing protocol\n  desynchronization errors (ISSUE #20).\n\n\nv0.6.4 (2011-02-12)\n================================================================================\n\n- Various performance improvements (15% ~ 25%) especially when dealing with\n  long multibulk replies or when using clustered connections.\n\n- Added the `on_retry` option to `Predis\\MultiExecBlock` that can be used to\n  specify an external callback (or any callable object) that gets invoked\n  whenever a transaction is aborted by the server.\n\n- Added inline (p)subscribtion via options when initializing an instance of\n  `Predis\\PubSubContext`.\n\n\nv0.6.3 (2011-01-01)\n================================================================================\n\n- New commands available in the Redis v2.2 profile (dev):\n  - Strings: `SETRANGE`, `GETRANGE`, `SETBIT`, `GETBIT`\n  - Lists  : `BRPOPLPUSH`\n\n- The abstraction for `MULTI/EXEC` transactions has been dramatically improved\n  by providing support for check-and-set (CAS) operations when using Redis >=\n  2.2. Aborted transactions can also be optionally replayed in automatic up\n  to a user-defined number of times, after which a `Predis\\AbortedMultiExec`\n  exception is thrown.\n\n\nv0.6.2 (2010-11-28)\n================================================================================\n\n- Minor internal improvements and clean ups.\n\n- New commands available in the Redis v2.2 profile (dev):\n  - Strings: `STRLEN`\n  - Lists  : `LINSERT`, `RPUSHX`, `LPUSHX`\n  - ZSets  : `ZREVRANGEBYSCORE`\n  - Misc.  : `PERSIST`\n\n- WATCH also accepts a single array parameter with the keys that should be\n  monitored during a transaction.\n\n- Improved the behaviour of `Predis\\MultiExecBlock` in certain corner cases.\n\n- Improved parameters checking for the SORT command.\n\n- __FIX__: the `STORE` parameter for the `SORT` command didn't work correctly\n  when using `0` as the target key (ISSUE #13).\n\n- __FIX__: the methods for `UNWATCH` and `DISCARD` do not break anymore method\n  chaining with `Predis\\MultiExecBlock`.\n\n\nv0.6.1 (2010-07-11)\n================================================================================\n\n- Minor internal improvements and clean ups.\n\n- New commands available in the Redis v2.2 profile (dev):\n  - Misc.  : `WATCH`, `UNWATCH`\n\n- Optional modifiers for `ZRANGE`, `ZREVRANGE` and `ZRANGEBYSCORE` queries are\n  supported using an associative array passed as the last argument of their\n  respective methods.\n\n- The `LIMIT` modifier for `ZRANGEBYSCORE` can be specified using either:\n  - an indexed array: `array($offset, $count)`\n  - an associative array: `array('offset' => $offset, 'count' => $count)`\n\n- The method `Predis\\Client::__construct()` now accepts also instances of\n  `Predis\\ConnectionParameters`.\n\n- `Predis\\MultiExecBlock` and `Predis\\PubSubContext` now throw an exception\n  when trying to create their instances using a profile that does not\n  support the required Redis commands or when the client is connected to\n  a cluster of connections.\n\n- Various improvements to `Predis\\MultiExecBlock`:\n  - fixes and more consistent behaviour across various usage cases.\n  - support for `WATCH` and `UNWATCH` when using the current development\n    profile (Redis v2.2) and aborted transactions.\n\n- New signature for `Predis\\Client::multiExec()` which is now able to accept\n  an array of options for the underlying instance of `Predis\\MultiExecBlock`.\n  Backwards compatibility with previous releases of Predis is ensured.\n\n- New signature for `Predis\\Client::pipeline()` which is now able to accept\n  an array of options for the underlying instance of Predis\\CommandPipeline.\n  Backwards compatibility with previous releases of Predis is ensured.\n  The method `Predis\\Client::pipelineSafe()` is to be considered deprecated.\n\n- __FIX__: The `WEIGHT` modifier for `ZUNIONSTORE` and `ZINTERSTORE` was\n  handled incorrectly with more than two weights specified.\n\n\nv0.6.0 (2010-05-24)\n================================================================================\n\n- Switched to the new multi-bulk request protocol for all of the commands\n  in the Redis 1.2 and Redis 2.0 profiles. Inline and bulk requests are now\n  deprecated as they will be removed in future releases of Redis.\n\n- The default server profile is `2.0` (targeting Redis 2.0.x). If you are\n  using older versions of Redis, it is highly recommended that you specify\n  which server profile the client should use (e.g. `1.2` when connecting\n  to instances of Redis 1.2.x).\n\n- Support for Redis 1.0 is now optional and it is provided by requiring\n  'Predis_Compatibility.php' before creating an instance of `Predis\\Client`.\n\n- New commands added to the Redis 2.0 profile since Predis 0.5.1:\n  - Strings: `SETEX`, `APPEND`, `SUBSTR`\n  - ZSets  : `ZCOUNT`, `ZRANK`, `ZUNIONSTORE`, `ZINTERSTORE`, `ZREMBYRANK`,\n             `ZREVRANK`\n  - Hashes : `HSET`, `HSETNX`, `HMSET`, `HINCRBY`, `HGET`, `HMGET`, `HDEL`,\n             `HEXISTS`, `HLEN`, `HKEYS`, `HVALS`, `HGETALL`\n  - PubSub : `PUBLISH`, `SUBSCRIBE`, `UNSUBSCRIBE`\n  - Misc.  : `DISCARD`, `CONFIG`\n\n- Introduced client-level options with the new `Predis\\ClientOptions` class.\n  Options can be passed to the constructor of `Predis\\Client` in its second\n  argument as an array or an instance of `Predis\\ClientOptions`. For brevity's\n  sake and compatibility with older versions, the constructor still accepts\n  an instance of `Predis\\RedisServerProfile` in its second argument. The\n  currently supported client options are:\n\n  - `profile` [default: `2.0` as of Predis 0.6.0]: specifies which server\n    profile to use when connecting to Redis. This option accepts an instance\n    of `Predis\\RedisServerProfile` or a string that indicates the version.\n\n  - `key_distribution` [default: `Predis\\Distribution\\HashRing`]: specifies\n    which key distribution strategy to use to distribute keys among the\n    servers that compose a cluster. This option accepts an instance of\n    `Predis\\Distribution\\IDistributionStrategy` so that users can implement\n    their own key distribution strategy. `Predis\\Distribution\\KetamaPureRing`\n    is an alternative distribution strategy providing a pure-PHP implementation\n    of the same algorithm used by libketama.\n\n  - `throw_on_error` [default: `TRUE`]: server errors can optionally be handled\n    \"silently\": instead of throwing an exception, the client returns an error\n    response type.\n\n  - `iterable_multibulk` [EXPERIMENTAL - default: `FALSE`]: in addition to the\n    classic way of fetching a whole multibulk reply into an array, the client\n    can now optionally stream a multibulk reply down to the user code by using\n    PHP iterators. It is just a little bit slower, but it can save a lot of\n    memory in certain scenarios.\n\n- New parameters for connections:\n\n  - `alias` [default: not set]: every connection can now be identified by an\n    alias that is useful to get a specific connections when connected to a\n    cluster of Redis servers.\n  - `weight` [default: not set]: allows to balance keys asymmetrically across\n    multiple servers. This is useful when you have servers with different\n    amounts of memory to distribute the load of your keys accordingly.\n  - `connection_async` [default: `FALSE`]: estabilish connections to servers\n    in a non-blocking way, so that the client is not blocked while the socket\n    resource performs the actual connection.\n  - `connection_persistent` [default: `FALSE`]: the underlying socket resource\n    is left open when a script ends its lifecycle. Persistent connections can\n    lead to unpredictable or strange behaviours, so they should be used with\n    extreme care.\n\n- Introduced the `Predis\\Pipeline\\IPipelineExecutor` interface. Classes that\n  implements this interface are used internally by the `Predis\\CommandPipeline`\n  class to change the behaviour of the pipeline when writing/reading commands\n  from one or multiple servers. Here is the list of the default executors:\n\n  - `Predis\\Pipeline\\StandardExecutor`: exceptions generated by server errors\n    might be thrown depending on the options passed to the client (see the\n    `throw_on_error` client option). Instead, protocol or network errors always\n    throw exceptions. This is the default executor for single and clustered\n    connections and shares the same behaviour of Predis 0.5.x.\n  - `Predis\\Pipeline\\SafeExecutor`: exceptions generated by server, protocol\n    or network errors are not thrown but returned in the response array as\n    instances of `Predis\\ResponseError` or `Predis\\CommunicationException`.\n  - `Predis\\Pipeline\\SafeClusterExecutor`: this executor shares the same\n    behaviour of `Predis\\Pipeline\\SafeExecutor` but it is geared towards\n    clustered connections.\n\n- Support for PUB/SUB is handled by the new `Predis\\PubSubContext` class, which\n  could also be used to build a callback dispatcher for PUB/SUB scenarios.\n\n- When connected to a cluster of connections, it is now possible to get a\n  new `Predis\\Client` instance for a single connection of the cluster by\n  passing its alias/index to the new `Predis\\Client::getClientFor()` method.\n\n- `Predis\\CommandPipeline` and `Predis\\MultiExecBlock` return their instances\n  when invokink commands, thus allowing method chaining in pipelines and\n  multi-exec blocks.\n\n- `Predis\\MultiExecBlock` can handle the new `DISCARD` command.\n\n- Connections now support float values for the `connection_timeout` parameter\n  to express timeouts with a microsecond resolution.\n\n- __FIX__: TCP connections now respect the read/write timeout parameter when\n  reading the payload of server responses. Previously, `stream_get_contents()`\n  was being used internally to read data from a connection but it looks like\n  PHP does not honour the specified timeout for socket streams when inside\n  this function.\n\n- __FIX__: The `GET` parameter for the `SORT` command now accepts also multiple\n  key patterns by passing an array of strings. (ISSUE #1).\n\n* __FIX__: Replies to the `DEL` command return the number of elements deleted\n  by the server and not 0 or 1 interpreted as a boolean response. (ISSUE #4).\n\n\nv0.5.1 (2010-01-23)\n================================================================================\n\n* `RPOPLPUSH` has been changed from bulk command to inline command in Redis\n  1.2.1, so `ListPopLastPushHead` now extends `InlineCommand`. The old behavior\n  is still available via the `ListPopLastPushHeadBulk` class so that you can\n  override the server profile if you need the old (and uncorrect) behaviour\n  when connecting to a Redis 1.2.0 instance.\n\n* Added missing support for `BGREWRITEAOF` for Redis >= 1.2.0.\n\n* Implemented a factory method for the `RedisServerProfile` class to ease the\n  creation of new server profile instances based on a version string.\n\n\nv0.5.0 (2010-01-09)\n================================================================================\n* First versioned release of Predis\n"
  },
  {
    "path": "vendor/predis/predis/CONTRIBUTING.md",
    "content": "## Filing bug reports ##\n\nBugs or feature requests can be posted on the [GitHub issues](http://github.com/nrk/predis/issues)\nsection of the project.\n\nWhen reporting bugs, in addition to the obvious description of your issue you __must__ always provide\nsome essential information about your environment such as:\n\n  1. version of Predis (check the `VERSION` file or the `Predis\\Client::VERSION` constant).\n  2. version of Redis (check `redis_version` returned by [`INFO`](http://redis.io/commands/info)).\n  3. version of PHP.\n  4. name and version of the operating system.\n  5. when possible, a small snippet of code that reproduces the issue.\n\n__Think about it__: we do not have a crystal ball and cannot predict things or peer into the unknown\nso please provide as much details as possible to help us isolating issues and fix them.\n\n__Never__ use GitHub issues to post generic questions about Predis! When you have questions about\nhow Predis works or how it can be used, please just hop me an email and I will get back to you as\nsoon as possible.\n\n\n## Contributing code ##\n\nIf you want to work on Predis, it is highly recommended that you first run the test suite in order\nto check that everything is OK and report strange behaviours or bugs. When modifying Predis please\nmake sure that no warnings or notices are emitted by PHP running the interpreter in your development\nenvironment with the `error_reporting` variable set to `E_ALL | E_STRICT`.\n\nThe recommended way to contribute to Predis is to fork the project on GitHub, create topic branches\non your newly created repository to fix bugs or add new features (possibly with tests covering your\nmodifications) and then open a pull request with a description of the applied changes. Obviously you\ncan use any other Git hosting provider of your preference.\n\nWe always aim for consistency in our code base so you should follow basic coding rules as defined by\n[PSR-1](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md)\nand [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)\nand stick with the conventions used in Predis to name classes and interfaces. Indentation should be\ndone with 4 spaces and code should be wrapped at 100 columns (please try to stay within this limit\neven if the above mentioned official coding guidelines set the soft limit to 120 columns).\n\nPlease follow these [commit guidelines](http://git-scm.com/book/ch5-2.html#Commit-Guidelines) when\ncommitting your code to Git and always write a meaningful (not necessarily extended) description of\nyour changes before opening pull requests.\n"
  },
  {
    "path": "vendor/predis/predis/FAQ.md",
    "content": "# Some frequently asked questions about Predis #\n________________________________________________\n\n### What is the point of Predis? ###\n\nThe main point of Predis is about offering a highly customizable and extensible client for Redis,\nthat can be easily extended by developers while still being reasonabily fast. With Predis you can\nswap almost any class with your own custom implementation: you can have custom connection classes,\nnew distribution strategies for client-side sharding, or handlers to replace or add Redis commands.\nAll of this can be achieved without messing with the source code of the library and directly in your\nown application. Given the fast pace at which Redis is developed and adds new features, this can be\na great asset since it allows developers to add new and still missing features or commands or change\nthe standard behaviour of the library without the need to break dependencies in production code (at\nleast to some degree).\n\n### Does Predis support UNIX domain sockets and persistent connections? ###\n\nYes. Obviously persistent connections actually work only when using PHP configured as a persistent\nprocess reused by the web server (see [PHP-FPM](http://php-fpm.org)).\n\n### Does Predis support SSL-encrypted connections? ###\n\nYes. Encrypted connections are mostly useful when connecting to Redis instances exposed by various\ncloud hosting providers without the need to configure an SSL proxy, but you should also take into\naccount the general performances degradation especially during the connect() operation when the TLS\nhandshake must be performed to secure the connection. Persistent SSL-encrypted connections may help\nin that respect, but they are supported only when running on PHP >= 7.0.0.\n\n### Does Predis support transparent (de)serialization of values? ###\n\nNo and it will not ever do that by default. The reason behind this decision is that serialization is\nusually something that developers prefer to customize depending on their needs and can not be easily\ngeneralized when using Redis because of the many possible access patterns for your data. This does\nnot mean that it is impossible to have such a feature since you can leverage the extensibility of\nthis library to define your own serialization-aware commands. You can find more details about how to\ndo that [on this issue](http://github.com/nrk/predis/issues/29#issuecomment-1202624).\n\n### How can I force Predis to connect to Redis before sending any command? ###\n\nExplicitly connecting to Redis is usually not needed since the client initializes connections lazily\nonly when they are needed. Admittedly, this behavior can be inconvenient in certain scenarios when\nyou absolutely need to perform an upfront check to determine if the server is up and running and\neventually catch exceptions on failures. Forcing the client to open the underlying connection can be\ndone by invoking `Predis\\Client::connect()`:\n\n```php\n$client = new Predis\\Client();\n\ntry {\n    $client->connect();\n} catch (Predis\\Connection\\ConnectionException $exception) {\n    // We could not connect to Redis! Your handling code goes here.\n}\n\n$client->info();\n```\n\n### How Predis abstracts Redis commands? ###\n\nThe approach used to implement Redis commands is quite simple: by default each command follows the\nsame signature as defined on the [Redis documentation](http://redis.io/commands) which makes things\npretty easy if you already know how Redis works or you need to look up how to use certain commands.\nAlternatively, variadic commands can accept an array for keys or values (depending on the command)\ninstead of a list of arguments. Commands such as [`RPUSH`](http://redis.io/commands/rpush) and\n[`HMSET`](http://redis.io/commands/hmset) are great examples:\n\n```php\n$client->rpush('my:list', 'value1', 'value2', 'value3');             // plain method arguments\n$client->rpush('my:list', ['value1', 'value2', 'value3']);           // single argument array\n\n$client->hmset('my:hash', 'field1', 'value1', 'field2', 'value2');   // plain method arguments\n$client->hmset('my:hash', ['field1'=>'value1', 'field2'=>'value2']); // single named array\n```\n\nAn exception to this rule is [`SORT`](http://redis.io/commands/sort) for which modifiers are passed\n[using a named array](tests/Predis/Command/KeySortTest.php#L54-L75).\n\n\n# Speaking about performances... #\n_________________________________________________\n\n\n### Predis is a pure-PHP implementation: it can not be fast enough! ###\n\nIt really depends, but most of the times the answer is: _yes, it is fast enough_. I will give you a\ncouple of easy numbers with a simple test that uses a single client and is executed by PHP 5.5.6\nagainst a local instance of Redis 2.8 that runs under Ubuntu 13.10 on a Intel Q6600:\n\n```\n21000 SET/sec using 12 bytes for both key and value.\n21000 GET/sec while retrieving the very same values.\n0.130 seconds to fetch 30000 keys using _KEYS *_.\n```\n\nHow does it compare with [__phpredis__](http://github.com/nicolasff/phpredis), a nice C extension\nproviding an efficient client for Redis?\n\n```\n30100 SET/sec using 12 bytes for both key and value\n29400 GET/sec while retrieving the very same values\n0.035 seconds to fetch 30000 keys using \"KEYS *\"\".\n```\n\nWow __phpredis__ seems much faster! Well, we are comparing a C extension with a pure-PHP library so\nlower numbers are quite expected but there is a fundamental flaw in them: is this really how you are\ngoing to use Redis in your application? Are you really going to send thousands of commands using a\nfor-loop on each page request using a single client instance? If so... well I guess you are probably\ndoing something wrong. Also, if you need to `SET` or `GET` multiple keys you should definitely use\ncommands such as `MSET` and `MGET`. You can also use pipelining to get more performances when this\ntechnique can be used.\n\nThere is one more thing: we have tested the overhead of Predis by connecting on a localhost instance\nof Redis but how these numbers change when we hit the physical network by connecting to remote Redis\ninstances?\n\n```\nUsing Predis:\n3200 SET/sec using 12 bytes for both key and value\n3200 GET/sec while retrieving the very same values\n0.132 seconds to fetch 30000 keys using \"KEYS *\".\n\nUsing phpredis:\n3500 SET/sec using 12 bytes for both key and value\n3500 GET/sec while retrieving the very same values\n0.045 seconds to fetch 30000 keys using \"KEYS *\".\n```\n\nThere you go, you get almost the same average numbers and the reason is simple: network latency is a\nreal performance killer and you cannot do (almost) anything about that. As a disclaimer, remember\nthat we are measuring the overhead of client libraries implementations and the effects of network\nround-trip times, so we are not really measuring how fast Redis is. Redis shines best with thousands\nof concurrent clients doing requests! Also, actual performances should be measured according to how\nyour application will use Redis.\n\n### I am convinced, but performances for multi-bulk responses are still worse ###\n\nFair enough, but there is an option available if you need even more speed and consists on installing\n__[phpiredis](http://github.com/nrk/phpiredis)__ (note the additional _i_ in the name) and let the\nclient use it. __phpiredis__ is another C extension that wraps __hiredis__ (the official C client\nlibrary for Redis) with a thin layer exposing its features to PHP. You can then choose between two\ndifferent connection classes:\n\n  - `Predis\\Connection\\PhpiredisStreamConnection` (using native PHP streams).\n  - `Predis\\Connection\\PhpiredisSocketConnection` (requires `ext-socket`).\n\nYou will now get the benefits of a faster protocol serializer and parser just by adding a couple of\nlines of code:\n\n```php\n$client = new Predis\\Client('tcp://127.0.0.1', array(\n    'connections' => array(\n        'tcp'  => 'Predis\\Connection\\PhpiredisStreamConnection',\n        'unix' => 'Predis\\Connection\\PhpiredisSocketConnection',\n    ),\n));\n```\n\nDead simple. Nothing changes in the way you use the library in your application. So how fast is it\nour basic benchmark script now? There are not much improvements for inline or short bulk responses\nlike the ones returned by `SET` and `GET`, but the speed for parsing multi-bulk responses is now on\npar with phpredis:\n\n```\nFatching 30000 keys with _KEYS *_ using Predis paired with phpiredis::\n\n0.035 seconds from a local Redis instance\n0.047 seconds from a remote Redis instance\n```\n\n### If I need an extension to get better performances, why not using phpredis? ###\n\nGood question. Generically speaking if you need absolute uber-speed using Redis on the localhost and\nyou do not care about abstractions built around some Redis features such as MULTI / EXEC, or if you\ndo not need any kind of extensibility or guaranteed backwards compatibility with different versions\nof Redis (Predis currently supports from 1.2 up to 2.8 and the current development version), then\nusing __phpredis__ makes absolutely sense. Otherwise, Predis is perfect for the job and by adding\n__phpiredis__ you can get a nice speed bump almost for free.\n"
  },
  {
    "path": "vendor/predis/predis/LICENSE",
    "content": "Copyright (c) 2009-2016 Daniele Alessandri\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/predis/predis/README.md",
    "content": "# Predis #\n\n[![Software license][ico-license]](LICENSE)\n[![Latest stable][ico-version-stable]][link-packagist]\n[![Latest development][ico-version-dev]][link-packagist]\n[![Monthly installs][ico-downloads-monthly]][link-downloads]\n[![Build status][ico-travis]][link-travis]\n[![HHVM support][ico-hhvm]][link-hhvm]\n[![Gitter room][ico-gitter]][link-gitter]\n\nFlexible and feature-complete [Redis](http://redis.io) client for PHP >= 5.3 and HHVM >= 2.3.0.\n\nPredis does not require any additional C extension by default, but it can be optionally paired with\n[phpiredis](https://github.com/nrk/phpiredis) to lower the overhead of the serialization and parsing\nof the [Redis RESP Protocol](http://redis.io/topics/protocol). For an __experimental__ asynchronous\nimplementation of the client you can refer to [Predis\\Async](https://github.com/nrk/predis-async).\n\nMore details about this project can be found on the [frequently asked questions](FAQ.md).\n\n\n## Main features ##\n\n- Support for different versions of Redis (from __2.0__ to __3.2__) using profiles.\n- Support for clustering using client-side sharding and pluggable keyspace distributors.\n- Support for [redis-cluster](http://redis.io/topics/cluster-tutorial) (Redis >= 3.0).\n- Support for master-slave replication setups and [redis-sentinel](http://redis.io/topics/sentinel).\n- Transparent key prefixing of keys using a customizable prefix strategy.\n- Command pipelining on both single nodes and clusters (client-side sharding only).\n- Abstraction for Redis transactions (Redis >= 2.0) and CAS operations (Redis >= 2.2).\n- Abstraction for Lua scripting (Redis >= 2.6) and automatic switching between `EVALSHA` or `EVAL`.\n- Abstraction for `SCAN`, `SSCAN`, `ZSCAN` and `HSCAN` (Redis >= 2.8) based on PHP iterators.\n- Connections are established lazily by the client upon the first command and can be persisted.\n- Connections can be established via TCP/IP (also TLS/SSL-encrypted) or UNIX domain sockets.\n- Support for [Webdis](http://webd.is) (requires both `ext-curl` and `ext-phpiredis`).\n- Support for custom connection classes for providing different network or protocol backends.\n- Flexible system for defining custom commands and profiles and override the default ones.\n\n\n## How to _install_ and use Predis ##\n\nThis library can be found on [Packagist](http://packagist.org/packages/predis/predis) for an easier\nmanagement of projects dependencies using [Composer](http://packagist.org/about-composer) or on our\n[own PEAR channel](http://pear.nrk.io) for a more traditional installation using PEAR. Ultimately,\ncompressed archives of each release are [available on GitHub](https://github.com/nrk/predis/tags).\n\n\n### Loading the library ###\n\nPredis relies on the autoloading features of PHP to load its files when needed and complies with the\n[PSR-4 standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md).\nAutoloading is handled automatically when dependencies are managed through Composer, but it is also\npossible to leverage its own autoloader in projects or scripts lacking any autoload facility:\n\n```php\n// Prepend a base path if Predis is not available in your \"include_path\".\nrequire 'Predis/Autoloader.php';\n\nPredis\\Autoloader::register();\n```\n\nIt is also possible to create a [phar](http://www.php.net/manual/en/intro.phar.php) archive directly\nfrom the repository by launching the `bin/create-phar` script. The generated phar already contains a\nstub defining its own autoloader, so you just need to `require()` it to start using the library.\n\n\n### Connecting to Redis ###\n\nWhen creating a client instance without passing any connection parameter, Predis assumes `127.0.0.1`\nand `6379` as default host and port. The default timeout for the `connect()` operation is 5 seconds:\n\n```php\n$client = new Predis\\Client();\n$client->set('foo', 'bar');\n$value = $client->get('foo');\n```\n\nConnection parameters can be supplied either in the form of URI strings or named arrays. The latter\nis the preferred way to supply parameters, but URI strings can be useful when parameters are read\nfrom non-structured or partially-structured sources:\n\n```php\n// Parameters passed using a named array:\n$client = new Predis\\Client([\n    'scheme' => 'tcp',\n    'host'   => '10.0.0.1',\n    'port'   => 6379,\n]);\n\n// Same set of parameters, passed using an URI string:\n$client = new Predis\\Client('tcp://10.0.0.1:6379');\n```\n\nIt is also possible to connect to local instances of Redis using UNIX domain sockets, in this case\nthe parameters must use the `unix` scheme and specify a path for the socket file:\n\n```php\n$client = new Predis\\Client(['scheme' => 'unix', 'path' => '/path/to/redis.sock']);\n$client = new Predis\\Client('unix:/path/to/redis.sock');\n```\n\nThe client can leverage TLS/SSL encryption to connect to secured remote Redis instances without the\nneed to configure an SSL proxy like stunnel. This can be useful when connecting to nodes running on\nvarious cloud hosting providers. Encryption can be enabled with using the `tls` scheme and an array\nof suitable [options](http://php.net/manual/context.ssl.php) passed via the `ssl` parameter:\n\n```php\n// Named array of connection parameters:\n$client = new Predis\\Client([\n  'scheme' => 'tls',\n  'ssl'    => ['cafile' => 'private.pem', 'verify_peer' => true],\n]\n\n// Same set of parameters, but using an URI string:\n$client = new Predis\\Client('tls://127.0.0.1?ssl[cafile]=private.pem&ssl[verify_peer]=1');\n```\n\nThe connection schemes [`redis`](http://www.iana.org/assignments/uri-schemes/prov/redis) (alias of\n`tcp`) and [`rediss`](http://www.iana.org/assignments/uri-schemes/prov/rediss) (alias of `tls`) are\nalso supported, with the difference that URI strings containing these schemes are parsed following\nthe rules described on their respective IANA provisional registration documents.\n\nThe actual list of supported connection parameters can vary depending on each connection backend so\nit is recommended to refer to their specific documentation or implementation for details.\n\nWhen an array of connection parameters is provided, Predis automatically works in cluster mode using\nclient-side sharding. Both named arrays and URI strings can be mixed when providing configurations\nfor each node:\n\n```php\n$client = new Predis\\Client([\n    'tcp://10.0.0.1?alias=first-node',\n    ['host' => '10.0.0.2', 'alias' => 'second-node'],\n]);\n```\n\nSee the [aggregate connections](#aggregate-connections) section of this document for more details.\n\nConnections to Redis are lazy meaning that the client connects to a server only if and when needed.\nWhile it is recommended to let the client do its own stuff under the hood, there may be times when\nit is still desired to have control of when the connection is opened or closed: this can easily be\nachieved by invoking `$client->connect()` and `$client->disconnect()`. Please note that the effect\nof these methods on aggregate connections may differ depending on each specific implementation.\n\n\n### Client configuration ###\n\nMany aspects and behaviors of the client can be configured by passing specific client options to the\nsecond argument of `Predis\\Client::__construct()`:\n\n```php\n$client = new Predis\\Client($parameters, ['profile' => '2.8', 'prefix' => 'sample:']);\n```\n\nOptions are managed using a mini DI-alike container and their values can be lazily initialized only\nwhen needed. The client options supported by default in Predis are:\n\n  - `profile`: specifies the profile to use to match a specific version of Redis.\n  - `prefix`: prefix string automatically applied to keys found in commands.\n  - `exceptions`: whether the client should throw or return responses upon Redis errors.\n  - `connections`: list of connection backends or a connection factory instance.\n  - `cluster`: specifies a cluster backend (`predis`, `redis` or callable object).\n  - `replication`: specifies a replication backend (`TRUE`, `sentinel` or callable object).\n  - `aggregate`: overrides `cluster` and `replication` to provide a custom connections aggregator.\n  - `parameters`: list of default connection parameters for aggregate connections.\n\nUsers can also provide custom options with values or callable objects (for lazy initialization) that\nare stored in the options container for later use through the library.\n\n\n### Aggregate connections ###\n\nAggregate connections are the foundation upon which Predis implements clustering and replication and\nthey are used to group multiple connections to single Redis nodes and hide the specific logic needed\nto handle them properly depending on the context. Aggregate connections usually require an array of\nconnection parameters when creating a new client instance.\n\n#### Cluster ####\n\nBy default, when no specific client options are set and an array of connection parameters is passed\nto the client's constructor, Predis configures itself to work in clustering mode using a traditional\nclient-side sharding approach to create a cluster of independent nodes and distribute the keyspace\namong them. This approach needs some form of external health monitoring of nodes and requires manual\noperations to rebalance the keyspace when changing its configuration by adding or removing nodes:\n\n```php\n$parameters = ['tcp://10.0.0.1', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];\n\n$client = new Predis\\Client($parameters);\n```\n\nAlong with Redis 3.0, a new supervised and coordinated type of clustering was introduced in the form\nof [redis-cluster](http://redis.io/topics/cluster-tutorial). This kind of approach uses a different\nalgorithm to distribute the keyspaces, with Redis nodes coordinating themselves by communicating via\na gossip protocol to handle health status, rebalancing, nodes discovery and request redirection. In\norder to connect to a cluster managed by redis-cluster, the client requires a list of its nodes (not\nnecessarily complete since it will automatically discover new nodes if necessary) and the `cluster`\nclient options set to `redis`:\n\n```php\n$parameters = ['tcp://10.0.0.1', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];\n$options    = ['cluster' => 'redis'];\n\n$client = new Predis\\Client($parameters, $options);\n```\n\n#### Replication ####\n\nThe client can be configured to operate in a single master / multiple slaves setup to provide better\nservice availability. When using replication, Predis recognizes read-only commands and sends them to\na random slave in order to provide some sort of load-balancing and switches to the master as soon as\nit detects a command that performs any kind of operation that would end up modifying the keyspace or\nthe value of a key. Instead of raising a connection error when a slave fails, the client attempts to\nfall back to a different slave among the ones provided in the configuration.\n\nThe basic configuration needed to use the client in replication mode requires one Redis server to be\nidentified as the master (this can be done via connection parameters using the `alias` parameter set\nto `master`) and one or more servers acting as slaves:\n\n```php\n$parameters = ['tcp://10.0.0.1?alias=master', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];\n$options    = ['replication' => true];\n\n$client = new Predis\\Client($parameters, $options);\n```\n\nThe above configuration has a static list of servers and relies entirely on the client's logic, but\nit is possible to rely on [`redis-sentinel`](http://redis.io/topics/sentinel) for a more robust HA\nenvironment with sentinel servers acting as a source of authority for clients for service discovery.\nThe minimum configuration required by the client to work with redis-sentinel is a list of connection\nparameters pointing to a bunch of sentinel instances, the `replication` option set to `sentinel` and\nthe `service` option set to the name of the service:\n\n```php\n$sentinels = ['tcp://10.0.0.1', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];\n$options   = ['replication' => 'sentinel', 'service' => 'mymaster'];\n\n$client = new Predis\\Client($sentinels, $options);\n```\n\nIf the master and slave nodes are configured to require an authentication from clients, a password\nmust be provided via the global `parameters` client option. This option can also be used to specify\na different database index. The client options array would then look like this:\n\n```php\n$options = [\n    'replication' => 'sentinel',\n    'service' => 'mymaster',\n    'parameters' => [\n        'password' => $secretpassword,\n        'database' => 10,\n    ],\n];\n```\n\nWhile Predis is able to distinguish commands performing write and read-only operations, `EVAL` and\n`EVALSHA` represent a corner case in which the client switches to the master node because it cannot\ntell when a Lua script is safe to be executed on slaves. While this is indeed the default behavior,\nwhen certain Lua scripts do not perform write operations it is possible to provide an hint to tell\nthe client to stick with slaves for their execution:\n\n```php\n$parameters = ['tcp://10.0.0.1?alias=master', 'tcp://10.0.0.2', 'tcp://10.0.0.3'];\n$options    = ['replication' => function () {\n    // Set scripts that won't trigger a switch from a slave to the master node.\n    $strategy = new Predis\\Replication\\ReplicationStrategy();\n    $strategy->setScriptReadOnly($LUA_SCRIPT);\n\n    return new Predis\\Connection\\Aggregate\\MasterSlaveReplication($strategy);\n}];\n\n$client = new Predis\\Client($parameters, $options);\n$client->eval($LUA_SCRIPT, 0);             // Sticks to slave using `eval`...\n$client->evalsha(sha1($LUA_SCRIPT), 0);    // ... and `evalsha`, too.\n```\n\nThe [`examples`](examples/) directory contains a few scripts that demonstrate how the client can be\nconfigured and used to leverage replication in both basic and complex scenarios.\n\n\n### Command pipelines ###\n\nPipelining can help with performances when many commands need to be sent to a server by reducing the\nlatency introduced by network round-trip timings. Pipelining also works with aggregate connections.\nThe client can execute the pipeline inside a callable block or return a pipeline instance with the\nability to chain commands thanks to its fluent interface:\n\n```php\n// Executes a pipeline inside the given callable block:\n$responses = $client->pipeline(function ($pipe) {\n    for ($i = 0; $i < 1000; $i++) {\n        $pipe->set(\"key:$i\", str_pad($i, 4, '0', 0));\n        $pipe->get(\"key:$i\");\n    }\n});\n\n// Returns a pipeline that can be chained thanks to its fluent interface:\n$responses = $client->pipeline()->set('foo', 'bar')->get('foo')->execute();\n```\n\n\n### Transactions ###\n\nThe client provides an abstraction for Redis transactions based on `MULTI` and `EXEC` with a similar\ninterface to command pipelines:\n\n```php\n// Executes a transaction inside the given callable block:\n$responses = $client->transaction(function ($tx) {\n    $tx->set('foo', 'bar');\n    $tx->get('foo');\n});\n\n// Returns a transaction that can be chained thanks to its fluent interface:\n$responses = $client->transaction()->set('foo', 'bar')->get('foo')->execute();\n```\n\nThis abstraction can perform check-and-set operations thanks to `WATCH` and `UNWATCH` and provides\nautomatic retries of transactions aborted by Redis when `WATCH`ed keys are touched. For an example\nof a transaction using CAS you can see [the following example](examples/transaction_using_cas.php).\n\n\n### Adding new commands ###\n\nWhile we try to update Predis to stay up to date with all the commands available in Redis, you might\nprefer to stick with an old version of the library or provide a different way to filter arguments or\nparse responses for specific commands. To achieve that, Predis provides the ability to implement new\ncommand classes to define or override commands in the default server profiles used by the client:\n\n```php\n// Define a new command by extending Predis\\Command\\Command:\nclass BrandNewRedisCommand extends Predis\\Command\\Command\n{\n    public function getId()\n    {\n        return 'NEWCMD';\n    }\n}\n\n// Inject your command in the current profile:\n$client = new Predis\\Client();\n$client->getProfile()->defineCommand('newcmd', 'BrandNewRedisCommand');\n\n$response = $client->newcmd();\n```\n\nThere is also a method to send raw commands without filtering their arguments or parsing responses.\nUsers must provide the list of arguments for the command as an array, following the signatures as\ndefined by the [Redis documentation for commands](http://redis.io/commands):\n\n```php\n$response = $client->executeRaw(['SET', 'foo', 'bar']);\n```\n\n\n### Script commands ###\n\nWhile it is possible to leverage [Lua scripting](http://redis.io/commands/eval) on Redis 2.6+ using\ndirectly [`EVAL`](http://redis.io/commands/eval) and [`EVALSHA`](http://redis.io/commands/evalsha),\nPredis offers script commands as an higher level abstraction built upon them to make things simple.\nScript commands can be registered in the server profile used by the client and are accessible as if\nthey were plain Redis commands, but they define Lua scripts that get transmitted to the server for\nremote execution. Internally they use [`EVALSHA`](http://redis.io/commands/evalsha) by default and\nidentify a script by its SHA1 hash to save bandwidth, but [`EVAL`](http://redis.io/commands/eval)\nis used as a fall back when needed:\n\n```php\n// Define a new script command by extending Predis\\Command\\ScriptCommand:\nclass ListPushRandomValue extends Predis\\Command\\ScriptCommand\n{\n    public function getKeysCount()\n    {\n        return 1;\n    }\n\n    public function getScript()\n    {\n        return <<<LUA\nmath.randomseed(ARGV[1])\nlocal rnd = tostring(math.random())\nredis.call('lpush', KEYS[1], rnd)\nreturn rnd\nLUA;\n    }\n}\n\n// Inject the script command in the current profile:\n$client = new Predis\\Client();\n$client->getProfile()->defineCommand('lpushrand', 'ListPushRandomValue');\n\n$response = $client->lpushrand('random_values', $seed = mt_rand());\n```\n\n\n### Customizable connection backends ###\n\nPredis can use different connection backends to connect to Redis. Two of them leverage a third party\nextension such as [phpiredis](https://github.com/nrk/phpiredis) resulting in major performance gains\nespecially when dealing with big multibulk responses. While one is based on PHP streams, the other\nis based on socket resources provided by `ext-socket`. Both support TCP/IP and UNIX domain sockets:\n\n```php\n$client = new Predis\\Client('tcp://127.0.0.1', [\n    'connections' => [\n        'tcp'  => 'Predis\\Connection\\PhpiredisStreamConnection',  // PHP stream resources\n        'unix' => 'Predis\\Connection\\PhpiredisSocketConnection',  // ext-socket resources\n    ],\n]);\n```\n\nDevelopers can create their own connection classes to support whole new network backends, extend\nexisting classes or provide completely different implementations. Connection classes must implement\n`Predis\\Connection\\NodeConnectionInterface` or extend `Predis\\Connection\\AbstractConnection`:\n\n```php\nclass MyConnectionClass implements Predis\\Connection\\NodeConnectionInterface\n{\n    // Implementation goes here...\n}\n\n// Use MyConnectionClass to handle connections for the `tcp` scheme:\n$client = new Predis\\Client('tcp://127.0.0.1', [\n    'connections' => ['tcp' => 'MyConnectionClass'],\n]);\n```\n\nFor a more in-depth insight on how to create new connection backends you can refer to the actual\nimplementation of the standard connection classes available in the `Predis\\Connection` namespace.\n\n\n## Development ##\n\n\n### Reporting bugs and contributing code ###\n\nContributions to Predis are highly appreciated either in the form of pull requests for new features,\nbug fixes, or just bug reports. We only ask you to adhere to a [basic set of rules](CONTRIBUTING.md)\nbefore submitting your changes or filing bugs on the issue tracker to make it easier for everyone to\nstay consistent while working on the project.\n\n\n### Test suite ###\n\n__ATTENTION__: Do not ever run the test suite shipped with Predis against instances of Redis running\nin production environments or containing data you are interested in!\n\nPredis has a comprehensive test suite covering every aspect of the library. This test suite performs\nintegration tests against a running instance of Redis (>= 2.4.0 is required) to verify the correct\nbehavior of the implementation of each command and automatically skips commands not defined in the\nspecified Redis profile. If you do not have Redis up and running, integration tests can be disabled.\nBy default the test suite is configured to execute integration tests using the profile for Redis 3.2\n(which is the current stable version of Redis) but can optionally target a Redis instance built from\nthe `unstable` branch by modifying `phpunit.xml` and setting `REDIS_SERVER_VERSION` to `dev` so that\nthe development server profile will be used. You can refer to [the tests README](tests/README.md)\nfor more detailed information about testing Predis.\n\nPredis uses Travis CI for continuous integration and the history for past and current builds can be\nfound [on its project page](http://travis-ci.org/nrk/predis).\n\n\n## Other ##\n\n\n### Project related links ###\n\n- [Source code](https://github.com/nrk/predis)\n- [Wiki](https://wiki.github.com/nrk/predis)\n- [Issue tracker](https://github.com/nrk/predis/issues)\n- [PEAR channel](http://pear.nrk.io)\n\n\n### Author ###\n\n- [Daniele Alessandri](mailto:suppakilla@gmail.com) ([twitter](http://twitter.com/JoL1hAHN))\n\n\n### License ###\n\nThe code for Predis is distributed under the terms of the MIT license (see [LICENSE](LICENSE)).\n\n[ico-license]: https://img.shields.io/github/license/nrk/predis.svg?style=flat-square\n[ico-version-stable]: https://img.shields.io/packagist/v/predis/predis.svg?style=flat-square\n[ico-version-dev]: https://img.shields.io/packagist/vpre/predis/predis.svg?style=flat-square\n[ico-downloads-monthly]: https://img.shields.io/packagist/dm/predis/predis.svg?style=flat-square\n[ico-travis]: https://img.shields.io/travis/nrk/predis.svg?style=flat-square\n[ico-hhvm]: https://img.shields.io/hhvm/predis/predis.svg?style=flat-square\n[ico-gitter]: https://img.shields.io/gitter/room/nrk/predis.svg?style=flat-square\n\n[link-packagist]: https://packagist.org/packages/predis/predis\n[link-travis]: https://travis-ci.org/nrk/predis\n[link-downloads]: https://packagist.org/packages/predis/predis/stats\n[link-hhvm]: http://hhvm.h4cc.de/package/predis/predis\n[link-gitter]: https://gitter.im/nrk/predis\n"
  },
  {
    "path": "vendor/predis/predis/VERSION",
    "content": "1.1.1\n"
  },
  {
    "path": "vendor/predis/predis/autoload.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/src/Autoloader.php';\n\nPredis\\Autoloader::register();\n"
  },
  {
    "path": "vendor/predis/predis/bin/create-command-test",
    "content": "#!/usr/bin/env php\n<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n// -------------------------------------------------------------------------- //\n// This script can be used to automatically generate a file with the scheleton\n// of a test case to test a Redis command by specifying the name of the class\n// in the Predis\\Command namespace (only classes in this namespace are valid).\n// For example, to generate a test case for SET (which is represented by the\n// Predis\\Command\\StringSet class):\n//\n//   $ ./bin/generate-command-test --class=StringSet\n//\n// Here is a list of optional arguments:\n//\n// --realm: each command has its own realm (commands that operate on strings,\n// lists, sets and such) but while this realm is usually inferred from the name\n// of the specified class, sometimes it can be useful to override it with a\n// custom one.\n//\n// --output: write the generated test case to the specified path instead of\n// the default one.\n//\n// --overwrite: pre-existing test files are not overwritten unless this option\n// is explicitly specified.\n// -------------------------------------------------------------------------- //\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\PrefixableCommandInterface;\n\nclass CommandTestCaseGenerator\n{\n    private $options;\n\n    public function __construct(array $options)\n    {\n        if (!isset($options['class'])) {\n            throw new RuntimeException(\"Missing 'class' option.\");\n        }\n        $this->options = $options;\n    }\n\n    public static function fromCommandLine()\n    {\n        $parameters = array(\n            'c:'  => 'class:',\n            'r::' => 'realm::',\n            'o::' => 'output::',\n            'x::' => 'overwrite::'\n        );\n\n        $getops = getopt(implode(array_keys($parameters)), $parameters);\n\n        $options = array(\n            'overwrite' => false,\n            'tests' => __DIR__.'/../tests/Predis',\n        );\n\n        foreach ($getops as $option => $value) {\n            switch ($option) {\n                case 'c':\n                case 'class':\n                    $options['class'] = $value;\n                    break;\n\n                case 'r':\n                case 'realm':\n                    $options['realm'] = $value;\n                    break;\n\n                case 'o':\n                case 'output':\n                    $options['output'] = $value;\n                    break;\n\n                case 'x':\n                case 'overwrite':\n                    $options['overwrite'] = true;\n                    break;\n            }\n        }\n\n        if (!isset($options['class'])) {\n            throw new RuntimeException(\"Missing 'class' option.\");\n        }\n\n        $options['fqn'] = \"Predis\\\\Command\\\\{$options['class']}\";\n        $options['path'] = \"Command/{$options['class']}.php\";\n\n        $source = __DIR__.'/../src/'.$options['path'];\n        if (!file_exists($source)) {\n            throw new RuntimeException(\"Cannot find class file for {$options['fqn']} in $source.\");\n        }\n\n        if (!isset($options['output'])) {\n            $options['output'] = sprintf(\"%s/%s\", $options['tests'], str_replace('.php', 'Test.php', $options['path']));\n        }\n\n        return new self($options);\n    }\n\n    protected function getTestRealm()\n    {\n        if (isset($this->options['realm'])) {\n            if (!$this->options['realm']) {\n                throw new RuntimeException('Invalid value for realm has been sepcified (empty).');\n            }\n            return $this->options['realm'];\n        }\n\n        $fqnParts = explode('\\\\', $this->options['fqn']);\n        $class = array_pop($fqnParts);\n        list($realm,) = preg_split('/([[:upper:]][[:lower:]]+)/', $class, 2, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);\n\n        return strtolower($realm);\n    }\n\n    public function generate()\n    {\n        $reflection = new ReflectionClass($class = $this->options['fqn']);\n\n        if (!$reflection->isInstantiable()) {\n            throw new RuntimeException(\"Class $class must be instantiable, abstract classes or interfaces are not allowed.\");\n        }\n        if (!$reflection->implementsInterface('Predis\\Command\\CommandInterface')) {\n            throw new RuntimeException(\"Class $class must implement Predis\\Command\\CommandInterface.\");\n        }\n\n        /*\n         * @var CommandInterface\n         */\n        $instance = $reflection->newInstance();\n\n        $buffer = $this->getTestCaseBuffer($instance);\n\n        return $buffer;\n    }\n\n    public function save()\n    {\n        $options = $this->options;\n        if (file_exists($options['output']) && !$options['overwrite']) {\n            throw new RuntimeException(\"File {$options['output']} already exist. Specify the --overwrite option to overwrite the existing file.\");\n        }\n        file_put_contents($options['output'], $this->generate());\n    }\n\n    protected function getTestCaseBuffer(CommandInterface $instance)\n    {\n        $id = $instance->getId();\n        $fqn = get_class($instance);\n        $fqnParts = explode('\\\\', $fqn);\n        $class = array_pop($fqnParts) . \"Test\";\n        $realm = $this->getTestRealm();\n\n        $buffer =<<<PHP\n<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @group commands\n * @group realm-$realm\n */\nclass $class extends PredisCommandTestCase\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getExpectedCommand()\n    {\n        return '$fqn';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getExpectedId()\n    {\n        return '$id';\n    }\n\n    /**\n     * @group disconnected\n     */\n    public function testFilterArguments()\n    {\n        \\$this->markTestIncomplete('This test has not been implemented yet.');\n\n        \\$arguments = array(/* add arguments */);\n        \\$expected = array(/* add arguments */);\n\n        \\$command = \\$this->getCommand();\n        \\$command->setArguments(\\$arguments);\n\n        \\$this->assertSame(\\$expected, \\$command->getArguments());\n    }\n\n    /**\n     * @group disconnected\n     */\n    public function testParseResponse()\n    {\n        \\$this->markTestIncomplete('This test has not been implemented yet.');\n\n        \\$raw = null;\n        \\$expected = null;\n\n        \\$command = \\$this->getCommand();\n\n        \\$this->assertSame(\\$expected, \\$command->parseResponse(\\$raw));\n    }\n\nPHP;\n\n        if ($instance instanceof PrefixableCommandInterface) {\n            $buffer .=<<<PHP\n\n    /**\n     * @group disconnected\n     */\n    public function testPrefixKeys()\n    {\n        \\$this->markTestIncomplete('This test has not been implemented yet.');\n\n        \\$arguments = array(/* add arguments */);\n        \\$expected = array(/* add arguments */);\n\n        \\$command = \\$this->getCommandWithArgumentsArray(\\$arguments);\n        \\$command->prefixKeys('prefix:');\n\n        \\$this->assertSame(\\$expected, \\$command->getArguments());\n    }\n\n    /**\n     * @group disconnected\n     */\n    public function testPrefixKeysIgnoredOnEmptyArguments()\n    {\n        \\$command = \\$this->getCommand();\n        \\$command->prefixKeys('prefix:');\n\n        \\$this->assertSame(array(), \\$command->getArguments());\n    }\n\nPHP;\n        }\n\n        return \"$buffer}\\n\";\n    }\n}\n\n// ------------------------------------------------------------------------- //\n\nrequire __DIR__.'/../autoload.php';\n\n$generator = CommandTestCaseGenerator::fromCommandLine();\n$generator->save();\n"
  },
  {
    "path": "vendor/predis/predis/bin/create-pear",
    "content": "#!/usr/bin/env php\n<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n// -------------------------------------------------------------------------- //\n// In order to be able to execute this script to create a PEAR package of Predis\n// the `pear` binary must be available and executable in your $PATH.\n// The parts used to parse author and version strings are taken from Onion (used\n// by this library in the past) just to keep on relying on the package.ini file\n// to simplify things. We might consider to switch to using the PEAR classes\n// directly in the future.\n// -------------------------------------------------------------------------- //\n\nfunction executeWithBackup($file, $callback)\n{\n    $exception = null;\n    $backup = \"$file.backup\";\n\n    copy($file, $backup);\n\n    try {\n        call_user_func($callback, $file);\n    } catch (Exception $exception) {\n        // NOOP\n    }\n\n    unlink($file);\n    rename($backup, $file);\n\n    if ($exception) {\n        throw $exception;\n    }\n}\n\nfunction parseAuthor($string)\n{\n    $author = array();\n\n    if (preg_match('/^\\s*(.+?)\\s*(?:\"(\\S+)\"\\s*)?<(\\S+)>\\s*$/x', $string , $regs)) {\n        if (count($regs) == 4) {\n            list($_,$name,$user,$email) = $regs;\n            $author['name'] = $name;\n            $author['user'] = $user;\n            $author['email'] = $email;\n        } elseif (count($regs) == 3) {\n            list($_,$name,$email) = $regs;\n            $author['name'] = $name;\n            $author['email'] = $email;\n        }\n    } else {\n        $author['name'] = $string;\n    }\n\n    return $author;\n}\n\nfunction parseVersion($string)\n{\n    $version_pattern = '([0-9.]+)';\n\n    if (preg_match(\"/^\\s*$version_pattern\\s*\\$/x\", $string, $regs)) {\n        return array('min' => $regs[1] ?: '0.0.0');\n    } elseif (preg_match(\"/^\\s*[>=]+\\s*$version_pattern\\s*\\$/x\", $string, $regs)) {\n        return array('min' => $regs[1] ?: '0.0.0');\n    } elseif (preg_match(\"/^\\s*[<=]+\\s*$version_pattern\\s*\\$/x\", $string, $regs)) {\n        return array('max' => $regs[1]);\n    } elseif (preg_match(\"/^\\s*$version_pattern\\s*<=>\\s*$version_pattern\\s*\\$/x\", $string, $regs)) {\n        return array(\n            'min' => $regs[1] ?: '0.0.0',\n            'max' => $regs[2],\n        );\n    }\n\n    return null;\n}\n\nfunction addRolePath($pkg, $path, $role)\n{\n    if (is_dir($path)) {\n        $dirRoot = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);\n        $dirTree = new RecursiveIteratorIterator($dirRoot, RecursiveIteratorIterator::CHILD_FIRST);\n\n        foreach ($dirTree as $fileinfo) {\n            if ($fileinfo->isFile()) {\n                addPackageFile($pkg, $fileinfo, $role, $path);\n            }\n        }\n    } else {\n        foreach (glob($path) as $filename) {\n            addPackageFile($pkg, new SplFileInfo($filename), $role);\n        }\n    }\n}\n\nfunction addPackageFile($pkg, $fileinfo, $role, $baseDir = '')\n{\n    $fileNode = $pkg->contents->dir->addChild('file');\n    $fileNode->addAttribute('name', $filepath = $fileinfo->getPathname());\n    $fileNode->addAttribute('role', $role);\n    $fileNode->addAttribute('md5sum', md5_file($filepath));\n\n    $installNode = $pkg->phprelease->filelist->addChild('install');\n    $installNode->addAttribute('name', $filepath);\n    $installNode->addAttribute('as', !$baseDir ? basename($filepath) : substr($filepath, strlen($baseDir) + 1));\n}\n\nfunction generatePackageXml($packageINI)\n{\n    $XML = <<<XML\n<?xml version=\"1.0\"?>\n<package packagerversion=\"1.4.10\" version=\"2.0\"\n    xmlns=\"http://pear.php.net/dtd/package-2.0\"\n    xmlns:tasks=\"http://pear.php.net/dtd/tasks-1.0\"\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xsi:schemaLocation=\"http://pear.php.net/dtd/tasks-1.0\n              http://pear.php.net/dtd/tasks-1.0.xsd\n              http://pear.php.net/dtd/package-2.0\n              http://pear.php.net/dtd/package-2.0.xsd\" />\nXML;\n\n    $cfg = parse_ini_file($packageINI, true);\n    $pkg = new SimpleXMLElement($XML);\n\n    $pkg->name = $cfg['package']['name'];\n    $pkg->channel = $cfg['package']['channel'];\n    $pkg->summary = $cfg['package']['desc'];\n    $pkg->description = $cfg['package']['desc'];\n\n    $author = parseAuthor($cfg['package']['author']);\n    $pkg->addChild('lead');\n    $pkg->lead->name = $author['name'];\n    $pkg->lead->user = $author['user'];\n    $pkg->lead->email = $author['email'];\n    $pkg->lead->active = 'yes';\n\n    $datetime = new DateTime('now');\n    $pkg->date = $datetime->format('Y-m-d');\n    $pkg->time = $datetime->format('H:i:s');\n\n    $pkg->addChild('version');\n    $pkg->version->release = $cfg['package']['version'];\n    $pkg->version->api = $cfg['package']['version'];\n\n    $pkg->addChild('stability');\n    $pkg->stability->release = $cfg['package']['stability'];\n    $pkg->stability->api = $cfg['package']['stability'];\n\n    $pkg->license = $cfg['package']['license'];\n    $pkg->notes = '-';\n\n    $pkg->addChild('contents')->addChild('dir')->addAttribute('name', '/');\n\n    $pkg->addChild('dependencies')->addChild('required');\n    foreach ($cfg['require'] as $required => $version) {\n        $version = parseVersion($version);\n        $pkg->dependencies->required->addChild($required);\n\n        if (isset($version['min'])) {\n            $pkg->dependencies->required->$required->min = $version['min'];\n        }\n        if (isset($version['max'])) {\n            $pkg->dependencies->required->$required->min = $version['max'];\n        }\n    }\n\n    $pkg->addChild('phprelease')->addChild('filelist');\n\n    $pathToRole = array(\n        'doc' => 'doc', 'docs' => 'doc', 'examples' => 'doc',\n        'lib' => 'php', 'src' => 'php',\n        'test' => 'test', 'tests' => 'test',\n    );\n\n    foreach (array_merge($pathToRole, $cfg['roles'] ?: array()) as $path => $role) {\n        addRolePath($pkg, $path, $role);\n    }\n\n    return $pkg;\n}\n\nfunction rewritePackageInstallAs($pkg)\n{\n    foreach ($pkg->phprelease->filelist->install as $file) {\n        if (preg_match('/^src\\//', $file['name'])) {\n            $file['as'] = \"Predis/{$file['as']}\";\n        }\n    }\n}\n\nfunction savePackageXml($xml)\n{\n    $dom = new DOMDocument(\"1.0\");\n    $dom->preserveWhiteSpace = false;\n    $dom->formatOutput = true;\n    $dom->loadXML($xml->asXML());\n\n    file_put_contents('package.xml', $dom->saveXML());\n}\n\nfunction buildPackage()\n{\n    passthru('pear -q package && rm package.xml');\n}\n\nfunction modifyPhpunitXml($file)\n{\n    $cfg = new SimpleXMLElement($file, null, true);\n\n    $cfg[0]['bootstrap'] = str_replace('tests/', '', $cfg[0]['bootstrap']);\n    $cfg->testsuites->testsuite->directory = str_replace('tests/', '', $cfg->testsuites->testsuite->directory);\n\n    $cfg->saveXml($file);\n}\n\n// -------------------------------------------------------------------------- //\n\nexecuteWithBackup(__DIR__.'/../phpunit.xml.dist', function ($file) {\n    modifyPhpunitXml($file);\n\n    $pkg = generatePackageXml('package.ini');\n    rewritePackageInstallAs($pkg);\n    savePackageXml($pkg);\n\n    buildPackage();\n});\n"
  },
  {
    "path": "vendor/predis/predis/bin/create-phar",
    "content": "#!/usr/bin/env php\n<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n// -------------------------------------------------------------------------- //\n// In order to be able to execute this script to create a Phar archive of Predis,\n// the Phar module must be loaded and the \"phar.readonly\" directive php.ini must\n// be set to \"off\". You can change the values in the $options array to customize\n// the creation of the Phar archive to better suit your needs.\n// -------------------------------------------------------------------------- //\n\n$options = array(\n    'name'           => 'predis',\n    'project_path'   => __DIR__ . '/../src',\n    'compression'    => Phar::NONE,\n    'append_version' => true,\n);\n\nfunction getPharFilename($options)\n{\n    $filename = $options['name'];\n\n    // NOTE: do not consider \"append_version\" with Phar compression do to a bug in\n    // Phar::compress() when renaming phar archives containing dots in their name.\n    if ($options['append_version'] && $options['compression'] === Phar::NONE) {\n        $versionFile = @fopen(__DIR__ . '/../VERSION', 'r');\n\n        if ($versionFile === false) {\n            throw new Exception(\"Could not locate the VERSION file.\");\n        }\n\n        $version = trim(fgets($versionFile));\n        fclose($versionFile);\n        $filename .= \"_$version\";\n    }\n\n    return \"$filename.phar\";\n}\n\nfunction getPharStub($options)\n{\n    return <<<EOSTUB\n<?php\nPhar::mapPhar('predis.phar');\nspl_autoload_register(function (\\$class) {\n    if (strpos(\\$class, 'Predis\\\\\\\\') === 0) {\n        \\$file = 'phar://predis.phar/'.strtr(substr(\\$class, 7), '\\\\\\', '/').'.php';\n        if (file_exists(\\$file)) {\n            require \\$file;\n            return true;\n        }\n    }\n});\n__HALT_COMPILER();\nEOSTUB;\n}\n\n// -------------------------------------------------------------------------- //\n\n$phar = new Phar(getPharFilename($options));\n$phar->compress($options['compression']);\n$phar->setStub(getPharStub($options));\n$phar->buildFromDirectory($options['project_path']);\n"
  },
  {
    "path": "vendor/predis/predis/bin/create-single-file",
    "content": "#!/usr/bin/env php\n<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n// -------------------------------------------------------------------------- //\n// This script can be used to automatically glue all the .php files of Predis\n// into a single monolithic script file that can be used without an autoloader,\n// just like the other previous versions of the library.\n//\n// Much of its complexity is due to the fact that we cannot simply join PHP\n// files, but namespaces and classes definitions must follow a precise order\n// when dealing with subclassing and inheritance.\n//\n// The current implementation is pretty naïve, but it should do for now.\n// -------------------------------------------------------------------------- //\n\nclass CommandLine\n{\n    public static function getOptions()\n    {\n        $parameters = array(\n            's:' => 'source:',\n            'o:' => 'output:',\n            'e:' => 'exclude:',\n            'E:' => 'exclude-classes:',\n        );\n\n        $getops = getopt(implode(array_keys($parameters)), $parameters);\n\n        $options = array(\n            'source'  => __DIR__ . \"/../src\",\n            'output'  => PredisFile::NS_ROOT . '.php',\n            'exclude' => array(),\n        );\n\n        foreach ($getops as $option => $value) {\n            switch ($option) {\n                case 's':\n                case 'source':\n                    $options['source'] = $value;\n                    break;\n\n                case 'o':\n                case 'output':\n                    $options['output'] = $value;\n                    break;\n\n                case 'E':\n                case 'exclude-classes':\n                    $options['exclude'] = @file($value, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ?: $value;\n                    break;\n\n                case 'e':\n                case 'exclude':\n                    $options['exclude'] = is_array($value) ? $value : array($value);\n                    break;\n            }\n        }\n\n        return $options;\n    }\n}\n\nclass PredisFile\n{\n    const NS_ROOT = 'Predis';\n\n    private $namespaces;\n\n    public function __construct()\n    {\n        $this->namespaces = array();\n    }\n\n    public static function from($libraryPath, array $exclude = array())\n    {\n        $predisFile = new PredisFile();\n        $libIterator = new RecursiveDirectoryIterator($libraryPath);\n\n        foreach (new RecursiveIteratorIterator($libIterator) as $classFile)\n        {\n            if (!$classFile->isFile()) {\n                continue;\n            }\n\n            $namespace = self::NS_ROOT.strtr(str_replace($libraryPath, '', $classFile->getPath()), '/', '\\\\');\n\n            if (in_array(sprintf('%s\\\\%s', $namespace, $classFile->getBasename('.php')), $exclude)) {\n                continue;\n            }\n\n            $phpNamespace = $predisFile->getNamespace($namespace);\n\n            if ($phpNamespace === false) {\n                $phpNamespace = new PhpNamespace($namespace);\n                $predisFile->addNamespace($phpNamespace);\n            }\n\n            $phpClass = new PhpClass($phpNamespace, $classFile);\n        }\n\n        return $predisFile;\n    }\n\n    public function addNamespace(PhpNamespace $namespace)\n    {\n        if (isset($this->namespaces[(string)$namespace])) {\n            throw new InvalidArgumentException(\"Duplicated namespace\");\n        }\n        $this->namespaces[(string)$namespace] = $namespace;\n    }\n\n    public function getNamespaces()\n    {\n        return $this->namespaces;\n    }\n\n    public function getNamespace($namespace)\n    {\n        if (!isset($this->namespaces[$namespace])) {\n            return false;\n        }\n\n        return $this->namespaces[$namespace];\n    }\n\n    public function getClassByFQN($classFqn)\n    {\n        if (($nsLastPos = strrpos($classFqn, '\\\\')) !== false) {\n            $namespace = $this->getNamespace(substr($classFqn, 0, $nsLastPos));\n            if ($namespace === false) {\n                return null;\n            }\n            $className = substr($classFqn, $nsLastPos + 1);\n\n            return $namespace->getClass($className);\n        }\n\n        return null;\n    }\n\n    private function calculateDependencyScores(&$classes, $fqn)\n    {\n        if (!isset($classes[$fqn])) {\n            $classes[$fqn] = 0;\n        }\n\n        $classes[$fqn] += 1;\n\n        if (($phpClass = $this->getClassByFQN($fqn)) === null) {\n            throw new RuntimeException(\n                \"Cannot found the class $fqn which is required by other subclasses. Are you missing a file?\"\n            );\n        }\n\n        foreach ($phpClass->getDependencies() as $fqn) {\n            $this->calculateDependencyScores($classes, $fqn);\n        }\n    }\n\n    private function getDependencyScores()\n    {\n        $classes = array();\n\n        foreach ($this->getNamespaces() as $phpNamespace) {\n            foreach ($phpNamespace->getClasses() as $phpClass) {\n                $this->calculateDependencyScores($classes, $phpClass->getFQN());\n            }\n        }\n\n        return $classes;\n    }\n\n    private function getOrderedNamespaces($dependencyScores)\n    {\n        $namespaces = array_fill_keys(array_unique(\n            array_map(\n                function ($fqn) { return PhpNamespace::extractName($fqn); },\n                array_keys($dependencyScores)\n            )\n        ), 0);\n\n        foreach ($dependencyScores as $classFqn => $score) {\n            $namespaces[PhpNamespace::extractName($classFqn)] += $score;\n        }\n\n        arsort($namespaces);\n\n        return array_keys($namespaces);\n    }\n\n    private function getOrderedClasses(PhpNamespace $phpNamespace, $classes)\n    {\n        $nsClassesFQNs = array_map(function ($cl) { return $cl->getFQN(); }, $phpNamespace->getClasses());\n        $nsOrderedClasses = array();\n\n        foreach ($nsClassesFQNs as $nsClassFQN) {\n            $nsOrderedClasses[$nsClassFQN] = $classes[$nsClassFQN];\n        }\n\n        arsort($nsOrderedClasses);\n\n        return array_keys($nsOrderedClasses);\n    }\n\n    public function getPhpCode()\n    {\n        $buffer = array(\"<?php\\n\\n\", PhpClass::LICENSE_HEADER, \"\\n\\n\");\n        $classes = $this->getDependencyScores();\n        $namespaces = $this->getOrderedNamespaces($classes);\n\n        foreach ($namespaces as $namespace) {\n            $phpNamespace = $this->getNamespace($namespace);\n\n            // generate namespace directive\n            $buffer[] = $phpNamespace->getPhpCode();\n            $buffer[] = \"\\n\";\n\n            // generate use directives\n            $useDirectives = $phpNamespace->getUseDirectives();\n            if (count($useDirectives) > 0) {\n                $buffer[] = $useDirectives->getPhpCode();\n                $buffer[] = \"\\n\";\n            }\n\n            // generate classes bodies\n            $nsClasses = $this->getOrderedClasses($phpNamespace, $classes);\n            foreach ($nsClasses as $classFQN) {\n                $buffer[] = $this->getClassByFQN($classFQN)->getPhpCode();\n                $buffer[] = \"\\n\\n\";\n            }\n\n            $buffer[] = \"/* \" . str_repeat(\"-\", 75) . \" */\";\n            $buffer[] = \"\\n\\n\";\n        }\n\n        return implode($buffer);\n    }\n\n    public function saveTo($outputFile)\n    {\n        // TODO: add more sanity checks\n        if ($outputFile === null || $outputFile === '') {\n            throw new InvalidArgumentException('You must specify a valid output file');\n        }\n        file_put_contents($outputFile, $this->getPhpCode());\n    }\n}\n\nclass PhpNamespace implements IteratorAggregate\n{\n    private $namespace;\n    private $classes;\n\n    public function __construct($namespace)\n    {\n        $this->namespace = $namespace;\n        $this->classes = array();\n        $this->useDirectives = new PhpUseDirectives($this);\n    }\n\n    public static function extractName($fqn)\n    {\n        $nsSepLast = strrpos($fqn, '\\\\');\n        if ($nsSepLast === false) {\n            return $fqn;\n        }\n        $ns = substr($fqn, 0, $nsSepLast);\n\n        return $ns !== '' ? $ns : null;\n    }\n\n    public function addClass(PhpClass $class)\n    {\n        $this->classes[$class->getName()] = $class;\n    }\n\n    public function getClass($className)\n    {\n        if (isset($this->classes[$className])) {\n            return $this->classes[$className];\n        }\n    }\n\n    public function getClasses()\n    {\n        return array_values($this->classes);\n    }\n\n    public function getIterator()\n    {\n        return new \\ArrayIterator($this->getClasses());\n    }\n\n    public function getUseDirectives()\n    {\n        return $this->useDirectives;\n    }\n\n    public function getPhpCode()\n    {\n        return \"namespace $this->namespace;\\n\";\n    }\n\n    public function __toString()\n    {\n        return $this->namespace;\n    }\n}\n\nclass PhpUseDirectives implements Countable, IteratorAggregate\n{\n    private $use;\n    private $aliases;\n    private $reverseAliases;\n    private $namespace;\n\n    public function __construct(PhpNamespace $namespace)\n    {\n        $this->namespace = $namespace;\n        $this->use = array();\n        $this->aliases = array();\n        $this->reverseAliases = array();\n    }\n\n    public function add($use, $as = null)\n    {\n        if (in_array($use, $this->use)) {\n            return;\n        }\n\n        $rename = null;\n        $this->use[] = $use;\n        $aliasedClassName = $as ?: PhpClass::extractName($use);\n\n        if (isset($this->aliases[$aliasedClassName])) {\n            $parentNs = $this->getParentNamespace();\n\n            if ($parentNs && false !== $pos = strrpos($parentNs, '\\\\')) {\n                $parentNs = substr($parentNs, $pos);\n            }\n\n            $newAlias = \"{$parentNs}_{$aliasedClassName}\";\n            $rename = (object) array(\n                'namespace' => $this->namespace,\n                'from' => $aliasedClassName,\n                'to' => $newAlias,\n            );\n\n            $this->aliases[$newAlias] = $use;\n            $as = $newAlias;\n        } else {\n            $this->aliases[$aliasedClassName] = $use;\n        }\n\n        if ($as !== null) {\n            $this->reverseAliases[$use] = $as;\n        }\n\n        return $rename;\n    }\n\n    public function getList()\n    {\n        return $this->use;\n    }\n\n    public function getIterator()\n    {\n        return new \\ArrayIterator($this->getList());\n    }\n\n    public function getPhpCode()\n    {\n        $reverseAliases = $this->reverseAliases;\n\n        $reducer = function ($str, $use) use ($reverseAliases) {\n            if (isset($reverseAliases[$use])) {\n                return $str .= \"use $use as {$reverseAliases[$use]};\\n\";\n            } else {\n                return $str .= \"use $use;\\n\";\n            }\n        };\n\n        return array_reduce($this->getList(), $reducer, '');\n    }\n\n    public function getNamespace()\n    {\n        return $this->namespace;\n    }\n\n    public function getParentNamespace()\n    {\n        if (false !== $pos = strrpos($this->namespace, '\\\\')) {\n            return substr($this->namespace, 0, $pos);\n        }\n\n        return '';\n    }\n\n    public function getFQN($className)\n    {\n        if (($nsSepFirst = strpos($className, '\\\\')) === false) {\n            if (isset($this->aliases[$className])) {\n                return $this->aliases[$className];\n            }\n\n            return (string)$this->getNamespace() . \"\\\\$className\";\n        }\n\n        if ($nsSepFirst != 0) {\n            throw new InvalidArgumentException(\"Partially qualified names are not supported\");\n        }\n\n        return $className;\n    }\n\n    public function count()\n    {\n        return count($this->use);\n    }\n}\n\nclass PhpClass\n{\n    const LICENSE_HEADER = <<<LICENSE\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\nLICENSE;\n\n    private $namespace;\n    private $file;\n    private $body;\n    private $implements;\n    private $extends;\n    private $name;\n\n    public function __construct(PhpNamespace $namespace, SplFileInfo $classFile)\n    {\n        $this->namespace = $namespace;\n        $this->file = $classFile;\n        $this->implements = array();\n        $this->extends = array();\n\n        $this->extractData();\n        $namespace->addClass($this);\n    }\n\n    public static function extractName($fqn)\n    {\n        $nsSepLast = strrpos($fqn, '\\\\');\n        if ($nsSepLast === false) {\n            return $fqn;\n        }\n\n        return substr($fqn, $nsSepLast + 1);\n    }\n\n    private function extractData()\n    {\n        $renames = array();\n        $useDirectives = $this->getNamespace()->getUseDirectives();\n\n        $useExtractor = function ($m) use ($useDirectives, &$renames) {\n            array_shift($m);\n\n            if (isset($m[1])) {\n                $m[1] = str_replace(\" as \", '', $m[1]);\n            }\n\n            if ($rename = call_user_func_array(array($useDirectives, 'add'), $m)) {\n                $renames[] = $rename;\n            }\n        };\n\n        $classBuffer = stream_get_contents(fopen($this->getFile()->getPathname(), 'r'));\n\n        $classBuffer = str_replace(self::LICENSE_HEADER, '', $classBuffer);\n\n        $classBuffer = preg_replace('/<\\?php\\s?\\\\n\\s?/', '', $classBuffer);\n        $classBuffer = preg_replace('/\\s?\\?>\\n?/ms', '', $classBuffer);\n        $classBuffer = preg_replace('/namespace\\s+[\\w\\d_\\\\\\\\]+;\\s?/', '', $classBuffer);\n        $classBuffer = preg_replace_callback('/use\\s+([\\w\\d_\\\\\\\\]+)(\\s+as\\s+.*)?;\\s?\\n?/', $useExtractor, $classBuffer);\n\n        foreach ($renames as $rename) {\n            $classBuffer = str_replace($rename->from, $rename->to, $classBuffer);\n        }\n\n        $this->body = trim($classBuffer);\n\n        $this->extractHierarchy();\n    }\n\n    private function extractHierarchy()\n    {\n        $implements = array();\n        $extends =  array();\n\n        $extractor = function ($iterator, $callback) {\n            $className = '';\n            $iterator->seek($iterator->key() + 1);\n\n            while ($iterator->valid()) {\n                $token = $iterator->current();\n\n                if (is_string($token)) {\n                    if (preg_match('/\\s?,\\s?/', $token)) {\n                        $callback(trim($className));\n                        $className = '';\n                    } else if ($token == '{') {\n                        $callback(trim($className));\n                        return;\n                    }\n                }\n\n                switch ($token[0]) {\n                    case T_NS_SEPARATOR:\n                        $className .= '\\\\';\n                        break;\n\n                    case T_STRING:\n                        $className .= $token[1];\n                        break;\n\n                    case T_IMPLEMENTS:\n                    case T_EXTENDS:\n                        $callback(trim($className));\n                        $iterator->seek($iterator->key() - 1);\n                        return;\n                }\n\n                $iterator->next();\n            }\n        };\n\n        $tokens = token_get_all(\"<?php\\n\" . trim($this->getPhpCode()));\n        $iterator = new ArrayIterator($tokens);\n\n        while ($iterator->valid()) {\n            $token = $iterator->current();\n            if (is_string($token)) {\n                $iterator->next();\n                continue;\n            }\n\n            switch ($token[0]) {\n                case T_CLASS:\n                case T_INTERFACE:\n                    $iterator->seek($iterator->key() + 2);\n                    $tk = $iterator->current();\n                    $this->name = $tk[1];\n                    break;\n\n                case T_IMPLEMENTS:\n                    $extractor($iterator, function ($fqn) use (&$implements) {\n                        $implements[] = $fqn;\n                    });\n                    break;\n\n                case T_EXTENDS:\n                    $extractor($iterator, function ($fqn) use (&$extends) {\n                        $extends[] = $fqn;\n                    });\n                    break;\n            }\n\n            $iterator->next();\n        }\n\n        $this->implements = $this->guessFQN($implements);\n        $this->extends = $this->guessFQN($extends);\n    }\n\n    public function guessFQN($classes)\n    {\n        $useDirectives = $this->getNamespace()->getUseDirectives();\n        return array_map(array($useDirectives, 'getFQN'), $classes);\n    }\n\n    public function getImplementedInterfaces($all = false)\n    {\n        if ($all) {\n            return $this->implements;\n        }\n\n        return array_filter(\n            $this->implements,\n            function ($cn) { return strpos($cn, 'Predis\\\\') === 0; }\n        );\n    }\n\n    public function getExtendedClasses($all = false)\n    {\n        if ($all) {\n            return $this->extemds;\n        }\n\n        return array_filter(\n            $this->extends,\n            function ($cn) { return strpos($cn, 'Predis\\\\') === 0; }\n        );\n    }\n\n    public function getDependencies($all = false)\n    {\n        return array_merge(\n            $this->getImplementedInterfaces($all),\n            $this->getExtendedClasses($all)\n        );\n    }\n\n    public function getNamespace()\n    {\n        return $this->namespace;\n    }\n\n    public function getFile()\n    {\n        return $this->file;\n    }\n\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    public function getFQN()\n    {\n        return (string)$this->getNamespace() . '\\\\' . $this->name;\n    }\n\n    public function getPhpCode()\n    {\n        return $this->body;\n    }\n\n    public function __toString()\n    {\n        return \"class \" . $this->getName() . '{ ... }';\n    }\n}\n\n/* -------------------------------------------------------------------------- */\n\n$options = CommandLine::getOptions();\n$predisFile = PredisFile::from($options['source'], $options['exclude']);\n$predisFile->saveTo($options['output']);\n"
  },
  {
    "path": "vendor/predis/predis/composer.json",
    "content": "{\n    \"name\": \"predis/predis\",\n    \"type\": \"library\",\n    \"description\": \"Flexible and feature-complete Redis client for PHP and HHVM\",\n    \"keywords\": [\"nosql\", \"redis\", \"predis\"],\n    \"homepage\": \"http://github.com/nrk/predis\",\n    \"license\": \"MIT\",\n    \"support\": {\n        \"issues\": \"https://github.com/nrk/predis/issues\"\n    },\n    \"authors\": [\n        {\n            \"name\": \"Daniele Alessandri\",\n            \"email\": \"suppakilla@gmail.com\",\n            \"homepage\": \"http://clorophilla.net\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.9\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"~4.8\"\n    },\n    \"suggest\": {\n        \"ext-phpiredis\": \"Allows faster serialization and deserialization of the Redis protocol\",\n        \"ext-curl\": \"Allows access to Webdis when paired with phpiredis\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\"Predis\\\\\": \"src/\"}\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/examples/custom_cluster_distributor.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Developers can implement Predis\\Distribution\\DistributorInterface to create\n// their own distributors used by the client to distribute keys among a cluster\n// of servers.\n\nuse Predis\\Cluster\\Distributor\\DistributorInterface;\nuse Predis\\Cluster\\Hash\\HashGeneratorInterface;\nuse Predis\\Cluster\\PredisStrategy;\nuse Predis\\Connection\\Aggregate\\PredisCluster;\n\nclass NaiveDistributor implements DistributorInterface, HashGeneratorInterface\n{\n    private $nodes;\n    private $nodesCount;\n\n    public function __construct()\n    {\n        $this->nodes = array();\n        $this->nodesCount = 0;\n    }\n\n    public function add($node, $weight = null)\n    {\n        $this->nodes[] = $node;\n        ++$this->nodesCount;\n    }\n\n    public function remove($node)\n    {\n        $this->nodes = array_filter($this->nodes, function ($n) use ($node) {\n            return $n !== $node;\n        });\n\n        $this->nodesCount = count($this->nodes);\n    }\n\n    public function getSlot($hash)\n    {\n        return $this->nodesCount > 1 ? abs($hash % $this->nodesCount) : 0;\n    }\n\n    public function getBySlot($slot)\n    {\n        return isset($this->nodes[$slot]) ? $this->nodes[$slot] : null;\n    }\n\n    public function getByHash($hash)\n    {\n        if (!$this->nodesCount) {\n            throw new RuntimeException('No connections.');\n        }\n\n        $slot = $this->getSlot($hash);\n        $node = $this->getBySlot($slot);\n\n        return $node;\n    }\n\n    public function get($value)\n    {\n        $hash = $this->hash($value);\n        $node = $this->getByHash($hash);\n\n        return $node;\n    }\n\n    public function hash($value)\n    {\n        return crc32($value);\n    }\n\n    public function getHashGenerator()\n    {\n        return $this;\n    }\n}\n\n$options = array(\n    'cluster' => function () {\n        $distributor = new NaiveDistributor();\n        $strategy = new PredisStrategy($distributor);\n        $cluster = new PredisCluster($strategy);\n\n        return $cluster;\n    },\n);\n\n$client = new Predis\\Client($multiple_servers, $options);\n\nfor ($i = 0; $i < 100; ++$i) {\n    $client->set(\"key:$i\", str_pad($i, 4, '0', 0));\n    $client->get(\"key:$i\");\n}\n\n$server1 = $client->getClientFor('first')->info();\n$server2 = $client->getClientFor('second')->info();\n\nif (isset($server1['Keyspace'], $server2['Keyspace'])) {\n    $server1 = $server1['Keyspace'];\n    $server2 = $server2['Keyspace'];\n}\n\nprintf(\"Server '%s' has %d keys while server '%s' has %d keys.\\n\",\n    'first', $server1['db15']['keys'], 'second', $server2['db15']['keys']\n);\n"
  },
  {
    "path": "vendor/predis/predis/examples/debuggable_connection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This is an example of how you can easily extend an existing connection class\n// and trace the execution of commands for debugging purposes. This can be quite\n// useful as a starting poing to understand how your application interacts with\n// Redis.\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Connection\\StreamConnection;\n\nclass SimpleDebuggableConnection extends StreamConnection\n{\n    private $tstart = 0;\n    private $debugBuffer = array();\n\n    public function connect()\n    {\n        $this->tstart = microtime(true);\n\n        parent::connect();\n    }\n\n    private function storeDebug(CommandInterface $command, $direction)\n    {\n        $firtsArg = $command->getArgument(0);\n        $timestamp = round(microtime(true) - $this->tstart, 4);\n\n        $debug = $command->getId();\n        $debug .= isset($firtsArg) ? \" $firtsArg \" : ' ';\n        $debug .= \"$direction $this\";\n        $debug .= \" [{$timestamp}s]\";\n\n        $this->debugBuffer[] = $debug;\n    }\n\n    public function writeRequest(CommandInterface $command)\n    {\n        parent::writeRequest($command);\n\n        $this->storeDebug($command, '->');\n    }\n\n    public function readResponse(CommandInterface $command)\n    {\n        $response = parent::readResponse($command);\n        $this->storeDebug($command, '<-');\n\n        return $response;\n    }\n\n    public function getDebugBuffer()\n    {\n        return $this->debugBuffer;\n    }\n}\n\n$options = array(\n    'connections' => array(\n        'tcp' => 'SimpleDebuggableConnection',\n    ),\n);\n\n$client = new Predis\\Client($single_server, $options);\n$client->set('foo', 'bar');\n$client->get('foo');\n$client->info();\n\nvar_export($client->getConnection()->getDebugBuffer());\n\n/* OUTPUT:\narray (\n  0 => 'SELECT 15 -> 127.0.0.1:6379 [0.0008s]',\n  1 => 'SELECT 15 <- 127.0.0.1:6379 [0.001s]',\n  2 => 'SET foo -> 127.0.0.1:6379 [0.001s]',\n  3 => 'SET foo <- 127.0.0.1:6379 [0.0011s]',\n  4 => 'GET foo -> 127.0.0.1:6379 [0.0013s]',\n  5 => 'GET foo <- 127.0.0.1:6379 [0.0015s]',\n  6 => 'INFO -> 127.0.0.1:6379 [0.0019s]',\n  7 => 'INFO <- 127.0.0.1:6379 [0.0022s]',\n)\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/dispatcher_loop.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This is a basic example on how to use the Predis\\DispatcherLoop class.\n//\n// To see this example in action you can just use redis-cli and publish some\n// messages to the 'events' and 'control' channel, e.g.:\n\n// ./redis-cli\n// PUBLISH events first\n// PUBLISH events second\n// PUBLISH events third\n// PUBLISH control terminate_dispatcher\n\n// Create a client and disable r/w timeout on the socket\n$client = new Predis\\Client($single_server + array('read_write_timeout' => 0));\n\n// Return an initialized PubSub consumer instance from the client.\n$pubsub = $client->pubSubLoop();\n\n// Create a dispatcher loop instance and attach a bunch of callbacks.\n$dispatcher = new Predis\\PubSub\\DispatcherLoop($pubsub);\n\n// Demonstrate how to use a callable class as a callback for the dispatcher loop.\nclass EventsListener implements Countable\n{\n    private $events;\n\n    public function __construct()\n    {\n        $this->events = array();\n    }\n\n    public function count()\n    {\n        return count($this->events);\n    }\n\n    public function getEvents()\n    {\n        return $this->events;\n    }\n\n    public function __invoke($payload)\n    {\n        $this->events[] = $payload;\n    }\n}\n\n// Attach our callable class to the dispatcher.\n$dispatcher->attachCallback('events', ($events = new EventsListener()));\n\n// Attach a function to control the dispatcher loop termination with a message.\n$dispatcher->attachCallback('control', function ($payload) use ($dispatcher) {\n    if ($payload === 'terminate_dispatcher') {\n        $dispatcher->stop();\n    }\n});\n\n// Run the dispatcher loop until the callback attached to the 'control' channel\n// receives 'terminate_dispatcher' as a message.\n$dispatcher->run();\n\n// Display our achievements!\necho \"We received {$events->count()} messages!\", PHP_EOL;\n\n// Say goodbye :-)\n$version = redis_version($client->info());\necho \"Goodbye from Redis $version!\", PHP_EOL;\n"
  },
  {
    "path": "vendor/predis/predis/examples/executing_redis_commands.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n$client = new Predis\\Client($single_server);\n\n// Plain old SET and GET example...\n$client->set('library', 'predis');\n$response = $client->get('library');\n\nvar_export($response); echo PHP_EOL;\n/* OUTPUT: 'predis' */\n\n// Redis has the MSET and MGET commands to set or get multiple keys in one go,\n// cases like this Predis accepts arguments for variadic commands both as a list\n// of arguments or an array containing all of the keys and/or values.\n$mkv = array(\n    'uid:0001' => '1st user',\n    'uid:0002' => '2nd user',\n    'uid:0003' => '3rd user',\n);\n\n$client->mset($mkv);\n$response = $client->mget(array_keys($mkv));\n\nvar_export($response); echo PHP_EOL;\n/* OUTPUT:\narray (\n  0 => '1st user',\n  1 => '2nd user',\n  2 => '3rd user',\n) */\n\n// Predis can also send \"raw\" commands to Redis. The difference between sending\n// commands to Redis the usual way and the \"raw\" way is that in the latter case\n// their arguments are not filtered nor responses coming from Redis are parsed.\n\n$response = $client->executeRaw(array(\n    'MGET', 'uid:0001', 'uid:0002', 'uid:0003',\n));\n\nvar_export($response); echo PHP_EOL;\n/* OUTPUT:\narray (\n  0 => '1st user',\n  1 => '2nd user',\n  2 => '3rd user',\n) */\n"
  },
  {
    "path": "vendor/predis/predis/examples/key_prefixing.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Predis can prefix keys found in commands arguments before sending commands to\n// Redis, even for complex commands such as SORT, ZUNIONSTORE and ZINTERSTORE.\n// Prefixing keys can be useful to create user-level namespaces for you keyspace\n// thus reducing the need for separate logical databases in certain scenarios.\n\n$client = new Predis\\Client($single_server, array('prefix' => 'nrk:'));\n\n$client->mset(array('foo' => 'bar', 'lol' => 'wut'));\nvar_export($client->mget('foo', 'lol'));\n/*\narray (\n  0 => 'bar',\n  1 => 'wut',\n)\n*/\n\nvar_export($client->keys('*'));\n/*\narray (\n  0 => 'nrk:foo',\n  1 => 'nrk:lol',\n)\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/lua_scripting_abstraction.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This example will not work with versions of Redis < 2.6.\n//\n// Additionally to the EVAL command defined in the current development profile,\n// the Predis\\Command\\ScriptCommand class can be used to build an higher level\n// abstraction for \"scriptable\" commands so that they will appear just like any\n// other command on the client-side. This is a quick example used to implement\n// INCREX.\n\nuse Predis\\Command\\ScriptCommand;\n\nclass IncrementExistingKeysBy extends ScriptCommand\n{\n    public function getKeysCount()\n    {\n        // Tell Predis to use all the arguments but the last one as arguments\n        // for KEYS. The last one will be used to populate ARGV.\n        return -1;\n    }\n\n    public function getScript()\n    {\n        return <<<LUA\nlocal cmd, insert = redis.call, table.insert\nlocal increment, results = ARGV[1], { }\n\nfor idx, key in ipairs(KEYS) do\n  if cmd('exists', key) == 1 then\n    insert(results, idx, cmd('incrby', key, increment))\n  else\n    insert(results, idx, false)\n  end\nend\n\nreturn results\nLUA;\n    }\n}\n\n$client = new Predis\\Client($single_server, array(\n    'profile' => function ($options) {\n        $profile = $options->getDefault('profile');\n        $profile->defineCommand('increxby', 'IncrementExistingKeysBy');\n\n        return $profile;\n    },\n));\n\n$client->mset('foo', 10, 'foobar', 100);\n\nvar_export($client->increxby('foo', 'foofoo', 'foobar', 50));\n\n/*\narray (\n  0 => 60,\n  1 => NULL,\n  2 => 150,\n)\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/monitor_consumer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This is a basic example on how to use the Predis\\Monitor\\Consumer class. You\n// can use redis-cli to send commands to the same Redis instance your client is\n// connected to, and then type \"ECHO QUIT_MONITOR\" in redis-cli when you want to\n// exit the monitor loop and terminate this script in a graceful way.\n\n// Create a client and disable r/w timeout on the socket.\n$client = new Predis\\Client($single_server + array('read_write_timeout' => 0));\n\n// Use only one instance of DateTime, we will update the timestamp later.\n$timestamp = new DateTime();\n\nforeach (($monitor = $client->monitor()) as $event) {\n    $timestamp->setTimestamp((int) $event->timestamp);\n\n    // If we notice a ECHO command with the message QUIT_MONITOR, we stop the\n    // monitor consumer and then break the loop.\n    if ($event->command === 'ECHO' && $event->arguments === '\"QUIT_MONITOR\"') {\n        echo 'Exiting the monitor loop...', PHP_EOL;\n        $monitor->stop();\n        break;\n    }\n\n    echo \"* Received {$event->command} on DB {$event->database} at {$timestamp->format(DateTime::W3C)}\", PHP_EOL;\n    if (isset($event->arguments)) {\n        echo \"    Arguments: {$event->arguments}\", PHP_EOL;\n    }\n}\n\n// Say goodbye :-)\n$version = redis_version($client->info());\necho \"Goodbye from Redis $version!\", PHP_EOL;\n"
  },
  {
    "path": "vendor/predis/predis/examples/pipelining_commands.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// When you have a whole set of consecutive commands to send to a redis server,\n// you can use a pipeline to dramatically improve performances. Pipelines can\n// greatly reduce the effects of network round-trips.\n\n$client = new Predis\\Client($single_server);\n\n$responses = $client->pipeline(function ($pipe) {\n    $pipe->flushdb();\n    $pipe->incrby('counter', 10);\n    $pipe->incrby('counter', 30);\n    $pipe->exists('counter');\n    $pipe->get('counter');\n    $pipe->mget('does_not_exist', 'counter');\n});\n\nvar_export($responses);\n\n/* OUTPUT:\narray (\n  0 => Predis\\Response\\Status::__set_state(array(\n    'payload' => 'OK',\n  )),\n  1 => 10,\n  2 => 40,\n  3 => true,\n  4 => '40',\n  5 => array (\n    0 => NULL,\n    1 => '40',\n  ),\n)\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/pubsub_consumer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Starting from Redis 2.0 clients can subscribe and listen for events published\n// on certain channels using a Publish/Subscribe (PUB/SUB) approach.\n\n// Create a client and disable r/w timeout on the socket\n$client = new Predis\\Client($single_server + array('read_write_timeout' => 0));\n\n// Initialize a new pubsub consumer.\n$pubsub = $client->pubSubLoop();\n\n// Subscribe to your channels\n$pubsub->subscribe('control_channel', 'notifications');\n\n// Start processing the pubsup messages. Open a terminal and use redis-cli\n// to push messages to the channels. Examples:\n//   ./redis-cli PUBLISH notifications \"this is a test\"\n//   ./redis-cli PUBLISH control_channel quit_loop\nforeach ($pubsub as $message) {\n    switch ($message->kind) {\n        case 'subscribe':\n            echo \"Subscribed to {$message->channel}\", PHP_EOL;\n            break;\n\n        case 'message':\n            if ($message->channel == 'control_channel') {\n                if ($message->payload == 'quit_loop') {\n                    echo 'Aborting pubsub loop...', PHP_EOL;\n                    $pubsub->unsubscribe();\n                } else {\n                    echo \"Received an unrecognized command: {$message->payload}.\", PHP_EOL;\n                }\n            } else {\n                echo \"Received the following message from {$message->channel}:\",\n                     PHP_EOL, \"  {$message->payload}\", PHP_EOL, PHP_EOL;\n            }\n            break;\n    }\n}\n\n// Always unset the pubsub consumer instance when you are done! The\n// class destructor will take care of cleanups and prevent protocol\n// desynchronizations between the client and the server.\nunset($pubsub);\n\n// Say goodbye :-)\n$version = redis_version($client->info());\necho \"Goodbye from Redis $version!\", PHP_EOL;\n"
  },
  {
    "path": "vendor/predis/predis/examples/redis_collections_iterators.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\nuse Predis\\Collection\\Iterator;\n\n// Starting from Redis 2.8, clients can iterate incrementally over collections\n// without blocking the server like it happens when a command such as KEYS is\n// executed on a Redis instance storing millions of keys. These commands are:\n//\n//   - SCAN (iterates over the keyspace)\n//   - SSCAN (iterates over members of a set)\n//   - ZSCAN (iterates over members and ranks of a sorted set)\n//   - HSCAN (iterates over fields and values of an hash).\n\n// Predis provides a specialized abstraction for each command based on standard\n// SPL iterators making it possible to easily consume SCAN-based iterations in\n// your PHP code.\n//\n// See http://redis.io/commands/scan for more details.\n//\n\n// Create a client using `2.8` as a server profile (needs Redis 2.8!)\n$client = new Predis\\Client($single_server, array('profile' => '2.8'));\n\n// Prepare some keys for our example\n$client->del('predis:set', 'predis:zset', 'predis:hash');\nfor ($i = 0; $i < 5; ++$i) {\n    $client->sadd('predis:set', \"member:$i\");\n    $client->zadd('predis:zset', -$i, \"member:$i\");\n    $client->hset('predis:hash', \"field:$i\", \"value:$i\");\n}\n\n// === Keyspace iterator based on SCAN ===\necho 'Scan the keyspace matching only our prefixed keys:', PHP_EOL;\nforeach (new Iterator\\Keyspace($client, 'predis:*') as $key) {\n    echo \" - $key\", PHP_EOL;\n}\n\n/* OUTPUT\nScan the keyspace matching only our prefixed keys:\n - predis:zset\n - predis:set\n - predis:hash\n*/\n\n// === Set iterator based on SSCAN ===\necho 'Scan members of `predis:set`:', PHP_EOL;\nforeach (new Iterator\\SetKey($client, 'predis:set') as $member) {\n    echo \" - $member\", PHP_EOL;\n}\n\n/* OUTPUT\nScan members of `predis:set`:\n - member:1\n - member:4\n - member:0\n - member:3\n - member:2\n*/\n\n// === Sorted set iterator based on ZSCAN ===\necho 'Scan members and ranks of `predis:zset`:', PHP_EOL;\nforeach (new Iterator\\SortedSetKey($client, 'predis:zset') as $member => $rank) {\n    echo \" - $member [rank: $rank]\", PHP_EOL;\n}\n\n/* OUTPUT\nScan members and ranks of `predis:zset`:\n - member:4 [rank: -4]\n - member:3 [rank: -3]\n - member:2 [rank: -2]\n - member:1 [rank: -1]\n - member:0 [rank: 0]\n*/\n\n// === Hash iterator based on HSCAN ===\necho 'Scan fields and values of `predis:hash`:', PHP_EOL;\nforeach (new Iterator\\HashKey($client, 'predis:hash') as $field => $value) {\n    echo \" - $field => $value\", PHP_EOL;\n}\n\n/* OUTPUT\nScan fields and values of `predis:hash`:\n - field:0 => value:0\n - field:1 => value:1\n - field:2 => value:2\n - field:3 => value:3\n - field:4 => value:4\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/replication_complex.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Predis allows to set Lua scripts as read-only operations for replication.\n// This works for both EVAL and EVALSHA and also for the client-side abstraction\n// built upon them (Predis\\Command\\ScriptCommand). This example shows a slightly\n// more complex configuration that injects a new script command in the server\n// profile used by the new client instance and marks it marks it as a read-only\n// operation for replication so that it will be executed on slaves.\n\nuse Predis\\Command\\ScriptCommand;\nuse Predis\\Connection\\Aggregate\\MasterSlaveReplication;\nuse Predis\\Replication\\ReplicationStrategy;\n\n// ------------------------------------------------------------------------- //\n\n// Define a new script command that returns all the fields of a variable number\n// of hashes with a single roundtrip.\n\nclass HashMultipleGetAll extends ScriptCommand\n{\n    const BODY = <<<LUA\nlocal hashes = {}\nfor _, key in pairs(KEYS) do\n    table.insert(hashes, key)\n    table.insert(hashes, redis.call('hgetall', key))\nend\nreturn hashes\nLUA;\n\n    public function getScript()\n    {\n        return self::BODY;\n    }\n}\n\n// ------------------------------------------------------------------------- //\n\n$parameters = array(\n    'tcp://127.0.0.1:6379/?alias=master',\n    'tcp://127.0.0.1:6380/?alias=slave',\n);\n\n$options = array(\n    'profile' => function ($options, $option) {\n        $profile = $options->getDefault($option);\n        $profile->defineCommand('hmgetall', 'HashMultipleGetAll');\n\n        return $profile;\n    },\n    'replication' => function () {\n        $strategy = new ReplicationStrategy();\n        $strategy->setScriptReadOnly(HashMultipleGetAll::BODY);\n\n        $replication = new MasterSlaveReplication($strategy);\n\n        return $replication;\n    },\n);\n\n// ------------------------------------------------------------------------- //\n\n$client = new Predis\\Client($parameters, $options);\n\n// Execute the following commands on the master server using redis-cli:\n// $ ./redis-cli HMSET metavars foo bar hoge piyo\n// $ ./redis-cli HMSET servers master host1 slave host2\n\n$hashes = $client->hmgetall('metavars', 'servers');\n\n$replication = $client->getConnection();\n$stillOnSlave = $replication->getCurrent() === $replication->getConnectionById('slave');\n\necho 'Is still on slave? ', $stillOnSlave ? 'YES!' : 'NO!', PHP_EOL;\nvar_export($hashes);\n"
  },
  {
    "path": "vendor/predis/predis/examples/replication_sentinel.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Predis supports redis-sentinel to provide high availability in master / slave\n// scenarios. The only but relevant difference with a basic replication scenario\n// is that sentinel servers can manage the master server and its slaves based on\n// their state, which means that they are able to provide an authoritative and\n// updated configuration to clients thus avoiding static configurations for the\n// replication servers and their roles.\n\n// Instead of connection parameters pointing to redis nodes, we provide a list\n// of instances of redis-sentinel. Users should always provide a timeout value\n// low enough to not hinder operations just in case a sentinel is unreachable\n// but Predis uses a default value of 100 milliseconds for sentinel parameters\n// without an explicit timeout value.\n//\n// NOTE: in real-world scenarios sentinels should be running on different hosts!\n$sentinels = array(\n    'tcp://127.0.0.1:5380?timeout=0.100',\n    'tcp://127.0.0.1:5381?timeout=0.100',\n    'tcp://127.0.0.1:5382?timeout=0.100',\n);\n\n$client = new Predis\\Client($sentinels, array(\n    'replication' => 'sentinel',\n    'service' => 'mymaster',\n));\n\n// Read operation.\n$exists = $client->exists('foo') ? 'yes' : 'no';\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"Does 'foo' exist on {$current->alias}? $exists.\", PHP_EOL;\n\n// Write operation.\n$client->set('foo', 'bar');\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"Now 'foo' has been set to 'bar' on {$current->alias}!\", PHP_EOL;\n\n// Read operation.\n$bar = $client->get('foo');\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"We fetched 'foo' from {$current->alias} and its value is '$bar'.\", PHP_EOL;\n\n/* OUTPUT:\nDoes 'foo' exist on slave-127.0.0.1:6381? yes.\nNow 'foo' has been set to 'bar' on master!\nWe fetched 'foo' from master and its value is 'bar'.\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/replication_simple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// Predis supports master / slave replication scenarios where write operations\n// are performed on the master server and read operations are executed against\n// one of the slaves. The behavior of commands or EVAL scripts can be customized\n// at will. As soon as a write operation is performed the client switches to the\n// master server for all the subsequent requests (either reads and writes).\n//\n// This example must be executed using the second Redis server configured as the\n// slave of the first one (see the \"SLAVEOF\" command).\n//\n\n$parameters = array(\n    'tcp://127.0.0.1:6379?database=15&alias=master',\n    'tcp://127.0.0.1:6380?database=15&alias=slave',\n);\n\n$options = array('replication' => true);\n\n$client = new Predis\\Client($parameters, $options);\n\n// Read operation.\n$exists = $client->exists('foo') ? 'yes' : 'no';\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"Does 'foo' exist on {$current->alias}? $exists.\", PHP_EOL;\n\n// Write operation.\n$client->set('foo', 'bar');\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"Now 'foo' has been set to 'bar' on {$current->alias}!\", PHP_EOL;\n\n// Read operation.\n$bar = $client->get('foo');\n$current = $client->getConnection()->getCurrent()->getParameters();\necho \"We fetched 'foo' from {$current->alias} and its value is '$bar'.\", PHP_EOL;\n\n/* OUTPUT:\nDoes 'foo' exist on slave? yes.\nNow 'foo' has been set to 'bar' on master!\nWe fetched 'foo' from master and its value is 'bar'.\n*/\n"
  },
  {
    "path": "vendor/predis/predis/examples/session_handler.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This example demonstrates how to use Predis to save PHP sessions on Redis.\n//\n// The value of `session.gc_maxlifetime` in `php.ini` will be used by default as\n// the TTL for keys holding session data but this value can be overridden when\n// creating the session handler instance using the `gc_maxlifetime` option.\n//\n// NOTE: this class requires PHP >= 5.4 but can be used on PHP 5.3 if a polyfill\n// for SessionHandlerInterface is provided either by you or an external package\n// like `symfony/http-foundation`.\n//\n// See http://www.php.net/class.sessionhandlerinterface.php for more details.\n//\n\nif (!interface_exists('SessionHandlerInterface')) {\n    die('ATTENTION: the session handler implemented by Predis requires PHP >= 5.4.0 '.\n        \"or a polyfill for SessionHandlerInterface provided by an external package.\\n\");\n}\n\n// Instantiate a new client just like you would normally do. Using a prefix for\n// keys will effectively prefix all session keys with the specified string.\n$client = new Predis\\Client($single_server, array('prefix' => 'sessions:'));\n\n// Set `gc_maxlifetime` to specify a time-to-live of 5 seconds for session keys.\n$handler = new Predis\\Session\\Handler($client, array('gc_maxlifetime' => 5));\n\n// Register the session handler.\n$handler->register();\n\n// We just set a fixed session ID only for the sake of our example.\nsession_id('example_session_id');\n\nsession_start();\n\nif (isset($_SESSION['foo'])) {\n    echo \"Session has `foo` set to {$_SESSION['foo']}\", PHP_EOL;\n} else {\n    $_SESSION['foo'] = $value = mt_rand();\n    echo \"Empty session, `foo` has been set with $value\", PHP_EOL;\n}\n"
  },
  {
    "path": "vendor/predis/predis/examples/shared.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/../autoload.php';\n\nfunction redis_version($info)\n{\n    if (isset($info['Server']['redis_version'])) {\n        return $info['Server']['redis_version'];\n    } elseif (isset($info['redis_version'])) {\n        return $info['redis_version'];\n    } else {\n        return 'unknown version';\n    }\n}\n\n$single_server = array(\n    'host' => '127.0.0.1',\n    'port' => 6379,\n    'database' => 15,\n);\n\n$multiple_servers = array(\n    array(\n       'host' => '127.0.0.1',\n       'port' => 6379,\n       'database' => 15,\n       'alias' => 'first',\n    ),\n    array(\n       'host' => '127.0.0.1',\n       'port' => 6380,\n       'database' => 15,\n       'alias' => 'second',\n    ),\n);\n"
  },
  {
    "path": "vendor/predis/predis/examples/transaction_using_cas.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nrequire __DIR__.'/shared.php';\n\n// This is an implementation of an atomic client-side ZPOP using the support for\n// check-and-set (CAS) operations with MULTI/EXEC transactions, as described in\n// \"WATCH explained\" from http://redis.io/topics/transactions\n//\n// First, populate your database with a tiny sample data set:\n//\n// ./redis-cli\n// SELECT 15\n// ZADD zset 1 a 2 b 3 c\n//\n// Then execute this script four times and see its output.\n//\n\nfunction zpop($client, $key)\n{\n    $element = null;\n    $options = array(\n        'cas' => true,      // Initialize with support for CAS operations\n        'watch' => $key,    // Key that needs to be WATCHed to detect changes\n        'retry' => 3,       // Number of retries on aborted transactions, after\n                            // which the client bails out with an exception.\n    );\n\n    $client->transaction($options, function ($tx) use ($key, &$element) {\n        @list($element) = $tx->zrange($key, 0, 0);\n\n        if (isset($element)) {\n            $tx->multi();   // With CAS, MULTI *must* be explicitly invoked.\n            $tx->zrem($key, $element);\n        }\n    });\n\n    return $element;\n}\n\n$client = new Predis\\Client($single_server);\n$zpopped = zpop($client, 'zset');\n\necho isset($zpopped) ? \"ZPOPed $zpopped\" : 'Nothing to ZPOP!', PHP_EOL;\n"
  },
  {
    "path": "vendor/predis/predis/package.ini",
    "content": "; This file is meant to be used with Onion http://c9s.github.com/Onion/\n; For instructions on how to build a PEAR package of Predis please follow\n; the instructions at this URL:\n;\n; https://github.com/c9s/Onion#a-quick-tutorial-for-building-pear-package\n;\n\n[package]\nname        = \"Predis\"\ndesc        = \"Flexible and feature-complete Redis client for PHP and HHVM\"\nhomepage    = \"http://github.com/nrk/predis\"\nlicense     = \"MIT\"\nversion     = \"1.1.1\"\nstability   = \"stable\"\nchannel     = \"pear.nrk.io\"\n\nauthor      = \"Daniele Alessandri \\\"nrk\\\" <suppakilla@gmail.com>\"\n\n[require]\nphp = \">= 5.3.9\"\npearinstaller = \"1.4.1\"\n\n[roles]\n*.xml.dist = test\n*.md = doc\nLICENSE = doc\n\n[optional phpiredis]\nhint = \"Add support for faster protocol handling with phpiredis\"\nextensions[] = socket\nextensions[] = phpiredis\n\n[optional webdis]\nhint = \"Add support for Webdis\"\nextensions[] = curl\nextensions[] = phpiredis\n"
  },
  {
    "path": "vendor/predis/predis/src/Autoloader.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\n/**\n * Implements a lightweight PSR-0 compliant autoloader for Predis.\n *\n * @author Eric Naeseth <eric@thumbtack.com>\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Autoloader\n{\n    private $directory;\n    private $prefix;\n    private $prefixLength;\n\n    /**\n     * @param string $baseDirectory Base directory where the source files are located.\n     */\n    public function __construct($baseDirectory = __DIR__)\n    {\n        $this->directory = $baseDirectory;\n        $this->prefix = __NAMESPACE__.'\\\\';\n        $this->prefixLength = strlen($this->prefix);\n    }\n\n    /**\n     * Registers the autoloader class with the PHP SPL autoloader.\n     *\n     * @param bool $prepend Prepend the autoloader on the stack instead of appending it.\n     */\n    public static function register($prepend = false)\n    {\n        spl_autoload_register(array(new self(), 'autoload'), true, $prepend);\n    }\n\n    /**\n     * Loads a class from a file using its fully qualified name.\n     *\n     * @param string $className Fully qualified name of a class.\n     */\n    public function autoload($className)\n    {\n        if (0 === strpos($className, $this->prefix)) {\n            $parts = explode('\\\\', substr($className, $this->prefixLength));\n            $filepath = $this->directory.DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $parts).'.php';\n\n            if (is_file($filepath)) {\n                require $filepath;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Client.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\RawCommand;\nuse Predis\\Command\\ScriptCommand;\nuse Predis\\Configuration\\Options;\nuse Predis\\Configuration\\OptionsInterface;\nuse Predis\\Connection\\AggregateConnectionInterface;\nuse Predis\\Connection\\ConnectionInterface;\nuse Predis\\Connection\\ParametersInterface;\nuse Predis\\Monitor\\Consumer as MonitorConsumer;\nuse Predis\\Pipeline\\Pipeline;\nuse Predis\\PubSub\\Consumer as PubSubConsumer;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\ResponseInterface;\nuse Predis\\Response\\ServerException;\nuse Predis\\Transaction\\MultiExec as MultiExecTransaction;\n\n/**\n * Client class used for connecting and executing commands on Redis.\n *\n * This is the main high-level abstraction of Predis upon which various other\n * abstractions are built. Internally it aggregates various other classes each\n * one with its own responsibility and scope.\n *\n * {@inheritdoc}\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Client implements ClientInterface, \\IteratorAggregate\n{\n    const VERSION = '1.1.1';\n\n    protected $connection;\n    protected $options;\n    private $profile;\n\n    /**\n     * @param mixed $parameters Connection parameters for one or more servers.\n     * @param mixed $options    Options to configure some behaviours of the client.\n     */\n    public function __construct($parameters = null, $options = null)\n    {\n        $this->options = $this->createOptions($options ?: array());\n        $this->connection = $this->createConnection($parameters ?: array());\n        $this->profile = $this->options->profile;\n    }\n\n    /**\n     * Creates a new instance of Predis\\Configuration\\Options from different\n     * types of arguments or simply returns the passed argument if it is an\n     * instance of Predis\\Configuration\\OptionsInterface.\n     *\n     * @param mixed $options Client options.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return OptionsInterface\n     */\n    protected function createOptions($options)\n    {\n        if (is_array($options)) {\n            return new Options($options);\n        }\n\n        if ($options instanceof OptionsInterface) {\n            return $options;\n        }\n\n        throw new \\InvalidArgumentException('Invalid type for client options.');\n    }\n\n    /**\n     * Creates single or aggregate connections from different types of arguments\n     * (string, array) or returns the passed argument if it is an instance of a\n     * class implementing Predis\\Connection\\ConnectionInterface.\n     *\n     * Accepted types for connection parameters are:\n     *\n     *  - Instance of Predis\\Connection\\ConnectionInterface.\n     *  - Instance of Predis\\Connection\\ParametersInterface.\n     *  - Array\n     *  - String\n     *  - Callable\n     *\n     * @param mixed $parameters Connection parameters or connection instance.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return ConnectionInterface\n     */\n    protected function createConnection($parameters)\n    {\n        if ($parameters instanceof ConnectionInterface) {\n            return $parameters;\n        }\n\n        if ($parameters instanceof ParametersInterface || is_string($parameters)) {\n            return $this->options->connections->create($parameters);\n        }\n\n        if (is_array($parameters)) {\n            if (!isset($parameters[0])) {\n                return $this->options->connections->create($parameters);\n            }\n\n            $options = $this->options;\n\n            if ($options->defined('aggregate')) {\n                $initializer = $this->getConnectionInitializerWrapper($options->aggregate);\n                $connection = $initializer($parameters, $options);\n            } elseif ($options->defined('replication')) {\n                $replication = $options->replication;\n\n                if ($replication instanceof AggregateConnectionInterface) {\n                    $connection = $replication;\n                    $options->connections->aggregate($connection, $parameters);\n                } else {\n                    $initializer = $this->getConnectionInitializerWrapper($replication);\n                    $connection = $initializer($parameters, $options);\n                }\n            } else {\n                $connection = $options->cluster;\n                $options->connections->aggregate($connection, $parameters);\n            }\n\n            return $connection;\n        }\n\n        if (is_callable($parameters)) {\n            $initializer = $this->getConnectionInitializerWrapper($parameters);\n            $connection = $initializer($this->options);\n\n            return $connection;\n        }\n\n        throw new \\InvalidArgumentException('Invalid type for connection parameters.');\n    }\n\n    /**\n     * Wraps a callable to make sure that its returned value represents a valid\n     * connection type.\n     *\n     * @param mixed $callable\n     *\n     * @return \\Closure\n     */\n    protected function getConnectionInitializerWrapper($callable)\n    {\n        return function () use ($callable) {\n            $connection = call_user_func_array($callable, func_get_args());\n\n            if (!$connection instanceof ConnectionInterface) {\n                throw new \\UnexpectedValueException(\n                    'The callable connection initializer returned an invalid type.'\n                );\n            }\n\n            return $connection;\n        };\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getProfile()\n    {\n        return $this->profile;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getOptions()\n    {\n        return $this->options;\n    }\n\n    /**\n     * Creates a new client instance for the specified connection ID or alias,\n     * only when working with an aggregate connection (cluster, replication).\n     * The new client instances uses the same options of the original one.\n     *\n     * @param string $connectionID Identifier of a connection.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return Client\n     */\n    public function getClientFor($connectionID)\n    {\n        if (!$connection = $this->getConnectionById($connectionID)) {\n            throw new \\InvalidArgumentException(\"Invalid connection ID: $connectionID.\");\n        }\n\n        return new static($connection, $this->options);\n    }\n\n    /**\n     * Opens the underlying connection and connects to the server.\n     */\n    public function connect()\n    {\n        $this->connection->connect();\n    }\n\n    /**\n     * Closes the underlying connection and disconnects from the server.\n     */\n    public function disconnect()\n    {\n        $this->connection->disconnect();\n    }\n\n    /**\n     * Closes the underlying connection and disconnects from the server.\n     *\n     * This is the same as `Client::disconnect()` as it does not actually send\n     * the `QUIT` command to Redis, but simply closes the connection.\n     */\n    public function quit()\n    {\n        $this->disconnect();\n    }\n\n    /**\n     * Returns the current state of the underlying connection.\n     *\n     * @return bool\n     */\n    public function isConnected()\n    {\n        return $this->connection->isConnected();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Retrieves the specified connection from the aggregate connection when the\n     * client is in cluster or replication mode.\n     *\n     * @param string $connectionID Index or alias of the single connection.\n     *\n     * @throws NotSupportedException\n     *\n     * @return Connection\\NodeConnectionInterface\n     */\n    public function getConnectionById($connectionID)\n    {\n        if (!$this->connection instanceof AggregateConnectionInterface) {\n            throw new NotSupportedException(\n                'Retrieving connections by ID is supported only by aggregate connections.'\n            );\n        }\n\n        return $this->connection->getConnectionById($connectionID);\n    }\n\n    /**\n     * Executes a command without filtering its arguments, parsing the response,\n     * applying any prefix to keys or throwing exceptions on Redis errors even\n     * regardless of client options.\n     *\n     * It is possible to identify Redis error responses from normal responses\n     * using the second optional argument which is populated by reference.\n     *\n     * @param array $arguments Command arguments as defined by the command signature.\n     * @param bool  $error     Set to TRUE when Redis returned an error response.\n     *\n     * @return mixed\n     */\n    public function executeRaw(array $arguments, &$error = null)\n    {\n        $error = false;\n\n        $response = $this->connection->executeCommand(\n            new RawCommand($arguments)\n        );\n\n        if ($response instanceof ResponseInterface) {\n            if ($response instanceof ErrorResponseInterface) {\n                $error = true;\n            }\n\n            return (string) $response;\n        }\n\n        return $response;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __call($commandID, $arguments)\n    {\n        return $this->executeCommand(\n            $this->createCommand($commandID, $arguments)\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createCommand($commandID, $arguments = array())\n    {\n        return $this->profile->createCommand($commandID, $arguments);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $response = $this->connection->executeCommand($command);\n\n        if ($response instanceof ResponseInterface) {\n            if ($response instanceof ErrorResponseInterface) {\n                $response = $this->onErrorResponse($command, $response);\n            }\n\n            return $response;\n        }\n\n        return $command->parseResponse($response);\n    }\n\n    /**\n     * Handles -ERR responses returned by Redis.\n     *\n     * @param CommandInterface       $command  Redis command that generated the error.\n     * @param ErrorResponseInterface $response Instance of the error response.\n     *\n     * @throws ServerException\n     *\n     * @return mixed\n     */\n    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $response)\n    {\n        if ($command instanceof ScriptCommand && $response->getErrorType() === 'NOSCRIPT') {\n            $eval = $this->createCommand('EVAL');\n            $eval->setRawArguments($command->getEvalArguments());\n\n            $response = $this->executeCommand($eval);\n\n            if (!$response instanceof ResponseInterface) {\n                $response = $command->parseResponse($response);\n            }\n\n            return $response;\n        }\n\n        if ($this->options->exceptions) {\n            throw new ServerException($response->getMessage());\n        }\n\n        return $response;\n    }\n\n    /**\n     * Executes the specified initializer method on `$this` by adjusting the\n     * actual invokation depending on the arity (0, 1 or 2 arguments). This is\n     * simply an utility method to create Redis contexts instances since they\n     * follow a common initialization path.\n     *\n     * @param string $initializer Method name.\n     * @param array  $argv        Arguments for the method.\n     *\n     * @return mixed\n     */\n    private function sharedContextFactory($initializer, $argv = null)\n    {\n        switch (count($argv)) {\n            case 0:\n                return $this->$initializer();\n\n            case 1:\n                return is_array($argv[0])\n                    ? $this->$initializer($argv[0])\n                    : $this->$initializer(null, $argv[0]);\n\n            case 2:\n                list($arg0, $arg1) = $argv;\n\n                return $this->$initializer($arg0, $arg1);\n\n            default:\n                return $this->$initializer($this, $argv);\n        }\n    }\n\n    /**\n     * Creates a new pipeline context and returns it, or returns the results of\n     * a pipeline executed inside the optionally provided callable object.\n     *\n     * @param mixed ... Array of options, a callable for execution, or both.\n     *\n     * @return Pipeline|array\n     */\n    public function pipeline(/* arguments */)\n    {\n        return $this->sharedContextFactory('createPipeline', func_get_args());\n    }\n\n    /**\n     * Actual pipeline context initializer method.\n     *\n     * @param array $options  Options for the context.\n     * @param mixed $callable Optional callable used to execute the context.\n     *\n     * @return Pipeline|array\n     */\n    protected function createPipeline(array $options = null, $callable = null)\n    {\n        if (isset($options['atomic']) && $options['atomic']) {\n            $class = 'Predis\\Pipeline\\Atomic';\n        } elseif (isset($options['fire-and-forget']) && $options['fire-and-forget']) {\n            $class = 'Predis\\Pipeline\\FireAndForget';\n        } else {\n            $class = 'Predis\\Pipeline\\Pipeline';\n        }\n\n        /*\n         * @var ClientContextInterface\n         */\n        $pipeline = new $class($this);\n\n        if (isset($callable)) {\n            return $pipeline->execute($callable);\n        }\n\n        return $pipeline;\n    }\n\n    /**\n     * Creates a new transaction context and returns it, or returns the results\n     * of a transaction executed inside the optionally provided callable object.\n     *\n     * @param mixed ... Array of options, a callable for execution, or both.\n     *\n     * @return MultiExecTransaction|array\n     */\n    public function transaction(/* arguments */)\n    {\n        return $this->sharedContextFactory('createTransaction', func_get_args());\n    }\n\n    /**\n     * Actual transaction context initializer method.\n     *\n     * @param array $options  Options for the context.\n     * @param mixed $callable Optional callable used to execute the context.\n     *\n     * @return MultiExecTransaction|array\n     */\n    protected function createTransaction(array $options = null, $callable = null)\n    {\n        $transaction = new MultiExecTransaction($this, $options);\n\n        if (isset($callable)) {\n            return $transaction->execute($callable);\n        }\n\n        return $transaction;\n    }\n\n    /**\n     * Creates a new publish/subscribe context and returns it, or starts its loop\n     * inside the optionally provided callable object.\n     *\n     * @param mixed ... Array of options, a callable for execution, or both.\n     *\n     * @return PubSubConsumer|null\n     */\n    public function pubSubLoop(/* arguments */)\n    {\n        return $this->sharedContextFactory('createPubSub', func_get_args());\n    }\n\n    /**\n     * Actual publish/subscribe context initializer method.\n     *\n     * @param array $options  Options for the context.\n     * @param mixed $callable Optional callable used to execute the context.\n     *\n     * @return PubSubConsumer|null\n     */\n    protected function createPubSub(array $options = null, $callable = null)\n    {\n        $pubsub = new PubSubConsumer($this, $options);\n\n        if (!isset($callable)) {\n            return $pubsub;\n        }\n\n        foreach ($pubsub as $message) {\n            if (call_user_func($callable, $pubsub, $message) === false) {\n                $pubsub->stop();\n            }\n        }\n    }\n\n    /**\n     * Creates a new monitor consumer and returns it.\n     *\n     * @return MonitorConsumer\n     */\n    public function monitor()\n    {\n        return new MonitorConsumer($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        $clients = array();\n        $connection = $this->getConnection();\n\n        if (!$connection instanceof \\Traversable) {\n            throw new ClientException('The underlying connection is not traversable');\n        }\n\n        foreach ($connection as $node) {\n            $clients[(string) $node] = new static($node, $this->getOptions());\n        }\n\n        return new \\ArrayIterator($clients);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/ClientContextInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Interface defining a client-side context such as a pipeline or transaction.\n *\n * @method $this del(array $keys)\n * @method $this dump($key)\n * @method $this exists($key)\n * @method $this expire($key, $seconds)\n * @method $this expireat($key, $timestamp)\n * @method $this keys($pattern)\n * @method $this move($key, $db)\n * @method $this object($subcommand, $key)\n * @method $this persist($key)\n * @method $this pexpire($key, $milliseconds)\n * @method $this pexpireat($key, $timestamp)\n * @method $this pttl($key)\n * @method $this randomkey()\n * @method $this rename($key, $target)\n * @method $this renamenx($key, $target)\n * @method $this scan($cursor, array $options = null)\n * @method $this sort($key, array $options = null)\n * @method $this ttl($key)\n * @method $this type($key)\n * @method $this append($key, $value)\n * @method $this bitcount($key, $start = null, $end = null)\n * @method $this bitop($operation, $destkey, $key)\n * @method $this bitfield($key, $subcommand, ...$subcommandArg)\n * @method $this decr($key)\n * @method $this decrby($key, $decrement)\n * @method $this get($key)\n * @method $this getbit($key, $offset)\n * @method $this getrange($key, $start, $end)\n * @method $this getset($key, $value)\n * @method $this incr($key)\n * @method $this incrby($key, $increment)\n * @method $this incrbyfloat($key, $increment)\n * @method $this mget(array $keys)\n * @method $this mset(array $dictionary)\n * @method $this msetnx(array $dictionary)\n * @method $this psetex($key, $milliseconds, $value)\n * @method $this set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null)\n * @method $this setbit($key, $offset, $value)\n * @method $this setex($key, $seconds, $value)\n * @method $this setnx($key, $value)\n * @method $this setrange($key, $offset, $value)\n * @method $this strlen($key)\n * @method $this hdel($key, array $fields)\n * @method $this hexists($key, $field)\n * @method $this hget($key, $field)\n * @method $this hgetall($key)\n * @method $this hincrby($key, $field, $increment)\n * @method $this hincrbyfloat($key, $field, $increment)\n * @method $this hkeys($key)\n * @method $this hlen($key)\n * @method $this hmget($key, array $fields)\n * @method $this hmset($key, array $dictionary)\n * @method $this hscan($key, $cursor, array $options = null)\n * @method $this hset($key, $field, $value)\n * @method $this hsetnx($key, $field, $value)\n * @method $this hvals($key)\n * @method $this hstrlen($key, $field)\n * @method $this blpop(array $keys, $timeout)\n * @method $this brpop(array $keys, $timeout)\n * @method $this brpoplpush($source, $destination, $timeout)\n * @method $this lindex($key, $index)\n * @method $this linsert($key, $whence, $pivot, $value)\n * @method $this llen($key)\n * @method $this lpop($key)\n * @method $this lpush($key, array $values)\n * @method $this lpushx($key, $value)\n * @method $this lrange($key, $start, $stop)\n * @method $this lrem($key, $count, $value)\n * @method $this lset($key, $index, $value)\n * @method $this ltrim($key, $start, $stop)\n * @method $this rpop($key)\n * @method $this rpoplpush($source, $destination)\n * @method $this rpush($key, array $values)\n * @method $this rpushx($key, $value)\n * @method $this sadd($key, array $members)\n * @method $this scard($key)\n * @method $this sdiff(array $keys)\n * @method $this sdiffstore($destination, array $keys)\n * @method $this sinter(array $keys)\n * @method $this sinterstore($destination, array $keys)\n * @method $this sismember($key, $member)\n * @method $this smembers($key)\n * @method $this smove($source, $destination, $member)\n * @method $this spop($key, $count = null)\n * @method $this srandmember($key, $count = null)\n * @method $this srem($key, $member)\n * @method $this sscan($key, $cursor, array $options = null)\n * @method $this sunion(array $keys)\n * @method $this sunionstore($destination, array $keys)\n * @method $this zadd($key, array $membersAndScoresDictionary)\n * @method $this zcard($key)\n * @method $this zcount($key, $min, $max)\n * @method $this zincrby($key, $increment, $member)\n * @method $this zinterstore($destination, array $keys, array $options = null)\n * @method $this zrange($key, $start, $stop, array $options = null)\n * @method $this zrangebyscore($key, $min, $max, array $options = null)\n * @method $this zrank($key, $member)\n * @method $this zrem($key, $member)\n * @method $this zremrangebyrank($key, $start, $stop)\n * @method $this zremrangebyscore($key, $min, $max)\n * @method $this zrevrange($key, $start, $stop, array $options = null)\n * @method $this zrevrangebyscore($key, $min, $max, array $options = null)\n * @method $this zrevrank($key, $member)\n * @method $this zunionstore($destination, array $keys, array $options = null)\n * @method $this zscore($key, $member)\n * @method $this zscan($key, $cursor, array $options = null)\n * @method $this zrangebylex($key, $start, $stop, array $options = null)\n * @method $this zrevrangebylex($key, $start, $stop, array $options = null)\n * @method $this zremrangebylex($key, $min, $max)\n * @method $this zlexcount($key, $min, $max)\n * @method $this pfadd($key, array $elements)\n * @method $this pfmerge($destinationKey, array $sourceKeys)\n * @method $this pfcount(array $keys)\n * @method $this pubsub($subcommand, $argument)\n * @method $this publish($channel, $message)\n * @method $this discard()\n * @method $this exec()\n * @method $this multi()\n * @method $this unwatch()\n * @method $this watch($key)\n * @method $this eval($script, $numkeys, $keyOrArg1 = null, $keyOrArgN = null)\n * @method $this evalsha($script, $numkeys, $keyOrArg1 = null, $keyOrArgN = null)\n * @method $this script($subcommand, $argument = null)\n * @method $this auth($password)\n * @method $this echo($message)\n * @method $this ping($message = null)\n * @method $this select($database)\n * @method $this bgrewriteaof()\n * @method $this bgsave()\n * @method $this client($subcommand, $argument = null)\n * @method $this config($subcommand, $argument = null)\n * @method $this dbsize()\n * @method $this flushall()\n * @method $this flushdb()\n * @method $this info($section = null)\n * @method $this lastsave()\n * @method $this save()\n * @method $this slaveof($host, $port)\n * @method $this slowlog($subcommand, $argument = null)\n * @method $this time()\n * @method $this command()\n * @method $this geoadd($key, $longitude, $latitude, $member)\n * @method $this geohash($key, array $members)\n * @method $this geopos($key, array $members)\n * @method $this geodist($key, $member1, $member2, $unit = null)\n * @method $this georadius($key, $longitude, $latitude, $radius, $unit, array $options = null)\n * @method $this georadiusbymember($key, $member, $radius, $unit, array $options = null)\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ClientContextInterface\n{\n    /**\n     * Sends the specified command instance to Redis.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return mixed\n     */\n    public function executeCommand(CommandInterface $command);\n\n    /**\n     * Sends the specified command with its arguments to Redis.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return mixed\n     */\n    public function __call($method, $arguments);\n\n    /**\n     * Starts the execution of the context.\n     *\n     * @param mixed $callable Optional callback for execution.\n     *\n     * @return array\n     */\n    public function execute($callable = null);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/ClientException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\n/**\n * Exception class that identifies client-side errors.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ClientException extends PredisException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/ClientInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Configuration\\OptionsInterface;\nuse Predis\\Connection\\ConnectionInterface;\nuse Predis\\Profile\\ProfileInterface;\n\n/**\n * Interface defining a client able to execute commands against Redis.\n *\n * All the commands exposed by the client generally have the same signature as\n * described by the Redis documentation, but some of them offer an additional\n * and more friendly interface to ease programming which is described in the\n * following list of methods:\n *\n * @method int    del(array $keys)\n * @method string dump($key)\n * @method int    exists($key)\n * @method int    expire($key, $seconds)\n * @method int    expireat($key, $timestamp)\n * @method array  keys($pattern)\n * @method int    move($key, $db)\n * @method mixed  object($subcommand, $key)\n * @method int    persist($key)\n * @method int    pexpire($key, $milliseconds)\n * @method int    pexpireat($key, $timestamp)\n * @method int    pttl($key)\n * @method string randomkey()\n * @method mixed  rename($key, $target)\n * @method int    renamenx($key, $target)\n * @method array  scan($cursor, array $options = null)\n * @method array  sort($key, array $options = null)\n * @method int    ttl($key)\n * @method mixed  type($key)\n * @method int    append($key, $value)\n * @method int    bitcount($key, $start = null, $end = null)\n * @method int    bitop($operation, $destkey, $key)\n * @method array  bitfield($key, $subcommand, ...$subcommandArg)\n * @method int    decr($key)\n * @method int    decrby($key, $decrement)\n * @method string get($key)\n * @method int    getbit($key, $offset)\n * @method string getrange($key, $start, $end)\n * @method string getset($key, $value)\n * @method int    incr($key)\n * @method int    incrby($key, $increment)\n * @method string incrbyfloat($key, $increment)\n * @method array  mget(array $keys)\n * @method mixed  mset(array $dictionary)\n * @method int    msetnx(array $dictionary)\n * @method mixed  psetex($key, $milliseconds, $value)\n * @method mixed  set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null)\n * @method int    setbit($key, $offset, $value)\n * @method int    setex($key, $seconds, $value)\n * @method int    setnx($key, $value)\n * @method int    setrange($key, $offset, $value)\n * @method int    strlen($key)\n * @method int    hdel($key, array $fields)\n * @method int    hexists($key, $field)\n * @method string hget($key, $field)\n * @method array  hgetall($key)\n * @method int    hincrby($key, $field, $increment)\n * @method string hincrbyfloat($key, $field, $increment)\n * @method array  hkeys($key)\n * @method int    hlen($key)\n * @method array  hmget($key, array $fields)\n * @method mixed  hmset($key, array $dictionary)\n * @method array  hscan($key, $cursor, array $options = null)\n * @method int    hset($key, $field, $value)\n * @method int    hsetnx($key, $field, $value)\n * @method array  hvals($key)\n * @method int    hstrlen($key, $field)\n * @method array  blpop(array $keys, $timeout)\n * @method array  brpop(array $keys, $timeout)\n * @method array  brpoplpush($source, $destination, $timeout)\n * @method string lindex($key, $index)\n * @method int    linsert($key, $whence, $pivot, $value)\n * @method int    llen($key)\n * @method string lpop($key)\n * @method int    lpush($key, array $values)\n * @method int    lpushx($key, $value)\n * @method array  lrange($key, $start, $stop)\n * @method int    lrem($key, $count, $value)\n * @method mixed  lset($key, $index, $value)\n * @method mixed  ltrim($key, $start, $stop)\n * @method string rpop($key)\n * @method string rpoplpush($source, $destination)\n * @method int    rpush($key, array $values)\n * @method int    rpushx($key, $value)\n * @method int    sadd($key, array $members)\n * @method int    scard($key)\n * @method array  sdiff(array $keys)\n * @method int    sdiffstore($destination, array $keys)\n * @method array  sinter(array $keys)\n * @method int    sinterstore($destination, array $keys)\n * @method int    sismember($key, $member)\n * @method array  smembers($key)\n * @method int    smove($source, $destination, $member)\n * @method string spop($key, $count = null)\n * @method string srandmember($key, $count = null)\n * @method int    srem($key, $member)\n * @method array  sscan($key, $cursor, array $options = null)\n * @method array  sunion(array $keys)\n * @method int    sunionstore($destination, array $keys)\n * @method int    zadd($key, array $membersAndScoresDictionary)\n * @method int    zcard($key)\n * @method string zcount($key, $min, $max)\n * @method string zincrby($key, $increment, $member)\n * @method int    zinterstore($destination, array $keys, array $options = null)\n * @method array  zrange($key, $start, $stop, array $options = null)\n * @method array  zrangebyscore($key, $min, $max, array $options = null)\n * @method int    zrank($key, $member)\n * @method int    zrem($key, $member)\n * @method int    zremrangebyrank($key, $start, $stop)\n * @method int    zremrangebyscore($key, $min, $max)\n * @method array  zrevrange($key, $start, $stop, array $options = null)\n * @method array  zrevrangebyscore($key, $max, $min, array $options = null)\n * @method int    zrevrank($key, $member)\n * @method int    zunionstore($destination, array $keys, array $options = null)\n * @method string zscore($key, $member)\n * @method array  zscan($key, $cursor, array $options = null)\n * @method array  zrangebylex($key, $start, $stop, array $options = null)\n * @method array  zrevrangebylex($key, $start, $stop, array $options = null)\n * @method int    zremrangebylex($key, $min, $max)\n * @method int    zlexcount($key, $min, $max)\n * @method int    pfadd($key, array $elements)\n * @method mixed  pfmerge($destinationKey, array $sourceKeys)\n * @method int    pfcount(array $keys)\n * @method mixed  pubsub($subcommand, $argument)\n * @method int    publish($channel, $message)\n * @method mixed  discard()\n * @method array  exec()\n * @method mixed  multi()\n * @method mixed  unwatch()\n * @method mixed  watch($key)\n * @method mixed  eval($script, $numkeys, $keyOrArg1 = null, $keyOrArgN = null)\n * @method mixed  evalsha($script, $numkeys, $keyOrArg1 = null, $keyOrArgN = null)\n * @method mixed  script($subcommand, $argument = null)\n * @method mixed  auth($password)\n * @method string echo($message)\n * @method mixed  ping($message = null)\n * @method mixed  select($database)\n * @method mixed  bgrewriteaof()\n * @method mixed  bgsave()\n * @method mixed  client($subcommand, $argument = null)\n * @method mixed  config($subcommand, $argument = null)\n * @method int    dbsize()\n * @method mixed  flushall()\n * @method mixed  flushdb()\n * @method array  info($section = null)\n * @method int    lastsave()\n * @method mixed  save()\n * @method mixed  slaveof($host, $port)\n * @method mixed  slowlog($subcommand, $argument = null)\n * @method array  time()\n * @method array  command()\n * @method int    geoadd($key, $longitude, $latitude, $member)\n * @method array  geohash($key, array $members)\n * @method array  geopos($key, array $members)\n * @method string geodist($key, $member1, $member2, $unit = null)\n * @method array  georadius($key, $longitude, $latitude, $radius, $unit, array $options = null)\n * @method array  georadiusbymember($key, $member, $radius, $unit, array $options = null)\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ClientInterface\n{\n    /**\n     * Returns the server profile used by the client.\n     *\n     * @return ProfileInterface\n     */\n    public function getProfile();\n\n    /**\n     * Returns the client options specified upon initialization.\n     *\n     * @return OptionsInterface\n     */\n    public function getOptions();\n\n    /**\n     * Opens the underlying connection to the server.\n     */\n    public function connect();\n\n    /**\n     * Closes the underlying connection from the server.\n     */\n    public function disconnect();\n\n    /**\n     * Returns the underlying connection instance.\n     *\n     * @return ConnectionInterface\n     */\n    public function getConnection();\n\n    /**\n     * Creates a new instance of the specified Redis command.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return CommandInterface\n     */\n    public function createCommand($method, $arguments = array());\n\n    /**\n     * Executes the specified Redis command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return mixed\n     */\n    public function executeCommand(CommandInterface $command);\n\n    /**\n     * Creates a Redis command with the specified arguments and sends a request\n     * to the server.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return mixed\n     */\n    public function __call($method, $arguments);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/ClusterStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\ScriptCommand;\n\n/**\n * Common class implementing the logic needed to support clustering strategies.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class ClusterStrategy implements StrategyInterface\n{\n    protected $commands;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->commands = $this->getDefaultCommands();\n    }\n\n    /**\n     * Returns the default map of supported commands with their handlers.\n     *\n     * @return array\n     */\n    protected function getDefaultCommands()\n    {\n        $getKeyFromFirstArgument = array($this, 'getKeyFromFirstArgument');\n        $getKeyFromAllArguments = array($this, 'getKeyFromAllArguments');\n\n        return array(\n            /* commands operating on the key space */\n            'EXISTS' => $getKeyFromAllArguments,\n            'DEL' => $getKeyFromAllArguments,\n            'TYPE' => $getKeyFromFirstArgument,\n            'EXPIRE' => $getKeyFromFirstArgument,\n            'EXPIREAT' => $getKeyFromFirstArgument,\n            'PERSIST' => $getKeyFromFirstArgument,\n            'PEXPIRE' => $getKeyFromFirstArgument,\n            'PEXPIREAT' => $getKeyFromFirstArgument,\n            'TTL' => $getKeyFromFirstArgument,\n            'PTTL' => $getKeyFromFirstArgument,\n            'SORT' => array($this, 'getKeyFromSortCommand'),\n            'DUMP' => $getKeyFromFirstArgument,\n            'RESTORE' => $getKeyFromFirstArgument,\n\n            /* commands operating on string values */\n            'APPEND' => $getKeyFromFirstArgument,\n            'DECR' => $getKeyFromFirstArgument,\n            'DECRBY' => $getKeyFromFirstArgument,\n            'GET' => $getKeyFromFirstArgument,\n            'GETBIT' => $getKeyFromFirstArgument,\n            'MGET' => $getKeyFromAllArguments,\n            'SET' => $getKeyFromFirstArgument,\n            'GETRANGE' => $getKeyFromFirstArgument,\n            'GETSET' => $getKeyFromFirstArgument,\n            'INCR' => $getKeyFromFirstArgument,\n            'INCRBY' => $getKeyFromFirstArgument,\n            'INCRBYFLOAT' => $getKeyFromFirstArgument,\n            'SETBIT' => $getKeyFromFirstArgument,\n            'SETEX' => $getKeyFromFirstArgument,\n            'MSET' => array($this, 'getKeyFromInterleavedArguments'),\n            'MSETNX' => array($this, 'getKeyFromInterleavedArguments'),\n            'SETNX' => $getKeyFromFirstArgument,\n            'SETRANGE' => $getKeyFromFirstArgument,\n            'STRLEN' => $getKeyFromFirstArgument,\n            'SUBSTR' => $getKeyFromFirstArgument,\n            'BITOP' => array($this, 'getKeyFromBitOp'),\n            'BITCOUNT' => $getKeyFromFirstArgument,\n            'BITFIELD' => $getKeyFromFirstArgument,\n\n            /* commands operating on lists */\n            'LINSERT' => $getKeyFromFirstArgument,\n            'LINDEX' => $getKeyFromFirstArgument,\n            'LLEN' => $getKeyFromFirstArgument,\n            'LPOP' => $getKeyFromFirstArgument,\n            'RPOP' => $getKeyFromFirstArgument,\n            'RPOPLPUSH' => $getKeyFromAllArguments,\n            'BLPOP' => array($this, 'getKeyFromBlockingListCommands'),\n            'BRPOP' => array($this, 'getKeyFromBlockingListCommands'),\n            'BRPOPLPUSH' => array($this, 'getKeyFromBlockingListCommands'),\n            'LPUSH' => $getKeyFromFirstArgument,\n            'LPUSHX' => $getKeyFromFirstArgument,\n            'RPUSH' => $getKeyFromFirstArgument,\n            'RPUSHX' => $getKeyFromFirstArgument,\n            'LRANGE' => $getKeyFromFirstArgument,\n            'LREM' => $getKeyFromFirstArgument,\n            'LSET' => $getKeyFromFirstArgument,\n            'LTRIM' => $getKeyFromFirstArgument,\n\n            /* commands operating on sets */\n            'SADD' => $getKeyFromFirstArgument,\n            'SCARD' => $getKeyFromFirstArgument,\n            'SDIFF' => $getKeyFromAllArguments,\n            'SDIFFSTORE' => $getKeyFromAllArguments,\n            'SINTER' => $getKeyFromAllArguments,\n            'SINTERSTORE' => $getKeyFromAllArguments,\n            'SUNION' => $getKeyFromAllArguments,\n            'SUNIONSTORE' => $getKeyFromAllArguments,\n            'SISMEMBER' => $getKeyFromFirstArgument,\n            'SMEMBERS' => $getKeyFromFirstArgument,\n            'SSCAN' => $getKeyFromFirstArgument,\n            'SPOP' => $getKeyFromFirstArgument,\n            'SRANDMEMBER' => $getKeyFromFirstArgument,\n            'SREM' => $getKeyFromFirstArgument,\n\n            /* commands operating on sorted sets */\n            'ZADD' => $getKeyFromFirstArgument,\n            'ZCARD' => $getKeyFromFirstArgument,\n            'ZCOUNT' => $getKeyFromFirstArgument,\n            'ZINCRBY' => $getKeyFromFirstArgument,\n            'ZINTERSTORE' => array($this, 'getKeyFromZsetAggregationCommands'),\n            'ZRANGE' => $getKeyFromFirstArgument,\n            'ZRANGEBYSCORE' => $getKeyFromFirstArgument,\n            'ZRANK' => $getKeyFromFirstArgument,\n            'ZREM' => $getKeyFromFirstArgument,\n            'ZREMRANGEBYRANK' => $getKeyFromFirstArgument,\n            'ZREMRANGEBYSCORE' => $getKeyFromFirstArgument,\n            'ZREVRANGE' => $getKeyFromFirstArgument,\n            'ZREVRANGEBYSCORE' => $getKeyFromFirstArgument,\n            'ZREVRANK' => $getKeyFromFirstArgument,\n            'ZSCORE' => $getKeyFromFirstArgument,\n            'ZUNIONSTORE' => array($this, 'getKeyFromZsetAggregationCommands'),\n            'ZSCAN' => $getKeyFromFirstArgument,\n            'ZLEXCOUNT' => $getKeyFromFirstArgument,\n            'ZRANGEBYLEX' => $getKeyFromFirstArgument,\n            'ZREMRANGEBYLEX' => $getKeyFromFirstArgument,\n            'ZREVRANGEBYLEX' => $getKeyFromFirstArgument,\n\n            /* commands operating on hashes */\n            'HDEL' => $getKeyFromFirstArgument,\n            'HEXISTS' => $getKeyFromFirstArgument,\n            'HGET' => $getKeyFromFirstArgument,\n            'HGETALL' => $getKeyFromFirstArgument,\n            'HMGET' => $getKeyFromFirstArgument,\n            'HMSET' => $getKeyFromFirstArgument,\n            'HINCRBY' => $getKeyFromFirstArgument,\n            'HINCRBYFLOAT' => $getKeyFromFirstArgument,\n            'HKEYS' => $getKeyFromFirstArgument,\n            'HLEN' => $getKeyFromFirstArgument,\n            'HSET' => $getKeyFromFirstArgument,\n            'HSETNX' => $getKeyFromFirstArgument,\n            'HVALS' => $getKeyFromFirstArgument,\n            'HSCAN' => $getKeyFromFirstArgument,\n            'HSTRLEN' => $getKeyFromFirstArgument,\n\n            /* commands operating on HyperLogLog */\n            'PFADD' => $getKeyFromFirstArgument,\n            'PFCOUNT' => $getKeyFromAllArguments,\n            'PFMERGE' => $getKeyFromAllArguments,\n\n            /* scripting */\n            'EVAL' => array($this, 'getKeyFromScriptingCommands'),\n            'EVALSHA' => array($this, 'getKeyFromScriptingCommands'),\n\n            /* commands performing geospatial operations */\n            'GEOADD' => $getKeyFromFirstArgument,\n            'GEOHASH' => $getKeyFromFirstArgument,\n            'GEOPOS' => $getKeyFromFirstArgument,\n            'GEODIST' => $getKeyFromFirstArgument,\n            'GEORADIUS' => array($this, 'getKeyFromGeoradiusCommands'),\n            'GEORADIUSBYMEMBER' => array($this, 'getKeyFromGeoradiusCommands'),\n        );\n    }\n\n    /**\n     * Returns the list of IDs for the supported commands.\n     *\n     * @return array\n     */\n    public function getSupportedCommands()\n    {\n        return array_keys($this->commands);\n    }\n\n    /**\n     * Sets an handler for the specified command ID.\n     *\n     * The signature of the callback must have a single parameter of type\n     * Predis\\Command\\CommandInterface.\n     *\n     * When the callback argument is omitted or NULL, the previously associated\n     * handler for the specified command ID is removed.\n     *\n     * @param string $commandID Command ID.\n     * @param mixed  $callback  A valid callable object, or NULL to unset the handler.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function setCommandHandler($commandID, $callback = null)\n    {\n        $commandID = strtoupper($commandID);\n\n        if (!isset($callback)) {\n            unset($this->commands[$commandID]);\n\n            return;\n        }\n\n        if (!is_callable($callback)) {\n            throw new \\InvalidArgumentException(\n                'The argument must be a callable object or NULL.'\n            );\n        }\n\n        $this->commands[$commandID] = $callback;\n    }\n\n    /**\n     * Extracts the key from the first argument of a command instance.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string\n     */\n    protected function getKeyFromFirstArgument(CommandInterface $command)\n    {\n        return $command->getArgument(0);\n    }\n\n    /**\n     * Extracts the key from a command with multiple keys only when all keys in\n     * the arguments array produce the same hash.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromAllArguments(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n\n        if ($this->checkSameSlotForKeys($arguments)) {\n            return $arguments[0];\n        }\n    }\n\n    /**\n     * Extracts the key from a command with multiple keys only when all keys in\n     * the arguments array produce the same hash.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromInterleavedArguments(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $keys = array();\n\n        for ($i = 0; $i < count($arguments); $i += 2) {\n            $keys[] = $arguments[$i];\n        }\n\n        if ($this->checkSameSlotForKeys($keys)) {\n            return $arguments[0];\n        }\n    }\n\n    /**\n     * Extracts the key from SORT command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromSortCommand(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $firstKey = $arguments[0];\n\n        if (1 === $argc = count($arguments)) {\n            return $firstKey;\n        }\n\n        $keys = array($firstKey);\n\n        for ($i = 1; $i < $argc; ++$i) {\n            if (strtoupper($arguments[$i]) === 'STORE') {\n                $keys[] = $arguments[++$i];\n            }\n        }\n\n        if ($this->checkSameSlotForKeys($keys)) {\n            return $firstKey;\n        }\n    }\n\n    /**\n     * Extracts the key from BLPOP and BRPOP commands.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromBlockingListCommands(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n\n        if ($this->checkSameSlotForKeys(array_slice($arguments, 0, count($arguments) - 1))) {\n            return $arguments[0];\n        }\n    }\n\n    /**\n     * Extracts the key from BITOP command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromBitOp(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n\n        if ($this->checkSameSlotForKeys(array_slice($arguments, 1, count($arguments)))) {\n            return $arguments[1];\n        }\n    }\n\n    /**\n     * Extracts the key from GEORADIUS and GEORADIUSBYMEMBER commands.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromGeoradiusCommands(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $argc = count($arguments);\n        $startIndex = $command->getId() === 'GEORADIUS' ? 5 : 4;\n\n        if ($argc > $startIndex) {\n            $keys = array($arguments[0]);\n\n            for ($i = $startIndex; $i < $argc; ++$i) {\n                $argument = strtoupper($arguments[$i]);\n                if ($argument === 'STORE' || $argument === 'STOREDIST') {\n                    $keys[] = $arguments[++$i];\n                }\n            }\n\n            if ($this->checkSameSlotForKeys($keys)) {\n                return $arguments[0];\n            } else {\n                return;\n            }\n        }\n\n        return $arguments[0];\n    }\n\n    /**\n     * Extracts the key from ZINTERSTORE and ZUNIONSTORE commands.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromZsetAggregationCommands(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $keys = array_merge(array($arguments[0]), array_slice($arguments, 2, $arguments[1]));\n\n        if ($this->checkSameSlotForKeys($keys)) {\n            return $arguments[0];\n        }\n    }\n\n    /**\n     * Extracts the key from EVAL and EVALSHA commands.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return string|null\n     */\n    protected function getKeyFromScriptingCommands(CommandInterface $command)\n    {\n        if ($command instanceof ScriptCommand) {\n            $keys = $command->getKeys();\n        } else {\n            $keys = array_slice($args = $command->getArguments(), 2, $args[1]);\n        }\n\n        if ($keys && $this->checkSameSlotForKeys($keys)) {\n            return $keys[0];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlot(CommandInterface $command)\n    {\n        $slot = $command->getSlot();\n\n        if (!isset($slot) && isset($this->commands[$cmdID = $command->getId()])) {\n            $key = call_user_func($this->commands[$cmdID], $command);\n\n            if (isset($key)) {\n                $slot = $this->getSlotByKey($key);\n                $command->setSlot($slot);\n            }\n        }\n\n        return $slot;\n    }\n\n    /**\n     * Checks if the specified array of keys will generate the same hash.\n     *\n     * @param array $keys Array of keys.\n     *\n     * @return bool\n     */\n    protected function checkSameSlotForKeys(array $keys)\n    {\n        if (!$count = count($keys)) {\n            return false;\n        }\n\n        $currentSlot = $this->getSlotByKey($keys[0]);\n\n        for ($i = 1; $i < $count; ++$i) {\n            $nextSlot = $this->getSlotByKey($keys[$i]);\n\n            if ($currentSlot !== $nextSlot) {\n                return false;\n            }\n\n            $currentSlot = $nextSlot;\n        }\n\n        return true;\n    }\n\n    /**\n     * Returns only the hashable part of a key (delimited by \"{...}\"), or the\n     * whole key if a key tag is not found in the string.\n     *\n     * @param string $key A key.\n     *\n     * @return string\n     */\n    protected function extractKeyTag($key)\n    {\n        if (false !== $start = strpos($key, '{')) {\n            if (false !== ($end = strpos($key, '}', $start)) && $end !== ++$start) {\n                $key = substr($key, $start, $end - $start);\n            }\n        }\n\n        return $key;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Distributor/DistributorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Distributor;\n\nuse Predis\\Cluster\\Hash\\HashGeneratorInterface;\n\n/**\n * A distributor implements the logic to automatically distribute keys among\n * several nodes for client-side sharding.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface DistributorInterface\n{\n    /**\n     * Adds a node to the distributor with an optional weight.\n     *\n     * @param mixed $node   Node object.\n     * @param int   $weight Weight for the node.\n     */\n    public function add($node, $weight = null);\n\n    /**\n     * Removes a node from the distributor.\n     *\n     * @param mixed $node Node object.\n     */\n    public function remove($node);\n\n    /**\n     * Returns the corresponding slot of a node from the distributor using the\n     * computed hash of a key.\n     *\n     * @param mixed $hash\n     *\n     * @return mixed\n     */\n    public function getSlot($hash);\n\n    /**\n     * Returns a node from the distributor using its assigned slot ID.\n     *\n     * @param mixed $slot\n     *\n     * @return mixed|null\n     */\n    public function getBySlot($slot);\n\n    /**\n     * Returns a node from the distributor using the computed hash of a key.\n     *\n     * @param mixed $hash\n     *\n     * @return mixed\n     */\n    public function getByHash($hash);\n\n    /**\n     * Returns a node from the distributor mapping to the specified value.\n     *\n     * @param string $value\n     *\n     * @return mixed\n     */\n    public function get($value);\n\n    /**\n     * Returns the underlying hash generator instance.\n     *\n     * @return HashGeneratorInterface\n     */\n    public function getHashGenerator();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Distributor/EmptyRingException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Distributor;\n\n/**\n * Exception class that identifies empty rings.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass EmptyRingException extends \\Exception\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Distributor/HashRing.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Distributor;\n\nuse Predis\\Cluster\\Hash\\HashGeneratorInterface;\n\n/**\n * This class implements an hashring-based distributor that uses the same\n * algorithm of memcache to distribute keys in a cluster using client-side\n * sharding.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n * @author Lorenzo Castelli <lcastelli@gmail.com>\n */\nclass HashRing implements DistributorInterface, HashGeneratorInterface\n{\n    const DEFAULT_REPLICAS = 128;\n    const DEFAULT_WEIGHT = 100;\n\n    private $ring;\n    private $ringKeys;\n    private $ringKeysCount;\n    private $replicas;\n    private $nodeHashCallback;\n    private $nodes = array();\n\n    /**\n     * @param int   $replicas         Number of replicas in the ring.\n     * @param mixed $nodeHashCallback Callback returning a string used to calculate the hash of nodes.\n     */\n    public function __construct($replicas = self::DEFAULT_REPLICAS, $nodeHashCallback = null)\n    {\n        $this->replicas = $replicas;\n        $this->nodeHashCallback = $nodeHashCallback;\n    }\n\n    /**\n     * Adds a node to the ring with an optional weight.\n     *\n     * @param mixed $node   Node object.\n     * @param int   $weight Weight for the node.\n     */\n    public function add($node, $weight = null)\n    {\n        // In case of collisions in the hashes of the nodes, the node added\n        // last wins, thus the order in which nodes are added is significant.\n        $this->nodes[] = array(\n            'object' => $node,\n            'weight' => (int) $weight ?: $this::DEFAULT_WEIGHT,\n        );\n\n        $this->reset();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove($node)\n    {\n        // A node is removed by resetting the ring so that it's recreated from\n        // scratch, in order to reassign possible hashes with collisions to the\n        // right node according to the order in which they were added in the\n        // first place.\n        for ($i = 0; $i < count($this->nodes); ++$i) {\n            if ($this->nodes[$i]['object'] === $node) {\n                array_splice($this->nodes, $i, 1);\n                $this->reset();\n\n                break;\n            }\n        }\n    }\n\n    /**\n     * Resets the distributor.\n     */\n    private function reset()\n    {\n        unset(\n            $this->ring,\n            $this->ringKeys,\n            $this->ringKeysCount\n        );\n    }\n\n    /**\n     * Returns the initialization status of the distributor.\n     *\n     * @return bool\n     */\n    private function isInitialized()\n    {\n        return isset($this->ringKeys);\n    }\n\n    /**\n     * Calculates the total weight of all the nodes in the distributor.\n     *\n     * @return int\n     */\n    private function computeTotalWeight()\n    {\n        $totalWeight = 0;\n\n        foreach ($this->nodes as $node) {\n            $totalWeight += $node['weight'];\n        }\n\n        return $totalWeight;\n    }\n\n    /**\n     * Initializes the distributor.\n     */\n    private function initialize()\n    {\n        if ($this->isInitialized()) {\n            return;\n        }\n\n        if (!$this->nodes) {\n            throw new EmptyRingException('Cannot initialize an empty hashring.');\n        }\n\n        $this->ring = array();\n        $totalWeight = $this->computeTotalWeight();\n        $nodesCount = count($this->nodes);\n\n        foreach ($this->nodes as $node) {\n            $weightRatio = $node['weight'] / $totalWeight;\n            $this->addNodeToRing($this->ring, $node, $nodesCount, $this->replicas, $weightRatio);\n        }\n\n        ksort($this->ring, SORT_NUMERIC);\n        $this->ringKeys = array_keys($this->ring);\n        $this->ringKeysCount = count($this->ringKeys);\n    }\n\n    /**\n     * Implements the logic needed to add a node to the hashring.\n     *\n     * @param array $ring        Source hashring.\n     * @param mixed $node        Node object to be added.\n     * @param int   $totalNodes  Total number of nodes.\n     * @param int   $replicas    Number of replicas in the ring.\n     * @param float $weightRatio Weight ratio for the node.\n     */\n    protected function addNodeToRing(&$ring, $node, $totalNodes, $replicas, $weightRatio)\n    {\n        $nodeObject = $node['object'];\n        $nodeHash = $this->getNodeHash($nodeObject);\n        $replicas = (int) round($weightRatio * $totalNodes * $replicas);\n\n        for ($i = 0; $i < $replicas; ++$i) {\n            $key = crc32(\"$nodeHash:$i\");\n            $ring[$key] = $nodeObject;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getNodeHash($nodeObject)\n    {\n        if (!isset($this->nodeHashCallback)) {\n            return (string) $nodeObject;\n        }\n\n        return call_user_func($this->nodeHashCallback, $nodeObject);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function hash($value)\n    {\n        return crc32($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getByHash($hash)\n    {\n        return $this->ring[$this->getSlot($hash)];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getBySlot($slot)\n    {\n        $this->initialize();\n\n        if (isset($this->ring[$slot])) {\n            return $this->ring[$slot];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlot($hash)\n    {\n        $this->initialize();\n\n        $ringKeys = $this->ringKeys;\n        $upper = $this->ringKeysCount - 1;\n        $lower = 0;\n\n        while ($lower <= $upper) {\n            $index = ($lower + $upper) >> 1;\n            $item = $ringKeys[$index];\n\n            if ($item > $hash) {\n                $upper = $index - 1;\n            } elseif ($item < $hash) {\n                $lower = $index + 1;\n            } else {\n                return $item;\n            }\n        }\n\n        return $ringKeys[$this->wrapAroundStrategy($upper, $lower, $this->ringKeysCount)];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function get($value)\n    {\n        $hash = $this->hash($value);\n        $node = $this->getByHash($hash);\n\n        return $node;\n    }\n\n    /**\n     * Implements a strategy to deal with wrap-around errors during binary searches.\n     *\n     * @param int $upper\n     * @param int $lower\n     * @param int $ringKeysCount\n     *\n     * @return int\n     */\n    protected function wrapAroundStrategy($upper, $lower, $ringKeysCount)\n    {\n        // Binary search for the last item in ringkeys with a value less or\n        // equal to the key. If no such item exists, return the last item.\n        return $upper >= 0 ? $upper : $ringKeysCount - 1;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getHashGenerator()\n    {\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Distributor/KetamaRing.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Distributor;\n\n/**\n * This class implements an hashring-based distributor that uses the same\n * algorithm of libketama to distribute keys in a cluster using client-side\n * sharding.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n * @author Lorenzo Castelli <lcastelli@gmail.com>\n */\nclass KetamaRing extends HashRing\n{\n    const DEFAULT_REPLICAS = 160;\n\n    /**\n     * @param mixed $nodeHashCallback Callback returning a string used to calculate the hash of nodes.\n     */\n    public function __construct($nodeHashCallback = null)\n    {\n        parent::__construct($this::DEFAULT_REPLICAS, $nodeHashCallback);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function addNodeToRing(&$ring, $node, $totalNodes, $replicas, $weightRatio)\n    {\n        $nodeObject = $node['object'];\n        $nodeHash = $this->getNodeHash($nodeObject);\n        $replicas = (int) floor($weightRatio * $totalNodes * ($replicas / 4));\n\n        for ($i = 0; $i < $replicas; ++$i) {\n            $unpackedDigest = unpack('V4', md5(\"$nodeHash-$i\", true));\n\n            foreach ($unpackedDigest as $key) {\n                $ring[$key] = $nodeObject;\n            }\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function hash($value)\n    {\n        $hash = unpack('V', md5($value, true));\n\n        return $hash[1];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function wrapAroundStrategy($upper, $lower, $ringKeysCount)\n    {\n        // Binary search for the first item in ringkeys with a value greater\n        // or equal to the key. If no such item exists, return the first item.\n        return $lower < $ringKeysCount ? $lower : 0;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Hash/CRC16.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Hash;\n\n/**\n * Hash generator implementing the CRC-CCITT-16 algorithm used by redis-cluster.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass CRC16 implements HashGeneratorInterface\n{\n    private static $CCITT_16 = array(\n        0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,\n        0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,\n        0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,\n        0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,\n        0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,\n        0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,\n        0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,\n        0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,\n        0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,\n        0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,\n        0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,\n        0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,\n        0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,\n        0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,\n        0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,\n        0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,\n        0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,\n        0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,\n        0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,\n        0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,\n        0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,\n        0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n        0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,\n        0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,\n        0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,\n        0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,\n        0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,\n        0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,\n        0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,\n        0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,\n        0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,\n        0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0,\n    );\n\n    /**\n     * {@inheritdoc}\n     */\n    public function hash($value)\n    {\n        // CRC-CCITT-16 algorithm\n        $crc = 0;\n        $CCITT_16 = self::$CCITT_16;\n        $strlen = strlen($value);\n\n        for ($i = 0; $i < $strlen; ++$i) {\n            $crc = (($crc << 8) ^ $CCITT_16[($crc >> 8) ^ ord($value[$i])]) & 0xFFFF;\n        }\n\n        return $crc;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/Hash/HashGeneratorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster\\Hash;\n\n/**\n * An hash generator implements the logic used to calculate the hash of a key to\n * distribute operations among Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface HashGeneratorInterface\n{\n    /**\n     * Generates an hash from a string to be used for distribution.\n     *\n     * @param string $value String value.\n     *\n     * @return int\n     */\n    public function hash($value);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/PredisStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster;\n\nuse Predis\\Cluster\\Distributor\\DistributorInterface;\nuse Predis\\Cluster\\Distributor\\HashRing;\n\n/**\n * Default cluster strategy used by Predis to handle client-side sharding.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PredisStrategy extends ClusterStrategy\n{\n    protected $distributor;\n\n    /**\n     * @param DistributorInterface $distributor Optional distributor instance.\n     */\n    public function __construct(DistributorInterface $distributor = null)\n    {\n        parent::__construct();\n\n        $this->distributor = $distributor ?: new HashRing();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlotByKey($key)\n    {\n        $key = $this->extractKeyTag($key);\n        $hash = $this->distributor->hash($key);\n        $slot = $this->distributor->getSlot($hash);\n\n        return $slot;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function checkSameSlotForKeys(array $keys)\n    {\n        if (!$count = count($keys)) {\n            return false;\n        }\n\n        $currentKey = $this->extractKeyTag($keys[0]);\n\n        for ($i = 1; $i < $count; ++$i) {\n            $nextKey = $this->extractKeyTag($keys[$i]);\n\n            if ($currentKey !== $nextKey) {\n                return false;\n            }\n\n            $currentKey = $nextKey;\n        }\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDistributor()\n    {\n        return $this->distributor;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/RedisStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster;\n\nuse Predis\\Cluster\\Hash\\CRC16;\nuse Predis\\Cluster\\Hash\\HashGeneratorInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Default class used by Predis to calculate hashes out of keys of\n * commands supported by redis-cluster.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisStrategy extends ClusterStrategy\n{\n    protected $hashGenerator;\n\n    /**\n     * @param HashGeneratorInterface $hashGenerator Hash generator instance.\n     */\n    public function __construct(HashGeneratorInterface $hashGenerator = null)\n    {\n        parent::__construct();\n\n        $this->hashGenerator = $hashGenerator ?: new CRC16();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlotByKey($key)\n    {\n        $key = $this->extractKeyTag($key);\n        $slot = $this->hashGenerator->hash($key) & 0x3FFF;\n\n        return $slot;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDistributor()\n    {\n        throw new NotSupportedException(\n            'This cluster strategy does not provide an external distributor'\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Cluster/StrategyInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Cluster;\n\nuse Predis\\Cluster\\Distributor\\DistributorInterface;\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Interface for classes defining the strategy used to calculate an hash out of\n * keys extracted from supported commands.\n *\n * This is mostly useful to support clustering via client-side sharding.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface StrategyInterface\n{\n    /**\n     * Returns a slot for the given command used for clustering distribution or\n     * NULL when this is not possible.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return int\n     */\n    public function getSlot(CommandInterface $command);\n\n    /**\n     * Returns a slot for the given key used for clustering distribution or NULL\n     * when this is not possible.\n     *\n     * @param string $key Key string.\n     *\n     * @return int\n     */\n    public function getSlotByKey($key);\n\n    /**\n     * Returns a distributor instance to be used by the cluster.\n     *\n     * @return DistributorInterface\n     */\n    public function getDistributor();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/CursorBasedIterator.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Provides the base implementation for a fully-rewindable PHP iterator that can\n * incrementally iterate over cursor-based collections stored on Redis using the\n * commands in the `SCAN` family.\n *\n * Given their incremental nature with multiple fetches, these kind of iterators\n * offer limited guarantees about the returned elements because the collection\n * can change several times during the iteration process.\n *\n * @see http://redis.io/commands/scan\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class CursorBasedIterator implements \\Iterator\n{\n    protected $client;\n    protected $match;\n    protected $count;\n\n    protected $valid;\n    protected $fetchmore;\n    protected $elements;\n    protected $cursor;\n    protected $position;\n    protected $current;\n\n    /**\n     * @param ClientInterface $client Client connected to Redis.\n     * @param string          $match  Pattern to match during the server-side iteration.\n     * @param int             $count  Hint used by Redis to compute the number of results per iteration.\n     */\n    public function __construct(ClientInterface $client, $match = null, $count = null)\n    {\n        $this->client = $client;\n        $this->match = $match;\n        $this->count = $count;\n\n        $this->reset();\n    }\n\n    /**\n     * Ensures that the client supports the specified Redis command required to\n     * fetch elements from the server to perform the iteration.\n     *\n     * @param ClientInterface $client    Client connected to Redis.\n     * @param string          $commandID Command ID.\n     *\n     * @throws NotSupportedException\n     */\n    protected function requiredCommand(ClientInterface $client, $commandID)\n    {\n        if (!$client->getProfile()->supportsCommand($commandID)) {\n            throw new NotSupportedException(\"The current profile does not support '$commandID'.\");\n        }\n    }\n\n    /**\n     * Resets the inner state of the iterator.\n     */\n    protected function reset()\n    {\n        $this->valid = true;\n        $this->fetchmore = true;\n        $this->elements = array();\n        $this->cursor = 0;\n        $this->position = -1;\n        $this->current = null;\n    }\n\n    /**\n     * Returns an array of options for the `SCAN` command.\n     *\n     * @return array\n     */\n    protected function getScanOptions()\n    {\n        $options = array();\n\n        if (strlen($this->match) > 0) {\n            $options['MATCH'] = $this->match;\n        }\n\n        if ($this->count > 0) {\n            $options['COUNT'] = $this->count;\n        }\n\n        return $options;\n    }\n\n    /**\n     * Fetches a new set of elements from the remote collection, effectively\n     * advancing the iteration process.\n     *\n     * @return array\n     */\n    abstract protected function executeCommand();\n\n    /**\n     * Populates the local buffer of elements fetched from the server during\n     * the iteration.\n     */\n    protected function fetch()\n    {\n        list($cursor, $elements) = $this->executeCommand();\n\n        if (!$cursor) {\n            $this->fetchmore = false;\n        }\n\n        $this->cursor = $cursor;\n        $this->elements = $elements;\n    }\n\n    /**\n     * Extracts next values for key() and current().\n     */\n    protected function extractNext()\n    {\n        ++$this->position;\n        $this->current = array_shift($this->elements);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rewind()\n    {\n        $this->reset();\n        $this->next();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function current()\n    {\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function key()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function next()\n    {\n        tryFetch: {\n            if (!$this->elements && $this->fetchmore) {\n                $this->fetch();\n            }\n\n            if ($this->elements) {\n                $this->extractNext();\n            } elseif ($this->cursor) {\n                goto tryFetch;\n            } else {\n                $this->valid = false;\n            }\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function valid()\n    {\n        return $this->valid;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/HashKey.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\n\n/**\n * Abstracts the iteration of fields and values of an hash by leveraging the\n * HSCAN command (Redis >= 2.8) wrapped in a fully-rewindable PHP iterator.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @link http://redis.io/commands/scan\n */\nclass HashKey extends CursorBasedIterator\n{\n    protected $key;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ClientInterface $client, $key, $match = null, $count = null)\n    {\n        $this->requiredCommand($client, 'HSCAN');\n\n        parent::__construct($client, $match, $count);\n\n        $this->key = $key;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeCommand()\n    {\n        return $this->client->hscan($this->key, $this->cursor, $this->getScanOptions());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function extractNext()\n    {\n        if ($kv = each($this->elements)) {\n            $this->position = $kv[0];\n            $this->current = $kv[1];\n\n            unset($this->elements[$this->position]);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/Keyspace.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\n\n/**\n * Abstracts the iteration of the keyspace on a Redis instance by leveraging the\n * SCAN command (Redis >= 2.8) wrapped in a fully-rewindable PHP iterator.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @link http://redis.io/commands/scan\n */\nclass Keyspace extends CursorBasedIterator\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ClientInterface $client, $match = null, $count = null)\n    {\n        $this->requiredCommand($client, 'SCAN');\n\n        parent::__construct($client, $match, $count);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeCommand()\n    {\n        return $this->client->scan($this->cursor, $this->getScanOptions());\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/ListKey.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Abstracts the iteration of items stored in a list by leveraging the LRANGE\n * command wrapped in a fully-rewindable PHP iterator.\n *\n * This iterator tries to emulate the behaviour of cursor-based iterators based\n * on the SCAN-family of commands introduced in Redis <= 2.8, meaning that due\n * to its incremental nature with multiple fetches it can only offer limited\n * guarantees on the returned elements because the collection can change several\n * times (trimmed, deleted, overwritten) during the iteration process.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @link http://redis.io/commands/lrange\n */\nclass ListKey implements \\Iterator\n{\n    protected $client;\n    protected $count;\n    protected $key;\n\n    protected $valid;\n    protected $fetchmore;\n    protected $elements;\n    protected $position;\n    protected $current;\n\n    /**\n     * @param ClientInterface $client Client connected to Redis.\n     * @param string          $key    Redis list key.\n     * @param int             $count  Number of items retrieved on each fetch operation.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct(ClientInterface $client, $key, $count = 10)\n    {\n        $this->requiredCommand($client, 'LRANGE');\n\n        if ((false === $count = filter_var($count, FILTER_VALIDATE_INT)) || $count < 0) {\n            throw new \\InvalidArgumentException('The $count argument must be a positive integer.');\n        }\n\n        $this->client = $client;\n        $this->key = $key;\n        $this->count = $count;\n\n        $this->reset();\n    }\n\n    /**\n     * Ensures that the client instance supports the specified Redis command\n     * required to fetch elements from the server to perform the iteration.\n     *\n     * @param ClientInterface $client    Client connected to Redis.\n     * @param string          $commandID Command ID.\n     *\n     * @throws NotSupportedException\n     */\n    protected function requiredCommand(ClientInterface $client, $commandID)\n    {\n        if (!$client->getProfile()->supportsCommand($commandID)) {\n            throw new NotSupportedException(\"The current profile does not support '$commandID'.\");\n        }\n    }\n\n    /**\n     * Resets the inner state of the iterator.\n     */\n    protected function reset()\n    {\n        $this->valid = true;\n        $this->fetchmore = true;\n        $this->elements = array();\n        $this->position = -1;\n        $this->current = null;\n    }\n\n    /**\n     * Fetches a new set of elements from the remote collection, effectively\n     * advancing the iteration process.\n     *\n     * @return array\n     */\n    protected function executeCommand()\n    {\n        return $this->client->lrange($this->key, $this->position + 1, $this->position + $this->count);\n    }\n\n    /**\n     * Populates the local buffer of elements fetched from the server during the\n     * iteration.\n     */\n    protected function fetch()\n    {\n        $elements = $this->executeCommand();\n\n        if (count($elements) < $this->count) {\n            $this->fetchmore = false;\n        }\n\n        $this->elements = $elements;\n    }\n\n    /**\n     * Extracts next values for key() and current().\n     */\n    protected function extractNext()\n    {\n        ++$this->position;\n        $this->current = array_shift($this->elements);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rewind()\n    {\n        $this->reset();\n        $this->next();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function current()\n    {\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function key()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function next()\n    {\n        if (!$this->elements && $this->fetchmore) {\n            $this->fetch();\n        }\n\n        if ($this->elements) {\n            $this->extractNext();\n        } else {\n            $this->valid = false;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function valid()\n    {\n        return $this->valid;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/SetKey.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\n\n/**\n * Abstracts the iteration of members stored in a set by leveraging the SSCAN\n * command (Redis >= 2.8) wrapped in a fully-rewindable PHP iterator.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @link http://redis.io/commands/scan\n */\nclass SetKey extends CursorBasedIterator\n{\n    protected $key;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ClientInterface $client, $key, $match = null, $count = null)\n    {\n        $this->requiredCommand($client, 'SSCAN');\n\n        parent::__construct($client, $match, $count);\n\n        $this->key = $key;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeCommand()\n    {\n        return $this->client->sscan($this->key, $this->cursor, $this->getScanOptions());\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Collection/Iterator/SortedSetKey.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Collection\\Iterator;\n\nuse Predis\\ClientInterface;\n\n/**\n * Abstracts the iteration of members stored in a sorted set by leveraging the\n * ZSCAN command (Redis >= 2.8) wrapped in a fully-rewindable PHP iterator.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @link http://redis.io/commands/scan\n */\nclass SortedSetKey extends CursorBasedIterator\n{\n    protected $key;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ClientInterface $client, $key, $match = null, $count = null)\n    {\n        $this->requiredCommand($client, 'ZSCAN');\n\n        parent::__construct($client, $match, $count);\n\n        $this->key = $key;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeCommand()\n    {\n        return $this->client->zscan($this->key, $this->cursor, $this->getScanOptions());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function extractNext()\n    {\n        if ($kv = each($this->elements)) {\n            $this->position = $kv[0];\n            $this->current = $kv[1];\n\n            unset($this->elements[$this->position]);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/Command.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * Base class for Redis commands.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class Command implements CommandInterface\n{\n    private $slot;\n    private $arguments = array();\n\n    /**\n     * Returns a filtered array of the arguments.\n     *\n     * @param array $arguments List of arguments.\n     *\n     * @return array\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return $arguments;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setArguments(array $arguments)\n    {\n        $this->arguments = $this->filterArguments($arguments);\n        unset($this->slot);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setRawArguments(array $arguments)\n    {\n        $this->arguments = $arguments;\n        unset($this->slot);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getArgument($index)\n    {\n        if (isset($this->arguments[$index])) {\n            return $this->arguments[$index];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setSlot($slot)\n    {\n        $this->slot = $slot;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlot()\n    {\n        if (isset($this->slot)) {\n            return $this->slot;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        return $data;\n    }\n\n    /**\n     * Normalizes the arguments array passed to a Redis command.\n     *\n     * @param array $arguments Arguments for a command.\n     *\n     * @return array\n     */\n    public static function normalizeArguments(array $arguments)\n    {\n        if (count($arguments) === 1 && is_array($arguments[0])) {\n            return $arguments[0];\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Normalizes the arguments array passed to a variadic Redis command.\n     *\n     * @param array $arguments Arguments for a command.\n     *\n     * @return array\n     */\n    public static function normalizeVariadic(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            return array_merge(array($arguments[0]), $arguments[1]);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/CommandInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * Defines an abstraction representing a Redis command.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface CommandInterface\n{\n    /**\n     * Returns the ID of the Redis command. By convention, command identifiers\n     * must always be uppercase.\n     *\n     * @return string\n     */\n    public function getId();\n\n    /**\n     * Assign the specified slot to the command for clustering distribution.\n     *\n     * @param int $slot Slot ID.\n     */\n    public function setSlot($slot);\n\n    /**\n     * Returns the assigned slot of the command for clustering distribution.\n     *\n     * @return int|null\n     */\n    public function getSlot();\n\n    /**\n     * Sets the arguments for the command.\n     *\n     * @param array $arguments List of arguments.\n     */\n    public function setArguments(array $arguments);\n\n    /**\n     * Sets the raw arguments for the command without processing them.\n     *\n     * @param array $arguments List of arguments.\n     */\n    public function setRawArguments(array $arguments);\n\n    /**\n     * Gets the arguments of the command.\n     *\n     * @return array\n     */\n    public function getArguments();\n\n    /**\n     * Gets the argument of the command at the specified index.\n     *\n     * @param int $index Index of the desired argument.\n     *\n     * @return mixed|null\n     */\n    public function getArgument($index);\n\n    /**\n     * Parses a raw response and returns a PHP object.\n     *\n     * @param string $data Binary string containing the whole response.\n     *\n     * @return mixed\n     */\n    public function parseResponse($data);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ConnectionAuth.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/auth\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionAuth extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'AUTH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ConnectionEcho.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/echo\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionEcho extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ECHO';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ConnectionPing.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/ping\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionPing extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PING';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ConnectionQuit.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/quit\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionQuit extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'QUIT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ConnectionSelect.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/select\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionSelect extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SELECT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoAdd.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/geoadd\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoAdd extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEOADD';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            foreach (array_pop($arguments) as $item) {\n                $arguments = array_merge($arguments, $item);\n            }\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoDist.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/geodist\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoDist extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEODIST';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoHash.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/geohash\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoHash extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEOHASH';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            $members = array_pop($arguments);\n            $arguments = array_merge($arguments, $members);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoPos.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/geopos\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoPos extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEOPOS';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            $members = array_pop($arguments);\n            $arguments = array_merge($arguments, $members);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoRadius.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/georadius\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoRadius extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEORADIUS';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if ($arguments && is_array(end($arguments))) {\n            $options = array_change_key_case(array_pop($arguments), CASE_UPPER);\n\n            if (isset($options['WITHCOORD']) && $options['WITHCOORD'] == true) {\n                $arguments[] = 'WITHCOORD';\n            }\n\n            if (isset($options['WITHDIST']) && $options['WITHDIST'] == true) {\n                $arguments[] = 'WITHDIST';\n            }\n\n            if (isset($options['WITHHASH']) && $options['WITHHASH'] == true) {\n                $arguments[] = 'WITHHASH';\n            }\n\n            if (isset($options['COUNT'])) {\n                $arguments[] = 'COUNT';\n                $arguments[] = $options['COUNT'];\n            }\n\n            if (isset($options['SORT'])) {\n                $arguments[] = strtoupper($options['SORT']);\n            }\n\n            if (isset($options['STORE'])) {\n                $arguments[] = 'STORE';\n                $arguments[] = $options['STORE'];\n            }\n\n            if (isset($options['STOREDIST'])) {\n                $arguments[] = 'STOREDIST';\n                $arguments[] = $options['STOREDIST'];\n            }\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/GeospatialGeoRadiusByMember.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/georadiusbymember\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass GeospatialGeoRadiusByMember extends GeospatialGeoRadius\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GEORADIUSBYMEMBER';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashDelete.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hdel\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashDelete extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HDEL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashExists.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hexists\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashExists extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HEXISTS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashGet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hget\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashGet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HGET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashGetAll.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hgetall\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashGetAll extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HGETALL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        $result = array();\n\n        for ($i = 0; $i < count($data); ++$i) {\n            $result[$data[$i]] = $data[++$i];\n        }\n\n        return $result;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashGetMultiple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hmget\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashGetMultiple extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HMGET';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashIncrementBy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hincrby\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashIncrementBy extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HINCRBY';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashIncrementByFloat.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hincrbyfloat\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashIncrementByFloat extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HINCRBYFLOAT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashKeys.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hkeys\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashKeys extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HKEYS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashLength.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hlen\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashLength extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HLEN';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashScan.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hscan\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashScan extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HSCAN';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 3 && is_array($arguments[2])) {\n            $options = $this->prepareOptions(array_pop($arguments));\n            $arguments = array_merge($arguments, $options);\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    protected function prepareOptions($options)\n    {\n        $options = array_change_key_case($options, CASE_UPPER);\n        $normalized = array();\n\n        if (!empty($options['MATCH'])) {\n            $normalized[] = 'MATCH';\n            $normalized[] = $options['MATCH'];\n        }\n\n        if (!empty($options['COUNT'])) {\n            $normalized[] = 'COUNT';\n            $normalized[] = $options['COUNT'];\n        }\n\n        return $normalized;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if (is_array($data)) {\n            $fields = $data[1];\n            $result = array();\n\n            for ($i = 0; $i < count($fields); ++$i) {\n                $result[$fields[$i]] = $fields[++$i];\n            }\n\n            $data[1] = $result;\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashSet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hset\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashSet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HSET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashSetMultiple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hmset\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashSetMultiple extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HMSET';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            $flattenedKVs = array($arguments[0]);\n            $args = $arguments[1];\n\n            foreach ($args as $k => $v) {\n                $flattenedKVs[] = $k;\n                $flattenedKVs[] = $v;\n            }\n\n            return $flattenedKVs;\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashSetPreserve.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hsetnx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashSetPreserve extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HSETNX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashStringLength.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hstrlen\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashStringLength extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HSTRLEN';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HashValues.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/hvals\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HashValues extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'HVALS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HyperLogLogAdd.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pfadd\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HyperLogLogAdd extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PFADD';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HyperLogLogCount.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pfcount\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HyperLogLogCount extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PFCOUNT';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/HyperLogLogMerge.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pfmerge\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass HyperLogLogMerge extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PFMERGE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyDelete.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/del\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyDelete extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DEL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyDump.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/dump\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyDump extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DUMP';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyExists.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/exists\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyExists extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EXISTS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyExpire.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/expire\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyExpire extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EXPIRE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyExpireAt.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/expireat\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyExpireAt extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EXPIREAT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyKeys.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/keys\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyKeys extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'KEYS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyMigrate.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/migrate\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyMigrate extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MIGRATE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (is_array(end($arguments))) {\n            foreach (array_pop($arguments) as $modifier => $value) {\n                $modifier = strtoupper($modifier);\n\n                if ($modifier === 'COPY' && $value == true) {\n                    $arguments[] = $modifier;\n                }\n\n                if ($modifier === 'REPLACE' && $value == true) {\n                    $arguments[] = $modifier;\n                }\n            }\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyMove.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/move\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyMove extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MOVE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyPersist.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/persist\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyPersist extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PERSIST';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyPreciseExpire.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pexpire\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyPreciseExpire extends KeyExpire\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PEXPIRE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyPreciseExpireAt.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pexpireat\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyPreciseExpireAt extends KeyExpireAt\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PEXPIREAT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyPreciseTimeToLive.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pttl\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyPreciseTimeToLive extends KeyTimeToLive\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PTTL';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyRandom.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/randomkey\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyRandom extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RANDOMKEY';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        return $data !== '' ? $data : null;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyRename.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/rename\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyRename extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RENAME';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyRenamePreserve.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/renamenx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyRenamePreserve extends KeyRename\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RENAMENX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyRestore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/restore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyRestore extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RESTORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyScan.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/scan\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyScan extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SCAN';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            $options = $this->prepareOptions(array_pop($arguments));\n            $arguments = array_merge($arguments, $options);\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    protected function prepareOptions($options)\n    {\n        $options = array_change_key_case($options, CASE_UPPER);\n        $normalized = array();\n\n        if (!empty($options['MATCH'])) {\n            $normalized[] = 'MATCH';\n            $normalized[] = $options['MATCH'];\n        }\n\n        if (!empty($options['COUNT'])) {\n            $normalized[] = 'COUNT';\n            $normalized[] = $options['COUNT'];\n        }\n\n        return $normalized;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeySort.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sort\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeySort extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SORT';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 1) {\n            return $arguments;\n        }\n\n        $query = array($arguments[0]);\n        $sortParams = array_change_key_case($arguments[1], CASE_UPPER);\n\n        if (isset($sortParams['BY'])) {\n            $query[] = 'BY';\n            $query[] = $sortParams['BY'];\n        }\n\n        if (isset($sortParams['GET'])) {\n            $getargs = $sortParams['GET'];\n\n            if (is_array($getargs)) {\n                foreach ($getargs as $getarg) {\n                    $query[] = 'GET';\n                    $query[] = $getarg;\n                }\n            } else {\n                $query[] = 'GET';\n                $query[] = $getargs;\n            }\n        }\n\n        if (isset($sortParams['LIMIT']) &&\n            is_array($sortParams['LIMIT']) &&\n            count($sortParams['LIMIT']) == 2) {\n            $query[] = 'LIMIT';\n            $query[] = $sortParams['LIMIT'][0];\n            $query[] = $sortParams['LIMIT'][1];\n        }\n\n        if (isset($sortParams['SORT'])) {\n            $query[] = strtoupper($sortParams['SORT']);\n        }\n\n        if (isset($sortParams['ALPHA']) && $sortParams['ALPHA'] == true) {\n            $query[] = 'ALPHA';\n        }\n\n        if (isset($sortParams['STORE'])) {\n            $query[] = 'STORE';\n            $query[] = $sortParams['STORE'];\n        }\n\n        return $query;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyTimeToLive.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/ttl\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyTimeToLive extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'TTL';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/KeyType.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/type\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyType extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'TYPE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListIndex.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lindex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListIndex extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LINDEX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListInsert.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/linsert\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListInsert extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LINSERT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListLength.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/llen\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListLength extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LLEN';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopFirst.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lpop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopFirst extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LPOP';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopFirstBlocking.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/blpop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopFirstBlocking extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BLPOP';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[0])) {\n            list($arguments, $timeout) = $arguments;\n            array_push($arguments, $timeout);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopLast.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/rpop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopLast extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RPOP';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopLastBlocking.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/brpop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopLastBlocking extends ListPopFirstBlocking\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BRPOP';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopLastPushHead.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/rpoplpush\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopLastPushHead extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RPOPLPUSH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPopLastPushHeadBlocking.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/brpoplpush\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPopLastPushHeadBlocking extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BRPOPLPUSH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPushHead.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lpush\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPushHead extends ListPushTail\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LPUSH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPushHeadX.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lpushx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPushHeadX extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LPUSHX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPushTail.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/rpush\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPushTail extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RPUSH';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListPushTailX.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/rpushx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListPushTailX extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'RPUSHX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListRange.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lrange\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListRange extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LRANGE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListRemove.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lrem\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListRemove extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LREM';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListSet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lset\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListSet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LSET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ListTrim.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/ltrim\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ListTrim extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LTRIM';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PrefixableCommandInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * Defines a command whose keys can be prefixed.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface PrefixableCommandInterface extends CommandInterface\n{\n    /**\n     * Prefixes all the keys found in the arguments of the command.\n     *\n     * @param string $prefix String used to prefix the keys.\n     */\n    public function prefixKeys($prefix);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/Processor/KeyPrefixProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command\\Processor;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\PrefixableCommandInterface;\n\n/**\n * Command processor capable of prefixing keys stored in the arguments of Redis\n * commands supported.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass KeyPrefixProcessor implements ProcessorInterface\n{\n    private $prefix;\n    private $commands;\n\n    /**\n     * @param string $prefix Prefix for the keys.\n     */\n    public function __construct($prefix)\n    {\n        $this->prefix = $prefix;\n        $this->commands = array(\n            /* ---------------- Redis 1.2 ---------------- */\n            'EXISTS' => 'static::all',\n            'DEL' => 'static::all',\n            'TYPE' => 'static::first',\n            'KEYS' => 'static::first',\n            'RENAME' => 'static::all',\n            'RENAMENX' => 'static::all',\n            'EXPIRE' => 'static::first',\n            'EXPIREAT' => 'static::first',\n            'TTL' => 'static::first',\n            'MOVE' => 'static::first',\n            'SORT' => 'static::sort',\n            'DUMP' => 'static::first',\n            'RESTORE' => 'static::first',\n            'SET' => 'static::first',\n            'SETNX' => 'static::first',\n            'MSET' => 'static::interleaved',\n            'MSETNX' => 'static::interleaved',\n            'GET' => 'static::first',\n            'MGET' => 'static::all',\n            'GETSET' => 'static::first',\n            'INCR' => 'static::first',\n            'INCRBY' => 'static::first',\n            'DECR' => 'static::first',\n            'DECRBY' => 'static::first',\n            'RPUSH' => 'static::first',\n            'LPUSH' => 'static::first',\n            'LLEN' => 'static::first',\n            'LRANGE' => 'static::first',\n            'LTRIM' => 'static::first',\n            'LINDEX' => 'static::first',\n            'LSET' => 'static::first',\n            'LREM' => 'static::first',\n            'LPOP' => 'static::first',\n            'RPOP' => 'static::first',\n            'RPOPLPUSH' => 'static::all',\n            'SADD' => 'static::first',\n            'SREM' => 'static::first',\n            'SPOP' => 'static::first',\n            'SMOVE' => 'static::skipLast',\n            'SCARD' => 'static::first',\n            'SISMEMBER' => 'static::first',\n            'SINTER' => 'static::all',\n            'SINTERSTORE' => 'static::all',\n            'SUNION' => 'static::all',\n            'SUNIONSTORE' => 'static::all',\n            'SDIFF' => 'static::all',\n            'SDIFFSTORE' => 'static::all',\n            'SMEMBERS' => 'static::first',\n            'SRANDMEMBER' => 'static::first',\n            'ZADD' => 'static::first',\n            'ZINCRBY' => 'static::first',\n            'ZREM' => 'static::first',\n            'ZRANGE' => 'static::first',\n            'ZREVRANGE' => 'static::first',\n            'ZRANGEBYSCORE' => 'static::first',\n            'ZCARD' => 'static::first',\n            'ZSCORE' => 'static::first',\n            'ZREMRANGEBYSCORE' => 'static::first',\n            /* ---------------- Redis 2.0 ---------------- */\n            'SETEX' => 'static::first',\n            'APPEND' => 'static::first',\n            'SUBSTR' => 'static::first',\n            'BLPOP' => 'static::skipLast',\n            'BRPOP' => 'static::skipLast',\n            'ZUNIONSTORE' => 'static::zsetStore',\n            'ZINTERSTORE' => 'static::zsetStore',\n            'ZCOUNT' => 'static::first',\n            'ZRANK' => 'static::first',\n            'ZREVRANK' => 'static::first',\n            'ZREMRANGEBYRANK' => 'static::first',\n            'HSET' => 'static::first',\n            'HSETNX' => 'static::first',\n            'HMSET' => 'static::first',\n            'HINCRBY' => 'static::first',\n            'HGET' => 'static::first',\n            'HMGET' => 'static::first',\n            'HDEL' => 'static::first',\n            'HEXISTS' => 'static::first',\n            'HLEN' => 'static::first',\n            'HKEYS' => 'static::first',\n            'HVALS' => 'static::first',\n            'HGETALL' => 'static::first',\n            'SUBSCRIBE' => 'static::all',\n            'UNSUBSCRIBE' => 'static::all',\n            'PSUBSCRIBE' => 'static::all',\n            'PUNSUBSCRIBE' => 'static::all',\n            'PUBLISH' => 'static::first',\n            /* ---------------- Redis 2.2 ---------------- */\n            'PERSIST' => 'static::first',\n            'STRLEN' => 'static::first',\n            'SETRANGE' => 'static::first',\n            'GETRANGE' => 'static::first',\n            'SETBIT' => 'static::first',\n            'GETBIT' => 'static::first',\n            'RPUSHX' => 'static::first',\n            'LPUSHX' => 'static::first',\n            'LINSERT' => 'static::first',\n            'BRPOPLPUSH' => 'static::skipLast',\n            'ZREVRANGEBYSCORE' => 'static::first',\n            'WATCH' => 'static::all',\n            /* ---------------- Redis 2.6 ---------------- */\n            'PTTL' => 'static::first',\n            'PEXPIRE' => 'static::first',\n            'PEXPIREAT' => 'static::first',\n            'PSETEX' => 'static::first',\n            'INCRBYFLOAT' => 'static::first',\n            'BITOP' => 'static::skipFirst',\n            'BITCOUNT' => 'static::first',\n            'HINCRBYFLOAT' => 'static::first',\n            'EVAL' => 'static::evalKeys',\n            'EVALSHA' => 'static::evalKeys',\n            'MIGRATE' => 'static::migrate',\n            /* ---------------- Redis 2.8 ---------------- */\n            'SSCAN' => 'static::first',\n            'ZSCAN' => 'static::first',\n            'HSCAN' => 'static::first',\n            'PFADD' => 'static::first',\n            'PFCOUNT' => 'static::all',\n            'PFMERGE' => 'static::all',\n            'ZLEXCOUNT' => 'static::first',\n            'ZRANGEBYLEX' => 'static::first',\n            'ZREMRANGEBYLEX' => 'static::first',\n            'ZREVRANGEBYLEX' => 'static::first',\n            'BITPOS' => 'static::first',\n            /* ---------------- Redis 3.2 ---------------- */\n            'HSTRLEN' => 'static::first',\n            'BITFIELD' => 'static::first',\n            'GEOADD' => 'static::first',\n            'GEOHASH' => 'static::first',\n            'GEOPOS' => 'static::first',\n            'GEODIST' => 'static::first',\n            'GEORADIUS' => 'static::georadius',\n            'GEORADIUSBYMEMBER' => 'static::georadius',\n        );\n    }\n\n    /**\n     * Sets a prefix that is applied to all the keys.\n     *\n     * @param string $prefix Prefix for the keys.\n     */\n    public function setPrefix($prefix)\n    {\n        $this->prefix = $prefix;\n    }\n\n    /**\n     * Gets the current prefix.\n     *\n     * @return string\n     */\n    public function getPrefix()\n    {\n        return $this->prefix;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function process(CommandInterface $command)\n    {\n        if ($command instanceof PrefixableCommandInterface) {\n            $command->prefixKeys($this->prefix);\n        } elseif (isset($this->commands[$commandID = strtoupper($command->getId())])) {\n            call_user_func($this->commands[$commandID], $command, $this->prefix);\n        }\n    }\n\n    /**\n     * Sets an handler for the specified command ID.\n     *\n     * The callback signature must have 2 parameters of the following types:\n     *\n     *   - Predis\\Command\\CommandInterface (command instance)\n     *   - String (prefix)\n     *\n     * When the callback argument is omitted or NULL, the previously\n     * associated handler for the specified command ID is removed.\n     *\n     * @param string $commandID The ID of the command to be handled.\n     * @param mixed  $callback  A valid callable object or NULL.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function setCommandHandler($commandID, $callback = null)\n    {\n        $commandID = strtoupper($commandID);\n\n        if (!isset($callback)) {\n            unset($this->commands[$commandID]);\n\n            return;\n        }\n\n        if (!is_callable($callback)) {\n            throw new \\InvalidArgumentException(\n                'Callback must be a valid callable object or NULL'\n            );\n        }\n\n        $this->commands[$commandID] = $callback;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __toString()\n    {\n        return $this->getPrefix();\n    }\n\n    /**\n     * Applies the specified prefix only the first argument.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function first(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $arguments[0] = \"$prefix{$arguments[0]}\";\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to all the arguments.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function all(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            foreach ($arguments as &$key) {\n                $key = \"$prefix$key\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix only to even arguments in the list.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function interleaved(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $length = count($arguments);\n\n            for ($i = 0; $i < $length; $i += 2) {\n                $arguments[$i] = \"$prefix{$arguments[$i]}\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to all the arguments but the first one.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function skipFirst(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $length = count($arguments);\n\n            for ($i = 1; $i < $length; ++$i) {\n                $arguments[$i] = \"$prefix{$arguments[$i]}\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to all the arguments but the last one.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function skipLast(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $length = count($arguments);\n\n            for ($i = 0; $i < $length - 1; ++$i) {\n                $arguments[$i] = \"$prefix{$arguments[$i]}\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to the keys of a SORT command.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function sort(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $arguments[0] = \"$prefix{$arguments[0]}\";\n\n            if (($count = count($arguments)) > 1) {\n                for ($i = 1; $i < $count; ++$i) {\n                    switch (strtoupper($arguments[$i])) {\n                        case 'BY':\n                        case 'STORE':\n                            $arguments[$i] = \"$prefix{$arguments[++$i]}\";\n                            break;\n\n                        case 'GET':\n                            $value = $arguments[++$i];\n                            if ($value !== '#') {\n                                $arguments[$i] = \"$prefix$value\";\n                            }\n                            break;\n\n                        case 'LIMIT';\n                            $i += 2;\n                            break;\n                    }\n                }\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to the keys of an EVAL-based command.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function evalKeys(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            for ($i = 2; $i < $arguments[1] + 2; ++$i) {\n                $arguments[$i] = \"$prefix{$arguments[$i]}\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to the keys of Z[INTERSECTION|UNION]STORE.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function zsetStore(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $arguments[0] = \"$prefix{$arguments[0]}\";\n            $length = ((int) $arguments[1]) + 2;\n\n            for ($i = 2; $i < $length; ++$i) {\n                $arguments[$i] = \"$prefix{$arguments[$i]}\";\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to the key of a MIGRATE command.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function migrate(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $arguments[2] = \"$prefix{$arguments[2]}\";\n            $command->setRawArguments($arguments);\n        }\n    }\n\n    /**\n     * Applies the specified prefix to the key of a GEORADIUS command.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $prefix  Prefix string.\n     */\n    public static function georadius(CommandInterface $command, $prefix)\n    {\n        if ($arguments = $command->getArguments()) {\n            $arguments[0] = \"$prefix{$arguments[0]}\";\n            $startIndex = $command->getId() === 'GEORADIUS' ? 5 : 4;\n\n            if (($count = count($arguments)) > $startIndex) {\n                for ($i = $startIndex; $i < $count; ++$i) {\n                    switch (strtoupper($arguments[$i])) {\n                        case 'STORE':\n                        case 'STOREDIST':\n                            $arguments[$i] = \"$prefix{$arguments[++$i]}\";\n                            break;\n\n                    }\n                }\n            }\n\n            $command->setRawArguments($arguments);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/Processor/ProcessorChain.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command\\Processor;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Default implementation of a command processors chain.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ProcessorChain implements \\ArrayAccess, ProcessorInterface\n{\n    private $processors = array();\n\n    /**\n     * @param array $processors List of instances of ProcessorInterface.\n     */\n    public function __construct($processors = array())\n    {\n        foreach ($processors as $processor) {\n            $this->add($processor);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function add(ProcessorInterface $processor)\n    {\n        $this->processors[] = $processor;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove(ProcessorInterface $processor)\n    {\n        if (false !== $index = array_search($processor, $this->processors, true)) {\n            unset($this[$index]);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function process(CommandInterface $command)\n    {\n        for ($i = 0; $i < $count = count($this->processors); ++$i) {\n            $this->processors[$i]->process($command);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getProcessors()\n    {\n        return $this->processors;\n    }\n\n    /**\n     * Returns an iterator over the list of command processor in the chain.\n     *\n     * @return \\ArrayIterator\n     */\n    public function getIterator()\n    {\n        return new \\ArrayIterator($this->processors);\n    }\n\n    /**\n     * Returns the number of command processors in the chain.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return count($this->processors);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetExists($index)\n    {\n        return isset($this->processors[$index]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetGet($index)\n    {\n        return $this->processors[$index];\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetSet($index, $processor)\n    {\n        if (!$processor instanceof ProcessorInterface) {\n            throw new \\InvalidArgumentException(\n                'A processor chain accepts only instances of '.\n                \"'Predis\\Command\\Processor\\ProcessorInterface'.\"\n            );\n        }\n\n        $this->processors[$index] = $processor;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetUnset($index)\n    {\n        unset($this->processors[$index]);\n        $this->processors = array_values($this->processors);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/Processor/ProcessorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command\\Processor;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * A command processor processes Redis commands before they are sent to Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ProcessorInterface\n{\n    /**\n     * Processes the given Redis command.\n     *\n     * @param CommandInterface $command Command instance.\n     */\n    public function process(CommandInterface $command);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubPublish.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/publish\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubPublish extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PUBLISH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubPubsub.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/pubsub\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubPubsub extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PUBSUB';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        switch (strtolower($this->getArgument(0))) {\n            case 'numsub':\n                return self::processNumsub($data);\n\n            default:\n                return $data;\n        }\n    }\n\n    /**\n     * Returns the processed response to PUBSUB NUMSUB.\n     *\n     * @param array $channels List of channels\n     *\n     * @return array\n     */\n    protected static function processNumsub(array $channels)\n    {\n        $processed = array();\n        $count = count($channels);\n\n        for ($i = 0; $i < $count; ++$i) {\n            $processed[$channels[$i]] = $channels[++$i];\n        }\n\n        return $processed;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubSubscribe.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/subscribe\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubSubscribe extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SUBSCRIBE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubSubscribeByPattern.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/psubscribe\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubSubscribeByPattern extends PubSubSubscribe\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PSUBSCRIBE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubUnsubscribe.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/unsubscribe\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubUnsubscribe extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'UNSUBSCRIBE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/PubSubUnsubscribeByPattern.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/punsubscribe\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PubSubUnsubscribeByPattern extends PubSubUnsubscribe\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PUNSUBSCRIBE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/RawCommand.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * Class for generic \"anonymous\" Redis commands.\n *\n * This command class does not filter input arguments or parse responses, but\n * can be used to leverage the standard Predis API to execute any command simply\n * by providing the needed arguments following the command signature as defined\n * by Redis in its documentation.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RawCommand implements CommandInterface\n{\n    private $slot;\n    private $commandID;\n    private $arguments;\n\n    /**\n     * @param array $arguments Command ID and its arguments.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct(array $arguments)\n    {\n        if (!$arguments) {\n            throw new \\InvalidArgumentException(\n                'The arguments array must contain at least the command ID.'\n            );\n        }\n\n        $this->commandID = strtoupper(array_shift($arguments));\n        $this->arguments = $arguments;\n    }\n\n    /**\n     * Creates a new raw command using a variadic method.\n     *\n     * @param string $commandID Redis command ID.\n     * @param string ...        Arguments list for the command.\n     *\n     * @return CommandInterface\n     */\n    public static function create($commandID /* [ $arg, ... */)\n    {\n        $arguments = func_get_args();\n        $command = new self($arguments);\n\n        return $command;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return $this->commandID;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setArguments(array $arguments)\n    {\n        $this->arguments = $arguments;\n        unset($this->slot);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setRawArguments(array $arguments)\n    {\n        $this->setArguments($arguments);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getArguments()\n    {\n        return $this->arguments;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getArgument($index)\n    {\n        if (isset($this->arguments[$index])) {\n            return $this->arguments[$index];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setSlot($slot)\n    {\n        $this->slot = $slot;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlot()\n    {\n        if (isset($this->slot)) {\n            return $this->slot;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ScriptCommand.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * Base class used to implement an higher level abstraction for commands based\n * on Lua scripting with EVAL and EVALSHA.\n *\n * @link http://redis.io/commands/eval\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class ScriptCommand extends ServerEvalSHA\n{\n    /**\n     * Gets the body of a Lua script.\n     *\n     * @return string\n     */\n    abstract public function getScript();\n\n    /**\n     * Specifies the number of arguments that should be considered as keys.\n     *\n     * The default behaviour for the base class is to return 0 to indicate that\n     * all the elements of the arguments array should be considered as keys, but\n     * subclasses can enforce a static number of keys.\n     *\n     * @return int\n     */\n    protected function getKeysCount()\n    {\n        return 0;\n    }\n\n    /**\n     * Returns the elements from the arguments that are identified as keys.\n     *\n     * @return array\n     */\n    public function getKeys()\n    {\n        return array_slice($this->getArguments(), 2, $this->getKeysCount());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (($numkeys = $this->getKeysCount()) && $numkeys < 0) {\n            $numkeys = count($arguments) + $numkeys;\n        }\n\n        return array_merge(array(sha1($this->getScript()), (int) $numkeys), $arguments);\n    }\n\n    /**\n     * @return array\n     */\n    public function getEvalArguments()\n    {\n        $arguments = $this->getArguments();\n        $arguments[0] = $this->getScript();\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerBackgroundRewriteAOF.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bgrewriteaof\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerBackgroundRewriteAOF extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BGREWRITEAOF';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        return $data == 'Background append only file rewriting started';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerBackgroundSave.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bgsave\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerBackgroundSave extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BGSAVE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        return $data === 'Background saving started' ? true : $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerClient.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/client-list\n * @link http://redis.io/commands/client-kill\n * @link http://redis.io/commands/client-getname\n * @link http://redis.io/commands/client-setname\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerClient extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'CLIENT';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        $args = array_change_key_case($this->getArguments(), CASE_UPPER);\n\n        switch (strtoupper($args[0])) {\n            case 'LIST':\n                return $this->parseClientList($data);\n            case 'KILL':\n            case 'GETNAME':\n            case 'SETNAME':\n            default:\n                return $data;\n        }\n    }\n\n    /**\n     * Parses the response to CLIENT LIST and returns a structured list.\n     *\n     * @param string $data Response buffer.\n     *\n     * @return array\n     */\n    protected function parseClientList($data)\n    {\n        $clients = array();\n\n        foreach (explode(\"\\n\", $data, -1) as $clientData) {\n            $client = array();\n\n            foreach (explode(' ', $clientData) as $kv) {\n                @list($k, $v) = explode('=', $kv);\n                $client[$k] = $v;\n            }\n\n            $clients[] = $client;\n        }\n\n        return $clients;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerCommand.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/command\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerCommand extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'COMMAND';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerConfig.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/config-set\n * @link http://redis.io/commands/config-get\n * @link http://redis.io/commands/config-resetstat\n * @link http://redis.io/commands/config-rewrite\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerConfig extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'CONFIG';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if (is_array($data)) {\n            $result = array();\n\n            for ($i = 0; $i < count($data); ++$i) {\n                $result[$data[$i]] = $data[++$i];\n            }\n\n            return $result;\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerDatabaseSize.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/dbsize\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerDatabaseSize extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DBSIZE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerEval.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/eval\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerEval extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EVAL';\n    }\n\n    /**\n     * Calculates the SHA1 hash of the body of the script.\n     *\n     * @return string SHA1 hash.\n     */\n    public function getScriptHash()\n    {\n        return sha1($this->getArgument(0));\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerEvalSHA.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/evalsha\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerEvalSHA extends ServerEval\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EVALSHA';\n    }\n\n    /**\n     * Returns the SHA1 hash of the body of the script.\n     *\n     * @return string SHA1 hash.\n     */\n    public function getScriptHash()\n    {\n        return $this->getArgument(0);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerFlushAll.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/flushall\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerFlushAll extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'FLUSHALL';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerFlushDatabase.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/flushdb\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerFlushDatabase extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'FLUSHDB';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerInfo.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/info\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerInfo extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'INFO';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        $info = array();\n        $infoLines = preg_split('/\\r?\\n/', $data);\n\n        foreach ($infoLines as $row) {\n            if (strpos($row, ':') === false) {\n                continue;\n            }\n\n            list($k, $v) = $this->parseRow($row);\n            $info[$k] = $v;\n        }\n\n        return $info;\n    }\n\n    /**\n     * Parses a single row of the response and returns the key-value pair.\n     *\n     * @param string $row Single row of the response.\n     *\n     * @return array\n     */\n    protected function parseRow($row)\n    {\n        list($k, $v) = explode(':', $row, 2);\n\n        if (preg_match('/^db\\d+$/', $k)) {\n            $v = $this->parseDatabaseStats($v);\n        }\n\n        return array($k, $v);\n    }\n\n    /**\n     * Extracts the statistics of each logical DB from the string buffer.\n     *\n     * @param string $str Response buffer.\n     *\n     * @return array\n     */\n    protected function parseDatabaseStats($str)\n    {\n        $db = array();\n\n        foreach (explode(',', $str) as $dbvar) {\n            list($dbvk, $dbvv) = explode('=', $dbvar);\n            $db[trim($dbvk)] = $dbvv;\n        }\n\n        return $db;\n    }\n\n    /**\n     * Parses the response and extracts the allocation statistics.\n     *\n     * @param string $str Response buffer.\n     *\n     * @return array\n     */\n    protected function parseAllocationStats($str)\n    {\n        $stats = array();\n\n        foreach (explode(',', $str) as $kv) {\n            @list($size, $objects, $extra) = explode('=', $kv);\n\n            // hack to prevent incorrect values when parsing the >=256 key\n            if (isset($extra)) {\n                $size = \">=$objects\";\n                $objects = $extra;\n            }\n\n            $stats[$size] = $objects;\n        }\n\n        return $stats;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerInfoV26x.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/info\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerInfoV26x extends ServerInfo\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if ($data === '') {\n            return array();\n        }\n\n        $info = array();\n\n        $current = null;\n        $infoLines = preg_split('/\\r?\\n/', $data);\n\n        if (isset($infoLines[0]) && $infoLines[0][0] !== '#') {\n            return parent::parseResponse($data);\n        }\n\n        foreach ($infoLines as $row) {\n            if ($row === '') {\n                continue;\n            }\n\n            if (preg_match('/^# (\\w+)$/', $row, $matches)) {\n                $info[$matches[1]] = array();\n                $current = &$info[$matches[1]];\n                continue;\n            }\n\n            list($k, $v) = $this->parseRow($row);\n            $current[$k] = $v;\n        }\n\n        return $info;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerLastSave.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/lastsave\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerLastSave extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'LASTSAVE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerMonitor.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/monitor\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerMonitor extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MONITOR';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerObject.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/object\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerObject extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'OBJECT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerSave.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/save\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerSave extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SAVE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerScript.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/script\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerScript extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SCRIPT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerSentinel.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/topics/sentinel\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerSentinel extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SENTINEL';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        switch (strtolower($this->getArgument(0))) {\n            case 'masters':\n            case 'slaves':\n                return self::processMastersOrSlaves($data);\n\n            default:\n                return $data;\n        }\n    }\n\n    /**\n     * Returns a processed response to SENTINEL MASTERS or SENTINEL SLAVES.\n     *\n     * @param array $servers List of Redis servers.\n     *\n     * @return array\n     */\n    protected static function processMastersOrSlaves(array $servers)\n    {\n        foreach ($servers as $idx => $node) {\n            $processed = array();\n            $count = count($node);\n\n            for ($i = 0; $i < $count; ++$i) {\n                $processed[$node[$i]] = $node[++$i];\n            }\n\n            $servers[$idx] = $processed;\n        }\n\n        return $servers;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerShutdown.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/shutdown\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerShutdown extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SHUTDOWN';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerSlaveOf.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/slaveof\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerSlaveOf extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SLAVEOF';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 0 || $arguments[0] === 'NO ONE') {\n            return array('NO', 'ONE');\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerSlowlog.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/slowlog\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerSlowlog extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SLOWLOG';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if (is_array($data)) {\n            $log = array();\n\n            foreach ($data as $index => $entry) {\n                $log[$index] = array(\n                    'id' => $entry[0],\n                    'timestamp' => $entry[1],\n                    'duration' => $entry[2],\n                    'command' => $entry[3],\n                );\n            }\n\n            return $log;\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ServerTime.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/time\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerTime extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'TIME';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetAdd.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sadd\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetAdd extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SADD';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetCardinality.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/scard\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetCardinality extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SCARD';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetDifference.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sdiff\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetDifference extends SetIntersection\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SDIFF';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetDifferenceStore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sdiffstore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetDifferenceStore extends SetIntersectionStore\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SDIFFSTORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetIntersection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sinter\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetIntersection extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SINTER';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetIntersectionStore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sinterstore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetIntersectionStore extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SINTERSTORE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 2 && is_array($arguments[1])) {\n            return array_merge(array($arguments[0]), $arguments[1]);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetIsMember.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sismember\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetIsMember extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SISMEMBER';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetMembers.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/smembers\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetMembers extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SMEMBERS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetMove.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/smove\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetMove extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SMOVE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetPop.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/spop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetPop extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SPOP';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetRandomMember.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/srandmember\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetRandomMember extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SRANDMEMBER';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetRemove.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/srem\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetRemove extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SREM';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetScan.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sscan\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetScan extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SSCAN';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 3 && is_array($arguments[2])) {\n            $options = $this->prepareOptions(array_pop($arguments));\n            $arguments = array_merge($arguments, $options);\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    protected function prepareOptions($options)\n    {\n        $options = array_change_key_case($options, CASE_UPPER);\n        $normalized = array();\n\n        if (!empty($options['MATCH'])) {\n            $normalized[] = 'MATCH';\n            $normalized[] = $options['MATCH'];\n        }\n\n        if (!empty($options['COUNT'])) {\n            $normalized[] = 'COUNT';\n            $normalized[] = $options['COUNT'];\n        }\n\n        return $normalized;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetUnion.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sunion\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetUnion extends SetIntersection\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SUNION';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/SetUnionStore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/sunionstore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass SetUnionStore extends SetIntersectionStore\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SUNIONSTORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringAppend.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/append\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringAppend extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'APPEND';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringBitCount.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bitcount\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringBitCount extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BITCOUNT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringBitField.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bitfield\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringBitField extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BITFIELD';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringBitOp.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bitop\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringBitOp extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BITOP';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 3 && is_array($arguments[2])) {\n            list($operation, $destination) = $arguments;\n            $arguments = $arguments[2];\n            array_unshift($arguments, $operation, $destination);\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringBitPos.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/bitpos\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringBitPos extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'BITPOS';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringDecrement.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/decr\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringDecrement extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DECR';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringDecrementBy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/decrby\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringDecrementBy extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DECRBY';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringGet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/get\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringGet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringGetBit.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/getbit\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringGetBit extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GETBIT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringGetMultiple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/mget\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringGetMultiple extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MGET';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeArguments($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringGetRange.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/getrange\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringGetRange extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GETRANGE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringGetSet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/getset\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringGetSet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'GETSET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringIncrement.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/incr\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringIncrement extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'INCR';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringIncrementBy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/incrby\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringIncrementBy extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'INCRBY';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringIncrementByFloat.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/incrbyfloat\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringIncrementByFloat extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'INCRBYFLOAT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringPreciseSetExpire.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/psetex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringPreciseSetExpire extends StringSetExpire\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'PSETEX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSet.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/set\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSet extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SET';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetBit.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/setbit\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetBit extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SETBIT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetExpire.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/setex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetExpire extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SETEX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetMultiple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/mset\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetMultiple extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MSET';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 1 && is_array($arguments[0])) {\n            $flattenedKVs = array();\n            $args = $arguments[0];\n\n            foreach ($args as $k => $v) {\n                $flattenedKVs[] = $k;\n                $flattenedKVs[] = $v;\n            }\n\n            return $flattenedKVs;\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetMultiplePreserve.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/msetnx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetMultiplePreserve extends StringSetMultiple\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MSETNX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetPreserve.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/setnx\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetPreserve extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SETNX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSetRange.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/setrange\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSetRange extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SETRANGE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringStrlen.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/strlen\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringStrlen extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'STRLEN';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/StringSubstr.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/substr\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StringSubstr extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'SUBSTR';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/TransactionDiscard.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/discard\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass TransactionDiscard extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'DISCARD';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/TransactionExec.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/exec\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass TransactionExec extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'EXEC';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/TransactionMulti.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/multi\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass TransactionMulti extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'MULTI';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/TransactionUnwatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/unwatch\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass TransactionUnwatch extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'UNWATCH';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/TransactionWatch.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/watch\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass TransactionWatch extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'WATCH';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (isset($arguments[0]) && is_array($arguments[0])) {\n            return $arguments[0];\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetAdd.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zadd\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetAdd extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZADD';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (is_array(end($arguments))) {\n            foreach (array_pop($arguments) as $member => $score) {\n                $arguments[] = $score;\n                $arguments[] = $member;\n            }\n        }\n\n        return $arguments;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetCardinality.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zcard\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetCardinality extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZCARD';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetCount.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zcount\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetCount extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZCOUNT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetIncrementBy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zincrby\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetIncrementBy extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZINCRBY';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetIntersectionStore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zinterstore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetIntersectionStore extends ZSetUnionStore\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZINTERSTORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetLexCount.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zlexcount\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetLexCount extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZLEXCOUNT';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRange.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrange\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRange extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZRANGE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 4) {\n            $lastType = gettype($arguments[3]);\n\n            if ($lastType === 'string' && strtoupper($arguments[3]) === 'WITHSCORES') {\n                // Used for compatibility with older versions\n                $arguments[3] = array('WITHSCORES' => true);\n                $lastType = 'array';\n            }\n\n            if ($lastType === 'array') {\n                $options = $this->prepareOptions(array_pop($arguments));\n\n                return array_merge($arguments, $options);\n            }\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    protected function prepareOptions($options)\n    {\n        $opts = array_change_key_case($options, CASE_UPPER);\n        $finalizedOpts = array();\n\n        if (!empty($opts['WITHSCORES'])) {\n            $finalizedOpts[] = 'WITHSCORES';\n        }\n\n        return $finalizedOpts;\n    }\n\n    /**\n     * Checks for the presence of the WITHSCORES modifier.\n     *\n     * @return bool\n     */\n    protected function withScores()\n    {\n        $arguments = $this->getArguments();\n\n        if (count($arguments) < 4) {\n            return false;\n        }\n\n        return strtoupper($arguments[3]) === 'WITHSCORES';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if ($this->withScores()) {\n            $result = array();\n\n            for ($i = 0; $i < count($data); ++$i) {\n                $result[$data[$i]] = $data[++$i];\n            }\n\n            return $result;\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRangeByLex.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrangebylex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRangeByLex extends ZSetRange\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZRANGEBYLEX';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function prepareOptions($options)\n    {\n        $opts = array_change_key_case($options, CASE_UPPER);\n        $finalizedOpts = array();\n\n        if (isset($opts['LIMIT']) && is_array($opts['LIMIT'])) {\n            $limit = array_change_key_case($opts['LIMIT'], CASE_UPPER);\n\n            $finalizedOpts[] = 'LIMIT';\n            $finalizedOpts[] = isset($limit['OFFSET']) ? $limit['OFFSET'] : $limit[0];\n            $finalizedOpts[] = isset($limit['COUNT']) ? $limit['COUNT'] : $limit[1];\n        }\n\n        return $finalizedOpts;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function withScores()\n    {\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRangeByScore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrangebyscore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRangeByScore extends ZSetRange\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZRANGEBYSCORE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function prepareOptions($options)\n    {\n        $opts = array_change_key_case($options, CASE_UPPER);\n        $finalizedOpts = array();\n\n        if (isset($opts['LIMIT']) && is_array($opts['LIMIT'])) {\n            $limit = array_change_key_case($opts['LIMIT'], CASE_UPPER);\n\n            $finalizedOpts[] = 'LIMIT';\n            $finalizedOpts[] = isset($limit['OFFSET']) ? $limit['OFFSET'] : $limit[0];\n            $finalizedOpts[] = isset($limit['COUNT']) ? $limit['COUNT'] : $limit[1];\n        }\n\n        return array_merge($finalizedOpts, parent::prepareOptions($options));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function withScores()\n    {\n        $arguments = $this->getArguments();\n\n        for ($i = 3; $i < count($arguments); ++$i) {\n            switch (strtoupper($arguments[$i])) {\n                case 'WITHSCORES':\n                    return true;\n\n                case 'LIMIT':\n                    $i += 2;\n                    break;\n            }\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRank.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrank\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRank extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZRANK';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRemove.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrem\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRemove extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREM';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        return self::normalizeVariadic($arguments);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRemoveRangeByLex.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zremrangebylex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRemoveRangeByLex extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREMRANGEBYLEX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRemoveRangeByRank.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zremrangebyrank\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRemoveRangeByRank extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREMRANGEBYRANK';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetRemoveRangeByScore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zremrangebyscore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetRemoveRangeByScore extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREMRANGEBYSCORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetReverseRange.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrevrange\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetReverseRange extends ZSetRange\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREVRANGE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetReverseRangeByLex.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrevrangebylex\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetReverseRangeByLex extends ZSetRangeByLex\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREVRANGEBYLEX';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetReverseRangeByScore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrevrangebyscore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetReverseRangeByScore extends ZSetRangeByScore\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREVRANGEBYSCORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetReverseRank.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zrevrank\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetReverseRank extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZREVRANK';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetScan.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zscan\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetScan extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZSCAN';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        if (count($arguments) === 3 && is_array($arguments[2])) {\n            $options = $this->prepareOptions(array_pop($arguments));\n            $arguments = array_merge($arguments, $options);\n        }\n\n        return $arguments;\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    protected function prepareOptions($options)\n    {\n        $options = array_change_key_case($options, CASE_UPPER);\n        $normalized = array();\n\n        if (!empty($options['MATCH'])) {\n            $normalized[] = 'MATCH';\n            $normalized[] = $options['MATCH'];\n        }\n\n        if (!empty($options['COUNT'])) {\n            $normalized[] = 'COUNT';\n            $normalized[] = $options['COUNT'];\n        }\n\n        return $normalized;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function parseResponse($data)\n    {\n        if (is_array($data)) {\n            $members = $data[1];\n            $result = array();\n\n            for ($i = 0; $i < count($members); ++$i) {\n                $result[$members[$i]] = (float) $members[++$i];\n            }\n\n            $data[1] = $result;\n        }\n\n        return $data;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetScore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zscore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetScore extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZSCORE';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Command/ZSetUnionStore.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Command;\n\n/**\n * @link http://redis.io/commands/zunionstore\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ZSetUnionStore extends Command\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getId()\n    {\n        return 'ZUNIONSTORE';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function filterArguments(array $arguments)\n    {\n        $options = array();\n        $argc = count($arguments);\n\n        if ($argc > 2 && is_array($arguments[$argc - 1])) {\n            $options = $this->prepareOptions(array_pop($arguments));\n        }\n\n        if (is_array($arguments[1])) {\n            $arguments = array_merge(\n                array($arguments[0], count($arguments[1])),\n                $arguments[1]\n            );\n        }\n\n        return array_merge($arguments, $options);\n    }\n\n    /**\n     * Returns a list of options and modifiers compatible with Redis.\n     *\n     * @param array $options List of options.\n     *\n     * @return array\n     */\n    private function prepareOptions($options)\n    {\n        $opts = array_change_key_case($options, CASE_UPPER);\n        $finalizedOpts = array();\n\n        if (isset($opts['WEIGHTS']) && is_array($opts['WEIGHTS'])) {\n            $finalizedOpts[] = 'WEIGHTS';\n\n            foreach ($opts['WEIGHTS'] as $weight) {\n                $finalizedOpts[] = $weight;\n            }\n        }\n\n        if (isset($opts['AGGREGATE'])) {\n            $finalizedOpts[] = 'AGGREGATE';\n            $finalizedOpts[] = $opts['AGGREGATE'];\n        }\n\n        return $finalizedOpts;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/CommunicationException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\nuse Predis\\Connection\\NodeConnectionInterface;\n\n/**\n * Base exception class for network-related errors.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class CommunicationException extends PredisException\n{\n    private $connection;\n\n    /**\n     * @param NodeConnectionInterface $connection     Connection that generated the exception.\n     * @param string                  $message        Error message.\n     * @param int                     $code           Error code.\n     * @param \\Exception              $innerException Inner exception for wrapping the original error.\n     */\n    public function __construct(\n        NodeConnectionInterface $connection,\n        $message = null,\n        $code = null,\n        \\Exception $innerException = null\n    ) {\n        parent::__construct($message, $code, $innerException);\n        $this->connection = $connection;\n    }\n\n    /**\n     * Gets the connection that generated the exception.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getConnection()\n    {\n        return $this->connection;\n    }\n\n    /**\n     * Indicates if the receiver should reset the underlying connection.\n     *\n     * @return bool\n     */\n    public function shouldResetConnection()\n    {\n        return true;\n    }\n\n    /**\n     * Helper method to handle exceptions generated by a connection object.\n     *\n     * @param CommunicationException $exception Exception.\n     *\n     * @throws CommunicationException\n     */\n    public static function handle(CommunicationException $exception)\n    {\n        if ($exception->shouldResetConnection()) {\n            $connection = $exception->getConnection();\n\n            if ($connection->isConnected()) {\n                $connection->disconnect();\n            }\n        }\n\n        throw $exception;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/ClusterOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\nuse Predis\\Connection\\Aggregate\\ClusterInterface;\nuse Predis\\Connection\\Aggregate\\PredisCluster;\nuse Predis\\Connection\\Aggregate\\RedisCluster;\n\n/**\n * Configures an aggregate connection used for clustering\n * multiple Redis nodes using various implementations with\n * different algorithms or strategies.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ClusterOption implements OptionInterface\n{\n    /**\n     * Creates a new cluster connection from on a known descriptive name.\n     *\n     * @param OptionsInterface $options Instance of the client options.\n     * @param string           $id      Descriptive identifier of the cluster type (`predis`, `redis-cluster`)\n     *\n     * @return ClusterInterface|null\n     */\n    protected function createByDescription(OptionsInterface $options, $id)\n    {\n        switch ($id) {\n            case 'predis':\n            case 'predis-cluster':\n                return new PredisCluster();\n\n            case 'redis':\n            case 'redis-cluster':\n                return new RedisCluster($options->connections);\n\n            default:\n                return;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        if (is_string($value)) {\n            $value = $this->createByDescription($options, $value);\n        }\n\n        if (!$value instanceof ClusterInterface) {\n            throw new \\InvalidArgumentException(\n                \"An instance of type 'Predis\\Connection\\Aggregate\\ClusterInterface' was expected.\"\n            );\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        return new PredisCluster();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/ConnectionFactoryOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\nuse Predis\\Connection\\Factory;\nuse Predis\\Connection\\FactoryInterface;\n\n/**\n * Configures a connection factory used by the client to create new connection\n * instances for single Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionFactoryOption implements OptionInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        if ($value instanceof FactoryInterface) {\n            return $value;\n        } elseif (is_array($value)) {\n            $factory = $this->getDefault($options);\n\n            foreach ($value as $scheme => $initializer) {\n                $factory->define($scheme, $initializer);\n            }\n\n            return $factory;\n        } else {\n            throw new \\InvalidArgumentException(\n                'Invalid value provided for the connections option.'\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        $factory = new Factory();\n\n        if ($options->defined('parameters')) {\n            $factory->setDefaultParameters($options->parameters);\n        }\n\n        return $factory;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/ExceptionsOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\n/**\n * Configures whether consumers (such as the client) should throw exceptions on\n * Redis errors (-ERR responses) or just return instances of error responses.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ExceptionsOption implements OptionInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        return filter_var($value, FILTER_VALIDATE_BOOLEAN);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        return true;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/OptionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\n/**\n * Defines an handler used by Predis\\Configuration\\Options to filter, validate\n * or return default values for a given option.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface OptionInterface\n{\n    /**\n     * Filters and validates the passed value.\n     *\n     * @param OptionsInterface $options Options container.\n     * @param mixed            $value   Input value.\n     *\n     * @return mixed\n     */\n    public function filter(OptionsInterface $options, $value);\n\n    /**\n     * Returns the default value for the option.\n     *\n     * @param OptionsInterface $options Options container.\n     *\n     * @return mixed\n     */\n    public function getDefault(OptionsInterface $options);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/Options.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\n/**\n * Manages Predis options with filtering, conversion and lazy initialization of\n * values using a mini-DI container approach.\n *\n * {@inheritdoc}\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Options implements OptionsInterface\n{\n    protected $input;\n    protected $options;\n    protected $handlers;\n\n    /**\n     * @param array $options Array of options with their values\n     */\n    public function __construct(array $options = array())\n    {\n        $this->input = $options;\n        $this->options = array();\n        $this->handlers = $this->getHandlers();\n    }\n\n    /**\n     * Ensures that the default options are initialized.\n     *\n     * @return array\n     */\n    protected function getHandlers()\n    {\n        return array(\n            'cluster' => 'Predis\\Configuration\\ClusterOption',\n            'connections' => 'Predis\\Configuration\\ConnectionFactoryOption',\n            'exceptions' => 'Predis\\Configuration\\ExceptionsOption',\n            'prefix' => 'Predis\\Configuration\\PrefixOption',\n            'profile' => 'Predis\\Configuration\\ProfileOption',\n            'replication' => 'Predis\\Configuration\\ReplicationOption',\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault($option)\n    {\n        if (isset($this->handlers[$option])) {\n            $handler = $this->handlers[$option];\n            $handler = new $handler();\n\n            return $handler->getDefault($this);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function defined($option)\n    {\n        return\n            array_key_exists($option, $this->options) ||\n            array_key_exists($option, $this->input)\n        ;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __isset($option)\n    {\n        return (\n            array_key_exists($option, $this->options) ||\n            array_key_exists($option, $this->input)\n        ) && $this->__get($option) !== null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __get($option)\n    {\n        if (isset($this->options[$option]) || array_key_exists($option, $this->options)) {\n            return $this->options[$option];\n        }\n\n        if (isset($this->input[$option]) || array_key_exists($option, $this->input)) {\n            $value = $this->input[$option];\n            unset($this->input[$option]);\n\n            if (is_object($value) && method_exists($value, '__invoke')) {\n                $value = $value($this, $option);\n            }\n\n            if (isset($this->handlers[$option])) {\n                $handler = $this->handlers[$option];\n                $handler = new $handler();\n                $value = $handler->filter($this, $value);\n            }\n\n            return $this->options[$option] = $value;\n        }\n\n        if (isset($this->handlers[$option])) {\n            return $this->options[$option] = $this->getDefault($option);\n        }\n\n        return;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/OptionsInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\n/**\n * Interface defining a container for client options.\n *\n * @property-read mixed aggregate   Custom connection aggregator.\n * @property-read mixed cluster     Aggregate connection for clustering.\n * @property-read mixed connections Connection factory.\n * @property-read mixed exceptions  Toggles exceptions in client for -ERR responses.\n * @property-read mixed prefix      Key prefixing strategy using the given prefix.\n * @property-read mixed profile     Server profile.\n * @property-read mixed replication Aggregate connection for replication.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface OptionsInterface\n{\n    /**\n     * Returns the default value for the given option.\n     *\n     * @param string $option Name of the option.\n     *\n     * @return mixed|null\n     */\n    public function getDefault($option);\n\n    /**\n     * Checks if the given option has been set by the user upon initialization.\n     *\n     * @param string $option Name of the option.\n     *\n     * @return bool\n     */\n    public function defined($option);\n\n    /**\n     * Checks if the given option has been set and does not evaluate to NULL.\n     *\n     * @param string $option Name of the option.\n     *\n     * @return bool\n     */\n    public function __isset($option);\n\n    /**\n     * Returns the value of the given option.\n     *\n     * @param string $option Name of the option.\n     *\n     * @return mixed|null\n     */\n    public function __get($option);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/PrefixOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\nuse Predis\\Command\\Processor\\KeyPrefixProcessor;\nuse Predis\\Command\\Processor\\ProcessorInterface;\n\n/**\n * Configures a command processor that apply the specified prefix string to a\n * series of Redis commands considered prefixable.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PrefixOption implements OptionInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        if ($value instanceof ProcessorInterface) {\n            return $value;\n        }\n\n        return new KeyPrefixProcessor($value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        // NOOP\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/ProfileOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\nuse Predis\\Profile\\Factory;\nuse Predis\\Profile\\ProfileInterface;\nuse Predis\\Profile\\RedisProfile;\n\n/**\n * Configures the server profile to be used by the client to create command\n * instances depending on the specified version of the Redis server.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ProfileOption implements OptionInterface\n{\n    /**\n     * Sets the commands processors that need to be applied to the profile.\n     *\n     * @param OptionsInterface $options Client options.\n     * @param ProfileInterface $profile Server profile.\n     */\n    protected function setProcessors(OptionsInterface $options, ProfileInterface $profile)\n    {\n        if (isset($options->prefix) && $profile instanceof RedisProfile) {\n            // NOTE: directly using __get('prefix') is actually a workaround for\n            // HHVM 2.3.0. It's correct and respects the options interface, it's\n            // just ugly. We will remove this hack when HHVM will fix re-entrant\n            // calls to __get() once and for all.\n\n            $profile->setProcessor($options->__get('prefix'));\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        if (is_string($value)) {\n            $value = Factory::get($value);\n            $this->setProcessors($options, $value);\n        } elseif (!$value instanceof ProfileInterface) {\n            throw new \\InvalidArgumentException('Invalid value for the profile option.');\n        }\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        $profile = Factory::getDefault();\n        $this->setProcessors($options, $profile);\n\n        return $profile;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Configuration/ReplicationOption.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Configuration;\n\nuse Predis\\Connection\\Aggregate\\MasterSlaveReplication;\nuse Predis\\Connection\\Aggregate\\ReplicationInterface;\nuse Predis\\Connection\\Aggregate\\SentinelReplication;\n\n/**\n * Configures an aggregate connection used for master/slave replication among\n * multiple Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ReplicationOption implements OptionInterface\n{\n    /**\n     * {@inheritdoc}\n     *\n     * @todo There's more code than needed due to a bug in filter_var() as\n     *       discussed here https://bugs.php.net/bug.php?id=49510 and  different\n     *       behaviours when encountering NULL values on PHP 5.3.\n     */\n    public function filter(OptionsInterface $options, $value)\n    {\n        if ($value instanceof ReplicationInterface) {\n            return $value;\n        }\n\n        if (is_bool($value) || $value === null) {\n            return $value ? $this->getDefault($options) : null;\n        }\n\n        if ($value === 'sentinel') {\n            return function ($sentinels, $options) {\n                return new SentinelReplication($options->service, $sentinels, $options->connections);\n            };\n        }\n\n        if (\n            !is_object($value) &&\n            null !== $asbool = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)\n        ) {\n            return $asbool ? $this->getDefault($options) : null;\n        }\n\n        throw new \\InvalidArgumentException(\n            \"An instance of type 'Predis\\Connection\\Aggregate\\ReplicationInterface' was expected.\"\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getDefault(OptionsInterface $options)\n    {\n        $replication = new MasterSlaveReplication();\n\n        if ($options->autodiscovery) {\n            $replication->setConnectionFactory($options->connections);\n            $replication->setAutoDiscovery(true);\n        }\n\n        return $replication;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/AbstractConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\CommunicationException;\nuse Predis\\Protocol\\ProtocolException;\n\n/**\n * Base class with the common logic used by connection classes to communicate\n * with Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class AbstractConnection implements NodeConnectionInterface\n{\n    private $resource;\n    private $cachedId;\n\n    protected $parameters;\n    protected $initCommands = array();\n\n    /**\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     */\n    public function __construct(ParametersInterface $parameters)\n    {\n        $this->parameters = $this->assertParameters($parameters);\n    }\n\n    /**\n     * Disconnects from the server and destroys the underlying resource when\n     * PHP's garbage collector kicks in.\n     */\n    public function __destruct()\n    {\n        $this->disconnect();\n    }\n\n    /**\n     * Checks some of the parameters used to initialize the connection.\n     *\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return ParametersInterface\n     */\n    abstract protected function assertParameters(ParametersInterface $parameters);\n\n    /**\n     * Creates the underlying resource used to communicate with Redis.\n     *\n     * @return mixed\n     */\n    abstract protected function createResource();\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        return isset($this->resource);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if (!$this->isConnected()) {\n            $this->resource = $this->createResource();\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        unset($this->resource);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function addConnectCommand(CommandInterface $command)\n    {\n        $this->initCommands[] = $command;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $this->writeRequest($command);\n\n        return $this->readResponse($command);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        return $this->read();\n    }\n\n    /**\n     * Helper method that returns an exception message augmented with useful\n     * details from the connection parameters.\n     *\n     * @param string $message Error message.\n     *\n     * @return string\n     */\n    private function createExceptionMessage($message)\n    {\n        $parameters = $this->parameters;\n\n        if ($parameters->scheme === 'unix') {\n            return \"$message [$parameters->scheme:$parameters->path]\";\n        }\n\n        if (filter_var($parameters->host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {\n            return \"$message [$parameters->scheme://[$parameters->host]:$parameters->port]\";\n        }\n\n        return \"$message [$parameters->scheme://$parameters->host:$parameters->port]\";\n    }\n\n    /**\n     * Helper method to handle connection errors.\n     *\n     * @param string $message Error message.\n     * @param int    $code    Error code.\n     */\n    protected function onConnectionError($message, $code = null)\n    {\n        CommunicationException::handle(\n            new ConnectionException($this, static::createExceptionMessage($message), $code)\n        );\n    }\n\n    /**\n     * Helper method to handle protocol errors.\n     *\n     * @param string $message Error message.\n     */\n    protected function onProtocolError($message)\n    {\n        CommunicationException::handle(\n            new ProtocolException($this, static::createExceptionMessage($message))\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getResource()\n    {\n        if (isset($this->resource)) {\n            return $this->resource;\n        }\n\n        $this->connect();\n\n        return $this->resource;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getParameters()\n    {\n        return $this->parameters;\n    }\n\n    /**\n     * Gets an identifier for the connection.\n     *\n     * @return string\n     */\n    protected function getIdentifier()\n    {\n        if ($this->parameters->scheme === 'unix') {\n            return $this->parameters->path;\n        }\n\n        return \"{$this->parameters->host}:{$this->parameters->port}\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __toString()\n    {\n        if (!isset($this->cachedId)) {\n            $this->cachedId = $this->getIdentifier();\n        }\n\n        return $this->cachedId;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array('parameters', 'initCommands');\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/ClusterInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\Connection\\AggregateConnectionInterface;\n\n/**\n * Defines a cluster of Redis servers formed by aggregating multiple connection\n * instances to single Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ClusterInterface extends AggregateConnectionInterface\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/MasterSlaveReplication.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\ClientException;\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\RawCommand;\nuse Predis\\Connection\\ConnectionException;\nuse Predis\\Connection\\FactoryInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\Replication\\MissingMasterException;\nuse Predis\\Replication\\ReplicationStrategy;\nuse Predis\\Response\\ErrorInterface as ResponseErrorInterface;\n\n/**\n * Aggregate connection handling replication of Redis nodes configured in a\n * single master / multiple slaves setup.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MasterSlaveReplication implements ReplicationInterface\n{\n    /**\n     * @var ReplicationStrategy\n     */\n    protected $strategy;\n\n    /**\n     * @var NodeConnectionInterface\n     */\n    protected $master;\n\n    /**\n     * @var NodeConnectionInterface[]\n     */\n    protected $slaves = array();\n\n    /**\n     * @var NodeConnectionInterface\n     */\n    protected $current;\n\n    /**\n     * @var bool\n     */\n    protected $autoDiscovery = false;\n\n    /**\n     * @var FactoryInterface\n     */\n    protected $connectionFactory;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ReplicationStrategy $strategy = null)\n    {\n        $this->strategy = $strategy ?: new ReplicationStrategy();\n    }\n\n    /**\n     * Configures the automatic discovery of the replication configuration on failure.\n     *\n     * @param bool $value Enable or disable auto discovery.\n     */\n    public function setAutoDiscovery($value)\n    {\n        if (!$this->connectionFactory) {\n            throw new ClientException('Automatic discovery requires a connection factory');\n        }\n\n        $this->autoDiscovery = (bool) $value;\n    }\n\n    /**\n     * Sets the connection factory used to create the connections by the auto\n     * discovery procedure.\n     *\n     * @param FactoryInterface $connectionFactory Connection factory instance.\n     */\n    public function setConnectionFactory(FactoryInterface $connectionFactory)\n    {\n        $this->connectionFactory = $connectionFactory;\n    }\n\n    /**\n     * Resets the connection state.\n     */\n    protected function reset()\n    {\n        $this->current = null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function add(NodeConnectionInterface $connection)\n    {\n        $alias = $connection->getParameters()->alias;\n\n        if ($alias === 'master') {\n            $this->master = $connection;\n        } else {\n            $this->slaves[$alias ?: \"slave-$connection\"] = $connection;\n        }\n\n        $this->reset();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove(NodeConnectionInterface $connection)\n    {\n        if ($connection->getParameters()->alias === 'master') {\n            $this->master = null;\n            $this->reset();\n\n            return true;\n        } else {\n            if (($id = array_search($connection, $this->slaves, true)) !== false) {\n                unset($this->slaves[$id]);\n                $this->reset();\n\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnection(CommandInterface $command)\n    {\n        if (!$this->current) {\n            if ($this->strategy->isReadOperation($command) && $slave = $this->pickSlave()) {\n                $this->current = $slave;\n            } else {\n                $this->current = $this->getMasterOrDie();\n            }\n\n            return $this->current;\n        }\n\n        if ($this->current === $master = $this->getMasterOrDie()) {\n            return $master;\n        }\n\n        if (!$this->strategy->isReadOperation($command) || !$this->slaves) {\n            $this->current = $master;\n        }\n\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnectionById($connectionId)\n    {\n        if ($connectionId === 'master') {\n            return $this->master;\n        }\n\n        if (isset($this->slaves[$connectionId])) {\n            return $this->slaves[$connectionId];\n        }\n\n        return;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function switchTo($connection)\n    {\n        if (!$connection instanceof NodeConnectionInterface) {\n            $connection = $this->getConnectionById($connection);\n        }\n\n        if (!$connection) {\n            throw new \\InvalidArgumentException('Invalid connection or connection not found.');\n        }\n\n        if ($connection !== $this->master && !in_array($connection, $this->slaves, true)) {\n            throw new \\InvalidArgumentException('Invalid connection or connection not found.');\n        }\n\n        $this->current = $connection;\n    }\n\n    /**\n     * Switches to the master server.\n     */\n    public function switchToMaster()\n    {\n        $this->switchTo('master');\n    }\n\n    /**\n     * Switches to a random slave server.\n     */\n    public function switchToSlave()\n    {\n        $connection = $this->pickSlave();\n        $this->switchTo($connection);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrent()\n    {\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMaster()\n    {\n        return $this->master;\n    }\n\n    /**\n     * Returns the connection associated to the master server.\n     *\n     * @return NodeConnectionInterface\n     */\n    private function getMasterOrDie()\n    {\n        if (!$connection = $this->getMaster()) {\n            throw new MissingMasterException('No master server available for replication');\n        }\n\n        return $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlaves()\n    {\n        return array_values($this->slaves);\n    }\n\n    /**\n     * Returns the underlying replication strategy.\n     *\n     * @return ReplicationStrategy\n     */\n    public function getReplicationStrategy()\n    {\n        return $this->strategy;\n    }\n\n    /**\n     * Returns a random slave.\n     *\n     * @return NodeConnectionInterface\n     */\n    protected function pickSlave()\n    {\n        if ($this->slaves) {\n            return $this->slaves[array_rand($this->slaves)];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        return $this->current ? $this->current->isConnected() : false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if (!$this->current) {\n            if (!$this->current = $this->pickSlave()) {\n                if (!$this->current = $this->getMaster()) {\n                    throw new ClientException('No available connection for replication');\n                }\n            }\n        }\n\n        $this->current->connect();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        if ($this->master) {\n            $this->master->disconnect();\n        }\n\n        foreach ($this->slaves as $connection) {\n            $connection->disconnect();\n        }\n    }\n\n    /**\n     * Handles response from INFO.\n     *\n     * @param string $response\n     *\n     * @return array\n     */\n    private function handleInfoResponse($response)\n    {\n        $info = array();\n\n        foreach (preg_split('/\\r?\\n/', $response) as $row) {\n            if (strpos($row, ':') === false) {\n                continue;\n            }\n\n            list($k, $v) = explode(':', $row, 2);\n            $info[$k] = $v;\n        }\n\n        return $info;\n    }\n\n    /**\n     * Fetches the replication configuration from one of the servers.\n     */\n    public function discover()\n    {\n        if (!$this->connectionFactory) {\n            throw new ClientException('Discovery requires a connection factory');\n        }\n\n        RETRY_FETCH: {\n            try {\n                if ($connection = $this->getMaster()) {\n                    $this->discoverFromMaster($connection, $this->connectionFactory);\n                } elseif ($connection = $this->pickSlave()) {\n                    $this->discoverFromSlave($connection, $this->connectionFactory);\n                } else {\n                    throw new ClientException('No connection available for discovery');\n                }\n            } catch (ConnectionException $exception) {\n                $this->remove($connection);\n                goto RETRY_FETCH;\n            }\n        }\n    }\n\n    /**\n     * Discovers the replication configuration by contacting the master node.\n     *\n     * @param NodeConnectionInterface $connection        Connection to the master node.\n     * @param FactoryInterface        $connectionFactory Connection factory instance.\n     */\n    protected function discoverFromMaster(NodeConnectionInterface $connection, FactoryInterface $connectionFactory)\n    {\n        $response = $connection->executeCommand(RawCommand::create('INFO', 'REPLICATION'));\n        $replication = $this->handleInfoResponse($response);\n\n        if ($replication['role'] !== 'master') {\n            throw new ClientException(\"Role mismatch (expected master, got slave) [$connection]\");\n        }\n\n        $this->slaves = array();\n\n        foreach ($replication as $k => $v) {\n            $parameters = null;\n\n            if (strpos($k, 'slave') === 0 && preg_match('/ip=(?P<host>.*),port=(?P<port>\\d+)/', $v, $parameters)) {\n                $slaveConnection = $connectionFactory->create(array(\n                    'host' => $parameters['host'],\n                    'port' => $parameters['port'],\n                ));\n\n                $this->add($slaveConnection);\n            }\n        }\n    }\n\n    /**\n     * Discovers the replication configuration by contacting one of the slaves.\n     *\n     * @param NodeConnectionInterface $connection        Connection to one of the slaves.\n     * @param FactoryInterface        $connectionFactory Connection factory instance.\n     */\n    protected function discoverFromSlave(NodeConnectionInterface $connection, FactoryInterface $connectionFactory)\n    {\n        $response = $connection->executeCommand(RawCommand::create('INFO', 'REPLICATION'));\n        $replication = $this->handleInfoResponse($response);\n\n        if ($replication['role'] !== 'slave') {\n            throw new ClientException(\"Role mismatch (expected slave, got master) [$connection]\");\n        }\n\n        $masterConnection = $connectionFactory->create(array(\n            'host' => $replication['master_host'],\n            'port' => $replication['master_port'],\n            'alias' => 'master',\n        ));\n\n        $this->add($masterConnection);\n\n        $this->discoverFromMaster($masterConnection, $connectionFactory);\n    }\n\n    /**\n     * Retries the execution of a command upon slave failure.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $method  Actual method.\n     *\n     * @return mixed\n     */\n    private function retryCommandOnFailure(CommandInterface $command, $method)\n    {\n        RETRY_COMMAND: {\n            try {\n                $connection = $this->getConnection($command);\n                $response = $connection->$method($command);\n\n                if ($response instanceof ResponseErrorInterface && $response->getErrorType() === 'LOADING') {\n                    throw new ConnectionException($connection, \"Redis is loading the dataset in memory [$connection]\");\n                }\n            } catch (ConnectionException $exception) {\n                $connection = $exception->getConnection();\n                $connection->disconnect();\n\n                if ($connection === $this->master && !$this->autoDiscovery) {\n                    // Throw immediately when master connection is failing, even\n                    // when the command represents a read-only operation, unless\n                    // automatic discovery has been enabled.\n                    throw $exception;\n                } else {\n                    // Otherwise remove the failing slave and attempt to execute\n                    // the command again on one of the remaining slaves...\n                    $this->remove($connection);\n                }\n\n                // ... that is, unless we have no more connections to use.\n                if (!$this->slaves && !$this->master) {\n                    throw $exception;\n                } elseif ($this->autoDiscovery) {\n                    $this->discover();\n                }\n\n                goto RETRY_COMMAND;\n            } catch (MissingMasterException $exception) {\n                if ($this->autoDiscovery) {\n                    $this->discover();\n                } else {\n                    throw $exception;\n                }\n\n                goto RETRY_COMMAND;\n            }\n        }\n\n        return $response;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        return $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        return $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array('master', 'slaves', 'strategy');\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/PredisCluster.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\Cluster\\PredisStrategy;\nuse Predis\\Cluster\\StrategyInterface;\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Abstraction for a cluster of aggregate connections to various Redis servers\n * implementing client-side sharding based on pluggable distribution strategies.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n *\n * @todo Add the ability to remove connections from pool.\n */\nclass PredisCluster implements ClusterInterface, \\IteratorAggregate, \\Countable\n{\n    private $pool;\n    private $strategy;\n    private $distributor;\n\n    /**\n     * @param StrategyInterface $strategy Optional cluster strategy.\n     */\n    public function __construct(StrategyInterface $strategy = null)\n    {\n        $this->pool = array();\n        $this->strategy = $strategy ?: new PredisStrategy();\n        $this->distributor = $this->strategy->getDistributor();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        foreach ($this->pool as $connection) {\n            if ($connection->isConnected()) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        foreach ($this->pool as $connection) {\n            $connection->connect();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        foreach ($this->pool as $connection) {\n            $connection->disconnect();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function add(NodeConnectionInterface $connection)\n    {\n        $parameters = $connection->getParameters();\n\n        if (isset($parameters->alias)) {\n            $this->pool[$parameters->alias] = $connection;\n        } else {\n            $this->pool[] = $connection;\n        }\n\n        $weight = isset($parameters->weight) ? $parameters->weight : null;\n        $this->distributor->add($connection, $weight);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove(NodeConnectionInterface $connection)\n    {\n        if (($id = array_search($connection, $this->pool, true)) !== false) {\n            unset($this->pool[$id]);\n            $this->distributor->remove($connection);\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Removes a connection instance using its alias or index.\n     *\n     * @param string $connectionID Alias or index of a connection.\n     *\n     * @return bool Returns true if the connection was in the pool.\n     */\n    public function removeById($connectionID)\n    {\n        if ($connection = $this->getConnectionById($connectionID)) {\n            return $this->remove($connection);\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnection(CommandInterface $command)\n    {\n        $slot = $this->strategy->getSlot($command);\n\n        if (!isset($slot)) {\n            throw new NotSupportedException(\n                \"Cannot use '{$command->getId()}' over clusters of connections.\"\n            );\n        }\n\n        $node = $this->distributor->getBySlot($slot);\n\n        return $node;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnectionById($connectionID)\n    {\n        return isset($this->pool[$connectionID]) ? $this->pool[$connectionID] : null;\n    }\n\n    /**\n     * Retrieves a connection instance from the cluster using a key.\n     *\n     * @param string $key Key string.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getConnectionByKey($key)\n    {\n        $hash = $this->strategy->getSlotByKey($key);\n        $node = $this->distributor->getBySlot($hash);\n\n        return $node;\n    }\n\n    /**\n     * Returns the underlying command hash strategy used to hash commands by\n     * using keys found in their arguments.\n     *\n     * @return StrategyInterface\n     */\n    public function getClusterStrategy()\n    {\n        return $this->strategy;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function count()\n    {\n        return count($this->pool);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        return new \\ArrayIterator($this->pool);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->getConnection($command)->writeRequest($command);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        return $this->getConnection($command)->readResponse($command);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        return $this->getConnection($command)->executeCommand($command);\n    }\n\n    /**\n     * Executes the specified Redis command on all the nodes of a cluster.\n     *\n     * @param CommandInterface $command A Redis command.\n     *\n     * @return array\n     */\n    public function executeCommandOnNodes(CommandInterface $command)\n    {\n        $responses = array();\n\n        foreach ($this->pool as $connection) {\n            $responses[] = $connection->executeCommand($command);\n        }\n\n        return $responses;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/RedisCluster.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\ClientException;\nuse Predis\\Cluster\\RedisStrategy as RedisClusterStrategy;\nuse Predis\\Cluster\\StrategyInterface;\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\RawCommand;\nuse Predis\\Connection\\ConnectionException;\nuse Predis\\Connection\\FactoryInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\NotSupportedException;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\n\n/**\n * Abstraction for a Redis-backed cluster of nodes (Redis >= 3.0.0).\n *\n * This connection backend offers smart support for redis-cluster by handling\n * automatic slots map (re)generation upon -MOVED or -ASK responses returned by\n * Redis when redirecting a client to a different node.\n *\n * The cluster can be pre-initialized using only a subset of the actual nodes in\n * the cluster, Predis will do the rest by adjusting the slots map and creating\n * the missing underlying connection instances on the fly.\n *\n * It is possible to pre-associate connections to a slots range with the \"slots\"\n * parameter in the form \"$first-$last\". This can greatly reduce runtime node\n * guessing and redirections.\n *\n * It is also possible to ask for the full and updated slots map directly to one\n * of the nodes and optionally enable such a behaviour upon -MOVED redirections.\n * Asking for the cluster configuration to Redis is actually done by issuing a\n * CLUSTER SLOTS command to a random node in the pool.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisCluster implements ClusterInterface, \\IteratorAggregate, \\Countable\n{\n    private $useClusterSlots = true;\n    private $pool = array();\n    private $slots = array();\n    private $slotsMap;\n    private $strategy;\n    private $connections;\n    private $retryLimit = 5;\n\n    /**\n     * @param FactoryInterface  $connections Optional connection factory.\n     * @param StrategyInterface $strategy    Optional cluster strategy.\n     */\n    public function __construct(\n        FactoryInterface $connections,\n        StrategyInterface $strategy = null\n    ) {\n        $this->connections = $connections;\n        $this->strategy = $strategy ?: new RedisClusterStrategy();\n    }\n\n    /**\n     * Sets the maximum number of retries for commands upon server failure.\n     *\n     * -1 = unlimited retry attempts\n     *  0 = no retry attempts (fails immediatly)\n     *  n = fail only after n retry attempts\n     *\n     * @param int $retry Number of retry attempts.\n     */\n    public function setRetryLimit($retry)\n    {\n        $this->retryLimit = (int) $retry;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        foreach ($this->pool as $connection) {\n            if ($connection->isConnected()) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if ($connection = $this->getRandomConnection()) {\n            $connection->connect();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        foreach ($this->pool as $connection) {\n            $connection->disconnect();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function add(NodeConnectionInterface $connection)\n    {\n        $this->pool[(string) $connection] = $connection;\n        unset($this->slotsMap);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove(NodeConnectionInterface $connection)\n    {\n        if (false !== $id = array_search($connection, $this->pool, true)) {\n            unset(\n                $this->pool[$id],\n                $this->slotsMap\n            );\n\n            $this->slots = array_diff($this->slots, array($connection));\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Removes a connection instance by using its identifier.\n     *\n     * @param string $connectionID Connection identifier.\n     *\n     * @return bool True if the connection was in the pool.\n     */\n    public function removeById($connectionID)\n    {\n        if (isset($this->pool[$connectionID])) {\n            unset(\n                $this->pool[$connectionID],\n                $this->slotsMap\n            );\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Generates the current slots map by guessing the cluster configuration out\n     * of the connection parameters of the connections in the pool.\n     *\n     * Generation is based on the same algorithm used by Redis to generate the\n     * cluster, so it is most effective when all of the connections supplied on\n     * initialization have the \"slots\" parameter properly set accordingly to the\n     * current cluster configuration.\n     *\n     * @return array\n     */\n    public function buildSlotsMap()\n    {\n        $this->slotsMap = array();\n\n        foreach ($this->pool as $connectionID => $connection) {\n            $parameters = $connection->getParameters();\n\n            if (!isset($parameters->slots)) {\n                continue;\n            }\n\n            foreach (explode(',', $parameters->slots) as $slotRange) {\n                $slots = explode('-', $slotRange, 2);\n\n                if (!isset($slots[1])) {\n                    $slots[1] = $slots[0];\n                }\n\n                $this->setSlots($slots[0], $slots[1], $connectionID);\n            }\n        }\n\n        return $this->slotsMap;\n    }\n\n    /**\n     * Queries the specified node of the cluster to fetch the updated slots map.\n     *\n     * When the connection fails, this method tries to execute the same command\n     * on a different connection picked at random from the pool of known nodes,\n     * up until the retry limit is reached.\n     *\n     * @param NodeConnectionInterface $connection Connection to a node of the cluster.\n     *\n     * @return mixed\n     */\n    private function queryClusterNodeForSlotsMap(NodeConnectionInterface $connection)\n    {\n        $retries = 0;\n        $command = RawCommand::create('CLUSTER', 'SLOTS');\n\n        RETRY_COMMAND: {\n            try {\n                $response = $connection->executeCommand($command);\n            } catch (ConnectionException $exception) {\n                $connection = $exception->getConnection();\n                $connection->disconnect();\n\n                $this->remove($connection);\n\n                if ($retries === $this->retryLimit) {\n                    throw $exception;\n                }\n\n                if (!$connection = $this->getRandomConnection()) {\n                    throw new ClientException('No connections left in the pool for `CLUSTER SLOTS`');\n                }\n\n                ++$retries;\n                goto RETRY_COMMAND;\n            }\n        }\n\n        return $response;\n    }\n\n    /**\n     * Generates an updated slots map fetching the cluster configuration using\n     * the CLUSTER SLOTS command against the specified node or a random one from\n     * the pool.\n     *\n     * @param NodeConnectionInterface $connection Optional connection instance.\n     *\n     * @return array\n     */\n    public function askSlotsMap(NodeConnectionInterface $connection = null)\n    {\n        if (!$connection && !$connection = $this->getRandomConnection()) {\n            return array();\n        }\n\n        $this->resetSlotsMap();\n\n        $response = $this->queryClusterNodeForSlotsMap($connection);\n\n        foreach ($response as $slots) {\n            // We only support master servers for now, so we ignore subsequent\n            // elements in the $slots array identifying slaves.\n            list($start, $end, $master) = $slots;\n\n            if ($master[0] === '') {\n                $this->setSlots($start, $end, (string) $connection);\n            } else {\n                $this->setSlots($start, $end, \"{$master[0]}:{$master[1]}\");\n            }\n        }\n\n        return $this->slotsMap;\n    }\n\n    /**\n     * Resets the slots map cache.\n     */\n    public function resetSlotsMap()\n    {\n        $this->slotsMap = array();\n    }\n\n    /**\n     * Returns the current slots map for the cluster.\n     *\n     * The order of the returned $slot => $server dictionary is not guaranteed.\n     *\n     * @return array\n     */\n    public function getSlotsMap()\n    {\n        if (!isset($this->slotsMap)) {\n            $this->slotsMap = array();\n        }\n\n        return $this->slotsMap;\n    }\n\n    /**\n     * Pre-associates a connection to a slots range to avoid runtime guessing.\n     *\n     * @param int                            $first      Initial slot of the range.\n     * @param int                            $last       Last slot of the range.\n     * @param NodeConnectionInterface|string $connection ID or connection instance.\n     *\n     * @throws \\OutOfBoundsException\n     */\n    public function setSlots($first, $last, $connection)\n    {\n        if ($first < 0x0000 || $first > 0x3FFF ||\n            $last < 0x0000 || $last > 0x3FFF ||\n            $last < $first\n        ) {\n            throw new \\OutOfBoundsException(\n                \"Invalid slot range for $connection: [$first-$last].\"\n            );\n        }\n\n        $slots = array_fill($first, $last - $first + 1, (string) $connection);\n        $this->slotsMap = $this->getSlotsMap() + $slots;\n    }\n\n    /**\n     * Guesses the correct node associated to a given slot using a precalculated\n     * slots map, falling back to the same logic used by Redis to initialize a\n     * cluster (best-effort).\n     *\n     * @param int $slot Slot index.\n     *\n     * @return string Connection ID.\n     */\n    protected function guessNode($slot)\n    {\n        if (!$this->pool) {\n            throw new ClientException('No connections available in the pool');\n        }\n\n        if (!isset($this->slotsMap)) {\n            $this->buildSlotsMap();\n        }\n\n        if (isset($this->slotsMap[$slot])) {\n            return $this->slotsMap[$slot];\n        }\n\n        $count = count($this->pool);\n        $index = min((int) ($slot / (int) (16384 / $count)), $count - 1);\n        $nodes = array_keys($this->pool);\n\n        return $nodes[$index];\n    }\n\n    /**\n     * Creates a new connection instance from the given connection ID.\n     *\n     * @param string $connectionID Identifier for the connection.\n     *\n     * @return NodeConnectionInterface\n     */\n    protected function createConnection($connectionID)\n    {\n        $separator = strrpos($connectionID, ':');\n\n        return $this->connections->create(array(\n            'host' => substr($connectionID, 0, $separator),\n            'port' => substr($connectionID, $separator + 1),\n        ));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnection(CommandInterface $command)\n    {\n        $slot = $this->strategy->getSlot($command);\n\n        if (!isset($slot)) {\n            throw new NotSupportedException(\n                \"Cannot use '{$command->getId()}' with redis-cluster.\"\n            );\n        }\n\n        if (isset($this->slots[$slot])) {\n            return $this->slots[$slot];\n        } else {\n            return $this->getConnectionBySlot($slot);\n        }\n    }\n\n    /**\n     * Returns the connection currently associated to a given slot.\n     *\n     * @param int $slot Slot index.\n     *\n     * @throws \\OutOfBoundsException\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getConnectionBySlot($slot)\n    {\n        if ($slot < 0x0000 || $slot > 0x3FFF) {\n            throw new \\OutOfBoundsException(\"Invalid slot [$slot].\");\n        }\n\n        if (isset($this->slots[$slot])) {\n            return $this->slots[$slot];\n        }\n\n        $connectionID = $this->guessNode($slot);\n\n        if (!$connection = $this->getConnectionById($connectionID)) {\n            $connection = $this->createConnection($connectionID);\n            $this->pool[$connectionID] = $connection;\n        }\n\n        return $this->slots[$slot] = $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnectionById($connectionID)\n    {\n        if (isset($this->pool[$connectionID])) {\n            return $this->pool[$connectionID];\n        }\n    }\n\n    /**\n     * Returns a random connection from the pool.\n     *\n     * @return NodeConnectionInterface|null\n     */\n    protected function getRandomConnection()\n    {\n        if ($this->pool) {\n            return $this->pool[array_rand($this->pool)];\n        }\n    }\n\n    /**\n     * Permanently associates the connection instance to a new slot.\n     * The connection is added to the connections pool if not yet included.\n     *\n     * @param NodeConnectionInterface $connection Connection instance.\n     * @param int                     $slot       Target slot index.\n     */\n    protected function move(NodeConnectionInterface $connection, $slot)\n    {\n        $this->pool[(string) $connection] = $connection;\n        $this->slots[(int) $slot] = $connection;\n    }\n\n    /**\n     * Handles -ERR responses returned by Redis.\n     *\n     * @param CommandInterface       $command Command that generated the -ERR response.\n     * @param ErrorResponseInterface $error   Redis error response object.\n     *\n     * @return mixed\n     */\n    protected function onErrorResponse(CommandInterface $command, ErrorResponseInterface $error)\n    {\n        $details = explode(' ', $error->getMessage(), 2);\n\n        switch ($details[0]) {\n            case 'MOVED':\n                return $this->onMovedResponse($command, $details[1]);\n\n            case 'ASK':\n                return $this->onAskResponse($command, $details[1]);\n\n            default:\n                return $error;\n        }\n    }\n\n    /**\n     * Handles -MOVED responses by executing again the command against the node\n     * indicated by the Redis response.\n     *\n     * @param CommandInterface $command Command that generated the -MOVED response.\n     * @param string           $details Parameters of the -MOVED response.\n     *\n     * @return mixed\n     */\n    protected function onMovedResponse(CommandInterface $command, $details)\n    {\n        list($slot, $connectionID) = explode(' ', $details, 2);\n\n        if (!$connection = $this->getConnectionById($connectionID)) {\n            $connection = $this->createConnection($connectionID);\n        }\n\n        if ($this->useClusterSlots) {\n            $this->askSlotsMap($connection);\n        }\n\n        $this->move($connection, $slot);\n        $response = $this->executeCommand($command);\n\n        return $response;\n    }\n\n    /**\n     * Handles -ASK responses by executing again the command against the node\n     * indicated by the Redis response.\n     *\n     * @param CommandInterface $command Command that generated the -ASK response.\n     * @param string           $details Parameters of the -ASK response.\n     *\n     * @return mixed\n     */\n    protected function onAskResponse(CommandInterface $command, $details)\n    {\n        list($slot, $connectionID) = explode(' ', $details, 2);\n\n        if (!$connection = $this->getConnectionById($connectionID)) {\n            $connection = $this->createConnection($connectionID);\n        }\n\n        $connection->executeCommand(RawCommand::create('ASKING'));\n        $response = $connection->executeCommand($command);\n\n        return $response;\n    }\n\n    /**\n     * Ensures that a command is executed one more time on connection failure.\n     *\n     * The connection to the node that generated the error is evicted from the\n     * pool before trying to fetch an updated slots map from another node. If\n     * the new slots map points to an unreachable server the client gives up and\n     * throws the exception as the nodes participating in the cluster may still\n     * have to agree that something changed in the configuration of the cluster.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $method  Actual method.\n     *\n     * @return mixed\n     */\n    private function retryCommandOnFailure(CommandInterface $command, $method)\n    {\n        $failure = false;\n\n        RETRY_COMMAND: {\n            try {\n                $response = $this->getConnection($command)->$method($command);\n            } catch (ConnectionException $exception) {\n                $connection = $exception->getConnection();\n                $connection->disconnect();\n\n                $this->remove($connection);\n\n                if ($failure) {\n                    throw $exception;\n                } elseif ($this->useClusterSlots) {\n                    $this->askSlotsMap();\n                }\n\n                $failure = true;\n\n                goto RETRY_COMMAND;\n            }\n        }\n\n        return $response;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        return $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $response = $this->retryCommandOnFailure($command, __FUNCTION__);\n\n        if ($response instanceof ErrorResponseInterface) {\n            return $this->onErrorResponse($command, $response);\n        }\n\n        return $response;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function count()\n    {\n        return count($this->pool);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getIterator()\n    {\n        if ($this->useClusterSlots) {\n            $slotsmap = $this->getSlotsMap() ?: $this->askSlotsMap();\n        } else {\n            $slotsmap = $this->getSlotsMap() ?: $this->buildSlotsMap();\n        }\n\n        $connections = array();\n\n        foreach (array_unique($slotsmap) as $node) {\n            if (!$connection = $this->getConnectionById($node)) {\n                $this->add($connection = $this->createConnection($node));\n            }\n\n            $connections[] = $connection;\n        }\n\n        return new \\ArrayIterator($connections);\n    }\n\n    /**\n     * Returns the underlying command hash strategy used to hash commands by\n     * using keys found in their arguments.\n     *\n     * @return StrategyInterface\n     */\n    public function getClusterStrategy()\n    {\n        return $this->strategy;\n    }\n\n    /**\n     * Returns the underlying connection factory used to create new connection\n     * instances to Redis nodes indicated by redis-cluster.\n     *\n     * @return FactoryInterface\n     */\n    public function getConnectionFactory()\n    {\n        return $this->connections;\n    }\n\n    /**\n     * Enables automatic fetching of the current slots map from one of the nodes\n     * using the CLUSTER SLOTS command. This option is enabled by default as\n     * asking the current slots map to Redis upon -MOVED responses may reduce\n     * overhead by eliminating the trial-and-error nature of the node guessing\n     * procedure, mostly when targeting many keys that would end up in a lot of\n     * redirections.\n     *\n     * The slots map can still be manually fetched using the askSlotsMap()\n     * method whether or not this option is enabled.\n     *\n     * @param bool $value Enable or disable the use of CLUSTER SLOTS.\n     */\n    public function useClusterSlots($value)\n    {\n        $this->useClusterSlots = (bool) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/ReplicationInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\Connection\\AggregateConnectionInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\n\n/**\n * Defines a group of Redis nodes in a master / slave replication setup.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ReplicationInterface extends AggregateConnectionInterface\n{\n    /**\n     * Switches the internal connection instance in use.\n     *\n     * @param string $connection Alias of a connection\n     */\n    public function switchTo($connection);\n\n    /**\n     * Returns the connection instance currently in use by the aggregate\n     * connection.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getCurrent();\n\n    /**\n     * Returns the connection instance for the master Redis node.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getMaster();\n\n    /**\n     * Returns a list of connection instances to slave nodes.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getSlaves();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Aggregate/SentinelReplication.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection\\Aggregate;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Command\\RawCommand;\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\ConnectionException;\nuse Predis\\Connection\\FactoryInterface as ConnectionFactoryInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\Connection\\Parameters;\nuse Predis\\Replication\\ReplicationStrategy;\nuse Predis\\Replication\\RoleException;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\ServerException;\n\n/**\n * @author Daniele Alessandri <suppakilla@gmail.com>\n * @author Ville Mattila <ville@eventio.fi>\n */\nclass SentinelReplication implements ReplicationInterface\n{\n    /**\n     * @var NodeConnectionInterface\n     */\n    protected $master;\n\n    /**\n     * @var NodeConnectionInterface[]\n     */\n    protected $slaves = array();\n\n    /**\n     * @var NodeConnectionInterface\n     */\n    protected $current;\n\n    /**\n     * @var string\n     */\n    protected $service;\n\n    /**\n     * @var ConnectionFactoryInterface\n     */\n    protected $connectionFactory;\n\n    /**\n     * @var ReplicationStrategy\n     */\n    protected $strategy;\n\n    /**\n     * @var NodeConnectionInterface[]\n     */\n    protected $sentinels = array();\n\n    /**\n     * @var NodeConnectionInterface\n     */\n    protected $sentinelConnection;\n\n    /**\n     * @var float\n     */\n    protected $sentinelTimeout = 0.100;\n\n    /**\n     * Max number of automatic retries of commands upon server failure.\n     *\n     * -1 = unlimited retry attempts\n     *  0 = no retry attempts (fails immediatly)\n     *  n = fail only after n retry attempts\n     *\n     * @var int\n     */\n    protected $retryLimit = 20;\n\n    /**\n     * Time to wait in milliseconds before fetching a new configuration from one\n     * of the sentinel servers.\n     *\n     * @var int\n     */\n    protected $retryWait = 1000;\n\n    /**\n     * Flag for automatic fetching of available sentinels.\n     *\n     * @var bool\n     */\n    protected $updateSentinels = false;\n\n    /**\n     * @param string                     $service           Name of the service for autodiscovery.\n     * @param array                      $sentinels         Sentinel servers connection parameters.\n     * @param ConnectionFactoryInterface $connectionFactory Connection factory instance.\n     * @param ReplicationStrategy        $strategy          Replication strategy instance.\n     */\n    public function __construct(\n        $service,\n        array $sentinels,\n        ConnectionFactoryInterface $connectionFactory,\n        ReplicationStrategy $strategy = null\n    ) {\n        $this->sentinels = $sentinels;\n        $this->service = $service;\n        $this->connectionFactory = $connectionFactory;\n        $this->strategy = $strategy ?: new ReplicationStrategy();\n    }\n\n    /**\n     * Sets a default timeout for connections to sentinels.\n     *\n     * When \"timeout\" is present in the connection parameters of sentinels, its\n     * value overrides the default sentinel timeout.\n     *\n     * @param float $timeout Timeout value.\n     */\n    public function setSentinelTimeout($timeout)\n    {\n        $this->sentinelTimeout = (float) $timeout;\n    }\n\n    /**\n     * Sets the maximum number of retries for commands upon server failure.\n     *\n     * -1 = unlimited retry attempts\n     *  0 = no retry attempts (fails immediatly)\n     *  n = fail only after n retry attempts\n     *\n     * @param int $retry Number of retry attempts.\n     */\n    public function setRetryLimit($retry)\n    {\n        $this->retryLimit = (int) $retry;\n    }\n\n    /**\n     * Sets the time to wait (in seconds) before fetching a new configuration\n     * from one of the sentinels.\n     *\n     * @param float $seconds Time to wait before the next attempt.\n     */\n    public function setRetryWait($seconds)\n    {\n        $this->retryWait = (float) $seconds;\n    }\n\n    /**\n     * Set automatic fetching of available sentinels.\n     *\n     * @param bool $update Enable or disable automatic updates.\n     */\n    public function setUpdateSentinels($update)\n    {\n        $this->updateSentinels = (bool) $update;\n    }\n\n    /**\n     * Resets the current connection.\n     */\n    protected function reset()\n    {\n        $this->current = null;\n    }\n\n    /**\n     * Wipes the current list of master and slaves nodes.\n     */\n    protected function wipeServerList()\n    {\n        $this->reset();\n\n        $this->master = null;\n        $this->slaves = array();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function add(NodeConnectionInterface $connection)\n    {\n        $alias = $connection->getParameters()->alias;\n\n        if ($alias === 'master') {\n            $this->master = $connection;\n        } else {\n            $this->slaves[$alias ?: count($this->slaves)] = $connection;\n        }\n\n        $this->reset();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function remove(NodeConnectionInterface $connection)\n    {\n        if ($connection === $this->master) {\n            $this->master = null;\n            $this->reset();\n\n            return true;\n        }\n\n        if (false !== $id = array_search($connection, $this->slaves, true)) {\n            unset($this->slaves[$id]);\n            $this->reset();\n\n            return true;\n        }\n\n        return false;\n    }\n\n    /**\n     * Creates a new connection to a sentinel server.\n     *\n     * @return NodeConnectionInterface\n     */\n    protected function createSentinelConnection($parameters)\n    {\n        if ($parameters instanceof NodeConnectionInterface) {\n            return $parameters;\n        }\n\n        if (is_string($parameters)) {\n            $parameters = Parameters::parse($parameters);\n        }\n\n        if (is_array($parameters)) {\n            // We explicitly set \"database\" and \"password\" to null,\n            // so that no AUTH and SELECT command is send to the sentinels.\n            $parameters['database'] = null;\n            $parameters['password'] = null;\n\n            if (!isset($parameters['timeout'])) {\n                $parameters['timeout'] = $this->sentinelTimeout;\n            }\n        }\n\n        $connection = $this->connectionFactory->create($parameters);\n\n        return $connection;\n    }\n\n    /**\n     * Returns the current sentinel connection.\n     *\n     * If there is no active sentinel connection, a new connection is created.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getSentinelConnection()\n    {\n        if (!$this->sentinelConnection) {\n            if (!$this->sentinels) {\n                throw new \\Predis\\ClientException('No sentinel server available for autodiscovery.');\n            }\n\n            $sentinel = array_shift($this->sentinels);\n            $this->sentinelConnection = $this->createSentinelConnection($sentinel);\n        }\n\n        return $this->sentinelConnection;\n    }\n\n    /**\n     * Fetches an updated list of sentinels from a sentinel.\n     */\n    public function updateSentinels()\n    {\n        SENTINEL_QUERY: {\n            $sentinel = $this->getSentinelConnection();\n\n            try {\n                $payload = $sentinel->executeCommand(\n                    RawCommand::create('SENTINEL', 'sentinels', $this->service)\n                );\n\n                $this->sentinels = array();\n                // NOTE: sentinel server does not return itself, so we add it back.\n                $this->sentinels[] = $sentinel->getParameters()->toArray();\n\n                foreach ($payload as $sentinel) {\n                    $this->sentinels[] = array(\n                        'host' => $sentinel[3],\n                        'port' => $sentinel[5],\n                    );\n                }\n            } catch (ConnectionException $exception) {\n                $this->sentinelConnection = null;\n\n                goto SENTINEL_QUERY;\n            }\n        }\n    }\n\n    /**\n     * Fetches the details for the master and slave servers from a sentinel.\n     */\n    public function querySentinel()\n    {\n        $this->wipeServerList();\n\n        $this->updateSentinels();\n        $this->getMaster();\n        $this->getSlaves();\n    }\n\n    /**\n     * Handles error responses returned by redis-sentinel.\n     *\n     * @param NodeConnectionInterface $sentinel Connection to a sentinel server.\n     * @param ErrorResponseInterface  $error    Error response.\n     */\n    private function handleSentinelErrorResponse(NodeConnectionInterface $sentinel, ErrorResponseInterface $error)\n    {\n        if ($error->getErrorType() === 'IDONTKNOW') {\n            throw new ConnectionException($sentinel, $error->getMessage());\n        } else {\n            throw new ServerException($error->getMessage());\n        }\n    }\n\n    /**\n     * Fetches the details for the master server from a sentinel.\n     *\n     * @param NodeConnectionInterface $sentinel Connection to a sentinel server.\n     * @param string                  $service  Name of the service.\n     *\n     * @return array\n     */\n    protected function querySentinelForMaster(NodeConnectionInterface $sentinel, $service)\n    {\n        $payload = $sentinel->executeCommand(\n            RawCommand::create('SENTINEL', 'get-master-addr-by-name', $service)\n        );\n\n        if ($payload === null) {\n            throw new ServerException('ERR No such master with that name');\n        }\n\n        if ($payload instanceof ErrorResponseInterface) {\n            $this->handleSentinelErrorResponse($sentinel, $payload);\n        }\n\n        return array(\n            'host' => $payload[0],\n            'port' => $payload[1],\n            'alias' => 'master',\n        );\n    }\n\n    /**\n     * Fetches the details for the slave servers from a sentinel.\n     *\n     * @param NodeConnectionInterface $sentinel Connection to a sentinel server.\n     * @param string                  $service  Name of the service.\n     *\n     * @return array\n     */\n    protected function querySentinelForSlaves(NodeConnectionInterface $sentinel, $service)\n    {\n        $slaves = array();\n\n        $payload = $sentinel->executeCommand(\n            RawCommand::create('SENTINEL', 'slaves', $service)\n        );\n\n        if ($payload instanceof ErrorResponseInterface) {\n            $this->handleSentinelErrorResponse($sentinel, $payload);\n        }\n\n        foreach ($payload as $slave) {\n            $flags = explode(',', $slave[9]);\n\n            if (array_intersect($flags, array('s_down', 'o_down', 'disconnected'))) {\n                continue;\n            }\n\n            $slaves[] = array(\n                'host' => $slave[3],\n                'port' => $slave[5],\n                'alias' => \"slave-$slave[1]\",\n            );\n        }\n\n        return $slaves;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getCurrent()\n    {\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMaster()\n    {\n        if ($this->master) {\n            return $this->master;\n        }\n\n        if ($this->updateSentinels) {\n            $this->updateSentinels();\n        }\n\n        SENTINEL_QUERY: {\n            $sentinel = $this->getSentinelConnection();\n\n            try {\n                $masterParameters = $this->querySentinelForMaster($sentinel, $this->service);\n                $masterConnection = $this->connectionFactory->create($masterParameters);\n\n                $this->add($masterConnection);\n            } catch (ConnectionException $exception) {\n                $this->sentinelConnection = null;\n\n                goto SENTINEL_QUERY;\n            }\n        }\n\n        return $masterConnection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSlaves()\n    {\n        if ($this->slaves) {\n            return array_values($this->slaves);\n        }\n\n        if ($this->updateSentinels) {\n            $this->updateSentinels();\n        }\n\n        SENTINEL_QUERY: {\n            $sentinel = $this->getSentinelConnection();\n\n            try {\n                $slavesParameters = $this->querySentinelForSlaves($sentinel, $this->service);\n\n                foreach ($slavesParameters as $slaveParameters) {\n                    $this->add($this->connectionFactory->create($slaveParameters));\n                }\n            } catch (ConnectionException $exception) {\n                $this->sentinelConnection = null;\n\n                goto SENTINEL_QUERY;\n            }\n        }\n\n        return array_values($this->slaves ?: array());\n    }\n\n    /**\n     * Returns a random slave.\n     *\n     * @return NodeConnectionInterface\n     */\n    protected function pickSlave()\n    {\n        if ($slaves = $this->getSlaves()) {\n            return $slaves[rand(1, count($slaves)) - 1];\n        }\n    }\n\n    /**\n     * Returns the connection instance in charge for the given command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return NodeConnectionInterface\n     */\n    private function getConnectionInternal(CommandInterface $command)\n    {\n        if (!$this->current) {\n            if ($this->strategy->isReadOperation($command) && $slave = $this->pickSlave()) {\n                $this->current = $slave;\n            } else {\n                $this->current = $this->getMaster();\n            }\n\n            return $this->current;\n        }\n\n        if ($this->current === $this->master) {\n            return $this->current;\n        }\n\n        if (!$this->strategy->isReadOperation($command)) {\n            $this->current = $this->getMaster();\n        }\n\n        return $this->current;\n    }\n\n    /**\n     * Asserts that the specified connection matches an expected role.\n     *\n     * @param NodeConnectionInterface $sentinel Connection to a redis server.\n     * @param string                  $role     Expected role of the server (\"master\", \"slave\" or \"sentinel\").\n     */\n    protected function assertConnectionRole(NodeConnectionInterface $connection, $role)\n    {\n        $role = strtolower($role);\n        $actualRole = $connection->executeCommand(RawCommand::create('ROLE'));\n\n        if ($role !== $actualRole[0]) {\n            throw new RoleException($connection, \"Expected $role but got $actualRole[0] [$connection]\");\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnection(CommandInterface $command)\n    {\n        $connection = $this->getConnectionInternal($command);\n\n        if (!$connection->isConnected()) {\n            // When we do not have any available slave in the pool we can expect\n            // read-only operations to hit the master server.\n            $expectedRole = $this->strategy->isReadOperation($command) && $this->slaves ? 'slave' : 'master';\n            $this->assertConnectionRole($connection, $expectedRole);\n        }\n\n        return $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getConnectionById($connectionId)\n    {\n        if ($connectionId === 'master') {\n            return $this->getMaster();\n        }\n\n        $this->getSlaves();\n\n        if (isset($this->slaves[$connectionId])) {\n            return $this->slaves[$connectionId];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function switchTo($connection)\n    {\n        if (!$connection instanceof NodeConnectionInterface) {\n            $connection = $this->getConnectionById($connection);\n        }\n\n        if ($connection && $connection === $this->current) {\n            return;\n        }\n\n        if ($connection !== $this->master && !in_array($connection, $this->slaves, true)) {\n            throw new \\InvalidArgumentException('Invalid connection or connection not found.');\n        }\n\n        $connection->connect();\n\n        if ($this->current) {\n            $this->current->disconnect();\n        }\n\n        $this->current = $connection;\n    }\n\n    /**\n     * Switches to the master server.\n     */\n    public function switchToMaster()\n    {\n        $this->switchTo('master');\n    }\n\n    /**\n     * Switches to a random slave server.\n     */\n    public function switchToSlave()\n    {\n        $connection = $this->pickSlave();\n        $this->switchTo($connection);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        return $this->current ? $this->current->isConnected() : false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if (!$this->current) {\n            if (!$this->current = $this->pickSlave()) {\n                $this->current = $this->getMaster();\n            }\n        }\n\n        $this->current->connect();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        if ($this->master) {\n            $this->master->disconnect();\n        }\n\n        foreach ($this->slaves as $connection) {\n            $connection->disconnect();\n        }\n    }\n\n    /**\n     * Retries the execution of a command upon server failure after asking a new\n     * configuration to one of the sentinels.\n     *\n     * @param CommandInterface $command Command instance.\n     * @param string           $method  Actual method.\n     *\n     * @return mixed\n     */\n    private function retryCommandOnFailure(CommandInterface $command, $method)\n    {\n        $retries = 0;\n\n        SENTINEL_RETRY: {\n            try {\n                $response = $this->getConnection($command)->$method($command);\n            } catch (CommunicationException $exception) {\n                $this->wipeServerList();\n                $exception->getConnection()->disconnect();\n\n                if ($retries == $this->retryLimit) {\n                    throw $exception;\n                }\n\n                usleep($this->retryWait * 1000);\n\n                ++$retries;\n                goto SENTINEL_RETRY;\n            }\n        }\n\n        return $response;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        return $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        return $this->retryCommandOnFailure($command, __FUNCTION__);\n    }\n\n    /**\n     * Returns the underlying replication strategy.\n     *\n     * @return ReplicationStrategy\n     */\n    public function getReplicationStrategy()\n    {\n        return $this->strategy;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array(\n            'master', 'slaves', 'service', 'sentinels', 'connectionFactory', 'strategy',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/AggregateConnectionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Defines a virtual connection composed of multiple connection instances to\n * single Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface AggregateConnectionInterface extends ConnectionInterface\n{\n    /**\n     * Adds a connection instance to the aggregate connection.\n     *\n     * @param NodeConnectionInterface $connection Connection instance.\n     */\n    public function add(NodeConnectionInterface $connection);\n\n    /**\n     * Removes the specified connection instance from the aggregate connection.\n     *\n     * @param NodeConnectionInterface $connection Connection instance.\n     *\n     * @return bool Returns true if the connection was in the pool.\n     */\n    public function remove(NodeConnectionInterface $connection);\n\n    /**\n     * Returns the connection instance in charge for the given command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function getConnection(CommandInterface $command);\n\n    /**\n     * Returns a connection instance from the aggregate connection by its alias.\n     *\n     * @param string $connectionID Connection alias.\n     *\n     * @return NodeConnectionInterface|null\n     */\n    public function getConnectionById($connectionID);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/CompositeConnectionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\n/**\n * Defines a connection to communicate with a single Redis server that leverages\n * an external protocol processor to handle pluggable protocol handlers.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface CompositeConnectionInterface extends NodeConnectionInterface\n{\n    /**\n     * Returns the protocol processor used by the connection.\n     */\n    public function getProtocol();\n\n    /**\n     * Writes the buffer containing over the connection.\n     *\n     * @param string $buffer String buffer to be sent over the connection.\n     */\n    public function writeBuffer($buffer);\n\n    /**\n     * Reads the given number of bytes from the connection.\n     *\n     * @param int $length Number of bytes to read from the connection.\n     *\n     * @return string\n     */\n    public function readBuffer($length);\n\n    /**\n     * Reads a line from the connection.\n     *\n     * @param string\n     */\n    public function readLine();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/CompositeStreamConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Protocol\\ProtocolProcessorInterface;\nuse Predis\\Protocol\\Text\\ProtocolProcessor as TextProtocolProcessor;\n\n/**\n * Connection abstraction to Redis servers based on PHP's stream that uses an\n * external protocol processor defining the protocol used for the communication.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass CompositeStreamConnection extends StreamConnection implements CompositeConnectionInterface\n{\n    protected $protocol;\n\n    /**\n     * @param ParametersInterface        $parameters Initialization parameters for the connection.\n     * @param ProtocolProcessorInterface $protocol   Protocol processor.\n     */\n    public function __construct(\n        ParametersInterface $parameters,\n        ProtocolProcessorInterface $protocol = null\n    ) {\n        $this->parameters = $this->assertParameters($parameters);\n        $this->protocol = $protocol ?: new TextProtocolProcessor();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getProtocol()\n    {\n        return $this->protocol;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeBuffer($buffer)\n    {\n        $this->write($buffer);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readBuffer($length)\n    {\n        if ($length <= 0) {\n            throw new \\InvalidArgumentException('Length parameter must be greater than 0.');\n        }\n\n        $value = '';\n        $socket = $this->getResource();\n\n        do {\n            $chunk = fread($socket, $length);\n\n            if ($chunk === false || $chunk === '') {\n                $this->onConnectionError('Error while reading bytes from the server.');\n            }\n\n            $value .= $chunk;\n        } while (($length -= strlen($chunk)) > 0);\n\n        return $value;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readLine()\n    {\n        $value = '';\n        $socket = $this->getResource();\n\n        do {\n            $chunk = fgets($socket);\n\n            if ($chunk === false || $chunk === '') {\n                $this->onConnectionError('Error while reading line from the server.');\n            }\n\n            $value .= $chunk;\n        } while (substr($value, -2) !== \"\\r\\n\");\n\n        return substr($value, 0, -2);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->protocol->write($this, $command);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read()\n    {\n        return $this->protocol->read($this);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array_merge(parent::__sleep(), array('protocol'));\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/ConnectionException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\CommunicationException;\n\n/**\n * Exception class that identifies connection-related errors.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionException extends CommunicationException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/ConnectionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Defines a connection object used to communicate with one or multiple\n * Redis servers.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ConnectionInterface\n{\n    /**\n     * Opens the connection to Redis.\n     */\n    public function connect();\n\n    /**\n     * Closes the connection to Redis.\n     */\n    public function disconnect();\n\n    /**\n     * Checks if the connection to Redis is considered open.\n     *\n     * @return bool\n     */\n    public function isConnected();\n\n    /**\n     * Writes the request for the given command over the connection.\n     *\n     * @param CommandInterface $command Command instance.\n     */\n    public function writeRequest(CommandInterface $command);\n\n    /**\n     * Reads the response to the given command from the connection.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return mixed\n     */\n    public function readResponse(CommandInterface $command);\n\n    /**\n     * Writes a request for the given command over the connection and reads back\n     * the response returned by Redis.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return mixed\n     */\n    public function executeCommand(CommandInterface $command);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Factory.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\RawCommand;\n\n/**\n * Standard connection factory for creating connections to Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Factory implements FactoryInterface\n{\n    private $defaults = array();\n\n    protected $schemes = array(\n        'tcp' => 'Predis\\Connection\\StreamConnection',\n        'unix' => 'Predis\\Connection\\StreamConnection',\n        'tls' => 'Predis\\Connection\\StreamConnection',\n        'redis' => 'Predis\\Connection\\StreamConnection',\n        'rediss' => 'Predis\\Connection\\StreamConnection',\n        'http' => 'Predis\\Connection\\WebdisConnection',\n    );\n\n    /**\n     * Checks if the provided argument represents a valid connection class\n     * implementing Predis\\Connection\\NodeConnectionInterface. Optionally,\n     * callable objects are used for lazy initialization of connection objects.\n     *\n     * @param mixed $initializer FQN of a connection class or a callable for lazy initialization.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return mixed\n     */\n    protected function checkInitializer($initializer)\n    {\n        if (is_callable($initializer)) {\n            return $initializer;\n        }\n\n        $class = new \\ReflectionClass($initializer);\n\n        if (!$class->isSubclassOf('Predis\\Connection\\NodeConnectionInterface')) {\n            throw new \\InvalidArgumentException(\n                'A connection initializer must be a valid connection class or a callable object.'\n            );\n        }\n\n        return $initializer;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function define($scheme, $initializer)\n    {\n        $this->schemes[$scheme] = $this->checkInitializer($initializer);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function undefine($scheme)\n    {\n        unset($this->schemes[$scheme]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function create($parameters)\n    {\n        if (!$parameters instanceof ParametersInterface) {\n            $parameters = $this->createParameters($parameters);\n        }\n\n        $scheme = $parameters->scheme;\n\n        if (!isset($this->schemes[$scheme])) {\n            throw new \\InvalidArgumentException(\"Unknown connection scheme: '$scheme'.\");\n        }\n\n        $initializer = $this->schemes[$scheme];\n\n        if (is_callable($initializer)) {\n            $connection = call_user_func($initializer, $parameters, $this);\n        } else {\n            $connection = new $initializer($parameters);\n            $this->prepareConnection($connection);\n        }\n\n        if (!$connection instanceof NodeConnectionInterface) {\n            throw new \\UnexpectedValueException(\n                'Objects returned by connection initializers must implement '.\n                \"'Predis\\Connection\\NodeConnectionInterface'.\"\n            );\n        }\n\n        return $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function aggregate(AggregateConnectionInterface $connection, array $parameters)\n    {\n        foreach ($parameters as $node) {\n            $connection->add($node instanceof NodeConnectionInterface ? $node : $this->create($node));\n        }\n    }\n\n    /**\n     * Assigns a default set of parameters applied to new connections.\n     *\n     * The set of parameters passed to create a new connection have precedence\n     * over the default values set for the connection factory.\n     *\n     * @param array $parameters Set of connection parameters.\n     */\n    public function setDefaultParameters(array $parameters)\n    {\n        $this->defaults = $parameters;\n    }\n\n    /**\n     * Returns the default set of parameters applied to new connections.\n     *\n     * @return array\n     */\n    public function getDefaultParameters()\n    {\n        return $this->defaults;\n    }\n\n    /**\n     * Creates a connection parameters instance from the supplied argument.\n     *\n     * @param mixed $parameters Original connection parameters.\n     *\n     * @return ParametersInterface\n     */\n    protected function createParameters($parameters)\n    {\n        if (is_string($parameters)) {\n            $parameters = Parameters::parse($parameters);\n        } else {\n            $parameters = $parameters ?: array();\n        }\n\n        if ($this->defaults) {\n            $parameters += $this->defaults;\n        }\n\n        return new Parameters($parameters);\n    }\n\n    /**\n     * Prepares a connection instance after its initialization.\n     *\n     * @param NodeConnectionInterface $connection Connection instance.\n     */\n    protected function prepareConnection(NodeConnectionInterface $connection)\n    {\n        $parameters = $connection->getParameters();\n\n        if (isset($parameters->password)) {\n            $connection->addConnectCommand(\n                new RawCommand(array('AUTH', $parameters->password))\n            );\n        }\n\n        if (isset($parameters->database)) {\n            $connection->addConnectCommand(\n                new RawCommand(array('SELECT', $parameters->database))\n            );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/FactoryInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\n/**\n * Interface for classes providing a factory of connections to Redis nodes.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface FactoryInterface\n{\n    /**\n     * Defines or overrides the connection class identified by a scheme prefix.\n     *\n     * @param string $scheme      Target connection scheme.\n     * @param mixed  $initializer Fully-qualified name of a class or a callable for lazy initialization.\n     */\n    public function define($scheme, $initializer);\n\n    /**\n     * Undefines the connection identified by a scheme prefix.\n     *\n     * @param string $scheme Target connection scheme.\n     */\n    public function undefine($scheme);\n\n    /**\n     * Creates a new connection object.\n     *\n     * @param mixed $parameters Initialization parameters for the connection.\n     *\n     * @return NodeConnectionInterface\n     */\n    public function create($parameters);\n\n    /**\n     * Aggregates single connections into an aggregate connection instance.\n     *\n     * @param AggregateConnectionInterface $aggregate  Aggregate connection instance.\n     * @param array                        $parameters List of parameters for each connection.\n     */\n    public function aggregate(AggregateConnectionInterface $aggregate, array $parameters);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/NodeConnectionInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Defines a connection used to communicate with a single Redis node.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface NodeConnectionInterface extends ConnectionInterface\n{\n    /**\n     * Returns a string representation of the connection.\n     *\n     * @return string\n     */\n    public function __toString();\n\n    /**\n     * Returns the underlying resource used to communicate with Redis.\n     *\n     * @return mixed\n     */\n    public function getResource();\n\n    /**\n     * Returns the parameters used to initialize the connection.\n     *\n     * @return ParametersInterface\n     */\n    public function getParameters();\n\n    /**\n     * Pushes the given command into a queue of commands executed when\n     * establishing the actual connection to Redis.\n     *\n     * @param CommandInterface $command Instance of a Redis command.\n     */\n    public function addConnectCommand(CommandInterface $command);\n\n    /**\n     * Reads a response from the server.\n     *\n     * @return mixed\n     */\n    public function read();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/Parameters.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\n/**\n * Container for connection parameters used to initialize connections to Redis.\n *\n * {@inheritdoc}\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Parameters implements ParametersInterface\n{\n    private $parameters;\n\n    private static $defaults = array(\n        'scheme' => 'tcp',\n        'host' => '127.0.0.1',\n        'port' => 6379,\n    );\n\n    /**\n     * @param array $parameters Named array of connection parameters.\n     */\n    public function __construct(array $parameters = array())\n    {\n        $this->parameters = $this->filter($parameters) + $this->getDefaults();\n    }\n\n    /**\n     * Returns some default parameters with their values.\n     *\n     * @return array\n     */\n    protected function getDefaults()\n    {\n        return self::$defaults;\n    }\n\n    /**\n     * Creates a new instance by supplying the initial parameters either in the\n     * form of an URI string or a named array.\n     *\n     * @param array|string $parameters Set of connection parameters.\n     *\n     * @return Parameters\n     */\n    public static function create($parameters)\n    {\n        if (is_string($parameters)) {\n            $parameters = static::parse($parameters);\n        }\n\n        return new static($parameters ?: array());\n    }\n\n    /**\n     * Parses an URI string returning an array of connection parameters.\n     *\n     * When using the \"redis\" and \"rediss\" schemes the URI is parsed according\n     * to the rules defined by the provisional registration documents approved\n     * by IANA. If the URI has a password in its \"user-information\" part or a\n     * database number in the \"path\" part these values override the values of\n     * \"password\" and \"database\" if they are present in the \"query\" part.\n     *\n     * @link http://www.iana.org/assignments/uri-schemes/prov/redis\n     * @link http://www.iana.org/assignments/uri-schemes/prov/rediss\n     *\n     * @param string $uri URI string.\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return array\n     */\n    public static function parse($uri)\n    {\n        if (stripos($uri, 'unix://') === 0) {\n            // parse_url() can parse unix:/path/to/sock so we do not need the\n            // unix:///path/to/sock hack, we will support it anyway until 2.0.\n            $uri = str_ireplace('unix://', 'unix:', $uri);\n        }\n\n        if (!$parsed = parse_url($uri)) {\n            throw new \\InvalidArgumentException(\"Invalid parameters URI: $uri\");\n        }\n\n        if (\n            isset($parsed['host'])\n            && false !== strpos($parsed['host'], '[')\n            && false !== strpos($parsed['host'], ']')\n        ) {\n            $parsed['host'] = substr($parsed['host'], 1, -1);\n        }\n\n        if (isset($parsed['query'])) {\n            parse_str($parsed['query'], $queryarray);\n            unset($parsed['query']);\n\n            $parsed = array_merge($parsed, $queryarray);\n        }\n\n        if (stripos($uri, 'redis') === 0) {\n            if (isset($parsed['pass'])) {\n                $parsed['password'] = $parsed['pass'];\n                unset($parsed['pass']);\n            }\n\n            if (isset($parsed['path']) && preg_match('/^\\/(\\d+)(\\/.*)?/', $parsed['path'], $path)) {\n                $parsed['database'] = $path[1];\n\n                if (isset($path[2])) {\n                    $parsed['path'] = $path[2];\n                } else {\n                    unset($parsed['path']);\n                }\n            }\n        }\n\n        return $parsed;\n    }\n\n    /**\n     * Validates and converts each value of the connection parameters array.\n     *\n     * @param array $parameters Connection parameters.\n     *\n     * @return array\n     */\n    protected function filter(array $parameters)\n    {\n        return $parameters ?: array();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __get($parameter)\n    {\n        if (isset($this->parameters[$parameter])) {\n            return $this->parameters[$parameter];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __isset($parameter)\n    {\n        return isset($this->parameters[$parameter]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function toArray()\n    {\n        return $this->parameters;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array('parameters');\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/ParametersInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\n/**\n * Interface defining a container for connection parameters.\n *\n * The actual list of connection parameters depends on the features supported by\n * each connection backend class (please refer to their specific documentation),\n * but the most common parameters used through the library are:\n *\n * @property-read string scheme             Connection scheme, such as 'tcp' or 'unix'.\n * @property-read string host               IP address or hostname of Redis.\n * @property-read int    port               TCP port on which Redis is listening to.\n * @property-read string path               Path of a UNIX domain socket file.\n * @property-read string alias              Alias for the connection.\n * @property-read float  timeout            Timeout for the connect() operation.\n * @property-read float  read_write_timeout Timeout for read() and write() operations.\n * @property-read bool   async_connect      Performs the connect() operation asynchronously.\n * @property-read bool   tcp_nodelay        Toggles the Nagle's algorithm for coalescing.\n * @property-read bool   persistent         Leaves the connection open after a GC collection.\n * @property-read string password           Password to access Redis (see the AUTH command).\n * @property-read string database           Database index (see the SELECT command).\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ParametersInterface\n{\n    /**\n     * Checks if the specified parameters is set.\n     *\n     * @param string $parameter Name of the parameter.\n     *\n     * @return bool\n     */\n    public function __isset($parameter);\n\n    /**\n     * Returns the value of the specified parameter.\n     *\n     * @param string $parameter Name of the parameter.\n     *\n     * @return mixed|null\n     */\n    public function __get($parameter);\n\n    /**\n     * Returns an array representation of the connection parameters.\n     *\n     * @return array\n     */\n    public function toArray();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/PhpiredisSocketConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\NotSupportedException;\nuse Predis\\Response\\Error as ErrorResponse;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * This class provides the implementation of a Predis connection that uses the\n * PHP socket extension for network communication and wraps the phpiredis C\n * extension (PHP bindings for hiredis) to parse the Redis protocol.\n *\n * This class is intended to provide an optional low-overhead alternative for\n * processing responses from Redis compared to the standard pure-PHP classes.\n * Differences in speed when dealing with short inline responses are practically\n * nonexistent, the actual speed boost is for big multibulk responses when this\n * protocol processor can parse and return responses very fast.\n *\n * For instructions on how to build and install the phpiredis extension, please\n * consult the repository of the project.\n *\n * The connection parameters supported by this class are:\n *\n *  - scheme: it can be either 'redis', 'tcp' or 'unix'.\n *  - host: hostname or IP address of the server.\n *  - port: TCP port of the server.\n *  - path: path of a UNIX domain socket when scheme is 'unix'.\n *  - timeout: timeout to perform the connection (default is 5 seconds).\n *  - read_write_timeout: timeout of read / write operations.\n *\n * @link http://github.com/nrk/phpiredis\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PhpiredisSocketConnection extends AbstractConnection\n{\n    private $reader;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ParametersInterface $parameters)\n    {\n        $this->assertExtensions();\n\n        parent::__construct($parameters);\n\n        $this->reader = $this->createReader();\n    }\n\n    /**\n     * Disconnects from the server and destroys the underlying resource and the\n     * protocol reader resource when PHP's garbage collector kicks in.\n     */\n    public function __destruct()\n    {\n        phpiredis_reader_destroy($this->reader);\n\n        parent::__destruct();\n    }\n\n    /**\n     * Checks if the socket and phpiredis extensions are loaded in PHP.\n     */\n    protected function assertExtensions()\n    {\n        if (!extension_loaded('sockets')) {\n            throw new NotSupportedException(\n                'The \"sockets\" extension is required by this connection backend.'\n            );\n        }\n\n        if (!extension_loaded('phpiredis')) {\n            throw new NotSupportedException(\n                'The \"phpiredis\" extension is required by this connection backend.'\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function assertParameters(ParametersInterface $parameters)\n    {\n        switch ($parameters->scheme) {\n            case 'tcp':\n            case 'redis':\n            case 'unix':\n                break;\n\n            default:\n                throw new \\InvalidArgumentException(\"Invalid scheme: '$parameters->scheme'.\");\n        }\n\n        if (isset($parameters->persistent)) {\n            throw new NotSupportedException(\n                'Persistent connections are not supported by this connection backend.'\n            );\n        }\n\n        return $parameters;\n    }\n\n    /**\n     * Creates a new instance of the protocol reader resource.\n     *\n     * @return resource\n     */\n    private function createReader()\n    {\n        $reader = phpiredis_reader_create();\n\n        phpiredis_reader_set_status_handler($reader, $this->getStatusHandler());\n        phpiredis_reader_set_error_handler($reader, $this->getErrorHandler());\n\n        return $reader;\n    }\n\n    /**\n     * Returns the underlying protocol reader resource.\n     *\n     * @return resource\n     */\n    protected function getReader()\n    {\n        return $this->reader;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for inline responses.\n     *\n     * @return \\Closure\n     */\n    protected function getStatusHandler()\n    {\n        static $statusHandler;\n\n        if (!$statusHandler) {\n            $statusHandler = function ($payload) {\n                return StatusResponse::get($payload);\n            };\n        }\n\n        return $statusHandler;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for error responses.\n     *\n     * @return \\Closure\n     */\n    protected function getErrorHandler()\n    {\n        static $errorHandler;\n\n        if (!$errorHandler) {\n            $errorHandler = function ($errorMessage) {\n                return new ErrorResponse($errorMessage);\n            };\n        }\n\n        return $errorHandler;\n    }\n\n    /**\n     * Helper method used to throw exceptions on socket errors.\n     */\n    private function emitSocketError()\n    {\n        $errno = socket_last_error();\n        $errstr = socket_strerror($errno);\n\n        $this->disconnect();\n\n        $this->onConnectionError(trim($errstr), $errno);\n    }\n\n    /**\n     * Gets the address of an host from connection parameters.\n     *\n     * @param ParametersInterface $parameters Parameters used to initialize the connection.\n     *\n     * @return string\n     */\n    protected static function getAddress(ParametersInterface $parameters)\n    {\n        if (filter_var($host = $parameters->host, FILTER_VALIDATE_IP)) {\n            return $host;\n        }\n\n        if ($host === $address = gethostbyname($host)) {\n            return false;\n        }\n\n        return $address;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function createResource()\n    {\n        $parameters = $this->parameters;\n\n        if ($parameters->scheme === 'unix') {\n            $address = $parameters->path;\n            $domain = AF_UNIX;\n            $protocol = 0;\n        } else {\n            if (false === $address = self::getAddress($parameters)) {\n                $this->onConnectionError(\"Cannot resolve the address of '$parameters->host'.\");\n            }\n\n            $domain = filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ? AF_INET6 : AF_INET;\n            $protocol = SOL_TCP;\n        }\n\n        $socket = @socket_create($domain, SOCK_STREAM, $protocol);\n\n        if (!is_resource($socket)) {\n            $this->emitSocketError();\n        }\n\n        $this->setSocketOptions($socket, $parameters);\n        $this->connectWithTimeout($socket, $address, $parameters);\n\n        return $socket;\n    }\n\n    /**\n     * Sets options on the socket resource from the connection parameters.\n     *\n     * @param resource            $socket     Socket resource.\n     * @param ParametersInterface $parameters Parameters used to initialize the connection.\n     */\n    private function setSocketOptions($socket, ParametersInterface $parameters)\n    {\n        if ($parameters->scheme !== 'unix') {\n            if (!socket_set_option($socket, SOL_TCP, TCP_NODELAY, 1)) {\n                $this->emitSocketError();\n            }\n\n            if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {\n                $this->emitSocketError();\n            }\n        }\n\n        if (isset($parameters->read_write_timeout)) {\n            $rwtimeout = (float) $parameters->read_write_timeout;\n            $timeoutSec = floor($rwtimeout);\n            $timeoutUsec = ($rwtimeout - $timeoutSec) * 1000000;\n\n            $timeout = array(\n                'sec' => $timeoutSec,\n                'usec' => $timeoutUsec,\n            );\n\n            if (!socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, $timeout)) {\n                $this->emitSocketError();\n            }\n\n            if (!socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, $timeout)) {\n                $this->emitSocketError();\n            }\n        }\n    }\n\n    /**\n     * Opens the actual connection to the server with a timeout.\n     *\n     * @param resource            $socket     Socket resource.\n     * @param string              $address    IP address (DNS-resolved from hostname)\n     * @param ParametersInterface $parameters Parameters used to initialize the connection.\n     *\n     * @return string\n     */\n    private function connectWithTimeout($socket, $address, ParametersInterface $parameters)\n    {\n        socket_set_nonblock($socket);\n\n        if (@socket_connect($socket, $address, (int) $parameters->port) === false) {\n            $error = socket_last_error();\n\n            if ($error != SOCKET_EINPROGRESS && $error != SOCKET_EALREADY) {\n                $this->emitSocketError();\n            }\n        }\n\n        socket_set_block($socket);\n\n        $null = null;\n        $selectable = array($socket);\n\n        $timeout = (isset($parameters->timeout) ? (float) $parameters->timeout : 5.0);\n        $timeoutSecs = floor($timeout);\n        $timeoutUSecs = ($timeout - $timeoutSecs) * 1000000;\n\n        $selected = socket_select($selectable, $selectable, $null, $timeoutSecs, $timeoutUSecs);\n\n        if ($selected === 2) {\n            $this->onConnectionError('Connection refused.', SOCKET_ECONNREFUSED);\n        }\n\n        if ($selected === 0) {\n            $this->onConnectionError('Connection timed out.', SOCKET_ETIMEDOUT);\n        }\n\n        if ($selected === false) {\n            $this->emitSocketError();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if (parent::connect() && $this->initCommands) {\n            foreach ($this->initCommands as $command) {\n                $response = $this->executeCommand($command);\n\n                if ($response instanceof ErrorResponseInterface) {\n                    $this->onConnectionError(\"`{$command->getId()}` failed: $response\", 0);\n                }\n            }\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        if ($this->isConnected()) {\n            socket_close($this->getResource());\n            parent::disconnect();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function write($buffer)\n    {\n        $socket = $this->getResource();\n\n        while (($length = strlen($buffer)) > 0) {\n            $written = socket_write($socket, $buffer, $length);\n\n            if ($length === $written) {\n                return;\n            }\n\n            if ($written === false) {\n                $this->onConnectionError('Error while writing bytes to the server.');\n            }\n\n            $buffer = substr($buffer, $written);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read()\n    {\n        $socket = $this->getResource();\n        $reader = $this->reader;\n\n        while (PHPIREDIS_READER_STATE_INCOMPLETE === $state = phpiredis_reader_get_state($reader)) {\n            if (@socket_recv($socket, $buffer, 4096, 0) === false || $buffer === '' || $buffer === null) {\n                $this->emitSocketError();\n            }\n\n            phpiredis_reader_feed($reader, $buffer);\n        }\n\n        if ($state === PHPIREDIS_READER_STATE_COMPLETE) {\n            return phpiredis_reader_get_reply($reader);\n        } else {\n            $this->onProtocolError(phpiredis_reader_get_error($reader));\n\n            return;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        array_unshift($arguments, $command->getId());\n\n        $this->write(phpiredis_format_command($arguments));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __wakeup()\n    {\n        $this->assertExtensions();\n        $this->reader = $this->createReader();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/PhpiredisStreamConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\NotSupportedException;\nuse Predis\\Response\\Error as ErrorResponse;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * This class provides the implementation of a Predis connection that uses PHP's\n * streams for network communication and wraps the phpiredis C extension (PHP\n * bindings for hiredis) to parse and serialize the Redis protocol.\n *\n * This class is intended to provide an optional low-overhead alternative for\n * processing responses from Redis compared to the standard pure-PHP classes.\n * Differences in speed when dealing with short inline responses are practically\n * nonexistent, the actual speed boost is for big multibulk responses when this\n * protocol processor can parse and return responses very fast.\n *\n * For instructions on how to build and install the phpiredis extension, please\n * consult the repository of the project.\n *\n * The connection parameters supported by this class are:\n *\n *  - scheme: it can be either 'redis', 'tcp' or 'unix'.\n *  - host: hostname or IP address of the server.\n *  - port: TCP port of the server.\n *  - path: path of a UNIX domain socket when scheme is 'unix'.\n *  - timeout: timeout to perform the connection.\n *  - read_write_timeout: timeout of read / write operations.\n *  - async_connect: performs the connection asynchronously.\n *  - tcp_nodelay: enables or disables Nagle's algorithm for coalescing.\n *  - persistent: the connection is left intact after a GC collection.\n *\n * @link https://github.com/nrk/phpiredis\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass PhpiredisStreamConnection extends StreamConnection\n{\n    private $reader;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ParametersInterface $parameters)\n    {\n        $this->assertExtensions();\n\n        parent::__construct($parameters);\n\n        $this->reader = $this->createReader();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __destruct()\n    {\n        phpiredis_reader_destroy($this->reader);\n\n        parent::__destruct();\n    }\n\n    /**\n     * Checks if the phpiredis extension is loaded in PHP.\n     */\n    private function assertExtensions()\n    {\n        if (!extension_loaded('phpiredis')) {\n            throw new NotSupportedException(\n                'The \"phpiredis\" extension is required by this connection backend.'\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function assertSslSupport(ParametersInterface $parameters)\n    {\n        throw new \\InvalidArgumentException('SSL encryption is not supported by this connection backend.');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function createStreamSocket(ParametersInterface $parameters, $address, $flags, $context = null)\n    {\n        $socket = null;\n        $timeout = (isset($parameters->timeout) ? (float) $parameters->timeout : 5.0);\n\n        $resource = @stream_socket_client($address, $errno, $errstr, $timeout, $flags);\n\n        if (!$resource) {\n            $this->onConnectionError(trim($errstr), $errno);\n        }\n\n        if (isset($parameters->read_write_timeout) && function_exists('socket_import_stream')) {\n            $rwtimeout = (float) $parameters->read_write_timeout;\n            $rwtimeout = $rwtimeout > 0 ? $rwtimeout : -1;\n\n            $timeout = array(\n                'sec' => $timeoutSeconds = floor($rwtimeout),\n                'usec' => ($rwtimeout - $timeoutSeconds) * 1000000,\n            );\n\n            $socket = $socket ?: socket_import_stream($resource);\n            @socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, $timeout);\n            @socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, $timeout);\n        }\n\n        if (isset($parameters->tcp_nodelay) && function_exists('socket_import_stream')) {\n            $socket = $socket ?: socket_import_stream($resource);\n            socket_set_option($socket, SOL_TCP, TCP_NODELAY, (int) $parameters->tcp_nodelay);\n        }\n\n        return $resource;\n    }\n\n    /**\n     * Creates a new instance of the protocol reader resource.\n     *\n     * @return resource\n     */\n    private function createReader()\n    {\n        $reader = phpiredis_reader_create();\n\n        phpiredis_reader_set_status_handler($reader, $this->getStatusHandler());\n        phpiredis_reader_set_error_handler($reader, $this->getErrorHandler());\n\n        return $reader;\n    }\n\n    /**\n     * Returns the underlying protocol reader resource.\n     *\n     * @return resource\n     */\n    protected function getReader()\n    {\n        return $this->reader;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for inline responses.\n     *\n     * @return \\Closure\n     */\n    protected function getStatusHandler()\n    {\n        static $statusHandler;\n\n        if (!$statusHandler) {\n            $statusHandler = function ($payload) {\n                return StatusResponse::get($payload);\n            };\n        }\n\n        return $statusHandler;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for error responses.\n     *\n     * @return \\Closure\n     */\n    protected function getErrorHandler()\n    {\n        static $errorHandler;\n\n        if (!$errorHandler) {\n            $errorHandler = function ($errorMessage) {\n                return new ErrorResponse($errorMessage);\n            };\n        }\n\n        return $errorHandler;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read()\n    {\n        $socket = $this->getResource();\n        $reader = $this->reader;\n\n        while (PHPIREDIS_READER_STATE_INCOMPLETE === $state = phpiredis_reader_get_state($reader)) {\n            $buffer = stream_socket_recvfrom($socket, 4096);\n\n            if ($buffer === false || $buffer === '') {\n                $this->onConnectionError('Error while reading bytes from the server.');\n            }\n\n            phpiredis_reader_feed($reader, $buffer);\n        }\n\n        if ($state === PHPIREDIS_READER_STATE_COMPLETE) {\n            return phpiredis_reader_get_reply($reader);\n        } else {\n            $this->onProtocolError(phpiredis_reader_get_error($reader));\n\n            return;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        array_unshift($arguments, $command->getId());\n\n        $this->write(phpiredis_format_command($arguments));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __wakeup()\n    {\n        $this->assertExtensions();\n        $this->reader = $this->createReader();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/StreamConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Response\\Error as ErrorResponse;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * Standard connection to Redis servers implemented on top of PHP's streams.\n * The connection parameters supported by this class are:.\n *\n *  - scheme: it can be either 'redis', 'tcp', 'rediss', 'tls' or 'unix'.\n *  - host: hostname or IP address of the server.\n *  - port: TCP port of the server.\n *  - path: path of a UNIX domain socket when scheme is 'unix'.\n *  - timeout: timeout to perform the connection (default is 5 seconds).\n *  - read_write_timeout: timeout of read / write operations.\n *  - async_connect: performs the connection asynchronously.\n *  - tcp_nodelay: enables or disables Nagle's algorithm for coalescing.\n *  - persistent: the connection is left intact after a GC collection.\n *  - ssl: context options array (see http://php.net/manual/en/context.ssl.php)\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StreamConnection extends AbstractConnection\n{\n    /**\n     * Disconnects from the server and destroys the underlying resource when the\n     * garbage collector kicks in only if the connection has not been marked as\n     * persistent.\n     */\n    public function __destruct()\n    {\n        if (isset($this->parameters->persistent) && $this->parameters->persistent) {\n            return;\n        }\n\n        $this->disconnect();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function assertParameters(ParametersInterface $parameters)\n    {\n        switch ($parameters->scheme) {\n            case 'tcp':\n            case 'redis':\n            case 'unix':\n                break;\n\n            case 'tls':\n            case 'rediss':\n                $this->assertSslSupport($parameters);\n                break;\n\n            default:\n                throw new \\InvalidArgumentException(\"Invalid scheme: '$parameters->scheme'.\");\n        }\n\n        return $parameters;\n    }\n\n    /**\n     * Checks needed conditions for SSL-encrypted connections.\n     *\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function assertSslSupport(ParametersInterface $parameters)\n    {\n        if (\n            filter_var($parameters->persistent, FILTER_VALIDATE_BOOLEAN) &&\n            version_compare(PHP_VERSION, '7.0.0beta') < 0\n        ) {\n            throw new \\InvalidArgumentException('Persistent SSL connections require PHP >= 7.0.0.');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function createResource()\n    {\n        switch ($this->parameters->scheme) {\n            case 'tcp':\n            case 'redis':\n                return $this->tcpStreamInitializer($this->parameters);\n\n            case 'unix':\n                return $this->unixStreamInitializer($this->parameters);\n\n            case 'tls':\n            case 'rediss':\n                return $this->tlsStreamInitializer($this->parameters);\n\n            default:\n                throw new \\InvalidArgumentException(\"Invalid scheme: '{$this->parameters->scheme}'.\");\n        }\n    }\n\n    /**\n     * Creates a connected stream socket resource.\n     *\n     * @param ParametersInterface $parameters Connection parameters.\n     * @param string              $address    Address for stream_socket_client().\n     * @param int                 $flags      Flags for stream_socket_client().\n     *\n     * @return resource\n     */\n    protected function createStreamSocket(ParametersInterface $parameters, $address, $flags)\n    {\n        $timeout = (isset($parameters->timeout) ? (float) $parameters->timeout : 5.0);\n\n        if (!$resource = @stream_socket_client($address, $errno, $errstr, $timeout, $flags)) {\n            $this->onConnectionError(trim($errstr), $errno);\n        }\n\n        if (isset($parameters->read_write_timeout)) {\n            $rwtimeout = (float) $parameters->read_write_timeout;\n            $rwtimeout = $rwtimeout > 0 ? $rwtimeout : -1;\n            $timeoutSeconds = floor($rwtimeout);\n            $timeoutUSeconds = ($rwtimeout - $timeoutSeconds) * 1000000;\n            stream_set_timeout($resource, $timeoutSeconds, $timeoutUSeconds);\n        }\n\n        if (isset($parameters->tcp_nodelay) && function_exists('socket_import_stream')) {\n            $socket = socket_import_stream($resource);\n            socket_set_option($socket, SOL_TCP, TCP_NODELAY, (int) $parameters->tcp_nodelay);\n        }\n\n        return $resource;\n    }\n\n    /**\n     * Initializes a TCP stream resource.\n     *\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @return resource\n     */\n    protected function tcpStreamInitializer(ParametersInterface $parameters)\n    {\n        if (!filter_var($parameters->host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {\n            $address = \"tcp://$parameters->host:$parameters->port\";\n        } else {\n            $address = \"tcp://[$parameters->host]:$parameters->port\";\n        }\n\n        $flags = STREAM_CLIENT_CONNECT;\n\n        if (isset($parameters->async_connect) && $parameters->async_connect) {\n            $flags |= STREAM_CLIENT_ASYNC_CONNECT;\n        }\n\n        if (isset($parameters->persistent)) {\n            if (false !== $persistent = filter_var($parameters->persistent, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) {\n                $flags |= STREAM_CLIENT_PERSISTENT;\n\n                if ($persistent === null) {\n                    $address = \"{$address}/{$parameters->persistent}\";\n                }\n            }\n        }\n\n        $resource = $this->createStreamSocket($parameters, $address, $flags);\n\n        return $resource;\n    }\n\n    /**\n     * Initializes a UNIX stream resource.\n     *\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @return resource\n     */\n    protected function unixStreamInitializer(ParametersInterface $parameters)\n    {\n        if (!isset($parameters->path)) {\n            throw new \\InvalidArgumentException('Missing UNIX domain socket path.');\n        }\n\n        $flags = STREAM_CLIENT_CONNECT;\n\n        if (isset($parameters->persistent)) {\n            if (false !== $persistent = filter_var($parameters->persistent, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) {\n                $flags |= STREAM_CLIENT_PERSISTENT;\n\n                if ($persistent === null) {\n                    throw new \\InvalidArgumentException(\n                        'Persistent connection IDs are not supported when using UNIX domain sockets.'\n                    );\n                }\n            }\n        }\n\n        $resource = $this->createStreamSocket($parameters, \"unix://{$parameters->path}\", $flags);\n\n        return $resource;\n    }\n\n    /**\n     * Initializes a SSL-encrypted TCP stream resource.\n     *\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @return resource\n     */\n    protected function tlsStreamInitializer(ParametersInterface $parameters)\n    {\n        $resource = $this->tcpStreamInitializer($parameters);\n        $metadata = stream_get_meta_data($resource);\n\n        // Detect if crypto mode is already enabled for this stream (PHP >= 7.0.0).\n        if (isset($metadata['crypto'])) {\n            return $resource;\n        }\n\n        if (is_array($parameters->ssl)) {\n            $options = $parameters->ssl;\n        } else {\n            $options = array();\n        }\n\n        if (!isset($options['crypto_type'])) {\n            $options['crypto_type'] = STREAM_CRYPTO_METHOD_TLS_CLIENT;\n        }\n\n        if (!stream_context_set_option($resource, array('ssl' => $options))) {\n            $this->onConnectionError('Error while setting SSL context options');\n        }\n\n        if (!stream_socket_enable_crypto($resource, true, $options['crypto_type'])) {\n            $this->onConnectionError('Error while switching to encrypted communication');\n        }\n\n        return $resource;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        if (parent::connect() && $this->initCommands) {\n            foreach ($this->initCommands as $command) {\n                $response = $this->executeCommand($command);\n\n                if ($response instanceof ErrorResponseInterface) {\n                    $this->onConnectionError(\"`{$command->getId()}` failed: $response\", 0);\n                }\n            }\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        if ($this->isConnected()) {\n            fclose($this->getResource());\n            parent::disconnect();\n        }\n    }\n\n    /**\n     * Performs a write operation over the stream of the buffer containing a\n     * command serialized with the Redis wire protocol.\n     *\n     * @param string $buffer Representation of a command in the Redis wire protocol.\n     */\n    protected function write($buffer)\n    {\n        $socket = $this->getResource();\n\n        while (($length = strlen($buffer)) > 0) {\n            $written = @fwrite($socket, $buffer);\n\n            if ($length === $written) {\n                return;\n            }\n\n            if ($written === false || $written === 0) {\n                $this->onConnectionError('Error while writing bytes to the server.');\n            }\n\n            $buffer = substr($buffer, $written);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read()\n    {\n        $socket = $this->getResource();\n        $chunk = fgets($socket);\n\n        if ($chunk === false || $chunk === '') {\n            $this->onConnectionError('Error while reading line from the server.');\n        }\n\n        $prefix = $chunk[0];\n        $payload = substr($chunk, 1, -2);\n\n        switch ($prefix) {\n            case '+':\n                return StatusResponse::get($payload);\n\n            case '$':\n                $size = (int) $payload;\n\n                if ($size === -1) {\n                    return;\n                }\n\n                $bulkData = '';\n                $bytesLeft = ($size += 2);\n\n                do {\n                    $chunk = fread($socket, min($bytesLeft, 4096));\n\n                    if ($chunk === false || $chunk === '') {\n                        $this->onConnectionError('Error while reading bytes from the server.');\n                    }\n\n                    $bulkData .= $chunk;\n                    $bytesLeft = $size - strlen($bulkData);\n                } while ($bytesLeft > 0);\n\n                return substr($bulkData, 0, -2);\n\n            case '*':\n                $count = (int) $payload;\n\n                if ($count === -1) {\n                    return;\n                }\n\n                $multibulk = array();\n\n                for ($i = 0; $i < $count; ++$i) {\n                    $multibulk[$i] = $this->read();\n                }\n\n                return $multibulk;\n\n            case ':':\n                $integer = (int) $payload;\n                return $integer == $payload ? $integer : $payload;\n\n            case '-':\n                return new ErrorResponse($payload);\n\n            default:\n                $this->onProtocolError(\"Unknown response prefix: '$prefix'.\");\n\n                return;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $commandID = $command->getId();\n        $arguments = $command->getArguments();\n\n        $cmdlen = strlen($commandID);\n        $reqlen = count($arguments) + 1;\n\n        $buffer = \"*{$reqlen}\\r\\n\\${$cmdlen}\\r\\n{$commandID}\\r\\n\";\n\n        foreach ($arguments as $argument) {\n            $arglen = strlen($argument);\n            $buffer .= \"\\${$arglen}\\r\\n{$argument}\\r\\n\";\n        }\n\n        $this->write($buffer);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Connection/WebdisConnection.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Connection;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\NotSupportedException;\nuse Predis\\Protocol\\ProtocolException;\nuse Predis\\Response\\Error as ErrorResponse;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * This class implements a Predis connection that actually talks with Webdis\n * instead of connecting directly to Redis. It relies on the cURL extension to\n * communicate with the web server and the phpiredis extension to parse the\n * protocol for responses returned in the http response bodies.\n *\n * Some features are not yet available or they simply cannot be implemented:\n *   - Pipelining commands.\n *   - Publish / Subscribe.\n *   - MULTI / EXEC transactions (not yet supported by Webdis).\n *\n * The connection parameters supported by this class are:\n *\n *  - scheme: must be 'http'.\n *  - host: hostname or IP address of the server.\n *  - port: TCP port of the server.\n *  - timeout: timeout to perform the connection (default is 5 seconds).\n *  - user: username for authentication.\n *  - pass: password for authentication.\n *\n * @link http://webd.is\n * @link http://github.com/nicolasff/webdis\n * @link http://github.com/seppo0010/phpiredis\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass WebdisConnection implements NodeConnectionInterface\n{\n    private $parameters;\n    private $resource;\n    private $reader;\n\n    /**\n     * @param ParametersInterface $parameters Initialization parameters for the connection.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function __construct(ParametersInterface $parameters)\n    {\n        $this->assertExtensions();\n\n        if ($parameters->scheme !== 'http') {\n            throw new \\InvalidArgumentException(\"Invalid scheme: '{$parameters->scheme}'.\");\n        }\n\n        $this->parameters = $parameters;\n\n        $this->resource = $this->createCurl();\n        $this->reader = $this->createReader();\n    }\n\n    /**\n     * Frees the underlying cURL and protocol reader resources when the garbage\n     * collector kicks in.\n     */\n    public function __destruct()\n    {\n        curl_close($this->resource);\n        phpiredis_reader_destroy($this->reader);\n    }\n\n    /**\n     * Helper method used to throw on unsupported methods.\n     *\n     * @param string $method Name of the unsupported method.\n     *\n     * @throws NotSupportedException\n     */\n    private function throwNotSupportedException($method)\n    {\n        $class = __CLASS__;\n        throw new NotSupportedException(\"The method $class::$method() is not supported.\");\n    }\n\n    /**\n     * Checks if the cURL and phpiredis extensions are loaded in PHP.\n     */\n    private function assertExtensions()\n    {\n        if (!extension_loaded('curl')) {\n            throw new NotSupportedException(\n                'The \"curl\" extension is required by this connection backend.'\n            );\n        }\n\n        if (!extension_loaded('phpiredis')) {\n            throw new NotSupportedException(\n                'The \"phpiredis\" extension is required by this connection backend.'\n            );\n        }\n    }\n\n    /**\n     * Initializes cURL.\n     *\n     * @return resource\n     */\n    private function createCurl()\n    {\n        $parameters = $this->getParameters();\n        $timeout = (isset($parameters->timeout) ? (float) $parameters->timeout : 5.0) * 1000;\n\n        if (filter_var($host = $parameters->host, FILTER_VALIDATE_IP)) {\n            $host = \"[$host]\";\n        }\n\n        $options = array(\n            CURLOPT_FAILONERROR => true,\n            CURLOPT_CONNECTTIMEOUT_MS => $timeout,\n            CURLOPT_URL => \"$parameters->scheme://$host:$parameters->port\",\n            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n            CURLOPT_POST => true,\n            CURLOPT_WRITEFUNCTION => array($this, 'feedReader'),\n        );\n\n        if (isset($parameters->user, $parameters->pass)) {\n            $options[CURLOPT_USERPWD] = \"{$parameters->user}:{$parameters->pass}\";\n        }\n\n        curl_setopt_array($resource = curl_init(), $options);\n\n        return $resource;\n    }\n\n    /**\n     * Initializes the phpiredis protocol reader.\n     *\n     * @return resource\n     */\n    private function createReader()\n    {\n        $reader = phpiredis_reader_create();\n\n        phpiredis_reader_set_status_handler($reader, $this->getStatusHandler());\n        phpiredis_reader_set_error_handler($reader, $this->getErrorHandler());\n\n        return $reader;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for inline responses.\n     *\n     * @return \\Closure\n     */\n    protected function getStatusHandler()\n    {\n        static $statusHandler;\n\n        if (!$statusHandler) {\n            $statusHandler = function ($payload) {\n                return StatusResponse::get($payload);\n            };\n        }\n\n        return $statusHandler;\n    }\n\n    /**\n     * Returns the handler used by the protocol reader for error responses.\n     *\n     * @return \\Closure\n     */\n    protected function getErrorHandler()\n    {\n        static $errorHandler;\n\n        if (!$errorHandler) {\n            $errorHandler = function ($errorMessage) {\n                return new ErrorResponse($errorMessage);\n            };\n        }\n\n        return $errorHandler;\n    }\n\n    /**\n     * Feeds the phpredis reader resource with the data read from the network.\n     *\n     * @param resource $resource Reader resource.\n     * @param string   $buffer   Buffer of data read from a connection.\n     *\n     * @return int\n     */\n    protected function feedReader($resource, $buffer)\n    {\n        phpiredis_reader_feed($this->reader, $buffer);\n\n        return strlen($buffer);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function connect()\n    {\n        // NOOP\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function disconnect()\n    {\n        // NOOP\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function isConnected()\n    {\n        return true;\n    }\n\n    /**\n     * Checks if the specified command is supported by this connection class.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @throws NotSupportedException\n     *\n     * @return string\n     */\n    protected function getCommandId(CommandInterface $command)\n    {\n        switch ($commandID = $command->getId()) {\n            case 'AUTH':\n            case 'SELECT':\n            case 'MULTI':\n            case 'EXEC':\n            case 'WATCH':\n            case 'UNWATCH':\n            case 'DISCARD':\n            case 'MONITOR':\n                throw new NotSupportedException(\"Command '$commandID' is not allowed by Webdis.\");\n\n            default:\n                return $commandID;\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function writeRequest(CommandInterface $command)\n    {\n        $this->throwNotSupportedException(__FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function readResponse(CommandInterface $command)\n    {\n        $this->throwNotSupportedException(__FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $resource = $this->resource;\n        $commandId = $this->getCommandId($command);\n\n        if ($arguments = $command->getArguments()) {\n            $arguments = implode('/', array_map('urlencode', $arguments));\n            $serializedCommand = \"$commandId/$arguments.raw\";\n        } else {\n            $serializedCommand = \"$commandId.raw\";\n        }\n\n        curl_setopt($resource, CURLOPT_POSTFIELDS, $serializedCommand);\n\n        if (curl_exec($resource) === false) {\n            $error = curl_error($resource);\n            $errno = curl_errno($resource);\n\n            throw new ConnectionException($this, trim($error), $errno);\n        }\n\n        if (phpiredis_reader_get_state($this->reader) !== PHPIREDIS_READER_STATE_COMPLETE) {\n            throw new ProtocolException($this, phpiredis_reader_get_error($this->reader));\n        }\n\n        return phpiredis_reader_get_reply($this->reader);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getResource()\n    {\n        return $this->resource;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getParameters()\n    {\n        return $this->parameters;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function addConnectCommand(CommandInterface $command)\n    {\n        $this->throwNotSupportedException(__FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read()\n    {\n        $this->throwNotSupportedException(__FUNCTION__);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __toString()\n    {\n        return \"{$this->parameters->host}:{$this->parameters->port}\";\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __sleep()\n    {\n        return array('parameters');\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __wakeup()\n    {\n        $this->assertExtensions();\n\n        $this->resource = $this->createCurl();\n        $this->reader = $this->createReader();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Monitor/Consumer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Monitor;\n\nuse Predis\\ClientInterface;\nuse Predis\\Connection\\AggregateConnectionInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Redis MONITOR consumer.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Consumer implements \\Iterator\n{\n    private $client;\n    private $valid;\n    private $position;\n\n    /**\n     * @param ClientInterface $client Client instance used by the consumer.\n     */\n    public function __construct(ClientInterface $client)\n    {\n        $this->assertClient($client);\n\n        $this->client = $client;\n\n        $this->start();\n    }\n\n    /**\n     * Automatically stops the consumer when the garbage collector kicks in.\n     */\n    public function __destruct()\n    {\n        $this->stop();\n    }\n\n    /**\n     * Checks if the passed client instance satisfies the required conditions\n     * needed to initialize a monitor consumer.\n     *\n     * @param ClientInterface $client Client instance used by the consumer.\n     *\n     * @throws NotSupportedException\n     */\n    private function assertClient(ClientInterface $client)\n    {\n        if ($client->getConnection() instanceof AggregateConnectionInterface) {\n            throw new NotSupportedException(\n                'Cannot initialize a monitor consumer over aggregate connections.'\n            );\n        }\n\n        if ($client->getProfile()->supportsCommand('MONITOR') === false) {\n            throw new NotSupportedException(\"The current profile does not support 'MONITOR'.\");\n        }\n    }\n\n    /**\n     * Initializes the consumer and sends the MONITOR command to the server.\n     */\n    protected function start()\n    {\n        $this->client->executeCommand(\n            $this->client->createCommand('MONITOR')\n        );\n        $this->valid = true;\n    }\n\n    /**\n     * Stops the consumer. Internally this is done by disconnecting from server\n     * since there is no way to terminate the stream initialized by MONITOR.\n     */\n    public function stop()\n    {\n        $this->client->disconnect();\n        $this->valid = false;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rewind()\n    {\n        // NOOP\n    }\n\n    /**\n     * Returns the last message payload retrieved from the server.\n     *\n     * @return object\n     */\n    public function current()\n    {\n        return $this->getValue();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function key()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function next()\n    {\n        ++$this->position;\n    }\n\n    /**\n     * Checks if the the consumer is still in a valid state to continue.\n     *\n     * @return bool\n     */\n    public function valid()\n    {\n        return $this->valid;\n    }\n\n    /**\n     * Waits for a new message from the server generated by MONITOR and returns\n     * it when available.\n     *\n     * @return object\n     */\n    private function getValue()\n    {\n        $database = 0;\n        $client = null;\n        $event = $this->client->getConnection()->read();\n\n        $callback = function ($matches) use (&$database, &$client) {\n            if (2 === $count = count($matches)) {\n                // Redis <= 2.4\n                $database = (int) $matches[1];\n            }\n\n            if (4 === $count) {\n                // Redis >= 2.6\n                $database = (int) $matches[2];\n                $client = $matches[3];\n            }\n\n            return ' ';\n        };\n\n        $event = preg_replace_callback('/ \\(db (\\d+)\\) | \\[(\\d+) (.*?)\\] /', $callback, $event, 1);\n        @list($timestamp, $command, $arguments) = explode(' ', $event, 3);\n\n        return (object) array(\n            'timestamp' => (float) $timestamp,\n            'database' => $database,\n            'client' => $client,\n            'command' => substr($command, 1, -1),\n            'arguments' => $arguments,\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/NotSupportedException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\n/**\n * Exception class thrown when trying to use features not supported by certain\n * classes or abstractions of Predis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass NotSupportedException extends PredisException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Pipeline/Atomic.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Pipeline;\n\nuse Predis\\ClientException;\nuse Predis\\ClientInterface;\nuse Predis\\Connection\\ConnectionInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\ResponseInterface;\nuse Predis\\Response\\ServerException;\n\n/**\n * Command pipeline wrapped into a MULTI / EXEC transaction.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Atomic extends Pipeline\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function __construct(ClientInterface $client)\n    {\n        if (!$client->getProfile()->supportsCommands(array('multi', 'exec', 'discard'))) {\n            throw new ClientException(\n                \"The current profile does not support 'MULTI', 'EXEC' and 'DISCARD'.\"\n            );\n        }\n\n        parent::__construct($client);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getConnection()\n    {\n        $connection = $this->getClient()->getConnection();\n\n        if (!$connection instanceof NodeConnectionInterface) {\n            $class = __CLASS__;\n\n            throw new ClientException(\"The class '$class' does not support aggregate connections.\");\n        }\n\n        return $connection;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executePipeline(ConnectionInterface $connection, \\SplQueue $commands)\n    {\n        $profile = $this->getClient()->getProfile();\n        $connection->executeCommand($profile->createCommand('multi'));\n\n        foreach ($commands as $command) {\n            $connection->writeRequest($command);\n        }\n\n        foreach ($commands as $command) {\n            $response = $connection->readResponse($command);\n\n            if ($response instanceof ErrorResponseInterface) {\n                $connection->executeCommand($profile->createCommand('discard'));\n                throw new ServerException($response->getMessage());\n            }\n        }\n\n        $executed = $connection->executeCommand($profile->createCommand('exec'));\n\n        if (!isset($executed)) {\n            // TODO: should be throwing a more appropriate exception.\n            throw new ClientException(\n                'The underlying transaction has been aborted by the server.'\n            );\n        }\n\n        if (count($executed) !== count($commands)) {\n            $expected = count($commands);\n            $received = count($executed);\n\n            throw new ClientException(\n                \"Invalid number of responses [expected $expected, received $received].\"\n            );\n        }\n\n        $responses = array();\n        $sizeOfPipe = count($commands);\n        $exceptions = $this->throwServerExceptions();\n\n        for ($i = 0; $i < $sizeOfPipe; ++$i) {\n            $command = $commands->dequeue();\n            $response = $executed[$i];\n\n            if (!$response instanceof ResponseInterface) {\n                $responses[] = $command->parseResponse($response);\n            } elseif ($response instanceof ErrorResponseInterface && $exceptions) {\n                $this->exception($connection, $response);\n            } else {\n                $responses[] = $response;\n            }\n\n            unset($executed[$i]);\n        }\n\n        return $responses;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Pipeline/ConnectionErrorProof.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Pipeline;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\Aggregate\\ClusterInterface;\nuse Predis\\Connection\\ConnectionInterface;\nuse Predis\\Connection\\NodeConnectionInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Command pipeline that does not throw exceptions on connection errors, but\n * returns the exception instances as the rest of the response elements.\n *\n * @todo Awful naming!\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ConnectionErrorProof extends Pipeline\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function getConnection()\n    {\n        return $this->getClient()->getConnection();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executePipeline(ConnectionInterface $connection, \\SplQueue $commands)\n    {\n        if ($connection instanceof NodeConnectionInterface) {\n            return $this->executeSingleNode($connection, $commands);\n        } elseif ($connection instanceof ClusterInterface) {\n            return $this->executeCluster($connection, $commands);\n        } else {\n            $class = get_class($connection);\n\n            throw new NotSupportedException(\"The connection class '$class' is not supported.\");\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeSingleNode(NodeConnectionInterface $connection, \\SplQueue $commands)\n    {\n        $responses = array();\n        $sizeOfPipe = count($commands);\n\n        foreach ($commands as $command) {\n            try {\n                $connection->writeRequest($command);\n            } catch (CommunicationException $exception) {\n                return array_fill(0, $sizeOfPipe, $exception);\n            }\n        }\n\n        for ($i = 0; $i < $sizeOfPipe; ++$i) {\n            $command = $commands->dequeue();\n\n            try {\n                $responses[$i] = $connection->readResponse($command);\n            } catch (CommunicationException $exception) {\n                $add = count($commands) - count($responses);\n                $responses = array_merge($responses, array_fill(0, $add, $exception));\n\n                break;\n            }\n        }\n\n        return $responses;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function executeCluster(ClusterInterface $connection, \\SplQueue $commands)\n    {\n        $responses = array();\n        $sizeOfPipe = count($commands);\n        $exceptions = array();\n\n        foreach ($commands as $command) {\n            $cmdConnection = $connection->getConnection($command);\n\n            if (isset($exceptions[spl_object_hash($cmdConnection)])) {\n                continue;\n            }\n\n            try {\n                $cmdConnection->writeRequest($command);\n            } catch (CommunicationException $exception) {\n                $exceptions[spl_object_hash($cmdConnection)] = $exception;\n            }\n        }\n\n        for ($i = 0; $i < $sizeOfPipe; ++$i) {\n            $command = $commands->dequeue();\n\n            $cmdConnection = $connection->getConnection($command);\n            $connectionHash = spl_object_hash($cmdConnection);\n\n            if (isset($exceptions[$connectionHash])) {\n                $responses[$i] = $exceptions[$connectionHash];\n                continue;\n            }\n\n            try {\n                $responses[$i] = $cmdConnection->readResponse($command);\n            } catch (CommunicationException $exception) {\n                $responses[$i] = $exception;\n                $exceptions[$connectionHash] = $exception;\n            }\n        }\n\n        return $responses;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Pipeline/FireAndForget.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Pipeline;\n\nuse Predis\\Connection\\ConnectionInterface;\n\n/**\n * Command pipeline that writes commands to the servers but discards responses.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass FireAndForget extends Pipeline\n{\n    /**\n     * {@inheritdoc}\n     */\n    protected function executePipeline(ConnectionInterface $connection, \\SplQueue $commands)\n    {\n        while (!$commands->isEmpty()) {\n            $connection->writeRequest($commands->dequeue());\n        }\n\n        $connection->disconnect();\n\n        return array();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Pipeline/Pipeline.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Pipeline;\n\nuse Predis\\ClientContextInterface;\nuse Predis\\ClientException;\nuse Predis\\ClientInterface;\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Connection\\Aggregate\\ReplicationInterface;\nuse Predis\\Connection\\ConnectionInterface;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\ResponseInterface;\nuse Predis\\Response\\ServerException;\n\n/**\n * Implementation of a command pipeline in which write and read operations of\n * Redis commands are pipelined to alleviate the effects of network round-trips.\n *\n * {@inheritdoc}\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Pipeline implements ClientContextInterface\n{\n    private $client;\n    private $pipeline;\n\n    private $responses = array();\n    private $running = false;\n\n    /**\n     * @param ClientInterface $client Client instance used by the context.\n     */\n    public function __construct(ClientInterface $client)\n    {\n        $this->client = $client;\n        $this->pipeline = new \\SplQueue();\n    }\n\n    /**\n     * Queues a command into the pipeline buffer.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return $this\n     */\n    public function __call($method, $arguments)\n    {\n        $command = $this->client->createCommand($method, $arguments);\n        $this->recordCommand($command);\n\n        return $this;\n    }\n\n    /**\n     * Queues a command instance into the pipeline buffer.\n     *\n     * @param CommandInterface $command Command to be queued in the buffer.\n     */\n    protected function recordCommand(CommandInterface $command)\n    {\n        $this->pipeline->enqueue($command);\n    }\n\n    /**\n     * Queues a command instance into the pipeline buffer.\n     *\n     * @param CommandInterface $command Command instance to be queued in the buffer.\n     *\n     * @return $this\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $this->recordCommand($command);\n\n        return $this;\n    }\n\n    /**\n     * Throws an exception on -ERR responses returned by Redis.\n     *\n     * @param ConnectionInterface    $connection Redis connection that returned the error.\n     * @param ErrorResponseInterface $response   Instance of the error response.\n     *\n     * @throws ServerException\n     */\n    protected function exception(ConnectionInterface $connection, ErrorResponseInterface $response)\n    {\n        $connection->disconnect();\n        $message = $response->getMessage();\n\n        throw new ServerException($message);\n    }\n\n    /**\n     * Returns the underlying connection to be used by the pipeline.\n     *\n     * @return ConnectionInterface\n     */\n    protected function getConnection()\n    {\n        $connection = $this->getClient()->getConnection();\n\n        if ($connection instanceof ReplicationInterface) {\n            $connection->switchTo('master');\n        }\n\n        return $connection;\n    }\n\n    /**\n     * Implements the logic to flush the queued commands and read the responses\n     * from the current connection.\n     *\n     * @param ConnectionInterface $connection Current connection instance.\n     * @param \\SplQueue           $commands   Queued commands.\n     *\n     * @return array\n     */\n    protected function executePipeline(ConnectionInterface $connection, \\SplQueue $commands)\n    {\n        foreach ($commands as $command) {\n            $connection->writeRequest($command);\n        }\n\n        $responses = array();\n        $exceptions = $this->throwServerExceptions();\n\n        while (!$commands->isEmpty()) {\n            $command = $commands->dequeue();\n            $response = $connection->readResponse($command);\n\n            if (!$response instanceof ResponseInterface) {\n                $responses[] = $command->parseResponse($response);\n            } elseif ($response instanceof ErrorResponseInterface && $exceptions) {\n                $this->exception($connection, $response);\n            } else {\n                $responses[] = $response;\n            }\n        }\n\n        return $responses;\n    }\n\n    /**\n     * Flushes the buffer holding all of the commands queued so far.\n     *\n     * @param bool $send Specifies if the commands in the buffer should be sent to Redis.\n     *\n     * @return $this\n     */\n    public function flushPipeline($send = true)\n    {\n        if ($send && !$this->pipeline->isEmpty()) {\n            $responses = $this->executePipeline($this->getConnection(), $this->pipeline);\n            $this->responses = array_merge($this->responses, $responses);\n        } else {\n            $this->pipeline = new \\SplQueue();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Marks the running status of the pipeline.\n     *\n     * @param bool $bool Sets the running status of the pipeline.\n     *\n     * @throws ClientException\n     */\n    private function setRunning($bool)\n    {\n        if ($bool && $this->running) {\n            throw new ClientException('The current pipeline context is already being executed.');\n        }\n\n        $this->running = $bool;\n    }\n\n    /**\n     * Handles the actual execution of the whole pipeline.\n     *\n     * @param mixed $callable Optional callback for execution.\n     *\n     * @throws \\Exception\n     * @throws \\InvalidArgumentException\n     *\n     * @return array\n     */\n    public function execute($callable = null)\n    {\n        if ($callable && !is_callable($callable)) {\n            throw new \\InvalidArgumentException('The argument must be a callable object.');\n        }\n\n        $exception = null;\n        $this->setRunning(true);\n\n        try {\n            if ($callable) {\n                call_user_func($callable, $this);\n            }\n\n            $this->flushPipeline();\n        } catch (\\Exception $exception) {\n            // NOOP\n        }\n\n        $this->setRunning(false);\n\n        if ($exception) {\n            throw $exception;\n        }\n\n        return $this->responses;\n    }\n\n    /**\n     * Returns if the pipeline should throw exceptions on server errors.\n     *\n     * @return bool\n     */\n    protected function throwServerExceptions()\n    {\n        return (bool) $this->client->getOptions()->exceptions;\n    }\n\n    /**\n     * Returns the underlying client instance used by the pipeline object.\n     *\n     * @return ClientInterface\n     */\n    public function getClient()\n    {\n        return $this->client;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/PredisException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis;\n\n/**\n * Base exception class for Predis-related errors.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class PredisException extends \\Exception\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/Factory.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\nuse Predis\\ClientException;\n\n/**\n * Factory class for creating profile instances from strings.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nfinal class Factory\n{\n    private static $profiles = array(\n        '2.0' => 'Predis\\Profile\\RedisVersion200',\n        '2.2' => 'Predis\\Profile\\RedisVersion220',\n        '2.4' => 'Predis\\Profile\\RedisVersion240',\n        '2.6' => 'Predis\\Profile\\RedisVersion260',\n        '2.8' => 'Predis\\Profile\\RedisVersion280',\n        '3.0' => 'Predis\\Profile\\RedisVersion300',\n        '3.2' => 'Predis\\Profile\\RedisVersion320',\n        'dev' => 'Predis\\Profile\\RedisUnstable',\n        'default' => 'Predis\\Profile\\RedisVersion320',\n    );\n\n    /**\n     *\n     */\n    private function __construct()\n    {\n        // NOOP\n    }\n\n    /**\n     * Returns the default server profile.\n     *\n     * @return ProfileInterface\n     */\n    public static function getDefault()\n    {\n        return self::get('default');\n    }\n\n    /**\n     * Returns the development server profile.\n     *\n     * @return ProfileInterface\n     */\n    public static function getDevelopment()\n    {\n        return self::get('dev');\n    }\n\n    /**\n     * Registers a new server profile.\n     *\n     * @param string $alias Profile version or alias.\n     * @param string $class FQN of a class implementing Predis\\Profile\\ProfileInterface.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public static function define($alias, $class)\n    {\n        $reflection = new \\ReflectionClass($class);\n\n        if (!$reflection->isSubclassOf('Predis\\Profile\\ProfileInterface')) {\n            throw new \\InvalidArgumentException(\"The class '$class' is not a valid profile class.\");\n        }\n\n        self::$profiles[$alias] = $class;\n    }\n\n    /**\n     * Returns the specified server profile.\n     *\n     * @param string $version Profile version or alias.\n     *\n     * @throws ClientException\n     *\n     * @return ProfileInterface\n     */\n    public static function get($version)\n    {\n        if (!isset(self::$profiles[$version])) {\n            throw new ClientException(\"Unknown server profile: '$version'.\");\n        }\n\n        $profile = self::$profiles[$version];\n\n        return new $profile();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/ProfileInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * A profile defines all the features and commands supported by certain versions\n * of Redis. Instances of Predis\\Client should use a server profile matching the\n * version of Redis being used.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ProfileInterface\n{\n    /**\n     * Returns the profile version corresponding to the Redis version.\n     *\n     * @return string\n     */\n    public function getVersion();\n\n    /**\n     * Checks if the profile supports the specified command.\n     *\n     * @param string $commandID Command ID.\n     *\n     * @return bool\n     */\n    public function supportsCommand($commandID);\n\n    /**\n     * Checks if the profile supports the specified list of commands.\n     *\n     * @param array $commandIDs List of command IDs.\n     *\n     * @return string\n     */\n    public function supportsCommands(array $commandIDs);\n\n    /**\n     * Creates a new command instance.\n     *\n     * @param string $commandID Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return CommandInterface\n     */\n    public function createCommand($commandID, array $arguments = array());\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisProfile.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\nuse Predis\\ClientException;\nuse Predis\\Command\\Processor\\ProcessorInterface;\n\n/**\n * Base class implementing common functionalities for Redis server profiles.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class RedisProfile implements ProfileInterface\n{\n    private $commands;\n    private $processor;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->commands = $this->getSupportedCommands();\n    }\n\n    /**\n     * Returns a map of all the commands supported by the profile and their\n     * actual PHP classes.\n     *\n     * @return array\n     */\n    abstract protected function getSupportedCommands();\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsCommand($commandID)\n    {\n        return isset($this->commands[strtoupper($commandID)]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function supportsCommands(array $commandIDs)\n    {\n        foreach ($commandIDs as $commandID) {\n            if (!$this->supportsCommand($commandID)) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Returns the fully-qualified name of a class representing the specified\n     * command ID registered in the current server profile.\n     *\n     * @param string $commandID Command ID.\n     *\n     * @return string|null\n     */\n    public function getCommandClass($commandID)\n    {\n        if (isset($this->commands[$commandID = strtoupper($commandID)])) {\n            return $this->commands[$commandID];\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function createCommand($commandID, array $arguments = array())\n    {\n        $commandID = strtoupper($commandID);\n\n        if (!isset($this->commands[$commandID])) {\n            throw new ClientException(\"Command '$commandID' is not a registered Redis command.\");\n        }\n\n        $commandClass = $this->commands[$commandID];\n        $command = new $commandClass();\n        $command->setArguments($arguments);\n\n        if (isset($this->processor)) {\n            $this->processor->process($command);\n        }\n\n        return $command;\n    }\n\n    /**\n     * Defines a new command in the server profile.\n     *\n     * @param string $commandID Command ID.\n     * @param string $class     Fully-qualified name of a Predis\\Command\\CommandInterface.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    public function defineCommand($commandID, $class)\n    {\n        $reflection = new \\ReflectionClass($class);\n\n        if (!$reflection->isSubclassOf('Predis\\Command\\CommandInterface')) {\n            throw new \\InvalidArgumentException(\"The class '$class' is not a valid command class.\");\n        }\n\n        $this->commands[strtoupper($commandID)] = $class;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setProcessor(ProcessorInterface $processor = null)\n    {\n        $this->processor = $processor;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getProcessor()\n    {\n        return $this->processor;\n    }\n\n    /**\n     * Returns the version of server profile as its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->getVersion();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisUnstable.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for the current unstable version of Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisUnstable extends RedisVersion320\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '3.2';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array_merge(parent::getSupportedCommands(), array(\n            // EMPTY\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion200.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 2.0.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion200 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '2.0';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfo',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion220.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 2.2.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion220 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '2.2';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfo',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion240.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 2.4.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion240 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '2.4';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfo',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n\n            /* ---------------- Redis 2.4 ---------------- */\n\n            /* remote server control commands */\n            'CLIENT' => 'Predis\\Command\\ServerClient',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion260.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 2.6.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion260 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '2.6';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n            'DUMP' => 'Predis\\Command\\KeyDump',\n            'RESTORE' => 'Predis\\Command\\KeyRestore',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfoV26x',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n\n            /* ---------------- Redis 2.4 ---------------- */\n\n            /* remote server control commands */\n            'CLIENT' => 'Predis\\Command\\ServerClient',\n\n            /* ---------------- Redis 2.6 ---------------- */\n\n            /* commands operating on the key space */\n            'PTTL' => 'Predis\\Command\\KeyPreciseTimeToLive',\n            'PEXPIRE' => 'Predis\\Command\\KeyPreciseExpire',\n            'PEXPIREAT' => 'Predis\\Command\\KeyPreciseExpireAt',\n            'MIGRATE' => 'Predis\\Command\\KeyMigrate',\n\n            /* commands operating on string values */\n            'PSETEX' => 'Predis\\Command\\StringPreciseSetExpire',\n            'INCRBYFLOAT' => 'Predis\\Command\\StringIncrementByFloat',\n            'BITOP' => 'Predis\\Command\\StringBitOp',\n            'BITCOUNT' => 'Predis\\Command\\StringBitCount',\n\n            /* commands operating on hashes */\n            'HINCRBYFLOAT' => 'Predis\\Command\\HashIncrementByFloat',\n\n            /* scripting */\n            'EVAL' => 'Predis\\Command\\ServerEval',\n            'EVALSHA' => 'Predis\\Command\\ServerEvalSHA',\n            'SCRIPT' => 'Predis\\Command\\ServerScript',\n\n            /* remote server control commands */\n            'TIME' => 'Predis\\Command\\ServerTime',\n            'SENTINEL' => 'Predis\\Command\\ServerSentinel',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion280.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 2.8.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion280 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '2.8';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n            'DUMP' => 'Predis\\Command\\KeyDump',\n            'RESTORE' => 'Predis\\Command\\KeyRestore',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfoV26x',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n\n            /* ---------------- Redis 2.4 ---------------- */\n\n            /* remote server control commands */\n            'CLIENT' => 'Predis\\Command\\ServerClient',\n\n            /* ---------------- Redis 2.6 ---------------- */\n\n            /* commands operating on the key space */\n            'PTTL' => 'Predis\\Command\\KeyPreciseTimeToLive',\n            'PEXPIRE' => 'Predis\\Command\\KeyPreciseExpire',\n            'PEXPIREAT' => 'Predis\\Command\\KeyPreciseExpireAt',\n            'MIGRATE' => 'Predis\\Command\\KeyMigrate',\n\n            /* commands operating on string values */\n            'PSETEX' => 'Predis\\Command\\StringPreciseSetExpire',\n            'INCRBYFLOAT' => 'Predis\\Command\\StringIncrementByFloat',\n            'BITOP' => 'Predis\\Command\\StringBitOp',\n            'BITCOUNT' => 'Predis\\Command\\StringBitCount',\n\n            /* commands operating on hashes */\n            'HINCRBYFLOAT' => 'Predis\\Command\\HashIncrementByFloat',\n\n            /* scripting */\n            'EVAL' => 'Predis\\Command\\ServerEval',\n            'EVALSHA' => 'Predis\\Command\\ServerEvalSHA',\n            'SCRIPT' => 'Predis\\Command\\ServerScript',\n\n            /* remote server control commands */\n            'TIME' => 'Predis\\Command\\ServerTime',\n            'SENTINEL' => 'Predis\\Command\\ServerSentinel',\n\n            /* ---------------- Redis 2.8 ---------------- */\n\n            /* commands operating on the key space */\n            'SCAN' => 'Predis\\Command\\KeyScan',\n\n            /* commands operating on string values */\n            'BITPOS' => 'Predis\\Command\\StringBitPos',\n\n            /* commands operating on sets */\n            'SSCAN' => 'Predis\\Command\\SetScan',\n\n            /* commands operating on sorted sets */\n            'ZSCAN' => 'Predis\\Command\\ZSetScan',\n            'ZLEXCOUNT' => 'Predis\\Command\\ZSetLexCount',\n            'ZRANGEBYLEX' => 'Predis\\Command\\ZSetRangeByLex',\n            'ZREMRANGEBYLEX' => 'Predis\\Command\\ZSetRemoveRangeByLex',\n            'ZREVRANGEBYLEX' => 'Predis\\Command\\ZSetReverseRangeByLex',\n\n            /* commands operating on hashes */\n            'HSCAN' => 'Predis\\Command\\HashScan',\n\n            /* publish - subscribe */\n            'PUBSUB' => 'Predis\\Command\\PubSubPubsub',\n\n            /* commands operating on HyperLogLog */\n            'PFADD' => 'Predis\\Command\\HyperLogLogAdd',\n            'PFCOUNT' => 'Predis\\Command\\HyperLogLogCount',\n            'PFMERGE' => 'Predis\\Command\\HyperLogLogMerge',\n\n            /* remote server control commands */\n            'COMMAND' => 'Predis\\Command\\ServerCommand',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion300.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 3.0.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion300 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '3.0';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n            'DUMP' => 'Predis\\Command\\KeyDump',\n            'RESTORE' => 'Predis\\Command\\KeyRestore',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfoV26x',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n\n            /* ---------------- Redis 2.4 ---------------- */\n\n            /* remote server control commands */\n            'CLIENT' => 'Predis\\Command\\ServerClient',\n\n            /* ---------------- Redis 2.6 ---------------- */\n\n            /* commands operating on the key space */\n            'PTTL' => 'Predis\\Command\\KeyPreciseTimeToLive',\n            'PEXPIRE' => 'Predis\\Command\\KeyPreciseExpire',\n            'PEXPIREAT' => 'Predis\\Command\\KeyPreciseExpireAt',\n            'MIGRATE' => 'Predis\\Command\\KeyMigrate',\n\n            /* commands operating on string values */\n            'PSETEX' => 'Predis\\Command\\StringPreciseSetExpire',\n            'INCRBYFLOAT' => 'Predis\\Command\\StringIncrementByFloat',\n            'BITOP' => 'Predis\\Command\\StringBitOp',\n            'BITCOUNT' => 'Predis\\Command\\StringBitCount',\n\n            /* commands operating on hashes */\n            'HINCRBYFLOAT' => 'Predis\\Command\\HashIncrementByFloat',\n\n            /* scripting */\n            'EVAL' => 'Predis\\Command\\ServerEval',\n            'EVALSHA' => 'Predis\\Command\\ServerEvalSHA',\n            'SCRIPT' => 'Predis\\Command\\ServerScript',\n\n            /* remote server control commands */\n            'TIME' => 'Predis\\Command\\ServerTime',\n            'SENTINEL' => 'Predis\\Command\\ServerSentinel',\n\n            /* ---------------- Redis 2.8 ---------------- */\n\n            /* commands operating on the key space */\n            'SCAN' => 'Predis\\Command\\KeyScan',\n\n            /* commands operating on string values */\n            'BITPOS' => 'Predis\\Command\\StringBitPos',\n\n            /* commands operating on sets */\n            'SSCAN' => 'Predis\\Command\\SetScan',\n\n            /* commands operating on sorted sets */\n            'ZSCAN' => 'Predis\\Command\\ZSetScan',\n            'ZLEXCOUNT' => 'Predis\\Command\\ZSetLexCount',\n            'ZRANGEBYLEX' => 'Predis\\Command\\ZSetRangeByLex',\n            'ZREMRANGEBYLEX' => 'Predis\\Command\\ZSetRemoveRangeByLex',\n            'ZREVRANGEBYLEX' => 'Predis\\Command\\ZSetReverseRangeByLex',\n\n            /* commands operating on hashes */\n            'HSCAN' => 'Predis\\Command\\HashScan',\n\n            /* publish - subscribe */\n            'PUBSUB' => 'Predis\\Command\\PubSubPubsub',\n\n            /* commands operating on HyperLogLog */\n            'PFADD' => 'Predis\\Command\\HyperLogLogAdd',\n            'PFCOUNT' => 'Predis\\Command\\HyperLogLogCount',\n            'PFMERGE' => 'Predis\\Command\\HyperLogLogMerge',\n\n            /* remote server control commands */\n            'COMMAND' => 'Predis\\Command\\ServerCommand',\n\n            /* ---------------- Redis 3.0 ---------------- */\n\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Profile/RedisVersion320.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Profile;\n\n/**\n * Server profile for Redis 3.0.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RedisVersion320 extends RedisProfile\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function getVersion()\n    {\n        return '3.2';\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getSupportedCommands()\n    {\n        return array(\n            /* ---------------- Redis 1.2 ---------------- */\n\n            /* commands operating on the key space */\n            'EXISTS' => 'Predis\\Command\\KeyExists',\n            'DEL' => 'Predis\\Command\\KeyDelete',\n            'TYPE' => 'Predis\\Command\\KeyType',\n            'KEYS' => 'Predis\\Command\\KeyKeys',\n            'RANDOMKEY' => 'Predis\\Command\\KeyRandom',\n            'RENAME' => 'Predis\\Command\\KeyRename',\n            'RENAMENX' => 'Predis\\Command\\KeyRenamePreserve',\n            'EXPIRE' => 'Predis\\Command\\KeyExpire',\n            'EXPIREAT' => 'Predis\\Command\\KeyExpireAt',\n            'TTL' => 'Predis\\Command\\KeyTimeToLive',\n            'MOVE' => 'Predis\\Command\\KeyMove',\n            'SORT' => 'Predis\\Command\\KeySort',\n            'DUMP' => 'Predis\\Command\\KeyDump',\n            'RESTORE' => 'Predis\\Command\\KeyRestore',\n\n            /* commands operating on string values */\n            'SET' => 'Predis\\Command\\StringSet',\n            'SETNX' => 'Predis\\Command\\StringSetPreserve',\n            'MSET' => 'Predis\\Command\\StringSetMultiple',\n            'MSETNX' => 'Predis\\Command\\StringSetMultiplePreserve',\n            'GET' => 'Predis\\Command\\StringGet',\n            'MGET' => 'Predis\\Command\\StringGetMultiple',\n            'GETSET' => 'Predis\\Command\\StringGetSet',\n            'INCR' => 'Predis\\Command\\StringIncrement',\n            'INCRBY' => 'Predis\\Command\\StringIncrementBy',\n            'DECR' => 'Predis\\Command\\StringDecrement',\n            'DECRBY' => 'Predis\\Command\\StringDecrementBy',\n\n            /* commands operating on lists */\n            'RPUSH' => 'Predis\\Command\\ListPushTail',\n            'LPUSH' => 'Predis\\Command\\ListPushHead',\n            'LLEN' => 'Predis\\Command\\ListLength',\n            'LRANGE' => 'Predis\\Command\\ListRange',\n            'LTRIM' => 'Predis\\Command\\ListTrim',\n            'LINDEX' => 'Predis\\Command\\ListIndex',\n            'LSET' => 'Predis\\Command\\ListSet',\n            'LREM' => 'Predis\\Command\\ListRemove',\n            'LPOP' => 'Predis\\Command\\ListPopFirst',\n            'RPOP' => 'Predis\\Command\\ListPopLast',\n            'RPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHead',\n\n            /* commands operating on sets */\n            'SADD' => 'Predis\\Command\\SetAdd',\n            'SREM' => 'Predis\\Command\\SetRemove',\n            'SPOP' => 'Predis\\Command\\SetPop',\n            'SMOVE' => 'Predis\\Command\\SetMove',\n            'SCARD' => 'Predis\\Command\\SetCardinality',\n            'SISMEMBER' => 'Predis\\Command\\SetIsMember',\n            'SINTER' => 'Predis\\Command\\SetIntersection',\n            'SINTERSTORE' => 'Predis\\Command\\SetIntersectionStore',\n            'SUNION' => 'Predis\\Command\\SetUnion',\n            'SUNIONSTORE' => 'Predis\\Command\\SetUnionStore',\n            'SDIFF' => 'Predis\\Command\\SetDifference',\n            'SDIFFSTORE' => 'Predis\\Command\\SetDifferenceStore',\n            'SMEMBERS' => 'Predis\\Command\\SetMembers',\n            'SRANDMEMBER' => 'Predis\\Command\\SetRandomMember',\n\n            /* commands operating on sorted sets */\n            'ZADD' => 'Predis\\Command\\ZSetAdd',\n            'ZINCRBY' => 'Predis\\Command\\ZSetIncrementBy',\n            'ZREM' => 'Predis\\Command\\ZSetRemove',\n            'ZRANGE' => 'Predis\\Command\\ZSetRange',\n            'ZREVRANGE' => 'Predis\\Command\\ZSetReverseRange',\n            'ZRANGEBYSCORE' => 'Predis\\Command\\ZSetRangeByScore',\n            'ZCARD' => 'Predis\\Command\\ZSetCardinality',\n            'ZSCORE' => 'Predis\\Command\\ZSetScore',\n            'ZREMRANGEBYSCORE' => 'Predis\\Command\\ZSetRemoveRangeByScore',\n\n            /* connection related commands */\n            'PING' => 'Predis\\Command\\ConnectionPing',\n            'AUTH' => 'Predis\\Command\\ConnectionAuth',\n            'SELECT' => 'Predis\\Command\\ConnectionSelect',\n            'ECHO' => 'Predis\\Command\\ConnectionEcho',\n            'QUIT' => 'Predis\\Command\\ConnectionQuit',\n\n            /* remote server control commands */\n            'INFO' => 'Predis\\Command\\ServerInfoV26x',\n            'SLAVEOF' => 'Predis\\Command\\ServerSlaveOf',\n            'MONITOR' => 'Predis\\Command\\ServerMonitor',\n            'DBSIZE' => 'Predis\\Command\\ServerDatabaseSize',\n            'FLUSHDB' => 'Predis\\Command\\ServerFlushDatabase',\n            'FLUSHALL' => 'Predis\\Command\\ServerFlushAll',\n            'SAVE' => 'Predis\\Command\\ServerSave',\n            'BGSAVE' => 'Predis\\Command\\ServerBackgroundSave',\n            'LASTSAVE' => 'Predis\\Command\\ServerLastSave',\n            'SHUTDOWN' => 'Predis\\Command\\ServerShutdown',\n            'BGREWRITEAOF' => 'Predis\\Command\\ServerBackgroundRewriteAOF',\n\n            /* ---------------- Redis 2.0 ---------------- */\n\n            /* commands operating on string values */\n            'SETEX' => 'Predis\\Command\\StringSetExpire',\n            'APPEND' => 'Predis\\Command\\StringAppend',\n            'SUBSTR' => 'Predis\\Command\\StringSubstr',\n\n            /* commands operating on lists */\n            'BLPOP' => 'Predis\\Command\\ListPopFirstBlocking',\n            'BRPOP' => 'Predis\\Command\\ListPopLastBlocking',\n\n            /* commands operating on sorted sets */\n            'ZUNIONSTORE' => 'Predis\\Command\\ZSetUnionStore',\n            'ZINTERSTORE' => 'Predis\\Command\\ZSetIntersectionStore',\n            'ZCOUNT' => 'Predis\\Command\\ZSetCount',\n            'ZRANK' => 'Predis\\Command\\ZSetRank',\n            'ZREVRANK' => 'Predis\\Command\\ZSetReverseRank',\n            'ZREMRANGEBYRANK' => 'Predis\\Command\\ZSetRemoveRangeByRank',\n\n            /* commands operating on hashes */\n            'HSET' => 'Predis\\Command\\HashSet',\n            'HSETNX' => 'Predis\\Command\\HashSetPreserve',\n            'HMSET' => 'Predis\\Command\\HashSetMultiple',\n            'HINCRBY' => 'Predis\\Command\\HashIncrementBy',\n            'HGET' => 'Predis\\Command\\HashGet',\n            'HMGET' => 'Predis\\Command\\HashGetMultiple',\n            'HDEL' => 'Predis\\Command\\HashDelete',\n            'HEXISTS' => 'Predis\\Command\\HashExists',\n            'HLEN' => 'Predis\\Command\\HashLength',\n            'HKEYS' => 'Predis\\Command\\HashKeys',\n            'HVALS' => 'Predis\\Command\\HashValues',\n            'HGETALL' => 'Predis\\Command\\HashGetAll',\n\n            /* transactions */\n            'MULTI' => 'Predis\\Command\\TransactionMulti',\n            'EXEC' => 'Predis\\Command\\TransactionExec',\n            'DISCARD' => 'Predis\\Command\\TransactionDiscard',\n\n            /* publish - subscribe */\n            'SUBSCRIBE' => 'Predis\\Command\\PubSubSubscribe',\n            'UNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribe',\n            'PSUBSCRIBE' => 'Predis\\Command\\PubSubSubscribeByPattern',\n            'PUNSUBSCRIBE' => 'Predis\\Command\\PubSubUnsubscribeByPattern',\n            'PUBLISH' => 'Predis\\Command\\PubSubPublish',\n\n            /* remote server control commands */\n            'CONFIG' => 'Predis\\Command\\ServerConfig',\n\n            /* ---------------- Redis 2.2 ---------------- */\n\n            /* commands operating on the key space */\n            'PERSIST' => 'Predis\\Command\\KeyPersist',\n\n            /* commands operating on string values */\n            'STRLEN' => 'Predis\\Command\\StringStrlen',\n            'SETRANGE' => 'Predis\\Command\\StringSetRange',\n            'GETRANGE' => 'Predis\\Command\\StringGetRange',\n            'SETBIT' => 'Predis\\Command\\StringSetBit',\n            'GETBIT' => 'Predis\\Command\\StringGetBit',\n\n            /* commands operating on lists */\n            'RPUSHX' => 'Predis\\Command\\ListPushTailX',\n            'LPUSHX' => 'Predis\\Command\\ListPushHeadX',\n            'LINSERT' => 'Predis\\Command\\ListInsert',\n            'BRPOPLPUSH' => 'Predis\\Command\\ListPopLastPushHeadBlocking',\n\n            /* commands operating on sorted sets */\n            'ZREVRANGEBYSCORE' => 'Predis\\Command\\ZSetReverseRangeByScore',\n\n            /* transactions */\n            'WATCH' => 'Predis\\Command\\TransactionWatch',\n            'UNWATCH' => 'Predis\\Command\\TransactionUnwatch',\n\n            /* remote server control commands */\n            'OBJECT' => 'Predis\\Command\\ServerObject',\n            'SLOWLOG' => 'Predis\\Command\\ServerSlowlog',\n\n            /* ---------------- Redis 2.4 ---------------- */\n\n            /* remote server control commands */\n            'CLIENT' => 'Predis\\Command\\ServerClient',\n\n            /* ---------------- Redis 2.6 ---------------- */\n\n            /* commands operating on the key space */\n            'PTTL' => 'Predis\\Command\\KeyPreciseTimeToLive',\n            'PEXPIRE' => 'Predis\\Command\\KeyPreciseExpire',\n            'PEXPIREAT' => 'Predis\\Command\\KeyPreciseExpireAt',\n            'MIGRATE' => 'Predis\\Command\\KeyMigrate',\n\n            /* commands operating on string values */\n            'PSETEX' => 'Predis\\Command\\StringPreciseSetExpire',\n            'INCRBYFLOAT' => 'Predis\\Command\\StringIncrementByFloat',\n            'BITOP' => 'Predis\\Command\\StringBitOp',\n            'BITCOUNT' => 'Predis\\Command\\StringBitCount',\n\n            /* commands operating on hashes */\n            'HINCRBYFLOAT' => 'Predis\\Command\\HashIncrementByFloat',\n\n            /* scripting */\n            'EVAL' => 'Predis\\Command\\ServerEval',\n            'EVALSHA' => 'Predis\\Command\\ServerEvalSHA',\n            'SCRIPT' => 'Predis\\Command\\ServerScript',\n\n            /* remote server control commands */\n            'TIME' => 'Predis\\Command\\ServerTime',\n            'SENTINEL' => 'Predis\\Command\\ServerSentinel',\n\n            /* ---------------- Redis 2.8 ---------------- */\n\n            /* commands operating on the key space */\n            'SCAN' => 'Predis\\Command\\KeyScan',\n\n            /* commands operating on string values */\n            'BITPOS' => 'Predis\\Command\\StringBitPos',\n\n            /* commands operating on sets */\n            'SSCAN' => 'Predis\\Command\\SetScan',\n\n            /* commands operating on sorted sets */\n            'ZSCAN' => 'Predis\\Command\\ZSetScan',\n            'ZLEXCOUNT' => 'Predis\\Command\\ZSetLexCount',\n            'ZRANGEBYLEX' => 'Predis\\Command\\ZSetRangeByLex',\n            'ZREMRANGEBYLEX' => 'Predis\\Command\\ZSetRemoveRangeByLex',\n            'ZREVRANGEBYLEX' => 'Predis\\Command\\ZSetReverseRangeByLex',\n\n            /* commands operating on hashes */\n            'HSCAN' => 'Predis\\Command\\HashScan',\n\n            /* publish - subscribe */\n            'PUBSUB' => 'Predis\\Command\\PubSubPubsub',\n\n            /* commands operating on HyperLogLog */\n            'PFADD' => 'Predis\\Command\\HyperLogLogAdd',\n            'PFCOUNT' => 'Predis\\Command\\HyperLogLogCount',\n            'PFMERGE' => 'Predis\\Command\\HyperLogLogMerge',\n\n            /* remote server control commands */\n            'COMMAND' => 'Predis\\Command\\ServerCommand',\n\n            /* ---------------- Redis 3.2 ---------------- */\n\n            /* commands operating on hashes */\n            'HSTRLEN' => 'Predis\\Command\\HashStringLength',\n            'BITFIELD' => 'Predis\\Command\\StringBitField',\n\n            /* commands performing geospatial operations */\n            'GEOADD' => 'Predis\\Command\\GeospatialGeoAdd',\n            'GEOHASH' => 'Predis\\Command\\GeospatialGeoHash',\n            'GEOPOS' => 'Predis\\Command\\GeospatialGeoPos',\n            'GEODIST' => 'Predis\\Command\\GeospatialGeoDist',\n            'GEORADIUS' => 'Predis\\Command\\GeospatialGeoRadius',\n            'GEORADIUSBYMEMBER' => 'Predis\\Command\\GeospatialGeoRadiusByMember',\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/ProtocolException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol;\n\nuse Predis\\CommunicationException;\n\n/**\n * Exception used to indentify errors encountered while parsing the Redis wire\n * protocol.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ProtocolException extends CommunicationException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/ProtocolProcessorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Connection\\CompositeConnectionInterface;\n\n/**\n * Defines a pluggable protocol processor capable of serializing commands and\n * deserializing responses into PHP objects directly from a connection.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ProtocolProcessorInterface\n{\n    /**\n     * Writes a request over a connection to Redis.\n     *\n     * @param CompositeConnectionInterface $connection Redis connection.\n     * @param CommandInterface             $command    Command instance.\n     */\n    public function write(CompositeConnectionInterface $connection, CommandInterface $command);\n\n    /**\n     * Reads a response from a connection to Redis.\n     *\n     * @param CompositeConnectionInterface $connection Redis connection.\n     *\n     * @return mixed\n     */\n    public function read(CompositeConnectionInterface $connection);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/RequestSerializerInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol;\n\nuse Predis\\Command\\CommandInterface;\n\n/**\n * Defines a pluggable serializer for Redis commands.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface RequestSerializerInterface\n{\n    /**\n     * Serializes a Redis command.\n     *\n     * @param CommandInterface $command Redis command.\n     *\n     * @return string\n     */\n    public function serialize(CommandInterface $command);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/ResponseReaderInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol;\n\nuse Predis\\Connection\\CompositeConnectionInterface;\n\n/**\n * Defines a pluggable reader capable of parsing responses returned by Redis and\n * deserializing them to PHP objects.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ResponseReaderInterface\n{\n    /**\n     * Reads a response from a connection to Redis.\n     *\n     * @param CompositeConnectionInterface $connection Redis connection.\n     *\n     * @return mixed\n     */\n    public function read(CompositeConnectionInterface $connection);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/CompositeProtocolProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolProcessorInterface;\nuse Predis\\Protocol\\RequestSerializerInterface;\nuse Predis\\Protocol\\ResponseReaderInterface;\n\n/**\n * Composite protocol processor for the standard Redis wire protocol using\n * pluggable handlers to serialize requests and deserialize responses.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass CompositeProtocolProcessor implements ProtocolProcessorInterface\n{\n    /*\n     * @var RequestSerializerInterface\n     */\n    protected $serializer;\n\n    /*\n     * @var ResponseReaderInterface\n     */\n    protected $reader;\n\n    /**\n     * @param RequestSerializerInterface $serializer Request serializer.\n     * @param ResponseReaderInterface    $reader     Response reader.\n     */\n    public function __construct(\n        RequestSerializerInterface $serializer = null,\n        ResponseReaderInterface $reader = null\n    ) {\n        $this->setRequestSerializer($serializer ?: new RequestSerializer());\n        $this->setResponseReader($reader ?: new ResponseReader());\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write(CompositeConnectionInterface $connection, CommandInterface $command)\n    {\n        $connection->writeBuffer($this->serializer->serialize($command));\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read(CompositeConnectionInterface $connection)\n    {\n        return $this->reader->read($connection);\n    }\n\n    /**\n     * Sets the request serializer used by the protocol processor.\n     *\n     * @param RequestSerializerInterface $serializer Request serializer.\n     */\n    public function setRequestSerializer(RequestSerializerInterface $serializer)\n    {\n        $this->serializer = $serializer;\n    }\n\n    /**\n     * Returns the request serializer used by the protocol processor.\n     *\n     * @return RequestSerializerInterface\n     */\n    public function getRequestSerializer()\n    {\n        return $this->serializer;\n    }\n\n    /**\n     * Sets the response reader used by the protocol processor.\n     *\n     * @param ResponseReaderInterface $reader Response reader.\n     */\n    public function setResponseReader(ResponseReaderInterface $reader)\n    {\n        $this->reader = $reader;\n    }\n\n    /**\n     * Returns the Response reader used by the protocol processor.\n     *\n     * @return ResponseReaderInterface\n     */\n    public function getResponseReader()\n    {\n        return $this->reader;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/BulkResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\n\n/**\n * Handler for the bulk response type in the standard Redis wire protocol.\n * It translates the payload to a string or a NULL.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass BulkResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        $length = (int) $payload;\n\n        if (\"$length\" !== $payload) {\n            CommunicationException::handle(new ProtocolException(\n                $connection, \"Cannot parse '$payload' as a valid length for a bulk response.\"\n            ));\n        }\n\n        if ($length >= 0) {\n            return substr($connection->readBuffer($length + 2), 0, -2);\n        }\n\n        if ($length == -1) {\n            return;\n        }\n\n        CommunicationException::handle(new ProtocolException(\n            $connection, \"Value '$payload' is not a valid length for a bulk response.\"\n        ));\n\n        return;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/ErrorResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Response\\Error;\n\n/**\n * Handler for the error response type in the standard Redis wire protocol.\n * It translates the payload to a complex response object for Predis.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ErrorResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        return new Error($payload);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/IntegerResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\n\n/**\n * Handler for the integer response type in the standard Redis wire protocol.\n * It translates the payload an integer or NULL.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass IntegerResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        if (is_numeric($payload)) {\n            $integer = (int) $payload;\n            return $integer == $payload ? $integer : $payload;\n        }\n\n        if ($payload !== 'nil') {\n            CommunicationException::handle(new ProtocolException(\n                $connection, \"Cannot parse '$payload' as a valid numeric response.\"\n            ));\n        }\n\n        return;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/MultiBulkResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\n\n/**\n * Handler for the multibulk response type in the standard Redis wire protocol.\n * It returns multibulk responses as PHP arrays.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MultiBulkResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        $length = (int) $payload;\n\n        if (\"$length\" !== $payload) {\n            CommunicationException::handle(new ProtocolException(\n                $connection, \"Cannot parse '$payload' as a valid length of a multi-bulk response.\"\n            ));\n        }\n\n        if ($length === -1) {\n            return;\n        }\n\n        $list = array();\n\n        if ($length > 0) {\n            $handlersCache = array();\n            $reader = $connection->getProtocol()->getResponseReader();\n\n            for ($i = 0; $i < $length; ++$i) {\n                $header = $connection->readLine();\n                $prefix = $header[0];\n\n                if (isset($handlersCache[$prefix])) {\n                    $handler = $handlersCache[$prefix];\n                } else {\n                    $handler = $reader->getHandler($prefix);\n                    $handlersCache[$prefix] = $handler;\n                }\n\n                $list[$i] = $handler->handle($connection, substr($header, 1));\n            }\n        }\n\n        return $list;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/ResponseHandlerInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\Connection\\CompositeConnectionInterface;\n\n/**\n * Defines a pluggable handler used to parse a particular type of response.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ResponseHandlerInterface\n{\n    /**\n     * Deserializes a response returned by Redis and reads more data from the\n     * connection if needed.\n     *\n     * @param CompositeConnectionInterface $connection Redis connection.\n     * @param string                       $payload    String payload.\n     *\n     * @return mixed\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload);\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/StatusResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Response\\Status;\n\n/**\n * Handler for the status response type in the standard Redis wire protocol. It\n * translates certain classes of status response to PHP objects or just returns\n * the payload as a string.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StatusResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        return Status::get($payload);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/Handler/StreamableMultiBulkResponse.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text\\Handler;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\nuse Predis\\Response\\Iterator\\MultiBulk as MultiBulkIterator;\n\n/**\n * Handler for the multibulk response type in the standard Redis wire protocol.\n * It returns multibulk responses as iterators that can stream bulk elements.\n *\n * Streamable multibulk responses are not globally supported by the abstractions\n * built-in into Predis, such as transactions or pipelines. Use them with care!\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass StreamableMultiBulkResponse implements ResponseHandlerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function handle(CompositeConnectionInterface $connection, $payload)\n    {\n        $length = (int) $payload;\n\n        if (\"$length\" != $payload) {\n            CommunicationException::handle(new ProtocolException(\n                $connection, \"Cannot parse '$payload' as a valid length for a multi-bulk response.\"\n            ));\n        }\n\n        return new MultiBulkIterator($connection, $length);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/ProtocolProcessor.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\nuse Predis\\Protocol\\ProtocolProcessorInterface;\nuse Predis\\Response\\Error as ErrorResponse;\nuse Predis\\Response\\Iterator\\MultiBulk as MultiBulkIterator;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * Protocol processor for the standard Redis wire protocol.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ProtocolProcessor implements ProtocolProcessorInterface\n{\n    protected $mbiterable;\n    protected $serializer;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->mbiterable = false;\n        $this->serializer = new RequestSerializer();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function write(CompositeConnectionInterface $connection, CommandInterface $command)\n    {\n        $request = $this->serializer->serialize($command);\n        $connection->writeBuffer($request);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read(CompositeConnectionInterface $connection)\n    {\n        $chunk = $connection->readLine();\n        $prefix = $chunk[0];\n        $payload = substr($chunk, 1);\n\n        switch ($prefix) {\n            case '+':\n                return new StatusResponse($payload);\n\n            case '$':\n                $size = (int) $payload;\n                if ($size === -1) {\n                    return;\n                }\n\n                return substr($connection->readBuffer($size + 2), 0, -2);\n\n            case '*':\n                $count = (int) $payload;\n\n                if ($count === -1) {\n                    return;\n                }\n                if ($this->mbiterable) {\n                    return new MultiBulkIterator($connection, $count);\n                }\n\n                $multibulk = array();\n\n                for ($i = 0; $i < $count; ++$i) {\n                    $multibulk[$i] = $this->read($connection);\n                }\n\n                return $multibulk;\n\n            case ':':\n                $integer = (int) $payload;\n                return $integer == $payload ? $integer : $payload;\n\n            case '-':\n                return new ErrorResponse($payload);\n\n            default:\n                CommunicationException::handle(new ProtocolException(\n                    $connection, \"Unknown response prefix: '$prefix'.\"\n                ));\n\n                return;\n        }\n    }\n\n    /**\n     * Enables or disables returning multibulk responses as specialized PHP\n     * iterators used to stream bulk elements of a multibulk response instead\n     * returning a plain array.\n     *\n     * Streamable multibulk responses are not globally supported by the\n     * abstractions built-in into Predis, such as transactions or pipelines.\n     * Use them with care!\n     *\n     * @param bool $value Enable or disable streamable multibulk responses.\n     */\n    public function useIterableMultibulk($value)\n    {\n        $this->mbiterable = (bool) $value;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/RequestSerializer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\Protocol\\RequestSerializerInterface;\n\n/**\n * Request serializer for the standard Redis wire protocol.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RequestSerializer implements RequestSerializerInterface\n{\n    /**\n     * {@inheritdoc}\n     */\n    public function serialize(CommandInterface $command)\n    {\n        $commandID = $command->getId();\n        $arguments = $command->getArguments();\n\n        $cmdlen = strlen($commandID);\n        $reqlen = count($arguments) + 1;\n\n        $buffer = \"*{$reqlen}\\r\\n\\${$cmdlen}\\r\\n{$commandID}\\r\\n\";\n\n        foreach ($arguments as $argument) {\n            $arglen = strlen($argument);\n            $buffer .= \"\\${$arglen}\\r\\n{$argument}\\r\\n\";\n        }\n\n        return $buffer;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Protocol/Text/ResponseReader.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Protocol\\Text;\n\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\CompositeConnectionInterface;\nuse Predis\\Protocol\\ProtocolException;\nuse Predis\\Protocol\\ResponseReaderInterface;\n\n/**\n * Response reader for the standard Redis wire protocol.\n *\n * @link http://redis.io/topics/protocol\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ResponseReader implements ResponseReaderInterface\n{\n    protected $handlers;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->handlers = $this->getDefaultHandlers();\n    }\n\n    /**\n     * Returns the default handlers for the supported type of responses.\n     *\n     * @return array\n     */\n    protected function getDefaultHandlers()\n    {\n        return array(\n            '+' => new Handler\\StatusResponse(),\n            '-' => new Handler\\ErrorResponse(),\n            ':' => new Handler\\IntegerResponse(),\n            '$' => new Handler\\BulkResponse(),\n            '*' => new Handler\\MultiBulkResponse(),\n        );\n    }\n\n    /**\n     * Sets the handler for the specified prefix identifying the response type.\n     *\n     * @param string                           $prefix  Identifier of the type of response.\n     * @param Handler\\ResponseHandlerInterface $handler Response handler.\n     */\n    public function setHandler($prefix, Handler\\ResponseHandlerInterface $handler)\n    {\n        $this->handlers[$prefix] = $handler;\n    }\n\n    /**\n     * Returns the response handler associated to a certain type of response.\n     *\n     * @param string $prefix Identifier of the type of response.\n     *\n     * @return Handler\\ResponseHandlerInterface\n     */\n    public function getHandler($prefix)\n    {\n        if (isset($this->handlers[$prefix])) {\n            return $this->handlers[$prefix];\n        }\n\n        return;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read(CompositeConnectionInterface $connection)\n    {\n        $header = $connection->readLine();\n\n        if ($header === '') {\n            $this->onProtocolError($connection, 'Unexpected empty reponse header.');\n        }\n\n        $prefix = $header[0];\n\n        if (!isset($this->handlers[$prefix])) {\n            $this->onProtocolError($connection, \"Unknown response prefix: '$prefix'.\");\n        }\n\n        $payload = $this->handlers[$prefix]->handle($connection, substr($header, 1));\n\n        return $payload;\n    }\n\n    /**\n     * Handles protocol errors generated while reading responses from a\n     * connection.\n     *\n     * @param CompositeConnectionInterface $connection Redis connection that generated the error.\n     * @param string                       $message    Error message.\n     */\n    protected function onProtocolError(CompositeConnectionInterface $connection, $message)\n    {\n        CommunicationException::handle(\n            new ProtocolException($connection, $message)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/PubSub/AbstractConsumer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\PubSub;\n\n/**\n * Base implementation of a PUB/SUB consumer abstraction based on PHP iterators.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class AbstractConsumer implements \\Iterator\n{\n    const SUBSCRIBE = 'subscribe';\n    const UNSUBSCRIBE = 'unsubscribe';\n    const PSUBSCRIBE = 'psubscribe';\n    const PUNSUBSCRIBE = 'punsubscribe';\n    const MESSAGE = 'message';\n    const PMESSAGE = 'pmessage';\n    const PONG = 'pong';\n\n    const STATUS_VALID = 1;       // 0b0001\n    const STATUS_SUBSCRIBED = 2;  // 0b0010\n    const STATUS_PSUBSCRIBED = 4; // 0b0100\n\n    private $position = null;\n    private $statusFlags = self::STATUS_VALID;\n\n    /**\n     * Automatically stops the consumer when the garbage collector kicks in.\n     */\n    public function __destruct()\n    {\n        $this->stop(true);\n    }\n\n    /**\n     * Checks if the specified flag is valid based on the state of the consumer.\n     *\n     * @param int $value Flag.\n     *\n     * @return bool\n     */\n    protected function isFlagSet($value)\n    {\n        return ($this->statusFlags & $value) === $value;\n    }\n\n    /**\n     * Subscribes to the specified channels.\n     *\n     * @param mixed $channel,... One or more channel names.\n     */\n    public function subscribe($channel /*, ... */)\n    {\n        $this->writeRequest(self::SUBSCRIBE, func_get_args());\n        $this->statusFlags |= self::STATUS_SUBSCRIBED;\n    }\n\n    /**\n     * Unsubscribes from the specified channels.\n     *\n     * @param string ... One or more channel names.\n     */\n    public function unsubscribe(/* ... */)\n    {\n        $this->writeRequest(self::UNSUBSCRIBE, func_get_args());\n    }\n\n    /**\n     * Subscribes to the specified channels using a pattern.\n     *\n     * @param mixed $pattern,... One or more channel name patterns.\n     */\n    public function psubscribe($pattern /* ... */)\n    {\n        $this->writeRequest(self::PSUBSCRIBE, func_get_args());\n        $this->statusFlags |= self::STATUS_PSUBSCRIBED;\n    }\n\n    /**\n     * Unsubscribes from the specified channels using a pattern.\n     *\n     * @param string ... One or more channel name patterns.\n     */\n    public function punsubscribe(/* ... */)\n    {\n        $this->writeRequest(self::PUNSUBSCRIBE, func_get_args());\n    }\n\n    /**\n     * PING the server with an optional payload that will be echoed as a\n     * PONG message in the pub/sub loop.\n     *\n     * @param string $payload Optional PING payload.\n     */\n    public function ping($payload = null)\n    {\n        $this->writeRequest('PING', array($payload));\n    }\n\n    /**\n     * Closes the context by unsubscribing from all the subscribed channels. The\n     * context can be forcefully closed by dropping the underlying connection.\n     *\n     * @param bool $drop Indicates if the context should be closed by dropping the connection.\n     *\n     * @return bool Returns false when there are no pending messages.\n     */\n    public function stop($drop = false)\n    {\n        if (!$this->valid()) {\n            return false;\n        }\n\n        if ($drop) {\n            $this->invalidate();\n            $this->disconnect();\n        } else {\n            if ($this->isFlagSet(self::STATUS_SUBSCRIBED)) {\n                $this->unsubscribe();\n            }\n            if ($this->isFlagSet(self::STATUS_PSUBSCRIBED)) {\n                $this->punsubscribe();\n            }\n        }\n\n        return !$drop;\n    }\n\n    /**\n     * Closes the underlying connection when forcing a disconnection.\n     */\n    abstract protected function disconnect();\n\n    /**\n     * Writes a Redis command on the underlying connection.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     */\n    abstract protected function writeRequest($method, $arguments);\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rewind()\n    {\n        // NOOP\n    }\n\n    /**\n     * Returns the last message payload retrieved from the server and generated\n     * by one of the active subscriptions.\n     *\n     * @return array\n     */\n    public function current()\n    {\n        return $this->getValue();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function key()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function next()\n    {\n        if ($this->valid()) {\n            ++$this->position;\n        }\n\n        return $this->position;\n    }\n\n    /**\n     * Checks if the the consumer is still in a valid state to continue.\n     *\n     * @return bool\n     */\n    public function valid()\n    {\n        $isValid = $this->isFlagSet(self::STATUS_VALID);\n        $subscriptionFlags = self::STATUS_SUBSCRIBED | self::STATUS_PSUBSCRIBED;\n        $hasSubscriptions = ($this->statusFlags & $subscriptionFlags) > 0;\n\n        return $isValid && $hasSubscriptions;\n    }\n\n    /**\n     * Resets the state of the consumer.\n     */\n    protected function invalidate()\n    {\n        $this->statusFlags = 0;    // 0b0000;\n    }\n\n    /**\n     * Waits for a new message from the server generated by one of the active\n     * subscriptions and returns it when available.\n     *\n     * @return array\n     */\n    abstract protected function getValue();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/PubSub/Consumer.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\PubSub;\n\nuse Predis\\ClientException;\nuse Predis\\ClientInterface;\nuse Predis\\Command\\Command;\nuse Predis\\Connection\\AggregateConnectionInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * PUB/SUB consumer abstraction.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Consumer extends AbstractConsumer\n{\n    private $client;\n    private $options;\n\n    /**\n     * @param ClientInterface $client  Client instance used by the consumer.\n     * @param array           $options Options for the consumer initialization.\n     */\n    public function __construct(ClientInterface $client, array $options = null)\n    {\n        $this->checkCapabilities($client);\n\n        $this->options = $options ?: array();\n        $this->client = $client;\n\n        $this->genericSubscribeInit('subscribe');\n        $this->genericSubscribeInit('psubscribe');\n    }\n\n    /**\n     * Returns the underlying client instance used by the pub/sub iterator.\n     *\n     * @return ClientInterface\n     */\n    public function getClient()\n    {\n        return $this->client;\n    }\n\n    /**\n     * Checks if the client instance satisfies the required conditions needed to\n     * initialize a PUB/SUB consumer.\n     *\n     * @param ClientInterface $client Client instance used by the consumer.\n     *\n     * @throws NotSupportedException\n     */\n    private function checkCapabilities(ClientInterface $client)\n    {\n        if ($client->getConnection() instanceof AggregateConnectionInterface) {\n            throw new NotSupportedException(\n                'Cannot initialize a PUB/SUB consumer over aggregate connections.'\n            );\n        }\n\n        $commands = array('publish', 'subscribe', 'unsubscribe', 'psubscribe', 'punsubscribe');\n\n        if ($client->getProfile()->supportsCommands($commands) === false) {\n            throw new NotSupportedException(\n                'The current profile does not support PUB/SUB related commands.'\n            );\n        }\n    }\n\n    /**\n     * This method shares the logic to handle both SUBSCRIBE and PSUBSCRIBE.\n     *\n     * @param string $subscribeAction Type of subscription.\n     */\n    private function genericSubscribeInit($subscribeAction)\n    {\n        if (isset($this->options[$subscribeAction])) {\n            $this->$subscribeAction($this->options[$subscribeAction]);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function writeRequest($method, $arguments)\n    {\n        $this->client->getConnection()->writeRequest(\n            $this->client->createCommand($method,\n                Command::normalizeArguments($arguments)\n            )\n        );\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function disconnect()\n    {\n        $this->client->disconnect();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getValue()\n    {\n        $response = $this->client->getConnection()->read();\n\n        switch ($response[0]) {\n            case self::SUBSCRIBE:\n            case self::UNSUBSCRIBE:\n            case self::PSUBSCRIBE:\n            case self::PUNSUBSCRIBE:\n                if ($response[2] === 0) {\n                    $this->invalidate();\n                }\n                // The missing break here is intentional as we must process\n                // subscriptions and unsubscriptions as standard messages.\n                // no break\n\n            case self::MESSAGE:\n                return (object) array(\n                    'kind' => $response[0],\n                    'channel' => $response[1],\n                    'payload' => $response[2],\n                );\n\n            case self::PMESSAGE:\n                return (object) array(\n                    'kind' => $response[0],\n                    'pattern' => $response[1],\n                    'channel' => $response[2],\n                    'payload' => $response[3],\n                );\n\n            case self::PONG:\n                return (object) array(\n                    'kind' => $response[0],\n                    'payload' => $response[1],\n                );\n\n            default:\n                throw new ClientException(\n                    \"Unknown message type '{$response[0]}' received in the PUB/SUB context.\"\n                );\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/PubSub/DispatcherLoop.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\PubSub;\n\n/**\n * Method-dispatcher loop built around the client-side abstraction of a Redis\n * PUB / SUB context.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass DispatcherLoop\n{\n    private $pubsub;\n\n    protected $callbacks;\n    protected $defaultCallback;\n    protected $subscriptionCallback;\n\n    /**\n     * @param Consumer $pubsub PubSub consumer instance used by the loop.\n     */\n    public function __construct(Consumer $pubsub)\n    {\n        $this->callbacks = array();\n        $this->pubsub = $pubsub;\n    }\n\n    /**\n     * Checks if the passed argument is a valid callback.\n     *\n     * @param mixed $callable A callback.\n     *\n     * @throws \\InvalidArgumentException\n     */\n    protected function assertCallback($callable)\n    {\n        if (!is_callable($callable)) {\n            throw new \\InvalidArgumentException('The given argument must be a callable object.');\n        }\n    }\n\n    /**\n     * Returns the underlying PUB / SUB context.\n     *\n     * @return Consumer\n     */\n    public function getPubSubConsumer()\n    {\n        return $this->pubsub;\n    }\n\n    /**\n     * Sets a callback that gets invoked upon new subscriptions.\n     *\n     * @param mixed $callable A callback.\n     */\n    public function subscriptionCallback($callable = null)\n    {\n        if (isset($callable)) {\n            $this->assertCallback($callable);\n        }\n\n        $this->subscriptionCallback = $callable;\n    }\n\n    /**\n     * Sets a callback that gets invoked when a message is received on a\n     * channel that does not have an associated callback.\n     *\n     * @param mixed $callable A callback.\n     */\n    public function defaultCallback($callable = null)\n    {\n        if (isset($callable)) {\n            $this->assertCallback($callable);\n        }\n\n        $this->subscriptionCallback = $callable;\n    }\n\n    /**\n     * Binds a callback to a channel.\n     *\n     * @param string   $channel  Channel name.\n     * @param callable $callback A callback.\n     */\n    public function attachCallback($channel, $callback)\n    {\n        $callbackName = $this->getPrefixKeys().$channel;\n\n        $this->assertCallback($callback);\n        $this->callbacks[$callbackName] = $callback;\n        $this->pubsub->subscribe($channel);\n    }\n\n    /**\n     * Stops listening to a channel and removes the associated callback.\n     *\n     * @param string $channel Redis channel.\n     */\n    public function detachCallback($channel)\n    {\n        $callbackName = $this->getPrefixKeys().$channel;\n\n        if (isset($this->callbacks[$callbackName])) {\n            unset($this->callbacks[$callbackName]);\n            $this->pubsub->unsubscribe($channel);\n        }\n    }\n\n    /**\n     * Starts the dispatcher loop.\n     */\n    public function run()\n    {\n        foreach ($this->pubsub as $message) {\n            $kind = $message->kind;\n\n            if ($kind !== Consumer::MESSAGE && $kind !== Consumer::PMESSAGE) {\n                if (isset($this->subscriptionCallback)) {\n                    $callback = $this->subscriptionCallback;\n                    call_user_func($callback, $message);\n                }\n\n                continue;\n            }\n\n            if (isset($this->callbacks[$message->channel])) {\n                $callback = $this->callbacks[$message->channel];\n                call_user_func($callback, $message->payload);\n            } elseif (isset($this->defaultCallback)) {\n                $callback = $this->defaultCallback;\n                call_user_func($callback, $message);\n            }\n        }\n    }\n\n    /**\n     * Terminates the dispatcher loop.\n     */\n    public function stop()\n    {\n        $this->pubsub->stop();\n    }\n\n    /**\n     * Return the prefix used for keys.\n     *\n     * @return string\n     */\n    protected function getPrefixKeys()\n    {\n        $options = $this->pubsub->getClient()->getOptions();\n\n        if (isset($options->prefix)) {\n            return $options->prefix->getPrefix();\n        }\n\n        return '';\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Replication/MissingMasterException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Replication;\n\nuse Predis\\ClientException;\n\n/**\n * Exception class that identifies when master is missing in a replication setup.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MissingMasterException extends ClientException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Replication/ReplicationStrategy.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Replication;\n\nuse Predis\\Command\\CommandInterface;\nuse Predis\\NotSupportedException;\n\n/**\n * Defines a strategy for master/slave replication.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ReplicationStrategy\n{\n    protected $disallowed;\n    protected $readonly;\n    protected $readonlySHA1;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->disallowed = $this->getDisallowedOperations();\n        $this->readonly = $this->getReadOnlyOperations();\n        $this->readonlySHA1 = array();\n    }\n\n    /**\n     * Returns if the specified command will perform a read-only operation\n     * on Redis or not.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @throws NotSupportedException\n     *\n     * @return bool\n     */\n    public function isReadOperation(CommandInterface $command)\n    {\n        if (isset($this->disallowed[$id = $command->getId()])) {\n            throw new NotSupportedException(\n                \"The command '$id' is not allowed in replication mode.\"\n            );\n        }\n\n        if (isset($this->readonly[$id])) {\n            if (true === $readonly = $this->readonly[$id]) {\n                return true;\n            }\n\n            return call_user_func($readonly, $command);\n        }\n\n        if (($eval = $id === 'EVAL') || $id === 'EVALSHA') {\n            $sha1 = $eval ? sha1($command->getArgument(0)) : $command->getArgument(0);\n\n            if (isset($this->readonlySHA1[$sha1])) {\n                if (true === $readonly = $this->readonlySHA1[$sha1]) {\n                    return true;\n                }\n\n                return call_user_func($readonly, $command);\n            }\n        }\n\n        return false;\n    }\n\n    /**\n     * Returns if the specified command is not allowed for execution in a master\n     * / slave replication context.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return bool\n     */\n    public function isDisallowedOperation(CommandInterface $command)\n    {\n        return isset($this->disallowed[$command->getId()]);\n    }\n\n    /**\n     * Checks if a SORT command is a readable operation by parsing the arguments\n     * array of the specified commad instance.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return bool\n     */\n    protected function isSortReadOnly(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $argc = count($arguments);\n\n        if ($argc > 1) {\n            for ($i = 1; $i < $argc; ++$i) {\n                $argument = strtoupper($arguments[$i]);\n                if ($argument === 'STORE') {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Checks if BITFIELD performs a read-only operation by looking for certain\n     * SET and INCRYBY modifiers in the arguments array of the command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return bool\n     */\n    protected function isBitfieldReadOnly(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $argc = count($arguments);\n\n        if ($argc >= 2) {\n            for ($i = 1; $i < $argc; ++$i) {\n                $argument = strtoupper($arguments[$i]);\n                if ($argument === 'SET' || $argument === 'INCRBY') {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Checks if a GEORADIUS command is a readable operation by parsing the\n     * arguments array of the specified commad instance.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @return bool\n     */\n    protected function isGeoradiusReadOnly(CommandInterface $command)\n    {\n        $arguments = $command->getArguments();\n        $argc = count($arguments);\n        $startIndex = $command->getId() === 'GEORADIUS' ? 5 : 4;\n\n        if ($argc > $startIndex) {\n            for ($i = $startIndex; $i < $argc; ++$i) {\n                $argument = strtoupper($arguments[$i]);\n                if ($argument === 'STORE' || $argument === 'STOREDIST') {\n                    return false;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    /**\n     * Marks a command as a read-only operation.\n     *\n     * When the behavior of a command can be decided only at runtime depending\n     * on its arguments, a callable object can be provided to dynamically check\n     * if the specified command performs a read or a write operation.\n     *\n     * @param string $commandID Command ID.\n     * @param mixed  $readonly  A boolean value or a callable object.\n     */\n    public function setCommandReadOnly($commandID, $readonly = true)\n    {\n        $commandID = strtoupper($commandID);\n\n        if ($readonly) {\n            $this->readonly[$commandID] = $readonly;\n        } else {\n            unset($this->readonly[$commandID]);\n        }\n    }\n\n    /**\n     * Marks a Lua script for EVAL and EVALSHA as a read-only operation. When\n     * the behaviour of a script can be decided only at runtime depending on\n     * its arguments, a callable object can be provided to dynamically check\n     * if the passed instance of EVAL or EVALSHA performs write operations or\n     * not.\n     *\n     * @param string $script   Body of the Lua script.\n     * @param mixed  $readonly A boolean value or a callable object.\n     */\n    public function setScriptReadOnly($script, $readonly = true)\n    {\n        $sha1 = sha1($script);\n\n        if ($readonly) {\n            $this->readonlySHA1[$sha1] = $readonly;\n        } else {\n            unset($this->readonlySHA1[$sha1]);\n        }\n    }\n\n    /**\n     * Returns the default list of disallowed commands.\n     *\n     * @return array\n     */\n    protected function getDisallowedOperations()\n    {\n        return array(\n            'SHUTDOWN' => true,\n            'INFO' => true,\n            'DBSIZE' => true,\n            'LASTSAVE' => true,\n            'CONFIG' => true,\n            'MONITOR' => true,\n            'SLAVEOF' => true,\n            'SAVE' => true,\n            'BGSAVE' => true,\n            'BGREWRITEAOF' => true,\n            'SLOWLOG' => true,\n        );\n    }\n\n    /**\n     * Returns the default list of commands performing read-only operations.\n     *\n     * @return array\n     */\n    protected function getReadOnlyOperations()\n    {\n        return array(\n            'EXISTS' => true,\n            'TYPE' => true,\n            'KEYS' => true,\n            'SCAN' => true,\n            'RANDOMKEY' => true,\n            'TTL' => true,\n            'GET' => true,\n            'MGET' => true,\n            'SUBSTR' => true,\n            'STRLEN' => true,\n            'GETRANGE' => true,\n            'GETBIT' => true,\n            'LLEN' => true,\n            'LRANGE' => true,\n            'LINDEX' => true,\n            'SCARD' => true,\n            'SISMEMBER' => true,\n            'SINTER' => true,\n            'SUNION' => true,\n            'SDIFF' => true,\n            'SMEMBERS' => true,\n            'SSCAN' => true,\n            'SRANDMEMBER' => true,\n            'ZRANGE' => true,\n            'ZREVRANGE' => true,\n            'ZRANGEBYSCORE' => true,\n            'ZREVRANGEBYSCORE' => true,\n            'ZCARD' => true,\n            'ZSCORE' => true,\n            'ZCOUNT' => true,\n            'ZRANK' => true,\n            'ZREVRANK' => true,\n            'ZSCAN' => true,\n            'ZLEXCOUNT' => true,\n            'ZRANGEBYLEX' => true,\n            'ZREVRANGEBYLEX' => true,\n            'HGET' => true,\n            'HMGET' => true,\n            'HEXISTS' => true,\n            'HLEN' => true,\n            'HKEYS' => true,\n            'HVALS' => true,\n            'HGETALL' => true,\n            'HSCAN' => true,\n            'HSTRLEN' => true,\n            'PING' => true,\n            'AUTH' => true,\n            'SELECT' => true,\n            'ECHO' => true,\n            'QUIT' => true,\n            'OBJECT' => true,\n            'BITCOUNT' => true,\n            'BITPOS' => true,\n            'TIME' => true,\n            'PFCOUNT' => true,\n            'SORT' => array($this, 'isSortReadOnly'),\n            'BITFIELD' => array($this, 'isBitfieldReadOnly'),\n            'GEOHASH' => true,\n            'GEOPOS' => true,\n            'GEODIST' => true,\n            'GEORADIUS' => array($this, 'isGeoradiusReadOnly'),\n            'GEORADIUSBYMEMBER' => array($this, 'isGeoradiusReadOnly'),\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Replication/RoleException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Replication;\n\nuse Predis\\CommunicationException;\n\n/**\n * Exception class that identifies a role mismatch when connecting to node\n * managed by redis-sentinel.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass RoleException extends CommunicationException\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/Error.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response;\n\n/**\n * Represents an error returned by Redis (-ERR responses) during the execution\n * of a command on the server.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Error implements ErrorInterface\n{\n    private $message;\n\n    /**\n     * @param string $message Error message returned by Redis\n     */\n    public function __construct($message)\n    {\n        $this->message = $message;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getMessage()\n    {\n        return $this->message;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getErrorType()\n    {\n        list($errorType) = explode(' ', $this->getMessage(), 2);\n\n        return $errorType;\n    }\n\n    /**\n     * Converts the object to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->getMessage();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/ErrorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response;\n\n/**\n * Represents an error returned by Redis (responses identified by \"-\" in the\n * Redis protocol) during the execution of an operation on the server.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ErrorInterface extends ResponseInterface\n{\n    /**\n     * Returns the error message.\n     *\n     * @return string\n     */\n    public function getMessage();\n\n    /**\n     * Returns the error type (e.g. ERR, ASK, MOVED).\n     *\n     * @return string\n     */\n    public function getErrorType();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/Iterator/MultiBulk.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response\\Iterator;\n\nuse Predis\\Connection\\NodeConnectionInterface;\n\n/**\n * Streamable multibulk response.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MultiBulk extends MultiBulkIterator\n{\n    private $connection;\n\n    /**\n     * @param NodeConnectionInterface $connection Connection to Redis.\n     * @param int                     $size       Number of elements of the multibulk response.\n     */\n    public function __construct(NodeConnectionInterface $connection, $size)\n    {\n        $this->connection = $connection;\n        $this->size = $size;\n        $this->position = 0;\n        $this->current = $size > 0 ? $this->getValue() : null;\n    }\n\n    /**\n     * Handles the synchronization of the client with the Redis protocol when\n     * the garbage collector kicks in (e.g. when the iterator goes out of the\n     * scope of a foreach or it is unset).\n     */\n    public function __destruct()\n    {\n        $this->drop(true);\n    }\n\n    /**\n     * Drop queued elements that have not been read from the connection either\n     * by consuming the rest of the multibulk response or quickly by closing the\n     * underlying connection.\n     *\n     * @param bool $disconnect Consume the iterator or drop the connection.\n     */\n    public function drop($disconnect = false)\n    {\n        if ($disconnect) {\n            if ($this->valid()) {\n                $this->position = $this->size;\n                $this->connection->disconnect();\n            }\n        } else {\n            while ($this->valid()) {\n                $this->next();\n            }\n        }\n    }\n\n    /**\n     * Reads the next item of the multibulk response from the connection.\n     *\n     * @return mixed\n     */\n    protected function getValue()\n    {\n        return $this->connection->read();\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/Iterator/MultiBulkIterator.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response\\Iterator;\n\nuse Predis\\Response\\ResponseInterface;\n\n/**\n * Iterator that abstracts the access to multibulk responses allowing them to be\n * consumed in a streamable fashion without keeping the whole payload in memory.\n *\n * This iterator does not support rewinding which means that the iteration, once\n * consumed, cannot be restarted.\n *\n * Always make sure that the whole iteration is consumed (or dropped) to prevent\n * protocol desynchronization issues.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nabstract class MultiBulkIterator implements \\Iterator, \\Countable, ResponseInterface\n{\n    protected $current;\n    protected $position;\n    protected $size;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function rewind()\n    {\n        // NOOP\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function current()\n    {\n        return $this->current;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function key()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function next()\n    {\n        if (++$this->position < $this->size) {\n            $this->current = $this->getValue();\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function valid()\n    {\n        return $this->position < $this->size;\n    }\n\n    /**\n     * Returns the number of items comprising the whole multibulk response.\n     *\n     * This method should be used instead of iterator_count() to get the size of\n     * the current multibulk response since the former consumes the iteration to\n     * count the number of elements, but our iterators do not support rewinding.\n     *\n     * @return int\n     */\n    public function count()\n    {\n        return $this->size;\n    }\n\n    /**\n     * Returns the current position of the iterator.\n     *\n     * @return int\n     */\n    public function getPosition()\n    {\n        return $this->position;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    abstract protected function getValue();\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/Iterator/MultiBulkTuple.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response\\Iterator;\n\n/**\n * Outer iterator consuming streamable multibulk responses by yielding tuples of\n * keys and values.\n *\n * This wrapper is useful for responses to commands such as `HGETALL` that can\n * be iterater as $key => $value pairs.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MultiBulkTuple extends MultiBulk implements \\OuterIterator\n{\n    private $iterator;\n\n    /**\n     * @param MultiBulk $iterator Inner multibulk response iterator.\n     */\n    public function __construct(MultiBulk $iterator)\n    {\n        $this->checkPreconditions($iterator);\n\n        $this->size = count($iterator) / 2;\n        $this->iterator = $iterator;\n        $this->position = $iterator->getPosition();\n        $this->current = $this->size > 0 ? $this->getValue() : null;\n    }\n\n    /**\n     * Checks for valid preconditions.\n     *\n     * @param MultiBulk $iterator Inner multibulk response iterator.\n     *\n     * @throws \\InvalidArgumentException\n     * @throws \\UnexpectedValueException\n     */\n    protected function checkPreconditions(MultiBulk $iterator)\n    {\n        if ($iterator->getPosition() !== 0) {\n            throw new \\InvalidArgumentException(\n                'Cannot initialize a tuple iterator using an already initiated iterator.'\n            );\n        }\n\n        if (($size = count($iterator)) % 2 !== 0) {\n            throw new \\UnexpectedValueException('Invalid response size for a tuple iterator.');\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getInnerIterator()\n    {\n        return $this->iterator;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function __destruct()\n    {\n        $this->iterator->drop(true);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    protected function getValue()\n    {\n        $k = $this->iterator->current();\n        $this->iterator->next();\n\n        $v = $this->iterator->current();\n        $this->iterator->next();\n\n        return array($k, $v);\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/ResponseInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response;\n\n/**\n * Represents a complex response object from Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\ninterface ResponseInterface\n{\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/ServerException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response;\n\nuse Predis\\PredisException;\n\n/**\n * Exception class that identifies server-side Redis errors.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass ServerException extends PredisException implements ErrorInterface\n{\n    /**\n     * Gets the type of the error returned by Redis.\n     *\n     * @return string\n     */\n    public function getErrorType()\n    {\n        list($errorType) = explode(' ', $this->getMessage(), 2);\n\n        return $errorType;\n    }\n\n    /**\n     * Converts the exception to an instance of Predis\\Response\\Error.\n     *\n     * @return Error\n     */\n    public function toErrorResponse()\n    {\n        return new Error($this->getMessage());\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Response/Status.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Response;\n\n/**\n * Represents a status response returned by Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Status implements ResponseInterface\n{\n    private static $OK;\n    private static $QUEUED;\n\n    private $payload;\n\n    /**\n     * @param string $payload Payload of the status response as returned by Redis.\n     */\n    public function __construct($payload)\n    {\n        $this->payload = $payload;\n    }\n\n    /**\n     * Converts the response object to its string representation.\n     *\n     * @return string\n     */\n    public function __toString()\n    {\n        return $this->payload;\n    }\n\n    /**\n     * Returns the payload of status response.\n     *\n     * @return string\n     */\n    public function getPayload()\n    {\n        return $this->payload;\n    }\n\n    /**\n     * Returns an instance of a status response object.\n     *\n     * Common status responses such as OK or QUEUED are cached in order to lower\n     * the global memory usage especially when using pipelines.\n     *\n     * @param string $payload Status response payload.\n     *\n     * @return string\n     */\n    public static function get($payload)\n    {\n        switch ($payload) {\n            case 'OK':\n            case 'QUEUED':\n                if (isset(self::$$payload)) {\n                    return self::$$payload;\n                }\n\n                return self::$$payload = new self($payload);\n\n            default:\n                return new self($payload);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Session/Handler.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Session;\n\nuse Predis\\ClientInterface;\n\n/**\n * Session handler class that relies on Predis\\Client to store PHP's sessions\n * data into one or multiple Redis servers.\n *\n * This class is mostly intended for PHP 5.4 but it can be used under PHP 5.3\n * provided that a polyfill for `SessionHandlerInterface` is defined by either\n * you or an external package such as `symfony/http-foundation`.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass Handler implements \\SessionHandlerInterface\n{\n    protected $client;\n    protected $ttl;\n\n    /**\n     * @param ClientInterface $client  Fully initialized client instance.\n     * @param array           $options Session handler options.\n     */\n    public function __construct(ClientInterface $client, array $options = array())\n    {\n        $this->client = $client;\n\n        if (isset($options['gc_maxlifetime'])) {\n            $this->ttl = (int) $options['gc_maxlifetime'];\n        } else {\n            $this->ttl = ini_get('session.gc_maxlifetime');\n        }\n    }\n\n    /**\n     * Registers this instance as the current session handler.\n     */\n    public function register()\n    {\n        if (PHP_VERSION_ID >= 50400) {\n            session_set_save_handler($this, true);\n        } else {\n            session_set_save_handler(\n                array($this, 'open'),\n                array($this, 'close'),\n                array($this, 'read'),\n                array($this, 'write'),\n                array($this, 'destroy'),\n                array($this, 'gc')\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function open($save_path, $session_id)\n    {\n        // NOOP\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function close()\n    {\n        // NOOP\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function gc($maxlifetime)\n    {\n        // NOOP\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function read($session_id)\n    {\n        if ($data = $this->client->get($session_id)) {\n            return $data;\n        }\n\n        return '';\n    }\n    /**\n     * {@inheritdoc}\n     */\n    public function write($session_id, $session_data)\n    {\n        $this->client->setex($session_id, $this->ttl, $session_data);\n\n        return true;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function destroy($session_id)\n    {\n        $this->client->del($session_id);\n\n        return true;\n    }\n\n    /**\n     * Returns the underlying client instance.\n     *\n     * @return ClientInterface\n     */\n    public function getClient()\n    {\n        return $this->client;\n    }\n\n    /**\n     * Returns the session max lifetime value.\n     *\n     * @return int\n     */\n    public function getMaxLifeTime()\n    {\n        return $this->ttl;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Transaction/AbortedMultiExecException.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Transaction;\n\nuse Predis\\PredisException;\n\n/**\n * Exception class that identifies a MULTI / EXEC transaction aborted by Redis.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass AbortedMultiExecException extends PredisException\n{\n    private $transaction;\n\n    /**\n     * @param MultiExec $transaction Transaction that generated the exception.\n     * @param string    $message     Error message.\n     * @param int       $code        Error code.\n     */\n    public function __construct(MultiExec $transaction, $message, $code = null)\n    {\n        parent::__construct($message, $code);\n        $this->transaction = $transaction;\n    }\n\n    /**\n     * Returns the transaction that generated the exception.\n     *\n     * @return MultiExec\n     */\n    public function getTransaction()\n    {\n        return $this->transaction;\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Transaction/MultiExec.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Transaction;\n\nuse Predis\\ClientContextInterface;\nuse Predis\\ClientException;\nuse Predis\\ClientInterface;\nuse Predis\\Command\\CommandInterface;\nuse Predis\\CommunicationException;\nuse Predis\\Connection\\AggregateConnectionInterface;\nuse Predis\\NotSupportedException;\nuse Predis\\Protocol\\ProtocolException;\nuse Predis\\Response\\ErrorInterface as ErrorResponseInterface;\nuse Predis\\Response\\ServerException;\nuse Predis\\Response\\Status as StatusResponse;\n\n/**\n * Client-side abstraction of a Redis transaction based on MULTI / EXEC.\n *\n * {@inheritdoc}\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MultiExec implements ClientContextInterface\n{\n    private $state;\n\n    protected $client;\n    protected $commands;\n    protected $exceptions = true;\n    protected $attempts = 0;\n    protected $watchKeys = array();\n    protected $modeCAS = false;\n\n    /**\n     * @param ClientInterface $client  Client instance used by the transaction.\n     * @param array           $options Initialization options.\n     */\n    public function __construct(ClientInterface $client, array $options = null)\n    {\n        $this->assertClient($client);\n\n        $this->client = $client;\n        $this->state = new MultiExecState();\n\n        $this->configure($client, $options ?: array());\n        $this->reset();\n    }\n\n    /**\n     * Checks if the passed client instance satisfies the required conditions\n     * needed to initialize the transaction object.\n     *\n     * @param ClientInterface $client Client instance used by the transaction object.\n     *\n     * @throws NotSupportedException\n     */\n    private function assertClient(ClientInterface $client)\n    {\n        if ($client->getConnection() instanceof AggregateConnectionInterface) {\n            throw new NotSupportedException(\n                'Cannot initialize a MULTI/EXEC transaction over aggregate connections.'\n            );\n        }\n\n        if (!$client->getProfile()->supportsCommands(array('MULTI', 'EXEC', 'DISCARD'))) {\n            throw new NotSupportedException(\n                'The current profile does not support MULTI, EXEC and DISCARD.'\n            );\n        }\n    }\n\n    /**\n     * Configures the transaction using the provided options.\n     *\n     * @param ClientInterface $client  Underlying client instance.\n     * @param array           $options Array of options for the transaction.\n     **/\n    protected function configure(ClientInterface $client, array $options)\n    {\n        if (isset($options['exceptions'])) {\n            $this->exceptions = (bool) $options['exceptions'];\n        } else {\n            $this->exceptions = $client->getOptions()->exceptions;\n        }\n\n        if (isset($options['cas'])) {\n            $this->modeCAS = (bool) $options['cas'];\n        }\n\n        if (isset($options['watch']) && $keys = $options['watch']) {\n            $this->watchKeys = $keys;\n        }\n\n        if (isset($options['retry'])) {\n            $this->attempts = (int) $options['retry'];\n        }\n    }\n\n    /**\n     * Resets the state of the transaction.\n     */\n    protected function reset()\n    {\n        $this->state->reset();\n        $this->commands = new \\SplQueue();\n    }\n\n    /**\n     * Initializes the transaction context.\n     */\n    protected function initialize()\n    {\n        if ($this->state->isInitialized()) {\n            return;\n        }\n\n        if ($this->modeCAS) {\n            $this->state->flag(MultiExecState::CAS);\n        }\n\n        if ($this->watchKeys) {\n            $this->watch($this->watchKeys);\n        }\n\n        $cas = $this->state->isCAS();\n        $discarded = $this->state->isDiscarded();\n\n        if (!$cas || ($cas && $discarded)) {\n            $this->call('MULTI');\n\n            if ($discarded) {\n                $this->state->unflag(MultiExecState::CAS);\n            }\n        }\n\n        $this->state->unflag(MultiExecState::DISCARDED);\n        $this->state->flag(MultiExecState::INITIALIZED);\n    }\n\n    /**\n     * Dynamically invokes a Redis command with the specified arguments.\n     *\n     * @param string $method    Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @return mixed\n     */\n    public function __call($method, $arguments)\n    {\n        return $this->executeCommand(\n            $this->client->createCommand($method, $arguments)\n        );\n    }\n\n    /**\n     * Executes a Redis command bypassing the transaction logic.\n     *\n     * @param string $commandID Command ID.\n     * @param array  $arguments Arguments for the command.\n     *\n     * @throws ServerException\n     *\n     * @return mixed\n     */\n    protected function call($commandID, array $arguments = array())\n    {\n        $response = $this->client->executeCommand(\n            $this->client->createCommand($commandID, $arguments)\n        );\n\n        if ($response instanceof ErrorResponseInterface) {\n            throw new ServerException($response->getMessage());\n        }\n\n        return $response;\n    }\n\n    /**\n     * Executes the specified Redis command.\n     *\n     * @param CommandInterface $command Command instance.\n     *\n     * @throws AbortedMultiExecException\n     * @throws CommunicationException\n     *\n     * @return $this|mixed\n     */\n    public function executeCommand(CommandInterface $command)\n    {\n        $this->initialize();\n\n        if ($this->state->isCAS()) {\n            return $this->client->executeCommand($command);\n        }\n\n        $response = $this->client->getConnection()->executeCommand($command);\n\n        if ($response instanceof StatusResponse && $response == 'QUEUED') {\n            $this->commands->enqueue($command);\n        } elseif ($response instanceof ErrorResponseInterface) {\n            throw new AbortedMultiExecException($this, $response->getMessage());\n        } else {\n            $this->onProtocolError('The server did not return a +QUEUED status response.');\n        }\n\n        return $this;\n    }\n\n    /**\n     * Executes WATCH against one or more keys.\n     *\n     * @param string|array $keys One or more keys.\n     *\n     * @throws NotSupportedException\n     * @throws ClientException\n     *\n     * @return mixed\n     */\n    public function watch($keys)\n    {\n        if (!$this->client->getProfile()->supportsCommand('WATCH')) {\n            throw new NotSupportedException('WATCH is not supported by the current profile.');\n        }\n\n        if ($this->state->isWatchAllowed()) {\n            throw new ClientException('Sending WATCH after MULTI is not allowed.');\n        }\n\n        $response = $this->call('WATCH', is_array($keys) ? $keys : array($keys));\n        $this->state->flag(MultiExecState::WATCH);\n\n        return $response;\n    }\n\n    /**\n     * Finalizes the transaction by executing MULTI on the server.\n     *\n     * @return MultiExec\n     */\n    public function multi()\n    {\n        if ($this->state->check(MultiExecState::INITIALIZED | MultiExecState::CAS)) {\n            $this->state->unflag(MultiExecState::CAS);\n            $this->call('MULTI');\n        } else {\n            $this->initialize();\n        }\n\n        return $this;\n    }\n\n    /**\n     * Executes UNWATCH.\n     *\n     * @throws NotSupportedException\n     *\n     * @return MultiExec\n     */\n    public function unwatch()\n    {\n        if (!$this->client->getProfile()->supportsCommand('UNWATCH')) {\n            throw new NotSupportedException(\n                'UNWATCH is not supported by the current profile.'\n            );\n        }\n\n        $this->state->unflag(MultiExecState::WATCH);\n        $this->__call('UNWATCH', array());\n\n        return $this;\n    }\n\n    /**\n     * Resets the transaction by UNWATCH-ing the keys that are being WATCHed and\n     * DISCARD-ing pending commands that have been already sent to the server.\n     *\n     * @return MultiExec\n     */\n    public function discard()\n    {\n        if ($this->state->isInitialized()) {\n            $this->call($this->state->isCAS() ? 'UNWATCH' : 'DISCARD');\n\n            $this->reset();\n            $this->state->flag(MultiExecState::DISCARDED);\n        }\n\n        return $this;\n    }\n\n    /**\n     * Executes the whole transaction.\n     *\n     * @return mixed\n     */\n    public function exec()\n    {\n        return $this->execute();\n    }\n\n    /**\n     * Checks the state of the transaction before execution.\n     *\n     * @param mixed $callable Callback for execution.\n     *\n     * @throws \\InvalidArgumentException\n     * @throws ClientException\n     */\n    private function checkBeforeExecution($callable)\n    {\n        if ($this->state->isExecuting()) {\n            throw new ClientException(\n                'Cannot invoke \"execute\" or \"exec\" inside an active transaction context.'\n            );\n        }\n\n        if ($callable) {\n            if (!is_callable($callable)) {\n                throw new \\InvalidArgumentException('The argument must be a callable object.');\n            }\n\n            if (!$this->commands->isEmpty()) {\n                $this->discard();\n\n                throw new ClientException(\n                    'Cannot execute a transaction block after using fluent interface.'\n                );\n            }\n        } elseif ($this->attempts) {\n            $this->discard();\n\n            throw new ClientException(\n                'Automatic retries are supported only when a callable block is provided.'\n            );\n        }\n    }\n\n    /**\n     * Handles the actual execution of the whole transaction.\n     *\n     * @param mixed $callable Optional callback for execution.\n     *\n     * @throws CommunicationException\n     * @throws AbortedMultiExecException\n     * @throws ServerException\n     *\n     * @return array\n     */\n    public function execute($callable = null)\n    {\n        $this->checkBeforeExecution($callable);\n\n        $execResponse = null;\n        $attempts = $this->attempts;\n\n        do {\n            if ($callable) {\n                $this->executeTransactionBlock($callable);\n            }\n\n            if ($this->commands->isEmpty()) {\n                if ($this->state->isWatching()) {\n                    $this->discard();\n                }\n\n                return;\n            }\n\n            $execResponse = $this->call('EXEC');\n\n            if ($execResponse === null) {\n                if ($attempts === 0) {\n                    throw new AbortedMultiExecException(\n                        $this, 'The current transaction has been aborted by the server.'\n                    );\n                }\n\n                $this->reset();\n\n                continue;\n            }\n\n            break;\n        } while ($attempts-- > 0);\n\n        $response = array();\n        $commands = $this->commands;\n        $size = count($execResponse);\n\n        if ($size !== count($commands)) {\n            $this->onProtocolError('EXEC returned an unexpected number of response items.');\n        }\n\n        for ($i = 0; $i < $size; ++$i) {\n            $cmdResponse = $execResponse[$i];\n\n            if ($cmdResponse instanceof ErrorResponseInterface && $this->exceptions) {\n                throw new ServerException($cmdResponse->getMessage());\n            }\n\n            $response[$i] = $commands->dequeue()->parseResponse($cmdResponse);\n        }\n\n        return $response;\n    }\n\n    /**\n     * Passes the current transaction object to a callable block for execution.\n     *\n     * @param mixed $callable Callback.\n     *\n     * @throws CommunicationException\n     * @throws ServerException\n     */\n    protected function executeTransactionBlock($callable)\n    {\n        $exception = null;\n        $this->state->flag(MultiExecState::INSIDEBLOCK);\n\n        try {\n            call_user_func($callable, $this);\n        } catch (CommunicationException $exception) {\n            // NOOP\n        } catch (ServerException $exception) {\n            // NOOP\n        } catch (\\Exception $exception) {\n            $this->discard();\n        }\n\n        $this->state->unflag(MultiExecState::INSIDEBLOCK);\n\n        if ($exception) {\n            throw $exception;\n        }\n    }\n\n    /**\n     * Helper method for protocol errors encountered inside the transaction.\n     *\n     * @param string $message Error message.\n     */\n    private function onProtocolError($message)\n    {\n        // Since a MULTI/EXEC block cannot be initialized when using aggregate\n        // connections we can safely assume that Predis\\Client::getConnection()\n        // will return a Predis\\Connection\\NodeConnectionInterface instance.\n        CommunicationException::handle(new ProtocolException(\n            $this->client->getConnection(), $message\n        ));\n    }\n}\n"
  },
  {
    "path": "vendor/predis/predis/src/Transaction/MultiExecState.php",
    "content": "<?php\n\n/*\n * This file is part of the Predis package.\n *\n * (c) Daniele Alessandri <suppakilla@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Predis\\Transaction;\n\n/**\n * Utility class used to track the state of a MULTI / EXEC transaction.\n *\n * @author Daniele Alessandri <suppakilla@gmail.com>\n */\nclass MultiExecState\n{\n    const INITIALIZED = 1;    // 0b00001\n    const INSIDEBLOCK = 2;    // 0b00010\n    const DISCARDED = 4;    // 0b00100\n    const CAS = 8;    // 0b01000\n    const WATCH = 16;   // 0b10000\n\n    private $flags;\n\n    /**\n     *\n     */\n    public function __construct()\n    {\n        $this->flags = 0;\n    }\n\n    /**\n     * Sets the internal state flags.\n     *\n     * @param int $flags Set of flags\n     */\n    public function set($flags)\n    {\n        $this->flags = $flags;\n    }\n\n    /**\n     * Gets the internal state flags.\n     *\n     * @return int\n     */\n    public function get()\n    {\n        return $this->flags;\n    }\n\n    /**\n     * Sets one or more flags.\n     *\n     * @param int $flags Set of flags\n     */\n    public function flag($flags)\n    {\n        $this->flags |= $flags;\n    }\n\n    /**\n     * Resets one or more flags.\n     *\n     * @param int $flags Set of flags\n     */\n    public function unflag($flags)\n    {\n        $this->flags &= ~$flags;\n    }\n\n    /**\n     * Returns if the specified flag or set of flags is set.\n     *\n     * @param int $flags Flag\n     *\n     * @return bool\n     */\n    public function check($flags)\n    {\n        return ($this->flags & $flags) === $flags;\n    }\n\n    /**\n     * Resets the state of a transaction.\n     */\n    public function reset()\n    {\n        $this->flags = 0;\n    }\n\n    /**\n     * Returns the state of the RESET flag.\n     *\n     * @return bool\n     */\n    public function isReset()\n    {\n        return $this->flags === 0;\n    }\n\n    /**\n     * Returns the state of the INITIALIZED flag.\n     *\n     * @return bool\n     */\n    public function isInitialized()\n    {\n        return $this->check(self::INITIALIZED);\n    }\n\n    /**\n     * Returns the state of the INSIDEBLOCK flag.\n     *\n     * @return bool\n     */\n    public function isExecuting()\n    {\n        return $this->check(self::INSIDEBLOCK);\n    }\n\n    /**\n     * Returns the state of the CAS flag.\n     *\n     * @return bool\n     */\n    public function isCAS()\n    {\n        return $this->check(self::CAS);\n    }\n\n    /**\n     * Returns if WATCH is allowed in the current state.\n     *\n     * @return bool\n     */\n    public function isWatchAllowed()\n    {\n        return $this->check(self::INITIALIZED) && !$this->check(self::CAS);\n    }\n\n    /**\n     * Returns the state of the WATCH flag.\n     *\n     * @return bool\n     */\n    public function isWatching()\n    {\n        return $this->check(self::WATCH);\n    }\n\n    /**\n     * Returns the state of the DISCARDED flag.\n     *\n     * @return bool\n     */\n    public function isDiscarded()\n    {\n        return $this->check(self::DISCARDED);\n    }\n}\n"
  },
  {
    "path": "vendor/psr/simple-cache/.editorconfig",
    "content": "; This file is for unifying the coding style for different editors and IDEs.\n; More information at http://editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nindent_size = 4\nindent_style = space\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n"
  },
  {
    "path": "vendor/psr/simple-cache/LICENSE.md",
    "content": "# The MIT License (MIT)\n\nCopyright (c) 2016 PHP Framework Interoperability Group\n\n> Permission is hereby granted, free of charge, to any person obtaining a copy\n> of this software and associated documentation files (the \"Software\"), to deal\n> in the Software without restriction, including without limitation the rights\n> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n> copies of the Software, and to permit persons to whom the Software is\n> furnished to do so, subject to the following conditions:\n>\n> The above copyright notice and this permission notice shall be included in\n> all copies or substantial portions of the Software.\n>\n> THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n> THE SOFTWARE.\n"
  },
  {
    "path": "vendor/psr/simple-cache/README.md",
    "content": "PHP FIG Simple Cache PSR\n========================\n\nThis repository holds all interfaces related to PSR-16.\n\nNote that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details.\n\nYou can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package.\n"
  },
  {
    "path": "vendor/psr/simple-cache/composer.json",
    "content": "{\n    \"name\": \"psr/simple-cache\",\n    \"description\": \"Common interfaces for simple caching\",\n    \"keywords\": [\"psr\", \"psr-16\", \"cache\", \"simple-cache\", \"caching\"],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"PHP-FIG\",\n            \"homepage\": \"http://www.php-fig.org/\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Psr\\\\SimpleCache\\\\\": \"src/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/psr/simple-cache/src/CacheException.php",
    "content": "<?php\n\nnamespace Psr\\SimpleCache;\n\n/**\n * Interface used for all types of exceptions thrown by the implementing library.\n */\ninterface CacheException\n{\n}\n"
  },
  {
    "path": "vendor/psr/simple-cache/src/CacheInterface.php",
    "content": "<?php\n\nnamespace Psr\\SimpleCache;\n\ninterface CacheInterface\n{\n    /**\n     * Fetches a value from the cache.\n     *\n     * @param string $key     The unique key of this item in the cache.\n     * @param mixed  $default Default value to return if the key does not exist.\n     *\n     * @return mixed The value of the item from the cache, or $default in case of cache miss.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if the $key string is not a legal value.\n     */\n    public function get($key, $default = null);\n\n    /**\n     * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.\n     *\n     * @param string                 $key   The key of the item to store.\n     * @param mixed                  $value The value of the item to store, must be serializable.\n     * @param null|int|\\DateInterval $ttl   Optional. The TTL value of this item. If no value is sent and\n     *                                      the driver supports TTL then the library may set a default value\n     *                                      for it or let the driver take care of that.\n     *\n     * @return bool True on success and false on failure.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if the $key string is not a legal value.\n     */\n    public function set($key, $value, $ttl = null);\n\n    /**\n     * Delete an item from the cache by its unique key.\n     *\n     * @param string $key The unique cache key of the item to delete.\n     *\n     * @return bool True if the item was successfully removed. False if there was an error.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if the $key string is not a legal value.\n     */\n    public function delete($key);\n\n    /**\n     * Wipes clean the entire cache's keys.\n     *\n     * @return bool True on success and false on failure.\n     */\n    public function clear();\n\n    /**\n     * Obtains multiple cache items by their unique keys.\n     *\n     * @param iterable $keys    A list of keys that can obtained in a single operation.\n     * @param mixed    $default Default value to return for keys that do not exist.\n     *\n     * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if $keys is neither an array nor a Traversable,\n     *   or if any of the $keys are not a legal value.\n     */\n    public function getMultiple($keys, $default = null);\n\n    /**\n     * Persists a set of key => value pairs in the cache, with an optional TTL.\n     *\n     * @param iterable               $values A list of key => value pairs for a multiple-set operation.\n     * @param null|int|\\DateInterval $ttl    Optional. The TTL value of this item. If no value is sent and\n     *                                       the driver supports TTL then the library may set a default value\n     *                                       for it or let the driver take care of that.\n     *\n     * @return bool True on success and false on failure.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if $values is neither an array nor a Traversable,\n     *   or if any of the $values are not a legal value.\n     */\n    public function setMultiple($values, $ttl = null);\n\n    /**\n     * Deletes multiple cache items in a single operation.\n     *\n     * @param iterable $keys A list of string-based keys to be deleted.\n     *\n     * @return bool True if the items were successfully removed. False if there was an error.\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if $keys is neither an array nor a Traversable,\n     *   or if any of the $keys are not a legal value.\n     */\n    public function deleteMultiple($keys);\n\n    /**\n     * Determines whether an item is present in the cache.\n     *\n     * NOTE: It is recommended that has() is only to be used for cache warming type purposes\n     * and not to be used within your live applications operations for get/set, as this method\n     * is subject to a race condition where your has() will return true and immediately after,\n     * another script can remove it making the state of your app out of date.\n     *\n     * @param string $key The cache item key.\n     *\n     * @return bool\n     *\n     * @throws \\Psr\\SimpleCache\\InvalidArgumentException\n     *   MUST be thrown if the $key string is not a legal value.\n     */\n    public function has($key);\n}\n"
  },
  {
    "path": "vendor/psr/simple-cache/src/InvalidArgumentException.php",
    "content": "<?php\n\nnamespace Psr\\SimpleCache;\n\n/**\n * Exception interface for invalid cache arguments.\n *\n * When an invalid argument is passed it must throw an exception which implements\n * this interface\n */\ninterface InvalidArgumentException extends CacheException\n{\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/CHANGELOG.md",
    "content": "# ramsey/uuid Changelog\n\n## 3.8.0\n\n_Released: 2018-07-19_\n\n  * Add support for determining MAC address on FreeBSD systems ([#212](https://github.com/ramsey/uuid/pull/212))\n  * Add a polyfill for PHP ctype functions to support systems where the ctype functions are not part of the PHP build ([#223](https://github.com/ramsey/uuid/pull/223))\n  * Improve validation to disallow UUIDs with a trailing newline character ([#225](https://github.com/ramsey/uuid/pull/225))\n  * Add annotations for thrown exceptions for improved IDE hinting ([#232](https://github.com/ramsey/uuid/pull/232))\n  * Improve documentation, testing, and project metadata (i.e. `.gitattributes`, etc.)\n\n## 3.7.3\n\n_Released: 2018-01-19_\n\n  * In rare cases, when using `glob()` to find `/sys/class/net/*/address` files on Linux, `glob()` encountered errors, returning `false` instead of an empty array, causing `array_map()` to emit warnings since its second parameter was not an array; this release gracefully handles cases where `glob()` returns `false` [#203](https://github.com/ramsey/uuid/issues/203)\n  * Fixed an off-by-one error in `DefaultTimeGenerator` and switching to `random_int()` from `mt_rand()` for better random numbers [#206](https://github.com/ramsey/uuid/pull/206)\n\n## 3.7.2\n\n_Released: 2018-01-13_\n\n  * On Linux, first check sysfs to determine node identifier; this provides a reliable way to identify the node on Docker images, etc. [#185](https://github.com/ramsey/uuid/pull/185)\n\n## 3.7.1\n\n_Released: 2017-09-22_\n\n  * Use `random_bytes()` when generating random nodes\n  * Set the multicast bit for random nodes, according to RFC 4122, §4.5, [#170](https://github.com/ramsey/uuid/pull/170), [#171](https://github.com/ramsey/uuid/pull/171), [#182](https://github.com/ramsey/uuid/pull/182)\n\n## 3.7.0\n\n_Released: 2017-08-04_\n\n  * Add UUID version constants [#173](https://github.com/ramsey/uuid/issues/173), [#177](https://github.com/ramsey/uuid/pull/177)\n    * `Uuid::UUID_TYPE_TIME`\n    * `Uuid::UUID_TYPE_IDENTIFIER`\n    * `Uuid::UUID_TYPE_HASH_MD5`\n    * `Uuid::UUID_TYPE_RANDOM`\n    * `Uuid::UUID_TYPE_HASH_SHA1`\n\n## 3.6.1\n\n_Released: 2017-03-26_\n\n  * Optimize UUID string decoding [#164](https://github.com/ramsey/uuid/pull/164)\n\n## 3.6.0\n\n_Released: 2017-03-18_\n\n  * Add `InvalidUuidStringException`, thrown when attempting to decode an invalid string UUID; this does not introduce any BC issues, since the new exception inherits from the previously used `InvalidArgumentException` [#162](https://github.com/ramsey/uuid/pull/162)\n  * Improve memory usage when generating large quantities of UUIDs (use `str_pad()` and `dechex()` instead of `sprintf()`) [#160](https://github.com/ramsey/uuid/pull/160)\n  * Minor test and documentation updates\n\n## 3.5.2\n\n_Released: 2016-11-22_\n\n  * Improved test coverage.\n\n## 3.5.1\n\n_Released: 2016-10-02_\n\n  * Fixed issue where same UUIDs were not treated as equal with mixed case ([#131](https://github.com/ramsey/uuid/issues/131), [#137](https://github.com/ramsey/uuid/pull/137)).\n  * Test cleanup.\n\n## 3.5.0\n\n_Released: 2016-08-02_\n\n  * Add `OrderedTimeCodec` to store UUID in an optimized way for InnoDB ([#117](https://github.com/ramsey/uuid/issues/117), [#118](https://github.com/ramsey/uuid/pull/118)).\n  * Fixed `RandomNodeProvider` to prevent invalid node generation ([#129](https://github.com/ramsey/uuid/pull/129)).\n  * Cache failed attempt to retrieve system node to avoid multiple system calls ([#107](https://github.com/ramsey/uuid/issues/107), [#121](https://github.com/ramsey/uuid/pull/121)).\n  * Various test improvements.\n\n## 3.4.1\n\n_Released: 2016-04-23_\n\n  * Fixed test that violated a PHP CodeSniffer rule, breaking the build.\n\n## 3.4.0\n\n_Released: 2016-04-23_\n\n  * Add `TimestampFirstCombCodec` and `TimestampLastCombCodec` codecs.\n  * Improve logic of `CombGenerator` for COMB sequential UUIDs.\n  * Significantly improved test coverage.\n\n## 3.3.0\n\n_Released: 2016-03-22_\n\n  * Drop the use of OpenSSL as a fallback and use [paragonie/random_compat][] to support RandomBytesGenerator in versions of PHP earlier than 7.0. This addresses and fixes the [collision issue][].\n  * Improved test coverage.\n  * Update code to conduct to version 1.4 of the Contributor Covenant.\n\n## 3.2.0\n\n_Released: 2016-02-17_\n\n  * Add random generator option for use for the PECL libsodium extension.\n  * Updates to test infrastructure.\n\n## 3.1.0\n\n_Released: 2015-12-17_\n\n  * Uuid objects now may be properly serialized/unserialized.\n  * Update build environments for testing on Travis CI.\n\n## 3.0.1\n\n_Released: 2015-10-21_\n\n  * Add project [Contributor Code of Conduct](https://github.com/ramsey/uuid/blob/master/CONDUCT.md)\n  * Modify Travis CI builds to run tests on multiple CPU architectures\n  * Clean up code, tests, and documentation\n\n## 3.0.0\n\n_Released: 2015-09-28_\n\nThe 3.0.0 release represents a significant step for the ramsey/uuid library. While the simple and familiar API used in previous versions remains intact, this release provides greater flexibility to integrators, including the ability to inject your own number generators, UUID codecs, node and time providers, and more.\n\n  * BREAK: The root namespace for this package has changed from \"Rhumsaa\" to \"Ramsey.\" In most cases, simply making this change in your applications is the only upgrade path you will need. Everything else should work as expected.\n  * BREAK: The UUID [Doctrine field type](http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html) has been moved to [ramsey/uuid-doctrine](https://github.com/ramsey/uuid-doctrine).\n  * BREAK: The `uuid` console application has been moved to [ramsey/uuid-console](https://github.com/ramsey/uuid-console).\n  * BREAK: The `Uuid::VERSION` package version constant has been removed.\n  * See also the release notes for [3.0.0-alpha1][300-alpha1], [3.0.0-alpha2][300-alpha2], [3.0.0-alpha3][300-alpha3], and [3.0.0-beta1][300-beta1].\n\n[300-alpha1]: https://github.com/ramsey/uuid/blob/master/CHANGELOG.md#300-alpha1\n[300-alpha2]: https://github.com/ramsey/uuid/blob/master/CHANGELOG.md#300-alpha2\n[300-alpha3]: https://github.com/ramsey/uuid/blob/master/CHANGELOG.md#300-alpha3\n[300-beta1]: https://github.com/ramsey/uuid/blob/master/CHANGELOG.md#300-beta1\n\n## 3.0.0-beta1\n\n_Released: 2015-08-31_\n\n  * Improve GUID support to ensure that:\n    * On little endian (LE) architectures, the byte order of the first three fields is LE.\n    * On big endian (BE) architectures, it is the same as a GUID.\n    * String representation is always the same.\n  * Fix exception message for `DegradedNumberConverter::fromHex()`.\n  * Add Scrutinizer configuration to run code-quality builds through Scrutinizer.\n  * Auto-fix Scrutinizer issues.\n  * Fix support URLs in composer.json to point to the correct GitHub repository.\n\n## 3.0.0-alpha3\n\n_Released: 2015-07-28_\n\n  * Time generator improvements:\n    * Enabled use of custom TimeGenerator implementations.\n      * BREAK: Removed now unnecessary `timeConverter` and `timeProvider` properties, setters, and getters in both `FeatureSet` and `UuidFactory` as those are now exclusively used by the default `TimeGenerator`.\n      * Added a `setTimeGenerator` method on `UuidFactory` to override the default time generator.\n    * Add option to enable `PeclUuidTimeGenerator` via `FeatureSet`.\n\n## 3.0.0-alpha2\n\n_Released: 2015-07-28_\n\n  * BREAK: Removed `PeclUuidFactory` in favor of using pecl-uuid with generators.\n  * NEW: Refactored time-based (version 1) UUIDs into a `TimeGeneratorInterface` to allow for other sources to generate version 1 UUIDs in this library.\n  * NEW: Added `PeclUuidTimeGenerator` and `PeclUuidRandomGenerator` for creating version 1 or version 4 UUIDs using the pecl-uuid extension.\n  * NEW: Add `RandomBytesGenerator` for use with PHP 7. ramsey/uuid will default to use this generator when running on PHP 7.\n  * `RandomLibAdapter` now defaults to a medium-strength generator with [ircmaxell/random-lib](https://github.com/ircmaxell/RandomLib). This is configurable, so other generator strengths may be used.\n  * Migrated to the Travis CI container-based infrastructure for builds.\n  * Documentation updates and corrections.\n\n## 3.0.0-alpha1\n\n_Released: 2015-07-16_\n\n  * BREAK: The root namespace for this package has changed from \"Rhumsaa\" to \"Ramsey.\" In most cases, simply making this change in your applications is the only upgrade path you will need. Everything else should work as expected.\n  * BREAK: The UUID [Doctrine field type](http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html) has been moved to [ramsey/uuid-doctrine](https://github.com/ramsey/uuid-doctrine).\n  * BREAK: The `uuid` console application has been moved to [ramsey/uuid-console](https://github.com/ramsey/uuid-console).\n  * BREAK: The `Uuid::VERSION` package version constant has been removed.\n  * NEW: The `Uuid` class is no longer marked as `final`. Everything is now based around interfaces and factories, allowing you to use this package as a base to implement other kinds of UUIDs with different dependencies.\n  * NEW: Through setting dependencies on `UuidFactory` and/or extending `FeatureSet`, you may override any package defaults, injecting your own dependencies.\n  * NEW: For random number generation, in addition to `OpenSslGenerator` (used if `openssl_random_pseudo_bytes()` is present) and the fallback `MtRandGenerator`, you may use the bundled `CombGenerator` for sequential UUIDs or the `RandomLibAdapter` if using [ircmaxell/random-lib](https://github.com/ircmaxell/RandomLib).\n  * NEW: In addition to the default UUID generation, this library also supports GUID generation by configuring a `FeatureSet` to use GUIDs.\n  * NEW: While the interface to create UUIDs hasn't changed, if using this package on a 32-bit system, you will now receive an object of type `DegradedUuid` (which extends `Uuid`, which implements `UuidInterface`).\n  * NEW: All UUIDs are now [JsonSerializable](http://php.net/JsonSerializable).\n\n## 2.9.0\n\n_Released: 2016-03-22_\n\n  * Drop support for OpenSSL in favor of [paragonie/random_compat][]. This addresses and fixes the [collision issue][].\n\n## 2.8.4\n\n_Released: 2015-12-17_\n\n  * Add support for symfony/console v3.\n  * Update build matrix to run Travis CI tests on PHP 7 & with lowest package versions.\n\n## 2.8.3\n\n_Released: 2015-08-31_\n\n  * Fix exception message in `Uuid::calculateUuidTime()`.\n  * Update composer.json to reflect new repository and package name.\n\n## 2.8.2\n\n_Released: 2015-07-23_\n\n  * Ensure the release tag makes it into the rhumsaa/uuid package.\n  * Minor documentation changes.\n\n## 2.8.1\n\n_Released: 2015-06-16_\n\n  * Use `passthru()` and output buffering in `getIfconfig()`.\n  * Cache the system node in a static variable so that we process it only once per runtime.\n  * Set ramsey/uuid as a replacement for rhumsaa/uuid in composer.json.\n  * Documentation updates and corrections.\n\n## 2.8.0\n\n_Released: 2014-11-09_\n\n  * Added static `fromInteger()` method to create UUIDs from string integer or `\\Moontoast\\Math\\BigNumber`.\n  * Friendlier Doctrine conversion to Uuid or string.\n  * Documentation fixes.\n\n## 2.7.4\n\n_Released: 2014-10-29_\n\n  * Changed loop in `generateBytes()` from `foreach` to `for`; see #33\n  * Use `toString()` in README examples to avoid confusion\n  * Exclude build/development tools from releases using .gitattributes\n  * Set timezone properly for tests\n\n## 2.7.3\n\n_Released: 2014-08-27_\n\n  * Fixed upper range for `mt_rand` used in version 4 UUIDs\n\n## 2.7.2\n\n_Released: 2014-07-28_\n\n  * Upgraded to PSR-4 autoloading\n  * Testing upgrades:\n    * Testing against PHP 5.6\n    * Testing with PHPUnit 4\n    * Using Coveralls.io to generate code coverage reports\n  * Documentation fixes\n\n## 2.7.1\n\n_Released: 2014-02-19_\n\n  * Moved moontoast/math and symfony/console to require-dev; fixes #20\n  * Now supporting symfony/console for 2.3 (LTS version); fixes #21\n  * Updated tests to run even when dev packages are not installed (skips tests if requirements are not met)\n\n## 2.7.0\n\n_Released: 2014-01-31_\n\n  * Moved UUID validation regex pattern into constant for external use (`Uuid::VALID_PATTERN`)\n\n## 2.6.1\n\n_Released: 2014-01-27_\n\n  * Fixed bug where `uuid` console application could not find the Composer autoloader when installed in another project\n\n## 2.6.0\n\n_Released: 2014-01-17_\n\n  * Introduced `uuid` console application for generating and decoding UUIDs from CLI (run `./bin/uuid` for details)\n  * Added `Uuid::getInteger()` to retrieve a Moontoast\\Math\\BigNumber representation of the 128-bit integer representing the UUID\n  * Added `Uuid::getHex()` to retrieve the hexadecimal representation of the UUID\n  * Now using netstat on Linux to capture the node for a version 1 UUID\n  * Now requiring Moontoast\\Math as part of the regular package requirements, not just the dev requirements\n\n## 2.5.0\n\n_Released: 2013-10-30_\n\n  * Using `openssl_random_pseudo_bytes()`, if available, to generate random bytes, by merging in PR #15 from @dfreudenberger\n  * Fixed test for Rhumsaa\\Uuid\\Doctrine\\UuidType, by merging in PR #17 from @dfreudenberger\n  * Documentation fixes\n\n## 2.4.0\n\n_Released: 2013-07-29_\n\n  * `Uuid::getVersion()` now returns null if the UUID isn't an RFC 4122 variant\n  * `Uuid::fromString()` now supports a 128-bit integer formatted as a hexadecimal string (UUID without dashes)\n  * Tests have been greatly enhanced, borrowing from the Python UUID library\n\n## 2.3.0\n\n_Released: 2013-07-16_\n\n  * Added `Uuid::fromBytes()` by merging in PR #14 from @asm89\n\n## 2.2.0\n\n_Released: 2013-07-04_\n\n  * Added `Doctrine\\UuidType::requiresSQLCommentHint()` method by merging in PR #13 from @zerrvox\n  * Removed `\"minimum-stability\": \"dev\"` from composer.json\n\n## 2.1.2\n\n_Released: 2013-07-03_\n\n  * @ericthelin found cases where the system node was coming back with uppercase hexadecimal digits; this ensures that case in the node is converted to lowercase\n\n## 2.1.1\n\n_Released: 2013-04-29_\n\n  * Fixed NIL bug in `Uuid::isValid()` method, reported by @ocubom in PR #11\n\n## 2.1.0\n\n_Released: 2013-04-15_\n\n  * Added static `Uuid::isValid()` method for checking whether a string is a valid UUID\n\n## 2.0.0\n\n_Released: 2013-02-11_\n\n  * Break: `Uuid` class is now marked as \"final\"\n  * Break: `Uuid::getLeastSignificantBits()` no longer returns an integer on 64-bit platforms; it requires `moontoast/math`\n  * Break: `Uuid::getMostSignificantBits()` no longer returns an integer on 64-bit platforms; it requires `moontoast/math`\n  * Break: Moved `UnsupportedOperationException` to the `Exception` subnamespace\n  * Added support for 32-bit platforms\n  * Added generated API documentation to the repository\n\n## 1.1.2\n\n_Released: 2012-11-29_\n\n  * Relaxed Doctrine type conversion rules\n\n## 1.1.1\n\n_Released: 2012-08-27_\n\n  * Removed `final` keyword from `Uuid` class\n\n## 1.1.0\n\n_Released: 2012-08-06_\n\n  * Added `Doctrine\\UuidType` as a field mapping type for the Doctrine Database Abstraction Layer (DBAL)\n  * Improved tests and code coverage\n\n## 1.0.0\n\n_Released: 2012-07-19_\n\n  * Initial release\n\n\n[paragonie/random_compat]: https://github.com/paragonie/random_compat\n[collision issue]: https://github.com/ramsey/uuid/issues/80\n"
  },
  {
    "path": "vendor/ramsey/uuid/CODE_OF_CONDUCT.md",
    "content": "# Contributor Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project maintainer at <ben@benramsey.com>. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/ramsey/uuid/CONTRIBUTING.md",
    "content": "# Contributing\n\nContributions are welcome. We accept pull requests on [GitHub](https://github.com/ramsey/uuid).\n\nThis project adheres to a [Contributor Code of Conduct](https://github.com/ramsey/uuid/blob/master/CODE_OF_CONDUCT.md). By participating in this project and its community, you are expected to uphold this code.\n\n## Team members\n\n* [Ben Ramsey](https://github.com/ramsey) - original author and maintainer\n* [Marijn Huizendveld](https://github.com/marijn) - contributor, author of UUID type definition for Doctrine DBAL\n* [Thibaud Fabre](https://github.com/aztech-dev) - contributor, lead developer for version 3.0.0 re-architecture\n\n## Communication Channels\n\nYou can find help and discussion in the following places:\n\n* GitHub Issues: <https://github.com/ramsey/uuid/issues>\n* Wiki: <https://github.com/ramsey/uuid/wiki>\n\n## Reporting Bugs\n\nBugs are tracked in our project's [issue tracker](https://github.com/ramsey/uuid/issues).\n\nWhen submitting a bug report, please include enough information for us to reproduce the bug. A good bug report includes the following sections:\n\n* Expected outcome\n* Actual outcome\n* Steps to reproduce, including sample code\n* Any other information that will help us debug and reproduce the issue, including stack traces, system/environment information, and screenshots\n\n**Please do not include passwords or any personally identifiable information in your bug report and sample code.**\n\n## Fixing Bugs\n\nWe welcome pull requests to fix bugs!\n\nIf you see a bug report that you'd like to fix, please feel free to do so. Following the directions and guidelines described in the \"Adding New Features\" section below, you may create bugfix branches and send us pull requests.\n\n## Adding New Features\n\nIf you have an idea for a new feature, it's a good idea to check out our [issues](https://github.com/ramsey/uuid/issues) or active [pull requests](https://github.com/ramsey/uuid/pulls) first to see if the feature is already being worked on. If not, feel free to submit an issue first, asking whether the feature is beneficial to the project. This will save you from doing a lot of development work only to have your feature rejected. We don't enjoy rejecting your hard work, but some features just don't fit with the goals of the project.\n\nWhen you do begin working on your feature, here are some guidelines to consider:\n\n* Your pull request description should clearly detail the changes you have made. We will use this description to add to our CHANGELOG. If there is no description or it does not adequately describe your feature, we will ask you to update the description.\n* We following the **[PSR-2 coding standard](http://www.php-fig.org/psr/psr-2/)**. Please ensure your code does, too.\n* Please **write tests** for any new features you add.\n* Please **ensure that tests pass** before submitting your pull request. We have Travis CI automatically running tests for pull requests. However, running the tests locally will help save time.\n* **Use topic/feature branches.** Please do not ask us to pull from your master branch.\n* **Submit one feature per pull request.** If you have multiple features you wish to submit, please break them up into separate pull requests.\n* **Send coherent history**. Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.\n\n## Running Tests\n\nThe following tests must pass before we will accept a pull request. If any of these do not pass, it will result in a complete build failure. Before you can run these, be sure to `composer install`.\n\n```\ncomposer test\n```\n\n### Locally Test With Emulated MIPS Architecture\n\nThe following commands use [Vagrant](https://www.vagrantup.com/) to start an Ubuntu VM, install necessary dependencies, and then run the `tools/run-tests.sh` script that will download a Docker image emulating the MIPS architecture. This is especially helpful for testing UUID generation in a big-endian environment.\n\n```\nvagrant init ubuntu/trusty64\nvagrant up\nvagrant ssh\nsudo apt-get install docker.io qemu-user-static php5-cli php5-curl\ncd /vagrant\ncurl -sS https://getcomposer.org/installer | php\nphp composer.phar install --no-interaction --prefer-dist\nmkdir -p build/logs\nARCH=mips PHP_VERSION=5.6.14 TRAVIS_BUILD_DIR=/vagrant ./tools/run-tests.sh\n```\n"
  },
  {
    "path": "vendor/ramsey/uuid/LICENSE",
    "content": "Copyright (c) 2012-2018 Ben Ramsey <ben@benramsey.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/ramsey/uuid/README.md",
    "content": "# ramsey/uuid\n\n_NOTICE: Formerly known as `rhumsaa/uuid`, The package and namespace names have changed to `ramsey/uuid` and `Ramsey\\Uuid`, respectively._\n\n[![Source Code][badge-source]][source]\n[![Latest Version][badge-release]][release]\n[![Software License][badge-license]][license]\n[![Build Status][badge-build]][build]\n[![Coverage Status][badge-coverage]][coverage]\n[![Total Downloads][badge-downloads]][downloads]\n\nramsey/uuid is a PHP 5.4+ library for generating and working with [RFC 4122][rfc4122] version 1, 3, 4, and 5 universally unique identifiers (UUID).\n\nThis project adheres to a [Contributor Code of Conduct][conduct]. By participating in this project and its community, you are expected to uphold this code.\n\n\n## About\n\nFrom [Wikipedia](http://en.wikipedia.org/wiki/Universally_unique_identifier):\n\n> The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. In this context the word unique should be taken to mean \"practically unique\" rather than \"guaranteed unique\". Since the identifiers have a finite size, it is possible for two differing items to share the same identifier. The identifier size and generation process need to be selected so as to make this sufficiently improbable in practice. Anyone can create a UUID and use it to identify something with reasonable confidence that the same identifier will never be unintentionally created by anyone to identify something else. Information labeled with UUIDs can therefore be later combined into a single database without needing to resolve identifier (ID) conflicts.\n\nMuch inspiration for this library came from the [Java][javauuid] and [Python][pyuuid] UUID libraries.\n\n\n## Installation\n\nThe preferred method of installation is via [Packagist][] and [Composer][]. Run the following command to install the package and add it as a requirement to your project's `composer.json`:\n\n```bash\ncomposer require ramsey/uuid\n```\n\n\n## Upgrading from 2.x to 3.x\n\nWhile we have made significant internal changes to the library, we have made every effort to ensure a seamless upgrade path from the 2.x series of this library to 3.x.\n\nOne major breaking change is the transition from the `Rhumsaa` root namespace to `Ramsey`. In most cases, all you will need is to change the namespace to `Ramsey` in your code, and everything will \"just work.\"\n\nHere are full details on the breaking changes to the public API of this library:\n\n1. All namespace references of `Rhumsaa` have changed to `Ramsey`. Simply change the namespace to `Ramsey` in your code and everything should work.\n2. The console application has moved to [ramsey/uuid-console](https://packagist.org/packages/ramsey/uuid-console). If using the console functionality, use Composer to require `ramsey/uuid-console`.\n3. The Doctrine field type mapping has moved to [ramsey/uuid-doctrine](https://packagist.org/packages/ramsey/uuid-doctrine). If using the Doctrine functionality, use Composer to require `ramsey/uuid-doctrine`.\n\n\n## What to do if you see a \"rhumsaa/uuid is abandoned\" message\n\nWhen installing your project's dependencies using Composer, you might see the following message:\n\n```\nPackage rhumsaa/uuid is abandoned, you should avoid using it. Use ramsey/uuid instead.\n```\n\nDon't panic. Simply execute the following commands with Composer:\n\n``` bash\ncomposer remove rhumsaa/uuid\ncomposer require ramsey/uuid=^2.9\n```\n\nAfter doing so, you will have the latest ramsey/uuid package in the 2.x series, and there will be no need to modify any code; the namespace in the 2.x series is still `Rhumsaa`.\n\n\n## Requirements\n\nSome methods in this library have requirements due to integer size restrictions on 32-bit and 64-bit builds of PHP. A 64-bit build of PHP and the [Moontoast\\Math][] library are recommended. However, this library is designed to work on 32-bit builds of PHP without Moontoast\\Math, with some degraded functionality. Please check the API documentation for more information.\n\nIf a particular requirement is not present, then an `UnsatisfiedDependencyException` is thrown, allowing one to catch a bad call in an environment where the call is not supported and gracefully degrade.\n\n\n## API documentation\n\nThe [latest class API documentation][apidocs] is available online.\n\nThis project uses [ApiGen](http://apigen.org/) to generate this documentation. To generate the documentation on your own, install dev dependencies and run the following command from the root of the project:\n\n```\ncomposer build-docs\n```\n\nThis will generate documentation in the `build/apidocs/` folder.\n\n\n## Examples\n\nSee the [cookbook on the wiki][wiki-cookbook] for more examples and approaches to specific use-cases.\n\n```php\n<?php\nrequire 'vendor/autoload.php';\n\nuse Ramsey\\Uuid\\Uuid;\nuse Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException;\n\ntry {\n\n    // Generate a version 1 (time-based) UUID object\n    $uuid1 = Uuid::uuid1();\n    echo $uuid1->toString() . \"\\n\"; // i.e. e4eaaaf2-d142-11e1-b3e4-080027620cdd\n\n    // Generate a version 3 (name-based and hashed with MD5) UUID object\n    $uuid3 = Uuid::uuid3(Uuid::NAMESPACE_DNS, 'php.net');\n    echo $uuid3->toString() . \"\\n\"; // i.e. 11a38b9a-b3da-360f-9353-a5a725514269\n\n    // Generate a version 4 (random) UUID object\n    $uuid4 = Uuid::uuid4();\n    echo $uuid4->toString() . \"\\n\"; // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a\n\n    // Generate a version 5 (name-based and hashed with SHA1) UUID object\n    $uuid5 = Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net');\n    echo $uuid5->toString() . \"\\n\"; // i.e. c4a760a8-dbcf-5254-a0d9-6a4474bd1b62\n\n} catch (UnsatisfiedDependencyException $e) {\n\n    // Some dependency was not met. Either the method cannot be called on a\n    // 32-bit system, or it can, but it relies on Moontoast\\Math to be present.\n    echo 'Caught exception: ' . $e->getMessage() . \"\\n\";\n\n}\n```\n\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING][] for details.\n\n\n## Copyright and license\n\nThe ramsey/uuid library is copyright © [Ben Ramsey](https://benramsey.com/) and licensed for use under the MIT License (MIT). Please see [LICENSE][] for more information.\n\n\n\n[rfc4122]: http://tools.ietf.org/html/rfc4122\n[conduct]: https://github.com/ramsey/uuid/blob/master/CODE_OF_CONDUCT.md\n[javauuid]: http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html\n[pyuuid]: http://docs.python.org/3/library/uuid.html\n[packagist]: https://packagist.org/packages/ramsey/uuid\n[composer]: http://getcomposer.org/\n[moontoast\\math]: https://packagist.org/packages/moontoast/math\n[apidocs]: http://docs.benramsey.com/ramsey-uuid/latest/\n[wiki-cookbook]: https://github.com/ramsey/uuid/wiki/Ramsey%5CUuid-Cookbook\n[contributing]: https://github.com/ramsey/uuid/blob/master/CONTRIBUTING.md\n\n[badge-source]: https://img.shields.io/badge/source-ramsey/uuid-blue.svg?style=flat-square\n[badge-release]: https://img.shields.io/packagist/v/ramsey/uuid.svg?style=flat-square\n[badge-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square\n[badge-build]: https://img.shields.io/travis/ramsey/uuid/master.svg?style=flat-square\n[badge-coverage]: https://img.shields.io/coveralls/ramsey/uuid/master.svg?style=flat-square\n[badge-downloads]: https://img.shields.io/packagist/dt/ramsey/uuid.svg?style=flat-square\n\n[source]: https://github.com/ramsey/uuid\n[release]: https://packagist.org/packages/ramsey/uuid\n[license]: https://github.com/ramsey/uuid/blob/master/LICENSE\n[build]: https://travis-ci.org/ramsey/uuid\n[coverage]: https://coveralls.io/r/ramsey/uuid?branch=master\n[downloads]: https://packagist.org/packages/ramsey/uuid\n"
  },
  {
    "path": "vendor/ramsey/uuid/composer.json",
    "content": "{\n    \"name\": \"ramsey/uuid\",\n    \"description\": \"Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).\",\n    \"type\": \"library\",\n    \"keywords\": [\"uuid\", \"identifier\", \"guid\"],\n    \"homepage\": \"https://github.com/ramsey/uuid\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Ben Ramsey\",\n            \"email\": \"ben@benramsey.com\",\n            \"homepage\": \"https://benramsey.com\"\n        },\n        {\n            \"name\": \"Marijn Huizendveld\",\n            \"email\": \"marijn.huizendveld@gmail.com\"\n        },\n        {\n            \"name\": \"Thibaud Fabre\",\n            \"email\": \"thibaud@aztech.io\"\n        }\n    ],\n    \"support\": {\n        \"issues\": \"https://github.com/ramsey/uuid/issues\",\n        \"source\": \"https://github.com/ramsey/uuid\"\n    },\n    \"require\": {\n        \"php\": \"^5.4 || ^7.0\",\n        \"paragonie/random_compat\": \"^1.0|^2.0|9.99.99\",\n        \"symfony/polyfill-ctype\": \"^1.8\"\n    },\n    \"require-dev\": {\n        \"codeception/aspect-mock\": \"^1.0 | ~2.0.0\",\n        \"doctrine/annotations\": \"~1.2.0\",\n        \"goaop/framework\": \"1.0.0-alpha.2 | ^1.0 | ~2.1.0\",\n        \"ircmaxell/random-lib\": \"^1.1\",\n        \"jakub-onderka/php-parallel-lint\": \"^0.9.0\",\n        \"mockery/mockery\": \"^0.9.9\",\n        \"moontoast/math\": \"^1.1\",\n        \"php-mock/php-mock-phpunit\": \"^0.3|^1.1\",\n        \"phpunit/phpunit\": \"^4.7|^5.0|^6.5\",\n        \"squizlabs/php_codesniffer\": \"^2.3\"\n    },\n    \"suggest\": {\n        \"ext-ctype\": \"Provides support for PHP Ctype functions\",\n        \"ircmaxell/random-lib\": \"Provides RandomLib for use with the RandomLibAdapter\",\n        \"ext-libsodium\": \"Provides the PECL libsodium extension for use with the SodiumRandomGenerator\",\n        \"ext-uuid\": \"Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator\",\n        \"moontoast/math\": \"Provides support for converting UUID to 128-bit integer (in string form).\",\n        \"ramsey/uuid-doctrine\": \"Allows the use of Ramsey\\\\Uuid\\\\Uuid as Doctrine field type.\",\n        \"ramsey/uuid-console\": \"A console application for generating UUIDs with ramsey/uuid\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\"Ramsey\\\\Uuid\\\\\": \"src/\"}\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\"Ramsey\\\\Uuid\\\\Test\\\\\": \"tests/\"}\n    },\n    \"replace\": {\n        \"rhumsaa/uuid\": \"self.version\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"3.x-dev\"\n        }\n    },\n    \"scripts\": {\n        \"lint\": \"parallel-lint src tests\",\n        \"phpunit\": \"phpunit --verbose --colors=always\",\n        \"phpcs\": \"phpcs src tests --standard=psr2 -sp --colors\",\n        \"test\": [\n            \"@lint\",\n            \"@phpunit\",\n            \"@phpcs\"\n        ]\n    },\n    \"config\": {\n        \"sort-packages\": true\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/BinaryUtils.php",
    "content": "<?php\n\nnamespace Ramsey\\Uuid;\n\n/**\n * Provides binary math utilities\n */\nclass BinaryUtils\n{\n    /**\n     * Applies the RFC 4122 variant field to the `clock_seq_hi_and_reserved` field\n     *\n     * @param $clockSeqHi\n     * @return int The high field of the clock sequence multiplexed with the variant\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    public static function applyVariant($clockSeqHi)\n    {\n        // Set the variant to RFC 4122\n        $clockSeqHi = $clockSeqHi & 0x3f;\n        $clockSeqHi &= ~(0xc0);\n        $clockSeqHi |= 0x80;\n\n        return $clockSeqHi;\n    }\n\n    /**\n     * Applies the RFC 4122 version number to the `time_hi_and_version` field\n     *\n     * @param string $timeHi\n     * @param integer $version\n     * @return int The high field of the timestamp multiplexed with the version number\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.3\n     */\n    public static function applyVersion($timeHi, $version)\n    {\n        $timeHi = hexdec($timeHi) & 0x0fff;\n        $timeHi &= ~(0xf000);\n        $timeHi |= $version << 12;\n\n        return $timeHi;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Builder;\n\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\Uuid;\n\n/**\n * DefaultUuidBuilder is the default UUID builder for ramsey/uuid; it builds\n * instances of Uuid objects\n */\nclass DefaultUuidBuilder implements UuidBuilderInterface\n{\n    /**\n     * @var NumberConverterInterface\n     */\n    private $converter;\n\n    /**\n     * Constructs the DefaultUuidBuilder\n     *\n     * @param NumberConverterInterface $converter The number converter to use when constructing the Uuid\n     */\n    public function __construct(NumberConverterInterface $converter)\n    {\n        $this->converter = $converter;\n    }\n\n    /**\n     * Builds a Uuid\n     *\n     * @param CodecInterface $codec The codec to use for building this Uuid\n     * @param array $fields An array of fields from which to construct the Uuid;\n     *     see {@see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()} for array structure.\n     * @return Uuid\n     */\n    public function build(CodecInterface $codec, array $fields)\n    {\n        return new Uuid($fields, $this->converter, $codec);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Builder;\n\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\DegradedUuid;\n\n/**\n * DegradedUuidBuilder builds instances of DegradedUuid\n */\nclass DegradedUuidBuilder implements UuidBuilderInterface\n{\n    /**\n     * @var NumberConverterInterface\n     */\n    private $converter;\n\n    /**\n     * Constructs the DegradedUuidBuilder\n     *\n     * @param NumberConverterInterface $converter The number converter to use when constructing the DegradedUuid\n     */\n    public function __construct(NumberConverterInterface $converter)\n    {\n        $this->converter = $converter;\n    }\n\n    /**\n     * Builds a DegradedUuid\n     *\n     * @param CodecInterface $codec The codec to use for building this DegradedUuid\n     * @param array $fields An array of fields from which to construct the DegradedUuid;\n     *     see {@see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()} for array structure.\n     * @return DegradedUuid\n     */\n    public function build(CodecInterface $codec, array $fields)\n    {\n        return new DegradedUuid($fields, $this->converter, $codec);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Builder;\n\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * UuidBuilderInterface builds instances UuidInterface\n */\ninterface UuidBuilderInterface\n{\n    /**\n     * Builds an instance of a UuidInterface\n     *\n     * @param CodecInterface $codec The codec to use for building this UuidInterface instance\n     * @param array $fields An array of fields from which to construct a UuidInterface instance;\n     *     see {@see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()} for array structure.\n     * @return UuidInterface\n     */\n    public function build(CodecInterface $codec, array $fields);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/CodecInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Codec;\n\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * CodecInterface represents a UUID coder-decoder\n */\ninterface CodecInterface\n{\n    /**\n     * Encodes a UuidInterface as a string representation of a UUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Hexadecimal string representation of a UUID\n     */\n    public function encode(UuidInterface $uuid);\n\n    /**\n     * Encodes a UuidInterface as a binary representation of a UUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Binary string representation of a UUID\n     */\n    public function encodeBinary(UuidInterface $uuid);\n\n    /**\n     * Decodes a string representation of a UUID into a UuidInterface object instance\n     *\n     * @param string $encodedUuid\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decode($encodedUuid);\n\n    /**\n     * Decodes a binary representation of a UUID into a UuidInterface object instance\n     *\n     * @param string $bytes\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     * @throws \\InvalidArgumentException if string has not 16 characters\n     */\n    public function decodeBytes($bytes);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/GuidStringCodec.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Codec;\n\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * GuidStringCodec encodes and decodes globally unique identifiers (GUID)\n *\n * @link https://en.wikipedia.org/wiki/Globally_unique_identifier\n */\nclass GuidStringCodec extends StringCodec\n{\n    /**\n     * Encodes a UuidInterface as a string representation of a GUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Hexadecimal string representation of a GUID\n     */\n    public function encode(UuidInterface $uuid)\n    {\n        $components = array_values($uuid->getFieldsHex());\n\n        // Swap byte-order on the first three fields\n        $this->swapFields($components);\n\n        return vsprintf(\n            '%08s-%04s-%04s-%02s%02s-%012s',\n            $components\n        );\n    }\n\n    /**\n     * Encodes a UuidInterface as a binary representation of a GUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Binary string representation of a GUID\n     */\n    public function encodeBinary(UuidInterface $uuid)\n    {\n        $components = array_values($uuid->getFieldsHex());\n\n        return hex2bin(implode('', $components));\n    }\n\n    /**\n     * Decodes a string representation of a GUID into a UuidInterface object instance\n     *\n     * @param string $encodedUuid\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decode($encodedUuid)\n    {\n        $components = $this->extractComponents($encodedUuid);\n\n        $this->swapFields($components);\n\n        return $this->getBuilder()->build($this, $this->getFields($components));\n    }\n\n    /**\n     * Decodes a binary representation of a GUID into a UuidInterface object instance\n     *\n     * @param string $bytes\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decodeBytes($bytes)\n    {\n        // Specifically call parent::decode to preserve correct byte order\n        return parent::decode(bin2hex($bytes));\n    }\n\n    /**\n     * Swaps fields to support GUID byte order\n     *\n     * @param array $components An array of UUID components (the UUID exploded on its dashes)\n     * @return void\n     */\n    protected function swapFields(array &$components)\n    {\n        $hex = unpack('H*', pack('L', hexdec($components[0])));\n        $components[0] = $hex[1];\n        $hex = unpack('H*', pack('S', hexdec($components[1])));\n        $components[1] = $hex[1];\n        $hex = unpack('H*', pack('S', hexdec($components[2])));\n        $components[2] = $hex[1];\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\nnamespace Ramsey\\Uuid\\Codec;\n\nuse InvalidArgumentException;\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * OrderedTimeCodec optimizes the bytes to increment UUIDs when time goes by, to improve database INSERTs.\n * The string value will be unchanged from StringCodec. Only works for UUID type 1.\n */\nclass OrderedTimeCodec extends StringCodec\n{\n\n    /**\n     * Encodes a UuidInterface as an optimized binary representation of a UUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Binary string representation of a UUID\n     */\n    public function encodeBinary(UuidInterface $uuid)\n    {\n        $fields = $uuid->getFieldsHex();\n\n        $optimized = [\n            $fields['time_hi_and_version'],\n            $fields['time_mid'],\n            $fields['time_low'],\n            $fields['clock_seq_hi_and_reserved'],\n            $fields['clock_seq_low'],\n            $fields['node'],\n        ];\n\n        return hex2bin(implode('', $optimized));\n    }\n\n    /**\n     * Decodes an optimized binary representation of a UUID into a UuidInterface object instance\n     *\n     * @param string $bytes\n     * @return UuidInterface\n     * @throws \\InvalidArgumentException if string has not 16 characters\n     */\n    public function decodeBytes($bytes)\n    {\n        if (strlen($bytes) !== 16) {\n            throw new InvalidArgumentException('$bytes string should contain 16 characters.');\n        }\n\n        $hex = unpack('H*', $bytes)[1];\n\n        // Rearrange the fields to their original order\n        $hex = substr($hex, 8, 4) . substr($hex, 12, 4) . substr($hex, 4, 4) . substr($hex, 0, 4) . substr($hex, 16);\n\n        return $this->decode($hex);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/StringCodec.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Codec;\n\nuse InvalidArgumentException;\nuse Ramsey\\Uuid\\Builder\\UuidBuilderInterface;\nuse Ramsey\\Uuid\\Exception\\InvalidUuidStringException;\nuse Ramsey\\Uuid\\Uuid;\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * StringCodec encodes and decodes RFC 4122 UUIDs\n *\n * @link http://tools.ietf.org/html/rfc4122\n */\nclass StringCodec implements CodecInterface\n{\n    /**\n     * @var UuidBuilderInterface\n     */\n    private $builder;\n\n    /**\n     * Constructs a StringCodec for use encoding and decoding UUIDs\n     *\n     * @param UuidBuilderInterface $builder The UUID builder to use when encoding UUIDs\n     */\n    public function __construct(UuidBuilderInterface $builder)\n    {\n        $this->builder = $builder;\n    }\n\n    /**\n     * Encodes a UuidInterface as a string representation of a UUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Hexadecimal string representation of a UUID\n     */\n    public function encode(UuidInterface $uuid)\n    {\n        $fields = array_values($uuid->getFieldsHex());\n\n        return vsprintf(\n            '%08s-%04s-%04s-%02s%02s-%012s',\n            $fields\n        );\n    }\n\n    /**\n     * Encodes a UuidInterface as a binary representation of a UUID\n     *\n     * @param UuidInterface $uuid\n     * @return string Binary string representation of a UUID\n     */\n    public function encodeBinary(UuidInterface $uuid)\n    {\n        return hex2bin($uuid->getHex());\n    }\n\n    /**\n     * Decodes a string representation of a UUID into a UuidInterface object instance\n     *\n     * @param string $encodedUuid\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decode($encodedUuid)\n    {\n        $components = $this->extractComponents($encodedUuid);\n        $fields = $this->getFields($components);\n\n        return $this->builder->build($this, $fields);\n    }\n\n    /**\n     * Decodes a binary representation of a UUID into a UuidInterface object instance\n     *\n     * @param string $bytes\n     * @return UuidInterface\n     * @throws \\InvalidArgumentException if string has not 16 characters\n     */\n    public function decodeBytes($bytes)\n    {\n        if (strlen($bytes) !== 16) {\n            throw new InvalidArgumentException('$bytes string should contain 16 characters.');\n        }\n\n        $hexUuid = unpack('H*', $bytes);\n\n        return $this->decode($hexUuid[1]);\n    }\n\n    /**\n     * Returns the UUID builder\n     *\n     * @return UuidBuilderInterface\n     */\n    protected function getBuilder()\n    {\n        return $this->builder;\n    }\n\n    /**\n     * Returns an array of UUID components (the UUID exploded on its dashes)\n     *\n     * @param string $encodedUuid\n     * @return array\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    protected function extractComponents($encodedUuid)\n    {\n        $nameParsed = str_replace(array(\n            'urn:',\n            'uuid:',\n            '{',\n            '}',\n            '-'\n        ), '', $encodedUuid);\n\n        // We have stripped out the dashes and are breaking up the string using\n        // substr(). In this way, we can accept a full hex value that doesn't\n        // contain dashes.\n        $components = array(\n            substr($nameParsed, 0, 8),\n            substr($nameParsed, 8, 4),\n            substr($nameParsed, 12, 4),\n            substr($nameParsed, 16, 4),\n            substr($nameParsed, 20)\n        );\n\n        $nameParsed = implode('-', $components);\n\n        if (!Uuid::isValid($nameParsed)) {\n            throw new InvalidUuidStringException('Invalid UUID string: ' . $encodedUuid);\n        }\n\n        return $components;\n    }\n\n    /**\n     * Returns the fields that make up this UUID\n     *\n     * @see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()\n     * @param array $components\n     * @return array\n     */\n    protected function getFields(array $components)\n    {\n        return array(\n            'time_low' => str_pad($components[0], 8, '0', STR_PAD_LEFT),\n            'time_mid' => str_pad($components[1], 4, '0', STR_PAD_LEFT),\n            'time_hi_and_version' => str_pad($components[2], 4, '0', STR_PAD_LEFT),\n            'clock_seq_hi_and_reserved' => str_pad(substr($components[3], 0, 2), 2, '0', STR_PAD_LEFT),\n            'clock_seq_low' => str_pad(substr($components[3], 2), 2, '0', STR_PAD_LEFT),\n            'node' => str_pad($components[4], 12, '0', STR_PAD_LEFT)\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\nnamespace Ramsey\\Uuid\\Codec;\n\nuse Ramsey\\Uuid\\UuidInterface;\n\n/**\n * TimestampLastCombCodec encodes and decodes COMB UUIDs which have the timestamp as the first 48 bits.\n * To be used with MySQL, PostgreSQL, Oracle.\n */\nclass TimestampFirstCombCodec extends StringCodec\n{\n    /**\n     * Encodes a UuidInterface as a string representation of a timestamp first COMB UUID\n     *\n     * @param UuidInterface $uuid\n     *\n     * @return string Hexadecimal string representation of a GUID\n     */\n    public function encode(UuidInterface $uuid)\n    {\n        $sixPieceComponents = array_values($uuid->getFieldsHex());\n\n        $this->swapTimestampAndRandomBits($sixPieceComponents);\n\n        return vsprintf(\n            '%08s-%04s-%04s-%02s%02s-%012s',\n            $sixPieceComponents\n        );\n    }\n\n    /**\n     * Encodes a UuidInterface as a binary representation of timestamp first COMB UUID\n     *\n     * @param UuidInterface $uuid\n     *\n     * @return string Binary string representation of timestamp first COMB UUID\n     */\n    public function encodeBinary(UuidInterface $uuid)\n    {\n        $stringEncoding = $this->encode($uuid);\n\n        return hex2bin(str_replace('-', '', $stringEncoding));\n    }\n\n    /**\n     * Decodes a string representation of timestamp first COMB UUID into a UuidInterface object instance\n     *\n     * @param string $encodedUuid\n     *\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decode($encodedUuid)\n    {\n        $fivePieceComponents = $this->extractComponents($encodedUuid);\n\n        $this->swapTimestampAndRandomBits($fivePieceComponents);\n\n        return $this->getBuilder()->build($this, $this->getFields($fivePieceComponents));\n    }\n\n    /**\n     * Decodes a binary representation of timestamp first COMB UUID into a UuidInterface object instance\n     *\n     * @param string $bytes\n     *\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function decodeBytes($bytes)\n    {\n        return $this->decode(bin2hex($bytes));\n    }\n\n    /**\n     * Swaps the first 48 bits with the last 48 bits\n     *\n     * @param array $components An array of UUID components (the UUID exploded on its dashes)\n     *\n     * @return void\n     */\n    protected function swapTimestampAndRandomBits(array &$components)\n    {\n        $last48Bits = $components[4];\n        if (count($components) == 6) {\n            $last48Bits = $components[5];\n            $components[5] = $components[0] . $components[1];\n        } else {\n            $components[4] = $components[0] . $components[1];\n        }\n\n        $components[0] = substr($last48Bits, 0, 8);\n        $components[1] = substr($last48Bits, 8, 4);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\nnamespace Ramsey\\Uuid\\Codec;\n\n/**\n * TimestampLastCombCodec encodes and decodes COMB UUIDs which have the timestamp as the last 48 bits.\n * To be used with MSSQL.\n */\nclass TimestampLastCombCodec extends StringCodec\n{\n\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter\\Number;\n\nuse Moontoast\\Math\\BigNumber;\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\n\n/**\n * BigNumberConverter converts UUIDs from hexadecimal characters into\n * moontoast/math `BigNumber` representations of integers and vice versa\n */\nclass BigNumberConverter implements NumberConverterInterface\n{\n    /**\n     * Converts a hexadecimal number into a `Moontoast\\Math\\BigNumber` representation\n     *\n     * @param string $hex The hexadecimal string representation to convert\n     * @return BigNumber\n     */\n    public function fromHex($hex)\n    {\n        $number = BigNumber::convertToBase10($hex, 16);\n\n        return new BigNumber($number);\n    }\n\n    /**\n     * Converts an integer or `Moontoast\\Math\\BigNumber` integer representation\n     * into a hexadecimal string representation\n     *\n     * @param int|string|BigNumber $integer An integer or `Moontoast\\Math\\BigNumber`\n     * @return string Hexadecimal string\n     */\n    public function toHex($integer)\n    {\n        if (!$integer instanceof BigNumber) {\n            $integer = new BigNumber($integer);\n        }\n\n        return BigNumber::convertFromBase10($integer, 16);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter\\Number;\n\nuse Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException;\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\n\n/**\n * DegradedNumberConverter throws `UnsatisfiedDependencyException` exceptions\n * if attempting to use number conversion functionality in an environment that\n * does not support large integers (i.e. when moontoast/math is not available)\n */\nclass DegradedNumberConverter implements NumberConverterInterface\n{\n    /**\n     * Throws an `UnsatisfiedDependencyException`\n     *\n     * @param string $hex The hexadecimal string representation to convert\n     * @return void\n     * @throws UnsatisfiedDependencyException\n     */\n    public function fromHex($hex)\n    {\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' without support for large '\n            . 'integers, since integer is an unsigned '\n            . '128-bit integer; Moontoast\\Math\\BigNumber is required.'\n        );\n    }\n\n    /**\n     * Throws an `UnsatisfiedDependencyException`\n     *\n     * @param mixed $integer An integer representation to convert\n     * @return void\n     * @throws UnsatisfiedDependencyException\n     */\n    public function toHex($integer)\n    {\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' without support for large '\n            . 'integers, since integer is an unsigned '\n            . '128-bit integer; Moontoast\\Math\\BigNumber is required. '\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter;\n\n/**\n * NumberConverterInterface converts UUIDs from hexadecimal characters into\n * representations of integers and vice versa\n */\ninterface NumberConverterInterface\n{\n    /**\n     * Converts a hexadecimal number into an integer representation of the number\n     *\n     * The integer representation returned may be an object or a string\n     * representation of the integer, depending on the implementation.\n     *\n     * @param string $hex The hexadecimal string representation to convert\n     * @return mixed\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function fromHex($hex);\n\n    /**\n     * Converts an integer representation into a hexadecimal string representation\n     * of the number\n     *\n     * @param mixed $integer An integer representation to convert; this may be\n     *     a true integer, a string integer, or a object representation that\n     *     this converter can understand\n     * @return string Hexadecimal string\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function toHex($integer);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter\\Time;\n\nuse Moontoast\\Math\\BigNumber;\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\n\n/**\n * BigNumberTimeConverter uses the moontoast/math library's `BigNumber` to\n * provide facilities for converting parts of time into representations that may\n * be used in UUIDs\n */\nclass BigNumberTimeConverter implements TimeConverterInterface\n{\n    /**\n     * Uses the provided seconds and micro-seconds to calculate the time_low,\n     * time_mid, and time_high fields used by RFC 4122 version 1 UUIDs\n     *\n     * @param string $seconds\n     * @param string $microSeconds\n     * @return string[] An array containing `low`, `mid`, and `high` keys\n     * @link http://tools.ietf.org/html/rfc4122#section-4.2.2\n     */\n    public function calculateTime($seconds, $microSeconds)\n    {\n        $uuidTime = new BigNumber('0');\n\n        $sec = new BigNumber($seconds);\n        $sec->multiply('10000000');\n\n        $usec = new BigNumber($microSeconds);\n        $usec->multiply('10');\n\n        $uuidTime->add($sec)\n            ->add($usec)\n            ->add('122192928000000000');\n\n        $uuidTimeHex = sprintf('%016s', $uuidTime->convertToBase(16));\n\n        return array(\n            'low' => substr($uuidTimeHex, 8),\n            'mid' => substr($uuidTimeHex, 4, 4),\n            'hi' => substr($uuidTimeHex, 0, 4),\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter\\Time;\n\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\nuse Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException;\n\n/**\n * DegradedTimeConverter throws `UnsatisfiedDependencyException` exceptions\n * if attempting to use time conversion functionality in an environment that\n * does not support large integers (i.e. when moontoast/math is not available)\n */\nclass DegradedTimeConverter implements TimeConverterInterface\n{\n    /**\n     * Throws an `UnsatisfiedDependencyException`\n     *\n     * @param string $seconds\n     * @param string $microSeconds\n     * @return void\n     * @throws UnsatisfiedDependencyException if called on a 32-bit system and `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function calculateTime($seconds, $microSeconds)\n    {\n        throw new UnsatisfiedDependencyException(\n            'When calling ' . __METHOD__ . ' on a 32-bit system, '\n            . 'Moontoast\\Math\\BigNumber must be present.'\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter\\Time;\n\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\n\n/**\n * PhpTimeConverter uses built-in PHP functions and standard math operations\n * available to the PHP programming language to provide facilities for\n * converting parts of time into representations that may be used in UUIDs\n */\nclass PhpTimeConverter implements TimeConverterInterface\n{\n    /**\n     * Uses the provided seconds and micro-seconds to calculate the time_low,\n     * time_mid, and time_high fields used by RFC 4122 version 1 UUIDs\n     *\n     * @param string $seconds\n     * @param string $microSeconds\n     * @return string[] An array containing `low`, `mid`, and `high` keys\n     * @link http://tools.ietf.org/html/rfc4122#section-4.2.2\n     */\n    public function calculateTime($seconds, $microSeconds)\n    {\n        // 0x01b21dd213814000 is the number of 100-ns intervals between the\n        // UUID epoch 1582-10-15 00:00:00 and the Unix epoch 1970-01-01 00:00:00.\n        $uuidTime = ($seconds * 10000000) + ($microSeconds * 10) + 0x01b21dd213814000;\n\n        return array(\n            'low' => sprintf('%08x', $uuidTime & 0xffffffff),\n            'mid' => sprintf('%04x', ($uuidTime >> 32) & 0xffff),\n            'hi' => sprintf('%04x', ($uuidTime >> 48) & 0x0fff),\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Converter;\n\n/**\n * TimeConverterInterface provides facilities for converting parts of time into\n * representations that may be used in UUIDs\n */\ninterface TimeConverterInterface\n{\n    /**\n     * Uses the provided seconds and micro-seconds to calculate the time_low,\n     * time_mid, and time_high fields used by RFC 4122 version 1 UUIDs\n     *\n     * @param string $seconds\n     * @param string $microSeconds\n     * @return string[] An array guaranteed to contain `low`, `mid`, and `high` keys\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called on a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     * @link http://tools.ietf.org/html/rfc4122#section-4.2.2\n     */\n    public function calculateTime($seconds, $microSeconds);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/DegradedUuid.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\nuse Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException;\nuse Ramsey\\Uuid\\Exception\\UnsupportedOperationException;\n\n/**\n * DegradedUuid represents an RFC 4122 UUID on 32-bit systems\n *\n * @see Uuid\n */\nclass DegradedUuid extends Uuid\n{\n    /**\n     * @inheritdoc\n     */\n    public function getDateTime()\n    {\n        if ($this->getVersion() != 1) {\n            throw new UnsupportedOperationException('Not a time-based UUID');\n        }\n\n        $time = $this->converter->fromHex($this->getTimestampHex());\n\n        $ts = new \\Moontoast\\Math\\BigNumber($time, 20);\n        $ts->subtract('122192928000000000');\n        $ts->divide('10000000.0');\n        $ts->round();\n        $unixTime = $ts->getValue();\n\n        return new \\DateTime(\"@{$unixTime}\");\n    }\n\n    /**\n     * For degraded UUIDs, throws an `UnsatisfiedDependencyException` when\n     * called on a 32-bit system\n     *\n     * @throws UnsatisfiedDependencyException if called on a 32-bit system\n     */\n    public function getFields()\n    {\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' on a 32-bit system, since some '\n            . 'values overflow the system max integer value'\n            . '; consider calling getFieldsHex instead'\n        );\n    }\n\n    /**\n     * For degraded UUIDs, throws an `UnsatisfiedDependencyException` when\n     * called on a 32-bit system\n     *\n     * @throws UnsatisfiedDependencyException if called on a 32-bit system\n     */\n    public function getNode()\n    {\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' on a 32-bit system, since node '\n            . 'is an unsigned 48-bit integer and can overflow the system '\n            . 'max integer value'\n            . '; consider calling getNodeHex instead'\n        );\n    }\n\n    /**\n     * For degraded UUIDs, throws an `UnsatisfiedDependencyException` when\n     * called on a 32-bit system\n     *\n     * @throws UnsatisfiedDependencyException if called on a 32-bit system\n     */\n    public function getTimeLow()\n    {\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' on a 32-bit system, since time_low '\n            . 'is an unsigned 32-bit integer and can overflow the system '\n            . 'max integer value'\n            . '; consider calling getTimeLowHex instead'\n        );\n    }\n\n    /**\n     * For degraded UUIDs, throws an `UnsatisfiedDependencyException` when\n     * called on a 32-bit system\n     *\n     * @throws UnsatisfiedDependencyException if called on a 32-bit system\n     * @throws UnsupportedOperationException If this UUID is not a version 1 UUID\n     */\n    public function getTimestamp()\n    {\n        if ($this->getVersion() != 1) {\n            throw new UnsupportedOperationException('Not a time-based UUID');\n        }\n\n        throw new UnsatisfiedDependencyException(\n            'Cannot call ' . __METHOD__ . ' on a 32-bit system, since timestamp '\n            . 'is an unsigned 60-bit integer and can overflow the system '\n            . 'max integer value'\n            . '; consider calling getTimestampHex instead'\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Exception;\n\n/**\n * Thrown to indicate that the parsed UUID string is invalid.\n */\nclass InvalidUuidStringException extends \\InvalidArgumentException\n{\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Exception/UnsatisfiedDependencyException.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Exception;\n\n/**\n * Thrown to indicate that the requested operation has dependencies that have not\n * been satisfied.\n */\nclass UnsatisfiedDependencyException extends \\RuntimeException\n{\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Exception;\n\n/**\n * Thrown to indicate that the requested operation is not supported.\n */\nclass UnsupportedOperationException extends \\RuntimeException\n{\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/FeatureSet.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\nuse Ramsey\\Uuid\\Generator\\PeclUuidTimeGenerator;\nuse Ramsey\\Uuid\\Provider\\Node\\FallbackNodeProvider;\nuse Ramsey\\Uuid\\Provider\\Node\\RandomNodeProvider;\nuse Ramsey\\Uuid\\Provider\\Node\\SystemNodeProvider;\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\Converter\\Number\\BigNumberConverter;\nuse Ramsey\\Uuid\\Converter\\Number\\DegradedNumberConverter;\nuse Ramsey\\Uuid\\Converter\\Time\\BigNumberTimeConverter;\nuse Ramsey\\Uuid\\Converter\\Time\\DegradedTimeConverter;\nuse Ramsey\\Uuid\\Converter\\Time\\PhpTimeConverter;\nuse Ramsey\\Uuid\\Provider\\Time\\SystemTimeProvider;\nuse Ramsey\\Uuid\\Builder\\UuidBuilderInterface;\nuse Ramsey\\Uuid\\Builder\\DefaultUuidBuilder;\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\Codec\\StringCodec;\nuse Ramsey\\Uuid\\Codec\\GuidStringCodec;\nuse Ramsey\\Uuid\\Builder\\DegradedUuidBuilder;\nuse Ramsey\\Uuid\\Generator\\RandomGeneratorFactory;\nuse Ramsey\\Uuid\\Generator\\RandomGeneratorInterface;\nuse Ramsey\\Uuid\\Generator\\TimeGeneratorFactory;\nuse Ramsey\\Uuid\\Generator\\TimeGeneratorInterface;\nuse Ramsey\\Uuid\\Provider\\TimeProviderInterface;\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\n\n/**\n * FeatureSet detects and exposes available features in the current environment\n * (32- or 64-bit, available dependencies, etc.)\n */\nclass FeatureSet\n{\n    /**\n     * @var bool\n     */\n    private $disableBigNumber = false;\n\n    /**\n     * @var bool\n     */\n    private $disable64Bit = false;\n\n    /**\n     * @var bool\n     */\n    private $ignoreSystemNode = false;\n\n    /**\n     * @var bool\n     */\n    private $enablePecl = false;\n\n    /**\n     * @var UuidBuilderInterface\n     */\n    private $builder;\n\n    /**\n     * @var CodecInterface\n     */\n    private $codec;\n\n    /**\n     * @var NodeProviderInterface\n     */\n    private $nodeProvider;\n\n    /**\n     * @var NumberConverterInterface\n     */\n    private $numberConverter;\n\n    /**\n     * @var RandomGeneratorInterface\n     */\n    private $randomGenerator;\n\n    /**\n     * @var TimeGeneratorInterface\n     */\n    private $timeGenerator;\n\n    /**\n     * Constructs a `FeatureSet` for use by a `UuidFactory` to determine or set\n     * features available to the environment\n     *\n     * @param bool $useGuids Whether to build UUIDs using the `GuidStringCodec`\n     * @param bool $force32Bit Whether to force the use of 32-bit functionality\n     *     (primarily for testing purposes)\n     * @param bool $forceNoBigNumber Whether to disable the use of moontoast/math\n     *     `BigNumber` (primarily for testing purposes)\n     * @param bool $ignoreSystemNode Whether to disable attempts to check for\n     *     the system host ID (primarily for testing purposes)\n     * @param bool $enablePecl Whether to enable the use of the `PeclUuidTimeGenerator`\n     *     to generate version 1 UUIDs\n     */\n    public function __construct(\n        $useGuids = false,\n        $force32Bit = false,\n        $forceNoBigNumber = false,\n        $ignoreSystemNode = false,\n        $enablePecl = false\n    ) {\n        $this->disableBigNumber = $forceNoBigNumber;\n        $this->disable64Bit = $force32Bit;\n        $this->ignoreSystemNode = $ignoreSystemNode;\n        $this->enablePecl = $enablePecl;\n\n        $this->numberConverter = $this->buildNumberConverter();\n        $this->builder = $this->buildUuidBuilder();\n        $this->codec = $this->buildCodec($useGuids);\n        $this->nodeProvider = $this->buildNodeProvider();\n        $this->randomGenerator = $this->buildRandomGenerator();\n        $this->setTimeProvider(new SystemTimeProvider());\n    }\n\n    /**\n     * Returns the builder configured for this environment\n     *\n     * @return UuidBuilderInterface\n     */\n    public function getBuilder()\n    {\n        return $this->builder;\n    }\n\n    /**\n     * Returns the UUID UUID coder-decoder configured for this environment\n     *\n     * @return CodecInterface\n     */\n    public function getCodec()\n    {\n        return $this->codec;\n    }\n\n    /**\n     * Returns the system node ID provider configured for this environment\n     *\n     * @return NodeProviderInterface\n     */\n    public function getNodeProvider()\n    {\n        return $this->nodeProvider;\n    }\n\n    /**\n     * Returns the number converter configured for this environment\n     *\n     * @return NumberConverterInterface\n     */\n    public function getNumberConverter()\n    {\n        return $this->numberConverter;\n    }\n\n    /**\n     * Returns the random UUID generator configured for this environment\n     *\n     * @return RandomGeneratorInterface\n     */\n    public function getRandomGenerator()\n    {\n        return $this->randomGenerator;\n    }\n\n    /**\n     * Returns the time-based UUID generator configured for this environment\n     *\n     * @return TimeGeneratorInterface\n     */\n    public function getTimeGenerator()\n    {\n        return $this->timeGenerator;\n    }\n\n    /**\n     * Sets the time provider for use in this environment\n     *\n     * @param TimeProviderInterface $timeProvider\n     */\n    public function setTimeProvider(TimeProviderInterface $timeProvider)\n    {\n        $this->timeGenerator = $this->buildTimeGenerator($timeProvider);\n    }\n\n    /**\n     * Determines which UUID coder-decoder to use and returns the configured\n     * codec for this environment\n     *\n     * @param bool $useGuids Whether to build UUIDs using the `GuidStringCodec`\n     * @return CodecInterface\n     */\n    protected function buildCodec($useGuids = false)\n    {\n        if ($useGuids) {\n            return new GuidStringCodec($this->builder);\n        }\n\n        return new StringCodec($this->builder);\n    }\n\n    /**\n     * Determines which system node ID provider to use and returns the configured\n     * system node ID provider for this environment\n     *\n     * @return NodeProviderInterface\n     */\n    protected function buildNodeProvider()\n    {\n        if ($this->ignoreSystemNode) {\n            return new RandomNodeProvider();\n        }\n\n        return new FallbackNodeProvider([\n            new SystemNodeProvider(),\n            new RandomNodeProvider()\n        ]);\n    }\n\n    /**\n     * Determines which number converter to use and returns the configured\n     * number converter for this environment\n     *\n     * @return NumberConverterInterface\n     */\n    protected function buildNumberConverter()\n    {\n        if ($this->hasBigNumber()) {\n            return new BigNumberConverter();\n        }\n\n        return new DegradedNumberConverter();\n    }\n\n    /**\n     * Determines which random UUID generator to use and returns the configured\n     * random UUID generator for this environment\n     *\n     * @return RandomGeneratorInterface\n     */\n    protected function buildRandomGenerator()\n    {\n        return (new RandomGeneratorFactory())->getGenerator();\n    }\n\n    /**\n     * Determines which time-based UUID generator to use and returns the configured\n     * time-based UUID generator for this environment\n     *\n     * @param TimeProviderInterface $timeProvider\n     * @return TimeGeneratorInterface\n     */\n    protected function buildTimeGenerator(TimeProviderInterface $timeProvider)\n    {\n        if ($this->enablePecl) {\n            return new PeclUuidTimeGenerator();\n        }\n\n        return (new TimeGeneratorFactory(\n            $this->nodeProvider,\n            $this->buildTimeConverter(),\n            $timeProvider\n        ))->getGenerator();\n    }\n\n    /**\n     * Determines which time converter to use and returns the configured\n     * time converter for this environment\n     *\n     * @return TimeConverterInterface\n     */\n    protected function buildTimeConverter()\n    {\n        if ($this->is64BitSystem()) {\n            return new PhpTimeConverter();\n        } elseif ($this->hasBigNumber()) {\n            return new BigNumberTimeConverter();\n        }\n\n        return new DegradedTimeConverter();\n    }\n\n    /**\n     * Determines which UUID builder to use and returns the configured UUID\n     * builder for this environment\n     *\n     * @return UuidBuilderInterface\n     */\n    protected function buildUuidBuilder()\n    {\n        if ($this->is64BitSystem()) {\n            return new DefaultUuidBuilder($this->numberConverter);\n        }\n\n        return new DegradedUuidBuilder($this->numberConverter);\n    }\n\n    /**\n     * Returns true if the system has `Moontoast\\Math\\BigNumber`\n     *\n     * @return bool\n     */\n    protected function hasBigNumber()\n    {\n        return class_exists('Moontoast\\Math\\BigNumber') && !$this->disableBigNumber;\n    }\n\n    /**\n     * Returns true if the system is 64-bit, false otherwise\n     *\n     * @return bool\n     */\n    protected function is64BitSystem()\n    {\n        return PHP_INT_SIZE == 8 && !$this->disable64Bit;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/CombGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\n\n/**\n * CombGenerator provides functionality to generate COMB (combined GUID/timestamp)\n * sequential UUIDs\n *\n * @link https://en.wikipedia.org/wiki/Globally_unique_identifier#Sequential_algorithms\n */\nclass CombGenerator implements RandomGeneratorInterface\n{\n    const TIMESTAMP_BYTES = 6;\n\n    /**\n     * @var RandomGeneratorInterface\n     */\n    private $randomGenerator;\n\n    /**\n     * @var NumberConverterInterface\n     */\n    private $converter;\n\n    /**\n     * Constructs a `CombGenerator` using a random-number generator and a number converter\n     *\n     * @param RandomGeneratorInterface $generator Random-number generator for the non-time part.\n     * @param NumberConverterInterface $numberConverter Instance of number converter.\n     */\n    public function __construct(RandomGeneratorInterface $generator, NumberConverterInterface $numberConverter)\n    {\n        $this->converter = $numberConverter;\n        $this->randomGenerator = $generator;\n    }\n\n    /**\n     * Generates a string of binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException if length is not a positive integer\n     * @throws \\Exception\n     */\n    public function generate($length)\n    {\n        if ($length < self::TIMESTAMP_BYTES || $length < 0) {\n            throw new \\InvalidArgumentException('Length must be a positive integer.');\n        }\n\n        $hash = '';\n\n        if (self::TIMESTAMP_BYTES > 0 && $length > self::TIMESTAMP_BYTES) {\n            $hash = $this->randomGenerator->generate($length - self::TIMESTAMP_BYTES);\n        }\n\n        $lsbTime = str_pad($this->converter->toHex($this->timestamp()), self::TIMESTAMP_BYTES * 2, '0', STR_PAD_LEFT);\n\n        return hex2bin(str_pad(bin2hex($hash), $length - self::TIMESTAMP_BYTES, '0') . $lsbTime);\n    }\n\n    /**\n     * Returns current timestamp as integer, precise to 0.00001 seconds\n     *\n     * @return string\n     */\n    private function timestamp()\n    {\n        $time = explode(' ', microtime(false));\n\n        return $time[1] . substr($time[0], 2, 5);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\nuse Ramsey\\Uuid\\BinaryUtils;\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\nuse Ramsey\\Uuid\\Provider\\TimeProviderInterface;\n\n/**\n * DefaultTimeGenerator provides functionality to generate strings of binary\n * data for version 1 UUIDs based on a host ID, sequence number, and the current\n * time\n */\nclass DefaultTimeGenerator implements TimeGeneratorInterface\n{\n    /**\n     * @var NodeProviderInterface\n     */\n    private $nodeProvider;\n\n    /**\n     * @var TimeConverterInterface\n     */\n    private $timeConverter;\n\n    /**\n     * @var TimeProviderInterface\n     */\n    private $timeProvider;\n\n    /**\n     * Constructs a `DefaultTimeGenerator` using a node provider, time converter,\n     * and time provider\n     *\n     * @param NodeProviderInterface $nodeProvider\n     * @param TimeConverterInterface $timeConverter\n     * @param TimeProviderInterface $timeProvider\n     */\n    public function __construct(\n        NodeProviderInterface $nodeProvider,\n        TimeConverterInterface $timeConverter,\n        TimeProviderInterface $timeProvider\n    ) {\n        $this->nodeProvider = $nodeProvider;\n        $this->timeConverter = $timeConverter;\n        $this->timeProvider = $timeProvider;\n    }\n\n    /**\n     * Generate a version 1 UUID from a host ID, sequence number, and the current time\n     *\n     * If $node is not given, we will attempt to obtain the local hardware\n     * address. If $clockSeq is given, it is used as the sequence number;\n     * otherwise a random 14-bit sequence number is chosen.\n     *\n     * @param int|string $node A 48-bit number representing the hardware address\n     *     This number may be represented as an integer or a hexadecimal string.\n     * @param int $clockSeq A 14-bit number used to help avoid duplicates that\n     *     could arise when the clock is set backwards in time or if the node ID\n     *     changes.\n     * @return string A binary string\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called on a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function generate($node = null, $clockSeq = null)\n    {\n        $node = $this->getValidNode($node);\n\n        if ($clockSeq === null) {\n            // Not using \"stable storage\"; see RFC 4122, Section 4.2.1.1\n            $clockSeq = random_int(0, 0x3fff);\n        }\n\n        // Create a 60-bit time value as a count of 100-nanosecond intervals\n        // since 00:00:00.00, 15 October 1582\n        $timeOfDay = $this->timeProvider->currentTime();\n        $uuidTime = $this->timeConverter->calculateTime($timeOfDay['sec'], $timeOfDay['usec']);\n\n        $timeHi = BinaryUtils::applyVersion($uuidTime['hi'], 1);\n        $clockSeqHi = BinaryUtils::applyVariant($clockSeq >> 8);\n\n        $hex = vsprintf(\n            '%08s%04s%04s%02s%02s%012s',\n            array(\n                $uuidTime['low'],\n                $uuidTime['mid'],\n                sprintf('%04x', $timeHi),\n                sprintf('%02x', $clockSeqHi),\n                sprintf('%02x', $clockSeq & 0xff),\n                $node,\n            )\n        );\n\n        return hex2bin($hex);\n    }\n\n    /**\n     * Uses the node provider given when constructing this instance to get\n     * the node ID (usually a MAC address)\n     *\n     * @param string|int $node A node value that may be used to override the node provider\n     * @return string Hexadecimal representation of the node ID\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception\n     */\n    protected function getValidNode($node)\n    {\n        if ($node === null) {\n            $node = $this->nodeProvider->getNode();\n        }\n\n        // Convert the node to hex, if it is still an integer\n        if (is_int($node)) {\n            $node = sprintf('%012x', $node);\n        }\n\n        if (!ctype_xdigit($node) || strlen($node) > 12) {\n            throw new \\InvalidArgumentException('Invalid node value');\n        }\n\n        return strtolower(sprintf('%012s', $node));\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/MtRandGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * MtRandRandomGenerator provides functionality to generate strings of random\n * binary data using the `mt_rand()` PHP function\n *\n * @link http://php.net/mt_rand\n */\nclass MtRandGenerator implements RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     */\n    public function generate($length)\n    {\n        $bytes = '';\n\n        for ($i = 1; $i <= $length; $i++) {\n            $bytes = chr(mt_rand(0, 255)) . $bytes;\n        }\n\n        return $bytes;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/OpenSslGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * OpenSslRandomGenerator provides functionality to generate strings of random\n * binary data using the `openssl_random_pseudo_bytes()` PHP function\n *\n * The use of this generator requires PHP to be compiled using the\n * `--with-openssl` option.\n *\n * @link http://php.net/openssl_random_pseudo_bytes\n */\nclass OpenSslGenerator implements RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     */\n    public function generate($length)\n    {\n        return openssl_random_pseudo_bytes($length);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * PeclUuidRandomGenerator provides functionality to generate strings of random\n * binary data using the PECL UUID PHP extension\n *\n * @link https://pecl.php.net/package/uuid\n */\nclass PeclUuidRandomGenerator implements RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     */\n    public function generate($length)\n    {\n        $uuid = uuid_create(UUID_TYPE_RANDOM);\n\n        return uuid_parse($uuid);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * PeclUuidTimeGenerator provides functionality to generate strings of binary\n * data for version 1 UUIDs using the PECL UUID PHP extension\n *\n * @link https://pecl.php.net/package/uuid\n */\nclass PeclUuidTimeGenerator implements TimeGeneratorInterface\n{\n    /**\n     * Generate a version 1 UUID using the PECL UUID extension\n     *\n     * @param int|string $node Not used in this context\n     * @param int $clockSeq Not used in this context\n     * @return string A binary string\n     */\n    public function generate($node = null, $clockSeq = null)\n    {\n        $uuid = uuid_create(UUID_TYPE_TIME);\n\n        return uuid_parse($uuid);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * RandomBytesGenerator provides functionality to generate strings of random\n * binary data using `random_bytes()` function in PHP 7+ or paragonie/random_compat\n *\n * @link http://php.net/random_bytes\n * @link https://github.com/paragonie/random_compat\n */\nclass RandomBytesGenerator implements RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function generate($length)\n    {\n        return random_bytes($length);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * A factory for retrieving a random generator, based on the environment\n */\nclass RandomGeneratorFactory\n{\n    /**\n     * Returns a default random generator, based on the current environment\n     *\n     * @return RandomGeneratorInterface\n     */\n    public static function getGenerator()\n    {\n        return new RandomBytesGenerator();\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * RandomGeneratorInterface provides functionality to generate strings of random\n * binary data\n */\ninterface RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function generate($length);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\nuse RandomLib\\Generator;\nuse RandomLib\\Factory;\n\n/**\n * RandomLibAdapter provides functionality to generate strings of random\n * binary data using the ircmaxell/random-lib library\n *\n * @link https://packagist.org/packages/ircmaxell/random-lib\n */\nclass RandomLibAdapter implements RandomGeneratorInterface\n{\n    /**\n     * @var Generator\n     */\n    private $generator;\n\n    /**\n     * Constructs a `RandomLibAdapter` using a `RandomLib\\Generator`\n     *\n     * By default, if no `Generator` is passed in, this creates a medium-strength\n     * generator to use when generating random binary data.\n     *\n     * @param Generator $generator An ircmaxell/random-lib `Generator`\n     */\n    public function __construct(Generator $generator = null)\n    {\n        $this->generator = $generator;\n\n        if ($this->generator === null) {\n            $factory = new Factory();\n\n            $this->generator = $factory->getMediumStrengthGenerator();\n        }\n    }\n\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     */\n    public function generate($length)\n    {\n        return $this->generator->generate($length);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/SodiumRandomGenerator.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * SodiumRandomGenerator provides functionality to generate strings of random\n * binary data using the PECL libsodium extension\n *\n * @link http://pecl.php.net/package/libsodium\n * @link https://paragonie.com/book/pecl-libsodium\n */\nclass SodiumRandomGenerator implements RandomGeneratorInterface\n{\n    /**\n     * Generates a string of random binary data of the specified length\n     *\n     * @param integer $length The number of bytes of random binary data to generate\n     * @return string A binary string\n     */\n    public function generate($length)\n    {\n        return \\Sodium\\randombytes_buf($length);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\nuse Ramsey\\Uuid\\Converter\\TimeConverterInterface;\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\nuse Ramsey\\Uuid\\Provider\\TimeProviderInterface;\n\n/**\n * A factory for retrieving a time generator, based on the environment\n */\nclass TimeGeneratorFactory\n{\n    /**\n     * @var NodeProviderInterface\n     */\n    private $nodeProvider;\n\n    /**\n     * @var TimeConverterInterface\n     */\n    private $timeConverter;\n\n    /**\n     * @var TimeProviderInterface\n     */\n    private $timeProvider;\n\n    /**\n     * Constructs a `TimeGeneratorFactory` using a node provider, time converter,\n     * and time provider\n     *\n     * @param NodeProviderInterface $nodeProvider\n     * @param TimeConverterInterface $timeConverter\n     * @param TimeProviderInterface $timeProvider\n     */\n    public function __construct(\n        NodeProviderInterface $nodeProvider,\n        TimeConverterInterface $timeConverter,\n        TimeProviderInterface $timeProvider\n    ) {\n        $this->nodeProvider = $nodeProvider;\n        $this->timeConverter = $timeConverter;\n        $this->timeProvider = $timeProvider;\n    }\n\n    /**\n     * Returns a default time generator, based on the current environment\n     *\n     * @return TimeGeneratorInterface\n     */\n    public function getGenerator()\n    {\n        return new DefaultTimeGenerator(\n            $this->nodeProvider,\n            $this->timeConverter,\n            $this->timeProvider\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Generator;\n\n/**\n * TimeGeneratorInterface provides functionality to generate strings of binary\n * data for version 1 UUIDs based on a host ID, sequence number, and the current\n * time\n */\ninterface TimeGeneratorInterface\n{\n    /**\n     * Generate a version 1 UUID from a host ID, sequence number, and the current time\n     *\n     * @param int|string $node A 48-bit number representing the hardware address\n     *     This number may be represented as an integer or a hexadecimal string.\n     * @param int $clockSeq A 14-bit number used to help avoid duplicates that\n     *     could arise when the clock is set backwards in time or if the node ID\n     *     changes.\n     * @return string A binary string\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called on a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function generate($node = null, $clockSeq = null);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider\\Node;\n\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\n\n/**\n * FallbackNodeProvider attempts to gain the system host ID from an array of\n * providers, falling back to the next in line in the event a host ID can not be\n * obtained\n */\nclass FallbackNodeProvider implements NodeProviderInterface\n{\n    /**\n     * @var NodeProviderInterface[]\n     */\n    private $nodeProviders;\n\n    /**\n     * Constructs a `FallbackNodeProvider` using an array of node providers\n     *\n     * @param NodeProviderInterface[] $providers Array of node providers\n     */\n    public function __construct(array $providers)\n    {\n        $this->nodeProviders = $providers;\n    }\n\n    /**\n     * Returns the system node ID by iterating over an array of node providers\n     * and returning the first non-empty value found\n     *\n     * @return string System node ID as a hexadecimal string\n     * @throws \\Exception\n     */\n    public function getNode()\n    {\n        foreach ($this->nodeProviders as $provider) {\n            if ($node = $provider->getNode()) {\n                return $node;\n            }\n        }\n\n        return null;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider\\Node;\n\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\n\n/**\n * RandomNodeProvider provides functionality to generate a random node ID, in\n * the event that the node ID could not be obtained from the host system\n *\n * @link http://tools.ietf.org/html/rfc4122#section-4.5\n */\nclass RandomNodeProvider implements NodeProviderInterface\n{\n    /**\n     * Returns the system node ID\n     *\n     * @return string System node ID as a hexadecimal string\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function getNode()\n    {\n        $node = hexdec(bin2hex(random_bytes(6)));\n\n        // Set the multicast bit; see RFC 4122, section 4.5.\n        $node = $node | 0x010000000000;\n\n        return str_pad(dechex($node), 12, '0', STR_PAD_LEFT);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider\\Node;\n\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\n\n/**\n * SystemNodeProvider provides functionality to get the system node ID (MAC\n * address) using external system calls\n */\nclass SystemNodeProvider implements NodeProviderInterface\n{\n    /**\n     * Returns the system node ID\n     *\n     * @return string|false System node ID as a hexadecimal string, or false if it is not found\n     */\n    public function getNode()\n    {\n        static $node = null;\n\n        if ($node !== null) {\n            return $node;\n        }\n\n        $pattern = '/[^:]([0-9A-Fa-f]{2}([:-])[0-9A-Fa-f]{2}(\\2[0-9A-Fa-f]{2}){4})[^:]/';\n        $matches = array();\n\n        // first try a  linux specific way\n        $node = $this->getSysfs();\n\n        // Search the ifconfig output for all MAC addresses and return\n        // the first one found\n        if ($node === false) {\n            if (preg_match_all($pattern, $this->getIfconfig(), $matches, PREG_PATTERN_ORDER)) {\n                $node = $matches[1][0];\n            }\n        }\n        if ($node !== false) {\n            $node = str_replace([':', '-'], '', $node);\n        }\n        return $node;\n    }\n\n    /**\n     * Returns the network interface configuration for the system\n     *\n     * @codeCoverageIgnore\n     * @return string\n     */\n    protected function getIfconfig()\n    {\n        if (strpos(strtolower(ini_get('disable_functions')), 'passthru') !== false) {\n            return '';\n        }\n\n        ob_start();\n        switch (strtoupper(substr(php_uname('a'), 0, 3))) {\n            case 'WIN':\n                passthru('ipconfig /all 2>&1');\n                break;\n            case 'DAR':\n                passthru('ifconfig 2>&1');\n                break;\n            case 'FRE':\n                passthru('netstat -i -f link 2>&1');\n                break;\n            case 'LIN':\n            default:\n                passthru('netstat -ie 2>&1');\n                break;\n        }\n\n        return ob_get_clean();\n    }\n\n    /**\n     * Returns mac address from the first system interface via the sysfs interface\n     *\n     * @return string|bool\n     */\n    protected function getSysfs()\n    {\n        $mac = false;\n\n        if (strtoupper(php_uname('s')) === 'LINUX') {\n            $addressPaths = glob('/sys/class/net/*/address', GLOB_NOSORT);\n\n            if (empty($addressPaths)) {\n                return false;\n            }\n\n            array_walk($addressPaths, function ($addressPath) use (&$macs) {\n                $macs[] = file_get_contents($addressPath);\n            });\n\n            $macs = array_map('trim', $macs);\n\n            // remove invalid entries\n            $macs = array_filter($macs, function ($mac) {\n                return\n                    // localhost adapter\n                    $mac !== '00:00:00:00:00:00' &&\n                    // must match  mac adress\n                    preg_match('/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/i', $mac);\n            });\n\n            $mac = reset($macs);\n        }\n\n        return $mac;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider;\n\n/**\n * NodeProviderInterface provides functionality to get the node ID (or host ID\n * in the form of the system's MAC address) from a specific type of node provider\n */\ninterface NodeProviderInterface\n{\n    /**\n     * Returns the system node ID\n     *\n     * @return string System node ID as a hexadecimal string\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function getNode();\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider\\Time;\n\nuse Ramsey\\Uuid\\Provider\\TimeProviderInterface;\n\n/**\n * FixedTimeProvider uses an previously-generated timestamp to provide the time\n *\n * This provider allows the use of a previously-generated timestamp, such as one\n * stored in a database, when creating version 1 UUIDs.\n */\nclass FixedTimeProvider implements TimeProviderInterface\n{\n    /**\n     * @var int[] Array containing `sec` and `usec` components of a timestamp\n     */\n    private $fixedTime;\n\n    /**\n     * Constructs a `FixedTimeProvider` using the provided `$timestamp`\n     *\n     * @param int[] Array containing `sec` and `usec` components of a timestamp\n     * @throws \\InvalidArgumentException if the `$timestamp` does not contain `sec` or `usec` components\n     */\n    public function __construct(array $timestamp)\n    {\n        if (!array_key_exists('sec', $timestamp) || !array_key_exists('usec', $timestamp)) {\n            throw new \\InvalidArgumentException('Array must contain sec and usec keys.');\n        }\n\n        $this->fixedTime = $timestamp;\n    }\n\n    /**\n     * Sets the `usec` component of the timestamp\n     *\n     * @param int $value The `usec` value to set\n     */\n    public function setUsec($value)\n    {\n        $this->fixedTime['usec'] = $value;\n    }\n\n    /**\n     * Sets the `sec` component of the timestamp\n     *\n     * @param int $value The `sec` value to set\n     */\n    public function setSec($value)\n    {\n        $this->fixedTime['sec'] = $value;\n    }\n\n    /**\n     * Returns a timestamp array\n     *\n     * @return int[] Array containing `sec` and `usec` components of a timestamp\n     */\n    public function currentTime()\n    {\n        return $this->fixedTime;\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider\\Time;\n\nuse Ramsey\\Uuid\\Provider\\TimeProviderInterface;\n\n/**\n * SystemTimeProvider uses built-in PHP functions to provide the time\n */\nclass SystemTimeProvider implements TimeProviderInterface\n{\n    /**\n     * Returns a timestamp array\n     *\n     * @return int[] Array containing `sec` and `usec` components of a timestamp\n     */\n    public function currentTime()\n    {\n        return gettimeofday();\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid\\Provider;\n\n/**\n * TimeProviderInterface provides functionality to get the time from a specific\n * type of time provider\n */\ninterface TimeProviderInterface\n{\n    /**\n     * Returns a timestamp array\n     *\n     * @return int[] Array guaranteed to contain `sec` and `usec` components of a timestamp\n     */\n    public function currentTime();\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/Uuid.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\Exception\\UnsupportedOperationException;\n\n/**\n * Represents a universally unique identifier (UUID), according to RFC 4122.\n *\n * This class provides immutable UUID objects (the Uuid class) and the static\n * methods `uuid1()`, `uuid3()`, `uuid4()`, and `uuid5()` for generating version\n * 1, 3, 4, and 5 UUIDs as specified in RFC 4122.\n *\n * If all you want is a unique ID, you should probably call `uuid1()` or `uuid4()`.\n * Note that `uuid1()` may compromise privacy since it creates a UUID containing\n * the computer’s network address. `uuid4()` creates a random UUID.\n *\n * @link http://tools.ietf.org/html/rfc4122\n * @link http://en.wikipedia.org/wiki/Universally_unique_identifier\n * @link http://docs.python.org/3/library/uuid.html\n * @link http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html\n */\nclass Uuid implements UuidInterface\n{\n    /**\n     * When this namespace is specified, the name string is a fully-qualified domain name.\n     * @link http://tools.ietf.org/html/rfc4122#appendix-C\n     */\n    const NAMESPACE_DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\n\n    /**\n     * When this namespace is specified, the name string is a URL.\n     * @link http://tools.ietf.org/html/rfc4122#appendix-C\n     */\n    const NAMESPACE_URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n\n    /**\n     * When this namespace is specified, the name string is an ISO OID.\n     * @link http://tools.ietf.org/html/rfc4122#appendix-C\n     */\n    const NAMESPACE_OID = '6ba7b812-9dad-11d1-80b4-00c04fd430c8';\n\n    /**\n     * When this namespace is specified, the name string is an X.500 DN in DER or a text output format.\n     * @link http://tools.ietf.org/html/rfc4122#appendix-C\n     */\n    const NAMESPACE_X500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8';\n\n    /**\n     * The nil UUID is special form of UUID that is specified to have all 128 bits set to zero.\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.7\n     */\n    const NIL = '00000000-0000-0000-0000-000000000000';\n\n    /**\n     * Reserved for NCS compatibility.\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    const RESERVED_NCS = 0;\n\n    /**\n     * Specifies the UUID layout given in RFC 4122.\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    const RFC_4122 = 2;\n\n    /**\n     * Reserved for Microsoft compatibility.\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    const RESERVED_MICROSOFT = 6;\n\n    /**\n     * Reserved for future definition.\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    const RESERVED_FUTURE = 7;\n\n    /**\n     * Regular expression pattern for matching a valid UUID of any variant.\n     */\n    const VALID_PATTERN = '^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$';\n\n    /**\n     * Version 1 (time-based) UUID object constant identifier\n     */\n    const UUID_TYPE_TIME = 1;\n\n    /**\n     * Version 2 (identifier-based) UUID object constant identifier\n     */\n    const UUID_TYPE_IDENTIFIER = 2;\n\n    /**\n     * Version 3 (name-based and hashed with MD5) UUID object constant identifier\n     */\n    const UUID_TYPE_HASH_MD5 = 3;\n\n    /**\n     * Version 4 (random) UUID object constant identifier\n     */\n    const UUID_TYPE_RANDOM = 4;\n\n    /**\n     * Version 5 (name-based and hashed with SHA1) UUID object constant identifier\n     */\n    const UUID_TYPE_HASH_SHA1 = 5;\n\n    /**\n     * The factory to use when creating UUIDs.\n     * @var UuidFactoryInterface\n     */\n    private static $factory = null;\n\n    /**\n     * The codec to use when encoding or decoding UUID strings.\n     * @var CodecInterface\n     */\n    protected $codec;\n\n    /**\n     * The fields that make up this UUID.\n     *\n     * This is initialized to the nil value.\n     *\n     * @var array\n     * @see UuidInterface::getFieldsHex()\n     */\n    protected $fields = array(\n        'time_low' => '00000000',\n        'time_mid' => '0000',\n        'time_hi_and_version' => '0000',\n        'clock_seq_hi_and_reserved' => '00',\n        'clock_seq_low' => '00',\n        'node' => '000000000000',\n    );\n\n    /**\n     * The number converter to use for converting hex values to/from integers.\n     * @var NumberConverterInterface\n     */\n    protected $converter;\n\n    /**\n     * Creates a universally unique identifier (UUID) from an array of fields.\n     *\n     * Unless you're making advanced use of this library to generate identifiers\n     * that deviate from RFC 4122, you probably do not want to instantiate a\n     * UUID directly. Use the static methods, instead:\n     *\n     * ```\n     * use Ramsey\\Uuid\\Uuid;\n     *\n     * $timeBasedUuid     = Uuid::uuid1();\n     * $namespaceMd5Uuid  = Uuid::uuid3(Uuid::NAMESPACE_URL, 'http://php.net/');\n     * $randomUuid        = Uuid::uuid4();\n     * $namespaceSha1Uuid = Uuid::uuid5(Uuid::NAMESPACE_URL, 'http://php.net/');\n     * ```\n     *\n     * @param array $fields An array of fields from which to construct a UUID;\n     *     see {@see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()} for array structure.\n     * @param NumberConverterInterface $converter The number converter to use\n     *     for converting hex values to/from integers.\n     * @param CodecInterface $codec The codec to use when encoding or decoding\n     *     UUID strings.\n     */\n    public function __construct(\n        array $fields,\n        NumberConverterInterface $converter,\n        CodecInterface $codec\n    ) {\n        $this->fields = $fields;\n        $this->codec = $codec;\n        $this->converter = $converter;\n    }\n\n    /**\n     * Converts this UUID object to a string when the object is used in any\n     * string context.\n     *\n     * @return string\n     * @link http://www.php.net/manual/en/language.oop5.magic.php#object.tostring\n     */\n    public function __toString()\n    {\n        return $this->toString();\n    }\n\n    /**\n     * Converts this UUID object to a string when the object is serialized\n     * with `json_encode()`\n     *\n     * @return string\n     * @link http://php.net/manual/en/class.jsonserializable.php\n     */\n    public function jsonSerialize()\n    {\n        return $this->toString();\n    }\n\n    /**\n     * Converts this UUID object to a string when the object is serialized\n     * with `serialize()`\n     *\n     * @return string\n     * @link http://php.net/manual/en/class.serializable.php\n     */\n    public function serialize()\n    {\n        return $this->toString();\n    }\n\n    /**\n     * Re-constructs the object from its serialized form.\n     *\n     * @param string $serialized\n     * @link http://php.net/manual/en/class.serializable.php\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function unserialize($serialized)\n    {\n        $uuid = self::fromString($serialized);\n        $this->codec = $uuid->codec;\n        $this->converter = $uuid->converter;\n        $this->fields = $uuid->fields;\n    }\n\n    public function compareTo(UuidInterface $other)\n    {\n        $comparison = 0;\n\n        if ($this->getMostSignificantBitsHex() < $other->getMostSignificantBitsHex()) {\n            $comparison = -1;\n        } elseif ($this->getMostSignificantBitsHex() > $other->getMostSignificantBitsHex()) {\n            $comparison = 1;\n        } elseif ($this->getLeastSignificantBitsHex() < $other->getLeastSignificantBitsHex()) {\n            $comparison = -1;\n        } elseif ($this->getLeastSignificantBitsHex() > $other->getLeastSignificantBitsHex()) {\n            $comparison = 1;\n        }\n\n        return $comparison;\n    }\n\n    public function equals($other)\n    {\n        if (!($other instanceof UuidInterface)) {\n            return false;\n        }\n\n        return ($this->compareTo($other) == 0);\n    }\n\n    public function getBytes()\n    {\n        return $this->codec->encodeBinary($this);\n    }\n\n    /**\n     * Returns the high field of the clock sequence multiplexed with the variant\n     * (bits 65-72 of the UUID).\n     *\n     * @return int Unsigned 8-bit integer value of clock_seq_hi_and_reserved\n     */\n    public function getClockSeqHiAndReserved()\n    {\n        return hexdec($this->getClockSeqHiAndReservedHex());\n    }\n\n    public function getClockSeqHiAndReservedHex()\n    {\n        return $this->fields['clock_seq_hi_and_reserved'];\n    }\n\n    /**\n     * Returns the low field of the clock sequence (bits 73-80 of the UUID).\n     *\n     * @return int Unsigned 8-bit integer value of clock_seq_low\n     */\n    public function getClockSeqLow()\n    {\n        return hexdec($this->getClockSeqLowHex());\n    }\n\n    public function getClockSeqLowHex()\n    {\n        return $this->fields['clock_seq_low'];\n    }\n\n    /**\n     * Returns the clock sequence value associated with this UUID.\n     *\n     * For UUID version 1, the clock sequence is used to help avoid\n     * duplicates that could arise when the clock is set backwards in time\n     * or if the node ID changes.\n     *\n     * For UUID version 3 or 5, the clock sequence is a 14-bit value\n     * constructed from a name as described in RFC 4122, Section 4.3.\n     *\n     * For UUID version 4, clock sequence is a randomly or pseudo-randomly\n     * generated 14-bit value as described in RFC 4122, Section 4.4.\n     *\n     * @return int Unsigned 14-bit integer value of clock sequence\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.5\n     */\n    public function getClockSequence()\n    {\n        return (($this->getClockSeqHiAndReserved() & 0x3f) << 8)\n            | $this->getClockSeqLow();\n    }\n\n    public function getClockSequenceHex()\n    {\n        return sprintf('%04x', $this->getClockSequence());\n    }\n\n    public function getNumberConverter()\n    {\n        return $this->converter;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getDateTime()\n    {\n        if ($this->getVersion() != 1) {\n            throw new UnsupportedOperationException('Not a time-based UUID');\n        }\n\n        $unixTime = ($this->getTimestamp() - 0x01b21dd213814000) / 1e7;\n        $unixTime = number_format($unixTime, 0, '', '');\n\n        return new \\DateTime(\"@{$unixTime}\");\n    }\n\n    /**\n     * Returns an array of the fields of this UUID, with keys named according\n     * to the RFC 4122 names for the fields.\n     *\n     * * **time_low**: The low field of the timestamp, an unsigned 32-bit integer\n     * * **time_mid**: The middle field of the timestamp, an unsigned 16-bit integer\n     * * **time_hi_and_version**: The high field of the timestamp multiplexed with\n     *   the version number, an unsigned 16-bit integer\n     * * **clock_seq_hi_and_reserved**: The high field of the clock sequence\n     *   multiplexed with the variant, an unsigned 8-bit integer\n     * * **clock_seq_low**: The low field of the clock sequence, an unsigned\n     *   8-bit integer\n     * * **node**: The spatially unique node identifier, an unsigned 48-bit\n     *   integer\n     *\n     * @return array The UUID fields represented as integer values\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.2\n     */\n    public function getFields()\n    {\n        return array(\n            'time_low' => $this->getTimeLow(),\n            'time_mid' => $this->getTimeMid(),\n            'time_hi_and_version' => $this->getTimeHiAndVersion(),\n            'clock_seq_hi_and_reserved' => $this->getClockSeqHiAndReserved(),\n            'clock_seq_low' => $this->getClockSeqLow(),\n            'node' => $this->getNode(),\n        );\n    }\n\n    public function getFieldsHex()\n    {\n        return $this->fields;\n    }\n\n    public function getHex()\n    {\n        return str_replace('-', '', $this->toString());\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getInteger()\n    {\n        return $this->converter->fromHex($this->getHex());\n    }\n\n    /**\n     * Returns the least significant 64 bits of this UUID's 128 bit value.\n     *\n     * @return mixed Converted representation of the unsigned 64-bit integer value\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function getLeastSignificantBits()\n    {\n        return $this->converter->fromHex($this->getLeastSignificantBitsHex());\n    }\n\n    public function getLeastSignificantBitsHex()\n    {\n        return sprintf(\n            '%02s%02s%012s',\n            $this->fields['clock_seq_hi_and_reserved'],\n            $this->fields['clock_seq_low'],\n            $this->fields['node']\n        );\n    }\n\n    /**\n     * Returns the most significant 64 bits of this UUID's 128 bit value.\n     *\n     * @return mixed Converted representation of the unsigned 64-bit integer value\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function getMostSignificantBits()\n    {\n        return $this->converter->fromHex($this->getMostSignificantBitsHex());\n    }\n\n    public function getMostSignificantBitsHex()\n    {\n        return sprintf(\n            '%08s%04s%04s',\n            $this->fields['time_low'],\n            $this->fields['time_mid'],\n            $this->fields['time_hi_and_version']\n        );\n    }\n\n    /**\n     * Returns the node value associated with this UUID\n     *\n     * For UUID version 1, the node field consists of an IEEE 802 MAC\n     * address, usually the host address. For systems with multiple IEEE\n     * 802 addresses, any available one can be used. The lowest addressed\n     * octet (octet number 10) contains the global/local bit and the\n     * unicast/multicast bit, and is the first octet of the address\n     * transmitted on an 802.3 LAN.\n     *\n     * For systems with no IEEE address, a randomly or pseudo-randomly\n     * generated value may be used; see RFC 4122, Section 4.5. The\n     * multicast bit must be set in such addresses, in order that they\n     * will never conflict with addresses obtained from network cards.\n     *\n     * For UUID version 3 or 5, the node field is a 48-bit value constructed\n     * from a name as described in RFC 4122, Section 4.3.\n     *\n     * For UUID version 4, the node field is a randomly or pseudo-randomly\n     * generated 48-bit value as described in RFC 4122, Section 4.4.\n     *\n     * @return int Unsigned 48-bit integer value of node\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.6\n     */\n    public function getNode()\n    {\n        return hexdec($this->getNodeHex());\n    }\n\n    public function getNodeHex()\n    {\n        return $this->fields['node'];\n    }\n\n    /**\n     * Returns the high field of the timestamp multiplexed with the version\n     * number (bits 49-64 of the UUID).\n     *\n     * @return int Unsigned 16-bit integer value of time_hi_and_version\n     */\n    public function getTimeHiAndVersion()\n    {\n        return hexdec($this->getTimeHiAndVersionHex());\n    }\n\n    public function getTimeHiAndVersionHex()\n    {\n        return $this->fields['time_hi_and_version'];\n    }\n\n    /**\n     * Returns the low field of the timestamp (the first 32 bits of the UUID).\n     *\n     * @return int Unsigned 32-bit integer value of time_low\n     */\n    public function getTimeLow()\n    {\n        return hexdec($this->getTimeLowHex());\n    }\n\n    public function getTimeLowHex()\n    {\n        return $this->fields['time_low'];\n    }\n\n    /**\n     * Returns the middle field of the timestamp (bits 33-48 of the UUID).\n     *\n     * @return int Unsigned 16-bit integer value of time_mid\n     */\n    public function getTimeMid()\n    {\n        return hexdec($this->getTimeMidHex());\n    }\n\n    public function getTimeMidHex()\n    {\n        return $this->fields['time_mid'];\n    }\n\n    /**\n     * Returns the timestamp value associated with this UUID.\n     *\n     * The 60 bit timestamp value is constructed from the time_low,\n     * time_mid, and time_hi fields of this UUID. The resulting\n     * timestamp is measured in 100-nanosecond units since midnight,\n     * October 15, 1582 UTC.\n     *\n     * The timestamp value is only meaningful in a time-based UUID, which\n     * has version type 1. If this UUID is not a time-based UUID then\n     * this method throws UnsupportedOperationException.\n     *\n     * @return int Unsigned 60-bit integer value of the timestamp\n     * @throws UnsupportedOperationException If this UUID is not a version 1 UUID\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.4\n     */\n    public function getTimestamp()\n    {\n        if ($this->getVersion() != 1) {\n            throw new UnsupportedOperationException('Not a time-based UUID');\n        }\n\n        return hexdec($this->getTimestampHex());\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function getTimestampHex()\n    {\n        if ($this->getVersion() != 1) {\n            throw new UnsupportedOperationException('Not a time-based UUID');\n        }\n\n        return sprintf(\n            '%03x%04s%08s',\n            ($this->getTimeHiAndVersion() & 0x0fff),\n            $this->fields['time_mid'],\n            $this->fields['time_low']\n        );\n    }\n\n    public function getUrn()\n    {\n        return 'urn:uuid:' . $this->toString();\n    }\n\n    public function getVariant()\n    {\n        $clockSeq = $this->getClockSeqHiAndReserved();\n        if (0 === ($clockSeq & 0x80)) {\n            $variant = self::RESERVED_NCS;\n        } elseif (0 === ($clockSeq & 0x40)) {\n            $variant = self::RFC_4122;\n        } elseif (0 === ($clockSeq & 0x20)) {\n            $variant = self::RESERVED_MICROSOFT;\n        } else {\n            $variant = self::RESERVED_FUTURE;\n        }\n\n        return $variant;\n    }\n\n    public function getVersion()\n    {\n        if ($this->getVariant() == self::RFC_4122) {\n            return (int) (($this->getTimeHiAndVersion() >> 12) & 0x0f);\n        }\n\n        return null;\n    }\n\n    public function toString()\n    {\n        return $this->codec->encode($this);\n    }\n\n    /**\n     * Returns the currently set factory used to create UUIDs.\n     *\n     * @return UuidFactoryInterface\n     */\n    public static function getFactory()\n    {\n        if (!self::$factory) {\n            self::$factory = new UuidFactory();\n        }\n\n        return self::$factory;\n    }\n\n    /**\n     * Sets the factory used to create UUIDs.\n     *\n     * @param UuidFactoryInterface $factory\n     */\n    public static function setFactory(UuidFactoryInterface $factory)\n    {\n        self::$factory = $factory;\n    }\n\n    /**\n     * Creates a UUID from a byte string.\n     *\n     * @param string $bytes\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     * @throws \\InvalidArgumentException\n     */\n    public static function fromBytes($bytes)\n    {\n        return self::getFactory()->fromBytes($bytes);\n    }\n\n    /**\n     * Creates a UUID from the string standard representation.\n     *\n     * @param string $name A string that specifies a UUID\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public static function fromString($name)\n    {\n        return self::getFactory()->fromString($name);\n    }\n\n    /**\n     * Creates a UUID from a 128-bit integer string.\n     *\n     * @param string $integer String representation of 128-bit integer\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public static function fromInteger($integer)\n    {\n        return self::getFactory()->fromInteger($integer);\n    }\n\n    /**\n     * Check if a string is a valid UUID.\n     *\n     * @param string $uuid The string UUID to test\n     * @return boolean\n     */\n    public static function isValid($uuid)\n    {\n        $uuid = str_replace(array('urn:', 'uuid:', '{', '}'), '', $uuid);\n\n        if ($uuid == self::NIL) {\n            return true;\n        }\n\n        if (!preg_match('/' . self::VALID_PATTERN . '/D', $uuid)) {\n            return false;\n        }\n\n        return true;\n    }\n\n    /**\n     * Generate a version 1 UUID from a host ID, sequence number, and the current time.\n     *\n     * @param int|string $node A 48-bit number representing the hardware address\n     *     This number may be represented as an integer or a hexadecimal string.\n     * @param int $clockSeq A 14-bit number used to help avoid duplicates that\n     *     could arise when the clock is set backwards in time or if the node ID\n     *     changes.\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called on a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public static function uuid1($node = null, $clockSeq = null)\n    {\n        return self::getFactory()->uuid1($node, $clockSeq);\n    }\n\n    /**\n     * Generate a version 3 UUID based on the MD5 hash of a namespace identifier\n     * (which is a UUID) and a name (which is a string).\n     *\n     * @param string $ns The UUID namespace in which to create the named UUID\n     * @param string $name The name to create a UUID for\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public static function uuid3($ns, $name)\n    {\n        return self::getFactory()->uuid3($ns, $name);\n    }\n\n    /**\n     * Generate a version 4 (random) UUID.\n     *\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception\n     */\n    public static function uuid4()\n    {\n        return self::getFactory()->uuid4();\n    }\n\n    /**\n     * Generate a version 5 UUID based on the SHA-1 hash of a namespace\n     * identifier (which is a UUID) and a name (which is a string).\n     *\n     * @param string $ns The UUID namespace in which to create the named UUID\n     * @param string $name The name to create a UUID for\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public static function uuid5($ns, $name)\n    {\n        return self::getFactory()->uuid5($ns, $name);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/UuidFactory.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\Provider\\NodeProviderInterface;\nuse Ramsey\\Uuid\\Generator\\RandomGeneratorInterface;\nuse Ramsey\\Uuid\\Generator\\TimeGeneratorInterface;\nuse Ramsey\\Uuid\\Codec\\CodecInterface;\nuse Ramsey\\Uuid\\Builder\\UuidBuilderInterface;\n\nclass UuidFactory implements UuidFactoryInterface\n{\n    /**\n     * @var CodecInterface\n     */\n    private $codec = null;\n\n    /**\n     * @var NodeProviderInterface\n     */\n    private $nodeProvider = null;\n\n    /**\n     * @var NumberConverterInterface\n     */\n    private $numberConverter = null;\n\n    /**\n     * @var RandomGeneratorInterface\n     */\n    private $randomGenerator = null;\n\n    /**\n     * @var TimeGeneratorInterface\n     */\n    private $timeGenerator = null;\n\n    /**\n     * @var UuidBuilderInterface\n     */\n    private $uuidBuilder = null;\n\n    /**\n     * Constructs a `UuidFactory` for creating `Ramsey\\Uuid\\UuidInterface` instances\n     *\n     * @param FeatureSet $features A set of features for use when creating UUIDs\n     */\n    public function __construct(FeatureSet $features = null)\n    {\n        $features = $features ?: new FeatureSet();\n\n        $this->codec = $features->getCodec();\n        $this->nodeProvider = $features->getNodeProvider();\n        $this->numberConverter = $features->getNumberConverter();\n        $this->randomGenerator = $features->getRandomGenerator();\n        $this->timeGenerator = $features->getTimeGenerator();\n        $this->uuidBuilder = $features->getBuilder();\n    }\n\n    /**\n     * Returns the UUID coder-decoder used by this factory\n     *\n     * @return CodecInterface\n     */\n    public function getCodec()\n    {\n        return $this->codec;\n    }\n\n    /**\n     * Sets the UUID coder-decoder used by this factory\n     *\n     * @param CodecInterface $codec\n     */\n    public function setCodec(CodecInterface $codec)\n    {\n        $this->codec = $codec;\n    }\n\n    /**\n     * Returns the system node ID provider used by this factory\n     *\n     * @return NodeProviderInterface\n     */\n    public function getNodeProvider()\n    {\n        return $this->nodeProvider;\n    }\n\n    /**\n     * Returns the random UUID generator used by this factory\n     *\n     * @return RandomGeneratorInterface\n     */\n    public function getRandomGenerator()\n    {\n        return $this->randomGenerator;\n    }\n\n    /**\n     * Returns the time-based UUID generator used by this factory\n     *\n     * @return TimeGeneratorInterface\n     */\n    public function getTimeGenerator()\n    {\n        return $this->timeGenerator;\n    }\n\n    /**\n     * Sets the time-based UUID generator this factory will use to generate version 1 UUIDs\n     *\n     * @param TimeGeneratorInterface $generator\n     */\n    public function setTimeGenerator(TimeGeneratorInterface $generator)\n    {\n        $this->timeGenerator = $generator;\n    }\n\n    /**\n     * Returns the number converter used by this factory\n     *\n     * @return NumberConverterInterface\n     */\n    public function getNumberConverter()\n    {\n        return $this->numberConverter;\n    }\n\n    /**\n     * Sets the random UUID generator this factory will use to generate version 4 UUIDs\n     *\n     * @param RandomGeneratorInterface $generator\n     */\n    public function setRandomGenerator(RandomGeneratorInterface $generator)\n    {\n        $this->randomGenerator = $generator;\n    }\n\n    /**\n     * Sets the number converter this factory will use\n     *\n     * @param NumberConverterInterface $converter\n     */\n    public function setNumberConverter(NumberConverterInterface $converter)\n    {\n        $this->numberConverter = $converter;\n    }\n\n    /**\n     * Returns the UUID builder this factory uses when creating `Uuid` instances\n     *\n     * @return UuidBuilderInterface $builder\n     */\n    public function getUuidBuilder()\n    {\n        return $this->uuidBuilder;\n    }\n\n    /**\n     * Sets the UUID builder this factory will use when creating `Uuid` instances\n     *\n     * @param UuidBuilderInterface $builder\n     */\n    public function setUuidBuilder(UuidBuilderInterface $builder)\n    {\n        $this->uuidBuilder = $builder;\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function fromBytes($bytes)\n    {\n        return $this->codec->decodeBytes($bytes);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function fromString($uuid)\n    {\n        $uuid = strtolower($uuid);\n        return $this->codec->decode($uuid);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function fromInteger($integer)\n    {\n        $hex = $this->numberConverter->toHex($integer);\n        $hex = str_pad($hex, 32, '0', STR_PAD_LEFT);\n\n        return $this->fromString($hex);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function uuid1($node = null, $clockSeq = null)\n    {\n        $bytes = $this->timeGenerator->generate($node, $clockSeq);\n        $hex = bin2hex($bytes);\n\n        return $this->uuidFromHashedName($hex, 1);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function uuid3($ns, $name)\n    {\n        return $this->uuidFromNsAndName($ns, $name, 3, 'md5');\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function uuid4()\n    {\n        $bytes = $this->randomGenerator->generate(16);\n\n        // When converting the bytes to hex, it turns into a 32-character\n        // hexadecimal string that looks a lot like an MD5 hash, so at this\n        // point, we can just pass it to uuidFromHashedName.\n        $hex = bin2hex($bytes);\n\n        return $this->uuidFromHashedName($hex, 4);\n    }\n\n    /**\n     * @inheritdoc\n     */\n    public function uuid5($ns, $name)\n    {\n        return $this->uuidFromNsAndName($ns, $name, 5, 'sha1');\n    }\n\n    /**\n     * Returns a `Uuid`\n     *\n     * Uses the configured builder and codec and the provided array of hexadecimal\n     * value UUID fields to construct a `Uuid` object.\n     *\n     * @param array $fields An array of fields from which to construct a UUID;\n     *     see {@see \\Ramsey\\Uuid\\UuidInterface::getFieldsHex()} for array structure.\n     * @return UuidInterface\n     */\n    public function uuid(array $fields)\n    {\n        return $this->uuidBuilder->build($this->codec, $fields);\n    }\n\n    /**\n     * Returns a version 3 or 5 namespaced `Uuid`\n     *\n     * @param string|UuidInterface $ns The UUID namespace to use\n     * @param string $name The string to hash together with the namespace\n     * @param int $version The version of UUID to create (3 or 5)\n     * @param string $hashFunction The hash function to use when hashing together\n     *     the namespace and name\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    protected function uuidFromNsAndName($ns, $name, $version, $hashFunction)\n    {\n        if (!($ns instanceof UuidInterface)) {\n            $ns = $this->codec->decode($ns);\n        }\n\n        $hash = call_user_func($hashFunction, ($ns->getBytes() . $name));\n\n        return $this->uuidFromHashedName($hash, $version);\n    }\n\n    /**\n     * Returns a `Uuid` created from `$hash` with the version field set to `$version`\n     * and the variant field set for RFC 4122\n     *\n     * @param string $hash The hash to use when creating the UUID\n     * @param int $version The UUID version to set for this hash (1, 3, 4, or 5)\n     * @return UuidInterface\n     */\n    protected function uuidFromHashedName($hash, $version)\n    {\n        $timeHi = BinaryUtils::applyVersion(substr($hash, 12, 4), $version);\n        $clockSeqHi = BinaryUtils::applyVariant(hexdec(substr($hash, 16, 2)));\n\n        $fields = array(\n            'time_low' => substr($hash, 0, 8),\n            'time_mid' => substr($hash, 8, 4),\n            'time_hi_and_version' => str_pad(dechex($timeHi), 4, '0', STR_PAD_LEFT),\n            'clock_seq_hi_and_reserved' => str_pad(dechex($clockSeqHi), 2, '0', STR_PAD_LEFT),\n            'clock_seq_low' => substr($hash, 18, 2),\n            'node' => substr($hash, 20, 12),\n        );\n\n        return $this->uuid($fields);\n    }\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/UuidFactoryInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\n/**\n * UuidFactoryInterface defines common functionality all `UuidFactory` instances\n * must implement\n */\ninterface UuidFactoryInterface\n{\n    /**\n     * Generate a version 1 UUID from a host ID, sequence number, and the current time.\n     *\n     * @param int|string|null $node A 48-bit number representing the hardware address\n     *     This number may be represented as an integer or a hexadecimal string.\n     * @param int|null $clockSeq A 14-bit number used to help avoid duplicates that\n     *     could arise when the clock is set backwards in time or if the node ID\n     *     changes.\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called on a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception if it was not possible to gather sufficient entropy\n     */\n    public function uuid1($node = null, $clockSeq = null);\n\n    /**\n     * Generate a version 3 UUID based on the MD5 hash of a namespace identifier\n     * (which is a UUID) and a name (which is a string).\n     *\n     * @param string $ns The UUID namespace in which to create the named UUID\n     * @param string $name The name to create a UUID for\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function uuid3($ns, $name);\n\n    /**\n     * Generate a version 4 (random) UUID.\n     *\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\InvalidArgumentException\n     * @throws \\Exception\n     */\n    public function uuid4();\n\n    /**\n     * Generate a version 5 UUID based on the SHA-1 hash of a namespace\n     * identifier (which is a UUID) and a name (which is a string).\n     *\n     * @param string $ns The UUID namespace in which to create the named UUID\n     * @param string $name The name to create a UUID for\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function uuid5($ns, $name);\n\n    /**\n     * Creates a UUID from a byte string.\n     *\n     * @param string $bytes A 16-byte string representation of a UUID\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     * @throws \\InvalidArgumentException if string has not 16 characters\n     */\n    public function fromBytes($bytes);\n\n    /**\n     * Creates a UUID from the string standard representation\n     *\n     * @param string $uuid A string representation of a UUID\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function fromString($uuid);\n\n    /**\n     * Creates a `Uuid` from an integer representation\n     *\n     * The integer representation may be a real integer, a string integer, or\n     * an integer representation supported by a configured number converter.\n     *\n     * @param mixed $integer The integer to use when creating a `Uuid` from an\n     *     integer; may be of any type understood by the configured number converter\n     * @return UuidInterface\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     * @throws \\Ramsey\\Uuid\\Exception\\InvalidUuidStringException\n     */\n    public function fromInteger($integer);\n}\n"
  },
  {
    "path": "vendor/ramsey/uuid/src/UuidInterface.php",
    "content": "<?php\n/**\n * This file is part of the ramsey/uuid library\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n *\n * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>\n * @license http://opensource.org/licenses/MIT MIT\n * @link https://benramsey.com/projects/ramsey-uuid/ Documentation\n * @link https://packagist.org/packages/ramsey/uuid Packagist\n * @link https://github.com/ramsey/uuid GitHub\n */\n\nnamespace Ramsey\\Uuid;\n\nuse Ramsey\\Uuid\\Converter\\NumberConverterInterface;\nuse Ramsey\\Uuid\\Exception\\UnsupportedOperationException;\n\n/**\n * UuidInterface defines common functionality for all universally unique\n * identifiers (UUIDs)\n */\ninterface UuidInterface extends \\JsonSerializable, \\Serializable\n{\n    /**\n     * Compares this UUID to the specified UUID.\n     *\n     * The first of two UUIDs is greater than the second if the most\n     * significant field in which the UUIDs differ is greater for the first\n     * UUID.\n     *\n     * * Q. What's the value of being able to sort UUIDs?\n     * * A. Use them as keys in a B-Tree or similar mapping.\n     *\n     * @param UuidInterface $other UUID to which this UUID is compared\n     * @return int -1, 0 or 1 as this UUID is less than, equal to, or greater than `$uuid`\n     */\n    public function compareTo(UuidInterface $other);\n\n    /**\n     * Compares this object to the specified object.\n     *\n     * The result is true if and only if the argument is not null, is a UUID\n     * object, has the same variant, and contains the same value, bit for bit,\n     * as this UUID.\n     *\n     * @param object $other\n     * @return bool True if `$other` is equal to this UUID\n     */\n    public function equals($other);\n\n    /**\n     * Returns the UUID as a 16-byte string (containing the six integer fields\n     * in big-endian byte order).\n     *\n     * @return string\n     */\n    public function getBytes();\n\n    /**\n     * Returns the number converter to use for converting hex values to/from integers.\n     *\n     * @return NumberConverterInterface\n     */\n    public function getNumberConverter();\n\n    /**\n     * Returns the hexadecimal value of the UUID.\n     *\n     * @return string\n     */\n    public function getHex();\n\n    /**\n     * Returns an array of the fields of this UUID, with keys named according\n     * to the RFC 4122 names for the fields.\n     *\n     * * **time_low**: The low field of the timestamp, an unsigned 32-bit integer\n     * * **time_mid**: The middle field of the timestamp, an unsigned 16-bit integer\n     * * **time_hi_and_version**: The high field of the timestamp multiplexed with\n     *   the version number, an unsigned 16-bit integer\n     * * **clock_seq_hi_and_reserved**: The high field of the clock sequence\n     *   multiplexed with the variant, an unsigned 8-bit integer\n     * * **clock_seq_low**: The low field of the clock sequence, an unsigned\n     *   8-bit integer\n     * * **node**: The spatially unique node identifier, an unsigned 48-bit\n     *   integer\n     *\n     * @return array The UUID fields represented as hexadecimal values\n     */\n    public function getFieldsHex();\n\n    /**\n     * Returns the high field of the clock sequence multiplexed with the variant\n     * (bits 65-72 of the UUID).\n     *\n     * @return string Hexadecimal value of clock_seq_hi_and_reserved\n     */\n    public function getClockSeqHiAndReservedHex();\n\n    /**\n     * Returns the low field of the clock sequence (bits 73-80 of the UUID).\n     *\n     * @return string Hexadecimal value of clock_seq_low\n     */\n    public function getClockSeqLowHex();\n\n    /**\n     * Returns the clock sequence value associated with this UUID.\n     *\n     * @return string Hexadecimal value of clock sequence\n     */\n    public function getClockSequenceHex();\n\n    /**\n     * Returns a PHP `DateTime` object representing the timestamp associated\n     * with this UUID.\n     *\n     * The timestamp value is only meaningful in a time-based UUID, which\n     * has version type 1. If this UUID is not a time-based UUID then\n     * this method throws `UnsupportedOperationException`.\n     *\n     * @return \\DateTime A PHP DateTime representation of the date\n     * @throws UnsupportedOperationException If this UUID is not a version 1 UUID\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if called in a 32-bit system and\n     *     `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function getDateTime();\n\n    /**\n     * Returns the integer value of the UUID, converted to an appropriate number\n     * representation.\n     *\n     * @return mixed Converted representation of the unsigned 128-bit integer value\n     * @throws \\Ramsey\\Uuid\\Exception\\UnsatisfiedDependencyException if `Moontoast\\Math\\BigNumber` is not present\n     */\n    public function getInteger();\n\n    /**\n     * Returns the least significant 64 bits of this UUID's 128 bit value.\n     *\n     * @return string Hexadecimal value of least significant bits\n     */\n    public function getLeastSignificantBitsHex();\n\n    /**\n     * Returns the most significant 64 bits of this UUID's 128 bit value.\n     *\n     * @return string Hexadecimal value of most significant bits\n     */\n    public function getMostSignificantBitsHex();\n\n    /**\n     * Returns the node value associated with this UUID\n     *\n     * For UUID version 1, the node field consists of an IEEE 802 MAC\n     * address, usually the host address. For systems with multiple IEEE\n     * 802 addresses, any available one can be used. The lowest addressed\n     * octet (octet number 10) contains the global/local bit and the\n     * unicast/multicast bit, and is the first octet of the address\n     * transmitted on an 802.3 LAN.\n     *\n     * For systems with no IEEE address, a randomly or pseudo-randomly\n     * generated value may be used; see RFC 4122, Section 4.5. The\n     * multicast bit must be set in such addresses, in order that they\n     * will never conflict with addresses obtained from network cards.\n     *\n     * For UUID version 3 or 5, the node field is a 48-bit value constructed\n     * from a name as described in RFC 4122, Section 4.3.\n     *\n     * For UUID version 4, the node field is a randomly or pseudo-randomly\n     * generated 48-bit value as described in RFC 4122, Section 4.4.\n     *\n     * @return string Hexadecimal value of node\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.6\n     */\n    public function getNodeHex();\n\n    /**\n     * Returns the high field of the timestamp multiplexed with the version\n     * number (bits 49-64 of the UUID).\n     *\n     * @return string Hexadecimal value of time_hi_and_version\n     */\n    public function getTimeHiAndVersionHex();\n\n    /**\n     * Returns the low field of the timestamp (the first 32 bits of the UUID).\n     *\n     * @return string Hexadecimal value of time_low\n     */\n    public function getTimeLowHex();\n\n    /**\n     * Returns the middle field of the timestamp (bits 33-48 of the UUID).\n     *\n     * @return string Hexadecimal value of time_mid\n     */\n    public function getTimeMidHex();\n\n    /**\n     * Returns the timestamp value associated with this UUID.\n     *\n     * The 60 bit timestamp value is constructed from the time_low,\n     * time_mid, and time_hi fields of this UUID. The resulting\n     * timestamp is measured in 100-nanosecond units since midnight,\n     * October 15, 1582 UTC.\n     *\n     * The timestamp value is only meaningful in a time-based UUID, which\n     * has version type 1. If this UUID is not a time-based UUID then\n     * this method throws UnsupportedOperationException.\n     *\n     * @return string Hexadecimal value of the timestamp\n     * @throws UnsupportedOperationException If this UUID is not a version 1 UUID\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.4\n     */\n    public function getTimestampHex();\n\n    /**\n     * Returns the string representation of the UUID as a URN.\n     *\n     * @return string\n     * @link http://en.wikipedia.org/wiki/Uniform_Resource_Name\n     */\n    public function getUrn();\n\n    /**\n     * Returns the variant number associated with this UUID.\n     *\n     * The variant number describes the layout of the UUID. The variant\n     * number has the following meaning:\n     *\n     * * 0 - Reserved for NCS backward compatibility\n     * * 2 - The RFC 4122 variant (used by this class)\n     * * 6 - Reserved, Microsoft Corporation backward compatibility\n     * * 7 - Reserved for future definition\n     *\n     * @return int\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.1\n     */\n    public function getVariant();\n\n    /**\n     * Returns the version number associated with this UUID.\n     *\n     * The version number describes how this UUID was generated and has the\n     * following meaning:\n     *\n     * * 1 - Time-based UUID\n     * * 2 - DCE security UUID\n     * * 3 - Name-based UUID hashed with MD5\n     * * 4 - Randomly generated UUID\n     * * 5 - Name-based UUID hashed with SHA-1\n     *\n     * Returns null if this UUID is not an RFC 4122 variant, since version\n     * is only meaningful for this variant.\n     *\n     * @return int|null\n     * @link http://tools.ietf.org/html/rfc4122#section-4.1.3\n     */\n    public function getVersion();\n\n    /**\n     * Converts this UUID into a string representation.\n     *\n     * @return string\n     */\n    public function toString();\n}\n"
  },
  {
    "path": "vendor/sebastian/version/.gitattributes",
    "content": "*.php diff=php\n"
  },
  {
    "path": "vendor/sebastian/version/.gitignore",
    "content": "/.idea\n"
  },
  {
    "path": "vendor/sebastian/version/.php_cs",
    "content": "<?php\n$finder = Symfony\\CS\\Finder\\DefaultFinder::create()\n    ->files()\n    ->in('src')\n    ->name('*.php');\n\nreturn Symfony\\CS\\Config\\Config::create()\n    ->level(\\Symfony\\CS\\FixerInterface::NONE_LEVEL)\n    ->fixers(\n        array(\n            'align_double_arrow',\n            'align_equals',\n            'braces',\n            'concat_with_spaces',\n            'duplicate_semicolon',\n            'elseif',\n            'empty_return',\n            'encoding',\n            'eof_ending',\n            'extra_empty_lines',\n            'function_call_space',\n            'function_declaration',\n            'indentation',\n            'join_function',\n            'line_after_namespace',\n            'linefeed',\n            'list_commas',\n            'lowercase_constants',\n            'lowercase_keywords',\n            'method_argument_space',\n            'multiple_use',\n            'namespace_no_leading_whitespace',\n            'no_blank_lines_after_class_opening',\n            'no_empty_lines_after_phpdocs',\n            'parenthesis',\n            'php_closing_tag',\n            'phpdoc_indent',\n            'phpdoc_no_access',\n            'phpdoc_no_empty_return',\n            'phpdoc_no_package',\n            'phpdoc_params',\n            'phpdoc_scalar',\n            'phpdoc_separation',\n            'phpdoc_to_comment',\n            'phpdoc_trim',\n            'phpdoc_types',\n            'phpdoc_var_without_name',\n            'remove_lines_between_uses',\n            'return',\n            'self_accessor',\n            'short_array_syntax',\n            'short_tag',\n            'single_line_after_imports',\n            'single_quote',\n            'spaces_before_semicolon',\n            'spaces_cast',\n            'ternary_spaces',\n            'trailing_spaces',\n            'trim_array_spaces',\n            'unused_use',\n            'visibility',\n            'whitespacy_lines'\n        )\n    )\n    ->finder($finder);\n\n"
  },
  {
    "path": "vendor/sebastian/version/LICENSE",
    "content": "Version\n\nCopyright (c) 2013-2015, Sebastian Bergmann <sebastian@phpunit.de>.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n * Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n * Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in\n   the documentation and/or other materials provided with the\n   distribution.\n\n * Neither the name of Sebastian Bergmann nor the names of his\n   contributors may be used to endorse or promote products derived\n   from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\nFOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nCOPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/sebastian/version/README.md",
    "content": "# Version\n\n**Version** is a library that helps with managing the version number of Git-hosted PHP projects.\n\n## Installation\n\nYou can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):\n\n    composer require sebastian/version\n\nIf you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:\n\n    composer require --dev sebastian/version\n\n## Usage\n\nThe constructor of the `SebastianBergmann\\Version` class expects two parameters:\n\n* `$release` is the version number of the latest release (`X.Y.Z`, for instance) or the name of the release series (`X.Y`) when no release has been made from that branch / for that release series yet.\n* `$path` is the path to the directory (or a subdirectory thereof) where the sourcecode of the project can be found. Simply passing `__DIR__` here usually suffices.\n\nApart from the constructor, the `SebastianBergmann\\Version` class has a single public method: `getVersion()`.\n\nHere is a contrived example that shows the basic usage:\n\n    <?php\n    $version = new SebastianBergmann\\Version(\n      '3.7.10', '/usr/local/src/phpunit'\n    );\n\n    var_dump($version->getVersion());\n    ?>\n\n    string(18) \"3.7.10-17-g00f3408\"\n\nWhen a new release is prepared, the string that is passed to the constructor as the first argument needs to be updated.\n\n### How SebastianBergmann\\Version::getVersion() works\n\n* If `$path` is not (part of) a Git repository and `$release` is in `X.Y.Z` format then `$release` is returned as-is.\n* If `$path` is not (part of) a Git repository and `$release` is in `X.Y` format then `$release` is returned suffixed with `-dev`.\n* If `$path` is (part of) a Git repository and `$release` is in `X.Y.Z` format then the output of `git describe --tags` is returned as-is.\n* If `$path` is (part of) a Git repository and `$release` is in `X.Y` format then a string is returned that begins with `X.Y` and ends with information from `git describe --tags`.\n"
  },
  {
    "path": "vendor/sebastian/version/composer.json",
    "content": "{\n    \"name\": \"sebastian/version\",\n    \"description\": \"Library that helps with managing the version number of Git-hosted PHP projects\",\n    \"homepage\": \"https://github.com/sebastianbergmann/version\",\n    \"license\": \"BSD-3-Clause\",\n    \"authors\": [\n        {\n            \"name\": \"Sebastian Bergmann\",\n            \"email\": \"sebastian@phpunit.de\",\n            \"role\": \"lead\"\n        }\n    ],\n    \"support\": {\n        \"issues\": \"https://github.com/sebastianbergmann/version/issues\"\n    },\n    \"require\": {\n        \"php\": \">=5.6\"\n    },\n    \"autoload\": {\n        \"classmap\": [\n            \"src/\"\n        ]\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"2.0.x-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/sebastian/version/src/Version.php",
    "content": "<?php\n/*\n * This file is part of the Version package.\n *\n * (c) Sebastian Bergmann <sebastian@phpunit.de>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace SebastianBergmann;\n\n/**\n * @since Class available since Release 1.0.0\n */\nclass Version\n{\n    /**\n     * @var string\n     */\n    private $path;\n\n    /**\n     * @var string\n     */\n    private $release;\n\n    /**\n     * @var string\n     */\n    private $version;\n\n    /**\n     * @param string $release\n     * @param string $path\n     */\n    public function __construct($release, $path)\n    {\n        $this->release = $release;\n        $this->path    = $path;\n    }\n\n    /**\n     * @return string\n     */\n    public function getVersion()\n    {\n        if ($this->version === null) {\n            if (count(explode('.', $this->release)) == 3) {\n                $this->version = $this->release;\n            } else {\n                $this->version = $this->release . '-dev';\n            }\n\n            $git = $this->getGitInformation($this->path);\n\n            if ($git) {\n                if (count(explode('.', $this->release)) == 3) {\n                    $this->version = $git;\n                } else {\n                    $git = explode('-', $git);\n\n                    $this->version = $this->release . '-' . end($git);\n                }\n            }\n        }\n\n        return $this->version;\n    }\n\n    /**\n     * @param string $path\n     *\n     * @return bool|string\n     */\n    private function getGitInformation($path)\n    {\n        if (!is_dir($path . DIRECTORY_SEPARATOR . '.git')) {\n            return false;\n        }\n\n        $process = proc_open(\n            'git describe --tags',\n            [\n                1 => ['pipe', 'w'],\n                2 => ['pipe', 'w'],\n            ],\n            $pipes,\n            $path\n        );\n\n        if (!is_resource($process)) {\n            return false;\n        }\n\n        $result = trim(stream_get_contents($pipes[1]));\n\n        fclose($pipes[1]);\n        fclose($pipes[2]);\n\n        $returnCode = proc_close($process);\n\n        if ($returnCode !== 0) {\n            return false;\n        }\n\n        return $result;\n    }\n}\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/.editorconfig",
    "content": "; This file is for unifying the coding style for different editors and IDEs.\n; More information at http://editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nindent_size = 4\nindent_style = space\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/CHANGELOG.md",
    "content": "# Changelog\n\nAll ,otable changes to `laravel-pjax` will be documented in this file\n\n## 2.0.0 - 2019-09-20\n- Now requires PHP 7.2\n- Laravel 6 support\n\n## 1.3.2 - 2018-02-06\n- allow symfony 4\n\n## 1.3.1 - 2016-02-18\n- Fix a bug where the version header would be sent whenever any meta http-equiv tag was set\n\n## 1.3.0 - 2016-01-22\n- Added a check on title\n\n## 1.2.2 - 2016-01-15\n- Fix capitalization of header name, the sequel\n\n## 1.2.1 - 2016-01-13\n- Fix capitalization of header name\n\n## 1.2.0 - 2016-01-12\n- Added pjax version header \n\n## 1.1.0 - 2015-12-25\n- Add compatibility for symfony 3.0 components\n\n## 1.0.1 - 2015-10-16\n- Fix tests\n\n## 1.0.0 - 2015-10-16\n- Initial release\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/CONTRIBUTING.md",
    "content": "# Contributing\n\nContributions are **welcome** and will be fully **credited**.\n\nWe accept contributions via Pull Requests on [Github](https://github.com/spatie/laravel-pjax).\n\n\n## Pull Requests\n\n- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer).\n\n- **Add tests!** - Your patch won't be accepted if it doesn't have tests.\n\n- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.\n\n- **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option.\n\n- **Create feature branches** - Don't ask us to pull from your master branch.\n\n- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.\n\n- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.\n\n\n## Running Tests\n\n``` bash\n$ phpunit\n```\n\n\n**Happy coding**!\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/LICENSE.md",
    "content": "The MIT License (MIT)\n\nCopyright (c) Spatie bvba <info@spatie.be>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/README.md",
    "content": "# A pjax middleware for Laravel 5\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/spatie/laravel-pjax.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-pjax)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)\n[![Build Status](https://img.shields.io/travis/spatie/laravel-pjax/master.svg?style=flat-square)](https://travis-ci.org/spatie/laravel-pjax)\n[![SensioLabsInsight](https://img.shields.io/sensiolabs/i/89249e40-536c-4b1b-b1fb-f8b807b2b51d.svg?style=flat-square)](https://insight.sensiolabs.com/projects/89249e40-536c-4b1b-b1fb-f8b807b2b51d)\n[![Quality Score](https://img.shields.io/scrutinizer/g/spatie/laravel-pjax.svg?style=flat-square)](https://scrutinizer-ci.com/g/spatie/laravel-pjax)\n[![Total Downloads](https://img.shields.io/packagist/dt/spatie/laravel-pjax.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-pjax)\n\n[Pjax](https://github.com/defunkt/jquery-pjax) is a jQuery plugin that leverages ajax to \nspeed up the loading time of your pages. It works by only fetching specific html fragments\nfrom the server, and client-side updating only happens on certain parts of the page.\n\nThe package provides a middleware that can return the response that the jQuery plugin expects.\n\nThere's a [Vue-PJAX Adapter](https://github.com/riverskies/vue-pjax-adapter) equivalent by @barnabaskecskes which doesn't require jQuery.\n\nSpatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source \nprojects [on our website](https://spatie.be/opensource).\n\n## Installation\n\nYou can install the package via composer:\n``` bash\n$ composer require spatie/laravel-pjax\n```\n\nNext you must add the `\\Spatie\\Pjax\\Middleware\\FilterIfPjax`-middleware to the kernel.\n```php\n// app/Http/Kernel.php\n\n...\nprotected $middleware = [\n    ...\n    \\Spatie\\Pjax\\Middleware\\FilterIfPjax::class,\n];\n```\n\n\n## Usage\n\nThe provided middleware provides [the behaviour that the pjax plugin expects of the server](https://github.com/defunkt/jquery-pjax#server-side):\n\n> An X-PJAX request header is set to differentiate a pjax request from normal XHR requests. \n> In this case, if the request is pjax, we skip the layout html and just render the inner\n> contents of the container.\n\n### Laravel cache busting tip\nWhen using Laravel Mix to manage your frontend cache busting, you can use it to your advantage to bust pjax's cache. Simply include the `mix` method as the content of the `x-pjax-version` meta tag:\n\n```html\n<meta http-equiv=\"x-pjax-version\" content=\"{{ mix('/css/app.css') }}\">\n```\n\nMultiple files:\n\n```html\n<meta http-equiv=\"x-pjax-version\" content=\"{{ mix('/css/app.css') . mix('/css/app2.css') }}\">\n```\n\nThis way, anytime your frontend's cache gets busted, pjax's cache gets automatically busted as well!\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## Testing\n\n``` bash\n$ composer test\n```\n\n## Contributing\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email freek@spatie.be instead of using the issue tracker.\n\n## Postcardware\n\nYou're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.\n\nOur address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.\n\nWe publish all received postcards [on our company website](https://spatie.be/en/opensource/postcards).\n\n## Credits\n\n- [Freek Van der Herten](https://github.com/freekmurze)\n- [All Contributors](../../contributors)\n\nThe middleware in this package was originally written by [Jeffrey Way](https://twitter.com/jeffrey_way) for the [Laracasts](https://laracasts.com)-lesson\non [pjax](https://laracasts.com/lessons/faster-page-loads-with-pjax). His original code\ncan be found [in this repo on GitHub](https://github.com/laracasts/Pjax-and-Laravel).\n\n## Support us\n\nSpatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects [on our website](https://spatie.be/opensource).\n\nDoes your business depend on our contributions? Reach out and support us on [Patreon](https://www.patreon.com/spatie). \nAll pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/composer.json",
    "content": "{\n    \"name\": \"spatie/laravel-pjax\",\n    \"description\": \"A pjax middleware for Laravel 5\",\n    \"keywords\": [\n        \"spatie\",\n        \"laravel-pjax\",\n        \"pjax\"\n    ],\n    \"homepage\": \"https://github.com/spatie/laravel-pjax\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Freek Van der Herten\",\n            \"email\": \"freek@spatie.be\",\n            \"homepage\": \"https://spatie.be\",\n            \"role\": \"Developer\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.2\",\n        \"illuminate/support\": \"^5.1|^6.0\",\n        \"illuminate/http\": \"^5.1|^6.0\",\n        \"symfony/dom-crawler\": \"^2.7|^3.0|^4.0\",\n        \"symfony/css-selector\": \"^2.7|^3.0|^4.0\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^8.3.5\",\n        \"scrutinizer/ocular\": \"~1.1\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Spatie\\\\Pjax\\\\\": \"src\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Spatie\\\\Pjax\\\\Test\\\\\": \"tests\"\n        }\n    },\n    \"scripts\": {\n        \"test\": \"vendor/bin/phpunit\"\n    }\n}\n"
  },
  {
    "path": "vendor/spatie/laravel-pjax/src/Middleware/FilterIfPjax.php",
    "content": "<?php\n\nnamespace Spatie\\Pjax\\Middleware;\n\nuse Closure;\nuse Illuminate\\Http\\Request;\nuse Illuminate\\Http\\Response;\nuse Symfony\\Component\\DomCrawler\\Crawler;\n\nclass FilterIfPjax\n{\n    /** @var \\Symfony\\Component\\DomCrawler\\Crawler */\n    protected $crawler;\n\n    public function handle(Request $request, Closure $next): Response\n    {\n        $response = $next($request);\n\n        if (!$request->pjax() || $response->isRedirection()) {\n            return $response;\n        }\n\n        $this->filterResponse($response, $request->header('X-PJAX-Container'))\n            ->setUriHeader($response, $request)\n            ->setVersionHeader($response, $request);\n\n        return $response;\n    }\n\n    protected function filterResponse(Response $response, $container): self\n    {\n        $crawler = $this->getCrawler($response);\n\n        $response->setContent(\n            $this->makeTitle($crawler).\n            $this->fetchContainer($crawler, $container)\n        );\n\n        return $this;\n    }\n\n    protected function makeTitle(Crawler $crawler): ?string\n    {\n        $pageTitle = $crawler->filter('head > title');\n\n        if (!$pageTitle->count()) {\n            return null;\n        }\n\n        return \"<title>{$pageTitle->html()}</title>\";\n    }\n\n    protected function fetchContainer(Crawler $crawler, $container): string\n    {\n        $content = $crawler->filter($container);\n\n        if (!$content->count()) {\n            abort(422);\n        }\n\n        return $content->html();\n    }\n\n    protected function setUriHeader(Response $response, Request $request): self\n    {\n        $response->header('X-PJAX-URL', $request->getRequestUri());\n\n        return $this;\n    }\n\n    protected function setVersionHeader(Response $response, Request $request): self\n    {\n        $crawler = $this->getCrawler($this->createResponseWithLowerCaseContent($response));\n        $node = $crawler->filter('head > meta[http-equiv=\"x-pjax-version\"]');\n\n        if ($node->count()) {\n            $response->header('x-pjax-version', $node->attr('content'));\n        }\n\n        return $this;\n    }\n\n    protected function getCrawler(Response $response): Crawler\n    {\n        if ($this->crawler) {\n            return $this->crawler;\n        }\n\n        return $this->crawler = new Crawler($response->getContent());\n    }\n\n    protected function createResponseWithLowerCaseContent(Response $response): Response\n    {\n        $lowercaseContent = strtolower($response->getContent());\n\n        return Response::create($lowercaseContent);\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/event-dispatcher-contracts/Event.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\EventDispatcher;\n\nuse Psr\\EventDispatcher\\StoppableEventInterface;\n\nif (interface_exists(StoppableEventInterface::class)) {\n    /**\n     * Event is the base class for classes containing event data.\n     *\n     * This class contains no event data. It is used by events that do not pass\n     * state information to an event handler when an event is raised.\n     *\n     * You can call the method stopPropagation() to abort the execution of\n     * further listeners in your event listener.\n     *\n     * @author Guilherme Blanco <guilhermeblanco@hotmail.com>\n     * @author Jonathan Wage <jonwage@gmail.com>\n     * @author Roman Borschel <roman@code-factory.org>\n     * @author Bernhard Schussek <bschussek@gmail.com>\n     * @author Nicolas Grekas <p@tchwork.com>\n     */\n    class Event implements StoppableEventInterface\n    {\n        private $propagationStopped = false;\n\n        /**\n         * Returns whether further event listeners should be triggered.\n         */\n        public function isPropagationStopped(): bool\n        {\n            return $this->propagationStopped;\n        }\n\n        /**\n         * Stops the propagation of the event to further event listeners.\n         *\n         * If multiple event listeners are connected to the same event, no\n         * further event listener will be triggered once any trigger calls\n         * stopPropagation().\n         */\n        public function stopPropagation(): void\n        {\n            $this->propagationStopped = true;\n        }\n    }\n} else {\n    /**\n     * Event is the base class for classes containing event data.\n     *\n     * This class contains no event data. It is used by events that do not pass\n     * state information to an event handler when an event is raised.\n     *\n     * You can call the method stopPropagation() to abort the execution of\n     * further listeners in your event listener.\n     *\n     * @author Guilherme Blanco <guilhermeblanco@hotmail.com>\n     * @author Jonathan Wage <jonwage@gmail.com>\n     * @author Roman Borschel <roman@code-factory.org>\n     * @author Bernhard Schussek <bschussek@gmail.com>\n     * @author Nicolas Grekas <p@tchwork.com>\n     */\n    class Event\n    {\n        private $propagationStopped = false;\n\n        /**\n         * Returns whether further event listeners should be triggered.\n         */\n        public function isPropagationStopped(): bool\n        {\n            return $this->propagationStopped;\n        }\n\n        /**\n         * Stops the propagation of the event to further event listeners.\n         *\n         * If multiple event listeners are connected to the same event, no\n         * further event listener will be triggered once any trigger calls\n         * stopPropagation().\n         */\n        public function stopPropagation(): void\n        {\n            $this->propagationStopped = true;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\EventDispatcher;\n\nuse Psr\\EventDispatcher\\EventDispatcherInterface as PsrEventDispatcherInterface;\n\nif (interface_exists(PsrEventDispatcherInterface::class)) {\n    /**\n     * Allows providing hooks on domain-specific lifecycles by dispatching events.\n     */\n    interface EventDispatcherInterface extends PsrEventDispatcherInterface\n    {\n        /**\n         * Dispatches an event to all registered listeners.\n         *\n         * For BC with Symfony 4, the $eventName argument is not declared explicitly on the\n         * signature of the method. Implementations that are not bound by this BC constraint\n         * MUST declare it explicitly, as allowed by PHP.\n         *\n         * @param object      $event     The event to pass to the event handlers/listeners\n         * @param string|null $eventName The name of the event to dispatch. If not supplied,\n         *                               the class of $event should be used instead.\n         *\n         * @return object The passed $event MUST be returned\n         */\n        public function dispatch($event/*, string $eventName = null*/);\n    }\n} else {\n    /**\n     * Allows providing hooks on domain-specific lifecycles by dispatching events.\n     */\n    interface EventDispatcherInterface\n    {\n        /**\n         * Dispatches an event to all registered listeners.\n         *\n         * For BC with Symfony 4, the $eventName argument is not declared explicitly on the\n         * signature of the method. Implementations that are not bound by this BC constraint\n         * MUST declare it explicitly, as allowed by PHP.\n         *\n         * @param object      $event     The event to pass to the event handlers/listeners\n         * @param string|null $eventName The name of the event to dispatch. If not supplied,\n         *                               the class of $event should be used instead.\n         *\n         * @return object The passed $event MUST be returned\n         */\n        public function dispatch($event/*, string $eventName = null*/);\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/event-dispatcher-contracts/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/event-dispatcher-contracts/README.md",
    "content": "Symfony EventDispatcher Contracts\n=================================\n\nA set of abstractions extracted out of the Symfony components.\n\nCan be used to build on semantics that the Symfony components proved useful - and\nthat already have battle tested implementations.\n\nSee https://github.com/symfony/contracts/blob/master/README.md for more information.\n"
  },
  {
    "path": "vendor/symfony/event-dispatcher-contracts/composer.json",
    "content": "{\n    \"name\": \"symfony/event-dispatcher-contracts\",\n    \"type\": \"library\",\n    \"description\": \"Generic abstractions related to dispatching event\",\n    \"keywords\": [\"abstractions\", \"contracts\", \"decoupling\", \"interfaces\", \"interoperability\", \"standards\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\"\n    },\n    \"suggest\": {\n        \"psr/event-dispatcher\": \"\",\n        \"symfony/event-dispatcher-implementation\": \"\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Contracts\\\\EventDispatcher\\\\\": \"\" }\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.1-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-ctype/Ctype.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Polyfill\\Ctype;\n\n/**\n * Ctype implementation through regex.\n *\n * @internal\n *\n * @author Gert de Pagter <BackEndTea@gmail.com>\n */\nfinal class Ctype\n{\n    /**\n     * Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.\n     *\n     * @see https://php.net/ctype-alnum\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_alnum($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^A-Za-z0-9]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is a letter, FALSE otherwise.\n     *\n     * @see https://php.net/ctype-alpha\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_alpha($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^A-Za-z]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is a control character from the current locale, FALSE otherwise.\n     *\n     * @see https://php.net/ctype-cntrl\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_cntrl($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^\\x00-\\x1f\\x7f]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in the string text is a decimal digit, FALSE otherwise.\n     *\n     * @see https://php.net/ctype-digit\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_digit($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^0-9]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.\n     *\n     * @see https://php.net/ctype-graph\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_graph($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^!-~]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is a lowercase letter.\n     *\n     * @see https://php.net/ctype-lower\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_lower($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^a-z]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.\n     *\n     * @see https://php.net/ctype-print\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_print($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^ -~]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.\n     *\n     * @see https://php.net/ctype-punct\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_punct($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^!-\\/\\:-@\\[-`\\{-~]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.\n     *\n     * @see https://php.net/ctype-space\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_space($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^\\s]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is an uppercase letter.\n     *\n     * @see https://php.net/ctype-upper\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_upper($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^A-Z]/', $text);\n    }\n\n    /**\n     * Returns TRUE if every character in text is a hexadecimal 'digit', that is a decimal digit or a character from [A-Fa-f] , FALSE otherwise.\n     *\n     * @see https://php.net/ctype-xdigit\n     *\n     * @param string|int $text\n     *\n     * @return bool\n     */\n    public static function ctype_xdigit($text)\n    {\n        $text = self::convert_int_to_char_for_ctype($text);\n\n        return \\is_string($text) && '' !== $text && !preg_match('/[^A-Fa-f0-9]/', $text);\n    }\n\n    /**\n     * Converts integers to their char versions according to normal ctype behaviour, if needed.\n     *\n     * If an integer between -128 and 255 inclusive is provided,\n     * it is interpreted as the ASCII value of a single character\n     * (negative values have 256 added in order to allow characters in the Extended ASCII range).\n     * Any other integer is interpreted as a string containing the decimal digits of the integer.\n     *\n     * @param string|int $int\n     *\n     * @return mixed\n     */\n    private static function convert_int_to_char_for_ctype($int)\n    {\n        if (!\\is_int($int)) {\n            return $int;\n        }\n\n        if ($int < -128 || $int > 255) {\n            return (string) $int;\n        }\n\n        if ($int < 0) {\n            $int += 256;\n        }\n\n        return \\chr($int);\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-ctype/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-ctype/README.md",
    "content": "Symfony Polyfill / Ctype\n========================\n\nThis component provides `ctype_*` functions to users who run php versions without the ctype extension.\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-ctype/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Ctype as p;\n\nif (!function_exists('ctype_alnum')) {\n    function ctype_alnum($text) { return p\\Ctype::ctype_alnum($text); }\n    function ctype_alpha($text) { return p\\Ctype::ctype_alpha($text); }\n    function ctype_cntrl($text) { return p\\Ctype::ctype_cntrl($text); }\n    function ctype_digit($text) { return p\\Ctype::ctype_digit($text); }\n    function ctype_graph($text) { return p\\Ctype::ctype_graph($text); }\n    function ctype_lower($text) { return p\\Ctype::ctype_lower($text); }\n    function ctype_print($text) { return p\\Ctype::ctype_print($text); }\n    function ctype_punct($text) { return p\\Ctype::ctype_punct($text); }\n    function ctype_space($text) { return p\\Ctype::ctype_space($text); }\n    function ctype_upper($text) { return p\\Ctype::ctype_upper($text); }\n    function ctype_xdigit($text) { return p\\Ctype::ctype_xdigit($text); }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-ctype/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-ctype\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill for ctype functions\",\n    \"keywords\": [\"polyfill\", \"compatibility\", \"portable\", \"ctype\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Gert de Pagter\",\n            \"email\": \"BackEndTea@gmail.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Ctype\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ]\n    },\n    \"suggest\": {\n        \"ext-ctype\": \"For best performance\"\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.11-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/Iconv.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Polyfill\\Iconv;\n\n/**\n * iconv implementation in pure PHP, UTF-8 centric.\n *\n * Implemented:\n * - iconv              - Convert string to requested character encoding\n * - iconv_mime_decode  - Decodes a MIME header field\n * - iconv_mime_decode_headers - Decodes multiple MIME header fields at once\n * - iconv_get_encoding - Retrieve internal configuration variables of iconv extension\n * - iconv_set_encoding - Set current setting for character encoding conversion\n * - iconv_mime_encode  - Composes a MIME header field\n * - iconv_strlen       - Returns the character count of string\n * - iconv_strpos       - Finds position of first occurrence of a needle within a haystack\n * - iconv_strrpos      - Finds the last occurrence of a needle within a haystack\n * - iconv_substr       - Cut out part of a string\n *\n * Charsets available for conversion are defined by files\n * in the charset/ directory and by Iconv::$alias below.\n * You're welcome to send back any addition you make.\n *\n * @author Nicolas Grekas <p@tchwork.com>\n *\n * @internal\n */\nfinal class Iconv\n{\n    const ERROR_ILLEGAL_CHARACTER = 'iconv(): Detected an illegal character in input string';\n    const ERROR_WRONG_CHARSET = 'iconv(): Wrong charset, conversion from `%s\\' to `%s\\' is not allowed';\n\n    public static $inputEncoding = 'utf-8';\n    public static $outputEncoding = 'utf-8';\n    public static $internalEncoding = 'utf-8';\n\n    private static $alias = array(\n        'utf8' => 'utf-8',\n        'ascii' => 'us-ascii',\n        'tis-620' => 'iso-8859-11',\n        'cp1250' => 'windows-1250',\n        'cp1251' => 'windows-1251',\n        'cp1252' => 'windows-1252',\n        'cp1253' => 'windows-1253',\n        'cp1254' => 'windows-1254',\n        'cp1255' => 'windows-1255',\n        'cp1256' => 'windows-1256',\n        'cp1257' => 'windows-1257',\n        'cp1258' => 'windows-1258',\n        'shift-jis' => 'cp932',\n        'shift_jis' => 'cp932',\n        'latin1' => 'iso-8859-1',\n        'latin2' => 'iso-8859-2',\n        'latin3' => 'iso-8859-3',\n        'latin4' => 'iso-8859-4',\n        'latin5' => 'iso-8859-9',\n        'latin6' => 'iso-8859-10',\n        'latin7' => 'iso-8859-13',\n        'latin8' => 'iso-8859-14',\n        'latin9' => 'iso-8859-15',\n        'latin10' => 'iso-8859-16',\n        'iso8859-1' => 'iso-8859-1',\n        'iso8859-2' => 'iso-8859-2',\n        'iso8859-3' => 'iso-8859-3',\n        'iso8859-4' => 'iso-8859-4',\n        'iso8859-5' => 'iso-8859-5',\n        'iso8859-6' => 'iso-8859-6',\n        'iso8859-7' => 'iso-8859-7',\n        'iso8859-8' => 'iso-8859-8',\n        'iso8859-9' => 'iso-8859-9',\n        'iso8859-10' => 'iso-8859-10',\n        'iso8859-11' => 'iso-8859-11',\n        'iso8859-12' => 'iso-8859-12',\n        'iso8859-13' => 'iso-8859-13',\n        'iso8859-14' => 'iso-8859-14',\n        'iso8859-15' => 'iso-8859-15',\n        'iso8859-16' => 'iso-8859-16',\n        'iso_8859-1' => 'iso-8859-1',\n        'iso_8859-2' => 'iso-8859-2',\n        'iso_8859-3' => 'iso-8859-3',\n        'iso_8859-4' => 'iso-8859-4',\n        'iso_8859-5' => 'iso-8859-5',\n        'iso_8859-6' => 'iso-8859-6',\n        'iso_8859-7' => 'iso-8859-7',\n        'iso_8859-8' => 'iso-8859-8',\n        'iso_8859-9' => 'iso-8859-9',\n        'iso_8859-10' => 'iso-8859-10',\n        'iso_8859-11' => 'iso-8859-11',\n        'iso_8859-12' => 'iso-8859-12',\n        'iso_8859-13' => 'iso-8859-13',\n        'iso_8859-14' => 'iso-8859-14',\n        'iso_8859-15' => 'iso-8859-15',\n        'iso_8859-16' => 'iso-8859-16',\n        'iso88591' => 'iso-8859-1',\n        'iso88592' => 'iso-8859-2',\n        'iso88593' => 'iso-8859-3',\n        'iso88594' => 'iso-8859-4',\n        'iso88595' => 'iso-8859-5',\n        'iso88596' => 'iso-8859-6',\n        'iso88597' => 'iso-8859-7',\n        'iso88598' => 'iso-8859-8',\n        'iso88599' => 'iso-8859-9',\n        'iso885910' => 'iso-8859-10',\n        'iso885911' => 'iso-8859-11',\n        'iso885912' => 'iso-8859-12',\n        'iso885913' => 'iso-8859-13',\n        'iso885914' => 'iso-8859-14',\n        'iso885915' => 'iso-8859-15',\n        'iso885916' => 'iso-8859-16',\n    );\n    private static $translitMap = array();\n    private static $convertMap = array();\n    private static $errorHandler;\n    private static $lastError;\n\n    private static $ulenMask = array(\"\\xC0\" => 2, \"\\xD0\" => 2, \"\\xE0\" => 3, \"\\xF0\" => 4);\n    private static $isValidUtf8;\n\n    public static function iconv($inCharset, $outCharset, $str)\n    {\n        $str = (string) $str;\n        if ('' === $str) {\n            return '';\n        }\n\n        // Prepare for //IGNORE and //TRANSLIT\n\n        $translit = $ignore = '';\n\n        $outCharset = strtolower($outCharset);\n        $inCharset = strtolower($inCharset);\n\n        if ('' === $outCharset) {\n            $outCharset = 'iso-8859-1';\n        }\n        if ('' === $inCharset) {\n            $inCharset = 'iso-8859-1';\n        }\n\n        do {\n            $loop = false;\n\n            if ('//translit' === substr($outCharset, -10)) {\n                $loop = $translit = true;\n                $outCharset = substr($outCharset, 0, -10);\n            }\n\n            if ('//ignore' === substr($outCharset, -8)) {\n                $loop = $ignore = true;\n                $outCharset = substr($outCharset, 0, -8);\n            }\n        } while ($loop);\n\n        do {\n            $loop = false;\n\n            if ('//translit' === substr($inCharset, -10)) {\n                $loop = true;\n                $inCharset = substr($inCharset, 0, -10);\n            }\n\n            if ('//ignore' === substr($inCharset, -8)) {\n                $loop = true;\n                $inCharset = substr($inCharset, 0, -8);\n            }\n        } while ($loop);\n\n        if (isset(self::$alias[$inCharset])) {\n            $inCharset = self::$alias[$inCharset];\n        }\n        if (isset(self::$alias[$outCharset])) {\n            $outCharset = self::$alias[$outCharset];\n        }\n\n        // Load charset maps\n\n        if (('utf-8' !== $inCharset && !self::loadMap('from.', $inCharset, $inMap))\n          || ('utf-8' !== $outCharset && !self::loadMap('to.', $outCharset, $outMap))) {\n            trigger_error(sprintf(self::ERROR_WRONG_CHARSET, $inCharset, $outCharset));\n\n            return false;\n        }\n\n        if ('utf-8' !== $inCharset) {\n            // Convert input to UTF-8\n            $result = '';\n            if (self::mapToUtf8($result, $inMap, $str, $ignore)) {\n                $str = $result;\n            } else {\n                $str = false;\n            }\n            self::$isValidUtf8 = true;\n        } else {\n            self::$isValidUtf8 = preg_match('//u', $str);\n\n            if (!self::$isValidUtf8 && !$ignore) {\n                trigger_error(self::ERROR_ILLEGAL_CHARACTER);\n\n                return false;\n            }\n\n            if ('utf-8' === $outCharset) {\n                // UTF-8 validation\n                $str = self::utf8ToUtf8($str, $ignore);\n            }\n        }\n\n        if ('utf-8' !== $outCharset && false !== $str) {\n            // Convert output to UTF-8\n            $result = '';\n            if (self::mapFromUtf8($result, $outMap, $str, $ignore, $translit)) {\n                return $result;\n            }\n\n            return false;\n        }\n\n        return $str;\n    }\n\n    public static function iconv_mime_decode_headers($str, $mode = 0, $charset = null)\n    {\n        if (null === $charset) {\n            $charset = self::$internalEncoding;\n        }\n\n        if (false !== strpos($str, \"\\r\")) {\n            $str = strtr(str_replace(\"\\r\\n\", \"\\n\", $str), \"\\r\", \"\\n\");\n        }\n        $str = explode(\"\\n\\n\", $str, 2);\n\n        $headers = array();\n\n        $str = preg_split('/\\n(?![ \\t])/', $str[0]);\n        foreach ($str as $str) {\n            $str = self::iconv_mime_decode($str, $mode, $charset);\n            if (false === $str) {\n                return false;\n            }\n            $str = explode(':', $str, 2);\n\n            if (2 === \\count($str)) {\n                if (isset($headers[$str[0]])) {\n                    if (!\\is_array($headers[$str[0]])) {\n                        $headers[$str[0]] = array($headers[$str[0]]);\n                    }\n                    $headers[$str[0]][] = ltrim($str[1]);\n                } else {\n                    $headers[$str[0]] = ltrim($str[1]);\n                }\n            }\n        }\n\n        return $headers;\n    }\n\n    public static function iconv_mime_decode($str, $mode = 0, $charset = null)\n    {\n        if (null === $charset) {\n            $charset = self::$internalEncoding;\n        }\n        if (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {\n            $charset .= '//IGNORE';\n        }\n\n        if (false !== strpos($str, \"\\r\")) {\n            $str = strtr(str_replace(\"\\r\\n\", \"\\n\", $str), \"\\r\", \"\\n\");\n        }\n        $str = preg_split('/\\n(?![ \\t])/', rtrim($str), 2);\n        $str = preg_replace('/[ \\t]*\\n[ \\t]+/', ' ', rtrim($str[0]));\n        $str = preg_split('/=\\?([^?]+)\\?([bqBQ])\\?(.*?)\\?=/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);\n\n        $result = self::iconv('utf-8', $charset, $str[0]);\n        if (false === $result) {\n            return false;\n        }\n\n        $i = 1;\n        $len = \\count($str);\n\n        while ($i < $len) {\n            $c = strtolower($str[$i]);\n            if ((ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode)\n              && 'utf-8' !== $c\n              && !isset(self::$alias[$c])\n              && !self::loadMap('from.', $c, $d)) {\n                $d = false;\n            } elseif ('B' === strtoupper($str[$i + 1])) {\n                $d = base64_decode($str[$i + 2]);\n            } else {\n                $d = rawurldecode(strtr(str_replace('%', '%25', $str[$i + 2]), '=_', '% '));\n            }\n\n            if (false !== $d) {\n                if ('' !== $d) {\n                    if ('' === $d = self::iconv($c, $charset, $d)) {\n                        $str[$i + 3] = substr($str[$i + 3], 1);\n                    } else {\n                        $result .= $d;\n                    }\n                }\n                $d = self::iconv('utf-8', $charset, $str[$i + 3]);\n                if ('' !== trim($d)) {\n                    $result .= $d;\n                }\n            } elseif (ICONV_MIME_DECODE_CONTINUE_ON_ERROR & $mode) {\n                $result .= \"=?{$str[$i]}?{$str[$i + 1]}?{$str[$i + 2]}?={$str[$i + 3]}\";\n            } else {\n                $result = false;\n                break;\n            }\n\n            $i += 4;\n        }\n\n        return $result;\n    }\n\n    public static function iconv_get_encoding($type = 'all')\n    {\n        switch ($type) {\n            case 'input_encoding': return self::$inputEncoding;\n            case 'output_encoding': return self::$outputEncoding;\n            case 'internal_encoding': return self::$internalEncoding;\n        }\n\n        return array(\n            'input_encoding' => self::$inputEncoding,\n            'output_encoding' => self::$outputEncoding,\n            'internal_encoding' => self::$internalEncoding,\n        );\n    }\n\n    public static function iconv_set_encoding($type, $charset)\n    {\n        switch ($type) {\n            case 'input_encoding': self::$inputEncoding = $charset; break;\n            case 'output_encoding': self::$outputEncoding = $charset; break;\n            case 'internal_encoding': self::$internalEncoding = $charset; break;\n\n            default: return false;\n        }\n\n        return true;\n    }\n\n    public static function iconv_mime_encode($fieldName, $fieldValue, $pref = null)\n    {\n        if (!\\is_array($pref)) {\n            $pref = array();\n        }\n\n        $pref += array(\n            'scheme' => 'B',\n            'input-charset' => self::$internalEncoding,\n            'output-charset' => self::$internalEncoding,\n            'line-length' => 76,\n            'line-break-chars' => \"\\r\\n\",\n        );\n\n        if (preg_match('/[\\x80-\\xFF]/', $fieldName)) {\n            $fieldName = '';\n        }\n\n        $scheme = strtoupper(substr($pref['scheme'], 0, 1));\n        $in = strtolower($pref['input-charset']);\n        $out = strtolower($pref['output-charset']);\n\n        if ('utf-8' !== $in && false === $fieldValue = self::iconv($in, 'utf-8', $fieldValue)) {\n            return false;\n        }\n\n        preg_match_all('/./us', $fieldValue, $chars);\n\n        $chars = isset($chars[0]) ? $chars[0] : array();\n\n        $lineBreak = (int) $pref['line-length'];\n        $lineStart = \"=?{$pref['output-charset']}?{$scheme}?\";\n        $lineLength = \\strlen($fieldName) + 2 + \\strlen($lineStart) + 2;\n        $lineOffset = \\strlen($lineStart) + 3;\n        $lineData = '';\n\n        $fieldValue = array();\n\n        $Q = 'Q' === $scheme;\n\n        foreach ($chars as $c) {\n            if ('utf-8' !== $out && false === $c = self::iconv('utf-8', $out, $c)) {\n                return false;\n            }\n\n            $o = $Q\n                ? $c = preg_replace_callback(\n                    '/[=_\\?\\x00-\\x1F\\x80-\\xFF]/',\n                    array(__CLASS__, 'qpByteCallback'),\n                    $c\n                )\n                : base64_encode($lineData.$c);\n\n            if (isset($o[$lineBreak - $lineLength])) {\n                if (!$Q) {\n                    $lineData = base64_encode($lineData);\n                }\n                $fieldValue[] = $lineStart.$lineData.'?=';\n                $lineLength = $lineOffset;\n                $lineData = '';\n            }\n\n            $lineData .= $c;\n            $Q && $lineLength += \\strlen($c);\n        }\n\n        if ('' !== $lineData) {\n            if (!$Q) {\n                $lineData = base64_encode($lineData);\n            }\n            $fieldValue[] = $lineStart.$lineData.'?=';\n        }\n\n        return $fieldName.': '.implode($pref['line-break-chars'].' ', $fieldValue);\n    }\n\n    public static function iconv_strlen($s, $encoding = null)\n    {\n        static $hasXml = null;\n        if (null === $hasXml) {\n            $hasXml = \\extension_loaded('xml');\n        }\n\n        if ($hasXml) {\n            return self::strlen1($s, $encoding);\n        }\n\n        return self::strlen2($s, $encoding);\n    }\n\n    public static function strlen1($s, $encoding = null)\n    {\n        if (null === $encoding) {\n            $encoding = self::$internalEncoding;\n        }\n        if (0 !== stripos($encoding, 'utf-8') && false === $s = self::iconv($encoding, 'utf-8', $s)) {\n            return false;\n        }\n\n        return \\strlen(utf8_decode($s));\n    }\n\n    public static function strlen2($s, $encoding = null)\n    {\n        if (null === $encoding) {\n            $encoding = self::$internalEncoding;\n        }\n        if (0 !== stripos($encoding, 'utf-8') && false === $s = self::iconv($encoding, 'utf-8', $s)) {\n            return false;\n        }\n\n        $ulenMask = self::$ulenMask;\n\n        $i = 0;\n        $j = 0;\n        $len = \\strlen($s);\n\n        while ($i < $len) {\n            $u = $s[$i] & \"\\xF0\";\n            $i += isset($ulenMask[$u]) ? $ulenMask[$u] : 1;\n            ++$j;\n        }\n\n        return $j;\n    }\n\n    public static function iconv_strpos($haystack, $needle, $offset = 0, $encoding = null)\n    {\n        if (null === $encoding) {\n            $encoding = self::$internalEncoding;\n        }\n\n        if (0 !== stripos($encoding, 'utf-8')) {\n            if (false === $haystack = self::iconv($encoding, 'utf-8', $haystack)) {\n                return false;\n            }\n            if (false === $needle = self::iconv($encoding, 'utf-8', $needle)) {\n                return false;\n            }\n        }\n\n        if ($offset = (int) $offset) {\n            $haystack = self::iconv_substr($haystack, $offset, 2147483647, 'utf-8');\n        }\n        $pos = strpos($haystack, $needle);\n\n        return false === $pos ? false : ($offset + ($pos ? self::iconv_strlen(substr($haystack, 0, $pos), 'utf-8') : 0));\n    }\n\n    public static function iconv_strrpos($haystack, $needle, $encoding = null)\n    {\n        if (null === $encoding) {\n            $encoding = self::$internalEncoding;\n        }\n\n        if (0 !== stripos($encoding, 'utf-8')) {\n            if (false === $haystack = self::iconv($encoding, 'utf-8', $haystack)) {\n                return false;\n            }\n            if (false === $needle = self::iconv($encoding, 'utf-8', $needle)) {\n                return false;\n            }\n        }\n\n        $pos = isset($needle[0]) ? strrpos($haystack, $needle) : false;\n\n        return false === $pos ? false : self::iconv_strlen($pos ? substr($haystack, 0, $pos) : $haystack, 'utf-8');\n    }\n\n    public static function iconv_substr($s, $start, $length = 2147483647, $encoding = null)\n    {\n        if (null === $encoding) {\n            $encoding = self::$internalEncoding;\n        }\n        if (0 !== stripos($encoding, 'utf-8')) {\n            $encoding = null;\n        } elseif (false === $s = self::iconv($encoding, 'utf-8', $s)) {\n            return false;\n        }\n\n        $s = (string) $s;\n        $slen = self::iconv_strlen($s, 'utf-8');\n        $start = (int) $start;\n\n        if (0 > $start) {\n            $start += $slen;\n        }\n        if (0 > $start) {\n            return false;\n        }\n        if ($start >= $slen) {\n            return false;\n        }\n\n        $rx = $slen - $start;\n\n        if (0 > $length) {\n            $length += $rx;\n        }\n        if (0 === $length) {\n            return '';\n        }\n        if (0 > $length) {\n            return false;\n        }\n\n        if ($length > $rx) {\n            $length = $rx;\n        }\n\n        $rx = '/^'.($start ? self::pregOffset($start) : '').'('.self::pregOffset($length).')/u';\n\n        $s = preg_match($rx, $s, $s) ? $s[1] : '';\n\n        if (null === $encoding) {\n            return $s;\n        }\n\n        return self::iconv('utf-8', $encoding, $s);\n    }\n\n    private static function loadMap($type, $charset, &$map)\n    {\n        if (!isset(self::$convertMap[$type.$charset])) {\n            if (false === $map = self::getData($type.$charset)) {\n                if ('to.' === $type && self::loadMap('from.', $charset, $map)) {\n                    $map = array_flip($map);\n                } else {\n                    return false;\n                }\n            }\n\n            self::$convertMap[$type.$charset] = $map;\n        } else {\n            $map = self::$convertMap[$type.$charset];\n        }\n\n        return true;\n    }\n\n    private static function utf8ToUtf8($str, $ignore)\n    {\n        $ulenMask = self::$ulenMask;\n        $valid = self::$isValidUtf8;\n\n        $u = $str;\n        $i = $j = 0;\n        $len = \\strlen($str);\n\n        while ($i < $len) {\n            if ($str[$i] < \"\\x80\") {\n                $u[$j++] = $str[$i++];\n            } else {\n                $ulen = $str[$i] & \"\\xF0\";\n                $ulen = isset($ulenMask[$ulen]) ? $ulenMask[$ulen] : 1;\n                $uchr = substr($str, $i, $ulen);\n\n                if (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr))) {\n                    if ($ignore) {\n                        ++$i;\n                        continue;\n                    }\n\n                    trigger_error(self::ERROR_ILLEGAL_CHARACTER);\n\n                    return false;\n                } else {\n                    $i += $ulen;\n                }\n\n                $u[$j++] = $uchr[0];\n\n                isset($uchr[1]) && 0 !== ($u[$j++] = $uchr[1])\n                    && isset($uchr[2]) && 0 !== ($u[$j++] = $uchr[2])\n                    && isset($uchr[3]) && 0 !== ($u[$j++] = $uchr[3]);\n            }\n        }\n\n        return substr($u, 0, $j);\n    }\n\n    private static function mapToUtf8(&$result, array $map, $str, $ignore)\n    {\n        $len = \\strlen($str);\n        for ($i = 0; $i < $len; ++$i) {\n            if (isset($str[$i + 1], $map[$str[$i].$str[$i + 1]])) {\n                $result .= $map[$str[$i].$str[++$i]];\n            } elseif (isset($map[$str[$i]])) {\n                $result .= $map[$str[$i]];\n            } elseif (!$ignore) {\n                trigger_error(self::ERROR_ILLEGAL_CHARACTER);\n\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    private static function mapFromUtf8(&$result, array $map, $str, $ignore, $translit)\n    {\n        $ulenMask = self::$ulenMask;\n        $valid = self::$isValidUtf8;\n\n        if ($translit && !self::$translitMap) {\n            self::$translitMap = self::getData('translit');\n        }\n\n        $i = 0;\n        $len = \\strlen($str);\n\n        while ($i < $len) {\n            if ($str[$i] < \"\\x80\") {\n                $uchr = $str[$i++];\n            } else {\n                $ulen = $str[$i] & \"\\xF0\";\n                $ulen = isset($ulenMask[$ulen]) ? $ulenMask[$ulen] : 1;\n                $uchr = substr($str, $i, $ulen);\n\n                if ($ignore && (1 === $ulen || !($valid || preg_match('/^.$/us', $uchr)))) {\n                    ++$i;\n                    continue;\n                } else {\n                    $i += $ulen;\n                }\n            }\n\n            if (isset($map[$uchr])) {\n                $result .= $map[$uchr];\n            } elseif ($translit) {\n                if (isset(self::$translitMap[$uchr])) {\n                    $uchr = self::$translitMap[$uchr];\n                } elseif ($uchr >= \"\\xC3\\x80\") {\n                    $uchr = \\Normalizer::normalize($uchr, \\Normalizer::NFD);\n\n                    if ($uchr[0] < \"\\x80\") {\n                        $uchr = $uchr[0];\n                    } elseif ($ignore) {\n                        continue;\n                    } else {\n                        return false;\n                    }\n                } elseif ($ignore) {\n                    continue;\n                } else {\n                    return false;\n                }\n\n                $str = $uchr.substr($str, $i);\n                $len = \\strlen($str);\n                $i = 0;\n            } elseif (!$ignore) {\n                return false;\n            }\n        }\n\n        return true;\n    }\n\n    private static function qpByteCallback(array $m)\n    {\n        return '='.strtoupper(dechex(\\ord($m[0])));\n    }\n\n    private static function pregOffset($offset)\n    {\n        $rx = array();\n        $offset = (int) $offset;\n\n        while ($offset > 65535) {\n            $rx[] = '.{65535}';\n            $offset -= 65535;\n        }\n\n        return implode('', $rx).'.{'.$offset.'}';\n    }\n\n    private static function getData($file)\n    {\n        if (file_exists($file = __DIR__.'/Resources/charset/'.$file.'.php')) {\n            return require $file;\n        }\n\n        return false;\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/LICENSE",
    "content": "Copyright (c) 2015-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/README.md",
    "content": "Symfony Polyfill / Iconv\n========================\n\nThis component provides a native PHP implementation of the\n[php.net/iconv](http://php.net/iconv) functions\n(short of [`ob_iconv_handler`](http://php.net/manual/en/function.ob-iconv-handler.php)).\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/Resources/charset/from.big5.php",
    "content": "<?php\n\nstatic $data = array (\n  '@' => '　',\n  'A' => '，',\n  'B' => '、',\n  'C' => '。',\n  'D' => '．',\n  'E' => '•',\n  'F' => '；',\n  'G' => '：',\n  'H' => '？',\n  'I' => '！',\n  'J' => '︰',\n  'K' => '…',\n  'L' => '‥',\n  'M' => '﹐',\n  'N' => '､',\n  'O' => '﹒',\n  'P' => '·',\n  'Q' => '﹔',\n  'R' => '﹕',\n  'S' => '﹖',\n  'T' => '﹗',\n  'U' => '｜',\n  'V' => '–',\n  'W' => '︱',\n  'X' => '—',\n  'Y' => '︳',\n  'Z' => '�',\n  '[' => '︴',\n  '\\\\' => '﹏',\n  ']' => '（',\n  '^' => '）',\n  '_' => '︵',\n  '`' => '︶',\n  'a' => '｛',\n  'b' => '｝',\n  'c' => '︷',\n  'd' => '︸',\n  'e' => '〔',\n  'f' => '〕',\n  'g' => '︹',\n  'h' => '︺',\n  'i' => '【',\n  'j' => '】',\n  'k' => '︻',\n  'l' => '︼',\n  'm' => '《',\n  'n' => '》',\n  'o' => '︽',\n  'p' => '︾',\n  'q' => '〈',\n  'r' => '〉',\n  's' => '︿',\n  't' => '﹀',\n  'u' => '「',\n  'v' => '」',\n  'w' => '﹁',\n  'x' => '﹂',\n  'y' => '『',\n  'z' => '』',\n  '{' => '﹃',\n  '|' => '﹄',\n  '}' => '﹙',\n  '~' => '﹚',\n  '' => '﹛',\n  '' => '﹜',\n  '' => '﹝',\n  '' => '﹞',\n  '' => '‘',\n  '' => '’',\n  '' => '“',\n  '' => '”',\n  '' => '〝',\n  '' => '〞',\n  '' => '‵',\n  '' => '′',\n  '' => '＃',\n  '' => '＆',\n  '' => '＊',\n  '' => '※',\n  '' => '§',\n  '' => '〃',\n  '' => '○',\n  '' => '●',\n  '' => '△',\n  '' => '▲',\n  '' => '◎',\n  '' => '☆',\n  '' => '★',\n  '' => '◇',\n  '' => '◆',\n  '' => '□',\n  '' => '■',\n  '' => '▽',\n  '' => '▼',\n  '' => '㊣',\n  '' => '℅',\n  '' => '‾',\n  '' => '�',\n  '' => '＿',\n  '' => '�',\n  '' => '﹉',\n  '' => '﹊',\n  '' => '﹍',\n  '' => '﹎',\n  '' => '﹋',\n  '' => '﹌',\n  '' => '﹟',\n  '' => '﹠',\n  '' => '﹡',\n  '' => '＋',\n  '' => '－',\n  '' => '×',\n  '' => '÷',\n  '' => '±',\n  '' => '√',\n  '' => '＜',\n  '' => '＞',\n  '' => '＝',\n  '' => '≦',\n  '' => '≧',\n  '' => '≠',\n  '' => '∞',\n  '' => '≒',\n  '' => '≡',\n  '' => '﹢',\n  '' => '﹣',\n  '' => '﹤',\n  '' => '﹥',\n  '' => '﹦',\n  '' => '∼',\n  '' => '∩',\n  '' => '∪',\n  '' => '⊥',\n  '' => '∠',\n  '' => '∟',\n  '' => '⊿',\n  '' => '㏒',\n  '' => '㏑',\n  '' => '∫',\n  '' => '∮',\n  '' => '∵',\n  '' => '∴',\n  '' => '♀',\n  '' => '♂',\n  '' => '♁',\n  '' => '☉',\n  '' => '↑',\n  '' => '↓',\n  '' => '←',\n  '' => '→',\n  '' => '↖',\n  '' => '↗',\n  '' => '↙',\n  '' => '↘',\n  '' => '∥',\n  '' => '∣',\n  '' => '�',\n  '@' => '�',\n  'A' => '／',\n  'B' => '＼',\n  'C' => '＄',\n  'D' => '¥',\n  'E' => '〒',\n  'F' => '¢',\n  'G' => '£',\n  'H' => '％',\n  'I' => '＠',\n  'J' => '℃',\n  'K' => '℉',\n  'L' => '﹩',\n  'M' => '﹪',\n  'N' => '﹫',\n  'O' => '㏕',\n  'P' => '㎜',\n  'Q' => '㎝',\n  'R' => '㎞',\n  'S' => '㏎',\n  'T' => '㎡',\n  'U' => '㎎',\n  'V' => '㎏',\n  'W' => '㏄',\n  'X' => '°',\n  'Y' => '兙',\n  'Z' => '兛',\n  '[' => '兞',\n  '\\\\' => '兝',\n  ']' => '兡',\n  '^' => '兣',\n  '_' => '嗧',\n  '`' => '瓩',\n  'a' => '糎',\n  'b' => '▁',\n  'c' => '▂',\n  'd' => '▃',\n  'e' => '▄',\n  'f' => '▅',\n  'g' => '▆',\n  'h' => '▇',\n  'i' => '█',\n  'j' => '▏',\n  'k' => '▎',\n  'l' => '▍',\n  'm' => '▌',\n  'n' => '▋',\n  'o' => '▊',\n  'p' => '▉',\n  'q' => '┼',\n  'r' => '┴',\n  's' => '┬',\n  't' => '┤',\n  'u' => '├',\n  'v' => '▔',\n  'w' => '─',\n  'x' => '│',\n  'y' => '▕',\n  'z' => '┌',\n  '{' => '┐',\n  '|' => '└',\n  '}' => '┘',\n  '~' => '╭',\n  '' => '╮',\n  '' => '╰',\n  '' => '╯',\n  '' => '═',\n  '' => '╞',\n  '' => '╪',\n  '' => '╡',\n  '' => '◢',\n  '' => '◣',\n  '' => '◥',\n  '' => '◤',\n  '' => '╱',\n  '' => '╲',\n  '' => '╳',\n  '' => '０',\n  '' => '１',\n  '' => '２',\n  '' => '３',\n  '' => '４',\n  '' => '５',\n  '' => '６',\n  '' => '７',\n  '' => '８',\n  '' => '９',\n  '' => 'Ⅰ',\n  '' => 'Ⅱ',\n  '' => 'Ⅲ',\n  '' => 'Ⅳ',\n  '' => 'Ⅴ',\n  '' => 'Ⅵ',\n  '' => 'Ⅶ',\n  '' => 'Ⅷ',\n  '' => 'Ⅸ',\n  '' => 'Ⅹ',\n  '' => '〡',\n  '' => '〢',\n  '' => '〣',\n  '' => '〤',\n  '' => '〥',\n  '' => '〦',\n  '' => '〧',\n  '' => '〨',\n  '' => '〩',\n  '' => '�',\n  '' => '卄',\n  '' => '�',\n  '' => 'Ａ',\n  '' => 'Ｂ',\n  '' => 'Ｃ',\n  '' => 'Ｄ',\n  '' => 'Ｅ',\n  '' => 'Ｆ',\n  '' => 'Ｇ',\n  '' => 'Ｈ',\n  '' => 'Ｉ',\n  '' => 'Ｊ',\n  '' => 'Ｋ',\n  '' => 'Ｌ',\n  '' => 'Ｍ',\n  '' => 'Ｎ',\n  '' => 'Ｏ',\n  '' => 'Ｐ',\n  '' => 'Ｑ',\n  '' => 'Ｒ',\n  '' => 'Ｓ',\n  '' => 'Ｔ',\n  '' => 'Ｕ',\n  '' => 'Ｖ',\n  '' => 'Ｗ',\n  '' => 'Ｘ',\n  '' => 'Ｙ',\n  '' => 'Ｚ',\n  '' => 'ａ',\n  '' => 'ｂ',\n  '' => 'ｃ',\n  '' => 'ｄ',\n  '' => 'ｅ',\n  '' => 'ｆ',\n  '' => 'ｇ',\n  '' => 'ｈ',\n  '' => 'ｉ',\n  '' => 'ｊ',\n  '' => 'ｋ',\n  '' => 'ｌ',\n  '' => 'ｍ',\n  '' => 'ｎ',\n  '' => 'ｏ',\n  '' => 'ｐ',\n  '' => 'ｑ',\n  '' => 'ｒ',\n  '' => 'ｓ',\n  '' => 'ｔ',\n  '' => 'ｕ',\n  '' => 'ｖ',\n  '@' => 'ｗ',\n  'A' => 'ｘ',\n  'B' => 'ｙ',\n  'C' => 'ｚ',\n  'D' => 'Α',\n  'E' => 'Β',\n  'F' => 'Γ',\n  'G' => 'Δ',\n  'H' => 'Ε',\n  'I' => 'Ζ',\n  'J' => 'Η',\n  'K' => 'Θ',\n  'L' => 'Ι',\n  'M' => 'Κ',\n  'N' => 'Λ',\n  'O' => 'Μ',\n  'P' => 'Ν',\n  'Q' => 'Ξ',\n  'R' => 'Ο',\n  'S' => 'Π',\n  'T' => 'Ρ',\n  'U' => 'Σ',\n  'V' => 'Τ',\n  'W' => 'Υ',\n  'X' => 'Φ',\n  'Y' => 'Χ',\n  'Z' => 'Ψ',\n  '[' => 'Ω',\n  '\\\\' => 'α',\n  ']' => 'β',\n  '^' => 'γ',\n  '_' => 'δ',\n  '`' => 'ε',\n  'a' => 'ζ',\n  'b' => 'η',\n  'c' => 'θ',\n  'd' => 'ι',\n  'e' => 'κ',\n  'f' => 'λ',\n  'g' => 'μ',\n  'h' => 'ν',\n  'i' => 'ξ',\n  'j' => 'ο',\n  'k' => 'π',\n  'l' => 'ρ',\n  'm' => 'σ',\n  'n' => 'τ',\n  'o' => 'υ',\n  'p' => 'φ',\n  'q' => 'χ',\n  'r' => 'ψ',\n  's' => 'ω',\n  't' => 'ㄅ',\n  'u' => 'ㄆ',\n  'v' => 'ㄇ',\n  'w' => 'ㄈ',\n  'x' => 'ㄉ',\n  'y' => 'ㄊ',\n  'z' => 'ㄋ',\n  '{' => 'ㄌ',\n  '|' => 'ㄍ',\n  '}' => 'ㄎ',\n  '~' => 'ㄏ',\n  '' => 'ㄐ',\n  '' => 'ㄑ',\n  '' => 'ㄒ',\n  '' => 'ㄓ',\n  '' => 'ㄔ',\n  '' => 'ㄕ',\n  '' => 'ㄖ',\n  '' => 'ㄗ',\n  '' => 'ㄘ',\n  '' => 'ㄙ',\n  '' => 'ㄚ',\n  '' => 'ㄛ',\n  '' => 'ㄜ',\n  '' => 'ㄝ',\n  '' => 'ㄞ',\n  '' => 'ㄟ',\n  '' => 'ㄠ',\n  '' => 'ㄡ',\n  '' => 'ㄢ',\n  '' => 'ㄣ',\n  '' => 'ㄤ',\n  '' => 'ㄥ',\n  '' => 'ㄦ',\n  '' => 'ㄧ',\n  '' => 'ㄨ',\n  '' => 'ㄩ',\n  '' => '˙',\n  '' => 'ˉ',\n  '' => 'ˊ',\n  '' => 'ˇ',\n  '' => 'ˋ',\n  '@' => '一',\n  'A' => '乙',\n  'B' => '丁',\n  'C' => '七',\n  'D' => '乃',\n  'E' => '九',\n  'F' => '了',\n  'G' => '二',\n  'H' => '人',\n  'I' => '儿',\n  'J' => '入',\n  'K' => '八',\n  'L' => '几',\n  'M' => '刀',\n  'N' => '刁',\n  'O' => '力',\n  'P' => '匕',\n  'Q' => '十',\n  'R' => '卜',\n  'S' => '又',\n  'T' => '三',\n  'U' => '下',\n  'V' => '丈',\n  'W' => '上',\n  'X' => '丫',\n  'Y' => '丸',\n  'Z' => '凡',\n  '[' => '久',\n  '\\\\' => '么',\n  ']' => '也',\n  '^' => '乞',\n  '_' => '于',\n  '`' => '亡',\n  'a' => '兀',\n  'b' => '刃',\n  'c' => '勺',\n  'd' => '千',\n  'e' => '叉',\n  'f' => '口',\n  'g' => '土',\n  'h' => '士',\n  'i' => '夕',\n  'j' => '大',\n  'k' => '女',\n  'l' => '子',\n  'm' => '孑',\n  'n' => '孓',\n  'o' => '寸',\n  'p' => '小',\n  'q' => '尢',\n  'r' => '尸',\n  's' => '山',\n  't' => '川',\n  'u' => '工',\n  'v' => '己',\n  'w' => '已',\n  'x' => '巳',\n  'y' => '巾',\n  'z' => '干',\n  '{' => '廾',\n  '|' => '弋',\n  '}' => '弓',\n  '~' => '才',\n  '' => '丑',\n  '' => '丐',\n  '' => '不',\n  '' => '中',\n  '' => '丰',\n  '' => '丹',\n  '' => '之',\n  '' => '尹',\n  '' => '予',\n  '' => '云',\n  '' => '井',\n  '' => '互',\n  '' => '五',\n  '' => '亢',\n  '' => '仁',\n  '' => '什',\n  '' => '仃',\n  '' => '仆',\n  '' => '仇',\n  '' => '仍',\n  '' => '今',\n  '' => '介',\n  '' => '仄',\n  '' => '元',\n  '' => '允',\n  '' => '內',\n  '' => '六',\n  '' => '兮',\n  '' => '公',\n  '' => '冗',\n  '' => '凶',\n  '' => '分',\n  '' => '切',\n  '' => '刈',\n  '' => '勻',\n  '' => '勾',\n  '' => '勿',\n  '' => '化',\n  '' => '匹',\n  '' => '午',\n  '' => '升',\n  '' => '卅',\n  '' => '卞',\n  '' => '厄',\n  '' => '友',\n  '' => '及',\n  '' => '反',\n  '' => '壬',\n  '' => '天',\n  '' => '夫',\n  '' => '太',\n  '' => '夭',\n  '' => '孔',\n  '' => '少',\n  '' => '尤',\n  '' => '尺',\n  '' => '屯',\n  '' => '巴',\n  '' => '幻',\n  '' => '廿',\n  '' => '弔',\n  '' => '引',\n  '' => '心',\n  '' => '戈',\n  '' => '戶',\n  '' => '手',\n  '' => '扎',\n  '' => '支',\n  '' => '文',\n  '' => '斗',\n  '' => '斤',\n  '' => '方',\n  '' => '日',\n  '' => '曰',\n  '' => '月',\n  '' => '木',\n  '' => '欠',\n  '' => '止',\n  '' => '歹',\n  '' => '毋',\n  '' => '比',\n  '' => '毛',\n  '' => '氏',\n  '' => '水',\n  '' => '火',\n  '' => '爪',\n  '' => '父',\n  '' => '爻',\n  '' => '片',\n  '' => '牙',\n  '' => '牛',\n  '' => '犬',\n  '' => '王',\n  '' => '丙',\n  '@' => '世',\n  'A' => '丕',\n  'B' => '且',\n  'C' => '丘',\n  'D' => '主',\n  'E' => '乍',\n  'F' => '乏',\n  'G' => '乎',\n  'H' => '以',\n  'I' => '付',\n  'J' => '仔',\n  'K' => '仕',\n  'L' => '他',\n  'M' => '仗',\n  'N' => '代',\n  'O' => '令',\n  'P' => '仙',\n  'Q' => '仞',\n  'R' => '充',\n  'S' => '兄',\n  'T' => '冉',\n  'U' => '冊',\n  'V' => '冬',\n  'W' => '凹',\n  'X' => '出',\n  'Y' => '凸',\n  'Z' => '刊',\n  '[' => '加',\n  '\\\\' => '功',\n  ']' => '包',\n  '^' => '匆',\n  '_' => '北',\n  '`' => '匝',\n  'a' => '仟',\n  'b' => '半',\n  'c' => '卉',\n  'd' => '卡',\n  'e' => '占',\n  'f' => '卯',\n  'g' => '卮',\n  'h' => '去',\n  'i' => '可',\n  'j' => '古',\n  'k' => '右',\n  'l' => '召',\n  'm' => '叮',\n  'n' => '叩',\n  'o' => '叨',\n  'p' => '叼',\n  'q' => '司',\n  'r' => '叵',\n  's' => '叫',\n  't' => '另',\n  'u' => '只',\n  'v' => '史',\n  'w' => '叱',\n  'x' => '台',\n  'y' => '句',\n  'z' => '叭',\n  '{' => '叻',\n  '|' => '四',\n  '}' => '囚',\n  '~' => '外',\n  '' => '央',\n  '' => '失',\n  '' => '奴',\n  '' => '奶',\n  '' => '孕',\n  '' => '它',\n  '' => '尼',\n  '' => '巨',\n  '' => '巧',\n  '' => '左',\n  '' => '市',\n  '' => '布',\n  '' => '平',\n  '' => '幼',\n  '' => '弁',\n  '' => '弘',\n  '' => '弗',\n  '' => '必',\n  '' => '戊',\n  '' => '打',\n  '' => '扔',\n  '' => '扒',\n  '' => '扑',\n  '' => '斥',\n  '' => '旦',\n  '' => '朮',\n  '' => '本',\n  '' => '未',\n  '' => '末',\n  '' => '札',\n  '' => '正',\n  '' => '母',\n  '' => '民',\n  '' => '氐',\n  '' => '永',\n  '' => '汁',\n  '' => '汀',\n  '' => '氾',\n  '' => '犯',\n  '' => '玄',\n  '' => '玉',\n  '' => '瓜',\n  '' => '瓦',\n  '' => '甘',\n  '' => '生',\n  '' => '用',\n  '' => '甩',\n  '' => '田',\n  '' => '由',\n  '' => '甲',\n  '' => '申',\n  '' => '疋',\n  '' => '白',\n  '' => '皮',\n  '' => '皿',\n  '' => '目',\n  '' => '矛',\n  '' => '矢',\n  '' => '石',\n  '' => '示',\n  '' => '禾',\n  '' => '穴',\n  '' => '立',\n  '' => '丞',\n  '' => '丟',\n  '' => '乒',\n  '' => '乓',\n  '' => '乩',\n  '' => '亙',\n  '' => '交',\n  '' => '亦',\n  '' => '亥',\n  '' => '仿',\n  '' => '伉',\n  '' => '伙',\n  '' => '伊',\n  '' => '伕',\n  '' => '伍',\n  '' => '伐',\n  '' => '休',\n  '' => '伏',\n  '' => '仲',\n  '' => '件',\n  '' => '任',\n  '' => '仰',\n  '' => '仳',\n  '' => '份',\n  '' => '企',\n  '' => '伋',\n  '' => '光',\n  '' => '兇',\n  '' => '兆',\n  '' => '先',\n  '' => '全',\n  '@' => '共',\n  'A' => '再',\n  'B' => '冰',\n  'C' => '列',\n  'D' => '刑',\n  'E' => '划',\n  'F' => '刎',\n  'G' => '刖',\n  'H' => '劣',\n  'I' => '匈',\n  'J' => '匡',\n  'K' => '匠',\n  'L' => '印',\n  'M' => '危',\n  'N' => '吉',\n  'O' => '吏',\n  'P' => '同',\n  'Q' => '吊',\n  'R' => '吐',\n  'S' => '吁',\n  'T' => '吋',\n  'U' => '各',\n  'V' => '向',\n  'W' => '名',\n  'X' => '合',\n  'Y' => '吃',\n  'Z' => '后',\n  '[' => '吆',\n  '\\\\' => '吒',\n  ']' => '因',\n  '^' => '回',\n  '_' => '囝',\n  '`' => '圳',\n  'a' => '地',\n  'b' => '在',\n  'c' => '圭',\n  'd' => '圬',\n  'e' => '圯',\n  'f' => '圩',\n  'g' => '夙',\n  'h' => '多',\n  'i' => '夷',\n  'j' => '夸',\n  'k' => '妄',\n  'l' => '奸',\n  'm' => '妃',\n  'n' => '好',\n  'o' => '她',\n  'p' => '如',\n  'q' => '妁',\n  'r' => '字',\n  's' => '存',\n  't' => '宇',\n  'u' => '守',\n  'v' => '宅',\n  'w' => '安',\n  'x' => '寺',\n  'y' => '尖',\n  'z' => '屹',\n  '{' => '州',\n  '|' => '帆',\n  '}' => '并',\n  '~' => '年',\n  '' => '式',\n  '' => '弛',\n  '' => '忙',\n  '' => '忖',\n  '' => '戎',\n  '' => '戌',\n  '' => '戍',\n  '' => '成',\n  '' => '扣',\n  '' => '扛',\n  '' => '托',\n  '' => '收',\n  '' => '早',\n  '' => '旨',\n  '' => '旬',\n  '' => '旭',\n  '' => '曲',\n  '' => '曳',\n  '' => '有',\n  '' => '朽',\n  '' => '朴',\n  '' => '朱',\n  '' => '朵',\n  '' => '次',\n  '' => '此',\n  '' => '死',\n  '' => '氖',\n  '' => '汝',\n  '' => '汗',\n  '' => '汙',\n  '' => '江',\n  '' => '池',\n  '' => '汐',\n  '' => '汕',\n  '' => '污',\n  '' => '汛',\n  '' => '汍',\n  '' => '汎',\n  '' => '灰',\n  '' => '牟',\n  '' => '牝',\n  '' => '百',\n  '' => '竹',\n  '' => '米',\n  '' => '糸',\n  '' => '缶',\n  '' => '羊',\n  '' => '羽',\n  '' => '老',\n  '' => '考',\n  '' => '而',\n  '' => '耒',\n  '' => '耳',\n  '' => '聿',\n  '' => '肉',\n  '' => '肋',\n  '' => '肌',\n  '' => '臣',\n  '' => '自',\n  '' => '至',\n  '' => '臼',\n  '' => '舌',\n  '' => '舛',\n  '' => '舟',\n  '' => '艮',\n  '' => '色',\n  '' => '艾',\n  '' => '虫',\n  '' => '血',\n  '' => '行',\n  '' => '衣',\n  '' => '西',\n  '' => '阡',\n  '' => '串',\n  '' => '亨',\n  '' => '位',\n  '' => '住',\n  '' => '佇',\n  '' => '佗',\n  '' => '佞',\n  '' => '伴',\n  '' => '佛',\n  '' => '何',\n  '' => '估',\n  '' => '佐',\n  '' => '佑',\n  '' => '伽',\n  '' => '伺',\n  '' => '伸',\n  '' => '佃',\n  '' => '佔',\n  '' => '似',\n  '' => '但',\n  '' => '佣',\n  '@' => '作',\n  'A' => '你',\n  'B' => '伯',\n  'C' => '低',\n  'D' => '伶',\n  'E' => '余',\n  'F' => '佝',\n  'G' => '佈',\n  'H' => '佚',\n  'I' => '兌',\n  'J' => '克',\n  'K' => '免',\n  'L' => '兵',\n  'M' => '冶',\n  'N' => '冷',\n  'O' => '別',\n  'P' => '判',\n  'Q' => '利',\n  'R' => '刪',\n  'S' => '刨',\n  'T' => '劫',\n  'U' => '助',\n  'V' => '努',\n  'W' => '劬',\n  'X' => '匣',\n  'Y' => '即',\n  'Z' => '卵',\n  '[' => '吝',\n  '\\\\' => '吭',\n  ']' => '吞',\n  '^' => '吾',\n  '_' => '否',\n  '`' => '呎',\n  'a' => '吧',\n  'b' => '呆',\n  'c' => '呃',\n  'd' => '吳',\n  'e' => '呈',\n  'f' => '呂',\n  'g' => '君',\n  'h' => '吩',\n  'i' => '告',\n  'j' => '吹',\n  'k' => '吻',\n  'l' => '吸',\n  'm' => '吮',\n  'n' => '吵',\n  'o' => '吶',\n  'p' => '吠',\n  'q' => '吼',\n  'r' => '呀',\n  's' => '吱',\n  't' => '含',\n  'u' => '吟',\n  'v' => '听',\n  'w' => '囪',\n  'x' => '困',\n  'y' => '囤',\n  'z' => '囫',\n  '{' => '坊',\n  '|' => '坑',\n  '}' => '址',\n  '~' => '坍',\n  '' => '均',\n  '' => '坎',\n  '' => '圾',\n  '' => '坐',\n  '' => '坏',\n  '' => '圻',\n  '' => '壯',\n  '' => '夾',\n  '' => '妝',\n  '' => '妒',\n  '' => '妨',\n  '' => '妞',\n  '' => '妣',\n  '' => '妙',\n  '' => '妖',\n  '' => '妍',\n  '' => '妤',\n  '' => '妓',\n  '' => '妊',\n  '' => '妥',\n  '' => '孝',\n  '' => '孜',\n  '' => '孚',\n  '' => '孛',\n  '' => '完',\n  '' => '宋',\n  '' => '宏',\n  '' => '尬',\n  '' => '局',\n  '' => '屁',\n  '' => '尿',\n  '' => '尾',\n  '' => '岐',\n  '' => '岑',\n  '' => '岔',\n  '' => '岌',\n  '' => '巫',\n  '' => '希',\n  '' => '序',\n  '' => '庇',\n  '' => '床',\n  '' => '廷',\n  '' => '弄',\n  '' => '弟',\n  '' => '彤',\n  '' => '形',\n  '' => '彷',\n  '' => '役',\n  '' => '忘',\n  '' => '忌',\n  '' => '志',\n  '' => '忍',\n  '' => '忱',\n  '' => '快',\n  '' => '忸',\n  '' => '忪',\n  '' => '戒',\n  '' => '我',\n  '' => '抄',\n  '' => '抗',\n  '' => '抖',\n  '' => '技',\n  '' => '扶',\n  '' => '抉',\n  '' => '扭',\n  '' => '把',\n  '' => '扼',\n  '' => '找',\n  '' => '批',\n  '' => '扳',\n  '' => '抒',\n  '' => '扯',\n  '' => '折',\n  '' => '扮',\n  '' => '投',\n  '' => '抓',\n  '' => '抑',\n  '' => '抆',\n  '' => '改',\n  '' => '攻',\n  '' => '攸',\n  '' => '旱',\n  '' => '更',\n  '' => '束',\n  '' => '李',\n  '' => '杏',\n  '' => '材',\n  '' => '村',\n  '' => '杜',\n  '' => '杖',\n  '' => '杞',\n  '' => '杉',\n  '' => '杆',\n  '' => '杠',\n  '@' => '杓',\n  'A' => '杗',\n  'B' => '步',\n  'C' => '每',\n  'D' => '求',\n  'E' => '汞',\n  'F' => '沙',\n  'G' => '沁',\n  'H' => '沈',\n  'I' => '沉',\n  'J' => '沅',\n  'K' => '沛',\n  'L' => '汪',\n  'M' => '決',\n  'N' => '沐',\n  'O' => '汰',\n  'P' => '沌',\n  'Q' => '汨',\n  'R' => '沖',\n  'S' => '沒',\n  'T' => '汽',\n  'U' => '沃',\n  'V' => '汲',\n  'W' => '汾',\n  'X' => '汴',\n  'Y' => '沆',\n  'Z' => '汶',\n  '[' => '沍',\n  '\\\\' => '沔',\n  ']' => '沘',\n  '^' => '沂',\n  '_' => '灶',\n  '`' => '灼',\n  'a' => '災',\n  'b' => '灸',\n  'c' => '牢',\n  'd' => '牡',\n  'e' => '牠',\n  'f' => '狄',\n  'g' => '狂',\n  'h' => '玖',\n  'i' => '甬',\n  'j' => '甫',\n  'k' => '男',\n  'l' => '甸',\n  'm' => '皂',\n  'n' => '盯',\n  'o' => '矣',\n  'p' => '私',\n  'q' => '秀',\n  'r' => '禿',\n  's' => '究',\n  't' => '系',\n  'u' => '罕',\n  'v' => '肖',\n  'w' => '肓',\n  'x' => '肝',\n  'y' => '肘',\n  'z' => '肛',\n  '{' => '肚',\n  '|' => '育',\n  '}' => '良',\n  '~' => '芒',\n  '' => '芋',\n  '' => '芍',\n  '' => '見',\n  '' => '角',\n  '' => '言',\n  '' => '谷',\n  '' => '豆',\n  '' => '豕',\n  '' => '貝',\n  '' => '赤',\n  '' => '走',\n  '' => '足',\n  '' => '身',\n  '' => '車',\n  '' => '辛',\n  '' => '辰',\n  '' => '迂',\n  '' => '迆',\n  '' => '迅',\n  '' => '迄',\n  '' => '巡',\n  '' => '邑',\n  '' => '邢',\n  '' => '邪',\n  '' => '邦',\n  '' => '那',\n  '' => '酉',\n  '' => '釆',\n  '' => '里',\n  '' => '防',\n  '' => '阮',\n  '' => '阱',\n  '' => '阪',\n  '' => '阬',\n  '' => '並',\n  '' => '乖',\n  '' => '乳',\n  '' => '事',\n  '' => '些',\n  '' => '亞',\n  '' => '享',\n  '' => '京',\n  '' => '佯',\n  '' => '依',\n  '' => '侍',\n  '' => '佳',\n  '' => '使',\n  '' => '佬',\n  '' => '供',\n  '' => '例',\n  '' => '來',\n  '' => '侃',\n  '' => '佰',\n  '' => '併',\n  '' => '侈',\n  '' => '佩',\n  '' => '佻',\n  '' => '侖',\n  '' => '佾',\n  '' => '侏',\n  '' => '侑',\n  '' => '佺',\n  '' => '兔',\n  '' => '兒',\n  '' => '兕',\n  '' => '兩',\n  '' => '具',\n  '' => '其',\n  '' => '典',\n  '' => '冽',\n  '' => '函',\n  '' => '刻',\n  '' => '券',\n  '' => '刷',\n  '' => '刺',\n  '' => '到',\n  '' => '刮',\n  '' => '制',\n  '' => '剁',\n  '' => '劾',\n  '' => '劻',\n  '' => '卒',\n  '' => '協',\n  '' => '卓',\n  '' => '卑',\n  '' => '卦',\n  '' => '卷',\n  '' => '卸',\n  '' => '卹',\n  '' => '取',\n  '' => '叔',\n  '' => '受',\n  '' => '味',\n  '' => '呵',\n  '@' => '咖',\n  'A' => '呸',\n  'B' => '咕',\n  'C' => '咀',\n  'D' => '呻',\n  'E' => '呷',\n  'F' => '咄',\n  'G' => '咒',\n  'H' => '咆',\n  'I' => '呼',\n  'J' => '咐',\n  'K' => '呱',\n  'L' => '呶',\n  'M' => '和',\n  'N' => '咚',\n  'O' => '呢',\n  'P' => '周',\n  'Q' => '咋',\n  'R' => '命',\n  'S' => '咎',\n  'T' => '固',\n  'U' => '垃',\n  'V' => '坷',\n  'W' => '坪',\n  'X' => '坩',\n  'Y' => '坡',\n  'Z' => '坦',\n  '[' => '坤',\n  '\\\\' => '坼',\n  ']' => '夜',\n  '^' => '奉',\n  '_' => '奇',\n  '`' => '奈',\n  'a' => '奄',\n  'b' => '奔',\n  'c' => '妾',\n  'd' => '妻',\n  'e' => '委',\n  'f' => '妹',\n  'g' => '妮',\n  'h' => '姑',\n  'i' => '姆',\n  'j' => '姐',\n  'k' => '姍',\n  'l' => '始',\n  'm' => '姓',\n  'n' => '姊',\n  'o' => '妯',\n  'p' => '妳',\n  'q' => '姒',\n  'r' => '姅',\n  's' => '孟',\n  't' => '孤',\n  'u' => '季',\n  'v' => '宗',\n  'w' => '定',\n  'x' => '官',\n  'y' => '宜',\n  'z' => '宙',\n  '{' => '宛',\n  '|' => '尚',\n  '}' => '屈',\n  '~' => '居',\n  '' => '屆',\n  '' => '岷',\n  '' => '岡',\n  '' => '岸',\n  '' => '岩',\n  '' => '岫',\n  '' => '岱',\n  '' => '岳',\n  '' => '帘',\n  '' => '帚',\n  '' => '帖',\n  '' => '帕',\n  '' => '帛',\n  '' => '帑',\n  '' => '幸',\n  '' => '庚',\n  '' => '店',\n  '' => '府',\n  '' => '底',\n  '' => '庖',\n  '' => '延',\n  '' => '弦',\n  '' => '弧',\n  '' => '弩',\n  '' => '往',\n  '' => '征',\n  '' => '彿',\n  '' => '彼',\n  '' => '忝',\n  '' => '忠',\n  '' => '忽',\n  '' => '念',\n  '' => '忿',\n  '' => '怏',\n  '' => '怔',\n  '' => '怯',\n  '' => '怵',\n  '' => '怖',\n  '' => '怪',\n  '' => '怕',\n  '' => '怡',\n  '' => '性',\n  '' => '怩',\n  '' => '怫',\n  '' => '怛',\n  '' => '或',\n  '' => '戕',\n  '' => '房',\n  '' => '戾',\n  '' => '所',\n  '' => '承',\n  '' => '拉',\n  '' => '拌',\n  '' => '拄',\n  '' => '抿',\n  '' => '拂',\n  '' => '抹',\n  '' => '拒',\n  '' => '招',\n  '' => '披',\n  '' => '拓',\n  '' => '拔',\n  '' => '拋',\n  '' => '拈',\n  '' => '抨',\n  '' => '抽',\n  '' => '押',\n  '' => '拐',\n  '' => '拙',\n  '' => '拇',\n  '' => '拍',\n  '' => '抵',\n  '' => '拚',\n  '' => '抱',\n  '' => '拘',\n  '' => '拖',\n  '' => '拗',\n  '' => '拆',\n  '' => '抬',\n  '' => '拎',\n  '' => '放',\n  '' => '斧',\n  '' => '於',\n  '' => '旺',\n  '' => '昔',\n  '' => '易',\n  '' => '昌',\n  '' => '昆',\n  '' => '昂',\n  '' => '明',\n  '' => '昀',\n  '' => '昏',\n  '' => '昕',\n  '' => '昊',\n  '@' => '昇',\n  'A' => '服',\n  'B' => '朋',\n  'C' => '杭',\n  'D' => '枋',\n  'E' => '枕',\n  'F' => '東',\n  'G' => '果',\n  'H' => '杳',\n  'I' => '杷',\n  'J' => '枇',\n  'K' => '枝',\n  'L' => '林',\n  'M' => '杯',\n  'N' => '杰',\n  'O' => '板',\n  'P' => '枉',\n  'Q' => '松',\n  'R' => '析',\n  'S' => '杵',\n  'T' => '枚',\n  'U' => '枓',\n  'V' => '杼',\n  'W' => '杪',\n  'X' => '杲',\n  'Y' => '欣',\n  'Z' => '武',\n  '[' => '歧',\n  '\\\\' => '歿',\n  ']' => '氓',\n  '^' => '氛',\n  '_' => '泣',\n  '`' => '注',\n  'a' => '泳',\n  'b' => '沱',\n  'c' => '泌',\n  'd' => '泥',\n  'e' => '河',\n  'f' => '沽',\n  'g' => '沾',\n  'h' => '沼',\n  'i' => '波',\n  'j' => '沫',\n  'k' => '法',\n  'l' => '泓',\n  'm' => '沸',\n  'n' => '泄',\n  'o' => '油',\n  'p' => '況',\n  'q' => '沮',\n  'r' => '泗',\n  's' => '泅',\n  't' => '泱',\n  'u' => '沿',\n  'v' => '治',\n  'w' => '泡',\n  'x' => '泛',\n  'y' => '泊',\n  'z' => '沬',\n  '{' => '泯',\n  '|' => '泜',\n  '}' => '泖',\n  '~' => '泠',\n  '' => '炕',\n  '' => '炎',\n  '' => '炒',\n  '' => '炊',\n  '' => '炙',\n  '' => '爬',\n  '' => '爭',\n  '' => '爸',\n  '' => '版',\n  '' => '牧',\n  '' => '物',\n  '' => '狀',\n  '' => '狎',\n  '' => '狙',\n  '' => '狗',\n  '' => '狐',\n  '' => '玩',\n  '' => '玨',\n  '' => '玟',\n  '' => '玫',\n  '' => '玥',\n  '' => '甽',\n  '' => '疝',\n  '' => '疙',\n  '' => '疚',\n  '' => '的',\n  '' => '盂',\n  '' => '盲',\n  '' => '直',\n  '' => '知',\n  '' => '矽',\n  '' => '社',\n  '' => '祀',\n  '' => '祁',\n  '' => '秉',\n  '' => '秈',\n  '' => '空',\n  '' => '穹',\n  '' => '竺',\n  '' => '糾',\n  '' => '罔',\n  '' => '羌',\n  '' => '羋',\n  '' => '者',\n  '' => '肺',\n  '' => '肥',\n  '' => '肢',\n  '' => '肱',\n  '' => '股',\n  '' => '肫',\n  '' => '肩',\n  '' => '肴',\n  '' => '肪',\n  '' => '肯',\n  '' => '臥',\n  '' => '臾',\n  '' => '舍',\n  '' => '芳',\n  '' => '芝',\n  '' => '芙',\n  '' => '芭',\n  '' => '芽',\n  '' => '芟',\n  '' => '芹',\n  '' => '花',\n  '' => '芬',\n  '' => '芥',\n  '' => '芯',\n  '' => '芸',\n  '' => '芣',\n  '' => '芰',\n  '' => '芾',\n  '' => '芷',\n  '' => '虎',\n  '' => '虱',\n  '' => '初',\n  '' => '表',\n  '' => '軋',\n  '' => '迎',\n  '' => '返',\n  '' => '近',\n  '' => '邵',\n  '' => '邸',\n  '' => '邱',\n  '' => '邶',\n  '' => '采',\n  '' => '金',\n  '' => '長',\n  '' => '門',\n  '' => '阜',\n  '' => '陀',\n  '' => '阿',\n  '' => '阻',\n  '' => '附',\n  '@' => '陂',\n  'A' => '隹',\n  'B' => '雨',\n  'C' => '青',\n  'D' => '非',\n  'E' => '亟',\n  'F' => '亭',\n  'G' => '亮',\n  'H' => '信',\n  'I' => '侵',\n  'J' => '侯',\n  'K' => '便',\n  'L' => '俠',\n  'M' => '俑',\n  'N' => '俏',\n  'O' => '保',\n  'P' => '促',\n  'Q' => '侶',\n  'R' => '俘',\n  'S' => '俟',\n  'T' => '俊',\n  'U' => '俗',\n  'V' => '侮',\n  'W' => '俐',\n  'X' => '俄',\n  'Y' => '係',\n  'Z' => '俚',\n  '[' => '俎',\n  '\\\\' => '俞',\n  ']' => '侷',\n  '^' => '兗',\n  '_' => '冒',\n  '`' => '冑',\n  'a' => '冠',\n  'b' => '剎',\n  'c' => '剃',\n  'd' => '削',\n  'e' => '前',\n  'f' => '剌',\n  'g' => '剋',\n  'h' => '則',\n  'i' => '勇',\n  'j' => '勉',\n  'k' => '勃',\n  'l' => '勁',\n  'm' => '匍',\n  'n' => '南',\n  'o' => '卻',\n  'p' => '厚',\n  'q' => '叛',\n  'r' => '咬',\n  's' => '哀',\n  't' => '咨',\n  'u' => '哎',\n  'v' => '哉',\n  'w' => '咸',\n  'x' => '咦',\n  'y' => '咳',\n  'z' => '哇',\n  '{' => '哂',\n  '|' => '咽',\n  '}' => '咪',\n  '~' => '品',\n  '' => '哄',\n  '' => '哈',\n  '' => '咯',\n  '' => '咫',\n  '' => '咱',\n  '' => '咻',\n  '' => '咩',\n  '' => '咧',\n  '' => '咿',\n  '' => '囿',\n  '' => '垂',\n  '' => '型',\n  '' => '垠',\n  '' => '垣',\n  '' => '垢',\n  '' => '城',\n  '' => '垮',\n  '' => '垓',\n  '' => '奕',\n  '' => '契',\n  '' => '奏',\n  '' => '奎',\n  '' => '奐',\n  '' => '姜',\n  '' => '姘',\n  '' => '姿',\n  '' => '姣',\n  '' => '姨',\n  '' => '娃',\n  '' => '姥',\n  '' => '姪',\n  '' => '姚',\n  '' => '姦',\n  '' => '威',\n  '' => '姻',\n  '' => '孩',\n  '' => '宣',\n  '' => '宦',\n  '' => '室',\n  '' => '客',\n  '' => '宥',\n  '' => '封',\n  '' => '屎',\n  '' => '屏',\n  '' => '屍',\n  '' => '屋',\n  '' => '峙',\n  '' => '峒',\n  '' => '巷',\n  '' => '帝',\n  '' => '帥',\n  '' => '帟',\n  '' => '幽',\n  '' => '庠',\n  '' => '度',\n  '' => '建',\n  '' => '弈',\n  '' => '弭',\n  '' => '彥',\n  '' => '很',\n  '' => '待',\n  '' => '徊',\n  '' => '律',\n  '' => '徇',\n  '' => '後',\n  '' => '徉',\n  '' => '怒',\n  '' => '思',\n  '' => '怠',\n  '' => '急',\n  '' => '怎',\n  '' => '怨',\n  '' => '恍',\n  '' => '恰',\n  '' => '恨',\n  '' => '恢',\n  '' => '恆',\n  '' => '恃',\n  '' => '恬',\n  '' => '恫',\n  '' => '恪',\n  '' => '恤',\n  '' => '扁',\n  '' => '拜',\n  '' => '挖',\n  '' => '按',\n  '' => '拼',\n  '' => '拭',\n  '' => '持',\n  '' => '拮',\n  '' => '拽',\n  '' => '指',\n  '' => '拱',\n  '' => '拷',\n  '@' => '拯',\n  'A' => '括',\n  'B' => '拾',\n  'C' => '拴',\n  'D' => '挑',\n  'E' => '挂',\n  'F' => '政',\n  'G' => '故',\n  'H' => '斫',\n  'I' => '施',\n  'J' => '既',\n  'K' => '春',\n  'L' => '昭',\n  'M' => '映',\n  'N' => '昧',\n  'O' => '是',\n  'P' => '星',\n  'Q' => '昨',\n  'R' => '昱',\n  'S' => '昤',\n  'T' => '曷',\n  'U' => '柿',\n  'V' => '染',\n  'W' => '柱',\n  'X' => '柔',\n  'Y' => '某',\n  'Z' => '柬',\n  '[' => '架',\n  '\\\\' => '枯',\n  ']' => '柵',\n  '^' => '柩',\n  '_' => '柯',\n  '`' => '柄',\n  'a' => '柑',\n  'b' => '枴',\n  'c' => '柚',\n  'd' => '查',\n  'e' => '枸',\n  'f' => '柏',\n  'g' => '柞',\n  'h' => '柳',\n  'i' => '枰',\n  'j' => '柙',\n  'k' => '柢',\n  'l' => '柝',\n  'm' => '柒',\n  'n' => '歪',\n  'o' => '殃',\n  'p' => '殆',\n  'q' => '段',\n  'r' => '毒',\n  's' => '毗',\n  't' => '氟',\n  'u' => '泉',\n  'v' => '洋',\n  'w' => '洲',\n  'x' => '洪',\n  'y' => '流',\n  'z' => '津',\n  '{' => '洌',\n  '|' => '洱',\n  '}' => '洞',\n  '~' => '洗',\n  '' => '活',\n  '' => '洽',\n  '' => '派',\n  '' => '洶',\n  '' => '洛',\n  '' => '泵',\n  '' => '洹',\n  '' => '洧',\n  '' => '洸',\n  '' => '洩',\n  '' => '洮',\n  '' => '洵',\n  '' => '洎',\n  '' => '洫',\n  '' => '炫',\n  '' => '為',\n  '' => '炳',\n  '' => '炬',\n  '' => '炯',\n  '' => '炭',\n  '' => '炸',\n  '' => '炮',\n  '' => '炤',\n  '' => '爰',\n  '' => '牲',\n  '' => '牯',\n  '' => '牴',\n  '' => '狩',\n  '' => '狠',\n  '' => '狡',\n  '' => '玷',\n  '' => '珊',\n  '' => '玻',\n  '' => '玲',\n  '' => '珍',\n  '' => '珀',\n  '' => '玳',\n  '' => '甚',\n  '' => '甭',\n  '' => '畏',\n  '' => '界',\n  '' => '畎',\n  '' => '畋',\n  '' => '疫',\n  '' => '疤',\n  '' => '疥',\n  '' => '疢',\n  '' => '疣',\n  '' => '癸',\n  '' => '皆',\n  '' => '皇',\n  '' => '皈',\n  '' => '盈',\n  '' => '盆',\n  '' => '盃',\n  '' => '盅',\n  '' => '省',\n  '' => '盹',\n  '' => '相',\n  '' => '眉',\n  '' => '看',\n  '' => '盾',\n  '' => '盼',\n  '' => '眇',\n  '' => '矜',\n  '' => '砂',\n  '' => '研',\n  '' => '砌',\n  '' => '砍',\n  '' => '祆',\n  '' => '祉',\n  '' => '祈',\n  '' => '祇',\n  '' => '禹',\n  '' => '禺',\n  '' => '科',\n  '' => '秒',\n  '' => '秋',\n  '' => '穿',\n  '' => '突',\n  '' => '竿',\n  '' => '竽',\n  '' => '籽',\n  '' => '紂',\n  '' => '紅',\n  '' => '紀',\n  '' => '紉',\n  '' => '紇',\n  '' => '約',\n  '' => '紆',\n  '' => '缸',\n  '' => '美',\n  '' => '羿',\n  '' => '耄',\n  '@' => '耐',\n  'A' => '耍',\n  'B' => '耑',\n  'C' => '耶',\n  'D' => '胖',\n  'E' => '胥',\n  'F' => '胚',\n  'G' => '胃',\n  'H' => '胄',\n  'I' => '背',\n  'J' => '胡',\n  'K' => '胛',\n  'L' => '胎',\n  'M' => '胞',\n  'N' => '胤',\n  'O' => '胝',\n  'P' => '致',\n  'Q' => '舢',\n  'R' => '苧',\n  'S' => '范',\n  'T' => '茅',\n  'U' => '苣',\n  'V' => '苛',\n  'W' => '苦',\n  'X' => '茄',\n  'Y' => '若',\n  'Z' => '茂',\n  '[' => '茉',\n  '\\\\' => '苒',\n  ']' => '苗',\n  '^' => '英',\n  '_' => '茁',\n  '`' => '苜',\n  'a' => '苔',\n  'b' => '苑',\n  'c' => '苞',\n  'd' => '苓',\n  'e' => '苟',\n  'f' => '苯',\n  'g' => '茆',\n  'h' => '虐',\n  'i' => '虹',\n  'j' => '虻',\n  'k' => '虺',\n  'l' => '衍',\n  'm' => '衫',\n  'n' => '要',\n  'o' => '觔',\n  'p' => '計',\n  'q' => '訂',\n  'r' => '訃',\n  's' => '貞',\n  't' => '負',\n  'u' => '赴',\n  'v' => '赳',\n  'w' => '趴',\n  'x' => '軍',\n  'y' => '軌',\n  'z' => '述',\n  '{' => '迦',\n  '|' => '迢',\n  '}' => '迪',\n  '~' => '迥',\n  '' => '迭',\n  '' => '迫',\n  '' => '迤',\n  '' => '迨',\n  '' => '郊',\n  '' => '郎',\n  '' => '郁',\n  '' => '郃',\n  '' => '酋',\n  '' => '酊',\n  '' => '重',\n  '' => '閂',\n  '' => '限',\n  '' => '陋',\n  '' => '陌',\n  '' => '降',\n  '' => '面',\n  '' => '革',\n  '' => '韋',\n  '' => '韭',\n  '' => '音',\n  '' => '頁',\n  '' => '風',\n  '' => '飛',\n  '' => '食',\n  '' => '首',\n  '' => '香',\n  '' => '乘',\n  '' => '亳',\n  '' => '倌',\n  '' => '倍',\n  '' => '倣',\n  '' => '俯',\n  '' => '倦',\n  '' => '倥',\n  '' => '俸',\n  '' => '倩',\n  '' => '倖',\n  '' => '倆',\n  '' => '值',\n  '' => '借',\n  '' => '倚',\n  '' => '倒',\n  '' => '們',\n  '' => '俺',\n  '' => '倀',\n  '' => '倔',\n  '' => '倨',\n  '' => '俱',\n  '' => '倡',\n  '' => '個',\n  '' => '候',\n  '' => '倘',\n  '' => '俳',\n  '' => '修',\n  '' => '倭',\n  '' => '倪',\n  '' => '俾',\n  '' => '倫',\n  '' => '倉',\n  '' => '兼',\n  '' => '冤',\n  '' => '冥',\n  '' => '冢',\n  '' => '凍',\n  '' => '凌',\n  '' => '准',\n  '' => '凋',\n  '' => '剖',\n  '' => '剜',\n  '' => '剔',\n  '' => '剛',\n  '' => '剝',\n  '' => '匪',\n  '' => '卿',\n  '' => '原',\n  '' => '厝',\n  '' => '叟',\n  '' => '哨',\n  '' => '唐',\n  '' => '唁',\n  '' => '唷',\n  '' => '哼',\n  '' => '哥',\n  '' => '哲',\n  '' => '唆',\n  '' => '哺',\n  '' => '唔',\n  '' => '哩',\n  '' => '哭',\n  '' => '員',\n  '' => '唉',\n  '' => '哮',\n  '' => '哪',\n  '@' => '哦',\n  'A' => '唧',\n  'B' => '唇',\n  'C' => '哽',\n  'D' => '唏',\n  'E' => '圃',\n  'F' => '圄',\n  'G' => '埂',\n  'H' => '埔',\n  'I' => '埋',\n  'J' => '埃',\n  'K' => '堉',\n  'L' => '夏',\n  'M' => '套',\n  'N' => '奘',\n  'O' => '奚',\n  'P' => '娑',\n  'Q' => '娘',\n  'R' => '娜',\n  'S' => '娟',\n  'T' => '娛',\n  'U' => '娓',\n  'V' => '姬',\n  'W' => '娠',\n  'X' => '娣',\n  'Y' => '娩',\n  'Z' => '娥',\n  '[' => '娌',\n  '\\\\' => '娉',\n  ']' => '孫',\n  '^' => '屘',\n  '_' => '宰',\n  '`' => '害',\n  'a' => '家',\n  'b' => '宴',\n  'c' => '宮',\n  'd' => '宵',\n  'e' => '容',\n  'f' => '宸',\n  'g' => '射',\n  'h' => '屑',\n  'i' => '展',\n  'j' => '屐',\n  'k' => '峭',\n  'l' => '峽',\n  'm' => '峻',\n  'n' => '峪',\n  'o' => '峨',\n  'p' => '峰',\n  'q' => '島',\n  'r' => '崁',\n  's' => '峴',\n  't' => '差',\n  'u' => '席',\n  'v' => '師',\n  'w' => '庫',\n  'x' => '庭',\n  'y' => '座',\n  'z' => '弱',\n  '{' => '徒',\n  '|' => '徑',\n  '}' => '徐',\n  '~' => '恙',\n  '' => '恣',\n  '' => '恥',\n  '' => '恐',\n  '' => '恕',\n  '' => '恭',\n  '' => '恩',\n  '' => '息',\n  '' => '悄',\n  '' => '悟',\n  '' => '悚',\n  '' => '悍',\n  '' => '悔',\n  '' => '悌',\n  '' => '悅',\n  '' => '悖',\n  '' => '扇',\n  '' => '拳',\n  '' => '挈',\n  '' => '拿',\n  '' => '捎',\n  '' => '挾',\n  '' => '振',\n  '' => '捕',\n  '' => '捂',\n  '' => '捆',\n  '' => '捏',\n  '' => '捉',\n  '' => '挺',\n  '' => '捐',\n  '' => '挽',\n  '' => '挪',\n  '' => '挫',\n  '' => '挨',\n  '' => '捍',\n  '' => '捌',\n  '' => '效',\n  '' => '敉',\n  '' => '料',\n  '' => '旁',\n  '' => '旅',\n  '' => '時',\n  '' => '晉',\n  '' => '晏',\n  '' => '晃',\n  '' => '晒',\n  '' => '晌',\n  '' => '晅',\n  '' => '晁',\n  '' => '書',\n  '' => '朔',\n  '' => '朕',\n  '' => '朗',\n  '' => '校',\n  '' => '核',\n  '' => '案',\n  '' => '框',\n  '' => '桓',\n  '' => '根',\n  '' => '桂',\n  '' => '桔',\n  '' => '栩',\n  '' => '梳',\n  '' => '栗',\n  '' => '桌',\n  '' => '桑',\n  '' => '栽',\n  '' => '柴',\n  '' => '桐',\n  '' => '桀',\n  '' => '格',\n  '' => '桃',\n  '' => '株',\n  '' => '桅',\n  '' => '栓',\n  '' => '栘',\n  '' => '桁',\n  '' => '殊',\n  '' => '殉',\n  '' => '殷',\n  '' => '氣',\n  '' => '氧',\n  '' => '氨',\n  '' => '氦',\n  '' => '氤',\n  '' => '泰',\n  '' => '浪',\n  '' => '涕',\n  '' => '消',\n  '' => '涇',\n  '' => '浦',\n  '' => '浸',\n  '' => '海',\n  '' => '浙',\n  '' => '涓',\n  '@' => '浬',\n  'A' => '涉',\n  'B' => '浮',\n  'C' => '浚',\n  'D' => '浴',\n  'E' => '浩',\n  'F' => '涌',\n  'G' => '涊',\n  'H' => '浹',\n  'I' => '涅',\n  'J' => '浥',\n  'K' => '涔',\n  'L' => '烊',\n  'M' => '烘',\n  'N' => '烤',\n  'O' => '烙',\n  'P' => '烈',\n  'Q' => '烏',\n  'R' => '爹',\n  'S' => '特',\n  'T' => '狼',\n  'U' => '狹',\n  'V' => '狽',\n  'W' => '狸',\n  'X' => '狷',\n  'Y' => '玆',\n  'Z' => '班',\n  '[' => '琉',\n  '\\\\' => '珮',\n  ']' => '珠',\n  '^' => '珪',\n  '_' => '珞',\n  '`' => '畔',\n  'a' => '畝',\n  'b' => '畜',\n  'c' => '畚',\n  'd' => '留',\n  'e' => '疾',\n  'f' => '病',\n  'g' => '症',\n  'h' => '疲',\n  'i' => '疳',\n  'j' => '疽',\n  'k' => '疼',\n  'l' => '疹',\n  'm' => '痂',\n  'n' => '疸',\n  'o' => '皋',\n  'p' => '皰',\n  'q' => '益',\n  'r' => '盍',\n  's' => '盎',\n  't' => '眩',\n  'u' => '真',\n  'v' => '眠',\n  'w' => '眨',\n  'x' => '矩',\n  'y' => '砰',\n  'z' => '砧',\n  '{' => '砸',\n  '|' => '砝',\n  '}' => '破',\n  '~' => '砷',\n  '' => '砥',\n  '' => '砭',\n  '' => '砠',\n  '' => '砟',\n  '' => '砲',\n  '' => '祕',\n  '' => '祐',\n  '' => '祠',\n  '' => '祟',\n  '' => '祖',\n  '' => '神',\n  '' => '祝',\n  '' => '祗',\n  '' => '祚',\n  '' => '秤',\n  '' => '秣',\n  '' => '秧',\n  '' => '租',\n  '' => '秦',\n  '' => '秩',\n  '' => '秘',\n  '' => '窄',\n  '' => '窈',\n  '' => '站',\n  '' => '笆',\n  '' => '笑',\n  '' => '粉',\n  '' => '紡',\n  '' => '紗',\n  '' => '紋',\n  '' => '紊',\n  '' => '素',\n  '' => '索',\n  '' => '純',\n  '' => '紐',\n  '' => '紕',\n  '' => '級',\n  '' => '紜',\n  '' => '納',\n  '' => '紙',\n  '' => '紛',\n  '' => '缺',\n  '' => '罟',\n  '' => '羔',\n  '' => '翅',\n  '' => '翁',\n  '' => '耆',\n  '' => '耘',\n  '' => '耕',\n  '' => '耙',\n  '' => '耗',\n  '' => '耽',\n  '' => '耿',\n  '' => '胱',\n  '' => '脂',\n  '' => '胰',\n  '' => '脅',\n  '' => '胭',\n  '' => '胴',\n  '' => '脆',\n  '' => '胸',\n  '' => '胳',\n  '' => '脈',\n  '' => '能',\n  '' => '脊',\n  '' => '胼',\n  '' => '胯',\n  '' => '臭',\n  '' => '臬',\n  '' => '舀',\n  '' => '舐',\n  '' => '航',\n  '' => '舫',\n  '' => '舨',\n  '' => '般',\n  '' => '芻',\n  '' => '茫',\n  '' => '荒',\n  '' => '荔',\n  '' => '荊',\n  '' => '茸',\n  '' => '荐',\n  '' => '草',\n  '' => '茵',\n  '' => '茴',\n  '' => '荏',\n  '' => '茲',\n  '' => '茹',\n  '' => '茶',\n  '' => '茗',\n  '' => '荀',\n  '' => '茱',\n  '' => '茨',\n  '' => '荃',\n  '@' => '虔',\n  'A' => '蚊',\n  'B' => '蚪',\n  'C' => '蚓',\n  'D' => '蚤',\n  'E' => '蚩',\n  'F' => '蚌',\n  'G' => '蚣',\n  'H' => '蚜',\n  'I' => '衰',\n  'J' => '衷',\n  'K' => '袁',\n  'L' => '袂',\n  'M' => '衽',\n  'N' => '衹',\n  'O' => '記',\n  'P' => '訐',\n  'Q' => '討',\n  'R' => '訌',\n  'S' => '訕',\n  'T' => '訊',\n  'U' => '託',\n  'V' => '訓',\n  'W' => '訖',\n  'X' => '訏',\n  'Y' => '訑',\n  'Z' => '豈',\n  '[' => '豺',\n  '\\\\' => '豹',\n  ']' => '財',\n  '^' => '貢',\n  '_' => '起',\n  '`' => '躬',\n  'a' => '軒',\n  'b' => '軔',\n  'c' => '軏',\n  'd' => '辱',\n  'e' => '送',\n  'f' => '逆',\n  'g' => '迷',\n  'h' => '退',\n  'i' => '迺',\n  'j' => '迴',\n  'k' => '逃',\n  'l' => '追',\n  'm' => '逅',\n  'n' => '迸',\n  'o' => '邕',\n  'p' => '郡',\n  'q' => '郝',\n  'r' => '郢',\n  's' => '酒',\n  't' => '配',\n  'u' => '酌',\n  'v' => '釘',\n  'w' => '針',\n  'x' => '釗',\n  'y' => '釜',\n  'z' => '釙',\n  '{' => '閃',\n  '|' => '院',\n  '}' => '陣',\n  '~' => '陡',\n  '' => '陛',\n  '' => '陝',\n  '' => '除',\n  '' => '陘',\n  '' => '陞',\n  '' => '隻',\n  '' => '飢',\n  '' => '馬',\n  '' => '骨',\n  '' => '高',\n  '' => '鬥',\n  '' => '鬲',\n  '' => '鬼',\n  '' => '乾',\n  '' => '偺',\n  '' => '偽',\n  '' => '停',\n  '' => '假',\n  '' => '偃',\n  '' => '偌',\n  '' => '做',\n  '' => '偉',\n  '' => '健',\n  '' => '偶',\n  '' => '偎',\n  '' => '偕',\n  '' => '偵',\n  '' => '側',\n  '' => '偷',\n  '' => '偏',\n  '' => '倏',\n  '' => '偯',\n  '' => '偭',\n  '' => '兜',\n  '' => '冕',\n  '' => '凰',\n  '' => '剪',\n  '' => '副',\n  '' => '勒',\n  '' => '務',\n  '' => '勘',\n  '' => '動',\n  '' => '匐',\n  '' => '匏',\n  '' => '匙',\n  '' => '匿',\n  '' => '區',\n  '' => '匾',\n  '' => '參',\n  '' => '曼',\n  '' => '商',\n  '' => '啪',\n  '' => '啦',\n  '' => '啄',\n  '' => '啞',\n  '' => '啡',\n  '' => '啃',\n  '' => '啊',\n  '' => '唱',\n  '' => '啖',\n  '' => '問',\n  '' => '啕',\n  '' => '唯',\n  '' => '啤',\n  '' => '唸',\n  '' => '售',\n  '' => '啜',\n  '' => '唬',\n  '' => '啣',\n  '' => '唳',\n  '' => '啁',\n  '' => '啗',\n  '' => '圈',\n  '' => '國',\n  '' => '圉',\n  '' => '域',\n  '' => '堅',\n  '' => '堊',\n  '' => '堆',\n  '' => '埠',\n  '' => '埤',\n  '' => '基',\n  '' => '堂',\n  '' => '堵',\n  '' => '執',\n  '' => '培',\n  '' => '夠',\n  '' => '奢',\n  '' => '娶',\n  '' => '婁',\n  '' => '婉',\n  '' => '婦',\n  '' => '婪',\n  '' => '婀',\n  '@' => '娼',\n  'A' => '婢',\n  'B' => '婚',\n  'C' => '婆',\n  'D' => '婊',\n  'E' => '孰',\n  'F' => '寇',\n  'G' => '寅',\n  'H' => '寄',\n  'I' => '寂',\n  'J' => '宿',\n  'K' => '密',\n  'L' => '尉',\n  'M' => '專',\n  'N' => '將',\n  'O' => '屠',\n  'P' => '屜',\n  'Q' => '屝',\n  'R' => '崇',\n  'S' => '崆',\n  'T' => '崎',\n  'U' => '崛',\n  'V' => '崖',\n  'W' => '崢',\n  'X' => '崑',\n  'Y' => '崩',\n  'Z' => '崔',\n  '[' => '崙',\n  '\\\\' => '崤',\n  ']' => '崧',\n  '^' => '崗',\n  '_' => '巢',\n  '`' => '常',\n  'a' => '帶',\n  'b' => '帳',\n  'c' => '帷',\n  'd' => '康',\n  'e' => '庸',\n  'f' => '庶',\n  'g' => '庵',\n  'h' => '庾',\n  'i' => '張',\n  'j' => '強',\n  'k' => '彗',\n  'l' => '彬',\n  'm' => '彩',\n  'n' => '彫',\n  'o' => '得',\n  'p' => '徙',\n  'q' => '從',\n  'r' => '徘',\n  's' => '御',\n  't' => '徠',\n  'u' => '徜',\n  'v' => '恿',\n  'w' => '患',\n  'x' => '悉',\n  'y' => '悠',\n  'z' => '您',\n  '{' => '惋',\n  '|' => '悴',\n  '}' => '惦',\n  '~' => '悽',\n  '' => '情',\n  '' => '悻',\n  '' => '悵',\n  '' => '惜',\n  '' => '悼',\n  '' => '惘',\n  '' => '惕',\n  '' => '惆',\n  '' => '惟',\n  '' => '悸',\n  '' => '惚',\n  '' => '惇',\n  '' => '戚',\n  '' => '戛',\n  '' => '扈',\n  '' => '掠',\n  '' => '控',\n  '' => '捲',\n  '' => '掖',\n  '' => '探',\n  '' => '接',\n  '' => '捷',\n  '' => '捧',\n  '' => '掘',\n  '' => '措',\n  '' => '捱',\n  '' => '掩',\n  '' => '掉',\n  '' => '掃',\n  '' => '掛',\n  '' => '捫',\n  '' => '推',\n  '' => '掄',\n  '' => '授',\n  '' => '掙',\n  '' => '採',\n  '' => '掬',\n  '' => '排',\n  '' => '掏',\n  '' => '掀',\n  '' => '捻',\n  '' => '捩',\n  '' => '捨',\n  '' => '捺',\n  '' => '敝',\n  '' => '敖',\n  '' => '救',\n  '' => '教',\n  '' => '敗',\n  '' => '啟',\n  '' => '敏',\n  '' => '敘',\n  '' => '敕',\n  '' => '敔',\n  '' => '斜',\n  '' => '斛',\n  '' => '斬',\n  '' => '族',\n  '' => '旋',\n  '' => '旌',\n  '' => '旎',\n  '' => '晝',\n  '' => '晚',\n  '' => '晤',\n  '' => '晨',\n  '' => '晦',\n  '' => '晞',\n  '' => '曹',\n  '' => '勗',\n  '' => '望',\n  '' => '梁',\n  '' => '梯',\n  '' => '梢',\n  '' => '梓',\n  '' => '梵',\n  '' => '桿',\n  '' => '桶',\n  '' => '梱',\n  '' => '梧',\n  '' => '梗',\n  '' => '械',\n  '' => '梃',\n  '' => '棄',\n  '' => '梭',\n  '' => '梆',\n  '' => '梅',\n  '' => '梔',\n  '' => '條',\n  '' => '梨',\n  '' => '梟',\n  '' => '梡',\n  '' => '梂',\n  '' => '欲',\n  '' => '殺',\n  '@' => '毫',\n  'A' => '毬',\n  'B' => '氫',\n  'C' => '涎',\n  'D' => '涼',\n  'E' => '淳',\n  'F' => '淙',\n  'G' => '液',\n  'H' => '淡',\n  'I' => '淌',\n  'J' => '淤',\n  'K' => '添',\n  'L' => '淺',\n  'M' => '清',\n  'N' => '淇',\n  'O' => '淋',\n  'P' => '涯',\n  'Q' => '淑',\n  'R' => '涮',\n  'S' => '淞',\n  'T' => '淹',\n  'U' => '涸',\n  'V' => '混',\n  'W' => '淵',\n  'X' => '淅',\n  'Y' => '淒',\n  'Z' => '渚',\n  '[' => '涵',\n  '\\\\' => '淚',\n  ']' => '淫',\n  '^' => '淘',\n  '_' => '淪',\n  '`' => '深',\n  'a' => '淮',\n  'b' => '淨',\n  'c' => '淆',\n  'd' => '淄',\n  'e' => '涪',\n  'f' => '淬',\n  'g' => '涿',\n  'h' => '淦',\n  'i' => '烹',\n  'j' => '焉',\n  'k' => '焊',\n  'l' => '烽',\n  'm' => '烯',\n  'n' => '爽',\n  'o' => '牽',\n  'p' => '犁',\n  'q' => '猜',\n  'r' => '猛',\n  's' => '猖',\n  't' => '猓',\n  'u' => '猙',\n  'v' => '率',\n  'w' => '琅',\n  'x' => '琊',\n  'y' => '球',\n  'z' => '理',\n  '{' => '現',\n  '|' => '琍',\n  '}' => '瓠',\n  '~' => '瓶',\n  '' => '瓷',\n  '' => '甜',\n  '' => '產',\n  '' => '略',\n  '' => '畦',\n  '' => '畢',\n  '' => '異',\n  '' => '疏',\n  '' => '痔',\n  '' => '痕',\n  '' => '疵',\n  '' => '痊',\n  '' => '痍',\n  '' => '皎',\n  '' => '盔',\n  '' => '盒',\n  '' => '盛',\n  '' => '眷',\n  '' => '眾',\n  '' => '眼',\n  '' => '眶',\n  '' => '眸',\n  '' => '眺',\n  '' => '硫',\n  '' => '硃',\n  '' => '硎',\n  '' => '祥',\n  '' => '票',\n  '' => '祭',\n  '' => '移',\n  '' => '窒',\n  '' => '窕',\n  '' => '笠',\n  '' => '笨',\n  '' => '笛',\n  '' => '第',\n  '' => '符',\n  '' => '笙',\n  '' => '笞',\n  '' => '笮',\n  '' => '粒',\n  '' => '粗',\n  '' => '粕',\n  '' => '絆',\n  '' => '絃',\n  '' => '統',\n  '' => '紮',\n  '' => '紹',\n  '' => '紼',\n  '' => '絀',\n  '' => '細',\n  '' => '紳',\n  '' => '組',\n  '' => '累',\n  '' => '終',\n  '' => '紲',\n  '' => '紱',\n  '' => '缽',\n  '' => '羞',\n  '' => '羚',\n  '' => '翌',\n  '' => '翎',\n  '' => '習',\n  '' => '耜',\n  '' => '聊',\n  '' => '聆',\n  '' => '脯',\n  '' => '脖',\n  '' => '脣',\n  '' => '脫',\n  '' => '脩',\n  '' => '脰',\n  '' => '脤',\n  '' => '舂',\n  '' => '舵',\n  '' => '舷',\n  '' => '舶',\n  '' => '船',\n  '' => '莎',\n  '' => '莞',\n  '' => '莘',\n  '' => '荸',\n  '' => '莢',\n  '' => '莖',\n  '' => '莽',\n  '' => '莫',\n  '' => '莒',\n  '' => '莊',\n  '' => '莓',\n  '' => '莉',\n  '' => '莠',\n  '' => '荷',\n  '' => '荻',\n  '' => '荼',\n  '@' => '莆',\n  'A' => '莧',\n  'B' => '處',\n  'C' => '彪',\n  'D' => '蛇',\n  'E' => '蛀',\n  'F' => '蚶',\n  'G' => '蛄',\n  'H' => '蚵',\n  'I' => '蛆',\n  'J' => '蛋',\n  'K' => '蚱',\n  'L' => '蚯',\n  'M' => '蛉',\n  'N' => '術',\n  'O' => '袞',\n  'P' => '袈',\n  'Q' => '被',\n  'R' => '袒',\n  'S' => '袖',\n  'T' => '袍',\n  'U' => '袋',\n  'V' => '覓',\n  'W' => '規',\n  'X' => '訪',\n  'Y' => '訝',\n  'Z' => '訣',\n  '[' => '訥',\n  '\\\\' => '許',\n  ']' => '設',\n  '^' => '訟',\n  '_' => '訛',\n  '`' => '訢',\n  'a' => '豉',\n  'b' => '豚',\n  'c' => '販',\n  'd' => '責',\n  'e' => '貫',\n  'f' => '貨',\n  'g' => '貪',\n  'h' => '貧',\n  'i' => '赧',\n  'j' => '赦',\n  'k' => '趾',\n  'l' => '趺',\n  'm' => '軛',\n  'n' => '軟',\n  'o' => '這',\n  'p' => '逍',\n  'q' => '通',\n  'r' => '逗',\n  's' => '連',\n  't' => '速',\n  'u' => '逝',\n  'v' => '逐',\n  'w' => '逕',\n  'x' => '逞',\n  'y' => '造',\n  'z' => '透',\n  '{' => '逢',\n  '|' => '逖',\n  '}' => '逛',\n  '~' => '途',\n  '' => '部',\n  '' => '郭',\n  '' => '都',\n  '' => '酗',\n  '' => '野',\n  '' => '釵',\n  '' => '釦',\n  '' => '釣',\n  '' => '釧',\n  '' => '釭',\n  '' => '釩',\n  '' => '閉',\n  '' => '陪',\n  '' => '陵',\n  '' => '陳',\n  '' => '陸',\n  '' => '陰',\n  '' => '陴',\n  '' => '陶',\n  '' => '陷',\n  '' => '陬',\n  '' => '雀',\n  '' => '雪',\n  '' => '雩',\n  '' => '章',\n  '' => '竟',\n  '' => '頂',\n  '' => '頃',\n  '' => '魚',\n  '' => '鳥',\n  '' => '鹵',\n  '' => '鹿',\n  '' => '麥',\n  '' => '麻',\n  '' => '傢',\n  '' => '傍',\n  '' => '傅',\n  '' => '備',\n  '' => '傑',\n  '' => '傀',\n  '' => '傖',\n  '' => '傘',\n  '' => '傚',\n  '' => '最',\n  '' => '凱',\n  '' => '割',\n  '' => '剴',\n  '' => '創',\n  '' => '剩',\n  '' => '勞',\n  '' => '勝',\n  '' => '勛',\n  '' => '博',\n  '' => '厥',\n  '' => '啻',\n  '' => '喀',\n  '' => '喧',\n  '' => '啼',\n  '' => '喊',\n  '' => '喝',\n  '' => '喘',\n  '' => '喂',\n  '' => '喜',\n  '' => '喪',\n  '' => '喔',\n  '' => '喇',\n  '' => '喋',\n  '' => '喃',\n  '' => '喳',\n  '' => '單',\n  '' => '喟',\n  '' => '唾',\n  '' => '喲',\n  '' => '喚',\n  '' => '喻',\n  '' => '喬',\n  '' => '喱',\n  '' => '啾',\n  '' => '喉',\n  '' => '喫',\n  '' => '喙',\n  '' => '圍',\n  '' => '堯',\n  '' => '堪',\n  '' => '場',\n  '' => '堤',\n  '' => '堰',\n  '' => '報',\n  '' => '堡',\n  '' => '堝',\n  '' => '堠',\n  '' => '壹',\n  '' => '壺',\n  '' => '奠',\n  '@' => '婷',\n  'A' => '媚',\n  'B' => '婿',\n  'C' => '媒',\n  'D' => '媛',\n  'E' => '媧',\n  'F' => '孳',\n  'G' => '孱',\n  'H' => '寒',\n  'I' => '富',\n  'J' => '寓',\n  'K' => '寐',\n  'L' => '尊',\n  'M' => '尋',\n  'N' => '就',\n  'O' => '嵌',\n  'P' => '嵐',\n  'Q' => '崴',\n  'R' => '嵇',\n  'S' => '巽',\n  'T' => '幅',\n  'U' => '帽',\n  'V' => '幀',\n  'W' => '幃',\n  'X' => '幾',\n  'Y' => '廊',\n  'Z' => '廁',\n  '[' => '廂',\n  '\\\\' => '廄',\n  ']' => '弼',\n  '^' => '彭',\n  '_' => '復',\n  '`' => '循',\n  'a' => '徨',\n  'b' => '惑',\n  'c' => '惡',\n  'd' => '悲',\n  'e' => '悶',\n  'f' => '惠',\n  'g' => '愜',\n  'h' => '愣',\n  'i' => '惺',\n  'j' => '愕',\n  'k' => '惰',\n  'l' => '惻',\n  'm' => '惴',\n  'n' => '慨',\n  'o' => '惱',\n  'p' => '愎',\n  'q' => '惶',\n  'r' => '愉',\n  's' => '愀',\n  't' => '愒',\n  'u' => '戟',\n  'v' => '扉',\n  'w' => '掣',\n  'x' => '掌',\n  'y' => '描',\n  'z' => '揀',\n  '{' => '揩',\n  '|' => '揉',\n  '}' => '揆',\n  '~' => '揍',\n  '' => '插',\n  '' => '揣',\n  '' => '提',\n  '' => '握',\n  '' => '揖',\n  '' => '揭',\n  '' => '揮',\n  '' => '捶',\n  '' => '援',\n  '' => '揪',\n  '' => '換',\n  '' => '摒',\n  '' => '揚',\n  '' => '揹',\n  '' => '敞',\n  '' => '敦',\n  '' => '敢',\n  '' => '散',\n  '' => '斑',\n  '' => '斐',\n  '' => '斯',\n  '' => '普',\n  '' => '晰',\n  '' => '晴',\n  '' => '晶',\n  '' => '景',\n  '' => '暑',\n  '' => '智',\n  '' => '晾',\n  '' => '晷',\n  '' => '曾',\n  '' => '替',\n  '' => '期',\n  '' => '朝',\n  '' => '棺',\n  '' => '棕',\n  '' => '棠',\n  '' => '棘',\n  '' => '棗',\n  '' => '椅',\n  '' => '棟',\n  '' => '棵',\n  '' => '森',\n  '' => '棧',\n  '' => '棹',\n  '' => '棒',\n  '' => '棲',\n  '' => '棣',\n  '' => '棋',\n  '' => '棍',\n  '' => '植',\n  '' => '椒',\n  '' => '椎',\n  '' => '棉',\n  '' => '棚',\n  '' => '楮',\n  '' => '棻',\n  '' => '款',\n  '' => '欺',\n  '' => '欽',\n  '' => '殘',\n  '' => '殖',\n  '' => '殼',\n  '' => '毯',\n  '' => '氮',\n  '' => '氯',\n  '' => '氬',\n  '' => '港',\n  '' => '游',\n  '' => '湔',\n  '' => '渡',\n  '' => '渲',\n  '' => '湧',\n  '' => '湊',\n  '' => '渠',\n  '' => '渥',\n  '' => '渣',\n  '' => '減',\n  '' => '湛',\n  '' => '湘',\n  '' => '渤',\n  '' => '湖',\n  '' => '湮',\n  '' => '渭',\n  '' => '渦',\n  '' => '湯',\n  '' => '渴',\n  '' => '湍',\n  '' => '渺',\n  '' => '測',\n  '' => '湃',\n  '' => '渝',\n  '' => '渾',\n  '' => '滋',\n  '@' => '溉',\n  'A' => '渙',\n  'B' => '湎',\n  'C' => '湣',\n  'D' => '湄',\n  'E' => '湲',\n  'F' => '湩',\n  'G' => '湟',\n  'H' => '焙',\n  'I' => '焚',\n  'J' => '焦',\n  'K' => '焰',\n  'L' => '無',\n  'M' => '然',\n  'N' => '煮',\n  'O' => '焜',\n  'P' => '牌',\n  'Q' => '犄',\n  'R' => '犀',\n  'S' => '猶',\n  'T' => '猥',\n  'U' => '猴',\n  'V' => '猩',\n  'W' => '琺',\n  'X' => '琪',\n  'Y' => '琳',\n  'Z' => '琢',\n  '[' => '琥',\n  '\\\\' => '琵',\n  ']' => '琶',\n  '^' => '琴',\n  '_' => '琯',\n  '`' => '琛',\n  'a' => '琦',\n  'b' => '琨',\n  'c' => '甥',\n  'd' => '甦',\n  'e' => '畫',\n  'f' => '番',\n  'g' => '痢',\n  'h' => '痛',\n  'i' => '痣',\n  'j' => '痙',\n  'k' => '痘',\n  'l' => '痞',\n  'm' => '痠',\n  'n' => '登',\n  'o' => '發',\n  'p' => '皖',\n  'q' => '皓',\n  'r' => '皴',\n  's' => '盜',\n  't' => '睏',\n  'u' => '短',\n  'v' => '硝',\n  'w' => '硬',\n  'x' => '硯',\n  'y' => '稍',\n  'z' => '稈',\n  '{' => '程',\n  '|' => '稅',\n  '}' => '稀',\n  '~' => '窘',\n  '' => '窗',\n  '' => '窖',\n  '' => '童',\n  '' => '竣',\n  '' => '等',\n  '' => '策',\n  '' => '筆',\n  '' => '筐',\n  '' => '筒',\n  '' => '答',\n  '' => '筍',\n  '' => '筋',\n  '' => '筏',\n  '' => '筑',\n  '' => '粟',\n  '' => '粥',\n  '' => '絞',\n  '' => '結',\n  '' => '絨',\n  '' => '絕',\n  '' => '紫',\n  '' => '絮',\n  '' => '絲',\n  '' => '絡',\n  '' => '給',\n  '' => '絢',\n  '' => '絰',\n  '' => '絳',\n  '' => '善',\n  '' => '翔',\n  '' => '翕',\n  '' => '耋',\n  '' => '聒',\n  '' => '肅',\n  '' => '腕',\n  '' => '腔',\n  '' => '腋',\n  '' => '腑',\n  '' => '腎',\n  '' => '脹',\n  '' => '腆',\n  '' => '脾',\n  '' => '腌',\n  '' => '腓',\n  '' => '腴',\n  '' => '舒',\n  '' => '舜',\n  '' => '菩',\n  '' => '萃',\n  '' => '菸',\n  '' => '萍',\n  '' => '菠',\n  '' => '菅',\n  '' => '萋',\n  '' => '菁',\n  '' => '華',\n  '' => '菱',\n  '' => '菴',\n  '' => '著',\n  '' => '萊',\n  '' => '菰',\n  '' => '萌',\n  '' => '菌',\n  '' => '菽',\n  '' => '菲',\n  '' => '菊',\n  '' => '萸',\n  '' => '萎',\n  '' => '萄',\n  '' => '菜',\n  '' => '萇',\n  '' => '菔',\n  '' => '菟',\n  '' => '虛',\n  '' => '蛟',\n  '' => '蛙',\n  '' => '蛭',\n  '' => '蛔',\n  '' => '蛛',\n  '' => '蛤',\n  '' => '蛐',\n  '' => '蛞',\n  '' => '街',\n  '' => '裁',\n  '' => '裂',\n  '' => '袱',\n  '' => '覃',\n  '' => '視',\n  '' => '註',\n  '' => '詠',\n  '' => '評',\n  '' => '詞',\n  '' => '証',\n  '' => '詁',\n  '@' => '詔',\n  'A' => '詛',\n  'B' => '詐',\n  'C' => '詆',\n  'D' => '訴',\n  'E' => '診',\n  'F' => '訶',\n  'G' => '詖',\n  'H' => '象',\n  'I' => '貂',\n  'J' => '貯',\n  'K' => '貼',\n  'L' => '貳',\n  'M' => '貽',\n  'N' => '賁',\n  'O' => '費',\n  'P' => '賀',\n  'Q' => '貴',\n  'R' => '買',\n  'S' => '貶',\n  'T' => '貿',\n  'U' => '貸',\n  'V' => '越',\n  'W' => '超',\n  'X' => '趁',\n  'Y' => '跎',\n  'Z' => '距',\n  '[' => '跋',\n  '\\\\' => '跚',\n  ']' => '跑',\n  '^' => '跌',\n  '_' => '跛',\n  '`' => '跆',\n  'a' => '軻',\n  'b' => '軸',\n  'c' => '軼',\n  'd' => '辜',\n  'e' => '逮',\n  'f' => '逵',\n  'g' => '週',\n  'h' => '逸',\n  'i' => '進',\n  'j' => '逶',\n  'k' => '鄂',\n  'l' => '郵',\n  'm' => '鄉',\n  'n' => '郾',\n  'o' => '酣',\n  'p' => '酥',\n  'q' => '量',\n  'r' => '鈔',\n  's' => '鈕',\n  't' => '鈣',\n  'u' => '鈉',\n  'v' => '鈞',\n  'w' => '鈍',\n  'x' => '鈐',\n  'y' => '鈇',\n  'z' => '鈑',\n  '{' => '閔',\n  '|' => '閏',\n  '}' => '開',\n  '~' => '閑',\n  '' => '間',\n  '' => '閒',\n  '' => '閎',\n  '' => '隊',\n  '' => '階',\n  '' => '隋',\n  '' => '陽',\n  '' => '隅',\n  '' => '隆',\n  '' => '隍',\n  '' => '陲',\n  '' => '隄',\n  '' => '雁',\n  '' => '雅',\n  '' => '雄',\n  '' => '集',\n  '' => '雇',\n  '' => '雯',\n  '' => '雲',\n  '' => '韌',\n  '' => '項',\n  '' => '順',\n  '' => '須',\n  '' => '飧',\n  '' => '飪',\n  '' => '飯',\n  '' => '飩',\n  '' => '飲',\n  '' => '飭',\n  '' => '馮',\n  '' => '馭',\n  '' => '黃',\n  '' => '黍',\n  '' => '黑',\n  '' => '亂',\n  '' => '傭',\n  '' => '債',\n  '' => '傲',\n  '' => '傳',\n  '' => '僅',\n  '' => '傾',\n  '' => '催',\n  '' => '傷',\n  '' => '傻',\n  '' => '傯',\n  '' => '僇',\n  '' => '剿',\n  '' => '剷',\n  '' => '剽',\n  '' => '募',\n  '' => '勦',\n  '' => '勤',\n  '' => '勢',\n  '' => '勣',\n  '' => '匯',\n  '' => '嗟',\n  '' => '嗨',\n  '' => '嗓',\n  '' => '嗦',\n  '' => '嗎',\n  '' => '嗜',\n  '' => '嗇',\n  '' => '嗑',\n  '' => '嗣',\n  '' => '嗤',\n  '' => '嗯',\n  '' => '嗚',\n  '' => '嗡',\n  '' => '嗅',\n  '' => '嗆',\n  '' => '嗥',\n  '' => '嗉',\n  '' => '園',\n  '' => '圓',\n  '' => '塞',\n  '' => '塑',\n  '' => '塘',\n  '' => '塗',\n  '' => '塚',\n  '' => '塔',\n  '' => '填',\n  '' => '塌',\n  '' => '塭',\n  '' => '塊',\n  '' => '塢',\n  '' => '塒',\n  '' => '塋',\n  '' => '奧',\n  '' => '嫁',\n  '' => '嫉',\n  '' => '嫌',\n  '' => '媾',\n  '' => '媽',\n  '' => '媼',\n  '@' => '媳',\n  'A' => '嫂',\n  'B' => '媲',\n  'C' => '嵩',\n  'D' => '嵯',\n  'E' => '幌',\n  'F' => '幹',\n  'G' => '廉',\n  'H' => '廈',\n  'I' => '弒',\n  'J' => '彙',\n  'K' => '徬',\n  'L' => '微',\n  'M' => '愚',\n  'N' => '意',\n  'O' => '慈',\n  'P' => '感',\n  'Q' => '想',\n  'R' => '愛',\n  'S' => '惹',\n  'T' => '愁',\n  'U' => '愈',\n  'V' => '慎',\n  'W' => '慌',\n  'X' => '慄',\n  'Y' => '慍',\n  'Z' => '愾',\n  '[' => '愴',\n  '\\\\' => '愧',\n  ']' => '愍',\n  '^' => '愆',\n  '_' => '愷',\n  '`' => '戡',\n  'a' => '戢',\n  'b' => '搓',\n  'c' => '搾',\n  'd' => '搞',\n  'e' => '搪',\n  'f' => '搭',\n  'g' => '搽',\n  'h' => '搬',\n  'i' => '搏',\n  'j' => '搜',\n  'k' => '搔',\n  'l' => '損',\n  'm' => '搶',\n  'n' => '搖',\n  'o' => '搗',\n  'p' => '搆',\n  'q' => '敬',\n  'r' => '斟',\n  's' => '新',\n  't' => '暗',\n  'u' => '暉',\n  'v' => '暇',\n  'w' => '暈',\n  'x' => '暖',\n  'y' => '暄',\n  'z' => '暘',\n  '{' => '暍',\n  '|' => '會',\n  '}' => '榔',\n  '~' => '業',\n  '' => '楚',\n  '' => '楷',\n  '' => '楠',\n  '' => '楔',\n  '' => '極',\n  '' => '椰',\n  '' => '概',\n  '' => '楊',\n  '' => '楨',\n  '' => '楫',\n  '' => '楞',\n  '' => '楓',\n  '' => '楹',\n  '' => '榆',\n  '' => '楝',\n  '' => '楣',\n  '' => '楛',\n  '' => '歇',\n  '' => '歲',\n  '' => '毀',\n  '' => '殿',\n  '' => '毓',\n  '' => '毽',\n  '' => '溢',\n  '' => '溯',\n  '' => '滓',\n  '' => '溶',\n  '' => '滂',\n  '' => '源',\n  '' => '溝',\n  '' => '滇',\n  '' => '滅',\n  '' => '溥',\n  '' => '溘',\n  '' => '溼',\n  '' => '溺',\n  '' => '溫',\n  '' => '滑',\n  '' => '準',\n  '' => '溜',\n  '' => '滄',\n  '' => '滔',\n  '' => '溪',\n  '' => '溧',\n  '' => '溴',\n  '' => '煎',\n  '' => '煙',\n  '' => '煩',\n  '' => '煤',\n  '' => '煉',\n  '' => '照',\n  '' => '煜',\n  '' => '煬',\n  '' => '煦',\n  '' => '煌',\n  '' => '煥',\n  '' => '煞',\n  '' => '煆',\n  '' => '煨',\n  '' => '煖',\n  '' => '爺',\n  '' => '牒',\n  '' => '猷',\n  '' => '獅',\n  '' => '猿',\n  '' => '猾',\n  '' => '瑯',\n  '' => '瑚',\n  '' => '瑕',\n  '' => '瑟',\n  '' => '瑞',\n  '' => '瑁',\n  '' => '琿',\n  '' => '瑙',\n  '' => '瑛',\n  '' => '瑜',\n  '' => '當',\n  '' => '畸',\n  '' => '瘀',\n  '' => '痰',\n  '' => '瘁',\n  '' => '痲',\n  '' => '痱',\n  '' => '痺',\n  '' => '痿',\n  '' => '痴',\n  '' => '痳',\n  '' => '盞',\n  '' => '盟',\n  '' => '睛',\n  '' => '睫',\n  '' => '睦',\n  '' => '睞',\n  '' => '督',\n  '@' => '睹',\n  'A' => '睪',\n  'B' => '睬',\n  'C' => '睜',\n  'D' => '睥',\n  'E' => '睨',\n  'F' => '睢',\n  'G' => '矮',\n  'H' => '碎',\n  'I' => '碰',\n  'J' => '碗',\n  'K' => '碘',\n  'L' => '碌',\n  'M' => '碉',\n  'N' => '硼',\n  'O' => '碑',\n  'P' => '碓',\n  'Q' => '硿',\n  'R' => '祺',\n  'S' => '祿',\n  'T' => '禁',\n  'U' => '萬',\n  'V' => '禽',\n  'W' => '稜',\n  'X' => '稚',\n  'Y' => '稠',\n  'Z' => '稔',\n  '[' => '稟',\n  '\\\\' => '稞',\n  ']' => '窟',\n  '^' => '窠',\n  '_' => '筷',\n  '`' => '節',\n  'a' => '筠',\n  'b' => '筮',\n  'c' => '筧',\n  'd' => '粱',\n  'e' => '粳',\n  'f' => '粵',\n  'g' => '經',\n  'h' => '絹',\n  'i' => '綑',\n  'j' => '綁',\n  'k' => '綏',\n  'l' => '絛',\n  'm' => '置',\n  'n' => '罩',\n  'o' => '罪',\n  'p' => '署',\n  'q' => '義',\n  'r' => '羨',\n  's' => '群',\n  't' => '聖',\n  'u' => '聘',\n  'v' => '肆',\n  'w' => '肄',\n  'x' => '腱',\n  'y' => '腰',\n  'z' => '腸',\n  '{' => '腥',\n  '|' => '腮',\n  '}' => '腳',\n  '~' => '腫',\n  '' => '腹',\n  '' => '腺',\n  '' => '腦',\n  '' => '舅',\n  '' => '艇',\n  '' => '蒂',\n  '' => '葷',\n  '' => '落',\n  '' => '萱',\n  '' => '葵',\n  '' => '葦',\n  '' => '葫',\n  '' => '葉',\n  '' => '葬',\n  '' => '葛',\n  '' => '萼',\n  '' => '萵',\n  '' => '葡',\n  '' => '董',\n  '' => '葩',\n  '' => '葭',\n  '' => '葆',\n  '' => '虞',\n  '' => '虜',\n  '' => '號',\n  '' => '蛹',\n  '' => '蜓',\n  '' => '蜈',\n  '' => '蜇',\n  '' => '蜀',\n  '' => '蛾',\n  '' => '蛻',\n  '' => '蜂',\n  '' => '蜃',\n  '' => '蜆',\n  '' => '蜊',\n  '' => '衙',\n  '' => '裟',\n  '' => '裔',\n  '' => '裙',\n  '' => '補',\n  '' => '裘',\n  '' => '裝',\n  '' => '裡',\n  '' => '裊',\n  '' => '裕',\n  '' => '裒',\n  '' => '覜',\n  '' => '解',\n  '' => '詫',\n  '' => '該',\n  '' => '詳',\n  '' => '試',\n  '' => '詩',\n  '' => '詰',\n  '' => '誇',\n  '' => '詼',\n  '' => '詣',\n  '' => '誠',\n  '' => '話',\n  '' => '誅',\n  '' => '詭',\n  '' => '詢',\n  '' => '詮',\n  '' => '詬',\n  '' => '詹',\n  '' => '詻',\n  '' => '訾',\n  '' => '詨',\n  '' => '豢',\n  '' => '貊',\n  '' => '貉',\n  '' => '賊',\n  '' => '資',\n  '' => '賈',\n  '' => '賄',\n  '' => '貲',\n  '' => '賃',\n  '' => '賂',\n  '' => '賅',\n  '' => '跡',\n  '' => '跟',\n  '' => '跨',\n  '' => '路',\n  '' => '跳',\n  '' => '跺',\n  '' => '跪',\n  '' => '跤',\n  '' => '跦',\n  '' => '躲',\n  '' => '較',\n  '' => '載',\n  '' => '軾',\n  '' => '輊',\n  '@' => '辟',\n  'A' => '農',\n  'B' => '運',\n  'C' => '遊',\n  'D' => '道',\n  'E' => '遂',\n  'F' => '達',\n  'G' => '逼',\n  'H' => '違',\n  'I' => '遐',\n  'J' => '遇',\n  'K' => '遏',\n  'L' => '過',\n  'M' => '遍',\n  'N' => '遑',\n  'O' => '逾',\n  'P' => '遁',\n  'Q' => '鄒',\n  'R' => '鄗',\n  'S' => '酬',\n  'T' => '酪',\n  'U' => '酩',\n  'V' => '釉',\n  'W' => '鈷',\n  'X' => '鉗',\n  'Y' => '鈸',\n  'Z' => '鈽',\n  '[' => '鉀',\n  '\\\\' => '鈾',\n  ']' => '鉛',\n  '^' => '鉋',\n  '_' => '鉤',\n  '`' => '鉑',\n  'a' => '鈴',\n  'b' => '鉉',\n  'c' => '鉍',\n  'd' => '鉅',\n  'e' => '鈹',\n  'f' => '鈿',\n  'g' => '鉚',\n  'h' => '閘',\n  'i' => '隘',\n  'j' => '隔',\n  'k' => '隕',\n  'l' => '雍',\n  'm' => '雋',\n  'n' => '雉',\n  'o' => '雊',\n  'p' => '雷',\n  'q' => '電',\n  'r' => '雹',\n  's' => '零',\n  't' => '靖',\n  'u' => '靴',\n  'v' => '靶',\n  'w' => '預',\n  'x' => '頑',\n  'y' => '頓',\n  'z' => '頊',\n  '{' => '頒',\n  '|' => '頌',\n  '}' => '飼',\n  '~' => '飴',\n  '' => '飽',\n  '' => '飾',\n  '' => '馳',\n  '' => '馱',\n  '' => '馴',\n  '' => '髡',\n  '' => '鳩',\n  '' => '麂',\n  '' => '鼎',\n  '' => '鼓',\n  '' => '鼠',\n  '' => '僧',\n  '' => '僮',\n  '' => '僥',\n  '' => '僖',\n  '' => '僭',\n  '' => '僚',\n  '' => '僕',\n  '' => '像',\n  '' => '僑',\n  '' => '僱',\n  '' => '僎',\n  '' => '僩',\n  '' => '兢',\n  '' => '凳',\n  '' => '劃',\n  '' => '劂',\n  '' => '匱',\n  '' => '厭',\n  '' => '嗾',\n  '' => '嘀',\n  '' => '嘛',\n  '' => '嘗',\n  '' => '嗽',\n  '' => '嘔',\n  '' => '嘆',\n  '' => '嘉',\n  '' => '嘍',\n  '' => '嘎',\n  '' => '嗷',\n  '' => '嘖',\n  '' => '嘟',\n  '' => '嘈',\n  '' => '嘐',\n  '' => '嗶',\n  '' => '團',\n  '' => '圖',\n  '' => '塵',\n  '' => '塾',\n  '' => '境',\n  '' => '墓',\n  '' => '墊',\n  '' => '塹',\n  '' => '墅',\n  '' => '塽',\n  '' => '壽',\n  '' => '夥',\n  '' => '夢',\n  '' => '夤',\n  '' => '奪',\n  '' => '奩',\n  '' => '嫡',\n  '' => '嫦',\n  '' => '嫩',\n  '' => '嫗',\n  '' => '嫖',\n  '' => '嫘',\n  '' => '嫣',\n  '' => '孵',\n  '' => '寞',\n  '' => '寧',\n  '' => '寡',\n  '' => '寥',\n  '' => '實',\n  '' => '寨',\n  '' => '寢',\n  '' => '寤',\n  '' => '察',\n  '' => '對',\n  '' => '屢',\n  '' => '嶄',\n  '' => '嶇',\n  '' => '幛',\n  '' => '幣',\n  '' => '幕',\n  '' => '幗',\n  '' => '幔',\n  '' => '廓',\n  '' => '廖',\n  '' => '弊',\n  '' => '彆',\n  '' => '彰',\n  '' => '徹',\n  '' => '慇',\n  '@' => '愿',\n  'A' => '態',\n  'B' => '慷',\n  'C' => '慢',\n  'D' => '慣',\n  'E' => '慟',\n  'F' => '慚',\n  'G' => '慘',\n  'H' => '慵',\n  'I' => '截',\n  'J' => '撇',\n  'K' => '摘',\n  'L' => '摔',\n  'M' => '撤',\n  'N' => '摸',\n  'O' => '摟',\n  'P' => '摺',\n  'Q' => '摑',\n  'R' => '摧',\n  'S' => '搴',\n  'T' => '摭',\n  'U' => '摻',\n  'V' => '敲',\n  'W' => '斡',\n  'X' => '旗',\n  'Y' => '旖',\n  'Z' => '暢',\n  '[' => '暨',\n  '\\\\' => '暝',\n  ']' => '榜',\n  '^' => '榨',\n  '_' => '榕',\n  '`' => '槁',\n  'a' => '榮',\n  'b' => '槓',\n  'c' => '構',\n  'd' => '榛',\n  'e' => '榷',\n  'f' => '榻',\n  'g' => '榫',\n  'h' => '榴',\n  'i' => '槐',\n  'j' => '槍',\n  'k' => '榭',\n  'l' => '槌',\n  'm' => '榦',\n  'n' => '槃',\n  'o' => '榣',\n  'p' => '歉',\n  'q' => '歌',\n  'r' => '氳',\n  's' => '漳',\n  't' => '演',\n  'u' => '滾',\n  'v' => '漓',\n  'w' => '滴',\n  'x' => '漩',\n  'y' => '漾',\n  'z' => '漠',\n  '{' => '漬',\n  '|' => '漏',\n  '}' => '漂',\n  '~' => '漢',\n  '' => '滿',\n  '' => '滯',\n  '' => '漆',\n  '' => '漱',\n  '' => '漸',\n  '' => '漲',\n  '' => '漣',\n  '' => '漕',\n  '' => '漫',\n  '' => '漯',\n  '' => '澈',\n  '' => '漪',\n  '' => '滬',\n  '' => '漁',\n  '' => '滲',\n  '' => '滌',\n  '' => '滷',\n  '' => '熔',\n  '' => '熙',\n  '' => '煽',\n  '' => '熊',\n  '' => '熄',\n  '' => '熒',\n  '' => '爾',\n  '' => '犒',\n  '' => '犖',\n  '' => '獄',\n  '' => '獐',\n  '' => '瑤',\n  '' => '瑣',\n  '' => '瑪',\n  '' => '瑰',\n  '' => '瑭',\n  '' => '甄',\n  '' => '疑',\n  '' => '瘧',\n  '' => '瘍',\n  '' => '瘋',\n  '' => '瘉',\n  '' => '瘓',\n  '' => '盡',\n  '' => '監',\n  '' => '瞄',\n  '' => '睽',\n  '' => '睿',\n  '' => '睡',\n  '' => '磁',\n  '' => '碟',\n  '' => '碧',\n  '' => '碳',\n  '' => '碩',\n  '' => '碣',\n  '' => '禎',\n  '' => '福',\n  '' => '禍',\n  '' => '種',\n  '' => '稱',\n  '' => '窪',\n  '' => '窩',\n  '' => '竭',\n  '' => '端',\n  '' => '管',\n  '' => '箕',\n  '' => '箋',\n  '' => '筵',\n  '' => '算',\n  '' => '箝',\n  '' => '箔',\n  '' => '箏',\n  '' => '箸',\n  '' => '箇',\n  '' => '箄',\n  '' => '粹',\n  '' => '粽',\n  '' => '精',\n  '' => '綻',\n  '' => '綰',\n  '' => '綜',\n  '' => '綽',\n  '' => '綾',\n  '' => '綠',\n  '' => '緊',\n  '' => '綴',\n  '' => '網',\n  '' => '綱',\n  '' => '綺',\n  '' => '綢',\n  '' => '綿',\n  '' => '綵',\n  '' => '綸',\n  '' => '維',\n  '' => '緒',\n  '' => '緇',\n  '' => '綬',\n  '@' => '罰',\n  'A' => '翠',\n  'B' => '翡',\n  'C' => '翟',\n  'D' => '聞',\n  'E' => '聚',\n  'F' => '肇',\n  'G' => '腐',\n  'H' => '膀',\n  'I' => '膏',\n  'J' => '膈',\n  'K' => '膊',\n  'L' => '腿',\n  'M' => '膂',\n  'N' => '臧',\n  'O' => '臺',\n  'P' => '與',\n  'Q' => '舔',\n  'R' => '舞',\n  'S' => '艋',\n  'T' => '蓉',\n  'U' => '蒿',\n  'V' => '蓆',\n  'W' => '蓄',\n  'X' => '蒙',\n  'Y' => '蒞',\n  'Z' => '蒲',\n  '[' => '蒜',\n  '\\\\' => '蓋',\n  ']' => '蒸',\n  '^' => '蓀',\n  '_' => '蓓',\n  '`' => '蒐',\n  'a' => '蒼',\n  'b' => '蓑',\n  'c' => '蓊',\n  'd' => '蜿',\n  'e' => '蜜',\n  'f' => '蜻',\n  'g' => '蜢',\n  'h' => '蜥',\n  'i' => '蜴',\n  'j' => '蜘',\n  'k' => '蝕',\n  'l' => '蜷',\n  'm' => '蜩',\n  'n' => '裳',\n  'o' => '褂',\n  'p' => '裴',\n  'q' => '裹',\n  'r' => '裸',\n  's' => '製',\n  't' => '裨',\n  'u' => '褚',\n  'v' => '裯',\n  'w' => '誦',\n  'x' => '誌',\n  'y' => '語',\n  'z' => '誣',\n  '{' => '認',\n  '|' => '誡',\n  '}' => '誓',\n  '~' => '誤',\n  '' => '說',\n  '' => '誥',\n  '' => '誨',\n  '' => '誘',\n  '' => '誑',\n  '' => '誚',\n  '' => '誧',\n  '' => '豪',\n  '' => '貍',\n  '' => '貌',\n  '' => '賓',\n  '' => '賑',\n  '' => '賒',\n  '' => '赫',\n  '' => '趙',\n  '' => '趕',\n  '' => '跼',\n  '' => '輔',\n  '' => '輒',\n  '' => '輕',\n  '' => '輓',\n  '' => '辣',\n  '' => '遠',\n  '' => '遘',\n  '' => '遜',\n  '' => '遣',\n  '' => '遙',\n  '' => '遞',\n  '' => '遢',\n  '' => '遝',\n  '' => '遛',\n  '' => '鄙',\n  '' => '鄘',\n  '' => '鄞',\n  '' => '酵',\n  '' => '酸',\n  '' => '酷',\n  '' => '酴',\n  '' => '鉸',\n  '' => '銀',\n  '' => '銅',\n  '' => '銘',\n  '' => '銖',\n  '' => '鉻',\n  '' => '銓',\n  '' => '銜',\n  '' => '銨',\n  '' => '鉼',\n  '' => '銑',\n  '' => '閡',\n  '' => '閨',\n  '' => '閩',\n  '' => '閣',\n  '' => '閥',\n  '' => '閤',\n  '' => '隙',\n  '' => '障',\n  '' => '際',\n  '' => '雌',\n  '' => '雒',\n  '' => '需',\n  '' => '靼',\n  '' => '鞅',\n  '' => '韶',\n  '' => '頗',\n  '' => '領',\n  '' => '颯',\n  '' => '颱',\n  '' => '餃',\n  '' => '餅',\n  '' => '餌',\n  '' => '餉',\n  '' => '駁',\n  '' => '骯',\n  '' => '骰',\n  '' => '髦',\n  '' => '魁',\n  '' => '魂',\n  '' => '鳴',\n  '' => '鳶',\n  '' => '鳳',\n  '' => '麼',\n  '' => '鼻',\n  '' => '齊',\n  '' => '億',\n  '' => '儀',\n  '' => '僻',\n  '' => '僵',\n  '' => '價',\n  '' => '儂',\n  '' => '儈',\n  '' => '儉',\n  '' => '儅',\n  '' => '凜',\n  '@' => '劇',\n  'A' => '劈',\n  'B' => '劉',\n  'C' => '劍',\n  'D' => '劊',\n  'E' => '勰',\n  'F' => '厲',\n  'G' => '嘮',\n  'H' => '嘻',\n  'I' => '嘹',\n  'J' => '嘲',\n  'K' => '嘿',\n  'L' => '嘴',\n  'M' => '嘩',\n  'N' => '噓',\n  'O' => '噎',\n  'P' => '噗',\n  'Q' => '噴',\n  'R' => '嘶',\n  'S' => '嘯',\n  'T' => '嘰',\n  'U' => '墀',\n  'V' => '墟',\n  'W' => '增',\n  'X' => '墳',\n  'Y' => '墜',\n  'Z' => '墮',\n  '[' => '墩',\n  '\\\\' => '墦',\n  ']' => '奭',\n  '^' => '嬉',\n  '_' => '嫻',\n  '`' => '嬋',\n  'a' => '嫵',\n  'b' => '嬌',\n  'c' => '嬈',\n  'd' => '寮',\n  'e' => '寬',\n  'f' => '審',\n  'g' => '寫',\n  'h' => '層',\n  'i' => '履',\n  'j' => '嶝',\n  'k' => '嶔',\n  'l' => '幢',\n  'm' => '幟',\n  'n' => '幡',\n  'o' => '廢',\n  'p' => '廚',\n  'q' => '廟',\n  'r' => '廝',\n  's' => '廣',\n  't' => '廠',\n  'u' => '彈',\n  'v' => '影',\n  'w' => '德',\n  'x' => '徵',\n  'y' => '慶',\n  'z' => '慧',\n  '{' => '慮',\n  '|' => '慝',\n  '}' => '慕',\n  '~' => '憂',\n  '' => '慼',\n  '' => '慰',\n  '' => '慫',\n  '' => '慾',\n  '' => '憧',\n  '' => '憐',\n  '' => '憫',\n  '' => '憎',\n  '' => '憬',\n  '' => '憚',\n  '' => '憤',\n  '' => '憔',\n  '' => '憮',\n  '' => '戮',\n  '' => '摩',\n  '' => '摯',\n  '' => '摹',\n  '' => '撞',\n  '' => '撲',\n  '' => '撈',\n  '' => '撐',\n  '' => '撰',\n  '' => '撥',\n  '' => '撓',\n  '' => '撕',\n  '' => '撩',\n  '' => '撒',\n  '' => '撮',\n  '' => '播',\n  '' => '撫',\n  '' => '撚',\n  '' => '撬',\n  '' => '撙',\n  '' => '撢',\n  '' => '撳',\n  '' => '敵',\n  '' => '敷',\n  '' => '數',\n  '' => '暮',\n  '' => '暫',\n  '' => '暴',\n  '' => '暱',\n  '' => '樣',\n  '' => '樟',\n  '' => '槨',\n  '' => '樁',\n  '' => '樞',\n  '' => '標',\n  '' => '槽',\n  '' => '模',\n  '' => '樓',\n  '' => '樊',\n  '' => '槳',\n  '' => '樂',\n  '' => '樅',\n  '' => '槭',\n  '' => '樑',\n  '' => '歐',\n  '' => '歎',\n  '' => '殤',\n  '' => '毅',\n  '' => '毆',\n  '' => '漿',\n  '' => '潼',\n  '' => '澄',\n  '' => '潑',\n  '' => '潦',\n  '' => '潔',\n  '' => '澆',\n  '' => '潭',\n  '' => '潛',\n  '' => '潸',\n  '' => '潮',\n  '' => '澎',\n  '' => '潺',\n  '' => '潰',\n  '' => '潤',\n  '' => '澗',\n  '' => '潘',\n  '' => '滕',\n  '' => '潯',\n  '' => '潠',\n  '' => '潟',\n  '' => '熟',\n  '' => '熬',\n  '' => '熱',\n  '' => '熨',\n  '' => '牖',\n  '' => '犛',\n  '' => '獎',\n  '' => '獗',\n  '' => '瑩',\n  '' => '璋',\n  '' => '璃',\n  '@' => '瑾',\n  'A' => '璀',\n  'B' => '畿',\n  'C' => '瘠',\n  'D' => '瘩',\n  'E' => '瘟',\n  'F' => '瘤',\n  'G' => '瘦',\n  'H' => '瘡',\n  'I' => '瘢',\n  'J' => '皚',\n  'K' => '皺',\n  'L' => '盤',\n  'M' => '瞎',\n  'N' => '瞇',\n  'O' => '瞌',\n  'P' => '瞑',\n  'Q' => '瞋',\n  'R' => '磋',\n  'S' => '磅',\n  'T' => '確',\n  'U' => '磊',\n  'V' => '碾',\n  'W' => '磕',\n  'X' => '碼',\n  'Y' => '磐',\n  'Z' => '稿',\n  '[' => '稼',\n  '\\\\' => '穀',\n  ']' => '稽',\n  '^' => '稷',\n  '_' => '稻',\n  '`' => '窯',\n  'a' => '窮',\n  'b' => '箭',\n  'c' => '箱',\n  'd' => '範',\n  'e' => '箴',\n  'f' => '篆',\n  'g' => '篇',\n  'h' => '篁',\n  'i' => '箠',\n  'j' => '篌',\n  'k' => '糊',\n  'l' => '締',\n  'm' => '練',\n  'n' => '緯',\n  'o' => '緻',\n  'p' => '緘',\n  'q' => '緬',\n  'r' => '緝',\n  's' => '編',\n  't' => '緣',\n  'u' => '線',\n  'v' => '緞',\n  'w' => '緩',\n  'x' => '綞',\n  'y' => '緙',\n  'z' => '緲',\n  '{' => '緹',\n  '|' => '罵',\n  '}' => '罷',\n  '~' => '羯',\n  '' => '翩',\n  '' => '耦',\n  '' => '膛',\n  '' => '膜',\n  '' => '膝',\n  '' => '膠',\n  '' => '膚',\n  '' => '膘',\n  '' => '蔗',\n  '' => '蔽',\n  '' => '蔚',\n  '' => '蓮',\n  '' => '蔬',\n  '' => '蔭',\n  '' => '蔓',\n  '' => '蔑',\n  '' => '蔣',\n  '' => '蔡',\n  '' => '蔔',\n  '' => '蓬',\n  '' => '蔥',\n  '' => '蓿',\n  '' => '蔆',\n  '' => '螂',\n  '' => '蝴',\n  '' => '蝶',\n  '' => '蝠',\n  '' => '蝦',\n  '' => '蝸',\n  '' => '蝨',\n  '' => '蝙',\n  '' => '蝗',\n  '' => '蝌',\n  '' => '蝓',\n  '' => '衛',\n  '' => '衝',\n  '' => '褐',\n  '' => '複',\n  '' => '褒',\n  '' => '褓',\n  '' => '褕',\n  '' => '褊',\n  '' => '誼',\n  '' => '諒',\n  '' => '談',\n  '' => '諄',\n  '' => '誕',\n  '' => '請',\n  '' => '諸',\n  '' => '課',\n  '' => '諉',\n  '' => '諂',\n  '' => '調',\n  '' => '誰',\n  '' => '論',\n  '' => '諍',\n  '' => '誶',\n  '' => '誹',\n  '' => '諛',\n  '' => '豌',\n  '' => '豎',\n  '' => '豬',\n  '' => '賠',\n  '' => '賞',\n  '' => '賦',\n  '' => '賤',\n  '' => '賬',\n  '' => '賭',\n  '' => '賢',\n  '' => '賣',\n  '' => '賜',\n  '' => '質',\n  '' => '賡',\n  '' => '赭',\n  '' => '趟',\n  '' => '趣',\n  '' => '踫',\n  '' => '踐',\n  '' => '踝',\n  '' => '踢',\n  '' => '踏',\n  '' => '踩',\n  '' => '踟',\n  '' => '踡',\n  '' => '踞',\n  '' => '躺',\n  '' => '輝',\n  '' => '輛',\n  '' => '輟',\n  '' => '輩',\n  '' => '輦',\n  '' => '輪',\n  '' => '輜',\n  '' => '輞',\n  '@' => '輥',\n  'A' => '適',\n  'B' => '遮',\n  'C' => '遨',\n  'D' => '遭',\n  'E' => '遷',\n  'F' => '鄰',\n  'G' => '鄭',\n  'H' => '鄧',\n  'I' => '鄱',\n  'J' => '醇',\n  'K' => '醉',\n  'L' => '醋',\n  'M' => '醃',\n  'N' => '鋅',\n  'O' => '銻',\n  'P' => '銷',\n  'Q' => '鋪',\n  'R' => '銬',\n  'S' => '鋤',\n  'T' => '鋁',\n  'U' => '銳',\n  'V' => '銼',\n  'W' => '鋒',\n  'X' => '鋇',\n  'Y' => '鋰',\n  'Z' => '銲',\n  '[' => '閭',\n  '\\\\' => '閱',\n  ']' => '霄',\n  '^' => '霆',\n  '_' => '震',\n  '`' => '霉',\n  'a' => '靠',\n  'b' => '鞍',\n  'c' => '鞋',\n  'd' => '鞏',\n  'e' => '頡',\n  'f' => '頫',\n  'g' => '頜',\n  'h' => '颳',\n  'i' => '養',\n  'j' => '餓',\n  'k' => '餒',\n  'l' => '餘',\n  'm' => '駝',\n  'n' => '駐',\n  'o' => '駟',\n  'p' => '駛',\n  'q' => '駑',\n  'r' => '駕',\n  's' => '駒',\n  't' => '駙',\n  'u' => '骷',\n  'v' => '髮',\n  'w' => '髯',\n  'x' => '鬧',\n  'y' => '魅',\n  'z' => '魄',\n  '{' => '魷',\n  '|' => '魯',\n  '}' => '鴆',\n  '~' => '鴉',\n  '' => '鴃',\n  '' => '麩',\n  '' => '麾',\n  '' => '黎',\n  '' => '墨',\n  '' => '齒',\n  '' => '儒',\n  '' => '儘',\n  '' => '儔',\n  '' => '儐',\n  '' => '儕',\n  '' => '冀',\n  '' => '冪',\n  '' => '凝',\n  '' => '劑',\n  '' => '劓',\n  '' => '勳',\n  '' => '噙',\n  '' => '噫',\n  '' => '噹',\n  '' => '噩',\n  '' => '噤',\n  '' => '噸',\n  '' => '噪',\n  '' => '器',\n  '' => '噥',\n  '' => '噱',\n  '' => '噯',\n  '' => '噬',\n  '' => '噢',\n  '' => '噶',\n  '' => '壁',\n  '' => '墾',\n  '' => '壇',\n  '' => '壅',\n  '' => '奮',\n  '' => '嬝',\n  '' => '嬴',\n  '' => '學',\n  '' => '寰',\n  '' => '導',\n  '' => '彊',\n  '' => '憲',\n  '' => '憑',\n  '' => '憩',\n  '' => '憊',\n  '' => '懍',\n  '' => '憶',\n  '' => '憾',\n  '' => '懊',\n  '' => '懈',\n  '' => '戰',\n  '' => '擅',\n  '' => '擁',\n  '' => '擋',\n  '' => '撻',\n  '' => '撼',\n  '' => '據',\n  '' => '擄',\n  '' => '擇',\n  '' => '擂',\n  '' => '操',\n  '' => '撿',\n  '' => '擒',\n  '' => '擔',\n  '' => '撾',\n  '' => '整',\n  '' => '曆',\n  '' => '曉',\n  '' => '暹',\n  '' => '曄',\n  '' => '曇',\n  '' => '暸',\n  '' => '樽',\n  '' => '樸',\n  '' => '樺',\n  '' => '橙',\n  '' => '橫',\n  '' => '橘',\n  '' => '樹',\n  '' => '橄',\n  '' => '橢',\n  '' => '橡',\n  '' => '橋',\n  '' => '橇',\n  '' => '樵',\n  '' => '機',\n  '' => '橈',\n  '' => '歙',\n  '' => '歷',\n  '' => '氅',\n  '' => '濂',\n  '' => '澱',\n  '' => '澡',\n  '@' => '濃',\n  'A' => '澤',\n  'B' => '濁',\n  'C' => '澧',\n  'D' => '澳',\n  'E' => '激',\n  'F' => '澹',\n  'G' => '澶',\n  'H' => '澦',\n  'I' => '澠',\n  'J' => '澴',\n  'K' => '熾',\n  'L' => '燉',\n  'M' => '燐',\n  'N' => '燒',\n  'O' => '燈',\n  'P' => '燕',\n  'Q' => '熹',\n  'R' => '燎',\n  'S' => '燙',\n  'T' => '燜',\n  'U' => '燃',\n  'V' => '燄',\n  'W' => '獨',\n  'X' => '璜',\n  'Y' => '璣',\n  'Z' => '璘',\n  '[' => '璟',\n  '\\\\' => '璞',\n  ']' => '瓢',\n  '^' => '甌',\n  '_' => '甍',\n  '`' => '瘴',\n  'a' => '瘸',\n  'b' => '瘺',\n  'c' => '盧',\n  'd' => '盥',\n  'e' => '瞠',\n  'f' => '瞞',\n  'g' => '瞟',\n  'h' => '瞥',\n  'i' => '磨',\n  'j' => '磚',\n  'k' => '磬',\n  'l' => '磧',\n  'm' => '禦',\n  'n' => '積',\n  'o' => '穎',\n  'p' => '穆',\n  'q' => '穌',\n  'r' => '穋',\n  's' => '窺',\n  't' => '篙',\n  'u' => '簑',\n  'v' => '築',\n  'w' => '篤',\n  'x' => '篛',\n  'y' => '篡',\n  'z' => '篩',\n  '{' => '篦',\n  '|' => '糕',\n  '}' => '糖',\n  '~' => '縊',\n  '' => '縑',\n  '' => '縈',\n  '' => '縛',\n  '' => '縣',\n  '' => '縞',\n  '' => '縝',\n  '' => '縉',\n  '' => '縐',\n  '' => '罹',\n  '' => '羲',\n  '' => '翰',\n  '' => '翱',\n  '' => '翮',\n  '' => '耨',\n  '' => '膳',\n  '' => '膩',\n  '' => '膨',\n  '' => '臻',\n  '' => '興',\n  '' => '艘',\n  '' => '艙',\n  '' => '蕊',\n  '' => '蕙',\n  '' => '蕈',\n  '' => '蕨',\n  '' => '蕩',\n  '' => '蕃',\n  '' => '蕉',\n  '' => '蕭',\n  '' => '蕪',\n  '' => '蕞',\n  '' => '螃',\n  '' => '螟',\n  '' => '螞',\n  '' => '螢',\n  '' => '融',\n  '' => '衡',\n  '' => '褪',\n  '' => '褲',\n  '' => '褥',\n  '' => '褫',\n  '' => '褡',\n  '' => '親',\n  '' => '覦',\n  '' => '諦',\n  '' => '諺',\n  '' => '諫',\n  '' => '諱',\n  '' => '謀',\n  '' => '諜',\n  '' => '諧',\n  '' => '諮',\n  '' => '諾',\n  '' => '謁',\n  '' => '謂',\n  '' => '諷',\n  '' => '諭',\n  '' => '諳',\n  '' => '諶',\n  '' => '諼',\n  '' => '豫',\n  '' => '豭',\n  '' => '貓',\n  '' => '賴',\n  '' => '蹄',\n  '' => '踱',\n  '' => '踴',\n  '' => '蹂',\n  '' => '踹',\n  '' => '踵',\n  '' => '輻',\n  '' => '輯',\n  '' => '輸',\n  '' => '輳',\n  '' => '辨',\n  '' => '辦',\n  '' => '遵',\n  '' => '遴',\n  '' => '選',\n  '' => '遲',\n  '' => '遼',\n  '' => '遺',\n  '' => '鄴',\n  '' => '醒',\n  '' => '錠',\n  '' => '錶',\n  '' => '鋸',\n  '' => '錳',\n  '' => '錯',\n  '' => '錢',\n  '' => '鋼',\n  '' => '錫',\n  '' => '錄',\n  '' => '錚',\n  '@' => '錐',\n  'A' => '錦',\n  'B' => '錡',\n  'C' => '錕',\n  'D' => '錮',\n  'E' => '錙',\n  'F' => '閻',\n  'G' => '隧',\n  'H' => '隨',\n  'I' => '險',\n  'J' => '雕',\n  'K' => '霎',\n  'L' => '霑',\n  'M' => '霖',\n  'N' => '霍',\n  'O' => '霓',\n  'P' => '霏',\n  'Q' => '靛',\n  'R' => '靜',\n  'S' => '靦',\n  'T' => '鞘',\n  'U' => '頰',\n  'V' => '頸',\n  'W' => '頻',\n  'X' => '頷',\n  'Y' => '頭',\n  'Z' => '頹',\n  '[' => '頤',\n  '\\\\' => '餐',\n  ']' => '館',\n  '^' => '餞',\n  '_' => '餛',\n  '`' => '餡',\n  'a' => '餚',\n  'b' => '駭',\n  'c' => '駢',\n  'd' => '駱',\n  'e' => '骸',\n  'f' => '骼',\n  'g' => '髻',\n  'h' => '髭',\n  'i' => '鬨',\n  'j' => '鮑',\n  'k' => '鴕',\n  'l' => '鴣',\n  'm' => '鴦',\n  'n' => '鴨',\n  'o' => '鴒',\n  'p' => '鴛',\n  'q' => '默',\n  'r' => '黔',\n  's' => '龍',\n  't' => '龜',\n  'u' => '優',\n  'v' => '償',\n  'w' => '儡',\n  'x' => '儲',\n  'y' => '勵',\n  'z' => '嚎',\n  '{' => '嚀',\n  '|' => '嚐',\n  '}' => '嚅',\n  '~' => '嚇',\n  '' => '嚏',\n  '' => '壕',\n  '' => '壓',\n  '' => '壑',\n  '' => '壎',\n  '' => '嬰',\n  '' => '嬪',\n  '' => '嬤',\n  '' => '孺',\n  '' => '尷',\n  '' => '屨',\n  '' => '嶼',\n  '' => '嶺',\n  '' => '嶽',\n  '' => '嶸',\n  '' => '幫',\n  '' => '彌',\n  '' => '徽',\n  '' => '應',\n  '' => '懂',\n  '' => '懇',\n  '' => '懦',\n  '' => '懋',\n  '' => '戲',\n  '' => '戴',\n  '' => '擎',\n  '' => '擊',\n  '' => '擘',\n  '' => '擠',\n  '' => '擰',\n  '' => '擦',\n  '' => '擬',\n  '' => '擱',\n  '' => '擢',\n  '' => '擭',\n  '' => '斂',\n  '' => '斃',\n  '' => '曙',\n  '' => '曖',\n  '' => '檀',\n  '' => '檔',\n  '' => '檄',\n  '' => '檢',\n  '' => '檜',\n  '' => '櫛',\n  '' => '檣',\n  '' => '橾',\n  '' => '檗',\n  '' => '檐',\n  '' => '檠',\n  '' => '歜',\n  '' => '殮',\n  '' => '毚',\n  '' => '氈',\n  '' => '濘',\n  '' => '濱',\n  '' => '濟',\n  '' => '濠',\n  '' => '濛',\n  '' => '濤',\n  '' => '濫',\n  '' => '濯',\n  '' => '澀',\n  '' => '濬',\n  '' => '濡',\n  '' => '濩',\n  '' => '濕',\n  '' => '濮',\n  '' => '濰',\n  '' => '燧',\n  '' => '營',\n  '' => '燮',\n  '' => '燦',\n  '' => '燥',\n  '' => '燭',\n  '' => '燬',\n  '' => '燴',\n  '' => '燠',\n  '' => '爵',\n  '' => '牆',\n  '' => '獰',\n  '' => '獲',\n  '' => '璩',\n  '' => '環',\n  '' => '璦',\n  '' => '璨',\n  '' => '癆',\n  '' => '療',\n  '' => '癌',\n  '' => '盪',\n  '' => '瞳',\n  '' => '瞪',\n  '' => '瞰',\n  '' => '瞬',\n  '@' => '瞧',\n  'A' => '瞭',\n  'B' => '矯',\n  'C' => '磷',\n  'D' => '磺',\n  'E' => '磴',\n  'F' => '磯',\n  'G' => '礁',\n  'H' => '禧',\n  'I' => '禪',\n  'J' => '穗',\n  'K' => '窿',\n  'L' => '簇',\n  'M' => '簍',\n  'N' => '篾',\n  'O' => '篷',\n  'P' => '簌',\n  'Q' => '篠',\n  'R' => '糠',\n  'S' => '糜',\n  'T' => '糞',\n  'U' => '糢',\n  'V' => '糟',\n  'W' => '糙',\n  'X' => '糝',\n  'Y' => '縮',\n  'Z' => '績',\n  '[' => '繆',\n  '\\\\' => '縷',\n  ']' => '縲',\n  '^' => '繃',\n  '_' => '縫',\n  '`' => '總',\n  'a' => '縱',\n  'b' => '繅',\n  'c' => '繁',\n  'd' => '縴',\n  'e' => '縹',\n  'f' => '繈',\n  'g' => '縵',\n  'h' => '縿',\n  'i' => '縯',\n  'j' => '罄',\n  'k' => '翳',\n  'l' => '翼',\n  'm' => '聱',\n  'n' => '聲',\n  'o' => '聰',\n  'p' => '聯',\n  'q' => '聳',\n  'r' => '臆',\n  's' => '臃',\n  't' => '膺',\n  'u' => '臂',\n  'v' => '臀',\n  'w' => '膿',\n  'x' => '膽',\n  'y' => '臉',\n  'z' => '膾',\n  '{' => '臨',\n  '|' => '舉',\n  '}' => '艱',\n  '~' => '薪',\n  '' => '薄',\n  '' => '蕾',\n  '' => '薜',\n  '' => '薑',\n  '' => '薔',\n  '' => '薯',\n  '' => '薛',\n  '' => '薇',\n  '' => '薨',\n  '' => '薊',\n  '' => '虧',\n  '' => '蟀',\n  '' => '蟑',\n  '' => '螳',\n  '' => '蟒',\n  '' => '蟆',\n  '' => '螫',\n  '' => '螻',\n  '' => '螺',\n  '' => '蟈',\n  '' => '蟋',\n  '' => '褻',\n  '' => '褶',\n  '' => '襄',\n  '' => '褸',\n  '' => '褽',\n  '' => '覬',\n  '' => '謎',\n  '' => '謗',\n  '' => '謙',\n  '' => '講',\n  '' => '謊',\n  '' => '謠',\n  '' => '謝',\n  '' => '謄',\n  '' => '謐',\n  '' => '豁',\n  '' => '谿',\n  '' => '豳',\n  '' => '賺',\n  '' => '賽',\n  '' => '購',\n  '' => '賸',\n  '' => '賻',\n  '' => '趨',\n  '' => '蹉',\n  '' => '蹋',\n  '' => '蹈',\n  '' => '蹊',\n  '' => '轄',\n  '' => '輾',\n  '' => '轂',\n  '' => '轅',\n  '' => '輿',\n  '' => '避',\n  '' => '遽',\n  '' => '還',\n  '' => '邁',\n  '' => '邂',\n  '' => '邀',\n  '' => '鄹',\n  '' => '醣',\n  '' => '醞',\n  '' => '醜',\n  '' => '鍍',\n  '' => '鎂',\n  '' => '錨',\n  '' => '鍵',\n  '' => '鍊',\n  '' => '鍥',\n  '' => '鍋',\n  '' => '錘',\n  '' => '鍾',\n  '' => '鍬',\n  '' => '鍛',\n  '' => '鍰',\n  '' => '鍚',\n  '' => '鍔',\n  '' => '闊',\n  '' => '闋',\n  '' => '闌',\n  '' => '闈',\n  '' => '闆',\n  '' => '隱',\n  '' => '隸',\n  '' => '雖',\n  '' => '霜',\n  '' => '霞',\n  '' => '鞠',\n  '' => '韓',\n  '' => '顆',\n  '' => '颶',\n  '' => '餵',\n  '' => '騁',\n  '@' => '駿',\n  'A' => '鮮',\n  'B' => '鮫',\n  'C' => '鮪',\n  'D' => '鮭',\n  'E' => '鴻',\n  'F' => '鴿',\n  'G' => '麋',\n  'H' => '黏',\n  'I' => '點',\n  'J' => '黜',\n  'K' => '黝',\n  'L' => '黛',\n  'M' => '鼾',\n  'N' => '齋',\n  'O' => '叢',\n  'P' => '嚕',\n  'Q' => '嚮',\n  'R' => '壙',\n  'S' => '壘',\n  'T' => '嬸',\n  'U' => '彝',\n  'V' => '懣',\n  'W' => '戳',\n  'X' => '擴',\n  'Y' => '擲',\n  'Z' => '擾',\n  '[' => '攆',\n  '\\\\' => '擺',\n  ']' => '擻',\n  '^' => '擷',\n  '_' => '斷',\n  '`' => '曜',\n  'a' => '朦',\n  'b' => '檳',\n  'c' => '檬',\n  'd' => '櫃',\n  'e' => '檻',\n  'f' => '檸',\n  'g' => '櫂',\n  'h' => '檮',\n  'i' => '檯',\n  'j' => '歟',\n  'k' => '歸',\n  'l' => '殯',\n  'm' => '瀉',\n  'n' => '瀋',\n  'o' => '濾',\n  'p' => '瀆',\n  'q' => '濺',\n  'r' => '瀑',\n  's' => '瀏',\n  't' => '燻',\n  'u' => '燼',\n  'v' => '燾',\n  'w' => '燸',\n  'x' => '獷',\n  'y' => '獵',\n  'z' => '璧',\n  '{' => '璿',\n  '|' => '甕',\n  '}' => '癖',\n  '~' => '癘',\n  '¡' => '癒',\n  '¢' => '瞽',\n  '£' => '瞿',\n  '¤' => '瞻',\n  '¥' => '瞼',\n  '¦' => '礎',\n  '§' => '禮',\n  '¨' => '穡',\n  '©' => '穢',\n  'ª' => '穠',\n  '«' => '竄',\n  '¬' => '竅',\n  '­' => '簫',\n  '®' => '簧',\n  '¯' => '簪',\n  '°' => '簞',\n  '±' => '簣',\n  '²' => '簡',\n  '³' => '糧',\n  '´' => '織',\n  'µ' => '繕',\n  '¶' => '繞',\n  '·' => '繚',\n  '¸' => '繡',\n  '¹' => '繒',\n  'º' => '繙',\n  '»' => '罈',\n  '¼' => '翹',\n  '½' => '翻',\n  '¾' => '職',\n  '¿' => '聶',\n  '' => '臍',\n  '' => '臏',\n  '' => '舊',\n  '' => '藏',\n  '' => '薩',\n  '' => '藍',\n  '' => '藐',\n  '' => '藉',\n  '' => '薰',\n  '' => '薺',\n  '' => '薹',\n  '' => '薦',\n  '' => '蟯',\n  '' => '蟬',\n  '' => '蟲',\n  '' => '蟠',\n  '' => '覆',\n  '' => '覲',\n  '' => '觴',\n  '' => '謨',\n  '' => '謹',\n  '' => '謬',\n  '' => '謫',\n  '' => '豐',\n  '' => '贅',\n  '' => '蹙',\n  '' => '蹣',\n  '' => '蹦',\n  '' => '蹤',\n  '' => '蹟',\n  '' => '蹕',\n  '' => '軀',\n  '' => '轉',\n  '' => '轍',\n  '' => '邇',\n  '' => '邃',\n  '' => '邈',\n  '' => '醫',\n  '' => '醬',\n  '' => '釐',\n  '' => '鎔',\n  '' => '鎊',\n  '' => '鎖',\n  '' => '鎢',\n  '' => '鎳',\n  '' => '鎮',\n  '' => '鎬',\n  '' => '鎰',\n  '' => '鎘',\n  '' => '鎚',\n  '' => '鎗',\n  '' => '闔',\n  '' => '闖',\n  '' => '闐',\n  '' => '闕',\n  '' => '離',\n  '' => '雜',\n  '' => '雙',\n  '' => '雛',\n  '' => '雞',\n  '' => '霤',\n  '' => '鞣',\n  '' => '鞦',\n  '@' => '鞭',\n  'A' => '韹',\n  'B' => '額',\n  'C' => '顏',\n  'D' => '題',\n  'E' => '顎',\n  'F' => '顓',\n  'G' => '颺',\n  'H' => '餾',\n  'I' => '餿',\n  'J' => '餽',\n  'K' => '餮',\n  'L' => '馥',\n  'M' => '騎',\n  'N' => '髁',\n  'O' => '鬃',\n  'P' => '鬆',\n  'Q' => '魏',\n  'R' => '魎',\n  'S' => '魍',\n  'T' => '鯊',\n  'U' => '鯉',\n  'V' => '鯽',\n  'W' => '鯈',\n  'X' => '鯀',\n  'Y' => '鵑',\n  'Z' => '鵝',\n  '[' => '鵠',\n  '\\\\' => '黠',\n  ']' => '鼕',\n  '^' => '鼬',\n  '_' => '儳',\n  '`' => '嚥',\n  'a' => '壞',\n  'b' => '壟',\n  'c' => '壢',\n  'd' => '寵',\n  'e' => '龐',\n  'f' => '廬',\n  'g' => '懲',\n  'h' => '懷',\n  'i' => '懶',\n  'j' => '懵',\n  'k' => '攀',\n  'l' => '攏',\n  'm' => '曠',\n  'n' => '曝',\n  'o' => '櫥',\n  'p' => '櫝',\n  'q' => '櫚',\n  'r' => '櫓',\n  's' => '瀛',\n  't' => '瀟',\n  'u' => '瀨',\n  'v' => '瀚',\n  'w' => '瀝',\n  'x' => '瀕',\n  'y' => '瀘',\n  'z' => '爆',\n  '{' => '爍',\n  '|' => '牘',\n  '}' => '犢',\n  '~' => '獸',\n  'á' => '獺',\n  'â' => '璽',\n  'ã' => '瓊',\n  'ä' => '瓣',\n  'å' => '疇',\n  'æ' => '疆',\n  'ç' => '癟',\n  'è' => '癡',\n  'é' => '矇',\n  'ê' => '礙',\n  'ë' => '禱',\n  'ì' => '穫',\n  'í' => '穩',\n  'î' => '簾',\n  'ï' => '簿',\n  'ð' => '簸',\n  'ñ' => '簽',\n  'ò' => '簷',\n  'ó' => '籀',\n  'ô' => '繫',\n  'õ' => '繭',\n  'ö' => '繹',\n  '÷' => '繩',\n  'ø' => '繪',\n  'ù' => '羅',\n  'ú' => '繳',\n  'û' => '羶',\n  'ü' => '羹',\n  'ý' => '羸',\n  'þ' => '臘',\n  'ÿ' => '藩',\n  '' => '藝',\n  '' => '藪',\n  '' => '藕',\n  '' => '藤',\n  '' => '藥',\n  '' => '藷',\n  '' => '蟻',\n  '' => '蠅',\n  '' => '蠍',\n  '' => '蟹',\n  '' => '蟾',\n  '' => '襠',\n  '' => '襟',\n  '' => '襖',\n  '' => '襞',\n  '' => '譁',\n  '' => '譜',\n  '' => '識',\n  '' => '證',\n  '' => '譚',\n  '' => '譎',\n  '' => '譏',\n  '' => '譆',\n  '' => '譙',\n  '' => '贈',\n  '' => '贊',\n  '' => '蹼',\n  '' => '蹲',\n  '' => '躇',\n  '' => '蹶',\n  '' => '蹬',\n  '' => '蹺',\n  '' => '蹴',\n  '' => '轔',\n  '' => '轎',\n  '' => '辭',\n  '' => '邊',\n  '' => '邋',\n  '' => '醱',\n  '' => '醮',\n  '' => '鏡',\n  '' => '鏑',\n  '' => '鏟',\n  '' => '鏃',\n  '' => '鏈',\n  '' => '鏜',\n  '' => '鏝',\n  '' => '鏖',\n  '' => '鏢',\n  '' => '鏍',\n  '' => '鏘',\n  '' => '鏤',\n  '' => '鏗',\n  '' => '鏨',\n  '' => '關',\n  '' => '隴',\n  '' => '難',\n  '' => '霪',\n  '' => '霧',\n  '' => '靡',\n  '' => '韜',\n  '' => '韻',\n  '' => '類',\n  '@' => '願',\n  'A' => '顛',\n  'B' => '颼',\n  'C' => '饅',\n  'D' => '饉',\n  'E' => '騖',\n  'F' => '騙',\n  'G' => '鬍',\n  'H' => '鯨',\n  'I' => '鯧',\n  'J' => '鯖',\n  'K' => '鯛',\n  'L' => '鶉',\n  'M' => '鵡',\n  'N' => '鵲',\n  'O' => '鵪',\n  'P' => '鵬',\n  'Q' => '麒',\n  'R' => '麗',\n  'S' => '麓',\n  'T' => '麴',\n  'U' => '勸',\n  'V' => '嚨',\n  'W' => '嚷',\n  'X' => '嚶',\n  'Y' => '嚴',\n  'Z' => '嚼',\n  '[' => '壤',\n  '\\\\' => '孀',\n  ']' => '孃',\n  '^' => '孽',\n  '_' => '寶',\n  '`' => '巉',\n  'a' => '懸',\n  'b' => '懺',\n  'c' => '攘',\n  'd' => '攔',\n  'e' => '攙',\n  'f' => '曦',\n  'g' => '朧',\n  'h' => '櫬',\n  'i' => '瀾',\n  'j' => '瀰',\n  'k' => '瀲',\n  'l' => '爐',\n  'm' => '獻',\n  'n' => '瓏',\n  'o' => '癢',\n  'p' => '癥',\n  'q' => '礦',\n  'r' => '礪',\n  's' => '礬',\n  't' => '礫',\n  'u' => '竇',\n  'v' => '競',\n  'w' => '籌',\n  'x' => '籃',\n  'y' => '籍',\n  'z' => '糯',\n  '{' => '糰',\n  '|' => '辮',\n  '}' => '繽',\n  '~' => '繼',\n  'ġ' => '纂',\n  'Ģ' => '罌',\n  'ģ' => '耀',\n  'Ĥ' => '臚',\n  'ĥ' => '艦',\n  'Ħ' => '藻',\n  'ħ' => '藹',\n  'Ĩ' => '蘑',\n  'ĩ' => '藺',\n  'Ī' => '蘆',\n  'ī' => '蘋',\n  'Ĭ' => '蘇',\n  'ĭ' => '蘊',\n  'Į' => '蠔',\n  'į' => '蠕',\n  'İ' => '襤',\n  'ı' => '覺',\n  'Ĳ' => '觸',\n  'ĳ' => '議',\n  'Ĵ' => '譬',\n  'ĵ' => '警',\n  'Ķ' => '譯',\n  'ķ' => '譟',\n  'ĸ' => '譫',\n  'Ĺ' => '贏',\n  'ĺ' => '贍',\n  'Ļ' => '躉',\n  'ļ' => '躁',\n  'Ľ' => '躅',\n  'ľ' => '躂',\n  'Ŀ' => '醴',\n  '' => '釋',\n  '' => '鐘',\n  '' => '鐃',\n  '' => '鏽',\n  '' => '闡',\n  '' => '霰',\n  '' => '飄',\n  '' => '饒',\n  '' => '饑',\n  '' => '馨',\n  '' => '騫',\n  '' => '騰',\n  '' => '騷',\n  '' => '騵',\n  '' => '鰓',\n  '' => '鰍',\n  '' => '鹹',\n  '' => '麵',\n  '' => '黨',\n  '' => '鼯',\n  '' => '齟',\n  '' => '齣',\n  '' => '齡',\n  '' => '儷',\n  '' => '儸',\n  '' => '囁',\n  '' => '囀',\n  '' => '囂',\n  '' => '夔',\n  '' => '屬',\n  '' => '巍',\n  '' => '懼',\n  '' => '懾',\n  '' => '攝',\n  '' => '攜',\n  '' => '斕',\n  '' => '曩',\n  '' => '櫻',\n  '' => '欄',\n  '' => '櫺',\n  '' => '殲',\n  '' => '灌',\n  '' => '爛',\n  '' => '犧',\n  '' => '瓖',\n  '' => '瓔',\n  '' => '癩',\n  '' => '矓',\n  '' => '籐',\n  '' => '纏',\n  '' => '續',\n  '' => '羼',\n  '' => '蘗',\n  '' => '蘭',\n  '' => '蘚',\n  '' => '蠣',\n  '' => '蠢',\n  '' => '蠡',\n  '' => '蠟',\n  '' => '襪',\n  '' => '襬',\n  '' => '覽',\n  '' => '譴',\n  '@' => '護',\n  'A' => '譽',\n  'B' => '贓',\n  'C' => '躊',\n  'D' => '躍',\n  'E' => '躋',\n  'F' => '轟',\n  'G' => '辯',\n  'H' => '醺',\n  'I' => '鐮',\n  'J' => '鐳',\n  'K' => '鐵',\n  'L' => '鐺',\n  'M' => '鐸',\n  'N' => '鐲',\n  'O' => '鐫',\n  'P' => '闢',\n  'Q' => '霸',\n  'R' => '霹',\n  'S' => '露',\n  'T' => '響',\n  'U' => '顧',\n  'V' => '顥',\n  'W' => '饗',\n  'X' => '驅',\n  'Y' => '驃',\n  'Z' => '驀',\n  '[' => '騾',\n  '\\\\' => '髏',\n  ']' => '魔',\n  '^' => '魑',\n  '_' => '鰭',\n  '`' => '鰥',\n  'a' => '鶯',\n  'b' => '鶴',\n  'c' => '鷂',\n  'd' => '鶸',\n  'e' => '麝',\n  'f' => '黯',\n  'g' => '鼙',\n  'h' => '齜',\n  'i' => '齦',\n  'j' => '齧',\n  'k' => '儼',\n  'l' => '儻',\n  'm' => '囈',\n  'n' => '囊',\n  'o' => '囉',\n  'p' => '孿',\n  'q' => '巔',\n  'r' => '巒',\n  's' => '彎',\n  't' => '懿',\n  'u' => '攤',\n  'v' => '權',\n  'w' => '歡',\n  'x' => '灑',\n  'y' => '灘',\n  'z' => '玀',\n  '{' => '瓤',\n  '|' => '疊',\n  '}' => '癮',\n  '~' => '癬',\n  'š' => '禳',\n  'Ţ' => '籠',\n  'ţ' => '籟',\n  'Ť' => '聾',\n  'ť' => '聽',\n  'Ŧ' => '臟',\n  'ŧ' => '襲',\n  'Ũ' => '襯',\n  'ũ' => '觼',\n  'Ū' => '讀',\n  'ū' => '贖',\n  'Ŭ' => '贗',\n  'ŭ' => '躑',\n  'Ů' => '躓',\n  'ů' => '轡',\n  'Ű' => '酈',\n  'ű' => '鑄',\n  'Ų' => '鑑',\n  'ų' => '鑒',\n  'Ŵ' => '霽',\n  'ŵ' => '霾',\n  'Ŷ' => '韃',\n  'ŷ' => '韁',\n  'Ÿ' => '顫',\n  'Ź' => '饕',\n  'ź' => '驕',\n  'Ż' => '驍',\n  'ż' => '髒',\n  'Ž' => '鬚',\n  'ž' => '鱉',\n  'ſ' => '鰱',\n  '' => '鰾',\n  '' => '鰻',\n  '' => '鷓',\n  '' => '鷗',\n  '' => '鼴',\n  '' => '齬',\n  '' => '齪',\n  '' => '龔',\n  '' => '囌',\n  '' => '巖',\n  '' => '戀',\n  '' => '攣',\n  '' => '攫',\n  '' => '攪',\n  '' => '曬',\n  '' => '欐',\n  '' => '瓚',\n  '' => '竊',\n  '' => '籤',\n  '' => '籣',\n  '' => '籥',\n  '' => '纓',\n  '' => '纖',\n  '' => '纔',\n  '' => '臢',\n  '' => '蘸',\n  '' => '蘿',\n  '' => '蠱',\n  '' => '變',\n  '' => '邐',\n  '' => '邏',\n  '' => '鑣',\n  '' => '鑠',\n  '' => '鑤',\n  '' => '靨',\n  '' => '顯',\n  '' => '饜',\n  '' => '驚',\n  '' => '驛',\n  '' => '驗',\n  '' => '髓',\n  '' => '體',\n  '' => '髑',\n  '' => '鱔',\n  '' => '鱗',\n  '' => '鱖',\n  '' => '鷥',\n  '' => '麟',\n  '' => '黴',\n  '' => '囑',\n  '' => '壩',\n  '' => '攬',\n  '' => '灞',\n  '' => '癱',\n  '' => '癲',\n  '' => '矗',\n  '' => '罐',\n  '' => '羈',\n  '' => '蠶',\n  '' => '蠹',\n  '' => '衢',\n  '' => '讓',\n  '' => '讒',\n  '@' => '讖',\n  'A' => '艷',\n  'B' => '贛',\n  'C' => '釀',\n  'D' => '鑪',\n  'E' => '靂',\n  'F' => '靈',\n  'G' => '靄',\n  'H' => '韆',\n  'I' => '顰',\n  'J' => '驟',\n  'K' => '鬢',\n  'L' => '魘',\n  'M' => '鱟',\n  'N' => '鷹',\n  'O' => '鷺',\n  'P' => '鹼',\n  'Q' => '鹽',\n  'R' => '鼇',\n  'S' => '齷',\n  'T' => '齲',\n  'U' => '廳',\n  'V' => '欖',\n  'W' => '灣',\n  'X' => '籬',\n  'Y' => '籮',\n  'Z' => '蠻',\n  '[' => '觀',\n  '\\\\' => '躡',\n  ']' => '釁',\n  '^' => '鑲',\n  '_' => '鑰',\n  '`' => '顱',\n  'a' => '饞',\n  'b' => '髖',\n  'c' => '鬣',\n  'd' => '黌',\n  'e' => '灤',\n  'f' => '矚',\n  'g' => '讚',\n  'h' => '鑷',\n  'i' => '韉',\n  'j' => '驢',\n  'k' => '驥',\n  'l' => '纜',\n  'm' => '讜',\n  'n' => '躪',\n  'o' => '釅',\n  'p' => '鑽',\n  'q' => '鑾',\n  'r' => '鑼',\n  's' => '鱷',\n  't' => '鱸',\n  'u' => '黷',\n  'v' => '豔',\n  'w' => '鑿',\n  'x' => '鸚',\n  'y' => '爨',\n  'z' => '驪',\n  '{' => '鬱',\n  '|' => '鸛',\n  '}' => '鸞',\n  '~' => '籲',\n  'ơ' => 'ヾ',\n  'Ƣ' => 'ゝ',\n  'ƣ' => 'ゞ',\n  'Ƥ' => '々',\n  'ƥ' => 'ぁ',\n  'Ʀ' => 'あ',\n  'Ƨ' => 'ぃ',\n  'ƨ' => 'い',\n  'Ʃ' => 'ぅ',\n  'ƪ' => 'う',\n  'ƫ' => 'ぇ',\n  'Ƭ' => 'え',\n  'ƭ' => 'ぉ',\n  'Ʈ' => 'お',\n  'Ư' => 'か',\n  'ư' => 'が',\n  'Ʊ' => 'き',\n  'Ʋ' => 'ぎ',\n  'Ƴ' => 'く',\n  'ƴ' => 'ぐ',\n  'Ƶ' => 'け',\n  'ƶ' => 'げ',\n  'Ʒ' => 'こ',\n  'Ƹ' => 'ご',\n  'ƹ' => 'さ',\n  'ƺ' => 'ざ',\n  'ƻ' => 'し',\n  'Ƽ' => 'じ',\n  'ƽ' => 'す',\n  'ƾ' => 'ず',\n  'ƿ' => 'せ',\n  '' => 'ぜ',\n  '' => 'そ',\n  '' => 'ぞ',\n  '' => 'た',\n  '' => 'だ',\n  '' => 'ち',\n  '' => 'ぢ',\n  '' => 'っ',\n  '' => 'つ',\n  '' => 'づ',\n  '' => 'て',\n  '' => 'で',\n  '' => 'と',\n  '' => 'ど',\n  '' => 'な',\n  '' => 'に',\n  '' => 'ぬ',\n  '' => 'ね',\n  '' => 'の',\n  '' => 'は',\n  '' => 'ば',\n  '' => 'ぱ',\n  '' => 'ひ',\n  '' => 'び',\n  '' => 'ぴ',\n  '' => 'ふ',\n  '' => 'ぶ',\n  '' => 'ぷ',\n  '' => 'へ',\n  '' => 'べ',\n  '' => 'ぺ',\n  '' => 'ほ',\n  '' => 'ぼ',\n  '' => 'ぽ',\n  '' => 'ま',\n  '' => 'み',\n  '' => 'む',\n  '' => 'め',\n  '' => 'も',\n  '' => 'ゃ',\n  '' => 'や',\n  '' => 'ゅ',\n  '' => 'ゆ',\n  '' => 'ょ',\n  '' => 'よ',\n  '' => 'ら',\n  '' => 'り',\n  '' => 'る',\n  '' => 'れ',\n  '' => 'ろ',\n  '' => 'ゎ',\n  '' => 'わ',\n  '' => 'ゐ',\n  '' => 'ゑ',\n  '' => 'を',\n  '' => 'ん',\n  '' => 'ァ',\n  '' => 'ア',\n  '' => 'ィ',\n  '' => 'イ',\n  '' => 'ゥ',\n  '' => 'ウ',\n  '' => 'ェ',\n  '@' => 'エ',\n  'A' => 'ォ',\n  'B' => 'オ',\n  'C' => 'カ',\n  'D' => 'ガ',\n  'E' => 'キ',\n  'F' => 'ギ',\n  'G' => 'ク',\n  'H' => 'グ',\n  'I' => 'ケ',\n  'J' => 'ゲ',\n  'K' => 'コ',\n  'L' => 'ゴ',\n  'M' => 'サ',\n  'N' => 'ザ',\n  'O' => 'シ',\n  'P' => 'ジ',\n  'Q' => 'ス',\n  'R' => 'ズ',\n  'S' => 'セ',\n  'T' => 'ゼ',\n  'U' => 'ソ',\n  'V' => 'ゾ',\n  'W' => 'タ',\n  'X' => 'ダ',\n  'Y' => 'チ',\n  'Z' => 'ヂ',\n  '[' => 'ッ',\n  '\\\\' => 'ツ',\n  ']' => 'ヅ',\n  '^' => 'テ',\n  '_' => 'デ',\n  '`' => 'ト',\n  'a' => 'ド',\n  'b' => 'ナ',\n  'c' => 'ニ',\n  'd' => 'ヌ',\n  'e' => 'ネ',\n  'f' => 'ノ',\n  'g' => 'ハ',\n  'h' => 'バ',\n  'i' => 'パ',\n  'j' => 'ヒ',\n  'k' => 'ビ',\n  'l' => 'ピ',\n  'm' => 'フ',\n  'n' => 'ブ',\n  'o' => 'プ',\n  'p' => 'ヘ',\n  'q' => 'ベ',\n  'r' => 'ペ',\n  's' => 'ホ',\n  't' => 'ボ',\n  'u' => 'ポ',\n  'v' => 'マ',\n  'w' => 'ミ',\n  'x' => 'ム',\n  'y' => 'メ',\n  'z' => 'モ',\n  '{' => 'ャ',\n  '|' => 'ヤ',\n  '}' => 'ュ',\n  '~' => 'ユ',\n  'ǡ' => 'ョ',\n  'Ǣ' => 'ヨ',\n  'ǣ' => 'ラ',\n  'Ǥ' => 'リ',\n  'ǥ' => 'ル',\n  'Ǧ' => 'レ',\n  'ǧ' => 'ロ',\n  'Ǩ' => 'ヮ',\n  'ǩ' => 'ワ',\n  'Ǫ' => 'ヰ',\n  'ǫ' => 'ヱ',\n  'Ǭ' => 'ヲ',\n  'ǭ' => 'ン',\n  'Ǯ' => 'ヴ',\n  'ǯ' => 'ヵ',\n  'ǰ' => 'ヶ',\n  'Ǳ' => 'Д',\n  'ǲ' => 'Е',\n  'ǳ' => 'Ё',\n  'Ǵ' => 'Ж',\n  'ǵ' => 'З',\n  'Ƕ' => 'И',\n  'Ƿ' => 'Й',\n  'Ǹ' => 'К',\n  'ǹ' => 'Л',\n  'Ǻ' => 'М',\n  'ǻ' => 'У',\n  'Ǽ' => 'Ф',\n  'ǽ' => 'Х',\n  'Ǿ' => 'Ц',\n  'ǿ' => 'Ч',\n  '' => 'Ш',\n  '' => 'Щ',\n  '' => 'Ъ',\n  '' => 'Ы',\n  '' => 'Ь',\n  '' => 'Э',\n  '' => 'Ю',\n  '' => 'Я',\n  '' => 'а',\n  '' => 'б',\n  '' => 'в',\n  '' => 'г',\n  '' => 'д',\n  '' => 'е',\n  '' => 'ё',\n  '' => 'ж',\n  '' => 'з',\n  '' => 'и',\n  '' => 'й',\n  '' => 'к',\n  '' => 'л',\n  '' => 'м',\n  '' => 'н',\n  '' => 'о',\n  '' => 'п',\n  '' => 'р',\n  '' => 'с',\n  '' => 'т',\n  '' => 'у',\n  '' => 'ф',\n  '' => 'х',\n  '' => 'ц',\n  '' => 'ч',\n  '' => 'ш',\n  '' => 'щ',\n  '' => 'ъ',\n  '' => 'ы',\n  '' => 'ь',\n  '' => 'э',\n  '' => 'ю',\n  '' => 'я',\n  '' => '①',\n  '' => '②',\n  '' => '③',\n  '' => '④',\n  '' => '⑤',\n  '' => '⑥',\n  '' => '⑦',\n  '' => '⑧',\n  '' => '⑨',\n  '' => '⑩',\n  '' => '⑴',\n  '' => '⑵',\n  '' => '⑶',\n  '' => '⑷',\n  '' => '⑸',\n  '' => '⑹',\n  '' => '⑺',\n  '' => '⑻',\n  '' => '⑼',\n  '' => '⑽',\n  '@' => '乂',\n  'A' => '乜',\n  'B' => '凵',\n  'C' => '匚',\n  'D' => '厂',\n  'E' => '万',\n  'F' => '丌',\n  'G' => '乇',\n  'H' => '亍',\n  'I' => '囗',\n  'J' => '兀',\n  'K' => '屮',\n  'L' => '彳',\n  'M' => '丏',\n  'N' => '冇',\n  'O' => '与',\n  'P' => '丮',\n  'Q' => '亓',\n  'R' => '仂',\n  'S' => '仉',\n  'T' => '仈',\n  'U' => '冘',\n  'V' => '勼',\n  'W' => '卬',\n  'X' => '厹',\n  'Y' => '圠',\n  'Z' => '夃',\n  '[' => '夬',\n  '\\\\' => '尐',\n  ']' => '巿',\n  '^' => '旡',\n  '_' => '殳',\n  '`' => '毌',\n  'a' => '气',\n  'b' => '爿',\n  'c' => '丱',\n  'd' => '丼',\n  'e' => '仨',\n  'f' => '仜',\n  'g' => '仩',\n  'h' => '仡',\n  'i' => '仝',\n  'j' => '仚',\n  'k' => '刌',\n  'l' => '匜',\n  'm' => '卌',\n  'n' => '圢',\n  'o' => '圣',\n  'p' => '夗',\n  'q' => '夯',\n  'r' => '宁',\n  's' => '宄',\n  't' => '尒',\n  'u' => '尻',\n  'v' => '屴',\n  'w' => '屳',\n  'x' => '帄',\n  'y' => '庀',\n  'z' => '庂',\n  '{' => '忉',\n  '|' => '戉',\n  '}' => '扐',\n  '~' => '氕',\n  'ɡ' => '氶',\n  'ɢ' => '汃',\n  'ɣ' => '氿',\n  'ɤ' => '氻',\n  'ɥ' => '犮',\n  'ɦ' => '犰',\n  'ɧ' => '玊',\n  'ɨ' => '禸',\n  'ɩ' => '肊',\n  'ɪ' => '阞',\n  'ɫ' => '伎',\n  'ɬ' => '优',\n  'ɭ' => '伬',\n  'ɮ' => '仵',\n  'ɯ' => '伔',\n  'ɰ' => '仱',\n  'ɱ' => '伀',\n  'ɲ' => '价',\n  'ɳ' => '伈',\n  'ɴ' => '伝',\n  'ɵ' => '伂',\n  'ɶ' => '伅',\n  'ɷ' => '伢',\n  'ɸ' => '伓',\n  'ɹ' => '伄',\n  'ɺ' => '仴',\n  'ɻ' => '伒',\n  'ɼ' => '冱',\n  'ɽ' => '刓',\n  'ɾ' => '刉',\n  'ɿ' => '刐',\n  '' => '劦',\n  '' => '匢',\n  '' => '匟',\n  '' => '卍',\n  '' => '厊',\n  '' => '吇',\n  '' => '囡',\n  '' => '囟',\n  '' => '圮',\n  '' => '圪',\n  '' => '圴',\n  '' => '夼',\n  '' => '妀',\n  '' => '奼',\n  '' => '妅',\n  '' => '奻',\n  '' => '奾',\n  '' => '奷',\n  '' => '奿',\n  '' => '孖',\n  '' => '尕',\n  '' => '尥',\n  '' => '屼',\n  '' => '屺',\n  '' => '屻',\n  '' => '屾',\n  '' => '巟',\n  '' => '幵',\n  '' => '庄',\n  '' => '异',\n  '' => '弚',\n  '' => '彴',\n  '' => '忕',\n  '' => '忔',\n  '' => '忏',\n  '' => '扜',\n  '' => '扞',\n  '' => '扤',\n  '' => '扡',\n  '' => '扦',\n  '' => '扢',\n  '' => '扙',\n  '' => '扠',\n  '' => '扚',\n  '' => '扥',\n  '' => '旯',\n  '' => '旮',\n  '' => '朾',\n  '' => '朹',\n  '' => '朸',\n  '' => '朻',\n  '' => '机',\n  '' => '朿',\n  '' => '朼',\n  '' => '朳',\n  '' => '氘',\n  '' => '汆',\n  '' => '汒',\n  '' => '汜',\n  '' => '汏',\n  '' => '汊',\n  '' => '汔',\n  '' => '汋',\n  '@' => '汌',\n  'A' => '灱',\n  'B' => '牞',\n  'C' => '犴',\n  'D' => '犵',\n  'E' => '玎',\n  'F' => '甪',\n  'G' => '癿',\n  'H' => '穵',\n  'I' => '网',\n  'J' => '艸',\n  'K' => '艼',\n  'L' => '芀',\n  'M' => '艽',\n  'N' => '艿',\n  'O' => '虍',\n  'P' => '襾',\n  'Q' => '邙',\n  'R' => '邗',\n  'S' => '邘',\n  'T' => '邛',\n  'U' => '邔',\n  'V' => '阢',\n  'W' => '阤',\n  'X' => '阠',\n  'Y' => '阣',\n  'Z' => '佖',\n  '[' => '伻',\n  '\\\\' => '佢',\n  ']' => '佉',\n  '^' => '体',\n  '_' => '佤',\n  '`' => '伾',\n  'a' => '佧',\n  'b' => '佒',\n  'c' => '佟',\n  'd' => '佁',\n  'e' => '佘',\n  'f' => '伭',\n  'g' => '伳',\n  'h' => '伿',\n  'i' => '佡',\n  'j' => '冏',\n  'k' => '冹',\n  'l' => '刜',\n  'm' => '刞',\n  'n' => '刡',\n  'o' => '劭',\n  'p' => '劮',\n  'q' => '匉',\n  'r' => '卣',\n  's' => '卲',\n  't' => '厎',\n  'u' => '厏',\n  'v' => '吰',\n  'w' => '吷',\n  'x' => '吪',\n  'y' => '呔',\n  'z' => '呅',\n  '{' => '吙',\n  '|' => '吜',\n  '}' => '吥',\n  '~' => '吘',\n  'ʡ' => '吽',\n  'ʢ' => '呏',\n  'ʣ' => '呁',\n  'ʤ' => '吨',\n  'ʥ' => '吤',\n  'ʦ' => '呇',\n  'ʧ' => '囮',\n  'ʨ' => '囧',\n  'ʩ' => '囥',\n  'ʪ' => '坁',\n  'ʫ' => '坅',\n  'ʬ' => '坌',\n  'ʭ' => '坉',\n  'ʮ' => '坋',\n  'ʯ' => '坒',\n  'ʰ' => '夆',\n  'ʱ' => '奀',\n  'ʲ' => '妦',\n  'ʳ' => '妘',\n  'ʴ' => '妠',\n  'ʵ' => '妗',\n  'ʶ' => '妎',\n  'ʷ' => '妢',\n  'ʸ' => '妐',\n  'ʹ' => '妏',\n  'ʺ' => '妧',\n  'ʻ' => '妡',\n  'ʼ' => '宎',\n  'ʽ' => '宒',\n  'ʾ' => '尨',\n  'ʿ' => '尪',\n  '' => '岍',\n  '' => '岏',\n  '' => '岈',\n  '' => '岋',\n  '' => '岉',\n  '' => '岒',\n  '' => '岊',\n  '' => '岆',\n  '' => '岓',\n  '' => '岕',\n  '' => '巠',\n  '' => '帊',\n  '' => '帎',\n  '' => '庋',\n  '' => '庉',\n  '' => '庌',\n  '' => '庈',\n  '' => '庍',\n  '' => '弅',\n  '' => '弝',\n  '' => '彸',\n  '' => '彶',\n  '' => '忒',\n  '' => '忑',\n  '' => '忐',\n  '' => '忭',\n  '' => '忨',\n  '' => '忮',\n  '' => '忳',\n  '' => '忡',\n  '' => '忤',\n  '' => '忣',\n  '' => '忺',\n  '' => '忯',\n  '' => '忷',\n  '' => '忻',\n  '' => '怀',\n  '' => '忴',\n  '' => '戺',\n  '' => '抃',\n  '' => '抌',\n  '' => '抎',\n  '' => '抏',\n  '' => '抔',\n  '' => '抇',\n  '' => '扱',\n  '' => '扻',\n  '' => '扺',\n  '' => '扰',\n  '' => '抁',\n  '' => '抈',\n  '' => '扷',\n  '' => '扽',\n  '' => '扲',\n  '' => '扴',\n  '' => '攷',\n  '' => '旰',\n  '' => '旴',\n  '' => '旳',\n  '' => '旲',\n  '' => '旵',\n  '' => '杅',\n  '' => '杇',\n  '@' => '杙',\n  'A' => '杕',\n  'B' => '杌',\n  'C' => '杈',\n  'D' => '杝',\n  'E' => '杍',\n  'F' => '杚',\n  'G' => '杋',\n  'H' => '毐',\n  'I' => '氙',\n  'J' => '氚',\n  'K' => '汸',\n  'L' => '汧',\n  'M' => '汫',\n  'N' => '沄',\n  'O' => '沋',\n  'P' => '沏',\n  'Q' => '汱',\n  'R' => '汯',\n  'S' => '汩',\n  'T' => '沚',\n  'U' => '汭',\n  'V' => '沇',\n  'W' => '沕',\n  'X' => '沜',\n  'Y' => '汦',\n  'Z' => '汳',\n  '[' => '汥',\n  '\\\\' => '汻',\n  ']' => '沎',\n  '^' => '灴',\n  '_' => '灺',\n  '`' => '牣',\n  'a' => '犿',\n  'b' => '犽',\n  'c' => '狃',\n  'd' => '狆',\n  'e' => '狁',\n  'f' => '犺',\n  'g' => '狅',\n  'h' => '玕',\n  'i' => '玗',\n  'j' => '玓',\n  'k' => '玔',\n  'l' => '玒',\n  'm' => '町',\n  'n' => '甹',\n  'o' => '疔',\n  'p' => '疕',\n  'q' => '皁',\n  'r' => '礽',\n  's' => '耴',\n  't' => '肕',\n  'u' => '肙',\n  'v' => '肐',\n  'w' => '肒',\n  'x' => '肜',\n  'y' => '芐',\n  'z' => '芏',\n  '{' => '芅',\n  '|' => '芎',\n  '}' => '芑',\n  '~' => '芓',\n  'ˡ' => '芊',\n  'ˢ' => '芃',\n  'ˣ' => '芄',\n  'ˤ' => '豸',\n  '˥' => '迉',\n  '˦' => '辿',\n  '˧' => '邟',\n  '˨' => '邡',\n  '˩' => '邥',\n  '˪' => '邞',\n  '˫' => '邧',\n  'ˬ' => '邠',\n  '˭' => '阰',\n  'ˮ' => '阨',\n  '˯' => '阯',\n  '˰' => '阭',\n  '˱' => '丳',\n  '˲' => '侘',\n  '˳' => '佼',\n  '˴' => '侅',\n  '˵' => '佽',\n  '˶' => '侀',\n  '˷' => '侇',\n  '˸' => '佶',\n  '˹' => '佴',\n  '˺' => '侉',\n  '˻' => '侄',\n  '˼' => '佷',\n  '˽' => '佌',\n  '˾' => '侗',\n  '˿' => '佪',\n  '' => '侚',\n  '' => '佹',\n  '' => '侁',\n  '' => '佸',\n  '' => '侐',\n  '' => '侜',\n  '' => '侔',\n  '' => '侞',\n  '' => '侒',\n  '' => '侂',\n  '' => '侕',\n  '' => '佫',\n  '' => '佮',\n  '' => '冞',\n  '' => '冼',\n  '' => '冾',\n  '' => '刵',\n  '' => '刲',\n  '' => '刳',\n  '' => '剆',\n  '' => '刱',\n  '' => '劼',\n  '' => '匊',\n  '' => '匋',\n  '' => '匼',\n  '' => '厒',\n  '' => '厔',\n  '' => '咇',\n  '' => '呿',\n  '' => '咁',\n  '' => '咑',\n  '' => '咂',\n  '' => '咈',\n  '' => '呫',\n  '' => '呺',\n  '' => '呾',\n  '' => '呥',\n  '' => '呬',\n  '' => '呴',\n  '' => '呦',\n  '' => '咍',\n  '' => '呯',\n  '' => '呡',\n  '' => '呠',\n  '' => '咘',\n  '' => '呣',\n  '' => '呧',\n  '' => '呤',\n  '' => '囷',\n  '' => '囹',\n  '' => '坯',\n  '' => '坲',\n  '' => '坭',\n  '' => '坫',\n  '' => '坱',\n  '' => '坰',\n  '' => '坶',\n  '' => '垀',\n  '' => '坵',\n  '' => '坻',\n  '' => '坳',\n  '' => '坴',\n  '' => '坢',\n  '@' => '坨',\n  'A' => '坽',\n  'B' => '夌',\n  'C' => '奅',\n  'D' => '妵',\n  'E' => '妺',\n  'F' => '姏',\n  'G' => '姎',\n  'H' => '妲',\n  'I' => '姌',\n  'J' => '姁',\n  'K' => '妶',\n  'L' => '妼',\n  'M' => '姃',\n  'N' => '姖',\n  'O' => '妱',\n  'P' => '妽',\n  'Q' => '姀',\n  'R' => '姈',\n  'S' => '妴',\n  'T' => '姇',\n  'U' => '孢',\n  'V' => '孥',\n  'W' => '宓',\n  'X' => '宕',\n  'Y' => '屄',\n  'Z' => '屇',\n  '[' => '岮',\n  '\\\\' => '岤',\n  ']' => '岠',\n  '^' => '岵',\n  '_' => '岯',\n  '`' => '岨',\n  'a' => '岬',\n  'b' => '岟',\n  'c' => '岣',\n  'd' => '岭',\n  'e' => '岢',\n  'f' => '岪',\n  'g' => '岧',\n  'h' => '岝',\n  'i' => '岥',\n  'j' => '岶',\n  'k' => '岰',\n  'l' => '岦',\n  'm' => '帗',\n  'n' => '帔',\n  'o' => '帙',\n  'p' => '弨',\n  'q' => '弢',\n  'r' => '弣',\n  's' => '弤',\n  't' => '彔',\n  'u' => '徂',\n  'v' => '彾',\n  'w' => '彽',\n  'x' => '忞',\n  'y' => '忥',\n  'z' => '怭',\n  '{' => '怦',\n  '|' => '怙',\n  '}' => '怲',\n  '~' => '怋',\n  '̡' => '怴',\n  '̢' => '怊',\n  '̣' => '怗',\n  '̤' => '怳',\n  '̥' => '怚',\n  '̦' => '怞',\n  '̧' => '怬',\n  '̨' => '怢',\n  '̩' => '怍',\n  '̪' => '怐',\n  '̫' => '怮',\n  '̬' => '怓',\n  '̭' => '怑',\n  '̮' => '怌',\n  '̯' => '怉',\n  '̰' => '怜',\n  '̱' => '戔',\n  '̲' => '戽',\n  '̳' => '抭',\n  '̴' => '抴',\n  '̵' => '拑',\n  '̶' => '抾',\n  '̷' => '抪',\n  '̸' => '抶',\n  '̹' => '拊',\n  '̺' => '抮',\n  '̻' => '抳',\n  '̼' => '抯',\n  '̽' => '抻',\n  '̾' => '抩',\n  '̿' => '抰',\n  '' => '抸',\n  '' => '攽',\n  '' => '斨',\n  '' => '斻',\n  '' => '昉',\n  '' => '旼',\n  '' => '昄',\n  '' => '昒',\n  '' => '昈',\n  '' => '旻',\n  '' => '昃',\n  '' => '昋',\n  '' => '昍',\n  '' => '昅',\n  '' => '旽',\n  '' => '昑',\n  '' => '昐',\n  '' => '曶',\n  '' => '朊',\n  '' => '枅',\n  '' => '杬',\n  '' => '枎',\n  '' => '枒',\n  '' => '杶',\n  '' => '杻',\n  '' => '枘',\n  '' => '枆',\n  '' => '构',\n  '' => '杴',\n  '' => '枍',\n  '' => '枌',\n  '' => '杺',\n  '' => '枟',\n  '' => '枑',\n  '' => '枙',\n  '' => '枃',\n  '' => '杽',\n  '' => '极',\n  '' => '杸',\n  '' => '杹',\n  '' => '枔',\n  '' => '欥',\n  '' => '殀',\n  '' => '歾',\n  '' => '毞',\n  '' => '氝',\n  '' => '沓',\n  '' => '泬',\n  '' => '泫',\n  '' => '泮',\n  '' => '泙',\n  '' => '沶',\n  '' => '泔',\n  '' => '沭',\n  '' => '泧',\n  '' => '沷',\n  '' => '泐',\n  '' => '泂',\n  '' => '沺',\n  '' => '泃',\n  '' => '泆',\n  '' => '泭',\n  '' => '泲',\n  '@' => '泒',\n  'A' => '泝',\n  'B' => '沴',\n  'C' => '沊',\n  'D' => '沝',\n  'E' => '沀',\n  'F' => '泞',\n  'G' => '泀',\n  'H' => '洰',\n  'I' => '泍',\n  'J' => '泇',\n  'K' => '沰',\n  'L' => '泹',\n  'M' => '泏',\n  'N' => '泩',\n  'O' => '泑',\n  'P' => '炔',\n  'Q' => '炘',\n  'R' => '炅',\n  'S' => '炓',\n  'T' => '炆',\n  'U' => '炄',\n  'V' => '炑',\n  'W' => '炖',\n  'X' => '炂',\n  'Y' => '炚',\n  'Z' => '炃',\n  '[' => '牪',\n  '\\\\' => '狖',\n  ']' => '狋',\n  '^' => '狘',\n  '_' => '狉',\n  '`' => '狜',\n  'a' => '狒',\n  'b' => '狔',\n  'c' => '狚',\n  'd' => '狌',\n  'e' => '狑',\n  'f' => '玤',\n  'g' => '玡',\n  'h' => '玭',\n  'i' => '玦',\n  'j' => '玢',\n  'k' => '玠',\n  'l' => '玬',\n  'm' => '玝',\n  'n' => '瓝',\n  'o' => '瓨',\n  'p' => '甿',\n  'q' => '畀',\n  'r' => '甾',\n  's' => '疌',\n  't' => '疘',\n  'u' => '皯',\n  'v' => '盳',\n  'w' => '盱',\n  'x' => '盰',\n  'y' => '盵',\n  'z' => '矸',\n  '{' => '矼',\n  '|' => '矹',\n  '}' => '矻',\n  '~' => '矺',\n  '͡' => '矷',\n  '͢' => '祂',\n  'ͣ' => '礿',\n  'ͤ' => '秅',\n  'ͥ' => '穸',\n  'ͦ' => '穻',\n  'ͧ' => '竻',\n  'ͨ' => '籵',\n  'ͩ' => '糽',\n  'ͪ' => '耵',\n  'ͫ' => '肏',\n  'ͬ' => '肮',\n  'ͭ' => '肣',\n  'ͮ' => '肸',\n  'ͯ' => '肵',\n  'Ͱ' => '肭',\n  'ͱ' => '舠',\n  'Ͳ' => '芠',\n  'ͳ' => '苀',\n  'ʹ' => '芫',\n  '͵' => '芚',\n  'Ͷ' => '芘',\n  'ͷ' => '芛',\n  '͸' => '芵',\n  '͹' => '芧',\n  'ͺ' => '芮',\n  'ͻ' => '芼',\n  'ͼ' => '芞',\n  'ͽ' => '芺',\n  ';' => '芴',\n  'Ϳ' => '芨',\n  '' => '芡',\n  '' => '芩',\n  '' => '苂',\n  '' => '芤',\n  '' => '苃',\n  '' => '芶',\n  '' => '芢',\n  '' => '虰',\n  '' => '虯',\n  '' => '虭',\n  '' => '虮',\n  '' => '豖',\n  '' => '迒',\n  '' => '迋',\n  '' => '迓',\n  '' => '迍',\n  '' => '迖',\n  '' => '迕',\n  '' => '迗',\n  '' => '邲',\n  '' => '邴',\n  '' => '邯',\n  '' => '邳',\n  '' => '邰',\n  '' => '阹',\n  '' => '阽',\n  '' => '阼',\n  '' => '阺',\n  '' => '陃',\n  '' => '俍',\n  '' => '俅',\n  '' => '俓',\n  '' => '侲',\n  '' => '俉',\n  '' => '俋',\n  '' => '俁',\n  '' => '俔',\n  '' => '俜',\n  '' => '俙',\n  '' => '侻',\n  '' => '侳',\n  '' => '俛',\n  '' => '俇',\n  '' => '俖',\n  '' => '侺',\n  '' => '俀',\n  '' => '侹',\n  '' => '俬',\n  '' => '剄',\n  '' => '剉',\n  '' => '勀',\n  '' => '勂',\n  '' => '匽',\n  '' => '卼',\n  '' => '厗',\n  '' => '厖',\n  '' => '厙',\n  '' => '厘',\n  '' => '咺',\n  '' => '咡',\n  '' => '咭',\n  '' => '咥',\n  '' => '哏',\n  '@' => '哃',\n  'A' => '茍',\n  'B' => '咷',\n  'C' => '咮',\n  'D' => '哖',\n  'E' => '咶',\n  'F' => '哅',\n  'G' => '哆',\n  'H' => '咠',\n  'I' => '呰',\n  'J' => '咼',\n  'K' => '咢',\n  'L' => '咾',\n  'M' => '呲',\n  'N' => '哞',\n  'O' => '咰',\n  'P' => '垵',\n  'Q' => '垞',\n  'R' => '垟',\n  'S' => '垤',\n  'T' => '垌',\n  'U' => '垗',\n  'V' => '垝',\n  'W' => '垛',\n  'X' => '垔',\n  'Y' => '垘',\n  'Z' => '垏',\n  '[' => '垙',\n  '\\\\' => '垥',\n  ']' => '垚',\n  '^' => '垕',\n  '_' => '壴',\n  '`' => '复',\n  'a' => '奓',\n  'b' => '姡',\n  'c' => '姞',\n  'd' => '姮',\n  'e' => '娀',\n  'f' => '姱',\n  'g' => '姝',\n  'h' => '姺',\n  'i' => '姽',\n  'j' => '姼',\n  'k' => '姶',\n  'l' => '姤',\n  'm' => '姲',\n  'n' => '姷',\n  'o' => '姛',\n  'p' => '姩',\n  'q' => '姳',\n  'r' => '姵',\n  's' => '姠',\n  't' => '姾',\n  'u' => '姴',\n  'v' => '姭',\n  'w' => '宨',\n  'x' => '屌',\n  'y' => '峐',\n  'z' => '峘',\n  '{' => '峌',\n  '|' => '峗',\n  '}' => '峋',\n  '~' => '峛',\n  'Ρ' => '峞',\n  '΢' => '峚',\n  'Σ' => '峉',\n  'Τ' => '峇',\n  'Υ' => '峊',\n  'Φ' => '峖',\n  'Χ' => '峓',\n  'Ψ' => '峔',\n  'Ω' => '峏',\n  'Ϊ' => '峈',\n  'Ϋ' => '峆',\n  'ά' => '峎',\n  'έ' => '峟',\n  'ή' => '峸',\n  'ί' => '巹',\n  'ΰ' => '帡',\n  'α' => '帢',\n  'β' => '帣',\n  'γ' => '帠',\n  'δ' => '帤',\n  'ε' => '庰',\n  'ζ' => '庤',\n  'η' => '庢',\n  'θ' => '庛',\n  'ι' => '庣',\n  'κ' => '庥',\n  'λ' => '弇',\n  'μ' => '弮',\n  'ν' => '彖',\n  'ξ' => '徆',\n  'ο' => '怷',\n  '' => '怹',\n  '' => '恔',\n  '' => '恲',\n  '' => '恞',\n  '' => '恅',\n  '' => '恓',\n  '' => '恇',\n  '' => '恉',\n  '' => '恛',\n  '' => '恌',\n  '' => '恀',\n  '' => '恂',\n  '' => '恟',\n  '' => '怤',\n  '' => '恄',\n  '' => '恘',\n  '' => '恦',\n  '' => '恮',\n  '' => '扂',\n  '' => '扃',\n  '' => '拏',\n  '' => '挍',\n  '' => '挋',\n  '' => '拵',\n  '' => '挎',\n  '' => '挃',\n  '' => '拫',\n  '' => '拹',\n  '' => '挏',\n  '' => '挌',\n  '' => '拸',\n  '' => '拶',\n  '' => '挀',\n  '' => '挓',\n  '' => '挔',\n  '' => '拺',\n  '' => '挕',\n  '' => '拻',\n  '' => '拰',\n  '' => '敁',\n  '' => '敃',\n  '' => '斪',\n  '' => '斿',\n  '' => '昶',\n  '' => '昡',\n  '' => '昲',\n  '' => '昵',\n  '' => '昜',\n  '' => '昦',\n  '' => '昢',\n  '' => '昳',\n  '' => '昫',\n  '' => '昺',\n  '' => '昝',\n  '' => '昴',\n  '' => '昹',\n  '' => '昮',\n  '' => '朏',\n  '' => '朐',\n  '' => '柁',\n  '' => '柲',\n  '' => '柈',\n  '' => '枺',\n  '@' => '柜',\n  'A' => '枻',\n  'B' => '柸',\n  'C' => '柘',\n  'D' => '柀',\n  'E' => '枷',\n  'F' => '柅',\n  'G' => '柫',\n  'H' => '柤',\n  'I' => '柟',\n  'J' => '枵',\n  'K' => '柍',\n  'L' => '枳',\n  'M' => '柷',\n  'N' => '柶',\n  'O' => '柮',\n  'P' => '柣',\n  'Q' => '柂',\n  'R' => '枹',\n  'S' => '柎',\n  'T' => '柧',\n  'U' => '柰',\n  'V' => '枲',\n  'W' => '柼',\n  'X' => '柆',\n  'Y' => '柭',\n  'Z' => '柌',\n  '[' => '枮',\n  '\\\\' => '柦',\n  ']' => '柛',\n  '^' => '柺',\n  '_' => '柉',\n  '`' => '柊',\n  'a' => '柃',\n  'b' => '柪',\n  'c' => '柋',\n  'd' => '欨',\n  'e' => '殂',\n  'f' => '殄',\n  'g' => '殶',\n  'h' => '毖',\n  'i' => '毘',\n  'j' => '毠',\n  'k' => '氠',\n  'l' => '氡',\n  'm' => '洨',\n  'n' => '洴',\n  'o' => '洭',\n  'p' => '洟',\n  'q' => '洼',\n  'r' => '洿',\n  's' => '洒',\n  't' => '洊',\n  'u' => '泚',\n  'v' => '洳',\n  'w' => '洄',\n  'x' => '洙',\n  'y' => '洺',\n  'z' => '洚',\n  '{' => '洑',\n  '|' => '洀',\n  '}' => '洝',\n  '~' => '浂',\n  'ϡ' => '洁',\n  'Ϣ' => '洘',\n  'ϣ' => '洷',\n  'Ϥ' => '洃',\n  'ϥ' => '洏',\n  'Ϧ' => '浀',\n  'ϧ' => '洇',\n  'Ϩ' => '洠',\n  'ϩ' => '洬',\n  'Ϫ' => '洈',\n  'ϫ' => '洢',\n  'Ϭ' => '洉',\n  'ϭ' => '洐',\n  'Ϯ' => '炷',\n  'ϯ' => '炟',\n  'ϰ' => '炾',\n  'ϱ' => '炱',\n  'ϲ' => '炰',\n  'ϳ' => '炡',\n  'ϴ' => '炴',\n  'ϵ' => '炵',\n  '϶' => '炩',\n  'Ϸ' => '牁',\n  'ϸ' => '牉',\n  'Ϲ' => '牊',\n  'Ϻ' => '牬',\n  'ϻ' => '牰',\n  'ϼ' => '牳',\n  'Ͻ' => '牮',\n  'Ͼ' => '狊',\n  'Ͽ' => '狤',\n  '' => '狨',\n  '' => '狫',\n  '' => '狟',\n  '' => '狪',\n  '' => '狦',\n  '' => '狣',\n  '' => '玅',\n  '' => '珌',\n  '' => '珂',\n  '' => '珈',\n  '' => '珅',\n  '' => '玹',\n  '' => '玶',\n  '' => '玵',\n  '' => '玴',\n  '' => '珫',\n  '' => '玿',\n  '' => '珇',\n  '' => '玾',\n  '' => '珃',\n  '' => '珆',\n  '' => '玸',\n  '' => '珋',\n  '' => '瓬',\n  '' => '瓮',\n  '' => '甮',\n  '' => '畇',\n  '' => '畈',\n  '' => '疧',\n  '' => '疪',\n  '' => '癹',\n  '' => '盄',\n  '' => '眈',\n  '' => '眃',\n  '' => '眄',\n  '' => '眅',\n  '' => '眊',\n  '' => '盷',\n  '' => '盻',\n  '' => '盺',\n  '' => '矧',\n  '' => '矨',\n  '' => '砆',\n  '' => '砑',\n  '' => '砒',\n  '' => '砅',\n  '' => '砐',\n  '' => '砏',\n  '' => '砎',\n  '' => '砉',\n  '' => '砃',\n  '' => '砓',\n  '' => '祊',\n  '' => '祌',\n  '' => '祋',\n  '' => '祅',\n  '' => '祄',\n  '' => '秕',\n  '' => '种',\n  '' => '秏',\n  '' => '秖',\n  '' => '秎',\n  '' => '窀',\n  '@' => '穾',\n  'A' => '竑',\n  'B' => '笀',\n  'C' => '笁',\n  'D' => '籺',\n  'E' => '籸',\n  'F' => '籹',\n  'G' => '籿',\n  'H' => '粀',\n  'I' => '粁',\n  'J' => '紃',\n  'K' => '紈',\n  'L' => '紁',\n  'M' => '罘',\n  'N' => '羑',\n  'O' => '羍',\n  'P' => '羾',\n  'Q' => '耇',\n  'R' => '耎',\n  'S' => '耏',\n  'T' => '耔',\n  'U' => '耷',\n  'V' => '胘',\n  'W' => '胇',\n  'X' => '胠',\n  'Y' => '胑',\n  'Z' => '胈',\n  '[' => '胂',\n  '\\\\' => '胐',\n  ']' => '胅',\n  '^' => '胣',\n  '_' => '胙',\n  '`' => '胜',\n  'a' => '胊',\n  'b' => '胕',\n  'c' => '胉',\n  'd' => '胏',\n  'e' => '胗',\n  'f' => '胦',\n  'g' => '胍',\n  'h' => '臿',\n  'i' => '舡',\n  'j' => '芔',\n  'k' => '苙',\n  'l' => '苾',\n  'm' => '苹',\n  'n' => '茇',\n  'o' => '苨',\n  'p' => '茀',\n  'q' => '苕',\n  'r' => '茺',\n  's' => '苫',\n  't' => '苖',\n  'u' => '苴',\n  'v' => '苬',\n  'w' => '苡',\n  'x' => '苲',\n  'y' => '苵',\n  'z' => '茌',\n  '{' => '苻',\n  '|' => '苶',\n  '}' => '苰',\n  '~' => '苪',\n  'С' => '苤',\n  'Т' => '苠',\n  'У' => '苺',\n  'Ф' => '苳',\n  'Х' => '苭',\n  'Ц' => '虷',\n  'Ч' => '虴',\n  'Ш' => '虼',\n  'Щ' => '虳',\n  'Ъ' => '衁',\n  'Ы' => '衎',\n  'Ь' => '衧',\n  'Э' => '衪',\n  'Ю' => '衩',\n  'Я' => '觓',\n  'а' => '訄',\n  'б' => '訇',\n  'в' => '赲',\n  'г' => '迣',\n  'д' => '迡',\n  'е' => '迮',\n  'ж' => '迠',\n  'з' => '郱',\n  'и' => '邽',\n  'й' => '邿',\n  'к' => '郕',\n  'л' => '郅',\n  'м' => '邾',\n  'н' => '郇',\n  'о' => '郋',\n  'п' => '郈',\n  '' => '釔',\n  '' => '釓',\n  '' => '陔',\n  '' => '陏',\n  '' => '陑',\n  '' => '陓',\n  '' => '陊',\n  '' => '陎',\n  '' => '倞',\n  '' => '倅',\n  '' => '倇',\n  '' => '倓',\n  '' => '倢',\n  '' => '倰',\n  '' => '倛',\n  '' => '俵',\n  '' => '俴',\n  '' => '倳',\n  '' => '倷',\n  '' => '倬',\n  '' => '俶',\n  '' => '俷',\n  '' => '倗',\n  '' => '倜',\n  '' => '倠',\n  '' => '倧',\n  '' => '倵',\n  '' => '倯',\n  '' => '倱',\n  '' => '倎',\n  '' => '党',\n  '' => '冔',\n  '' => '冓',\n  '' => '凊',\n  '' => '凄',\n  '' => '凅',\n  '' => '凈',\n  '' => '凎',\n  '' => '剡',\n  '' => '剚',\n  '' => '剒',\n  '' => '剞',\n  '' => '剟',\n  '' => '剕',\n  '' => '剢',\n  '' => '勍',\n  '' => '匎',\n  '' => '厞',\n  '' => '唦',\n  '' => '哢',\n  '' => '唗',\n  '' => '唒',\n  '' => '哧',\n  '' => '哳',\n  '' => '哤',\n  '' => '唚',\n  '' => '哿',\n  '' => '唄',\n  '' => '唈',\n  '' => '哫',\n  '' => '唑',\n  '' => '唅',\n  '' => '哱',\n  '@' => '唊',\n  'A' => '哻',\n  'B' => '哷',\n  'C' => '哸',\n  'D' => '哠',\n  'E' => '唎',\n  'F' => '唃',\n  'G' => '唋',\n  'H' => '圁',\n  'I' => '圂',\n  'J' => '埌',\n  'K' => '堲',\n  'L' => '埕',\n  'M' => '埒',\n  'N' => '垺',\n  'O' => '埆',\n  'P' => '垽',\n  'Q' => '垼',\n  'R' => '垸',\n  'S' => '垶',\n  'T' => '垿',\n  'U' => '埇',\n  'V' => '埐',\n  'W' => '垹',\n  'X' => '埁',\n  'Y' => '夎',\n  'Z' => '奊',\n  '[' => '娙',\n  '\\\\' => '娖',\n  ']' => '娭',\n  '^' => '娮',\n  '_' => '娕',\n  '`' => '娏',\n  'a' => '娗',\n  'b' => '娊',\n  'c' => '娞',\n  'd' => '娳',\n  'e' => '孬',\n  'f' => '宧',\n  'g' => '宭',\n  'h' => '宬',\n  'i' => '尃',\n  'j' => '屖',\n  'k' => '屔',\n  'l' => '峬',\n  'm' => '峿',\n  'n' => '峮',\n  'o' => '峱',\n  'p' => '峷',\n  'q' => '崀',\n  'r' => '峹',\n  's' => '帩',\n  't' => '帨',\n  'u' => '庨',\n  'v' => '庮',\n  'w' => '庪',\n  'x' => '庬',\n  'y' => '弳',\n  'z' => '弰',\n  '{' => '彧',\n  '|' => '恝',\n  '}' => '恚',\n  '~' => '恧',\n  'ѡ' => '恁',\n  'Ѣ' => '悢',\n  'ѣ' => '悈',\n  'Ѥ' => '悀',\n  'ѥ' => '悒',\n  'Ѧ' => '悁',\n  'ѧ' => '悝',\n  'Ѩ' => '悃',\n  'ѩ' => '悕',\n  'Ѫ' => '悛',\n  'ѫ' => '悗',\n  'Ѭ' => '悇',\n  'ѭ' => '悜',\n  'Ѯ' => '悎',\n  'ѯ' => '戙',\n  'Ѱ' => '扆',\n  'ѱ' => '拲',\n  'Ѳ' => '挐',\n  'ѳ' => '捖',\n  'Ѵ' => '挬',\n  'ѵ' => '捄',\n  'Ѷ' => '捅',\n  'ѷ' => '挶',\n  'Ѹ' => '捃',\n  'ѹ' => '揤',\n  'Ѻ' => '挹',\n  'ѻ' => '捋',\n  'Ѽ' => '捊',\n  'ѽ' => '挼',\n  'Ѿ' => '挩',\n  'ѿ' => '捁',\n  '' => '挴',\n  '' => '捘',\n  '' => '捔',\n  '' => '捙',\n  '' => '挭',\n  '' => '捇',\n  '' => '挳',\n  '' => '捚',\n  '' => '捑',\n  '' => '挸',\n  '' => '捗',\n  '' => '捀',\n  '' => '捈',\n  '' => '敊',\n  '' => '敆',\n  '' => '旆',\n  '' => '旃',\n  '' => '旄',\n  '' => '旂',\n  '' => '晊',\n  '' => '晟',\n  '' => '晇',\n  '' => '晑',\n  '' => '朒',\n  '' => '朓',\n  '' => '栟',\n  '' => '栚',\n  '' => '桉',\n  '' => '栲',\n  '' => '栳',\n  '' => '栻',\n  '' => '桋',\n  '' => '桏',\n  '' => '栖',\n  '' => '栱',\n  '' => '栜',\n  '' => '栵',\n  '' => '栫',\n  '' => '栭',\n  '' => '栯',\n  '' => '桎',\n  '' => '桄',\n  '' => '栴',\n  '' => '栝',\n  '' => '栒',\n  '' => '栔',\n  '' => '栦',\n  '' => '栨',\n  '' => '栮',\n  '' => '桍',\n  '' => '栺',\n  '' => '栥',\n  '' => '栠',\n  '' => '欬',\n  '' => '欯',\n  '' => '欭',\n  '' => '欱',\n  '' => '欴',\n  '' => '歭',\n  '' => '肂',\n  '' => '殈',\n  '' => '毦',\n  '' => '毤',\n  '@' => '毨',\n  'A' => '毣',\n  'B' => '毢',\n  'C' => '毧',\n  'D' => '氥',\n  'E' => '浺',\n  'F' => '浣',\n  'G' => '浤',\n  'H' => '浶',\n  'I' => '洍',\n  'J' => '浡',\n  'K' => '涒',\n  'L' => '浘',\n  'M' => '浢',\n  'N' => '浭',\n  'O' => '浯',\n  'P' => '涑',\n  'Q' => '涍',\n  'R' => '淯',\n  'S' => '浿',\n  'T' => '涆',\n  'U' => '浞',\n  'V' => '浧',\n  'W' => '浠',\n  'X' => '涗',\n  'Y' => '浰',\n  'Z' => '浼',\n  '[' => '浟',\n  '\\\\' => '涂',\n  ']' => '涘',\n  '^' => '洯',\n  '_' => '浨',\n  '`' => '涋',\n  'a' => '浾',\n  'b' => '涀',\n  'c' => '涄',\n  'd' => '洖',\n  'e' => '涃',\n  'f' => '浻',\n  'g' => '浽',\n  'h' => '浵',\n  'i' => '涐',\n  'j' => '烜',\n  'k' => '烓',\n  'l' => '烑',\n  'm' => '烝',\n  'n' => '烋',\n  'o' => '缹',\n  'p' => '烢',\n  'q' => '烗',\n  'r' => '烒',\n  's' => '烞',\n  't' => '烠',\n  'u' => '烔',\n  'v' => '烍',\n  'w' => '烅',\n  'x' => '烆',\n  'y' => '烇',\n  'z' => '烚',\n  '{' => '烎',\n  '|' => '烡',\n  '}' => '牂',\n  '~' => '牸',\n  'ҡ' => '牷',\n  'Ң' => '牶',\n  'ң' => '猀',\n  'Ҥ' => '狺',\n  'ҥ' => '狴',\n  'Ҧ' => '狾',\n  'ҧ' => '狶',\n  'Ҩ' => '狳',\n  'ҩ' => '狻',\n  'Ҫ' => '猁',\n  'ҫ' => '珓',\n  'Ҭ' => '珙',\n  'ҭ' => '珥',\n  'Ү' => '珖',\n  'ү' => '玼',\n  'Ұ' => '珧',\n  'ұ' => '珣',\n  'Ҳ' => '珩',\n  'ҳ' => '珜',\n  'Ҵ' => '珒',\n  'ҵ' => '珛',\n  'Ҷ' => '珔',\n  'ҷ' => '珝',\n  'Ҹ' => '珚',\n  'ҹ' => '珗',\n  'Һ' => '珘',\n  'һ' => '珨',\n  'Ҽ' => '瓞',\n  'ҽ' => '瓟',\n  'Ҿ' => '瓴',\n  'ҿ' => '瓵',\n  '' => '甡',\n  '' => '畛',\n  '' => '畟',\n  '' => '疰',\n  '' => '痁',\n  '' => '疻',\n  '' => '痄',\n  '' => '痀',\n  '' => '疿',\n  '' => '疶',\n  '' => '疺',\n  '' => '皊',\n  '' => '盉',\n  '' => '眝',\n  '' => '眛',\n  '' => '眐',\n  '' => '眓',\n  '' => '眒',\n  '' => '眣',\n  '' => '眑',\n  '' => '眕',\n  '' => '眙',\n  '' => '眚',\n  '' => '眢',\n  '' => '眧',\n  '' => '砣',\n  '' => '砬',\n  '' => '砢',\n  '' => '砵',\n  '' => '砯',\n  '' => '砨',\n  '' => '砮',\n  '' => '砫',\n  '' => '砡',\n  '' => '砩',\n  '' => '砳',\n  '' => '砪',\n  '' => '砱',\n  '' => '祔',\n  '' => '祛',\n  '' => '祏',\n  '' => '祜',\n  '' => '祓',\n  '' => '祒',\n  '' => '祑',\n  '' => '秫',\n  '' => '秬',\n  '' => '秠',\n  '' => '秮',\n  '' => '秭',\n  '' => '秪',\n  '' => '秜',\n  '' => '秞',\n  '' => '秝',\n  '' => '窆',\n  '' => '窉',\n  '' => '窅',\n  '' => '窋',\n  '' => '窌',\n  '' => '窊',\n  '' => '窇',\n  '' => '竘',\n  '' => '笐',\n  '@' => '笄',\n  'A' => '笓',\n  'B' => '笅',\n  'C' => '笏',\n  'D' => '笈',\n  'E' => '笊',\n  'F' => '笎',\n  'G' => '笉',\n  'H' => '笒',\n  'I' => '粄',\n  'J' => '粑',\n  'K' => '粊',\n  'L' => '粌',\n  'M' => '粈',\n  'N' => '粍',\n  'O' => '粅',\n  'P' => '紞',\n  'Q' => '紝',\n  'R' => '紑',\n  'S' => '紎',\n  'T' => '紘',\n  'U' => '紖',\n  'V' => '紓',\n  'W' => '紟',\n  'X' => '紒',\n  'Y' => '紏',\n  'Z' => '紌',\n  '[' => '罜',\n  '\\\\' => '罡',\n  ']' => '罞',\n  '^' => '罠',\n  '_' => '罝',\n  '`' => '罛',\n  'a' => '羖',\n  'b' => '羒',\n  'c' => '翃',\n  'd' => '翂',\n  'e' => '翀',\n  'f' => '耖',\n  'g' => '耾',\n  'h' => '耹',\n  'i' => '胺',\n  'j' => '胲',\n  'k' => '胹',\n  'l' => '胵',\n  'm' => '脁',\n  'n' => '胻',\n  'o' => '脀',\n  'p' => '舁',\n  'q' => '舯',\n  'r' => '舥',\n  's' => '茳',\n  't' => '茭',\n  'u' => '荄',\n  'v' => '茙',\n  'w' => '荑',\n  'x' => '茥',\n  'y' => '荖',\n  'z' => '茿',\n  '{' => '荁',\n  '|' => '茦',\n  '}' => '茜',\n  '~' => '茢',\n  'ӡ' => '荂',\n  'Ӣ' => '荎',\n  'ӣ' => '茛',\n  'Ӥ' => '茪',\n  'ӥ' => '茈',\n  'Ӧ' => '茼',\n  'ӧ' => '荍',\n  'Ө' => '茖',\n  'ө' => '茤',\n  'Ӫ' => '茠',\n  'ӫ' => '茷',\n  'Ӭ' => '茯',\n  'ӭ' => '茩',\n  'Ӯ' => '荇',\n  'ӯ' => '荅',\n  'Ӱ' => '荌',\n  'ӱ' => '荓',\n  'Ӳ' => '茞',\n  'ӳ' => '茬',\n  'Ӵ' => '荋',\n  'ӵ' => '茧',\n  'Ӷ' => '荈',\n  'ӷ' => '虓',\n  'Ӹ' => '虒',\n  'ӹ' => '蚢',\n  'Ӻ' => '蚨',\n  'ӻ' => '蚖',\n  'Ӽ' => '蚍',\n  'ӽ' => '蚑',\n  'Ӿ' => '蚞',\n  'ӿ' => '蚇',\n  '' => '蚗',\n  '' => '蚆',\n  '' => '蚋',\n  '' => '蚚',\n  '' => '蚅',\n  '' => '蚥',\n  '' => '蚙',\n  '' => '蚡',\n  '' => '蚧',\n  '' => '蚕',\n  '' => '蚘',\n  '' => '蚎',\n  '' => '蚝',\n  '' => '蚐',\n  '' => '蚔',\n  '' => '衃',\n  '' => '衄',\n  '' => '衭',\n  '' => '衵',\n  '' => '衶',\n  '' => '衲',\n  '' => '袀',\n  '' => '衱',\n  '' => '衿',\n  '' => '衯',\n  '' => '袃',\n  '' => '衾',\n  '' => '衴',\n  '' => '衼',\n  '' => '訒',\n  '' => '豇',\n  '' => '豗',\n  '' => '豻',\n  '' => '貤',\n  '' => '貣',\n  '' => '赶',\n  '' => '赸',\n  '' => '趵',\n  '' => '趷',\n  '' => '趶',\n  '' => '軑',\n  '' => '軓',\n  '' => '迾',\n  '' => '迵',\n  '' => '适',\n  '' => '迿',\n  '' => '迻',\n  '' => '逄',\n  '' => '迼',\n  '' => '迶',\n  '' => '郖',\n  '' => '郠',\n  '' => '郙',\n  '' => '郚',\n  '' => '郣',\n  '' => '郟',\n  '' => '郥',\n  '' => '郘',\n  '' => '郛',\n  '' => '郗',\n  '' => '郜',\n  '' => '郤',\n  '' => '酐',\n  '@' => '酎',\n  'A' => '酏',\n  'B' => '釕',\n  'C' => '釢',\n  'D' => '釚',\n  'E' => '陜',\n  'F' => '陟',\n  'G' => '隼',\n  'H' => '飣',\n  'I' => '髟',\n  'J' => '鬯',\n  'K' => '乿',\n  'L' => '偰',\n  'M' => '偪',\n  'N' => '偡',\n  'O' => '偞',\n  'P' => '偠',\n  'Q' => '偓',\n  'R' => '偋',\n  'S' => '偝',\n  'T' => '偲',\n  'U' => '偈',\n  'V' => '偍',\n  'W' => '偁',\n  'X' => '偛',\n  'Y' => '偊',\n  'Z' => '偢',\n  '[' => '倕',\n  '\\\\' => '偅',\n  ']' => '偟',\n  '^' => '偩',\n  '_' => '偫',\n  '`' => '偣',\n  'a' => '偤',\n  'b' => '偆',\n  'c' => '偀',\n  'd' => '偮',\n  'e' => '偳',\n  'f' => '偗',\n  'g' => '偑',\n  'h' => '凐',\n  'i' => '剫',\n  'j' => '剭',\n  'k' => '剬',\n  'l' => '剮',\n  'm' => '勖',\n  'n' => '勓',\n  'o' => '匭',\n  'p' => '厜',\n  'q' => '啵',\n  'r' => '啶',\n  's' => '唼',\n  't' => '啍',\n  'u' => '啐',\n  'v' => '唴',\n  'w' => '唪',\n  'x' => '啑',\n  'y' => '啢',\n  'z' => '唶',\n  '{' => '唵',\n  '|' => '唰',\n  '}' => '啒',\n  '~' => '啅',\n  'ԡ' => '唌',\n  'Ԣ' => '唲',\n  'ԣ' => '啥',\n  'Ԥ' => '啎',\n  'ԥ' => '唹',\n  'Ԧ' => '啈',\n  'ԧ' => '唭',\n  'Ԩ' => '唻',\n  'ԩ' => '啀',\n  'Ԫ' => '啋',\n  'ԫ' => '圊',\n  'Ԭ' => '圇',\n  'ԭ' => '埻',\n  'Ԯ' => '堔',\n  'ԯ' => '埢',\n  '԰' => '埶',\n  'Ա' => '埜',\n  'Բ' => '埴',\n  'Գ' => '堀',\n  'Դ' => '埭',\n  'Ե' => '埽',\n  'Զ' => '堈',\n  'Է' => '埸',\n  'Ը' => '堋',\n  'Թ' => '埳',\n  'Ժ' => '埏',\n  'Ի' => '堇',\n  'Լ' => '埮',\n  'Խ' => '埣',\n  'Ծ' => '埲',\n  'Կ' => '埥',\n  '' => '埬',\n  '' => '埡',\n  '' => '堎',\n  '' => '埼',\n  '' => '堐',\n  '' => '埧',\n  '' => '堁',\n  '' => '堌',\n  '' => '埱',\n  '' => '埩',\n  '' => '埰',\n  '' => '堍',\n  '' => '堄',\n  '' => '奜',\n  '' => '婠',\n  '' => '婘',\n  '' => '婕',\n  '' => '婧',\n  '' => '婞',\n  '' => '娸',\n  '' => '娵',\n  '' => '婭',\n  '' => '婐',\n  '' => '婟',\n  '' => '婥',\n  '' => '婬',\n  '' => '婓',\n  '' => '婤',\n  '' => '婗',\n  '' => '婃',\n  '' => '婝',\n  '' => '婒',\n  '' => '婄',\n  '' => '婛',\n  '' => '婈',\n  '' => '媎',\n  '' => '娾',\n  '' => '婍',\n  '' => '娹',\n  '' => '婌',\n  '' => '婰',\n  '' => '婩',\n  '' => '婇',\n  '' => '婑',\n  '' => '婖',\n  '' => '婂',\n  '' => '婜',\n  '' => '孲',\n  '' => '孮',\n  '' => '寁',\n  '' => '寀',\n  '' => '屙',\n  '' => '崞',\n  '' => '崋',\n  '' => '崝',\n  '' => '崚',\n  '' => '崠',\n  '' => '崌',\n  '' => '崨',\n  '' => '崍',\n  '' => '崦',\n  '' => '崥',\n  '' => '崏',\n  '@' => '崰',\n  'A' => '崒',\n  'B' => '崣',\n  'C' => '崟',\n  'D' => '崮',\n  'E' => '帾',\n  'F' => '帴',\n  'G' => '庱',\n  'H' => '庴',\n  'I' => '庹',\n  'J' => '庲',\n  'K' => '庳',\n  'L' => '弶',\n  'M' => '弸',\n  'N' => '徛',\n  'O' => '徖',\n  'P' => '徟',\n  'Q' => '悊',\n  'R' => '悐',\n  'S' => '悆',\n  'T' => '悾',\n  'U' => '悰',\n  'V' => '悺',\n  'W' => '惓',\n  'X' => '惔',\n  'Y' => '惏',\n  'Z' => '惤',\n  '[' => '惙',\n  '\\\\' => '惝',\n  ']' => '惈',\n  '^' => '悱',\n  '_' => '惛',\n  '`' => '悷',\n  'a' => '惊',\n  'b' => '悿',\n  'c' => '惃',\n  'd' => '惍',\n  'e' => '惀',\n  'f' => '挲',\n  'g' => '捥',\n  'h' => '掊',\n  'i' => '掂',\n  'j' => '捽',\n  'k' => '掽',\n  'l' => '掞',\n  'm' => '掭',\n  'n' => '掝',\n  'o' => '掗',\n  'p' => '掫',\n  'q' => '掎',\n  'r' => '捯',\n  's' => '掇',\n  't' => '掐',\n  'u' => '据',\n  'v' => '掯',\n  'w' => '捵',\n  'x' => '掜',\n  'y' => '捭',\n  'z' => '掮',\n  '{' => '捼',\n  '|' => '掤',\n  '}' => '挻',\n  '~' => '掟',\n  'ա' => '捸',\n  'բ' => '掅',\n  'գ' => '掁',\n  'դ' => '掑',\n  'ե' => '掍',\n  'զ' => '捰',\n  'է' => '敓',\n  'ը' => '旍',\n  'թ' => '晥',\n  'ժ' => '晡',\n  'ի' => '晛',\n  'լ' => '晙',\n  'խ' => '晜',\n  'ծ' => '晢',\n  'կ' => '朘',\n  'հ' => '桹',\n  'ձ' => '梇',\n  'ղ' => '梐',\n  'ճ' => '梜',\n  'մ' => '桭',\n  'յ' => '桮',\n  'ն' => '梮',\n  'շ' => '梫',\n  'ո' => '楖',\n  'չ' => '桯',\n  'պ' => '梣',\n  'ջ' => '梬',\n  'ռ' => '梩',\n  'ս' => '桵',\n  'վ' => '桴',\n  'տ' => '梲',\n  '' => '梏',\n  '' => '桷',\n  '' => '梒',\n  '' => '桼',\n  '' => '桫',\n  '' => '桲',\n  '' => '梪',\n  '' => '梀',\n  '' => '桱',\n  '' => '桾',\n  '' => '梛',\n  '' => '梖',\n  '' => '梋',\n  '' => '梠',\n  '' => '梉',\n  '' => '梤',\n  '' => '桸',\n  '' => '桻',\n  '' => '梑',\n  '' => '梌',\n  '' => '梊',\n  '' => '桽',\n  '' => '欶',\n  '' => '欳',\n  '' => '欷',\n  '' => '欸',\n  '' => '殑',\n  '' => '殏',\n  '' => '殍',\n  '' => '殎',\n  '' => '殌',\n  '' => '氪',\n  '' => '淀',\n  '' => '涫',\n  '' => '涴',\n  '' => '涳',\n  '' => '湴',\n  '' => '涬',\n  '' => '淩',\n  '' => '淢',\n  '' => '涷',\n  '' => '淶',\n  '' => '淔',\n  '' => '渀',\n  '' => '淈',\n  '' => '淠',\n  '' => '淟',\n  '' => '淖',\n  '' => '涾',\n  '' => '淥',\n  '' => '淜',\n  '' => '淝',\n  '' => '淛',\n  '' => '淴',\n  '' => '淊',\n  '' => '涽',\n  '' => '淭',\n  '' => '淰',\n  '' => '涺',\n  '' => '淕',\n  '' => '淂',\n  '' => '淏',\n  '' => '淉',\n  '@' => '淐',\n  'A' => '淲',\n  'B' => '淓',\n  'C' => '淽',\n  'D' => '淗',\n  'E' => '淍',\n  'F' => '淣',\n  'G' => '涻',\n  'H' => '烺',\n  'I' => '焍',\n  'J' => '烷',\n  'K' => '焗',\n  'L' => '烴',\n  'M' => '焌',\n  'N' => '烰',\n  'O' => '焄',\n  'P' => '烳',\n  'Q' => '焐',\n  'R' => '烼',\n  'S' => '烿',\n  'T' => '焆',\n  'U' => '焓',\n  'V' => '焀',\n  'W' => '烸',\n  'X' => '烶',\n  'Y' => '焋',\n  'Z' => '焂',\n  '[' => '焎',\n  '\\\\' => '牾',\n  ']' => '牻',\n  '^' => '牼',\n  '_' => '牿',\n  '`' => '猝',\n  'a' => '猗',\n  'b' => '猇',\n  'c' => '猑',\n  'd' => '猘',\n  'e' => '猊',\n  'f' => '猈',\n  'g' => '狿',\n  'h' => '猏',\n  'i' => '猞',\n  'j' => '玈',\n  'k' => '珶',\n  'l' => '珸',\n  'm' => '珵',\n  'n' => '琄',\n  'o' => '琁',\n  'p' => '珽',\n  'q' => '琇',\n  'r' => '琀',\n  's' => '珺',\n  't' => '珼',\n  'u' => '珿',\n  'v' => '琌',\n  'w' => '琋',\n  'x' => '珴',\n  'y' => '琈',\n  'z' => '畤',\n  '{' => '畣',\n  '|' => '痎',\n  '}' => '痒',\n  '~' => '痏',\n  '֡' => '痋',\n  '֢' => '痌',\n  '֣' => '痑',\n  '֤' => '痐',\n  '֥' => '皏',\n  '֦' => '皉',\n  '֧' => '盓',\n  '֨' => '眹',\n  '֩' => '眯',\n  '֪' => '眭',\n  '֫' => '眱',\n  '֬' => '眲',\n  '֭' => '眴',\n  '֮' => '眳',\n  '֯' => '眽',\n  'ְ' => '眥',\n  'ֱ' => '眻',\n  'ֲ' => '眵',\n  'ֳ' => '硈',\n  'ִ' => '硒',\n  'ֵ' => '硉',\n  'ֶ' => '硍',\n  'ַ' => '硊',\n  'ָ' => '硌',\n  'ֹ' => '砦',\n  'ֺ' => '硅',\n  'ֻ' => '硐',\n  'ּ' => '祤',\n  'ֽ' => '祧',\n  '־' => '祩',\n  'ֿ' => '祪',\n  '' => '祣',\n  '' => '祫',\n  '' => '祡',\n  '' => '离',\n  '' => '秺',\n  '' => '秸',\n  '' => '秶',\n  '' => '秷',\n  '' => '窏',\n  '' => '窔',\n  '' => '窐',\n  '' => '笵',\n  '' => '筇',\n  '' => '笴',\n  '' => '笥',\n  '' => '笰',\n  '' => '笢',\n  '' => '笤',\n  '' => '笳',\n  '' => '笘',\n  '' => '笪',\n  '' => '笝',\n  '' => '笱',\n  '' => '笫',\n  '' => '笭',\n  '' => '笯',\n  '' => '笲',\n  '' => '笸',\n  '' => '笚',\n  '' => '笣',\n  '' => '粔',\n  '' => '粘',\n  '' => '粖',\n  '' => '粣',\n  '' => '紵',\n  '' => '紽',\n  '' => '紸',\n  '' => '紶',\n  '' => '紺',\n  '' => '絅',\n  '' => '紬',\n  '' => '紩',\n  '' => '絁',\n  '' => '絇',\n  '' => '紾',\n  '' => '紿',\n  '' => '絊',\n  '' => '紻',\n  '' => '紨',\n  '' => '罣',\n  '' => '羕',\n  '' => '羜',\n  '' => '羝',\n  '' => '羛',\n  '' => '翊',\n  '' => '翋',\n  '' => '翍',\n  '' => '翐',\n  '' => '翑',\n  '' => '翇',\n  '' => '翏',\n  '' => '翉',\n  '' => '耟',\n  '@' => '耞',\n  'A' => '耛',\n  'B' => '聇',\n  'C' => '聃',\n  'D' => '聈',\n  'E' => '脘',\n  'F' => '脥',\n  'G' => '脙',\n  'H' => '脛',\n  'I' => '脭',\n  'J' => '脟',\n  'K' => '脬',\n  'L' => '脞',\n  'M' => '脡',\n  'N' => '脕',\n  'O' => '脧',\n  'P' => '脝',\n  'Q' => '脢',\n  'R' => '舑',\n  'S' => '舸',\n  'T' => '舳',\n  'U' => '舺',\n  'V' => '舴',\n  'W' => '舲',\n  'X' => '艴',\n  'Y' => '莐',\n  'Z' => '莣',\n  '[' => '莨',\n  '\\\\' => '莍',\n  ']' => '荺',\n  '^' => '荳',\n  '_' => '莤',\n  '`' => '荴',\n  'a' => '莏',\n  'b' => '莁',\n  'c' => '莕',\n  'd' => '莙',\n  'e' => '荵',\n  'f' => '莔',\n  'g' => '莩',\n  'h' => '荽',\n  'i' => '莃',\n  'j' => '莌',\n  'k' => '莝',\n  'l' => '莛',\n  'm' => '莪',\n  'n' => '莋',\n  'o' => '荾',\n  'p' => '莥',\n  'q' => '莯',\n  'r' => '莈',\n  's' => '莗',\n  't' => '莰',\n  'u' => '荿',\n  'v' => '莦',\n  'w' => '莇',\n  'x' => '莮',\n  'y' => '荶',\n  'z' => '莚',\n  '{' => '虙',\n  '|' => '虖',\n  '}' => '蚿',\n  '~' => '蚷',\n  'ס' => '蛂',\n  'ע' => '蛁',\n  'ף' => '蛅',\n  'פ' => '蚺',\n  'ץ' => '蚰',\n  'צ' => '蛈',\n  'ק' => '蚹',\n  'ר' => '蚳',\n  'ש' => '蚸',\n  'ת' => '蛌',\n  '׫' => '蚴',\n  '׬' => '蚻',\n  '׭' => '蚼',\n  '׮' => '蛃',\n  'ׯ' => '蚽',\n  'װ' => '蚾',\n  'ױ' => '衒',\n  'ײ' => '袉',\n  '׳' => '袕',\n  '״' => '袨',\n  '׵' => '袢',\n  '׶' => '袪',\n  '׷' => '袚',\n  '׸' => '袑',\n  '׹' => '袡',\n  '׺' => '袟',\n  '׻' => '袘',\n  '׼' => '袧',\n  '׽' => '袙',\n  '׾' => '袛',\n  '׿' => '袗',\n  '' => '袤',\n  '' => '袬',\n  '' => '袌',\n  '' => '袓',\n  '' => '袎',\n  '' => '覂',\n  '' => '觖',\n  '' => '觙',\n  '' => '觕',\n  '' => '訰',\n  '' => '訧',\n  '' => '訬',\n  '' => '訞',\n  '' => '谹',\n  '' => '谻',\n  '' => '豜',\n  '' => '豝',\n  '' => '豽',\n  '' => '貥',\n  '' => '赽',\n  '' => '赻',\n  '' => '赹',\n  '' => '趼',\n  '' => '跂',\n  '' => '趹',\n  '' => '趿',\n  '' => '跁',\n  '' => '軘',\n  '' => '軞',\n  '' => '軝',\n  '' => '軜',\n  '' => '軗',\n  '' => '軠',\n  '' => '軡',\n  '' => '逤',\n  '' => '逋',\n  '' => '逑',\n  '' => '逜',\n  '' => '逌',\n  '' => '逡',\n  '' => '郯',\n  '' => '郪',\n  '' => '郰',\n  '' => '郴',\n  '' => '郲',\n  '' => '郳',\n  '' => '郔',\n  '' => '郫',\n  '' => '郬',\n  '' => '郩',\n  '' => '酖',\n  '' => '酘',\n  '' => '酚',\n  '' => '酓',\n  '' => '酕',\n  '' => '釬',\n  '' => '釴',\n  '' => '釱',\n  '' => '釳',\n  '' => '釸',\n  '' => '釤',\n  '' => '釹',\n  '' => '釪',\n  '@' => '釫',\n  'A' => '釷',\n  'B' => '釨',\n  'C' => '釮',\n  'D' => '镺',\n  'E' => '閆',\n  'F' => '閈',\n  'G' => '陼',\n  'H' => '陭',\n  'I' => '陫',\n  'J' => '陱',\n  'K' => '陯',\n  'L' => '隿',\n  'M' => '靪',\n  'N' => '頄',\n  'O' => '飥',\n  'P' => '馗',\n  'Q' => '傛',\n  'R' => '傕',\n  'S' => '傔',\n  'T' => '傞',\n  'U' => '傋',\n  'V' => '傣',\n  'W' => '傃',\n  'X' => '傌',\n  'Y' => '傎',\n  'Z' => '傝',\n  '[' => '偨',\n  '\\\\' => '傜',\n  ']' => '傒',\n  '^' => '傂',\n  '_' => '傇',\n  '`' => '兟',\n  'a' => '凔',\n  'b' => '匒',\n  'c' => '匑',\n  'd' => '厤',\n  'e' => '厧',\n  'f' => '喑',\n  'g' => '喨',\n  'h' => '喥',\n  'i' => '喭',\n  'j' => '啷',\n  'k' => '噅',\n  'l' => '喢',\n  'm' => '喓',\n  'n' => '喈',\n  'o' => '喏',\n  'p' => '喵',\n  'q' => '喁',\n  'r' => '喣',\n  's' => '喒',\n  't' => '喤',\n  'u' => '啽',\n  'v' => '喌',\n  'w' => '喦',\n  'x' => '啿',\n  'y' => '喕',\n  'z' => '喡',\n  '{' => '喎',\n  '|' => '圌',\n  '}' => '堩',\n  '~' => '堷',\n  'ء' => '堙',\n  'آ' => '堞',\n  'أ' => '堧',\n  'ؤ' => '堣',\n  'إ' => '堨',\n  'ئ' => '埵',\n  'ا' => '塈',\n  'ب' => '堥',\n  'ة' => '堜',\n  'ت' => '堛',\n  'ث' => '堳',\n  'ج' => '堿',\n  'ح' => '堶',\n  'خ' => '堮',\n  'د' => '堹',\n  'ذ' => '堸',\n  'ر' => '堭',\n  'ز' => '堬',\n  'س' => '堻',\n  'ش' => '奡',\n  'ص' => '媯',\n  'ض' => '媔',\n  'ط' => '媟',\n  'ظ' => '婺',\n  'ع' => '媢',\n  'غ' => '媞',\n  'ػ' => '婸',\n  'ؼ' => '媦',\n  'ؽ' => '婼',\n  'ؾ' => '媥',\n  'ؿ' => '媬',\n  '' => '媕',\n  '' => '媮',\n  '' => '娷',\n  '' => '媄',\n  '' => '媊',\n  '' => '媗',\n  '' => '媃',\n  '' => '媋',\n  '' => '媩',\n  '' => '婻',\n  '' => '婽',\n  '' => '媌',\n  '' => '媜',\n  '' => '媏',\n  '' => '媓',\n  '' => '媝',\n  '' => '寪',\n  '' => '寍',\n  '' => '寋',\n  '' => '寔',\n  '' => '寑',\n  '' => '寊',\n  '' => '寎',\n  '' => '尌',\n  '' => '尰',\n  '' => '崷',\n  '' => '嵃',\n  '' => '嵫',\n  '' => '嵁',\n  '' => '嵋',\n  '' => '崿',\n  '' => '崵',\n  '' => '嵑',\n  '' => '嵎',\n  '' => '嵕',\n  '' => '崳',\n  '' => '崺',\n  '' => '嵒',\n  '' => '崽',\n  '' => '崱',\n  '' => '嵙',\n  '' => '嵂',\n  '' => '崹',\n  '' => '嵉',\n  '' => '崸',\n  '' => '崼',\n  '' => '崲',\n  '' => '崶',\n  '' => '嵀',\n  '' => '嵅',\n  '' => '幄',\n  '' => '幁',\n  '' => '彘',\n  '' => '徦',\n  '' => '徥',\n  '' => '徫',\n  '' => '惉',\n  '' => '悹',\n  '' => '惌',\n  '' => '惢',\n  '' => '惎',\n  '' => '惄',\n  '' => '愔',\n  '@' => '惲',\n  'A' => '愊',\n  'B' => '愖',\n  'C' => '愅',\n  'D' => '惵',\n  'E' => '愓',\n  'F' => '惸',\n  'G' => '惼',\n  'H' => '惾',\n  'I' => '惁',\n  'J' => '愃',\n  'K' => '愘',\n  'L' => '愝',\n  'M' => '愐',\n  'N' => '惿',\n  'O' => '愄',\n  'P' => '愋',\n  'Q' => '扊',\n  'R' => '掔',\n  'S' => '掱',\n  'T' => '掰',\n  'U' => '揎',\n  'V' => '揥',\n  'W' => '揨',\n  'X' => '揯',\n  'Y' => '揃',\n  'Z' => '撝',\n  '[' => '揳',\n  '\\\\' => '揊',\n  ']' => '揠',\n  '^' => '揶',\n  '_' => '揕',\n  '`' => '揲',\n  'a' => '揵',\n  'b' => '摡',\n  'c' => '揟',\n  'd' => '掾',\n  'e' => '揝',\n  'f' => '揜',\n  'g' => '揄',\n  'h' => '揘',\n  'i' => '揓',\n  'j' => '揂',\n  'k' => '揇',\n  'l' => '揌',\n  'm' => '揋',\n  'n' => '揈',\n  'o' => '揰',\n  'p' => '揗',\n  'q' => '揙',\n  'r' => '攲',\n  's' => '敧',\n  't' => '敪',\n  'u' => '敤',\n  'v' => '敜',\n  'w' => '敨',\n  'x' => '敥',\n  'y' => '斌',\n  'z' => '斝',\n  '{' => '斞',\n  '|' => '斮',\n  '}' => '旐',\n  '~' => '旒',\n  '١' => '晼',\n  '٢' => '晬',\n  '٣' => '晻',\n  '٤' => '暀',\n  '٥' => '晱',\n  '٦' => '晹',\n  '٧' => '晪',\n  '٨' => '晲',\n  '٩' => '朁',\n  '٪' => '椌',\n  '٫' => '棓',\n  '٬' => '椄',\n  '٭' => '棜',\n  'ٮ' => '椪',\n  'ٯ' => '棬',\n  'ٰ' => '棪',\n  'ٱ' => '棱',\n  'ٲ' => '椏',\n  'ٳ' => '棖',\n  'ٴ' => '棷',\n  'ٵ' => '棫',\n  'ٶ' => '棤',\n  'ٷ' => '棶',\n  'ٸ' => '椓',\n  'ٹ' => '椐',\n  'ٺ' => '棳',\n  'ٻ' => '棡',\n  'ټ' => '椇',\n  'ٽ' => '棌',\n  'پ' => '椈',\n  'ٿ' => '楰',\n  '' => '梴',\n  '' => '椑',\n  '' => '棯',\n  '' => '棆',\n  '' => '椔',\n  '' => '棸',\n  '' => '棐',\n  '' => '棽',\n  '' => '棼',\n  '' => '棨',\n  '' => '椋',\n  '' => '椊',\n  '' => '椗',\n  '' => '棎',\n  '' => '棈',\n  '' => '棝',\n  '' => '棞',\n  '' => '棦',\n  '' => '棴',\n  '' => '棑',\n  '' => '椆',\n  '' => '棔',\n  '' => '棩',\n  '' => '椕',\n  '' => '椥',\n  '' => '棇',\n  '' => '欹',\n  '' => '欻',\n  '' => '欿',\n  '' => '欼',\n  '' => '殔',\n  '' => '殗',\n  '' => '殙',\n  '' => '殕',\n  '' => '殽',\n  '' => '毰',\n  '' => '毲',\n  '' => '毳',\n  '' => '氰',\n  '' => '淼',\n  '' => '湆',\n  '' => '湇',\n  '' => '渟',\n  '' => '湉',\n  '' => '溈',\n  '' => '渼',\n  '' => '渽',\n  '' => '湅',\n  '' => '湢',\n  '' => '渫',\n  '' => '渿',\n  '' => '湁',\n  '' => '湝',\n  '' => '湳',\n  '' => '渜',\n  '' => '渳',\n  '' => '湋',\n  '' => '湀',\n  '' => '湑',\n  '' => '渻',\n  '' => '渃',\n  '' => '渮',\n  '' => '湞',\n  '@' => '湨',\n  'A' => '湜',\n  'B' => '湡',\n  'C' => '渱',\n  'D' => '渨',\n  'E' => '湠',\n  'F' => '湱',\n  'G' => '湫',\n  'H' => '渹',\n  'I' => '渢',\n  'J' => '渰',\n  'K' => '湓',\n  'L' => '湥',\n  'M' => '渧',\n  'N' => '湸',\n  'O' => '湤',\n  'P' => '湷',\n  'Q' => '湕',\n  'R' => '湹',\n  'S' => '湒',\n  'T' => '湦',\n  'U' => '渵',\n  'V' => '渶',\n  'W' => '湚',\n  'X' => '焠',\n  'Y' => '焞',\n  'Z' => '焯',\n  '[' => '烻',\n  '\\\\' => '焮',\n  ']' => '焱',\n  '^' => '焣',\n  '_' => '焥',\n  '`' => '焢',\n  'a' => '焲',\n  'b' => '焟',\n  'c' => '焨',\n  'd' => '焺',\n  'e' => '焛',\n  'f' => '牋',\n  'g' => '牚',\n  'h' => '犈',\n  'i' => '犉',\n  'j' => '犆',\n  'k' => '犅',\n  'l' => '犋',\n  'm' => '猒',\n  'n' => '猋',\n  'o' => '猰',\n  'p' => '猢',\n  'q' => '猱',\n  'r' => '猳',\n  's' => '猧',\n  't' => '猲',\n  'u' => '猭',\n  'v' => '猦',\n  'w' => '猣',\n  'x' => '猵',\n  'y' => '猌',\n  'z' => '琮',\n  '{' => '琬',\n  '|' => '琰',\n  '}' => '琫',\n  '~' => '琖',\n  'ڡ' => '琚',\n  'ڢ' => '琡',\n  'ڣ' => '琭',\n  'ڤ' => '琱',\n  'ڥ' => '琤',\n  'ڦ' => '琣',\n  'ڧ' => '琝',\n  'ڨ' => '琩',\n  'ک' => '琠',\n  'ڪ' => '琲',\n  'ګ' => '瓻',\n  'ڬ' => '甯',\n  'ڭ' => '畯',\n  'ڮ' => '畬',\n  'گ' => '痧',\n  'ڰ' => '痚',\n  'ڱ' => '痡',\n  'ڲ' => '痦',\n  'ڳ' => '痝',\n  'ڴ' => '痟',\n  'ڵ' => '痤',\n  'ڶ' => '痗',\n  'ڷ' => '皕',\n  'ڸ' => '皒',\n  'ڹ' => '盚',\n  'ں' => '睆',\n  'ڻ' => '睇',\n  'ڼ' => '睄',\n  'ڽ' => '睍',\n  'ھ' => '睅',\n  'ڿ' => '睊',\n  '' => '睎',\n  '' => '睋',\n  '' => '睌',\n  '' => '矞',\n  '' => '矬',\n  '' => '硠',\n  '' => '硤',\n  '' => '硥',\n  '' => '硜',\n  '' => '硭',\n  '' => '硱',\n  '' => '硪',\n  '' => '确',\n  '' => '硰',\n  '' => '硩',\n  '' => '硨',\n  '' => '硞',\n  '' => '硢',\n  '' => '祴',\n  '' => '祳',\n  '' => '祲',\n  '' => '祰',\n  '' => '稂',\n  '' => '稊',\n  '' => '稃',\n  '' => '稌',\n  '' => '稄',\n  '' => '窙',\n  '' => '竦',\n  '' => '竤',\n  '' => '筊',\n  '' => '笻',\n  '' => '筄',\n  '' => '筈',\n  '' => '筌',\n  '' => '筎',\n  '' => '筀',\n  '' => '筘',\n  '' => '筅',\n  '' => '粢',\n  '' => '粞',\n  '' => '粨',\n  '' => '粡',\n  '' => '絘',\n  '' => '絯',\n  '' => '絣',\n  '' => '絓',\n  '' => '絖',\n  '' => '絧',\n  '' => '絪',\n  '' => '絏',\n  '' => '絭',\n  '' => '絜',\n  '' => '絫',\n  '' => '絒',\n  '' => '絔',\n  '' => '絩',\n  '' => '絑',\n  '' => '絟',\n  '' => '絎',\n  '' => '缾',\n  '' => '缿',\n  '' => '罥',\n  '@' => '罦',\n  'A' => '羢',\n  'B' => '羠',\n  'C' => '羡',\n  'D' => '翗',\n  'E' => '聑',\n  'F' => '聏',\n  'G' => '聐',\n  'H' => '胾',\n  'I' => '胔',\n  'J' => '腃',\n  'K' => '腊',\n  'L' => '腒',\n  'M' => '腏',\n  'N' => '腇',\n  'O' => '脽',\n  'P' => '腍',\n  'Q' => '脺',\n  'R' => '臦',\n  'S' => '臮',\n  'T' => '臷',\n  'U' => '臸',\n  'V' => '臹',\n  'W' => '舄',\n  'X' => '舼',\n  'Y' => '舽',\n  'Z' => '舿',\n  '[' => '艵',\n  '\\\\' => '茻',\n  ']' => '菏',\n  '^' => '菹',\n  '_' => '萣',\n  '`' => '菀',\n  'a' => '菨',\n  'b' => '萒',\n  'c' => '菧',\n  'd' => '菤',\n  'e' => '菼',\n  'f' => '菶',\n  'g' => '萐',\n  'h' => '菆',\n  'i' => '菈',\n  'j' => '菫',\n  'k' => '菣',\n  'l' => '莿',\n  'm' => '萁',\n  'n' => '菝',\n  'o' => '菥',\n  'p' => '菘',\n  'q' => '菿',\n  'r' => '菡',\n  's' => '菋',\n  't' => '菎',\n  'u' => '菖',\n  'v' => '菵',\n  'w' => '菉',\n  'x' => '萉',\n  'y' => '萏',\n  'z' => '菞',\n  '{' => '萑',\n  '|' => '萆',\n  '}' => '菂',\n  '~' => '菳',\n  'ۡ' => '菕',\n  'ۢ' => '菺',\n  'ۣ' => '菇',\n  'ۤ' => '菑',\n  'ۥ' => '菪',\n  'ۦ' => '萓',\n  'ۧ' => '菃',\n  'ۨ' => '菬',\n  '۩' => '菮',\n  '۪' => '菄',\n  '۫' => '菻',\n  '۬' => '菗',\n  'ۭ' => '菢',\n  'ۮ' => '萛',\n  'ۯ' => '菛',\n  '۰' => '菾',\n  '۱' => '蛘',\n  '۲' => '蛢',\n  '۳' => '蛦',\n  '۴' => '蛓',\n  '۵' => '蛣',\n  '۶' => '蛚',\n  '۷' => '蛪',\n  '۸' => '蛝',\n  '۹' => '蛫',\n  'ۺ' => '蛜',\n  'ۻ' => '蛬',\n  'ۼ' => '蛩',\n  '۽' => '蛗',\n  '۾' => '蛨',\n  'ۿ' => '蛑',\n  '' => '衈',\n  '' => '衖',\n  '' => '衕',\n  '' => '袺',\n  '' => '裗',\n  '' => '袹',\n  '' => '袸',\n  '' => '裀',\n  '' => '袾',\n  '' => '袶',\n  '' => '袼',\n  '' => '袷',\n  '' => '袽',\n  '' => '袲',\n  '' => '褁',\n  '' => '裉',\n  '' => '覕',\n  '' => '覘',\n  '' => '覗',\n  '' => '觝',\n  '' => '觚',\n  '' => '觛',\n  '' => '詎',\n  '' => '詍',\n  '' => '訹',\n  '' => '詙',\n  '' => '詀',\n  '' => '詗',\n  '' => '詘',\n  '' => '詄',\n  '' => '詅',\n  '' => '詒',\n  '' => '詈',\n  '' => '詑',\n  '' => '詊',\n  '' => '詌',\n  '' => '詏',\n  '' => '豟',\n  '' => '貁',\n  '' => '貀',\n  '' => '貺',\n  '' => '貾',\n  '' => '貰',\n  '' => '貹',\n  '' => '貵',\n  '' => '趄',\n  '' => '趀',\n  '' => '趉',\n  '' => '跘',\n  '' => '跓',\n  '' => '跍',\n  '' => '跇',\n  '' => '跖',\n  '' => '跜',\n  '' => '跏',\n  '' => '跕',\n  '' => '跙',\n  '' => '跈',\n  '' => '跗',\n  '' => '跅',\n  '' => '軯',\n  '' => '軷',\n  '' => '軺',\n  '@' => '軹',\n  'A' => '軦',\n  'B' => '軮',\n  'C' => '軥',\n  'D' => '軵',\n  'E' => '軧',\n  'F' => '軨',\n  'G' => '軶',\n  'H' => '軫',\n  'I' => '軱',\n  'J' => '軬',\n  'K' => '軴',\n  'L' => '軩',\n  'M' => '逭',\n  'N' => '逴',\n  'O' => '逯',\n  'P' => '鄆',\n  'Q' => '鄬',\n  'R' => '鄄',\n  'S' => '郿',\n  'T' => '郼',\n  'U' => '鄈',\n  'V' => '郹',\n  'W' => '郻',\n  'X' => '鄁',\n  'Y' => '鄀',\n  'Z' => '鄇',\n  '[' => '鄅',\n  '\\\\' => '鄃',\n  ']' => '酡',\n  '^' => '酤',\n  '_' => '酟',\n  '`' => '酢',\n  'a' => '酠',\n  'b' => '鈁',\n  'c' => '鈊',\n  'd' => '鈥',\n  'e' => '鈃',\n  'f' => '鈚',\n  'g' => '鈦',\n  'h' => '鈏',\n  'i' => '鈌',\n  'j' => '鈀',\n  'k' => '鈒',\n  'l' => '釿',\n  'm' => '釽',\n  'n' => '鈆',\n  'o' => '鈄',\n  'p' => '鈧',\n  'q' => '鈂',\n  'r' => '鈜',\n  's' => '鈤',\n  't' => '鈙',\n  'u' => '鈗',\n  'v' => '鈅',\n  'w' => '鈖',\n  'x' => '镻',\n  'y' => '閍',\n  'z' => '閌',\n  '{' => '閐',\n  '|' => '隇',\n  '}' => '陾',\n  '~' => '隈',\n  'ܡ' => '隉',\n  'ܢ' => '隃',\n  'ܣ' => '隀',\n  'ܤ' => '雂',\n  'ܥ' => '雈',\n  'ܦ' => '雃',\n  'ܧ' => '雱',\n  'ܨ' => '雰',\n  'ܩ' => '靬',\n  'ܪ' => '靰',\n  'ܫ' => '靮',\n  'ܬ' => '頇',\n  'ܭ' => '颩',\n  'ܮ' => '飫',\n  'ܯ' => '鳦',\n  'ܰ' => '黹',\n  'ܱ' => '亃',\n  'ܲ' => '亄',\n  'ܳ' => '亶',\n  'ܴ' => '傽',\n  'ܵ' => '傿',\n  'ܶ' => '僆',\n  'ܷ' => '傮',\n  'ܸ' => '僄',\n  'ܹ' => '僊',\n  'ܺ' => '傴',\n  'ܻ' => '僈',\n  'ܼ' => '僂',\n  'ܽ' => '傰',\n  'ܾ' => '僁',\n  'ܿ' => '傺',\n  '' => '傱',\n  '' => '僋',\n  '' => '僉',\n  '' => '傶',\n  '' => '傸',\n  '' => '凗',\n  '' => '剺',\n  '' => '剸',\n  '' => '剻',\n  '' => '剼',\n  '' => '嗃',\n  '' => '嗛',\n  '' => '嗌',\n  '' => '嗐',\n  '' => '嗋',\n  '' => '嗊',\n  '' => '嗝',\n  '' => '嗀',\n  '' => '嗔',\n  '' => '嗄',\n  '' => '嗩',\n  '' => '喿',\n  '' => '嗒',\n  '' => '喍',\n  '' => '嗏',\n  '' => '嗕',\n  '' => '嗢',\n  '' => '嗖',\n  '' => '嗈',\n  '' => '嗲',\n  '' => '嗍',\n  '' => '嗙',\n  '' => '嗂',\n  '' => '圔',\n  '' => '塓',\n  '' => '塨',\n  '' => '塤',\n  '' => '塏',\n  '' => '塍',\n  '' => '塉',\n  '' => '塯',\n  '' => '塕',\n  '' => '塎',\n  '' => '塝',\n  '' => '塙',\n  '' => '塥',\n  '' => '塛',\n  '' => '堽',\n  '' => '塣',\n  '' => '塱',\n  '' => '壼',\n  '' => '嫇',\n  '' => '嫄',\n  '' => '嫋',\n  '' => '媺',\n  '' => '媸',\n  '' => '媱',\n  '' => '媵',\n  '' => '媰',\n  '' => '媿',\n  '' => '嫈',\n  '' => '媻',\n  '' => '嫆',\n  '@' => '媷',\n  'A' => '嫀',\n  'B' => '嫊',\n  'C' => '媴',\n  'D' => '媶',\n  'E' => '嫍',\n  'F' => '媹',\n  'G' => '媐',\n  'H' => '寖',\n  'I' => '寘',\n  'J' => '寙',\n  'K' => '尟',\n  'L' => '尳',\n  'M' => '嵱',\n  'N' => '嵣',\n  'O' => '嵊',\n  'P' => '嵥',\n  'Q' => '嵲',\n  'R' => '嵬',\n  'S' => '嵞',\n  'T' => '嵨',\n  'U' => '嵧',\n  'V' => '嵢',\n  'W' => '巰',\n  'X' => '幏',\n  'Y' => '幎',\n  'Z' => '幊',\n  '[' => '幍',\n  '\\\\' => '幋',\n  ']' => '廅',\n  '^' => '廌',\n  '_' => '廆',\n  '`' => '廋',\n  'a' => '廇',\n  'b' => '彀',\n  'c' => '徯',\n  'd' => '徭',\n  'e' => '惷',\n  'f' => '慉',\n  'g' => '慊',\n  'h' => '愫',\n  'i' => '慅',\n  'j' => '愶',\n  'k' => '愲',\n  'l' => '愮',\n  'm' => '慆',\n  'n' => '愯',\n  'o' => '慏',\n  'p' => '愩',\n  'q' => '慀',\n  'r' => '戠',\n  's' => '酨',\n  't' => '戣',\n  'u' => '戥',\n  'v' => '戤',\n  'w' => '揅',\n  'x' => '揱',\n  'y' => '揫',\n  'z' => '搐',\n  '{' => '搒',\n  '|' => '搉',\n  '}' => '搠',\n  '~' => '搤',\n  'ݡ' => '搳',\n  'ݢ' => '摃',\n  'ݣ' => '搟',\n  'ݤ' => '搕',\n  'ݥ' => '搘',\n  'ݦ' => '搹',\n  'ݧ' => '搷',\n  'ݨ' => '搢',\n  'ݩ' => '搣',\n  'ݪ' => '搌',\n  'ݫ' => '搦',\n  'ݬ' => '搰',\n  'ݭ' => '搨',\n  'ݮ' => '摁',\n  'ݯ' => '搵',\n  'ݰ' => '搯',\n  'ݱ' => '搊',\n  'ݲ' => '搚',\n  'ݳ' => '摀',\n  'ݴ' => '搥',\n  'ݵ' => '搧',\n  'ݶ' => '搋',\n  'ݷ' => '揧',\n  'ݸ' => '搛',\n  'ݹ' => '搮',\n  'ݺ' => '搡',\n  'ݻ' => '搎',\n  'ݼ' => '敯',\n  'ݽ' => '斒',\n  'ݾ' => '旓',\n  'ݿ' => '暆',\n  '' => '暌',\n  '' => '暕',\n  '' => '暐',\n  '' => '暋',\n  '' => '暊',\n  '' => '暙',\n  '' => '暔',\n  '' => '晸',\n  '' => '朠',\n  '' => '楦',\n  '' => '楟',\n  '' => '椸',\n  '' => '楎',\n  '' => '楢',\n  '' => '楱',\n  '' => '椿',\n  '' => '楅',\n  '' => '楪',\n  '' => '椹',\n  '' => '楂',\n  '' => '楗',\n  '' => '楙',\n  '' => '楺',\n  '' => '楈',\n  '' => '楉',\n  '' => '椵',\n  '' => '楬',\n  '' => '椳',\n  '' => '椽',\n  '' => '楥',\n  '' => '棰',\n  '' => '楸',\n  '' => '椴',\n  '' => '楩',\n  '' => '楀',\n  '' => '楯',\n  '' => '楄',\n  '' => '楶',\n  '' => '楘',\n  '' => '楁',\n  '' => '楴',\n  '' => '楌',\n  '' => '椻',\n  '' => '楋',\n  '' => '椷',\n  '' => '楜',\n  '' => '楏',\n  '' => '楑',\n  '' => '椲',\n  '' => '楒',\n  '' => '椯',\n  '' => '楻',\n  '' => '椼',\n  '' => '歆',\n  '' => '歅',\n  '' => '歃',\n  '' => '歂',\n  '' => '歈',\n  '' => '歁',\n  '' => '殛',\n  '' => '嗀',\n  '' => '毻',\n  '' => '毼',\n  '@' => '毹',\n  'A' => '毷',\n  'B' => '毸',\n  'C' => '溛',\n  'D' => '滖',\n  'E' => '滈',\n  'F' => '溏',\n  'G' => '滀',\n  'H' => '溟',\n  'I' => '溓',\n  'J' => '溔',\n  'K' => '溠',\n  'L' => '溱',\n  'M' => '溹',\n  'N' => '滆',\n  'O' => '滒',\n  'P' => '溽',\n  'Q' => '滁',\n  'R' => '溞',\n  'S' => '滉',\n  'T' => '溷',\n  'U' => '溰',\n  'V' => '滍',\n  'W' => '溦',\n  'X' => '滏',\n  'Y' => '溲',\n  'Z' => '溾',\n  '[' => '滃',\n  '\\\\' => '滜',\n  ']' => '滘',\n  '^' => '溙',\n  '_' => '溒',\n  '`' => '溎',\n  'a' => '溍',\n  'b' => '溤',\n  'c' => '溡',\n  'd' => '溿',\n  'e' => '溳',\n  'f' => '滐',\n  'g' => '滊',\n  'h' => '溗',\n  'i' => '溮',\n  'j' => '溣',\n  'k' => '煇',\n  'l' => '煔',\n  'm' => '煒',\n  'n' => '煣',\n  'o' => '煠',\n  'p' => '煁',\n  'q' => '煝',\n  'r' => '煢',\n  's' => '煲',\n  't' => '煸',\n  'u' => '煪',\n  'v' => '煡',\n  'w' => '煂',\n  'x' => '煘',\n  'y' => '煃',\n  'z' => '煋',\n  '{' => '煰',\n  '|' => '煟',\n  '}' => '煐',\n  '~' => '煓',\n  'ޡ' => '煄',\n  'ޢ' => '煍',\n  'ޣ' => '煚',\n  'ޤ' => '牏',\n  'ޥ' => '犍',\n  'ަ' => '犌',\n  'ާ' => '犑',\n  'ި' => '犐',\n  'ީ' => '犎',\n  'ު' => '猼',\n  'ޫ' => '獂',\n  'ެ' => '猻',\n  'ޭ' => '猺',\n  'ޮ' => '獀',\n  'ޯ' => '獊',\n  'ް' => '獉',\n  'ޱ' => '瑄',\n  '޲' => '瑊',\n  '޳' => '瑋',\n  '޴' => '瑒',\n  '޵' => '瑑',\n  '޶' => '瑗',\n  '޷' => '瑀',\n  '޸' => '瑏',\n  '޹' => '瑐',\n  '޺' => '瑎',\n  '޻' => '瑂',\n  '޼' => '瑆',\n  '޽' => '瑍',\n  '޾' => '瑔',\n  '޿' => '瓡',\n  '' => '瓿',\n  '' => '瓾',\n  '' => '瓽',\n  '' => '甝',\n  '' => '畹',\n  '' => '畷',\n  '' => '榃',\n  '' => '痯',\n  '' => '瘏',\n  '' => '瘃',\n  '' => '痷',\n  '' => '痾',\n  '' => '痼',\n  '' => '痹',\n  '' => '痸',\n  '' => '瘐',\n  '' => '痻',\n  '' => '痶',\n  '' => '痭',\n  '' => '痵',\n  '' => '痽',\n  '' => '皙',\n  '' => '皵',\n  '' => '盝',\n  '' => '睕',\n  '' => '睟',\n  '' => '睠',\n  '' => '睒',\n  '' => '睖',\n  '' => '睚',\n  '' => '睩',\n  '' => '睧',\n  '' => '睔',\n  '' => '睙',\n  '' => '睭',\n  '' => '矠',\n  '' => '碇',\n  '' => '碚',\n  '' => '碔',\n  '' => '碏',\n  '' => '碄',\n  '' => '碕',\n  '' => '碅',\n  '' => '碆',\n  '' => '碡',\n  '' => '碃',\n  '' => '硹',\n  '' => '碙',\n  '' => '碀',\n  '' => '碖',\n  '' => '硻',\n  '' => '祼',\n  '' => '禂',\n  '' => '祽',\n  '' => '祹',\n  '' => '稑',\n  '' => '稘',\n  '' => '稙',\n  '' => '稒',\n  '' => '稗',\n  '' => '稕',\n  '' => '稢',\n  '' => '稓',\n  '@' => '稛',\n  'A' => '稐',\n  'B' => '窣',\n  'C' => '窢',\n  'D' => '窞',\n  'E' => '竫',\n  'F' => '筦',\n  'G' => '筤',\n  'H' => '筭',\n  'I' => '筴',\n  'J' => '筩',\n  'K' => '筲',\n  'L' => '筥',\n  'M' => '筳',\n  'N' => '筱',\n  'O' => '筰',\n  'P' => '筡',\n  'Q' => '筸',\n  'R' => '筶',\n  'S' => '筣',\n  'T' => '粲',\n  'U' => '粴',\n  'V' => '粯',\n  'W' => '綈',\n  'X' => '綆',\n  'Y' => '綀',\n  'Z' => '綍',\n  '[' => '絿',\n  '\\\\' => '綅',\n  ']' => '絺',\n  '^' => '綎',\n  '_' => '絻',\n  '`' => '綃',\n  'a' => '絼',\n  'b' => '綌',\n  'c' => '綔',\n  'd' => '綄',\n  'e' => '絽',\n  'f' => '綒',\n  'g' => '罭',\n  'h' => '罫',\n  'i' => '罧',\n  'j' => '罨',\n  'k' => '罬',\n  'l' => '羦',\n  'm' => '羥',\n  'n' => '羧',\n  'o' => '翛',\n  'p' => '翜',\n  'q' => '耡',\n  'r' => '腤',\n  's' => '腠',\n  't' => '腷',\n  'u' => '腜',\n  'v' => '腩',\n  'w' => '腛',\n  'x' => '腢',\n  'y' => '腲',\n  'z' => '朡',\n  '{' => '腞',\n  '|' => '腶',\n  '}' => '腧',\n  '~' => '腯',\n  'ߡ' => '腄',\n  'ߢ' => '腡',\n  'ߣ' => '舝',\n  'ߤ' => '艉',\n  'ߥ' => '艄',\n  'ߦ' => '艀',\n  'ߧ' => '艂',\n  'ߨ' => '艅',\n  'ߩ' => '蓱',\n  'ߪ' => '萿',\n  '߫' => '葖',\n  '߬' => '葶',\n  '߭' => '葹',\n  '߮' => '蒏',\n  '߯' => '蒍',\n  '߰' => '葥',\n  '߱' => '葑',\n  '߲' => '葀',\n  '߳' => '蒆',\n  'ߴ' => '葧',\n  'ߵ' => '萰',\n  '߶' => '葍',\n  '߷' => '葽',\n  '߸' => '葚',\n  '߹' => '葙',\n  'ߺ' => '葴',\n  '߻' => '葳',\n  '߼' => '葝',\n  '߽' => '蔇',\n  '߾' => '葞',\n  '߿' => '萷',\n  '' => '萺',\n  '' => '萴',\n  '' => '葺',\n  '' => '葃',\n  '' => '葸',\n  '' => '萲',\n  '' => '葅',\n  '' => '萩',\n  '' => '菙',\n  '' => '葋',\n  '' => '萯',\n  '' => '葂',\n  '' => '萭',\n  '' => '葟',\n  '' => '葰',\n  '' => '萹',\n  '' => '葎',\n  '' => '葌',\n  '' => '葒',\n  '' => '葯',\n  '' => '蓅',\n  '' => '蒎',\n  '' => '萻',\n  '' => '葇',\n  '' => '萶',\n  '' => '萳',\n  '' => '葨',\n  '' => '葾',\n  '' => '葄',\n  '' => '萫',\n  '' => '葠',\n  '' => '葔',\n  '' => '葮',\n  '' => '葐',\n  '' => '蜋',\n  '' => '蜄',\n  '' => '蛷',\n  '' => '蜌',\n  '' => '蛺',\n  '' => '蛖',\n  '' => '蛵',\n  '' => '蝍',\n  '' => '蛸',\n  '' => '蜎',\n  '' => '蜉',\n  '' => '蜁',\n  '' => '蛶',\n  '' => '蜍',\n  '' => '蜅',\n  '' => '裖',\n  '' => '裋',\n  '' => '裍',\n  '' => '裎',\n  '' => '裞',\n  '' => '裛',\n  '' => '裚',\n  '' => '裌',\n  '' => '裐',\n  '' => '覅',\n  '' => '覛',\n  '' => '觟',\n  '' => '觥',\n  '' => '觤',\n  '@' => '觡',\n  'A' => '觠',\n  'B' => '觢',\n  'C' => '觜',\n  'D' => '触',\n  'E' => '詶',\n  'F' => '誆',\n  'G' => '詿',\n  'H' => '詡',\n  'I' => '訿',\n  'J' => '詷',\n  'K' => '誂',\n  'L' => '誄',\n  'M' => '詵',\n  'N' => '誃',\n  'O' => '誁',\n  'P' => '詴',\n  'Q' => '詺',\n  'R' => '谼',\n  'S' => '豋',\n  'T' => '豊',\n  'U' => '豥',\n  'V' => '豤',\n  'W' => '豦',\n  'X' => '貆',\n  'Y' => '貄',\n  'Z' => '貅',\n  '[' => '賌',\n  '\\\\' => '赨',\n  ']' => '赩',\n  '^' => '趑',\n  '_' => '趌',\n  '`' => '趎',\n  'a' => '趏',\n  'b' => '趍',\n  'c' => '趓',\n  'd' => '趔',\n  'e' => '趐',\n  'f' => '趒',\n  'g' => '跰',\n  'h' => '跠',\n  'i' => '跬',\n  'j' => '跱',\n  'k' => '跮',\n  'l' => '跐',\n  'm' => '跩',\n  'n' => '跣',\n  'o' => '跢',\n  'p' => '跧',\n  'q' => '跲',\n  'r' => '跫',\n  's' => '跴',\n  't' => '輆',\n  'u' => '軿',\n  'v' => '輁',\n  'w' => '輀',\n  'x' => '輅',\n  'y' => '輇',\n  'z' => '輈',\n  '{' => '輂',\n  '|' => '輋',\n  '}' => '遒',\n  '~' => '逿',\n  '' => '遄',\n  '' => '遉',\n  '' => '逽',\n  '' => '鄐',\n  '' => '鄍',\n  '' => '鄏',\n  '' => '鄑',\n  '' => '鄖',\n  '' => '鄔',\n  '' => '鄋',\n  '' => '鄎',\n  '' => '酮',\n  '' => '酯',\n  '' => '鉈',\n  '' => '鉒',\n  '' => '鈰',\n  '' => '鈺',\n  '' => '鉦',\n  '' => '鈳',\n  '' => '鉥',\n  '' => '鉞',\n  '' => '銃',\n  '' => '鈮',\n  '' => '鉊',\n  '' => '鉆',\n  '' => '鉭',\n  '' => '鉬',\n  '' => '鉏',\n  '' => '鉠',\n  '' => '鉧',\n  '' => '鉯',\n  '' => '鈶',\n  '' => '鉡',\n  '' => '鉰',\n  '' => '鈱',\n  '' => '鉔',\n  '' => '鉣',\n  '' => '鉐',\n  '' => '鉲',\n  '' => '鉎',\n  '' => '鉓',\n  '' => '鉌',\n  '' => '鉖',\n  '' => '鈲',\n  '' => '閟',\n  '' => '閜',\n  '' => '閞',\n  '' => '閛',\n  '' => '隒',\n  '' => '隓',\n  '' => '隑',\n  '' => '隗',\n  '' => '雎',\n  '' => '雺',\n  '' => '雽',\n  '' => '雸',\n  '' => '雵',\n  '' => '靳',\n  '' => '靷',\n  '' => '靸',\n  '' => '靲',\n  '' => '頏',\n  '' => '頍',\n  '' => '頎',\n  '' => '颬',\n  '' => '飶',\n  '' => '飹',\n  '' => '馯',\n  '' => '馲',\n  '' => '馰',\n  '' => '馵',\n  '' => '骭',\n  '' => '骫',\n  '' => '魛',\n  '' => '鳪',\n  '' => '鳭',\n  '' => '鳧',\n  '' => '麀',\n  '' => '黽',\n  '' => '僦',\n  '' => '僔',\n  '' => '僗',\n  '' => '僨',\n  '' => '僳',\n  '' => '僛',\n  '' => '僪',\n  '' => '僝',\n  '' => '僤',\n  '' => '僓',\n  '' => '僬',\n  '' => '僰',\n  '' => '僯',\n  '' => '僣',\n  '' => '僠',\n  '@' => '凘',\n  'A' => '劀',\n  'B' => '劁',\n  'C' => '勩',\n  'D' => '勫',\n  'E' => '匰',\n  'F' => '厬',\n  'G' => '嘧',\n  'H' => '嘕',\n  'I' => '嘌',\n  'J' => '嘒',\n  'K' => '嗼',\n  'L' => '嘏',\n  'M' => '嘜',\n  'N' => '嘁',\n  'O' => '嘓',\n  'P' => '嘂',\n  'Q' => '嗺',\n  'R' => '嘝',\n  'S' => '嘄',\n  'T' => '嗿',\n  'U' => '嗹',\n  'V' => '墉',\n  'W' => '塼',\n  'X' => '墐',\n  'Y' => '墘',\n  'Z' => '墆',\n  '[' => '墁',\n  '\\\\' => '塿',\n  ']' => '塴',\n  '^' => '墋',\n  '_' => '塺',\n  '`' => '墇',\n  'a' => '墑',\n  'b' => '墎',\n  'c' => '塶',\n  'd' => '墂',\n  'e' => '墈',\n  'f' => '塻',\n  'g' => '墔',\n  'h' => '墏',\n  'i' => '壾',\n  'j' => '奫',\n  'k' => '嫜',\n  'l' => '嫮',\n  'm' => '嫥',\n  'n' => '嫕',\n  'o' => '嫪',\n  'p' => '嫚',\n  'q' => '嫭',\n  'r' => '嫫',\n  's' => '嫳',\n  't' => '嫢',\n  'u' => '嫠',\n  'v' => '嫛',\n  'w' => '嫬',\n  'x' => '嫞',\n  'y' => '嫝',\n  'z' => '嫙',\n  '{' => '嫨',\n  '|' => '嫟',\n  '}' => '孷',\n  '~' => '寠',\n  '' => '寣',\n  '' => '屣',\n  '' => '嶂',\n  '' => '嶀',\n  '' => '嵽',\n  '' => '嶆',\n  '' => '嵺',\n  '' => '嶁',\n  '' => '嵷',\n  '' => '嶊',\n  '' => '嶉',\n  '' => '嶈',\n  '' => '嵾',\n  '' => '嵼',\n  '' => '嶍',\n  '' => '嵹',\n  '' => '嵿',\n  '' => '幘',\n  '' => '幙',\n  '' => '幓',\n  '' => '廘',\n  '' => '廑',\n  '' => '廗',\n  '' => '廎',\n  '' => '廜',\n  '' => '廕',\n  '' => '廙',\n  '' => '廒',\n  '' => '廔',\n  '' => '彄',\n  '' => '彃',\n  '' => '彯',\n  '' => '徶',\n  '' => '愬',\n  '' => '愨',\n  '' => '慁',\n  '' => '慞',\n  '' => '慱',\n  '' => '慳',\n  '' => '慒',\n  '' => '慓',\n  '' => '慲',\n  '' => '慬',\n  '' => '憀',\n  '' => '慴',\n  '' => '慔',\n  '' => '慺',\n  '' => '慛',\n  '' => '慥',\n  '' => '愻',\n  '' => '慪',\n  '' => '慡',\n  '' => '慖',\n  '' => '戩',\n  '' => '戧',\n  '' => '戫',\n  '' => '搫',\n  '' => '摍',\n  '' => '摛',\n  '' => '摝',\n  '' => '摴',\n  '' => '摶',\n  '' => '摲',\n  '' => '摳',\n  '' => '摽',\n  '' => '摵',\n  '' => '摦',\n  '' => '撦',\n  '' => '摎',\n  '' => '撂',\n  '' => '摞',\n  '' => '摜',\n  '' => '摋',\n  '' => '摓',\n  '' => '摠',\n  '' => '摐',\n  '' => '摿',\n  '' => '搿',\n  '' => '摬',\n  '' => '摫',\n  '' => '摙',\n  '' => '摥',\n  '' => '摷',\n  '' => '敳',\n  '' => '斠',\n  '' => '暡',\n  '' => '暠',\n  '' => '暟',\n  '' => '朅',\n  '' => '朄',\n  '' => '朢',\n  '' => '榱',\n  '' => '榶',\n  '' => '槉',\n  '@' => '榠',\n  'A' => '槎',\n  'B' => '榖',\n  'C' => '榰',\n  'D' => '榬',\n  'E' => '榼',\n  'F' => '榑',\n  'G' => '榙',\n  'H' => '榎',\n  'I' => '榧',\n  'J' => '榍',\n  'K' => '榩',\n  'L' => '榾',\n  'M' => '榯',\n  'N' => '榿',\n  'O' => '槄',\n  'P' => '榽',\n  'Q' => '榤',\n  'R' => '槔',\n  'S' => '榹',\n  'T' => '槊',\n  'U' => '榚',\n  'V' => '槏',\n  'W' => '榳',\n  'X' => '榓',\n  'Y' => '榪',\n  'Z' => '榡',\n  '[' => '榞',\n  '\\\\' => '槙',\n  ']' => '榗',\n  '^' => '榐',\n  '_' => '槂',\n  '`' => '榵',\n  'a' => '榥',\n  'b' => '槆',\n  'c' => '歊',\n  'd' => '歍',\n  'e' => '歋',\n  'f' => '殞',\n  'g' => '殟',\n  'h' => '殠',\n  'i' => '毃',\n  'j' => '毄',\n  'k' => '毾',\n  'l' => '滎',\n  'm' => '滵',\n  'n' => '滱',\n  'o' => '漃',\n  'p' => '漥',\n  'q' => '滸',\n  'r' => '漷',\n  's' => '滻',\n  't' => '漮',\n  'u' => '漉',\n  'v' => '潎',\n  'w' => '漙',\n  'x' => '漚',\n  'y' => '漧',\n  'z' => '漘',\n  '{' => '漻',\n  '|' => '漒',\n  '}' => '滭',\n  '~' => '漊',\n  '' => '漶',\n  '' => '潳',\n  '' => '滹',\n  '' => '滮',\n  '' => '漭',\n  '' => '潀',\n  '' => '漰',\n  '' => '漼',\n  '' => '漵',\n  '' => '滫',\n  '' => '漇',\n  '' => '漎',\n  '' => '潃',\n  '' => '漅',\n  '' => '滽',\n  '' => '滶',\n  '' => '漹',\n  '' => '漜',\n  '' => '滼',\n  '' => '漺',\n  '' => '漟',\n  '' => '漍',\n  '' => '漞',\n  '' => '漈',\n  '' => '漡',\n  '' => '熇',\n  '' => '熐',\n  '' => '熉',\n  '' => '熀',\n  '' => '熅',\n  '' => '熂',\n  '' => '熏',\n  '' => '煻',\n  '' => '熆',\n  '' => '熁',\n  '' => '熗',\n  '' => '牄',\n  '' => '牓',\n  '' => '犗',\n  '' => '犕',\n  '' => '犓',\n  '' => '獃',\n  '' => '獍',\n  '' => '獑',\n  '' => '獌',\n  '' => '瑢',\n  '' => '瑳',\n  '' => '瑱',\n  '' => '瑵',\n  '' => '瑲',\n  '' => '瑧',\n  '' => '瑮',\n  '' => '甀',\n  '' => '甂',\n  '' => '甃',\n  '' => '畽',\n  '' => '疐',\n  '' => '瘖',\n  '' => '瘈',\n  '' => '瘌',\n  '' => '瘕',\n  '' => '瘑',\n  '' => '瘊',\n  '' => '瘔',\n  '' => '皸',\n  '' => '瞁',\n  '' => '睼',\n  '' => '瞅',\n  '' => '瞂',\n  '' => '睮',\n  '' => '瞀',\n  '' => '睯',\n  '' => '睾',\n  '' => '瞃',\n  '' => '碲',\n  '' => '碪',\n  '' => '碴',\n  '' => '碭',\n  '' => '碨',\n  '' => '硾',\n  '' => '碫',\n  '' => '碞',\n  '' => '碥',\n  '' => '碠',\n  '' => '碬',\n  '' => '碢',\n  '' => '碤',\n  '' => '禘',\n  '' => '禊',\n  '' => '禋',\n  '' => '禖',\n  '' => '禕',\n  '' => '禔',\n  '' => '禓',\n  '@' => '禗',\n  'A' => '禈',\n  'B' => '禒',\n  'C' => '禐',\n  'D' => '稫',\n  'E' => '穊',\n  'F' => '稰',\n  'G' => '稯',\n  'H' => '稨',\n  'I' => '稦',\n  'J' => '窨',\n  'K' => '窫',\n  'L' => '窬',\n  'M' => '竮',\n  'N' => '箈',\n  'O' => '箜',\n  'P' => '箊',\n  'Q' => '箑',\n  'R' => '箐',\n  'S' => '箖',\n  'T' => '箍',\n  'U' => '箌',\n  'V' => '箛',\n  'W' => '箎',\n  'X' => '箅',\n  'Y' => '箘',\n  'Z' => '劄',\n  '[' => '箙',\n  '\\\\' => '箤',\n  ']' => '箂',\n  '^' => '粻',\n  '_' => '粿',\n  '`' => '粼',\n  'a' => '粺',\n  'b' => '綧',\n  'c' => '綷',\n  'd' => '緂',\n  'e' => '綣',\n  'f' => '綪',\n  'g' => '緁',\n  'h' => '緀',\n  'i' => '緅',\n  'j' => '綝',\n  'k' => '緎',\n  'l' => '緄',\n  'm' => '緆',\n  'n' => '緋',\n  'o' => '緌',\n  'p' => '綯',\n  'q' => '綹',\n  'r' => '綖',\n  's' => '綼',\n  't' => '綟',\n  'u' => '綦',\n  'v' => '綮',\n  'w' => '綩',\n  'x' => '綡',\n  'y' => '緉',\n  'z' => '罳',\n  '{' => '翢',\n  '|' => '翣',\n  '}' => '翥',\n  '~' => '翞',\n  '' => '耤',\n  '' => '聝',\n  '' => '聜',\n  '' => '膉',\n  '' => '膆',\n  '' => '膃',\n  '' => '膇',\n  '' => '膍',\n  '' => '膌',\n  '' => '膋',\n  '' => '舕',\n  '' => '蒗',\n  '' => '蒤',\n  '' => '蒡',\n  '' => '蒟',\n  '' => '蒺',\n  '' => '蓎',\n  '' => '蓂',\n  '' => '蒬',\n  '' => '蒮',\n  '' => '蒫',\n  '' => '蒹',\n  '' => '蒴',\n  '' => '蓁',\n  '' => '蓍',\n  '' => '蒪',\n  '' => '蒚',\n  '' => '蒱',\n  '' => '蓐',\n  '' => '蒝',\n  '' => '蒧',\n  '' => '蒻',\n  '' => '蒢',\n  '' => '蒔',\n  '' => '蓇',\n  '' => '蓌',\n  '' => '蒛',\n  '' => '蒩',\n  '' => '蒯',\n  '' => '蒨',\n  '' => '蓖',\n  '' => '蒘',\n  '' => '蒶',\n  '' => '蓏',\n  '' => '蒠',\n  '' => '蓗',\n  '' => '蓔',\n  '' => '蓒',\n  '' => '蓛',\n  '' => '蒰',\n  '' => '蒑',\n  '' => '虡',\n  '' => '蜳',\n  '' => '蜣',\n  '' => '蜨',\n  '' => '蝫',\n  '' => '蝀',\n  '' => '蜮',\n  '' => '蜞',\n  '' => '蜡',\n  '' => '蜙',\n  '' => '蜛',\n  '' => '蝃',\n  '' => '蜬',\n  '' => '蝁',\n  '' => '蜾',\n  '' => '蝆',\n  '' => '蜠',\n  '' => '蜲',\n  '' => '蜪',\n  '' => '蜭',\n  '' => '蜼',\n  '' => '蜒',\n  '' => '蜺',\n  '' => '蜱',\n  '' => '蜵',\n  '' => '蝂',\n  '' => '蜦',\n  '' => '蜧',\n  '' => '蜸',\n  '' => '蜤',\n  '' => '蜚',\n  '' => '蜰',\n  '' => '蜑',\n  '' => '裷',\n  '' => '裧',\n  '' => '裱',\n  '' => '裲',\n  '' => '裺',\n  '' => '裾',\n  '' => '裮',\n  '' => '裼',\n  '' => '裶',\n  '' => '裻',\n  '@' => '裰',\n  'A' => '裬',\n  'B' => '裫',\n  'C' => '覝',\n  'D' => '覡',\n  'E' => '覟',\n  'F' => '覞',\n  'G' => '觩',\n  'H' => '觫',\n  'I' => '觨',\n  'J' => '誫',\n  'K' => '誙',\n  'L' => '誋',\n  'M' => '誒',\n  'N' => '誏',\n  'O' => '誖',\n  'P' => '谽',\n  'Q' => '豨',\n  'R' => '豩',\n  'S' => '賕',\n  'T' => '賏',\n  'U' => '賗',\n  'V' => '趖',\n  'W' => '踉',\n  'X' => '踂',\n  'Y' => '跿',\n  'Z' => '踍',\n  '[' => '跽',\n  '\\\\' => '踊',\n  ']' => '踃',\n  '^' => '踇',\n  '_' => '踆',\n  '`' => '踅',\n  'a' => '跾',\n  'b' => '踀',\n  'c' => '踄',\n  'd' => '輐',\n  'e' => '輑',\n  'f' => '輎',\n  'g' => '輍',\n  'h' => '鄣',\n  'i' => '鄜',\n  'j' => '鄠',\n  'k' => '鄢',\n  'l' => '鄟',\n  'm' => '鄝',\n  'n' => '鄚',\n  'o' => '鄤',\n  'p' => '鄡',\n  'q' => '鄛',\n  'r' => '酺',\n  's' => '酲',\n  't' => '酹',\n  'u' => '酳',\n  'v' => '銥',\n  'w' => '銤',\n  'x' => '鉶',\n  'y' => '銛',\n  'z' => '鉺',\n  '{' => '銠',\n  '|' => '銔',\n  '}' => '銪',\n  '~' => '銍',\n  '' => '銦',\n  '' => '銚',\n  '' => '銫',\n  '' => '鉹',\n  '' => '銗',\n  '' => '鉿',\n  '' => '銣',\n  '' => '鋮',\n  '' => '銎',\n  '' => '銂',\n  '' => '銕',\n  '' => '銢',\n  '' => '鉽',\n  '' => '銈',\n  '' => '銡',\n  '' => '銊',\n  '' => '銆',\n  '' => '銌',\n  '' => '銙',\n  '' => '銧',\n  '' => '鉾',\n  '' => '銇',\n  '' => '銩',\n  '' => '銝',\n  '' => '銋',\n  '' => '鈭',\n  '' => '隞',\n  '' => '隡',\n  '' => '雿',\n  '' => '靘',\n  '' => '靽',\n  '' => '靺',\n  '' => '靾',\n  '' => '鞃',\n  '' => '鞀',\n  '' => '鞂',\n  '' => '靻',\n  '' => '鞄',\n  '' => '鞁',\n  '' => '靿',\n  '' => '韎',\n  '' => '韍',\n  '' => '頖',\n  '' => '颭',\n  '' => '颮',\n  '' => '餂',\n  '' => '餀',\n  '' => '餇',\n  '' => '馝',\n  '' => '馜',\n  '' => '駃',\n  '' => '馹',\n  '' => '馻',\n  '' => '馺',\n  '' => '駂',\n  '' => '馽',\n  '' => '駇',\n  '' => '骱',\n  '' => '髣',\n  '' => '髧',\n  '' => '鬾',\n  '' => '鬿',\n  '' => '魠',\n  '' => '魡',\n  '' => '魟',\n  '' => '鳱',\n  '' => '鳲',\n  '' => '鳵',\n  '' => '麧',\n  '' => '僿',\n  '' => '儃',\n  '' => '儰',\n  '' => '僸',\n  '' => '儆',\n  '' => '儇',\n  '' => '僶',\n  '' => '僾',\n  '' => '儋',\n  '' => '儌',\n  '' => '僽',\n  '' => '儊',\n  '' => '劋',\n  '' => '劌',\n  '' => '勱',\n  '' => '勯',\n  '' => '噈',\n  '' => '噂',\n  '' => '噌',\n  '' => '嘵',\n  '' => '噁',\n  '' => '噊',\n  '' => '噉',\n  '' => '噆',\n  '' => '噘',\n  '@' => '噚',\n  'A' => '噀',\n  'B' => '嘳',\n  'C' => '嘽',\n  'D' => '嘬',\n  'E' => '嘾',\n  'F' => '嘸',\n  'G' => '嘪',\n  'H' => '嘺',\n  'I' => '圚',\n  'J' => '墫',\n  'K' => '墝',\n  'L' => '墱',\n  'M' => '墠',\n  'N' => '墣',\n  'O' => '墯',\n  'P' => '墬',\n  'Q' => '墥',\n  'R' => '墡',\n  'S' => '壿',\n  'T' => '嫿',\n  'U' => '嫴',\n  'V' => '嫽',\n  'W' => '嫷',\n  'X' => '嫶',\n  'Y' => '嬃',\n  'Z' => '嫸',\n  '[' => '嬂',\n  '\\\\' => '嫹',\n  ']' => '嬁',\n  '^' => '嬇',\n  '_' => '嬅',\n  '`' => '嬏',\n  'a' => '屧',\n  'b' => '嶙',\n  'c' => '嶗',\n  'd' => '嶟',\n  'e' => '嶒',\n  'f' => '嶢',\n  'g' => '嶓',\n  'h' => '嶕',\n  'i' => '嶠',\n  'j' => '嶜',\n  'k' => '嶡',\n  'l' => '嶚',\n  'm' => '嶞',\n  'n' => '幩',\n  'o' => '幝',\n  'p' => '幠',\n  'q' => '幜',\n  'r' => '緳',\n  's' => '廛',\n  't' => '廞',\n  'u' => '廡',\n  'v' => '彉',\n  'w' => '徲',\n  'x' => '憋',\n  'y' => '憃',\n  'z' => '慹',\n  '{' => '憱',\n  '|' => '憰',\n  '}' => '憢',\n  '~' => '憉',\n  '' => '憛',\n  '' => '憓',\n  '' => '憯',\n  '' => '憭',\n  '' => '憟',\n  '' => '憒',\n  '' => '憪',\n  '' => '憡',\n  '' => '憍',\n  '' => '慦',\n  '' => '憳',\n  '' => '戭',\n  '' => '摮',\n  '' => '摰',\n  '' => '撖',\n  '' => '撠',\n  '' => '撅',\n  '' => '撗',\n  '' => '撜',\n  '' => '撏',\n  '' => '撋',\n  '' => '撊',\n  '' => '撌',\n  '' => '撣',\n  '' => '撟',\n  '' => '摨',\n  '' => '撱',\n  '' => '撘',\n  '' => '敶',\n  '' => '敺',\n  '' => '敹',\n  '' => '敻',\n  '' => '斲',\n  '' => '斳',\n  '' => '暵',\n  '' => '暰',\n  '' => '暩',\n  '' => '暲',\n  '' => '暷',\n  '' => '暪',\n  '' => '暯',\n  '' => '樀',\n  '' => '樆',\n  '' => '樗',\n  '' => '槥',\n  '' => '槸',\n  '' => '樕',\n  '' => '槱',\n  '' => '槤',\n  '' => '樠',\n  '' => '槿',\n  '' => '槬',\n  '' => '槢',\n  '' => '樛',\n  '' => '樝',\n  '' => '槾',\n  '' => '樧',\n  '' => '槲',\n  '' => '槮',\n  '' => '樔',\n  '' => '槷',\n  '' => '槧',\n  '' => '橀',\n  '' => '樈',\n  '' => '槦',\n  '' => '槻',\n  '' => '樍',\n  '' => '槼',\n  '' => '槫',\n  '' => '樉',\n  '' => '樄',\n  '' => '樘',\n  '' => '樥',\n  '' => '樏',\n  '' => '槶',\n  '' => '樦',\n  '' => '樇',\n  '' => '槴',\n  '' => '樖',\n  '' => '歑',\n  '' => '殥',\n  '' => '殣',\n  '' => '殢',\n  '' => '殦',\n  '' => '氁',\n  '' => '氀',\n  '' => '毿',\n  '' => '氂',\n  '' => '潁',\n  '' => '漦',\n  '' => '潾',\n  '' => '澇',\n  '' => '濆',\n  '' => '澒',\n  '@' => '澍',\n  'A' => '澉',\n  'B' => '澌',\n  'C' => '潢',\n  'D' => '潏',\n  'E' => '澅',\n  'F' => '潚',\n  'G' => '澖',\n  'H' => '潶',\n  'I' => '潬',\n  'J' => '澂',\n  'K' => '潕',\n  'L' => '潲',\n  'M' => '潒',\n  'N' => '潐',\n  'O' => '潗',\n  'P' => '澔',\n  'Q' => '澓',\n  'R' => '潝',\n  'S' => '漀',\n  'T' => '潡',\n  'U' => '潫',\n  'V' => '潽',\n  'W' => '潧',\n  'X' => '澐',\n  'Y' => '潓',\n  'Z' => '澋',\n  '[' => '潩',\n  '\\\\' => '潿',\n  ']' => '澕',\n  '^' => '潣',\n  '_' => '潷',\n  '`' => '潪',\n  'a' => '潻',\n  'b' => '熲',\n  'c' => '熯',\n  'd' => '熛',\n  'e' => '熰',\n  'f' => '熠',\n  'g' => '熚',\n  'h' => '熩',\n  'i' => '熵',\n  'j' => '熝',\n  'k' => '熥',\n  'l' => '熞',\n  'm' => '熤',\n  'n' => '熡',\n  'o' => '熪',\n  'p' => '熜',\n  'q' => '熧',\n  'r' => '熳',\n  's' => '犘',\n  't' => '犚',\n  'u' => '獘',\n  'v' => '獒',\n  'w' => '獞',\n  'x' => '獟',\n  'y' => '獠',\n  'z' => '獝',\n  '{' => '獛',\n  '|' => '獡',\n  '}' => '獚',\n  '~' => '獙',\n  '' => '獢',\n  '' => '璇',\n  '' => '璉',\n  '' => '璊',\n  '' => '璆',\n  '' => '璁',\n  '' => '瑽',\n  '' => '璅',\n  '' => '璈',\n  '' => '瑼',\n  '' => '瑹',\n  '' => '甈',\n  '' => '甇',\n  '' => '畾',\n  '' => '瘥',\n  '' => '瘞',\n  '' => '瘙',\n  '' => '瘝',\n  '' => '瘜',\n  '' => '瘣',\n  '' => '瘚',\n  '' => '瘨',\n  '' => '瘛',\n  '' => '皜',\n  '' => '皝',\n  '' => '皞',\n  '' => '皛',\n  '' => '瞍',\n  '' => '瞏',\n  '' => '瞉',\n  '' => '瞈',\n  '' => '磍',\n  '' => '碻',\n  '' => '磏',\n  '' => '磌',\n  '' => '磑',\n  '' => '磎',\n  '' => '磔',\n  '' => '磈',\n  '' => '磃',\n  '' => '磄',\n  '' => '磉',\n  '' => '禚',\n  '' => '禡',\n  '' => '禠',\n  '' => '禜',\n  '' => '禢',\n  '' => '禛',\n  '' => '歶',\n  '' => '稹',\n  '' => '窲',\n  '' => '窴',\n  '' => '窳',\n  '' => '箷',\n  '' => '篋',\n  '' => '箾',\n  '' => '箬',\n  '' => '篎',\n  '' => '箯',\n  '' => '箹',\n  '' => '篊',\n  '' => '箵',\n  '' => '糅',\n  '' => '糈',\n  '' => '糌',\n  '' => '糋',\n  '' => '緷',\n  '' => '緛',\n  '' => '緪',\n  '' => '緧',\n  '' => '緗',\n  '' => '緡',\n  '' => '縃',\n  '' => '緺',\n  '' => '緦',\n  '' => '緶',\n  '' => '緱',\n  '' => '緰',\n  '' => '緮',\n  '' => '緟',\n  '' => '罶',\n  '' => '羬',\n  '' => '羰',\n  '' => '羭',\n  '' => '翭',\n  '' => '翫',\n  '' => '翪',\n  '' => '翬',\n  '' => '翦',\n  '' => '翨',\n  '' => '聤',\n  '' => '聧',\n  '' => '膣',\n  '' => '膟',\n  '@' => '膞',\n  'A' => '膕',\n  'B' => '膢',\n  'C' => '膙',\n  'D' => '膗',\n  'E' => '舖',\n  'F' => '艏',\n  'G' => '艓',\n  'H' => '艒',\n  'I' => '艐',\n  'J' => '艎',\n  'K' => '艑',\n  'L' => '蔤',\n  'M' => '蔻',\n  'N' => '蔏',\n  'O' => '蔀',\n  'P' => '蔩',\n  'Q' => '蔎',\n  'R' => '蔉',\n  'S' => '蔍',\n  'T' => '蔟',\n  'U' => '蔊',\n  'V' => '蔧',\n  'W' => '蔜',\n  'X' => '蓻',\n  'Y' => '蔫',\n  'Z' => '蓺',\n  '[' => '蔈',\n  '\\\\' => '蔌',\n  ']' => '蓴',\n  '^' => '蔪',\n  '_' => '蓲',\n  '`' => '蔕',\n  'a' => '蓷',\n  'b' => '蓫',\n  'c' => '蓳',\n  'd' => '蓼',\n  'e' => '蔒',\n  'f' => '蓪',\n  'g' => '蓩',\n  'h' => '蔖',\n  'i' => '蓾',\n  'j' => '蔨',\n  'k' => '蔝',\n  'l' => '蔮',\n  'm' => '蔂',\n  'n' => '蓽',\n  'o' => '蔞',\n  'p' => '蓶',\n  'q' => '蔱',\n  'r' => '蔦',\n  's' => '蓧',\n  't' => '蓨',\n  'u' => '蓰',\n  'v' => '蓯',\n  'w' => '蓹',\n  'x' => '蔘',\n  'y' => '蔠',\n  'z' => '蔰',\n  '{' => '蔋',\n  '|' => '蔙',\n  '}' => '蔯',\n  '~' => '虢',\n  '' => '蝖',\n  '' => '蝣',\n  '' => '蝤',\n  '' => '蝷',\n  '' => '蟡',\n  '' => '蝳',\n  '' => '蝘',\n  '' => '蝔',\n  '' => '蝛',\n  '' => '蝒',\n  '' => '蝡',\n  '' => '蝚',\n  '' => '蝑',\n  '' => '蝞',\n  '' => '蝭',\n  '' => '蝪',\n  '' => '蝐',\n  '' => '蝎',\n  '' => '蝟',\n  '' => '蝝',\n  '' => '蝯',\n  '' => '蝬',\n  '' => '蝺',\n  '' => '蝮',\n  '' => '蝜',\n  '' => '蝥',\n  '' => '蝏',\n  '' => '蝻',\n  '' => '蝵',\n  '' => '蝢',\n  '' => '蝧',\n  '' => '蝩',\n  '' => '衚',\n  '' => '褅',\n  '' => '褌',\n  '' => '褔',\n  '' => '褋',\n  '' => '褗',\n  '' => '褘',\n  '' => '褙',\n  '' => '褆',\n  '' => '褖',\n  '' => '褑',\n  '' => '褎',\n  '' => '褉',\n  '' => '覢',\n  '' => '覤',\n  '' => '覣',\n  '' => '觭',\n  '' => '觰',\n  '' => '觬',\n  '' => '諏',\n  '' => '諆',\n  '' => '誸',\n  '' => '諓',\n  '' => '諑',\n  '' => '諔',\n  '' => '諕',\n  '' => '誻',\n  '' => '諗',\n  '' => '誾',\n  '' => '諀',\n  '' => '諅',\n  '' => '諘',\n  '' => '諃',\n  '' => '誺',\n  '' => '誽',\n  '' => '諙',\n  '' => '谾',\n  '' => '豍',\n  '' => '貏',\n  '' => '賥',\n  '' => '賟',\n  '' => '賙',\n  '' => '賨',\n  '' => '賚',\n  '' => '賝',\n  '' => '賧',\n  '' => '趠',\n  '' => '趜',\n  '' => '趡',\n  '' => '趛',\n  '' => '踠',\n  '' => '踣',\n  '' => '踥',\n  '' => '踤',\n  '' => '踮',\n  '' => '踕',\n  '' => '踛',\n  '' => '踖',\n  '' => '踑',\n  '' => '踙',\n  '' => '踦',\n  '' => '踧',\n  '@' => '踔',\n  'A' => '踒',\n  'B' => '踘',\n  'C' => '踓',\n  'D' => '踜',\n  'E' => '踗',\n  'F' => '踚',\n  'G' => '輬',\n  'H' => '輤',\n  'I' => '輘',\n  'J' => '輚',\n  'K' => '輠',\n  'L' => '輣',\n  'M' => '輖',\n  'N' => '輗',\n  'O' => '遳',\n  'P' => '遰',\n  'Q' => '遯',\n  'R' => '遧',\n  'S' => '遫',\n  'T' => '鄯',\n  'U' => '鄫',\n  'V' => '鄩',\n  'W' => '鄪',\n  'X' => '鄲',\n  'Y' => '鄦',\n  'Z' => '鄮',\n  '[' => '醅',\n  '\\\\' => '醆',\n  ']' => '醊',\n  '^' => '醁',\n  '_' => '醂',\n  '`' => '醄',\n  'a' => '醀',\n  'b' => '鋐',\n  'c' => '鋃',\n  'd' => '鋄',\n  'e' => '鋀',\n  'f' => '鋙',\n  'g' => '銶',\n  'h' => '鋏',\n  'i' => '鋱',\n  'j' => '鋟',\n  'k' => '鋘',\n  'l' => '鋩',\n  'm' => '鋗',\n  'n' => '鋝',\n  'o' => '鋌',\n  'p' => '鋯',\n  'q' => '鋂',\n  'r' => '鋨',\n  's' => '鋊',\n  't' => '鋈',\n  'u' => '鋎',\n  'v' => '鋦',\n  'w' => '鋍',\n  'x' => '鋕',\n  'y' => '鋉',\n  'z' => '鋠',\n  '{' => '鋞',\n  '|' => '鋧',\n  '}' => '鋑',\n  '~' => '鋓',\n  '' => '銵',\n  '' => '鋡',\n  '' => '鋆',\n  '' => '銴',\n  '' => '镼',\n  '' => '閬',\n  '' => '閫',\n  '' => '閮',\n  '' => '閰',\n  '' => '隤',\n  '' => '隢',\n  '' => '雓',\n  '' => '霅',\n  '' => '霈',\n  '' => '霂',\n  '' => '靚',\n  '' => '鞊',\n  '' => '鞎',\n  '' => '鞈',\n  '' => '韐',\n  '' => '韏',\n  '' => '頞',\n  '' => '頝',\n  '' => '頦',\n  '' => '頩',\n  '' => '頨',\n  '' => '頠',\n  '' => '頛',\n  '' => '頧',\n  '' => '颲',\n  '' => '餈',\n  '' => '飺',\n  '' => '餑',\n  '' => '餔',\n  '' => '餖',\n  '' => '餗',\n  '' => '餕',\n  '' => '駜',\n  '' => '駍',\n  '' => '駏',\n  '' => '駓',\n  '' => '駔',\n  '' => '駎',\n  '' => '駉',\n  '' => '駖',\n  '' => '駘',\n  '' => '駋',\n  '' => '駗',\n  '' => '駌',\n  '' => '骳',\n  '' => '髬',\n  '' => '髫',\n  '' => '髳',\n  '' => '髲',\n  '' => '髱',\n  '' => '魆',\n  '' => '魃',\n  '' => '魧',\n  '' => '魴',\n  '' => '魱',\n  '' => '魦',\n  '' => '魶',\n  '' => '魵',\n  '' => '魰',\n  '' => '魨',\n  '' => '魤',\n  '' => '魬',\n  '' => '鳼',\n  '' => '鳺',\n  '' => '鳽',\n  '' => '鳿',\n  '' => '鳷',\n  '' => '鴇',\n  '' => '鴀',\n  '' => '鳹',\n  '' => '鳻',\n  '' => '鴈',\n  '' => '鴅',\n  '' => '鴄',\n  '' => '麃',\n  '' => '黓',\n  '' => '鼏',\n  '' => '鼐',\n  '' => '儜',\n  '' => '儓',\n  '' => '儗',\n  '' => '儚',\n  '' => '儑',\n  '' => '凞',\n  '' => '匴',\n  '' => '叡',\n  '' => '噰',\n  '' => '噠',\n  '' => '噮',\n  '@' => '噳',\n  'A' => '噦',\n  'B' => '噣',\n  'C' => '噭',\n  'D' => '噲',\n  'E' => '噞',\n  'F' => '噷',\n  'G' => '圜',\n  'H' => '圛',\n  'I' => '壈',\n  'J' => '墽',\n  'K' => '壉',\n  'L' => '墿',\n  'M' => '墺',\n  'N' => '壂',\n  'O' => '墼',\n  'P' => '壆',\n  'Q' => '嬗',\n  'R' => '嬙',\n  'S' => '嬛',\n  'T' => '嬡',\n  'U' => '嬔',\n  'V' => '嬓',\n  'W' => '嬐',\n  'X' => '嬖',\n  'Y' => '嬨',\n  'Z' => '嬚',\n  '[' => '嬠',\n  '\\\\' => '嬞',\n  ']' => '寯',\n  '^' => '嶬',\n  '_' => '嶱',\n  '`' => '嶩',\n  'a' => '嶧',\n  'b' => '嶵',\n  'c' => '嶰',\n  'd' => '嶮',\n  'e' => '嶪',\n  'f' => '嶨',\n  'g' => '嶲',\n  'h' => '嶭',\n  'i' => '嶯',\n  'j' => '嶴',\n  'k' => '幧',\n  'l' => '幨',\n  'm' => '幦',\n  'n' => '幯',\n  'o' => '廩',\n  'p' => '廧',\n  'q' => '廦',\n  'r' => '廨',\n  's' => '廥',\n  't' => '彋',\n  'u' => '徼',\n  'v' => '憝',\n  'w' => '憨',\n  'x' => '憖',\n  'y' => '懅',\n  'z' => '憴',\n  '{' => '懆',\n  '|' => '懁',\n  '}' => '懌',\n  '~' => '憺',\n  '' => '憿',\n  '' => '憸',\n  '' => '憌',\n  '' => '擗',\n  '' => '擖',\n  '' => '擐',\n  '' => '擏',\n  '' => '擉',\n  '' => '撽',\n  '' => '撉',\n  '' => '擃',\n  '' => '擛',\n  '' => '擳',\n  '' => '擙',\n  '' => '攳',\n  '' => '敿',\n  '' => '敼',\n  '' => '斢',\n  '' => '曈',\n  '' => '暾',\n  '' => '曀',\n  '' => '曊',\n  '' => '曋',\n  '' => '曏',\n  '' => '暽',\n  '' => '暻',\n  '' => '暺',\n  '' => '曌',\n  '' => '朣',\n  '' => '樴',\n  '' => '橦',\n  '' => '橉',\n  '' => '橧',\n  '' => '樲',\n  '' => '橨',\n  '' => '樾',\n  '' => '橝',\n  '' => '橭',\n  '' => '橶',\n  '' => '橛',\n  '' => '橑',\n  '' => '樨',\n  '' => '橚',\n  '' => '樻',\n  '' => '樿',\n  '' => '橁',\n  '' => '橪',\n  '' => '橤',\n  '' => '橐',\n  '' => '橏',\n  '' => '橔',\n  '' => '橯',\n  '' => '橩',\n  '' => '橠',\n  '' => '樼',\n  '' => '橞',\n  '' => '橖',\n  '' => '橕',\n  '' => '橍',\n  '' => '橎',\n  '' => '橆',\n  '' => '歕',\n  '' => '歔',\n  '' => '歖',\n  '' => '殧',\n  '' => '殪',\n  '' => '殫',\n  '' => '毈',\n  '' => '毇',\n  '' => '氄',\n  '' => '氃',\n  '' => '氆',\n  '' => '澭',\n  '' => '濋',\n  '' => '澣',\n  '' => '濇',\n  '' => '澼',\n  '' => '濎',\n  '' => '濈',\n  '' => '潞',\n  '' => '濄',\n  '' => '澽',\n  '' => '澞',\n  '' => '濊',\n  '' => '澨',\n  '' => '瀄',\n  '' => '澥',\n  '' => '澮',\n  '' => '澺',\n  '' => '澬',\n  '' => '澪',\n  '' => '濏',\n  '' => '澿',\n  '' => '澸',\n  '@' => '澢',\n  'A' => '濉',\n  'B' => '澫',\n  'C' => '濍',\n  'D' => '澯',\n  'E' => '澲',\n  'F' => '澰',\n  'G' => '燅',\n  'H' => '燂',\n  'I' => '熿',\n  'J' => '熸',\n  'K' => '燖',\n  'L' => '燀',\n  'M' => '燁',\n  'N' => '燋',\n  'O' => '燔',\n  'P' => '燊',\n  'Q' => '燇',\n  'R' => '燏',\n  'S' => '熽',\n  'T' => '燘',\n  'U' => '熼',\n  'V' => '燆',\n  'W' => '燚',\n  'X' => '燛',\n  'Y' => '犝',\n  'Z' => '犞',\n  '[' => '獩',\n  '\\\\' => '獦',\n  ']' => '獧',\n  '^' => '獬',\n  '_' => '獥',\n  '`' => '獫',\n  'a' => '獪',\n  'b' => '瑿',\n  'c' => '璚',\n  'd' => '璠',\n  'e' => '璔',\n  'f' => '璒',\n  'g' => '璕',\n  'h' => '璡',\n  'i' => '甋',\n  'j' => '疀',\n  'k' => '瘯',\n  'l' => '瘭',\n  'm' => '瘱',\n  'n' => '瘽',\n  'o' => '瘳',\n  'p' => '瘼',\n  'q' => '瘵',\n  'r' => '瘲',\n  's' => '瘰',\n  't' => '皻',\n  'u' => '盦',\n  'v' => '瞚',\n  'w' => '瞝',\n  'x' => '瞡',\n  'y' => '瞜',\n  'z' => '瞛',\n  '{' => '瞢',\n  '|' => '瞣',\n  '}' => '瞕',\n  '~' => '瞙',\n  '' => '瞗',\n  '' => '磝',\n  '' => '磩',\n  '' => '磥',\n  '' => '磪',\n  '' => '磞',\n  '' => '磣',\n  '' => '磛',\n  '' => '磡',\n  '' => '磢',\n  '' => '磭',\n  '' => '磟',\n  '' => '磠',\n  '' => '禤',\n  '' => '穄',\n  '' => '穈',\n  '' => '穇',\n  '' => '窶',\n  '' => '窸',\n  '' => '窵',\n  '' => '窱',\n  '' => '窷',\n  '' => '篞',\n  '' => '篣',\n  '' => '篧',\n  '' => '篝',\n  '' => '篕',\n  '' => '篥',\n  '' => '篚',\n  '' => '篨',\n  '' => '篹',\n  '' => '篔',\n  '' => '篪',\n  '' => '篢',\n  '' => '篜',\n  '' => '篫',\n  '' => '篘',\n  '' => '篟',\n  '' => '糒',\n  '' => '糔',\n  '' => '糗',\n  '' => '糐',\n  '' => '糑',\n  '' => '縒',\n  '' => '縡',\n  '' => '縗',\n  '' => '縌',\n  '' => '縟',\n  '' => '縠',\n  '' => '縓',\n  '' => '縎',\n  '' => '縜',\n  '' => '縕',\n  '' => '縚',\n  '' => '縢',\n  '' => '縋',\n  '' => '縏',\n  '' => '縖',\n  '' => '縍',\n  '' => '縔',\n  '' => '縥',\n  '' => '縤',\n  '' => '罃',\n  '' => '罻',\n  '' => '罼',\n  '' => '罺',\n  '' => '羱',\n  '' => '翯',\n  '' => '耪',\n  '' => '耩',\n  '' => '聬',\n  '' => '膱',\n  '' => '膦',\n  '' => '膮',\n  '' => '膹',\n  '' => '膵',\n  '' => '膫',\n  '' => '膰',\n  '' => '膬',\n  '' => '膴',\n  '' => '膲',\n  '' => '膷',\n  '' => '膧',\n  '' => '臲',\n  '' => '艕',\n  '' => '艖',\n  '' => '艗',\n  '' => '蕖',\n  '' => '蕅',\n  '' => '蕫',\n  '' => '蕍',\n  '' => '蕓',\n  '' => '蕡',\n  '' => '蕘',\n  '@' => '蕀',\n  'A' => '蕆',\n  'B' => '蕤',\n  'C' => '蕁',\n  'D' => '蕢',\n  'E' => '蕄',\n  'F' => '蕑',\n  'G' => '蕇',\n  'H' => '蕣',\n  'I' => '蔾',\n  'J' => '蕛',\n  'K' => '蕱',\n  'L' => '蕎',\n  'M' => '蕮',\n  'N' => '蕵',\n  'O' => '蕕',\n  'P' => '蕧',\n  'Q' => '蕠',\n  'R' => '薌',\n  'S' => '蕦',\n  'T' => '蕝',\n  'U' => '蕔',\n  'V' => '蕥',\n  'W' => '蕬',\n  'X' => '虣',\n  'Y' => '虥',\n  'Z' => '虤',\n  '[' => '螛',\n  '\\\\' => '螏',\n  ']' => '螗',\n  '^' => '螓',\n  '_' => '螒',\n  '`' => '螈',\n  'a' => '螁',\n  'b' => '螖',\n  'c' => '螘',\n  'd' => '蝹',\n  'e' => '螇',\n  'f' => '螣',\n  'g' => '螅',\n  'h' => '螐',\n  'i' => '螑',\n  'j' => '螝',\n  'k' => '螄',\n  'l' => '螔',\n  'm' => '螜',\n  'n' => '螚',\n  'o' => '螉',\n  'p' => '褞',\n  'q' => '褦',\n  'r' => '褰',\n  's' => '褭',\n  't' => '褮',\n  'u' => '褧',\n  'v' => '褱',\n  'w' => '褢',\n  'x' => '褩',\n  'y' => '褣',\n  'z' => '褯',\n  '{' => '褬',\n  '|' => '褟',\n  '}' => '觱',\n  '~' => '諠',\n  '' => '諢',\n  '' => '諲',\n  '' => '諴',\n  '' => '諵',\n  '' => '諝',\n  '' => '謔',\n  '' => '諤',\n  '' => '諟',\n  '' => '諰',\n  '' => '諈',\n  '' => '諞',\n  '' => '諡',\n  '' => '諨',\n  '' => '諿',\n  '' => '諯',\n  '' => '諻',\n  '' => '貑',\n  '' => '貒',\n  '' => '貐',\n  '' => '賵',\n  '' => '賮',\n  '' => '賱',\n  '' => '賰',\n  '' => '賳',\n  '' => '赬',\n  '' => '赮',\n  '' => '趥',\n  '' => '趧',\n  '' => '踳',\n  '' => '踾',\n  '' => '踸',\n  '' => '蹀',\n  '' => '蹅',\n  '' => '踶',\n  '' => '踼',\n  '' => '踽',\n  '' => '蹁',\n  '' => '踰',\n  '' => '踿',\n  '' => '躽',\n  '' => '輶',\n  '' => '輮',\n  '' => '輵',\n  '' => '輲',\n  '' => '輹',\n  '' => '輷',\n  '' => '輴',\n  '' => '遶',\n  '' => '遹',\n  '' => '遻',\n  '' => '邆',\n  '' => '郺',\n  '' => '鄳',\n  '' => '鄵',\n  '' => '鄶',\n  '' => '醓',\n  '' => '醐',\n  '' => '醑',\n  '' => '醍',\n  '' => '醏',\n  '' => '錧',\n  '' => '錞',\n  '' => '錈',\n  '' => '錟',\n  '' => '錆',\n  '' => '錏',\n  '' => '鍺',\n  '' => '錸',\n  '' => '錼',\n  '' => '錛',\n  '' => '錣',\n  '' => '錒',\n  '' => '錁',\n  '' => '鍆',\n  '' => '錭',\n  '' => '錎',\n  '' => '錍',\n  '' => '鋋',\n  '' => '錝',\n  '' => '鋺',\n  '' => '錥',\n  '' => '錓',\n  '' => '鋹',\n  '' => '鋷',\n  '' => '錴',\n  '' => '錂',\n  '' => '錤',\n  '' => '鋿',\n  '' => '錩',\n  '' => '錹',\n  '' => '錵',\n  '' => '錪',\n  '' => '錔',\n  '' => '錌',\n  '@' => '錋',\n  'A' => '鋾',\n  'B' => '錉',\n  'C' => '錀',\n  'D' => '鋻',\n  'E' => '錖',\n  'F' => '閼',\n  'G' => '闍',\n  'H' => '閾',\n  'I' => '閹',\n  'J' => '閺',\n  'K' => '閶',\n  'L' => '閿',\n  'M' => '閵',\n  'N' => '閽',\n  'O' => '隩',\n  'P' => '雔',\n  'Q' => '霋',\n  'R' => '霒',\n  'S' => '霐',\n  'T' => '鞙',\n  'U' => '鞗',\n  'V' => '鞔',\n  'W' => '韰',\n  'X' => '韸',\n  'Y' => '頵',\n  'Z' => '頯',\n  '[' => '頲',\n  '\\\\' => '餤',\n  ']' => '餟',\n  '^' => '餧',\n  '_' => '餩',\n  '`' => '馞',\n  'a' => '駮',\n  'b' => '駬',\n  'c' => '駥',\n  'd' => '駤',\n  'e' => '駰',\n  'f' => '駣',\n  'g' => '駪',\n  'h' => '駩',\n  'i' => '駧',\n  'j' => '骹',\n  'k' => '骿',\n  'l' => '骴',\n  'm' => '骻',\n  'n' => '髶',\n  'o' => '髺',\n  'p' => '髹',\n  'q' => '髷',\n  'r' => '鬳',\n  's' => '鮀',\n  't' => '鮅',\n  'u' => '鮇',\n  'v' => '魼',\n  'w' => '魾',\n  'x' => '魻',\n  'y' => '鮂',\n  'z' => '鮓',\n  '{' => '鮒',\n  '|' => '鮐',\n  '}' => '魺',\n  '~' => '鮕',\n  '' => '魽',\n  '' => '鮈',\n  '' => '鴥',\n  '' => '鴗',\n  '' => '鴠',\n  '' => '鴞',\n  '' => '鴔',\n  '' => '鴩',\n  '' => '鴝',\n  '' => '鴘',\n  '' => '鴢',\n  '' => '鴐',\n  '' => '鴙',\n  '' => '鴟',\n  '' => '麈',\n  '' => '麆',\n  '' => '麇',\n  '' => '麮',\n  '' => '麭',\n  '' => '黕',\n  '' => '黖',\n  '' => '黺',\n  '' => '鼒',\n  '' => '鼽',\n  '' => '儦',\n  '' => '儥',\n  '' => '儢',\n  '' => '儤',\n  '' => '儠',\n  '' => '儩',\n  '' => '勴',\n  '' => '嚓',\n  '' => '嚌',\n  '' => '嚍',\n  '' => '嚆',\n  '' => '嚄',\n  '' => '嚃',\n  '' => '噾',\n  '' => '嚂',\n  '' => '噿',\n  '' => '嚁',\n  '' => '壖',\n  '' => '壔',\n  '' => '壏',\n  '' => '壒',\n  '' => '嬭',\n  '' => '嬥',\n  '' => '嬲',\n  '' => '嬣',\n  '' => '嬬',\n  '' => '嬧',\n  '' => '嬦',\n  '' => '嬯',\n  '' => '嬮',\n  '' => '孻',\n  '' => '寱',\n  '' => '寲',\n  '' => '嶷',\n  '' => '幬',\n  '' => '幪',\n  '' => '徾',\n  '' => '徻',\n  '' => '懃',\n  '' => '憵',\n  '' => '憼',\n  '' => '懧',\n  '' => '懠',\n  '' => '懥',\n  '' => '懤',\n  '' => '懨',\n  '' => '懞',\n  '' => '擯',\n  '' => '擩',\n  '' => '擣',\n  '' => '擫',\n  '' => '擤',\n  '' => '擨',\n  '' => '斁',\n  '' => '斀',\n  '' => '斶',\n  '' => '旚',\n  '' => '曒',\n  '' => '檍',\n  '' => '檖',\n  '' => '檁',\n  '' => '檥',\n  '' => '檉',\n  '' => '檟',\n  '' => '檛',\n  '' => '檡',\n  '' => '檞',\n  '' => '檇',\n  '' => '檓',\n  '' => '檎',\n  '@' => '檕',\n  'A' => '檃',\n  'B' => '檨',\n  'C' => '檤',\n  'D' => '檑',\n  'E' => '橿',\n  'F' => '檦',\n  'G' => '檚',\n  'H' => '檅',\n  'I' => '檌',\n  'J' => '檒',\n  'K' => '歛',\n  'L' => '殭',\n  'M' => '氉',\n  'N' => '濌',\n  'O' => '澩',\n  'P' => '濴',\n  'Q' => '濔',\n  'R' => '濣',\n  'S' => '濜',\n  'T' => '濭',\n  'U' => '濧',\n  'V' => '濦',\n  'W' => '濞',\n  'X' => '濲',\n  'Y' => '濝',\n  'Z' => '濢',\n  '[' => '濨',\n  '\\\\' => '燡',\n  ']' => '燱',\n  '^' => '燨',\n  '_' => '燲',\n  '`' => '燤',\n  'a' => '燰',\n  'b' => '燢',\n  'c' => '獳',\n  'd' => '獮',\n  'e' => '獯',\n  'f' => '璗',\n  'g' => '璲',\n  'h' => '璫',\n  'i' => '璐',\n  'j' => '璪',\n  'k' => '璭',\n  'l' => '璱',\n  'm' => '璥',\n  'n' => '璯',\n  'o' => '甐',\n  'p' => '甑',\n  'q' => '甒',\n  'r' => '甏',\n  's' => '疄',\n  't' => '癃',\n  'u' => '癈',\n  'v' => '癉',\n  'w' => '癇',\n  'x' => '皤',\n  'y' => '盩',\n  'z' => '瞵',\n  '{' => '瞫',\n  '|' => '瞲',\n  '}' => '瞷',\n  '~' => '瞶',\n  '' => '瞴',\n  '' => '瞱',\n  '' => '瞨',\n  '' => '矰',\n  '' => '磳',\n  '' => '磽',\n  '' => '礂',\n  '' => '磻',\n  '' => '磼',\n  '' => '磲',\n  '' => '礅',\n  '' => '磹',\n  '' => '磾',\n  '' => '礄',\n  '' => '禫',\n  '' => '禨',\n  '' => '穜',\n  '' => '穛',\n  '' => '穖',\n  '' => '穘',\n  '' => '穔',\n  '' => '穚',\n  '' => '窾',\n  '' => '竀',\n  '' => '竁',\n  '' => '簅',\n  '' => '簏',\n  '' => '篲',\n  '' => '簀',\n  '' => '篿',\n  '' => '篻',\n  '' => '簎',\n  '' => '篴',\n  '' => '簋',\n  '' => '篳',\n  '' => '簂',\n  '' => '簉',\n  '' => '簃',\n  '' => '簁',\n  '' => '篸',\n  '' => '篽',\n  '' => '簆',\n  '' => '篰',\n  '' => '篱',\n  '' => '簐',\n  '' => '簊',\n  '' => '糨',\n  '' => '縭',\n  '' => '縼',\n  '' => '繂',\n  '' => '縳',\n  '' => '顈',\n  '' => '縸',\n  '' => '縪',\n  '' => '繉',\n  '' => '繀',\n  '' => '繇',\n  '' => '縩',\n  '' => '繌',\n  '' => '縰',\n  '' => '縻',\n  '' => '縶',\n  '' => '繄',\n  '' => '縺',\n  '' => '罅',\n  '' => '罿',\n  '' => '罾',\n  '' => '罽',\n  '' => '翴',\n  '' => '翲',\n  '' => '耬',\n  '' => '膻',\n  '' => '臄',\n  '' => '臌',\n  '' => '臊',\n  '' => '臅',\n  '' => '臇',\n  '' => '膼',\n  '' => '臩',\n  '' => '艛',\n  '' => '艚',\n  '' => '艜',\n  '' => '薃',\n  '' => '薀',\n  '' => '薏',\n  '' => '薧',\n  '' => '薕',\n  '' => '薠',\n  '' => '薋',\n  '' => '薣',\n  '' => '蕻',\n  '' => '薤',\n  '' => '薚',\n  '' => '薞',\n  '@' => '蕷',\n  'A' => '蕼',\n  'B' => '薉',\n  'C' => '薡',\n  'D' => '蕺',\n  'E' => '蕸',\n  'F' => '蕗',\n  'G' => '薎',\n  'H' => '薖',\n  'I' => '薆',\n  'J' => '薍',\n  'K' => '薙',\n  'L' => '薝',\n  'M' => '薁',\n  'N' => '薢',\n  'O' => '薂',\n  'P' => '薈',\n  'Q' => '薅',\n  'R' => '蕹',\n  'S' => '蕶',\n  'T' => '薘',\n  'U' => '薐',\n  'V' => '薟',\n  'W' => '虨',\n  'X' => '螾',\n  'Y' => '螪',\n  'Z' => '螭',\n  '[' => '蟅',\n  '\\\\' => '螰',\n  ']' => '螬',\n  '^' => '螹',\n  '_' => '螵',\n  '`' => '螼',\n  'a' => '螮',\n  'b' => '蟉',\n  'c' => '蟃',\n  'd' => '蟂',\n  'e' => '蟌',\n  'f' => '螷',\n  'g' => '螯',\n  'h' => '蟄',\n  'i' => '蟊',\n  'j' => '螴',\n  'k' => '螶',\n  'l' => '螿',\n  'm' => '螸',\n  'n' => '螽',\n  'o' => '蟞',\n  'p' => '螲',\n  'q' => '褵',\n  'r' => '褳',\n  's' => '褼',\n  't' => '褾',\n  'u' => '襁',\n  'v' => '襒',\n  'w' => '褷',\n  'x' => '襂',\n  'y' => '覭',\n  'z' => '覯',\n  '{' => '覮',\n  '|' => '觲',\n  '}' => '觳',\n  '~' => '謞',\n  '' => '謘',\n  '' => '謖',\n  '' => '謑',\n  '' => '謅',\n  '' => '謋',\n  '' => '謢',\n  '' => '謏',\n  '' => '謒',\n  '' => '謕',\n  '' => '謇',\n  '' => '謍',\n  '' => '謈',\n  '' => '謆',\n  '' => '謜',\n  '' => '謓',\n  '' => '謚',\n  '' => '豏',\n  '' => '豰',\n  '' => '豲',\n  '' => '豱',\n  '' => '豯',\n  '' => '貕',\n  '' => '貔',\n  '' => '賹',\n  '' => '赯',\n  '' => '蹎',\n  '' => '蹍',\n  '' => '蹓',\n  '' => '蹐',\n  '' => '蹌',\n  '' => '蹇',\n  '' => '轃',\n  '' => '轀',\n  '' => '邅',\n  '' => '遾',\n  '' => '鄸',\n  '' => '醚',\n  '' => '醢',\n  '' => '醛',\n  '' => '醙',\n  '' => '醟',\n  '' => '醡',\n  '' => '醝',\n  '' => '醠',\n  '' => '鎡',\n  '' => '鎃',\n  '' => '鎯',\n  '' => '鍤',\n  '' => '鍖',\n  '' => '鍇',\n  '' => '鍼',\n  '' => '鍘',\n  '' => '鍜',\n  '' => '鍶',\n  '' => '鍉',\n  '' => '鍐',\n  '' => '鍑',\n  '' => '鍠',\n  '' => '鍭',\n  '' => '鎏',\n  '' => '鍌',\n  '' => '鍪',\n  '' => '鍹',\n  '' => '鍗',\n  '' => '鍕',\n  '' => '鍒',\n  '' => '鍏',\n  '' => '鍱',\n  '' => '鍷',\n  '' => '鍻',\n  '' => '鍡',\n  '' => '鍞',\n  '' => '鍣',\n  '' => '鍧',\n  '' => '鎀',\n  '' => '鍎',\n  '' => '鍙',\n  '' => '闇',\n  '' => '闀',\n  '' => '闉',\n  '' => '闃',\n  '' => '闅',\n  '' => '閷',\n  '' => '隮',\n  '' => '隰',\n  '' => '隬',\n  '' => '霠',\n  '' => '霟',\n  '' => '霘',\n  '' => '霝',\n  '' => '霙',\n  '' => '鞚',\n  '' => '鞡',\n  '' => '鞜',\n  '@' => '鞞',\n  'A' => '鞝',\n  'B' => '韕',\n  'C' => '韔',\n  'D' => '韱',\n  'E' => '顁',\n  'F' => '顄',\n  'G' => '顊',\n  'H' => '顉',\n  'I' => '顅',\n  'J' => '顃',\n  'K' => '餥',\n  'L' => '餫',\n  'M' => '餬',\n  'N' => '餪',\n  'O' => '餳',\n  'P' => '餲',\n  'Q' => '餯',\n  'R' => '餭',\n  'S' => '餱',\n  'T' => '餰',\n  'U' => '馘',\n  'V' => '馣',\n  'W' => '馡',\n  'X' => '騂',\n  'Y' => '駺',\n  'Z' => '駴',\n  '[' => '駷',\n  '\\\\' => '駹',\n  ']' => '駸',\n  '^' => '駶',\n  '_' => '駻',\n  '`' => '駽',\n  'a' => '駾',\n  'b' => '駼',\n  'c' => '騃',\n  'd' => '骾',\n  'e' => '髾',\n  'f' => '髽',\n  'g' => '鬁',\n  'h' => '髼',\n  'i' => '魈',\n  'j' => '鮚',\n  'k' => '鮨',\n  'l' => '鮞',\n  'm' => '鮛',\n  'n' => '鮦',\n  'o' => '鮡',\n  'p' => '鮥',\n  'q' => '鮤',\n  'r' => '鮆',\n  's' => '鮢',\n  't' => '鮠',\n  'u' => '鮯',\n  'v' => '鴳',\n  'w' => '鵁',\n  'x' => '鵧',\n  'y' => '鴶',\n  'z' => '鴮',\n  '{' => '鴯',\n  '|' => '鴱',\n  '}' => '鴸',\n  '~' => '鴰',\n  '' => '鵅',\n  '' => '鵂',\n  '' => '鵃',\n  '' => '鴾',\n  '' => '鴷',\n  '' => '鵀',\n  '' => '鴽',\n  '' => '翵',\n  '' => '鴭',\n  '' => '麊',\n  '' => '麉',\n  '' => '麍',\n  '' => '麰',\n  '' => '黈',\n  '' => '黚',\n  '' => '黻',\n  '' => '黿',\n  '' => '鼤',\n  '' => '鼣',\n  '' => '鼢',\n  '' => '齔',\n  '' => '龠',\n  '' => '儱',\n  '' => '儭',\n  '' => '儮',\n  '' => '嚘',\n  '' => '嚜',\n  '' => '嚗',\n  '' => '嚚',\n  '' => '嚝',\n  '' => '嚙',\n  '' => '奰',\n  '' => '嬼',\n  '' => '屩',\n  '' => '屪',\n  '' => '巀',\n  '' => '幭',\n  '' => '幮',\n  '' => '懘',\n  '' => '懟',\n  '' => '懭',\n  '' => '懮',\n  '' => '懱',\n  '' => '懪',\n  '' => '懰',\n  '' => '懫',\n  '' => '懖',\n  '' => '懩',\n  '' => '擿',\n  '' => '攄',\n  '' => '擽',\n  '' => '擸',\n  '' => '攁',\n  '' => '攃',\n  '' => '擼',\n  '' => '斔',\n  '' => '旛',\n  '' => '曚',\n  '' => '曛',\n  '' => '曘',\n  '' => '櫅',\n  '' => '檹',\n  '' => '檽',\n  '' => '櫡',\n  '' => '櫆',\n  '' => '檺',\n  '' => '檶',\n  '' => '檷',\n  '' => '櫇',\n  '' => '檴',\n  '' => '檭',\n  '' => '歞',\n  '' => '毉',\n  '' => '氋',\n  '' => '瀇',\n  '' => '瀌',\n  '' => '瀍',\n  '' => '瀁',\n  '' => '瀅',\n  '' => '瀔',\n  '' => '瀎',\n  '' => '濿',\n  '' => '瀀',\n  '' => '濻',\n  '' => '瀦',\n  '' => '濼',\n  '' => '濷',\n  '' => '瀊',\n  '' => '爁',\n  '' => '燿',\n  '' => '燹',\n  '' => '爃',\n  '' => '燽',\n  '' => '獶',\n  '@' => '璸',\n  'A' => '瓀',\n  'B' => '璵',\n  'C' => '瓁',\n  'D' => '璾',\n  'E' => '璶',\n  'F' => '璻',\n  'G' => '瓂',\n  'H' => '甔',\n  'I' => '甓',\n  'J' => '癜',\n  'K' => '癤',\n  'L' => '癙',\n  'M' => '癐',\n  'N' => '癓',\n  'O' => '癗',\n  'P' => '癚',\n  'Q' => '皦',\n  'R' => '皽',\n  'S' => '盬',\n  'T' => '矂',\n  'U' => '瞺',\n  'V' => '磿',\n  'W' => '礌',\n  'X' => '礓',\n  'Y' => '礔',\n  'Z' => '礉',\n  '[' => '礐',\n  '\\\\' => '礒',\n  ']' => '礑',\n  '^' => '禭',\n  '_' => '禬',\n  '`' => '穟',\n  'a' => '簜',\n  'b' => '簩',\n  'c' => '簙',\n  'd' => '簠',\n  'e' => '簟',\n  'f' => '簭',\n  'g' => '簝',\n  'h' => '簦',\n  'i' => '簨',\n  'j' => '簢',\n  'k' => '簥',\n  'l' => '簰',\n  'm' => '繜',\n  'n' => '繐',\n  'o' => '繖',\n  'p' => '繣',\n  'q' => '繘',\n  'r' => '繢',\n  's' => '繟',\n  't' => '繑',\n  'u' => '繠',\n  'v' => '繗',\n  'w' => '繓',\n  'x' => '羵',\n  'y' => '羳',\n  'z' => '翷',\n  '{' => '翸',\n  '|' => '聵',\n  '}' => '臑',\n  '~' => '臒',\n  '' => '臐',\n  '' => '艟',\n  '' => '艞',\n  '' => '薴',\n  '' => '藆',\n  '' => '藀',\n  '' => '藃',\n  '' => '藂',\n  '' => '薳',\n  '' => '薵',\n  '' => '薽',\n  '' => '藇',\n  '' => '藄',\n  '' => '薿',\n  '' => '藋',\n  '' => '藎',\n  '' => '藈',\n  '' => '藅',\n  '' => '薱',\n  '' => '薶',\n  '' => '藒',\n  '' => '蘤',\n  '' => '薸',\n  '' => '薷',\n  '' => '薾',\n  '' => '虩',\n  '' => '蟧',\n  '' => '蟦',\n  '' => '蟢',\n  '' => '蟛',\n  '' => '蟫',\n  '' => '蟪',\n  '' => '蟥',\n  '' => '蟟',\n  '' => '蟳',\n  '' => '蟤',\n  '' => '蟔',\n  '' => '蟜',\n  '' => '蟓',\n  '' => '蟭',\n  '' => '蟘',\n  '' => '蟣',\n  '' => '螤',\n  '' => '蟗',\n  '' => '蟙',\n  '' => '蠁',\n  '' => '蟴',\n  '' => '蟨',\n  '' => '蟝',\n  '' => '襓',\n  '' => '襋',\n  '' => '襏',\n  '' => '襌',\n  '' => '襆',\n  '' => '襐',\n  '' => '襑',\n  '' => '襉',\n  '' => '謪',\n  '' => '謧',\n  '' => '謣',\n  '' => '謳',\n  '' => '謰',\n  '' => '謵',\n  '' => '譇',\n  '' => '謯',\n  '' => '謼',\n  '' => '謾',\n  '' => '謱',\n  '' => '謥',\n  '' => '謷',\n  '' => '謦',\n  '' => '謶',\n  '' => '謮',\n  '' => '謤',\n  '' => '謻',\n  '' => '謽',\n  '' => '謺',\n  '' => '豂',\n  '' => '豵',\n  '' => '貙',\n  '' => '貘',\n  '' => '貗',\n  '' => '賾',\n  '' => '贄',\n  '' => '贂',\n  '' => '贀',\n  '' => '蹜',\n  '' => '蹢',\n  '' => '蹠',\n  '' => '蹗',\n  '' => '蹖',\n  '' => '蹞',\n  '' => '蹥',\n  '' => '蹧',\n  '@' => '蹛',\n  'A' => '蹚',\n  'B' => '蹡',\n  'C' => '蹝',\n  'D' => '蹩',\n  'E' => '蹔',\n  'F' => '轆',\n  'G' => '轇',\n  'H' => '轈',\n  'I' => '轋',\n  'J' => '鄨',\n  'K' => '鄺',\n  'L' => '鄻',\n  'M' => '鄾',\n  'N' => '醨',\n  'O' => '醥',\n  'P' => '醧',\n  'Q' => '醯',\n  'R' => '醪',\n  'S' => '鎵',\n  'T' => '鎌',\n  'U' => '鎒',\n  'V' => '鎷',\n  'W' => '鎛',\n  'X' => '鎝',\n  'Y' => '鎉',\n  'Z' => '鎧',\n  '[' => '鎎',\n  '\\\\' => '鎪',\n  ']' => '鎞',\n  '^' => '鎦',\n  '_' => '鎕',\n  '`' => '鎈',\n  'a' => '鎙',\n  'b' => '鎟',\n  'c' => '鎍',\n  'd' => '鎱',\n  'e' => '鎑',\n  'f' => '鎲',\n  'g' => '鎤',\n  'h' => '鎨',\n  'i' => '鎴',\n  'j' => '鎣',\n  'k' => '鎥',\n  'l' => '闒',\n  'm' => '闓',\n  'n' => '闑',\n  'o' => '隳',\n  'p' => '雗',\n  'q' => '雚',\n  'r' => '巂',\n  's' => '雟',\n  't' => '雘',\n  'u' => '雝',\n  'v' => '霣',\n  'w' => '霢',\n  'x' => '霥',\n  'y' => '鞬',\n  'z' => '鞮',\n  '{' => '鞨',\n  '|' => '鞫',\n  '}' => '鞤',\n  '~' => '鞪',\n  '' => '鞢',\n  '' => '鞥',\n  '' => '韗',\n  '' => '韙',\n  '' => '韖',\n  '' => '韘',\n  '' => '韺',\n  '' => '顐',\n  '' => '顑',\n  '' => '顒',\n  '' => '颸',\n  '' => '饁',\n  '' => '餼',\n  '' => '餺',\n  '' => '騏',\n  '' => '騋',\n  '' => '騉',\n  '' => '騍',\n  '' => '騄',\n  '' => '騑',\n  '' => '騊',\n  '' => '騅',\n  '' => '騇',\n  '' => '騆',\n  '' => '髀',\n  '' => '髜',\n  '' => '鬈',\n  '' => '鬄',\n  '' => '鬅',\n  '' => '鬩',\n  '' => '鬵',\n  '' => '魊',\n  '' => '魌',\n  '' => '魋',\n  '' => '鯇',\n  '' => '鯆',\n  '' => '鯃',\n  '' => '鮿',\n  '' => '鯁',\n  '' => '鮵',\n  '' => '鮸',\n  '' => '鯓',\n  '' => '鮶',\n  '' => '鯄',\n  '' => '鮹',\n  '' => '鮽',\n  '' => '鵜',\n  '' => '鵓',\n  '' => '鵏',\n  '' => '鵊',\n  '' => '鵛',\n  '' => '鵋',\n  '' => '鵙',\n  '' => '鵖',\n  '' => '鵌',\n  '' => '鵗',\n  '' => '鵒',\n  '' => '鵔',\n  '' => '鵟',\n  '' => '鵘',\n  '' => '鵚',\n  '' => '麎',\n  '' => '麌',\n  '' => '黟',\n  '' => '鼁',\n  '' => '鼀',\n  '' => '鼖',\n  '' => '鼥',\n  '' => '鼫',\n  '' => '鼪',\n  '' => '鼩',\n  '' => '鼨',\n  '' => '齌',\n  '' => '齕',\n  '' => '儴',\n  '' => '儵',\n  '' => '劖',\n  '' => '勷',\n  '' => '厴',\n  '' => '嚫',\n  '' => '嚭',\n  '' => '嚦',\n  '' => '嚧',\n  '' => '嚪',\n  '' => '嚬',\n  '' => '壚',\n  '' => '壝',\n  '' => '壛',\n  '' => '夒',\n  '' => '嬽',\n  '' => '嬾',\n  '' => '嬿',\n  '' => '巃',\n  '' => '幰',\n  '@' => '徿',\n  'A' => '懻',\n  'B' => '攇',\n  'C' => '攐',\n  'D' => '攍',\n  'E' => '攉',\n  'F' => '攌',\n  'G' => '攎',\n  'H' => '斄',\n  'I' => '旞',\n  'J' => '旝',\n  'K' => '曞',\n  'L' => '櫧',\n  'M' => '櫠',\n  'N' => '櫌',\n  'O' => '櫑',\n  'P' => '櫙',\n  'Q' => '櫋',\n  'R' => '櫟',\n  'S' => '櫜',\n  'T' => '櫐',\n  'U' => '櫫',\n  'V' => '櫏',\n  'W' => '櫍',\n  'X' => '櫞',\n  'Y' => '歠',\n  'Z' => '殰',\n  '[' => '氌',\n  '\\\\' => '瀙',\n  ']' => '瀧',\n  '^' => '瀠',\n  '_' => '瀖',\n  '`' => '瀫',\n  'a' => '瀡',\n  'b' => '瀢',\n  'c' => '瀣',\n  'd' => '瀩',\n  'e' => '瀗',\n  'f' => '瀤',\n  'g' => '瀜',\n  'h' => '瀪',\n  'i' => '爌',\n  'j' => '爊',\n  'k' => '爇',\n  'l' => '爂',\n  'm' => '爅',\n  'n' => '犥',\n  'o' => '犦',\n  'p' => '犤',\n  'q' => '犣',\n  'r' => '犡',\n  's' => '瓋',\n  't' => '瓅',\n  'u' => '璷',\n  'v' => '瓃',\n  'w' => '甖',\n  'x' => '癠',\n  'y' => '矉',\n  'z' => '矊',\n  '{' => '矄',\n  '|' => '矱',\n  '}' => '礝',\n  '~' => '礛',\n  '' => '礡',\n  '' => '礜',\n  '' => '礗',\n  '' => '礞',\n  '' => '禰',\n  '' => '穧',\n  '' => '穨',\n  '' => '簳',\n  '' => '簼',\n  '' => '簹',\n  '' => '簬',\n  '' => '簻',\n  '' => '糬',\n  '' => '糪',\n  '' => '繶',\n  '' => '繵',\n  '' => '繸',\n  '' => '繰',\n  '' => '繷',\n  '' => '繯',\n  '' => '繺',\n  '' => '繲',\n  '' => '繴',\n  '' => '繨',\n  '' => '罋',\n  '' => '罊',\n  '' => '羃',\n  '' => '羆',\n  '' => '羷',\n  '' => '翽',\n  '' => '翾',\n  '' => '聸',\n  '' => '臗',\n  '' => '臕',\n  '' => '艤',\n  '' => '艡',\n  '' => '艣',\n  '' => '藫',\n  '' => '藱',\n  '' => '藭',\n  '' => '藙',\n  '' => '藡',\n  '' => '藨',\n  '' => '藚',\n  '' => '藗',\n  '' => '藬',\n  '' => '藲',\n  '' => '藸',\n  '' => '藘',\n  '' => '藟',\n  '' => '藣',\n  '' => '藜',\n  '' => '藑',\n  '' => '藰',\n  '' => '藦',\n  '' => '藯',\n  '' => '藞',\n  '' => '藢',\n  '' => '蠀',\n  '' => '蟺',\n  '' => '蠃',\n  '' => '蟶',\n  '' => '蟷',\n  '' => '蠉',\n  '' => '蠌',\n  '' => '蠋',\n  '' => '蠆',\n  '' => '蟼',\n  '' => '蠈',\n  '' => '蟿',\n  '' => '蠊',\n  '' => '蠂',\n  '' => '襢',\n  '' => '襚',\n  '' => '襛',\n  '' => '襗',\n  '' => '襡',\n  '' => '襜',\n  '' => '襘',\n  '' => '襝',\n  '' => '襙',\n  '' => '覈',\n  '' => '覷',\n  '' => '覶',\n  '' => '觶',\n  '' => '譐',\n  '' => '譈',\n  '' => '譊',\n  '' => '譀',\n  '' => '譓',\n  '' => '譖',\n  '' => '譔',\n  '' => '譋',\n  '' => '譕',\n  '@' => '譑',\n  'A' => '譂',\n  'B' => '譒',\n  'C' => '譗',\n  'D' => '豃',\n  'E' => '豷',\n  'F' => '豶',\n  'G' => '貚',\n  'H' => '贆',\n  'I' => '贇',\n  'J' => '贉',\n  'K' => '趬',\n  'L' => '趪',\n  'M' => '趭',\n  'N' => '趫',\n  'O' => '蹭',\n  'P' => '蹸',\n  'Q' => '蹳',\n  'R' => '蹪',\n  'S' => '蹯',\n  'T' => '蹻',\n  'U' => '軂',\n  'V' => '轒',\n  'W' => '轑',\n  'X' => '轏',\n  'Y' => '轐',\n  'Z' => '轓',\n  '[' => '辴',\n  '\\\\' => '酀',\n  ']' => '鄿',\n  '^' => '醰',\n  '_' => '醭',\n  '`' => '鏞',\n  'a' => '鏇',\n  'b' => '鏏',\n  'c' => '鏂',\n  'd' => '鏚',\n  'e' => '鏐',\n  'f' => '鏹',\n  'g' => '鏬',\n  'h' => '鏌',\n  'i' => '鏙',\n  'j' => '鎩',\n  'k' => '鏦',\n  'l' => '鏊',\n  'm' => '鏔',\n  'n' => '鏮',\n  'o' => '鏣',\n  'p' => '鏕',\n  'q' => '鏄',\n  'r' => '鏎',\n  's' => '鏀',\n  't' => '鏒',\n  'u' => '鏧',\n  'v' => '镽',\n  'w' => '闚',\n  'x' => '闛',\n  'y' => '雡',\n  'z' => '霩',\n  '{' => '霫',\n  '|' => '霬',\n  '}' => '霨',\n  '~' => '霦',\n  '' => '鞳',\n  '' => '鞷',\n  '' => '鞶',\n  '' => '韝',\n  '' => '韞',\n  '' => '韟',\n  '' => '顜',\n  '' => '顙',\n  '' => '顝',\n  '' => '顗',\n  '' => '颿',\n  '' => '颽',\n  '' => '颻',\n  '' => '颾',\n  '' => '饈',\n  '' => '饇',\n  '' => '饃',\n  '' => '馦',\n  '' => '馧',\n  '' => '騚',\n  '' => '騕',\n  '' => '騥',\n  '' => '騝',\n  '' => '騤',\n  '' => '騛',\n  '' => '騢',\n  '' => '騠',\n  '' => '騧',\n  '' => '騣',\n  '' => '騞',\n  '' => '騜',\n  '' => '騔',\n  '' => '髂',\n  '' => '鬋',\n  '' => '鬊',\n  '' => '鬎',\n  '' => '鬌',\n  '' => '鬷',\n  '' => '鯪',\n  '' => '鯫',\n  '' => '鯠',\n  '' => '鯞',\n  '' => '鯤',\n  '' => '鯦',\n  '' => '鯢',\n  '' => '鯰',\n  '' => '鯔',\n  '' => '鯗',\n  '' => '鯬',\n  '' => '鯜',\n  '' => '鯙',\n  '' => '鯥',\n  '' => '鯕',\n  '' => '鯡',\n  '' => '鯚',\n  '' => '鵷',\n  '' => '鶁',\n  '' => '鶊',\n  '' => '鶄',\n  '' => '鶈',\n  '' => '鵱',\n  '' => '鶀',\n  '' => '鵸',\n  '' => '鶆',\n  '' => '鶋',\n  '' => '鶌',\n  '' => '鵽',\n  '' => '鵫',\n  '' => '鵴',\n  '' => '鵵',\n  '' => '鵰',\n  '' => '鵩',\n  '' => '鶅',\n  '' => '鵳',\n  '' => '鵻',\n  '' => '鶂',\n  '' => '鵯',\n  '' => '鵹',\n  '' => '鵿',\n  '' => '鶇',\n  '' => '鵨',\n  '' => '麔',\n  '' => '麑',\n  '' => '黀',\n  '' => '黼',\n  '' => '鼭',\n  '' => '齀',\n  '' => '齁',\n  '' => '齍',\n  '' => '齖',\n  '' => '齗',\n  '' => '齘',\n  '' => '匷',\n  '' => '嚲',\n  '@' => '嚵',\n  'A' => '嚳',\n  'B' => '壣',\n  'C' => '孅',\n  'D' => '巆',\n  'E' => '巇',\n  'F' => '廮',\n  'G' => '廯',\n  'H' => '忀',\n  'I' => '忁',\n  'J' => '懹',\n  'K' => '攗',\n  'L' => '攖',\n  'M' => '攕',\n  'N' => '攓',\n  'O' => '旟',\n  'P' => '曨',\n  'Q' => '曣',\n  'R' => '曤',\n  'S' => '櫳',\n  'T' => '櫰',\n  'U' => '櫪',\n  'V' => '櫨',\n  'W' => '櫹',\n  'X' => '櫱',\n  'Y' => '櫮',\n  'Z' => '櫯',\n  '[' => '瀼',\n  '\\\\' => '瀵',\n  ']' => '瀯',\n  '^' => '瀷',\n  '_' => '瀴',\n  '`' => '瀱',\n  'a' => '灂',\n  'b' => '瀸',\n  'c' => '瀿',\n  'd' => '瀺',\n  'e' => '瀹',\n  'f' => '灀',\n  'g' => '瀻',\n  'h' => '瀳',\n  'i' => '灁',\n  'j' => '爓',\n  'k' => '爔',\n  'l' => '犨',\n  'm' => '獽',\n  'n' => '獼',\n  'o' => '璺',\n  'p' => '皫',\n  'q' => '皪',\n  'r' => '皾',\n  's' => '盭',\n  't' => '矌',\n  'u' => '矎',\n  'v' => '矏',\n  'w' => '矍',\n  'x' => '矲',\n  'y' => '礥',\n  'z' => '礣',\n  '{' => '礧',\n  '|' => '礨',\n  '}' => '礤',\n  '~' => '礩',\n  '' => '禲',\n  '' => '穮',\n  '' => '穬',\n  '' => '穭',\n  '' => '竷',\n  '' => '籉',\n  '' => '籈',\n  '' => '籊',\n  '' => '籇',\n  '' => '籅',\n  '' => '糮',\n  '' => '繻',\n  '' => '繾',\n  '' => '纁',\n  '' => '纀',\n  '' => '羺',\n  '' => '翿',\n  '' => '聹',\n  '' => '臛',\n  '' => '臙',\n  '' => '舋',\n  '' => '艨',\n  '' => '艩',\n  '' => '蘢',\n  '' => '藿',\n  '' => '蘁',\n  '' => '藾',\n  '' => '蘛',\n  '' => '蘀',\n  '' => '藶',\n  '' => '蘄',\n  '' => '蘉',\n  '' => '蘅',\n  '' => '蘌',\n  '' => '藽',\n  '' => '蠙',\n  '' => '蠐',\n  '' => '蠑',\n  '' => '蠗',\n  '' => '蠓',\n  '' => '蠖',\n  '' => '襣',\n  '' => '襦',\n  '' => '覹',\n  '' => '觷',\n  '' => '譠',\n  '' => '譪',\n  '' => '譝',\n  '' => '譨',\n  '' => '譣',\n  '' => '譥',\n  '' => '譧',\n  '' => '譭',\n  '' => '趮',\n  '' => '躆',\n  '' => '躈',\n  '' => '躄',\n  '' => '轙',\n  '' => '轖',\n  '' => '轗',\n  '' => '轕',\n  '' => '轘',\n  '' => '轚',\n  '' => '邍',\n  '' => '酃',\n  '' => '酁',\n  '' => '醷',\n  '' => '醵',\n  '' => '醲',\n  '' => '醳',\n  '' => '鐋',\n  '' => '鐓',\n  '' => '鏻',\n  '' => '鐠',\n  '' => '鐏',\n  '' => '鐔',\n  '' => '鏾',\n  '' => '鐕',\n  '' => '鐐',\n  '' => '鐨',\n  '' => '鐙',\n  '' => '鐍',\n  '' => '鏵',\n  '' => '鐀',\n  '' => '鏷',\n  '' => '鐇',\n  '' => '鐎',\n  '' => '鐖',\n  '' => '鐒',\n  '' => '鏺',\n  '' => '鐉',\n  '' => '鏸',\n  '' => '鐊',\n  '' => '鏿',\n  '@' => '鏼',\n  'A' => '鐌',\n  'B' => '鏶',\n  'C' => '鐑',\n  'D' => '鐆',\n  'E' => '闞',\n  'F' => '闠',\n  'G' => '闟',\n  'H' => '霮',\n  'I' => '霯',\n  'J' => '鞹',\n  'K' => '鞻',\n  'L' => '韽',\n  'M' => '韾',\n  'N' => '顠',\n  'O' => '顢',\n  'P' => '顣',\n  'Q' => '顟',\n  'R' => '飁',\n  'S' => '飂',\n  'T' => '饐',\n  'U' => '饎',\n  'V' => '饙',\n  'W' => '饌',\n  'X' => '饋',\n  'Y' => '饓',\n  'Z' => '騲',\n  '[' => '騴',\n  '\\\\' => '騱',\n  ']' => '騬',\n  '^' => '騪',\n  '_' => '騶',\n  '`' => '騩',\n  'a' => '騮',\n  'b' => '騸',\n  'c' => '騭',\n  'd' => '髇',\n  'e' => '髊',\n  'f' => '髆',\n  'g' => '鬐',\n  'h' => '鬒',\n  'i' => '鬑',\n  'j' => '鰋',\n  'k' => '鰈',\n  'l' => '鯷',\n  'm' => '鰅',\n  'n' => '鰒',\n  'o' => '鯸',\n  'p' => '鱀',\n  'q' => '鰇',\n  'r' => '鰎',\n  's' => '鰆',\n  't' => '鰗',\n  'u' => '鰔',\n  'v' => '鰉',\n  'w' => '鶟',\n  'x' => '鶙',\n  'y' => '鶤',\n  'z' => '鶝',\n  '{' => '鶒',\n  '|' => '鶘',\n  '}' => '鶐',\n  '~' => '鶛',\n  '' => '鶠',\n  '' => '鶔',\n  '' => '鶜',\n  '' => '鶪',\n  '' => '鶗',\n  '' => '鶡',\n  '' => '鶚',\n  '' => '鶢',\n  '' => '鶨',\n  '' => '鶞',\n  '' => '鶣',\n  '' => '鶿',\n  '' => '鶩',\n  '' => '鶖',\n  '' => '鶦',\n  '' => '鶧',\n  '' => '麙',\n  '' => '麛',\n  '' => '麚',\n  '' => '黥',\n  '' => '黤',\n  '' => '黧',\n  '' => '黦',\n  '' => '鼰',\n  '' => '鼮',\n  '' => '齛',\n  '' => '齠',\n  '' => '齞',\n  '' => '齝',\n  '' => '齙',\n  '' => '龑',\n  '' => '儺',\n  '' => '儹',\n  '' => '劘',\n  '' => '劗',\n  '' => '囃',\n  '' => '嚽',\n  '' => '嚾',\n  '' => '孈',\n  '' => '孇',\n  '' => '巋',\n  '' => '巏',\n  '' => '廱',\n  '' => '懽',\n  '' => '攛',\n  '' => '欂',\n  '' => '櫼',\n  '' => '欃',\n  '' => '櫸',\n  '' => '欀',\n  '' => '灃',\n  '' => '灄',\n  '' => '灊',\n  '' => '灈',\n  '' => '灉',\n  '' => '灅',\n  '' => '灆',\n  '' => '爝',\n  '' => '爚',\n  '' => '爙',\n  '' => '獾',\n  '' => '甗',\n  '' => '癪',\n  '' => '矐',\n  '' => '礭',\n  '' => '礱',\n  '' => '礯',\n  '' => '籔',\n  '' => '籓',\n  '' => '糲',\n  '' => '纊',\n  '' => '纇',\n  '' => '纈',\n  '' => '纋',\n  '' => '纆',\n  '' => '纍',\n  '' => '罍',\n  '' => '羻',\n  '' => '耰',\n  '' => '臝',\n  '' => '蘘',\n  '' => '蘪',\n  '' => '蘦',\n  '' => '蘟',\n  '' => '蘣',\n  '' => '蘜',\n  '' => '蘙',\n  '' => '蘧',\n  '' => '蘮',\n  '' => '蘡',\n  '' => '蘠',\n  '' => '蘩',\n  '' => '蘞',\n  '' => '蘥',\n  '@' => '蠩',\n  'A' => '蠝',\n  'B' => '蠛',\n  'C' => '蠠',\n  'D' => '蠤',\n  'E' => '蠜',\n  'F' => '蠫',\n  'G' => '衊',\n  'H' => '襭',\n  'I' => '襩',\n  'J' => '襮',\n  'K' => '襫',\n  'L' => '觺',\n  'M' => '譹',\n  'N' => '譸',\n  'O' => '譅',\n  'P' => '譺',\n  'Q' => '譻',\n  'R' => '贐',\n  'S' => '贔',\n  'T' => '趯',\n  'U' => '躎',\n  'V' => '躌',\n  'W' => '轞',\n  'X' => '轛',\n  'Y' => '轝',\n  'Z' => '酆',\n  '[' => '酄',\n  '\\\\' => '酅',\n  ']' => '醹',\n  '^' => '鐿',\n  '_' => '鐻',\n  '`' => '鐶',\n  'a' => '鐩',\n  'b' => '鐽',\n  'c' => '鐼',\n  'd' => '鐰',\n  'e' => '鐹',\n  'f' => '鐪',\n  'g' => '鐷',\n  'h' => '鐬',\n  'i' => '鑀',\n  'j' => '鐱',\n  'k' => '闥',\n  'l' => '闤',\n  'm' => '闣',\n  'n' => '霵',\n  'o' => '霺',\n  'p' => '鞿',\n  'q' => '韡',\n  'r' => '顤',\n  's' => '飉',\n  't' => '飆',\n  'u' => '飀',\n  'v' => '饘',\n  'w' => '饖',\n  'x' => '騹',\n  'y' => '騽',\n  'z' => '驆',\n  '{' => '驄',\n  '|' => '驂',\n  '}' => '驁',\n  '~' => '騺',\n  '' => '騿',\n  '' => '髍',\n  '' => '鬕',\n  '' => '鬗',\n  '' => '鬘',\n  '' => '鬖',\n  '' => '鬺',\n  '' => '魒',\n  '' => '鰫',\n  '' => '鰝',\n  '' => '鰜',\n  '' => '鰬',\n  '' => '鰣',\n  '' => '鰨',\n  '' => '鰩',\n  '' => '鰤',\n  '' => '鰡',\n  '' => '鶷',\n  '' => '鶶',\n  '' => '鶼',\n  '' => '鷁',\n  '' => '鷇',\n  '' => '鷊',\n  '' => '鷏',\n  '' => '鶾',\n  '' => '鷅',\n  '' => '鷃',\n  '' => '鶻',\n  '' => '鶵',\n  '' => '鷎',\n  '' => '鶹',\n  '' => '鶺',\n  '' => '鶬',\n  '' => '鷈',\n  '' => '鶱',\n  '' => '鶭',\n  '' => '鷌',\n  '' => '鶳',\n  '' => '鷍',\n  '' => '鶲',\n  '' => '鹺',\n  '' => '麜',\n  '' => '黫',\n  '' => '黮',\n  '' => '黭',\n  '' => '鼛',\n  '' => '鼘',\n  '' => '鼚',\n  '' => '鼱',\n  '' => '齎',\n  '' => '齥',\n  '' => '齤',\n  '' => '龒',\n  '' => '亹',\n  '' => '囆',\n  '' => '囅',\n  '' => '囋',\n  '' => '奱',\n  '' => '孋',\n  '' => '孌',\n  '' => '巕',\n  '' => '巑',\n  '' => '廲',\n  '' => '攡',\n  '' => '攠',\n  '' => '攦',\n  '' => '攢',\n  '' => '欋',\n  '' => '欈',\n  '' => '欉',\n  '' => '氍',\n  '' => '灕',\n  '' => '灖',\n  '' => '灗',\n  '' => '灒',\n  '' => '爞',\n  '' => '爟',\n  '' => '犩',\n  '' => '獿',\n  '' => '瓘',\n  '' => '瓕',\n  '' => '瓙',\n  '' => '瓗',\n  '' => '癭',\n  '' => '皭',\n  '' => '礵',\n  '' => '禴',\n  '' => '穰',\n  '' => '穱',\n  '' => '籗',\n  '' => '籜',\n  '' => '籙',\n  '' => '籛',\n  '' => '籚',\n  '@' => '糴',\n  'A' => '糱',\n  'B' => '纑',\n  'C' => '罏',\n  'D' => '羇',\n  'E' => '臞',\n  'F' => '艫',\n  'G' => '蘴',\n  'H' => '蘵',\n  'I' => '蘳',\n  'J' => '蘬',\n  'K' => '蘲',\n  'L' => '蘶',\n  'M' => '蠬',\n  'N' => '蠨',\n  'O' => '蠦',\n  'P' => '蠪',\n  'Q' => '蠥',\n  'R' => '襱',\n  'S' => '覿',\n  'T' => '覾',\n  'U' => '觻',\n  'V' => '譾',\n  'W' => '讄',\n  'X' => '讂',\n  'Y' => '讆',\n  'Z' => '讅',\n  '[' => '譿',\n  '\\\\' => '贕',\n  ']' => '躕',\n  '^' => '躔',\n  '_' => '躚',\n  '`' => '躒',\n  'a' => '躐',\n  'b' => '躖',\n  'c' => '躗',\n  'd' => '轠',\n  'e' => '轢',\n  'f' => '酇',\n  'g' => '鑌',\n  'h' => '鑐',\n  'i' => '鑊',\n  'j' => '鑋',\n  'k' => '鑏',\n  'l' => '鑇',\n  'm' => '鑅',\n  'n' => '鑈',\n  'o' => '鑉',\n  'p' => '鑆',\n  'q' => '霿',\n  'r' => '韣',\n  's' => '顪',\n  't' => '顩',\n  'u' => '飋',\n  'v' => '饔',\n  'w' => '饛',\n  'x' => '驎',\n  'y' => '驓',\n  'z' => '驔',\n  '{' => '驌',\n  '|' => '驏',\n  '}' => '驈',\n  '~' => '驊',\n  '' => '驉',\n  '' => '驒',\n  '' => '驐',\n  '' => '髐',\n  '' => '鬙',\n  '' => '鬫',\n  '' => '鬻',\n  '' => '魖',\n  '' => '魕',\n  '' => '鱆',\n  '' => '鱈',\n  '' => '鰿',\n  '' => '鱄',\n  '' => '鰹',\n  '' => '鰳',\n  '' => '鱁',\n  '' => '鰼',\n  '' => '鰷',\n  '' => '鰴',\n  '' => '鰲',\n  '' => '鰽',\n  '' => '鰶',\n  '' => '鷛',\n  '' => '鷒',\n  '' => '鷞',\n  '' => '鷚',\n  '' => '鷋',\n  '' => '鷐',\n  '' => '鷜',\n  '' => '鷑',\n  '' => '鷟',\n  '' => '鷩',\n  '' => '鷙',\n  '' => '鷘',\n  '' => '鷖',\n  '' => '鷵',\n  '' => '鷕',\n  '' => '鷝',\n  '' => '麶',\n  '' => '黰',\n  '' => '鼵',\n  '' => '鼳',\n  '' => '鼲',\n  '' => '齂',\n  '' => '齫',\n  '' => '龕',\n  '' => '龢',\n  '' => '儽',\n  '' => '劙',\n  '' => '壨',\n  '' => '壧',\n  '' => '奲',\n  '' => '孍',\n  '' => '巘',\n  '' => '蠯',\n  '' => '彏',\n  '' => '戁',\n  '' => '戃',\n  '' => '戄',\n  '' => '攩',\n  '' => '攥',\n  '' => '斖',\n  '' => '曫',\n  '' => '欑',\n  '' => '欒',\n  '' => '欏',\n  '' => '毊',\n  '' => '灛',\n  '' => '灚',\n  '' => '爢',\n  '' => '玂',\n  '' => '玁',\n  '' => '玃',\n  '' => '癰',\n  '' => '矔',\n  '' => '籧',\n  '' => '籦',\n  '' => '纕',\n  '' => '艬',\n  '' => '蘺',\n  '' => '虀',\n  '' => '蘹',\n  '' => '蘼',\n  '' => '蘱',\n  '' => '蘻',\n  '' => '蘾',\n  '' => '蠰',\n  '' => '蠲',\n  '' => '蠮',\n  '' => '蠳',\n  '' => '襶',\n  '' => '襴',\n  '' => '襳',\n  '' => '觾',\n  '@' => '讌',\n  'A' => '讎',\n  'B' => '讋',\n  'C' => '讈',\n  'D' => '豅',\n  'E' => '贙',\n  'F' => '躘',\n  'G' => '轤',\n  'H' => '轣',\n  'I' => '醼',\n  'J' => '鑢',\n  'K' => '鑕',\n  'L' => '鑝',\n  'M' => '鑗',\n  'N' => '鑞',\n  'O' => '韄',\n  'P' => '韅',\n  'Q' => '頀',\n  'R' => '驖',\n  'S' => '驙',\n  'T' => '鬞',\n  'U' => '鬟',\n  'V' => '鬠',\n  'W' => '鱒',\n  'X' => '鱘',\n  'Y' => '鱐',\n  'Z' => '鱊',\n  '[' => '鱍',\n  '\\\\' => '鱋',\n  ']' => '鱕',\n  '^' => '鱙',\n  '_' => '鱌',\n  '`' => '鱎',\n  'a' => '鷻',\n  'b' => '鷷',\n  'c' => '鷯',\n  'd' => '鷣',\n  'e' => '鷫',\n  'f' => '鷸',\n  'g' => '鷤',\n  'h' => '鷶',\n  'i' => '鷡',\n  'j' => '鷮',\n  'k' => '鷦',\n  'l' => '鷲',\n  'm' => '鷰',\n  'n' => '鷢',\n  'o' => '鷬',\n  'p' => '鷴',\n  'q' => '鷳',\n  'r' => '鷨',\n  's' => '鷭',\n  't' => '黂',\n  'u' => '黐',\n  'v' => '黲',\n  'w' => '黳',\n  'x' => '鼆',\n  'y' => '鼜',\n  'z' => '鼸',\n  '{' => '鼷',\n  '|' => '鼶',\n  '}' => '齃',\n  '~' => '齏',\n  '' => '齱',\n  '' => '齰',\n  '' => '齮',\n  '' => '齯',\n  '' => '囓',\n  '' => '囍',\n  '' => '孎',\n  '' => '屭',\n  '' => '攭',\n  '' => '曭',\n  '' => '曮',\n  '' => '欓',\n  '' => '灟',\n  '' => '灡',\n  '' => '灝',\n  '' => '灠',\n  '' => '爣',\n  '' => '瓛',\n  '' => '瓥',\n  '' => '矕',\n  '' => '礸',\n  '' => '禷',\n  '' => '禶',\n  '' => '籪',\n  '' => '纗',\n  '' => '羉',\n  '' => '艭',\n  '' => '虃',\n  '' => '蠸',\n  '' => '蠷',\n  '' => '蠵',\n  '' => '衋',\n  '' => '讔',\n  '' => '讕',\n  '' => '躞',\n  '' => '躟',\n  '' => '躠',\n  '' => '躝',\n  '' => '醾',\n  '' => '醽',\n  '' => '釂',\n  '' => '鑫',\n  '' => '鑨',\n  '' => '鑩',\n  '' => '雥',\n  '' => '靆',\n  '' => '靃',\n  '' => '靇',\n  '' => '韇',\n  '' => '韥',\n  '' => '驞',\n  '' => '髕',\n  '' => '魙',\n  '' => '鱣',\n  '' => '鱧',\n  '' => '鱦',\n  '' => '鱢',\n  '' => '鱞',\n  '' => '鱠',\n  '' => '鸂',\n  '' => '鷾',\n  '' => '鸇',\n  '' => '鸃',\n  '' => '鸆',\n  '' => '鸅',\n  '' => '鸀',\n  '' => '鸁',\n  '' => '鸉',\n  '' => '鷿',\n  '' => '鷽',\n  '' => '鸄',\n  '' => '麠',\n  '' => '鼞',\n  '' => '齆',\n  '' => '齴',\n  '' => '齵',\n  '' => '齶',\n  '' => '囔',\n  '' => '攮',\n  '' => '斸',\n  '' => '欘',\n  '' => '欙',\n  '' => '欗',\n  '' => '欚',\n  '' => '灢',\n  '' => '爦',\n  '' => '犪',\n  '' => '矘',\n  '' => '矙',\n  '' => '礹',\n  '' => '籩',\n  '' => '籫',\n  '' => '糶',\n  '' => '纚',\n  '@' => '纘',\n  'A' => '纛',\n  'B' => '纙',\n  'C' => '臠',\n  'D' => '臡',\n  'E' => '虆',\n  'F' => '虇',\n  'G' => '虈',\n  'H' => '襹',\n  'I' => '襺',\n  'J' => '襼',\n  'K' => '襻',\n  'L' => '觿',\n  'M' => '讘',\n  'N' => '讙',\n  'O' => '躥',\n  'P' => '躤',\n  'Q' => '躣',\n  'R' => '鑮',\n  'S' => '鑭',\n  'T' => '鑯',\n  'U' => '鑱',\n  'V' => '鑳',\n  'W' => '靉',\n  'X' => '顲',\n  'Y' => '饟',\n  'Z' => '鱨',\n  '[' => '鱮',\n  '\\\\' => '鱭',\n  ']' => '鸋',\n  '^' => '鸍',\n  '_' => '鸐',\n  '`' => '鸏',\n  'a' => '鸒',\n  'b' => '鸑',\n  'c' => '麡',\n  'd' => '黵',\n  'e' => '鼉',\n  'f' => '齇',\n  'g' => '齸',\n  'h' => '齻',\n  'i' => '齺',\n  'j' => '齹',\n  'k' => '圞',\n  'l' => '灦',\n  'm' => '籯',\n  'n' => '蠼',\n  'o' => '趲',\n  'p' => '躦',\n  'q' => '釃',\n  'r' => '鑴',\n  's' => '鑸',\n  't' => '鑶',\n  'u' => '鑵',\n  'v' => '驠',\n  'w' => '鱴',\n  'x' => '鱳',\n  'y' => '鱱',\n  'z' => '鱵',\n  '{' => '鸔',\n  '|' => '鸓',\n  '}' => '黶',\n  '~' => '鼊',\n  '' => '龤',\n  '' => '灨',\n  '' => '灥',\n  '' => '糷',\n  '' => '虪',\n  '' => '蠾',\n  '' => '蠽',\n  '' => '蠿',\n  '' => '讞',\n  '' => '貜',\n  '' => '躩',\n  '' => '軉',\n  '' => '靋',\n  '' => '顳',\n  '' => '顴',\n  '' => '飌',\n  '' => '饡',\n  '' => '馫',\n  '' => '驤',\n  '' => '驦',\n  '' => '驧',\n  '' => '鬤',\n  '' => '鸕',\n  '' => '鸗',\n  '' => '齈',\n  '' => '戇',\n  '' => '欞',\n  '' => '爧',\n  '' => '虌',\n  '' => '躨',\n  '' => '钂',\n  '' => '钀',\n  '' => '钁',\n  '' => '驩',\n  '' => '驨',\n  '' => '鬮',\n  '' => '鸙',\n  '' => '爩',\n  '' => '虋',\n  '' => '讟',\n  '' => '钃',\n  '' => '鱹',\n  '' => '麷',\n  '' => '癵',\n  '' => '驫',\n  '' => '鱺',\n  '' => '鸝',\n  '' => '灩',\n  '' => '灪',\n  '' => '麤',\n  '' => '齾',\n  '' => '齉',\n  '' => '龘',\n);\n\n$result =& $data;\nunset($data);\n\nreturn $result;\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/Resources/charset/translit.php",
    "content": "<?php\n\nstatic $data = array (\n  'µ' => 'μ',\n  '¼' => ' 1⁄4 ',\n  '½' => ' 1⁄2 ',\n  '¾' => ' 3⁄4 ',\n  'Ĳ' => 'IJ',\n  'ĳ' => 'ij',\n  'Ŀ' => 'L·',\n  'ŀ' => 'l·',\n  'ŉ' => 'ʼn',\n  'ſ' => 's',\n  'Ǆ' => 'DŽ',\n  'ǅ' => 'Dž',\n  'ǆ' => 'dž',\n  'Ǉ' => 'LJ',\n  'ǈ' => 'Lj',\n  'ǉ' => 'lj',\n  'Ǌ' => 'NJ',\n  'ǋ' => 'Nj',\n  'ǌ' => 'nj',\n  'Ǳ' => 'DZ',\n  'ǲ' => 'Dz',\n  'ǳ' => 'dz',\n  'ϐ' => 'β',\n  'ϑ' => 'θ',\n  'ϒ' => 'Υ',\n  'ϕ' => 'φ',\n  'ϖ' => 'π',\n  'ϰ' => 'κ',\n  'ϱ' => 'ρ',\n  'ϲ' => 'ς',\n  'ϴ' => 'Θ',\n  'ϵ' => 'ε',\n  'Ϲ' => 'Σ',\n  'և' => 'եւ',\n  'ٵ' => 'اٴ',\n  'ٶ' => 'وٴ',\n  'ٷ' => 'ۇٴ',\n  'ٸ' => 'يٴ',\n  'ำ' => 'ํา',\n  'ຳ' => 'ໍາ',\n  'ໜ' => 'ຫນ',\n  'ໝ' => 'ຫມ',\n  'ཷ' => 'ྲཱྀ',\n  'ཹ' => 'ླཱྀ',\n  'ẚ' => 'aʾ',\n  '․' => '.',\n  '‥' => '..',\n  '…' => '...',\n  '″' => '′′',\n  '‴' => '′′′',\n  '‶' => '‵‵',\n  '‷' => '‵‵‵',\n  '‼' => '!!',\n  '⁇' => '??',\n  '⁈' => '?!',\n  '⁉' => '!?',\n  '⁗' => '′′′′',\n  '₨' => 'Rs',\n  '℀' => 'a/c',\n  '℁' => 'a/s',\n  'ℂ' => 'C',\n  '℃' => '°C',\n  '℅' => 'c/o',\n  '℆' => 'c/u',\n  'ℇ' => 'Ɛ',\n  '℉' => '°F',\n  'ℊ' => 'g',\n  'ℋ' => 'H',\n  'ℌ' => 'H',\n  'ℍ' => 'H',\n  'ℎ' => 'h',\n  'ℏ' => 'ħ',\n  'ℐ' => 'I',\n  'ℑ' => 'I',\n  'ℒ' => 'L',\n  'ℓ' => 'l',\n  'ℕ' => 'N',\n  '№' => 'No',\n  'ℙ' => 'P',\n  'ℚ' => 'Q',\n  'ℛ' => 'R',\n  'ℜ' => 'R',\n  'ℝ' => 'R',\n  '℡' => 'TEL',\n  'ℤ' => 'Z',\n  'ℨ' => 'Z',\n  'ℬ' => 'B',\n  'ℭ' => 'C',\n  'ℯ' => 'e',\n  'ℰ' => 'E',\n  'ℱ' => 'F',\n  'ℳ' => 'M',\n  'ℴ' => 'o',\n  'ℵ' => 'א',\n  'ℶ' => 'ב',\n  'ℷ' => 'ג',\n  'ℸ' => 'ד',\n  'ℹ' => 'i',\n  '℻' => 'FAX',\n  'ℼ' => 'π',\n  'ℽ' => 'γ',\n  'ℾ' => 'Γ',\n  'ℿ' => 'Π',\n  '⅀' => '∑',\n  'ⅅ' => 'D',\n  'ⅆ' => 'd',\n  'ⅇ' => 'e',\n  'ⅈ' => 'i',\n  'ⅉ' => 'j',\n  '⅐' => ' 1⁄7 ',\n  '⅑' => ' 1⁄9 ',\n  '⅒' => ' 1⁄10 ',\n  '⅓' => ' 1⁄3 ',\n  '⅔' => ' 2⁄3 ',\n  '⅕' => ' 1⁄5 ',\n  '⅖' => ' 2⁄5 ',\n  '⅗' => ' 3⁄5 ',\n  '⅘' => ' 4⁄5 ',\n  '⅙' => ' 1⁄6 ',\n  '⅚' => ' 5⁄6 ',\n  '⅛' => ' 1⁄8 ',\n  '⅜' => ' 3⁄8 ',\n  '⅝' => ' 5⁄8 ',\n  '⅞' => ' 7⁄8 ',\n  '⅟' => ' 1⁄ ',\n  'Ⅰ' => 'I',\n  'Ⅱ' => 'II',\n  'Ⅲ' => 'III',\n  'Ⅳ' => 'IV',\n  'Ⅴ' => 'V',\n  'Ⅵ' => 'VI',\n  'Ⅶ' => 'VII',\n  'Ⅷ' => 'VIII',\n  'Ⅸ' => 'IX',\n  'Ⅹ' => 'X',\n  'Ⅺ' => 'XI',\n  'Ⅻ' => 'XII',\n  'Ⅼ' => 'L',\n  'Ⅽ' => 'C',\n  'Ⅾ' => 'D',\n  'Ⅿ' => 'M',\n  'ⅰ' => 'i',\n  'ⅱ' => 'ii',\n  'ⅲ' => 'iii',\n  'ⅳ' => 'iv',\n  'ⅴ' => 'v',\n  'ⅵ' => 'vi',\n  'ⅶ' => 'vii',\n  'ⅷ' => 'viii',\n  'ⅸ' => 'ix',\n  'ⅹ' => 'x',\n  'ⅺ' => 'xi',\n  'ⅻ' => 'xii',\n  'ⅼ' => 'l',\n  'ⅽ' => 'c',\n  'ⅾ' => 'd',\n  'ⅿ' => 'm',\n  '↉' => ' 0⁄3 ',\n  '∬' => '∫∫',\n  '∭' => '∫∫∫',\n  '∯' => '∮∮',\n  '∰' => '∮∮∮',\n  '①' => '(1)',\n  '②' => '(2)',\n  '③' => '(3)',\n  '④' => '(4)',\n  '⑤' => '(5)',\n  '⑥' => '(6)',\n  '⑦' => '(7)',\n  '⑧' => '(8)',\n  '⑨' => '(9)',\n  '⑩' => '(10)',\n  '⑪' => '(11)',\n  '⑫' => '(12)',\n  '⑬' => '(13)',\n  '⑭' => '(14)',\n  '⑮' => '(15)',\n  '⑯' => '(16)',\n  '⑰' => '(17)',\n  '⑱' => '(18)',\n  '⑲' => '(19)',\n  '⑳' => '(20)',\n  '⑴' => '(1)',\n  '⑵' => '(2)',\n  '⑶' => '(3)',\n  '⑷' => '(4)',\n  '⑸' => '(5)',\n  '⑹' => '(6)',\n  '⑺' => '(7)',\n  '⑻' => '(8)',\n  '⑼' => '(9)',\n  '⑽' => '(10)',\n  '⑾' => '(11)',\n  '⑿' => '(12)',\n  '⒀' => '(13)',\n  '⒁' => '(14)',\n  '⒂' => '(15)',\n  '⒃' => '(16)',\n  '⒄' => '(17)',\n  '⒅' => '(18)',\n  '⒆' => '(19)',\n  '⒇' => '(20)',\n  '⒈' => '1.',\n  '⒉' => '2.',\n  '⒊' => '3.',\n  '⒋' => '4.',\n  '⒌' => '5.',\n  '⒍' => '6.',\n  '⒎' => '7.',\n  '⒏' => '8.',\n  '⒐' => '9.',\n  '⒑' => '10.',\n  '⒒' => '11.',\n  '⒓' => '12.',\n  '⒔' => '13.',\n  '⒕' => '14.',\n  '⒖' => '15.',\n  '⒗' => '16.',\n  '⒘' => '17.',\n  '⒙' => '18.',\n  '⒚' => '19.',\n  '⒛' => '20.',\n  '⒜' => '(a)',\n  '⒝' => '(b)',\n  '⒞' => '(c)',\n  '⒟' => '(d)',\n  '⒠' => '(e)',\n  '⒡' => '(f)',\n  '⒢' => '(g)',\n  '⒣' => '(h)',\n  '⒤' => '(i)',\n  '⒥' => '(j)',\n  '⒦' => '(k)',\n  '⒧' => '(l)',\n  '⒨' => '(m)',\n  '⒩' => '(n)',\n  '⒪' => '(o)',\n  '⒫' => '(p)',\n  '⒬' => '(q)',\n  '⒭' => '(r)',\n  '⒮' => '(s)',\n  '⒯' => '(t)',\n  '⒰' => '(u)',\n  '⒱' => '(v)',\n  '⒲' => '(w)',\n  '⒳' => '(x)',\n  '⒴' => '(y)',\n  '⒵' => '(z)',\n  'Ⓐ' => '(A)',\n  'Ⓑ' => '(B)',\n  'Ⓒ' => '(C)',\n  'Ⓓ' => '(D)',\n  'Ⓔ' => '(E)',\n  'Ⓕ' => '(F)',\n  'Ⓖ' => '(G)',\n  'Ⓗ' => '(H)',\n  'Ⓘ' => '(I)',\n  'Ⓙ' => '(J)',\n  'Ⓚ' => '(K)',\n  'Ⓛ' => '(L)',\n  'Ⓜ' => '(M)',\n  'Ⓝ' => '(N)',\n  'Ⓞ' => '(O)',\n  'Ⓟ' => '(P)',\n  'Ⓠ' => '(Q)',\n  'Ⓡ' => '(R)',\n  'Ⓢ' => '(S)',\n  'Ⓣ' => '(T)',\n  'Ⓤ' => '(U)',\n  'Ⓥ' => '(V)',\n  'Ⓦ' => '(W)',\n  'Ⓧ' => '(X)',\n  'Ⓨ' => '(Y)',\n  'Ⓩ' => '(Z)',\n  'ⓐ' => '(a)',\n  'ⓑ' => '(b)',\n  'ⓒ' => '(c)',\n  'ⓓ' => '(d)',\n  'ⓔ' => '(e)',\n  'ⓕ' => '(f)',\n  'ⓖ' => '(g)',\n  'ⓗ' => '(h)',\n  'ⓘ' => '(i)',\n  'ⓙ' => '(j)',\n  'ⓚ' => '(k)',\n  'ⓛ' => '(l)',\n  'ⓜ' => '(m)',\n  'ⓝ' => '(n)',\n  'ⓞ' => '(o)',\n  'ⓟ' => '(p)',\n  'ⓠ' => '(q)',\n  'ⓡ' => '(r)',\n  'ⓢ' => '(s)',\n  'ⓣ' => '(t)',\n  'ⓤ' => '(u)',\n  'ⓥ' => '(v)',\n  'ⓦ' => '(w)',\n  'ⓧ' => '(x)',\n  'ⓨ' => '(y)',\n  'ⓩ' => '(z)',\n  '⓪' => '(0)',\n  '⨌' => '∫∫∫∫',\n  '⩴' => '::=',\n  '⩵' => '==',\n  '⩶' => '===',\n  '⺟' => '母',\n  '⻳' => '龟',\n  '⼀' => '一',\n  '⼁' => '丨',\n  '⼂' => '丶',\n  '⼃' => '丿',\n  '⼄' => '乙',\n  '⼅' => '亅',\n  '⼆' => '二',\n  '⼇' => '亠',\n  '⼈' => '人',\n  '⼉' => '儿',\n  '⼊' => '入',\n  '⼋' => '八',\n  '⼌' => '冂',\n  '⼍' => '冖',\n  '⼎' => '冫',\n  '⼏' => '几',\n  '⼐' => '凵',\n  '⼑' => '刀',\n  '⼒' => '力',\n  '⼓' => '勹',\n  '⼔' => '匕',\n  '⼕' => '匚',\n  '⼖' => '匸',\n  '⼗' => '十',\n  '⼘' => '卜',\n  '⼙' => '卩',\n  '⼚' => '厂',\n  '⼛' => '厶',\n  '⼜' => '又',\n  '⼝' => '口',\n  '⼞' => '囗',\n  '⼟' => '土',\n  '⼠' => '士',\n  '⼡' => '夂',\n  '⼢' => '夊',\n  '⼣' => '夕',\n  '⼤' => '大',\n  '⼥' => '女',\n  '⼦' => '子',\n  '⼧' => '宀',\n  '⼨' => '寸',\n  '⼩' => '小',\n  '⼪' => '尢',\n  '⼫' => '尸',\n  '⼬' => '屮',\n  '⼭' => '山',\n  '⼮' => '巛',\n  '⼯' => '工',\n  '⼰' => '己',\n  '⼱' => '巾',\n  '⼲' => '干',\n  '⼳' => '幺',\n  '⼴' => '广',\n  '⼵' => '廴',\n  '⼶' => '廾',\n  '⼷' => '弋',\n  '⼸' => '弓',\n  '⼹' => '彐',\n  '⼺' => '彡',\n  '⼻' => '彳',\n  '⼼' => '心',\n  '⼽' => '戈',\n  '⼾' => '戶',\n  '⼿' => '手',\n  '⽀' => '支',\n  '⽁' => '攴',\n  '⽂' => '文',\n  '⽃' => '斗',\n  '⽄' => '斤',\n  '⽅' => '方',\n  '⽆' => '无',\n  '⽇' => '日',\n  '⽈' => '曰',\n  '⽉' => '月',\n  '⽊' => '木',\n  '⽋' => '欠',\n  '⽌' => '止',\n  '⽍' => '歹',\n  '⽎' => '殳',\n  '⽏' => '毋',\n  '⽐' => '比',\n  '⽑' => '毛',\n  '⽒' => '氏',\n  '⽓' => '气',\n  '⽔' => '水',\n  '⽕' => '火',\n  '⽖' => '爪',\n  '⽗' => '父',\n  '⽘' => '爻',\n  '⽙' => '爿',\n  '⽚' => '片',\n  '⽛' => '牙',\n  '⽜' => '牛',\n  '⽝' => '犬',\n  '⽞' => '玄',\n  '⽟' => '玉',\n  '⽠' => '瓜',\n  '⽡' => '瓦',\n  '⽢' => '甘',\n  '⽣' => '生',\n  '⽤' => '用',\n  '⽥' => '田',\n  '⽦' => '疋',\n  '⽧' => '疒',\n  '⽨' => '癶',\n  '⽩' => '白',\n  '⽪' => '皮',\n  '⽫' => '皿',\n  '⽬' => '目',\n  '⽭' => '矛',\n  '⽮' => '矢',\n  '⽯' => '石',\n  '⽰' => '示',\n  '⽱' => '禸',\n  '⽲' => '禾',\n  '⽳' => '穴',\n  '⽴' => '立',\n  '⽵' => '竹',\n  '⽶' => '米',\n  '⽷' => '糸',\n  '⽸' => '缶',\n  '⽹' => '网',\n  '⽺' => '羊',\n  '⽻' => '羽',\n  '⽼' => '老',\n  '⽽' => '而',\n  '⽾' => '耒',\n  '⽿' => '耳',\n  '⾀' => '聿',\n  '⾁' => '肉',\n  '⾂' => '臣',\n  '⾃' => '自',\n  '⾄' => '至',\n  '⾅' => '臼',\n  '⾆' => '舌',\n  '⾇' => '舛',\n  '⾈' => '舟',\n  '⾉' => '艮',\n  '⾊' => '色',\n  '⾋' => '艸',\n  '⾌' => '虍',\n  '⾍' => '虫',\n  '⾎' => '血',\n  '⾏' => '行',\n  '⾐' => '衣',\n  '⾑' => '襾',\n  '⾒' => '見',\n  '⾓' => '角',\n  '⾔' => '言',\n  '⾕' => '谷',\n  '⾖' => '豆',\n  '⾗' => '豕',\n  '⾘' => '豸',\n  '⾙' => '貝',\n  '⾚' => '赤',\n  '⾛' => '走',\n  '⾜' => '足',\n  '⾝' => '身',\n  '⾞' => '車',\n  '⾟' => '辛',\n  '⾠' => '辰',\n  '⾡' => '辵',\n  '⾢' => '邑',\n  '⾣' => '酉',\n  '⾤' => '釆',\n  '⾥' => '里',\n  '⾦' => '金',\n  '⾧' => '長',\n  '⾨' => '門',\n  '⾩' => '阜',\n  '⾪' => '隶',\n  '⾫' => '隹',\n  '⾬' => '雨',\n  '⾭' => '靑',\n  '⾮' => '非',\n  '⾯' => '面',\n  '⾰' => '革',\n  '⾱' => '韋',\n  '⾲' => '韭',\n  '⾳' => '音',\n  '⾴' => '頁',\n  '⾵' => '風',\n  '⾶' => '飛',\n  '⾷' => '食',\n  '⾸' => '首',\n  '⾹' => '香',\n  '⾺' => '馬',\n  '⾻' => '骨',\n  '⾼' => '高',\n  '⾽' => '髟',\n  '⾾' => '鬥',\n  '⾿' => '鬯',\n  '⿀' => '鬲',\n  '⿁' => '鬼',\n  '⿂' => '魚',\n  '⿃' => '鳥',\n  '⿄' => '鹵',\n  '⿅' => '鹿',\n  '⿆' => '麥',\n  '⿇' => '麻',\n  '⿈' => '黃',\n  '⿉' => '黍',\n  '⿊' => '黑',\n  '⿋' => '黹',\n  '⿌' => '黽',\n  '⿍' => '鼎',\n  '⿎' => '鼓',\n  '⿏' => '鼠',\n  '⿐' => '鼻',\n  '⿑' => '齊',\n  '⿒' => '齒',\n  '⿓' => '龍',\n  '⿔' => '龜',\n  '⿕' => '龠',\n  '　' => ' ',\n  '〶' => '〒',\n  '〸' => '十',\n  '〹' => '卄',\n  '〺' => '卅',\n  'ㄱ' => 'ᄀ',\n  'ㄲ' => 'ᄁ',\n  'ㄳ' => 'ᆪ',\n  'ㄴ' => 'ᄂ',\n  'ㄵ' => 'ᆬ',\n  'ㄶ' => 'ᆭ',\n  'ㄷ' => 'ᄃ',\n  'ㄸ' => 'ᄄ',\n  'ㄹ' => 'ᄅ',\n  'ㄺ' => 'ᆰ',\n  'ㄻ' => 'ᆱ',\n  'ㄼ' => 'ᆲ',\n  'ㄽ' => 'ᆳ',\n  'ㄾ' => 'ᆴ',\n  'ㄿ' => 'ᆵ',\n  'ㅀ' => 'ᄚ',\n  'ㅁ' => 'ᄆ',\n  'ㅂ' => 'ᄇ',\n  'ㅃ' => 'ᄈ',\n  'ㅄ' => 'ᄡ',\n  'ㅅ' => 'ᄉ',\n  'ㅆ' => 'ᄊ',\n  'ㅇ' => 'ᄋ',\n  'ㅈ' => 'ᄌ',\n  'ㅉ' => 'ᄍ',\n  'ㅊ' => 'ᄎ',\n  'ㅋ' => 'ᄏ',\n  'ㅌ' => 'ᄐ',\n  'ㅍ' => 'ᄑ',\n  'ㅎ' => 'ᄒ',\n  'ㅏ' => 'ᅡ',\n  'ㅐ' => 'ᅢ',\n  'ㅑ' => 'ᅣ',\n  'ㅒ' => 'ᅤ',\n  'ㅓ' => 'ᅥ',\n  'ㅔ' => 'ᅦ',\n  'ㅕ' => 'ᅧ',\n  'ㅖ' => 'ᅨ',\n  'ㅗ' => 'ᅩ',\n  'ㅘ' => 'ᅪ',\n  'ㅙ' => 'ᅫ',\n  'ㅚ' => 'ᅬ',\n  'ㅛ' => 'ᅭ',\n  'ㅜ' => 'ᅮ',\n  'ㅝ' => 'ᅯ',\n  'ㅞ' => 'ᅰ',\n  'ㅟ' => 'ᅱ',\n  'ㅠ' => 'ᅲ',\n  'ㅡ' => 'ᅳ',\n  'ㅢ' => 'ᅴ',\n  'ㅣ' => 'ᅵ',\n  'ㅤ' => 'ᅠ',\n  'ㅥ' => 'ᄔ',\n  'ㅦ' => 'ᄕ',\n  'ㅧ' => 'ᇇ',\n  'ㅨ' => 'ᇈ',\n  'ㅩ' => 'ᇌ',\n  'ㅪ' => 'ᇎ',\n  'ㅫ' => 'ᇓ',\n  'ㅬ' => 'ᇗ',\n  'ㅭ' => 'ᇙ',\n  'ㅮ' => 'ᄜ',\n  'ㅯ' => 'ᇝ',\n  'ㅰ' => 'ᇟ',\n  'ㅱ' => 'ᄝ',\n  'ㅲ' => 'ᄞ',\n  'ㅳ' => 'ᄠ',\n  'ㅴ' => 'ᄢ',\n  'ㅵ' => 'ᄣ',\n  'ㅶ' => 'ᄧ',\n  'ㅷ' => 'ᄩ',\n  'ㅸ' => 'ᄫ',\n  'ㅹ' => 'ᄬ',\n  'ㅺ' => 'ᄭ',\n  'ㅻ' => 'ᄮ',\n  'ㅼ' => 'ᄯ',\n  'ㅽ' => 'ᄲ',\n  'ㅾ' => 'ᄶ',\n  'ㅿ' => 'ᅀ',\n  'ㆀ' => 'ᅇ',\n  'ㆁ' => 'ᅌ',\n  'ㆂ' => 'ᇱ',\n  'ㆃ' => 'ᇲ',\n  'ㆄ' => 'ᅗ',\n  'ㆅ' => 'ᅘ',\n  'ㆆ' => 'ᅙ',\n  'ㆇ' => 'ᆄ',\n  'ㆈ' => 'ᆅ',\n  'ㆉ' => 'ᆈ',\n  'ㆊ' => 'ᆑ',\n  'ㆋ' => 'ᆒ',\n  'ㆌ' => 'ᆔ',\n  'ㆍ' => 'ᆞ',\n  'ㆎ' => 'ᆡ',\n  '㈀' => '(ᄀ)',\n  '㈁' => '(ᄂ)',\n  '㈂' => '(ᄃ)',\n  '㈃' => '(ᄅ)',\n  '㈄' => '(ᄆ)',\n  '㈅' => '(ᄇ)',\n  '㈆' => '(ᄉ)',\n  '㈇' => '(ᄋ)',\n  '㈈' => '(ᄌ)',\n  '㈉' => '(ᄎ)',\n  '㈊' => '(ᄏ)',\n  '㈋' => '(ᄐ)',\n  '㈌' => '(ᄑ)',\n  '㈍' => '(ᄒ)',\n  '㈎' => '(가)',\n  '㈏' => '(나)',\n  '㈐' => '(다)',\n  '㈑' => '(라)',\n  '㈒' => '(마)',\n  '㈓' => '(바)',\n  '㈔' => '(사)',\n  '㈕' => '(아)',\n  '㈖' => '(자)',\n  '㈗' => '(차)',\n  '㈘' => '(카)',\n  '㈙' => '(타)',\n  '㈚' => '(파)',\n  '㈛' => '(하)',\n  '㈜' => '(주)',\n  '㈝' => '(오전)',\n  '㈞' => '(오후)',\n  '㈠' => '(一)',\n  '㈡' => '(二)',\n  '㈢' => '(三)',\n  '㈣' => '(四)',\n  '㈤' => '(五)',\n  '㈥' => '(六)',\n  '㈦' => '(七)',\n  '㈧' => '(八)',\n  '㈨' => '(九)',\n  '㈩' => '(十)',\n  '㈪' => '(月)',\n  '㈫' => '(火)',\n  '㈬' => '(水)',\n  '㈭' => '(木)',\n  '㈮' => '(金)',\n  '㈯' => '(土)',\n  '㈰' => '(日)',\n  '㈱' => '(株)',\n  '㈲' => '(有)',\n  '㈳' => '(社)',\n  '㈴' => '(名)',\n  '㈵' => '(特)',\n  '㈶' => '(財)',\n  '㈷' => '(祝)',\n  '㈸' => '(労)',\n  '㈹' => '(代)',\n  '㈺' => '(呼)',\n  '㈻' => '(学)',\n  '㈼' => '(監)',\n  '㈽' => '(企)',\n  '㈾' => '(資)',\n  '㈿' => '(協)',\n  '㉀' => '(祭)',\n  '㉁' => '(休)',\n  '㉂' => '(自)',\n  '㉃' => '(至)',\n  '㉄' => '(問)',\n  '㉅' => '(幼)',\n  '㉆' => '(文)',\n  '㉇' => '(箏)',\n  '㉐' => 'PTE',\n  '㉑' => '(21)',\n  '㉒' => '(22)',\n  '㉓' => '(23)',\n  '㉔' => '(24)',\n  '㉕' => '(25)',\n  '㉖' => '(26)',\n  '㉗' => '(27)',\n  '㉘' => '(28)',\n  '㉙' => '(29)',\n  '㉚' => '(30)',\n  '㉛' => '(31)',\n  '㉜' => '(32)',\n  '㉝' => '(33)',\n  '㉞' => '(34)',\n  '㉟' => '(35)',\n  '㉠' => '(ᄀ)',\n  '㉡' => '(ᄂ)',\n  '㉢' => '(ᄃ)',\n  '㉣' => '(ᄅ)',\n  '㉤' => '(ᄆ)',\n  '㉥' => '(ᄇ)',\n  '㉦' => '(ᄉ)',\n  '㉧' => '(ᄋ)',\n  '㉨' => '(ᄌ)',\n  '㉩' => '(ᄎ)',\n  '㉪' => '(ᄏ)',\n  '㉫' => '(ᄐ)',\n  '㉬' => '(ᄑ)',\n  '㉭' => '(ᄒ)',\n  '㉮' => '(가)',\n  '㉯' => '(나)',\n  '㉰' => '(다)',\n  '㉱' => '(라)',\n  '㉲' => '(마)',\n  '㉳' => '(바)',\n  '㉴' => '(사)',\n  '㉵' => '(아)',\n  '㉶' => '(자)',\n  '㉷' => '(차)',\n  '㉸' => '(카)',\n  '㉹' => '(타)',\n  '㉺' => '(파)',\n  '㉻' => '(하)',\n  '㉼' => '(참고)',\n  '㉽' => '(주의)',\n  '㉾' => '(우)',\n  '㊀' => '(一)',\n  '㊁' => '(二)',\n  '㊂' => '(三)',\n  '㊃' => '(四)',\n  '㊄' => '(五)',\n  '㊅' => '(六)',\n  '㊆' => '(七)',\n  '㊇' => '(八)',\n  '㊈' => '(九)',\n  '㊉' => '(十)',\n  '㊊' => '(月)',\n  '㊋' => '(火)',\n  '㊌' => '(水)',\n  '㊍' => '(木)',\n  '㊎' => '(金)',\n  '㊏' => '(土)',\n  '㊐' => '(日)',\n  '㊑' => '(株)',\n  '㊒' => '(有)',\n  '㊓' => '(社)',\n  '㊔' => '(名)',\n  '㊕' => '(特)',\n  '㊖' => '(財)',\n  '㊗' => '(祝)',\n  '㊘' => '(労)',\n  '㊙' => '(秘)',\n  '㊚' => '(男)',\n  '㊛' => '(女)',\n  '㊜' => '(適)',\n  '㊝' => '(優)',\n  '㊞' => '(印)',\n  '㊟' => '(注)',\n  '㊠' => '(項)',\n  '㊡' => '(休)',\n  '㊢' => '(写)',\n  '㊣' => '(正)',\n  '㊤' => '(上)',\n  '㊥' => '(中)',\n  '㊦' => '(下)',\n  '㊧' => '(左)',\n  '㊨' => '(右)',\n  '㊩' => '(医)',\n  '㊪' => '(宗)',\n  '㊫' => '(学)',\n  '㊬' => '(監)',\n  '㊭' => '(企)',\n  '㊮' => '(資)',\n  '㊯' => '(協)',\n  '㊰' => '(夜)',\n  '㊱' => '(36)',\n  '㊲' => '(37)',\n  '㊳' => '(38)',\n  '㊴' => '(39)',\n  '㊵' => '(40)',\n  '㊶' => '(41)',\n  '㊷' => '(42)',\n  '㊸' => '(43)',\n  '㊹' => '(44)',\n  '㊺' => '(45)',\n  '㊻' => '(46)',\n  '㊼' => '(47)',\n  '㊽' => '(48)',\n  '㊾' => '(49)',\n  '㊿' => '(50)',\n  '㋀' => '1月',\n  '㋁' => '2月',\n  '㋂' => '3月',\n  '㋃' => '4月',\n  '㋄' => '5月',\n  '㋅' => '6月',\n  '㋆' => '7月',\n  '㋇' => '8月',\n  '㋈' => '9月',\n  '㋉' => '10月',\n  '㋊' => '11月',\n  '㋋' => '12月',\n  '㋌' => 'Hg',\n  '㋍' => 'erg',\n  '㋎' => 'eV',\n  '㋏' => 'LTD',\n  '㋐' => '(ア)',\n  '㋑' => '(イ)',\n  '㋒' => '(ウ)',\n  '㋓' => '(エ)',\n  '㋔' => '(オ)',\n  '㋕' => '(カ)',\n  '㋖' => '(キ)',\n  '㋗' => '(ク)',\n  '㋘' => '(ケ)',\n  '㋙' => '(コ)',\n  '㋚' => '(サ)',\n  '㋛' => '(シ)',\n  '㋜' => '(ス)',\n  '㋝' => '(セ)',\n  '㋞' => '(ソ)',\n  '㋟' => '(タ)',\n  '㋠' => '(チ)',\n  '㋡' => '(ツ)',\n  '㋢' => '(テ)',\n  '㋣' => '(ト)',\n  '㋤' => '(ナ)',\n  '㋥' => '(ニ)',\n  '㋦' => '(ヌ)',\n  '㋧' => '(ネ)',\n  '㋨' => '(ノ)',\n  '㋩' => '(ハ)',\n  '㋪' => '(ヒ)',\n  '㋫' => '(フ)',\n  '㋬' => '(ヘ)',\n  '㋭' => '(ホ)',\n  '㋮' => '(マ)',\n  '㋯' => '(ミ)',\n  '㋰' => '(ム)',\n  '㋱' => '(メ)',\n  '㋲' => '(モ)',\n  '㋳' => '(ヤ)',\n  '㋴' => '(ユ)',\n  '㋵' => '(ヨ)',\n  '㋶' => '(ラ)',\n  '㋷' => '(リ)',\n  '㋸' => '(ル)',\n  '㋹' => '(レ)',\n  '㋺' => '(ロ)',\n  '㋻' => '(ワ)',\n  '㋼' => '(ヰ)',\n  '㋽' => '(ヱ)',\n  '㋾' => '(ヲ)',\n  '㌀' => 'アパート',\n  '㌁' => 'アルファ',\n  '㌂' => 'アンペア',\n  '㌃' => 'アール',\n  '㌄' => 'イニング',\n  '㌅' => 'インチ',\n  '㌆' => 'ウォン',\n  '㌇' => 'エスクード',\n  '㌈' => 'エーカー',\n  '㌉' => 'オンス',\n  '㌊' => 'オーム',\n  '㌋' => 'カイリ',\n  '㌌' => 'カラット',\n  '㌍' => 'カロリー',\n  '㌎' => 'ガロン',\n  '㌏' => 'ガンマ',\n  '㌐' => 'ギガ',\n  '㌑' => 'ギニー',\n  '㌒' => 'キュリー',\n  '㌓' => 'ギルダー',\n  '㌔' => 'キロ',\n  '㌕' => 'キログラム',\n  '㌖' => 'キロメートル',\n  '㌗' => 'キロワット',\n  '㌘' => 'グラム',\n  '㌙' => 'グラムトン',\n  '㌚' => 'クルゼイロ',\n  '㌛' => 'クローネ',\n  '㌜' => 'ケース',\n  '㌝' => 'コルナ',\n  '㌞' => 'コーポ',\n  '㌟' => 'サイクル',\n  '㌠' => 'サンチーム',\n  '㌡' => 'シリング',\n  '㌢' => 'センチ',\n  '㌣' => 'セント',\n  '㌤' => 'ダース',\n  '㌥' => 'デシ',\n  '㌦' => 'ドル',\n  '㌧' => 'トン',\n  '㌨' => 'ナノ',\n  '㌩' => 'ノット',\n  '㌪' => 'ハイツ',\n  '㌫' => 'パーセント',\n  '㌬' => 'パーツ',\n  '㌭' => 'バーレル',\n  '㌮' => 'ピアストル',\n  '㌯' => 'ピクル',\n  '㌰' => 'ピコ',\n  '㌱' => 'ビル',\n  '㌲' => 'ファラッド',\n  '㌳' => 'フィート',\n  '㌴' => 'ブッシェル',\n  '㌵' => 'フラン',\n  '㌶' => 'ヘクタール',\n  '㌷' => 'ペソ',\n  '㌸' => 'ペニヒ',\n  '㌹' => 'ヘルツ',\n  '㌺' => 'ペンス',\n  '㌻' => 'ページ',\n  '㌼' => 'ベータ',\n  '㌽' => 'ポイント',\n  '㌾' => 'ボルト',\n  '㌿' => 'ホン',\n  '㍀' => 'ポンド',\n  '㍁' => 'ホール',\n  '㍂' => 'ホーン',\n  '㍃' => 'マイクロ',\n  '㍄' => 'マイル',\n  '㍅' => 'マッハ',\n  '㍆' => 'マルク',\n  '㍇' => 'マンション',\n  '㍈' => 'ミクロン',\n  '㍉' => 'ミリ',\n  '㍊' => 'ミリバール',\n  '㍋' => 'メガ',\n  '㍌' => 'メガトン',\n  '㍍' => 'メートル',\n  '㍎' => 'ヤード',\n  '㍏' => 'ヤール',\n  '㍐' => 'ユアン',\n  '㍑' => 'リットル',\n  '㍒' => 'リラ',\n  '㍓' => 'ルピー',\n  '㍔' => 'ルーブル',\n  '㍕' => 'レム',\n  '㍖' => 'レントゲン',\n  '㍗' => 'ワット',\n  '㍘' => '0点',\n  '㍙' => '1点',\n  '㍚' => '2点',\n  '㍛' => '3点',\n  '㍜' => '4点',\n  '㍝' => '5点',\n  '㍞' => '6点',\n  '㍟' => '7点',\n  '㍠' => '8点',\n  '㍡' => '9点',\n  '㍢' => '10点',\n  '㍣' => '11点',\n  '㍤' => '12点',\n  '㍥' => '13点',\n  '㍦' => '14点',\n  '㍧' => '15点',\n  '㍨' => '16点',\n  '㍩' => '17点',\n  '㍪' => '18点',\n  '㍫' => '19点',\n  '㍬' => '20点',\n  '㍭' => '21点',\n  '㍮' => '22点',\n  '㍯' => '23点',\n  '㍰' => '24点',\n  '㍱' => 'hPa',\n  '㍲' => 'da',\n  '㍳' => 'AU',\n  '㍴' => 'bar',\n  '㍵' => 'oV',\n  '㍶' => 'pc',\n  '㍷' => 'dm',\n  '㍸' => 'dm²',\n  '㍹' => 'dm³',\n  '㍺' => 'IU',\n  '㍻' => '平成',\n  '㍼' => '昭和',\n  '㍽' => '大正',\n  '㍾' => '明治',\n  '㍿' => '株式会社',\n  '㎀' => 'pA',\n  '㎁' => 'nA',\n  '㎂' => 'μA',\n  '㎃' => 'mA',\n  '㎄' => 'kA',\n  '㎅' => 'KB',\n  '㎆' => 'MB',\n  '㎇' => 'GB',\n  '㎈' => 'cal',\n  '㎉' => 'kcal',\n  '㎊' => 'pF',\n  '㎋' => 'nF',\n  '㎌' => 'μF',\n  '㎍' => 'μg',\n  '㎎' => 'mg',\n  '㎏' => 'kg',\n  '㎐' => 'Hz',\n  '㎑' => 'kHz',\n  '㎒' => 'MHz',\n  '㎓' => 'GHz',\n  '㎔' => 'THz',\n  '㎕' => 'μℓ',\n  '㎖' => 'mℓ',\n  '㎗' => 'dℓ',\n  '㎘' => 'kℓ',\n  '㎙' => 'fm',\n  '㎚' => 'nm',\n  '㎛' => 'μm',\n  '㎜' => 'mm',\n  '㎝' => 'cm',\n  '㎞' => 'km',\n  '㎟' => 'mm²',\n  '㎠' => 'cm²',\n  '㎡' => 'm²',\n  '㎢' => 'km²',\n  '㎣' => 'mm³',\n  '㎤' => 'cm³',\n  '㎥' => 'm³',\n  '㎦' => 'km³',\n  '㎧' => 'm∕s',\n  '㎨' => 'm∕s²',\n  '㎩' => 'Pa',\n  '㎪' => 'kPa',\n  '㎫' => 'MPa',\n  '㎬' => 'GPa',\n  '㎭' => 'rad',\n  '㎮' => 'rad∕s',\n  '㎯' => 'rad∕s²',\n  '㎰' => 'ps',\n  '㎱' => 'ns',\n  '㎲' => 'μs',\n  '㎳' => 'ms',\n  '㎴' => 'pV',\n  '㎵' => 'nV',\n  '㎶' => 'μV',\n  '㎷' => 'mV',\n  '㎸' => 'kV',\n  '㎹' => 'MV',\n  '㎺' => 'pW',\n  '㎻' => 'nW',\n  '㎼' => 'μW',\n  '㎽' => 'mW',\n  '㎾' => 'kW',\n  '㎿' => 'MW',\n  '㏀' => 'kΩ',\n  '㏁' => 'MΩ',\n  '㏂' => 'a.m.',\n  '㏃' => 'Bq',\n  '㏄' => 'cc',\n  '㏅' => 'cd',\n  '㏆' => 'C∕kg',\n  '㏇' => 'Co.',\n  '㏈' => 'dB',\n  '㏉' => 'Gy',\n  '㏊' => 'ha',\n  '㏋' => 'HP',\n  '㏌' => 'in',\n  '㏍' => 'KK',\n  '㏎' => 'KM',\n  '㏏' => 'kt',\n  '㏐' => 'lm',\n  '㏑' => 'ln',\n  '㏒' => 'log',\n  '㏓' => 'lx',\n  '㏔' => 'mb',\n  '㏕' => 'mil',\n  '㏖' => 'mol',\n  '㏗' => 'PH',\n  '㏘' => 'p.m.',\n  '㏙' => 'PPM',\n  '㏚' => 'PR',\n  '㏛' => 'sr',\n  '㏜' => 'Sv',\n  '㏝' => 'Wb',\n  '㏞' => 'V∕m',\n  '㏟' => 'A∕m',\n  '㏠' => '1日',\n  '㏡' => '2日',\n  '㏢' => '3日',\n  '㏣' => '4日',\n  '㏤' => '5日',\n  '㏥' => '6日',\n  '㏦' => '7日',\n  '㏧' => '8日',\n  '㏨' => '9日',\n  '㏩' => '10日',\n  '㏪' => '11日',\n  '㏫' => '12日',\n  '㏬' => '13日',\n  '㏭' => '14日',\n  '㏮' => '15日',\n  '㏯' => '16日',\n  '㏰' => '17日',\n  '㏱' => '18日',\n  '㏲' => '19日',\n  '㏳' => '20日',\n  '㏴' => '21日',\n  '㏵' => '22日',\n  '㏶' => '23日',\n  '㏷' => '24日',\n  '㏸' => '25日',\n  '㏹' => '26日',\n  '㏺' => '27日',\n  '㏻' => '28日',\n  '㏼' => '29日',\n  '㏽' => '30日',\n  '㏾' => '31日',\n  '㏿' => 'gal',\n  '豈' => '豈',\n  '更' => '更',\n  '車' => '車',\n  '賈' => '賈',\n  '滑' => '滑',\n  '串' => '串',\n  '句' => '句',\n  '龜' => '龜',\n  '龜' => '龜',\n  '契' => '契',\n  '金' => '金',\n  '喇' => '喇',\n  '奈' => '奈',\n  '懶' => '懶',\n  '癩' => '癩',\n  '羅' => '羅',\n  '蘿' => '蘿',\n  '螺' => '螺',\n  '裸' => '裸',\n  '邏' => '邏',\n  '樂' => '樂',\n  '洛' => '洛',\n  '烙' => '烙',\n  '珞' => '珞',\n  '落' => '落',\n  '酪' => '酪',\n  '駱' => '駱',\n  '亂' => '亂',\n  '卵' => '卵',\n  '欄' => '欄',\n  '爛' => '爛',\n  '蘭' => '蘭',\n  '鸞' => '鸞',\n  '嵐' => '嵐',\n  '濫' => '濫',\n  '藍' => '藍',\n  '襤' => '襤',\n  '拉' => '拉',\n  '臘' => '臘',\n  '蠟' => '蠟',\n  '廊' => '廊',\n  '朗' => '朗',\n  '浪' => '浪',\n  '狼' => '狼',\n  '郎' => '郎',\n  '來' => '來',\n  '冷' => '冷',\n  '勞' => '勞',\n  '擄' => '擄',\n  '櫓' => '櫓',\n  '爐' => '爐',\n  '盧' => '盧',\n  '老' => '老',\n  '蘆' => '蘆',\n  '虜' => '虜',\n  '路' => '路',\n  '露' => '露',\n  '魯' => '魯',\n  '鷺' => '鷺',\n  '碌' => '碌',\n  '祿' => '祿',\n  '綠' => '綠',\n  '菉' => '菉',\n  '錄' => '錄',\n  '鹿' => '鹿',\n  '論' => '論',\n  '壟' => '壟',\n  '弄' => '弄',\n  '籠' => '籠',\n  '聾' => '聾',\n  '牢' => '牢',\n  '磊' => '磊',\n  '賂' => '賂',\n  '雷' => '雷',\n  '壘' => '壘',\n  '屢' => '屢',\n  '樓' => '樓',\n  '淚' => '淚',\n  '漏' => '漏',\n  '累' => '累',\n  '縷' => '縷',\n  '陋' => '陋',\n  '勒' => '勒',\n  '肋' => '肋',\n  '凜' => '凜',\n  '凌' => '凌',\n  '稜' => '稜',\n  '綾' => '綾',\n  '菱' => '菱',\n  '陵' => '陵',\n  '讀' => '讀',\n  '拏' => '拏',\n  '樂' => '樂',\n  '諾' => '諾',\n  '丹' => '丹',\n  '寧' => '寧',\n  '怒' => '怒',\n  '率' => '率',\n  '異' => '異',\n  '北' => '北',\n  '磻' => '磻',\n  '便' => '便',\n  '復' => '復',\n  '不' => '不',\n  '泌' => '泌',\n  '數' => '數',\n  '索' => '索',\n  '參' => '參',\n  '塞' => '塞',\n  '省' => '省',\n  '葉' => '葉',\n  '說' => '說',\n  '殺' => '殺',\n  '辰' => '辰',\n  '沈' => '沈',\n  '拾' => '拾',\n  '若' => '若',\n  '掠' => '掠',\n  '略' => '略',\n  '亮' => '亮',\n  '兩' => '兩',\n  '凉' => '凉',\n  '梁' => '梁',\n  '糧' => '糧',\n  '良' => '良',\n  '諒' => '諒',\n  '量' => '量',\n  '勵' => '勵',\n  '呂' => '呂',\n  '女' => '女',\n  '廬' => '廬',\n  '旅' => '旅',\n  '濾' => '濾',\n  '礪' => '礪',\n  '閭' => '閭',\n  '驪' => '驪',\n  '麗' => '麗',\n  '黎' => '黎',\n  '力' => '力',\n  '曆' => '曆',\n  '歷' => '歷',\n  '轢' => '轢',\n  '年' => '年',\n  '憐' => '憐',\n  '戀' => '戀',\n  '撚' => '撚',\n  '漣' => '漣',\n  '煉' => '煉',\n  '璉' => '璉',\n  '秊' => '秊',\n  '練' => '練',\n  '聯' => '聯',\n  '輦' => '輦',\n  '蓮' => '蓮',\n  '連' => '連',\n  '鍊' => '鍊',\n  '列' => '列',\n  '劣' => '劣',\n  '咽' => '咽',\n  '烈' => '烈',\n  '裂' => '裂',\n  '說' => '說',\n  '廉' => '廉',\n  '念' => '念',\n  '捻' => '捻',\n  '殮' => '殮',\n  '簾' => '簾',\n  '獵' => '獵',\n  '令' => '令',\n  '囹' => '囹',\n  '寧' => '寧',\n  '嶺' => '嶺',\n  '怜' => '怜',\n  '玲' => '玲',\n  '瑩' => '瑩',\n  '羚' => '羚',\n  '聆' => '聆',\n  '鈴' => '鈴',\n  '零' => '零',\n  '靈' => '靈',\n  '領' => '領',\n  '例' => '例',\n  '禮' => '禮',\n  '醴' => '醴',\n  '隸' => '隸',\n  '惡' => '惡',\n  '了' => '了',\n  '僚' => '僚',\n  '寮' => '寮',\n  '尿' => '尿',\n  '料' => '料',\n  '樂' => '樂',\n  '燎' => '燎',\n  '療' => '療',\n  '蓼' => '蓼',\n  '遼' => '遼',\n  '龍' => '龍',\n  '暈' => '暈',\n  '阮' => '阮',\n  '劉' => '劉',\n  '杻' => '杻',\n  '柳' => '柳',\n  '流' => '流',\n  '溜' => '溜',\n  '琉' => '琉',\n  '留' => '留',\n  '硫' => '硫',\n  '紐' => '紐',\n  '類' => '類',\n  '六' => '六',\n  '戮' => '戮',\n  '陸' => '陸',\n  '倫' => '倫',\n  '崙' => '崙',\n  '淪' => '淪',\n  '輪' => '輪',\n  '律' => '律',\n  '慄' => '慄',\n  '栗' => '栗',\n  '率' => '率',\n  '隆' => '隆',\n  '利' => '利',\n  '吏' => '吏',\n  '履' => '履',\n  '易' => '易',\n  '李' => '李',\n  '梨' => '梨',\n  '泥' => '泥',\n  '理' => '理',\n  '痢' => '痢',\n  '罹' => '罹',\n  '裏' => '裏',\n  '裡' => '裡',\n  '里' => '里',\n  '離' => '離',\n  '匿' => '匿',\n  '溺' => '溺',\n  '吝' => '吝',\n  '燐' => '燐',\n  '璘' => '璘',\n  '藺' => '藺',\n  '隣' => '隣',\n  '鱗' => '鱗',\n  '麟' => '麟',\n  '林' => '林',\n  '淋' => '淋',\n  '臨' => '臨',\n  '立' => '立',\n  '笠' => '笠',\n  '粒' => '粒',\n  '狀' => '狀',\n  '炙' => '炙',\n  '識' => '識',\n  '什' => '什',\n  '茶' => '茶',\n  '刺' => '刺',\n  '切' => '切',\n  '度' => '度',\n  '拓' => '拓',\n  '糖' => '糖',\n  '宅' => '宅',\n  '洞' => '洞',\n  '暴' => '暴',\n  '輻' => '輻',\n  '行' => '行',\n  '降' => '降',\n  '見' => '見',\n  '廓' => '廓',\n  '兀' => '兀',\n  '嗀' => '嗀',\n  '﨎' => '\u0000',\n  '﨏' => '\u0000',\n  '塚' => '塚',\n  '﨑' => '\u0000',\n  '晴' => '晴',\n  '﨓' => '\u0000',\n  '﨔' => '\u0000',\n  '凞' => '凞',\n  '猪' => '猪',\n  '益' => '益',\n  '礼' => '礼',\n  '神' => '神',\n  '祥' => '祥',\n  '福' => '福',\n  '靖' => '靖',\n  '精' => '精',\n  '羽' => '羽',\n  '﨟' => '\u0000',\n  '蘒' => '蘒',\n  '﨡' => '\u0000',\n  '諸' => '諸',\n  '﨣' => '\u0000',\n  '﨤' => '\u0000',\n  '逸' => '逸',\n  '都' => '都',\n  '﨧' => '\u0000',\n  '﨨' => '\u0000',\n  '﨩' => '\u0000',\n  '飯' => '飯',\n  '飼' => '飼',\n  '館' => '館',\n  '鶴' => '鶴',\n  '郞' => '郞',\n  '隷' => '隷',\n  '侮' => '侮',\n  '僧' => '僧',\n  '免' => '免',\n  '勉' => '勉',\n  '勤' => '勤',\n  '卑' => '卑',\n  '喝' => '喝',\n  '嘆' => '嘆',\n  '器' => '器',\n  '塀' => '塀',\n  '墨' => '墨',\n  '層' => '層',\n  '屮' => '屮',\n  '悔' => '悔',\n  '慨' => '慨',\n  '憎' => '憎',\n  '懲' => '懲',\n  '敏' => '敏',\n  '既' => '既',\n  '暑' => '暑',\n  '梅' => '梅',\n  '海' => '海',\n  '渚' => '渚',\n  '漢' => '漢',\n  '煮' => '煮',\n  '爫' => '爫',\n  '琢' => '琢',\n  '碑' => '碑',\n  '社' => '社',\n  '祉' => '祉',\n  '祈' => '祈',\n  '祐' => '祐',\n  '祖' => '祖',\n  '祝' => '祝',\n  '禍' => '禍',\n  '禎' => '禎',\n  '穀' => '穀',\n  '突' => '突',\n  '節' => '節',\n  '練' => '練',\n  '縉' => '縉',\n  '繁' => '繁',\n  '署' => '署',\n  '者' => '者',\n  '臭' => '臭',\n  '艹' => '艹',\n  '艹' => '艹',\n  '著' => '著',\n  '褐' => '褐',\n  '視' => '視',\n  '謁' => '謁',\n  '謹' => '謹',\n  '賓' => '賓',\n  '贈' => '贈',\n  '辶' => '辶',\n  '逸' => '逸',\n  '難' => '難',\n  '響' => '響',\n  '頻' => '頻',\n  '恵' => '恵',\n  '𤋮' => '𤋮',\n  '舘' => '舘',\n  '並' => '並',\n  '况' => '况',\n  '全' => '全',\n  '侀' => '侀',\n  '充' => '充',\n  '冀' => '冀',\n  '勇' => '勇',\n  '勺' => '勺',\n  '喝' => '喝',\n  '啕' => '啕',\n  '喙' => '喙',\n  '嗢' => '嗢',\n  '塚' => '塚',\n  '墳' => '墳',\n  '奄' => '奄',\n  '奔' => '奔',\n  '婢' => '婢',\n  '嬨' => '嬨',\n  '廒' => '廒',\n  '廙' => '廙',\n  '彩' => '彩',\n  '徭' => '徭',\n  '惘' => '惘',\n  '慎' => '慎',\n  '愈' => '愈',\n  '憎' => '憎',\n  '慠' => '慠',\n  '懲' => '懲',\n  '戴' => '戴',\n  '揄' => '揄',\n  '搜' => '搜',\n  '摒' => '摒',\n  '敖' => '敖',\n  '晴' => '晴',\n  '朗' => '朗',\n  '望' => '望',\n  '杖' => '杖',\n  '歹' => '歹',\n  '殺' => '殺',\n  '流' => '流',\n  '滛' => '滛',\n  '滋' => '滋',\n  '漢' => '漢',\n  '瀞' => '瀞',\n  '煮' => '煮',\n  '瞧' => '瞧',\n  '爵' => '爵',\n  '犯' => '犯',\n  '猪' => '猪',\n  '瑱' => '瑱',\n  '甆' => '甆',\n  '画' => '画',\n  '瘝' => '瘝',\n  '瘟' => '瘟',\n  '益' => '益',\n  '盛' => '盛',\n  '直' => '直',\n  '睊' => '睊',\n  '着' => '着',\n  '磌' => '磌',\n  '窱' => '窱',\n  '節' => '節',\n  '类' => '类',\n  '絛' => '絛',\n  '練' => '練',\n  '缾' => '缾',\n  '者' => '者',\n  '荒' => '荒',\n  '華' => '華',\n  '蝹' => '蝹',\n  '襁' => '襁',\n  '覆' => '覆',\n  '視' => '視',\n  '調' => '調',\n  '諸' => '諸',\n  '請' => '請',\n  '謁' => '謁',\n  '諾' => '諾',\n  '諭' => '諭',\n  '謹' => '謹',\n  '變' => '變',\n  '贈' => '贈',\n  '輸' => '輸',\n  '遲' => '遲',\n  '醙' => '醙',\n  '鉶' => '鉶',\n  '陼' => '陼',\n  '難' => '難',\n  '靖' => '靖',\n  '韛' => '韛',\n  '響' => '響',\n  '頋' => '頋',\n  '頻' => '頻',\n  '鬒' => '鬒',\n  '龜' => '龜',\n  '𢡊' => '𢡊',\n  '𢡄' => '𢡄',\n  '𣏕' => '𣏕',\n  '㮝' => '㮝',\n  '䀘' => '䀘',\n  '䀹' => '䀹',\n  '𥉉' => '𥉉',\n  '𥳐' => '𥳐',\n  '𧻓' => '𧻓',\n  '齃' => '齃',\n  '龎' => '龎',\n  'ﬀ' => 'ff',\n  'ﬁ' => 'fi',\n  'ﬂ' => 'fl',\n  'ﬃ' => 'ffi',\n  'ﬄ' => 'ffl',\n  'ﬅ' => 'ſt',\n  'ﬆ' => 'st',\n  'ﬓ' => 'մն',\n  'ﬔ' => 'մե',\n  'ﬕ' => 'մի',\n  'ﬖ' => 'վն',\n  'ﬗ' => 'մխ',\n  'ﬠ' => 'ע',\n  'ﬡ' => 'א',\n  'ﬢ' => 'ד',\n  'ﬣ' => 'ה',\n  'ﬤ' => 'כ',\n  'ﬥ' => 'ל',\n  'ﬦ' => 'ם',\n  'ﬧ' => 'ר',\n  'ﬨ' => 'ת',\n  '﬩' => '+',\n  'ﭏ' => 'אל',\n  '﹉' => '‾',\n  '﹊' => '‾',\n  '﹋' => '‾',\n  '﹌' => '‾',\n  '﹍' => '_',\n  '﹎' => '_',\n  '﹏' => '_',\n  '﹐' => ',',\n  '﹑' => '、',\n  '﹒' => '.',\n  '﹔' => ';',\n  '﹕' => ':',\n  '﹖' => '?',\n  '﹗' => '!',\n  '﹘' => '—',\n  '﹙' => '(',\n  '﹚' => ')',\n  '﹛' => '{',\n  '﹜' => '}',\n  '﹝' => '〔',\n  '﹞' => '〕',\n  '﹟' => '#',\n  '﹠' => '&',\n  '﹡' => '*',\n  '﹢' => '+',\n  '﹣' => '-',\n  '﹤' => '<',\n  '﹥' => '>',\n  '﹦' => '=',\n  '﹨' => '\\\\',\n  '﹩' => '$',\n  '﹪' => '%',\n  '﹫' => '@',\n  '！' => '!',\n  '＂' => '\"',\n  '＃' => '#',\n  '＄' => '$',\n  '％' => '%',\n  '＆' => '&',\n  '＇' => '\\'',\n  '（' => '(',\n  '）' => ')',\n  '＊' => '*',\n  '＋' => '+',\n  '，' => ',',\n  '－' => '-',\n  '．' => '.',\n  '／' => '/',\n  '０' => '0',\n  '１' => '1',\n  '２' => '2',\n  '３' => '3',\n  '４' => '4',\n  '５' => '5',\n  '６' => '6',\n  '７' => '7',\n  '８' => '8',\n  '９' => '9',\n  '：' => ':',\n  '；' => ';',\n  '＜' => '<',\n  '＝' => '=',\n  '＞' => '>',\n  '？' => '?',\n  '＠' => '@',\n  'Ａ' => 'A',\n  'Ｂ' => 'B',\n  'Ｃ' => 'C',\n  'Ｄ' => 'D',\n  'Ｅ' => 'E',\n  'Ｆ' => 'F',\n  'Ｇ' => 'G',\n  'Ｈ' => 'H',\n  'Ｉ' => 'I',\n  'Ｊ' => 'J',\n  'Ｋ' => 'K',\n  'Ｌ' => 'L',\n  'Ｍ' => 'M',\n  'Ｎ' => 'N',\n  'Ｏ' => 'O',\n  'Ｐ' => 'P',\n  'Ｑ' => 'Q',\n  'Ｒ' => 'R',\n  'Ｓ' => 'S',\n  'Ｔ' => 'T',\n  'Ｕ' => 'U',\n  'Ｖ' => 'V',\n  'Ｗ' => 'W',\n  'Ｘ' => 'X',\n  'Ｙ' => 'Y',\n  'Ｚ' => 'Z',\n  '［' => '[',\n  '＼' => '\\\\',\n  '］' => ']',\n  '＾' => '^',\n  '＿' => '_',\n  '｀' => '`',\n  'ａ' => 'a',\n  'ｂ' => 'b',\n  'ｃ' => 'c',\n  'ｄ' => 'd',\n  'ｅ' => 'e',\n  'ｆ' => 'f',\n  'ｇ' => 'g',\n  'ｈ' => 'h',\n  'ｉ' => 'i',\n  'ｊ' => 'j',\n  'ｋ' => 'k',\n  'ｌ' => 'l',\n  'ｍ' => 'm',\n  'ｎ' => 'n',\n  'ｏ' => 'o',\n  'ｐ' => 'p',\n  'ｑ' => 'q',\n  'ｒ' => 'r',\n  'ｓ' => 's',\n  'ｔ' => 't',\n  'ｕ' => 'u',\n  'ｖ' => 'v',\n  'ｗ' => 'w',\n  'ｘ' => 'x',\n  'ｙ' => 'y',\n  'ｚ' => 'z',\n  '｛' => '{',\n  '｜' => '|',\n  '｝' => '}',\n  '～' => '~',\n  '｟' => '⦅',\n  '｠' => '⦆',\n  '｡' => '。',\n  '｢' => '「',\n  '｣' => '」',\n  '､' => '、',\n  '･' => '・',\n  'ｦ' => 'ヲ',\n  'ｧ' => 'ァ',\n  'ｨ' => 'ィ',\n  'ｩ' => 'ゥ',\n  'ｪ' => 'ェ',\n  'ｫ' => 'ォ',\n  'ｬ' => 'ャ',\n  'ｭ' => 'ュ',\n  'ｮ' => 'ョ',\n  'ｯ' => 'ッ',\n  'ｰ' => 'ー',\n  'ｱ' => 'ア',\n  'ｲ' => 'イ',\n  'ｳ' => 'ウ',\n  'ｴ' => 'エ',\n  'ｵ' => 'オ',\n  'ｶ' => 'カ',\n  'ｷ' => 'キ',\n  'ｸ' => 'ク',\n  'ｹ' => 'ケ',\n  'ｺ' => 'コ',\n  'ｻ' => 'サ',\n  'ｼ' => 'シ',\n  'ｽ' => 'ス',\n  'ｾ' => 'セ',\n  'ｿ' => 'ソ',\n  'ﾀ' => 'タ',\n  'ﾁ' => 'チ',\n  'ﾂ' => 'ツ',\n  'ﾃ' => 'テ',\n  'ﾄ' => 'ト',\n  'ﾅ' => 'ナ',\n  'ﾆ' => 'ニ',\n  'ﾇ' => 'ヌ',\n  'ﾈ' => 'ネ',\n  'ﾉ' => 'ノ',\n  'ﾊ' => 'ハ',\n  'ﾋ' => 'ヒ',\n  'ﾌ' => 'フ',\n  'ﾍ' => 'ヘ',\n  'ﾎ' => 'ホ',\n  'ﾏ' => 'マ',\n  'ﾐ' => 'ミ',\n  'ﾑ' => 'ム',\n  'ﾒ' => 'メ',\n  'ﾓ' => 'モ',\n  'ﾔ' => 'ヤ',\n  'ﾕ' => 'ユ',\n  'ﾖ' => 'ヨ',\n  'ﾗ' => 'ラ',\n  'ﾘ' => 'リ',\n  'ﾙ' => 'ル',\n  'ﾚ' => 'レ',\n  'ﾛ' => 'ロ',\n  'ﾜ' => 'ワ',\n  'ﾝ' => 'ン',\n  'ﾞ' => '゙',\n  'ﾟ' => '゚',\n  'ﾠ' => 'ㅤ',\n  'ﾡ' => 'ㄱ',\n  'ﾢ' => 'ㄲ',\n  'ﾣ' => 'ㄳ',\n  'ﾤ' => 'ㄴ',\n  'ﾥ' => 'ㄵ',\n  'ﾦ' => 'ㄶ',\n  'ﾧ' => 'ㄷ',\n  'ﾨ' => 'ㄸ',\n  'ﾩ' => 'ㄹ',\n  'ﾪ' => 'ㄺ',\n  'ﾫ' => 'ㄻ',\n  'ﾬ' => 'ㄼ',\n  'ﾭ' => 'ㄽ',\n  'ﾮ' => 'ㄾ',\n  'ﾯ' => 'ㄿ',\n  'ﾰ' => 'ㅀ',\n  'ﾱ' => 'ㅁ',\n  'ﾲ' => 'ㅂ',\n  'ﾳ' => 'ㅃ',\n  'ﾴ' => 'ㅄ',\n  'ﾵ' => 'ㅅ',\n  'ﾶ' => 'ㅆ',\n  'ﾷ' => 'ㅇ',\n  'ﾸ' => 'ㅈ',\n  'ﾹ' => 'ㅉ',\n  'ﾺ' => 'ㅊ',\n  'ﾻ' => 'ㅋ',\n  'ﾼ' => 'ㅌ',\n  'ﾽ' => 'ㅍ',\n  'ﾾ' => 'ㅎ',\n  'ￂ' => 'ㅏ',\n  'ￃ' => 'ㅐ',\n  'ￄ' => 'ㅑ',\n  'ￅ' => 'ㅒ',\n  'ￆ' => 'ㅓ',\n  'ￇ' => 'ㅔ',\n  'ￊ' => 'ㅕ',\n  'ￋ' => 'ㅖ',\n  'ￌ' => 'ㅗ',\n  'ￍ' => 'ㅘ',\n  'ￎ' => 'ㅙ',\n  'ￏ' => 'ㅚ',\n  'ￒ' => 'ㅛ',\n  'ￓ' => 'ㅜ',\n  'ￔ' => 'ㅝ',\n  'ￕ' => 'ㅞ',\n  'ￖ' => 'ㅟ',\n  'ￗ' => 'ㅠ',\n  'ￚ' => 'ㅡ',\n  'ￛ' => 'ㅢ',\n  'ￜ' => 'ㅣ',\n  '￠' => '¢',\n  '￡' => '£',\n  '￢' => '¬',\n  '￣' => '¯',\n  '￤' => '¦',\n  '￥' => '¥',\n  '￦' => '₩',\n  '￨' => '│',\n  '￩' => '←',\n  '￪' => '↑',\n  '￫' => '→',\n  '￬' => '↓',\n  '￭' => '■',\n  '￮' => '○',\n  '𝐀' => 'A',\n  '𝐁' => 'B',\n  '𝐂' => 'C',\n  '𝐃' => 'D',\n  '𝐄' => 'E',\n  '𝐅' => 'F',\n  '𝐆' => 'G',\n  '𝐇' => 'H',\n  '𝐈' => 'I',\n  '𝐉' => 'J',\n  '𝐊' => 'K',\n  '𝐋' => 'L',\n  '𝐌' => 'M',\n  '𝐍' => 'N',\n  '𝐎' => 'O',\n  '𝐏' => 'P',\n  '𝐐' => 'Q',\n  '𝐑' => 'R',\n  '𝐒' => 'S',\n  '𝐓' => 'T',\n  '𝐔' => 'U',\n  '𝐕' => 'V',\n  '𝐖' => 'W',\n  '𝐗' => 'X',\n  '𝐘' => 'Y',\n  '𝐙' => 'Z',\n  '𝐚' => 'a',\n  '𝐛' => 'b',\n  '𝐜' => 'c',\n  '𝐝' => 'd',\n  '𝐞' => 'e',\n  '𝐟' => 'f',\n  '𝐠' => 'g',\n  '𝐡' => 'h',\n  '𝐢' => 'i',\n  '𝐣' => 'j',\n  '𝐤' => 'k',\n  '𝐥' => 'l',\n  '𝐦' => 'm',\n  '𝐧' => 'n',\n  '𝐨' => 'o',\n  '𝐩' => 'p',\n  '𝐪' => 'q',\n  '𝐫' => 'r',\n  '𝐬' => 's',\n  '𝐭' => 't',\n  '𝐮' => 'u',\n  '𝐯' => 'v',\n  '𝐰' => 'w',\n  '𝐱' => 'x',\n  '𝐲' => 'y',\n  '𝐳' => 'z',\n  '𝐴' => 'A',\n  '𝐵' => 'B',\n  '𝐶' => 'C',\n  '𝐷' => 'D',\n  '𝐸' => 'E',\n  '𝐹' => 'F',\n  '𝐺' => 'G',\n  '𝐻' => 'H',\n  '𝐼' => 'I',\n  '𝐽' => 'J',\n  '𝐾' => 'K',\n  '𝐿' => 'L',\n  '𝑀' => 'M',\n  '𝑁' => 'N',\n  '𝑂' => 'O',\n  '𝑃' => 'P',\n  '𝑄' => 'Q',\n  '𝑅' => 'R',\n  '𝑆' => 'S',\n  '𝑇' => 'T',\n  '𝑈' => 'U',\n  '𝑉' => 'V',\n  '𝑊' => 'W',\n  '𝑋' => 'X',\n  '𝑌' => 'Y',\n  '𝑍' => 'Z',\n  '𝑎' => 'a',\n  '𝑏' => 'b',\n  '𝑐' => 'c',\n  '𝑑' => 'd',\n  '𝑒' => 'e',\n  '𝑓' => 'f',\n  '𝑔' => 'g',\n  '𝑖' => 'i',\n  '𝑗' => 'j',\n  '𝑘' => 'k',\n  '𝑙' => 'l',\n  '𝑚' => 'm',\n  '𝑛' => 'n',\n  '𝑜' => 'o',\n  '𝑝' => 'p',\n  '𝑞' => 'q',\n  '𝑟' => 'r',\n  '𝑠' => 's',\n  '𝑡' => 't',\n  '𝑢' => 'u',\n  '𝑣' => 'v',\n  '𝑤' => 'w',\n  '𝑥' => 'x',\n  '𝑦' => 'y',\n  '𝑧' => 'z',\n  '𝑨' => 'A',\n  '𝑩' => 'B',\n  '𝑪' => 'C',\n  '𝑫' => 'D',\n  '𝑬' => 'E',\n  '𝑭' => 'F',\n  '𝑮' => 'G',\n  '𝑯' => 'H',\n  '𝑰' => 'I',\n  '𝑱' => 'J',\n  '𝑲' => 'K',\n  '𝑳' => 'L',\n  '𝑴' => 'M',\n  '𝑵' => 'N',\n  '𝑶' => 'O',\n  '𝑷' => 'P',\n  '𝑸' => 'Q',\n  '𝑹' => 'R',\n  '𝑺' => 'S',\n  '𝑻' => 'T',\n  '𝑼' => 'U',\n  '𝑽' => 'V',\n  '𝑾' => 'W',\n  '𝑿' => 'X',\n  '𝒀' => 'Y',\n  '𝒁' => 'Z',\n  '𝒂' => 'a',\n  '𝒃' => 'b',\n  '𝒄' => 'c',\n  '𝒅' => 'd',\n  '𝒆' => 'e',\n  '𝒇' => 'f',\n  '𝒈' => 'g',\n  '𝒉' => 'h',\n  '𝒊' => 'i',\n  '𝒋' => 'j',\n  '𝒌' => 'k',\n  '𝒍' => 'l',\n  '𝒎' => 'm',\n  '𝒏' => 'n',\n  '𝒐' => 'o',\n  '𝒑' => 'p',\n  '𝒒' => 'q',\n  '𝒓' => 'r',\n  '𝒔' => 's',\n  '𝒕' => 't',\n  '𝒖' => 'u',\n  '𝒗' => 'v',\n  '𝒘' => 'w',\n  '𝒙' => 'x',\n  '𝒚' => 'y',\n  '𝒛' => 'z',\n  '𝒜' => 'A',\n  '𝒞' => 'C',\n  '𝒟' => 'D',\n  '𝒢' => 'G',\n  '𝒥' => 'J',\n  '𝒦' => 'K',\n  '𝒩' => 'N',\n  '𝒪' => 'O',\n  '𝒫' => 'P',\n  '𝒬' => 'Q',\n  '𝒮' => 'S',\n  '𝒯' => 'T',\n  '𝒰' => 'U',\n  '𝒱' => 'V',\n  '𝒲' => 'W',\n  '𝒳' => 'X',\n  '𝒴' => 'Y',\n  '𝒵' => 'Z',\n  '𝒶' => 'a',\n  '𝒷' => 'b',\n  '𝒸' => 'c',\n  '𝒹' => 'd',\n  '𝒻' => 'f',\n  '𝒽' => 'h',\n  '𝒾' => 'i',\n  '𝒿' => 'j',\n  '𝓀' => 'k',\n  '𝓁' => 'l',\n  '𝓂' => 'm',\n  '𝓃' => 'n',\n  '𝓅' => 'p',\n  '𝓆' => 'q',\n  '𝓇' => 'r',\n  '𝓈' => 's',\n  '𝓉' => 't',\n  '𝓊' => 'u',\n  '𝓋' => 'v',\n  '𝓌' => 'w',\n  '𝓍' => 'x',\n  '𝓎' => 'y',\n  '𝓏' => 'z',\n  '𝓐' => 'A',\n  '𝓑' => 'B',\n  '𝓒' => 'C',\n  '𝓓' => 'D',\n  '𝓔' => 'E',\n  '𝓕' => 'F',\n  '𝓖' => 'G',\n  '𝓗' => 'H',\n  '𝓘' => 'I',\n  '𝓙' => 'J',\n  '𝓚' => 'K',\n  '𝓛' => 'L',\n  '𝓜' => 'M',\n  '𝓝' => 'N',\n  '𝓞' => 'O',\n  '𝓟' => 'P',\n  '𝓠' => 'Q',\n  '𝓡' => 'R',\n  '𝓢' => 'S',\n  '𝓣' => 'T',\n  '𝓤' => 'U',\n  '𝓥' => 'V',\n  '𝓦' => 'W',\n  '𝓧' => 'X',\n  '𝓨' => 'Y',\n  '𝓩' => 'Z',\n  '𝓪' => 'a',\n  '𝓫' => 'b',\n  '𝓬' => 'c',\n  '𝓭' => 'd',\n  '𝓮' => 'e',\n  '𝓯' => 'f',\n  '𝓰' => 'g',\n  '𝓱' => 'h',\n  '𝓲' => 'i',\n  '𝓳' => 'j',\n  '𝓴' => 'k',\n  '𝓵' => 'l',\n  '𝓶' => 'm',\n  '𝓷' => 'n',\n  '𝓸' => 'o',\n  '𝓹' => 'p',\n  '𝓺' => 'q',\n  '𝓻' => 'r',\n  '𝓼' => 's',\n  '𝓽' => 't',\n  '𝓾' => 'u',\n  '𝓿' => 'v',\n  '𝔀' => 'w',\n  '𝔁' => 'x',\n  '𝔂' => 'y',\n  '𝔃' => 'z',\n  '𝔄' => 'A',\n  '𝔅' => 'B',\n  '𝔇' => 'D',\n  '𝔈' => 'E',\n  '𝔉' => 'F',\n  '𝔊' => 'G',\n  '𝔍' => 'J',\n  '𝔎' => 'K',\n  '𝔏' => 'L',\n  '𝔐' => 'M',\n  '𝔑' => 'N',\n  '𝔒' => 'O',\n  '𝔓' => 'P',\n  '𝔔' => 'Q',\n  '𝔖' => 'S',\n  '𝔗' => 'T',\n  '𝔘' => 'U',\n  '𝔙' => 'V',\n  '𝔚' => 'W',\n  '𝔛' => 'X',\n  '𝔜' => 'Y',\n  '𝔞' => 'a',\n  '𝔟' => 'b',\n  '𝔠' => 'c',\n  '𝔡' => 'd',\n  '𝔢' => 'e',\n  '𝔣' => 'f',\n  '𝔤' => 'g',\n  '𝔥' => 'h',\n  '𝔦' => 'i',\n  '𝔧' => 'j',\n  '𝔨' => 'k',\n  '𝔩' => 'l',\n  '𝔪' => 'm',\n  '𝔫' => 'n',\n  '𝔬' => 'o',\n  '𝔭' => 'p',\n  '𝔮' => 'q',\n  '𝔯' => 'r',\n  '𝔰' => 's',\n  '𝔱' => 't',\n  '𝔲' => 'u',\n  '𝔳' => 'v',\n  '𝔴' => 'w',\n  '𝔵' => 'x',\n  '𝔶' => 'y',\n  '𝔷' => 'z',\n  '𝔸' => 'A',\n  '𝔹' => 'B',\n  '𝔻' => 'D',\n  '𝔼' => 'E',\n  '𝔽' => 'F',\n  '𝔾' => 'G',\n  '𝕀' => 'I',\n  '𝕁' => 'J',\n  '𝕂' => 'K',\n  '𝕃' => 'L',\n  '𝕄' => 'M',\n  '𝕆' => 'O',\n  '𝕊' => 'S',\n  '𝕋' => 'T',\n  '𝕌' => 'U',\n  '𝕍' => 'V',\n  '𝕎' => 'W',\n  '𝕏' => 'X',\n  '𝕐' => 'Y',\n  '𝕒' => 'a',\n  '𝕓' => 'b',\n  '𝕔' => 'c',\n  '𝕕' => 'd',\n  '𝕖' => 'e',\n  '𝕗' => 'f',\n  '𝕘' => 'g',\n  '𝕙' => 'h',\n  '𝕚' => 'i',\n  '𝕛' => 'j',\n  '𝕜' => 'k',\n  '𝕝' => 'l',\n  '𝕞' => 'm',\n  '𝕟' => 'n',\n  '𝕠' => 'o',\n  '𝕡' => 'p',\n  '𝕢' => 'q',\n  '𝕣' => 'r',\n  '𝕤' => 's',\n  '𝕥' => 't',\n  '𝕦' => 'u',\n  '𝕧' => 'v',\n  '𝕨' => 'w',\n  '𝕩' => 'x',\n  '𝕪' => 'y',\n  '𝕫' => 'z',\n  '𝕬' => 'A',\n  '𝕭' => 'B',\n  '𝕮' => 'C',\n  '𝕯' => 'D',\n  '𝕰' => 'E',\n  '𝕱' => 'F',\n  '𝕲' => 'G',\n  '𝕳' => 'H',\n  '𝕴' => 'I',\n  '𝕵' => 'J',\n  '𝕶' => 'K',\n  '𝕷' => 'L',\n  '𝕸' => 'M',\n  '𝕹' => 'N',\n  '𝕺' => 'O',\n  '𝕻' => 'P',\n  '𝕼' => 'Q',\n  '𝕽' => 'R',\n  '𝕾' => 'S',\n  '𝕿' => 'T',\n  '𝖀' => 'U',\n  '𝖁' => 'V',\n  '𝖂' => 'W',\n  '𝖃' => 'X',\n  '𝖄' => 'Y',\n  '𝖅' => 'Z',\n  '𝖆' => 'a',\n  '𝖇' => 'b',\n  '𝖈' => 'c',\n  '𝖉' => 'd',\n  '𝖊' => 'e',\n  '𝖋' => 'f',\n  '𝖌' => 'g',\n  '𝖍' => 'h',\n  '𝖎' => 'i',\n  '𝖏' => 'j',\n  '𝖐' => 'k',\n  '𝖑' => 'l',\n  '𝖒' => 'm',\n  '𝖓' => 'n',\n  '𝖔' => 'o',\n  '𝖕' => 'p',\n  '𝖖' => 'q',\n  '𝖗' => 'r',\n  '𝖘' => 's',\n  '𝖙' => 't',\n  '𝖚' => 'u',\n  '𝖛' => 'v',\n  '𝖜' => 'w',\n  '𝖝' => 'x',\n  '𝖞' => 'y',\n  '𝖟' => 'z',\n  '𝖠' => 'A',\n  '𝖡' => 'B',\n  '𝖢' => 'C',\n  '𝖣' => 'D',\n  '𝖤' => 'E',\n  '𝖥' => 'F',\n  '𝖦' => 'G',\n  '𝖧' => 'H',\n  '𝖨' => 'I',\n  '𝖩' => 'J',\n  '𝖪' => 'K',\n  '𝖫' => 'L',\n  '𝖬' => 'M',\n  '𝖭' => 'N',\n  '𝖮' => 'O',\n  '𝖯' => 'P',\n  '𝖰' => 'Q',\n  '𝖱' => 'R',\n  '𝖲' => 'S',\n  '𝖳' => 'T',\n  '𝖴' => 'U',\n  '𝖵' => 'V',\n  '𝖶' => 'W',\n  '𝖷' => 'X',\n  '𝖸' => 'Y',\n  '𝖹' => 'Z',\n  '𝖺' => 'a',\n  '𝖻' => 'b',\n  '𝖼' => 'c',\n  '𝖽' => 'd',\n  '𝖾' => 'e',\n  '𝖿' => 'f',\n  '𝗀' => 'g',\n  '𝗁' => 'h',\n  '𝗂' => 'i',\n  '𝗃' => 'j',\n  '𝗄' => 'k',\n  '𝗅' => 'l',\n  '𝗆' => 'm',\n  '𝗇' => 'n',\n  '𝗈' => 'o',\n  '𝗉' => 'p',\n  '𝗊' => 'q',\n  '𝗋' => 'r',\n  '𝗌' => 's',\n  '𝗍' => 't',\n  '𝗎' => 'u',\n  '𝗏' => 'v',\n  '𝗐' => 'w',\n  '𝗑' => 'x',\n  '𝗒' => 'y',\n  '𝗓' => 'z',\n  '𝗔' => 'A',\n  '𝗕' => 'B',\n  '𝗖' => 'C',\n  '𝗗' => 'D',\n  '𝗘' => 'E',\n  '𝗙' => 'F',\n  '𝗚' => 'G',\n  '𝗛' => 'H',\n  '𝗜' => 'I',\n  '𝗝' => 'J',\n  '𝗞' => 'K',\n  '𝗟' => 'L',\n  '𝗠' => 'M',\n  '𝗡' => 'N',\n  '𝗢' => 'O',\n  '𝗣' => 'P',\n  '𝗤' => 'Q',\n  '𝗥' => 'R',\n  '𝗦' => 'S',\n  '𝗧' => 'T',\n  '𝗨' => 'U',\n  '𝗩' => 'V',\n  '𝗪' => 'W',\n  '𝗫' => 'X',\n  '𝗬' => 'Y',\n  '𝗭' => 'Z',\n  '𝗮' => 'a',\n  '𝗯' => 'b',\n  '𝗰' => 'c',\n  '𝗱' => 'd',\n  '𝗲' => 'e',\n  '𝗳' => 'f',\n  '𝗴' => 'g',\n  '𝗵' => 'h',\n  '𝗶' => 'i',\n  '𝗷' => 'j',\n  '𝗸' => 'k',\n  '𝗹' => 'l',\n  '𝗺' => 'm',\n  '𝗻' => 'n',\n  '𝗼' => 'o',\n  '𝗽' => 'p',\n  '𝗾' => 'q',\n  '𝗿' => 'r',\n  '𝘀' => 's',\n  '𝘁' => 't',\n  '𝘂' => 'u',\n  '𝘃' => 'v',\n  '𝘄' => 'w',\n  '𝘅' => 'x',\n  '𝘆' => 'y',\n  '𝘇' => 'z',\n  '𝘈' => 'A',\n  '𝘉' => 'B',\n  '𝘊' => 'C',\n  '𝘋' => 'D',\n  '𝘌' => 'E',\n  '𝘍' => 'F',\n  '𝘎' => 'G',\n  '𝘏' => 'H',\n  '𝘐' => 'I',\n  '𝘑' => 'J',\n  '𝘒' => 'K',\n  '𝘓' => 'L',\n  '𝘔' => 'M',\n  '𝘕' => 'N',\n  '𝘖' => 'O',\n  '𝘗' => 'P',\n  '𝘘' => 'Q',\n  '𝘙' => 'R',\n  '𝘚' => 'S',\n  '𝘛' => 'T',\n  '𝘜' => 'U',\n  '𝘝' => 'V',\n  '𝘞' => 'W',\n  '𝘟' => 'X',\n  '𝘠' => 'Y',\n  '𝘡' => 'Z',\n  '𝘢' => 'a',\n  '𝘣' => 'b',\n  '𝘤' => 'c',\n  '𝘥' => 'd',\n  '𝘦' => 'e',\n  '𝘧' => 'f',\n  '𝘨' => 'g',\n  '𝘩' => 'h',\n  '𝘪' => 'i',\n  '𝘫' => 'j',\n  '𝘬' => 'k',\n  '𝘭' => 'l',\n  '𝘮' => 'm',\n  '𝘯' => 'n',\n  '𝘰' => 'o',\n  '𝘱' => 'p',\n  '𝘲' => 'q',\n  '𝘳' => 'r',\n  '𝘴' => 's',\n  '𝘵' => 't',\n  '𝘶' => 'u',\n  '𝘷' => 'v',\n  '𝘸' => 'w',\n  '𝘹' => 'x',\n  '𝘺' => 'y',\n  '𝘻' => 'z',\n  '𝘼' => 'A',\n  '𝘽' => 'B',\n  '𝘾' => 'C',\n  '𝘿' => 'D',\n  '𝙀' => 'E',\n  '𝙁' => 'F',\n  '𝙂' => 'G',\n  '𝙃' => 'H',\n  '𝙄' => 'I',\n  '𝙅' => 'J',\n  '𝙆' => 'K',\n  '𝙇' => 'L',\n  '𝙈' => 'M',\n  '𝙉' => 'N',\n  '𝙊' => 'O',\n  '𝙋' => 'P',\n  '𝙌' => 'Q',\n  '𝙍' => 'R',\n  '𝙎' => 'S',\n  '𝙏' => 'T',\n  '𝙐' => 'U',\n  '𝙑' => 'V',\n  '𝙒' => 'W',\n  '𝙓' => 'X',\n  '𝙔' => 'Y',\n  '𝙕' => 'Z',\n  '𝙖' => 'a',\n  '𝙗' => 'b',\n  '𝙘' => 'c',\n  '𝙙' => 'd',\n  '𝙚' => 'e',\n  '𝙛' => 'f',\n  '𝙜' => 'g',\n  '𝙝' => 'h',\n  '𝙞' => 'i',\n  '𝙟' => 'j',\n  '𝙠' => 'k',\n  '𝙡' => 'l',\n  '𝙢' => 'm',\n  '𝙣' => 'n',\n  '𝙤' => 'o',\n  '𝙥' => 'p',\n  '𝙦' => 'q',\n  '𝙧' => 'r',\n  '𝙨' => 's',\n  '𝙩' => 't',\n  '𝙪' => 'u',\n  '𝙫' => 'v',\n  '𝙬' => 'w',\n  '𝙭' => 'x',\n  '𝙮' => 'y',\n  '𝙯' => 'z',\n  '𝙰' => 'A',\n  '𝙱' => 'B',\n  '𝙲' => 'C',\n  '𝙳' => 'D',\n  '𝙴' => 'E',\n  '𝙵' => 'F',\n  '𝙶' => 'G',\n  '𝙷' => 'H',\n  '𝙸' => 'I',\n  '𝙹' => 'J',\n  '𝙺' => 'K',\n  '𝙻' => 'L',\n  '𝙼' => 'M',\n  '𝙽' => 'N',\n  '𝙾' => 'O',\n  '𝙿' => 'P',\n  '𝚀' => 'Q',\n  '𝚁' => 'R',\n  '𝚂' => 'S',\n  '𝚃' => 'T',\n  '𝚄' => 'U',\n  '𝚅' => 'V',\n  '𝚆' => 'W',\n  '𝚇' => 'X',\n  '𝚈' => 'Y',\n  '𝚉' => 'Z',\n  '𝚊' => 'a',\n  '𝚋' => 'b',\n  '𝚌' => 'c',\n  '𝚍' => 'd',\n  '𝚎' => 'e',\n  '𝚏' => 'f',\n  '𝚐' => 'g',\n  '𝚑' => 'h',\n  '𝚒' => 'i',\n  '𝚓' => 'j',\n  '𝚔' => 'k',\n  '𝚕' => 'l',\n  '𝚖' => 'm',\n  '𝚗' => 'n',\n  '𝚘' => 'o',\n  '𝚙' => 'p',\n  '𝚚' => 'q',\n  '𝚛' => 'r',\n  '𝚜' => 's',\n  '𝚝' => 't',\n  '𝚞' => 'u',\n  '𝚟' => 'v',\n  '𝚠' => 'w',\n  '𝚡' => 'x',\n  '𝚢' => 'y',\n  '𝚣' => 'z',\n  '𝚤' => 'ı',\n  '𝚥' => 'ȷ',\n  '𝚨' => 'Α',\n  '𝚩' => 'Β',\n  '𝚪' => 'Γ',\n  '𝚫' => 'Δ',\n  '𝚬' => 'Ε',\n  '𝚭' => 'Ζ',\n  '𝚮' => 'Η',\n  '𝚯' => 'Θ',\n  '𝚰' => 'Ι',\n  '𝚱' => 'Κ',\n  '𝚲' => 'Λ',\n  '𝚳' => 'Μ',\n  '𝚴' => 'Ν',\n  '𝚵' => 'Ξ',\n  '𝚶' => 'Ο',\n  '𝚷' => 'Π',\n  '𝚸' => 'Ρ',\n  '𝚹' => 'ϴ',\n  '𝚺' => 'Σ',\n  '𝚻' => 'Τ',\n  '𝚼' => 'Υ',\n  '𝚽' => 'Φ',\n  '𝚾' => 'Χ',\n  '𝚿' => 'Ψ',\n  '𝛀' => 'Ω',\n  '𝛁' => '∇',\n  '𝛂' => 'α',\n  '𝛃' => 'β',\n  '𝛄' => 'γ',\n  '𝛅' => 'δ',\n  '𝛆' => 'ε',\n  '𝛇' => 'ζ',\n  '𝛈' => 'η',\n  '𝛉' => 'θ',\n  '𝛊' => 'ι',\n  '𝛋' => 'κ',\n  '𝛌' => 'λ',\n  '𝛍' => 'μ',\n  '𝛎' => 'ν',\n  '𝛏' => 'ξ',\n  '𝛐' => 'ο',\n  '𝛑' => 'π',\n  '𝛒' => 'ρ',\n  '𝛓' => 'ς',\n  '𝛔' => 'σ',\n  '𝛕' => 'τ',\n  '𝛖' => 'υ',\n  '𝛗' => 'φ',\n  '𝛘' => 'χ',\n  '𝛙' => 'ψ',\n  '𝛚' => 'ω',\n  '𝛛' => '∂',\n  '𝛜' => 'ϵ',\n  '𝛝' => 'ϑ',\n  '𝛞' => 'ϰ',\n  '𝛟' => 'ϕ',\n  '𝛠' => 'ϱ',\n  '𝛡' => 'ϖ',\n  '𝛢' => 'Α',\n  '𝛣' => 'Β',\n  '𝛤' => 'Γ',\n  '𝛥' => 'Δ',\n  '𝛦' => 'Ε',\n  '𝛧' => 'Ζ',\n  '𝛨' => 'Η',\n  '𝛩' => 'Θ',\n  '𝛪' => 'Ι',\n  '𝛫' => 'Κ',\n  '𝛬' => 'Λ',\n  '𝛭' => 'Μ',\n  '𝛮' => 'Ν',\n  '𝛯' => 'Ξ',\n  '𝛰' => 'Ο',\n  '𝛱' => 'Π',\n  '𝛲' => 'Ρ',\n  '𝛳' => 'ϴ',\n  '𝛴' => 'Σ',\n  '𝛵' => 'Τ',\n  '𝛶' => 'Υ',\n  '𝛷' => 'Φ',\n  '𝛸' => 'Χ',\n  '𝛹' => 'Ψ',\n  '𝛺' => 'Ω',\n  '𝛻' => '∇',\n  '𝛼' => 'α',\n  '𝛽' => 'β',\n  '𝛾' => 'γ',\n  '𝛿' => 'δ',\n  '𝜀' => 'ε',\n  '𝜁' => 'ζ',\n  '𝜂' => 'η',\n  '𝜃' => 'θ',\n  '𝜄' => 'ι',\n  '𝜅' => 'κ',\n  '𝜆' => 'λ',\n  '𝜇' => 'μ',\n  '𝜈' => 'ν',\n  '𝜉' => 'ξ',\n  '𝜊' => 'ο',\n  '𝜋' => 'π',\n  '𝜌' => 'ρ',\n  '𝜍' => 'ς',\n  '𝜎' => 'σ',\n  '𝜏' => 'τ',\n  '𝜐' => 'υ',\n  '𝜑' => 'φ',\n  '𝜒' => 'χ',\n  '𝜓' => 'ψ',\n  '𝜔' => 'ω',\n  '𝜕' => '∂',\n  '𝜖' => 'ϵ',\n  '𝜗' => 'ϑ',\n  '𝜘' => 'ϰ',\n  '𝜙' => 'ϕ',\n  '𝜚' => 'ϱ',\n  '𝜛' => 'ϖ',\n  '𝜜' => 'Α',\n  '𝜝' => 'Β',\n  '𝜞' => 'Γ',\n  '𝜟' => 'Δ',\n  '𝜠' => 'Ε',\n  '𝜡' => 'Ζ',\n  '𝜢' => 'Η',\n  '𝜣' => 'Θ',\n  '𝜤' => 'Ι',\n  '𝜥' => 'Κ',\n  '𝜦' => 'Λ',\n  '𝜧' => 'Μ',\n  '𝜨' => 'Ν',\n  '𝜩' => 'Ξ',\n  '𝜪' => 'Ο',\n  '𝜫' => 'Π',\n  '𝜬' => 'Ρ',\n  '𝜭' => 'ϴ',\n  '𝜮' => 'Σ',\n  '𝜯' => 'Τ',\n  '𝜰' => 'Υ',\n  '𝜱' => 'Φ',\n  '𝜲' => 'Χ',\n  '𝜳' => 'Ψ',\n  '𝜴' => 'Ω',\n  '𝜵' => '∇',\n  '𝜶' => 'α',\n  '𝜷' => 'β',\n  '𝜸' => 'γ',\n  '𝜹' => 'δ',\n  '𝜺' => 'ε',\n  '𝜻' => 'ζ',\n  '𝜼' => 'η',\n  '𝜽' => 'θ',\n  '𝜾' => 'ι',\n  '𝜿' => 'κ',\n  '𝝀' => 'λ',\n  '𝝁' => 'μ',\n  '𝝂' => 'ν',\n  '𝝃' => 'ξ',\n  '𝝄' => 'ο',\n  '𝝅' => 'π',\n  '𝝆' => 'ρ',\n  '𝝇' => 'ς',\n  '𝝈' => 'σ',\n  '𝝉' => 'τ',\n  '𝝊' => 'υ',\n  '𝝋' => 'φ',\n  '𝝌' => 'χ',\n  '𝝍' => 'ψ',\n  '𝝎' => 'ω',\n  '𝝏' => '∂',\n  '𝝐' => 'ϵ',\n  '𝝑' => 'ϑ',\n  '𝝒' => 'ϰ',\n  '𝝓' => 'ϕ',\n  '𝝔' => 'ϱ',\n  '𝝕' => 'ϖ',\n  '𝝖' => 'Α',\n  '𝝗' => 'Β',\n  '𝝘' => 'Γ',\n  '𝝙' => 'Δ',\n  '𝝚' => 'Ε',\n  '𝝛' => 'Ζ',\n  '𝝜' => 'Η',\n  '𝝝' => 'Θ',\n  '𝝞' => 'Ι',\n  '𝝟' => 'Κ',\n  '𝝠' => 'Λ',\n  '𝝡' => 'Μ',\n  '𝝢' => 'Ν',\n  '𝝣' => 'Ξ',\n  '𝝤' => 'Ο',\n  '𝝥' => 'Π',\n  '𝝦' => 'Ρ',\n  '𝝧' => 'ϴ',\n  '𝝨' => 'Σ',\n  '𝝩' => 'Τ',\n  '𝝪' => 'Υ',\n  '𝝫' => 'Φ',\n  '𝝬' => 'Χ',\n  '𝝭' => 'Ψ',\n  '𝝮' => 'Ω',\n  '𝝯' => '∇',\n  '𝝰' => 'α',\n  '𝝱' => 'β',\n  '𝝲' => 'γ',\n  '𝝳' => 'δ',\n  '𝝴' => 'ε',\n  '𝝵' => 'ζ',\n  '𝝶' => 'η',\n  '𝝷' => 'θ',\n  '𝝸' => 'ι',\n  '𝝹' => 'κ',\n  '𝝺' => 'λ',\n  '𝝻' => 'μ',\n  '𝝼' => 'ν',\n  '𝝽' => 'ξ',\n  '𝝾' => 'ο',\n  '𝝿' => 'π',\n  '𝞀' => 'ρ',\n  '𝞁' => 'ς',\n  '𝞂' => 'σ',\n  '𝞃' => 'τ',\n  '𝞄' => 'υ',\n  '𝞅' => 'φ',\n  '𝞆' => 'χ',\n  '𝞇' => 'ψ',\n  '𝞈' => 'ω',\n  '𝞉' => '∂',\n  '𝞊' => 'ϵ',\n  '𝞋' => 'ϑ',\n  '𝞌' => 'ϰ',\n  '𝞍' => 'ϕ',\n  '𝞎' => 'ϱ',\n  '𝞏' => 'ϖ',\n  '𝞐' => 'Α',\n  '𝞑' => 'Β',\n  '𝞒' => 'Γ',\n  '𝞓' => 'Δ',\n  '𝞔' => 'Ε',\n  '𝞕' => 'Ζ',\n  '𝞖' => 'Η',\n  '𝞗' => 'Θ',\n  '𝞘' => 'Ι',\n  '𝞙' => 'Κ',\n  '𝞚' => 'Λ',\n  '𝞛' => 'Μ',\n  '𝞜' => 'Ν',\n  '𝞝' => 'Ξ',\n  '𝞞' => 'Ο',\n  '𝞟' => 'Π',\n  '𝞠' => 'Ρ',\n  '𝞡' => 'ϴ',\n  '𝞢' => 'Σ',\n  '𝞣' => 'Τ',\n  '𝞤' => 'Υ',\n  '𝞥' => 'Φ',\n  '𝞦' => 'Χ',\n  '𝞧' => 'Ψ',\n  '𝞨' => 'Ω',\n  '𝞩' => '∇',\n  '𝞪' => 'α',\n  '𝞫' => 'β',\n  '𝞬' => 'γ',\n  '𝞭' => 'δ',\n  '𝞮' => 'ε',\n  '𝞯' => 'ζ',\n  '𝞰' => 'η',\n  '𝞱' => 'θ',\n  '𝞲' => 'ι',\n  '𝞳' => 'κ',\n  '𝞴' => 'λ',\n  '𝞵' => 'μ',\n  '𝞶' => 'ν',\n  '𝞷' => 'ξ',\n  '𝞸' => 'ο',\n  '𝞹' => 'π',\n  '𝞺' => 'ρ',\n  '𝞻' => 'ς',\n  '𝞼' => 'σ',\n  '𝞽' => 'τ',\n  '𝞾' => 'υ',\n  '𝞿' => 'φ',\n  '𝟀' => 'χ',\n  '𝟁' => 'ψ',\n  '𝟂' => 'ω',\n  '𝟃' => '∂',\n  '𝟄' => 'ϵ',\n  '𝟅' => 'ϑ',\n  '𝟆' => 'ϰ',\n  '𝟇' => 'ϕ',\n  '𝟈' => 'ϱ',\n  '𝟉' => 'ϖ',\n  '𝟊' => 'Ϝ',\n  '𝟋' => 'ϝ',\n  '𝟎' => '0',\n  '𝟏' => '1',\n  '𝟐' => '2',\n  '𝟑' => '3',\n  '𝟒' => '4',\n  '𝟓' => '5',\n  '𝟔' => '6',\n  '𝟕' => '7',\n  '𝟖' => '8',\n  '𝟗' => '9',\n  '𝟘' => '0',\n  '𝟙' => '1',\n  '𝟚' => '2',\n  '𝟛' => '3',\n  '𝟜' => '4',\n  '𝟝' => '5',\n  '𝟞' => '6',\n  '𝟟' => '7',\n  '𝟠' => '8',\n  '𝟡' => '9',\n  '𝟢' => '0',\n  '𝟣' => '1',\n  '𝟤' => '2',\n  '𝟥' => '3',\n  '𝟦' => '4',\n  '𝟧' => '5',\n  '𝟨' => '6',\n  '𝟩' => '7',\n  '𝟪' => '8',\n  '𝟫' => '9',\n  '𝟬' => '0',\n  '𝟭' => '1',\n  '𝟮' => '2',\n  '𝟯' => '3',\n  '𝟰' => '4',\n  '𝟱' => '5',\n  '𝟲' => '6',\n  '𝟳' => '7',\n  '𝟴' => '8',\n  '𝟵' => '9',\n  '𝟶' => '0',\n  '𝟷' => '1',\n  '𝟸' => '2',\n  '𝟹' => '3',\n  '𝟺' => '4',\n  '𝟻' => '5',\n  '𝟼' => '6',\n  '𝟽' => '7',\n  '𝟾' => '8',\n  '𝟿' => '9',\n  '𞸀' => 'ا',\n  '𞸁' => 'ب',\n  '𞸂' => 'ج',\n  '𞸃' => 'د',\n  '𞸅' => 'و',\n  '𞸆' => 'ز',\n  '𞸇' => 'ح',\n  '𞸈' => 'ط',\n  '𞸉' => 'ي',\n  '𞸊' => 'ك',\n  '𞸋' => 'ل',\n  '𞸌' => 'م',\n  '𞸍' => 'ن',\n  '𞸎' => 'س',\n  '𞸏' => 'ع',\n  '𞸐' => 'ف',\n  '𞸑' => 'ص',\n  '𞸒' => 'ق',\n  '𞸓' => 'ر',\n  '𞸔' => 'ش',\n  '𞸕' => 'ت',\n  '𞸖' => 'ث',\n  '𞸗' => 'خ',\n  '𞸘' => 'ذ',\n  '𞸙' => 'ض',\n  '𞸚' => 'ظ',\n  '𞸛' => 'غ',\n  '𞸜' => 'ٮ',\n  '𞸝' => 'ں',\n  '𞸞' => 'ڡ',\n  '𞸟' => 'ٯ',\n  '𞸡' => 'ب',\n  '𞸢' => 'ج',\n  '𞸤' => 'ه',\n  '𞸧' => 'ح',\n  '𞸩' => 'ي',\n  '𞸪' => 'ك',\n  '𞸫' => 'ل',\n  '𞸬' => 'م',\n  '𞸭' => 'ن',\n  '𞸮' => 'س',\n  '𞸯' => 'ع',\n  '𞸰' => 'ف',\n  '𞸱' => 'ص',\n  '𞸲' => 'ق',\n  '𞸴' => 'ش',\n  '𞸵' => 'ت',\n  '𞸶' => 'ث',\n  '𞸷' => 'خ',\n  '𞸹' => 'ض',\n  '𞸻' => 'غ',\n  '𞹂' => 'ج',\n  '𞹇' => 'ح',\n  '𞹉' => 'ي',\n  '𞹋' => 'ل',\n  '𞹍' => 'ن',\n  '𞹎' => 'س',\n  '𞹏' => 'ع',\n  '𞹑' => 'ص',\n  '𞹒' => 'ق',\n  '𞹔' => 'ش',\n  '𞹗' => 'خ',\n  '𞹙' => 'ض',\n  '𞹛' => 'غ',\n  '𞹝' => 'ں',\n  '𞹟' => 'ٯ',\n  '𞹡' => 'ب',\n  '𞹢' => 'ج',\n  '𞹤' => 'ه',\n  '𞹧' => 'ح',\n  '𞹨' => 'ط',\n  '𞹩' => 'ي',\n  '𞹪' => 'ك',\n  '𞹬' => 'م',\n  '𞹭' => 'ن',\n  '𞹮' => 'س',\n  '𞹯' => 'ع',\n  '𞹰' => 'ف',\n  '𞹱' => 'ص',\n  '𞹲' => 'ق',\n  '𞹴' => 'ش',\n  '𞹵' => 'ت',\n  '𞹶' => 'ث',\n  '𞹷' => 'خ',\n  '𞹹' => 'ض',\n  '𞹺' => 'ظ',\n  '𞹻' => 'غ',\n  '𞹼' => 'ٮ',\n  '𞹾' => 'ڡ',\n  '𞺀' => 'ا',\n  '𞺁' => 'ب',\n  '𞺂' => 'ج',\n  '𞺃' => 'د',\n  '𞺄' => 'ه',\n  '𞺅' => 'و',\n  '𞺆' => 'ز',\n  '𞺇' => 'ح',\n  '𞺈' => 'ط',\n  '𞺉' => 'ي',\n  '𞺋' => 'ل',\n  '𞺌' => 'م',\n  '𞺍' => 'ن',\n  '𞺎' => 'س',\n  '𞺏' => 'ع',\n  '𞺐' => 'ف',\n  '𞺑' => 'ص',\n  '𞺒' => 'ق',\n  '𞺓' => 'ر',\n  '𞺔' => 'ش',\n  '𞺕' => 'ت',\n  '𞺖' => 'ث',\n  '𞺗' => 'خ',\n  '𞺘' => 'ذ',\n  '𞺙' => 'ض',\n  '𞺚' => 'ظ',\n  '𞺛' => 'غ',\n  '𞺡' => 'ب',\n  '𞺢' => 'ج',\n  '𞺣' => 'د',\n  '𞺥' => 'و',\n  '𞺦' => 'ز',\n  '𞺧' => 'ح',\n  '𞺨' => 'ط',\n  '𞺩' => 'ي',\n  '𞺫' => 'ل',\n  '𞺬' => 'م',\n  '𞺭' => 'ن',\n  '𞺮' => 'س',\n  '𞺯' => 'ع',\n  '𞺰' => 'ف',\n  '𞺱' => 'ص',\n  '𞺲' => 'ق',\n  '𞺳' => 'ر',\n  '𞺴' => 'ش',\n  '𞺵' => 'ت',\n  '𞺶' => 'ث',\n  '𞺷' => 'خ',\n  '𞺸' => 'ذ',\n  '𞺹' => 'ض',\n  '𞺺' => 'ظ',\n  '𞺻' => 'غ',\n  '🄀' => '0.',\n  '🄁' => '0,',\n  '🄂' => '1,',\n  '🄃' => '2,',\n  '🄄' => '3,',\n  '🄅' => '4,',\n  '🄆' => '5,',\n  '🄇' => '6,',\n  '🄈' => '7,',\n  '🄉' => '8,',\n  '🄊' => '9,',\n  '🄐' => '(A)',\n  '🄑' => '(B)',\n  '🄒' => '(C)',\n  '🄓' => '(D)',\n  '🄔' => '(E)',\n  '🄕' => '(F)',\n  '🄖' => '(G)',\n  '🄗' => '(H)',\n  '🄘' => '(I)',\n  '🄙' => '(J)',\n  '🄚' => '(K)',\n  '🄛' => '(L)',\n  '🄜' => '(M)',\n  '🄝' => '(N)',\n  '🄞' => '(O)',\n  '🄟' => '(P)',\n  '🄠' => '(Q)',\n  '🄡' => '(R)',\n  '🄢' => '(S)',\n  '🄣' => '(T)',\n  '🄤' => '(U)',\n  '🄥' => '(V)',\n  '🄦' => '(W)',\n  '🄧' => '(X)',\n  '🄨' => '(Y)',\n  '🄩' => '(Z)',\n  '🄪' => '〔S〕',\n  '🄫' => '(C)',\n  '🄬' => '(R)',\n  '🄭' => '(CD)',\n  '🄮' => '(WZ)',\n  '🄰' => 'A',\n  '🄱' => 'B',\n  '🄲' => 'C',\n  '🄳' => 'D',\n  '🄴' => 'E',\n  '🄵' => 'F',\n  '🄶' => 'G',\n  '🄷' => 'H',\n  '🄸' => 'I',\n  '🄹' => 'J',\n  '🄺' => 'K',\n  '🄻' => 'L',\n  '🄼' => 'M',\n  '🄽' => 'N',\n  '🄾' => 'O',\n  '🄿' => 'P',\n  '🅀' => 'Q',\n  '🅁' => 'R',\n  '🅂' => 'S',\n  '🅃' => 'T',\n  '🅄' => 'U',\n  '🅅' => 'V',\n  '🅆' => 'W',\n  '🅇' => 'X',\n  '🅈' => 'Y',\n  '🅉' => 'Z',\n  '🅊' => 'HV',\n  '🅋' => 'MV',\n  '🅌' => 'SD',\n  '🅍' => 'SS',\n  '🅎' => 'PPV',\n  '🅏' => 'WC',\n  '🆐' => 'DJ',\n  '🈀' => 'ほか',\n  '🈁' => 'ココ',\n  '🈂' => 'サ',\n  '🈐' => '手',\n  '🈑' => '字',\n  '🈒' => '双',\n  '🈓' => 'デ',\n  '🈔' => '二',\n  '🈕' => '多',\n  '🈖' => '解',\n  '🈗' => '天',\n  '🈘' => '交',\n  '🈙' => '映',\n  '🈚' => '無',\n  '🈛' => '料',\n  '🈜' => '前',\n  '🈝' => '後',\n  '🈞' => '再',\n  '🈟' => '新',\n  '🈠' => '初',\n  '🈡' => '終',\n  '🈢' => '生',\n  '🈣' => '販',\n  '🈤' => '声',\n  '🈥' => '吹',\n  '🈦' => '演',\n  '🈧' => '投',\n  '🈨' => '捕',\n  '🈩' => '一',\n  '🈪' => '三',\n  '🈫' => '遊',\n  '🈬' => '左',\n  '🈭' => '中',\n  '🈮' => '右',\n  '🈯' => '指',\n  '🈰' => '走',\n  '🈱' => '打',\n  '🈲' => '禁',\n  '🈳' => '空',\n  '🈴' => '合',\n  '🈵' => '満',\n  '🈶' => '有',\n  '🈷' => '月',\n  '🈸' => '申',\n  '🈹' => '割',\n  '🈺' => '営',\n  '🉀' => '〔本〕',\n  '🉁' => '〔三〕',\n  '🉂' => '〔二〕',\n  '🉃' => '〔安〕',\n  '🉄' => '〔点〕',\n  '🉅' => '〔打〕',\n  '🉆' => '〔盗〕',\n  '🉇' => '〔勝〕',\n  '🉈' => '〔敗〕',\n  '🉐' => '(得)',\n  '🉑' => '(可)',\n  '丽' => '丽',\n  '丸' => '丸',\n  '乁' => '乁',\n  '𠄢' => '𠄢',\n  '你' => '你',\n  '侮' => '侮',\n  '侻' => '侻',\n  '倂' => '倂',\n  '偺' => '偺',\n  '備' => '備',\n  '僧' => '僧',\n  '像' => '像',\n  '㒞' => '㒞',\n  '𠘺' => '𠘺',\n  '免' => '免',\n  '兔' => '兔',\n  '兤' => '兤',\n  '具' => '具',\n  '𠔜' => '𠔜',\n  '㒹' => '㒹',\n  '內' => '內',\n  '再' => '再',\n  '𠕋' => '𠕋',\n  '冗' => '冗',\n  '冤' => '冤',\n  '仌' => '仌',\n  '冬' => '冬',\n  '况' => '况',\n  '𩇟' => '𩇟',\n  '凵' => '凵',\n  '刃' => '刃',\n  '㓟' => '㓟',\n  '刻' => '刻',\n  '剆' => '剆',\n  '割' => '割',\n  '剷' => '剷',\n  '㔕' => '㔕',\n  '勇' => '勇',\n  '勉' => '勉',\n  '勤' => '勤',\n  '勺' => '勺',\n  '包' => '包',\n  '匆' => '匆',\n  '北' => '北',\n  '卉' => '卉',\n  '卑' => '卑',\n  '博' => '博',\n  '即' => '即',\n  '卽' => '卽',\n  '卿' => '卿',\n  '卿' => '卿',\n  '卿' => '卿',\n  '𠨬' => '𠨬',\n  '灰' => '灰',\n  '及' => '及',\n  '叟' => '叟',\n  '𠭣' => '𠭣',\n  '叫' => '叫',\n  '叱' => '叱',\n  '吆' => '吆',\n  '咞' => '咞',\n  '吸' => '吸',\n  '呈' => '呈',\n  '周' => '周',\n  '咢' => '咢',\n  '哶' => '哶',\n  '唐' => '唐',\n  '啓' => '啓',\n  '啣' => '啣',\n  '善' => '善',\n  '善' => '善',\n  '喙' => '喙',\n  '喫' => '喫',\n  '喳' => '喳',\n  '嗂' => '嗂',\n  '圖' => '圖',\n  '嘆' => '嘆',\n  '圗' => '圗',\n  '噑' => '噑',\n  '噴' => '噴',\n  '切' => '切',\n  '壮' => '壮',\n  '城' => '城',\n  '埴' => '埴',\n  '堍' => '堍',\n  '型' => '型',\n  '堲' => '堲',\n  '報' => '報',\n  '墬' => '墬',\n  '𡓤' => '𡓤',\n  '売' => '売',\n  '壷' => '壷',\n  '夆' => '夆',\n  '多' => '多',\n  '夢' => '夢',\n  '奢' => '奢',\n  '𡚨' => '𡚨',\n  '𡛪' => '𡛪',\n  '姬' => '姬',\n  '娛' => '娛',\n  '娧' => '娧',\n  '姘' => '姘',\n  '婦' => '婦',\n  '㛮' => '㛮',\n  '㛼' => '㛼',\n  '嬈' => '嬈',\n  '嬾' => '嬾',\n  '嬾' => '嬾',\n  '𡧈' => '𡧈',\n  '寃' => '寃',\n  '寘' => '寘',\n  '寧' => '寧',\n  '寳' => '寳',\n  '𡬘' => '𡬘',\n  '寿' => '寿',\n  '将' => '将',\n  '当' => '当',\n  '尢' => '尢',\n  '㞁' => '㞁',\n  '屠' => '屠',\n  '屮' => '屮',\n  '峀' => '峀',\n  '岍' => '岍',\n  '𡷤' => '𡷤',\n  '嵃' => '嵃',\n  '𡷦' => '𡷦',\n  '嵮' => '嵮',\n  '嵫' => '嵫',\n  '嵼' => '嵼',\n  '巡' => '巡',\n  '巢' => '巢',\n  '㠯' => '㠯',\n  '巽' => '巽',\n  '帨' => '帨',\n  '帽' => '帽',\n  '幩' => '幩',\n  '㡢' => '㡢',\n  '𢆃' => '𢆃',\n  '㡼' => '㡼',\n  '庰' => '庰',\n  '庳' => '庳',\n  '庶' => '庶',\n  '廊' => '廊',\n  '𪎒' => '𪎒',\n  '廾' => '廾',\n  '𢌱' => '𢌱',\n  '𢌱' => '𢌱',\n  '舁' => '舁',\n  '弢' => '弢',\n  '弢' => '弢',\n  '㣇' => '㣇',\n  '𣊸' => '𣊸',\n  '𦇚' => '𦇚',\n  '形' => '形',\n  '彫' => '彫',\n  '㣣' => '㣣',\n  '徚' => '徚',\n  '忍' => '忍',\n  '志' => '志',\n  '忹' => '忹',\n  '悁' => '悁',\n  '㤺' => '㤺',\n  '㤜' => '㤜',\n  '悔' => '悔',\n  '𢛔' => '𢛔',\n  '惇' => '惇',\n  '慈' => '慈',\n  '慌' => '慌',\n  '慎' => '慎',\n  '慌' => '慌',\n  '慺' => '慺',\n  '憎' => '憎',\n  '憲' => '憲',\n  '憤' => '憤',\n  '憯' => '憯',\n  '懞' => '懞',\n  '懲' => '懲',\n  '懶' => '懶',\n  '成' => '成',\n  '戛' => '戛',\n  '扝' => '扝',\n  '抱' => '抱',\n  '拔' => '拔',\n  '捐' => '捐',\n  '𢬌' => '𢬌',\n  '挽' => '挽',\n  '拼' => '拼',\n  '捨' => '捨',\n  '掃' => '掃',\n  '揤' => '揤',\n  '𢯱' => '𢯱',\n  '搢' => '搢',\n  '揅' => '揅',\n  '掩' => '掩',\n  '㨮' => '㨮',\n  '摩' => '摩',\n  '摾' => '摾',\n  '撝' => '撝',\n  '摷' => '摷',\n  '㩬' => '㩬',\n  '敏' => '敏',\n  '敬' => '敬',\n  '𣀊' => '𣀊',\n  '旣' => '旣',\n  '書' => '書',\n  '晉' => '晉',\n  '㬙' => '㬙',\n  '暑' => '暑',\n  '㬈' => '㬈',\n  '㫤' => '㫤',\n  '冒' => '冒',\n  '冕' => '冕',\n  '最' => '最',\n  '暜' => '暜',\n  '肭' => '肭',\n  '䏙' => '䏙',\n  '朗' => '朗',\n  '望' => '望',\n  '朡' => '朡',\n  '杞' => '杞',\n  '杓' => '杓',\n  '𣏃' => '𣏃',\n  '㭉' => '㭉',\n  '柺' => '柺',\n  '枅' => '枅',\n  '桒' => '桒',\n  '梅' => '梅',\n  '𣑭' => '𣑭',\n  '梎' => '梎',\n  '栟' => '栟',\n  '椔' => '椔',\n  '㮝' => '㮝',\n  '楂' => '楂',\n  '榣' => '榣',\n  '槪' => '槪',\n  '檨' => '檨',\n  '𣚣' => '𣚣',\n  '櫛' => '櫛',\n  '㰘' => '㰘',\n  '次' => '次',\n  '𣢧' => '𣢧',\n  '歔' => '歔',\n  '㱎' => '㱎',\n  '歲' => '歲',\n  '殟' => '殟',\n  '殺' => '殺',\n  '殻' => '殻',\n  '𣪍' => '𣪍',\n  '𡴋' => '𡴋',\n  '𣫺' => '𣫺',\n  '汎' => '汎',\n  '𣲼' => '𣲼',\n  '沿' => '沿',\n  '泍' => '泍',\n  '汧' => '汧',\n  '洖' => '洖',\n  '派' => '派',\n  '海' => '海',\n  '流' => '流',\n  '浩' => '浩',\n  '浸' => '浸',\n  '涅' => '涅',\n  '𣴞' => '𣴞',\n  '洴' => '洴',\n  '港' => '港',\n  '湮' => '湮',\n  '㴳' => '㴳',\n  '滋' => '滋',\n  '滇' => '滇',\n  '𣻑' => '𣻑',\n  '淹' => '淹',\n  '潮' => '潮',\n  '𣽞' => '𣽞',\n  '𣾎' => '𣾎',\n  '濆' => '濆',\n  '瀹' => '瀹',\n  '瀞' => '瀞',\n  '瀛' => '瀛',\n  '㶖' => '㶖',\n  '灊' => '灊',\n  '災' => '災',\n  '灷' => '灷',\n  '炭' => '炭',\n  '𠔥' => '𠔥',\n  '煅' => '煅',\n  '𤉣' => '𤉣',\n  '熜' => '熜',\n  '𤎫' => '𤎫',\n  '爨' => '爨',\n  '爵' => '爵',\n  '牐' => '牐',\n  '𤘈' => '𤘈',\n  '犀' => '犀',\n  '犕' => '犕',\n  '𤜵' => '𤜵',\n  '𤠔' => '𤠔',\n  '獺' => '獺',\n  '王' => '王',\n  '㺬' => '㺬',\n  '玥' => '玥',\n  '㺸' => '㺸',\n  '㺸' => '㺸',\n  '瑇' => '瑇',\n  '瑜' => '瑜',\n  '瑱' => '瑱',\n  '璅' => '璅',\n  '瓊' => '瓊',\n  '㼛' => '㼛',\n  '甤' => '甤',\n  '𤰶' => '𤰶',\n  '甾' => '甾',\n  '𤲒' => '𤲒',\n  '異' => '異',\n  '𢆟' => '𢆟',\n  '瘐' => '瘐',\n  '𤾡' => '𤾡',\n  '𤾸' => '𤾸',\n  '𥁄' => '𥁄',\n  '㿼' => '㿼',\n  '䀈' => '䀈',\n  '直' => '直',\n  '𥃳' => '𥃳',\n  '𥃲' => '𥃲',\n  '𥄙' => '𥄙',\n  '𥄳' => '𥄳',\n  '眞' => '眞',\n  '真' => '真',\n  '真' => '真',\n  '睊' => '睊',\n  '䀹' => '䀹',\n  '瞋' => '瞋',\n  '䁆' => '䁆',\n  '䂖' => '䂖',\n  '𥐝' => '𥐝',\n  '硎' => '硎',\n  '碌' => '碌',\n  '磌' => '磌',\n  '䃣' => '䃣',\n  '𥘦' => '𥘦',\n  '祖' => '祖',\n  '𥚚' => '𥚚',\n  '𥛅' => '𥛅',\n  '福' => '福',\n  '秫' => '秫',\n  '䄯' => '䄯',\n  '穀' => '穀',\n  '穊' => '穊',\n  '穏' => '穏',\n  '𥥼' => '𥥼',\n  '𥪧' => '𥪧',\n  '𥪧' => '𥪧',\n  '竮' => '竮',\n  '䈂' => '䈂',\n  '𥮫' => '𥮫',\n  '篆' => '篆',\n  '築' => '築',\n  '䈧' => '䈧',\n  '𥲀' => '𥲀',\n  '糒' => '糒',\n  '䊠' => '䊠',\n  '糨' => '糨',\n  '糣' => '糣',\n  '紀' => '紀',\n  '𥾆' => '𥾆',\n  '絣' => '絣',\n  '䌁' => '䌁',\n  '緇' => '緇',\n  '縂' => '縂',\n  '繅' => '繅',\n  '䌴' => '䌴',\n  '𦈨' => '𦈨',\n  '𦉇' => '𦉇',\n  '䍙' => '䍙',\n  '𦋙' => '𦋙',\n  '罺' => '罺',\n  '𦌾' => '𦌾',\n  '羕' => '羕',\n  '翺' => '翺',\n  '者' => '者',\n  '𦓚' => '𦓚',\n  '𦔣' => '𦔣',\n  '聠' => '聠',\n  '𦖨' => '𦖨',\n  '聰' => '聰',\n  '𣍟' => '𣍟',\n  '䏕' => '䏕',\n  '育' => '育',\n  '脃' => '脃',\n  '䐋' => '䐋',\n  '脾' => '脾',\n  '媵' => '媵',\n  '𦞧' => '𦞧',\n  '𦞵' => '𦞵',\n  '𣎓' => '𣎓',\n  '𣎜' => '𣎜',\n  '舁' => '舁',\n  '舄' => '舄',\n  '辞' => '辞',\n  '䑫' => '䑫',\n  '芑' => '芑',\n  '芋' => '芋',\n  '芝' => '芝',\n  '劳' => '劳',\n  '花' => '花',\n  '芳' => '芳',\n  '芽' => '芽',\n  '苦' => '苦',\n  '𦬼' => '𦬼',\n  '若' => '若',\n  '茝' => '茝',\n  '荣' => '荣',\n  '莭' => '莭',\n  '茣' => '茣',\n  '莽' => '莽',\n  '菧' => '菧',\n  '著' => '著',\n  '荓' => '荓',\n  '菊' => '菊',\n  '菌' => '菌',\n  '菜' => '菜',\n  '𦰶' => '𦰶',\n  '𦵫' => '𦵫',\n  '𦳕' => '𦳕',\n  '䔫' => '䔫',\n  '蓱' => '蓱',\n  '蓳' => '蓳',\n  '蔖' => '蔖',\n  '𧏊' => '𧏊',\n  '蕤' => '蕤',\n  '𦼬' => '𦼬',\n  '䕝' => '䕝',\n  '䕡' => '䕡',\n  '𦾱' => '𦾱',\n  '𧃒' => '𧃒',\n  '䕫' => '䕫',\n  '虐' => '虐',\n  '虜' => '虜',\n  '虧' => '虧',\n  '虩' => '虩',\n  '蚩' => '蚩',\n  '蚈' => '蚈',\n  '蜎' => '蜎',\n  '蛢' => '蛢',\n  '蝹' => '蝹',\n  '蜨' => '蜨',\n  '蝫' => '蝫',\n  '螆' => '螆',\n  '䗗' => '䗗',\n  '蟡' => '蟡',\n  '蠁' => '蠁',\n  '䗹' => '䗹',\n  '衠' => '衠',\n  '衣' => '衣',\n  '𧙧' => '𧙧',\n  '裗' => '裗',\n  '裞' => '裞',\n  '䘵' => '䘵',\n  '裺' => '裺',\n  '㒻' => '㒻',\n  '𧢮' => '𧢮',\n  '𧥦' => '𧥦',\n  '䚾' => '䚾',\n  '䛇' => '䛇',\n  '誠' => '誠',\n  '諭' => '諭',\n  '變' => '變',\n  '豕' => '豕',\n  '𧲨' => '𧲨',\n  '貫' => '貫',\n  '賁' => '賁',\n  '贛' => '贛',\n  '起' => '起',\n  '𧼯' => '𧼯',\n  '𠠄' => '𠠄',\n  '跋' => '跋',\n  '趼' => '趼',\n  '跰' => '跰',\n  '𠣞' => '𠣞',\n  '軔' => '軔',\n  '輸' => '輸',\n  '𨗒' => '𨗒',\n  '𨗭' => '𨗭',\n  '邔' => '邔',\n  '郱' => '郱',\n  '鄑' => '鄑',\n  '𨜮' => '𨜮',\n  '鄛' => '鄛',\n  '鈸' => '鈸',\n  '鋗' => '鋗',\n  '鋘' => '鋘',\n  '鉼' => '鉼',\n  '鏹' => '鏹',\n  '鐕' => '鐕',\n  '𨯺' => '𨯺',\n  '開' => '開',\n  '䦕' => '䦕',\n  '閷' => '閷',\n  '𨵷' => '𨵷',\n  '䧦' => '䧦',\n  '雃' => '雃',\n  '嶲' => '嶲',\n  '霣' => '霣',\n  '𩅅' => '𩅅',\n  '𩈚' => '𩈚',\n  '䩮' => '䩮',\n  '䩶' => '䩶',\n  '韠' => '韠',\n  '𩐊' => '𩐊',\n  '䪲' => '䪲',\n  '𩒖' => '𩒖',\n  '頋' => '頋',\n  '頋' => '頋',\n  '頩' => '頩',\n  '𩖶' => '𩖶',\n  '飢' => '飢',\n  '䬳' => '䬳',\n  '餩' => '餩',\n  '馧' => '馧',\n  '駂' => '駂',\n  '駾' => '駾',\n  '䯎' => '䯎',\n  '𩬰' => '𩬰',\n  '鬒' => '鬒',\n  '鱀' => '鱀',\n  '鳽' => '鳽',\n  '䳎' => '䳎',\n  '䳭' => '䳭',\n  '鵧' => '鵧',\n  '𪃎' => '𪃎',\n  '䳸' => '䳸',\n  '𪄅' => '𪄅',\n  '𪈎' => '𪈎',\n  '𪊑' => '𪊑',\n  '麻' => '麻',\n  '䵖' => '䵖',\n  '黹' => '黹',\n  '黾' => '黾',\n  '鼅' => '鼅',\n  '鼏' => '鼏',\n  '鼖' => '鼖',\n  '鼻' => '鼻',\n  '𪘀' => '𪘀',\n  'Æ' => 'AE',\n  'Ð' => 'D',\n  'Ø' => 'O',\n  'Þ' => 'TH',\n  'ß' => 'ss',\n  'æ' => 'ae',\n  'ð' => 'd',\n  'ø' => 'o',\n  'þ' => 'th',\n  'Đ' => 'D',\n  'đ' => 'd',\n  'Ħ' => 'H',\n  'ħ' => 'h',\n  'ı' => 'i',\n  'ĸ' => 'q',\n  'Ł' => 'L',\n  'ł' => 'l',\n  'Ŋ' => 'N',\n  'ŋ' => 'n',\n  'Œ' => 'OE',\n  'œ' => 'oe',\n  'Ŧ' => 'T',\n  'ŧ' => 't',\n  'ƀ' => 'b',\n  'Ɓ' => 'B',\n  'Ƃ' => 'B',\n  'ƃ' => 'b',\n  'Ƈ' => 'C',\n  'ƈ' => 'c',\n  'Ɖ' => 'D',\n  'Ɗ' => 'D',\n  'Ƌ' => 'D',\n  'ƌ' => 'd',\n  'Ɛ' => 'E',\n  'Ƒ' => 'F',\n  'ƒ' => 'f',\n  'Ɠ' => 'G',\n  'ƕ' => 'hv',\n  'Ɩ' => 'I',\n  'Ɨ' => 'I',\n  'Ƙ' => 'K',\n  'ƙ' => 'k',\n  'ƚ' => 'l',\n  'Ɲ' => 'N',\n  'ƞ' => 'n',\n  'Ƣ' => 'OI',\n  'ƣ' => 'oi',\n  'Ƥ' => 'P',\n  'ƥ' => 'p',\n  'ƫ' => 't',\n  'Ƭ' => 'T',\n  'ƭ' => 't',\n  'Ʈ' => 'T',\n  'Ʋ' => 'V',\n  'Ƴ' => 'Y',\n  'ƴ' => 'y',\n  'Ƶ' => 'Z',\n  'ƶ' => 'z',\n  'Ǥ' => 'G',\n  'ǥ' => 'g',\n  'ȡ' => 'd',\n  'Ȥ' => 'Z',\n  'ȥ' => 'z',\n  'ȴ' => 'l',\n  'ȵ' => 'n',\n  'ȶ' => 't',\n  'ȷ' => 'j',\n  'ȸ' => 'db',\n  'ȹ' => 'qp',\n  'Ⱥ' => 'A',\n  'Ȼ' => 'C',\n  'ȼ' => 'c',\n  'Ƚ' => 'L',\n  'Ⱦ' => 'T',\n  'ȿ' => 's',\n  'ɀ' => 'z',\n  'Ƀ' => 'B',\n  'Ʉ' => 'U',\n  'Ɇ' => 'E',\n  'ɇ' => 'e',\n  'Ɉ' => 'J',\n  'ɉ' => 'j',\n  'Ɍ' => 'R',\n  'ɍ' => 'r',\n  'Ɏ' => 'Y',\n  'ɏ' => 'y',\n  'ɓ' => 'b',\n  'ɕ' => 'c',\n  'ɖ' => 'd',\n  'ɗ' => 'd',\n  'ɛ' => 'e',\n  'ɟ' => 'j',\n  'ɠ' => 'g',\n  'ɡ' => 'g',\n  'ɢ' => 'G',\n  'ɦ' => 'h',\n  'ɧ' => 'h',\n  'ɨ' => 'i',\n  'ɪ' => 'I',\n  'ɫ' => 'l',\n  'ɬ' => 'l',\n  'ɭ' => 'l',\n  'ɱ' => 'm',\n  'ɲ' => 'n',\n  'ɳ' => 'n',\n  'ɴ' => 'N',\n  'ɶ' => 'OE',\n  'ɼ' => 'r',\n  'ɽ' => 'r',\n  'ɾ' => 'r',\n  'ʀ' => 'R',\n  'ʂ' => 's',\n  'ʈ' => 't',\n  'ʉ' => 'u',\n  'ʋ' => 'v',\n  'ʏ' => 'Y',\n  'ʐ' => 'z',\n  'ʑ' => 'z',\n  'ʙ' => 'B',\n  'ʛ' => 'G',\n  'ʜ' => 'H',\n  'ʝ' => 'j',\n  'ʟ' => 'L',\n  'ʠ' => 'q',\n  'ʣ' => 'dz',\n  'ʥ' => 'dz',\n  'ʦ' => 'ts',\n  'ʪ' => 'ls',\n  'ʫ' => 'lz',\n  'ᴀ' => 'A',\n  'ᴁ' => 'AE',\n  'ᴃ' => 'B',\n  'ᴄ' => 'C',\n  'ᴅ' => 'D',\n  'ᴆ' => 'D',\n  'ᴇ' => 'E',\n  'ᴊ' => 'J',\n  'ᴋ' => 'K',\n  'ᴌ' => 'L',\n  'ᴍ' => 'M',\n  'ᴏ' => 'O',\n  'ᴘ' => 'P',\n  'ᴛ' => 'T',\n  'ᴜ' => 'U',\n  'ᴠ' => 'V',\n  'ᴡ' => 'W',\n  'ᴢ' => 'Z',\n  'ᵫ' => 'ue',\n  'ᵬ' => 'b',\n  'ᵭ' => 'd',\n  'ᵮ' => 'f',\n  'ᵯ' => 'm',\n  'ᵰ' => 'n',\n  'ᵱ' => 'p',\n  'ᵲ' => 'r',\n  'ᵳ' => 'r',\n  'ᵴ' => 's',\n  'ᵵ' => 't',\n  'ᵶ' => 'z',\n  'ᵺ' => 'th',\n  'ᵻ' => 'I',\n  'ᵽ' => 'p',\n  'ᵾ' => 'U',\n  'ᶀ' => 'b',\n  'ᶁ' => 'd',\n  'ᶂ' => 'f',\n  'ᶃ' => 'g',\n  'ᶄ' => 'k',\n  'ᶅ' => 'l',\n  'ᶆ' => 'm',\n  'ᶇ' => 'n',\n  'ᶈ' => 'p',\n  'ᶉ' => 'r',\n  'ᶊ' => 's',\n  'ᶌ' => 'v',\n  'ᶍ' => 'x',\n  'ᶎ' => 'z',\n  'ᶏ' => 'a',\n  'ᶑ' => 'd',\n  'ᶒ' => 'e',\n  'ᶓ' => 'e',\n  'ᶖ' => 'i',\n  'ᶙ' => 'u',\n  'ẜ' => 's',\n  'ẝ' => 's',\n  'ẞ' => 'SS',\n  'Ỻ' => 'LL',\n  'ỻ' => 'll',\n  'Ỽ' => 'V',\n  'ỽ' => 'v',\n  'Ỿ' => 'Y',\n  'ỿ' => 'y',\n  '©' => '(C)',\n  '®' => '(R)',\n  '₠' => 'CE',\n  '₢' => 'Cr',\n  '₣' => 'Fr.',\n  '₤' => 'L.',\n  '₧' => 'Pts',\n  '₺' => 'TL',\n  '₹' => 'Rs',\n  '℞' => 'Rx',\n  '〇' => '0',\n  '‘' => '\\'',\n  '’' => '\\'',\n  '‚' => ',',\n  '‛' => '\\'',\n  '“' => '\"',\n  '”' => '\"',\n  '„' => ',,',\n  '‟' => '\"',\n  '′' => '\\'',\n  '〝' => '\"',\n  '〞' => '\"',\n  '«' => '<<',\n  '»' => '>>',\n  '‹' => '<',\n  '›' => '>',\n  '‐' => '-',\n  '‑' => '-',\n  '‒' => '-',\n  '–' => '-',\n  '—' => '-',\n  '―' => '-',\n  '︱' => '-',\n  '︲' => '-',\n  '‖' => '||',\n  '⁄' => '/',\n  '⁅' => '[',\n  '⁆' => ']',\n  '⁎' => '*',\n  '、' => ',',\n  '。' => '.',\n  '〈' => '<',\n  '〉' => '>',\n  '《' => '<<',\n  '》' => '>>',\n  '〔' => '[',\n  '〕' => ']',\n  '〘' => '[',\n  '〙' => ']',\n  '〚' => '[',\n  '〛' => ']',\n  '︐' => ',',\n  '︑' => ',',\n  '︒' => '.',\n  '︓' => ':',\n  '︔' => ';',\n  '︕' => '!',\n  '︖' => '?',\n  '︙' => '...',\n  '︰' => '..',\n  '︵' => '(',\n  '︶' => ')',\n  '︷' => '{',\n  '︸' => '}',\n  '︹' => '[',\n  '︺' => ']',\n  '︽' => '<<',\n  '︾' => '>>',\n  '︿' => '<',\n  '﹀' => '>',\n  '﹇' => '[',\n  '﹈' => ']',\n  '×' => '*',\n  '÷' => '/',\n  '−' => '-',\n  '∕' => '/',\n  '∖' => '\\\\',\n  '∣' => '|',\n  '∥' => '||',\n  '≪' => '<<',\n  '≫' => '>>',\n  '⦅' => '((',\n  '⦆' => '))',\n);\n\n$result =& $data;\nunset($data);\n\nreturn $result;\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Iconv as p;\n\nif (!function_exists('iconv')) {\n    define('ICONV_IMPL', 'Symfony');\n    define('ICONV_VERSION', '1.0');\n    define('ICONV_MIME_DECODE_STRICT', 1);\n    define('ICONV_MIME_DECODE_CONTINUE_ON_ERROR', 2);\n\n    function iconv($from, $to, $s) { return p\\Iconv::iconv($from, $to, $s); }\n    function iconv_get_encoding($type = 'all') { return p\\Iconv::iconv_get_encoding($type); }\n    function iconv_set_encoding($type, $charset) { return p\\Iconv::iconv_set_encoding($type, $charset); }\n    function iconv_mime_encode($name, $value, $pref = null) { return p\\Iconv::iconv_mime_encode($name, $value, $pref); }\n    function iconv_mime_decode_headers($encodedHeaders, $mode = 0, $enc = null) { return p\\Iconv::iconv_mime_decode_headers($encodedHeaders, $mode, $enc); }\n\n    if (extension_loaded('mbstring')) {\n        function iconv_strlen($s, $enc = null) { null === $enc and $enc = p\\Iconv::$internalEncoding; return mb_strlen($s, $enc); }\n        function iconv_strpos($s, $needle, $offset = 0, $enc = null) { null === $enc and $enc = p\\Iconv::$internalEncoding; return mb_strpos($s, $needle, $offset, $enc); }\n        function iconv_strrpos($s, $needle, $enc = null) { null === $enc and $enc = p\\Iconv::$internalEncoding; return mb_strrpos($s, $needle, 0, $enc); }\n        function iconv_substr($s, $start, $length = 2147483647, $enc = null) { null === $enc and $enc = p\\Iconv::$internalEncoding; return mb_substr($s, $start, $length, $enc); }\n        function iconv_mime_decode($encodedHeaders, $mode = 0, $enc = null) { null === $enc and $enc = p\\Iconv::$internalEncoding; return mb_decode_mimeheader($encodedHeaders, $mode, $enc); }\n    } else {\n        if (extension_loaded('xml')) {\n            function iconv_strlen($s, $enc = null) { return p\\Iconv::strlen1($s, $enc); }\n        } else {\n            function iconv_strlen($s, $enc = null) { return p\\Iconv::strlen2($s, $enc); }\n        }\n\n        function iconv_strpos($s, $needle, $offset = 0, $enc = null) { return p\\Iconv::iconv_strpos($s, $needle, $offset, $enc); }\n        function iconv_strrpos($s, $needle, $enc = null) { return p\\Iconv::iconv_strrpos($s, $needle, $enc); }\n        function iconv_substr($s, $start, $length = 2147483647, $enc = null) { return p\\Iconv::iconv_substr($s, $start, $length, $enc); }\n        function iconv_mime_decode($encodedHeaders, $mode = 0, $enc = null) { return p\\Iconv::iconv_mime_decode($encodedHeaders, $mode, $enc); }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-iconv/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-iconv\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill for the Iconv extension\",\n    \"keywords\": [\"polyfill\", \"shim\", \"compatibility\", \"portable\", \"iconv\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Iconv\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ]\n    },\n    \"suggest\": {\n        \"ext-iconv\": \"For best performance\"\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.11-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-intl-idn/Idn.php",
    "content": "<?php\n\n/*\n * Copyright (c) 2014 TrueServer B.V.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is furnished\n * to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * Originally forked from\n * https://github.com/true/php-punycode/blob/v2.1.1/src/Punycode.php\n */\n\nnamespace Symfony\\Polyfill\\Intl\\Idn;\n\n/**\n * Partial intl implementation in pure PHP.\n *\n * Implemented:\n * - idn_to_ascii - Convert domain name to IDNA ASCII form\n * - idn_to_utf8  - Convert domain name from IDNA ASCII to Unicode\n *\n * @author Renan Gonçalves <renan.saddam@gmail.com>\n * @author Sebastian Kroczek <sk@xbug.de>\n * @author Dmitry Lukashin <dmitry@lukashin.ru>\n * @author Laurent Bassin <laurent@bassin.info>\n *\n * @internal\n */\nfinal class Idn\n{\n    const INTL_IDNA_VARIANT_2003 = 0;\n    const INTL_IDNA_VARIANT_UTS46 = 1;\n\n    private static $encodeTable = array(\n        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',\n        'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',\n        'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n    );\n\n    private static $decodeTable = array(\n        'a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5,\n        'g' => 6, 'h' => 7, 'i' => 8, 'j' => 9, 'k' => 10, 'l' => 11,\n        'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17,\n        's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23,\n        'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29,\n        '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35,\n    );\n\n    public static function idn_to_ascii($domain, $options, $variant, &$idna_info = array())\n    {\n        if (\\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {\n            @trigger_error('idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);\n        }\n\n        if (self::INTL_IDNA_VARIANT_UTS46 === $variant) {\n            $domain = mb_strtolower($domain, 'utf-8');\n        }\n\n        $parts = explode('.', $domain);\n\n        foreach ($parts as $i => &$part) {\n            if ('' === $part && \\count($parts) > 1 + $i) {\n                return false;\n            }\n            if (false === $part = self::encodePart($part)) {\n                return false;\n            }\n        }\n\n        $output = implode('.', $parts);\n\n        $idna_info = array(\n            'result' => \\strlen($output) > 255 ? false : $output,\n            'isTransitionalDifferent' => false,\n            'errors' => 0,\n        );\n\n        return $idna_info['result'];\n    }\n\n    public static function idn_to_utf8($domain, $options, $variant, &$idna_info = array())\n    {\n        if (\\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) {\n            @trigger_error('idn_to_utf8(): INTL_IDNA_VARIANT_2003 is deprecated', E_USER_DEPRECATED);\n        }\n\n        $parts = explode('.', $domain);\n\n        foreach ($parts as &$part) {\n            $length = \\strlen($part);\n            if ($length < 1 || 63 < $length) {\n                continue;\n            }\n            if (0 !== strpos($part, 'xn--')) {\n                continue;\n            }\n\n            $part = substr($part, 4);\n            $part = self::decodePart($part);\n        }\n\n        $output = implode('.', $parts);\n\n        $idna_info = array(\n            'result' => \\strlen($output) > 255 ? false : $output,\n            'isTransitionalDifferent' => false,\n            'errors' => 0,\n        );\n\n        return $idna_info['result'];\n    }\n\n    private static function encodePart($input)\n    {\n        $codePoints = self::listCodePoints($input);\n\n        $n = 128;\n        $bias = 72;\n        $delta = 0;\n        $h = $b = \\count($codePoints['basic']);\n\n        $output = '';\n        foreach ($codePoints['basic'] as $code) {\n            $output .= mb_chr($code, 'utf-8');\n        }\n        if ($input === $output) {\n            return $output;\n        }\n        if ($b > 0) {\n            $output .= '-';\n        }\n\n        $codePoints['nonBasic'] = array_unique($codePoints['nonBasic']);\n        sort($codePoints['nonBasic']);\n\n        $i = 0;\n        $length = mb_strlen($input, 'utf-8');\n        while ($h < $length) {\n            $m = $codePoints['nonBasic'][$i++];\n            $delta += ($m - $n) * ($h + 1);\n            $n = $m;\n\n            foreach ($codePoints['all'] as $c) {\n                if ($c < $n || $c < 128) {\n                    ++$delta;\n                }\n                if ($c === $n) {\n                    $q = $delta;\n                    for ($k = 36;; $k += 36) {\n                        $t = self::calculateThreshold($k, $bias);\n                        if ($q < $t) {\n                            break;\n                        }\n\n                        $code = $t + (($q - $t) % (36 - $t));\n                        $output .= self::$encodeTable[$code];\n\n                        $q = ($q - $t) / (36 - $t);\n                    }\n\n                    $output .= self::$encodeTable[$q];\n                    $bias = self::adapt($delta, $h + 1, ($h === $b));\n                    $delta = 0;\n                    ++$h;\n                }\n            }\n\n            ++$delta;\n            ++$n;\n        }\n\n        $output = 'xn--'.$output;\n\n        return \\strlen($output) < 1 || 63 < \\strlen($output) ? false : strtolower($output);\n    }\n\n    private static function listCodePoints($input)\n    {\n        $codePoints = array(\n            'all' => array(),\n            'basic' => array(),\n            'nonBasic' => array(),\n        );\n\n        $length = mb_strlen($input, 'utf-8');\n        for ($i = 0; $i < $length; ++$i) {\n            $char = mb_substr($input, $i, 1, 'utf-8');\n            $code = mb_ord($char, 'utf-8');\n            if ($code < 128) {\n                $codePoints['all'][] = $codePoints['basic'][] = $code;\n            } else {\n                $codePoints['all'][] = $codePoints['nonBasic'][] = $code;\n            }\n        }\n\n        return $codePoints;\n    }\n\n    private static function calculateThreshold($k, $bias)\n    {\n        if ($k <= $bias + 1) {\n            return 1;\n        }\n        if ($k >= $bias + 26) {\n            return 26;\n        }\n\n        return $k - $bias;\n    }\n\n    private static function adapt($delta, $numPoints, $firstTime)\n    {\n        $delta = (int) ($firstTime ? $delta / 700 : $delta / 2);\n        $delta += (int) ($delta / $numPoints);\n\n        $k = 0;\n        while ($delta > 35 * 13) {\n            $delta = (int) ($delta / 35);\n            $k = $k + 36;\n        }\n\n        return $k + (int) (36 * $delta / ($delta + 38));\n    }\n\n    private static function decodePart($input)\n    {\n        $n = 128;\n        $i = 0;\n        $bias = 72;\n        $output = '';\n\n        $pos = strrpos($input, '-');\n        if (false !== $pos) {\n            $output = substr($input, 0, $pos++);\n        } else {\n            $pos = 0;\n        }\n\n        $outputLength = \\strlen($output);\n        $inputLength = \\strlen($input);\n\n        while ($pos < $inputLength) {\n            $oldi = $i;\n            $w = 1;\n\n            for ($k = 36;; $k += 36) {\n                $digit = self::$decodeTable[$input[$pos++]];\n                $i += $digit * $w;\n                $t = self::calculateThreshold($k, $bias);\n\n                if ($digit < $t) {\n                    break;\n                }\n\n                $w *= 36 - $t;\n            }\n\n            $bias = self::adapt($i - $oldi, ++$outputLength, 0 === $oldi);\n            $n = $n + (int) ($i / $outputLength);\n            $i = $i % $outputLength;\n            $output = mb_substr($output, 0, $i, 'utf-8').mb_chr($n, 'utf-8').mb_substr($output, $i, $outputLength - 1, 'utf-8');\n\n            ++$i;\n        }\n\n        return $output;\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-intl-idn/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-intl-idn/README.md",
    "content": "Symfony Polyfill / Intl: Idn\n============================\n\nThis component provides `idn_to_ascii` and `idn_to_utf8` functions to users who run php versions without the intl extension.\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-intl-idn/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Intl\\Idn as p;\n\nif (!function_exists('idn_to_ascii')) {\n    define('U_IDNA_PROHIBITED_ERROR', 66560);\n    define('U_IDNA_ERROR_START', 66560);\n    define('U_IDNA_UNASSIGNED_ERROR', 66561);\n    define('U_IDNA_CHECK_BIDI_ERROR', 66562);\n    define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);\n    define('U_IDNA_ACE_PREFIX_ERROR', 66564);\n    define('U_IDNA_VERIFICATION_ERROR', 66565);\n    define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);\n    define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);\n    define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);\n    define('U_IDNA_ERROR_LIMIT', 66569);\n    define('U_STRINGPREP_PROHIBITED_ERROR', 66560);\n    define('U_STRINGPREP_UNASSIGNED_ERROR', 66561);\n    define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);\n    define('IDNA_DEFAULT', 0);\n    define('IDNA_ALLOW_UNASSIGNED', 1);\n    define('IDNA_USE_STD3_RULES', 2);\n    define('IDNA_CHECK_BIDI', 4);\n    define('IDNA_CHECK_CONTEXTJ', 8);\n    define('IDNA_NONTRANSITIONAL_TO_ASCII', 16);\n    define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);\n    define('INTL_IDNA_VARIANT_2003', 0);\n    define('INTL_IDNA_VARIANT_UTS46', 1);\n    define('IDNA_ERROR_EMPTY_LABEL', 1);\n    define('IDNA_ERROR_LABEL_TOO_LONG', 2);\n    define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);\n    define('IDNA_ERROR_LEADING_HYPHEN', 8);\n    define('IDNA_ERROR_TRAILING_HYPHEN', 16);\n    define('IDNA_ERROR_HYPHEN_3_4', 32);\n    define('IDNA_ERROR_LEADING_COMBINING_MARK', 64);\n    define('IDNA_ERROR_DISALLOWED', 128);\n    define('IDNA_ERROR_PUNYCODE', 256);\n    define('IDNA_ERROR_LABEL_HAS_DOT', 512);\n    define('IDNA_ERROR_INVALID_ACE_LABEL', 1024);\n    define('IDNA_ERROR_BIDI', 2048);\n    define('IDNA_ERROR_CONTEXTJ', 4096);\n\n    if (PHP_VERSION_ID < 70400) {\n        function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }\n        function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }\n    } else {\n        function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); }\n        function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) { return p\\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-intl-idn/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-intl-idn\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions\",\n    \"keywords\": [\"polyfill\", \"shim\", \"compatibility\", \"portable\", \"intl\", \"idn\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Laurent Bassin\",\n            \"email\": \"laurent@bassin.info\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\",\n        \"symfony/polyfill-mbstring\": \"^1.3\",\n        \"symfony/polyfill-php72\": \"^1.9\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Intl\\\\Idn\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ]\n    },\n    \"suggest\": {\n        \"ext-intl\": \"For best performance\"\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.9-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/LICENSE",
    "content": "Copyright (c) 2015-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/Mbstring.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Polyfill\\Mbstring;\n\n/**\n * Partial mbstring implementation in PHP, iconv based, UTF-8 centric.\n *\n * Implemented:\n * - mb_chr                  - Returns a specific character from its Unicode code point\n * - mb_convert_encoding     - Convert character encoding\n * - mb_convert_variables    - Convert character code in variable(s)\n * - mb_decode_mimeheader    - Decode string in MIME header field\n * - mb_encode_mimeheader    - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED\n * - mb_decode_numericentity - Decode HTML numeric string reference to character\n * - mb_encode_numericentity - Encode character to HTML numeric string reference\n * - mb_convert_case         - Perform case folding on a string\n * - mb_detect_encoding      - Detect character encoding\n * - mb_get_info             - Get internal settings of mbstring\n * - mb_http_input           - Detect HTTP input character encoding\n * - mb_http_output          - Set/Get HTTP output character encoding\n * - mb_internal_encoding    - Set/Get internal character encoding\n * - mb_list_encodings       - Returns an array of all supported encodings\n * - mb_ord                  - Returns the Unicode code point of a character\n * - mb_output_handler       - Callback function converts character encoding in output buffer\n * - mb_scrub                - Replaces ill-formed byte sequences with substitute characters\n * - mb_strlen               - Get string length\n * - mb_strpos               - Find position of first occurrence of string in a string\n * - mb_strrpos              - Find position of last occurrence of a string in a string\n * - mb_strtolower           - Make a string lowercase\n * - mb_strtoupper           - Make a string uppercase\n * - mb_substitute_character - Set/Get substitution character\n * - mb_substr               - Get part of string\n * - mb_stripos              - Finds position of first occurrence of a string within another, case insensitive\n * - mb_stristr              - Finds first occurrence of a string within another, case insensitive\n * - mb_strrchr              - Finds the last occurrence of a character in a string within another\n * - mb_strrichr             - Finds the last occurrence of a character in a string within another, case insensitive\n * - mb_strripos             - Finds position of last occurrence of a string within another, case insensitive\n * - mb_strstr               - Finds first occurrence of a string within another\n * - mb_strwidth             - Return width of string\n * - mb_substr_count         - Count the number of substring occurrences\n *\n * Not implemented:\n * - mb_convert_kana         - Convert \"kana\" one from another (\"zen-kaku\", \"han-kaku\" and more)\n * - mb_ereg_*               - Regular expression with multibyte support\n * - mb_parse_str            - Parse GET/POST/COOKIE data and set global variable\n * - mb_preferred_mime_name  - Get MIME charset string\n * - mb_regex_encoding       - Returns current encoding for multibyte regex as string\n * - mb_regex_set_options    - Set/Get the default options for mbregex functions\n * - mb_send_mail            - Send encoded mail\n * - mb_split                - Split multibyte string using regular expression\n * - mb_strcut               - Get part of string\n * - mb_strimwidth           - Get truncated string with specified width\n *\n * @author Nicolas Grekas <p@tchwork.com>\n *\n * @internal\n */\nfinal class Mbstring\n{\n    const MB_CASE_FOLD = PHP_INT_MAX;\n\n    private static $encodingList = array('ASCII', 'UTF-8');\n    private static $language = 'neutral';\n    private static $internalEncoding = 'UTF-8';\n    private static $caseFold = array(\n        array('µ', 'ſ', \"\\xCD\\x85\", 'ς', \"\\xCF\\x90\", \"\\xCF\\x91\", \"\\xCF\\x95\", \"\\xCF\\x96\", \"\\xCF\\xB0\", \"\\xCF\\xB1\", \"\\xCF\\xB5\", \"\\xE1\\xBA\\x9B\", \"\\xE1\\xBE\\xBE\"),\n        array('μ', 's', 'ι',        'σ', 'β',        'θ',        'φ',        'π',        'κ',        'ρ',        'ε',        \"\\xE1\\xB9\\xA1\", 'ι'),\n    );\n\n    public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)\n    {\n        if (\\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) {\n            $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);\n        } else {\n            $fromEncoding = self::getEncoding($fromEncoding);\n        }\n\n        $toEncoding = self::getEncoding($toEncoding);\n\n        if ('BASE64' === $fromEncoding) {\n            $s = base64_decode($s);\n            $fromEncoding = $toEncoding;\n        }\n\n        if ('BASE64' === $toEncoding) {\n            return base64_encode($s);\n        }\n\n        if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {\n            if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {\n                $fromEncoding = 'Windows-1252';\n            }\n            if ('UTF-8' !== $fromEncoding) {\n                $s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);\n            }\n\n            return preg_replace_callback('/[\\x80-\\xFF]+/', array(__CLASS__, 'html_encoding_callback'), $s);\n        }\n\n        if ('HTML-ENTITIES' === $fromEncoding) {\n            $s = html_entity_decode($s, ENT_COMPAT, 'UTF-8');\n            $fromEncoding = 'UTF-8';\n        }\n\n        return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);\n    }\n\n    public static function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null)\n    {\n        $vars = array(&$a, &$b, &$c, &$d, &$e, &$f);\n\n        $ok = true;\n        array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {\n            if (false === $v = Mbstring::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {\n                $ok = false;\n            }\n        });\n\n        return $ok ? $fromEncoding : false;\n    }\n\n    public static function mb_decode_mimeheader($s)\n    {\n        return iconv_mime_decode($s, 2, self::$internalEncoding);\n    }\n\n    public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)\n    {\n        trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', E_USER_WARNING);\n    }\n\n    public static function mb_decode_numericentity($s, $convmap, $encoding = null)\n    {\n        if (null !== $s && !\\is_scalar($s) && !(\\is_object($s) && \\method_exists($s, '__toString'))) {\n            trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\\gettype($s).' given', E_USER_WARNING);\n\n            return null;\n        }\n\n        if (!\\is_array($convmap) || !$convmap) {\n            return false;\n        }\n\n        if (null !== $encoding && !\\is_scalar($encoding)) {\n            trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\\gettype($s).' given', E_USER_WARNING);\n\n            return '';  // Instead of null (cf. mb_encode_numericentity).\n        }\n\n        $s = (string) $s;\n        if ('' === $s) {\n            return '';\n        }\n\n        $encoding = self::getEncoding($encoding);\n\n        if ('UTF-8' === $encoding) {\n            $encoding = null;\n            if (!preg_match('//u', $s)) {\n                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);\n            }\n        } else {\n            $s = iconv($encoding, 'UTF-8//IGNORE', $s);\n        }\n\n        $cnt = floor(\\count($convmap) / 4) * 4;\n\n        for ($i = 0; $i < $cnt; $i += 4) {\n            // collector_decode_htmlnumericentity ignores $convmap[$i + 3]\n            $convmap[$i] += $convmap[$i + 2];\n            $convmap[$i + 1] += $convmap[$i + 2];\n        }\n\n        $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {\n            $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];\n            for ($i = 0; $i < $cnt; $i += 4) {\n                if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {\n                    return Mbstring::mb_chr($c - $convmap[$i + 2]);\n                }\n            }\n\n            return $m[0];\n        }, $s);\n\n        if (null === $encoding) {\n            return $s;\n        }\n\n        return iconv('UTF-8', $encoding.'//IGNORE', $s);\n    }\n\n    public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)\n    {\n        if (null !== $s && !\\is_scalar($s) && !(\\is_object($s) && \\method_exists($s, '__toString'))) {\n            trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\\gettype($s).' given', E_USER_WARNING);\n\n            return null;\n        }\n\n        if (!\\is_array($convmap) || !$convmap) {\n            return false;\n        }\n\n        if (null !== $encoding && !\\is_scalar($encoding)) {\n            trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\\gettype($s).' given', E_USER_WARNING);\n\n            return null;  // Instead of '' (cf. mb_decode_numericentity).\n        }\n\n        if (null !== $is_hex && !\\is_scalar($is_hex)) {\n            trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\\gettype($s).' given', E_USER_WARNING);\n\n            return null;\n        }\n\n        $s = (string) $s;\n        if ('' === $s) {\n            return '';\n        }\n\n        $encoding = self::getEncoding($encoding);\n\n        if ('UTF-8' === $encoding) {\n            $encoding = null;\n            if (!preg_match('//u', $s)) {\n                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);\n            }\n        } else {\n            $s = iconv($encoding, 'UTF-8//IGNORE', $s);\n        }\n\n        static $ulenMask = array(\"\\xC0\" => 2, \"\\xD0\" => 2, \"\\xE0\" => 3, \"\\xF0\" => 4);\n\n        $cnt = floor(\\count($convmap) / 4) * 4;\n        $i = 0;\n        $len = \\strlen($s);\n        $result = '';\n\n        while ($i < $len) {\n            $ulen = $s[$i] < \"\\x80\" ? 1 : $ulenMask[$s[$i] & \"\\xF0\"];\n            $uchr = substr($s, $i, $ulen);\n            $i += $ulen;\n            $c = self::mb_ord($uchr);\n\n            for ($j = 0; $j < $cnt; $j += 4) {\n                if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {\n                    $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];\n                    $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';\n                    continue 2;\n                }\n            }\n            $result .= $uchr;\n        }\n\n        if (null === $encoding) {\n            return $result;\n        }\n\n        return iconv('UTF-8', $encoding.'//IGNORE', $result);\n    }\n\n    public static function mb_convert_case($s, $mode, $encoding = null)\n    {\n        $s = (string) $s;\n        if ('' === $s) {\n            return '';\n        }\n\n        $encoding = self::getEncoding($encoding);\n\n        if ('UTF-8' === $encoding) {\n            $encoding = null;\n            if (!preg_match('//u', $s)) {\n                $s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);\n            }\n        } else {\n            $s = iconv($encoding, 'UTF-8//IGNORE', $s);\n        }\n\n        if (MB_CASE_TITLE == $mode) {\n            static $titleRegexp = null;\n            if (null === $titleRegexp) {\n                $titleRegexp = self::getData('titleCaseRegexp');\n            }\n            $s = preg_replace_callback($titleRegexp, array(__CLASS__, 'title_case'), $s);\n        } else {\n            if (MB_CASE_UPPER == $mode) {\n                static $upper = null;\n                if (null === $upper) {\n                    $upper = self::getData('upperCase');\n                }\n                $map = $upper;\n            } else {\n                if (self::MB_CASE_FOLD === $mode) {\n                    $s = str_replace(self::$caseFold[0], self::$caseFold[1], $s);\n                }\n\n                static $lower = null;\n                if (null === $lower) {\n                    $lower = self::getData('lowerCase');\n                }\n                $map = $lower;\n            }\n\n            static $ulenMask = array(\"\\xC0\" => 2, \"\\xD0\" => 2, \"\\xE0\" => 3, \"\\xF0\" => 4);\n\n            $i = 0;\n            $len = \\strlen($s);\n\n            while ($i < $len) {\n                $ulen = $s[$i] < \"\\x80\" ? 1 : $ulenMask[$s[$i] & \"\\xF0\"];\n                $uchr = substr($s, $i, $ulen);\n                $i += $ulen;\n\n                if (isset($map[$uchr])) {\n                    $uchr = $map[$uchr];\n                    $nlen = \\strlen($uchr);\n\n                    if ($nlen == $ulen) {\n                        $nlen = $i;\n                        do {\n                            $s[--$nlen] = $uchr[--$ulen];\n                        } while ($ulen);\n                    } else {\n                        $s = substr_replace($s, $uchr, $i - $ulen, $ulen);\n                        $len += $nlen - $ulen;\n                        $i += $nlen - $ulen;\n                    }\n                }\n            }\n        }\n\n        if (null === $encoding) {\n            return $s;\n        }\n\n        return iconv('UTF-8', $encoding.'//IGNORE', $s);\n    }\n\n    public static function mb_internal_encoding($encoding = null)\n    {\n        if (null === $encoding) {\n            return self::$internalEncoding;\n        }\n\n        $encoding = self::getEncoding($encoding);\n\n        if ('UTF-8' === $encoding || false !== @iconv($encoding, $encoding, ' ')) {\n            self::$internalEncoding = $encoding;\n\n            return true;\n        }\n\n        return false;\n    }\n\n    public static function mb_language($lang = null)\n    {\n        if (null === $lang) {\n            return self::$language;\n        }\n\n        switch ($lang = strtolower($lang)) {\n            case 'uni':\n            case 'neutral':\n                self::$language = $lang;\n\n                return true;\n        }\n\n        return false;\n    }\n\n    public static function mb_list_encodings()\n    {\n        return array('UTF-8');\n    }\n\n    public static function mb_encoding_aliases($encoding)\n    {\n        switch (strtoupper($encoding)) {\n            case 'UTF8':\n            case 'UTF-8':\n                return array('utf8');\n        }\n\n        return false;\n    }\n\n    public static function mb_check_encoding($var = null, $encoding = null)\n    {\n        if (null === $encoding) {\n            if (null === $var) {\n                return false;\n            }\n            $encoding = self::$internalEncoding;\n        }\n\n        return self::mb_detect_encoding($var, array($encoding)) || false !== @iconv($encoding, $encoding, $var);\n    }\n\n    public static function mb_detect_encoding($str, $encodingList = null, $strict = false)\n    {\n        if (null === $encodingList) {\n            $encodingList = self::$encodingList;\n        } else {\n            if (!\\is_array($encodingList)) {\n                $encodingList = array_map('trim', explode(',', $encodingList));\n            }\n            $encodingList = array_map('strtoupper', $encodingList);\n        }\n\n        foreach ($encodingList as $enc) {\n            switch ($enc) {\n                case 'ASCII':\n                    if (!preg_match('/[\\x80-\\xFF]/', $str)) {\n                        return $enc;\n                    }\n                    break;\n\n                case 'UTF8':\n                case 'UTF-8':\n                    if (preg_match('//u', $str)) {\n                        return 'UTF-8';\n                    }\n                    break;\n\n                default:\n                    if (0 === strncmp($enc, 'ISO-8859-', 9)) {\n                        return $enc;\n                    }\n            }\n        }\n\n        return false;\n    }\n\n    public static function mb_detect_order($encodingList = null)\n    {\n        if (null === $encodingList) {\n            return self::$encodingList;\n        }\n\n        if (!\\is_array($encodingList)) {\n            $encodingList = array_map('trim', explode(',', $encodingList));\n        }\n        $encodingList = array_map('strtoupper', $encodingList);\n\n        foreach ($encodingList as $enc) {\n            switch ($enc) {\n                default:\n                    if (strncmp($enc, 'ISO-8859-', 9)) {\n                        return false;\n                    }\n                    // no break\n                case 'ASCII':\n                case 'UTF8':\n                case 'UTF-8':\n            }\n        }\n\n        self::$encodingList = $encodingList;\n\n        return true;\n    }\n\n    public static function mb_strlen($s, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n        if ('CP850' === $encoding || 'ASCII' === $encoding) {\n            return \\strlen($s);\n        }\n\n        return @iconv_strlen($s, $encoding);\n    }\n\n    public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n        if ('CP850' === $encoding || 'ASCII' === $encoding) {\n            return strpos($haystack, $needle, $offset);\n        }\n\n        $needle = (string) $needle;\n        if ('' === $needle) {\n            trigger_error(__METHOD__.': Empty delimiter', E_USER_WARNING);\n\n            return false;\n        }\n\n        return iconv_strpos($haystack, $needle, $offset, $encoding);\n    }\n\n    public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n        if ('CP850' === $encoding || 'ASCII' === $encoding) {\n            return strrpos($haystack, $needle, $offset);\n        }\n\n        if ($offset != (int) $offset) {\n            $offset = 0;\n        } elseif ($offset = (int) $offset) {\n            if ($offset < 0) {\n                $haystack = self::mb_substr($haystack, 0, $offset, $encoding);\n                $offset = 0;\n            } else {\n                $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);\n            }\n        }\n\n        $pos = iconv_strrpos($haystack, $needle, $encoding);\n\n        return false !== $pos ? $offset + $pos : false;\n    }\n\n    public static function mb_strtolower($s, $encoding = null)\n    {\n        return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);\n    }\n\n    public static function mb_strtoupper($s, $encoding = null)\n    {\n        return self::mb_convert_case($s, MB_CASE_UPPER, $encoding);\n    }\n\n    public static function mb_substitute_character($c = null)\n    {\n        if (0 === strcasecmp($c, 'none')) {\n            return true;\n        }\n\n        return null !== $c ? false : 'none';\n    }\n\n    public static function mb_substr($s, $start, $length = null, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n        if ('CP850' === $encoding || 'ASCII' === $encoding) {\n            return substr($s, $start, null === $length ? 2147483647 : $length);\n        }\n\n        if ($start < 0) {\n            $start = iconv_strlen($s, $encoding) + $start;\n            if ($start < 0) {\n                $start = 0;\n            }\n        }\n\n        if (null === $length) {\n            $length = 2147483647;\n        } elseif ($length < 0) {\n            $length = iconv_strlen($s, $encoding) + $length - $start;\n            if ($length < 0) {\n                return '';\n            }\n        }\n\n        return (string) iconv_substr($s, $start, $length, $encoding);\n    }\n\n    public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)\n    {\n        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);\n        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);\n\n        return self::mb_strpos($haystack, $needle, $offset, $encoding);\n    }\n\n    public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)\n    {\n        $pos = self::mb_stripos($haystack, $needle, 0, $encoding);\n\n        return self::getSubpart($pos, $part, $haystack, $encoding);\n    }\n\n    public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n        if ('CP850' === $encoding || 'ASCII' === $encoding) {\n            return strrchr($haystack, $needle, $part);\n        }\n        $needle = self::mb_substr($needle, 0, 1, $encoding);\n        $pos = iconv_strrpos($haystack, $needle, $encoding);\n\n        return self::getSubpart($pos, $part, $haystack, $encoding);\n    }\n\n    public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)\n    {\n        $needle = self::mb_substr($needle, 0, 1, $encoding);\n        $pos = self::mb_strripos($haystack, $needle, $encoding);\n\n        return self::getSubpart($pos, $part, $haystack, $encoding);\n    }\n\n    public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)\n    {\n        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);\n        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);\n\n        return self::mb_strrpos($haystack, $needle, $offset, $encoding);\n    }\n\n    public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)\n    {\n        $pos = strpos($haystack, $needle);\n        if (false === $pos) {\n            return false;\n        }\n        if ($part) {\n            return substr($haystack, 0, $pos);\n        }\n\n        return substr($haystack, $pos);\n    }\n\n    public static function mb_get_info($type = 'all')\n    {\n        $info = array(\n            'internal_encoding' => self::$internalEncoding,\n            'http_output' => 'pass',\n            'http_output_conv_mimetypes' => '^(text/|application/xhtml\\+xml)',\n            'func_overload' => 0,\n            'func_overload_list' => 'no overload',\n            'mail_charset' => 'UTF-8',\n            'mail_header_encoding' => 'BASE64',\n            'mail_body_encoding' => 'BASE64',\n            'illegal_chars' => 0,\n            'encoding_translation' => 'Off',\n            'language' => self::$language,\n            'detect_order' => self::$encodingList,\n            'substitute_character' => 'none',\n            'strict_detection' => 'Off',\n        );\n\n        if ('all' === $type) {\n            return $info;\n        }\n        if (isset($info[$type])) {\n            return $info[$type];\n        }\n\n        return false;\n    }\n\n    public static function mb_http_input($type = '')\n    {\n        return false;\n    }\n\n    public static function mb_http_output($encoding = null)\n    {\n        return null !== $encoding ? 'pass' === $encoding : 'pass';\n    }\n\n    public static function mb_strwidth($s, $encoding = null)\n    {\n        $encoding = self::getEncoding($encoding);\n\n        if ('UTF-8' !== $encoding) {\n            $s = iconv($encoding, 'UTF-8//IGNORE', $s);\n        }\n\n        $s = preg_replace('/[\\x{1100}-\\x{115F}\\x{2329}\\x{232A}\\x{2E80}-\\x{303E}\\x{3040}-\\x{A4CF}\\x{AC00}-\\x{D7A3}\\x{F900}-\\x{FAFF}\\x{FE10}-\\x{FE19}\\x{FE30}-\\x{FE6F}\\x{FF00}-\\x{FF60}\\x{FFE0}-\\x{FFE6}\\x{20000}-\\x{2FFFD}\\x{30000}-\\x{3FFFD}]/u', '', $s, -1, $wide);\n\n        return ($wide << 1) + iconv_strlen($s, 'UTF-8');\n    }\n\n    public static function mb_substr_count($haystack, $needle, $encoding = null)\n    {\n        return substr_count($haystack, $needle);\n    }\n\n    public static function mb_output_handler($contents, $status)\n    {\n        return $contents;\n    }\n\n    public static function mb_chr($code, $encoding = null)\n    {\n        if (0x80 > $code %= 0x200000) {\n            $s = \\chr($code);\n        } elseif (0x800 > $code) {\n            $s = \\chr(0xC0 | $code >> 6).\\chr(0x80 | $code & 0x3F);\n        } elseif (0x10000 > $code) {\n            $s = \\chr(0xE0 | $code >> 12).\\chr(0x80 | $code >> 6 & 0x3F).\\chr(0x80 | $code & 0x3F);\n        } else {\n            $s = \\chr(0xF0 | $code >> 18).\\chr(0x80 | $code >> 12 & 0x3F).\\chr(0x80 | $code >> 6 & 0x3F).\\chr(0x80 | $code & 0x3F);\n        }\n\n        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {\n            $s = mb_convert_encoding($s, $encoding, 'UTF-8');\n        }\n\n        return $s;\n    }\n\n    public static function mb_ord($s, $encoding = null)\n    {\n        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {\n            $s = mb_convert_encoding($s, 'UTF-8', $encoding);\n        }\n\n        if (1 === \\strlen($s)) {\n            return \\ord($s);\n        }\n\n        $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;\n        if (0xF0 <= $code) {\n            return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;\n        }\n        if (0xE0 <= $code) {\n            return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;\n        }\n        if (0xC0 <= $code) {\n            return (($code - 0xC0) << 6) + $s[2] - 0x80;\n        }\n\n        return $code;\n    }\n\n    private static function getSubpart($pos, $part, $haystack, $encoding)\n    {\n        if (false === $pos) {\n            return false;\n        }\n        if ($part) {\n            return self::mb_substr($haystack, 0, $pos, $encoding);\n        }\n\n        return self::mb_substr($haystack, $pos, null, $encoding);\n    }\n\n    private static function html_encoding_callback(array $m)\n    {\n        $i = 1;\n        $entities = '';\n        $m = unpack('C*', htmlentities($m[0], ENT_COMPAT, 'UTF-8'));\n\n        while (isset($m[$i])) {\n            if (0x80 > $m[$i]) {\n                $entities .= \\chr($m[$i++]);\n                continue;\n            }\n            if (0xF0 <= $m[$i]) {\n                $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;\n            } elseif (0xE0 <= $m[$i]) {\n                $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;\n            } else {\n                $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;\n            }\n\n            $entities .= '&#'.$c.';';\n        }\n\n        return $entities;\n    }\n\n    private static function title_case(array $s)\n    {\n        return self::mb_convert_case($s[1], MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], MB_CASE_LOWER, 'UTF-8');\n    }\n\n    private static function getData($file)\n    {\n        if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {\n            return require $file;\n        }\n\n        return false;\n    }\n\n    private static function getEncoding($encoding)\n    {\n        if (null === $encoding) {\n            return self::$internalEncoding;\n        }\n\n        $encoding = strtoupper($encoding);\n\n        if ('8BIT' === $encoding || 'BINARY' === $encoding) {\n            return 'CP850';\n        }\n        if ('UTF8' === $encoding) {\n            return 'UTF-8';\n        }\n\n        return $encoding;\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/README.md",
    "content": "Symfony Polyfill / Mbstring\n===========================\n\nThis component provides a partial, native PHP implementation for the\n[Mbstring](http://php.net/mbstring) extension.\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php",
    "content": "<?php\n\nreturn array(\n  'A' => 'a',\n  'B' => 'b',\n  'C' => 'c',\n  'D' => 'd',\n  'E' => 'e',\n  'F' => 'f',\n  'G' => 'g',\n  'H' => 'h',\n  'I' => 'i',\n  'J' => 'j',\n  'K' => 'k',\n  'L' => 'l',\n  'M' => 'm',\n  'N' => 'n',\n  'O' => 'o',\n  'P' => 'p',\n  'Q' => 'q',\n  'R' => 'r',\n  'S' => 's',\n  'T' => 't',\n  'U' => 'u',\n  'V' => 'v',\n  'W' => 'w',\n  'X' => 'x',\n  'Y' => 'y',\n  'Z' => 'z',\n  'À' => 'à',\n  'Á' => 'á',\n  'Â' => 'â',\n  'Ã' => 'ã',\n  'Ä' => 'ä',\n  'Å' => 'å',\n  'Æ' => 'æ',\n  'Ç' => 'ç',\n  'È' => 'è',\n  'É' => 'é',\n  'Ê' => 'ê',\n  'Ë' => 'ë',\n  'Ì' => 'ì',\n  'Í' => 'í',\n  'Î' => 'î',\n  'Ï' => 'ï',\n  'Ð' => 'ð',\n  'Ñ' => 'ñ',\n  'Ò' => 'ò',\n  'Ó' => 'ó',\n  'Ô' => 'ô',\n  'Õ' => 'õ',\n  'Ö' => 'ö',\n  'Ø' => 'ø',\n  'Ù' => 'ù',\n  'Ú' => 'ú',\n  'Û' => 'û',\n  'Ü' => 'ü',\n  'Ý' => 'ý',\n  'Þ' => 'þ',\n  'Ā' => 'ā',\n  'Ă' => 'ă',\n  'Ą' => 'ą',\n  'Ć' => 'ć',\n  'Ĉ' => 'ĉ',\n  'Ċ' => 'ċ',\n  'Č' => 'č',\n  'Ď' => 'ď',\n  'Đ' => 'đ',\n  'Ē' => 'ē',\n  'Ĕ' => 'ĕ',\n  'Ė' => 'ė',\n  'Ę' => 'ę',\n  'Ě' => 'ě',\n  'Ĝ' => 'ĝ',\n  'Ğ' => 'ğ',\n  'Ġ' => 'ġ',\n  'Ģ' => 'ģ',\n  'Ĥ' => 'ĥ',\n  'Ħ' => 'ħ',\n  'Ĩ' => 'ĩ',\n  'Ī' => 'ī',\n  'Ĭ' => 'ĭ',\n  'Į' => 'į',\n  'İ' => 'i',\n  'Ĳ' => 'ĳ',\n  'Ĵ' => 'ĵ',\n  'Ķ' => 'ķ',\n  'Ĺ' => 'ĺ',\n  'Ļ' => 'ļ',\n  'Ľ' => 'ľ',\n  'Ŀ' => 'ŀ',\n  'Ł' => 'ł',\n  'Ń' => 'ń',\n  'Ņ' => 'ņ',\n  'Ň' => 'ň',\n  'Ŋ' => 'ŋ',\n  'Ō' => 'ō',\n  'Ŏ' => 'ŏ',\n  'Ő' => 'ő',\n  'Œ' => 'œ',\n  'Ŕ' => 'ŕ',\n  'Ŗ' => 'ŗ',\n  'Ř' => 'ř',\n  'Ś' => 'ś',\n  'Ŝ' => 'ŝ',\n  'Ş' => 'ş',\n  'Š' => 'š',\n  'Ţ' => 'ţ',\n  'Ť' => 'ť',\n  'Ŧ' => 'ŧ',\n  'Ũ' => 'ũ',\n  'Ū' => 'ū',\n  'Ŭ' => 'ŭ',\n  'Ů' => 'ů',\n  'Ű' => 'ű',\n  'Ų' => 'ų',\n  'Ŵ' => 'ŵ',\n  'Ŷ' => 'ŷ',\n  'Ÿ' => 'ÿ',\n  'Ź' => 'ź',\n  'Ż' => 'ż',\n  'Ž' => 'ž',\n  'Ɓ' => 'ɓ',\n  'Ƃ' => 'ƃ',\n  'Ƅ' => 'ƅ',\n  'Ɔ' => 'ɔ',\n  'Ƈ' => 'ƈ',\n  'Ɖ' => 'ɖ',\n  'Ɗ' => 'ɗ',\n  'Ƌ' => 'ƌ',\n  'Ǝ' => 'ǝ',\n  'Ə' => 'ə',\n  'Ɛ' => 'ɛ',\n  'Ƒ' => 'ƒ',\n  'Ɠ' => 'ɠ',\n  'Ɣ' => 'ɣ',\n  'Ɩ' => 'ɩ',\n  'Ɨ' => 'ɨ',\n  'Ƙ' => 'ƙ',\n  'Ɯ' => 'ɯ',\n  'Ɲ' => 'ɲ',\n  'Ɵ' => 'ɵ',\n  'Ơ' => 'ơ',\n  'Ƣ' => 'ƣ',\n  'Ƥ' => 'ƥ',\n  'Ʀ' => 'ʀ',\n  'Ƨ' => 'ƨ',\n  'Ʃ' => 'ʃ',\n  'Ƭ' => 'ƭ',\n  'Ʈ' => 'ʈ',\n  'Ư' => 'ư',\n  'Ʊ' => 'ʊ',\n  'Ʋ' => 'ʋ',\n  'Ƴ' => 'ƴ',\n  'Ƶ' => 'ƶ',\n  'Ʒ' => 'ʒ',\n  'Ƹ' => 'ƹ',\n  'Ƽ' => 'ƽ',\n  'Ǆ' => 'ǆ',\n  'ǅ' => 'ǆ',\n  'Ǉ' => 'ǉ',\n  'ǈ' => 'ǉ',\n  'Ǌ' => 'ǌ',\n  'ǋ' => 'ǌ',\n  'Ǎ' => 'ǎ',\n  'Ǐ' => 'ǐ',\n  'Ǒ' => 'ǒ',\n  'Ǔ' => 'ǔ',\n  'Ǖ' => 'ǖ',\n  'Ǘ' => 'ǘ',\n  'Ǚ' => 'ǚ',\n  'Ǜ' => 'ǜ',\n  'Ǟ' => 'ǟ',\n  'Ǡ' => 'ǡ',\n  'Ǣ' => 'ǣ',\n  'Ǥ' => 'ǥ',\n  'Ǧ' => 'ǧ',\n  'Ǩ' => 'ǩ',\n  'Ǫ' => 'ǫ',\n  'Ǭ' => 'ǭ',\n  'Ǯ' => 'ǯ',\n  'Ǳ' => 'ǳ',\n  'ǲ' => 'ǳ',\n  'Ǵ' => 'ǵ',\n  'Ƕ' => 'ƕ',\n  'Ƿ' => 'ƿ',\n  'Ǹ' => 'ǹ',\n  'Ǻ' => 'ǻ',\n  'Ǽ' => 'ǽ',\n  'Ǿ' => 'ǿ',\n  'Ȁ' => 'ȁ',\n  'Ȃ' => 'ȃ',\n  'Ȅ' => 'ȅ',\n  'Ȇ' => 'ȇ',\n  'Ȉ' => 'ȉ',\n  'Ȋ' => 'ȋ',\n  'Ȍ' => 'ȍ',\n  'Ȏ' => 'ȏ',\n  'Ȑ' => 'ȑ',\n  'Ȓ' => 'ȓ',\n  'Ȕ' => 'ȕ',\n  'Ȗ' => 'ȗ',\n  'Ș' => 'ș',\n  'Ț' => 'ț',\n  'Ȝ' => 'ȝ',\n  'Ȟ' => 'ȟ',\n  'Ƞ' => 'ƞ',\n  'Ȣ' => 'ȣ',\n  'Ȥ' => 'ȥ',\n  'Ȧ' => 'ȧ',\n  'Ȩ' => 'ȩ',\n  'Ȫ' => 'ȫ',\n  'Ȭ' => 'ȭ',\n  'Ȯ' => 'ȯ',\n  'Ȱ' => 'ȱ',\n  'Ȳ' => 'ȳ',\n  'Ⱥ' => 'ⱥ',\n  'Ȼ' => 'ȼ',\n  'Ƚ' => 'ƚ',\n  'Ⱦ' => 'ⱦ',\n  'Ɂ' => 'ɂ',\n  'Ƀ' => 'ƀ',\n  'Ʉ' => 'ʉ',\n  'Ʌ' => 'ʌ',\n  'Ɇ' => 'ɇ',\n  'Ɉ' => 'ɉ',\n  'Ɋ' => 'ɋ',\n  'Ɍ' => 'ɍ',\n  'Ɏ' => 'ɏ',\n  'Ͱ' => 'ͱ',\n  'Ͳ' => 'ͳ',\n  'Ͷ' => 'ͷ',\n  'Ϳ' => 'ϳ',\n  'Ά' => 'ά',\n  'Έ' => 'έ',\n  'Ή' => 'ή',\n  'Ί' => 'ί',\n  'Ό' => 'ό',\n  'Ύ' => 'ύ',\n  'Ώ' => 'ώ',\n  'Α' => 'α',\n  'Β' => 'β',\n  'Γ' => 'γ',\n  'Δ' => 'δ',\n  'Ε' => 'ε',\n  'Ζ' => 'ζ',\n  'Η' => 'η',\n  'Θ' => 'θ',\n  'Ι' => 'ι',\n  'Κ' => 'κ',\n  'Λ' => 'λ',\n  'Μ' => 'μ',\n  'Ν' => 'ν',\n  'Ξ' => 'ξ',\n  'Ο' => 'ο',\n  'Π' => 'π',\n  'Ρ' => 'ρ',\n  'Σ' => 'σ',\n  'Τ' => 'τ',\n  'Υ' => 'υ',\n  'Φ' => 'φ',\n  'Χ' => 'χ',\n  'Ψ' => 'ψ',\n  'Ω' => 'ω',\n  'Ϊ' => 'ϊ',\n  'Ϋ' => 'ϋ',\n  'Ϗ' => 'ϗ',\n  'Ϙ' => 'ϙ',\n  'Ϛ' => 'ϛ',\n  'Ϝ' => 'ϝ',\n  'Ϟ' => 'ϟ',\n  'Ϡ' => 'ϡ',\n  'Ϣ' => 'ϣ',\n  'Ϥ' => 'ϥ',\n  'Ϧ' => 'ϧ',\n  'Ϩ' => 'ϩ',\n  'Ϫ' => 'ϫ',\n  'Ϭ' => 'ϭ',\n  'Ϯ' => 'ϯ',\n  'ϴ' => 'θ',\n  'Ϸ' => 'ϸ',\n  'Ϲ' => 'ϲ',\n  'Ϻ' => 'ϻ',\n  'Ͻ' => 'ͻ',\n  'Ͼ' => 'ͼ',\n  'Ͽ' => 'ͽ',\n  'Ѐ' => 'ѐ',\n  'Ё' => 'ё',\n  'Ђ' => 'ђ',\n  'Ѓ' => 'ѓ',\n  'Є' => 'є',\n  'Ѕ' => 'ѕ',\n  'І' => 'і',\n  'Ї' => 'ї',\n  'Ј' => 'ј',\n  'Љ' => 'љ',\n  'Њ' => 'њ',\n  'Ћ' => 'ћ',\n  'Ќ' => 'ќ',\n  'Ѝ' => 'ѝ',\n  'Ў' => 'ў',\n  'Џ' => 'џ',\n  'А' => 'а',\n  'Б' => 'б',\n  'В' => 'в',\n  'Г' => 'г',\n  'Д' => 'д',\n  'Е' => 'е',\n  'Ж' => 'ж',\n  'З' => 'з',\n  'И' => 'и',\n  'Й' => 'й',\n  'К' => 'к',\n  'Л' => 'л',\n  'М' => 'м',\n  'Н' => 'н',\n  'О' => 'о',\n  'П' => 'п',\n  'Р' => 'р',\n  'С' => 'с',\n  'Т' => 'т',\n  'У' => 'у',\n  'Ф' => 'ф',\n  'Х' => 'х',\n  'Ц' => 'ц',\n  'Ч' => 'ч',\n  'Ш' => 'ш',\n  'Щ' => 'щ',\n  'Ъ' => 'ъ',\n  'Ы' => 'ы',\n  'Ь' => 'ь',\n  'Э' => 'э',\n  'Ю' => 'ю',\n  'Я' => 'я',\n  'Ѡ' => 'ѡ',\n  'Ѣ' => 'ѣ',\n  'Ѥ' => 'ѥ',\n  'Ѧ' => 'ѧ',\n  'Ѩ' => 'ѩ',\n  'Ѫ' => 'ѫ',\n  'Ѭ' => 'ѭ',\n  'Ѯ' => 'ѯ',\n  'Ѱ' => 'ѱ',\n  'Ѳ' => 'ѳ',\n  'Ѵ' => 'ѵ',\n  'Ѷ' => 'ѷ',\n  'Ѹ' => 'ѹ',\n  'Ѻ' => 'ѻ',\n  'Ѽ' => 'ѽ',\n  'Ѿ' => 'ѿ',\n  'Ҁ' => 'ҁ',\n  'Ҋ' => 'ҋ',\n  'Ҍ' => 'ҍ',\n  'Ҏ' => 'ҏ',\n  'Ґ' => 'ґ',\n  'Ғ' => 'ғ',\n  'Ҕ' => 'ҕ',\n  'Җ' => 'җ',\n  'Ҙ' => 'ҙ',\n  'Қ' => 'қ',\n  'Ҝ' => 'ҝ',\n  'Ҟ' => 'ҟ',\n  'Ҡ' => 'ҡ',\n  'Ң' => 'ң',\n  'Ҥ' => 'ҥ',\n  'Ҧ' => 'ҧ',\n  'Ҩ' => 'ҩ',\n  'Ҫ' => 'ҫ',\n  'Ҭ' => 'ҭ',\n  'Ү' => 'ү',\n  'Ұ' => 'ұ',\n  'Ҳ' => 'ҳ',\n  'Ҵ' => 'ҵ',\n  'Ҷ' => 'ҷ',\n  'Ҹ' => 'ҹ',\n  'Һ' => 'һ',\n  'Ҽ' => 'ҽ',\n  'Ҿ' => 'ҿ',\n  'Ӏ' => 'ӏ',\n  'Ӂ' => 'ӂ',\n  'Ӄ' => 'ӄ',\n  'Ӆ' => 'ӆ',\n  'Ӈ' => 'ӈ',\n  'Ӊ' => 'ӊ',\n  'Ӌ' => 'ӌ',\n  'Ӎ' => 'ӎ',\n  'Ӑ' => 'ӑ',\n  'Ӓ' => 'ӓ',\n  'Ӕ' => 'ӕ',\n  'Ӗ' => 'ӗ',\n  'Ә' => 'ә',\n  'Ӛ' => 'ӛ',\n  'Ӝ' => 'ӝ',\n  'Ӟ' => 'ӟ',\n  'Ӡ' => 'ӡ',\n  'Ӣ' => 'ӣ',\n  'Ӥ' => 'ӥ',\n  'Ӧ' => 'ӧ',\n  'Ө' => 'ө',\n  'Ӫ' => 'ӫ',\n  'Ӭ' => 'ӭ',\n  'Ӯ' => 'ӯ',\n  'Ӱ' => 'ӱ',\n  'Ӳ' => 'ӳ',\n  'Ӵ' => 'ӵ',\n  'Ӷ' => 'ӷ',\n  'Ӹ' => 'ӹ',\n  'Ӻ' => 'ӻ',\n  'Ӽ' => 'ӽ',\n  'Ӿ' => 'ӿ',\n  'Ԁ' => 'ԁ',\n  'Ԃ' => 'ԃ',\n  'Ԅ' => 'ԅ',\n  'Ԇ' => 'ԇ',\n  'Ԉ' => 'ԉ',\n  'Ԋ' => 'ԋ',\n  'Ԍ' => 'ԍ',\n  'Ԏ' => 'ԏ',\n  'Ԑ' => 'ԑ',\n  'Ԓ' => 'ԓ',\n  'Ԕ' => 'ԕ',\n  'Ԗ' => 'ԗ',\n  'Ԙ' => 'ԙ',\n  'Ԛ' => 'ԛ',\n  'Ԝ' => 'ԝ',\n  'Ԟ' => 'ԟ',\n  'Ԡ' => 'ԡ',\n  'Ԣ' => 'ԣ',\n  'Ԥ' => 'ԥ',\n  'Ԧ' => 'ԧ',\n  'Ԩ' => 'ԩ',\n  'Ԫ' => 'ԫ',\n  'Ԭ' => 'ԭ',\n  'Ԯ' => 'ԯ',\n  'Ա' => 'ա',\n  'Բ' => 'բ',\n  'Գ' => 'գ',\n  'Դ' => 'դ',\n  'Ե' => 'ե',\n  'Զ' => 'զ',\n  'Է' => 'է',\n  'Ը' => 'ը',\n  'Թ' => 'թ',\n  'Ժ' => 'ժ',\n  'Ի' => 'ի',\n  'Լ' => 'լ',\n  'Խ' => 'խ',\n  'Ծ' => 'ծ',\n  'Կ' => 'կ',\n  'Հ' => 'հ',\n  'Ձ' => 'ձ',\n  'Ղ' => 'ղ',\n  'Ճ' => 'ճ',\n  'Մ' => 'մ',\n  'Յ' => 'յ',\n  'Ն' => 'ն',\n  'Շ' => 'շ',\n  'Ո' => 'ո',\n  'Չ' => 'չ',\n  'Պ' => 'պ',\n  'Ջ' => 'ջ',\n  'Ռ' => 'ռ',\n  'Ս' => 'ս',\n  'Վ' => 'վ',\n  'Տ' => 'տ',\n  'Ր' => 'ր',\n  'Ց' => 'ց',\n  'Ւ' => 'ւ',\n  'Փ' => 'փ',\n  'Ք' => 'ք',\n  'Օ' => 'օ',\n  'Ֆ' => 'ֆ',\n  'Ⴀ' => 'ⴀ',\n  'Ⴁ' => 'ⴁ',\n  'Ⴂ' => 'ⴂ',\n  'Ⴃ' => 'ⴃ',\n  'Ⴄ' => 'ⴄ',\n  'Ⴅ' => 'ⴅ',\n  'Ⴆ' => 'ⴆ',\n  'Ⴇ' => 'ⴇ',\n  'Ⴈ' => 'ⴈ',\n  'Ⴉ' => 'ⴉ',\n  'Ⴊ' => 'ⴊ',\n  'Ⴋ' => 'ⴋ',\n  'Ⴌ' => 'ⴌ',\n  'Ⴍ' => 'ⴍ',\n  'Ⴎ' => 'ⴎ',\n  'Ⴏ' => 'ⴏ',\n  'Ⴐ' => 'ⴐ',\n  'Ⴑ' => 'ⴑ',\n  'Ⴒ' => 'ⴒ',\n  'Ⴓ' => 'ⴓ',\n  'Ⴔ' => 'ⴔ',\n  'Ⴕ' => 'ⴕ',\n  'Ⴖ' => 'ⴖ',\n  'Ⴗ' => 'ⴗ',\n  'Ⴘ' => 'ⴘ',\n  'Ⴙ' => 'ⴙ',\n  'Ⴚ' => 'ⴚ',\n  'Ⴛ' => 'ⴛ',\n  'Ⴜ' => 'ⴜ',\n  'Ⴝ' => 'ⴝ',\n  'Ⴞ' => 'ⴞ',\n  'Ⴟ' => 'ⴟ',\n  'Ⴠ' => 'ⴠ',\n  'Ⴡ' => 'ⴡ',\n  'Ⴢ' => 'ⴢ',\n  'Ⴣ' => 'ⴣ',\n  'Ⴤ' => 'ⴤ',\n  'Ⴥ' => 'ⴥ',\n  'Ⴧ' => 'ⴧ',\n  'Ⴭ' => 'ⴭ',\n  'Ḁ' => 'ḁ',\n  'Ḃ' => 'ḃ',\n  'Ḅ' => 'ḅ',\n  'Ḇ' => 'ḇ',\n  'Ḉ' => 'ḉ',\n  'Ḋ' => 'ḋ',\n  'Ḍ' => 'ḍ',\n  'Ḏ' => 'ḏ',\n  'Ḑ' => 'ḑ',\n  'Ḓ' => 'ḓ',\n  'Ḕ' => 'ḕ',\n  'Ḗ' => 'ḗ',\n  'Ḙ' => 'ḙ',\n  'Ḛ' => 'ḛ',\n  'Ḝ' => 'ḝ',\n  'Ḟ' => 'ḟ',\n  'Ḡ' => 'ḡ',\n  'Ḣ' => 'ḣ',\n  'Ḥ' => 'ḥ',\n  'Ḧ' => 'ḧ',\n  'Ḩ' => 'ḩ',\n  'Ḫ' => 'ḫ',\n  'Ḭ' => 'ḭ',\n  'Ḯ' => 'ḯ',\n  'Ḱ' => 'ḱ',\n  'Ḳ' => 'ḳ',\n  'Ḵ' => 'ḵ',\n  'Ḷ' => 'ḷ',\n  'Ḹ' => 'ḹ',\n  'Ḻ' => 'ḻ',\n  'Ḽ' => 'ḽ',\n  'Ḿ' => 'ḿ',\n  'Ṁ' => 'ṁ',\n  'Ṃ' => 'ṃ',\n  'Ṅ' => 'ṅ',\n  'Ṇ' => 'ṇ',\n  'Ṉ' => 'ṉ',\n  'Ṋ' => 'ṋ',\n  'Ṍ' => 'ṍ',\n  'Ṏ' => 'ṏ',\n  'Ṑ' => 'ṑ',\n  'Ṓ' => 'ṓ',\n  'Ṕ' => 'ṕ',\n  'Ṗ' => 'ṗ',\n  'Ṙ' => 'ṙ',\n  'Ṛ' => 'ṛ',\n  'Ṝ' => 'ṝ',\n  'Ṟ' => 'ṟ',\n  'Ṡ' => 'ṡ',\n  'Ṣ' => 'ṣ',\n  'Ṥ' => 'ṥ',\n  'Ṧ' => 'ṧ',\n  'Ṩ' => 'ṩ',\n  'Ṫ' => 'ṫ',\n  'Ṭ' => 'ṭ',\n  'Ṯ' => 'ṯ',\n  'Ṱ' => 'ṱ',\n  'Ṳ' => 'ṳ',\n  'Ṵ' => 'ṵ',\n  'Ṷ' => 'ṷ',\n  'Ṹ' => 'ṹ',\n  'Ṻ' => 'ṻ',\n  'Ṽ' => 'ṽ',\n  'Ṿ' => 'ṿ',\n  'Ẁ' => 'ẁ',\n  'Ẃ' => 'ẃ',\n  'Ẅ' => 'ẅ',\n  'Ẇ' => 'ẇ',\n  'Ẉ' => 'ẉ',\n  'Ẋ' => 'ẋ',\n  'Ẍ' => 'ẍ',\n  'Ẏ' => 'ẏ',\n  'Ẑ' => 'ẑ',\n  'Ẓ' => 'ẓ',\n  'Ẕ' => 'ẕ',\n  'ẞ' => 'ß',\n  'Ạ' => 'ạ',\n  'Ả' => 'ả',\n  'Ấ' => 'ấ',\n  'Ầ' => 'ầ',\n  'Ẩ' => 'ẩ',\n  'Ẫ' => 'ẫ',\n  'Ậ' => 'ậ',\n  'Ắ' => 'ắ',\n  'Ằ' => 'ằ',\n  'Ẳ' => 'ẳ',\n  'Ẵ' => 'ẵ',\n  'Ặ' => 'ặ',\n  'Ẹ' => 'ẹ',\n  'Ẻ' => 'ẻ',\n  'Ẽ' => 'ẽ',\n  'Ế' => 'ế',\n  'Ề' => 'ề',\n  'Ể' => 'ể',\n  'Ễ' => 'ễ',\n  'Ệ' => 'ệ',\n  'Ỉ' => 'ỉ',\n  'Ị' => 'ị',\n  'Ọ' => 'ọ',\n  'Ỏ' => 'ỏ',\n  'Ố' => 'ố',\n  'Ồ' => 'ồ',\n  'Ổ' => 'ổ',\n  'Ỗ' => 'ỗ',\n  'Ộ' => 'ộ',\n  'Ớ' => 'ớ',\n  'Ờ' => 'ờ',\n  'Ở' => 'ở',\n  'Ỡ' => 'ỡ',\n  'Ợ' => 'ợ',\n  'Ụ' => 'ụ',\n  'Ủ' => 'ủ',\n  'Ứ' => 'ứ',\n  'Ừ' => 'ừ',\n  'Ử' => 'ử',\n  'Ữ' => 'ữ',\n  'Ự' => 'ự',\n  'Ỳ' => 'ỳ',\n  'Ỵ' => 'ỵ',\n  'Ỷ' => 'ỷ',\n  'Ỹ' => 'ỹ',\n  'Ỻ' => 'ỻ',\n  'Ỽ' => 'ỽ',\n  'Ỿ' => 'ỿ',\n  'Ἀ' => 'ἀ',\n  'Ἁ' => 'ἁ',\n  'Ἂ' => 'ἂ',\n  'Ἃ' => 'ἃ',\n  'Ἄ' => 'ἄ',\n  'Ἅ' => 'ἅ',\n  'Ἆ' => 'ἆ',\n  'Ἇ' => 'ἇ',\n  'Ἐ' => 'ἐ',\n  'Ἑ' => 'ἑ',\n  'Ἒ' => 'ἒ',\n  'Ἓ' => 'ἓ',\n  'Ἔ' => 'ἔ',\n  'Ἕ' => 'ἕ',\n  'Ἠ' => 'ἠ',\n  'Ἡ' => 'ἡ',\n  'Ἢ' => 'ἢ',\n  'Ἣ' => 'ἣ',\n  'Ἤ' => 'ἤ',\n  'Ἥ' => 'ἥ',\n  'Ἦ' => 'ἦ',\n  'Ἧ' => 'ἧ',\n  'Ἰ' => 'ἰ',\n  'Ἱ' => 'ἱ',\n  'Ἲ' => 'ἲ',\n  'Ἳ' => 'ἳ',\n  'Ἴ' => 'ἴ',\n  'Ἵ' => 'ἵ',\n  'Ἶ' => 'ἶ',\n  'Ἷ' => 'ἷ',\n  'Ὀ' => 'ὀ',\n  'Ὁ' => 'ὁ',\n  'Ὂ' => 'ὂ',\n  'Ὃ' => 'ὃ',\n  'Ὄ' => 'ὄ',\n  'Ὅ' => 'ὅ',\n  'Ὑ' => 'ὑ',\n  'Ὓ' => 'ὓ',\n  'Ὕ' => 'ὕ',\n  'Ὗ' => 'ὗ',\n  'Ὠ' => 'ὠ',\n  'Ὡ' => 'ὡ',\n  'Ὢ' => 'ὢ',\n  'Ὣ' => 'ὣ',\n  'Ὤ' => 'ὤ',\n  'Ὥ' => 'ὥ',\n  'Ὦ' => 'ὦ',\n  'Ὧ' => 'ὧ',\n  'ᾈ' => 'ᾀ',\n  'ᾉ' => 'ᾁ',\n  'ᾊ' => 'ᾂ',\n  'ᾋ' => 'ᾃ',\n  'ᾌ' => 'ᾄ',\n  'ᾍ' => 'ᾅ',\n  'ᾎ' => 'ᾆ',\n  'ᾏ' => 'ᾇ',\n  'ᾘ' => 'ᾐ',\n  'ᾙ' => 'ᾑ',\n  'ᾚ' => 'ᾒ',\n  'ᾛ' => 'ᾓ',\n  'ᾜ' => 'ᾔ',\n  'ᾝ' => 'ᾕ',\n  'ᾞ' => 'ᾖ',\n  'ᾟ' => 'ᾗ',\n  'ᾨ' => 'ᾠ',\n  'ᾩ' => 'ᾡ',\n  'ᾪ' => 'ᾢ',\n  'ᾫ' => 'ᾣ',\n  'ᾬ' => 'ᾤ',\n  'ᾭ' => 'ᾥ',\n  'ᾮ' => 'ᾦ',\n  'ᾯ' => 'ᾧ',\n  'Ᾰ' => 'ᾰ',\n  'Ᾱ' => 'ᾱ',\n  'Ὰ' => 'ὰ',\n  'Ά' => 'ά',\n  'ᾼ' => 'ᾳ',\n  'Ὲ' => 'ὲ',\n  'Έ' => 'έ',\n  'Ὴ' => 'ὴ',\n  'Ή' => 'ή',\n  'ῌ' => 'ῃ',\n  'Ῐ' => 'ῐ',\n  'Ῑ' => 'ῑ',\n  'Ὶ' => 'ὶ',\n  'Ί' => 'ί',\n  'Ῠ' => 'ῠ',\n  'Ῡ' => 'ῡ',\n  'Ὺ' => 'ὺ',\n  'Ύ' => 'ύ',\n  'Ῥ' => 'ῥ',\n  'Ὸ' => 'ὸ',\n  'Ό' => 'ό',\n  'Ὼ' => 'ὼ',\n  'Ώ' => 'ώ',\n  'ῼ' => 'ῳ',\n  'Ω' => 'ω',\n  'K' => 'k',\n  'Å' => 'å',\n  'Ⅎ' => 'ⅎ',\n  'Ⅰ' => 'ⅰ',\n  'Ⅱ' => 'ⅱ',\n  'Ⅲ' => 'ⅲ',\n  'Ⅳ' => 'ⅳ',\n  'Ⅴ' => 'ⅴ',\n  'Ⅵ' => 'ⅵ',\n  'Ⅶ' => 'ⅶ',\n  'Ⅷ' => 'ⅷ',\n  'Ⅸ' => 'ⅸ',\n  'Ⅹ' => 'ⅹ',\n  'Ⅺ' => 'ⅺ',\n  'Ⅻ' => 'ⅻ',\n  'Ⅼ' => 'ⅼ',\n  'Ⅽ' => 'ⅽ',\n  'Ⅾ' => 'ⅾ',\n  'Ⅿ' => 'ⅿ',\n  'Ↄ' => 'ↄ',\n  'Ⓐ' => 'ⓐ',\n  'Ⓑ' => 'ⓑ',\n  'Ⓒ' => 'ⓒ',\n  'Ⓓ' => 'ⓓ',\n  'Ⓔ' => 'ⓔ',\n  'Ⓕ' => 'ⓕ',\n  'Ⓖ' => 'ⓖ',\n  'Ⓗ' => 'ⓗ',\n  'Ⓘ' => 'ⓘ',\n  'Ⓙ' => 'ⓙ',\n  'Ⓚ' => 'ⓚ',\n  'Ⓛ' => 'ⓛ',\n  'Ⓜ' => 'ⓜ',\n  'Ⓝ' => 'ⓝ',\n  'Ⓞ' => 'ⓞ',\n  'Ⓟ' => 'ⓟ',\n  'Ⓠ' => 'ⓠ',\n  'Ⓡ' => 'ⓡ',\n  'Ⓢ' => 'ⓢ',\n  'Ⓣ' => 'ⓣ',\n  'Ⓤ' => 'ⓤ',\n  'Ⓥ' => 'ⓥ',\n  'Ⓦ' => 'ⓦ',\n  'Ⓧ' => 'ⓧ',\n  'Ⓨ' => 'ⓨ',\n  'Ⓩ' => 'ⓩ',\n  'Ⰰ' => 'ⰰ',\n  'Ⰱ' => 'ⰱ',\n  'Ⰲ' => 'ⰲ',\n  'Ⰳ' => 'ⰳ',\n  'Ⰴ' => 'ⰴ',\n  'Ⰵ' => 'ⰵ',\n  'Ⰶ' => 'ⰶ',\n  'Ⰷ' => 'ⰷ',\n  'Ⰸ' => 'ⰸ',\n  'Ⰹ' => 'ⰹ',\n  'Ⰺ' => 'ⰺ',\n  'Ⰻ' => 'ⰻ',\n  'Ⰼ' => 'ⰼ',\n  'Ⰽ' => 'ⰽ',\n  'Ⰾ' => 'ⰾ',\n  'Ⰿ' => 'ⰿ',\n  'Ⱀ' => 'ⱀ',\n  'Ⱁ' => 'ⱁ',\n  'Ⱂ' => 'ⱂ',\n  'Ⱃ' => 'ⱃ',\n  'Ⱄ' => 'ⱄ',\n  'Ⱅ' => 'ⱅ',\n  'Ⱆ' => 'ⱆ',\n  'Ⱇ' => 'ⱇ',\n  'Ⱈ' => 'ⱈ',\n  'Ⱉ' => 'ⱉ',\n  'Ⱊ' => 'ⱊ',\n  'Ⱋ' => 'ⱋ',\n  'Ⱌ' => 'ⱌ',\n  'Ⱍ' => 'ⱍ',\n  'Ⱎ' => 'ⱎ',\n  'Ⱏ' => 'ⱏ',\n  'Ⱐ' => 'ⱐ',\n  'Ⱑ' => 'ⱑ',\n  'Ⱒ' => 'ⱒ',\n  'Ⱓ' => 'ⱓ',\n  'Ⱔ' => 'ⱔ',\n  'Ⱕ' => 'ⱕ',\n  'Ⱖ' => 'ⱖ',\n  'Ⱗ' => 'ⱗ',\n  'Ⱘ' => 'ⱘ',\n  'Ⱙ' => 'ⱙ',\n  'Ⱚ' => 'ⱚ',\n  'Ⱛ' => 'ⱛ',\n  'Ⱜ' => 'ⱜ',\n  'Ⱝ' => 'ⱝ',\n  'Ⱞ' => 'ⱞ',\n  'Ⱡ' => 'ⱡ',\n  'Ɫ' => 'ɫ',\n  'Ᵽ' => 'ᵽ',\n  'Ɽ' => 'ɽ',\n  'Ⱨ' => 'ⱨ',\n  'Ⱪ' => 'ⱪ',\n  'Ⱬ' => 'ⱬ',\n  'Ɑ' => 'ɑ',\n  'Ɱ' => 'ɱ',\n  'Ɐ' => 'ɐ',\n  'Ɒ' => 'ɒ',\n  'Ⱳ' => 'ⱳ',\n  'Ⱶ' => 'ⱶ',\n  'Ȿ' => 'ȿ',\n  'Ɀ' => 'ɀ',\n  'Ⲁ' => 'ⲁ',\n  'Ⲃ' => 'ⲃ',\n  'Ⲅ' => 'ⲅ',\n  'Ⲇ' => 'ⲇ',\n  'Ⲉ' => 'ⲉ',\n  'Ⲋ' => 'ⲋ',\n  'Ⲍ' => 'ⲍ',\n  'Ⲏ' => 'ⲏ',\n  'Ⲑ' => 'ⲑ',\n  'Ⲓ' => 'ⲓ',\n  'Ⲕ' => 'ⲕ',\n  'Ⲗ' => 'ⲗ',\n  'Ⲙ' => 'ⲙ',\n  'Ⲛ' => 'ⲛ',\n  'Ⲝ' => 'ⲝ',\n  'Ⲟ' => 'ⲟ',\n  'Ⲡ' => 'ⲡ',\n  'Ⲣ' => 'ⲣ',\n  'Ⲥ' => 'ⲥ',\n  'Ⲧ' => 'ⲧ',\n  'Ⲩ' => 'ⲩ',\n  'Ⲫ' => 'ⲫ',\n  'Ⲭ' => 'ⲭ',\n  'Ⲯ' => 'ⲯ',\n  'Ⲱ' => 'ⲱ',\n  'Ⲳ' => 'ⲳ',\n  'Ⲵ' => 'ⲵ',\n  'Ⲷ' => 'ⲷ',\n  'Ⲹ' => 'ⲹ',\n  'Ⲻ' => 'ⲻ',\n  'Ⲽ' => 'ⲽ',\n  'Ⲿ' => 'ⲿ',\n  'Ⳁ' => 'ⳁ',\n  'Ⳃ' => 'ⳃ',\n  'Ⳅ' => 'ⳅ',\n  'Ⳇ' => 'ⳇ',\n  'Ⳉ' => 'ⳉ',\n  'Ⳋ' => 'ⳋ',\n  'Ⳍ' => 'ⳍ',\n  'Ⳏ' => 'ⳏ',\n  'Ⳑ' => 'ⳑ',\n  'Ⳓ' => 'ⳓ',\n  'Ⳕ' => 'ⳕ',\n  'Ⳗ' => 'ⳗ',\n  'Ⳙ' => 'ⳙ',\n  'Ⳛ' => 'ⳛ',\n  'Ⳝ' => 'ⳝ',\n  'Ⳟ' => 'ⳟ',\n  'Ⳡ' => 'ⳡ',\n  'Ⳣ' => 'ⳣ',\n  'Ⳬ' => 'ⳬ',\n  'Ⳮ' => 'ⳮ',\n  'Ⳳ' => 'ⳳ',\n  'Ꙁ' => 'ꙁ',\n  'Ꙃ' => 'ꙃ',\n  'Ꙅ' => 'ꙅ',\n  'Ꙇ' => 'ꙇ',\n  'Ꙉ' => 'ꙉ',\n  'Ꙋ' => 'ꙋ',\n  'Ꙍ' => 'ꙍ',\n  'Ꙏ' => 'ꙏ',\n  'Ꙑ' => 'ꙑ',\n  'Ꙓ' => 'ꙓ',\n  'Ꙕ' => 'ꙕ',\n  'Ꙗ' => 'ꙗ',\n  'Ꙙ' => 'ꙙ',\n  'Ꙛ' => 'ꙛ',\n  'Ꙝ' => 'ꙝ',\n  'Ꙟ' => 'ꙟ',\n  'Ꙡ' => 'ꙡ',\n  'Ꙣ' => 'ꙣ',\n  'Ꙥ' => 'ꙥ',\n  'Ꙧ' => 'ꙧ',\n  'Ꙩ' => 'ꙩ',\n  'Ꙫ' => 'ꙫ',\n  'Ꙭ' => 'ꙭ',\n  'Ꚁ' => 'ꚁ',\n  'Ꚃ' => 'ꚃ',\n  'Ꚅ' => 'ꚅ',\n  'Ꚇ' => 'ꚇ',\n  'Ꚉ' => 'ꚉ',\n  'Ꚋ' => 'ꚋ',\n  'Ꚍ' => 'ꚍ',\n  'Ꚏ' => 'ꚏ',\n  'Ꚑ' => 'ꚑ',\n  'Ꚓ' => 'ꚓ',\n  'Ꚕ' => 'ꚕ',\n  'Ꚗ' => 'ꚗ',\n  'Ꚙ' => 'ꚙ',\n  'Ꚛ' => 'ꚛ',\n  'Ꜣ' => 'ꜣ',\n  'Ꜥ' => 'ꜥ',\n  'Ꜧ' => 'ꜧ',\n  'Ꜩ' => 'ꜩ',\n  'Ꜫ' => 'ꜫ',\n  'Ꜭ' => 'ꜭ',\n  'Ꜯ' => 'ꜯ',\n  'Ꜳ' => 'ꜳ',\n  'Ꜵ' => 'ꜵ',\n  'Ꜷ' => 'ꜷ',\n  'Ꜹ' => 'ꜹ',\n  'Ꜻ' => 'ꜻ',\n  'Ꜽ' => 'ꜽ',\n  'Ꜿ' => 'ꜿ',\n  'Ꝁ' => 'ꝁ',\n  'Ꝃ' => 'ꝃ',\n  'Ꝅ' => 'ꝅ',\n  'Ꝇ' => 'ꝇ',\n  'Ꝉ' => 'ꝉ',\n  'Ꝋ' => 'ꝋ',\n  'Ꝍ' => 'ꝍ',\n  'Ꝏ' => 'ꝏ',\n  'Ꝑ' => 'ꝑ',\n  'Ꝓ' => 'ꝓ',\n  'Ꝕ' => 'ꝕ',\n  'Ꝗ' => 'ꝗ',\n  'Ꝙ' => 'ꝙ',\n  'Ꝛ' => 'ꝛ',\n  'Ꝝ' => 'ꝝ',\n  'Ꝟ' => 'ꝟ',\n  'Ꝡ' => 'ꝡ',\n  'Ꝣ' => 'ꝣ',\n  'Ꝥ' => 'ꝥ',\n  'Ꝧ' => 'ꝧ',\n  'Ꝩ' => 'ꝩ',\n  'Ꝫ' => 'ꝫ',\n  'Ꝭ' => 'ꝭ',\n  'Ꝯ' => 'ꝯ',\n  'Ꝺ' => 'ꝺ',\n  'Ꝼ' => 'ꝼ',\n  'Ᵹ' => 'ᵹ',\n  'Ꝿ' => 'ꝿ',\n  'Ꞁ' => 'ꞁ',\n  'Ꞃ' => 'ꞃ',\n  'Ꞅ' => 'ꞅ',\n  'Ꞇ' => 'ꞇ',\n  'Ꞌ' => 'ꞌ',\n  'Ɥ' => 'ɥ',\n  'Ꞑ' => 'ꞑ',\n  'Ꞓ' => 'ꞓ',\n  'Ꞗ' => 'ꞗ',\n  'Ꞙ' => 'ꞙ',\n  'Ꞛ' => 'ꞛ',\n  'Ꞝ' => 'ꞝ',\n  'Ꞟ' => 'ꞟ',\n  'Ꞡ' => 'ꞡ',\n  'Ꞣ' => 'ꞣ',\n  'Ꞥ' => 'ꞥ',\n  'Ꞧ' => 'ꞧ',\n  'Ꞩ' => 'ꞩ',\n  'Ɦ' => 'ɦ',\n  'Ɜ' => 'ɜ',\n  'Ɡ' => 'ɡ',\n  'Ɬ' => 'ɬ',\n  'Ʞ' => 'ʞ',\n  'Ʇ' => 'ʇ',\n  'Ａ' => 'ａ',\n  'Ｂ' => 'ｂ',\n  'Ｃ' => 'ｃ',\n  'Ｄ' => 'ｄ',\n  'Ｅ' => 'ｅ',\n  'Ｆ' => 'ｆ',\n  'Ｇ' => 'ｇ',\n  'Ｈ' => 'ｈ',\n  'Ｉ' => 'ｉ',\n  'Ｊ' => 'ｊ',\n  'Ｋ' => 'ｋ',\n  'Ｌ' => 'ｌ',\n  'Ｍ' => 'ｍ',\n  'Ｎ' => 'ｎ',\n  'Ｏ' => 'ｏ',\n  'Ｐ' => 'ｐ',\n  'Ｑ' => 'ｑ',\n  'Ｒ' => 'ｒ',\n  'Ｓ' => 'ｓ',\n  'Ｔ' => 'ｔ',\n  'Ｕ' => 'ｕ',\n  'Ｖ' => 'ｖ',\n  'Ｗ' => 'ｗ',\n  'Ｘ' => 'ｘ',\n  'Ｙ' => 'ｙ',\n  'Ｚ' => 'ｚ',\n  '𐐀' => '𐐨',\n  '𐐁' => '𐐩',\n  '𐐂' => '𐐪',\n  '𐐃' => '𐐫',\n  '𐐄' => '𐐬',\n  '𐐅' => '𐐭',\n  '𐐆' => '𐐮',\n  '𐐇' => '𐐯',\n  '𐐈' => '𐐰',\n  '𐐉' => '𐐱',\n  '𐐊' => '𐐲',\n  '𐐋' => '𐐳',\n  '𐐌' => '𐐴',\n  '𐐍' => '𐐵',\n  '𐐎' => '𐐶',\n  '𐐏' => '𐐷',\n  '𐐐' => '𐐸',\n  '𐐑' => '𐐹',\n  '𐐒' => '𐐺',\n  '𐐓' => '𐐻',\n  '𐐔' => '𐐼',\n  '𐐕' => '𐐽',\n  '𐐖' => '𐐾',\n  '𐐗' => '𐐿',\n  '𐐘' => '𐑀',\n  '𐐙' => '𐑁',\n  '𐐚' => '𐑂',\n  '𐐛' => '𐑃',\n  '𐐜' => '𐑄',\n  '𐐝' => '𐑅',\n  '𐐞' => '𐑆',\n  '𐐟' => '𐑇',\n  '𐐠' => '𐑈',\n  '𐐡' => '𐑉',\n  '𐐢' => '𐑊',\n  '𐐣' => '𐑋',\n  '𐐤' => '𐑌',\n  '𐐥' => '𐑍',\n  '𐐦' => '𐑎',\n  '𐐧' => '𐑏',\n  '𑢠' => '𑣀',\n  '𑢡' => '𑣁',\n  '𑢢' => '𑣂',\n  '𑢣' => '𑣃',\n  '𑢤' => '𑣄',\n  '𑢥' => '𑣅',\n  '𑢦' => '𑣆',\n  '𑢧' => '𑣇',\n  '𑢨' => '𑣈',\n  '𑢩' => '𑣉',\n  '𑢪' => '𑣊',\n  '𑢫' => '𑣋',\n  '𑢬' => '𑣌',\n  '𑢭' => '𑣍',\n  '𑢮' => '𑣎',\n  '𑢯' => '𑣏',\n  '𑢰' => '𑣐',\n  '𑢱' => '𑣑',\n  '𑢲' => '𑣒',\n  '𑢳' => '𑣓',\n  '𑢴' => '𑣔',\n  '𑢵' => '𑣕',\n  '𑢶' => '𑣖',\n  '𑢷' => '𑣗',\n  '𑢸' => '𑣘',\n  '𑢹' => '𑣙',\n  '𑢺' => '𑣚',\n  '𑢻' => '𑣛',\n  '𑢼' => '𑣜',\n  '𑢽' => '𑣝',\n  '𑢾' => '𑣞',\n  '𑢿' => '𑣟',\n);\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php",
    "content": "<?php\n\n// from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt\n\nreturn '/(?<![\\x{0027}\\x{002E}\\x{003A}\\x{005E}\\x{0060}\\x{00A8}\\x{00AD}\\x{00AF}\\x{00B4}\\x{00B7}\\x{00B8}\\x{02B0}-\\x{02C1}\\x{02C2}-\\x{02C5}\\x{02C6}-\\x{02D1}\\x{02D2}-\\x{02DF}\\x{02E0}-\\x{02E4}\\x{02E5}-\\x{02EB}\\x{02EC}\\x{02ED}\\x{02EE}\\x{02EF}-\\x{02FF}\\x{0300}-\\x{036F}\\x{0374}\\x{0375}\\x{037A}\\x{0384}-\\x{0385}\\x{0387}\\x{0483}-\\x{0487}\\x{0488}-\\x{0489}\\x{0559}\\x{0591}-\\x{05BD}\\x{05BF}\\x{05C1}-\\x{05C2}\\x{05C4}-\\x{05C5}\\x{05C7}\\x{05F4}\\x{0600}-\\x{0605}\\x{0610}-\\x{061A}\\x{061C}\\x{0640}\\x{064B}-\\x{065F}\\x{0670}\\x{06D6}-\\x{06DC}\\x{06DD}\\x{06DF}-\\x{06E4}\\x{06E5}-\\x{06E6}\\x{06E7}-\\x{06E8}\\x{06EA}-\\x{06ED}\\x{070F}\\x{0711}\\x{0730}-\\x{074A}\\x{07A6}-\\x{07B0}\\x{07EB}-\\x{07F3}\\x{07F4}-\\x{07F5}\\x{07FA}\\x{07FD}\\x{0816}-\\x{0819}\\x{081A}\\x{081B}-\\x{0823}\\x{0824}\\x{0825}-\\x{0827}\\x{0828}\\x{0829}-\\x{082D}\\x{0859}-\\x{085B}\\x{08D3}-\\x{08E1}\\x{08E2}\\x{08E3}-\\x{0902}\\x{093A}\\x{093C}\\x{0941}-\\x{0948}\\x{094D}\\x{0951}-\\x{0957}\\x{0962}-\\x{0963}\\x{0971}\\x{0981}\\x{09BC}\\x{09C1}-\\x{09C4}\\x{09CD}\\x{09E2}-\\x{09E3}\\x{09FE}\\x{0A01}-\\x{0A02}\\x{0A3C}\\x{0A41}-\\x{0A42}\\x{0A47}-\\x{0A48}\\x{0A4B}-\\x{0A4D}\\x{0A51}\\x{0A70}-\\x{0A71}\\x{0A75}\\x{0A81}-\\x{0A82}\\x{0ABC}\\x{0AC1}-\\x{0AC5}\\x{0AC7}-\\x{0AC8}\\x{0ACD}\\x{0AE2}-\\x{0AE3}\\x{0AFA}-\\x{0AFF}\\x{0B01}\\x{0B3C}\\x{0B3F}\\x{0B41}-\\x{0B44}\\x{0B4D}\\x{0B56}\\x{0B62}-\\x{0B63}\\x{0B82}\\x{0BC0}\\x{0BCD}\\x{0C00}\\x{0C04}\\x{0C3E}-\\x{0C40}\\x{0C46}-\\x{0C48}\\x{0C4A}-\\x{0C4D}\\x{0C55}-\\x{0C56}\\x{0C62}-\\x{0C63}\\x{0C81}\\x{0CBC}\\x{0CBF}\\x{0CC6}\\x{0CCC}-\\x{0CCD}\\x{0CE2}-\\x{0CE3}\\x{0D00}-\\x{0D01}\\x{0D3B}-\\x{0D3C}\\x{0D41}-\\x{0D44}\\x{0D4D}\\x{0D62}-\\x{0D63}\\x{0DCA}\\x{0DD2}-\\x{0DD4}\\x{0DD6}\\x{0E31}\\x{0E34}-\\x{0E3A}\\x{0E46}\\x{0E47}-\\x{0E4E}\\x{0EB1}\\x{0EB4}-\\x{0EB9}\\x{0EBB}-\\x{0EBC}\\x{0EC6}\\x{0EC8}-\\x{0ECD}\\x{0F18}-\\x{0F19}\\x{0F35}\\x{0F37}\\x{0F39}\\x{0F71}-\\x{0F7E}\\x{0F80}-\\x{0F84}\\x{0F86}-\\x{0F87}\\x{0F8D}-\\x{0F97}\\x{0F99}-\\x{0FBC}\\x{0FC6}\\x{102D}-\\x{1030}\\x{1032}-\\x{1037}\\x{1039}-\\x{103A}\\x{103D}-\\x{103E}\\x{1058}-\\x{1059}\\x{105E}-\\x{1060}\\x{1071}-\\x{1074}\\x{1082}\\x{1085}-\\x{1086}\\x{108D}\\x{109D}\\x{10FC}\\x{135D}-\\x{135F}\\x{1712}-\\x{1714}\\x{1732}-\\x{1734}\\x{1752}-\\x{1753}\\x{1772}-\\x{1773}\\x{17B4}-\\x{17B5}\\x{17B7}-\\x{17BD}\\x{17C6}\\x{17C9}-\\x{17D3}\\x{17D7}\\x{17DD}\\x{180B}-\\x{180D}\\x{180E}\\x{1843}\\x{1885}-\\x{1886}\\x{18A9}\\x{1920}-\\x{1922}\\x{1927}-\\x{1928}\\x{1932}\\x{1939}-\\x{193B}\\x{1A17}-\\x{1A18}\\x{1A1B}\\x{1A56}\\x{1A58}-\\x{1A5E}\\x{1A60}\\x{1A62}\\x{1A65}-\\x{1A6C}\\x{1A73}-\\x{1A7C}\\x{1A7F}\\x{1AA7}\\x{1AB0}-\\x{1ABD}\\x{1ABE}\\x{1B00}-\\x{1B03}\\x{1B34}\\x{1B36}-\\x{1B3A}\\x{1B3C}\\x{1B42}\\x{1B6B}-\\x{1B73}\\x{1B80}-\\x{1B81}\\x{1BA2}-\\x{1BA5}\\x{1BA8}-\\x{1BA9}\\x{1BAB}-\\x{1BAD}\\x{1BE6}\\x{1BE8}-\\x{1BE9}\\x{1BED}\\x{1BEF}-\\x{1BF1}\\x{1C2C}-\\x{1C33}\\x{1C36}-\\x{1C37}\\x{1C78}-\\x{1C7D}\\x{1CD0}-\\x{1CD2}\\x{1CD4}-\\x{1CE0}\\x{1CE2}-\\x{1CE8}\\x{1CED}\\x{1CF4}\\x{1CF8}-\\x{1CF9}\\x{1D2C}-\\x{1D6A}\\x{1D78}\\x{1D9B}-\\x{1DBF}\\x{1DC0}-\\x{1DF9}\\x{1DFB}-\\x{1DFF}\\x{1FBD}\\x{1FBF}-\\x{1FC1}\\x{1FCD}-\\x{1FCF}\\x{1FDD}-\\x{1FDF}\\x{1FED}-\\x{1FEF}\\x{1FFD}-\\x{1FFE}\\x{200B}-\\x{200F}\\x{2018}\\x{2019}\\x{2024}\\x{2027}\\x{202A}-\\x{202E}\\x{2060}-\\x{2064}\\x{2066}-\\x{206F}\\x{2071}\\x{207F}\\x{2090}-\\x{209C}\\x{20D0}-\\x{20DC}\\x{20DD}-\\x{20E0}\\x{20E1}\\x{20E2}-\\x{20E4}\\x{20E5}-\\x{20F0}\\x{2C7C}-\\x{2C7D}\\x{2CEF}-\\x{2CF1}\\x{2D6F}\\x{2D7F}\\x{2DE0}-\\x{2DFF}\\x{2E2F}\\x{3005}\\x{302A}-\\x{302D}\\x{3031}-\\x{3035}\\x{303B}\\x{3099}-\\x{309A}\\x{309B}-\\x{309C}\\x{309D}-\\x{309E}\\x{30FC}-\\x{30FE}\\x{A015}\\x{A4F8}-\\x{A4FD}\\x{A60C}\\x{A66F}\\x{A670}-\\x{A672}\\x{A674}-\\x{A67D}\\x{A67F}\\x{A69C}-\\x{A69D}\\x{A69E}-\\x{A69F}\\x{A6F0}-\\x{A6F1}\\x{A700}-\\x{A716}\\x{A717}-\\x{A71F}\\x{A720}-\\x{A721}\\x{A770}\\x{A788}\\x{A789}-\\x{A78A}\\x{A7F8}-\\x{A7F9}\\x{A802}\\x{A806}\\x{A80B}\\x{A825}-\\x{A826}\\x{A8C4}-\\x{A8C5}\\x{A8E0}-\\x{A8F1}\\x{A8FF}\\x{A926}-\\x{A92D}\\x{A947}-\\x{A951}\\x{A980}-\\x{A982}\\x{A9B3}\\x{A9B6}-\\x{A9B9}\\x{A9BC}\\x{A9CF}\\x{A9E5}\\x{A9E6}\\x{AA29}-\\x{AA2E}\\x{AA31}-\\x{AA32}\\x{AA35}-\\x{AA36}\\x{AA43}\\x{AA4C}\\x{AA70}\\x{AA7C}\\x{AAB0}\\x{AAB2}-\\x{AAB4}\\x{AAB7}-\\x{AAB8}\\x{AABE}-\\x{AABF}\\x{AAC1}\\x{AADD}\\x{AAEC}-\\x{AAED}\\x{AAF3}-\\x{AAF4}\\x{AAF6}\\x{AB5B}\\x{AB5C}-\\x{AB5F}\\x{ABE5}\\x{ABE8}\\x{ABED}\\x{FB1E}\\x{FBB2}-\\x{FBC1}\\x{FE00}-\\x{FE0F}\\x{FE13}\\x{FE20}-\\x{FE2F}\\x{FE52}\\x{FE55}\\x{FEFF}\\x{FF07}\\x{FF0E}\\x{FF1A}\\x{FF3E}\\x{FF40}\\x{FF70}\\x{FF9E}-\\x{FF9F}\\x{FFE3}\\x{FFF9}-\\x{FFFB}\\x{101FD}\\x{102E0}\\x{10376}-\\x{1037A}\\x{10A01}-\\x{10A03}\\x{10A05}-\\x{10A06}\\x{10A0C}-\\x{10A0F}\\x{10A38}-\\x{10A3A}\\x{10A3F}\\x{10AE5}-\\x{10AE6}\\x{10D24}-\\x{10D27}\\x{10F46}-\\x{10F50}\\x{11001}\\x{11038}-\\x{11046}\\x{1107F}-\\x{11081}\\x{110B3}-\\x{110B6}\\x{110B9}-\\x{110BA}\\x{110BD}\\x{110CD}\\x{11100}-\\x{11102}\\x{11127}-\\x{1112B}\\x{1112D}-\\x{11134}\\x{11173}\\x{11180}-\\x{11181}\\x{111B6}-\\x{111BE}\\x{111C9}-\\x{111CC}\\x{1122F}-\\x{11231}\\x{11234}\\x{11236}-\\x{11237}\\x{1123E}\\x{112DF}\\x{112E3}-\\x{112EA}\\x{11300}-\\x{11301}\\x{1133B}-\\x{1133C}\\x{11340}\\x{11366}-\\x{1136C}\\x{11370}-\\x{11374}\\x{11438}-\\x{1143F}\\x{11442}-\\x{11444}\\x{11446}\\x{1145E}\\x{114B3}-\\x{114B8}\\x{114BA}\\x{114BF}-\\x{114C0}\\x{114C2}-\\x{114C3}\\x{115B2}-\\x{115B5}\\x{115BC}-\\x{115BD}\\x{115BF}-\\x{115C0}\\x{115DC}-\\x{115DD}\\x{11633}-\\x{1163A}\\x{1163D}\\x{1163F}-\\x{11640}\\x{116AB}\\x{116AD}\\x{116B0}-\\x{116B5}\\x{116B7}\\x{1171D}-\\x{1171F}\\x{11722}-\\x{11725}\\x{11727}-\\x{1172B}\\x{1182F}-\\x{11837}\\x{11839}-\\x{1183A}\\x{11A01}-\\x{11A0A}\\x{11A33}-\\x{11A38}\\x{11A3B}-\\x{11A3E}\\x{11A47}\\x{11A51}-\\x{11A56}\\x{11A59}-\\x{11A5B}\\x{11A8A}-\\x{11A96}\\x{11A98}-\\x{11A99}\\x{11C30}-\\x{11C36}\\x{11C38}-\\x{11C3D}\\x{11C3F}\\x{11C92}-\\x{11CA7}\\x{11CAA}-\\x{11CB0}\\x{11CB2}-\\x{11CB3}\\x{11CB5}-\\x{11CB6}\\x{11D31}-\\x{11D36}\\x{11D3A}\\x{11D3C}-\\x{11D3D}\\x{11D3F}-\\x{11D45}\\x{11D47}\\x{11D90}-\\x{11D91}\\x{11D95}\\x{11D97}\\x{11EF3}-\\x{11EF4}\\x{16AF0}-\\x{16AF4}\\x{16B30}-\\x{16B36}\\x{16B40}-\\x{16B43}\\x{16F8F}-\\x{16F92}\\x{16F93}-\\x{16F9F}\\x{16FE0}-\\x{16FE1}\\x{1BC9D}-\\x{1BC9E}\\x{1BCA0}-\\x{1BCA3}\\x{1D167}-\\x{1D169}\\x{1D173}-\\x{1D17A}\\x{1D17B}-\\x{1D182}\\x{1D185}-\\x{1D18B}\\x{1D1AA}-\\x{1D1AD}\\x{1D242}-\\x{1D244}\\x{1DA00}-\\x{1DA36}\\x{1DA3B}-\\x{1DA6C}\\x{1DA75}\\x{1DA84}\\x{1DA9B}-\\x{1DA9F}\\x{1DAA1}-\\x{1DAAF}\\x{1E000}-\\x{1E006}\\x{1E008}-\\x{1E018}\\x{1E01B}-\\x{1E021}\\x{1E023}-\\x{1E024}\\x{1E026}-\\x{1E02A}\\x{1E8D0}-\\x{1E8D6}\\x{1E944}-\\x{1E94A}\\x{1F3FB}-\\x{1F3FF}\\x{E0001}\\x{E0020}-\\x{E007F}\\x{E0100}-\\x{E01EF}])(\\pL)(\\pL*+)/u';\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php",
    "content": "<?php\n\nreturn array(\n  'a' => 'A',\n  'b' => 'B',\n  'c' => 'C',\n  'd' => 'D',\n  'e' => 'E',\n  'f' => 'F',\n  'g' => 'G',\n  'h' => 'H',\n  'i' => 'I',\n  'j' => 'J',\n  'k' => 'K',\n  'l' => 'L',\n  'm' => 'M',\n  'n' => 'N',\n  'o' => 'O',\n  'p' => 'P',\n  'q' => 'Q',\n  'r' => 'R',\n  's' => 'S',\n  't' => 'T',\n  'u' => 'U',\n  'v' => 'V',\n  'w' => 'W',\n  'x' => 'X',\n  'y' => 'Y',\n  'z' => 'Z',\n  'µ' => 'Μ',\n  'à' => 'À',\n  'á' => 'Á',\n  'â' => 'Â',\n  'ã' => 'Ã',\n  'ä' => 'Ä',\n  'å' => 'Å',\n  'æ' => 'Æ',\n  'ç' => 'Ç',\n  'è' => 'È',\n  'é' => 'É',\n  'ê' => 'Ê',\n  'ë' => 'Ë',\n  'ì' => 'Ì',\n  'í' => 'Í',\n  'î' => 'Î',\n  'ï' => 'Ï',\n  'ð' => 'Ð',\n  'ñ' => 'Ñ',\n  'ò' => 'Ò',\n  'ó' => 'Ó',\n  'ô' => 'Ô',\n  'õ' => 'Õ',\n  'ö' => 'Ö',\n  'ø' => 'Ø',\n  'ù' => 'Ù',\n  'ú' => 'Ú',\n  'û' => 'Û',\n  'ü' => 'Ü',\n  'ý' => 'Ý',\n  'þ' => 'Þ',\n  'ÿ' => 'Ÿ',\n  'ā' => 'Ā',\n  'ă' => 'Ă',\n  'ą' => 'Ą',\n  'ć' => 'Ć',\n  'ĉ' => 'Ĉ',\n  'ċ' => 'Ċ',\n  'č' => 'Č',\n  'ď' => 'Ď',\n  'đ' => 'Đ',\n  'ē' => 'Ē',\n  'ĕ' => 'Ĕ',\n  'ė' => 'Ė',\n  'ę' => 'Ę',\n  'ě' => 'Ě',\n  'ĝ' => 'Ĝ',\n  'ğ' => 'Ğ',\n  'ġ' => 'Ġ',\n  'ģ' => 'Ģ',\n  'ĥ' => 'Ĥ',\n  'ħ' => 'Ħ',\n  'ĩ' => 'Ĩ',\n  'ī' => 'Ī',\n  'ĭ' => 'Ĭ',\n  'į' => 'Į',\n  'ı' => 'I',\n  'ĳ' => 'Ĳ',\n  'ĵ' => 'Ĵ',\n  'ķ' => 'Ķ',\n  'ĺ' => 'Ĺ',\n  'ļ' => 'Ļ',\n  'ľ' => 'Ľ',\n  'ŀ' => 'Ŀ',\n  'ł' => 'Ł',\n  'ń' => 'Ń',\n  'ņ' => 'Ņ',\n  'ň' => 'Ň',\n  'ŋ' => 'Ŋ',\n  'ō' => 'Ō',\n  'ŏ' => 'Ŏ',\n  'ő' => 'Ő',\n  'œ' => 'Œ',\n  'ŕ' => 'Ŕ',\n  'ŗ' => 'Ŗ',\n  'ř' => 'Ř',\n  'ś' => 'Ś',\n  'ŝ' => 'Ŝ',\n  'ş' => 'Ş',\n  'š' => 'Š',\n  'ţ' => 'Ţ',\n  'ť' => 'Ť',\n  'ŧ' => 'Ŧ',\n  'ũ' => 'Ũ',\n  'ū' => 'Ū',\n  'ŭ' => 'Ŭ',\n  'ů' => 'Ů',\n  'ű' => 'Ű',\n  'ų' => 'Ų',\n  'ŵ' => 'Ŵ',\n  'ŷ' => 'Ŷ',\n  'ź' => 'Ź',\n  'ż' => 'Ż',\n  'ž' => 'Ž',\n  'ſ' => 'S',\n  'ƀ' => 'Ƀ',\n  'ƃ' => 'Ƃ',\n  'ƅ' => 'Ƅ',\n  'ƈ' => 'Ƈ',\n  'ƌ' => 'Ƌ',\n  'ƒ' => 'Ƒ',\n  'ƕ' => 'Ƕ',\n  'ƙ' => 'Ƙ',\n  'ƚ' => 'Ƚ',\n  'ƞ' => 'Ƞ',\n  'ơ' => 'Ơ',\n  'ƣ' => 'Ƣ',\n  'ƥ' => 'Ƥ',\n  'ƨ' => 'Ƨ',\n  'ƭ' => 'Ƭ',\n  'ư' => 'Ư',\n  'ƴ' => 'Ƴ',\n  'ƶ' => 'Ƶ',\n  'ƹ' => 'Ƹ',\n  'ƽ' => 'Ƽ',\n  'ƿ' => 'Ƿ',\n  'ǅ' => 'Ǆ',\n  'ǆ' => 'Ǆ',\n  'ǈ' => 'Ǉ',\n  'ǉ' => 'Ǉ',\n  'ǋ' => 'Ǌ',\n  'ǌ' => 'Ǌ',\n  'ǎ' => 'Ǎ',\n  'ǐ' => 'Ǐ',\n  'ǒ' => 'Ǒ',\n  'ǔ' => 'Ǔ',\n  'ǖ' => 'Ǖ',\n  'ǘ' => 'Ǘ',\n  'ǚ' => 'Ǚ',\n  'ǜ' => 'Ǜ',\n  'ǝ' => 'Ǝ',\n  'ǟ' => 'Ǟ',\n  'ǡ' => 'Ǡ',\n  'ǣ' => 'Ǣ',\n  'ǥ' => 'Ǥ',\n  'ǧ' => 'Ǧ',\n  'ǩ' => 'Ǩ',\n  'ǫ' => 'Ǫ',\n  'ǭ' => 'Ǭ',\n  'ǯ' => 'Ǯ',\n  'ǲ' => 'Ǳ',\n  'ǳ' => 'Ǳ',\n  'ǵ' => 'Ǵ',\n  'ǹ' => 'Ǹ',\n  'ǻ' => 'Ǻ',\n  'ǽ' => 'Ǽ',\n  'ǿ' => 'Ǿ',\n  'ȁ' => 'Ȁ',\n  'ȃ' => 'Ȃ',\n  'ȅ' => 'Ȅ',\n  'ȇ' => 'Ȇ',\n  'ȉ' => 'Ȉ',\n  'ȋ' => 'Ȋ',\n  'ȍ' => 'Ȍ',\n  'ȏ' => 'Ȏ',\n  'ȑ' => 'Ȑ',\n  'ȓ' => 'Ȓ',\n  'ȕ' => 'Ȕ',\n  'ȗ' => 'Ȗ',\n  'ș' => 'Ș',\n  'ț' => 'Ț',\n  'ȝ' => 'Ȝ',\n  'ȟ' => 'Ȟ',\n  'ȣ' => 'Ȣ',\n  'ȥ' => 'Ȥ',\n  'ȧ' => 'Ȧ',\n  'ȩ' => 'Ȩ',\n  'ȫ' => 'Ȫ',\n  'ȭ' => 'Ȭ',\n  'ȯ' => 'Ȯ',\n  'ȱ' => 'Ȱ',\n  'ȳ' => 'Ȳ',\n  'ȼ' => 'Ȼ',\n  'ȿ' => 'Ȿ',\n  'ɀ' => 'Ɀ',\n  'ɂ' => 'Ɂ',\n  'ɇ' => 'Ɇ',\n  'ɉ' => 'Ɉ',\n  'ɋ' => 'Ɋ',\n  'ɍ' => 'Ɍ',\n  'ɏ' => 'Ɏ',\n  'ɐ' => 'Ɐ',\n  'ɑ' => 'Ɑ',\n  'ɒ' => 'Ɒ',\n  'ɓ' => 'Ɓ',\n  'ɔ' => 'Ɔ',\n  'ɖ' => 'Ɖ',\n  'ɗ' => 'Ɗ',\n  'ə' => 'Ə',\n  'ɛ' => 'Ɛ',\n  'ɜ' => 'Ɜ',\n  'ɠ' => 'Ɠ',\n  'ɡ' => 'Ɡ',\n  'ɣ' => 'Ɣ',\n  'ɥ' => 'Ɥ',\n  'ɦ' => 'Ɦ',\n  'ɨ' => 'Ɨ',\n  'ɩ' => 'Ɩ',\n  'ɫ' => 'Ɫ',\n  'ɬ' => 'Ɬ',\n  'ɯ' => 'Ɯ',\n  'ɱ' => 'Ɱ',\n  'ɲ' => 'Ɲ',\n  'ɵ' => 'Ɵ',\n  'ɽ' => 'Ɽ',\n  'ʀ' => 'Ʀ',\n  'ʃ' => 'Ʃ',\n  'ʇ' => 'Ʇ',\n  'ʈ' => 'Ʈ',\n  'ʉ' => 'Ʉ',\n  'ʊ' => 'Ʊ',\n  'ʋ' => 'Ʋ',\n  'ʌ' => 'Ʌ',\n  'ʒ' => 'Ʒ',\n  'ʞ' => 'Ʞ',\n  'ͅ' => 'Ι',\n  'ͱ' => 'Ͱ',\n  'ͳ' => 'Ͳ',\n  'ͷ' => 'Ͷ',\n  'ͻ' => 'Ͻ',\n  'ͼ' => 'Ͼ',\n  'ͽ' => 'Ͽ',\n  'ά' => 'Ά',\n  'έ' => 'Έ',\n  'ή' => 'Ή',\n  'ί' => 'Ί',\n  'α' => 'Α',\n  'β' => 'Β',\n  'γ' => 'Γ',\n  'δ' => 'Δ',\n  'ε' => 'Ε',\n  'ζ' => 'Ζ',\n  'η' => 'Η',\n  'θ' => 'Θ',\n  'ι' => 'Ι',\n  'κ' => 'Κ',\n  'λ' => 'Λ',\n  'μ' => 'Μ',\n  'ν' => 'Ν',\n  'ξ' => 'Ξ',\n  'ο' => 'Ο',\n  'π' => 'Π',\n  'ρ' => 'Ρ',\n  'ς' => 'Σ',\n  'σ' => 'Σ',\n  'τ' => 'Τ',\n  'υ' => 'Υ',\n  'φ' => 'Φ',\n  'χ' => 'Χ',\n  'ψ' => 'Ψ',\n  'ω' => 'Ω',\n  'ϊ' => 'Ϊ',\n  'ϋ' => 'Ϋ',\n  'ό' => 'Ό',\n  'ύ' => 'Ύ',\n  'ώ' => 'Ώ',\n  'ϐ' => 'Β',\n  'ϑ' => 'Θ',\n  'ϕ' => 'Φ',\n  'ϖ' => 'Π',\n  'ϗ' => 'Ϗ',\n  'ϙ' => 'Ϙ',\n  'ϛ' => 'Ϛ',\n  'ϝ' => 'Ϝ',\n  'ϟ' => 'Ϟ',\n  'ϡ' => 'Ϡ',\n  'ϣ' => 'Ϣ',\n  'ϥ' => 'Ϥ',\n  'ϧ' => 'Ϧ',\n  'ϩ' => 'Ϩ',\n  'ϫ' => 'Ϫ',\n  'ϭ' => 'Ϭ',\n  'ϯ' => 'Ϯ',\n  'ϰ' => 'Κ',\n  'ϱ' => 'Ρ',\n  'ϲ' => 'Ϲ',\n  'ϳ' => 'Ϳ',\n  'ϵ' => 'Ε',\n  'ϸ' => 'Ϸ',\n  'ϻ' => 'Ϻ',\n  'а' => 'А',\n  'б' => 'Б',\n  'в' => 'В',\n  'г' => 'Г',\n  'д' => 'Д',\n  'е' => 'Е',\n  'ж' => 'Ж',\n  'з' => 'З',\n  'и' => 'И',\n  'й' => 'Й',\n  'к' => 'К',\n  'л' => 'Л',\n  'м' => 'М',\n  'н' => 'Н',\n  'о' => 'О',\n  'п' => 'П',\n  'р' => 'Р',\n  'с' => 'С',\n  'т' => 'Т',\n  'у' => 'У',\n  'ф' => 'Ф',\n  'х' => 'Х',\n  'ц' => 'Ц',\n  'ч' => 'Ч',\n  'ш' => 'Ш',\n  'щ' => 'Щ',\n  'ъ' => 'Ъ',\n  'ы' => 'Ы',\n  'ь' => 'Ь',\n  'э' => 'Э',\n  'ю' => 'Ю',\n  'я' => 'Я',\n  'ѐ' => 'Ѐ',\n  'ё' => 'Ё',\n  'ђ' => 'Ђ',\n  'ѓ' => 'Ѓ',\n  'є' => 'Є',\n  'ѕ' => 'Ѕ',\n  'і' => 'І',\n  'ї' => 'Ї',\n  'ј' => 'Ј',\n  'љ' => 'Љ',\n  'њ' => 'Њ',\n  'ћ' => 'Ћ',\n  'ќ' => 'Ќ',\n  'ѝ' => 'Ѝ',\n  'ў' => 'Ў',\n  'џ' => 'Џ',\n  'ѡ' => 'Ѡ',\n  'ѣ' => 'Ѣ',\n  'ѥ' => 'Ѥ',\n  'ѧ' => 'Ѧ',\n  'ѩ' => 'Ѩ',\n  'ѫ' => 'Ѫ',\n  'ѭ' => 'Ѭ',\n  'ѯ' => 'Ѯ',\n  'ѱ' => 'Ѱ',\n  'ѳ' => 'Ѳ',\n  'ѵ' => 'Ѵ',\n  'ѷ' => 'Ѷ',\n  'ѹ' => 'Ѹ',\n  'ѻ' => 'Ѻ',\n  'ѽ' => 'Ѽ',\n  'ѿ' => 'Ѿ',\n  'ҁ' => 'Ҁ',\n  'ҋ' => 'Ҋ',\n  'ҍ' => 'Ҍ',\n  'ҏ' => 'Ҏ',\n  'ґ' => 'Ґ',\n  'ғ' => 'Ғ',\n  'ҕ' => 'Ҕ',\n  'җ' => 'Җ',\n  'ҙ' => 'Ҙ',\n  'қ' => 'Қ',\n  'ҝ' => 'Ҝ',\n  'ҟ' => 'Ҟ',\n  'ҡ' => 'Ҡ',\n  'ң' => 'Ң',\n  'ҥ' => 'Ҥ',\n  'ҧ' => 'Ҧ',\n  'ҩ' => 'Ҩ',\n  'ҫ' => 'Ҫ',\n  'ҭ' => 'Ҭ',\n  'ү' => 'Ү',\n  'ұ' => 'Ұ',\n  'ҳ' => 'Ҳ',\n  'ҵ' => 'Ҵ',\n  'ҷ' => 'Ҷ',\n  'ҹ' => 'Ҹ',\n  'һ' => 'Һ',\n  'ҽ' => 'Ҽ',\n  'ҿ' => 'Ҿ',\n  'ӂ' => 'Ӂ',\n  'ӄ' => 'Ӄ',\n  'ӆ' => 'Ӆ',\n  'ӈ' => 'Ӈ',\n  'ӊ' => 'Ӊ',\n  'ӌ' => 'Ӌ',\n  'ӎ' => 'Ӎ',\n  'ӏ' => 'Ӏ',\n  'ӑ' => 'Ӑ',\n  'ӓ' => 'Ӓ',\n  'ӕ' => 'Ӕ',\n  'ӗ' => 'Ӗ',\n  'ә' => 'Ә',\n  'ӛ' => 'Ӛ',\n  'ӝ' => 'Ӝ',\n  'ӟ' => 'Ӟ',\n  'ӡ' => 'Ӡ',\n  'ӣ' => 'Ӣ',\n  'ӥ' => 'Ӥ',\n  'ӧ' => 'Ӧ',\n  'ө' => 'Ө',\n  'ӫ' => 'Ӫ',\n  'ӭ' => 'Ӭ',\n  'ӯ' => 'Ӯ',\n  'ӱ' => 'Ӱ',\n  'ӳ' => 'Ӳ',\n  'ӵ' => 'Ӵ',\n  'ӷ' => 'Ӷ',\n  'ӹ' => 'Ӹ',\n  'ӻ' => 'Ӻ',\n  'ӽ' => 'Ӽ',\n  'ӿ' => 'Ӿ',\n  'ԁ' => 'Ԁ',\n  'ԃ' => 'Ԃ',\n  'ԅ' => 'Ԅ',\n  'ԇ' => 'Ԇ',\n  'ԉ' => 'Ԉ',\n  'ԋ' => 'Ԋ',\n  'ԍ' => 'Ԍ',\n  'ԏ' => 'Ԏ',\n  'ԑ' => 'Ԑ',\n  'ԓ' => 'Ԓ',\n  'ԕ' => 'Ԕ',\n  'ԗ' => 'Ԗ',\n  'ԙ' => 'Ԙ',\n  'ԛ' => 'Ԛ',\n  'ԝ' => 'Ԝ',\n  'ԟ' => 'Ԟ',\n  'ԡ' => 'Ԡ',\n  'ԣ' => 'Ԣ',\n  'ԥ' => 'Ԥ',\n  'ԧ' => 'Ԧ',\n  'ԩ' => 'Ԩ',\n  'ԫ' => 'Ԫ',\n  'ԭ' => 'Ԭ',\n  'ԯ' => 'Ԯ',\n  'ա' => 'Ա',\n  'բ' => 'Բ',\n  'գ' => 'Գ',\n  'դ' => 'Դ',\n  'ե' => 'Ե',\n  'զ' => 'Զ',\n  'է' => 'Է',\n  'ը' => 'Ը',\n  'թ' => 'Թ',\n  'ժ' => 'Ժ',\n  'ի' => 'Ի',\n  'լ' => 'Լ',\n  'խ' => 'Խ',\n  'ծ' => 'Ծ',\n  'կ' => 'Կ',\n  'հ' => 'Հ',\n  'ձ' => 'Ձ',\n  'ղ' => 'Ղ',\n  'ճ' => 'Ճ',\n  'մ' => 'Մ',\n  'յ' => 'Յ',\n  'ն' => 'Ն',\n  'շ' => 'Շ',\n  'ո' => 'Ո',\n  'չ' => 'Չ',\n  'պ' => 'Պ',\n  'ջ' => 'Ջ',\n  'ռ' => 'Ռ',\n  'ս' => 'Ս',\n  'վ' => 'Վ',\n  'տ' => 'Տ',\n  'ր' => 'Ր',\n  'ց' => 'Ց',\n  'ւ' => 'Ւ',\n  'փ' => 'Փ',\n  'ք' => 'Ք',\n  'օ' => 'Օ',\n  'ֆ' => 'Ֆ',\n  'ᵹ' => 'Ᵹ',\n  'ᵽ' => 'Ᵽ',\n  'ḁ' => 'Ḁ',\n  'ḃ' => 'Ḃ',\n  'ḅ' => 'Ḅ',\n  'ḇ' => 'Ḇ',\n  'ḉ' => 'Ḉ',\n  'ḋ' => 'Ḋ',\n  'ḍ' => 'Ḍ',\n  'ḏ' => 'Ḏ',\n  'ḑ' => 'Ḑ',\n  'ḓ' => 'Ḓ',\n  'ḕ' => 'Ḕ',\n  'ḗ' => 'Ḗ',\n  'ḙ' => 'Ḙ',\n  'ḛ' => 'Ḛ',\n  'ḝ' => 'Ḝ',\n  'ḟ' => 'Ḟ',\n  'ḡ' => 'Ḡ',\n  'ḣ' => 'Ḣ',\n  'ḥ' => 'Ḥ',\n  'ḧ' => 'Ḧ',\n  'ḩ' => 'Ḩ',\n  'ḫ' => 'Ḫ',\n  'ḭ' => 'Ḭ',\n  'ḯ' => 'Ḯ',\n  'ḱ' => 'Ḱ',\n  'ḳ' => 'Ḳ',\n  'ḵ' => 'Ḵ',\n  'ḷ' => 'Ḷ',\n  'ḹ' => 'Ḹ',\n  'ḻ' => 'Ḻ',\n  'ḽ' => 'Ḽ',\n  'ḿ' => 'Ḿ',\n  'ṁ' => 'Ṁ',\n  'ṃ' => 'Ṃ',\n  'ṅ' => 'Ṅ',\n  'ṇ' => 'Ṇ',\n  'ṉ' => 'Ṉ',\n  'ṋ' => 'Ṋ',\n  'ṍ' => 'Ṍ',\n  'ṏ' => 'Ṏ',\n  'ṑ' => 'Ṑ',\n  'ṓ' => 'Ṓ',\n  'ṕ' => 'Ṕ',\n  'ṗ' => 'Ṗ',\n  'ṙ' => 'Ṙ',\n  'ṛ' => 'Ṛ',\n  'ṝ' => 'Ṝ',\n  'ṟ' => 'Ṟ',\n  'ṡ' => 'Ṡ',\n  'ṣ' => 'Ṣ',\n  'ṥ' => 'Ṥ',\n  'ṧ' => 'Ṧ',\n  'ṩ' => 'Ṩ',\n  'ṫ' => 'Ṫ',\n  'ṭ' => 'Ṭ',\n  'ṯ' => 'Ṯ',\n  'ṱ' => 'Ṱ',\n  'ṳ' => 'Ṳ',\n  'ṵ' => 'Ṵ',\n  'ṷ' => 'Ṷ',\n  'ṹ' => 'Ṹ',\n  'ṻ' => 'Ṻ',\n  'ṽ' => 'Ṽ',\n  'ṿ' => 'Ṿ',\n  'ẁ' => 'Ẁ',\n  'ẃ' => 'Ẃ',\n  'ẅ' => 'Ẅ',\n  'ẇ' => 'Ẇ',\n  'ẉ' => 'Ẉ',\n  'ẋ' => 'Ẋ',\n  'ẍ' => 'Ẍ',\n  'ẏ' => 'Ẏ',\n  'ẑ' => 'Ẑ',\n  'ẓ' => 'Ẓ',\n  'ẕ' => 'Ẕ',\n  'ẛ' => 'Ṡ',\n  'ạ' => 'Ạ',\n  'ả' => 'Ả',\n  'ấ' => 'Ấ',\n  'ầ' => 'Ầ',\n  'ẩ' => 'Ẩ',\n  'ẫ' => 'Ẫ',\n  'ậ' => 'Ậ',\n  'ắ' => 'Ắ',\n  'ằ' => 'Ằ',\n  'ẳ' => 'Ẳ',\n  'ẵ' => 'Ẵ',\n  'ặ' => 'Ặ',\n  'ẹ' => 'Ẹ',\n  'ẻ' => 'Ẻ',\n  'ẽ' => 'Ẽ',\n  'ế' => 'Ế',\n  'ề' => 'Ề',\n  'ể' => 'Ể',\n  'ễ' => 'Ễ',\n  'ệ' => 'Ệ',\n  'ỉ' => 'Ỉ',\n  'ị' => 'Ị',\n  'ọ' => 'Ọ',\n  'ỏ' => 'Ỏ',\n  'ố' => 'Ố',\n  'ồ' => 'Ồ',\n  'ổ' => 'Ổ',\n  'ỗ' => 'Ỗ',\n  'ộ' => 'Ộ',\n  'ớ' => 'Ớ',\n  'ờ' => 'Ờ',\n  'ở' => 'Ở',\n  'ỡ' => 'Ỡ',\n  'ợ' => 'Ợ',\n  'ụ' => 'Ụ',\n  'ủ' => 'Ủ',\n  'ứ' => 'Ứ',\n  'ừ' => 'Ừ',\n  'ử' => 'Ử',\n  'ữ' => 'Ữ',\n  'ự' => 'Ự',\n  'ỳ' => 'Ỳ',\n  'ỵ' => 'Ỵ',\n  'ỷ' => 'Ỷ',\n  'ỹ' => 'Ỹ',\n  'ỻ' => 'Ỻ',\n  'ỽ' => 'Ỽ',\n  'ỿ' => 'Ỿ',\n  'ἀ' => 'Ἀ',\n  'ἁ' => 'Ἁ',\n  'ἂ' => 'Ἂ',\n  'ἃ' => 'Ἃ',\n  'ἄ' => 'Ἄ',\n  'ἅ' => 'Ἅ',\n  'ἆ' => 'Ἆ',\n  'ἇ' => 'Ἇ',\n  'ἐ' => 'Ἐ',\n  'ἑ' => 'Ἑ',\n  'ἒ' => 'Ἒ',\n  'ἓ' => 'Ἓ',\n  'ἔ' => 'Ἔ',\n  'ἕ' => 'Ἕ',\n  'ἠ' => 'Ἠ',\n  'ἡ' => 'Ἡ',\n  'ἢ' => 'Ἢ',\n  'ἣ' => 'Ἣ',\n  'ἤ' => 'Ἤ',\n  'ἥ' => 'Ἥ',\n  'ἦ' => 'Ἦ',\n  'ἧ' => 'Ἧ',\n  'ἰ' => 'Ἰ',\n  'ἱ' => 'Ἱ',\n  'ἲ' => 'Ἲ',\n  'ἳ' => 'Ἳ',\n  'ἴ' => 'Ἴ',\n  'ἵ' => 'Ἵ',\n  'ἶ' => 'Ἶ',\n  'ἷ' => 'Ἷ',\n  'ὀ' => 'Ὀ',\n  'ὁ' => 'Ὁ',\n  'ὂ' => 'Ὂ',\n  'ὃ' => 'Ὃ',\n  'ὄ' => 'Ὄ',\n  'ὅ' => 'Ὅ',\n  'ὑ' => 'Ὑ',\n  'ὓ' => 'Ὓ',\n  'ὕ' => 'Ὕ',\n  'ὗ' => 'Ὗ',\n  'ὠ' => 'Ὠ',\n  'ὡ' => 'Ὡ',\n  'ὢ' => 'Ὢ',\n  'ὣ' => 'Ὣ',\n  'ὤ' => 'Ὤ',\n  'ὥ' => 'Ὥ',\n  'ὦ' => 'Ὦ',\n  'ὧ' => 'Ὧ',\n  'ὰ' => 'Ὰ',\n  'ά' => 'Ά',\n  'ὲ' => 'Ὲ',\n  'έ' => 'Έ',\n  'ὴ' => 'Ὴ',\n  'ή' => 'Ή',\n  'ὶ' => 'Ὶ',\n  'ί' => 'Ί',\n  'ὸ' => 'Ὸ',\n  'ό' => 'Ό',\n  'ὺ' => 'Ὺ',\n  'ύ' => 'Ύ',\n  'ὼ' => 'Ὼ',\n  'ώ' => 'Ώ',\n  'ᾀ' => 'ᾈ',\n  'ᾁ' => 'ᾉ',\n  'ᾂ' => 'ᾊ',\n  'ᾃ' => 'ᾋ',\n  'ᾄ' => 'ᾌ',\n  'ᾅ' => 'ᾍ',\n  'ᾆ' => 'ᾎ',\n  'ᾇ' => 'ᾏ',\n  'ᾐ' => 'ᾘ',\n  'ᾑ' => 'ᾙ',\n  'ᾒ' => 'ᾚ',\n  'ᾓ' => 'ᾛ',\n  'ᾔ' => 'ᾜ',\n  'ᾕ' => 'ᾝ',\n  'ᾖ' => 'ᾞ',\n  'ᾗ' => 'ᾟ',\n  'ᾠ' => 'ᾨ',\n  'ᾡ' => 'ᾩ',\n  'ᾢ' => 'ᾪ',\n  'ᾣ' => 'ᾫ',\n  'ᾤ' => 'ᾬ',\n  'ᾥ' => 'ᾭ',\n  'ᾦ' => 'ᾮ',\n  'ᾧ' => 'ᾯ',\n  'ᾰ' => 'Ᾰ',\n  'ᾱ' => 'Ᾱ',\n  'ᾳ' => 'ᾼ',\n  'ι' => 'Ι',\n  'ῃ' => 'ῌ',\n  'ῐ' => 'Ῐ',\n  'ῑ' => 'Ῑ',\n  'ῠ' => 'Ῠ',\n  'ῡ' => 'Ῡ',\n  'ῥ' => 'Ῥ',\n  'ῳ' => 'ῼ',\n  'ⅎ' => 'Ⅎ',\n  'ⅰ' => 'Ⅰ',\n  'ⅱ' => 'Ⅱ',\n  'ⅲ' => 'Ⅲ',\n  'ⅳ' => 'Ⅳ',\n  'ⅴ' => 'Ⅴ',\n  'ⅵ' => 'Ⅵ',\n  'ⅶ' => 'Ⅶ',\n  'ⅷ' => 'Ⅷ',\n  'ⅸ' => 'Ⅸ',\n  'ⅹ' => 'Ⅹ',\n  'ⅺ' => 'Ⅺ',\n  'ⅻ' => 'Ⅻ',\n  'ⅼ' => 'Ⅼ',\n  'ⅽ' => 'Ⅽ',\n  'ⅾ' => 'Ⅾ',\n  'ⅿ' => 'Ⅿ',\n  'ↄ' => 'Ↄ',\n  'ⓐ' => 'Ⓐ',\n  'ⓑ' => 'Ⓑ',\n  'ⓒ' => 'Ⓒ',\n  'ⓓ' => 'Ⓓ',\n  'ⓔ' => 'Ⓔ',\n  'ⓕ' => 'Ⓕ',\n  'ⓖ' => 'Ⓖ',\n  'ⓗ' => 'Ⓗ',\n  'ⓘ' => 'Ⓘ',\n  'ⓙ' => 'Ⓙ',\n  'ⓚ' => 'Ⓚ',\n  'ⓛ' => 'Ⓛ',\n  'ⓜ' => 'Ⓜ',\n  'ⓝ' => 'Ⓝ',\n  'ⓞ' => 'Ⓞ',\n  'ⓟ' => 'Ⓟ',\n  'ⓠ' => 'Ⓠ',\n  'ⓡ' => 'Ⓡ',\n  'ⓢ' => 'Ⓢ',\n  'ⓣ' => 'Ⓣ',\n  'ⓤ' => 'Ⓤ',\n  'ⓥ' => 'Ⓥ',\n  'ⓦ' => 'Ⓦ',\n  'ⓧ' => 'Ⓧ',\n  'ⓨ' => 'Ⓨ',\n  'ⓩ' => 'Ⓩ',\n  'ⰰ' => 'Ⰰ',\n  'ⰱ' => 'Ⰱ',\n  'ⰲ' => 'Ⰲ',\n  'ⰳ' => 'Ⰳ',\n  'ⰴ' => 'Ⰴ',\n  'ⰵ' => 'Ⰵ',\n  'ⰶ' => 'Ⰶ',\n  'ⰷ' => 'Ⰷ',\n  'ⰸ' => 'Ⰸ',\n  'ⰹ' => 'Ⰹ',\n  'ⰺ' => 'Ⰺ',\n  'ⰻ' => 'Ⰻ',\n  'ⰼ' => 'Ⰼ',\n  'ⰽ' => 'Ⰽ',\n  'ⰾ' => 'Ⰾ',\n  'ⰿ' => 'Ⰿ',\n  'ⱀ' => 'Ⱀ',\n  'ⱁ' => 'Ⱁ',\n  'ⱂ' => 'Ⱂ',\n  'ⱃ' => 'Ⱃ',\n  'ⱄ' => 'Ⱄ',\n  'ⱅ' => 'Ⱅ',\n  'ⱆ' => 'Ⱆ',\n  'ⱇ' => 'Ⱇ',\n  'ⱈ' => 'Ⱈ',\n  'ⱉ' => 'Ⱉ',\n  'ⱊ' => 'Ⱊ',\n  'ⱋ' => 'Ⱋ',\n  'ⱌ' => 'Ⱌ',\n  'ⱍ' => 'Ⱍ',\n  'ⱎ' => 'Ⱎ',\n  'ⱏ' => 'Ⱏ',\n  'ⱐ' => 'Ⱐ',\n  'ⱑ' => 'Ⱑ',\n  'ⱒ' => 'Ⱒ',\n  'ⱓ' => 'Ⱓ',\n  'ⱔ' => 'Ⱔ',\n  'ⱕ' => 'Ⱕ',\n  'ⱖ' => 'Ⱖ',\n  'ⱗ' => 'Ⱗ',\n  'ⱘ' => 'Ⱘ',\n  'ⱙ' => 'Ⱙ',\n  'ⱚ' => 'Ⱚ',\n  'ⱛ' => 'Ⱛ',\n  'ⱜ' => 'Ⱜ',\n  'ⱝ' => 'Ⱝ',\n  'ⱞ' => 'Ⱞ',\n  'ⱡ' => 'Ⱡ',\n  'ⱥ' => 'Ⱥ',\n  'ⱦ' => 'Ⱦ',\n  'ⱨ' => 'Ⱨ',\n  'ⱪ' => 'Ⱪ',\n  'ⱬ' => 'Ⱬ',\n  'ⱳ' => 'Ⱳ',\n  'ⱶ' => 'Ⱶ',\n  'ⲁ' => 'Ⲁ',\n  'ⲃ' => 'Ⲃ',\n  'ⲅ' => 'Ⲅ',\n  'ⲇ' => 'Ⲇ',\n  'ⲉ' => 'Ⲉ',\n  'ⲋ' => 'Ⲋ',\n  'ⲍ' => 'Ⲍ',\n  'ⲏ' => 'Ⲏ',\n  'ⲑ' => 'Ⲑ',\n  'ⲓ' => 'Ⲓ',\n  'ⲕ' => 'Ⲕ',\n  'ⲗ' => 'Ⲗ',\n  'ⲙ' => 'Ⲙ',\n  'ⲛ' => 'Ⲛ',\n  'ⲝ' => 'Ⲝ',\n  'ⲟ' => 'Ⲟ',\n  'ⲡ' => 'Ⲡ',\n  'ⲣ' => 'Ⲣ',\n  'ⲥ' => 'Ⲥ',\n  'ⲧ' => 'Ⲧ',\n  'ⲩ' => 'Ⲩ',\n  'ⲫ' => 'Ⲫ',\n  'ⲭ' => 'Ⲭ',\n  'ⲯ' => 'Ⲯ',\n  'ⲱ' => 'Ⲱ',\n  'ⲳ' => 'Ⲳ',\n  'ⲵ' => 'Ⲵ',\n  'ⲷ' => 'Ⲷ',\n  'ⲹ' => 'Ⲹ',\n  'ⲻ' => 'Ⲻ',\n  'ⲽ' => 'Ⲽ',\n  'ⲿ' => 'Ⲿ',\n  'ⳁ' => 'Ⳁ',\n  'ⳃ' => 'Ⳃ',\n  'ⳅ' => 'Ⳅ',\n  'ⳇ' => 'Ⳇ',\n  'ⳉ' => 'Ⳉ',\n  'ⳋ' => 'Ⳋ',\n  'ⳍ' => 'Ⳍ',\n  'ⳏ' => 'Ⳏ',\n  'ⳑ' => 'Ⳑ',\n  'ⳓ' => 'Ⳓ',\n  'ⳕ' => 'Ⳕ',\n  'ⳗ' => 'Ⳗ',\n  'ⳙ' => 'Ⳙ',\n  'ⳛ' => 'Ⳛ',\n  'ⳝ' => 'Ⳝ',\n  'ⳟ' => 'Ⳟ',\n  'ⳡ' => 'Ⳡ',\n  'ⳣ' => 'Ⳣ',\n  'ⳬ' => 'Ⳬ',\n  'ⳮ' => 'Ⳮ',\n  'ⳳ' => 'Ⳳ',\n  'ⴀ' => 'Ⴀ',\n  'ⴁ' => 'Ⴁ',\n  'ⴂ' => 'Ⴂ',\n  'ⴃ' => 'Ⴃ',\n  'ⴄ' => 'Ⴄ',\n  'ⴅ' => 'Ⴅ',\n  'ⴆ' => 'Ⴆ',\n  'ⴇ' => 'Ⴇ',\n  'ⴈ' => 'Ⴈ',\n  'ⴉ' => 'Ⴉ',\n  'ⴊ' => 'Ⴊ',\n  'ⴋ' => 'Ⴋ',\n  'ⴌ' => 'Ⴌ',\n  'ⴍ' => 'Ⴍ',\n  'ⴎ' => 'Ⴎ',\n  'ⴏ' => 'Ⴏ',\n  'ⴐ' => 'Ⴐ',\n  'ⴑ' => 'Ⴑ',\n  'ⴒ' => 'Ⴒ',\n  'ⴓ' => 'Ⴓ',\n  'ⴔ' => 'Ⴔ',\n  'ⴕ' => 'Ⴕ',\n  'ⴖ' => 'Ⴖ',\n  'ⴗ' => 'Ⴗ',\n  'ⴘ' => 'Ⴘ',\n  'ⴙ' => 'Ⴙ',\n  'ⴚ' => 'Ⴚ',\n  'ⴛ' => 'Ⴛ',\n  'ⴜ' => 'Ⴜ',\n  'ⴝ' => 'Ⴝ',\n  'ⴞ' => 'Ⴞ',\n  'ⴟ' => 'Ⴟ',\n  'ⴠ' => 'Ⴠ',\n  'ⴡ' => 'Ⴡ',\n  'ⴢ' => 'Ⴢ',\n  'ⴣ' => 'Ⴣ',\n  'ⴤ' => 'Ⴤ',\n  'ⴥ' => 'Ⴥ',\n  'ⴧ' => 'Ⴧ',\n  'ⴭ' => 'Ⴭ',\n  'ꙁ' => 'Ꙁ',\n  'ꙃ' => 'Ꙃ',\n  'ꙅ' => 'Ꙅ',\n  'ꙇ' => 'Ꙇ',\n  'ꙉ' => 'Ꙉ',\n  'ꙋ' => 'Ꙋ',\n  'ꙍ' => 'Ꙍ',\n  'ꙏ' => 'Ꙏ',\n  'ꙑ' => 'Ꙑ',\n  'ꙓ' => 'Ꙓ',\n  'ꙕ' => 'Ꙕ',\n  'ꙗ' => 'Ꙗ',\n  'ꙙ' => 'Ꙙ',\n  'ꙛ' => 'Ꙛ',\n  'ꙝ' => 'Ꙝ',\n  'ꙟ' => 'Ꙟ',\n  'ꙡ' => 'Ꙡ',\n  'ꙣ' => 'Ꙣ',\n  'ꙥ' => 'Ꙥ',\n  'ꙧ' => 'Ꙧ',\n  'ꙩ' => 'Ꙩ',\n  'ꙫ' => 'Ꙫ',\n  'ꙭ' => 'Ꙭ',\n  'ꚁ' => 'Ꚁ',\n  'ꚃ' => 'Ꚃ',\n  'ꚅ' => 'Ꚅ',\n  'ꚇ' => 'Ꚇ',\n  'ꚉ' => 'Ꚉ',\n  'ꚋ' => 'Ꚋ',\n  'ꚍ' => 'Ꚍ',\n  'ꚏ' => 'Ꚏ',\n  'ꚑ' => 'Ꚑ',\n  'ꚓ' => 'Ꚓ',\n  'ꚕ' => 'Ꚕ',\n  'ꚗ' => 'Ꚗ',\n  'ꚙ' => 'Ꚙ',\n  'ꚛ' => 'Ꚛ',\n  'ꜣ' => 'Ꜣ',\n  'ꜥ' => 'Ꜥ',\n  'ꜧ' => 'Ꜧ',\n  'ꜩ' => 'Ꜩ',\n  'ꜫ' => 'Ꜫ',\n  'ꜭ' => 'Ꜭ',\n  'ꜯ' => 'Ꜯ',\n  'ꜳ' => 'Ꜳ',\n  'ꜵ' => 'Ꜵ',\n  'ꜷ' => 'Ꜷ',\n  'ꜹ' => 'Ꜹ',\n  'ꜻ' => 'Ꜻ',\n  'ꜽ' => 'Ꜽ',\n  'ꜿ' => 'Ꜿ',\n  'ꝁ' => 'Ꝁ',\n  'ꝃ' => 'Ꝃ',\n  'ꝅ' => 'Ꝅ',\n  'ꝇ' => 'Ꝇ',\n  'ꝉ' => 'Ꝉ',\n  'ꝋ' => 'Ꝋ',\n  'ꝍ' => 'Ꝍ',\n  'ꝏ' => 'Ꝏ',\n  'ꝑ' => 'Ꝑ',\n  'ꝓ' => 'Ꝓ',\n  'ꝕ' => 'Ꝕ',\n  'ꝗ' => 'Ꝗ',\n  'ꝙ' => 'Ꝙ',\n  'ꝛ' => 'Ꝛ',\n  'ꝝ' => 'Ꝝ',\n  'ꝟ' => 'Ꝟ',\n  'ꝡ' => 'Ꝡ',\n  'ꝣ' => 'Ꝣ',\n  'ꝥ' => 'Ꝥ',\n  'ꝧ' => 'Ꝧ',\n  'ꝩ' => 'Ꝩ',\n  'ꝫ' => 'Ꝫ',\n  'ꝭ' => 'Ꝭ',\n  'ꝯ' => 'Ꝯ',\n  'ꝺ' => 'Ꝺ',\n  'ꝼ' => 'Ꝼ',\n  'ꝿ' => 'Ꝿ',\n  'ꞁ' => 'Ꞁ',\n  'ꞃ' => 'Ꞃ',\n  'ꞅ' => 'Ꞅ',\n  'ꞇ' => 'Ꞇ',\n  'ꞌ' => 'Ꞌ',\n  'ꞑ' => 'Ꞑ',\n  'ꞓ' => 'Ꞓ',\n  'ꞗ' => 'Ꞗ',\n  'ꞙ' => 'Ꞙ',\n  'ꞛ' => 'Ꞛ',\n  'ꞝ' => 'Ꞝ',\n  'ꞟ' => 'Ꞟ',\n  'ꞡ' => 'Ꞡ',\n  'ꞣ' => 'Ꞣ',\n  'ꞥ' => 'Ꞥ',\n  'ꞧ' => 'Ꞧ',\n  'ꞩ' => 'Ꞩ',\n  'ａ' => 'Ａ',\n  'ｂ' => 'Ｂ',\n  'ｃ' => 'Ｃ',\n  'ｄ' => 'Ｄ',\n  'ｅ' => 'Ｅ',\n  'ｆ' => 'Ｆ',\n  'ｇ' => 'Ｇ',\n  'ｈ' => 'Ｈ',\n  'ｉ' => 'Ｉ',\n  'ｊ' => 'Ｊ',\n  'ｋ' => 'Ｋ',\n  'ｌ' => 'Ｌ',\n  'ｍ' => 'Ｍ',\n  'ｎ' => 'Ｎ',\n  'ｏ' => 'Ｏ',\n  'ｐ' => 'Ｐ',\n  'ｑ' => 'Ｑ',\n  'ｒ' => 'Ｒ',\n  'ｓ' => 'Ｓ',\n  'ｔ' => 'Ｔ',\n  'ｕ' => 'Ｕ',\n  'ｖ' => 'Ｖ',\n  'ｗ' => 'Ｗ',\n  'ｘ' => 'Ｘ',\n  'ｙ' => 'Ｙ',\n  'ｚ' => 'Ｚ',\n  '𐐨' => '𐐀',\n  '𐐩' => '𐐁',\n  '𐐪' => '𐐂',\n  '𐐫' => '𐐃',\n  '𐐬' => '𐐄',\n  '𐐭' => '𐐅',\n  '𐐮' => '𐐆',\n  '𐐯' => '𐐇',\n  '𐐰' => '𐐈',\n  '𐐱' => '𐐉',\n  '𐐲' => '𐐊',\n  '𐐳' => '𐐋',\n  '𐐴' => '𐐌',\n  '𐐵' => '𐐍',\n  '𐐶' => '𐐎',\n  '𐐷' => '𐐏',\n  '𐐸' => '𐐐',\n  '𐐹' => '𐐑',\n  '𐐺' => '𐐒',\n  '𐐻' => '𐐓',\n  '𐐼' => '𐐔',\n  '𐐽' => '𐐕',\n  '𐐾' => '𐐖',\n  '𐐿' => '𐐗',\n  '𐑀' => '𐐘',\n  '𐑁' => '𐐙',\n  '𐑂' => '𐐚',\n  '𐑃' => '𐐛',\n  '𐑄' => '𐐜',\n  '𐑅' => '𐐝',\n  '𐑆' => '𐐞',\n  '𐑇' => '𐐟',\n  '𐑈' => '𐐠',\n  '𐑉' => '𐐡',\n  '𐑊' => '𐐢',\n  '𐑋' => '𐐣',\n  '𐑌' => '𐐤',\n  '𐑍' => '𐐥',\n  '𐑎' => '𐐦',\n  '𐑏' => '𐐧',\n  '𑣀' => '𑢠',\n  '𑣁' => '𑢡',\n  '𑣂' => '𑢢',\n  '𑣃' => '𑢣',\n  '𑣄' => '𑢤',\n  '𑣅' => '𑢥',\n  '𑣆' => '𑢦',\n  '𑣇' => '𑢧',\n  '𑣈' => '𑢨',\n  '𑣉' => '𑢩',\n  '𑣊' => '𑢪',\n  '𑣋' => '𑢫',\n  '𑣌' => '𑢬',\n  '𑣍' => '𑢭',\n  '𑣎' => '𑢮',\n  '𑣏' => '𑢯',\n  '𑣐' => '𑢰',\n  '𑣑' => '𑢱',\n  '𑣒' => '𑢲',\n  '𑣓' => '𑢳',\n  '𑣔' => '𑢴',\n  '𑣕' => '𑢵',\n  '𑣖' => '𑢶',\n  '𑣗' => '𑢷',\n  '𑣘' => '𑢸',\n  '𑣙' => '𑢹',\n  '𑣚' => '𑢺',\n  '𑣛' => '𑢻',\n  '𑣜' => '𑢼',\n  '𑣝' => '𑢽',\n  '𑣞' => '𑢾',\n  '𑣟' => '𑢿',\n);\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Mbstring as p;\n\nif (!function_exists('mb_strlen')) {\n    define('MB_CASE_UPPER', 0);\n    define('MB_CASE_LOWER', 1);\n    define('MB_CASE_TITLE', 2);\n\n    function mb_convert_encoding($s, $to, $from = null) { return p\\Mbstring::mb_convert_encoding($s, $to, $from); }\n    function mb_decode_mimeheader($s) { return p\\Mbstring::mb_decode_mimeheader($s); }\n    function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); }\n    function mb_decode_numericentity($s, $convmap, $enc = null) { return p\\Mbstring::mb_decode_numericentity($s, $convmap, $enc); }\n    function mb_encode_numericentity($s, $convmap, $enc = null, $is_hex = false) { return p\\Mbstring::mb_encode_numericentity($s, $convmap, $enc, $is_hex); }\n    function mb_convert_case($s, $mode, $enc = null) { return p\\Mbstring::mb_convert_case($s, $mode, $enc); }\n    function mb_internal_encoding($enc = null) { return p\\Mbstring::mb_internal_encoding($enc); }\n    function mb_language($lang = null) { return p\\Mbstring::mb_language($lang); }\n    function mb_list_encodings() { return p\\Mbstring::mb_list_encodings(); }\n    function mb_encoding_aliases($encoding) { return p\\Mbstring::mb_encoding_aliases($encoding); }\n    function mb_check_encoding($var = null, $encoding = null) { return p\\Mbstring::mb_check_encoding($var, $encoding); }\n    function mb_detect_encoding($str, $encodingList = null, $strict = false) { return p\\Mbstring::mb_detect_encoding($str, $encodingList, $strict); }\n    function mb_detect_order($encodingList = null) { return p\\Mbstring::mb_detect_order($encodingList); }\n    function mb_parse_str($s, &$result = array()) { parse_str($s, $result); }\n    function mb_strlen($s, $enc = null) { return p\\Mbstring::mb_strlen($s, $enc); }\n    function mb_strpos($s, $needle, $offset = 0, $enc = null) { return p\\Mbstring::mb_strpos($s, $needle, $offset, $enc); }\n    function mb_strtolower($s, $enc = null) { return p\\Mbstring::mb_strtolower($s, $enc); }\n    function mb_strtoupper($s, $enc = null) { return p\\Mbstring::mb_strtoupper($s, $enc); }\n    function mb_substitute_character($char = null) { return p\\Mbstring::mb_substitute_character($char); }\n    function mb_substr($s, $start, $length = 2147483647, $enc = null) { return p\\Mbstring::mb_substr($s, $start, $length, $enc); }\n    function mb_stripos($s, $needle, $offset = 0, $enc = null) { return p\\Mbstring::mb_stripos($s, $needle, $offset, $enc); }\n    function mb_stristr($s, $needle, $part = false, $enc = null) { return p\\Mbstring::mb_stristr($s, $needle, $part, $enc); }\n    function mb_strrchr($s, $needle, $part = false, $enc = null) { return p\\Mbstring::mb_strrchr($s, $needle, $part, $enc); }\n    function mb_strrichr($s, $needle, $part = false, $enc = null) { return p\\Mbstring::mb_strrichr($s, $needle, $part, $enc); }\n    function mb_strripos($s, $needle, $offset = 0, $enc = null) { return p\\Mbstring::mb_strripos($s, $needle, $offset, $enc); }\n    function mb_strrpos($s, $needle, $offset = 0, $enc = null) { return p\\Mbstring::mb_strrpos($s, $needle, $offset, $enc); }\n    function mb_strstr($s, $needle, $part = false, $enc = null) { return p\\Mbstring::mb_strstr($s, $needle, $part, $enc); }\n    function mb_get_info($type = 'all') { return p\\Mbstring::mb_get_info($type); }\n    function mb_http_output($enc = null) { return p\\Mbstring::mb_http_output($enc); }\n    function mb_strwidth($s, $enc = null) { return p\\Mbstring::mb_strwidth($s, $enc); }\n    function mb_substr_count($haystack, $needle, $enc = null) { return p\\Mbstring::mb_substr_count($haystack, $needle, $enc); }\n    function mb_output_handler($contents, $status) { return p\\Mbstring::mb_output_handler($contents, $status); }\n    function mb_http_input($type = '') { return p\\Mbstring::mb_http_input($type); }\n    function mb_convert_variables($toEncoding, $fromEncoding, &$a = null, &$b = null, &$c = null, &$d = null, &$e = null, &$f = null) { return p\\Mbstring::mb_convert_variables($toEncoding, $fromEncoding, $a, $b, $c, $d, $e, $f); }\n}\nif (!function_exists('mb_chr')) {\n    function mb_ord($s, $enc = null) { return p\\Mbstring::mb_ord($s, $enc); }\n    function mb_chr($code, $enc = null) { return p\\Mbstring::mb_chr($code, $enc); }\n    function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-mbstring/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-mbstring\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill for the Mbstring extension\",\n    \"keywords\": [\"polyfill\", \"shim\", \"compatibility\", \"portable\", \"mbstring\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Mbstring\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ]\n    },\n    \"suggest\": {\n        \"ext-mbstring\": \"For best performance\"\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.11-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php72/LICENSE",
    "content": "Copyright (c) 2015-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-php72/Php72.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Polyfill\\Php72;\n\n/**\n * @author Nicolas Grekas <p@tchwork.com>\n * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>\n *\n * @internal\n */\nfinal class Php72\n{\n    private static $hashMask;\n\n    public static function utf8_encode($s)\n    {\n        $s .= $s;\n        $len = \\strlen($s);\n\n        for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {\n            switch (true) {\n                case $s[$i] < \"\\x80\": $s[$j] = $s[$i]; break;\n                case $s[$i] < \"\\xC0\": $s[$j] = \"\\xC2\"; $s[++$j] = $s[$i]; break;\n                default: $s[$j] = \"\\xC3\"; $s[++$j] = \\chr(\\ord($s[$i]) - 64); break;\n            }\n        }\n\n        return substr($s, 0, $j);\n    }\n\n    public static function utf8_decode($s)\n    {\n        $s = (string) $s;\n        $len = \\strlen($s);\n\n        for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {\n            switch ($s[$i] & \"\\xF0\") {\n                case \"\\xC0\":\n                case \"\\xD0\":\n                    $c = (\\ord($s[$i] & \"\\x1F\") << 6) | \\ord($s[++$i] & \"\\x3F\");\n                    $s[$j] = $c < 256 ? \\chr($c) : '?';\n                    break;\n\n                case \"\\xF0\":\n                    ++$i;\n                    // no break\n\n                case \"\\xE0\":\n                    $s[$j] = '?';\n                    $i += 2;\n                    break;\n\n                default:\n                    $s[$j] = $s[$i];\n            }\n        }\n\n        return substr($s, 0, $j);\n    }\n\n    public static function php_os_family()\n    {\n        if ('\\\\' === \\DIRECTORY_SEPARATOR) {\n            return 'Windows';\n        }\n\n        $map = array(\n            'Darwin' => 'Darwin',\n            'DragonFly' => 'BSD',\n            'FreeBSD' => 'BSD',\n            'NetBSD' => 'BSD',\n            'OpenBSD' => 'BSD',\n            'Linux' => 'Linux',\n            'SunOS' => 'Solaris',\n        );\n\n        return isset($map[PHP_OS]) ? $map[PHP_OS] : 'Unknown';\n    }\n\n    public static function spl_object_id($object)\n    {\n        if (null === self::$hashMask) {\n            self::initHashMask();\n        }\n        if (null === $hash = spl_object_hash($object)) {\n            return;\n        }\n\n        return self::$hashMask ^ hexdec(substr($hash, 16 - \\PHP_INT_SIZE, \\PHP_INT_SIZE));\n    }\n\n    public static function sapi_windows_vt100_support($stream, $enable = null)\n    {\n        if (!\\is_resource($stream)) {\n            trigger_error('sapi_windows_vt100_support() expects parameter 1 to be resource, '.\\gettype($stream).' given', E_USER_WARNING);\n\n            return false;\n        }\n\n        $meta = stream_get_meta_data($stream);\n\n        if ('STDIO' !== $meta['stream_type']) {\n            trigger_error('sapi_windows_vt100_support() was not able to analyze the specified stream', E_USER_WARNING);\n\n            return false;\n        }\n\n        // We cannot actually disable vt100 support if it is set\n        if (false === $enable || !self::stream_isatty($stream)) {\n            return false;\n        }\n\n        // The native function does not apply to stdin\n        $meta = array_map('strtolower', $meta);\n        $stdin = 'php://stdin' === $meta['uri'] || 'php://fd/0' === $meta['uri'];\n\n        return !$stdin\n            && (false !== getenv('ANSICON')\n            || 'ON' === getenv('ConEmuANSI')\n            || 'xterm' === getenv('TERM')\n            || 'Hyper' === getenv('TERM_PROGRAM'));\n    }\n\n    public static function stream_isatty($stream)\n    {\n        if (!\\is_resource($stream)) {\n            trigger_error('stream_isatty() expects parameter 1 to be resource, '.\\gettype($stream).' given', E_USER_WARNING);\n\n            return false;\n        }\n\n        if ('\\\\' === \\DIRECTORY_SEPARATOR) {\n            $stat = @fstat($stream);\n            // Check if formatted mode is S_IFCHR\n            return $stat ? 0020000 === ($stat['mode'] & 0170000) : false;\n        }\n\n        return \\function_exists('posix_isatty') && @posix_isatty($stream);\n    }\n\n    private static function initHashMask()\n    {\n        $obj = (object) array();\n        self::$hashMask = -1;\n\n        // check if we are nested in an output buffering handler to prevent a fatal error with ob_start() below\n        $obFuncs = array('ob_clean', 'ob_end_clean', 'ob_flush', 'ob_end_flush', 'ob_get_contents', 'ob_get_flush');\n        foreach (debug_backtrace(\\PHP_VERSION_ID >= 50400 ? DEBUG_BACKTRACE_IGNORE_ARGS : false) as $frame) {\n            if (isset($frame['function'][0]) && !isset($frame['class']) && 'o' === $frame['function'][0] && \\in_array($frame['function'], $obFuncs)) {\n                $frame['line'] = 0;\n                break;\n            }\n        }\n        if (!empty($frame['line'])) {\n            ob_start();\n            debug_zval_dump($obj);\n            self::$hashMask = (int) substr(ob_get_clean(), 17);\n        }\n\n        self::$hashMask ^= hexdec(substr(spl_object_hash($obj), 16 - \\PHP_INT_SIZE, \\PHP_INT_SIZE));\n    }\n\n    public static function mb_chr($code, $encoding = null)\n    {\n        if (0x80 > $code %= 0x200000) {\n            $s = \\chr($code);\n        } elseif (0x800 > $code) {\n            $s = \\chr(0xC0 | $code >> 6).\\chr(0x80 | $code & 0x3F);\n        } elseif (0x10000 > $code) {\n            $s = \\chr(0xE0 | $code >> 12).\\chr(0x80 | $code >> 6 & 0x3F).\\chr(0x80 | $code & 0x3F);\n        } else {\n            $s = \\chr(0xF0 | $code >> 18).\\chr(0x80 | $code >> 12 & 0x3F).\\chr(0x80 | $code >> 6 & 0x3F).\\chr(0x80 | $code & 0x3F);\n        }\n\n        if ('UTF-8' !== $encoding) {\n            $s = mb_convert_encoding($s, $encoding, 'UTF-8');\n        }\n\n        return $s;\n    }\n\n    public static function mb_ord($s, $encoding = null)\n    {\n        if (null == $encoding) {\n            $s = mb_convert_encoding($s, 'UTF-8');\n        } elseif ('UTF-8' !== $encoding) {\n            $s = mb_convert_encoding($s, 'UTF-8', $encoding);\n        }\n\n        if (1 === \\strlen($s)) {\n            return \\ord($s);\n        }\n\n        $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;\n        if (0xF0 <= $code) {\n            return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;\n        }\n        if (0xE0 <= $code) {\n            return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;\n        }\n        if (0xC0 <= $code) {\n            return (($code - 0xC0) << 6) + $s[2] - 0x80;\n        }\n\n        return $code;\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php72/README.md",
    "content": "Symfony Polyfill / Php72\n========================\n\nThis component provides functions added to PHP 7.2 core:\n\n- [`spl_object_id`](https://php.net/spl_object_id)\n- [`stream_isatty`](https://php.net/stream_isatty)\n\nOn Windows only:\n\n- [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support)\n\nMoved to core since 7.2 (was in the optional XML extension earlier):\n\n- [`utf8_encode`](https://php.net/utf8_encode)\n- [`utf8_decode`](https://php.net/utf8_decode)\n\nAlso, it provides a constant added to PHP 7.2:\n- [`PHP_OS_FAMILY`](http://php.net/manual/en/reserved.constants.php#constant.php-os-family)\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-php72/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Php72 as p;\n\nif (PHP_VERSION_ID < 70200) {\n    if ('\\\\' === DIRECTORY_SEPARATOR && !function_exists('sapi_windows_vt100_support')) {\n        function sapi_windows_vt100_support($stream, $enable = null) { return p\\Php72::sapi_windows_vt100_support($stream, $enable); }\n    }\n    if (!function_exists('stream_isatty')) {\n        function stream_isatty($stream) { return p\\Php72::stream_isatty($stream); }\n    }\n    if (!function_exists('utf8_encode')) {\n        function utf8_encode($s) { return p\\Php72::utf8_encode($s); }\n        function utf8_decode($s) { return p\\Php72::utf8_decode($s); }\n    }\n    if (!function_exists('spl_object_id')) {\n        function spl_object_id($s) { return p\\Php72::spl_object_id($s); }\n    }\n    if (!defined('PHP_OS_FAMILY')) {\n        define('PHP_OS_FAMILY', p\\Php72::php_os_family());\n    }\n    if (!function_exists('mb_chr')) {\n        function mb_ord($s, $enc = null) { return p\\Php72::mb_ord($s, $enc); }\n        function mb_chr($code, $enc = null) { return p\\Php72::mb_chr($code, $enc); }\n        function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php72/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-php72\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions\",\n    \"keywords\": [\"polyfill\", \"shim\", \"compatibility\", \"portable\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Php72\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ]\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.11-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/Php73.php",
    "content": "<?php\n\nnamespace Symfony\\Polyfill\\Php73;\n\n/**\n * @author Gabriel Caruso <carusogabriel34@gmail.com>\n * @author Ion Bazan <ion.bazan@gmail.com>\n *\n * @internal\n */\nfinal class Php73\n{\n    public static $startAt = 1533462603;\n\n    /**\n     * @param bool $asNum\n     *\n     * @return array|float|int\n     */\n    public static function hrtime($asNum = false)\n    {\n        $ns = \\microtime(false);\n        $s = \\substr($ns, 11) - self::$startAt;\n        $ns = 1E9 * (float) $ns;\n\n        if ($asNum) {\n            $ns += $s * 1E9;\n\n            return \\PHP_INT_SIZE === 4 ? $ns : (int) $ns;\n        }\n\n        return array($s, (int) $ns);\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/README.md",
    "content": "Symfony Polyfill / Php73\n========================\n\nThis component provides functions added to PHP 7.3 core:\n\n- [`array_key_first`](https://php.net/array_key_first)\n- [`array_key_last`](https://php.net/array_key_last)\n- [`hrtime`](https://php.net/function.hrtime)\n- [`is_countable`](https://php.net/is_countable)\n- [`JsonException`](https://php.net/JsonException)\n\nMore information can be found in the\n[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).\n\nLicense\n=======\n\nThis library is released under the [MIT license](LICENSE).\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/Resources/stubs/JsonException.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nclass JsonException extends Exception\n{\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/bootstrap.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nuse Symfony\\Polyfill\\Php73 as p;\n\nif (PHP_VERSION_ID < 70300) {\n    if (!function_exists('is_countable')) {\n        function is_countable($var) { return is_array($var) || $var instanceof Countable || $var instanceof ResourceBundle || $var instanceof SimpleXmlElement; }\n    }\n\n    if (!function_exists('hrtime')) {\n        p\\Php73::$startAt = (int) microtime(true);\n        function hrtime($asNum = false) { return p\\Php73::hrtime($asNum); }\n    }\n\n    if (!function_exists('array_key_first')) {\n        function array_key_first(array $array) { foreach ($array as $key => $value) { return $key; } }\n    }\n\n    if (!function_exists('array_key_last')) {\n        function array_key_last(array $array) { end($array); return key($array); }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/polyfill-php73/composer.json",
    "content": "{\n    \"name\": \"symfony/polyfill-php73\",\n    \"type\": \"library\",\n    \"description\": \"Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions\",\n    \"keywords\": [\"polyfill\", \"shim\", \"compatibility\", \"portable\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \">=5.3.3\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Polyfill\\\\Php73\\\\\": \"\" },\n        \"files\": [ \"bootstrap.php\" ],\n        \"classmap\": [ \"Resources/stubs\" ]\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.11-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/service-contracts/README.md",
    "content": "Symfony Service Contracts\n=========================\n\nA set of abstractions extracted out of the Symfony components.\n\nCan be used to build on semantics that the Symfony components proved useful - and\nthat already have battle tested implementations.\n\nSee https://github.com/symfony/contracts/blob/master/README.md for more information.\n"
  },
  {
    "path": "vendor/symfony/service-contracts/ResetInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service;\n\n/**\n * Provides a way to reset an object to its initial state.\n *\n * When calling the \"reset()\" method on an object, it should be put back to its\n * initial state. This usually means clearing any internal buffers and forwarding\n * the call to internal dependencies. All properties of the object should be put\n * back to the same state it had when it was first ready to use.\n *\n * This method could be called, for example, to recycle objects that are used as\n * services, so that they can be used to handle several requests in the same\n * process loop (note that we advise making your services stateless instead of\n * implementing this interface when possible.)\n */\ninterface ResetInterface\n{\n    public function reset();\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/ServiceLocatorTrait.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service;\n\nuse Psr\\Container\\ContainerExceptionInterface;\nuse Psr\\Container\\NotFoundExceptionInterface;\n\n/**\n * A trait to help implement ServiceProviderInterface.\n *\n * @author Robin Chalas <robin.chalas@gmail.com>\n * @author Nicolas Grekas <p@tchwork.com>\n */\ntrait ServiceLocatorTrait\n{\n    private $factories;\n    private $loading = [];\n    private $providedTypes;\n\n    /**\n     * @param callable[] $factories\n     */\n    public function __construct(array $factories)\n    {\n        $this->factories = $factories;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function has($id)\n    {\n        return isset($this->factories[$id]);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function get($id)\n    {\n        if (!isset($this->factories[$id])) {\n            throw $this->createNotFoundException($id);\n        }\n\n        if (isset($this->loading[$id])) {\n            $ids = array_values($this->loading);\n            $ids = \\array_slice($this->loading, array_search($id, $ids));\n            $ids[] = $id;\n\n            throw $this->createCircularReferenceException($id, $ids);\n        }\n\n        $this->loading[$id] = $id;\n        try {\n            return $this->factories[$id]($this);\n        } finally {\n            unset($this->loading[$id]);\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getProvidedServices(): array\n    {\n        if (null === $this->providedTypes) {\n            $this->providedTypes = [];\n\n            foreach ($this->factories as $name => $factory) {\n                if (!\\is_callable($factory)) {\n                    $this->providedTypes[$name] = '?';\n                } else {\n                    $type = (new \\ReflectionFunction($factory))->getReturnType();\n\n                    $this->providedTypes[$name] = $type ? ($type->allowsNull() ? '?' : '').$type->getName() : '?';\n                }\n            }\n        }\n\n        return $this->providedTypes;\n    }\n\n    private function createNotFoundException(string $id): NotFoundExceptionInterface\n    {\n        if (!$alternatives = array_keys($this->factories)) {\n            $message = 'is empty...';\n        } else {\n            $last = array_pop($alternatives);\n            if ($alternatives) {\n                $message = sprintf('only knows about the \"%s\" and \"%s\" services.', implode('\", \"', $alternatives), $last);\n            } else {\n                $message = sprintf('only knows about the \"%s\" service.', $last);\n            }\n        }\n\n        if ($this->loading) {\n            $message = sprintf('The service \"%s\" has a dependency on a non-existent service \"%s\". This locator %s', end($this->loading), $id, $message);\n        } else {\n            $message = sprintf('Service \"%s\" not found: the current service locator %s', $id, $message);\n        }\n\n        return new class($message) extends \\InvalidArgumentException implements NotFoundExceptionInterface {\n        };\n    }\n\n    private function createCircularReferenceException(string $id, array $path): ContainerExceptionInterface\n    {\n        return new class(sprintf('Circular reference detected for service \"%s\", path: \"%s\".', $id, implode(' -> ', $path))) extends \\RuntimeException implements ContainerExceptionInterface {\n        };\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/ServiceProviderInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service;\n\nuse Psr\\Container\\ContainerInterface;\n\n/**\n * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container.\n *\n * @author Nicolas Grekas <p@tchwork.com>\n * @author Mateusz Sip <mateusz.sip@gmail.com>\n */\ninterface ServiceProviderInterface extends ContainerInterface\n{\n    /**\n     * Returns an associative array of service types keyed by the identifiers provided by the current container.\n     *\n     * Examples:\n     *\n     *  * ['logger' => 'Psr\\Log\\LoggerInterface'] means the object provides a service named \"logger\" that implements Psr\\Log\\LoggerInterface\n     *  * ['foo' => '?'] means the container provides service name \"foo\" of unspecified type\n     *  * ['bar' => '?Bar\\Baz'] means the container provides a service \"bar\" of type Bar\\Baz|null\n     *\n     * @return string[] The provided service types, keyed by service names\n     */\n    public function getProvidedServices(): array;\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/ServiceSubscriberInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service;\n\n/**\n * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method.\n *\n * The getSubscribedServices method returns an array of service types required by such instances,\n * optionally keyed by the service names used internally. Service types that start with an interrogation\n * mark \"?\" are optional, while the other ones are mandatory service dependencies.\n *\n * The injected service locators SHOULD NOT allow access to any other services not specified by the method.\n *\n * It is expected that ServiceSubscriber instances consume PSR-11-based service locators internally.\n * This interface does not dictate any injection method for these service locators, although constructor\n * injection is recommended.\n *\n * @author Nicolas Grekas <p@tchwork.com>\n */\ninterface ServiceSubscriberInterface\n{\n    /**\n     * Returns an array of service types required by such instances, optionally keyed by the service names used internally.\n     *\n     * For mandatory dependencies:\n     *\n     *  * ['logger' => 'Psr\\Log\\LoggerInterface'] means the objects use the \"logger\" name\n     *    internally to fetch a service which must implement Psr\\Log\\LoggerInterface.\n     *  * ['loggers' => 'Psr\\Log\\LoggerInterface[]'] means the objects use the \"loggers\" name\n     *    internally to fetch an iterable of Psr\\Log\\LoggerInterface instances.\n     *  * ['Psr\\Log\\LoggerInterface'] is a shortcut for\n     *  * ['Psr\\Log\\LoggerInterface' => 'Psr\\Log\\LoggerInterface']\n     *\n     * otherwise:\n     *\n     *  * ['logger' => '?Psr\\Log\\LoggerInterface'] denotes an optional dependency\n     *  * ['loggers' => '?Psr\\Log\\LoggerInterface[]'] denotes an optional iterable dependency\n     *  * ['?Psr\\Log\\LoggerInterface'] is a shortcut for\n     *  * ['Psr\\Log\\LoggerInterface' => '?Psr\\Log\\LoggerInterface']\n     *\n     * @return array The required service types, optionally keyed by service names\n     */\n    public static function getSubscribedServices();\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/ServiceSubscriberTrait.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service;\n\nuse Psr\\Container\\ContainerInterface;\n\n/**\n * Implementation of ServiceSubscriberInterface that determines subscribed services from\n * private method return types. Service ids are available as \"ClassName::methodName\".\n *\n * @author Kevin Bond <kevinbond@gmail.com>\n */\ntrait ServiceSubscriberTrait\n{\n    /** @var ContainerInterface */\n    private $container;\n\n    public static function getSubscribedServices(): array\n    {\n        static $services;\n\n        if (null !== $services) {\n            return $services;\n        }\n\n        $services = \\is_callable(['parent', __FUNCTION__]) ? parent::getSubscribedServices() : [];\n\n        foreach ((new \\ReflectionClass(self::class))->getMethods() as $method) {\n            if ($method->isStatic() || $method->isAbstract() || $method->isGenerator() || $method->isInternal() || $method->getNumberOfRequiredParameters()) {\n                continue;\n            }\n\n            if (self::class === $method->getDeclaringClass()->name && ($returnType = $method->getReturnType()) && !$returnType->isBuiltin()) {\n                $services[self::class.'::'.$method->name] = '?'.$returnType->getName();\n            }\n        }\n\n        return $services;\n    }\n\n    /**\n     * @required\n     */\n    public function setContainer(ContainerInterface $container)\n    {\n        $this->container = $container;\n\n        if (\\is_callable(['parent', __FUNCTION__])) {\n            return parent::setContainer($container);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/Test/ServiceLocatorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Service\\Test;\n\nuse PHPUnit\\Framework\\TestCase;\nuse Psr\\Container\\ContainerInterface;\nuse Symfony\\Contracts\\Service\\ServiceLocatorTrait;\n\nclass ServiceLocatorTest extends TestCase\n{\n    public function getServiceLocator(array $factories)\n    {\n        return new class($factories) implements ContainerInterface {\n            use ServiceLocatorTrait;\n        };\n    }\n\n    public function testHas()\n    {\n        $locator = $this->getServiceLocator([\n            'foo' => function () { return 'bar'; },\n            'bar' => function () { return 'baz'; },\n            function () { return 'dummy'; },\n        ]);\n\n        $this->assertTrue($locator->has('foo'));\n        $this->assertTrue($locator->has('bar'));\n        $this->assertFalse($locator->has('dummy'));\n    }\n\n    public function testGet()\n    {\n        $locator = $this->getServiceLocator([\n            'foo' => function () { return 'bar'; },\n            'bar' => function () { return 'baz'; },\n        ]);\n\n        $this->assertSame('bar', $locator->get('foo'));\n        $this->assertSame('baz', $locator->get('bar'));\n    }\n\n    public function testGetDoesNotMemoize()\n    {\n        $i = 0;\n        $locator = $this->getServiceLocator([\n            'foo' => function () use (&$i) {\n                ++$i;\n\n                return 'bar';\n            },\n        ]);\n\n        $this->assertSame('bar', $locator->get('foo'));\n        $this->assertSame('bar', $locator->get('foo'));\n        $this->assertSame(2, $i);\n    }\n\n    /**\n     * @expectedException        \\Psr\\Container\\NotFoundExceptionInterface\n     * @expectedExceptionMessage The service \"foo\" has a dependency on a non-existent service \"bar\". This locator only knows about the \"foo\" service.\n     */\n    public function testThrowsOnUndefinedInternalService()\n    {\n        $locator = $this->getServiceLocator([\n            'foo' => function () use (&$locator) { return $locator->get('bar'); },\n        ]);\n\n        $locator->get('foo');\n    }\n\n    /**\n     * @expectedException        \\Psr\\Container\\ContainerExceptionInterface\n     * @expectedExceptionMessage Circular reference detected for service \"bar\", path: \"bar -> baz -> bar\".\n     */\n    public function testThrowsOnCircularReference()\n    {\n        $locator = $this->getServiceLocator([\n            'foo' => function () use (&$locator) { return $locator->get('bar'); },\n            'bar' => function () use (&$locator) { return $locator->get('baz'); },\n            'baz' => function () use (&$locator) { return $locator->get('bar'); },\n        ]);\n\n        $locator->get('foo');\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/service-contracts/composer.json",
    "content": "{\n    \"name\": \"symfony/service-contracts\",\n    \"type\": \"library\",\n    \"description\": \"Generic abstractions related to writing services\",\n    \"keywords\": [\"abstractions\", \"contracts\", \"decoupling\", \"interfaces\", \"interoperability\", \"standards\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\",\n        \"psr/container\": \"^1.0\"\n    },\n    \"suggest\": {\n        \"symfony/service-implementation\": \"\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Contracts\\\\Service\\\\\": \"\" }\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.1-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/LICENSE",
    "content": "Copyright (c) 2018-2019 Fabien Potencier\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/LocaleAwareInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Translation;\n\ninterface LocaleAwareInterface\n{\n    /**\n     * Sets the current locale.\n     *\n     * @param string $locale The locale\n     *\n     * @throws \\InvalidArgumentException If the locale contains invalid characters\n     */\n    public function setLocale($locale);\n\n    /**\n     * Returns the current locale.\n     *\n     * @return string The locale\n     */\n    public function getLocale();\n}\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/README.md",
    "content": "Symfony Translation Contracts\n=============================\n\nA set of abstractions extracted out of the Symfony components.\n\nCan be used to build on semantics that the Symfony components proved useful - and\nthat already have battle tested implementations.\n\nSee https://github.com/symfony/contracts/blob/master/README.md for more information.\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/Test/TranslatorTest.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Translation\\Test;\n\nuse PHPUnit\\Framework\\TestCase;\nuse Symfony\\Contracts\\Translation\\TranslatorInterface;\nuse Symfony\\Contracts\\Translation\\TranslatorTrait;\n\n/**\n * Test should cover all languages mentioned on http://translate.sourceforge.net/wiki/l10n/pluralforms\n * and Plural forms mentioned on http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms.\n *\n * See also https://developer.mozilla.org/en/Localization_and_Plurals which mentions 15 rules having a maximum of 6 forms.\n * The mozilla code is also interesting to check for.\n *\n * As mentioned by chx http://drupal.org/node/1273968 we can cover all by testing number from 0 to 199\n *\n * The goal to cover all languages is to far fetched so this test case is smaller.\n *\n * @author Clemens Tolboom clemens@build2be.nl\n */\nclass TranslatorTest extends TestCase\n{\n    public function getTranslator()\n    {\n        return new class() implements TranslatorInterface {\n            use TranslatorTrait;\n        };\n    }\n\n    /**\n     * @dataProvider getTransTests\n     */\n    public function testTrans($expected, $id, $parameters)\n    {\n        $translator = $this->getTranslator();\n\n        $this->assertEquals($expected, $translator->trans($id, $parameters));\n    }\n\n    /**\n     * @dataProvider getTransChoiceTests\n     */\n    public function testTransChoiceWithExplicitLocale($expected, $id, $number)\n    {\n        $translator = $this->getTranslator();\n        $translator->setLocale('en');\n\n        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));\n    }\n\n    /**\n     * @dataProvider getTransChoiceTests\n     */\n    public function testTransChoiceWithDefaultLocale($expected, $id, $number)\n    {\n        \\Locale::setDefault('en');\n\n        $translator = $this->getTranslator();\n\n        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));\n    }\n\n    public function testGetSetLocale()\n    {\n        $translator = $this->getTranslator();\n        $translator->setLocale('en');\n\n        $this->assertEquals('en', $translator->getLocale());\n    }\n\n    /**\n     * @requires extension intl\n     */\n    public function testGetLocaleReturnsDefaultLocaleIfNotSet()\n    {\n        $translator = $this->getTranslator();\n\n        \\Locale::setDefault('pt_BR');\n        $this->assertEquals('pt_BR', $translator->getLocale());\n\n        \\Locale::setDefault('en');\n        $this->assertEquals('en', $translator->getLocale());\n    }\n\n    public function getTransTests()\n    {\n        return [\n            ['Symfony is great!', 'Symfony is great!', []],\n            ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']],\n        ];\n    }\n\n    public function getTransChoiceTests()\n    {\n        return [\n            ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],\n            ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1],\n            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10],\n            ['There are 0 apples', 'There is 1 apple|There are %count% apples', 0],\n            ['There is 1 apple', 'There is 1 apple|There are %count% apples', 1],\n            ['There are 10 apples', 'There is 1 apple|There are %count% apples', 10],\n            // custom validation messages may be coded with a fixed value\n            ['There are 2 apples', 'There are 2 apples', 2],\n        ];\n    }\n\n    /**\n     * @dataProvider getInternal\n     */\n    public function testInterval($expected, $number, $interval)\n    {\n        $translator = $this->getTranslator();\n\n        $this->assertEquals($expected, $translator->trans($interval.' foo|[1,Inf[ bar', ['%count%' => $number]));\n    }\n\n    public function getInternal()\n    {\n        return [\n            ['foo', 3, '{1,2, 3 ,4}'],\n            ['bar', 10, '{1,2, 3 ,4}'],\n            ['bar', 3, '[1,2]'],\n            ['foo', 1, '[1,2]'],\n            ['foo', 2, '[1,2]'],\n            ['bar', 1, ']1,2['],\n            ['bar', 2, ']1,2['],\n            ['foo', log(0), '[-Inf,2['],\n            ['foo', -log(0), '[-2,+Inf]'],\n        ];\n    }\n\n    /**\n     * @dataProvider getChooseTests\n     */\n    public function testChoose($expected, $id, $number)\n    {\n        $translator = $this->getTranslator();\n\n        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));\n    }\n\n    public function testReturnMessageIfExactlyOneStandardRuleIsGiven()\n    {\n        $translator = $this->getTranslator();\n\n        $this->assertEquals('There are two apples', $translator->trans('There are two apples', ['%count%' => 2]));\n    }\n\n    /**\n     * @dataProvider getNonMatchingMessages\n     * @expectedException \\InvalidArgumentException\n     */\n    public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number)\n    {\n        $translator = $this->getTranslator();\n\n        $translator->trans($id, ['%count%' => $number]);\n    }\n\n    public function getNonMatchingMessages()\n    {\n        return [\n            ['{0} There are no apples|{1} There is one apple', 2],\n            ['{1} There is one apple|]1,Inf] There are %count% apples', 0],\n            ['{1} There is one apple|]2,Inf] There are %count% apples', 2],\n            ['{0} There are no apples|There is one apple', 2],\n        ];\n    }\n\n    public function getChooseTests()\n    {\n        return [\n            ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],\n            ['There are no apples', '{0}     There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],\n            ['There are no apples', '{0}There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],\n\n            ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1],\n\n            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10],\n            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]There are %count% apples', 10],\n            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]     There are %count% apples', 10],\n\n            ['There are 0 apples', 'There is one apple|There are %count% apples', 0],\n            ['There is one apple', 'There is one apple|There are %count% apples', 1],\n            ['There are 10 apples', 'There is one apple|There are %count% apples', 10],\n\n            ['There are 0 apples', 'one: There is one apple|more: There are %count% apples', 0],\n            ['There is one apple', 'one: There is one apple|more: There are %count% apples', 1],\n            ['There are 10 apples', 'one: There is one apple|more: There are %count% apples', 10],\n\n            ['There are no apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 0],\n            ['There is one apple', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 1],\n            ['There are 10 apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 10],\n\n            ['', '{0}|{1} There is one apple|]1,Inf] There are %count% apples', 0],\n            ['', '{0} There are no apples|{1}|]1,Inf] There are %count% apples', 1],\n\n            // Indexed only tests which are Gettext PoFile* compatible strings.\n            ['There are 0 apples', 'There is one apple|There are %count% apples', 0],\n            ['There is one apple', 'There is one apple|There are %count% apples', 1],\n            ['There are 2 apples', 'There is one apple|There are %count% apples', 2],\n\n            // Tests for float numbers\n            ['There is almost one apple', '{0} There are no apples|]0,1[ There is almost one apple|{1} There is one apple|[1,Inf] There is more than one apple', 0.7],\n            ['There is one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1],\n            ['There is more than one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1.7],\n            ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0],\n            ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0.0],\n            ['There are no apples', '{0.0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0],\n\n            // Test texts with new-lines\n            // with double-quotes and \\n in id & double-quotes and actual newlines in text\n            [\"This is a text with a\\n            new-line in it. Selector = 0.\", '{0}This is a text with a\n            new-line in it. Selector = 0.|{1}This is a text with a\n            new-line in it. Selector = 1.|[1,Inf]This is a text with a\n            new-line in it. Selector > 1.', 0],\n            // with double-quotes and \\n in id and single-quotes and actual newlines in text\n            [\"This is a text with a\\n            new-line in it. Selector = 1.\", '{0}This is a text with a\n            new-line in it. Selector = 0.|{1}This is a text with a\n            new-line in it. Selector = 1.|[1,Inf]This is a text with a\n            new-line in it. Selector > 1.', 1],\n            [\"This is a text with a\\n            new-line in it. Selector > 1.\", '{0}This is a text with a\n            new-line in it. Selector = 0.|{1}This is a text with a\n            new-line in it. Selector = 1.|[1,Inf]This is a text with a\n            new-line in it. Selector > 1.', 5],\n            // with double-quotes and id split accros lines\n            ['This is a text with a\n            new-line in it. Selector = 1.', '{0}This is a text with a\n            new-line in it. Selector = 0.|{1}This is a text with a\n            new-line in it. Selector = 1.|[1,Inf]This is a text with a\n            new-line in it. Selector > 1.', 1],\n            // with single-quotes and id split accros lines\n            ['This is a text with a\n            new-line in it. Selector > 1.', '{0}This is a text with a\n            new-line in it. Selector = 0.|{1}This is a text with a\n            new-line in it. Selector = 1.|[1,Inf]This is a text with a\n            new-line in it. Selector > 1.', 5],\n            // with single-quotes and \\n in text\n            ['This is a text with a\\nnew-line in it. Selector = 0.', '{0}This is a text with a\\nnew-line in it. Selector = 0.|{1}This is a text with a\\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\\nnew-line in it. Selector > 1.', 0],\n            // with double-quotes and id split accros lines\n            [\"This is a text with a\\nnew-line in it. Selector = 1.\", \"{0}This is a text with a\\nnew-line in it. Selector = 0.|{1}This is a text with a\\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\\nnew-line in it. Selector > 1.\", 1],\n            // esacape pipe\n            ['This is a text with | in it. Selector = 0.', '{0}This is a text with || in it. Selector = 0.|{1}This is a text with || in it. Selector = 1.', 0],\n            // Empty plural set (2 plural forms) from a .PO file\n            ['', '|', 1],\n            // Empty plural set (3 plural forms) from a .PO file\n            ['', '||', 1],\n        ];\n    }\n\n    /**\n     * @dataProvider failingLangcodes\n     */\n    public function testFailedLangcodes($nplural, $langCodes)\n    {\n        $matrix = $this->generateTestData($langCodes);\n        $this->validateMatrix($nplural, $matrix, false);\n    }\n\n    /**\n     * @dataProvider successLangcodes\n     */\n    public function testLangcodes($nplural, $langCodes)\n    {\n        $matrix = $this->generateTestData($langCodes);\n        $this->validateMatrix($nplural, $matrix);\n    }\n\n    /**\n     * This array should contain all currently known langcodes.\n     *\n     * As it is impossible to have this ever complete we should try as hard as possible to have it almost complete.\n     *\n     * @return array\n     */\n    public function successLangcodes()\n    {\n        return [\n            ['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']],\n            ['2', ['nl', 'fr', 'en', 'de', 'de_GE', 'hy', 'hy_AM']],\n            ['3', ['be', 'bs', 'cs', 'hr']],\n            ['4', ['cy', 'mt', 'sl']],\n            ['6', ['ar']],\n        ];\n    }\n\n    /**\n     * This array should be at least empty within the near future.\n     *\n     * This both depends on a complete list trying to add above as understanding\n     * the plural rules of the current failing languages.\n     *\n     * @return array with nplural together with langcodes\n     */\n    public function failingLangcodes()\n    {\n        return [\n            ['1', ['fa']],\n            ['2', ['jbo']],\n            ['3', ['cbs']],\n            ['4', ['gd', 'kw']],\n            ['5', ['ga']],\n        ];\n    }\n\n    /**\n     * We validate only on the plural coverage. Thus the real rules is not tested.\n     *\n     * @param string $nplural       Plural expected\n     * @param array  $matrix        Containing langcodes and their plural index values\n     * @param bool   $expectSuccess\n     */\n    protected function validateMatrix($nplural, $matrix, $expectSuccess = true)\n    {\n        foreach ($matrix as $langCode => $data) {\n            $indexes = array_flip($data);\n            if ($expectSuccess) {\n                $this->assertEquals($nplural, \\count($indexes), \"Langcode '$langCode' has '$nplural' plural forms.\");\n            } else {\n                $this->assertNotEquals((int) $nplural, \\count($indexes), \"Langcode '$langCode' has '$nplural' plural forms.\");\n            }\n        }\n    }\n\n    protected function generateTestData($langCodes)\n    {\n        $translator = new class() {\n            use TranslatorTrait {\n                getPluralizationRule as public;\n            }\n        };\n\n        $matrix = [];\n        foreach ($langCodes as $langCode) {\n            for ($count = 0; $count < 200; ++$count) {\n                $plural = $translator->getPluralizationRule($count, $langCode);\n                $matrix[$langCode][$count] = $plural;\n            }\n        }\n\n        return $matrix;\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/TranslatorInterface.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Translation;\n\n/**\n * @author Fabien Potencier <fabien@symfony.com>\n */\ninterface TranslatorInterface\n{\n    /**\n     * Translates the given message.\n     *\n     * When a number is provided as a parameter named \"%count%\", the message is parsed for plural\n     * forms and a translation is chosen according to this number using the following rules:\n     *\n     * Given a message with different plural translations separated by a\n     * pipe (|), this method returns the correct portion of the message based\n     * on the given number, locale and the pluralization rules in the message\n     * itself.\n     *\n     * The message supports two different types of pluralization rules:\n     *\n     * interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples\n     * indexed:  There is one apple|There are %count% apples\n     *\n     * The indexed solution can also contain labels (e.g. one: There is one apple).\n     * This is purely for making the translations more clear - it does not\n     * affect the functionality.\n     *\n     * The two methods can also be mixed:\n     *     {0} There are no apples|one: There is one apple|more: There are %count% apples\n     *\n     * An interval can represent a finite set of numbers:\n     *  {1,2,3,4}\n     *\n     * An interval can represent numbers between two numbers:\n     *  [1, +Inf]\n     *  ]-1,2[\n     *\n     * The left delimiter can be [ (inclusive) or ] (exclusive).\n     * The right delimiter can be [ (exclusive) or ] (inclusive).\n     * Beside numbers, you can use -Inf and +Inf for the infinite.\n     *\n     * @see https://en.wikipedia.org/wiki/ISO_31-11\n     *\n     * @param string      $id         The message id (may also be an object that can be cast to string)\n     * @param array       $parameters An array of parameters for the message\n     * @param string|null $domain     The domain for the message or null to use the default\n     * @param string|null $locale     The locale or null to use the default\n     *\n     * @return string The translated string\n     *\n     * @throws \\InvalidArgumentException If the locale contains invalid characters\n     */\n    public function trans($id, array $parameters = [], $domain = null, $locale = null);\n}\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/TranslatorTrait.php",
    "content": "<?php\n\n/*\n * This file is part of the Symfony package.\n *\n * (c) Fabien Potencier <fabien@symfony.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Symfony\\Contracts\\Translation;\n\nuse Symfony\\Component\\Translation\\Exception\\InvalidArgumentException;\n\n/**\n * A trait to help implement TranslatorInterface and LocaleAwareInterface.\n *\n * @author Fabien Potencier <fabien@symfony.com>\n */\ntrait TranslatorTrait\n{\n    private $locale;\n\n    /**\n     * {@inheritdoc}\n     */\n    public function setLocale($locale)\n    {\n        $this->locale = (string) $locale;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function getLocale()\n    {\n        return $this->locale ?: \\Locale::getDefault();\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function trans($id, array $parameters = [], $domain = null, $locale = null)\n    {\n        $id = (string) $id;\n\n        if (!isset($parameters['%count%']) || !is_numeric($parameters['%count%'])) {\n            return strtr($id, $parameters);\n        }\n\n        $number = (float) $parameters['%count%'];\n        $locale = (string) $locale ?: $this->getLocale();\n\n        $parts = [];\n        if (preg_match('/^\\|++$/', $id)) {\n            $parts = explode('|', $id);\n        } elseif (preg_match_all('/(?:\\|\\||[^\\|])++/', $id, $matches)) {\n            $parts = $matches[0];\n        }\n\n        $intervalRegexp = <<<'EOF'\n/^(?P<interval>\n    ({\\s*\n        (\\-?\\d+(\\.\\d+)?[\\s*,\\s*\\-?\\d+(\\.\\d+)?]*)\n    \\s*})\n\n        |\n\n    (?P<left_delimiter>[\\[\\]])\n        \\s*\n        (?P<left>-Inf|\\-?\\d+(\\.\\d+)?)\n        \\s*,\\s*\n        (?P<right>\\+?Inf|\\-?\\d+(\\.\\d+)?)\n        \\s*\n    (?P<right_delimiter>[\\[\\]])\n)\\s*(?P<message>.*?)$/xs\nEOF;\n\n        $standardRules = [];\n        foreach ($parts as $part) {\n            $part = trim(str_replace('||', '|', $part));\n\n            // try to match an explicit rule, then fallback to the standard ones\n            if (preg_match($intervalRegexp, $part, $matches)) {\n                if ($matches[2]) {\n                    foreach (explode(',', $matches[3]) as $n) {\n                        if ($number == $n) {\n                            return strtr($matches['message'], $parameters);\n                        }\n                    }\n                } else {\n                    $leftNumber = '-Inf' === $matches['left'] ? -INF : (float) $matches['left'];\n                    $rightNumber = is_numeric($matches['right']) ? (float) $matches['right'] : INF;\n\n                    if (('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber)\n                        && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber)\n                    ) {\n                        return strtr($matches['message'], $parameters);\n                    }\n                }\n            } elseif (preg_match('/^\\w+\\:\\s*(.*?)$/', $part, $matches)) {\n                $standardRules[] = $matches[1];\n            } else {\n                $standardRules[] = $part;\n            }\n        }\n\n        $position = $this->getPluralizationRule($number, $locale);\n\n        if (!isset($standardRules[$position])) {\n            // when there's exactly one rule given, and that rule is a standard\n            // rule, use this rule\n            if (1 === \\count($parts) && isset($standardRules[0])) {\n                return strtr($standardRules[0], $parameters);\n            }\n\n            $message = sprintf('Unable to choose a translation for \"%s\" with locale \"%s\" for value \"%d\". Double check that this translation has the correct plural options (e.g. \"There is one apple|There are %%count%% apples\").', $id, $locale, $number);\n\n            if (class_exists(InvalidArgumentException::class)) {\n                throw new InvalidArgumentException($message);\n            }\n\n            throw new \\InvalidArgumentException($message);\n        }\n\n        return strtr($standardRules[$position], $parameters);\n    }\n\n    /**\n     * Returns the plural position to use for the given locale and number.\n     *\n     * The plural rules are derived from code of the Zend Framework (2010-09-25),\n     * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).\n     * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n     */\n    private function getPluralizationRule(int $number, string $locale): int\n    {\n        switch ('pt_BR' !== $locale && \\strlen($locale) > 3 ? substr($locale, 0, strrpos($locale, '_')) : $locale) {\n            case 'af':\n            case 'bn':\n            case 'bg':\n            case 'ca':\n            case 'da':\n            case 'de':\n            case 'el':\n            case 'en':\n            case 'eo':\n            case 'es':\n            case 'et':\n            case 'eu':\n            case 'fa':\n            case 'fi':\n            case 'fo':\n            case 'fur':\n            case 'fy':\n            case 'gl':\n            case 'gu':\n            case 'ha':\n            case 'he':\n            case 'hu':\n            case 'is':\n            case 'it':\n            case 'ku':\n            case 'lb':\n            case 'ml':\n            case 'mn':\n            case 'mr':\n            case 'nah':\n            case 'nb':\n            case 'ne':\n            case 'nl':\n            case 'nn':\n            case 'no':\n            case 'oc':\n            case 'om':\n            case 'or':\n            case 'pa':\n            case 'pap':\n            case 'ps':\n            case 'pt':\n            case 'so':\n            case 'sq':\n            case 'sv':\n            case 'sw':\n            case 'ta':\n            case 'te':\n            case 'tk':\n            case 'ur':\n            case 'zu':\n                return (1 == $number) ? 0 : 1;\n\n            case 'am':\n            case 'bh':\n            case 'fil':\n            case 'fr':\n            case 'gun':\n            case 'hi':\n            case 'hy':\n            case 'ln':\n            case 'mg':\n            case 'nso':\n            case 'pt_BR':\n            case 'ti':\n            case 'wa':\n                return ((0 == $number) || (1 == $number)) ? 0 : 1;\n\n            case 'be':\n            case 'bs':\n            case 'hr':\n            case 'ru':\n            case 'sh':\n            case 'sr':\n            case 'uk':\n                return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n\n            case 'cs':\n            case 'sk':\n                return (1 == $number) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);\n\n            case 'ga':\n                return (1 == $number) ? 0 : ((2 == $number) ? 1 : 2);\n\n            case 'lt':\n                return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);\n\n            case 'sl':\n                return (1 == $number % 100) ? 0 : ((2 == $number % 100) ? 1 : (((3 == $number % 100) || (4 == $number % 100)) ? 2 : 3));\n\n            case 'mk':\n                return (1 == $number % 10) ? 0 : 1;\n\n            case 'mt':\n                return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));\n\n            case 'lv':\n                return (0 == $number) ? 0 : (((1 == $number % 10) && (11 != $number % 100)) ? 1 : 2);\n\n            case 'pl':\n                return (1 == $number) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2);\n\n            case 'cy':\n                return (1 == $number) ? 0 : ((2 == $number) ? 1 : (((8 == $number) || (11 == $number)) ? 2 : 3));\n\n            case 'ro':\n                return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);\n\n            case 'ar':\n                return (0 == $number) ? 0 : ((1 == $number) ? 1 : ((2 == $number) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5))));\n\n            default:\n                return 0;\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/symfony/translation-contracts/composer.json",
    "content": "{\n    \"name\": \"symfony/translation-contracts\",\n    \"type\": \"library\",\n    \"description\": \"Generic abstractions related to translation\",\n    \"keywords\": [\"abstractions\", \"contracts\", \"decoupling\", \"interfaces\", \"interoperability\", \"standards\"],\n    \"homepage\": \"https://symfony.com\",\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Nicolas Grekas\",\n            \"email\": \"p@tchwork.com\"\n        },\n        {\n            \"name\": \"Symfony Community\",\n            \"homepage\": \"https://symfony.com/contributors\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^7.1.3\"\n    },\n    \"suggest\": {\n        \"symfony/translation-implementation\": \"\"\n    },\n    \"autoload\": {\n        \"psr-4\": { \"Symfony\\\\Contracts\\\\Translation\\\\\": \"\" }\n    },\n    \"minimum-stability\": \"dev\",\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.1-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/LICENSE.md",
    "content": "Copyright (c) Tijs Verkoyen. All rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n   list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright notice,\n   this list of conditions and the following disclaimer in the documentation\n   and/or other materials provided with the distribution.\n3. Neither the name of the copyright holder nor the names of its contributors\n   may be used to endorse or promote products derived from this software\n   without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/composer.json",
    "content": "{\n  \"name\": \"tijsverkoyen/css-to-inline-styles\",\n  \"type\": \"library\",\n  \"description\": \"CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.\",\n  \"homepage\": \"https://github.com/tijsverkoyen/CssToInlineStyles\",\n  \"license\": \"BSD-3-Clause\",\n  \"authors\": [\n    {\n      \"name\": \"Tijs Verkoyen\",\n      \"email\": \"css_to_inline_styles@verkoyen.eu\",\n      \"role\": \"Developer\"\n    }\n  ],\n  \"require\": {\n    \"php\": \"^5.5 || ^7.0\",\n    \"symfony/css-selector\": \"^2.7 || ^3.0 || ^4.0\"\n  },\n  \"require-dev\": {\n    \"phpunit/phpunit\": \"^4.8.35 || ^5.7 || ^6.0\"\n  },\n  \"autoload\": {\n    \"psr-4\": {\n      \"TijsVerkoyen\\\\CssToInlineStyles\\\\\": \"src\"\n    }\n  },\n  \"extra\": {\n    \"branch-alias\": {\n      \"dev-master\": \"2.2.x-dev\"\n    }\n  }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/phpunit.xml.dist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit backupGlobals=\"false\"\n         backupStaticAttributes=\"false\"\n         bootstrap=\"vendor/autoload.php\"\n         colors=\"true\"\n         convertErrorsToExceptions=\"true\"\n         convertNoticesToExceptions=\"true\"\n         convertWarningsToExceptions=\"true\"\n         processIsolation=\"false\"\n         stopOnFailure=\"false\"\n         syntaxCheck=\"false\"\n>\n    <testsuites>\n        <testsuite name=\"CssToInlineStyles Tests\">\n            <directory suffix=\".php\">./tests/</directory>\n        </testsuite>\n    </testsuites>\n</phpunit>\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/Css/Processor.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles\\Css;\n\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor as RuleProcessor;\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule;\n\nclass Processor\n{\n    /**\n     * Get the rules from a given CSS-string\n     *\n     * @param string $css\n     * @param array  $existingRules\n     * @return Rule[]\n     */\n    public function getRules($css, $existingRules = array())\n    {\n        $css = $this->doCleanup($css);\n        $rulesProcessor = new RuleProcessor();\n        $rules = $rulesProcessor->splitIntoSeparateRules($css);\n\n        return $rulesProcessor->convertArrayToObjects($rules, $existingRules);\n    }\n\n    /**\n     * Get the CSS from the style-tags in the given HTML-string\n     *\n     * @param string $html\n     * @return string\n     */\n    public function getCssFromStyleTags($html)\n    {\n        $css = '';\n        $matches = array();\n        $htmlNoComments = preg_replace('|<!--.*?-->|s', '', $html);\n        preg_match_all('|<style(?:\\s.*)?>(.*)</style>|isU', $htmlNoComments, $matches);\n\n        if (!empty($matches[1])) {\n            foreach ($matches[1] as $match) {\n                $css .= trim($match) . \"\\n\";\n            }\n        }\n\n        return $css;\n    }\n\n    /**\n     * @param string $css\n     * @return string\n     */\n    private function doCleanup($css)\n    {\n        // remove charset\n        $css = preg_replace('/@charset \"[^\"]++\";/', '', $css);\n        // remove media queries\n        $css = preg_replace('/@media [^{]*+{([^{}]++|{[^{}]*+})*+}/', '', $css);\n\n        $css = str_replace(array(\"\\r\", \"\\n\"), '', $css);\n        $css = str_replace(array(\"\\t\"), ' ', $css);\n        $css = str_replace('\"', '\\'', $css);\n        $css = preg_replace('|/\\*.*?\\*/|', '', $css);\n        $css = preg_replace('/\\s\\s++/', ' ', $css);\n        $css = trim($css);\n\n        return $css;\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Processor.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles\\Css\\Property;\n\nuse Symfony\\Component\\CssSelector\\Node\\Specificity;\n\nclass Processor\n{\n    /**\n     * Split a string into seperate properties\n     *\n     * @param string $propertiesString\n     * @return array\n     */\n    public function splitIntoSeparateProperties($propertiesString)\n    {\n        $propertiesString = $this->cleanup($propertiesString);\n\n        $properties = (array) explode(';', $propertiesString);\n        $keysToRemove = array();\n        $numberOfProperties = count($properties);\n\n        for ($i = 0; $i < $numberOfProperties; $i++) {\n            $properties[$i] = trim($properties[$i]);\n\n            // if the new property begins with base64 it is part of the current property\n            if (isset($properties[$i + 1]) && strpos(trim($properties[$i + 1]), 'base64,') === 0) {\n                $properties[$i] .= ';' . trim($properties[$i + 1]);\n                $keysToRemove[] = $i + 1;\n            }\n        }\n\n        if (!empty($keysToRemove)) {\n            foreach ($keysToRemove as $key) {\n                unset($properties[$key]);\n            }\n        }\n\n        return array_values($properties);\n    }\n\n    /**\n     * @param $string\n     * @return mixed|string\n     */\n    private function cleanup($string)\n    {\n        $string = str_replace(array(\"\\r\", \"\\n\"), '', $string);\n        $string = str_replace(array(\"\\t\"), ' ', $string);\n        $string = str_replace('\"', '\\'', $string);\n        $string = preg_replace('|/\\*.*?\\*/|', '', $string);\n        $string = preg_replace('/\\s\\s+/', ' ', $string);\n\n        $string = trim($string);\n        $string = rtrim($string, ';');\n\n        return $string;\n    }\n\n    /**\n     * Convert a property-string into an object\n     *\n     * @param string $property\n     * @return Property|null\n     */\n    public function convertToObject($property, Specificity $specificity = null)\n    {\n        if (strpos($property, ':') === false) {\n            return null;\n        }\n\n        list($name, $value) = explode(':', $property, 2);\n\n        $name = trim($name);\n        $value = trim($value);\n\n        if ($value === '') {\n            return null;\n        }\n\n        return new Property($name, $value, $specificity);\n    }\n\n    /**\n     * Convert an array of property-strings into objects\n     *\n     * @param array $properties\n     * @return Property[]\n     */\n    public function convertArrayToObjects(array $properties, Specificity $specificity = null)\n    {\n        $objects = array();\n\n        foreach ($properties as $property) {\n            $object = $this->convertToObject($property, $specificity);\n            if ($object === null) {\n                continue;\n            }\n\n            $objects[] = $object;\n        }\n\n        return $objects;\n    }\n\n    /**\n     * Build the property-string for multiple properties\n     *\n     * @param array $properties\n     * @return string\n     */\n    public function buildPropertiesString(array $properties)\n    {\n        $chunks = array();\n\n        foreach ($properties as $property) {\n            $chunks[] = $property->toString();\n        }\n\n        return implode(' ', $chunks);\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles\\Css\\Property;\n\nuse Symfony\\Component\\CssSelector\\Node\\Specificity;\n\nfinal class Property\n{\n    /**\n     * @var string\n     */\n    private $name;\n\n    /**\n     * @var string\n     */\n    private $value;\n\n    /**\n     * @var Specificity\n     */\n    private $originalSpecificity;\n\n    /**\n     * Property constructor.\n     * @param                  $name\n     * @param                  $value\n     * @param Specificity|null $specificity\n     */\n    public function __construct($name, $value, Specificity $specificity = null)\n    {\n        $this->name = $name;\n        $this->value = $value;\n        $this->originalSpecificity = $specificity;\n    }\n\n    /**\n     * Get name\n     *\n     * @return string\n     */\n    public function getName()\n    {\n        return $this->name;\n    }\n\n    /**\n     * Get value\n     *\n     * @return string\n     */\n    public function getValue()\n    {\n        return $this->value;\n    }\n\n    /**\n     * Get originalSpecificity\n     *\n     * @return Specificity\n     */\n    public function getOriginalSpecificity()\n    {\n        return $this->originalSpecificity;\n    }\n\n    /**\n     * Is this property important?\n     *\n     * @return bool\n     */\n    public function isImportant()\n    {\n        return (stripos($this->value, '!important') !== false);\n    }\n\n    /**\n     * Get the textual representation of the property\n     *\n     * @return string\n     */\n    public function toString()\n    {\n        return sprintf(\n            '%1$s: %2$s;',\n            $this->name,\n            $this->value\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles\\Css\\Rule;\n\nuse Symfony\\Component\\CssSelector\\Node\\Specificity;\nuse \\TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor as PropertyProcessor;\n\nclass Processor\n{\n    /**\n     * Split a string into seperate rules\n     *\n     * @param string $rulesString\n     * @return array\n     */\n    public function splitIntoSeparateRules($rulesString)\n    {\n        $rulesString = $this->cleanup($rulesString);\n\n        return (array) explode('}', $rulesString);\n    }\n\n    /**\n     * @param string $string\n     * @return string\n     */\n    private function cleanup($string)\n    {\n        $string = str_replace(array(\"\\r\", \"\\n\"), '', $string);\n        $string = str_replace(array(\"\\t\"), ' ', $string);\n        $string = str_replace('\"', '\\'', $string);\n        $string = preg_replace('|/\\*.*?\\*/|', '', $string);\n        $string = preg_replace('/\\s\\s+/', ' ', $string);\n\n        $string = trim($string);\n        $string = rtrim($string, '}');\n\n        return $string;\n    }\n\n    /**\n     * Convert a rule-string into an object\n     *\n     * @param string $rule\n     * @param int    $originalOrder\n     * @return array\n     */\n    public function convertToObjects($rule, $originalOrder)\n    {\n        $rule = $this->cleanup($rule);\n\n        $chunks = explode('{', $rule);\n        if (!isset($chunks[1])) {\n            return array();\n        }\n        $propertiesProcessor = new PropertyProcessor();\n        $rules = array();\n        $selectors = (array) explode(',', trim($chunks[0]));\n        $properties = $propertiesProcessor->splitIntoSeparateProperties($chunks[1]);\n\n        foreach ($selectors as $selector) {\n            $selector = trim($selector);\n            $specificity = $this->calculateSpecificityBasedOnASelector($selector);\n\n            $rules[] = new Rule(\n                $selector,\n                $propertiesProcessor->convertArrayToObjects($properties, $specificity),\n                $specificity,\n                $originalOrder\n            );\n        }\n\n        return $rules;\n    }\n\n    /**\n     * Calculate the specificity based on a CSS Selector string,\n     * Based on the patterns from premailer/css_parser by Alex Dunae\n     *\n     * @see https://github.com/premailer/css_parser/blob/master/lib/css_parser/regexps.rb\n     * @param string $selector\n     * @return Specificity\n     */\n    public function calculateSpecificityBasedOnASelector($selector)\n    {\n        $idSelectorsPattern = \"  \\#\";\n        $classAttributesPseudoClassesSelectorsPattern = \"  (\\.[\\w]+)                     # classes\n                        |\n                        \\[(\\w+)                       # attributes\n                        |\n                        (\\:(                          # pseudo classes\n                          link|visited|active\n                          |hover|focus\n                          |lang\n                          |target\n                          |enabled|disabled|checked|indeterminate\n                          |root\n                          |nth-child|nth-last-child|nth-of-type|nth-last-of-type\n                          |first-child|last-child|first-of-type|last-of-type\n                          |only-child|only-of-type\n                          |empty|contains\n                        ))\";\n\n        $typePseudoElementsSelectorPattern = \"  ((^|[\\s\\+\\>\\~]+)[\\w]+       # elements\n                        |\n                        \\:{1,2}(                    # pseudo-elements\n                          after|before\n                          |first-letter|first-line\n                          |selection\n                        )\n                      )\";\n\n        return new Specificity(\n            preg_match_all(\"/{$idSelectorsPattern}/ix\", $selector, $matches),\n            preg_match_all(\"/{$classAttributesPseudoClassesSelectorsPattern}/ix\", $selector, $matches),\n            preg_match_all(\"/{$typePseudoElementsSelectorPattern}/ix\", $selector, $matches)\n        );\n    }\n\n    /**\n     * @param array $rules\n     * @return Rule[]\n     */\n    public function convertArrayToObjects(array $rules, array $objects = array())\n    {\n        $order = 1;\n        foreach ($rules as $rule) {\n            $objects = array_merge($objects, $this->convertToObjects($rule, $order));\n            $order++;\n        }\n\n        return $objects;\n    }\n\n    /**\n     * Sort an array on the specificity element in an ascending way\n     * Lower specificity will be sorted to the beginning of the array\n     *\n     * @return int\n     * @param  Rule $e1 The first element.\n     * @param  Rule $e2 The second element.\n     */\n    public static function sortOnSpecificity(Rule $e1, Rule $e2)\n    {\n        $e1Specificity = $e1->getSpecificity();\n        $value = $e1Specificity->compareTo($e2->getSpecificity());\n\n        // if the specificity is the same, use the order in which the element appeared\n        if ($value === 0) {\n            $value = $e1->getOrder() - $e2->getOrder();\n        }\n\n        return $value;\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles\\Css\\Rule;\n\nuse Symfony\\Component\\CssSelector\\Node\\Specificity;\n\nfinal class Rule\n{\n    /**\n     * @var string\n     */\n    private $selector;\n\n    /**\n     * @var array\n     */\n    private $properties;\n\n    /**\n     * @var Specificity\n     */\n    private $specificity;\n\n    /**\n     * @var integer\n     */\n    private $order;\n\n    /**\n     * Rule constructor.\n     *\n     * @param string      $selector\n     * @param Property[]  $properties\n     * @param Specificity $specificity\n     * @param int         $order\n     */\n    public function __construct($selector, array $properties, Specificity $specificity, $order)\n    {\n        $this->selector = $selector;\n        $this->properties = $properties;\n        $this->specificity = $specificity;\n        $this->order = $order;\n    }\n\n    /**\n     * Get selector\n     *\n     * @return string\n     */\n    public function getSelector()\n    {\n        return $this->selector;\n    }\n\n    /**\n     * Get properties\n     *\n     * @return array\n     */\n    public function getProperties()\n    {\n        return $this->properties;\n    }\n\n    /**\n     * Get specificity\n     *\n     * @return Specificity\n     */\n    public function getSpecificity()\n    {\n        return $this->specificity;\n    }\n\n    /**\n     * Get order\n     *\n     * @return int\n     */\n    public function getOrder()\n    {\n        return $this->order;\n    }\n}\n"
  },
  {
    "path": "vendor/tijsverkoyen/css-to-inline-styles/src/CssToInlineStyles.php",
    "content": "<?php\n\nnamespace TijsVerkoyen\\CssToInlineStyles;\n\nuse Symfony\\Component\\CssSelector\\CssSelector;\nuse Symfony\\Component\\CssSelector\\CssSelectorConverter;\nuse Symfony\\Component\\CssSelector\\Exception\\ExceptionInterface;\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Processor;\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Processor as PropertyProcessor;\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor as RuleProcessor;\nuse TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule;\n\nclass CssToInlineStyles\n{\n    private $cssConverter;\n\n    public function __construct()\n    {\n        if (class_exists('Symfony\\Component\\CssSelector\\CssSelectorConverter')) {\n            $this->cssConverter = new CssSelectorConverter();\n        }\n    }\n\n    /**\n     * Will inline the $css into the given $html\n     *\n     * Remark: if the html contains <style>-tags those will be used, the rules\n     * in $css will be appended.\n     *\n     * @param string $html\n     * @param string $css\n     * @return string\n     */\n    public function convert($html, $css = null)\n    {\n        $document = $this->createDomDocumentFromHtml($html);\n        $processor = new Processor();\n\n        // get all styles from the style-tags\n        $rules = $processor->getRules(\n            $processor->getCssFromStyleTags($html)\n        );\n\n        if ($css !== null) {\n            $rules = $processor->getRules($css, $rules);\n        }\n\n        $document = $this->inline($document, $rules);\n\n        return $this->getHtmlFromDocument($document);\n    }\n\n    /**\n     * Inline the given properties on an given DOMElement\n     *\n     * @param \\DOMElement             $element\n     * @param Css\\Property\\Property[] $properties\n     * @return \\DOMElement\n     */\n    public function inlineCssOnElement(\\DOMElement $element, array $properties)\n    {\n        if (empty($properties)) {\n            return $element;\n        }\n\n        $cssProperties = array();\n        $inlineProperties = array();\n\n        foreach ($this->getInlineStyles($element) as $property) {\n            $inlineProperties[$property->getName()] = $property;\n        }\n\n        foreach ($properties as $property) {\n            if (!isset($inlineProperties[$property->getName()])) {\n                $cssProperties[$property->getName()] = $property;\n            }\n        }\n\n        $rules = array();\n        foreach (array_merge($cssProperties, $inlineProperties) as $property) {\n            $rules[] = $property->toString();\n        }\n        $element->setAttribute('style', implode(' ', $rules));\n\n        return $element;\n    }\n\n    /**\n     * Get the current inline styles for a given DOMElement\n     *\n     * @param \\DOMElement $element\n     * @return Css\\Property\\Property[]\n     */\n    public function getInlineStyles(\\DOMElement $element)\n    {\n        $processor = new PropertyProcessor();\n\n        return $processor->convertArrayToObjects(\n            $processor->splitIntoSeparateProperties(\n                $element->getAttribute('style')\n            )\n        );\n    }\n\n    /**\n     * @param string $html\n     * @return \\DOMDocument\n     */\n    protected function createDomDocumentFromHtml($html)\n    {\n        $document = new \\DOMDocument('1.0', 'UTF-8');\n        $internalErrors = libxml_use_internal_errors(true);\n        $document->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));\n        libxml_use_internal_errors($internalErrors);\n        $document->formatOutput = true;\n\n        return $document;\n    }\n\n    /**\n     * @param \\DOMDocument $document\n     * @return string\n     */\n    protected function getHtmlFromDocument(\\DOMDocument $document)\n    {\n        // retrieve the document element\n        // we do it this way to preserve the utf-8 encoding\n        $htmlElement = $document->documentElement;\n        $html = $document->saveHTML($htmlElement);\n        $html = trim($html);\n\n        // retrieve the doctype\n        $document->removeChild($htmlElement);\n        $doctype = $document->saveHTML();\n        $doctype = trim($doctype);\n\n        // if it is the html5 doctype convert it to lowercase\n        if ($doctype === '<!DOCTYPE html>') {\n            $doctype = strtolower($doctype);\n        }\n\n        return $doctype.\"\\n\".$html;\n    }\n\n    /**\n     * @param \\DOMDocument    $document\n     * @param Css\\Rule\\Rule[] $rules\n     * @return \\DOMDocument\n     */\n    protected function inline(\\DOMDocument $document, array $rules)\n    {\n        if (empty($rules)) {\n            return $document;\n        }\n\n        $propertyStorage = new \\SplObjectStorage();\n\n        $xPath = new \\DOMXPath($document);\n\n        usort($rules, array(RuleProcessor::class, 'sortOnSpecificity'));\n\n        foreach ($rules as $rule) {\n            try {\n                if (null !== $this->cssConverter) {\n                    $expression = $this->cssConverter->toXPath($rule->getSelector());\n                } else {\n                    // Compatibility layer for Symfony 2.7 and older\n                    $expression = CssSelector::toXPath($rule->getSelector());\n                }\n            } catch (ExceptionInterface $e) {\n                continue;\n            }\n\n            $elements = $xPath->query($expression);\n\n            if ($elements === false) {\n                continue;\n            }\n\n            foreach ($elements as $element) {\n                $propertyStorage[$element] = $this->calculatePropertiesToBeApplied(\n                    $rule->getProperties(),\n                    $propertyStorage->contains($element) ? $propertyStorage[$element] : array()\n                );\n            }\n        }\n\n        foreach ($propertyStorage as $element) {\n            $this->inlineCssOnElement($element, $propertyStorage[$element]);\n        }\n\n        return $document;\n    }\n\n    /**\n     * Merge the CSS rules to determine the applied properties.\n     *\n     * @param Css\\Property\\Property[] $properties\n     * @param Css\\Property\\Property[] $cssProperties existing applied properties indexed by name\n     *\n     * @return Css\\Property\\Property[] updated properties, indexed by name\n     */\n    private function calculatePropertiesToBeApplied(array $properties, array $cssProperties)\n    {\n        if (empty($properties)) {\n            return $cssProperties;\n        }\n\n        foreach ($properties as $property) {\n            if (isset($cssProperties[$property->getName()])) {\n                $existingProperty = $cssProperties[$property->getName()];\n\n                //skip check to overrule if existing property is important and current is not\n                if ($existingProperty->isImportant() && !$property->isImportant()) {\n                    continue;\n                }\n\n                //overrule if current property is important and existing is not, else check specificity\n                $overrule = !$existingProperty->isImportant() && $property->isImportant();\n                if (!$overrule) {\n                    $overrule = $existingProperty->getOriginalSpecificity()->compareTo($property->getOriginalSpecificity()) <= 0;\n                }\n\n                if ($overrule) {\n                    unset($cssProperties[$property->getName()]);\n                    $cssProperties[$property->getName()] = $property;\n                }\n            } else {\n                $cssProperties[$property->getName()] = $property;\n            }\n        }\n\n        return $cssProperties;\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/LICENSE.txt",
    "content": "The BSD 3-Clause License\nhttp://opensource.org/licenses/BSD-3-Clause\n\nCopyright (c) 2013, Vance Lucas\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n * Redistributions of source code must retain the above copyright\n   notice,\nthis list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n * Neither the name of the Vance Lucas nor the names of its contributors\nmay be used to endorse or promote products derived from this software\nwithout specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/composer.json",
    "content": "{\n    \"name\": \"vlucas/phpdotenv\",\n    \"description\": \"Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.\",\n    \"keywords\": [\"env\", \"dotenv\", \"environment\"],\n    \"license\" : \"BSD-3-Clause\",\n    \"authors\" : [\n        {\n            \"name\": \"Vance Lucas\",\n            \"email\": \"vance@vancelucas.com\",\n            \"homepage\": \"http://www.vancelucas.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^5.4 || ^7.0\",\n        \"phpoption/phpoption\": \"^1.5\",\n        \"symfony/polyfill-ctype\": \"^1.9\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^4.8.35 || ^5.0 || ^6.0\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Dotenv\\\\\": \"src/\"\n        }\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"3.4-dev\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Dotenv.php",
    "content": "<?php\n\nnamespace Dotenv;\n\nuse Dotenv\\Environment\\DotenvFactory;\nuse Dotenv\\Environment\\FactoryInterface;\nuse Dotenv\\Exception\\InvalidPathException;\n\n/**\n * This is the dotenv class.\n *\n * It's responsible for loading a `.env` file in the given directory and\n * setting the environment variables.\n */\nclass Dotenv\n{\n    /**\n     * The loader instance.\n     *\n     * @var \\Dotenv\\Loader\n     */\n    protected $loader;\n\n    /**\n     * Create a new dotenv instance.\n     *\n     * @param \\Dotenv\\Loader $loader\n     *\n     * @return void\n     */\n    public function __construct(Loader $loader)\n    {\n        $this->loader = $loader;\n    }\n\n    /**\n     * Create a new dotenv instance.\n     *\n     * @param string|string[]                           $paths\n     * @param string|null                               $file\n     * @param \\Dotenv\\Environment\\FactoryInterface|null $envFactory\n     *\n     * @return \\Dotenv\\Dotenv\n     */\n    public static function create($paths, $file = null, FactoryInterface $envFactory = null)\n    {\n        $loader = new Loader(\n            self::getFilePaths((array) $paths, $file ?: '.env'),\n            $envFactory ?: new DotenvFactory(),\n            true\n        );\n\n        return new self($loader);\n    }\n\n    /**\n     * Returns the full paths to the files.\n     *\n     * @param string[] $paths\n     * @param string   $file\n     *\n     * @return string[]\n     */\n    private static function getFilePaths(array $paths, $file)\n    {\n        return array_map(function ($path) use ($file) {\n            return rtrim($path, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$file;\n        }, $paths);\n    }\n\n    /**\n     * Load environment file in given directory.\n     *\n     * @throws \\Dotenv\\Exception\\InvalidPathException|\\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    public function load()\n    {\n        return $this->loadData();\n    }\n\n    /**\n     * Load environment file in given directory, silently failing if it doesn't exist.\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    public function safeLoad()\n    {\n        try {\n            return $this->loadData();\n        } catch (InvalidPathException $e) {\n            // suppressing exception\n            return [];\n        }\n    }\n\n    /**\n     * Load environment file in given directory.\n     *\n     * @throws \\Dotenv\\Exception\\InvalidPathException|\\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    public function overload()\n    {\n        return $this->loadData(true);\n    }\n\n    /**\n     * Actually load the data.\n     *\n     * @param bool $overload\n     *\n     * @throws \\Dotenv\\Exception\\InvalidPathException|\\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    protected function loadData($overload = false)\n    {\n        return $this->loader->setImmutable(!$overload)->load();\n    }\n\n    /**\n     * Required ensures that the specified variables exist, and returns a new validator object.\n     *\n     * @param string|string[] $variables\n     *\n     * @return \\Dotenv\\Validator\n     */\n    public function required($variables)\n    {\n        return new Validator((array) $variables, $this->loader);\n    }\n\n    /**\n     * Get the list of environment variables declared inside the 'env' file.\n     *\n     * @return string[]\n     */\n    public function getEnvironmentVariableNames()\n    {\n        return $this->loader->getEnvironmentVariableNames();\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/AbstractVariables.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment;\n\nuse Dotenv\\Environment\\Adapter\\ArrayAdapter;\nuse InvalidArgumentException;\n\n/**\n * This is the abstract variables implementation.\n *\n * Extend this as required, implementing \"get\", \"set\", and \"clear\".\n */\nabstract class AbstractVariables implements VariablesInterface\n{\n    /**\n     * Are we immutable?\n     *\n     * @var bool\n     */\n    private $immutable;\n\n    /**\n     * The record of loaded variables.\n     *\n     * @var \\Dotenv\\Environment\\Adapter\\ArrayAdapter\n     */\n    private $loaded;\n\n    /**\n     * Create a new environment variables instance.\n     *\n     * @param bool $immutable\n     *\n     * @return void\n     */\n    public function __construct($immutable)\n    {\n        $this->immutable = $immutable;\n        $this->loaded = new ArrayAdapter();\n    }\n\n    /**\n     * Get an environment variable.\n     *\n     * @param string $name\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return string|null\n     */\n    public function get($name)\n    {\n        if (!is_string($name)) {\n            throw new InvalidArgumentException('Expected name to be a string.');\n        }\n\n        return $this->getInternal($name);\n    }\n\n    /**\n     * Get an environment variable.\n     *\n     * @param string $name\n     *\n     * @return string|null\n     */\n    protected abstract function getInternal($name);\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        if (!is_string($name)) {\n            throw new InvalidArgumentException('Expected name to be a string.');\n        }\n\n        // Don't overwrite existing environment variables if we're immutable\n        // Ruby's dotenv does this with `ENV[key] ||= value`.\n        if ($this->isImmutable() && $this->get($name) !== null && $this->loaded->get($name)->isEmpty()) {\n            return;\n        }\n\n        $this->setInternal($name, $value);\n        $this->loaded->set($name, '');\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    protected abstract function setInternal($name, $value = null);\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        if (!is_string($name)) {\n            throw new InvalidArgumentException('Expected name to be a string.');\n        }\n\n        // Don't clear anything if we're immutable.\n        if ($this->isImmutable()) {\n            return;\n        }\n\n        $this->clearInternal($name);\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    protected abstract function clearInternal($name);\n\n    /**\n     * Determine if the environment is immutable.\n     *\n     * @return bool\n     */\n    public function isImmutable()\n    {\n        return $this->immutable;\n    }\n\n    /**\n     * Tells whether environment variable has been defined.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function has($name)\n    {\n        return is_string($name) && $this->get($name) !== null;\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetExists($offset)\n    {\n        return $this->has($offset);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetGet($offset)\n    {\n        return $this->get($offset);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetSet($offset, $value)\n    {\n        $this->set($offset, $value);\n    }\n\n    /**\n     * {@inheritdoc}\n     */\n    public function offsetUnset($offset)\n    {\n        $this->clear($offset);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/AdapterInterface.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\ninterface AdapterInterface\n{\n    /**\n     * Determines if the adapter is supported.\n     *\n     * @return bool\n     */\n    public function isSupported();\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name);\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null);\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name);\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/ApacheAdapter.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\nuse PhpOption\\None;\n\nclass ApacheAdapter implements AdapterInterface\n{\n    /**\n     * Determines if the adapter is supported.\n     *\n     * This happens if PHP is running as an Apache module.\n     *\n     * @return bool\n     */\n    public function isSupported()\n    {\n        return function_exists('apache_getenv') && function_exists('apache_setenv');\n    }\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * This is intentionally not implemented, since this adapter exists only as\n     * a means to overwrite existing apache environment variables.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name)\n    {\n        return None::create();\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * Only if an existing apache variable exists do we overwrite it.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        if (apache_getenv($name) !== false) {\n            apache_setenv($name, (string) $value);\n        }\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        // Nothing to do here.\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/ArrayAdapter.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\nuse PhpOption\\None;\nuse PhpOption\\Some;\n\nclass ArrayAdapter implements AdapterInterface\n{\n    /**\n     * The variables and their values.\n     *\n     * @return array<string|null>\n     */\n    private $variables = [];\n\n    /**\n     * Determines if the adapter is supported.\n     *\n     * @return bool\n     */\n    public function isSupported()\n    {\n        return true;\n    }\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name)\n    {\n        if (array_key_exists($name, $this->variables)) {\n            return Some::create($this->variables[$name]);\n        }\n\n        return None::create();\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        $this->variables[$name] = $value;\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        unset($this->variables[$name]);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/EnvConstAdapter.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\nuse PhpOption\\None;\nuse PhpOption\\Some;\n\nclass EnvConstAdapter implements AdapterInterface\n{\n    /**\n     * Determines if the adapter is supported.\n     *\n     * @return bool\n     */\n    public function isSupported()\n    {\n        return true;\n    }\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name)\n    {\n        if (array_key_exists($name, $_ENV)) {\n            return Some::create($_ENV[$name]);\n        }\n\n        return None::create();\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        $_ENV[$name] = $value;\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        unset($_ENV[$name]);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/PutenvAdapter.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\nuse PhpOption\\Option;\n\nclass PutenvAdapter implements AdapterInterface\n{\n    /**\n     * Determines if the adapter is supported.\n     *\n     * @return bool\n     */\n    public function isSupported()\n    {\n        return function_exists('putenv');\n    }\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name)\n    {\n        return Option::fromValue(getenv($name), false);\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        putenv(\"$name=$value\");\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        putenv($name);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/Adapter/ServerConstAdapter.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment\\Adapter;\n\nuse PhpOption\\None;\nuse PhpOption\\Some;\n\nclass ServerConstAdapter implements AdapterInterface\n{\n    /**\n     * Determines if the adapter is supported.\n     *\n     * @return bool\n     */\n    public function isSupported()\n    {\n        return true;\n    }\n\n    /**\n     * Get an environment variable, if it exists.\n     *\n     * @param string $name\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function get($name)\n    {\n        if (array_key_exists($name, $_SERVER)) {\n            return Some::create($_SERVER[$name]);\n        }\n\n        return None::create();\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function set($name, $value = null)\n    {\n        $_SERVER[$name] = $value;\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clear($name)\n    {\n        unset($_SERVER[$name]);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/DotenvFactory.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment;\n\nuse Dotenv\\Environment\\Adapter\\AdapterInterface;\nuse Dotenv\\Environment\\Adapter\\ApacheAdapter;\nuse Dotenv\\Environment\\Adapter\\EnvConstAdapter;\nuse Dotenv\\Environment\\Adapter\\PutenvAdapter;\nuse Dotenv\\Environment\\Adapter\\ServerConstAdapter;\n\n/**\n * The default implementation of the environment factory interface.\n */\nclass DotenvFactory implements FactoryInterface\n{\n    /**\n     * The set of adapters to use.\n     *\n     * @var \\Dotenv\\Environment\\Adapter\\AdapterInterface[]\n     */\n    protected $adapters;\n\n    /**\n     * Create a new dotenv environment factory instance.\n     *\n     * If no adapters are provided, then the defaults will be used.\n     *\n     * @param \\Dotenv\\Environment\\Adapter\\AdapterInterface[]|null $adapters\n     *\n     * @return void\n     */\n    public function __construct(array $adapters = null)\n    {\n        $this->adapters = array_filter($adapters === null ? [new ApacheAdapter(), new EnvConstAdapter(), new ServerConstAdapter(), new PutenvAdapter()] : $adapters, function (AdapterInterface $adapter) {\n            return $adapter->isSupported();\n        });\n    }\n\n    /**\n     * Creates a new mutable environment variables instance.\n     *\n     * @return \\Dotenv\\Environment\\VariablesInterface\n     */\n    public function create()\n    {\n        return new DotenvVariables($this->adapters, false);\n    }\n\n    /**\n     * Creates a new immutable environment variables instance.\n     *\n     * @return \\Dotenv\\Environment\\VariablesInterface\n     */\n    public function createImmutable()\n    {\n        return new DotenvVariables($this->adapters, true);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/DotenvVariables.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment;\n\n/**\n * The default implementation of the environment variables interface.\n */\nclass DotenvVariables extends AbstractVariables\n{\n    /**\n     * The set of adapters to use.\n     *\n     * @var \\Dotenv\\Environment\\Adapter\\AdapterInterface[]\n     */\n    protected $adapters;\n\n    /**\n     * Create a new dotenv environment variables instance.\n     *\n     * @param \\Dotenv\\Environment\\Adapter\\AdapterInterface[] $adapters\n     * @param bool                                           $immutable\n     *\n     * @return void\n     */\n    public function __construct(array $adapters, $immutable)\n    {\n        $this->adapters = $adapters;\n        parent::__construct($immutable);\n    }\n\n    /**\n     * Get an environment variable.\n     *\n     * We do this by querying our adapters sequentially.\n     *\n     * @param string $name\n     *\n     * @return string|null\n     */\n    protected function getInternal($name)\n    {\n        foreach ($this->adapters as $adapter) {\n            $result = $adapter->get($name);\n            if ($result->isDefined()) {\n                return $result->get();\n            }\n        }\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    protected function setInternal($name, $value = null)\n    {\n        foreach ($this->adapters as $adapter) {\n            $adapter->set($name, $value);\n        }\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    protected function clearInternal($name)\n    {\n        foreach ($this->adapters as $adapter) {\n            $adapter->clear($name);\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/FactoryInterface.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment;\n\n/**\n * This environment factory interface.\n *\n * If you need custom implementations of the variables interface, implement\n * this interface, and use your implementation in the loader.\n */\ninterface FactoryInterface\n{\n    /**\n     * Creates a new mutable environment variables instance.\n     *\n     * @return \\Dotenv\\Environment\\VariablesInterface\n     */\n    public function create();\n\n    /**\n     * Creates a new immutable environment variables instance.\n     *\n     * @return \\Dotenv\\Environment\\VariablesInterface\n     */\n    public function createImmutable();\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Environment/VariablesInterface.php",
    "content": "<?php\n\nnamespace Dotenv\\Environment;\n\nuse ArrayAccess;\n\n/**\n * This environment variables interface.\n */\ninterface VariablesInterface extends ArrayAccess\n{\n    /**\n     * Determine if the environment is immutable.\n     *\n     * @return bool\n     */\n    public function isImmutable();\n\n    /**\n     * Tells whether environment variable has been defined.\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    public function has($name);\n\n    /**\n     * Get an environment variable.\n     *\n     * @param string $name\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return string|null\n     */\n    public function get($name);\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return void\n     */\n    public function set($name, $value = null);\n\n    /**\n     * Clear an environment variable.\n     *\n     * @param string $name\n     *\n     * @throws \\InvalidArgumentException\n     *\n     * @return void\n     */\n    public function clear($name);\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php",
    "content": "<?php\n\nnamespace Dotenv\\Exception;\n\n/**\n * This is the exception interface.\n */\ninterface ExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php",
    "content": "<?php\n\nnamespace Dotenv\\Exception;\n\nuse InvalidArgumentException;\n\n/**\n * This is the invalid file exception class.\n */\nclass InvalidFileException extends InvalidArgumentException implements ExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php",
    "content": "<?php\n\nnamespace Dotenv\\Exception;\n\nuse InvalidArgumentException;\n\n/**\n * This is the invalid path exception class.\n */\nclass InvalidPathException extends InvalidArgumentException implements ExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Exception/ValidationException.php",
    "content": "<?php\n\nnamespace Dotenv\\Exception;\n\nuse RuntimeException;\n\n/**\n * This is the validation exception class.\n */\nclass ValidationException extends RuntimeException implements ExceptionInterface\n{\n    //\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Lines.php",
    "content": "<?php\n\nnamespace Dotenv;\n\nclass Lines\n{\n    /**\n     * Process the array of lines of environment variables.\n     *\n     * This will produce an array of entries, one per variable.\n     *\n     * @param string[] $lines\n     *\n     * @return string[]\n     */\n    public static function process(array $lines)\n    {\n        $output = [];\n        $multiline = false;\n        $multilineBuffer = [];\n\n        foreach ($lines as $line) {\n            list($multiline, $line, $multilineBuffer) = self::multilineProcess($multiline, $line, $multilineBuffer);\n\n            if (!$multiline && !self::isComment($line) && self::isSetter($line)) {\n                $output[] = $line;\n            }\n        }\n\n        return $output;\n    }\n\n    /**\n     * Used to make all multiline variable process.\n     *\n     * @param bool     $multiline\n     * @param string   $line\n     * @param string[] $buffer\n     *\n     * @return array\n     */\n    private static function multilineProcess($multiline, $line, array $buffer)\n    {\n        // check if $line can be multiline variable\n        if ($started = self::looksLikeMultilineStart($line)) {\n            $multiline = true;\n        }\n\n        if ($multiline) {\n            array_push($buffer, $line);\n\n            if (self::looksLikeMultilineStop($line, $started)) {\n                $multiline = false;\n                $line = implode(\"\\n\", $buffer);\n                $buffer = [];\n            }\n        }\n\n        return [$multiline, $line, $buffer];\n    }\n\n    /**\n     * Determine if the given line can be the start of a multiline variable.\n     *\n     * @param string $line\n     *\n     * @return bool\n     */\n    private static function looksLikeMultilineStart($line)\n    {\n        if (strpos($line, '=\"') === false) {\n            return false;\n        }\n\n        return self::looksLikeMultilineStop($line, true) === false;\n    }\n\n    /**\n     * Determine if the given line can be the start of a multiline variable.\n     *\n     * @param string $line\n     * @param bool   $started\n     *\n     * @return bool\n     */\n    private static function looksLikeMultilineStop($line, $started)\n    {\n        if ($line === '\"') {\n            return true;\n        }\n\n        $seen = $started ? 0 : 1;\n\n        foreach (self::getCharPairs(str_replace('\\\\\\\\', '', $line)) as $pair) {\n            if ($pair[0] !== '\\\\' && $pair[1] === '\"') {\n                $seen++;\n            }\n        }\n\n        return $seen > 1;\n    }\n\n    /**\n     * Get all pairs of adjacent characters within the line.\n     *\n     * @param string $line\n     *\n     * @return bool\n     */\n    private static function getCharPairs($line)\n    {\n        $chars = str_split($line);\n\n        return array_map(null, $chars, array_slice($chars, 1));\n    }\n\n    /**\n     * Determine if the line in the file is a comment, e.g. begins with a #.\n     *\n     * @param string $line\n     *\n     * @return bool\n     */\n    private static function isComment($line)\n    {\n        $line = ltrim($line);\n\n        return isset($line[0]) && $line[0] === '#';\n    }\n\n    /**\n     * Determine if the given line looks like it's setting a variable.\n     *\n     * @param string $line\n     *\n     * @return bool\n     */\n    private static function isSetter($line)\n    {\n        return strpos($line, '=') !== false;\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Loader.php",
    "content": "<?php\n\nnamespace Dotenv;\n\nuse Dotenv\\Environment\\FactoryInterface;\nuse Dotenv\\Exception\\InvalidPathException;\nuse Dotenv\\Regex\\Regex;\nuse PhpOption\\Option;\n\n/**\n * This is the loader class.\n *\n * It's responsible for loading variables by reading a file from disk and:\n * - stripping comments beginning with a `#`,\n * - parsing lines that look shell variable setters, e.g `export key = value`, `key=\"value\"`.\n * - multiline variable look always start with a \" and end with it, e.g: `key=\"value\n *                                                                             value\"`\n */\nclass Loader\n{\n    /**\n     * The file paths.\n     *\n     * @var string[]\n     */\n    protected $filePaths;\n\n    /**\n     * The environment factory instance.\n     *\n     * @var \\Dotenv\\Environment\\FactoryInterface\n     */\n    protected $envFactory;\n\n    /**\n     * The environment variables instance.\n     *\n     * @var \\Dotenv\\Environment\\VariablesInterface\n     */\n    protected $envVariables;\n\n    /**\n     * The list of environment variables declared inside the 'env' file.\n     *\n     * @var string[]\n     */\n    protected $variableNames = [];\n\n    /**\n     * Create a new loader instance.\n     *\n     * @param string[]                             $filePaths\n     * @param \\Dotenv\\Environment\\FactoryInterface $envFactory\n     * @param bool                                 $immutable\n     *\n     * @return void\n     */\n    public function __construct(array $filePaths, FactoryInterface $envFactory, $immutable = false)\n    {\n        $this->filePaths = $filePaths;\n        $this->envFactory = $envFactory;\n        $this->setImmutable($immutable);\n    }\n\n    /**\n     * Set immutable value.\n     *\n     * @param bool $immutable\n     *\n     * @return $this\n     */\n    public function setImmutable($immutable = false)\n    {\n        $this->envVariables = $immutable\n            ? $this->envFactory->createImmutable()\n            : $this->envFactory->create();\n\n        return $this;\n    }\n\n    /**\n     * Load the environment file from disk.\n     *\n     * @throws \\Dotenv\\Exception\\InvalidPathException|\\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    public function load()\n    {\n        return $this->loadDirect(\n            self::findAndRead($this->filePaths)\n        );\n    }\n\n    /**\n     * Directly load the given string.\n     *\n     * @param string $content\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    public function loadDirect($content)\n    {\n        return $this->processEntries(\n            Lines::process(preg_split(\"/(\\r\\n|\\n|\\r)/\", $content))\n        );\n    }\n\n    /**\n     * Attempt to read the files in order.\n     *\n     * @param string[] $filePaths\n     *\n     * @throws \\Dotenv\\Exception\\InvalidPathException\n     *\n     * @return string[]\n     */\n    private static function findAndRead(array $filePaths)\n    {\n        if ($filePaths === []) {\n            throw new InvalidPathException('At least one environment file path must be provided.');\n        }\n\n        foreach ($filePaths as $filePath) {\n            $lines = self::readFromFile($filePath);\n            if ($lines->isDefined()) {\n                return $lines->get();\n            }\n        }\n\n        throw new InvalidPathException(\n            sprintf('Unable to read any of the environment file(s) at [%s].', implode(', ', $filePaths))\n        );\n    }\n\n    /**\n     * Read the given file.\n     *\n     * @param string $filePath\n     *\n     * @return \\PhpOption\\Option\n     */\n    private static function readFromFile($filePath)\n    {\n        $content = @file_get_contents($filePath);\n\n        return Option::fromValue($content, false);\n    }\n\n    /**\n     * Process the environment variable entries.\n     *\n     * We'll fill out any nested variables, and acually set the variable using\n     * the underlying environment variables instance.\n     *\n     * @param string[] $entries\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array<string|null>\n     */\n    private function processEntries(array $entries)\n    {\n        $vars = [];\n\n        foreach ($entries as $entry) {\n            list($name, $value) = Parser::parse($entry);\n            $vars[$name] = $this->resolveNestedVariables($value);\n            $this->setEnvironmentVariable($name, $vars[$name]);\n        }\n\n        return $vars;\n    }\n\n    /**\n     * Resolve the nested variables.\n     *\n     * Look for ${varname} patterns in the variable value and replace with an\n     * existing environment variable.\n     *\n     * @param string|null $value\n     *\n     * @return string|null\n     */\n    private function resolveNestedVariables($value = null)\n    {\n        return Option::fromValue($value)\n            ->filter(function ($str) {\n                return strpos($str, '$') !== false;\n            })\n            ->flatMap(function ($str) {\n                return Regex::replaceCallback(\n                    '/\\${([a-zA-Z0-9_.]+)}/',\n                    function (array $matches) {\n                        return Option::fromValue($this->getEnvironmentVariable($matches[1]))\n                            ->getOrElse($matches[0]);\n                    },\n                    $str\n                )->success();\n            })\n            ->getOrElse($value);\n    }\n\n    /**\n     * Search the different places for environment variables and return first value found.\n     *\n     * @param string $name\n     *\n     * @return string|null\n     */\n    public function getEnvironmentVariable($name)\n    {\n        return $this->envVariables->get($name);\n    }\n\n    /**\n     * Set an environment variable.\n     *\n     * @param string      $name\n     * @param string|null $value\n     *\n     * @return void\n     */\n    public function setEnvironmentVariable($name, $value = null)\n    {\n        $this->variableNames[] = $name;\n        $this->envVariables->set($name, $value);\n    }\n\n    /**\n     * Clear an environment variable.\n     *\n     * This method only expects names in normal form.\n     *\n     * @param string $name\n     *\n     * @return void\n     */\n    public function clearEnvironmentVariable($name)\n    {\n        $this->envVariables->clear($name);\n    }\n\n    /**\n     * Get the list of environment variables names.\n     *\n     * @return string[]\n     */\n    public function getEnvironmentVariableNames()\n    {\n        return $this->variableNames;\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Parser.php",
    "content": "<?php\n\nnamespace Dotenv;\n\nuse Dotenv\\Exception\\InvalidFileException;\n\nclass Parser\n{\n    const INITIAL_STATE = 0;\n    const UNQUOTED_STATE = 1;\n    const QUOTED_STATE = 2;\n    const ESCAPE_STATE = 3;\n    const WHITESPACE_STATE = 4;\n    const COMMENT_STATE = 5;\n\n    /**\n     * Parse the given environment variable entry into a name and value.\n     *\n     * @param string $entry\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array\n     */\n    public static function parse($entry)\n    {\n        list($name, $value) = self::splitStringIntoParts($entry);\n\n        return [self::parseName($name), self::parseValue($value)];\n    }\n\n    /**\n     * Split the compound string into parts.\n     *\n     * @param string $line\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return array\n     */\n    private static function splitStringIntoParts($line)\n    {\n        $name = $line;\n        $value = null;\n\n        if (strpos($line, '=') !== false) {\n            list($name, $value) = array_map('trim', explode('=', $line, 2));\n        }\n\n        if ($name === '') {\n            throw new InvalidFileException(\n                self::getErrorMessage('an unexpected equals', $line)\n            );\n        }\n\n        return [$name, $value];\n    }\n\n    /**\n     * Strips quotes and the optional leading \"export \" from the variable name.\n     *\n     * @param string $name\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return string\n     */\n    private static function parseName($name)\n    {\n        $name = trim(str_replace(['export ', '\\'', '\"'], '', $name));\n\n        if (!self::isValidName($name)) {\n            throw new InvalidFileException(\n                self::getErrorMessage('an invalid name', $name)\n            );\n        }\n\n        return $name;\n    }\n\n    /**\n     * Is the given variable name valid?\n     *\n     * @param string $name\n     *\n     * @return bool\n     */\n    private static function isValidName($name)\n    {\n        return preg_match('~\\A[a-zA-Z0-9_.]+\\z~', $name) === 1;\n    }\n\n    /**\n     * Strips quotes and comments from the environment variable value.\n     *\n     * @param string|null $value\n     *\n     * @throws \\Dotenv\\Exception\\InvalidFileException\n     *\n     * @return string|null\n     */\n    private static function parseValue($value)\n    {\n        if ($value === null || trim($value) === '') {\n            return $value;\n        }\n\n        return array_reduce(str_split($value), function ($data, $char) use ($value) {\n            switch ($data[1]) {\n                case self::INITIAL_STATE:\n                    if ($char === '\"' || $char === '\\'') {\n                        return [$data[0], self::QUOTED_STATE];\n                    } elseif ($char === '#') {\n                        return [$data[0], self::COMMENT_STATE];\n                    } else {\n                        return [$data[0].$char, self::UNQUOTED_STATE];\n                    }\n                case self::UNQUOTED_STATE:\n                    if ($char === '#') {\n                        return [$data[0], self::COMMENT_STATE];\n                    } elseif (ctype_space($char)) {\n                        return [$data[0], self::WHITESPACE_STATE];\n                    } else {\n                        return [$data[0].$char, self::UNQUOTED_STATE];\n                    }\n                case self::QUOTED_STATE:\n                    if ($char === $value[0]) {\n                        return [$data[0], self::WHITESPACE_STATE];\n                    } elseif ($char === '\\\\') {\n                        return [$data[0], self::ESCAPE_STATE];\n                    } else {\n                        return [$data[0].$char, self::QUOTED_STATE];\n                    }\n                case self::ESCAPE_STATE:\n                    if ($char === $value[0] || $char === '\\\\') {\n                        return [$data[0].$char, self::QUOTED_STATE];\n                    } else {\n                        throw new InvalidFileException(\n                            self::getErrorMessage('an unexpected escape sequence', $value)\n                        );\n                    }\n                case self::WHITESPACE_STATE:\n                    if ($char === '#') {\n                        return [$data[0], self::COMMENT_STATE];\n                    } elseif (!ctype_space($char)) {\n                        throw new InvalidFileException(\n                            self::getErrorMessage('unexpected whitespace', $value)\n                        );\n                    } else {\n                        return [$data[0], self::WHITESPACE_STATE];\n                    }\n                case self::COMMENT_STATE:\n                    return [$data[0], self::COMMENT_STATE];\n            }\n        }, ['', self::INITIAL_STATE])[0];\n    }\n\n    /**\n     * Generate a friendly error message.\n     *\n     * @param string $cause\n     * @param string $subject\n     *\n     * @return string\n     */\n    private static function getErrorMessage($cause, $subject)\n    {\n        return sprintf(\n            'Failed to parse dotenv file due to %s. Failed at [%s].',\n            $cause,\n            strtok($subject, \"\\n\")\n        );\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Regex/Error.php",
    "content": "<?php\n\nnamespace Dotenv\\Regex;\n\nuse PhpOption\\None;\nuse PhpOption\\Some;\n\nclass Error extends Result\n{\n    /**\n     * @var string\n     */\n    private $value;\n\n    /**\n     * Internal constructor for an error value.\n     *\n     * @param string $value\n     *\n     * @return void\n     */\n    private function __construct($value)\n    {\n        $this->value = $value;\n    }\n\n    /**\n     * Create a new error value.\n     *\n     * @param string $value\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public static function create($value)\n    {\n        return new self($value);\n    }\n\n    /**\n     * Get the success option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function success()\n    {\n        return None::create();\n    }\n\n    /**\n     * Map over the success value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public function mapSuccess(callable $f)\n    {\n        return self::create($this->value);\n    }\n\n    /**\n     * Get the error option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function error()\n    {\n        return Some::create($this->value);\n    }\n\n    /**\n     * Map over the error value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public function mapError(callable $f)\n    {\n        return self::create($f($this->value));\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Regex/Regex.php",
    "content": "<?php\n\nnamespace Dotenv\\Regex;\n\nuse PhpOption\\Option;\n\nclass Regex\n{\n    /**\n     * Perform a preg replace, wrapping up the result.\n     *\n     * @param string $pattern\n     * @param string $replacement\n     * @param string $subject\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public static function replace($pattern, $replacement, $subject)\n    {\n        return self::pregAndWrap(function ($subject) use ($pattern, $replacement) {\n            return preg_replace($pattern, $replacement, $subject);\n        }, $subject);\n    }\n\n    /**\n     * Perform a preg replace callback, wrapping up the result.\n     *\n     * @param string   $pattern\n     * @param callable $callback\n     * @param string   $subject\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public static function replaceCallback($pattern, callable $callback, $subject)\n    {\n        return self::pregAndWrap(function ($subject) use ($pattern, $callback) {\n            return preg_replace_callback($pattern, $callback, $subject);\n        }, $subject);\n    }\n\n    /**\n     * Perform a preg operation, wrapping up the result.\n     *\n     * @param callable $operation\n     * @param string   $subject\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    private static function pregAndWrap(callable $operation, $subject)\n    {\n        $result = (string) @$operation($subject);\n\n        if (($e = preg_last_error()) !== PREG_NO_ERROR) {\n            return Error::create(self::lookupError($e));\n        }\n\n        return Success::create($result);\n    }\n\n    /**\n     * Lookup the preg error code.\n     *\n     * @param int $code\n     *\n     * @return string\n     */\n    private static function lookupError($code)\n    {\n        return Option::fromValue(get_defined_constants(true))\n            ->filter(function (array $consts) {\n                return isset($consts['pcre']) && defined('ARRAY_FILTER_USE_KEY');\n            })\n            ->map(function (array $consts) {\n                return array_filter($consts['pcre'], function ($msg) {\n                    return substr($msg, -6) === '_ERROR';\n                }, ARRAY_FILTER_USE_KEY);\n            })\n            ->flatMap(function (array $errors) use ($code) {\n                return Option::fromValue(\n                    array_search($code, $errors, true)\n                );\n            })\n            ->getOrElse('PREG_ERROR');\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Regex/Result.php",
    "content": "<?php\n\nnamespace Dotenv\\Regex;\n\nabstract class Result\n{\n    /**\n     * Get the success option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    abstract public function success();\n\n    /**\n     * Get the error value, if possible.\n     *\n     * @return string\n     */\n    public function getSuccess()\n    {\n        return $this->success()->get();\n    }\n\n    /**\n     * Map over the success value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    abstract public function mapSuccess(callable $f);\n\n    /**\n     * Get the error option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    abstract public function error();\n\n    /**\n     * Get the error value, if possible.\n     *\n     * @return string\n     */\n    public function getError()\n    {\n        return $this->error()->get();\n    }\n\n    /**\n     * Map over the error value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    abstract public function mapError(callable $f);\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Regex/Success.php",
    "content": "<?php\n\nnamespace Dotenv\\Regex;\n\nuse PhpOption\\None;\nuse PhpOption\\Some;\n\nclass Success extends Result\n{\n    /**\n     * @var string\n     */\n    private $value;\n\n    /**\n     * Internal constructor for a success value.\n     *\n     * @param string $value\n     *\n     * @return void\n     */\n    private function __construct($value)\n    {\n        $this->value = $value;\n    }\n\n    /**\n     * Create a new success value.\n     *\n     * @param string $value\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public static function create($value)\n    {\n        return new self($value);\n    }\n\n    /**\n     * Get the success option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function success()\n    {\n        return Some::create($this->value);\n    }\n\n    /**\n     * Map over the success value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public function mapSuccess(callable $f)\n    {\n        return self::create($f($this->value));\n    }\n\n    /**\n     * Get the error option value.\n     *\n     * @return \\PhpOption\\Option\n     */\n    public function error()\n    {\n        return None::create();\n    }\n\n    /**\n     * Map over the error value.\n     *\n     * @param callable $f\n     *\n     * @return \\Dotenv\\Regex\\Result\n     */\n    public function mapError(callable $f)\n    {\n        return self::create($this->value);\n    }\n}\n"
  },
  {
    "path": "vendor/vlucas/phpdotenv/src/Validator.php",
    "content": "<?php\n\nnamespace Dotenv;\n\nuse Dotenv\\Exception\\ValidationException;\n\n/**\n * This is the validator class.\n *\n * It's responsible for applying validations against a number of variables.\n */\nclass Validator\n{\n    /**\n     * The variables to validate.\n     *\n     * @var string[]\n     */\n    protected $variables;\n\n    /**\n     * The loader instance.\n     *\n     * @var \\Dotenv\\Loader\n     */\n    protected $loader;\n\n    /**\n     * Create a new validator instance.\n     *\n     * @param string[]       $variables\n     * @param \\Dotenv\\Loader $loader\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return void\n     */\n    public function __construct(array $variables, Loader $loader)\n    {\n        $this->variables = $variables;\n        $this->loader = $loader;\n\n        $this->assertCallback(\n            function ($value) {\n                return $value !== null;\n            },\n            'is missing'\n        );\n    }\n\n    /**\n     * Assert that each variable is not empty.\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return \\Dotenv\\Validator\n     */\n    public function notEmpty()\n    {\n        return $this->assertCallback(\n            function ($value) {\n                return strlen(trim($value)) > 0;\n            },\n            'is empty'\n        );\n    }\n\n    /**\n     * Assert that each specified variable is an integer.\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return \\Dotenv\\Validator\n     */\n    public function isInteger()\n    {\n        return $this->assertCallback(\n            function ($value) {\n                return ctype_digit($value);\n            },\n            'is not an integer'\n        );\n    }\n\n    /**\n     * Assert that each specified variable is a boolean.\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return \\Dotenv\\Validator\n     */\n    public function isBoolean()\n    {\n        return $this->assertCallback(\n            function ($value) {\n                if ($value === '') {\n                    return false;\n                }\n\n                return filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) !== null;\n            },\n            'is not a boolean'\n        );\n    }\n\n    /**\n     * Assert that each variable is amongst the given choices.\n     *\n     * @param string[] $choices\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return \\Dotenv\\Validator\n     */\n    public function allowedValues(array $choices)\n    {\n        return $this->assertCallback(\n            function ($value) use ($choices) {\n                return in_array($value, $choices, true);\n            },\n            sprintf('is not one of [%s]', implode(', ', $choices))\n        );\n    }\n\n    /**\n     * Assert that the callback returns true for each variable.\n     *\n     * @param callable $callback\n     * @param string   $message\n     *\n     * @throws \\Dotenv\\Exception\\ValidationException\n     *\n     * @return \\Dotenv\\Validator\n     */\n    protected function assertCallback(callable $callback, $message = 'failed callback assertion')\n    {\n        $failing = [];\n\n        foreach ($this->variables as $variable) {\n            if ($callback($this->loader->getEnvironmentVariable($variable)) === false) {\n                $failing[] = sprintf('%s %s', $variable, $message);\n            }\n        }\n\n        if (count($failing) > 0) {\n            throw new ValidationException(sprintf(\n                'One or more environment variables failed assertions: %s.',\n                implode(', ', $failing)\n            ));\n        }\n\n        return $this;\n    }\n}\n"
  },
  {
    "path": "vendor/webmozart/assert/CHANGELOG.md",
    "content": "Changelog\n=========\n\n## UNRELEASED\n\n## 1.4.0 (2018-12-25)\n\n### Added\n\n* added `Assert::ip()`\n* added `Assert::ipv4()`\n* added `Assert::ipv6()`\n* added `Assert::notRegex()`\n* added `Assert::interfaceExists()`\n* added `Assert::isList()`\n* added `Assert::isMap()`\n* added polyfill for ctype\n\n### Fixed\n\n* Special case when comparing objects implementing `__toString()`\n\n## 1.3.0 (2018-01-29)\n\n### Added \n\n* added `Assert::minCount()`\n* added `Assert::maxCount()`\n* added `Assert::countBetween()`\n* added `Assert::isCountable()`\n* added `Assert::notWhitespaceOnly()`\n* added `Assert::natural()`\n* added `Assert::notContains()`\n* added `Assert::isArrayAccessible()`\n* added `Assert::isInstanceOfAny()`\n* added `Assert::isIterable()`\n\n### Fixed\n\n* `stringNotEmpty` will no longer report \"0\" is an empty string\n\n### Deprecation\n\n* deprecated `Assert::isTraversable()` in favor of `Assert::isIterable()`\n\n## 1.2.0 (2016-11-23)\n\n * added `Assert::throws()`\n * added `Assert::count()`\n * added extension point `Assert::reportInvalidArgument()` for custom subclasses\n\n## 1.1.0 (2016-08-09)\n\n * added `Assert::object()`\n * added `Assert::propertyExists()`\n * added `Assert::propertyNotExists()`\n * added `Assert::methodExists()`\n * added `Assert::methodNotExists()`\n * added `Assert::uuid()`\n\n## 1.0.2 (2015-08-24)\n\n * integrated Style CI\n * add tests for minimum package dependencies on Travis CI\n\n## 1.0.1 (2015-05-12)\n\n * added support for PHP 5.3.3\n\n## 1.0.0 (2015-05-12)\n\n * first stable release\n\n## 1.0.0-beta (2015-03-19)\n\n * first beta release\n"
  },
  {
    "path": "vendor/webmozart/assert/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Bernhard Schussek\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/webmozart/assert/README.md",
    "content": "Webmozart Assert\n================\n\n[![Build Status](https://travis-ci.org/webmozart/assert.svg?branch=master)](https://travis-ci.org/webmozart/assert)\n[![Build status](https://ci.appveyor.com/api/projects/status/lyg83bcsisrr94se/branch/master?svg=true)](https://ci.appveyor.com/project/webmozart/assert/branch/master)\n[![Latest Stable Version](https://poser.pugx.org/webmozart/assert/v/stable.svg)](https://packagist.org/packages/webmozart/assert)\n[![Total Downloads](https://poser.pugx.org/webmozart/assert/downloads.svg)](https://packagist.org/packages/webmozart/assert)\n\nLatest release: [1.2.0](https://packagist.org/packages/webmozart/assert#1.2.0)\n\nPHP >= 5.3.9\n\nThis library contains efficient assertions to test the input and output of\nyour methods. With these assertions, you can greatly reduce the amount of coding\nneeded to write a safe implementation.\n\nAll assertions in the [`Assert`] class throw an `\\InvalidArgumentException` if \nthey fail.\n\nFAQ\n---\n\n**What's the difference to [beberlei/assert]?**\n\nThis library is heavily inspired by Benjamin Eberlei's wonderful [assert package],\nbut fixes a usability issue with error messages that can't be fixed there without\nbreaking backwards compatibility.\n\nThis package features usable error messages by default. However, you can also \neasily write custom error messages:\n\n```\nAssert::string($path, 'The path is expected to be a string. Got: %s');\n```\n\nIn [beberlei/assert], the ordering of the `%s` placeholders is different for \nevery assertion. This package, on the contrary, provides consistent placeholder \nordering for all assertions:\n\n* `%s`: The tested value as string, e.g. `\"/foo/bar\"`.\n* `%2$s`, `%3$s`, ...: Additional assertion-specific values, e.g. the\n  minimum/maximum length, allowed values, etc.\n  \nCheck the source code of the assertions to find out details about the additional\navailable placeholders.\n\nInstallation\n------------\n\nUse [Composer] to install the package:\n\n```\n$ composer require webmozart/assert\n```\n\nExample\n-------\n\n```php\nuse Webmozart\\Assert\\Assert;\n\nclass Employee\n{\n    public function __construct($id)\n    {\n        Assert::integer($id, 'The employee ID must be an integer. Got: %s');\n        Assert::greaterThan($id, 0, 'The employee ID must be a positive integer. Got: %s');\n    }\n}\n```\n\nIf you create an employee with an invalid ID, an exception is thrown:\n\n```php\nnew Employee('foobar');\n// => InvalidArgumentException: \n//    The employee ID must be an integer. Got: string\n\nnew Employee(-10);\n// => InvalidArgumentException: \n//    The employee ID must be a positive integer. Got: -10\n```\n\nAssertions\n----------\n\nThe [`Assert`] class provides the following assertions:\n\n### Type Assertions\n\nMethod                                                   | Description\n-------------------------------------------------------- | --------------------------------------------------\n`string($value, $message = '')`                          | Check that a value is a string\n`stringNotEmpty($value, $message = '')`                  | Check that a value is a non-empty string\n`integer($value, $message = '')`                         | Check that a value is an integer\n`integerish($value, $message = '')`                      | Check that a value casts to an integer\n`float($value, $message = '')`                           | Check that a value is a float\n`numeric($value, $message = '')`                         | Check that a value is numeric\n`natural($value, $message= ''')`                         | Check that a value is a non-negative integer\n`boolean($value, $message = '')`                         | Check that a value is a boolean\n`scalar($value, $message = '')`                          | Check that a value is a scalar\n`object($value, $message = '')`                          | Check that a value is an object\n`resource($value, $type = null, $message = '')`          | Check that a value is a resource\n`isCallable($value, $message = '')`                      | Check that a value is a callable\n`isArray($value, $message = '')`                         | Check that a value is an array\n`isTraversable($value, $message = '')`  (deprecated)     | Check that a value is an array or a `\\Traversable`\n`isIterable($value, $message = '')`                      | Check that a value is an array or a `\\Traversable`\n`isCountable($value, $message = '')`                     | Check that a value is an array or a `\\Countable`\n`isInstanceOf($value, $class, $message = '')`            | Check that a value is an `instanceof` a class\n`isInstanceOfAny($value, array $classes, $message = '')` | Check that a value is an `instanceof` a at least one class on the array of classes\n`notInstanceOf($value, $class, $message = '')`           | Check that a value is not an `instanceof` a class\n`isArrayAccessible($value, $message = '')`               | Check that a value can be accessed as an array\n\n### Comparison Assertions\n\nMethod                                          | Description\n----------------------------------------------- | --------------------------------------------------\n`true($value, $message = '')`                   | Check that a value is `true`\n`false($value, $message = '')`                  | Check that a value is `false`\n`null($value, $message = '')`                   | Check that a value is `null`\n`notNull($value, $message = '')`                | Check that a value is not `null`\n`isEmpty($value, $message = '')`                | Check that a value is `empty()`\n`notEmpty($value, $message = '')`               | Check that a value is not `empty()`\n`eq($value, $value2, $message = '')`            | Check that a value equals another (`==`)\n`notEq($value, $value2, $message = '')`         | Check that a value does not equal another (`!=`)\n`same($value, $value2, $message = '')`          | Check that a value is identical to another (`===`)\n`notSame($value, $value2, $message = '')`       | Check that a value is not identical to another (`!==`)\n`greaterThan($value, $value2, $message = '')`   | Check that a value is greater than another\n`greaterThanEq($value, $value2, $message = '')` | Check that a value is greater than or equal to another\n`lessThan($value, $value2, $message = '')`      | Check that a value is less than another\n`lessThanEq($value, $value2, $message = '')`    | Check that a value is less than or equal to another\n`range($value, $min, $max, $message = '')`      | Check that a value is within a range\n`oneOf($value, array $values, $message = '')`   | Check that a value is one of a list of values\n\n### String Assertions\n\nYou should check that a value is a string with `Assert::string()` before making\nany of the following assertions.\n\nMethod                                              | Description\n--------------------------------------------------- | -----------------------------------------------------------------\n`contains($value, $subString, $message = '')`       | Check that a string contains a substring\n`notContains($value, $subString, $message = '')`    | Check that a string does not contains a substring\n`startsWith($value, $prefix, $message = '')`        | Check that a string has a prefix\n`startsWithLetter($value, $message = '')`           | Check that a string starts with a letter\n`endsWith($value, $suffix, $message = '')`          | Check that a string has a suffix\n`regex($value, $pattern, $message = '')`            | Check that a string matches a regular expression\n`notRegex($value, $pattern, $message = '')`         | Check that a string does not match a regular expression\n`alpha($value, $message = '')`                      | Check that a string contains letters only\n`digits($value, $message = '')`                     | Check that a string contains digits only\n`alnum($value, $message = '')`                      | Check that a string contains letters and digits only\n`lower($value, $message = '')`                      | Check that a string contains lowercase characters only\n`upper($value, $message = '')`                      | Check that a string contains uppercase characters only\n`length($value, $length, $message = '')`            | Check that a string has a certain number of characters\n`minLength($value, $min, $message = '')`            | Check that a string has at least a certain number of characters\n`maxLength($value, $max, $message = '')`            | Check that a string has at most a certain number of characters\n`lengthBetween($value, $min, $max, $message = '')`  | Check that a string has a length in the given range\n`uuid($value, $message = '')`                       | Check that a string is a valid UUID\n`ip($value, $message = '')`                         | Check that a string is a valid IP (either IPv4 or IPv6)\n`ipv4($value, $message = '')`                       | Check that a string is a valid IPv4\n`ipv6($value, $message = '')`                       | Check that a string is a valid IPv6\n`notWhitespaceOnly($value, $message = '')`          | Check that a string contains at least one non-whitespace character\n\n### File Assertions\n\nMethod                              | Description\n----------------------------------- | --------------------------------------------------\n`fileExists($value, $message = '')` | Check that a value is an existing path\n`file($value, $message = '')`       | Check that a value is an existing file\n`directory($value, $message = '')`  | Check that a value is an existing directory\n`readable($value, $message = '')`   | Check that a value is a readable path\n`writable($value, $message = '')`   | Check that a value is a writable path\n\n### Object Assertions\n\nMethod                                                | Description\n----------------------------------------------------- | --------------------------------------------------\n`classExists($value, $message = '')`                  | Check that a value is an existing class name\n`subclassOf($value, $class, $message = '')`           | Check that a class is a subclass of another\n`interfaceExists($value, $message = '')`              | Check that a value is an existing interface name\n`implementsInterface($value, $class, $message = '')`  | Check that a class implements an interface\n`propertyExists($value, $property, $message = '')`    | Check that a property exists in a class/object\n`propertyNotExists($value, $property, $message = '')` | Check that a property does not exist in a class/object\n`methodExists($value, $method, $message = '')`        | Check that a method exists in a class/object\n`methodNotExists($value, $method, $message = '')`     | Check that a method does not exist in a class/object\n\n### Array Assertions\n\nMethod                                             | Description\n-------------------------------------------------- | ------------------------------------------------------------------\n`keyExists($array, $key, $message = '')`           | Check that a key exists in an array\n`keyNotExists($array, $key, $message = '')`        | Check that a key does not exist in an array\n`count($array, $number, $message = '')`            | Check that an array contains a specific number of elements\n`minCount($array, $min, $message = '')`            | Check that an array contains at least a certain number of elements\n`maxCount($array, $max, $message = '')`            | Check that an array contains at most a certain number of elements\n`countBetween($array, $min, $max, $message = '')`  | Check that an array has a count in the given range\n`isList($array, $message = '')`                    | Check that an array is a non-associative list\n`isMap($array, $message = '')`                     | Check that an array is associative and has strings as keys\n\n### Function Assertions\n\nMethod                                      | Description\n------------------------------------------- | -----------------------------------------------------------------------------------------------------\n`throws($closure, $class, $message = '')`   | Check that a function throws a certain exception. Subclasses of the exception class will be accepted.\n\n### Collection Assertions\n\nAll of the above assertions can be prefixed with `all*()` to test the contents\nof an array or a `\\Traversable`:\n\n```php\nAssert::allIsInstanceOf($employees, 'Acme\\Employee');\n```\n\n### Nullable Assertions\n\nAll of the above assertions can be prefixed with `nullOr*()` to run the\nassertion only if it the value is not `null`:\n\n```php\nAssert::nullOrString($middleName, 'The middle name must be a string or null. Got: %s');\n```\n\nAuthors\n-------\n\n* [Bernhard Schussek] a.k.a. [@webmozart]\n* [The Community Contributors]\n\nContribute\n----------\n\nContributions to the package are always welcome!\n\n* Report any bugs or issues you find on the [issue tracker].\n* You can grab the source code at the package's [Git repository].\n\nSupport\n-------\n\nIf you are having problems, send a mail to bschussek@gmail.com or shout out to\n[@webmozart] on Twitter.\n\nLicense\n-------\n\nAll contents of this package are licensed under the [MIT license].\n\n[beberlei/assert]: https://github.com/beberlei/assert\n[assert package]: https://github.com/beberlei/assert\n[Composer]: https://getcomposer.org\n[Bernhard Schussek]: http://webmozarts.com\n[The Community Contributors]: https://github.com/webmozart/assert/graphs/contributors\n[issue tracker]: https://github.com/webmozart/assert/issues\n[Git repository]: https://github.com/webmozart/assert\n[@webmozart]: https://twitter.com/webmozart\n[MIT license]: LICENSE\n[`Assert`]: src/Assert.php\n"
  },
  {
    "path": "vendor/webmozart/assert/composer.json",
    "content": "{\n    \"name\": \"webmozart/assert\",\n    \"description\": \"Assertions to validate method input/output with nice error messages.\",\n    \"keywords\": [\n        \"assert\",\n        \"check\",\n        \"validate\"\n    ],\n    \"license\": \"MIT\",\n    \"authors\": [\n        {\n            \"name\": \"Bernhard Schussek\",\n            \"email\": \"bschussek@gmail.com\"\n        }\n    ],\n    \"require\": {\n        \"php\": \"^5.3.3 || ^7.0\",\n        \"symfony/polyfill-ctype\": \"^1.8\"\n    },\n    \"require-dev\": {\n        \"phpunit/phpunit\": \"^4.6\",\n        \"sebastian/version\": \"^1.0.1\"\n    },\n    \"extra\": {\n        \"branch-alias\": {\n            \"dev-master\": \"1.3-dev\"\n        }\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"Webmozart\\\\Assert\\\\\": \"src/\"\n        }\n    },\n    \"autoload-dev\": {\n        \"psr-4\": {\n            \"Webmozart\\\\Assert\\\\Tests\\\\\": \"tests/\"\n        }\n    }\n}\n"
  },
  {
    "path": "vendor/webmozart/assert/src/Assert.php",
    "content": "<?php\n\n/*\n * This file is part of the webmozart/assert package.\n *\n * (c) Bernhard Schussek <bschussek@gmail.com>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nnamespace Webmozart\\Assert;\n\nuse ArrayAccess;\nuse BadMethodCallException;\nuse Closure;\nuse Countable;\nuse Exception;\nuse InvalidArgumentException;\nuse Throwable;\nuse Traversable;\n\n/**\n * Efficient assertions to validate the input/output of your methods.\n *\n * @method static void nullOrString($value, $message = '')\n * @method static void nullOrStringNotEmpty($value, $message = '')\n * @method static void nullOrInteger($value, $message = '')\n * @method static void nullOrIntegerish($value, $message = '')\n * @method static void nullOrFloat($value, $message = '')\n * @method static void nullOrNumeric($value, $message = '')\n * @method static void nullOrNatural($value, $message = '')\n * @method static void nullOrBoolean($value, $message = '')\n * @method static void nullOrScalar($value, $message = '')\n * @method static void nullOrObject($value, $message = '')\n * @method static void nullOrResource($value, $type = null, $message = '')\n * @method static void nullOrIsCallable($value, $message = '')\n * @method static void nullOrIsArray($value, $message = '')\n * @method static void nullOrIsTraversable($value, $message = '')\n * @method static void nullOrIsArrayAccessible($value, $message = '')\n * @method static void nullOrIsCountable($value, $message = '')\n * @method static void nullOrIsIterable($value, $message = '')\n * @method static void nullOrIsInstanceOf($value, $class, $message = '')\n * @method static void nullOrNotInstanceOf($value, $class, $message = '')\n * @method static void nullOrIsInstanceOfAny($value, $classes, $message = '')\n * @method static void nullOrIsEmpty($value, $message = '')\n * @method static void nullOrNotEmpty($value, $message = '')\n * @method static void nullOrTrue($value, $message = '')\n * @method static void nullOrFalse($value, $message = '')\n * @method static void nullOrIp($value, $message = '')\n * @method static void nullOrIpv4($value, $message = '')\n * @method static void nullOrIpv6($value, $message = '')\n * @method static void nullOrEq($value, $value2, $message = '')\n * @method static void nullOrNotEq($value,$value2,  $message = '')\n * @method static void nullOrSame($value, $value2, $message = '')\n * @method static void nullOrNotSame($value, $value2, $message = '')\n * @method static void nullOrGreaterThan($value, $value2, $message = '')\n * @method static void nullOrGreaterThanEq($value, $value2, $message = '')\n * @method static void nullOrLessThan($value, $value2, $message = '')\n * @method static void nullOrLessThanEq($value, $value2, $message = '')\n * @method static void nullOrRange($value, $min, $max, $message = '')\n * @method static void nullOrOneOf($value, $values, $message = '')\n * @method static void nullOrContains($value, $subString, $message = '')\n * @method static void nullOrNotContains($value, $subString, $message = '')\n * @method static void nullOrNotWhitespaceOnly($value, $message = '')\n * @method static void nullOrStartsWith($value, $prefix, $message = '')\n * @method static void nullOrStartsWithLetter($value, $message = '')\n * @method static void nullOrEndsWith($value, $suffix, $message = '')\n * @method static void nullOrRegex($value, $pattern, $message = '')\n * @method static void nullOrNotRegex($value, $pattern, $message = '')\n * @method static void nullOrAlpha($value, $message = '')\n * @method static void nullOrDigits($value, $message = '')\n * @method static void nullOrAlnum($value, $message = '')\n * @method static void nullOrLower($value, $message = '')\n * @method static void nullOrUpper($value, $message = '')\n * @method static void nullOrLength($value, $length, $message = '')\n * @method static void nullOrMinLength($value, $min, $message = '')\n * @method static void nullOrMaxLength($value, $max, $message = '')\n * @method static void nullOrLengthBetween($value, $min, $max, $message = '')\n * @method static void nullOrFileExists($value, $message = '')\n * @method static void nullOrFile($value, $message = '')\n * @method static void nullOrDirectory($value, $message = '')\n * @method static void nullOrReadable($value, $message = '')\n * @method static void nullOrWritable($value, $message = '')\n * @method static void nullOrClassExists($value, $message = '')\n * @method static void nullOrSubclassOf($value, $class, $message = '')\n * @method static void nullOrInterfaceExists($value, $message = '')\n * @method static void nullOrImplementsInterface($value, $interface, $message = '')\n * @method static void nullOrPropertyExists($value, $property, $message = '')\n * @method static void nullOrPropertyNotExists($value, $property, $message = '')\n * @method static void nullOrMethodExists($value, $method, $message = '')\n * @method static void nullOrMethodNotExists($value, $method, $message = '')\n * @method static void nullOrKeyExists($value, $key, $message = '')\n * @method static void nullOrKeyNotExists($value, $key, $message = '')\n * @method static void nullOrCount($value, $key, $message = '')\n * @method static void nullOrMinCount($value, $min, $message = '')\n * @method static void nullOrMaxCount($value, $max, $message = '')\n * @method static void nullOrIsList($value, $message = '')\n * @method static void nullOrIsMap($value, $message = '')\n * @method static void nullOrCountBetween($value, $min, $max, $message = '')\n * @method static void nullOrUuid($values, $message = '')\n * @method static void nullOrThrows($expression, $class = 'Exception', $message = '')\n * @method static void allString($values, $message = '')\n * @method static void allStringNotEmpty($values, $message = '')\n * @method static void allInteger($values, $message = '')\n * @method static void allIntegerish($values, $message = '')\n * @method static void allFloat($values, $message = '')\n * @method static void allNumeric($values, $message = '')\n * @method static void allNatural($values, $message = '')\n * @method static void allBoolean($values, $message = '')\n * @method static void allScalar($values, $message = '')\n * @method static void allObject($values, $message = '')\n * @method static void allResource($values, $type = null, $message = '')\n * @method static void allIsCallable($values, $message = '')\n * @method static void allIsArray($values, $message = '')\n * @method static void allIsTraversable($values, $message = '')\n * @method static void allIsArrayAccessible($values, $message = '')\n * @method static void allIsCountable($values, $message = '')\n * @method static void allIsIterable($values, $message = '')\n * @method static void allIsInstanceOf($values, $class, $message = '')\n * @method static void allNotInstanceOf($values, $class, $message = '')\n * @method static void allIsInstanceOfAny($values, $classes, $message = '')\n * @method static void allNull($values, $message = '')\n * @method static void allNotNull($values, $message = '')\n * @method static void allIsEmpty($values, $message = '')\n * @method static void allNotEmpty($values, $message = '')\n * @method static void allTrue($values, $message = '')\n * @method static void allFalse($values, $message = '')\n * @method static void allIp($values, $message = '')\n * @method static void allIpv4($values, $message = '')\n * @method static void allIpv6($values, $message = '')\n * @method static void allEq($values, $value2, $message = '')\n * @method static void allNotEq($values,$value2,  $message = '')\n * @method static void allSame($values, $value2, $message = '')\n * @method static void allNotSame($values, $value2, $message = '')\n * @method static void allGreaterThan($values, $value2, $message = '')\n * @method static void allGreaterThanEq($values, $value2, $message = '')\n * @method static void allLessThan($values, $value2, $message = '')\n * @method static void allLessThanEq($values, $value2, $message = '')\n * @method static void allRange($values, $min, $max, $message = '')\n * @method static void allOneOf($values, $values, $message = '')\n * @method static void allContains($values, $subString, $message = '')\n * @method static void allNotContains($values, $subString, $message = '')\n * @method static void allNotWhitespaceOnly($values, $message = '')\n * @method static void allStartsWith($values, $prefix, $message = '')\n * @method static void allStartsWithLetter($values, $message = '')\n * @method static void allEndsWith($values, $suffix, $message = '')\n * @method static void allRegex($values, $pattern, $message = '')\n * @method static void allNotRegex($values, $pattern, $message = '')\n * @method static void allAlpha($values, $message = '')\n * @method static void allDigits($values, $message = '')\n * @method static void allAlnum($values, $message = '')\n * @method static void allLower($values, $message = '')\n * @method static void allUpper($values, $message = '')\n * @method static void allLength($values, $length, $message = '')\n * @method static void allMinLength($values, $min, $message = '')\n * @method static void allMaxLength($values, $max, $message = '')\n * @method static void allLengthBetween($values, $min, $max, $message = '')\n * @method static void allFileExists($values, $message = '')\n * @method static void allFile($values, $message = '')\n * @method static void allDirectory($values, $message = '')\n * @method static void allReadable($values, $message = '')\n * @method static void allWritable($values, $message = '')\n * @method static void allClassExists($values, $message = '')\n * @method static void allSubclassOf($values, $class, $message = '')\n * @method static void allInterfaceExists($values, $message = '')\n * @method static void allImplementsInterface($values, $interface, $message = '')\n * @method static void allPropertyExists($values, $property, $message = '')\n * @method static void allPropertyNotExists($values, $property, $message = '')\n * @method static void allMethodExists($values, $method, $message = '')\n * @method static void allMethodNotExists($values, $method, $message = '')\n * @method static void allKeyExists($values, $key, $message = '')\n * @method static void allKeyNotExists($values, $key, $message = '')\n * @method static void allCount($values, $key, $message = '')\n * @method static void allMinCount($values, $min, $message = '')\n * @method static void allMaxCount($values, $max, $message = '')\n * @method static void allCountBetween($values, $min, $max, $message = '')\n * @method static void allIsList($values, $message = '')\n * @method static void allIsMap($values, $message = '')\n * @method static void allUuid($values, $message = '')\n * @method static void allThrows($expressions, $class = 'Exception', $message = '')\n *\n * @since  1.0\n *\n * @author Bernhard Schussek <bschussek@gmail.com>\n */\nclass Assert\n{\n    public static function string($value, $message = '')\n    {\n        if (!is_string($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a string. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function stringNotEmpty($value, $message = '')\n    {\n        static::string($value, $message);\n        static::notEq($value, '', $message);\n    }\n\n    public static function integer($value, $message = '')\n    {\n        if (!is_int($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an integer. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function integerish($value, $message = '')\n    {\n        if (!is_numeric($value) || $value != (int) $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an integerish value. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function float($value, $message = '')\n    {\n        if (!is_float($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a float. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function numeric($value, $message = '')\n    {\n        if (!is_numeric($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a numeric. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function natural($value, $message = '')\n    {\n        if (!is_int($value) || $value < 0) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a non-negative integer. Got %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function boolean($value, $message = '')\n    {\n        if (!is_bool($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a boolean. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function scalar($value, $message = '')\n    {\n        if (!is_scalar($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a scalar. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function object($value, $message = '')\n    {\n        if (!is_object($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an object. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function resource($value, $type = null, $message = '')\n    {\n        if (!is_resource($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a resource. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n\n        if ($type && $type !== get_resource_type($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a resource of type %2$s. Got: %s',\n                static::typeToString($value),\n                $type\n            ));\n        }\n    }\n\n    public static function isCallable($value, $message = '')\n    {\n        if (!is_callable($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a callable. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isArray($value, $message = '')\n    {\n        if (!is_array($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an array. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isTraversable($value, $message = '')\n    {\n        @trigger_error(\n            sprintf(\n                'The \"%s\" assertion is deprecated. You should stop using it, as it will soon be removed in 2.0 version. Use \"isIterable\" or \"isInstanceOf\" instead.',\n                __METHOD__\n            ),\n            E_USER_DEPRECATED\n        );\n\n        if (!is_array($value) && !($value instanceof Traversable)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a traversable. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isArrayAccessible($value, $message = '')\n    {\n        if (!is_array($value) && !($value instanceof ArrayAccess)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an array accessible. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isCountable($value, $message = '')\n    {\n        if (!is_array($value) && !($value instanceof Countable)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a countable. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isIterable($value, $message = '')\n    {\n        if (!is_array($value) && !($value instanceof Traversable)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an iterable. Got: %s',\n                static::typeToString($value)\n            ));\n        }\n    }\n\n    public static function isInstanceOf($value, $class, $message = '')\n    {\n        if (!($value instanceof $class)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an instance of %2$s. Got: %s',\n                static::typeToString($value),\n                $class\n            ));\n        }\n    }\n\n    public static function notInstanceOf($value, $class, $message = '')\n    {\n        if ($value instanceof $class) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an instance other than %2$s. Got: %s',\n                static::typeToString($value),\n                $class\n            ));\n        }\n    }\n\n    public static function isInstanceOfAny($value, array $classes, $message = '')\n    {\n        foreach ($classes as $class) {\n            if ($value instanceof $class) {\n                return;\n            }\n        }\n\n        static::reportInvalidArgument(sprintf(\n            $message ?: 'Expected an instance of any of %2$s. Got: %s',\n            static::typeToString($value),\n            implode(', ', array_map(array('static', 'valueToString'), $classes))\n        ));\n    }\n\n    public static function isEmpty($value, $message = '')\n    {\n        if (!empty($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an empty value. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function notEmpty($value, $message = '')\n    {\n        if (empty($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a non-empty value. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function null($value, $message = '')\n    {\n        if (null !== $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected null. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function notNull($value, $message = '')\n    {\n        if (null === $value) {\n            static::reportInvalidArgument(\n                $message ?: 'Expected a value other than null.'\n            );\n        }\n    }\n\n    public static function true($value, $message = '')\n    {\n        if (true !== $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to be true. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function false($value, $message = '')\n    {\n        if (false !== $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to be false. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function ip($value, $message = '')\n    {\n        if (false === filter_var($value, FILTER_VALIDATE_IP)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to be an IP. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function ipv4($value, $message = '')\n    {\n        if (false === filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to be an IPv4. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function ipv6($value, $message = '')\n    {\n        if (false === filter_var($value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to be an IPv6. Got %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function eq($value, $value2, $message = '')\n    {\n        if ($value2 != $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value equal to %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($value2)\n            ));\n        }\n    }\n\n    public static function notEq($value, $value2, $message = '')\n    {\n        if ($value2 == $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a different value than %s.',\n                static::valueToString($value2)\n            ));\n        }\n    }\n\n    public static function same($value, $value2, $message = '')\n    {\n        if ($value2 !== $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value identical to %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($value2)\n            ));\n        }\n    }\n\n    public static function notSame($value, $value2, $message = '')\n    {\n        if ($value2 === $value) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value not identical to %s.',\n                static::valueToString($value2)\n            ));\n        }\n    }\n\n    public static function greaterThan($value, $limit, $message = '')\n    {\n        if ($value <= $limit) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value greater than %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($limit)\n            ));\n        }\n    }\n\n    public static function greaterThanEq($value, $limit, $message = '')\n    {\n        if ($value < $limit) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value greater than or equal to %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($limit)\n            ));\n        }\n    }\n\n    public static function lessThan($value, $limit, $message = '')\n    {\n        if ($value >= $limit) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value less than %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($limit)\n            ));\n        }\n    }\n\n    public static function lessThanEq($value, $limit, $message = '')\n    {\n        if ($value > $limit) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value less than or equal to %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($limit)\n            ));\n        }\n    }\n\n    public static function range($value, $min, $max, $message = '')\n    {\n        if ($value < $min || $value > $max) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value between %2$s and %3$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($min),\n                static::valueToString($max)\n            ));\n        }\n    }\n\n    public static function oneOf($value, array $values, $message = '')\n    {\n        if (!in_array($value, $values, true)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected one of: %2$s. Got: %s',\n                static::valueToString($value),\n                implode(', ', array_map(array('static', 'valueToString'), $values))\n            ));\n        }\n    }\n\n    public static function contains($value, $subString, $message = '')\n    {\n        if (false === strpos($value, $subString)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($subString)\n            ));\n        }\n    }\n\n    public static function notContains($value, $subString, $message = '')\n    {\n        if (false !== strpos($value, $subString)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: '%2$s was not expected to be contained in a value. Got: %s',\n                static::valueToString($value),\n                static::valueToString($subString)\n            ));\n        }\n    }\n\n    public static function notWhitespaceOnly($value, $message = '')\n    {\n        if (preg_match('/^\\s*$/', $value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a non-whitespace string. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function startsWith($value, $prefix, $message = '')\n    {\n        if (0 !== strpos($value, $prefix)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to start with %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($prefix)\n            ));\n        }\n    }\n\n    public static function startsWithLetter($value, $message = '')\n    {\n        $valid = isset($value[0]);\n\n        if ($valid) {\n            $locale = setlocale(LC_CTYPE, 0);\n            setlocale(LC_CTYPE, 'C');\n            $valid = ctype_alpha($value[0]);\n            setlocale(LC_CTYPE, $locale);\n        }\n\n        if (!$valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to start with a letter. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function endsWith($value, $suffix, $message = '')\n    {\n        if ($suffix !== substr($value, -static::strlen($suffix))) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to end with %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($suffix)\n            ));\n        }\n    }\n\n    public static function regex($value, $pattern, $message = '')\n    {\n        if (!preg_match($pattern, $value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The value %s does not match the expected pattern.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function notRegex($value, $pattern, $message = '')\n    {\n        if (preg_match($pattern, $value, $matches, PREG_OFFSET_CAPTURE)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The value %s matches the pattern %s (at offset %d).',\n                static::valueToString($value),\n                static::valueToString($pattern),\n                $matches[0][1]\n            ));\n        }\n    }\n\n    public static function alpha($value, $message = '')\n    {\n        $locale = setlocale(LC_CTYPE, 0);\n        setlocale(LC_CTYPE, 'C');\n        $valid = !ctype_alpha($value);\n        setlocale(LC_CTYPE, $locale);\n\n        if ($valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain only letters. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function digits($value, $message = '')\n    {\n        $locale = setlocale(LC_CTYPE, 0);\n        setlocale(LC_CTYPE, 'C');\n        $valid = !ctype_digit($value);\n        setlocale(LC_CTYPE, $locale);\n\n        if ($valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain digits only. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function alnum($value, $message = '')\n    {\n        $locale = setlocale(LC_CTYPE, 0);\n        setlocale(LC_CTYPE, 'C');\n        $valid = !ctype_alnum($value);\n        setlocale(LC_CTYPE, $locale);\n\n        if ($valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain letters and digits only. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function lower($value, $message = '')\n    {\n        $locale = setlocale(LC_CTYPE, 0);\n        setlocale(LC_CTYPE, 'C');\n        $valid = !ctype_lower($value);\n        setlocale(LC_CTYPE, $locale);\n\n        if ($valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain lowercase characters only. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function upper($value, $message = '')\n    {\n        $locale = setlocale(LC_CTYPE, 0);\n        setlocale(LC_CTYPE, 'C');\n        $valid = !ctype_upper($value);\n        setlocale(LC_CTYPE, $locale);\n\n        if ($valid) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain uppercase characters only. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function length($value, $length, $message = '')\n    {\n        if ($length !== static::strlen($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain %2$s characters. Got: %s',\n                static::valueToString($value),\n                $length\n            ));\n        }\n    }\n\n    public static function minLength($value, $min, $message = '')\n    {\n        if (static::strlen($value) < $min) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain at least %2$s characters. Got: %s',\n                static::valueToString($value),\n                $min\n            ));\n        }\n    }\n\n    public static function maxLength($value, $max, $message = '')\n    {\n        if (static::strlen($value) > $max) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain at most %2$s characters. Got: %s',\n                static::valueToString($value),\n                $max\n            ));\n        }\n    }\n\n    public static function lengthBetween($value, $min, $max, $message = '')\n    {\n        $length = static::strlen($value);\n\n        if ($length < $min || $length > $max) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a value to contain between %2$s and %3$s characters. Got: %s',\n                static::valueToString($value),\n                $min,\n                $max\n            ));\n        }\n    }\n\n    public static function fileExists($value, $message = '')\n    {\n        static::string($value);\n\n        if (!file_exists($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The file %s does not exist.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function file($value, $message = '')\n    {\n        static::fileExists($value, $message);\n\n        if (!is_file($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The path %s is not a file.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function directory($value, $message = '')\n    {\n        static::fileExists($value, $message);\n\n        if (!is_dir($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The path %s is no directory.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function readable($value, $message = '')\n    {\n        if (!is_readable($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The path %s is not readable.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function writable($value, $message = '')\n    {\n        if (!is_writable($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'The path %s is not writable.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function classExists($value, $message = '')\n    {\n        if (!class_exists($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an existing class name. Got: %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function subclassOf($value, $class, $message = '')\n    {\n        if (!is_subclass_of($value, $class)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected a sub-class of %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($class)\n            ));\n        }\n    }\n\n    public static function interfaceExists($value, $message = '')\n    {\n        if (!interface_exists($value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an existing interface name. got %s',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function implementsInterface($value, $interface, $message = '')\n    {\n        if (!in_array($interface, class_implements($value))) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an implementation of %2$s. Got: %s',\n                static::valueToString($value),\n                static::valueToString($interface)\n            ));\n        }\n    }\n\n    public static function propertyExists($classOrObject, $property, $message = '')\n    {\n        if (!property_exists($classOrObject, $property)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the property %s to exist.',\n                static::valueToString($property)\n            ));\n        }\n    }\n\n    public static function propertyNotExists($classOrObject, $property, $message = '')\n    {\n        if (property_exists($classOrObject, $property)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the property %s to not exist.',\n                static::valueToString($property)\n            ));\n        }\n    }\n\n    public static function methodExists($classOrObject, $method, $message = '')\n    {\n        if (!method_exists($classOrObject, $method)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the method %s to exist.',\n                static::valueToString($method)\n            ));\n        }\n    }\n\n    public static function methodNotExists($classOrObject, $method, $message = '')\n    {\n        if (method_exists($classOrObject, $method)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the method %s to not exist.',\n                static::valueToString($method)\n            ));\n        }\n    }\n\n    public static function keyExists($array, $key, $message = '')\n    {\n        if (!(isset($array[$key]) || array_key_exists($key, $array))) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the key %s to exist.',\n                static::valueToString($key)\n            ));\n        }\n    }\n\n    public static function keyNotExists($array, $key, $message = '')\n    {\n        if (isset($array[$key]) || array_key_exists($key, $array)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected the key %s to not exist.',\n                static::valueToString($key)\n            ));\n        }\n    }\n\n    public static function count($array, $number, $message = '')\n    {\n        static::eq(\n            count($array),\n            $number,\n            $message ?: sprintf('Expected an array to contain %d elements. Got: %d.', $number, count($array))\n        );\n    }\n\n    public static function minCount($array, $min, $message = '')\n    {\n        if (count($array) < $min) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an array to contain at least %2$d elements. Got: %d',\n                count($array),\n                $min\n            ));\n        }\n    }\n\n    public static function maxCount($array, $max, $message = '')\n    {\n        if (count($array) > $max) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an array to contain at most %2$d elements. Got: %d',\n                count($array),\n                $max\n            ));\n        }\n    }\n\n    public static function countBetween($array, $min, $max, $message = '')\n    {\n        $count = count($array);\n\n        if ($count < $min || $count > $max) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Expected an array to contain between %2$d and %3$d elements. Got: %d',\n                $count,\n                $min,\n                $max\n            ));\n        }\n    }\n\n    public static function isList($array, $message = '')\n    {\n        if (!is_array($array) || !$array || array_keys($array) !== range(0, count($array) - 1)) {\n            static::reportInvalidArgument(\n                $message ?: 'Expected list - non-associative array.'\n            );\n        }\n    }\n\n    public static function isMap($array, $message = '')\n    {\n        if (\n            !is_array($array) ||\n            !$array ||\n            array_keys($array) !== array_filter(array_keys($array), function ($key) {\n                return is_string($key);\n            })\n        ) {\n            static::reportInvalidArgument(\n                $message ?: 'Expected map - associative array with string keys.'\n            );\n        }\n    }\n\n    public static function uuid($value, $message = '')\n    {\n        $value = str_replace(array('urn:', 'uuid:', '{', '}'), '', $value);\n\n        // The nil UUID is special form of UUID that is specified to have all\n        // 128 bits set to zero.\n        if ('00000000-0000-0000-0000-000000000000' === $value) {\n            return;\n        }\n\n        if (!preg_match('/^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$/', $value)) {\n            static::reportInvalidArgument(sprintf(\n                $message ?: 'Value %s is not a valid UUID.',\n                static::valueToString($value)\n            ));\n        }\n    }\n\n    public static function throws(Closure $expression, $class = 'Exception', $message = '')\n    {\n        static::string($class);\n\n        $actual = 'none';\n\n        try {\n            $expression();\n        } catch (Exception $e) {\n            $actual = get_class($e);\n            if ($e instanceof $class) {\n                return;\n            }\n        } catch (Throwable $e) {\n            $actual = get_class($e);\n            if ($e instanceof $class) {\n                return;\n            }\n        }\n\n        static::reportInvalidArgument($message ?: sprintf(\n            'Expected to throw \"%s\", got \"%s\"',\n            $class,\n            $actual\n        ));\n    }\n\n    public static function __callStatic($name, $arguments)\n    {\n        if ('nullOr' === substr($name, 0, 6)) {\n            if (null !== $arguments[0]) {\n                $method = lcfirst(substr($name, 6));\n                call_user_func_array(array('static', $method), $arguments);\n            }\n\n            return;\n        }\n\n        if ('all' === substr($name, 0, 3)) {\n            static::isIterable($arguments[0]);\n\n            $method = lcfirst(substr($name, 3));\n            $args = $arguments;\n\n            foreach ($arguments[0] as $entry) {\n                $args[0] = $entry;\n\n                call_user_func_array(array('static', $method), $args);\n            }\n\n            return;\n        }\n\n        throw new BadMethodCallException('No such method: '.$name);\n    }\n\n    protected static function valueToString($value)\n    {\n        if (null === $value) {\n            return 'null';\n        }\n\n        if (true === $value) {\n            return 'true';\n        }\n\n        if (false === $value) {\n            return 'false';\n        }\n\n        if (is_array($value)) {\n            return 'array';\n        }\n\n        if (is_object($value)) {\n            if (method_exists($value, '__toString')) {\n                return get_class($value).': '.self::valueToString($value->__toString());\n            }\n\n            return get_class($value);\n        }\n\n        if (is_resource($value)) {\n            return 'resource';\n        }\n\n        if (is_string($value)) {\n            return '\"'.$value.'\"';\n        }\n\n        return (string) $value;\n    }\n\n    protected static function typeToString($value)\n    {\n        return is_object($value) ? get_class($value) : gettype($value);\n    }\n\n    protected static function strlen($value)\n    {\n        if (!function_exists('mb_detect_encoding')) {\n            return strlen($value);\n        }\n\n        if (false === $encoding = mb_detect_encoding($value)) {\n            return strlen($value);\n        }\n\n        return mb_strwidth($value, $encoding);\n    }\n\n    protected static function reportInvalidArgument($message)\n    {\n        throw new InvalidArgumentException($message);\n    }\n\n    private function __construct()\n    {\n    }\n}\n"
  },
  {
    "path": "webpack.mix.js",
    "content": "const mix = require('laravel-mix');\n\n/*\n |--------------------------------------------------------------------------\n | Mix Asset Management\n |--------------------------------------------------------------------------\n |\n | Mix provides a clean, fluent API for defining some Webpack build steps\n | for your Laravel application. By default, we are compiling the Sass\n | file for the application as well as bundling up all the JS files.\n |\n */\n\nmix.js('resources/js/app.js', 'public/js')\n    .sass('resources/sass/app.scss', 'public/css');\n"
  }
]